2.645751311064590590501615753639260425710259183082450180368334459201068823230283627760392886474543610615064578338497463095743529888627214784427390555880107722717150729728323892299689594865087260700978054203723828023715941100341939116001578525596305945741035152396802716407373799074041581519904403474319453671399730597005051399692237545616097119027378154991633288287704000657570674651963497752083793818114613090876473786595624330579947981281632307054836501077156179463611915534545364774948205930904948498340339890021047861667332795036939246225717053716492578754832290732492671346980298949908037748251109227895568897919808814834090831685251335358295391722117707144149745769070819894444414589722847414003035023532037194870738262931851936409083228059646278376102195979419708909635469586134118179306781621360849101677835321255633463490021898146042255929503669562418692737327715022087523099664698132032128189454785680209506359624466285500761905041393504474371234885223327736251004505962108067233469812000430051449025120625731175911542319445967260497833404344683725636178255048160879406205511486397833055016369470076387773745195116580952204742020649821024440560019965909041002855340691101022611668072007748307033261384282629680950247079465649634433683051970882034805048644726231793087695722489377521119788376007845603903658809421599292501057753682356001720074065236924732099674197780025357085406177944428866815897311849381016381620730156426470162984109969007134132379818847764776995439111194596767033697245247536774010024582651593077528163005479339717508017899520565284447796194304512502890432970610508746044929668975422571333806332470345088882342754098062145114395538033931907053927381452060433523818038933329473147905805567070416106872287810452995769663303513329504704245502510500789645502552271857923370921821991843932537781386785650143790894130020990408601866052281313298217352517164196336178530801790228734003371095272573642865092203591634382027397633655096671417781629289427988485395107681910216811699677176780863793410667897509217050421558644370687652934899322442240273649792906668420703057822571105379442157900132803040784945794315181204663092841525924046836528280272245853077841589423897395559095956349135749510975767478197559053372693936521431268222909570986506137179452721677198255442288046052307455488310813325041499327834681820665834473833668624544561694972517742702546885917462319423093550603889923535563446587292250736222828429821528790362384759555586164375547202736151800826144981691174794610631845652307625691344410868551999982851633960745717970829727764956451426556582051262403059616338683387461342374635264312965945270102137217217489914355293204957509711425942720798892966523049887593952537812145572319331030690840194942118708515205734116214105775416917245804962369512932926647583857193343125506160975090039575120634875759795492954992247266340740188156349405310529604465875564620943338947941762395628356349713801694732220066791621293435973671100587608647371575881684122969500862937088695418127695765706218647593705890746227177674315989867934955423190387742224446136993060888756395652843391274399232387968832906207071598123918140197532376623874218833710703285322771142186264479238443931230317870021802156263998733847453103345993606899837633245900690816758898827355721304788511327144687241520353111338592288651345874819553041264322213678583855423590638618452700487231832136684265554753667165760425744959823608640542890447143374413527216575973366727564720357457321402931064380350431323788424731514549384903622426849768122808352574866163546646010620175786052993048378210387191117674718316840267143474839354390876792673862085122636674199255108677682336995949767664130615461747219560627489330736537532202056798649880001671863618041955309396028757283709888318004585769283563572097327049988024818622254114445188211812396056809102453283729690436738951943637997079341974788168885139428215328113423555715996732375739529137268807984747292245466870530936722514896271417869980500986002976964399874240236749129336888862332000291880996962271949986510924694867687893935461097268191476537583989507447113490414817455171869253859459591406692158039259150200251233841771532335377771441133562623485744370057936674882686357744269817392446075271575254145214453269672977196708317754248517376333044949903502139078141112089271184202122989519450984107822959655314980705636858421164047096965559849599650219606644389127462654913795145250696216490279586061067753708277274582900137716610589203916087776132735772018007762008467256113972695544632129805026246243755967488328449842162440716762569896296303765707261679502460078979197841773862596299531222067563316483973318489852265398165212376051648275412296241825243571649098629157872387564320229645113094736976037742258960665170713858206085945904439302758064720076077242085026875085054098045522064130392719051307751601950066177113335220294857981033416275657093398039516124042717351513332630177574641739426802204936108332643844702150525250280000631375821855226793326606927200078066975096981241212683884536969022355380120565398755290441622898303878504589253133207213113997911820236415222965163886116994709493957791339479276218550756216216209697645177428331876248945467953178903992008193959403210310790653540815607217656002628651066858334816905836392518024860312847329626547271683726594116720954682357322814031380917749454908600420166879375247348533858056677058541408042124916415231717570106062160546999810729767225121183067315005034685995516701968051317559753622351601297333163992381918279893372956943266221754913636727940496793761358777675628416390601772431036320605712165331232229570942438013812723107240517288411013737616135380955808932247723569730050534124089860063237421220262844538031656017699002317861148863053999206860142853693286197690606203959906145185273942808641918396474035825795806430571984845652110920058455681781914675085096210003735220675439318675013094837257535813476410172638335224856994460068840297946669638399708740810797261385302460786358230931170547074503408741797594283973053227965165462872006255460473888091472904139114590210209845375052541063485472950059411129900908318154293737430344916285541875301936718273904395039783362364980724027263837332533031898480092324763285769204626157988159562362654797754612834109154571105892270631921417992012344505479482390215936802209190912367144889334715425046063717646649420333679454681814286096275078901726394838917676410853523135337623134666657082717788331941088811151290034088950596806727232173855251816791477663602920083932266078674308371598326767758651623047551815571039234344989662326598864712076099020006621754954139478008157629315332123170534454501756089069297073021117781524319039414323872919385135326400244141301532757718708373138628837077557377550151098576238441234929066868632976729288200026707269803761085144956481370706403748276113974628241590760584270301737898491593263790212234464820228999301833677385590100084246670979830738859298390975575960118486078515926511530519450037717006920766565969625045582330117294534795540311990721861829585827532392929717397139368803786289604739278430103040382236207507493365481612063224267065251845971785297508473087429118698282619262334047577505016671568983361453913542090619703628927768395570537056827059221178013279212812747291748669390288072517136221751551624349181642740516899791680344243484529108052122656637090347059037578760410656229994577533269489710172866983188837156622172886752186246001266662136768830214106899507441168302547214550109300078970804361542174933232351165089109578029001323643355408867793877741529765306288960003652641499544869644827281459863971828823907604712639853351305264961297589292155461585982236196210334906357704114156678334410584977844782157977303327288769414012119499568522079447227431768128893548609797467891277830663382197162994755883402126143408438544578485614986094734597436112494133315562296273850463940514366326090607193684781457462592307913764153586568333556524377291258593896527871270050551601024435524884277499940014587653613322468700900664317717860534558719172279740108496590416709657242405573211318263778610730079889195461911929917597120925969648676369998002171075484065796851984768361697908619677007135834565852440299574420935175287328004609314899903178759658188610048971117317106048366601487174480752897998782553381104304817695804582027774770489150085104377075257227123548007237712086585401584570878697112950092404668280725006794531512206594317013091252435135680076500252708495798427421783933180723041463432349100118931373011641327930932013868817470775836373169726951868270435051576692281618526424767110503024931704286760131795738464455796115871317428273935803103843119387910076831840070252863894073059994877941659918471144241278086456273878925566156350764394829576260537929680552372645393728198188125861937589627244612671953603617876166976812502509475009015100629843398962835714621296851152715699279620897455949014251228449209580647983216564650591713271548205530943628633531894500922767763362366254093881474673170987201374186532487577091691581177965494058704038689964700984868681258926455113718920872766119116466390692679358362328028287050318499727379236455728397178350820081430826339074341187286144658481718878385452194452375299682672141920696541809090074387574013325374235022637287666645682706788931333593008336698955708756466645112114989579187284767956864355310789844556004498476104772104546511218001509665403712123872051986219143271028003614260436497412665251153454621084465209547132954296698544956432708218069243250946228614370986081041500463153860447622208181575501101005967219299377665706660425509878244973074444827975618331686938351016864918443385276807469215087600612829302925721916523356188489821919889086362544238306312998128430409851531236004060378688194119909548909762722744738641063686120627661849841650344369059048450964106672441136007721327658552298059728755847984732050231949831957389149778271702829165518760102678129055620628182116868811036470212421051260468363703773556551863754718757431482087380943450946490982890479884400448867938040290432871576343449934736087126772804544817817016365370423934196574616707429089965522437015728847495147933639927981994897244021805087591972482741713109294580822587626525215009901680900146002582189275960204054345996202069979741389447468099968300813556815449136972598400257310668336336835946317945283963236774864306629678900563654333468338518720179612963731917053805595485027279857280718081265277609536840867912167791452332286927390171376036791432086950130757726883747599532042985979367005954726506911644833607187488061312914975503555087353750197450870921966873622665352101971581018239955333096676068035657609325218799048259360114550971513006153148901894005498431945656815724306686730791390083351973317528539661725961915023713753952324356961658765246684106649528312537247839211169277312915599259586985010962632276508729103276333118982769165334192859861526108789768453979252510020631745338004509448342467935832913483699010250023217105517882519763808363771200581420326063617447604345957748757330029577592173071713837771826311745303474538393751854466563529589321040310767174891541770431447222450833500712368882827640414459857415119042348404478917345051586428349531316971203900218573943158652552251810938990320201395313580919891011243743478330896602299874562336815450069561731716610376399557306567940929978694359268317015899611756395411435436643589106432283237475428254019702469445694359370269929379417256800252699083488189603794860604692884042959419633359371410580808659192328786717513627826732271210327117415572994675809259275615610605271812924009941585476466394262909521390565713086305120166748200848607923651656164524373046341635602280683516898428340745390506059827565329831650389835257064731382960524276848277747361726926080311802253355383775465167121760031999611836203269869505594604276634842451361004563496125099211271965035498267001435910350914502623684564689394823226770005636482096776716184960481268378308843462841396701615795556780237889003926363979384363640117398028610767594828269883277272084224817035779772935636323042328044920276955017289695313610778654093665063322709324087078466264258976771361995924785091712930742028364758156341295187419712812652937412118324458506347734723800778422992529893310730059882380247483310998453953921790800116907267727505824010771986346032127350283252679048590421123132256918948149190496822016304984867079362009989843093045002974586699985878046817788567228852089181328517384574025620735179717028963577704312317031048267874917984547543070879001820448412566399648234862449645801672237581829103669951300363907176692705683135308535887032477398207007558038707494578261767318180495250803294383184351000391996651069251828897949197300537376236464571760516352233384649140274886866817495324587659073053899555068901680065168707251220180351609436751218713577049965171653123565821559999001854920676937082838211252469628274797273204936027954400153752339534143191499786545237574310357832036822165272413114529922184603280855629485060021048791692468139653247936203523869331467403885115716191929673909028327850513246395256379438379284325764665500870661295649177678144176399154967347944990562602222519721237405825894421611090695586058231672601010646978379858813278169549273318752340600867704520004934782936937039648968046303626939161044893392889836517504925891463362242964794016924495149710012809444457823044641426462071573930928595971426230876950747932339821490554300328654274809276799530704579787762879839656241724424525910138355318557567039690780811078142411331192763255545060968806838836915913091589445614301536346082361938604926110188197024206332040018229708043582016939304306317584987612568108290680590397188057985954996912828665276222639569726940287119134612193356952313107163913641083614043333119276231207751924901961506397207457114253787359112694839047053932991961830287674535222233817993552720608731547898783393012593988040968084522000108092805126575939917764709697404109807592175695389221433933445420821031148740589159894530611396101839660053261857181746863384154224637404212594470520422300839042234782879237490947162040459216540425826947626766020198344138341973282572471680490079472531185233868445921612221082180474276620548112099211493241411541785049093983690476519529230717361926825617993036176223970373127083932996022053366424164351839577562684306135153450346129376574431686331406827617877109327128375990856394021790036583605441307868748953326880534450940271044692122379400362385290823471383116573445059020077369371537620813836375133336725474474163993279916051670495090546795350172409829650911360904536319314173920210189135529462568681953979820396578473659062878634777608576778208570146095663542068366069444230020006469495401540064109235247311830206595179051943808592762607447729705568754705095032343217800688460856101441142764462491311533211004361901036895535448818842712854602105560010602981101081821697394443044276223446344967644434569511787262122351167029175831057726518408760926766677321984719158207637856241172569993767027618820755578738554264388202028794092075231817079517845436966267933742559157883321257760051407661998401291799920776440788114105338475326286216984018519138510027892833773380762371479523931768550861550889470650862263597019909342526172540755946649690396156907109848286064768962907920308031244714161885177734408903378602104450136964017109204538030483017465919568806585193102234649242322331316741138655268933730915718570357805939700104712800336527994032058871858993997819448258937192020421079022413350357740720856685765067167335478285353361256678314709613216682470779595825223080410590205955417465458855278773058220651202623852419342368438883932752154391261291669259784832822165287775513298215569475469921446370084123162281330712237226762517805367077967537951646283777374101173964881048852200972689727932023577010834177442962168771021535157053407754656713841600242298964770701470724954636806836310071440622968751552978275890824813582933681148661419817809738927259184743198314622259327157936190775396182688729356775436507376348270978076689813220901487872153984854642563192238904098088656455362409133118976362183982095918099579763192726077659394071730102705070407970572020725273745997601494618569899052460767386168431825608691323154591677446828506634202284384191594163754055728014551725224527771394334685925853329724277512672678464372915956555829649083159629731366992222269078728023198440403439498983080466828212739442873231008848339433142836172587802203689876972962438299291610245818518306206253147309710648590826904387934225503667238751044582433775205167294932986148114951146389619408755924681039588194607388715369625254349646269125153747453239480853110195641078381156652001486220025968584232156883861928747370326918272473867782862915907926302308360788764120564788433556957161905232289909348521437145180142711061343633604151960208030721193582240754107221875779583701266027057262201369886547671960777834532288706410070199266501493317240418762182948926363939601444273989189232651660987904828515590640957088820967332640392481862826906220166268014460436912414009558603804135460561863814515604459680730111182769088160541179402681647280794570397533217242435457415899537513961453090037192531003971347010149341364212110060424607906388359379490234876177557838619199767600823227305317069402275865993022105101090549702114990037349638723286461245526303748143997889470353242001726498615575865952909505355179025335124639022412845030947082570808376870760310525563077164813631749406490185284641537856202458436476229895622392544739896679404592744913510595867886512664066042135175103832560072640940985009425300737436332631279362640655882852985473689694920560031555188135584005206241746686063364544529589562133279640296209392497614096008127295724362286017689364425795138111596156142822223157860255375621846848176618125629463736805343908132200655361325026487878740865201219516942419050872161962945650319064263127867527729684239551161534367743434238970228212273193460878151642776335931794633572775182158077396402908127741850634864966390942954136039144073352079760975922531666926358118625438299894957190418687442991176385710044085707754290329495520488205868424829664317379372475856928794472759542704858111236645887277166386355657771974063091761531587917405251539545667894092853877192220470759049029932191066070583803334360225662989655310665179189105967892971270672083689230265703895887933420534546431271083793748490303376349536285465164470664909390253005038832670054876038540346132374099805954287626287927473137680927563197701628602956829577481276425558014504729806064076036047947034112541550710145200846039695630839925014244107917531273017690816635313304537177781105819368803340652294014717309038945553788053875457208952686558765187530967535220317637318206486324949239029643039937528665820748565002428017450207753788855081459160746742549232454108310559558785543514594892807762227454795835786182407999121133276805840157681779578985093808399058233883278227526656812105168321822320982862147344594013749623568748472439304309829211358103006318866361504234050731800199545175964486682029156185858144133133926663295973346927284941500203178474754421908243243622097918285693041189221132827270453341116475537806928756246626026159476552987107634260604367871620164822844287680185738693040363396306609178864320135121374817965697615638014501051462002694185811201106017893252057274585745635969387441368713352131481869884852426591299072912401056371746556348060288607172983298547302008639352669424069333217034067704984428388740738074912222880565652012956373266044513477936318743619221819160818261936835440019720614303833287835478457117265384348768146971586515161744241384620431709175227500500303535493329376470154924941911175829096588832100707685404228699645298001898834268149947240596745027964140276709408939792675994247599205082385627807273866104147137447787964764039072708298849166307371654947789816329622909244156764937741062498112958729999787906897037855752200971187855153556215835829271580446303837811212021007351584003691211842677066419263432231190416517085367575483190774947190622704457435442627120817988622400218776041885171577425750234349702429672757584445447472350615011491169966058933147912982486250167964297539126297691103917992496765284384992696226593328041140042290255910020724189130702358523208025838878809633724299085413302273728271474684626673604469530135158472798514899195048759564651960290841509717782657908510722346896106434412415353037279607882566809719241540713443946578706051509337556522210957837902324661008578647252373463407661656450482701782925044831045251127057439745737621434569484458291736984129843566730965974166768310580469731720360594388663190672405189054523413388674425949453921427236795401468828295897096723652978468427357956254399026845232868880576211709715968618893524669373479623968830843066086336247627524627509628112945521438155669735958790694757303239286140322462795480692053395281488979706995413892011053907355303983639550064644859811986873880207412725291818661980515086502422268518147511745864503196419899003228570476940098857422150843224169004027463046263871000986240415546815810639591214186864218213922177552424547080337885483607751422314596905804170077409346920305414435270956921206425873594393985381889281765576537595154329940099442728939958284188976475409149412339558839524268677719769559247130334287459907277791974872784065091281989464947657924805333569699835381623053419406449894956023290069933207264848834627565150035866433588111302054168006661701622893669973123623822059530252470752744280819320428898623115995900956046249738748660392995895695982091477023760043442922023438096943753089490239426968655777201598775065058728658570038535291029795075516515599838286144152612916403474835142830914324362355977446381758444440695026719281788303891321595887714841962947247144125041645133163080429587448440373458636764135409394364279605820501602136457761083680625935874917737395563454513975903372439420994753841700878389697625603198012388585967781721126679561008797978353651874000370772056575556491109762892447536421206598190925209920920461095259413979161282548589376649215508096441922921498586510746539519843290116272312005259219802322430609490081905641424463973076650630472330346088839560123771708798106398041157376195100844501509866508962394482824100993162232637688150242423843838361582718306522064851037505578146214032484039306125718171287375538295572723684277496729284394193930595657055447521996815348849026179409446241138661567863105032416741477810121683585868834903399987687554309315402730012191398499493416799938548740676640190604800067056044995814113631299940843205893097249579393695891663504194038470437904439655221312920653524240176757689519050851425826991959514163205487601162787555878795231086373734196344883032157553938384546302929870844804003671957119241424911649831443316483165927641120210692031980481930876629925812453574068196329406282296129149285413721145221237972955821351159341834410654096934024447750632047963520628020967844875530026748176261675225927353593253098597817939140268478613459646638846240536730659134118537296705750810298356650639543410030522072426919163157979166237625674494447275421880590365807647411995288471537695475560895151377858710128785423125749195039013901026152965828488834491898179569365907738734785495957708473792071756834482323666897276828789231135305797647974264010586387260883470553969169814931301665260122853993339838274789609875053690852379465691474190971827586249880107242252247507975332875897075843663456207601117409038361860993383112818986642200835279756859522047539121526821856335707829538764658189128257692349062480733336444059108375472145453546316001669531338023485648743952384962085367479026373731755893572915460366568572008076252964037420475383736655302816177037053164846168787320599364021635159974266780727600761816299503996642261249926876245026979768365216217615929940460492727700352012833523996685576118143394295947467482566995469636133653673426174250598356692217801370353651911143102522782071402716516249637934985031055524067134466960912442632663349550875721780110253679819558065376232465044834342338457255982184137953903993467621993132205364027931254241907468867627234500213223434611426546728007297373752780049668303063390867323881255540933336134755776862069119000795410126316613735865448817252769769514739942600814031291944816459012775939979721886986348426958907649478532599003875335766364657634153943772848572054604084537656900503352415115277145122442016982187672516952121436272770669785457215903168704791681866641447641239980770478763850380725154270177691912427682672645086394624176676802396253201284733323584094983251187575574267601208103357884400424798169068609403024095070187931890694380057624223717543188143977597160861776879119408575603048347933890258400930077292432114943669887538886525665525761362810746042394230585590701366679421020886856084745926926384344538078171705052153247305910313338616124649978143121466778587052086632789382470313769958584243993907087911292053275723758555549056771616323204197411701817871654889121851239314739295226114253340863825864790510419938668989267951386816096877862965538021390991613098841234661986390652237978974400313855872816795931439885961835987553729053987113394778386975790291174320542702938913731634729125772679608907965325038705768983279531748269572642682792015912707563139652288006277750620364251543212998045286424170656488612041996622678258872454914272857034693268944377257791661014195057793510238343349884664780063124305832773524793174296241283572353513395323096460284109207857160888896779359891354834657676301541309825027312641914767814062195015082402158535835260768068778921587948462560506054611357258863534195176992893832495012511632029101492367029988664006357437497601650302760593235052838355447738324491131843495052948384915340468874824885425959784344046116958025117195696652081742330821600273673070530088217674562034326828911073002031732396373645280386919797393296621248044363636527461890144896263552725848720573096849896825975365177219446181762701310557341449413153424387376538559334544548923135863315764924033727564141962059231043627973638637150152770862429299956176015360405853072909614077334425353722666410566147599771972414051774674352615687512670631932181554745008526850967791822320550142840624954238434936962230301068000907579855887504234642566497125468703535884422048239811066797042709597167717026360264869772125520942360781470021301729129380230497277193218671685223253711432297249720552809283927550241690626302468417748473414481526671793054582029200663984509532931368548150321188634472181630602197161396915980455101320994987662978910823575762586893074636853977572375540263994149150135781172369944754785288498680805003223897586035446651628152382185804248299216942108567831787083854074442770696105525186853313406907153066033218616780955854462091149173486130283302448403578486441468197253590392549362453797299932074717223931408702304107919599657479893433577363052054855746399989764948633276898891477303510005313606469545673218262248677997570663577305215992079619048166641582772699473310740489425342888030814248470479223932761475713267319693047956764434222251498111806307827677885048271367337330422194185354386230516683270916040014540221728194025113929845574113988560498942121399854774469516243332526726678229558290592065238818982985985942059890967899992361153888174916984010974291347880440420735375206732195721308646176597200175670438974687602620259439844269362735061559169002162698928294748249682587737683156211790000058096172482445992538761050247232234038079287225381455457273352846874958930225423433267307702975326838648467198716303900961777929948623492019832549507332748679180781477444908616434632547482561986483015980589129275832746474741371220923687758736347339482512809850900369975648735193117931622903258514677463316888676886141007320901283389889129814108599103394976338772158115440001155548176980070123385919336333096203214090414303984530983512558360454905841041561458960465356544915469384389442956984298624688358071024210523844766855955940681485290204139011808486596730963418136568282397771672592236975701003028530389297473695483603283937203623330753711023795287688905261765198247051573624609954850511852513074663792418761455177744674525522502755935101969126026202919140113064123125686006608393653442067126289573926546155287832764669771338318432415421155021902711389934891454054126689165912510238444749552209670097937150620953698684182862266909078267987083675435769309270627958645485712394284279714425323394342948187544151297648847317406518574584758959915578552643943859515264893943746889366406200945830081305016931700148754895446230531542468167165168172670547582881785781023674940452161977403756030157838857243074786498878802857942595899309037727579275550071706560199377499201858756098048419329868831811373702414654323549836564207089927089737459317089766609698978357506325528646787460305957548324173988485898322864195840772066156627313266651677844700608865935273365368767135661904783156447242018835360647242632674260255052995883258242789267243095227381220808365325470088135042160825056956244489123798201177100493554176877625885871583928471392666105208772847522795723509766215518000496826111946793538545503962770544683712716169324660066038162593686173857621024296876093427085334287263254393591647524651833990544297186055477235422169664932255888646626227754563489721812628863618200841555613916165984412416291019452663926112086961635695495727304178346619042662452389638782065790119257607142614117395283640736974456311771117442442659410261920752613093524702876939502963039609718116009623822007546601517769985197437941828384057402492298966092323902001025254605452159749109279872012685071954701318203584395958162801918684427902420113183327967389603718394520786728574032854031479644759265433453822073699939696073412914131552471392187644677346094314528697553683516248192440587044837042296629943689887520394846085338493030797264271459365020073417410299041662666051248588007999661803669705661431456145952660956936321566335120943782144606343655042727749795898169103249373702801604445256279740755826614463038928816218763419907641085134184660472370288925397065798345912737958580661932165140503525724338981334338943616397602133612826236124933889554469318616680747105794629816983000569100958805422081631095054286698197544328545483594953322005105898388609751216437127679867517228376123397866640518149492508164022257347104480074795589163538996461756474423415378631998877795652229204890691417226435819478015602683683516253432879882459941995799212684788540197679817235180149639696715474952451587769196622561922663446203796013936818888833532477700953518020070296957464900535752749228639587862080882978647184840055432433924830404331912723284268357821273214590720327960212230263275259334878095158514885191789849050332350473101835885762647177919833554842187626097300535017705129594962266772497955195312555312161058850694736963305434682501278724464924945771193848484711203902209835747746709235260795717363896571126011774271218641201896072597572957055665342562600932064508381479181209922380314331427726999833643712468189005900890454043975955404644864839561208188009222465693242954153064355603239206658511470623939122799416501612139840163575607709834227828624572185930846414706406698368518966318478666512489895788292914124527294842452249726923691084403887182760733991869990432700914974736445226671536198752782918845378930158654498533064699902414184692582615689372565062229682404361535829685720854366012733454390053319883942028569977589277881942248359456791351653426813604872782533008098941075867135028986218660301268208997030524707842162438415630153308325543961245966834359893804880019929603395822290806206865583290109839004338173038436218207726740862761257378436764343401707503512130157742396738737410613257479239680813324927589724249762150622584017606922122353552086656745303847009997290246682084447384136607820131770130006316762458698249870178662808854304079197935091265382091919349385929798636050230488118411935945839608974754550087111712134833531181031719903424026453208675923316472145501021517949893183173592359481591230404363975582293352192433640774324568779481515361206216335622997000953663436368459513443755526407872453758466048687910935474686876042270121849693187793147059864038658856296458763295681915177030023295765995473647117243203404626177922927119992548641920361088097806630409799547807604841331650146634808474510146212077090104287102356874214127362027038569376143301246296416788580159284882581701669174195710861142942057461956890931502013491198254433382817062682655326911613043572963232501074458826226866169709655071630758930183204872289240940977132711517073514194126318819575440893525977174191792433243457153765342491510636851491815418210800390771271067422765603542976598711118399959218419433274332250926675695123534836066758890156807092472830702999814029208173872623938536276931331770852969747369544941471672992539917879515561852693501031932884476986197096538869490976834320582772621766644787037475760166283332958156638395845558479901161474673859935086620592185104822227896841583314275276463144271696177853594434881137963038345097885398014074295897814531163536311298755687384441936333364637384376782490649634327276914597588230045434639162531071033690882216183017619276209318041780999669737093022192573431988898418953448172075247074364821304114571072315879794238765486094906448655271578738553696723811744715249285811492429870556988973655860826474028849884318030014841060071760476070935938124076897329204023868710015163527449158015467200138999099722485329315547685339670722852920170712324714973963988034289421948073864567466289216889006171143507907504238470037118117624935586833654750538149168680949866243114413004841693478317953061728876763666561983386140469874998014683883452288354603418681714382328886368879140171407118123238913668392348899122448676619299902919998003542931886883396160767229054963807532093236898152799753385829714466126722333188306887708027231412896568623294953488083405108649616605154330240916155212579392370898206896134166203263308834523300401247647393668975164862937781547857172107766155153005626456676802409054409849412988960586658794770973981785066532484683709163633234951970728179894654258083919948750958091082636425797431407675652667679913459733589923536913307606429715372242738772396581566446734199076670672294015478440935331873987771896471767089008369373935259711337347663955477871208991061028890840876447581195155349373056374118685640394594121138486872509440634499128803380004972360928378270449269748221452882929861908234235968398127460797768030434048183450019569744466820094729797406640694696043367958645662611063864603227445575585012715164915204929974269709692494568695661718692823050298239334187789680332580271592872980989874734425861647178276328587526720183224683440926719472205554782975568844904741783255850318968334348433082270598752415320529145461322502471973707145131733879468642165707013501898819848494534439381643934480372273238236719395443351959842840670327204795399421725099640964206021243803892210871564280686927074937143740678366396549144079532768861134968811031766646021395448687807544205389630784300454011667027058208514707729355797984977274411846909152525347659057629672379849106394364771807451520998509979910194713274728605044272571000613862018490929699146583323730868826332797900188342701961789053769460004971406597426897803604107708174166931957439808728304124700937637761009886461965488458332896477069194837128439277811249693209225633745148875587486503919710981998647001345977231505740391591934374038333042327782413386026634639060907546641476114204250139882887512574738252429641325124666900369144176062831736159330805487298732304709072856298666600172215957357466160631059047478137101742655265854644414796288182278377099406347634901801633377786477267346355384169930815082069885980804515735726619598413969324949858363642440492064956694020586226248809149616539107850755152572046140596754626054844742996350880230976466571532714986325992833470338372534227141632928358610261056653660889305694348627586888363439539600756665387863424365103962802208529527279251346351888941567246629787774238299294164787723998672098672551705963509294272876458378040711448365888766211156027483381653630464375116809467737018233907170268451143288495896844649533964871478377714986318295440629205763480362692518237639832532811296208414550354082586083754586764177382971321498077851547318493060994118418237058112888638118019716514882373973032165168450853762485438210865356370359811118166944172219021577952107384329932468846716800055713795739676977752960418307813139487251054484805104975432155232496253664587622127833387463860835111521948447632134554015280249837845720888778740009974797770769263638744340441035269718342224290258316117652545445890166461933709811483969804902205352266789887686723512703374143288592983021337503946930760115474405478829845415009743216619026024080422517263688815027036886611901456815061167550922646864590361359618693502141537636565684273988677096396659060007777575990648527868169996658399773770282381560296320649237759763598780305163608972519030276191638718129868753637980968259520750414251578983233138877848515184894526559929593546338603981666260583279567186862759672495809485731055006681159154526640928902063039596740869377672209205167708144443615624253238122245793873865347422860367748285272647685610038250020232761596642187638349720710375344205059745386007306883893401007629266641886374884016403173441107107628623918610336155184908228217716924218200917044437124088322321352973797414418988005300581433499768125417963227036095250128904246248404520140691218640209521358610106450004766254713168210248923743993490887954044376244427215385670600562237829341562319479241448990659746370754916246790249584075423590187241431682858630657628550825254468023191422829615044638976246678881489881132052203309634114924014749134299418673013362703724852419049615153123310575922006360207192206421646399667420140049758784068541530529781630015802860639299008987185168710176076724643118966585388568222149434289368003373870671358776550037096928827736481325794988664350011407845985377601450716333662428578275653947246314824002234716351507497168806989720460506546179371478872884480353356792678346777742330729564104217094901437897276690461652623410264530116796712545190574051810133070119141607145854734466309422823299086319189825010607986303198561921360033291202576446799010839616846949616792973699899905049335622410288071345686676136473697333416488140538225047962765510345327167110824049084808319239849403199635779135999050155654617107447029784879543495050710552180220256343085177248663301282158266786251172056764727794290829042313848517079380516943421923705594136999066147147612319336382043723204611038200388117617488272668694726309313881312296920111123923961618850851146165028028757211874358815780583707405163727110415264118033201992201623992762582117106725170344696343347645625195114949907479475146419653861349352276715590142915903387450363343268691073203810054056324289003284887908291993622165181832191669498776983991600058008844422256110128280064553729293422023136328560412985090098312002584276344844890403184993148166233351241580756258469374872137302939165843718790695559142142804201617375940696291615014503534695833566701906278262604268866038876616582975449983707976027986288688602604669914719167617605920497973269569492437487542603981370625685702382751544078271183571494226142974410478511662468286898316599373884926233924387575213531388065931233633089330005419503447746135903641266692149513430314244797967950899619104453660412986545432556051587653784349892960614813254093675507745521749820175399877686133886628784681558308781560360461324792592848714306806575032642216594449003602202208322539666149758229950577480651849984790257370511030776710832026579889623449817207607716730704337120126631598657651071055068171038920020515234175051424261921369989665300901492841871594160625324292134632689515004441565353128363346285539420892348447869120609260506927968859897686390978765308306758100847186738928542781913308781458032156571415093109914556554250114980079182650582759070713111185956526585085677235411804209334181919669661812318046416879951694407178522630418994867049436642926826546082254107847065812212467945836136496379957887801666936282408573055186073945616466676261672780400393265382181613251789296481131044346040733475683790905204360706485274058871290459156867170805231149768075676486445515437905817827539328464841777569443956946027979078443101765513153792435079829832802309349105380928257805294019477882252847670378821481733017474978620177363852818603183190613869278710947282874901953962140010755184097428803303082291793424133792818540947970733816840848553054319444511408126025880837827109030611706808423068849862541594069281811859582528156944771228405915357952431462738188530808396203707761819316312188264551010984517018449465188041278159268226553879835938818369614512607874298963899763220063591063403554318480993593159556549033181975925935556826452544043833646271030411625939501915543334961491026442471189690774608400792285518130756268558655352620930577848933527547093781588078836211561725618441140351904134939523187037317709730820313705566091780338841244625657695185518203542853414600886791640537426584934015046621248673813425767753521864796421756108701823902177957415615326866040037413196100446212642646429854033506113638933538825646228178857771745916208927806656552286590048867947497613379848474362954858804547552182353827222823271621649442691107393203621976641436232267962584474360518786388459858363469162605684864042461584736042077483898679507051242082982538948141051438875285595299656434599204320764587729505476473837749617137672126500339394391562406070824681432340722111771233674827051231713830588364516223687138947832892542228800471442010138391927286084234577393486947599353256899167941095679123336157285554035417459564827030508365125874309922575162376132179641568476581675454005038605923678483825603363937294791491063816307296035920757184156713341177664035277577735380524287645311412258862192827454281482960743220738516474724323608296816996309111644530493705907150721127215185452774911113374607649412185473711931924057380655459151270466364303928034137294821351867027847018043174269835674000894752995619111227227450088369538947815317836362576413410554146935562880230583768802116577695768662293089717270509268245767343025478683824213957440023542510624548550751010975948184676715886520497041440653843471290469055460358924531433065053549671450973776224981272888399037363379296278690650672741722701414632659020370263751594096175751762155726638752278093193298793363474281897638860802078350795997727711656251053454532762022978243894369729491163839129810302205026582029825039106908565135564337533341773634571829499304526672796514930194578555221096954350809179440865169568772879381025186861842933310633325205793821725550619574310306310072316931245388712050573360941289870454747693003920427287823569115190495358377339207102672197091979650115492133086274192804559660298047953255483958510545661038744066517302670920341898522434795522413654346271144619890723905893800910374061656046391156747414485981891878153848500568202063058427200326162015357349433806547396214587776216170976925503491417944284130302258319432883769633362468047896658573893321543054130647184910303821130464652607630442266765973456596676326465265826858073237525886508702575022141379716017460609744443677210285768116268403673427416085096734561289975692635265035661135261031088288467724756574531742889416932124448808633570561715494827361849510109065247010926961157418293811970962944359599083455183217551544254591749357449217942757879753379115682253885435012316328790108804925708412175860192928904670727847635724503780031733971178302991874791221031135323709006573165981605107014206439729669529464345453556849542134653493474764263484699621245753074055393049467374883170618223982298760156317670950087180141310675123011124769319344357309674966245931108299592206269842616271637041945822270428710763246854300489887454035340903511153942107904578220345247961634123099732493657899315212968081364471323157831375706994602612973129656321067074740960011731881222039532138488171372797306938788643268794819139997489144825370039870312538471558806889179031433962038721925035385235092263396725029821314907316281855843635638029787001531027501180163106043565027820788968081599883033738634950518626392531848315206585065884463434231347862805907955749281643900227982346551144318550351694155411859192222476796735218695281305581753444747045832288477341473536756631716350677612975650549657108740250781877435456936254194477516459290086411767035769319924356438018287430588901794225437416967910573624148199056253759746931908186708382795404760522462731256408989788727350432624296063984806805028455445098701000850278117199328036700881805540657399069656415135487106883447872915770750768329204790951522245585567749622836632398782206345386668932132940496866870459736743986393612571587770307938394989802857851454617582673845461041332535882717565074744773589587339590863518723212972044865876616138906095994728785353970858165406463163269146632542398543641538682129147240100595489074459787761160168693239097025996186529294036632686248179104074252577313741355911191835900794932947508275275846132051729978473466557864061910755834927531190346484514447326483637198503647012052890940432175077839845856218756882473598305962482304054720519811775542881370018407922172127718005201415445397249831277842419088042907635180153641185912198612415200675654282276537821748204687626676247439663841358239491991609030746165409391350851509791065364235192987708426395599629010569403446691335190182196916805285271458196740778702820451369275811706069632671995542181344464587937669834714523834931436780284402499355671662497354685437218083742755155746900232494625234087503996490485122223081786250300567866460660198929612580235107920427495156399303015365945392356729642099114949251914823705710114432169743384419841183345337230573067234907251806825512871623686449476965091610944242296205930979174198772400184201763584751628496564147035019724414708635037675651073025479186932365790805204303683621270431462686378134833914710626620620217367601864145336500917297096333468165967791156302528606210468074611454223779361689173126208234854573626309746941934486194977270695727255301628695341124476599177833053619517206014712649945328458898235229315962363515728819801188754656160410546689501810611544700441281405621580436969540578061090850537340702141400043579336335612996139589783943945532525133815638070762387179586320418522415210843716882379525646193975132976470906776350570796318185964058537609849277859748454617704540992207073720934684148016510494248502248959089017474805754146882262324517387186969075261983603485539442823837006705066314558818349149248270898781631809595515323509635587843872705901371100209978998397122846704751286562073677018732857728045442219230193769802385039140317998161232659099864107515304247526575194537166860170550005978918937162043802201371075685492443376217646859535847601659968516441042717985349226827951588228401775038252666642389591138067066993518535129078730233386952815220537329048552921262776136909250588352985184554745434486964458092144373178668657208720862169611502066972771045149938288586525594606536051243298151017158634377496827571677651409888335767172134235954893987126391054987872257693463630671624831962887594757919306897776431468497738749087743147923344612582678304648714533177816686648347224891900030175968844190716884658904788034168541026822170499656207593604362804221377774398891806912333172699547269066599794504393647197708293779194397928491596274025513098242121369187082221517867251174441460696315003640460086233118318065029046325885311585804771907429296329562462794100871087305911931165537339071938138473427133103152846494107500456221884571741888275228254296266530054021713939105848493883368298028138911462277023067393105454011423349020830109200068807242281016737700255454746867373723908556983711717220604999707300662092642980636073995177980366700092532799356866279834509997771626334512264658897553148512398416476874332828181024895988549995642327750031537369694244818438451188110736924688722117985081838065690076115604354456766406304779521886480044402806893660918733000766704592476126878473929591326312519106543873615047595628152482529579857770504996173963249470906291145625738970612401033630250476861886652474250092138738914732513839723890398900321151482894163451826288272060976386526716743168002080999193957328154812723636977802549146196481969922453624673718674823128268151018552418901767712443100595197761053278975881017051045676336138161071836892370705066489498618294736488182074034673606896911133630732189086389018049414166178321178159031806220593959943183486745714745744561321403150582155113424680748633273769654920109278748839315853153870645564097508767067090925964841470200611166446528098689198594341388541815221717337025640077246537729629895989267335720921956175465251214161069425280701481623357059091033258973565577107624459291009865756130934690464524837830361862859050807207819041561688141196146288642456231586615664385532495131311516609968734381930930058611555436582653408861412680065127658776770584657695644877442404091569262552810311731807092458410243334427171695007963648486816281004151446551799619172306326038451537688685894724251326897502212912342726775277623346677239934583917898455731641777253025181249256462726616700822887058043498809226840271783297318733123119614264258844771241333311722688011681551575847697286377136660109344609278032542204151474000548519958293168318528701607988767672810912513330070284827112665059876921541974355630555263260610051236600587432907211790593700257655889404582279790135831150178042201675666861709547247942092858318522388007118854830067677244494678921497803684587182471415884637853808686480082604210973451746851177121993000118396689735258114655174371145718217690733195411612367655721071681492338107273770788194719832564703295984923546011622317262429260710718362931855745206131439874409291694273989702959596694467616221620072838679539662671246308052967039776319402992191156059011838102974790018762468333556348658801796030598561664145145891421742687089309808879203708835485247958492047979018879290118468488760487853140288624714996638723415935021674023794786154553881213291244745794805142038733582800139823525298068277726932016637682126287338485740027748048250196626463889557435389565393620300473301498237587596398104407047552931754595676548736217676167929106100283074830500426646011406070668628392378361584481384748253143539275585326925488201253798671424286240663002782322238699268776129126019024216167341865436377098140784534279843356122254202854058428329359733259487033088372698302398685454808394932216453807313296643412948234273016527164423135992877453978958347410054223113369974297586551352185941751415970640009546083044778776718875672898775773448313896555928311893836537117203479153562121231836634707868629764044248195707585233149825323489544395708311340756257397831748444099416648753000566248332102361835958167452244579131751963064065801361243644053871848677774117635813414464249386841278419482587407765802689460628035307280303181550340496700251387700495753515955890460359861932473351168655217773639230706365170056878326919094572151510448649979219370815814903383225432099087856831427689194358222821601487161334880317302149738337273868414488076138932949912504526923383897623581887869148722959079173287691058598923792752600234828179242495520937822878197842853504226027814679306527595917705800594247970026517223116100083808619740280632771326553408759449483748493996822254288486215381003737050718609556227564558003628745585528125821006889151236318951879849938593397127102084665389880732035837666637981298051549941973900176517168201415091403140890463239453516655837856397761021127773438433568761367539586608644464068032405690412322018857771144592159139782171677193832982696290530489227520031710539512876185246146043277671557590856538302828081848343955844959109007629570302718853682220601342049415906297284738161006907361200861606635393978811889414796373894771082825260773314466286635541997969574860398237958907095768299733637119041528135078753202539548638483014250441772900463278698104431073890246952114477378386763958491237244850536385109679198506604970537803644573494652233342337998909367480248442432888661888669585040517595383230529741918076803280724415015275993768257986011044902163608587568275505097979509369129017655707746583860433860903124320893510367255382141156344069820699737711852910725999140835819957782474470823705892391110521895840979331068243137910132028291212954597054950716428955546542905254112682092427924625843860151302246868895852274315651851958566201907144972789541025072642419413844418158673469916002685864225533412938241234989295775363615671552761679068447749759227758500012854156102798424904015661963027564509130702916134622683355713509689949418775214913093535605555475939626584122626412048214097866615552628961333012081435842938706658035722800495343090165164069970846671339388747184191883384487868019608607148340272832616210518649703657124039416935176671292822211631423816093432836836616177810929268902770063375594401238578381851546407708673253346250756993221578127345315285139309097267925442174410133709262688700685279532385301347968404128827332002753651572356813269703743238281224954739365952885454703181617677489791526101360103383417406508939615493343336178430927405084044216457350895743067946153918066757656924092551857495799441278410959570663778298442151517736741583702915218316790615006744370375746211371708037191833470569415073487977729746022611371053230669164793700639527650295012667075888240082364546222707292445700063463016903403585054133444003495492193715508234907718113629709940802520059178151197188447363980105955553397225560596354191539294899204465709781435388397752063929546012141325449006404357648507454410558818751123380660428503193595859353799819374371636648306280436699613064507683740115444757188541892167578327049910482217606754543944417402257946859034300830622391969310349907334509269179683259977016486028525688084619058273679846668732322452789323233303417945677302098513195532866217622744846804627194961591185618075504148629379946040388189029961734223759143860431550768642576394241087366053797819873289750178472416208002749698813758541189684380976651193446775075738258812657743950164161166908554120204318828955793718072657611195946172527800454457795272861836717846042687865275886007806964067665884901076398352515717048481867928660025324850245386187590426054682117728133753491499066684266699757677239530158428418548720778005426320424954044853839536607111096104267425555394538496138327612753331889515881884794128592080573850091613020042454026508530990850167689886797869765219327361901586822459090233521126840589520624185439607098177726656858630674023366980829517725366667402026770234612734072660130572279829597541284688669247559228518685207234897168704309731080134104657294489522933508124805271412300836146065915087484619085681571831641301944993120907061941440753058445834959009857789160148007544718918005910377698988065025712020784605775139871997851396112707281581299216029965288695618424526158598656851054743575492790085929825050182694905581454471635569620058503445152741531314476821311045194975087890714195093664236182094607717274961150623949956548365982322150371946069499871517126189952742754137552102092047113054301560649039234535459140194111183562648620959099048553714868246253074775105435995085459181126383511737284644160403001033879093314081707003441750458560532640810223411333382306018033274464423960219001150793766867283308768097605701633435803687086129192320657171532765171077868954175477812867111088550337214715852384316189442405804684129963219690235416943503424673762841147998473610052519979390916857205639807415527641980483007553508814518320017944475847138306793113496201722257295908365397861843301450657741329058888822132195941916806316317777701575498104989414482075083617422902112652089690780657603264508770272636784499512784032515133965934650674240836573931601212924342802718423499563294168681333627496710779977837743150654197707821913519832518424849722475661098990361888277018526121940709473239279007116706011852869172961060130449061523252390516529612877834816004576502004132721283066415800186469675626222395738090177791232200935973703643253608738072405141477643607889312397000900041302091532063935449116284032047608074388555835240835361091967130071647069874529001172345820368268529687277731299020991626734793055000270086530007489497842699192630612837965783433311312272291164685799451828747391562833467428118258935610571114244431697715110948773072385611394135930604675002790968287620308621132124901709229990608347581192547493249592515025574142214495776649416987298458590240310731350919491408645657441896098311408089144458365543602402345684517598534237719519238860975468952068868980038593856893012838535834971727164332055780120217542380339767831540560886532277111905446536447514549359308641034111893451647396518685083680820942360364844278996945064223788413178406538069532877953594459252124205237903191309744392731566721855967607694801744859532513740431618971614370161930138485560398261765615898711016757574145936152568283708476774129585546892304761487673553919475029474987526203079649659119788758874172880464472841288846236070147384148284646034749284459591149483666306841443787729687098826051329788609992434076029947505909003778818632083212747053405746038677389383372287193941211233052753306120357246979216833838305775560755253720893207022368675471733972105348997384876230223592117089785051496241718366630078936584179329635615920442421555050080820578728236946839658577011884070258965875755344306383504076650579103242994036254562204139758624143247770697823487740611707304388553836168586947550706311482649798178776907156683978928544486767485727108675377156657740509200668892010089169577961022398465431012010709032492105862148064661015623346486603587220897226471722347207840279879015701728636486913504167644328988290735882812975584323485889616476233155607263031486388487808124911433388107344824667282112513044184739697374309288643410823038284411782483863865392029682719819300033254503730206890748170577636968997321357591216539714466136304990779499777890912603994083510011277292684394220140207419745013321054629352891439566226763379673421763622061328365160220179007174847401346974867665193100750178293628776444649426844682913949498817486701386034589142509585991313879832212090665707656579058757669354797917681166625671034923264976805704981769736890498382572495879980192997170210247095114500298664098155551557618368922101292327876448281956376762668320823193220652014744493576799761604201529265706690443249691176713187533977150010933160475022517276918327621135365138801371778011055836545473901595697841406357314853425450818092785191895849946744490034161224951882764036754564113842997043766290893115974452840636939674590654289928149420032970156903556277305845253594869322141995873629389430225542135514820295806228114227407150065406721803538846001737947602510312878776049456467142958941996555439645099042995624270389506805035815844026107888903403068725909253063390468874219215634710280127724405992524374174522518027363599055198181202569302071350319557649549034182144691149355532175326157859943124595366213370889652221033959945696361625521763615713179836934540930674803438579967167873155281011330960562388283710963855280387938504592718853547679344796845348685467835181765616152958139959202654006296100688042314720224654669884751451058418977851172640236877111382926018096198756859707528884993229981011940504186203131167044580268566960150663976582378732184563274465283545746566481090481514744064534702034204379300145041499348613701833280037189916672446821099529455237659264674340502126655707741531452285189227356927044914631084762652920519812012065543584619487481538076715398912647897145943419738700897885684634841399870788020935109471083713008994696664584190759640673614698365426070220445725874237889186473332538680088325971087373607620419175586654729051552443369107213971830644678729858441893347319272025979147809080538248428845336558338054121963694473700212161501877367843368397907522877308865358289716759927794748086966435647549742451268482669399530754022180897355571120411860155516887274008430623523119798786228870697694564919077212099910052130846322451440397499008504414048755256031050975441718507066186374361992076858630262379428408373362434529164838221822945218531805609574406948093674046484498837818941079894596264934971457739851576298793954028599781682730582175391435418871017940825787491067701868716276230775506181328877595078306064625815259404654922864033769498707021782024557432787459677788439357237856360171528092309554790787524616121751691310110147302035940188747961453077620687167380629251954890447387084509779335316825000624140249363935496815645693748095259011230699862899308101849989992007398932337120865151414199752696435796836907936552532281216792034106943612800142589787351447886674248941985928623766197356157264772902065541935354231690878331933046277848109631564401043871890725458126392895742839983716541970703220132016163756203803209120165287536029386000981620525515366744445605605343835503676512453248834837827500587096695450488720358331726071803716905103341387174061332444046873370140728242625694906480110664731416201919090638599806032696462096596698183058325596293441903821951007211070167464830451121972224554165186965532625109060111813159285656620058888668514457784765761882535706727753794913933821164380694686316794359813135781120976977080466720139598605228375846858215294534560981724384506056011057659875948100966092053134304997506339880703703450966173680703476334612753679169809725456602224261236300289845754779850206002415986794442799720899057222376131243551138462535458251390621113023914263187345076466154839381607381475695542368733092896296104283916453201985157829763366430910503132186453635222064478282849756963201920627223975321124720755450252854764679649138973990264552269215827553341260165318785276058296239356568065464136921005007297183365192353113492087349655250544815485970354571945524659716706387510511916561572673222609738983877788647149921968356136652768485971391883401769281977237239259798028552205718783944671803969631262318947121944662425914625140232199967743420686376078953284959619921511090520146582293926362134711778508184277348644891921549265380637569939949151551665922598631264721176235525538581672385614463469296970391294837574177581536112294815983742040857670155767477986461974506400430627242944001678097346586669321063603875962173763475503265533767171827388876354305755427434547066177013368502959008557443570776402299059578548693214379507679874863491341005314727702535544689562767530239692833524375432608191724041536805501803516965236209636809224183554415918000642629855493405816882565086885459534360110458461978626663584074077152482834578212391754282453653175461588856433238952323983085955337708230138327417835653488632109175695777282983014831605488365932518104895619794951564205691133963577677431462179042216928586695616034261424090829398200815008724410835758074195675713119500886419493259440136455155134422885429799700253114482077374800591916475840896330854292599187297320051214590344334540390888566499162038403214743696262698056627201387400587326440085117659694242138469024697574402576594665828548701965378061945273001822040080116284073140317884001103088909334725932220993422403010934442757145771273131336889807872045827397568772080325556629096868457081865133298418657002974403798447980709318301527549807665690856507622941554325404248383357109971543277448333647875632936682252361875170442329501404177603965610529171815083979648542015302945646512105916704924260953166377689756888543821133572514360184675091937213537000473591228177174656724750363787055632577538258339184462113400286465026288007729834221666040707134192517858472583489129048391576306772311874760103302193749342178193138553547077132243531718268429398610498376836671807155390005988207731191529610833644959288558481619074215049493963040311391259187237105745205223693771401112712356250229630016722588759112909990506403905406685487016399626556556063084961977232330935137891864895563531482266881958908245639240128227545600523964594729417760784971473414066193406016106124468967678847157579663886726718868968412276832725552566321480038131459201362093206588593014681070487737575251945243016895109446474212310834199306654187518891616787434479329601114093671868605992296695292251263050832415200662971747276890047264260879721188456698725306650646732735745995896082761721183878869988764637816868134856339126797398754374745629968484409260779690601161372940712234891651836391099344774873621610790884671450310766076969787918978741837663087881723973952459261397926448187629376765641447681255325355691182675887005264669604324756807483815953497813815944289150265443073129851239755464523452936617608018460116649974999113886788436026492780328679849271338250172535372829562493717120641690023913290263110091004437985297274056321593271135785537334706798359942948530862809014329571399889686257749794031790269518578225734657565473101572732102833177785208024248523379566525611372663179703481333602016792233618709749727323892206660243722400635049610202968856638807369231703308188521581087117222162104502834259728615086842154448925688317251771107011266017701389254702997312404765164590905432468233102259586305284763840902969350121568288479486921324869695923773049072318694583679041341543304217057088448885143461055363047455734869591206937133785976511687255730718941303031082352052891133697291623821056788683767283206807967021462029993860053914441446365366412560981901963269016899357539598002887175647852601440107232548594526177031360333809821840378176897819499658275814192791948912860800881962550928623745022940067521264084790283424521851715398199956663006552010376412305142013704935854884290807631500110395874221588609732363407885715967385768798749281987726743435169250835805952739675014907966363903178940567086035365084915861369119465125975727037279774611816374918646318704663456027850854600046610953015771232469497916114845927015631095583634984171635619196725653826735303695355963286921901524553916415862008526258908160934809830739132093177343740742575367064171855933239784090016780794409676788868354809072156295617762699736171044585998053424599573633072038385528154923066984307004773383674248643950853780529619004322081002975271578644879778899742607460580974594118663602985649240512522297834625761017994889677677462842530901680055329912638465023954160543457174207364939458773336505179154405249044875199649567145406250871340632833922800999557331878086051128811088829653613740754754661753902626810786636229970630936256945971163333719624956167858305315361298634701432386674259987561375374195355655035232733632658026820192429697804980476119341929157007404673470914365287516318006817730283257174573906434153722227303752164664677955896790145856453023827962443257802502974737078840309103050334399230889127896455447055396413161302521911447863211377021196579755611307950683980038791255338453346625235839217353124974900395338811337392723676858351126060931183439222038835684815206774006813879654884665696375140695712347647303869548058625870576163833855269924094100395430354707311973018751416956539063265588075679163934571445550318310974591018563753638065129307268035691566051651829127059413912595076407541674529742632601073405639736057013041163003258627804273472358187493784556682062286460742746247056849590009094198441840450984114029947870982699720208110555736417704520837469496055874777722645886695001427736485712287735428956390555429107600891354998645075819164232341400507062732020854550486123664235215149761880922307919553088105369134381276426687916074900184400978082306350168713600856290892552972097123812537987851986688817502611640382520035269665114704528714349917175939989555249099333222396221398476854603974136742834129690663811373006822323065377027547790417016491937179776289160029499863320913095563875041984095704439097919761412900288481539311847938028540402694504538217110741033806571220634177581941891666037656532630381818681819607579932035237665130331314761091155736150514848089448567700381564379006244797301877361031106047697969452608495987260685689947318872691594276007703828821514026859481609195116044141585688767932491293387504409270861491576115658310467176340069846878926504234356622076712682576767184076608834009398706321617500881212991502575103663287486869678453898900393749569907220560054922651353059466501203476979826374264096776422368239359186548660301612392882841452812006026825822489829869381868184927769879386525661841288078560379426922239357574169371036240766555776322586409661138360967709659666261363840370010952949307524544750843348381379855921756859629525936559131027411745707260390396227725404497602809367983878310438401628791428339559382496243787691504348980996402255892911743159580259196066284808185061711708868036135229351341726851572864534953443392985884159359229073879172944978824433588061305014565625530582723490803684134093449312364224166192548905794484115443530083726652278357865158147122986623516920880791217453801346663366711778985474124638077416638389228207231358265921173492127757226450587264723519851732168329360566629111992358131970901320817596541807577346587268838282343023600033121770235602129032210349958515628079810342722572967653512599166798726999729481033494332070330844873072143280092170358520163080108164291700908148792323771861126882036753221728051475121292290824451240714490174976275450989610715224827447887366472140921738239776297310608197110357718757800028309154652088356493423864940897931519040363821723683487208611604719784810943319264430365136087609246507506613825255260550498213521200556243945426018561291668733180324868036126895983624489969308037339987526085792385316311232002551082221729318552590388445982218000200902606729566945021292640911191158388222599798295718396421251060342559572799693673626199068779863746961838609938861821323744919475104563966034158173797646479025951331085435352806513492600277908006020715557648270787046078799979151465296071018399077462385904611236340585269814278574713598796167126952945952017883745568265360700037131051271402929713838147121521479306974582546029066214638842466568849720770800197215191957157060536460712578109952945248165849806055060535623605602378050021005079304997086741678795815214542976857812558711967954137499175048604666456483932444307356985753164318246438521804124622599634153580665764244392006635281942111428509004272438550652583699738766588240465063562991710040847381438526754923378900597376041171397303801515044107174382061571951980783454794908301581662822915364845147286491178917518774452474134059320876944852941924899559950476619660550561630472541205489035492355832095506996546630017164154214237096533098049830804997848237551663120778914743905094216150507041283116161635077357632048551561483453843454293898377391167212096117836280843514415495691195372697864321305836050713521897145709628306163511976568477779167527330058322044810265837164121119823895815725298567973641631968523942206517080221559271726775569807657925642312913611772009199265632410391149735066708484926090153922870538021985575621939187701847539487713777673543509090280652238304637393342652643301890502289754350739375955224791000249786451041853786212664893145900850326602139065123825794400407060242761161041321546369265273537900338681081852237948731437766236637916036792856936871021586195760301745232453246753789423949829493967687580785149890073948704677299584905923878391436669301791840337503786014699215384020991278751606516479475103103857553796652449753852406594195916822866750113063594012323158859638092335465404976858324650519489780109937284791703870854800748861033649458193883044721535942886376843486899382210386634080647196816402919577253007404569968729772439444382584483395707132283302175063391978461025785124191489890270958502857462370196423893007005265788487872142999822374781649789088338134025523223275846783851432510377342255582275527093010898246264821568397861424148857212272323491772882523308283118422956455912927957742210149333771289318753005706148512979991041803383879504345648393870252263013836139244488066838198289649118663884413749381080004851866515490517203433324239917646025488375939189143119533730336437535799216973514221870623739706478964023197526309158349905330970750124566099962909666974589006418939454533405202213852958210838028150300651178012966438492218281335003695095191072244327551357658061762212712555166428560292487530115507023609084242893834257677787765400610442333803239507293433442890561618355753757900728874275247201726275835793136286598171746660482213375521356431636054962452348814397558832947064513929656275321625988810521371657739289422843132310443504855710412536596221505601576115871255858898640299703125304237691855008052840382335800203734105247194262150163792548344116726399421639462291280373102160646150498857274848632024282695934941721330606113182415370472062278763411664551441966253670784616832080528937881361275067516307280981128508861932498297810989174274524931231603919356462488956678053760907244244446086085897583372958444321606556225662697815046405582098912018948827483691475603696011619255502598073007459688744726207902067940028041355730704291154773980681495660523133608269377916338657635090423116989211561394594462323871617495311233768678424763801922423758473139065115012427565936089906948604469981925116989586733556166467350634490690714955565867682903608598516754188391543195550688557414609021305800426480157386570874176104958747994545737972656182591512980420693921610916499765119791118158952407811717468998089244003478530850666778704401199666205585779044527812470922689190780905519725826660807617127732268610409415516663067292283244658288069811234039310675017152145567865762457925361670706408819533672481039785100335932066207088679341965945553085202349778412093524402738629096349603006203587409125358674556520636575280169807185826145026545178449243560074248835476758639053747927755012300342217854030464272243435930199861863354873655789540896021903118863958395365777605291096037053798283868342642449565583850601946995573539856322773661193183239886520398236914935289647988722870258685837797562133083641714090360782915212491621560652057622780493244989547643448150106320436192785994080152524189845025719826278402913820976027603691659469307682148773716828151579006992048377887906008920252203991549922053895118529286722842461206136470343229334319346327007831512226105791563361906873619014031346614344033827473333496356424420975278162565308075502931101887482777707795548913424310015225241921422244762325678310571168890806803918531460260431556448157510388198431091325199031435860969512716292577132241350263821282539468249645344920775693825765431439588942580739476906363572755043324958975459193928904644958079210157025534729949559866251101311160358048467591443398641341655681486523329984581529975527606152392735989374845619383554109288136456877582059545420491443413343733807692985635913611389672517395191451917598610607449502349747101448603560822492730983484338356149131136881949521911926798065660176373021920859392107636599886055730351262685356609232904436338881935280340990440304760424621451629360540317506273393754521187728382093805810992363590039703689976267820821284374511395362727079869218932510136774515177926739898513939211776914522023387772456424933893074038461661653331582641389846682640683172985043916571589046733579360739175472293020574893703867116903111093259186695888431396211468289918067609470749265796057584122955665141296004319665487309869270247294354303134004288967729136088691613698338470553775322158791459936727996224961327536617157383996778822025410322862670334798450578014845857817475348791400312547820947823717668425306905641249505956767271990588855076949284948222964368703670281402265779871735991356691903326856423165796434171460196108633926492713601574853644712729069364825195807452676348384685455498350291364778439759948269570871440601965431582360893983236320872851608601108030391961817558370810493846449912607059104965710643585400304566888411421029367312041860132734746438021202622429944211501182306256768814871137186131656959920470810913358214286127824766146190371318319397586575765314784994471518790752779545971927775495505368777981612328413100380606423614763267746263172862498706873481440619849017530811065939132474551506701163559478791131673329713281111390289117653279088541730745813039681174797968204493350221405588947419154300138166011008516722636766498128848756912892696827212555682594609200135551672465478924406609299391914130045175918129054056933874835247153434446719285828336418952758764114647776348150782314090715417895616781960967519662155523688485774759640050474856703925968921085306427350688476934736905513945484559781963780219429458915598615892274159171805365296266968976074726215413752733318846148030207680023866025292727693254915921434871438429063765306005873180682745310067683558159757570173167500023555702436855724564544011513038254143116509597570865149882742763748737119143694979925323763975173407265591247180540805489570718407567242904295767584585383948086462502834285019769008246713837875847708848796497838346116229458406861609621186891590890767007228022837362385194560055989330953829032519500261591084472056348452603369077591755652069445945550063744509320141422726659960221312620335799872742254134464314662175495798239470078595774463315304583806918467438841821384255618072277308856606245772016233557411066699190027168486478176205575316072468026549603687682814032123127347512317769053741311970863732684717445849042500484444591347992995665448301453899324408104557263029344638887781781578586440323763536212221447605296153635888955082776516974008814049817796650851765843025844605915792560610371750681346552150470480764748877063126540616165962335853196984932294289343985444444504228047732201281201705280497623704032476906938778800658821775938480786858199486466664358725481627547018363713359763546936610685458292824987111071681810342097919141899855723859668485953581101423269602526492946497382117520633632464228505604085523688326577882055403862736352865670932244981140966058964214473421255993427972323033638374133599114395893730669470568972139061735986560801271558165755396695973780785565141575529898686155201436018239928083157941634532878448196339859877281549591144746336166177295085391475127932928619192924042572780009014707181943548987980335357816462902514128617003479500133613410651023744302328861823174006060881716944952066608513283809460385990927051968108027042844057526635361217975397512044041742348925662087683181405282090082238341022138566317534389742926023525698932341852543511147973624882661746513505903067878649720235652735872154126213293602162505800776460364732004400387679804487921054055040714886018066187106946780787647436849819146178793850361692555470491797429986992378111889747973594196345177744130969554760934782000847106543730043330733183055592606331024994128034463729371394952692330809579092490396777019062712220583445569761340181192137977406883800411126438621327958118573592662487993629929403103627105432398252287511334438977682350210062797451818007072397377331432753448415173872997530492086589051038797101373449786064795542649021910781952302883757755458876281260887617370167263712787669830268207951988923916336072314373625882544477348461823148156434427531598287615488516689448791172138366547435481789405846109956785621612503833073521540711429969664306129105418153469948637200603795717184532884305012072438386625080325570789699126618659854010907892828682456656135570557934169191775255295264576810673555655282236467855543382078717568002758635843149997526230989857434747737234975153998927481227516260679485355117001384595411646390893703161227318050287353585102949694033187871134145785179508314678349514018450777562612797308140596775802875115562750479862722548124301303221934593874436283552541713055566567801720606909106687930446067456888212149040495658962458025708512612448759122960229040321267293225702798710950945835267909610549666075288193490286230447849374355209220907736278126872041381776520871419373726032515585403452381013337533492491068493443383900478409088836958691243821420824470598168755557984288662150183821035093894707843963103164295902563487384922701347402928342807694093279728183338162255219513419343935200376884190278603270660933201452359516507441733606938802933352949191290203347946921423835442745689541798705845733431131721252362988991115250857286303504809345452472734200228877893177139326755017622248960725497393813447922273170821566157521104781449348025467560993242887953182650976047602053830800222027953952231785320098842607215695385555897195828108131041779576381373904132573539562802265882236058614566271531010477342930501393924022231642989352115254333073643499402757701441122881419411588244998709380880923645391998101487065835020937847141272051749169614385002050558433746967925242977243041345607509833004501784092889421315393686762145317058715649523040034144807491711045047927802190592170139421412881949638998991595879917420332849742261565445439149326083670149197664051902924815707040526455102882600338525010247732101789311531633062530551291082332048762083231501730359004823649096982366786707663141606776684882573426541716226874726025219450444148838166540732192662842464090233932844844359582792792940671206486710844039526192164689167461434910823498814903812034956883494875141318182645561097298987918317469755924199087864762814521393550459406680615962517971268178104528734222533890644926320501650124169264188382192903483521683114995957600123248160883630631452233901331333520232978051442448644030911830334113949587711333032709676323950777230565347691943765262822110653153004511424803895098813487823674691349182443500634546969288402700951285414236319812346067749852477039240127752433755073474807189586200161731891117740555869171693185000299255812814442997838889221866153576968615459695872066690296427538455866840815041167008640469102088840497898488188187429830455792653566019352959579854914388901646137602485325216687427514103607178390322785692581447241835274830540423537513962646270226566771570129205732584749040723915289722473154746591570177986539138639456564340940860427173277996822665480139934879532430836969494049724860607273955386712917597111026249352423102167096266805375351855525751021646407860668619913409661732538332750556782587133334357019964089084846604607283304720404539899193946010823920362672841527724491597162996953716692181926659549784554428261619387305456410377552028598649665123231962100989657306127865361404354125762756203270713284474299205162224416896365745257806045531248235278842328195323056890390000223256332905607606200719720374399339022792524960876175224214786009129097264247770099356889650314021274696902348366777409736016530468289130151290293519279921349427922804486689432949102104085911383580179213429359440219454474561297803861975002411550510806675325818017989510040731205620519904076297912565323903163304364973200115143160160630456282355337115186186269031774116519311587853857897668458840352312852543309390696417593774100824204379391205921010037769314171398641271594662929552003145711492630142707388521584494012111062003067538059419932447037356173105304385342615348940390924552642735441558880599866766742565587500782088687305658576432408540020253057895958951690895840387956603182585876978270347875599948573484341283290058832705793075258803848493538162101243376556690292861681382285768143287654649543419684823190746269670092416764656514740133699378539201645384321057697688242813602023964508795617659801680518249919565561391805211138176500785992674209133065519027120968596883747494920332890466404289826996502306180944968066145588264272334016787474209982296416061064237381363023093568671669582404754270644550842362949883925485229459830495670025675850043625585418169309419047120223384743528201254850225352667069282843801706384588939814662758708870506073523256558889364526283032540965879817922124985905422476499216939164571568879983967539818893323652211113750840682825631784419806477704932843809879110598310764205194630567933985125176128000074849194663692675446404955845192774891792378223623228375155788878701055684065928873343703075419306808228047519127063021795387254997047810410004452071151622896995834695881097047576063163450351642819868848823519341643696860309328553810982671894256409078401401589887261308391631392854880941465308222788011456344038076747350319562204151852930778635842245183392598949243835850714262358274712438662118144473331171331681637775980526069324571487939148649457933178913834730817628859170657355866307483576125988389116718311170571115157249765927583858577609216389780616925505208649669284363206063934279097132943118015743546723078867439262188529117435330713949995585219134664989318015468584104277527847015937753687245768589626323478472407768106789046106307412537019415888778319030214134332416839244281326859081318475997159477924448764455707830405517277505021034934373777527130116317461934719752565809057646485434999683290007195608520266938809760596517637672288133099027273124914170653001917833672221422536063339998578727186301767719242274094849629899212573744350889844521939271301913150164445894586784917574123105544420287496990090776828714614724612627005296520339382160849441760451298730227921710483020229973195961605965929289248343722152779117667285409075350375793051222093791287153814390809736158483866781708598672168142764059648227973521110800107622594841031905225260274534385131025715274778371025302896073234984820876794874554398468752099243402818514724205054157056132786158841037877164812112201484859383801552615817456617889105673937257838318517112747238761082556777694086178867701914033483232788399423877295326866468181873293330857367610777801408181447012674530460735910532996016824489147789158012366228246491755347166519468174311481926586501406365471972634917689891771206390753812269431390000240321125400472439628535631669556794473215798271692531720113404979149200991793707077122225201502148915932233759618013874147875693863134347235282986475106800168886421656342348586364982297146380547109135861018952802531670823927005506155069372297143345981443693201306216052513882029983173770657734469959592672999663622500780102934928281080048474290651471113648033283119416886596524557629684755322740765505152958350126760291918907016069730106328862217107536607294651489476925953837748798245286428875510170839762679352074767992662826691603073243929300160073097784487264528299942424303123215161770588482556407505684779543447246947703645477625588939507922799792912982181215589809536337727664535836780213286079368847904303145369638219839543967151875855752652009910904650143992530686869326229478454759621762597446207384155141763420282867854071333335911130834313897645448397554083954817062308813739524695453423948694158112984566828286480604798383114423919991180120142134919712575405065049941012336170275441751088680113523694912456721066190541666092197134262694966129923890798227958546415059583286648132105585695336850151336589118390644060469491126601681256304503041867015670897290381446195319274364033182090703620121094039824113930707085694592506269265715771417458671011260808808649159504070345341945446238210019982869914103235437230258435045963352877451668534125857604814767965679340550898395735938402304845351861035601667522352689872689986171487238612769272375956626292914547667201410679352081891903763110693464582552568915908240502386848005742548112910456555626983796436534480533791831993165173107175981150504564165839269569458970695529625387793409878849882701851865183404804108390103591367698689776797396662843433325283794394057254212207435947687644063652507796827948447984524758659301655558137881370487870201837350144168572703128987367763009785881228281152169372859631847225436615057102950214452786482215366079983848514428586920292706298605768095662289473865318535290175391659766979452703574136687566542215236295662843273065965584522137654421910622858922254906888754818145706998456492758862637731984568217145961114054330585524717844447786163516609489241802788048242752937238814675825324630194646037435510768051232259746800311870562719544516499884496068082280940708701818445965985884211123178297872654679898596299704355944212985344780228370827886815178109600862470267892363244780297575282920624550216784592637867631236795949923736936158787226584242030366183531576305505883115737969476007047317891603414649493187684433714229351923222622111948988250763567812114440012890521944446324679462038353443156737762803520930394809158737564006933339089003471766848929408236356704808620267526598763550854052354066533142437817161654072463046303731887388510603460537220792242126742904391729908736045882610968412553660893225571538742396520917667381935638995739316994174378145132630811157550369497701457695462511997992681566074574089345187690474613629533651405669980160477253383242090494523518475050367286066201393559201009120647170731352078384261493719745363814131999558067374065788978989942000718800586846113897170272605079367851486874294837143345013723897799814643714871734349204347143626239889745836507857407562070670901511785731662475624546867943154270229560178183624852506237383525659476563117546987605729263331585123679585276023631057555050595459861386403931351258544274182739796349531553243199589237773732166256085057058256864059087341291482853651776071872784366246241930946007056445915149269969418704537320653801530372345421369896450302492101257004164153350515745492772154568532403289806522534383075321916921122683982241154652173311725113868936607965620234720597000666333064813818682886004789647672982614853285274005509194367990092449421188990978214260449487197007023771203004549346735873924789639265058833859833124147490847003808913617277013551404589618113733042108581716657961927517389863529733998901935792738471880117142739637021456207848536929442762059533169360677689387352459162807096012364766932136878010093155077812301461738432827762888436744393989287942727891541361660164194890729263632843284085907805895487860278089343762489352040637541772578038333785221530087074329652361335205595270663259790122647453539418936289525306541248960827382112659669519832845656729444444599443291371120056925401902774619259858412440634969284589187838701816594567275510367527173512500894909365466112550722386811607379456910989769165044634587692105473842518140559940157086373507271196465092662030109242687570113788198519613139351462492168777160622852631688153255667238092917463236619053507964015628683207375602311589777068333608145680530541782813149953913298038478671445848712201364947726549571776236260612436670576394859603695058979769693445384835030090777916168533851904493483102527582961478105055448903958658145671833996155750222911553799069255284246620069303785773871338949077916066769126701979575991793404748088973922479493134391032076089832780507618170448519352842453035577526494243198558904123167303553574141941378440809512438152932005462527601707774772964630886510570578678153287753153553870733403328700105757523635831324062317198879702775315471447325555441126077009244989114801286869942538138777604410796853549026818358654764724103545219680536019727380604463688719896352200380988938939814571110055138123876159744458189761872115888079230765249856033833008247943051229134074294090732212684799408956945863729358265086978663073826904549194971285459137448537478467003326536746206965850482408183211090235805418206567485435025542666779499563628052795414932175210207143270813706868710077760279463296626843593733779473142998343841635028269206120733674393771402188576024060528784925921095621380559602138969892697751199866051182180120604135090030079119000545316173905731418749946724797008106613942742978977090717660358289498903839576266310901430531848401721243873484089846871432488907958454161502159986301677419180725340716528107254716188856969691048355884658369952357971329086494317721686961179225573822808438975205941682552384698956825297124178687000091541433967377888886486238214508732289400935125890830533977234053109608411301271318765043545273734979102219345108858804672374966845262636291301091386693666395302491250638140039075464390307521897358270763131914873187482173970200413099325432519082573540119427133587560971307534239778143229609617038739139597446787736662415497716499028527682921478961692244224327656655848721445533473305798431171849356202023469560836338706650448809703581406468381421297702926791751089099933515295788091833909594985514145603728613616910285522862126459335421903097881466773844375946840921235844213027037759659534324813765411699303608772347859454483680596031636312581233661064435679702832933546972026725278494181891791023168348125508018998565248977249552706709495277785640742138295949088458469758823437250158726581100596479214158798879611988208676211860843907611436231213242212303681414005503097820183677851086858141078180364795412493249554126635834195284291641757364651327037942207116343092724223583748768069498343526950851898245673416628683123504903436104916668704036821919217857110100328196323277798912950960616854302925539617677797902266008807413704406154442282246485088360094642063126166100317655054314390473271540770227464198275612263374961122874255874558740068021385729823993277257070972947998479426394087018433014153857043249613611885917011645651284286575400207055187243231833737586777747503392525326516266658922190550065145629859515805810624278209932583348133442343502679186603552091362220797322064139996510877361459605218774775185313680307701126867824357443770807749679584636351346411981203245369633953244580032227462514616305859974699899600436380335109593465883292046305810896198545257274979856974456651343513397740947603769480501617431216334671453598152272388713471824045082514379183271527318111687169601423996980961147504159846801196461072937375918403346106173586332266887294718037846778613431346947460143497831263720267042414210337888799554454489465882722400748746402210824741503315823396922747151118703602588558693896762633316447818838757994955589209812729799470517833270380367817539274615624158210632300339170801956385953641874759437691321942115554739785116986863422677708884184800247533466493917772210034139512900727503683880456873439246106816122664232709019219706679177283327919206024328387043267095949051759945316118032239676431340445163720368331770489797687972204048303446264795621449320657166636595300258949840570399457087704731229519544934803372994940621136731780208927703338256520659603612383199812685985008314030674326083467870200563359452194030913169879627588369275424916924068065503748228425301422031707112647224258577542187215712745961254077538358204987707197859481521685258515697883358030436675220081756023269464047631772530386355606108706124239422848242620969156238590090184303119587119345266863346449197545450998925535164203673259631056093772195841703424015250765377779330710727960307430417086951410762314061510657790742161604387693086536493692575310625043597986420740835633860534132305779984731425143711543468246993232012757976152417041617175908806196973465086280504126334924828914292211668887144786507083952710904795074566442089184352850637482408939650585478942624376151644806785021698250428151080081199527566049468589022831642765928880190999409975322058905690232260160627911663620023055440992883173285538769123334284138639577572426059945918705713310504314286658446440044889027182144114219696353797696092208881572674675729464565810942745652864734177073060585060012797922806769995983426208427137116940892404507132162933905467636520103936798348889743718437158042484130312955434687767902168483066171062565252578290942710422711588686193380236487576814566231135736551250172938751097154566850391557341464443538964005075468511939931564174972645596682907571967720001599310481577474586781099974305417124520121459417141932255281826427856397306157029587832991575862683611972029050312999332301900594745973228896098463965640441673427386351364307869599922350407784478218797218517866402481794524474815658250815501630445696078646412766309438109840993180918065715053739429062822374917469885583725054589331860217125062341295710040291287109467380802381108416715475091890636548118214447926741693063202594930929803804650436086079246325783517227504841750646548231194818379964784029007485865148625536869369222131339819303607774403096925085419151438289965841632520011638769898136558776199176640714048411046672940195650813208362235482266822638545423275360014762355540864507495904779001944658503643121499025769927081555071552910846064114101184863326249930093772377888198663681772246338608520915523146280286741425874447333373976024318525889801566622747215707789915224319942560371651360601560165102444764376847943769981323984325357077600029549376508877922297366607542314847624110523062197573602100333093032872316840338253210105620142975407770947424301825143510822893892158587390346461439953223391360606405752817380718095018711692261491785724187437855879957765590228709956048515073973110050119879726998338703729567696448726170559737030801219646716402809288747629308384230684991050153371452579271591678208792676453762971772404016667647565570226015267051218144948419341535424225017978528810498379571267563367334329032620028068378989373394835193636507090142975139597242205318849675228187884090168493129087267398378957961125486575663455884349329023673759796812717887569490719986472243899921417540788941084702771358099929566628858223158036711036483923389545792959004722651341598529708718973148927210467825759013412092985884179382224694920886989859430749363668684921539076827756512278572977429559398689115347943947998208213690855357980509426341803799860461210483919239716759642550186958688848867199272664151153095872336867821476196825525221953219385525020670884603726820842379950112722700300574233705567208065139822860468903677228275517684253671874027825687621489522672437307255809759962789914388727017290888270512932488717221904175825944481862143836623301548904829070591354049927559277482685986162355636336169219937719495926221222886456518317076085673173313199168941270642190632936763587368090887279766002099052404748761728026846886413251728761532358568253099486875621991405141590840200389250294174121091056391951846571451440169089463945812985654365981753578142414963485609167170193641423783263429161579914333608903126854309251639301698889829045999616617381456376952180602114163317037332488263859876128257809703568539416691488910862220660199457098192345948504335466885127020854243637317685315434054128584808480500796803774325654237018642804750067397911336350652446981911142897876271872969552404674469238331307332700422256508393465381054131948367644498142627581360631451874577746202027480107163059503419280366043133726914006816913892390047068090586566732296965447566057820371272718468849086953107413429256849871864838357193172109720839221682453932303380808873239054330306439541116379741995312898347844184239563724355043286016274354772554198915416606928269837254227055238106036375920361737103083094750954128827418765449724802567284182503502236231316171308459035646319502674747607556413661636603340413002091123940258210414289577513059007689287818575536463556460000888388845560962170354163723382870182896133535317255073209983726783788166067861856763044294447196513022385313003712998046183718356612567062284116741148386459861114371452779523000619303891875936405928097935492168712790893849902117542251801690674109689921232233074129273596494234432996942834365319812724552572936700863089267811098817341236626181593074163116666520096011150579970747310122263866579867498242393615067697058202837882835662822312256963257547265413471946179195933779157514373840274583265150547471829479723107352473897910901077553315509011999891016672046783195001096042869821128272296741689539102368777699431733168097213360716573366270931306035198094741083492264539821704973406697017841511960134143167331993759786309994690993206231288619070450609111210001758839608694662196561003421896347407252832810225059038887951005201542717087509255065892632936230006236348723359067147153741342375241928087573134084879875398313651487818552072144140645099468666575769838260567634320128773664514135796029884025634602418204234724715867405363688427659780187890163879318173150663971645372326151992847255085632905951294264421665263056893478992728014567703571901433626594100293489382765315239331352852121437872598938834775181484743293362003019881911366671880208960827877949396567715377875443334731348869357454442640604600647636270539779546654115340370101738825492460777177909588751225790031118082993889645358233910942981301214986941529967069972810271424888716260005877681523951144339841669550446491191545339886869120076259023027279864853738041406331164876852333128641282276413923877472752702302857179721819421866828957715952558978949417170756178394244675707825680873370229440777193815641135922707325969762413685226927495183956595189527884184393283967382933580827269355014019377607217472269317393389043488450423828388092161590094013924237737973220195930371112622152511187982623840091988659148306042923397962809257274011191050328377291276445658083740515058619775544923620843232911716804111546275269086151909767523724900457909577697465705649654995890270803493542395302401238293992042139646653093979438572640884103784116912992446800181969901010570513535455869388542591583709257444664393826019904521372913739005791034863024835145368263228439057355159891675166088502868436886846945162881724248748357253987223129060389544275521357294013745734326460671283654164012693587478965325301480062890256024314597381149897925567264721335315991584921453905159823919585084020291402450189838065755028199798504887137067019161516429047574500651181439202343925680271939756299969600522891929614851831636585910295647363298305141979110597954990631093131349645998641025311400864677045888873208000278717482905665165246405294001351877036526098158932792717506481182916357139911966656384469429868321485370878810069875208975201295323710921778261105786338213516291115525622568210110491983798976929928967680225376937792805630923481003013597708863140840328913518998576571438946984990208885545632257107771842224505869290539083999550246275426930927439434200154398255445330289276588599325142298542791866540310779120471658946532055828902458127875273384761849074349085072137125482665966002412505419162809262301390152950132039665453114292373702867632248705532152151480318760584668089467368506683303303458870600975531841534504080749994128235314101038528546263224931647729339493924868822153500899408354109642954729212386857524016350418658060115026453240960835196487419865012062379918512534393512015008603277500630149312558700376855137377638197979470302553719051296580192336022351427432367329418882366832877645901833792389529335675458508589020040540063031032084698580393045946237020700833389201218917816412424923547750973059611129901818590335012282763690523823364442941659153599009880226013162566247853929983186578851569136110977425326620906357997941397099885633083001616115941896693562480518150072008170632466941462445726059938761503428763756544161887082723628422081233544978251516438961311216401988476843430525604231705713233406381420473206291661380713093345024282122605505757947419209796124095348550564459048792168910069670114038183293164931934983492213897563458905054322807990137949610415687510966324613490699600712626830346915976223663474091343993340227787079229364266413057455526409972454072043608779819734972620790403939735247783484591458731300706238684662359226455093131902716924869124656396248053832137750547381885616346586120137158398392505826398889984603712115582807966602749464570613066392246663407851988527149713020284775491799014470865207172599999338657680014782897752803066076893649902974228132907884007087836395750191833156225803113100109269330082666691940425537881230006782873277736922184142553463841272291043056374853822669419160435085765160047744861472805784132911454866080114010950661020075834409311533533051307558857854145493108318570353169079023998097706287966295620184299453009382106386899363278567914187263144650988889902672984020664290824946700250217692286139606093023813218611168112661438892253728060345350625328315200122661841811178808486838682846927664735058095957976484228070194685228939501218653573457248161592341520108337700793638445312524894220948190378873757876857405336206427004299267136916434497683088843304786480876189304821818391741196618944386666839804360757322334895086905448683429429283869378872511792724897918747699092152817551590674140186379535824823202243321310816137617812600789053307439120628533210192411979664258290031356212961680050374459079128180265505030487036851802776506482076031712609389099066046693217207697963202697525590182502513388865232861718185333708474992292460828325300726956913937041207233093096003811314452505648900025174067947099329020064858217998792836496566689181872287664794804389872871727567086538924049240895010230553168620489975435176868237400459324758566892923152955257577560378724186637037221099969223899649142886336132454125244350877404929270916128752455899912603461018169898110499223260548364884621983016493905480451703123319538638655909562615315906989773534920978355508194992895160805650074569443077882955823190960387220825214996627809280739616503439772850828825031336444857645581349209198458092430296119553549291326266035355678597541066190802468727345097518595529121101535990047949139495468802643451604493478037464346425937325454504392375539056039021737230015020733406674225061014597935465418491836810679190881980727382415535517998231992978072976854519601037716865322198090573370656702527723101701331483351793914071500232780622247872146806222058718071760962747291879372429193336745124876934691010935944116164248650156474020527260318325764632813671570059437426322974582311950842673856327376478631923770255539255934636035427923844141170399503492636329478460815822516459552258078606564512973849292493930773139968718732577941341037400494393309995748990483038296931391044713562417178881059433318425135881444040125149724908979048638925286847573554246102303619970381826045492658671336041677149989159612282387375136886966796723216092795135890634850993546750778821090929920587895201487883506937056675405812044433743077891106191296942505733426625853031887446747416249141905957976489750091943631300024275636418326561814599145513552469213479212096787879924717642933581404019921718552999180467538913444762895302469368412388615952742633919587904468718175725747865197397728240611555337239414473678480125716497147290777142727651195576652139220379241610146690229715202213300200668369895627522143536359442740733242629217124212024949846952936733433197170965647905161463377063587429414627072122648290211824574044699548404507823230241703396737568674190299365641451686316266063117571232335601109743838522495194846542177446358418085765805142173094720225701318868715310368809613433165134400108951637810495162556823935172221498489966507758265855930551094244279098406511607708798791927451913578076926341657093663945685229167294777626872637209773434806017932086009567973673491461648199922375867617911251792705236052553749146489278533763553658025205602638517689359110374812581346162103454985558166919343944007208784064322243620485069691869919251074153200540863732273756215242374601227695523241394785166342966606015646608323384998508649759762294381878846478797746573409616290734140601535247281051317491988057060508923091792715736032512319259327410669282909771845295233199685491140998906085400494130772251445586424405221733454256237263157647187559614360972064187274386293014034450802892275533368201817053383602266138607701126137159647856105901044077676773953105517510435746216169957426896439501128255591194438096004679949590857669333429138089376486826594847100914815606793260799878773896885368839874690232627926974094794313543128092786255542774629054073059627196923589681984269889940532354024443010343279105500622334482075127163958253645800545140958754649911803064090605350675788952353430205269290506131461978075064409047771414691404728475824499658606212602976792544737095416661808044782012132797004903479129768816525433613462097630160732871854699900119241193714069082937533484040423738171702845159677391698201526901451322241483337024008922349679507847754752225863358699250806309889557058069362302359208952469161359131443272737941036303105984620020975679811267677781803710163026736878054310845357866897168819159768450182200262901234836160386930988941824446645881211075624501278550533112676922066470142683329608614819562471940880913996601724085255840841120207701728309584777900186168972050555843027204507340972767980497075502160696492711745841552977661034732256768373242020321434553236196413567961145832782042935101325704124841063951634456662855200480354112926862886850059054323654183177771819660549408004924972607764496419814064069468866839490383119712731754338986373941204318958091712081515352751370538608727421701052684088518812542365938806369244841616495026192876025364583021874546015094883105037726502874567943108548130574652200560989338887423195822831621907991461149636816620583389439590976772752299129585243494007353086714038938335476864783655144335469533978466029799080960401822573353986630820064787856452726772207357193970990045471960002581803803718671892372756334707159733234897775589848990197804157384846870093514930391927841512480993332842562779206607461851556506921416427966757148995440931919154490697027733677692518482963413154341398381029755750610945490438804424505534794799105782124081838290054237184622064727916927807130882763093528119277452844182733759173866199290013494865312648567555659258081593902728078875802298695319450428915728912671051281715938196223974962302441552647634333590182604882457703405996069009221948714277702433816918225902519103503791198918230313837386902305111967167304123799236036111099928439027922769491960758870889475070784459369608365278007162336807564377230412790093163052494747361215378115176786223567354579433988640034454484363282039249403108617129138094834109577916085428430060297095176908035681351356722708011097353940356272346697048432549701617232208191983340500428541239923679172693525543180514519524912618332624268551752638234628268699943182041025689864572757101013657672235240076937380104577693606093333730204251414230606738205123417906710945355816843467827802619099687632085748490518643301880195054152564230183864137574072494650042125694804572256948297868551708680650877565422516990514865971462751573635981980063849973667674440309545547477121628898798560893007790594960695447873690889644129838864430886628935052372971591802933537730743990988782015262496669595036260764648565527374298997209668192819211584512813848466751960416031947965623509158729349971138418399409380989193325220068402602095634367468765296031597220327194251824243487191376497165099303117205597721228771680389320119935503611642340436178186937626011686335574080488192585883175083147023386335004321059683898996756051834262247702559583710849943073838699580254579594940769777737994594586590853194666652288502303276808734054470909261137205687177989315116371536933904704628174408720353250205605912518420418318322134279691196469872364671449566669327171925212867115112507204325300869264210246737947100823725969416128152901982514555074136815091441354366094768085616713728475654859442601795320282691478615756841156364118783706615905843184733842466887001326660048046587636187889968692005581079678414325038173496201723773531797305768511992660723701585172454060815358996401976200347121159270643452485559802726056710362681047466707591217768315220414325225843755328070109958452262539461075914526489169862840674271771935042755331010510294531974890216448993744696103597909663972971685236928934737955533553899954185347149630697516919506081395809958065464038451661227047752819247964398723933203624810539073700315757532018420458557189835464103704970474493980740959040910300333624434731786975878008433342876354061891442762215661738910837714546599109446727321547608556592432029045571313017814816844630410682419374720184270995890744425175951203639438268725514269909542760074522658582251304008985190448764634098474096448607041735542622209096686493930320728167900962915207521915184444017778082295269107437847026389156879340379904384035308524442468367559979756142024360595597122526943322491453677149823284812986603056771187330629711114070063351777793069440807488591163198543600258967788109085975251211163055437172280206534860621466750905514427702183480428863760260531912898007123194462557836906856111030320069616736989535710862603113035915447643479427429566620664701285722170350482380358672574620184964086515844424557187546938070153979556090501401889201246142430348923057442625479022362708242196696082454439407939718701986818047889587491950220140627842398653517700008433455138146719203211078648799702832571641736054256165786966588219913520603101912457739165314816912292709635790968911103595561164224940033461062003673883749306962223556257002478909290579552678590821300361182107981193140472584624152343028543297064523006010504256308989913190545336850916481134882104682836152437522968206431121837164179338071401712614554756939885577808302078656045342312033310570782017948238202117289393581737840506897679589279085465878549023198443632212259700121705935278462989143755017414479845984655799198583772398070195833204800149870169975678809200846861749330845322863164492710345667514713214255343201806444952378579585983148742529310957447192298963845771450209700724508736868418972723878853432702398357676097110343814439341369948670954429585717917251277377094738078679229267041060645871243726118630002691507382239238799801003708378494937030226310903948697595680956407516559345569738799799476017182432074300304321071977229233495734928165819973701895337624469691619750414761306507391200440727323363042859902566263494136556225836200613570631425849919575165332658610371451855699672542610785974398632628006476085923553771099814825172295552246713040678627032104617920784970534302022339489783547496367785024630035561963026601161712831248773349870561778995284781786762134720345293333944112755728484556094465174011587835597622851880822254366899891518941445315435825797239782384205377701507392471942347574110725284597084363360811457454346479729654885602740079631500890545189130684705980263090863589299573864284883833951835577335339463446025355899363933841734563093577455576310357831405947608148488936445565834505327746763639043037985958545559714822741241448944975778030307038482689761080253135001969583494827451783194103676955426370674197861241169919227968777161371474333694597947351540813512077924333842226022314161012596467620228929693410483642410603494917530715569244591590086866036409592635527598247697779894035728441915435951148002541186701369173789633843327861666758293472654718619844963527932288137449676172302062950270670170524997067047024370301920015670314951964724518165325105796780761764656114306686253001854554987145519048397780910106715843332026301322478555692262634999097313640869875999398855011050607166671438779007060508452800008784863821930043019075596175338952928182921398587373899206675180939237297386186630504575232000042544397325908913268414157060262096286302592038142069637946627320506323609842949906829965457293039848418074091668833781353604886116677422113005132427095868520379983297166847033634854663230076970194456647178507811021872288422200169935272048619353792679805930867971954022074177687063241626645328378341115037510803405697112177672642192271248861691426049558835517156736872940625034656408498689908674144269619440717395976434866655134201875783999914578392006378343035402009361430472942047245007627320299307182317916402026633330063146589429964044515254238651944782430109956521062847873147214077155080133323802641821543676972872085631694117161442102940441583156214227187992796481830893204481057051485652592423576251949239128466104440817633455360938648681121644538692523986864188170781465179259474454914201209360082377151484098512788308543603903509694569980882770192064767406465512069227335641033827087620993892606764574121180008914192520197367209612436975641766857036940171222703153970207330163092822781984791708794287042257567709470889820085964525236019477952114455313368927525332403949127578224950402355036650563804002870499234462196296529012686677670761882667215300010882750987630462757334766047096758372413992842891042080644757979241583087786743860378981399750455588482916295103900717836212398986133441315463627514863413271350425177474031378935402917436453581564149659148576624890421693006071105634002811494736492396530161504014502448563900173458238832484016181557997714766541637706847808847110956875255803678607908986746449718764087265080822534326114578226312288453867552767261477226826341187956735529681184602820716018803886190636278980364571727469357357705491663661130896777349081669830770409707086412949241264191730107514297408353740148174783313982106923354570159388545996537004827211143928926830462185741158751414658851581847873261667159329275643818821252471396743123026552261962600674195067500391216136448249966806540022198093731562988641683029630026757405294796633800013629486062266479384342039315098433461636698885617001077910381271925830521040856742634444427655537294785781023726295145441990582388273248213141052032870698561151089685237978129525615735569431424538296789677714343670804978482271118927008929840675271803586137178726402522881417216182199678793491819131379010813835063153847988259331361670344634411830663138252521334597154231906887206066489810455353439150395861543620454230976763425057565116687698901428276770580234838283261438861280392614806256053944064248248521219003854674073991730393726612030862788251826335690716862835765633760425574406906785346243187316114450901806402051025657874165657614425989572484823951114649083279717593548997139177975752703581963042555688389946776838953640764829027681785053430246260186697960925562326306174053530208699642899080604151890663670712870287431344727594412244770678262410588055497083400269303664193142124988096742340314167538969728993212495778776773903641800955481964657960655664871608804802507024694062532737312539715391612442938508367569020583412173067098998577343267504168223357074136321220705723734628871525273994102914199101586227411155191502308376826551554786552319121980360063183688100535675915846826393797925986685918859113389565262972944124123111336310435199059656902942438430191836176004331897361264880773114052204700400008204935571798096536233155092569809303498218721089640214335428398183869012379435815467336732010115633682845303045837783449079439425343926332118097801122039046368590097508998070988850280462954995347731053525960338958303489888687128485095415949779960825180427443752933732212876396877429998060462404353876182093518535285281652114403653067423444614921355672348313321670395776542951171563730081769320665151470401215158968237210480654997927032867583873291928769239694112062086798697817651852248116229505585512151365292145668442780752275415948166173466950927970870311394414838015194941079023574121193506168014948742126460581201779955872689456268574779085562092386494054082436537847553940272021955220407651464056598024660784242117239996586841488182090428256330257997370264561702309787093386885725738345239216507877012159866200187450288055972099130372090444653666043616362563411613853344245148067698228503725139078498365303004372849458508368404423161021180666815550767603321437207463182899228931963322591627514489305446235901697630137807601391948099750445202618403674424861686260599752431515561118354089407101162192133476381312720926310978687324587294201977177380597632283486891671488565521991398887351792287242012600262267433674227659139053312586124684205808225967358859894114847911915746239410584102503382127083442549368453854193343964831769528982022503496087474093722487856512754319924246117214346480632585983587826296324158781758397891663876961692104407278188581699121494008637415586795740713058279435535509178728682341307657133815869614496416813043968022984706052826373465739556529204995181753721798803956728342020088282958644225992312859596169853285101843606349121031229833029606075418875827451261243257834082256552449345746263142643968241753042183080442204677287185206477750933351887236391066769175666923802269996320707712826038019730229421559348356170304117687286330381975321537785283834775253905330419298646405110474326000617190825529889200797080613530010781919548044725084505957728849150702045152673935712872051207382998894014786983216750498604590525333040427918317495629928873362848599414829641134182142215948998919818402118269773694394071565157796552401915235677975843213824482853742246989221378937702727667978626564917618937230171383962194904513296134108051744925430991480866334923002549559271197081080862987886140570679909849163348571240956843189624436707562586148657460728629141575725021436245300139837180086785204550155079476043800361910061303761351402076395349852485475285966516734059458381006166567776691394351904620706947970314108699927796351621081356858814801848804855058259674031572622149132702544077583849978156552036701032132181772340690069774097572687746861732864300766056313157532164361851245760446669090884180970053011115245197304286120282184962632270229131243117770090622958195696911367433126104838717665278736438652318184528255230358603670245693168378057714220671223597864366267988937894364008772045100969943761290221813051310381876690104289809508317349408989774695284952148091135411682590297995819842901965264409344475463681032856167927889623315338506027361485061467189984062424665719933162373513070874370396912636219619999325177649426224529946572037334896272851923783821101779254425077302971742694443889050579097715112468348041574690724166683753786342181106523465630588961473917849170676016788330042737814184289052759560829482175079464422864834381632479799351525283682376187806299327729343039021037389434470844416638514659581399856861350498946985529014848866884503786235165401582320942847706572521870932577462474191542551705511612347623601100921088351068635442249501116350721273917224027932164945523144674925580808914006601611994591417500196971588441075714826840362666737402534200781572589183958863719206408948811288377702477853430877209282587433420871647713901058589310465778936234005705160981531858735475899413950653958467735676228029218121907324300882724580508505702125845187402521116069662878352732025328634690617177734730047407554893518703357399141891814793771623508697396587034406717640728795086813717216406392296175634810506880439714710186895727271771252886708714072092754870918143248909930187033387915462302704229794419779088421930471227596141863711076016512407103645460463866698118081719110977907674702662758942943570122097783658279067492041037156629466260990082897524266785234822325200405883904744645144450908901174532649679771749822167838183292209251674648216563305680749890737026194256765014968558455713459238918721674218783461736199179149994338236182010697300558172589295520841916484484977842486169419954490264942743834014367474460520061924060859189986050105062121328424877599823285178860183207979505489559592556767423784435393467129642909701467875525545372187262546138549180228514635724272413000328548595307961512683285203904442932786182627794959435868872105937387661825565641316603662779616619318525304151266879981275050649041742887897715496063098475569814949605362538321730366427421821665849713372548545343010425007051145489755338559962766588277569800373611255647380526509306514535221688161991571798581400507073428225640104222219446118896779075408125607625649314392432641763401295980882764543496208941205013106712179067016666695829560893366239620074014937715570448759741164110641094282049625123367033151933447626132261659262400818197586484676820226079685321868863785978617116686285643143724417695480972425291531257741385822183140479302938747079398567551513826034992197403481467107708323188798354231693277995751395593432122034549181087214376253803742945526004802511578807481746183086239410271329196496079538241703227154165016211182435232656242822200337554699350895138271731161487810913087847568584298126784700658696908886917555395180143448093607012172154064883021180347880954013937126211027235029414122458479950851897190819007693335638023089799266152217881856607122884335009767505576662032074836157274841051708914886702010119029693944371217282221222884787022579374174913825525182764655193968825477827673177713551454727476616906047993577464862306356290913294566204247497556665406152438098095457427289248085899275826320973055459724319707681672016379459541290210856719943773973978499402964471986438097159592588296806597283221802559325156092398502767851404411532277662755504399266006358542276797042890726461490396330082800387304525148502923483195134591700124235158698700155110028768215671379436099043349673184581219101271113437837474891763401666285903713163875363989096558766683471235684274599481765837794520586200116951795011780549003403369478992380475707043701427191831876565282854996320692555196445189029524593455274016883480114903114828851162165488254870548768876374014566363979040230507936954959157657786161878565520226215797672096299040014299816887903125990766661511656228385384447800637531122409307187595974737343515587899387474687444116463494660592866599044649468164490672718638285607330900901541290722755928419484739816843595960006090406831593684730132438318244448933071584589975121851858374734931917879713083509385979607576543736088976717391227600085740938599911506176108238449947790017168163217647611509705826210293608521887829922587708879700908601970682365002294504650197268049523299416911576635826886911522216873747361142033763317802920527658439328732974599428292195684550516098535095715015839162974641618347880085109065993364418654329743573101250462974648163172716111173517246405235841740248525926091053421677101185385748691450317505957465611308482113314477771578695692776493968168877638328006145078228835720096469473909586988999622467355259842947837590209363991226577885616874920943178812800633367953991052506696722107741120945546236681994591043162100627046743238547608766370464946122120561221921357807104196399252474658219057425656184932792211434955705851771436373771713455388322210552247078145250833325702418080438908206587764263855251896620045708382272934645179529122750453594940039173714193729434957395160480634881641666379155952628146239810225337362474381957934670733989022572418607533775202947628193506346613450164641570410728425321838154214196139197947961463445127604001846763813357613387783997873761241089630899545205459258971428610846715583312276202438280652741903194225525307485256290299677728068998601144598120271075163202009005215712813451676156796505721816651428193862202663792068266565241201036128065348362446693433412852612809872818055308401576229215349009095139447647232525191181102333527863262382870867331953505736762788655256261530916412309082234329350702237148791096323191873007074849885367296489176626713153757126328286125679634450584148630946213619106714161168605391003583168887853219536241145867645617670847543597598833990566788931204235509199651992147779045269339825027779050513160916316824188924914231224740399858397014519564050692171385727530132078436247383764248392590839729783846051143046394448340371540627990309249009107416695326511577628850785957460885948657645301233727711751659792915529063898384918605814403718160285957276762477816436906424277889100992017201193681246975862299260896441570313722636448270256759417582721291417645878272449601818741182882014361295524903531608807348424373619779970677817595591529978737751844349804579283082267268717745531039137882035647563373364227261869911294408793084666601476952375809077092005318115271307349351764023351279483260404974829322636510028239178028994138512834823685463143238259493743886658291728271100486537803236838660936497661858098927184978949771890542805078253002160751496869153451346908117713452961157609393148270637190127154664540185695564679752400887139849567985943661974893415708090493138809875593833078080025385304389675577563831152389737212888505479541293853300628183230528258112076183700987266468226003774931989201705401515244908428480360552824524208666285068693773995041334999164246178697013384512126541787111302353998196097954998661181401198491039983007721987951422675384696061011061046635606417029679210333528586825931393865375207805026769969178954879451502296068863212702380315138971802972994436976913885303425126649211352799643714280637400350329134218008217421967104842915347229817921793778869203938985723012373590570327532923624582353564436906510745870502765185409844434675397642666737639440736247308993389224691643978933914308814134062585950121543080010684798376004625141733720402794784984648366164908307010272099556016061095061577852253165204312645196684721323064068318338193199935101053425628671884525680988529665419173642366215123807858147758578252906219228637080872455397127962231352832072248438233953726055663690946476093805767566824736269618390176079325052932407803184001191451459831530562367446627330988526141564176163960506822912732394274686381396275213887005629021435915859008321810699136060234549930378496288748278457771857420514575455923105225445530376614401581274646484467578990022377844382975064142876964172064822021029648997327619418736666814603118210062711972009359567469085712448878820826735449280451486039761865070198692287098928073263144670932245670693730274064804791462209034815882780023192104311423237150961834200779260352807546872554391260181284750127186220306140653481543085001330252178727140180873345838419255755231094315251794462308876580467442792386849844563384739166124783636553348334939839749659610375859959797774552650799039308906951630512137240685979549779603545398514946535776643228192406030392719358448601215089275888089727955572277138050000145931685935070942761667326172594641156352955255315396557774110454727701430203563098028538143248374384182807611326453798880548780183449248603964411595812180431137648043031739297819926888380073505075309696391224257516357293697167410476175630107147207566261794824839505415872307817688760834188796777787401464377369171525801686135059161872597141476301702511766305616956751642323386367301917407322838660608249366928725430713493346304941905245705273401032376983143725423626948856836854409985884463854218163167235734342672905452944399086125599287878143884970479240199383728991365942978523205513327413778115049057423760551029166657433542104124609396586200899770255029015047777849790796324622938017869286077916527238627929724394775698885533135815863043550593888238222208378253913275966712869105635011962927905425935675507696733546794237464926957836157482558859096825307410826305602015651897873097263735044082488417664977998289610793098191161309973786089736691416864134031777214831114036633150688532914296430423509602251900106891025878981324254899935541929989022113467442725422619889795001803491707214094677871835473816137015727088059577827911450673165660811516402659833585881177225827681015441530242850026116302832463759856938184879173319518561821006165727556244513481540814152263273110044735074731842100441922435809356012215706253467793344904502606547608393687203484500404817296364104251780012709952762814536607847084294879607834104986398856529654365510220236034200428166415187717786349449283504072340840833662937337399508764742005689093185944502097684517490635756139298211928964325107552271737155122863195304316514134992075393176745408659745647636691850354956826608159185466720882099900231520045456185290830464960878861341340794683235345371928770031054057468219548232827270884952623685391931309705445151210582692988134212746025432073688860198822912692820728505349449756255593956287582255568818073530404308875320141598031860721776426122329438455731752213979655905819158265522082457433009521667026681804403127989128669278917162086129314882098462292279405781471888496191638751016936704962324319890660025137781658507738030627145881774656052324916998280293249976547191101105204635605515225169235618620952058680264330520959761263492801275606866393495476355665686945716291824553081971154088716190085984478990791348642897518827591282506352075143316214096459770782984406728895926575944519221358115576868488293061363976430586640036322311955601715468481247249193344023039054212357474420050141375837252026858211812101280933682612161015258476101734627567761654528038854969718625335173093849986993150136580448693020806808437800897212392869234520229850527168987120491096970842800951032195985856551911223923116763837639885394274303850725149411076224287129203656088879352500877819465593238082830666662828599761813210672470467714686029700401396371428241952041269041477820047429252129972426256398782180089630838633991277676734185140275804792617552469062822896396125737281769730744966948410335911393120636326738924896504973689472981391328041227473023502688347937089456943175935644579750094756563083260195028214240114315432925156546975571923611544630887181569646049790334977427241932439680210962964390576027267623427114919253060221907525171928889564007198620317709533960127243428367357146247759866053445239501514548894399891180306632732677053245471548866797797752371526611184088960667054482717939082690206323847542425789475286086249080776458182573439266761548729137457133203845266960760170867355592906429547864809149994135820318033342733691563946397659589695338481381792777855111040278554824884344711536079229386612468107765665436602736682408138723180584471747941473631929854732846384646868074426180393068739682826111482083514752473223690905795713807955105420082324326634737856803691972912896626683126658144493967867970204677335778017907391699148886522119206895032139057366848464053078314711245136251430137002165672316080750078660272855177146061886959294854238788975034150784861165576153832659072859132402374626765455830478937427197747131578753439498974922200894151551632403825634621873047064114482900429175654497065723290594549575259329976699905380568309248774282499258653059569595697447556366285023438368081843014363035853956972454661041959552573400552954266730992521524581845073979775829023713435385309412858468794747014954024822508032018030195689559950306995227814730399821129683991014464029794983196871451923518613680303641766526495261185883885916464324496138808850563194375481261474549267773413350860266337618485299000657793571440527036799217370784792849474468042081069093281521862535929467477632416387825124038971240161663203941277963318483719316750188522869307531268936211222841394751752652374201666424080844806664610774747842943759183770908522581652139087878462793919294423751347856010004558592797889806882885370760478452870180212267095576080324656616689217085112593061950820768571317113741793932443365099414260799302237527222839594110029953052043677223597109683373597282327408681973449858535061284302145330548519437448562514072806689530423859542746191198988994912014546403020859744281799202114343781415640590280109911943007768528925620697869196467642103271501497109209166763258381282750799617609436237249075423995279556265213689491977742787042473728604743509651206298616360768750451091848994401255506445666583677360842850649997713950759736614657153095418379740507077052813794206600634787483534229280203913095839923167175263803662162680768616080632824978465668601814265195015389360356623803996777567182071192905136561183516480596888971049865622758724640588255798057118797108223560380695169988747925424248491576115779964231914942441463922425294191416292476045888785265293533703109534712449614611222522139800560145524963326697793322646106667757303448879635467033777520718297396675395927139613501784342171787897324393094276076180846496736686142990863992160343975985580753458545926324560419553457334330170717469302832959580973255851943769186922077127625585905843640388351480589425939323858474001375407311843357421258422259116393746110582881957593580416009662290537593654223136830897289946719822644569282876499121065892740820746951296528921256848416053967314996254758531065913020692415428308299673975176520760482018192092824834750490510305850178522674965141302396158800275395062102978108351466840983996659611209040021302269323002155883551319463288884186938403193072202019102462582088802426755337553771768515120161472642415852822113906809686304612790018458108997360076026942968650489113031731919288877920938454468768987995863271264741903773361205978713659849272526044686584401006751965513646283840939533852594957425793326397749656388586821771453819812838500749219471046267898537464819912296366996725160694104116884510833338875485781767253351845640861496539014825794850873347470077069312512800427446037887631047404883045097345012664683042647717847734924804045362929495552881504544166109762404761727710586252537431353068617194658413808964962343515779900551639116735492529255889778951293769753679084201061608412760437800466327347565844132040728739934940685928364735093756361295571507824809499202101645323145783656902948018066037947475783049953747998139777126625016128458046998020348831504121549364038120502204432321350590712125801782387575532918872546049307890576265000613123802451962124743221477203281273052876436007668154354047185240662863014525911378387402462457692614750702813449641297787226522943760233810815711727683762477628856261295473964704796156209218931675932103311199276876658229825017979889340638321922854433821472958461560805303494254712396364444419228691711150019569947440245948872154711543743223214884185443157054762179617263305092763160327689455008360977366682761661770676912569241080595552370984295998043108998659605720693678137398574090240240861218421894872805732342784298338680962263540342894251082207697154134036524398310408802866858531017021743753071244609253196557007915934977790410883146805609409269667005835767099788606997813460247866781144195719427303127205192490200231508829039205015785425717511647205099884105835747790650738270140182863667207462147259012643856602460462101265094348169751738328546805090044206805335093743113428760533342012083548815428807089112108555948326406422597989670384763021929827443822316972280755132097195113757543670193637293622182470185709002554091879671648636386541507816709779803839293676058049801639265043916927945615012705942238228666863023811002457316370301426725463690505748629424005906449164218409428062539387992487315465708163568531525106399985379865516328581843356834817865781315796341215503462322156857287657729532211149847253858409336660572958246071104270577756501628922485961597993957545689705643623724927287108427897443849585109743152669899293379754773338149052357557531880069813765450614256836133580951525535266253765681966674798536287911801394984416152732113435419780961285703874104327730429198650126718195191435488310132211917205588765177325512382963044595661922193768146740917265135445031205647941504319296250245955004174662060250836393379468443753763664376897955158356619327292245205216941782452079735843806297239238502544943445004276307487514736036576215816443687995887995764976141730497479978547617070916073081288349892772078309500038863688437847480336332054317250266524855646129581622969646736945203453867012973438595297696109148729788036092107038413983093864841829006540916466451225315450409059968081127670939335382559504638242034235976981300705183141269461498392300971630859598952776109498007645577028438140397789140190931525789850828018692181234398971393842500693241298806126678844521389915466036815993390292828738744237955240024492674479049504204302109877281662917844447449250735942501082622364051651365460820021701135306975446812340391632799122307942543872429378087668797453008245079992286406133307429983166499350964809197565396368449476143824374028825902552868001693144475023489831483218115348288650546638029498503719250858822336560203335556294126929176342411804872030184589082716609785084747748881659752216196343320837429835869276411750128294976946644108922243849925151176150454199563432752017860978491345285561165732684186242842142218144945065044657054284631154254296129609122202507225008412888966586249430864588701546681110069552699033937457204909905488791940080738338431112470993589381434874558846472514123706415230387507453634940421087775843328742975593970034907927437235682107762240393850433450193025071500113460687615489084239070927664340953311080148945993883607406719735785031411125469780348052928445573835495793661014853391100896357820163302575708633610719186537693779883969694722098073063193207729753643593297156029614295616420893079595734194080243555084810001954436162761380670539406516180024445320978915070120706317423165723162163663119958568620534427281453337018812481249803159756640213854140339311142306143017749478542837692002555444596481625730628003735269163143978191035023334486544664103497223345538653885871827650809442313546368471934902442582548918868722832060283726821613877481440598230826455602101640912971501491531278459703911689318318830952715335280966280720529728996987051590610342611970651991726145337300318112419680735622565870345082053573892946398892780836498911865770067334628243756187779317405597765038601598703099055826317579349999777742717230704486370330615172778719081615016384873803740019958727076979937483794418893769619550882177545876636864473002411502898924844140286850008793900553475033108782603224952350469280372420843856172779901617582785399015481765576446947511527919004763266906027116892400972959819951172168850678954743155180815516700450494170202804397372605394532149857947801740065340007424250572996884336345667528846935653630367276907071556170158651843204071007500622784162522435863913536992525631665904783139700044743711814583940517264270317479953651284576082328542108447646266773347017478454389901007325182909594865625964585049503406185233845982015515075721055014234333370537444722799526364426997168607708902484924074265939400783803816120367093487317018481256494790592817893370611183573102980261582602286348846221886641679496828167150565406765998898930613465684783768764483771846638493570220254922931899533893768154153691027676254189649148232844117838745483403725593990780191430449470514888068550213163464280023703216188366362928156906093606756929157576492298683665997858127546587286719796475243633938575002670530866578847064259430931117914373107504324874600877811582048883389077682365972600632796600279453866731014642835579079600784101117874830757784679693334069566353189883883822833299664226455153631083160210026392139952836271718291732252548582315763006357199985990889568315137184960552827152036975640323997721998022082426673888776393549755492664131608996599805406145628408399148562031426121747844249640834547490375242079284074513382144874678418779047599357212121190457906495237324141196965859586359979526178260554568988063025774060389502036572980319965170155550713971481575893862933342631497313942526106924125884121362289298482307860125342071473799545820073118151044016478917059328217274332657916887010174829734545177574726136959811658294784163740652538830845978492213378192870595195684154091881300272829343343541193054146623046949943867594821875510501918947987701931352609665300672465680134485142376326745774231494544838706286278367992877589318875210611279038237932315377714273434893353048810084302008305067788424264126362234945220071998314706756318591571642238694717776054168202100200511011488643709046287042526606507041098403655282701268642524204379697418459023814637118671311499200959179334657960032395161266884972782049427691595865463737049105385241938038171157706176007824913169766686270087337518142470092210707193213787387692598722667518685586859525697771192876623756700239525661379432467634238294012475095524125335838540529703257549177678297292952371604822029135826558788536392506776718516302684509769269394051060317223295942358897254229118741942406276776600959558970344513964827993905967311754713555366695197036827816616815296569538781686249814908582444312692037668923838024218265060112659634111776742755377433728428276748381570783613799940133280145868115083089343194465089901018610706123954722431068598403731489297324260062692340384811319199895862590388912306400591735791474741593762111669079903538574257805663217326175902787891191437809377960917277174330572482075448955331490981943110351414846660883841373489757059774887325557527739313231626498864562802438417704503612720231417358916192656813037961150517956056669991019195704567884256740858126985087869614862596974675921557456276094125847493411517924732576125436118665860426705717477804848478323662785809320572678915929091655697967180380267278933893411233072611616958068136328245929251747671051388725933261314726124557040628186164376444695292867944533796905109479044404685527130850767162160502626541204636941919713176191562264552048789418086503446109956732741986960072754422794828823748319825132886390449702688037472434627182566319076905874281958399926227618255262426110153545628690514483812894347051822556254246926138628556439500245985556071692203626812943079182828462985378278932235544641481999938987289706296755672797730273644134166448642268116188167908578433628115638466828926936076318336552587608347985837483854278598691748330960867285258183548281174953698810485694593522726108512453601907897684724213937989990020453330056010647259776446474189088724455222316314659000773825349696630989513411498286992739327185911710304970457280154840688099782056137076900774696455651940553708948482571666552771028022699904806700167456899999169662145682943632600008405441853261943346297211563220116430348968752380737766624095404568982226558207449676891754464489222128629362491152930323627882774011092443721663089890674193837021281553867899665614831238283590970864546025940531604875856897812913513223633469510046197868545542418076035855707691027048019331318105392051167298456505782899248727169457678418112197665862400601397458848961749306327737213585680355901211504767792353003192845316088999157444626884614576061252620461385438954795059365883008568007098260671947439131941624423117905551147610747928688905346798724350207250462003091156054896027165012930912895327110419234981624136528926535232723600186822913636747715111503232478481623206058152460170922815380495825144205370119455106663112422178958635732630794251065017086072160384435864338392679955048113167231468533162539016809994609256505855965611256932661718352292370916359000624306503689709481074833788110611466202353351720082136913726035265705436084935721508672179366850453245250987857619669558428900014475220317866715422173442667519919590862929171439349681035729717945029749708910351106169183304745131505166494604657926730141796302298254291281695793554440837304324263266727174498753534064349835551445812289372123992389150669689426347890409271989920612093879165833710387441215799494846084004338094089291320520457286015463800182205122007149961479081192703455914307293293571317629618726110834513132505017291975969755787818651211814401137115034052364427393903024930116315510070510676001989388594912410367591106056930226613965120499924836400339136200304638912146462295580230460575232065715652455287801015410451691892127305085119828960351665073267353076038384335268875790378401871798736195734776776940113216773049516666231933271692250037105499935299662434912458119402245956851673950755962039679502008735710750447562155689463504515071131817247723559662696572345551411439039216184327076875942293027779577389096312549744160050932594612133949564943557762737230531759241998098870837559425456066227454814030285145877444144839065098563674231266262893810446844906532817909790420648020357543052613605675833002336149180791335275059849486354933743415040080861210061306335710960330268692126530585867015151918210651485224678687768318948181084756161958590579637296673953137410128389846438510642030867632321561131218301549999030718344472026050066501465794823511487072516334905405512110696435203598332890330071542910666321074012059463800133277122031884400299393679530949128231484827205090851583157229787311081816367314553732853795935538442997390218535998534712758967096031341833571509437903121180422950183586147778282148534686965764072922894012884435140501228786327638836798507048129928583805608972013061210624431691571639932860580277134150204650704552960124061652818183444268145204407068522935393700674299737619002591721710425346659090169590754996031181598929754090419763316258938774169433235490116134376722069308363490468456377415583841853898474658578226947364020050243342397281597138890346227240581764051677657655924329472056535547788727665836798018775664721634668457783840435063652708289388862084494998033339567589336191295300667879576335169561432242944547742351669069166332142912863093104444357381636682333829481203916305397806431200898592285097373446868291394631892302688894935779409345047120768620232210452088937108905166354553864923811502261716154100027335430795313264589261075656895485788071526705304305535556061652727824304071863234106307307488455156226821761958170776969517358596409658510191712927129270403641061195772437839406789797851977680114322445420344701783794866642526180370380008798759623026375444271377585568889298356470156282687961452370310746526801117620346066216820747958261503691650800342703361723860762077142699818869213495269256085537717546735198502123784138204046763671196615833317166942704203684025395426556974840586129565603345504823467875135606457332822647972154609199126766788723824062958421176609447197161416687915490314547949658121639089248632476498703710401040459641668524200387001614398290241016240056439840608781172957526377493316890269759957447952926819476639887211590578001786763630385020428681263545946711838774817316920986602545786397665377039754734785616329522106460645670292065533399915704612104004637134475357753646967002335412354343348615404299187343035224163381946811425253663543395860335328427165123466062689368245441325882337934493160055778220519349864824374081186943385988389595354716019434614672363673079239882478184754516005136644057580159362711952111377703502521267685252954464169069066516638103916536975650714782334648501201286675995737077940257876403895766712646426935941952592996369529237796853673734767243966900739459122307703135801015943838612083303153219573148369072396817579604737898492047291076105179727479649866860694705035638321285082219241693764742608508382319885228585583924187967405883691569065494164353701013367215707098498292487725485697344328934077015671323719084726681176356089862581947629349632267816413367890154168409610418620423655190651912654915897781621306518777873495683629128503790958541973497064946661343186467340962673859340416151679163958110941235054683438680487197399603307501664869959356485182292732621978043886738874805670555937760351196060943391803861019063937624608560585807324916977167237253860718493867163408484839209660626055566370780863106239255448896594568434225758635050451842208535104488164095198670223603284220662423034360433111641972973875011837670947468343867216156308107367064212979171934084651407453451441022774946345135255994784326477881405357777362707852007048163403155202051970481130269554726898574778571307120744003453544969053784337364668949473071093942266735261059897537099848289642511229814403193576188275331784844968279345745602325936622586954585377937327891747267872663751974098543560458636949459192077158426474952283158314688248510575890347520992729959578505106782315019587983404586943622289741534653603847412403691553759512191723535978838236305606655339280589880619106929372544030308940411590331724865603982504205302365415537662113378319741074143855625090583220816300878902096066943679464806115203170204864514485061073787859336394948261667975334749718511819811522109536593956964587097199803514716297891893676935754891488671932723663318020985360783700670542923373138169671875468367766699498553858149184020905809975449373850863190074437188286567004806635873116341192711975782779226519357052816334101489512801390828527046472617654029511403733235049311110527972090598578331105307412365860227148459504615469208291543670349129000941892053145849746577548041680209204063810219556589485401581354990941809198024624593190831663277935328512135660319252425284746943959288092904604765478317683457502336532272261066508275555445047899150411665149562158720785726512220077134985476620005427105967691395255115730886477240557659742922179408465001874324918990455867269965586829764727088009154274128572466192104170418878352272055367103632004840086208676490593606701788304434261152276658141370306786631683160321822623369162163009197308813444877735509921183071347742424595500373652646947199779860384453197130796413290250013393158912434184281412000460664249862953863966595684373399903862740835376281949743335987441940578010510513645152344146561573322610324708090988695867057158088815445699464344844381539112974721812151084988784298704142417709974610261712872386334122194972592232483653075963861025111742760915786466674872981020236927859951719047441588480582897355093479016285253381933704170719217141932048346390391557255590222605018314324213631389078452897225384094099225760562491324041781710471799182037998700913723221828648979583151992097585543274573417508665537454300247527055731975070011884570730736753213209987568216414085925063989701011802472100531088266614306524482735171413897917760996643351947014300219561732674289190782781217817690775763930610431148938823547779756960535305581105030922066511841560587104393013246656413137128215982700148827869993220141584679193003270047015306228952819725137619163781908137060462632906288522873594613471795895285388700336197567128924813926228113729972065659944249265222266406757153914808457880542540514822060271942215794784539741097334375472999827889764208355597597379597629001868686716169893289637090169574321492499964474405218281427551533721686003457529947161797798546267383718298002534937454191133735480506741578137466589897798352737596625508487796348234146653169744046810354816448547121463144783736411703145712901314751155073772115690398653309341703378019977688118515924823129062470824189845627696573436608381452866889767492642010038106079785958338994454618905253717031673315132838276572204249167499104939658139053418748693199340006518651607422256907652579013876850967180796746848099611786221307543534640915715800596978100622176307958953749981516011013807956678530776473892403477529158969155384044250855330734806530374516367837626195536717992974467487186271333906557397650792816145323881191738072832862357823332430247048346542435604629667188808851507025037096100242080698155559419229689503149619663691444503128161196390252798314652988207026310890497901230801576024124107598134166330117199460372178123778787194849619710490802323482338216310385232994503364345240009971258082034712410002331575380935237970321153718422841758299972289137488447742268291647559383204486186280257106698219745440538706903657477852692757616183035863858143541999313356516156333792610635376470525615455545569138399430824171437065563187738190742192040828488731912634873907419964873108146780811891617667623857322149422481131423588906164580923350307987220790642095421158559777377768664449605931810414984629240377386786324768995245425698683288860549325775790383980169602401261830879368002471310332562851206702321812959484080950074420818757541748506069487810551800554654861698672925647127269871839203545788128727432836220757881197889415319175199330552182769376131996281666725160629946752623223610347727846880896701558387374719997697877692659348655767717059237063645146294522173268374131423149738290160800540778890980459212471600047401870787841743821945005682775546504716163014448436254733378017653436171238980494783306819448182389057426774798940572035015791964154974803271216229170305659116426419389268853645843861614461455152859448769731215175387504263929615992808044249609320854327137298771112471202974942734984519751512583346887340644345520575149713762942479545871447753210372610055642758438072969990663801380689853569227955585554182788808379412435810469565811495761853011134060195557554933142848734090493702674801190951769036235306787591687794053238308687966892457630059673502247049878633551850787468962769169392848570237416613750352815845918675281821787082152162211816481334289978911480056074307311599471913103237785400936512721167053450318492364379513990583616277570412151193225513246665561723572024171714467085368233039852961458212836570531944021333509714637216938872320745438476467169712091853190289442002715040186990919974689040122167671998187801210093251602048995213325134571009970559278825139821091311282878452340040256533306980967315837484097296592835931197986807925072499368284924729014225191389067187820551250838813448081214429036763393756402211482343921851299758520417517282073166974061424199348494931440821443397690441188320800054263674181795078994310146940499344428334660905792033369401772193913069268820477284445128718234439284577525732475138242655295501353801011986129953714017290697964879308534148675111631942756136706341767935159194648987239761463231775753572137998844242614073898414673746775689381013901720961728128157058663929473211430346409277598881706512157911265408432063924526092888073237388842675595068477657812062874681130167578155377968794198647768571034867939883677979884191022510067816746987444403096888796253906567261110651897523231069450477545568777576645767650166015883091758292328557879071943223844300746022164839925179697455478618120216297332673627030767473053542234134653654762697891006577555627688118983006746446046127224475085271131707785138432304662169655352476807542512654260656456048147526636456552991288486667281746357266018160424372885899233755944190796770667755006712973584981307851648899337414265818702567909596447389601817980298774925682494109535558213259208432480230938135721489970586426577818489212341127433119337981776081922887280734648254518648239597554814281210775017864988759491302613906604324731774671519569840894949400345718516569580798991042369205770963510877519159934248660592790427777533156657160953532818944148750447425532745468829160764904720763895008012010065537739155388660142732484596652329264532396239034549686917863807235146130567146614830204714223264683286978455048639634772639329728284753046282792573607627751202669956256345267350321688014745218753569545182569864405652060868003212801063890271738309597760650110715682525497313630140278093292278961143079489097057139479617937605959956659200630112284332376873526541328987234699375720719849911788156160933734631075576816086007349238729500712846964006461924904968368509692567406980819665834206118092266982842805165804398812938511460810017304098803302447950789533825071101241760085068314514623892124507743598244270076695858733929587887237498703724590046066165297529704053074409514661177922986995256298809473108610584220230475281863115827778942955569311425574663221594411692894040331805831373227284966894602017263961375469322366324035142921845888823898747662742129875058882849550904725818881534446951220165368135546038310757769011961615007263604251267600299255052473819309574566339262397951083184747922728891409451185063166858004252615594501149731777239350559250520580916077757450270173526535765444735639184194337205629692917059025815450106933080173716546233341901067728393408716394471512682569577528930512992287694940618517397704755622057843110802230501719159634964022027942796992031566444421215323090589964776733487685831301098565279035846111596752935762734411541280570334545645248876146492148655726270643686738873003906511783009005183302333474418303216248873249023772055041852087747594137846379553491434946184140878791850047254786420475481258160625253841969141211277065886979820908961171774233217002192217953979897502987944345640460957795146206510572967766437941778617691207061606423874278198074605204669188581616457102680118304854025452455564099744825000760193827517987786138697336875134506422934565219577698711751877672316310904752523989852025083477402379877779383586138784182773646381840409607823715595157207729864148217971413836622490894279733296993093944185436974366481395334859762727727625430160129339296800649191179265408002064102865909087149495003290623842993329965229935642166640771157149498620892914564333488489320223172365063764956209376913425797373702207936115927290827744224979661047301763074102899571813371258673433360920155642873185445556005858579674064968765488544134097274331571238738353986479774036561855704531718721604858824576110703160715990089852428111467443979239117213608748296700115153912473221781608781605849536144432215441025181940881194579865745010012064711717969248546745753210201097235425529074668867565948169151822992371869338348252633324848222734720358783999616521718228383396013630232436902955277020505543564420206925923644607471858356234719590934014730843805058470526897954954477847451336348733423476372693601122053124724965874983743305228205085910807965113002213214903969280705411442129057540836375499270634084035034178774245571276600798064695939803551352888089413522997936211679350754820267301456509650500616136398267643037976435133653567289592519527303702842064840433862602965473676251481493461888683680758124494598282991698696003154781418703074142248178824461385638136200440573356001075130133063898179693474646461124723413126227396834822118044054251770121404947794663159063710987249339675888459077091644111792333710495835063435158837239511985771914802808495409577986142683876514690549114566653346863397747190918798092719263239419599066445659858785738191847496508529187041131036800702536540891499294959143467002512467704703237210716730812285909288959291084088293257087443182107347004446384482677541089818368900727961237333233969928716101092428687771029606343251816720321020676283947666127703212573614755414275074467744181198159282983915762776500025099376516739068548739385302393297452189445615476558734598034409871216286484262974119200590111712403180279509106667892533329710965762672938622617879611606404008285939428738144909553629648146332683590400722862430416332341219451955831214386716625877122761892678704375803907427887120751519777772797075219320569550219158247468232077549971322323950260374469926749041554462467435403443306216034501102015554709129128936148589871109507925105557504475107522393726934173543658097680819652717033905170790985725918286968704973103347063022619545465828489336934676112715807101309668285673163076326554001257062828542329200185951588940933635660458895093992209464665674909901194542601187923480044928183760221147722036731929938549347145879813941437989484747068877265293952512322595840811670719848115412242735560693545112225118795854507208412717023697826336561894234004029528248392447090294271933768349420358246655109460704660446416855614956586637813563982847707925103588968175413594893538666266571748139383595780934626983627251012778965671001730703343075019457840079824961281736547283251946366384911287045718722309273036396013976456849343350195107415843204642201711665401404655696259759362198210416270398887018616889689883140147278109227723449661760518768522557307188743104659508632110505481439677098851980940488519834085161774215515378410510728017810125443207149661007438327856205421407167100992679713820357218826955140308585886085211955041228608913950750162534230483315411367703198667949867642825495093439940785545166410552365282069997540243767785335256312735823415866693325796948625184803584796558298953370059543402997059691946503554921145441599942158347511910167271456843371639052587900718529224938264011330524913110947605760950889811431031800093471748121902920642192594968585457345078477426723807406912790866904978696815837688795660211448318666022404798872091050679319104508551560441649069064371207817014136523126020780160597183790245676879685978079452411134969089914929696580209093702494885039221701154642096045269523512823251429927047984839622158263011224985803870087291600942015381907248020491688158378105655355621777573317125502981248315213367253314818460557476115888656773507593808073250231118618808004179207230901653801513241377847104879888538756577298712866051306096311101879505445408377784145175370649098848960549288754719569985597279644240788583925950814891296680254541142139615107850787364253796776513655932248242688315446166413089465418431136501799760654928224747628556158531996258156607103300682118212286338881786189495821116774540283698932441511615184591187083349198394440294166791557223426981199724862933777405297567034665986898546134801730067183588277778812479859475213197010199931696203893794398436620798715686359121447603334478941024819154869194454079201346886203455819824555512944254138327587753945347227706408980223330962514795646562251236795052249300931087186924237277817333577634306104259589204168242493527298785787693260847859557524036090619471340978570740023068699476468107294293565872984699390897726962334734078403597058239005582552499311998182820728177476818016761014473359829847646523542671857987751670220975586868696400194231337709865869142984207739423395491967358913357139883205825726176203716873772985625059203109216140829287719831693165833050733060143184748872752584944290937597292373250278739454056352282348772297337806789738405915325333527888325005091367010933667726520524977733376435080148399923737048738290355464080854648216780865157309826716446236091611733760777423949448910660611376432818861400160856564692919409073795533962247860588701860298895642222418110546797322656308936168193209246778368616834864167689689977187213419154677575921849475842658802130282067877344058686734061479236508288282860179423266035810945209983070258984654794658072867313327638744961471241465676124928655091396333250954765956849030363961330216986072446442455733176603178807482107413008820894536984879485338928862339618536137168392764577480168960677611154177669711381271709432866984846126346328336816954583297611382910748156107859133751558555256378528329869208427310796505040428164923995509884488440218819585164145312089679925264001597141004955616575437029335693643892390474261430711177525296466302028116408219384856795543926751740948459051769590013169283762467078371217624795386780788645541894093335695362339470844902674713589480754151287027101100283377723898994297553516851610841878704607368783082447018847983881856423583506308258849488266043953369453146727373032730070314262607290230145137633103268779956652883611425521447594326341920077363953131341681197306653567260638445753641872877212020941978860579424516536475554651075716824348250248487487254838406053892948623635161724206706591887993648908093619046990558618797758347862838631581090220900516693811157241913812992653253702027014691893745874339604624986423568304188593123666752287482124775393752736520209398100232907881004002958651295741625269209598559669752951114742892636284602451106545554820524739991577186077931992725881615480977831667295558262691032187338402327270746669129803348817821247306189353680014223480201204324095559067234050095971923348012028417753743285711938353344158938566586917185723554378179294383314833164298157891174633133493917539728520544079160794533634456454531335897875374350442526464012706646415420188422895704499303707932746318809163410234917050503697712364065519886529207690072754016001466056583578501887078028932142494333549975953852629329766796964795574971373655594167221283042673822651098122560219188838406093162555733360897679750017205599262587243260350105233388114147095339901215713020940855921915000607852378624959022988863952281496062339257328168568058468187919361913437150168032891688911592183643492382711629748721871948841601008575819347454774855422336247988016167494964684281584534779675706545145298231332926560270980807447421238242381085132444266523586754875726645330275576384768840299192037302595862662275548499169615266113896840992155259102946474095791064452487664287241235752291608063471831789761416101374926083141888415758729925595343988805646564645347935677941840077747438679403527251644311046642177939057254108483916765470955132718540740595411448101545148850810799643617297513158156451292733551476660386118893778204300672252298452337016045258523325246867025153105972353592416247266172944089059302504764916004658189114928219720323382725707576596768322901459132759757304979201242811625893205382900423340663963943062057813268610727920155218301432386516127125577859616217887343192526009768354241594261500598752561842851907930951748258764696853881711805266639610514854829303956913154404301701976009691594539929371424540177548391945504463071956143757350668902564879353723647526148192309661224589584770100089032457322044626387662432899635078866170745895504626049024771827495622140645813684269335815803095967840918342427405424226023984491070391608983335440609044405454906489388804973326991667115687386820062819275253811916741031645099032582364397881696075871540383016800304822344793602322130632903606218095907630035641821792365001624427074975191859899947049542275528214427282085107338774372319862180042178318675368192781961156688384679144656883711789072234562490862101562557048614948296188023875507856057141982176076963579979288455673123374079742918833104552601445030844517559041829458150104758973391908363770234250015052721854599922374586950772613113238345092879987072696356242979511558008491915139259651234936947802864606321552157959096967168680759370990249746749047339274763509018098061723262989834488034293799758824037991996662866720131321139358163593128095858363550415305873578084402245242937447864656233527395385193918667644203714649634707234670216225018909969711782732706493057043456261476053439899121023297055883219430752770865797159501776332051142784068833463790182499934911782034310630679170048460020278937484599916802313360852101937731674386495296297749030199865772725300615927626721108103479329758743066668544989666165374262238910504401586763453796853026700158675194623529754578928660719485229226390015182715882172213474431990768425799102927251545705983207446152659466594383198397839447133938066829426847761518014909868046339159262548798077197201384602149512258416750059310882258213528969191077850426046756934640193728881678383213538928885813658684683852985623829712809875326376759804148664403272228739980638259192193907663919178556389239446197669949219770644142802586239118847031975182651703977512220049930417368845435317377264244893513226755906929950498938094702289945132205461363686107031180817150462899388940610071617292828660150124023110501372660910461909562617448310010757854363430939748013109634900052629239484781178332364649842137323670081940914776476557727398941314957999526063364156878929196359636146231716678234571446691546076529866871279708797999041888087828277335185266709041618841656322744023724161342120363369698933039444392918119957492327807876530380733076123095715262431320845723485717116999734527877329446813223992976300572215229826019394189735148109954690237860557149799443551122160594697058101799880738036585586863600310767030271462603798909758776269439669976368809316770984020831160664619961148206214099524177292133202280213425145350708905623583031510303613247789333246098538443649351411328112400301862382948796727923676515115840807632697838837764004842070427045802361915815343380304779442975906528184814257738612714824160294850118318982002857915809133850332881321985834108746250071991393216616943678027298349563425534713459268612127851863255503814357542005878117399777757933586231263008333485171837309133751420467617655159085148666589238174670419718219895690122599048089771907129113674827044229148934947499049267118657220588770090551441310285116991894977675429419043751718277893357609854178882670224838802707089158769633000762502422764350380075384834323255614013582329188733344301242931409439780656887182471394839003979475062239490104313636679687950711124526787473571563479104592189007906233643615383691838050484537424016124999831479501796337355976668083371767615337989148983622023811365490768348051166624605120788190364003843285112104347186454190083534513443670176718151101038781774244984825750617785963156302439515705293289860909321916959436178711396497408559455295494464206706532503283690323241295516502714883540840147526533999955383938951767300712149933740402378333662987653153812721270680240314724974851932190217043394793445505254027694668717829017199614029651325714818929314855396755818542906854949008852950662663359994338667418094989141245830646777537699465722464653789142553318007762089755366148298298358128627421143825350083451194922090144067657516387322948264718234855893350625543599622402227020843041085634833024890854780285196730925575711741450054887831619987601290257290990676400278293443494014607179885777725193970753872717200317345221137289808845181199566901927096049648868920882536361255701822804753656415939515615807385564725673451748417262860818512440794691529971023705593671962407768034139405342730187098360425612860082719617813763520147939545136263245353517509704205980449532760446551225154951330339806617153434903632562388787514656024952031077940715813602330937710451755890969597509916783481092462395083783845168078639988093318719017382039557011548246446990202215837243481557629900928953377440636639994786312719372975403512434002414932632909306232696100365300069051016539343235269858374683182563737400704700719383397962464364979955991130655277285118752458999183039033957696892128930498873509055240637109116974836515586371055386970543036797616238058922602399016008920405008693604619286988456471131652768740373318624920509738352645731715746681568083993155470843802395689130622551037598735874746783823157365753645215706461490283764493668363920180025080936213020784511711831622303282227584015376860834338749379863146159382528012840214185944466509375850336898572836475619860922223150705586360969277227861300984982601799343702286845272645765066938139170351072304336453493791117734654764107799403305802423050118249837337080156792836896322826987154732458225265514420482474936376196028630061515050021168055721369979241827050537371937938144116968855164031483498831452719244319342472006456219091723650269499087616793940193771545559232389110766859303411608761239761427175371981564784705366079443878787571083507786308676974772661884270806628230951694841034030611358924573375606521925405937788823039817710733487239009819176259425605450579411158840189772854258470244673473295559352813612343571181220625023525271508657531989442067441968315632634854156347290227579122209561556509602279550633963369377162546879033339949235321309902164421554899586871917220535655118297094743828430100770484895737660212399881580523001548689658975480256099253655627187990034770547590807625341297726443814480012729254899278953564172528231622209130357054929786871234741109586539581978021464003136107270738230216378622332777879214989685305835940379893996355993065481736356173230883108389035317157335568365311388984636617913072176563318618266207911489507918964838169325645925068671631698489439617740117389484119177433647752130676757481077924993348797470042260220584467712210829203145442178132107511122819702062973259623817434915633932386918665077499736471542313811059890570333314183703757690346984029359663674217902309302807518341820811942494973282235344993805614124685387692554163480539995929602240965540287563357858411651585487115103308545752406544982854678608491463574291978298700077572849223217150488994666484554944720352367811107631545353983149495208423697060853113291513532489914740860794603085355821154622232211785660743027820594644404530732741531868036766606359442022525392455057842322692792147926526480926182013684864641880669771070739744601172522884736967934199252330557111601451747048681403716399132082566356195080602637884584852358685674468804756000683680497958362490940461390830561853675348843687821580902143160025025822235142530700871820089814427665647516068051082052498144111983821500391579403497350829992356955981780824692429026727741701298601399250869070909768041028900177381304055230971455827318691768037934483395700634769328624348026439325221377971042164605963426078489639069637994140162889898521642017018805447485770772581885983707253517392530051428996390817524810277470791592729439722127635506724444239660795486575391406115730654156571573667401654437594683978489907761201329529039442186486746666019258514693805986491321613064502114189274033304774653142725615218595234730524043895938611829216143698288384583115651825708145590080052613986497831563437072707071008491986302138047228083335377499408957561756998557616942342072529269985260511492647295377706069244024619663375548034487627145336913484025201759680314999190358167800871368511832406606078829965152001168168572151595591399131958904618733428810897715163440874792555364130375620495260825579954629184159769843765557767373393074670852583257310724200181251606652662195234035425856456742456325247544402295925067042379725138868204628637483221389642029651936480246245219213660021804333075116766694166571778241100339828704942473553942009731738676461732440391223667350819390130129787475339757660214713719832276648380186328726984746591295026737226026354938589392678868544769680408424688348622203185825331786678870485724910138046933678180395360936184549724124805438292879850129973484796028065652610214770211827162764239659038119184881109479859598293362897103141661750067301275339471691036886112994452629491792895154936814284229915361044761825779253383349262377986042404960847250287647504221201731512179533681186626793460717508457343310735205396846960378610688049956628749933158903786562127587314344160300014436631391917920496503778317280953242137178596290885105510487435446099137541700193389322272628988967509287093163854597071699598344472861682066524556928640448682414868310318435804018297068179634507273012379415312011139001870501894814772047356728659241278950324108539737580069701847087353456086000405424821693987568054099812107608484690786579714538391691579324807912941953456416355760142010053067211228236500321790832883965843432820154385236696293585501528844722287104431316819266349237955191547116821652582823421211039362291592687755730545142320647964065535366635382736612693711622759729110256570539994395177107261947266985259724272469938307623537628477785082240844572690665353683752171129745439842194173895008435304391643607162432517062257594284445947725236849768252377518402714396998736324353772069288842153216964123588333350081298051238588169124021303695506505798265166252885344289017589668949305583318313505428525486464081511929589430307905464338516594262437337039651995270231425003561060671080344168046340426916953346092892837137809881643697646136202069977292140557473031710224253574131692752935285455446633331742276880016908663961344286879894030537298814419431049015860987346621517632068893911683359426006883518947372175505444066888318296365280318564722452496848807103489493488694427529635316335297272004332605269943630250495024365886976552272507410745993822378941852549724419323701615820521577719381700028386179021401250673392323801703804597671286909167282040402910585757108630374399138064266511547649529171083381857019371136000052692165775716517759077091116046667841941009665673224954144700743388582903203649853585421951753709428167271926690433339375389693588901121223905762904863382708809506411106837297260176742195823127898793052533234961609902848159875967430488800874113232035856401071351244787279062189887095344752604936800639537342278628956343588187162126517994431634646266304653437875922410542347426347100223877819585148776974612111707331484173877160924390158676730651593847738044367777866991651826157781329699607321862770072461833364552667563632380115846762468949901606687779075448613769603235620853812307781022972594586228055751305999031331322073324924261204325330103976355363331602931230234959772771985080200417520381563557855328497857851740100278210146742729911583382074020228074704483647473998700980877333549293209034778660804120754638217564910977844450299963220850873809451376209254156139581149099551834967271700874981662932390322786409529439305014884592897235210462222345748796261121367602010833475894352510527534308378090820399956403094667793894153439638147627240186032733885605452048570421077679933076117933015322600655963845111632014034603934069444127580745791106877364555509238752131924259735293446901886285221533592635249107283123954948930007363154613195430297091948795164393640247134910570355008399945081980173366349773903863985806081345162271803793332601327437985499694019605301625206331128361899670090010347043191014192120441005093500361201111851569119989624029530359540067498601568901849524096150131249635559590627786184785970966302902718475148835645336100688069525820067856548455561115437153819121471747719426063996239079092886547244266598035778632300753969182473138302342355437829622996128153641907369766394299912498776530720863067127389166509951305129434904187310764469169305599947598588018267949095875011641463256183488582167727334017700524332323801204658630291179059063534351573308095969857155054899690362226284390781226739194214354403339606869656226146428798327389349716429062635023306725830131337705471608805974142783764398222422640654624367800115308367417382631009000547339545879450185874984000584222819179344890815644704757810097029307540187495344508497414438038950284303570425968737257935619604942825194567014575908382365313568918155742595257239624171373218063062048836359858059053435670018040325062914796450482468280085930336732210535752614851116480297134083320485443483333207002119157206601774720664532555694599290956879509876655893650179825478194383216566342008930134906037517751713345426628763906743435569872564909214738948790244825078406424271741213324412685289977441838778343768371681977300963755598365752924567999434523064193638474769298604595623017154739428627254946794021487836138054877186692586354078911088533616171444843577434313707352797364935129061224751808478287059488264859144746206032692764671594287418499489364631348309718288695697378005590832527272569248137048689306445546171122799409536491343245125229208459246261577112053663229122662800565054594748388178620796246307553768015605322067787222330771933046408840368412250140980821871718811722123270658995010887300813155894566244455444388118784259689198989830268170029338690179939625943119780440602119864476627103415160151203586708849042147932767818307024537607998276488487698125135537492594528325884805355463484668415980982757020807249558728872853314646796884318113041561137310629063356629068566382027652621249491127451703203994146820451981863263155587822661076945978924018623439016374457749722290140374097687939574886748039907184796658815038057617051442923248711661343836059504173413448006046591148455993179930927851022792859826077629764879336502019078023372891208924676986791750155209137039399857923019256809013517733277649181581892778616108974323833150512417044459580910495184781357139779998415674276353126509646677609492420514839048602211706304482002236816807315671421888083871595725634737534615718326848883622819003757674110291297511104500033137300810652826795889111069633504258196424183556618549510743602993634744173202152865075535948374851732101747618301538974891893385307237775519595713462664463535687309132373218895627770890744442699329305272580391356058427668281765879595860056614678441129736095679487109726338777282152509859730456601312511434284047819607234527462533117606244130899473237594672459569660790590836731818908291056559510727986539099578757646836043019622437403756545539199349507396723924939004529131801960983515962523630891528172490551006738778944699664981984466106967526529692037528435994166744716496406125689759400726239184979038707847938935166636964415292769194915479810297998152320052638552325781105035658749111636111711335496962070498152344917671228952087637311648411404663326711842688239485708125377761683359203440849924436608262472687077391820018400763118966683895204779046675544458677362499588678354914462641187521235494949142139772098487407623237309220393566340700038909975813785911841079258125687999274472961905546861618539347674854886858159935833171996279484726348651755480220751350405903369578507215627943075436390620265015853888150142528920917139577163594849589652444016532418275547419576043290691163721770512148664701175247945658347506791252804834512879141977005997797192916419028108600984338009648713393966266596411959921897427913266805508804201041880082001789425227531400470143965087201686547143987249057839424937146031430839642396003625613458795863126992315116458189002727696041907207482771341205908147205063762205481545903469124669661184493260837519473793133706972121976160579444662751093297811407479809398245230918504559553093604313296455042046459082454780012654539852698348363483854425000859818748876679289158483468914719437770389225667467400014139453274909149563044876816280530059998904790340902949014716632738805506255347335430190060417645529135501392665380168344380340121075044490715780013019718620396100997241421083260272050141638199161341579586752313754385311494254692148959906053190893925539347020321760694090493828330788311006800226377324449558602962951036381262969604641097650242252384189081475431653899754561352087268809263019759226974688865797977057294405472056687482904259270001417871900775937468252473163687185026527721747070483321740649958654126006365054716417094974411723287562406600265817737598201024241620041293604065842383766446903086986185548581367066222364674603534706849203446516173159586579244949689122731493131870856456837725788666652100610002394309690345590525366688132978619479434683586853718422859404124220546062371425264548640869281474428394530995371719214865279505064753378413672766988501869110082242866748813159665400641650576549953435936157594360255517620633327011852034395451142684677226853137550047942796036134612153668270760545999420997626803120920009671938134494739873018766475197354185661163392354949426426033518716251865510091440560488236688755146130962757948112170999229510891575440815424748848033967726501599536378204161005009079793407337768616878658026520475306877876504243413933472621641577497833497657843987509027131118767516176391685292327442805313298616696104545548236604546564803989655223869747454481573057280101244173260561177274268921460159716030789400089432889162107303579988026219379017969301959463146887748095153412031578416404488651250110340899166220349585572442139976813509160035623672564445891198143207254468018648988384957991570747151237568993129305472258347057121601509005620740001777042513982437342200242551568995519055451012800277120177213234814357348498307439104765653591497155203506697731811223041165020059377405743168111385402143057985975645384250245522298606132745451805236937043048865717325357423419862397310481702743151617259072102476268712978197467139166172116214114980466179686371186950030715509054647386737531134301726322391951740540894771675502876129925379647109940925636344887037200295981387210739389166714734979333169610233656820094796711931526715473949645900093406955535043589115169709858041501042773966152505021640179596744520084936682839982874672222916984236911382148029859975537084794866051829827955405378785379125398579505591016836997387302931438649564741832694512856408578002637373386493943974769915527860296402694567084415227427078490727884437999823179103203138359993695316346596072710419760470280369691847029296082247616149801452981786999759553267678264054771317294406463424899411815858553903084062176416018634216972073021218564340309772444154711397821960016564628909302484528049700558278162263187391961042217861738223116805604684966932289846577113605553801840931003479203971081266854015598994971750942443562314946061097137550438013761142850653156669810355245401621386213845463547158841723207969271816611397944399224293581787912796200895455127554250646373425170521105163230698539822336882219220654525154908503328618696015283506716545236747225013118579902061614557796513254702270148588717881708369923870880871977474331595547093914818316631234452980459651912096110223842533478107995306171483486415260251214589067954129595189972438196370122239576915697824133901654510753612612663801301167798225625413958361694949167419131929463814454858447454036670337992013750715378892085947407514234722667953928406309463687675403460417713713739347158396603735554593762211262358200937335909180417252586074307385264612183725237826106710233097675281497834439987219864394999480436748255489206804417666098413431372236184843409428545590546668101433729334670622355885602441142592180918462644000618286332207791098070858834529804087370144679174238273730528626167700100271165110352325177446184412411438447733362508267152330973379779796456135394629263696434453527118510667741335021916395137782545404993181603564993684324671930685013332635904429202320778280442092358151643150331700927524048261544232025079632860212139503883537263304066927249228555451277994487834545578943111325001710282200110217963299784439920361462129449968627941925191665767200139013930566786007322022134168611158849122386863337389120037226964413025970618453048340417128402431016467038586154515398308020114251512689858297262374419123344775674320741569527803387718167036542437913509455746934979231258659188371453639197960695831282320579950063318061200914331518712276208737399888914380772491508795649486418381082487803017522024013510123491710062510024962731359766817347951941301476842668692796887276384026253257361952778657799996689483508843511410433394605526721780170829358911167440896669117127698677483284369149680395435097120160305577660001041428524602693248577969176423380100780472013158417474786133178884430417298056386965397452067527099538613563333505250750785829872180256902350462714018537568672987611504814247930133955647035036625977177266091483335525074365819173730396610371441436471264689572311761855210668874037009748879443497177423829923438926288660196380928003443927794323639382439201960052177162139957592832605754738881270884747899003074569486700753704700825711997717946807709816304935107144800842588219009290088905523636323565945200507519498260800449202506928756378284308233899009670862528901878062825998388714450194009726946225299814610395307885575354139967518625670721921843287457461680865505384857715060092590053313798793310610664489930963559142218627359265803423881311289423230020709219654533703645650882771410496340792713228954346686881307620471066732848814868099672400256062451455236606220481979548852435002040272360691340239665887675751588796097427557071677279823695834961975667522120664678684275940264649350226446367976337031175404173220585845602688542908217142220844515389490319143537469497740383898795384601698418825930625855720651806146915410903093776274874887469578389887180300755603468716945162050580664949299130088744928650099424770844352954207831140880211060264453058829927425562941227719496069365878497462852155842997814678369693021829779506892315422030330268268397820249851807378491006173352872578939626757627702641701911239137796103634304034872863428895720671557524103919567442529748441794737976018039640818771182938075936389628016486040517310816122983386705721211986698738905421457645826966839338618147770083806716681769291214638860132320251460536228778800990833583894468905927017242653768072362415835623820189768619909265429823919047957351892427843658238970340079887285754924603552499969761746140059981853866682300042980390491755907233869468904920499745919580923071725408781415313511115449887443711051646784982199036605080648505829322101633081868109373065208538749552429983644135645668896836596514871549262515362673223752142962987005143597401455733164317737819996890880218070683940885892946682275061782322430441800015581325450502166644261500057085779311312128150367673343490266288745778907321746644201061838216914477014222695495723472847589557341938819946278521891422593997148499165955658114125798466574396175925092182091923133807470885946096931410249150938399316863053715685524812991514129477708695330684835802901117562331059324830052606602953350245981819777122079067263453201667374743178388921616794830205241548173878498097799695835512469278176952327154007125950825981088986280119828667847567622196908536480019378268844147075588036353593612508165858591969053778478712213338835405492343003721946472895322340938746967942641841624985961827508201859263968786937953923748055051634946292070129140184642281196956964518003915002305654767081463150522340992060967706612579098230165518534784822728478955089435929924957779583338598256886738277471741592366887628263639749190735157860879405753379619696950191928462043930677897471997980093902078160614439715512650982279482112294607240738978756084443979840872243002389128715425667751532081156662756595485414952189905843328241879221950100735883160954308528761971094492289773947921020309614212843471969783421076494688608732279957504519256219822700641680729973964376242471348989342689022785728239622796636272712299508849283331686101717085704491993132054583118036089131929842537395376509771532480698750229588973745395440223444712931112330958459353219834713058413049380904341043169218091277785172915107246935689365146543915303299522070529445867537425557968062082320853525133684641606536545252857690919589198432569059780837127882931741699368761798880463387322976904074927041713033070133601304341026850410333829194951678988301345954933414224526090265626961453272716499224321389978143893962891922799532531472669440560249667113055149647174826602559079417015697130549157418194475468538335088796275855944924229183738758293643984068059872552887429554366712037517008261262782117149641443318711857518233450297329920620784677264274274953662412234038279313718664015160977916151721802107059618986612772670895883260069827451173857264635288944626036428136467873064535064029045691817865228749264198722153396727314431548269078424160533665578178929193618365472248879461578395396980579803791865765041221340973345853755814985876920697357036781461731703691773600663629779479570011424940468372730672269353778059187114881730620478052701051614632029556453537871640963174500576560422005655419279828976444362873004489023126484879230604465399773632036301594282684539408900436408295465541499399653434943004598652721850951633931736709590081556320066841305507956741853754986659886535491317646607714176960582205278511961906840433127958562325355809526963686944709551782619622439552523450918832318687899410268979963705123935487057334366172641060023408085065624351846900051505859996872327356274004477162968989427471346751945912724446707353738495984921232867534342627263525872269748423868750126673577102504648020967938535021487027391271081926108520850767221637232687475511422060171053849460692913059726833836558758134849766965082893756281343560531491610975783904961133611102470301665640509475805918715289806254529117248298062019917004145531676492941779258466897960143644132466288400519328578485537195511069187163431293829588031000409303987986422850371479609038439403611211704908637044555320557524643136493640350064768558404549757638324082375969411108514334279830985963137693471263915232209550092752101563822886085249441539936969375727881561021248438870526343661713169841961297592585985954586754014027530878154763892283546060269558214338266063294720852555222712671966046117912551377847641427203599986716646384437901834474366220254534994735153932642389413953400695002453911158410718226018343448124267628097681091290180405116157770461114414236943976897247856085182690030537857122217290893404598665863454083281048930393473580158619558838921091622099754304422170913864308364466319994295521682953221876286819577394335552975063651352284259706540549820441478276120751621085162478983476580450927006554105137001558845511243355304496885646615210819725873810058272406644145369829532548776323204126819668547561031785255267395133512562264651296467753503163840878621198380015916981893137891533711566414466497429275364059130157682079073130303003718474193092981411800849042176425624368160713944370685518911589458378011416806784056950428459925174317869990623444961451631565965320624686665981378815045303280052774980751910254209831503380111021036225982598300391255812009746486381258025447524131970126415209047515447872103007941622937597521900329187826533981175011645898830827292137239950386400272728658081655075827800284528188672647987175088999167792408371169620230076678155726032828520829783201269561575529006053376661835736578539786143304796651401585617139001502302004212900508487373447778968188665367918452114609902205552340027888817042147204125513084731437180719218568157720778520168362217152216639387100570913173870296424415007962909224823544774519377074402206217984109758639761104171232755584098958536797384632995289332453093656906975989276735233590453525853554304425493488566726538112334878232326502790705346906532972516013299652395189891603827132248806374564326904083707942497146656470621782586387605916876886492891853862674949273638598994149379947107398601211053813521625213682998500925208699515298018255944295598698037299554827305226801078274952372862364097370375421755117140666905589521556014493382325478977015058760573111561857488439351641848414191537388617258660996641333090709135465952690599996915692069455676576964658784303999988515979258895240711031520404545640757981359665972968257339629913050393921985076262513675774552910885262114989391831461811278764044483867526445727953455385727324322515683065296270396143090760014512437311091265236528945063769294955258584641450004925312353887975980340178964082466863432651205212120231045246516686534788155095571631760608523143106522277735300720117567947701985954467582456168646431359498229538730125816263305330399620713771895740855743668017735281550131384282054360170377874918340359642971260347909057482060380216026951172117942407567178879017435562637656296743673788335436544498633091590746135284651657192691358849047363385348351500082719556598054059977486392511019249793935886948697071639612528056457207591771651980654452831938349721255103013240410788722733460470007797946788172588225808961990790354061220524522205192477137781503839763157115601411579750074285583133292648912139336173607271433855512043053803430674562522481746558924417968042911508805665545541598511667793606904235915029301166211335422409074842403009168616911607401261138980622073377219456501040103663929592040627364282406363561184998797602022279900456263308015222427252157526838859544923746178523780331626108750224977351625307431476272446711383182281906950778109877360688951236544569047493961593606924737979261444860246619459151578310951142250414886501758734496313558494329341972499333320885058979507794949946394084567345742160897059187305414092304482927650556784136385157909748265720020960165719925987545019047912676835638357988779039455182531329131314556120270512934636623902635713285306820521837625442525667312289988757730480390881660433899184028908027612626648199537908109154889092170257942059598930824856276263227775056744101330023826558639615979998585487868814588331610788730872554932734217261853194481138231299843844582048087544073558031546632152924720217941000074794153836143277893251940731702115494140565040415374200946531850896701838254660296970604523930618056393516003964973117455991996373149350730220499149930323421234882566141296073507327533560300626759162489415282813451241567339086150866530439600185997937345862561314327634643458673228493523145054676844458102115349920748233009730279412447812829027306957263807239711310421737170620630055196813154483474194680821343632349194317095622195616299522338325085593419818368664181666200534036363444068708636601087036024123099445019162234484166006465539932211159213823258960724719234746180567027540378426848480729142771703727260925446425698369478484588467017526150163468716488704827264952108067518236558517761376584632341363331086649418419970680945102552892039415756536498429317521101582957876208431742772591849186387420656039446790019277050924315082729201924821667931913197839796954227202206442164589498247849068641412517774726787293424207267573291558193308286901467510550013855522265799571761899022677975536878092440845313474122891030464774660503554757188264398344181605205776156036520866751232092137482567101698592453624795330885913543524682190360913626660590558025094644709804632130508704827882670167916936809687731073698750281568010849926017934990871793899643462646452142884253073403542398771007128786077962902760068618836244228844003448078956420254284527249853522733806882050000929494968531057262756905288632684287921412048987223313992974459725809873657230783983612462335487452131581882729168375131012567785135827344607439853079870162547652746842071263443274023005150045727668841538791118410240932317995593333339301719092070551074824260573368205300414958781410784954068683760705358077530515863647527217209556402960866192220585014727689373925735070990035203092429934392669963328251784871141329914655550390453540191633395511794371773077081650100097704983672588713581150390524741151999436341593020257004182317705242929329184674397139356044061305762539655050121112420589220246973490095177479989524620849273456361977499601247526472494450895481259077805369559537341114920446897151011706071433155770666169200394288061368734358341919474450474994719088027789841815583543761706061041924900795656647218748505193592717837546570322609104609098783961944292954855860266805633857255841779045809953162845300613890215420024475989109969653119812225571778422918589447079812450914036526688264982585415209617320303291399885315759631326078358913080777878847059016722205373508789359253339095627846920301327305250640826250399333661911394081626141081005564264525260066654599359708208397586804151165469806628198690884991629335582309365996162644157749939260586161146263186263920083639280364883022656784247463323873662469235872432482187849156338927101234730358270695436881536630405982734465275305915826020333407599588155130970180084734271538172016323117599114349392157798027807139563462312013307652021083866186076187731752986747807799283286569137304931554679664401386849873904766361790111307671820315046047900009177254599039624386972734060056307906195299838270523524214244310502165860148456303555479638649504994699715352772749739068114307229534966261258252464067102407531440550056201802240869112960682526582897369213439590676757933193925424541389362580127632035213555672279648860554240878983010270698090717835321602445209819984119175628106552532597490970292363140623322040644294329610614210384246384443332734623116196997709857130257575053954011158547577095679350194840872176995333415774007969981262749064173277223984695819692448621988026771342003087628199106811939230770804025430481670797991109743430313340230168959964793239098200620494610461572124123190201692259536979965478989544033902954256553983268116973708103457812019574379683346316600607398919353476765894720852623891838641660937906804051124526869082635041267668684594600226125319239407755575158042835041098583296408414757067982655041435264898031947386165361194677643525190500267960956291312520016663456826254554726747754146050817622669090685837165591038667326797866267226475601748424337395444429796439131462091131550599466183139899629194124307336574813328739287793794682025298078148640510836283584113845830940491923549447487654147366199075519692238024792293827575900893300064704223541578722981467768113929490525844396932094038724613570763228489382106560034518349525953108240747827196238850671622693905580327355662931315813799613077398392058906575048222548340076285027083324518909994197779409383135445276599374062707725895991378850257478511287738897634677715386105264642954785049815562674949513925363747716416777651344038354604879079988278744242072563415049119637079707158791998524081993828071017133014357394985206383326509837432044234705448060329603852962369098306431128768582240588466810204261883035126214034297123979668322801267514350521833159111090108918726842105990136058323082818563700102072371251238544389282554641543163166738174104651020037760842998600971495921405700655608738571166636665680480286430826523302138464710200627195109128492150410513106942557881605270576083335388342145129005237018284002505788898764191243182905771645166762822343684323172178332021665345087980165462168426662814793358214110875661292297392729336238886802301832847824711845854916589482633429949607104197915549253423814824850731079477168867154737133877659263363606012902488826542917473725842549409446924930116702228082673144918428078421341593145166817183168332493366150935169147329623786232133330192764417533613465663316045892257784377194561018051179483865460116849826981421415630227737604298620730801417805909433187586443849186290490186102617604869970801265556778432080024266544069852826649579853923143453795686246536450838190082652210770842214983320997779691855627912310988432378599531220640920830576087797383140666866756615805410988436489703234203719169418787900800154111515969602870373510188193630027151099976203199504276175145253801869716700847451201197655443350150232525140150990661742076299592938991388398549905933492494077056515809006183949056400882768954990653044640160723026955347695606408808802841115537304763642127273861543640516329002066521787151129677032959235413510260070238179179966504997645424213057874579102567465277691144572550169344049122894962230955528448595891095141646331587045983229384256924659879945480804375290038553122510577808289117477706275712146697690234908433311040481039075836245788209199154668161021863188685830129155846467261495097098869603056466831561481044052229731106696278445639278293430759495133182119653270373726657721244025038872290170173955605575841251303522141676265596405975129775035318792372911214868045278719018894638354650082301715945919983038235487296665407436892882983629588709646852035165623954433625098490588267553535907347186152766313696511358809160380656843894126783848523405219863914634796814163820150815297230691452282486261697387786183244598634378382832514754742597350852974997878641449154721761754683950087196857148695251002311524197314011420169925466604417704385261973949914935260465550376571571332228167764003632652198982552596441544993999483158886132293558216209247455024794136242874159005274829573038836304703136655347943991752588352890194623186623339111030233630483203062887713215047312381962329465885762937983494763678470273760119066534319805770206065318023772832223866130921351236506958984192305936485690845929883713091586676716393567071973211210067101453436573207722080195990107757124691049595226765060618681856438518564945888726656914275171021979974811863041795542609327943518637880514859383700923893421170461303452925605875614298322907361808709870187326898091518775502995392553051005303088069237603232803876299568883159415555109650847328621209730841557394506021538577644243319648999820545726032043245863936813773935657041388887910929520043647168096733248574986162990056330442242791874317911450249624192678140730082174283959774949515569318397092168166091738781558071135421883237037714934173201417293341921062161204616493199179706760652160076659151125967128765248325529951295378809919075358032566579589876446063670688472895924348565665033450307650792745103329851409785956567633379361546289167093959459045992470114597129700883893345478040098219946011691268862495246754453326280059419052592433579048801197696672025832068186805321631779845700083417185727304499628042064466271079034608258215732310176286027047417054959649492297140892352371394403565825003163728482163921147874605240613711454420119173150661845557938600049168792327631551008351786757069355861553540832480983111633177780347779725143491859987471959761506667831407659192489094557596130475556213358231817135995364783376211010916965974371363268520937070406184387373442020330131392936998693293977236047996553202437199159596319262401437916478771238261765637837405158869398565313102006064002890243748038553365306734740784569149436100967411668995085632814638743988339585372267422318309841427356730376075675911546593867889903074222300680563516526192637508226700479575909755356614004213744607003440654776627551117625426317931628983280334904651169019462905223591919466903385930279930030741311229714415295838444258168050467297363675974707074212525068394677803582965146517659817449413183241971091934980160092908839245387240514093914360278794255405473683346290043946029018367920944023595378283322006958000518898543262428406930415569090239883683061693307696330577220498038444065798853944551924947969526465911349700336612046656650601899368180762991925909199383524253536343911094912169888466603722932147690219160425241293119335366627968368090503147640882429616398399288892846671293825582786788738899058059697363556074976249315835894406948506443612410481533324778375248437667187997005353604050624876098107895181800834657745912792356688060324521243430926851835426025535536334639884502701684990415677106170616141244727809233333750934459246683379560878820349866566235791946049549484982649440434525717908664100701230461400943577168195661076539968893110864870491380182282772447046123331025042210823128920342409763451850196831723941748390451387088558153664884849557831948806999120501716673664641638915444314058706467536447728218809045098196553645042519190315059629172727303527858972922776278336265786326021234145441312568127865731690001006579440476185563178870246283879173297773371479707494329385582763244490822432760699442249316969454556447402892783131888105100684742960797685381331879925952271011405001704913664109035097697112575560830737665634832589104956675837565214962040635035321622503985600487479622690696898989275545530271529731704676283330793706307433862790509692724664723255071260787807538217350223087867861331941187252554999910676761066504902773146224983619692869166910017002681684965755454372128459892979466019326930507861191960374295161931555621427054373048171205377038638108059917265477415650525013806700546669253943639566410955889869563938196150597004580818039632478633557477327929377251691007060442767796731618470263891664559551221381003425371999266675590904154645732529625892256055490858029260277818105142073855050412173867517394131540424295415397837442312240814859586870863800367092208514412772586926885905734497589746650030746943855966648555556762968240158962132280251740628170537194893909379971049521381378752282172073152783888391046633085026885787584061206428322104399362559980385031203319283206420005394099285593401480246108083514077151120382880277970822580363193307195809895829175787837526222864008824710410862594654318478145694078284372034809564912532145466514667481898066851779905512314376106192316653491969123371501602863693398032980623339614312053545400940948886755090009706947182551283904148398529837618269782091779252841151188037774431207869121479234354902169376432440855177157615978729395249662404259783538639681518722829725587762738595896948497788618441559281097389013204846395778250271290980436575019403677786460906422715089395438777129520432309938935442145494317704326473417470775129306370338103884876993961795988043030947746644231275357058066783307345340492515064551122915817196483862770356050459995306801166937618309573092294308117177771792051891734111390212062636511352972411006056336774832331060411167402068649226306745147393104818340798643648288702541676983659205948954281904675992820961982566073927404647407907015090953712986322697174187483379350445093057761126458362153512722140572298588306235760083425598273147936234467381382504307659501750725169506249719277977121823061406665645590271067985671848073418945148632457723539560123683498461058831103904896782231606964355552560256280427778883797433328661261914475333643151699172769056042500380788862498363854119018592887762273083069593771476427697562891541933563625571365559187366969180347670504278355397459742587398876618940679904756149451190940833644240765402906522095880399342247815176391138980139403971314103545678527374956399065243468798398692913538513013869045001262212557549223002385497131704475357616076334465613395979980753647856831275184019880565002522860005630856823980740758378814763474694808806076879540143257900397071127240497643524888116585897915986697484460562601777401475195691590027061945844205257247127372057526670245440820249043813752019524650796231359429403092569731423304647802123438549104147212302005856762946941160323598939006080525476792437846552743661612999015218083485253296155821337837963656872751196915789959911936449749438635661553879773439286758412840754760551059009489036092361931270243418757969582006110170280829732876670429557690482207676562334311361450198847942174501488450856087576975807132801533770233718139158090887389549847674827876144350131668567618554773595050766253182058754871672615792429482173261764880603958410156252646241645162765658127813856851188607119486712221793527169256332991612727568039832442460975732509842224967410102784503234035593603978024152511511696953143422552781789919216078511500907790096190352445312560008018585231263231568949401878018687406229592802749681663799541997498993344061634195989827531422355913738884801562324534761976526666410659101561160861999029687400692702101160491252567535082793027618075596420622581135286726808863609776939168854737239946067033458173611183029374364291657216184052230174277449853779973367244156716659665163849257458652472177624849280612330076494273572963763913100912687725545022571931926238971711511715785566134237182726891639888980737676581778694385018742550725841961183261911615749936310902120463553758263495278100921870705191335470378386205050687884647596640784646916375270711549255537862336404496789722133190211372160003130165660478597853578612624163761136756424537082234245101261172210533080734270180704938330831838071452093666873184853161451841713170080512536306253967542859798175760371069461462214282072356791951500287106071904821535920628296912335730737525967713546155039611373975000800903124892038860613856613644938173379969761376283025137350583848197805355113610067002810744452132379238896416840138348685769516585668840851480955630908606472029065683841329958256852725609599366181935378257626661177545734984577928621523268492066603530763325455957433287382829297506174798495004750061678632311286819954399815183780525474608428919788854671640057065488730901756138256545944571395938021258901726207786646459463358215149018137184997006240857668713835753832632968375261793658754174689822289806956900125183250279813100159033321453010420133382343030738467511075704676309517241081835585764223457538843913765336222675227185882342403148423709614048913401247634054436879077859653681720150784260302152754697762480154667891249771232073769951338675043705835699279068598144347829421212314762305720679851810712618610532160535086005702952599099123137392783970095651752114156954123810855631080325998646046639258257819973665126045422639886389696765400756832506887093179346955066723020741260624236575600587447925955152870883855284533762367311827330569309726509842881872476784186151417543636422029218586985369602786096592808827026920510276258908674153215946059174621518946404959508526465134914425590359899759473170468278755314764504995872941524690618512760151121851363383526136065803811896941928010503717184132040794585391916016104674865057310790301283558611263547889949990258475540892965497875704418437010941914596159614597647541073268526886947223057622445643487163161289074087465430754292618434996307250022064734891809083614297700304343843318505486088680139039471525143906941548681593286658430692367687183099410349545287981157941207655194494540076103172586506608239817650809144728994500264430355571808250785945055343867113602036269840113381129282842208275465473845855699863118520199394032453709687467013795430017955861681706076599598145691661857436172313063409075312107608040336187928352856246753845554875179886584020512663200112556553152363628012896368848478011370982575015298182493643455723255749633350626127167796245452467113054435443801267673030142741144597863879155131859207676309520674756109691306159827614737588865946667711421353923291527963269396758991614109055173798426967071330686489963760888984931548833467718471323724448079039982552297449191895067812268184248782934322679964087908589637647286714541294925915123020181933461457282162942206609127034021791958599657875827695101901780419692016165499990944600199638195374216636783239098440624965118315001839644380304654393794054669783205258086532809621968245985298485600773890853214990246432951542597251858342672908788701775847221583127325277964346556109742641889713984388746186546215948016835430052979046597781182932752631960866771762589545660004767792306733465476611286097089602570280119254032220408984972389147712978384891878299176033897582183260238570871238381387840110679141009423598779774337702959964076668885325077036279564567859536556376601699220994267768515646547374157365136330717518267058333656812552293212597653344615812737232862481634132572873150210695184676917048463801876335164737426975333853871593259378368706924924589915709982531471802457314255970974817100260206969000581276759390358576323999962606554295638930647616131062845647318871263380901891470352716917049416660879328620104852163122163720346813241300420876714965082944798841129925391181342224952402754635942616617182818826345488223601733501788156372902049510583268919752946284393433637993756031429057758239613358931346865308418163161121506148714154162031818752549688980955740414667213383709226191271571813747624215786655878749681135656232111393565356208328226049451604801417250429362646464386665633764098672279160462757472507450334934950334085158752022191950092912935459847174610264757436066471211620129842574737244793770495094733187692876567083129633558476642239740097527890762774070511744516982569890109029575241937999736883639938787651432784117772575130678428485568410580834075532930116117477695220601081722005537014294639256362151343378932810997280514285832060424211320874851848298184442106229938165858788063904245208450337154314326485099568978078059305807910861499057855538640241043368261683955447596651363384717180539254055487089039092430986134371979594242419681741209725252090151841987340204976547624272120623725795372641835751394680983828792488820953072183024462010235020700864834928328730549394397920689500355977897250003758708616925051750357534663340759028790675518616126475434104085005324828275701070237451776866622597745707963570807966772907581624786419097571755168452019102592486383883822812020869335702623563679741535391780888725626251420785741182431927264175235108405931682818563332841211148177254147697029361371125221566106839912882056956938822030829892662208919169195877806220553993848280835608618559861635368260189880282472584888776089034319239996053429173719274189839213249985533432846442832429848550885727530449944245340178894415032277225392148131460850515599899225294688683722268420651523000939976527597158774264393029361502424442852873849203325228836304066249692236429742848671984657360614932202218185297657118432689791980525771990478397995885131041316497955398069790092896218267156192023703040908821181908924974378770474892890508129282550774565431978676872694889373377585563950988898843364147209557638494594346835709202384999036119909509187221516499075578164679723032042786351211718708995570934582182095910906198676612759470250240652248498418983399558711575742845189839272553142384358585895028310958302549132930406897429518155040741864814103598560886390914455066567456212122476279221570033848850482772844687298167176058631806351810971486315339648699584554644012413902357032713870086072739404817721250756488771405969019769538777596181832563674985096339433372519418591947595464714137868439141567908673068457977973218500927856401260953092349541422581402249862142851460864656443718033320273450633053992727350674646796065561079941120305942533115556750774166567836096200532762655757222617797891026746830707631210950183784290162475012139509329070075142164214365155560334844814097636320959296936792783495908634085384629978016686912049259140293931825303090894854790827165247007072640050787933882012035842512982722681631779475164057174052579570801740489389945124758173365068824678044990459546712981255445175386584322184451077669632983478631336852831053629666893031281323335129057765649898649663483393904471694311000907524369354030324778531299146614725918432608124179936463163206860347729954046150323396576268996737891842448914755556381482206150768747453926368130790530179117796968227121264712924938753190543502302340162536212789866226309730575167523626704239120729147480274042968231749646967571661855173958702863348304599159259148293037842756718567659352360608615416446966894999632125358738227625672321566348284870185330367487771935114636342045220149837860665541329613211440955379466910000817105345214263796575854175523220392181320496221162606847096759641227750351004268013024310891800493448206317271528166547432103730869083427550977324149069687192379088719112605268618520535989201120158991620786272595140796303916632544442514529039442427975733144687470739542773763945986631165993319762810083580501517177604692153886798989708191166008783218124941809182294864146965217604678983697639359537193699431061833344483090422261550236766713593922951690092637547849967391205186083010431579867060360142664766990296385082468733419806184747309131983747948115816461213205890174104979672628252429411432130741880862827484716507631432664557593946059713741076730140117451051697201392963823824413207560918301024668340925801222151892557860938187820311878472586028093356722273404471464798609946965310864874488356185340961302807625090168810304184600193537562352196788194927134385227258598217114781725704123528873529951765278823218973335851607037374516620820640527430957975994597189054935053481882930873723206861269906098154645813657774210178577536319351252366181561657826509829084512055721409375271109790957010755742777027713675949976024661703642743401907921315246446831106500803141176345305947434750866491918069414684623903537100510633542650325637075562276263216145818529744241410779293737786640257703638283958930396222177540735254541946896371681935942232053278384431736722897852686356779310708186823519104073484435625750145045900853210321680840534323838821983396201479378752788805299277860450573758464017922022248082356329622657670993413390080772155852166753981831996458935111021376051225686558864107711337171060039738715523010406509719565060466684942961620195213818315499111694805245055094939958948605050988859484131379153633954052687886060489326765579262030514571030524900538320664891954771073783775250980154949896175799325163739050569996330634593981248715151014021585574671059821965319645780875990258946418643750949327487782968702798075250442983460200850274645002483684122009347345918480470881202056464211075230848284585639045386235482126357923115176585274667818683172716850413800684137709670108698900682499104670596289901579092162062141322633066057181269682164331245121646778747141818924012027917438800466709090407554340087723546161692117243755557704574324674230244336892389796361062669518767575685409419225904854185030235578610952855898899323048827218237594266341487560503493681437320798572030795984210406079063657361396674520694034794717300594905783647333133812215662759829000916764436713365660807136482952776377687076029934017943846085255619676905121839364864566869095391067307642169130252735288800389852454704723263698350768003319047619854098493402352977086494864664420352066600437320403932702003761351866269675502475703656124571417360065098488153963234220802088743116428109441097443357197157532434354935443803036981357639269848603678382251638965113733531296366838169195797011704972946456473134832835402548712687333524268719120133011140687946706787347239302040426534511919997304099196553463587884946606219089847959937026896356584784802201333429930125967566618497784539308801754458859597653575479487439814374763573868744485980907133084558740218573144426577670788900599134927703081083988553661853594601343443385310952287485570059499317710308420980678576635154153080973352978108747194690376592650402322420153311479507124683157423264003588853582107991300618488290237487520328840847946723210085389668133265951684111337937853026869255860410377624764913653675890642351362472671264559318274383205740147567072832950228740404958205612090855994394689986601130260752346232748957530523144787146795219468377095240589003211359707257076282187096573289811020785197490790010618132845951199253760261198151464999368938941688468160922412261774504085454891912981835873869582964475724555985249229273617458631127934637881652212250400895158183463419381731586554510631544478205706840019402627571597381525247355588887419368404851072542966422390595277938148666094493072875439041144256670185327490162414785729685094021231130269289551544179561462743633862871605591141877096040400028612016189525586418901670147614203282679971787372535476501700678702857016286334432784259847205450602075162255292702057800781358722501295852363492427124054535573350390086686705055702807941900919437138677772865774064797505017655509131298148961744231010861559639569781559391687519266400054929825785410349771458067283234165998301606466850658749271361694986532730623425046430168679594957374192876526125814142793074419897984419042606279771377852151303698865319245344490613452283186029586255959570943020478390111444863194500987145667655664763451287357150443726770396224389654898712306176196626985866655083544018999495936811105207463648415436688522698505415084006535928971417610394612319776209146007938119567072568843792117113972597680580907550114505664336528764013421783051070813369939129468421108476532572628031868483886307396431880634552643167286396065560457637263460076999939920023047120627793249428170245203200864242219853766850666392690993034379815043421102968875148780854081759567342724303616058719296718290120143467184158866439731986786985683965590445818386680611809902652652963507884148440786957447782958458551121919120662065152476718235290355766681696606257288276701656993956639366411057991912667750002613441906382848792906014838243498977406670973708376724695124489946776512274269547556390607811607348163960477910598681738639459588850992868297468585907646393319909963070274660486348722891406662728757552369087230761893804623501256166446712545855289329485749513617114971298920811563126910305326580809032404387335546972562163414325672138390884473482609987243143737836970711629320854441201212052793126996292551171901605476753034056645863496885710461003167094682702823338657444993064897655215234613414014848266108541734664522418118148178503906593541773610304807069979385546611194623562602928069524486940957494736083866282422742285306647779825640183673635916174761782532767074743777762544645279410006041977384382182460494858142070123479827282560672134309857439314620730426081901216389092847361333995182044847265332128224474416922485297660101906668983881074338125680482486074048151351638320943789760154508748572993219400545489627172033262386335267431285792003874874176129827952552004736288733945556015480560814221700223648918694680857233802245495785132596298143729559245396064729186113348189486217014711310778835856291862359820093861395615594378835761284190494223142358382220614370358210103520185289982085968462148508905023046233654304280779354478790201232682486360019908545031923460754469746500711410612791156925595331300944183778015291595628022058385460418637518617396601437022829912958443843319574711509196275112427268304571307009233144647096223935708958850622522981413041154975286436642382159357900535296923753961371429791726116983614987076854848784792940051830893875309552623191926463493405242587513487553199184448027343155846911745435035541256019637104480815238048500597455603104670900742521155899953328857187660738167004809993452918867521994385412289725154212006986088076221494517443454878956313083450980997625020641103285271845658566107937199063031671923906753746439618100488529216083195309849256710819544543303060495018801610025383452918136650111718823734267362369644794411443287267707105412188252576060252246332957382081953195565485129151320830857874427076401116213997651156280089016046411682807952178536284842584588852466287071185119622581671247921530414481901368771826306773345827460787822636815589145966890638188309320153534869446718522490163253492352859430204594888773723812241173759804230402993103833088399075980399490654352386191705380511200589621754178559383838196846319744564493089961233876767618998916999453872538981403253494589018835274215356678976038812352791089141060466418897491455832487046843534680768023905410158009394797380706251250814697639512011686000443162661094602549467616001906974588754284246352301003394559751844930269875406738422607691146283905201106389392511757641430494048593993285908072190069604622081653153905235024305670490884510897319720225426696351353018040765723117950272791775156768546349421547821449351914439855781166302381124264087927643476270464747077293569434508288728585263305113803798222193488165006376721681933896040706877359630705337853560060816809362443258754468949340987496828977563558084272545894364229142686963032952314785293648583588040104573545153865440273350805172329505796672714262242278673400576832402563448646637574223157571797138820241156433336712946764308529224686033716959969538392578410671052467743970596960607662789464939224161928380865593469048140091828560986063602704485717846140103883089059523165150060871150916580158895298673256137791593320360591583856001822610562502360642128781307184643768161151397781151706219555897126153135279166155637131776791701715142548511592111118181243511326140416983360959937858260114979930214176215436114480151787783508638895523966281646646262369277556995473893996020821393378933007843063531233425600990575917809569612353508084809878906817266988307058507934596975295373642038800471655485939898419324805755195276154610319395352026514585405540308459442695686318318955610415292953428882900640343195263677615852967787935651477002690270947263425686311597090822787749226558260222175018358869154884104992625436769755125875889461627084065463962869206637068615627128953096235910023485178993016636993743638683527037595904508760814386956154118623709447392715692255612686435450810244704771634923345287013210363531361403238436572686058122777660086253759548656486365893250711256183303148012929258860483872633503577487284469669898592451623326419123569563764408565469915724544263657475579124425307090196117223276553131508793902438937818814913948650590440640738478094316269674067189450723902721154126929162982949476579762880995119055794069811599128219731054712397049882090146195332476800202025328542756939853214778342979860176128046644859996593525980384024695109631803805166034342704695725511872040100936330794688700413362157209263704566178799080361820676967244418326167167141618941091877336674116439167069192294726697794009015381142583144003673627906426245980879165639829938163171474985083892434510713537310766262577943262244820281342875982184258998394701685029877522206727554276151116517583289459283679192460652286724330039849395301931938891358073724242464657017755467906008920538333671108650259036043076698565878136426326451235523213726940014821486982225972899282834998399364953809020318554535311069517523186345270183931215886613890203847680295856489579647694031307959341994527108688523218281603735904318005007725055115517367061427222905318703417059227089241258342963088417622650045417929939426418344184159413806796963626792708653821043519127462701565228591639081253345129915913358469771845004248725195127366846348614583479512528724612812382254722603205947510207458986176036182479266452056799158154512566544473954868972497198250376115015266021122533711812195261540433959589014555749880335347910961964735911360604565793486099376587738923442959483455129458976781508388691645818052236320221238241058292122830150951713217150008196828436992845928829614661786785420273441065621739546023466848368417678962283322989395329533397607607175779883708907242337307393596158658096362488214810812958337070612709417616352223638480157217460424802854155238059981946261925410058548606059659794622606180980604789939687193353829064722862632572892035905495709993900199885815787217316031864022979887644728351808231958735999773767087201091807595377763206516227429143409074029269309681711790581030649260593177009161029338985114883520470992771651803490458329934045744883910092906142232625766851401362077555503689228494797768867560071221290848736472138903595886297160533129312867645360411416609990782246868968567308332677614208188847044668219344065080823923638984854112068023434871676452442359167553768180844234872471161804564817569855431979660126408694338626041506786477275501109251540108791967760192087458803531328169067680854594698478979209148670473666431208530359144636317054968713811554679722330604232314353265778336909077657335917409946558276328400779222253435132204416724887541039295607120420383339083701743248064224352820381878250013331773070185674025420273825608255138466100722104560672394747553793104918905145643444871161949710740447039846931851982797451288289167296044260365708387926188901124418534132276718991123795763044152008758483324929332694408831385526005084132683427320649308793759689018381048802967183769609502650148325622520679009159322552184291119544170530233163569718622384931965796462492921177458216222672231350120945297836170019926262163847082802591379697391215797045281537782959159223563144741978045636526243750835957685716455541450029123241944778652029196665695982914749533399597334187018995997068926044991752919020912587591612853292646663628461428699160752163433555965050778135514555151013060570148919682817281400136721708300923337114994106828868953268655325557198475663573775727294662759311020660780648873824176197987457853436849952979426561441164869667612302496519900784485206782757631694605683992355882394846653451490109873585337583050694798779371422374200231949232342498020123935011816327602991296016756926829735037950029051314736689085825947727934122386399205171973521903539377924050167236927923075825371007665994431074405099137149469856916122742859265767930078247288164973778313987957902756186062163510103334055489403205337984210635341099735709892108993070724358992959477857556938383376843964157492547048967486214119615273533323416482729409946245868681088759498381210578974656819744575304843534311019173032059887475840073959309588713557719813418334247882194782402484120069851078773625785681524550371867495907383923636385223768180510826423268124364722554200562972732373640505669513900183922738419823809336164805827883529924725934626895860308102613712142872587294409608861049190295473931685923207214140197235163236584014886669337443776436892098868724022620642906360695326353655016586994454461029771513378450970957272287306956559882290347042411125537733730696089788773625900699822491723099693033279283301895539071516416227513126706335189324826136987031327063904064209207216858543572166382430486969736671700427305002166082459036503282143329027276617540373071123179572668740277842704432620705296917244548337745444428000292463869759254960393187515844741434533140864518686844808033362078896221602811911530537398284326426708182170774140511547886923382624219630093469289280489540625153047087372967299826895199111774205762071076689843230358753814715399552832548459425316921715099935283622599467216608412519234464163894709666635800225949136449625900884134785389659692374596883052738797850262785407200411997667283088963072020111272159675276244104104158184458975558437035565258929203239949493267874335180178249148960309153519397143668030323751310254222271999439795164703508395015777511629103205270753262171208339740525215695070554050502038903662282139088317844950061626831079527757736758191778180509227213462344299808280527312417356155246992441902553649834426104588056276912690491548301350521186357077546329045838239506809157995441435132957832860010750005090665197390676067300487546681520301123251021762228888615518524298537540169104518601766851050121367190759042169627827387118871026916486049039602509569049895190568721535950209945068139661166559105525201507476495726897921620590514319118354645116734407373256787948340689871241349388238037195465063472773502210214863918424820913222665234392815194538160710940236968050391672638914227346771242338103796932084893106925182621807073503252571620154509023331878937229188117254895333902006203385591762242760912462758665189296574963441719433745712079805599544910113692553792286618276078784410358893442223188200401221718227878903705757240410742216494752144447072359737534377010861235650953954095259416557951811526474281555633347131314198553735454834165875825008408984122827834856440422511046206536282911861502310379971891742591536738060196209024312777875907160545241209809282930575923504950759650114367870033514623645542321825345806796074094377434410711134871151483423209915938941567052084006457283602041509065062964247718567131415637435533269340447666031403796823020388882452247524075617827340639812098539755595212964843011971791940631894582932916475602037270399717777367536153875353724696995349705579185960320156894360827523154642673189690936337022461014295515371520939448324975428944964373191846532717356306648338002837754429095356350962369107617399580510110775644979181089409322772087229779604521995745509189379458816935281996003301798792315114743216546212931910152600102719759874835201761007214559839749676628723022551339106582638675652329124411794268319430361346622500759906443856226370610931434591859574270304686361004992249585075311958745484984361813843263155838988164046473571413566250450299629851098565017498106127374804822315323202116874784601548894568076063891598078299521135052389814949388282222713983123079901386757229874894705553600028812428306368607821411724954382600204498548265260868099433401782216287196040697959214295159617880177081481987126364140694000146930449529318000810580451412533249906117201535038911970164568180862378075474129096040898456887139750303306617341595763352516269038611227941169695022245363637347775334939789992908187662325829220150868733805922994975308775052999645357465034974856521766263932724691454722685540585663756960871913361637089762535753589155629298310517379198413855890669164297202899810660886529944750822689524449686306097918890233487759371777645245645585575450881782972032179133310968160354677703177293198681779091911177681426456377132684544836742020815164947263335141285210951302209998273805801195591634999593354061476914032719604891319210652863155150453549935822211446486458880566619650040902185267524015700528910894787285701825463156107733520784744631694106187896769212388754723587866618069212850686281496210811482294770503726485987906279871830779322029442379265564471647062519904920464026023424381076988310370355462428901080650545580937876000539973751988872738840084811592250396115018840317894220839148142391248249114447003315482291730625460913246251651390007898669483173145556164591931498535852870435591525365416886661774261155754162619975114945864154544933561847609804283613585293004534258643912981381823346163998456610280272441052707850450021258029117337677841856204388028219028128664661266658618974862386827441623905141575879481963352368429604884984125526780045358885912472009660923454518913484855913849222038905404694069644362171648859686047351733010063912633868311412060735407973039907179648541626920113271645213283024847687803731792072994841882382572529671534071223509749612122721077197704834260136012941695590267781009787872068718582452714311797912888759813082209582473412570060678777239906576254562341105303206332088252207720508530051305272572971352932568220385904557996728017071199830873891243047542030324380005479739997253441453184341341418591155926656852605952941973212141587131278674594779948689620629505423170791961701892974202055454434734092458715623674260315040062015846152318860669690652407881141533562152043347208299078794970536946614091221340887853268058352854061902344262534489531433552375356804875510883963282378460629389721028878955511075975420927203977336121923248719431985217718650125785218601701877612582510184648627871033375428372737195771840170116669621971627966579909150075233696211027140447235338826000488240637765122101135364653223778693313564071289001079635892107184145834655273208995498218677073487580551505747434552453790014194871880728138158358468777517207499066156517978927083936976742280627550691791927624700833485261738498019652047796786735844996128730884694688444789069060215374387491419365139852488317579477343717409388143669021246756904360768743972666904820371320512443730375279499264944604787496708799898350814458367113460772816808164507576531949832355093233730870017065511227431682262758283019702829738363780966302942466473563509097736238938011095226068793646106648778030099610138371960256338253824249867633046286495320765493837456091170977055588463355468070817890844656332565230238690279607956327069071298843483386778703985338062338638424559701395617765752099412800917404450923874829706425425645876485470849690847599200600451011374447884505790499636057629045506986862856371847804319066239571024609471222161539722314122349949198419497589944062283902602958577662327447216244274344683270169622890749793748165013423655079303754590669677792297304405754617148377147061697002249377030596538932382154566122918714275822005115542238126276427631612701316349653969091874303099987113176615040873013702327247088837019525139260408791640086010840966897868223325140399162705021930631948285058393055367749483649560257919535147866244539832480139521345082819013413080718169489042835400855834540510423435304546008709662731782458498844854833587581416822623031020724893298943807079370465012793588564673882036384053775041231696521478517943651653098440879718960502902426997712491662502116578859362568944390297420793496232521697959980108087734991775835019285345731475733568779751846090638176700426699487256245314265456045385432416877657768805659222315621004421044123739939206350479955675547894802026457765324602419986154483061527226979256150272834569713058986389748442731597935961219981897069215454109374742988762792345806481163400721880061606610258005670007468089612439300059487005136591013847273245009159217891590484153771034529001289476811765984467408532462828964166937021183238034111660322039862473826591511995870344524937098503561674669051939369341909904996178317012196058836383437936437638594216698707996410169265700543987524809876706605325777584391161495456526324551736367850467464108831115973702258133190281659313041896405209319286225069067276773736935208032146107130632231064474902746249960269785514382236616610455574973151097758047944767418167686624140983205863064244285492774216946512677613536336795012102878383110754199138345842421979062900598769073364774679858962658274269441331049905589971101496228869434297029424951736266582476853337858209042696574822167910205904663295976846876321170559144097461242587934982534904329539998131326076253463565920700000170361559377388506473624799059924003530123807346688439518719476624029565017649246301345564934085297465471091879405431765212714641319451261382326610071037910810443844231846545209354731583792831294359362455383320542172573636806170757343596791408357769692981720824194274426141048567438170279433029479470860697896329007413533105417397737403711934225210205670822538018268987589176222330215536763293194864553139416011868439110233672047147677630604811776414031588687580946450041304105857946076658518659228657373576194713581450378789404200689136226346599341570954455402748386612687333367104813155684158264600786273306170408770675488648652334794308156522090372909350902589854238892586164978108507301791249119598075196371212936960671513917265313503223945429695557793521919810049544550548222572852004947903668452487584412782911900953179194810133462730361352007701386640468350044565195812639274967770316905509268955575694163863388925546666184843999579440498045900263423636193906502868330978558615385592119361383819844104792432454906550748667900228950466629745152739690374687480530814337965673758404354054826299658796952617210166069151864012673356521579402036077971159926929449913106494684025244691004602101185529644739766538883100650962120412191180322249155295274382528176602269995538218063230479881894953280042549889538068075793824558219880470910471951386713273209239623445143365372661480797697055635679239973423277026483491593484091272128977932575394896273727118322056512756126136459940098734089272978778173790922729556382966757856237580015566845041957295640311718256290122931311094915055574303458512204310964157301542790743538717027833824269789090940746908894726190786362169729851774370847065489930918679033996463392641052329129190020758357735123704088771557681217272583382032642751460817189068690465945828518212828474782585372802113918558017032667333116247227095941499473137715573769905855827117785742889155488333533638742261286008713527728760217617216437436316844801807072476025082988535548168794530837182807538930969243569788566669506406755908179621049912441823669299625246356241085565397679552923830347077338512062453534886217155575187742260805641437847109305781413890933466693001112434380570158613841792910233116262311990338827129018832766249494368072410627331600336154527293992024680525096503587809772357307031983954270403532923681232357150451029129877881403284329347174865512367037032312074297342001308192201892746309859820820100374366860744910637569600491930059262838802813289088479004803500802474389691918340470117155875651540385031191043073911827860142331581759904630145260318134634705076196623359678862545562263729607642182793363030965256432203123266012923275759860286362108291202335956698383123951787975108353396118329629346132798523508043681369782306171543952669405414925849223203610104455400445004424671646577231488371617260448265902069403596144561123395583813892774053239310863986346635852066362025099540952828432826440745828194220810477344831763229692273917860444910779872280080088517818839802110393116637791087239426967936467440508963382804415696766922150167404292775642933912969554942757919194120339967866324499816538833337831149851437475670988564117213734935760389265788961033723772462804751455374451727973626324045000867704031404737220354508473668472300805938755082465924517259704119750590015840333819806667987196680540915394103752662118623875949780517064211924345809187221142684912164619872495711708811453088460343036998907978161826922452207569231192292261693835655296937273626434200096883123562793390793810616449146843934308083680095245504025972526727298897955679333242004511103970023218541028086710707339274724516807458120145066895487214552729701097147973611186672195926800395245211246192888110087477269279184887322284719350257295520993522320235177375317328287616805572687738273536152407142931722854688701243493642507655636087533997390571302134200636162145609598945777695773563603172568253197788153287167961252757585095780242097183636568734106884384522386910685079608224542413294446337018423764255237122559122062752599366275062410591162756373251038965528644988901680628830499096915400910978469769450206196158443685953044450498352935968465605191436142266087560109201112746760582487576417353982732003523215069213475242019463321500981126870504348569268955292164401900692790091393818062736491783598254711580436003146775388993183575921580417042175021716695215180199651676161656409715205603578859286879191962712139842791856669317495822909075432673192631302133865007131703037301946896933938937692669567020336052672703585194845671320285783088190570235150447496367640326796118593713052997668025174949187319699865243986103338685796308611039070531917293324522935533429488510731419022147781851309524043788438192322879432094672832872302588450233744784680251880740926869135735260340359215465395823870312552302063553942361778698436392894878754507172110991454541513493637268870694697866641841427158084475390042131122665558821586641892941303668531729634111985300304512152328535180255977941482723648543701025751400161038093237240084627431742607348212775652481131621676493239045180516167925685189531992423125640679500784043059574040341417165737794989565866300879935751409244263264510392428212439239700058365615262537476661579667775819978777071873799289582063360790995522603628599810304242805884954782457126801779780506272285929466589573731330321087187388692655056752367541781753408719528439511880173903684062805679244680004657107045205144778502410281614190301569716440793680749781997955000759479880594711248385201469648476266833055348731591187197494281198546791865817408845831170975306832133960594644685039511569608577705509214810041024502819084251094515447951491555507828397179013226955472621203152476240298430557120029687440477558563639327314097573897578830781632092836426068388629447099795036556566882053256671480946437099030994133405188860333711422785644860309177224533738152181145425284714624525203169538736413663086832803915830838664544498683641053270826776848277858830680919423261188721787933073214575312769310238588128040898993232221422992641258158701087423623196958066195704842527461258821053070289066581533101562168116537359087334015958500434806176945356455929035280054909808690518702203960846666927824979083644999270981655384990054723245282891679855416979360066230752846542709426682591197247079816207468290082279868192814671378516641135011635980772172507511359573466365063461253092618338704581047697623372023740349791715019030051500936364193845864293178567247444906685562419108395798187541674582927853311312978366145481554743783448481999220971057170660320337482865190865028383631352188738511474115590791115395457781713920880098843981452531492808071420631953658664574771490890678922200453251861165071291421959495951229331314223581517313431879985146039648588760727074040823320588110603624543443955705760749622999938010028588160175245147061020616217907567668284456450566609543371308440588820200997410064714589698880610670680308075776885262487406915638709270963385784433469116098390399102601873552027702454715567663327902159232275337093492035977631537248254006110933497875792807967715198967928366050439124316140190877485945973442695436159664484482808408045921136309809923983556601418692839747780056063103253271709212826882037135309228583361886409245360115834756736233301837355174399063249986753206448948811024466584631485463900452485672308163468062998657322611957279881104720721185388788759980109280161494512078055068959420815114093124452803405430985985583825065846840453992033669997953460687412008143177298502390501518044919961682393426855755584594107301631031147018280654262183722833664696324863528958056426605549420456237687849490054952169670230678822904068787425215663489501159290662643121737552973576108218195271742782680156566510358472531332594203394310319564197449906983271925854213412278753894465354193145109798887101244814063853563443421743465310114187172150879562533941547076380665630717051264886778185221896132985489008794835557070392397974056744804964395390271542995522809797286709618902905696441199055977875831668013137750209066277012412059835951820466356924775191551288231695138746013772975732973465355003405851329662258212629303604191349226516799791706634075695074905626294240887961133672899171131322261502849635116872835183633390172170304398948436182229422943003082332524511391567851088664957042797428464374505807553414068448564878622831289819063188272528548174455190293541430079537370154260771064441826836623027972843259114434225934312867442696584759136621695800047779265238284504268929950685349557230096449775205675484103880645045574317868620559729770033886713586546816935921719654099900555266073204369407587442803974185258913073003742523581801316903557060704067592071957865630285617072185909232352839623293041662247212397232402023556118929751372280189546535023885065611167937269519632451073866716253972612009747178514469128087904992542031092740228814188828022879969357508793512784297010979515647081576609431931321768516904597494505637810769852272044449205504815629052126038741605467226499519257990805800448608849041245115162017580647310237133721791824468766383835475948997518440490647235254941381082812924178607453650362403510603587255702099016221496931729298802244068869993711994411440948168957720791108937336977167462177357195116317445733937568437082019426227210623148180063468412150858963974140926744083905531080322025763652448141319164688914719073909172620343859036679536906491326482463012220874054926771361573843661135433844235147086023940837613735565179470329608346430445212024000948016387678151066143840393454749533437952846489547413168914085671807155841704527418147189244924338848752988465845524079193299118197015887520853027136208912721860080703557532987175342892055378029462314557391107972217467717474160556420362654146545691307328382991494357590638280694139241876579153524999115645579224399429273444383405291454559887388488811601710056174274812722333106813761330050097834231425077779720567844503911926791095258067652809043384960914140675096373156721151699437999724806637571813934334668411118302808426095273217170856769681470661539761585598565154851422365244144905462892477080104544939634511764954648362925468074162133994287344948553714760658370255294007297843564284249724321527801138390345127918841100718722497991306062495485242239579515612720778397655973449174228865146024783374683033175687385137444098591779322694610519625777053075743631375505982261854967242114134038792127011283528533934816054957771868781742463389905420860796323962984465232753785974874687309576253577045209641079191943413104442966316458195257080125297994216909713777445627241152196368624123041343663633987625597039266438172179218166683693871040417419655136536021138544572686831364068153507769108846025381227510387365766039517611221324571843424849438698702782673488936715368642626547838184328695544103590477901154329305910466077785307240287245180650729555843631387635661417593728077694447562714060252574512419578088983870889357071356219511882889828460798687716633493372179257548650598331171290409763369397034682393270610151888236269326834194291524142532286408943661434197056903416054490154197852545556058711371874613035435335981233356912008935571453261175963767735006796167349195268234662224545299407151999255898432157363314104709799330387712320085370758875005341983047858416189880560133157554303156751104990453290648473583884986492086627750655858205243904616290129378854484469374212383135833131438348738600354574091756779021993064615458700502703684008753311174576232153445898033603220833354928693294780067466116025750881461457911585477897006683691143286156276696435907447478847072059090809151512286112683751024709734713191287340739600887634258405889567606901092637870268258346981739970542368105572689151243086087518708096877135488765183827005111475142883794244384923758198090436658496912239646604201904166738048007611348533608898017681972760057400660532396349094787955913894609551600281775719556168868484198488175698408695165039930565935750964226032057363054232354963187574631090105839317357082119624576286000542482201636530729111021431145504486589101264724011214244997379364850785455649708056080292290695581669506052128501416865027606981010964223037509388880881980644099160474272591401151801043721396898098885101123763462455107823422639635075540304692962976244334272121532630933092870487403326744479013390400282077037768573587646923359771437848095425832629282498555943930627288152061011608825739284375678221265175617137764782099397691664262110338211469741705912204004904971130189808483401243197200369598009964765658055842618935988152573795109671553604648345781713525260307267041751055888358526601069490990564550579163089810555303198805489809394859953792233705944283340790693163567021476079626858554222172060882798459441251583557925290051056257746246556214960259318800346606621087564277119498405705430160112937946741554391006503411655941720146127759945509278991276106938168348144605228215823509580140632148839684753585302174001690867372540136769623895880916172074474108867754087051275524580070025354031261764907282296558878329677407058154068602188054529606487719994236827482147665815052062867087947966590252674758969745856994736605051009420065523921607311068889049095260234530315293867980812101052491076156326978307909513295609877914926285718214540312700582163646309117206987460179231503977090244216829359547083783826337519244330768051640441831335566407640148628643788223775825999454094368197763506698011987374788052437387025656064744821970255286333478566060491185463500585153063007246251823757084619405092475449118604076275738380454219879611782435112030341956264225096715304554682292989747988369264447978366998198451866737717905121861502626978089374308364460137746393855732940162303193333600684660338224728046754815796171345012537132330915853579578601837906506553971580112338804405067756142613796995749585096098234770552813726853506605327811935052764888394377704677829445267065621855378210077047643922587041539812567286962313913542311633004355669247783003020557168943078372832734132439586682170727608090517921039201223184581672162723444073947594720648301080013727694930874175912225139280489018907036993213803050733352216334680488105407238651013946988091268905588949572007183131999310647624781919583919390693020010059056757573802240981860134522273731151823039504900714564308007229665373331599463816332918667778007773111806001312302736207063346293838137662150512349142169351156949969727621266277128456723904628499636250846928722525623142336003981013237942890952466207529225215509677467513982800128257014975368268952853252914660989629254926007439250480919981441548521982449375084177878279290213575452706193044669104052067911002399142078422057646642199251845050390732318094156284233481909636037351375541589930787240695877393970765772682667606889085288736564700744280093132701850114783206940461651314335009500047657344660364311200374007812935930187405104181994167006671210684257748626919620451539338121444007667842253893733057379486646130644047432680289127513038310567353897243874036955117495272442902119930331780962354112650613472723525025839282017659600570724233571359035976273415182613562847024672679753715017654318879597399939526955477423907345525216637890504525122355926025954914932835909078244801614437231091667178026625132937680545976530511740316698051077473837204524052105692481603834613779068649234288784075300892377256441087200475779931926649996390552078328967587243702363969003938885708361783887116589421217773958401870764509011529768220698594634221265578498468092874532386427933258521485997740376410522525514283582091968991087128839928608275398900030122801075980084475089123253720663810389063551906702420570565852382129169510382352543737640603438683105950990839669735075027401214806699430217914017687149478148501425264615319215837221117415661768554323038818732113339894735585497149662800333314406877069816445083801336111695856445260612933043733586942018839269592042722553013818492342005570922144473066921127736759443543955226822748203677764678949328185660258229391337465161796132392277983658399422193922695491158956157042700391111674950705314464286479310295319842069545057024112034650811967944824066041196980262133722623102911710343880628330603559154013443255862942791523883290621408272112892198555696449930500618453209541371178971730646995896005332614889339074268890264523517012818491234329031348651459635195082119387493590106312537156169155162587466100839466743227421965359156956240223259672034617675248498392056652145490592546150387772212007848399856441623778748457840294395006533099041481056425271016046228482675640229703903884036644267825868162222346555998837542563961332705145444658244071660800033925918004526241840225879037019041251062260403221978287197755207938992567748614522282719205032624080862972545054931009978123227120918471728634882376783029015132110949688536000374015155677147815204259455748413083189734777434976917564694555617861140012591940446692353213381251768813672635766145665003936486234905083210258898351225127719528545228098679378353271984994429413817870631311832808581289388246387779427135371242534355824421736537807848436303843883839907840773134029155407990084786011850828819044153152844617116656755896886675673871711730712559215505349850834418339061465096379858180349360273353897362718300921901300375304021673179853454442144182761493859616609991892064053864321199498539519549239866423623536284521268034877160989716544176604421150112863438248381546202325781927103779892852770415568160275630790017347558766149496707907008136662525074502594645413184655959280019782837367175413067810722831564827029471113721063000198921567294876128990888140217157111049503023864112364078022003475984366466618843543476461196056353272892694679188827994288800681250276794946391842643335766450851776612885118119131909882334217964227424426642107537473722624135884952368925235787682782526584548994172932116707714165881599458204382674981470533404345698818826608545488258598005374004152850205889323394044042183510777767828696630340251842279752522390788843548189605200732251490620313260214831873364760246647993195401916851585265992228432570974665489001083198884104805243712451076482611692066511938359290673295190188036014718426918817265610438661173836780298669570550675824531528438630845512372555514561016313401081468114421730470378859117576562481946082747760259260782945992772794002687092051879165158624785861599569076297956095449974455081406058931913535815141402794938644723654233096416161556742866311863572293428700282735161677307533253530901714599793393573437520455540501949036716408162178360968140803772378017784277529345637449513365181897042186074175026970248893607482657254488458558588482644418021498547808186446974870908022213488858139031333570765319778472141852771727597473254031427210113480716123663532228771268466233752149864173077956746928412592775022019601184123898799160440558696044305001420242702214846680209360099004150479798790946869526808823723534690388304232407897196108793635725421344290249823992592269124278722960130490550300352400215741895684963599902662150906729039147159505155964201265842374082873551847522281185275440776282016586246131180919659186858892686129597740923574753582173304871951157662816183828188892950477806658460543595477849331921118209199138029792531772246077948422147926900713640457916050064494195460433163866470694056213665285625027032790699913288334346878312605571372585902862375999401317849887278443526657288646626296491212509185722897858884555277361787744569913337344028935084754049802673830206678298148180814321784022765890526073394583792280292456498648713272217104379253988678997283032733179075108779100016043688337994128985402495763456749295531705135246964976675792129063127464506915562319662871689856687036736275118904826896847723288060615701493809183713064303465624335820327603125026830628253855981282456025939264731286093463159324868654234781615721213731554014198320426136666735436453690363735522261704710131375841872466143098539701198106762310517912294864745459389748693932538602574786647602355610456560277305687928328329425466796648469742000724369725632550532223239532777426950888056542756255711884234454828873501605988846742017325447438174953166686572583335338896577039943197172545014546674899631628324505116735115160148594810836060185569667572449530896385822049560401178125863438632933812736624269630539744243795305335168804639343346695335468261774875596311067807452031368264779494259211737072604699873498010894864863054953376611329907916256128071498245108131955984683504696053570403746037948399164877249738154711297791280654158184751714178262697338844080716454262100780059995143183951790816020838393947724354137674483164930650125731478083434061704857309127926372911584836427843499639727232561002021647919817780336489061904486530915738917647359036156225664767707328320510086491669182089450095431677155209465717513235551410111671508728448828934469604735911550702512420353089840930753406314054391991208515502622097907981705334941091975383192088719989318526004760591043211837187877409176381313214109069650833620500129088502036167114518675688940401217326482591617837788204327870894170133005171878843516640564369925069703915883524672973422784652910949936472997686510228724229847883706891249166885315086789316676162689602843400311514486389411373524604825163400749006192560485248586437913188206221729035743667114206275840846971452576712136506266705963279912329051174485959691117714666753990426064497718450647278970221824212324137655021848870547795143319579151812197436268964036400051500100382602735778943453482947610042919042132065464747096847212609183415989650228152322397635676112586419329514137407333815339898569583045555678478714819718845458665554747748646040222869538379437188541788467861236253763392391778832257202317741963026331050520942123524462517919183879627301832269938885874101756480889449404058695008055221356028214613343565118893937748780155403295065269004532347965034473679055638273509423153164255738593645749523334916265851618776632464011697590442735451032352428629453497670846590838221615184172000737002147039543927019250865502457351725384548380103241306654100043131193575971051932829790612969669465664159442124452777066298021389536335119526627907430306115401438338922528100990352830815808577080321913150721388945452162960312372065193366042972545552444012022662417299268398718081706531056361257047352064514180099458241391317605855257127619609120351124457142976938669124705883397079772800161109334875132247599289298990904185991342734541121496110466183795094992054147871954982026560584592880173288872690769502615039102208508764916989851490080835976937718621302911998385881741645646503021357472136430528110701172542436184325705631816641748217577127142641554493101334864664576139863379089513950314942226980516491426849786844893029425686805887961147954479649285143178719950632823078477517239947800463181828153826580977598192631994586314849639338158224536498194831513771190604278342855420313034207490902084044969293534060324566962425248207744016560701756830200901455574981551197885106500568352163510206436510140217280793477146629592375292549442869469209094358568641232740357343053287480107816588883719984789690601594426064635386351769803901368216864446005060019261009724532150507782870180570260341339169591561592805482498553108879453787010381063225310515664596586356545758973091218142869419448431075806150264112595351661909089004858684956753583010393219221902096360978686747204996493816772410538660692700967785931013952034255769675181644657705238963513944712271478143074017635802501320062002913295930870208301952583192996084106536428985156364904254672318873400318211347970625317517580278617784564037848167079003106887992827989570875032916827762885726709413167370334771874396630775557206517342684286708794065630483541571313769987624595994620521604888703445389886690490329352493114588015240085278235296508809558031772837725154386831224027204068554225597724239714624083873223142515022411262095289754380999285472033930264236373667251720460322976622054582496128421620765807492728128466227694920241741621610815318404659310065164213046881212514838340257706379841983764080977615989723301364503276079917766180348942010893480560079628373024415984113314083322806980662262563605275213344937603391551481572398510981949586029647900555250511675393758803821105148280190702175781624274690094649182862798099553825412944389579028709593854878391571267980113214268963382369661267703072090109714572189937696613399279214999709752545787187871118223146608296678192443943401717410121104141872459629799523331696991403583893695348708025671290131965771305788871443007755001183235391674312832655167717117578138184828984089994977169077113783082400726697676191739540617437762736142835051657498938202039783931321222278973371664230353246565737587154344515681605736484936999117558489615274365197612384112158070902336645664491763911260400323235221917353095166687027892061242543460842615587649087668333085988101631042584660872158621389938375402735847594908890914908490054660630264106913589358533138013059685804646250373854846559464778564920945420135741033261540972604257341349333161444896203999054246860019056994595755026573433221154159785776306444122486603466176694640431069254584842306852688500116833754258689237569246189595199714624155961561712561464556269253473916477300201476318369422955436495071082407341067622663378856724357678055415093902381143106070840266561865804030189592925124642881911771769142726277705390970355453050236625438162448049247791194825713452718982374997155003098731066658510191392620535936023371643859917155141918065179812160782682119748760286063898349657126839321365105635043368588604467427834112964027602541591915139053794158545602619926430646438866194206779530670897083456199842196910993328367322119103367899325016513846188815607937885580242641263492902472361394217494302675146827644787470685287656565654815652732026393084686998927957826779910593840988274421779648287160334829656087723483642765911682075858056659508128773506087529147191614948019965691696070589828247442894142812272953681314998848923847190913581026868591755895535596268832282091347808181861672392972465158416539141141059776661872238051650093594376639535612942842757718369789745721487013059410669177394146108536019652540140972927750226867381676999573422186698493628913137250635653448180621560878435685886838138111080032442950217704207655360215122583052064574781199408706184855963852981848584996420499605664822112711913172178679786384845347401453832853775103845631537831675272581848880893074611692375059686661928594152886114546462953905224538073445258010106769508230395093118606491604561979030364652599290894012834670183105173095989390734652360273683990831618746397997973578539341948912503121319615875847823452325249616668101123692222859482542330664083952739156522173177436722811014164278874593482601368303712062483412349897642724430125036901183187064447066717012573490622276317295233806386731573405112937006092701947707656171536964945459120267930174551880344999826130289290828031743790784931758548820492195403232937789932045519270692236349279686903254234689632210848296786999481779163110375049828647826488067167725426143157618728153000290699846181536856344449684641027033156278111549757911270312907201760807545861023805896736304477402804246954163894244482258314977180139253588423786600906786126751674114519625316590352227580154218467742792151779359254253082207813003483031709152240182806940214378022291960992618284689257607554533064867387793418410277711416412058136369780484646670909851236213072237208405998064582525865173078281276713899824453496994923342411726554660447140178382099168308128991210254111696843357242082297313329919842446490662435244288048869635464356676021359810189593994730743290408247488644414674090037216076885964255157665576578441291809720625133039715154356744664379385311847022205269274514618577581655138860812875598521140901102315025993803551783609130620351440936627506281612211226862157727389483740993344068324065523761838536876687160242772029224670704939148806488815671072962871793713211725925761853214036228433189142129316595398866136601191885436973534921741125668081462674180507244858798759583518572387198058817435407592422332222103404666803411533378244628290610965038390428273693283117085378454546528405592218587650981502610096874171975043125545605673978532403848643608123520961279966256803187364131427378743948612932100380499909537798328521421863107115124217604591834814227747350385514193596336435533629500168897198343353300178125541200803880335990702573166253068930526409387797074167710606201000957895996035237399164601075127560803011751173742454915673545392807628644669820339739035866290861985967789070021879316951630775755555608196953078658658368721606187580532438850648795986524134691098140798983436251745119719768175072791630409694333591617976835197432504863483793354777270685266901820490684668725813483209452286286329361649627856644557982988660513717868491378978299886684150034694791326145903669388903730770452132915864885332345307109707899607291318283434898570599012734771920334838908799563487506679231930668756671738628254620921737975873657921011129676939689541631934379793540782815441941924444845051040720188495432320415558035346852472629830790677037361410244703884874003765511750428274039983099338052247009026520636127525445273211979087680738916459748198621199146516596370645748853325498247235710295018430538450695098894181996451427239576305705994944796541296965147060769692528263772438948498078391479979993527579659393282372990700438604924731513711108808232113414416138280933734779095711815688041147408889426398102665172161171929698389617145275589778732103545917883933366398589597012391366550538341316218668470329300305738353838544158369836203562927498692821638014001221396594851381235844725500624698776400623654852284365939060874083384424759361664639703127001263698990051286813429360692170361290724090352234911994981637586664497667218752092721490431324925726795318120771128133036396129617351224336247883132749227748450030010606304328864911342050740305912186499017417352927367398818473994950857272035703771246176461221720850353140873882204107608873938577794236180513182395362363490376575294168742668047265261164999784817954620370112117467839938156037623192042344289347980673489937629906107800388702444918626153043905438320483622373687251300399546870953678108222539913279891525497111811055525569742758231842792504268228421867163555008230637692423658307477086672050012349802432650601230518375857304336640930931181768259628247642897061007403655047885251228432116427916570046186346588483812887141813665347474586221082244626054870637745100394126491577073639820798451563066010257205209495050773226361203292951532729043805717383628069795435794838832071906355739223389781172391436037553368664967697301486026204472377808407362494908651170169370343802787539126287821088112839121560217292901475772166827708496199667473847783713068349897528505809567393631310293189981559467982745212413200624446622295159787745330897162447308221461533601937147004739505298631985574180520401755827687386451882124232369643650448570773323003308943166141572948605892785580553283161561219653895183212723510278073889398909500738464506448712416610346360721036177443864584254412672281373605473342430328709950890546733783668063426497008474037738917135032434929258323159522145845408820433701627768496608632148362758988520318905108772788847342315513620944592512408177803693879264135299568819239622302198791970805553161536078872289319451856055120654584435780771790091829914245641986440678250128323401912277697883928603350739551631927908778272212308808365551386836123263392539221883238140659878480688748478824645386310058377106869631738061820209808510431151504272919947700552635847403450466186735993839814619815610440862417448416884793188650100103249875909968958928304385331735715588844872683698726886162818115193740074378070569476208034677068927057759544749355882296967328317139031866427963483215753015422773302302155741440102609201119282501296078689037837363184649911232695652130401047479603082722909993134386785781499990349514923284634240748769934218622304025817336586132628179727888480954605304082803614999174958094966772028739294097855248408815505043337056890130569671399956209623323840689570853585334766893235775290688032491764249739660910360272966961284089622620343331089286439282874797890253880821998774329639883348400358033086955755236927166779028687318366444206617495319803278606619278695827921629650925622239440725742188507726877756055586111215409905482966670404559481372395643990048223069794318476805013603779427476184066388325842925829294111671668762932167756573546869796251906100629686632690750993390497563454772943873465234318472287176911496275151216157724136160972269446811534807511120572152111820504932473542379133465769198279978324002076096157188949858581671028312706427644447326585060447452413976385201621359966413996076395129235566729818288093516772954114903525986940307430160091221843318584511490681939660977114600984577128589375551225991480391838939849338321866029509359102000477762249348686819271814236437864407026449524207163130232721867460687917937795467755690324910437196917064080413227200336302371655625815891602015020737837416408999848029148557793753361022721418557525244270022819214652052397712146312694731352614565620910651309026726010613079171817427522997580512410028797139560884884011098169091914715047849780240903735580680084666483160939608494096439895276699425656716223346367191534853305623728183835714954468894726573597295199552859983019672766653313927005714965287186107143634497046923200874731288162880015762922701584021223457788320164378597026087507005406048104424848135202602680810948619190910847599681125717914743356684760239345129709122539955646479766599306376088295879318360880765857264668842659865863375407450591330547525571307220284383359239967224749797210470030224002764815626785277302143265683013952264683298875003022024762296310231982140930272968287374250902989642638964412494665105040657622816951348908337399906146839560081025792914329544220378656061547539813125610743365009037488113217537296776660782266048014991892495131703173326291792732906834220176741011429345545718467414273835993097999719013463098653694252284080131471781448278611803872383685729294053819953161156516583262439868021447640626481614378017613450934353058717352324918577258295791941339902729909788915961731435180509371787897465713258978707314840414824291424744843420333037998737834906220061689429690073817820738343908297507061870961963002282000134462307318907158772219760734499768334821432376880350273608561502902216156580211531207105007082063412290790114508282139212903823021524325389651946121039563759005015369567522328018615167741340031296913714891030331150174890441775241944459432255964644862511345658650761146951912917435710972256297430756274932064616642482405441414088731043666658214850163168984450811510237922429206743675675771805700065387210012913868757973844848594614921250064303057052020367143126266617886927952222288558476871926464453654671973558752954994346547539838580628435871576543674213971242042399024845415756945914198126718039663300455128222212798458872814455688771760268622280066164265164081662321840256843040877991649041964709905130070735452726967907932277644881490317439452240562866576335623289044121395640846631467046731285203172468513013448629093963215130464257276187763776355906884330335019184188181257588036984332935805687905961388308451923733066110992892300788566320068364880487725605046350343079984347824073445174521776592554396603270176147920737141724314414045439908383315840906599606020393260596847041447219073969592586422689841567704496434509041451009843285938008567454339721935573059512801809158274681924635505373047453829249154630288135408508845829386109686704412191777626970664985151435294936172321857604965162279592540711069910181026297473758093565664839664659111090774133198140327515108903538618806658027395575954986353405309985820199062079659233597387746314369343533254492708474984142551529112278303995415045755397326928233981832789476288350754368958218118848447386919961682485150791252501334195009646830519255462642174053579592942709892380572461044835779238289858727645554054788779825265542755327774359411278147314482392507942100245537585985301515382749313434950609246690456330940421824078956917245455301830335101189547229054752063327750304976960420449508720729532532218644185776299832657096614288446526185440614196623578265634143895165083226520510185852108916091572089807494450719974902668180762515656903895412312626536379566658658471578442775384942380548182880472291497413595419826148874348468830713506978563598577329446533784935608098778320084928018057308489596639092409876583034589118348975048107271949764559094824821946568252855228960581845096247651108406935860617933154205795526319038696932070431485920403257371503033881550141797058362213926880216817490910855533737742096154092225305108470977151548987562211806808405417153863520352212805876399702486868836576764913568889739151754848158394786247417545065603340512997635551219363050371177251743472326060639786779067844307448654850031825606303967681661964345538273328084013734304656332650599649466153957749542564493304735511038402659810639626641072098790859805140822261793409455617595809848706686858111145108300290553491644502797455892108944722389584079224303087900946164556549159405918491464598451907058556989812125911664099558052823281967286155770257055236176724111734039019770608956775011088587795424585337202281365439194645231978044465022068380292484992396080714029676524979546803879072162498295860947587719595836676584782649164655614635110633906117197953269254172409504463888146981192946456059077933054559456275571959948732112414937438962137169038288310928168603407861967988239401202650455623306353638422956157944365621595053085058245640206314050497759898962866954817971617085584927042190544642349072656404332531489293615548931734404359546060167186250549157469924273063443479483468057443248091065493778007278708148588707262043300649333520088141816020148740162665506857207824094681260987439320930925200715726861679314327747586496735131575903926157432937470835212693828079875240686878888293273864191999760134387529221748816484412846248763949582173998956300245440631702163997549220984425643177633554374200291822978895830269909768499337787005104741325293692906382444782044070399763152772254334159183155309608836225390084451571836383717006520210465596687369131112820172556534347177866295864289082590830469615768175242361846740377213389716627533601809171559898137385602143147588518233253201273970814430842269429088518980340638981373056116368130398989046264302416991352876208342825957873854546284086361586746040522607637625259208142528546800743310984877146329860782017906632944533340666363063398087405300578084595146097552405883132643416581666644474758072947788384506227835024101182341596914226803191306769725067899259248282861116774496658157955289707298827001386855807000288715084076375202698401082706852282177587668530805156352471042140364816796944996007254548550485588181610014819715486102446158360866600969645490389140940976353143654019048795432705528992059301541849612811715563761103615147496659446823515144030499420558435072150052123899362486528698697059201693326599264196758899872742457155818345924751415584618873011777239406460914902578599373254741572588458568080899941558839850486324200947126132969272171408097974280223510857303672959956966914112013324586700328884344620927602319301382424985050173091524577309556061279336156671491407608913908507703556903507737584838764704511811932408997385876906644719113591195114352147420183325945323967241892548924606239389059215028913963648183103494895011655754049567287592289703387059611066955613742965637755176995801637445434495228094908966759539450548079359677752789223573410723704910966061018484944836544934369502670368956686044604223097215416235982990056934937806887794046598118664320793811946169298721145167370481964207491913579758742112899521512281082899461975357586515092853236378256458036565498397764835744063127803768230457389101665531976758965103296020118022430039941680889005099049450930441199604864719839971416113575233094629885328988979409342832566785107421859404506976812366834402436134235375539258446793730237950088893580262917671869862416986241500271166511107374425176415385767581282809098711498021314281828818106737669907395245594550855644408617956778343817264081438609480064494375650683774192190933713254317629337653180335709619701165036043546990777468101511335049441438238646819199269815465013529072150139972267917767402263170377047453956288429972516321859645519466523228060636190405543216152953251126205026206525382585318273853215044102786835752985259159026566802475406442978290010200702553290470487403705899998075032764123682940221153884071447298474460329203778610621682240142879824574895836791504602514402894367117947248878789202702073035102177928644920165712374778849500916293677581294194165341710487490669734441644709788208669680365036443664122372103938701211800890608897305924682468751076097874165375961123194378660533877223128214314106245286972246521027554209783483577012187665586555179085479483169146049400602164216124776570880589713260706393812821037540304695671076510623924701558815537357139896573847369262613490755055361579470805796282565906183398992210015654765632725335424957820587341703551908423460471267007671477874524012735283857724944836844279711969482899484234332203802576541017105445726534133466553416266534440148291825045258358966784123662085773158851725529512627609695080577290748038055314455132052549010460428862102875944221970322241968943515207985169914758282826205491864727344902475580123052306836499046643374558741440197845425139030494442984677262579492102441677991537428190447925516611365574253181687717639114726074068354776417769894963924035207659903897802558757374576991704257839840115260258683948243328588393182765538918884038340483996139330288584451011052617470362131521770316163911873557371934314954337095148183345079178717322679356527948728379189042648852717446210281787490960275933253158538257986273595583999525183353153785971754532498096134610442014540797738000522807524571780568967696794386029937965723102508003669706910866023055576297325011123520634116028799234242925423470543342282060432685728792449747172043148526164401086563081260325032532330176392479909621754330886073860768941539937190638433129584463313999985663341107108324466778147538535463871348182434704199991685339131254417737903129194928564912978199063465075573195480131310727817014590227552573402729629824539953946216022862195640110527069251251026425815890706563350827105844812905604263926583303156078149237053646443090491152161180195959352852861073868470816461593307346008832434266901400523885206880026648873873269788812935797035709006154610467949577824847481619312257523815550761640092959961326884275884477471856050188312459687902465325044293446930350257296961488749266620683015899751716714834807168721956017326943481663399212404462773249600587079994645566766414133612616574524441016916976189499446239437325624698634861007282729371211503988540339409680725358869665287610985719876259758812706544762874031909862989233240602659293507829471802827501887127608066443144284557826721175865696062187082363379200715805319285638688149006092359874087280782562976293523219194423356364364542443210625435010712261432368291433245887922669497740536364353320498170854213059935600620740223270192183115867604806571346734382749570613672905181549361941091551428532785842593539466561169475742277725630292035728720319054375249764034789415933082927894827263491553162970878696484284577070268983223217534711956011073203743256984834095620551391733122766500181978554723365253138118474950649862573902108219774044847574762263908931661264316089902751431188216872719729371213584174789292499445241904701532620230927912280722032865087254529211726278889487733761054100688406944122461217492447348679884657112040389446185263238670660350633618202743366822776126123093552396226848925462090944967703792617536756698350545364250525238664713975580983802142403941724535728222838502308162425035999233901963632819729990596727860020388836715658615139253954071552232604926214711761862370879197078744308951214973784794595202861300506759810999968847398101349145556370386666881098787907438431069894891481470391655495914706569418796275004696500304620339659397691663348362424256700281040288414693902041764449573224971518606249551345815037255672215909577552566792824812407627810224756769171782201130058411323899569271358784441073448150554819181337651847507976804129715557270691722497115146423496538560856762991611321250922891369471406862485217484440811138165640839954339475969494869273498925270588937533095533624612447453426395048883286461568346845804874690749101770917576358152013152278614677673055700243595559205949868574695604683200947176043856945296177124845261703263935466260666805785898288473463526067688923636719175354902369288378438190848920996414802590252146723767686511527869051565248576739990933115099773657428966364674645901567737332689827124688697050682916764428951163704022583478876835555901221969079362427227760826418020225250678752211054165919957449220685666217003004964814106327113535400375078239069901552920356601485213455583057447295672633678115050048430645192217855968863560088057790757628529452794268575208874316879658572605941777441303854374407655396512386758180946393558965329792488743755122315390583530688236087281035538226255508368440746040322853622357208830494848680568177247866504220231808502322201519363511271362894854608508651230346477420497082806597953847952023993984394562632893088283238937894786403906965389975942198753218412438199600356642118504307816911721500052275450141594026315247225676700872702826981201580659795559409611855962134950649407528832290694161033356594817580863119119357768695273360419626260847100853849666709475170503543940450538943253845028573126555713309804021869056583179985403459862816306029518670654622812100943154595259030295732233834804743098438358532204638343421141182318212954659696622883794148695420858510885132176781831086832453082009477115372266703801521557177650497294098962208521653525353676260618619996343951852081580115820377857242606225393766088611305205960742421174606291889616677419184020235509305358257548496068928645283862902846764462511117830658961153693955043949344486385908527150486247068184519116928000939430835478664761796764325124188359961116144175445617581566052033790345397076819325190476943007836775734560002384979561570173053246872701343686370319882254734869963030375658108003848538920091316228303519221936893055323022987370162881923027141667276975429726551599524078677750561090525792108622010236336694846732451340437009367776930622872751622705210381013927471384374905912094538047925881353520238217679229624535191624128581436393386610001678852953599196344890178395530139859366707041914724770542490458317425700100008880939316751960785087859868186670240158459865152093279946971273197136102638013805347228984784856056529682414094795120191127567746571969925749618181725058987993397018346805639420179171858795612959717513043123306853742747153322699069336758174510670118689984398719453287373361873959800480266437530869143786384482554629260537085723248997587169277969519928661015293730376272366875302698568478690884378087799578975037506877091758879240482391540050092374654679406849803703712398944420638011155071555717368840618446930051450641486331447714165499173178580169386873747970265229916197987370058709765385472246471712909960560139790132994193422423993641122513202408440147754867286323487563243795676472132125886259002937944974643000963303070134581121851774994078381670060510519241634102725854508965755223368572677372729703417524111059263336154690582561444934767361790398720160602869767426291776042286844791832731962334829772719484553383915806632451724194436007287216941892955590156222271172008536097778707825517510754287319247106965716521160197817116294263873622654173348633532203250747686294923353126002879729557847169879443036047559216415026774394793744343745477308273215342190476488640010473493764711900583934045042735051695616712943128996868474270402152741305333201335353993571044524689902225376025311507735245222500769811374116714881344496567799972897323727992425555024336429213876382812119538597445267129143626744197290571811119514824269527530376002312485560845662296189630908206619647614319744252214891447107523420879401459164303172497326270238020636359218461995891163670213512900568541461916936403476780256896012301467806082713929227022067042357222352608337955090092591977538241061122823403047952231195227797343989811040086410592260164336649853363047635081543740910369077061380945416718061068030236606081857796728239265182700139890298873915492228967427578012500019677858253118732039390139904200613385081866121458776160441639790157792381288093891955859059088976607009875619960823185926151560861317245902702513157904932728723223720306828484701483228328807852972089876387588027737008151777982128954560004786919942221015676671361086061275766155899246891948213374057694991071652082058897920469934506545344039443382689030110157785278910922631826479247832961778782768178057346906005636791450187655297893694077964092618675120869637379552727502364936896229733529474839095188433718677286807647248689160866526982110465268169580944816082204209846159702280479572245973979593311271005210015385833535032147163654128888487704181929995935922513743649057228333606119223200936718269603268705719090175716527168891290770866386478606955862780774897779588381615030419174213482834865210706448336285277274638853765860000792677499757384957843807569340624682007001437715899211595111773483300286671108929117734447802957405007464541111043152816387957619697511506499050410550728533798896580252898907298800580982926558041838268956262640087859829797940024698836076268941495913343639071401183017017361025276990298878705355617249096598451614366266136077008703299296715681771300438405751719207414453618442022541306582539850406989151147012602335670138175871514135188539688301708920278861003357540252678509110630650855538192372619159782017014269644098232134631029818063251497026935999008959177604741471857451032907887378504805186407466576957456370490938099975215012941185458537563600756091219939924440906833550774978453642456219100127838957961144254590264534792267053081111237026335170017994731498684514801236989136315620327183811828244364013013781117600387556670615765597132577787825793989633065121344575327839212812708721464645268894084929132361335998939042457732797644875504021328486065563380677411991649714527075501200648729341601253241415850559894632521355762240103031762320675527976843702858734241193382582946027093586952115281926702446205577332290545589761080389432848427881185099402893110090588158930049120060226006607560060780074326059030774307427444890578315921571135869364463068505829740633705106235176088525537607499901892593765115211609195731215156317008415631224796925204113624027486644494260487211826685613040922146428333207349020243993882702518497960121871947824045123277376689453975799864971189595195681433262988254463423666080223826036144754452278564155434769451961720824456896131175526438816383931613013434046301225484424462429869123210043310099435622423625640038191048259537577748317568453373407849631068865204771980334981016070289499862776484458884491011487134208807221401823770548477027709861165603393985467178962479761574631003022319373687800925600472346376535577136528845304947507095725291355127333292545812302949141486124789653342611576195321683189942940727917871065352731587473723314780528987251741881229529969225683610375221448098572164619808979513226027876657313886709676648880998139889525363060714400299573075334505006062907612330079912373745842483041576556365201589197274445088022270496790283901911772174679776130833367195808972078147451143885295279868357314418958348318598027651366472862742832779244877764965224435778372209036124570086003498201542254800496144970832425111656578153159527999414851415088839618297295966382442363215514339227604942566412310861878004271070861776954495616496308122797198527987412399804139242203209968060689362981437957940932595027223057670267861945656834292176530751342322682212433365601542224400203771983070588753328917667868347219822351955168535229851860014388857836624060468779306552893996657033822018821657021038132736787076516260063224118196136662108064626946418316661085977235163096028787371161132089789253101505022755560195721368594824342325837102965664414849844144013357256943482438494205415467097333921387311738116388690155433634788279482524872515245486655664213223300459564671419661902755370303425834992150093307215612047602732407499037416698107615559611302060940579034550421407308702997457434653407838201906337854921930639688617199137213610391469484712228981993030757074682460835429843042860720293231840933670328392400629973461733199321768440086008217284007582269973663926340072493336765764442236370172127836088241868915565225004798368455645002154781534724382970555134691125349998745967538468525484029750657167562267379714367182795127368156238505794450671954155772727914595483949943203467448547803983942330871055193716529192974104740805978171623739301209243889473192209726358579403150442961391201652542835643956607875714580635128277884148645821405761074500696357598931912168637114141866258313450055104937877042992393418278597579944719111584221333592101897436933008567082022305974856592723691771675761814450299538666228531887610962390419764826035065440477380379756365735063536400940775079794403632400533288137629976682770131264311003938281570499153799118748727829922828508569615693631795400886188113038885506456197980192015795632340722027997478125018509678247856161003176703379090727574042827986066096508409600061119605626107153453203453951811028660032800286487688964216960546879689151882223412642529669667470849339075176180203932715216611094914548002711451321103657281645177484094143679652160374208447254006177365527174730178498619572976080720744777782277983418476016901624383175122472600741192417056892683561672523906618633593412822274679383916554956839500040428740428427354079529509459219254027207067809516745904044903463542871711984693991362340981238669749940492456909795795483700753323722258519031539935590199657635829604926151811089242262699889110001948039744500965100709020450914178670303089967901030061988457237806666838415054994443520732106983375419579916714528352016066937124361793679498068977604516496620711103681008414310431876334798753104683959991140291449671169011987399651496348981479823107650103417742475412023482246417653086873651244127454776806961482450475361882063769471123630356783857138612675657041101590494782455780886730608701445112196816457241619393602817421824428253458306144989810656901876823030040894089673239550566377862919354926161944816270695318130438744397448625007876203623875019909409105964044900532216512566482743623628450074321602492598937018176258635761885492468829593442392875058812415583484311088381739340102390958298062441532950374958874821642522588157550850803397772023311308026791365999584513778557008346161125870085533308405189036634238858113352315741324703357870583730073313124836579660775190625182926285360803658616465652363912602293120831104114547402178437536597400314551578757387073821912617257713311487255560991561878233608147882629831535840613652445491183706843199669401703582351698415293129921679970209596515247038035627193715341272217335954498143075089963612713582740552857839021705736263594924691470864513172639503396745561577528816572699843006214732534535985139051562284351572296265910283160029777703427977263261053285472060320025942562089182034198017962927349631602811858343638283466687473682751299619713790511896772585796673718074294658333505592579239799775190100708595929340591331049836808370219401210629940783667572227567144996829866520263193683273399143545547885621845869199915941743469428691100879731810836112692202967439986733614663426387572694024362048494947032023595570880211122366246505398465002387963607449505992972707568321492397975661739069873089398951681086654700405896295088599428271651180588881999940871292893260826430220997702174877730491304082226367488979505319517295669490187896022759846405896388587311491937824180551907236913843653920974222557996640995093846110184603406933937132045560311922169303841677003526813000135114498340119894367874329472507910423102236464913299894475227841957688276507479487619431750293057856709889747816560366594006165586744069982650860870997613848163716818293663460240496596815724767702344630785976614959657281108047951160690298437450871285744685509892134940515660021988458193654564760960330759570842452700122395401907935720395870116984467913616497820763348249503576782779147194009794532748154896915738912719365562359821450691758837817826935089291765657624556906525323889966816181012018884144081538277516318595733375599055880771556211191142743597743165357236263376410610012171379846293415708798809555451708814616339192915822097150387728716492862895471042271796255678419718818343651995751483848661214172622747955800894320036625914755258580982039755243590284829087306388534197376807035867294786139873614295529095192508826592554391375047663997355565758054087429551524463221526189222515045495432746244519381197203730027981464998098006509864368693685796641430023441959108537467945709645366105487042536922905696718858922636996847167928388538163534083118914802881758298012991807808223475525472426914349749763304307371511652058557728550815991902485825848158751523639618580017409141812588523862438642667586228869267195428412571053908722857263733214057777564392290954415040352868701787402651794470107168826068839489859220461433017967019132918909822834991807445396122601378996324582700245009968988831075540341026754874605408162034526532608966393052578751007725785894477827690842013631740209229517344064677751264945591925674184663190026117791399058979197714691235544740382792097792722865304124332210388465068235298422834909130329602324255569969551294469158583129224195102693188789180139749900790970487956167615179475832832882722253639700214518703021163940949110019893691805644711493073171402178192243049350440168068355887650038044527256840915004373988736256670835498720763091430262081405469724669717617742836081790902912226425601680537795254047539133693735098470410790213487287893821983159365699175926913760331716041609250397435100660740826539745065163413341531802671641252767031551271598740445103664621394796732454339306932883917304433520805370887848833142776072083662724131712811365229880130886884446845467060761637762760058395694662543989396876292732637546079936435303901213504014453415776211629092338415897781094076471022350273520329488348745014878919891474179259687945003586403265639408976271662133911595624930708441302598856944065474788756441846982811344374667058251988808007708223781225354478512825855027277991460963041170509229411809407368039645580909567988925662493955880997944304217258431047788905399886844717574454805692922075653421482164370511278078130910876378820043037483528954595662404136988796214406181137539679229093356432629938292518762016616408043762898929424551540521616730345570166680973981552544313217823942861303152461247206858557156129686647566289631041235329774800220347035172888926253975274297513108744426430592857029664336401997697844109159026236780199117434433314631016442180749842683090903163385672789151926330999560726497477965956157025330335268509202243320842095474794505844962541085106109376601058504791376557723404096463530174679771140144875342402578431253573331828084314822770169194375173831769479908206513849146330897388807471079322007902341405587420915786490437894904712113072628239203807076751376960853078388999149665657923936053009153170932730322501689961824809870403317123329717817533852020001250593218781240627804232097106872109626453435901116067102085623910499101240172130047926276677025974051264705076355655856177937395757541510479114004099881566621534541586644256360305545806096534444529060696661128010641487196433158627717334813595265628149627976058559563020168183057468759281734553570772909965007980630746592591861857675877118960203432115656719729529466070832587763337950072214987940851609800196486619456706009743542858958226380244271852005373351206347078651383777277319008524567650151714564914186624762992353711993465109508954045002496466025621326265949184068854234456293934750018283803064514038917104717678822505304157189368573273511517823452307327887296629545928726220785998334472718215477168606069183813525118604210871596868023217650542301502116094525440659286774989933423833373967778424519175647116597473033331676016946362256771074078524614369622331628457463612101088384206889450459895435911746026861150658247649743263660182263356231538591263468331788806680002175412315502270423883063157204030188486146433349525535443953490653599178388080623851005346855427737316005334404641757631690623228828369569107379834587704427863638698844139855022848065547275070673240910932619736185767294876038498447101841822059901854165438525542825725025005851018446226710299132899944561320280815262760937414425038778244871238804140370822489521957695986651952942809765034963090656935477868771059083142640903295503407575304213463057314902298584696611863244834799342146988817745066779680525321289746631426043378049763798858028735800309179867706467296768692608914575131902474585600208331851285741011159769010205468644401279561950004308069959781397743542450113406377116243419243553033077707038224700106845827816088213043451599764316225464564211143809271322238655336034703496653253955928335977375089806941749141612287613317291758455690737640104936433728903271795183506412624501686265034776374654063382275741023391752758879409025934205312565829085467140527638226197323078496306626903491644695245076403057994761693684053275456784190243991990311721123134616938084356499472042326755174034860366719562529241391019347508693436997576446242723311788411090933193302820669186008801763774704009424552024568735942944449910011656931840827480653766534196209514120794183302955524085488449346307930793339191892200809956644903802718465091764993016503907273746637128132769736058293274490039479912567156018642965595051479409345171234370190171606420169951671259685496760381608991122981702009080033224937240280722730438591361900193847217441949063881719220015166304446799965784633574005837405311925751476424610205001659527521910011023217787806719915279254796546629936870436658498639524198361538590998473362113976483297021688239224580574916172951775374378020993881955299137012590554396929754573360531956178028210419487499699669661720559390970241145494406863305375932692486426111185821154787373209804923416735132722564760088333426226341922963468484431428144379505183609610586339165616308879420584886729139523384990232231862374824212189426954516896194632127309097380851585292149811310047193912304859969679513666309985736993717292217167426165433156356549368416286102099265674951285342270085917257699740329786646899042203098136994882821232122030377469167728190960328610572516474298941100909420027457130211346069225276787140546103512811565916885446984858384141127055288971647662205862007963606532986360927571435940758785903250290050199660549839244187990621767586117611590852689298978550017091548553657053851105868284148053386205532854324838391574045628713589193967277904914087635492371968905460806341089984260247958720695026730608060381533877556292926085390635319722960608820143145310955990694090817210618401451552355287380695443194232853826698312863033252799224408198388786009877152502019419698602608712179882094309939692906351483523130950228208559402127833652246066438645085233741270996185250109400458910403762361174547952795275678461069723825847390282800845904510094277045529534589908520671902105525265865949520635387840588371541761086677154841732866536741410512215907196477539104016047828934214557674099237787342289380521357786458283230789807769079047357122741164800254155280673890319789859354752901360371354430219576345576460746303156128504040703705491535941303458210680232585521455111600922631206919962549656929815092607696189130865019752313728692551545911377862503220957606422272895025799589542502941014381679726139336191240898526274793779783147214480100453616941401430059735089751047406539018226577579404268779397299546580182087779993150251293151806952600096961938852649395596578124911558988832622110653135136337675301013931113489424131826305839613648366223105120631372800331492623486960630137469784044003544073929843565889805566845365403090991227690816720260810749047083623561420357942414016032863305488697986744786991413202717226859276113506787764625817527042580880874438569496384586234491811683705487006672967411961583956749435922587401986411278450717935428828087862691593590299235175918046758188310490872977835902310972623299714173716397107340017125813285430821165779170938269746831269515294468997317953220712392874386906266514133330163407097071503888203094835153841618322405269813673569056775498347529834208908586772413636991345920075085524112461092290932500788909396289769728202093668247591180605918721701190638057554230845811158661039077606214813643891313529141584070400877216262374702431304464921603778468287501071308153834597187860437697344471702094663074090014768766936349212297645203455549380357428014141676692618496401665813293231367199917479030770652868180287512579714476344707888512833237134972171460678277046899990929531062816068734900376201487324931545101389759649115220043217282852117166609372789792549823087407375481747940283078336047970788719154086484942180638327946614141497773340271186957322999875099902425132638049287454698991859487912834437060309263838884636822216941213255394934055601312072949463046696961327338567132289002224555094033769581443573311185359779386099564240787185588002160672450646188223966012735006380748920345197756035176077026978274790526486685992503596284403796987036297979605590275440231399460228779285928716857613647796482314025173582834239614016395076842106149684571613291428320506651951610840088693165698442035041915176801530724840144904806968982927245046208568715249888798913154666030792524658645058683798563617572383811823699019519280413179919400825162726256413128146689504978797137157856281855167944596996899151979821236490214850834242920770172621235217729991911823260747995990219638579621690011602429788548054183817058644591546907474705934144702706869293235211480567171344186523146940036119182165209279943001065734089664385981995223191922220496285761651516727434495172185016626518210751058143451006557042716913922147958821959160497292646560522331108153134666306913956829306284839489562721316589753433660123694525712251477396179818104739058524314019210231558109778664345826505968067220449311382457006381544691007890589106433932633432898019551571534046123294639481208015885945352590938597206190480541838434356359298696173059450147844380103474294529474081177101568627701814885405840078726887930034426617969716755692226181098350890906366469517485100114875986628706861459092167036211887679185191557373669648697170057925859855717227780564449521571019803296114975252043517531157832647379714211742545166426834643912747194659870214542170442804046080510137421282794774032024435021380836996090160160067205998725119366637532948719782401270607870807924900302729805434141889392725452972952452828124697386433425872914633930564162621988441754508192269546946478275622384083948251024925972201231916851955743599796156705022437558414266801962104301803971029539639056716902212813426006487282298302619309195833869718496405093556925546443896627995918491704937078181050050427532893425787881822064014490185559354123147965257001403611672301434915218590338217880693843518861462608274190030138264164132953164405932550237429147741578536152354844313759300714498715785995967192453004124769096075266067142026119759753225217620367497931621619456425251486084498364771635327764986922282862380039153916041571443048231395557603961963717304305404660898402905723144505941128113826142670343981646901114836840720855138675272979827277806802209671330707117339013025836998338452954258834253110433697871194368474836370017296468731466669436387532066893432594910245167910164563824524016490675984217071226109041294765964150161235589472983344187144713751225764326639745680375041829207300363234183015931185692351417142301187176972552803405910709359994949797388704055257324572589784671984710606632621801580037118626039363553653266169561088753536295551911696428199165923476579077471249670929938313945564373271501407344482957644161040588094266294181779916351637889009389589330910948939531425607750032421279830237264697497269989882257243336613494905096934016423716710443081867201699666431318951644412998169474167594583162085563406643770321266734994297412823137980843816624869361180646029235327032284096005876778821968018551626729208071376882086153345741386577735941910719460345081410421147674062692371916607552723458086282973668200587786564353606097596021891985799632729219006309341539324554822198801447486669535540845444605102286203845484291230223402224718298934431532527556273878833379026256943629090237735748813241431648604193370667680772291546985326756825021723809417161783725572332975745070342580668530413242320719494697039370452145179473394291173328775825870254041826780365686790533301171524045263687265331648181944346627291652691561249765900064484231484644880836695980739506691865352231487225544773146804688884168394139722105390229451815601181269441190063191485443357250586628814459028926410817057573368510526321867173132883484374666044272267469933314963327667112810084098580619610052153986330481340170466326155065315923930782560559503422095028335238233876573647020840590481414553261879996052608475328040086891528552013303947649985823881435867837047229006596874000295842381608299395818159841751536642669919006059596233117680727026690849429231764964083319610738019871421823612194252975319414340200321768033556609320727976655032215742081047794562356022664433342238355019836852262221146085765182118575553648093504558292450157922131064795179819312389083446801919089987484197684112693533225900387552390317656984867817349587955170955477706044093433948401596766327830856408767324305712678082413666827856847475185426591120559346280316177992786713704244327598356579480064204580603690438706777795388420842964043577434658209369664902393150827331109646495258097472255990113943863020373860598585950783463431765056197786764893946136026293846999194463124604357454867000495264121422836600351750014543195771185335124181064498304433325572484456892884382539881278899207293151731216718841327791872020822765953515056365754626006789448028518562114997957300545381965700701503281994543460634067623038811210674560550597280792898735605466909798629883041061364512171163498724403035795367429809851438921601159050642206736941343926784570513961753558198926075440339513047758385917597253090713793317299732298325305649741553079664113775954160827793940777615447136601221702589063034778436088142109310094587445490016758210444345325221273698218965991767922782247209218084471771117504602028950971144818401162995683760857099058882138377720541659520796063921632622413029063835997783270705363744439824142081061588189116290797607774446977972676249918124862122892683872893239703930676215827796936278384164950611749591824940489488220534599547819696552086696167101738986756294524562931326616231879260470592547030987048019910592312449922763359667315929082689418236158867010164247772390218064151956319414700698951440883115594566828621094688046804913202535617549845321347243567019029111906729729471802085867843989794064328944393507925213678460686486594619665272263880710574191756710852262498163068313929914952649684842040061587662591537514638885149943077289508222525300856261099753857901376464415576412608987916304041652474943090411477537610031563973423471691024910576294227536957442442075632627965174094246734452290259320268978706858858183690821704322372585406075618571580447194504309096770222329075921091943162748601049832771811253664383437617214124078429362244553570231814290244692652598330190557273776762800573443640895859778559455423973160758923531222469791087095249823624583990206235453097841500471491887874597666208542709490967368908692579804005796653686613859647020566042083111277716543084802705973864304346722062316249263235177539443000746920623215462727243331204812764152336337878633027716781258271712392149855199576645961766151387749054734550308313557667776989602240759157935229030107724785220159973452304153706981115591655038024843486065376078000108468552971806830408412229641475924877990995187540002352196285941239217755900420789714244698642641494004224923991924102267749337488263392505706170388873127717187173049520868718664641643139043888201117810468977036071539690234787532232625451287493924035491774485214723466685309753430937719334729181456692946181566051420934384527898610412228491769259949570266400204072864546307030280949659501747331310952864528683965168216406025791424318262765044683659061645089590147868627599949252997583617204312254540911512995872358124960651396104078401611463610215629150777747254676906720665404318096228075601071573871891952801211897782694507312212153060792170152048476987139478379048871687608360852638616019740796531952924306587534838522008499758587402075375390944046651961961447317626724892212235603870452244436692845792127319669644768941061661711755782820848294514372205107990334383932855690359340203416590987920432921184614249228161522886484806485850334686742884891668577512768210108216765169496643091226915882438828634185031397463535161298616260083080568532887136040720808264915763583377988188835512692677975097244489883763373803425838107842494177137086505228615651509313788231415928397581118934281460881971161418906989805011721119939000565199098292414691142622489886489732723475373367859981063640890689168881907694841659554539327817931071080511350142491065795732919363637708475371323781699236765725433849705675099571010134917927557787641209858127992959496275481663771804668441535438569224161323626294752918112819206804934124031463117906543669407025343391767245372734508207502297508171540409314865733732548499346846290221851646259683573460492532648874269794189735493587169516477533615119671993448985654022657321860567060116797929603645049698375910072850228919589418185995205385089132846466778332859332835920206368758058019605720301135213617802032432414688198636128237586677200973004592283974900870725235026749928969822622676659296122647804405273977047404506773850323536866292240821890679540270056016486623970862720148202778750126974589754651707015935217972432925290962380101583636729098983769280060800982329126211222625575674587747567396523203870255203293145336447254291139722513570618398807977684084786920431689968446791303118850307314326250620346213702183716842473314143993505287979728008926264437790332859389276563259081435403598191752211155946657751230171839363721511661797636745955364468009315549646853063300694858460508442197008127627066377609577695744611242926581859725173478548759051355419659642279897053262496600488691017170008075525137788985179917549949057834260403566073824466481858458832400606058685792367596911191176919709571510943182479645319363420213534279656179975728639098973312378644316745940949277533115331272866805444384912666057175347548735645391669746997974253821254324642712010138356234388194689901718685710997975947940302288331874356844142746955264511182034167091979911550323409168208957514923464106644210205976763338426804735418746940106185103873079062315027827767948134117052154429129253982997456781393173123789780267991503484379454413206272709070881056963264188876136392140127864116476974502145262188235135011082262876186739826468518764235332652168408891174765155250344790232588792219667735258721575777248660396617191128455199618010916432849642577637075974466112569332116302856067393205489269170516941824925298057552300021990076102402159510776375723247048285113644799190878397378244013479302096037127622389696139430796708581738972390901183854786999836401524859145872152286944411614846485069768355743946440025412638846130799098478478440748863767720947784737619995125114347795945926941992510110107741051702779397224116469024682761735454579669070654765167816482214048071739112192455736021559095682279478946680291980335530783042513123479832947807651004012946822348140170722358564682889336799785754102677028751307428881278391591503904558437642139015960649065385115888092074415339407092653160438794899475746029110212715576894026546688222631009095896758074733920417234301168075792050836009500983310139303669552290734717129474021591632810169771574255159172348309502133429435229799688493468264434678572876552212199368315185052929011356666584220618900124497564365644616154506852466178137562772794397784554098487911816065541346953435085874879416899462907731654487325061287681885309638534323514587103915383863305021266379237218827955406691912999146458224300986455461115325926459224943053479017547972274462789991131708729331016920940383563207667592783335134001907108905368213164597356249968171148365654948934301199882498556099551891137549020689813610754790225290211137912522549935627624801759489528642628949494754457701819444838585041423284978669381922066799936909650941702242243716065302481879882265801706269760738002174303385195530702680207331300033868072678897779841711112729910119300929097156377549705010770859838395535247828471394685167862690900860436763857477598190313242512055811618601269790340591145670326885243014443007312169046583804744761924363587583332012852001741635111697682440923270721540481378734606701713632272481499926782051150757853599906778105676631225639764871555158910370536199143349788386025112504071534153589285228629436738715439893376551649949905910044727953976883634952323820516429788875892455917936427723522189987448710471255509629069899711408985430813750324936384278600290658153661484115764877216543359834556942629505460053954831876825919657346022204284098787259064689042922447214983919183691373483922265762642671406773680965274042656556942197691221843269345306739628823815840267317983595991442835264625171398645272532342838986169403555642092010992063896772068581286795770880353861362679384970005096910208565153621963084096394443592985835183018528148500257958971920978858051227481019450478437573301827231099663826791010765663708278658592442230060418286480247707205210798392284349138801552260274586845237908196609559441465617086514774769100468574764221679487842856817687179340444217532724574280739325358650381428002256007096344157684357423761647736765057661065746306691841237109765841516544613713199536717474268180513482099766126462550394864577533542241808105416768993927467397301963566643358568823179333780454410704633997523657809977635557875811431630161877695835129047540920500385851151655601207829358272310389515435283318290753143936021207474646364916397088420455931122163647439255794205753974971290478853299421501917147467469365621579187190219026100059040262710903606135274700848003085479501432692944387537930332498693055165177969380215571731934732009063165829901528028310310276600220261043470875744368960589163565008919273093656886975091600956228707174500200038176798057861569034619116081811074237919917973290624144603247464582405445921878959327797123693680212763468833630501033165480658586599731213048605965146950616148235591614386980225330116448434616873725346058988060885857762974353551211214110173854749332185989599075861111031053337216266694845672702257122890723823145637514110263237687721816463990350773671321890710320125859681540163904230419159891936693245085651231649100803197733177682907394933317597219036166302643137966568815474358288222134734580913065876694600263037675324259199776584603726408377668165023268537319956731935858069439613999612769003250601378226922056266846135459635390577644369292337765815682280898281794615786995286039530709960872423854460876372260375801929660644101244103897378810844242791584884636081260310955547230318829297096194501013016119344433141678827817695356680856625043461462780618043746313248428378465792049502591344418274405875398835437248725200705160863047394462750112873509296098378818073054148502914987812288153515140810351849259718573355558917271253608347289213311000727286900979673529476309498015470299613097788708729017692649090947374792020339783734543541261341786317263084771702982277079913187745175082460773438936368640143798029679964184303581416591556964150541479129075409279789178282361360357313911281493654545437839149307077149941493075630110961040546607384596340144741862883619224897690888712801326984483019585408753164030778534110176058376653385909716064213145981220550619011043922126030122988390314577723194728858216539760936871563781614925287599593516481783078425092487318653899728862254692997474061269772360630521555607712770999894812141907831969086862084702105109911121021394658930379181236653225124549783477746515457200084456170444546991133354908060755136794554702100750427850602515798790234302648511209977654755211642330641330797338603765996534542133435076830466811400942358668892054351003137895283031344316706887201402613484301329750189228667444413818390829869113522226953068568869941843964675090659839335690235629982150734498669507438066393928331304489421582743396488072108134403087550874197167149074315151048465006564733729466203153135108496926526716988054664702475657108803701088518543927889925566817959768554442726944356471047342701793936076327153250887152416734958310093746234064850968916533113011342926400637318233713393120335596597332180164467967654603733439197075328061293735747243786180690006923586979197563459178917617825194545254672079894575419355379735547598221156489189054395706066461048784494059212375002613542896847367520264059506196493838718020252735704140023947110765771986646464965817920079998853868151316689006074240838048853494809455726846186635961538139673716870853178592331280977703411268300299188706874615599208058402563721599115326900168460135134499125938069409496773024126946971291230661886953420512166133485222438000970712582839656503783790987115209112773502724107463684643321615229001804861586033938348085128068756824780277129389180413605107240462343140619375981190394660441960118553009828102630511160892843921636697998307465556833923818809152623942010142350004699156960529537509707987603587295015279030860580198321814516531721405357576294155671952581885338416675663222268676267526309730824000116374874774390137798099162515018454452968461478442868428688903022911346278245312740907275532349683619492287799222519849673292804429484324949308985676566787699478234778499085532585888605435807160422023547712313464375916208231982299837724360657992670369769582955458304697708824782483116533477824301790225890289592360791030639646935841518186208460607611318866473504516086619531160806127258271704972341258287728201411272341483198725612120989171179370162597570918975121085134767268234305137555471345501220396735844642409079894208224033266296502772219224054067972119471155029299242929847179176539520588619096470878840671947835757927273304158843990671808010797889388644688442869859395983235104687994004123446297274516881595463500723231042790008858952212571407356134798337453926118545007444883753854561674411593257589536539297292274072411550765020007283490279140615270555643326587430503122951708859740689661488952301849401430470300393750585076829811413741735360047813667265173660716397488944969240426827673759918479932326679155244346884190557394610255234240168624127128306043889146250362151010050939650669046028504172380440869916970149822476048001414709996343818231910965792510531262385325087263563523598486414780143157511034890040949366228420222637230723135232547776076663195089875884800228684391807002751692235357208952038992779474941685765257295977708445105966044402235818088916108513224542730111294053350882500322805756088120555716610496197482290423027972701088141785653423484526047226481233800902185428208904475622608975834994569163142587627034027734698182832927624153675296309627064157958637839459273779272231669703527073329770698464577835686156078892125680911841554389596989830277079208868273179115095500756608528503368690101104849060722075430645774964270094912470620960052827050976412108624647389649290757124823084344490806812677393218370296422185453580271739824569504253492403931366346761778659226106775134388795428939917316981625906791295602666626880637444022263369830803709025269364031154550570295471659322679253043778037815702585844628164587859596586546769271269080182643248175645711611395848884084797786707759931071243749704584524200702486240169373858816046857975164274699126096947058683278404786287963334765062950254235333079398823005366263232473916549183789231578939696585009219871757211492648603295548904360940583139110437180803234659768800294992054524057670415477731631819927076102347520508464767201298812353553270236698059655595583277955570687069286456985577472848770551393307671565479969523898388266185614405077321365546202981514631269470493631922576182767469357039788934961164360550099905807723874213877180107365585915001858533117525711068258440730317539597807626828189139362151670650638238866833886780458445897561782342663903965721206201807941991634126617429551444872547260411981626899196272412929007180679561683030813855914828422268924346374729572870098239905250435901057031326179943145036524795654049040797591752904794183312541308558041144324198056814268563551224505110660855934125139431262777260952739902793196775636585410686830671513774611029142734259941836150407412261767733411819851966208948061360841817650299005150914222608696077520049576953212394446653698705045308534974894902808235759548486150597556586120072964549455724268780900281862368734309087916142056496320508004984129780607980306721831632278041355593024388537772543932673036178191882865630873231266872974790761874446399186763416004902465675952293534698611745392599474635639422224395875653718602428803225282479598858806943824533690787434457339660598209375215693877235248533808233261074076534128808750191786548702321441766999365797332381280762837767492475628980418753172153619499871673027447092281893378809479891777313402601471900485321142764409015493746292764537956788905992182243119889644448049593863006056959326921890887514285156756927856413166078234218965115149015682617500338531532821652989806782338840442906294551416370632175201686721028063439821524598379626165202708135459039085589158066288466319968485380207158655287914453169831318327770312818986384718297761364348648848215713874063955950445791247961732764042755111257341594777200729542387594973856159456468865895579903218049418208923475064326376205844927062941380664577653282397738129076134948011815986576125465577992543830027743341491697601286595326909489480126158403493869738485745175838492353744563776390852719634578348961750946029577436096866984284062659340421494927682372495471001264484284189334593180751344052257668593898698062256197998720889989404391481329607217845467943944453947057535584805331856849734689233276365347126937249664509767019509955272366210035180205363258929944385586039782575330149768404568544211142017755371877419092543419781296508600473495119679378365559707399956772138497876551455849955151499825442451636235445014880651705470398709372506109811869520001227887166751261524478751938628182031810265154170608801402935760612828270407223097183638512562292237149387839841137166500301889882851884853721725344828574654287703801110433278341001070144520763740719349194374450897518191583398184618794732018762806013293463427436605737623018806124126172636480540790811671989615335767048196326020079462878227933865328513527823728003223776593038218744525783140119657600548376985476600742543817234230503925491810225674028918801170980321906431429999826664164752900365184272459689466104306063833593538006176401647883656234302063560163795072538177898966292767017605419846005880741117450465368569942468996969852553970634314368171949969699928353845586583967642468714392567288235137742133264718748189506582891104919253352943948414041778188117917719529945729842841992232321728452450761367838503349084207810229335825463683817401089105690168847180761077100530739431045796749729796850929518640568028847164298501990995454817468742368448560525152087681820943189620910179155625576216773095550670324834081774407829503637575400954918865136483715717131881124972149116445232623980650384184617160785377046347901780317640812834285301747101943923819829984810804034468051145044135312980126030906385531031037000718211379946394981477676294213177911751734854772669358443123555874969759056068603068582075026464081051042665464554012814432564183567824964827510016465864576933417391927669892442215932914075400984500383288085735113671496177694530828600273400088436519221854749713120050928635381861573991102337876866249181368864695143358842039935221998285941387268821319445240466564267435648182591552300656475984727671630371399412820663092745432780455386369292741191524840953506932339521734312552458333451314094587869703113189765352849969204902783985212472970545070145054500901247057881640824104980370994630798322409786475273940764122295823434317820051443878578347824333210710370085172598165728708175898246251223997327675405586863443777772092113806131691974959100075541258589640929258586641092104213498371651056117333581254353876334118150146026588612891384442486712692335593550939075275844595011242192250958626077434991967641771242315999567345210978560224799891085541863257387240591089558784917097199198873701886990868901766861117233977107001638206044122331378293049711930756932691016736131123956005497110533505465220319602417996285966930894134853999353509208758955941265737325486775873436519412769891035334330969159125384026283956527698141939981266329400876317536610474928612480656496316014307374117622827358947756280411885380403240640244613906444810014232354006435547067529326845203612622103959374495530859492488279491971003389740177271106056054498258192568070854933407249774192346077021491137307446124749693559504032314115312087427842629701845509611454765030992653768973411822812313252548742165438717405834630919105985202490570448407539407731097513644593401315116791996217210050891778181091361826017847617293855950237728536004031500746296287720873082703228234211301721939819312454470060413983368182347605367567524314323443269549599722310525478313544520924289743969991121357123482947783463967009521879549477369186027556670771870743461934449972770094789526736069497344502004093499227943964805408512842146538225797155115451065413019427668948628486536393442469935857020775005055095340559012800429174184910226922330981194746306166781605646501944422888931469848499218526630618427627930345272775629266893731578188367797306922585959167259631185094370831333759207675367015297111212041693737521860859171213231021811820268328848559945407893542444510462758590075509638397168111956647482006366829823304667006273097372744229508467050116260793596849977141905203683141229047117551166421607589131383356363412842859058858931417357789577551597464213859704816064968977998611909220699614549181094052679400843635822922037742677062157426578726391262852770973607009584225993290836373789548011856243944113977571977139122888072432604046344007145960701491442651945439221995943169590764027736808618981357902994371131243918376149038807256505425031104072543562293443013891720278677997163391230792998462539085492107368337488848922649564640361161402570059728432967272141078203064708334774980276760549178997852698641231056855486130388684560905708952955952021822016558878596914649009295065138539498635284973532624300152608304576600845098490042491034271744465927015461039720392406287041439154030740854235594666102790923213376401937489694764042377022704866958197897294302307878935650529734487245953086374988041305363434599619804751764888570265820460675759440050015512766590955903859673375116010660765966722714940518284974896191522657630028356050182948622011625959395608470983651756692554654630329166778413680893455153773732138918929747111267044344388453942945654884006973029766443945132698452304852226470206383756172574833367844643090293345325065140414210625291600426224776174279194911521269242006825755933566227539879185111063066118401895561113136578375068350161225627193617388827509273466471693743491763084529175758359146926078504491143196758612904970673144643552748108031358072286613770293461442623425241722726226789103628530251562042402836070323824795841604754581903491846149638672382408294621650572752425431216806028490523220673996126718572701358631436813198313340351468876569906803652232074451752846124237627844158102873817326167275112582704674026674124188041641722679269983490251678570700979221698441765329195565331742553415704004277355467521927925425673965038084537478007399457757885367783141399602939974210303155362116733056518298882354232397084432389381358493173678477475449873515384885976988895294410524100832843744545436107529400591487517314593818516297202166840918929956916125522579061571647317247001193963204185169802316495001167573128040366818534263531745984602856944944824010068625003062482248357856643513710743119415519174504846430325507276170398506725768512513966428900798786745226449638360980694742817593401745657709064736636392252722509336138981733357042806254776321406662756977753210798593036929434770344312366511393621725382659559219918159050858496680655451718797230980464118102797481677863138646229046548378497082647610396703762056222950020987708463790463819389157660950107971587557126008102991512982125290139938624887012939802493205072044093244970353662168106761759338748097613417294064140134869136139112113224999488981003326051342586551578796728559197540794590140050309735153580020347458651213224653604682261530859659229613734630429482047144485775658767097611288215049423826056521535358991132109307146279042325725449228531099929689769166276876889131186275795809953835646228377897577336663652422246901033362931283803136986178995200969011243369033879950572739965644476616346619837869848972006307301428442620931096549957415362551316379008807553488210777885082488555361505414698566051278563433996669814935126099002277598222411921301251566469950733476883526200602283578602731101448029366822294268109136811362583086050414207233821525068308795309467122938291656194866893455423312130612039767533793658367674503745897435081368811351284778591782252779446083024970030226646658531520924712123175439875661494376830858488899456417071495235369987297908130672260606778876216169629088040341404566280368987686731948834356465881643001699594577556620549578096129168488717999643195825924177362892617585874470718047804887171736374586431476589521681802774422942484804872569600084025170172919588072168982621616035161814546402468738874143410501790117718876727825097874182128602739307944914547733073926682945970500809364487225384379649734721289207335957599365003466438744149421991175511022653193452104628022635504661787562828070278741805043346696508297103760377913621953431533036405913153864720826947383262259522780724750500559914173764102848573881625933983724947834886065064147863002038249650006346386023139431684524830618718318104208871612717560595363168463730396918562980114613150352938353401100772755573354346754114692747477510988159516076784305028908765698359184919540693070356283044337582299731805931319369614171518813827614969042457205066151391057956218624133189358575332949332231500551915056041222175385022612436223159806548456760679530485701025025276542325979937302563651199833428736509162459272384827084305095842934336753866167711189558869902910485919630895552918263321601014063664673155970807837889241479998209835412211683914814277121864445930254446792285397779631223999676497588878746019649440646698946047357955587128942260746779639197958667223821126870345975768290056185572822839547786837075141998162100588429394386540160929411534864058780914546591083747239919374139291843883729617751925768993633161669630332128237589439991236540677519830800540800816130829287315031681699371603153853865662176749191008613217917553786107412297820719648903974477435323471531524855745069610659900665757389442528045616905926542506270432853049019356061272957599486440888904632690197855433114073096895361980105968757584496274932847423682782090117581091828717864299367775993348399730162054469410916474424956697825359982719732685150683838546471768369895160809618984859334430374760752041276467351940027528411534599773715333328119964671528490072688156087484342349260768626652307132227171640299103428742620998232644365830494609294963788878409392667356742799639632417720840086044637120208225091877905764287277901287510178792110520363698022582357636942859388134145725346528250194404002079524281999948678841311389251258122762326147148783333544043919546834326922976154070845679200798434297153820339678616700009617848494722430236898057292212196859935412352774276834584593886298995866321804796776379245945179638184906706257258599052148099061392158107265192026872141724027124802837917052394711314126646255835111825044984434585930302162526443530437676341100331002661201072810030308640511385717741432984962944665332066122966100826223848150220331419141323474681058204912901469819408131057554473108450941503465047914213154615364822126666682961045405088941933832561865810729313700438645811866804066674266493173526821136517980116133039152542292631397951024955736000853211690797029408706312439034396371704335153526005051546991884795737114390753332528876062550991633519199392407614296298653451644860737219512696984150224688079964335235102546752709268525368555520240394299909859092533809287934587972096136417076405988733404151626510579451053594914983676931636570260401462925391532218279501633697167974827188499913685324549676348600972138475560877113125038756528962347917514012622344121326153548936496660035447056920494365132876249379666426240695730113485041561685050262498516540297038927483749617436761935212954037472771707649919809569946876578797794140439971823982474772763395973659892835015690220974533384179045683714495900548952700609666442847942505588423829349997674107088465064173208239980937771029316065987914380530520626931458665507974101510603884277011769611424455809958445655074684586958411860041224020759041556271894501066631962823088702639003237934959363030601110150203529696200730159890223465026558738097017979197518963741979358452289138688809528276871038422242015501011273491164994077689373936966345384488718615252376284488493782827015283779070224325053057507480947659525607611404070344205689236932414452531380994787554610996606383481260708742500526428488758527428781372623763659960942570077559670514289381985918011262898886231277373906967714160880466496607377745550934292941636089711519866826699819740007633584774237632597674892904650724579918001706585453953319950021849080650637575197402112897753334711795745727006256953234516601352027383083615851916993155582723234111634339886599254901414221910091533097113341684483639457328673243254146262654644412563166203272358169551171762864277511646699701991762151642003644093915907466778407466681917543425854746213698944319696303216427093268745141300704406613689580142267185457847763647149708592526379352738494643816485211230503225895232876227888554803140596939355439909016576641385366367944989303141031592318505526814099907894065606418853785398598380956471512759074366016654190462813218065258541475496485813245849723502991834191528692328439873277192274321528099278310740283343639499289509524646278405379142450232281916654714188598915882835311922091751432023164703949225915105469681853758100785707902292220205370550385101818027966191875576578905745728902872416218898374591203429679372923470160894341985963056890652573886545191397669548264160659234819571940508498177904029726748324665660306274831961669018331119286146926692928937105726422441031216283438146598203334721251716091887556370662337472662317483491091132371946155459139365329372657797270372980743312948871025701390851663451511556857095453260322858067659490599169349030977722796161513855938385196337147356741777459432212214982763179976056973948977862736462898911120807121596149561205861424237325359910759734822172862860996530297797860399538457163113992736440954476073379056089741979010067125218907069887968461970284138415632546500049741318461298116798781185730609716443534556692616367592730128253137082145306223019527740391493206149310957932742595582489120477699221070657257120106456929160518055899794871790325605782527581303931930046275056348023373662847931197450010037060705572886946513188560321785462717793842821700896923649094120890040840247274255226125726740611378461313289784983196483604003636307907931182414243604261482213317574501341435493346013250536985460757661056947171389096502521749291159482215563113109132553349879131902943291188097280691355567856627846425177141102459397115709453500260071088526764683807590505414100380863821260163022827318751534076151140779832062112838834065108420536327647479820001478526131392245313463314875208466762220555056924184617726326001109792255612496223165070247433116270434326456330265592656329646566831264507150222753922977475692046843776277712424003123712173521269562830877879986387467511832687227626618697694349673684120159372862941148300087292252357389301478904249856022419239015440867221804911692183596293975132022776616503534545793462867864218449660716058991479338271084761716355287111335634123774570925767009804128763031983632782906183900689509285827356845169793538647103194344406841065720680427971879104596409942770565428116158967038739835153013601229128111313979785536687410730417333549961956627303934970501961114163422454952063624134247668734133601759456935505014972609093162703847769168780190825117063951073448956241211817399035418072618497424309078667460050967766756633088884001956273474639478375011917954067743348984563718221162869186669731105504267707482478832291372948038168106699448157436600229197570528596644048885722240580835586344654911098779666256275262860766139731333343591946105349831619978127865139424346465192521182382487013869228260973651788917688592182074028703582243444099336551684415626402511497802558240377754969234457648680594942438900990839282757807110660657581014641121131514320929713798881184890026940150777285427516817865729713815875277394330222031330038259611157256948059003658149389769719595384107182546899383939278902120404156811418045745914948134880716292599849878185071544557115848925409326407885536552227602013620725822965379705111630246873462270593273939821013348040387532323616887940715726935870148694358210352528763272863555660222907970204070835009961963378376381496865528757283337251228202505887758722657364278648247246299503787544440507753715308195791798882938012461742851534001204450606208219924072283990746707103857783685273680964133941579719817384264262156667176900683470732721070952743129167031583487301111580878924032814587447186418552594021630936231893369032124642847006025219037810839969021022979098315249702816158314729488508400487090055567685813865350668894448296259308074776995903531002111066788700855660127736274221114659787669903314574490235675174532077592527608126879604134020181789079690882002684200479364480523833144542602415227218010823568850562875830904497607424505620733067695817150656156222845375091103049654880851719629903521825159097269749335211701151012157027944390896723447670335307060212660237651232028622017362456673807836109789124531016114870745248046237416934597485594143148617997483936157565606852146660828531753368324416508201028566118820226128194063548045385630394431916840814718030540679945757071556243882815815908156432532760590259127535596119548222445118571780495649313193677381429996557702087644754636115028071016453525188864542190823151732929772928800303484532770652123058363538334862977332609661173234175295548399984591068516779083599265775378027763184647058558389161629456810390494735906687811296580421906076562430280128853891626907009966502513016325081488856256365297386008186069754122343771752236682854706432360841437485240915270646914794148342809848570610565353422830239455186970537667611785768988047217253352615047542794883884579715886922291993039224435777270171459982722999447165817036652002081713922239341499021643239683842374848395880091512889487909432935072232078117197232825687335260960399878714709520453893423122309673637335400028340548757181796593129024883174858284121789851593860712280237908185991946839234290949139596254742168056806356664598789661608139520365068448596391959810300512691021519650125716990141926484341673606889356409665157039368692818746402933697958011788985150910820681528800894988173615995045185707115726221336123347167912063182097523693795579925388520467322043594147056419875500008137728658763953616309444906427635368447546035606498198365501946468165384197038458321131761594087816701563678583279252357540119416426590519538725688601830551734359769538700426244968210592610568032533746683914323035138941710125850979790513407010163008196067063139276416929412812296438179989283575792578527805880246605031511530867828720263846223146045511491457318635871087322309044031789675080556499524634131331869174062962579409611384148919185963003539342153748215513946984389121900140583462369995304061467116054184101189849751747991839577847385491459971150441172319262910455081616007814932942867996630571396754928732841669831792514600783821934478681249662190262423538956621511858602405580992760165025925938483286675655397821043335056393531849297663604802292081446343779936951144554061451696126015827007142185196697005913121135316834202140688477167180805885083633761094020355889862254084924118046694782029354150072281906174268375236153389631694823708637828712414254191969643977387368156262324766976512509450592936404801421972952004225274923055765450184938489548133747393431768573299594321219773293741052269594201644949309492642691274077276391885412518902644919198280119189682317574342683107839414473620246298517670229640908999173349332716330497397598547895590690671106080473905494052424302348433543187362723535440707931184191617389008404112922232718527637280995451243980927459540965489104943936571242782266771232622304744148811332705060508339356222602003431126419195754148786648788551977702499960650813363130465109524614338950987871215482027588496093171936544994607388475681135280502749338999650095469225035190601614184741315583837528808300040164931532512053351631316159375383977258629977879342679472796381365665569438920458953850414356740800734415273540658225934476098675647344239298728491383244933534955867839810500502676381674711121102466341994125676169718998611460650445461781556786031346714036469751575590983454415904581465973852890334878677144317170407750112930275033163281046411733687654206012163439847707010265517498827194985112848002992057914289263873038084711907025196957400184642276188720970991469419833869146807886044372442922075060490667666578302456031286136798835549700680392418910212894333739932097454691972381538459422001086508980831929064675960623261728305867865980796504557289193009952679348202783131124666804955892774915769872092816056124129253939254051026807783877634531247354077371583544016511196570198859394052552994674915585041975047601690152815512849604865286219687845251738871174228646389308695508986360420220241391542351089891302674335160510503149407088286742824637636397846846609870933482256067689070910115013599637325213133239963874164769383013244343862563833471833737259809954061651240090169710906433019103445536684153330293801319629656346546979280278488657494779368414005943365214505125721597161170091323115619921482721249994855107172235382131851678978191875267154834994890771066520143020610954188772675385944223084670920230693503741341527686838896258139202858322747869238204464317566556173162636581160493710575411038743658415514175112411512493311076498443773004973978213987523384616888628137554949021280996540178526374707949944957857930716467356047140425621529247100429349464482809096755873152531080806113885323966557996377131564350625584034992992667126673744026474084732429965698397590170747554780350087846554464489316521532226019744514526759339030676508662328574207002454451936555485739622071744560931761178187415086697152601277582859906553872273730135356612987093208730737455933252628103277158990582729670208921917344124192743770909109193728289139818844137675766759932350109856979874361436161194389926475017910680307818942798979738051178130553579934939040919053995592282759026900394132583552005385921041177363357243572200714764102724002540640262996704399582014542184154405530885339105012957020830919072144412785566802249530814734243730346736688058152198122506400934644603224559909817635414360106632576690676284902427100768439318453415292868048090127470194327455907915547069563209631974647533949539490405317505157910164853104454716557613804889703958746566502198684339746109097250160564377250278542223797088078388229475231821961243517109741539676306458035769915227924241685196639175076338233762601254792949697270685126754199208003285010862249550182399450612407280135968407839471703270779586534495732706773769858058706001217304019589432643332375060654793245746360784946152310827972625137247587824616458571323369111045780420882520594620023544683095015336527087973817529344678915573538470201048520087892806101301940318961118014494714663964710077573157646222328611494253259064615553212453747781073470783484692865713666374095122397962766545566902721795226736828510155604465487325315330867772740284749593573698818147114291152017805055481608074716137489814550278627788194567018796233075377294990323914063480792251569651211191668931252119219727589374719304808529094420207410597704974903770305136791913062546043670856514416210308294816784468138885193978424635481588069358123969696456103823006447168359005094656259585219555210889681667220590126871739425416966435670844903585054464081788892614024983689029600324675855257724060128233319751856184193907986621117091255648864041951112328247342729152298013924199942486409816543726856480192832001101061448650525410367628339045196087362268153370550230302505265464711718259499125104665905416617148980220761266663487357283828349759846022320962143463197288647629671769901535339018910560507301950496846942507831065835216580569424170983128146855358065084529256006681786045584215297023441603495791736151079694396255746380939007189138286371287970303117374745901857235625213143046634438178434641298800725388474994609042950912610671285857066570917266366190114141301840173016861304885454008927320850684587088085507643505432693854794878600345672924612789839311844770746018865113785263900133316676569354271899310362912267960975277585733046781922742034742459528878448887573219164825202498219482652725661556439496573175571375546011512400173133996710226503921884218496567405967395273377407084622371431477023393753138043589417396365927538566898164105560288234476896735092590842980525697080745149350082865594819843498094293604323423212413584040954249353236726338775630814679545346338030155132241604810085164702601407022841204816442021272357321508858847599467128596682689572186138915715882164692444202067428258652883444845992925151945313191102864120783934883736312354120630710574126448280258007990824498990278158920137800276314492594334403284293408378091340192512294532699289089119247573852035063983618701283420059004865722760560788000874833980392847229801769456287531430881190551664621672677459611128737219839346270547907758627484979647892958983817396023697314228596181461032330370494151872301345016918568431424348763227588982900307642080245169299872716697621400270666387906898747165749464149011821480931934725765737430783301182646771475837824344949675093734854837471662400337250585681949461643356441138415846496534799231014451391824478334716880433691199222489635712632966266879833920360092492853799971871683027768339718245491620329148373101656929982596351096285306452504566399134662251835347068247824350139447190179481737338939404719140156902923729291161610722086387590243800253672909794163449411665384601504877600401072070769042262144738423853246933975784695984794474396685404956318676617951857146855294795709270170388667762448508194155590366605480528971741509160710480478819694726336928062815516318573796974577253749734109539972420626450403684245106399485728753762302556595724174188215559844198236902134301163152551090142201559504837481904510584567569526833945463101632825384234659835445122974614641413217410794604644334633268716870626798369152863937589776507954664537497449083113546909011308037816415179575678752230114346005260536388887634755489819231473483876598624072801678772409049649882901999296710266519642195567163101783521753069488233204580683856186004766562663660884964488558972237076781199381890987984432772238831781650664288475521435965189233933157112800301357175605049173975603913089144700730872480337039130493748480269053191471135313992893749471222079630415218581337700825633859147065870842879418966473537187259780991594667220152357231773743201037191196297083626133111513800937460574304494534860779190126209940251763968494278049474630986605914189368385267299292670614589089504787552802538549191834421339578755442535292867131776860372410931086809576553640671964368611406831045002179496014109652017285575949687849420458029686256067095714039851518726191407863600885558391430958984348128645208225349796298260591243305320144536741321137133272850592695063092311731090876155232971344437772723919533868719974278035185340493904013528061943725845905887108871875842397586615699037582638719417018994851992783998808448267844676604845540549240514788511010347417881323790143630440059454963280728698898817100224224930827045519159552458040276255520769788828231027661970441912345305266315956099851644619864536071078062519605890028700014015947890540280457237138882350723476773187534880755244576471723436283020765419658450342110528168837545136226618977007921555295899408657017077703338749727097718634148046895944931520756192450352445956214317846833723072510727625026136018796764654031202238288733548869439059291643494855426870234219505584268108661948218311168619748951779153647012411544524142954168532195271418245635832547966244557826610567733738466368415819976493395988394342908737109641917106789226329888674646308052464586991749665325002921123893580046809965123199668774329052146425117778602158047036115154085603058823529101786473299763129956889416577798559147755730360215936340264598912433960334683706938064731815372060758232839930834444049041779381096282155233645600880408301466638689103815449764378805565008992566448890709376659242995080152953052519094273299353898956551401984772943509673201901228991018809511180361379507490645998006646789345075075111967745600770817098650900721025952755656378299005723474376088200313223817460979855353666740236423528592861947033385822371003253094101431257734429972341380939365656052327168068085654615413288634243714078897590804282340388455971804845911079150539092819769182670057551438037618920411302278340014492835984298299802641715701950817666754154933484940310037933978152445914818194484993061755329400927447648065447261528044511407981142920460060411626887369714487867341532205827300670416995420215526486324684866097663745495066486797618085868821484415431536387209889274924279757268623583550551925567630019867376285931575954359589241444590583597310357904215309085013433441379086536690120040324086471738580336576402959643323225745652428924150781040270141511745541848020268463895601729797487385685478062621609473585072936487538768129214221554786542229201964926652521968959180518571585341487902780203491113464901097267465776790039341891068127579485182072798550803562395776571386721440304470979239877636352505424875981492193872097144876205712803932632271585140020102798360748083643022481886005500203444990133884086116999222227558835815024966159848728691809828619226273190285172870385397738633294319179821292155265462519608687660369552773489135670137042634518547747202711864983953065560213116920286789552126483948828816332092848501981958424355360759577303813874385101751652643830009849784646876847206656110291721990786997316857147374932519746165510510452969755023991867392888660767249294840834438339616535963973722972902987416060825834541201893215088055043938801832600544775216582215846951894449617236367059155274330602293426444576813270011776059765516492313649665321289535963812434102509225919534404186202548050015238888058819423360362832486426166418238033712495987862342478290286750165377269715337372541539346321410794499786497546057356730084884426940556387190786606584157718850062020855422617291363445065858876376407249370785558403971421732425924203573713475981967310945299234621837672203626455359856053865168878436870392304336795263486669977443969178039640798481886690640559135375169079267079854924708047095488489833274443599893088052645833127793881869252453284427225494448907242531147627767810393650140188893983101328389948352770649315202090477270223438687420306275459327799442806393710482474527855660474055669970706513611122622810128715569457817175833797188792440091118623269011555297564483152546663908753729946271249192544536666766534449850521885663734507580025876740517317049715554946248452511622879142062680784738469943595043893003131483571708201100844207486645438888642510270919364376976487253696663499723151347291579199220618660847674726385950618127611800470477679172158418833949831890078975910483452737134920521494263757640658540082253942361606409017656634566085038575338174432324312729185815840395021771397768179277551785586234070693992185564135290942865962773373592509797104935634142879133726956030308272387068022215111215723673710225951186800969417934567727640182497740283290549215021402483883353464662175211481787475601163171288415248009435795360109147095957238523207619563639821194400726822006386436132277367783431149085397395164221889660139960976165385297918463430654949957590736190982551852361663900655597647008074057613785637607345329683252962825865608071006993977840129246512690952550979855903671957966404863330021745016582165219784027703517083188675945601379038714649174940480503801593502128178978988367878223105456566855410323204864017422553985129198314792565741305153646905613236837735470273396535088407484046891833177746246007895316523082277280966916762859245266071524471078692379560495604273637234725115355854403675691889527279470504339638086179452116059458079207505398598424555612443877753793675667872766970873292915394262031251728099589874710750218858856813832592059532804599289480165327432187867149941450385711730160180018149933504079583165867333338794147267929994343900166095786589995527559181345686967646679589751405109517923282053875800303400445480040291607557280506297754810695152048185017575852480373935095514787917851026797864602613626347745646203904614082444879132881341432446918271981768427755254383531728296702515519298641441692196887234888141592765823989672040025223869634646298816782661773660357096603409802081624298241457915096933657147543849375775380136773415452294898616376689913347218816529395124645108156874784306245452723767059439454881062558238403595228362987774922172315652682717459893314796393785263184365835131237610890364041309896371914184890320964858262084976026367191717013243409724748433186191201819565879609740145993104441539925073899324602255879147155922615572922693846195008329653817164080304530585955465276960658345576356172723438823065334360974834542745420824576600899076559658416661527852235993860846312066006021832044784835888663466069704741009111445975380805545699683647174646583573834093148621379138546805902557471020062263000772882751157230795639328546149822269441822860043421022751288035136631979429935292998700521580188420734057253684922309333399294185871351349145834529595957442969181818659045832839216452442221223824986502028447802606252681344284033990484591265130439555586987717477369857037773911877421049883814422117569539916509979992450547575646261486235461832365064011244078266227771280978584303569073447960185435946629461921692483670847368231969500989612626820145967053521298121316712894747223710083319685611434536931677119947784255790796474877678135920200355456915140698905283793193187758453152291182597674738574087391857395158005580450431389950373027044964010164412937024177451172353661320355999130171403971144155173898496983520548552578237761331827894226804602183821426184892477534082630481860444752665884065290674754711239612893010448404648291515914571603933986774565800266066620155943679788980193654460429610149487228659313472845094099976919306399110537091803465211499615803607127885930166399743472593863743897301433251394406550818011535384519622553890201871556653923419754776312387481272728881835264094657108548640570254588618523629610265709799369280865693149280063431540595832182202353236324484198247065958454134666183014748136422426168136414940257644474206494661374647867981974322631425426978803128711777561273054464601290711000071223836794335739718209535966165011856251688140117831254687799235322237790083558777671597870783096417754091298499698923279480336918071756917135867121066678725517839951738948866365941237062382985632434318314596681913570467639876082293120581392649156868318186522571462182633882952355811794607183834141108152454328751608080081039146691102783199146584561367069200876746063768435979532132564804814934565259873578063876488360255825148852188949887791560035748316353928170633742451791046161958166037003958726710084850239479962361577041739870621642971208586467857395537455903987535935457151437894875415232011078852394656938216789221074530728633172543870681701946689424309412354900949988921358284765481887300597256023088076391636466914661181670676016296312062315322281040628123878836559749843756376493776162504207881221851147208806384374318383076261816642354284250897076397644961166895982526841552761012952732705913840846534754048530013623147874575729050144402611257291734420071570514270713402530943721779978092934800504832352344007007921870130957174056383643838389861531222418389865629531698348418913585939814536879280062375599274484298271735397298889316473851599037983059889409187697572860096069839561078063877410255289968609890400515198454228573055358260118717939431796489708935614983580874980536406962718878531387040848292464072781375070529847910975132032484534699364568540159771723792222208163365324047102866361344316103350412564760723201312478813961235056541199029578073155934597924497498366889709906826433820794231169083398448939258335794403631117833183166698241474022622806935657214651116306939588903575088863744483135469271163095647550227218753713275144732707927875890729030019403432823906744174041877224033362997879049930189431171232049891043113271902736738706302407319506499543412117672674445411718157305611108469298969275519017601419490669658085933327177712595402551559795239497815964360932526783533085506309687027111852524585614839006235699409871503455111471230256883716257538777541761961491953011837781192816570029149173780558775497798688517291100736520520665526924189647756997968945628097911030264253171848627976891289634997478188067952386270412905278551049661133364683323091369638541249706779964455506668555251823916478267426494895267919078963647572896093104084227318742271988467747791053742359624909133474415234102513514948333644076554744887615059291679194042341917816361198927419426397496275474724126331213884691327190651417564331847816899462886072564875753622021365756593031940210216368323456158564908498573837247630240574125386977744883743055170178401230372614786430720079020662756700657483322797439611402648312730014680891439287191985044027821056209096863028314867907848108198117743789318237258512410879641491319510359543204820941283622384353314951103388941571359501582278929928884220848623731003683293016167596711444881637291606689069339148147100597833114180919025860500087420299309985116821730005526561759215501927571887215818412578478066787190349367619245260772782899694091441422451364492134691507689834558027172781511109215334201648231075744247455400302746284644442928355054863547249248895977352300261175458288827843137659520770757527645901291481973677010194812351502547760745578337740633648965010858000115013702693354098946571415912256374584351766146041663747699311793358940784341206270696967050027478848179592777653818402106322474638644541357975693278682916167055587348641397234569047679072951338656086140208013940053293289456819168342750917283907240858689735589025386938302203026773591012087154629011494965302946147994387092101410844790792172496863832824412479135680755445422469086760036960398087703857718640258041465795381688566705803337108283625362732282267861200678275561810467538344270521111398982014746807497610257526907426883834105751213094275715361241006429967554404633189013607351722444920393449511991887266512146728272385642491789335797367529551200654579777758134889063641495564504350807778056633345290594429819103457507531223398300722780225996031414167668269702951764303190402764159716337371798036879206760618274910808459159060232828613855543792948097471828729630752651853353498679594373978095351055316517687216787895391121418884416079753729625420244864553392310284180567725408160076528888516314630110437825626069754661931016434324697808487653913312688878941073829178467410250528645673373433818454731060496506505007301746833383315768593787335049368573932694682456682089721198968400394824908156044395167769060530949191862925087018568665697365952554362193048190046860142869546243558712974239615294062043911130244704984897890898394258862822321629062374670393259501106035312678884190967282178565641001179430902204612258448648484543336999255359195794606924720792726851448710060486105189612508328353123840578580188965842849209532413546328178307191982182404664091460778714661233381878413199955541442023515450306253021248885752156339490278945522357001380325621867235272595481930408807868463416086471380771379666036366433926847686793569225147420884210242423311579430717990744404667296638599811710796321918556613807453493209831704080104601533756159813427089146955595695480555754815447852302271841816315219905035551127741766448874640293937414711942125396003745201938605881043862108787810691554296144473948050945614473233459047231388875194058583038486131033967983822501364744185436096512707700877456366017787125091609572498881084007500363911034114277154529806475319840800452130413553926026867760941636554473077378956511450385263205876459177682921909449764131770774674735466550959920996612166899156932227592449960660211730236600138176023314086888116557816503353462708957250178745454785285328036052008214441043270645481174414828708205252937933810663560050744299035896524631075835334891338430506189051314270779759080591238137706547020899748778600118019259014630508705344769751525515849737176485463224285387805894771863373778245007223851780301484667736872321610313487750670688940067573961106919769213578302185908780809160419428768962259974391185631045322509067458214875033173541294802867432059700293051090721105366480380555382658211673713969925028466583147123694874586530993527107222884962164123784087137669233163138911738044536387463449020267153283808459474861738517170683986850109146124026688724788226939138337399002542676133309332140119328429403701190441981339637222782946517317001097780297253519862712852802502916923477158341216721363899689392453454141291563613517012724071923988138352790188978119420048643013798013753641630692224319762915106017744222421541720014567346318596952051210465425311768844166844313334667748235293626110335855115889307671399363232312593038487858980476306848965713006579783666945181096647620636236154141192219130568634528330187024819028850643098354955786346169947650814878574782656663293806629143531540425981603927388776920115857849615218565176186497812030779735495524521770388237968389878730723086083447913673466723447391572818360969564729240115519513096727098621277155123406630142954007458334089735156292195828955718681666760793838434932609510596722926773896565773509779248403935803966652825843085189211568776311709462512228407730952620421132254049180088138733243655877797532905095817565142020182006951012859574365069140201868497077182411884329846161025179393717781154797505615239424633665675312648376501816230743539245777210599232288511169671122437253346278826779214961878349626626613679024261669426027877585667902999160399332102023025908147678047360887061222250667919358540694441033549556642727907404392870349085423932423568587291188724332823224031566455007818490472993215274329922895218229447233797384849250247888752009261232729663463724477462473279602250364940810223354246441864524613029954982022849737111459026925968948874404362058660543070731528842351404128547511223311291915948708661363232078039169349684030750975810189833649054169227344365100074899093907506817574997077532412973841116105343648704492195508008389941964478143292317422055756249011976690688394764191378351328851131491969545632833692092687420823203708381266112742155250449950047230912247047916828924242215767076368232096927631805350162173694959707517028338876444561015670910767661378821345104287391820996702933083151822786566892475379824260826167612220028812962818430328595482161043495339082725698928318241769947158380983726532781305030834997170216736971449561704979085660227088530808650944820438646485347632574989622875846096938310664486520300272041725845100396459965270306482368297099768479437090081064501073399677408441597325867829011823854794284115171676684546570083902447923393415107002700023619593764302292359555211215957058026086569081680393982391613200212845535715333979727530241749095560999390823998759022354058531426250017549275681096676462453608420779739526291696520926119731642537461499889685980016933788143977671799361570118887742197147224486712894585941703000824159685450715205371427566435633595596469142534282358633615228050724115799585051180256358862767255580089161320928655276956732548008583916932247266628201584321886213530346436526477012716434433748838668438513258277114938836289859577576324321890617153337890037506284224108645955278244598602630094371873982235935608057861883738541609004782949564006031641934359398914474463179835065996117253770442627824378240133470658134194724744743231057047672876807710227485329267888384359330947640732485058793170346374130711389644125624590073853214926680424229428111975395993053334775938683179911838776125806864024600661601316157020230071219623501898411645075936976334101356488635952789060872186000641315477380761792605425186974016651289660524057352260282556350733349958674413418219947136287852090221526287030872001371488525831211168857447969718779635953542596046759743614912002926399113566444678287809362154821160503882391843030581614883093704286444784508240669977926306477536480689012055640881555722824166190004212016934710428451348966888157320238267157526744005093681639584915418204122714068130855607553976336689609314141783367530272972231648322092256690399537933879681394078140989378859426124453300894037188006166022982591735783324614229244579271905492869645023360553250167298932434826065529983267593510682246873635877021355536978720584274267740992664711783185088674238839516937023631710246251187300772803894505620970816732545478403739131090074144615254574206007064912101921858195332656791924316935585122975969964081243876436071004585872609255080584055293653401072221714004232630402763166062413512318453173270540232645121956918719944841122360045140478866763861287048402265359086283106116864147928525618457465198845811653758848037267468836467993602854951353979489117854933837712000918214128597873832402383125179780442735863484363178481050606166768603726268852798334346293219972699038515380616563530372254643305355372947225400255294323425523456119268000620969307354143397875712558521800886554210243987960990843026690505412369661629412361273566204955660715077552558505265931684571173929548912727905190871270595710149948619623795293544124722170592317874682856193570953198723296211403548334885875625490413216704852808694440717886240823713832180617684748108557661366964188490111204151152043208457679337252243274685493190096118690220877812583646781555693926151742633289463409060624405352901710424234159650588930176714511020705130780944545436690707190236956779020001532800391873002678888118944873936759578339726959960532845003796477805959919935213390170956543989861359342238085580409112471672718780857065770480251512750068269528296647779187436256603330396227029823531539335422464542816441851138526289503298487405597641035442595332992082174394428618286316314905530350319109748921463638727180580865860894615588635353071795536740855312992242504872955536913740340136716277245124022416556589624930028401015847004434975304874018164457610771919629223780817842237902989466880666320355436487137785976679376009823163267648461064803654726291892335540637103298758528878321796361885769349864206451799231036120570209083592750141440662063243975903543030904236508446964759987072834552038427941726534306418390827983504529814146719708026357950038457793649754868966326411158032927908390733617281848279134177313445192122213147868795855030558990409239908731801646437895561695346051645929365489441455756698510563823609714467103321836825344449756619047519471554830223345821431020139173307919766448406976663285252722413311429932819331950807370770784843796925320102374908721376808306197309735717868132881630927210961796801347146121485895779747123436144020005312993425498624097716793564535837745102036436998870249900165691121788519140140556545581326735670692491838798132415084806646878132512237118283255158277545346841247440895285750615147044214241472565236440643161614111363498522920721578066988506552078625406261319929818209768200680553894097035126195455343496011552845879472476661661485217299688127709381482973853461440928438377083996639196280671415088751396321176883321160830248835580285596344937459057254398251295036816439270776671465553579490588185181808564480127656123251296712421349965015124825242054396709426789842761547637615331088638250306141427759639153882562268746512492422888736686928173958694803227636986489610254338427773156549910084760927450888715537052163896953966203199558499489821225539239546509953244907503244624811096545954038025215179374128961825337665359598891023258026020060969369530384949349195831015868741808009361640238933994949248893340829557213843448474356542659331480333045776240620236636192916392006621798943249681304606144091535955880358060429285025139673851877541447961567765189014882555192524957320652159870774758713357250294794967210533177606195363945685417068799332020616871507351440655627192273983767571288040166956747133855575432504198126089581083488289098838021049288734082769372758767058463776487079839490516729396740244336971386822787646774957148178317195444028501937049357824694536401604871294486725460723173841233209167411921640742844523093601849561197591848817025293871339758404397856762532964801520293293269829253727122499895372974740967222193071954486123590056960567533211377987474030103341430678382407666763035774653786198606917697155060515953484984754347248335016657315331245380629188951042928326462329172918346182500626822044489645519136513086720080014384454363698689467417148596210443603206949411140153396366730564155010311028377784099179485967597718749535787350615757695815099510495933862265226595980509937191371878488130022317627036446681640642488946660931169585748346014682761170257123925571684582917945409031641002736397466667166006049216952810068025616720602642841506206297709594839448439287610612063272200648808227018768450306778059084069935418470862397331835508305667107566928959694158911010400434174569186432993147125351763602278685751083875828888337779250227249429769671234602948595662507433565757523725327787924879555611800718191588411025850807688992830358858914919354659359172003510731186019113775387786898092612839508382358267927613927351464812947455629560539428022081478782307333996667756530228384108321214711787529709800200681177751205715787335027573197923478964115133764549846700393882642175101643018670624134198246260938413139765443261055018322122306619277296533973794170785513239933500241144378834507046490574279100858304839328950014888964227516668937604684762876143381602854192572970873377858562882297673459999082006914360378196327894656583734610217276230457382474295411252887555928303138644527997216397586139385449011192683729511300175973162725622020242048057314893206823660038496323284580722401344237543025583771004422234848247321058222565479532614799145934667951982148402083766514466461178437030771775378460254105611885306806593116438760152135271414425108810475152885986970133939654287149425651713283689609247527208712251225453589493082598007707547087496808478826422627783303050187627065864825872942550588561257070520581655880514234741375564641443347829963539070477437612883979045554986279304080241301802107512097239382048824470675050336202815860980732561065084763935353290091734647711451145233125094067629568533963016777784360860656856946871895349840089827601008056045665154339309909638365469982247976523040463860870772970130516970519561003407563869709855221757649509334503526807357236843393878899245918488732150127313848751288389696700696926372383185221093324627575984545297009737089721956044880902153782896387668260452848700701462135853098161160628453268082132877338854254830828211933562915971516190753409220589696143751316602119273692261839143582718360736500602263735491915192962707475407611354553564679386142094345810809455539154058431528791207044970727790038874730133859959060551443903473016478561976683522432839415941354753425468817528755034630802346468287153061778434636359380395063343472448872651396790246834358135118995279944249063162393991001752339472660450407672944555333120297117014394284720826383644168191482402668565471174618537185590323635747236155122519718069159372195726197473577347875691799345821130493173178750479881459407154756240569169103214701226330118067845095139256569837245004000579238417626858732860031013910732398550637265232626218731370269504802283001549589728529677285973896057780971507670336460256804464086223191676466540426858867395027548208766626200111567723043800723122110702113557427999332823844982804561165813483027762188724635223830188053431390766651536335247126499221665228526213842453184979345585649312153385661905257211410108896583937465667391821813453114643309187533872217802026331041735316806276184460459866808581037054377910247294480734774336217338639294260230102675653227852575188482304694068248386591288346747750738785097388346850219132896837346702418945050396265283701378374300135657725544161465657750364148171023912627819842338713611374982319093707275093931747559311281960155413608437346019190257726204585348689564986231350876487098720043585885640467237450453243336834441613085815691938674217253916046038227431522668123162864814543083357388721139464792368171799335756260746711834433866496092279376045999676564897818413059441077915857694590227327763804317704278678833840871370473243746641503217216228261110397584866938226600553332063309806528576882933450710604439639997536741082524770342760432827473310679109566178201697044638080196576287919561754132690029440511799155259963160179351713175703363714182002857814397004487497646177104055433841147967891035570951115846428871370740077664017926432711107826863697930461879975359654064694817200034360598928639968055250435627404832669611887178722918278941872869409498469053991039938786643445608399034958069153855599217871534757826576662452461507330465557147257032422228626048873564690462143434817799611098283491558583298450982194893831910586331004385459862672623902389146026776248275647824367956916688831930934836188176692829796239820982307937467488689332023941292796978625934238982559307801473976688148252662959341486600256311558150763019428184598540993251350461433783493291592633165818976192434268102079631028489028466331765104404118428904857217980725559563354454768918784093803774012933426668868388217326627376413719709424530761913269152476297530282600746461282951321289493407103330295655878168919208270314531615188167244133211569635220355455866414960223755879399282046553806331194285072531664891266745784810480488480560466203353662816539292960220046100362455942437030326844210966928408561280313887446771112462716288888644078040382893867927485567933525347583584146311662036062937899453358901005494546292789384393339650994031385739049612879533923939498893440892078646420138920444512647770720880716898549215818441742619792830714150535627054332658100430121438505684745775739264320177093484520954187419422140290394767885930197264631777076952696796539585291723911265112197300613208721242899571415560561916259358259083288958399152345811561893121959024284584381295103915164918183460529107369600120829957586645320797637792750104084820802127926401557816499838943987173650928054432233477660373013459799374889069904420671441872483652934347100176788136683996849035033210984589169179540586188050737734609211767489118186557573063876710354383321748273883675892021648880345611625575981952071456188068611811064690796747938069969700982586513781145699799420914596372176781880147100899571240250313231724366153676549131038958730902818063807987851404809610736485632598195235614174296002718226825003968248289271597742091253111446101531573340697039218140945549263706018593679600388667284866792977346001949890342030918507693553915840630152905697316035620907252676131290970271765293142422291232215835312621860817575017565947644352411879240859954915450890046052937309198581175490349625563534099302720454068061675744624181695853014173437073462402569346543286641797862256117375066413570950782193057786179194728948589355776263357718319845584019726378491320570141495427679040455024441353435269625673396770360552355167765928345041700172587515789170943351732241471825152226586378931752020710791313657900092058113766270595853909948935551716125673813251746078433038465342858203049377278568866599339943199820737767491901486777837689313982627285037691842769271415662974260202828270119795435010348020636939320676433805421339919184055922760633100681947696141205710547129016119693727620798178458105835534480873039326064423627591071989980468666033850252373400119491265855599339030530331915087013004916405625179023373379473544897023486920916949935242040624531843289328404925466486625617929107283944971745793242067683820067597247423985926233619969626198081803926042848610311668871110829710485819110340073251937035724100181173076693496987016154298400888382360637311847599201150011810624049999711374159093926859449835478067499808410214143115527583743095700778649733607821430052041881673333088710608141446388710455434330964034618684359078605702847870732521858953676792228210136100346698371433322707402424370879778355273468653616068613662404974204318767746177310720189604181415944175997371546691455371237224201130745468894647383789431357659849579851705544507484698002230191454858019629731343680904482132127944654613896065326680289871937898082275240596066639028733262717987944319900578765164895235312350962531804453929454048784077970731114067205944330302229605310997447824543380786815735350734951389422723187301067614666825227214703132847930387685106438544162376109828939587250663411751415938104493666340211242968473041230995146582108746811620066423011352262126545630885207799036047831096807157715589084606844377050047692810498953847411706307651834909410759163131390838424169642992826698045880273242782247183381412571118093409572993782832207885517972538363086625252383180633186456764771102276783256946550911263521148455161450756748228477544351378226884486559341058004530685622599321710272311176025568645670292540845390864729587750843697453753785906412905494193329901995832596779246487466592340431069431911997245230254236356486750733980986929558053687969171730769055158170137241544717537976396806036825094527496272696889017903896004551104422483083452007566528252232743254175464968358509443996145859605564651635522228280197855463885224466047409976584121454672996358782007078995645362525429847699466473155252501306885714131064163426938070044397368490146108845140205551467754302353830532236419210050451028636294578661702093919548312150098590069713095068488808222603433803321572426165833224781936256390086379406396822857349107083937850557087376134593339293814904474114903023317251561405418660567059501963524629200311385456981522780076645982670345378865145856765639401414783521140252518581634637260593541465868462552459565905681806543890539841638149530060155228397061710348954608763783084959379300605320944105602171878735417739546220822937927181418735977734337326665390819263186085892934527577119079534749009636469927251587578029444225893294150070861879968160572524566340391828822361417469503248582313566448577661697032118309390490787461530166983138141531539265949339752748926565931353128023644932010486261626496512348707161838488611420719979006005585593584999959557514442788978028229150933407588468125373343872214157820832670699435451749778630391249115112774466932275308624747961239622163028709101364962423332384570851842245546135869164709243207158017645967874011528138218251148613311327529694637402772741147153754957416830018932244798270889467045365364830640488664729524794416810784652217090732201980381077452167998413346201739655048832295483214651879052514304251902554780670208739566180149379764870484848359629891495798877115367268259686749105178486214039670241265394208830954913335590282308456713547252110801777921696724912818918506616612188799879207966061000659552863945421018072401889716672859787937618448441454784742095839260063456013939772033295115960618820602086289384572311652046038882035537769224929770330303304566359912675444021019824937964386939579828623424266931149321104848624556429397323843148475021650227254301859187391516639197116808610982493376269177819320137948519605614455276842279422301231320537739657636283275041122812136434468821514030763757595426763097740902054493967397042404633921546408523534608737910666245775827786520436005964924312698775209775084092970923370897909832706312734285532417332448042605940654788671490805043853954981708185425465981796328213390414852589303569035803936608800698440444714150409669310925182628119512685453669589967824315286464971016255605825772641439591211540808253155343235519613574749203454217799658267138663020773291723105629163041605028302774353614100037945998302474432287213719582410182983976465916381036517389983263357422815897686358012101255329961589805515502595493353144283061663388428169177044295854541504366154089055877335528323761087123016106692439391207732684885669416650484105345874844800533982320288366373959227711882564619839275554389859136356476460605038424139469045268972217091272319993738436241369371514899347354649634222498976047088177412789219162177517286394862397115181138820804738825851579961178705577675125955983425077622191848635540398836780677024800723599933256643801166466446787384347146708748936478452615634195219992223905629039026408929180502888616713741057405414171140114483014243518838116284706143083240046475785497694261834240830642700287077891681190902402424462556900607311598191106411919051002604030402843502320869399577427453602793590325478273627163980330511129319684796229061909274440352309758545653868309420564426678408030807716496563430601775197381448159063178451036649739609077955350962865459711318129829930475149591807467810190822925245274174464867327461129775904138770374354316375149866733072243707912526379697094377540801034095213219533583402344810956211837787971055606857877462151622813462308841321766819259543416104390361715928633610834281113347159283673894688164150350539044651558766320934839496468008409793538652081541578146104537586477505491201658310087468771952630157048780706540040999807225508300282479413659835867716520568467620271063066640548394790770202668129510945244526360261751086369507603153413235437194644624669598718138188072692124626098266722664994722573746802448353056630687413123446358347302089257487309714413784162491895387614347978130537760183165422724773435668077808195290765858888935248698521847484532240753406072780469925139767576913004700705095363544250234773637691096970575185007801961044068279578974293078564009962621432897958998239542682912532749010389480854993926658212486381045595823047799624168591109697381952377247293220137461654069720239712267782986014033554539105298917510231142308715305739811650433016907760430120081722914507808730608106035824388640626041397953521006848129228236164346808016575619998511657954920923640483547788265614001868612730011707099385870804925001303374107509288693609159480650087588403551975301615553261334278505247862239340984080386162711281741129166446815110621088090737140213376831094020642867393540076200585536884875943995230774308758688362959488865792663769021367131113933011150198233604079837823163639962886258350762354547061611421343905442089257351818181872445795275426993807727750323196489604465636106618217511332572368910192029795866067749518065246428266434730515653181038073756776759693587293410970771636520742232352933552879290216403460856918809013084651197204918102057662291896547053156476402596708706709075578119239982833945547710798285082273308068347039874977471611335418364041666755040876659775336535361568584800653027066668703522084186106026029896670306552667005909980281756200614964865699187380603521298766831959815806163600522792829706290534529443501277735213736584902416693471245422562662037315747776606613639094996491377675871041475645321064785226258036893225209046296742256297990948755275859675731194348718766985789571975860411321095176434455658392930018117519818353487738193760934503823153706194946470990163660260829383537930373229507700575690548684961846374790686111785914352673820627532582166875274695235897107494511332640148461154109648824247867580474221601389986912444224600182480813965080681880754989209122204630731758283932315794278431646193325391011347054131772134603470567771250445252391527889213224550216249109751275059414997147571024970178190039414063009494788622728177836116234357255289301675738889493441392647624485093269301306584319142202803020668749187382248301576627628744860694467466055903599746662803176409795131937122759277653755023879178013716445653895530864127500681892343349836224546326020568360994459821903096024931755502158686469976441697033924060487460894791644609112050025927694790777208569171077535940449893320813319722104581715978228280101809101110300856608555374821290633883678507511892820923165694469153079814123153498948650163643840054115896706217413914215081025177822110344346451610347915633064651133172322510394778629235708002964420497266129364232086946099350490288275870354380914342426089610249966513065221824333317853645130276055973607248328178377317320579734494220005977266386740651163647404145205315004831358134944122069104628247536826369491548422247469398023320920980462044660806016094079016364968924622019736472858853275487162320122185674639560943951310459847139375459727285352137592257237757860876762474236101008009834620793691963724203217987308357311675826538319550916686221300892801624257625601648940303900883665084979929424812555339580872566872184142819193642024241867514436860162606256228218807251182321405956902537532819438055892517245339387927422935550068768362324636929699193307829885733390670816548507143705672688838171505363682004839921520924811482769253736569643657476728512376994267394204414794828083705248337822981729954249257427209064757265282006019608144637881060585105737602826671394061972601562392335853240169072198122880827421771869738544004822400670375173950189830507663672889189133513468749151080753746242742246987254334594966984130552452280481320458180243228353028184684279319873960235715817363968695730282764328895213428009678349215835770230039785835992149949801615715980007988340094481185408909658961002078708027036903532826871816449819300137531717754634322442824332501462038309857361467935103968094820562963185825497206214523726972461908757720567885727621702040936432990532731846533682512127721239231745275627617339524932891779151421203413644286966424360317561226696959799932779520662576101800856678815847778391563817749340345332968120642870319629147227434205607385631689436367688743656514658959835000924035587279407873044353318216360361727428411530506094368680325963128912623990112495298262930812882928198775448560493763641084713661874394773785899443848894556629200117462958186731238309584132921330916062814006792987117862747700483449551267172820717562497640163859459203201611463856050215483560629921906674609569143577772659458084174847240040972691639967269116446889768409325430208402020219567676683582290497439845849147193126669121421341351524378291541853340895754949058100178377262740644153469921793268861806354887531207905562811888733797292306375498495127599632016880495774898003914891074369209215990167426927309175925134559078445934082566554189068519537380876340432304938012674541245606526689369127098110753718211397730613707961617415377196829485120507824039026660378371083148673404585469717626935852941637498694211260873677031800234140884915745913466552286021300790660389627905636440297770159605541570366690958097832924633126905250413026478404836334669035200282691696465530162639309456415386663321233331377631436871098920385589339792481827846694164621022724883364821732769763257214155896132566639228786163723529315756023555479429393350198550651639559383476416717559290817178623905332954236173268585888292069553918260934174249955198232807960835371827494366574152492474434048828432108855003757194348461051436826118398688885851822998817833232129103602917455571040035529376642329319267213767329185138467617751772260741752711264122143151707037169774011112855160977401188290200474999779356360307725520830941715450208099907987058679953315525003106167731789975956025952818347950710668563559823952365984599165912952057659580012935897745378316695731263348644616853621644625190463758092311676154547960203103510710865719734517660394938776202101368463136129934036135527722703169312921348918396902260028051524123361841385195840396486323628424707495077646604884367444178404707393187830356411241098455674574423024428793216709080744671472883629201505439518926708027868998551550445865327891235482414793877121521421072606065495936132078298845865692893871600242093722662035161667876583690285299713856898429128927884442312866095902794159099284540982276955939851812078201129992596542460676122482158799729280297387655407694034036022898406541134419178727837567213572130705222450477882767185132392888422274827462707308576498536245077280216463183882340598546640266814455228581828302801386839101504192943115113266925354881303760832352484495599269100934382827379071007303455531989530965179723681344204916291277652253689114705304890845172778482857091219642966278304360072035832681609690429124400208449247190527373003304144286499210638658471186042755725358647944891456868106718325448465651480912699105792123082878321491811837891436625618580319135585117842969351326326246198669329459392287748681779680513710640299100952255791169432357689553118173234511113256647931102560763995356710800194248888555160833503698923349862223716422204184821929578442156552316530092554997153600846697162777635407651697895219706822983001360494843958882426228793613068361733435906003631575147186725009429033519970790933166299147558491645000788994032945461003457976779768886540934872326311660726259852889704736185420431545563887666993281898753767853718043724433864655657774793878296977250495668408944705868959238381999442741349958061376194766509903457940483234269398153698146361309812698679727590854225992606055529399212747628003446286389071006538633606990856270865638261149373257104978979640197008425657548557212175351443161062314600411760618922788670189519346205112719465665776589520128462945649211067657766808401630301344994628275748964993062903177360089888449172282985931462766361383090888978864823321206106683694429809540766351655455647983237294129511931446343304564682126623462403438016632686555729176256372032207563308016776744680989301121297158486645486724932504236421856018814941919732757567160871480372813461040749598586570921765187135370860284855152143573199392579721365157127879353558233730026387815519248388416416759593237959619624264092194870352898179340407343128221737261267408406001409026660563337977084277470784316007108716661044026654452393551095769836860930012276992162175480816370992153595998396237861634628987704106306193736940189713496834801910701374723162749944083816948207857272861037986060693232725310787773704112800079276952324386844971737334743202080046604540501759177145131346320760687399343753670216636242320907785603668534072530249604026590076192448070087274067316412406291241485462167784540718155189532628505137701833855715679955545780776136952204011124146000818151260772109289370101637699799540087387235204221605801515157919376748884700684832842722390972783684129119387207121842375751632407946621983728307162189167964431456177533144158050279382336005402295564874113174003614625135942344340674216165372698732909363360906642792728323830510339423151251451084831232755936833489708953357040351988758686438052158726870980239910593847852054472270657133438453421751150392937651693783292438529395811254762183231894518191807400732757754017484463437534310281046382448821905881010180929712451421871194672728311198612319440846502755757395150399018252390576388177805057089891945710874666019664347521912434760520930389520502640134354078931548669181731414950929775362177440847677058359125038354225617940472581104375802915122948381906546120231466195952182069644883107367262455819356252342516394304560811077093031743100702307929091280445321131505206216789487559988826082444547973888544092541024179817605212894393048034257756408008468017118417202393629485988607148262897245170650004509619080824787610350343043218291599864107872396692193307563966771546150149551555220921021937185108609456430509510859874599258100567968983664296586708024247329474618168748545095486414714979504832304741412416299582803739963220299695862788492845740491966063282166218639120440046352357708775322723373079480676445795188017608630463146092565217832428406309989359037175107856373480510764698626468539430215757075905610433238189568845053075833123181197207877964753162506390869658192514857583450789919442868780315268490187304350866889719461904291237316019516066313116052787349599675279999549670403156005852739925879605772590317077889280380743494782031746788472933577038059643240267638269678670092322001534958333757688032521268543058019941535075748873582041377114817153839419171079209825761369536157155229700323807175642944112592868686469974835287215490043761551875803625296896947283839010449753376444800853036962436454648032806581845561077835330261850886506501475304860973078622487383739883986425049242105059910706922659560345263446547043340410068163447504151667796037984136258892169090124807178943604357817968776113372238019409263152883988739904206090734780516998827482280247109007694815197585243423975851466772864665548012251092569281997187973181682106524598789127739817234953995144487333479924586674403961045511046655338963004911466911710058643087578309125349164857755955170535132972526921802481548388364016606859461188283317443975019956232315063652687950779177559233745576680168213538339615014504528431984849425550453483080959730660283886435415942637375346505505023594106211400783068144643047345801845835624678645940798806705846726962672968981457851699886176752103069329011620302267389704750749354856756130049009552328211942594822391030687933901882077186701785693186009677604776705439074016329560884055444908402665110370486815348309451856505852279605822877321723775073603479205820345160909928707256416253736634344447418150854369980491125747900188951278739749505929171743702362028907258922083228812343533802673806260888364195217581666129969920414436536768184599311203434813759349589197523670412486932528962968646442076913858409084954747825198619200501594675078927693321703016788074003198889259824798314748325503498963734227994785248358708729110093896620507475602431255440862779456494646135277329881365480809155093175854199254289414026979958507080354767143859642924175047891852246598796503935379398254354169337219539150459159074157511500450926050300696743887267699170188741052604699737012366772791707398007707375142102106518117407938040715569606683539914716644856654529025679170082807164185201656135802173898731580779613259642538543349926110777475734135503641618624133568917360913289316528078923430289259380463153577527703257227296408074983783911346806389855669747279496114598233230617751251452354115993199349583908842394463726623364859326753466987283789727310287000583871386506922617707795518493378172204537484749815268903654350933066077470149391097116105250851901126110377084302170507553790008533449624188976044079506796455014990813076693185294189971631734467472960491937058807993473080212812327937031429083457028135594762459276351420082566964266687574152448437968353747555260534280420752997275400217110607792586455351849124357432083480349298532301943550703389619897465163376674438473713014502828035612555343065396596428080698813513619142069281415986771387889004907478740139529733077785335309380935180575842851305200584721271467550870081640700887226780220377731906385956041903164858604687542421842134113766152048338762592095133791259937828697807020282951275013791093805255756334952965884766594722901928746454563035136841391533473174932631192423602691088045312428766599949417316819956545810183866641049655617350770812463259877228915238768328778117712941046361371024152554295976680674599261580720070163927377720517622058852675756982801837294938016311308335293426578746724240477848310977674762559009650471921940647163886944917182249643692158162602023521673095627829590194280196225663195660808814702225714064308849811715054858965573182847673131368803816381850682443113961171955727080547427295497970876007809789659062871053593054123587466791405096752641856523772400022448983027499005764395222455143417328835453652877417155898528508499547232636706774081671796523344215500436154630743464692150482522133502500770571678370574658348893923972355683491632974348062889952720249361198006979344111652942409063481559182872929464646263415754378363554825535103820032061330518294157987013208727836264509093760198438364965723517061233590376569699781151049963474643818836308997685650737833606759572790878191544997012824484814525931610346044145950381398616750260341420972787346576833311125233277124571977818126969739039839980323990357000961949578882344744485772709167267450844974727194389479738636216946542607924870856472176631951461604773128407147136821833559484160315152162423101137958630875653418802189466643315094571066160280328096474933533146071204267885586204158812293797286609418576151025611015035792440912109276800353038407752199041312557527394354256722479648176321135788348627585812639660272165455784334769667615044369335396594912803511305555729866644371562268937941950554226170987570784700653904852900442813847107570880121622806182598682757112925868670032239501924926077929262249036589115428838986855282516110825775284496338356368713483776005088009981637813556544598982607802280883795205677149767880338328909594181525707414517644624840298669406832645350145560564163406288946170147924771366248958937123263467544505606626611171970682471622979214615959283935327734747104784880099880497569330871534187683257009464501687772893134043247101743836945572105408973970587797643102030843849742006926636344215292344342078908290635128992572650286812952417314864355010855017657218884756565494577586165733705734156437288838684510085490344930063353545275774189077254770804756298139969170594315907671163580281466650395633541493918853758714500598019604199624897243207108091750942112964227966832555348894139732726099769829783922369210687451685612475954334862288103144213271457587873188171878709851623483202171289879715178093228655460822922348611532120947536801379442511840213802727749350847266065522157070699963670445586416143209603992939749357338832817962844480419639406835128395976809285428635831119011044313719518189998181200371426901217413192376868447797083072047516940345511765277284557417911189717088277471578271746817015685720277681345241466621119303936662109221623557651694426788802788155553974705969992686742036917591300222381384567758404722522881676736280099632685701020555568244777715374443270887660853604280315132151663945319408131314334985986306218867910836394734549436141517123680361272331685891447309193072602087213405558997551712396041062539854199791373612313753875674427039919703258489327621657067403807241699357501671050640324400067541980883674426130086352160739051481946685788856606386134335339193563046250972930656822812642445721810069644133193696498143249850828234095694514298105885539780366250697735018051749907718606180146839094775844804126950131574794827693079116122684525429433352742319490295666717163455070954593088274324891496692477859096373151984799900875439108595301830353397822056459369984012296258596933153456750787077268477691116518137280528015223783843133849430073653153999683034309695647095886913766929500048025127889680079653891892855177720669151738461634210719356471297556738104133838475698829832584851508818068481947516085143263556369913316157224196498350187812151612589134211323710321867111079234887921127831369224308895786716436741732178463579642799470056440689292107728404345577973783003143671673411156229759867631770175805557971073364470454185225334351130727310813440532753366297903624417254059104799333320363179910021733449596260323134035672155757824777737094862887792925103932575883730202061875057199814634781412945510391291936809441168366170147022150305956502491442010130630787761679872127621073725735006551741002717820349029579699398972679128402076095100157477227322424490013434807229207749533406630838068614138896175359886168751888613301664409891024015553231362893875420852166919765139009867973973513681071760224792680016085158320362051999878977115317329969371584754191804356660089766874085552515848002682221378425902300940866760525807418098512138326517201420887915449937547768858743782230666708217490147104923870955015854259771395785243667793236099071006043127747469755482268733577323682024199438609100045065876643482327620393070764726012156294960559388557730167463693295821082217383303747247147474116486342608975887026134525246414703795466564625855605100503108779974529419153618088276638531305285062236551235937496452180045243796194990346180460355386256564399807183068561005069534475269209650238280128148255944892929506135889102522858022839383190811184080184342393600097543105693094834173803154445502874839455155182041105033897552016985453988861797512469989666417355225381993634138707056733003651476996034274878287026137249982722598549898148738826226235238426605141218554392987919657909241659235560329671483566468828759343706448685959632822352968990526924552224060467785646246379351323580389264831423534349452315549854191228266648024940789656927926650887607619826487385876527240933818070964099531325656332284835398543208758543270666945179208041383775838724251595332043799951687072761610051741574316669106813009068641296029187896165339506798760726872585615584746074605910752540113638322539216896924340793952062728558462485685584277979552327425872507663245218183219762838711066167624433374505898781387864605638236534428677424113596719651608361183322657432140571628641155160958095934060899751933768041253226729104342742221502199718595105385747522358589027521717431451563623741548497143906844916338349372446071193044270370256632662370984496996483083257478761640327072924642178882394970883212324106166030252179237502382396747692512893607489914165113490453128304503411611514645595445791248985697736149161690167133516011233453617258076605344134617339516017568517348647182805243669573092659723563773523148998582873673490973812580243858481811596774126763893720655884524863720544002984301603105417731128174411288953495429811427181524229739324751878135551899781822648189493957205353242806713254682596006447461116664558746968957263900778568139902246331191066591590108636673143217677252627862384270619240658616227574498152655088928241266330057427743554856745582380232732139780684944105880658634720641630726981831839980302262182686808236953195788407660222260116341130953601380387421670344548367489649625921874237553530609170233955968338974449815628736139579249021567913296056781236412874085665286120268505101666717035434733683638202479958182024004973502511088883907642821442252578503383351801345394889004823182573570203079937113410941004897765325999163334327847636045681093939613261174741338121233823715219913431231656217048874856428341829507281640864217310931420715933636869777073818171642579269608246968148313655379944213759081639064943721115127891554767844897594627773598863081580777453753054252021837373041836065165167891304936739483396605816627895849333849723436400283563655874694946344289744374646574398671773157615880081923886823009144313653441160586643968326721646069990713400778280810302495604079849971170455803921946868087697805324892862233196810267385847107726624094734936194048970396041984678331623474346027711391744898823208167450050643273148178821019952060778021016765235486061082705559105762707493782128375549261134806765606641673357340396261418070815637788085145292448952994100614893766032626112124319299008365364576713741325556358541285378764822020709478415133277516262370130935487364482859336735075781915612878291426957722351004369804869762581227643865293307280383883188034264939614409206019455075602740224181422435988448097056986411801621731039683841895066269100735314561704650138060126629404971231785386853711178784979189495894389925765384694615595014656472380117075230090892869889470509905663213467851018290419157866417625424939630124669189130693141605787927185781570077344262171836457430150805108676637903704676903379265017556744700391814009641146489191860773895094432752435791134106927356666712030034734095638402442570983449988553857844797285594705086489395242852266253570569619066723490147390011889280832874705518339227223483725720001681161956885233633656381801452078004226690162322393318800442499435258063705140547750175427621630174369183494680970433665822080695248328277988133246394691694423757890218562663046989442242933753510151922762960223053108446990145691890910095705364482917653656206703970752715947868519736112151624299523228433031781923774169444253690122094067980465178759114864173714000823802990429311476518150982748866613891140958269378004732503875042395593764809102944008833004377833340102239258679496144957261155819954022694497160567669294127855785248644638302030916761627446571004400189360088160814367007620260896485560622404951847570832442768368573749468592589049687470338851384238821101623976392093673172790274702406434752353664750154688437322213876951893188515235141420593464535178847092285875029749223557529221615909442575667060846948455308261370827854468218664000630825136121080978467917691532367809498034056595274574882960988087827337109288574662641673363464620131954272205659799815800373675615968143204868064206676727341615456719800342258768000812693716025046768241205148920038227857571452280331663363234561270491643821417696701647259490447573613904096143515099106548710366472481930978235521472515381812294589867554282875909773655551106978234604680197972106128436720049997367596536202009009106311615630899854812957581883872469432050315620129438916820507054261569689825070226051553081247010922922322019908463937447861128034401024302050221012363487261058654295421247886264868364465932410504264269272894014791567246700889585178496362765486492907093491500461271776673409422971645511276878122077119804636696947201407979250770868501221192751031163875152293700481170270451983257442610870835434276290564941949161634541949328748101024032360648324248679849872091085820470151703218529569614532712987906546523861100654305808643450718489071498982347954296698239811396633806354550465112468214411894564176303060660579727354232516894075965655076101979085340719131297220234906496232768876515539364710159826500313477477909395899918010770635624025579021698632510593980002975441623259252061998298809819579652616889557917438574601990758207967018482973673963502878828757885465349584153317328562885451577450623570691409014865140172915162469219980406713094777148681116744806705408756546537290620882380869140411453202311701609018195310926489478631339358360251333962921047139246066257699175638355933730952397459470781184029688496375390244785857440445141843813076577182394368106793190548982763804990135274657676319140458658240865833516842170349993195684794549053230873328411129825742779561083495499335376378084763940974979627784700186837330381622631654165183430366700863480623824435376365527702722581528628339553629934405577292000144884200937552537199281027404946604581462383776603198809249068855021267575148880585444617123727267403692009343804163106832274452606493697870456389757674734783798699168176838115979742524134750365147721974360613125990426557318494569391092178801273217239876350591059940226503889047199389495437707355613389243300676803003929654409924793868748587281965097237296679992293008138803543297405290568817478966282371985909583018114391703979129537527527600904186537985678451445895109320129997157859363422656029445026735279592225347147731423376749629984709583136698709853505804102236964263381091311603227969543352207399726985376775644454916748519964629920126624770626333688066867715731419406010354842600529673741080055424646426422348981673502659483346032928043590017668609341744102697274126899194191479340191622870439136244772008299283368305484259519339420196215724767233596612626398157666838291273660665759740527268159625364240435217943933971585937153775509092758369156910363218999963391517230172236763641107745248726054909598602783104126602779956822746126344532849814933147225431245678824588160092366163965397986598815551251126149940777966383278055663920324159700074356554212526966693191707929883421353212678283438883404129868272150813448132019332457875060683758142746852588413418961348389320334487040053096945672437967068058061233294285980391353115821169172496226377519779541000031645278012490821205333620830145845938358830832019285118227100575265074949113279845883568887297672421778327638965886194490539184925059254220443648149294454928874112404498245251917676153372225768271440898600805519079861178946308639201051757851735508327042231515376759682935545018259120418898937992977459831356310747595517657049118149219587067311305617678424774447679504547126287372449780575373546171883430502280346414428098087402443437926460696361447212135744807838857887227429711573655454602029346302512273952443311372672312962079875961428646084212477967693065304917937158185624286585095519166771513045979031908920725841278672051355367337866957539201447916731421813871375002284579944636133174760736502848373085070831916865956185938812901557058627067001741326617388774183724192840614808588064720817295834226445298775716579292186349007812825680781527065172340368655637167062628443024106950877608415644470363534714910546542447399518188382254670661881105684334793384811631400606820893679689398903861835129570856738771078610790732094675823163722269935726421742104427046582549782241901379276298216649735761802550064033097276467455959882434897546207427782612035044054532437980425771894408365552850544553325198520066791906252389986084150194946665712742221927992865398113689835006751404314110832644808581868167311698869813258928039204173219677293892235882461076802261880563654131713184846869349178345845659544161346460834787977558293415383590109128042238793429713054343107386175989782882522229178636242517768766271475693133869703948294210126917464870794154119889485061740519773104682397400161761136587223148831421260517649521974962449508654205825207577731616921141082462673551431508325866642031138442730003634960937878146126615217716895229201446752672980533261682758267749736413510598011791764901146548586836012088349581432297760916533155690041249809101297558069392591489289362198733273464599687216770250055618410597078127208918303139428295682029606939723123662968609419633273527548068141109635900262732983456934484789279031577656737009266369796244672795205979470741661688582716124249935103930210853885071648095882659786080727744321310823105059804912564658587349044520279610968536584642616540477565903578330366522415479404547409044508709990613373013207311999826247801836103415124537084667004917683480959752757179796624329936050019314620504289210868176431661339037874063534441322405374704596255059742114940831418731440431448627416350820805045389661458037832768169503859854377976293983156301447011165706733864686620776679290174197314587907023855939800796078079626025770406311748576164677627358902736048493558160663822085807542023062346994298142915551527302351874392797067293351577504473017610392928903539317161006348979615168740876498407007463943585757768497479516973089708873085582017836519037086153573774972891863864069692499920576310031810369774840493077126839970584922213518444386993493081120949801041316508202869275010540178855633149568947600340443450631782511233001606703617880242475324180609635904096340128574378529436584001092751181981397007445440007657413353680887352733302082418820738458063855709059084831076000204073416364340967447137859696265065797662534680387901558795119883867955336040589049342927517174068735172682257403526864594586787911241160126483021026026818366430431414865298586103698120786223416360523426944190868271335551498142489544116463446092508262911630826884933874731446360274178538355689295022563375592457948024211437577461010786960600246964027673991346202395507913397146466570222092662617930948555419415024773399269277982775376310874151173074250799810090813395257439466026760792476517563982169464320592461667928551696797615031536151870400936906280414390836938190834914766140129706394390568472079337303308511990773894694613981419499587389866208052715523828200454114948912831475609647482346533802660712735168847609053603136535190310859304433495636612086232004804662166617700995752911574426807088233727953840323198521680393180195943646364140650256800023764931542728153907924659633013337728543470186130935811342233913787479842106951422242260247112803755729814911245653709112380619990525603881681388551679473346968476882443865641109308561611257830798600868374644933214608629547852174164262609213247847858310718307243746123701346356315423734445099514117955895989972289277053206841101356457725007397691990875132568576270491891065537455712699156246685569345020306829432889175450858887019969990881641500405452539832594443789105561191936640368479386791369148795106624637906489460578315000419276923550120031179964099153703450366157377330053226665909092704885936085782348700821179171571462175832014836340163320079557441564215534890580556999640578185770201598297720375494811046746451332783521786551342088918148515947403501080275408927329518123813305969589971932666150574725112411062910988729202520003198231260166946243368173944647549113228345167942539868197261912888156453527998582080827949340127850116663890186756280801085405150087800783882756319070633668466758972982286805772746881401059127086274684476865463195356661192565551475411517194222690479883986623449250652319106609618485356506523285293183232997727081219936382073046451218570426186141014571183525470279518282232976829216827034432126552813768621601466566804747284770607512597907938700420046663629317648184268355876803201445441027537376618044838971458946916446793759951897984337059747752775346003194250324056179231353527960503433441677013006132074908755320705944230300207701302338154088887515978039859161015193630421097095319527349370779994612994694395291918192047485376822898625048406143842904486915512945370910367788313682365544988816780448316433320111280061808314566045407218685348689761735646578382375189102370648612575513082350433167563823552686091954153306572895165768911329236251178523565092225521098394490738011579232091246810323518923561315419630760748377829834768907610372561804617919701964060245592236679405748501420247390005872827647592059779803195650754062151032133712667928870628011382770460450838413634722984840880348191209210418320973192960072712071671427694915572242508441300783844134375842891554106307665907219396924263926909829464293840523123712719110401127860068239794537657934818405931524512434206137168869059805317100204823359394271704196521175033416443319177690900143011796286747071483209901701551471650563462625829146542913374699589854998397634876524083340149662742671207531457056370602386340363711311061168774294648852075159589272863659269819603406129839688863330652749879036329610429323765837836359431899269790148669301708529945159138873542135969784923515476892736660849709865593456827709637549787384155788019225107641959801492911332237825311761623808743299208232161383880932814732391035080745258572018458263625454854404826006302982086957660713766312050954041852750851604744145612131687323200450568427347763256364811500744257233800410181803243809754356528365347420790490259328782508321111458993274854780435590392921036880351377167174674822040275294813646893614471380276029607153756476549527504499134486707926901269295614420259576767770143752383103572288098923039251828295710425786085707184575839168963315763479569416094424679513204108818381001340277743607485856575827961841557544367932135570724022936915494428831011930441356073059750529658043189960748042468158898217161134647690621617929796766007870037859141001583953399543318232683776002008716991763013442219486225776185238546869083444819599432924194165046434937772930149504761671556885074349331412086277434116762865061977369283618742359312250559491367736067579208313748910788241512650574642737567289346816670980817896052082801552679846060342488718726557403806336378193061794720786334361156326465342569920843016844517927103406854997271472769298417108054851555646605947540524352323677554426931148947588552995068528683160670277658442002679202505233092140100766494342393112729724126740061798933159423100861689805277480951215500386154565347627782964832766071403815409359055662192152262927625538256970321640512012846890414465152457131539053040104893434339753806966603047672623229970642268138665870371540543940029961085544664884108099999072825484239896782380483054214684653152741224265153521781525478656847333412725209466616198098933671197611842434111727142289174361107137232234817549335083798874080388057144848203092042360903341916926644933156025262571118740682301932561520554130727537280125929000641271037432833698439935994552242942063005115231871857714184337213129876916577051483492306699076550295510765660252148089638999396781415366264733869432691106881906073550145376280622320159524127043862135987643927484090129333230939225355349284469020804759895911616274877990288961952383571222808152776333908223533209958518686619691186233264581963908239701675228767878494185204151829477631888524130563253570837425810075561207878359832970046948229267408509520572577676653735114062600409261887448191535512070650470369547501710751696149472197550057234786169150727166376938727656187752640072361986136063328493455867531207839797427679982942346594011057908243891396040332622575672551091162730508700554514785694587595262866153096276680473596269867967027511465336905426261346464597775628706291057566544175262924743103635256943520255792103767991398547991694974363924703020753723825095504038632183112244763215884148557050631253028621078793008552416977175311348857122208097046968930470132677964901085734196660378238514950090620642063848867868932658574642069246772965710924105930950186261804389697530189545680948158416826365863746841901885583532147419862982129801951161470535176527479815263913883553060356264623145360658853600484064030292111981769673778731795049834411140404967750338715236050122629838802654883874218314603989833513879414630163266940422832515466768823126396256459020974245650417923844472363405162111753387619560105690700299881174370502497307758974030741502355366675518359087932791088511727681672226777379404672392228748782621504869415770892112743623587312282955964442663603218286335417173079127647255713249680487267680841381278690516312832203334731643209343677018358997350555098692824483983291773434738652303037451473497932453828030482898689328117417603191430187539001126488794098197850739430514409508977276275838573826519826340977692534208958562557487900404593658348565125293650444344504569778576148155033513848792891003903306931861524040640615158638918545078158381096637797335431907371138214183085600942699437947344264568836721533445428101833921077567715973207096265005388397983223010857616106489615927789147648507974457852760704548593918398083134157680699821602983883283306530449598918809784424403423547333794576700404562436706690788045091143878887691846604611835871471076401414050476495666191363392058261533273079198003122706638098228310140213549193584341006701462652632283014576079213142413086132328117517476362088771522562871590019709274972324840325933215956061075630721613555357691792319709388010390373263406292965750379331372529709481708293217196309730309127298783874608304490534754544486303569873886733553009264262464096678217407195526171920766668030016329752886847814354201640581245307420772462288613787025420805529613950330771245526946073578542381594219741692456397052242301186837394521864441277986794874196017299803557887602376485136335571080922555549049902432417318228330454833067683629005630379027826792502527198560891386598078669328329349924308931340389633708025757201481626895131769103440547181576936824385841101550968016922465142482598787504984511902412478357130759251867528329139224160882933853588068340011499763691609954601042661719091579775401335075363582814641111003726156855143389140103099269792433097959605613554641041345122278849882172224842753698892946035013611788037949812074077893115517614487149468389747294591458224409809027175368465399799993904889336011632226374786940144850552274100238372675124686468429095615120297233185273328967176682644900480131165143146646357644992693435025182837267684496792416127837429270150234279365470463120004490738956112760703271849400574207025805128184408745101376163390305637878728561099629678954932097903042397914462381739617920575177952080827516379812387109989084265796194159379191407672947385827294218711899619656751329529010702884530648338999210722618927115272302545259216925405214390630369767256256007569832069855532613565838345975901009560896002154161086719888464824078180608106537401081761847483216107063161759945654304878938845736910105406923779553683417372567149573166306507788361656518214360968773989904459502143004485389468434975262495376429692333501361764350870163981269707719149064029863419662285501087052934806034940298331324937822120382478347020832797906088883135636599430879567687718706737077130336728246460656758090084313118937068679339911906104176548107259621725697922281728759279045052623603650464913834282356098289354262725730045745657673050670453506540943358845249478020832620973766341509614187265543203380480022795406627953326417536548991722440471314553392362178084894971784659930380393170661910186631064531315290014452471538744363517125112533942090409029535003197400307597287237765339056885266727111869510959936280998507850560152237610135883603394952425909449691970026999418594843050519156473120309854510186403805248142099302125086545435765951428005445299239755454661186837224365260012338513029360298822981202877632498344070327955723388530139175712843807493617917805213334768819284804538882429113539833995975436761950248172084432303979628513313088444587767123878642221947710016465489448843209872134463660846627753044104434496755245715808685180323344919724604117246162621084033094634710994622444583541177827211935131244140964105300693954953125331049282519361105745260938790101250514821358375131749815490181685010799850047856064798227153078058391213123781369296675838916870320200594689589112215297390648102746234871769635203477323020094143194164963974816915664459155204580739404279101951797741897064410535646999248071198842803430261112856575049404804003339251072808696052632489349982763700513877075786683481428054058857342639615513410307314532306312099368797743136405879432984484801716354467126241280097606778558390817268950230342371072070312221717242926292906031979815864542247217959452802324985092370493142856408662508047183331492092005299619215806992786359316836143578209288941677578309608036822330102900571034882721156436753435099666155809434945564024332146673166944345105831010035373456405440872324128364079897498792128308346259898102044230921896698259144947200369461981539140913151840882221582382952816794257705193378784540726168162553205410820910105146603069802137936625083868861786211107882669520352746421763415009791936282837662435683654655387120048530539395492789231239298553264442867466867145604155126516151180033388971105279142888889231867357538865905052441841898678328003999858962551973272881073039563159136691886701505300515735088832428546940146496262349364066836668298947343056720400099290782951488376006906880407719006394404832427320075349719097970647344659380774746958654338163875069685190969537529930678475982904780713063509163790525236622096680662960396573092272453322914773065796597345058711249444537096169195205275016264250620876642120460446668757667517342197761250303198915420386094500497994115165632014803149133184431819030853245263399518762535358712780169205678413259462776687230200999933626904152693232649123411572509847807389474596043986873733935512952984834383391486665574516213454723661089469656918662909117489212770343238897187988689709308734374598005772033166224494627840879724467064789344845830087990724720917488768276132757812634753022932116059382854754484737341565605255131897163149083124157766624180008269475486716029817108070442084431116376817915294643658416000850603471675935799021510869937359841891751576112651549987081691176496488966907223860539384457964711795010696806789811818265227002600813625660648125339169288425169110525062843922917082776269312154748521509220009760400997397311249982379056416825791080985314556000908816560141181974805276625230317749855086130837226024753377539292165934830106853351360963550938294028367797606203614345172473690964964483428843918240814432172774034239793470581905022693001081117845609826567318835449590240886592120319714444803450908151772218987211605213007891528467381944426282806255800632050943670413282254429018520195589866876738292678099571189185892163066856935213484109134094243540036367152247423972134579692248336898536215385709610251042780012633670633933502585055474793610701720167610887576519149261280270559561346223195620054867918341657290948237082821379398909272606678895401087183062485743604866719307715629194640468789160190097481217143941779098407492150623630190426452621196975919109108783969815210821277956924842552444653640748304180748300445590260493189751575949002871286229944205501404700045474225098020232150382203189723994183524753630875380469906104829435008203298501486142714244454555441372435765781384774906795057946059286120779631731312865875057245465482830194800760159621221654773069038875333417402705161380401615717032449021650862038937128139432495790106250014757272854337211594467269750045947395323426464574938682900102600256276697275569798073937253673059615308831038393444890930610679540757640961551391785012977373215118128832077237196416505219935950793443211798288748602950289393804081107679313452186858691962427135546158369699859876991308652948817556036114464120354296177316082501785535252507097286204826981885461936224628559543678968617308740075938975385844278324543420547584485495076023116361365859860284878448626329296644724246551597040386817951189417576098634787663496024912773748207754350126625398134852333419365073020883662426449037413256213115865707024816122589867859200648353004871253412443550720565015565027018052903757038398481029499204651033263619705000994273125686547638145731683468503706775129184571094506820186474910659201985254106300608102582023179227948630938226059933140647052698526748907545122708385162853168122738092929764819134444855778162209814674129655338947986323538517852188095777370994342907801912190918644491150633206375624478717957895781709614330491262832683010322215492881421203796131570485282365609579696782959069931345630791204021402287254804006876464272431650484273945617132375786040407227232609734816321491120851027427929922448771269811511343834781901851109808343220354025270406278857932222451730718842939238658510472816598911114457959145896746086456304338485697555156257965538803829687688505481658138855302022294650995595147475494481899959677606919438442920432921249361671137300369024683253093901942649655823078552753669212609943343051393236158869009544946013577032921618305016390124000053691106249744329499704374063948414316057732588703502263919088073146812551996403225522120719264922980349072486370169697583728183829204212809615074500018634981846780450226644747096280779035816619792923305008658118791195818662124384274857134053148949714118713306142790335680761042077715982448617712843809314533266218680566876544751298039816980386381697381001626157703027619826212687498461951365970263466807951541150448843379105145019719787279476663841394188332501530570594302664581041933424642585144668381392798736460114709219794119214279378604381945992495450184436827640587223521496264697561291945867050475959676532228501643066298231023863598501333585844533953324195482299603772658166813804493678680127232105997049526960675080084529493978090251169857446149083590771251166098762839172396401602847256506012872991883066935808987663245411152590268779148170459669720303350506524582594904385758374587115618722373883993908348279304121587667873537082228748675467365496012133534418058027599669562081093382407840676346298805541284242167334968412628670587238043237718503036331228742015077211127808492991139678910421666447587767895236120124800555074514146201877963356598401517961917730857930765492572259204151337601456338599049798813734378776438012170210073101029809050528627645076321124373075158058615359296193347990354892062330351831814324682647859580143824031605560165767783647112071662577882831144399470758014436485075543125048008053434275198055508473606166528944939984991904434570091338886938102224528834084626709416102990139645625484213775502234084725974364340642029023080753561949180416074432001727001999877002577699368213451780429660560618560841349454287902925979710549614466376744601997176773320345934459435831993338611008824177834647707899869597550519206997333865770957747771918515340552066735121084047071619134048705560108213613975664685932389774662314320355054915649353668912295341142152264342460222198600069371202015673236852382948402749514156758385563805732570938701405336763269412507702980952630943839753992483072409164460281583251923886009231732547796774936792336902117594761219367691130662360768322870417423040114525992842539206947742877587220363769772409430410100947912099692359664955876597713474787005946435035997283887777634412090885789711435163929263811460149692844898261981382651663137353158165404605827090736667478631090345173383189382473127032302262171679572834855073281582879891725783528423995267039351221299085462786303463124746710677946827669314434826538664584819985713907724060084938286779084999250010112250097516602232878096420032818239649219581853959667758887251973552166735461509076195730750758575717558012648836290725609916543931948041586572159361491798167385045898833566463687285055955353397188777107844236596734272639417490305696193463735663148233892080171097469232198831878247363035043401605446622276484546232947710775472955675798513335649471462672325691587097531309465729126595956487891013967001662779376099118615058562769628649422460299366704770988099445975174085663154960289047196172850336827991193842440837679303435724132754703795339832502418507325286177136691210221236162567066153104624342805053121617019252574399996783018254474186537367115730075431550290274382510534298333882626222293849924244411616399146265075899204204980338856443729178190561329105110867853227482777945537469840428216010948324479323102651880590716860869861387338207286255732612538025036591335082834145046663097836003768995612870228424287825334624694419521265657477932264770077763944918063049212794265420921577827227603479420029697908071724318579901701863276752904052406514567999059257877284000530088560341372042522721464827300288890461259873030926650608298922440047366327113306532866517957934148350947748481295488597466635249882674162372601451011372671614892104338051529546885833482990414801113343756787449480794824333480978010147976925341441613325837152335388354725549833184960846213167138797570408149474472631047965955395767063717243855786193256777907772145040688610268775353830681358121810485504146424988086608488966517840972032089685289653547137724702561810997432769337671361624738138318118692291425235264090507115122782757821728001942344549513869557971052971696218487371259634205655280684106492928151794670108744375763243783011280543962274058508764669352238167660946396322550604675235695052968266970837911535767432487280142627018821930377218544304869486719057238643836163651717923850780718692737278982696605333237190719888358974968978786797483950923706387458765394686403488303600946538457277813870352215104371087930600461913359049393317347558383467531157531418491599524948460319485288404246675318155227709939787909755580598907475140043581750058742141366125330012282591883084849955554979162927070429968966629182815708331642669024275840836144209225024387236587925746068454640030330167829074123494503010189551796563882374170711079687471025947084367542327320259848097995556973152899848470825295953506112850119815670035864038507332165828850832314100251737312943945388068123195022458248265894253649827765915358121281972927994411614974100189249547338861419805546960106239511553288265576770191164509733198609568614803175096730680683046251694380947664108323965109639741013092141635961605331389667393100838302985711194191989084807760120148381472281282809351082851931659854626306373892027129433874633209036791779240022618328967154608092888865059844327997687239086836766420893355264875106834090143022918932566721961406415053514779334278707314504736557980702052478505399311936157015963819562230369775013657077771041172708952332925538954000832197474977488411652983607336140674614996616697536072157616227989657917185972449059240210958934383138854350756481496666693677904680270556299650350535052687622615851659879721256934940093652532773783129295623678784800925761589494924938459604636902934670499589322558316996174985035585400433394421927569354360445986180154653527822531930788218776362712752783334659017948671701324450926662059740669991235901848343384601448907197482488055629038760075460357813023194763262949875829187594042782977956024143129556135758055668266184439333885204618368666740158928715367451101687035412010804765205537929652783599408160146249268072600404371141820809724710185738196031878509840871075170766876527358795913186923300438873878145115462603661032694545379006637542636377871332907232842056385198463898150776559509437251668170534514273860854253451150770283601964672743538942446958656156108475209395437743051197043238757152852041239722253030499963372781483421420902390143016659338029202145338396688219324113670026931539559289037821013098049756071975790769652711678106206135229172755311962727459324279546084643766803188382329025461167848301874872744726953292495937648930572868438644743898950417662952085057909576247885552689928182343336629001763721987602454287604362406078153805501744012667882762580587997467666382832511081656126316985889541256665621793426960353358833501388721895723319290210247743448300005295483451802593737799130377142641984934526467940052916319965578001548549220333540173625029562883353422615191303652612150087579250292362305016967819696513148472842141854919645318415708741767524759781447250871086512469077395663674585898913989751256279822376000656195341956590049132150718125006575701504245432162115612209408521059351367479062802931817960491455345791617715586733058619536448210092303337418102551040168274677470955791137112594113447775814208661062897047179832500186164535866851652707412833678710419571448170496113908036798969655017554134137918858220782024899189479476967350801858278741638476793076939190219482492568221054898441777605948423869785400194182375681086577871890553417355486102039231632364238594802273722832451764954161571717350180807718027710931566317527322061791273604708175880167647254692968467076993247472040059322957543367614023423051824598030475173549423353011041583314877458870899386651674379578113795841715940300581562819086333451187204926884927532969143952658675250162383123954289031173022020273323375335354135223942011300911607272632081723873947601352210652728641851147792805311324330358366382738091063722668682395718617082850710338767635499681544005333818049263160760609213909292051035341807122623942892821015751303833621867631825387682522027732155558604193730587251622904913589792923520441775896142581951837869204773870097435028421221608244014819768959720549354608572181215330668341119131147259179314848635588952975658392428111705621356277605209097348259961169638517518388409985091421778984422440934149564375195642845902039976213161322456206364700305108534813439254865517354054823093984227902966278614624626545677696782488148753717824437651188746852083082760109364894365071857560596098173307025594808312787939994264275556214821963712603777943989380489329127921142604980773356876345565385570663630599315252747377114918805286080940847262023815615048229671251892946391790255215659725902603694732422091937696964382419315982561320457730996491457375082488608160430641635510325049736966709780953907291881653028093109072530547890097436784129686367103669351037384082105279818441432247208826871580600201491409287198393278477599946655901024056468918805335082551695651514287915199039167142556748264355854122554289497469690287803682923969723559734840716447573407267031296261575869237137524656665221417133284867961106051546919413399371091458028867562883012633430788179768033428118209906714623810084144305415416357715200160826997953570786417263501758747444028581179828966221566063769353255772725699731925256497671472886505841151760215770639784874727610612727304573722848263289113222284317146422181995680141736426047055436889221533929374694624905300392444601990111662397725870587590611290126415569515016992920111339936223816389522679518607430264099665353814264862533486315246677371835855722650877521616867921160841649088080752117003910386914212801274100568676382089572109992242231604685221473094863680110685590480005960017205282274209970550642666846992770239946987084635068480024175115216302380071477343443295048412584973374166957096924044361842696136860894678291941739496402709251185042459345107316694348187347509796416165240386617644177866712942867048906264580533137915495470651260259022520999910129788821597326987520940256264882329041452156422415229300352554495686077777079633392525576333596809672836630750446647465201475593695777101991179279711645665989881088956603881347776437472634609844819153716402686905259169600547675539988428632334291585543804729293281178955636203941345770200318101814423386660154673596740509567819997005119143355164642245355686194383088149406406616929131336211785458269423013518431847151274008880090136407157794317633023864041990374221759588829487487076754287025129155780423164498062015190243268088380249530802807142173327805196671065794105353926192133859913905225223872724762818623576762705049651829059435540811757275247307781325215176497788276662143016902910810359417540584669188683845376248904449056597223805599852762140546255882873576637397125172091770938105906340073444716903320301756511075315225265506474628184554714028610036139832328991346377597200137951828960714686688121748664400167275086479805763261347751133933057013023900134990988950299631420177545078727444535686999689894347564286862662553229236108494071541122670223300239247514061971125006992195059920767725220070509598579302938724563272999934144069875482840770081975191862221402096011116565543479132324881427869890410749374986242938130407002183904231687833711748567963293799422678942077722973667053621728956993077809919981061566302034498618417251363347298595824084770227059264687357449962973871407291948462848644304285707285369794559279113006841397420498233877887398195892255278470059794716797758111804105288583094197267235175704769267462777614628368956170754173567193698962384332913084449030619385336730719629095821189291481319753869604973574253625881482318862198886522129656965145595053002350977689930054519635229566449033561808855360338733391220529595231136866228783875003869235790763941999057805199177647819038268252123900373554928467122542647273312244760151270051440461064837702489749355787909057977272925660702405267708490876801425207970112886401327074175716946901467996705278237985065582915668100792310464419726586832554033099930255711678348215239546316527884861630748752503270705967331142560998113186886165360313298063812767091993196212574328167258182718609407560708973127837799934784692832661917801713314420948217073317770310350684963557273987812884133652359238608627114328573416897676353928805667400349464938007854503620297803182391610525967214357016449212784536086823594101755530941416447442030148256063698153755991813969838799710735675072373719705060812672517259925010161441680379106058965806868735196797355913905019927133093626285784926578523913118240992086137473583460950440110401264974147339005720118227344533828669587640107091976956001598583104183810094477539384100401119306699145485501775098463138294817131988759485769799817617429463331342759776950104409623848901586458041725401347667551509312701249577937610133020389883007655194087341746476796934588127338656326829860745984879933033692032276468139051882477168196969070175248928919203389520166996638621736223453189089260739037614231116878005814806961705036642006135290393709138803376193792710013141937723447413577572692982608016740200809885387929651058677196456759440907594023451769056081658371611106690529193820970338038729069448625684267498904390790497466245105889054422716346675601800897806739670081004163365023273974632288983618351509132225097686393205451816028151859976196168995081386076820765133164608984397984237923045358112577960675866786689031199758533192624934557283095852497807381757159480587742764409993030690226818051928466935444583769597746678842802668982039843976545983757491428278585268770972124362993744233160841292957541974347753418746204078836512972313168608710767992504493204781323019420370750668731024088516831811130190356240167656592781128164730745703136171637856548208101350298410649320194727883006404762606874151836672712440999424447519820544368337242019234045697094624586923889919599057420364677686293441367845984348905454777859035333291893398699806025311874262092233037277843353663571432010135865034769549220315338266230155409321410899077715168974217650511104169714248367646742675140664338980014841762284063217999420047862539117557895035554619150384279002314679869699849440030178265595991520590792439363074109707234467509654553873141532818026964965342913008590104282637504142803152888727904879380073793495806291815521145286261411278914508775447295860567330778912443682218272532329288688724902094649653938638274543194616868724251987633575957138937044842529014087263578977765339402076305209535659444526548204425120499799689622146135217972066332811537659385342350764514154139488577524142726251298706238845001139335242438402331983983992320095561719729759098570532115999367996540298384562615148659155137829066693222603633188421521532247306426554783955384455797178827581941259442152216981235443958874995820492916015435949178639341611421790767546186328709270941809928261409852207487646110789911855686594621017042192416952926262624011795890467065781065224295576905380406392705402518775585842593268469878224937031947393779726430330791480508730616058995610332220323971620873446956684905132803790384610787324496361568287167291943916225848358783289220488592896784309936615561247408983429870519677624144318427206072785616299142579688570122436782053930990962726594120958651145528534021836185413618849002226796867185219294355565451517942451132739711893530114062688871848702835057379557341523843760990265620119145001016220543456005114608188219182640397998483031779084619397644525325692332837674635760063285197612929187137452991706231307886427168875808036722880095013597174265081162165607217805116004304909788391791153475794238799023309653013550523440535436877777216293819041520450153231980725534032492258010326554687721468403760546586244436682837397918798851439793538711684947373924628752132037299287953547326250635937768545712756943878467080779797373120185198293325874132488928073904465348853926024954291323502219928726132960189078402258515250309206955885086162533906127222831481476648711306029039380988776504956670708177650233347296654853912548786993268096309334167661063462967947839413434987045305635144513800463071377014603279073884214354695642770299465183454455472821099459165466844953768196309517586641377350273252774186485613077650423488162651759274799514755766022265396555986340697898787082735449439582112118235321181305985621886165893905845463542594758224744148770469320538333786395893046218311690660264056975755871201988252969512544544402606333362811351807282555852418320499747646619813781269581675016573513112719830546205229284770213846397827816946338737226893809428025875935032017786422504833849880300684031240197076370830265687622247537124587503661621675012394504389164050908917815249831571453579250765161013927561531527866815924499876775502150017514245357433624798128682640145690558319428030443230217883111010587379714775878082482166868999424278224180801133077816463648468010583761095937184833310878821164653902501758658973393151507803135942574721598559427148837553221249166414257486965927595192269727771855804446439193157101122973872486300048207805939911843685372988020161941824021663515020740569086356771624156786142618499391340192729162688579467197392942980830334338085305322102300633061749195475342907355963923752024083411988066861799887409105742637897703425770510799460837494339391611289239560184559398049152682398254222773280411720457389189302618646026216331582650679155985742235328551065397578911954581177423699840985852076583583310554235888806164366096106340407543460868435474098329100245932542022877181424830839655097070869711788466471185352732497450180984726911823579679011885807073720476972306712497119000084122908009825082536541963079939282827468263426363780072065082006047145787079376486910774717473276554584514220247722166296222129761629618112445389458397595549521258822541355377961410010955777595505389294481644178807712767580649413587338893681564215115991966827840393543626729903066638781763054988109103026904060008467643308188267850725580880859773677406132135349870185324579756723024904790763209162704495637525916621406334677044652183425087763955689489223124577104184659173667216481289808289849370760007110918300275197255794742566242594969782959143555149498642021356811342756857273024926619289254736959519007004554148555254057517835055831683629151518953779379718975716199896516580100334597151466091634423966344721916552655049316031303196948048850258803108356256413131753125133790892224883417690760776999695100285391668437393153980584814119656872183091623140507910870678292357140787799432483334137517266029538939957582397169419558538171621115080112724555110187121652945674377504015864559765982292380537538889276039035702985364286378645435509235557232597917860659676796120783271972893219670963686811333064938342618761483994814106699069915657681026811390243877068965376495152927941539261877970326760245210550637666661870954860234289799385078433312611297614244064244703913010266847375862714127881784742288796785028496215847305578623776781762128136611613666507024258805030711832027288060001244530610616018037024705772274157732355311039651549659410306653643083201958133315028489712238177432065193864190260979437140607785883376892397077948952489097640420111642376048648553553548464419173380611354440236628536901251924699790736401781172954356977616432811374983116238266057070757634178184661343605886754903402115848082693928508458836190215573587707837377199080271699981504301907966470752329007662201962677050171987059454322808505890898455218977196593256031640250882359209610855104477947497193897787708346657793799396887358279414911983763141244619177998401873331012937829408057459150969230261069793752959553510202424119985208407732968777631089541840317955758005650196642097335961548710142410739841984225666567274799792580882075561521142409996647410149365755981989481406109986784598701970074952007004246679269417442704087985935198715655484457287612850653130958354933581728779429974822813677296671295792151179620513402934094152834773577647533029289961333519048788532544285595800839512055768425789447446675541239197050883556464826709609335168503392686581740363374463252542575465898163793454827658426750964283652952839052081154545357856862939571530675784129271698541485407746894686369072541762189703871002999183163140571167292354007504947758807990659764315216938686017378384589855576922326537651667886758078108261334097364248346201215145031220628755005213384504934204652817221502077445473611294738331558129998235120125455254406409809743443368539259528566626509284140454235210410038216504419979646195320954975663674760979009717005272141169262102771006359458236542660965856198893985437919168734108864799732876937260003815730491806608393318935623651778332618098482696187087361318631546335116712960230333766611129963317848980389966528704693138023065763243889584607414295738168908360598904797810383774650681407385518618177725371828647348941445534458807420212040604028176589734668835503678236982390500074112274939346272458445794907789377057733412847896376122102530960759776416246256872417785176752821898752939339525698790875631194302835491527954287084242669147164204536232340750439530964179403687151547358790440229590585177245123860318339535005624846533252136102686879372135652852274793968169541729863890470869123338997617897074342687356342954524511418267361724000931147514100725573493215223009202264317185002073285739505641705264189037639969610607255223431157132718144010831515051856836042255023114466983028561503786614221685042876747975241401252866772208281356273476830618575122369014334892952622855477228613141260688537438717558188141160462244284151109912657518024067954173468222160676436878959334850551179478949148509948786669593018887499137867931657909272900536021004764865473585639704016547990861226592367124507125274142853280394490366512732982833108618286167404003461926423136417995726624632301445409997590268434260679363914903599070258773629767027082931022562951986495969500283312264394101695631781930413963879133693639635017355046091396795565279327234461749508884074179586705162989001304339002308563399843982262782873745366135463584307026915729695600576896192010463154109548465930023021668192298342472919329147970080518756675029024293998384263818032562846417048150645577558836423312830774611897527927187932835063860536652185927427196934483198299003462789263422962262879923103700874396262878618179170773079286541315296996566045670789932400923717746758029515743744088830851545455960097240210351490447918946396790578349168875976160579247546747601129024831865235912262719881211472518733625589774376616909641154487615732787598129869789659907556496656229784820760204004213484108933450519964398569074966995298320648453528349480859701386187446449269483832005807644059240087856698981571063930511905509534115246884685645248803014654890395638682481576425821504381556408669380814597866483154593866432153434066138911605951415942285138077518044514454055996401132568615749856843665204736200083058519506941407780264650717870029182987167940041561596262039226371788869790723810336237842951807870139984889788544291659482926847313501291737318846428607273457446962888397692937535734341101250914737370303439572424898403455766742965700976202862196191365926924840902512268195145173638633070009119351114208552359440780139786949545197963033828311854621020704158034251026433293967198185849936388180225496062999937514937617627201156785998458785575492964315687738464144602853915646108961317533019969063868497501740155304750747868673870922726990214091782085249896816823686925901281579540982144123048489962746416184251272324900612988848630409992304880443675237609000890008921651064660679381627800880695930791634150662912577393763681926849585204156274955884015032397493220800664096608747441042954871760375400794047335938551941001366206231980669735218567567028174500345707071733497217373143993131104825044520450567768655550701142557957670257664259758195525494188984599098150907994141288294723874557655512993454748261286506561726172224546733087238654775639504547759397826082644647361894610733663124429654869582913173356564320024485463885965919182903291195222779160376326904575613730736426933957711267687920223387804917667515438896742216417730027866090521793792010487830121070309634555232259048707053921913980923342854149869952995498423152338637551866646923600502994472557300858758468553518340771879687507120842037320144330416798197053825960987444112400406243914175677861291777998673765507748834138155172602068784878322091413270628688195961375495904874782794491746900962070888986971488642046664571755982498923579118441575205986440463028161233335641073946949240488563105504143554818207233892684030403311813194487482216498075594659862813657692002046297222815134221140965587548446729809379004961804629481848799988182967048568559724396018528795987722446142347721634163660543479645672683871287477488559505535687458602780686442598395604658006809297132518892050945566490184094357941879498642559476602152446545633537410094055161188887864375745711895034660509319838267857439263258953188042591905550048670961229436308076766858650691812671080003962140982781605875353997805411948446006627330616815726323628567931580867096261420199730019126467047940388909473767624956239378223570521010326650676788550302757231626458271157396144582111787307742484667274321296029706447216854463276463658969926571904108842909974228975221923085084727173914658316253901248125985885211165955381679340801899151353588669442110666215443389752735975254216741998778496882778435965060263579273186134593267773364946218788290520650608312286251891310794875897675709518397217019999939858844353018618905607043524447927141425853729539053262951015255966203520017955283239592297428656076806411161460396701753839556264254541396783508467444606034236642362315109041673406771328354275443928713916820380060887686838485854943901516726670268876631060418336478606023251873575985049040281932527132073008877097666882315058591264147953817119527159132334970841531373515071105487974101163286685467474000811213255065501517719805639773635437053405785935333300330585541289616153144747615125867496848202576494816644995269179938563825251865557684726674088449972544649151882708863057284486695299664645300879524160037188633904813009859230659418567130004143703012322547332858782259741186765047703996113006075498942968880403341939362516878426938609541384550206091325494811474374518288636815410523393685624978656009009054548608980387121834781783109476735518104789995476376223686230365943618727601085311381398393143691626784687570096385854361331090260419658714674289711563228891062958504303487145158751903886468033358415385467994963723309203563265668087631194677832963519706828471937010477773337468412786124402137507135335229645083337701035732209585210228091484813539856918845572210940502659545284156709579915917604343432589319899664850584055900352911343152025843661176787156907472347486157010074363901904921287686672526958865933914617849555874780600710590197077453872411999469452800384338833077008550311605870222289945336647095923446520544878704681684025072149596257290231028569694629267483526237305061138341489510039398802666443235220529271463060046884537571770748788851784775037695838439803180891701019555672342470626254818945776468482210291190189121659212203169104516418634918613099469967480062896824401711973845243320542337022139966452646516662989327201153726439132483561505598470206676071599379892214156337676517197990772695670886206379121694999903396828322943948707922626779177617637763738287850009734131272176210967418712360223730809114643804609810774766769755730022733818440407858713079949329777092820162145579254629143419567920644010225093274939563244679188009712451491607821299156385101157329812403855484575556671108499661133131158145864407649864913001108966904999961035201769346099389424856525831008884219796228791632811473512748282455344767584297915842723343376562893923659805578752774148072205992916089667204888099778055494457125846034683122468529979651007922321696574481681813823524727620125175710704724921399228960732193724523057810436321203786979940909924896196565300399979221208810843618476834405922781538185672342714123873546878359888294864576935032142369753990801001167609999061314855858874185182132838610989309347370422806240228842415482192751438193812170414010728212791291716968426556330265060483407540108812906776151908804271614796739405547741552648725263703657735206035854966595885130270389644274830490782134776103896501067563501913133909174042342827462053556566223834988383415795509115387453459252418777687082750887335312583838315225118752536322519307333935960282992892601798204909450290386108137647210572386447039665077882455718112083843541780214353200391877054718626292575179639621721377588939539725284155337531853546137787159542690284880408408545876529938207119622140263442185867575431845854085650926122953842229357207785592665699725718590154161182716625035064518093867889624861396778805075970422148380972766138214072288755591428878819456721179437210312189453102633056880394951405416018033169856159056101550291573873990910199705606364783181106283924226499572191051544974677158575721344690995174602603715617681393718263474116570461732239895218551583606412297908615638737748573172141226679490836084264252794045614707739624141505218218974328855823936181263757693788827095745014320397701242285090047735226539575473872837109366630888926869808911829717976675160211159662240775222083587450204688692982604330708878323661421534378270257006165421154274517687565630165930006550090384607288118570239555432748350093173994715650942043882849041701836287614446014972526282083584312070329792203120811672448551387649278909750883443043415033870737011755463075624505760952957627015473087494328494484035045130432508716520595359746763873619399774469212168018346546765520724638576900054543109515169212630770329271012849149939092390613168326032804293236293372080174531760110575426380539524899186620666006514917272875205780297777145012095876020799040162330931904138138116541991102998325013826445562333310415118894628279318275800112170135919601786815357356894011842156799694115418698485337789176518570394273679990971736431717713685659048394172230490111574940014152741983551313199307535843940817644689928382236598395665589809222697299909684180124598475153168927149226070593604334649567789381986669490794690844783326169476652074633686122265463165332591490064399110530229072319013534942987854029098001225231108680463359822241308794258103053131208178145624693611277450627408271860886376072607889680307278868815612261440192241198871055435382772375131052740361771949817083084012514941188965339217106929558356221463124522689175864580247122372551980396638992783020257851894493427596654459599722343674335550612652035577378225781527185824978575959240784332678937232737518216215871257753734170279294092314997451316690303346480511998120091383209520406199830684790500829960341702697791465110897273791904313601264560303433189484826434223039855852395414793647753287725171558196187269064072735805246906070892368638358176009377740653160343646545671983709507390969434613680466675726764994693923943484751592346026421227933400722173439515693893498905435801528951950116575573344933825664627207230546151503851179327250971924363506489495134354131075947382727548595875763636865288150316599244075843124375564947628598111178004388281384184518707479412109044395263333070163573398989680632308604759774594352030152375222408725296017951838519389863148830784957572481347010078046418726650858529253032023267009079802465417542646946784976265795186350556843573544880443180239842580854138139993148844566513506104109557369999350921144807610834639758702950926562264471201417561456602042630264685580787056781708401517917178505949862835216240589956184916000877651318934084184884330044671963159947514449914082401750058790262081066212958636918015056884654855839438481215130714440624002901132557254584832630371141018900244315994413628856402339110458233936964662131900535243860369560660145104236919993058374768390998594147949637464332849397614326560801503057593158697787892142186741688684749616459780783559991950963190215711958500852450292537520399847494014505368950108617737864438803166055272128743285514937006114636207980946306164257578391660765069590312578819991476964694781394339242227443801094836566772407579599352320055207938420353856441894065874471615205877238858250667182071630301124282963283351928575784281056925915408466955288111739687108703603730055748341290327380991959584230600323959737643575255330524771954101903945802623039923386208995432055428063747188104463171188106987654724844318890813964565152926063575547926574699921300220579332888415196044554062143503685075002880889598375751896876084535024241354332717336083850852178533094694782130491354089322582021261101545952279221394432186519071782228629309571298021427410139696619755645631608774138829826896956223364671621942275102201539037146596189855399173302203783836035548834998117429518289450233022844430203247232643567808551216636300241545636131936051925460049944044764873991844193787071111067557756938947976062377514117272065237696832210947003285750989569830144291962189402467955609977965720365325650345871527759864670265449361768082066771137597190676525746828345488082618343888571750988774898457932069987169063542751509625587076611637402139144949138933450136079565325364233069211276858754867801433516214623211947111883143939836896934354725773759233745375890513843388097271549093671032633416212775163116568822127347301281974743546715444535140736512949233372159188729322875491365005686658564822067888992269029674941136527609145152013483541210123204059100626279933521895399200121111427794427833267937393912923083377545262162574315026300734662228446080040649168003089791608235573685415440251219567448969146357322443362287870861473258210949195194491800529850554092874062570696204409780215167957049336796723993103917385408241682267536859470174383190143243692146356735216092758183568890588763014115467347656461985876085700317758510915420337253138654391639883782208453348584031958378930471991930780854050315619753959284291862920642021272967763741141818252883991123665388545545891030570792483469638797743583087455920167310251419624684269929012669702684814819075564823944001898395937974926257019707036463267572099336440679236361423642060964956720497929421968796556212878480014286348605431523572163735353295526191186681811416788340157324220073154412159742901454461257778659360173198114852375333524113974931185143340827064899951410927906211238484367595495658079154591391724756843508069504434846437332776243865693693598958624456048239237790501840434138096726099037089516171659046570482598624519808936832218024897901798128140229147338410673400959640318327068333237998690579109605418056566549959287712762036647985595141393341730641667208529750244476890330826810553065434286031021501426455472821902989450139373567850402809513680383646260834476556800698806443167333741625582529318348861883388025809118476919503646937835102510683581960067573195064065443734564798032612242429555421094489645072687644300668715604651280867280557875171701194622918053252107718793919153465490050692664930302744965279090177033818711447189593336351949716269412648909152887019759099829556967158953774967479313025055353278878402661424516359908245263675971787822447511752330243335647873610969690775283704974490427987208948336404329916943856275918515989017949555882203583280446581428233533412421722461036420198350088098133128325835268267926869489362327453362285158750214721332076578555642336074711028724870928269507053168187653088188682458459027973056415196335247223587710967618650319403650271779790595119971439711276117052199467773919088045298609550417224444660445279844319865473774696277619698401886883725357773141364779422666014627089925930902651518841561600728933780176507782116483683850904681299558148295735776029168643057714874685322042309469695530326992819526061917269457420080395390635073459051492568026605030243017691778800975243415528296863438964054473768103269025392776620912067868156360936156391281238958984576440177351017112977136797445015803497088047833673705993775472300138022501671219495083924935852135100783578260943727322112297860858734568647776186856963154007555945362735768886164722512212777270760567728854549235879993731155850286672471678401335538461882169542137839574819459557518883547661597089674673947695262108201217005374740763900174097093390511919037040084452382426508827794913487046806701989717923740826886967167801963274082061526344976842033324230937202821622310689200494273570278165488284619285822125029849102386733320780020131225365540896141080380033462550010285486951517501245525035282023315233198602326905917390800820611078401976576735416280887643922376286303277886235935915109407214541131874249956768606901995789269040890239733152428999192644788001907100209307345577944111890953559291675457683716926557286356623995605584581088512742818430160120377193818534985088800567042448255393900352214960744704953060989214292766973857700484487378592945437465721628941334520477242658159889333076078819567632972951993761035839076870532826954124354746800895886721254328483004687159490394322982407576504376404813253885682033695769399775690620500225781264222313207309612324829556164852707158983010235175994547956676622559671487540544923643332895931524494928587511279658596982268374241958666342701079401763513032751592395907715337204501382969314376285604956279778250983042589047779161296485161643724706329343647268138203699343831647619535063001343040926410104275674781654820452135652849968818563408819565092712126159653511269090184810735059336822491234155031370865171144531543217504146651378876991204438652611552546281474137090505665316434419343544521256638608351274846574638768736370691175881875195875680576195258223748171157943939430534324035226225508100002843658820084434671143799434037528377950650618168017784768650144548200288896257967212472381924592592393487490806158987456404970679393647897583208742503415364522674020198776908522266610955271181747007284540361095042494458308031186786475740754248989340756642259419054086422458636762572489764662899216682486909165094716445870039261618286898862849340177714802268169108648887636316617309985744613639487946108535829538500429601591301700714597683899417012451137003725568297732008518929504720932878063934389440212307853776752434584512740916521139490447930970827336171344116792417315910227154544151927412279234092209685289341345524037176201960420495067680791001069066743493461972771473361429531678541023979680072752877779713479961779800920394493527126001040674628496978245008551767923677627505944601723687621377462558943241401506356869845141319840606066923858802405195220457674115668728062485287039822956713565795238454512532682982301085191396734345112933041202798420685813066591597756543122384927586707431064437404152622299817495883870246621666949978192264385853453679616981085453010508809031459428267908515108693434491627262857144762879709786956126193885842769090579469427458510014345620794061182869602831966676870651396003371905878347906572972787149772769767181804109519236335646967472190296827918983784480871562347190604324395621683964250725840872905315952439810063093827078729666752910338469666508983435123864268651365062833636033061080667652051699055289771778869760395683565054947552041424020355568544451469514259554242745183903765407819418181753973302662545265532247767490387797354215693195307332042062767635422474529164662134704427111609717212103594457451480557342423917110516513637416764859534690909310561343037631597376073928344187150412038342419000852741508122326253269797194300135463215570590608333912487400196590570336422255558991509900780372071316707144784844089025031067426991497536886195843541093685892151610746555464134394302700853005442419352567776893576341037803269394799924968150127363977798126434215115274354229507103032480352065679544132996095088325434460492693759141480161090707549249574304175289753434684945719903697531046698408878816459463192319428390073238669132103146909649299796778630695935520719073823251707837188710275210646163442608709505568008690452616119616081050638543190289424490533578432547986315825679883416077128059433648245277251220115631627495713429421953123047682456125810173689503180631857728840980315442079434467037093048318629823219886606862436872448354630829624242286713997537398732479448978334985466442225842032709999864108642486640222981078368409052128124084280630156592801505353562481750644500896225976250769012203969061272787208478201376814768900075582740174286530248141708047222131327280815662809662665253805109755945596048155796768008761626645388124553243192260219390164378516112636891472588299617457702301270046499919440010082300426566245894433985550143142905241770274567391849399806364475113598167841157116113031244936349365872188577107674365456746476230223367441945992649664844252429276790095358429353359824745673247434840886165066668497226291277179410460453566997102226942671439311172851308123044081261468442516559131636146082565508713843194142607067111585559121707934811604811786604586275454751002413898633107556671791205174481465192359756221971526345294769619590554162101401159435720747867433928228008904157741496802161219392662260852660808090079184370064061674011251402534301418268207960774025186552324296856758509625577892021375216603699000554598965525158280325285294456051315491739284990551934390325177630670427105984569107536603766652897346222019401833740737953940321936334422841398892750565269249578827063340330492710448536827670181921620717121036634537184398537606168257369992366636700694245441737666646181426118614916319672001220830387667598361827641517911777686990965476923535358160237096946739681891981535077632312183314624935267381978309595264517158323562225697990678275245907250125876789350104940796515649942903151939594875260450167732186209193401000183716491931835885741599754709311012588304032449667321781660456365837339645393923962656485626490359465519615421313452586736707418359271286406033373632816762660726064417491669490777164020153264832018869613545356434664956584063835816865730464927787750044669540890170303690522509809461549969289075693588849743286467513995350067668126557845631460746650226394962988782551784588975658061092597413541724824993480595482617100501515864313107275293058615439052964003545404441377121056308958821703655530807715778513304753866275092598844817781151816454488348674679747233851657837257783558908189530937521813542306278789477235667744565972155114915312329534571594351697777424384045170580463946561872059311432869488667626222106168920190543651291672733876005228679003768788181308850327327089249606594190592732296362898191518442928936365672309799995554327460289225398450392758679030752093843208800973621719273322000419149870318596082534585808216089470608914365043404377493562197617080881716300712624500789451321504694102106599332484895739575373267994711503271787430222120882354698333055669124670732991945070704335353682692174247039252572576518559635250275384367337224193028913953636798072009524029682226298529674993112115533828929422119636320696816618997294677175668056870860874999677432134129148765500171220643095132617755480743653086648980165815938485607084513707777443599640601033104646507062239521030002153639059811303328799214979453215724257156937109338864179860847846391636774912849425899950287980618325613880965954310400304620479100801094398778671804786072148946192667182623485809203268506006139922243643575018249333726340642406555836672666749105632965905411629511415488189801794771078720267700825689377823735951624730146090638660057280220670605227422502305328964318297042197946892641828132357618104690785364358782141365180703755168028833476056334721846262164398798486867808293379353670839720822702223465011985350107207580234427350552488443468053199571077077314420024750831196938531494904954496876073747609004130248108566053667476146389727824606191488844312583918778701993900111723184106308632768742036929321553867575638854246921101542366771775073405652547944688202956145510260527117689392197200502273498922691823460257680519382328170973242519347542423595691386581866523425152353079297435138182265393930261917275460373288746176455914110418433945093150317742216121934774790268110907377997137304116653353175236166382146324104589698624594113706826238655313498573699317897399977071237827462963734043974088743410199299477215182501778367434336001558848779385091568565184835342278793083658681303752796344372611375445491534510551432534956862066853000082890295995240561534160812257983978151807693888130356502568674619393737006168346029233287939846257119038736508594225035079449823881135255010649065401837348802041493578456026542246861116600094381489133771658802507442342663813635183986985524958976926801590741007342897360128554450795258117656296261500451756314073876370428111687421844732841294763411381478880387628408090261693582733406752802394663953694810101281274825307137391350613309261780319226906875673587801236884049903461630381718965478542822932518742326640069786635006726480374397674012263204712108555450274265141534599821534261881842893202794493354697824303009486846554413676175013867348414438226600852021470717191806350776275948685008801973565651463171215628912776960214401344099753251344022898392155313399414438043380995459867303693645236723205443808979345166766135156197515657948504870943319282923882470171471233414540585346613782367443868134008628978439418481533376375858078124011663984422782054185574222262510984814965690943191358765282258952201268216254703401838563925789404165844785818957834719900236602149744940466004338689497474134997016090830679608179995282069934207001860196664800314437508040686157211534611204558917888364482861955113447770662948292263482475824658438233038572633439918229499022508947068496205126773615825249673148191547799964567318070458837838797399046586604607119266296340787825318911295710632572993349404948075892254001606321556608957137522641262676319271917414623616687575410461598476572070154628226580302011803027610338380798792211018260371693657082198130600709863431537419935866683607793789678818200900842475447935084454104074704862929911443074822498347249602137405295911008579200612096332039334059738139594823721804774020228328876191177886918381800739994584444662967926149254909888055931326509049584451948542631578925468050410493066825741507695837630921660305824409019888296054816772081661199572368356176244643024502204292553970803993461330709749027396858070335339920704021010314058517410812724053478161748822785107209040244479833838038289726565515659792528270747640827539817663095399359560764920281903090578391389695763747291969026306271903467512657169935224456658540283883194502490114690051327550971009758671947434991477770183664458241112420802438523683529749293626365905890870293023752871578757326819597231623174294649878230127775139816586847299749862890379392177165909342570346859067817005470230254013848872768029394549611162000436138774678414253170493619743985167610499524528634330280780714250497741055533745495510506947104581386385166726415999377292353670973708244276883435675970750519378995352648242752897378771122663912311640591454977066754631849460286349845047926700361999474421900520559637053600475271620437941716049648639957147421727598997438570620330522471545996401715847214190859976242331482507462219667103538516622227249746734715166944958477699534228757348865090239850733581916858385658919857662298449742109840993588948414208433147765236291573679716862803945741678440029561683520443702294854590089624809005918426203179764079387836471334986013640717831881013838723410290691678402063920181166607348619398016692624150298663181371083436103555014771555561397260981970371666909303579781454819273225007834261984834331091781687103844137413447183968998654481378154460076561249641969753907722937989802163691129266998196785550259035623177493018072901713000349999225025578789747017994529845457978192728233122338724958864640253683391776351031720257468224370288382791633404621177839985890747652271443136665305193904684800386011949518681391456900020274514906457014706805392840212251586582371108177590514037698644614706054937852268073544627873133230627290557394162501253754636183148807895818455355903836461281274075479483992570859378895385265868349225469736317706426278338117850629714550437590800923861269273924128174319553878472239495533137518301717687810583294185762525654034871413715717687436150383791161259024290646478748948162197446307870518966174957023653922438818666155641725459022571052738027496232730792731056249390420844590769349606108911142999673625876842708847862681982242325934056699060380772334413747280141653455341936549177847286532400396212331803451112335842414958431421132283229234183968682509940813001648791327150876398126620938055974168738531202143145670543815307385407497722013462173511846084174742428687702527242924294172003678491773955759706599429053432228291548470083775011075794017489102113665692746586885100694929633725163466848867669332717839867860087111324872644356434568187777802012548043336066664443551628049545535605388990799282651654422972176144084392755539957126528164559609537673809659299938644426392271377116461748211653107879077636675979787715850664711118699308095263338764898430378510136824889578918892396686171216714396973636479618963571244456334026266326044739286774738650955865848215084008507088900357606723540861938706514412015532329364313601444325488089386664547443831808747293299335942175089561725259352279347870040901351808139924772916504998185473848752543121759322197861137960389118433185440809173854745037934090402848835174985942881656429058541332858791749268930793689853235392194726127111819486999639159387739979526268356823432970853769435049147704864193837816252429333870107503660783960732400027097838299270770703385036813104751071862868013216642849960199013274181952311908521659757358938821909623594920300864871193554890982790438044056514814156103130831724895222465305830912392450405489850064422104724051263890453047290805714110019173060315565176534995049258751466091631165895985191771902026186177567658842122842487842355895648299724465636840563206526734925679828467833055523786773054238467682447466989831976016515127716331552892193765946466177287443873280339470819683297776828807628255563034023313146178214468734147181910143637616254952032861720955532548591472107963629211679440376688094846245517542414223186509861921266087043112100653263137241974030847102977858244683646853428508429374983784179059149310498706992886419915993467082844442786969432939873903409973602230417649877528197837766580631121316977432454943942298747470867783623826105010854931178237365333219907345831103706964439334085461332881977985517571983167369762859653520329179869245094203775524041198940973124671214659466260479420543323553363172957137958035786904540162322390680527237216731740417713770649151360885446467211142888106859026581877241070212826160851487894588102365263039427162341431511017211503927799657496363525764241149944412008183437571595078791888339695233870122984595210400350553966978262528759071480843973783717475199373859564338073862280949104077828886228041644090646602863173234671136067157524831359286467428091465696762798523542773303462296042100978472260398839757831844040774326010392976864205341900266576625671602490803903654658762815334729743612223184083491836406018250352800632556462523051944134574333483665850552906664913428237161403592005321386227747287945778153495579701316626539589014841692752776340526483207313373838195477884535002180759202133666203181018457505603470810462294572183543222007911318444066259862227016510397857902226663466986933546179222104522321959789969397684236022155650999199515560624878103188157990294120074435562268540320726128124947461069511399899779077100549634546070714722591655116690602896158603536843973805875135855216997011521265799624831974613186662219672219012297382615718761791932742321819969840771027847669650214376896331847400136820421932169202475343635915743987931667270409950478104091854770131293253039226954565191858319523488336704764554165334304467395468699604766441035371351811365831113930270317517519830987010664314872243246497468344769234730822665438769589251982017236434862028374458218225634445705569219535706592022458994552409984202248518364560894884235816220401176604472586043508041106606018474214340507135053691603726459854887540499545350862029812350174593689574255788220227470296748284727720871593144170939482843167631432259508009243636396182178490035302874002615136159686825604914104327815479085437509440236665697248498741289092092335083870998646676699158616643744128992926898800974426550770165919229931347789157161382109269055303732485525255651314307716207066948229421408089356238441268959431919262522722230121224841196397303144458848595956587765618454529271144340921035162657074931203311568323905791327760469747884056497473368194304197542565450897905517533172511299618331928146509957207011277157771799447904450730282464805999328601912638700972089764146355655009516281463411523259749830168117116733328520229511788084865113232392529100100153265777509569598341393693901662509546569774395638338295197976305190408526019780246152026086884331210991270695017137736766001563656160432961742994873064829245515019777544832976330505123494243028103587481711048811963662111376642123860964911387446848057131856188595767670000491874799379811338555116730275830917652656286261146201328925034238105565846106085805758401883459726433289420600209150149159733828862254160023386054433384182575021413920712035672910371772934192201394395090543853312616097209320542464049797141649163754994655307758139785182234581494730846978769232763744682401511215840571205219123163486132184255586524803632718863410104852282195172839658186589935386847375356604558164887570371654165993980185251185534819658260829616460589586886961332944833540705760328984213683495320543956271192188349933223927908762020526912020481312704831030746716189133830089392913524526870368519918800261693981054923276674151863241647343791129378886298248302214523321670221747844922868349310912902931214942179182767741714776953654200201174515524521693176319070996008562433743005248504374230310222311539706602777008215723915550225753725790183182338721675587964864329062440646433011234643208922818569771458125636102063254344908093213441781985539000852199815101333055403912284163660368067429874687298549850704619692027579792778421414171562514805341515823164904889704043316054853965152692820505783580849652409624413258117275790127767586064356895350470818657676760903562997088062133650303703016507234506690687557524186688464279954979065633074002483854752049425808267460105950695102714927265636232912599767399736672116282946677096109340185497423539251163137952779173273316525919662431158613613463319351216076417296988866802051613674966419585421431730502488010802454541835095974853853920600463282376510172752814351267815781140833187220999836536046378645735380061931085733604113624703084879667767143494215738334072866659038562306171162908553272493346873215919648727057117789048181021288392663828972512601910970883337737669997681930263200986067976779316357802497424867620360429943906742981194699031258461716458858510867119965577915022214506283661872734266160015600558216630108402345877318478621696208265319213044229696816299153005872684692856843448495616672954078475230409464242605056758248738312652661918258264129258506865571520274804671682121190197263556367072157960635339431402946205047340228686317337418754255548073031335560165566782249569959487604040453987912254928072867167506103896372367292776679246685688357045141380171348954602858493954587007816320477041521650029304089493129067437636479640311086189427272050164913261081098518191972597501518638469879640702296451207035271421035144403259369963598555721442101393795458382974774201200253875846034124801615067245737660185516321084802281550035667898707241848843248733341287995098626872999782895769305513898586627612691235268084771295386343620885163041081640146615192261290247797054766023141290472563875047999925400034253238126507724996819179190946272077384595644815235028620348421849551733991727249046893543462172178182420145023262795665493264113446500769986429642040515105814989201653718903091355700381413096280808808092812640504288679063740410163052385964926820719200356092575416039467116664878311531783244858596849750008064383352030359951830909519948177306782457859350879871596524812907857419259224392621550847628936378827904822666675656034201145033372934070945682782778820873461048927079026301059159834436070239009503143939220916215353550085149256479858178029728594553776738269718749149747756563578601491162913857080692520919593208982942712045104053712955291937229216284199605286380928836977514379320337221234868252619869866696264187988252262160944843939816037996751020402466378537246113480290682868138018347994503271246145110972193782969168549996664931767582459452102036579353349652936000293299730370125404884259241034890698792676656653937458610280770774391779251816362095536449131167055002957322021008972523569410519074697713377303298948447953367118359857841711690211833995359038943040956528326421681699787401792300361096610008239006279110502714520878183793482264990241467856531342200589543458152027005596247485108739953551093845789198568113388003887667770843356606696994833384399368361664759237355348291943279210992034563804431859048470564197893465266750096439300393595057341568415083887091184111883364129015031873613343209213134194906188727572947485685339314721977279514543695415979290118935990130941098611017328469236122372836064134682869085335118798740272803632233142149970977752948243782339132232691896581971723798003795321336632256846427278946209296021127052600352011352570179844904817243717205568470785938395390040338050770978359877958523242265784529667728127356385722826303500302031505630644214498929384907147663488211910483602683103922223647720112000913608966306322976353980376096372668006536458054387224100942719409891509609685180491815575547870094814250822341449822185008200595734516372260447592749099020777328193411592243307838788222348918477449071481840802047231098739732269807442922894280274038534113618507636245073136544405695446675490891379963026012144868725398813126965097225761505101249835564379935684299671965341069090703213264777949394879231871330358514690274629041194639595513466778096743631414175311234981528780062768150485290262650853902155570456613139570789839148067397388037125582730926332904105400391371379240639459367672663808839589090337713115427218659585291897177084831655034653386974242041188368448657165918763426293813285572445993228814050425728016621843669226785028452968252110536475786703005000577292713187249501122270245563723890772293753916649173345678276813039859401924624859341878774257300648874581210739715516536000170669370263959182720837693693227594165397647661164123492688810455805009692101766418583999391382881864504807224181765342545075446984440685323185570652929055704748393374783737732208864435750477017648140164517569839296979097106844001399889584244476822029645309337007626008694960168548243426599621022021238333301209502475450555716940566707197828287384671132590509277177381764039291109065707234573756714667557475497081463618339384022248734215623438305040623942845627230402084827459062964796512518998110445614651277321323163142751585871058532183347743579664058096089979854914257923180937084472612457541077491660563147440057678906680892113075019528633307850190561692707158753753979922512882746552367243724574411351822974911094099923398174293215332370699133791378029697929488261415386302410150250898592937207364878239506028892782613922244594252459194869131874034144392538866327762106031238290520317918930795810756271201895069351824188877608771435882243221919822691652254888411380142889664284250710638876967919512866753909529689206476797805376138588791128941584370246321718075583107367774102046803949268048017184127375497649895449473261265917734263063745662614302686316343958776953121253616486952677505813109906203738350559039579586652744149035018501124208456556782728606437863768214007032730971765459835023597533952217605266027436486253930488413446721585492974073491136978350875865206863715956437233086775141577653178479455537666731980278688168430758148691876300265510643478213550630772816983544954012867430778245609415777258490909957069834343772688749457413858066847391339432258208406330352263104947238527709145490603738795685758193765329783624038062192133708216398248160285382357064963469679638795867030816855799363912279633610595017752419766303790143192972357284597250935948039210624449905670761759686867198214882778211788156625176673611656483287926642997191763564653352461422911058139582857971812212592283979651137357522303192705731741807250147675854910800629861435098783945990645909743861097027270491916540083848892908363225247236945447619820166141225107618612525865989821325224928937917744771305068963310090453754216431639081008774280296160868605252388185933875995964592474005490986229666945920556059190871017364274959867560283214095419301950734103022875579733694465938158440985241576087433802377917680132626978958039677008817676718431204265742087192724725753387591716334739075039724422623120909868389407441666413623326417590954396484625488471406695746686084285822829597669717366241400749645658650710111536296155327976262122950195104533913417259454295596022490268576216726983329541449504861150939751956373204004613322129617631454746227498027953027373208896713924712941860801021388525249554074191792655706774815123276493415639709109003328766132531976651964320217087274926936111531040606241826671329414730486559795652368568423450767118643072497033031978499926344955281007497400203179624634083409735155403611707563682331338984359457198050725957352769993243331373349995099225399071477138045034548897277270279474502772766243616473258445852472297415307384423598503983124740271644025813366176394509917877114743205771514763304314704783511837942539061120861514960458155578085389292690173384391511670201322242644196226819740584099856863487662844172051749351259057715258035138116785906070210499914851495031318669176128212726656622631791004189132996228176733159403592684684384600304477979578144214578547079338585128855769680609883887951724019728817421228741813782982127764716543945952104943725743388353909052492233556946664658950534916929236004190145731191293949875007524528583776534083038760648607817011549422559856526644101536553425631592948599683457682232857980441202977537336963312043214151295890573732949102286134268461459434305274609717319511378176561585086755737177793946178378112938721657061713341474361747871164198927739149214470565325316811535204446199563428974547502830491777442278150148480549780073970439622443469807068316992123435009142925817299308371971603112724312422626803620559462420526321425863397164846976078800021210436395746759426884037153526256749270664520986146464463728698841250991084251196535513892423398607307599960029525635099974790281472337181587918131298170830684814146399981561459877055378226596206147851194258544317270651869696334414504936766905194198203373384786588579322531981122612148640311270751284587357008836686675243928858635710472691743249699794914229750259563198275584299550206238217063047805935241133316285083514086358604203712960084083754696459523945315103844452632724357529482848713937906067934485048021465432937044340754852170805175225119230360777780208706254351191891699241358992462556282322762972241499280242983834760913930740234235798282925604596484676015692192579513786885436041724926288510010408603382621150357969311143387818259732827592047742905383897169869286046594734259495084061141208456141229007164913663773201161511770615375614564536634688717967851991894172995995047250927341067175289834948712418260760951964196555216510504413421451628171165441331362426093231889232455890704889787203508942050551363992646429803387371738639026390682246918728259758774323794417048890448501738012898318025225781311247521238599501066462180504989209538720937805231802355643367935423103828629282838042136177240887398739619377451384129755713347075004920735534591516021671592865006451410673754627662109737111243927943235601332620518471276476465734121644603710641838035942012202782307347601883921514450178489858978458284536829124237820132824205071080906326612185046917857635924047904218674508497729537425065956878766992931396884790708689374811554702848880801610050702464765462478498413702416114386208173835313809650926096192927764371155640139940510189356774456830724308698332569795034191578257584890283989973279375741179080975741241283207758433393570178848692398641905980687220445381301349229902201637606250738383487911188405155603989752621177423463001817553847318027143927763123936691375802470434759737270330334850387134883778636719897692755160974938562830365769165166343584888044468506661260613574447384074769130278048000406519437115619013121040019352353758919677228488059972128221023780804982227984248352379981588719624668766337888510617819521354304916342715031008959192821074372732592247802286730300138148351449916460858218174052016582196662871155271342261402445862692114348387574424238201412416844437051603541441568106194031381474327437503629414080763621644359289289203893479726469512469828955280068377017147425481830992205219222294430205454773814511554525991940526072293402092890165993963868728297822080777487131123534133843322570182382831413283895415016592936288913537907765145101778288220532225294235669060484397454486526548073923050805142181841178510095391235157575620133472599638356415248819016193084983263900209291577157349823078361001172258159257397822198470815377396581921273808700206029425113325907616969254746538935293743282257154410080714061561141648936204420908874613609845836617791040694819516646748879854091765034448205905830563142826612546653782427705356541558367980058627788407709060002190730117808670658022000259806060433198588827758377791717271142892198169724034912111509268931824559405292805506764242937342524625831617248635590633563537400595965321026612059466236307964839496514521682750052474866429597410947211183051905701413689434527087732256997984907355618461921509254456227055579765691127663994644354561650690825238889279819238425670584173044821117998486831790773404993223182614316646901634015302361234074361014478315661897962469374850400711000183862921523504417215044190493018493544997990329784376287662858656156664420160032722427643063940263781428317334339063268675537981153013573514789763653370664042902141956728547404257982132220233285014662330259522325401945575947429476791420470512522842402830050052092520922366064750593294269637204667519232540819576639549775561443220228780159026023882435686413722066377693676127031902575158311291529622309690510643633790932434589599127486325150353838701191163816325087127996242398194695547529385295985117499550186410035431575252063529834412194674127754645037278310395708470539666568652846986621543856161848975795864265789295777891618275124075978688318492191294777409464741347813594744399515562478972722101708917634198507547353379547887762445171006722134440698284613691481098597836203697442995246734593060020494792206713727997629389197556988734152100883221227761484062903653695740605227789447965627217614378300764666610483665447275273602060247023632978151610404955238258607873566234542652277028899392482732298454299594044185690363181023249063378296715654043632160608229023699246518102996609257323442778462916802225593217975210753038667714268887125456861433743425653370785147943860701365539542870596150507114456296331748714917822677411460269015646071527707268282413967711220095502768329822092194280642069324742482134727876489850835106957194210575119773160198196181104255825446682124633979463604717830312797793497483832504945764163615229954070856732056927346402813188025756365565326496987829446810979719191629731220778462792920974838606275050832069499116253572768164716326060173085949314719993373865981319730312018422231336532920654732545226055617243748857368245053578718026992322772530962957979289854906807983818319276597516431877759794345254791089625816364564464125264586612813140437231412771419905603703331165952900170618599687504086119222164368102311143851562215263399388207727682259422790782089869204065999091940482554179610478144601992539103811511715348852769711793177385565963469627076729838412599858462174396621934051856521572636577306703967573387917572360993743138199540625695885138563094811419125591510713632092828054997141844917331203717058104836168223142804073908368439464982572876398928162601688406974090436651429730703756486632671106515307732613325836680570978256329640610375516312726420226417695266379638251516434201784869319266717708510415939695607690650479457184100071785311710761663459353477301807955783295327824625428157635590276498900073830557395401094458118139577808723385299302015206077988159520302880610540388541404272130577050639362813287187232818223605843095637179129579713840905840274337899178757185348042402031421305354225705441621285892450675416364908235406151574501891897757633007066986208453052712463907406285390605111297706486505264401860986598545626390870580871322132770538398213853751111070791380732977063232151017761126701192863246071039797225591480901259386751362003700140142069117103545210274002879202446889416396278560435049964042744701937031088573515845652121113033672729047979194517019848917193654383745492940017277083363128239887877671619855195615366240427537069311145137799923855765736818226487848341101275500852777268894333363711829352585330384513861491859149818597370864607735374710472345121959607021366625939662394780482528397535409710178269591164003539160433053296365296465116215326165308158044553741487740965964585856186777759278417171176735556667268461896806117054151939596747177845558967821935782770614613561802573163117806678175430022382256034792125213505065178537931734068742455157666881123310695620317390749037482923323982714466064709949793589376125462297912289307568796410545397050252069344127956053293678562601560329432409271166530466825029620935342965815461022439890465968952537091841832489284610170025371520604102888026591092410894676413757016676439637302633992190757702104011568921158053601070820424224857994739622871137984363663911503859662962466911158304835827083988482768931746376459272099895299376978713331516022242461197301911908982922328276836372556640901140840538616234103349392965531515362356951857867188698516399834712266788268231063943775574001228790998269976367939571570083852710583080601993032934202572420949779354175015597828031677059245573417732413705615611301845632328261007720525554659377364159487244493864671732814863408275808019548528581049830100783509291000842621047808940907747386809937890409597292526034696874491657187525004096297309894077569455303052358222110928960928660110532240282547681429649631073748897606845191545330010039232756198763437072684421640517542167739043177322326059565265537665794921973583366030722196670461068597687056921218529620736148098904400373754519996029536303654090526633024188728672111301942606175653500024169211908987881511547516771247487612058230035811839858753165794809770701857088158923219439257876369686626616621459156677488263386055515368582277055230845558738343758798881753296413133115753649427347988564486142017112581711942710202333019803147218006897348455267161430563724308556354150777727521542033417590635951114502995923893850975446851126750832901179959362444551711927179477403416999758111511187084639137589901383030485068262665172874769796567441091649760758980564685260059595626274221125238945370743953086236495131886884872870243856726991689915473374395577438391726083057487783250670638690956559374087000913470417995882518806929695608707303377729274835774301153359970245652979151417914438439513204402031514968657570965153657114724429057326455154390965277199974055266596944562356598326579078269361384345345519416765498224050778583780100495954688962430560683039779009296007506351649609284360587695190399589751386888051223816168646983872238955746359018522950952082860965523602434786345593601867924343335663591765265597586897964179423397883716270963608899621369654151338057891624972077771314429704122053053069816265129110601667879434127079422583059631335723709377754252343885567108364090943548289915825650564211272430339717051003846036584604180384821700749121255855673381831738991813663634542659503493686765479738968098341427165814761714221007177514162799781845466413837212239557114244135584579516602522777830048351393230674932203471484835960791359336454505610156788046209935847010862316802128206623021791454379129663281507415274522734932711213511666958832327161325723301877192478902804104398911893170610738475448430592022748373457462297871312234240509802125241299804942618748509858147044006781419398919845043836260497334963761840648069076515803909246546163235101779667282258141747647291938444279774189640220468557652024101935310119594371050043858339097883687263403626045426494009681690456724488496489978768320657591331366987985814172649427333737280425782464106790950054278534313487705820202330381004677117011778205858123747026276397806664681305958309855452065384134083950871980120559697880108102225644641087127341261198472351686422384073676976932271335522523107097655533118587912902010649739191046230487733929816663802112979726424574637714636408607787293981855019350088520487329891681044876219101142444172470746692328062454519782366441993513501430093748105020074118133325582074380527641177165018488449420801808170215324644641478886223984594383196128811269050482844126754544349244619495569369164080775477121804642496340140673733475248901440080474213200258206855836756897935144904545821156871833227278835955618636225393872250295187571333494730147973440189985558599503268003375167374088812834056088846469651767122065838560993788828044334548257376345419908335991096394102127639951068821539310671021682425518655430960222235927447524543735986987182742856601824226027378152539720410299130514569192928575757865471113005621989856120545935709919379040952159094311319948533988460505651183998592790581939703466742713540863045099651341755607489518968932134922118049862424649741600214937256776620324306657982464630178015795860391875276864451445625913686179273971056329010078815899975692681504961260976440775755169386676127910290220995821291108004876196422750283106151490131934053103120552856837078622567059532317852414343166261025841431127785266723267405743995500658998470878550562647036113537165427584393381892455309170665524822444740670713380876333570709849400486955173333597814737861916309649119223750948132714839083898326060659748726578326201258103771779664754701652524863375072988136066840474310440930190886009434637097468414664215643318720224703151131934153340625458434016474776238117065030660898580234828666214002475377822962172595208074936528227611997333389940413279500253099846359869145550375792136561078597094991689499299733459411514658888283631308464206002049506340694591647835475808828348602246408533930566110744925237755052795927555888650466258321754358244982557807152583007814011748592084751689450260222424926537969049286001499683694361602733248096017938654437560758523388989151690713064890860261458232121628482259512733577894809102531202951751320676955217003464602615605233025549134491897111265645733947490736687760634981233606929396085200923272698934632363764108720120115572067191128492933699540432317192382813912152936991589004375629336063266742078763311085526789827456679788128711136567289998636480631806464776138856725498473101767391049837219422055191095644674985951028120007105659461022535892053281990233224919081019482961225442098322977727341400864131621716122687934282793643584391030928459156017189398545941441131696449643712577780602340726066476736299537562902472846356722282582313936714423181295476163057328334608988293474184782952919446682051679704465590315786579144074013351105629408744316491019411510281684350951077315012286053184484937254179862124360806992902694829540810359752919640896781946921883886680381495827146360878797094135962658282037447467676531988744821325212089506784446851937612942814531201348023724950142578696082673215312060907624542690990334019949484208710714893691783334110324944973071498891940166311220117828608269530671802338873224252255097116254650064501780173362063753679642030527519173226479740580117606564324200181427659742315087737866165321804690591102278465430084989654513215476463411813083576017807030583556626109499371006382279614683537999084056751640167060418156509469917947140673752339979635539706984733547806968306654836422679932749688090155544496014542310715657552018658847855883177947042646483422353670885478829079602843994373858658661649486504927438811839723938223439006813510003905875336884018659596714340311432653111240307294513425049486729169122653801637842595991756055288040568472205274306291992859451127485822013769714541790718651634470695466618493145406715576728430040729448923386674048782074958997615939546729075171091192938211316976303071497060130643069377095051565523468469069317456164390451775918033877960877639393184831284725657244845766702756389781929454065606808865664673821147198381452122854199485004503873564217371098915234257412648925738807787153120344028592817450019403894298754104023641760948144014698294923560574964668947647665551906727916164054020905230017922181974896653775248885971077315823886561459892970163274498092063054493388248769172167794824795314069254550640021948331344349365894127649947968723802860330225264017452254311934201146209462717271738799018002940646340394490926254864818950007679264638100957954637637331092394745688012269970500900109326960764027988978990268466402660536705286662573499976476761390966924312938605199867498712761635684583196478287202421151198299695101815992083278198061250016266200043821884060178945746680677903890157462327242648006481669710432044246769742425475551345194194332419796576702522708782303436991453070907140789487437964870646852802200431945490854752443907771477234170563704521005223178825864595678168633168044109365032360284630654234861846556181388213809749504664385055292580888122460367707703558416729600548962040829278777623628608523922534605234434830630285457887307700118791803655737835253346934332339157876748218636552710153222831576888710207263586663254199339681321515033060957830036921269086264094006864965036316579141031377227046418762391422682677061832786037377797516049590020764750297223651103007215926627867631578309224112193714112231418637304332477287948122918212779096824722025885030021349976959518900728443076567934894826455713088664876892138810773436915364967878755988396232257967089093619996030785170951393893779287299468994724669858411704650810807363827838060855930935059206797602988180986254999798182376605857504136758589294454275757095246474882159087203488966083890442811752986059842370576589060795548248447187659734799548676570962546908879239119626903783740604445663627120958330003203627445620184052834916985317417979294078048305638638382076747135010340848312338658135264389984060138350854865223540905951283685068554516299543779578831774396648658224996513612121312079080881465842291936153815521303602598680236993300070370957663709304733039050069982772821767367242005914568961810208823486240884885650780516799248184573155694072474074065057583111017710597648541783107019844625212692687585224378694278248187266269277450417404253694230560551657004949211679192819394401177898376939889413684760538907499512923324038702731693412828592775405365440339922011568069065549643437972087879464873390665504557285378317534361015668523352542529272103647440447816171553261317183856796036241495683484819399064848990901958394707466164674740620613289568381123301451081330514782310012306893205155185969932386461969296836134329924325798633627018924528554418039189754649135423207046023736782589631931486670537457391021682268335351774097497620234717475253979500228442310899443807496953400529585802538698384401441730210892484274939797987670085432628665302321905395172242302621919805274891430622209621310581923942137506010844739842505018556342089747452980315339416705112592635513251971450154031418008478830070328740560045480968995609076985014509629869523012883667917769078919212484387690138691320747631720826236850150549816160497863256041596463200765832211750038861489788776084312986749114537578824505575913483585435216474928645419493318448945805888982125514300985828881298940480001211788176500167697555164710707372280922204989895117342387644153481201912979323611655070049203295111820548688692008765588093555822475304354673530763649861260135553580063161948471612812149009073830650961710404008919249123833619774485619462502794070811905712021026635298200963690822450779899895033067899687792067340492475172797089495560620267207492547215197315671298349542311444454277484942288977049568534243218291150994986492761552612937491068696384620928605894741680539761963106569973308346969302520296672483063911536864464818741035369786180451774738224203595045380660923271778629095419618193369143511516923921543153820670156840205628685150929733930265336869561947998038683758933460552827912723053230906194587390546324359564843902898869639028447980282927859355610660258147916547845751545798265909316108143713249501495921842602229154508222254663855855149661958964874584456785594677181400921310879600177721424999865298772912600837916318440399940510824525596683715119698683394378743928142195812930746978428485612277646992436122342119335899768510422403915141772682122989322122166999799257282137987133440035972327828633361145969271310229516003798408797784514584399531103051862508493297674695501108281455630209088805353551824733814564442346679556484255292835806682230983305869252239556373915797749985253593239295022548793152689705889250710373403781346216927021042123479750456910323020373280184877064983334937456905542660019034835389589080896704472481017711521289430337783100517227083422870386323434412254065161593602463466841888521985170009345775215633107879598751459527994233080881692098936041118851114474719275586758895351497980656004248280668746838984991362926045943244324046729296455722977955171050694398556480795684057165858607282239078645179898485975356226829090640256588078026082245627564877896735647654674395101761621297036826615959367597202126998833739015290688422647064237438245151279430947852050117079299097887464059028740811433284469393844363257582881149747713964420487715936106037616675695053272221694502669295806218967858985368421656107376686001842702615281523399431972732061782524090949667328252272760402083606591571938197845792878188553978098922085909932348735536893169092474382590405630398263407619263744901448845365150023947457043468923893216434600714284251183789306978401874161025348150892512871720738063335408944207296980595459482991223551517777539118426695153512482461723892455681507368218831085472164021892512480400297310013265010678327317918390234903285018471967094994068944269764826627599592921476534270990616466859092202647625190145513218993251261478219744653996198289505425579511519870022961245905910441170157357670254681219369624662921320357462029044866457592771994461653669823318146286797748807849977884835932315191669915122181714108012456667028220947367045235435619918414750202745487362774528099972074767634046798527363876052366223213953487982541176882339640127099685576408362350831226200207422181757030593428164918420530356101188801154003160052042036883401459293827945774859407136791272966511306713372169884723424795056012690249424144357015560497142466911778780875215047181832841484971817630007145416933242815766632141266618586005230619354090175512856209503385439839525089684682262097395842295399462431689949232008812939022697428235067210912598508681489265918619154809434891068183189573112182796691877510363097029522393549993732399920509986749242396975852192677016211572036529006411455951222408355674005811369965464823870165885698134409714829118478485390775435867802671862848489024890836561571340268726598117939477207924077338568154678178646226991918767753582560137117132912316595866197374707116944671896120364920558873392749168619022602892986828824279152036685251833124349111838591783235998662196294660747534656654715237157717415454265905755006511451892786706333426460550712195271223968841903278587174695730518508762939779201367736371516954338360399410115187401713174806955604599197983372476621589159251345325556836817063143740349676215532822228567591794216235430754677437494673073991799459430018848471130532817583284433698238064048181711473195110821810493915219391300392293339680617928634809360126282387022893711635908388516086417939619498320010896672807948650305987939250866686481767357645151931600213517138587080408138520383091145919549309791427720480646739680565509601850035568463503612516818909626163276679260484388571798343582917112285614487983389024756257545155098439933988183587380381713676719649443004524354767814368725092735012853621842007115969168451238213948947259502272780794549874252288623661617453878992409283673025533739064558208161789981681297441707805043384690509909504847622342213228770458500564026968421813333677453329225002300088543060902627625784407315021599515012586004074074714570835007176949418035737331582140559703465000972205853260631340103053902661033413073046268639977594744573836927755599427654356660191563078111030937032691839617440329181436476824297306597746674520808552811978926283357252609244203373272301261088955171250645627559981092656739773891122333295492244600814696587612405549345460786304877461406109158614374508828648010596798337644369038461815061925505086974624667360428554386248998707279960800314010175323899360992421988295715349683020026010450055341085544555075757264023353410459462999760890151567148188491411232898520486399704717997353309827182871044625089578537431135736170001000099076672829429939674934677664081394675149126841274172995600302721162089058588889314019369594021387401696772959020506815279851505670905369453374911048254144299582461799657896297289957968357084532269219986479778338602551440757415664275520941142512967017576908615670770083489165100048119969653997390525335423999699643393874175560024560029186889541085319406992629416594370083971175503662569505109312892969254836102680255175024724907091628422424917603364504311612747784594930374190774671630353447506002920394518128061006831590831658669337426452580762793841160429415545680900539924000024220922461201980385348402434021955316878511661113069422957694498270198720680008257367746110504460119416325385304363878159828774171456303521972937139733557556706881123650753522701219587581234518289012450949501613028286367465734673827303167363210440443301081254885599115119920529817527380986151123601063619512272949717048440848360931557104025665700023423403282370387684781689770793330769503592361363115474013288900280811293134649331737024942655995689238607730396950655588301812874123671126105128050655482776329534694890261100477175688057594383196947633304916820089154099026418012781189897000724785057392007978745151546903367925766410610241703100409720276432819326112365325776596102042294536739106839543929945337295762825525556003425856331971400644829035741141018213153897288052503929246487355537839855140867958018187658141999759758697885038234302370915763382314460274506453253058965369482235037089871793002367684453159501312569096833910745685276269680749852949050546276858294524936157889836524856586558599738197059337444476381410467561370130265589549090354093527886541679427209520022897282217426334678842101184461161909644722028157166850633139764220219194043731307964969511023023973197286481995511003389803559888513660356109071381321834837698597791877188062230222148191296257848364801149823630670383847175537610791712341942199953636689231505641177880285761822359733274620374659337192388831004340181252875112480637902781511172086896454670364025973992273749284045145147911430837314259982301906830662883148154006050181086725258093378824647445139932747984454101070565833643912644374812818022513438463329310368339812215528420848471187029277118736273766753380407173230084255831786909198491997411218928634834549749322825175672230757829530134904322723169452123585241397695311105286816486618566070475889479730296564583865727746820079347455930655679756205110775685078799625050405008412027863518926798345315665767457336244165056877960654443415720717381799035663808048171683526724773621371654401568169132890787561323845327055782306300105678039973491239927630288270333696949315638626879456230065341497626685986919687539581507565990553839440551617661746196998130537403416635533914806223753709322795276640289267879051200501394963239424953989090916288271411465379282633304775300812201498880030989765720372023760744540742811152394669548734841585261494177480431137545819139106797650864522630645026367027247238297765721342962087937656397129612670388469091812261102227904813670232107303868069551489427186299695920289119627537452605975225800616219948121756256455081312070464785867426379503396538787566507965768169657056625447533112334957614249483577326707785905975404206258004865055135779918323283783498022273275935628170161066605415011870990611576411762139555748325868933463924860743138379235498519321051058488005931406079133945124719266636523581267192717272338108254048994399743151334713912984424714813511690994150191935509510750858468987160421134931437412523069747999269847487907931257619399382319762091580689705102613866905226435574763723956205572850000990942189805275960861511142462051988069900450920056681275863757610732364215586295951687177128681490400039094132150658189439790253653896442828447720733040433632495185130258006962528069583557049097454038194236367268357370267085150968662301771698351328436800040945341555900821229353387503505046567971229050938575856068189104525393385705728632094801070063748221964946327448393777952357913242953888826350295375466112357952471020051494138757482646652569220021361459616293909808474495245276963634824705346309173374628117199154919647673302937374336027725284038205917347582983538677910013613438568577797325043868377736456888997619538956971824207513884996506319867134379061507937147651667122357360969267668347058647055531885680716325282937422536726859688070460280313283379114150826712744746177381275494110287940192181974248303468625816054264015959419802245080535432059618443889769664081606850195840180880843911974134297719638780498253390407834520825925874655870910983457310365671396556501816727099459711298218200926343687468196716460222287587164301582110941912673117106728420417088819062862450604475617003329973772045385306246116965750384184595483663084625139570101506755023874545328064804429809072879123264036459781744722483208631034839437608813285418719056820314187750488189809069438352809914783661020859254357787736822844740951913602851469654991161709315370010866890515523608675262843931412739779715967415877443507268346430375164665086629574322131229921372440230510585759523865076452611251483259722262648980296943182809929916529483403162311145950621863672689028730480428186360573570392107951449521247993734371769402719180737289509018630270647445020334332364018454059139330487355265350376540190496506825091573788625076057540181846870697068888812826159806442216125728733815743365634387044006649173168449551542800359784581490062449388888524038323543680257770219018666865326282411334717674277663584882075798282610224537244144827895532952404190718654773950682077642010855985409536070682548377467770674794725791193602201540670008289887617803250809845029364468718730751374924597750088186393410164842473990424783809538366864892482353498719636857358104802450036925367692418160190447474454564147592204781887924371721903108198602185890896060761844810169878705089648512997040865607405040793765358829712643541644438083192286841920859282082949913424445214246150711054576538959571953860869018569580449059045697237420296799001093759861959612824663454905006164275319358039468425262724724625405192182088320357054681719700236659488818259372381882586625129739032136944521240052622059084947258972736873712050661345094696322563424309697985076454315336451593564260000300500829744831617438361567512666308508615952987194915761016373775403598037031959916038295628369350345651671293783827787580075226034822653945158080514089604847444775765697750611657968171457199758946236738038586795563191580019916495909136248598499968274536636796330711443412271771349636960628823890357535314275750929534819151306844568324093984310076473225221633868197079910560748889199138333507243477681375962251868796479027176699333327621568131736645787957610858478063896140107732876283955320944897610299951342522857624484181538888469314619853008070952420062765001528198785402130481391058386676726455954065858377886169089671085009479326454241711458772319727061252828021333537654382636672090333226547323519960488239502389406075286458133649753497835690277196012131704887694032957187568980088725502939453520106892864955726579673062894871118593492440342210977612825545340040703881670385565782354661468865759593923943880070191530996003921557998248862465601131147304281126001629288248255528968042749182267117618043943252612648592066411022985358756428337969056109403191502675118909652433028165105173186516717920157639942357329408956080066864274964695110780313744173068491102031175462414849758196043593650665395752481630173688518605442006774440525397302258157571798926079935732933016294817450536674911008907247377854091980230517697883579051094845899716254801212668222255465129468608885489705113902076886068923683063365622808720842124532199377817482849634166768505132916020345184818743936872739019703498979141032843170514861278027625574073140317705976436264739660514544400421933869350034758059067620961832989460210741197177957263428287996409565610833504608261231385971862735923202535350003547866878690632816143733420490797938647438025725627062585883623871843394485585059427714831508920381631212861540973394467765231844198619821675108858246397022850858792943073977160131131067848175906288686581944836267637055368666271980468360357426095686483550284962560880436076654017596754572321555801678351794828751178594423020962918855162036329836723036236060085843094339589126057397562944988747396198845890263229862742851994901947029850984111696185337491140586548056250985088613440946637376798507031417202842171374941394145488743702152365514766173477310238514116901891635117134025634275334808786462340842595506771578838760032604471649748326352389658887232385849467904212198619281541698589941527824780410956094777518648093893543397847167236594300259194370562986130815750207051410768978089552141408089343532597877755501002302206882914679447116995287010489482768393961430816229793741916888493044522396224136849406255127598146484234120547518612863725051015800534297688851098382581954016669713882183280722358114928078864512939481375460829503808348870065542595251529749005611398541136032796693499450769400533049890487604566137428383391931462529487222450185368943624233130823995217330102236962105780292098622238169591497576458231403485383243468505953489897466132492713970494898228944960638989006516417336933201419550381837104603220361539527185805288842668317933855346326007097657482226756814883466300388859087517559999831715592408674954793425715326131323749941110745886778357428772613082032269215535663327598479756259252243469889992572500913317106108556999841188146091077525698071504099568066603798324657558808515555607348039335822794392118984354815510133898479080969813776618629534345537314588378698179987133006245940033610502038837262802329824248290247851988871562243031371065347904928303591362133804463788112799271189576075457167674924725432438727996160518656876702486912565136757573291060833900067571873570435196361254444756201198655423297224412559687210866039476633363109835153938085085925782808008141789244371379819786051965878572386961761451691206418437349547457080814706154789063853009969509786394767276035079670692163286101033150206944229592502619666869287285285464536437409030946084128412588567018481997235710873882817360450842552983971517686796294841398785068360613157635157935882851877520824561517555556082513046071581010780585288790348942959260145939514454929505312772543954878247358333708718319449387041348588147248284762612868330338181810337027072907989889317536689220741052547532589432931712329432450491864119586709336101318716928772780645768973557303610106029349824544160309719579394095742612013323925036539211079448842700584257634999114194826991122180061789033718157963310830931278409733703075185921133058744952214240136346174070823884659782845893630117378364374257060666453297630893248221397566120454423560088908722565650577485841733967415797614106823087752564373874359828392604278129280656484785838704089637331786101661445669800227900077747948333282695093664434800147565075551616526959528828111686817065029630694138375925565923868201388776238261990569918937361537044880597667692713755769625560643877566236625843396190488496723477002795209708648196095314212392059233214169341352601713759074708037515518525903450032941597932056360601696547885224882433470254696714637042441657071380437990111494293931962293844815454089290007615103420734979637678378956515781713641440145642062359011522528305952123818665036830858971921603630482164100177078672931210118531844791582751783090667486022064639920207563926907275486313820915499634997402818099548334289207139753246318125132739934693056591491968000001019646929609757848647178882062266175129301516620913877972938212726436409689090100275043734307160269562492159255123806604825841736601382379634856015256612762455056807751396022298618911802026493036839716380710014239448106716208949478156252961675997108123433769225603416447519402779884749033646288211429320098676616042916321088067448036023526731862148624205402590408057288510393274671957626773858372140504625861873897386973910055212784680823761484136572739774943521874635236091517027089799409838255462829490052459384411225370409059398228258343448502045868695671457955635013918459760560135158205349572391997722461871926790234700497902250510369751042479669545913443386500424363271736352562973954390595524306259733680850192241264206663936322135243927314003202061308624908640912713827306739470588606117775719460526503137030383346425431620904630534501710390152690298202775230836740574235888178508284017438217597765883029574871299968208376918811359907886783684757285612804825532864099618324980453127906402151102402435829569015434664123739998221248659162697673746846054131952016965160470243937862550057504403264802202724464704404433044862484082459549169038308426110007313180115637685067253304976004533557724313427430244589272816941008166590086073284339195092019291157394609204092527036849406940834094598253896780347091009549301256341965199684367678699701164617551795515750988744065364145854675743798780406539764239180636788779994250914364999596089837714560524635118973257803911137509042625620526119622274426035708384829382938201204210661880357082835238666376154394558496974142708363796756398838245497125136828755981463035087860667715608817871034618938646019961759317687466863464164637762961827091278973501223421421599779513997070925707625677274040481140036823397329499973252719241047983995242869980473109406694043912139938581573210388914311621848637316801678377595344667456532883812971653012749728351579073697007806773838281072084923694400396005163816131339243580749859589424066614787698919062193255329083269062124662445480287071453677076101255779015836033567526357853914716415043120568390544169744089310877778739661796685811915136261939032747650768743682453301736641081018662278289748702687856538349193747827176208015986165852204830979725944696048346639782294451938617781753315724491828277940799792133575668406420182772102943288843620986979389205307255033872121761071830349859737587295772770774784264504266198499844322374277963494135523919194811610952179429634256017785993565451310153451249960975365842313197469098419258916782006135428652364441147277172387353495227372004544451062504722541458153104133434751619217181673518909372744611700796581706160829369337512981078626476436098735790539849551050656433531491203549237531392332545822510628963583128165184828325378330019423573624193112459699606491848267030304320343469623268690469404302464222699802024437485748867593509265662662475970289837408756110171819279552535459421689553161598722432084072136989337752359473569474219199067224155378772702713851648560751460823677640804596096668467386420177980189009263804719895370279097021102568065359173578926018573287312648790316078918154147324965914645638480285763349177336759492907338447328637841772713454117671887421396248415017550594667715824402197998713616758203266541476729733935653761279963840536339114356945079065286724492065328382994226421838846812153689350741100200682711054640787537192477240893371811017813021492723740158830150124769288216246658391942108818111793524674501464710819707216806978479394352947257085287132606026056454068630054272916613540563088249403233979749677218962584270201657670286300148780468105660190748041605485344866112872017163368549803300771005626396772604029731669209900949475004040839062952021742437811874693268702042586692897566843531810635304693239254318075071168512540132781163370922147848324784594122507933932056575766244297368359883324138630664267463730284974475293187528434781557925744719306060707193972781728782834874674421498322175862423751317700411083571344029319047910007133384957029733181653646520743922288660359357951444364362098041846195894728363019107689134189684808718869683182824763974801382152751214419353388591762105636973377379841199375990985932539861143035564223114416997815089549425528325987518000700201456888430398182187973709818068664602817716744050796790804100336097610196879921588545883629612881213092494234100577521204029567534971338244974204016913415664228076177070143799539784773861825325576072153032196727597367684912730875370284887544929185451428128160357972692837632648653195474710171380698611691232555953426121538259809520305069505747997277407126177593462370422525183671048284136464079586883696264043925814995774158362874251626622207848852143362677865157088772113963136562076482843854992197706501035386717182068722913606570607787926680932750500689967143649155402652649900287668286428423948617903932379535788897170918037077765518585251972367765713973054864578834797623297278508380473523921716160426652690960801545188325383115762967751644548532127209083722723693059509701866508595144017732318370864475869986047020259442511307684333226266619218172888251784666679865844794526251478354003202598348281278184056852073246701072236301780635498278353979235816199877794189939081036679017009060370486868706445424303916512240089313217049948370422337368133852993680794288426159215553076741103317544953472049140661885216483163342616679730728542522583438356137093860464359272244688436536237717803679965753352652797133307716271781290849544010907838705299441637649134939420789684842464732331771871112093824629947058254769697900385659998023694268581366819314000986422600568191630273715537896282153596063234603913758103116978016050523299599713982282416905179718419593549231783226017837370070718338875273972674086903969910722373892743767283161278367129217634156483918564809208128422998401479711968830708955734088862740133149194995916041412052004578966930742441641288426800779480412038588167717306590634448980873078843430216133854024183047490187096987085322275192229910863908723820318496723562007523786295842158860391483817504675466938814643126379828681171485333913940997023519080789690807924354311503538512738639361804154808261485394604152449387484614482888519776785265487465897790656772565021108328921296981109201887036556878677792051677370635179567239611975111134010082894849320681625657948952096777459815319331710714590283071174611935756019564457626139421846562978615834557201309196503433972473208693626714678293899726362325640412511318266445567584299346802314645844606776133542824952990392597368622788191140941483234555822816514382576393663680018942503520592796800991464722607896694969756624464112769801584858520799129980650064918346716332586041837088754298481460825964353774531952124585689757238010010488844633847916829622176481899306169592534654359380890848569148154047998789153969122816222658986003980869651722874025280940822398873442599775857086973486848511811442946942219485882811666007578206154524507486886109412340284378110325703322435991303626744763848206520281305518256776418856706860959732002125475971799246666296518642121770144144392461570628749712412780418784992935971591013527515628820701140263407455131178122623113263783603453982814798124669215136163503114122011763171375501749186026370659366718022461985941366480219091863954919588539531428051982623193195254696094860089312382116465855682938362492685061315629091419943959432080844650086698326192781672919058194452217183918370147851962706692408320295292403290836537705622631015611670137465839755682003538481006213751382943367014754641460688164952404540061651546403980149373533146373584482934441926259640813913853088025772355393085308366068405396631907949968974108434512559963973892645345572995149804220531572761038851071243408321480623362267336235448878304414056315779394899225043635618519991324772841999215254135460823065385154728425051640375299871984500098967339997208649556582338713051540614507616095047387017426981640990408319454551112375301896310450823037349961203186608760486606462245567860218878611199648030623114474943009917253698871621719655641152211687161550467440886856856369106641101924603418256258957806935011329862647402094063944312538156587560729598913840029541002772494168785751560310822479449711540706026790346673451805956232338940713881479642185671350230716451928746716147285830443846386497122266913855689520811771570358365599764393042150011914243401839169592238152389791437279059540202809556455289444025623263101145234190380965022377826118769518588034274556213841025416650785815553570574404106714198218591158088065027356339989714941199278097216206519952428271780888896170511468007679796256235299737452235011676022166422260049429979678175399587255696711977430455680951618033627081018870432828563894632806733476553891357551291871417751487032332083632961175611085355091807503634915931148560129814585658515114528918634865421341576058180880242173343632764714833566505533170584301854778325943553693438060254699600640296084957672235685480604451363398990252619522058234476240308310996045704343091301929576568845140793945086950842986397103271459637488988660274910909652046140279248765729287528706069873145303458567571339546714681061676458504448647257102109851411175675225297958617424943948353871302323843344308838873351423555929239896494755521323391617148938668762623793049061182668742124008401550739070858863357955652099220467862308262877209114640724454755740973453937160491108435099293152887028442445452922557449832035423444842572108461461774591209991198501329613434115206333409303550930701019259494703632664720158584404362717263116941645710029394123518791280827849324816490579346018656657530027039308968092956107380326758550225474525927935485257263767535471569522786957515511890701473809908870618367814172917259848998621891310674426059809544509114446583018125354474556362089018758944774893154117184151565314904208195952178338275388128739764762594091833343746704436390342830929983954328677067100320869152417922373133617249023484318482589234356020637205151505926979036609796601693246000223536376932579911617165411569543028165669462397049475371015401367895842240338322638430284563390465122419227821616751967374495138688538645957596018001081116710610794992043502096372948781695201549909355285690676477711205312525492099239502840876353391323238298070394420095105619722378876133553886065033047629293880102442884749453990789835720692681711265270869853372010977585892006193677162809679939059666842753526317936445088992628615610999571715092047574396029911638290153562059922230547179985200080535230223893083814962181897101332576081970925389793508422319941385656698200854817932703854063615531952921101977565786743387490534411911953287057904812803836038606987066850784770902508625367178864447495318527921656747685101347318608030000113573234738041739242534885050367871696332477394695961744864008942514387341296698977162641446764532473174900834893048678091361787408433916286417741433542896272938221877705340319175844159982339284494085889767188428025631739822054498445061767723219316284159336579777407096355695936934270645295476204823682842023779468430460017700222356727018738228886642208922648499250208086351781525867374459430735199834626306288135549442355371106380843901446243020976003166753329081991858003793626878442535061153869823934059433292792941317903742660329568512190934624756721555715572732365231239002088128991397997297075921152629569234390677765939307358261790996217899510859984352756555110412805459910082978972201462323961021961331230896308525656796090966803413844081130958643056917484229244919028478854912983527164682772495117934634290733890769262821798395125245721940092118569138988656556484675409065425598383875678004818303548284203188069668240391648936651640745410434067954914393596720504883322078258594311177249832647816406168093813262393240932644618994658577500395276890128688779144907903107593541248522512698291605498710452221286859235493046147428690849321232901388202684154926929352354289948069339096195776008537457533494384390266947765621470026699037427905635504043091161448062147454426417788066718869390530462159366254050389780788492626091771294393029080858864734768878942455973388883186079666356890353899294574039814900294449352217220996900969955237583757290311902784118761878487923335301596596976199033213757904502549845152208187133411881137214322738186016316462388536138905319993132811279131030086812459855968619201933585173426045634992483855397217979613018466584813908883248358490186633871934955764292864493018179250948418620824805224994637542273116039750687085611367960930588908337702477405983862465128605627962398265817387074520372873182181554775199269495407877867362978515178204560677979708599172463394905092627680096267141193074090621174299663861979060515841019969534881417419106937976561948592383031432814458141073238645860858735322815997469801023689352721993277237507121779740738097987653552127075242547284285471042483702864592462919183278783689888909806442829307101227239080792690162822062715268771157285768075722623613247923382973303868283147552947247475317991161068179154268948008158755238021931733792351065968077570391665539186429389046715168487571989710107978385273810513471473435426578019049413560757594417709697191410638669883112986733740966980210587332897604008603435120944908188991283552726366232802462297130316318379296144236440201485093755152297682907520884513175618915826030508453395417726497991093033030596135740139556881963012063346736776774818609227380131533197260146715900184976375064846807156326770808816615446827491730309287300973456071311781979088651551394946091071295109465588255166092365434973855756712642515005383466786953424105786090347859038098301277852231167664179389456791717651059120380077132973175098275255004278285254206356951280073792669769645139999396146485727799441261613395661224325735890674211404287663116912108002231078507195464201082959938981512327070192457192360059181081247215774135163011044755056068534973347137102527522213552647341281766180202148654437360415765936006934866041539794084479472508154537611170122841356804914344146927132008471262003515618632836887511860446389624091660163225081644264138048511303548590803912375469634153610337117076789422903898258201580907581438788862971287614930545180717681848436147934992809544619382184639415505401584864749663065721500515728684156439944311011007292373281245455035401186443800649033319537216501979620500380067873175651524831055770119680696038216168366486379613559157884867771398372096153969148200681379578646459977156104957107676420377961870473440396707114524251488001026705677007986830131169515823250323105505247359144163080812671486200334134807385467294561260141703792650355950163562535884179702455254093353822960698950312524208748675343408352246095361597616824487824117075955147181728597193987177135388410207117902448903422187769280566273823506256043731320895089600345242077139548433051226164758321966893215899423751126346216913754251669911426569038960575000914062344865683650839838180512873715822865288454811135401992381028767247164180705166902595655796934286739295869902492042445348164872336972341551726431622638913010210952990810134718380695830552642128130650098405051687936366732773935468619275573974495962045223052180342461851287280737771414336331103489574746711032471803534032256191248909143174711583551763227766342153179370300197211573454098148892178638586477819495337093920041647417629926055000397571682705935206344534621895185951003718116899522530335324154261988067318772717643984499918385275931342427795914753580728748789194125370719502316702636892483118648601243212506473806854433816411506664091385873540710947583248496989065011749213209503700341751938694068810033454912842901918250870791772359565822785999429618418273701075361457961167839774381851093928737707268896729407158287731485453648548015169682820990775616130468074205091396609047509085607431759641123305247480117854363335757286485600943818084751297792280439683450612374070417906700346654715824103455048831707584794017853674501499283325684103799451702339505053249159023793605656313656073757541319157021035045233941253832817563615177536057064385820193194973116707972377746840711057109236513216132701097536001444898206098197459135779459092179386098660139844137191305911294307648125763872425749736757479115044266141057599396603444498736842171794438328021356020917018798250038088033852534324880144404319219647097479815179299601503215740360310952859117255917040026560603946445772718843446723764570432343094211183486223663444803163861313504797069246339945945227515944239787835738843950705912976296095810916286639062985579882401630558022425988494160472970896665200425511416996334851691810090035790288515420413521786048230698257926705362166276016046667755899201956772573238622466115002499073043797964631276923903394612702205095968605749683278292275993501929903939463853699592581485851324015829509184974002370277058651915383904092675581283693682898081244311123365863196207164738353412133945866363582763653701889881442382960509358901815516346700314388860305448038671615696733439766855916961480691337145050636351480010258282180529110660007088059751540163374881296477553630680290337661624197362907181702555691591448458627480732102362262056634864799380015597032214678943804243006066670179764926063347738611674556035428273831409602160554995682328633192205793907612310179804423688776461748138677060309062204617248467757288798036640712164562398604729082216133894165799999216812774863059308166538624360824565524167673487389987496858257652299352564524561590928583960357294157490704612421102498429129853329883459282353837155040252455456722641721919466411863781016716904821858134975484167946705203087617768791514636743040812588307354099462616725472162412329298042520511294636610394740392333630775907354336252033199839011749353580435931945812509955906935718729894118597153837420239445920683602565773209277624138411535681461135658396572213414801507402200773799708514827680966676607547025099693963996897279753886362757803633281839471175408301305862299250024186721365172488161966977717341818787418271308214815107342733660343160678824396710014061080607342112748193597385948312285659408913461343612566485030373841455382986743267070239471929004622799509197657752445937383760559991576519337914944281829019214322033060303395937204024962038338406715260921423763965477795369740928750156217365450076265925377245122173112869527632476161108955283339289528178731589935427528688819041867351152996255861789909850957784537448304877948441871028586150686029723341189685353973531621974133033041725284573455463156387034697391422446648198704621717945724891676094347905417315438322733653456794164328640062815053974336307784673599619379334214332533873653224758386449931886510956588065210490264869535684325871014095920910164916226132169319026714733300992851680818948049408469620893133325968747221596833268424601419428052388403477933878271560319158307052355924166565648419975275398974537585617270333785593242276446099569590988469722396125368466551894370240844819597152177238166720908688035212842836553555845380262385777075850124936766834911101321078898993692044641788900077307106431600011510019808153252414988209826623174301391266960168784284067037733632744814557711058052594921309697023563594688550197873866713551110859467860138327885280706006919937303071108740964086624560187837140407309623956454815684509845312059264151643371584733657150165927175480429950181176538637977639064061170951446622492350846209244974240406170265036896418134314717284161821921054978753146153268583355375042661700849956996219407822227242960395487359515352399696705565095783872451688940298361946178030198693001212780977020660834172267519770995376462844180778338407077540710392756327473595604135584242085730820704298828023632017071775253683226156623908750898300195748046162323483152093155568369929940497809596421656390220376670185424456594504483066350725987890951543723268204544818131927886212458484237896902354815147030590503769036486633910518009571659004510122256187755694137299819235882673283524304420486499919076547521263798929138225827314813063043930326962872633576253024013285302205892608416384581914279889616525868507573012278045194806514294439797339364967705913872413251495690340960636071374056452324888483125674425320788878483877871194080808551121584709776229453877977421357550029465022300362585165742588558811474763250282829931888148026138940719930272135290627085347213673535305707880223503812957400203869263789180130967960706439174638506523716895181409761943402557927407183693826489590234883675605329329562098745634186309918950087269514368236374970240698438825424418267688853353408700907450224457424267803289708740520503316959143361209232151499317764178898340947799400952547388220545902559309468312954960894833973480580104762155854147583744079424253611914831499663681461700766470386517954497293905719245558579021915043719069219768568945108619120963193867798597078178903267624953837664325867386845371776074689827125215057948829617730648337295022426779301194344451118757220403906559903625893019041352147256632668874849759092107406153431735782543860457279651696672578250800569235087617607267494269561502632369660481077302094005674800922320997942623959701140257936989639054316785944085618034178169953480197054897978546821821739572014476126948657559808102428477882670073890754371318258529516025206052353638474867572834424453511911443741025013291215574131948793213382678258186173245726850441217665054403386240857130580684347091487809341332136049870586871845409320495083190175371759864169623763747289032422524828673276109576842381038169808411872973129403539846600089183319080500447753914958797599378156820390750921822332967089361231654864666735851232061805346629532408568757885207003489673472332632858080668311097063396127482483988806244588450761214613145009289124151414486987266779296844054465376288038357654787348437076087200747815111870741357608740857008955061806585204348872386294684763210269469659115851029101294065654106521999126634322193397547322417659565852910139049874598690151359423948680733503062293821475855458576982937249139675615236107673634135371279680549501247417896529095232860190789318678366454918778849970222766061187250552132815646249181699647021192735550451691141296254429794343996972102453829153478501251432589420300657222227829252413518621585585785534927172866176024325723786166620444243653173213892293889163136470079232667832647547652700714224768457929333768266899441276499474658271243497801534927105915471499214610799992534855188999101291531063771522800726640002475237044416764167483217892290844223911679256445911175551562948526357458247239423668409872607537695235924841736634832316615293133343335665848210575624647753503222131155317302660528576958947690461830305372707060322879207100106186137762037447762583335143098615066356595492443042629679476952864467688843153946676340159567228613739090738572643865788499649402041286872358348661200562817640879742156975054064255136849786047480426959713908026150756962762202090653432161572825934719672880841433648167176609128970028606392400362845442354615829656284712163555836380757153302844857277040215260728028314433949523873045889423779337015212512270157788182962163759432435168430801978699992024545051738181347993379877380015327255856856880772580345073068903501665166706970721130533441310268112967854531206802161612898351497200088712631169054353218248442889323243458672343911040509239300726195130965408320138400154834617307280165279134685923249137875705685346641543775913908156619562333392087851223167944356971436078445098097132511172940061746028473159335012871876009860334298157970138869946018943584845448349318148238407779531474458748166145253142436462518067090133045530377057246201999949915555744964580872242474486495326927184953532003433275447238674673644617792462979815811831793127863433792626245536369877764627610466797637182690675965883292497556439442241411070396127728080954508632543963741025001930898367619971144115004575298024976365793866705819069575850406286837865564323178884675463795994226050819422214014017679012632868743181421864167537151195156704678209312074339001674062752712751385102864948281037220704607338123100481150237913734290200563185946096659024440849916203104446621356293214559640884291566699486941014969087398759034088939025701602806897933880410774940274352032382194669209081104332966517246487307381352057514329894213030438347373854143439314129141314614682417907123091242415789044722436171849137804938052294627893170123842554294575488797927972666667865039877010173577786506530880936549335139939287526076870120207082563595080336179218207626610506762664837963956345598286926654862191221758287734075084445722642591879893213079806924308511204399178531538495746519224451273703246642136917891583231391921258557264284401713965076936460690993608161506267284252971262668264245240111093652206034884395234024745630994319196540304208610058435074431618142946094815700583647167081026890979942444979663498114396310713439102906174597732286334352985482288881541462175100082039684852660351254541133379867185063235933440704945825939753506999887825088989411349594954092307899210727406653272316378060621188173392387839724940436828448248986738940262019517258700990476947685167604385236177475617005278823109696472766892607888320574649788203340294444682712469850613792252836607803907600189236446098332517201962284185656889979504193358108374466018590694369225797232196042948106813633018711073088468428286751541232682005333946389764035431220690246849453225986248097348353383061618493045657061916748671265688993675565401904298944419308126353904351161837285119232958231018968048721950041662431478099487539441430483309409877680822074761973977289919147688580122913295809350550895821200283378225662969959371222749641749301251893546709532394868003369062840303966783497403675576503641283770940916185005342442362328028818110682515811070722264729922026462273962141253537539049708202894304094488255770451625485165827665931406593504544048377282786025710836778857092333677480746113203892740130716471410440690760132225252628520857380175061319379969720810989054060434844638372335860350509764312396554193610860147526770707392776960813991850789338221232094385382621785398797797208107631543317843787239658106050292400773169711565826689757839078883299471667247280653956831968039528346671204314279098548426940248483227959154191448001713443972121761210550783683191144527265881680099301596833137008046397872339786048697674520856087326877556474634960959145120815598033428148971083342269094696736962283020805876853333327678462443247284796112956356319763415868937066540515107191155963253846854028871931140133676337616764355991028337273836239398040284697343844878351083198766258941885328885935954638150446582331398164900386463322465910330448818476582378786866389995652862477813375109455137021200479034751592057821707118373830903555971279383468640983789999871767910605619264900396251743353187513630141030232345998536928256904871829984054255412406468406117792382772859717216417577357895181484807240557290817871900642603157050818694702332124524002713064889164566455936143991953741174230363024330186966505473065939454604721311481124930550292133417564741142307205044134621466342968868132101332020957927062061843884857523243948645103813679738085989196465931997620555416506425721075200594052491539341041660761042929155225040715827862639205994427771495972931006125570952273823668212331211525116530007762420010450437186280918774608738332537624465314786177632568785004244338716152790305232574723298831276405305544094572531624565819371873970800252219578031234149633704867469678451434343892478158398143267964624220433186689395488300811850034527182030252575202128540009618458535821851920839767713194721386378980238377507939798479304291214422781699717615037564878305435309765044960367444997550821046606531221906715747563731881123119807139440662487346734840709926724062679327705739512371615422468102489490488361541692514832920380100305409176158942719792696603346801654408456470391560108896387154913635639159127164979128799305717603942553316385857903549683859863627149400002489347117866955160432800407377563369254310550100103782936234579028600024788813497516088297834573549695456365020755123090361248451966297989697256574293899181291043577424348502475897651922591111286080652937766896074344010585128346139193744082988318444149639050684951498961433672187336696370911770460457012026759736224037704489995701864533501621222371776875937484907257378425705734957886698939670760543716785308252687018282366620871439501035841166188544617382703878216383163583576607241879128715720422948812449808989107023065502566148105898393975624741855124925856239210640355408478219100791626833420152371052324188799225276636348175998591441425718499633797031954692730708912342107176876508762278235098550613299140997068335791480250405257018148667059625243919101892961593682524242164808261102543909742021204508435804513066673545754561968811341314563948249041906370317202968738439935142264963435032191908377667493494508724864996232267735025737967881670435491925906327405673604970272960467177120611592804638434153991859693334812043134074394346786936447813713539096130572597676313112061836138522123712943657835506419518597179871215184051554799698518543378721535117907506175205218327310932505339236318615527498103199357826051602194894566759704501634259300425869375741281868611055676667894067849087341256663925182037323671844563093685609659178525180976594134868199238746344243725034241275243365839782713049428468528104093413106744821739965666106298162943307955129252733514431347225135301623770627750085237010275098739784780721805015669980668016488886318253613986568146982882986271680236407663608189638687032945782883052073864413138933518651553057767665503477923414893770264674425336114512869576291241110153675496583690116672943295382056309552516230614014910423931490197975514693316797550308695535026006864205205444195193213765194888654896784112696512546535212953546815550610369493311471217509804695399876788359267089502333469950118184840290054844576848323635175680893177396697542565257054569116491024241098128643862950047995124637108023328540642762809438635238884268330448757328883322260832974905605587140637719640223498385493215541461171621963921815459468604428187615738895227429847054521128389532106847637574845471729063638809968097661109366535113943285008191371643387399840986142697603269097951776977141069339475044138230367054560377733432863307417430289065086384094534561537533234386610892744504077241382331703725438258250741197202160777449061591090391756464857806674151600584558198457988273520214517127588141496788364033122409546401139533779861817160155610881164730950119084899629507877994371039294279553308653105952640342679450544942837359313319602131890414048914529504076224600685685896993669442117722325304524911335549685224875822966748137053160996405615502070826571747647182192229344423235836897542769612410512897536202095543063115728748366604397712322535884434727379657992200954703460536469932624716666817311501283957045268912804117834132181900845926174376680014518513878656699419502251612249289580982471406054418031643585671231905136459134426192584399173369280436038073256668135807095872618682084625866521676268168574190298713401618704984298434534769307688776907929003637530223023064281180186768424989760132312784584808347611220255304053593871806077487898559567206705849812918977309867397812099705527630044815150718929287763288056362773835885006976245239819257534618231376161289727520887388875728684231456022969903874762337929821162569710679364651198780184970656829704871772836991521811244150235942916115040764136879566125801487087056969117165559612042174145116050818163099566275323265157080442107325760156687945362976456273972089997209717823429415284541107720908511581356244138110362072801047485702282140900934956562543882738264312083148734922241840380210226743466372107969160615122317126261203454115377052510280783563017909979684847569740391191108461340709976928272816235998072118294859852926906888313064628884344282073791804931342254852465848205474448965968451518523943784369656733171222249765718022680330487287062369844887121900449191043771348110576060383229036374328893769550228530440127965210630511456202080900083682716298863602010599583584117361772125008065908305307713254284602777804138806863307910070371872318176955816248034237374068734185978345759949450222608870298436237530163574901846633513952492431357328972711727337223427942364565212677503908299615688744427914922160041584180129668740773976765289823357878032120445209047992249688156135633417761271786493329871922831591664382396191843773982098672891614948950988376618438260289162140572527005077792019069261953766778134058475256320412718515204119286379629353734594593847036199810019701823545652665257549652614416883974337949855050357910361500694548312478032742981250295418826090039397880026790928580970781927666863301334189722276938322672699594566756297948487562346638030266729711380146786135721914605534044558672911896366775478960372832083236407956920729504259984885614428875422643084270651371345764448559883305846413606109463559770070875049379311810736786526789488815378441281277840419387011061079526879014733597576309396360144394971737399090182563959846820159592859510005152119055611944538473870426768262589951783262601969829376249218045198231909685985033305176850035071017698483773623264505779404231037242909537472874282069330037112383321394202423722953907203311276206634100603361083403050043633458288737563756410400599186832402792106061532911787853075431768760240400690973458521733115840627109352846038967644580135252025243175109860839587043987883397130752498542970845103356849740822888072376250693029644578609172299908278778812387699500947445346227178180864630894406761093085110650478087494896112570220803478362538698300302272729230803808979273250255958780891735958074198148404979561425490335805263149462156624254277424927889556924102543057862143366178997601194408841415166271651693040716771048591813584483333795077894560936299006425295036710653350602320930361783489101096564753620026707514627140082890640507936117615262479328381649330911741862420553442201579894610888565825759092276039255596193509746472645275984413693386329414905603469908853874884747998676602200778746559068008236565474218311312899898232518948192613132571040363467541023667562426229761890901926030463334188750822616966035961151184619798130502880160559394981532043951831777968303388465810345452309447757000400904042330100791371239158476068156180441120353616997430082858756772535432555497455431578620712910368249351119941882532046097797558088703462481678660453040327008306122843919507108412180505164408476819654121724028765077842160887758527596740823199636138045700695877649669831346913893858025752225815452763134385036032048412847496465501342729393712046871078746509834372820791638670282428967240580394434528359165334430810010738169632066491064874909138144234189819927708893365634464427566959787655529978602427459657955312743192707717224444998593040893345734067255862654327492819578893334697153150061021505959895987804121252257183177416267024011551565482558908239670303697110268422492244279257321347059149777454611733292236681954088429938170120774831193896698415008201632852387944330338733007809837932095559687814972262396443167676363989361707041073605410436197573741735779968925211035446620499930797378014905770312910779332734489179920684967104017483847929626039301051440514300164707655404585853890496603488490484976479422874572857662881970695723158901395051274100717903077835081059270117966908375903959059318729898136792545243485758105159262100433470639823703361831939399008217634798441988595811693550538317484872280511407668521777836268843062694790054675344610302681216073341251595781288376678512196576224459497834516034441901226618405783676131835420322124032539185618732957241536036677186205668844139168558362253007121552677245482071096563101854263081475600028266082622772488501463727655827013229635068308106659999749690254261923105079774751698066148676787966990714272575609477683108083920811946988886495473578140922506819614344461639396195796891213939331445150357324038957580535058621473803983014368132778450139860134018086357003222349643590733285269601434287643703672596256384991857438986008917903915192271195485515864815776714427904882922430994749861327549572952534446383560248887955106565922059328545162231765618068897101068026884306586583155668774682646068716983767885492728298683737288789049493863928165704222453529999806318155883457569422727639037981865358358556540880229529517280602524327932616503584645083737697327181587870994517196090356733611910376366659791812426541575915962833875830010816743579858154780439097225600129114192696170591194809309756397810745191468422546558627616501080344702861267815818160561876639818764263720201201460341282177540315349791482449757481385031432880925375651553129562641197694160334704286873632292042312813182804451869840988424323757049898377362395809751401052741284393924884719144317212429455068310931849551469917342675627327506057764051112193826296607231626668074612163529579562642645591611353656451500555006702992598329682768632574352036724342218002969891452189930358931815724992964051555015581028576673213384365412697584110732294650305688349231667888593079703991872435224819419447906015012714669237501922965226119226998968272624684439189149144159990616865195029631842412900722435830483920185870023234871632172890741750609260315720536989579362872107204851423903960210295728779891119557500104081040254089102135613959610551290536926137041894970755194174705779241090476197902573726714562938971827115130547331092769399717561886655383355081208011243936009456962796114572701148412821181814136834790585544820143573249108755515501424178474707971755414766880308457890051946803295140127339273944188179893109598415299776612384110866837047379994122447385019256678233643818234505454561634144688426741665329919792804734631354864343938796109458081015199006813792528178908384726553680988205904658410930069065123661533294747082211130559884621117039861176658006493004706843810689011669960798350457234032901703877377101146178818573382893390940618790620039061670111767472890126907589052310072836072200246218772109220991328087727297023936558520004420795919644756743282813024978401034390498590020531196085476086196440452363138313315202269507726906765996365831001358566357919798019702172049162603300854592290625534115837957164530484581726704006600571147097495506573422757064618793936828015877717120172357510131698250473215034685555015840531561277376125612666092826211199869281268336520594218123167346920926168255996284308785455144835918536449628666310117971121941139480710911213699653392100325896517684658840156084915381275453277727134671512116916654647877860652180534244739543791346936797352314470443269261141310662612994225696737930102625532717962514276196482674062094010204479992585373040445293614018147314439479063220680519481822697693077169194478560791955994434160741378633939845578188050507476403983130992614636491869625361077766685068209324078528844330926567231052481870820894708926528876192011267120655007398241435628771197512803328089822128852067087559090549188030460771868438880216345282349616916511265089175975195223896659806817585197313123456534964181668157509860656273443351763967877596296442138413437739593226951925938971984362871786212475075990615424913555529638098708007240342979701572150934587857402585592802272187854328791364516089138129064341145577148139563983752070330232131186600173516124374148013637588371701683594193596709240202993779631449353159418226879717582550598786956255268841746435395177139138646365233426605322295227298187860303914543204979921711342135611229694066607123361404341375995086762724861118746143113298685259588570442488519555775213830906083522782153126232462430227892054886285785953166244816304505471780553363790655948993007046084075196339129384990620218645533681504868185185434013291860261901432693056842949463776801969955711472727168949810689819209781512771857481192750458902103447435835302754730965086452392021820527390819650044180015272251328875153224354319760806395583757401138389423151898335207123699899766756983828513432964773320390290601517740993449534049203843228904411513149870781099294328268039310559034612816753741030758070663955446021763659107191573179028891480262814766159894887676391313908952162013032146781087547339173404452694081787349028494781309868662914434899374490712330570679919145469917761848548555826619781624678101815074018067782834508800070788260418656531779982076535275595761239983546135827514566206870028315559690826847954937046846499090373298164172582971876308676304595957285848943037693248604386248400279888153596846648399979510757527699676977168804787307123552828487514480575822960015502463144815075261754193323544179197964568499086854581316799076082977708608627403164146961521243469116719332649841117741982890216529877038996695739815413334394997711442180375968206874032886382857898691815078232140690765402032987017167156698068702425695282278910817550949600609090984141883218339343749576075430726771874167794654002890581922613414082122320575461136515879120650751378378028041546549771270817659079093733079346700053979333818869434128990856053607601258970343382089721617533466118539499826220358544757558182709446542525984895430261918944452456366719836082340852652349649961439065432445712962757972833906081825366387134582861744916651923047952525430938377474515880335358567024937785131284787800776335844169420757766169526408443140348736665348315522078902154531198727551631700994340682223178493328734476549897150714258617899132402884220390335763244850953818525283783368579969820098760856059599217497021794975510426509032521697429058666411601480204756334839847310155453789687594984865416942446800192991923641782441165703664323730950706453012118907642731272827437811324592597253553697697839028454501916718197962974960075341381822691402088074171889299655594579551845220035828742900872064264532253405914410207050187666619293358848624189338948598738936831048281546845272142200763021427551763446934959712900437777612010140523115335225489507028696055434311260775293355380509619938876301945991722999082060541564350055781928301317851854836632470677760665360515269042402820972580541371628605020647663529838128500052068569648860528992780808852063429821088191194909750607072561059222062377194309804310709859547392479686034605682895109334446233965870380925633186615710625868571283474901775391801364786816734959029351376421932411045638087474640478212742745852116666579808060806217833641240006610987009484759893125019443168876275495988094601659713890333879586993930283713467264546109897181970830535159789501392063133788767047525467667367950856570023390839529239450745831805023207162655746919881889050285004651433205740646264605712917486194719317583255281738748560736488600426241863459262377822653396626486912715553966856465106278572262739807308278649757170214436225614459597234400333574526338238753065305620719534741624121167944632488154668042660920299139552878555286450373285529056672886501772246822976874845980921581830704176627472119144106216064484181839195992326756642824447107603524246168303475459486787498745102580901013565718750979379405564903178402662442578143067997982243343400929602012824706336179930299356221268175629724300100026131619943692855271777718441162667936498059824624251769365303007592791189574459529618139607640231231062525560289868197599321859833483644429793221868312961946786186139804710594336481545005804860898048109436702703194552805986865529625448789370870304434390622862550105855503779788065907721534398391733023551070124265736589958999290802345550217973612263187344814124122350081891559993934330258500003254365981178449712075986524791193362261820693327382903377740586508956666552110179839287416417185302350463035874060085367408294899843453150263388196319739012892846297715721079055381852913732095507718896726144067346967852023173771839882801638176880743285519183072109099888525191179595749174892999778676630819533442935380112430341355055120482741645448924127889315946814608857116249303399087037977350963969470334031791853203069980983149236172389641358930456032935302701430824468201620979968208151552587968692134389700624591567461943939146231316571353447521278184759015733700408853107754139651417228254563160105896874721606311721244024913073391087059105812985395771645942678011572548154741861799381869420860031718825007624223423773707540822879982234286927898078602886082770520653483462354850630313782942864980519333486181461680366614146277899309765618001553149089934715832635168912245595339013942548268381063742349934967571863239151574876295601656436472820781098746053176868625345264194170709050167968462516903598889349918531926284986459035858006138531937218247584796386227858865701190594498501492262478461857860996542099315056545941936879253020430675951580917978820075466197383573067954376259347369676721054888138431561598942459335250721483373759230675163223721948142005329425776829252337830435570492891206291574835001132889821808913197599035610706971001235260441643825138233071117392045667441451032849625187912481253703556546529152460550322944588777782846075619825015078374028223602364645344906112106852073024554564623044450860275393367917364063239954267511145260564595665806317804023583408919092267533707637628633380235210752791344659665867381490250765918221727531058028367894135657326664872847976700857546700384500027933606852828579623550604135424118464086788757807396243431227851875609465439011267632625469247352790591623561680099651952316039957766628100744823494796211581196632616668132279005410453263089482081621099526048718939949357452882305354894313652520078868727264375800658394497489750766356033428475113756405380729160524187749634593729299533834955895273970029714555545079353212049792478511338985488560049601044212051775559204330088044706529223095211105962652436969120463130866971439088564303479369566864930121535962407053645373089957361644596935157387232178698699020216647372720252397790808644617801548933057948058569392988875881802156192390657369412402095503121867105551691018408940966316292109180093001227631160054541812043876846390894691838321143834048470544710734684179766274644208679083438402548539683307013133840267069629416032059035764614327882154148793078562431473711854284851883367574561065292671284901637328422296972943723784647011435682737872084241113165501276597417236884256296577361808989082074069746594269198314810400915711217386943245111084100183949687635907805556077435884865878840805545677622217804797058842239830137231226447701121684683374978074750729364460985466690375670294128505401034240044477256081703166614083702848913391317463017476694301926085740550692207276510895388529854653712398988186952935831841217362778769385225486774719798079490926363569382709316305530030222874516712798098933073323213818911199857033849222865810182283947684480771120162597123287455781007880706443995945542363960062756211217247130844678845250581115477141072900297184798930666818256005158712760459451337105767696888216878810805702105079646129759681955931570276062076446852812275214388983479660357673563761037335866655006466960638905052531133598342326996096510189354653346391345164556157149246865070035204125041674067898208121449381964625066981600649465084895618374278046098009596757002674134536159493782308804066562523259685475349729453379618681398737699420559317663555512449857261655768901114227108732426766751400375300968276752193094874953195930613727187842876882205657056975898746838299840368262781112331662764685378798950382569793579116856733416771612793748359794814563794449168600953198608604357165122923982416312297712277746249767705759616806108350694507505947554707954435823593120838745003612237972947518708538457962784628176039227732666770922139635315025290854931643263099571391068232023347800805213715837279917745111033165029183857282432711536023059939408121362548457805704285474114545226337632280573450242668791422875434423516121410298211810569679202867522719670195146819123648301909665096567130527917476965350731675664238899180632847665893238716974701389822046472650217639739981439689736261247702769804199333176536893831412942695324711166940841370612718481682558261578688215378035017093105893410095997659543296741941448963585763378451882375185312397046851601565434983574569111570533601971521058830479199634457971076996598872163014533053543090082302713082698072477095041164843148910164214081356243394312843731199694258002455480174436092403577468346493804667365748188253025468495086206986573189987153893394490628517853826668760729744029657162986031421192054601919051436454054333106331003240283825024861032721817908819538964752267785437610510084395971101854913406375212715597236415807421280457520126566970122692013095428152042340791250640457729834527711360495914324447641314590929950797799957041643432437703049679873379114344040126048974409374241491975391354026486436961910029593699427826489983166822801562102122785269418492390600971860858715616123769050502658296266316812552645751402068390516762685802466798772544016338706153655625664582899029094979796936803625969356216751655435684934920140731194003802936563779801929303430372417657857684609064982240169463625196320328156934327049277339671573029968539167333938857646944441728222220656975767435925485807294212124970227827585322996985680041924549394351910970831007978766134485442591483883987664984866641421909409663211324852118173079399005416454020937162555468783827282432037948803001591985348753488045985063935142957470143892608235718015659992826384887938278915759554359708021208139404343266859884560167041806344489714748485083799039760661220892306423337399246407677719876206149346130680205844035743075520843978731069429165424705614175034002706005395028695606999632180697708613112215774044652826967212656071549823838397024860781314471869643378667231551224685472457122144054917718555136211531778714023628881863107027556316924578063958101428062967226335901425143565900771662580642474150104148120781179789101313769774181093077159337095609118342657270612631910554529428263416004214336844384217674993043479983945310285723741518355306397859225044300250700244047174144445111976287613214353750095694719635752102382414018139791795415268237087701960018730246784129018815459444630933331301753986041194769684455183748443822555135860132733958676820862588585498948819548413521746845210285587624169480869784836020846220055511212523032760396070132071922792866156956502509720583770833858236053289840856373618952310376895765201547229543614601917838799807590740939348121890414268561677456458010836970283348021112449170822907800055420231923670299963209831392992554117097693279880961546101726789106330631063627126449697022515300250948575358545416900163521940111253315355391649950939918929955220157887207315721377852810350947891550648263040292107475934782604670638911232287088621973354117887241343911196741861112445551199544949056838170243156948873994173233582132687795351859784881102750793693523667551858608203085982931368061567291302875444961520521191291813172431905164031276115892647522113539098245319230693329190982934519921973631850585854398854788260370707962738343198717267216368496885921869492236183565583889011808655357119476285708618018875678971240305427189657401956494033067891006201687599520173290050682135178307233077983351771526573328417546008260414504882504120751227917580434508866231373096512996829916075162473558443061528357018831837846967541790512469860723971069870696929999204616111792818090843516703859009155134277194658283220860211142094896474099329772340538810030225371652413503459668192304271533070537816767399822258613128214891317901434251573681737171506408697822758350173430424634767220743840084913949719251422476934001163596151758863847999485321732068587333892632154987879535215640005999563270859536180263943839270634254523373643582009399970151437924737190418645449098211815516903195464641396786372062132023930452829109045990732121835363310221410262325141998292013937972462048932114616429716589247353802010806420465623421660284439162971024144435792919299407487420106926763590102418317752566696909941622302133733660373717324451849208852939525992491093552812553731594548312547902967164431827919565053583163655011007308131786630023904581067662911295018630131168772342788969509679497842190145652477154164270896701509444817856802937025555813620614834149353039782291707824801815579196473906736268005568738680547739533510821054257451191153666528937616215384609752176102394189129490688756511599015862154165612174483789403609820383499919749548658518435192250196455036153082645528681410379726993534785269140230846072707524867912576610210008515982201634044427529426819141908035617248430925041283328607122736172230173025963709345259095443825796774537960655938558865388419559245215082429856168381150751609141532142937083909642483143428185209233384329605286825508015411413851380391780201163167644271410330915290186949415645683162911493793407028629229326929928716397120973949415961044132537997383783162104400817443962637431334857497327642664159769241367956151033440481213729589341121503207779337287261560490115253079903315597107318782171105578759854415798500120657401365554702272586022740931297740188138156204414415652353618767312515171848278408381930592891512312443268388147518603102823478281533649005360096244295448542471038927000527248590249460994978113560013916096639903262522039560526806722568957321380464846222861985654223194890232269040339549438562330841570045742693048591667753937453132104842408835496395497615372359042438797025779184138785874018554113478312672038727519494050032493521201880533013151070349494315039431888789057431374960045248096654520128824841069543946707187584109255458309633743861248905168420089317309027174581167288260281539090537320826545273013863600551746461146489046657734246978494973812433128052573555569357104117985825109885435188511940759206813096142749129163489928782143237285734672115312977401275113097479617388792223500359469209041188920819678990867152192672780384489874081294722508650496863854328658698457864630660601891164262876691876177558558814532951224853432188423703160223268796235726933903582659515525739439303256243318981642972924849399200529814289219937754466628469728762775587813832112969047479337784009224852312402064554322436470916363466890689817622680414844160513720856202288974304076347966733878397678528737576764876730108468003667393592312422725773977581018915053626143296548212513355049346329416380183963042755108809411823298192422384483683116085851502077623541882527081875665795051268382892928139017158667413720150206401639052956891355516957698459641134726886953988850544443771301925186958851112340587563549782595111949580944770725045080951110858360635755901818381814692281512646699167621384430404787590199620154902494466574110016614843846111778882324051036250200733835696855873548829545183426020725896771821880877421605786749236079396191140133976476098833184058402947167768812196041411120680730868133064964571670268531886791403258475552551776664788496136772012726054295973707759246450778807318439182652291750339447005384070282132196708124282748967394239175047064296045096258335465170666144086283660314408943143505501377879200019501409467012069039773966563865439162315368702574018589852196989609090756575274689650860586745799898030914216743596835806400350287434812686284012283988123009066052591953370299598481383740380492398482210932594996854881734515469268194876835601279735371423871110373893550348323518122020081551254144335054688431020681649387978873667670635863691453475132792194444740546072453801650016715637561058005046412928447020904274612222375164550249878626946404322662208162588770450857500755339733907223128023819554489655751932272358902639023011544742443210050283760653663288409842675949473035469003352844771694357057273409818246840186802244800644125368952313717159763641579164152539037882204096158741249135996407559494652909933448419615326820722586155322494062208455553586095105461114471246506378086758577242487521424330286070668406406376410759574602114025025980985288846846350178667121651007542816715262469455242383221700319704555579494686280437477301765220740225794337841219395014631176609211763896981767459655126805701450097773212004932899631506311023108766013103698226928927475616103392995300174408853906890359256527332992737787963807743710864672749856312218546181518463430932092999155815641075521914729424324927123216325529668964031820526167176417362057662115765390260483293799636361266017571923071687240508507395177571017668476783356893203977798825899980456105144443238702641208255917537470181844387029593706673899314552255195742106920903644695526962554451747157070052702082686479466479904111158736735062382320251848176438495157538435065541727980694538476018491035988113729274876648676124326521188319519521307978120626076743126798289310413484256824316704400841626068089826943669987088961786573655141686585024076632132892356585024003573939127359479495567252092409214794427995084037377172863626496941662942391577761414524957614720201489533221065785879542922558363208843869909220424959876994246778077798692564371476065172266495247706565167903514239302869061971534319535060413138777623150651128887299526843239509197170056858187003617438085155721065856327793416425804090407312077340691051005078876335067816577084658439250926469781883429213416319523807481404645177846972888078021411826201395387335486993890597839894823281381312970767926203582469478312055709995030628701712599469683602064052375326152695701579937235106788754975496816989729533741256166825730178452672332666065790096363770701162751371598095572569943074126674732727010131628243962092019479956877613756251373053467350721993211292990426916167086825171088112732072493269803058439740835943096832721890535058323395781319453993466698100915011707109359318499766494023566386212820066922420616826622261813295008773968982465222762942735340214426030065025175254901809190523171581035359846029148957234751592061490622390324906215571910210103568119082093314196071226077331944479277256251426032933071084245184823047100930974717754949584952032306814376877300804472676153110278273167079127058309985466251065559377994586551462272032601440705638148178944555774909566669838123441895838629656819388492447117164225146721533496731965842046093499406667955125515722547862468616393831442919692830151654826139364313321760566822920544000657115931929434596515115629781975423448757890412840451406270643007931707793334491385251596590954789969239357452643218758739626335036248866151972729800509657313234234512180869877809298356857663103755775394838577218698260022344550389267021388894632812940681466388901003241237665913405414828618635613987210657886462677492047125312371258033994860749624545039402705688190514742518273650990299341717635647900460240346345898383119569982273776189722109926926157081313583626135499584067767309074526359625064979274381806271215280109465036212405723788223445633007815233202653414997217629975675494162759333993918342815161665428905072786309221947640225206408874972281974054827409022459012127894081734717469392719023041887482381717376694854372980492351467401111228760450694704638460523594084683247876832164767479485812206327159544128859135245834689370474197259418114260417791533924621439158416039407134771021351376504836140310720405102459426015930388871300892203670775837320416295528022772124805429220560950633414536921168315928047439541896455188070953178842736735321544212336744069401195093973945933369467729698879417155058421779074523924339656697839510290343169739404796926084766663740015946963945528839568271478289057493659540707036796933576814502351405804535099163684439441564658202938751260342784030077972043237919881180409552622101218354496433729016560344473806664903161502475605332830063432926465465796725940785628680624692453787184807254307259366598520596318220910848970553343024923459729075397699827014881857587050030000967330955781543614855448896404902859856704635423625318333109651141134931044235852202422169673004519873691572506806878904408990169827593540531967775762890003528053365721789478698764308999983009985550965521871419392830827977265501384463891289197748386425370381437243681255314059860791686292503655311216506440425124778155955662140122174890430543008279048311170320980048075043100510011374824296122116237558975978126314695149177193546916415083694823451061751127480337216878366679443589367905165716837887781135859292072501364878768229572306697646593838145639930200601125630143922892225681435699556171073105007080528637677019073324528844199119025425900865742150110920499728507711360104337049118425288121177255926652668187712145508619711524466393200918185553931532588908741192339890791264608877937466198137676426006260465408417558930980861798407425781031419334589162740017783883337579313749213325191648344922171990517093978539722247043591050362147977769513299051737936471519628019875365629881810759218991323819357097094631247771362781648950955141032075287954970112544420621627715577659769204160093985824293281522812181834130893628691005004094923839917725624234254529180754598480354228629037817546220327686852304693446331284458219441908755343849701609605493757855512815185680186917894777792733179350749877780254367668602198429004305375524366507815037194198018863111338514823963799648875272243715138674203794101955214811042338357187299665776666343047956936444161729288115350303041657831671541336118052955360101563882069311213519571032501934491138291662542905730418814021721148582465826562437364301573494538388923502236150255032207263841847690743406212668971710590992239508176620350225131657956922257111252241320946991564018490917558006386651791678884221797396393304497579153457764360179192645430275019939986921507772458658339275434899938023741425890814010674930190722715788036543139432389932193223282266428500584709797931768905222377521764213983473280235817075881544535789496276983251600737098030443314918702175832605345635712733988215156608208163017778271173144370658081784581161501553206604298233960947120310939354253243080878727089882693571871806374876447695941336570244653427225841313288016500671836285460037439357449538163241966964424505078648350405664357765141941089698759065425867322844742001033805733822978827909834182528355340453277482174902972326558105865520819660293058983894483632848393659837774654534867571570206149187533550479649612235139698524800756230414453488350701280017280399493184757227447667356775746684904632056702866144011900594630819023932385905500981893453146850518698841421890565506150955726000481364461227955621883241447114770910507440836130693816181702558467456840335113500515327745812427232810076125710825175870195421332054042427720482114127482820964332657649984687401053018809689797013163360364995096233821354866108510720821990136370749171407430686481117261676928707354585280633028608480078552956269790137808081885376087585203701264223744224229062374972437799630774707662872097542041274487276731205843441523544993451055990758503947105725388502590701557397412600444721964823117884755105155895336232855889821115925586498259612910460058835140686467840868299115218414673809234499030791660880068157024862965112949760951216257863141477046630434756746941994812849217083229047830731154542454514513335254635289196871515105079598936581427236452500844088725111954562540116727899820330969735449331252271337454558419978692099660555261996474197755361203931276356437932842039264574757962308955691620905943787285113953370490579967547929134387849990365338982538528312761347035473333406978537268029251847934086246646271535887813869504097813958212060130191397443388802243208537807902749410454204260759815282975615233580983682624555499728888899934913867909170608830062798460392229288829419868686469186940160897395784126750655246361175734650097636268160180504844726379060739119196551299409938061768334534981836836145484295243431292167311157332837884176061168842606226093685331129052124508788890911462780138206187757393477984735277692899635024815537789352227988892706184962240587273023002533217006321463662405437526210194469490572209813699649656921981177620944598251404346319951006338927467433161207822640775487565749430880693255611873927384293277145582367355807492684678384751588648174138038541829371012880137528556335103240813924379096302864125092227250366050957536658679094472826404636192541127128364656625537423840449262204441931028174636824982947972912061364662443055762272573376389710805950905009923704667175936552433195030577669193438569144372666193667424856441411440034538260376141316791751649219102067200790089395887870618850426136922371791092249110671383148759358812829289087045428300297214837497677640692694101750714869796756093229719579915518919113909183178166986985875119925895530555359304827479407892479119105989165722698847065102926523634331502193664161958881328856796986902624812261009898813076356112845870582090979026918377907637499459175456705154347584297061860233874341286316924458535836771601929199653196426597431731999365460445285851287694245270837106268901738316298497292895847273842725366879321517008025019476743938181725601619578439052993642516194345312686878983936596936742930855137562568797402860854988099066987585071186328348407743711861510447294226615945666923872641941695385805095381899133106058285930771856726064962862153713386498998431136243012799563101950617588064058107553980711946102926040748018705788579469659526618274173418118945703704091421827730265447156894357339065933173354485578594164286627966625419605051863625979753823888179413884130009686997684795721651696653862725422418964467589476555112481544000536838320987924791178500575610063224539069387360794710268757867463623478199831735704938369021926439107301250289336619640525306268665072747383513014685880489706193282068671569505203203062061288079933952141602504849147289345223934875394133323222730814534956795344172551574955962980912152887093015279796843727045377248951109177482077569155341995470533896502953517123245264412202877896121815597713559824562528819862238534333471321079321797002892708935054462376673615942826981810065005821873558678983140013997464798459922464998832974338600856637012226137082338252830455573794288637344353320178689198810065896789426231410073940966503435591268398022044261128518668839866064820383685619582615147218874456368873834378910774212721921595087740110774554405985383983751195095925680650789205018797997322194306885617650669218561597987270124496082365972086498099110892733311160448851058359378911546750251367100096050106359174821806193067968610086195287841635657318276195125883794741728271053619569386925460349545798748830752548188691279003378838936754392569471538496456986235169777404157848081934010670280415631761739100640382830552030810602651159482187101559371425209209687218405582044892824037919369060949526297477122336838445459305857344540753134141176239602975110194164920750771175521195212686402747801492871844541389427196591228568974317474586962999024320170244453278011966223608266277127947071514865130667848392578395389584177616998711551735008803085211356588187056674909556391994478422501871820295256348592581345858576988368474674453084467429796289515752146759056679617609910681470001364963000827269744224915694725207173095374033147498617111356328390380823519584187759923645685933978614918378934890503173312079729129497185346358196541881048915880992719856695295794838221289188089287442540426424701862098584421158666322063664062934508919582879711053909486024551658221310545134119732873445548746071113322806929330512951921459188442197395462411010960609447867345679014412147460693853279841441118293137469654631355159337112096881485081177283460013649162150544393415218075804690307328222375177823283050373436156129646530083819495174404957995299746105567736886849536344408180051688293993455753353273377294802040702186008734736621326793556378597213963771070498132268697334639117501472305815073220168261487772474832024360150815644972198184384093276283209130464555300783843071434511913900046883523236665768016208280110199753834960998563907116997322333639024084504919841836041990893973919202976241249771451816661864456445850328064478848123456160156541988581069684081663929035694372791334775022988579402163318982515235795543479286832178864070477055874251673379289068629413545068791192570100445920980932252284306714756747683891881912818558950021874236922176661081211021760504238199817975418751656387805768806717831494204277427572518212967855360798940575052389825884827580689079696968983086714647203037571702814276054016920563257930638137845948652302801873174491233140732305935531103180780079665384590754702120090753955533985844832795689481513535454689806965419893038198233947954794782383244830710705287638005904247973080885956863625401218661614143473556142412270703314768274386888262206361401124662460679789621993831901582710284650517383015892349413124279322059270716403461181964306754189875921540585771028494820464547703680314352724088750553624756352473220473907536512093003491814560871105845045909431804863119944051656253059771852845941453682511195086824199654168551528431922501502211621070136146943266446098565418770670030354137831677511281770265221062081584653366501382396554346767306409518815837607618505059654351694416131429531351570815856218813575124075910372516408625537353342162290002167398156063983420575209916448435760898651706352020172774334144361993851787147386566618677811418786454517034696244019627469187288922709603767731003135036120603049320582408263320509543676339077319554238072729938730485064149808657691113613231723933523231009253153951778676252937442488554158764554802363926906856225402356231240719597575646077874950816971745935658703726811471777463816177391836340483113343895380254802092145650480397298557857492236436491183813742902718402777680852314817737030605985085170582183727461650637975221302796791727663678156867329119515017720906631100645421564221386062374426901944280239302481484737405003493563843745990007141193851982231518250069436702431179759679520918808654181636181440392568481818128573298051593384192916679838419739817890019469862606076097828516997936131289659205440949158424257609116750448148083233489167640515612098820718514312641991928958443100760640211967208885467442585507721118442294333942972452881062970046382769474347180293601647761750949261025779634089536412419338063437390068296173236877311925616586875277572066453721779782038182435069601453135127986800602691841460546206216440521566257353253419106715336750863621453016398655567921806197534763457112366230847031721687534444950158548611141749854761210909681808285563131633977702562747648614257065269961344677764042876272214615554797253109579954720256272626702851747491722619081864327944119990293792432340369581126802405256402567605183366490508769230860216695300159569263244962802046466504308189392083531557732671807309336062271094344713042427772175302732599759794249238930602116693382178026375310727978716284575190673184446904121241906924030617629032022027263712815008983412585020106299232239176487422164507620115968490600302076122261431694835077759760676622837064873826039940515693974344741680431113378054736030529811285243943341611343756088752786983601317318665015918860832439770654599931300981599900734547503765955471210216920073085538157020892846916495454268245911236787712539935232305306147713844256538201696781099413672396689321480578901386715387219719063347687062953860002942849099871878273039583248071615963092989137399438567975819685925399800233558794883846741747586365493288161429426556712383899298957820752443675470748397908254366773553467673532053331930016029355509513663298323960748098571726480691398494710434890698757421780668586514538606057926065361326670777916116613366002623000247068412708779816048469644542476439805927730288439192500745933975614715005478846039333515162874694757880351725536841729614169450478806116152046241880746066458558449812174934754197234224811602028177681779970108963618681176460552818145459239471266853431272420845213986908594853404737474614391022598249816968438087779353232800259960325640684247278157872869668660391457614805539732843982802473204913657386371913908552034508452442872518457448316431945406429057643680161745673102716813642044114322612461569256376054084390470531720622675466185484144477102052383690005530079437537221757862786395578166539543259465676764356710894011196753662612620711456053275536313108910083734425577155265788295381003678925203818781943615854776119969028452571022097977068239703403976531902670743636152529167026973714799418635391431482105612572610258430986381338727815540751685400551671963673102236012957131213310359006123645170608572419120255703646182346060372263774568533916756275053539677680134438406571558588143690878621722586677474754204272288902869041987708378424520719002420434926865701339048559375954682814148530443227304809344536333248998336154996164112410759151110024500408812466923269618443076091992543898945044246233894065859760753464136116598007251097520713611421702476607983056625585921567988121184339997565443162231001333791662822927698653920916353716468618904856403005151761653790240576956513008650330632529786181720765281547621398132949776744450692628156422788941859767882867144429457242028322911105206711689255524558389159745888515724245236920527655414071753886307870574242256495318021861538938835192132882573535641051074030169420388929985847796889373088490892364246179492174318531348023167145026858100781287864749681567605093363902230054090098610459779057393471599458296635105583576021383926634398905269719243304963992331236343652215573740554246217677856146439896236367785267913567351708848448961248446109718525499487501334734842934489120334894044705078962722962031458065699383385870337459616105933314562263218023960686335767649004731346802583214889276087319162677855618599551926307519582974987960702869133875742836782207897430738308081947259098499628296713799543147262940594173951769653552991121951585272396689603191554680981880502633873474671097750069548853637611358223942643889142245103624172570297405709900184910266183484004359360737736761896837746554143782665082438916106524411337417559301318134576959326870133135251052489199677964602253038105750047804010721368421972455730822339895502990346820406881688298250920337769962971705735382343104023963446496859436840861009194398635369847286230738173286615530671144569534295776798168347696600281018422213255390896345075832438916118421444618019485236560321949965421507559795851190686150998621812965015826284499406093705397647378469037826655093380523221662600575727825497517382314342845587798434099318039505346335804681693257124847065102926534873306803867364672002707392616323672568224276008014791338581477444087859629717184862874325542947597596056451454587782476605488270490257139980173966364403962109883839402683459990681612826265195943237736201136841991947743595274276758938826966016256024650143161028047704230125887308376699017071173688091840616305750608292379507773103388095109524734511512203369956510770073107833110196497873568726882169025204448917215346960069141223464708332879866651061836031464638260355432081870914213443234412483973973163620761958939892687502116612239225709221052484313860993925360846159948963297478760591937325083607080461749196370135063086076212614451464499131659779872509838249661536346848543709072999240732389326468842829568695506692722825444063181514610554310134736815906391716134452194226146159031064204248203446678515700800951510709977328529678811739537867998678602825566669016752624536914894284424794000307592764626081702958471986674174892261268753540904469600464450526280835949109605496111329480247408214021920724115282804927230141119943851659924274327145760026755175501082569006109452445093161054507429734831220284708754325769804845025833561138502614243395239503136396406943097286011697753751426095761044091499095502230889709955349716877948959960237272856158969544754303663774195935846655826978625679405527406559142500784460802365303990186454754337278057935255477524132179066596968516929144558364991753671544065563373134748188267863479695659076390225025816019812563286159879260219399725747050560388656930652787038332221474615639311168466303267469393774688046276414735859906425019136854439392938468290953124904068981047883192530479190100131341379455551058464270095950689576899627379691703507396570468330464022905619991720036003322705479435184189895551502152739297751075219317531318187724003817181528417101318033391888596355835120888090029132904075079537699172838691953575978592951012246262644754498267588225180839380651919578055942081120821432841387043371983925388749770957399234970134170966512708146565993604328622434727440995143849188465069777489050989854064079700764545750840994140189288200105932477524484801658732535980622513280809253892254382440444121616502478010385444902455508651667388487877713473551243098299516842315948008324572071197447431249644193954217664601763105119293148127528698891827318508531651690102799553489411839855016608157474181081342537271267625090811549944691300950902451277214722033623671688125539125505725578397308044027623217166274365037800014836495091356265029605886699661340518441400396007645380139502405106319239930678330995335353175741975440175518447802049310585589883664452506984567655740597949143565286090482668058396561341477011278057662309969556355393111307765327019807850932641444713167853976517169998502773899307160317858712805532224856228983321978766900368195741608465056109160074801900132445636151777524124516678373492031143015528619060621450883742239118705266579934206129294755264858919530496063563732746736915286213281924649665462994463173345620797039708085904139802304135640316898955452446288789447878030109639464856970594712161690007818838736820012646870329707314473074580076865049153138743203734930650993354277796652991094656798355278609219189876228128076349134378116201266828843886311361515689185506711948982632094527399233165572057961626860375767357117709917273529584752963366820884089773965854307175389044322823126591039318539556216618986042706110950396963072375423958065648387289640099024232264254063745696035711872275477867160500040925181346951530650971133117764247805239701655571680213543125680725741847867716750681422312330810322331921639218862470605498038220554570996473159442621096396555807502978123595692872496004575360626462047446000850860012644914434102868524257847951270074294089721132112795378889902846935931549752836406701464473432237106129331907764315237269524739085071581645080588445427574485592897454396017197880115911121072475486037398897141944337467421207271029011244443125126263115978029102790209932665600965562330655695155649425942567218518704495408451560607880533124702662184781944004360392339405622174486193216392548963632835053119981960871862823001676412923457878030142964411360109442929046833352197695523641696246368344205443140712201053425614625407259639300283592056915324474947373336322749893721400804042937539264772247349983011449030306369087505270422873312278007045288785190343533826029183755752979129945133626748275806159525298915192408781383689299168353141458351277231511211079680033831736892028006836303775768459446352086409465783194735430278958461920674167584750909290604860837476124109986742812713058759487598380828841584596648255984993164463003198736398888137352863089112627724305372877892202006506365843979877802258701839426856859822283743876695549925009042275436724166184033800626048465307733871369151252603230377413182697029992715426543826783621967808025449655542058359540254977297735024133362685634673153335017848331576187859807260961335661080378901577209843668800409277803884144720374986406526711415335410032540756179528043132199709449541138947618801562332582295602081878490613458413212971882707665985145623788193085942239795016570081627594583079690509594529557956681862610316928383090738385424290284172022219177825063472815132146695180755049830617387117148790282174359649273467151792570414255685493502707768900013367017922813121453237421162771338421325597710500256685013532069271797521783381086234699749277541531693365977676220164394425534837347606692189809650337852376810295484679917741895144455588270605789253375260181063570090931630032110348182560477548481574102651652319177570225648400578468557096142530121151730202995348019480092763895295227450093384191124206014376363628502943784863251829932297900682844119582195711274965813904083209265988344866016451218260498763112793944955233010381140315688005628832910596889016907137495240525889869399655541426801984023657554280043402943109085520426832511766902217913079130410153007814888705760257903852793812526238048693046960799247695229898279238533643937685853756176067183358350154399104082842572282147169247545376859270685628332024090811269293834467265390012066644294756578211464354049980735574736323630995295104570455919624260540254941457458256563716494751001229692787278722480507410771668750872367605138572009088867849113717912721174831627355889865101442022682690455257675150606091620276712324825986042866572129783592592508339690851003207524340467741023717687190845613386090813890102445028150526874310636709400560504624115410599446080635731590832789463624842990285042894573843943097258471187315985661518572956005125314199713366237847699517746832331128493350485028860506969081178373966756971128503763411743824928022889887461805432589327851115427199930081973667538661191146262185359148434650658560372473993427017580404618019830537380347328667613515597157330311513980799921783501919218956660402455790700776326011234248100494451813663928550301115120681921245002895262617509071070423271637337916109046406469101977743382917720776088570786393292311121301910528689916268406528824315359289140200928882571950511423765334704576955483934543029023367633487617830198506880041146780732152291328796399781407476789637174783512294089464539036455855363631850011838128146656047405699435649899509976404909147598780547564294420436676801470352472716861145008944172268176711375366108049724383937302568660409882552781072879409540044072628048379578185035819583332130183561392237949950901098788941696342681288435993709958320968113679157150021524832100081631604590063829324217727080928821711416132838969598134851777366957961757842486146365116656102259705572646511698706300090759859126154793304267440607288717576733518960992195072420700349513273309606887530830851476942612731199319426656267298444936617977207430595033668844477903624742716622306706144389379026959832192013466811958602149078806950085268641223310140578883800776765840667214578681142167847427876630446104011697082129303053836397779567871445184865364070039727427901419455353066806369059033260503639021031183242900427413477755310804398460177593517627831851933396357275307120716874698165211245142784644473796776077280535491757407664530595221393838989263064075868124936393254429959181105218452329331052848584703535851184718294299018298114869503642153805790860885421589260206526001655018807030698766445800320971102519883281899105846848405705720747778179315262819038504266589431225527173613761399880719575713717597518748414633732207292314100177145250502058189643011700417146529200578231633203523735032238972620992449747046166588455337327236011382034544751659430401172410141377808572685127302079172850912034358258666730941815773750456901222458048115277856337788304127701599843427775960486072830529765460282188080680060457388288795651884903525098150537166337466532267240238379290053196330384664462938788500226652969943446913242851973311383011814741901759012331306371674483975796195723629181362041823845452323890793164178578054674566357479064657600660500427281399436173605633088102883327229369510454519783426698068809930629030028191993304633224997316396518091737591151943940020746967694053861340137123768374340786198401449613866709612943101402239046776550114148328801346325618135723814055913529988310634275377974385899572233925602429436133286039489285017149678565734674040168278060164351416488247010944354305094967255405506365664281645594657964392807914411285150835167520666260846512853815944972806141218132538032853246804963607127947667368330789169382818227135896783892591530627171045647585091405772883121508981853712852173271618194450378905145162736239419913083794304594753409032225277533729547017372926666022348222418419054693134359694611218963528048719358524557406980501278053160040027506347482404632893475505836156085094977405436570361828051082598230908778545883245732025999940292694972900490045243370182417391257735876829434307646057112063518746465684764590190411552427945931812237294877571663838170024728739170360532201439014166012414295685373852210666728301653587681290016471192467224285650019817927161435678279563104403554485441318886502401206999420621026459163413916088654530203842643637238828386126864306688803683874334923650205511512403425577717353316658278789908002022022871776658174274265147039333815850038347933719806632480851528434967267923749898145815542575451814519268398943264940215339804734118109718463217580049246923356189782789922507303604271425810375730228899607593123820411811812135412537535976758994402081700483981055188851338901979757986926857758862350171116794895885899972268033431736829379967897684730391527838185903778808658165718614029251844776025609217341493150181468306092278989960552587313062263083196787820607533027908199875255905193764391621185407347674828055716396401934934337519412021965982999015496698124528662342396416120833387593291955903021548552715318797634601210272855045447286140948088508102373553237026620058944497642375930680247679747162898797610214634396612651317039939508641211840584589181273598426458099475564378686654408162581907976064679522910738999951064950524161140513056534953830535409605956959207276005937074150882011242422117873421264887178018775494045007290667405038952888174496731338770157599724308329156496186295516555113593549017119454245852371827180121037264469591358355191643761646227522067338881056790414194882085123624478349811063353994739043277081456267874734478715654285841252282126610142265551298438366707395121243602979777907201661161779694880306302537499983773778449935517844537861004480451805243242623262140752915842562127707211318819594942357212012785402924050402381938566096457537422064734724642828370372197568417681936598682102987226788275341199345146691067874946649129327369700054424996617257917061838893026045141279236378384493198279636093904785159211633870708228353834389061521640757983284919665356769899507851693667764442871456260599286306938044293920620841983227700877412464383362823619892858447814178740100876518124978244757564918126007328335947847212004286419898730036341861187054205226660961013587092535162600978507673824750218057474754924528772347197724708330533243599563693392197046909655827765980566071510857879432855143866195119673663173263063095448337701496804481305877780082568221204826878305099546613911578688119877447042592643487437357924370867137350357456642373155775050913069801351810003822772822513278733058656513057766689951667917646797832760304519324134404293284324642751860938663229480786297399071234256045611294264327849767447885070019771678425182225370893140273715862499005947281698045155664121802742195180197108592963855989021453367186737652246959572980223773147848059368299604817599707994355717260215344067780594254164681372459576621342567101908694452620550120217852143867230364363320272815445926152061976133464558726355299546458667041146298418714268990478966710668402505638166978132285119178403690894180783848956095622636717055942161205041780190278193532774208921329123085228777302226641505582649880712337355117494956023794342971224807362113687859283911478083609007582508048775262122574599488242921773508258064919874014629848739306464870628882491795700089795729761680688691117449170971001407337687927146175651184930557323404571964704401530330417127445569814491214054388497125261254563536618643459098396945247743001628134427346646712449312623782272790333952881573628938607880607080272756544978022355649206792368625230455535300701589647528314737473621944506423465888208253886234691874519855863539380974208491913400843162589894972754060865498038604296623167472456298497223427949619668990954026959060760349831329203061893605034705881105459300475421841829735100608799187157650396858061127898691539741428252728242065871531464513508544422078998979275666701125802220328676494112535880646498538060070268370476747464964149003150496100015846107088360965063954553798400373363292188830989775015634588373727008207990957919589852160662271565883874552714181275874957969432351443533431217359391013992717360884581606738386757104419203751158511845927917959061769159028764221964336458091815089869583031992821798031050337664206105364173056133443528063389243463017265041486356520946581425082309187307212228484499243554993364011663729433396241960127806036128787849732241845953685703896356859393443137522779810265039260184252639134351293844164222760149668559901306348704190035263819716653744368452009109329715418526414524372845434049936912632828876251316888383800075697711584633118807951506400454060531067339929803633778612959064362463578642191228694622873489169158612185933581216323234117032547420412497862128241791318013495573787011530591425537165283423567487084617218576147303192710579668660560233949428969352913415799795355081351071555139266393734148269449299934307367784363318357046886603201183970417116884816134196450271081713553971315378128954620194106667810501086230395055391020671700974758302084205728623189794854770359005498860010586120292883455432725091944845075773512006058149904253536105294259985281531212911979268147320094817720848905030352150595537531975868797878121603246844459838057442936481309177861001803612669797003602180176603191289573329888447712538972212028779549718134182366773612561082472595041232074860332198635630050514296759169653519815680030874899762125216712031719714140793660723006163086257720844206264079225505821591780568653552653991723619172056818551861639742710374478828617160147287427637427666571643378954498964021852980566677665980790412172835284850955405086180264441070001046352830598118644829103139234652213795107608817294334572966794465505575531749387963535258504400209293816743753701423357005373439537521245122719565330667271214584010200311449298754941343789375058289754156283450761312308869276084545827827637506002846362375326602814481711003445832326416021113164726869560738344440783309272973444028320495620221628369790670599736774226982596164242965046781086068996521478335354125532184653090614002224243524555599192905954746094797160964810423626689928028698714044823383355048160724344634356868760424507155432156777493966414503034123734457047324342071499004336172022401604859409424611908193930758862030811315155719200561258660904579696798821617688555889282346917277288428521932101419839074846059823141293748764187382672472516261083831336997519588105802662378927617236181225273298873648226357130171855191989210373677762904313700206558017113474124162462788884255399837017456338898149014685610726991709128063630119847710939305090947702702361781246344896007462317279505667800657374719055864564302648922176756057867068927251754703935012605570492285896089183065271022584438635504161410544021156688690736684414507346577921462415593217148733305325928888484277829584843006227071169639528417055242857116476864982696366638524915148229921224170508708806557402335844092081047071506939868407432322460405419226420846565642326824134187317469008134272024751208675948967782567536231834055622227267494605190898195691498046180820272010806266143432342398011450123872155637187580237920534850765922418347735822896750660488250573781655929708561799705968063436852296286186474514137118740210360972690997257995223853159932081115930355920845814566955543236090053969597622103960278332968413455269798018010040791135820742298868052461647307359833580549672079190810620844166242739368793753492688406378413175652509875466501615899718379583481901010826220037457256134913162896131761640837417248640798117301980137536771411628192314692125268480715657042997076003654229635206147549827873998450776936156110215191768575637577708420414218220855703487175322621548021171234909761147982151462467187923207748492928676795380928065282736415955481016552033190186934921172726035135729157291261357972880083237150583282427812651976657090126400370953134416716152193168647509984267324877018011926529589583889281106402175091703321747239778194150351871678551418335701589545655939442370550490407503807404168262349221680190508095894746882128297591141685595454530199894108203181777608277432634378546663069894665627280262167600097722337093971576536308997437230409387171713529794195233502959198488105436793076448143861841019410146261779008553040588264087137125353531260786742846072158862538082638476762024182502322606389555801380380785116036445299029146299174259540122272960869112087548531629909707584628553686063657413706301524655615314693570347412895257220056481560695037310847584600902634407098050537120098330428842537201330294742043202780658410689373575530646035511081316318352985750921536142105032166172528013091208565052380636974847368213477516786061791637314451860604510882579857758504635848982636394793762135546078717107417698611322804284843732004592803662453951535304718659742997008584999065426059389081719544050544708177098935591293220918367456977125531414982649062806570124578725307258261975640745575391772754923754010445898733671038253545673829356024133756964823069801275027471761484468637775716890781260200443393224885267180172245832776315219859788675248344133973727437587430289981835174964497643703350743582084349997328626689396573132921316690221472685411140212570347070629394144979547319770919868647523917113922356660271642766519564307571135000160319262531668954279885257460806949326653828208376386942130900505032108195729608266061520644261034494994227138534834723286719472850141002733691494767085351883984266824675680100748148239486732072267300485976567457005343306454631271262307431018002671948203856459005311116457093748914155046272024541867423107298177250254485748722777222036240630412947132816236833612687646729408961651862187906113696437123181462444057811471841769844483171592066889164623771190742244731777451639879267441279050728311032469699988766745274429563441917719740113046158303599806729866616685026392676866559800871277211925863631340065527646224190731306956068165472593522547040215622851806374090821859642654768358868831084784634524596683753555493338844407199408468836727569620750958881390454549652082331959443884355660703185118902763258884499737823226489093869522650843044742933691511802058106356122638302612152211950019418825235267677337792392619221736985386074537117910805735956768778838024014197413877602945425116538406511667585676338366437214559809140732162573644104944958436561994977561875570973779918273958857172807101392078880180272436172091880824819133171380758819494141789855961435273595792630389107634074243455040937963805668855989453391293384790204560225295894994259313305000593114969365943013037034800609277437932762504168419474184679181249197274756458763605502327695536252358022561246393930092307487190648775904713586865611962504283960569596810281120788567662664438988815043220780237646725930438302277684097867169212585832112797289476083645694500503743788382735718454524585054960763522414452290151964861841760938528137317317092785132495552242912332688968396137350814605645272133808136320559731121669142500477477331356511930108072834809383549536893602627353386013458634375074472875496419077362018789338921491157850088672772076284601476575523118037622462685952399064935001075517849569744742938008010309201315314450436693937820109360566611635237690667876461854089439390608493063979431653391506507150937466021111619708947431340551841524625490218643346369202261129331017775798538296129362727589945782567336864512625707942903388954014479091373478688338442792258230333737886453069249760301773735886441592288777295339754898295329466508098074864580487136103743434362121080045714744389076965329300866255088462932840992002203724864987986636568864285757871913804692399972812636992762407874004045327517754532221944325968055189414703892249629775695046746392213917641067461888804645698348103770878684068407405974839590523366220696725114118621546786812639139186250561132302063256390220101760246347868795991733695959128286849017144796581170273187064308350062623145798593276721882823306173333202830613644877389394522823823526082223079652272922219256641908983224385641609944712739659427627906165749975915955115511728893514838233717869667781776301113196556482393476009638457088946101043246651082809180016050800341530017827071063245631536475623293719135219291082002359577259902567716878991852131793608045922670385374921487558776529416641632501188903349723747375490432750044624540490735560827952645523244796725661641049115011164317965468981938572102273494879897414457699596952996295793123204879142002334285506420463018429747274918448701262460296006447111441257824639084083843265240235131981571151131659042348344783883260328780287429060584318718023465045412382019915642664356756819263840016885213606694546567947772201823754539245617847783396687784170847502323188426111864681709152649610686140915048289352670327620363209994930681209601272702268317572621737293497862536870714211657518536722237759157997253140416707172295189634490526714843536632123663547423580347067913223209335310426431616365774789656113702458590194442421982790913349377041087214854457774044604555042550597826269019226411458578087466660428610040764027458424035355866794936671787799013889268356480107590107878580092164482217512082008564996340385247246260984596871399746980668121306541416886498336756132524997681778810906509805395471559603843961356703637370373368947271734279693082475861856908321786562507930013285917839076889045840815197055878181467754003012330071972485562283369174668025954897932747482658893555478625043395618912763069884872656493523986632091355259923128070914574858349535994690883681331691501464381376845716738575898978196657425049369160191941642020204816227275925294050291852901456295754924790878772572431195482954692033258212637715970891218120727125173528246490037085372660853832306489231760462992262766063373484919403820695515186037094799600728304382090331787260362836654282039660545663002296326729352357224761725177375472243528556223783696429049250301667684903567530519545621259265845757403624738459162691454652802119870624984177951707469247129737391726443758328447580300146250916595184963008167434627317268046492282699863000305883067227247257198259101901842811952764455517306863090160781971865424440421630460174650105485039985936294187434699817443443630868584813391925097322726615352299751806883178283888602504153744845708942113132140966823688307041766341626400880513517990529179777799955054668498465648682586927039902147092161814746669244115018705825662045298241417234077822320019649260831057310801460834323460291621178484778070924789167381250176778252125434705265334362578129643920148374896066931089809844004944198095644530876260291816393805317432431305585454511368798139374529439245189021226299539062089451608058736228581543837196742821768845449102906071177950657654812895062534994406583585182108655201217099887741683926181219462938358835245830471391035614245284054629911913754175128655120566767760272925730140421755868306907679127864487555631578347720686786073226711789502504931599444839530154694261002246682014600709649812393318041144422710644631568485086199395081421649904803020170152327795930389287506983065874337235691811511686938143036629897212504407923279298968375534729095642234739196286798874866662714471625910172552539937542364568585047486529469077810997141198992521532221920474888401751979933251903564343528752421316732321577608880424998987203993833848283236253178709720630907592666239538966573783872667565448011033790741629806901594480818128864673705212882826415810451075793831332189001548632978377429155883064207706618083550686002670548635485306648913875428756035636269343975463723165158546254128332119023306025837179881083680601222623438456672821556240906358501379327606494729300788734725331958806228453971426985570584987393491586056772005195968397865927379469844105287432618170389233729589430973380314895069453326864022394896311820114573256090974592064546164279773785327811011064518245867798432325622547373590439414618125494246277407075706554443491776120490098166236021324668831454127523898774575519632983311372770510217837611444032743983881563139013910450881307522029614773051191170093890436215687828332268837351589068539726577101075944026545069779978191686744340985453442081267984878908430771527168547527496318621201656766158565345589493067436291630856389726454857911067257686523488138839649914435800976367205528959246038960113705456276708745094424773083329525044842612297625443611978510712912300523769045561117182790216602054551654860708072442817799935330621820557901705427655902587262026834042254263585629418558987610880619444778455751708898595641347209950781989935785350532678817870743174097955142569228115298316198513920519302780918641973294011551557143861698452563575720137364708401401388654011073622374355964689598740615383200781178011739214917165276614161264230333320294262480493731728237849859008723659282910365988598531009409504035085803792798301995005562563498624053689102284091409499606317467132897101591302646426121384757160688328202039511085252925388890822025165404883512369363962491237565528055652108479750063494113610921147822819426401053901232034097927503945470816285168277944263983850346202448363562949302569374328798264225761064476922260093740345967893756350107696821116776657267187702110684921651242173307420124596716663716498867147861104671027894500373244225887991972564992275622907776618973702491618256289465252755021692162175616449045375805758586326730380024010050746029940980744110767894681778842105107867814923276517802258827742784447568093290259126632861242854509576251186179398654724658449211094448083024642337328440499616159293960193157803640779021029930585574727230414075692533553916889325286984857131726591779893481169359566779469958113590971121770270101297318986763113145539856165265880364596483908841592748237099191647840652486483781533595486311021923658580888368084029881455006848785814083007034446071968094278815022591984588724472391575527229638531869409661911770729659348970252444124137625014345419633843198973032119304805804293422837750616902436483079947423214970532107779018219020387912130256905145319865077778586415413846422752835293900505317243935851357141324096426635020956035525401529182416183474094573188372801782328601475770347310285872420098337876163043271057659236849723948906275663741179665591440476160939609108935683229112066606073924290997089056226339796485392423913530768536544565725174982831263452371049366741107722685157313927787129042367206929988842053213962752561306555727154477731157239301020705664101353647300089027748069617805902442112693874380057867986071805585414755593005114173462274709128575022478860170092709343348084829466612513123083240484623437584041884851642729271774667086606364996211387279980683009335109515079537211693263960228543980558936641577502580341955588361588266955943032005021283622434282275278264901879289080460900567958417890900130808378479542048581433099080006669220591749929489816025420079443836050097745822677432817937578741535504305258027977285699504819601343399436606256920500088822432460682017306188172817883362663132895166747619868817377525518939193231413045108712568911383004506940650541491901644246601092513417643846809956053649483178276779543554883989409770656269024587597609353477449552062083897287876530214424244300092711547462369489068481622713200378657361465834952125371575710993378059433447826498777466072254804785341927471995540119504160741952420094570458663346102555248118348889039004457557836876411940299704648543566302178004811232614793806035212260858559180233917527052833558151994002924728050680467808072182135240772205598620456135487866463146837875271914623578513921069443553615657702510393373826295092122483484961151913522083460523286721671944673423453201244468380444619453316965514939360454548946977739354663272621693356028350425860726592181646111892706025355696785820918399686862696724374971579157451080040757657427662810026004083526876660006941018325562059419547934959603340544157953419547774361972694304499115068448857821315146698788872426344591960312594752924844866666111479945208789359231255227729328812411568860734601422190160706434342434655496247074141384689035849718020625661288423921982850033650215530065200539415443707850184110370180610835613151569314189878678315936245739451722861893316692725715675487885024465411016269763624557207645961707324567205867100345711540423729250157477631203543347192095789772312126493375631334571868831908342570224161289293565903962678232138634584764658670040009370709181622935984745276895271086143181168908895537578955328445172653202332471685257649108335673336757825177034334000348882763601348919678845213824543554822290634994697307015053740453550603299323328257489756373986217707660805893014178725399068497927425483575830993531320144726706018946087717562326691860270086807107053030918036154385089213299722784602199535521493845115059814546178301762643539143875072342068982717087374375818423691633895793592190247678559529965589756372867567136779678761782099390951298941916026145173686969170470964774673987812011140631299337511961372771750829946724984349366499825523543241208410334184730079644389806826682024748808965298726502964675788202148842438772510518556341442518817875479784931323981108076548861833076420467393019245235496595574215919478841390450093563123670817024397393807695080489004583802233057875673183004194291632644066152867573443017912376664101220940201174836920158914852707458696105372429167482358937901744372156292679403365451023097350738407644141674432164152402696179226427020202223854125720606562395845222191439195317135208410931884051888795480004793528309627087988797476206057107012068589707267020994564907816999088670593554818024002289677033834623224251457940952344342980268898045197429553509263404092174238760983692760700923600162656217502797838373214569499511375649500219141737102839971755168774842874056269178075914962437717817746868866014177798102639972312834743561180974405352118120069805913175260712392059668814965376214319213040065840682064395867656918486640065368787953454852609517845568959159836241032912610026370977019550168346750973515421798014644682206171391846513162620906980873938459708457327320389588660164621858177139267670855195256712728643165555478730469194332467887907085552912218778938185512340884378494659693679041388733160059168523965516655940083129324746246230613237887885328244831512160412683867538448961079061754174981172029173212302311119863868981355301505695083003338886315544233864036911967031412203676927836783391451807803260131900473951792083061426539833649511112509368468037687997812847824415352744728624499857447379711232638782628926591459050321622433070596282507571723442658575109364698626942368786142315388011116330334262123281308175360646921947605293013187401398400751782947884465726319299956182590189674384199015381469475670527651751011278460132641153853446304930602241649785426662000610261550822018096474905255897003011813611339979405806974485961221930050251967787913423156875950755620694639398760648414705218117876345086738394963230191002914083660307180170397791658314994894429242986997773054742231663133110228668236300690513970496900839087963570929613046973036194918309986428827000701948868158879489177957190678998618961027199584657511966402756145828928344464773582087308423527816806492144587433699451659954030602634509768481187695525025727962297987667812198758135993717425342847921990880698587192425466631601824902089612179363279944725551361639592950269737188271885439201930355947007262556809428879341141125821871289057275544195158669928662403016144173630696764345307298876921729346723670431596514909025262441780019180228502718074288398741736345398752522717016212048177027000456280934190971493619037484494419993512802086195966517909951327709989692370238954926318622182914743134545477128729130147180196334051410512979092087084137259579454433756035003408815337593883966440481005569852485375677517568021196166775290731881331349240015109996971761241855207463802417466581525809017681723808591881531222456689886668366480079047976018068796017381579921336499597160647645762862400679364615170654482762063832516697169773977754838962094551206782814754100327474788667775220806452608469671061939180875579583528486891627008895429504238013515808208288645616996873393226214889773001205396655369428986339418444902891638180336908244622391747434060972873249656322938863286839567810348385549144246702296603756641553913155173374306686628527672684206760806812402932837037783289672987783815519666118156920767601931653571433390902103828962540097145148155056177616742349222169417975351831354477155883011594246529487496212361125299922180179461103341373787728043147964020537952791027811001410633427581913150961822030850626358583718151968110073916382753587450402986412840006559231570202045557741411990290108631552000915457084490315925348149217837749383171815551153624178679977238802739380092556011044141891066078990760931219013241815354896657846640214786354200966606134798936677018389335380392811620662328908973669894057297003721509771208526466098335837327516979956615552720064215629189898304202526528438021195861459519477840825803990033900653180212766692458754474746210748397115410417619026278778091198161919075843332529785035384436923981834723123391276494674038293139414226459796334668491951544555993826025860170165634047527039160307864135122228831687286998471495402317241636786341746703035020732798012767170700138957704808669282728775849471267634433250698662686082261189741390037863980661940146310212902728994308246919183239834976147147655969989354776519603176344518868720081180080940327993348019449192086122804424169367838819906670726408130716890036513999243766477193089259382588658137982320756048052312596129329233917642637510122781799040483472686943823250704613375075525904510632391960562473931611938880743180019148258681629450199745947401207414864090569705600347666079979378015605060551587360625420712363246561384463248658556438050320809168535196793412346293949440431281964164911578050219560307985588741380790107537455826890836734628038283212260904133681022841557326514308870523214761873372927424450954476053214364027120657931706336300845786765996396266565952390159497711175871629171003275783554213429904038244133593856084738883945083501833029925106351830440042044334198103382109573652968274752241969445231462253789718063826350606667235087451363704295965153301512945172495594153960070327010957276737917583028375029723480239641730712577813749121525722369229688823054384077340338580688492600142485245139382309611199727873473215753311798824853750683070841603721179408678115544550034341608181973437354901731393316713248048091440390072753682700398461844919551589644366847667446964246935380502255152335148072200876845095164694662691744356973464537310031537376801201739190690636160448806850569246653463874783058757464870274054636600277986886541262698906679822717293066487361245345067363956789400210533776032676046782995850257578172145108704064942057938548617928848199140060415641944713612946010992773775255416405087441419967889634915265365004699393704298382559169293627623178167125191405912102200071376489000528637030820154179787542470717623332879388430499624675367179818702655803528712788886022399593195488163073634211412923579308059491964594479780109760125468370930755572895919937730584133001721521846749715048776503918162419614762947686397978158415084549313312569526551509102378586081974826850182064642765079948900227509535298666845521062879453143206162309716025264724692369885264567035722650861390514641836232001077702697943635902497307907649923047634655178878630338916675745980113589683915442374202060616722798098731090320061085377532417978186732660686919489912275198460247383810282271852289957644056179058442350597333820332047810187729509287709245494322535209731221853241291253248693304969176984291382472301854959100510551786225810709796621882499210284274658474887144604053489116724059582025254950254197501176036733854361533202114847906155281023159948179318964220984329446260147220632921057200422763954629763589291666761668759383584277114498096817387921854495196863235108773819722465145137986968987387704123232093423584161448068844376238835573092108848261310762068803824564885751211435131835268478113275918537949701423134022436882899578866067810959079651870512503084004235623969040125386721205306023945206669755443870324478254543664206382656908395125502357013643955087829637967313246712305617906054774808796795369708052430125191833450389990439323100716295386429873872222136463057176405845295642249836078806521334925361857047521449408841967110422734291163680754903773240181538225903857127980731303159125494863388005775722195131199864348318661526837907663126098762502356576282361310796398440579423787117776744271564188034170427151353517669218994897472121256583760684341993676336424598420912991289122785917974589345560688113260813218656176060580734980716178574169121765702144003623017889220830356393428855963316581869594986179906393880843824324071618647959532117558121241785806005905148986153461844876737403166229794605109574028129444566176998038507668623456768560485466717451844646325209900799921231149885514274473036707317281459655743607294088069435087864595129995597231430544198988092101948636696278267192288132297655931065972596652855520117108033126453912119901487374967411210735430494383415731154424774023851977826352290663095372381217657635020398693841793521976829030531544592952078173752725315736196576644330002649150464745951651577945966615277781204258290768061949437715559565792274707826413595692062510285631744504964458713195111082124993365749090604609031929046263690177410040993142852190840872747054814240319431093634006337447270871998717049183316679119397262221093921042438319783234249792278628264501752100751122196419494626909551854061271571575467078767847380255275316089207108511787358616995179893114013271965906339705337428995581371959365281717657022270544565167378109501725130181047334849410386615362714270445014176873957692071013115313691114950776985430975375752409008454222215402542959590445408888688020259638375001179452986751592140815389999834530675928154896274579387485149799143043135990327117157475394983624572984507282208009027928906290287203419370919905109527791419033645989554102447136862457900187260483434337957562639412122108025938292846046650053017337510628700745890931796746330879603682201638967989801924682200418862298373176042681969243949248260063986119704148047176434989461948701811363382829960381441378059202187415926233059028462083096801925893826488705111202654050969686525004272682000511649725091538045838569324422490028223878099127521034584216093098830403928917981057502915045402114771389086426973871083672052157268281927753809389832102881228282242948631843009296619535026707194794673354915282123841057044173621661252253827249492756488233888892455344235475667298695698372670070290113833102165921795447163415550289216690254763041612266295623105616069220540143294744792506662666156762519061419446028967047550044848259009407451327509095300753444120930692667873604388176079454194828245541520460243425158397787068372679294074101300270235078781185537951445822244690535103942779267619562975815564445836917382186902134150252957416422144416640858334642895910679721752375370604957076903603416442714206078758248889619457138354487144396212081118808713527348982986993560448233752888434993394270407221828327536271378957236672655287181948730159752009119693470487138604398053736328180515247389061697435142299300669350574084425813071484568761514135753842053707328177214002318031149217168515189836479347249003990564350312497930489969695092973061063790474276319385435371820210838127880565080865207472964955952958488840255966988230599449017295446093736634537071489850466249626391302264203249287837873415321058842565221380568676757866842568636978243378687417365577030111372075170879460037234102553874597920480876701516248087808800558508393633410418433367456243544277675435674293571990365127468232028053971865449293731426430964198403161078850034583989514056987251209097148758323170989483068008405667575687782549092943633050043026295227143413329946838534446901056595313954599835842285248850779380108070633713352525384174065304957979280384153522111851559863385156881347625595261102814778907453280530616167063643759108760888726879842236834210207821003808847113327655859214888330615181825764980960421238413318586375209771556851234285431777330742943581785506050511344805665667972384629964288748669906512144173852533583247385940411436875540019092759230394900844125038726493280873107476586768699316834239890121027530589021203127251535137607604164925843260912462491915349148722029318504788153344809536339048426063853439362360088160536287147950462250528203734586630558727091469322506072477920734532053494760230404694560890270030226944988533503747104812297109685474328461366734657204701838075811698490087906807083350120337788396849344073072703839624437073590286545441682648841941553760108474209859309769512990440847717091655266649551784612387332942648900891615159980596243153187095299034809863664446683619308715225272690597281054877382114167799779160888882817499535199105484005898964388375601251216628437160233140417730227131892728285570054841602346333484753079316886939066302926751821922853997957084938780790304909743569826504479594154531451516180947150895116454253417684546101353487444745784478427927630573167139306450731663214523459669572794835618570470707321060768586998089318478783617760706094255923449571676503130334299627858224971195788878377271490607242771601293739930062961655955205997489561168807626305891247578473743914945730366033800965211469693144105513730202081969375061085076360855801538539273839719272287952772902578663571118118736115977550627605078347929836942076337024332800769159367115776589450166047980866608449336419507680326557739925178996912937998461076188351777520889500886200890679125482005724954609518480121977184754635992539594226970110913664273970395958493155154283422254780534116903674385976555296306922516057753829352561785071041866236570661934639487076858748601581781487006580044246098932767302095762266218828157081661800008037264594851546214360765165237058681039321780529846444911087273692485288414455997124585800979577180242483006409742568152456316249429140088316860006130033447613087225216727235016164385970587574481994898722801715513968740493822690916942901809280483529118757047863939942704943597640157287379562559657467619867759260222961622413769068041632112192373325170963014066236668993917945639288140976600387474810192027178437052522574736150302401997915177340745583664629319596062705992989151183147900160674786522946497503861463980949214266034829600413265169708295349080819030710919590193980302544454479771415233525949587949932908456115561136664119101126668738568867215232810246152606686375850219811157587135587273001209412003932384688232334279189119905227822126670418282600698335128423934841920359092705722828114478807331830188444065973723301719707690741280339801028564781761663351156807123967099674006914013966343372825980668585602871401604668624071610638800381699173882857933217859670790447619555729549337302543812686325600079690749984995289145244971550938258927248137189232180634244480358195502982145628889405718486780834180006031291772433109168244963436343080871644330388687914339535143692618996881290711943520475576011477593527805597374955886906474064796998656134234064920415212351592792013192407138513991464123448091886885041071574390612588711628275924920038970541097826424534009725581486036427167639743030180773552612972150988333314629981029239669283790214619105585398529103049415251953260900234456546154080834464683543360250231604403377992437580913284754342732764594296755890640022041032649261651998648176404667813451377674796001737128755813559255602313977438418816718745369560139693427657716061629148358644984318806776475079932459089281362737896914726232662410558731384896895205526101426534686915793374967035314387894280974579863833249907921079723404483596804292137104139491954500214857998068308967046177848551899373371088702865613278716983076344676968541394001388609439895890157725297964929425650990199543193961735403977520543134360070275948618316506059181467475850083911039850655169694950114554166488416856964422700635608237789559201619164137067934507809702484164719658809209462346744168872060779946783766498186119805303979171758939624276244260267067305520700684825053601225026535178902536982157567437094530107484007562095743050199516049185045162261059769066916930668568903056058492225488013981104631033563772567701024719957819761429979790176327451982935163837700529666581697562083424972341018571190229267770523977936568497616807368755733063720609931843618590471902813159941449155680779330884795405262414622232494962598493306477856997803924597819090216122274269721682520507880436761534703265033854258070042497113114568479168335441650449464963930211680661899345044477340027938860123573762150707682202388251231270212795079572119982268635527542488473143790426996439482422901971006417523799556866089199242874349353037823072817577110218969539433730548441739679241233777906192683789754473783526053438787196148909336310736016105224674607670507115978304537149320469183828587941149186183266943461183792193186193550749784919570185883490063168818869934681913118376570681804144280302855976871366178217837463224996783855730352889159698651027846775385270044197183247008108061927267332429288304273465198685313469923359687088932570861730095834761924563496979470216849126278437968383422662864710504925328799117824233833623320974537479332899021362996178894974964996533632182987869926973741675378267734314905833537600250514631538319697776984262138540489595949576670787992827790363269996776880088463509050974540545933998570696148145697013164579587747549967863875290423200749105135512856398523977071222113316879127804168464219569753742965553270960732980393611661954857067323935565670335020898901261918520004807233700496956738179509772225367019315502488527908338750777598634790538678446176066386381556104201842661520725795692441788952962881327738657137213305079174657373524677954366508045732180190768475136555984733337967291618849716126449004102419819372917901046510243801619440542937813412717381793435521944495628662420913203163710160378837184857432778781255921594013915996788237672530506470052288978343601407821725020236737918030221328071845871875296626951213920845005337704459039636607062087995190951769496820593849114295515998134504704073989529475914977386173397637733429857422453635329381535573589721366732203565688017134248056883047215398812728952539261232909830193539580366732790166293629960516848738821377747463583994656407065447436809332624847061941597849265790643496282872941997415563409486633492997196460120420899449146469086413293691697051622578010507354251939452410532999252319405746573998483686050446640624553047322559187090446917992564449086366131417870331937591119552872028536886132812332309361398087382078090513685002639406599237586409392162336937042621205440845137598748572461492718510536734873072204441341265040654234936866319848392556930535249725964387658545356586224916681173743430015937975515608469215917596055674543736419190100216208097198017806932286369484577556155345279421801689615905464301444152531136993496823574709507932883386114202283983800302588634419902159005508045611674561265107313316573141857713252338498047429090553616732662362893272119288790078273768993537575734119662283357206304451234687146805181175495501998640341623465941492024321166917423217341719871454001399740725170264312531165370406142920436275426851131381103775431928783438644333322696659170235622105343287035159430534974153113820677446691136754920722260036776750218438116379165205882712596545266658656474444447876135517959007849171420201040571111447297165355300610935886085669893508161216049081890235621384871969807660731819786138885922182603342000066016983391037901142664714333027880949683667290299927202160457711964338724739073159874035806059425610077119143426078415865641431562649401690760469012579870570973152599641286413067294127972529502756888047517835314362448722100691589283955162363900013407344755474772092156951349525486248634261513501026906701527691946027999148972085049014006568149355743798320064923996477896013568855966120622372996338323332257228488173915963184871208729632087260312986399035289038518907828800256038266999922816454029060160927271358004147685959104141117492160683367657984152788885311587269824949482171116275061072536775905764644652870060281855494754339208363526524095526173047013707317242241641573410881925562676374926985327462633454530106116393074211910485553936572832742739184749649568899134648351970234511680517659192999203654020872832327577761721228426363858788352150399690749295262727263859549773173792116439129311662830899857074067193777025149767557297196946088359474295014801080626884465420237728199627497383492202475323724739840205210785920355066138335013406978096091173588032241315089649965195248296256803821232844560852632927847810923775181595939077980538651535948781032791388033263997079720391728566339666321004133085264768112883938041413737927943537253280143373312831126769400450133527749396181834944383246656828631185595685673656318327711472277128019325369343315787141470434452823102306504597573266896952128353517341899969968650334094855696312070849493863849145467974464177675640240373340767860841538851778248167642779372081046624281632176298086975514062599245909032526895415681847872941176651110227664416702135678659099381101265961770472437912805580664289628941544482256608742121095638991530116114819517108115267156324772202831604601536240250421468724261211542128420827857510260567747126197695355294652744482077942153246723586493703261774575655009165890682397076515386911038736229888174857602294096333421538434189855633152124890713528238300362436032659623322688935515407182174224501231379591216762105346491030573161393933338599200987074233406368441094728057540937954448159978875699867529370306997466260036584686090977192312042385044366683025741096403177933324124493480497449375025797449092025635670404112134434245357169449604520193312515757066766061385315390115944774096288668789460571327292929617078496300997959090205673582077959335659097967630131029300630950273230885468521906320695022369742164084689308346930052771863796240439627449370037155170563367975507795408514035802232951847553418046194402342762688383225481917685822356326262087985671329522197675530678165778523227926706796677222584289791705318547287084074652206815757365148194682441754854598685392156243396896775176045272663462087146139114110159089728109799294997110800826320354867465503733595985654959799512461186619900044514791646125894123590188982861988302850572878464391835260863970754493177891047643831912514712554254186881895927516925061515305218856218306343639397156598871985164355364646408040271426590150053037059736238301591878596243910654035758597115515408390515387747763555471681337804153633897534124174178204504536700301400838501872717061680715308463126790053243216235854063505306626281778057063852255106558317822639998074549491335665675817870746235321014686771174919389654521351430597917015135636430481005320113281198305024496021923491920908508361021879703158508501265815976631821045741555708793931619037138389221403671827242841897040831588803005761662147678573100929357538518523415865581935034641311833155962246783134415581444682612113996920421710227708049213481262022032644690772204025464887465316224286582260650895932580315769207278310747086350404653070209876950694928346533241632294664186710252696206258770543266508005553490170338971810714526328590673578059388074615614198239740726483707207578790936262049629848125832276241176949343741904863947576408579881201020901110513391765382639403050644315851244889580468409364674474608101747044423809749063746435031847327303887281613716476868013528966398182248038451655145012382671685437244244501887984957687335303066673510314682222191331501374908498103208156671834708878260202561024707890448362330407492420026720354917518051493325962170655810984739635069101292756483752116186798409225839420883598110887244286387690340487306227503015531519630023135522112570413079991878021201413818016423375055189856887891012685679745309216881951201514549447829200642059642750272213824430653435234086835344629494791584555998746312655392430047806066318955847406143876047674433787315951014125039349315260255820648973852936519102996220958620118389798519511928515913020383630751128693832058108222558424278340498129986068221855852365297092413657662753500453204983740374881414065634607368822930020068888251368256700133579250352120483585031200097749276965310399836009907705879135640452191876547376207308244742746225456310439287241844661278158999997290409407203777149233640152896049618642715183324666740069344473880845167592954728142937984382234928267474511384314238179757644791140367879986046370670909539401055882475452779116257759894268150932769436420466941041583360146499444798172886592298623683263477321711272185920433709951653866800225995956720537136936090918883228238377312131113752434676868086243508031729221446962683553204005914041377146212902508055379315763644753971185573831741571275640852734077255128996165105761758533170513100234531678595991963081800782597705671956082849566974754449551050346138515852934226570659959413224736211208728238063386830060206588174534922454735097683518378946495387993628174419452270790093187169234765389221100718649800869343943297196382821473276278292919497927406990731177234784807585414103630759727478023523746887875873597471458473929389814480583126273628717598697520609620470930563237184162262384860264794169790454321760917375110241605661234755606903337842939962120062919895678775907722274917951949733071153644530750253753826870193594033030902104557567277118391668957559345837185279934183279257374889341744271318697880352649907047638325068891398926840425265994002789610521268604381684921347538711102684841681119510789523856784627117558977449941780927609301528046942878476595655391497398860349833963679222653046553331904946263531883527692237108954243571263617955545765069715354906163530206324089021206393114214597296105496659187094452135707044158208175483086665462718495583789580362276443122429269865038324050587212061882546950384056463797196124015160884435806998435960125813835778960416465968283893814916874664629860664521625154348547937946015315116071942617505544643899128594325888725181703373455614663804662510224803492152911640618413704885919352048667794387645145924849059316631420229111398553250574329837028802372660793671922642084046802185334107260266728301975957715741449611289067823218647707586560941256292863164003661969106090035273223814373306633270657099526419226577435948455883219830037135118114970021389750273438091006239882695217252260759059549165161759034104922309024640238339308720450220121124865198788973953234604765584464911984349971376136423547994374258266321122875543192234424106703590708026088472168243878699056362988852313142760209333286400958022699806478386267205914054286139842739326552778358785317301835634104222130478268341169377138007683568802165347816815141203606697465691841427419272223447366084003451940226948643097181745411467811153864745408913961014270633397797551895371968724713430180484009738447688128694144704356857795496730122546980934707839787312498436890612341991014305281671403954141521210866987153042148383154925007201580159634158133713707600098711268041293373917036192389368550411020286843754677849082664605860149218215796602198609099503988801212871859090527067552817402096536236492565259290532774004844403351742019312790844772185932484408083233607575777917555639981323582189402853165437871547960706623825217998307100695185065771948424452897611894751285990329160048236841483601230115216714202177967446425793994849343057469596497567399820794531051870803815634475631219303820550650478372390306112600633376812953140897652898701911657347359780379265520223022670469676416844115867892809510946268507708046303336851751855500169353234464478762975133836226164360578109608794019498173077685084324519805167963695044354848335771961507968320690106541424610448111850863940123852541415343740113472617951901125301216590913406003933744825160000225510979261716684951530669641094846166049368822796464921612675185099130160453448440371961248161317711329907909525609437268925078494996199104607715933304326096216806894014773169802682562535030165842370921520612995088388230245657223090409692301196644006129477847534243409904597981694731799926990266952247326190900023646530433959668536189000371063990621055146708759601244777407830103683948468155028127452261455675280582249595860489692108056603174616642782844928100468459552935456085971158084066769680069617675127945224224360472656094832222843821174644556688218229908117667199110451241659266825704527277360803233011002535291424791483778801033013295493987852364899425545699491047708314373244143099900711804050201663902576098281696845465677470941787445756816698359656531803117196268120221202611948056973013466335077615375115141675908323631121910127547269453980900450863378040511578784377499171077064577868647125678494122539658932637312476192058442005939479631955676818495421737479922007411228367573178912971735135634152270274920136115572379320823898382562482849802519456054301026896196311712824483624804236170395040280660720344499095604686533827367849897516383419190953456130419542412691244103199116869713188667703798919781332083840173186345938302378147482676536921867838154395631299854304394588366337109996804358533310130896498223109043070198313648266980656586420680301096552652509439441177909263782406779016423138132578282975039705859785460172985858895316383548469247279790615856319046007649887563443051821742334795169962150087002020503257834395295580946901922801560129781863209938566231560156332544394945453702635061602606813024633737052390807157785959354093932904733811139897281768088344758210186794044354031469127029009326560580159756499298495868485365840922465973069074827796753594091163260933729950389034879885711031873104040585271622144406738846674698919627356341426997849866923310832659302158479087724399068414662059154358489612038731017129728063104481507112631435195769110466538099436517091895907611834591975321377184414349257230988679697396404933115238132301363969674408164524546682465200091389791059112848178893926808319346420686197159342412418954261717135503898377518917068793377976459756150881386189772669775181685888442484443347228194481924196704083454164172702463813538736914156148064333078150119230568294036990967219541396700883857974342528247623610424045698407043473199374919927916017108694604106544562853825317669330688556317209167069526370137346329603905482715108270832776724775313545412835779334453605578858703459423926418669178733460476303197844432910284386143508489517029182508585817638727971530955255748479153153701591969899034052547396843534057515562778728562354517114245552309338870615942009603953998795003682461165690930009675582548480221847801019875190801887823268793515420082174873115874820947765301027194031627731367440259825024155478515388947961193383423896759320131585944517120472388268427943556564677958896633811237251639558463950513140122827588381147157461624664617360571780319605406370535978122768223076945039003072897808980288774178147328631466070084210354733172365440957984707291586123554953439517487751868230000342409918389396756792022861376238271988262093733250558957305991218264151039447045363607548810035834601389537925656366166196828922264083676404030355918344852119899640547176140436081766246952977898803785508826598324684969636329354221258232016410442855577284527774685840678671224084744829947667818488532130684085930479679944692977702152270153711037282437977871144293797289909477404770797673316434209543685643944677313385862549995692655042156109933525424929941442050297304485549801584431839187677649587291256087181541215931736457830234915687971748059130872017328070741925117582065925582420195427301015716591689622162534824064740876210423442468198913032416922870797081687305096259490115708830568028683888936264067330787591258794004264912353158557724297624038353019620956045099840339089180678989024734623577898966922017936764438788356824248953231280401012204005928827360336551634941917421480448009920964852346746754416261781808012028769385862437256317062536379930760586594667647008469375923558190062805740642465149319122759775770840932743755807380573647164330473051327188635803434287711539714313330292779390253474487785478528965790207721119300623648749972250171479640939716262833584540272360061670156849626345089413251799832535695279478710177311452763676084731309910334046966105463374639079143645598181854921034026307462216165617475638545893728921565796615867479511689673381721179781422652016273898196399986485373581640548704750293484731138759773193854912981346190518098147944649881981323401789298682287109314058553195054779009394625119007143854938993710502794360010075583473395071510880975500905307270806220486044274036396571731095650792294652131747299294878980676359229620714655143661402572267385362604370127844412026237861143856801349068894666755740309050708106897151150441686692572213856040166006162555680701362375525894048287931675272690817309759674097922845563057202093510270964160661339970242244409944645253424004191671139000721842397555716143749594433152014475639583989616658270467889364945456627257404543666099205440825579966870383892604172241592757072556859915526429235279549553568763935156217378265072847479288966753300264708696327986501654459114838671793838436874541485297540134565796849584580311619670292733956353253898453549739230950296224542739543575829522161626884618126215854912367894664344815481589610399192927833205980621720081904397516760276277780071909701166135968020421426560352337497481418590357535142003611939157344885668015483072932116739444936761374442408597801442256003280589271753993355981694310473703307823677828308734446127397980245942983723228990769469231465715186993467286180255532699283908280145492156117394920449104394766819029310524864496971893404098158277329276714642375091949926299605161053492903294463439763868006084061242799287874334630519216265943779315647236275677168913085449910611984111176949474406863572494422099993953345058268892356359634248681538374704654434535862667408859283425357076773744442402671211607022808902508636103452132398075228226816062900303221775041847293620165260361664361583082771307044277493995213708912454708772592274582332308588717038741137260603379201256755413202021932994497456602687236690448177388620867646655226288535414922443276291765488519916900309733195205242046446231342773978953668132005959920354513866647455864749855434859520847075255979793656035134780460254716661576848593800053148524597357578450005465470860165209472586172686431424385771295908481213929832940600375119863655457675006991099629716319435277584928371541120933695891359291637268025455521725530614192818894260486406413461559956519848863676756346690532558531237613622233322385057382498336532313363469148136760350324094677274988655448117143916881074316548383457407344740552219413040896679681404133552921274065746640435119166162435314680537530089084096955083111086728718071283831382997611393278525581211324687881476314161641249403657437730505883943955303407862826899349891620937624635166814814759785473973072078217338554823425177039033335003039602702387445838174888347012488662512016718165924620784753204206308459502690485323033284673381825185220634364620653190799750542939339238561652520170656492190020919693540086899275508129272367559095077452860002449954189844168574448342190427982894764975707857509006820029340190309770211079594430251880390491237769831194235762476773809675882435891668813447789293276899575395683467434717258435135376234536527705068530362970732823321242589142827923387123533312794927240031881996561025083056959880562793248267456605717889811684406573898464049802863941804733632621308135338587643731292124010285590926621150291796260868361800247082269416532486128349388472019838696373601744194619995321244685998504948208202032653410087647869198454675990733034027454211398453846649060289593287632224324718263533081261402393175366643170944956832957735110815621691007637391839917835438862673386942305814893554091949027003180940022235662464901245503239418736301634090571682064723378108907803514794564238596341871498877368939518422449768298058741225316676667416275497787852257996522077265629600042980765830385518438713597765280087129052143801492432945157691260062539381066142904181546979758008066370733442170144585357328246361181818421305881224505782752680704056735778924603458413484995075537716714695798179749159420502864183454819244439694897762671901059997983670042277242705833167130417732799750130111459758103846844292803563107238259020887383570977661876242881315942682940970409466535595291616568379448709353839923189780786235986357463018395240502440558445789693443591715505993373552033622986419902240363206158727469284253657433412248053188873607403647513287345851130995215379133901095916866745620247274727048594018601992090384599802881551843662427248021719982885398073644436727937142718978966279429532421646837450999118967676901017414508991814843633931309623700838531500003150362362609957794703419270557020263528892157580555527951902414677254367770736766000496903066772345883973240044936353749359606036912456501133762574744542617317367257341806329606684544806438840189345771626647474106981501146239483634698187559045209444323752316327668105291135269276831500976376969298163706062815046717741473957221425507662883726489914095569477683079403798869521167941763965364773599609354120667972315310396121258459797802564927803727063892033888662524520950303754222867493546835920054921230516518352863933955454558814054441368118176673734130319453229864796850198338133009698508351988603006604459871822486773554137926758634105534528549181249049648232015014959891942119911321275974140017886977878403820705837939440654269014868816954407853098501094883340704125174046693291428465879296896466607521123331831870217302813211219822089549477930283638944758187863382460526138274586827617935678295649051701809154093963763538642875675711955808370885880533304762099334933997274781670071996713987022281281590838207907373142474539373770050479370848254543574669903055379208948555709729160985580512184513996742950607249496402591987059505275931129212572747639297964377822824562726325301206398272375986657128929129447907942491809258692843008758372502474873997778403247955041105919581739487219201455340348482615643123257356334880450934248764192433990962580686819977188769153295379289936664995867662004426630278010507662736851167197156080783596146718913210984799772229443376622875118480458626197123888277622867941222588072535506726321716526426488187773824105181648847833486515768106572167642094916832115512178391117328620478052021924905576713556905681746925072961668577442074765449736271433096901758359818307150056257635375888435454311805101927443112187166089344113574424199794214846788713289509900570048186377288930001311750955623062820594006284951953755126738413453466019102556074450383449762939760526185902653195153152392774019644534109647645479768211084887334785081222063262117942193793155935965579159481770847133474573861060893595846039868606671438116033539424002135949433888365829189150421541508346553960548893188572261068557929827914285232982894850056674573694258491790051434091218655111511323145030444355768824753784055325747964854877725923331528071910333513553439328942114666666950671964954555377677293250611726495797150750217137761390297690176822030311043541672790773938457469595962257420791887579983435823598437846095659316628228077023290914758658813662121465677294544596378320121654379357572168218354112407780798174528475144993924587187605484483271895832183350847516270732638297572409009177713976218582512798305932670258013692382103552296461906300724130413807339074641673663811500264098056003101379996149455057772149328945155038491238570587603698501015741105799199898678448635425181855130361854233483834181964339314326870429067445622670353196971286545156720461301577543951650156590859709286459859342902437753520807568192613263582799719745139426421792787732808907265081091541072206899370264996255992518966740723534880688554560187650288669654175765058124110918589729139025209861068055469936677586150487838662162336038206950048932516571457541232293221533544742836534699006085593710886212987057784461158828976778614275844594273517110139133186689982392150294136088348815350785847527551058383720173782467426906795094296535361680635776497056152858953190667057484008520662712074314555565129249585936211567759081980299509248236945181266539508727541287622000271067086876579381074981561504394162896734843055545361359288615416697398667836497704672801511173198770637216763729305581126601086568902214941099904638895422646593874949732233091931851458361119056623314101953711542792918224811834000229043243979848994042843179979283748397724463481119340198482824570454914921647240338529437749691965224307152154497534657058377396802407084382249473252489629921159017952562515041179778310497566477761944494497003841850365271337465207343376797186301120868175500860986707510810822535458672794238153497597581845830744134322990373478804799497920705682057161552683719713887547903867858757037589994794626399363185071401756794528666349810996594605693577771861513632140432836946350897378891257900716414796377778705430620846883679265796956469442046912120190346749117769025922488192305284272570776639600474092570731739479143847835825651786769135655723735438366014885379111770545402966533636065401665706076470363467477300869770515742885130129452786244273138469772707455327979280980357914616314239553980830583543593816635637145156060093841860306888454397657558450661551923380933679230502625410805461914596763910486192856446751159364615835317890651562051914593622325888079503899142663533334520778810015553711814745974836102377590535604488499211224962245617052728100885574468052515535023822927522751018829601272129345694690578331791595699663210979174264317884509304561739558829285677030816830346607251137560480876950333545726326509261528917709459188883454248994870095452255753600039236527910522591658235612814770582541728127396838610628135279478500533407675183924561426270189857882005555532453387415545124538507708960458233349283715522116855616060667730104094160359307335988645434849088714847001774294304862731314675933195550906707881397334342615830186837412428424655514458562960903702881491932515405404117459662038823214025684975266701429749001943032057341895945948256726194712409068434380587475801274720280724618248439290511579121789488966232371581449049162700895912802268340040284975850704131823266650826441773886877853741073165557484501201614133772834907764072239567274021715146431536091098284917432253166287500846353975578838063901027832772280881475811756463744014130680439765326518004803323816318155674913733793945391688446713943988136683609915522186237747350383929597907112383190037225643015610498601524951130726652973006608570458185414732311835232143053257424844702990473388281132826610007778559449188391617265254112479145216777841454199955661915757147826128864544453897146259092157477463863253401365068428757108883520433102477433025056069683707545059416309663341011751016990365338495369159127112447180369671215145756479315412022599228215725706100260071730190783127632666498380844617171685299357411210903685157829402738479155994633032560770887274901022563904920527933668920712747036265020901934382085229174478713320065172759900855660645290792320264983902237112547111417833834958393793476443729053623165190094642255564209349289337214025777043165531308506830498331484998567930135274362870963929145852188194993681603439223266686707445184138229748753455275975151345303049990077024038993497514401307855779442882032427341302366632146732814405394716622456674490509279699625484311458431637063780570618526955981045179058290997371731088869622515561685593050724602474861023858787195698773958675407340449756245691272079395046232790658640550725072462190006233713764226152371305332033720036705240573997401160014356498684329507820217355131569515025993156464494103776876595117758162597519297785102936751232706426204859087524587994235946125415616093953929298619942647441257069282154419993171153824798096851495336731169901129841383655506311949638650076354154452965666498958762059063499206881602142949966745069277859704536461544638030471318275293005424437787944935083997672318611005456957205687972804830625361630047753699407616040070677635562268288425711480347149713733093087546662502478214913441229668061191119106991977610989724626728736744700577450010135082958633444747166822567999661553763732567656562594938813249508965224329998637663136352963644250938993642747791521694744175042392012521027645165787155315429235546589459181059193190468621358516425043639148096106501306229974346242957675899364453975717441610172527340811596788559956380229521779405777274077430799729524995517711233374734672136159675437373290981636374905854046104921123785560442427701845519892487486214952782829793158438505880339305064495746989736274213183639279905255972330544163919132638004336026088621025813563327743988923760645618155617834891119947898443871232820789435592236197233739731104387321884234498238846856555687290752281097221659927378049963108328084800753278144970053818866633330798668660724353090908187823773494752522275371896718131140952844485958896605055994984302682760045726848697865821855953397254142365888342308357283392592349698193237127330649733971429389037773457456135671472122547060763746971734982857734152623374721119194789508660410992682155748407330505210431674632303177708652695378027293938732045575382278546274850962360329364354225773356475172305201427647131618576914095448280896822841510810109144911278978584287552301178327496878123591991222671108098914517210015699590608032771109762575272552465967699879236045724599577031366762264628240919767163385745436817191553204462069989473045772575568869916805511715338221145362322625853111317670486933363926121150348468695606260558038989795986563301045006659469700136263087580654180136643815630448904254658504407938818696611468740163941062408068568910040217120563278045027633911262963609538357066861564040040547624373586241383534138140493818711604308622842254893498337617654466352766185012430476632725207654016080979197592069086137114823947082501199293321937591873141577909510502063739791083792273235704505952652078220500582138680824810524487814589800445965697949736008500884342148804217015789065098875073886715389317555844123701213110667902272039518284343324105282921443265569538590043700338228406354548650572415321175982088272006082019304047679313437897495496404183971054857143964903594839351735926860284137220059497923677847169430146829544906897371355551742360818624243269419512451410873404999884731097099836054981287467964899769255774453389961173855870699742097037053725427060801191385341695485345123141893113269939904456714550282569889110623499286521280541358747336864437272791857952508859514760539940497864881637378950046373054740836166295028376986504453394355596081565427763543881985117245043990497058830501095344656207655066122764210235549016508011749162287271630793126459468565868064689498554005534629888985242263770504717612493388363284183141002931717298795842925481920960132860996417789362839226141970351169734368316450413806308040417992854729081020169773476718283453056353546483406070806961640731716984074884189186435048342505749568923374734852361964424980363857470349203860672421826082534850094111890192559155214426526310287348849914151826545248450283967629547317684974786607024835457006529891368322459848909332221967537024201281864914431313060119949088493222525209317984781834191439941922828695948871662369610770956213231463383684611583824117905323917350341749806747890378595797998141182810348650284181951190535584172605185531312708632489112491370380108017793320459248865364033896629935013426439095556646550720490849705412629730707312552464172446309526747974978507686203593451304543049452770679433304586243546519733152944820792834995809736475036290261302875422441258940397597095754947236860621896037523269663229279520182465499850941438957801846035438561411980834167799904427095384116108728198224437357850668865814095339381989391261801517307474988521390986474633042954182425486847809206488997547219810228953376977401595040380145895697531526431614122935437451393279863474355754196641521715793698134845754891820320776968381886478386168726943590702714531298840873513660414163006445914596423614734228282241119388923743293910350677156083414900230337520593913477611593013330229005447747685934721250805544831685697647137374610957602731758694317984289500526310589960742858033926361329449636297119517960857921416497416159855032747578202566753760421436962924527869651115771171864714212304806682290915765948510100171949212484607818484000607837747618968494214823996020207411451624256276112144196955513786883911706101013831059347645249072675883684925062055622665509915562812019179733170663525986992823215663250560249583343013847460009049737995103735715318425732317966091281938369513097502726798622144935510425919587104234852105171306170425903096612225883397084478450556634133223250290781114928908093731978614581633345098734489378616002703452155794773618100812399690929510832826992558336500006490104569280666275717070622109805676915886278647860317452726541117446981065155765504887749803060531283585582334639767194512066360648548933159406286088920382447716250232434129527359582140464996663407538447474215662234953635886795824753401408708202831086000174955801465290619201409487939179263220665062349838985218933441083375404762353194477599378545972122212611112478573966621055818981937227959340633211197525884859791440726233095843027901748980667096716419179349172742148394872909532042247762137695738847120952564079839384354710486678049665463203898914204472485639677245489274993660052772696226282726610152350987212003824188588363363310498314427300433613187929830720016816014387218284378614837581607073200061375953443422388582773267214868629716790257832392712987951667420018197640369830014298876227410214843216794008356058690188800613132928511383302816749207059567578466721519550617523920394796307464989552775857334337843261252503266304339243434082627685262394348808403675171791833957899166253019512543225423716746528890887786488251532534533768739822689054982838375225813269461656832200485362624721091619548116542226850542576535986509822997186290815491299299722884766687170927023879035642696198962888583288738436349866124465488213258517697672944831009737057506854253440793830187300148136973651154589173866748519904718132043731744137112925262596368654430764468893728655402359742634718413244669185939239917770741642362846293490879920793201037958701236056812896449982402553146351471692660179803154992783288058547283808941535309035532650829280059891619305467521174477743617605855617516907684531518283179092857419120795310214115098670677952123761637330451800450501080689691937054765978654636440539815966201567824924880683988713916050597981958625694944198688171251448444066551926835077660188738186944755228293846159800241775656441209293340253760644704036382276608012248098743347997259440712365084966178471257128680565038147602894619721557994551648271117480386407013460822802842800803400769808005272720958943297475752509601282692467649340819730230111361729398528389382024553407450167045097933299899452967404003563211302387717327434381009930319962100634377294410767396070882232881341363313074461938761911629061129707004153893532695130670810361999991710725794415053107468250852722339924841693932567082956571726175147819224175033717119073334476440294105164147876858345363851323477586697139783973410381448449854296601255668129658154001076966283379926441982770969231314581360241445912569419439299252157135676659900029342843592786796266982683150063271705367774899083478149322955431451091106136015544542543468935479726569012873180211692474866963459306127211294002845684670025073468575782071804923572340251361541656691747439455676578297723469811401050733137643407045309098973783084078283866293951599936333385031067076015312701415335939906330439509051548949946733440114754023814395393475894606123397744642018585986162332675435924495081928541583631357503813893101380988960893163406346409182845666739273785989894866988067214934214946643691522280369720914693680111726908098025878797255399961715116396809821126361100353846672724129143221452891020679102174106985810105257525451889809314501228753949340274204702922490452453462397063263613529453291916090123975855217099863288497323181377045893298820481678318025555016811356171394506473920367558708092242945906512298836330001420186226640662977676142461991070482610758922973931922150516462661907017010352031920309357859402411871323425583128832860601552730681550392629546528128287191080917952000530895490151495254016407312098520220149160803316745095399208885946773384100722488612035878967544316383017663137930143648923358634702794151956476767049539179748667818181957455406107950578772153607031841194568106328420326159590735556314170992349732220513981847857726906056656229614132513779049902838056022815588756076790244196658919042425191939303802518102451972235453430317740918976671429673699069689929574241070643818674760665830705546319951090139866378728778324301581225480174353116602194331091304202737764226303614604926961074124853468537326773467402879566659176872028922844714125354040651494726737369453452385558152681484162739405780423811549422955872753690501530687572550008749282225992445213725455035481530000881402238415609290864385878729959707596244376228745725443415131683241031817548110197334478303885093646540774200796544248207391518433582333498978832655104137657213721544655217583199534489892094867532022027170967002500111136233458050925029564706716747418241134323675064549576185172686971307842551697009025933215879136243969644271321430794900708158784953796088423876083070068818369494645523675840875778692059187628424479398280770953421704435897707847971823216821526833358309004980546019038322147745411498525892507253763711414069110524621488903356283868253398565139501193200009124768482076274028341780174845571504722618451173375802795898910492108340669292769333044431441951238048794310179878501673432882257406684223002327479826881599694300212262574107404958861550981653928055630375179898524078992187289820486057357363178906789603237150741483259459743823946440663926592118799672209505253367692908567037240515809102132809554384417902144455895427858406934720829225393757036758493310327662226950214153461410882883521720556973142966215721161329682286840436704519925477270799218332761980625046223028680868595677857891002889711230679415842279812528906833505698539095360538083241864736622251986652200689045356347877569983500351376992182907259185028032764244991935920447641339996500802813845314558225950059749997115630284420292768814267953722857691564976768076194789824821822712165725969431651115952618165512425865786703081917738055987198729755065061503105513941193587036124793921595126310507727087376554967700969780162794161608870125042709206147904681072558631722420287549660587607122043467356009630961546587674843126603529270401461564736030208814051848335414814919947263599001066865146380463100047778419658382418747593271098437010090162941192085642425036367388586706663643729012139984413858934147987456287022184786410671943844382792768246249901933608722982488970182194645434593096351613666142175040643760019762732375691582665535757843425321908016532946223185885306723778037030040891062985757689581288038095046505217821732496787889263306887996245362780744560801377148854264105781954915757721327599610516013652854581558000635505609838053226130322454266404240531887982890694900644965366690821731454987301784539175595912531491846920302437092230563427864071559752868190257751605392878112095773306641334038462288401469484163879323597256055833838493603158257969693045612507278383115973153076319654409026741319724760028265363045397833596866306175870093960989243869994462923468179463387185226597896734941308102471142406302327644408908897617479076334351149001850204065330431899154571719302458528762910559572330337984420658292628191739114732053819712620563169333391700093467584085031161239811723271113099469411064222920179993887177599304157046830764539940132189239211736359186406063708495751219443727662561372319550072922253506407462904153805424321407711895685677600393054435786936643681038611039949456528528781775366730023825908581101424541004655707144687122435143721224617026605660191665879797306704494041304218344806647467694071848874570469785730610402247818039615991183319451906159491404607733258453128876766590966909586121704110490006791423518033080266922911870182686609855283454437108744356662175562826043696022765768379768730634501177918395147216579341474057468201493485311096505835879082729592548918772748971669694046485399008499170942972537131700133903143974127524649703616689055056076539716826196218861364778069127314630640569014527809921677267811812277478448082368480617779612667732350035465840751173009787220096184606997657599340193851396274547541371221701891359004608776293700998463138172767618758819122179082592315777646701628872066656373050648336882842332827368799450557338383968753242887509389307839965175385626438823531693495532559639597441713498906096259434577024153114735003116084985698632028151680753855845683078376838426889603010136258188175809970761985039011430772547298724919506502792912567515160298022096596240815273978020870850566632653856726259681047673146171612962203534032438527149981929517788682732143327940319776241879355124531661133177111621081295378650391183583053393847812701672872513062838139091782396279448263875619757064530445786149058870686528458666103433656363982029368508026529190505282705060941466671180905210642638842241225248048665358806040736329808179148490592675578780060631253382384126442613204762741439591507726354217921758793991234336138781265080181498577245560250071581543856767237896891260855790915058591316311448322519201118045174843960067116839057065162544728699465870157785735512077870285166295804815541559392016769906440601591841611088934815354492819774985508846211034405943968208544245891771944446619401720817922813511630134317329470447163275986177486501842863798544630802885363338266026839216118903641837824230740199524016686295834215198870061318572486981666185517426957812948421476245867654130854602912282692961526339453768799282486605038892198885899390129267133400650501068924391629058204660012081459540336167595142920248174466920116583849233345909614407799468333739409277714883322966533060891946282014637473298021476233885193116067161998383999592737904425577375220516215429490764927129795092283697653002787122836572823191160422353524152759211092818095896944261809728071903616980943240354458916576337483692736713540612754447436244446221081874156769381509572149749103605683580438292191252065308283736174754772160284457218051774663025384943617253679451498766250539262620884025602531385680675996956115192266128587762878691372294548283023397224674184571789024963798283456858062615878369429820190809028170455616339306880705222790427522701466802739496611514790149841522314861390064171100877775551017541833175518604251766584255418558316003675707693431340334922226222524876781744224314281583139833881559030796265700712792389470029850778263592218062239074346488783747887461372363713573833450085017068627092656994417154620481245886531737433650778667927165418491719527610465399873800342743536815338945176162347667455230794285192494249724643077322473820353529347926514237590170814024851497912656404798382185524076212237798221011624362485770590518708395747706613056655537773510117999690162437499222186595022194301969928957067033166565921046689755757869855774630777930518154903174528009647162941874338292425138161708942630840975633683099081427547236753766740440593132318145941768134150982382669246083124817775560668925331556337894633972020527224593223988053797316953255045176375847265994220068883932736507432880195235879503949201093534580054291952850610127070094815759682573140801138721468426435982334856321517279200142417383384383400703053582700077639541763536697640357772752254150553830705051953212919338642886704792141602324232272167568680175510674523518166635454496767321269133827534709875992784145689824670487085093781206656883286694607778121755915960054920048459699350379685742460317116649126418485860495065505176157991681176340849157343208203295961659665471651666257296521306807548428015617531970461999747638430325751063922936511427127374581585159766350875896063992994029223373170631447470014186571911496393715994704489377442163343374736530383646230998770594313008073733850418587546089150338531871145874831385628043258405609693423405702474263253720796885071519212462422065598502893747989710612096858308490559482462096783076973712371689577508483623804347072838244708912644452774311240404618466487469443311236938333653693492951433589971298823958538033054779319639787889460634709993269573350883277007061054993845468179788604898764485623811647576252807729966374771997878891806447843986402149992007997424684621371811671448054404681039280911816474861556438904051970577640412124143076451214969579386917149114757951306444069191779430099636049698854351087831674105400475655748495601094954604727960178986097611370826486868350128115572836174091833824031032348629919518003274129423966311154291018445492478724566770948691043823622029754351111565268810521759716252379165482384399938512973970137229481789521820281394227853999764426643276975074076598908290371147643235483208933607749409702781749718181691711318278744967673408859714154612537227609358288436199197717366805374600438324134909333873911595650973727838021548236312818472199450532207323483069920495235906951322984977192047324098100082985010564579561669650278319599390164896801906518990302839368807733749882246130945904637765735920275705100879061116746381200605556499810460123737061023455271572654184168825235130868590358311553657403158683447460419694370106893693530762283162347419293354134172633388707246832456271270618844528213583121881382647800709762971017376070930025586380215784825077371269117381922728739376627310395799691273114441567675750952542592252990843240328093908348812235159737362777462569361208927252308728392112897447356778297737686002144132977685509535061193024957212106787067933096407859520189935085299998153216025124663955626806493638745695486265355702594611508215813693606977409991748929795850766876128168665903879005068134907505965568104092851142783803363489639687107679842620042434168081966474620128581023487113506581002930694484774818888003002360236452624830309928796860966987962177497981360943554451936383553053190270067436699098932668197775645192719744552162699752119819709899959114492132215625975091158901807964275755752749680748734261024242737776127393615783317765688505214995329728048163477366498572185784635684114141493581644007644371788810563256375452226532236963794041295037819423275596377241165922656069731927216808179721632104528130007350358198879668633153769033512338394620994602625384789137848132945161009791800546545816759673046549933326075156265222281115460155001872297954200576088665202707276791978636297932635474040105302014891995180185894815303755760192024971645304803607492373008167956953453228898008108285785973734439939852626904397867771698721579942020461464415915011657526109794149008113721141476558928364473223586323866859791517405545094636811202069565441591336908820356369376440414399140346516165238662736128379570584234101311525019694381658632330753993829691115861158186398042759542391430241436344699251245570076859759469691848604665879722729092309338917350947624427367071807659831640038634186049321457728323728259394554071198435399454671937713941305418712555442837078055053990189763317822524681963290658340191395108806782089616808321885279392255580890193205896732693024704296074985511997008936731370635140928974331913949428502579924376449266042009793386107202721568011414110733928287442079712603870953011627511389926128439316942958588507209764151229238056078610127144184835521856298826656079702045374831637934309277531861960262712873218184990870346759432100324333985039026970455697755686023539337626033378100096696011716284240000514608392559280338796440331203851972236027103455652930388513543915033591712154613036631363258145305244783129383682254044701075905640749199632722803807654027103810957394302580115413337980475132958415374453402549990918393807228453949396342462266452915212496135272216970047002754820668428527924331307586836808066307698523788539927915098170955823284512446901524223026761894243429970333934622481783076338963446294110725604438784730697494283441921467565106257250000283124371285269145233558712115640137215835907079683547480247615948815222428252587880215170500921185144825471508829788722486380915943217239303931889103470031953505002326729555553859948983216871955224483553366780827415352341149253854321397810337167149663108696886782959508208529364138073893439919820535702432862527367659656323820086660992255846637662399434613516953714662597060231028405969707026458784732841724747818099175296415246465333717606344216381047048286508984328269027758192360887515922083405340775171937341906781267536195149983653325619241067937195742294100881611373796638639045640028815683721459589857816826397297568172768726270771970253814078466088590565312931789592084215519039746181145402177293880042951965211046081097357541510612247651992850343206103709346002690662579283053189268908997003508405424616712485699121316645223735786232672526798163945923895859845897562459776174616629368858481883727579226841181791568621555430901420719520760146152671794942192128862000448351383766688764039101556791977355160674253104211391057297213546723575590237749149202226089543661943513171373990226504470291492082222996647146224742464610992358446335986845610337115791929715353902694748076526168117165660277698529422255368932977129845633100670558262426205870575539080901418440939510046133764465446941461781642681180598924224763504450791652054868514494671095542822759859633147582710216887417326177463749074467199284065225654563091744762815896396106675874377364451667392693176354986080621472262836311767108027364423621417916062844999867700054477082071047843830493633216774875085339221598891924908294810514917332991711599561724741848563557719186660020161343751217605834477568024037532797431633439277898605425939045770264916460066078242404909049363633012509448749709732076009115917887612273971272848848997309010016313937913872331514252539118174707690805395046136219424523026369211197295869238188905077562482316915508626478243658192082921382602233748417691981132708320748852816883770433902754804671152773380625918972346142969370241682257413396436901857792133832652016943248129216175289625482442600004847817290217442072404761456086201441317722461718230082704823476443967444207966399243121809121374001689434070823960462578222867012313217789907147859450006433630832770450503400042241864222072522658175555834721142889280716395062832421098026524038298472270485255821295369632364148375667998466508658994860871238061535212228061909966561477641731808438312623240859646498952820303741054541114258769540008376714992640241582066912520111762834974609786820697509137035031019339730943832185342094106595316027815746576852043182128404127843811423083635459227155256405505487744398542907154179140486532299340372073628092621311749546564041476360677962272456856766252698408591298638617464224405986729965179496555725667182180686287609306926317898298405673560806849473166024037893785347970824132251335276950041638067180040274733666592520408994280899471275112837263298356777279544377943779616216805816393299871817792564154495456580052336397568532856950455772942209272046894862284228233774992575273539486962219731965586233328707285301723859315713478348694644665997349445494008537537810369960216828845995133317661190415000107945342467584187375676517361815472635292989385092492073787168871343663624739652785350681895190378854903972033155380178155288165439107337014033910225195542557546827460500541477114643717957245194025019318845547473231522806309826372214709042425220529694090780575617514148099937046389764866088600912536052178027610436125619893835945974003474828861537184476666031636562140426689891516003600286200257700081726404010249923493170239508348881501761675278203336459861274769190405663145872189551887766722547769743175418055105525055696951699801083524485022330002966953837455229308165298310894737938078332382796154446660712685305905737473859411420559694907190114640512485405974337574642775520984519054530484286706970452079438343555463743613871351382180562113498994609369773639603811240484962700087715086055898710780951830074186061181704872443654274723306273239982211345535494907361886376255221717431673002374586300286117935410226205131045966521302951138927618855350978492294066219863713607491819697189110224238020328282434374827049619899108546975732576521240335729982880963408137911865312982041904135162341231542828101625869382835270587619127328339432995888455820254260843466140351064640886688969592612700577592325411594324586215876552567855414521885252198934105999424176733096901906828061176187595680784227821905444888273834054100616392224776933359082350538176091809732794104785001295455389505470122789910666477254165804705772426939447005224070618568637861591936859011270697232458143193069737712796704501598938243924128141881702412278371656462161648083164277273039551893199898568164488540730493451642116289388072166338314133653523124628144074543755771279905214800004948934362094533570112558386662102896971881719887190156236657132534649579895897440767695636789089483788073563746925357351815661971865424933362483966361170752019069355644646263988872772039188637629639803326601738389941868413362885523685887529517728108712118444538750619557127712233842741406756436499929177249605513550385623511911631597774867720028490058481579145554444314128163001013315832774426194903367249164197186821714743501388302160065982901973658050021496993300218111145147111757827319321440876249876089136497569546319739323699433046983879550898783734452818892548873301490626248590415470073817283159190727746514693168051821555890869112582060634146191514309109430569261948854276032650941854786978852600878721210670747767128759335191863316225342267703473504870500304844547126000344857788958935545529008834355951266036743001362134857722070182990154353181342442291760440054802747481590505953863266153004507231832912650466880151482780680461280240091771034062712416097727080627650411978849196294215349914967227796144003538595902103781193553966563108302693866722540600099552964138993134418899454393835386543283432313604024894853008538254742946236994285337760424600133523786112494106375681263123647206833686765722079658370609734296404193619609175042468123110726132149779687017768147290294491406641748210879787095365690092493104226844515170109586413475193102484723383405993157623756316740458687192286181870072741150337670768308538555256556985214029885934985520090064794877523525488886738830483991091644006264431382917017035642853923326971425913408938874887963289054562587635283184162116547733561499110137150028809087506141996514876316307499982104986384074455915981369275664453118030182505500527274533222808652455605651041203352779699465382316941264151395725285811518441372881350838061965844264351382014918638372043298958656096525082109427045972536897845995967880916906197973418782503203166887624614264747074136825370986635639890199610835357633766804821701362437320432237064616679670636344230360580990507120341082816167085002976006011679011812872994468120669564776198202893670151797325896182269310659491541126225759777023955056405542775833191145509409728599099925362762423402184936827086499166322268666202151432518068459951029922518017865557230444451174993555010295920775054493592789345142694671555459023648164208794843358554738338031344740487490898647867748090578213717522173360841589226905257754651144689126549566030557631257421589400639870500140166661092777836169581227579590701714859809360468737486539102233166894804848298842311360793906361783380415840372891770545023055719933064736560107159411357698678396532062792527089742107330977581435387035834909098082472145383415635726414647591899003636042841815848457373218448155690381569456530731103603952914197462508396105804745536562146200115187123065225251390904818775312864202335027822734281812717467542805594696968367772751875906846049007446143989887666056172126780611006646880088907177385382427026090101760002598683862462469327203092185157724076294399757622681287379213545615531525545073135907028538974962978636389431615055344509129384173585431469475117713149706968656254771242966430932551025117462187229049969068245078034933354437621165364385119534194969803020329241819460373733864985484037051499112621843493749718894362238075325944845288875491860859621994393081460073339793893341283735456832166506469941144057619328460982248030029298799148325815525769864389583418963252754064500065157884259404280315663910524995967206006096216301392533889430597259049780644866788196834737218441878154595661868213168755216563813659913683622111473787322368145531563251385402604176767866192633224655779320315467609439924572976092360118026946525400412882792313940780348952756563345941448676780457624047850991027037037275977903426072887531418055751694671373293996383508229104916982708605483502937616965799466071106661676435758985326086205305697941902799154203146522802837331024767506095473284460607739195046620986794033768787080719767005556614067278223791429381549140612893291059322766690654979880252610482361903771375746063990701605298327232526022640227282269135695869007134460507253017329017719358649193652814374854685952566515149999592765445878723006962295445446075335806151675824417777164370630221725445871915893108966451062853333692683842776210845414138060969876055154029122921440341241259897245027389474015519800986503259962089663414042571503856749916062111067275332843708278190287639860059232417297768849743706378428615206837571536033455597219435304393378052615961839346504491785614317685926941246309646373700168533940710958345433351321538842405070072925366458772268621735666623026929531469650891856769623272494586275062513494597642254218190761924606325648296513623252759649538749169131076828812944214252303506454977314744939652239906640973111166294171909069653466548342018861099187691959468387542722243714763986041111255839701345803634600376841678298704015018587683774169707944023911249633733722015247988555276800401434455863624059595690451552476603084740119963263456074616323609299499609382879498111852846737456100408473796476944913476775113454071148561164008330323588016668099213471340206248508707793913235219700477302335083303950179222195324533539703138274225336647913025659183274305131595986050418756245815506856767191591614337657494205706558875342809802832452266551491712460934292886332902318801071755081294229997374580606127311069572196662347544756042530014742746443401244874053512576510066905713629311766295162238017117281815970125398348787837923912754174887152859340340996070230864704323779655716918348730603127086847891257664688234059715039707930921703418789517709907377844082180312589780761224880825402298620846216585971488001254287249796093697568318465324016650836161604826243054292059095101817222445185369050404297779585859102390575056380142589708689365594849854121719520250688293332452424632352565634030660517776292793799020688038878861404172898370487375592343979379308082103873366393952278223831763220505389103240706194069102214575653368243484417880619456093507858442971929126261464651835801022706710755752250214962125556425755389505545085833016350858513623893307835809091654237704643637672542377810866140882354081351571423386315743540348772522652003083094027185083808787622145126881997416015812725878133577264619156752541644728054305571680406943586438103504001906181541128834175443584049851683551224796209284916730352512795236592318424772515669982960139449129626047278435147412524560904525062906183723609606809378722982951920240231320489277489881513949954385576336277805564339675031698580834046739563685221199116772407929358961858433055425504562204781789457550461966049504478171227272351896575082964748037234055978460826368385173378990836978363652349847388898596592406698215612997345038617554785953992278772347509803854498882447778458506820631100257830008839989125323835301866654518646931786862628728880607439791843885023841965359673301013375062930199498726577209303346828248461857699415405103233293314826486067507267201886031781913091200376871083573592389861981249020350455189502755974863657018939221398045464061411021296840819777713923041509055654441993729770975539331853799588273994450974253621221489334734849796123889043247680682542255807290953915959149201122982639456072462574287891469105105622772870520151595443888189312978829294822796556144667596298071409551841413611660577817446731733899663634478072886573033696886236453354633431934774866461892328916212607797753989716971845293310600922148557785698472664923208391540780370290562178341679471863783244104393754009678083848856767629869725934136244489480703503188610039376593392109555056195744459790667717515679767557563526447846006733498220640175109764154979178472267569852850421379873853709814046827819681693018502242390149647729003019868045298563120812787231474857254414009763180570232216180174446429126619649622806795343774819539646401282750852692271235427893897373528052985567335492281660898538508939188812232163503273345994584275483485220416932366409018439932240580439925961276453973234123895768626746317596465370306354269540470746214525556302771908853026701241078832618881677324049310975964028785231691750433427344894308204828564669437164194928095993185209052129607349330959985015081823075291535836969894583281898824755072459997111728350327572976201703032576427526706804207899865146377464397134647423836861343391463482888421239048547417751087947923120712143353539555499332184133779494642759470041490962418353027708302233003764251160836072500601306143028026209179849754647680360220305128445351976655211974759361793393462987161634228501487547578778504405153326127185871662771967857699643903467835592061018796131768669783786607317515121656336932398411365765342942491866866398057560085486205549754636492489371664092921024937510026367332539661145964664516999422320529215667458149501759928220039332351144917245468867444065919058273274798299540505464910319912032751624304624673298435249585983034986732985626421078213577898205388831953370194680201789715829926782355159658186823964940882723027699765878614700639104343705056176242874333017959545480695294179323505112388176315080578972652145851810663170297184045793996230029676739657820685787342320700559720294276637868224825650873739049259223528801403489463635332102124821401209127092783544592379076423768270201451751804251529868557555789500679035187377321515181881489551650639236476274886837304799251955791820062883976218656189352737358921695174915453145712699115137383717327537850149929795001168293811453395616590797934596295835822039437095784282472277215179822724170480556872324509614100703962722349952306990575391384881092646615224666727246874114492627810080303312593492015805587138102657239809146392192572881146622362780842210840983550066639878583950851498072368896759970713850321615600513910333461397500186094498684366575249444593376185230355638870746511615390763426587887448419047851010723661584613991202610460863298011917556718257143914220490458218984260416143874575465068862161892440270469640792763266664471312668041457522391765976987084023564717401126612750357277808685715906469866367188223867740627529423172895407730723307138047441664027587960944035373255232464090125172060708040415622997550956748452341786558895498354278632940600793567819405655908604219038349062661524547787671137997033043776372472349348526532083579327592078363902881709663035407323058921386184416162875154060581421515335938906338814102890291256235476669210147555677456085171478665551539586947837104061228011555756003028801172235142386646575317298728433035244604588212209853398008475423703083445673481319049449562624824061487088259045986827286406631578590060482034871303975883932225769979542286845247262741048791661796300466696937898273119783865108240175786736451029181935509094567875079525351397875953605470091910407715866622779991914756638407893107967902784152341699997406963834439492147651527002674048690332472353326781264230865038673350996179984490609872502478571989089390920860970459192780648291168314274515129498533190718201582577552039838926562710660830897563165126546556784671084175582226640451449073782209092272598144254758512793294712092370861640311723384913219305280940368253453616418411630604183041186725940454030181719796277681488220663771231965193422876545471050034486769162833541779409253469753238093162700716870622704441717424121053463770869952739000626223201422140895392328644862023218539936650376466842347118675077808098284562586853468756119356409975802145427346253380487469022088117848143276428055378945860114639069129194152925556256395388076547825502594016873300846783398016671836595710867157037268323611090347535571143335466161377474960908816710409882272595394430540174246731199896264837235503513191671877088580710266325952412342568077136916322766804698242065519936708281963835971041095195740281440918724734620089448239031124855114449885310715162297540724615050231371865656221734875093546720187832658382230762202930276532531403281047575945219396958229236293588732186596825271350116658537237699330913150994902587813720551831858809611720494890422348567369105988037541745283790415649080686165754376889008449284085482467775932252850803682210768511881527284241122618307636464103165680807736637982206672035399508696595773942178150196277097794432456179928003907045968535058055825634523627752352290331952923513917548326827081761629208067841086011590438430397776259704208926432822363810900245710838974120756087598769394873213935777810483660803648798848135189959794790347456858036925854496017454995431959880846566387279147683024123622003966968586389164734447374162917253808887858051618747844091555918092978696331307334175215817640469293106125184908099034924282022843159784524508613222021713816260695961795516730433869532439727774696962562563249639644169920053210238525954222834020668838651702390533011747065406499608435308878895939292987794444782287923562313947820830415092017207926997653833445813526459155685686490168449205129978402042290936673353292953359799624832569077202196663248155021538191785384842248397565296106019770866221674042743553918051298301247729717335094198909622967994072843193821982611261660777935506236116827538961288696825331862300104756479219499667646986167404118862561542036137189180411512480988763946669653603060966553292447337685078646722348361460846887059853561965418462365455555773076803469032099243286530344944055976412526400865136770527321533967974554977138868327111306587637738360587994041922051547244228347399150329023589818867266323356114598584689282068543177929306782379923924668053871487954196497831625454337103897246192610698440938466135934771342385343773327659663003991832935330227000175519961244216748867294365125029145145803915515269521830231433762243063691272062839443073200455401870319384473573140117739082195953193884993577981897007122814402167877216461709839066991678282561841015555686589712917953017266781183626291540580014984822638081089233752853318398333502664536799771309049201079118836297475648480190866001499950705016136022554489796593083096921401532635711832850982773915404752696528633833068135119209243276753033906560130089736253561200893165761464702272503678451369050785392030654601507697094991170219285702558804983561315095856516239674152134484953035457157348718612883773736183510095846275768941362526842493065353455322814773623423902919878173850350380202913257857700306625569912615829380301732879997109007361171633311686455872320929538083825420601980091069066333892614708811738748438926838383402597403647711958355187605653395245129978283937291688900446131727039432640032752809443880380027149117783174837229495351253820090908903608826870238847694220501004296845882253113705121028219695849611061215887376660828397351001524759847564936783532032572922377218703498274265520271717091754910850560799602832855144884508837656606517877512158626611320867048921513129495539926034675059897025303027561592832989848133216649857091053106528620961648618221182996521303743232672241502158288288951744055049488092623036359416347042260938946834432607628266767941368455886545113600885152814833848879926816626583201840451808619644996615202586798918177206028739483666429476828352406838203087707216975921818191903057976901471188679001663842971037286837832281745098574454621469089637746506423212298138687564819494533120262529497300969710686880567486820653421117064550532816482206999388181823832029969008336724331628511102942655574286783567522257689008459872998333530225081965997237665819922238426346744360863018914218800550205449304888743588905066378887348692220310101733597716922042495388829105211344121342724579067022085986459332637136676043556492691468550476763142668277844993552649570705273215915096703565177973017440501642478037377126613066208283589092656092705420894202434559676233526757408580792180446365548087186313424969545254965156430430817477839782468136775647000581330266385636572793731799472658767180002420115279875625551796915678325980768964240277120662756241125532027444360792870000216801852591899168920899553143152783172456798285194247598378000372022494141327743246512370447911644351090491486690825994569153258973162494450609953226367569934930723087098979217952435446114466210989831587127908318802861289643959548888545883263937540208737043475470252958702027264602919048406672929053043421905926383702801885783862623990575040264133975065567497292534115306741841955132508205465717413569511795459027451877100453665863106976950932441177150929276799821763906032387825643264933532764999787653926110032839942720129319441720242057860097044792207619198098122155064044778385551096793320765516697089898275623292838152284612280242972312322874509657773947876569178333825861053944382830700379867278094530547616575588772363275369435126316693525255793832446004026349947761294228736340821143840076258239764314916049897044989252148648217279834984015329409275200470232122488522969898113134099779186869757426741716587575703910854806835630079847496870199535340803609689160056207149229761687885571909453411030019099103044590194181149563799915841384064410114092297856119491940699204107375629170257196815436908726794331112147013737076966306704597702394913967933095067661703939856654017375336930319057860228310859723161822981111697228052335353922740526746486561281029894606510842728603264060031556993670918589989555794126814035173050419255085748843926577720717295681607254544154101020126852629684657422514670609229356416509160144490041034160712690958967518891085303430464325345996898001556606351858088155050801651261389651537496841350408595410854583651570988669195782547828672142922361005102052133011796604248246821242317487241672562307802209959827795403601590731638840148522046985478156451865397384200244141640314561412529713809885610173829803695274225673789695660677083147579780629897667805450454123593285009471837302749054897892187528838209116453231421742353640356429009766661404750686366595528592165209480143942136526141552100568663425896386121469249244961682727834678270135116634884673991922030717846232296376672793682578459841649149127702112705230243198319846289035094405619073369537774577831785478458047838965561054153473649981469869942360527732362152945256226001145805922114955280273220947930663731810615177607401032069796083808909960069193835684463268974450783393199888081693710162960009942018429705383589725213205528273088234927472150971307974151994744214192721729292542348450238950527995992679811041168082999851164736764840439776417123635702365628173196626682944029996294019071802860510120403929103887292094765667941637823104258570687187136166360466610549761385599240814844982994092449261526113587724323199965774523214998876034246154921628729143643064200929348037714778692707295835444610938552350948345495725241690191210393053502456023532836930168707407243627140446192719816991487480136340669087983953364210171157214280476987206921265291445229793884011393297574963795289146328645143834535526933944033247343458834210164420199239341459022517950177866503793842033401195394549997845063515726468445717679218338216426276885449961059139269315517197487749607716481388500579275286126831719763465363448040060064503943608731786971467119121987134148080803503839163344125291404541921826974373419596732812997573298570261598328115229533867503121401086559564673983673109006508425197008605797485258442651164406924254342951909565457732583686087529588832563735788761860394636376376366391211399340653308492126093876524366383591597892035044332394053318456750171387621150050054368547807586998806200165195905234388103086071663912770638398711359455251050749375188702921901300488643321970560734429044468737142694696814701304545657507053796886190055144893068788844093265105542222364788286111773811655816064720199975142093153915955708891899627418851889664298783850770512371013637041430388358509790414928923052575906666447314915293058346004114939963152342244605080075330446985000464793815395030821773933042497601643787812621641178037654333461344946495954402551633180883370857637772381562550824408027008167026739624354765897901839425145963402162492655159630062343619081798030211916936631521673417120096341711365107833776615021462287048803421153222865183355038996850280312156257905040135766641741111552674321465777822211259969075531167487909765099324382378682182352148869409209221019368553211608985564450269773632668218208914071862259076936807564196697981804703363241775452513344792330565143575143300019723870669827558504614994118553283282662097086819803098651428162672469139652844460308274423913979588513022432359240272626373093547721206639547146958115530061460186985429186551564088330156990569788745032371572820492604668931821114506754057981759126512084982558911121752705316448892276775951568044829532322604125326222980456016457676308290245915930168987312276953547125501201919008938759132790282972324247489729055945442282229597201208258995449863030000489538331769957140230676144894257704138361508048848365242338475806716754160193501795166155210201133991094302121568809022514687982363851412545819508978694465340812106272999707023997731331216991742536099248638116397954373345589578460151633400757674992501562940288835153118009078742358870955284431978133607692774529544571741240129839534183623012097388837424561236994814299139863055004016846402837745694035899814310204189843580851096146758185114196757665895445091201660554921122691768526231814761350930636657626456470009694609367395230453540217413011998570778976266646071076811006043524880769976329403389682050128708772761680782135706777922298292800574332957992116579425003534251098348498570377845101638187137146054557706314615863221163860716145818449280724846784508861166024618167512148413178552911715459974001024081657408935516047442749897585215251261091262028899805386739118593285211811897970153835938022234684493783261932708560096943152926633839205906594849279036611108549655757566202108270269403333451218205808510393529698343130064319795401200791659247484970002945371109599102092821486407132960098363082104743657812183154629172143827093347012869038741199769775382643679992734244213464378196652317418740347904680792842510617386469938170749140098802078973051932183183543199233305751564195381768858286125589601925805678984704480661586883302036659127972540856780676349579709699046974645755209550088127622425221906355927775322364941370512995293972303236488340250436867246019986249739190744461210220158859603916231383172273891650047029081185263576182755730057435541723136536503414957993431318679586317935703860806022467257282872427349484465842278806118515737793307511916934217364089296407457676811100852237922191806691233347454930763196298955891890153259037819089008055226527618061885692263594083527844049138484017690077095873262696446686027069686763930369239296478023067176275295077909138119536733549974387692222585886864434707390507211283744044360994170365406251405936244134154960038219698681191337285099382070809696346590209038023120258576143157750569766871718651261151063519883019443685592246195954153003762986941782009061803591166336918617785032874244800053463750617274039368363807190953449400821110051406422752374552934368785038146500241726919781481916128389016091178148785565338369790351482401632152476371593351992920191582906214339385639182822553125883696173088930717225452099436931363490032796196663420073754888197846081333393014438978731389848001471290457792156711992480165115835509265872025784121662793931283537026266337583586395397254356674236642875555477217225336176480678303483705674805840398334752984253738944159474439385815985051746813937528441312199064282607105010857209012568034356274001559440722144456871069055160455694169870813998100396056175055230305461976674889915264472374360784421112000048611906315359984601115634344067252876527124104570758941076017598864348057806386808291749840040869191930216988281428331264129298924203030463683672056708215635272334111639985620210942396818671543659780036939741282530930324639041615173917343573300742402521665118508406798902037944071294591845962623471532056688057279978103514224091049477660525364892520313867723770839721802073287595964315903190701865693449733469645938161514244111529422749118944462300601631533550965394306284363355325371458775023836959389487741138651896432084587213269888593578291845973807671294971074868418959959547948873831176876632230493379513409959631934040371801019206277154114873685550800087594865747154614260989819560222607144485278313308552944893354630084516709079353553379212853172406812353409856446598825037635764072915382230649400825241968250243480248638301653363705202760107100355034389718831688381314731943055483976203795419071209820549056747899620376439058365863154705821891112327228271246790029043282867387810475322943257295476549391154053760346127911489691964491759249161450909990578076495340311262369812303214381571463783144502252083217539286149482362201523720306095737075418484386355077922410770165436378568814076793745817693718231463229609642490307494289713898619309531110138476301840894781099520358204457398447956411734469649613997479864201878881508390653382434203919762939192605725799749233341707950065811543918867540329288923666046587423701208288182521850339549800123386482051055498311185856766037294194571704754399985465258920906741481689410080396393878657584287359282923527406569372440825307477001899242826286977166653546490750235446532684098003171847173665088264388609679969422118103745460274216080137674163069549607244353878794063848416000359657040003718121240004769352985024293232529902219856697790925036365067742112114002381295674735699925216157683318004651452868495866007109850535394712197057555353797365339140372322259081417407884982538433704990351883386219451903282900589310285231744075527213868805163613577569645165508161300878889056515271710492576465206030772431302334640397073043504409196615297000196869768147619789512377650446763326083545850598032775967483699867779950165545543488431662592237442288382462111061247996297573721831209568191073653441634125303947408758846432946716480030321848140974264249339881946948754557707924284891646725710708458832760487774072677360863696975626686147849795742001825180918947575586544494138372826120454353271944383555954863268834953165636082226589559825283656549580014250531924002446665469735662018569902906538558803823601774608060740234035871098687777555795153966233672309630488598931135352295567757576169124314376361430000988051194327752651823069689938809538035652931825932590407434628198285398942139810144812026284557762475998628732418053998097370847614553979734966865682799747520793511452833260263107241774702917404255634375674296107069725711980142082323406216941438825992042339523390242011670778558232905402882521522525866929740883692609615692953168004829610210099362441269739798889908141206082101033157417605589411050288840626060503535973627093667536513209242603611679180514555561576500506198260591040619230272508409696788775718522082231162513316057086230512347994803635351358023724922307463924517522240710943429181687411644759731321924475986329414947533143360072178466082487669663021581916180311287256229987786478401656839556998395478558506898861782228260239563563162084056890065649763928936062496838116995401835688177116903830353819608858339314115380950462340573860444419750979543962486394850620229748812538770890154526934756552876098679034768216818643535547984729602279173263559275250789510647263898627807960199433582270140968160581978001276925128700711108921720689943816638653474616349678093763220081763471120784955293298261948219230782006515936281533784752697587634942034642827894799169290685222297756395958328383801230698151452419530681162932190725123262651567202428318628693117088688711087585607568684587913953404844774855139089773005813766833495787437714790793311397766129479459801867088759717446975111163881135746763502183946177609746763547194222674248579688176715509494275104130684441495001233271874686565241271957172319383120015690905246828080362366027643569983130308012516399731908584142817520771620393761649530672635842544009863813438634240118458800982606271524757837819488441886440931109691866886288571473101156377193204983250699252079960488241752556758309791760325761349747762812515634615660064792528077361597609645627194976951294213885841531227026959893081595277938051245975710473026060871810975811474791798140397648533315125384508222949786428622727297328425590333216733387505564162787349788390228022083325038829953417915894803618946793565375154765728793368768190269742156035539494413859353368606311737734955553651773244479493418964554018099620486912429958697606193655636136339709201577102389359904745613333636059601223350201348040217075521523739395257187666300064918853367397448893682449318766232481231491496225422302827539976729692365876514984028787012957958350134537338776839295143932762487191534075326757409354543761524161429881661257514852298485560557247629518592556429905702382441074119752712636809639854782882737675568539763257856471165854026743569912875711658369556507331119992308638489042189374449236844659102113121703159858530839411722568289280424135634006375108689276137605478686415811645507355762242314814017318388290469971111679934624010473339059312382634104302535536050840310011120925628252635939850944694542603864281581527899372041149278929808794954272074932865614254038896315992058020012914383094444850172316264104410260556218908109184515779004422231007378230417756291757408271192621147314995088940974145090990466499684696912619161077616623893981127510540590717868496786574724123218444556624272713729992177923242037022627004743719530113315328046595883231627362831172728083195865207303324458560380138440244430657557705493524445989758986266357011449961514008864073417850418832883921158895722727518917493457713446632402810013682575036423346807366877526949554269949200440760058242276118084942047776699001656978746778273148792790862306407951643275018957881527422341124515085105492581733347773697508453262213783351259990097889238243166571212750930265964649069917616449744842910484548910058745401288760562931618657704027365990751020472747872755322804512871294166052325481726841557955694415911881365780790141478637215581859083727177846260378990173103942113121439687979385507071345869964954028396766356278535042782940046364766636951141903997977469492326577967988175063510313908985180732452419049032073228665335073093609293164080606382701415241248495399424416238516711699127282707297574062355728035561369611859953452873871096279414878065586080796684917016683540384861679377304898278853458434533446080344881040497034078884590348295186964891145150521563611813207890311460321425451403875405275899339144516053770596303733768143676472164734899581782714901984109447791189691838636161777831343551071339897096765630346327078960049489968697998301751871330729785003402605050958221773174368108463375347750539106505999250743801052144182957836965751518237195293187594647470460359748064844527704970597593167828120602174320358544186568387765373507365014323800502817948442749377809197941943685955619111938493854922950867751669175690062483817351495540072791542055513703774273503728481035315445118551405710143371940158798727933940179911873802854768434248536513899507798402435869879831218343097918234665737794059160395850079823099983416169611460655757307594914246696207007932882511895363269273356878668070569486800873800711609422343518839855564777558013873112586729216334720873207931187996903542662468755947203195746073329427791525902907175838570542608224074138540476161250981884590472498357401640850281321265197322135179439175233722262731911264661499749218623985835490118734352172799453034834595483768371143246716266130890020038416859941904227664435584100650122862704266306753675945466060023694868574799177587133705767920189879500088547895844268295870778632581498545862478983389572755906260504025901430980405868964640512192911904790397601756532431419188957399555513029991690338658880336347699352645014014188034253649542044453581402770518660974101035785294611028371803802286225455278301410811820767438374529758485752572261398906312071081799553992013872126971837713907454976362450050151263997772951973466719521643350548547463978525259207244029531781168962525129275090887573019166624431987756694663386099552841092824109357416899373730215302623254639800945774577569945374790025618093325325295016297540006720487285418618813051668368180663460991724825361446263648416177834224622015823711753010780909967848549312677206544282682057064098801015867973122117735305014334361590111222508522244858831912887722003375597214290148965575104416657691716861617548317344170183781269060446956113020886370510325547274261982074577361931265625599192494643928231617769920327583682629469538666283401275381168356832850845119819451965789498381040444241476680258564915922009995353283117675079596698023206252461218331777050611260046544588046718537270926813954158826842980708286775709841498355899539871119603940142869389525022209672115429330286290883991646254877256377658417254581868262635746652840170637864574374031806595652721337905811829552427286461277011350637771778116092525843687773843489349910035398095326859163360786828844238577366593223682356809351859654458701626198283555102589075203489665984293239980701014541001506726170110032942370167726685028575663849161755856620508451089974576923105459322211732214208567569094156288143696332947916731507224732081219997036020964564807188423000886542697230283818636147578847982706825256657884310712490698552976438271866198507898770830234325349592461977793982932460205493970978802353159479585475297317993658391572857326780888125061224705208771110704045818497020567367440708943745821022238755161930806285490113313306133885236528929692274502854294812087421978954699435222105421482380173002489685585608504432293041615789325578094548426742776821363679107353565419685536972568574487547390870011113067387257774982189317827285414486140209384988564824678866985001662234049459648273389895305247932628739620286400098965673568623814250719504532316449451769369964404921310871525231643919122276798099624731868382572677192586528595246576901505758845306352602345937257099144779694392808091734541795540699927096346756326811615561315511669566686616929658531915358914276369431528314449198315759567900691644072701664149178663434437603304398656237854514572684734346871636150523784467871003655796423360655061022556501879083519244181917921312436505148805095795959196514065402243619156537528326934004547434233381893433052948175989509496326858261771138041248961493301169976122350839454041633848148215469816754852257669978787737456270417992490404876094665174872456268298597356761828899948779715325615614833523916692953372039580534075682323223614346705015084314567954721318129718439375947810830063016077525588748609220322460057393713631899499589724933075356868746884454144169618923164482584633592710696348225788725122428530509634757634254453598115072264392354115129954208013587331917007453941731413393365099472985916659703703578631502541480082244372239405672692500539685857988754852281525517552697691652308288790194627199105718795803251586681419680583858510198638256729149019819487398425906930722422052944769720142038845744932673929456423855115345639574438679559972411528027185738386646456164195462403255122636560296075659978408136217445416612983399631956452630838793306816844316531817518000192041709809591404526657879724870623588583767008403584846254290331504704587877292231684101656095099897585142329780275112396217766816143987110513912474171731697918506595443082138935064069563654494544296518172225228391132047051389243090661850304877788294261045487079377083013413864108076328268858093034170709716736535600873596721986952751076976159663990300141959714443470094278760247114228305325637471742960036448560255853803823605987789886673154881105054119504635375935563182859390550589501528713987525829565250689531931977830243063447186084808319779109821995673152994670118870008473096833581046640124463838642150615281712847937488293567896652659961661805253653074496437015663616618940488258633709650122011828538354586572451931879117532221526011868762671323532648814199034769746324900835810056685092270095544112133931019428016385642164715841525612013555603687162561560913242375760355274617229374168198426915521140177903734329801853792402236365534451147142147553647551102945383995790452353466568946022551477662193014435690621302148089985894480611816408278544854741442568162947189635249235057406400646734975461096575797502964116225316809718179127728992310593521651066987756729240486364853217651134736840965540288046684661477168689385524620648899017653862220322162161872532837886783533943023241643126517288296901934197003163748546491702101388127604988628613049941874461397176239727097377732258830674992695674473199781386759836170982169482188702047023437329733161019023740700012226515656119402627141327589797928397684735381013544005316280714105175367081703768452337312270412523126380318138514842663041077470990034251494881064489372678115417450393866036665366545974218134827975488730815545297371682462504864099001623841076967373048176602524613959829414697381764350020865504480338530322112757988516523151654855950546117755693842545496285356274707816786397732360051987017493910559397215403225062688253555154802632646097557310457419915507578549083900930923573793944769534754820812741233642210805786580527999945766470798274466578321059122028082939552969393564909662455590959448202058431393220381579665201265677783607715357377578291203533497754977390501130609429689455211828710222294387342683947033790903465514780438358154000462126723108882899156501553989166202860511852356853700860683019068806006561112764166261885724896961162471101983231215361817462847054434661700281839636534030442136603016292921616851511486039598113485994375321413363488770122888470701252687565313588810006447745420410476988399040033078403980360628602687661497437614718606480310245858063902388543655945083275731789525193778337612219588183106519890482757289403352628048467729160875365215831993058235085462511106875056244357075354065807894583140527024975569267388859591028270195849093565472990513446171055178006159204014557708341948436877305337473669107485443384411315177283778321880412354975551032145880935708877639942474257942960801900417864700244504828011156669886857145087070359652288867707803073759164778655624080136885504929396290152573002333686731921086969314991192883264491478423529762864340435163068222516042606540671723224526473094915284863096547457300705326487337855361134492005057338753707870612802378205305052203487427253297136336627842295903192933253347433735250964328682641832845071461831402751543629303764693318352402672845738464989559055421906315766290070993495516982232720520070003436997194165726974530846529273358396163693031888944568358087818477674357450371979422350721035778968800815820331669100521137414693548709433342968788588961126178557953861740738152913246662054730238850202701220194809017434425011357433255552797753428970235242341720551851979285945838519612294134895481119276665206525281932392390679007269308253584073680193766574619464536310671739559752907233925469417080254554612846146127286418964369812724232740351265965376499302068914839583263966962418615912946002878767677623037157462705394110824573019022632668920793798097609584845750930825838230080348449779600164174752064784705252574245360648786664563951863167809639557985741640181045397023852445148492416689489858594182363154367764287635444647210232696441043135982458662872459846285606755690104227495662182156989675879128564897568286717911760571536043770247515587232075468288257740091439443081267485638944445576641626229234494173999733964922704041283310225187631697951883014307294004214261367698423786071075491657319814842170657961379421420486414927713095451857826069049657332963763347707906978899161500245310146669425612618221090873384722030327806486581900454119206628933933982167067398746810757215473690257974118566430960531449037172693837316164359353554199050977949165807933756092571032416004220516361090679789555615607985828636016406443596880943905037497316109445221168810930427374716637521207680187403825639822805877746972364337854789425929615733365857773211324454404986271886240858959902112021373617199078041211630360240299178120522392132435289392851982727768617835754730389211232323182698595230638328825646870620241528495395583460752640005975372884846031337564155099527344774728791061382826255239154564445145441061849886510174563397273395249963137959209645879438339243071556081824147843861265741021611859653135443661415842887789692783071906495100364683623512574688525637519022983975615217870406844388623532282057008667177510767414252391754007605763559358511031448696981925284898232385443075601718450106593776294166847471358073336420582821894460894120467875048772786369057142666568172561108558425628050039080759597871666581072378265710806801168790083798897128327767086223321342801908803493905864945240558394229148899552708104075410294115283504776475312566058126766226347573952014061096091282301336159346557464566675880117906076897397208969366617249528995973103820960152458719752691262189029492152575643450772220466547191719247164159545265417355582822685580793914558382255638857297227462197891197605300783670392643062900494458028455452009717314241906822269863348235729843842167904441015065005258534857567445253474688666619625990193585036614498703044103135900271634315329863083613910636151614309549024052976015768416613320936918676300905916365622245465708165692598311004103565102766688686842220253255650373636902254229275764681458711671289720388601245544089399698652662925096513330719796116157949353851108560908838059499017493657951947170314844441547764545220215640143949065438276331316620221538914506647758142268063053374258897836186210235035661031097454887908959784665344043031277468017232185450617888091340871336223697661615721920699332691924906692245183478448498331078169023273371885136532744548077464908919722618703606608401443050986512685075507330401649260713029103042912762953095618758942071596143634354137901222458216092783106268046630490315322314214679784392566694750273521754012334068785800520175192210801511782790728697262912260677078910238315810691707397086834209057140605480055028923262526621147710212738330434326792639659785534198864566531472689867018611479066966142041644757471583293000657800189547926724843063982359776483193241680117401000069736825105009839638939872106120505525647196992417064772405731168722758480095821704055667524589777029143378464880008879503796768640017621752602315699105393315795186144230815536185878437750395437983470998165437265094405382329885053776367046019652548505240833002789425652204233069266514839060853253360271419239565495100434415441881733173572736136417246094561838470723445054552230637672244779039094785589146836711560902278808344693480501436995643491925587247860640851499453806519618951455363823865002704140244814518593197687836352116365858147650767194853650736445598492224381050831631718721643905461292594570739922434312787042698310869122546927536260088421376452180659169324162882853962717685172929898257541974439377923008248962872556210811946719898521212062821859997947012442620819413039208729743950844629413477845903538409272736522247172457815225285892371473577832072516092829504952603533425930527538791857687969644463802063857442721491878497100863609332721131633637030425586927246671267758981997484506003521158396859310342344823065034070427883041219050665679544255910909675061960461971079164361377023898174384233890639128039214723832423240142749475462267437682302103870743771901567249190133504170518879007918931259902243706473693782448617262534971558259592380059277986190621106716209574596965836711993245965692088790052176029726343770165926470187913854169285665514768912542978060374972537312610614681227047539040159696675352210329251752240198922837261162764576594432911552679151266809868473404210511789069746656438586702499910567144029245425287970696289986921949295146269791786236645132844530055445967358387537418133304836725285218266677629447996428610646286928410695186761593241480982490243680892183536273147898440087411295398256105284384627654546924147131252644945991397916183999356447705698621149925485007821362611875845150231846710310996913752317973408194822901949363351281336982350292716913098967959769762363009922831756091685905494852494501065252752595563612852891001034247214315494393738005618591702555311818153550743796037124757273625267079474949879351404702363414810883190300353515100949003386578946697309255579656277135969517592602669446609085323927730748493049186802069373224410856873368980445602069587190744909299500401623018351816705838372904499377256339955841057548039496168366908100610168186482553982095266221510587584874714813107166010560306723440170739597869703654085953185490903462591138952381440876040926602602274263217723540702642301451773406739592077219750760838872467194999926944452364627046608641316103963350043010261883970995754473499437307006338926428672371161958013373682390071019885514978193393185133095077631814171102201142564476218568919967390874569864544754788262421352566425885296583457758461120858925965700987652728205871848929740508614698010469003718674968727903306402976217859070190266542153311982234179864612625286115523812239983743049635326385812712917660405702185149985843831372749165030902026956964580666523407520731960508381128074218990920053280065815948795619293899980120630765466037650185230076307374645769192781086529033058672261933126797740435676036859666320236057113055457300838669381254260897286737804589640572511042589478744252085015853373429845047716263814490296815652837564784493016589063894028103999910770110140620488595400787274364377887957524761582615765502620666659708798482819647657080518522027233856644454227342843504569118504299827466077533824869033863954334243107221225163745068186961833684483615482539507411593483812643707869897042305099827289417148774927678907818838496593320290206783450628126834751376324560033244143135951033256050727146269231633269578510634940709373024386002808637380244432829512913444655152679638957156812340783133025911058462964226399288354604665534463778284367110691501720819930718916436983160432608750910319896711235614537011240679229771406154535729232868758796054627088542268345921376923923049433941380115146765015317900450269033730778679060764335946993075514369887735368431863288298920733473033418096334118107203377605707868385405038614637496659146464901801945095211714509060632954407691135854516791367697208742603361292400812062359552305235487859152109088782573470824611810186166946142164390074535051279724547884410384131054949038890554841114261248444350871348478011722413519058576415778687101892097986371901563435524934829946665802603500511913935892026213757567107346533991406218861012642852770183538025744485098050161439206461973330555626326840850349632282203826350709513102406196733112019422965417237611241746173760863630364055676044328774977934062149429272088033783756046933606742530269595692226174495728765251603700426107258477559029598502626347508794195545690294326668892554606675467627861216977591870997733424649507912335542091186665843242538817655217194543074590982848506904451212469648879813684359652530618639123493503772525332291884203683201427382596014081925786852429618340210665646269657107009497543444279399950888250529878842034615880778964337910300865759200577985558707923522855862739448966482399429207285543183634046688585946458834550040470851403272110582196734916840228220128240948387952496182505277425721228068392781533761557143301084179568171418615641492616332527694314774756177549965521353152054900654195479641261523369309200932861507934903534312431289100708376967796734164755199230927120327615789769267895070411672486675641785473055084224151040264959039692837619002591453063618795198073044825633768096307344650226978332937388852719116339776742459426616558318420870319533794854307580754286175224810946526981011306549338699609546948301780014830357581432960224509763590989962085973610836998209740391024650859576557542267034578607138562816720396343448040089247572339353973371652971559481128535495054348951564978155624268310080377795706417935755326477598714645143174695191657728699047375858341141373820584189009553964085768619729194893448513186992536887550115627654688209368170764587791420255245298547881674152220983854761624794330532130393534171563554451805261967654453836698279271168254621075674236212849291883556170614378383286934161416169255246959034447392210531767832520525799196737689693693812275300606009409423430882658456564430562486044894267683891518151167273103772674084626353524834688320955275670013159097428194620006489920477327623125026187798804229114577660180307163440629086773496602333423124190080200813698712288709078053118956054423599588043754143380322924125500773417501935498195638337566631583776289224528760191571320175637014670749408604523332428532339232520793859085412130749657039640116504404293789098680940364562991892723644248205031240242527026814716417535394646698711412735327732340819686078501958559635311017271742997444631815147899283178067019034072157675310906340685353596953015982622133469556522658980157613699680370727020756104466295664538458785149210073397504060154453629308801725517507752166867434237929884211862502573725694694590393220670543481491760234795414712531923031193612895397439854572632353536541206742428481453413811888090585351105887662060531011034865285002596489398385547090173519469950653833531940210239570184566637411538438119595266100402748814756596900534938347462426854285514758265972265084466698314248438265292399246998793615446334446539876993975236858067538287111628807437943461637991937932547616997497055921050368243455560863968311337571293526607893978901542211805423403575772346533072882773890421077127384844122111357559154097329603467949075140306412268225030157141605804491582931427278417739713822160080671649813269433085321767849529925464021239026161052323864288614413809598587748718716251676521901403236501142618195948380689220487590163583139090536614713246433119619044052297850124889330821975221604316339102129776686660257630316397707584202640079836594499182116565848652277596286933087704020171356867632235982781483350918733687471152796208375935683765656925563068692764484741726406094684659442671053924286423619623770894422372076988490973089889796685890154412213532255517371000680055176937477253485371289216474559293932480594528117717556816248917950533926057451842819963447364468283274636190351671163631979928548153308995037529498604401872677700896923743683527762998802804975891763624734712199662752098468074601231103395157439949869290336487334404068791687779180468381797496019330648667785431049708763850525274790093459428675910339367778037025438829608573884854481289916347143660929116548809918259342059226075709922125721923292599068520825305102464050546782523980360982363294197877309919355400920335236092873407112755331275625406472332273874835669316027629975502018941678953768208028597496748995875187361458091417265743146864861696610575670403814757335757455431508562884014702139969400235791732247540037421774407626680046804674803482423847663627654675985647827325482077854373719859822331239683819574477155857238960327748449505301447616654466343301367383523478435100627393364486065104314111678301198599853034450600030513490278629908729478210784562112195958586433049508168553801370806315694735021630850084619210709571967806440224328287192876092051978301116953385612524387214317122408649646401879498610129484081473010928242033201064366982256476799701468681179228643852114521788841255958578647226404848162101788140599617766174997299995416868082156396225471671271601592896669697526729566392692053570163356220937918996320748712811133048869902425759250376528251981389815518328145422370354346695728521403580032663231478071897694400425563189920006604353632888813201974998629720142012261230944469394248684918478498928077242583357663026758821891708770260075553479011747172536650324519139532661097417239451423968968195329327957712949634819828986039758149953023802644085670016956680877928962068742000275504830260616716458726150712805890200586556888114906352620265979900981107730854721550220730670514158898728618562143503913545674199272597839227984797149123460873468883411812527345739232670176552165602965493185053032769566405992241168817716119360394737972591770405943214196492207463174111183209685584988031631624312698127998336006909796653000988296544543037207700329512864420019664248014356106953589399948024200170098606016682178436652737096135393556795584709691193879312815851627460958275884109169849593763227478883105965154204743549304728637221131677122606835462418165877153993206974328259812960322015742763011269556430433288175541654748263913872408627560532177672280628037208159792041149698488528371462106726845109651081088795976878547576437242022219170439813061456570875840243365760215212823174616766579483533983467787414191418653805696977409806354283111477310792364545648175305171952135789554133965297474684206390957463176702856964650462650477693422689329919623399339203088247332812034905793212322095886038558371891341005841064373128595772382735505198090255799223227830426547649936922089238302654227163782216038684014441703999304011726772442180671048524522813252453213307556862547164960101879085270363332702050155341377715341686145737415212955916742046261439820751392431040577838153571769378867655776156126424004069258023996735654670916298342738349996967497561318194667749728560501403561517400484977274393117201912673203290905227664873319724671076898945987453585688417977392263860126860533148979948088224816037978416325736068186967454185414783912933953051749629420678127319102967463618750519530215169242308258839784491418849254778112910181737186628580172533982187343312257347640603593015298201925365938653089919555532070592930174105278616439628363282575846097076604577673352516505375977615991391270911283959708563613603755960410225742435573400258380065490160452704830913776218357822486365202090396384251003898856708267253197384373817993550019392331825871694817118957854175593534894795234773936535133668887950092809919665040122703573321375750598324189719064953945533484758422786020386360173873943721541832255219205805428876984184195153031678433559797972081150559676994148365275995542119138657749041172199627586521842642813574857403103044138929439888766080933385257423775578274170817333701300041262259918732378517601110152654242883658665493739552018763816983660747254373594902091647787299972345157250383419119165425115704237114776647557880039405441663907780540894871154516493819419625758105946203454533023176205315256785738859158152769376068260572563387548047202174641976830882284233744046621547422931522275842101123599923911299408400279196718811336406068776629950348084917073362534680437077587556205334309178165780106101181651926112543079598243462851883769349993712160777584925912989429854798457341055679084100470300174272498528249317447336697200481293797232741355426198253757471220792399904454352066746113099477750057398485489984313480610478360437105255791483002176329310101232976935602621163796741221830500674380696288988411620176438212050688554002385333217684712314905215025686909382898256405910709225334057114455895456539917379265472519355118546235699279075606377951201129255883437311054597133865553636210302014044270572793779026626322210017803107739047080230731655645901596389688367520405796784481744640184260262338911929131935110026518904835024574776041701171798193137320777634631624159788957287496220837902479287108696449696944712639746810378176436124230496929717325635513411232454031597496087000632543043412438015990504964827917282157800582774521111223705064733314179466478809230382177557548711826197724533330544015793221681046308572375087922170863481998895948060753132710405443101477741228764883103458504152806384196073490690637338579597687109037885649338729082951936641678128635503001228811038743709831047175393988401553819044849749111546866218149243587862115534984321658841736355292463940325710048889044403258138226261343720540383922988838708299642690775699090636934118650103401431395604995050483693679690191895838285772824195828877084623849021070993629344647612207738967543948812543748273431336525604398364578800570002626226248095573348829321856511790443197861294292927543147038292438927693044134485368515741904489443166521471355469114324348573311652710084548581092689544848924667823443451772596203423018034470150839395791390920345440476828479262102675762461832336864771958572457925739634709251297764492930053636152001214106441628181246597214923051755196310684568193807351350884426575115472445567981861002683324011548856220187128759848875293100111479723417067314923101373194305019906666030980603947888910982791512962150619074137206603672273255130904157735188656956844673092152650840966432943837042046233934917173084623288970037950768860487900916771212747736778927263935557381592705261104261960186178696625130251396744679208594623325431720750781735404828759692913435289272970713444811289776233287657279858652776968018194255865625629616877945000927968406895998757964389259554319116313290897780756408915756783725642211764912495576801675108507137640390819594119830157298455120424966618602922871140722396083670007284108673804819384190408050911230307359740690982791136111528114180771615220219346627952063198582645432576558142618819225794041177052020366642301393746883178829840640165870174064744465101093155803988202462886838452155133817462652687378133841217629782664912836533522450964544951506700607681316238283675610092497717018348368162235680688771924081123839549374854272709280310307479657330576545970800692209813289767239756408513150636093639726400863636522127581802462640463127979411672417252674346122461716376203571451504532368563766204377240093266513394479252727182939986844450638249635781835718253458334534001983207410475067299137997752778807206382212573592802511856525774883695678507119095576565834254632370815337185059806931182673158716378529656648038994008792006077042603460978114170576894315826317839272051055997443507794059009599687643996993695884614518567338029871493650416117183544727742154554418115413254652590939094717807047595551908625022754250172270971304653565522727756633811955434334838988578550387529700025309910183123250947661396774683617472217558752334768681887468932118463681563572200385740412315933053740176823900497368890443903511396899207641335184980783897768058628508501897395990069824247775393482746503026319460166325120575892695695523913515731232247473758585161953450271571067774368415848803418535973463472158010098608375063325143781074278023361637613660770247382045641938801223253524057134174637611082788224209671194428839488928953727771963945957104853360638230620765114655522122350497246779267254805554631981581259674743619682908027156989586121716911625311709478534292087501007589121492501530509837187064452613286874548509973016933611224094901166862948777366734272423753408265820338773713749579661039610201907460011709690778039757614253077343077779934122652246246838048728938814926194971011441180776850218120626160509460830201393556693025497052080588880561506303712775490793627728376487899404349127531014128827995172888658882458625560715762924509650601371641281811570746220455626015486853845403227027585289539488801794657055726007910616902748926861051072361055960156076149058422413364201886531856827053276871649668590606468485574883100238292588586725887311531404800657224896985295247378483962871132338722265308192280312857642868486846016650037194972372441303985105747375314757644525893838672217538045538570709278957848573398149190069709648202068880886971439119542776026154889455977330207510099666951076857992094888231838819465761041336510957229126758369392947568369079569503392902052959437276070106171100022169970248059589077238474607319250394902573822250319582477757637569131384112631159839011130679331657367091913166384049743309679095323927064560522416569454402323723813900463715326069589558661070277771958335486163963010729335159047945548346154277198038113497192663552502998738561931190128965317247154294787591376321051507345292935173572591130193281325535371627651280247008911086169704826160919141035410275131878797173333462793561690529205842887347787269474307272584668580594761318614702292210607641515315377006022297116370267209144268778221401672766769364217530705002128330886663264296604878782847300880472704396855544708695221435245922055597243176344053618536242628259530886675783089278483697973252584229957390782422717626808711897780445375221017676892977473125773041142212317444508389937314743748904893169870486627097516776018200972737798039493481950132326874871170753925748123343401964000813915471404569200825540795449017045541439304464810026987175484344229898248389839956606320570235875129029546635911747038949557122758152536143226798241777791541496515906448190597347406068057261989159333372855874759068538651125560133257038170825398037985263462902287131946212053548204391682071847447078033367224376498076354496398307435637632704949161399682430101122807727156395070410577072592631233141742032072847229732082917907025316982092037323142332908382442399907558120401448207696672018206859557246996338729006108792289956959850325488279295801265653244086913072825498283207592576769591595048370300779295140289669775269373711753643080025488243582601801215425088537969110416251181435235378555368806241391058925921861047396238155400687091715421550917769699763860564523669684182485721117827193206732805937548964931917318031009116294382426309303104048282661205587721260297846865804142576916922490300525309495907964922833620730007362482434583259692533202142041958389758955126864385672660178221711258351790469388979897302231563950795520908102243969385564601302532016418649640207367921344363187348826313661726063717596592668637350969837862695658212506199052347165299485903639097945175884052003332663540119117659145131301126554124070771603681477005962609596198969208384673223712962212982965229358443013394620493095383009497565525237468827087867547794823152430845988160500940145211176247415329846327071534106098862880553219374572142650886001345173189897254225769669535523390397802212282970330252995538895661741397473802087014509808519253882023000801587761968146281019807154901126760998991804422350606010678433791714442815948730288757796232445442401509618590740440729073911441731716900699502448858863594789656394928923008494166993622917430278397094868896114146119830008876855173713610954989341236633046290957944163153258769678213610118684954765697365262738604510537178505714472692411785457964159726051002762937388499479059246314175751818137771001068390041765316386174998665621252162811025030144217622690370720194669647642487915555899886990287858423100671562267809547317722650971252160375083846805550270543599101568439211817932969348034438931097378727971984225720936841660538497124272623173609352527858362493141084190378403836450561317919397472944999751609029202011052059521435317603713606170524525262659153324596469618836650230492817386610082022272974851479939796325012521250122404265368066008750301163366699740771271232946010501636771211931313693287310564114481747430915784591923919072966549097447048986853100966129434854605834125515433947736543722868879082344608308464361104765265641813830776494995854357198274219973272847978985688229502898234534320740150162350976433196225043657857148117600210176074738412413605942443915288618656689993105804724571828318119600399357231711503255094903470448407711114303203218336325837780416894599706909037647346050422289330569320540634687318075928680486606738355291292422796599318942720837545341505957839548429945387581359385092213206260572599704246617550444717569620293489491026433107589881082307191614445889319746310826919560809699475278893345170630784988474885440656505677837643695484889102446763505059556429717578231286441635091292357086884557663286240179415903957788331676486079087400128293302146977295638867779923285792753215540739785013384339567177187904517629563125657235807070076131225273684686278116094453811446170037048065816874780473513536939285345300514809865098363982533055293142138262841429232512968782576652963616526805169692188170868505880549344929572019080190607564744310010560274021289418934447133175411688396562238221043137864584410852366892961099504233647947060364974878137293081482478877008111620008711751702504892556590348409547371129760320625075573387746610596982609230241599715262255670759974864082371422255692665706022418078367277044714497964445093278299624942169653351053717764167678615930968150335512293525397572744497130904546459321839126120218240858297614402056437885536515229911793328777192911654170047570019311562733327401824077386628990187798663173814807078693978491836007252546660359383837041290595528953228770571241002012765415145329468232895789783308956550893906778486398861908725268200312773501844902987521418569947478952366374778213094860390295170646795540872425453840033844666918809530706862170855887780264231284602440561844572542118044428169652567759686753773930588739429539094872391205895782806441128334469165503466768749870500572541995151769895770035352324215446317984222738843537472373875311595402069769997080020074334822596383818438044756208267879623353886767846310113214494951938134131720036605671110485220638940566034436124025912289501043762891959903407300461608326752331535104633896566411571372615314596945713910726961876472661106975435049030334804435935067622688814771309676597860419935726860188451233700006882408030641189172371940576423139601655919388936516109371855059125714753854184652218159836502462891914506914408640753430043971166263190485201374001944309261139954561238130562176103327562678151068544406151071447163858496312189218878172050973166167795526164179849826550636590815265737825130636833413109058672347227442463065915691759867861585996556746069900382562529618702008159245304903767454334519471195062816949367721548383401290080169376905841007916189714354299024406396393878345334934068008055391142324763134029926414298368984297737179532416695657006407531891657069124777273551104648062741423223935000797191478153798564297094496573892031692092684270950216695724820745124345520203463108515917759071988356283199957220962748098184697212882573022243493965151682532805064616549430224364116115988645365679613871281514763248350640518099799272725862196395193059917415260985751621628335779431963418899310448225664060067228145953982870488009554011429344342485414039104168675058635322236453644282888458226933059556535314439280104907157749186983217053578268340497423924439858326594375197953160850306470684198743273583600607465253342056187365535965585380322676689165809447405203650607485145752590555770607462708236300567384608015464729814695706566452863571123541074782058958082379610220050288961504741751949041488665002186161094826010748034150686282053315987913584983004250048451325352162307639739669609927146021504530749729130872445597734484637611231868192593107695001749267858927727969291740386864329408740056522849829625002829752227273269557012813112202130208958480961881988058779967381085021232078336365039932588940587470481235586067792419384704193041193316534921362771830968351836716673880631433082662339617701451902344605114457432683752751624280266136057395201027702318822582994078313319702751238445498173512334463593100466942214982163392002391970628557465825424154856995711914699463962795343899116609124766137832148287155465293931751974609606900954343430485257679733910797233504707758264924522782204200972835300389235880730247001280688601625266143635770369593817049419940250728833724706151675397319935741195044249727112238850539769143365205107021827963562299517055471479513077539420893681327097838429353897669761000777254959959436865609809629376464417941841451351376498663630297862895808421284417972489328538509654231990048269493976290225620689661512534019898526346636272838163152173620331274057431551099885576461359990570094291392441576582706126449474879073547311303706864486214351607354121567757085228551393611825921340012866047141541913198196013475230569530968681245928091325260685720051703539543787420476872591673380116810055984856708405071026335613249484009250711838961192959385721414826633571382686708366367920606254431689941150762702102178940721136818712044220254180955891353870037818065258300104264694498763907238747852442233315495658165602409182094048544004997947698894707336074332430803367540325778347557136489261128946721665185011307949742737670755834309176898064073644905549227093829564163547420244687959805501082952785626259243232720485476710736399957575290130207688328818483877031655741864970931941492523846396903961325917845791504398518022720539769119993667867370694508358493844068469729572475751749946742391476562992277263063295473395463624036742813806984145840830829575250240055604819361928122228449171793030007562639437391011028859111172104376088565039055155461712391694626049837137389657391950910155314603248728773371498145332917366633467099660002308750858451225489274259934814279894506956878475065828130998380010827787111365606833912523242577945034563562425944491798209660750268214265397317123275895008468746432479593452244608564091230883866556248284756790586753694961527618349092654448455441063493554364013508221253561788104336744357769693568824961152711858629176972607077215155210565282718804575718209359859547407630602521732793301537112810271586011486637526486224133616788050171079722650906385364556191873820109160747439536066008138475808082997796180878921003885465322529606773226705734807714890770535719168805975204604814593934459138345851185438858341128346559803644370012576139384162737517635861067845092160884616670442259980639338846746469801631552382261473775646263165218550837264866094458890591744245109126126180350665798869457940422600085797057948596394734979138648821012133869095756974592294938973943330410166517621803218557053554512449854058140536773924138834095995574117757026249726265504558004915900246598608430535166658471657246426861902437000739887181346837785566986486407620486806716745696143095888057124630655465278892553316654387836982176217793164628440283955563778384188916586492665032805034797936329926733121433656439236231916161472125778559118232415937705422351984260326936651846825610609401759994686362812255463876543745547391647035350286626777270671027729516129004761401460149084997735309040401840851811307924304511657725893066519850281035648806891046294021744368325552349506024624767715380182505141558376877849898571297058199578309587576563769972245630316845147451273507111523537524348405992550065777887711277030423557150985806307071362586216967437862526691376377495496465011691565035836458461237550912934016536283266752386435340233947656086961776612332835950028117737337940788633791262267979477141558567343287082507576395045869848460811622074091429535824946715148811073091192818986062798902980496461312387363447476110441770929953004673260867438649702974601281097616479517923695430560281110395677853016224046428170455032372271777285089320532684616628989725258879834205156114710218411980015753746833061187443295160457260439604068998468904094943333313559989278059116464770906947153339975574409097154197040990005830974858515798365745650914375163743010850565735468243620078550360244568696243993089532537834094794526283806979062937429531287219948619127079172516904114900686954220182060661761312967192638071218660268637846244571295309323836921293168587926841878970649837505755745463038749986736757423610461933822701674748205537270621418467611577333461689032647675151530945266391704186220943727861590163750307777177439311253076735131891868393515319258385567177411520832762461919647712480005063275879780130925229936224975980464998150503949508863241622679920138973937121363271419688739878065138526299946209903953077934597721125432289696464245455935110438190559818871165791357668377302705613073140813991916063801379743005783279404188917559176094011446026194783738149755115417021955892041801705003874495914538340122825018881893075913387713449706825673562023542500845008762501065710580472715328973773159153786794228933366378793274021469783249468795595931673572333633913824948028009909902507098467967908387941162710601638687793951013222460659986308357502018273697892077005576828734188361975045770402802285483437124023632884262230686536154741550449499101469075907685089761346411432127495463820927173014708250041102695808948811960562900863910898574250185627403202100232306889322731476561014946414004985338136035581480832904073488736595281511467121398033592343086399782367427762325793195952024778639102263165169744684323052994777906908609828118667264867755994425570246781546777513501923348075756695181398634663562689731640378572765751098696565287776087691350411011850112351930521182998697801459465852248505652951065695055313619380669851936611254999906787775153452629766209051415075206801338252572320468947914128186681392544169764303607336679153805765894493009048158512937439918087132395025736083422887013051235645657675026283711263612306971106088102163794324256860847077632559772003017271374989754331288277427605180344001548396042574064065683737121876855122039210019351444648749983527910705543622080869614470024828356697047477854294123778995880243478805232246448925118521033802645755641386552139683775885004081172082025309828131162097475461377736253355256968634613213604666086283764055052044156761805294699036230593085362129278989549640346186030531552523226009251573391057525816041633805648618929840715044547909446023752194846219928923970171192356257399444050451869063220104580415927993923518158857658269535700639689982247068865631086436413978107831364119395494695653528774125580890593182481097138768256400175715687894223414949398245303169692743729823431462352323799830957744552994387596751778362612466454789414810690494167053811574192774789300746094125771728186037496078108949851258305368664949921040555718199433976963121930297840703993936048312560656660183745519632062740902246313642172627661357511391706393483246911012397929420761929927454935289347451551125636316680351238399429852256252598767727762014092831671718856744101473218539333098055927314690412690977485972136140038496164584408062319357799173869983738503012467878124038950481587765053450179007932483671001103443642982843790827048348109102019290219901594931498846629975273476546790164112601433646289428692550491872057278001131407274108080618767726160685201303128266246841407629735506148871024503953202240649336155895518019395081388087080115125835937029910156429805465739152076485838215081327112797404689572062820496106675049339579497332634511615598047635516622485046940173582462937121123055347971599077651746271873262892756535248282209550635629722488968085966902033042895740936206580040078031298464783337876269293404599729370694330431854042684469872528852823806855000836466168262502995473155954997714336060768328813464254573668811291294725892650890347936083049895567062861815392689048758373795128133023821334437588819488728051037992696178325427771408274842691617372668710415837420575360317454174796397479901710045488216421691978238735317313166312943595870565365572001042546194508653974349372614794333191276459267962082761960604042529363781301204514498646714374754498792961444651337107724379035210812700309348738533918288978250070208047832871602006310614301030538814771969168773543177938416527328514219278239065743371981779547068849242789695902650758477582147896049616490574863014299988823683185322044189789364268485780262399814722274266599696004240218893782995449459638465546827807822552686981129346619740412307549425189988776834131522475118825952137371955488727566567357253406611931978401657904790367386515845996963368061150957095045182292634218746138756532309775668405386414666705490759675774525453504576749192929800331984977272842041262216274729736353474481666479780514341057986301771910149624186421271263088515778013588101318358122728770567902148381700478297691880038724486512053567902909200156975736818391447159343521369113253384546523203235373962514297101965812285644562486724011161922686245055323359366115141160918733439502990569005631276547254078849902860307756200609024496774123670651402349378903632849375059434536991737977249015884944954144446767145882128319927715454318369727415232313401353161168598753427560784905862662897024058961074551749571530211687978045993135521992519067569934603106440221792001732956430617144287512123592224564201957370732619558143387666688442340528185062986689424527028737447741333837157809597731926812935379301090313389439763336453099245967591158288206969233737419488927002584593678501182568766158630112950361696424191782672086539822226092269981703126872319251397155418535924309296876393702717887211941481269973908852241666394462947906599572790535702283738762091933599096187013563697150069245490169631309260676855833739049526543137002725347315212964734286666762074215271473251363940578478080945483071344363537603617721897685607161972771640443007685844957323222747882722717722154229240058119680158619325828848525870821430991055598569656742144228596088274158365980391692543212042065611171888829228378674926349078837349335574701703165477526283501236171646972175443088199642687796740928126972219471975307673072536253328751419222888498003425314686481391744977063741237204832088776160713790590076938546247704744454556230214132551504355243331835798781514774671533217629752512439453943409103079253877117272339826804337266844222005763585812953604317903830168242777645052479648134366613820352106882284726643215716199829423606847054564864043734399294954910676580928678039090978304841773705131363538902431101284838286228558522411537686726714218543954061503266875065737779288972813509129124477115697012121588140593416338456897897534092873117878478099253314023067473728607823134723730857652394099442179494239595162496056603983462039095977400396659456985772906691451052225957083493956215074187939649814986992388950159535844485935486729137119247374314878653348356943582840692020375507499285475322545274940375889765090891203833804462078916416658846098205278965934761702878812371143965857769468516808566815944521075194339299257539680206763644459155073307700999240775216703021888962252160155606927767179846138490567250061121514471373502883039976529198560313205104422251188317619918266781847415248721599836977548289994459714732252330695775023132428424767958963723679185018032336036351087090560025162536454005862167114850573046946169858692194695046734055517685110677647578485027432994343880283708364586302346707700316357353066488254000773885644876281171367051177261063896897354707177322052072538462217181326626442255242208645174433575749256186267341103986973487691462534465034045382760482224227548331609916232302473409398708035968968425592604450116368541775823131320975823374675478884433614875510000967279363156987401856394639790966345631090675750556888915027763725591665974874924514151823410994219505827861696799055945181032976654451045451134934992281948506078137595997127850178601427904056363427889154096711087962440789548549959439898091182667015104677813194988037225998941509515881525574355157757491040082743126204951419464722539148764256808306046135565366859434991937716207111992916231435229264911710085128952670926491350505707534331889920075139278139758676699198384061829399627847078656688674397996801209949997348229319653461186610035462414442963688503456582646244388380456655961268819355224216119366593285852503678340141601296809901033374691468588034824687875443520899097043471209005941601830871041304041502972634679520106850110479621295641639268018789395337847836082253237645352079320064360908794346783368206733862775720240932478792862303144015907198448144139665769969422686614741090478100504882605089348477708213994460410608543738257728060779845220539760999895802299790348136647070445284814135135156100097755929829551286124064655097913954075456680163718473967358223240974391470478868853971518777738597303856762489561649453924494721669428022970593900272087809432557357911846253237928411095208687653150297585089104520818485942198969917974786110123771815368283908064733140717626445007918660189750366903238249946545893648147097785541158379757194250930784170813773518700432350018385254372918201754529571440569188970640304943124449420432152529308402892063536725421240628145216730131966372828736041981767694945679230538920662243761294032845194660896804811519400326576311515675254424144795818025443172573137578176512316335929363957244494267662288470069227994633009016161952643377553448000967655098359003975552475336802162147773402755977109404786300310757679419789283670802333740969724178307693579597253669356345338025006632480287105050755782039340549569120229864804011709408942388451777118927102044942822920420431284955849943656712331617915278731391969625317705849390824591217645802518219842054643991188644658357139307307098243133436886221704167286430934521839739582662363212716278772949293539372261141082330802744625210278291168894986561308368985262377779547809842262895113390012635245329440207903857644889355094576692310432309816840389781399499853111081136681662051368610172484848411686486781606241897119953795042581257416392799066035555306528923617319255422764053684379256788461442685839185609684939021440646519842370014460300767469561675826076806067490474128858247808831181289802408712975593313599056461232083693702424568277122388056011921881042307534148774636834115772989637097329752818554236810089336413905642462685812042375197971148609412725367588751062232514961095875157456517796465176670609220127877801651555723731708692520342615875993658867935662544440205159912971560576567697100654836969467610846793955773390729868694676632868743022011970922960497835661790957941914650651885777532432511036209664890872605757569645869463767886295052330255720751161023444968496741343988022202616930213674609775976726166275242711302444969890132327984329665900601000841199920235133059044813721087718558597753303033330702865446425110206175913289131600808494095663749386891060116937090904989309457587915305582156390766245276694472980527224241707082567650769511063898725192252911668769032120689450228528550066024751585586352295551774674041001313222352638423383812627116711478158565848811813710790339693243554888445923532246302020002583775658053455603444353165458022119380749807466160539076161801281581948273732636837689976228322311188781110498440549666501535293722047201464992704938778062587436690457264039618345725353795842642861929378079400368041182841362791403051883842996377981745937054935872280667366755938994455738091689874813646948240018864856276348774519381849088187142299580926409324472383591135856971107810402573322634353673675126542613651978121528272898798703368148523481316379838204112234443638471395786775624839038639499950352234843778544779293100647053080998037897120644099084388172437097907362796577426907554110222962362137133125125633063548304840634893917529077857279661786757524433122467315752465357830529340273318221994683838324129204104642698058859140102035921098083538791008072801353127828863375637578777084585708444485374279430908080195495764158923658906186088467834444162166708698351990910126509537776931747956836596008133926356298235319036809230249353554079577240837416061870237408343333179457463182808243616966313448639277718000010951282601842619245830421771141145745356972406795022986350529365451004209211995013772402351277196965474751024500335146941150420283140976407430274680179005581495419798524232643374628292415573201075442165712551069364612226596924656346006265212555733302583744266293762408220883360607112691271627461120070909929076653260276852389303925190240858009964763778128933635952474323793306821350400396451379890997496759155163774590787384739183342840455545882711265616516274239761929559411698341086996369281693095077793912920699614323865653649113448336072910765512103904622416603261583299783884745790918465957861971327404505552292720619810754648469643716429453122617974530599119428113023005462457605310742947535988858203360231356638511391988204795998340201332103995166076002319963371211623852689510081042778496879168211211116167715984113906507762289608804346419947296497177406269659247499347526814550820636498254188110440119269710653740737067581558330984358494796271370969109314753580026286297946167499823890269795427044092421645583835406339766661816934035284693330746441660561868451532578935325739482540801025350535345391119006472480554994368188694526017080239037098493350444108855850079546586081457319614092892963749068808664479892332106867151182994126987605138699691620625396407229156651888334199372343924173051463353323537433634471363929858369052906083993113936146577808940139118081854817283720628798560538349026005861381873392278566690917992463267599784325107560741635826086864448203488245104364013387184360460652739739675153522682930989168709280214303650141027447302174551081861336214631015420100345066759745986213111503769018978066204976412560405431047080071175588740225949472608760206971560022810407018092234302573708678835927046647387066629710532866984558270434525096485975383887091917089431232128330128821269390455354796037086856549809525976034673936593960959390814138287716715756436470862394816245774852234489919143682569306962985114963941638216067364588454213840050598352132192628715038587167748243947307875572797788481334318739642398817650773872117909574522013789462369469379732981957089614735501312539059916052469363818622331898662438859962310918872408214205860294921320989171856909687844073579447874131150214795917494596279818135564190668512826081098565731496669361790108098607710490850791718159238028593801229525418316714548581085776778244672262537312530202935504089370658957023928428511564164367696263849247961549375147657221883113567915953210341516710896901339684193712183990735675419483991697802830525356601985100766107783062225820506387275860077183746190228515684971810917948373018542884711038800505532464610961952647137546524510187093839206428920428440903288792977072467185516025991462240168713936930198559536769606987792763228585597891581683348906210202799239826424098340154167665902459868493665891950655294457096550436588519095301482787621032888025698780176645062401682438553712313787655098178895257842377407152283965189971456757468075677199146608234050615258082194727101595884368591745173868468282605890878210891499947868854844836116858317442666651883793094992098095977038243349817766331057016029753381365340477826824260396488860895038371925924839842996040026640302377531592104179706562529912180917441813661391542184967894590251411674068019161885167478104890075692010436627512686172016784659777545866016201762943158660927944735498250420592896776901733873143863730148545684718106555127413447654233012725471560831892020244410215555005425650295978309347456640694478013091136271968501230620549911976906051886880206586980727205932568153753562241003285040355839027614352852500795557024836169779854521656935915450612699971354897596244819351088295959458649819618557597348968165708913406740524725527110829344596691267846415082747723029778926629262919757327398906381787063320045143723168725556767718043442227717428886554784452702431297222265557389223882545485379221330880085749820760252519440846733150712118027847127113582905065621659331067221447534747081000890471939535768603753122706660945612615638970761395176411560692252670642007216279958700050255422159303399785488195524003088100287871975886459491148267263897977808653988564062708418375578723607884719614580063610414966227375100068181581044879443952188607783873493501268273411104250101397517188591756592174564100587999743576157461515320262652680246993794847718765043539633890889893458930204961576668406514818457978163060971767770740085413593230371615647598837351431559469193276271158112584986656185379865042636342323234698103316185629973122320852576793090472026627781616775163814975689410995952958659708161608636505300270763305443170463444172340959777013446588391190636182838132360281035588443414912410655391527125827811150449985708730586301893069891488175049126074162336025520983221500156405145013331918536347274974694708048528218025547605708920875141708503824093988277042212433233253653692730579305146577100056826703438012737772124348038249262118058286308923856190704329708697020852153515667410226349411192029075671406484867059460874885099156270210226413948609014308620313533722005843988839844183554911846533399426315251899319377882511078514826537947870493435354582437330110455982420111474495313211876274011918826066899923475475373157958604731833474831271981648268535477739771907100686394354959090457874224527793674019812926889736217480448293919910032512962040730811980803661553635425661907861732426347115652931931962256545029397075438546555911616657633457488451241395419078181878168583069864641865224052038239004766935971771985762806271487870969249758955546991492453824084327766730530554608503908484271251263423435976367489948792110258563777247507268136213593993785249009779689532935971358824317689729123121118587766024517195030038069611361118547469467911457083873295913379357207464785683677207312940381869525475099596232163919870530028608421772953610704163215513406455804672075800442782971098335905890473082434216079204056215137591047412368830353233821150681987780202382276220017625635328666112843873925775443256793722955863944845664991787509577241196423626688727220440652453287047177424639424098738818168866874540582730338417820631358686332956510036449781852063409283423524268305302843007919841619305364077941836457428862236439730292351795264243717455959047006460168879580598514583077637639295865769790832940704768124582440754480011875198112829224367891028048798357449582316526223354591599457209766046577261253972979673399329167176252517465569005125317676518684009780609952028491110875890567351658321823345871295524751668498384509248204108269078517484079618035810255391812772437127781747111049955625518343644688537771541225034219926008253525892742836005533407382011664404673684947502874936987834196134729805302868607082862089790906424453563642877973691745913564860413457572000902032601940477997193529903352122170834628741710031955688121117119073759695694096168374045918666480616305017123933282906373896789983313493849658975847845618432261012872802403748037081943218110815921568764632402741020857632102582905406459648342222857200475415792320225086157135786055234593074272752994424076204609791427849329216954055399497771676401637564834037842589904941051962659021495651817365450639393705687959816102432572441373699932168928468791715228919217420791170912837005215047620570340952857081838448625282903928706680008991012224503804805700732255678326031998203183892890271979048417426430424374554997573305052661700085919296094167836280682189670318644078663766665109234661463071460042781719757863707336335975089563804755166399715047490299059506741365151683629057339513374225199135081317024128622213411302189706313253719716635675281662744430508403117060452850593393436019917391115994323227474685726483655021858053243816128634508091256564175636746639512581054033752782217209334838805243483940785366293186701111329978947819176198933081538897491861057117662654340800029554076826632809970736046614363090660036857982708121888024906104172399502362055836678385715356595899424006190493818402505472093264378916132409260912794037004992824202032599597692153346023195170648377907013493412525830799250619767700345427134885314204429555808820434359025584945860125048179451439198127731783282108342523806827686002190865341882607900770457066033171307226952845412196236442062821363931380374787004041348067653159249024610720207252878425417519187724956242113025995226877717567265938813620080763281772167459366821825565528007437079823743760595844646308746586099410229555376350247207672636481122730455784684103388864127418439298513601090540111745461871375117953744627224438558664682687892434930729486657702692860893812327979341084332359662952620275001635827661428458324305447391499975365423775667296054357678170206358566590581733193380626035547106941955213813923010939119889977484380123971832319901010727258177730483422939021871204428035041898480518275207835650082045754036881337484431273910879767322034534186713481696376145370840813583267745742293619623817271657832911904369751533210068215426640309923904356471875781717365111400286422004564148926019993663773937379755152084468838599269341746865083414740048896554524929429010688559099954711101077684712944395970711760063034883900988603383687576817488935674133831193747910310594036905143936808011902717051557190511530918388786854921712479272839665382678725387326524265049056938215579909226660917983617957136662677561355110569805057469719900904080717969411684162935537148763161949096001010157979978854525975357291129761465988194973554702355829133592668710577696160229111937561462952053299882351299321547880038771774020226528762176852309945043586127797445190614631942305212839718791211662467765076747813715831609064349955786662447882008373264679770983718674464636958143886219201485958282342663287170944940711852403294689399372195599690417223264287764392228124160385591177430515784917534375614426470934273530804767292212113658695196365036919471918972653111619878717692756059168173205928953997275573182332164777035044853101683075475411145325326126346310746210948398538528865783089090268116619764493413305829149901463276575408547759841905653365831370147512196936867813045647000110291046228335832257714732329683971767611607873609274668688486024180550491402909555885620778220104925863903523883513788964031180379644053898113748090107729877753750978838707774605857533148265655545954623842147155105960238300928954346571393370560259708398140103106541095033879037268617933068468335493418972037267659437674716769213783757375547491193658803699177918325316409398615331772921530212300151023363496499538291443988554524374161878104898746032404477719755926748443190700616626932167110883001666024534963150189890835068028049349879773520629803774801140122187154557249079472103711892302562413482757117994826983352621248359625758814676283512988084457441613108486044127046192497785001165613497691189396717409004650157373616060066403863732036103911355427439481148842131535370809804578613107277208513032217829125786863790392231533360175369765922336691738845481088207381219074105902124885451307951184879447709036281217490487032236231936635862858910343229189510549774371208124221181804126748207626410078062737448466715075037749194074368243009926746097838264161821257432664266288602023021908895088568296243571265592456302704029239648835473943024789331243010513912966759564742390386403420775031521153909545503109851735624990654151459404035388130171200582217286002349501296005913760562028741062423741431369409080098267558882573802635596931508095561378051896390672778675280374806127545529545424387168854910647985343861291104876820579208380541448083482137031390751032001282153920953790039152611938040309102082155729581405691818712555352622528593773363655087826742160912495305442224663852709729655627923115151648509767309701225283024109614624200009361889121880141335604433278478880660746314339416912307290251481746271553341003444126062395108311407925687593903880049187405217337099935779076343953317957943888441043955999946141395060166670177550498425376325001636573072699665738316548074004890587456467346203570638689546111734299163486193280726472990106902536713765688773639204053430935235894637582895802629898124033821101886107975509860511349733809808050184293375860265194376331367641398837909826367296406150654778721192844292529331962712367969242679825013512551266498133259645501906396183616252484533753986782562583844022007800212465905990980076634017374101794564102895333160976102170796564057557766853803953257298450713296992842900862553426317227102084915879433862767604466519890482838856398077894484448765348868566160561979732148201809828882459481744719828034590345310325735029583060723151092161972818318359267933810077247784911497319667199815237437882534402047874491945819050607253064963892555778138393052022125178047702329321414850545194308295195544340028718143485430278215604568948694175760287056506886796453549150566082524359255295344322914754714285712332690207882376394123831928504574491667475071431105856858194480959380964294694518707270600526691840301628507050914681936507474741276027512667545307338240059506449464239524478114765157643636387991481218752256062417777615411945442558352987305896130502168585357578105071253481338979605074581929106899900952915881130051410729670486169725007396624908832501630774888940303794184904069295715493938007868287715011242886580639466905395924818511004449123817725705137788793454980256283673875369554867642513196609524108567932629028436450032703892382549541034220746998705462164134231032334081268258313338081349380629560057362173907374428878843730764752383141276046919465469652127468713949415756508746834401548087856435964364322690863819850438337145343425421829850249979350915765814601249245484691573577484568298588130786820520727702150005159998954299890460629946541410698481363632075835873983649427053216510546203248045059541263479450617306231118260053427916209353450339414911694821050937188717954826101594706467446947934282526126570268748036787159888956686906465840710204180385497414221883366287069025589883240335989334629733228350652374210793368091963581351643955148975602966974729426743207385514154229285346411318677229776452839890471256898995215113860827137156401200613037816740603501290341447512292705994174974339875747147853611489392811535088562045730250103102504317601243983816623774057360400223853411665904416154751652389794909908297447617377882150612906209500993393488297667216425841360587042750063291326269221377918662152417615156007319966395758860159502152259207266930555750888196097722283015850887184338376307026459069494144099791479696771395029987239673147152724331361920831000298859125325096883622548207725397151166289837394137469609237366095686606638535365421744824949884084416286240093485063434657650401812492624455508695343147352786146851233059688349987590128640055747100329804328567349877435239635560596173894935883582251458369217161227536738933629121381492495569996894600233149468189752498834756100492228664087867120218012121505869644532247050089120622134677242126992684489845165398017405917341112009206201737832561285088795458649505423596211048035429246216999165192532826469389713885954360168376298794303225858499418549507220035605477868715397609131780392778126089756308250746101213566115474901363167853861016503885527921026320599525516073837208810412975273707009078130112318642983766594288654373137098981130601628650993258476297936939249417014543844244162095772475660634232154602636222356410757356907983740886923791725770979477034670010630412870337431899926775768605089042626205990216803656140454505703428542589696536599584083209060153482234576759724525629640080709983346255888063457609748601632731029758467005753998725213641317774184344730985667682296523548014306917821424246003374029869151066003229106978013699191585513433023375160408426044578565578664936614407037485609971565122352118540643048217078823532964309572816681197643671469920316835346415953201494566861361169273430855821192019711929521269175576883024924050209068420389245176434594353286381084172832422701285252557703297450728479937630313824023668081425815556966505655503667787171449479647464295376612604174223797485720050189269069623230278915040465002405095532608619873038936132261423211624825876481958785385353480014775527185890733855731200538899064312196323013266814406273514965098884348571468487489900052258141166378761182117497650195052261290871052267252444624938773238367662196015704882289285388331046470481850267462807744720237958593412280512779854816408730459997839845127026714272594821730863618242346413506059439818158255909330636287246268225943660678817824378062960790004178352478040034239523625977312744445643555331416874111537679752747612330332672775843198771100536596958140137109193909574150006794552976103374502705222556103226362500558821185278564663544915555849804129620102950248732733184167688782452357387516689468359962191467726584667632837519959866466111063592638753805337953272910692428594890121848934464902158345140078888707787602512497077054155589022924362297197529616104362332952435302325226188501081933266609060553776659127461463122490375166235943028038517786937719560680893930787109646432849557867043858556915871243931382169599412138247152333931234159838702610290527613185996641823920616066587177482582744811883259198830876429873018183674771813942669723858131407727697230176750755595988425155427169872705662441577878516108065257916268998458362259476583624237779430886751546354407871618367926190265766555635628227176804732673855141704133377337219647481759260771201847087081514360469917590947285612811781845980924924654945067786142398084816580095132379282373783575204036177889520954063175398134163971298914285853078512819571255664520647414859113152117802637035980520556650809186363708830239903865815741117293799735393266303459394926413376012445866102583458128248501413433742958578749415412821958856690515843262147918837499007841321984900785928564569747673294422504092745265423307554311221750058637704712370452009378493494757920896001082135583010385638408959721685350116536560958747978638305697603231867508847361372462374180083809121296395881167998236857086059176972654526607853308920137186409215829631717347532686506395762110032380090267310382355293388940414438888604423041327821232838167260702175024970120587478534845538316014170216856729480604524345827425421237604944559666239830611561185256211182966559026848692881747655881624849625602708328314135754432017231880434028568183845546111636826960003307461741040026608217930056848865180654274915180911408676419838917023613307588602547334854102864494577659517716380718725730332808718972690712758723805997516975896727408061521432981212874135836306524556555463259699299196997214756609873414273658239850189737754359423103406202714776644101226188414113718632734478966368621215131243587413886185089996117410757931622849646694582727480861313619678248906346477698198120262486577541627514560867996462810853918077383901423786869478531083633527530230980505938787608322206442708885601247927932676443215774883127554198480801802783658832592675822638579533528678010095421612926112789311853517124743791059506139404660743645314563797420062360288415532150844259714349246897528619685544778101639974814720844984101769638000403013114142885477045365357822630106846356069620914832235092403346445272345535774172948848485077856302974950634201779874048927317055925608111513909335520717485684188618630562812789337341615611014021260346229923471071968622092286966328433497280625716017503552719030691190884655931528109829385737601158739051247042992203977344166833438200584864266272014108016588062319469108332211973083193975949827449966256759269944519309325411441656214679183083807527260685983300675532886070902266060811751528811708209677526516798592001683192878512378944392267375935763731569752731534755971508676199721692041081832308319829570087825650386567261123455288263517658889124285975363601346043152185905118752993847855985115572176452014543619343912516996426403041776773844904391171954859776338275851959581377386912967701427284935196867306213766319390231863656830367181909326807578118758641642104696189837363820275545937452201727630430903508584092218315606650122873835685381276509564885781452401109526993397549320592156957571009119539174610436651100721469938966506203899811228597019137674582957465012366504600624013893920256895940912437604176866495199961670950645023481806000255137427487196260053611458287463761528247253204839446650919041822190252587707482971609990822296301656189526783594360040466519485588039765424782044849638368280676080296344058002410793108403068829601885259439124326914015396344751561461082804633415535676373101907618783972617211918334050610246484186899661371632950734570685207328064674313218125490713293665421924343312584258488540807693008164707337193363466027646222425554375804145600541044465139121168445705517956701999258081762659096801584286175096738217535775790656017241754667232050898034452736515436408471984511459378369993994975181572344141576441526678657301452657712639482458357681983562399851513092772734171981563661440310921349417044393333834830383238019170562576356494494275815350079415632154970878318133486342796558369838359262423151341793942859363424634607843535747697917302371004115830370808881714185243527048944646268196161253760461495937200881486592709105173679710318986221561849357082122451603356878502046589959047303872393314129692753924302907004179960644431731872770964071028680514169432828375628585979607525650477762425461063315752947945861773410368013850076604729050124894952799143070275758449377628006178099298438117797752723521931709641007399057828841931246816299062975490887476120457068191595925392741578610961851258069597486107547803803496795625701023432294950723903724361410793166126389531638777747038593831894362597031422988767161730860540240213643422404057442931442626638786165370374879486243416300160560095046576666714196575224156325761897101935806656975824608834977481821787339286115682799842348800924391325436664467425718772590613698744188719679364824300752152378355126059890318464231449273584067139532785167762713566335033210797372224071844051139932165818045513055316460939277141397667758775555384557535930526899822206503881797124973840762581380165858195356148636787525012705238379483120821519217912732718642624489191903442477659434380187646014709127019053162435690458396827811219931704309572670408950816033123607843032563919354672997538783201484577573717368087513120783895894242971181810896862935870729594933001524206909006767430109626491741696521780044286378806650249708367155955087025000145495311019067486890654009405021333157679758719775512293411681868042766877986126913004689546259011407490686272612072095307571876400896464713019222929521801384283232776828018666009147999460489527256762554364086689224852355987874954028120528996298421348376275257745678758652526642802910259712137525831818000735513282821478576499607657352048297841858504366822221006179823435440615289003020706516642854289064718315045401132518684377380041567021285373083181478432807387413389582495503223921976798367153250556357527561799452411959218450607718252623365442396132097214077228026600212731149922859954058432541192074515362487443756881180326061385871422152571297921332087469765386568584059513307386388337993279968650453463644075445739543110883799268034973432289406513550824713691832108161485682536939130357221949279604493121037532917361152520317585006681264420715308287356122636377167474150326545617874152596859621924890760017496239555199208715923833051882094159459031377515359234754416993754214748096814967655390014919016210153858594159754596150246624032634327890438023234491616897222665423417353045298336743077354875892850392032004549807186297666903864829876655432686522633077244167942441564913257166832822085465269294621015972949710963797321567364640845571071511922118157894008023796517760671979229146622515087369109485083524629423156882154218112847720558539417175861158663335693919539891088187541780309359989757719242557012910147483266607188323075233700180076292935803991996698072677990118863739948692806142848471637506042977311057426937474900347557713413805997703465765272802419183745157238158021387300526672533441643727846718239694532195196749438703940423104827486882068667400703600520128024906349337883566772665015190870537364454930570037913015255800122498524097481075719627998205474114704028800214767633729799233437760380222053776306120574933305780038211340588589942114450602998470938149167680909863767696052806021874674162874957486334302874752583491869488997756406607187091196636476802047108508133267305677326728769542175485709588867639242124329955533917586248613410250777154778355961348717239715280535275006976815197879720452086728894815593634856776393702816388026539082871827445341350031638042715211679996691596641840640637697802735649592111108417251287506464717359343508461870827120071457302027311322204219238241428946783750006585724735857447865883939653175383649643617285901730482309077183014113608824099477309650823626562593320027214955377920553858025837644766553610695622691526128992643832723274325277445233341105735979785157204647698590556247488845036359823640429166211662219830092358679850814732623913450662690424697182847318689067945888133560901507369413467393904223822897842711254788239277156200497342778230245908171064934172380992390306080559039108282317110081723686569694552596245279036904528872180544127701210656683442561907211195789077811750283953394158049119859752228814017174919132983755849763017564555329693523309225108676319758577736263093044515412751044714660127716788945435136206585538990179357158150872571199704893080752355673874970726692934710250864518277586579021547622939425811073542621673364781356680673414510034925116271091862050375068784764648235219215955284567501617052158072858757033444746366539015738021169754558281518315334594262424301046732046842303611230296205796089448871422123165524842584277079968965831475076781219039817628685086487808668487435449229120782840518158142811002964744002010842795289903564731310154035270628344423186269993171177310098796231386434150923005657758790742068772458775745127264864067232260417974942560448925255411163643584727708441039203231563333716573527416838723854480028637450419354587388405339198915033017054564841294495965060069381705049288044509036804677788277894068745696065201743916606806127949178544344834440786464870433855228957694551366119221692145900164711389010749330639614099001969630148735831680063151992315884963310224833558996945958480229870018858785248402186779358789964376193585955003688450177198862469304018181002110584099333236788277997627718167805703580546695605401886211145660418872710707684693737337323170473855754738642959954173363383027247362489329324093954397538995255156816433686168672374925492192724920274720531757850883035793364081438232298539839308062828271111349266359358408148081624752590455514924176493962575776698108396258718286711332180945582675203436496646096988007133616618049781703296748722788475579087285092184401792803670921331023299401381774863660628382117339497802142276236068214602862056488383725303458232307205495071104150785106930308458372484230369322985158240674367131292528493460242330789182827569393232280771530890581637778522788142512711430952888830457503431790917297409016148069654064755490161813419021774205248980176759589444914284325261651539891738017005971363075692068736876593892440758168859659524752738805907386539368342362078672329311119313891167356106542480312118917836849450158957301977157219046337067428895151370323416992131956053096937631812098962780294705795142434773384175441262872552431874290751548334022139689307013094514979944362779132058798319640178895484376467904754703436294787020713024275734171396467255025556381835826412399329752940798925459287442304080890852043718739191949274843456470495428885981756663567872017603221853905912687357070563622530216444240821789469139024924405120845829131072123637015089555530643339140716449040214217296400755129369116711630597976247079474149900050359011596270404136061907787788442520787514304404811073599639590812947171096164339690125781940693648604167734474969520595127396682973722224334585377777090337539964762713360928707976856944914593090807715396864282011649154537262649453672602191760665643110967154396422398066855753489769482783804071096543046522126082178147169463229284286436915819390486672563541306946379533542790789967640883781337436699874754628602533634007386504871770788937355751517803516043244582136349447100869357746988701544010960977245499913021447062985682453101572379407511024057088930920888835622307523770418483351119605406190278256166734660259392858857701296803137273146572463978956104078468054265554342950408388882884765565613731694315689730157046144266940913832272056974907380132566957062831108218587073288099745226977391472821926604937430731967462698686069981835433377634405783565470169480168557937519748761787715846497121610588344873368759653838302692416901734682982089922778756303767320019585156972033864993121625265014713079309420523489729758714028153954806733546628282011989380400005336580730627042309275999253672444091511741974258549880240367673260898346441692175454114157359357356146164444693496427091193539168525340341482203306578276829250039674746212730109194482634156273760561036055020487375543128119827150399155321626570002443531968404451500869016425465165980497125618220654972676524990657397794450927752443420331855398469132671745513371821062248225088362661707827276446207334139989993546095162909423585446289532244709332949606634649629260368278049493790788734761933265319017172416068709621456591731912118480885622414091121144527821781350024334450813034710932940875813040356914282855142586776825716185660606018490746937324237041064232754068861123456882038348071856498328223602201367124858160514921498003982108579103983314936593110915507900836487105473108082571142732925833607885991716157766094578072669012911830030443972909754162540859724974300665172054272152459812630983443198867824293253694712418063216792866734259534262395944509423169880122035874129479341746487811802841249175310728957747086190768332572377532952700494490832848698062304585359647222810126059693448687568598132434546627228265775830162066850485652108837300909464059310140693365565473927372628017964178402230413831925531059885937087400782964147798174510106820227779111601000608485594466562892524842573554555947259724945028614544095934251018358818957833727477690208339328127262448336383556966820332286737678300601357434220886214308585406235873578572292257538333007522610939171763876160633611628770608860042875807049168826429912929208886663197634179000364993647618787109891489734711061495623352152643688543196362270952354969610775084088223050571296606765226660399131893805741570239499311904458403540891672597534852582873011221952629077503134674282528217676009053871259564447474586985498657262177070968294990016027034027862082782248889809084770408001766299891607050153032238505417577460017447340919376947266377903800232032507493720213375349214233956742657170425100150491148643996413888600676034145813568579070035075551985422459591936190365633182853178974622800073101861709354086111283934684628533673078177232892349115822040882599499729476447097505151703823122426106438256933897358046598046644106796343158669432163648134870744903508882987616254640235143872731628607394283290905399767630099952386619680538397275273430714164937133421760345468942958095827819193402785064518643764386052271466219652970532806759776570077176291087788443449714304478051456372661070220614691510280955480877236642378309003174877987866145463703496195916003091393811706369222084760014367731171553858203834732277651535006761006265263166848402347056644325418269659373709013974521300302122534857970031342716255998800305872234886277844948635641432731948646058652218415355515015770723814169409816393703958147829243112889589352554197943355748344755425980568056111848396801349863313294636491285083760017822502729482809375136108454282840490270519058172036352809937149703188016739013208453212039913238344978917013010807967309261159136366690429122087667538131009298041424938475892404266642022070484285555936924906660688487353193428232241645839973150561242229716410776403649456811549176421374894749880805690711668682228990192448556740022047913289201165438904904646305048379111635557977971129631592682944284381035695738415305838125027459948344935716697786600171989227110030044557174738847214334587478758000725895774106220622007315308590092318288799002925233984417121904572991701776270274840374612010121593478841001448039122786860178535933108201032212884826313046740998105843777275882285705966104853213047021854876643181194474622859234328589543112977095886400863786729849178147837598987206049217538978594729180709692817538282474764818214466721480902841573895576303998758794375729024868159989473710405155821150483861781083371140819533431473781378694391535004080702535923613519277350427160197501068634518024484731478236240764193397945310628876985587937721581185763564916923555669140452374594652782009089162673178584219555918383509129288127280984552844943437169544276407755741384702639762596777909127388835139433291783600487321154956655488057290287639209701444644720362123088176138163019293112536118740192623382677938236495540172822074623712924198225858305001598731732307072616626712095870043059514841853512293000482777169135731911852669167066893783332593828247787768974038367433998464877767136381730353657477561098045634558440832633348066970819304474787863628466416837798889299247242571583132555613537343006807746561163412683168817534691210141333005230313690048439766472008551556519076222945947854228429867111873887373602720979320387409809795138861583808834117842275803835945512705903610745108066558317645317059185514367557620068307239937531717199386028507326050737186322922724480821634950284859054073678489134285778194602467107777735690727255978486828366399499631170668519152431945358473662408881242785621296162216234606957922824750177958230554426581564276000768398404296348798725513300910474471119335865154638832231175804672938862480491351659098062524588429205750880508254857490641908073530931111620370926891139644413411236041631051995759229677453614362416683962908207781391442943830100652840928604465239524385601315230380570386209314452775742747302581606163292291556797509998775554371939164917638652342464983245801654610011600562401492182548403007232046437444831812906738679540908217458228321231709118899098881944331497282197286570225924425019253541930990110137947922541596296796571195531108821875764738972145282905049994165794350345285126854859262503804177784505649535439508066177764382221131527028950295537304627235922055361337265038383680882137798746394711653461835005859675825346920678662601381637329757517578013182557960403195475161262806659829368877844032850463085128794030359512449618847254875786333404408871249290767473901044170750751246001282709638597475751496116295758919293349356945546625403139751197962792625234577182754332200065451797249470299195757419473875310755343249099959954596748230549551534668855037437527958557813087577361284615097657579005114770753335293749739510027359657055763279969480468292428744262735729506094964664861499658551100626185251735157910947458456668384826951541191289215669739387702739837160909974688991929536377639150136688183253468997838862296609388232926794421365375052809824977714145817080342605195529630565926444226576093143293234609254150723630564534831345701275192982431600823350621269355442591165987641083776347617947416067016363048725423406275026432977068861585598032675578322149146636285210992670365416676617907981520792072719819161681470271276350403919438706328267067275102527510253964809637094800601067014061203470821212054157645196262421188503480429725595559138299804158463224204219966198324554314367576720265969764683900570752597830391639709404529053966430010609283006923084638058394871093619071050073934039406781842449071863181895927372980760416439336778291156215352427613268945273455762923519690827896303717363373989168088311104471846080126398786306259879520036094441559672622625370555527152816039907745588613232007778417986030364648291466577910168296742663815545303534176583723533644203570225979827921731598712437750918022214925244719827607503701503650085958169558185478417784005662818462721711442678703156912127502957171816966598403525845884182498599191772121407296195090197107760016863644911105294178867596376333807189931018553879625914834594573580720577775010799841730872382332342761702434484261071785736383874721612722217156419078495611115511866959908718652818402342038249845625019288451992214386162494435928335920650860992226134910862945926942700249827516600846690773091041296451482483798234937440672452400796479715888450504069091745993034358797850782939119234647724516878045491998559492276228720555500021656089098485668916802995951997478165372054234201109171813172045224788172133983858036303635851888462353327462354715558374284797268390902710119483247103753194706041898832416748245686021199915926435371640956983085112038678531239507026962239223424243634878171511698159903202087973962276179878893004004513242133153142954387742030800495467991693097276362039411185079123774022487815906976853829424412338184337716337352217279772029092009324515181652451954614692952042301864151949826501362219407749001414073433779470847551647819842311344395222730524962763972383724569172690682729857280340300022309285618211169553976147624194259123942100856313333094701003957841216917048429947670867917012467698151721104034583272628376828082634897590738870648874585252559132574356853659481616965487720942192918604630604206653349260727281302141750276180838350774968459594909457264007236670138095935988618100473181858669102709903924906974166122496066894786092942465697110252771158552356248269079274012778797080811373729194917136170934411279624531411632914728301517778908358239920632512334965365578721272909507279328044802670142828380632925373985050476596685915161655478236582230845551000452438863976734930367761970200638572934016239896571586660949655060514047872341681391046977262063076572902595178836874830776152636475691232144194133638344351241506597182811275815273159349918712075743177681041471650984436557679866048021791124600504897978785525639669284100430910976166059806780505544658135700685141723238549139196783168409575947092019245624374289741380848496844994517599330540454296120971653381965264283181988710677137467432258692112125572159070705131168128417106466977124470504394968562359468253875131968424734936496534020662990330627066224184647533827101273472799582886197247815141203235425524771160720853950311463171881315970497526522737010314192454159952332485385779230746283258816599346222646068132958174023040651615904714770356261182342120074497350328214393615517848068991831089907312873925650192310159878358966835062686184895266249117438701976810764373138983924076161375742402428404739793523244003174846966677985903987048649159327372149832869022515500938183001304396606938688771782220885973458528216980111385174268296460504816900887587390065944025255434703704789963814941967412360441903417785861559866026639996414898387062008065979611015891528540068577546864424997893798144179920532062494297014250169934544694786792678422075727368604264322427695142168782402223044292403368255657710776867737504568049341401565424478191262355684073110630999663866890332982731098913878621007956646321433893868887674075477561946683517842555566023741927335201084846748270334696168407764178300868917669290485800455967175295782693453345337409322840661757420239647886894390183189739760839377484325607110369786477796165882654527306887301854794752288127530371839902726984363794254589386228576948172008864214666032565374512566074877256725194032147106203995512199469844251324714330323700208223210172242953611553900269780239785902346530245502665160638994729154334989999375728958992898499165423565354325705138581457160871253357027789458383080790400884891648060821626488595424916057966494171510262649771527789190599986209519615980398348168857794428988761899795493840401803169300027286615673581837509236397708320170422370473501285628317279757973026602870962179424483163690545991778053530157554785740036845377740594069209407174794560766580219391950570709508504496026203513523294804851946013381165105486610672148450457065702395168431585662804209026050819186316280813604486605749253809001992765994782794504693134847455640733289602702683102715587364684345921306086429379357451145844913152612253895929662278689613581990777380142487038329923604207813280243096963226506313083775132264983918287412733045150366403865699152048447967020208931542818573118720287229740129770611864979901563004246322210132715016171265069312335983516611387356684368523353235660067408443903795272136094345006876836270324738211217989277228302464377764669824549159306675572703196044854605404455439744865187105609689981325365139521809470117289654314793504874750541511821441365389701924640799869687963894113316356371664327335235505267887808859695717291267959610528666973823674516478648664284394698392568155739421517056034015345200380279908525836215452939175834868215505145959216970853140752309127701101246225972113120853212040078611100239509067476529832756966541805954421676748164813157291942136940714959699922532572178433280585750509365844639503940045653188459465617873310871485183425391834194110393584122974825152488702015194094912723971954831732012053874761740675970639458584385648741763171783401330856870497970674133826659325879789233373051905494362827883256029742038320831749488313810502840873585061522262043824005757320229054150156992665866979842431910624811089223121048538959257912624183110367694634335880789682297292466985677957525544901613866694577829422274083737679912768563370287087722367513333767423584147383800284193623574766350825989464600133818889089713120898259568400039508609087520846223828179840735040395151115761867400726742218479118039431615643434969132002275765065365432072340101703679887139444322658214600263377697293234105801252791917582169801500441418474145799556319225687764831932988335892247271372152146847453821439118889495673826593666314629869919337894689976387076658906784874031614977176594509506012129700263975263107043525576390613297077958032608552557405350342615839238990559540008529035353957060521766417907651367663156737645170354599633674917549141501103139622737169256972485654259543851736096623043615455179965945534831318635811246155821853886165129502841899306277078153421383946861241037999821869601305001338804562286580751005535413652240002199445342709979177468266021468187393278642980990481662045711871724149659817916853265168661948626296083846756279739240403646074945215209878384073050113991922729725264059864612694920292477828451482171209232009197798867988671630991552454023659669077844938544521584460802843634790494746169021986420201038684735109619011776008285111751068035222450508138182006444169854323228375501162651466789955254271735957171317976482019170480981191513771582899515857643222275127325819604868886299554617463459335874910947496820832067052393092408947460557706742772467750789263803282348430339916260933275562579980116755786279085809328361936823597399993509412870490186204849417556420388480713438605043688476246154811067517177526354755099063766981862866461060010129998354612101704460101884204016569423641073427081756046009365831849552255548013799645573888271269791596508861594090217016098114315559208500437696443350857081076208528089672591739602794009270586238433076244891213317060982360248512474811440206367180043493086841411411847542389206047614066388620414939064264303769902677319606370305372428509914586570357080381858250041246925054384234473583892674113133115776023160322609936822653884478422222910145049173676689863386397136152918951917695419417724548355207504626917608241128303351078098967559782928051450357058814931730671283277282397935928912109621596855644060169969661265616536219378683852931857128489387600959499490381584480280748813743883233523874987246832849660507087761963514411616735447295705447578519912760029878120553454345623888148783927429539181880003255921412943313845616789880000777524335878617223363436366100255389403766408670522205572409521377762227756931864664518322558844710215998583177705569496310823168824091110033555412676603514435324313029749919441351289605666368871924315426628722180440897231660006653588547510151326162060702581613311372534821788226537190594430148958550876974564955770533598155937310407016124365323073068135981334146595579737080488589925315957664274983432845461146543599376713275017720919459980363929464630482323879420957952419959064476250698973694991404047445287984859271472717495334877272425624711032956175792383605771980609775881753038951065743690527342869400884466592202996936272618159499949588045668661235996527733528485895903470730127729663753221221322502336514489226788508301022862080050775687529109161145140540432471596699373211368788146240404926035471717355752819113869210908949046552528997147659765754351120553147793466843139263679259305412075792574265837356097955137193260530575291736405523212445539914132696238918676000591246152828689630959775051418408786940022099132152773251278666451719034770975184663802268432724754536134060400481016490034005238697721475921451687996633058786702681789803605625968389743862030842135930918281505181117016789713364180665395425059708762151744101322775885595011922718789624223186843288221082659916776678479363959354146625642154063801061647568854656527837749977740417580900763551722438076842681115905021435908429363517691442167072264735020231222338476104405099282463033535323613451479148903490066599905979136447422317649883240789254731751876524639764200400178262659743717500842869831334654568366833118294624335830784669761954018833604857863146244181836873776742246843317629472186368023353411434308849415528920344115928809326178159601293953949074054554795839986716394505238301863993504701857858125398379522364035043351359651543162195916062085906367757602745867895630812904861588296917536632406095688508251789175206556673973316344243533342502789330653712316577488138193017132224628867720209566004907266449324953686791152046278369107391456764018990683260011490066982955851136387162218399318522470853320034953762974706422936268851329243022963608997024152855611495755602455827900644953835583006807050498311881008096276361015424549365077683249381096890718064851115865524493420283569369175271567982231417628348332601597648388612486893841330017982868587119754839631585483876803824185743799175781053919419423387801676961782269455434145972712370367533188653936436012931888088713768745575121528475751104613622814286152938520320153087811500608850923814469775665710665656050260318998959807584799291475486676621098983170610688766680609873873602595728377510688769983591943533220352615140440124631718471497389770647213785723697257619723357744485689396799177245584257457358522459753023107416491011561017487873977773396790761188959359068106357485104747671396861736097828760383638498403937575692534645708121661185708593992208615000038755771651496679765093872386600386097693245889026403106627585576022303290185222868761118713359179235472078531811445911121241802937934155135594174750611476786330126473265506797673110687838995101813906847621834157068885796039206009984743576333181251458287584939550605670544160131385730980433720204192960310298182294425029659241427875171268037028697878243934928917594840701393984909824039719040311646168484138568325009400196914177620830556977968156124437922128195634004537293139132255585445674870408473592670868858418797941248821071962089368562492779727783562299464817758022079090165535445519881099587607921333578972587166146977213382491076828622217721147590592223894188012863195080472700158963121834036424766990438047079074276650578759298454320463884064314454683722846165246234024443356529350261743090820579560434118188969049061540959647344787753153039159879960984222401612937994287531249374482908827446245378035585697486051371812409315185170457368709440127197988449301642486967824680146946098382758450358246372554566812557251891173162765251851297730312903235086559900537831197305189885246447692202900116876842394499954696587416436553634082876849852950575458680502677164712414190911142666559465736485536187974128540299123767160665264889070786742787025913744606268909493539200706241796694188969057530067945704966143965328538894726835750705674302235830241717073082420098226518461913294608046828752259607883147840328708687057662908183465445871504103776729568061817233794270189350227809709198687100312021833146649359809614743091547305358635881103914208556502750200875017928574224215462961703783256781970178674374129373317271685759374339117603946641528006584033967490686983978465849198642213326609379305232201050778998092933554386175086351804360722585590177157222847217789005096801588008160168294842392283080460420519681289328983369635326976337737246075491943014590164539707762097828727915418137973837810828874741473887548490809653022627109924038934637082986240826129058130377152921237632321484170691490984709420519790517095783553863243156262192728133209942572853136080938475805628017800554557564544032935693915859733232445030726459603668835153495366466230001328784762326885435497324518183742119545099473155599846302508018770623806613378315823376491431647299229838644517330402781547865472665853754530896695775514849344227464020183749185841525982203762397946856851186905652502328775238860174042243207697392176444904771385802730758741006752107016503136875492542685232377682383374945295668906905047037601561092839993552779483915759342995257895413975588570630741095669310484003039150534864948663113935640466160102193041606389707125135735599610397068938525500002760229836201078793179884135074899869386882816843190388595894552642280169445656141782594538462242418525409133696126220214875271149998092012396367437725660114024541358314664906637575829415120795020173047399986058795612325986898575225038021411426634176131516671932164391654207438885192468236657445603774895024944659818472965511039212850659575080513764895802391970332818197471383501309074983683181414530914721627991563026323225262972858013000943995319317664120309554695161180917921805701088579147719560883996756343854178557222472851798945553125966297170838223739592963198120168752791626888273245482326197377105621609997423682850122402189203185586138824275162141395568486896498983486489003278273610691128723890027776336017261220435686465454426156563095865004272174285916095530777436433329151704733955433330023339160892303087460225276602572484534031567731127592982528589971842353839394261668036825156479818781885997119867407774911356436154676729707916222377460357168711684480194161860346639554636307521304058156871201112142806636972037617578277274806452425381973904052062650184819807479386747875463664882768307210832703868390449084908459205575821960940356049258128448804294481318763880437719836770195452102730884774826250022351870902479532043011356720553086424560283239200449014636415253562469923186639341394750886465159855672487408979732157117010916910961582546073440818032441456352515834135769528725301872977080362171158922314051759233818887772819492131475489301855677972002165744922229704782855340677722025801406042054606751699221513695917905550423312970730833951183174641989975680168712618801162705380464578307186160308914348498613823737370667229835228084906487129334813737066215288291441006824341292714098936793796584513701237612869902169519325312931951426732426781908314972241991315452091251339424873174963650667699637533567664018316589730784772505250797772360319272699889714852455434382655987230473086531878518834679317963382373621182067253311284411708083599900851146404081065019727165417628885755039845683570593111626009292574018533471067229358177425124642144997734468637056722288747202589200139407629820184878183036139270199230787665919643299812363279698170903545596697280487279902442728699817397513201357709574242790927154037637470420434369244136613951477855846005833616339423144372181271845014928075317098960751148430215630631025377775210818152243235768297240259332979647267026114724554572852615680822042955589647508966739985385104327059675095693070393543019603412604253807527000117582768373710663515420696757138195926816951265748897506957441998756053139446898074746171218355062596950811419413746537436507190639725043434002205780900784750240971254373733483581917101018638369775058596841197151181817303272688846762469803358160046058980924827330787874768597783077063986884856705990079582055736975293442513097058206829954489509555160896098409606229999954729857892790393168431933838788855277622331293414330903525474669540151751463389403643857443501751278640520479400468399159242985379745089703606298669162777643649690739322899408978799864756007727373840806322664039159387307479163359489293843486589889188390336858267070087439743415832542865272034774043483750206002055331600203186744087093089098145119538606221346050168447885207749952926181993217716874545611886342430318963382855711163635513214876299294436756099134274194933121831931292735042219526322251508150739101214788534428098086942568119151573085564193766479257537332754783306506415227722745321018407786617855157123672597787345162357873920321361351120047191546881566178041340188893310956698067111992508682536015523559121116104757635547586348885404331662814768634072984559554269302398629850390033577652024356409150253676251080338117634903516832616535391163008264531175079685230748346340527908889781169189376067957830035046806657015460084530524498049438907174767374172722725854566454250497418189299993959927981408713495435073271510652477894337844134982547163093642465199511233060080262459637929021542668911716083747060699677371002562209912278049890220633670337599021234004284202946403633771666135972970627442962496630199953931657553173972319377286442801104559900498148777337258610299645529196653321831464945074377652957702556780383478265046295457673334737494264787086464112310895037433332229316814060448820295353256978131226735784887277509721196300952337780733233675067778676087106744064918748397365621794018869955787924297747121595486209087966774060202444517090512322352409841842466380203107692057726174300245152017587791963262887077318911530876266051536809844744314288993577379966554745091346397321607928628116755170124874838228722599939036166711223721011178745703102560451801315680077337877706926979411372508717814140163931860130123971826116097950360290607631184290010700384623686038037682227661039639589608647524084718173172504243456983112018569630193527014272628273791872192557843523215203347219889184399657260811230981407742709245400127485613393722489280822757451019632579671627785150354881276707808986476305384628753836474856816229395917133267681153143371676334729046209216975635442030784880782750253001134506568982484165861623541653641147741909425858392914868629989311292204678682595881891787431068855752606758018215037664505381587180228371352943784971705296982857952647063842441719258504381413629148313279896379255234426959060903406467652616648783745490536297406597299699673493605867112149430371706655893522985792482499812705406400394856413065057407983776366073482962533371979014737766810222979473235462114097942433157477494159650227524313664044191754538968880154858516360452694375444952218401849655985324404756953026598163148693581906670024392292939376748738962563614419028202627468081837119365079823952346146079741356414961964245794858630883150954207142995371691116717190133506891991145263857411365757339834645234244596857549344299598683377088730000065315290807759998443656277870315325175719347782405582445285112213722011795902081824977867728260648199372858290789613239371732321210743178671983580147243084290534058968369755609524518975322920664875599336713477290117919624636582776907013422664092063848822955213723762837091463328368004043209764767377085627400247593808762229437324007032898245728690053645974478560802555857256559181091157684914954554787702747054551794259961215468694909538486968514159158392661194743980124695799489506474925280346052338700300822037892446860678011783261045519752564132634171569308964146062774167545991539236481926437975201901644764021072575062439012026965716074581305232338901276242978369106264982633850617354070263918793634486753670596983190416360984455016241284720612534712735232777578951679247100087499269071522285865798760564662253987026849958477600282136520353711791541437443263495918259586814665009323757132085657494845331290721393685939254049396395061713193408546710030032859604751890496710732067290206276744027073686955531341269963386915744599085247601455936534214460902755136678235385420997938930590226901722841852309279913986097188459566485550778909777436341627068733555991865589576874848761818462466877813666317667645445807240335079376906615753126065586581913966871000506186538231607945661875500904595841800432612525277470852754556137086436608330538229334221841447598050937136946772112734766514331106285777797756129288043558582357140710323037627797382703586825173015460934796906461232530114100091912441147311660768358554051813897990647558144388497165835032395551420906785960002556155009556280417337362502162770709310380879920696192556169513917783228909815958202201739557626371099839673812311765996824040946752255939146256853146376956091402239294565223543445642288993941024370625514723540722801342529223297351819783224833468464437102905387243380500868379976541854675285485406512541085762801330337329945037400329096304463625728307102491806279165162815340199242180240544921739749652335772419309603810740207094895205938308828510993862044081038722899350907840527301817398681816631313914494589264991920377543756274507117297401046594825566864663466513049157850070785164823420625538169975918006030611547584077114919358991978411599104866993096685637987688942093557522638066186360108554350442620629639452611976632930654206913991644381306278833059506895268234749106711010506375030395337349825926547552016264438938549383075943456023377416748405915370638967115159988193259407861766114465011014956103686435656869708250468464378748059393863162898661058909642957364403725388655695254819224468845898743271373688340075748314082356733623086701598928601018261925370963422992718654194262441501166260918622447034107468012903465944589822911959455696813848188886037907466497704899548031485755037031251811916646332250224160772514150622628252924094904449852808989587023830448787564276380305676417795921454683338210050392546567967484990889219405807764246530730048531431173034482937095300308113138613115448100751742627583247746239358780743754565790589188685808444190188473658833428369557275216402767989728144462973248035154160918677065742543739494466465507704851683255551540359684216153434378899836803332468784815460064922070531980790499826149591041565872970216174446869064891502559360026751404822836764343372377110055252298862235556451101971282170321244286812062488961312916459255613752841248529210112262775327635933326166751514805850853026933455057101027198603582171543996332764381599311291296503794556034019977046025528107180093397402695655282905904917408925193256928404269551641038860066992766050075126480793192408073402087349181401137498837965633122167597375848482333155023139565016533443466778946647794603368638088528788616670778207324029356575044476915100075436223858689533102133988874899273044766565400070555436714826865730085785340850403369035919418037497885093701691310353248419926365637127859856834755560893776182128355587295935739470734479602722100257877387977538452718301076944087181974722849508064137930385264792583226348239495409323048650198859200928361431196976426825109380244872018900900374428296465405923055939031927405814006086875623904129083457724052761014198817610176424219678513717882150766914391049344421628418476717927273547359115704677115716196594989861256366641706368018374178741846927387881982898141120845587580590151253702067651553716314989142841347979963742997371904752691980255948399838025070500399042713763633152728806003605088345499415921240075198600106237491984252855458522869066676315023818922817422844068087608282370316877244316724696123974060417372184050831794264906789480446094042053569399048274257591025251844063683695117276180735656571377589099276750861405001359313834364596684507887890019324661790048957568129990721860158733147476985618862050458586438431588936366977295189644972396533423850808036104041443825149062026097014301537380653792737928668303668182250351403445259285207806687358941168340880514725726012592075382251307758013897623947853296223803337826258979890252914800951509680275334069658433316049352152193265339448263930474016452382329446408079737614515068926935648086101402090815668572013947697428366993156843520576347310349941812207315934568513045477867095506363776748895105153916415763222701323055666586901895542975410491616692725165994597427549117876107885280713200066119831581000969885106698815156347624201771857759647344703073633069416090814523941039692917959363379626945999213792546602962232621500598110622111256830426630413803751885048259282273030459670603568251776510073350803620618931312667262173924375357706149334489382210995230971462408339489313253297663415560842569426516789551113024986952107649808258456282032861747041657124056305009565469017113043400860695122337533466175667047591294913999703811963816289707583932675664817238569242098933573675259537331616254118000551005636489070242570497099234355545210781026864014570634654020756287275105881651318779798676994069436900029046858332319993867227320554071291048850945766773690358438310043261892579408695652031335594704108820604768507926308567243979883963794938657721798941096083943655268749908738039921238316329188977687593309092436455742366912117446984652317290647193814451423381869340654905015508841580426907684066417335635958326082922531285346734284371305045869394752008515077006525222187700957889593924533816869700674572614685337971832168490199352928509400105834990573313796258429174840718390174903988294743896983598792881100225787644779692397906267304164989757190898852013217199836313177045402967676742777716778134812551985125695145717746078578595960963001346742559997505697318085228098759587673615736175810271106809670779981250884926428532927443864730887499296557197195479135492823671110858933059778387770775401865026881082781899653475457952086416108690584621023826389499135406046974174650275097904819364111551341504400356693592209526875793080335158772644442436165654413149827095616917848780503901442750264507422175776849508006811626750126283972714420438628042269669439080736040266302059141935759171875505757189177812049144903208722549569877174617580884529609498896839990806227919781351023969746150140783053759519990520981084579878967031508503415295194238611458805910186761040046792713941107884143306307593005386957755441602838337742576568601951546680092441189362750107962832553085324212428460380114163762215783900292154679006857245403637453594112417066108143288590880379589901964720401035285185663661716446737183936860068423776192460996712901119708368180141833046931700139003754748860262498368004557819813822604893135448271044389890239557894057465159394916849175992970137093525444355977986674165334231390739308087077702299331372560157293482133043290855930620789273189686991116406135693498941622186925818978023063494625925715685754218285183271589496827558133029856846207109963517189157625151834906225730757096723192442992766401600312004375111377964078692916230034649782232014264546484614228622576553869725170610357568852728058696782851346298282660624509580795144713772648410804742006459230415449657949792267076803079579516339178522436158118092827203254705358733792710486518230759877587090979155209578164347490368202671513504705386743682628163526627720857476794341588303345164525222757357259456351069146348211542699493851710496321181356462886548237468240730937418182001979412681438956646347416303486860689292721845535187260072046275489578292207621369125768161427929877104717325762416897359387430515625547367838038170301138418512929261215340460108216050045719260953683947837329010498337930326973796278945813483987131369653101413644147411703124032087267999785821548081901746451695420180413640536176090030447523341147832564827844357280794992356157225022590604530109674375785853362697130764355632997859047516779880410810014788196080831005716447548922834660059688667854884362974045014279895526477009792924407834417539624781925344067280860275937296427521848500754478929617964897476829233793980042139691183043359324418214091839610788776319543775625638946364372680112596680832188984976969079823027452252272301094186525862056934804728158878897577281557448828120691100515525244721924797628961274049376599849646877306795467972693296307584807385124588972655032770436909389881807264785124626682271050353137818652837027444678243674881993792869334973347029571629475693685651351520215170880289886212549251087180070913172248172570212991906577494072721972147729210073381930844519717652545009785958047217084842821651310813251848769205915696778290776941554971759954926933973822704915977520099265899907153927802843576556707550398771522239273482454455316965773689235214805907168058355726842866376279441852058013607696538412740143915317653562001806835166288622074760204163663269661926787747870618859104914826869628463814318349231717331119054519330375832739778275261118882214423886579463707208068028260707767174807408997601682039391129401783280647827506244453663029782283506093857699510061595510981254101798313838370456295182201302188718703236790188164817676706618102809223314316810371895158115229175460841903382980953614212035005130390449964535476047152505907605685979075185818134765578960308479606558067548170105776765134551723145491685266582179311281469200394849228208789649554387559849443751946831845805401328194637289536896511761512302537422784097786918783798194637292466066949515485566752091031121032650719719133886256621006617588899822071419854722621589198797687969977154790842140682461260024286048274087165725335932373067798155799661634065926388514637855948403432660055823403216561221639939447131331054856249590443321775093652502184924300627776429001763721757133046265327328023746424361144299296345472358675946316577523776375868688213249158566804789338259692167554367991173674999354365868969492497284013377627956538822743260619765236532974704151906047340396747120617951935217068303135201930170515424226822131057996059070033488690592416796122608802362205985202870009710648022707883997054745103520589464120739205821850794810394357499981140787138997959228411319966574134904332968783123240766507699633630796418742944751917818996260862497703315894135622334547370020765171772521705506538890498304708268927668824457692451953042350165691335374086638058720392997112418489334036626090084845940344859709309556958401072136271797148303328455151907974443497169196486863894972376444108976525746948807176158298201844478388525097215426241311214589351723361465589650200866815506446076249008374205923744919385011055057950614925717404068691715743727042031997014499255309056160692942530427519083079981462372807307563737826995978307963190658688523730967571574901998096758732066887871989175338290872013593204284242247267181192631148513569981306655433079626754016251797789689780290331446847000933408427309355462389831018245123132035177143772607241938081701229436151706645841529511803269178572448686913881626982593212748651063225302673277723158424166065457686638351656285889827819916371796161189063224811741668544038965164819434602223499871786781980992648552918562786533286217265084700480629394509328747831822942581872424938743378904423502274911723911266039973332474582747655981438353533070405048905015446021153858536566971136849304824678646191967253802084070881114643111536909963871649164566753637270126890905767761946511954184345803812231562765450521154221610421772853281000041714614468685476860001697132336861614799801023248832101244327133378759953304244753868564152447254897899059311449040678563759719156225829010087645355346646008539913750018727714867322997662502555637448746078264430482210313865362842553240949079183466034329455427003728426688405483866481291675794536601203451881744695460897128077464802619236026842886151286893736055883253444432857437038116537628598569022784610660037529072532125490589066567485297018889624958213724819858851957595220894133212702561242875642346410214191666690643220041438099748686902223742950400528892972070781572065334103655242975791283976988034350358323108788512331048660642411491283521409492330024513951143468888684574278814957999165622055170236778419135650519534643192443018774841526220733933455684153813756202395342072921907617802348075497361134817157565845548776732962171954880078971100132678495790171284193259247303072880120063552898125278359911356443474255298681570979789632128499258441016504753708185334199805478360775962091681464266228871658309341452042270089297969104036507384649646215292921193390148325589558506875698253739577594267184551834204509263014751050603098976275367805690288356829912145834275986931848174224168352747101633134412346240286032665500538641837028668908337568833561729760738324886990650020167358741012817098775846333541866753678357600270466498137031436664946477797015411865009496826754158965969422834766047289730395573850876257995837990392103575530956548961275757053075061134509023129241491656008945385312530188674653312870910079269310701215307742971815567761632522981614264410195819873411532869733232844722076415553952593520641265743794258906507048632200611141748844592126830421027677504230697239655224437787018873114963028083809999920037584753816115199371227772305185037619594160038477426869127209616016637612919043106735003034844618450265304781283659244858379720557722810292528952154253369335732488115981016877228077771446874664626911512065091765203101349442499188829084617303736131004556793244560169872786825902628897011593745924460570827518777368336715576118219973005995154651560943539965927474180702338798586900688512860510135746979000849180371598218000467451808770690995398037045075170410726871467068508675328456198442781846759271511116622318821076145840993552966836525233064541699652514727531628351144041501294276513311437294821549308185540438998629985183970090748300387801228055895672728588087425249181471912912891279650517903441307774020784113534460611796402914964220384700146332352934832436067144780819529592955583645311159852489510740303250555364041705658853145070599986717587166349150852940234410617796862050364504171267924860081240551445188894998052249543315524231679855746665959358124387549594215173473275842571197903355292793008881243656487021566382258190255129459362040640318952364168576396563624793788685200450617540852832938822080331178308692205171279418417553561136454699554494130697906818545780907125890905663735107112689916280884661445037932107214005560713142642033373841688979661136515984583378498352288977943693234482031569276975923525894959440686979759819064239434975071001046736322289129850442943821028054013334059549808581057506206061965355132197081831780638511421438712470959203215336224568625951054265420309641040550157321146620510933233250138983046951031951043050111921973899767061085068840479872121764931721533624966030234551484517490283123057655357530175182215307851530889567103504592446418190129674416418844218557435590408009963457004315121847404288990893039748502975016874977403223216385496656162246014844324980158834630643960628771886916677961853257945485707912813105216442530332364205140563268298753156823976649443713544622104164427892896011553886688648777594623181692832413742376215253674361531897261184016119397484219604356436072164941642383530530238989651340130301063822878219022564737349316527964378285165492010667455755868176926279901278048649362830675939544605214552808512319085278110571119419561091319410814620207372196981255322994689845006912595292559955708095387973611911257742583768064239094605035104656026593118531447447509787404147704782878375903180772505734219582415450225224742562766641327365714728830016266207316725586018715597294573940647479651849873459098027763070611227162448024260868770275502656044148725087065922097957242727117400701402309360921601051776301429712722639024985087183033725199415137402438699513611416586602426461919134187133003904907377752875723132359473914541058153893425119259177842274233548341009301443341532622842670802322798260708095684602323937978064815466750444308032956854544921026150870240463296005112927313885868889207983900695010013964605736924944096088494813464543934532694305346060083242128149891998413655240396746405004365511024737294260713372429861724074832755935312047255917510081250295128345960888683681345974799843537453569116575911331272268983743035832721919294704511329158077120221143206434142981025406450872063764921070432996856660220144431085723951781975913655493176209690591631917483426668823093818040810097037483829891953039882761312722299914633752705421844648471992392648648081569512549389856856690648244481945968691636727418325288086794171458309980006586376143299176935361904914613932982741566993098254623754470552095673176060318413978542905362377499719681304224141888503936800772481284874848902264678219857862124655927721049326369462503375653202939035847912704702045408654771510317825979218566326067101079198741411210602417410895720686932196228796109481461271422520342777656753762519765729952387413657493934797766848240873977652786040868079296428580054874790399479452619437165657739938968409188113806685245111045526233842741714304527619221429701271159346760156554467510623559283977070430992323876093681320512990832475199662092370027040382382915771045434651440312755134871309568646655512169680922857532096558768394392484747942176665448720017940093136207638419583787920785268697716704009600594617812085186313833635670511299080687168495236148046044016268000429620598848888666442538793551316440725346402100977819364686449854865530541532066562386605847121563311954804015153024459249075355095676297404551287788936684378125523193199215089300654916724828436125273856153673665063880437734161622082811892819779943573346800219261165653706086024634681541315042789945262917591059216196601393423048876912388485742982020457831764316662923099038950980360924906867468216296834317429568525594106710596661575552136564545863140521219832969880394505060697865162057871434417573661071853039635150333339698209373121457917482486292874660099352023249563843307767121426911313200457294095739994412818423698430291041392224468517053743431046460170231162155348477241025354150683018343212119988461454997003019374213676134146772035854625184277518030082671364858099699416103371829686648329869933521680699504501305466945760063654668114225751162466864863702661854823358491979051988439956325853664338284335480232521600928776067656445249926756739172250243706028828932133000822779319447527926410497499069294175411398691992979939683094225976268671972866674820546600863918992860862969615542956321495496011413605421257450806395400476449295689117453142004627609419533919291643490487947460191403673340301101695600513791478660160675493261408089611978552830246991656812632203780443109602768081181113685462759483468899762797271309960428831754568228887101475355730816729518778105241962532573959794761058663789937108072107372337654301183789218260028820410569726090157081119274365639934041283411096800741776552371730122003124050199177236261344976056959496626464137200803922749143392814901467582737403817941693504507083519437149016612894853562597425341028926073686165094007171267281835213989915049022993405943155709218363483539318440465483999742512511559401896382475218392871683528052377863902557402546455862282942826040958400426520970956860630412292569191241282339367461326725822409082852819601038874921699693140710006571777579237554828270256232448706646403338125667480507711021344306177816809701914620242572592383627256431852201683464172690915016446182237908663523356047562409376933549994088921311142553006674810280607743595892836199409088413222705347028574120968976517593216306899250406703443802843852381083111123058682739059688691060328492495558717157941413839347468106356072234035854281351982440612327263067813327952344912444452233235203937567162823432650104187713380301537438452996844712732840093860187485116344288249694619485432016793051299727894655826682174068385581613965626053566513527565634001326284096282056808302716528452921583008318999614308694954774271269420273954032918406406681849156348612117266884600388558554434953162152316013147198289018705513719573669167567568024053264109427874343525976350443555812114843993689861760854611020761487565974856533909323717554338541302700733177723252424513497021808226995238928445565885675976205358939327838448992716124410628994409635286407449892845897889427971738412708531311096778365713371561136217084308404249318559130541640161022904257119100611105888923562119825972238107227903336111565877500733114110668702197669651449705703846262485160911159635767372491190840754264329359966022994301481248460993616215355095253512355748217582929010008646726239493207433355069052588758418841689489770104632333762211870540059561682789098853485029837926899517059346079518820673446729786656858424139622118306396082272447315980982497422314692252023632502361330463471597673938964392822793627063351124287421482807504565292325189215448782020588311576819805158324510474963384856892436865169566174457789059161484800401463469426345616342531924821575662800981132930637192479151583946620295423823930772835741367614656839496141268208127596715267538282209485966302029816916316518772066848732561592351607162290737006243772179130156937204006564326017566520597940168664956169291715477179143148962110428921824927314367836729364169407554249110431022889051472356368382100404149481967007056665842786364905745660903507221982411236086061468927832781377598210811876525691430770414485374597413441968587922721784338030066454298827101491271800279910927960152517087475114577213996794761909684114490089929167119647711012681010574041275463701545012342596884117542946953905901763417889288712609014227273535810369706768441718261555976917569081725261875977700351447334197529135882988363611568642327279420831787024736721472097044754571809849284978762784557423806991598308564848733880955641546279837239011704309412514663446117312390867875801339446180419965637181043564524735342823840505603867193431047413267555415542491681522857370865307643327200837471115813292513891849052169438880470870017685657314865972721376865413328856436190288125779357496414383208579570436617456839230519253723003713245579630474545753031996620007135623693428024797957869312247221528655252642128203129593898973144860157296663886851247704530316019844956956176167989606541582621153315537445344136982673188763362205631834065349775276116899442457650143108347904496746358402464704971059993143054964031055104805479750576258955738808903405022262420347971821302017046267150700690517489094236792822229861163631851965954761685250082831137490964592794304090820422303762920443162464329778535538182600399788665157540898994297014375798617378012923966640543327326551804334393576586017079214587534388243641976145456241968642095461423296391440816786214101020330561688002338331145219996544644433946751633854129359309095067905385367739738059047011753653795381571146563757216869429409715698698763863872699255363885069519637652055689049127006120286692019871459772669574954557650446171710684756312982346567541715458949996365150701584458618237008705114662988806682910871071957792412743344706284244584255682362403676172201632793657524788463817645425648279927459546959730461217938720915064738919088880598358619255694049733013233092770939911536669679106459462950815899019325695770537265362186713248319741010816963818045404300410335146592881401444238900979909265859690086696504559655161960200408473985659117378206263242085975643090604386980811486467848306248879796901922058325109656276249423134415399872318278815075821057943832404444699777797714511694304416002084213963132412107784397360152029039269929698309595811038627760392100507735247783501431559044530719918257986213069342098955622408166648286125211948525269902292516663351738286758404616876009629984484298169271650263344526555931468972722953771622276236481914700150537035405840570309212847549093958422265217229568748574134912128290054012146350374784510816548149767338292366677932104526115912557591292739838427238629918124548571243301464239666546575482418633101350018774611141412461648925557375627903245715792178758284651718543473608955781493043638760668756472179442133126529548390244543649751552981524295220236999984146518871264194738358951949797205215850499793739862892457379136808018473227411859467811675371239666340484342754418042058349112107595301638627320967630120857642442872871637219000945127429195808999814306294359230758378954863534879422459261487130801227045386327985512020260247707295253483217845687738415588803488348682774538263568757880071070616266476042179081580265838042778898564288080624842650294709452113176180581459086927392609236921570123104360052133296302209249757955341533075115029818435382725502553018471876108540065024659429331750378337747735764001223906395882352629620594786212261841758533832042629158228079571132533517714621461463787011270618460245861819137466165996633817157018981070503786448792081667274568184262785605138859355663518898797742229552000058002376241599416222905628665252826812665315688981420676806687839342070226858568015618666607669708218426465044768783713082866272760697517557990830481219546610514925291203539322050457370197381959162289201209641877195034841133603463858996140799709646906925642643069140037704946551656199785349143120657117397736391068047614986451461465471535933478432404409418327894550182113068476823128591074838119497479736043974823636632917594379776279339745393890296703501905637876545041617429962695944703968701793732493056708154850740606203325708519456957791290978621412146936860616450903069881248049907002681991114287302610205026205283645945793480059269340363488807359931167076021488859742950222362159550234084815769844541543768586793538554221214231206715270605436628109873858494654028975388735455531224839379925686342491968650026224172768001498698698554836478989260799255272876929337593130106495692538458683414998975247373392667522761110283412340607670753262002744579778498702010207185342840480862572538835463101745055983497916619859930141035889027677298046100540338209835673263994493410938008915430278742307799440883913060583112093529368244656265740255210813292275765263992375302713115745156200987697797000956608523915538519107494053587698817496359204565938740480127191369046214535088966347225010085134104962796692173007875672120236498479372923116702699988411346730050302929162451033501633864639055750051784474436033132734903811983959905209086830282056060313160156410542961831132875980904968979456482635695016070418774419630126933377643869424335193901332006373527856881312727709664934821425319426630731094379773396777478651307227398632646920788722954345282456874448198632308828916273273693595017742448462488494805911562606336625684391245520878796607654917333137060522447137335902785045153290909310410061857048076062229944087756497733447926844768747430591900652498207504482741968619152047104748862306396422267671010699210827170108579119929965483663481031712963684921428165453424821570502497927832883648737484493754117544783682641502148967484143759720889940380771465458629250652141787535131498689926874549445178341588416697498954308559213979498163851416887886351485742566152475747743209694509849382250093684473965089894156356730704631803928827371380558276559592436502680405929643653236658219580606065433270784270805037360355254859790561381324117704838513037747492195061749932713342052342772754752883320982153292904599540588357290549054774344356747892976987332527836660834646190982352149950421256616461484702160847377491726657908103655829267630907239741852818378356580091814937727092512192694110549542849731924492432640914871922058557989410802928311629050961668569215170481637286211831017841069716428970713310965730428949963500017471902591302046951096014476233352844847151113999088839120114932577509618358807080155274155563526279128000942315067003169743079233694806574874062210482833570844623340886723801561913837038379596162846659997419123891354363549998673053220105481871182453900278551043007373648203087090477372198306027252795620530048160335424010158133264172671058001814579979059272569173215908975525788735128007083975861695531603354395982833608293106570105127844966998922874596265076471539754367447563212214351155393629904356929239297844301031711692434576317043244472122664648096740034219831517349454478451643624225809384274844384731875749372566409401811587467227554453826066798930840976910736879145838693324660161426438725700121486641327135542057997551783397030213483181178292097913566704595721605365419129634936213972160170257418858519556073408733868777031817924184468227230004458781537222568296984744748388388000844137813828352296108519773712003675833509139981410789173143995605170274046566583520375539113531844209947366185002075878000212111357354523160234259043091179465155064231798945100917275654411628328141835903749518935569677881543536204207919440369231758590555836631325835979679154713066690223151926513347167914741571378254845188053200760108410235101428275459744354971819139174245647639037672235430732937070766834469189838392348093280431896762582050289836492108342317353250732561366186130980956809875617389960591853745535652853892745530844571438807933522000907909051121931202208935718894205524069018157886218980333773308507469437345681573350760868069430854724870796810980783824838093787353804029655969819782732829603704435666718144137258594481084086937150784009441729291715205519422136472948905815530622646459336699838591650165649048471356791599608066703330514453014206526590900062688721044150682354505668781389082447954998025471681446838498069444326117925923025397679443575775732329783738042988844441056382911870488395073600236809172606425969947230787804016711399260435955142383089782667706032890390954495376482245646775070162733077572736862869355976571349335293112795988944491484316006501692429671872092084472811615077135689827444730192039631197819046748467701584436628719334499212372819707418845529117795397526289148259271591801078168872718171263323950044291506470509661129859857535344337361473549956938913144663731388790222154341873844914267704292548082119635655259707933507740097127529105544828714362389673250614238015415366702461071985420731126641146127540088656066175420807248020356919992696573806088596086459656929984401495568510953655019029187296515924152393533559073271757207821266030401987421171127784984962965072885075001026271198923414911897003985275327102751322853306490659747301598857766760048406217777778372614719125920084660702914868701592427711632805148817820520110835825103886735039696680222471782772496859053428555987489515522426884966250848550322863584406481817206324901995605382076122841341324575082748223620691342370788188457369154384610202537696090448743862515116198276631076931911637854282934461775652935835575863935276182555006571401276988936258230044534540639872168746905584656993115334279143148406162040932578763857343744680817544197795996905946356856557767686580348138018350332087464050624381068888360858386938651477966175699191876658156758799560443754832644316640098476536360743080049226227830547427611977436843365982534001237645389365950184242653131835592074656068943910849746998905710643198051919092851069243559272929057800991574865639215742994955009549760377065171131521363053681113586499147529543713379822253416270873155725742899837798960561183627494871111273407047810148846259889491364561252349743820031217111290693925733942093860231805062008042807612539979492816138329765081728750247433175260271394713975325476442120087364171898304846824830186025684587868582074861743296575463067403446130262661046484854274507292703549393321479978151156703679091094527044461509959038316032315768035665573319807724129289907042118232578795355148501622232971461829011331971115991574549409171123403703425612360213303897476190071626169597071930169339919410771191907724744402559085156651036210608058613744127603206852970728705112265007295972993823718967928682751177673152754078449589031852017886193772636772528784469689894575899817494263774922893869318174947029656602351014966759177014801218279990095937498255815004287651049355194750608990269032337973858096708060680296955350466353719738712752776847179146593577179311084509906773653143632908574039690620781103603713273611137296311052045549541802208035443989103445007587483087831181098486743685440728502589019170244525045807531706359925438940860733895849517517763234922587774151865972842568904502724103424488770738873647944156023697031432655724182622607983638014469818508249509582782925483927773773467639633598255305333382450271991181500413243924736708108786049018133842414078021765673680360059617960277676351617869723843895389387808376411426178195639937837104706477709286477737599575274676091584084288647139975375256976645826432774221119844733816410073222618618485415752510605984714437108001305039970203019023343118743140996020893571617447100317122438675475308454271439669328040557976177744519174338230560378251936462280738007067036306149069133013527213394844329118112373125553013037635500183788094767647855920593526368190158159112142887657602120789234335098466114107487001017045919827076550559626599442010783597452598276049043188284392512174248614622328067649986614083675805528146843189766457199523749111973922795275311827834217447959356548838558235599793948054254521918452918038061962173716480763925690401145492557806752728827143175920982184621045065998743198598498318574049835497296598914482389338968513827074658063967791903201005832131114998366109298899826909152886971782541839685839826748180660810701372470696593075765707330395102443321396880035036207774573645055657244045428174727170831497686917134733030318723521717216243894617456157542929551381592768390532909273435233751039219585937446171481575743718852472207066621586222882892389543505261760216281693742804642170114899073193585465642883835874004563946446356127188460106908596876837813642899359004484402629416693942003621251824317783701215258879719634728406622404427702126637183726981513852727164434739464075861185948677133666324743838695128362928807022520460519887032893967177128067658911864452742633738564660255822004260251599318123548832914910855029224866349211627447043050818030525021169264174823345888855095369579088934408368752390578467237365218791585186805348353254058352233271895499260563490918374682454954591025604753918723889778687483055413677807993083050226991550661111723440635092832413163292459681533680546554643783987730463001662485101193899482122670007499870408770475729046183820918813367768312461890332193715503794095036743890829837746053576089111267163365939136473151363188217532793720410380421900739934023819531568653257241888507906455030969965899633261296805453973643606864016970686567889307483828914730595256826970896131376044441037535049411363569610467158812981296748299416687652273627428568552213118563142049874168541207190942042867498054576787416839300369124680973175066211208292565382000260493546081519491954029832488576522200224916093122964255426707888677193516438803141080544766503639328024676789647672920995439936686130579429102017684560533348184216141662878900681738084548834323558275482925797568593219292651130959655571832807840282233964796017276286988625361845777256890137746639041742227462264678262856930207661473116954308814936203563531762847956334661168980269299755986743107412275635874356143010667718144486830494067814846392493799380481309353477320148788733668766981703767647845629447240353946110261019901291050615429119842902975891525551465471448789707687976374229402038192814038474342120493232841733197081422502822134256514113724154154297009160837744777408146845870983044344875801019420837201146476237826393708453396387113502687804129944566790963314265579018038789288699974674058557285329912428318064450887739654686081409486719829044536254529804190065531228686675794643563260269912486434845050268475205616109705057762939850831864422139090561232784439276128875919614743792872113654264200823394114343919515490108717521808706937458570207569867256985469057094065989645406913420250348941627771544687768927030010008367469618214547553305660636398631992837863987191306298744369350617702981549459650701037276329118843421208017432330629834864731455460984907350470394908703378654926429948750653503919477599901381951493423537821707818045525847087261443777881632424738648798043369322489945407142357555335934833914136014189046165232393785721332628245453616871669947234544935731008788351560037392572602278614210263678977406272311044219580257382975049727636933838158165324211385952905922198155613278361046924516438346791181052263505991071688790190319253385645616704225507572835156756786333260777002156764976816649035587324646197785753330702978549689729959073210912931478542368859649933076551391349497482318870360575341038690092771372312225924923886657793788969426661894434651075455213289283440602592326261658844773463138433999352384083827460643426937635756854355213477570124431546378957450283630459155393059916772882658310415549633106301905990620020853150793740731756849713668546121488188875134421796940597886005676425799965281739254629737629202253773116907139707597419312779829567007351500204588337756189309936814112692521306001485118286922876136334436315485344806496599332867645228727104271095019709975068592338757043051687880060182495327800090607794180891338027675457348031827455894211207847075833017437395577296298876784229691764576346695292473754954796531727832335745995717047944416577446276442623551448448715469181534669726268949301563728314864555591021743171303503296190183643562226351841379350655482092841403790476588788361156602992208809653135206058181373647580162473034089467399362603550782750245938077683813539464760716492944404845585449394778600297655091969822655944845454416404422536729729960830603763642917244563148673224661461132191764456425025111751576373649581192008845135997842156440329202869346730051197257111153937124521277568613921290578208016201518365515114826704157832550227718936290529056673974686117538532721530599103663089703773489785899596856711256398364106920409505371804580315906161768790321988765603764298403802797623017330825989523677004764576290209605082055628689295360601871263887675167269643067685899242479751492611622362697040837195933446052817607648435793012043707960196432420420684680698501122174847871464469371174139207872338985496577222765855278890241631879651647195203820583979160643277759181536351811631832498096105898824699580521661231098005452012455466550163045713088105300055559686778365002303182658859025518482280666090580050026494926648798646713565829628396421941922703132140060423685488532441869848075582916859773977403014054592079270347299303492277293454510537936474818839774800439903217937261374723435776912683613546268183114772486258498820151022107349603997941328435663410946324533833588686778173460841954610138157693756380387606280448286759567248214841520608998851623164863309957008039439915536932024601710153366215501042059800434873484185099563942537635937981852580746796470575808385301205575431736080900689708246369845711993665297774119639804332996451888528678567848975338340356604123477998436865207162682192076671404187057389913387794283606001893399812982664219529778067187154181985245562944465675734196661772049462877949756183700688979821717168005281041511867424300256214812796041307961762285121142548776821992869710919468207126869384331205158240058746656515361339727083862761256382788984286289689570806782342875740632385063965133429131328542442552958633238475182175257746833582961153494393385558913385949949782196628975588716232817061132782673111856386784205395406605698128575174778073766722832454061585416711099688374971629155311570484586207180158038449551552172486568615865673713575446650620283650791697834766012237532618578289790030365992627243894101052024645158881745970248303122481734241999718109199074577883620715485058516150619555290214905439275689710621476597246687821967073671560288579580818810435004171745257592576283155448453873893326432576848261758731525128281331308801396882974501006417578093067966439740095778543812874433407187309262331865386234792435215298302404457261181753035476396512272196893794857563927528005244664256326451251230360592438966190588010016457886994306863839289648000785838419246528552578182570615022741287365881561343135964229180529554986891440155425180042877659984456106596358901335567380185676502533138727443912039305913554987788805242665463931196736739967365601080180559070624573594913553922431262750481747508327828170060547008653502721959027623491130504928425257725363484132396090518928016732261783973823884956089482617358395154382978929050965899126307449575122789503449768061766902897152889858949030193757075755295280513203091214988809132793889032886777466130838516491442015445483904802243670950807975064111131903555881257882190527811919920637464701412512547205489097981633530197164187922211825551463010702175208199214526659996144148794263784937907872353061918344504285424626427248269188453282560723719154748963005865255379284254911089306179354179120282470636174691817381425811487465650200231096267709202413998474517190925278275042210913564639921227615063789670276156994285562214981755925402236147923461524334308717250898329365990015197978335600593477570453284358485848009671021801555500301243863997431612228467376162293829131736675565179122185110872578964767599510718660260218826027384504400622036773267206456099431813825111254477606228947915070675208926148238426372393809372325845925823099896490513312306589510639754545786760763599259404982075970149854463327205220200836158031432156904749621278510050509133397504547808174555039799865497855588695885055936583215723372921626524887372253117128328568758546527476530558650129572755115600138644551005251370545536985069498495507494699888527798764696937594493555595719184984192844339701938014402643518207168890046355492363598916742301887992850816966895307066219840626944641386797710698084025675751563146079619379696810168386093364305665655839623565618511282040303454824652357518173911868730273245623093667348467639454901415976819146386103723534563947207646988344071100919912788827570119037888743595999727794898214640643469095424949710321211411749498957195036311364833048290980759883955187097433273872310403437101231349079442585592281103914078974976045794361423023657370206076741436571413208695614074668325117712376364304033085842202022758597700280902778534493578051659971412986587421106317547774941410352928097709024227509725673546882590146206438397840564615148822162095631776960898663168010664884623695338409040921948561526546783674187342783712512208101141234852792284580058843421992494323415946152854862261273137310312340820535604789853202826507476778577070458909762133595064208466119850109273422031289494553651528373468698936541971485331337424844708344481903390796123313546189684764849148359135355337157193852648868151282499469622319193966941824415262034687107471124049566870888906471183801403487174225009239051252489620973390545346036484949273525129058440329740469646299943861967653957597028151133615137476152168879878058488393819442107951053209382925978041046029400740481875750643807211745015287813486896737527199586729608157959336370331705438485144658546432588131586078317766421110851374230828773424803913569145121201627208238784720465453766714979574459821013029901031968719066015249921769925241052684693277107534757669202452815587338662460597794936011636691200843212635648986947960492116248437506499102056661144733133885953502955513903935413142206185620372284195859921511702990608043941275647199348335033836750352109992991816945674384893731004111074933528281494627238269911885782981062968734055999431004853159957095232585238318022243049127912567632415503347874765160989879857254579341221803191893419821905290932625272571722438593235329720468461578029880271407276544462204009518407741256958232119386757331440132285931913510872079439048306720577395094372519379227229284558951221030229263142031376942024966707097687432826163654423184342898296571340487284713045506394246815746541570026077143326667516562465655697726464054105466654238143259064939102213743627062427303906726622650086944084281240392777968444780542037685569352832362420149288157926813368059221207278849680061335042361935914751194947517531788365331171726843256711584550914553831566168498771270316069842666992646324652624785059137585176242172224282188241880628879433847105453895811902928129906763328427504761733344208527633552928102184492629495302180866105826334537051662452624848462864950431071411309558060341192711544970001867957743943737811535419806764540242091497310477288721456177056042632194629405852843670531985061809955680569839107826458331270577940031264152254716064298227092661005664460465728914668871787881568857805976039640656402302869964431210315128801009280907419044241954848218587909307260763751402278006821925888636321114985121247576320639960924522468605602386747070400651892601745620216297264425826816875472790989427799700484531681106693145797742824566522689557246919805029361539701118457830206441414223698803072108009302533207966419593976610145631974025285323401172611891997455451722154973648776630189597266603837564458885192022281570279350451831163663940420409081548095228892258516461378760763332661768781434059467903449280154355459623149842886024056541461648583594399905386267638581333853214959130117264053895103133450520336054092442138049906731452000895972388667345300393074491696536079587565759204138428891857980174230942582150751506034137192358804037490767019162159801731702008540298323686843876277044407322629562226125573772030654834037963410180569866090030494629645919268227531641077952958316549278991452061355658112439041268160304449418315817499655205099198207474420157097054864432321391316024681732967043289121791518595954322286679021020330716891593143863121074653264609119342857957140199934821551214107692427083394022152514927488747450369824552587294398207064692310047023127787417808195139048344317058425761664708230470188692394455214669606907903331903068755405315616593502742815707539377091839321730819481042731222853638655610025328637863263253647082583265214653380795347049792920497584530487574249699380134879254165926857681897110785121766860325798681425546626069622373867462728889696301329487903819723944669656776478110171519853696142051346307048604150978192710416246849944584178611607022589278520143079046627207948794911417779177900084297268405468026345185266392623778805922272450421062072973734508796867743198370673088006240619819380373056598817313506313143009454731690269760961421724858477644195929928645267166248010578266338247916600419455621789152181560036592204360669078757932921038637618083014657542221309022250894424227376524356300011112272460131075660940104701355863377911639126867415911182671819836949648079691234550436177441981323794211549063997155867819457479627376564171124097856893596729398554698078015610622395971873334465366216459245586919018747929805470326638351077569459245894729442733993692978245718563300006469903592294720031559867783814191877356554925450693889351237362638417207798109948093712550708941128453366847606292952571316561010549648316785304003729059067020100733239655425487410849611669288002209521796858389511445222232007930638990857149106116915261382519802717999603170151550148171784479799897417206509100020555086169044378994938807246671094586156787717870055601661247280969728166088506307841726347685256783984107485147182974571923669358187885093864148350630801329638139850729279900951283563964009453945434646105250592583884437590844943542125615125543648216455793642664093187411230069754763392418321701583808985423052362179089338403922238063505942105858107035592918668827459704729942686109623838663499469688416470993206011147612828297753889118968081639115541167361060936529210320644416270363825680075975775754447658765057047382520169676307275114405837957454390858424095909556128869411765071188729248704082714809255991160084260577825812003919716419098654673174339321377553215207237003179453385607073612388168369051044166303913155036071801903321526084707250981184280274040947080868049373362131713268605166445280422722072254405256870973205065009894498056367960938737204769756267454029005006333075954681906739859565151411001782725790735999552232347796557635559663101727900880714312204259617826040521026064532627648502418715833816949253495515823927924420412473299700902030829159373162652165936431468311742807818994416687970712003630481693772975545340801937717188022737394845074683799481399866584491130155919182275457502357198746837197708260571373542391180880476983604667728389764937099475933596405606197903645427228360202581534240792589784161694307964037331949721768454441478512019054331551651204748903642108181790280844935277083731729873281793342885755579164229500231612337552587276679276286199508633804648976514513465938703949839399458175215086034329236377389953825020046948442967636268963956113069182638856039387292913864999549330280206741153025314525852697637084541706893193865827737766399023246647858882676964933723667865390807083303324093716170935540076958848369379484595165375709967383505779211235879585464604303829078278359991647013472777502002471686589287094998030159625871753728250635951560089360119014956605956485548802933473577585435661428071714822041152236441055665146276177692747692774461626613776333383124701382032334256661791477169652101748587555733534946567934300708958690810130171677844827432969290648255286511339250454981648587739291376626536326990028137096966364482493212873619556681623648167207730275138777284432032728172145848267067424169941067537889840581392504634346957777901054428431393452944595866268230613724479835385848917996438818145729673950697811507040536986982778881068176341150765075528966958952928264182984131664023304285908450536937729883916351035655405559902403245047777440435928342323079315847784790473744690123860506768015474900035529379826444282134478181612041717708435183079608085902919050326766282621752090857306167434657401703033224084065045722739636029536740547397017330606886967425981477003331561442738821871553986746191305815417784544573954234768845316782900462788970088699141097889387985909303303268494059777787898684786808506838176434105821876031809237159143080691606685130743730673083204862198997333370454942966669506240281190116845136413077770372650886075904411770303146368896035651140346646608418487977516466222163890331898725244867475310404304779112663021546384725864349734206002439318178038927153952050401844521742414618702624929447967659162461680350748471691760269862923040655784598117379688395349586098154317795535662774101134889636882597607644707342341594987778012083628975369564081213465758164826433714437716819383922957404835875561163352260914786167870568618913811094729522330348015699337167757264490819376703829831614052865188022958215296714886764640037334462096231877749845216022586240942318454954720197786991125320200754423926264972059044246717184069359771033355152800821475170282889894916018514223410297557885888494084328399129136372904613855299387139636530171786145000398179324345058286350388198856690850289053677928669953014874538454646415944869417288867545489549509432805139786774167882452994783917871142142230124787912022579904627613911090530064393869483285550693348386511996294925753776721270208729418852062911302020718362595324503852400930414079330732277760011646251147675207339644873440042092635995268278942169896112602871296907158833831917581196588325564751013536264846099262646976730262522450303531928951384428115957950657447069006379163698335645748487705395205567717459010252892969364788580531826289588735731842582160186994257061098900803442377715001379102374324503883420699185201664112643770416485638631183706768442666203501254629926538182552741131909013335937481955024101094112925619612125975759227679677991727781113821111402425209883220810734866870228968635818264417715824075758877022617195953646547410847203085619770761368001232370716885476927102745088813566364259659549428350369639699070930582187953641058918715340058516436253675350580541667297353897691246658248500393877203019140177619645666544712265659815387929694404640178412857894846945405913405166297924733532723774510647892360902090027968565215886082765005942611086190759764103376773784857509513984486496423422526043671700322975314337429606587324506656536564393646912997211668081596151462661928659449546596305533013796695072595179981150069818030881434266268031720954679738587461890985996434225497264729751706974520571327816598015969991564896738600739889600742735078565291816377037733578377688839816496032297895009362457535556247704687980480061813519737358916548774880237868387095311308365645691899832697844364315829752372145600634641074256373702232920849025850378936739191439399808415369796204584605565949514711810798970097959538197114253502682011261147614085671187061713698055243848980743427958963083260711717859790034690923338119704845053026876392028802939164742084684581059148767951652744706366570437873449666516562699692518309446260881736773947382112555671248601574794692214873506144307204847208183953373341738414513447705009410330354285681619188311228807859955763017681311478358722281504469761129828163521927301665276265008699500871017184325549457362204619648016398763133818593315822515608929851383410534969865824741017109397079234609225923903569013470386247086172102128516380351839168557443247453742965372167146344441542457667322542947852075152032613932819038508635618116998823199865466951860786494880877793658475971197991545452843592033257978626449255547883865813193268235742070134334971669614866334992719226343513606469353545427112231631280700391842074106030927545786375621971845089821676210096664626503269968402805617833062633367646402863650653327533967513660067126392854102930006178998096664242457916388605637675012427812018868982894175950964997509823234426706395806319818482582847420575034530988102071104957024264263245405464573113313417038904917946142504174329545803991217866116902058512335417736455998070320036326512490008478856455927152515490482673293703315772644714150503720249504629441300020978511045920586533174144897618822005013866745272482615326337723047063328054599804674970885405311972486560476482275064102211655602172984885035124888522718354772752586106727117776174905552777074552696222602482351404632357032218621302059136891757002680551164190258237283731644921445912108210000135948324417894792375438398300736620211278435005511113287138407886906459754946972919749807962623371726975495699740383737767179605891365465285236059644034315911057012844770156225169047187655719047774903667447354023508393880759427709607936405165628129661515160410976416375491476275185862452742818786042135104351698762088504041519038260843631686996556248075228571934178890833241495579489595313033747866545231592765440632459425034632187115142468087002557382483466721984840974205118302862841664632851335766293302202616670014847860353037637486864731709414532102334688033482329036177276820220259787404693866325227093335621181967687696439635754897263400394849797156478296897007294022832789631058240733361340397573583629457549723912480420301667187126768904336777360764175372890548921953229934001925793836512533518842749676754026421035854042374467537915304441599792630729018069375039823415805763066239519452627565006136211584082009490085670645799146057175704372345507845831170589838091225104668344941835367921818585395961466981892384301087522445711822872393964675295991461338888124298936567453320219008781287700844680890598938931192157992984215820248295498496931562575122673615246642337676602000681998765889383404502529749363385141988818835799265127820562451676019440085748307547136805864413020459689894301767194835229893064822589616421486799718478194449588342171475769221924704045645400886664670225712542851842819773840770790232356068956394434082763223691498164698270773318681354048754322376561813509995915772637626550717856590486243659043619619234111478757866528868915674820606789925726715581130032269489278165022494582534366615131135408388796810218555854146087880252373243346332792589327606031644344886286145850658112443990437121192609385880049991019178999148377972875406532332304951922783739388762729655766102611205091384651391429772576037113767929765874178466944351610295974668917240913311711484721712034608786084563317109880753486743132463745497896123272275587159178378749828200703524568774206188615773303265699318396818945535354024038619095581331485083468668589299529283154715459566589064752439513181079192526056214626165407965802838754657835604526971745185517494897167796241584874111162222436461649091470510377319016926333562820343519635972212131827934730505477028026329685554636479804535357950378359232508953703242730933052216890694587589404496518771095995768515126580801887548682534893400495146386595815260676390260064745199736274682635776719441917692528404705717976745161041056932524977691706161823099509065074717751601647889340768654195763097120041279235930622567324980996926899884102775297291139826466940222584656307543768577057877151927314193801239969864022544748712910543768165185274344262700011824891796856358496062397639816178649386862464828634692139255759509759497968127078788566825914398825699293020875511243616546728508010351150948461393348671869718832271705636487111566951013226416688994274498277702943462860238160340286544236567268128375123542844218094479550735832503172009789551187844479372401855604725774973484146263415540018517575872023677520019831475714508459517943930760875984107340472766593677872822346527323201291484829199493205972346957115162716232189426714007046103972533369615776188841995292348115579209182991954807554445351825408812973352005105081123049082784131947278848324633903319227594283265401415295764737969508760687390595433010610801569857526396518134273471035040021296832270865450176993392315491733727293377919654583333502805581438093637443271943075868787488394056076759363907202198529296870032255472452010715108967005726900174653337059880878579566450035920403280542853497972098191827769344767104335367033423192131750100316937008606153727665620841285382152017790236352714420254513934449373531320683860354478890709687637564973814734222789997565936526275593516261859598092824731947444679063134624040151564266875918244883110069957038147451337437401670835090654260605945505671854224400858949294466235605882483449860200991755751284662774051106233421194132419808780244832325725745492108174870762357951960268552191816570956273369270869023078001837516236018241098322879271071192612348342036005421641787538648775734665510734331671409609470196854795045777430737397045971345128309765033930578474403956186992994544889438256162646429461009646682776659983772181200958813889326748598908092523685194230515742358881625506674866463338803288178935416097364362673803704649778119169172510458720709188957545974089264363995437625881757796349749710346782386872262622119829267970499446981035096321578626894780399987268215406110658485275530200332790351172497971060496140212056431633956293067341914209561801781979318211608148531342322915571778224276455749301560086956215799542105491133630071269772160426420842486770722997935561141220191994491524858681790411270663859138709040118977441365292679011827174759053346589964511417514807856811991601501920677181053789070694491406360391115727818307463204934458171948793512649294756472608871218275450268246775303125019411309557121123325729140145705117809077027469600134000703161969807429135939252248844853843645605232491522753840278192546485434569941594687899089742078341397199349819775475352613084866773246841241941410296840468048342530611888681339380550667554192338265356402656314036898579959911425098506839769885971606280980987930236226017605070197382870502086650920282429479841845306755539270052541820956809469374077616198265081222103712073878667017638441188581429286475317672247132165180248014291344289197114467515557086947585051523452236111395918757167588561095290947384389709665728917118402730686942143801159444693325162760615436011844866159045848299729546248144333612327575100140399214515795911601336134602218983569884965207694583941383982340198592550743763181367520126241920450406886254995077453124593214384469784707375892367994133319404799099729768203821778892084880894365222705182137416692156521283132536651523919999047427639484012554997628525352074968249457896403625035838556579693302628198397472606710625902357642478084375567620558188983467589291067577708381820851792020028456453008741427424171268224953535384112249101986942557262821795141307522776495876079638446642252728995113382849851251685508711762425810696209405540674019857619374334420619802764011330896175806305300632918765787319940237699498606781168624327257009085684627099120078566872869675002271985970656973644331954575771077132408478317538434915282241776630024563216644084048275812184079703709536062660024230657098331536583717323637511628077970545296388793913878875573011186865333298497580030796308703774424607418312338797272799515977190542050412873712621983548429746512891110877666672518923985524552041342791866644403111487830755012924974259939048493888437648332882399323018767344703877235523362181874721679100294460846107362658564084808566362035851638944495412919403997280241719234070349592615543419949985107843247381680971806766288706073324980666806280926513538842591241541138169418735144356863373278191852668024022952901675674801722986020090507730538199760292538106380919791962695305081953196436396369328073141687546265044742766698508042447361696587318042285212352896828887161923706354188918281054419298012097637877493708746503265477540964801034890895869614561174603707149850890806678313847302213231845535681523620146482127410214464813417645227513223826510709084559439089065859599601062357222709952439582487625650388328553890229653629623735860825658811547617411423539099459451167895549990049433713325251141043392465870497284617648687454459044720278240138240322987613779864985969023573659473346250248744143641035998379243820503884649376731697763366864042330690022804910760598475034726731845035087458900739122955313049174353962915129482230608103387914002972915429286175431834699087457278358401104671720614047352631437144756711111976735908590468801918806414231722187645856254915525441352212375797674437752621487332220983101413963999228482484865297699684464198585336647741666225603940085846453249186115311051237790091452433226024251810931463051722889467882144494738935090382813160585327273111328496457858240316636832798529560140705788561923789463687641329986862976480116462995137699379064816243402342840561515799720805331911664486356245533131606202083029234209801978089388612786197290243950352715802905396632349115829522903548959926931035824851064328818749446735031073508258377126498543125157507680109123300323558680813136089840094239864038631803781186968443002515033430666145751976198203861108602830995553286408801756665401187562389793263519097212824205760550528647056268189401397349941364220159843820881474576866149744201739964264044549104452519892486154700323472293742321947464802526118531942913121815337808067555427919168845393118622788451656481760781007952987756865259049027032962594465778936395034211632867932913565790118541958448484987370775877150054613950348749216764436102384228652468685889956680365772000399933538824442950479845185550046322411845316489863277282575060753314952288039453092987592327564219437842596288225695281057447708728774433005344916978466506105505714702892279269708811843849643286508228992498095114255605884495254541630265028238528478542813415906010443309596404488397524235389616976190683131954487705261276125112415026926466127319949640974175509548123958974612880236854594651743125199810547957116715613775742111577231822217008539607046529317274306309542785775531033912050932236330961438405173750677249444426156127396245928796452396626400288665902198943279196558211228830702498762454884516566815944256682062805484284397015948038025929102230502599560956202617359744150918488382384026958096173729135188816601901873139284347731717107812288474880671510206608793379937695066038519029875423844723065721450366534805436389389859775200927790729774089122668624239713037483225836535298874957916655948015327921267527302715737183956199061571083574810378476629048668285044936268111994485667137095151702208970149212954453569563776001701965831869909976822896016062178282272190092166890045942364905517485726379778221362044544676306142828529955094809790251237054055965009459699493024910506660223375059079923959843974744763072961809823605437730831828191506987760036822368721944223366552534610637233156369208819044022070945134566787173942284512061550740459578016972076957560925487186385457407009340724972040071337850028604890962314703079752775556825952109541882751531166843639329070325772986754115463278691464431732059188164455420080283351896778852191927829791667336355999547458717399674486605950415900960598429803973502203392658927876739450322434113689596327316471612363922179731201077643265426306949372132149504939820051365495667803488785709737290582554385454692980632316652709621561237628678340355178047922970542968606044874894401918533345210068224939395247392638068211553920978470927207411882695708345221676962401316875053067674063537247076844700547870495255526368716204178457518944769588202785618940409873369304465454412984915387741404627512081829276907142421541329708612478951784670434439628989387054213964024549104816124988855171143660146709609516764565377648651161213113676597899929188925356134867813840970141801906097278039134555882121156915637946097193131678699981989846337195719069993286534482800721220532923704884799896807282224371740177665290140866417418978446259045887029244686103483918954707935657658742357948783544398770527270603992067199456769270002899061190343056945584501565666032687110822092417591155447575460089588387008208113903260432127439945104884801109218062664563378409895113083376377929256074815036256914021688125172175595727800150975434713135996760544870080096473625293059221071109285037080960236725354107597282459469765874063545882199625648620696671968758446598673475795468118541711220909282248682820430143864608622598628705676597246875405239711339828820068861342501646946146711423155099554300237232242777953644148475813909238629439177095703648268822765583379952999794604609470554181701850866243631008789177033972400177062012403170015214366984316804731706571069969079305457214488121442021406791000623747237377565819467642661923359009362798775837291951536976839635006699325735829377947888920953101976895560864596985914237476265607995507860316744334735438320283017751484968052472512969175512718210295241439765008970172773843465639448125398333933716488111437023669296718050002020068904063629658365401231488383329240957001434960497664441931507655589112419230863345582488536008624455324581872701248878160980235242045542581628115980984316787533755993605807885473873103804023727491049167548073646338652124773320159703142221807324909277076969592640489386666920440017692187265844464794963010619262131569519826170190203970695948689745276321714415841160651443638771776821180219186264408549173542848995694660802566973943967933194877158393033952097439126467216941633556600427957159432946323011178202729252024879984730293828839874484779330979374580337063144733587940049441387823627261436909717350907147046632873207873967120206373940583828813702837017404332068187145912934377333283703429913809692365924859436990116245648897157102646352818956116432127970801402670670250488181290996440760128574457204317722725361351249964920635588406196162195878556989836439049657524544425007504248317374074966432165460163537921060899556815035099019818025563516855847686170127342556403075445528030569596072066287437776374474757824905753788295964100272752584443973023989360844941294923076441858356455638152518474642875113103007445527306719778768162325670475878710581289211076933059765909458257699683856433259222316537456350014529560076868391996035662502303807514493466747814787106955643648425844618261786666268645685570718469581502042026040978851370786774174030108663565715251150825097725856232845538992451559185826166046213984757230175519418084310109892590160621781526084019411509581689548981247208108195812305814443673192603602587735023296879905936494405352879345004064163237980771989949232811543132246616439552418942179228073623569636444849787763339685488082580109477246081557447514331212410122845103192514768070212048483377211613216392083044576958320792485493379364021348534097896662639925990519315961831143212445055325813294527777604576214512760512125065589834721640950607458532827145491791433966527833857753621586210210108151285073762615535672199557578875651477647879087215852203781679567462369168741171059561698334111600525464472734992805634263618168581362370989652932281504981353080585974113363176710942853416125441227026142463024184420573857254895138426237157912915447708667370163577921787366185808707592745712168440270917746441443774741508834236778056735817374570819751656524816360432169472443138910924792393277219922235620105696095466640503915723503650786016708573236954861245224768123987730035145503221153734559671365134896089432262198834011756460098150359679519950245699788384948091981040509304966330451741703288006457863096777661859362468835613461100654277770122343832958114694441767050446354194056259629161434867951433408573817085272008817269165581690190064730751601898716524900293222460954757956897549250249543847126779063887201020881713971985685720839085224166038536554998114417902294529827032637827462347130233983766022855218510584108383469905868671081777969392356725695623407264993984349827736340563868101104708347187891124784206815867673579970074956924766397735410132413943156534211646276185615899795111793661893603912270285058149186624310002192616206364927002352606664994198228622309447190341620263527714134490954833706984531195511240222927979058783357032863801294048448128785594955116996442562971851613800825232204729690480213690732479122064368035949232471422354311156259488330208589094814420682421700201036377111365924964748765170631024334293692776692578479303429162861858071960551821443507826098925977391604766612529862810013270313601715268480657477891976835595622698817526115433773212295769807204073778811400249919588668202371107954353033087276610365643492614248584591287833254596787635456511869106748384499144528890024002311702034300855508467872781811656892878621238357211376405519431465630259320187400165875296638558321531338136229928481955884172603869069327831154012338917823206642498424164290458078972815971626207440681224926918426727354166390549203768904968623137936501638313059357237360007021245164836415104026078252428583040975020326283668221029818792778550774481401592202939724149852535150243612307639739637337072882069975915270736074930812304822408020038851265001890929059526705083043132895298746288800553133979423242851947475341929152671737708940825092785820731618750434748321138347082944716071650410894633562338915921938464571412922810669656706036941015136709561694338466064632726140066501204724625627856907224135737100425332815324135725961192823224518178636896635778318706988408792699837580674994583755441582590570146478697079696632659813956850422140938686506127850263793567253515133607289177159473386191119484272711884108345476973330479087111979875029842653022194368095428615534744493528945543250203975731379145649591412790588911073425064381449984591057617522607428800986091514406764645975362414610313244471672902719507613917605902501986574933072354956540064323425291450868903988632944191149286221968910092152747375810815491307095165253950793864194765945321863328297177233363114828746869409322101430256151053711667273051406772255520858028335743654758564022323862573166981987305833666429548637392875134689419275875463438332859984080557831892015468090012028182423072328593336890436875332393514967720673704780868238146194265635280392529632377551786808097704628794415321889282008399017650817859104042314965365119257167123566150982220105095945719531591862031228109402020141191586070180877444873543189171318296525594790858986859933373716621476306670008202746886827164069642627887670900780265773021313123425216628515368117594212265193293864388877919230643269776453854216145588627278536258720835997494143790333403905055223099532300483188861399009550025419126847397096158862002522932325097679626325788971250277658481654916225642739260980250533926791975903761609422863882812239212192402597179393234668703832452695711393299679357180100483685469429463322488580351809327856243820227788149260117892675200095008092841532466908104753602081422575085390842444812394918615919702267862010968592466962745302504749929902845129314270861980112442911213861123154258058391302380313263527209808151897087644060038370678956509950549569347700624234623825501574869626612387439654486799491100204387343005201561543678536422115606439912147034332528305415854937775308173382237005264725705128700694552684944945557306708717304655437674399382343013262431159914554766637389413092942873350416310310960162785490095010305568238169321107166115325179522853789357925821364391450275775684273515710766083776323274511839267356268079879488977895354944040547582587373123136276099096385277541158460631382593815165081646014581221939554086653780330667232630419330384066005196778115266173067502576872584444439967273891793917066580439408062918695724021395884146480729825490781522873392433558959389050900721954826512087885374945491055214135312817690309822811091240740560042614181855039332268783672539498164468451127153194671387771044455001440473503299823240641195619926215251054485955535025801718644664511058008881578271450653828059130690570584181570534341970177566820183424818174451092325221261918015766329201800548651740893545431513173172007518713574318089598248556628088038756504192342158005884087042254270722758056624446795228920003293084746238465592949956948431964974875425832247180455919798188641987002096443596097838891156562308379320436352803193293838054451694457630127675936835482247351458083607254231409384126336544530818086738703950690597194255776912730762845751456483729004522869507402612092361319289775798371475244658311153895666944858112521932495253697074430987614103247664008376584316010207234156294131317857586088202294375422113160252351273232479021440609614047251335348099400844840258123117294181305875436580920676618260521786845175058650049549879425186564124410982985648302781815813005612109385325276338216807145795580516319858638430501864615344069852313508339912900678531426991649033148845751226348902200671987885731855094583241797141157383068874187929182531237751451815168255433226479692811131215265826572608582852110111971190087839844078970842670157170060339459586220982601388451693705396433494009005787297549515964593376902682885851706113580329017289917934167649228658369894028936457272588331911036430988103234010225797834986390205018533739203765671996942650122077511770983204395803706863092216182127739222927020431482000566894859391375036808883358007156508480888511472899737324649545514933863130616656283310324668577275340405060980831051978449971744172201010429260001143848786076987771060966281934828111805045311396320951495800551259172031996000729664434678191669919041447714831666698689401109388737574415012750998982470290242680037354536255372064372329734974181680382610832439246889403023236910710400670304437797701092351726141515083293458933626700907886455461546178356511694217552706375345674853620017784359501269928286076943386772971060684249285963565571023629694764482801752551389297901875067532372865203232225684030443964333937008124865569907436261549075171665288881069137648717644562044817840224236758434679396320338026538089645193852493553593916379690073042586890663353223841172119423042213244653253188470646895744358877544935998327928638926558031651316439370345159726991277442988092844227042230670483704897749654839013977111245460958447510414707062645003412589312086215819261123329427003879648477880752318938947220015093218602931152875582481578055515111373464066829184716287062099056976553565446130386162803084114390183545126705083639577423153402571007400755761679506814417563092796545021857475598033448264151634436847816432740306793598348983000588141502638890618439921859744728935217909683684229953296658914624844655957858440476082842213999868986008765551561946798416473173610682597850085714753867124925256224261259853864913537547578845527457503084297724314371676797003901847806051453709453807258651192131979455638784447610706906659993942578645057318576457366742367778005108721932712158623209503546806053177793245595747107275572402784119917570106767909877546908478609007617373456882420204719106042746362428042546182379549503889297801545856466353942005634380315683782548565422602167291973075283312791694108046895687285136273339473852148746166579802992451281690660646521290850691338689620951545744943218246438370381769579091651232015208867315102311114119802532033927258641517232418699139139944684876773758095481969385399348622443046724157493560748861495707943352632225227585744263865778227174899845043798949661254712240471013094315675659259310866676186372369137765239870900711260047652642427558503441528988333983999323443746958272266646248810054015068382756766064505432982048749297341153730474144022412659492961751167123725558686178691613529458991451181095852130928871021420382764289447898604614837289267236493209198138342445952673895514966967641582063564490337181144729731157083247045362336209918382890977546269167420661947790953262618026566560314023913189540023813627830242690571092079620824582507355188244017162827029388672559265328589256099907041828663435082086266489423406260059324723481426546936345643654902715126726590044639932698073009780291837294311071293298362324343419918067516603917060295748213829643808454431631741069160381647271142212200123220400035854845348642865265440158112803197269502056574088452843976260554064461353754825948954911806140146931084810432386468803455965882412118391794894738277162929142460099016960093974882216002916436822582120349986777712165523117503992651486856504962748996644660909934996166992591455986929008543582486159847756342422860671339135966252333185375340952518027338927875441267302713520949191427955023450868294023136778371566463132103723943165222594153413998204315132664627925057707708696473082711649734481026686212971616493780409747309387773525547292240806841379166892077395913528387888769847782272520073911860341881368853626482221125082778247212102997557402594538237318528951497476184305528630370692778147071681163186246695701946778157553940177396085649246425353525541228957476352608229999317822600417999356159547939709718755984410669835089577680444041513491051782798048203213318137835288795475774185681092535385194818721137653986418534336901462226109568183978681497471792371946018113452815056311112139432471880828224510687089739308519798016274400428768135589011558631182332366386432279223905888871235022479732520344634147355769259572916657531638978249312600871666208531536178871097012578608180376542896170807028622242542866865643604457941556858006547693589299068967930386261811846608607585587650978099656558469569028638000022395890179314792480093771608624936738825971075396248474058961119682733595144435148334287686340798685415227258185058570397918311850206297780927359430852932484562624108245791697054951981913968112387988393133124050675126627917921853210855975553392542624573421319479178078633787316745086673042445857516882603785335025690831583128329322539466263919588274692801539301388675560797921466886930071944559672381675207467168941418545093758515526893016949835360134290886467811923685153092670657791257584244370333461080317173870912720826071245365465653945740154922081021131025547735738746727315702025027604516206046304982044226263509005167867499989732010376760422158435331891970265585252420234669056552653551982995612218744712690970818927735093437452555870679129117647326920260193753141465089826175446704441297873454471699186681164862252252718413688627340779627746540613865075223918697125404417347184806983749048084364544288056582201769228018287003606105380410194708656456094784959841134495725433317240009507370728493844907540706597120909816476544568892423554653707959066573805533327997305092943619477564649479308139653043399906594662977594109997485051082427942018812832194920106998798533069324307295668757599965942049715361750178682261366647484089568611997304246277492251280998233880363964820828252350315369510156606838928284245173487035179737188711844610239402118096139478236222113164658285611548895997420096080569826787794618836899441619552714474129472118987940930109802067364939141586550316174891166085169375893406753106441275667720167481518620141151932059358569386524813757475755824621667324078484135348005664190696319790492068839866951648285790542912285108950373715997786221896511508450750376373895157042936368841738420316289161585339588764156884952805677989854780055361613502247810241007632508726277514291817395483924498403197951821969024954399363882703496321178195521121447701550371632866073911704537072968235523689152179235078127857587486008731765824949821258197943944963575969490921321076256420333572699077731032148452701872990772017396747328605903380689361131216676903027136144795709726985250709602821175376870559356711507526216089448364695711309545475580881557112179063080129463603906643368935996872762810743409021550511434988730239559650799989098874108971719300112832139167710880184306165206420342451268511161433624096576030012267131068014618022331135096609378828079388960251978432900316875802531200525599171031447521424725055890240566253335349713330392120717386138926232815833505020200875862172721183759029220865268016721438424311065083769234034817305101591456714165252978988630158330041534937881961314102677098417681305202949732453874702376301031187242491920981718341203763447300458153765850425027340354390076033080477255853246757679193244368228283828301737617942719300769991960148637928602981043547287363373054463855744152494578943594281428894306458271634707136630100959659532351126203330872102364406019509119367132748003322092303664361891684344399012867703778949812479571215968237581929734341566336951886974566754760487297815607575566973605574312609412404911032567996165904823350182946726416081347557990040248765443865722528124561832353778675707466826073180757208750690463861019550802236001108167905779163381415729010986897436992022389053615211430053957830336799945732355933336129371597585441887934428280941402030906469067043769146293992801001984613300989409827964261657587424129882155353983595179370256231770626599006591602632023642150377103781100152573509682148882387772536486011317104896191372132126477146010947882050320019023134390096568958287159262050684001024002745246452915888130017150280540957929996972478030418977140824983010712888133182323442715948754569628860756845634127491606351864890547118679347781727847385141039632066598611879286994339891898939471941011984287638601672328262429339381475148434277579134943583085967880132699656731801334203699818156363459616273247534656380758055519902479676264959014686296140862099460315392913863756516635196718828403692999022955758475995624254325166497784109885195526092666374749190450798716419468724825261044280595649116601557751210144124634128853829142241366584253346267846315317458432851770830213720826993745118387659731074804847644866778274524509609403620276829905295651625110551257775641891904263859454412353799548671204091174709471538232960481252944983787780770291590848783693921116112733319469346773545161023160563608094081179024926332003237677634193572956311285553643653637708147625167390524248796071392129432815402788484854178058912339737159091301710503804179855891136581048284388950320739305517535420871445959110888673416873079855917422820134530864336112977951601979426715149991506960936895899784454720770889560407182922948608447498607181208299303689999731755524224187568477621150212208639721467814868664769911500304066104867356349823625388134387753107587602862090525184605618791052615479537457519322143112651835087585030011733624988165217276825542357301064394640307661433647879161873175666034876430002461626219984613776965122117235116692334426324453439703288346306242763314348531077402930251841399911185435844531719347644288116313801575510643460674548712900407796875914124878214401165523300135299829096250544817773250504260317811209843713111881115302209161557117517174224691195430904909731049193419139357246171606973115879713180852885516935974708851239692392416832929317079706429488776049440446167756293750097759780088957230837005395969065503390882180858530766679658880389788148727398743945221896167684699146306958370301497344102369876071391200488644593869774056690712228830595581005068223499182051565869194593528252109984206961354963848429627132580331098441893167302983141036930161410198996058434012862612905499718049762002248492090935863449422628377560131091846144107299757189196124516251159646905806086539869209613368373397308354635332913019436343320287469539130820569200050301887999069390191950267538168470334121557565495588073257355286126856567184622904410114723236766375086453205729041846311514639075245634148348504193367955874473886708533547003014778518695887338884913136183863308519849518390143275188281052480827120811620581154447269207016610257875383582624565611854988159435682289584270911401014397612308074996745159199372680609071005671801811525557073143637703542023074655230042829487193850393091590312363463516574327098941857679052592311975289160906671715013386370616551127051817684870661684468142192005441894777722093036370098491668061702967951353582906251744664740217895843588827790368365022473890290543349881340712289318627826395775116545783762718597040955305048702556429963602922111417189849000048386470219960214048786397516295151451500816141925858752670651173862749405327296084972463012763097651007834791164834656036442487536096276704636523222959075860399355197434734636010649902088983544989926621077258249033113520504004641586564445702219006926212662088831639737717063962036813295059228060301268173229375191575631228238699362960380544978327757484069031225287128588928446781316469521388919515131017006864789172489403126386933997570475050435971968744675901282568678785833614656061017911328500627626341151305287158449803871275778357093967900713924227118902686275659154781822175944385510773653352298401801663287897181107947793107463114418039526943689048836254560337612484025514915031914390952004778692366673343396288348015381954940401072111774553745465575163337579203261304528053209669668432946563646100796013220415311207641794355981940291393211687110502858875482170598819097689073227329216064339333983073096076295665244911421910701572222027565036947587604420323047225863126687537147844212149460359627990983069033099719079929699488365849850774487002954028821737666727386002526577234567512822830424060913342170480711573832608117645144451351471289530479307016407811496880724939653840625316854485497952073612757563535659416822317413619414822455968050128580539404358812872539730256746615632063391623721427024397831278686336219758104993266443914769588380703385439722414281649369972604414595126906163042366948271787088822447286813912354949349048634297774776123515763822457104823571713586044940418613590446512276367060405012895150813856217573255600868516074259946734296098754344911028863877764042086916732307291973954546419541161818267508727938062029361617282661552039626149035836901419754559576462377001536993572120929234182239851587676153560251302412754788328309246887267170111345341071564724494498738988678164462369595539206069540891221551123694276927348262725319058262950106895892461483266656987087149658202556902889744285020738023801579952768930477074988306674044937017050541400817876750118960469335534783615086786895329736436981661482271544272039535659157762118140154204150878499524849622535499062287282103291594749180487675088714880329608729206342684489207014252675931624509353485827057533807886170862663276851740188124602135169011970424080979463052009912097893616574793898075854055801410090387574718125552765967081508368552445231760231748190412443037632340032246568655133444361712899283624582735927719914693485728857510371421907409096339227120356193020183640720622696035533873705247495651191605458559199958135550446975750115997358045074090950345002766562426876701200395084172008077781224143357253367584149238880253800963410972318581765822207409229316014406906022777925231697643746421884885158220969137338291726004261815363324063056976905022563245775852272442897859173892178378750556959580791118615918938270528418622429001250978176069250417766850398095478633465611480748345574437198512655684279962564411982244279395488813935903967355706150404166807677760729652497476157363382564741083465410088973940869851455374854889131186909784516712477679169401259499097251789242142119907765607527248358377541107444032441001980746717356547696612491810925283537485501793659577968901726554318118508071572961035083258852143631209662284462497516602706345343448013681462437966670897000308121668125766280108451967927969651682758509932341551001419518626203320315644313413078838222610012046060206468797658553161577564167153112383038501404093376660242521510921466429894708341136135775790030565537084360666170126564044637471131399410613793439141423218056356528078878085731303789968864482003452548862500385813906754562697089613306706438548161975633583513189558895237536802167904577410869641213981983331504984122262971085674857822368653520767236037794297050935056607561462481051561334359787538592920139333040515365340130348595388914951680455738433229451571617933321848350999187767645676347946584272628140481689515247142555118643497301266097252932895895255637957939414215710969481909000177087377090315149020373404904972093700786928506674006514101390109586369511213360604063367167711160273288767918930925959087489544165441737176188508946540350951723243864953415761864719670985944859069459911678244444784592890412448506495481187089355295280900627902276054949121532533449919411681790273771271122697066438875134018096824650035825947923679499718883628205084406274259829403505150031220066055332628243563148528460713814548245494665371263559327131714726119756526781659167712709622613279990110673626575743256684000489141961922410765958078481841265214823338876294211859850170228194662995235010818206488425906835025279417534148398866611134541762807743289591998892225888245753076495165811863565906177887061723975162652032605177740661135154543453357250428460229742281440234311509685096358205053989755557999242483103904617393013550197680606752846514185955558807182875469935224800192066189943741823828568922082740222878180627220467475221928142600713848741042827941138070065103064504505389381817822882868486644684056320304563596219869962421896567907260187575211880733297281329511106539742203023136449426740471486265264001396592895467833267914478013008428133748112141941914344795806517845902046094970385326904986918535173881772814928019337922466336719651153100475075850732658041756455551167852857830777767369294561612324799217586607995386499879208898002277145358932338015512402544529874233659054844323336370748918482917183158019128085859371034977623836369346932985461084371328444094511357744032798307409907764309295577757450793362190705871131461694499184450581167913503499741090523321935769894230744599566671669469847237725255962322489534295827307222050334541347169918518730757289575108286974421612612118795367032955669314540204142520848349265969107372891050664251803746993494698821882842742322465470346927612849965654745867429691684941291474782875633027379140783632299601077921934851790538279692685619789170580447336447319884268648623892724643579014636384174957817687861697928208441221645943203976666605312420039984174389915323581647315959703150968010791040445330408378354245189233176146488692097896214005963924414590042385267114833338635246327592869685690042948123210173215085120272181131594048439873536788763894280738874235463270315343070339001299947281298589111725748455482461971818059049392217106548826450599122081262400939323594795890378557230866369987336120341806002534278271669433759971047605108093585664552505647133910427484349547579719294391196425324022625240112771217552457747326459960322683740990605503975453209429170569123365279805301874605743779208382313434249766244654628473922953175355928427099781861328182519679931538251825043499032669025189478691322460841969713781422724563663921331934371800867573348998289334112595123774469607853415981513865442824226640309477363787861282657286523145581727813985819285031009555390648511742139919140492598569012725616537248065806938428637788133451480732958455580975539632843300795118113304413361859987029550999063644822503216442801877867502591453291320594922535005206939755647285800003733018167481682689034197391695163367666804527644986926575019629105632231716207838072289748850255706370538497219635512722367205718280403224416631768636827576975205422938246412357111014476470456882775090364205860157396459252925756150935741409862824129893003753119268341509259923846848417900932965815410156915083339080195839187553502169328462960710896219718637792984899507710250154169602567852939948153271528793100196768176358673000732972458800632524136372689248268567930627171834275447052869976680822922933491190319247529468186596683039930108069499964795368801542211415485550864298102610942829610180082406749797698662621744078975410981802297695789661873919588508776323747985732447140713610548186967132551387747268393246020447762087340244738976586717561066480079750595556298644408906050491212517992161251858944356117560443767881576221208288426145144695092276748844867115444254902249424606232334057338487005015627109658360725031022365635359495630600182628847877515549571173546100586263672734346485895860825996440714120298123372057912749459317093700401428114684399175641293478231236138210852062924773449871822855574986611105392661834612402920530652391000270714254253696398761481513095637060734165429051396335038525242158191967413517948651628761920733619172240098450964842029868375166225872200984955614792119703254048450630326131781051163063118042158088128208169894205910177083035082684233667914722747814822603762838575152912763651341236000204758517132320705715814116716827947520266580965736690400482851486216041494970941455405147396064629412411703816035118260270143339356593948546231846931097178167780787859608586991649414234061372003302481270526821969122640287458004861916347883016363167527890315233842185990878366544038125772162607531451979932795654926393441891601841461749885481001684994782444245159820856787027742240506332193731479286672456210362508792090643750034373428001201287225087322759786989648131692211296181639250028654424545985696896906041965822224252312912967272696395225614132674257886061318583673193579149021203075053584240846495235928661207284179430868709287600068662017838601168509457185221168520025561926642634174127717562647322522516937590199720933780281462863682450768722070146445264586749702484326864790008706201324851882945822586307948237001731946384913037365151355765021919302536491252043602802572881434920057562261304760060788469693050781327775297473134720224247093666108307561735335325330895674521412175967721495891756872392685444605661748554524604299773866841124574207233231500861171592352388499857064896880202926624780346174878761753404428542649530582531921954690962084266420362295823689712414472531989709540861010850982538425310200236331203702248401501815546371765492213676273799967424130102339402532285434025205836384438745355783326193853693481097868986333789293040664574170857188142473491329249532730075090565704326952001137974827289077834342025139070372723802052364530030126258604696555478233161215689868990496919550009351839030998650984956186221981385811541001849829537326468921538724201558567392910930658689750273936254507524188261700946776742614315387947175056211053078837446936449972307337300624352862156226485855410765520199671505241393299180465389303151940442554613497312197476226905743186182526221938080787343435018650452637429463596123389592031701074938266051031112483493894658186794836431401880402972051378890448325264232148067283252074132284940311451975620028966595642128646045536962589015930728225534562527690587219452349471937198644826441323220985271310970783896822055500511014233404849358720502173446196534200288102543765116825577232395742633621828334419410923454675050237406371781554100655147675437372837749207371189939700178754557669623930098746098454451961517702966147246860944291196348485878428689677068400912649819959596133220380568081288417998227714324345613217194446348682914212708670497029025911281108108139363274056451515463010156269805394486325202934111130881350810552135323578629978833539564303362495008953462975218018341799012968135704154465218833975916411198562970822011427997371767516964217610310324515504765496448676571012449458749341441581824504005411756436177279490688040710882211991156822793220060590787137316113942739903391166184785204505067213850933328578567246397831298274950608747872417337007853701860979417929821755276995941615734386756557861204816502377441420361296199470804525825359375701001772072272818505971501662328299670525438627731071469485357465506759353782278538779120740799888986709464064946704269831743345715189568652111486054120122972909238443849757922075060641902197600282034267448452555879168691924095939301653208611042465589329917386237147701133965015529883070936951469748577801534029471950567092349343568540877387012201319340024371662396404382424844126058043981612176534638017870429372227637707590974258391586437089583917140619819340901285864322324396294207346796225683037516628434856289526392967356980174310327355197601288439074954607217448972516137337459281528406842935935384602683061106718787689359671699956757889992284683202081533908687701644349880510807818991001369085190981428655630054195367643393814221089078831454728084226348825554153708517863420141756334995384489600374612192012913049690193852202366820927375880191376559665241957364109744213202795086020610681875234208420483816253199835535401629474439856858633877193070073223491100630149965441758340059626531931206256872939419082829592424306470901004556927211846291382959334240900033171132367099418358520209551404704228330766482834590898911651912264994677451028847717265196517453177845901598276302354466298925106131558064621798036623661681709286629035342253042891466654975631838041215386794108258566979603554709651126011719086015493245459216032703061430341617522580069786228503327447429491770043910775224646307589489477804542597599973666421308341299484143926317769561504008706557807651774618270171950569875364458070038285433324072305157073536448618892491993239571297233354726242894494277584310352277165514799739409024061001472900965668889551576008321203364174450219767137441825690412976886248776615675830883614918243243970337795491569867033501211751375174741220670978689525274950097535618158091151132456163054204146641101821927978668737834112440814306656389207544223082726511738054214272235113564390836672462264881146210153008811686901906241167041770112689821830140912965710036746248217284107825649835311268072854921109516039854945323647953457217767468720385554763984382510696259528058070306333200103687719026540241443535642898473399285049029649652338319387755122280349430037489895778127220507522593710448981393623558753778842587669009267620435922202989675616662159037905460539341903656705350549625120198409457669583292410319933775597861583195919099400901304024633219532096707064011126194681713008608195933789963461179058668510891982473009141916135627605517493354129680165590663076389283613529299784703798129660392862702989203974935609273738954946216002152149712499685346732430701418260629312709243295867252340887727908491248734980171504548606262449726097103326914431242698194969090858211941483316553934346995552368317690249896292472223816501539483250923103300378811962795538126168193108387716550387144274889168905104696536762251332254622445997299441698344368257137920006204390885661862670309485744672008819619039722020699019355454668690651327387488916697063584876492396487095543073375029382270005348112733777253813165181060144408129166090564140012891942339940334989653389944821650751289187887292761930398712710305305336315455069979450951246112548371756950472195736818113235773730382116623701507280457751552446484174629141600438679775560215118568093380864607447792787407981203803182050838672353078726257627094126192400534520174657601858921829352344672357016518356255160757344100004530408714702277602941746742514264036510109820911326826036159582870367233230252531010553244772201936430979409501855410322707967301901826680284068096842474334195361772523898427095755488011438440611894556074143668399358079819319823025936938960746303367572850538006396169385448181590689847345401682847778868646636977931383504600763742253545070363561316945398108729477010726359438349992270627018162525711031994863285319496863999830722631656602615048925904682121020916900840040504602030807388231908284377801467299654390466636414365638847537092511635793607457329526893817122503895978959130698911389419240121848882744742067792329369932318149624439820743079306287760891063146377893381501204070736087318578245012912426818095562766620671422778361211654268489873064096055442132393440952448682857886439878883858287097721775937097412248541237567435885937083830032128790563366962599515768438283462509731026793799396341659904481547345849546588125205177264164867236654959108195647504696339348000463525217022309516697670237106616738105634445322101720287013830682753226062802391581078378763879248650039907928024428520173424946391833743220601094539924417712172259649050059394726084175129554740635673576902082767194817846578645336239239600678278678319827454461986989354242305948423988649898933712329224294248518743125477839441589216931133983492913092165961559602687775639896784021317469872271505772553150341880187159507957299350779273946008993611550223635964814922239971800558798289144096584357134782395480417527787437363961755240722248422796277722592197740455118742335366944754652500526004045570859972681607716196741571764774110794131619163635804043936055448327833266511010721686965167456368533623325540625982419589577623326564118198768120172892508125816140794381301886822707940498708913751599235916535338745759438585049471723405543183919499130894535533785448171281327747454190423238373751126192037458943471400811450126148916791960645866829474503840302505204301915539053891173527549150579921834860603635558307445067915465951289083174263704639060901599925413121495150331470463028525585735359693195265665929865833830429499669165124867510544132605256136568233882980899165623295590923860404329872555543269593355609010307087236794232083851779770697501621324935859670556894676745625574318386383949881716970833911396388751623945639514293746528425439524752679335735631656537521638021357548103555092123090037618749530508945127345726768840878217103267677511829287310790456121747632927648158923858401279165968611930000382336875169072750681240948289722662704760211717450685199147165351774527693182216563426549849425207817859792144237002606999580446328193235988245767239417621635557025852596680272752831019053734085125595097000321307876902369460912521944272179472373525019915002209107762698233616880998363058504254524475348381180759974452718859068989936153695833993708208904748308143513288478449243471791988976771361265750616136171116723363575877041015644672257039188812215745824802286079494140184985399273428068582645832118803208105933536182622253717218072608404153854756778936733644937523365258272311372788013180916361359275548041018624330108011166800963869519721906735027853515211708779689472442832919704852761540596488854439369798503597634109991545357130115519201510523227348337691500411813665471231797256791582360112810612693109836271023974017574894800446359955509505604241669409006496496931290729279092080705685273530728233755689589595025803822947740307060333479276517039093913071262245241931331040701022003044213922312900090827342630883213487981373566185679632813339419653088839855681912065547824326248967058201904997819525227694637531514109863366773810533352522927337626133078722952965654192780576299228194318329835096956141630178626726660278705245065580339758614325193566878836778905841011478361623555979873888168067484787544295790463413850687558287505592941091477985167008777230206708562524926378575582814990262473189439096699462246534085832898775165993349263270852324440014104240391345194776197271201919985985254298424640384087319387008098361722835288517159412803610141949053991458559067705283198864834141141026837073934119553705153923845643710203081386976005896924323216858219529668675020924686336181056114697689289668174523268830130789730363712089131696116162335583570551328960285172125157385992998901446695338505753780898825461184321405228425088990376451307674777595572288044529703034690718015534309549097312821685218007360320070497636143113533790734790587938995450853289361862798635454870581844513870458273661729506836856086620528060148279268117471068325381284038044202428926406310184414121583156312083890356725610705228823403677601593577694670344532653460703310008639128218943229164195979058779077666827689587426479714570267358103628754374766455307995056617574481462963957529750011217794421522642285183617623224967791049791142688079151324859977376343150207793425183498642189993456878215043606142865684098132225768747778437151376607721525271734329764359505512903453015046971324147450251008954325886091855205586148121410740816761928366728043340037095158539217316660056437488263398180964094558868746089291545616799708983418363260702815170180573472835430973893252677349921163549531650818299480304638138391375378440109051047395952523257567737910365865174409299862220630915005663400725360784918385496936313012553942209156679721662005367220202925826345636948938536042791433223256321979093494631738997085670242480840545739705890179041935340043492157435922382235094277698825753084877493832572039501024132883748236683554855325411070118709977199444829505727540697054433853992676391332607817410832612399389432751170673053302395815858263307741583772841385919960151180372251201957450319368358992987750942850211794688691470085187508553139556434715819882358597699959959827860385128052333475843395035417783868662329880149991892306510034147237792747297297429889423444109621927327931541030702250822762496676755261675975489528843089206986806002245853753432112579318167840984957203330516077594416592600610522625189608113802372505489198105953019627559202627346454806570514906192940170538197971794375043020711180113592678669928223478595364752283811276303745051405854115385329908277810620027384030023149162476894626001945679116012754271060400106573682837632164269461805995150491261014100923117250939948221027454165707979005691484171909730635573825473944140886645173496603244957624952430269387897503323473860398531815581457399758456221495201931478937971379682550745199933496121490401876651888975029974244617726254973335308613462155441933652770158005050390316514744913997157726657997054019493083377113642975309786170741764949664938484021588026111869373086086090052639659573514478928276849061497061294463145899577613970566126963391436941720722745306160012518540126194807066643804045529068711090283652878100401185654960079978685500682253115882668563024884716241236016333172743955142332351687698364149075326490390804511014719919970736817759984629932411609964153667365700579779428571310603124034005339151325445619982094610062074810083931155237935953379482018833353203039775118680578827296531146392319051994083779419580860316723803488231211162464723863869381725175813132224242829123392224716624100917920885861539263370561212529589986530651124653341083216690248961517849158957543236949497173585472472794566018360792672201974904790461960380017342840137384051798670828380113768662608258382812096761963499801917364962646725673110504015262068582403166780195810763883624258116182187978708952096343603868351317377879047886509066987414889552593896470569115428890697239180600031720475519846658141518626614425191079647835055202154701132929365280143592531182244698023518530355893193523891167324186573447829657269027440245673727303722043964363519374261043598937940023215300484420028222491902163209555699147748719393516436764840122399218669608116235940091006875248945943774918363148888431687897978152697486805987622851597654274844158506414881363442986233233213245738666814559210160079331864023941078764759410127933205208893050354830681334623254407494708512403799387370659776382037581885896156762539023833378929839856125808668847770374987207907983229635282366963776051075259321836830434261887247616442524323043657852862190389831650845746606876439245174711021924871487978033314553715173079413282189213727393691845088374805725531275432975878517419826531803627096643188227642920244340564109138041404312449675500149685236719333547194195219216705490057684072834106034378381007067721091872735647907934140607194208537827064910672296351115211341525935062471440348012406139708201931301356541150874697005361330231681035286790440389570023570908989581403354615096922037416216461048116898076397088862287056963847918057757703208417535558593900835711801797357292357152671777247282937307750958976979866784713040481445776352652345244470623884031515329408666655392246388929313245933787473390566916131277148095085094506492720854595669827073309255413236871998991563550541830966468881133297867342036153346526236695678108536685323483065855768627143761821167488702930490991659532619312570823524929153676451599232542434994224029452793865760558655343036884905868426144452428955046442175472669944358398696179698416585948192533409083843247853756767028763443636348745632597961295921772779595386716596752913907193609467193816274448039899527514512662035799180619720308420604602429407086138981729840051451880926782396050096887590818579326180379682689970421152118900941909743517764583633465121095017133019975742122216544738075523104064276124141354537361949230209320309643317443736039910671086618110236397605915523849630231349296071399425674056021403463534414522887910411982082253831240473203831624646731775701666954510801498993001710009663975376816693072293441691347667974325557045485218817586434742522824989291774982523839131076330091009901177573995683115692702879728829498073402630130453207372776990614550093307686635087645564091962258373641789910768673739890781274293712403251216004073807341713035383658490751597799346113747253129969973088373708127006964928030748617509774288887405681163118342366190074269651603920291456084688295341665393887148523604715709221579519861905039486181348367339132808777159649769560628205101673006253458346647220828091923396042336866975943778101812283418187262293967446787854282072600142784761296148937823576870497735945766331026762616742969488734378270076839350455911472431732788418283425300688958169362642402482864718162080452441860668215585474438304323263676560634827742005997485856920879701544937395309114165793065024646289318086542282291077183145075429852833590997564696227750600144168384086764973878867584481227372258543213661339525799868855919738202865555085424216521264557075688722546277992149700540337122675430219138875355138442120428346442051334298944145514949409309552264472524196815822050074639675860908326251971800974715291416081862518677198947791351611670808967954219549722829111043012647671350661120496885051255835853677400549284690153021968869747378866431757851087029644375588527506859681163198125789525551514537181437678692102226077569017118891234276905532367933817510836572269471938786019278095469821843847693361856699150244860103585382614849805922772834186891687744259123761532602180621459364098064675313962369567169395797484486309669164763506405154922319409410917517829108863514166227596165841877073123673645694020454090132603025934091767380848104853901768343115077318409504222169022430855154899089922274533569009731459739097260242970944376179679315768615412062551389545046255462036925090560523819796806861750878855901395378489114266431805022796888718785086099117233385501640904508376651091142617600727867449601295762245907053936905725742086302552915440283755264648567875547667984806655944659112036828646120496818997372258877455315348443830369841786990148723549348630753275842563764580239758788828631890032180541090019014210480377440298630014030140716721068624975477098628567709166808616689952552259867926603711261317402460242249229597208896449458672190464037438843145412833433662739111641659917452945740631675915314806766419012974210854844115552934017632953540429500946413687966335075179285893939270059765719852268612854633020398489533086475971326120932470908802559130463983878754275452640315740126309953285947083231438980342980706938871689979729001309901481089856122130573236638037337152961609199716559399501576010138424396020045306597005795668925655392248003046871987533434362127519483827676054730265233202262855189470982025116325408568673448066220472546564099979730833169716408173710762009415104995073669223851544346272302425208941544374847879015955930985901246931149754780905652187369608476716363511549417524397178451323512588408517546982801748279465506128503538951001702084739029604968029646246165211792701792356457606522741420844825133668019721240159533455232840298957632957633765742531392663473891914975250399151202565443174946068243984251368759649203867728159159209194313690287352839124711616751471204292914701896146379554418844462828948083890647717490911518244868910220118285238376668510839355060595820097036179024314953288763968780370479437784795333563985213115075181968980121492714809430791960306756762961640816866673894794761513545554596089637435373939712866158273336316267299256446231711961460640008106994753342866665348284416628812643375158245838340504530893399440479007543662516287939114303813805979414567108711784309633425973362552141493270711585755875771911963863217551707247404326784218595418681120502104368421040648642278484663794467810820056467356579072917057790389477235232849387717707494104514682602764202916147078490801181155406063781908345233682240049081581726469593018507943612301427148655173412582680614382464461219396453981008370741275725909836737708447989093477938582192824259088375617302635162638834912480936277653654969333497744250641328446607018833531455467239406556477106638997558401974035202442704525020594290806363109723189840484753308714246052586088016690607458589820791581025807174710301072085353089232241571794060220642728412873527035228424315314184054336916747556946897973080099062573863982660578113319094966838510492508727646068697265669185591757239993393157863410174570592726704980628336442043605722894868359993366655688452675061976496946437987165477616287799534495378061080631718397151872188036281716052187046018600823364233682618861775345098949564241357485500471087659352407223940851631860556786775317621524649242877803983390426190044431077067964388688132628123065544647551928410136288675855687853290438697949654089686267577312414625447801075692409690192488039709705831516917788754127337160021274196960807347941056837620863217105112810869906416296437315066016582818235438750548024395480421735665584922466474052519908171953638753396442281683896876066900080585907257037352195192310672130012044360055824211047832026228987935584521837129883415749439235678447091052173097160439353444933805458753080124312028273902088423574987300809023039105260063319462434638950350809943660273144840263605345671858356864272160958737086790770602675366920473546977069500767364003873093455950198339509200565970046572006098072842517590922115592703721858821053435581464988193075536789513557894127559480703796532012775447986139073327178070418026138502792625734737302988688624858450293908550983164638099775045741437134287842431709631371585980329014414137756234145896003729079838442095033694690682724970352854910367982327079671802030884552785305297364690126753507031348857224104602860217015962464810327748358482934169577037088088395027940005180491125212368347735071618183383950485899034039523516160488021315299521718062033249851726629071852661337492376617229847191975193730527940597371275306923348579844360675930242711977667891957930074111294003811341445340463736165216341423984005459432553342276071996282005953592808447505090570400904475909717826253927562481222120081815970740658173121029709530457886923468150569855615367917586623976975825344956889247535359579881715411496941305867282215043254585148420285257693150302351522635831619796259432640381034534771991438672853055024145186096380405128503829821476048479818332776557329416981817592481686948326074011540862925600724126298943501206689737744960741055055628641464631593696473420599695039651326792943957863259183369606296955456840032359550526962062869186383750196632076498241971916050214562039410899737537496971654690337600016213614342265308446864807475852484914987255889207365154393284043514132442097866951058454182845536422413354884149882090361694330287062003877593202668343659363704990418720570485397010758487962137893948520107821201616383060193849495320454550935109667325090656894829212255397653035018086442857762107119413617829683248099573107555258412395973092908294631694174823025967557451670274836130112669415515696175006519960032604304990875746530377580437835967572277247021928471373019584308770474097119589170950457386924690237388569670504682824295902223956810866163835657702351656775341300190842393876487267203226979700930462423557533518937768687897472937532798154584433132681071341258553998429806512902217847892181061762373158354344515008205581561967982485453730799777970381070909308312330134759409547186003513163860168563179076590249245120304482988617766792896474360452236842738447187419068285361290781977817230067993906606275886255706759601359462192875472666535500097373963642668681627769783113220211400008010642224596844147637100122331128789744204198149713785268698888833555309057348278734385886773673494250307811982931729705496430007416643529706224240601899254007525862987102808204779955535446236818091113909218141697817628048759292610980541986282198313205406660099289703971939090621457496653556446255554900153503724383952714232752771705101799245603049985146206861795868113445585466293832332103495338508456208821696858722810078286128461117532183956089025157022753367127322085713937638751047429178818073222545532382058257035570801572167713174222697602458835732139289477114082670763591416077133237081846500651356395812107570444646457868746477533467220069011077149925584854765569756816441568116670410040799281554746445623749108996949424249932310656043903459034713305726240230230634713386516683379706574427993827690269809104117838822094708895232350154100762712410588019287146138785915088939719369688688159725048824949393616458985824477876052387023946549896998060746997054142199789635412094501446262282534728301806193548558337965800044186325025719138013446069337599334884466709601630110402951580535199026091569567133537165485602734258757116676621131645111656083155383992671843564130551691140640130679565531678432773906197805122783778596414431428498189990595775783739567591473514644109813837870257728076673787268536163934193097360317457065072861465727752811650798211290086721598693700293642984537685912024530826556092528691707165680907496642323218439449388752628276419736303401622817904322320857509138627746429393040204266314030804383444379195804830538059093563729060010342054928302614199347247674544906145289152290895798713432628915981273293347769548022811894534748030702494210423391389587019859209468234052625477721064389577302345343937482979471307641900212066341733579572314166101866361599823826649782157223282080118628006541230850915212859208586544803680705352628873475986705092185821339194861487896629119039236995214342140656323631604672107162509815216138739858109163631426904421891932470108509733322813090195028855083163847162068964352073343390346146104742545596273984271027808803856212258515185667574828784039369556755397343314517692397554166904506743160039525700870170344561710235445222244672452474707969062829590018042132732600737471666748893318581997247323584163632726771213397015483128226084311517127985072406346540790509106090158012456353307095696897090735396219747296998713048079778356863564007339218007939164831341057678601208556528907769032814881168523163278736120718700397086617991013446133796126606557714547401296245097431993444638885987100559924581290612434502302311273862725948683513942699559065131143488938838219723723935616651412749569617906025554728075173219972227284011524432651977240256483880303319867607693077105548480959593403431248932409229368109358120652157904997879907325307021215089088836759488076647453100459700757391921346264107870338474028900871681427073957535866035853375855925039928801407564873760457382652595890558705571262464240346544138866618345716206244826609482230110302132715704121752536171934899963362739236559401930114530405175505777479182808404392061867439269083370797076583762919378908105404648707680872181924744857940651233669730489427972685896495860238811671150400925541299359887447524058207648115294880528024829457440349679515278549511773341038141486056961202507485036847515103927249604189252812685673176996113866331155953576497980297819158818206318038221959581388224587236712947710627774534882265703930447831626462914864592395741506662385794333175758005541074434704625128102025243618371109839062731535987273424931097144929878931774199296599774519995221477146473832443833411192544670759562698612800265820257241075569828794480719376237592587988747895866550183673147018447255232488623529545347016977873563004956979141757508482737070310411565381269316494962817496401371198142021469649024741163019002114639254486607708035351897182780016434690121157682078169558215210303656800223396496651294512721748120065448110658234468499411098951189193218545497707961248629184689497710174402301582002576132812723337722444773968554505730913496322937709231508112507361589468180041284719374269964171604623219654525256113918111659797495713634331309081463767525561058796800526198604261412184062824016464693390598897575051557227766332796550869448614312233702891482085479070700028398928767041675922911464692842836262752177640972769962277809913984881267916798862634568437367823297546530774568145032247986011121104110409223630785625567927372969633228328477720159167143425153392404767865960090678160513180890983528230054801017083320867440724687262127823722833212064082691170683507986163174781265291818215072001724053637452226952129443234967534391222349973916776200014464967896301423691847828073485372055210735899064684530679455491415603854020690001034586422942246689718288934107445128517388415511037226386395025047365837052237769918180563957231613922685462359278867573768323016091525763429885823429716701995378361831600077817689363391608868167639164210760590486651720216450941867291990413868702824470776379411577150628713852067758760216152486989631798778482275707012543612568306150300391406931388340901355037887900481438385386811437183994588035201611863279465717368298341973699957118934136268452228331665188825931460911681973960391262093861115385680911192324541027634898924911064432286459664624467764252610363252200957115214667364106104517376696973942803551016895170767838346757377827031282884062401835261600551428061051190058232671559869501636923071646591212378883335541315363064275167250818391777016520583754643955732515030736507714749224284973434695099162780663006751588173180597851014522947029191462108602199209793269157045526702813621772930832771370939414378222441424728337901795615873915119262415987636119856865869189021902303378119470083661180168164417048153505018315485719762160934464742073882496862935816674027078669133435183983181133957421451148312471843276942638516589172287810179930692022265342736009358250309859682358610322212052191779555716794544590155554687932282669196598970080912490716081656082637845815578062482644472192577367522648061224836512747122281206850736568728415436394029436097135028444234361695900904552499970309042432748637081484307871928110838581464502766512652755096353124393279268467278094065933046898528241010171755937143823857723830175407325964303920060273870621605107501468682647929547455490252348334675340002703507466550126713475059240310393275719001717259856539899314687232342351332222566130141678042999733383526646417881091339055359816743504343869727152166990975068537592203753409881771914945226877047884596828598509781327000929788462807610262096479094258620963881776681740315557261663229420032801987143180988736305023402759894060536003996305631234309218164481352985241856371839592477636349907191880595837848829822197450078188452074031627764617715356418359814589731797012254376875396718888345503319480550149197440961113498095205563633877795110995512928204954288048929595082826366531499119525340098407436399076134855656097549892629184689679713495371225205546746864044686626521246155734978885108524563920680602853618382384902924543891697244257118926898781496906563645015852841802847648582909831765948510969421439157076445588928169169048176560122165595085323510065404883723752836914095523722550365172145983431880862917140384131173088422401790472294002349951628798439316586081066844922489716051622843446905082457018640041658060100719688065118047826643167363400173861617751828268983334881274490666966929152701643496838641824273731939293858566905550521702770342689297956834954399943646568671338488203197996151104867021276690095062373511594757218223642091758245625651806224252544892242907270056200905916046997510755190799290549894540521656834785788672753465115738314594231359251017401289654910265039529773348437468936518271801589253588414038785743255283924279985459403323313546586392344501173775020337736474880105205845575022947985382089711680809144968950362025454096906280953950938335709437274256345273288909808734675353208654589889391145640855595376732633372201694964325771895248527587106745499824249986885167789474882103077653084578867790291133225119153705606115784955493162018803509024340606532571692063720336720156045678296962171457858258810166964673443266781902392678781102133371128389910506773084289286021655978237521420722438124227692110015149381712473748915569874707064529300385373781176460168292956111457795461046184310331835964156855608509264590442587883752922172149601731815427819867106781952629232951370231993217280062040838977878108897615731286154050129565070991206211538687318473397313866799285347539793721204570854904545954638726455963789323478443424447217721891272472085932366024118237931366836727104533381786005533923875462417574216807421416335528029372361016950974389616531613306821667458399713792784263567303146415156060259258839099659632261859284614884825726545068514240108906926593481181907633951638980087802904772387807882876612879780490039720893270873766772575483353789736462634221102925735500881578575613586092600757413991424008102899380307620597420413685971540991176400773709798879522202016284303220181542005791272414739150278700339537329429551360483082471282220357211730576712370555238714666368481794829288454971659543945577401899475236089763853311853233354299160046495108527069848528474469973198691785353771175343695052217749394266095456869053233483800346364555359048489697654120345975473154557389406491892277482785809232601581652014137627388008434163170745788202381647638100914527854356662807321328836142839279977553372994830488277442255077964694997035276669663765898720935681409901477149830085774074042970154474295593465673181819031944745116255771388012700957856867405254787396518874990490876096806095032996768505576232678761660935718952688241778038092106763859424885557002141645894152417784693930277166919872086639483868735835344877139690080146521618116330159752496190031030318412055141849609168467589186624441561630113199654641938962692228534305690658093520852642955798470004831269295913751941194761512660813077034047902575240686943698735686375567788350553915848061239257987626823445549791556987678723712850140269626566657947121878381243912579375498280509586466049857868770441183414995632716663967813828812662860860608877272096846848633130339570301888662096566873626904436936765933540772230473412261503114192304057615786390927500122361078244454778586929893234702768412115504360808147712649596513117876688785694597943031702504444943807637835187798176076971759273548363973067144102731574230542672417864411475816213446519344500020161186785024098987531643268908999525904742717239693832670769546616537328355625336048410073440629352439998291138072532506794431301070879687699648861445342905436785784295998940376555694913690471143870288068158632022229861784705279314602432197042015701141496290717656913258682519238402525947355123246550272717860696243227414234833005363770676149939315130880083743656371230576851956600142236016763353871357374242876299874171163704013247697662654631342735852315496059794159287762841137383263482674784251058066846644269205115569015270910502378074429496894146910243650657288734477106460919419963816056687501514793416564192873864891285843564594292301934632558764189356666487944613488906564839342549916932782878902871473189858206333634891565930212046513735145113788916175129721017764412036419403243684604236086820012921330620735152914230366879000908579222598667204726141034474224549436021816774692893586260859921323966199329799411715574005228243256379402905335042791236125265393557586900512047288359189471566591134239089691833718213213929712248081783249621152490660699028534744561405082511858962151945751347765259059457213896077096692338284551599744510344756372246044615685079702285929963385707655046021567623497642969789090834004735673689455410455190219230069923039396649467081150209739566367096621256313994402732655383121979301443590092085301151227980037609790118546024800053511072798986222533101738661212719620251113924606493079931359218606031811863533496062428156722032639901990248646398707459129976328281282841584004248455408923085434150999871460849970574812231286702570977296566702401993795772098856393820360078224316005169275664514304225396943217187212073945099276152988986263527215230821908661430332256719286499508356787427867890857128642025998332880200323232209630447545954774712213877803104510084818924992761251980078381430566326876075667516479605577124996459472504567987918625553427958639723032350045435526082667133234072129917145247285330358208904764518272784379194337407923658406264648175130201570160923248257612194340244574716307548084721358795269972497785795954646375534375614005740443874043749220865679731422612996521459166587095499072805530384431227863593808395734429709930944101238092242584767533187997713144277527747850895581858969759796666221287302723785305618439335504987741156847424964391728322946370017787508357230866578095755234419788152898559887285212272832568188427058246634170970624606020314261155755962551953759689321762303969963490807887377248733143771893369809577771625515144848978202980299590116171257593828013800712747212628836037705201240287562995478590759982646744064136421432796481757081194541127149580795730927336462666288418428463158600340462933455787751824028536175416381066374682207597890098760882031672028411716383273655745990214793575151756783337406397801270919417639419238787618732602388408405649835658222027988657399998419243889208457322893387173533529224670023871693920925722522556336729248226576139233014254617497723584066267343752915501394821935243833472278433256495920119675316620706286514470737610984260062109914712144854460413309201672879925008005489607811281398239098174320338152074957511705769784383017005396663418480337150022427200487793146397909762319768464397701949078307980048910827132906612810632775425704670716111658057661083746519222660766689479419449188859992547226372439524963947910467669958372710301361858649980532402695083085037649630280199494431201678571815543580209593119313677930842884220275182664097957626197371500081696179919922804740720193319008655422443679741072918630603681892574578127404770794848410465375265321187558138353149675707362962958287464707330786850723720369366567946824197254653685006097614400178011159477121088160869617278203598321639373611255515571607699208165563322881085955628098368918920001292133910980738865219053517100414129739228701057706254067012813555848192839387531390815348499800753449025252596439748025302827256101886605259032781561243748379813929127592754790793486141885424110247448400658964695445516947980880782868222198104303741094459201639557380623188043745332829465031369396591196934328223077187205463194950738386893616619435562673630175511441813524444169752550932384399318890796629354148803329429959544062900333558910175452088572036839698831630761713144907216813215182086463440936307203028369359901931187988893585338929491702772224758926145042385341862460793594687056682239179600174866252853074231809868383910216466844785367781840843643715432545007691142117583609540325218349770301103531916267833130300321721903157267455658851050532839195300167606120929955725174612635577723777710965049734248416731929039078512486624273460334758018023933206012423520882562193697181081989539339325363566374100327415437949186961830408330726978329594793964117509478773549822676890199990589846351617775952371520209404367264915663069167658842062676559287269267391174126877465373417701673988698394977279176230760178400474641072067033797754054915695712799459632234415067207095118530622553141675058600753941095303722814322200790178902830265964356899900798683569448404005991580947659483018072557425647697522735996398785686563894539565022201870090498379075200575589967990218141716175345016310427424829563276264722672030733911999928305153612611083006754073354583109722854024016564243810811227561604048149545329640745512992214703734758900566996403684088558578592411793478451481717523411212786573364625369643714325213457034289693252272226474779212566981121711125074217444288935176004648965363020115692996882482853316064902629283095282969121190260089212626505914184084087299656304995834137442954583633505652321997057255050424892619582484047003272325328782201838112999111244967580825618692247043778098634580669978711746444265706607517096563863037617941336080279672438491469287340095333638809762332785028963279595957657534324349035338339005108105656466401479339109588234506895235453289679705947307000212742214586690178351162480567991179236934001659729675521223101020381908197400237707449616052126033923364061953299554634863857834826986835130495513158677733378001700072049780646073695297329918776147484423541215725601019761697952267837276501003955697873543828873136370045399186019380844021140259295019716741568564233378121319869189254768356102953871134362854139574554642356093984887229949289891349808607965759508629371216698135403271052811631178893800667405342850388811042952218009384679753251350726922162353353459608253837344992946879045496613130800473555268639294145358516260927173802241312541217324559295951832075362675175564305956532957695896951554019334919236594255597956921479714651033967879661771518231225157866668874692321688909442755030715361248772729663894286414743281834005091256100624633659246696657921252177936901191365860625341660033701192300993889598688024827150845398828706749629733056951161982773302606192271955381263186543051703277766002319025685667062947645250519627328211116466060751420300247232104198700270762293538711110777667251606382955159615942821434803106919570958766104551265086881210397760083205051327790666737024982263658316915897064442893791681547217257472498872208423039862266404345865538830658687081619255828435747529221089071037589580393032912640553279307319189619531784339537635980056647577595701334098165542417098265551558426616014708876079576511742560368106185440985742840324153855720558542087029601358729397386836243233895466660129861309797647882059040449787729227552995824612834510070444438257728722206306547789965459651898934604807363358785340919572367832135185260425604835198778074673286812496413488922263811877169700106144638683601417375211349526614596748189536695297205366856574626254012000486536474880250263191195960101594877937292055430115005567698352970667916130526897861981308128801518627093458484359052793872307506496138918577506648533241557809094967279538049894140123101771066399225120068884640603313437906458455852000106628699363496880985807867555429086885484559049499255462434328806073953411914819948741965728163292318996695377495865169589513318315872916839516889094515540687032480991843823112617794067739319411774138431293815496266322759134612331436736940742713224737919962174128173897848714018309929633959501617978041447975436135849145352100964710784004330997574324499426690244611353790119674493580466419301615240260492302328690067430720115721337935917581147069862117460052824693208403421524965375365236114833237261343310098518268226773226275420321957019608300474391078870863784704892929386496788097174401211720082480495320034326060274884002614316986436782313303450697967117037991428442923164904801690103507906739668329199936780331512365556687531611204587929163593825991615261273912292635410574355087000152224395631994568876873189209623288156989514268569752752576730382864554806561619397064640700478324088971186646183746449282641140932516040007268338450712634589017669614118779050064426010256485321701914984925160661122833827181396699050935945313535390796028514173178548216851021280575285739837651222761467068732886966999523225948290674882650155090688678937344590946601274555506144416517684052286481662300798593982844494787718673413619692714535028000861446102489654829872764846585530526101373409437821449515685624599659883523774602534971877966569256458523611512856382750914456836568148606593470911060118827040502630317743994008620591945147894291726106341370333778590375397313473655394651921872571361803222990876220151019233889571441502104823707077556104331081261158241528437302592894955465208986573749129856868110437884958866346984147606577274978351322259754829744407709730119807063023871711345227061951772773370420028723266981524994139691587808524029483533182641081076454744455534323190383822987311993714694239635779960709157280836244161572497727749374890417456599769602783161162176136613745836943361163210441913860003041643536869686372720497238993356637184733418573654573170343561544798904709866381801293504332223155565774054335741370516681841495618729742867699637083279098784521631688270262352549566803841870420334714819448477552626686483930415958644353864223010236236787094207497304981812445631702752761984994170345627534365686842601487370116247134978051973803250476013809699604200375851472827175569158037602315111043262697670216914431222046002078670628411155546802128734941130708238593858936636112632610690590581741006363429440196892048993455606602171561776697880896551735535211499719742601244324615731162208432453847449173848597096821976279695777057290967039750450861058109769723826672245252943996991976482798817946305676631879107424532296093141982557380294325071098046426114097347119912654281503436445070608520833687682062300484359394772146071229600125459077511948727220362047008257230672197148256486356398900875900573175625462422704406661580634579411960979848090917007892939619215707317324593248320138445512708397668152001719901754848832832069952621823742561249880475814442618177512989043873780766103585259414252828737550919123006570292397691254854794174969599853532713672003204828980773606358209654047660067698779472383988292977988457776333727693178653247740536062657231705797223860510139452350650565499901545212628904535813763263084814835470804725350225575949394295171204002911954780575946271031350094481183842004865902341496348790055889178745204179590433142932925634469217489887309420094199065866041277403591316222628221529226383586307150639936310159088359146296542622182886538505434065229532380394619881209801350232984626350030837183235836042820497042864215588822967025113793540895303288223581663890585766559689044986584130783668093877180712804642295047634782563414533646275813761507763391052465138355308071200999155617046114827911951971311346812006217367752636641675111826588775832302153653619163942681493492574924560517479539430625031383997133201168332982002561036295404308471323814784157970067221243349919978405681034564776071777776334813483820501430371972938366165475263864279629491545008775344619220528596544901775706253966483002297996296504784021468124265016168030227171781582648314187910115933020106324710798141726354267009520666235779231922398100906399122720096126007096867578738881603265138499537583455646950240924147563220732529699462034638963447900452145002412002744578117969139686052791172128775797650760950100811778573901211651444395676052421229186832401713967119138216149959174827209946684234424813905518261746517534558472814884129078174742008688424330455295227813088467734663422035931232486767985537583148664830547233611187982565509863020271509400286642620130047227669598399561885607612894981347302016097087258932964963524458695802918009470875713972190748202936654131001166546275831221396946645912367879061607568682507054170688925067987978843717203648921396547516578031502769708659645552560712854368600890614911451315512709783962205961050568161901301548830791080102741849004543035663704929709515417418842974709805261329089472456880084755288344352634796762682510683851037646339265885783629483804549006510630778270458570506805399778159858320246511479818055146159028914221047222490505591081167668381282505724472101751592384411511455824039668594995792170185393092305096209981400504754391415552803674386266601537814826025198451351528720309904692790431834815970952046087162093257670596986252406146942836699245131384479164257445056107268809880857068124103156701034988271309599866594152312455137008095065921190236675293511734133738768096257903085368005344064369438392188860267419233092605537384380507644801290699649658673951404876325447904033060959987137856627257479577646234966089230368492529363217911881358982395310868739950653809001509315196032485873351620450649114295636842807787077934610130009126761716693653514196899670082886064755043140522945941146118046243556715822743173661284389030038736050318030425013373119582649093493962522164833269520081461385264386516401448348461263594756698500551978968896919542885143758647896526190610047991908356403518375385009741838124618411038739572750333094337302144814666609033969269513934609941020125910842564022072209249570525671551150643112933749025409750045638872283258156700179069400463387081553607761767382935556997296030833357512142490619620842855042477748646008385619980132659770043518022074116631313235084800305396434390914758624254726218380602184724896324206640071800865332816483636785474731701903830553656843859040376960564971046805409717465173326718402416228086554992476006054612017179753761190153058080720743752512290462879888477072549577635084006635041987337994702798061852761918872563770506584133013470296159782827042495078280372306265588576663643269951486472383340825692550132308608638010785645722429557049896424475039147496320999140828650921690230583670995143218512577819722546869386132490448527247494749472124539381344169069622668407043080951507176830707403827943157805708432170935949035485363899222132335026952250812247708314329363422182707620714508183542278124574093384183791408418792932065376799321505400404594811310644078798854316452557319935999754743310135525511654089994760634913136340729164541646239923084390880430121604230798012139350595024024514860420543221021134080653853639753816923806059713779234776547394309984677496311674461157751162569031183857135159011593392008263729847703058888271285122057709663778426816981813755963276453701164555252800194891925586134123622322809934956129040241159812232868604963521795650076620937434346399416439092909148643761782460793518405180923109233867515943545316639116063625129913949733967744706444340669738866738277646732381594319438089051620946404685197727451309941432331391125232763323054820606143218303679594103135210888845120989325845195395391488381749008258278994866054094231996909308479329434323188350895847446487333191490751477178024700225796672970139976102684623635515250235372634222523059309199660132332942035952787346888262285027282853838968182143474355879562363026820605309399603674048951222916577798030343326614214817252440788937861479686880153457124653206727311921639488817005735837333163580725046111452544613656558014032688762523555513951981878536017598702469552194978113921385552993835359289582740192153882332744279191285296338228312748888228032909382895439866047317536182550908170813503557356383440172395869668638753487795851727906808246199737177611176254037719494477308400650837878725089658328007742796147362982814168826823819604468821673108941678974637698782016635264405924202046422043784390444247284391592038263401756883306690704981518066446235995299938638368526509435635447457171526069172485989672484626636265311449384185257750646681951789366957299367485364639331778175322699207817200631432925319520538034137915590316282837791771034521054078363328590619300315985305142384243175042357607577187763538433420564433632953190861503846108040461668792822312851593663163581567090885880965714822817676795214060437732748912241746110937768362152012865980614373542998135630885020196367374093814214110172927206900875392237950925311051023530788111184094479424726063707296050975208693262635643126816381586984877995247800806784755254548724772862435033640714789192840281221529428019795388618522124407850195605807122462909434590293469899875306246396809447908883656550778246560825261645107049118562172564530162921029334777273773679116054877861732706408157143604423261129023666487959953347057570403715916507515130205768223248443312231608091187627120074170468800764757687864154968452994518059312739005293522372120484203140883723347233069209773048940747407140486365267183514714894871628143397884902173424038455574460299836140112541581365166999422946698565022698166426148268910734844355985331886122156632877678064199434343697737010532433079751271306090974085376073462822208154768056130711555945004277518780239490705032058396971130539181126026611883527144966403757602752291620702659945747198169161625053552370602107085174854536333296958885855513886305492217137219183353387380588177126558691461597293655194121188428681227118867214903279200864339980920517308716882071592454471329532814870987878503739523805993690769479339218557513227643493102150835245587087407039241731603570627562034408344417126843773011131909195369711040166444671401568482410739324754264903292841533092307124026609956680037352373539317816066153716933976344750128072960996572591685748579303174586748566728242241395185079440728577414243868188688871941979927149402832787845148900158251412580882829628500280658702891435179415275080229600187080647155114664715647157448786319488668953979101104453924479790839309967740150167983312598106668329277978113636045640854656442627153092971182436475912453084830881984731978420123282320110208213362810917798951283358800670845831553692480743714296608344131801231719363964770890207368378523612237258736788470566289579452590397271375046321904365021366632888485546930903362248323528558249043206748739348850205902278903884697928886934242651179276389434039432379289510019583013074936165748266064100890793566305241571891489422280174364029421034321306809241464751751453949843087544259885727031264920976524018127892149120190042528357544981097149563085902452987126615735587032017988526076697187084500535298277597450755180096509659929002844724268879255118550504317515394645094194963300945730368837248461490842419059838187468214812947810832681676509149796217658898265088802668859472637530771213826460323671871570995305125977589475451711326505802010016131957692110620093654513923285381256396335082651945659265065344169650527080584947404232662913344952288279198271359654574154601347800415182967766663335136119343005778648702546860131481696730864244057776594093917627422019860552413016774092025992170906875765768343324914148277511729254533357387603651037921064260188562585683155676126116495153069702567194758766059493189938874066815257634373175468959154466605165241823548461027540316499293580632181657662894912296557740083579796669266896151787035824105028647773455661307254159793875264564207415921944524830093041072259619822669364123992998175835826018992132315609305475524978489063836367073808239337315521820624121084429438941060057594625301482903713626893266577994437168558068520263103785376487075019538183230162197890232795657020317574769441269877721828369018593928633133363142853094309991238170675211681672335599562537249045298193150384031870626788811841684886241395194675904576900128995417508075652796200240904936042781638581393814366058107293197730012383210802055012048290220646262298912266191169087993462305849141831546316018802799661840366152293611558124319593191138769253942622257082238818788612394053903421175287639928023864454812159817312226968911891578448410073459933801114251454918031175295879025307329867548100856553557396658634214332482910760710890616789231764061182725550080073296762064199947881150069637657709692803074051838102355600035278497392506025477275064734409587454835684043646238407844263161901906820425476460222124360865612727775163035126932730567196570905139987384705397373037036592757096802516079742589291960086308476030443397171536327518016371716340563600051148289135576254971949477172093136268350619768114655569372675460300788847211638394136600108859648602642779103496929145101646251214990090311110217666575510523080441848999030327391332575362074263301562657152252867381191458897047015777465890622271282459299872005167155643281018205235940357276727991188061195876097606831847546015307839773962044318689773781773698878586884069357737107124640874098318217571744553951823968589683705044473172155430007309192717084918298767101784550428856368594091961266668721616234007125448192884726667910080985073062380685553447040295557916234785420131153713521494089660367883424210780345623252707175974037811943782705158218108659366484516738904790270942886455970352950280522919101562038373284886312013728566611917657987240529348071143366892276825793686062495118293103470048965882407066479543570887132802279329000110951383905891282344995634925455224462284681639211170562974625353184623144889878078084661871676147297103562030376785729418181825626554390771881256308704657403473275549262611508365847255787246460329196241102205381300178181312073360331779155419245903109819083689625489671373591370576345301331849633688485024881258519215039838420750474754247879238743702633576743757528513290453764473641290526111056916798910240706276602885758851874990399846563776214124293592153473537234960413854464440615277768668188765489127951530835513433013589523406298467729469760225390776901103453920950383703123020442281140865502886502030545191896779089833987026768398738851794527348495413481226182678071639696534307929090338155293848572928576062406779952764552331646064101559931591894572689572285284111329241976629388349612048214332276596114766578432129914454400886743693902389026084663490430094207490838200281269178841576479007176286560103768800129205349116954414886134444910377778850348424874950165331936225487941597076312383199828266575744570438971592707168921865061255861680645765192478081829645134930221952140200457683346248226581610415297146319848355526497204140334193427987727826284793017572966409148946579736416872721018664657548172004080254952451634817424523479105031856168470069901612507138188320502963361301254387594506480280531104363078677317930019255979839739419119205556043412399423550296657744351739250610023021765596710156698640612392461124464140637765179099512384265671612896885332479943550392211648692234629954309013252606795526558282788395677899444730556416517592822037656472820823334152792443465654547802886593320071198479719359069396970974603350813857915579619768128388056758987817252809955812262611808959735623270405623706524051498290404798932940854429315309202898561412469816235543080597050090054580552677045025004670311204619212678251271132431174625587467546739023449117626112081373455104390603684917193415245511345181439935806870432632852107730880311003301034742293145630457938925508244063593354587394797613958240103017372033488831990011002963057927875714254485401404298436390007601943854847317671048939545047249482288262910030882257816061890019567263953954195733198152276905683412176650291655153689660898091856266354007733654249044049589439708402178149351104996379952449549572693186547414046905222481304412839343779898066856633693237309714384667851257107687884665221450935389955576865477559581250882329253332960415261269541509296656925324081253290720330193257467255144729794093821259602905898085244955207739387690776421768542208602725965230810255629901873043669459527310189363906776623424375783826859029315601107118315068778862929906595696280069657830032529182997033067609781728324514479322251483387973343848900917724481686880840646311673176741758992745402236652171027702012228957117572354122157917213463270439672395193949439395231738597984803414410912615863645836603953443943769639169306071448611740748204288198303941129152211270349450225649515056515657333815306117006896527158199041217051095822468564301639868380015511449661771130625621520425981168279213493415514091787117340939429969117553216535974438682978093199195101225082033174523654181186814622593984135044442811303349375803095546234947408833761153275124890216255428362023944227588989572229068757757051627961921189602040915252406779901082041719757572664077873166629696018084422321055511406348399528297578630236231931728536092698230773021450102563622935744855157515400454853873966363473613507320852569630742645252170848182378991528306158974850205085883629254786246635412430243592824447128373791610297322380329130359146994912443230007038637497180921964544459037708227804889389860690168518993239365367454072952734036725141156305019763821743318660088400582870657016313096264031528299318398342926624519297853032224543708530100306547725807677500987507801745834824398225287220388862224047426737978006774659313052112257319451710236560494349370697582975731249646818244759603648916805302850031279845777330365594293094616436157918237791472123684620687039020699260310588720384668866900572982098049166501219467798826776140627816605318387598000272630149216076680831355773329340234164946922168701052462745022623403782502026132425346692874699089140029372240411215866576434415361039086444631468579012276249668627830541590402991881430770888092404275419827719199404130706116360490850541948656055184352228421600759833948213621916763493663078075101944398586570660942097770713061470618211408217729861682247069286296668896074523430678191567143385677012599878595934077892296719357414077280750260925678654926212031138060719935335551272749594253713944542160840140760104388668088800396948267769873624387475166362158105403733955378760540051021715220280314759760547966549748306232191433255934009979567592438448274815587909703833170485724892979070929874704542985467601001971427408665557029472400877555161505229482142901971319895342330756872886782224358649957837934977549425811596540725592284403735051266583398493315850614667595985236828385470624620000232675981232739389314350160747800639207536859553493776079184724609243978739868026338940479377343405617307253058120175155322737104032199994956432455003103169334797374506979140064550517548480066217495378049488967797520580853949360731365071702244197507547341017692806585596590985179246686918682932724221853915656211547927440860788026807208835239813686965394369475735099037319347841989494553127569778722393946882397116529667074052271977718091030606486146252823973819266923044316494424234630706988661456627440574696704218614003193514527755571828951255873135613120183698169321706295849112267718278038252933802408196798951330708562790723460470097319715169043496148409980246935517771411916483644672500477809563246980562903325357042881308659481483519788528716610798491196998768304614909375236915142061739514638866073262732197412471197422979276457967693390817150802924291335056114055212532833210337553259319930812418896119075282897596835030928271210639645159174649699551671559064615095254184489064143633054805515186541618728217111539839433372533237153939768019767143901798697072393530741646301880749680149937484131724650323014145081429012620114874192759874027565282958556584184781059492559847232702991318214703064088858924408597736371489180939579139002880039987253304035147126358548510393887901798528408621725097278272854870173581052215495314785293820590794264769938501215407968160953866265928480283153643177643449556917091959893577549553766684471922080301574391371231426997143849059482849201073699645047777922158689272106087998695055322775290619591668065946915535207711094814225770894961502595771804250533092257860333982810286574742611818365023400750446950029117318327809635024498883563686154316488092647937322976656646690192439736898466619685752100652519310535505924103801052254519262568890767963203421944672374695500271969899285137569440125129555826679797270310031634654846807987172967330285919529692767943654875559540007778861678034809929526748474698108436137719191791633108241484225180558212854211804449307038946051817475924455295361170161574735087656410109510692175375346678861828147439870521308400658389123752159790814357541935076114380406846185645459665523219515023657830211845046932772517207727538217226070474302179796137687795494090710201746544317958503952591465911006992381500310880263790414587540700570500415518383483850120294253242617112903487247253156943651844776154306661658661316778451765924742828806564702192281258493957758862960236312633515160282893643405300510275612492772611924315277090724882951272522720468548158212502055068038197777779310797811222750934148595399138633047339148034182172934722510119314981775980147123261259205958261416775211834762693132730579108351082190339300589429180028223471127534172302504954448207163280702501616023711844167142134955213078799215062050034256009515664116969129759338045857521290919610849598288767157121179034838272536876970032826281881111271006030507723668936192024895952885618528204655407876341338342288340859368849330262376320990407777275049581955382652818925316313603129835620630704822974304886522415327423711141026496075228533687486212838634567635755385605365416413345966914096277363798509168669505084283885218447324232939301111317630331802216145832452342039078494454294800604324491736683583583580194136594128887712180817763997748034123477198061401035834505054340200069831397429231702375351418430422150070819802974926565259151892837405273759130831843927069919732668735791366511025496893824305777707056421870939254320733207697654743549719902161422963945522061652357035315221065541947239042429152632507821274051433411445937109890290132455758344728536315597169166887983087206605323290852808194635923408678781169148175642551635567467490497149315059791220992285220503412010206492202582334415833915232214425311436162089026130854458319807866397018517169093694861631402707344773130492544111038085232967093153811935062697186227058980252238046955990451493172573521369473573674997018180162896047176326907538564499104816268424325548640361818747244027631888547132935266789955629661783571178487430857947547165671307001722110377190887092646372345497229989195329617501922602482027189324592174995941219410391976484121584204534910195786784912717503020050085130916998126060546394411399631350405440835352752091086735043125497564410568841994547077178612485392548693589494517763057341397845338222972304367363329096500846251317143305855703399843261821120315407628903123962357815317975716024011649485574196672489674536155034952953882247011376786843640489295957233796962552593254372275419781785492524271778548947962374619020756675974738905419909763446458514052406361313342038103464259382461545548752446133011886029631988496782941055765050157210410091714829647696755030012441129582225772968803865721781485282382102772138923009387220257537029499109552240657399558622086489780890663856522526342238686254034692542161696694721369181477288191229760676798858812482742672017037593837659143822054370566870433073478339348630681299374392988731495918065700417944353737948920564101088193380234774833518696780684106867958664231395793502605698661719608965690268001003110830961030889745199390768874068710808929500574675040062196886784877430471757767000332567965739062680358717241526023892584247149346843468222189954952618059210632972746497664502551683776709282414436036399723459171423402127905445266413111648186496626870125327326561879596886363530336340391548455036897518307148262337229555809483309815521029633608483657077763208749286428331326404802226418106013403475425838463378497424589577941658622829295784532445128616397869148663145586470313241401351508385802991935843814493516712962568302574681245871648920501210145704171930624860782617863234869062959311870693733439411387483069799435172504325534506626443046532857367666290932001455179190899914539062587008936271869841115266536959026086812952922929164091606776972377460353504024910625139466959577313988362321404480728662593835830566959729157836353357978765490685778517016725550518701921219331779543079422529225418060660923569217308865290361978345936473607109469032134924408922869884525730504876048585514246756343541812597992011996348988516597572753839302761025714942273020514265536782526105626077692663939430817939976040680300179589366040644109967506816597007744292499152943279723286000500581092592464712400491083094141908226372346127679782411283886484744147628234334009140158003057144856734124395708522012271335752323142837148327298589216371680414095674254942924234766658360791000595427304250357704907897517100291143860604190931704167151758338185275253921670379633748152289608971007450300522955795590850292899622307410696369342480621907697936222749219442220689894593442224096543567627647320235499767369740281606474898810334920312694551412929316722641082561018335066926911210043437500019560853183498985614134412303455725559299820119520897431058317403213712724944183565218840697737409639416116420281070167968858343669883667991827120625228519595794404934293544090541353065215525510961323400539322145889813681505530156345910940931972532125337714240253526538879538638458304139678010810253394096904032458257977794315176416166520025448054334343134440108598262365685617353338006568998060433768312279980613491057057387747666817220499994122786717612451472414962546003152112387538758478194440459882090418820487646276797942204900602173510338962806186724554848637408846551216447913702352239953833669259042135898298983610008832954238792925377597205783165018512661331655155197755585921776452699890823119430140990841726006611616578476535758051212035558991769990397685925537125535211348351174255739951892223577062783366739939091945503415181620819276089456452094865852898609802536301097385176170898656814664235353080260927547260227871739181471894790494808363073508912588910459698799594788002588384613668466789503158501051854410173186803051848359932726114613850065757504297112964781129210575417884747242949649857396730878969860468428122862486080771198207186108110285877276773649893237040594237517032160019336090218871858397143295921951947537381212477146247328832227477503216935649952608891065423809872987033826772443402237822463858273960133923554750544664056452969493740960675829121498073939238620194281599316964128403688982625488181077855787683483975053784428451136473346228735113907367155979971194334537098756237225062278285289827759188280808742626330559764031801430486590513522317101204278159008110024368260129685352674828341915661204366503825762991667787477461182136253706782686328499117168259335407633180355061744627345118574948352478742893509769994716111070792283848982462696129969193206041307520387398646562637076639707898384001476029116079551241070783019580474866887334061809053640258389151511514592289913752570306070088106297101920966406919101075841291324925666449001810269919470889808757839811754467501310533026687760696566462544197712912730609154213272035504560097121876623137060467988502487369563862886846290911522354690931886563028345543923062015489133993240098229151959764883333221944796770173745913960535656958895480119989267915162132995521786378410925835262191117110045002500762259549490211099354066161947606290424030685701007188733938377137162716427397723185873265961988517884587876589122756220518579615740108122197404390264046023101529687250299160205963439804842259051706557493763699415232511553365251904054811650347960433369093956892832653050661067765656687718308145473507755098295835199693667694758164299392757861587517463319782140078334484583112967914846041483547027933082322304160653899799044055455744441980489620796973075369107006424816014825324380686429989961969013747056016689892608898484341512913184491569311275308563709756959575940629981746603849137325002996059131983049093991705227828120409382872189108020058062676357253269713951126590744284042513047038229100814609814135298039598760133693899456109634114792620217820013799678297997062564910511193471515696125956429137527089516736190114628576298678578474832457773927351665874546568632217077825003985144825916196848911620963838266413227518278800236003177646455370459234069943253195497428227604198264985804675064578937043078986605399301044275923399631693742493953841474300003163976390909412026192872169196426726924479018611864179767778631953004422287925496852799076580482372828533498212796894726254531938527835588807272796706909615583771118883549684337981499706001265832438344278595807359286193774807454086273695396576302768184679565597898958005720927230885788971095211515150492932236596032150091757865968517912060023089980833431953462699653672522212233187049862754776884902528135595221189031953089976648791364015439174216754964882851866578698569853701284034776301534917950926256176310265913836765676570449653611927566264284367674896122849718244869978368694877030629309457732079401319604025566369125361083089991241999729950889727705553268696796739384455919007817264909801663365188876834568414728274704026844149665221068032471950682170881799747684563828941236291177244040609593610930143934949198977860281968317994026841588038681209873325976857313201870863764650495143816637425360395989617956486832268387998338088195387789575451689972463237393069362906550542619004494306055427282902140522791573180039821427141297897037785403956007279315910174011613093564229611502599280195153631859728765233848747066036003144038017497112590256905259861326556437232854752757173387451091193915883039972175896101168157380724979703761880226603893616054234594315929011871206479132478794882282898565487586899522405475694589183586764691098760478919860734326064528717836155904270040172853389550647108365473912477515046902604724335372760488785069720463648725567544021472055356826041001518047959566382604435014937560841122434641877629476847295507592863578768070253099033168393097112469037306688415119326630367927265776776049671586904161534730054095303728087553069064415193548843049415152718473967295361757828930164985183096914222481851378407574281092851798487778411778498322321617488203803402382887599477032587474168331541881082691212571806223304107188673555620198107830830755667769811298095187127880518392693540749535234617995287058577070277761023412798396332309618179595002919601291101102582512352210472837142909829572116119651511416635921452128667577155030131027549934097509185725597763453360330109781648155634894178455994160432673469228007337071432893931351369289921140456744153825942801720990566855665071792504340140735136883896842098978242764896456229737951692124505371510846896214531222068033452246245864355216327085388552151064899284459221246521386042825570116038764247624771845831321245358928266780595023929647532020521163836970666037306734379623826640770750586711310873768477080712067131622197577058771435247544690650038976425023870941931771963089427866888980087014357605394172039555274473373838171964714488824084760437567115611790610456568327656199097790973426744688188143510586349499313124630437848782617615083893733482172200782169230784621626874948329938653239517849602957833335312591749309798395060680276148600245241453080420226442915993355982471812058770089721883316076587765745905817476789730665455062976503960500497425210108522673158077230271456629842737900235036361666989316214829953226513007307697108590196423795585998092885819305572025371212137436749819435140644497694085162314098766934367295440664321911467419093912327967430935850563178685318931594899703721923107670521888417665494173085760598490841875222187560681483114731170102699030155242404642073955736793174844197828606645989429585439792412815483597853911216955691122740235123599341138812509416003048065036049050591673022116471934309163856593304682988516395256365597942903657307350662482976467206317041811810427614328519590209323225233177902480693690512242927757903045868186376268893587260878680235940264826318997001222026470760545046837166957319111036947179609249126507389215232922834027200649107278792204908531521451381654230069931981175919029747393423646258362978139942752868591350474585296183594070050688904075755896704185462443585960017598193634998661361538437532427709310369249173850761672494478327820495964909147886646452115194236720594964675836904062247375720327241869976250591389000907314718766447476451840426166445940908289581065188597193640649933277957091486630738705596971522095967636599135481190874720246152555208290754912076984432735998281128117840762466449135582753283545094593006693069408255617464723763595174562026356835222692113117716278883976850984285514928870843809652892300293389341575192819951859568524943886033863343315428050420586474496502104094815136573911711185939966280075729420799159433481161652730638483006668630727662085854782148819846048333334794770185581915208782487494641085758447753073689891456206869712349927694197147967948595541642028798029237115100143430898913616247577110261124130407581196604374056834521089008444314168243458921684385390329638966853511528484265525875730089747832095897678210462008727520878469724864890626655336475119375823915591715889378992300571443493768642800551205339498254919733557103934573224372848132026958606480610615262292946923808013121092051693755354937941259315669025602157955432328764790302925279123729222058432357793520610842460763118657041331277001294943106242997688007233615119936725287231707103359628687050131638983263204806720766112636606299658259473685735446550412260541147413632094310289467069944302550997909743377345474547580187336117320692342408693281268688027567223270147983600249773682833662550762695749751962230829997978017574500702021346380332868190936154019322992763558818087480851128387604897981774387501243119305420604759277156896057129814361052134478178715597817530849132523969288063270611899975691189097486612333016732808680093353750053584471084873672875256404147126142991763234620408120275057442706396695028531334633085293700012237380662246805633643662267994635822467786080047666967612751511474040675992265057307029881432111605325575404927401855153027089490907313015849696487262328376285889433250921716759874363119373380267209742376560610541415022203760407475447826506462478785487022456526747322646580785000245861751195331244338479010686854968628172676253501250066098147835334814900472156271108725982522138220808489830230757824441223820338203992920489193703657661967967771536889690926754085421835356530826330506008980333354868982496193952429233555782835571419524937391837725898049335253514037777143430880263521367095611532055151238999115501832030458607252634751579108790280421449043806807768947673835165951088599163637358537537359340366689217381873744261020493628938141656640523558176628309041663105117055513196196363484312015789827452200375216774339874923085748684674821619964623143719550633208850512638051521203165283511593461377322212268410079790734671255366912020275914014979430398285893912793754206734645153379289575619498339540037508790467886878028839014386008068871970768925517991521852270883057068742521527335765114676743265476471614822674185778387646406195026490605210723500540719871192995944316778314658338109861443667866538690738396116150122801944000921238654247761803244779813368068808074574722405174377290525899529418197268548311698997390321066314901538077074880055926679793288554307778744039355680830958092707663062439863382433352447829486979338933935380770063273562622674300021689472565312285521561382474159877514376847206052261735853461979119411545684255402273778238540885544975578356822817255716825716344175664709112946079659269892989886824298687203331760182732580470634295581156998671497382757665870239549595293268507887661798065146742234331521747175757254336053211691678952055969927065267051443112434895088940069697216536744041666605281842440902942836440794122181540244606472307994221293668867598001776388468232217548509841695408423381186777687052151928105653067608501995825810996348440860241657291957386657270961652142625448873350866252414622451175774662754792284200458911564612215316659704822398131874271769839429177411866723380319175985208880908742131681546602764352384439416081829940031614990612925041298359609490386811027918086193227618697023544095938278953002181154655681480759997052436931952920765076467546655777733114734141110813383149163529442377140995203564144540910940115061437272230430486403424041997340150533901301148260103214303523913516953688707891989149584624274091349403423194104947816644630742382679344996081644717845736981617443414276960039603883799901091904077800299169763989755769006002842983659207874609359521776227827780964799282713737829365079299910791858861232543753890474366794465656628472094096552123192255981458452128567729076395008725645746100971280544435504111553704071137124483767100055675967473261741131137240637386373115147633968408683274590623212503191661136164476111189745146872697573619665691190440092063103592466333594886339655459823839668381208139015215404001331602881277771583131297248716561762394287999545894036579113486116647565412783497432625175644546858304778939694239107833444095535124011977984182777952717340123431507267735634753986595338371608282891378375793952867631964882413170558483943294918312865472334251604810542806681786713519790833712537884175210051174687521186414345810655536058169247295363706583250756995516482207399376097400648032399520449555994663952222274630839334940598469892610372847301115654076210797046690366318959689976314820573027074308989646145970592769043382802592737343670925371107141948813660063508917827930360168739372102332646075839484710101090097211909282755238746447453546859191335414610987288484750302673665325748771101620232414132511722801658218584823557802761046743781456595682422011787269607587851295305857736354481954938161176635855628904429387483316661757992183848435181364333338449253866901036610309614548806005344450687056287494080095476270011641806453065610335250182737827187857786720648867741446954432595005356890242622073672311827042418647669153995425891869749041213654378235739843581560880211701626541631119413566482430752149431053563731999749519898314821613417478827147240403644180933479177104488343915888356770158813593093690129011502700118963154413022894107896544443363594916479018573454747058754816783235638267439588329076471755067965529675752592197076659259229026544286802637824417718056425451817232919024966296123498090635286128682606470826241097432242955649206625802084305851752386858384036773755322526138139829328511522552931570781813295630884209626162017069840502658607664150287206047330505980505081551711867513173137142339241851417579449492894665675611917819995013644008270035575216057979548515784667785495159113911509049831133156572496947112626337355754569921992708156825927517129447510987850289893418196833195525393838139624710758229067459560959099287990649465397542671827716393149108629679204019556305568863378623914799568303478535427743345400188189125520676386876604714050240569640013803090270739715175816200586903432160412893799860206482048978367007138773693479755252925760229560249340211437954578686372704864138633587056325173292260597867755145367779897784601776073917411494440564776222012062898955941846760202680943938066048619682722158120353485151345899396925378645555460330491062628451754000459590350429303269543417644525370142387250885297239905389727457705397129079365096162383663229921867226039142140245216949747929991130127346982502809252554930618479873582418055630958593177543024593681498712836146201152907599709047679828955973339004385175064611462856795933607867703524755084369955910291683575393942784063762037053195887769836592372515019201682389689762452421454773957841490316532353534106353162471820202094044118419095639082452906694990457841053971290057652960165397325846863893039791355329839244440584244193874886409121623420583284886833778719122432087069801892527155017991074540852332037400413968014296982752810340673704550042419695623561509008519334195166484940590718253133366341873948333004223271083937239345931297690641311729871395766012972858314888365150128451108137639347392005400018601726498158711896466526794031050006210222803364754854331922897334894624100844724371763805195505921641086428458108881805089245602286818948120662335334106927023543842304598139170299259105212524131598418292793880068303065751875165299349481518204935545748087742855862121201856667602440818453337649118536183646414025511037305297517053826049845938976838728660514550496616499643752781942657622088145512196390355362966776142504191701509377706611376972631888076674562305589821203628963274035717222112446470334859344180170915789277858339650136894130214731537477824202663171323284185703834133702779022010105211726157241402451513892789782993378705389980163361804067411784205425120012010527863379430272319935703505376130361203211751017260326335746237770003162877474237413657068529837016995816664913118042053908728241400824987036828844210088443086923062499907846974320777304484316923173725452138617112777469391919016163328166607415466232978152591269119862152802432760220626098016925413390589774045134422798076491115834718733968537555330587254331785534323860501044596674900460284497787599174439800838396860719785410427029673379480381083887708386706036537576310026435128915941055932414060134718839975101705810664254720699277972679141861517447847363447360491556497741708365979908113028200022623907361322892596933715918907455916867037166373668061961059712457523006098556813666629659783820958962646967610588848055485337534253557297494651190963734992432662278884745094161331438482021479001289691525600490167920909690543679147269375510825501470470025698944896896874766930526184064512009520894063663155839844894481896981232063056044534130678357976624623709395450641849631988762608380245332576237002687871710245289886231006665358842340861308648001572892547945942017329231640552388025191414122430727885935355471450940411939712628608406359117438365141886342572224286879060542181408115872060931581948192778482368871479009346665618544502516984562899771347793513030543046667388298334165617183985685964193699626319282432781142990767624999985675449510209977393037409581102722542078420784682645975440167692630164093098024055514021095448394745316155741007947865970220301389018300485999470711229874469462736421356762477171708623749428745974691199034802201515621861301031751009531724545647166274986048434127265068072022702079487560997198415586036816849961224805615974814092243007696241987056180858462437038405217928135785120579793788900224423975784676711597915268255047948272826571341321794401238200301475398550844150976682922463036998669259875816348772998798673977214286878671640501548622666977969942581815271963435878396969451759091047068867898616591321390536024979184577683191741743054103047347907226874406219462434087764375943432689218730911922977443773782274125955715407528697613610444103409034449473945493198011280750666051280989982095455425200447906858465724759525518076758138032621773894170603839522212725110836836271577580764837332367915592741068354807264484750212494035623454295259913809890973747765887263853157088541189933239344940995025832281076240027747706905756825919040160310551857771331001378908476164039109482257045322785785719849502567465917328460626126518596477720407538951366325109040196703724168151272073521935334458308662169348959272175356221427980923108496455754486873810263389986843671164098233048437792849710932281683029049445762736880356090181945089910523169230436345298134707714312550994260385264455198297378795413543565181405545953123549227517648095865615379629918422448989080467013315750995397087551545182373131430156531972366087451457904141095545539295928630298554955849102454188905005344848556656840015891681715296869074836755973400393107638243457820463958903884029635764033290326360719003075784212130465510500938625998010297226598875888171235617913411580720131765201317051382192538533671043422347278225210073338303879494572367446334368950222954095272251517434916190930792893729404449110623816068988743006861398929808596216937672838026240400352168931828942270833133493510105190390889038857661056894838190025836901523903054227941974272468652365708341376920925316162479502792166451034227653739706880325417256498910928211319166715691932572716169043515423456575497602417542604246381287002288364374504573177640044161238175290977367782052604827388768941520906883822140444209955595180551513967749677285435656586343849008088076501299456949383678203861560034499327898930136133007595169313151297420939683145379721979038033353079962490337590405006620441281924461525641484892537577598069628489341375910306890144651965450782422100998376917378657130631180186604055227824371671775567950113138180586929005257904863744744594717369011608226635102702472478599564632654277323633475730305545715275998063291441974244017106554211460141073104473664745464619484349193257426415309455852048308768700537283475047455608858000220673062858500167769502243745907771415603007068343837936167537422619089974466178746832322465958302846003876933961873448810973772757565029754256107018602414700017054491860774923624749788848312263265082329992075198875352292170672881124045408054373498829859187009182596768230001344176396719562284637971094070146155821821724880085599180921940074385208362639495626212817656711898307409269853391472971196531397994933731516632465916862639242250287728465016401811676717782426292318919368186238975453212438224623508658731795817433202892255420676336033344856258717390180501038956091498369398584504039424248930764467893294076552004053786541429371207161467605532818581048453105327443461912594715939058357796622136389384823726013453223846737817859266388104458604816029210097682908433302988246324097962366566291477102341466105933602617024930660372448360006032698600730136587730668285234623171389418702164951840022165329110165904199449123401428826728360621770888004703606735421706897798233719531419699261934430091168260991014877624022432320719860333446477667497358783247647164009894950176750617471272041949949824389332733249519128506397614058201323900303735207871180080470812501129791805778978872045881836789085019102567698687381788065156526974837479792987209577910214464785642517572814289196616306757007035617999594636858350822980250097984807693100140709703226416633239200027665912203512894862100857078811224375335629255180347293771115793074642469478237656940953236041070859631518940892883445012220340729387256360084787654816766023061759053517939037525935404030970320186473211660277757096770942954023445242865092050006605678350531144218678751371365843640648652410803975586890546118634066044950536345749198203569443125950970102205776908832623031293528178908114266720945748932464085344606481187107881508911903261199715718071262917252790689434362038020954899431263162835262902151569759463777259859388334593404699660544284862639934540052173936537093251781015188390423761767499136365387973144628779581143195862022536733743924297650785367231108339848854890243802380524472683767755388184153996885590068916374418017702873567526061158587572632301255166779436294585991216596828336862408268921264200365161654616026804528437846861078219847077739330225363169688417603386437839884033932851927844727876215699609499537842821578709593159983693363365249321229724134373928339852486062068529414885782283735324694697715176145868808328819042142618179437495643718440720515740098164723310365864665986297596934306051255140628650514998759205378839532857067043952793878643606284818576320076107435804472386502772755402341160961827605888592397787893477587928701996389266967451864863259484858501141797748821327709928939541618521177844488929274406820904448805858394067219468380823768112260492769559519035912781601670469914292486922132637413625359073897659029245951839787013854512639312289923173263655987980185173214624872722910861283531388438282161423197206783398510993485013936141667897917518722141869354548682359611903643127779207175130046710338776864063420566321193850696572785156669482464472008168550482727727106175615191462193266362981676568458768727398337224639633752333391535666273612528850494632653509411482483309823682188539707405091673044747015956359384718547417778510060520777484082221174579494447924302182291006518161109747651782323709211639443575461807137335892464572574769126139708005352415209677035312882926743418077935475508434317814959804004480272559542245174565228339954890565106598334140616875708593193712884146536630677219420192335742531654551696783571702047941161547641941843297504942783390973025267749895157729080449975492649021428973235286099967275750770599269838984425569267375454171809125898119678446802423557005515377549039997118278369342794552651999527104312230015645263032995026627648159464189739014595254298566611998772466810166230064245459011124029305068481231384393467715952041552635620364615108230715451233046827796357297212013696424590264981701200643458092650912823072060576670713503981888490588498977615377992441261563480875717781385064208597223462098095078937886123344598221202502771629046835045859403015157343907166053891964267017211895300948011105744149776532777292763075870950356844756556733547630109912741690982358295878688761635885437142171630069874485914842786364004931064446112371559590856394347872332579375349042643861508432926281074244936259980272888835832928759534857892210398086402835191794877372142599720181022897438317705791651664936420751470879633538470803543758718587768023811644081736300484656667335704214629351193138861903105629098628261120773341357984962688142021386928899814105253940204041873197687675463580422146772007802460967625364593052904281408150759358287516418095114912499148734768475747856098518623915298951893083733724136815401982156750677463934309160025822226643940073804067312850637073441649391210530157380295005585509080917470572797564748384924381991116513965645079275495123176161473076340119466456600348200996153859548771736862699672971348760631015412437401717391426656062059798391705287469321323647653798002067817743607559889548244920958742174537890944117429750668277412464511784118626074100200039518366453871072659655143883595135048703765572985346330206388643874421156445852390982949297835627333387131830821630660008274698552595967759943374114937250649206757761904986844501735134142691207600683458977917236015767832914756958734140546976000637784789272137310134574153209845498013855805512292643585930564161430373722881538617006624820422587419155239955849070901393032543688000335796305560066740000618720764827798382165435303254550626780137386451831601952051770119213709304459406189484428105857210565290449746813159494589922371748585352106436966538381642177698665185939418375238659848533709960666075942586196617755632451288413629539394606943566253212238303682962573338703199663115433452193070447733528956398686090398383603176704368073801684692285376677741349058416757944273813625634423744005074040969941141777687455756150537731183090811189332186936760452057834276399954976911416771524645536733187610794774056008885289162761254188494171170718515769888672318913488799800370225760037156657029277452825235813272126572933783309873597456464768044111138129063529777924114881484234953105440945417645862986700307283677607494655250437046337462286995690645013505835376470688942710451450754026443971841781942270525987333533132311730603362332354817238091862361706785268470849318950396387171989139449693739195004284851850573229680645403628464988533444166246195170961799094575118714634584671453881573421402166850991578545026181174273294819437043472596793586946349962324854009977108412689658311599075938482756444094794908096752804715978759657455369454792466454770825449357588066245920325487804102741982608428578392234667384636315159385728236461288072037406112803593809200488982278458030704217534356957853832696638459180351702779098201237668278792454582894611871449307893970957203054373570330976676457885883791134404249539545918906754850894808176980691772760825144172196201902227502335912410534702511937023227164488590045965517613988418807266929235131743851277964894455988044712349724668432530534500258852330548299181191485169682268617265627526698670371657398948308565220728396338262787847526363554620537894715008826913945101648126404432296858284368886944478831155567028025507593194080573654102183465481421699696982175103955276032894297902463771503722646933430698196849272004008816434651275066830564844265229269084050949026576615683200035961080319594590456404832304654112104607961042896174419076661764849793875485388959921030670532763967593684928503526061211064489034137556208051897434348984943494226232790837106886051615630385784052737386117112116542454100812891001913595669633139776547670942864779474193924741193075083437926770469372148556857966620794490072992253687808243191086035583587802723261318751113007845300437487005754448475074128118545620992135130877054730336481663182680712079790250929476132611747118497355630248855290473659210536582895125802305904071146735350885947104718769997423311321955217079682242931140064999772149345751775460279343657707038175273165965298899238014262187190265414517209987013339426981514007720221506208460868920890385805538373376903008759262756433528251685124807625816319185527887059304496182793381848076518385808271229100189069411316986474258450331822830573099989571274983071375825800302025899691653709192174872084429786559392313059059388699169622240990714082284251695025101296572778210532110490564721836703555846373070583745599923212520702579081029555555432795177426099495469513164913443236858803772982417648416594517778566683896037543672770652055525439209304524141573931671409367224351892506069623541971524843063921561704648383328268330763084343976383027168849235567272422984221365412290599945823982169818404547512268107111246000040406177062569973292774560632506308458438825931328538086965354097347372056236812938124102475166342747993710074470552829888287107340980597098459417140474924240631659423574042257958951040055627652807838715745846963801153782465195122157977238966328948799012075588231680372912614411289361076142674353500496831023772439948329234833393073236657240851342042822596589964496711994993469562467861601623556366785209939746355568926913825439848722783795360062181388050703489725363706365194078987400697571332722536111404440696828001430724827073022536545366175325117428821238671700893057562191495941563440092611814501442923221664458396688833890899679022552534962968193708121976928407125617292350231543956903381502965394288121569565179948620561285566487933427014603617890535293062256206041710012581923088895727787309068527762987555940812607484769024764386864275566116347628963776814944038228458515291393584661683759052057649780620499467391253417705432306634255800010871032845713398978545182745313029831374757877207132992904840626482543629442630614278404067708602094464110812617969650940989691096503009484819586175960003726994028236755083212523896823730005210488624698491484415287624122183852587590299695070137725916509618790408303498852140552993298282629839022165850799059410591546547986786631015640012840618711743432849443601061292586564224730454351967059946019040482036368345978039735029279031092886759658178099526975993992356981399454654521958764774114642543792362480108349169993756436503667258231124433267460910977139766833169111347449283803845671920031485460471294352722432056494904807565421697733913786008816682579084195586266941764623851681673490218183759566749374866771590244539226660597316376944388393782887899091806993085029455081637080905785143562888874461908220840578476377253284763629476753498215105465684550546201808018595030428492460777023514182784232993558807398783129828513207503586169157212586942530476882334617753942985830988131031990883636438786444066855977445462001787031506686249293718371157807093224867616857690728545330389723281049151907677193916165431948398730288462011204919426745417640277050472442812569815767042300414711533690029902736062959181941392377095664379277423563794586191952089150958195958172276006552969525377588043644737970651782069879024803044802525839554547698621424374326260849868498686661354431227397646290170741717671793372722286180723325750967103769086958745581534306549679021666482697492221317433780897239129304421275235960678507903507500547807660356365453170754119308190217765110939817267653578248890963223785545446648533510896838774520625453640893948749176139220385310151255076822223542792795364913336662411647550693753518703501073567309024761503630139236019600100766215050553010097129419216113129762731452128860120820859826044881213638852782024791600227168636497784986047550025650047073734380562936719014633100620711521036930277022818638662280013322136035075210520197428446343119737136795714619025407802456188370494560065752546631356039286820296174559943723105163751370163324170126215834047570505378650503636777966056221120964486323616193044264132162522235087648734223018106526905937434569772971524087213225820706590132099282171940974457263168423472388160147698650435641948676932480449792992040873076370868635745247466390386865924174572692292090997354785745912320145338208751727837480897928552197401808649378882102014147068351778848353779879602094596462448851871557283518044514512042529597001625314461441150657090702737059019111480107961539677982266318423647925037539152966404329233442786687640947066164946291148648963939402187400993976624869005963344620443568611229480084010617234531271722048818765145960416708740081759386577343794790326301331114111619090593642937571534049459710515584479236824597617038455154251687411033469411673235029743678828233123866949833707192661997241692554034015577931148459213624296531967328854967300244685143112973809219633787257880650875095091776869957227833417339567994465181687037820474688079395296881618106029066542552087742605231957408768405862599659886522363372619806653468716459312186395746298168104183100339901848143947147317510061348128417022290289154760696285081902921356645777168714817289261924105085516415547701234784818573187733845733202704798736834018764667105150357297416274514498231520694596842792033974011201519188311873706675526161234417711573649097318676383566533888856195971936392231358658302795668146018858984637714631929476786976016047971951180646820009354819297135277857800726199219864864923035731314007476766750373352032418235809279866091126914994838284928585411431056748629670627434719474887649143723932854562718261260711817788052295390270520896971555281692455783679500599454993987666231291561195534064540003644793926211582439969296099902877242582835916690732687908021722521444977562742006236345550110507823044265940624019333730137202256856421382392895199083577709434853449354043995736479461733687671985824363664152606097291342443646427131549749990067529076842743334556472528065695468883743495849868767261783330096847338923211271914975311420810657189342998164971114514903130923120030361799933943392955688325799364540319464145999396520010081441709555564601857126488244113711398946620818767168734104447629592690825303999351809337678619699969453492670774053849454597578827685418628702338408507707826577028394759639739983162916598881056922121230176759624769928217695727458913418951800740329669702521259255062262445341801416804143170555264405773976954121524261529887210942905349635634962044596922195965825973061661611169519779104633692518006907163482562895257647051438834867187598226313199592435836925271025682086906437035916411769691819974412102765072164873080119112412477020314630913330206405921145491688420678901950486086362843806817017755371056508916203997643504814129567481101601561601293266363437284824877149900652071997172219236349512063828605495348269988409664542013019792793189448066239576677343363439446860177256491744799270156134750220716664443590294259794424319946905412869279491795267215574984201163024299698272432263938681595213850496592262744172353081987082943207937708815641462064186622043532904324702267859004595366025870328439367682433601901448757472455481905167828012778804073563310677069857775203098916654545158610955139936000763710543495510701380492788585382506691638171831420345673365560889921845451366137723011003430224807385976169970088265123409116243627770702669160521891867356304741101757352386740164159993611391681783031759930687837550187750440980508546716595722992063296006812063790709559737123601189351317620128979857579122255409976353651015261693304948480437309124647852657038061205687501875161224245472749566930852218819586246111581379148365346894830034795468792939704945904133757882943241145244567510099059557423072835410584446822648370605213168366762177124772964424850059844929478573167283111629764558900635229061035035570856947590781522853391427997169275696770730359086512189085753607677457598345969285254126197869868988735589933303435756782492761196393937572418385688002075844599749885398617048478074879249856503431436927577642071904546757922682134309566067015149305980015006019439212004672780724328827403986327716052530213017912702381060106660159524161793103641926636676411295731187935039904674032028824161834791702306048108898451619539705180723450354677976651737873388278185077021342540430330197384802185751746962451436834969413428785962194907458498404887940205591562836444842243426878697842292624926832429773118281082086403642037560937827995874750430442801864594900034865992242883972024693590570586998562728674013398682160316735647078166370785495640919286143878751083447282020326053276397839252146674548881293482515532734639583254534882113947204019735000073393196315905550891831409230992688861561044619657104183774033983521393711163080480928611851942478093129839233435140332097089496527242906483578753150631712426583175180617633203088808072717496602312547649424594971301424748988026204838654979701180167242217872916640652000840650551966084730878796148358218458241111656793255175429936740278771587405947522332235510076258432688691103614780685449784273256075557527879821966152118350234321812384029239451317666498746914115163091311872392992576234289371647666680830435498749877367186461385953089186948997601545086625102627725580281193925420037141625401589592260707030341432615729145904536584912468199661750988723453696679189576197809128740668147991033392222315259215593377604375004981308119603718420572789949524930428826637254297132348309755563483838314195564037424209484395618034012749492890443959382627246971249802992950766084827610389655586018645080332496698024204367813710113962278600887034527170633964857542446891339952958107931582424689121473651576856887059537889547636664242558948788592805617222087699345294573683179754597087569131540231155352067536103380993883710125873895056817389658773590061854558306974648581480345161109455213745712597959953593920348763480787186255631418946278142462111383689721594471180408731926498538651134567558604918874763238225298225834606430593244458381034132504125764293605496681164634750852008933634735087466582361316980878114938847056035232507238618428153620957169302902614188352057734762837059554186835691800309282402296960661084328215095082284717815054311741575053364204421686032016763262419118134532630391503141410376850273558218722144596393681995729695627036887631306541974380047895935006912101029570250832211225901020328673239909785202183131854662836443937275006927173789616377253291000134554361991979577185330311432063951449509603540929027042737415252974491807952359515354940210827425126913555445563047546409049721597506206043715301975912141516588003938785508458979169730330880989992632455406424722362631507669666794871371024854240257429258283581520106431597230996425035269873996241021414175761419659847126392558486082405743584275056173524349669068550592984614226729825274745160417628483616213257760384446757688650658328603078455472598503213486803695516747673104722632577511060111180102622554776673705943853457081299337611065063570637931254842021111673440441862529730060087138330366259756724492915543499514087415085182325258553996100447922490662315085154477854267397910120355177656643611457114676506477641363188034626794807883288277541018733886455929785839301190215102893358042549685915189442705497417433725994603012974062219367219434724463054809855000069882966274738736933111593899320708634239807991878075926862596519428184871447576021789159990481415875167666790312989102892974276049206351093466884317608768503128765466814548578584702831915293794148114692308670719188164599891749193150446888242373952872067574984767965911911734932415258063059042080585467005222821477787349809890171747437918047650482677019612099568429696825552855189006858190837843927398988970360027993852654735505547447079678855534371125775428782530752496561992451571027417081198660415604549951441318308570600039648370798772795028406878076332420430151614756238044566994429051491371174747177043037101704204282275476037783472190234900369256882604104020013630430414245680504978167258644141161611367575661853471641447032516508562837341552084361628012783976547711983843751924173470996499528777606815481596274336417136028550143894037967014702638844149972800608777298614545473388983061178799231575707559729251762895434015772805461727666546537824473918065967518850230577095908524516771773236925983704864790835652157371698691913417631874084572207953414508065176530414117766333273055026512930821246326933909147414608109528208757669101614116370035023964022001974475287589953623808717648560052965857280347041227671481689892215378799214223965116274670594821222417910688556316189476085828640347867018008549039966428187587098393164204103310629592100625948226315638370780113350649634278352624330845372726163049255056882688530792814922195536099799441114950679408172963896887249004243779890094343289396252373007799185505073541113901388224973731443268739470314937465362287655634459969698194532067501212594320840004093507965493497028810183406536752655067747059916000771318396083396360557514020349597790651030753365945306937585887139319996414311648651637525959066620482168091717186154197118391222140801956272510739735744700182214169781085093275004493072014437555988782895522303474205201847014161638570382702369902904642907346710981452457143682307092146533436559735178276310578790549380598943485333789957915450461309212328118292635458410423798938188397769151790748310171551191381270346066470377381669891264805341447238124010817644990628351746123518927391291167571686406592467966542398394263203494830498536025501005832566170293521275637111854630707812907480772473532399295959497789153502963730723327979150420607609843188120533118203774032412461452334122650782277247329258598935429481982683860481209504045915163527168327840460698144617292771686472217344853230861338921500506343567295111617536315766423708160018689560831729927934872554646442437095455431367679357466533674925530026456658832932449655807781182729593512965881756835152450860550152420516464297814346979903905159778884444798597903023727691831741801431212702493498053065979761962096047932374466082582968606558375172023692733001955789869937435116345710275460564011088202343779191112873096463487915662040907409418936861553386022716649724886052390166677024202014160379829826386277291145081000902338630393523018183333913423773895472493522459558670196561777344455713613839278287141348478263122056263468308161420655933536151949431126720514469103310949364493209992818248218352363153553434621585689052904527112991886816993275985608750440638048041193599048693830316460199864171136477579350306801595540212387507254554279587444746958534202884852307435553174293280187045595320545055513664703530057271654402182528559361430488511281152383208688616925736469060852424830295503108517770294871686205660748259108215912064166567371050149481448002275796650678337577591480685066521347932436202424899190798944878371640832289682506054382924286329820043107180613899230844555173527231404510087541813038543887724895103865277710099595437510922346093611677938716852392409221900253248782628497213088416073298992787846212124959587079980951074362183236785198048414670606172185400408656393498929493803977232489205460496507727911377411854436185038298970850900865284953235808576581273520782724901222904073998086044733943894072572444129302906193825231426076925121256954914981212319909102691842184093746050893773721983007751255698984681095874848027015100416472971222136237573545774260168391855732851299571807489756023907382637691176494041671778592588678334038560688065983683908179901000993132189609517354161110304427132164224261695179437050909764395301795764102915101002793144890528678719139028026959963996100500443012365002511594815581883000722564769803566914740840905305944033562402207585873997274482536871707755710663894018215559454169182486113946443401656503328341566450133410596118812921587441762334688648151815050768324086688121669243994368956997888058946068002251778552897517559070345351288579656079343427973824374381078212262193791127225272304773195249298043220354248579054901109125842702628433318071956818172844071406119090760973784051599768834268002109916456806360740197804723961357778519789038660848485939401883010560424944334099690741168735697738450419368707251695252377772348945345278747140671662944901934335396687777023252120990866816981487010177980898848671973620210199865365096295303033586243563681072368011367373040503691857381915094068955789216859920320890415281554728322092782046648527389994503501655108708480521687042146775528843080205395138539286524206387508807428327432188088435142610515404417140574809921029875563376050887955446593171263069571962888175542806263468075738372500565342740347098457550145308122456620376215672693665921706685821682797164290312548690952418526348687553269209070485393609061352815030651033606109315579778464490990856092939073305888650708419422379068501443062386969897772034543787036807784494252785504605258885945883592523547290327220246249905146663650469098376158465694568354085651250965902477173620928449887292445401291581119681655772177698474204545436308815700770669493365295466458968121497017619303015145110160228418501751173839220022481987031339462408410167129999270441319592093340984618109303581103817083719149191223030049544104789301401062897390731063296590317420729639387315027620658412278843269715344165220808466565411249409442676963472587903923724797511246669187913117606727668459124468905245408921619800248123081395376399326608890989573251984370445240647667915852370241447445934860005151401429479069021552501144745707379613011272122812036503850752254940902784535832255298983976551325518821938725219004407466541820662485595374937851595872891234282495321026272053959505221056815588454186077525086292155573617238076795947287576404814637511668467447481699696782605283193211075882706113913236869537539439404322887718837054327504874532138138460335615749417315382878617747687005491911049496670125897853374940731611578828710189525342203899759096409868643797989237274361522336281351042246470026510267938041879642146423739970860003539498137039841934881969951999361974350035753584253417881864479270401059887310593016791842353029326079035359032162899797412437305331328004744608943777645049979542258050581924885548619109330173169298825393783472736510638930705839780214756610516677387098930431923942311452570741807447427380999412079045215365523242768114727211131602845793054296893256385721376218078178317477943361977851149189539303205155227871450154861395531379844593949267207101494597311383867537655674632342767669548631546213804064195848468180169124928037090997508016889808395499973376532466411059237956374023772544220939010858727241198007724317253251437367943173480412082282807872210805178210698453646825789657184796424611339842680301738638615700574742112716508794935753043779442736384983309110026054201209469790806525180958710585106189454808573852505460809737404504473964222565143907205152398040080129120454847525926696514540446271537855453743693216884478937840145839726193080424840573593308196229954551082840886747998371967291522765729795525852050726279477638006788566884011964493208291610365751745532902627969975349404494591298166560657969044880135163732256003566486991530247639851975666490649520676028910095359268863330596402781289769839689192709851518795832916001740708182560794994384026099901250806397990928275118954493001891842513801122006437026610397263929326741842049796930323551245166794974596679783849183575451314083454107119769181031913546620492170832143099153139293428282388315241301274260235519391968637395162233593127697522453038321050023029376925685150683388839214113928669059597724792756638390495634260518416389299552942388745600569176653026658991147108848244149354432868691263942470082678784076199729989567498248281908581407869790529584782706915937260446078241456839158064781923710480192229516868749313135623697198135048434902723339066672984385980812362261730794945543489927892857719872672865039502613372937741283644529570219034222715165377883831580902203031845678003109215210815785681266819609430520461563019970377915920665375727849972168239520532828160386537085264211763798625948076512236333331322297974336048928232916717986975962795846782472863245181571371794482682136800101857886118469797431498240704827334806109886214266950213331249096015500164324678443775130420297970037675412305405372432674255459477430919137266647038966060126563512703974632333307107683426713979000202627435395831070873236085512959045359662347664446399724913032462192265918242285735647756225923450995636632614127476137330750791783113418817324512146213799224558261244332982702389062088372800514168908450943104133703397940557197965845779862407397642023805383508461597886882076810397299049943593424482109959451746510288759733678547123957259851630881066358958148819132382079198746229606163064326280942666102920340504103203563177389175803117819371102318129862527103680956502464966331981592621370888802293368583630728472816735361775773289943412840494220069160456417345043623653644489092337736425601322223474464316688286754543163228295943241132880727049353371783448310422808288167996877406809481752126398914567177656782278120487147920284943473152790169628315210501379976266924250548134750722730897332678853932031210585420030038593912282243345620767629536805552022064082305385003110629473370815588638501894191415988078370604452301241161237060358163782779852756325961185389088989088503375495836988641997655480307144475390911213195007889336540260999533869988357708665112001335117591835192150636247399776976311924275676385834338480823317017070653332859712586932381847381829095270664410662592870535309059516601037774342897357004620502793729588751606547003290437910029307848275278477018743856634639086799039161033333896599616822855361078201583238240762612997677115369346232236913078608305139415248786542608476841800150147773990238248485550547278393888859154463477506310274225536651503529555562299009898578145855305617399282938462942604458719844263591851903653195637413686818595709822337085097455946870196992062692933496750722955404120311327324675116908502268412775547093896110851004283363953202245221865955053008416659855318270784088823092508039705027298459945251190004243565945825952805878898229372061360548840455616569134709369912539973914413766060988537122950965734689130462426361156701576592024677611775006808504547700438259084318417601253911586954978529940152374555615341950438718930413842840163870300588896029525036823261724856300689252275042566549620527754731658360526154372622817982571085533822246101557862240036874525995227455910258657954767563277889528449758545461221614705613506743290956433405296590151206918268010192273182578524492571778668187282042810393896898165397570775625849827614893008234093558925934080253749491370662739870665581114456675328318610547576695691275541741652386732414036087145040750881477561571277579176720756630939377328082763990359824633059829720153472808749353781566958761621585641956101817355828311902788222644349935120650610863468332378254272645263129403931862054592976471957153828953159044451171311899113346439867771556570471095191902383572159885035381943258107572534002403697341303583852484864093661779188595105988631149082814234929775274774858479458601028011348127045592695210208198546576347301396542106749488644119694504570502844766524659831642237112899590827582132065915496413124432298822850940766696715492873954752065715360117614944194475397291171922797600092651821286922961173022352131435493493699803298225127659343525407929598494200455090833486648872910453969527606872436719563358194079680067159838622280638781856248436004665622205337437936992248683067624547577393144129040189730694382375210162193199835449070915899453131342703026261975578788606087100008054033902139353692367891088313812585540320494124691858216406072893937624303330454363823786979595350801177506084602242427724832179980218070574653895635278667860311794253999261265340169388073535300355460192045843951915237918568899166692047219143738208684013126950726701196585583811647407148045386451203064792944729669383400065212393464091055820500296494802955050043298780225276164664186874249321416688406863984793524378740428923250310621881212954575337169899535410937099978696740533093721174393552980611689934684992153464776338865846492752135540641733562337857453416437875110948390527203683517922900191535569972327955796279555790501512188595715300592190652722163209179044024997769679539502660975527880915378424279049790093465626051061503956656200632498227532539113763966021820131528513090226405477743807058741163130061328928376551208260160950318944700305866271122801556972957677029425024043569797605597269036719457667171232617884711602731863187368720982324800872488056950749304595116446534698116346221980392973302433575706020046817344361406580457908465216434276516386586032774853428182784368592973023629665720541325210365755666132417447614031777857216355935044504354226381910643444491276230739668773002820105911155582216745018292102083375087197109889010530961460291077520135866198460053869948127554767917761554823531480869413507647485618878334705594452477388374735028078206080112226343309295901148314705224850441045259551820997415328752068991720177023727045702503765104313828940673883687320517792357777947055999276194949761761636651638492194080841595762130860505111801188239939755969834641040200560878774249072888080657924210581584530878866418163811646376827169247390679379622798941977014420677505161137887855550267611700400523576577173276758104406049458866819686036170886711081870170950436945067842468871726098298555657048329672249604014553535353514498898107564587569677294812812944017827738131019399360254181674498558225854499223047472124115759976344518011025596045794733291646328092804401735621628342380436928785500011723028857512061696561144520011884056569317502812171355732537108541770585295625246189372503922491811286760710892369000619643251188753729981328089587592566088496262798834997413142535325905143639559275665417744533870379265617334858968370535880997069999548504854449342560524079088030798150853302052610710332541611083846005341856191935463493960913467955646569858294561908138274168301837437460057327565646961249894668228267865392415206870817701997846120059250933938833666063464627056525001928708906952291113216354852592856694927710936481564590105180457093538085665508791057801218610703790125353788431483405933654123107663021440151696602353735811706556893980704522624043592446294610907953249482542314992146193514557461911528346565432054984107292478096437836553441994175547245446909806301742742590644123711796076797339662678276283247833666660972584698498325619386584256536739295034975206442864999153752139177931650318918734517628167102366823740465551349120197872057330320000045050973928194622058117384063023178255815649057445784532704452247089624154819929563539438685845870288086849535356931612511443919672723460178576468982169983106037328213213534298558888229697468259317913215752698577089879182049147350660154870509544010296737669923469744731670929897725480551776533976722374383756609061283795848733610414570416548026470371288552292641158161588218920135439468926000612275174746222151931102744244687436469509773707414860232820824593673003667800484444681978697440215439113432357456598455888692205800522930844800195651941593174270196562583210881530614773907859046205694898115688647375241048254012020147382560439464111829891920167266175873551672602984133019952785042143266408139721010550864655913155433319926606569309632601389329249889001411166533848092650495203966526718193089023696093834652580299827977976527601079151832882813376240358156457117111626082760736838680033381922336855269967619955472760487173582927790301989410409882806136806263171118314619589836681254352404680506532528007947729949587509024199088189287306546652132325330605237927572776007885026646497286219592759567892380668170836068030352478826972074293582728493508957975519486459779023372840010051143330800864849487563613675463659040857743102729041339687121779003433509070866802248692432569197663028133510932220277329864069589417942925985826678957954438376238815280211900186215272060937797330170187983732643847352915110084014079522829418977474177886645925421583766746739182844606980298254176846974753908249883842286028721284440307176489992741306369305615016297907624627402143128768016678329313585079195252219048588014514943870119058410833068313370796220065743482714201167673511002474767497898896619550353599060982264774248072240675834812202266550991340223207085435306217691003650228179545297481908773027942776588429325792810806733748985722059658418000571958646795750077065511217492993193703771889573418365295477628647735535104333560383558675525768475736018342950391074437691628648318784676127206701089855203706154844807748945360344095851413782697736640815121140919900118878996940672695837779255577667828773429262271462967131980056395339109130814251927550105319518148189295008449056957596673263506192537403378085271074513255181556226876430623868287194983451802062075922170456880206018701668253818907492659909125084148157017107773709270759423838343467605901186906388617110711581375684546209762106922375644554079761138769506304667574954761620558549844164944693432159375863359324033152484266848194721938787769382004494101434196777634062260177464355640900105743916499374038476613797346692236573543012140381237274086021834692728690432935811419507728873958808119159354617860542138162684014528949741539834564652542862314628708520891080223438142420594028461647592459885426616337395588900462871409512422734792902100470884825323510423713626599316411156475995867812727085175223795998989765972592321854337314312975101019212562385660572546636543702785040369067760498195015735944538958415140662108012398397576644610670778918401501082626146750656125389928443680793313024105090583939769338381426551342298358172505056215212209798425556795379136244419188086683537565807823756046787446923368905941450541622018808763603963599201704476441504938709024864398719350720640459183930823646902886841643274873557647451028047924105803114260870008441232801320770950369370068710623408449944435402905694798446066417660279766474990389706529674849137410155693406359958272350543097053019465528146996303904335381353970702399872732014987813786801888609338871055176039116124266345521466547768400200865782896163035605716027753991229135667602885821109800722789154941504790241490687558295670081253434986783429447950855722111233182251716342518247440104322030356907726031193654738529296903136341972340193239001099939817358804248207318922782002593380705570991637565451979166246493920914955885683265145971652874017157452281862236114239634085394802896951378051100377042064644198205696700983789672921415667685940113401529979414407592330278526881965726200178640225064307568658277733436708593610043981119590768962595351885847726014704118074175760355026157726212465632235981783586184215197212827767731303420408720487256578504102157687954664291988112168497533402418398440941418275514949423177161940467603070212593839671865891037447615969941882060765974807890217127104958927631011653305372021348873006878666796060150672280545806939113971373314938794788156818427651598258419229724598189199514307435487624024106522001865031158468749656041767055348658449054467523811221756782499388317069038136849759340761920777836606353016141502979589712792857042924277717422347772148249581521459307621788252379652057132400444841814661795599569420074331337689785573329920868108009698480119035005022302534738776789639615813413596899222914604847488287739699170673481196744257587985161186251020383468260178702736517819863860774438171603589371673638438250501442363523718076943880848959941939013530512408923037617703788437314751079277290924055170251864097051840401539551718984020424036896606372631681826362017922465173022901662499899442253853770791551760327130441246670813354834468786905055303271687393057012279008153586415488805098979244542323353747609022673562603850103853995721572447842748911397812987266603330019065866378680871628496249132207651345802831863924651778201243879151355734322312237725594032826696293152636645276104764333878250590690867377780058327483032205373014578824917889122988809688264217283085693389915437450904670864349944871585124508482515391571434119373980497382513663567378646564786712226627884273176625866824588301539840578058299158822257577037682379488048490068072631208953022373190057791184088657831422680919923675673761838428547179309234154563635031112770354385636417679554860881551590330655163634151538380868449302628208697266924517295894624748987426963646131265431269163340236042336687439794378839581759674124540590849475752319959084165404166068229369985462351915829045364996061655476316791175619543971960020927252494344481094728282675616233546847230157314407548599116906169593379027031974551421101383003551846749344019663299587485639151631029050671013783106981407113745669823223108836243881522874907870526549584582803740541841965321272138840885896131064782745030903309036511723499903463354463406804828808848067124286130526972254732013916981363731783771732548902411612116207735280678311235964524755401050203537391652242366230509534913755667224674787564961874276021520046364158357411281041514632565175861464326415608053077008995704753071894170849480565058326440630358693049152287300931175402389912012387438687343966127357626505956914268449662330113858741797632485988696194446257055239883652257068392031179486838312152276176078530538475644900073888988969419958059485303822093487485902159413954076803441060884235726534938277272334548740570096645702492378761179597972276444479309116952762625990464901023867179409603250706328561760617757761509740736348774187866679133673543309381112846759735798115999066110991674515431978881602814800044556230328264691679378161800173759890901234362018683832878359442738578373596730180699182046686050513699480533060327530839064473816255092208882616930927516942626253028712164748019533956775434119185530358335482731479287671899875950976890976652508850626236016591001166892335844391814598582460936946764877677951555387017359762168796866531062165308675358409424258675147232789178542057686998159897572432489183170091583660946519653719382631187896702031641339752523913607423510325503193188062191373907940532864174603622775139258599881844079320984570823691952311826021054161053020506529673145861296295497609889229578459569335512447863523392529713153106115772848670806559492878327805812005314779692893240518132490682563607594985257500891486119960907607821364934822900304156604080733424232862943407810306951037530366184937355710041506388771008974850407805123278240245766082430941571102772308880786812674050781671069601798509400474825103448122106355635557200868490144407701978894289976086580176693585539811218622140883977567015165165276510491978768363021048442590253241376028233256259594128607473699247149159964774548551168800767662217213054985804776011513501778428557378416186852517330322846528108735948834756021891113537731931287266725170661974317173712404465269842174580164478420047461046712496098366360813231038802410132287654263408223310903192873594516943351701765089550132988644246228994612675107224222720001179076571434635779132735448155856585408136666341008993834563699333645940320142570822324321301742156500005723429366070913664848578970995672921217057765331877028324417614522918296335438721764265525840440315661367432898137324373573967585909704867028774753925018991495646566861553615331767236113100630153308147165517887374475127375337178259898026513331307272223588245946094875047859874504640853296072851075522038953305383790856278301378358460679368601554393193813053157035976644925738152193262418901445730392355646521921897120000218256689441469770686823887528277702148424661584924243753744350824109658176443456458037075290597148051078734527441428892144286968127980581980839563673011060292228721561821070372721028253552204927618585911861444879176098930854341502537654986743479774486490761713063257064702884808143834662084570689911274176157208212986112327318055465135278939185323734716593102060610852283709945258176340824844621992913395103462958316551460648573611656812550391515569349768622474609676448649494639491608978888594886164654019174735904545579623828081208743586318279697156763709829771606956280192609351851758058222400220414640177220056706345798109744911364564587579543620426682790401297519775190064073319200432501203629285694575230942598899720577015081141585986344797030289154598840340250449156188670733354017573784223981863598544904840266696347201924818206759995307697678447522990030959444650828296343271471836944789108481836260531870966885461384710349329978461701073883581615925789508950598412217696430738089287840471963847942003877062792636131566180255604412449664713914944331385104148338323419016164726738373011401720460691615595074927082656860827600778054782297916268281309246833880518988095657690954803102473385354992649317096038381875223154595855693186426895085082916868857932765114480840332088626389738594878419632983466524468157861452714453441132552295464679341326572432045894761717958442711971489134515466475549148260190365863587950949843454196517062537565047538428301541113139021035021161139185105038215808380527765181569658003229599485638885638091202418563747617576204650313272376800408703062783639798599704266302930665967750509439396758629684125221953089812493152955710951036608597317554131413462632508176598749488162633488668488986792497034881816991745243864710803266745129811975144973842818181980705512623505410969386371598146718726804974761607813590820462980961969522796156904105729694746617933650260552775223308553920891907651460939569323249273114757854477841581901220537920748966297698924660669648877349832206142877651145480960304729292812473191629452195844552234672996344049886796220040658461713728230046019786210643987055205809142216453603971569803729057319416569115939985856120297358382218591987886939636391642244836476856121318846753997482107403007237671998031155272649887442360308792302747825331150528924582283086681773145642249379674204014479846559779849417178195873242552647964655741203377548634450326425312208250833867463532890371996206936961419193317109096578626918358717255729864512495950981743453717599266788210460882237904718136701585710399809861200458616417880365151219186253343378099533006930314119399393033004181856750672633451592540692795164628146550570530997473737929062066698158838058503928931730374734554297976601214904631566542218434028486271045540651147051760089118409601181871649923146669318708764582378072276193425987897428692563422484471952051972595635340451381771968359761323252230667318583949450645905713488661066284768845908017679901653653679024399378941939031737452369644599493362783295263170942997532795723581558249581613449530173374787871299850396335376183633498336967214359236047298335479159079346075730592955611183126063627161849969527336262014539701771982363621977985615301388564077491303625347427839589189422679489272908979207794615775585565728221481557365733871477100776764817478027821687773407611949542249246385469366698884068673842231695770601601011233378167382453280755487067716051989926036677072081908637774000835121957075992469814603136706719187979015730861310498450789475369801733713952371959779240820221684078416240634684324259189349385286841929107592382317075552595381460647580630641224587504787300269787363800426434223440578114157100866521542847458693435052447618900136752059075036392981701606830610713410448888963468175718093037490828841182304060526808891852298656373826112269765599443158754518719129168218629590943905833817581885762780409767449987390487150370944151503475012772105802942772612425001494511308361092125325146018641293998949154303323684881659205356391099103383819460677615434256447426099474319750453119359843017127293649584868175230153136960019567664630977470950354620949967465682689189274969873457681589092510469101608521449862439514049201879614116372008570607542824926070206316180796326929994240081730418150611952308590537342695625205126293490956848622137023734519521440126063576037877521304434250982855616502797096068636415162006496751799265938309594666422825293130433993104166297447521157342793142932763401743472775629773193361728433204848681697789698968096676006567065561773296991271711120641891911156817925945955698510083468022641123994924570294447643315576422925481341624330032880502184331079346134910781142510927221235412535973045870614505114837585637043215721840623694777492269460659906841104737991759489133856716996416821022981708107997728724535334633676365558318525062658493910306648628837470977158829572730271065429644209539614860127715886748370923599778837650191797114927406358387988953557361592775052610162543707500215470030504942998100446490374219586513115781603627201862153934829357643891980683739077376033248640595178946299157809316476148623720994653990280016351935807691310319950673180666279597639993895631078053735229862611024241777359648189266967999928892281793971460099859871823970986660458775871984298463970841631906447581117969555357439411723305352456060106914331946240938191545551406175145495437305345493575415968353642021172991074089838464788552779369182883788841744507592164782610571886453355128852933968656272061510274134895166001616042091782610761547396534017019067005476984761480794643886334666345053317673033725769375364147347178506282359640193362617194503789804171063781445763659755747278494218851053542385052747035860804097204068197565765722527192250443161188067187193591017091979982610140298773930023228931548403846006221184420832213071629132292369766741884402286601942176671790283702758556837055320941806897360015858619464783371870431689126703610874416359347650964971821961560123445790566199431090614806689234008414258133769026718474372866688038617352193269475884513687312864616302698342092700853269042185474928900525966481631781532472592343873604928758614837629820585165649266692508757944304267520640786895719957697665204959365986586383899728939626393402822911389412403955518282108714820722579830135726951434378141540875309242588410334072864153721198060614502987485222017961577047595434470088474421552634230478273937304279804066806266372211472058064040197227313342421918651376569528659115643973842263897882442173494893265168736227727524011303408385582312578802665291702076365228506467601618544655546666809761148551725510155232954510518908553686601003209062894607799361497516667373802400907702007924862931359439660959120758606205605499375962375885849689657908167174605731519317721347406635127511019736035406202466023718769133293899384934171148922096422661109869150878142354103769480814578339520050589216927304597854129276675060135881722178031693270025656639469983991524306733463831059228872963569259711743264572275918022034596267040820141832741363516107702033760166186705974090730094465317794669316480353414864872447079029130648864504169236040905066117919508433934511424948255852129363277719126870722760086366996503392918447196797387781297160399553136175316063878881423724065431972694301121878293106947363941715613648794848657552672832481254038881426834400658231228281323823205004429144809375198109845968082156189262499910936747176099768866800222483197777036673887566919857957958705696499551350954672953299336896186887995131485762567580143698530757902216343778218818458608713516605190650125209764959876285696982418874086176987743810629437007750690518825165599135802600235327955793153854480868597668907514983275537772305963409751784057811709809917012247409747549797968951704998720850195982645713052524034455089714568631506859079427698175414406971393161727101062708135029433321447510825456377252987258655837740697841770466996690096210571502193590126546360984922554442639233133443956340411700954208985695453280724660400767500372550784380592490987793454984228375933254572385258131617138887088544585376133987754239765789133659562339965297694839871276741462009090731473378500372973202680896489944013174667324411611030121189467864418163705074488587492782042482986279212093911983527504273256242717928889767249185705174278676894902178098541584585816773599065424874561643552876753873992542693297567366933127820327050345494080306164705826441913203614697913580388388942667902526177081473471901791877500318707966369495629965999867584586781059276171697325555785968883011719720306654322486256825669961130696061514185532266296065205877130406012806995166551746916035219441044125612693070012594190804240081049041602109207921881808888324260634175812412222907700122019078473154079247378844574493498208867429986160543506879888507110022827442015317264650439949151941045132758669651851320125469882616036623094138416813337329740634350858319388812841638128107141529246557541484892416001778584618843188818358379929808633143528420246317955745858097833990742402214624617189601439798141807460860107380923151379341431729985331721254803678621052962318929985563406412586910648848873387869420220163645922017595550809574216085346519537159578069751832766721960664352938503368663671537590262468344775943605932675527283849262721308272342827653339864257315376895976023238502307493524391700794424626027465739365968005503154242157807142728325027025023990479121806348250760348437288544896117177067692328398310808609683889037675187204948692328074413643281130417417381585736113032384538735281254327187147511439737163753197910921307551204829841716959423924650270761606206532476176125692194729529843141845978617984058589798958118643718767544811060773203367941787546386822901490015040674664780657439273439572079708014914168524388655501760638154900397058588150058896257652959497229641125779236866278096386361116780815277862275684407884896217845736204718986089917954885649255011302686383700834583004827676966304279045613955066858223274022835738741338025995274794284480911159187942349623684468642865055509719982779196962755511804492395208241785823663362599627066688804072156078705261953159032116296568591116585724910901334848339774889219358560606122259885895020643184834546794477514402537119033379154246444644008459573579823506766630090529424983806715205334133051461921757444277806095720999741768034236441520763194704620474847508278876389699757076799847680652892613810779446995677648813826686962389600467971479620915575813976513251257681884265064082365268294503747473924096174955685573217548886041026245499797079944747735550934555725064853768605739282986266018467241777613494388690544145824701250987514299737600072152593927833801048289009786654093005350861880599492012038110136613474693075049006485749203189864684294458081725318177811860462646494268897906882759843031316639523586832222477279716658403625971175552785423612843915620066194136602985905536783889447896703168196114307687986472524420619516870383088754807462220475276736272949377802713970821992354780275185856805036180098167450452682691832946518034386761657641228302360716995901857947825718424977966714102104653403028446791957581440564236854477887575773142481138768383451672413529537803818417751167701251052274193399484578706602884365042467152905066793544481429407932379362443347336960617777375640781195380514348208258211152400862853719218399095570865548717444603921906391932850980454873082207765493429858920888862600091134121567328993771517284074811660568709752396816485385053934233598764947636807203442990995454571748900441594473598031406504255323924357115916768439053903948811713837966175329434811794246178891690458774417643424397303622879512187751915652078967249350750949409182541144298137046656098583832619516914278428711825536428048210811164712529736109750546955748631880145538257040520873790110199963348481699808037801259363945629611301485372941146203783978226344935044789835214273015045529875181220374360513424611299601897977457545653243302567973053295087130575956021873150931999618722999222960652632431438568036680216984776345804671332083319322779091548270038558836341738411943370072616953684553087101468956932751250127017027796738764686895709641383170044798220789704066933922909737404614759310340285781546225153285713450502941536432472487941083317997630878794537257541000501841215598184362879146737787253454659386657434508502451260005075062951433786747705788577006031945382992056543311441368000737815838345020939479133114553786900526301157077459820244484700069516015755578229049285813452833000755196496462657255293189151267831106222718660482718087747574111522415007608475696070138607238739611998158044802391245090180119702787532233506597442875819987226765892755976166228709315607257211705386658980113326059606159149204231274415621184797143361081739629430638373479090531403100154561468565196346417758300711416950723811385486275444768039241615562464314285221718425706725111217795893574796937476897208842237071589947085944906718763810014584837931530055595781699646268588436735628239951504163150918112095802828283040870805425186058798731985259366561903906210063929136497955384612009894554927493836852269550843421039415738481291067239614596982109233380250175463728098039730297005676655796661326492104655535068106993840484415699917135653852598474250376278880577447898011306858995629956054319273027628122564900923904680422582597796399103302848990607485888491179285254801214556403172424519149798299542877278212881283285997434818168405301055886063769283552958789839732832977425341866621525291976573236355942038620758697161904121644832520626056659978284619238535478895800078772366857144911512528335692421054532913867040745142178707410012722525364620337270674728589958760237006807023475764671449344680425283452147912610669266309266111965774852469531666322617946399279238727590819907018583147481345609268491797695716244425612824346143995781492987967158576715012967141893595305114341630618427169876397500820441095163134442458871847529492882345774414926651043978158586431186140820374516961512510279585625371296777097979164168606469826573120233995320920851582048558599239169944023370402976427725621378661329785978786822834937871771042637773105691713394139507410549151642066643840484380646213141419812841383968020791133699340424121259296457077682127089986861017439055080352040461091311838282895561349133052403610758625716562664957239928703091370336173210488675544927888264907790010257700527192831927972592349046665378219136302957802230543816125367609377043780233440210284340065697198460994971757247574488006712855988507401924497671420312634735305611553882766958652939245026907399791988990921329633887948581449555544508112249256215739389680030000059509508357933449669390211128112152648938804402660233609391026855355198044103945315397523572298662198219494236337606395767983399998866056049620921859130271801628277345207656687806267446113742203773359670309093902032162161751284603658200194597150074022234922492286095855782763611981264225775501816593407198452042456451128622007151057370454640329344270749167738016347358753509806243191460533716160363927574671173475230611630534171014028133663658215609367613200836377728547203314466815402119562202223915468391004156193397513609303963054572681589968493509157283877545936568309915699372002568818821782965369685058069429312119603616535268070513497934818362476259223310511680229644675072624646010325486050870905141125039732102736392508889515487362127559806244022783628080238291231829280699650718735460835860753517004517025075620339460785043303820851834087721393981511639901490297284614548574561101311397337199861729207601166140840925220080968065715092526257782123837294363233405550726749829501866645254920318082789641659490666918439471837614937885156781066005910410057698349056504852893636794953876311532178715519483650933660179673682763810465081676125434990109996845612691807039951906716789445303736742826876720141508563787487796829679513976316506754537207027706376159804683905259034012204923231036406073008481085277669070339231476970523516548270084357404963524201257380377264041638317134298649195740618883659701456215543804746168260437794802811709059975747277909472430399312389738352010580472329633137041596392746560044024946886912525768337724978488451496934946186164560755339783658805241374557912476874559101307042720140038800079549196237342787596268041178915565401639357226707657385431985007591426835360693995434895403245378947244206197772605822024758805485530110000460003383085182501535859693244246752144596543298479309723405400460994520566989783495994790492943013026882277546353609941307597453118807625551584644512860868554000742591888961512088861784018226423153552972586727036411196173385369135589362497410779234885533398444903785394299727455340897460922702632589206310193323849227208345177747684751462735043096956660756713549991131947590027438278942701341784675794167251573980938071638878194793388737481057263213719177756069891983527624601987653303542541358355358847067568826141260918622086756540326823802236375022711587166545612310123563827156882174937829720426132078024414261380777748681783754783295364750491734631383550521367229205243997290563578903415595149075349201528399446618779487227502799306781165627845242285426336863329123617126866651240138847047737918128570105527769312879927460466492646307358073728063828176214994311684513984962411616393352882838273242796001431514638791186787293381202069215148763192360112797414080259150387857139046943985909450638345212991516944936008452838320096942827732892791849147722108726259915268214102510780992645267418819544415596972749260868664438238252098120040239899780466417043436363211745899451825592088019277801790150195413542876077316501726502022578069040459484763474025302092933109785843875862814132295889547601112877101192710950399640181905079500635097178903501863447997489881988731300481761080862864891595665072630119518218408557221433300055631644895163030691520635145741077173122027162292531352624063076418345925583851347866062260271933897935845134735339900747299305370077316254555216460854999701374886273873803257559344097306390404530857495431039293182672286699125289239121432264640723316532079456475685020630152022330049326975463708614544917689005323364089864882697701197278425594045316918936471413433619254594852622073958369441963949187404118923931508318032816292296140504802652858623663769173703821468503375723280717361907219868948265951194696928639145819127523678149778950561236142317762923118270499080916608064450079406741937680478915780971810728119103536113057957506780625548790427552926079495284728772385655042863967758842714198454313820704225330264267900019349739796716153902082715574436967431805822822874665690934057280572568844659740046539698485218962654859880138951595703571878242057817858670430060458185149608831195711825478900462349708767981556767760900373841910306701639898327323494556303209414550631424341132444545819434912166336934463295051999318022646350265072647519143830346461406443663262601130670353663804739782894023605027258500565285638664303699885465125375412685365140555133286700352602669081600937762624421311043356710045566904677811171355522479302619240289523305484371182220076790205927557973025422128572203306637556803436266394114303589319930028203765609311663778540944447766081295002074982183252420083351623538315286881609073046990735977091137596049610872512308536080157594490488676481910957316740985960179810710092480040660060156050748889740421037777447379678194565976424372082757642216647567016103461656318475616966729427173810667551489477733539737934048583295550498122974613113741643932175083497355400707817837956610780096212571595135915456566890347671745393590400819109974059690001085565668972730173628733287457777515021620240961263080462693040357016972061563337897788315406882582050073248567246696358406231573507181848519430573221300460586422941588114989273961103761071675654707723950500792955602657814458168900715499027403014727516685192897273228273967573875932270805451357438653060153707078882900622538740788903956631169519876059193257668790264525233938341558357242890834789240021685715325811968091602249600337711671774162148100377455009191233947701167275181780431072336755771643593256831921543232609013020042577275122975744279357911571105962329171562691949845731745577551615264769128233517171504329782574040831504931953529973186931350700882172781215053693682568763864800304436551250000586093209339955955225575776462697521644821477358076996496373010320282927277963661175323712249613115305504436617728937268678360224836937183537782311365402570683400313417631625570595693116864961642741183212626393161891643242973247188484187792257904839977923415782424418394641370617698798362139613789665648299846223715748317704174244978510387890650679217461303980247316743536315135154961010066024435251640549453074287295709533369817544902638043391114914564079469975850306254509841119226648784393367291455819741160602642905690150006253509161178298915397523432699626612933199775255578102777763004864520934265596517641491545546666153862448410801565825792291951532182663609494542526714335074843892425714820069894697817247181735098601868213076238099705522972417843503914913126631379972609352116521924001126415822248190157744669976869652887432454770941942587259760015880447709471746238200566671684621509151310329736281935424934416370401160690795506520466489686149865903649045474743306792520691789036874588498003576355515273053232974611146250918862109617172652940650882796779792048935152504976279083998690579500531577771516875898166192986693379761370735168617276560363028146057011146600582475457907959750218888348301217015768230472042882012110508058428878557726277852063260340105370062128297136447594606836165015402781857911251818404978932175093770612403816640198807240550747138453863833629242816727164981498791086397162452332034346437767274404826307580542194771978862440179772092081384805423806768284037854235561996538993407007731689630874327010949260363037577085237487658303405309696273197755484966821079371110636348439740709581612348790597357738787317927952635075053393376871703498865125457309977706165937271588237439106453027225304491907874758609829591522160076481758722793722313686370791841531046178020302444366974837639009897131651103019442173666526152494196883193923529743713919146808443743339536859457765980352616278576632720027734131376977723505739524300044518634814135088687123951232166589672609204953789852038687560572870120379370188129837636357023271435909256936313360548306279720439498443230210739200267187894321201261504391268205082335873530644376341028797529195681396285096674729348016365422978591739232918978959388798248014541059942101962881870852155873648499454788997427590635399969142929567561095986911533258389071960360044757018726947563821558083057545499266853580700837940202824706670663006639676947369802572424598798805577815028678953466946868250646157997336845658858801572418140862795422192021214675085131926906941017292982202453771022026064217055613835359645225851929800160122999590281104072790654240451778412518377146884619731941861282628873851465266247738676785726761671546609255913625060826743043003425220958988268981963514495295218602638315846634829143675500686419659362141891277577246176718989798042590316291150076281807876753455994943218278751207174949457105517511372514237692473396375499307353474463664063470782773765811679430290312825987149293945721547700527177437085834272595568867510876333583611284498529083444438992880942205818923824881205760205454010641450825614017308594017771780102390456690998054450736682836523816075511908400861110624398371161927839200670952731343196081030174258233703159463611847590438237053629320042917244287960350172967627698851774025623632416476102476540558164862923304782176811792299131080840799447821300165617556799360972392587921606247290390304950045918548065856148026932333873459446770972841504694532190333825733136532727957296246428827231836918638365206938978671626339140055237422629357428024601327278650878852127182513699894681414879118589004103490034959481006173924398282353443399507492132384500259806934952990149075614003957396184689430453229703103716800094157470606469607570380185663221114209654468288594416186828035502215692886236836407234985318095001354725333620474540036813320878184978677431688276297260831693957949232999720607592647811759699649206296376429863244425251920444575270578419369719565166015082138629799731756302505488121666016993372419517885038458836247503912377738103961912157839059448099150706127512570062986623476268218967967150133516218863192068559241345213788672962551398209204418569403384435698815365620521645098965710204837139863444086174943185328745695055992413827019233016604110537824124167903091182192333854674216940909560358669880774466156017481415046059818666114799312508231093057704055321411379722889029165366701621418964795829578138142929023683926385914118347249884811142950027430774260202330632099417976451957967766124652893495078795834856640458409693661535894707340057665294870470046855901300927466231629298123963660798144776993956949770053892880439502808635151842217537099675505206349123320339033146305643557750308047474588853446393773650555470547289450308622464143961601295135278290808322705701288177213402813984144331781328982890057920840062915531289157202305667540776092888779793423107519443253178526600244574502996014182108400774081726213572061587983690480158119823915329307193005319630724419700902405379505082413525141092958195896573459022559911121244105588224753701041782833093399453969092054391886457597661699793926577470159231657237503711069678420617374204075921659636150289566767545500894172178382111886709679408809858985235927387010051958324181142645445696556645696018454546609031512144026868661105105970937325783995392014138107161547871596202142298794700982949731576412462840026742223549594746533454723282747819327818941108515797131010599151447331385408652847988023693314572419707516315894356826416091577735994036272279292657518337203461523268460072825799830045192638253798155815504720253205526657988119018891323496842820573656450284521504634504094412649796836496288124034808376115787240136657050745728806830854770240613895682546069888138199464018157637019282927612478891630260999256488101012367419744378822550255466751510364083040420736832259660312964090951502912784712882498702346987332841173814542344496380775002115347451593241591730719983375739663303314285392846965348751457585952467924392782745602810709678975011354782338588513412222655093729654632231767977594140612189963519199819929832165943030408558819034903302033370494287886920972534503373600289344593561045132017289532849101365598927490405076852228887295764776646257296857419707841750173216384666489777976640346316828815775313977209683013146451496330438460216780853412290472125695507623085964819126221701579412432391805987722481010465497120579944965284235878858046494328072388045631593123822536463165393709850168709532021897448189500270493158409415754262557711595169555109884849704460917057313506267482984038031776126924458158836698119444033784754581010198453300038177172755103083040264099439010904777234260970657614815302924672345203745888646544214754746826707326216226755025103180942981097651083999233606978471610121630233350002227732863103707319700365834641003847623655890770123727745717524072367708565609378842000098271896250381249641691120541450158471980849053760880240663197453619850839554973222680093179385491856590236676400509348766170979383497530652953116389641781973842097291616539750282292287985889532632361640585993140540772914005811244792317445816186193165461182432930024719198176750409348833350665643895677023672479985110199307495654341435514729739302898422221236867918173490564598133002938067338360429153951867864622941752659318393286827122921766300596310232460501445531839420358898882074825677748043981291537160158033283958514879164917087050262044087045033152923813986134294712504641242930200527788328380260876233750091774760827746207327210307911086856786623422130139202102010419913569109529682187694962003001122770860993698734218655235908733132161015650748973715709711470204047336302865743411034116904806926160110277393928773573031873791179222926209985985586487104961900242942391161550944225543790810791615439014467577965274836925693915008988859025922851951684588742304944564211340663151466613803378177853726184558601626784068509753895672804174819167725349107222317770836735354678825306325923707314307464145910200324444241988812822874114477619579371637986899968535749025775128605129501098269407699281024106143150773095561220622456682423302726758875068754658047173151561787164824208504109233405701349354957821085478495704315573101112060150194187861305058262665096720292997560400269058201981982079242985606599183195700877076730406549033747407710027505450070899114480131742759602507635469411383370233247679872889916560277373077906216935480055923581738444241013842160407887596828865778725349316303093136723637820329078590158874448177935453896277174077342159362319295058701388099370480408102375191331193126624970462837271303540707177679316527219928080843062433791929482082080431326195130016672571137592737999568120296433993010689521511378083076953784502875380916927526027930728961061262669412065537768116079658949307590709148228280773520606958725046306042132806013407369640584559938940350881513812140406260788070802685379267547721389104276967727267970746579109264003785388478417813382737648791153107784503163409514623741368017903748076576602045842707189849855178651294859659143293116311355483198828365564409800706727472383002927898449238200707117288844711705189696534612142449381750384851237855931685124600717829081558590633237560562410929101996338625674914582578889430435314483738343299530377754136728457452393310418196425099858871183021781788516318926391010401582937281382303868153260204584743398869499781151723798427009099939874092269119173449194714858672054705987630607412866562373570362657829666999252131136403982903299590855071273225642994907690723107994429927056113746343742787225080852132050813944422591350420204592962631857235749245434768573504212381263228723022690414270405890837154656946156645470292215454079705314175683284851573167444069140355008891191835214746512357534033067158652450276701573519619732946281830383764099796409660297482588924623461178020974932425759036333872931022941886933865306785833681277908023219900365456445883420179618460370084261973339549261960200689959769334254798695563091862080667455271787733961938049301103209527315439621655610623143380240653859411383926665371846249534923517163850180760390600944929055561797691867807875377714801740158174099995644435668351036926159196268556728360742640902611824585825980436034578883012161178728525214935148002787760673650395190272322123096403586676167833560123733556278215449438806018257902798344265630926129437680891927898767396880903377554546522600102712488797995070738227720039312223464673209597047205950198448696807155060637681029034612892139691466514685237175025115966159345667760022633097299368104352707632176129487299971689559172081724250680172935267052033373541689141572505463082484497614145169196264032673678410547660197847662112509789092169737297815836571107681879871069359175764452387500950264901318230962298546599984380322440668658668374845307959126102824083622078625838791695061098145903692881332947180035685152571849534037184031218543156175843124877253912254835406009587431258120813166125857506922321062359638955018757498074063572137400077147131105252610705014652594982065060913248047872114917331772419661069323226342922538610593594214928150066958897336251221363646575398026018998433000024732719963203708851675662858919795213435069368253768424424720782883575039409984018456846942588897253544365948465152914712326468706962038281692623338968242579522449776538655546402363007916562708383506899735267748709905306345818196956777844338749228613227791514669622199497843639062372489084632641295216631732223794444493353248372282132040872818979329714565316483494077206963094384540224556344862447715328225337927754139102442889545160332588231092989547764437485620544572728513739292130794593957760961442586578903476879254096674089780303111461709443582401618076615692064209195711606575570236394352521770424864323973852930116611413327486449389644537095555708340418348822167551474724890333804282932111411378003903713256847876903274616488587446876864948261055608069624104609026350226534146799527662480855687593240730870233010387818668230128252489174090576371030098932824117560314934756838498629897319563431240280662762629917509493349373377748625345949754143265044444931469696410985892736425092403066129941164581502063219465385988358844005745351944815547162321255315876230662253710006427122817467255273248295371988174556979923507111974843032741230226566903908570620964119155083095980760272502684317207584121300980343203089659367306362398332460034519778138681918791981421401771312056752403497453835361999060113539039972257621548165283645726065531179170598302250562960693149645859955602882183261016423171873930153229750146914758155999683965729453021586590535287873758957927667409282274396696497011629339993734147523706818825195988518915611667550516451456004251866509466102029592041042813674239356170497191758756841799085000477840629640052840796851121599575632544400517348784826327263737097109147988098677702466154127987228689270567055375375087757557970032935716314239774883167588885827354660162096628135692276523625092910710300365771306329942758474362815986885850168068193179249413059825595864804921788110187294968138518628968105288711659025599920584684823265025800294332289981709842685414211961894735481083397513058684344915001349103003642715780607395671362943752217748962798252271140279121491887937744287660601667980834151077637603289692270148336923951889034672506088463053536794835288895274304249302155707498846080490948597810435540158741870953434255482160910288964852927478783725996401017173233980864480018355873105400011943661170392318755693150784775127235186620150954262977361042804016370296920751973913190232585736624949635725526075835434891452910499112887716225609714925938195166455400616796409707890522006607844565218839999915484396960481366483656631281984014512278695527457038572783448470810792178432744459574105082651348956550977234049212315875830112940676390943006155365225944058150823210682435688050896720838560432455695813846962353998104389889377837583479608171720626018330320832450792460467703086775971315279700334749567846738071567402878799481349215531284665235026916768553549854269849241399488505284666879415494292908731872308981669919959448010765636739605799286843399800860112938957145191290237597742459735954554449934915241774804700274677314782287770113256630937174898546877305402817494155509863928175558923582415190139681818405101002972527730249563044111820423291718606736264925371142285510868868035600792696289706185798146589969736455700145192296292721818607507365019572929381717964673738501684167405176669175034132052070751562828096823246962621440512238745648709717547848479798395969406743188680755689609719039695603786650727314056908924163044335097176195096740753322021113909337912136233807494678374622609411127639898854126278695465986029320163662444272769146386520669810259140807935706452618759507562482950091741675990881499376231299591460683749936946096484810946883371879884699470295316100767277863019396032002691832498835484502347966391795997879015883992012926051455675195211473237439216070873591206971539901776328712105834987382871549616859577417709497160398729225870167176494283286361582549413158652861740662452564274408959952515555480962245646873947326358907405303389891226850368525692405506192334829230943421765512564044654149724311515948013843409317721087167142079652172370687073540726939508206421786153167477380432290858228645494839124377317367043787151248511707863466293031920262058155390138191639523693800525444695663995652819223813422238135651890416072972054099554399973420324089585102142121031159537899181614370283049954137226646952407500146508785301701133639473749446149420225016379496306172252930030150962208001643677616122454758563072362073025338108086230504621188451578519352496034960682545512549615122738275612629623362528188174785887326513291215127283021625282427423789711853249204149176962066251909447982089957960499320987897620099049084772721729631816464961362086584622573888145898463754172252304634053600140900222582728597134491729918494178405914135213612239256998917628673638785460705250107893187824291397334668209457488669658096209396597744855666358856262899752689453872903388417126901577893251594584102292860763483193918740133697596813872077287708881624881321868716656453412630590028602695883319077224993080541379239846925320488817670127417111819040722535646444808264952079591783471602227115056085640599444600613157816182764766383982956540000065089117711347722131242114398472253143703529984775370917856375232465861418854517491492134089741268131427813740218570866251149787151060786829065841603733785989740033244115554336023621220242819879383962222192496612885292505355066824022992936296336983327558329193472731596064284282566970351201448108851289612025437884915751092494443299201632846266889521074627160436852964954772193492933791778296402821811845378760849829172021883707572372917293114368011955379960191448438954506363004640236472832603409919528022927909655291885791251062613022907286589312876894941319909321017511823041184493961023931736100129934101055422092119841846887791958389761553775865110084895400975142416325956292772822295273560788531401663839440878274550757622235988618544145252124506114186498709541772607061132661025035739604998418992970728215819867471326190409188754461454602796880185511061012843754333462093791896155059189528866637616826094963809497552981505846042222314423726106419060739724729005516956785963895231877754511663251418623211753758563927406495829969987294118766239834910707682437071310767142444930046179320909450163311267100577257458408934454708956341641545150304015862189503365806865631340408266941753774727282854638832931182909252134250905030471836935985020421442050409143697115176449017318834434263448232534856153480262385942955482237312736551033154796908042055169111463732034227180084051731658717361664879459105071221854170643966288822278553318458350240808615947824859646276123973208954400860293881098248954014164675124589973660489921890795825527844706145213244170692049972254347767516168603053928920106661122370375905249219889072765544443517066956152226262155972387734396008973463690846861908840107012976529739871107484833993718167310110649345868867774588336922516917819249289191542792566497961444905285125405883076906978335297415122462389725409229271932610454690324052440758374496948575806522774212503714735679927791855126261539931402449053382110445441453706631951045011986955059259982249268833081288868589932356426958765548162728011790613379159144393331643327378544156349363200816901245120480639343055133945468644693428554659447860379024736464406868203956475629530621275367126896873859036099218796569795571800645297971425634812600557551015448036992598714274169768069482397951415653652668544111564959618503541709562657896148252231639836324300597016379128393507292521935847123048399500811493755483235163879550376178791158949776116284538849580777793676870933239519828476535342433098264951309950361114687326115874116007727435153813410780948648037745370433118565185933046549725253172282154199866336768075676013013867098757047022928117501256804966964103816575531845697528591578745209838659979606980585721697880091949878288923111845725868370426626955877439007868990545892432466776642948569751212743491749717820240964810351715004502385589324879913852340590581349575833207347257377364895972172548567056842434075609332075888827477172701479187033202407870981027455376839585523623346679481748910202726336608859214458947414111852043874630136008472022048600885370882331426328275189192127250103038631635136511436418691142057651764204853898790891892359602799400924398203357910544954995455950210886298288719332308128901355098212758134471382284662662181881468185482124523454443480436145263701216223976753248411104291215184869008873152872967270275117502011285904901944350164804460785690453784882160271788898783089309365776905498572410888254060983045085027756249539752656471011931283709218560440927259092390517200563136332240368130146512473849235749459782455994919762492727916621638733120606101574315448773807175139148139161739292477552996392323953359096308618926731950284117674003986377414665638115373476586334433052400082202142470825378846729619392021924517451886687650413171984941046405665680480324520049721808875770940685393331260548291701204261056853151664174649968638106171104343695106614243106027812724381080864712661591587009932845498237742614595671650285798578974253607105346378600897697411069277617098719530686745845084535142708927926445059453913577295412714807775878789814381130761945502676192304655723360540309268873670085391324744412423961456952139620071823189554946761540770718388858703723624342211118187462948237203345243622134096060124173739651310971710175130705057643265095319962715275257580814923274540389724643640834563344471150193786179856339040546337054139570102829479117297020260105814890235809149451483881761721901933176323141540102835973792832367053074373419164300092011350412226582273401577255753426634927087157255055194485326319418008609636724162363625340339124833834443457013587002279398148156367067047371644854915543276059477569533620116956923275945007333360522556750150800471290926548783151150737301465787663497069258436889273379306410095408688882864502714010604634382569824584585747767565439215398689539509324781300589501607401780533788078777415163103110933087613812344986438506280845583980924562086068514375104062991704348725503570476645082589203365682069580086265738648154383469768129859661871522279531717050652019013039821617133657376455227571551713687643283564611531755937442686553452172806939471591116985705426870073496873358360434666825068360935702925815350828691622826415125262952687611912202885388692934465691610230434258999281403859633138176543931005421190504112776909760764517382410785364896089356882326852889389618212567479055301922146916814270494237916812732508214688213608455684491959011166592443394218527931380970219136615378672626192107011256603527028911274462800201420853748020084222113414195388268557568562885965248752787102804615121076909876219481009375387041819011695875839524561830751772207318062099678050927313034794114463292238686188757573167700161958903460859818094512574699269296443201136815965324144733456706834632885882483899190143918439088278850187703518794941903108612520587716205902812708578700787753678538584148288535555203565197196409423027845784854725764244853949728185481804316864512121737887316675773533866349565458750843759739667392826152166806324120224687345664780681642812513008171578086916113769295792479121695627732731040926282904826817854951344848958078950381987467811706477575815261584460034212828893150971708318345299081595179973817996148768511337088524213140970129665631149743624613195711521119902157620553567649656643750298877765223421999691714693308649732574930489901422879040757082423276686530097345417234349564375961924180180903883966655551880128959068941146003101303462068979463530254771335808049789280240844779346863144113048595494200401224755939502871714581868179069996121730143337837775945148565828467907022322313433211365247237171238622197667954076926618870397599046066933837008510794045885356350507058852518535395353694529944879133167437444000354806024100324046950555821176886577309886682626927291600231412922389417034797348254151215185813839553638568617439741951060488715627102301531531838919674982508237232986359167422662133855446080281679874884779964949278470936469196859411633057220687000231852283564826044322797121567701087633032739862251868893767087880537631921032885526136454701337942451834038199545510288853090855287753867118464986834040381473749234943866580780745460225678417605498084692065193420542839900416935725819080686400806397311568794609924282126717383008934908544232718104437236174346741621438011807142451846220708528029893135143748670225269776199338078775455316886540924310745910037128459544093075838032325941806873849960922931000561374474691877084541225091256322533665188932726293551401142447604519725110315705743108016109089927901770027518952960687802204555597112808713742897809621863424130483481761020136686184003023875338952668350182217894584854864164342249555821716850560715547374349790136462569315443117843853849689155978962007983307340250286673085140709672766181434724702460299906875075261230038205231966776179046505090554282984984681449538641478796712762636490298939914027899900942166654727254131722791302946747708672705273832422261368588894544726296621482524109168015684280479592723575579731613899896651623583658294489236956854634829646676957098880421449827152937208027367607085806114565486201124572661975357546096164905645292751888789799841775708683035255764395048073848694517795621177092936345365060319516712756508144743297006708582003737488010392764723442144576295810607734265011722673944036964528444714250161841608829223741837964082121505882583774063231293191813501268858627425449123461423572764341928176248294953085154652177369151043569002942327772102170717718922993238521653896650972329711945678174998346899926650905358539318855509587744114209434584746839973176138087958723944522875032401208451886803923498299257269051408015594480623778278282803601801872004369237854184043744394928866293113491852824014539257864062567081864653228414307887438553161422856096429890727942131539336018041048076818014331162960683586188515084048306192727279660999213047232343154641540866134719208304484530644136549685662459938765977164748515595576210460619212828331685421759313965570593015861211086461396247529772974473826620422176798064444228892132896081611507041890801791672591262885257132641470013172903692912140941807575259783661806216966029273111724986755754573944497703898418952158143011551192059056367833081637126597080903693949880366926223777632786166191501642162655552911920155413011423156021481657506117451742559853440581921531822210520947071327519799244275797881203281776897757813262446442492002137869555449296357937030284749510923153446512356111126415085786544550686598250263983936429385079087421070226792165006197896398489096421292208787480718141166030150637050375448243273119154257333316764548278266137590514583054322829203294110626421392274240231750080900467935571482896733668717379924456228604144037533920647160001272129685134044105991164587557928957537916293501675690351365029134015011603770098603778509163601885268756121483267314196878010986065051453179792647236057762321796669790407499084937649755267604227567590537094226733455659713197116869480575885637368878284204298282617762779944283487374488900646321711796935179905943244274391568833966522089022795292675423953960618506441599641010276080813108239374778455455931114869361601109032021287735343480127862891005254317614249839165575524270435763238840367980180876830139421141061060687805958234723641973807888905734327071373860968968172074223469684736480744864999314418931231117155804101017674592765092673913729307152956371166337755411756226332758105289015587960515319813201081788272388995963009032404329338203724787804949882854240415894113790219643757226207089203699903998895792094442188970331048229872689836168865057007967437809792287043151019930563277041114181283424523173626891568459396693052410624546840326325575017021664603325499711673852829053164998732163849859084906556425646358885329915512989686189172319222794465232186001050552818146235750682191098848573529262201311918522231204356816413281729359895940041435231677587416535374371414977506647312358686958279885450564704600617898469006990330355484569914253292423707801850431875881846422434753670601640660340314472718841367445255312953941382531005882786290244135485872744073226168719085330307536475828985008777665931519641140472417356762488043895756035527265880268095464862652794071367925418880567858751693553700892890403407763836362865940059640618463964134492466323331078250898742764207869074145697801230615605061054573596496174186795049791434433257922988592886063251420914698524005490940016224220590051157480570811654120854047991108127117378353323377769924739153704908515430284021137350764188362336162322330145848870397383859571190087689548682486306412350146005467386403625467520144163578767031135174697416715663504867559386864297821833620481507876697626441049914830967593245670073705174827096364045773489431456085362057187505510351081581255797092826267186055555073745489374733039842780263332101531036657972733679119528366024111279972128916599951523978360833988167453329163207521220636845319080806919700263684808747705690320310842377340806735341661987874959550525853223948766911182786943029731770126090029949015903488734795972228077702739190782335866465487157611802093698378888552979368748188939561961462377325316397015300835220196761024094411306335737061583350414896784472262822163909707686875804625824800759113048946414121957350164560736602456578211385821797347014211948066552991565090375129836366539570153131806424111538602280412375269887828881364612425113490875308724464698766260860123520795463395975970172995731249526138968866394781149981127580070461101383854419452269623828732883879933285590202071904708010064763232989405198240069343486551269614753790329139167187381426721321441677148370114693891557278306996510664487163034879800453204707777076384815722275189237643578019244217302788463397875368044513219857861949811742637894905193431352110128557945793468932413009298393055059990387575294438227747845806676094739943338577982623428821783362850315949579497249821780551982093617291727384593520973435482303027531402450406175452166882148917460781204565747435464434718447984590800727738405902733944049062087754950966406649875983178112261620386580063996559179364425254489792622537862011147333686576550542612365549115573736729643925812907332001305756225964782939551375854008857647312729883815852393224617106107310620844228113295163037023407144629764415600261100010404983814409634097241673284940272135760676964197413170435289477749261629698170127172880757954272121668041966552021106678818423098616649216535816232927909978432152563953329472016537969775112359979246265011428361836931192023599228698867420236891194218038312687194377839892945169192101010638536265006419607030522517398056947107749670861860378797073772412922746282755359985589705301539605248259672648443475174513736721207479497421037873989812134259350948446251772017302791763757420533831500755447375423916308928242943072260844712910364910063234965249761092390311740162709619355658446258837008100351301135209759813256736338485509225472015315666703681227887097052275763002719691179166958560092344276623964501413362840713635886761582356546716250835381847864079733721553665786286178615504842422836319835765741104972551078614934415393274233806712981238079060300394225271577217512649682124158521037590542201447329556763545899258241115585058039707612433001274713011682468446118839270438079428421812803967620243558062820100981836228817911413340924656207912834928104878629575150069577877422506158923059857584367150351973365625604591590212034623715380539112989667350305565327413962962961575120786749655070247192349143559641770478653957349011914859880844272346897650862206940620598192329467887260968868187156735994420738966986516649598618908068893769337977585625181501226828274052330722057448511423934986290065884288829653565043502649475466421423726591999521385353210852865529202854725733052647791017214045338784961965016387362531370914317653558254717130212205122834115531886916584459616728563757568141863051446337160041664960281914875478301134686227012878047006475184948331717894099032608812732508229585631584348628142322270840187039514965086744869825581597850485339351871050441720119761647735626839820851142001806566459939509407569071175121821484416949896818989715706481286068084800222566028419963643219340685001073648654168219561900211936545184890728788606466558396802446682852905732329050829549813653653360678178094471282449807140311659307329355983571393555618463887595500532164984719940410064801897044373941133773875053776522107846918247085774387264043489416609328222732840208101021004309991485746696498757545641312468332869089336128588148440391154719843955481543781272779768013435182958181698211256078136678502960736370694083248724342239935342046403244450263556219825838000755531165049313148121420938688836509544738092300438237427687236406981225773294489544293443075366534818095298366650103085052954921730633514312087443909544219858300515109090486650931072723598021583423753865467043088295163553215900944849299484742997738883740378001784830798973092808582805723538170608708233168777158679798263391229247846720229244682313071316698526363462957592214022871277322318988951499121616994832985947100369264791545399435809438254634308379043588330753657299106542562324593509951022849967926461094070505021743644276431370097196019932373658030709764084549592130913876876571147239667724204802206266184939647052467186087388642606479290755852415792353243198124559387815884617225123358760711670247054730609177001664139428581236265713431197630142215883780521038266275801072658432047961418977906041368587028417730318436683989836660052249829089426303535390504126326993415627937945452995708152099755253156862793531736833953143430008038623202141651266137105274332468634324314843961064219463395019860247495185940046154618497869654013900338145214644640160763884289935037203270313183303883941414207515275297079356949433467997153139603267267267121484539899704648108034722151346688385666069344103550362129506266957122552109838962837663910879875746505248536399906929955922417105104037496574850382727123759470498864439262742515400198455349724654072989410805085341640965992683110422934371256962777439806165765219395197242934418054954701444110774770465451379926252504165114924806260533298370080593769939623528536966173010311048047596663725342261906233550536671644238973855851188182584427925677220393658349683099423460268044325028972961215892851014153423738883190585068819112981629702634338050666545239700544810670524996327646364687373608715926610254687738204123994646890624957985528393481636273232527313388691750832742734784850872410948147773177913182967005332172082459735758272591903926154594405560526189006999760600859252993912599291081446836696933965584955005283971725861410443677513509955656984014647372823515752581875210854554625286621712118452331157113690178385477461691596648560909100901096636220348474673566134100834879157328871892303099634691132120242865914422343793638162742544346986639575009091630827397389156946307578473695551219623704924765327252057089229632549507062049435708128574671249480310159993707399156842727680017436502752542680776910223277152466145337804901844024993333613573094446990740950779372581041556534029149525901404663297901886789401353116278234378041004253802852645161430761138780084867501267285543998507713960763476906808588321209476855125598909271180232476977780240761448637341179232328817141751985955972032846661237311796022877728413700323973933864104403930207364248145814343484870844661114638848377241765440018673082634676076175796307804605023523091423603820368163430968007866901368391488825133580579456543257146963907329917424416359669443440183628441710154476908820869245946733046878797016302094078211818092403975500812178197361126358873313389847397509339917956262197998036398395069908446886201350653332830967020702959903302950433718739953911233048519984045080095654327831412172424517238088023426589035381978263232132736373594451296102849094285361679791716982748893465001373088440334229696211583442083043811344319911348053059184276739867143388251128473371343193775145485441367546146629806297251121273021254503756748516801465597204549163558451297941066911495238817233868381095997273299705696197376906048317789997989605263190055927166646748374113149612269567717879785595628133336869862726330041409632051420166984641882043632922889272164941955145999211269564700931822504423310103852810324777525344316555430041929996978009920060362067100892702378513080784800557909600639074902335063760823113910994453259248806274354581353151019725331222285684945552971281122027298572261145513335230574560219409880657124115633736316030244035932719654249378928039059739602392210753051469329963306523271978778791625285348290447176172901405676141102054746136901911054517757958984960797818924076853996962942605167043375185268238501989304199380316997049051455349896660435219999350016784546165350803535187018464406301774549195804891208566598347081588056467833526741413899041697674768028400595241277109456899898968208268984595251013607054028019799124233974630374477812692745044409164495267391029718394235297786014805789830156113119724525389472348706743846869797264279433804283384871490173389559662604924303369252408311800957904545477647740670230458503906809742499811964569284650550202087964563193103342983627606821336201908067804066350875639416997157310565583679354981199868622106840207645594798856658780976878166810124853434469900184940188677324399306483662251080507949919778903265186923991163537063308587716503528341903178711803567973587099190417685583384602576946462354467688846139455821847351558474107516482590801850002160492947402896840469916439993684516062481098376098697885998037908966482202104287220452618504529512765561846231584233369167611045478211566558507717604598276358854312592995289682067919780874283776343968732101842353014409571217456873176578018549716432353195600848815555406098796620622770150359318268930385166686346100030477055248841460890896965183498433707163143424017683134248100490215484445773444436582592292199991671605443769784415192813224652952750912467134494498944963664863094593386880697611519451973952813292059369843707070588854307127559595072227591311939580892504502957986666774720722897595729214449333577905406080094355216412509953680329506576842356787508010560878052871615367183759946705416441758912817051676155029078928396445417368577328770671580288408977092225289697217003546896664523861728087702590639761089549060296565426033470653357236465765012177489158771766094604410306323823307823787910514704342449244988508858430315853106895530913806619103773787748488347148872566813372142317981139751978712112932838362535021645015019454873746916899893047087301030289665579352029983034780322937882593323744237203194850123546662159632033804753982098311774634217209061779825090840036859542468633818032530788726534513330712644823463855069466332055224627266207961111431761243239110483270932046487948990888836462740043987472983816217551596830381945486145759006038007713919222442325034240060960362865218540611601200749163242008385030041867164465295940793130056223150279714965356993323826487356174683578264876497882431412108948183323397059682702766958169454531953332009350730109624445290618422669723876219218882789980178221191216468288632058605268422446826719053531978438749351494869085346970578138147184624331154709035652314860958750799000475714398521136286229415433234437031500663110727428525995140408505456307088491740626728812902999968844474544371311324263894673306241129230531626108484668054232180835788549030348420524063600964118024386194344691051390286784716110811713329712366447228479882235194329531759595932767070656064953479907450848713700140090951452762440993081401420660394197489391922435462739712798754065889623914287840431940999014364163744425232092306543953651776187610100359299533799695763090098501989859336945282405329485094389302644420166469849264554010182907568882747300162028392408408892818530919157128482201935325113280139031118755101690861588312289737929464993779263717025425336808648593047772143563536883680290708526872682484761667224714355358288985919391509160456115315642084685372495595648232821217866040748802589279431619023397590812656615312807353619168240025954978813594984932845131476369086520082254574733482258363991276923407060841262060550130913289116013104094610374709177336912710956516608436409024008125365869944712824619068208035010727390390430242456397087878520184586928282049893417158079478125638153318051402983530464500915966842344313915130940533041475424359032496324578539166215273065515339755802816437708731425291673946670498209854351069768903558072005139348415161517670665060189218343462513714949591896308527801162787358661397278283763910225497808128028099824777980682746312920293470489597073886983124380443512177291510312171766491258586721229076573103785299078724674929884654582327246431583944067496647810359978966143829913182296562703360012333928022268882005382227932384016093244816580453012526415013175408093868035930516880072488057693427548104240736621438861882153761420724702772141371442968600458699350346674196784218024574709768372300030147533101261929692378741058783543802192640592298567605930449689559232380675093250897321716548541763132849503542865156095244282038971789919981742658880462936062900961844013929551954022334631427178072739834309571806894123617110122600175983863272774053817350062067752252478998752741270415796063742446110923526945349455682603534628289856404932092447279198749399622397050360686890483565078602710154446625244756697527616989142068170453955922365790416165069790125463925534039879918321382023814571597741530123180353595640368315567275233785433017986629197267890354802629264340003021511484827479022377277828619740232688057964731981612159312871841477308534480826180900255417469187177533922853221518603870824978633697108466623140644254474122148941836321688737625184886978699324709069076758024220758381165305683711282262768698602227537431018184162863684617854922920507404479918012368056035319803534949193774639656793307661941253825297035979354820986661647852501424515645325685249879227098426904640663326706170936791154429511758274777798871832094627592119954418815935238638019895244033758054867710327517001933902095503945544732334833073603365951900619003971023690995805221728271580917958561570007853094453813949604628340260088742552199478852876281478307215817108874495886373866117712262194659143489248979685159647746886538555635582894713404303938919607627961245256659330001754469867558499326313334945598018781739394975358443637653744488402073631774251627140998256802218022411358528125385978907997206006276587002721068530017260806467145337917150483730625645187183702412269891918235911036776397661588077424706300096846123324631024308773626037477618913697115327405084674140219705331082315845585827001311358446867090378350725159351202198155331903658139415815219714503144270933201300832469122094726559805315800614657602499777636525716349333459610604694517914001187571060374154713444802333721273625717039167326797778867960354386684891048173247393274069298451812226303864375571530719057188499170097705289927418536245864366560639667283339262395308167528421022050756578597639470301759802678425675172192387065553644157166381961719331254600973962224476904047173953735345136874045453317350943309328949066104707860689242595562399747047510811694711802524612275898823781431521755561240671708196828506146480417890973524804471519696554224929380339499257297588027035411804054066751709356908846846761876152792721606760491250408335643731898702284227862189431070268943565015464550251910288370147910093207938447598969533260080051007863700908700510638576714112394892632188972110616116874974090017836705177724465112194597804245745377614839947096986971503324743683907532808208125790302395015869921183392701730188059619450041100302754369228516370426879937893494891628620767758296504709999547185121053557984033309891323303888028872434839674730655477528901827501764855092391118380284325062363838620424980182983310681470220427040139665445043701556057587830640696087623112343718732258575655912254185572613240486825544845676586929716415469244375308631520065165220728966842395574853232463989224490646807379973287936497420538131200975488551506046086371133170072443740990305156394720951183500826364980348587266655616002409518083659563055426680215939260603407966214432198073988642199564242220709192500351178766088108069157860356732494657589710829815120630603150999364050367679501599933952312602458299285286832222336637072065037924633415331318347323433243337207159150353498591590506532856290546306387981786495712507691578315737475004364200576320350216808612332193505886140967296346382236115629379281992018920320250245204519986332988337821440941236419000854535203205195317145285640737870299987593868041287724711460655825238998203931729360856827784503903962788394180426154940948278673846909133742305160461226383546836273234826532007145494580002278416966354057779560871263277181606397177986058966922431193552720840652837663321188839406066858233971427239370989764063350424894044125534383658255132220094629247904574081279104742447511121198958435910060565149995747487992546081656989174915156194421878707474401372534020013900417943540530733392662348996819072901680580597670249273682754735820237714420465954934849701648365826435265660459493367696351248513173189186768487347068298258452040229406092495867711930374480340308251371877216367864950926350583164694731498182662961907053780788647582784004913686393983360938898289892964801755731689882851293576287239831429526979940608209854556923940814082601611125825900065892032510662607340898736299214537669827233296051536809324204817829776179016481003648051811998383362511888933839493567766858603073416856504983207962255519941347334450584494174446985822456275650882014822047245595330057127235347565423339713465377983148487496683076223461181094474879784911015210139668388214228993743066844696306348176369235338768931005647678316833432343653074950501848296625697169075745283250651765215600833360086102757795625667348874988154375923610270248604515912728155736887900587582495476120871197375254593336692375626789803300742099258404984789761988920281420255517503350604929051231444751711674059182671432461347611371440952367950896251430180729718001512983224852497352579966284314021498113626436981273910733772775936483605273275317157897961281953102195814339370726737026768187353971056589077144282151830988314681692982882038180940996294887476985618842115272274230203959998645516548412630703812430367775074349597430417507147500666265380994156244717477875768976217402680897172039832710641587806459758371149444479094066449097245550275372710037486999556398230741697344441509149461062605455102642427581210516102044471034787080361033513747037367023759418229809764288737837151335276512274457771099786859226594408861446396406218238801195965175651880957140220117205046814243358723025939443462029248891772361911075314101113527827497469801462724711207291855276981596120603184079301650456498518519345074888965027413947542655739899293311767938468554852909109613997345305920822605516782037963634146235711963760890644302378394225869761988894580527557448561925391989233236889937763564482993973998490549756017754989744433410356571997116971983392305257026973126373267270499624329589155510556209064950663065237577532196239891479461774514544731724567306029020298658820654437135716342210859966510693272559560905089777330796346929254558557844337000368979486255531081073350590328408745258912786888485581894483462522042256557812725532127289563445177243613833893082139747474956267962598881400496964600943659302201134995109857638473813675136514892500567046191616411601619530254886312136178506888365967169806438525909736965059712244655421197622930111003066482846013985475790055511198215020287735565775340713582201168612124071701901081430247458340021627487976915883930648120912691579036957162468100696600002534163826215514061392601226730836647964026680639852227996978317892498083280105361902827707548459942033161705668539945199116442499351192726071716876028160145456260312359829819041742693370664293883861495598265481649140220681678848123617306697595968656156049294736932213475982179353406345604822917129521175665181340417092602515712945445257721001723220550029693482396642935606421297010565616496031202606610460056083832246381207592081220156926591601424760766893799131777935828809445762014180396977571248906005494075610262935741689458065472228642626421819986209320274375626879188404424937420216920376855525075702043628492631622448730226616060732587600037483081445075283594699551648116316634805598205298316219834757273223577727038000338538414522456497926080595454324684390454909185035764736189675831557054883373288613574019940050365246135207739037415400840963717767511862891171345716644465597822164157317198260003033729377075203444266522479939029924533895459352743052762820900187026082319839402882933759580590332246095764222683445377409985943635763441335049231038879992003219374981665361597491195262484192613608611994552180987373621407533701038470263654573481309528462487959049008623407253740358225185508148045586284270912899672777976961086971476194820842722437719602114710835137899128547849496287356670204527141993637972514838398943764638249933428990618404481625945451634327536776959833786098748247692253561771505607112532982082210662684640994268397923999054205128959897136153906811424877815868630850460643132652217299927259015445328644313104870708517887379704325669763549426205575828196085905168784377882841810343243576179089552786893519238901758405486346617041638391416478914059681589988123088208544143115813611313129218229979042319736970509963350190585031721219406618407471485082356616388124173011561923029218961280177080772521827649512372124279155989428635544584077705133295600960293939538587113389161156422399142329667138721391133717855146841084357252327998736685240018520036016421836158487901942471840719791841188398048392680420932870658480524912362069015623546802607029527818167780316754519445330649131780319570445290856364171986459749879992736347870668491541920559063703452390696716405287343395573940581446758370980774168914722024986365799016521414714816204228238970096328073475957171473708559043985067218405493230468591632789177051944560909855668095203064133023141737196901419643483825230054150212011124404236164626507423459178371703853469090474971332053199657812093461759967112453155991841613384272687511722626405680251255514592780085781401453395146070237575096487563230647433888957561565903422246131631446235245714801955289892577496082725795816341403047248745916717923637520880727126552601607787374069659046550136338684138441795312813425759116096882259710433680370151375582711433435226408193900390197976356812599298789048109806441343453540452562876296842704040335155558526683315345250089289586260490015868024596841531971553040672580093202561971187504503281335741060068274164573338562018577731764261247844303867364576893827077890616068246226303736112745780625579034156671700333876001468163004618978365839966953277016999381542593798490406503595340143619177517752834580955473182840720204227004837284437662116653702976835878139247453417933345410161765680916141920127327037484636494940503091274269829961576588217353377081292843161236199501965522256047954215870676137922484039522621069212046976571272845858414826809958222224972461888951895103610571249487357134811199724218408287911318765814851828006985870829475244104575956105383777789876388316565468565542022304016253797434140854016353781404432401794273435174007239207295731788231639573488216338977216285450897902788086932295587275619736925483240351540506712843259918624663788137524693973388553062444379197576185780580541668150453842839398020857435653089985803858174421962737464120428941533116425439322651226345857832841722272986892015452735826751677937107480938949063559175482032419367132266019562980138171035427489162293689316315183823892028840661434866598703916581217679620694969693380905859354228002332614679842829178221206073754853449659320830302646105209746988800624233187516635499052281901741191751756502406134625707895173285516543239226762676173931804565244909866706479891823011244663936595832761917438586557279314081812648160781443904020873295229470323853658333737204536182469898457371136642618675868175608970373247467319530863575199250307608395964613952799405928190872054381638024117849238667907929997841172972129476781594162756715137829575554401019325698558298336556808600964771288217898758474962577395841015217625751590691772385697424693765475908453907890150592868801985390214479326817094094325981961436865144425204102593235368022354522803680190326157614942164599618234035055782676684153675578947727978881155451443796427918882328763061172737992745080677636881561393937406575138366103126038272448915465166271823559733747664122682719801469293575313377085406679044755012218904888576169436541748761258726336565773792456399923223449982520041059014162306717190423927419909391975841079056342620408525996557951939826630711200674473708044402472916013513864788551815827967755499350996967756846842951261681872580795325574719336394366401076806167317346783254526454497846370335492101336841521671046016183489360950880949152147428211012665114591301369371085922381797707716529505311758667599043823221062316924578057520628999858988340817190748722541297327039478905015107974006674935909970177574803444779171222224481298783813612656631966597556294812684854471310825187824927940834073237647799085451880876734103532074128512103781939737562961563309210713018740404680522903049804870593451235591109165880406046961371314869133997580352215499310431801208707744967467314603994122043752489843565293299730520313558219759006258692123872730575094205966828297035229447253417594535736494056648034304298951670003186640770446774595874827318763117027066600833667653204248744530407741283799592928841230551532376713812076732796075587149558213004381778710957764307153929997385927134249281551156409660160815579134979749016111742003836536631025937401617364097711507603570530421553041594198728708251281788528176153587427544167280207486254702776133455368536853052760600922312320295821896735869118847705384067375019950094871907281154698809527108289480161854838062794354435204112302293297440142382133189103656174816023882066954482156155118660233402444037381083003587303958752074635865126810644701079004605316001161489041558839110583527620617010020106915063155625405795229752074694720648356109460296236621736156792403972138301795683187766178468952589529698563454281280219721153872338986606073028778424157999539868901005123029961643026202904983460935938173760047961957863912211758503355679605180167142320639673897833835018922407341777235663103490883294942953176743735820492680124608731377185001632504723242304374556822604894228453507262067143595874280328551451996690511384927328555022289962684148639759677226952958882358954631644788750266901885012517947036272088833113503554883865778124326528508538457966566277210551067134682887884876105935583610981121013081675167130582709129221456950654186670937087730962451238385167451254125781001060707828843491873814881512970579498240548293718170967463127372253914302269447382702827540544761671494327838550553955070722597976219049901123784227279892676946358257828452612203684813228329374865341259201743544556124846549152595407390110881961296609345508478006776702800109879352881873692341831574205479513186074497288689290511065994850070891423446602943258316550229265991953251845253882701371247650298442933765366528612613681953802825951288984073192936505183847046416682919673862478787836823343864020660256028288849285463120735641203618410880866911282327917926001701904316384605599681173784295317032011158286513298302071671941057066680816000562196164722459727130584516108664128779692642077694049943252337630000483629845458175746358279911399736233489798917145757490315448892789390854989177947552027064088027879932225736164172409217259791192006664523000336649235742434725342283709615236222365629292576686935278208000370667695088502134638723147283013888226407951630949429396224581986943559656266484548959541514511984886518648656771727755150974452442845787456083092526540911764454142496815127158170296516879119425664790680501280025987418088819697351003106998671852976424037996684593060782771088825340098880685247511296531437626454888808080070012490580839661353262204929867219002744063291817682912912413614467543907218887527837637410466423655667096021424235142466221361509140475717844365509823084774258345094532997169017832838445665116658017817021056782163747641560327798071514378982548751881625131792046568148726985463818347767999615620734328175118072587051213559741821867544290008201667723681685742049645466322657011416903926720145426975366913383521128849201210575509757756674074041449051992685403555299752380758212301818198686635092823887989105338165276701873839573500862384209372826627287128690351478477815396057943704752653089326608424873446347558900971983987274212317557207832539653957110613946612160011797030219043870983747111385555182114599065024211083564875791679462516330845030429965804400864357850982568618277580249394796387524023090914419669272250661054139005540545372564532232967593809030056209273777232004718244314405101667654426103956384141932137861480292381331467889226584506573452614284203846360031134989227314535329609581255150559395455206964541650564335001527894188979788976001289182432930636338033038565947404187746305432860508293192664046674214138695912528393288366520700576383673757743571126874338544574120068126363165940499425127714781976344519784874679133504721961672314709224610478737984163491374413598687979051904805505494884336034021676672062270719182812069582988222524159409218779403087583145907637103694864903213201220867943610551458081482710184533499220584761486460462069732889221395971982095107857875646887889470872227518802941236646196671349867062762458315735041946825664085799659316272745683580161699953159089571905788252513119720615761571191519651004020152444190992508559550346548232916028969466085923859544108457988409742234701617291268829763865548580002831523599473165108293390754787003544929169849450961159851830963358089000320136507620757863408338456402342316428594242703349503193873906195764972667381600770022366493944400706202317422197280912472148984904056770183736821905275085345448094427232140911405729855718567986316186301256125959376990482093894509301276116778440050033890189720408269044603325882129062046018443376902798894788355875438394081685203629733679725651194051164193683460716626766388732231933278876622243416591257943535161372697065709923474065377939488003432886152121368144385384696044822895026725095960146598624970576876113365941481456338527103573198670062363229803369724186964047033570084503401126826580078912553529279271438606004914046390387488559989084740233768711724821815006105445002470703416117797845780067715502976216304126382647077172253900269163519874155726721161084440075438422260393933428190673091226832186629887647512955771675340806451365881178340560479386917271491050308654272762891206371868735425124606925717288137469729645370920425761881085777066507551837889906017671586619977025583007268286911255287324942654321956250367349344569107624227625390760198155123023231834863650473712728480822744466284862705643058880939627227098756117458130394514923172984692657377809099448458289942479976603473218852387173363958875290024211517889120899402269226363595573002625140115027250807378386112126511662827324373287450152572282888894171477518943979443077469359852347609508014668403748860509554447463697655713876018988444497798101999847179972632615127604337117333292110643444668824417274067615011182336911418636805939904554223961072808890855200074247210416791568419729011946941107856368423102096232023486558077220585196049349603996046001837034946225193689159116719708606406960152273546229886093312197214081377344310868703358889914214614073740687646628297343200121443536137986457789571471271260201648504598271141756153158401055936632660797066668479700148116388097839321360541158948640815716065640792311865507593486758115613241609450833715595835456092528879738344593192886725009238420627081032713560461055216400711302133351993732956537056711009288984564317916722126724174294128023633361288051314958452473757625741032960022593974442969307889729762741284790809318110748071650269414808035553490085723440883671483883149358528370475280354934641761166694530964456412869466992713572835673484187009349333560051936432364979137493910518337623181916316660215880863441718871152038568349489971334231002999742675371558742277040631451658875641597481002689997156700987538053346353501972353528058953936532428446677551304739577009278923026580362787607395697948920705409338688081573795995894173418952763163761904927796739909566644912554682934825376540219398989771021153920995833366930578181060962281465663205939924720915229351509818223062232975498899715563528764298054183194216657777838186285712360706569529539556556799865459776548815648360577063246793447424326695631585795615885642319581311004694473197087212524142913051188415291479387915795594975464591699688808410386578060269146397148051730931408047260940641141130180472892627549451242765214825213040901845499247335443721282320230172371866980111069505194544167862389534648874819572784274895955759196887943630160134694916286662315325762388609928187122552641556421090368344016727599831458653642928399827388734263291547131489966838016480910403980733435910647295450055528607664312810439425134466213749729323874776596522765212363988150645594686409473554882360873430384036509832249485811813454453801119144266016610919580649707991053095146676297884727533602987736363350983950967927232577745625647347524230214165434843868447539495718319660641076422886108890893389392526943353073592421270024979868305797722175788692448056144301798654047059317783618807332373619596855387683040226587211602099086417471711158283604366403887978450139104986749666784013741090520207446810161915856369415505859672510602096783276033828249402046855881897345847539674822681103860822578235530207091542637102065056816075396211124978728235131865631914091689969619920484702158288115551439639874718462121326355502247232303842357482174097439138306119525334947744832130183417954814732989331850567659938958495049277357903660143802246410459990264698096349618524958380161908179179384060335079628314919044372760837664899167720971014345763891805240360119869313084369025677833108532025862663695748754195785511281459828477339624139302051313936607246219862311900672262610495690504565152548165714694999034506004386488529390793203780239324369885238748693280764959651138707268761801066395487916196439984521259538373283941480709273160014962896007174948267642419447612990261365856196642332282666407355704719817014705427581843073081340326743475943442329748146632519762037013285930400674693835209356519526424073650545261292871934840504602920977122183545050090221914520030845725840929055861003921704915700174646376832157666522009908125013665484842981754720252196795190526289200928572316068105143294556945657608822423263353750978005141008348331991377728569620967343547933734249686316214373106443685890699466055992914432483116102636710666293013019257663229048241352776570021084900482141597513175250783816933459787038041706621124177427628317857873754026899339112182396632915996484870302008824301483878122039393741965712386979814122585892700412434841187718010623163340859936623640597980835160467578946661082132562258656026058683545215309286385452836992667205888749630334020099332320344653119663507579005441525463164049690947719863790261355501944463239643037487570652714091709058219985246777765384585059818346902697071754611751225614990607490601722247066032066365645866471970283295806245498971952466072623862083439861070560041792869117654280287065018522376354480661061519746726533191724571149015636479326596895282182931701694129708015409009880228771725648254838290539720980140952314467870002037840918002447202985901861592321128027060969083089429675151581728992915276985791396807908258393052689478528532671246287724711293332678075466522990282450794230361816049687368258177894544547253940494061292841275589475772614316616637541930401058273345868755902769562662359422847195730624256134142859099427699346664380057334857548033658764322692837115942137745229071892161969644917256189136593562606739687145025192082517740604518466291775711267049449023613536172826584874388628950581441301116942598944715551681489949862257545773352773476187972124985204981982436003041315748106175928597520114450857769684489494456263761131611753410138737192481273518528536567613286785667002540503134223206365235547827943923568187904746942409204698080741439754077257488923815992546253447216892306417231911803322432916480203892908780100569459721043209328052907199622531586951113386092421914127612633875518187171158058423660326339926822079349315153225717506441102912975494624108588083817523701172121943621031789486003342928155618321303964912920371642716012180697515139577178212773548200740464051493578310291512138822273029196341307280864952158122002856220735241615519415912789522176955151047306756152071987016629860905627721993261845573205416815085590493721322291884359200353207061864702497961410160581770363724818180612279796902300288279847528832738410615745368674742846124573269147129200687977455630441581928641636882594579602379893050467187232440235637472949186431918869253220243065263846470780448997331029255074259008289885210336901347958806058915391424460446992253202600996664825895714503507485605543992619215630611937559992146835978610132371377909367739132265521366282336968571405931464306121687069973190590724022535237451916248376890928512918119667900357167230326654339539859429416777361123594878662182098391527880539588360684516200775748779501310626125406010703702169573205036465865669630952245423335661841955267209707737471674925627798589576311603375668672355126491052201464797285719715631559293379212122608865941714028891950137979261137881054805451586952796755666956139510989255299175730881160404479135513161301778746394743640281052370440062756440508634010099373910872828079918037960857631356157068588192824075443401220211990048315913494547915980087072591257037153511840282207498755626724653009454352564353375851700455183054782136027435527473643606855975649254768472699385282651225255344266638626414210418750497147945577134671629601521244082005288136503060144503310529298176433253395623473328133542381455646542336749909700471649383961690685793379930024785048875728706232756127078449572578900076671031867802490926203537874730528743733023257220540272463566954226721235257979625776767139754455764145775461393511704642206070289269547088715331546955922695761241518777051826647801612633311912647520145723644364278136789564056267187924915097042900004877538793799818651347540344134470754619394697188001655925407749985940024692549687510363382636333128074984805044974551620962286489284657136537119512881654766046642591964529876562819917971306816853752334560102644559775248809569368746850052725646382007341300255349962325251219925228239894010101840997885209417106971271881645592002180576971200174699792595826531836706653723360836106519503150837231125203407873592447842564995012860364351832767338787062129023423239102159967456326844839083508785937188648019584358817497415668177174086015804022624741851154640712235562475681838572694578289503374260543154440551536448964919037619665229034628254244238481949163819442732817172631699018061732975957071204453625041658904545498944691587301515192696479172519335785281271834657356648130746878632105130743473451106531831647729849988046704929660316471578557350807623842660178314181696041225839632219722881526698306270864123992914160877270843059791928521203370137205042157463851890498591085341000826659179582267886730527650533891478747192206203277744147271567703011862744964791474096618824753636486817839080131572803864091501763745596952775118430894971325236755680554211514773785032105897958376817200407447403215463235121858382619242304283408090805857270146365299917253878727717719043809454545302466384867272585485302698272181869738785145111002237660600961432186333559115556748683806698120260087604371745850080110042656443970748687259910872170134559089894114377910338711629119543865233009121549367797258530378311429676039089150466403580823506140874612008152431455332776305190495793881624308332999683965520528203531232941310844554716740785743320112243105876356258671225978128486431268852388669511218393698112516768568354664041758104428202320219660188985254961227655446953716872007646645465784323444777821529878337157592792069216766484808610193551618157104189456444113529747478799188768956348361058283244682887472617355764867348103747635201427801154536361235596475350942452710794606942923659531153957269661736510608863905692007553724823936896118089742023048564007358235634386328375306325150503250068066652704076023555663241067820387253684706305153785029566488944767130414981595601143005206626060527877902394907794484351087308389164427355389429285151741889710719754618174441341871992825495850526959469978862832890828818398758126858401945812415667562362824111816973555554508442603185532340434008359324551830517734427360342990199514488047400765235374892111819313683977189315211847740983130904974144541206619130937636964119404574968535893758888431732945088678113349511797784963102202231853770216407997884259458062137491586234918456227694952112205956355402739576690154153594207240822126365374113295192493278024074045229236023171439534155736066682517210585320418119290600649156618913292416086909546670717031020984559015225961885065076811897779426800128885898856659238262027361337934782752958532527097284406619242696039357367854377913295433946321894182262401888797513336840249608826393942091086785842650018119448846620908413304619211180060125594926670169924655658980047168966369021356747807089499480782689885397581951919103507562840707112040944892305635252037299162220601429400068328157204416578768856192196894090788701552631791878332808796233164947241111128964074091884559419252330948536077020535910965573649199738519095162654272125298951732686809182757742092819923430224210926770673340678261301561165537128527056775678343348640228373433399575225295600909174044637939846252181303381208017003700307881400021378277576666207929378742388265171450613110254470220779320849538983328223617925912545830045390094305916398026896397278954054949640232179435240110144224746268132263489810792548505390197422366112495800111748336468663370885311858691568207044560624179348541398804761372735527844789259824542729889746773035114423906658024236393251634705205691288605772903153209255735245439852568646356215541895407969209939168548737230354202519651164193926522769118874972056865253375900378318887273259995916427953542903791019553767223946081849153063232612125584688891794066724437319386444382899739093321199295721672711075953315520784555408096924062220721930722160629424840319180748484828596622716161271786024121776994170091148401121183268500582680781124295273479786104697337933525088438923195007460884434308400968527005147468031903678457769421795909304351823348960631140995088852502717732492642417662550103341187161778586212649307489513069130364832559596153794361295812555994037733999264686776908230001713228643004054349902906243723457869702938163082716862202817925338890414704005056413278163045103474363666792278861538683295339700240088558819873722497779652074862734681456267920503217096367593681630719537980534257016624556960614985747374611171625908537362398289973207593605379023774348314243593228011461240343968022282640978317563526945253125320534881534665626862156612023867963300514710205026140716243388226528637088719552993351868622349565091687673540717312224488279645597401183690400552922416738804702714646355337021607298420146052826211056198674428067071797938212706459895140820852346742820118443553991577203981743144505345160882644621990481260400386937478777617142557386204775254306267727020193181265531659323595240293842647761707819624569799144800244879378178842457227767330154338392882302501799993685226146920009023675564798969360178152635810659197649629795907808738511794246662761682893604232427693215040392563551597894307152041251076732248854666595517336960020519612040871619575042192511262984655226259753170215240320273397350696311798386916364901450284743509526837523018139773791834047990059059895463865313671623015764215914282904395115626576329366875117856802347639611984100430045835732022941505449574408165881911156423237485778041831039423217702183868668449605292098233670954635326083168169242593022787943953359948736557776026800754511601900858596455592504769794636917811782413882415333600215685903995880189418965997069753066839253653933060914292493218376940554929431209467476525943817204002030337975795353647184450216961784808121588951153916694212834245866470425730829257139715677467478582550034497435075192496128395239662124206127295716952496765321465110191628434681214904315240573355607392504181730840896158183190423604087393871320640051053997043558844727892145552586179473480333294595808202096507393734148113195421633546597952376882480248582875708115594484319811861886620989013036214893678547988078083478442804915566536413878892172665237313141468776995306026743333312472110065390433937377681026433636526959707522769106745467484135737087482595047337234100616118530871276852071159929041299669968819787185679341564336930489024329552441216588340673714320566530548118821466473757022507879325267646730453009973002230442278376800669362465736311248131440166532536182025037369732705759944604511414866430742350717765421341354648163650149897414050151563665545110007113433457010023533303552202547865640886031870273889969485703287652657715423797183615235129818867892450812541195110661703118249857641874819262782156996962376008033452135425376725519422896537339800756020593773208009192513011269329827384944331500317300540389883364915594736532531598457403592029062489675649691657440017214321641404745030882715941257254406195660137698744793023384858656407072469950576511740631461923301757555954451585739072681258030110336660133300309496682399660270897509602189736467536159001749319562133323501008464156585098316647170551744786605159188456866129879401047787459788770980407189507995324300457732254110374918693010045951413987290971435159337538003721158324750895102391158168969051498823010137787753308304423554349685780437337422496021698902675396466117188874386436550335509657083942881497327016899051637975271709950967390821299325391024170284097116294217767934117994652440324794119161868428915999382164019455118323069902331392886282131664201691424513417076342261357929880087633667798353808333196805331632511611190342551258083382032314954374536389840854951963458204616693314315043738913673740283780980842643442418011924703292733989146331235096765513273440152000305083383473921691456626661619659155762367475292347153801494938340659358574898950326523508104451855529127616957533643558829916309895839266608537493541453727054086486973445703648334470046707285453324717137666869110666199854797705143814616569494428292816744589766372083223773536256085092190903285867907699366615097636737990575254988733078347707832991759841836740583203781740353139714371158835757361424953950629927257983286582173734085006989235275583863480203931283818567139160177174371454183734233588957009837446819557753182643352454623519329880043971643602250299244335748864057271211923503331843978468527142518756368163257340058567293726679993555887964206834828108149237793120550167622369929050249032685343538264189438683431782042108720675816942597992841122778072354301084396639654709358394269351667129055976931900747987638276567008019653930650399021477429658297881624337453222629143099301099437513040234755731796722417611349415629748494592894083186660449264801896629653501585251888801947074291206900275763466415664419366158993100744174568259374033533945858749763672041281357800247818453125234485803459422222839424552754828193820621844422053922212141015746522121787636958498047531720535098012330550630028172184700086682738093764289891769151379697549260672693447151273619918537304900613255266101474738550933262016042795902652381656714246780500385814995543493900933263889241017254849117986882151964921270004225581040603453047241795573459557759099847159732690643954254114408366750764579976997537191420145816769035588244373612799533533927872799498174303767867911920135579173712520591771185107371423241241115759360123224590892839038797202726186801766187377404456618431240332759792497938836036807144209306017330951558765206597511091167325296266968173187288781438360495477137767952986092174980284812267615679381424903663005554374738390305728559572467803427029757412490954992577279184699781406662220678891850435882889964875639799337403744601963178378005195169743426647043365936062918378809211308529933476905507104749616571041997467825092454217617246886789117007996848349349524038170129260907779871158098553950391384637875520919051464576481228524895091337462045249649684913345936751095530435663169412173469933955306597469523310257590092270981885792364618058600499285436920936016965650913289737958316541427717557488999683032244888437199562506455378316877489030351717305792396845529488058142993281347585817172407900661639641228391282958208578899204139929986027237584317109878461790714045257393900149135783098876324456404617160670240687368586168925925594085247495074831672261143034704084843614675444932569262905300728858272393781795922771001474007435039763538709082355592894969536556078285898263826008898373538531838072972029642654657270551141584845262759971697829780546690475718450399006157167180380768100637777908816083070106965829959657884339342771213682344787084171712763127526507616993161977669234630445438529319934554681123509831138861370710110477834659499618379582314817670086529370968215450164560212778441150377501886555044475421450567616094789679962594387316877038267887531478589497211331467938432577057058411160442750992442456508846434621842623295082884916493070229678868263161353005266350097447295531850973562979204771914833913847323265635525752086867885625256333119834262868143309060001318613467812088688282339474317349154877809841776085245687788429264760644104796854495446159900475128429259784679354590670415150866622077616200063455339263357661537176683381628395718684423981278822657395345012594619435590206598781201587350345424959873902088389471718532572428135422546996153928731563875856536584058073320506690155170528160505481320925226535601997538850127108806794128828525807035524980448644099511274845442598703663292732122083176173817286243085750808622748015388096302818661777662070635556770374607166241309536558989813000151678961817762013193257224352873734620107905375837823621202674545840100166866873904793949923623406350539299141153090133450833580305780527442330230958848878358369993010464142436491516240977651880221470819531640655231661156332583258874315219343297981550223746605417776887792821863369729737861330635325270804304967673765685475602510924937437758887291577607174365293547148896757421459358205145826434782303171598492493030627508333620552289461928935588213612159444183568076008353797674047329124655036385774329218736388859003850856186654546720839619182004158954369402622753717971181643377295990852232579272159881808948418210377894541251372926849393966284725873924917427408894999312871249340776717948912261209355100669873239796132532855782915441636141414616663285418628947378503130355962853168137547798432927861446558137290412258172997231412082712126599873147393548208296166875056302378763883607500872797442543226446745349647072098446505721250686954934379050017289158069799786663900561753703121778435463777178062135708225104686810115045971086760707699478050416727413845629944074747674735638585118908181798637063596747942245511561483677252555382301618543788079511279086014209944120977898488901385867010823742711618350691820341164233326625673864862176176475279169609173814982014473801916493869571826793907936102298154679404684122151445134893530596810471897638367504316542485539387585429545920599042181196507730187606268033745332837005832959359419854519189711694579681981948264788246045527337735641465751084127119508933289548027864208638702041517524441979439994924484110376325492321332459752501880480261621805190942890258660564127975765562995472188696958434529187501287208085388298777345111043142000901359796627735836889578895777483834506937207666679101464748652084882115694361389640600574586154168421643678296486609582705441181649285389296170295467077234678615916533989357391576922159790089727410481503457405028086850445131902907026716546111123594946614322550335779416998887041280789977379790156664339225511888798640292024052441541889447395769777610810765605794065609289016340910356325089972850823271191945784082613802603670211771690738680794209226936005295782955194058404965676289325222686762850617090925705693690800422687719298870950344642741214668941714443488370613714602972084063537738325016061443392459292076191417943435832454819850964305770281369864946153087724725554750828272808179710711292512934850428450040795828152083193112857055037018117014576524028846674018488489619570683181407365013158182856280577222922950950559746525826402365385536531434835600985427001167859619964610079262865006420448843079122181074822248806806861775901522742441591996112717436631469504619105334583654968578075083308369095761147675737608131461328755099160836316825142210921075211751267270538572876725224520942862455241816133909782147211549851765684154661703271249489666066474724845390565539909579720445326459531790572502729655786973997544379882370724640029418621452586886481062037386624914120214593011260006037499077804780395001522059300214708933740736420692950712001050621990692928101552060160474291607237330006503151356187247869377100787252019580966600115271991307578901085806978110720570416034619187539303997249822461977624805233419098121653248320520588699842316227828906556599970222257249466510646913415275563933314900410280781064137917566268401758633924837192865824752665205708381241222566863109776758209647755128306903134655512749579760777530325874111396070505897720839266456975971426083539991917564061708588352259058966635333590816733191887464629659214450956623166085325783838976067454524114365714095309143457594689091515722795874819036020829045370206761610235933414926904425400323066107430637510708734521568268206018379897288497628997116040343240300501277679678783314088554351696175642607972664386747490189172075977901005135663342438936876020696981724237805752514920843142948721241600373703224539889416326380265188530820449551322414321818096367901762664535765225343135724865438652820093923567575272518466427900181317838252580432666907374854719931823047225023038528512332221992429656637609845445003584046933007686392799543764179970149415284906012642640807685555039832120117819781998792774495584977118502541874514571023699883983230136832406030962613757453634394703205799589848081356249962259036303875799335759131173927315062377360960587774788923201415324522163599881565050524967328267057460050571809883310398876258062943726253968137886242970205502736405964670511276071350403727554660914096329309570777385291763923309333244959168109199761205003470405119979130596021763376975857544298993700777530194078174599332567771519179480077926405388160734822116409156175535328572263345927656834475342339844917388915975096041048450566484419169464816221668918625689483613420045445423729185856643550776047630841861831824334372891088861950942347408443735833075982071264777075465246613830691800217219657800024116592557387406019996599908606951754179964376454786092910799276869209752608095417967237544792298486887622731831029876442153925841180722198541724996965677262998348845747853537096281327640316894673226617431655823548241961652946511419234706813586953261055271070965180931720284088455986405097863582880392680703502630736275281342958981601543084872194429256112624530317409992139119798851234602372531362483353724134057211947121052038396874230410854859741640151310198423100115239025964392920875717327235658622660459717780364461520782725837218762633175167809081813175845790991099282122996759751985373148189910137178993235190853053279838674570680092403338861631155418253342138895732423467628172967169825015280631370380058001685233616622025575835023890835627768762989478241585443182961114696318926416756932679648372929376477802858242714302997310569871470883208471013970243644834139382342612044762360843416503629701279949727860174644688133206239238332813250388968812399303664963272174967846434385054903232259900307191656319215159758793503383671881623800875873801539613643620246084709860512828811684269765329891687333472612424423356253646139493371363179370975802067150829530524394088615794537111302593154547555313824905567833871721790766559091488934467939157040011149990745932421080185533177275722174707780689129907031865213040101873659716281133044698265228777526555743090307022952690798870979738023335558676664451534975000652926879488034763112543751049360355330442809654611110687185252468625383584693590033337300188997004160828008915421533487181759737435658865823337766249133854727078158269476209875293705940429972097755516490144741393086820494691879685186151001824321483591981933082708600028578826598335122678856107717455873968056718851270696354917834288835757945005207224142833896308216482996257709184155825395675737434033166521807986394541774943840153473151263640792810208052492914515809936490928551184170485756837960828687666037953940909256498874181126045355043092517856549274387221081496725679092557954624235855961773034021814859112835037924970918884411923454036301379900892527395112175793228880486724737873448603916328288175638590985125252544343201043979010994843653485453124168272557329186414326649354354298328658010392701396686719584169287979089901148948311957542891312402821009406007257869640477207737228015207220259200374303023831738092728437347091992203867777729762673661764408633715347809851316203509459422710292989887621961979804604670753302200059554305150573210767012265375601052665856882148288597248052621294277731500953121597039672192416415220800647709709247155147283074365175789856099592630631364432603938098268888987341278413722172545858179818019452326199229842867289368342393738189558348082217169657200355088196067838279863249414442766348989385159609906186970970934432025416395401382010559316141830535056373997489102748959436980760720285439632530224206682060777349479999369698668230218223047016526998192977350699224981192015220610113355524146336081267180690725290116090084862661088983657323117517964464201608021981874295480797232538059019134571026278843025170483354294250215406171725780713169756214522132401677792347765267580248808911758550781616935993731354280301468923917277719853092953163450962790486753480263495504605641472694358598747073926284313999565100527073161798448821238814301357239894621608516852400051749569486400750288535516334423949512679546015250358715510627956917888888809085907244337220217966569492696978958187558012020880160857448755065794342242381139227529646368439144238552465272484824806918247752374253910795174846217098106589777219106907700955145993227347400991714679918732743635431059536761521508891012091350213681069056377921769032542224396341879498130271154629509532962910971974319209999045037864937216855565698780908012162795938293598348184337266948643859414033121240630391607111513964938985026526216236109866512539949452548962368541031699620633592391436858604954074024694228587219519185252250276983243379862252732547408260680055637962251376745822680034982808445176268174800066542698777322885538684553829874546156997971087280622164379051804806000506925092803705616886039306909776975154133808117399995686626000157726850243079024819956557761541902615766719861501951149621428843562221347610053633971087909729530849457473395389519807119163020063086191618824664900362992260649856091244370410122314555762621728211766589393628466413083273176471643361495382877844668725626369695885771562232885606375266750988068315338487187105151232613144669576468101171358806807383088496196980101841025695341194048455750273138932253081377212444603079169167268364981047939527437314105531381906027212849710175396411220107974969089010891209447076120587578098523782391825812016909405071655004155429764459347596732383544365912613674158246466791756238055724871883528550744345713815897102481005270844912000465522561560159138277631750220133097936077633780604672966143761719923492148120987298736987561673392802097288969491420504238185727554242241490846831093765513829030317404639573947467302562350993934913623148500473246528613200372276484851462114073850721132853248100094190710880009946766253851042712047303967060442582509983196628290366370351322925051240011142410518450142069262154227798831095800088767505416626757472492529952510798192124809431912571680469276611327552196048492956065549826412424892596692304269401042999952435189873864622421246818162693711177368363378891430800707194920499452655340557589387001948601524775950029693560893656396511514713272824285737921329911749353266330647411300781486380781868951057765269620283644981262891492168057005973770578577352470172493818509610371977614551202154856387984505906349551295719998220616701650606736468344829959935419655219588555747720693095464880835113502186562016603223435576311629724493014128949629984359669985427002202312878349585467493150368123631414501066574013895437056598649439353015490180185518864681963552953512515802527411686424513014388625177570091321830693628216471858880311447913235682681857161774023680812105207421365117362185660016199053605180366714628117546614405664437039829028322385653900768853268913217800139713419986929448116260682257300522649221825625455667504926658752364087208942428284236968243793881687215491424874802565495507249194001291634697023305860145266386931721609217787169270134348769579846536306538705199920027250619954724670272941877871974818990125242619917663641192330594799626164713255730712480721350885579262824720684132485196306991794549674980096857429301464566727651685442592566694677473141377734277315604995442771003533584115636492079792933506516700571137863508901045488746655431332510125836579030610854032612715249115376578794461492506630074128369710218534552286027720821293977277774249876052988543865735622495278986578167430300990446163725827702936892122529456294161140748842750079998892543674403995268650588394269264315281865000152272022282050124033555684562008513330669908751213581238872627998467250129196664063782188614783500401239610448448354562743220606560100164800631905599858897366053721724912686144929823481125521105967894567816507751358732439689847950269991377829486490167900947429356069543901967509293858771214617077943769760594258337039690981030365283408072956012249646217581619720073926607757563472312867895743489032893075306362305063793573481021155583280520572363740231694586412595946677381334040852291240143674342080143592014421299398520920534674563225153727281096623042984397204733292770530001589285784830735596825277397689981954993224589304876094861529562040603447632716129557910264041603103620308850678913227461343271581323230445538130086512688161128034742930199337242611801516635780840590179058468408783369733797755946345614760506923848222355572143965680929111702334231028162212048936622690734507288701737487525548248670448708695120315357983112566087190009941211895581204394866499888108040742053278035321872171941732980398622157706558965809327427018723623181212210608379742925057236902944680401032023578625463037228964204754522953748893283508422875697793964996644736198818033065479151919094048255623477489370449636522324583750185156997397620641458358381806653589101802195914785500039169057907635371939018578355785490187895399998324248342309779517714755089406038749600851650764908508305161588720406562186101592938486426710296452559540400449467602845616309686082728771614174013739437734753215728127065623267937368870392050593639967807948814914174472464714032157196290491155718434784024972113210060315893160322273976873848549231991505397284252566560890964018945974775873415596538662269299876823389547716614964783530069345723647281702268458126275149706409962301543660235909350025636511709764933710966251214993856798533641543118723275060414995632514099148811157308573230536743747399980234907049783965370923363189604987947686414623146942331545243387181691189661463512691060921056760226698308884039774565888824585637112113073647059862357959956890807609405421475447393046359869528688201673313849213964877264149898262269035929316554586740807131344872304171080628101388632317734071905021603509689510494382338608446636033351163792089112330461009833291166416573781334485350990469478350296882703437995162324034312703454906303263483267291894836490082052697285792960749917530882979977922888173610543328852024869379313627860386743568943017667945218211889691783366671283701094085683506050468038526680412397275578236469633389301504412540391211071680298230810096031974336071525213667367100243271031292485538727072405372330183891382400826476152640947960295691399332157547774407667549239134460860731610760260873773144399359751691180828025198041712734802065938778459630697230151994306498031007494239800623763617937603312550860922047818979866044721364449914465393899629660886005007661381387017879019001757893294950597911067121112932272756793525638438243767812931866992811654649694371066149102582580549780560171698835268099054750081448315934559430929889939676558303683673785243959944752992046873044244345576175169068335222755634544901427505723824957517981359060516024390393152528404888668745502194057894231553863762764583551312227556908034300150943363817340582247662254642668999378213475488021395577889044307579622557108463706016972065041171074527653634767845826074574328648573633890637377243319378448338146578348084566496377634456179182411790553065151072969581496651509031083288765534023237355699129431988998475412422533931611102410455458396171753967584725196822852792764183765651211125608644096682599519503423988433796154957258123997238040374233458372209760719917547449778245515474903575025593681115966933213901395670055558625462632443629190305078008456760563566612154685691741565510948303034948246722507082236515966479374646409999231064942919088134639124714007216924858882814299539668872308420567756723976590329822516837915119112275991226117804134396970274291466304796703323545396513811392655437148094461763719193887106157124650860727574655647126761649411144875611885117486606858812539158576951914987640882067954051161497689281271195007003574124259234589612282556475981076445495253035378405450500390278975975053863393580387188491818812308385020798542023231076599468966495971834065154105281945384597931186396710287288858119191381808356624240759047158215316755963738611696710723792689994680876820716186241338203308730826113377019759909075226131267700054222603888965760812712279553787395360169556973332340057321705194269232771396630334210978925871178798707557900337516470896618827907633847586259315183549892514001352540285977895185245772905908866397957923797784673038022013632296898482176428309589124478760645959796166452718603199355860908460089011803203500774883829452264650575210157614895874617061788226925153126538535833966400533915677168660057735196989456538880843083020502388936990641570494511611269950452358651005673836122934632021920009226007328093661636947162136774375962181104811203357197080311944059438117091629184860667509090792785131206201175546820111441923002923742710350393312896591522840715271444322522745581514798101618134283232449112607824742900604640999987979720573886832950434308289442287149043667584779540675245881800077001516100586824493455162259152563108935445164475543007934340551393885256113590810540018450205828322148068362060211469341607913776110496567306133394923154679984956631116565429975133764718757130519083343719958591000021627974366832032786892630798519642518060561300829381763524439582638711666427056284526644716352884673083473992380676322414850208446556333668052284012248643801600765296384620362296090738092658514042079555046145489861358153382154130477121578141172718476884069266146646960659862855003898193900880990556550587920474394498596980930445478203593969873686301291581092545294103404680386962836607217049989198583543102554302733557429988124914653937046097984914006538584291879253562938843002623693176349533512426941902599551856442817693962326412545484986645451322691769779654682973439187137047961004110949521533266727735392742596766709236311869501619541075521720472771038934254044535345308103448210477592990863458667660877258201831011497339209295027537252579424819485930844115323107990177130968606726635216266879075863547550336001748538829649116740983263248406806658725018355610858612256757052911064601199504486402524404772872480238539472217452101701556120356493767855869352917361184829799671060278219493228577023291135640065114526949232885681554078108201284162636159162781248814367332243753361090763935715417767002621236585251020251538849832289248664435630950917543250902394920405397514543061470698710289492702704307228416992556242984307831856363236774054115004354091161679323044462517615512305020477563936387794286908333798430085897548679364501788386799033394392372802176404395816594470607232077755622664119727911936207799640743943000997044309507718510988748813606908887642025334630779939014485598259444597600817209674601844729691202222227476930542099188886130584705920417098096409591853306796099182187898263298331456986899493998933903940861967091946590015821521529753521097387088786235823848535691928903302061543118316639718762090458229026776433030755833499742277168968174272563669313567599778773364874163344488761811751574747211378597731238942038433907688528107469428546141420525368747242898250792530757748954096761878110751115918016322517348841262964197548918447214481309121512664092729184685328226120993464715040503400460927290326975858805655295058038718072455060934010660091210684351632483066906946581794765411216529665301658304526330619892322935720064543864089509193300899019217868477691609361976933188742943446793772381646032332075256439121799158625451572623098447171815114311465400182829766447885017838779938069673527527825486895828650536151173259746043323976201506807839006770791036645013739549324939000876213822382277766169185690117547817220416852116125746862047578028880829295580407025744529213903007712258509169404626762380624204570778094531383456160668260627975010057353433672700844835160173500586030348919678720018912676975552677603530827619367969929192939783273967683684142671345496197006801960430267704183139164047589129752648394790145454849842514436770999572090385562976634720269971268837319399074605969988787062869539660966742405576254881929096613042075853487008212205357457562525995089327929744711022462862899007519591187958914255152084472018764901611149687789820825786446098938548367755831699285936972483502518086461948304633983298409311749858749529638844126481290098252858398865198854562331461321222206968133916202708366557583338347970149475258413769340222764348525016331279308379335908621100127501612678637607915848556582897653360488105147180235775813685656004429576514617693599976220665860003018604358646877356514242860346843967527645829614204005547645696166914435122614023423621918851368632798016062096279203891668420419298958270874024296361639997126518263756214937757084425130661954629044903627519351770759345216464992793709936373394168986448635084587530761770709357902997967354517699722721093755758289888166703526168803128757846220268071926470855150790502885715039365873274292708009103901470492242812480156797591149123270674041485681059968743146541590410761732844250783787718961329302678425010365985092111832103022898543706211986638478102933010775306906767848985339198013507557079810457232447637102579444325569480308471229623136056432750994468606200108644660068190000987199800029450211400343277378978816037649787689551306428194706837369514311048518228880251442219342311054593440181827818125358430253147325420661468416557560643203761930646452476780884182694623419964699650858195527618464082428017349657053022678405270265147792981518148771236436226023158516661402882934304955739865392368542289863626302117466480877682081887189507390312824737471145118814740037319947921719549539392029105250926046326655222705767723932526780337389666535124634870799580034488324090202073853665300062678818010513280540577345335838153921411959145289721891534364577179036088616869974316590420087400926984017136471131524671265839861531180576789631766178256467130067848458245337682200993403921874281943362836264592571452764174685216932245275471262967467944510741133481014934179028876174952304003305680515036815912118756327542217750666077085487537349481853343690037610121037853806179674351188803700217488353641384901427376022977882692020152881459763504765171563164589151190418866068928588424819784438449823622756892534936167520049770243048554878155686305665881626886711876624604470702696988205160591229632076938799674337410948428698655457472711233410516613563910670230740506970062851475335144872784780733971687143491801516087907627282157359004812298742376649099661275024974570890660260823328198386773299127661374321053150094265113318344575517394226243979137752751742205107354287904212719045698950660209530677993272928882740933054536885388963672690522228004789271706888519357156976651226267243976475898173448729356572077668717690477950407950879940417507674346169114273090453516806972644123200966761522777820376126520918346901013238364352762712759064290279409235441151843140861631661079119274560752794937524345667463226859046123173981225159762041294163164740078625177354476807449741258459724282033783857492626027433725344259109715474524338364439603971566992772523994605663594356663185197955986124664358743837513446244665457426693857141533196237119878706316083948095395258368441822941753542403706391727937485939380347447393852535075713410664082647728308342871250238979868352721826959041925108249987859250959902815773472250521362992444755408222715014089975973512438459543804397972894635889511120617061182389520699760455941469496736042210692723475863533571792910475958687587942840564181069564154892382147692035322954374724126292491295290070676974175782664613017361166484562552039371370035828394803455358790063081880828668679430814166213066468194123359184137755264212438881944392724569836159177426085127273810125179474235899791472385930192094846661961361158730676143839972751386874791966939994884538048193954557535455080735683962866042205068506879634993944754514168751859348471309319657096874243655091372071189025633091025142870897827964254649792181135173208631871312584328601698485825838274152531917199519797660043372270062502013347627020848496947617748512369710395522031698938980606338141124448946904514907943175533581451016269282698004746397271631037369441310082178797175637791737436261000828903219548222841460873173873009356785656696635881504450092349885038540818594620094055936931488025464751493696116165242772302512050882006773568120973502901787739041318661023954492815150735503238819290169599347489670253951714210332776193767710640333751523267176058805230813350168358455392747766525536935265429039446464071454710876431135041519920223229191811049385237414743365737339561154029688258849772132436669197500878325664870502985894637295579750612710289752249054053700547724888269630369593925088455095664371441830420321098210838955775212808032044897539009247205752319400607633186091912342583806639685201465982395228321074702036863075256225430511312845364232018970711691463774779806442196837163388970225715583183579406204038803064469153763650419518697541502103487089790003320079362633863720224342368803791742839425236918782842233287448928957201731123887711999434081867408016650330719235726514184297983164578279396142414965612123130353518749203154795582451183157037591036690990806551418400648244887204364517681641307224237998505907117633432799053972884586524540029311298681773471891708626038923924590759456827586651133982478351553870552371319875291740999606913093547513306363804838317368436871786861290128410806421930951424914791246531412768394560160403439873676281449794410593977461333531230778044356951380392333811497478709885996965081652106515028762857732373987613899975826136270400909644867040379675326218789958338527139185664313945607672094405667076958802117383794781477085733957373962494556267032771816932759049775135640373009624480175679262482527941354088972815438683984761730476910006701929586358528082337962878454342849511805062689292798584893751080581350197222657423307718170479343871528335743972337231801788987901051131931618941302940623716935406686183217560408747369442451647381077119896531144165810925249559477805618229865951142820799387159752437322545431545758776666438292360693950754845310846204308792424441149880582769744175915512010983276740908757948954881377931136252920114171919473604131865335224726061767111524514888077669354035438957374084644104051218866864066755081563399434592537010286150169385821531358036062409478248414875912890312072063537427951190375917123125713389388171029821402148576970792511807634838364687203257957604849471071852858788905718293875795015799696197437819580746813634529927121367155623882195186930058473638471644669306115884167899194001876810969921340732930465030446757016613889720492480483545554179399464724214008625890285122615075610656118323864394140653529394136813848897641978229219094718791098571303091519959683832478873289822281436362933318770608710899115079911873587041737545820081185968806007444337555710486057210054535030095508799159610975786247404110841231744112355300648297485893451655709363050853545945043475674692378065571826120170795368207839670778532936643844507477402568299745714671443745184503161212548379315234442652819290871654316098830271439228522312291174773877570147996530490927004928878418849630530871930823975817910448491139210952168328468011416179983391492853814721707702292270272716066489607310696441378343108676139481051640042600917074123270755188319113421047225544357446461273020632234636890663122291204530570394747203130891678223652691970110702053114112039971173747655923373780390574146848903758382528307237994745879961574325874077138531516082795657071225166529996032665215933881090679046438606831707633528096107162902704117328751663989317716488000290266788649624665356965189920995828371785837335619925915590548379579868916604274525919594627588668323375021769150038832133448935960660285879624260301759661732513090516809601695000084041965931626690583282950062217573306191106391271851366888020434675903335559574825803841993460174949135070381373739816867123132676857162419610029647239865650281026035332952380180257765970600394890192853900496823212296257093072551967111078917331861481212804163621323661955999016175786082967704134045400914495170380702774950698262964048785952328318426560256635314909913181295598061375278148935156571633829111795133034700031007277430995746374219225156349701294045426408484570128114390853245707395990822929908393434708492246968252777451306026834859840181863665149632941701279725905509963895058838693295588348274819324452004214492116372807949443040080516729899380846661791731673253649557956293632287559645963752282394949331769986237490662855680092947834051437414985596899499888746441300101808189918461173539949079327878928136698440108219763099959263279176342206692481581875768310821374537351030586926342210932569488069442383737511420124603791877620688001393190268478173911049433240983417689837085224598644303778169765836277065656595141560886182691843111675400122847729868663712697455695579414915581394918892708300783631625208516225714583057789274002956806324062424076101340033137534085611531508854008937360099230356469362191419855474490911967713232146948731787858008716512515729774346926609238046744907258103177413425919425086791849265768783103270508175699155031504074882796222946578471011408770683732573636084043895636237496760467094407945986039724177569131110957692892888405436942814170528677170712964860219579648676139597453237598540758460829689985917508246826053944523020432922023474745072597789506335325937686016606509255725103291847616462579814271945337415926446528478883757032421164970438126637145297270797803096083121416916010120213945996507027119325175394008265586616627986797208663656337181960409559255697206844044994197285426707949739797093898469051896063588787457791978002240853332516116331435436797149672062528897904005990360957954732107381023624312722116764242232881199366807763820770616219259501636450545684484460106261942550415007074375909953396310988521431246934601055281821639596631447050516185021267830801239655050361175554630068540456540901870747666495311551722583263085966769972329877001045149416001207188083058340022628476088787280510309223690023799769266096791905692828629901194779764511033378703877496103425708608608342098457562062757366520854182033749939775420665480055088470305447833612300213401576869215673904052137834404888281136437297475055315879686974921294314631183384344389402155150003978355547880421744550272322139722404076381456113174958624238893572291513706004991371823131700763056160997400429838325987055549733247736862245372501989084441610687480732634930679316712797700376997722705912618259508071313266533454716606981216834706496700078750704916899988196646463890965077672735383078694468976288649961347020210463123993265559932696526089742639936338065890776174533189489318272587292915523356747533803387142854399374284140213691146618083202767486706854156014011441312372620666872108686824531942538649125593830423148465651849682388903906811097727707565722794575466046447780653785135102711045252899547111018324392368021831824561522392543012533649096833133945972382358772610023188498166999486813882178367840702782658308787453937827155436597765210687569268253064870837988396447529285954384311516165504097827953473975628611307864519053946982315898470199161337671288014228481084543239526549697054118777500223081915557218928551200080413088251652809674007771392470548824051102795013697478247609778216446280103924004301249848170990201628678619074120270783337971722645595192476974285043964368999117213699638133571337010065613373963310338730423685220623714817585236411807512508898272082993981019185958215602785940762091215577257758540564632451796901035521175827111582382985278805384891674680892502518679466481684301199803628264919968897524731934285661788055155237275528942338114367163100262224758576153245148534862163398680251587725713837084312069523274495316724563832402194583599430026631269680050230533318212230151630763636432690777441759512910121719415403907875256992500233103784313334643905753066956081123809691932820420055688782909266011676040613712193171475875035364108221779846931357848345219698121964279062628618165570015012021703236421056723618773715155341500808693558403192588145269857210679017008681959674915131418554485985629450226017507545264541409464011201926301731562035617184789022805408639653537840243898254019927201419260385341135520775326799354562151223486233347843369898284096869482842226407746230686850573690726613471706762509633980560674027767963521252939605339443285307481120428788144986885336119906001330046364604220903007731504413149573858727491693279021650459733594538368797113330207353773770528355849771751840427796759358157147478840826047417855439427097285200449625940791920823195132716945303752799272424700073316237826235824612482517446309790563923117827869537490716941044503637174831325769193891026412961315247731507050161061985055595734436651535764088672901426409398487818932392115126813921537276528368176646200939849938564707575917371005673772824877748568887426667845224542196671352682825277590357915318074325978504770305716116539144705948007786738899437794841300256165800320782948288169175219526864588610734708721189148443009460431108720210709623622416568486881868480389383889366878561291996161243660246299012264502458187064605152271699958633875668361824554537975470549005188461489727296252903557686027417396799386041134672332309869399776141353366759670514191055183126063614989039975798663155506012180629282797950387330104563455206859923988472234037668982055368583576737266450667861032398861246654752315864617359056003719293391880480005209753224262036151569037507223262404472119413695824293099792447512092561226091699073117511393768896993219876693252474190866885360756480063506570746577505699644181019950663489563109022475089459353997317247539929564788873063294083220386665184594960254244277264233479549451100964336178584235635976311294052845479834570888103106895993059802180913781585091749367078129033192097558955085743970592727045098649084428062644173867399663836281754432604836303214627592333959079934295866531484700254870909409840189430686915896028646971030762850958937758593368702319820127236824549603995245469817366869846074361309483630944775393819011513230069212302795604204250728889701583933243864689832032825782025643510581131612517849454601780631383177028672689125580601078373625390706131729287574736035064687782966072020195168353738672915671884527624540602334005299707342018367199785710657842730433062735812850755580284184148182514119999026497385844617464499309243130827557396091241743631809999324737434965781519601815413133162701944432487127265776463402111677214942203770119064578173265387000368754444609760232620057607424380495276498270741314865644830813662631874875433429768435160233204106983662564441312524929256314729406387273826143476907127192739200847799208074510857239889015247983828228742715257753494952813066988934119335666923709540463488549523821162293360196015733779367523202125335047934276155662906959446137295308923674910996346809465624909793534767951154461046979918928407748045123162507553803910030595241684885320530737790382180988017897666906627241627456438351208709229489405777118223981404165650610877457744118495747395371041618953611050933824385070702725161870616951110334541996070952550421104619682372256539187207532786239355018727486892387644720581852024560891825079888410785571995402849676790624165090822760256657154627704900594186204080877573098457996521106307458060918845655884392251504500788138816142162683397643822980080802115567780931134157882518531754402609466153981664832272370652288450056936217354753879102674789584289026047802099449259291014732592788082987801780389315634534398191199753919864141339041502405075092839753923227282462694132777302589180825044584440553574751382684705552473898350655708708507153449322572472472102840971900749504748762433674175050801700565508604390874722501265317735092164655016089473231274228064159894438165305990542688711693341539167654011320071399883444252018615748543210280683634009759987281813403634599646574449199798996457914620896868406631412398434169605886838158084275815806340366701180308531888003533663400304293468202268405930365443760879612542686543796642895882213728763797498090917667630817873759965219102877533155558116824469058480036069004566813767800556423566026323640085718052311905210036103594909055069619151636771450796960343606554934169739975454724350053515585552430136326152449190417624511827207612334501207084658258359861720144034012280348697341663058556067861534443079449316016664849446645927539847990784849448856405600018830505939823048457453050671971328493822592067040568791363421224757428471716455824775792762876069325973648442670868595713035740042941375500909449745720976403769816108987180818723014576982841568013044820950862970499265663688522161706757817109786059432409371700358953594059963910725792512437769907564953756901865278421755377338043949052073996786206309783287502455668346974714510993407516302302908673560012587440908389714501148307395029628552422808149371219413392353575035082434820230414704471208269276354638192861533555689222426327199667645773772718738816450365274062055093841671181352662128665453146613796744658423545633854635545763385272642947644017474963008183106470189786496978510821757948826974593192699058368758043996106520802467119779186348188220762644019690508133652168698923608333397003731634755769374965064662408362984202058522505727644082346284256948001940444099221437141929883821749801354150145839934238396108691204591547405804036818716074488448411069779555794049911812498404762835396618244992623226041430818456963753568868699787178084753404050672118904791099851650654232728048638018193946818010083234800809035362670731263168139137223310797601761411612185260845739595626613572450824710391221585623286632389155385583634556599392209564612695748945904105947430048273721987549697842130447603571391665971392933599239790216593672889905009005484811847538739451213016547499038663433966855506186295999137502229371921596911891236498965196209570374083315233722682041812595401562991385942005495051664830948762898201508602221998136010568604653623872696612812742994031533188929256653371685946504587084302868221504249810596758139987422670157911723197375983366629399144685470687916149889146844517931829753735814688772869644329185889555753692202438308331718359272947479583598439886088489404653743114426204532042561715331040991047899583880281206509062636470017779512749034730835638995918051781972273011002035952857363109262150515256360582828376786140081869803119356345733203092203826812009084655307614377129302878087586374736380276201485650990338477870459261743880908917351454248601629850105868905381800039468504427819603792880379554623546521407142754762539689309633497854837716263523538210310855923556996368889395638982475516349130183231246379889095634095754904129763710454961298373012323754592895617234056267096376917205994823593286081608358246771795628591248265327826501289899118355147610969322743494244839850471786755722746834449048356012757661999529500710822316051797033329193192157578214954677745870155042361386170012207244480794296710260540458990983526391651242233452651281749690234872233379394343903164491000007962534119610811060490349445078221131390159327067850757294624134218944741890185257499630847167581783834622364628160450808137441313310072724900991114855530159355478888925087222783991244383948603541154450274932574342776640719095274036086426383759270224572683370071274481306311355737419538183264475758265170124093029063196524973240633750843433175136783244163167517750903818144083868544235727893368006594864050475467990329344435805519133069694314037481431706464301158338430908833620342647425634754014297898890262266483326479913664330887233316782253982232582512189996326435457182771227894673817035675774297993592864588202344525495617946570233940767062674206323636782885754911476699766083546583113661993419036119811913164878185448405944164305125399412128744548874833058548129141730553199936158337452301949495644072720232901967844001952575490251509955150482324944929205017253692719111675600976712437192302367881544445601388262012169569731104298325263683711797968875415735774836683751155578876312330148412454874004478961672980164164818616936904508841792687201731208808110762602286942436140688729135660236320750252010834418352755138366265202548978786443223947631461249425370457497201585882146047717118320940805459820321884798944181056014081399846414057944494722417620518761284184002147155888216693574639019529001443214742629486222583841628531526224367962932634371239574818674148517201730357154279728638150779379056827208354649010780731724070760689211066549833168168518605819581066368481324918314429431032340696424326051918312365522622396574973395716774312094712009518279736258660016751868731476986813303653885751139234073204948973750531105485200364022814444237436985998830568447040810034850995736839789835999213341462101991015897028309785424630660163758327923104721370773698661417942857085008393053049664965998107007915403201478279278412378917736449066850022296964402532548909274265385567567312154843735864492280138787546562147552854446074305560057025690853596795621827542500223229782496705946775298862730429340437947494829714870071357707399342573209351282369007181665769135305405984049456643098445567019083279889024819126582363134082215516350725549146785212281969545637715357913043815240443598099020991007754509804961346411305441596944896206347504229452913705190466786099272038923029332221968664659201285911015636046198729839801846997434532866596271499651019375185625393982725314557523606017587196550808174317176142606805876428959176952618198647029240177034329180177447626624823155857648528417568710294829237419323236164812860687033726128849409262089066890526618118677663580532561240729521692211831913656947367386109230064862419979592516483031315526050112578592487636418142382992967152319059061556927067095706884171895962177357296273837743713961355537574390039728450322511346836685306472529761369272254079658915360483149492343365460596374274828411442417116795367836906568885904063068294459690126511294895616704804062426998809458047747578236812888030922181621004780361529166538859207317893028692659382095897319056660659243941391340744058103246694870831819762892125040213662133264672499476054148740561375092850358130662310530323546958573175801280552838660944753800610766120100367308331350331004805169325006394761150564066916702478362322959141221263314406752027164329776939730719091509145352894897493338008685772533951186111115603944344709366239647145675135609036319334493979766768155008075381238004985209442609738318287244716185064747486133377300616906343306315699013023127711576525985689202551620343999238144028387188542836480567002315177032805359561603927769500991162444120747036988781519280628041435883342401031166651105806853273481247558266444086163861871649287645068891989073436538251397088429868094844743408801537496855844787379607082535646413146837429316583851380095219698615120652095491517587355067825755035673911752252120687235734174972775130417835144169052160186016450229308600172026185277944960375455822354812124494293739161584930705172516069783586118903600893527570130705434607279721898610212382645540927500335997454875679594502946381680761582258163454837586341984137298637448265343931695913835013170684533469533699235135655787360986732453432912894799504353833620164463212152194403196773487350192901765707579200976990443885330310441786159572897976046890549325633956669794141027002566412218182748618760795037082829389483590617945010742203347891983049916111670747456106357702952558371846120033066697351782400638368035359522685399588735546293003435307237603820069503086672177641192060929009361007391454521828942771059326099795600737611568729840309028349312260928137226772052848190290937374105400903879925205170936823735447894867600047098457244516741650425409934632788555126652571243334167121896070388423138834830941191293492745266821546454361989547119811277505173672231405730308426701336133612727789807181060338013336375798605025380630065066998309853684061465094595349742037130848286764742123967718717839286126047066998295289229218913668229035646486050930963304084644775543276813454790814733309172086601911974566848198890951107450901885971819812328765202947259222348700494357567993837922434031655590414133951419474691076552452203956802931054892827775420756774019598097799505011530981695142349026961088941025732058257680093384413144718006838510830605036118750686923540178485564628041072356890976332003671766972400434830072731823648803854353967310698054473380862905635929812080261269865272929022545640031489703018904521784674249229162893319693557186587490346938279397890067188102604899876168043910058755480705218481936033716918804948688873481861827971459182566119617679687138276454913743865806588775976334729432656004989351770801297518669165256817566802166256024922948504768169628417190630775720663436267914275083705814317965127994708272539504613406045577455124625943352684900419435909635893971239551451118900198296044409320037176438486069694472955255651240294523147126528116963696832503816421952986243144422648209119407249940194351513227402328045708016705408526742361310344891591639374171547886116694089792818029578972086748392047264617886839729467883727112302038399565559013230917279706324017169493354447295714555887224924552058646013536400379413816594960981800857070705063080103738110588906460853332889338732566892698522147963859803588976998970589462112017106691013793619573842636338611592436670118251356345963029691013088123778174036198649383883083310712976795181197169531399209188548693470243510440214688379474467204411299396229897873701094211098617747477486214492279996572197089311688641419317771694247641091531435138011073109629582341978005191785588663126168846969713750453937197197866893276880716040075958659112701554066962848510020441342254367405414621533737438280616764486307749603205503823582324119727495170197647150280059358964178261571763399334151917891886049944488377920086844593820091770979631903371905072177349475516427452353388014343717867983131277988764199538184160434096250871977790738538174876986654102504720254870487808330926994999537208497929268324741479729656542304826483357933038217056200553678890135359998079025016143009353567689111566207411230303306967801549645418868805296541085481306301558378156769674479237805623737606452612564591996796343301248314183423518729290578617979745751363647267435175366448122605361797479479066818410556932645065020201058833902694713120314466279113615369849827685101229258748095530719115552716207511249893013768928956648388377786001898700690518810894952656627480374565957918991712086933201321135023885047418368656204661163564029812326352554893787183459160712767470596120892720510175640827243727338863979634262580072717009396058267221414144395217641369933085959703212038544297231318067839008779861976624202653541866438600803510584413953414117858757750856131462328857476332856369503624749771209393766944016411803461608396378290825291563191686779668259857081307625436026327144353106007895135939435765569338709079906905993785396758056617792522609846503737244325842826650639563097170904784377107931013887585772745496285620437106249814141822180649768886929553130668130973035161720110636953327866233590234452580939394516127940750848751242755924943325285847659690549947855869511950467416828984844522982851400981288290774639326048412008234055101393486288232461562426601497563210200433646434872214838336235323644824215254845777619465889741505787788248039597204393194721366715155823548040306928746945473518688564923826568863148177182105067114623284571877010800073562086641545875958365034499590738702272913329547680039088644188485965472461580355546636262556710411784727586984779768108628298943185743756472188179320173533336446247084394568236045277321969948227327418283738239504588903116809430884189286410734451789240316240039004977692331493231935630031905117474264269213957831703130038463332760669455397137841069131236192990390160064279909773269503225954198136347404891904594176184517759019760122939388424355690799880510461658728736351349298702256735262797691628228401713623643190177485776910882290784327550514270897179556591808432873873491420451649738394235335476170644979052176009226350124297203659922430885831387420754543364109246970295226635187962393403660486101847655536576131455412514753732457887105410784270007373121537307648365877976490157771210230050694842180655297507410677817879930418379845098512974536666275801664449234324108415678845707793759330151269721336803503115182718936652857570515415969762760652241727026058065549344112545514435679916353286037043411367801037992020000936999069302604256061828075527583793662329747169483594380033566025920913890794205775951137227390075525369440617952195533343894798140848983174059282384472134714960912828893464008096795733645340268409812312352732333142203271999057421507873190496862472983410676822510121010980993028391244447919952538001874455866332306596511756863747652897742535715942125127479382829941994074279878233592931931485066360768805129332067506433433474610645148495146389172565794904416660352188875278021486620537225261147784098192376195461646170940889998508048192878078304737233334104739766682444039607989318957610350118563687080155776894684550515288086300989079679376857708603323746332002692463079561549195554609352961355501372668815810718855375125690258502140578976781319556314625155808334811007093713127072663896508318149436437601923901678153836463014875877684466268870070160816984238882905513139445686862119210323138742081774249630879116267476857794365405221331878761782453913240110025483950733148384336155765721334469609651852041664430832208940175466254429893877029899067963920477751165028593688688692651125946419340875646486787203826407093198919521272219478410298839030180149431045276685010514853088501059230554503704847647106529930212955812088773780397205198187961508032183463830611644974067563100262059275095428076624183810320153505986750909468744168439806698628942458338659155690563082749044777851101800037621906645171354551719778414350446580227494096119941721267525526896480006133933257668551368967333935438666005690214714339520070626785636039789319956196735200264662826138669235912141382020669276062677590461299082479671709340207769871079433152980045494799424671993338852303798737410834252991448509496000364157937694899004854324506302581359541669559232218242261972120354017394104485447343450176952651535147540753282896328516417981290085107469663033571659726103185781214935880039777436921939616629897212978609267110316409685136405881578128857008288776358234664705128380623393917120190036962022903338092744092434685524077323570385186589045919661165396479254456772355988651595122300714166426241890910313199268269467912897154260827429998557365825558516446955066516180814598070390467513329800039437448485537122498125736457380474096887128481819736712827551921930146015404918544787854872224125709764646978817893009923125339175980872809765836980262939498559905369110650318060064864672370111542008766276853309950823737647263651773009155093198002572758281471747650839574495078225287016698129701614753404244713224450477628293243511173287073985557657836913112173236163452324805810976651577680546595326451505720987910437108236284558161522871444085875246812557770738852542995065836402050938402089690423238551281810876939121593844496166308278527247239879106630360880158026814739911291628289620438972757266647852812141126713321870648583246432167459173748011291811007115033054293376280336826667879458574457139649165134594921921110335170268775147155139412697784521876491918198693596343117119138257185563184968337794220671101709742756404188088550538247787679840163950960667524232610867639993032343356634336400126287175711698037673157563926424463017804594603141520731839092679813487824040458998828431080516701517839165310261012368967984377950437341004883182528233605142882038362007171622175759529833109011739753851220311417403692260449965649631941003022761569058038624134100927210064491451463405303593705493406191778410890096273575442485843105811605143225889595709459850572276577225972094824897409151472156131668456248830061913014242436862805383818665468292626808240606214266029470595160413329650081632057107622977929880023375221710188316691121355719582339240942093140161677281105090627980317643077370018540261303342818285493823796692140672896142759036031905986363308667074139990518575379030999040877348686120463396493019410032618146499098129198596454795217400106042490660257956060301059141921162199137376092562755156023604944422310719902328079550485542968073259933172316375264805698666658060766408101952936804295633516247553536783470110657121340879842450553395744622197976707811136158333495563618928451437674671270282640334484282103388029675314862705736739214522720140221902350558043354630817070285804248282422148864773336518428263139424132008226836006509156994895196256852152920154704383576009023998287422484376168005960793453007645573309134426631800749342799842134610821417128677879737085319369175844579645646912256702956357083796513722147399275329746453528030194060444326617877232682724249226183440731353390133882404454861981479790423608280115956302768611915619920227964929924294946084186681500682474190184436968474233467832109586330566699611883374307640881098682816877698299262544726372658471865301840698363690584486256077581238975939580802905359531882970374786182631292598581248256479521093784641335640928482698769168530890548494098774979791227835879060558222342686039451085585364720671648096561905305065337248038326513728479186069874630086630272268349612545190463942920821691629020146869522870978785575601225936512846875290728255953193615966711520110660353573814749986927647711981606067082945588839840686666346274633462996887663535710600692960269945170918794916390253591666935073037693636735137960369337290731771084509977201314550842094279277610428932268302115525725110352930758644955809706487685917520086767295653728094522440178717203530501923211328101037334993570773876782605912556625480650164591609066252896946753110713696785213208706117704037563141682928584896823799547478347229976462847313839350368726798622200372408816807999688230580997034266167193170495578996360485996344029959730043520047340083305835412125004743165798636656964784042628992265073261125424392886240153515165547658923189501620110181169743278776024683042928528500546924027104897962443794383615677231600352444753304488963308557897342825171265967375411125535275252264672749211260609939850109919219371123499332602089952245371727291099163448591510593648618458499007508494910828469663786213838488563321640974017706843802479492990314618841065599964355359438900801902742579718232371708916399863778913549120287670912929217069783311320417306959151291484941759076360104083174371567410313033995456318348373401415695817334361884509233698304998480545058784977787885483646394817722360126743134087363262016638302189377157352279650624270824977829423267313201612808495461569790081414547637771933100603573308309488638721865157115978084043359590584684998569379120934513847082198525625828630563614787237966468287052509839544525326925138938824413234259569404153402450727335871429165839779023292661200483701256176876894062076816901226116928046695450421743389479780495933030633263001378430202805556909688698659606423838111758624966196429119366934975764653548308727329365140128019338534132037262034888490398639167886911621855274894676905014086321402150878695649028685159302177897801372927325830767832663910954748724147566644862743068231751284734586332371298078418368026707745965989251363404422353498879067861503301056723409691828268835649873394709436666492555889390791938942908761723090761283948868786076705832036458530573842227744233894527243053673663764681822559411207992635588825884266082735375210896222322766429661847029104024511483503850773187239071046482391478249208875342071470870952590141822404795234013211786747184041048971920235420694437774742197403266142863212911683359853597844898378267395210694989929101144620778608306243141127546225248514206422346340468583698550879913245344684498487343014312570845758077671064337485157321225279229466351775271494208108492366446177386790008115101339958903740074819782572187997220431782146732312171507572988094640184267666699200498120902238339582565280027547431798204907423551358148927074020442097433935293866624661461736790093467797790692741531885386573512608561422583426443972713762336742583152174568641288560084770744671409942541281676821260384529302175091549290982809181994066469742529663302521207086247263131574039525842359411761476717576531121801662460714378939075098413533131050683912728576445921746305207752441924617667609133957113138409397915091202224467555446548432988364504452510725560520085757887162840598736350094353886500553125014079568594460788215993656463355009976672040182096770602371204004099360356896471207944892802948033540453194130184762971877495284523603130323747337804373337415113948629741570085173526540313465950874900844997325910883681032291910276324655278193850734066533051740770953076931924964474904572355082132519242895598947291077346683619285965099130787830584776156728304413783921375635449278674246508169914005212613965153542582225817784538251070266880414489880905274830154096504500541801440200392529997809990004054939629400248514013006218005246283544263196479458011657735678971124240269872089446817318925633969419473905927032502413757470608212301689004589877008771101602961153178785726256528556128735054097641393074424740333627111918105870158278742673454031366246474767307562310184328196066688923982714079012902445388952700593349035697757722847750663816153265679207688754172099465642076044488241447101159111939286230429006719023630236337130501100194185278880599358243796156976042755547499576636753939031963029152960590600030077433376556941530773006093811743514228045861600012479234605704113095666682246802960965199485957432303937965686282339365794052259452375487278633975217778548053236006593095182501846642611087975694781759787509576344268948888691280853312924891001095355307754747855270178567163464091236894878287703634954039085923739442372916138068060464615875525250098873766429892275553771120671661183106745505981787151762322910970527324728402519648548481236829987972356281822218029131597630654053357074222889326317155129986224257016193435175464527854096390548312299821858832121054741885771001896369001128673561023348196603954218017651920485072252113574602929515696448291476983257754000671804388147054580230471083883833244092811321396586399715092822958345943019723174381236532186742760217879821599037137309663902162828431159495513241198194912988715118160290633664090963385867042102444089613232351591005131268137624534600651390795868343799620468496873292394595660357971793307181991040352091064696882663438643537391954081960093790090719407423932675732015957603856813856916681536564523957277286797495754799962607678903659971453567672555754608775135442566073488694124682346720633035911015875847755810303248735099194429348235521471799122684381275875342152120676509976415604738931436469611005104743266191287794929729802073704582006441636890106402246033913172582315489214125873100094851226352107589798146040760636875508449892027683931962540723274325837073116657561218736313445769143416937785313437633094900275253869558107562168467632361487965837077403329399123558979720442977925755123290752058767988542200248182907198207231566454071672046994526113799105902348757294019318986446683906205454782066721991086812080096383489703729841604461033293255347715295429242613627469682606987404111763551321159457306857567703091219264832693413670983310002978218090084928624754593711127093561518981753848525124040965049563442469013863319395155471160078292605205610228186878640034687756103891042032860567693737545858337944946265402887347521028044274459988252407851543285853699562098297668835249499643754115882553865953654583807605778622379642492400225986074645271852492740679791929005628218813157401216848829972167351022262798810908387124768293874239514233578925349902554531436209592297601913616080332925955255734205794555602809226734183080715768115347660907975521147027594239074643389921634078504268628585582507643267982867698137311474067787121520555348769743551788239248470282049052012214788901135815655052579982292970581724230748807305191176719185119466164188386097972305468769332445033350122170698135456728734901230900600070153877022292804137686805113664915528901268059567917251772548472085745235531056220839971195771360343314075606343731407209564217440725092736557353841610522630203990397124808155283577236789644071466368006584547018928683442594390942265081286554649427980189298064558588550372697209921135658627735871510009882753658847113164690174369585217692117312903457239835621159443995128556292838415818537461905202954880576978492410645093716692830107232205643778792536650691534173032716367792426770328350293372552866818971048869352551934156859043667554808111051806357826547584164949922745460036086536534539874387815782992528358733035579122251577659356992775666804910776688307482325506926373381342836831273046112794970875436174588098975246492317277656844716768734833974429947836591320474580199210416314941525627533757750018787199084514760217579754998133037078318420385298298443019901421809964609844679539760633625230879590157434245806832180923396041866116968850271462504338662446452682798662654435980291688854662127183692889574890467937876112937577267496069248626320048542889022967102491140272814181330674184408570504862596563906745233536556804431860062726397485670653622323143646816571614660595498646922990327004805176716736561524827571292073530486161488352087906812417808780848506077378541974619348616232152816208052355822872999344003314133360822440472450441461600843322463954572296298557378840576219299387281679038912727669082299395471667770462441034817067136253977095657355173765580637522604101385336996245452670435815500320696894499396824776061151566812881474524610464372439141243477552406985990012615882733905839901622479509626539157518766452814446700558695452676528517547884151245043392885589220407213767935831287164224748266109498875620996627945578358411859045786407212009214977132642765919670342399476223969625490191892693376449274953377858034199129703912810927283086434437777754237389016890680290311610726016589106972587104045888603912233920768737208323496921063380523091781997910382429301039572953162776540639118608923951567852198635692254713710754513635908193469561474487393375153346191941143128118720504423152263155587267596314494520392385107061480887628496839040818543315427974411134251103027173491604831041358669894290477017698896924636863668595068679654106418641765596039127174412378626124678147862511193441264077320102369916544868296224905580052839256142361879974748805908447146115248563033528963573450690422508133051087725627722552155621595168351674097884583398531803373423568163090236106504878880329463458938960295697273740959248654370436033624526869149087342665479344438794367079503600477402533448918887691762144343843969843195738639602828538340960085970501248402112776415882027309045872252213236871877364405737100459790800057320347053905634589692682789090640759445413820162210325546811041864814793190718644650081291538565923497721849700082818552156251886339732422979804250822729355133554569486891466795755826887735301376242732772342270239309443829978590575822049736756249856511275875705368680098005132295608193833780406916248120864058950604168563556339866125930754095641982426275806578506784028425862828534937885278361840962348435687795920495582674479096047047046079759678697521781405011728411326018485949471061982849876599560998048742537135378260026112264955733475112972620539228005650657956299544175214470464482816894358678459706328300537255130041806914686177694228481151710511280302622655098470197583124916881922297206468606621992991292336872115605179830584124578472034829839280086456959532189960668636089610470708321823862143495022638637105993708213136823591770945549230311558856625093198874412025010276657899441986591023426523042614963420694317847680504935836929124051311488621069877772329549752612546312839528514489240412965560403546222966706175402030007883176864751173348382786074139510501547352410318919408647922056184621139638163193476249300736987250321720070991229509708210454283385987781368364580140200560535114214114751478808280540131216730733666127731567274582473289037509461216229164533477016840029298577284302953656975191827229107326913109061734455470797050933811436387760712893288145113417793674630490692582573669766295792434031998482128180382735064456527961818601608828955420916071993298657486915715540978963163312109191538160411372866444251677110814168053349161734311721754335704580630300353992614913639899546250780608216603555465010365423098097174043018632582654761425355941527008578307084945342193740550951105398603738906257311280118050888753979162118634335181917313072959300325873056137989837394415066211354037320384504289281976315380857642868784418073141251956232809691187040274267454011070621051573738312871932808043434273074556249873262267398668433397619852209974953458876084622665328752698702753651332494876951838178278406436023361282294728293921679186242392181023299058241846028374369918747630762277957685927161805964730571353620106598733829988751313703108911114823379302451223175500873592135260129322095917802078943402366289097807655728487569147845033708561201852496914695473268767965925580030235880725815741981458711281285736604868116008862012845054181275711172767521951380445972321728805913277022383989255540646582883874855190783580297433030240675344060856253585115294255003306370497840403614331773923892049791449494339814357186208435326723134309306565533520630337695804319872425711171275656571125945174445880482068169624659310904936481993630178279283278591780742590385254520394246962885893571563097306774474456512681374395641447420722028965429464305537289712612665630932823690551207625122933285230382919574378659209707736611976666265280009182922043375690094615590258158407331063288040867072653212849997543459077810393815025821550702788816018831083704348017245708870979234685408090197951987340304228389582714637512325770025493026612491612535338837147537065387843790294273491360737241915786806056245629253242036561089338095999623184709610745032809155769089579759961932867915252546518848930217287701174093783548231665089483345632715601663029553345905978188991912199559336067048309069516088443803520842909022707793414860693333501175868876516146541330228787609643316159883029972475921988859110931359281883585289319552961879985970046859011044950090860257411189673995265529922583517695643396797774965106130303021269378433595439385488080420372335669437530975881005777038746534597248617654537174731898164674625264161128765819552033321312302771467095906309475769599269428585943405124486976892469677868922229608299200849084840708003252462426403486084241291146255149483085601623335080431112733137532943112522725084111593725138235229548349095460891689614388734502805429689635957247517290090110188762450020982265703330967316078187468191119183541611696277767891091114056308326766922996191125521937296824613230373508604563075242783472119360046106212420105699020794576837688967546429586327750074812048517415647082943200081138516304636537651797916377585041623269172331169782235615217242420568530773893655547756843339643694247482656472923421905975806106496925182937652271167407531883631142717781897561342038738556291032320594391993537960546544622489157229090694727492954052982398100405380417028085380004759600087355997256371880178239253527920428838996814074652464167584799084078210486347830078887889198688943319875201510832313686452698803837974603935950154838280371461723107864613523647390077398417751022009424264774366517070553869641016094358635259228901204813100779479091896294870508383253161928655471842575338514821937657379806200770571631489045952644721380311417781908106562669154962347799034236535909476322963821613494808067147993326114573083815867194368492924110350369183986732960429395845558336484384970403337677027734114076168846107906467517196625728466140159536724239720598223195204865701684336279517831384245887985084639131739644797586876336911970337719299098737572957653330224274262836100134950419698201645005219831627431073326720067057946642656192616919734795189153690482995276235716202272368508444778037770574108154941616491960343797718543707603555454779644156674960762540578485602697156060620745845532510965125607649675114491713705624467501242464289005272845961579355416151374810324610232928698553762079117667230086185444290965737738493235336141981794173152543139186095821947996863358737558344897260852490998926796830173542065873050688277881437565995389726230021018289856551054678137974357008837562006851951205857668749803860576807635957148038122290033231091104621847545473895342050665994597771079509109381466859202652934346612950398143798741134993091671078775679348993483786860444983549337505162816082699928678731074422762689291891841713678254319612665197427944095806651456251323429097875860219525041140194930219286681338755628291957841427811607416783388217196781362176571978982542831376102577960004464970186862972025986835409338929061666891657763133475664532017891583932674912121162363182270985301309155097738416734131391369569828848988314476020713661160970003874130390880456986133392125119129639672465143343743279860438943685112793780852773988270064303849636384745002946860956908906734430246362077931862188653419798421909799773434271524034198697681653145137448264632920053158189602407680424501088280132218167903039399359346655448455647704648193327881420342409193703116988689009114755637866219574017817538179428125599892589013609087800902935705855657764863315158410584694220925647746687247620348321984889685968583798365831162506548128714190525337413693166129994830502855349737860075448056864247035443130916806654419751032096195116612688399956554684592391426300126991037123899336857461462047558514790456316724379185495014838270403856713479666559623493803817341825704355138209214385640550745419928131891984122481826715439435779682930302888561029816063780138208893033670652841227991061830137627178473715234067287660937491435874302957753008978791039583343499865772017155879640607799594760556160420829509630697836094547335425618010101128849125311359855811829427374135703343648331993572694686926367834888010674983323778981951146095592924931496713972592361174006830875726060105227907712439522684037474077850935832219889079053247978890375533599244671917440983892032428828811219552507460477712056585011710518682465011707217404588610986846525859268085311686890893877363112915515041666501052562998424601101695668283144220522096936659163494426116875493747471237176832957340872641936325743566262586901731280393655592163674038367640021151978796870131576633243567480545346214978996272485126571938537276918755667150434554218426851841214154110583470991809030692605164486003449216474885407887177473836989049227889659440437939204367447391267739312054533931420290192644355991520187972465440743654829000590169132444355020736941938947077534507912996214635788576371251248698468809475431052651936451660796704773650135144657460310207637731801758395470224665619967726547608524715690823097485766733140004000157052733916629937118908454598276335055671429096516063418411393743682286414848755365257134004327667487302075408115512110391420885550827460992861936840057493860590106101209709909248484181892575038308605356778509575589498349824936359544842563086906513997772086986328913439783910805860840910755643729121976365901151465844509760878069657347742130067738171641058999018620531813582903789485503631092928280439418773668308689090439097206516375536262993726132530131016444279731317343787210708692669330878496140647945923266523217626415074149271718394246878720518269255997585798343466744251708922316818587166428830052074635598098368929339210878048296038231631492655795387001222056653835517919386289954407757176336635257060842783946767345496910424885847820310909833115427710502077138743066883917493270552371385232477707178471585691531778245466265958892776021447495009107166376707047332262931200592102661901277654839238786344821836143306072317131179948627814002739102284297456482594489152246266620922132776391865768458993529738498078315525587564410820813088561106472203399954901356047279692686842652778305883389429709145723548989710232960768231778288155932934667442545644912137669373058885987552436283646868985292426264216915908557880870609817216749301536891214552476605149378955150418365861092266311854957379911478367364239416582560888070536170805798994726507800749620564529970405800994007338640744308449565423036141032280073650481748045868675401466573679787701384687406983659183598789136504414863169176688733056190676336584599441830309315390307935813647117297756696393686225759955192143783281265399457615018169606549180989551792451327929587988751523823749764263661461716689613836890261389778600313124471038630173137529589057953613721798443828714638827636889078930566225035337896166774271649910874852855887507815614968626743175672806235011909108078929649586110280447668804230531815953498726480350083778411692253628687264655676044848056577374254785943988187901469610332284219439832575786250209729348728350201722744437026427259242500823940844059082060831571742520112263200472418810184683367323064741977015118273818291510284900189020711805280280044957021693266139731220863596807528501345062583561646491157010923438223286087609758814763362715298033085139481161179052737245782287442930247050856387655666332433323356644832438795183953785089403763101838231466154778352007216031148411238678759895049897810181721395208359927771266455745008933761174690155624334178528336097720045191838400370257842211923415389754384616055603180760431164472206032910849564320395006218624160044048455659350148311523022822092919319122761722749055510043407320694767397797791243293470300283884660058741512903616875220045829401970679243243597782817119613487286179354280839656410584345925598938788685172117401533881562329492856599461889722289174006795413556083920102553516727807105714256796051464534162561243585196591811593033684291279563412177256190558369896666665616371786162183356793930938266234357374229711998683327307692878387797211050387283992159902633837559348913300242470831815964214962512992868722437145190273101006583502819379749898410434914417755890571177619912104079114583308450342007819538373769539367417449528514603774520814812979173574989524809384181920890504067025346415480326137755972662733624729648750326719699278351000137590245453181564418093763705724000212580537520649209326590094181861033107158656641640892145900010714858774737176488154100653747628690982865180380267328022256032423619597564492608561458389505879575734433969484706480762779781893677468034442392963995076853743952470191247563655321347275586679159958620892078996752978678405029653892265949793066707134835050805102159165366938714693228239404439209569588579450101113145286283988949093301822114850035249189341349604354991941782409178582810159872077692584659880526410653350055386998256572567894711224252484739309126782434554744937715271877987710504704101932483055186495528442721222645318026233519171949877262091608780722692239268690406319522218416073085886003350948712755863845895965164008671305708790181127984671407786030474978378991238381944107586999717038047250167877608571981574276551593584842291780370275346572186637100000737013239706110615159941704760326343850924210849442209969859020012890782249408999357423529193152930170009242153597909386483936908260622023272491271223006425993034014674770751046927090815415037737124139753865632409080597220369929435114940631287351990028375906683741133832249909609780437745277462265064045445200018268842270397963091612086659685828127991626792831886050241988717461846254500581694863660463818387556865062602416579156891249317170421903455659721867066228088571245378944438003151276500216350048514315269912909205292425925785845616085245337403751090113396567090111406513835759833920976412867842568115980346313526025519337893627479036747789385238414561781091249023823614497173590992305828761799601147501602888768782000279223054303630802613609287260649498337338989201987890950565700064051196293110963125342530112746082010955383926878875766634647593791793129384325344668834954059508832027166586908811161728527652026157467185678095024272254312412001201883829235056325991296110001482231033564030548068936437231592907233547065704172604543692352416193127634113427507769887276801966667356851292869857294645189268786831765594012766771327663068054955446841958019608811756749806072790715567668595172428447719627719357712947937189934675876420530695583795077738973781761936868061388095967494630529672076557197030580181210717480247248513786067913091106859313773491083873477947806953341699408929418631177954347426518173973343385293744975550922095285367613193741940078326190578465509447662663980086547987278746409445074605825693378044864594285892674513912168439582228027686982190697091403085869972511247002033389528585212114982378925201083411901840055763419691190729851653348993465030672670808577183321873661790984256995581747924204229330421689708202148709329837914228610075306853735265281487732290027199240854558362153577910410422834213760808448502841696427212101160495909308243396450385371008638114974289825168863729164577463761895522422823193719406093519873546997464390864279331835069349621781372727107514220588354459203198742998937039546934042690469274577963653735022966988337897000313195904081984283979814857758089344491048247131040126918065120215526925035163477818533786606660116125640975590198561294686736707132052639039757637656905210578492904993152799874885076438588549951866558219903840956469466114402223600390341252568061144449832019945434961588645928755039629725939801356451117392152719841064222414448345583119706190373821677795579355054574621102718444819482635054713498803728497767524257384597010302507869626349498343025665033298261215375855475735351354415344880876958929414761778494218163277418305949450688679330140942778044353661431174104713950630868424323750702635719875068421001448499992591506522478075027576869083119385861879023000676546011905504328392364678763374936030201799672584259381439848611806468436562193079876240950212222691635322371421120690914517062939464168663356189619165724281916024911648044696657635577823616634929682889057411767412018898654031504010054243623638118838211251092459255231313585265009615161112027616929667967100665953560921330256166738275752510500548285072895353735482268378846422405409617087771961424680681222500442768555670696031731319337220485501905539564664758205422295359466133800309792539617129558645422089480606962849324732678845359823117037954263293201263621453369896444201999410433177687377735647149085583380975657849918884271146532618168282274038758590368536771369257000565131608140556846563372278690688863368594072306499855621548598495645334903424347120718945509313190548089337067255563793029476271223283758088768683935285441983105566775798492439400099746199549928832904424280392879930965896826281016435774990203642194350490257789144643811057559905543105753324984890300094612580111728437953921986100621093726869499683431004291550037049688947964625922159356957619950092076781862855550202428056280112695937921362796528424842270879573723170771556490162335637494746877290549932906070017573286975797802272178649251178614020982522352795021369319239854534999674021584641220112002082381300308258456716458767304989304608058397941155977160517947554386127837038129213141526606209614150310840970298055290951618701089607877994947355388865615039563644554015917593189381395359471383291697401697579436760320945271916343995395870781854275443833255138693208782283133354582935468389218627283650228121368766459530483949710948115418038516643420736692681236468912483893636016649162226906624890949426704333414498131425189609543448494664988431654206764233663369697248411336570690953917836212578528406651227240020583700476681938579663863537100187311843552193878247449146682423722991219462540177348602219881753712712998410215654881632871965871959518763294915037451436099665689208605704534512040401226579539263658383681572109383770639166379938720079971481460420035055327590984918784024989132949700008474467139213599452532792985661044499124450624061610347694488319976341472414249072134116165918692786486897001284550153774653956976882947304631504366218507085077256871721083159361316987914767482156538337406789701800457907885755292000409732889227878428022956173166006324057343198184818228109950594659008924197726039556616561333331457497955259172797197599865293419169319713281937889583569308454392175781499503447227840122043893854436421874398268458798281454628681695580960074619110054837768504194302816148617417472877996643054226375203541858777018209449397774468579284383099323906883728614052770078821485487442430570563006529993088706811096970236012057952406875744055896264245175182339207943878324544527634316186408369687650266000987280206856106622186789885263480551523128350896031989592256891607019704779967836017212889589588066017761566730282959317981066699627888621277256568328457087876695095460883465679846177743666395499524693134077650054884194462100422145149084252167847087255163679744873081425089620104272709780847526037893235307801431410396844139127257039847922159005428134354157114228322256831225083288243814670867109264429868920262532852511778533486436206210966329770942361721471731101979989566549539207393455031015065498909827505662570890893754125791775792448969867029103343590472284607877950467692364279598157678148921248028061693619698783569830360836398816229338033238259189557688999048272522619973774221906936702448512892624109771310637765553131466567451847119486568699668589426633853966486519995548949305637861817538292080477569942390427266934352683803495807540434196754434140189580591176797180444376519055117265531847884503439920448181274844617075596038227852428190718802021745896191119526668553618813318969112320726180071777478507124919671023572742688271030673567396512421685885735743650348253801633489184817021984171470441701101417073086186647064217221272079086976054584811286874754070071986064094944917760497178790131205117421547679582784204119508651026549430093477394851565497623863309818757339682678241165173480745896320666293882583135569741042705090608178365106697479662059327693641540203208757948616506214358260647983247602812376059353677255387671741960961510844513889588006957564539893099621411816339789967767286263346222383654140346457449611540553457294374958212237152672057021333774961939297140009192080996188214196511831054924290826888621724498302165159578684818285534870869776197618810147807886801441596530698870865924108538311671142116038355577952235872640817496416396975776685811594645225241099395951546437894899721310262538556389989902541246840098151747169483940978442334665932433929032086159162393196199104179657270528921001371134992932985151225379387114737625694179544480628927349281404965000031873671406605068810377870566682490346701946933796882615728991412218243647802075656337855467195052085883433384606373629899507197484922244624414947438199676602499532263492452199001358269289976562910900134937268126604239568879314712459737923799215214188492789622816531242948535411717282077408690721550223058835920722742156259515319744486800068306198183295709905619000809720724710842331479778535809445212948595969187402125832457216803510594385911779197896425091957353232090572251857976533882675378636873617246345277959543884454778316303824995107263576808091852024649994752693581288794928983295270813465227134951506975582104976746794238638580603911950370802353713341183400617934338345358628091933306397887901524922853311004349710935476845980176631177509237931510860150430291420851505252722803507319229298070842467977334826575588827260981649890530668517680825836740605373130992204233039619457852046329522573263964699014908886158207063221007118391991645527268187244399279737936896719632580986341464827611222644216395674765342904690051584907422347169556857217101880379853709502335310430652502839689455574879571922388932013396374325813758076191095551027160709639623783359010118541457703014567286173094182853895420472102065852273427776795709784448323243321948011801311817147765453055676096954931539298419500138949936178855513779835410567018747012203199039050090723766185028117108066442450397694470899251001120655213681323415162673537741738730485106926071393903362714014722991707264810763201171379370270911777962200154891050149864719006553516276576707252513700010980815608205471147260946338498793810254551664836473033780444748423790289618743677256572613317908039343618881774292081598153352205895481691117220628638626166685804397196896486379779207568977251592422382315783623048898055917971952188949407539948036719460854292929197536605671888889805550636939965160927661706823689551749665976623195806786672354412492926971660040197057476858781697731352300234105438176543815305418557787918732327177941813556240799285715971572187271656048168353093653325650958899398559109350298869794187835405527791131906091540101679766491341672093930919670558719967420700900003139530115009065116831253968798150601019760895733165921104188989054910318847969069862461078149747830615834149019482719201941475571383158529215146726858866387038373838455963042924544184464615810323407529891831998320982979247241045999576371441953687812711370529471510130362322111673066201560576635897391309534613803141641884798835726963021035318900279804427465795920786362649439569735962809474354174832560145692471775552180649887413999845590308606484747601675791411287115768563921016968892805056221320085402648543282712236981615158863344516100641287808755010651422620054074173612970072396114029370708267364198459625759506050426384345126361207745975983988516413149470817202024572412150329325133539039241211713718032833178566775165251344407314883143940185093478503912229514647429641633487973275259766112878714228361023523545885532236389769989182705612019471546401191658413600671611245810031256870199671839289144842369559774332984310433578546390966306210983793728514489991516309410439034137623987268160708221014863468731573562722985617275811922693673604162024257061377915901250442940511293120024470635880388829310614641527022170492220028885711540169255542379946611481700477333243864735244865701831386906761710289311331762323387890433862798017911196851603241651748659277726181478146099190914235801024670523309803875885789575462189312719010294401422694540195278507561272693899976892836584389159469350213780112375951132891048320781123471440149424922820331140107072333479768154446836720588993056891256653077699989893020333992920992275913651085625666669434434975055302039292409357851428847850094025682862350788045291964801054326924997059183395972919945012837247938191386341569997811942115058556812416378506111984402814137754223840114720787218285541731861026301391359306815963333020020183155521035977729764769029913212263379175665450740975911785185166955989278203494410440509430501814283957825650063092375089817500810700587861235410522753450243522725575934782625808388110400369167619634694138259365517010190319169675162450566617462874333494779916426835437638976982847286767119757329726793238882342425161415309221904379022105500166897825728756893932517660869444029777241862272810550135345944827133128029808943701174171423245498653122626423893251895716223731674512026785520631071597496523137031540479280342940513762108272889028956800241640022799001522017567610635414873330997827668228199314047934143904957095269421132544567280293225663295690269249540302192576882418152099841593120561388209953681961291063373272019341639786406028003353215303939688999556145562143339215427645352730550508746056296503045784388510709915433239866957280484547458180445212646085430718961802128075226872063756831527068061115664775811492039049190927520109666747778704293599181412068601940101719603766725349888724704504570935754725101974059590618747546749957679148721087626857157588141836539742203924892214056183412383783898090385942541837985079056128738785489545140943758450563462296510157973808172342628424977071912107048075712775253783554580952650695962109807207116718022705885344182670406576968158294174434794532641204089011370828824739295882847395482644020182857897511840129577586174754845209848622712079995872613927512314124367842017234338563415670818749158096539962440869311985607003657199193268610722565529190813493961772505393368312594486723121235570121275951729702793403708663871906480211376898464858424273722824781281797950968156563931208323655615466218033442898806983715991277857824706024318463416062797125305143406376806554147543881906443225981377763494381383045098606812415297880251789742034321788137561778317129098933151111766504377743746130430689751369111279367681964482613888138333543899985998031408650549874185818125622277269761121411606712736703462856799593668983218964016684234789029302325385623910900117809485357868495973636637930197846736917029413123769788792189159603716065455550223620964108086966604350146940830977411232024949994140318872655381413640203362821499661575773743879798979245063579995721448979607642714818802527856717744312052438086273064606591900737173104927806862723364444011729529390983294949265465064563730190819531754132121143272376309147458054545589044129218866341965016543862191378883139544039043252876539488392474883568074191226364285458846026716336425521974534345632206124203483384445843798711182511785553462433046942735816997416127233378700647925188337043485002724729863919846800464710973360880314096777763562964508000921397758216775528158910925657764858975387139984572970682237457105128977881919121345405615010304051458225869528468022952958152742515809227157677201324344986414163916828112176611948009694786983138966987117124303799667028123659715778576369781028095977434706963422573541262114242267241102302494577949945760152454185864206168242750258070522540289463898335466425708641408641608165515783427312280958169214795034204760115813164474524243709811185088900774482169888168576655264541956694842214603990373371455955617853179148348555783569956487098546501131835607957873027168659247728868615648247155094317428239996681119316096766074879674362105781152236688997672828449675646964446787333461537995584780231705618881037531589214816167562961941555514591834475303788643107568078367496544144543585122750318335103990589090504276255208179012578660690587441986480289531716011216746538764271635242472482768663387907072820093564871164052761969354209759096291740372921866816564266403827688230070553317178791426910372383129926594832121487552262994611173871325692084401863292148792702403472199275548561253126323130409502657312235388044692297685195222656063585640373102390857804046399122813323576886827468847041552962919462577149245056857465019709630147353880829109528716336543182961785916994669150994829665270538203010798178545536654579389444539210757156463137535688300216923513513319138280181151567581058111221242905790893900010213845918409198016601140624228321466673929482094823352244305162701306935604919944001829297574380408643576112282419524405061269045963051304059480605223810423148016149051979108790387288007126699330802421488736934330322103501491125400860719260102055309228415941037879051750666987646998302010199625221342380571276853016195811093000460046192597404623699319836502509983455539904979566178250293046109049519863512240701253120157880074681246049110332129878062205428708990340730948878688495372497517571015714543799245091788754805249893297307174580306837111613264011774405631933049608372390600661658538664996198617210470403219290355607089063325373471202097598220186272254393519906357484703946718367303148041419806193011337874121966165529835591816421564197141666169890865501921789804713427085777306970429268424561434007962102450501633348747717094015891325636809067459116518087338875514164769016858618436180469157423796708219784942538744261393500706143466457017320392018112791180707329132677433442058921972499222188134647355945450383620872838399074194243841453117023709253547887111395660225741197022053687932693810743676887668592443691395358050533463574783419293909327201420660126488482534541966177244554980640773788140922926180713399317083425979145321524230959105633152566442869440356548727933376498412630936427846701718285734867761025902700745504041669820277505452241764667901374759503102225044147106025398311871461600990034058954374508916997838983380787441057281912861273336633275652130752693708319840785379233015627778735110302556609255903942653973084232380126850165416849851699530433113699993042999735585368706811212097025271440538800337846895073956639166916443652467936140091227176223004392356130947429541900068783022072854939527594978801281739321458186366043268782704726178822848241666268591330909593281294046995096498051338269537440084971547063246211901344641861775360994759986343841394776225823397580823976723385338776895146168330851629863803641418184917222450205065055196492478727352257148660116791153267178993395370817605991600886624916319612717763325745401692567149368689753605272659326504774332796172495587077894655193136665444718067369425107830822405196749237466139397769448643415742204420874395211890189869012210892986040263088956673661500736283954833249465858255286461376393028158554596894568628264171552479588081013505648236537397428097200998102838275858026694755875209591401048231966210831951846682008434597086947627749187209634050783496601587468770578959802914424816022186175994025202991856996070478046451421581808743394692279492616686501115981390207398917545619113510790142144808314866648852696006693471601117513054765544704671928675626082056013883150685704231595732776345386661964709472785871424055469080675133163388932441180796863861452938635852046332174795846313522808412861987043993381930499956673794181867840791502119922287192841058805716888801297821980802956055569824000697528283960488259114011001788552252837106567718369184866209677522041152415433081574336319688988022878434269711472276710735088510061639138546111937898183344155069408433243912087828034800119388550255584113026296546589756072669836665428624620369786428269766424264063169658591134867761387247510512074473042927924532852016837554816655236060039219347679087535571931672555246319077274966308862168594513895124798602439653211380937725475241425540352480934105181429467698152328716605752532498499850610279670188714650041329151670649651712492728401461080545499556363208242472859968579789954364798863674367945891407846963029240751266530360013308200024745596311689362361128638163494995029653416744784728583655198346323529458682264880833714244329595960821713193825357805334639833259563010959241443449878932866955666030160982545791159202009855564774702561162490359181639561108467531754024168368811409341732241637735541411433994586016540017048700287291731714292589210756534434458972399455654509974251249170334258001367860072139807585780079099473628773181993211526413265187653061619908456133230884221141668973421477879513505711261259423208974633442344920358267357208881742631078693527507102271026000623766509243023232730754384768009224320549344164881326394929941499664426786881178907018453685236219897951544945425168943053442352963782368635775261031071944596102606715714670008567078608749720115780086244600606623671713357425005108499858472641310655703409376019332289000504752629994336944573909613755847878213086112407827985343357186068366473205508301919243538943055726344560498172437484409231836365990963497029846310031555862088642109434744828002951169849687294179849199537902139425571560622365069322952326730178721754905099428144729978000619622791570394041240208924168831660504401417436209628100672229171134207069244550265912702369491896103384771826071929948236638072753047305914799333038473658631418950175245743824936929087139704988023850132376903745329315563286771812121194895899971550009051324216338667912940476386538714042197729414886756322522137010712459669644837354089058410127780697204386087120033874369414888348244094218989624186712576302200107071476458237002493632357878276317738789410804446474508169115055683698347962986374312887671396961803597609808420079763616163880582638287116393793493721993176919312052138716107098646324257831477645520324432757329228782499803427101243564533358647748056958601807181626115945245609845600754635155910347785217236516555037828916680531794078937253694440994668059299659489038231565344938193364645133248507588110163175003800399848830224139629731158809968494954429897873382688282517730399708895386195655710246552973052523177789090809327572943043576961569335670768838907688362897988538710142472191075101153501795194378587438037408008430628550397304553249060313635816856684380061105750802159409261254928452479534032174192489672107242218232312353223310145648467175371320446744312680126203288409212305206323694956395268967594271193668714809861832096456441529461288400214779027128006423646039345522026581108388843907900905518651639301239993814902571708986979400315765508333093634797083126671524059004376941331663629222532833132815366414382649784896997212398888430165578193945694107934339114323870245924012527468986304889300668121393721078013673380940836298888450442635082297488318917996308866687328191614308383237342368439853155192922400680493373457914427236238049240532452735925468438834736894393044325546608137589286655103583647583735740173177968402842188436512644573188139804357952948019711331759780036093278167562331175624822038772408206958817894409314559545579111087395161040588974327760685680861827290749040314643725004637360668216205253976305186523719158291994329692556781405558968216963250992633750879600936685971158139715534789360293699787255228031310838111547476995654182751687941531701659124367409113107694846375316194967222898545059714340485208749237771308987277814210365282680267846239330814236323443995789909309398687030991292708021649823072227610185003272657975551524141799206490942577487600739251995584661334797895281673419641109615858439915883874720899561756357206015605926169810393453580850526066992264771857331410959920661778370998013060669996684426411290180963813932893227124192559728333497088080168752078873026545099672948624830114500104142967633843258150387904353653078588340502066557059807548886632171766584813548385969780272264319142697092977692974616018220973568161089886024409863759109651908549852633213499729210897262091045437205062164000088042780613441329907468598125068856467727891973512611146143198978010726920374689794403086387072270904204187719039365310077436043499089566035195334082995022945568531141397251200781507096558517205851884861879631590077875215144555519513392012668878129133819401378453214834871978158185472403542074731198916432263764831627192764594909896776022354780352899631161266962844250359056110997297019724244281089486928959065912686744140060607954175234195343660938500432404290990881639036467158083644238538857739629534582263356965544181675082417182946303990685896081693420901063912362608218989422641131496937108139194704333918032555107434614529593735600600233384299812263865834180888391645673775732528281958037718146129667724738131692482255226341036935354484458610968623799932646550186824961910575502075450613286723952879256987663187580947931251769980090627331296482308741026660810776439031039714841893673506383206329976695112170227882146482417433392748084176918263257741125245588515122874135297290242626388006630476635241219434469593389799612378238538635683255092859129941331439444185294348392853765277343088534439227175836353468891161819892749291688905354191474751483419619152923813063655554816732230742726752913047152670709658805364142754068661431329217252750172984475494997210472817508478066808839417915991041456922187829310970534973364896568204702204320307986079750370895907750492864051068843203252930525734487972809783322218670466673266896119273502727958875951450755133122158779573609541209543455756088327505083638897217580613684028098315163446182064320844455240210021247495637392522251628407940398932161263290439713399512534591151657973373872089012554339245724618162348060917550321782126355003700535518805725786936761733068460241405168299409943818723685631370545973198834624674499785636027091639667802856600957762732474285483647603499262295580405581639148407826433528855523265766179618015789961259409620785547586963712013382070012887460418749249814732291095185981772504115337457866612705959831283879906487331299732900829599390564964614074310398864421733519132756915350609411807699437334687419346070864501506046452603095697799409161716126775765498713268492783979770907927697404204811551696114772611198637693249423854543638556189204809734715594823763968194871798577243971447134451928074846233351731731600106374773747531572657316888759364061348476360148913081163228360072435844887191964763980984818974510286529963673139205665129239074905908214118287955321047335830392092812714094092697201344768899309787613524118947507558940932210541760205530353271850292719951378955502589630874474530839240122927925037117115556171250493610119834948216233771003018047665881735282942187919661638198624353656220017889727129968075081155986233101215608686612040073658448491010696764379988550558134979295363842881092859051255472850499926627337536395181620949690746379609022312330772116890544427055158249537108068632818668884705157167827255492949281805675076116122775899507304294136281604116272092745318753550165206838118203189783183812402486646614455735257024659625606779273012491351599326905568773243523821403938289045408603074999727548210641565657930239007433694940007512507626212903480259453973378805095889084263802038968590361533143192728197503595173317275916178546715764332710991155095118148074393676105704615783517638759278113407004652101939082124125149910942071226971292755566310403243004368264137423961282840274210856453801809258617876494492195057253934568618719704405438623763090254226336553272426267434308291451875362505349723905471461178832551654792311144814693695268533617417243669546327254933748817134536603376875447532908346350964882835670276348124126123130823915368566193953944279501993904784324622766153784166054287053034991872570141520741901254809657677516011602899764561519808281362456787237704400115674896929530063105053004716588316841042915070504794002365791812038303569939860539988896213576454764492834143469477135248152783885554602477262258423864984214799113477941483206202690708584409314279283875971429621449950932810175739395222295445058804328382714826758011603846433276872595761975390286612806319266042345932401612459181128183811677667270418933889701727028699305129859640667493646492792616787461089999050182410217128439480875478168505182308490360533125623584489925297865747185816709868354473077373953040233326031123387318155454940962301328339174572204269075633459297073132298267734511030821619012651136360370562621359683650004913933753878518372736110895828130449222346316157667851347318240873002567907375981796942110172080005766118140880522206236944928453444353508573477384251020745130144493650930578329189406793165779554368759502991083379942079528049579735339425060403112970138667075996022649194575685282070422583344582576612688231181175980192316923640722481849706464980489024034243113575049376187261726585327796077423857743804411392334760552780309753867726541237275721974985096277651490495058764394154493680958316409131402439965000025080178617785722435885490024990189100179319506980076777698762783242710212145897915373215635739483555976695355925725680856152799541640022662166685126737249051876854440193013614891204914965326385916082858193888380053558620875707408251005618579870650472272153226275279885230579254146176634387633623277672869858475593043995469465693493801652376576914635734418600194643406490951013299958531945385786816972154649641216480361043246980865186059873596047190021102263954817930881038855630075785597483487280363418169660940165888502421034671293676459826286481899988417288364937414600172052643098263508602477923577740684236509652664194193114325750974682095705057715521054119594527402599814090775162777125242409595675310367174723444645382914160671760696710006127119523595087445569401087291273673598971402922206869091191525428285906981250569609587334697330596205691580232307011434214807286050086271880970733151683226185404181940913720896205668155170923149432181018159959490318332362949289639427375593008313041201839287113692505839256126346946125405812603719457448913427825263563592262132983109710429312133176577246293130797130150655411241392147247339695671233183385551176422277399489307687368870049926541058439339257224048678834526533630177520080438927716473049916789404629742837574168622880265064217020922621448490826597069532473002982010406060076273539893810842408950136240186224766607942304539573658444274337678109346472341891557476076668954092865806892089722020076121254601334832115900841514664905070438806211851538804090287039111138578833622314127682282970158722265140832830735176682669318527378377026491471691003595554467604865126891811644823350431574541442443154049619265205014242306265256346666742380917524919397020917022697154918176574022388270461401190054591517891687052700165128618270469807053416521273778022635841661715774201986084123253818245120935374823284089779884753229970722065531676653599314876716646276455240975812003570876506959336600730281368487815927418711446272417900397422292961096445502377783935915051771847867971351143319853250357247873564098098246613812596441260807293719461114291421643132074829995902096417268792860313370824967915066395336465648175008814996444442799622961762995288321960917044659357244149136158120487623682174303679582559173552349158569472612689348738273671546078549879895891253753824221974594389489177729277436805603705347477254111595574349584851688374847127168950108475124470162000308441507449955586196498388547236701226910270267133597292453395744540423161966768313617619011740987157965325843271277578617731794504011820249096805620550961775512093983955347848496417446552459229596598810043872756097451815851762823804364388193112847368099355067823727479949367902271286459100715172985902449716948371354009726922857265093325186122658466644005355580890599594945754818241284460264738691152070543420033981045763367064500129549032059367629514816892856810289945100332831233373735132271243933353367644624230358401052732477475407142285850074930224269409883633028526692669159649170386108785021957523416103321949019854179143564350125380884328158801997491168743324427283145736989236479868656727150771243489405674319851553040519150861219062792486865582745578752887453885251755265317451107235745549439150011741040452042561022034932176405199151899359473839981540191454088948292364342938023300117076936905555487997802130458470970112076513439845124781168527019641358607388288710371077638122676938616987449054085645378407305382457683442878580674288400796808970486071882059246515984328775726808067321924435197800715711429750472707104940397152029773628500481930905544314716915824843240125663261091743340601061026582216190637827757360140371474132423571665443698455358759695271969029640083146027719999856376024089375378810525865468206927635607785276131389246598436512337229184923949624748121493302105743589817611442407527655654684052887836711651442152810021107554877702911344101115329456015119169952240864420496873422452938710635529928690103195547612755152935030721954444353572012605972258686987067743135056528135265677148350802975559591664249409260964759766086448835178360476955112307447819436577283558822230613036760854499122337720338855461861793871753035877021061998907429498327515897935188879013770336431378088334287603389920354433499575602957590375605611761559108892234174391801876545715204120585907721052257941443917627885427887255941716611472607242662035334468709402641734661954757325691693586034741204242742171723329524567993951650454123248600084411553809745299719884174131763886955675575434726147874765825654846923025240401405126669068839575197664528321418367253099136346411136603244097796712632290153710805206295903920906774718852922618237096844570999968876557840319169047786667198841671453093764874744736709747215052585312220225406855973015754870583536216950354335067194665789842427502682858445667618892199419015001244753907467380876312454444145285263661502952149965418037276351291920304310880716606322189495177424840732874499069929310818241644944914715707382862205507749604174861924886987338896215574533223981243515070494506097071825860058662679208028614365953428649642758950638610376668182780113428992234508226108018122259530193105822935393924246404397785085760387378737959508547500692569663508554041404302298968832561927668954806301810477913261473736619659285018425240235006823796719028962557028274886580098693604978586693804023045787094250109395187828264880797378507201816483245165931952348460425353129568740660086589021757056236725108375279518162165893316475487517204259364637268796878484726237711646944489628905608456685261814971111698095519720780896553751769890757245263410580027488826592200940021729955879123301774792646694477950644912154607368967998872942332592318923060066977567897050415652308381430371596817035243467271337693561180502940432427696565976295367500991948299283788652400913519504278275300548826198898891510611448972336053635025446370984040882863681559274734896943378653099960342013669992617426122100814086978071538675148633014427157846654695910698196433422938057116997205187966132283213913797319134873850614236182837248232726822521184927188649646595905254551710678954958107415136508105225485108221761569127125060509698892104438941155362282520645328414825667259999411715717458679142911696512159258956666677240812323596562097936153204857085273761860759803757015393617402570222984789688523441055257265138263534881035850729529489850750786612873550731239222409241899472374138974793702732400387351146307022626724242393038517878357171407571394427204153031703278475327672019841818349684970784796648451904672825650108286890560055444266813642669647869879936003795353962603665127966768207458542916519612313324030956378781486319121495949083473009679313649444468009821953321321262875323249981252819874808084290005970007252472080021903807418451196565481917567086383632713450467077016939775085890616744122494543552354625615342526726595790096475101721844908234328137734584370071629669038629525604478465541819570221385458986065607610380913324175076226328428566577208899939512313655464258805598045591831406296668414379435467127418994634417187204968794069137620296094446075122879167259455600687365728291641216494118781063952108023966700949351162628582629325945490699345255705215135995726917517877906644345222726797519327624769181446257191345595778185114913889599507064644859754850135620449121209913350234328107923158056819610948145513217305924732295998243868982442620063182716789253031745746703639840327703551470683086242049819195273362659208411162002502057564070027416691100011311290835498906066663177868128216715130098323987764707664546753676137431783905025324079846407421049471999587424264619811852945782529087649810559084947863383635433098753177552568837627461039244441162191171270563552024660566494355918340872353206793610441385006970081581535997685575402815733972121346388785411102463427639655288342443455424674418233923236999457028086368774433439216141784968079353061769946911408101086998042058043023025409116783989336665842371321605268440362977987935774742473692735086379669596709782898515268845134415908125367277802178255905160051375053111076420258962587045884750940666756216219504356938658209905211968517278675632625452683733220416050208139961579230133681328371681481869840658965173415857710422638385543372184100698168961459412896124934994371600903337547896122456584385935205272624368823016805044146012183569722863189449834625183258477810100260479979175423103425355684798750923442180500200095644120475857189017698309110407140523392330379166020563149971989523543719905705875257625278700048038674389264850468181455213954924291856016498566075593239687379475270250384607587082826146346826972481803358704918519008419412621144551164832378163018919518537633417062003712907612102671314068409962881154950640791145164252977922039841067146891754800816406461858213526977537108898578938965044874592481587643637522621863711320945355861062095399444539739295947370825436276633983677476714528528736786965577676900507869194468566770784489448247738632070228791535015410565286456088001456793572309117842369165144644058974567012710148821572291229310548242075518212390294705515680749246835340856436002828222188220284862461541172305435191091122064734111541209808116895479007276597785213630181334192699540517652340494427977205717484751361196034987197035653661549300719802506914369529655624795055227625455137227000396007742582156280385279868489079103075878827631193740556232804992201078344751123407675341477057053264558424991713349731220404316088757244795838450437873124846977265665433269721087228970972760264872121847067100507197413394023735470413389564648554260783245789489290460412607822267807951395216260155422160469285524739595662073201451974692637511258624645272490768767313734990959195662210885870054919855871821655607109707288618559056930215049947733950229298209907104872819358633496601853886438557579566435258052784555564760691960457087232282553647796535410966322548882798185285000397257742753414011624256453660809654279423869407441515214932624236247009756785012655748042955850618717766715239966271335731812977681363652843430274333439622557644783717781252286161440765242617280423786182542681398883534524520907718125454008952684736678959416329642702238514263303472757878242278463489550329042476955041841268823144373087233714762290417395894133832233149186676536976650722641322760361872140662167089970120649208496549199450694884594301116351063956078101527335238735237874379690486519153536817078048966364571918593871400191976301773475377467381487541062726093580174722978997664694863526345642222394739762173087958842557534754145693342591387939603342544960983091452771584649592284372620263596206141452587777451470032890641174484986257035275487181062664267804713547543398044490918845569872255998619653041947251501635583804294605859227995231416907090229620081019991586174246109782681401763236694339037910812048909920059609747521333013086474028859508511192206005588286675851096919432461605359818048992025958470679114559284344047778954287059237502581789540707505812209130779606765241694202578927175428962860143790370778566083401526483358590721824990805192404977470837676977802377111607067912651708230086263468493005454663376169520155156908371992677690273190093487727897550768226360115381551133790137888456141099990523417398211702051596707185748163681701628879050842852702105632008619183534144526828673876459262859922872174283154051777251994470150793218153800043807539610387988968604584572656545564056612395043717330620301562284585624873731532730012124909366589545522308074791322835434764016013707182576606661487957710086654618005715449507905761676434328488122817863230100092932059271484651321034858949532155473283971283358483127874595562467676873528851924268100113641977237666510601004217664915451685461295780677241950355439104573418165058416443278606883933079034034881217441749189675971722377877350706359246430656147212613429028774949167153550110002473229953723569619881547030338215154580672357391008275834386644419578301031117358038741504528523048878811400835554351423876475988537493030107766622534864626989985038370233366329426024775486644024124295588479467469503906320367017845304313308528521460527027308388113956594461768976843662185111985948434679516243228808970036526601147948295647816496554572292669762151421187432694306493779491891403424712425676943214154116647198842678325876743987406183089341345949162718324823775139226092461209188704695332088091465457446556213627742199191602528381517569669663421531187479774683930338598879212777244496012578920303797733101089964844549505518748595464938933569099007459213250354719578231567538415033737497819990901438746934163797467884889610460961669009565991970346368812674396100473317580768104559874703775732376744273346890157255386843096143958023639482784232568107296816791507898613932924018647940247712467725724523804497935051580625423555461775077648610926243802892224799703899627248182152475075371138451962349189309416401829603685408940359906779188066343106587662240317778933383838677828254556182226696776553826217382687467207735402193658680871394400131600376105942864983730995007343937340835976765391988354180755959258175166804740960774085191745870555114976434364501198144897077464378079607654441987103305826578716508475873161448235516070296315569432522715847985989713513952052042065181048549634238437499774984872149706884911039586935652325556322979566015087396689770647385557457093726843991003505628988977127588963464757017661970674657115026548242596936282334745650888028702395183942911587659031740806839198005554797922837896336428451210836059338869080478212847004903208299120409013336803219924996310828012193299928981303814456838249122473400835361338075664429543418256069520175970375660774628568161680783813152698164559929568305035225953031588809759717005603903038890792359447214662684105124832165497233923660937179464925234871134344298203041029610508904485906183736473859626922694289104191839052471880329530312179957965681514436627177866241086132278906274454354479625511519281654439278870126901252242501725771068145284786005987093918258507487568730721695416259256183053546799227095387615037693382926146627691954543006588199130043129087777842677589002213956380712847900032085827879103040425190584283748920220525079812924345623360688115691390812208492590389869602172475776794493890432551970235340737224892984549431432791574554834463093879709209964293809768724738901638312006639616091697934840494126189675433534067375389095912676856221112302648023255739155286318643115353542580163227939679785149200044650216147211089674191434353795834911823717975064405847249344998303390517102189265964806401855711520206186486176777099759205581499786993949526640488580660437077510269276671302605619378759285707236066108806895965917785634734711906958012109406591327215484223357631165796558310575315037896843751846553877493632833888964234199443299965547202849977992781557284524588732395689395832474485642277783514297467725262829832949661731698055481967581740591716491905459404925138087762373803709531007495091620332023796185869113040746721417388171734515125120681542752882535378448838364690901964990319720250295465536363150009422493853879383300160324483380820414561085310046345289899793107608591853541095044082845983221945106762682570318100588968328333036019064379496835135839017544467671243776595879204804173169224503475801739792465925440543009673343386464363217165636722976227658312222618822325023443907144290069457838489635369646999012416407170062826040852305810601919718077404327093157489479205151162852689707714332647714605695039410234649383561134244744042436941505372845374850556578305879302778762655479461145705544989834156991443632954006200332800310893063502519484207841233907167732639379166717559863802039656441703347378623633640057471346817631289605404054098856077429816399400051930514180963770888016909459436737779129161828554080218914998298046470204941268611551742474119443034679746811945332087238921394386417759227068803814479642178503705377366184559226834227136700007404356290337901131429872106446329488126003524601389201492287862226106196815446843598668472172515915843317240611077956399753237251850537625175015139960150549946967234587238600482007314529249619712757787940729092231263423823247147611810235965022237470760253928742610409578070528957151907400899466197321581760871622901788098450597588882031378610469945632441085782553443572203873468218165383005609297165885799983932342997620682860567092494164311125815701737388954833116864581279180246638281902165189882177384161990533729557029164115022305010461293398569845081685735613239515696386556246473334256153882441489198259026026609020648652022981870620879922662918941555179864592437624071638111768719217284832778758555520306993603043546845206980017980943117292154643576075075168730334427731675299561553343770253702423057796229807991333660739678186663633330778974418651537271168799596174597729078748482332887887376692320166606052165999881072718932532408172647513081228613194394989386317451864034562197763682806569828581752815505466147707406662253113442404742558464736926698727593720915275657791232038498778784903960480312312312017204023074208324328620807831701899231806139861291645911448074289523323165723274075211219640959098410797070913421840927554425129729142711612027605400369270255784154422578690667258978805837901165325334677670161730235089104699473389187515941588275078432474820332793806553276863867967179493017653914776250791704332367363449551982522315332631250760270142723371012473770675129895026032658353038926447825828350291236163314327019705065063935322575762341946568811280406680676731128881417475787337611725362086718967099154087211960947734063422682831877295484492742606939764375677016009693536732779404775256589970848697881322302527275076280526456137165506325166043973746390550256988910507104391314255630848452849156053067645347350006441659610579030292878184536543903337881689666609529440873481880997908943328473576069364600297721237681720844833251844416521852945150166042831777879806064860033119084971938834358401007842902761044252283966445075168624180178597588642548818384460085126336582486850231598819756111560541417544197137957930639391037099903055161929741941597651531373320344456082882294381706375112263370897445002362317843835524836119710466648664409857463010079761356298700218958201544475167307158016802925676198814738631882471024627040429343680592395970728447912769740080975109956784264916849354826275852257856461933398321555772294510427987567716891283303765363542596194676489749201036748594657341791681032921114944232749079048207126761168239103957567674678581671787513239399442658738454012476422005848607264333822177799318037433974268947569741744028037031891256603857017387936877218087642507284359111431618451483945591923985452011236506205759270223690740287011100367031614289585004741182580974117721500216022992742980421397265874266321645216471017737186785910092043141980703318656920235851892048308674514896448980791350140638837677122376312520544783870850535755865559083034836499096616270114171181634041138612597145954344580601461682705867317856225197331924179591151808595457705111870939076740396521278796065973854248035831463534164664469549226844099286904237329163975829344020853105553600989522220095613467431064925303652855333372463989221510273580090835568355748534457131879350193371429241123400528200495641061498192030456011381240981263857078382515168175417083219312815534098976061750813524791398140125335960990429151595644484611973724102688148316781909142516218889152332888575810488985197517017323062286578543003593877667585337633687130763582402604252361949012904657500821991801930463040754229500068496476779682395166044480277131039350122205337699726647930057573133638395240792170958163987646870686413478966112960575570716986202262690397765506557330679168502303350408897748870233499550907575257403657273086061546938357483896713682981921260230049670876421461290703174271150098366118824611606300833732098053651554479950732695343898205757633378007651620332843251703279200917687746387436461273085439086281078493688890282423977295441362410843134986526310982969022853502115257290435419569145198417790312919780735914070397870560775566670644644352660043649022283327487346580706764020126092646659646892347200436658503387782407636347673232729445973718464966488154792593835343042318060375601220237973564218933176189115160918749237013649997279734152084387334130704361605772944020885458064422052999359097717182571956235499768902961729401997369677690210430590047453788549552101681861355547252645452060716528470824046532408936511385329290216460341443495434183197696310724310581484200716497674808005831840100051099538587489232038683015365600484123428673197711033107749181834908824848208080504621890512356089769977751528036358405402158923092030604531346554374531143565295521050364777966539680845720453575322407012779225398360425017533012494186773935045881109326874916369124180762919543457689163293039545865893633582432494490391992945141307092851549461771002456607305349837520659069685728222716685913142413783606385823861252351359648741222307298831043839620876756549114644079400956342290905634133091189329309925544275571376985931039855673390976595798654876063989172190660544066500940260568102114561909503142710981713692766766327344717025650769480630099276482380981234855109825703221950261023767961944565513807210677651849421871139187771532336106394782590131972467886945930645944085916428314192945531067755002694593229399247193295215482647781739896761630729834513207451936310538569254892085147695029708704539145274152553814509076270776548205143579849288697822506302601249982476093807916648830758264412898381425923943690801107635284706056331348593884799301967409612333686678533076556362155832604241165771898395778021137919364702849139288564675252628464730125685090849419461382589856323454295752086717127383440640031808487938343336392275095755522027979638919658734331335519555061725357362173940725567692871197908743007627854886054263359093562607965490508685833219848129391228033969912567082500733999550625769413396712743574736544441860508165753753734325475239511925638978191541715654282309578378808294220018771372714021685695855824402770555266218023086150583639737440964127006470491498020535074089939819900140332862971638146348926380772760560225180678434897647336005950264516798308808153933821271849417878135933084899694667634612205394024922003941413865164317159740438967881860544412534976258891212211865317563198977756112842430466517784804820613250439667757542798594208539176610386669597562296132641034816529923385308080939108064054895301831347618528770009364862690342405541088185071328731048095338591010603176658777697960507129089536305080253372951785738440257279597826894027121884748531471262088720481652449022744190435044036499008995596395574110073692104899274311197934563223365991895102841625745024315531956190246999632712394488022787367289889071478919997632493640467347724823638866435293338957474424443374850515782094408518762167377306061252138203909299949591605127118547194135715826558003245283916477270947946631691876457520912316624402460321132939887196256177428673439799268659619001699097394751494115242647551552395916382691430233725891218180022549733437628838109524109216425152988922510042878453497459358086558643859067005140206316204722377501999942689279335697738652073367636565456790667970723594664714956002310048550420294390922246942980272464619256639199561211646774258615343912348960831295948810015860884316577110479376513384487755620193888315515918470195703506769844446664614268073216858471236273679841517879986463836385788744652156175405852783269194442384406685728301712307319894370747943011425043930210182265015750449990348831902411898066106898206957126647849244069024342554021286733334108644437686856088684277140303083852349209003913504962182690183166764000788614401910361220431077087633849394892546785103433450387768823152864889594122772191551347984111583599998485705468639370751430200612105960539739429559584348085492547477495783551571178496066338025986133606893978025234147720587730140178901488817383536053037415417764419986162301176265810760864486121617243985999089711581569186788344869113450582378783617316113280484385371830810038673926573800181823248431001516461666950956265709472811004808383300557650301472964188626149259307476399564360961973812531311916813307629270616592038746420100913084127230828972549535794512807340085355616902651349390543749937205075738499442973327623380032801580047595719976968507641634500675513771750072599773234623913291188491040762852752435897113416007506458846197686883742913049223510765105330462507865183650567335511473009910689072376460608635267311093397075297207880320770875583414400925878167620399173486783021734713591812488465212684177793674535632131986865005437331137716061462492937108793276935656409159188505902421585529347084003509335138464583094203296412464650664473268282120242219293620463015815138647535182875574953844629416949465697682160150310320417212661006684314004316665755006161935018059244811566059631916648939963098919950981071431861571133536531208418204324483463581412546887198396089291764115092888400829114775236471115307048777712915275368673135867598722974456631403263726875020169352281295909910143867728728468898192304424624105936381668804565916781492573035003444873834742082791814246020419465248936552760750894916270294903735335927544329932073019732830505346938935236367111503506624153539583924398401806133091735877587417966167328909016384293125860200655037222950014406476100166403325105370204297888662896975908643095323116782664953508432294292578515909248466155752976823176783707627163969523532596485891671677370277898659253759748729119627494008872487408646570181993638367129443001535400617249821906655265004193504831120208107425404368418080860902779005626243517001133335107559732221602178710288436932624895733009855200222852937441280420966590280315780998911576685386245531293782066575717964080218763241655990897304204242808866488863223769161979886668898485146035082409738305323853476176490276680336774402869398911320635611366279933461237844977944742449387622480321103257182083386222140934306423524988846870705968401746398227396385517257326354071561135158855255387520769481990491014015849902538771047893502209891483105206799982394033884199423013232299978576018299084330296510604178476951759695113972788244639479277144341608528930601329590347487391406756965585107274634230933382354449943880025015053662012026756484002002459505025193348020929266133838319508238223029408407680938351608598657275481336009807919887977561355656400240956551364797262066923724177867278226317148543733776620631854212431914607171553273640585189396141789834801205001337649745643846729101374185232771591099292821571456475646962186473405695257718857617687158491970757099257406785680201639885808473117126632930565582930234982716670647894087058615744496592440862651773045832583987293493040468392136151410290906740073111066103453031780068084900754938630902544505801434431508799846334652712798403965271848441724308494011159311967288226113433526742182456149350833859435168971885541628524418643179312951323063549855757339110763464697725646997120437708645488504951614701904588464988305328917492011702015832139806107591122003333096232397488367282776384671551713112384739762376377598841407762169725832155420184192361102740769100074066084815856502307108509162108480889400910173723093527192332368437945187905818008692714760669297402646965099399703097323132163543297750395209844947598032161950883267072178096553178644003761492884032476585452881226027641797197441976738805512655119300511579510152024663284838010886088601158787336102537430188353842265768532107068528204180974118668697627347768931922241532297440405476613167572579679106547743714059134107138871646698697388722082888354958011510911091232073593725905094950472613717584861906563428654963295493132118320969597442653987232453131365494390202592211396653470227930415377597860453999117668728400125848280394991960459223212097885442539345656503168348221833882074201562211965046247448740571370526251480186930449595011260861995068322350742092273309049181152893775846125142143794083770636431017437529214795417891224607945133469073249463036075846912785198208124813503199421613613300929142198073921644515738155020391424872233949332279313049612539365841206959669933438921391668988823394538574867964294049999676644267497931873667202643301211373890675699687049412544902603623806452740472087033563564599936842281306691211364785734052789054634935852756079991979092804160204794871160039724558578264873089098046045054092994854074101244337772267896255195377703858588405293094746991273019148766204908103422642835791536837771137653404582754720322180167227057880393368065334990532032239921123157960678768653302554896484199959255881530920233097942745606974619528261270087193450264439133928129114941142911798173472836951822577116748522101997747553605084346260258082852393990472937796087713073996615154151452897408959727233291687624463196404901182555491314366581586932187058184896427067741067707575181221144956081438988581309219641017292815181281891590669939059610597637106850671206952264796917447298977726563188593802179065466184769992875735347530893463679613650087928435736479300085217597254200844897546231933298814807941277388023812589453016608776493473872819807385062199694401868571126894228581153926177279862742985684421661105574641375071813614984823752935831701564055377413592925025446430098371632057583705419512804127148881216180162722491702781604261857965628447580156535057672585797882857742654062043913404922937704119854156737505236926777212273230058224107586904999483124366517761433005614001057111167675567037095449853626194049158132385725300027814734791741678987919091698928740039720279630613215474738293045610971567626686619973464561774526902674558106203053224913100900437261809847954796744515325908551697617774219323669648771736767292237083428934085130055363801708920173069764125551742334249188550055721755625426501610888499934961934669519891030453767159094604089572884350837525750873833969694933608107802380242049357913462376893479612533011891154846630583064658206782465382730217523214137346720384801291915659143556566485354802551034256988559920454150388335960097041854912200331849572834782411004685048808853614328137893964763261041410110719679135162174370272789149168449612329976380028880803604301424752368341352925749396698484508154324006364444280955298599397452850674072132747749397534601613427797956557202498095625100935796548551115431855588843011005160290728570227259040694222389384128184169564868277035212650142626580877312714675463271285586585948642007194950264230723122274518467568329816568930311779471768730478984012362068741009694471804408635874316540220070878260678526558069838151940032413877138625315761937198865071941276208311402386799216292535279705590820541176658495280322522154468475822416179916060853204343862846891306616689505333215201752286185388390576658345954498657760866275664921402014825477381597603826726328812578309988004302422304337456172759998429350248482771655431160751908808958850769235722098021486138764505561708788729884417919720681610120172319843703151471479639231431243292265847847247373528818120697605002100779812060892884738646357384516969763036715382736471221600218716288220044338794810761615546010556714739754311296215286473155317290922694141090749345495700012195381165207581973437742435273263211997170902399203028776798507556498028074342140964563152662260262399052215385163631919888418403574715611183127655000029102418814955835919865111535508135156806187394181354578182698637343647261838375807902131015952371811468572104895361047120142267831191871364648875568248632538709246663933998075730157316310084546679437189217387360119220391923145372150747224519423010609907158170130793759122440303278479184006380110273025591371217595062197862153126977967789377252573639628184040697764817268094091430611412051343776725232153842226565146386757392165167737129348371087341010050417929981279186424834439323119721295135685566241055491031318236060463994857767593704322356525470593574344456186771918090218751312446003546179166845485717783659540055225041888771517172729793872586429319985496931670027569155151674166471267716588428367687826409036882297840293940864566088814091363921102560741546259649180716483135525413465557218575866547292119716132942943681995792594380886053897276390791474953820156358179273807590632007819970958655305258298383800076253300308091223284472467363066398752554436154850719617178395489173089455427506255365176453589269869324272793645648116839757842937373272928304709234256320750976168801839455995239187503922872839486177832449544139856532486877606973992039857216204194840115691514171060493381507293352449565183707352734502040606625532602419128346119643218067568903782929021479793672289272083112939336222550870642495609441769741060477978045185200928601967001797301008215708985622380970939272026453565472856255554839010429376728969853911502696036840045937028131578119152889490358372302044760234768256800485058595613725198706464381317660227001433434536486956865303975195625020141558877751174292100192949948203487157212494989606939455239247330723010889989601245025140769090764592263434878034480469479238413508159187110293280321037630383113967849437941296307399301906281686763051828499128218055466481350985436847050101356157112388293426934724818756465336920576097296549045875226165854732287618134083849507015024143205699899109569656900751825356921524273804276387990518746722370767320490916496575674272950010532936455720132786814746182768063137057783263057644560383003439541513050692450017934587064200138712261886358908044829662722868518180253549098275832856829387579974176419637345572900457053746600455980283318702906820963279603807986590463819681361041820843367086298046583971195733490501968884895096073498171005529822954967698591026208523928132794702197199658082002301022871766531145133394639736990924529236527368296705083710436562919007290102357444088676411316514002413875849389216863396416543881676273008396512981877779238983268904313954179185159665451982527025391407069433028730039528907672244725620407690833759496635420560008524216837943751702472556532375711412565036040063937058363646544984648841155848394100393178956232394061600323840770855712354832498278928027191992768323534977605129038876068815375158527800087441550221074618726898942641200031759768318626504431299043750740482796809918560146300774229043565806008324238850557305537456021923078972627670047534473992594890954529118484346151632135026211185440858377547208152641450127638815439702037306935896277189835538242729146545190154118264924918969934654115700853234735110287222569781655738623799813323911095624532450304106749878815921584862315215331406504611423668966615845817395219179636298103871123339656645882520381761537783529989480534624411399988919915195534558316625222932469868643828351250003230818606602853616173787948367753441445777497617822075264492739582238390443630291482204566338864028458153418108756993075056326439586423462158523638611488211809684374707358411721240439560140288283351931516693306304269507948885372713323355397558644208345437912709014520410603678840020260309779969212358150061030097668908697961283933403098238178209375595924662308001009114912595003920079942634445024765273496439851356989488823730651511143325255607388074079910140872315076056493782648172684295988287836763066680514158257826992375243076751485787922113730720841925618440119571315429605965300767120986929344987698589708154538972185357542921500193499445164179663050650678545695077438060722329479357262232238642753045813228925352126451362843634874993791442539286343859826987610781930665651912984408691744540171396817830745968742162318822899176312603986417448827473766642304452149794766210443255742080815319493129061550908182013462583047158333412150136502434667831756094171593106868597244743259553075035817619679318473780125389811212946092317926041942430415990486429409474879427542510774090135241294620584997315325471124916169570671240148553514631893562358543392857539496529459038146861145992096234144226624960320282663397375190862483882843477968750333863971151031376514292225767075942142865334502353039934085934931151348008486770103881635396304007677401143546092056219791669679100706260893690790504438482785449454624704093538723683177255722491969054508670527676920096499739529763628260360583883671626361466174932028892570072223324540474766519703084849227579570493687824246598613902771200435978539302164894010502073049391920918820305835479423760558439443213150818505382133210294310386945239694960980039504812410627048184181968232295600981245301914579546765355079983168955723180403877215509777386906446684131530310467604359931013948744489350492924441036213992857208427653531916045521410121661676759638546123927035044657632457820737624479760162840833044953063490132748635137336490003120280080305553540486180588363555859202378080270585646663735142778669285113144921363142459464706966299977751600419672130795591331100744859373981467031860508097193255460949724796879479180607055895572925535320117368576963970523286097792170311923409618687607492119860709898755771728010728879953845850668853333316119204612559965259390658770256809957423601823270170035560150366378862252111427901813117434014100190808468487797172257991958437581304859381521356690728965452018590675840167741960341188488418522525367906290388541362655558505583093933199096159533110683667982345671541617384473003854555559155047831273692690104944139277548301545191866600175740220635971727805651000030433794290840150198693152257541520990751603371940815277071278296117262753776850392937692039763964882551198756657289934876478156118145631470551975780996132036434205252387049399721180601679929355431914414164625777201294962972018772975698125717762478706292435872260191409059553097183019543131907309987941762862268433588313424543354062131537128315662270567769061063585885448209572365470620460877431218198349648838121108720851784525884680895542207029917761905538498833049482796627961489524403599419843889724911199926063440038962024571272767496547825590263502941691551005116076846641679648976128040075981201205098438475472209535030972837949536487185876136830614439885169538689368965206715967878054108408682030014030334769895739939901197573742576458748093365176519367965514687403432209550461751598138967734524531351179159964436886074523039629474989920943301691625917560663106922886515556251602563187846579081593894558084867612902285464909029918362972125454615535507225413033536610452196192675854479253242019593314077376217864684747457757749715063540499333747989653431643524518565461244221002686217844939003267019361248484911000818911998897126992007445158685004276534379906827718833681304797081037272064131551815840131996909131440373782202970997841653415621208086295811784910747604233325238665978008010663598240062890438734070014861108443295802039261351820129385740158683166819859187514875170870194621664213086993385820942011639968791929671599452527589414202963424802353859172732187945500274101936645692619012688030940308828727774176211400473112030694610722084066641127028661068386535485262342363963291416284434986445460331922637958209933830176184417983370934023955229176862183793112127174104757769128549966526270234172524552346659564542536315967696275418018530002258035146690697879090407647752970457867554349312207912080375277566881838706727244950532117617389200888767768307854626593856865160898352998678061244607216143100576979352056876100213033929321031122577696964441260701721771848404497448106336081861512356338285624346370036099980717662742778991574768482632911155183410195713697850848236819430270760536532292189108419201921331175821083006142133663962358942725458066479331991017322250464968376532231369061115460620857777471429651052467633118149586198544643803776259251051471884279245707353513633388520373936905871849887599994917034784134823535093867804863579761606072830222715670314288744336851147397245002110507177103780070276946713506545146018224753688409632599248248458888759820053000653896237591570985471209069598582999071286317428948611532732446248685632829740346191592438672470729352479318061912860173081697749752344726416736785373029519171447647582155011807218844295143938025166223636895377120544330892219553287183542306765919446170988294746910522499222366432327441740035101475671476854785634876269378579385282777416428846549963224583194144420216773993078271890541860201848030440461130089272356098546880591587530185214271133501551224868274326303533771712788122043924414400256760222173994925035235629105551714489505212504728577777817115777054722855985458513230123712631385837290925004300660848760015434605459457400295732972214595497882064286501506191500848776618455491812052256612520474509872007777610603456102767198100067910667218724516036867578912154839051827189753871573540700832790566775639691581542578231715964966305798233395537597796372335617724083559584473749020891829884053352825763539629250326116560208514246688575897082828092782545517879289261057001874587273463766176939403323889114918321856745652896826752563967914635351470179770565181518908242622998671162835594697782233667574501190680006251689460375846460873509170433714915030085557921519641711631808518443780158964438373430465591658350629358422511548154615197485648593100847492592287942510653666401144698836914596309540930173772559925007572377791661853456236596885494095704602665220097265823633840010274506740815254688044085847844845949566461987800365703972083389055808490473312541539639211171135041110710436085100534767307098327969991691588290067140315019816743915593018529126865120227102567797948129464087984840302404986475407943915500286835508456217977658746438824020090431443472316532478197925577988953338585937389979952407762531508999342008278580766271491892531360484473825630714876423909661220335217802782756964927726373218560752216002766700643944993669570031969513307863249088104029091958538287475259523565328285376196095539497145244917061801589334725538921983715002996294510300455360771037814072148920786513294313431258089365807510013966688097395455380935678606297657456662457841549388457708718017702773438884714172025650954623544363818117407607532272140230096817858899679649678546938644338046186626499665249344008063143772939491915654530175446797050065901555091636922216418884135121860190120679383683644036268335077940173184455958286954318094785478757736698581988940136861021690888663865240170632184292385260539893952510980498659965115511727215698011264658873710171594881269943654292983328587750689932416579251875563237981000007317565859815112015553767173708212837778956229474872544726860171762740973006604755857663928803148394554640939040421411037226236571777587664191582578356560388773714461169908837500440176908586439427704809107683484134035271822546362967010236835636352891392075536562327673061945767851731965399104803803690119963852592689295439231381274075759261761287625310884985921834093022201041442784639404289734731681381876539521522546818718737090617325393424966849428525531123524192359181054816555853333067463361162160635786819470472517713676660072862576832428448553029437655420440757119253189331450776556895478541521158054794507134062099285367910777810682064484208116374004091743438922853811586881780025076181658406865494664255630696678719183015519596911523299487736621267639409306028388197897597022098113559757242331976411940295908733531042543986625372562775949605589203506965047834822312688484136092853865183497957666820540298448894847088460144865010180083967513103730624515002521079916631127980365701406942340225918346429913695146387726566453443352333891901233116149625511227523754459216087799303380628201041539033600064938390030132825570297351835080312027827621718886908175822792269625914328656705439009023435633433807463418974396982784514550507182646712986378413881725437017725753937826812920678918615919155135787939625957798744969710218999243670591161617477388692634228279149657359197020244063518188797431789811736481300258241666276032525240774113066198067021976960364123459747371120788117572491536621574872452966950063918409558586180164716799582081916238188691799521915019310348460808932794195000705896992783361299272511633184855188170581546136018743638845420864676873385929362672165869170969926922903681493134627647097128702002138926215390696787493753620811903742673133837382530345799499063549448592526430881241257723237893901549981414302751352785660276562435742199549953481506126783357224841952879586334301073044287940758560013525909926263873918979901714571335630875566750935072241006242142312717857080856399782302028727965020809768444209668842056761083543920711335110591347528924451234270518191087580799738843289672522412794472886837323905894050132332341253992760127277755849110191515529698609027609105277227133928246026665415627859371959200256096617049819996799911256389345452452414551521540237615052689703124076858416269393079769718027353649376489626763767703585682784566918718841719372240428386716083426343276224445977995939078407437443373991145720277232595266823627285298196031544751303830680462031204853330789195719868550209690723732282134228500383134400845283031524575204782464624697975620769178780793463217972577118801633884493951384492651897330838065766535039294712021555792779891368305394069186003513398820126522777999105591316647564144350647114985542240667214045134609150655353676453524084349064163127167153216590600464980695611283943372261927875467114644743997272896679108930642145625104993451493173349480863342706854840020380720389293923271336288335691946479539475794528792857983618160037269603872645660632564426793276023811641551757036180758480512266453982786392605396445213648903686340542026188985207200127332456817256759982680371713483007499222667506265318244417794284438708812036096765502877014497686087729484322983037136529800167576821136610193365025446709771843746195001847882775389478610461380405855673864106216739779000024566149698128867505478161178802594525737409111092178664327173895161631117902640573984214679812730655123920047638224022481916168414779201209291163963215530823782296454659027949274682992008768468662406458319326536810555523775618287442915775726683345915051158681617035459824601768585439870213063116499261880850489898353039185592327427162419347952798995625378343393669024816567735185318111925700861190326541742635293408571417609823485962501911101235280577875519729534070043376466286187595842991330395018344748416866638377699012884638737871820650879303807021132355833018290576269184605758240483517854196384996438310248519457101070807689004311462026506098307201869884293615638887462203269556035603214337129222984569130050130410898033184711861321816403714020572973978115979947599111281378210673292311863804639446910313720324888804687025070272088626151379455624953468705390861385266667801033976518828704330009509769812471860076176016220111100840240039977763405966684008155070651157989867372920644542585298895867375088496040333485331337262342702243933880498183621700604357519139213604248885266073168492136887802242505227273888649770760687632125997884780774650502260726679372054974662727555026024551087430148619766333508711282742566703714805618701191008000193903520062378311322462408643467089770174928144712346246820612986564455191110593874862034702719646056726364680023687509130361526897238185235202685945435369715418993234229523580011469611925551012371767208173722505591661407971682190345859258834459308732465343707686802665446502972654179774017219518695814690385336064984634960026977579733650620668597368293330436344139972113306438504140910862863953237960238457066017924556289703119706467352316215287887293773667797879434819575414686508435220092778056260395675459665148628498771308028382231288116582346221550443645036438195122636924540017327094305871664048910573650196991586457845978553647954872417109266117132967316732006766489468582764430000438179061290859123055753105986190138030126812199708801205667664906815657089275945332943977501245359778526502304161115707327756630931299309179215249343234671853806472542003478655359972626840601602644216548638490612712333661696133198944428182621040700379199252699702523170076066095113649592285282112822412863230685322719066405627096308086604729610214050096934692115527655523353046277548086350256331257453746823695091499459604294881294034323502363470050525464205690720411697621195541186257374082753354565576453966199567949309834948906674772982144953782759035304201225539547197302034500309838001275736072584408382598726609482521191893016510821051618958960608831584484054168689967119343920784442173856592135013056596452003277369928678013133651588376416252378027830245519065664002360839654814903716803452522350741667766909794405769725401396282996908452194135848415806308724320665372667523618055523118657828951332719663514354872012243028364582699399553795529936741748850707238412310002354825700849306894208108937765369741032211670034527870859501296949000974392580606024806887275268396809240124885805109233938381840834727014741790517983410298750914179183854292372809442709743985691154463148773157824568530523373715722558243529977604636378276125652003117201869149022630357949304697371089315009983587524243927198757589714056317515276847079848500610522758458822569264414932127562468762668058120121866050821601379516147523762939626025984594948103344050423097773265416393514479312848895842215072849571860654776124698071182226723872694684295943224370648224103263998585196540696513119772631295537869242097509185363182935524698091593810048893760215087147711880912511648571185936885808520637538649168759279721958592008475126944115626121516684162863243329732907627403652634410121020485648069777832578561674204390188749489144678929809469639813621691994270504878007779640374960253564154561266064895694228021717924062609499198867419578646278939859444836934316747375905770462899957490949888757389323999300007103589037636678877041962340737678056391686978628452270463682693468607324719816873415332447259601363963419304693061593960138862840197791204895833745023466198740312240550734790715620333850789102052283837411813776221995696493399596850955950319841328192598187360555693803235299076358730256552938177793621499508435013625150568826449972567689935784024596585213454349001985710978342968788846509843112158207343059711090203278348202688184194652376930914140990434184473995362030776745577366621140960331081491262857613466873660053956984131941916944626460681791876397304130197858164020839661306340894439132438290784723570434264392244798177323388382808452680887705392021820895536206604564791983453444978519655836723269148387000053469293558122407925686397524724879374254446273872015439615709620499432329054239130016736710811382921155583610016477523199170860571482230927565111062777024893667318287879851907474255610312091972970479542449433096847564618503629599975815993331065560979263431531663248574337793362823806357313867627382980703071723987201577869956667287481939340444926553017667513055900747484273389824890842109787235292484850588162859813145081342450022737113280032618376011286862449829927729456645752212640764332364814172738028982192481231209989979430074178323529017775441491030823167832414173026659034052562638947018102384374078258210399588374962196790477071229533810362501299762397746844573913922508441326735006701541485649460686697904983654491233925903918719263751687066220789122859029975182830280201205599909592101787284617273377982968050449594887582822125307750533116517467444024620041463905686354971529755465771598004717763856951266353075773476669127432593371190217650535714988288715704477412689957326436671572764838582458347218471148620138704949562958812313296402004788664393152255438644688073274171782789649054390457092167129452860962918465725581394003138081367202071337734081450990382122639931252241718209463137539746335235498730053206050080965358379506547854522639038964765662349048437296258236117251350360881029972621843226535146676449783583929514978247889003745199717890681629761590920810259010081674814707618675754100307514576973242638401728652799683061215180136529036289059682204693795205871884218877799397017395824369971725996491487534772225088076314348153639630431778762796206387208943282720241315920253131249272917978205177249290615288353425295991486294767707959593151433899561238108504032467764188812244344019585991029635611841010563060804320813041360816270034556542522073829581486556574401775845785900468417394072135472288283386258133793354273201558846132157794018096807245496226933316870021233820510528209744990114638365284041454474533546864527025468964702243483005318971206267398062583387025489837320148661753683823515732848698979572578669669129193282345387058097930872536251545107623433104118537020261675442420712854118485519482753274055945111214989637673829416820195727163714125764984842297069764406273712512781430415887537663197118507995781837647293879301740018211303459738618305865493084114746411106841937925833833749123921597891436256885279858207652567266140518123182102327566805473220546478425815849401766083648351876130505334725651109034684238822550917847268713965410742305970058529116986636078658119434633142502415533298195256787867389312510961871802166671244322576728723719001575191017225319966277041171529105600815002051053568885262768884340331032272348674609153220119312257298878625758218321433172058736319675962861627615234434919487884846358793012315884561862465111514991911929960616296833527922064572332585207382677727383098393317093558901204387571362347379079140536498830696768773675399727662765226888940016246710240922955529647225854761119697135943181714238120921250462387243305509525012398805146514629958401951747626468617462335217594915409100925874032327633050462392439880975464891324859567746855182625073336764044997027660145577360442677920380065306229830686949341952941323995493016753074398794894334492687385847261285690859443726958442381752664533271764845917502241827633653332464341844072756011159518417908422897152844527103129656807587663328259876818412799312579849351945258818611008797641699714577000622407233506264416875248872514725830644959942259543730166343412483300768123810129980388824554400890677921343348978758451514661300301246517538906054503747434157578334666276924431144474970558492605230471772069935795488739236040386025217465684982478303083113480937607622718317328339439328509187626025520580244530925035427014447728028771060122056766343266447997698859168223196094790970569988923845815167420072306960496953287718739256620560221494927815493468969158305273609805688226949354128134670107984507948943419166710853297658938039373016231967940231319134350935747462271859073326887511184109284860044197492555565454445715083172001403158682311953541188870707404049409018868928813751501083032058471699397504328246168903671508048803173431873611715454074687323539133797393585572387432248260728474328499603341334275003217076805207727721848734298685360380889986751590396272376361861033708889945263110691648241020172052130436830005255158821029626633603629894799211224229487595243061051963720372123325068568670077259452949278735260638861914959922784529458978806434291794001858979856941037394439237406667043189008966586389377449714224593904859936358818507607608809847781943326432891425206210696042825964132550741161088794111321003197499498952180566273200532397150937286337881976160471644748176453885700348379758027628784606557238437684862876690735591534576715942473189965855848349327495476008621212678209776853360779382642209672860940748385507322770816345060844831429546965393241664286094369840935223266506162166766895513932546920773432162627111701414543295753614635687561185581718874476903209636034408650367511290333358550720362299754286504976551456471481917468034293639267446841649793676115305809021744322056524411395670770960269653447652105913287550508958072319759900581524710628120662297119403251920139161773296412538939032121916546495276666135302133702336412788362930585326859561981891469348402441196089670799028631576152047795759904278846639613431992606293353739626345229014585386370843378291808466902387550356306209684332601292727291328658460772702861720871997435308371036548416847288785015293437089345791689323815187407226829872055353975472587623397415112560968871496202282713017072538849669124032273653748541876577913654290239717983119396044414834455631776416345905716319790489422097847027039609227177580706102118780038499634274853710771646352870160083921649192204026599941946728547842280130733177018813144043519503882123311284026604454355167284032690577781866266993161098017969771685974332759379396717456692085752475248538645335861032093918872518463391441956196189662739099750654040649161404323070870587148555010577657829266818367152181392085003964101632870323900709106703293811421123567945989363205838600728089984328552324885627121340877444085014221584122138211872185271726457742081519279113271101471229156111847770244312521733527678306463937284865995875417010391520244317157024926219213770498437184422358728997070959146833703637634934524758396153583087039815702138501480647689043297796857244578895636755637069370003155577758235697735067663836327814732740833753902612612637769561762640204820285117167524503806447251797847726176512154431605082609807265827228544199903288111071974062909735229327820352471624709831829569914009142580411506707101219838169790713449955116047566005724499528118765814489544637411785097442165166630152948251222141695373763949198987111846184371179286439609791130454286877032641859210201933711367746093350331733751328431079477252145876478977300898755764483536413719798396131811624560828651406862313684026358798062358224886899488625212058644946994282260189823609427752832057403494662659106963948247343709412766262845441599909979434013868750992319718232832954776793397116084607290460883727330196997053415645501616712099622216008284555940639440205034687567061003749347472986486341258920201341448569865624054131915458624357170682305758099344780364243209855648784696630220807646049377605971459364365101952178538411729561702159213938116929827244149950733874622391878858638063833906979841013981806504138214476304484559062886526894097384757763226568126554676227803618654470007519404022447327910399534795615130558659475451048476461296993355641058876569939164287247379329901717344018866344288009220514704797049520715449616883259018654567933718431049492285114195885806392205488700692966543139428013488497082737726779176041504333655714070682024465766422220716586344168751293455489672028523920801837863613711150585614309338772625242037377179392717948764216583542114452025337314021833326755463372805789846104825239826440961935782245989096670048680489446785311435506347116085022950755142213259325482093995434627085623639765026684608432311171699377637676149030256558425459053716696786116567181116352463747498480229409113744931672709301955317254672232575204665576936798329928550319385133685714354876622067663295051216802091018420596067308275367970457306541007606063090084348599192429487965900541705580398831319380294555655207709086383952068998049487989388910468041026031421293468411268668881543280119949856175006643735957191701538114699082706651773219203791751644373954374631010406435270877340537912790466193025579496145303556525610531572594472836019901860936809625622864544949603121106855141646618294410376844621154048921043487755962838372527805238072703354291771008429636776326361876269418803746710582502086343418809902471557571893138792134249591159487369112903691727098169281906674099201562314352600767176401173750350611440254673739197498180199341164226318382514950024996038190897134251411425649114622952782790949018444563041904811160465643652253350065272706242828556368495343020064784658696400738851230149922731158801802633162215236745173415095899212526359610282491830275795928347456778306988974924686418324180148931746930063313116708929759426026140261517348053364624024014108528962027754331192361418208961330129954994935673570015085389954000250359338731208311896717687354342608858847464464494447701168859297486117913225757737665693492152786991309289788178637535527796166415665860029732074458887572694947997250365541950641666818249759827348322808994993923069170879065514337066699102827478675125355623968936827281237308252195396160137655768671427029684860200821410897114167709868883768250559746833163059210327920424051061781935882676677534325434841758732936073990254726716063784702272978323091213765138446022505172714509385473077542012201876240039359583422534335052363659200768493291534664224910620914551342305488098340100812787772418291733151007319313936400736891157525579341437153907541691168599213337175146337089616957158350706469867669322929139329393645314565305455379136740094657368980068471150064134627587217743640733176606727952545197939505275291159243144675220018730737324596982786902397414598757848424459541050949869881801802757794846388183769070525875095253432656324036616980596893862503511399503143604852060667856048339447531100048882324728687924715843563747309535901272066606732802721992467895548857960350710238324475251672755346667480493561184055772391365672099503376014107865543922681696461698953767486831446461196382042054075768462281769780733536967875064278913483693103168662680539810692822312468620877480661643444581908315153998309459575486960110102473269702918218506024685286911390977109136204753704341084873145928426653722601477230121977349113234958283400215522657730332202224898265442877239805774992980831474317385366869502930001070733339116040527349999543669778622498024270868834865404896567858603987858025070792895135603043752489891282568252460795711548806503244762449484943201403617683250615795982456787597742129959256783760505372051867868152617481093305439037832182342003268614624606615990374478660749378760009133507172270425033609087774711379404645913436399800309749322609152664420207485583281022870441867964135908014535572976612413254665447453089490708927119865603649439790603546300325351575831458949832459206259804367545647045150271430527848478312758316616663121685531101418462628717734670129352540303669713174861376576531964109486400034151129624673196969827219391370894461576174595266883057336788885802758562601628705152580645147626786533176452920640167635427922227194848243693518327385907570785979099632872403166095425593117851375654934862684333577313574953404949020581645761217705816186930953879416750047625758650011468454220081127554400822604105849727060784598443670984661562477589223273407440034262005687704467210558596076669769481307923737352792221505920545855830486943182597020768059884260994963044604381409858183768212058977669049683970073382901310468871021732846175731390318467394208044630024139510618379292022753312154598345269003529630473071374937442632848163233973149147402086984932778400645374637058008357360088222110651386909717539334106771942147855722570414847519796215489480973343420751650195632585502377191088611546337461414245241176251922235929620129962948683992708529225511670513394949415814145086123870023450667543468384972618356813573360443665939370833464659530031763468663935334267626349854803871806803341531614625259444102084357818770628096069743084540443550290438856213870558561293868335058573581236938753083379310572738451421786717860834290319651366624066112432296875789505298950151296235485689974106384066454796479589503848645571182305280042454514187547091115196319641533446360218973339046836461132133728805900232552775366296018211226425167460656088876830876276920340442338310959004922778599025188237677247031765370189939515974379580752741440196110991484463544230977384505158224039475895862767244529805209913135756361978327332698243192589941504510596611181014076001603755010040556320692104631515803725580709555451124545437491315456696093453104584795708912884728418551595337576190216009937875611784870754180278406458772558132788257368796739155686701523027112598770824304551384915845114420696889706515466711191369573615190058567395181006158168001875513379007136684794481401693729527820487805695172529001256702846370845553935842760975917288998630763095370896213846724332202163456078799750432299115273973525580663272463781231126792156708160282031917283538011499459400735886664930132465111305380460778056859144604132657323905673427209128871435114856926810773734261223086972518175723770188555610024080125533160379051862667587150403537752857285495768274807769103437052770450462403268902569845940334020092229187583845573742095422902303735913203645068889607488995710548090917602105324985467419247380981571822199986201953386842241297117328716083667109058563899090922908579629423884266250705358222976243607731781462892750802941153140640886701217637289448430076487945224451690250218204016026629167860281071616396282567732147524471845210434616960155438996048187618741074642025495951168117507885426498607321694345120939694688212953447849212783551728118176997670967645590845068481366354549215747559685901173858761976823334158629230106418386609560767506829656518434582013950769993441266964424662371043435395894814412223135016386979965911042352642495042755132680878508848521739607607685082858932444396966791275698247337876480627970413658790980000531055430309375493297076269233121103701270267756373161041400146632108379295255805571333391164635256713885395603690891354602214244797670634204959027080003462873253544826205122526897176579926335507375895392951866318353967812893981423382947133643844552287091018151836675822750691884698515952122411698234104249718420620027291674661993221395701803785598222987361474309377109195779297666713349354272637741358304905049916202168070652448081108819635470009487217204603088837613463503399078530941145331081879556015271526572108779119441784118214189816818446595098655915705763996425944072995452311686813796007620423906763992335806976596007710254963295263741252429447724843849208908859365760512965371366878011608338777007832305272605583356398391956260234026456124592935424339943063905546052174024561206516719161827397456443598925124764467329437046425082560154366131078186801287843805530016470168539484550083769276022760584786007505496926576545038579263281911816986273870392108014790584463007029622612674274846452827451681999667882531660411403327119277749770025683579257046345242085008682005459517070343478416652719698550605801035513298117991803724799451746298267302435766241304177752587615891160216710080598532616180748152979620167878969624485428414049579828243987088069780322058101901487728498457736916194845819058659681330450453737884331920535870951244663878881085405884804083060658860485755585339447928034437099734274311842465729835646247395189882811142114879678742727235687496402570586647243748498347437680975174722125932363218158046411895483787528989286293235144579236988476664827491229387581201952504680123266107228458857716535765137261110150506399316606954147642279806039654821423402206613966080189466863147105641179685141331008142486573601538328763871862951490752333176403789637505216676255484556572596031534992759886155573712961521749650105624474590561967200882875631825727056000621323356968614619089717912172035581048079447858716070259257565884019669893240777799553093205750340406786502549653444922180067131157012209289314856043770902674076930071501080804590940724099345697024764005469829138209832636800963922582705939204367396692482705345236986037304468872326764527366816314733913107109658413865383613658789390883060774662658448601513145199846194517936051197031061486869654640282928593168604864120010992411319846115972213124447303950925191035877314763063853069273067241766082236453522654134734138655309772616549264693466045399803456951531160623425483341690943741089205694673083755346729730234742946241471366795977235168651300351854159196598957986722092571184828272480664435486512641652615724188326440554387399050229504341850639317755980365242367473035185762641571276855700243327256756018949701788937632629060284308546963719273230660250759587794969962051511181743487225382616431201905823276078022589918369519647154450384658558911484068455081411775990593265297458461978359396929346371868041536096274914904593349265230495321061624973443130780707467405881344517802653961559291414510950516377668825378399522031392276268841880949204767883840250622586761391365534114559901844816690097772226193388600825920047271486975039739235809296267782531257155281619563005997387411249814690171888504344043453313891615503271752390343186934253756120193020278170690271867360103879282334326999533744093709155278214630889116665913057835287597167643034373441371977918285651027600057034680979113266251932052018037884184228078110102081796860215928422741637713427370857430088174618761849846336567570165145220789367049340844864058735617998153145185983448166351202951435049169145556788747487463137050112692214700160098725058829142206462046445895298698764393965603542114994441437491563332240386962946494621818672583310355492107569446067457788652350089444462189829903332849590267270879329216419947752569104042397364697090178309938648192552539324700174809978940340966560325506181115786007672964255060612695568521053495876260137597347221211473552555152177410196473451478244926578968801669327828347999117869882043904602909711043129385175374065702853822676501788436011377671169648985333678009805384910505472003549233093430158144212966417606320597946478492623372100571038319130339387948424631496781031864819224247459199634057489988526153101386345129088591302185953748245555244021365783657737482604388392306179811767980394767460475246655114853207848984263058849524677603609840411887364261708291455936151843298781973217890829880425962722682621601721277226338037417296089442740052336895322907391117130110897060670291712307710008479434912689728622880842896671452518180903300214932923698400129919520693131949783417082311080375093498919918790026706487145004180628861008903561435528950688334431437103616831488845798933789256567616177327172897704954024618739286216573489930207285905650660068510142888088862563000700770455554684879011587709359342980048451939472138616205749002858677821350791040992885369109228888173412647013366686884589960558178325351467787772987772851059124929240751276894153196947422393765285957935062477606162769274860875037326562977118667970680762808846019665031103232178677890593114704165858961104914768824278611548604301503666815180933037680960480518625888181721698150907717921947663202067113620964603982349021112947227427014387853929494293608907261136483767029920991708012826150798027082943807162145490953500422568777099756993716508481564640992383864383115694708391961386878759168969093868010322324872037453502032478737226535738617530487835390497792828865575379737523519054614580053059453463203377380241455904427235722550839821109059050519704187126172928423598692600445430528741365302405681827778780800552264734662225415201170390819988507297452489805275248885038810223431330572130112292551577774397442171578657839310078673258391994967431890765379035269965082862960913598705600394719811422283339008700310999527649277853882623758896240795982363920464534983789635436918047501561760242162131434512372789122100365520087560648648865479251698604874182907957159117713681586092078202483658960879054747786519376878082051323387854047127420948335753921967680223277032922819593232005930486450879151497390761965969567500381344144214348402746472045619192144565293982126950277600940374987140702130280260162649741459169206133251362684544297712582075660148496047816130416832107501526262273858265362864319733298800123632072994487945296591257508792656816377993545802842914808702880775018390462982850072682080430918527009210648388552437555517906152545536872630916602146008242467671234223902087997724906801870790515865931370377077971436445681681458100476408118289788799896466108441383044615506713216202561852926934080005660610673652001707191728046750229628134385346536583534148265477977597008395750387891685411321382399216345106453989779917235603914590608872977887885939865437987540532611351166616795964015751635866302640425398867858546281423857687556977808561104371041099713297243209058212046899821685230646570211808793579853090001901664034490132164700270575697937447812817587363008131781891395502717240373523630864033994862997288131341258764654349473566398345959376531110184907952885067726553768282795123003410584367650097647979188591680732897023897129095007759982913037905005139456543013845843540211639842515430590441686817557974503137736606291781348141353549122649382731418524650927311019161631678005662731952665023762995525502593967709142308665848495790660165791249646440623502693962815335046478950283592288150378796791169314361251974551798310114198433599656235054374974598298977924397519090145884893588195772759261186524711795165759470797606992250007909801529587380443462390423163760267315933955094377997630091903704429574747412031787013721113365713755305778808370073494420165625818464764957603063020421777080002071089815318197784664347743659631684041233083437092479462319848687035436111760251229700392099015793814045235392813209464498675378217881628102952966445797828516246852656224808588625974180073885618953260097691883384740846839677306421898184236875968200115141246542737037060368854591640754162663370060397072401334398617431148003227032362153383398716975246692494677388439901346620523582266254688595747467754958574071517740466229726210978886708751325949502320264599907201090236538327292481605075399604493708617944652893292054698545187146436845705567704940427092595120766425177235567990439758786248275248258874247195351268486793990850009089067824493378260561881775094362977449559535105753573960058788730224190805715560185800130932684279391849248976566708264364434569542721063706519597343348136304750995321600258944500519938574793482838900380703587797150023562318708510662518952253152040555442506878556654683767994071507616237888018183350144071506476419027352824191264411807200330195984493979550272730847972210922783912162480014317272681180395093072188886274795614457474594385876420993970006135724597559466734020840225125013508617525509228996421624112116348575159595264413682120073010974259438923202360489666709452620459232308036591208811082705645116886150362231618385070700521518971692993055588445437185706710990017962616815677291896939822610328091514257310411069230041782785975096283523320951589736100127182775868796998844734037400257930016348471875686739589757860694593801093650218888240147593767177252062123077917385875095037344599450225778026907271210561656040169944401466867176141208341581694819259799578214595556771672883873472809642793041286641966497113809893134423019118871155159560486402103578597510921498919074653935676359888068158373221694746022464687198518122427620028260665874159641349878009162184194754757207159964990596710353043696484915883634656355653354388645944504885469545336963362985644810893098481707879926147586375951121045665597504015838722277356516896499647337684408410736756998730305002125413289708137337352330051940378038887734976622809356832161064717141284353469205186339209857049016673054461258315063614078601746058639175286825337295860830512846210825234116455281826286324137965689019379370636217264031412770990759196257960470325291677053630784247100723261362703612531832736216295653259527336661850759288888865178272081628637075002997859825583357252900876421533655726528849781711238526055385344443928742343190397985897407902890090035081604435158747254015229433466552000226163641960533370470955058739135018674835520418861165939270872232361596038317329062390786773675541720081524872113272183921445231425669046632552918003742896808396119272510351428817066313135853285955053805667255402064014181578124098533407081190619428251389476311046783024494285771529264881855095814731128028732161957817075140686615934721494796831240094489363085436709761579605932194357756932995113004872932142833876182551473304784450674309270500747881184761413955165915113123776701393808151225766008895585880281870706859053473458756429351229458878439736943234698317959771767100178572094120848984640015269531573362281095110998191526931158910935928921373388793016633223084875072116844845134356091678333344215969302033611557761077463331851681935632487404795360776725384615482147425053129855532078566457150739815255763736429027653287073729641838167926866188314193215011071237815628507221221042225528697333377965258309111107372925838470870364749336000321669220243147367044268080292442441479777342892296190062371375653027246214607269323187260642503047415824121394962494850073174963376210343501568296406887902313223754569136020481898543589528609970948879525391000673456731158627848519106099833921746718981947989387145159192128011475305539483149086808779745146925375522736372646882071399008314089196069148484037285844099893209623224426815561012970927396287821529561851987582000439934772555513646475708613831224891022532287105062064820683502359082823374289430175326469121231609063266099732777448662661650518212462540597311792801426513667470547024019714900308163313618382435529375343969132995637927852959281866034041564160847772352167081490315421560330780940063041670462104775703181225881893175002052753720122383405526916170353091687822376674659736539948179155120055733803645766697904422770628797329514780435132437448253168012673054865438704746805146725899615008430098754808034309263386677500878652428717526100534196657274412177054258774916923315952829510354143542328535370330492007485037103424063630872900609746946275197154799616964000838987206534212993977463618693285483082155317684361076414657049196874124922816447072150683252074664413078429517505802108892914785765595200209859701287575022351669096380664139030317151745290599865742668854324412122325397769169839810603113729198420449056248382891391927595419006279796498885896292940821645191205079011075162340769179560195927356724281609178329638011712790251493328466404971155584102960661042255065209379188476392724181125483777652089587653065323676355934882836986292587278159938181654048333512171925568157007441994030650257336653338521985620118752766060137416916182503785935115519004558049863412425506314153652580469872720499577330309961775981888603993418165815929047928200973262809231972016842508697213810136856150408179399079739995437093552253229947529176061842659978821087284585674170936317069343793769295937593948403112537763978644818603447486291279564622478003925470830030464852726794801833249531089548547623064879077468651919766655858625706048513104023481073776161461017414516565254985869329439425967982388101446895944186640951998601633208380575435209555380091825862290180760278327597598293531204666851160646362382599265256405289214189974781457179508760541241305332600664029209140422318568186213405195092568714780210467294454298561117331532463930888151822958815305703747850054793313807519792614217801403154242298421596531887443153778645777259000613217872448045887070330488504319092558990333361244686448847221108458529871119232886655964232944789119494059420717130325022063964580068136675596489517995376499942705057766325371127526936861265973344472686420302380808493570611872669764008495979995716344478589558598452413885770413379754837268269430841066176224835559812746606100166004362208306261922312875151728673607267184395731371039175015752588321915925777260503886152486610024472488747533942147422717436383832568699895355840190800166979988807581684863186399242241873773567868041491149890098236389489761968329308223027265963064765304617790454506156280668269908345869151520900205652791579117663454681251344411749656731336170060889572817184618781726878877824423207213454704394609587977449888113240383785244823270828630839892907129424531767109004840956336378685762780670688002854582195850067984724620369048019801764431890986611596857921602893863881577682642936635030578842004842170643364792445489106684566365853393602255396427531507751411291289342965456379658259860728048131696604653363750603437614185898338334171465382654084290019417289482291825099006822486873482484192578732794505142877338874067604354420876657979140489259362459064328141920902290064369856430967275619505263805480537553126626733031184848278940187265901876318207305151046326721489708405868024152904918181627848455957707042241267561365948718073633316289450072016544740600187163650310304425921388109362651988369842785104459159907788719131535430409472880201590188536933034720649550989650301896942960618301335309083430788146250615817722288125734105237113760718696153542207202952853482323516436352138325316814399780817054538264345749756913848887625727996375816893842239762592010886429099054769025677579919024057555416139015140503846686337733833774508136697752957075399372273194037103986634518383474103162088853171228641527121055275489436604301093737765837677227991029143789566640340743811026017775619362075624602833469034824733938546136665606519399778199684271835072375646552737298452456287141630562582202927960384646063283363583572311103871807562668980855922005673015312096746848932066672484639782099991567117360750933720810612975963904367053744302770459181276321200130239089419683882520516708006911321089929466824883581072068660687044083937533974922075165425390764644356389482340401332698918583187522967019631386867088789421780257576016329877967978749045036685108700021070756125324437661539247417052723252448709332475060213155993233588448829568494681692925005661617354615085504144057540721179965678374526650997362041176854834931252394259563206346584116418792560239651048651644109087740554128189632503680322030336095817187624843857737220441255748579544913313986022571638884803405877599689668094284875899444216335622154251254093050097586777936689625057633286674123574905145670532218354236741899989360004602069638748165169289180651484284290518957374950249032613215652305434520940691405855320052044793248526748390431158989282133279282973597405409687798979123634457819908038769470929956264116578564554638068641496222669795653540297544364401854553251391617341431831562567405999797937277710269599119357215590510672307329185177098244911104061835452405019218212454023451917151653856392013533294718554884382409224486887528660491819406830079773928078556142454838984960392026079210514685467821173324389726454826445643393423705591753192094034392444662500299944990110910529399586073542231231607362603160335265719731402552581424948972253454560872701632769954519499462705528969457902803144023202127477954668676199554829707420344951178426746701264053457421245677956122751049611049615633935447539327323994330914171953544473469684090432670164661683231782421188449000031835535572292638693300306156308231977791586922182755180952448085956267693181477632592277604641466296247258310223548126150693421119790874802450205271422220180602572990474422426979508185925679738706932329123437620892587199342945545871033633868321973871921615276132549567838705020241987591355221604106391452513172714344352642671763298819646810748757983446991906601981233232385420216370280203622450360895016849158714637691515181797339889804780109631212912643225136433296021148107254900296944676526778708127844869925732591211272509148184290483834697503394508223856412086838534305330512890769309135128059297145751384031483374007397066068892543684187151570869487789210565815647027389648632614129422025754702756218436142531162528167883195762987728686095569875051548250069037048423768091710056872395932144386501174254889899632915605574942823675325877453463884018232075993030501056904842990884955506224563691379039644800251041323533113740195220188768323592923378985100902483192467203238348160297299221669138791763195677940860375403925145049206863975801203013391916760067851109450514070935244986483545411795491645863937686133020967526759434218827988244905334675833212625242108217552441173871595200743335149305854595632526289790768192630374554319333271491140636104805465365074600444329799998407534729595321614259851662250902396707914767083780982204537157855911363264751269253483340925421406623416968098121067661683154702258076482102754593002984007669949347297814652300466999035386572545175174285131446575056893508048342987749170694363207727965578139679336655155876733016557170770403990949277442194669437339234474048520028932195295559856390993105738833339385535306313830994444866653127263309695548452338250158032500911323625022873942922977405986976763157366739489989606433328397292952685681690273264368352230389175422881110911930050273268429010056479225305260171469612227769516306237168934051805407571017460469457502440521983912726815193830831363699115858118041423359426764780321049488505751821305716275699478079172232716545749144189256000491074794356003047542502376269511998135704474720952850535145145377725835288417921514964220555258491612618134339970042369170578641411222128005430446016758162434267251818718645829389191971555539846563523943515247275437477064082006227693929281392847889713882210701152118299449290188449313054263244366444763456067445413356255298803431297286208820061297151965726143357376691248872423634361388448739773618799748853356350489021367446964472352117484737856730706223965660542442653365254914570961041860846178175350284513233646423886606229250570161375888309527441641084928627009869168462035967867115826526357160467939125897384144742130079632988793606230390771997999869813200807658153035923167258090327636556828885996821553019567550013879772694253863969648548767743295758181433107627500362845987324457865814263365859478969648429053427086163842318336641068569008402610910820605365493760344089279638748079327865239063909282394363068220474121745875617064325729011557461069204912091270712457056611348594748409484450957198838041849964520325657531237019016004506350953459947271587203870475231704389362802690963049391507527702235357894756754372476269902868354800622274640023681840699176079149628202564942583587353118008614795684383697012287755889626661305134686722896168635702047446645692568303911804423303302243900176184666468572113386478035506777019523586474786921508960076710742307451743202115441322299623986091810435019637768957648049659260364979997496112233067352702441529714409435750795418917504956417309823636210297325321472690969578076362808241205553704128495302551872925700429697941059732633157733903007647617899824235362481354204521281442820587118126906033530049798240019870247748573908919932922609729377422876938016559386942036727443295269347463400582696930711196214557037254415002619893087179867748107999297860197347104502134450090654743966850608448639856713787557482360147132775380711547700743301001719736706600758869741908073223145778368081268892749172850397139381785925613034748213974554223646307919127207464860222071796966322911071392715174828769030543562922882613967696374968504439117226265106408850005177297903999140767085006595922802037620475778225663638321461283844214152033013014003761685317682324259493857607674821641663030190376747805381525542824585421620323473349893821308245233400503070202447246184367677928151523069734238477825690774555715360237345532993134784604190904212773849155944452867714757627656026866297508119953476835801212079957260551520143618331823482356712984528601167175486087784582055702692485739075803755432164267112039271626311197828423357479975168259391944109872333847607119448039762285452106565330163275375410573644001892635241455031461932541568063832885503829072697904298059133937133863717071621804377728130201909108826221083375419683979237157734306237237783907453901803421562380508800778759132309715737371271782587627052872714886625822068182061566865709178875065042015097994576471104074470788196026313505009876716802957958938806532499532287716598359812835610744587639677751679514454472281402748858005891319503775624124410989337101580037526561626145740784776615703528808108235113430139459621760221604055205109576154258985942450406916096615566594177668574590342073512224471239140118868582589901152294201211343949377670248450753012191114778022116504985622706380152222251209084597764658389600800304390806071600940098125403920512204317373016193030680592353059560054884856025889792450460364224518579009643398370416931027485067900329913315052329019714256807602855072934337718264609655174080609448640368006214107004618465001881968967399714218033870888235438336485996344704750263778525329101899724657696965668481310332898267052300347604510588791941328916069101818673712784519931676281000608532192210897064729266708550492237824678012568117812425619053919270219263536486231134285618165489041162800114205188112292180377522973849020634682547583845120965339421618040124212326759672502011795572272598469391842068742532486379800145989414955682334789367050040554236506886186167367847159271945364672743603282634191717257010825990141688261029172052828821877849801519695270162147547584547986857092541386222393466755290365863760832604843155755430170154742590280029847743132116288537713706019727136634813923469667935745494499521987154542289373369404590298969102240407576527277590590017115498906985012896997272692166331572992340459782825447195461556327794097394177096571509278279291887106080721660709809721076480033526600410488913568653718273125200306177161685198657173783612079799746416290820157491073829442472310362371714347630317367254261057822444422387649757916943346192630438426562496243283599710354038796734233891447155428322114327969935741010139454736570139359718012685918657836460161566912152916983342031994921092669489284179287371995669198764888230587331170167243668819861532050271172520916409465597436775859793283949881349334414681901170967315050336563699968894110912386340714955310562457534609844969153738871974545552059164283949393191677233724140006385389362889754193839309729867770866200914931973070999684277615486977344046623314171377136609366802782053305883378945417965886003334270624125185407879240697916308560950224249746122196506618838657648868999352173384985442025562606479884373363282662934434333593697583577641464963931484978139056317485129448159621843161420115845439253701184615335785938007466297416905970521713851132763970037618959860394272298972591056856902319632971936053661500127138031107461067334233993759184824246379287693512145646782714060935226999648738099626087184959976570518835663007699922348970711404538387246041516915167061289756002954100937762370299107527828272977175903885435713177477399583099161682688910139796139192891872451044052274788695927388669531616865503458512408060485723442524181097609640140542348448747248223262276040709673658447597408668795288102889733932559229327845056016082584652951823129109117939828966201720080104539873506206973561957156387413565290440242479490455397372577760369374745088571709770725438176034728703563404380740422357399908574699608971519842255345323207220274653511178073681308412358526306063557962763132299309871726358520739938198933664948896130658052075702254747361946518435890557953013201244488769156212498739910229923034489302552845281181190688178558285145711941521056296297779655134762649479827154886589567959199692860788211925236299730430213180002353897126545083521320094978790521180742468710289664824827141097546141037760326097758371705718942261471735366657604874329634298219198665403537443276405921191769065634423700404080093449005176766552680192971925152356201362967893963432998238631385161541399199503334062495011292344399652522671643908503895705939717595055997651993813764410353104467350825195556838070215186111281832859523370184081517566350113071257726040234345228997401679540277462378128416651613022160583216689063537588752906612096919310212647345922037286421079954785914093767573595128928001127351840331031453846312811447218610045285189544345672767966047092058405663174808322390568720022010979267804157028057641164546583690026850517774655898171593799257910294744887287332530347906598066835897660621990034128414598097880856660269174152913734951215870999881641047425390568075862949606032446637985952248110531721162069286529091913202904114745310993030887073945767874561292346406619212297476403346843054394940411198419433632248446014592607917193931575848740736726511617034621975912078656164040664155529332947109283689636880574302156327803205508174751122849770645350564456978359789858624147729588082881269543422465683550106916813137523926056428876993144636989957132220909287639697016371681737395106860339886417879015794011517185383026242911589928631261262700514974804015844737511375318586726509171251583009301250745993615947031784371896478137754871217540951462056538149587195077139999230372813786914157816680726921224753980358039277767091698463707726430394349248265968639004892526961898846617853969411081541028826808429600992380299150589492308934851433309179508586940126523179993578801346670884524359961333194277494400646683455927202382727088543958469215240672231928357979476719754743972103452073824508010493360161407739532515114791278026186279382279877619344608416619843234197538110915120776741281806303323908502372605405148910842443001731168132802809183346113464540245153348652850883052347322442341216015187433665793210808603907748850824514380221497510630388708431608148225501792609144047905244231364680764063900986575419089519921580915963413570786327947544775455460836898129775103717756649767719004320627307057445392689860176566950972292870915439190283607147794042279070403239917314508392905457403832395724154582268657463092023345292036874425639283458535170784770507063267134138052289022437217899826608132349028056649834677400859977034311172751943807586560709999920475109262671075904759630132911149369316266122963194163153238510245185792458983390676053860878262537155398525153186536278375452799661574098878646870938276909058057799602290002525881697673038154382609326116352354463052671470795122910997817836922416217965124843945651359963757052642965398531995982354927827906424429567757013606836852879971691462462537151244534431154195513131231784305455451505323981088567255672487340601322766286718736324492447880212140751371075687671278261622650594367795124740939115471599410995596429820359801605886650044779414625865682555548904897173247817849973716544931380362935977641578071894275321348910060621143330669429372946276850996417658195812473654758420848801294792892329766134182763617702086363308109039954759111234668034330319483666876376985142055834737449466271507283536681204951492824003903581857058374254462492103585717597641503832217289200808236557837985589935358527726705476038410706088002731191756416673041817812923555945674757735084794340801770691048427153468667386639963008981517615130407291433929117546591069547914373233265706139814627386530042718856226645054921229200731471592415759685677707591718078627376848996396345064989049013575246265682173577904106435963624576729378409844961436412613793455967292664381513388691612155507964861345495657693140015702892571152455027951320197010422903839480018757738682112701259696126546353114149391379111795446775032251893822119049531156272175955205132488474319369386807310140757174471616868615731763847072000278676494758718056672780808513615560421775879562076624720455293119489597637723536498678339125650257399651212402858357371130011759526121365388865549476396044094687340377293152099257021830605661186849395031125050788353485519131052289313061734738145741860549247695361466160254033058964212630949833211771367658778793867077514061838989940351224505568295248356267251991013762257901974127771161701980398003375586627994421583658952994123245579120442070050070850236484597263592290837650754489871159376724366701729903248738036901897319336105872560190181319402128872933692860809549408420236579604394156469127418742637336032758274953466454481576961335596669852833798776245977536980599243199740930105135494732252323210160159828105624985464159012217233575335093554066936457818116207254868077288194146001917174949044706383442873511385987267994132372588974175179461024741695042302432800659829989104481438914983083651656124249268703140764067442488206563857103155273755745085774035378064678107813150853699298664759076166157632514168679828421608328702955350379785593977582125711382111170857103145198955912468907194687926412681282129581689695163559642958627811264582295732818851113942518628790611978126854916610404197147313337913699967268899152729258948209987257446362869280125389717991661080555467280384180477449359924568904224517321531643803075224034581875470505941788770310891189212754747437713702544176263786210489133680651421117951854818548279891372134741808314177954489128538520837307615672298565607896362564226960061375968388972961094236247487108631023801113087263839813149939019655461052285425780304302707673696238551903390556501213189592605582836272756446795823130494617962541554065000775130279065786508887134753580894017111831326486351650487776791166712503558964543429445509095777971773935555991894230397521948343203402003477301870685723851455294749688826742648775641180033946132779993568734848939131447407707168365072757797210006299305428719233302245626849333229076704869712130283426977920532187202544665975518350434923469242551680295124460956959365071383227298048859206085790606673153060069171704457012546019554988942428295824296187034106455794270522102692359147871785463990909584933331061604405984022565466181337381865075191240474702602047972580942889906205715929522490523663293697652590708719571871327982043850627902468766758569231653961683924457582553401196242074474447494789428599137247172640908538956447573850311198977459533567191363980605027788792076425326696011935024451687827527459100284274173250930319654623662762224074729027033552534735705792301659716982154456256899061530194942905219531116611638937758438376359391772154204564264088131991733431937562614662804652259020989570282040629508029619479795865232543435273688021698968512371536475680652261291137904370309650020926565636839325791082240451130927178770966351524448668987416225556868870654800119387647608894928108383588088332746162659885421783994475854605961065607683607524357389105766666099155155587349118981290010356717349924154649633404125925348128489299288691920911396572610164012575174978481617054032413571225974396427592937526035810713951410950341224154386100566051942296816689120279273255958256337597173620764275033212914379327350169947228778947901660275331192276130371767839952075052213225622530206605155682617816184124453850250968740202353740943498140476024276200190239062830041685250781750247994125612800056855223169927136772789066915557973744461515072791937706851541440017478405477152116243767360584958902651668708962030637401233871361311132340814080673220082363438489633584825953888594042276245177412891671125363127443491277533828046330917151386166700263509979804399320597346181518449535526997977520407440511512907409076754845238783002468331366841535243432151158105474510892118357020447224841842967563937905564044884730250022985687881323079099447326446054322602023718639820578161549073309489825902372158651011957560326185097530881981329001143974433224051567459984298697765831983624596036033257775409664593823230486945350100892294459948544219037497847808740531529137920587614251471251240999059004397256509169175613804143105556407921180659227117580332004505716436045105991952832209663397124244052963230462677805327319818468622018033265842341686639175435756501249287413554714325376176466255623681003673020992665832563556876177017497279242571799860628450519309977920335176602886208054860619078345461287097355441295179979306666783508640559783329567720994806886113011478796936865437550048747352177409301055431911245814066576045381408018032395068199502690729067577473947721189178934866649614012140806750356086385096836694244418274878338385987491480563290318710565093396470665871773371979341531765165370429568377162940984473212557862399334480689264656635794665926220813586945447451252758859748463568651281785134408408952056405598151785595693167341872140514586493262638400638153919983631592113629489461100960860471781371085281429136558382544346761669725178477081274157365080676581269522546053702896839242091241809479599528824800063963155882593516829513844250756466446649769419882999206187787363784403206073642837329299561345679655538292895369626627989762212180819433131224241169047837843122121221076493443427844171545161453517692829454751461021684732791425189022104972761243613418731615347442066763454075309460469971713512130715519111588404421630781922884233204684111283062701781841997033450930018518770087455816909277964402146338064816334636048852014104955017830035774310615357771045814224879764216001990870818613997596741130328814987523360615366568337356238690012422958779622628953505439511525798976732721542734066454939808539942769147686554975291016000116581071694972544671898685000248256477582239656230675220489796370347438297425721457289399435063945992491979973892241743307023468045216371226507341063676001665023681268887916687430542320272282640899282077676890798421899854384522154892669436870139122860328541613373336078888557253148679646780739800915393724900047132863027746568359659742882614659172468178008495257241730922055812383700528986380582558259028770148472726521908799188476968226233326802516862579104238966440454585925025011987544841250320885552465817503452291859839284751610559274918443275538776273435365319468444862819040404924276100694242925604130953292238243908033270038196656637600259062179615943778720048253647568393458173942803653406931843778609522188485651609540758131579469021112052148949968093264922162745075746107039570526879361544883947995919804767047202172219549047709450501559201492119106956407958456570647765833391022484485269638167043951049360178242640480335330685243177539692415195369428764000107579569346606103385996103505268061157888028712625169471628841613702543574044408180746771208085640296384126843679838855696536721945142274658768328183702651490459375253530939861619035759474503076588733415269438851026432863260547233511621547698699654727010532979852751833287784999069618425731217213052476170531538224897688522525069692075350749377863137167398933563068824423958021259897684617516444644405359856618030935265421135490215453523262319869904709668700228094974545688787428926337112122698533531066089575525514682299155277428472101188749638584359245168906915598018037931895393870976357235446770122829805597448375003308658134160369383723852105290009497054363316340296155995609825514257266677750240833005696488453924296900155476975406003938751104977582144628198488337495058078920798536593124855617021502319330762822758545309055993789082461452964225963696119233333225780090637090724553083791080067527934304211315824945418814826751296398638888450160461188500415484052380532132243918559950091478474547499061648269541038950651738915820650420145023191023312914918993870698381610432662303743800509564672820561263249513841145330686801240367195926872219453792505712496112127031034333852412821415911976973429089438778521092595081975624138691313149033279118530403860089856545562751409040309850527488253987176072895566477257255469971694623860205173380580710733238519048851254860621518010290247814857226288926191126867262523301059800881358036985013741714151203637405823307701728801643779835949806619148938957312114986685466638691758338964863204002496973701118183122131487108732990797041445077468723333141459464157217154691559858998225197647891238496212300500352077957930302017873231465234214511802719211364788452497480427258305690554719264221379840252362178979560429064083917646759232635231506891139245188943088388201515504234268162747506938658920072947709367308697383380286092029491886045433044006017204867751200309515499131246013035017056212796170277493212620675743240265005594263411869604735175291240999937692467796699499534183280144115792487157050510947985800270839863398601801166667233437568472424267282684520812600098326786282499835002065444836514413857373887376896482855441849695836671637771198313618998296314474175409598624628864822875886281510153985132604269755236853915728933266712431962621909165930039192440221332309102750327839756951659945512908883978159795887781641907548185982936592943044885478902589428383206450717757859270761383894869577695663302214069719821415855658640063198384839603181774415609795114421489680730130911056776418815586843161019090156482542305388409276295937912291933401195494023463177045733032385803655693747783547924642065517657955925419135920248163933173170633172701887377782201300187819496727675668497284449722359078634846161246851771579877544507883574218715054598463707783268079555568431056400254424324400316453146356962760174340746950838226103258391194507434725097088833887796632741729710231742014021538202510405162642633843698464505928178736127066969273002615000263578805299530097531343447507333526356677014030966644683533765157902372249634988910273683998236497863384444160520439214882338335619700815555624660550801653888266335914817824840267197076021228389444300431323714447716051323710664455354783575652657629361869399989836465710004028845834919319778009926927201353044495310540193520697690087602942690226837234496691464688705875548036659985008399100332173521999437355973808028568768200460637874117589458872856173894569759291447239977426893421656295483022942164292723392498736777155440819713749181170207254532339986835456003968204737858001890405141471047530737855498623904636610849566565498946337474602383494734678431464223224181167377340964650203607917794826170143501744319723569929935102545103607403604205870756748226230435641172685384721377011648145255471082580694095620972748591420116422488669768385894663778565265527232255217252277143559183333846406594697904675906927087247090349311780729043996245321194168701785930509673247630864849564238204504022703992486261992229214842478362479198907346776509008125773547001207046247288719678363760782812118197778877549730148043063208422675434862594987986005952238294613648221857724828812137110473794307643087630309126382614419703414185355261079269638769495592467659697774235076439874736834365404578776320249315672016972881177908236352814066178743214705158382660169330060044307747099756423222639104075109827833823006509292705137751328708768573198034269351192881804344309540558476118780211444104132660391521858597706137341055907235895685342373932361035708071858729230538017598173571266584899180371840126976246207488434200158794194137699628818899858471603649977616747145874341518761674626615801843650320493174234839758794383602746393798653621125463496043579472129411848695674662435553523976266868080805334512990238682395406304176662891324017045833927092334832853224373908993495113058835005394593945144456258125347534948716022709865030595618024890876467200197874090029714816428321397726039771921950884409685111595504790380208877589305954186425143705106060702544597479993228349286770888437547462239034693451694461962764628114779342963048008069648298405501493666367732238929207533487347893889823500680427867192644157235285479195349918699379492148179859719854371273951690949330514046980983796566350196055750898098096087205244187192727867329518561526642908116740129353001516356939796011023008397988801161256798464807925011122088870632705066312617163838881823345418652006536541349867603644666687446344115884954192752677793368362376032683500943557286991688203648428245481820533614136405603110741164642371125652655470044415628701182810399882884929994209863652225333268787069898225848036003257946445880351652121214568023563486885125945396517831190845204754149959015482390593618443806782180045454038214699174986485922927724251101914904938861952893025955253380271759392363228819919711412385521824103995354478927710943349761207190643361560776540588476044662975178518405847526321073995197263269632852730451881005447701896243845828924166085129854763253950539356983719737914926428340699119119371052567924961674732254400446809784263818513090920521369371979212090273337643362108562194036123346695779529740077221965464924887299028020847734671053420797152751269146130630869884844276943048587861286073069561708988364039537616205102989648911534467068660914609208024286959217835441074545620383325733020582767154602259678652879019900535187731840155924793153478106521037661723298096412613031814012525777349952011810471803409911021276615128309825300610664220750424718829299347780401507805837358122546699771571382532417597537181939974245749236512247304613085451651357820825093615111217689698822565106323999846706878228594649717578309448228537963479247972445712540588211841512259530692804723497791573300970604685329853032467848458895925520954440935976653627166968534635091729049540828681995820089033911648853504232440723957210005750175562811306380269060725522206635004868484058355121515423585510666864328343353985001479985082887894338453115751785226257664922345383000761901408598899990989197915137277586556229870786277949775284802434471859673335844582758392066305608128181185733730636070569445664703699780132185461186050345657829063411919607320364413533894885151558238869636946028532888095236287421781942318592570093164478418612101399452914358133872656069115652411192269681106425846092378137036077699350295361254583561970368901795266801672044685840089192543527807788398000627424295308577257384838206320441551057932696987154854840290888316771963464074625258673707692687247577168465435943994863030235070380228891093374315053851615566325575236610637428286598181363611203103349944779707144752942775302550536146294520568061445622470873986912838739508376879246610618492150058380160822623700734514674795997265659666008355785602114563215027321771034988585596788341796556045672174504785832747346448423733697439560959836033958548707497335856954044378687174015682653895135112837038369907097434825723855726529553244490339349236977911379558879542682268468810318579758954872310936414172344940484635063937438191128405851016657459939807053242965703689360526355282787642799957334415423693634290929472587198542834737364467368764886029254917805101504929228200275329802594133715195254603525434576439605708187644491476526924913483663630345992583897568918193703487006573937993886946970080241679817600522447363443467741740564650769613506269080404179471758375669683107985988663457776625415379568608786140468345266645589596051628952843011513739342052034507911269743770267469332077492245597897438543823925432430127141223007390761711004475430746983021401426557683996385458401676949896963657146203010414831891953053750583637128309551944296159084794107359638510524102151599909837984066379189227500958471391156546002876898187696535784799342682443564230501976113857915183216969571307483458209154068369337988238732934368876269681603236124753317612073408515961429020938597543828408773565983242269872822495893621031099418534446465386747175818874511392426188520150959250531075770036739154975169983315500146594836288822731265713499031207429870024564806383305748140107327786199713839013661551204433178780411730193206995668728421796894748313252023930261791709545548897591229660919250797720651208930437387731479728696836844448138690657025095716322571325872348121461546233834057864524202334442869648647599707867769140305361888083530482560757669179627030850732026078515940623898460225192781992633744030709439716653875898550134207677286056231885591193606238286776884362068510851857487816244212316957259090721086814475196217288349682667023904938749136817084740932721955712094521323094428204953187728317139789138852162066423810161457010898634398789671821879035257385570870047419853423698395699253769582404647093180801665478124291944471001248905230478861706973702907014878749402682692136173407440541527070650566091157536034729894555488975413171386296848445047833495258473352693139017513253912528100225342499490989100193035953120820576567607289004554708165804914227675371985566575694193323319858770508299648867652406677583966442631371280084247806729009927008454812493080485838629242558937617724950205729207091541256994108719126597752832259085595927197879034249198584228176213827403326415151138171885657915484548671064385009990289858672290786080798795505191311085266570823895146392521375938250356643427331355640227663020553695770497627784364624931624482607536006009552916484923102234408401341646351795509800433279075679068930717527631107256933487248363851415305916887238432912814035086384914568215294002211208548931377878984564488982427361289158926117881142252097430672680413857387071761733834571331671336779229209484062803481406275493127458621200112673599567664554870278403845618639610123082228549028508362351254420069768464829359927399405722834853941534293251990753848577212442044579581694944578815218898807264756221594592302889047076874625312425138757558514577367948271343414952971357923613821973140322803654174791857798000447700523268599105887723216980926875565305768773952036223932805958400094241266994631536491970850817404212060979659167024128836595182076436858658831977237140375592190566599428612650805639254905913370062094032825095359555442536815254005266406631649174532569080116579632557949892819794481303491604824663588928832918519442586729425288965210516399527677888657258467928577630709610119188255700733598087285628370276613156761629518936994690355635949274798961423684070482730617749368076631720607739057804766698302676520428378488894413266318554925551232031310218333543528488698014330320603744216010740553066922276324977065002646646381897268168802704784439029894409573383592623824306298160345931390774582993436435448584078194633533577634056949052373612122196831514263338126798038886687159038127848105020443387258316890455619178632433581676580694402857064807527831927683709424286655324607329086062054213509233603349330468732071609951683296304695688771655125137778362651107206930536204771093170340273161634679926262500758565452623335950913223782401966080671993814615307636453945299559675131570521617681302132263696698339334302162099405614067667933175007113280180414019344125999340103330460849958774776707055447606705675256884922061540857721127995305893469540599796577722958807422834927388182455433429659618024037220488173846737256002462383221368469714903620589477413987712318831631206711913271136038210302080238344523900777573256095137353056594173679756350479002863074380856663833083228605526717999781962037904096103244740387885326460400221080919078455910992555660802163639913291121298855881715011128606354074553902686804343627147233516056508564580164490859196217981538557390529701075527202893243972286658565147525294145999966677890955248034590104770423029996025956343372181898441100165974846663131497321078917181973093422776747673971733362987257505520833710749444769842059714287794932694455364145131454519091165285115439820042732829284119767047507755938501177827817419731620878641901251699854478351627515007056084402360434930795891841642099909901233970175834507041948105171746300349579798886020418847209668867678788055568909142070287866685943616682111825410096580508931233605806658795703366360294132477261727759964850410320455487856657011453385618447371529685517386440347299431969234185794867995551150395651563395226875635553304114418286394655203541687948244436388837300939985010425154703012917350326955368571569362075553091013432650500318920941221436211249549357952352750507086753915627544992641530555227700895597250080767687509875836600341570095865304849314269166534483721311296156698267532385540973738094751034156331714725389387087458144783811927708319978608335613341688266643768713960528653213850267688368177385719803353799617448382620800594132324856260703151268809052861166375137675027508231108621666889905407756911160965472620156470070254826524086710952550493681754648518674199617899707773408001399324986199812959955184700284380709168105336573581094261808560877410322954283604061437552378462207436568343540901226538008646031278111626215853269161743680464990277259336787008142481709825739726526726131913741853703869206472548061087507669744199706829750699917743016511605155584366696972542289209003161059866923731292664736122963283698789430584467366012329291922667332750626585528634478251844955275342454137479588761191014174176316892878655539292831988353236769397199514114925289451420880518458634675675583628216221798198556685733897029466564315816581807880356192453400030416801707313159864327910267828529827500817947889929923237234005613927012662603182113528672728971185479252878078468696784496333502897756706949479468522002709129705719456106385164678524740622300473190667596142140830957696717044624614807529655070028890414521374105570345231663691429641774523725580084185173926037927954829834927862825131333600204461519727181076657117849793179219350980337416995614303240856375539016684559348501410843373764258777127049670326752897588330687747931084700698862204747441183026248729368661251924095872940751730060457286511856545203487337019150341575832802726607374898786927863703121412024835208765413268202222810668386946388349499386798741334475309651247407540615904795837866865447384842845255775080648065275980645582752403295390606858789028352087512063185732066895329577791905271112180293676905027001039538143423522303485540772214959590931351293791538545701677922759563896178864540560802392577811590603780501288235912738651700235128239689097956207032174997272109943179430128448148552837789989939302490482249960256293067699154413143484312352075464046625721653477192190908340094752121529308085575223087544523879169370955898256048976514392266567528123105689340299170291192896793956919462970414359872171465469153428270014400866117627888499011126096520834703648478040831973939896959089808223287736020553479466535404030530065456425159136295867010218818572715024570901867597312600433094407617875291827016879540269325598115099304253746638933023660580832624514544823763021024389592830934549782685777131892071534529469593638633217559757538866903780720986708740265019531030002375941530443950818880475079406703895134315923832308258641001165591069225011840557813067986595461880057885729462307012511179037686994855293273973075234557754458762507549230346452361370409056063535350043705285720870576840982087130837976701149448070512568598409708166379279467599342466222819547533719807775521684070916338998819134499146309971376573011614117933931230030351596495776976699401636101504939950946968360705863988318129111439919045344084407298566609217212827085247174211415273758382812326227075490549412959947069838149129606173215093221489848725122611604272409864804172921148036274251181788296787992891906165824367236657443734456738920103839401099000050345292956057711512170329877616422955986734684438054934080831683455281496205013419543553607397874387209673329787489700460545612316533115818365851932591711726692413928104003726481956653165593617530694424386221468503549696092836018073413140858009910482030825070396385599157119787120578305502087433622572264265221819210595954155304209816952572504172088666379339611007226529800261744324428962074649194209686307604139606623699210503267891230607105193604113836920521537301007332166727989659224159025878486851231552392730297575658301113060030568420777606631815130073981220361631497485129806444354618165998988079800121849356717999831927670935029092846575253349395787410628705031792373320781108544267987518129814549238000320016443696632493114702681641570536113053927173166089238805934846987732052167572087784796237937040982299369581843981475868774507033992597848647009537885795127907444446342239552637906076280649991852628590385187506574330815793989787678912116768183349803620448200279048238089037255575811336330601604871232682224182021378564517594158134271617699910638133066908576558347897051213070987737026723693124644756051090721954412155170339707110092691508674228079330430032520090069634188918652973534390131871581110316025294047947216616883884771482570642543649001797213822630928837885982656266891905981013729986885283227417118414613517697020287965008263766788191176166077318847047815702850445698409704564954258256569262726067761652674062489771555634025641361729704245946386975690002900773053097696819784209075877886215133771514754272658155151467466921526388073550286693360254346271673006020888140737008295468782251113621350508787681146788822089403145438651716921523413920853351551828197865653791102767194128344624700667822299914331752422322636376041739864995521840613997694501191914987074609221571690894907471260446169141936753992969596149461448606988809181617854418396758952737829084942000893078104495432631793904278921600472078277656333239116399455166435712919286272978167623825028282582678905859251304960911330859927311105313621864650117000003304667218127169179224919253499348374010386194064651947594402427082898543117853751421061703537670921159070120484880958631220786687598446086316340630455579701166621482032810767297494069938658307290738386897095967971821539267131459660186294329438531952656102506341911096891484782330128536833943373758153733558284894920522187304153636376361562284764914923053975138680849286796825643232110720675721752049103253216047946115786599895972865789825553850520759650222781958700059562982048396874753488129282199450172462178839023635948134141945590147068809892519887258869090658563088368068888106561828992524378120729281875810102163085251716290781131805416254341228203610297291324978701013429739274549300025496363784642376461908129177898342853816573212116435779895047695004058978338923969584755417846933396082572151224372800658647610542683435677388704842246932081013301068601387437981912790655676188343161388815510428189095151538940129569986496834598146587130412800752265509886445372759182808690979144677267996526238078790672347073762430352927105652774827849382497928788136626734584515285707006229991425231769042584111926507023264863888987628540071290358352222986676411913845144203275830382103360587155663240864068258449204883341863152482435155879074403065512902460317137720137902778603634513417704246260329843564499075209701186111530174227637520756704256592376937939938041185476047211351108211135729542743584603378598883878609199378503290391556634444955852286051348849568535584318773709379991711358058637464565110943819690038365589603868948096608257986261198144062148803131734308961895237365015697143679914670542183828044293729305089336454932560314437519038785288986466556997727429125369067439821989382561012386074924587634675837595085559613576818432996397935172292589192331398943517878478760115712807531865506098617918054061390852770147749209405348635592187888711439945751091763242249196739033007788919922880117995079838615518882786689517919978052011801686475945717276541505073387665770260750652603264719053771435933377186677814203679116731049853759526724622556341605474436438166320954949334404668805953775990724938166575978396161785469161242167264697474008028507107681029463249648134521397965194007938567113965837048587233008954793649546634039102177215411072192053159937545171592590273718070693953166369248230757513761075853838688596071082106740358508917065261956597315252756587653598284469680242469030959740266083303087933988424726392900622859843824918045631413149266970694310594308937503083317379494801196612794839832734416889744442470738322608120677870873716096348097259175003713353036120440439301932922049525714518152141779884629993178728158585369143124155020516803861079315004121980238677563398237765128739921552096827606529557191441108199569673395322196686904444417755938638264960582167591896733677325222210376476877688644787935468445053644167829316144904415493303131499975042454237595533384518861286616949214609010812309984109698133211496983960993995043990892668662146840104712284371465765229043556789471893026578650136944284106876150865246786485516572272659935298897849913298454084993014410104976827355663906655604845675118865508948948991710587714574951216514281738847986337866472402618238935130413402051186459678246102530662326792241810955960417626548187378621114345209689312546147840325516070810672691262387056774186125725392392347914365946806958054054957398183605992619978090408278232382979713709167190344728033679722598205119654927294823129533345204695264051951314517184021566506947672486719336014821757554658227584596959319105637103235006620832239539115067883717296385250424634194412538689304026096366096781711091707800351491699568377202847113008302630227414368576417694350757350362264982487457946939511986358506823398585572510384860380829764795525621105789599172702929909973756934637306544298218731729222329805961196973617604480866384848958779950190450239925672704020022118092427993268436605119184273611000955783722248366212286201863133888932316171085917275201605334779746219155283707286826595508615571095000287826352337062699057878747371772045691103678333770800383593611046592413461821607628827172849562702694068398252866998457049862000880461507726662396663695748610613896110285437505010299059228933634852490725732661515654555181113076452467309538003003654890401779955229407134147715968054376097203855445259275741232645349990387517849352431095156167018380449269367348702703719699248794434370475895043942388508026896700025740147791709928477262483452667845098977075441677779866504229610886498524593897818874512123175906219709164238371967986787498452929108110838951731491049215172039073185689974693191698576569191600761888798433932516293450356682276073465020151445335192423979541455419467139376281759220802822994450918721142911200118471015050349128259405765613587377823008661239931000925678863701886441431721761008905656384498961882409837797380742611637267173203430608725422005983848446004522850079462344727773954142701055991384812563721110394232639333574155666716579048875406191106727685448475386864705015463255525780218393284168601347731517415264183349925554879092524672244856159933369860197288472570460664989979727496519493134258430858308489013080573307894195531080895225246843770701251035050938499958060077563125508609316848422098999120276070136992788322658838261709320533579510408594552832355979713557695846825608197530722376605053040310250206364384347349125336457476244798040809945717712900388684192091443956399218421787074871027888634645203620369136985811413944070898032078868267111074201643422299803693187952762687903385287978748811715339680859134727406785653644384124717559850688166766803599194884418361628621879480382745024150662937105725275014378295609843417283788040028502069244225017369663539732710698308545406666513698701869501189676843928966433714784113185032598490986040349621675901680589319538870399327801471050909013420645174162132952352734964178469991673245466587804893096336999728027954697412058272271096955762213965467063478569579034667143118513047764391353350068858435928550575351636704801209479337191543055553388840813459987878989778674028633193448072146911719546673083760538766973468973197690827555922285815733184150099009152943258359382533934500619541402082011600411101605537288781592687273069835223258748279282282227972659882454889766198360578874162835483143107501327341634449076064339876867985921389893143514215406439505019366029774885394351245933138824620292889261972304633348433420958910879008365272424931554404383661710098558993306066321804536807214074537255867653342316013220914198768745309293831546128317323741797203386789554597867101233649388471456967487153449749733179850887734405685279622848913397352321140981541214812321886181669042929452803286925761479531348189313146124210257645765297242973336320998728780586460996958293340814329434352142438734703001347465619184530057895611927667942883963497467477531345410748298608476811398111559265973070949279932715200065469723936061382336990746982295650548758179601810552644520631307942686119967133613104854293758365351963191511665256336461593528384576295853715770382357211116516604467337845060479655791450615570350725415691589408723079985049258007428443078040104886341048059112320036717263248354288063430770560602333639997976915423421336008472222020184706979812739779596157591801289701500825187554865124047142409097292178198634059263306977574642033345009416434143831765498623868214019246744592955012881177020191463110642969577559489441758657336075660740364817424171418050933226222709090509322411122443635399854270552315802455503820407751708739139325053536072621950959745014999256695293052360991272850240458438694025229840266531639222885561144250884709451992940082208500085343549991429060199391512114694322696309466854168027409862505640658184524458222238896303038823644302734342885684558697001071234806585152008149806724016505165690280337427490743641433777714321843345984357577739148474892996680914038029205643182717617999553521438337842316697035081988766261063443875497019840097474084281291271083379279415132493001865233538496154806191246340448124462728622159338288761939199475786638114048721290688876962011093940520825224508877970644992613284885685774352761633764138765931686292575015964618455420207002326201083113470060107623327437924664630979346035601590110824270417894477817793988214981083828837306968187561768940946523374017979524949862713716802463012099204608388794536527764759398021961767916640126068571998038496811052752799255957346274234135342339958914312365230739461116877998120987031332635958485920459249842778921605147503304542209458560021953793752437392819845506426364651118634514413841002136190734985729224551638039503346515092617808723865807802800599565721098956649103059994094907643823389042701141082384245731646598096282943309265430711527875045788072389167595617449136302439266777585780612068420921251206086696925163556515970156155060588595188005353477947014111968921004971474618946331579177997582856448684701008073419853728563003086745121024488862897572902660266832331316157086748909841662766077195396707074786276568780642114203662837786104395881652362466989227521222924264694024056926034134767995228834394028507659794544872322368684351017387168462297795372751569013118122863734680878677224405251570542113307540834503044659997824947240302733080410546941033304594963620485707384491693600849150315246035951315591730458584635525335295130155111648462479861975990435207523452446365540585679972328062218167938736493469886050924343449758219958440275536650559480458100472201589678193405512272861397900032623444541448389683961078216271805691855209176699572976069119475487931325928580163255151868642364243780755163096761435984410286280007590205099569173099864899619867275409662112215427344927391920695606712964556154117119552781174686367545308303471594973372217008724429972704263026766842877128700205988195044416865483284418990198046183719983259926168185714013278916332939125524809983884292318759027492947102845608688091250082346500666532759234574227504140754137385844045922664401594876742513768683088072030803482924929523607518092419264779184092838947797620763416254303485662076205765889605744953702855299004639583081188111652884457585228871042514455146026190616229045698566052405369413889419539892238914439944490180200717442852064174499251211273527981830233223808139952396646296994183230951688560581010195604252213890956822063387196044919409528590810131385008390491237790028585866566334861155450903397312624242945814414257897217587879177751780375007760651199466200715861055521670151818519823604265943262319742097987334703914198515847945701287902169844263305004754907062131524551620730343149247544848338862452466353426523982584876935216711515436031253065693670192410983312867954989541286613157694480411595899749362772580664181738865102131783218371188217642397916244959919310596097050581778332710071491747063379081978625615179696322970957209579894127928945185449031708807756716896885732971456164576425984728610265078244250765510922198106611020006792000434926549391831829262443031756728369910564097081786793799532870548484798537269204253986141530958644361016743144291251868678098750526854704524178844568400388855204771527182183762037896066088021518882568290500717809232375285385391008086045011455337312494414049119490292467233837038012609473322357205996890718756717574546282376025793707460199009823515533125365206823624575602839502569065244914757842756349447980345626662677351583424068241720114899803697878503427348982576988460008171656334327298473761777439198197664060732427303784450295007741099736538084411307737289001809879580704392388779403319351411165174872060863963529359628653137031550329456318885905186711934011918697174231749310758458464814912670592547423466842311406195268012499867458491018331739576911548240651346152685230675900329466804858527999732736615523609210033926571678559491366789650477054108134597883245577512927785732524836701858543312914025480535151365275418788493349025224685534516860348909966361867230907205250308403410369896448364466234827447932497715394854164544833264183165910703776650708807388352743786917663324620752530689291061768358029403285311608658162442717355897652334157933491285653224862918975132890628185750595902840002781974371929386697915436939493665251023474718846457106921323654784740805324260814009756601925168996906088082019725112477760967955909812731548141942394609844205297737828963194832669664607751539291894128699521116543030758032795958684832204321357583966508761187337740445628935302113710065232956175784881464706773903252417703445233617754756478657057504880201162262764344918866232786463449626062141687394093101527523730515991426791071130525861706019631173605430274829734793315182088899927688350950291338648104981836434844003184694962110015854944430554440257359446661769746196543068509437324524478606634950179206415002526353642130154708352968136010098339529538457758837428048542853631292067770427633509930826155416445869085220099188957975326496316510813381686922450028898367187700669825958125132613304768967776868373663925469791276243030135067585769901807259237580174462606428014691867521339198156528658657674306525399445944246905813051062875099675315261233390816299527940415179205072420107813120657288394811766746997192380309138450025674620339562507063952007849792895205845922275577966810324659739422186973301281075103663010332951580852406280017006847294921183624091426969845649114583505583014081770838970496456967063332547601183349939878288660838586575468744978416234324280574885425420983359349299360737283248021812099215265518978053691250887464547907360245862263132234921225293843352338977011267445213727259374612484724273255608245757844046487851245449080961418531377044448198708982003717677297007491368785639279183999418865482008909104633050226034129441400910441946839508133822938288373217444116731171952219304069218245921690564086388656302739126933212228394959803436085845515617101806345429758900487222794250637761803892291512367758001619252370554564751658298073859206847299612935261826420808646755126673099868822844363356317206093708256313421565863784568210262272227404400159460930539781268441981537289231808208535550263482496190485249194030253081826379667415248459567183768674915128454488553690323487997409289117544166516364234164398936653389084684247219794377987891377895399669429330017555403958830391951552674539157190654933244165692095051736566551279617951571771270504494170275675791192224145805833586511093104109938478484467321935599694048586232141362370740357902374915439465047394769303577169269934179866888323235354052332710326497042501438836635310044546065794859075428362492746384273199910875602860183699825981049457032736671039472184813776229149587107525785944884676945435102303224622834535700689313471228164133865865285558059171782453522017398221160016227194454885427775583568564497408728848746758388681773648173674045516297267046337931212426386807249874170224368387530625507578083860902163185151743522959673151697794967125414499457979361398004816594426193067499660481339635785377712151176437263542213675859445563346379160020922474375390938474340134897502201669496709447143350849815748658201383485038911511877267398077528954728815605032369334843480611724628620827817449391068024814998813868761975179097109121499941761921816875292534082654526050061100580192188351642159411543461191547589189243356865749720698232022387901405150374858686273958093867788733802435324013957010211645536300491388760554047191524412116437209829952322428208065150798142043690065099555025888822852157412737036200970895645797037605041347146132654617167598794972529055948931721879198294707974995491694194437648798179925979467367660268510735466366624862910665587454040087915990648098341512002379864858026938347588911636168376445164176009132228903110723459085913136336879633338069030994292004476872416891156878816301186803708842887078655176435007230356662767021486862170184116781587490959877908483556593901972734821632907319463044202099968752727502751915991799057371237776616750324710060955329377256242894441152845273792120433983672208888703249543864032059571261400123365547061793053037573996279822080241741451342221394934096319050548650487435154915788730427467725782246243162261758386868558737177049491070471720804060092178146199837296291363846126521582408967886569860906450178063666897883833125464144877002032112381115493745716995693389460473960712528078040171938592295647670954022074280038179586924213874776832038240754843644837088482991680599384415032483145001604725361940520063406461599592591738206605773854259517712875822915398922443625732427356760700977062236319252823159303574203815765460874555499767585642735229398757474774966187663743648796495991335699712825145142661629513382455293782942821545728161591222422040209817514568566905200805492236062629142289962961981084835939598392348355984509296085538684536558255266987849678715413955112827760470936672922149698614552669264328115140942195952527259615111796290342710415707219734455270631113027214877088297449576654357771149744911985176282575334079875461819739792416671782147181993738507426799239474875192355665335266449124352881050129265583782384719779517825321299795877667382125475647602796024425578644344445543461139245156088558959944343952556812665908418599317185707931669889108994190591279870270295053627158518331646165932361688351130985222678642074667455877658585891395291857440963102760882619339561980350504079722168233191543138673047866710542325651237544317456837903324882666741416621526319052493412759048260243031418773500921363455830843180861152427622185961416837575577225752351454571499445620624313561777621909183961112998707449493460248424388418592321578293341837107698789320666522895041960403562281366084869271722150550271199631429838430834118332124846465579945111450267900947480802412743018528957265940513525866653603546568353787373987897385455737937245660362139443109631923706026411340932681104841338535080026459936338642450598035496956288029447220597274214358410739252605562769351703275099041398950979887767440511340207249535340963832204401922777413076143750088524694237850163354244822161116037533097988606918573789115029131049640129453173900997408192265249812422137623653443472244785939244081841836596986277660560649227831962728329903383929904398330629279594102010596800238226171807771534578320878099299709023167024617847818410603877481376922147835157750037074705657842795457697078129250205069948799909278713010793666814833494371223998889240473946744425283759521576513475125700412215896586173927043180751282768154191762365228377472692016377753883530372632373459614563890874220173492847062461300528393637690668118647626520540138619524279311211906582571450940100712865883502248270526014754193904390146902506937690838411375357769503848001472597175639737352273767092676214475008449969750935441690093918327009665748875637889632225681619564362664220082596447921106135021059366603420371486976841032476754221695446539090644131546078223011139231333489500534999850736804385231109076636510608699064343940420674270281874600442210534103484026844287175737575067117686951384122308745288597742554898819757546752668828618683339002917722286011668992155623411815699730613744361080089899386345165479723937112663269333352344191772771582608954145417843824964844529993546152898693771160849920735488680244123062764190412599901498031880522377080007171004302042961866427428422126524482221675935014319956373907047471383538971090978778781210509030845222887378139917764080630569693584057350873146742706599370317984710991161238746386151612242679892648779455722688705310251297372904038658560154215850640695216176273166818873922781334841878234909567664505586962868830477713620583044838795782806931031430732719431734831619886635205743336105953846609586963589738215119745317249428801964938989531215480283789265530988568602953340929021487563033831220031331153653458599327566197696003234927528286425700371456428932823420723668241768337155418383496010239290624850259918968298308016322489339415726553297884626201181547666973664115557700843307734975211983953396522578186432139786129052069170158946749446180121964156120548997573847294108957101909822487802057269458468015817818973438448644491246611565093102898424166180341912398139927028157538402698044747807584941443560098872486508914294685813512589372965417773631297438234358581287819526177364303504520571823658470117098727877426086780435266423501499811017352119449962934654818720445925521509268299673150521512175545343626871454962815493846003727588800108040994362118707955423335294462917572292273318991716060455032884693332353420041648971992979178542219474851282288385752554882417356864436540260406968103157268992868657564090129736617291515453319205485039547891540394152678243522233430348521284138836829358467665886734248280098733172791836704877914063485479859784305097951967025380035930338503347985387934475096685006851566394297055476858393464738919606355438779642172736184720203720196620500446397205796578957470122044384711163679996381423686876305618269382070860922822451779726733821179372200253342484546126088226458911237259240152244602202115717162410890620043846693587674117492246207733273311814242033873033125719424044937830945529156729412630530922810813804999855507916603260466367086194415011566152318945936555198994067076172428156401187669516410808384816076373838818397971176746546919909075030881605786133299765619054785811376331498089540843951631114516229238659868177886054776257331121486176435414280223938899797798792653681811395548064724574349796616398791530411410101480326214692339006597375144369789322591523137526930794081014574154578391281361819089908210427913965746555598660705712995501291908184528413643764329813589602971208671739023745156112856676598660421574076562570737968445262236254998853796493224205733209087794067118189186585264386228848134568511525762905548317622213931235759294264725939957173197079827877848552193592420299297544538030958571962187953610339576255671295398285677790185943238278080419163038229705152171407344704208922399849500653574557256879131360766367487844926465850413593682349407534627818096109537326068525036647066386945192244527627669728802209225840033787520728731223949702057326797643570236317516597522248603379187624341998269373067098277312904737788305849890943053488943211607588991262382684984903039689560817691392640613724909335362933414321853561355701663185887950698770601447506649471657204298201362615704791917773414025695678251254879989298873491139217734984902686163320785811077402734230679781573376638302734267412247405324253530588337658892874568464715049664121393772331557758223599635564537877103239764592641241618065463390795305264272468857475787980512234893151646181035609546594379308547896613939862867498355569701189141069464069091231271891894358780254395410362165732484273377223120646018122459919799657559543745415589596205285109542888572791913140346886178297392551730736033997957726041199741788355596122927897675058315856367921012488497647392014140446757760824547048521729981732256928210470244523396059498342309254228935254839451533799863885955106496009474986386355839773614498938433788827020651541171264215262232362999538200462236618992406665506085565315906049899296657273357626296884484459017000152936496642048078647533995812438474656529337718149608354442321403188984235721231651517233780145769014822336256950664964014779836600564941802680663288115456264008974843824425809431719004261941061711280927395264674682665615516664828992027165317959624877565465262742010062354669359240075853194447070890417166047839252088145568078018407055083531346289929830226728062847441663579686521120748963109385431552086923075338136052346594620993307700292930095800710154759207612977356972074191293205682110860181985851297710229653150068442470978624034111729682915324605339405208704953199690974893990803372647483899008343833690342074447714677715783070289311359119108985229931938658568489947705771194132988573306506399508049559653568615442342947133468952465605709190481884391885509559241953693569440818500806425622783229760248521742189378930299961580993736849305718060351258492764935539122539889703311252023271427579124915745747714079815338782088810818316535574100797896236628673519365908211035128578511338797890248765486162343729905640143659473997724650642485580815244874629188500119694317701998386898402161020737726391566654493015152557010540028717935858138136999148231358884147876007144500665566222351984908603018970179398997626906625891330009346591892330682841862724188250911663793548624015748608231482898078477206224620813100985701624601232799498264072004257137399276379053630484591388516297410756148498693889587795724026950457419549926092039556854853512618915187320359897549478171453004609325980552193225628733279745021780726136848605175552752020057398377369338225573094086208266117164423262443710700808057643351671252738126776407730769409863784015343933603444014139728592875664937769521283521606435990266850578120304913427954215906709459546479400127573321727869635093806050588463573598859732431912273355818298961605191745845159607455717211180650332154334260090202058541243105275842110203464441347227847111285950664935701319934035678630017711760565603755996804768580528829865588675951018859994921868259393393999742043797468775615989604078209887356531292547992314920910912487350135715362200528765591690526613178634328115402373592899000254314298992219353220175426548870801747398925412241909394885091493666126604514297075684576255212978393471020549005712379941121876377168755543992623890621837211949171533871439157815738017505562321310788881206876774164053615661682970645899609724223186190836239789455766253034137729899013304496925216077617178921732881952788482699262946691930809142788181651213452233159688619917438296843103999297041491398217575862770327042295719924958475982960504231071855718984350320704156453935557522389095979438407263627619054390484184612861144493125639036507270516002484365260791903554254544140642693916700527153628302644314965218529221789959385133179485724698336326455138021191677578865044897174544198934811808236511655267186631257552270498466749898161582462574162841243492960904356498813531432452493498146670926550337707004108017976102580994738004576274151805832990602560197723045236511140993689302025639306304666810182806660181281921516905337933916533995852727626730593185134559633938600902623473169707202599265845561691212855494675097037201730199557788393141858499405874704452066800565587324638682939486415630008017525868236356442271291516997844134206973773485803051377958777356524477464590464933597026794158190008249470365819050979875990007737240535269824598974801751192561645864990638397050212160825537164535963289944372808755761628618629274531317350000596508992399255355767247848666203567527673214247776262140236888759774130976852931434379250270956975844049229907911053291288556137389700087155719709331339647678911456849284231752493470221406222114762404138675385318514385477994082054237938622574786349455995628791001734515894153607030272924034838482917384493640675919947413647365572345544949921882628633734710422767505528917522730349106442456390360163185802997057556344127701865253619947368067692271254736092669920672697694068604479578059427821751077004867214384385253994312198022036542306051545190925002622208009893162927748922665850809756084012487136541342459628048457229528574293950990408902794994692796087668150145338303978032485424232926261912652441535841837159641932204538385896799655378298955467918783185609238076751659424796573249882419505273010800467934916225677344701266496437756220611410151746530275013820902226311239418057857887700840472767080815277836871319362844911702317832733062241833305975195206948928528053705706425564658555114244609748521484121106144177852443607335074064229911570055817966170634268371061702199914792950244478794803866627716747628937252629577458159828488634290847202139778977241366222267592022269028811413288220171183286411118086151859132726671180269647173610105871989542588650316103444313672219092742294792119929637148100496072778163315264438995423147736195101571216276935686326854135893035537429062169451484556678373118222422239312936079388512194222108425251423245271617005112163348401985945706885409022220224137340901373422820335895826038929333262563431982332305108455554138655077389871311612940180108310553365143834781892031967034710996776164562612539004278416382629344920365747403493137570881314034386618900827790185629703752876611499497582655564929663022115620679375135208243924966118282964271941545963903171284050079635671429811767997797970569885524499713349644466461597044596211116708776163752353325200828458276297625744594423665814155674063243903384726581675655181001520424062605999524796231854409533988113436463324360837889481519675027417781054783619449369570050121000675374293891096107735408266475509668524934068529871957281643907142686343303629850567900700401719373900082707320575444909533320608022595483774643733132586099676820934147573163624757399098607245647142987917281110827803362905556977359173596407615857902004967984026483707405367719260530142678847908521490676775983060956222547205437662732516859491044862530909908209948668366496720459450638173561119271115024146872319065439447297446417910440726218037970544124062792822510880106767020797508009184382800216485021905905536080128934864681444841167572248667754159471869481142293493522115879718006712274350390303470393360214712408856633688402554575153568801961047670894669726526072262228774003503822590273426257428459470200329385037551189548739221084649520853256448145910802683839805745928582415799508169135792869783403089742465233187257528363408087915912778941452173102563251640465884665127160152365867108104929975753560012013748008835895315265188638560888301320857032486543819210138071240148949571571906705805859115180018032441163354254618701947508260886915593736257112946430062029780445897825739222521170334484136573597323320571703511302301555290890735465423360043851343179802384597592245564325022042667617123220403207151457185288354987425611497064440013291167878012208319706100142682022865188010644450358628735805921338464654944106208187002444987038925192114499018584532436329266828449275324964007399980525993726867289700829409452142670824289438635440362097296403444920314979725262949036471956383403026006868714815865343441355478526463279988568020125374028281357967080264580407097208671092912034637476333836019677297990562911857535660274923653618544029517737009461145420580462435682593895634264095525820118173760675804270249085045649348250314316820617404698886374894068519860521787502538478082165906780482694164282320955112412745305521954698870630870816687089211946373341344694712927339311200668878208565431195435141311479135364407222225033877224618903407265006427628980408970522573510127486963181988592984128660918788172250409899838637453605871176424272537551980685687022306427852494763066017610935148239097625494005967496634839227826620955660757570748780974640653850846969662816688251575987969061926400368794105057233608657191107940138019416426551365982790617919703474118632282580677281610577048171949000837278205800778346040010424637664137585056312583801666446888736945000215823471087106557540560441850556127828132053884402346891963722678069168289995085306538969105224639245453793517175333471273501760432793807098225858255646114277655605978100491207724130836383910531238530323848462604307364310479972350062217865547585329608850942545812577453532858425608833667544372571658025281330012327230574557799116110612309527849950821134672926412549775058846681996599453498439541007501077355491217607016504595073438886692956214130303291797480576528949766754176807661660602228874930634033948744694329950142922325093782091690440998511156069781966370407292191104704033139301660538980004584840460975406114372076838272498911686145250920880384161615827029465247907620023045380714565872274889774176401299067411676167271480116834097544334712588109744841427947541097500166887448493673015629943064025384610902893530311311838101394361169056603261595098399525558425878241021222833908100375725345687623759285321071790702875499028991072032056876456352870217079312803531828671623109594643918651886998054770386386832732563770570956098021089260724505794695985830541739158482900035473275814458992159920458951607016992327398963949466644181218394223763518125965241844005154268609360165087154509469175534918863996235962108962473055533809832230335745759846951681619480443969223383074078225619953070481386459653834176023504310898364779529927753450266863554832481629337117155064265922232289308848557995875388477943321170096451723689446992934052669255380916894686547088934962012261076140679195019289420729202294342231847869471725105558339079659512339843103252698511069202066218902625979410555583042249136140809269668032758660652878303763099410478831162799958186368956397965518602771063580547212226294089768044463905721631707579001763725034573043471173486758462896950038957480888363344702367240090590759047964356959015991435153152997691689886618356329521946373460862415075467133183571214176607307459052832967457868125420710796667468746881421884187641375820564886817114640908199742712646500884351683715959622027917903447254769805725830021106819361437234417133405906928019985789548435932768245178454806865484455983981242714145378003521754275412666851279825582480000878846169687265491468987940996633593070679503537545763682491105729082704019835424077835766538051652168212032238588060569349895028002969674465132099153109338360457836132854126402861968233309242406921928770120364804758283739930305419960831631850284452224009379036003436144830639349830116066630242575899975915970780069297086513980504325459622973940013126573269394320858995592076800031392380192554332915746496274920705506240965695562430188433448122013266201416849866434218208990438844040060638473012350543459580627813003456857856531171766687020574626636620841149914283064441398401027264333613047371854811289392893187467948200790863605638275315769985804792314958196032006797230344962961065951642979835870387733417836361264514274504705008779617634634992935346076731529378807239414239004193567729337492283032519158100165673991238909883669851054962934735556906867643600575575389753062929371209079771843550591774175389188966236002457042369347123534563633616410188218985190344979043009453523946932648641047122836215545480127960342665005548417281525192937970338285015692614576575523575700644992349212737628550231401194592902693843518136370855725489507588256169929055377203683605221249669100061352585821449733435398657191792658541318854089016332180740474222671205976068225048666233079116896623145577078955015194638481044584416212587830685256427045584834404324191736214719045287157692451676585329150540045019909348557396362118905003956265918548539599866651624965255631479586529867761273626526739343465593353706922904731875560920461847426948453172840364607551665926711067199701110566982302240283234877075983073113055317723067863139588110764595318159955868546313866987193240067046740867627799063435028114371765256154007550137428617446228292413630773353402106308419562586344984070476109201029909806078478517706299700137792673059423349105006474501945546710991189271857652980199569677010694295362215286754172748974120878059462268226018056772829923506167116009272039980254263419433475348786503438166707732673810975391105500132316173866811930026732862540574679614118692788635300652362902155860371718037253896566268915828821546918635694334456938552739152667600986074210428623787456570811184368061131349843026453140922725691590440589235435326392676823927866906620003620715732173372624389393940251146774496897338129014703008830720397843661366415141479997545626824704888539697765275244252202296269096874250408294193645079404306137911090743041898665009836640960019839445744044485612567145949467034103938063159393832457539048823330368642516859043944334413557448104693446706960140298151991599697378277348181308347842542444992216671639681501037596207063231513870888278505334364574378141724407045370230399398748255354949596928599665507910334298003783711521805172931815049976235968461085524911407046912539730326416165922115487731401206582386250241007641024418553057014398644518223485625153735089916212317849978829754453437739811475571930192562189809852255839735020669783317703287933483925917445921399905187015157515144087916296101847950585499553576675549681889865493790296048153688968431517442515973668466704405605958867392642015291486544054562735185038538591879879675493548538788896467662349147994993694877551090146629271246345656511826214650386899238802477627858910765651414926810340741921278601865963344562760061843021350737161311655942790354915956545230140507431618257883612823571655191559815845474862688803673574961443086831023177840510981023436169147022467799386903991556325791139711852280112436777492227006130325476573281143377313940489555781278661034485363439598459146387190326073219054085136760396112629165571269916505836546609766118526825949915285327723334840942243141437718282987723430847283393152622090475256850872691457366100427408882914253467132455302343308389364850527766525689192650295695950014058056880084155234424607687974029555343777019559787618219723257517012754168327859485635784900550670810442589713037914667805113286816022006993276380705272219914413485501989856165913153501183416279874362223804382043858908752083382526210598898134863337427848609095265973523096872860514267485085460964937323712231893842476107563027899608772744863825679757068578661660406003359746138193685243262907725894746676177811276591041491992329143255765304760987507248557289063241828838427358648598355453193400791552665541665649147013500499668588171019248406216848631251498197009021725697280016749798313959307877035099728408698914808780011603664457843375622445806926826258749174721019210675498720723921768153137143989303735312025478807303117744850934095578422988905750802480982474937172089251320453029810187934706379255976172940514560360862057202149909090283947074075203260112177185415817923032957984635481047449503099267285401436236392693944426237527152459466839648408172430628463608017791362368665543363652870214562032239378522263707264743919222712485653823461141655070583431191957058492383273520883000982400753352439500012941867494115852479125840965437740754063354239020119045027834872382224026752172345988654345307810242706994689807812519909305794646315265399266936535702905217226653842453942332707494779662098270846107637273492885660434535163395342210347803042000472815641339743537475250674275366514204564465635094687350315204190493346806564913149789451031623301085577428466702689048338001239013612529173690739766764244200334874349270822481290399826707044651893540796923119883947538026938313374406317768564422969067900283293867091765365888728222434992139577687486080608525505712566509918248210007530929473239292583286099596945832593066773191023376312532366869098065170746068109910591943440053509539871988424273972353679138723022966490788555917819193414141314867309770125442108343452565255960364975025373105596296452976565731374058372684851980455149637383768822734364387223824608380354717222537674751582634921609540845547473370713148572653651632325059883234470106403782006788912500644690514422921298210664334370321860685045034269867386069229376671754146279156649360519745346151552021433262037495526178614179774041293751000307833840349532472776896198180189742571463259178868118868338729322193492866020144368032502569635402356306251552110692888104332988624976056853831394150180323363706409574475160537899544198776327503786421798014989715757480457598842814640893506490786192998166081854749096064211862802877808090050486797657079197724718199412307254969745254599931458211243185077766334728098935331195947014259198323281810045327330992328745120974053806489066938427909903275600428925953571953147817176961526186518827978715642402755222875494501840543157666751436984201522482744637375010409077188935637701143457738444864146974752097974640624847339027421611557695900051852172593770479129634384670760597848563684302755787810068688290611930568446954386751249190895543649409807143942529324274520932188420999791907712026655557064518521693438460287010735321941557777999748819696720416853506353688054619704677073253850022997613265483962635575118522587118620848446123237565531383966557348221346487713452151027965168322704904143613457076257731951478860844714542490775491200168224011305550383421791377682989194043705578142667558672847987470144860884243572965372733207854148628315424107912956816957079545756090283097309609155718563368111588788284165154566082515422722533029084923234501005845569512348625785122725645376798188134331776688529633822500785292264605006034459453081855076538675984133105687991283940004818622780795043867571373018805376975999681996393996770254898696361727674612952336378725469955290732489524570134478324707656392028303290487673252943572941905439813999317086090152275174289796673581334286975672499797844202052629293931569673555562296851141914568689835636790428015931196690333460549678421624765491201605558809893264854761704130342602312722104323414838300615603917621305984145203748647932562443032230186448182554521492896943419878445313844342288592453791242201533955574623071999619715991880281414283217850056075968865540365788712217378364115622033784114869141551040945167181004920252463352559720357351421355151890426947500234968583873652941339639389667298612440537489048564206798994886322592648267453474324345515264839548208198815143254599449999139972539363160376149724437939135927933477206367028727605512267577684446533536555527398226990060863493604772454374706342821317644590882784960289381373335838830919104732229086294335474735973157190204751567920955426668840985393136277645127969914663658602358884348741452380231512617568146374646129703102820141802234668920294740293491217336641963951584075563600639119900307031298847101728557614209040194106706281315630552771727741313653890936650844225977179820414706504374220874170753508548448542360221370282191188370871174374930145604352036977213043682284820475851226431303916977986437829237369974177185776738696293472515751287159901929374278383274660907753478297099118097986327529435316745663472964850737649565576176540631101443763980451317952740424138639509438649120162197218509766122807814376279676578982664199859990675085078374971546076525445737962385092613485071123806798617733134444113219195674986281938949178405525176281968485683054365203416313558954524952143123776074223393329260359039191362132034837387429081969953821754890239824110856274454436859956601077766180129204487257625133827413748632882651197151200848177416611096290701191721326105075584297502926280506813388994437102563646380177309269238340665843197519818299146407664410064642507386987095342172937130372682882200040104191400449945201243426914435162827848849583776557347708656157426494203053453927263168401080867725614520591319877984014725436233569134270798689677520851071579411908921183057847584142383049077003896037702532347782679897617202686446171857443635205680873235594166423056845607990580137924810840663244911966953630773054582207684569224355919219072718843624757802073463669616529228979578040220208232730545057630399474563922997306704753488243660372835829677460425340694757048120993180963587681819303924986833892806661072191595367773579583636371349975986433647626668370205217737040987220936812824191676195354923108567371864796622742032212674658367356525049928744491685414145459425415367674475003195976555493441683027529323392475703548423589259896807391871520751548700007798258150059853598458074497053469560035032298430680766858402333405911157877955569654270660372514354236230710458883945533578653794302293202244848999246022278731121962381980094462018012736059027206786339915641646246200894617163522962755158214053527686095803409558571157644575323034807053441730900736917305050902596676667159967683855404806911825182295159736637774659725812200306636104818769609096727662953846775596819925738139572683665565223721872526890151125367331139978103916924675357982902085761899243692322958009110057969146153545150248771771661085793481695613673758797529458545478253160404558889532719707859971505634781502207128923859516596928925672976487182131575339493297736234746777004214369259053738810335631802574906166515846385413801384315297723162715910082233012426947437049927928881860145887548641375290243914552462590503963156675315000550159079649115823814750208040825967798864082759415340040155502941039304069292452518829524624196265280953630789373084847163419347781457663099353033536349274497490519355072118247586366051801972651879160654935623969733208017787382853775503273178211254534663061073297884859462860360088791041912577871106948735188348248031420042425863717871348028258077551703248101983951167798983322020199136851070483008611726689952937689713671316147641301041269941448740209479811989776170914127779520492281588988840974883175226439166989962156813693565745228473964866250752831989552144258956630079887726005451961991204862636154268489135932391382121952307274632217853307195499069233197412211479355465098366480247351999785607614806589870680620503291209339270260411226723903225751822410967161219437274330610492440529049791688755732749885477127294694264972679046662539240196908016333320400774754635905230409921801632849662092139640430557702674453728395832566553852739306672982230671656448804797076259935633776023796485345587983982642319112099654865859084496037514313893545178579404059393482458618897244270815684265406231326881167303090169764434987506060646616781393193691895698496056625297595214259620985990370160010235430102863937670562727077402029219293451921127442181454414294936499788505034534730925520558142050872068696352585393209215907755624241299540360852751810710816257084584923341733818097362500288571295893055259018115423258527596999649760394759868846745056188530363655819225687817663166816432454614008970478369608065131442831058082801202850829462171650255660432928018017439871408159819825499799543630763292208394514873593249110629588475801228901799315637201084867875066694669726481079574798164830390948519665799127502753419700896045292004919763761986333750591216711874467558399018897288445529671771680293422960977114392949108166435405809805584314831886874134670688524265884563391059722275869626888168215090651122213610628851299834985444427290230534137910308165304545804006286069991762835987388621826014705712986362075729730796660983217228276981726350645460315242297217331377180969021395240889579171653754816898747898224414009971884405809748766507962467379293372756445828741877835186839475846070870826348382384735755427775781635935766557766454253045499945517494863338121915771886210190621429789279159152325062962616475178839886974626682885874156980156848408084268629644796900267071409884502488058946367685095670452842150424414689528195549138903221739093108307006470419996022893998302399942780989569543376609592924193887988834551271982480683392259637667900286439435989311038571752887371254922492461121945768726307836325773166815111678679898660328470422284977987976000108807901511468983291750619242042302489770177016038059679035898100893314451242401995817233852845931063195345553948161535725605549977739514282576238535581565628392021494235704688698052242525806824050405789675901455455117718482183817964251441268363100238884537854676704225197391315238920965604810951863114929329732837602342344261771109038584258010743570123999368230545049028118351125100373598045207219095669420283115955388034551192496675046475766571310961542946031118460323542439886823620140305974104188756099918557293311975032115321144058203023227080254816832906714136618885790989052387884937249651116593726137201801468827228821340733350583941157648253734750320291487390109788008353829198079932349194044253410482605249323337741558494006234148265262163437907165283926559205183109267680539725666298629634001971991597336512556031466527089429059127262453099551779222969328708127664330835166876730978227997800592605335996788854393775162955887097091799748777899956774670802200427569520753062766087113273564681171912340693359339658225108057503973067086603340502182451037400153922285467770388148313798302154790094512707185713551561088865763788665330016563285138005318728606738196179050217386949811125300518936347176344648840275981068469359169091108009927457646341420195458596640732869961621594170971049810229905284428206490739928892218500875260064882076313517230229065389500465750973507737410737836971580935575785915760460499830679309413542318671617982170376272989852735955673126328621199792071634648912996752994676610380989428465013633729832379662600360042265276299504396887435685247993423244217928632785726394483283764192443523370874961173219441595420433113796322941878590894157151876120844821567201881466434171968835877890750809497263506674662303114326129032188172088832148608987262653511649304335115802677337081546381189631656455724417372932152254737643269761992029957629467311474904144806651200953477987426350354896434385468957271456600515281517911936073464916961538805361187020661606744947784923254688296469949036011211059431949694844269308615647199312293389174841375070043948941407654514120690151972430184075269042257649684410726104563941344437122406242313457905976510822594375558662507158228135565643508243661185726476704275239734909963702462998945031498591057755604088398054307890509528921348570764039071793846824934008915471113930753685976655596152923594622116923596640879329959429951366851143746828020745745560098914235050515135062911589128858022901506151033706668021303660870472013182291332532353436418515181447196338598979876538662735993348195517686529565036165711420071854949687606511868172922906619758701572715996774166933255836109915531474873835751825975978105138116964437432438635139288132349609986710974302050205290009411274799215832026262412739874531499236819472942897537208470574275693930711749774088895015043710251822668186395421530499951690786529463733550780856944860986025830386082417141003933168222378075360014671555379697487685005820932313309082054032831992357615301154336167612153118596526578475100317241268846770474764011729861597504872488028614558195375709018465666188498037865664531293391337744883190169672164720577466038330590215463612861820716424673534799772375108974751269429322203278636922977386528855505433105824999359496204036519088133826925841515896648752670721309695364725738235705540072787104141040910029419010228933434486077575956850533865480070363284440000246628616256319572961602354402911154038368562763276360258645319009450553587864167396699280158302407470681297782062603194619806240624509691832798077034026879250474052877516256831567544569151629532497071349706802867245207715895175434212705765226600883706363624088524956795143528420729484681395959951522403385087587912251898138921035081428611802680203587986520680640741852119345366739023194041390079545959203672774205812039163571317755093947616249337926134656375891780554867203966170648512345713734256666713232061656113707787857556418911497718462215790559425404308879894419302822092932480524108045443090972843640875343095256912863702478664956204358928384929280861974205218063658290229542512993340592194981453277295937293017229076054420969077333905883065840067192748385093752192743802425815080532839984645333616880356220101402763882438429548241470496372407000763154570986211058769343156849654297097565383747688871816252590028992314534982653092614242936608504413756445525582557162567065690698415791653939281161932996284483751197384351932456081559944359735707084321857938369494512170557860202317277159378056141401803304696670229030923155744064198875607278647302636463310602187958594880087106844257235058203406449561020220007939322656644881297872012056459375257075485567065611384319565396769140259288700182839565625019329301063893978268313689611670045327425826936801950395903769653515129377855063574671007724349446179579270684798862227817381117841604350320161598770404999780107591194740612018933734428324056346099958987188276271726690660074188190689432591378323503719824394843223856007137274921481836848668660029299503936832917690453374267750431604940087787037790163617179806744330703021752368182550429820384363666846525210547507929048864195038605689026871938227826466933899057426823982767898372977243815790549500513188252300954627810316102969699485996514738229050351803705379856982357910124365663924019913169316538895483769001843839245381067405838592389744339759501333643737729672777445553714010781137045218197358648819255077833102655311793015369475535404086830925713131603049155597988748096621801022616181234116021519879292187045784264977491284465575597560080802245513839086969235292729572543086009094124062553874898794463358675044494894678585747069148739473990050913619647292774636799544670441097394496163994789080534582370836195645358305071196413779974126896099459011263186099237487926650130451160475571699085188540253321795359434731387193789606202973374755565852000928509989625942950844875801180231764799659141866803405134966203604703009943638772505436308521066330673559753095259562241795141835983058229484444527000491277353965056814198997793395906990092461005039258576357127747413202889079981560431939596070548429961330031602050835564995453798922488545189821790669711030980983182018329994824416862710994525274634257517347071641318566857483859129577767659652855855743828331121391270888888597533749535971567071975220746412116037576565046679144291469313630804763734139828241586216201148374441779676877284694452041935418967083116522859270644175034639449863571527786347760138056365341985126745089361748076209327843934678787759807773417610464046541476738270223998346695100822635383304503035927882171960855055732103042940542627348818125092683802449684564431427427886615318796439157096153343702052692346685955569550389777643358302940269323115470716525325311066543351802645948656421292614247238754506034001488492886924279796532632114090378827647596867788270213402347916398906373307637440919858708438364121980859913036673523128857709025738897869671470805878719560344522058861106633625014726163090522610271413173759574961503175494635612290933149425338067144816807111894095778714910768596921372222608320236518224940236964803014499940933735163857017335987168632776109747944044280737164946431897556898922648278706645589637099572430472034597460053355970533497035396435378027181887325108262933210199117830414683876227538759806976575334598274921068444542030052733684759018109934641285988949513601385295407603854035342465137018818926873627519840524312898254184762789793615908890049893843051559587584407866497196883159596405422120232822826595819718476618406421354266469191823116700319357188286623755217812169971178336187887918970634939895212046877812684118492510676499393009063507192632987061922516746771258294880480797206973753623815198480078006792435358357245876727678647489175793544606181244971669066641036806440585511732373200630986194296827878447793668793179837489765655531214099396595164711363445219472595802854958286271389735710221713183287060874563580868977004508280328627887690558565924473226574087958370177193918603818754094729411467159075409984422942364272161978802407519375052455624343084639466643268718156162982613421997327319777103675559963903742623365831138808600095216917615292291769072734016795939022724972067126937644546924021075592444348354913767862874475132364213615936254146057735702315225428217716103683804679058268118845247256625010430254062099954829466570940234254079820112483875035288290630007094671053128853471724636124116450087466878008338565512944916395538237995607407481290332499874823996439466088437599085089814898635983837422301306275561693989505951345477641270479234498009975597617685255152090987774910736078854201049541908828146481640149303201882449462206664589609935422620350304866949287930724772238872663793037798461030369249933788281244209319534650020720487136643873557473730520424564801558438443996255327976416627547243443125242027881468308141049393121209497823483411698304247204437446045253975613022219203689885347748638435662549185147249470732321706767946396112461212278034695143099269915751468440093991257464980454547705468940929380606870249891064189551011503198703926241402579173210990771349918098387735420058055705503243879178346701257147712226600695719781140230340403139204317567702044853860460672637727229384910993079506913963233067922376390064880373042673387115277557381124348803399982559152803185651880669778703033524212540070955992369743088712257168057969842132139344708004354535271589698681077032066080588884918544719785061236934714894256861351462008639470218914710505396201012943675288060383794340994803270967571608976077684037034650443151203026256995735519006157457173352023162032139793912574746143219147884331050111109524926288474861203660053448124256904401627544580415762984896914853482373199829802877341270507734854649193475679725545383259707388175098325417919996316324648852255437691469195768460075811431681991675711289344843108076175405431544892612338059134153556840166243007200325170174675135019925521679966229823354438603812557189613309247636673105501932616548365733546646042105056092817831231195713932757944530529975131403739451165140374808409493450370994624267071463873548148969009089462975653229483514727349949799101272753119300243417704950735709733724318233081216325418419233424908420645355072787282636378529619708004665431762886899209779872102519134574933448627462689930930543934459413955349372378969230338327091387895984938678528360881064829952664798157936101063038130809977894180835824663949502982585085749017190992386267053158538403653507573672270831185749836692065378660466094314583485447928741721525973894617261931397497246139565942804293153043977483523557071407225983872061945090342442074511985183279775071771021817413452422838060530825095973227001557852502216421832324037774730097948421053025918212144257613249955728272466346762105911199233566661104558412213912347811256914935181170373300216499251944018712327261153737599582711862074517564804842021545352584875297278883696863111330109889628749649137262024333204295247379539501073401843715996370560266849283476274290779562906777701746269883098592868386401911886029721979918226093336033113274130909618809991809762307692729777098435466338683524713667327916921052525725683103633290831853208757682053507029235866200686003446863864556621087455197782454109498487161197584865309735928088542068070177690783542540200259175943951113848665060630184323829179625132493191972276113285792409529181915787921496823753506051819997935510694437290300229770853482916171036891093662165014433012193428203053588237078915192877768339548829795004934165368834767289372006614487564666486048960201950513756212170235246604334032833329568849589071091437373077608445245722047798203104090232683807929593654588895875548165886363643047893095107695557274150739824658207714836481303947582052455050174449317942248155163959106148488584130858941853682073828684256018845082200394196186976370027470656636783750784104681867188624066772076951347502508771544838295066958111579661257868949999859568226027549739149305182885097162899174705322146993198551211800773280579682413744260985750398014526021729696656169932987827425566066542756231507281867977477528337945878645139544096326113091121239683876976679260822341876449972195413340642162786078537591980880668849482051793724409313072109359577371509000845300295440978930363135704319967323308751925617811245319310677236486971310878688431575459325048677435193383508346569311555815391900529708646579474098301349959490795111054672618282071696444625311473636776698816026727895464669579547034881343721095750150847562042543146079588048161328948771898726975043872925037524317005259901532851004796256846864361816757519694609051884856914717633932746031033019280764820512197869490112812045002693777207889340715034386870956537691117590967381077313376090691489716640675795843566584751421158712785256361867972752826569382956256913265560118635862274515897385483470892349590631819309452510629551447386630904375025341065301116928159269568694087049082690760066780440947240958510170384043840263339319682500371294416990140078053452759628384112971300549257230908490195235084418344334716919936321339752484131373946769214672088219021431052012876267792571955774374768826556174616126549528683562279522864124768227496466681084481669613526012465278998809610818010625725229098829734619275956615234312367824275968394656010285672802154008284764681721770948965189112990039054242254484901113829573226935209633006123576012679314029606696631518730258214411350485981651403145621837999985599381390569678431787915025258588002663209858926021156822136968888619127471332918172798147682188099407281660542906148474101315929283140585071196252796653970791161578766262394576089250144924027304247858338371087837848267945534863331349733372242399448533184848824420967027528967164839440309408964039909187890758900968951930793754966298104326278573494792149483344008579239491252478198575466566529047043457853720161650693696830817805009442814700732406169917415502076511054481691142617464280969026238873898365991473528471703334243567599514643242924270744250053248046558615850759692726329919066601690122194177220292338140228846193179841206062205309403817117389721720134404024790673496180576258781292396086537318194915848987176014334299192012304185466408592095137436020557323921147426870144028868716494984944552213817309124315524242787582283744386401440954227580710403995127595497507778936997196762874663881684975487464802146104775144468125598799171882460401924321760184103004577263643178091974166977032078465753041353810407117698944841415946638203361095569030664865283533263281198814405811988944348128497480162440187652762934807439381616662928636859730409785500400832153016757333552827741217807703922236776109842794466103201564168416414331340085321863206653916925856576888419920034756627016624584973756281765720717937616750962965576344669050018171105707995381665546233289054477649924565902503919401756129072442323838311060215744697521174003136097232527496333539924003336924278387009971011325978424383616605278993255377170689895624995058918154323201535156646949493335848711632583711192491195952223438134861487708254217050797184960793807803132672630763372574044658669881172023158166911042028335841235996722563418773033396684798431744343400037894285517696771779685482588261843798757422195717363773506533729365978017932774652678533841364557430827528327312751042873836763912239613092565129494650443991879276927775228131690279661370146351464800268970320324599519954703881418580217323029577983674688332882478639419876735353212649672281981268154029874038058310600882969130644211363670906340661012530833326068447983022784414079432742969586473026015232001693650021208554090861975813101124544767828938615397461941825492582081618986815437187696158193495289718821443978931141067892407012923618495712175009822628319870426591255891708364938536449457836094262767311173278541117778090420239400975412336427337487083721987606072345462762011663899981993672938135689890741138102474997847917230707471291742775748306029103398186753667521247282529757383571944781718446633498507955253105389051069147801026572110846171912610782820155085177831887101785079164474391116777602698418508293892496379751085811308665407671331143781285154000598732009920008306901339010079333529507855050208631816142291922681847645054111132883880279720153478252751427875968266081249233308930140643051288817119784410174084109647003950842206758836174942491230207824322005945683866598626720383750300861859570093923444047369837071261518588329485201210858383296679845795430763133828732154680992855674560834420920116592134708887875984572264478572484804740342164358383979211479277619400295639311447458686709824207169740400194935892317406162362246535557710529800686859428713841766347094459525001450465798961071552906021314435578586427504146897048858433431785138771699055185544672355398928868265098696023403790087496583147803087848119358144849917475136681421569072628366010699363901020791209736648214710313701142433729701797390863039927880810668637227949513218215254126522819209414696265762143854292097906403907051078238445225626004197471725886886278115442733543968980897284714192395281166499220566952155816408239270419218316383109594017854331127195506828518279891208646575738174004199392459085393411865368712573741568046703044025769436316465076456023953698514922021530340777758843498185110565442260426203912134469543736540559755311798771843223649871440182797517628689389969660031311229613267511140607030170861601347206845590074272736316270848892297953040300064606913492088467386596221496938543885430645428078227184922075614933755336614390560669410533029220900017973616941174381768745147998377604655617877537349576966152240788047577149523849145901605454194461987856428699748406427122256039004783972654329677464734184726243847009971856428454791200508526300080540700104561461028295379660533836731151499083887777889662419730980043780824761360916848713717591652646591726919207903543207419483092282706929026289045889723201110554993819931547388957281227358440843743283002127966197768250965392731173476499298878769726197931996171148188346873967239638911200739097486755089465517673141907200745204959243575644206746146175422871507000869684058571561277685135065108142129211407314549617617819318030656920045092784114120159089959235137674883011524099399945935769758485561852321591004748273594223187384547908195925025117204640682307709161664849326868726824072461146863438755151897413117954998461177223500079900343498774001365518094505350225734164779073755321905925881930313430362344888997629873139228742622085785042464903565273005122520190297164981445879089204402883135625996763263573525833792745744167585829295927577879289624639899525140965280366721035415607879843364630959945312031364486986349062201522354305634020189603399870320032344230725733886579257952883731007795457859654668385143743081809136964906804818607665774349620124281049084093422543644214425179472027648917559565274637489148991288999343904704859458841982069433867547974061572593725066444890954987400627539720203561389748314618056643109951206779218741664706288213728854725504890827650655443627677660011370880499187078173008648120629257896031258191516537197361411662898693500210738054445024752622258434782439667908575924645270448292354922656216339839675670616487640789991064996201833678857895135134901614136172074711190562302319558958609422194829306181282364491913715093976193815031315004623007176643862708826004132779868681263655052244925884741127707131140373112832145569482771940690205442808301092542236572896605108483456984707131568006010885635575821769850838435038577052815416275623623188992845700247538761136110180708834571850197107980173796054086114265748364012413875365517852015130568103272449921846211247628380416160924420138544515829471461991857945612316379289881295941117060422828216527978104044443009164128070788476613786512193044086676199348549907397301320324939602146543906006227030953886199445100794210121320785135651816246021074739960337803477988665619257474716148612850161222183059331903423460934490473234350462769872730076417710432184373688723170770401525727939549108926735240773465599577659823697157296360033169538941082447349515354832805236875293679104746223737826551832081094429644859968855351454138625395716366135743768278365000446044003882374575465580242358237211454110432753908902035561777243593572581986803363325169329248522741902422132992641128623692753034375671551366403874989116505267552467531608942187778342974004230720066548504481926213034739241850650371516125700984622953907144041613529646548068452486194062861523874579429223225366467847452392823703907122630261788445600235443251648525281286736284583403875069032837768753159492896287108759965462605615239942473330455798981475533467320913146877307956834058999373526447624967730584024285656232569044768372989123524578505082588094757224180554371229429071079879530112431582110715368070158136169474918712315257019713590130116264117630357077918177656914345298799044468721896085922176152026900638043912489850851336024365702316163478485853770846029832252894314657246874367857092811846612966179512383619597810894857193917144692427050419163509182625461904097850906151886448178650656212910584264966065791969049920958477829566572417541551603698014735499694444407156829264249001872625259480344591578640721293014002083705527713653737468720692598450895040592847566305251740906538952735190223951054279415354681480059378657936106567790449158423788522222945925617712852189670562069354310629965736879485342789152940693897544513685129567667863351662118611265430238102225895173086662057133926960431968570128568867236792734080774319764798894553077818909644008565662285890578768932066537230064707473177162162121040396766007315487155871132540546771630580495818568471160628986409451684502878980268306542860911914110385134608096449447487732940247676576651639843815786708060783937660712142344154214246572448702913576106013147946944122130493567496784241371874615643984589057629434647642719272338913340092977664364982891054215880051175506517017640812495207064618168566342303980356445693004185930120017951425538916907966973272135260612428797667148851796198014591955138496994229078072001064764873860311812228561950680541888183712376167633730049732165451822281280412801707033385723711244439220432192850002298713810184505386029693257913324408353248128616973839309238834558933298139579506425568529713761478355011641048337452635175935382526656455809478270183103441330337998099678804437562012545079834049410019892753416593658444428229775853943681522380125205844458717496604807298672548153227733083025874346831651618767109644104028904071551775933677809877195619999902154957698194133273303639003866302776409878682563261763936661719931928200900943270291644646079673465964139177301374304753863910967685559609095145367845980725795587673720336659949606192088593636498131958692224625476447547422790539892046441538700256248504456958301697413230205006392588022757724377653808871045590415296345703536081827769381836617143938282020146652550916769908598112426042995663600771346125103691083844227296707127266775297883066686763550001679474911778203012237058288410943835672201034427227141830970826774352350364169872752246926222572043922232634802539778635333837036470872907626108072641346953666935654253087736643037703656240592302974458952421566344715174287984353839003116782804727164455840307804037412666356645172518740357478217993443475851706826336925808380106393734977316492102633393195135619448958009897376825663668221047050325939885299054231598828801589004931839917374819528840598893861644346705305561589467655072973234061353328054198844548269956204944170179615893284888098302604531141852745065616992941578783756968356270512700385485399169608324023379416279923589036249446251003717002535814706173257206024851410241642359804330053954706281554575010099800082951230242832123307875239219307091109703541673254340574949598629687977835133753001894819698646024424345595745848592066719472166006699644613137897751476178543106064323552446241167782709226783474871224064545327053173742939902702590158061627781714836623959565055633925274080091433662036883754649916374495701378716881815224958689647995976031975976916053122947190396991611142245838669836039532842080902684672076669294964486135474784543246757385113943589284290520437260727632388512140688547013423104765804386244985921623759350486955419366060955039216719361392641049665145847859761531041683266337759884581822090282955681419957235861836309812731794358663154384279436839034678255775714654287726776254323669710747593578359264027685874256483951642881773615689648973785137939013979138400113604384219494763700678586976759033254234397519594249752755257456020225670208272420396219384535234837945614934578534877982041223177130626457409386951416945942822620596237548446989495831329752316296021104286201699010982178583144023526084068221777858736839322007714706760289725201800927746880766824215303031635607917162001004130647561406731539799171477742056362145618045460963890118536128831960861676957598391984412829432410561361264892806001944581968458321315105006700551741108061375455996141014999025483330963687690522281845370381492299903469467980671072685621411745393749156914087447454948358259245421658725647001098861701520186665311625098806775899139090251758675597042452076580460030470658994283626649094841421119574513712797670924357163258784089394416817406141583861752230896691200570920541377094034650173663760289096148836636263357028452894372763273253930140700772341868680470356758420151471363129455298501180942950397281306044183800286436869535605970774629399751452878551683885213327325119469226059736073579346172737872779111756454561695496128005050808726256974654303273119672511467037608480732596666511637355595314571255710119167630493224933584666001467465226381965058708596457583997022995180089681857494473422906966715774840255071626673588854900150295436853552341354963598614707052360066668291692219442113120794933396630286150070532130264900758718926045138612412847129604566066743902219297692143038239824160277143104265410227325073155648323353992913385385565590074402971611549326900910266711104788421899407889436715218197824217591915798040169895774291745270822282343534689400360197340675334469684342388162312641127715249987621983953664972207168428384083083106842466264733748408637346757723620774867405821794069276675751467967390840984555816458235145775516360653466058246515041312223285962848540882918262367969233443290974406715870132713337121130620229833735547633484639163462521004117517054523397651403010481899932899027225425648386468880630014041269980916010149565407127448866731514382112810144739630901306486793297845989817139191853258935428296702457615747560734004206943029470294062842336176957779606350345321695373163095511226618821282764809503151279364572786215885779977510198493784267068207790881312880263582011504369867791332569549503446991057624682820459303030917858787949485058754433178911846329394792738867695591504610113980031699960233487731151122214614097010898086966815085609837487283266237648289720023493124804259889077437258855464084117888861254353849001654147588355797380048010390055119565763079947488513405600053057355911742036430792590323708644817581518509979960319621063375063300558002674185000655050215586656492224493239138059796580186152061237465254521703352687548814933971213011546743037060307590979464072499467954512646868001220009412284955387753021394693301906954687902547458514789571980314105083336832834534692844773734661932103774111223734018319135204981637599745204304949736329167194843216507383568695002575734668139404143045051303638942519537936873003213365258570665871709920487413158646934546343493272700931149312751036204898036392502625612999487038356784614348354280015236179355737766414956825769849998196909171436129340834613335547004731463488291410811919230038051690082629391144837701733831113283268696859969458051671740399376259830129788110157330481962935737033328571733209515561623169541499688092678936912206339442284714742318845733519118726597711777511526605426195921294315728812772581974228739693984895526506740430764192008152552052238132233216962123320121448115376857003819842448575171532617168790889471102598751778471152515942050589154277324690907463199577388119186559377592922801161723367070866211836455073908756979051108616762927464080901815354713418364259774046069441527237771940999367668078503853930522683131105715415033699004832268266702729529891275693954685786852916701299965340326404722085065130280855791915680804516909050438923341853254966627777193695711483928018247712764132340878663344534942359051801393061876805152006021892084441275051383545217319054518676385189000243173022592616032663074360008626060370975761941135978367413152694241858258405007752883799604248556384322221848216523078421223933580486937378623395607663594964337534550879123162446465469114273258827031616818534966600426307676538733584975106473643892850841142689787429456807302599132908691880575141866377842531778707204965178315020341554979688621148023969022154251478364397262620701555728612376595229477384721438461547362069492423749568337808698403226622496146190130759478538095395507091448973769855627410610638066630199312196018253863123445824085570620421432590021436398439428712053136008605090570874005687687202883709245998173133468241115298383599849959002650683184716663101089611351401503561725399873454127339914836246435044716915265939836521996236729410271207449035139479332647098220000877083690669182338193536696218522239696697557664230150376304126835827440285440986069628957955638858766694553519792755208648709030523035403078123282467121538403109831597977922618160607340236980499705299980479153839171046297146029961975432980975944176610860403686957373905951105578329591156353037281348271951881144447145490844746862822796620530118600014104503142074399875382242220614794090437239857155261005432553935390996867487684962102107167574022833739758423002072900979977926449242718905952459211145704854186221270518259304921491916537821032203475691309842275887660552433773595086335886695968178405215870895710074964546060311024192632251592201740133907600580070315711016239189950455307781596759949806248732518705505559737742085675684185992459467461632585530842021525435654888257779927118329508954023489121539949503438382453086520757085414631036059381840912480477188122107375078213483384709756767888782827642483111444245454662502574028232219624949793040473856808450403055831656938303514572684854707839700779238165863506831452051614891669867859969129576857394636657528861307468663819417774788938583318482564376331423259583233765639472568787344155507286379542464731323991415581796242913308348776432768518697032280104529173163044371371423185746518003633011605481698399118846377838277516746946733338179653256494485019473804225771633026422052133418554220838763897736410746947145455407256580724943760996720526803393350414037542547573120169189761306725925807936902691327333695973231317420241634054741548217972343674243477884992643383149539904171663975051509933870888049154043409324669030976927693994686167416157130198794516344575969815501408312817430794807030610925968180809633559552310402708902029154244150515454282040395825277898972010031696169678719124760245273079823083072081266614240720011750572570292177641692725593890588282550173762246544862866580341070291803930920701014933795340617137203303545562124096390781496440973834837529793364951689684202070433591468231089017108563998497048709689955873763374932285490721822623219543925836279589111955768224005600768071408067746397235635473311207239658776565638976544050419949686219471278609521790227006329152523731650024654369022577701931916589157856102001024143077455762917634420659269281436868556153083189808937073725341608159906498847147710038143288480441164401076731602235683763983793634053050160128928194117041346265253138586647970536381711699790662707287007880795356514956122591699833511007648300779691451751263888595332105450870607371215668733347663083797066825821903886581294783819384993288455906503384529459044417741053954309571899741011667202166377226576787504933784754334016357351728563362486423917975872021941854289376914237921200051402405355988751835455769765405358358717304783435780062995494768297305774793083349540965859754483230489776821445383592985717928996430507140158393239396406142525071773587163430804597904319971635179381833108578852273435083725314434755146077610430293537686718267809683828478384374760878368339565711145117608039368167822245470880560338998173312726852670443453998917920170830211761820521468960545334908739181919875328319136820935210887605973913019057097247688110653226478709675480871697595646858206903837472831638408354934098092703202247767835692375440116599079382003271391220882436459991265402925569286254568321786959063599307032902422833140355832401444803995820151031227426165947519631713190773770468164616055110472760668674459288466950885303082212124195537657837981225338308032651977475047133561408729122701444415470714481395991899782874201168595767379500083396469360348212614518619848305230825824006457407261668765841080499039969261215346988989118182100998994282499126751349559168635224578195577468502902489509878228531971722771223703901895135751864005887486802297259704311634126235387659396749818356838323411798012325735436526355905326952341300375345244078618465915649694116550140978674372985130164350363972902834941335632228464856867094475915461335731829433792245185247799014954537163150338485567099272559559419492682799167175509185433637651848539710840406454976129494721556712408498860404165701770539520895443912794758443447691466139250064968094605581086575356096836249628106315187573919071036197078882120962325597848121739662439120770176087479593808589741363338555223366270790723181997168651264820624672909375685000873373461187715700509969524188333846690349928116540963123500356415260849504218497001508458155703238819266108813160659382620645453814855326305172740709211792433377889128327521975223325470263573177285598654628154528021107348802706697832397554019576715948776122023744562368855827871393396972239099794857917013671366028862594895329176967906583693740443940728041052403805135256510578500027943686477568258087301378903210357724000622442143705687836732317041222577635446210676142193415319633748996617686279913729216016841863342594993158445520816143530007721932970453424293984772345958327696765698119471776947349099835392834717756276310212011501024867544169516273822785135301268569345190802975171324731047445333310059331600324822022223327880513305863938823175113988304322612057410735811507588105599740377755279033240200475945439076888353853963949403752534119214902165848149776097247421095777790592343799255427130731897934019619381322830388748187853508398723531708697676824369547937319041423937961118550489371246562101096049904880821965419140678987158546272435923401183632328298355148046703769295232981567466752068698804927597823963456816310168108376643842720920098623416807263025585454280825691026772578265117861133440724859618314726451707183629483898981924157294044848541052509795283165659693868623390823760528269153199956322928052051151206681113629012939510370620961808226602087303323281217524254829639518901452689256986440333137758663402445701693900742879229866364446282355180123220995139726181228743275473608928229155238852086356864235807169667725056634762334546411511583633436490650697987467371044945279306394595844111536915107611232651254691691837741399126935661599705629228516298783505634657694692294111305107791120255833147311706962231053605551097618891915081672666497582414831115665940712560774891320689960295584811424181904054978437234340393248624372940628786793180340735582709549536973593990009045387306167603315063429425577963107020044069068801635956057111827073657646671283452393672216792742812005521253935537556751010330549148756861807633025301304048903732825217618238209579622038108021606199021842478257090030526697854932866191809181686066966801148548151029347440018557608664089961043786209937768503029314427353031803058130689839389268657931354172694484127268113966118352537457922984103893718304304698288234041072528374913611332884994157115819337527706880958753967689108005565440666263220505789200113630682586608778216286429834304720313487729843292107727206181289343756011782842054678383330902369874586331749590238087057258256625854969138209489709978065428352725986004009642234882916124774636343123218816357639577897439278882166464472132976275846137199650701722803496734045991004187177778910126288830671829910318337977964365587545038153839623639822144407696040814562964722182719411217275702432672219282350639764792490134286205284145683252442749703963097539062645745716715932741359318805261189656454272028430164898765979946864107680420350907063772100167295727876049603174743244726307788725039039209979278540656244831778028988948055314323385849744752381861176538555241128748803157715923925425416233954750985603950360778785292772426884834100745153354523298474045997368006828420688709505240283041253249070741442895081598825516109796574404487836565199952924805809628149839243872706016254305666327882347557221144098020305731820143062706390645494458773690526632688568099677312104868525650332089943827975138492098720840295261012853523824291565289909837282206035825238299324763502281717208935076315646709732356447441124958896780019283570727300583598214987667049296304621538865331831694496299121852544506797808414722569025100524555524008513983418978979788674403096819707543662181960855026401628575827110095940458723506382230876171466637656852121250736296071829514253508702370520482836338534889485299736947595434485023677760301196931150611421722710102233834897429436516874485763837120628092105189606751268969006198461793253713638657041662028847365722868826207684298761448230890022491686697011138471124967551093919593157667666605822575953467802841458699062497900618150531639955021634840289511016830655522758865542788650837818973135405793391314325933228752408714562576816570140057922699368174374605041323416635862479179216967888564828175893769543866101634394189790205030435772289983570771747545533399640807859434157219353919910134768186944817755167910095129743843051914976186972263995315518375861625997123696121429749818955451692703403565177548793760057584441107610923270061229903967513909937958751048134192247194481346995428257826054377677915328611602515447340265375639841837449019406924105555964731679960744355247534270118649651607132129695731793267772499992077629296985269192629399042604048513034984018849887632923225012614123076549556534621923873740304385275020916919923586326655167238118802955664653172474622127595211994296612069321873410074982978465864469641442952093130835757296783887223405738936542666188585860855220610535735233779509161189372895811165161892999285455229628250041513904353120756424303273117278388887117852253322732130406997700132523174243484035487640692335214190345637118233439192856644364720984227640703946770125160793845527984635468678319625081183813363514839639311337407716094470662718381543304859797887013499892045967295728171475430145156233974559351593606005977312157021104657259454361695113169754789762152607872731601941083959918222069353643336671546507118850272340975019295661030720367380704651613497596905323396885632237195473198015160548516812245062451737062467097042829769271222902360226603293005057098848493728325320349372187017302816731849961523665052147776200957584223053728610045748244981888571981286820736223762754615498078679032049537815210429244132744459701384925604688947580619653755699295159385854198348397432998358423568043834870028363543314713051767911696458578946359406900855969948638957145485789234451040668163962524967294500457417228205129292023766072352873508442970513366205491776424088175802431448238512936072893252710226879742240184958640405106446961576732072337182300314388023194386525079813903151856372932463245049772126295509492146760664400401965904023032724282725724058791030168289699205923267906906845671555369930251142388600417910314685286180372869494398894464961854175872043902500957460646892961097300543920015105464831336046101384194227749062086181207792754083718899347310921790628898403072456434913377361867306556555286460708648186276544591657121364275704348384263608707687237446469249884882710444757896619039690550641847976275272491253301595854535949852697436943395696818307075685324170706558552833979353239338006171106648672517814304703653161820055834365271413053996793072720318158013374884781768096582529552082136474950029833539364624941132449199349100251457972568155483214192891879949332427922144013423049264354494976953695936042846619457225630603678810146793840865534439780343706416580490826119866063797759062430638208937114965490421416574749461534787909756242925532448504813541436321224706532813040556602336103774711542694852143824142176934503862132532044656206089012748866931455436156467398441169038094248121448341638916021755390190604088599556641446764657288718408828008393039096782117154175342415439987569478739909879117606916223317136390003259257881794818209719146530343837953919239212169399227188915073115964557684143070815235681055338214611592418136276515004962948652443622728380426863592003136349633292466971872755641316882321205842551864853791075228359194034015018205819770186031120324579848158567314504096887148656535093415923415119609004929545401122928611706927152168099427686673938659550185985370892461639002812281444313924436384576783413376609744343955094294568383083366787846593489783037830571535458887195641162910436020167664475730678523397397825540760433769663777501424704418129056567595828052188856826964548870388705474670312662168104404953270374526109508134966387237762380789693790283224697170968808488657178071549620697640006506107385429079224983898562156374283244142773087601271790257018550537085124234709573462867369018286371857665370108725570882316343554628410313261653194327385704364661974200832804473725403900304350625688016552088998811733393428189727315769839416517464884882150014602203743429515846718883173150027413026705178170606547181549241657213959497170526843213987721663241195979718861456125835836486133336571613400449223915863419115699816059320422605066769152263544262457335692378061620432560209108448635453592950634779867286496428538755903468625025115211303533264378075661693554776741608101885169249923730734256852075483076030601416992554088307891093456657077165945453627532603838857680171461153287102246308979466231493778712350975259382358161236308022964592424683332076158199621932821142008979652007235735767553961377783332729798195572599528630834560327293045708931647052365174722419329825368532625413580889136319969922478817840212687391690968063846098270644119620235742527022744464402861070910125939435758080700832313786919586849169717991418756427592947572989788244017706387434908144182324064070928502143084478470189052133457155278740407878384123652848734609230590705155281400373075580600145109246390570978068508744327504512233611970621298545737876087092335756089853056187032302358496733628508091819560839752894139375776126376923920638496043395910761361012678185666802502631486188526558680896480510247292513104328090978811724424857401321097637153010884061593930949072210761207305703420989588677835161374026247996234530996610728958934321999835785894585976495235687894135736488206761557131359048552054566738202041961385805576599144812677168495855439560250590924953661418881735244236846797913664101904056631669462356305808391695424554607792882522671145996221534612748601253915816939147157098735892934910647349161070519562878108915224339715357378436134684613468790825375086762593768647549334245822811754183092357836600270995001834257152390891046588706676393699093063144201228629130395755438440596387156966437403856063645227612553405832829862056103795688647822000342696602336308132147905996430957778366970993432578865889890209306855165923923372323113358721791102826922395842798960286583859469061255789735821977790323112551734308584600246349946752233754815491218261083356073450238281089985988082116042580656806157683418128155225722212161444760376422125195801382852156560544906312509662267494649842782664643881385395928348847235966786957577718239022439297246321634449465565368100002426904365320887193069912829651399107338775163792662933195970939837460552216199234252890878362732186407819573989648818885133232078765543643314179581285960213862772573529569199565415450608312031611488533930068487137218587943652391120119668781884362993091074834388136515573847764693173418904698325863920425219200404420236360860448795154891318130430259650385226169758282192688379461599356348859925867276431180904258388725304523818207583001239328880979032579962954023945704961830541811560624056237713888157448785725933812082212659669852936244502824130203028448903461822701806363842358677328641683681113821666003691336029028728724385093639756759405392044079159569231539302057606021364358647958710600220025186725115672648183307350659791519740875589623295372192546920152617247456697685533108129028294161988801832320541440758987807018988419150531118232897013897065145232388965663030267817696767686380175949024855895482214541334972627416163871879098054181426899152411992086627399585778174088895457611120655980070856400002905143337391419804591844643193431102989514829278875735858346278465999854894422685235058519292400063576662650667811338113676449928298002182097321758758543931819611521214756324202974820019978350651306258062291273255814724160096289602352675816835969656348598410261243779781296658035891707970427243406825218612020719391043758381785336602383501403281172818186267250716436923237814087434934964930307173872305028664448519655821100788753312261338044200379843771212581682064318934245012233214843269500768827184182372664806841064316612848458901834882132283380694483554971351854602305650552381088986860805468805570020555448567006477060286840258795426451608345123382045604798459179615714986352777051005863142787615250056385737161296684748037679173412116759663288750756386576389437136886392856021768931129841487920540964076503086131021476043266884814753245446755483934707856474632777208278034429814693052373973466339355712987966321886148607348962784893685392944487400742664531513141599544418481186174430331501943219099701032178622822747361632017563452745134309839284290735224410173805832044835331857874076060351606730190156262826090026751719096388424661506201159136472398189504291081305941587011600252814788763939162912219698463100536591023632731146488298358812363774141854741262684134689661711341255337017046229506713040143391628075160246602849529872780663258997907819705152861670961459075436229512751529728643328973414139304955886396065851728202421897406448180167729816732122779687471495502422257126427737294432396028166625432930504841177109847125395627120977212892528272714590374227557649370929399253239712688326724215279451420880048699930793814503194426646205666380943389718976562870732544004478086954413297286244655711752936554563767448475425107026773894753722096391815492625563601524394182490821772527825556607371441643659108881172877066960224765942935986058518242660758692735088325183929372959226414744973864838608167343841008079140579225798346113851723040171032325606068500287563451963574305530600779963732923615923151331947880574591920626886093742868382934141372938108266135358604028216093067884020315499419856398693046254958887852466347882320615577128126849426844189406270887726231420022576886176697624573701057151035532661759002122258325897483470573820672938722325179335005599247828930373303059199997106402191394730168880724178160650679281447562933044055006751779544100872478298243978573387963631826924360799574459279346769326768071572046186664403486494721971106404010069381402477238240667699254304701648160059611237766621394960828352157414746272564591348637928170328020719057485165751951438591990330963067704068593989387985085458951284025069236133301548748387442359084046602111564146601722858468067364984686709373239446406594114497728795508211075132511927939178056269938379303621305295416774904085647271171481076610404040201128329876517921125386087430141910027760536900509452955809393161268741785020048541589865476761265333501108965572911660223321350011719593760972950665972093639785470208546370665798847098049529949087606663773191233074763424243902047519930123021062478138236215785752912011922016827045864927845448881715414189524838948746982890194338871913729176764429023741664384796578688145310176334278127415530955752958342657773200745807901161835580754373966911935634188091560512998597989724682875813893343438460591400722472872561930298597407930079965881608802743874080751689541333011547073885903018354007318256513441273101442991390832884087136398678927855268150259901972961964146324954620695956506277222793694723242460427194421057042342464279728135937671680798888618924755266647644004704334936130740008996444412982356177894116301972510787032419633243635345459557002633038582766069457862595307722317148991807249337144904946573073147635182911978729283020475819841557241875159088684767232864089360749513104227310041931515661234278937425851366228205896499334989819676831061558567922456177692080328564691794278037938119049931025273428994813147531132160308199854485426342515833013611892713386937287444229695838561590721994447637053162446898022655857534164921953814975781361229299505288254265715429678447621404867634482232705422022816085240060467076097410758361256017941101750619809834145708682604615033084657395750611937899614353902503321644362465588925260080851073224848446306537316644189077941007695099166230517201844701382504826832672785574786053162600780015777082736398578337184807417544482390343888807842227643586026918934073046532468804124901444491089636444140284482727933842985813195255993101965456760734805378114061170996628317172412806488227215681237065055809408266759115640224599950957474219730818975374793227449482007008328840721033265678477183699043761845076844993678900028496256649649366272226635494663905523590598066486283086445778035627733568801670409472728098092402836259864009931189344499010099669448343605981209357297556165544952974492575605780885347422729355814214587861147517749131807715137890790920895838618685935752814427621598137678865887101812224313050929426566178380960296843828910473599570968906204079254768337848526795230308134291599434012629463906161382108118442319507426455537361275945380112838910717652248094768850643833776844204470241000419460170825860926112386652060980565426128713299939923368910605196020988717732594979538660719490579804982669559225726816339119778560072195096594574805248413465083226600329181940116708265658689162627079009390925826723389277733850955778152660776215956160353125044334286668246349070390594672020537975531214845576911430563786653142555147439728308183456245148712170686924137087324499195344661153457043355674855896331255580805937198842097689977588235549773329281375038171864482443814369841557486173856892731958608265733156498072199542726709856537822340340966987456413370271176476894788272212378353117232420133597227933707842818005397465480573686319919301845883853535229749232632676288140074661000690000904193900533684075656516373931174870898078143041454531385474563393072776929216896490890804262318435974101393826035361285951592743187339200192920668598655375500901881753506435284787596919920347232992461747317018004328031981786588746889859436063615306280098427573384723531467681906577930281704287275737235260650943163478632629095639952596296720724098642107962046932900900980597903373175124054300760483414801358420143231843889049499027758817108647415304699652011312022309764201412893318124756061294507355638348119728669938895647562854411652585011758173431489788660392046271622937628393361693960492854169415473074268756337908778245726130433177899810802963980502335972398971065967000929524152263873333535872643245226953203325979144594221741526052031875200152517197848168263833091735892647242226531250850172305518387151615796331042226392378853105090443926551180354037502443196688613209190152983380378210250633835432258421913646534790226774880340139256103995685346255419378306541338749797335934420103364061783407532358551194718754203228631317268806594152378582683782012836268733533708355153687162058420384615503096310262592553403950768601982462917290687253228764935861610388880471993046369245782798314370051299609102354376169218440037737899923047781566920055520659212323774386016503405881325077776221095893908412720876959174563048961917399840723358293836398030126941261824976145734571667271679043147445571324022593598186470133498034352258583733015622120321635162156164915213649872056131678325674304905300360154126706954483948668742306203030150463532598558263578799369055255047194702473064905833926336325918429696391913046069772000095367437589734942211273968166428674096486740926739923868019571678223605388217931411582724603890287493982371677234082348583479875402347925046635878513876232999589428642738597499960839984173337184017843894551575762386820032654183441414378473183175314625070263512802183533940815659905658608800559980896259474715395393484339211917180622687191712247109661786402290135692619927736847788669007338782696617254103675509837579282394473482338730754287263878235905904904666555351732353739035473107232843918999936578275619499434058130333181647450349526603529361835941238918709704332379119507058307882683705231857950372090511732233905361219022839565205143109518774949255934789132923479183043308873440857691510919071318248876684201658732714362104789684477927677345900021449211207836913398265498151005312592716037927876056920802799374831429288797681829490443061701434894768164140742550780002689193653036937759050941059764177136397914020769272985274284818886632931902890672977503783186089079184646194926362102689138011401241618013909272229530301346619132487015587427887260217410560383066961754944620506133455287693314122797775734813119107395688681754523917174154044939159302526566558494037737585127509729592046891176784334331749817812137031209080984378746703901082186522677798786771140167170194561365133797394477412717522946640808755519734120473870011388752337313067344788791866725337394277745105820158143271659250983461952156547330467699929009157648548497145612592666851191329420525852668439399805661803173740749022226909398766393094341835689358687791944279738781259909878839007952436897510309712295891815687146429126894550735605583282654109700045269441424914299417132616106571429282457767818722705404725165170141689029344214697556186236075016167655459117972374353141823228910275998571618838084112021618623069968148640791429053818615163591924488463546964404997382510516247476952203027588979971672875975579882073796762796930718621026104654493752046139559389785984317722006107247764949141418913645767222499845157716072436398618427133537835689558027993855862886040259361693495381832686668769114865311237622222424971233697928726804847730582588125488433419226997384255223316678054632939207734244714470307308872213689075968324209502866811472833303160607169947111475733191716334862207768258919211851248108921424855389130504564711838305195828439928380679377775106136452550151252493253000196658847010675752242147733307343252723016120341667247571601261549547831848658440795511412438459155492578607168042964982319335931535746493056971201416719915542271314853222880187419342732884360033897451685210979669578470017008980701428088309977263428831490658620250010067720439409581418146775156184567339123831320671309175676723927838692577955787836446690006264595640314179707415231647329890705165003225602770146068289338465243688674342096229566989403603742463570662625161450976948323308436944690916471136226184712974098675581300901635597400294636368755100047722707002868532379539130372467553166400633490108400907551323463714954021998897168773197736769037972393181799725284218717514460548918749886335974260830619465106147504275653325622819692960515356265205042616020147461149217110303289440151875010215124640016566561423262953698639893865835363368787834953642284324054349308920301653078234846948341221965325336596316650678955559885840277934331331199985138361473844519575764509653072458131477354489939104522961586865197185602393857164694653857496560061934861927747184866564622955753458122972939804325873189784055400462910880968517219033716885962944074456946052272249020553610929652336504068251336067858912418095530422648132910888016763576664980260774430887494048426727127585179888678419232601844570749929666690430628686029449487223326576912614089057661941241255104510505723407875290201262705301635215342570112553902024157981768658505700031884558289567533777242087778367457235879873126478831768138134267121726494452276232715157686109242909356089999034671008489265883062372183542520528335347772554757932749227676495758302051673507574437459522437139364353858471393942034536678245943129787820268738027981180235004932735676010285765417830304062241757443363205452137655014561608575425984530620501272596961626931408292561857777406271268380619740111901372612353331560938271515140162313236484076492393641402867514535708529527552325900463971308709942004193372744985735217508852173124808712782056042569047066112127468981928938607870179445768025469386328681445903214828216688260238337890098081583012246732934519107426293165311645160324525607367284962054516246905483548394790050417381531592323303352021501449686074609954147199058924661337642341842603375123596951005353302836196895900683468835526995320463374436170014841680802320651011466270179551352179046535987327285143368861532784894706199815711308733913442197059412291350606433839594668239418372642632114799080209199846962935706260816555906064927797658805329645982051543610226982783279785340649470713852118860423589449750600594688241422434471633605440040896421580025675834169947954071822800224878585501476567586350262505477735862355678697229659002987188888842148629896034289472481915568868041318165905708315668388539358985096907969153230614160489980895518836680574735850560363694540494130902875960510048210517424596524073995038286278162656122001932964186322927191964054792462180622068209719541416846831533771209339098552045370985375775043671021564027940016495238754695931006485727175468739344777149631224891580756562556755968783164207301296847096946456396036351119831240988990901615986957012153946830642869808654961711648894519319706011508476732082886817892826403349741186022255911683345002298177754497649499907094036008518335989274190254122553434276343744393577660341846821312796930260262699013709720354623444120150923235937502541104730146713144269688444813190016404613090948952933779484647583702692799784060764791294267910110824792659471383261852717762979236184458337379095915267255341501342774383019190855884841423202194093441998557802874614423016538471131135555196688998325665933861985018807401133404400557288072035380659123981355925650524097065853996873878024248369910707672015822728278511112159105745031965013612938929735879675581501321450347753176320331029375308326199168671074481587937243347952600879698190070647102788553001666832506264453063809319893964308355820253326964571573516494542694744661172937057569970847048399007376172954850194897234600247501832824344003773241743404438522474041375038250683365104118393585912824071116632302001395019955039632330978915177735076169216931439384979805122347309225295497903026426137702168656771847644647918719306984370625179098727747697766360580610289207989862261671343651800539837251472137348925493707035766421040215323548126983137048759802470311650311287161791074103800194975711832878316448887303714755456679122112416681740756949927769130383975262347928601761400906879393128970883728482528161653035476697427157262796691304774217966720529490417144651484805378178750841891939626556633337019568051613875276989388266773199196599380023791411717986892829873527354343009380447237280316332058791594964099120612253501291140832099319291397254873945424875763136340112613013613984268120067759878477969617059747553338587381075936594062777995790409878220030270370174116221225862041931500183346278073345139611146928500439549837257474086086732976128022024440099794003263847857524941191063699523443219411145725692548512531440692697117932566221980864041608354020864634549864940060618394462460304555210803941940059572234840368661278733385299374983040937954302271472774794284086056002051280203344867884140426887331880409220176517602201875703744112618859737760811742425355659978333401243795475519348139307262098231738342098321687173214534391829157882235813719424080700120708343475733885135235493957742504089193869019034374398226904376856232481990384937265580033352891933942538168924127761063372620477311462860466823285849567923632577132603530732976908670125427342767887872548546888239325082439189699310835446113055725655166351011205494296159594608312077480326481761413210360148489438579699746331270182588912103882164439106730215809657377963169061647573143355514658335222601473315558868089200383522145161826362895978579165853191700054557064598452661039859005339407665032424966918221362643161463938828096109775934651456208631561150346897384295902665599567964671833337312519094140831231426777522544490421079570968165083708588327437454832672934861163283227304789581772307131793760058553058885060457857031103224246440085950388189418696407202483918956513546189217271155175800541900883592168841798082061021533373574507467314186062019823033202979553435251500184560008710493230672743755098806778809370432414823529351462136429622377468881716291376851496440149895855870768513022967564865300018051484939883731138997707931820715308677177646006985254083217963572035756759279078819568529290752025925605691209123744787094562023980072476896636297760753262114674077123523284322107391583417168955684423423879971981211903807956857940412330106071316408060852193058361797062319013198951660470453483678061293721046487567650942625655962479378243706406015632067940619756024346301363467677890475781643548939748110163303288815079105216288773047964757319664221966154574098383205048593847596412645494422542992101287844841978616252662180843204265373555825308471582344777201863799679836698960544308902667247558693524784194490853617594609655787335290540772321246679835353217511235534837564318045620913678842677813602661324299032318137324240055809518753873545782840405295883191277059961235812584440222957489925330205840642464423718407302886019406629811225276134113325169338680979482661086957246112452298381256968227023953657787928994279214368771346496649664089344799721678260541488353137052601060684661683454573330994057874393889900407340622063836337274209399853211106013469073172672904988291368495262265872541003969997166352361819858528598976837593429389390397299229633986546402442711761692597825552053841557144561397770461070529441569899393937657967879662530108291714137779479693910343949131626060891558854745685324390241493890011930499588466422850359415719290172044799399179296829508718767765694335234053583669577920294052037018578860129405900236143041716473040032822683924568249747934144920681882095020941374964977078649934970680184802116572321454312491247265446304388989003358037775227070859799128384354912052388440752547310720960586227111467798345957990426787570277520395006424954294664808799286124128466495084656218884952592618041544965941898593737761098201419258246673457518638062791878337442454779191936080181995457058707143235651308099034356667325263803462632780174036800770598258049291390393799328755266443557601156629950489460142366658945536552914221651806345621091030051460686108350488763815658650488210813409892021484439973696023760088080895371367680520846157938064066070823067944244253813296415875521886346223303798435651204237678205686870609459655541015072105276525309353712514388468801506996982430341652691006837124754198934537303160251057723747821227005986062084552129502951640317263506736174102879635988475209467502985213406977913101855749693194306079082100291257314982073965560800120589203957523840395920817568765819059530448011012314944291264844007008604156489344240366252585931190379585900595609536896997273572230302783312834208756705827275072460454834236386410069799670151065797938127967610009059294150851502733661927318450251270064711370366534070063629427863999643312064953744214498467877792768045565503777154226575729252205212340906357177280192249740872832491751254506670743651800895009205726697031725500010571530150875287528125256570576573795028793964614315090582776944940938274759183832614506720002680773792924110902086717567620827309833345705807676449925835392941737908006208995445946919656806089083009646435419872024904275249849973733671970948066051568938981659440560468032895570417361764767612956634500018090745782147516780101576147353601831480642579457661248855925877140780776546101961247394784706893841299015641312470232319648348289613230254342990346968208008718694907326878389198500841964496526831036674780878411293678755106590126965770454341671224784935377950870703059743336427348178372512727255780049710659891912015428382062047153365441521099675599770825274378831116857051667379987071004822781526208309857077056527008806102871770369314916522483003283590708246041823680625907455623888582513873963143430286998363143433983723143583225292162962724424491845491680681951638617797945711503954268214901253726978070135169082614959783655876656179566468734666015913887490368282608976363575852221033935488878417268530930133659521312371655479063666018104986558031147858247495679838924663268093186790334196225453031543539052875363151343275986259140058066343672229582710176412784717993275029392515789385548447652270853892528053562865570542850534772652264745367736210129031042120354972782643456120465619811432127011033288244077187822312207679223394453634636468394030844949636670237907140525910403036721862617847454407027523582065140853054130522664996018648120733824158783846145506946207915521786855168360795059616905782197684413803670599835642131817277281053793783398794199474375822900633899241182746916185741383322859295282556178071023765012797686427397641994059610228152207208733655943662854413686661663735624031392026045490242530158218054697341149585004708324366411019329885688989778026116982125010271128229093076403211654261698511826533821549439638720583401634743105447061763366073566664170636103105303657910870386061593029590377662890713319043567147693980183292712710595893593809797723747386005488411397948542814683132122684775215584363670639939729468800866307337923763115944394442830600140843716741685488592353501108277637746980998704905138583143568865201928755994477673461660076092025475721109778172512187525232559035679111647007533189950463891779743851871803346973090914986952674943714755870864831365821204830842971310417106088073848826870038344647229256790862283309766435654203399142406048577105158255830737143459737976989292731795896999965785621482829660291226210250245378832075994958179809156925867256357859806656689363091075668574917821984989182520933704002519916029906849476326604196025496324116734111488557071924204252267294697707655474146082872305060982742519826451265538317403892127674071520111624838198727834066297830734130080543609970479464572570685472009900809900793492395450846509969313579113697420616115877180704318179424722059362617895041209062128490942114301323617822224562936983232615072417620840830690837093938240496696959249973751474813057555862523998214316162133034788289497297169833662689877041500583152931829499757198466426639661259531454674963865922790782217319211308522701182809916445103684926038588037795420565657266181316279834153316712324079556713558784407372644590044867635333590078292041326974380577326856452352938534136410324260788216115637484762146908108956963359292545895742951979405785832412136259820899940636190668491200331593978085007140452567788298714108791380766961554166884008012127425426089021991903368865367266235837945068123355228181434621018653196500928599623648323570200908905489025480765418889618346026152294223357680353319983374089479282135812280277026510817637404024481984425023305998708419121520602500195637999545655117460093600753626878146503231496643004983828540724423041240180971132888553379303292097352466745427963540677472530946410116021737087576416653401349631536182622830651204340403822585522371123886980528145302963955198190254848969533125659579235661997598112294763466147249079968774442179765213899805257180804731034802239586399874083862449668360141504980415776613088410995123693851694594996388111734059352411987989986990431483432747418568347048245385757974870007154386757586010953470721873673096659447663092198568172398489645027916918336023415636599976476178613020332299516037710568829832247367825874256786121475121744246392513146287125549010488930772002102680007367585847056055602273194010467056154846624991203303732858611923012503534730190375567813393592997698320356222968057107569964547466215938184008291634996683290284298155348984609853381915168607319053935186930172221314057996017459642013774760655727286528490158836963430261567430582736350987406509613864401509087675750018619998777237444605081514549409394677005121080920707700867161305388972537813435602003672252977181511222358103038201934140413753104427725839476918717318860657245667807585982619346872631984457448562029582255668966412863334502410405961808086792028040553391397738490910478740256875352821678309492273970931805174728382962011011650954904103044478133011602252028863003650607605895041524995466541703879223657948057372188774422474763101783816318040725757843903376954118472696602926090038331336864277185539250423786803461895666338902753458786683954372085619623370945145489664807089552787768406853473229320150248520976945507341439520207118639730398876395240379233760197345228310697147785462608127662517450613859693568385979477953479583500324410719166473828403795580445105171644326822935813931634827114565839015385498580455524769009904950687636178453285423738159657535637269527581179140202225469742321559143034765949035807621485532312838590101984803719203600312956169178616748722983404758706569187094654928794881743596002867115255787607541654327933914369336830430521006454665308014526744590606038387842645110241495270713473605275595867000525648799070445766677281221052379924176876313402594395174175344741131567149748942459772867466817061598883537957747819563347115609679102690299865326402628910954146555605520594438846939500794905520280272049837391425102281350057701161690037502605568146850374218377278507508046785676525597297111442152244942461133843454624961878277751520194896842852311109111253426579583136742438453564350484409118356432979571691592939196901468060104910627106267844201803451044911259474098324734393662334021265278532970933226430831353927821223279673403514005628719181553989086379923172239284087553257000230455688123333524158704526536497015268831562371164619336613202139373995484219199715268769891355859899262435732111276100241374606695678908168059081522951227140582337035803893344362474912509774919293010138537083898263967146221817519885220388066360576226079578910426457377761340222692018694613094190623128119427932804534733999564417217791268940099929835159104653582482105077151937315279418766421322095240209199120862045052746328843158600794121578332221462530173435693710306846504945960841462649941760360600514738587972834163895044425791437686740820538048798100885561076041417247483384454506710325188482932852326391588472289834733538961969599069251601299182078398315031548894002417315547859671364876154433289589634412301817387345844392095359830421235291847487061876257930768524854976560954037542490581508576753093874421440251037807087352083239269410440155962142268987956768232188837416127078178815702396325659801159922026648346124289432887568026505386465446471758561849720106326541847992687989942528470605170391580524691147486745427201569299820531790201227991995452507854539586023000310185508300317661690347677897939653658056835847475560674920309518452632595961765924662380949944231452911470212052544827385882778931715121556834515050159781569931793862329041874126779783389972831262152676551060035311380919177544174582845166723267641785959118767202618210939869779383064987006685382473027120946914389659316822426854218988056592950127693786561260976801035947898972839198100542835100281161069128144968041868363707418773869851275441595170367367315117227025872947026678447115882559341496391876290373912118066734853542076349295184878837250783110214538083845247155880424910196351430843239352810352244575401800879680806919779881653427980757535036032120296372224402650993654064405466996248621845079705729776242282656077512898413006909996698860103320394636447150180615178635653079694009789823238268716948502451864233956042651181789728742417023123596727017269799006518325954815009389088221296750312529237937718916518431256186309292882223948203198149867879856536993271640254749651737484062474495815007108617342977599934336808424361880932399141578392589298756024187086640551799939124878391340503194054166501025944841415758241005766098248675230540562633732793870648316827479429337940845391171403169101325446918151980072229789072969210456145361276550656720284472007897203593830557551734980835991103570567729611586784900803748934929664427949982421420776991479740333803549223269892710780204328639742156302921390876454370635892078616634770507316434921628707322053869744159268405546896599629575788607807541789095523665543438526789388159309731825218264467269976372579279967433663484342085513394390523357632639840433311890154459109599529847459668503438019668865918127110442534795710900760393560482050328367010709609522462932369212471101031896139983505482139332482657607731073782568723628224664177567525463612645285161376007716167277819615618125143526759141445112699752698061931958867282078939994844116257184427805912483721978175378602101062228307744060393140238125314875498614244168954661910217368135720051947747305919389453570529564385713189242539529562628429721792040560261561921797617560790675626626900712589371006241600238383413442466021803729339828277831326387524108690933241872636869924702765867864771460299147563946879806922204269178224808183677886567955656559796893266855874192662639607074939121147877520016809549304044256257784481514029177745233117187805010336458176807265217837826665449921007866872858198940246075366320839073511017981597680703854443845894370912524930435670081065675177419838985666346949202754684204567416106497528310756438154494795022829860029746475868852966837273215837422041611006433879625599728958620112502363188022826243245317552528878534238313739254881361126274150797765474793583290850134269109130535560964284778534877302067577245522322168877382265337957164343666378974683957191890627764832294204981041516623235267472546144519418874013316540666479850706072788645912198909593785519008877858206093691861505268782875900368070298654755475735228875316234875177229415375667169858897658709754200351045071655065511313697438839888236960004067493394347313294014092103011285850529351112585580679538797961110555300198952227136583846337731932246688231572636570350950704240727967629912402561445032740488051566144381966269523624908004784528602761839496922708131391225653669585952434862639592935330427052502976518133857185622146332042168848236277840396507369068897826218636108451450310677936717017772201146937400568003330871839936064315516793231451114868240635021618338885871692529418912818911304077132787998544534480414497194926643694025350875323751626444961890927825047069134647926551640583556715239498705402029197919054515084283859202620451725558323636192310322003347227525873888110033614504528176199179859566558690515916026089439362112576307918719886697569591170820825329374327365297835254539659462463248077922257731463605962662618787743644633981825595927901087961542337643674614432490935247603887448010255398766963413146562349481411486012390626249805310905654280032220350887676776301361785432249119813649663931518979066105382382776985266061401080593319171336473324394119907547253001306018640518228313796669692174118918937135394572887477016524986800431190216282948300045350184567674938867800196161479919491043172635884636269553812171116533563455502605765523346489481945378034437106515216738472604226404192360696211171923138807479884571763993155154761733249440088702478717690567075695753868693520363451047225621628185121593711890690141319732307446353162565043942657785293523286093714497796073039933588340033364465788243733934837053092309845168973097066567503739964617993785339457929769415268631129828772980351499325720416931896447398837409110442831724915061991203358325904822896185543698425557336794955739780102812664436854174200336689285558252454273661222174889874685174904872537507632006084576208398449336074138612070783303756628190108673252967822518202346042012232587846279120326454445131960288609501246057946870611487099657525294097999247598015666916345285742627750675525122075089085063199884626016231904030672527758612309621483274514101548861177834192957338027644441323089535122416276882197444238896478899049224211219157103757172863174333193160241835459000952718050143676285687242501968353140465310558937695826166008431093221254800110774342284234157387666243973309900058189541436742047283445354765680809106472979816801139741333096095550529282369118620996557145909376855784176453091874655662384492579390675500879491965772432037016597592325561046626692438827236692939279328730639962376248313863975215006069741348708802775071045022338956487020276973570025285090304701874207853398501793795378655459008753606127262434894319706488932230172172143633626737390670078827654368130142182696566375372482196200836488354773804978950369598705370073209326961433044366057310537291710544098982126585727169476603383518856743390374521641534482965957610438024803614914495116094394736547015233949229335346515547514971286071677755318831866310576421552618932674996594560936280886895254888827203575281254695931812659712018213355086001921352518477102389673240698927412521715089929924815215497272734706403854485559692101648373500983452698753660422763927663043740751214359121487262155898820195703565982798235900296393289407064011989295362863066289145961320766062927502906422549835792057741409261616637993667585985775564678181642667926038999573329375934126649510741428175702305710577988673625185142044047915570299371936754926776572272446735880088943669782883992443324203785415738335216244808449978138380407301240574117409829789312115110973004866325648381859691571543949194545029941955446001408154137482262896869548389355641974117582485333643803932185181511491760102089161525375701549703222605931340978105911641594406985115081817674314432647966101413412470003773342392909893711232503207213453692102661119295741670300433980787999847109716942055710860918558308905755016606422453427775309868319860971090709555111561552905669643479757055397978123510769605110889222016952370486988812040150028213000160814502818226160941832088844369497474891905178049375996028462978082098700164123564213108179158493777478950457198340200174865180588550272707659457150544343434771859609537943093565111638209069281378223909030576503013471554398016447048101898351628627833883988083354468499123066026389864814720180925023981817685408007611294891575586743135042036471709435166036716563031431851762238656443180345186737554360634507487360630383866806889928569247443527958848339167024612480566799112690071557002778576842763582231207259993763432493270287201605480931099569198573581358197364172012658348199191059901173033825522367179204714064513246927329700477410045904772133838918518722676296747883944350700653735091461797414998662012502824009598739954637607979347082767061942568590540770418068746708361509427322814667008459191131155376564183777705699824453470254346211075978257136335234140222236093526944246511517209320999188425936335212492869228093571365602152312197076692415996144561239484040767651315928088775745827398349219763015878803296519103828510308684664828751368975408787744464635028003015919233742218817405898463298670708067277348291399576015747312672473703877280083690795298363568617490879200003575310656655777926323308069464890535914763353160526665843661749435997030720219603789045395875494467226179248655352879360896665127732821287165176212831615450606458599023217634759138725958782981740362420108869626777613527412243982448540579823608170998974564659202433168938671525867868629806992829221238991694761685613508829381835968942103610330153414389118748775635714331419141160497077112308276149533034964838991931379072206121944626113667564242111609799973273978175815693779043331407359697269592243594563225462763643848468538206425405359306552779323371625984693585337104798960178257462208675637349599138269637059675990808928185752927886447569808578052809355553154304702484298613770457852548910829287958394072766417889131857085069513578033327352940748614613668021471535551070624411867434651759730383683135155467253466564195851124427337861346451536138077117561452265120073204265435372687956887761128438580895005602772773192674722587025774371460412827795312741220686267930872076452838754632121133428813873472866449963587820565530527210889146898241225240684457147683684830850001800864544794241867642352628980085711277866814058477795928649587919561987596798059727058056849335646892526162117311548894075751820024438230462692105575584384187543656942203411279956433649957683687429620363097101836969016665748671527828435043058978090995107815243707364029270667762737113111627571634315388055350551419785957259639988632750465696259367415882793276803817852096457131403187057928379134902722358104847767579827831450668311327229244437442003535611146823246199793966922335041788121611586722416050635036063598495585082522207945322247944488880585960469883277654471098788587647966321846398223614566752107403262017128575189261504156379694265971381669522419066093060992862442188167726782602796661738232163632492641003981217049019943272665779431338939964703713486007231917486840248731961878945808923235430815617909997836633274642585713612095079155006753848121159123765212298537673887081557359365593486216145961314061751696322757818641271322403599974550525668418749619874995964509202305962601459466740822575262583224805357143371189335024572706792505928543109672095363891991030100423382489248712818676435122616290086174563341224929788653251086307620839109139529280225903203164385690788652915882902475121141577140173289259839503002016770133852517441510120939914353473204323273130741511220685795011484725196131860392666775051058117325787646522809237217771982338233962662506805818266705004603704989999428889413571361829466122379060141928759137697239546806821796598042457787873923290417306502165293629433919936200021201270732380437937085309474371654548808895649513979814896763954400122433752307181513656282519466720145523914774434312148282830230377387712126202549458891585907147943396774069472963854429661363683543853354201496739209411701022417495219319689796100901858021035013959226315262521196819548424867290555524747009739067672611063277009443152402207292400782635193571517362804876957067516739646200643424822487307611435245264529253666968130989844364064167324312949817190015552151657044723153671621886046957316376695159526929735406699113148932905438557292402826443417081920481551560486140910057386607337758731532100160227067521242024623429233867051435255690147844602848627899293588240477373473051731227669731036371908925673722343279732012707636857868200317977046160379267526117681240250413328536892872424210637412783056474346319677016995343470361305752048302727009994892275545843534047491490234442459057451435086762862458261791875928435883351575292411340605599895344235799694691834514013752637063726093769528512608955477693220695558042589881991347509193743361381846246368541242055581096397846214301412642072520208671635901881015159335309961536491990952389759842603431487608591857515454153560715388123983540511671631989194118900371300571893552195730307089395991499289618207706819186122869867515305313761173519673933261862063356525755247529210519122274140744345140677092546458724806427786366569807245580856677457376938893584519344411319277271662525421489509873402602072083471326727520309927918771392182178395282685267001733520947093951436589078578003049664886473481700062872110083897841193226954504115060763666704752092566288957075757263321098926361480702613704451044410473111638152339463844250340671816421944717589651171089569612788526993923674193692949036358808519287131325918087484004771229560599447314752138750098157318613295328317883284749886667698837822220626952379774231549316235868395921585591061307620155838152629096966758783677409055434897657084338822237321736925005691381476734691977127880109981882658902917996527109465559331945471062837245262486637504831223128770888107348862124570251829935733382582200571695084167449369975869551715698673338664066007908232695781785299164672709876821357920242137944660171497472141316234937599780177027602698200927206803426859654852796875888703919778514309839666962495024603860602261521717247351748190902317429283036465634328510978182124206528155583674352707529898426943149573415037482486989493440295560551579828303707279770545884249153896541232852184197209347102731869032471147998260279292836535098727268931909294552276205075118843053997689050484201418089366285950103601766694000247756656047424161586224575530020147193523290603238285831336373971587664824137111247507449290913817127504695271040940827445515406757045555912197602592474257849918316907382923557503832589895166106373502320279008572215284135347133270285890122708937654328261158335666641950853035290110016332520320259821427684631848732966763836330052211124754674723188233431678932043198444204558224246215170404742064019668778737317935995986923896078464719253284593258670429700879872607267130084170099699604061493378536518468835085813854748478978617196467262749567073434680365164493374262717555149827042586355731678914916000695305152352793185260906807731963152934937617409739469520119599450718840723178211198975611676436612235047796354767317154815151312068224053463006129035784530282041317313920534124723386389139964191014546391473140663778494765635555380782970004707392216562482032514978235887036679090267387655903754724855161469675278196744564128132403498856851390612214113305468633060508509768533321580035655540698954726881547547977859147380792690376701622164060465261014466945605062349893546242886027184049736015323073118040646163686153157129918129952172585533933991714020765004007807710200767371222549322012712488510810654044661666954829058705375266522474662320106699602420748615619831932430923896014759054659326294804827291774739436691288787165872347158458116790456632732646360204773099438575141527045270674460745343458170499076430686030444668434143033547581894252034517625101571124363046175573584512617285014672468485779274129009164658476397584193186638475089487908911802535934218098498357517491992424058400032518339972958091205227842786544912169830101982580359989507068902782083672878321930482439781833891418584409550299485582843068064429426542394051714163582438717756192781542655948510796857678540247453412662567628298424537915463800043732408378951118129441045898558123507652206872712637732128200608037619022763388306019710358803928442567616539523732128009216147337978575312032807723264580299025069481153936296150650285081187961113649753811676541789510550601872850475516430326103597940676341173590262957189121047001807052125992070134093377489589918048390228063044510979343012001796853965578556486560249945430149692050022799346152931504870437356174216034715056364541332260441040583314580697967936932922540367338096448344994122050450730990918237554929260504153108481346211796596465671912746305735890962787291337297055382929825345092693536546784134040313736531466288913860087536425130782765894839360502366809404469835329053513159348944756824628964945927977714186586797439592857434767464691657329630430552705897418066993404941369456130109176728921172775278854261951840362333940657929711832444150428155323457998375127426229753860983047301593325966702884730013749693139670025041060430431051310978017398318266528045195246348218913349357566661734863905948953059320895408120964581042150619021105767433562471117013614672261761121639251691572355609475865879467950306414127626274314843991537294180354801891928694105382479099516296802019936557941587487330463544664922620600351832401241177900137913581667424607218546036247381801300974768632486476087299572136693465006754959072185496856311324775262977887050188313041162475331843584154700152495584011621144328149327515307053037026641069380344927802265705143293133307922094201684001255021087950050863723364050732766525943416302162168075672913838955421113835892750031072408559603783937747530693864757629314603771072542247363369541039232402440494269965539268226568733659555417791273022595569220892967478730486788345243086753587145755620864639982242602183037061593924033122722649737406009945227435460578399103514716468901949109154997554543416021157929721958303792897043189967698168966787434314909409411891569445935001634566915806430233922487427645646181768699984316354557187269471965430871139636798436117924203827028820993936120676392594704793669982541336626557100787389818386139267105833077686056224603752125466444904220295621833913654293866743404211528073759581486185276538667203172931640464187931149853354973623614693966168810521479631085380570970576616277082640407122492402650045994333165198514545136619995598593885341478987127658550806963979801948631037978432438260872641044354017363306656139598766562442832013151935076500320695616225020728892833024777727550221272700012591224967148937081204286135301012515643894278659408194362540231317667267986433222740842068309026458774605799653865932251575181933084136414907172364846611215632676840249325168566174990729062087703414445765474288359840808168878386865834598894974419108530980667761401889894571007254805333023517525671367482560235131732644657005629601422680119004143961616120376637248845156070173192080103034402016889680647348210416374650391599346164490957137609004049948324310341870248929209779870716011899978861502378817545714284891758406126541890855857572646279213965536459454158434718137772786004766112585422512697873312227429302117733158729588502815033685902816318806135275693358492956909714061500059103838435175832541255750596956957476360227164641823879880538220402607185205737768888140401763846671706412952241250163158416988425289426319788311842327176622549994466955496261293086454318151849774819914998961196138795813420125846499483830414906333141681201241230311882705022836476413651845773217588290566572056462875554376926275540419199626736318916852767236813032725815616556843531638998913518457539307522450687798049851237049050461967728896058635445223833222666497010545634447623149488241165650618895024666084006509263664549995575408740052243278583711188425836066567683638983620224453611739766452183678722917758601708221359398323926265607770467173657141877229656249488079801950792501303818621050887122150908610293926563876835715925567751358615626087447408864503083228309569032387792888561404753650526480818735131283688474224045649556282145483459150693946172064804090034205447423872559420996179650004694835754284355223425752099098587753458251155432801884081253492587833972987404115032141871262969266537403584906638059861431141289548534296038891518565516830648762456369337547655419172420928998954186685808461200062399336097228481100401468746508829580487924776375794230745695865289736837611705041956935434913428773255954704518936740524989446707661963612895602720423843165543444646940277338943712696934103777595140508179049862941795439701694739039022003511013800069338249696753324472296855763194881601880525814151954697544742219307810881077440366242062771439954262184144074449609109366813871048019515564161143049823349431872878238014237843274413698792240186272379066955900523381485835109759824239519754902669236461859944769920074761257583083926291815545452774482379932136163474167826252003002242314491322160381245896435659581738710024217277941008836283820978560141499549259812957212976243292475486561620791605658989956465069077684197133502257657011093528246030644288469475750118245643767332113200890099379330332595629903348861607075747278972534508106539599889737519625004694488301446182736252254031520933986588020613004775584965892527024430402361134294020696546421545417636390490404154059916895554895823588307839545774130764334393328132489865209535114139255604079847068261018624767794120938851876751677836631466021759461476569200302442051299267834386798932292276346473614373574750745700220289151274915175903386267683443352279673367996137428692487299412374368341202729703400577161299465191483473310090867538039445507216934591608612281382234899584602174800787888848034029083320027552247903419932199694011623676443065169301375062172509203075971622950873837098823838016058804579790446245660335395990646701877149221604285746760291045780277261215459295221488504578751710669014469965208930811529181023760243206997283130500047855348358464784750323898447592029652101099440597345995893385782763234530095742394392755205945914526448692792614297153729639392964308150625078719337224434088813062067733211705486845464474965228728944460711132399280459914496505023546762534412099337713288826708667553434219208535327565234570332814143039734044766244813116934191092812920485113849088170708558959807812332076061594511321070839633941751977297648241668194676412389139749406952411779015706989236747075419733152067459179455142223433969799290044963673549551281856572208016066017161991005538319432151653532503617218605409397089328338741138050251868263684823304992532512523031249697514601916576056342708613438692834473176745378176803708926117244446155628614041922277005484623522472166993662731966165641306180202377359518545073092576114398017729105946606568942691080575206456485926776346963027343649229146925076546189700366723399906006509241091943989269128568667425096312376883120657726200078929189124420562343535473531113416804102339511922785239338733709982838342835167479770782383123821088155747510348658497335006511791176710209279040125800513652184986127792786643273860837114114067128934204777576417518288065094318852294527653315282209344780919398904832121029169645779439859736570763178709687124629537549895011584106816913938446004675065901923551569968718493589619807514514080117645198837298231649048454389705416669089025471470635060035498255106294237969283744881825611817377543176468138482055462893830174431939649078287875846951385867842315193005057641146472770073627822895790421071835583377329116910510761776042505030165458316209428596638527033735347851117622044085899319113537872010322684367348594155259137057709838075480717866809157893800014427139145424966601397623030412490915318894375228775147077041298667947105933969754986388529642799602385072186280956252160679608336262813166419390018018533322448528199307529750731694573352591688976371924564239762716078802445558917990314326457440780460674563801850879743854896833456950149396681019218749509514908695126288725310862210883175946558370835307155586364615726123946016509480625458045860751052492851032571153522617169091281396053600532275466932660969089032654723090036680594487753131066962910320816678927900855226528607779075378276995314564874042186815033644113621348844623359369788980346178349827620464086504498684754881050963775694749229113577139808217214520061761658259653436117087978624142679384045992337530451369880910083053170097181569414448473963732829966013406873424077369098010402150090347940988039923881648368871088339423229471750262687438328485372684445590040436851819150678023999924466925690863252245628136273556322002328054774337831203144275652565304770074917004775610108979701198224198720506891736153394991280663663884943344507037325795777429213416195293611518703592973056985350985777689231849292594722651736057501545025187972799196666936684280751948898579849639930703674060324929667289891074642148910474559375233420400900170346314836526191550896821542072372612079969368816320072443622322665560509139799729949090102085592083374997134959906310247544690784039767904215121358750481520197157870555681298254103099476489060256441092252524360596427503795981508073933475790127457714821878456231518917604338959207314796212793181403828291790243250426154276114937468773305590062065057949216806775641103629389752470266150577791899961403245777462885837928485602086391369244527894596028868734528906018586223656184362284644982512684496234212636344584348314375172133312570906478343239823476235810636230500055746246046465595491254042712642844608445269681284016805631291891351082121813835414821948040470074545289781382252745936995463963511220142249615145273541312846945369239362789739900298661041472113858800188739124715927209000403605891873188734337710466615082051059937082549343378023176583212962472065217452837122985832732052132805653252622493181493621588220102517728764576775932735049167774314357263610753807077193243601384275664789231828735238088590112745399309731760014051548080221521716984670177779812480061641529758066493951461158580219235788387438042332247369488153076618768998863051786163554752244977971230526570578204912156044663322104101326506088985378764916454785201707731309894910560839811842440752463884299586753375542441115979882900342477174422493345770728251159363975956302257940474129571323904946002814339316311863197832218879013033243881153592910515596612855268576615864278914370548178293984059597171644041084942466571176984063545214835595533835452803542862647762711229615894249545434882323039404460317341101042349786961665797474783268398204647601813182647823098211608640428479684884031158423153950845894368668917133389284546469031679517062772858454925801548132567453642818876228061472465924185720581645308482784593208765405558624516021428955332649603446770818565852024392620511074638266545750365621551886713869519733988796780785415370510809763439144366181171069246565524859622543329398870772895970556551690763467587973493096422468341465333013912532329782502305033031058316582014496684182515512021120520517414663938028457168326197821987229476091054991327379015092777572203658489032111087592210855934104593786944505332019439195490608284866040034744081522842079384585320163150908326955609694463474883068875534709103195221035123489139030844993342895978703668695318407796218474766572553151426870704704009758668926571514237115609041384059222947506247787099735586938645602180154349821603493232080448985220259268526163852160815004327227570606492936500985044841134740781833711628855562139365950077194486033975224656135208876114440608518623866946674434332826310291680515151879040742483112954149198208321580190857773917970759144604072241351802149391759010586658605025293802857431959299332163150682388094448482519975855190173112811881816472144298450167412211007157717158786886930635578464050610233027392517260762231231114291192082921043281215812782465838156656348931671778286188725672348836671953882789632709626512076286618322503227954357083414859731603855512223368582629584186060167135513068732035354276593492312386572158631082567217499605957600311038498770486669479542877799065132259237647815739402199903573245503261927694315443259997060127550727492883260822834497662597824764804390941677046327265364949072753092643905804874448318682960670460139742164499286805278521779920165980400603789227376911044166197319828249816122972257295830617841608833508863915359318301745413674675204460064400396078342987841488780977653053182247194475537865578470627926468277278054490691241325326579806024571157813132149225634239204312948535567012166942346115291933142348770201995853447674314592277181679578480611980455053456447323645098830340633407941738060963903259852201962536501679430083394377504227342452680431980844228677125339554939186649267091855939879333570317229657855540973766014621987638873419806745982567054122507459867270112994256408590031172333754806004719164758824799986903142323225413383271514292606203745197956489291543377218959867878729951957675715937451775758609320911930638952915783094400835428802880528981311013722345135381627549008479780824080366499478497686973045595381185820338723810155954255179850712687484099908399457560737876220422630792970301223935231557928499930121339781203552587247850444924020131556907112547852149565537705524033577645291843425759406279306716101704084898139385330671007787392295714756051302968757363167810923199857804330385354838508937924992957879499376366157461406681809049204787134254972198291544112370822173541593865482606616515682203381702618485849118665896593515705497354816946762975759695500057682182513269580412753262137399545219047147239822046423855146098766099692192836942251619938389020781564549123805026058955018911612578005087296401368733111012121993424573274872255880499607999392292685061171396683402253224597389516014751809368749064304075129377764452585195920774113317609783664899736605612341138249117123880265169876249203029373924197307651908451956004423690108369969726250970723660818080363161084914556623835044404670483947787222430696874863990298502384949961482671826921556355313779678661545124330759407729744920711580431008933942288851454636757294564759565593795193794972619819850336467138340733124551126101931056359658927161480792660618980240884526204506178019988385702579654315189839218430158902633656026942875321322950290192694334967788036789711101064590300118070978942827510965636965129985110832945668275440515394409367926009566626779562607674471101166642540203764096321501044217001012369434232341752837688391297494680433023661931358292590328238887459956306750870705023776869636550168092655715316950531538049067546341521077177576109381696952620577277204265952673190188301632177767812367658101737817426752876235051533881915522559815600526188354443999148228972948905113170904764615283287958809200830001063623044747889956606211804246136560322332100927980982154944426360250965347250470186856276463532265886734621489451457329203974186675506071856643631927577882617535609241061435646965266549861957927809015140991266538811622265144404649206791302644726736085904677438097451095790707010914058839275885942513416803528529134866351066660125411246946717795661992317272638341452808093279625737633773205471412918763085555830730012594436615065406879968566933403422630328642799873876914844340676779113105476117972251341373504457294163286874044520306937489771193642457012761683460822738248410878167868810267569493361446752118254607006636222335830487952760494289357496495594389410058907735684180008724081090949694038465994950213153903514625207552603960253359274832067516869094526830347366664927234080302463043708662764866924320000719692543594469182148536612118969753126679961571758381390625135036384087449280886778909799003545598230863407579131928228152132755656635209332102029665573110503728735407329490854468192165164908884592403305763053524018456317830658307698797235863325812156392503485717633736418423673327847458749603581033106874525661133191856510300474928938169764476844340988349660274116749065874766785793626304737452460056238227319692129079213750039558227963481033234151060487471052592136780085344943175663180990354178222322684758518923174799953012357359326525155668491920400581168796765276364982856876072909262531240392984781010186578975120059992808208011120878689406029050358464910786681234076595788484870008147718989106274860074265040965968071019294109041842184478909304796639552979598823087999655644864367889125654244864535127570888461054244723896643625170966920364108798899367643038572842988308433864445112921746581460886298565239829648671905518979582311692040407430133580692314930479814157454766377796224827557571627815269766398008185064684977107741842839668764255169097808045737265742375308397035033319077805610984301169448506132523409909618749410048408756528709954243973732675200534003019660609233350817190210737948584093131924403345791172172230969852167057059537613809611105227453416935431644234533004068671605742654284887701675730721233231824572381774407306208846321246274103056509628842750508460985854276487399408734436333501457154841869050478508432948226907762268487528799697186031174715934081536185730544546937274410802112405862084030470671283923265729723749770573514058914566631909669506497251308774185960287693241393626108036632635620063730366392117692268481118238455451570002474887452539989984027644212462521013139442017422072220927530483222823716848963171132390192402732460747668922922639435276632469925745830153549640794457671892306065309049149362260443645433483297490972038820882407616792692740071880472601204328716583629691540734331416702514748785725892487261300030641242855289942616106239800814152974358836099584579631117982029079770176641308984406599031552137902164817886263645234069452787582309871469131617798172539934516566059153662827145315999654866320359543668725973837090436050442377640499876488671433702543660307128095507014540030402991854724444029800936648857422247957611843199816437581383993126952117559598816586515058222304166295492454418181528466463243147745973496617308077133730550756825569263850890694260148178462893319639016360575015078720542305756103172545304527565222737124946321145830435168064030681607191057412530210550800009500527964795941825398466565976026513320422609048148369245668745126211871605666143133867035928613193004116735650452893682534914506381218090438195488215787517107203627148469116138368420905687663574847024678038228038974296036087134800614740789683354911545544296571771570961868771290099876000025702338297288295795754926988899288917528895441326272989020263108573998066566325837187676275260775548929719485230298056581057455246032636990202781754528433592870388371816100408490639339144238012532423949086992956409639508853791546921772243134115073954669218582958503545774699131901526466218044870667770334290580245429841211782915236004672322147416107273356735168875167189610271829348586637867419718567934669293204919254724526325257122499069228760110905035570192998470654244972897184215306255870527005987320527694783289046890912638505089071184276512572473466249232428221430241686319949883587845407922213313680249607404288094008916882094142406809354885710962984300501896062056473010254861709104630941507912694083038646719172546621667930099376471965802168001447333877527502125919020351329083465873080850532871288349701426066635690003539879470840650958301710593500797570858578955810457670906991218829604932587263687341935412875963586236716204280297931607148274105860121205438342336172387317152093426540933411167596547281931710674661547716039309805660065824026924698196459091067258068688500179163903300302782684870815182724272278865610201114225441266005225353997393684862134864684508276018121387987717427552738503833609392145387254992241853586369224090761978061977374291509031874724089973104258029111091335544693113412424946436551549182211023370237067510183577410226478796061305444382524101156822091385867674539729722885868693381314761791787109186975363973501863523892338077185486449665039074382962245302579530536769799170625476966520816656598172278677679052314932254109584141879829802875608238300889522913750761427210984199570334346590104884470954845866958213259667704470452124803397437293580427761681432770412851464902152573745708904995099296480407500051122912608741535691966676318449532590776820348548171758591006027977865265904140737825498215549107981658119885083103942272738544925543762592565863603161177727373900214306987889726305670604652361978249742025749916022526382106020052573931101474876117315816682659384798125014072513112449481422652704341016378180776776737442456504083454540282651693546068413740842766644410843373719605400650349521166080076960760696162828200500146625018734824383591135558963123720555001983749895756582852734779035349352168560153962821793232662399912802814445007695023506606617400938583122398093572080590394890281035781796977750586807417413980967748674621375661399639127764934167380492791690361684959511175470233918861009145985173948876501782621270125596676140077212682094917284984500999520223728896480434329115195572818174719171909383260061590050185832893071298131109410959096159351610681038505407471160085203269084518093575564243531558112541185332266005650476313386145221060936403568693743842233385850276628779989191043308572702355313787343933226079887762616716034817074993786201667760662705538300565557464812083485060733378171609201877790920038065378854396612108742272218641854227946968912834496623553463736417125985128696443111789770929220747558565468382203326767715677050536828135679629254998057710317262298036492473230457680119896049049251948759561013163679710663109931312838550740657913262161657571431069744942179443235624469161345332570787530343074098424176103280716949168548382154479747838211977130522672630630358369867496667131103215221315361241453518982757220220911070324245486406022926720245330377919141471341058334983963834301285978738065894105160704264776936665486984331276901476061430681625073351080657972083522383856541673800561938492209869782456606197412862731842447042581349165323029564119732930276000641844019068140668791522734460962212201659151568498348521929081489149547894261564438857205447077434549191020061537478402982797231835240308683765784361110964783542809866242052252361350637718945807938566136183732995355838580460972223598408094874890473182724336153795602772604516254700996404308542061182531307997595820557273251994041615694481265072337894801812622251778403109607190525065204225934300530071685280728254843624879524049418740005614351672883779439936271870982420871159842787145099216698909250638630250919319004969364772652997476062401182923813159169243731131232146630988526734060557365085586731420579036321173709738715565552146378476123315954077074215514810948842465990785022617562777208008121445464776346938184517813604224487454795052552980107047096444249958766419211907943113175954082472163872765067679278902031566876192014576359696583939748999863258853540865061703540527551557557238307330296457311144144283805259556804893491576417137721267982599274098248801028934358421283613400618995105450113927075091466103816477293302488214410695372911185633179172095219947136853685588049975786605024560713483162810764805600448456246273853218522235898574212166190004207934822978136449245814264857361038943517224338994194126038188654885349427631781513201157957202818441244658416652555323178636262356120827226374329162558309681083769940488304143679111088673761757260848057484689889560982768070927373269472959987484452585070569390465742851000585221619145561319629004238730654212772389432639430238163314969879411589118023922031053753406195763708105642485805087910080379691913030230053644442453533939408845254168054475087501474462475463589647619401458279494708309018491536841297949179087908593232919063226571318896154976055734660990794055061062122297158101108761560872190545241609233584588558520840014089563075245291508328181366738879601821967464778490865105821968564745223251536558902783885750254252809831858555563744791891632866503318357527799076905111119482648157032476166354642232096582947314184208339870143793828242156291801783863683008850123196912383384112451825304152936773822967924237169229967322943811101358357651122512807489365297803204842228475478975061976000765234949510668351290033641507276796646492184220519119315485211512956792583275650529219208982887007675608476496174028259872908829233936414547276997661256459157250492379676779117604760704228010109649469217670224775220820860117144560759018694651641619133522034409747827079326764006307817677058163198351749499005737579193386960462997186034627729219275120795135062720978258322465344773704297264124696959336709117431715125619049058746054846426580155014879885976601053113853626297859228891043328571520680002920502120725895620443814532200300261137688416372007645459289149980073061529336417855479881745156436144509538553597274803161181430388966309779381427396456245989239504711224845587092931019102407596352133048501006301461569296370220799660899094699809854236287721360817906240066733154113698125914996365457559511973183798842621749421341915808014069004064739059338189120822018610617582982191737259369243003469897508299207613810407227539156974300745042936721364389816484116033372819376014585205232574675890717966403051872245951267324324409415727730428526299492021613175509228864505746665868337509096176755811544885503799840069241526564985498425106935088072860485500825866055962850366425516442800787905316762618102708057142240202158207496657592897835765892763179105998233313348349466425289265376411604893005306914519764017281584339303913879932256014116267923636458480764127656798088641527342341836880855371069129782953692484658006423693319410088518883917621625551294150457503055547137806830004073782394920770501783310205816976967978057586790251166998413218014973871329472372217466156169940827529670201566592669435894263032901591727364225669933877207292164351983178343869403374400452989472389343791186236354241576920804594252229957258172520737869627841223964998793190164939075294907345153983943511516061390516480216705024582568894254849214128578217028751157834311878003491103637097763315133378844607157589578706142887098643678102059076624639972241808048679482446580170468871581654941336523232884222329493345577981705475198654824919334978500262447295136009158309881643449776552323734401793718692879143251620836400084718163585931557404808960864998641636433079056416972413683516025554995222051993700694422804516054275957949337245941435365265996445693546935640180588960242676924778212499907631804886914107405676736697470297266820993500946750005434267105743066150419957614350248692199374299557512674969129441256585225441568686658165272149448183788728203587632713497209826689901604127878937705687893051598474086925670154176858193611638757769875607876915094696565598659479860004444908485775038772175915018965009824148684039765666284823454569163522182621586925140910363798519976888130757359348477177889051950523747683416446979432660131095027613646024150474716401284514620230868555168972783606038364255987254531802206546667962447870166259353115930465147804989914295549198882771448705603797814467258835770273867568980627817405372066497747831323527034312930859931969833387429331861058956964354895465726876552731179445308020667431245745344715424015542936514704486874971101519260511360103206902448367314690236415675691304726647785126838045888537687105864024300977178498001713449604076140006960769916092364833196715937577794568058286027992636346058070482743813601501654934979901123258185165360398802474043815626654110389414256954855946720778162442775001440991595371466249111442027268595647703260469096509482855197652705400452231850304282847432621894104637919085046864027682369004449631985811047156811978923322161604752639352893396654683640618562556441153815223246551598423322323101877020402292216665875464803009308657724540646184855896673230420038403269362397156120499221646913176740180745957391632372489459802635237587777145028302970115198975106947876022881267181735520294619363266278203583717518595594198426844521179666703373751710941153454342468982004008228616506964268295701695037099715199642049056004262095956219392688155561807094780495863525118899228991899348678853269751993149901376093236958889137918432258888422619645827466033753253530426431717069020181880440938621028444633113423851107189463433083144624898921455977085097262600883199007212081762515304431098992173054775422141956704667319635724264907645149741643666678049738429548742949508466296048685104888261936888198221603700122512886842799553437179545182929460701453715840722124960421245138100341186092127635623926199229812349198886815712211011195446129180772503380447653186480892337450024621731720450028052103326391216439056404783853142244434467580734725211778862290212064486423083158865306493144550909153926022612370543935754941776830867381689861429853010030702987659245196687856817552796296521145765632898016412430671961933767936742657695152570830406213366465450399706848030681906530497278538747392239699277800517666511499706781878776650141881932124983532338653377873133503752599245264865797504089861198058077435470072300772788295194054944602937535784376128051235202723887773302072375333163593452378778690656607947460592421565099534148125681826963299917830184137491817353468065190337462773451620315597719227389767225608220775178559648194690304308492678560020878838060377807426219363682852606608163850790168551024966013526430575823464866725275998364990308229351046284682415439469625336477956796818188707314541415469577942646166805195672947186334543868720204483400318327144769493749234325170316304974829372745110819716401737994811418568224761359819713388575036800960022109306293356027951616595875727327967009227888120058566538024441976426192564297088633435919664845093007320631444864312641557997373057575939590133051895230423147296600827101227948802908510122733410383264169587804960366220672919551042207341370597294775520228166695049070621673994041989355700162860982638086917868677731545909062177055340915056853276051660285583417891414435443017042311040091354700226480906825660702992912043489903763069087644787973282741230580378042841877302576143492287215481941836708013701836122252785501267745556714993147867830096423626373049072014421982479903548953044292052476384227674683816040093996964890523814438806722493558517053452244825268182101999013831683921574432624303987812347928371080316856150856302111197629708799067298048801946084265811365199441105517755287467838742979314017604531569787507912942873836352181478306522637769667661534798101334235328245801890693819554415407760641697744988807447223678869285596218756212608031348606005988443561642099541523108224573865156919059631935980998598228277582320478254220046340474440276601639336530391911087405397164377615694513401321384376047414162489228776554500383277102319368102014697929968242122153271181831819592722495428408533760148496388756655109270027264641692944451258508177223638751450349774828315443194863346325950056290452717792276940079938764072483355882386558606384320736389598337943211342693969072155100604368742457481611857119982846314469056098815521985700936466866373528160407000550175043719234435848082523258551774941728228951154941781677372599997236345665981584756922913783741323380089314672573870285684309404622949642941677324261230881423647689845192106112522636516842405456638620024400522618109344539506693915983950206190561210508069341268112746071361248521792211633959172691499796874613422853552727012677873526898445059092905061953324378298300054317798630777890726103970907265999639254858076417745793682123541385965680368839642738964995467235998366379706731205099167669529432720499784040156315881322303380352240440197379304131628475086156124910843000298711256575257234370101387462069689143402970130516753348632987609433294016842163012103697366517958353261386016142589007860597173804084774092891708879396932814002718052926567749956932456928571470172822495651735444936804865568558541896002909895270774002638967033285479796876499639073469559999699052885980291104683353100370222132974454458295310972138182727366622118698400447802065593539761656770050048150716279492612171502301053064715119472092696062549949902980990136962141084008903682415312066739459734406709781648222604907793134061572598790567570695809122472655254244154501922508069524280709360203388823663293120200198550956506640489933495556036901868682067938462086804058562910774840751727193773979222207969123747738749024962874988197937433300320763020764733719336881890311276447612871483278783337661658656427505648074864784143535848554263858680798448084781782734882730344114896258220796609894693393215172717434092869023307146993645407865959903453867316768521890188338568698089097590541821763607785515543621416275269971289399296752985210993793499320671048414104981069167683607507250511081847494748318089918515511639430709161547871699788444765420006136358514759017341103793840970221741370784375787426935927886853160890327110622279187245198138074365774281219973590997705889081140096188972014274673299935645980972786376794456593400359765408978273638158781035803098579996195465310026286411734468346906467821632639807487365671664627981671355596082092754797213845329124029241114066922054597046051362697022464639803806638527652523724995348705472919981192494559256396055773995426931015233015927684509777424889428019697053271844047880054800032381734950674730147640367892051479552078597164077302459875498192014812721839510142949522029709878175770140166252068384980367474119798951354038335081891131334348386971881750763836986044937286582312547073498074364117421610196146662691321889964431009576125854734523613407073287798596350875646873881956693968214919512543226194195003515665909957348288326559846603860950015148761751187460828123794767892459184323552439858846464775861382574064568603989083036665120468359709722780292786181467637660317504956526436746247279756928144296378064515248043394756064157656039661366917676422755386156371128162171567178659445347837285925024437125581164969179799562364841563433743521871643680059890893286483993377690768586102403716220459582706702080477767301483444402377326023567486992563641095867191622199379227146000826386296943611223296849876608128688543411751983322637489717572844232924729459515030668066010294036653936146476246846376012600432840200915674455584113339916447436457690052380768161982430798843447615923836769582271162048725774390455659338843237593038705660910335879371202675384735574963053440748006419083751312546341663932358239123069110955279338719986155860493303069727376829884676378148500744163112476435224503508858698809836510711795259238759602905734666910040540613259374283109777732249264668398168701604594921279506109431138430024636249148221073357785744536838548431397450398117004479616641275854236093301775218784672335889261363167421169222478211283690027369091234674425062454481548370816794569297403805332015659375809108961683399718063947098908683437599152489692247322156400461220642048413487630402547874106336883193724125570549145296591494901138570606789090875168317192617936808363017912221344024213017762444987060642782648415061895960986112227278090319308460435016586459465773064049513025181970411478275205973388003863038290549886064628720718752928224323674213291646283350592312421478949235020717012415035057205006810481938645970473018799497931849459098772205618230243984740451810257002551540015893965024434609322137815385574204219463951311032280778077339306553742666722168681093186480281873634311211847566894124385182319673067791330696571186405487555466112832304541307865017104641065337743629975553164194762868239022075481718932341954185712509891343998025383889108112415672709318362095675423358256557970310373464483210945399997020470192663620527260245977653535132738769049429379009406519285324467679807280475460511007282322567247157514132995537327634690937372574566000668694691245364956975012205972614506672985075164678397919134951413807145581038038616813007888132523468977341675916539846744318930952778796991075494303780289194051011705782009085498756868420614798744647283639375168689344095432316858496092532717904937653090485977930286511879440783450198158905941395619728555166066724631852817926393024239877869561290738750345986623313970201630593558790408329506067483000699645732122555371623282439705925316831026008480110125914791372039834813334793308829718418340371431172151728716700216407417696737521954098899945363784151409186561799220366808525740205639466670531730724788800529400231038580822317199968466122398249471737485878191528184968544633112892797258259494156398621584370010836085075501367741264582040417010577541878509930943817075642234960376050091490552293450959632405599100694839799355688917277687354740535707531236992859697518420216505902272926111979851175905879030618588849916421286217852727709350071155923466656905610975043885255099239235289291863874101567085436050823175286374276099261252122890917655010061004005335806978882919970988388705490807814146815631537337935793114878145266176769294400693032944141290493534619054941241769887195629490327413336313416408391659086525489923472423344125155023576054213178576241059517674140871723825632965155834825057851321770662033271823006200895616394787959855551711913068294415731188026360310763753827559381888979391357795308063660968868564202536834174020397042073845864728255544663766573892125703339114674552328599889462297134570126425113330989040885870489450616380392804960403556122621662577959563398906792010696051167332996156223034264916498440901045772148796446344669991663956140332573632929123072041473551515065710925411818796027923015267399832475273311582666041942468827661999368810532596558226476113409947742955540613109497750464409407478666744028859072425170039674151071159188105115780557657057727550380746749050502787528905101712181716135726697522056301458888797860365367988000950084693413197637679816498472185601319440241979084998789354912353555162455467211575326059243639675466827421654822894212411680581668713420439130876344146530749084073951551237496492765439861717470798843933997349531768601640950503925780293160075122743594298597355373445328487611284343962402634638323348267448963925673612670995427262150240681477342126624605986335779523353136555142662205221186943155984466249328332316197159652120213524997954073669628345283858979715221981678829520244633829073937496709923640919969389908617643422948959388508486601596213757520884883974413765883318759091757017556564150256544847950958444713756321078358573631255854710339629797084294664929521950592199263567417797265996223283169948506099533602729355929383863900688293425819635898538575618405327272095276531569229597307585012000028120199222894862845413028158456404339175577285072723865117519637686810189005673445637050758972314529369600301268079508710015883091339083280040283298745501433590425489893699785783367490164406268747312438930388294869951409049684111438961564650630297168447775392845952126652168743102596786634877451281592949398375169557480753254698135025757819380233488900065805349598870067302592598172337757502223690734985193218672110395730547570840769331036973452201628075412895267047115836710999774328346210968934218380644276896491792101440432205046853997775129564683365838203443848614872368857143341013650711028673850729221958127005609144675178169576716848341165424121634762658969532129566225279974208296408967502027666797296791755191131324722043758720337997853701362482500065686091619768226286167925956040902965173172104606833542450676884820982614826338200455275672749724165555444310020888922406209343474230133295909789783996007468358552338041152301458181534095355047294684463710352325536188738915635974281352419374687870995996232585195166457985962111638949810955535550744255528198018714227581430965055720638063660158530190340847949951808121857147290818428446744403772521206799462744413838445504033105925272182259416786221744191961486196092287340456192738502100665867481875129473968922596571344312022030378732567244852269203580380909493018601690944542666501073788490268024921646608369485342297620806886006596064173011679481873268015331655991642961349589834716716117138200649484071700750803127650314833379984227695665775636091668878845913927460898984533084177801406016023463787697550922771219260141284079742506522131849047281683576325314271002492353819407559469412925003906177543809724941494396483947307042831421942920630814390389452787406052412458959245702897601055790904122041682042861069006553910555140469311436597451272743131219140550093690368532444491764632411437003605845630586832958018202962968929907808070934044669896535451231154165150448248376851559169461366377850057274177322141710778758291078521441211663507965128231047937127928469796036098419873707232172903820630189823333074905748202971476231609055736368134537697118285139985421927868674421444502116128351507909364395992435157265050880643038588057745885120662172439622308143082386028601412969696880060706806093922427967131693444273081435658665923054314560415265314488081801826012678104796252115372043298444556803434704780107719375233024672527785961502313623924240053243965172735304989451458585721007829933250690481189514788112600275337687767864619390433290143570711347858323634980196236670114951086338526039021083348100969494316061331582355551338788033738887516602480451365367570168002489372699334268721262324710122585195591173617205937656223869103260820961912595746820700640142769707130378791858649380022046133224232154545402498092132246849841253926386537481909206678309757968956226724393997329050316630882811430427369080894314007721517076155827579164545989272279669802624769971198742702569692518885617109186896866815478212878245145994598425414213790422054521653797483151360970482899466056406147543191353629897409867276116485801675054349083743819853322701893183510581631775069815781198263735454646278025106064599107470090421077852025764701840388911261312249931013009446269669452391374161383243267044101006230048175950296850626029755105121291531594310104852241834309770673167030088144548610960179474214312421085447999650462910322254486926391877877399728363020260405323404603319774498083056980873302963200471511608175068239689439615065640051902334166072811485791899238199440365495432972978555744404382719135464201226313722972748767502645246299298461252466689134086192863031685104110188254158337953990490033244904241421117816960213973725049760350802044905747790717569721141431801010377837262279748193333127149445281135330815767351019163332586744009395063043779033255480231984023971285700502426939500342020840082997055141462913998237839402069409450737941248762320882692629748981592677267399691746635392957245491024070877101448270619875035651139330810584131415129382942739218835044672465647261567683878929190680362060046396949300215265737022418158775197581990707478407480794346364210712572229358481603444686074336246605249024383298820801014168383178158348472610105741483497613020873585696948710478776109889126213801036587437114419674585117802246841044780472921418721227861908371176756700253536394010943189193828952526509117895024520382677350157715510989969981658482058777411022091639516378557077956015813071829008284989778512914856296850728407398980468053544663650223120249786564052487443902939969562262612901483238775744919231408053388492339868616587418611867549398327403862720708463513263019918673452812270165860036503756741194270972878718857332377102749695169280352123535613758547594279861093579453279537936534652889123738900911782752518418206580046401319738277262332714672628188633054329382663921296682355072605238850845868023049111953643906665009144261690935044550035866094725439696465329601470153331578135732280888437616752061325298010096111783729443202886671192218343489237872886085877416286385886583753072181039913221676139437123697680635122115614092941386882031289500912037246116813496979856715920497517021112674229826864368602085790777973145147766826603371308044521312877644212205701129712617133207836273560793388057146470353127654429270631192036633364008608272272219792052822017474054340972499546601485403644033776803600281476136573326331062126553787689469818511191595041883449344180719331733176505846299809203256363960904186404426347220550143485996106957721830554834889186414938335588164513347750945420530465772519332384385029669154375610103397943692961797957864942004107016914835543666155363464475610233928073189636125075746946306186246384228291093347323453124582781729093141655217951771628452376902377821027279078756873079323180155704899933447937897140071368423330922011699430838775617381931306765338789970577949010605599134538837839308597786158772105826951138225123258973840617419443292129713733470816153529014422351876534541328406240521258033968565525968019242104850551467279366548826420227823621938165216459457150048307019824228102937223712043100616287040461479004117369825997498282564463236980345989508780258713815903886391793997495521697728571828146926562284707801293248794035750066812442171644820180709659965847619738882342900448905648421194322398361355366528245145954525610831714198061838628826387678198121650271263768673567119575323383540534229082461653828152248518447859143912329001203448565351007851226689360129589818058655965976120068253549430743572734895344502974800541939450202020748394665342492706846032339043999609249207570231686587049048878540192854785233924750991078546395344954372502088025438344632265389747606819725247124516996843887648703130481841307850652542892725166949101399364110451708534378886187836774958398662169297045174376848172147198402301284024760218742513027972605659077260503437775775396844984148540932027778365798585019168034114684486110589079871818461238725744734497940164109751780827555509836790904029143373004229580604774109353052004468382979170735126840199876514004528275425077176895124530755865723548215374044608740170559713700341011084110986560495347270721646564182378603163171462933864801304626852370225509092921076658707408253085531438718213603883765604274588745264649922632797311044481415691434455393610284720772057060904197166583235961997228502000944463796035708709623164106214540552266587150354532913695921493478940851038700226593974739354807052705184932077864501196082579754383350714199991036637722781757912632952749897536952711508443095057654078919940050604882028694858869301199976679991953027992616672861136634838398921137628990261956956386153648032377333722107508026045546500817499363527037324164875525365379665341951062778602171399983074443246611346208213343505138596184517328079802722036710117436621626389001313599797722492528194324119929110560314709678547806872218261154251141544932236416124592417246543457387050396172843136855430293150430268695533015135574549133193451961841654895184221383761139203582054403446792768473264818837459378429452350448477099694017356594361576645583894975978775349190060147911196954483678111022647902452941151209277618291145329086568961175222304679350043161235334633856596703818004016496571320207332063395744479049004681225116239183935906787374183131454590895599286525979176404201785594353154303466869995411317460881528032375478654365214453561543244013998289955965383674078947179263467638452708862395302479198970987931750259250317190557952094418967733845414559166163179903657533327307873689970733783954859718076162871263617518518388474842862445295751770215444250004789080774626675620955817768851400991974794408017661587093658172068172428065479380014269623424023371437261093076143384397311393288680091736614913576569139698136280958580986194078230462782455624149585644692607102866501103242535569207453352353138986382265957756154625992093576692051650824382612369837701359995612119531083471052287022733574615611072832231078127546581322698356948646479832955876107671413848665302200993481897882362269522269047250756988078058339255126146131705676095751019110824295557128115875768965501672117459945073755668188734391546609150803455851540299179303436054434877717967230962080978914215948764792039898753382403464712762435031184544752326982548703859141391515401471459457767984229717475218898044946915623417369915939931424264232519088913665677307223646722833928368250525304358636719749459630420344589899319891303230537645827507910434926698138588318980420289568798608313370579243747576427497596795958014838937451093564105038575842858510605083640828804708486207035308396971001417004132557460666446723450184807945030069498261898734900607729727066991263984135600261755297762466568541265073194914583446298143673002296693274645729708500672246808377115558407053300317496253613071466184314871900299926096947851625752047221104541220954277763113713754803581973960871545464998156775327891658050249845786675730585109418016777895351075902000293223301183642187378463974609871029199484961925209183532296782736102722518865514540695025133018122578761522805894823958733680959044175427527770267652560958365777799104361371792942022298539717285484234862943182689631225941713206415853499673517687272296616298640139900718548426244030838345683350706038430381094806386999801357563432958322817298216486107057215884103699023458236643176507580805031506597901429886827488293370573984879382011539220182241245532426682899074762966254560668998166748598822556856024439647106201223241296564280342781881820798330818286276313693220552830957903379476055013182396044153426647432305106030343210820503619710180077733926711851409261343943257271709543007291098015386099024992239601479903228984001101198623451254934939173626535645779352811319085914610869355546842624894008349934349507757446874613212254840005400293718488004154418096301755434231545262659782260958855868880537209573027496908369355120282371359169034225508230957750008859655129994106809717908650093153536393909630815577148368336490294428687282521059879660793664299052822517581698136491389168981397894723150400469806314394654828694987921356250439759675896226414908351955857441042734285853209191138549752388462888635439621001559806401357229964345823185666014530561567913994774006842345185587027957538648818297263903321390551061609508650136549825941791368423405013659370348230155229061973321097532783551181948811727247662135838106609342869593939889707297006234613110643236295975736515711088155096221755037894607946148014107729877990136866639747284247194784587965985115455407792092345986573748374714682968954697577347919684209124153613991133357206367393342351922099104609590873188995650254717429536787098788778051281801683625812638789666844999525167027988513654535813758538475335569136700196972706349722267863746563900158724674059198384975656026785798170187698225903865884389901758324765890265207086326519848476576205379349796373736678942176395976706430305345903184079550695043633264202915724433965634081598196064372806956511415483984858401888071916900305948201463185777160136894928466833657757897694467002600670157887966355384838995179599310438861083833867718617072092189728769760247263368071505292136046672995000053241754570761886176893920260095013340844136332551621714420485989659819869499795131110747689218802710082475170608359897249080543097431834943504587095911773018829785670341772896689701633321247368970944738256833286970952814030358001291384817811805184334810636741721600437275143195160444387614177012076845136338279511347880897433053454136183221635303642948959550344843435919067771373658603864413798142222488015362001912790529147966484087227206238317298950132945377207678257589884017343145718978706594501609050320004601335580262813388010343536685709463584169297894420056535962295342424117983412269711087779099279088334023208470460569027374614703999484068991281839699481808947422210343260271897240758424919954930367188406395366860666352625862147870365367478877262778110367662456033520351895365069680694499131046913477388228408335004259737994335390960344468891391527066302594683634756699835840383746542098901359434619287786178707807259537170554217243673910645951902601932228168879320129206680779302132562319581868549403529947252682105732144618419110038872518814712821050053539165812205319007659583610548548085432081587802714400885668606564410101527845152914138027503617381614565334507433167089476793393918716226712546655896811438983459750165406276341362621860694229765478378999070952405002790152270479737015544942371592133114864441816886790193157026241973652101451425912931342059646631576842806873587006336603057113300568718387605521115539667051975854646779779826757082079744111126883523962505695755944433483170422783820234442254728752405488378802044341635252201936826473927139875782706389182152498190943119254692804986736311081942317420422556239986347393162026913719214453675510258508365473347059518996971321980254980897383004575703213216669304892128152235007041845496109688116165182260354211685175611047103054853055701822541740412198914760102149574841823180360131424577801879853675318539951179477138585934005074672184913825213766152222441982830649121400472513011724977614796249536762077349836101752744875835407137683415448111635643687996523965126161336860780845775371168606883256126613867542704219937380878461098350243537863627445617709045031209320666247119581891430822035745522687762692139086749700797832660239780580499958220066050652007021336515970607815151233394429840391822708916617699683035592016831994964573461415642269566630195078848996719331183923154589726659179013845591447253537539482516764240754505916041621241048895255208544288203086514462527402722139274664382058885621664388321899824848348575867593590088083929427719816988752379559204260140484041368633693930479546444799341111848107875581558348426402356352605572662573603001792396396183833749958533736548896435988861485562760789562764221032511089992498124749911922468767506050559511227574931137819302004440256441028717686645750978533049306394974696437331786835294713169027064797356484137260190218471512029919102887275300407574724172449261375712512223118976261769778287489440723187559310375987022379699413117517377824760979680026437290825851254378698738601437495987987537365152257454576339629530556221427492484441427997217123508449217838412938477626679795507099665715610490400561948391926735621362802207009587896144386071045145414607935726685575841177460344680549854792441784292541771833239922847377070029051275597326701331752731181791192790126816724278122150664198731291400189311670562333980715948610480048559114695445066525205105428301048951229292452112316606589125895785330628849673078868245389615328137551885623741681051972406974755404837860819667764654134074324446876976823996704848341331984194203886538865346187509891237109738541750201266921700356299126783198637069695790235016346979892268307791745356492638015604844032617362452505670687568334263855142577947553901770069956177761478080960682346309164494012910144727567296530564545210719026555251144545327088348384330497396670938440738418719616767444181766137347027705471032756675022822374430820374425660762826442697827987938840105601893480999289063540473122164051886967186447749839179217882566846111500484750038232253371499679099905756674746783391250881574105634199147236004428732951388310989604398856208538154405543024539853504895303710704173613436049087252433130867451747303079024523820012022435071785205266806915858510810389331994734431906779078490125848756731288803520215488873242654304153574137973130492726888821102810841165712336712412416138214715191770272199650762614942439395956000684509480112650436731011491629941314487468970947364130985145997106911435466964498127409863815046994376919730706590646831136943332016884631365902688867520695445339583514218109559043676892521730539865125344472304104259075885074843116511348436417584266764809890706867105183798875106723314915029290119285438344759351346453272643570008323604368997164782959664694965234278649978039869943665885114867632870614424926773047291297956098791847237764002369484970309026311093997036725574005696655406289764337428869269435691499988436082509549866132250109183310717554304520145313165399981390653604287084643395142403160943422281361165769226330766933520903012359796611298701761291587533930486337640440491254666539135816998833171782604863433554477253864937683860885959258437727445366886232272652447559747480446956932200899992060412276226143475168646768550142602040081984889511963872233617913642030410900206955866696479820121290804172150735013892101791427182062114331904226666774501705955920284880664416165468975377065087572093994809484395130517294713364484630604136053542861401364271837574956592228827397174859489388876160841661496976473480530454335595533459258764934601941091196863338372323426753689539498365877997933075672540008377840966576227007007193677646422817313091159431410690905134228325742086531238194463522498694515057043545156756833813457036164377091633512606092448221439219705332330686620790915978009267783379857538490882960217125514837261449240734066700201201086074912167161691844373782769675034277803341400026025334175699898365946998708641145935102070255383490203211991425876650193825813571918552388495863506568657687786648717353125759132970040428304584178515184243085078437764723986500854473670193473761585777655783895017752664271172639597677283055786377141392658711184700900019615234548177674768059127038880957970273952975113973859951723428423502989327519079090709536398327978761132191410549407860702575451044427699994145669056020821046626362451417024831381636997443230701523647279111146790876743555202337027055164584212417772003588137230046502493173961879078188500173535074116467202828894424542359992738119853341420237643791606182212305224627972347681429154569732148985496771272222952328637374667019112187464206610557593721541823987708781364005771769797617333423322282391962296638613833641089600819813184822705273344977920197399392713300460781466245650722816286929046049258764123852952303226490953594615727544329425484404771509319972617082130882802806061234587218101327357917273167620338832190036108449269472562591312936208095748636396247247486608444218412568169211694535924924130662068203220317761857832906688091896195127390550218733339909041903668205888259288035539806076713489968653030391728592308928465405402766085725832762655633021303761292272437082180804881974195369265195331786508600526169239801465644501036639836826946934342445401398679445558825830551737013992167447473665750301197321628455993513071750571057357230814871294600622218723243921575872522306563862103817646118905784456047326753440851478006404930865396718652727373529969549904384009508826159770887346667557929344448629369461250522034196227801561938125731226136393813228436849342721352003253250682897700625461858773432763025289301873236881305138087461830130503482190962646755405580301371426086964303755264200179253863645994554765943178674295919919873293378895637273289340272878680147246165442789553283590807170501819281457952253168412704456223105945582112522015774381120715523373218122417590110398345354044406245301463068603108851305682032358308049186827589544258704177627173357300537281099535164090626654361717265366636728513591570217389169415842828421580210402152672843295378970157255235769555849014200297293478103274026997514113786680637055729746748802085561749507664500939978082987815073874585533026020407423895786465326787173160980708727674402544975190595496178070941454964372910233742069228274792542362778954955681925338019581690012352754300371820048011123371423104355641200298681050296573974806586374213818661635582433323480041795484818211014828175299551510897168375808648286623004863753813181741738121802508801466549845488635034227746193322208693038615969434510549550042866629453866470258379821910256896363109785474825670201927525260118565907909943948003934319565186466261315149939525367502148684579487093207759364486368665538271352940117080993039658716591093719948351181730768880662266846700305480282055366137964503439089221383424929025271131660355248249913073622169110491822952330910881128531884439897982619751326837946255299047065259167887316002276329227697342393654824923497668750070617656385419384469597742444346767103079903592408569543348149197547585647891280109615942797268357176034625480045890122268879307223116772359029245568566003723665225065661532447371633153518793818635986682869770126471021383983900171612059316832759075050353427959922402876226507373866637451668121355578179108080827184711956669791543885086364970092079366435285143070590276490798212824689376054903683712473033241756590318038853231728596409802748296510553089139835735250922550766394693685866195421648559630106456998131010181285451809196778201205377323518969948369710882582857599889967895092655321475115454337747078437727930703684427126937515478594915261793436287821910770405470134898256489609866787729785654117298270379585418966100137289769938256735167286442853522295384269515153510674001140333771137727440285652578469705091860746705021210897906862939356792187800615035228955312503793963604966239797978387670410584042525920159966923767623298068304156203168015787080064859037597986221602070515224826134770441511907503699619736826973163144468068651202254432305659425129768795143838807700595544763259987660912444807208988576370042789513102329680557068073684964239937684083328490810652408075605195102155944950257362340264578842040313170683943749071510654102114008518416454611077423142655604720846206248665119383700036685309197797532278092031511522246537624018396167670080779494142939235008657962481952104474530990760858166044768049434268482448788811661342529968579775459336110275333105333978283767202002818638180601576856944437650646021136535128480892073738622069548964996940084194506028895891822028347293475045708394843737316719000118832333148600856012255547507996715490220390529315064001135653927395396384055102453060084450576868151788930112755852113369537456129380138784160401368826147362959381373649665093046212157288428439520944046098116420683499842972681170110396316498199102897518519333281183833742047245728036934989127030227720186043278368327151255900633455243937721462736865756270769443304038988424578489407395079228268435648008975223599922448092210159547246367276422627205667758727402545108799203877861920436569775558368027973085818015978580963266562301002632761418669039447473074341126486146029093402039779647401309076749118105846340567163596839944449816339791433955164328757383260029928874220836776031982917698536952128489548586213698082234102478373561504326327042283618880159878711219039749930293782020878495139983127747604190031597773652261282522180885018488945085345977052952593644657495942819309344284238764182338894979455226780648310179385488121890770791916153408500473967731408649510664004252687569857876198874419331055848876652354268206177969777795435609127367104025366859066068353170383883894521697174906461406771691313314435499386679717695408382804229852992816872792625884339468315686611927358165798136116663160669133374551349412298480239273802308710565858757244668666686106420652832333238415636205510277447534809366484003364456234886929255727175408369572104335386347005023545587124538526827070244742619344678772594604882836347777757497733535047708375825453287225247599232614055033575589526026335075814630731978640337689368301613795509395993862650906166539086216780434388698190932308931425591624610309673343515976707686655711580924187219006649652051686075626766092874873368152363313176366394462889319515404512209115708866502885865957518442400439284704411814830916671240836558788556667374493267605278356660596754999455575865937018356677687157519655418057284979548192176978205139644893135122957807171034079576355859520229554797590035378245206613236125489603528374339948939076538180983537424707528866031386802077703690062148553447990922237043498812125503356725656423617409944217264814938345725438000490671201112711308591631355078161804455962106814367748624244725986525820101014050495425903114860289932227809914066247102715983363188779598829825311536507767532131032005261583326351871139544272543118649489820693113430808220930187666743674896985773016865802953979661452891448030221121627904551211179250063452358604552556234050875595741744266426944568389075808257308985830326826662857336410733620852116592914144192062862338972401953287725977958871049002536690973147000554430552246855756392646679598910211430237149611642010130412486796689416370640337044723954622839213323534060512794774232394400106878525143608458849462022126188629796601411244194760781223250285637603900106180738514578875605671100785890625104768993080921558789368084275298207477585589696798325429051203234521079646366390179399611884264607397938125332271691601863786360301355164977465718171781431379926761875652411325981249865958258054603513581234462469032106045543463727331966753566039020729086286404061574219638565386214977742573196757110231958874162620761182047424450233129698213000307311135339234911681650561724638834861946051450802037323128795525471767094329131688793430634258268441671492091363875623292283560894963540192200484855877780639924956062163022439034038492113424073219331418669241558852995324121691540900054700141224326096378999782384988202221049322077815499186190380046692301019031738875264750801284659532144127783760414366825204946347554316329400803990237319623258566064857798051521847014591349284275281940717922041644550683591626253548234679248034045347608386744688446628667611155156385523914896240289539755098631039967924354175203259371099676913987786550786686342068912292143814673193904213161606701630604056733665125937636843195503894288857571961572694533667430063810809987332686246679584649214343246374022605994960255819186654441668858784164916032196599661879131412498571355897182889694166417885241758868490957701147991047033737235936786316178043522726686484672311570546340230647777754544353500666280648494043042325329165510208797139264564530032917886390601753930934899481594647254420771038226774087333437306465291843462198981370733125071585979128543188396812253771383814416394455206528184037366414215959502684392020014276571918412539735950355140875351059586374491516483803042517772468314119370021623119840783605234030699027529886082715889510408847175995113673873209921105462758582774807777015888869260845575695732117149468691027167139249891510869671342395112405467554270579674991304742901391699871258083487086160309805957789547834657813837685705621130614149814226644664218781321662683203133668001179582325708675941739183502622756273909698295543274788026297686269447838091510447344176697893595316195633427418912045201418353417626373640458286175711632779045538067435059037272520480370022836434441723135439035069967595685103917973740432749833201052846571387200448117140539627473052015084171191143212895621643414083597615073813054524364897180904823326914680453688638510057145639383448668962056704084282765428410819754688352927152334746730541073502134549051407317376070150226047911157319534901535432278223902619310941937190681656338414815028425318616175094780806638292589634653946610993183132491928830554433716099696142001960644930119215388654585764781340996827026616208845351655342362204695367137616352550896535626707364509165891050387292716283994806441002755911726783344036896193665057316467999568724454500498064105174345900131157132749833197308326085515863194948090320185944717373984878462976802593410367940266734345301220024830573233694251646569124611846827609378027030580955284959434482446433221056064623162289033839082648932193030051710351459908497936438779315608619765944332129110806462180534363216510595898025793144547451478143326312818514476771411780836312017750959802958983108481097134614641280778850460784010631506053262122669228481645153456683509869550101874711623280923106352161636879936410647889906640444790539532439942585587057454581429390462474742440540580566691220296792356832187874921536784967551188866793313586965795384480272734711313166362568415857900308852901385932849966093503320970299541453004525458997793259505995580029110546904952250734099274538328633741595362032579187644737396588553641653543154307357294646982899299734923617256235496455227815729886678838863184678318576266226058738789290715538747727461013550850276334811004577257756317333750092107567219428598627665673862426394650029811282762427544034573451439768402757397931293223972668218681538386886906037602028345568900634024854873728955074076974512274644813276848229279986465473459932751822511049416775200534070070969015233571038081142786515994301593081988079845278470228301572566615408761493307585692891428406180048695784374019338721355272091043757541076553206976270537347059746973396612825843470376721006632034335625459007871585474359508159531977667005330934071174178764935105616273707182969667588235097652072895194238949307118893685643495515273497478926200742755109064483614671442486091206564972164184998534851817622566856332290251606474419453622264990041624418609995684460166556147981475675241905063010709577552321610100335076895893199686924496021299267454243847146825826146013322455696990709796689762221137703118106044052153915854859121436067140889031764706903495618271646470879277750382902111704060312254399280977610409824538832982084526766116433103577752152150900014746117924287236868078143808819201390617117647876103962460713103238420219229275948485208676794226622872744886423671095416563419398915161705271539426366080275454083561419906336611821953976871065198450517617933805965362386044733529156853017394527443504067470465003336784105430309735453366823428432221994772607255557987029904000158283225787818326195505936659229565912466527269297887143949992614411266109080421661761038107103190098087461817372480330144871545327004731528095109317043892047514527392678000612197909927746157743916827072550360664196119925667515401689664810599061255070225996522788717738598764697506498987561129492198495232793473489569585124390038292806931750686850455677224689844370567869888019374163167287761192796499694153051868312443698379214980760254053194464122664794552899780949971225935911083074400557480752980091349607493746409563674833738633446444504558162152459840542158210379932203572442874673609249763741161622957075631323615794872317481257561576043419187720177482555913138628417057560438402191878525198871600206912880245990931442631365479588837096848934255639706684501228348086152275342055003666418401842091551601451351373193885329117224965051565431505216863275247909414684956760932660034081352538150334998469236367694864868635741085368049398021355196301422855897364703426527654470610303614210778769540812687143731348203321396320603758012045923877768834548556991437279752730540699407016074248037934713420511046810727416993752112299199820863271605905621793759901252208674328518021342802053409242376536643076379451090618141882243403216766235172352753866159127024219474378113525630248932722435776493215977057233729424806165971749286280484175903987132828212480976983850191237974056406100384830218402131822258147144461777095612322907762577913219376850073503528039567053036950593963207181632489328115557924667541968964794453206989251570238622709914701219546857687348899346888492779191000891094882946061012715976041906454234661309942642651852867995821287866292467057617020091624642406663068642225556141987552551650121440629335830942405635265319279650523939247175576618938919476545928474106836381915145379782978514440372565645011680968792870186644048556974356753551751319569716324860217057382233393954917803016277898057750425487739051068136016777092716534031640380888998357841364727034731699737074269433524099566778334419577476063830892779742604585884015502313624114807118217110875062724771435166108369614974262203555376374042144340946346515371690384754418972010877266256650249393272433514148620027726851039939134225307398569646417152928365181900835593147639720021671069076704530799789045827780284121475484255343407392846129384407386368487587169874344950423703395084630184180844462060751692015545227572227556232550126242039974665142682058891484103551182491730297115656311115126315938022353735211001089867560171542504709354802288285178398036438511524397627727322909611852367069970385746861318218590622180872247063002548899823746661341613497875841251085970573822394245975709101863867628146860893510528641260084958910087364059365943795622683838401794867258410872356754644405148435854117081660259155142096692905496293652229316885638210031817955551899825464868259523846322503644962874696387995805653883993332836446062935357034838503626593553550903575526966267063396445797427751361268450658804288457148238657091126064047978274116043216663139673076070506856443341579326065492285885578575524422988140046258326270091493392224413168483894925727164519494396297924336700144167237713563431698429136079861941676992489174394915528093246104584176073499734877728450716164461484035787575077138911069731536904304946935682742670083373700321482740351378229651112092257221239023082534721052785058779757810136496558664929464993764161355033104337130510980580078363803356434333254051680467485647371483989860677853926646904505803758106228969038474202526007996817810916438348927305229795670725476392642399634432727048934997018286737363010669260692430765750170872664633928681521037946330138906411026892282836258358017740638445901424667392144356495010197266013849413053025507716559068979239299304580773780423053048993613467917393593733192336590446238971332118938727229707416222742265777279092439353570234510800879008212371902308387295975035315478304847769901451546447747364341711352937127724754515314075250012128173409271631931185285320058090143343331556072170369341022219102768519636615143533293289036317506443327285340372460642724527283768567581785702222506270855560373108258291083067744819862428490464402197709583998968049499407791931249299912825056332998168368026347068590848593989466873849984650896480662884154970213846508925073025518729649088676001102635845834567770869531010340406520249584081531479765581734227781997877413448880023693648224023431415781132678677561198234457327808879973843641262318533486154161125294733665635064919561461865977208812049205181519549493498946811959970307237410583355925916349999000560197800468616972939601395104948949642802880128759225606663951848845942785060356610164247731476021820292920011818405104765938954615409983077259316969844603196599260487122851301904008256575144180395192048720161703337624952215953171034094166240005140484336317307240152025621811547919202382063473974401899424547692685677944742361256266363219512952863284621367103341356637213873705038638375843823766957045411716624867204412669983869562722656827705022700222235571923426197990361039283998754566620920670219710486304862381154005457445310908354035060954459250714781836488235952329629638578658806022092368301472930722743269546649480585249213892319874372896721681717512194648529715373827939294153223325238367523379582590911957899674488032100852078433686766699636211886948474340838218451794009632837205217792258822167057671425287729930348548325280962253534494613100296040264200440098863955219303498064799712514692053261401472234953243786355663436344126439844559539419192715915301532274210823606160532875961243314811173360361967628786988491147610567030571333313353671749824514400212540389833200175161519269306806473269257031926071795281619278749172553806426442179367321315843475994837233773967168299310826551044241074457454167621245625112396657330486035055784001508601992616962997562198258472701182864282740465222816535538408809667570699968904253957009238702659608829116553524056015556643169560541763615895521856834037107682436505561211557231820559623141983548609295161082526397408690842023774352188326233679994599759897525088117537591177627670207733864705980891847332708578185306818496681854721352394500309800145683351686261474170761813647318365632880124731368268303703175869358980171320045536396528586852436212997769052852192700725809397528341314168386870843657895396217907450422722360044139171191957870246619443402040157730522124607581315577491950542584323628753276946479721054929725061218760313304849220938428057963760523097481837084398505754124358980211293228990373244947051257794837571666167543834112755894870764310196484635480903506949314904021923100740105021073281354560272716144644778945503263077831787909182551158952898441882240625511572105741526657601097359499056249335332469980966578443721739963501679743056771547090017717239357743020652174026457054798683504489694049547407155123004634724750469493643180626021600413320753017880209929156176535030838999532841208574628545616674989801577201512561140025363096250442534056843409399168789586692262875306990122797801974881718360307077129679441470557143792378945118550373599432783078288417778083218111533701579392287719333203565096828439446435354445164576223603006827445641815201405736138440024608371215799273547211037207531451501006824857293291453911645449853797796011900296818796476954359470327722917389146919218119415227036189598460434142025745252769505776752401209956822352151541510503523632002946558579427972756384888128924511390208480955196075959116117838183480102420322899034639864662774983636902899777071185417528142497008026113924958675280339892920663830627336422762800384763754931482812858747961708475114775460289954825425713364089433246890278683613423030395804655359336401264505606597756707709394525762894196508059537230077165031747497264148975263378420338972668047670580881034744326126999324186476946128846146176807314322298709240953562991072181794167752691587646599838740957526594555820864042583974816808752706912515188952170148100969878890552247651773113329194726688486801047666743553668789573229152745189759375842854540751449139003537644585891695900740693351563074772855379561713258780670848548531599980247407762788698119948450152662247793475451729003253767155379125486714312009166666325402190054823473720830148196540145084365374740569637631957029753394005260037787364007824966156565738316027154769925874371845305911470652990253225131707725542538957048487531802690080186666170200931794373573341505714488663762976622997093502281848336767390605813320197509132316494697294781032878247653405978836619254656093903442006319522853465170729893225183695153279751191510055752125404200023777824209571011378081443237468226484514530250864460169800293351200371981267595282043239923782041812076893873497578205722020137192503896449888851935608767664714526329938370420905371875095855366467862324350801644173328035940155175713819353687313536638503386776327260182525615417957828132474206700505123760042135529147942652440200399863950187769695933581238509548675230248104569239952594825686562094490224677819203631381196556974770011449437346719988902128598007860386847234043865964935418653680578479263195493519192653474430239917475684628844777178192429843668482043198821161593720956862876569833168479141914036931446385209564519579563387761213203734446607705340926209572957234109748052943780975759400995414473811903962600144625888350235975252044389557748225357072359715978900574555813781147004397290171514789711453223648338010874060530337705334070823500729858143634675830701966752061618903588273487526707188838450210458160059464605192926433286734173918462604349001013820826299398374851607639279077589444218226897486487376767586941573451327595092614478832929887989974116147766195628348670484354853175871593210235489718021145764684088043286318985500475301905212059496351399739852505054099394702402269661635223302397813171097951889883885995678944815322394047734094243582843175878626031320013248392990815892008441402008802381146557895405252364563754490732660378348105678365056647804963082911811029256832957904278244736626877452833014334397379592627774531480065557171022413322892758523381467363122621273609096575275906136814895161623339818746647401808852259480755338989620983362198775070961300429056444437868114398342664681135318757404334614229113464444064138910782256405899174640997347876937310912235990974033870701649792800530621875015337208608898177614771724959191832934887310372102418487079072103398029642457753894837391617609671945362415862368413272313846886070836923257615923491491484862649720572142678729489317950460386920484065146061623375004538478676573550285445851324424222105593303289142898726533861730659081667960157532646168645574113875375314701292972562477001575353643407899370076666955020072805410841033842363080202432742600795586054730014676427311886575970345914361018407321815317006984559872507053798799097542024935621994009009762568664345596292087109762621906784536730028588269528388310579712808111518050231344602804632348007335223049680106363465609594354816248709098325491980525967650908263001758847000318381579190619343957853611235493147442478040825605423175173279094867341435707700124427129035614308315420068256050811730023226506451579853231729032379464396894216595331710003595342730940883585427059037552770135597961274983819703158895284727928133398628572879719052945089395662587842698749811035947530634609515999708537644733938465669466714063702533624456642005997731937523925880447708286784021325498975385726782419222580691245712762934221476087554999494235409431252638282679446343110080011711566170098673911400424567205002384759052712023606392781212534888157289533198470472864941874438967840339677915859365629209889208481455737928407852632316062975045155390829774787982250647039795859144561761032491335901223912401095615501829381182461992848780235357511347890960553930186587347291554143126828776153963841305781187074592079358142288233512818529537386196338705408045647493269596997349162067514050403121692697305760925152354415011027105982167350103971246097350644639050928073071307746023838863877548504496130781068745364939806142897141455214255645433845106102785095445086212579358699405440790765732198265895520315737231446329952700275893478457720449591594561349505553149103163551050665323835202206423631940143866547657595878255565687404833795961600545794477980307797371792632084286748582445547873670688376794562860964393802931450928091095000409723812957439686866689834992257506543670322697802039686677053594093824087152602759615836648657843026419661824724414700496124312657447136436742787602643632367003249306480367770218192041234054293848026920754971703101800606639989888942128958699218251419716214918109580219234126751899580124681058498089129226191746422939894957633398873266126119433064549753610553271100933311441241633129332874804672526458882778312298174552292110373099726713744192098500852649077618759914601679483168333925741613750988030818921411110786444387849152300187460936741732423437085441732646051473776012693705386570017406629366287895625533373540678479965494185732395726502873076029707046180646483566746453654757683379783166423828446908933534314150535924086726365303038590021482492390440470588169417084731120962534316203883458537707172327215891916549092173408356065633662922661841055631172789841316316961457240822354587813885393309910937256875220122744881751259394820231308692653617913414364049183553220278871439052096090977442520000797845251568853038805950212416141660951984438131931251762325284520138206060299893246557144599597742762805209968894656155123558304178759908724347145273861960402332507292791886407044883985818888245599593137207674680342874955043266370015395659309833758852573871201227782117448769597306900072062049891407289924780368872114648655587336424207071313319900153181274103622736777870906078799943668599612363331880695594823044635267379865199355432270934982657435130310690971943859760059731566669154542713153451609672381095839331241590923840644777465569276146600745464738852739812334688511414184059854548495117514585317689898623989222177888111965207009613357127990464401036896664825489666652297947714399298630422045479835044040930213404059123195772367652327022995718228440349972259896322339892217645177939768061416932559643502867749045766479717362577640643071965760931745223751184799021243958887771565781414999029568060458109703361518608446916272236888737112804864767723460901805345151433936787726425631782988836322991780310925071357309656036399224983009928444221782813405218394081241002073155922577592603712411899361292096214183358058837130562294335467799035550164691019283299886455868475341903998863407438465340117019412619765260587401717983040689269273513851340936303005450824922499078426421018721266093417620045265964140501567185426130837073288595812114206052937379258691488444906629721099684708634849903972287718685207793572314184844656913628444895862873650237951977312613258542057914154596583153224960821593861809061186514215023080798137767058871462768665255005495227503666697077565595729548066851279447740999460862725855762434146041787604309952934868396232425112811840737912500903942525131609118907085377432995641685684036420373883501646063890929544192750831523114667385748202102208957966152670037705121843172078546537614928364647138246286496062000847359408039062513636653425209092748712671896499077376388181448334230467562936544875941191689760832265758919763099590191486869197325109296579906584455008699195136988400336002078541622376135012481270097646951283898493721697609437675229669374239172394575897611427096480367163976501421045629942975239092197175945797996925146903573341603537838840403038481176303238092243383332342526700923343211947852001383353444007657550809014727750440895923760732410048283010987012408358743661027457063271221589309997962785065188351735133365468116167288286658038458371663357560217907308598338013709819259486733540514396852246631762061730994817348020405757887761097220248001234235387560685859187758985177255526228549228585528487686633967304605374731010832852057272671318849692484553546042983913559806113690121102131122380762836555006733391498489223919473413159817648865188502465828789185908511298330574824627367295876143711544594277789862687757524835074490794804502860397375237100883668506753839499481746317423860869548515508348211488321840189022589884865095221936754307852066608285707646647517813973342268217643558708945277479276579643708922274617379857775264746154916824616235935424033696882892437060389573911834895090061962299751412929981025866432951005406712012103374036793684195975637682227770361405273676158164501652989607404268627078926383072769526341905938228324582323299091874544191567376694368757659482621599852254135557216842528220264796922265622498114741244945435920579511891424499641014629111648139511084807665978957914835615207186496584759905610402059904260565022089888120682330675237660817319792862441492722348945412468472399587908393116066984920679957626108613049217258223519957221621702232441477453819952508255340290103309889486371168880799391359385879187112062469564624472202659658935407401284496729581408709432259994527360806063285090794042229934163039542091190387484081750574259036858842095274988558905215456376688928348530691651390684002628205278279268627483094006027699827648060532859526519746490868382696557913770077404143421216456289838241758349666199201146379059336988733421380106841630412830892426372997879637368521634016152466498897863609878895005668173927672165567225864927168467196221550613379602330461224728350446084311652964103486479093941449509201957393127125738272101356966420195227475719722135751798064124392728671995406706295245666389650377441197523489175154289479101530568667942129685785055891515343117398113138604636650920559110506945933509495315145737076220156107342210567895909885886165388392361179424741919578434890570676367192066647688314472688840213558079198891237229256642160956527076648153706882733544624984468206922436923196766588897703579615069405364607771357622668663718600062778330795545130018078213477423027237676719444905704776595817251828527367826487606119943920012150835262582378231625125676442269792703973118059482931297285569858897369437176849668520596049689117146791093725731517558937036988362666824810821885939596099169730648998757270959498379262839666066454077388140674824308813729308961918392634920809839610183191192721204677986059929979750849364508356266912667422765803318137738957481601800595310917208535791488812277669994686166534441372651611958031980541474605290528178181585535907616581119539219492465487412725490844384362567361993669626362997134928564386344543783416953877951627096235064290606807821838857901989685295138345856908414551748518722698841476338223021752348335979990896871305491774361876969022921463734224261165036183105758147729716668978131456655614201936062431422812280611754395073261869457010913140637383977477102413915368303611096158317339995824869924946441085093079047360281048791431445746443440457271385926096647152081219355468546767124556634423568322395755252056735952042062135913551116589954054275211605530404888094555674992906922923229599265182815868042248570383487663883237242606873389599526925413878960743131559669153928185949868487230876751716071713470739284381494741408739837537181597683927433475820003388792555700104699966081921834947342332407802967887818620564035141074062599118541262265006862504128297708095748829976748945392943293762354746340716920520311523811075679369358500686575099490007626690378941131704227977471001186384584242924150025311764122736683629562582833365029891219278696161189420085939590801805176610153770675071304387640929281054236344053754448362467517055559280227355949025365686282666233699650512100484597563653917737799943682516296606424425148359069141701228313099405563037108622551529557011795984270965888905521640886007808795426863906270243364709303851237040850488929405279449858749729892648737645264114955101936488121751516238199389799979010842366300610494756858690645504121962708852136690043907173483052722519968272563681704299208606859943585355791000780042931727893575005095652505332015487321776236374766403827037146401177835747997783975080655344243463651572544623647537096199467562802341162292229818237964555083785273086702887174043842050116577980129097500241521742956398745171315925269220014506258930333935823944375100463736054525327255577143924331000844326148563322304052776947423827978043108801333238639612006347925094858334519188076448661766041054744072815252959909504899276519031381228643380843247033728712300501653176406473015074537004231085251808261196741493836217567330224583264416186868098702912983538610792679158776732995353226144029198918913867151608643363859483565505066928743371467835699084572374282059151075078382100193444482304594417764694606321653975160166264638801571289203823357148308922723722409135407732092578662812639861930778897713065926125706529944348179084826624058753298536655167277332651815904970560911100662691355965190373137114888645869364321630091386257143773766025008218222076959071766529296510319688066344187384352420480235209620524368358703537781585846800759460385131283404094102259886963732624739456724435383513399710913561674220270866694620628950211738789271519316619947688242414794394860403963887135518518267597062435354705316647878303938379616878953521549420286908829848962603616889351025646928520535438563549340697561896074407757709610043644900357671209289351460183928769316885070526008738975994625854892818772781611481237527234073563609709045789717758796607427951818810809466602031705577325257965535927208639800346820594493163106126463043606784566441453006775710887119902391076130017085993284895638677253082503481610740174707379044470031582314552428491811121644418364187479491893537862779724968584752734617375259985046970287103276039189629627909921899545565519059539235769088681851711180761277534849249478954049764312276219013874430500690591149344056067077566251652379772748247347677643703065889150098159627740682653494194231060332921978570530551653670393931715976299201877315945486371765748589639298063074537308929071809269079128680776648714353391201528278210358890246780523627546136223843009708606039262335665204395892521484182769324357968478656985466965828688221197802466578504087078128298730827564124675318677843849202095638278135987319845610553901832263929818256203135734270919861843505010765299820578255809937138989665422761009411904340405954609521429819556844836596615973157189417747541795252803806042086281666862659863995023861873360427584883645525123349912686546914328677949050483282653802882785735833238235532807231341975970530055823660011791506026258724278991880266633420293635965483225713662631896617362328248162204891992935823119213601412688773610867146827525840785341320845420527423504649317405840783227217985794631732598309648273911619873194520836364820798765980767619217501711879290729685800812467001276135905137879556737174491368839076105736779239796473532783125787883302045609940972028000576411652062712793027550629382903340773939965479250563417736736560342568327958223049390993345566420398032194823395254900129161851956954988236035954519489184399196271454636832353533045012010358415093206699525323391477578098581032705829355635248427047330645886414516824539988807521611519504472634224157984950438724001350514771747921464749884792756178597463417432633512968817167413338566252585422201333458558884671847969580259669409476831507224055438349533963854502149103573575706389438916004295632107781879082297908006883301179937398330939905419688894330493118387428607774870461211056964660306730687421017614124056642489063459979939107094131905509638236796087805254176945609230733824416541269208447980519659236023267295007245043106421768147022755941315599391069362545488388517616591203184939304189592037497982571010961852590669137516432029204509549656823283940646232191886746648331549139290608249877284056024656334450164570307403151819174109698243960823185943854827175256109902574076158303371582105360454103814045045002368875162194297478434781055904446815569933094415043409970583973714412702888608887199682336059121866923742742041454995745689697630590687498632417362238067992284416079228605624023086965832294300135052909831413274567093511863167285938596855446060913459415817643622642708797297717557308191535810743172512237258548472608893369667083310462059475202527498041800955781475690806630963762547706884946974541653205686858802752817013473702817188292163604166736262148892578186122780738578054477359482749527401766159945566412643205291412046647588422508028266026253154268860531913184378400375679608210923984741285388229864015543409426142628683783704498976805037759551271290030907349020427611651476140013824761945817165156178584494398860274529653374123659993490039577133307770946683211978680217172526259290192687935471080174082401459433871499030204800054246074019293072078781058019487966962300699539977738849685167350620052743169369682396357145631090435751668480936478533967766139290605728077972006910663787044548858835660666830259807752311517054325150264675589028559396270303352660388414596307440670206637751670249943424350481045601703589845544326525093683583034933561093876207126201963262491114157954196276066528643434182380360523512016302580846733397553984133563407033127616890551866705064118384339908830976675415730612774557698003307687941793422033030356681300641101612095934358542211661962576999811642683093662987250173095584536098294057249982114971283674938274841012778081403282345615899549136911053758887833822084407428628575011491801816448357445714290772376554331559140004903486050327877468549486289838929350535920161863880839574858723623726556125650997320498432262671751048328079701160574910047223798136212971782430852168030057970183448014201112160024725532664127537220637608861184719944391048814747040126344971105783808274372085257508599215695310626400643236062832525361607216657055363276198564826386011210026159675394012355417990915069305619185876347024616535240785685498938979898653964200635320047628528725373608305268497563029173794890603277518856526918764166573213170856960463109780586585501229909608080252825631413480071636170830911702080549808724400137905842617480211596140236998042187880546351864038593861432388509472764509231442914649226299647474331288561107615198483942313427956046784379645207794100548665922378599876672672059478316005165853691678946736501973169450954636929596103030773201902902704731095285052003972528812945377924240555171216348873235445193343803433817770668557214943789529169775295107833647249237432993528639724478323705470090572182964938530686061764778025341336457106180989970392374221901383561974071173561713431013338726906616583218025458557822191479492924691129808701334644214982464892240085738040519357491248121850433528132348109406676399099634526980736495065867188324227790861954816287747922228908822215094269014509247056505777339433372747820874149328216140674702438247265555308645324152155957302652807797716233339416000588330642397154508450372586747057275674334264598700218840544756406977788508150831543417143826711306328040649101364639243851805835284741852156626701409457320234243159279234565380853815807680924743720199934526817519988008831653162642722553135953721110941195991247031094409184931926581138587810046093886073852875615770489857910018979637248727609749398604468050523412602754898273774232872209889763954401902307439252324059458007350538170686333744405387762521434942294288636390384932186053111799704552198332936191985790244397535782895134758096023364833079551542623026167649657404220904419711056772987956111436058834165950161379067385329494472889062439035338682360629265794489026285508294796605912805165327842888504620872542845998282142242597819092097022408884891376725869904776349075672518949406885595793950119031277383712364898876920228190267584703955057676372389647873387842950991190975723640341585015317864248782918921468260008062882690379724581161193208640469445620052492580932134136033427505710024048801364317263870889488830772084691708382361237911186214360360989334579974263254298256178307360953695398193438084454436852317895751829848438729677743077765921125929255514075480537195979370215499493821320096344674443448184025295540761517727672870608533256011628399485881871535071176104445088866212744456582035752406631825405240629133150843486805088798313449362015422700775346625243351417771917283532178072740872119185114437833320076809189664143739097496313086299863023418349004823182339094422715989283443943637609374670637752794634347271399656537494337165289885713299330659886970944631507600046618720648354056433195415793892928914033065281267219151411844621082390573482491982713239424624773954000319632345630889317086009163432355640707973632395570411502377531267482178058480706055860571094063755131808600359172302116649771680334386384226986625104379479955791168604742782697640078670233725683336268281038199981252027000737088082709995850321720440701860438569329964270822711559492144158973244825903444050528168374829365111066291377018537931131415488033905216066738482634492882250316162103510427121443329348691724754549381761835106581161119678068757650555690628489550164577668637244989351783943638202564212618799926706088981469156458497511737022510974502346510187183152197053744565769565099878249157866312629252799997731034982308268729822894704020712996621739959243095157451569026938736640073078350673118211826144527469287932093769088331017041187683509441329868103008181566026094974016073244532362623708728072038356227593097471328499386689216609729401861920163039904413970603981743991977000391097798833492210911318827101560263820922975229656316984857268995275737843623122514346936918798446595061531760960515387668664717555439249526135606781221377454934428811066591309865157550549859594981383947415339773262082160692339855852948507528563243786224950251435013916046234158253647552607530204087421107648996196288893636150989777088865434546619935486240934729227662546437546788760337235557347193586353581232129666145523428004649282233967756183817868583111821600612415330126078317218808072679590149056234935434353691962946095953730793662160764099837135714271610737186419106444711700598135597739448180457395260757289267882551946928044981414484149231400581037585388846277633784560802209426533146498820376666467970885141615794126287800456886055710740925260717414802250314035777240086270065939257213614130889982615883138327513685419426482444781667075956510010432564230975842194086672746288499301586100784295969244082185485218338403862790061009345004499262724373478866874233107135901546133032456823765337942626611123586047058813635105640074054974184008082064384129960323690428233606933823306263805319549054674441389486614385556943243923170939918576569302690084561344114547239841538128546504455547333513647481044058387293723552689681942723355326470668873966940546578731122334039077057312255309098451901749289538742416673814467511513022251372021234024987800048420081654886117976906011591374575344742797937599668467763403313591313376335241734946642638185881040200617938625779364127134203920060594811938563008970659860503912528412226672765913209568993730127618088666591771330966601284094587716039856479157747660369630215407937633948058899921890493283117857090731605541231992444391766863694367065013660626069829526561008459156714864072835940292494949189182110583257197522396353552057646728702485202655378490815868280945209063012806556541091129175654107972793063051951673067685950071951561317603682096027752589132389956268314766670127324965811793778298009854189772928207344442370149446863937106758735597136089886028435466852767042048907244553529452375909832590840021118192207686291454918011906702755471457725033957541936463747179212889504420483213739633678168267187928011354789837056701133411119391941617339531112539428196543410253088960036868352207956488955289288038273051284355942072075706336349647131126638878521239129001139386989852053436185814908933667384823136894862886670914204868211322330273999112860960097482483617018589285522206096264150776771557196106258059115339755261909914891643043481758119375196870319910401979779137479675660326443641616750337544913119040479415259271050881393356622296233742164716531071022871823799245299760604462281810836790725880328439343948438063130521430684719024443626855796212123319175767564070670250155151222496009991153706945146710862519105937868230623575487083464095781108657757615631527902150515210245586823670844699472010303958052416190484869345869801153544011253313243716057163925826250096508636304146523049061599949571264050533669078419958571489376175851917813081088934653090966064083925293218110157953283157232986557656337136827649275490139460852928010023531371777092946650525621685428939394034723327369794291348850748376347777804948160446807594767136090018751590555124496472771626402748837766000664439998653063737778295024050596469048701503266172351699648966268978784816162754623130896028957988801136086555944270029231130185516403284543102206777395564124866402906782024471483076891634181942616329596927648837153648526482931204272528947878196940407952396007344476482445687384489855508431465051145337127290172970298207732558070359324162607361849584818067578816231460758781362948182330568522681760953363734643304813675453123217331134392380091444400946185163760162665481137104043830507679765618396299345018262656919711230880343337743572707318149882178121113230983933768463559518127846556253207268239400228968956389596575285284765220719505543688671477382665899430008590972384325553913853895626935785089219997438717296374881753067588073131158265134258236856758786449850934917968532838546793391970460554009617700020000581807467354213800806639406509665968161758560449635634636878154947525387562990531763160433208811192693304970430282735514417029640408414945021650278064117669175186544929059889528281398096494596120634566561788557975473056701283757703143881631188679157350776991716120265365227104138012860325032871539005604188262519521236990319465394897173606696703748615086041264906761699789436250129391432308638288852950415500372369295165445608913251917406966539079735855443403221246469856217952233395375153091722798166808982445685996490014175162011395661514911331390546032328236029044319908242584949772243795925165320305840082649341269075693758884535049103504080943231820554154501662668452098936263613279070371477726111566765162682025744409010116885139939870525022097481212275202376863942965754452352698108602003155264510068520411393072699348844526137757713645731751155174061995686944967999720843796419869228299923105213447753165268194486968997234911598488369834131930377377219822533060788479919611068803615823866394810408123829957536052517405130774455939778914723184441384839715239292827928038681511891997207817163834554613814050471442306125940133765772242726266020285847923915010077725860273629350334360310242252516303351450715850563330927202908951328386284470694876961737309802169439983175688746379714736136236080225324323351754656071448213139931759817510767384163361133342221634271384705628076168977042725896428495500920579076387614969013339350394348374140207041645315635085636405819997593245932729278124336777570518107521695051404269661889652599106104686125576813779244828201909934925775879618457173106428673836035899284943734326375759433162204827079474371256667667184063637794804218830984799851693041570417858919735655531244049808886545716458859834384242593946950754456753026530613032994165536533326467730838398546754732936671526655584642921076139069994844009866661906756338932455024180338671842587328777476744673264645763078937123682357145841712940981921657794473764289388681035118071757539312449171203198235620176319555515695923117463775148979507139382473712658119351580510068178789663167404379145725948716565659550597899625192249240515746859403523467212009167251649269583683533146546255844871886067749106231000088820765944925889577350552750988692682850415646000233300642030160985487724311576388171154519231789537874693414040323775692951310279977527432608662297046456200167899458690293907639643203822306014232670020768569025792382334023661280657785446077575192308121936608604411046553709968733787517941971989445881821073276054751581080224461300643827774121763182512023611778601651254606155185020303862987040031056834459410666649589931855606364701942258790257510922406041502416995623166985823688512158540432113809948928461875292497014428724807089264690894959846430324659280149897142388421752287789851491075806070037485979718187466991944348258678313861569394964541142075719532988175845809177853507764772739885459784355582413480328821844564836678631564448753089861356791173634751481861103247043171117859131134427441172294929490278640865426051504045120794940219634386180201505495536392020621960565799798841897977355421124894028290435236294460367026007419751777878376483553838338667802399330593476869811706951222466719290869830950868009058547244082737398675038634199215958163805939982203886699658244679162172806919763872197845225068589681273730237389117422294721197058490400384400854994755649349498112524712527284827059051227557701498065196170502733705558094587162684391639820085111680322554043105829334890644546102027874709737524258776715957519785946369176909918513736811476076037789207151783676283086915674789046677004287656671808702103914598377577540994076499685551643022863042010458740418244653589844741186760332001290266626968093257923939961937596709916663429436509284443538104998751107588357213142223594518021793682384604097614343353064723991218507715132982999494683348014817411793250804043434184176235680152044984596102644892611218986640978169552012165604431189933540238587890603799637160708049684589781274071282779725292857239883028921268492763792132372942564583614187946552731179864626368465356954635269538187801904663360546023374989657560226757701359881405009269482257072168530513968877977157143074433478299190480821267434844176279744424214754222324396772400192385733535532168693295908589242006360761449873185079904982949276035658060470228537169868439265526434718180057925506058083572851755856880873393736449809189449351140313365185196427607987962154838945640584696173131500702925551659636469648715259382644136710487021924465906741698777180988818793591085712142840040761681805901248707005021849112876219684062967292819836382500733611057354799453142835050022891238806756105349830271820570186294182901050622067527298930980965101419815893378184014463657595331289473060179282734530276606875366320717531833707323664242619088474181271216612493096053462336019957512950650701347412877856095088901689253267164675532771102526763486065838036605137710441050747279896835494920767779673596469560377133795086856314204291815653133791128729415475840722544871160866503638164276269277308189559619090119328447707665847481762401786327550796974974807825622982063493292133811383890605903418662943685530919267882107392457659408006754372146504620048976313652939650783750847405282580998945444884431344871935753444672725328810528271647243595143880791705405771265699999450905961797118775320991373527752792909561985336932873278651584329948825558392885165016470968983760481061772642592762689670286219917119345013352911970296554133011517336994301146807233276276910762739262563978689538924206035608534801978801187769793022398680342406422983596864065609699212661900849206402014236320526426161325610307945468415513091366923243827843099883130916636936602418067211684699665999522438127753806310860437017073076281274079220046662562146593159300091973364974521384033351786701340064750501536358162464890238992020336881333767021228938806740883021903482719029064408580524742304686923127486196551334393590133874573898839596183487820234770119980463814928347750016125293695214903017263345631519469505517238000874646294008157915854749510521095412694060832811987935596133016432329912162498422245250034272547506114360112978170878250334928760442782394414641117364960462840842796790512402741439279047185234482291480296463069722455666139343384695292527963573878103306331611039395759994650436644555321403304343830513386518979064941207791859718317506393983442887296542164514496612465079419298950672744495795223968989374645086748034096785216112836042861969786719861267993139478198644095935971733993220159124595692353777426227601549674052340123338861376628216454518597097173436245816465027915375126797350361878968123276880775343417546583196644035007323059948126869949176883817767969426202533202209560886785335727727716563088568868639540224132241872690482478920553598618746565122993077868573036336489601145871880155434290037700316089854618769966585490977433171960751470570683841474960931764174509846608449022804864153645245533110006230229888883828445027732794897076609712607167811669337885345344764630980220161906487336240157097627999882065007033766788292925228327155940456277370112673018750761238485924340454658847570146549975438734779519087037645317040257160223780132901740205119813130724724750094541133672775503796025864404224402232397592120821411833765889660660070945855790875573547551771762074482588441348823763111947395281810334484705436388286091973584752551312817037727282331483509604317452630545142203743420957497322139536910660266809760771715563700068348396905219569587316884089635006764090541887443131685845900878364542642612307133786880986128978838562257251636579363380591020936655328850377832191542824859794943032904630748980308366483314503954650489985086756459281691245995640500327233126967101133159060302173592342766546570311754589708375503667589727596917841626963822914310227625124320763638847810502351687670272401971319056045604432665133154734875319774698479459092246141724457479329215409866027586404741715350799393280448970923180140196115359942888785674564190011258426824726946604701040621956743685416323593779894552173484698769535860642961269675517748727471429400465955702463799267647511712650226509600514044440366669933455317216398426851160159137892278839403181085642532760066572467153723221249074240974258617220636236572206437126735683512116663931259970583352171442000131251054611535458096812145056082683174321356117585812560138804927682089258850820631558910118485248998147072272607738614435720429486011804584412763084082559823241261629968565054183172585000674679232006765622677109405407579108703574028646533962841534997360062980807132081439465157596458051773680272969941564347930963164748312104492301765229704305793016528701550490612150734828915615292199886254582865174125829243958245305466697760060080955370524024315861454326064454125419763332492137050101750765549512826083077713612936733376243059862045069628865590791643288329590720344788569449651363496032897614131475692529359092640052053902551769599497109026222304778773194439798503117597421450787937427925286790414512816254435197803172480176160015337823121760084375103010173683156449917574124853541162078375861103116165459257075720382844365684391892402098377927374957880246685171398583901992877671063409846221249825878621867769822306264474694519541865195624048499199531163123815421903397841974203499517704447938295173275646598087099454008681192909192379722049539615378257346387610018072030977182256984208765828846391520922361160429001665479776776190790300001032158641946138088237619449641708142317829242310716355165146873230914510929398604513854033005769080136371834863138891951286078023318559949054527510984192559316575082929730777434827769366080236223838637436574352531126989744186329316392125654213083108798368963235931218926595533280774995200846268012629582800481730047101086221649546457962847519130314785876817846810652782905667535676452315677847765098126934772794345190776137927080462762044001094234912856974772752445421357602113828572889155600362094955370138217087165433169769861245918566856605612388891947885696858235526009192585831191685070917971069020116533862900012683772526681097694045375009134058225195558561255842876251536874746876745997750068381514638478786422507025207540405632799836635181971553545549195930942993753952788948038660003054763047273290319990810254407143030902058656450543702997908932354950748801658578519033001782991659832534281384798640810283029861603913865461045418433609041319442968240291974194332506762742597428884991395098075069295700294317394469825472171750420986572955956291831430000581825777258474759962391413322841751528966580704395791056363334749168851699903844846415321211869236987772415556076618898796610651413543107416698375632522754022816229790508908875231066915968806524748924105204272264422482831898201250196282099247234995648829267632829787494716010278612959131560141115473106452864412834541862307451799796759664207476305228963060839038768165890373422827069813451747171813297348885639069697116015556176820337443267295555045682974924394203622119835037551939130405533293863888218848157428577031468823946818962578241357525253826919861019218585525698741416767555472990521395261974653120237048513241895255862856148718340049743420026264528960602263405912045667384205832498937482070568708531417863043001537229282269050551156116386860104712513776557617573024988015161570386374423195323527392432021290808569713594729366197170728795930351539026747332426541318515458318433867016531850802736298294909448126721587379287242422374131438358013073608569777812351120598713137927346283709301910421837776311051738625459569846594258782373832531840809233151544178947072150387299023007954614099327774133702255532270277304251372222784432329662452279142652565381970520031453775326679721706333681195887755740991953601606043587244463204818791615292159958715770655569182182400359133616001626023054862562770338640041601733704018417323983559278484695214971350921401518612945756742539333821577955630322174496660924720957373563549921432647625804445240641647818284660605274673694095657382230044243236339489662190190071330837521859584215861181653083970656633746558419827074049839912205384177427217815015198056018114748691458275264087996374007240801717164174035664196437242295397007653912631627558689050962072374103308458519193593777416954293941057802073086265273782021139527253235035223089064808372215950423606643767945226784517380664134368709496995800357157768104563581872892427644719190701329720525861099593831410662314787299386407555641523072526991668389824156691148564449047493180115320102325091268059553472685601541722432081851033688869203670648170378792517830694147358824241365331340916871406066336975265727511190075868790374074578468585985450212119871510786039607452962058034124035613323910134735181764906229807445099645668020431048291462565600757690028719391019468059619168901512823883229027270713805438789315365303890619670855597335274193988603654275347156920170229674086058951866217751426639223310233149767631623536806213230889039438282827877797796422851467759437940749259513620204080119840891833239360460799000535847902870690854169145587710708490405319753600503483382061767076601746726052008650409301106469195863059082758198805703355025743170680693147145790875630388621293345220064899296685394254014771513190105118840464946055107551402784871303237698677703577294436417714998220002816935567785659987057091497860066686861215062109349883294296816480310349466589301649719735291590004966310608002901568117201480280050946638701381506780349441875506170682466652093730629125362363578947429439441361031597883243417920502850863588324357956445914952224563221252396272533481715308094564091837486152740156455544218224637171203860319381955775185453748235536965559153765549170433009835931713569090870858765545202559755675493391027520083224535787251931864978324203320917212398041969649720770447477342248421398393096727388219324136875480471165674153500064280155603278706188518603276464419582406277085839281544449071301089567827631631478757543174771658689124719450534849540297366022432982652861048537865662440744644893782033934351794820170573611340858561079410367383314141345387245606408681533300750652315411176047422049211972381110504883719859997661328738805757839531870172451511065842715974351674580564841150745715385974365926081402505815451004081150351060071417920639182193739536543951043540262695665781743537316334188656810300398556738104316715461017654935611098973111853311833333129400570017469848994756961595069792639852393748372625451242268772239966557445025295265445589065446969965479385577010702883184846169137081009857946875263958787217393356571579038208786454919656243613966538666348096051999000744964581572760077591959952605268206321948526002491387952989868541434930035614623313993037086045050135390767197675430353345799735469002804516258122728186118770914697459223082435014374861312421715865289738997995514026587485183068225266981588387546947355650235951184985933775637904162146374359418578815350228112982270393896535559035104759274265593542213254294145811056307303791586674105028018160594813676136723080374711397173139409719568021569116228317252998079575574388158208312270109902498192460397573768884247131558118118226840319225746165223650465372030565821781317442679861705527111316823969631104820383534933681774582229118919331158246272890028911926939680532638239304494540773598131855692243174887612399305727362013674186687247216956374092711511634917360138664463192584249397439982078766409358915747790482475761993771574204481511717842986557451888663609506316798967674248235003083464129947701379526967777843370855210305414383763646991902949802146951405508325570860133234484733677170642642877244595848808865195773973311959294696289486373835286953395379629563055752657378341572372542854042706871153616508455950776090359323904051688848092978586200419902709746986632388526572043564032934085819354384608893759394235374386877835304390864870909002202344461191585448318367502606075994969378834465059042502942916305492722450316350074062908759063769400623895683890458483907312901190786475733929545536545223900356527547311345650358561368239654116558759153367392458140930955389671977202957695178780539826375797587987165512172947006736672662518713357901253951916777655182367116136037444027365554770651041834181246965521040247282366612655797008235300843724105417328936123344295718132456168521267156025652082499455708948622451697152534955226118383565944672455942381670688231517150204097452592808381714610971446868060812508838577800523712490989323597661371356663875130174614222762402465282804750679958498318600678357212456451245192280153632573903252408144619960267810158060574714130847464713038397764207732811177464250986084715664670933144132528395470364969037446340823282686632244716228160549212604055459751269000526612609324368214392189065483169903582636399777260007812693979062772051827508325153192792010546735404004773557176738094320491367265373355819217425443460863615401544036491630593238058362809394222200688157342918568168436346129187168835263629837960288034898322691561577613407016840580171293438956496665860891991480526932786101083256224943680782988421621514362920538912098690905662522034176480416908232383204039706393972071663920017299146989511001057968595554395378209384139294127981136192461773737994477682277931396087260492126017104964399002973875897568858690126095080730432954692506228095958838268004587435729560407635071148816654190907216860344412027947846609479036240278316349537833708548289365684619715308051674041519699493979407111005598243622837244847425793433789655978380030481644384612910413722381646792765429471729077606465242189797500612776208142400453933196518877814587513175442948652255278260239829886489980569664279261964546441156710166691162725762949337643716195105017055324794291289442597609370081526458163479428160292812434281032151342505096101606846769745962606691640553488043782963349075600523174868805165603115554676037064161332531698288981997868107794449451133605310739238542995250679896415823348944329191238121425236948628459142238704361314299007496036914357745514176206003104809882505914185285513240535664218471596326979683925043050074751749122999311499531583918867810841050175865308614312682355755541710044673618394177756668971395697101670122265488887069763778887157631293127725262876600704367389204112602945085211937489917027185447080163306187058785828465012808484185999153439705093748289626439340469059271954296859933738131133811599170385198660823475720445966072448047136640048245142812654945334215117082165320931972990372129312349870440318495297459764374788998638746852164007561943347214995469236886590970728091293580910310900725486235264018645765214239838586795796572635680406184105793188460649706601851240936658268649705921020262761430143353653737781646229664882374312417702141698884580470919020838718981415427207860248948449891539225426739301826522638832079966054913710658859296821396593680212618165370883221660768374005269364771574910081976884700658114000022084862951489087860991604586865763121315357824586639267442082675164502571570360892835955280950068797935639455316698278092999736563614924333577061428810504047113094098018103540216565658442544530458620933935354823478830591066121478698076037908090099589538457779429057705291171176256439122506874812821080780981663705132648942955090761909710463806575260263679424602860949250939209337095452228331356961471151805647420519191933074965742533457411825740466274221126004904953779679970965526339246886095958869678705561351113728332775768817857679836940336709358732854123691546956574003124938922114439341724334072663751215209822877531899652122491328768015239178420268602007317875423553623552583764625476651729112453306897056657765503065526791005431233151642927717304047924046052938544655083117341548833475993671517473687972953776036485919860159074988578021521631179036201915506439105311203898515341301411898324788776682842190243627739737993702805867337127175572872598935200140769401816608401279358265873749055921562131683086221557490203469762578216138219887189843584492195338636073289087189587227456387075589840111099591442176063396420964682378869093735164815672093804609967260775852213279161297268019634566217655944875970297555074641546684142545435259713773646057455526734949219417266003061619380248235554384949871946358669861985787625867121487251399760095344860389497721699392908499422815632615432130520664794628594404843096419933551604628489078193377582030832678870937011938536016238810379834833462498417006922788791103663568653221668725782770123926424162802575547965120994541342883063611772008389804174958789761408607300792933047772513141514197250607158007914448198568909865858571198285544119986825306503933459882312729040028959995554857189497427000585745698138477039332853564786642459330186996205985295003201776877064502639842695338107543646045769538101562642431584798749986880646786117363768424706573219352382676092913929582410267512548494099564018894193966583166410095396849466240348587449201085625231345971101492553015798140700367356502252548560314374311487984743647684691012641081596763321106048481118077671542339645387666410731563007256558719009670510892223788044702853505686984710011453503429044582316816335052047464580030778332064370222082025962226354530731934126602690169233979294887909091911393584592944267425011770341785572998470175052755525982615658201180265824960643727813504984133133138405836588310537169048874022276836503048760248559214502479987440365174680395164637252671756231405796582578166000630761781353992478917233627213366843780482964197348802188004518633270326551630465992052017771645544145068528373510901068119829151851334286117632762635422625597909344165257186670723935327214901688927219027503648234488833148662570554305028374943571490433120895512515047563286732495127136038324223114285369792894918302971394601242584404417806323619111112920182728325082737361028552405126723497911121705183421968034343174181332550912447435744481247707255032113497034093443258315317319202364104754560726542787033278260631705941335497729127679495134938674195362423356165746977349006928357604012435494596594513349581927362114955567442979615943701764593545430014637724319734289166317976294083403226017723563387738291921134751753958298729074320662471885204862892783799777860010046275032383560737133334140055739624340794780069442789078949745317573268546738064682816191639309504962609917990806703722938436420800911551402283917511853858104665155370621833227785254700355062765426294622234328545069968432963818891204431767348540874638221211975018132244566307632971136383062410575374634124939284053672317738954838289907137706907937648955913202293573665043117059361281327380697531632038329921724596913897511062071015407407666613677593500591491245181815630637846345851620621713861777585923769980773344308517014989527235725867406463432370837776897479619770565535268547867432387361933615812362708109770599742569631901598873927519980196443954413880497442577547847944466169705464025544849924239948974881588166596757241102104085726983490790888051545277629307585837571427821837694918451489640773879057321587948718457181654187535153423716854994900501150219916182186703729507245907933783308798186213046719500761291424357033970342841303421375401225854323328270289037059521050439730318722676130279636280036740040574181103214359464838804757044829297406095381716496306635555913530288797523241447684766679856992322725709499608614145259418181075778093247277766353943984405927369108061976355124367351588639962200066773202204346345551658603530862829788822948736630646280224113008580809137682130832259321547941397978200454473973551121816964450709622589184822724468300322841332416661921324473519353355969398588427296295909505090221804018656477344497618635431259354241109008027225061001020494435276554862891575508041883220179613212348549773437776429983815918628580728038962648214925534659385814201953828893840208880268571722199714336907943325970057378683137191161467094031390889092487773233526394092039927389284678888542228990374558673545206962168003936495993843010806162892318737854049376199751484826986677597966540326115248600410145727347722948509627878290929626139916017298327026315796109501253747929933737408210758365296568862834282584123387334369745975375787446891946216968521098461269586172336089856463592668988757937006505599902847578309447484680632261065345131702918057431690329028801250258863046804282921159012354656987796457971563925242012782197319210912001256451206951884173942985267915929960452247905281021809772008947350154443396758903923277553054445872280641295074899488190706645470526520414922237960693131935962857055323829172608370628044687819885893150719095318901603922908839999799134611101245943106516519340995899174140193126088864340256838898813474087983646357105763727416135432739827058878913516590793171147912848612262520835700176570645902074004495816732128906695137126084201396030943711277931151978762503435936205670304722940348304121333754831088620944053834100438719957346115496488856539921638515533450936116066165137408889709234143417052792532283073592402560045325178794603558418511486421963047514307776548524030872343087916914636198008501676652734086778599202447674376161834993266325441132537361700507657397959733372874753296136437863515327385713668974694994773490887038686409696208818126746899305276578595535751416977492493388740540827400602914050399496802368515406062003901501687912513338756029473161195051569238482678635373309450013550080004195324466030649091448304834473503700789863851331435295104128387040323341154409005251865548067037438479261986863533580899483213191905901927498556303643733924823090203275279996123647863117137842888594657751818635724546702066813413354992224428864529043271201368001653502988756069255183653254693272439425308283702407760340719841581963747166950053529985002417275859029703765616067617298838427901653491439065256858384255871536506573051913683826595779487126414503035080109708968648509203306193361400572435530743593835535897773481649301868645991572909447759177193526993218186993868789009983711830172837105727142534317313772637762859402061418554740060432197322474212481966220956353373593170027412658076054569300187516388287451648828239737284532364651204224439377854287558852533090912033259154962689906555949586439678073680689676844356449127345088855949534822678642329680859429946845084403543867685949460256003655797169753424370989581846555757337913552064672180821635413174138014087936081773164433540033526219213818871268049511849338902246905871319818522942159202945857790174242189118919466025826264131693749587570092392011641550881616141602372708983622390558954913193302723144876476635352236073647606585159652322719758099342555419670449477782695788006428741245653409407974676172560476852250094039271198683688798585264045819943693271681205576626884529590534608987334611019977869818888007337381644720589246128016765379489841628406508309468372196725343104404935296110433813703687687948243605184322474436998391307827422449848319370260507039892015995194376736482594796753556509851555114927352339321806013684837439602648011039835934638829226365719996672101699125800475423956401686426518117983627109834774885225918961290332369439968284865427139056781303688507838144242466370494499671191371662873030278148660256864216652766725045145446268252765467467544217023627792406238371001849788875879345592045338969971503457161290020679233675897359880049153721891457617727618701889674179756208461972486468458801170009556142196191012896866063031979754582795573131964029886861352606983290822418954013884341720902531134945214840667026618356613233026663218825148368093982390739139371849944124122134027648491870300429625831438504416634256748973480477775454054830788098046831730362214650975055396050642600334265330965291509803295109994599181376995040369601269339054147084360879152616026876289546822095503000708026431414135072518217892878202709843047061480270987711230902655918602936551159618029354704404230916266171937810787793864285544384217732893376212601589899607991711293672962207031851621237735508109005425083934301578529548081983543713454543995332406120998992755698486308292271392855877021915439910267184259520675359320590998458270473235574661243331437006249262693368484487735580930806694871546610775390558482403822981249907944401055621851571677578624155444519383935555295074898623173197134022265220784540111556179828649537400446959595225446282977280396328477425446600440193692121855109924855889087741406023444556115542383586012793610117815285420147126078663870053752262835305692565294697634351181871562765030571647783558286920957058633331445537000986252047346455585968866832846196057277419309950424083201958967710926611705194482795584043603085986517439428933803677809707694385025202662353892685836757033987800707819025399724285174963485322649283871947638526438420761853545992188287228674997259652445485224572195500334121438259524835969624651452688976483738583461076770213832337342868209697430053803900638608703207758603557058552903204270136980198665351124700975785562265920419241982659935774571320662404033122273507865536225657265700698795789821422712633181018672150057240689054718068268529367205906598735975219632865875335622105858074840542896517489038276410543909336962793556170667391331407784482215698062045433945930210179584727849769589893865945809104351987005588661281935810548414288487790746293207890514381465585837782227884574868804963645886264328947789692410723387138760101038467991190234605655127457971069211077774704154704566421427469924362690610755625611756137050143462186464017517813544138749647141260533061247933452004146336365232011172723844519920878334904630998888980010541194969781173300679278915137457717107086964702655134263123592131176455532289134835139433834380149537106675804886926447862931777230518275438107958638941851567777655659978252168224680308205790208805029233661258402873746478775622592705359538371938675977806549236027207927430878176955410168278007009036381480932691650780418758080789110260475764500108431622146852961081974906643882579740882551713725648784178822141118230376984105248634124711065713072921223409966001456539907787112474596096417488455459126257981157297651025525152312411477727861438209318165430333434846794447551449664792044213249779987608367993313097061705864838167323845044649473974973280170050533870935409610068064807949701160902190227737221158866125937835288107317345215793170014218599331570371106803229465839180141011828557920171716270998912867324561747080914594411873070690447790979307296509594661097603837251692225498708896643421451055245001164933204546623525755175980285137010765974737332422610996942020980594227666710617569328935244868297975777928652100199151682035684152174588066986434304800214521330431782805303995680856585148774322994938174170141275564172688176277703349474341391611681594216624294418033722440449008645934392835724722658885670162030742920076014683910715370116455840973047089924775791063208672763966877573454827005303393425677400223404866100951604137740447789767475101559895064758811182100404371956858223471603367663838289814827449457129084459243042008145691761763898227717315593514293497965522046271727304010299862482460479365565665381280485957461920685365971890070790123431577214455770225578737816062814186757878340886967267033585311370323442073628124024623493192482796735259078347083189894298072032439833085499979184318147405347215502624977624919492160520797693629020118458779823214183634322024342168549682725351179181602960754425728923061487384289949919790684471367332093536778368285475396505814778324888326171639546678827610065876979692482321973249404486760658122637115205188213078258274645598618609618088190333962884523276709343971781794995181987323894729998442769081296581997202166992309732462642981932853626563204719912490193367175273753643333888852118949324772797406520310226770781113775920882532467429153739921134449164838602179748493536859001574746277115984089341972358984510252783950084468102384130676999768369743156246384221214530703991378927718392784868022158429568024129622163997128211716485418756776047648980668594109669868298266654282020163151590780358505130910912361438149995106700164499384403550489215151303545419326834495292032933653147888126393131232955610551724410152514392999262357323677086246733067726893174745522022365326115618375880836228399782412609595953178216404553024672480469208705626147772975180860731407778327110553641035310624331054142429842984907962511240167357141514083127951046021526923852014905026790803556322647781130514152796820239888189252749217500274836161499562553630912090123254218716815095507322076808276539541383058973385399406536003900699814428239261368588248671910397017197739892120594929802689899092327338172928523676307385329940062430326123168328563847283867107957534878829278819089578142296869725980499404902362347222521832467516126227810607155103859575451744148789927110627763892967737612690720841622135875867976988852802936300051617931613385701638314745395584735771882277869805880634013076716138852601065092832111175683513960280959531844242068029307374898086479650374268648499001820238818672602857099660207391380641196876876075162717106092010404936793339218828257608297543461338917934782853150882512825867917243631291721175000988329551011677985443752192577568371523977467808601332082142154150113885850383262375388586243642060720392108817560762023995257007590616586213999632109154113202629090705407279320198795682675332968365188142363464650934146053821003688865726685492671091736231712607691840080726067819514643806555869681160692747065708253866141334445317005175958229011550389637846509794762319729087463669005982604874582032944167603027977281747813487725787497241665694566866238681464796991183470174886257332598705076190067031229901457121232572372915497558146038539215749760315329791895908130152568402229471376004065287191251576682529900393368668126498127231773866476950145506208564237571922428180249963191118693566846224154130297773320488537295203852641078524118333901141849621437937388231392728257483231491537010874854018524268820722215400400082971156977598036244789033067275919178950887599663169201639331031944824267926137282790086818446344923263787420438986861643191613434539697766854864743117137110825882136819450876657449902157589307578348174274269393558591377748456028388840792238509779843984366527169975424058586973883793969340412323451250774579463828050913794178590606868292045580856607859215168198063333173529964860868714775927295234368880817394501346498516883763129714537258822449331163026380742089879074910826159042230163941312327754272475800003138780144931206633391774189087997507662154951549705102290001692561124484576607668395997984431304226091383388840908366162922706930765100453571012061800423136554184070247320325342202808153230889746890312379866693831583731346007542280436306789345098784743247749697038947365318221622403207655139691652097439739658085765914315534232160997807026694400100276466455637624706899643283645890204703685391407932029813141395553763653965053835660465488295782681351225712909888434977900845981011922430142432866125837501936368912878694141639913569331558571523325790418173524497620793122997971198287062345017057368967538049219078946364431162137695777786171884067284266223870411591385906574695493466881622990772186477514800689097353576002220002935625863618758683340618341008313760937852194346408760488109178625422466837603689602204986522234132481954889697570815192529628694947431555340661415987289008060005675811085268991287425819175880127044079462217265651300231175791385059472768302953266650937901640670080848323531099913375732546019062430260183820915834548271884381972681211733178637729796499725016596133560181990315302266518923051810307983133499266331577455551110256480616814395682799396580756042684067666298218044725898387909254715328850238237205278286887507487930419178924378428897219989322500468653151026631789136837099254405192475337461853829396631404968620864125257260240118303985348756694925378742217493998579531860093456002954999095596765157016215929160358732943916230998028571182407533501276945643858909102185802699254248919671818075701128872530264615703185784152676322965265318866773384796616145585007996444194112102898174637214798718828580414339342069006879823832398665864854380812857294965618822804666135375477053650354156474899710426093765960560330159261358984997820802815530580280071737472730891089910447472116211953360407095829753266704966966501332490705875361304299280639327178007533677821882062718715003812885300666116820571082867742594394808549598386871432791275449420701056048121416978295772308915375340924570786462850532921923846442963302987549854618309901940230817672686800123926187899210218541777875675788275664914799821090933213860669835017096260201606972062533473838838018996576452898562714372356382633436020759616872628358464081906733482421227814909377417983359932711983710438038707873280369838116662372033698720367648383165668407345001337500921178964620739781632707788079773372453258752174680731074603283486624709923177064789886876832735718791967806569544590933541370559945051781599832099831636210028360017369818240988204708153978542728103122177849806252222693966886110002497658761165462021157574749284425618968898298026760481543119240766911983545833360339110836212284294367038732058597901407473051220142013043402736890515952908464974108001694693951178857295421765184274903685642145397809697883475897268994989158456669310844098425904523503076394850853438872605182336356833198565818298114300899993709220858447928169827416308538467797193819511882810201640346356113304321779323588925635619277699578295444340287335372707610800162118682283657643281135562951391501604230158506855859593210728546729320645635198630455472445784798066421747192475561584846527062227055006463222792582740954728975995732205280375072867188198957933042300311020598067635114640064791059611038602033784831945579005941639000494545044699773978554534579095327587508812533950506194429330763360215814839975119259416311781963422117139519716032096253119614235896785072793543762756079547812335518703762282004869267555074377290930105040962400272449140789596230624535628666265332770891243000888170430587899677090110349489876431622979595725629004547455724402623103732567910795420816608517979082016322413751361553692200918547164519949804755313325457456816712120929196123887311189398889127293076975797764598531561532577068294275773424448978927901935865549155939525900683373790548741152316109100285649954424785485011137631297832059454592187818926968181490862129202785755835392470348122632954355867458545221253128637909606178595691008417513079386091646491475091956154258106354857432016925934257830056571998941879787159827881878101048131598102986420431999114574469761998876186795370830361026083766756349595992292069464636623872874991737706241802527253378283267199678411523705080290648529456660224402066913442315268551668148091594720275790468432073326732884347838612450104626658670803641204954647887293548323594429744167214920978063164483616534152287872580728058726115796167476216878593500926229923642756483525931111464608269594369781041698294318792543935679327816194876916260238335563146246173878114722873977262332446420483695226224110289216364808177403194392564213473432606604952259446620806133994573364675380442732545495955687930877856646112171517250425815899540458028484198547794785522416289377069753706981193231941698290091002094487052882404459531196107793294017270128080083110272854890309577715507547724532693960921913636963165859301184824283030119885827490646509300866159203132368642477420328894027065825097098546406860398560223944877295420507675914285177947187676063142794319646480711009865374181573012957201355472493190868425374777017469367265782789065467884358645286849583415983894719410361186878851633258388304840535191516548684118866102816161387818845885091927646806563909779048242083187608523049248388525710376839606543673392164289736409051853824353733080546323917522487786907270729543808046461372082957327078595382173762556204659560610785681929038965453630577618137076972844129713533279350997259355346170999195584919805183963852109033018770584392152971917827029881795869224281429696664330641492177583464574807675089094995620003774303709075391026861687962273398554222210410715906115439888292328549840283706614117384744871416204481018566223916206083126305864395666522099260129458392800857624437197123953155598928555709801548619662699692183065957276631791007486864411173225606659663082659011042496610496678842745620640807373061580581793480858041200562013085450371571049439403204954772506546605049241926228051407230261152176934472149093627641296420721180035305815894622480137751541477486228684021328168825914373523857483639250580701301943636917874297280262765246657836296944743408401744572487077877109234003277569222234688185625585729169325539769123564206047323217718513503195356384991025816208525072903716660892302000510735505650532644719078601810547825206283541477724259230699908890216937253595891227645770077584538631431113498017865667275882397765675079043882844933245485944492506366168913691617690093286229293801318357981677132550521486813738983136587521126118195764815026526127475785634639227533780591992582502712429735545379761562667338955029631142927472850854563747829239237825825344788939636722227026344325036453771503303424971269840542520203640231433551763709910364396501648390487140548788715569641077182590981097909513683304896137128612476720369295232950855379379552361874803299065895208380016758848949899579493478113136919560434314544850058549032936766825320873655706235272612107242262290508809717380424581031996110217649141363266645380120098074864114772843471915953926058311059734826373993946554113407178432134851952599105963516128920321999124124958275007351182193141332840540800810139236240476584930867877475086807231215789058407759344242138341902408031156587481702774572644209815499719356476557934937674208964842772670720517459517201602521630090496397359129404423843754857569638837938114257883466898561698524578889737774374367741351741728939588719468310861609121943401816070119314113089323915463307912101919635716001790694658635699050332410304794776045413323709425327434919604525134634422362831273877124702870443856280562442967385078504520928681112590319693063220964746149639193615226443337198226764210250810534990149717880637752441952131054953982306623078546106085194318125486002667077060107380010695980655532296403694220888658228811763660156220912490267541125650786584417602160108584266707723160618253780776672394835658699018065189670297595062189279445613973320185902919491830574225193141362521482967653525751067654865076025783916200534701037505596596335879370780008831449973632817775566693641121605358811771456631500767018331857362203728208188030646152737621026186743722815349532817453398274425160035417859304792827246119398825576967961053062831665797372666741770332635459359959984927855216706621710740352282701890382393333554926508606276622780186357018776387278246389492684835522218247620615554415739301228651622753512963485961714928890605387020117130554205813836971698351544439207908527153968778358218528507763800082375527011557984147192907371988352390819578416218327015652701526174982899534368091262454859101109182001147854106974202637962598445237689856619927210908203168812070770169795890106877402412447234965394747703334101328062807591189748908083268049054643284500063347711863570685165258146952846532900568056667013259329141847142404470059642346499620841120003481986076457678315159432102048607217936733777114243622071483528852142443209890845035506307928110074375262910341945820663296604694932698666930702310062338249889035296975277642894565656624227914865981806586882225214735660442694824935239583173086949342647018180992732283048173390238008247193322858513116772712138867097079715012095791113620569449638719326255940550562536154018578987202669780386862113273822958602066371076693223793189868771778994629648994787666200220958282644066357854789025168047134545571998726433264070997303884283214643437636534044909181649073924213729803728731788425704770905036736273363955004392235841075379484072141895369837387351549345787692288430921973189695778794942596141417674124583995262212416134187488832452123291316331190674017978190554363257423156701695423599068435657989370913003761630643963401389059246670244931783094909257474495335929889220505856166591323947026233144489473150527483270607634908365669856404010892586864853822020195666955477978286217243962527552112292351656824266144179807897639614879673993165009140606690853807027851281586303987573802585513939041587442379945933920858584223062516170438035463541351637646130740862269126033956413808896592328043591352659147745836382533369376518922683519293079716087006429748732645825185149231253113452147561068284283430353658024167415902131669655959463022067440650234961378680120126195172419979649327575666180142945297439446752260325048231506191742577863801276829746584944324196314611636249188930510548102399062371756698367035009100558736234188842978157731612861001053826322676029996002972565923939049714440524330404799385080377149846176541067241854191822482411052677864220701841363676088687072936274452008088131240942314274183606759910838327556940721616491771064470065945075161605594184379680963060666809788665069375039660988528392710053312865445168124841334420853139869737691279156095990170795530246567529933349811520555313294177497501540526735877335817495541757637955279837976817235574321214623639702425753299816852910909887617238076814320763577987371779509497930844938276928825497115569355682769061941977554148247151950167432317572897993059673100684538978379669635993171433227031074218098652813566294861150001449418087654094879390640266097133128976173723577364111527468710096387069935221855462537060568526071339234934874409084229448650170545536598219854381347751798318831387208455291948804093443724002008291884118146424065011658099109534249291351715666067179822612702971899229911175711101026717939511019180522725045511222946927095285411164668686707033507994878994864409074278689997462349483836383137487735536864005057626558376465872776590716473684823627645245275679349087480920525761049993949561811510993597375150806747199511502151661806823229693127796182424505938920235892944540382959399861420413309888201950046498593631707656945010064443398736674848437409522368564936707439882494837764103088207489870562209852848552277203225333845736830648317014142103463400027800462027925790416109208668716437697661446419748406486986482833318096490251733062470920198853140053935911951449572360949960105895469405944143928892140466183561565193426958638036668248389727931803210330621142549039553534940451887310053716687538542823131183813596860387888448966957152755208072920687305605125687034470493228934281239964038297257034528060809049245201300895932849095577623429031384329968087391303064782898364467786483495384804075753700434032019484054001300051471598840699808961282475828449661143396888920240738539064232932825619912076934805155270597784655594728160834622885442130058193347990187955336802449548446205142245577441867139708489279533117157941760195452494639652892846778240131144184587991328510141279770405736008391261882956082331768661914220019841283213471413427355205150046450813880722463994977517657314045226214149877730783658146352054061991358774067520542229589212673451861773650539308548846346368616421378364265033347960214354656178573184147214207834710399260384271608528098803916153325271848824440778542175296983192906853391903749559246599289478618054514777922304279474779689491819030655933386034253601956114821208875500274278757535643224242448828955934303695379805514098390658459257091909033492901888837126637799066881987913656112212237119623964034822509906312524589683133331034320264966029575297675925191119202416052490289215358654574782598142795343554608786436137803823261854786689817467777112169021310692351885349509685609326300913798786330805761661584870912707097179708660082414545952968138671127709177628103131727187986357887636721859998051864697069677862079831193079730484010770279455479398443755856389796735053805916004780620868369180210254671707888451597384342372670675436087154953709597617143923896103488702602957951984040054637622224953217135851558642861107615011546322163590103580939454730838861096987274142534144058706044942970586922231260295012561695445150816247188042603216313316801653346598725473694429259707099054407673285284685819941459476428900878009219120323988958624731464866789215568155398288908006012745855777377970561551455151333031575544781459022628387957834785517226285781583977531570373166488801728692052335640357606919684336555984495037499871583487163030260575216356457659751296325026327400362588406066385519969258314740681490290975962371496385060779117548087318946722819200556375946181043518047942013546128100238223928749204640019677799654202277658170837631523664700935270103095152566450943962045961350654808911543439785696124633710258418962908556799981855373238663161864036274105489400040334810264169636472195375291527759640673021375914442348449931905529622858265319677780039879961854446528575498755685026383634525730604176309920510784211550979666752869816294365896245167560003596333631795010102760056636667671972009858318852126399900994054701543826487643816439282130008804883661917474851547227155878705418515847387542479666258413840128805994856281604669112417452946532818929207298104235419379251475531952223723444194424386975922001174583488766317012177916025617913715010810828256806516327319280483846238009661129515350117183479086715226238298792937353964642524926622576464627418449958546772145930799670891761518490789212784344393263057986634974645690439087092684487201660290213817931825661046548029876867745277369500811596854167923128257712342085013561913755530650117538824630287695775683859014625713483519895336914023002799111135807105927049194058685127251436549167842724650420414274504974681403987536174936802804603576003012829248902912253007302031118213892420510111467853057744505102885571131281886103041852180315034337606559172857369155694723851372617373014333513301529073911950047398279265364428934346286495699780401605230173586499759379756372151138406195834675868019732248919367516868246694029534238621249035538153696337540099533531508055405500986531627300587626442258657349940132508395964410542844554907744330701546560237965060315198500857901097687121019776442639671818260270689874644396891945715658093722676167106008759318513298482070183554685694765282231838136503572251778915521292425346299107427429465122440234797278821981822525294808570098795569249997119543031009873626582304826824216502551464769856438287855858950195948056232345539177552161364401708331076161385805678501460316286323783585526884491726423337581248688677978146024590049059724067293061712677404016699435093582033828610600468241519849636213380166222210030507249384973759431631769507025762437217591005120183296078923111290706235938654306975554131267992893350046827970561548960822701808458306720178322434936608180974913763518826989668259592391071739940904078525583602581125671650993549120414581671532533540540857337172498048918028378155714499361943920522540372778130742833866005353795493124426747524439801159499733254304969677233650687062705901464251320313602901598299067174577966802091688311788284209635071221305802659407596131436082130220827926635763803998308016078208115771954101674191732738152883506265553799875006686356706826480305561051225653130143209787891695819207828871889481483350856744426624580205985691836353479356607840593834562659222280324840021932509122378686860827253760751837923332916801652188365126600453552613695463758539998567840285418452605719308209902512670599632473325029333254434763715670757535736968728278090271963103115085753338817425278478778988275096201995000155879117035881080468427504844578304116466681429107484409116337524737406022348338143970380974976496407205592833228162895708052104385389249472850851098315521595737792086062272764737960279639299939249959451159901122192525604098206708717657174028022286340021387039601422872993806046999794807999801194832193623011697662709932835747078575062922975442200370799679442638549710948726662811569303096855899443476336109386800847178098468008948487893135268689245385308820420570603606061768381737157401322307348832725850055442436599235402219397891879078299543692239321206111584481174426621951012241534010117509946196565991181034215018964711954734570132676095053327367912154051271983083185407168326112384662797011042152408576054210360987181109739809932411516105597865761592798735996629507054069610748206979784970049619980011087432104641626649834559323464053936460408196302095191706296682520733809710425425939521771546598656551536250400523482068860205840870148099073186493116711330030806937903529246655014482250944021994663369837331165494418602460203365600521354229340213919610229791305197948413524524871732564403189557055201840835704986352091021090446349410586618945649096719623132292728893621526571616766974321836405874825494379139780004901684238128861434686280993592379617757192371795470422782304819300125697665210838430899646908175012037791578875026393884065477832834653954637506742122900290630190173224136891543454275930069672324620520219456188897962611253017252348416202682844598000870130617520106729080369996725401115692714102049805467640134809643690502222070255027043697121547538166336178985175592416386093745304562780710396558020586304050092611761326098142432301672353589183952822444337109102481540265452329528978535932754110441260616524513820699542583651586418996313160438802425317179237939228088848138752425945919181827576496375680731824674266781559549114436056493243478976431518003768613515946370908108863109647512935594693079004291901073335506159064099205612658954649687578808149910323155823826679277473651813027917317265806429093856008257692981276266090145014546561574370591972125118886877492552673254821513884400124269124508759546639049572850045361315749881393055751846247553703559100918232143653209749427864092496771139196663444644638360757549810054780170859009440154838241845010664943903892899084066851555884574653424155528669896178334283575846337593599683828882324127154481836831240212262509268500893858645860070040025006683332258731320439665168650035630723463065307877887068499942001086665619136175368519907240831268349273218942567039376747809782365048729191573261344317276068496146396436105101585711804274812041703838960269267352370174186193620960044704317404483554376263532902244129652850854887514193964154728440162408665768781988231939137466083161118325873636150837222930647086645239944439792048821968816086924520752510508682135566744036331255943739208793199725144066020472992391836952918685240541853924230696750572636689152412657018205323293531453273475003155438410285746264714019488466135139316829194600637628490182675447436255589712771107731459733727069912959896574898100450466394398097813807019526340418003306499361386799127506035831576274623004417520624037312165515834380500458252987688974124212305501850486305867838714471120849469058334808757220468083186994732874466811846727075560812843693035648653901514026935749414877945306026772527092579777306939221781607611863061749761615790141800890679799240357311608043988805361886297768806805507857874450004481104855581576762568630111334623164423158741736447566945849997658365354250155228057296964529289417295386346550465735529609407159780222459239423851925470267020852987989887742134351597860458083354942037638400364391559721653353481340727324201904645446528268592058134345890460912473345925569207948951316048267225419652578200790521231687477968276045996417857111777386032387878453451631939675985092796703258663148555858511311668233084201281466412123825496914913388430285851229556104739007183067829560113364160361186652094586550401449978752894218610369757052055359926737956725070057343050599242836656423338802288620819869620075476770975104546358652621983479285549071196798027286268785907917157080558585244477273186448615102592742460750896618538038097232376957588684404948294995141952365565696553395691044602193424190777707017211750738228285884283564139268438886960129462892678189956770794870924162118387738358281421736217450112541710081000302142235889488415766353918176360734155766329530506508763834921547239969764836888825461410824150628568584904515201321742290567312657478942567426539409640475944427821622384284727588234402391177232580756608092134757680389145749870210634133229177930784579564058593484507036099187506883203140868418216144412456415348732289753923600875238593702681144162652427714519035494630725178265437160341670942936164484962433685933447200563960488211006440918912297782094849571554508262770373613652431528580725131380102635716399442258845754158090823598619969550736490034649090334083797099665761154604513891599941272882142618866886252528285134728182645175755961375457030996802446669312654683369801563617207630204306700306814176121124371388105034788347105051415409607136992414397005190199885565916127286760720008665021785147680892198946040027279286660627406209581008424810359628741831499314576962491789105337485093590505450695243449908105055816122264118848630875580896965155307750372249312803114344156594130766527372595759505263180066603916074284086322744858807604228400424383951731699158964525246312448673046557943597010408085603570840273746428119810669798757347967743132904362319790190521725585650153975605628422484817178968063374591544969838334020282310964761952027243177982339611114051054912339891364636357086160321112569762026961770460187797934237021281288464123368509755757638706290767016462176120663837452915349868854427921814508205019167647101578571269536384773137099683832931738475311926840614588892267834039943874247811714210973045764620358476160616432319064469979327495494825461909936598533831773540798347217783114327450622002051391220495579163888482610294785784644854161329942657486871044873678284241168676892824903947308874542633864585734846652239415095149329993680026753586628035531027951888147456769829630273805660611328469597020182406168442857595838986702364080524092954017232724988873220906291768777742923452042443357637993987186056444316733050169562003076078372170425176626104719094112662371910903446960452996354446044568107175051400306063005725314387998685501984124614369119192488134063988165728190646370466309839516868402703306009052205697551030332671434337519485982978706660281285860392612108887402003599666672712146421815517313049359935620169979867211101597193876013665192314995534908781876893348055283794643297216072308713918012060165740017544956043035507470206547331925861129685364695189801935652261966064358213507020269548501302395448237025174762335205205260670863809470633014637828059703621204962518323541897712424462443337907768041620559681895619118814639251421861761696713094938796327868307486527895424263164022671570339367942652497803536263731331104092307203137324792774944709096134801517611577785185016534907356000362813477910395616580079445767330899550453756404266518957187693326941802455547078902387180495227793052242345297551711386456379732685929676332822501426544074970819243906838392503083454141564418134658650645448734223878611104288927578245568019432561483054512611674368880408300570055168032582796502848700668915763127748817585571383067901786874944248487596795531701013386273345322222665762841830016014170694276468858610713323567940516862132676768714496905891863378567942117512330963543013156404451758449707901790347537717509304574478810371627556749032733879474990908778156493185684611508491498311439734513592274948377054192100829346296596540356407427178184996152613372035451948306908659208614482746757272319128199842943351678848563042221008980541677711975236453821508746607390247303539475652003358035966529688192908407909381825586795163216941602269580888223758489896663690171645290271712299611598547538402964585803457581285055819904594940045404179073620972200132920289983967858545580583214543896650118839324171983983412290445949254748025523577237066399412251243937132458856142695140734826078995742629483785016243722410832682547343417332888643739594795004445090058835875257013661858482971130583014187801748446996016590467855979473966889815177259974687773763560420143523750978817737637700204911539917439507879893408208763163866326960627832099612191828356602430347449915842185884524257387085522312956353472077922248505232919905790629149402002554756796044566849996535815664573044623160891242014135122171524773129933534891519814118583123931294073057901134477922181507260154912574773121321462532191189720444836394723778582829437357260024130238635046017532944389443443095958891775864933971573994666006358232348693826484731186642552450228940569509807676863123160798542411197769694242257251804213726489494683314795075361542505742443526757828396054445315473139262871485356631362223600634348809002686559282111503468803158658788711781585090205506508273365566500261989457829144338572124683862779459176914103080984322801944203645082599444860729088148848194217133094418566292790213693443860272374306268212050451340266515207114014951191858260610025496024673947995996807526785073810766966134273240315380485309130370102991542883939950642826245456504761850082770487873437434051268003315894254646140382063872415274348341488423744683571993758099421871141754725456433815154953723881016702300549589059445376674365755937139666691240293471131635898192415138928261275682475152164998605146382711845751399767333783594523853132455562634221959971465690319129486748175506190622228261603632305401336740434429922672142827972993388137205074116838252660454536543438203580149730006158408677747618639036977924488387395015477443137897619724794458242582447993442787114496494693982597359685670640558812345473064747817691052339573429100386927179917182778633672168790292274835728523668693140002271668537578407338512187974107897804821626035221796850580322984950848074146490886171827074621658559898467362295400564472028068233925238027040385991102529119899937819746703565454155808920886763048932895192361616727382518035383447322974546509016118620514449842612683140554324269470914104320238600824143822136368287870609483917496140767162069228682385820392203104413891068679495470679602304104442022620338381963653735108611466714573365429443583787624427620066093451442582774756684339044892284968369529918675702885553129478723130593635444823452628482267189211278857317339562389634388832855293110598844233417563676411014163118713437561536021609749691793019476504689781178351196993200909152259706620269094551078209064653381436525947094304102442664289349151296081933344385997114814710106976216998942099283312207453023026727044219061536574878625486837406930855816267287211563350323543934740249105236561769567005343998945251292081235029282581057305035786958875236076560176291740392711683076009647455964795109357418946151937621888652839381980824968637259075445305449053151911952856421925818317908181853128561277084559005904458248790994122768073510641344503567359944512364195164539105945821536558047399546992314460282729365220364979151902749056258812745211494425349114203537536969523642422577999269835974364740890160597487179350911945944266766917430489169917060688786624069851434428353750391884237927642078662246536354701531152836545164940552007307399849122186590800317967112451293359022266725309673161860991041917933499113457607937063633384790263430443899939687530590796876374588462964929794711524522054168142591603650987341182922273855478288707202726858920644882887070258691529045266754089291501238166599649709498719154042602957023805362503998902911789532043184460367547495358551495275653426590297024360491420915605884494325355609465818456604024993364801534009305701762114628223690307526311502823494062138052816370125380685526889484840474600740860477994259092122213747439882794567705949311974164501920149135107301631354412680985878903442066307553652688033675856155656840763797908797854623750529335669082684284924922966540138410625374154918988960053446543238572230577775126781423060697886261232000504486385535936412692889012919973160667975111050845290406487780884959678346934108600192679225267202231214412086455315696031319115148198309625099008013984291149444418532365302354368722388939886587670087994838923561141337701105459802056917787928229166665600853966014684564219301568822893364072657831941789350748050615061654424999577415930680536827211365662935766326270906504322956443039891239955517446979584674582251316153483722828071508322501654195469258577706580662805783419173951220411145332284061092948921974803778201107368867222135587529550979126122229879909124909743190390888301303711067327414069122789768955544945405625353677166225207614756937714524683699206651378032790559000246840287709124570791643019452333334396537326328419542053717953344207778735265396395214591541213363833870238691705012366819995827744735965244318261681500254061010582216594532890738193404639496974812985575845229627333546171279906404281039326330023619213803983045792476390908051398682651876453423496285126620919869791014040708629629958787139885937206590756369111816568879176553266196259775148032623867519764993831898225680418989481576416007544930090376821346763751027364463878770113247293416183022321413103424324614309119055944640605778794322531749991711787615261461537272467345122998293355072074895015234689477011802754053374465394963417302042943331435582819980979211116863345308984784597404542816178277538287869174706860155937010009831367022629619683210534824068168071337921501745973929663230726558594434989482564058555567856506433828032952730875840461502179776802147901654621992576296650218478085402268509380448507832518428655875528937607009604800874782213213213524387333744901831411500468883953174279922296349643702860291329417535301226584294469438948596236651753160958266949535737706594500249191025179349797542141185979928872790987544728539208039673315438675072507817772727971094916851687472382450134622267576945675271274967305236847652714444711808378196377696015306593979488458778645974630437196974833059091691520523443021363208415068219101314806158180055785906352890803367945098766690858624373942790617836740641625900357377218256886063051269790251470598440906658726150275746133967150459666799341827230631447968470718587223273705390302282059032105756148803635263950553009683805820107145888366241885600725767064904012804244270253395504395202619773441861370868275591222118938568139234567679025188989158226174513452530960864266587845542147159417346027053315823987036073268694379292226101207735445836699227931021904248220505275471591487337309505585145553488199984196130560057394335696928699948219061100742986687901139874224321003390928750230216147856435634420458776630485322657541234871797631682398147221906426201512587964245824917052138606204843829923261230011552659367443077326984327918296634171681981321400514774154595568035988061654111491646272707923565414640078018376420079086800801779232426049515336685239171579420421226121514235986213700448452121928748201033793640877220041648441622148038934654819370750513206500725577946633389535965186708499352099870691310473057289978048438218110016918600968799245030365341840864502673316834022411777211857865024759937608012697992918250403267143274206738041380730255093515883526895528473059780904780839617480027967653795030511178065139332314130551867557695380326222511215599704662342111609632044744381365110052647510430058804247494057363565694522984753332363614460732549506199277200243918545026962451516056079706143882300697458489528544501610655343892943837322956304402356165418417112106293121385800308108528890172962088987310578275707346394636292732780466273623732186465753212120604222884583792690772991977551627787450522023305668185574204145940524332835552760059446208760570217297466135007430922208677187283215147320155307602673835242315861658192818956438515925696542614092931805240042064269403736620311283145919292899777739535447690911269696400486387205319078711346104176692212579949384110431847663839464240345059066538777592113179697680649062120587099797605594574516969223521413448282449466417573560718473209366907125951190162652697998967291730212658447525789996600129104090378280405242792510377477167590425968630057062958841489228679064246824560233774292860932220332464910309106824024971653959070176217589892420820635405315440152141372819745810544295016835298957617665051252770336720245541955078345835297995395460950602182938034596777367018938810544418574659142567586762772905449030376915869570799452238858667850819375984390159560718768058532285958872085124173722733181117889278078694689035348652611764266109945537723548147736011457115221942549663339714616268444978393041432977768906028518567349950605035564130081704039535439395618444859574261613188146508008276492975142628385440891720632302534411868479059278806061204228110967202652865076998057463648231211332846838593256903450384392468033035953024714205291354569425754905513282540428745899747354405728797047583014176850953784691857891078513139941428810952311277450329764668530261135547002112729809003713605667239169158286730932787583706491391175611978179057536954037899489523629152955505420429241677393961903469785049396264867116992960506225593271948653873143137929899710581192795579168763316860658458777705942963497845443068285320481504477856743548362601199680865655648079460026199618580930384403183592415295967846492684809914543561455232312082326446844067288989217202875250776922047737916964566955627856605802854574112698252494906550002719522857644582408161484283098795270020873295129089902686542492415846234112723927972335985485274542325557603727376618440581322370440548207454459873158874468563014189583790815664226433429057269758423096237571886087904394135676879318419497527580836924827974939701077126643949308139541062277688395022042054794549423879073882594003939360400033932694854586682555750157062004537799111354794770009625235061205697338622075321052029761679828588064513537488885911118805951911227138108450737464915016124654798159795921029689972468447262374701033071880238220320819616826362733634061083944033105713452665107056838827729112485219422085207765281001226784362110035337509585872419320945679984198372428263582289250159875920330871079772707046434879443573522470531824742189085360422813588719373586096252623947060788840731597232980904336491601847169793516484392688766586969071596141286611043627268465009770656048699037061126014634034052583656112928439966432449112287068391403361725918058701552190358018682456382830995328698617966395600058653673264724318752126545168654375563973523405255539802686751982274642662176990631894944031180979934173830279245348224788890297275952618526374984984750687662182325435392290094263050200095583316468969256992400100349697243985734082828436195971542106383981708324106490238659636372571571767382917966256476987484488497689079576796141288961445027212115336283688343656528070156618839899351113144955765506486186393883933058625955156467141163563336795454462167086247995490889710773109885689773546126585659111532571597029873384653090009608781279950818018145213420287656528656844876095240112541844412023996121695829092802031785904249768987498015354497630101895618034699655052166117049456749528555549062112860208034857124946976509805418844098014762325567954154940293163801922069724593045652944842306916735328668563425613418591988665413457213476588845446552391838951489625489813109664344688861127564669470282270814011963877839769358105534056897831016608318895450723628958692220809136791293464423687252472214342796464204885351063158764966658143118786007962826067302872862635076774991662266428732870806823518505491881991381741707237230892415967984986458588936153532493144190316246744397799382773890199598437104968178750350792317284314693781709203105848361649906531222263708658967272645313312892185449677994458257761519126187214868967814987164410398970736432595004265539651335723092288708118749056083870177410651200710698806617961534195584516240846367074145592477187556672314030070724410310318853369507704835988950139596270598886712261380239793006807488459158259780022039737260805604299442515319259084384725191123575925539517070466243605083263093580258911741599912956965690667077960812863397725928644478954387244603942389660331209231561051513752626202694273794769252389055558971269142280776501419815688849599853942407324084210715538784012710485303496142240033297994600159896668348006106420867322231715481362058944599701693409752374894619469876803595295675529955134179764333373670403834855205464739939518587194762155737275382853425009107263460804592240185327892083262296399483715168398141856101020839056028012688969282857577131975520159726221969085377024572872297588130013397750289738862048728697964368501372548117444212712708237262739215496759150899481920085242321516921404688855292682977666819597047270150192663123006059413440135494412581831199827540854628357960004894483826867516580862789670632154318609616691072246615961921453550054819042485668141540911949135772570276895976018496463348805385733800393002716442229721392653586568682935920870367450004595567534659370731094728707267704634831063011797802891261565620633207834946372580851023451964572650682829515198974484637350251250797378066404949022993839059476633984307336343327977734364005266992340570355587191307207093406215905849158237584584026722295634245759667934824748181987657735492010683531195736730354846836154586005978413215937535318533567944642128673168010913740975813258156698994116401251059194985179343045757717270644624313782080432869916156566574726952174653839439441576097105899101554764501738692348133178752450534373830332629431744610891788097910443068263568657488187072002409587900391803411498441132872152771132605922163936351965714693600228845782690478275088964064644386565674941100585175390068170669563487261463829896755906161129607005265908123455359985276171736792037199562914470946829152660051519201466470278830249760083934841388268634327394697775383210362839195434511267621415557055583726555543130820014432069309294709743634225487914187807163819207996830671193273188372419704633826567460013924253173338103867284139182499656353383528675067751684320547210260167289195084243720905963190883389693005751709919550907756270214155255744100663928303805056252393397137316743649836989397214489908182663439093252033744631835145914404183213617596346135399173369449799559435774470404980956527849143521574260936354077159907977722068007150816730642306506361958219332159982084450101158291707951741237603562334387945924075333261876109160319605693630955626382267707592567392698725471137783579215893222921105595924812910094431431016705868850563329142888348861763819469250461608474816774150624320883808475675388187285366639675193965208722375865459553522701450983078510699656916166984486597360261972033169691081968033722887697650565681100808278932291475187802889801873855769524065825997167308245276300761661061011373481069579071756520308216190844896666837339818424739914248117446787235047532315893689215591551477527868937980744511502605332926954658002516177974467067620273029144786597494428780081273685889812018183993665750127062241672537247043826350829172649473138049624488764575767402538719038433235750029615152867927657472018529276892631768548834679066681045993479842142289825850536785788173114022481461827808542976360874343969097024501155068817815139636968978371352183434501023764941581389234973974973055853090908189761176170239287751907481799720635491648899739612272778420419428926410788085190053361444314657928646321652629276027703433601063518412432954974572913580467051535257196553888661185771464592506521168539941516684972591255756061553803388644111618357172938638261118343008718665239515014689285115635747013680997552556475257793325574157390159266216683839057091663298811868850237078810448863337843377637506773964173600229036357781233955096135931215799101992971876054779448857748485747817801551368592838004118497335219830506108731617377163494647322178309527775191200509136294627203076632515011468328213921969819084980273944667539594905092015933002522932493261483974361948655109943265949533831853218764822759434960777203054760741020398653472712411295151336246279460579867975270653225255667794229175033892596448281394335950888610194702347070923512661738730896129898688444059876863321622486738084518043823873688520826868092198122423461953326113643138601931826653231452180995602792605131907430540564931482330171105961555885500585037640803868102317894186383118219339679961125596188711051239986740032560738627186526822012368238554014901455918137425338521392063908477756502327140284112900278307818287239413112451953801940380596860614249649513436722491803253466876946659303190403656998394580599493687447971124362688595882014560771448318781430346620192044998403256606458811428842435059117420549356817573314788953487011485109999874977329137934141056892245336799045383308701365636604620023154534268791712258635113856178966196515163326044845648607090152451279553521789822692593556697443135476734400972880849242159677587850209789826820815639468869649256596114222680388739334454393958920936601835974075258705769484017919500251498567865266058031799968416917508252927434241791271584954248355493866769504821098142040902174759660846478459491835273744137517383399406234186392842994574175412650816338163620928417521477078948003146121465873380820082881180322732783867703636251115996787018015980109662527777488897156524284210052701143827940415055860739251691443862919021952390699455181712699508127059612406475126251714165742784821700152602317969067114363474928686277354282943101703920610832967963992005206917438548611163631383015525483889234115175173641094525339422382977248515247961998521286289628922347418198650060764767601676710139888270302328460932964323742342541838944237038189837878611142229603115022277950259418320094392555007136170291282240065904956025375715541806846420402598894966631773064736427526705787981153392607818645237111476308000132113419426023857856141602180852936478549138025018573214356172980787979005206793501948843652173486877831938503408741937905755472450414724749795728762955161677875238725029680944877441991553811846823747737474177022797614301004408438314165465548612748371651433760477163003002262573963284792890357194601817344854437838351265487888399150135052778789004304523836175939748624879492624535668189764705349830507934712232457324257643409924073242142178886189254621042085632947404480618779469118025777553791466168812000079149596821348288606110738904754398672055224476547847933468125935017711466152697197299231709702688575196111375953166124391850934720052091765509883091072096756780220653256910353940261654430067682933503976877228686758194841589949779060362559084517816571591695642062020844588577942637777279789100693110846016961616274941030508016215436654291314555438306339485672699936956776913274276361207121179128441797636873559834140270305257649879759098037817862472290015984838841484312388140992499561070956491161790480055711985075223322946097813190346913046656680048376525819168951003366911055381172839425778387947729530434145300529865397985290223613722575763677143640939696103082671209684669263052367133579091654291972048359305213697358426546421940054706745322435552948772010722726217765691691153861618379061511843973363469784333369311702692345758024340706807909414710258538178367728184566246332341905939517663673919702500682431597413128893300340158028835535541232714983696510644022677476442496642525488665142255114541719334311438935894742616535917516571636445146939249348584372536662390181686665299859387879320251604878648667309742456888773549023229339741486148385215541026514233365189207505365258611555205764486218834384557968177967440637374263716106733760672611854418067059259899488487767290488396635918651027117621311331247559051911650795530568962709058694551666040977899615040485294426963333557809436706994099889815694036425412885615850447295613323914936725859947038210759000421959717585387369513362368875773043418719216933551170498679265828794519405152585473619721038874374095476388363496572278865097489993151885583507173717491168902585424233211522275720034803256900587791182684466694771456225763267568043316114267555992125889721799904536771532421572548950067885013115256023927667965147592098692456131937648073735758354083239852859924132430872728017309665381252515770855259437824518814344015209659232296886157116436940473725656741940341012093520706358103191420765229280690000745313597312403928095805357884572871618725287674515026822282783860477576440782107782930502351721463263019068768792923462634041476257129001804498616193907971355475112312384237864156915284316541536304399413703327521537652551175059400275613941308405099222466291156122675853380723026324632920286300510974062140543841788607328616057222542057573340811568069863146987644840754613272256617613444336257690434568229674607146098899200878133538375485794968691075187980793617064617348166430925727545251587173802408308535500013962282170562463227746198421632124005545835485851091048008181327018177963854920394241283352095770297188755985978339893518269143325787010955263383924477810932287818625569539504804905834341217017800036684960557964529562139499707125903345575012923895466794917148994615742389423988210924008179143254354289961380080561061565266992842059076063959365320093746597998263943553034702040428278578647394266602782957436615796170523851340514271110227727798412547262746868875647575306795495881797875644313310378908265312379097561101954044441028112797495503926335438327599899274103492045011706185557517509667950940824025435558574379723043708780505336733965883610921982575610790151540998354450392343862565326779241696405917405246724796404040789976778929014818800196109980416588360293092200061008911659035049542078437918706762053809310298824655546842336984822100544731352203495320561903579981502505890483344753253779803537910900348195529980139298712694208606104162508181458880642867637412528181582721302660572358308857193748001078363133158664126912065558554468411132867161406814420428044254265669410941365852798416385005329725898990134872968292537416826868125017751849928384753273849096542597108374599910858804739779248308611074916823864014979091299957630246424893802031465886196924618773104059721531236315961389687128346777266037483430222692444508436762727439351515886504748819256546896794122853074063932826992910854908995702775775095775808443129676774649133034074495344547906965845924841351335350284829526637133185468530077368865301048443693994029667794643824567736522987801419190231099371486031490103518886875100588862512438037763553312185996778512978284561426472399838860008604690793294245527092443070038448931929966382250562526711551477357634367435968791138288595452027198600682962647129177616088156210325889736245974340034450747375269228628591285023596224858182675967845999884634369486056743302612526694337752865525848077862837077060456662284004356035151950083932904823813393429773808200081106640531884394340876115261044763486429353994194189038604486494400619177514687741948235337509089629245213539305141404102891600943011100423295142028203337092574462263029766850899831669088312710210063036629012557181978282084818449836751104189290941100160915746168180336059182163883800160486523385388246974669651216285037336343672520517381933941554803540581709056334801454988153037374529747875494588330384134482607279096829973565451677478333186677680873514960165162076560739837490953794890255063090956567904897227961449168245969734097318445087440338026693891164643721206228151129171731637445999574298011269454950946992483538666014376162827879421811532503769981583180641803475835037891874473726351024038821591014957354446124115251644796087142563337767045721564782830159392354042421276920334899668918900650320851496580640022618282246517283700103503880409226796304265817414257581813543336909850793248006734307233418423014530485455976142899631314699967842265376750873572374685208645510590014797408012653363022909646418243273072295428319735337513367902852829973114653409056141204834070425044319849753077718525749939686553202025020971642237609693872315067334496612572253496374012459912619325637605347698443588540660528286344662387903885054172218706443498425424083048490217676178821401773732838705029975785899258291233769646650915370555684030965742490027345391381390309295449541670695581286344780592268384474109411176752016885601853279162434524217982213134711481082696316222556644469153914544138277369337774964487472637079570744037597271723345821173624289461672359217398102442166137355086244263558500114956479536974347526255942852753460942683919254745137451623191760879110286167188666473698799963576704217732555807502632310510791321781798761301839522119545711926851662100805987012785221816728706620341799854511545642984608491808078075300558074101884868196313560757610593863608868506488578534956122626803382361049269100864429041879971133361882583636161212039398146725219054336287013467253033692255213822045811731542047129421184942470593754403152267960371227047117209091548689206824370004999856742073479863179803507446756443201276069185720567363163512063768179174169399245688931604553776933463234413825355503683782495781362896887780498632734119356999929608256409605306362279210944876294393904196783508326891908074480005013285992420559949080088398123877316140334591576220675052606668748271182977102900407776789076720828333806877044949687373216344638730038667972936811286040206426099118856460676314194814640969221411946570694668566425201447181639755272087554014341450953526543754903633708035007407884156451162337119021036000394690200121416082291102530259176439938854194428258170037760647920064150790805196406685551122727288422214929704516173813937905605873411449700728207681024985913915598470827370741148933889436484591141702518562182600590925497711960730095290501028675204008941735566897878371362099701111222910065209907359456033157501674578083768004671728854845092047731062258711875433180366910996608599673233795191828486293379330697624806881446948218489204012493955729168013832042058815325229840918214991381257959379099952726281532742394679209770277051967587849089982387979572630564174824909222827522852957097793057850661908767612552522114086982521382944880659802349769835985499872521996220905765728088442898166599512422526928880566865056072089718099012821769812811069772020272853170295418418970089330888991710006247545858197092610824283083429159362573977213892505504251402135024162110982212786077895454292349626336493367847654511907024557344614702023960153809268250526371188961079161338250530850040753451967409140487494336523013140594417540879849159475786509118445624092129849143403570548140099843740003649246653799366308446121888274032886061105704481755232211104590086148629111572955858315160415134670508549642166431174607067026292314071964566574178754337059125230239885272741455896655137918349028703634640375215145818782302037222710762502975517135127113222401963655598556034044479264019447156811629738048313916828966960979834971734211882061533205450464066775140048860545068916619005545266471572130331655973783559775930227276336852346073817516592841714667718222628419235385336443102465161556352343840159431883020223638742357339819950185207999418005378319423219723038497586341762637351312384394835997958822017811220185391077556702610482898671032854864345182628796700062956489400310944475023253422904356118341636306511641211808918464719269394310095599256122739531663295979580325773463655013023212571678384040750979510745783596358503424142896609214833612063386504688635113028555301315678229801143097311216151900589950822636291961976717707937855400034289903879426912384137751426776674002295545487275040918132883713226545833825410200045951993596459236591079398614995656524461335437745311808491290201242377183133396003383616226432101206844366976156939616004735873926227936308940053719284193334795023138868665609773369445106642965152128133631257223326225730249043869281034052241175742717098994250274925947307055038861452559374974631834190251318672613759830767116951369311243679567882132109898021230194540788276723889059607295032205370617502238486178800148959778973890181996800394016534357420091489059572745038085482514291619573865738089468642869851135165154594147326850948208113595282462356482140614762222482217751702352394565634549905992613251637670969826422483173044189191799369351114167976104868891210562815449625456799053411207275377536201702817383035471172722682627275239144471506429905029159950574656006972869806075490561809517616694368814014613395252437377828537610916871392485419289673686152669979460976492635643690425322669138288338443975982511604881843627293640945478111505119170954805751188207695961129010565643149716193569817707683794601077337317162825534556937564373185238470314451981095894023847274945155602189665173019836787982588795351538340687704057497773148445160701877750056401832455963930154241728633250943809086260016571511668102578089750175209739719392259490786188678351500483872735415627351492439002691549210317553997022254802516552224845596208553384810114339966424690441862173435275853038564236452981363868643772482072495251397142669757154331940544155922497368345863690836792037041083021773129743520335047472028495796600994566501517510402263898329806751336504011878669447557611503113417046627844170731316353589080171709190414396272882538042016151135952171238059454345143423552163658607266561083039880169579193171995067167244320228384396257860473608033373705080841415722417349197824822551352792347549964225560052160104245172677336980739139276155219686136114310003960234489815730114988570976722477882288841294896930996464241996087930284422003393807337663931875358018009183843678172833248588207212756993112990066535975994346901766788787015184528356888115835600700044776334812447651944692331224317580247357325550165760858446417510237761259454385226984113646080644373727951351573403315856506642097688254956382997483579351047911065241064956894408322247075071586307189411473764090843156952755029608686032614226513141863289574822570138330210163750982457526709073368166313364237016121281668925933331172786293358577484198945754826536197794825222761955873406383516731296202695111615803244169635407974782560799319128232093518457012626033901227188064284848942933501317202275417980246293977058218245398958001832034247812157651275729133564603686832382085757604268295846509266128228197873795783752566274636280079110266310046542772675369274532368766838510284606012029884992696786898709550228900010208798917999213030827158181729059859520266100573970441535162022257267269759121052154945112752302378164893878594316484999191196489326802739514696800866107808818523115481771162209466272949434096156166271904946905357689664171783543847787936654626042689107047663689068252533454822587412884088690655629614728034932490061396579785881966916925463683410573555993939730873274448736834768985378769242392364414680400758605786047834827635666039502031938212834263316831496369499366165191862474828471832588612539062124091548272310866805010207774579058341973744285410614131091368697623103288597720613627428885642271935078284084340500078492338940660286586757231048840675264647750762721659617995361192782113073762671279802335931845254846138751149398716761077995761977075129913695004680457190859728560521887931302723618693576109440167421469390268101960576192537754354128097688682657221640302083937857819771565944334232206058443713647583192211719769804373977485156949958617581213302211619849421275296384523987641321580503753618815350312471380166930066516873504565467992899018933776376381563057985674626723531605252911884388254201581411617129690660775832566507018633072517958037991128849466955141567439399155066611058910526836651131242883799919717378384300838695324158959098642632649383831067579047270409753937889455014396881264096599065263792119806230958900753316868868188119919509282525888550145752243070218420000914682380459740184886868044940419341883539290772804717525208347518320375619883850231366918524731235898016072231801442027082449094442449545698509088586079319518371104546201002771632132187444302694584655994620892512419298755923390673126947304104328408481820515005121662017904163732107412461814932811088463038975212797571977837897297223885722215500399428501352697201290046440104413700124032969129379033005264098331554157360615794661646992667103358576869583553588455414256492390852225912978946164881690450973367420365260973970402534765198168896429291844255431826347351482087502205022717770205835045949682474360454423357400101288596510001049408031639705310419051003831336487480272779386213856035085308790157555006934987646677772321113437373057490829823989960354951563653767042372861894568079404151310450942954125349091913733780951385654926666793623929100134681070623551695705581309414074320216640795740224103410678213354978864032339353745651099550539316966342917104726370550582066141399052273062543611089765839664891424207737574149134811490562639374454995647026745896607575207248957820917375194330400824917001229229112607367102028516037958783265103111073248314984734676553360505285297192472322914144684070735514327933196167137622083049908090309668851258804487090924241682251833650996389449248397588360585887327882531779095430703516012789537548785872751666658371650375799859268651935678819172939765611093543822938908633870746404817259363591835703912947893750668088310647662403403487095875483079544749435467383377452346451979778838964431398847868557984026029709277134466618464378740883983182448106248748132040358674606650002684938926961103894484716131303781781519010873598519479457680695227631574271505070410995303389455184574868657488261744680278121022221779561621235732220663026207995843052646662458783251825003152925856177540331887802723204202688941542622475204113859584288272472981912573252912163556521487948253971326278682014451125593282952845145963246079928801774704916758687218916710815698274391208803603254182388513150900718233130319516755200614967607160087474738420560049410708163936104106733941101828810641653317273469203281099216549349718148114838687151002474613953977872507465144167686281865744013836897336163890874315598271344218772086546948957211517898948442515887988535384939668070932007171972971089017975085318694294770500602684396603026972562082905377161746319761830348926968306401945873573244762544254710691121399671413643851524919701140120449472329802304062854299673277046050280819148087158814416151178616083245079345036342619742806405204959566194990946426256722917839873793929966647772559983361815804695868537653370349217642776836347325129697700280428957287014170782672306799550035953397373457803563380442233913830950892058771177952365809988952897111745796216454727501243324940758202298147836975482170995915950992968920560807328655599491598436783884897250346355701952043387574480619662607172506435951183575915581551357278886272557967162440086766951501844030566280513423725602412540241792836781165694146269113334339436384965372155492856761816915686183088841378584442328307237132735214133789100108370170263860909505480314353089570625964757637735424575201058794590496609955107694866762230304495595408331431936734304574773676244687995679726851248606917444259291871110106996480285899319728548784049303506053489841231659050716144027402021319656250132470539422794472156170941570995454972350938110747189094912312343082453888283916456185889228923516803460174021144313673342840682303149568469295364211369649414175958296552896801595110704063487545828023646541394836013957608034850214802255677716401945607710120075965696373320012504243770108451804799454290095554486282818031670503119930070855311331375781641598331797411853984057272625985729220649453995768135670149079116737807771966796689569179777604427708200008151396193724292379627773126659479329677011218538730304845245650051958263176695203310509257830003187828896752295395212356545085154973652876375701693729825718201861782678148748393956914236185270753258417681602010599019323081520625543561259995740378494839705517567008486828529361624149209017181761955065439303514800409804499516875862882882414661126096476202166840852858222607989531087851996922689806358958125242730654894171477267157368261013035253438608290514280426521063012306120944043365880044808485720154881732448070067937634392833741372576389206514553268728335154983660059709546553817938614046763491942839960115981190627946388340867748153139656344710191760609185412378189952384234740731291663157393334052100158155212806255436042599703052304714123026984905450377818311420983775367160046230561845562726412039932870067794675463980053339703353716175553414063892864834830897412322492071667496645619555951242322783938417620530926050530002694866892338262803389866386298760784319900142584393872105516989427377921834762625649814001445980461848457402650950272929927369500206746452922682110812766428876854045410120592580859158559542950553083900195534728035492191536832876246827727956612551335295935112110648850018284025048351683375858497121930215786004861732444401073570320526862985897508690655297150635708079286558364069967242693503840778589448536199037018221963473787227609138913624866002806400846768150924891477049354597342619985721167917305803125970165079814902965387876780670294957895664525051566084580388742273706524113523282931356045021237165985989638752073810311438335504879712492503612952708447548055439696771796194357216242867685240809292018846694170940537385507988179845413942778900059494149845183839036448874994260445840808745019649406501693853471876869415926448759880235373515472956278564741521395626173745088215199919133823542081471674674595453427133777945298213464271174967603545859188374859857716048261673398810126761529988824616344703027569970669651897699685788361195141284703053340646932017134635748188528031679038063359616683467748147806823634809982148246352742820304082139960829165786995763210285576470952160837387743106173683955120773020557821037852321968906314273764183276414414986924491724089723559635418227111571027921725080387798607727619539868242115590634715374638785550907224512353406977343113876961603597880073631341626092399252972551995562216172768836099797756037503773478737633435124668579879633473376149588885998753299660270548991511903972910500700919865195674391066456236054532057069918610549599548316825486909237006573109357522499740085584872302249428480995189926455889313965365639619084009151443547074486181831985482108477301489365106720029585947825013550932808924527340121976541521925060175404974562807120983256067354392590499404179351429642447854998815992204648737926210146214912505618372632731018612084520424840159016399199120008276776877250636490009687350111194782793027223157000627227265581506710240996297262234660712945621976458428599398955533386178278496253933795330801009086126551805268283584095072171384765542770426021932216448598171697572943659050610506741420611688047715365361953919218484156607534794672690139888956254382356115516825394437216060697443673953096204538178320625021036095175716532747318696848552079248485391127927746453337283808491757740815973817641546250067132251376109944574099033950561628928799271176519039796967655273801968066850299422531268474769919041847909278946713388705067062724583305818955356769611962081658212672518423777915593299921700841904233865530185324411022214090995520392358186666525931396845580630363302268430318716364833157997126214793911673232016673308673401155442849600215496956470075661095473807962142505860756555938802674583898962212617880331116907217564053387623797039468634808910787191203556207775018280389185353367279058242886928071394721119573082096491325267909775748649290885902022317645477118844329607963579594548963124990077308034319361952830583719912915829676551559688350723832786781002184622633645705514127253021585076928481326635176008597040243815896361677263139050850710440927927720928093996074592373781918849393206830316803871292810762373794247122113771827064809895950446505089321926014476198443208635292369353926309719814636562230610414764752196591674057032775357660306539053629704271489551182470485109948944123691842932928220193668607146085175836138331778405344506912075631602713587822570136537842239542577006379034718063930763524323586304666485874481537283049258327078484229123046188363108512128601313565274448586260558739482651308545216061298803077094317512479426520381269870326504290757257165538365292450700189750893833133417362283069159108315742130889305309399735160296215426561623902036004095539708414987557489229182040134625439278842713874251752319926428318898358413443699497192349637121137252776622653959896893834405825440645323287976782177301579190797239174380066632244526164779979999519565135077991810884601133607983337886301380382201013607206505599824340127121749574404282582524783751157512193671764603616073244068345532563798095884002692832097932998623320846076660718557265991622895640694278653802013042667286174989752531461775419206137639201547518294567873878986944639254442229403139703030517568570710389912273166544179776987966563864413766039766064903756452886609300077823891476327137137466105100084028856553122938460581001087479361941301425349785563601123720631374029273257990486564372262498921723137268423436167021260843596688435791378198796550156125831450075724644196131272424118226128995814902335251050930935645007476057968379228180409616469815567476216053607176577461280280896486092513600388872344027702728271137287322512952862860767852363485098427005368295149620514056105352422600744788823453812604115520946916855878137715958919461998089855605742564862382377991657046223822514473456870851670657012125510224026405061079912865672365288838760372252252656302474135631373905261984972545700592238424341329902837690768578846744948752635697119841520230229460435857690729383881008132138123630819744223340453731967919742898927805811711801001471499496227877102203515649021220720285523901023115535312228176663046832032823754271123376549157087560769914620867952984485720516998388154598107100736083975739892261645670591634305641219798068269403150736863079104758129614510936331334904873982649571891962880661009605268774901815945706848048101018134886983770088344406426661889292190213048994455757328598696433485490369272257281025543356256680549575814934196082037304590853542149353194577415779474294537012281621547506997952991460640927027233244546378681784670058838011578857347912128339928421866213183806857979559508186448472054983690360818804118191871114995502923041053141062454938401610855641264841032279810498118773904878649340803670410873512490311287622032745217844979850354873507606301916149736770304535703220096625117839440997437944920926260553923540384991234155538454595548405883655815370461946479434825479634190739702954452956555773274409459207205007099646072129586766477944898194869142075691493237243670268418891608385586597326890969726421463111801213704708331676599017093704207924923482021297684857610190477421098748445870153807405668491775968145928716568776284374435142823492147334382335722446133922238032783554929880942653363075466989546670389624915249491036235854305416225326970773444070257570557846967156888664317989521701662886757548988504243761005365717997668594940944739918176599879447425178446782730013229335654268910517742489164184082154350056573889940032839496669500401755436583729147166188871328026882143890179493503662914603207423792423645935175413886495285397875077690612345815252289264778963213123398178484868716841987279563801401380117937690428457467843947121283074338586143280673507725346834781985221651509115923349316863414760107706836844935693285936908873313885068644246047670438759960607600058342478036226157954313237242519359875303484783254610952025443326997095468879071211482065303980305356903876803723029697989550692896962147904331043462327701345123991300436083380570582358864033903024440131234767702994592627650760546678616651098680804098723843071734259383587498293582020131183033592864163544266130556351450214705865400936611995414286075160452263501362717623574696441064981288282291578553208074745444244688203669833149653292290624169821369966600984078773116920690236314698131421532009765257014313816862659717677140488205764663756353137946876339990501460560350426200480684660897053569131106784319721509504668292644017352687683951287328969944765485472299951201062997720248674769667757516269076585142080918766135434296581999985624750839204812363532037994542555007873631799478352088703858414761552767728812782232866699122144486136657928083873299003101620945211379182257635121771505304529121050293588750018272394082641215709289760825482855809681410304450388041782626310504790790430469994974881899630997713190709313614393081635661383912733549178151102880684670547770809588030911063442902172524431245216833025274491117263610492996275542265562220773147197605041599870695258113703888237095663670330028231141322139861096772972623813569554429254946967406595741369613459350624417692737089771084934404113445209010393359469517608021497992908891271496905846804118249236475038665825847152204184667353285980466693526846750831666668846704969257503947651454469537880519273464580836462380742219918227895991361769959107512769634061399575751695174036904250999580050899029367469914807507848449647505175485437345903681946178787863312589076784013494987028053094349582597702547264544565285830066282877208180646986479749915845463593467682506901018314629727467060817878419696967429541331373177352642567359702616424895422422538013699669869089156509159152596509502380301029695850667073023496991676965184753716403027689618741118901259341724235750453441209515515892114315549532675972782053539732823324261348698401258081442102205369382443505496877042028293649140554313030072978312865120473192077059947594251934205009846118676054460624023076449184204072943623494240709050384380481792700631175600789330896680115217978407989741993007004068177417775936463778160194762814814558564577111081389901909241948126416650979177224901981920458066797216728379289866736931657207401565754087109543309006157447707303080146697014955044031344232818935681467902209320989007122419450697467016136735660347782721501894226445102718610927747790920416387917890345495462048851076153042495255859694559797792374540377548399604632483184924814594208553363759680400195188258949540653385239370312723310978268221200929962242380226665953815939063591417702722259206357983745570369681599118714727851755605689564979762253812965913404689730763078655328978879808697834673420862459028502135497405508365104787708731420459856084928172743280417973136449635962523418023902919482143454169343624903147983137544736414602177748541395843039394123410699986758806117070407176172801627884896604648704198701549689101151721080166636668257291524127579245000912891795412156270494286267446801563143520199317609086306103858305738246241444369786956596023686966179847425496842864692289613122715071683523999862099011731528992737050005048034943371639840365515405075759808190387384678942963216197617771940308092527532639104706633028144321223760111762296368374770077100055109136108036334886952752426351597335698062007964042414609082400210913092961763575599066029127181071154749422320557413648743623140852119500078263386612346337659821270222220566531092930245444039213826162183437880802725418296352126019809259819193872922224732108974590205698658222354696473816116439350861263024185399258462588260661370591898683433157160656313785610502109348343791529086470500799883845418145673942918556398078703848544206086795143164923552652670330460600590634939799831534369195361424679728503555110294972417360913333122376540027978951132528469043843765069665291087332495768181977128342104009895274220073448302623977817349295165366788470233171471986503678167392739184880645010502966953800816116700669110167775225967320093702159305418202378228745224710587379186431083001030669171842538602391724378146484823832112001684032464707243740688947393527719111165821266933889750215582917475256811671882995254138374067644345586571688694623849987574851718052051116289034110482850054224714687197394723514638233117083021510722956844438810886621836017699221278776712208087719622696231509952619038807067004846825782669010707227721522954078358636563090357360226718046374444873100193600383202096982379572085521642592883316062099947524429984601154868372388734002513113168209635255049824379971464511273859870722638937279276802745759593340325130647051754791235919809506880827215319453986092427049842116536806804974598409065664118705069861887556675169247203232108935731665900813888973306848438722194385330693453943162831694457271141243454381659795678960256121952929634992241673075022517610651757245565492128850315256390423288888315426627861072770542692443661276883714657493903935443661788653996597593472573377014652513587000699853747428617219068795995364544397919351131382824111868535595162910798202384912382170501282841918712754444122893603911885416483951848362037444525315548610654984797007637086752480450262345142602740089852874367768320488930298155553413406661448230442344486218334291538276847223450725862079501130637376458099091315272248230639521770072114527419132955956794747763173862041528421122481008588528813233710223523531660811324511499272701752869011675721473878392153764043783947250454958490089470603559551909723230520335282077795079993723180770997973156481594534135624251198921952212237851587448455772859623615286164562005160952560009076932397585222090842098178135576160815385181863323471099794345154113107748755938978060111437746714129572413107915388671515874127467354907021602329898559867128634526033414524295320695046135597628385561474942600147620903725789795377706243840109778394088837500299200681608045739323087946795574727212773982498192291869313476540787877668599467792848105832638113233229249926322395365258689296341169760930175408708219337579627217293442786051674745402863841594686187965387392044684391771067864619244237255111352640408003714834437899664999545558940208701474217936766150713884783446219566987649015371796978163271436207959413355842876297634277135909907530322160507239963655343281917895563652743716641614293500654809913360707296814006856859862678097735065316938654703976782119455712149369836206479253537073330700416731474907439819792929821614713734684544161422460613859767662838858115760965454192410542500607435738456295391037374406533577439916437778124677622667683957702613438410901952768789523750962791047723288952606046377107701770568741110173986206328075470264117932101502533793914733765174459512600465393565589427075701980907885257825233943479830863537887737900291526942221870170278722622123868268498031105756276275446699921908983749352449151744332060545147247964767853917231734619427805911836748027414507086153916081664552893162900944834034478283303489678259508667128200237908965671917753649254953591219509535907328534135592585259233951533206176683869743428271336906974437970470478424065800352075669647671287555778972058809195661485455581913604307194127500054946547836251202609622200828177190684854377293998274761854141348405972316681856219963732573337677269597214122859152669716084943288346645587646322545029001786145044412114038511059233044612320252250283192882722413329270356184792287418196891960505796302727875084327305641677822949433898983522512355193825896652875787677553951010438029245002402104997360081366619646020196679132646259026239952296815642530155522208307632110908911929996591568777696339163221387689332365854521603371829228803784321060629521294577352171826628153533363227324200387409728553777738362359019297179112772295784700622072220440550304935631583116064074198045941320234186518119731787730228068654720130120302446726015674014340831567968053124186940083307883549758850924007144320420607124283326916248636054303530808100379443845615968382304105019569109410382849471388531901244067523385191657371562147483343065581395304372235639025919172892085219511265273691059986300718938728660809573197354966687704552706092174866045032072500176435079906830407104959709821943958337398884775743582383624897903288312501749568832242764425819616048468869680430333852917997903714588300630600298217618556571563992340740863956251771288507301626929135387181500239006776211312834555322195778652558847936497062560194914301103534771983874541810359224729186490265984066675553675610944302837614012702142801642753981283256301240443917167644890073804358611355060664780410696972552223801011278095074696351199149539954646785106594121658242830549813312221094426990668337964945523436709406003499145324787345509060379905330200086411400210607532386353855787587963619242342724489117387052072227410844829039258725332421042456489924770898327364632775216213775299822126203414758774902894579216877527421452041236442799597844772527502462590230667289600401368435712295625747986137172085572795319287326215028708821098353254585183589273838949102976780563249487048176993798545827069602815644537440700885895179204454413274097165209208757126420310559122137064182402838118910630739298437610563934698188008399255822516323240173550252815198273996549263298684119381509071390741223138413948540427547948378865841378261142866096474493756967545246911777449557057034464191062805073584953219940675494504480283150776280402692560852558564331367763511305673787998864884111245021465490293635680006183693990330974676879685929232820148414869460590569958753515837189794287345281621997324100529504361833613823386325462507357092733528438876962647841963783759819654533574907597237719685455259818707725022364051591392536379675137619293519154985169797342009147320078912468575198176222719400159803759208922576887280340460406099191367960701244976994268947707694523120226000117383713557828574102659287778199331346861034211500229561579354277318023178365504079025291455994729942526711149754580644979530692451556050776766852917217423147650342283611097213329650728942682631429192370501911906825059874724410953187072299549200948570248705967908721170092472535651529486521680071039180288470393814854494947793624310608818621016644031680344315556999620035166663148832272610743542114955860359623065508073543631274755226545727508632378410373635600716665256753584810585461135773025317768316877402699179677645927239429280974332338895789374105264684492220227770212627824403925479278383777915205385024801458383825909238729819416770985947516809885020899697830522331360745569034492025424245599763881146946185414744640815202083241596852647922371157069610862864854495577271776828142436716802328956086649778841814567406952176403279987001166554417455791684103463691101221992170789467679631746265440808985344336951204510482154534405058189195503623388790066253681477798494116411364448424789306336965948678153872592770168932072729173611721417825286453656110550803029611239517880556790180035173218521861359163306677688570538022952404000987977275794467347275528097292056478202619024614299092650312446936248784193137688300979305468168090882750834630516117655604258717670126721698170165952419334555857256937225218296904162044421834484393153965821549974179896612892724651514453177281046442837408840141500170423846891507889862882948011954965855955686215593798765855624745932447158756999698420173938080183880944557505458027808609572107497666283544175373565434268046051271252940056972120655042525293870439601607317634903109803900641370491270204489689482482232654328333452109177457584310487835106824495980676705150064997549623817898779259242271284616687109710948452047568494956507872352081659965163494317801722217140672686697059557486033852094562137071348232386414902415338298068930933756807356867920186789111292258843135566070936714152939570786462078316295390027143391430384958800241715769271644143680347054239351674638088575651496699308767691839564355964429235701039662699049042155401939921697082774261624762986331580990973118667428811599654373387120326976907337518839601598416122520662518448688671537300945638676899930522247488042672154546167370036735980695442411431194148386713538163384939739459937421518789116287069729339532925651951314916286407313411889686791201827162533692422084579927194101539175658774193476442275593699829805060133698740137841580653830056684156722482702721794158484759849626896854324358492914702231667720016027464821053325617015723434915310003328942461347353506488599768865351221010138779806633339362215893158800900754416441993598607907739713848990886157308291722328836917730549269886791892831358769191134755933985535830800743971710568867709757338823572059719434053467857197981014337534414180036646272407468978186664349710362683702996944763163423302344981084016641237909281484925100371380384479927907626962253819341012067502769804642527665739165049367295205258312454071217014478749327815461390611556746261443326327389003699520527106023515203528854133357952394321757595090848334512598264838992792813292229192268920783903014739120450953881071791508677062731101720524325332678938524565888069201204825940484923268648041602429359288463832499105443677317462059453571755060653876136130675733655373685977373937795198870371789179191898013024998077339300586929375423606335754435433881077096229153053021382558070068376096034815965969411138517211939795020921843232223885891714516896617879160233913296697917603801997553968474870178694217171281780239022733641340240295703634990446523129710863331614400576061309715189078649921456723343235712667409788266519575023948641861390051084585129480355901326209145007756359054431374794154793729678756716762929716728761623965763279266281652511115361562735321422162814316066279162281597719863058003816139253994498627512430593660520597790698890458355688461892721265753284713610087555157789652028066365377945263704804879204553928668731837831168254817116612559127329271573758863305811315228745744961873168759904062141033628250014312430940639304254487803546905696575304242037810533761780209304036909687353114597137539839849676005796303189741232448391206108240956531761997660408379413423520326512851663496084147075897939039668413545932291403561124580119697673756604446767543127912832770980696706614267177736871291776275413324497809179052686052182360585580247046812919567939971493952770960140344516718895304455839269869697471363611840150442430508526071375966796309229460266260130826520529824234639529227671956811042582140492629557719742468814063596382257539822448743996251351369303650513196733555599331780777246787834417349982837116629114380800477898354065215258300156078066181650091618742818254122669933896781667835658083266807871544255265531493037914804752946728922536315874793726800541850287483951989800735635004120400679971897028918573736317370780551165460694831609385089552613293710001860049024760049198569860186962685623853803399226594619069257820214464544385292841778450019704182679376528349526932194436239408598216522022347282953951332935900163842860049821925826610438093372948729575725140861013796086748942579100459557853227344491024899913752482653294806682414348288187687247166914000285133191274559260072977441066778472694289602076165634947973865300402356936561247250917794473831344234318087683309185505543533619816802752199368310336886562619932260059809063376824077896375486871279756948022587316594533897940030509333860787016626108672429467692135739354468120635895067333405053539983626617005764032575028480731420088899733036781733299969687626193095428827367790485400141165306174808353024703702284479223936643440148406015535554189351800961682142549839102291121430778632870500231142298480579104935421754259884483439695150358978915767663124027129960958829724376459758122444473249912687384502573012422251630402114952693398760098358851940329438622613741293155608399896872569435932519043579803514171902247824506391787469093423173378001948422806601612889617841275685313673401834736402481230132530907713224146858287773631455038393957518045506764211359107720495151774139244114249755125669849546670767514275782555483566513903435119446660248368350885197209280890576460707346085998135661520450986159045734191985225395196376681594586534463698652066872232946041609547256755409093386906543607037116708186086084769666023140570895961918666429292199999687718122570489949787969521612868664883479413429943585159859091149812547893033567336849271253372558898062859389386422116769767035649838203288318723595316998037622515118784654260439538857730139945822068667386771700096398369326184503793324409518231865110627241098009707547767318831031822367010491706547427868054904986744065430584344474344080732324723273064198760375109874296473121804778554253167493443653706578388258149023152592945906601041150336792657548878600357197354353383906924545953095767186353546827964750974466829023481892978942322383108109696982182376965749979604899380681212563025799438798437346762838490040746347722881729733126657840357522339941978336875220835592211108693114747167326950468153605756651741585496711395395528953920250293220956938071355761975573091486214735969920059557692178244311991136626866446663423958563225363013607826522090856800070017708135166444094420306919902133778576030371541760120434092848033381482455234956146114102737079578640597248856887728538805545563262143452006920167745727143081147350272783106871501677341495524609457192587385431515971386758340017768801248289207380448392355810017912227720879526711455991933484105815361747222050970082768294802706788683154554546028312932914351978517302957737951490395360552424611706200456279783367138377095892582348296211142908856042731048333827373505110299045968074628959138547827064821049720389256251832257666593558336705548020353686089794139514930461739551167245504820389896229972127347152740469884997351589213641657104877746890560905186779506645793756026896000285876667536638724304519870521393683501092862488655265318540482031343668228725539763744756332675151868354109985936015626635797291413468842941031689066333815109448659871065837985065362245398338928919291835472126701755505524222164604358762361307042964928312225379952721183239074678485886387572806265610815923797632871101808535689843366016033181742820845181619473842819945065622680522696846824319527872727583121386885608987139995221599911877543776358424476754855702631649811573931498850310603313088282111301303816575336920546151026139504665374109521131138948519330338409166486465204819206679233244133961652103417747607554327306743438817522432660963972823333121068719994310604977509891402146420483592882865526339506304018338533095842512178077439941181525063877423783328669387274163103342372842243605371051179645526414260427434885457617561810593145469020488579069806922416333099705047078782612900278229171821206380909848690856522921116260441931563365040573165684389696556264084890829543707860790993869926529789727305718012043364230954050892711304875334109532603507962941994073409835193448833954626228682225468257102780947269370809662418398008445175054784064647823997017441441308801316969805404406189337719318812806843681549673299419957984911021585849094618595370364231422020346908331866740771618008347856804439828885928609293975545010588878977421737600395710559223833895762862298912100432773206346057574593196793943018378409936735707487035222025124139014652832397697834672655696151645226538020823177459329772138418134025594981874093310662495809485871883221794417620695644377024140510618362521344158155159887962467259513226709838728220128718398154863367173111964028277808555350335131415606732602661612350694973352407116978583559682002895319906071632618912630332028702373619772129283869071526780449432828261825875644159891133976448763865399605338936476197375271191911586538702114204765604264187584909036112052125206288396904528368200013294078706352750886201301370732392538834810830753186105872637836348367665846411771181295492867011527954821222795517892273715149053613168304277084269840662592724716955295333655834223928384631418226843434682776954316664980665441236122339316411216635358872707016905195202575402945959547436399096764089681673801269684160340003936799487105993659903553191497703395429232811773837756482143432356202829279607482951739652394940153057958299175521942866712541667783824488379301918046524053352793080733802889519296928823149381071749586364463834246812038473887059014294265333986037235866433163790237620213313843188835384196215583600818978522683695050678980888033677738162395581585598502217140534080735981578406300206147577459006603181219340485373890027527383781227643969803631629914428346654124475832592667743113376625277711617668163904106956106509630918267422507943707439664947708048582592229450731540717348593872411641961793217914796242456596181609824457562892525030519340188346120736827954229082861878987312250150806385845030031031522499058139560723441141869906364482504091315377446310668708874559036454015111860112825402711503397240714819770643594244050931100524616988511925727131260559230453713072696033874756599785628255330176890432654841281353359024913916006177372922777233529503823059772162545745690787099529298867769105801067709194129741688457009904794592461663154897337319373585055637274392263059144081318005414872721744272528945641386403346437265964345776928606662468595610261386032783390814356827762909825921419474841616585563949805740156392878287188467661052561022108587069779878630486676978701356236322945992746481347040259986740421040497273285728700402435373384260506633271489293081625853135326609201357537028062649993754578238142564994402846852272030613802073534410673256959847859210252856232450168210047315274921578479288872948584445952764969534689265847252081703768389845511420138953578816747924625396225442360682962915745598085261558783912332301105146340359995391377888093794408327091590231631676343979500546197768377082003000183601553438507256568094946035230093681016823876522144409183270112581948060129120152309894132314619603348883854804645234377829384785834360824669280286503059876226626595306971950633638137029197533052773345078573747398916910892471373543736646929694239679628320055104230100816270002849740012696660603189234267059537326584561033693258250022441185503666181512080324266661754811722166685191238908748505412717080805226372933844358029948819826194938440644808573275655316118508385783107910668167397021650687014220709830354174639818123168711616553567175982755092207851278787709234083279469558685499417169715386514250392050749057559340066574152114625763258132321861361628138331919745109949214998516670286646588109843506525022482638881472392119980756166116419970875933095049788453064675062337641299541577747119887524532829522788415105861045800691509723459953607127373513971994599448479927055007711887148481122241900029155381870473632178822414754466315793824808886633815904428793057473026667871386970022189946998150890976939466408005961375877130648580507668408694777611647196939320999043886898803746777462716608163176856657523136178453868454296164959176015801714001874502603134816547308772067473253687513115967737976514613310515137457896857230908242078032590897832662171955701123359417564614133800514394388407503236665461926042806165449506894305473694746289392319537177005678774672808025931401420113387594594490504974959618754264480229274002963964840816286284367123598632675190583185910898963626222557820810319287384450220524805598652464113242464293792662458262153137806176846601504476258593275036807835076608672041329156993111851628705295755043610351996786837892696389840375310353443201092021490346470806914672025253349694274403499169524950401810280336251769040452274449919523793623950349726597291609909390141118590445407715095231590176835375429634221720000634222843096234230053718366224867221555078045292371551625623200661038055120376486149398434632465169381931643633486780660394852205132898606028476468435812984891400606377136339196615443309469410667785959672047383935165744643844551869815704952620316232206699308181687374678398262017969622356824297213468468560400586492669814576163898262177304069823812190605698714372737223530624993539453086204269960186136882623202618397952984163512944747892364152053300222444368703047065091095104944264908423837346661870449316161108218143449670652791211267871816526333403937004588646334116877958849498728702535058196971432064022329449762528606708693974612016425051913283161293315140877489050939281709524464968678153756912120475394047559989096312249712656912285256424041152773584816714132967700496518680472691463067049202149334768149487300129243649456764318854676267103512885290956552254751599916459323761471653684471601556075060939384283038769382345881422808523788115914599469043661071228102955542245467691375653245617004533623859903497754335390114764160033092709856639249819076666205227235933664195160344377796830852595011865557892914835121043223902408423534057271472674180584084422888125810289274351153457423082817077220080370284966465706580086413315732047307606142522841434671765107872218489869788520174958147144141266881598533598476830251353439265825196400473502633051345458763218301737144430880083908492093542322312986001652786081720018569673842775217285452668349283242171516793093660274199208955901741893035066264737638368610113293390630779903665355882954066257402536342009281116966947535962940173050926123901159169499797074917889329825817920279382835191057673931286718224986473476177185425430337642095000012147788699192715810658597226391097095063715805429658425313807172928957502592657051854026223678135142585539211843702514081317809560314802093553583657307018070177732612445815225243752116082844258565097943890235345933552317815865963577860778135241257226007812730319244835416100311475192858021423087946303509793247742477923844291875749147778986501799498203633589351734815968968358216487306122717290765061557716272090249152772568785315745621970628747481068554677821951245340005391413893250903278847755897545793742363677805388350739210205755013076661481229572804912482641150226632192356371206112399238777270654520140608367469375570184559731982291437978722904669208250090389804253880419599420033963579266070345872944479445257613525854659015916383536771432216180579772237695544316096837496159203221136518585594027530402406403153244220891335309576821243921430285636857972684329154452801036364244954400513928158603594810491308546798505518236434999359891597164070823411350043873658395335741301083803086509851554497441664015717285057762285342029341230071851185944263456692750361581428689663681427953632017630095624518566122727611474492869478563898385242703629627840219413459851892892785932467930602076770325563613292230954004591717875662446486350927602458330501522651098698453399709331180572770027755945195499941285357562697626366468503325928350373819539801331494878107517997589232502267013425919013511602515832227983818583722225828023134752669266354717685992047688694823206475037871827929712004356500721538730225762823669490858771721815991257756564208526392648317988029352746930824219136410059056339200036664120021264059427257402043708488687938356454353796941774088446881016659947999140753386533116074853838259291910219914399619577651919721979966788473280385547996005934296850948204488404261464715704696808766060300971552713161603029798022438356300473868337271695925663865554646046109891930423401457157877279079571452018544820994304064967836995011748281870626290291613214392268159050622946953762760406499267603439677656159389148575799871054206788350059538225101705728184127305794462514158518109786029529268999356267343259168023580063303344571166588525279416915810686484550351956398614549507603165997249158113088597190973531976385325951813688682961328578233965623028816425950774748977834899226326540564113080893859958909769073266402298299611477291194418751702295349874213258541928993626413069530559350391723727943101203819188194674911200313904614199485479130349286757698173191850286798893332953529320961099128612244002057307300987407412489061200543401935918710828314404783745070740590947945557679320382339042919569705980248199352622461289589203518412807532625180481363388078925866358251679873759061545302942919684463076145277842063380282112602825861154086363973300443183986986648483392858383354686882167389394390909025477907539839119300661109928699166676601220295106362021560912534076402274871828885326704475457454373524266095761490622551952871993216900434043298544255268536846421943460850944654024891456581585198154358350693738136298662185167997335936004203423261112101846719582433449295161811151365214169487023258493992547129381488215074592481939634500473952804949835043276498602236275375579239982794324999067399406526333915508553809404620348721586319880937232536492313913154608824205108170205912610884024160263924017076134088629037743468200865200355009308211653778709293063261481090629851795746501345222206963991653188301924319429723392310529980074636606567872247023135601225996550580994203882386489793092494365188271243390212956494087897360690584619919450828299044046473186445651408299457591387024941228881998853674384007246417276590154074752401988445088294696132957714208104530816383849648562031558529723253815463163207326517897643955311816027251987651474994075647784870565888916197907882061139417072795232413362128744561168142010551909838950546415589916575739602460339051562705415535572967902708391457741149581317681507513799846034872274229013503016003895263459267665967625887625278863968884898421579700980556130853207373091293983941341329865101823559257983463784996716157640636887537741090497235961453906762652189329692854958712361458506321484721044353687199767512211107101316526414059206025407388277793219322400919895901979922690831659558799956592854818674464874741185297568759915883780401886649092942035179714589210622693107394639972852091517597778966522480124954977668096824827248494958026157736120395286439196353453155839842612216200610221366441746712327539318695149663187193838656300373019699640842711774947529359399340897416815019830407253235184222998124835513356658302438717398951942981002594973958563588398739505379606252441822535849595624484400123285322463550996160941758370682867933394259138988694297440771281140524313036351244651790280616284808235305579630274595373235974452736327390716826897807588989136022226146932812331697113767418127803764897126870220935662475133377289023176619465879592789874047836485127265164239313141686979321967509262238918366561360422483178870401196458506462185148375903634252352936216565426475624132645819921556328438221614802429791070784187977176274763430101846415625547476658580651502570542061027122624914979880989326495878233519775497413376241992808094365511123428678982718812801889060526508026342484299455325745265002757417988337148190828317036013571267379391034707628589543025564374845229788732597296078569461697224129380710114719694600036667386600556504991809950244554231551107840787274754648226281232852818425627385038456274346006807675143739399495911595019310838569066329292607689074573696712505717213277045288026880297572681991595920402896305720831146929679879929492453763677000132216344760284687808803348645484216217757516579180618635744323384534060287297944576747671860936847755520549542728954539735182912315496945260026935151545719368907330235115368137162352499110421635818958169996400999838530814194777400451385156267162486439784055676068090609272010998461401217279293582440184230679858091815198740173585111032189542261992366517091185697989813637374533420389292507974444474563079648560133834419189367699340260511582439995062839573782331433376801025730835911914109245333442457163640563498566360750895251079298974264843927395829563284580236420230121419565207451218731455941621313794256733497304498900104863377501490093584706622521059328431898989590710200397678610525698237679773660410611709031414805549553829290884559077981494084341515303403503757839149221709063123726119733702559263214780540393870190037036471454599066831580151024886993171733702581252491573002993934683182994793557240414860415377621730619260536896315859291622614690247682298242456695082925441780335514512253975501915689510849425069088087946045862728525421041924816546447352962437399658940574690259095694824178528506112662908090081285500381918280212821331675711306396332586371378481994259207350169645449591801242027124237085298377063439381938607904522295524045516321857872424412811276005557025347097784707675952262801029671954828435275820427493729241847579983128836465172855719474370233198064122473655171415533134772947941377775283803234050532531031607841011671006377340900968396662200828023568891943221596305796023528415141002914301200647560980422224958882724964335205057728235127222315341406750346983818200781767761985787785761687047295175028504014007844877207892285535533163310404584199294136754098778410725550267248883881408607214520987635242169782568529808921056313305180635597929985608638522613616345368337245143516343127693472159039664650592062021296645158472503043398146206191821514833011151411571702489315779142911011231425900243725803853853011711440331952035241040292226956782110186010417501423154353466458076505696491531102696744246917495398709430141879402083216992467662310039510347228979998903984917921321657266293986081621971074359538378600366020355701673722946118843579200735336863575858730567261159706294408323072480011045250889188583748051948553863423770672938741461604785088288599337013140173078609744452784110985486537108601000198687583499396759590103305876882950053851723623577187356011452797671125614269314625718438287251316746742765569835393372250176728060790170209499920144395739611529979260448903023180421930188849825443015530174642510467873622348859420532150646276661321644925793771275332981072988241237904288598827010540513165256243195168184599503166171185055117311087205985391813113923661296992606622941422452209006941738236658350114736277834937498756323806940316763621581630690644691143386367650444792690878760689466430826036418797533818884073941816850221428468947220049822068028961581284676234045658960940728629732185523490134426124804340722472541192245707879742524977576222075188662510073346832638961507993937973790766445905950969840128212669022528673247351971522795494707214552197249091897514570096653314571083700580575832108403260399886016949709066133253999410863491593087342382847593508470034052576447806574957184674382355385473693098668461726298452530942968073850360579400019606869476373273986747929867843961201318543107789244385466660672103902064286916063671806535378619305495003184752377864266318008863574985331032181806086853141094362422837507012735504257128448699707847502790096687239999406273345332359527022062210328467144008477110908331294618397290443557084322043673266523743473380115695401719681027359782589674580446473873265506508099310727659642586288237789175774649162611648737900179071146624381546597113920065253420935166780884596527422480316448070923552346616782821053707731686230088336317058452660717236191770950242181541915049265541561497931558459611791904849589285402605274928096728174975423916358574806586663563885351387777814502660020135336640904589238438112532308078454377334234033218266044987690774177117283233628131880729190524961011120035763634979214357075654703061973014757882946934476879929330164883386406761284648388220259660212176961472893040640410630320491278195631513428655761229935579990845406228003578271992858300865411202454462259859381418225756999389798280025312224078923928981677270129576334860558816815968936867698599002916264835204540244712041184300813347908847648351053205366765790705388676692901404616537089783016244585130382347229593975086415376893476784661690937155087263067335448047695483673701580537201739238042400386141987565684717841708854833124841974757291087655684878979933254241525441831422989921242166963626106108837782973848680654227507797891912527838501055879529423068149181140761031487223322628180964882297911883092533041608813434297238219269701793199998539479275395311273963955728375642527389663566674444271506908555244583437412483563447977159695312064957928851225450812390403517003254773196129448623894385611623432757328440840639143240830292216953884016644907848102046820455875481937286194822029839763360092532295755227292080249420614556416490419526861252719977407388090254720915545870379903172383741188156421861820909286254470243249921044059037871386925164908836275965414516208027637021456963647901102165021616858878554359960071422294248212344892101183609223006459249650997453327469599133537816577177591226691858825851936264610190455247371082634269001013110534314132108994881306522752319060092557870993768797722925780551933321929844729684312265575135142286632125102918324759774383364949920228927167559272766119989958068462685561782252927009584367823272764544659545324203593377232648933620472774709575431425110598079775757865635284648749478776265685090225351728213019102814776538501033936347250055436206328406709690171093183292900406288968015743294923302602887804958674499797071135697722749161587585840608596540249100611215541358657803005004346042229341566085500308214391628373862251578547840309058340788793311536777148536314683723153010988415180397847790779880267383030919927159071900922773340932015893526761282744306937194065878611605854738180398804373268607184717815185723679768782552048962059520595843693903960716053238169374203043551983743048393539848733752118312705990934851130207671047221770859873036421377590793621552732025834021764334407407317335348237825088207786699964286428012950246302905488888172659362891922673773047806219526785298020143135924912177807414554460508394528939443987993940271352763451231258295736863455278792582022606763978862542596698318314536132116740032382159668603181219137519747467595877447320206611128572517807831159333867003302433267281614292244724120759613981931328206372496668414674294106602271419192814325712171635770983668456880607378417270700877107999469347773576052037796150450743531029079995608904653712624710049844218450886453538830729289916234868124640024954118767431304041724702457681211712403218417045703454652294296699620578596190639059553705512445006757454175300107235930242639344735136677193951987152229638117902303842587197421035590953697686166813767755397732238532889831606920483037380977851307918312176211794036849426221971836609060411618984751514323091436128265651374955478263588574105776050740341726696599391494320644810536792145206138259201087368008733386525182291540280615564868139038305904058311574299104612469712092105080665326634972270930558749813902724521169970150756348912263348381508775122970495315124430876510396115551100704724843178404484822986370018533755735315761354307381559377776912384624264938937727857903544299964802428311491755602765886817165716783554347679621494934293455175343025190003393394395663567239994326393824713343443803151419909708128303754861698880488757470823167038312165842478989097536284164980278670646829512459441527790209556930272410948719955502838934592243850769993589767167913585678118531761975613122247625002441720955290156289109103616360436373582524386081112131558237620708100988228972239283575938449619688298067355925028646410547819125507012393877785575862350242855321874833714339162456065046536690724013456619093657295773477981907132027192168376970641793424875568562239965488800693305087125980079816574276912331585416000745965214664767126000808240779291740244974552489867207101600736846763041775290159143062005568762802287815511606679897489608446912003320317047090661909484718335588814963486289697536496053671734004671648842922921453020438442647063714400747335491275162580940950798051693085224125726874538440040672217723074820784664015436414192481157766948979505544894277594766222258463624971525495356155424832206175518998455852644098441626782120482757777323237172559677321252652250378647746923738282166374338761929354106502881214476707324785093700862122707265092842358259231411023995970704683558992735846124511019026291907911429588049840136857464729320377039630250336622289959664776669188042013487292850337832591524390784851869387839813003425239246601602955017498631432933410247382616429789939626195505573742591196130510215564710640824928486299094564314819701897088128471922445791343868286970030147292311220728487619391468803079206591428773925755427372610653719449282904283130269288280508320973206626458589651274037392363688387460004281031638633555999596651270374386273227124346597922958601026751989057180266478648437835101641616222629547560890284120494716260909084142286177278793903833512297644987897495864721345328376479851944177610195508267763310334426441511389335206301034771199060554456410342798261671073480880951059041678923664191652299257238472043220889544971278057037723549694972494292562462807914795205138785373064188072960846923991987325709294902725346562900624638683863468517816790918291837941019406617498287286927323618565769749414141618050800785032805779689526279068211093759134400388984480950615930703810204425011253913531564144942085069996166931508438096526824099352616170246174837363019462101616452420712574536782792757118730410993819874134321829652051068545830590559101847663448304233992589852497984508708714713975014912671464653106445544537788877277637441201976747610083351808670634588427969249752200128230432493881633754471541790013138200926023634488679191532953334405656138557791029615273234133452166308443235126848134118322700808722554482741245842605997267457626718975124921729590851081565614917542718613640665519785832742139458403883261960665915509296572558019542326253441284888271729605753355993586195107174675125634928932626405287065095993588035573798377043541873747790608123053602495169070803204128388206687514277800833731024842840038873789136954497625869528839956413762733310197873769759667045675387415231386835932260016728081210872487512794678633516198032492505998009017599575262564874084150401951883198529798486821547521888543651408220890499598134646344260399237642242559485740643780234075159447719154624752017001790992270445820264401892786277822120009837172703983008909811991102960152714388144783927882255038019503836960534248886614762312052585033388559480484846799540757185879334591175856215780893002061203811772552052964113412398093853772831267788891699487471612232107895013370101580704818811611302561331795939230927299788897807063909290621462113927068625161523369749350952277265734694640388977421735831852324428082714397081196503112107632151854176283784077283395974323422889151577626148812797295853224276530616553320048879394971759082271851984826444095846598826175110294989631067909050173708175913811167986365381552742995414041578514748594906941130229982816965375251302030452547475249704188033718531882568569231577877258948700638043328385963627250414383520833664611774263748979413120676926657307063169642674055742390423135468638709269727129683458553166036616881770203377625950192680535498430389023893506128312158108717279186654639821790614734358304831819959846852117042800735510644052757732091303649746149963167036241200570735491520284600164398785937356589370879106745849534400344526295832126453563571718781970342796001630680639394885753757540436118122976203761117537422431205766162904292600511214094121519479224848202873903597753101155665664693241765361986022755458944954008436446402471614505025366540937679765341920558387634015113217147081673746289131085497491602757666688743258384521984310829970038181726253405925294057278582003437753858458011738602674171228519272396104385848539718980862661079277111872874808348346833357534633402485217759213535868249990934370167064044728242644856624927229950121344803716303295704953184199111395003347898123109753436691295667592997993036898779432439335652557003306073861044423284151927157168871811663401924000952573632345607636869272401835621457642933463234660479911514861903577881853009326268260325217988319585074753024779218542061676620117929047593161965009067013681835883825949337024248076735436344761155092976096585590113887497357854923546863026408200873957066997956663264632404849892550734647233020570200389226039983741911221925650182877852418336233370336815183009903412424053936160490233835327107567393478698713490179917472445898189837326044226280196503169372062800177622988657650855758543609462780024999743229609037234330521925493068144033930302687036463490791945502129256248588617684293182893260703386777916523504968626639429760077098775227078455529707646906900874731508315569506309126989313628766595641470691936964120270429652231102099636444848767931525718351343180496723131385266997856458509603708302752382093787642786690891970343563378692226580385934442546062852247542919955992599710097939696996129114186435922230980649476780823619889887788881831422727977409542040289332394945133992163681682928229462077327156970065058402821162682781127362252866647818877053134233157653728348347654533347784862778687868769768814456906929225579628738277629525157095549089584787673696924722193729496947870049066523858701891296599819503812914378997396476433679380875891454762105821947259038508279077973278086396205479504742120303577906805387110064447409818048897139262899976361823405905548438554561317241276805915142563737941020711053886850905025555880432953898427559070018749928465455210784020556495687819205306479302223590953410060399868281957732363727700079852994440594338046196439267410081281734693627937053042407075173614817642615993249951305001612368380028640719683043444827670584045670911464465786997065164630099031298271149952598338294389389793059795119108773035212798242839489448326446089276957009250218025854444836750887333885025247860404060378285476526841416419133559203279476207850349383538845577346604694057940724681427875976681166419994714429450030324200417610960391366208114478502282345991255272717304470022362678701082607961576011947113140202632596814698170070991846287951457796472727403977136144454451273511792797125581842076632615673458295274339939222841231340464841269575471557613900636870140997021613991761953827847083448140043938530063020629814193237657125809790306137554294355505958080587602786045066215293765553533235230808959401441074400168853929344655181059380214039951500292215889534895056775449085593445816522876470112628722201694420143114847327413784937087082650991947532122013570272143971978031139278361365617817094075142287859147113093557467284377663078133289775061087399702669246561574009085774522530242186322309030654564719683840872577477944182553548334271646463451675963900942636484984508963485807504993535078078234922370993014755973934691921842837536259360230486195550458231830811466393389732018631055285741499831370797280981437792545241954243226732471965492952538931997720220859635804378375937121639574800218633375345631283561537709686289914710733542643941096598107858366628353239754434583932622518585214114176829672878295311058777573184800258837288586122021436151591646385203396024164990439663408295482647797644748079793588499203361830698494271703126114134548953955422914867069324587793808704286663264354978091778342258699276238706872210905030955682006674320745532020100950460001750595147826593632629486348770992356347376229566455922359336491737371646197379378599215058029962177843183527115218613887065503433572229824158019240471156041660540172353381128565022221812914453664649127004391592727497498557968851564143134123930150614378313639043720584735209515059930829181125259353884761549812594365252533866822594610837497340713776534853091807839963272115637460484788359798126685740389290259019904708801327559137854730915018958170784956186305763509884332234155752102548914600559411838460203688070738100451324703227929949677088723138281568869742729166943229934378388956758214589650299317816063119379519555900028609076729270600119132002473587050348069576061510583326939683327469624065324670820771714261708760210445493068491764075916984235665750093061635432414665088005126806712371022601329159343175899788454802339025261011746261084108158459115758758956267427268680005499962202741048010608594176345997599002070984226302016500125308134376374336232281107236528763225786914075059549070936505140195831606798016795665165668040625609409854058966920104342012057417720455079169796849163438567311932900610947147115669629133992306255122150116758645429897121614563734298038477462932676173024131191169465534491289111260727276038809042731358463933387682196187245202213042534691282486877357807063461890365219230066267167522413862476297210773077173444021707780098515965287088388532916349449133573809319032167231967035230857912220792501934923063569579520488254746852670347420854565234713400935531095667627189185754849118109122069066707642695933059144334888545917117978046181398547116020131570725163374051433097430215109376172214801630573070699780699446119693437060041402426952397279074628021932489763820353526866187752217084513268996940629124157341471827795354628738076416407697109132087271273827243820397118967923066475580278298485606422868410437928411985698379966495661551437144466927261316697595774813691695393867752560101307184887373733057092451756229916412433816332715405964863324544720660651027006557148961898882856595960439957175039737362424858890806259304670360264621672017009892445791179058838163760213925342944360768836804884958443419430019689900134384440777594362372884384352222042425651046914740970681647286839156429896138783100146801022656563641268540331387735678084791288912879983155978522911328824538806866099788947658898246005143467027509995226777271415217456363497534025609005180340541837005979991780433887878947584947777212940876444724763377039579322871396632538545367182963002702150010078026258582262841249679759001470765448641917178076588226638138275583547964792386081550836532611034132867274691724039938663155474648273533030094639401505557233155669471713633588362501373000526911706869929375662700932754190221589733993300680111005885873902366925690936926573862896602317021406493623788991768276450113423416161761273248108207110387506647567995998657906471991900052491749162201904956676753783580451929647805023184512566284011492901181036191010812030971174240656862596307209293390869143633382907961524405843342415705087786697905744008017765469122063467032697335046841202012463330518074931281275492070543772576211422467181022297469778628710333477923697980899151531224246458669299456723540316370277384644944520117243321411843607867961533762085984394352060520663052264077414392065139655035241003763033921404236529901414528696999166491563156579271144160005204227600467378311399825198067559499949935160545074194968861573686093423176644400967901582236412759787982486862928988308309535453728521504025271450380087808594910948815151470574217651055257847284141954312790756497224809277071835108994455404842827828459136140888832554498913200548555514291373054510165323379541610030322482421424216217069312924919910200835273614671975529788159224308572760237599827977121240193163468304941380642957894906502140385348799348162419247282542997693862869979769889320111849076390241767540138096211007211682681062784021886537128254679005066039649515639235311828653435245482636158052848997357065441620812380672784472366869331426984604527167544704839328277388478563681058282134574205873311459246283774670243282123934265010944701324491595779823947671719804912319107738059007773969243500088565440427919350941423524826897071766134920025782504231020587603080612786266376558295625458792523385450960030073730779634339079822715424349490209389985920012248514050826450530127229494315714753146325899359095311525088299378266352439654530005780332694883158557566889765110770551817476704275692191463161165292621730275899692230813667613315375424197710517734369010122096245343573151067640133367874104396449984193103848459501477350602355061046391469589613717063970135386290961926209139611819806769180129603348091684848826015705645262516877299566496629925309451432663607910149427496569035746100266003664173015962004372106364265478764146790683093494922186689693323945375687452450790201393128888212519289545030280746260450031887607212908181624056039881162226147789789094436596684753325899957415255982721268876825835910612322694763542029758018681278142253517246015740620266082162151290919461964761307759732347087133407439431812320453634186509010014127207955415895709566347910413999670611000849196979242241715214550674489063983623830693304524363981243314202532643591296325762507149204537826027616552510265529236805860357370552255464185064529157767049680807084749697812931929518879756886179228990147194257994121495130107797193710953372419684187022543629598911073936221300860201890788421695120873008719553605292378166583451844037358872047359420427386673565292118976348478302194330228278481109777436261281949848419347619986740202551899374278941746155192461568786565197584817419998347536636470839209535626728399025534860412022201675356420705104913394816539302492328961666706293150161661421982980121052709725395696316607994977506794187552826269203645778268098128205446011854420673471918376089205233259290185289571277738268425726531700672988373844937682533109772587889522437094286956933701438064209755114370648585095955132795225897221371794719623705048842008630622025460225123456244366771416527184018436105692933732609632161352037178914310689489006137916500787280142310101233225574653272491430688856040581571479067320624415067545468535617744431772891636003953957026663778041663484532765286838129277683474169914498318488298050750643660245812614970315588580948293238860658521763909660695632540916713353960151403167244403727097223671440935855332921100731937826721453921421421417536841117832249784045747383136857303842275820808964848082571355334129687751600992113029473211311469017932858245543010217309799465435326819509488697407582455087549706104571777262564544928123248164449892872683532687855630893452100475769096055864213173326911009464845468332071921532405427927990994301073645205719888577136728911126646511263522851615051896180125359019920877989485702843840442932963948012761953490351465659403608417256400426000778324784644770619576406895181380370398096977579439969756988808392559837936376966845265117132689010342709544211790298958612457704951413341866139289718047257422710586291640751806768285311679460650320432987214304150651809099315036067001118401090566864313170508398547615852903457276924715943346854959084524032786502470203355277360013675610063469371467953904166306037997972801085935302852886532955557749388982704698779329351377182084300203767725941429806597047362270715965315949357350205595617506840068339761639864634909508761683977407267433747474981635194333340204496624638579329358881187328359603716123466490716881949024714896946482570693815296775706701682320464510905820447685222073832073389947470352113905721376544378910550654270939169357694969910919386011297056741017276042991334991267469868157546279124651949888051677032075981767174965785728824646003345452097275343131998732667681457785922623223765287319046847873457117301114563760579904306216342420097458429464253330244232848236666907900000788847487411966829858101903587843465071029070334103737136177788275523075618750671140155551805066431905882016200343427784384244730770869576713881054509927905447484329609649823794680679518112016841918564241916794378081788271026512145079890804836662439032121471863095427472290371660874570719145584893533317696040004482676988669393803863255265592943737475910361176179591840807769213611024481707348266487206139459832958072125311366818168206526142761342277731305033265393656612830861926664944140741342174661725994328926316960638513003796467346372979109917195709484799075280502870246830393321501034279958637916766188502571169137449401095178752922487699167564772384770235610458358382674459500668561353162930153607801779170171199513807400606655614498467495427595159765334558630003115558542913564226304981624293100400066678995666582281202684763735292672029254351072566649327728133851207089157958181440280433758533789836419087830716736647686875941524012211773215041565336411716487025158993099579211166482007201407893009401210996517877982557171189927003997413161237387376871836571544795002754636371856273455403286568785808415479407402116371027859738869528833362437089233289436687692843177446415516623647091525672201908473591693119290222689142695132134202870682298352537879112992749014339373634594892849978866592836134151324640490622105914147722882918845577393600999120266900601283095141837029269559598923689654224206849979906154522466929377740525366491438479210747030118129950471135976653087113904608502094918302207775697537883624299532844852057574130716968843899915094760140581773569492413701414455908259044520089555232814125415192225763664253157697399223926241365068160134483640770330750664247394941774579628728955621461309017749200078251629572214796064178873438265813015267753212820784044166333921580422611393782794004245185564558832787565433287039396276341968714861139138967577265406379031510189030363583491656448469387235757414200634242258176499064693801774723562036920700414557490452669418590601681892571873552739942068365680251371101223721784212650202921900182053575594095632935715451234843384081499353013149654112615564785157388712014223503982992874617816880473837142715107608208385505459642813252583660511835975257163587387706194634817151548597787942575044461781574582421935122043490367826970730269512737897571458643248159906149203716152878484216659893503247934019087029281917923051915826692929419274123816700312734401953834717290517088142044166379682622430954318350829793471518277399050773078381806711610679395768142833364139422401006769276915992256727993922245844667253425234262183505842293714676488170090721371801918392919849555891837712637254089222813910952574982829021332378305913482109440496150135314054150995924923310881795621533426608041011624003537137140952701081726027655353266471564678947777269396428253474881524165270925883672188313476930472697414948552877138504516992854839535410682863134403357831209004696009004741394485238325144184371816000966339916416937000028472959539304511907357755628086850825782383044054653630488862277048083729136492857988621706981949502437814670587500291672302431259977649398730919581364683234790460513364785980607109675747831510013637935834101657413189394778095860963000501391797591399156720441388808351098035887126944087217222001364840290425600238543226827740313839869981673956641725232555324903409025363176374694710498524977173867782232253330975740584326737806283793002142188586766480698839912949434062173153033788530476153496805185615594869072703114140293008594124625069657395856202544641737846207555360851727488334448257151207828958527515966212391748846544041973506209208279285014405446412049561352208500607323837497553604013646073592829098980858023020667604797498498939196892898380258098788343468984224647764669824721143368109472604451541098994436802139702948816902390197184721077243584184022394393176186796443236104531483569976904397171148037713546703974532092106937871242314699906912078036647513955331854136062790540657375933636094170493261674509645575493754800003338742734001425144958259478512228808415459859138644244459159216946183647208741226732368891082450139774440867148593968340126459697930577095814763669828029510644393062039241591777180724817537448157191979235090183731164381802106725312043750588803473248246892660569771602637837842791323520853864452734839740713209415257646715067274009045118627886107567949590840422518766217854394764913950658487051615558840884796817472331796303218265312595097459361007271949199612941479402983620294804060388552557271957970750444907770150558241551165416120377594943986122136422840530211123843249681274751335233699375172511470283799007371641936219424518847990460643515909506938606795053441792597718322457118790848038971362506326778136469836809107507453634083070747418067066602470220965194704439043381299069663777582633307543479922534042837979013134776227849655342432604420829338367505202665790722856610792883488151538620893000771871014538415788616487193097366130461590770544660717265007052911588317022876444301177950737228409839417799538875040784783905603153530342748859987409200035440435363290130132039029226519483408194873968244534550980840704135950341579232904806855502736646382804293998465996539988847493254956516664227151212311347258347660731602092164609416248459947981028790655547440954550825887970636741321071681237688456933503246652570713735169619171927452573763765486985282900852427858842195655684913522099079912813897780928122791847972465149232253051772535251617818547766140114768660842763785622743889805995096576160032969991973458501162466308005578787882690538568973636467324805566869151447323485554689743421844674495457075494937644630276526664307951854173800777855120642399049513341162339444042623913742580218603453746239098863063533010633221812436698062102155117518197455668980625946956674799860634605781966182402610624968165767394910426362821261424647299489694704258245867367043016915487819868226410980126153349830206071767810990062555929039970180862378902619318038677893670408515235056385584099596561970360338904800161008929012872677307619967449680928045770944685615604084838856464610719086357125137134059285415053415302806412360340053355959897128536201783795153032607921465885922245560239512342212712202318789641056785326517069718701512464936558633947017825163883009221939511001373714992044241218173265868245319803677831736910353556483768793748519428303447726916316016185368904965681936699808747132060580192031547660382586851028946506801827334760763714737540560161825347644319664087661004607445941747543383410200411079963851398403303329901661708858503427409437994579849610618840144422323079052552319253331239637353941095741218121688293167628738209715910278179256766607852774487039700909476004269625140765048585227174325672947678076570730237201314357160881684641977702838135144461542065167688571005960578971922018896597005483779949862736514408687330615317878162315866062340721558267298368231724344911609153278899392496587476628460756313161866034835943067400288631875963364342229176490790273524627831099971011775439438802842033813560668218402196180685564956338625284634998146957774926892699621206929266412844908550091088722081783411901917963715942954554421769716075686578391044224441073402047647282455221612127220784662715200640411627160837955610843019249384649465762876582229879609542843030363071398328699837897201090685724371064579049253582507159690386921914535693651384126574454027498176697513577903453389150670048227217328209926244913317672756235342936635735954916700954820330461789820067014759894698849107495225018380135942171789221448588602616265710461463316788963301257550880932148879881847283928857516604065150270529071341400817918924523858422684424864983750407698661715981211824160575899258326187966170296064146803901064037473553198175578391783941530933472640269856350959001834782009188393592451706600012547198296389512694001535189228498618348013875452821171083742092175231836201942241396447744069165390117939334462583915201955826736391800181334716729008389941918812901987137571209247248406756647551922446972784937296019899132937211674720973798280670902766311526136362597556791535995353349932568811363980218679531965434899403925555577721974499285820948730559687137401576216309364603791586414359519037122916253509206351206449139538156520620240742853626405134761155187208177714098773819807847936361594719715803707661640142416238834766362624368908022310576860241070412745148224075062234242457564525034039120932995638488228702921312921586853657878503947400977123976108091545544437480397063361675972035146434709769368961779689290841699828079651349344464566085259445832716114482786488378175787052891197283153303680122311325886785846120353306338263800557069940393327693950898961312284141768997969425159495548255786232102085632631819461670878062021469480632028007592148994827063734995943481618747146756796186697987261441706103239308544064218947379568768994531737558674035307673290513724223728299771258726287280427430845315553306441293119466019754717237677284075498219289293706729005574338577535546836191255108497486366981661059988108700617924823419424710655077333930334755753436846153302578458969244450234856063808596403509794393347582364963883825364848940670702024428145968426138192006675312228743549192233036791495872689216863396267190967913968131569543547003567942006842435308802260228925840870629387019803569027674378013152528515511803073823914018393856157913288576860779970787573185071030556226219661279920772862542274847242357963560210181755712628133751390310809122155463548920184242174962691720134218005148073406397170345895956263222100047200808971519742209335789894280827580882167064790103698796629422863464354441265406907480091135606553061377038484875374316204803509868196377644808925984392757535655835766620967374499406212112776277053005781319052619954827604555032366700574813847448645397024593448985685948742169451831464325318668510360895506002605897158004561285257121338363297889614613875667497716542809868442716191783306319845972262921263588231263012138132387464437553254217897489258788195490619479208357797158987677500666172864331545968164526805292137581025312061240999390241130844558767626839148370083976344575435274698146869106592113150962556889187230022173561011321908355299089159724092004228072398167217335638503726199285138573948961712860497077319243150382613913435077470177358472177574373760272037231478328467735986882336801146234266638046717593931012660413788981678271400802198285247560130968148871313730635741996068854595825067412832517013231652343937723324177412220589998860197933281212890415094361065455925007885448633521276222392673274355318751759440238788862028992379084470870716524408503911727255421616177813501118743856065220790897167472936806360547464981580813983038905873589120051506752358783521072004514429695137826603079305534825075217497664000718230505174357703836235652636041219141310997693631311834273307000581567359076971064052392869349201481790813266267627855154756259849124332457347510157647680464531634618447581951172953131740132542774929109978253757778051697164159820893940078104602398019704545652391461238507250496983732179743778943744333259343724061911298801870452724194326050558130604996596732649815033293522504579765965591801140203018574912825450917138055880312257197033205999486683356412727223270461684114722986353378256336788811716328306460796991757367171362534804133628966744154352409559267057623681318430178097659626834322932914883140022960345248112838801390223060360901420368066743107742756466619524586802585570172723571104294767939521118584406886266773926968310694695790690227493951049317046282676114876335418257017351138339097031848431304899482046583704639494696437212974454118695935192619127256407678018302936628930844075467689711815133714948912638674359465658310346649527944949590179449319263240504847121714769576202256068390162519857429806088726930033024993786949607086519502885111751315401827318541572133121661942891785154330705092325597775984687601413762362098036907382964074097664376292499705760828241361207591663413912407484717149628462185976826819724385193631464360386029843837831829449842289046245359848971601415337473532084983190123140575838704897291057774800849390277037006978619374531444399155444047831270674348077287639313541011028501572850298521618902155277166149073776229033996099654288589264076340603837881403447915870173959763581299276753599631848472013041366477461528095033036709914487157469353314037065059650879568932957058909358553209718535309379887881828190448346868634196478396179937418844756498999298515117457516028129245872177610293363620186790283825038431708720277070138171257692012705128721813461902669689089276663708341292656791475070744970575452608204808758061377815295587660385939868933546255356018970925257963269876130436943444206256752872421034550983822064211916906009913951287867010256044629679136232097411307845502612101204031257083613320977786905633982378766026268485522114208551523460448372496419483410520795500753272224211621911106288810919897624938486386676816803818166469080119451785405600064268937403153145501111915725148677539595368945296174405952998794100590531258544246182087837936441967080389162123465059902414491769659320271241768890622560962568185146685921567102052229140860814512043138686728303915376330334413966292964429765109279802774522474633840927488529788128763606171354207587828422956788002303936527037750673722377399520012217779255054515883213792875844578465405522490349035806446166687826505254470999040718603476039644672165428146643302239814361000926671797219765033559334621205421588989703287160608885239878983514080397962954101173488805051253683175867980942313848674026886743030282138922149435811970227454337779968080404141834222623047256061605232289601351903159497083992633690149169028598274032374263969608318039775376887675507575818138549845499510520815252071602806659000119223554534555809963885133811154122886754226305105723124039477243614477416382420095914351237146429015509409994645621053504180312760791715357764513548353730360463520665163237366912909194640325932001039943446907307529268055023372172969713620142719135621497130975525091796309157265288255013974774851737784384238197011538362863468310582753714850544888455549713814049194332722014208923157658779917919276333893717816287680144714362148321850912595505632936207849202488476350842295686198297399021130759544754377897890575537956010032629989093698848518245031047283222427090260875306785463415725604886475995182477189305567943072140428851909628137836149432680672668860833697190394611925267730543821450844247678298126546218100452171371346078269291868525929035130956532428600000478563187966454691880499896419099072085077716283253663340488940785014085711870390973041828513132646874713191426160009401005393323561102409959259722271576934071490945938654698639328199962302812292711922237711913777345199653921219533462893983293423455528903448943827612890634252525295556304798630667991590210397796580432105739822515697648249896063977181206085386213801702677778442844472897484814799776155781210889857500490717783441250575970720614240864963926928339120265855123583321512381954570300896112387438381033333527556957280412851772256274332712091558512524301265071030638440817350054798790873122769668485779027807466658281989456260340945272279555787500737493818276298383709591430175406133570097758905757035673708272783257427832077333246460111544585770013810195819249198619897078648697745199403255681002443919648813335705293914574259691606344138721068093066177075791294501548335913286313934980727219513390568123371783151334676640746348820922294038537180793416863125673307800976593238036614820771049089619018540522838118047469927086568326706239632627549495023757049659376250009225503141768375021760848853385240737089680034247547659709861500603527124520610880142323275614550533542207368572635647609562444484905884303965273631843251571933290010060656107572106204029446160325086155698160368788806945784575358423663637851862907171785866390432609806392305484964121209101753440911759326702003405739468544716332184769753507348453391938610232437419142668550148296024649931449473912751005661527654695810378711276584025311462791391418443702094619393743774725555555990851940730322351962173901422765119424798352086950576703263725814528596593221132117080333384052589422792645856027674503953930607542557494195350272354335464644375274222813582037096315366896582706987227909972291541533981918240302593142717631152630908500681125026624099593029321103142523898981541097653640779354303263364027456624162055920961425224957149307900098429270772527087212145435987600818355645687714833929455667665623559298952385273924841727015879749538278294979667465277448521581799515926924216843076029814772755328268754942737972685626644994038370607424059625567407900913179485955024980111336093521460330242387048828662398566873481068119391652927192334290599493443526885647693299613557031348790489595811234274824625828401507630728236842379401880947708310313645364842482442747668970149410665872301807389119491638587460211060341963708594845063465152356663721725314391791845916456764359293364626518712201685193993346192726036269035746499829272944667525696685905375966349927158297588380805466513055365397411279090935490923010502739524473782118509389837086532904917938720206459990622195908250005164421684154525001537143825969691470811300113028463672052816348657626995060340016865422728765887709532922496398050580267927027216973461168357472692610327402524268806534058879112548995064490034483016194204075203358167393975288283918880782839182515008430078220335786285991425407379022834399014683409794636887998040553270886514649070087783384941923982908875097677229040529653098181813865482518938949261143281984969106371448879823939795032575973195555115573346306321681299708395488098514369093243350330747489569330371833544358453527291895736607919216310993812570854370266159610539508185138963898483011893859988580745765700856158743563120463983591906515420276198179853212924532437595080515693292749063226664280568209681725859043179964630575733168916346119385445323524413175043136880097826519057681193940363878217511070198459617293307696433002281689108496445645755559390167304912101826532076244067224394457201786768888843335622220621643960966563532037429870155554692801159618041408349196637728942322181595428544263306153013943494051054190752189932438764149749380785867448324506725755710908763823334592367072902859720483937176641245325634479291248897483551262186434810427670340935113883276024140193784323299949771377740257268407928423457084426624202535390891757054383597210071487448520467918952415299589068542879669342964573234225994879916449955321736830433588247548191986249708095706717172446928216178056283087615480169788262870233714463925878237644985526273236510271529641865967013502789026425712002953706484609612167260854466618459226287684741804158717555024799928472329199202371363546344125992959069646476499285732462896323871504598960635145711653603145498455002948352851184960124914275397047089310302771735190253765182504574052228889257160232255633146566933127405480332204124585976300405932311488151225637233739808296522795859947315780315859697151858861634129428820066218474698627019813933861551009366515898147239816227189422620799420165573777785830116724956333918033461269261077284565419215190352597603165326450690536479678929895929749269988474448058844457173948062429965489059808465838248913533116004184542874880145745081243579956758029724548954614900372710257718461058936267623860220349959033239428045176033688821099708260117560427520522961550816520692534306182846352654644433574841591388624316728798047906908138841108154412742697262567923974069674907174667123619525013497947356631998660186091996090066435780548543676581302907743088764307951143021722891792463279472172064902500013312536817745745563453771241850317648885036092089875030350045411512428361568610494364308544015760169379596455223579938503288621920915170516437311348031392877131542216889873094877084998001506758283373206602920963355820841702771616242914864651810585342687038699753268782381699502653293402055086635464501950349288267056856098513955178568332008094434143218871926507164632518295253356890265749065647498469859878056452096071394656522145866047930844388735345671260390145033472271248529499105822688066718980464191232171560091291128662254837457244256400390179249898014835675831375863183196676581964187052045098184793286590306322573847312453105469289550436019350645463285931409125980015728305504600540393509670338604390648471009070304362872644378559401954866815011991876084406551529026726670253934248764716176590298315953478804510654574660881823173532233200144809078954978726629746513858798171039880836142435667045000552035781080057491104751196986559507350639505384678930404208758552747869708468916663048476385876312982195526672142189609836303907238247416623389852026654329875542951605160391667946894425792769432247446233856191214156428404719842030303390736430955158005905988665611904023219443298610274910081084405143208517501987968146622158488721835229043128914522195414476359355748075457240807523725684665214516138986734673665343634337682922985007548909000448080423337110666732796837007674342980751550217403460426229616028940126845989588549799835301061252521846717656139868945720975044489256593503653646664898327459455551599934280818300069875638308430292322084479606304349234202260283089914148788095560162398025947301957464964110977898046729795344296094738600573622261727002952069842412750630430252489640455196070361260104048090857992022175928101974528000591204927995681933963699157069210193737955270230506378225218029205568052900696396178963029425877083967011995728128601403143218897868160014136701331056186880046730450758778236983883413065046205490744541072982716469596006227427563557328956129932105357173242782777627821709664020328577904002938691005707563630290450546125234096124557694027027028524359478178041997048972973388365617709279334993952074732136184618212928712450375690074553313113700001715284816882873753001871706761154550935590962163122305582676518749432632754156264565023481767731877206093711544976485759015799655898628806921874470024928881033786164749214901224082115124774960709413325763849472885125846225853318074644904246237394062307186467711342544307760674633094236855610590111601066661791730223502492830140050624032180253332062387121966756871395408091728114225194182822358054751331022414919076740957778343607396301954619355168994235638888027120675394743696039039691309243534136824819855701610036363857411736136019038490180810337324640756135888810098751007607783984160731822067700752807852495977365472132640327137395981919036065983246758328301778825404275757634203719515453140004987149485319277178939627390036987612345689597221033739050663346576150570223185777782670921427254573870799477586469276407629187165837131710359412740589124128544554182900593047523619947066414957726557089322122283454830075817688877146069995117341649408803451204701234135394167059968566660532705301072526516191862723076857313717895928203762378130892812754630649681498678759393382472731085450160537227785357732926643430853447109123833788295991084210357757164934660201528776504777982012536509303750655991897285191592011022688415114508383118624235467394162530686918118278430526383321933649385022960085857999208863321833294377034591869753050097071815256997369395561780520101578767235425943892811787855193743427758962774616512785745205181757914434867811780523354032248202209051960958786100844051938113754887819164353984635916533349190962825024462960200748476280201518434419712247339824769226582875683823101695353021674469745368971882374657273122921247854751761146392507130793975422510318660688733590982856543623358069518905344378743625415945874921684778591221703527599564921008354480620181318369216835865079081666115602438383060070312657880076027169926340747440421091524553733508722218536671547019079276969443927425344875522940805654037805204083302290295003806839626452342347597188007363173112054560284157606178070339135436662320692512227960892614859545256862823809111644547293136395204929054369499406383196468711952237725279377814348377528189478739565669841340097663328650796879975229597004087551588755079083087430531718835971722027712160407910708721187790083385820102303754812636054918960559540648563724977086445022319007064475847591652479964671245060384543205864179714953099444166589873679154674585901672259740794095824764248077313316961860370849307251116394863544287950747684364208280527371971970991521809378299890066430068036250376781563655074413583768653550510822826202908686146942600532933510691722463838613787400724093546314527842846161239326000900259990161563738275415872473901088535569396361582622911455648639069782555438131115780232600485037219352783198758454388815938956329127391493646606857370499569145893771141246063520190277348190538407591766330201936998942872728507932214088465854404638774982137923020031133581243104286052222114529380495388716705375371301531922795908742174562486250345374950247052623467431846592686797492342646878371431142578453423252500167683369734956344991849303764639963724380892134455302990620661622124353540565917304948022575083386652544695810659503187934140857792764197036276804350687913568407128374054873474393630593746423949860530407236105517131621492057958435455205373371006500840963984142003189574081584358448014800952719689241735469362954604530329951931774221112719770914049400659259764255790886846972960930564453877125085657790985457825262148699983578028132437644259976886016012290246505145318299095975326741244589895609928277908075756012065763787042784686422089799854091096793891487008178867337418004019660068158751613269623992267474133666647840500138192554117335862160213160161186098349074286241299422712708487310729393216882290429711774720322732071641329388634041435515745910622207212774138482155730584738716146929168331180965985041353983765176126429530988222261778447626529134988648774852656860747265529419675427749791790399666246320261825391047292685177474993411175990115117086317198369664405406736261816340945174068596328794254529860260623883606791421568193883018714861673815689185780559181050455292782254064711908560909870147388927767386271443668268757759975555489568318967867846304178152006045439605700796110582660688166813190482139774599395690883892531599368712124333634959408595688745671869061058234272650444800279521387716968554884430088379998667486826162429842316237548909325853395488074390609899095396735457889553744635728833400005893764113286002049326506739751195977958153594437989251099085862077629986399688344929843222684697111264707654025109244684221379178227135657991824999436457866519057027734369980362913535679875154247486778927680007947225611851695662729641326515125357064999260057184041501983044133132878890696949796942474559999803812386064896374603939167438061389664122988459540734009740513060479203178551508808124093297536418881364179289856905033942901729521990491589022850139464823775954098105565530122170122742504947476234813376108526448244801156334145880441532374387890538490582223689127496548077642475889934780362631243317439080782340926893610980010305973662272232623869764308004988457897737694463102869109100164465789335201165221279399626269541213629745191381788795174671645582426476170796770932499388121242482440921728774805423060487168770427558484891719440796985238659141632306254779764758192654356035873191973538475823863801543930875339512769307771628034763621841945278236112107724880597018211428213036990497289951776720434117116322377971894543717587977182653187310120940522353622770186303821109393880432499171927179298786211596710831989504555652086036968637050555091646118949214155455189426831075857950579891697166439385702366427131536999957320721396107144136234760945472389781527065023570767080152014676012908778543255936128199743035109761724594528093876262802064363460454085821672604917363458342798349923655700805846604155947120908719816447558695536680881133216510577219630785122495563295703817145327359774095962685187579386133492253239560085620561860590177503523740360212127129543934404743183078753654304307236630571238609547329347189410417045087816781998596567982717730287388100957980209951651162902636074702005164442590888000382403208721452891673942979788819786855912435807222044965095287501238834798170066758276576997833552216387932677117616025171171934934164724027318835604969268752714028555699487574471015741785650462882646711577555088129592493224022372895859653897172625121928119719435798473504452275313242088229541962560066417909705517826179902523234516094927655318734742209543643441352855974556730051819281118716761102749527120393920921287237339871708252546530075556613042901779526937163884790331468514960382107289003311547443528899393894474232634212529702828688808191933729323437744117973503489692438482630085368648158692355228443299743502702306852845789229899055095828507149338292359575167170778237833458126393597895368552916714376538834240200882666056270687017261943688054582745070333255463173007253543699840279734902151122283466317771081887093231521701582818538560198181943628283658994883239906761969211202461767437803468845406627791274212002295950404739231488729825658274737368368741039853072977723312331884745990970421373375869387605180915239294850861971634720582737493260313097973755732816520928021081812037294985572059889682813058711503727285824980082350539714865062277599184125842963697714801782506049244243397540024390513626864337339504762657453163671864029133098256768294923310658233556378230101868686430776510292037299268843068611651433732466816243330539173527758824603398290362916808488560367167558834015450069441604547118082244987159515960237315411459791809454358475740797942401139997388316733558071720391302469795915805349457654790818828073519811937179831811535353165510173606061773875811132856790786727396775427503701524527690910030794773387566836039983818598769093160215336571953704243213567060258713081650456781880063592075106733549440631016482684463590408889955115870709506449000041577959455013733145708614278410196802814583363292473944955460532886405550511316995662621791466989431439897575180506501938314111194436283333988168608689512836453068805928338144857867907129348644290783791811954587813778822004549578901051311478736699077091808078490242472816656807869897608117270934629739980227032563196086340733204141003009411177784144202226905107652554652157617583879166170616096590006390462408930765583715734248864519296636723417427894987829186744890135441830125289745674591578844123647234889738557141009430231480887476342731973433135444328126430493713456768825902541594887337326739553006421354180849623552060853661023593401626319277624079498042922973427739276446913981926869140357204576302225221429877765259522906305691731694692596957176695042250225423175224726542054961185829706118156789450849716523278160458909747759741656914385899900593219668762162057324380877551109637680218212090036846790600479071812810944462786645689330896174814302236388625358517858117037002691188737087499339183456650526393812042745237276035589957367294059572006050517587129555344363258172158343785346016095687914287395993102937888284680421420884636234654907832239974798080367324285355275309317776751734300976904061871968476770792612561891534793846596457698221674184377777562250080117291542557949028073092261127470804705370602204550656841351554576450595864498865044889646885952061334034558436456712993022725658600062557741193456113882964873445838251873370518990227251801859384499139461735355192780509870423312643825496214961563280826539402637503455272849745631471069581636139584268334733433980758081383247611571458238696039895317119573671163966854907901907739417357264528563312975065862981271908724211939696124469519146707643208694888741602653394521352307261351425930743723672411522182105995995614043485939317370270729149230567935084043083242634564511561099088466355173644554420095571489223785069988456250598728226639767668001230412680191454755898647040471639168803182233905622929378753398337717391511545254267535997078687657991230716303570247811386353247590034640208717952433779148942175787983795965428374005422369362002299225884354511086032063633929800883093902534756589064183436508825360332355543455372817959977028833225638882597715165132854597163110409598825152415051871470241923367032895563502749444279605979357932499628423742573831142010323319600345102841880264555846298907121031099745789551346088311231428073394594898839527117774930891049708415530054428022370257020878090798730143471874909273868691229859310704107552713179723911225255208094394389012472298350492674651542256280200789058473653194935902684641196467713854000446318111716451134657498183496535573012662421217418225232442522238355746848456567949080801426781991094543277690979964667036062426974289627596673254366520649823471744095945868598325198362253051203077228840928185555244934449405677891626252314764050341033546942331744421896636794286129197900181174401244733724932085132086383567237552202242261507716495889879380549444450207223413720480939628567475860668928762871613862428745603637725593614607707135183039307375390026923366391223515596270786226475679221781534636962830574995419631905777030514379146556666375688677561917372360563801256722090222121478871364441574944863276384860213454236776107660876091599187636729164579244494098051498225725703682498480030008999794533255887755262329158192909781174149921768245104771757819623322697209105113036223291857314374689669711839630798261880599595451237529461669731348879683415418098413440833702616825999231678975798912412336479259170492801986157464199657016022234712829487506174101175290788343680498034541131443252208376389976265834567883269742542069377037086993674794361411050412026005138964983826792451918741301625849272738293442812291815476796149441849767103425462257772434722311435017481506034669905035668627536602523801915352175126465030404061979206391218054586264106467272949887639686256261181919141992411779418914435887162148786559428554569498524337941961817656025876510751691497810337428903712663749969890800829382803136164699458886039144009437499057832517822688187966179731472981084850447785800758857843610394865273794419134814343351568482069186026615545054615604399524319303371068460699693774023895006464486065000800749255429400385958656470093599030275409035260162713957508828624757858769295274811633901777730378933734578480171773910943895070748883761700135191634616125991047761510375995051531054637197245640620780542326930418853493709505952039324676213818333015668868011212521991397814008208613997876243857308168365853085649807738256051687204867003765876341255542955289511147602483273574942264384991928640496438839561153452976161755684038545802589592817241077559328654042430495609380416687320776502172718998674944882587505594349762455003726991504255742084843042067496242227524484009542962852886588580633625913095605942940654874204806188612523020085719484082239891830212018958057845718106169058028747287490860347078958459942238421792805095277581505173810010689921866858873217604889457447782499400960372537892027436153708702822472126747530328750196653716176504794561652682594522488942786501514753329903050549032177884302069193104879111770284821210086556198128773373711797944169377639402136423136456005588311767612058035823610947914923937564572098282835032266080344179867036122120933169688281350917848200549163065537246278397537023337257536590140753662728101312531570343649085896794970892305391886592297315784856305304226164842502444871573546627281692105367556608642551497107853744606849792829816404193879451371367468980335195159309501627026448281343204821841345728767147084936924629046672789646679626185398742185650851806173506724194852688438857688258625278739709379933229626533583624063534774971946126774356268882586402109594432718566885902372811353856998499174988987521937322463483097338222592271108227599379048181503570196275113397286233609409222782700997642170573190077815713127026915429622806770344862916610914940237038761129172622408782939582449885965877334774086073648430092252377887953417972251276002711166731342592572022498925172043155733363540985885661980766282222016613600334700114559210300840772269087417134878998423181218682169628847626140815743080061940718235350964498830771546209441985453442291888986493071153853758612482013624193746621599380198610778425763830606337652680955430111533471496274659256012301945211357481613774742852051532340612818986890636917619520560988866275956053351171313146166982661447602575684401760365045762580051837769520763669013244207297453988297182732841092629722775426745136339967676935739912471381043053060342933608098325757558858929776658450745617488799051981550088416192738550984139344356826894679821259721657592779655682493296087666986487291167945223439408675841939668012952997304286879506177005562037241044605478491579652065425843724760577254368253266388578306234625334379471134959877815691779046529842010403505140181332524774666299546927852422575298111742435624987659286273239778616639308298880480151791729169062011509496537212609345981710305215157248364756873184464590631773465057159784406674232972598376609616078112497592695658528801911939202030042800794393483609510710240196280873750607893966899765790181110368339722310793112033875413171102449804077361805612579411225933371465794342824808454694023364435425293377309167229519777001825731313747503990094232292444904900231768523303422360496817776248395314980474933516856231956236101674733975985683011784681982710999994000262233832181086335407609432931063338153308935872563350776582665384769501114636126418747171051746714370013847139567849796708396919966341834598917648518129056439083153459363839139043255426738767304668093001428056240476873527235807708120734511654735028211617958467845767908493355918401332996371541030421026007410713471760962152957698783274725069019449021951111201554154246317046715729604825535307362894260902208631877138554434357643990299273762274594724745316120361472072052126488928414470714082993441785494815285643142288060274844525617403626580722021614664256767327020515504304529879989616470696685051574474564117462416063377364070642729066516594165558577356262826204143416515863163161982699571264569049267679179301571031325609504201489524650251626188529407345489348447487021758806289290926705392375469321182712108506888443380499997830708518390535775008042724872345265855385459323573511828504965505104630343345913914430752358034365242543806885269739984863199360897514189058770861887804454699752577934159389225199193541244044724128344232441168559097790218701973496185321332993765398903831560792518792231621459680855015693776955668632855706391143332438901774482921782573297918571601906168258311674709552963601328804939097681269154847821348865983738437071586079485278593432932871337680553182443154706552980596495235857151376746426595787145652950176451433204163261088909509025225759681799433501825152334920651224799425186350642586200357163621516440423507783624534658870737936023952814354148838005554779545496082413274045036730961381183945730611926445677038980638048014997610280226442358946480438214276169812679274290937610453824724053555775802303443718335753713603520579694395349171045214287987366252522359461788371193509413759745254949844661145002602433202464752392779399606673488791083457689876586365504749853364682999801626095011345908170447023810649922044554151688175165747953587616320245395155901238513091205014976436653328955777278474970463861088366515763807511860174321262698692095068301760999767233530711329379446754557137086612240700568675540804089488719014264173306456533996754544674210115605252527741624070020607461667820555031489756573263221595372972110413255470141906725433744443643397389112412506267293282105391679196590311974914500294545500444099710135630488709100105028085622013449802478776972321586787132749027307855540756423561753251810015791366839289832346072300802349380948328125448355563808194852909488116612822194875610692563722646202817924379495779978102707682638318881550205493816115693758409320558163142146816828280073479974404232861896218594176495805019314377281998755028390764673450675876154397311105074129867800419539381714766394201032838835911077125544746774182541548987411050476147353083681547325151563458348548317348790940984571541973134190713464018839182180415022152941770427579318221708791262169876474060744368933575775298166984631879696719296990686998593610948108191227602511358960329033074754890206054713499325755103502856400956016144371619324657328787872758145795138722963197318981320600411228427273770808815781039839312189172719364913836907868692163810817354392619090082265358686527529829228911332179553532562289578470326921220673161730656018176613298082537999446723646720398547032713609191119515586605424159884934680164240512754853562191377924963319235556327762814843902231515738159722519199341541662859781913648017990448018941406350558803248691761494444596215416657005567265409385830188296386056861753485761609712809695275791206244434170381141430683572684418372395913697130238734462685797654027363466009732162411543695735183978401984121039974902225770853962414996783859198948689893931091735104256523586339298733701791200885005192394874575855651919858230443080172438543595359161796459043186260800170723103569242983305615851002825113943081128341614707053508746919841106671878859419875585315821351253999246855519326776371894429317637916327466334030658179660245565490985936562812346901103081437174634534355949621024406646043516363577644461003573396548161660167794722716924415111792133519816219254585773887334940585617365723285857345857671999901630973694220805618037230828706924861690025289689705261248581802469481250593148679112504033827949923495006640314575331745924445483795558763965644774764371653844884930714964616239928997235519179972492282347463918229249581115552222714197884233814532676338190734870777563762051684342567600332231397541883774803489584107452659074976855403195854552059603918242673900982232723772743500516128178341428561338805265405994985375763897418984527399984413365896299853547348279960447969028546324940593779270850535475263943686177375800027326035549890448489578605581002099019225536472198372473905183729373678634267336553358748681952517869100040293635628691166668975713913684415202452334134412574694062680969702901016778019331834138808034061210961469920081106183666391258920128312364764367999127415509734381324682882198811126296195608655147652892140727670064103552158587595841946834210059868574068663858750299341019865353842551765147725662968182447069075168821858811943137371120647377662802799275994707387627740857376107434798819963540226416848109768287913178489784971595036459319876832863686109532674087088728253310901602723416187741952839613090407311662488037254130624270692792524295182774623984699410050260422608096458438335047784450601504216115780113638413814279229901970826048975865300954107011046643156092806963742611151800521326219556500830267080855586872370368900004712909337481554543104116076037421152657231052918149945756603617849604696500653071775992472480453159446744551048759776019565339510160585531425225502908785244525283920013810465091722057414920775774329230318298881910161286137885953956953338882105054285570226698301579805730757073198624963139958299204315883807393382183819711187298135332658071238973533906877604594929846229102054938905987473903860849042615925786973796702147592985870342236230313267397501005338870623963050053521034937073967799235118839189092282161616315302316981170143487823726497042089077765683884227638129577004312081191227574893575589590537655948646262241151904537383955663179508307151948939871671085237734581760360663875644237456364618766709508805701501443195480170537634039028026172262267543829119045558788904113420635642392837433012521344295545952603588141417313725963048741156548541680550931049721370420810442092547305896039526917790707136728779185429206932280484193144180344057460294097357144239900392690074496337166482284247372767171612442517959739861602439497598123707864720084189020955212938536916543927245841832296527561949153659825790220677651851781847656525762604152876505006465122675938147264466419224620893954515056167137289735281962682555547811094544203530858065822406388901894913415273155114212704536422517619927552995255841214421620428994383812029908397976796852925610830619649624603179609021724529227158172444468107852522391815128078946979480381960142166175241310280491433043987014881007501814450369419473318565760197678246751514537697645850445150198619677075647528982812448549418883931615143851530412701610034759603088041914702761477467592163078430596526033326532046094903266849895505688002504136692298864963441367946517435184829992710944153016258040115396563489099235883499881605991134160363476977340777417811192761576010249717286938052802736371659414675641025100291854892944161269238565225520681224394860684955135170134383216300305971259087500843729076774046235712665344824749702896112611133008550615508167680664899872021377643313149079860749789268013150141303222974399945812544824312372782218481031380632840137003288815890375604661269230981067680277863946466571742082225508149663650713778929726830231738869256413609907154096029370727923620518247784768407761179472960794474210876152703670021946311773620795584165505697407574171200934994044016989892726506773677444548110207220547660246582350099648443150025194292901251462824008515895717889203397884988268754166555210341857058513545159727286256072671408049009177666462376367023205630763775745239552733188155531295528919659155446737216463058943876742582088369509751442192454920102432256933534534700574051775189681719647231480892170499877929594227247780260466719888400234717724944433225113317016975638846295715421402211412728958440197409166830119814508042093588225033819560300151700874866864704551658781117073298170172981969008907714598380701137521752089940817803447195238597152193631127546464625988791527980930601073465000953454094888375372904961022335704184436942070221602200794311725668757994632943820135872168225258109294539867235012172634869594545786295218762176175558267069390155172584033719319330323461124380087194438906920680154759472959894797574491981700148182643062291184222603520165450189658662365476336812876814995881609194633729390449146994950318291344182361024078426875947149406783253589443121825521697260897492933099742827120153766414723824630789942145305507379686024889762360953648445915807448024171234760744349747012915427929612852823473486563491804757826653638662373538174835763016808383544515718504453085203178479877784999986367099865108662263714086683628259517819793369516495105925554778431841381037445890458360974963253850212380575954969820812099449775888101248925135144425859217766969551710988377165410261035233093717608643372331323993419491540058058093435200931217526863955538547597002481217774703701061637107566368110783371646988824165870914940407720176462133198818958238094491184906527338220240511454944644557537024971929741277510217581241537407259355090254702424531838782482356627373734901212720799246193491231671857963575145575244172707985566166875230195186016699405608052112035689281986368811779338728061913507317776757754922944007963590745317816998847944442238595255111897647981966511269365213825470050671257403368674804512713010111539602935354694377423924383096759313987385389079604727373460497861563460150833898589828905253665949517108310478623751764130030661762613719984509637355050608251292709191457567797818618412542196188777016896043393997803051851672122819383242018521435365779242160045156598107765790875083821602548938764258660022693801324369483037096177773274049962363165854585267468873635642383371120476359098495810529171892162056413601156454314449782368295641124336152317174778057378624739785277916562926830453529623048209827216668264221944565557658790906254917460380642049127320143556595266517132640505796686566454121934070175128249521501158433565406033022622984213288172531305102668543652557714439917562003828582343825281004086943408936058107702383514690339336835620610251695477691929864080598722265539135241721025621161248062270053304149235279121132782277187496768287280589988680330767389058591920375535846250978839998100264056732731733553603108197990702085351226994771953988497408092888102725515520344285399469375775719706817121442237718618662748734779306129626590323094887149919338162762190207209501803613426555019405746792521918569547673618432864450923647619675573992255275821447828003413922001649110351847068794700608199070234979199929589665698958976527779212246485576554634387553515183285652941175084336067152002627452562969419239810268672244726046060563643749918171090101504959176911127518549940683634694257952578086401787567762616788206562398594516373964435523554542474734545784564512543926597973169561021288897303168416928425166153196167291640252874493300624507722989222611679131491973640489580896911625719683983879790191349830387122589517356366024481534907038269532576101843146113851717830227479839114918229068460746207534226044058492412730849691404308503482269768411139318620970447966217732159287198928352132776591922778082139765847726131717444511101535131444110266414161838663949986583280726591034695201096196830371181119543313879156533386951184122147216986238484328202229352722764893850611776706987123546657526331770412433953445444603082593659917457404046523544770985258926879520627975439011528549294282723630832759619123264449299548915585849113855895415608857643029463627059508532305023536957882905706083289494503134545237904447178575538515998291873046395429298775520281073854845300197122167229583083136091663917010651011350723157502924324236215322939437486506877196685200122949718593027521621063784291700662209443274071281830173802471944471318582758584815785313931340867418123075571268680527003562013725667222238411901533438985894399887901968031271048093955732463353855111306975779430188858847529409707423858792982088674859931326086785744618566281524528429637904860656632355471029669644515194379531985293017693857137843011795741546188578964750875618084844743034950990268806671488439433468465106823141213860180225784261053479627312749178616530714496059655796433434336631062579588841715995709199042446296365301872995099576302430372707540440484924573325160211177668728231022878269803870808160870267017973834779868812984642851490688229204314527399008632394808624690064359970879919598780198914990430048075666431779377860276783330025488704357060570231996885571904598753613033145994712274742722463993351566312270878377095042991323544376452763831942052065700731494135018887391139176279964171688052940746292299863006020409535911995917337688480451299643370480830729620279208053366145358090177249452786484044438349854044705795338746912872655153762684064398691882428053030070520574092544034603402125482404755053814609935702907741397827328902624957492184822572728544534191670789284342534709613317315822442049680524791064884500784395654113713451766524574837221415715663781032615442651610438436295401017796567906352148579439284405626765184472829564524840181880378721955071368343666329318274701432944257162764837147063813339733013359956587190065150641319545748891097834632979031665148988119540914052397315059464732055940979241503913680974880756893172272735922479795853294726753995314521638098591186038939544595134111155021796473208033933948800872329217436972274068815195834040028608079920975873030692810659702551550451838035030262461530353191115463924063976758776164298699525502864672613687570884609616872105811018757423324026878024815507248914047894055438029423846854474897588396841540329834431680634665884324173016070024030517963957660286560803529269717960203769755824782805965135836883287700576438498864372788393206222075806174459162967947248120838992128907090182751705224545406918605740737367521920232369392356076901438288976518227864233365562941798600596625409305677013410724709780745223970412271609837854375738855879331811398820603301300913217004070149604360630998669341883626412197613830012578634081835323765341154862285854600740002272906510203903521177436877069055685847842147125098638802942923083244429292949744613324070288666874556287927443945872226084049880126432921788119503450060534553924549895596874000604408161000207941371895035684983187028261235809290303179555382795927333969093261578564840453478945693426029062735916328637034682735665115088342585103664167385159125505195906479178521263042971103477784424856945710088160811917064293523542825301401982416364950948331166308064178301274235396582097313394611033394405967627530973297252188246986562326609144244028131316172999777330666024764658922869472202004926096935076575176136137600070083272194924498499586475408449203607159922718279394949092197773360160503536491103858991599126807945304538783344534717176841016430117608643056953769144342050932285346550379415822778979223993411996693098329109208933677266901612430287707378150479029813633038311893716846137606698571963496833018858393530733827831607107202204527384973608285497126933988565093612430924089154574043812123228267297664646559746440063444376328745828935401078014241260285520379260508963291560215665328801232243335104576030756140278391553747959312131616320046023657480039773924501241338406427943411293463629316495479758895156777287295144267882074284911567417595526975075456810560597706286985634718579445049126695370178815111100074755066199149569590423348199891985589824275737035277382238240388861189447705936551514461785402563451772852154706224382264316026526294693940928927376934486332875639295492905203407620972991654523638825687753191939932871569647901416704259934372253750993647551960308349763932960467406601747992814288730522415629788833932793553930171208767949278694337146926663887215685343344464735898469971113457857958481454257910242726540388696949028427707352917782601401547866119488606965004704937410753558714792021195939224137719020855552606577425283103118802158305114874403838658005267287251643270921564702790676032560314573971452495624628397011132015443534289560561456635643831283963589913686187721558297985714839089308753486527703857364962669024038710168852565473829202361056813423203302042345961218779350804638285038880366111707584313217962887815972621083002086077905383943363191350922008205040321771409611511404816263638102131037294369381402051524690358776323458366628041363005465506933428855429091404025974058779644918855251120094773338493247114360837754512842247062272891748811029430551386096432436997302701642065715407969591320235029114531586354873535945199798375961760100384979172993606985547369593216186044973666224950645085572219781518761666940157277522682638944060666272663362255771797633956703347212459737759628267816556265565569898582628547741993730578350186572356719717043562076004777311461813918709749641803369249682446430383826672584906596679745443827744434071155990571069149582997062635732725498604405710370046616759847613707529123040066034441370625036497933309075870220632554615708210797508415433560857622312847711846030293359742542112966979538956504699591687558105764974881218995433818349683113737798226629991890819789264518086278797283992291718487072962294441533518705286663869566071156164483781123204237838766809193775413336773942694129762532651580251847244279909996109252547510224697701145726281265405063070105146637269822541572005780199732192339819131253298586271896445241100538030949212074687207686403911898308485932665036377911736577276585251593381473266326006273635206485879430211037717147314524392010219923382201548407786289696486323530313880746150751484894004820654253091239943003904511218067131904163129899995538559996539237220795698902107469061890369665789293256041231754949432257693876740042648904860869709336567206110686483829100231019700785093288089151664099697977772359762975348687825796444404030366112723683436502306967735499471543705934201364543930167899778474238555156380564086320687685685286376814262167370676644600155851554677302611498179095336542726840609496342852787482910635600550977646514064166249715529629099621163131930794022277259769908803042016371536306731699133676825769533716714000051302156491213922293191159838039795030310993280532840874549473313550751399478272090832140964025143758024405170706033161017966248249709198021507463166040621963604069273160193740018039626227584960159395813583238019165276824550506194452897932213952936722383064314189888930328162657125435387408510257153693888236416307726010651520051440867671995791029444795866374543369744657092997336462034006875066844579368493864842692274182339495117110348246310780040566575576267668073693653751429678408169214681305915383220877756354475330160499502625386133304880793096660531732147832569352061997575445643756899857532399195365061082774452304392768797038149432304224760752569480590299508091868211694621116385568716349607335050437284882874409463746243490022034390380570912814635769215717882299575684438366722006860305270844961787387004705257932516858325274457746425708921786430672398474676190217246130243633072474477456497429658477600670824185193806503636955250682700378421080754947057147992398739897670394182420399250371575133567785836634160252639260381372605032492326229810157889163655916806010967570423882976085978486452246425678078738210879865251977150327840603068691390409390055096353723492786186574537381581359920197368231837279647788850449040921603388022604922644509858941186071930749502170053868551145429136183940577796226784322591029905676643093364962795023462690941465932037047974268748831508061116128488509895953480738946106619047545762042497407213601386238143550186355766332423045685464196193445807826208139756874755573508626927419005352039977205110389845862063235529871931112298481438070402925399674571796570341902829059765008106103710852757092315769502705682478038923695114287654652051589318583543844989529528809172126713380512943352211537708657444686112201647524500148204375846936132856802743904852807598607731053888483198570778964393225140997237103794635650682016368934063170685229642867482553365820431944319170458055602552792709680252493367968726737340743669149346047200409841587662861380437993588623997207426301968842081019671051286559692291115407416621370687875481066111370940748166765234306320136520367852298310885731098567889512767759083041116450929544856470805821329646462523042184512698067732301951537592028341605070457330398690074243238827011445921542629230685241565629822768848872336964962415767577645839383864858237107764912960461940125832863781630435093603210176709033577623204128881918346585302297140609046497355051551938886883286768254954780343081143221524819206245748904924517108896446814976527594063271867798338786080527502319912186337534186461318329012493253113396102501474988067550669055549784326893828347700190902434697346123536845898162919264954402427904015571927745502832531331992720897804416585650081268591773029963161800356436322806752433847882193571498873945954630060116549267519232392422770101492416349645131635999679091986655481867802046833756682834857063777094285644415303091651195797284296670717968454986383258660365935849698983194652846028694773173048063166091990074239728543105497162325153488387613589539038710754774514522105614123430489221627082034284727663590247265534837980230973632178757536136464401092217758998736990520372466226182785643790441800977961842165733186809589435973988354805969869805745127034567259310879843821004159570210676302142752098710025932752407098761887219740431643119028281249969185380189105172635308951792854894005650508568172284592009781760069952459692538051095487058152642516038909967736525484911628588319625998646483855283659285876828427677298162118132979716992469976208621766445163790203760596588725361750584699282989909987878052254112934362271590488607846092339656086282957710534717447211588214495657603868291299629991995922823674572444545625071120303299357228438866994453019183331718859152269680806912915745791502460085082420865656675744655745814782408700802734192514391877970084208168922262847354945896011275450187078519609805163374544062577380660955508182178367929473584687245580730617678586627101653451958985093990850757338814041463960671444337576805703498665725956005795303043057326927312026487782508057869270500218016690109934597231986212780304129116796583112065709677350399911174362649381814093114661309136526657934743791806332317368725169837770639571463548980148742637286365340935840824566482613170163403872174680118044981996560712906276953614196133804399178749092985241245877597747186750635506960416996214651048813090601687381802134777170181160399184702986578095381270231175188636720324634217192015956176961785064344198162504250500583036158275807732724376607236434886475094890966416095514222027051314593483707925053525600935293080083517028851863975839312646811214327710141081837696100005298604409089665231689639166294269168545271235146948685176469178737762017526098799271264925693447842386456999020099518919650010951213254366783907209653946209294054194009432451408847073586712117381376001530761541376263533832568203021289817821013021749898141128659626833259304664258126268759050934368272865792329903741431623498439776924980200566797847548728838777647036708205980892017735664011304376130746379582671393338179147204432266629206365151782639214807596478339459383383664290134075955434856070556376949125251237067822670872894604391579527709568318592693362058878968666817270239576244410508822229579895955404889197390901436284383641509828180495480263277650402385629396314146584954113465656765857862548797210119892505248658467757892143668092955377909881845957177993569821934827313632959706552049187111866419726459859191727444638097942434456700113100996010315239928665593387243668824670638944198467824992224849426482225686699087029549559664130819467089134962623962792891534886077521121348992045387777980972426388768227203174310740330795376036439057258873952313106879383320614701908682061481678877255503827684569360247067753076953596535296513394883823229258447550331297288619757485516367503293573449769979089351635296953575479086210233802596475711396734942390487890380541303015809321376268843258023959263333786347996896727487715303036027991587634104508241709291494561193578109733560731223168236264946709525224579378194098713515925372405091928308764623323871729402927388299571590131001036358411954224114191621099245838013810688561310166758588473461326944486891591242553754674206247240102456995204350233455013786241039093505275722750784358544638183518268139593340388015544058364604473296857105007144709804821589267297108817764371614464900175395521868543289145188890356204449076697473772151898354852514721887867611525377995575828756858603477395290538029740422401784422340566755161630459516334502714106269533746354350683641838215595873619469009091215901614880490209609868885098200930552669548410676115368084970049701727000015747289527619905723886547446254449044707449874655920558335724517513278047632714852141514408216516466017920767256157749517018255695304766092794478530458595446865193281866973247753483682743817725927003748377902451023786182093063028017240372236626833784345900670301501419566568886146343768753446767754960178010724603626154025878655483842268530329231465616616236202151108488142735947010246904867381129297129120697932319635878124892753302582993009464641695919256440235645833821815576765239387429116672371719200593080805261552498760212813012267940192988247735093033957686407802012234123207117442015431889430236618293544921965513342116301832460085866986450854038735685772717681940050903153109369944484861885813531234387199416290630380956502658980352916096858318718609487659405466156854151717287913421050066394316098155976814660559450414933328616731856925776028836673642659573170771045937455121830333695326502404440991788839239870403788307621707472104030289851211594820219894914484788779505032632313837540854155602372268235846500167032589026320818387998927271305352392380634431160056006687503581013328672436888258022901713940533942413520725473982845176906296232071310911016295299348788611253254298615128427982313393953057904340664045387997083827336924884854262175926881684108691536254538859479919574553733249211796659307757347991673259493912361344335579824344536189261717451332208588923811141330188645765468235360867457578456686491558481947538720236643674462364242382108069593946237884983044241062221582461929174174103999174595287951963104466265744815033777579551771758417408935671304059554484831955171038198531303119024275404357661718795762320370883604063720761460699264763323695664734014917938267498673879709631875989984837349015311685248193655902607947673052009656801827883685795548714322869223519151273194742401011844957252528979105295543146996546751631726354175519813354574258569010646458238231468378633158750638351045988471024385368749618079695353470665402338541389690699822518071910528184257238025835349820411553535662976193667063121325937228562769339443149314825468085670587555615643131870753804255725924387581833477167010940407686683241243190381064004571875745174349468535299293364390952687014381395100750967817440199208465398766608287562577648645520003505485751770531585400505014487687221036121236301519922706971440702560275732592428548285955031195625604066453096260253383919632500717338634564721899544175910904309374578819028598431766596853404435325826671595193198583477942876059648052890340706185588079363686124806582431893410495401000352722215939599663282793535985936571888549334310531324981671049001653074646763482542782248167521834129686572564566846590927405996633812054899994007016878315645193250402655494775025755560658547348445808670118004318592853163314021890095874959866367237983535609034491082854410229146655747797588026358554865740573179577061820930737947807716736098948266921639360394845589874976532402762456814525702030359743228245160820010501957326434473608455997666797168154172022987355373239650371684718072772406720256712005475724562909061556941617659299143729438903751850226696389989816373956449575414177126732437306925229481452539637411825354618221557699516301361252289139311319794280078807780873443137874520908568529577600790360443000823479245087293995478266421868662125250029723253670554504818663259731602404726641817069399266811722230458165845914871056370707743172274827122923939214528585503868779648958095569573370159404535545601470712945143544577599459490113335444203179644344884071983995489895342159621004874490737140073001856447252197935455143498408519152144803700096693078760976734610061073880918587763919455956474440868247235505314587738237560310128359949526434535049996951377571646504538572816873450743291881216708755691336051143477330851838770158320824235442199437935728906466288182260982744985088323466515717728086378297298368200490042069039548620755060021874497632988763875662781140035490933949160180932474200599336020367103462155210331190376059919822668811273954073544901750178608168344413848587818424089057478469566072149395628389408519688728249252982582735281388411812991105657380686057132710980541292887754597462080820176878678138584099590977309111014735820519100070571634166965945182927534766263360912972899007709991865602594882185051726829065244128833644796465421190411346358660675181858184840101782571227250120490150034847506299801730271239144717229451554901326474246884284787637914805412960629991217065122540977991000347359457448292407996456363591341115027283521930601336313037105542407090617439918098588871761793428481344149175641284093747613771531325653529859147013635073906093826573144023218835121253642715845280445236047032900070261711966260797516304552698960550942450387972941839743529539960894148611583959972973936940592463302654626396814460994775979846140095343738045684386559624170346148678370983479997964093598675582871443436989553958588574957789185611253630241855501528101877298926560770644380654354026172177495927037719676435909776049224519332896147202481522238739917559077411039152346615952265849210790005740424846362978857386235885238996234172846135898187825395147919555258445737533959031524086721443005252878420029246284119892917934370910757758587332946559625811089733892086296702715134187419960065831670068632393755943128529618953346982713118842140147184133109357611875630868295655821180338691213538531048967953724337951300057956091074331336975332294944324207729913859203832563915486845470850577326027641859277919395197039890511267388676455492150611608593526296755064950878831407035499742306065454946891904828846297635896500976817404075781560392410925186978262086726287319231986235925162627339314171353345586880614189183694998151458706102245476764041897288962561227047665881389549836527456161170447035989995134893275506232599483333282546480793881012295447998688039992422452978937004511722745313890982683429400594441455077593824906317197740993212897874101746736369685353451116544210909373768669292972222747208493831494285009248233267962990647778968384247334435142336728283870967362065663031140855246908089824666505706418790534056911321812457300762316349917800087211527249352717773605162241559997436435181874821534801146765421776891460946052269707410798414707004721502680043073648126610367602572846432359335369526615692558218370776824631639157680075475834007717053917224138671708967887570483615188146502611445315517284095866494156379859984934321953661838200965270993386179487962772184701514326935382673771214069598037024388469393647029257789285382487071698187713996053365600580420439509021205902829221812211245150049339342540998056390331275413602810234667426620470464385786540511636851583398859137400729123369924692883532633123992985690225407820990781407754209049342975196139664266473741225604771796984758426132788480255935343625877143956726116256177926837742956150355810494512441568997189213860144548683134493930730544244153090990861565091734104516112344585764816349519837109758017799152082042969713620646112060308230356070142110658710424462144135657887252177130743591135352830414719884186902715748828353558199208990875613315567513665249974746633382766536399684772654948195553686749092411598647538544794539594128668786917939504252713420718969281155266237001167378594025303389549688582092434685616931606820355916728151882134727548495311569375133850653778680293946539602905364075009082745986523420760420491440076215359912075177360976039025017631271658005932501870705971414799903596447946901921650444933889063273052982710079265787379710237469171483293446550717127372547610119743123557481743902964172243221095074290772550600877066533347181215843134535757584379690351486289817941667767124556962229653751819324676494116538690909587191208437938062052969259481981473929710467179936893262533249485060396525333232770593255214334870515817330772726038306623000214074779536491857335681041878490763368501173723790415789063373789892464846727928288506655751523257624340301454991949905981086709354968975903795459578285701314044470219519162443297191786526055986606293329008914097126580831048805353372082974026291810144334767726001998991779328722763107979428395161343617475938163062257269869352903998437238458778285013497293716637675733088620279910531759035075010598112060491136070618433353756441724963869008590976578256892074781015242302898333854126856767547662388321810167850498711205296677640097382007758616982512896964526718544192514601900658427317392353800503374907924241486501861559462280295107367211273765665980548108385100923467479508732373966714230161845088475683586813947227745504024503547944229174613918628998524456271220372956831375418167802206718009738938135376776018928721971014202947770836284069835446456407108674949232156718771583505897005425693893826956833536821540182493085761657865152846538625795273157272784827306389100580703115331381844528449164029541292867198307416964234586861508264213905585209481256175323596774271254849027114619481091518855994170372788616811974741863191119989097812957308089865138215055480424190925497965558376012943470670856301847433260883778142360767577139649552516066906005873637697102375923318522821585013633955470114142825904648529376047164815979419748145248687145945015563984440956615477160507697127386441228336153122088806364442083877548262230488937163465666476958926725345508892369887698100018567690961631246528245786313772984029023315491839062398157266043427912111817781518250297239706085896092502446641690878569599325370066467329355019098354655115758205488721087524749261433222359741883678651799614850225314902730616063603979757106563898045693351681321553314736315273991696082389013522468528474242640536020669240361067486284707505999517267156296317796831096781302768439894523608122581762923657378304872266363520048021240655728952389861288870671416705133710326390057804293323333880370106025136926438397744359853112684659285630823444872124630066494180939997438642701049017456469772992945442070449028581855780795637295888936964294250918303462858311486787551491979210150224829807432837892933760811451079790112802721331779030820977120934351362256532499922076922064174750810258724680687740562205880676870314091380216305756152390054479657526083536461122842642793088299775188929631582867548209213021874975155570179529954542684187453072154940177952886957485881570119270352453116454058689391281947774423226847243109011291298283218261562919723966990353775885398198151899868787553434194268267883433401263386385526975565364024056952884671027264378528910280382338434621556574691746945792850373724064543672064172748293935012574358164996720440788425150672693266353887518819688986644543767384591849062350505934949359343417083319273780075476244744001998062684471901554473768991911226653445132508799952916815342154783176146025271349060805488491311002611696961514054033293131179235933626179623447012045201344641624353633965150550258276909091948192966943241774855427830784567269411531846118541583532731736924963161903474257148476908919055159112379496040727700987234306400577706837436260326438694873817278100155217720094761486136715485136238747013414260207385435838672894831399481501324575979755866477296890850988445809268992000939527091551615424590775956515630718851231042224808220404510785032136951590409229937680856878850161540916001525703943399768990849389283724083685047400373951711686286063785955592495656155079939183720458298320826807003331308412276750263337502956016332542988284135283513956812278559182352854501602552386244674013273637509343888162078372976545094682052133793870183172346497512306486709700291379340514031144323136342762648955273414421539282842051504096066247969578016921075108918822432210248361633310704059940355985680194475037369901990572426124510857338638243473382247233647066654839777968286653494722516348241149248661017698417349023645750485577503776704462701795976591763624367948113219328580111556245106357361009928413946756553118293604438376500610039284705592410147490547932359998248118071348409409005088870550475600654240442702183466082891369170272153208350873903550185881325819270028524651419469748157928179295021737522675749061586776442549324502357494251678532075167632730318990062998404296361995192874952585395275250086552467148655238598972374355134301367194136560712429223663372052817722807074936471209454763889004473037561491637790577809566699997990025446362463250739670339258477518224268991452048411580917844233786112591960654859199765943667599698363093444147761828163495321637944662172148259309578166348066480888083669501291023720420023048704281843689711918076531675149571573521625031621436817061130888048570194497582274077005217211819935996644143775674059745330143159952619659536730585799354935676357980120541854181561584278317025725539807785122778741197836829696255920554372101129583250706258451121152915792439146555342303605043557007233289341249438146615721460227819146162125953768289027956448657708533122273719603038935016013250076443350078609203083507186885335675421806341483959048023547039482907525800015471048180106255997480350941752865858494384702168022500666821165864967104322328262300294580864485089700771688805226277715026573016369661664797729216438552338708203466794675725809653567946985380917313496871262982060441629744124834508477638666664804123943895635666370790088918894979284603150589464274014943969025140316701952088641539076702600483992867917508036054700077745775081194384125605942964194068226959689418703369756882564800936637327043902880279404020555980579753598874802760424529077474723225969618485742964019140253141618517033884233596709481366696856163210033696711346113483521918589033463043047494059891460596136405995745543720880177094058556628803930010035737355776342095572612513212518322425418918204407011394901060622342183080935699377522376816623858874280592164045413597147627276646767472202659211901404264292079037398212285910168001566066886966475449722902732206907058040086904001608763578732695658241664728708889293551177593642679161847607389704286539777549652059514560440406059014792467457634375520342733840933669401544140269870822995465731097489174008408718401018487503725706617802303888123943330181101746616219869564016019170444341768596882746284958277187793815153981281448426041405222436957821637976787856183693043862717692002114336504730265892797329013341900485293450696024235842042521932785314977846671883424356196945535523567469797332318290043223984869701769214684035448474891846932243000847468744509997093163730610319738708306443652299407269616931383358940060798419744574281041530885990265788686850828211932529483989462002281558635870919519379042438870054484521542099680199968881473889751106508190019473970089005818310932867235434923798220902260970148440849576764511202702217804590858575864595421298197042476444392937036636353283620521724508369834466095389166708522447311110119779813876531281128427175583072267304300204605257392042785765014172990628132988791013634632776838867877437621025367842436124357481836764290384247521775290932075091289111815707776865344889986955150491109126740927446340100435646192054443020691221552319537542238355824501102568219586196412352519325423515247806145890107882482823288533552482442914599985070229996301274033784386845460471173541172785075867013560565211683953283528245801436897746078683535270814045295892439667546729076772323978989526992734101260098952146465046812292908503315203938430030643755776207249225895355691364588425193481064221950071985112674870093998825763986624660764740320566381774325574403529660238623451734831141083577730295237257705994476459182218683935692056399412063415580704248833772968126482476721143232999275440082390943991030009420590303118274271296626328970241582671817986608114303010608891863429883289963200090291356330757651830804809711142586263949633819739344037782316696707771962947550613857758215009765613663074610354910168234746316296246264299612642338259178351505347622228017089972111592822905210422638421743779396123931890612300979161570355555722247769708240407125928734887012745654949624361035369210079638946215091101437537113663546862080691592548323299600727046758484589656444905629704652804579584665963637622697901791952232784211138432012395580564187198066453764953048583607222671600153895405040782043708626740878229715236895046619783907377931033872600549016265199309351523357475984384074337571754909755273635253640594608223781457861137436600453356758269539928649277938337888608746006802917633852069798473717848736886805409997701987809176215848089783286793004464400118084719259316171890462713893675911165901633975616755348850150757380308324644352511829155814210484098534001289929773117525480739860370879370978920996235108927079274073310027230694967566597781572263788840956643202729972672389114364046572409687572028462915003288038835262614729975666063390190259363701912252837114837956359121606548321677317835880254537782210496884348835568911056121689732651929711533665430154474133138043611970231517019467084364579261645906671811541912306390040131031899454344592066391337406356012809644242260943497260707198037534400174651334929281732145952992825771240798659404240803198631937776490885719376040194359754022603195600286595119259568283545597969512456032881077787660769226831291117570971823271581813046993817528756270944850589481064436807824584706992499767970033206177384563395612323969484407771772598343102812479159611327101485545623996089139069324174235631221830822205477218006279106404968327921405776989914108751028076680380746223745399615532725000894364275079391632768025139176001902548281583474237940095021754595257187282591082003176357202527213801738742153866902807123207852479966780876029331508850750781297855489974153130661578298772976774373891959726300526749045625732460996910923334300134306932635368858414607672545608319255789271598229106738363834810209834012070694625200686964082046425619748727776491376830159346356282820852346928537863657885585795217115043814550875105167039746487619055914774985630310619790805448237974836193367138970182719069776415079893059826795895782064092793337117518021603497986405841140406260219975804162812990747599620794558417208503462988552233432735416882649527608968769554160035469137931233670154803885391705733076706031864892475306521124287884962316062281857273788829338417012290080328362088320617699860363393864459050476495446209884226220511315001478240517577499188758641775205741867162949369342275243045381726344256306795960613173665793375773912434736286480544368133376762814112026473077503756237383114988477188110754017568594141713158409152402789414664906818441408997533739961344626416068906582289020737211337367404529316178051312688665880233117125125070709245927932166575768733450837923496216646103445807120559247921988061700436281623363050229177033791180566120797466196741932079174026124844337217777089433870578589506143526957851426535936845291681887158404334708677016667260827171351406874829998965265052359031528181805637572908492090156294895612476819210917451612568914306980046885587590695894492396017880437287504258903188078299336530279178231782975034311913565129536758080417192967477509394314325657807443249968854133588196723033800200822723782686619923719240147993925134194526077020160839862070530887385734021378125280898004840009829651682479905796360433553799400566899360151153074688793160243823821239499972936248529155670325533713168925665650099113360242833443354051321894415415651907806463839930307402751797997776119141909827723940111004833614550520591858325341766201595422016976278208663865835171644460856125383988080174887828099147847507005671245581837072725101707733107967755492769362138800285945075674705465801855344902998770431375611339038561834820737990114473277035050946642537344810598742226308451936719355837743899157981641112304732885151142842052143558245215337961236472840153321488861466257207408178894488889814187449177876105219739763893935507564712924815313611929153340416349435440176991804557798871929059517543137775749988309964736720804110416911456682436873870613459302445958565988129927723080319562721368096706793809655468187147389964337829866428186352417732973685174892157129458350790415842000025693302225244049551552454278306824614919865346484390185514068953130709273344134851858121036657807515449605556277151660294229658134896681703778107768439212755270712239906731520580949231547792594029900050135800069805784646896229480183438941594771089278923322915561188298394118090498303333006752130750179234834019722822698645820260835730630245702738126706109726663448947005487440147711044411413766767191423239136319596653227059898735111097649040953254590604939502405658997981549900014553765540572616994953946225832863429180108415527315161406370488410718020238828295915991908404692773189357790584197587485577579026806612964573447797285105216291187254644132906092606589795286332869303330329411006713399809763525536433123991682066821374881250678204646433806863704956096573063196653008145352470955096856571699706543284052760144107400975359142125137995901161038247297506095253740729194560589346995633073811926525986155654388194073096441094700574562530274134658535675878292489671341174033387215041659474006113524770392058601792234992940774201728891571873631255122038215950723498321865364032774936836567481778463033227083423362168850247830232522605944084559881526885638576530843678365920985481579328813740347111426269113807390672335494356744647379825704350001675113412205650476374449121447634446707059215010875336314492364339526085774839441577594973725975089226303882827331491986546264898172030711802937889081049855710744438171648237797975300118374130870953415422058832125149223958432491816956797228236320134181627411707605824429881007342928130055473282879459369810188006837572025441722845773300154097057782808088411676888585224051280862415406886714469037501215025517521680642336580696130383347080616316758635164107316618840936442536164657651341673843911583174444993140351113239767280392640010054871288352980220728625452415702072616477256447547175782603399161055921851280976735916025293909643159410437195796315025452786287180227627296299822706286968155799239311628315635801091223037212466965943154610961405971379621299446581029729035156257812691469547811931075818378383653177527222026860394689868354894369283680263232671480653694002298439365367432331333555700071699439071743850239578077821772411135274109583993529017506111190305834168238868688901558929299596781494721702528034663264287104383084870276170829688028936496488236362402986917439001264806396073239457423287799698196682315775322791246096796628984582496974192021773604578161688346715427000792172271718292612371412739058081569258724050111167227819874939942509762955686054407395321260774712150050568031344111522137434013307555009059993194450419452838343638242114603650941979177524820945766784905862275693058654036312106299871747602551968135631401127903873445205704744144785901883985789828598786077557781384768402752194610833740362959095397208242906414519764382801085698077890063245463149526120322261201053555259101616952543249109076213459883552208111752974321793517921938358310063162072635278561876387857253660239260455050756559470061051546462381694383011930175634537474787395529682527408358916436631004616370902543025562741666415859733946229737812752767349969720759033931482989374702591372807238312022728522111304783508914349521543023918799189604337391496295094644277298115632939960821667896742023713347680099001019051506208930799902594249074834179160520825533887349715912194030582072190430802591210267772232322150101331933016273656763741672006026915900210120685618671824531358553826770081584126152652241922222092853222088946087392812624768500260148759864524175099690397769187164263231304697949196751648201137563633617710723842148222114377720606129720096300415870015876912678540268404078274207672681507907057475842851578765380434257804298877608680935325571729723004653042179262474711810970946736558324037446533361972101170599574033890260722585148239508431283607715093624778200825320266237650937156464330246414818325568444275647871833998842583567933970027198640213560947582217882054058338618929522320668962089474632259098265175703550335031537995396040094306583258233870622045817226182494174155693246404485716027605162038636156154709210584375335142901630204723408713286297897240045494009435955672190281499110914033403903112350897398440888261623777515589667135329075023338485881282863152306085508158201651238932643207263816769113451917268031882656639072517441055432808544079485811799785688909410250366770446364753645430187554257554219507490977650028672436310444214531871983282622001106723374303005175663327366073145869781886469443337087706111922944456558737620055546786884226501646002249871105650016914073615758090510201458651349000265418592145077969989261745625303994652080234207586557633818693669684144606851866340328600797617856828449821228061416190482731094573514993060967815249495725157924666100037179391678461563533711516906557037814839755835182867599323793724747235302991988183510425639994563907532002945075286661825706615780353017673045760660678971928331080371444749771969649163234058648444881825836556450813610558695821528059872001011095364289547837990471661146675894454591087628032865984509446790217005158572511763226140990696314467717170825401073431983312609765433859779845031718074389483896305006455041816901568919151833558658205060963674215625834201457925994283046736154268336253389073159055130667141410120358772845165650367637372782511728584679398732914645096348601857567776221587907820133167210535483121350597513969557829737423861019579979426877401078170262652665566963520772191431769661582972630740510384012530094572365630925746874481596101878407585144979244348880286261204085493148225691394834032677687072585158054854888402510564202919502917520381557936418573565015149290215544326289261132217252308118401803042613937555652405285157086118704466967084930934535858042757950713547488696556002922199830345536420569488937231713229440814090246025327348143374691077793785670811753268216566536998438975532776930090605016730785579880685413724774152890768733772270455915737456959779491975488189549579933482513992725038713358041748070938801080596214364964316343845855496264332158453967248611253354960192219917510077731400655516970897109688567314425437173194509269559950899846856787213087719781773821982130231616442102986759095450271932023589760873375515258787440347625194305313774652103050147523642191098105549416203302476842342902458461794761093825201598047604482306099194271952242872148824293421366516738694181350200513102808045698944130800435896069859313824328495931424922691535449921118041899897219564705707891113218200209269895577715325800313448399184239483172556041465584995226632937971705765040890949015835351054594962810396189499708899655973623939287032805130258205379806640430032285745447430615229478594381496021828283819230306826654366804219034068014196079430648412854498895466201956621232213493481975512656544992718119658371393772393309692814340329652366689111252027968619842955812200030641922795001289935567185561208381542032268103166234205077971677167950490130546021985824036148176247335807918248042181864925285942668690574390639788605506726238581854357839043166739619297051195636279360875847282258101827424549858413418954499505915249407842513799279649319065602614823832195577441423061421961290345400637707678116210278135548007561392022010029873214160808909046495395410606861405614510512585933733998192064542346034686036699904013653398938679767484534087677355371953873633922462888025372657802161918601475324530742933350471548277612997935645388288931834139483129168500947585613129635990868864574777677123271608063137764750642659473134728801470965132028361686501893687786350739319803930644374141354342993809349163126101040115871683064032165854430495990887335420674066424277327213463896890124102870534703632597761863662010732314528868594816905143403137260586954641630720674591318907358508950807791399256708499553172424465952326110464887300856076391417906760204239720161710050238727913585269797743791327988297542646736738447588045626901192415977631543349773333685769754609773479119466608525180469875100533745658530054465993936560388788492271486943307668173137489820637591765056375454577035048619343774476053780298327728439074155773868950034220020911741817845596010926560460690551010565952552565797136348808332361865909249241156335515421987903317067656388555683656386654206118572088768698200659866921928298044047966267273844782394931545331895338067094537448401772781451288340263238633870901366306015290000836376759613778030476200004540274810791841092699542279404937479272264067922685710685882555903012285664883800130733972389926782945192526179291323923914582721061389667303747587491378094921701974233948698842630561063037131742810040133961041169294891397501977657623316666246247067750002876310277859714488070073514057590537507299797519863892705868650409445693097545978215483427606425596703257876079121607050761984591072033427340686612883597143173974022741011502924492916571547486282310038483491313238721032411256795493022070400520029076173547494904411367582732039792538114723797478202009722300150546355024772016578720894522686786025498631050337459835679946484609783809158662284029448363395167616611434835803898866914287106299331395449967494407180897087719762879116777946077852351011036678506427127932549653338122109109869877897237067836330868426713870191597946661833154149906988040797903098162949049352062020764271869387560381842305380563845547459010680330675435336191591141919627541100810582645514950014079189087238333510651620405195578804317937216773447439604682078964248153939090994089391039510551343086669789978662332365070560108125483761533905487227451907223408909897846451418303461436988250855431054005253180104512873631888102845747103901379295886086776752964467312539937242060833714829498633936369048667980211185314954099527448162356114881064118129338661518834427239495362028240052750994502509331654511892829677834056736556740390110320981767374291450358056657720414179341010222312661732791988883624077122845135224143803662084118910541557147843745701449821919037809474211892387923827004776941419108715439713068463892152737815683519833375199605149750248690956212498120031119501446201421714628075334301235180970443021195798658014019066830674701142586956583479064525300394256922823516590135558558746632582372954116221577831879295456868066147310814637002321645788195118958353849658512655578628250779851878904361939122641521621107060740441760628543843887307173356283686255126317066470549733206225187285988718500760766559946998582479710333215752101513377920117638398270205958349996161024457370029203543440204193170121942198793982764601913501368383988732824462908616234191856002772700734449796322613616711049068065412324480626780894690776663818029666452990574113288576269181899327535408137115272659420101657767478583169494368268628857605628584897109634173916408556319776667941625735113759337606117649489645759777559344320258404346315272705175725044905813018059372136527377551388620155545187227730911736611858785119559439367253351971800848006930196618806324348739320797948243499331694699613484918256492636772746978501714165999349994756747697687527342222373057510616525604570039270979271012707521574483011965547037950914865565599661890170106327747420484719315710693342377326843013124572016477635229023736835736486767667408009340441823450487339387697099347053192854246498204019393734250475237523801282634187444291313377087679904491072163269832586682479580002244886831844745833727825620939461934714686097704647401033505354959675108582047949210944238371971254128227036943127345285084694317503122374459814902869936940235738902414407222032881795057495344190689878055337153193107542858007811436367478374911253987706825939717485326209678047176207358429050032558996320552397091488844659217576480813108973714177218026057640589388036772263762398201771289255604627131122918894168552636993503482837840502874487800753311231496950033122960064564014670870515699541933944210781023923520804296949046381141687046478770127984710505689789050548038275809763188128418576719248952496920147327068895260317256982195449575234379234043075935308633137547494410571400887434544625990430838194883947651455164799542792108844756045025755973014363258519959385603785209270102811918013858266321953795549601510171214059851604670057403082093667054592049852417604022468397149475974697020347488269170041928952718216639938883766497217467943776701139472941531945654435349608422689025731630954755352357683845023682141174675016283045657151167211483262033173480376042229098347543676129847862720079534594548608014222327722212018817911805108533251945552498699091961712960690307275261022995890308826611310654431722443624729008220151433678118301795116279548003367272501582962354000680041472075468029928343347491056985733594108638733434042115620889807803840076651162306473619490134518424521968840400483980353710468066829996565085184559447076990128661506154709668467287372238155466136934584518900443458725107889653086567272913107547966703459506260701544799303521117265773764229609077376934041537777747178416056791169013937200788018608192349788651384312973491685581411423480328871825714347437662276142107957327205420183939645586680605051417378774956183135560280450064334957062312967416389265412042229984054997228379366131623142272676964582829397446700112534400863743007707474048046477961391230354955998449938084660044231152115430994324129975737535433665491471551714033921766086051651663542757225572139791236831734118988479994183654323232389392908833795846584736980358761047406649936608291317934633874473335121907654937825230943897144658157913259635533079019622081683395344499443563678641002510234854443555454616850633617981590467151325447040972392128526770588963629378738195829907638403397058435203338535325248459016023966436362973635005818509310179895699390789288618531280242494784291759598383358150015241062341987331339480376213266885631981132099500147239602357327969913346126364338257593699860315614129965372751520688180090398186312383887565601466734308459876732725060006451551394611504899196105161553585679374888622396468850854383340954449681032462697672927468851022717968292306022610920513544529336712682202677250424370821242306256029986980857815360957193776589646259495366939784637963667689238767531095835542906019060317369027715886655938073164594431265535056469898640882422139783473697045218751505093620761513949301941865132874563677858734603261626388871980666355440777804240164055875141726113383896628609605850288344059658478637740849890079403224358460344137542367163682891253483785159202715432966093216620553130781945697109730582354336356935823021163635511512615889384618581154348216035662542353858094972619095159537510053119645525116385025231933679991382328957166946176043744432344431251550084811447919264656257337096858495348486945440909775262729217727151351170040864561253374661456717703299695984811151772143288535798067267138910719067714167365554344412682486813037577365442302119057050293887376373256844706951805101241706630912610379801815926774222660009902367817561043984068533966368636294248753417772157471966201361374990734840555173880232217618198238910452996235240563848976718835456653925336453371382986087444069502517562686488519043977810826453189502123482958336012757052319075753297685694975385662745707014267673157797959801404008265617894514550587869699675870166132584413191903762405026180470302440405190865963237364457918213360366980435098638058495866846792587719201309822959854921414194168479220419847137770747681020574480989491197844522345350444071519044571634009448830027449845061851874879602167652929972394937457282235212587087587436526526391220936268347967504361377267199618824583933710822908402177594979930616605555474361419373363192192697394296490279911278032674014033531707063242564651653191921905192668266210597607633478997944782816372390008477154598047583758460582348711728258891228246315785183778443446263688348007995394666673707482138817520446706874076291925412695785765664676973388792141598285261182957218837140258753827416131568385490584186017308373675314758468290943537234460050168246867640673406921833221333892151910210788859081688950071567178759606767207489558772835250655450087263452035773264529978550121878262598471475636421172748171123763419274537946764849353956465630198637302576044242899888805276939734988309854464297306157961326170628785226327223768544489662684373760595664084581202041860299094623092196333569857771763941547640238000524437169057134165968046989801688819531378539700058840842172837908156390343446223511279633781871764224704943970102078746532725935148743580703756085418502976111223654141450980238235608019596699244050440380302797855686248938198995622146937398451088011692487182938106335221732676038697551850857954638806107474800170025671784268865120692493235581252545330824761382357696561271222860222884450431966248983201483130191929613317875758247307373142290875944191807921197668455953850152187239108097569445364690121024175729127382145493428977845431356484017631209556898486387600166023597805746426279483025597724821308018490244828517410416505802999357894152356020235345373940446975588151855199608975595545697285541862030203817983632337888148375994668925742771846694574558703792089697074596169397910225919372218954206221385568970224967311221063014151955788386929348619238639368856688249010405667184859490059489060896616011761587325079486358203508392993109399238269416977211469487333509784941922802799975241694108637970293238086062556052332464649041653105433013788446191349250745664108124671709059245034629641379828001333327288807381581676380882614317891716232439413389678191081047198374051472461194973271197708353655000580479523832921026342488317110467299952355403792542081245141858199017749841025118700125984471647487811411231602415181886893117214442184946673338553959065099911122025500408350705045895937667626325166012067775282310338884852057071284682229103494580924501012071701585535325180868656696304567298484176680265221263166402697205284613653851637119416550693654305220014615565790802353411972792604889974462660503537615049319950161181884141185882800841591269800599275316803042195839044317692761740387313055297695127269759715976998247420635490569852108731064211297073257730987946774456053531231927626669855921198209666493389775801598879287682889595249184779513458148896615420434557887226378392212961613714983634789875775016753186854286854174598596224754201420018881716790284680986596857423587251177281377367034558145431996709733087968199217475755630110253919695512537320030720489681134502910425138040790334558835160664263683586788572168597001352926443195029026921851509960428359170380952790277571798396561046547835514250311342695436494758185458903433349125916883274439365723422748462195341711045404799535255969779542617793228981829783713053868019572467179226311649144218468736082715181341591631108859524678112764243446213762574668073168436758998376766456466593592486291759165742071770799829895574945674199063610195468911056470436814482713318604744456197598091033998325742248084553102871110700978310979675931368675232544222385374079387940607614607024110021976121207172814212985351879056051126490828503312392667112429981040001539958194315045506745876296865520260311918424121507789651824345395889848696688896373990509740163469000024521100682879416901546057217259746159616351480476612438671089671455718796367155586746677731407734877743747935575902728928880795012665540924388015655407034140095228568046354740280309583319875271627505793457549010727683728060059429949680258858234644189013182616085340173151867535418381776059989298253537171704814368287251802370341385186305536126821252596738601230009468438162066593699547613957492656614744094334165469031182505008517644786984566384246073066896582901471862884697506232427382158428182925275099666253698280033506585061880498837338624225155107698490467128340164696983598656407929507227411473717059559365063322151028408699112142917361027256943875188738802686591860892543070096227844496598381289120606548387415290185330236212893727117680165932950315253128506035547823463890555894222958288064464862999326399210742374063036379691237836392099425827859359701473415504952396539353397158986077852746019539599026447945160163621112653259986831715965051574773483175399115013804713692029766351551976543434885447197629075558666129145361634800556826948240596087693167677464646186015603127811195661954029052623857963313554055341635110694926453574908729466987681287630081383580884369785528192295141993990428782742737201503411793963283366169761643850068871675064892900539944015338308289327098654204638608269773901768095388289719694225161063806433174735757335520584598466759866058831713991692817710682382071551949328311898581122436355809362201995304955092202771614075333088965679793317668696370335787796200723915120073581089894602106098212510512846506188373330288882897249000179377078535255635402334315777549363556148827840845907865909695665128058621993862972353446206580516022195598551411223004501182820091067060743831671437173678837707147210449191660491672580322308735403675137642861356221128090666908930732026535248423894978207528729324246677070076751290486423201473296872298519794615402152220210791863531748058864462244532657621854423758515677799336039588453266493620316671272588770108384622151312420458855561345032368630178045715405674897653397322874755570166043057824459232204374852162680028844589142498922939880271219741031142940566457676255552382593073446070020369098874450783983649871120252369726477060991767119602114258249417425206249200236072681807765919696585304155350257562512694336417851784390120743086905577678427056889474403370905736518523527811390166145833501985151697080809865462276394856499126635860747604309573199153917811466054217226807040804138712641301302386922965776502369811041348949397626899422149985671887029668242944664574636262346304258445489974164766464269287187505833898806036089012302736715510898369573697167070822867145862781157020045220730157200450676192403357570291125163415705643911154887693531236734100352650989551243845464039903120172063615490574642959698156702085834668561811047127771436546505386675195604731301470203426898435235515484101045474776121137908098056199797618293750476690941833760137145592638245944260806530438616613621828757317602536099122695698537637036896714118759823947364997023733804424388392464943539013143502129557970499673676405530861616702401519433072157067118412112433925504199643938105345365414364091165104113226946914180873195358770466710167172098739000703883223988599628788164482065737198188171747213524434609702731675047842927596806631704143789740277748795341930304485724724421918976575542812053895287361534090152577861740113091352370867507645659560461526069073783935520880816868918852158685258002209375168347936592662165648058347941094560379656943794837671335411651106591240519987094377844698456654026865563983607383928476441577654497773600895250327026780627436311041927372883534084657337242460982461973245737418617409044189818936634501666462280217525794099228610379228922617297820465270035433784981841245069127965385451747506912384996102500499615817501612787367327332787661457672953499194104924771931789700810818959659828372145696214081096984541152852411608562657179652935616302198188925231626087516932181191795436515458363198337110365180024830709453208694867692150090769853892205447799022551756086042162904806947553687746773871785307708249454183776205091642825677131297832403709883223553568453655892834719599510765939557599857670296269573280194800313203816687243266437954811310923044167055155641615738307115748750890000236385417367691283968005515438192767681800122962695721144916834061632858800986723049641940532006742098609236282548882106411024929572453870301157039593080015859229950370070860218150841932112362273852202396289171401365670630260815676699867179822901676167566904616724124544840985059377954830414277937646735434732021007830630629135117306518129250307854451681478469331100022398285964427559528708135510532823431554949861240711425436688616535961850209981181683284141025272007025359562106457665554262201415124736422390597410438049255343427848146168395343188931269782590583615736026849045204055579052596438435654527987393329235030536658272997933741867475459906620172641199363862352733943344604184656762234691722625753790753506271838322816365282776182580337899631525894947686929223674560378198249503896859493130679976067512489129248574190768670112835601544573236811750370206733489091876536727408268611133401575776677923481837783897538831970719935688388344631905512412771457369059738302925823106928741914422891404054099244766355546872053445790246694895716213605347145995006311256323070745873544873902772400374228584696749565609668969099551128833927923246915326193496211988021861372739698610873004833056291890303594576384475428071089152246914285624494137265581687084419045955546001434894808123083444137896427052100623843029547294331688294862270310284158494505096406550297114295168020324109610793709286052901029638552713919127483405365062484413863524121829577290776932742495216021508866704703550057893446109538416809663515865387120368505048920155889377502217166170794114444831169348898960838659217074432628410919804623724389646718729049174604185935212627486689660309448568268007270813991226726851153552933957799204494529138909443523623207721024045843712301001805549851947353465312123375969105887767072959362940078198170121848115875192932917522174638703881229064818057464793199877435824086200899019426827400145960069369470942360942938924693048914462888005494026420935159404675356476946300863443121937181407106139084604057714964054407125060716670737403235044740595615470600460414573223938211944366800826959358090259852690276822468082173419891725633464135520868752393318257318483774530561625888897865512307117053647236231516183050838026839967723019749817818773944316693574175317147877997006639748232000578975932170770558085902743530985390281780731987713552840264876834589631679674051940576389564218189978219060711992952341444739427118805475486376221461774939632083219233145877811234122312971525854129032378295537265815999919412599646536226093923931116397988167005765389825145043459209594417192247831619382916187498313802209272395713331092462499717862640688623670899305907486401927130344112451060161698251993871490857404046394413876908384870289373934406237536507712930236938835049353583553388932265627968960567219303217338573850309982068294932832796603224495672922267163435223346780262150165517757592719531101556647846961429416607262190682823645592895419823645836311222614113738142538370632073736510426576470543850320802086884315509167323925259419236134537277757260463623513724493244346072789507231401477476124599086521751691554498177637065849492387383912450908898999068817249078835962099256225217840300278971457471810951236739869559926373440588594774336369480290894028824066887266098706702279993790470890455622744497259415212985224500379857204205599362338935662135971789135301182715528552251522439327000670826324750447986880799355401830125819034606899520628216079672217363143224186288460743974915956682152077211824206569451971194525341867073072054291510450763498954322811187327858871730649930289921088988969094255766505011906798193990934624194377261132366012025259729259594562715590516076308260249987720732613235205893383078620198393967260402314280110690837681316788402860922847757036776792535642156327208363111964974544532118398649479310052216975958181672854137971830563947084080821899591588271953953869615779223612736055583044541039729611060932408460307967184671434767389109359857460682257588461122472323160063473166128459608807498172665459108886279475850500754481362461269081632268961881911000542484692090399724968623980557936605593629422914416379498677146993956761999359460844005048402421469529660672763074944999425506481208720293042504640777739864505201899335306207044328301544215186884182397631167183082506001497402210282096279967267251413670273050667382238978906676830497133144415912710908471283184263319253654557952378600645736241122556187494137675011181602557798764920023537527312447756584475582762627232399181940282784878622361189468445137343315192061802130344837393839769509549804776103142387770632996180891112171757184197783997004527619891371410577580400260936930522532262511962913044201722088533265891978547866888250167327041355506783340332318199299394372836033406007800534471178239423822863333522321892374179482419023328281871340737726299379753036230517596717957743825583906596207556900001222315470370115753400580949152378416497806412411600069673216263819594433051276762015622081659308661922711389498450934294040166738716261621083283208677191808964926795906938685006430918962406221634589186663103567558768680086422721787964310874370760271720865955150837720238804660953744580795838603657783298659973220936327648884693658956061849456185728040566187694938300260186096365214673871113374468648160885975370917714724913663672242133136297968863436526488050150836475564845656843092599788098046927221893238296823972766571980037369572816888814954121743315539949874510113858544428628823038403780964823247478708807736661122947518204059819576758007107463488716021285339240720842806581800967690901205636625725669010306182475175359282600136326477753285297625475285693399764011219478995980365841501921071176254590975190490487541599887707859825703856999374532820539763703704176196333058376697358322575925204615489283076595979091138258725830333272626181333828024318081426166757620319845045363315631928646032665069508168563516190099856647016667348550032796390760072302769245507173089018555133332830055313105600200074881644172055944095695976261720962659599290558057792934512095097962056907182288461585176522826782716001061902585023725443889689313026209905492331963714740258926389154548305523766492419316880324117650880690989962446121881643098946690904770009669757515891822157315904885835820657185999331819373125694772823827902467981360823462965249928564897362234782798992600846444796001695736512122865171203848950405811299398642460742896929125348252529406112082956865543376305280329938821339942363677150514577336296642685665546468273687141639774131503393672689103247991886998871518980453353737353011751744703370621100428269401011610495550158710910236881124463792031325843536119781862237519619028014298295276251573376993869363030037926229871350776474573815714381998522820892608228299209477521545169762622640694370437126224325463641123477683496936923162350767117580929768586833366214529901155266955800314873485756579424820585891540619270654430314887452346940239227232098843356582680976302574072878811644360468002954936728745038457471660584261858931061169963782928388099520835081641749828302515914922820760604493532269541435321599490761757571180838893674092286604726840053947521619811260403853416028718237832528601751949830488323320127074992952557316786303448984063649913447791152723284573902160068760567534342453763817557766879657631580790611253544602233619943981144021133272872511207666638148861626294696892249265847380065111240854961031199416075502218232625674993482545884178250714791138324465366701253535592514731913814490099430198598728121901971476661944230369428460809495593468103551544380979433956633903568181597925949886821913935474009328675091655854160928379527647122186296695672034670111737531187810896435914596580451345889694302321807228269889486063636820446190009560261752171883620490360362892126526475948759623500820790780567191077419586331510460999264892569073878018365477718853630619825510244857090016458191214939153504791610452537737152475382616623635379221886521126036753226681176907763537103213425843586671398368619609087271059025829623852303986247012694279619091978835377855162396102100383686210308446237583662048031999367529561250888350172037283648505700307495506651351289905920924956152590895994277431195448847885842307077019472333954769342169149790316870179296078099859536980542161143855184080696710625653310178145121955852023717380880675817755954269233362528347516194489876538052333369893159298947523289442297516875607519753806819627651897714478095727244007433259228880833317959040712473214711780950635021745025592540039232756050274610496863971239571796667480861657662488227943480048669015867861399263964805246535402353107646305794041082616858788033015737281368308619522650880881429443992888510422130069550639429405029002479928705930473522628007489311709269958732821265942580937442864644394304861569679446827474424931893728468462824510367115281931659835387382779279620844015877570906162850059565197394197218550066963897406201200477660871323783369838168097359975670978427718867395156876780643886919535364957464643135235500172184204981021185406131813879927578737181716704487934924672299417853954464587953667208255410913097505373305623828774362005903249395485869625583385808148746470221013018534922468142865517747323381678544563850895555085236511062138081284433375551241255284363184676657550195235280495352657692259268793517234445634924676504726276558369751942862081895271786044449782033259841927354755722414058040920623489805901619696042202971183765010645751228113591050263729125036787782194569481047522443714484977685101444529865121733213417020829955280837154307670199441715959568780124341800866963193392561079370057054267865465145949489981628706958934399380863239798741340009189239543673526184131590192416349313686571421172372330997464391136322174867359586372383713915321904600293990268828848688282241532181735518749259204839405917408529453009305748773566872843520488040764153696663194041057638333534485545342984704670456826874662015016547644256712875730424026736953300006377610568072843457780824884765210923276149836654711230925683592877665753379317507585244698895483761896429000648304029377700745136157838198854217069879242458255757748136657868531178746664635477378473399673348260425845756307265111454906497720751361864704028066340708778554375597400023066217890974549134903236252392541041516013935990286684349339934939068318578280215748363797800354353391127174888359908929628439891762557659403603966884321552207549743219758096239234823462930631240435160076258750582048824979396505238767620704621009373926743136175443985492524215089195515844497620857326743309604828411073494741768312619320665624416681412952090840461692477407550959774639897057644066277445684603101971953796886760483980634888139305608080069625680631570050781518516003234320981203575590997538162622977610292951821979397274078024902216276698610992387744123037623260966461899474090882560331789662987206008462789936195092045578984334853627590250405274897768400926860473800190918691176893737265226816681920384358148657346350789489694405192942977742460590069589061024567388534210985181289605275411318475000127390283098547300740650780650535521611687580378634197212471505184795748595115928433035419647927941192842540780910527619753705232245697729713114700975524047994767505570321969141110256006067157045927947204274739206011965041047012262473861166629875789977366842987951241674765811400226016396563887448209852580272842819333729032651426924679957607150308779960329215493700467833564271490469684885531002501763495523526646242768126913141139405897799056441227331453831840953856819097948811661833917487855631599479930454328706902971278327205173465891454651373602628985708869171572596607697070668033821766884562964417284810079855455716741569957325149871004284113786345653352063289080454546655047652454886699284662308813491992866380360842047360992757894389422457932521183107117116507084973822900210828407433158193583594565677474684781797175694955973557818156553996219062293500098435435792743469625601885524685970214622332258867612485266033629328774433021672309869609865144026604258193190609800588474646683998115494920040671663400127655972709333354859816232876394075799511808838512122560545552815479529285304295939886150216111657944774278308139116618361065432984091405493331405858307650550823471068777494519971589727804362033938628915431992884097462124463956440242595001843037345470834569532344507452398994643942725711155792261709338124821566832954208652208052781591952554637333939375831562874388055627715277202283040697250768632086508461367746068941477686513543667716414702529663873806212701661070882795081674885821281403614538661340668799669848942424002850448222491035820579078519109239831116023319220842344501840206623979005011005124138479369078619146894919354976271236746827647693977964759757281725917073393870142660221076849881086347622563829504020036986337005714376611122835494446942013059871270868968163457821552993454074731536406101631704092329346655845420545385477902048325035534762440595826771757347604932279187832517434291266277555591422637952340101175433241012024083076272734771723304085901038597498436266691538855478023266105119619567952856645426538271412405235705799095356429945331814400946577466136475385080348098447394042477700897735343111521222546303841648199720028862690937357285241376402661607961391373470913003098441925466737331817821726757173415720926398249923403761493555025025242867871611950584000508612017786251890464768185196997783538245324195380597157499857476077800401615864511922308408533855161321171086825483368532064010572800334469493301310495843453890283911445905601422845180053965090747220341606860421718534734400231069266807656949833296298149748509452004627825895709755200371782973522678275902278563442533720905080050034557954152660796192267823338201102968768136769440384164880389331698464919578544691166110975592431797047770736502380414341218166535660046208267727333630689545944151093872930326143856409530778679606212490053104891643716172247519569086051850829748671504467848926239326873130685371102562470508410287165795590415219414686698797508489788814149262288753208279826048651761491324092178833888554129481505026998794682425653675209193252011640473597391494223463631490481989118870700048730922311880936961011904999435615578036642993183640109895679199322365895375063452004705919496252070216129755949234364066037193626603143534629222371704293009557203444065947206612846342533883650073697924771023007149058811210637913804592592807676517964152073403298406535139546507921069176960590306783314076126469912719180218265176058229926431355929709027966035419188202891574084807841887635969699294915336793990959529226948152330207197545873175330002073674524467046913705008538377557602925445395649839215686456177915352973165107996112137352212535108291852399287899101404148217589942124657523399181238821017213858954880896588977491056916212101371931668887060980780835185818450417846663524938196930486097691369448078270095988444112134395117670100178266519666492741662505579618652336716584005223450959767112725781546612152286122117476301101118771902449412067029840354052974049737093386030590601243704659036604650279178281824752361163325145922457025541238399305001300570914183078151031459926127446190648625820711055846464523582334947824407850052082884654965527841383785176469430709639189134479704827807137582188011917845333628067069829878729840837170662591108699652341853234243774143127442566845626330402415766984390047814765908619281630410680966115248810216857740765796524561070854004189281370894267471420003818443906060330905804728191888393847192379511057787953650672294185323153986289388355079061701886435050938615169421474998736486865318769812793801712385538733686635565160542524199252030466418535842617050718736869451261702909643049136001601527068068991920553807009887961692670297074773962515136266646596193996414330571884157291774917668436111866126228809170662356787454481443709710270186124267884044877690153827358363361167143653803670976689346604148596062392745648250417205737483637742026916573986990206750676639625398267622465624762539060598120941997700011223048497613000402717986930787474329781544003571671016613039100995560998977523921519535325324242214711851399578605608411637703703032090276610378988946434901454523558591813179506700861952945323616972201583289841318313748519128612364558358527488108985231652978187313149673709622967013788754687382073961131178479917603999268595192272275448186472460580596649857855000264751917843936185183338593673250555854862744965016950303605590680379858091320880332981207826096995991207228035852459286673476301766983484382508794044231204959912206267214539357416417480942621875892958446739025930400389361575883211405504832957134017128846160729627953489309376853832254359597777844523306517253846026892025432285569515065608848602071944443698859769492363498360962583631021112778269638405366643243365102557858870030778364404317083724995319423791451667145998005589640240735319583488741562209196002803881101768263696520625621793528832446966093100192838273349260098260452498239751926037802410607595480097373986145098782075285907353669588517700584253552526706872031488596994021946485352050804401527861815911986101289971706741793237128117866325062838386552532631155436785926242228777127979746537765998603608218035137943631485342122535774557870935372839879432827537856128442148630906769792144030136660711594037031248148964770427317774138598326387911796792460432327687729327398891001734294819163784781358055138970703825649948608356002976482025283533933093635718230549606666585085966072519542807593298693729254972989143909714353548962985957177193938819175109744996829265789697465614888751829538736678941364924195439009955382572203844405298444243497722904256696719132816536787200885171859558967642061939993351776993117390290173535531078895777601335127431215247656093723610254837676753706610498181348195348992246123754782452463860180232958268072535893450422271171143948829608303792008716723811633238158936359056776529036229978926619986106656766799590951509302691235815724258360702440860610658730192354570005591054517120237055818315410815973596656888930212126976864636850131895720893293739015415030358655155635354089113409753235034260681031881600706574067892426017655940891260629333853063078700740824543146770713773828381026497956136608953368184249437219630885586660454461710788132690295375929594273129376983143985221805773578918624369596899972639355921032937918306697718044285084298042515565348156022383908548551236511393418098773363227040569329371967993661692400845876781030578902824674587521203368146865187322566431796048520602281240928644454518184787030457709509276768055381465229891652965850421232257570826525741785980304970029581950263163863473278610275914702744085997941155126473267229222399335953120502570333088717322907544156025417934850656615409643262872316871297778967015656805910573219889969817350793985633188643723742967309272051066341131550014978664849154945666925136541153975248789702815858279292677037301925364295899186218739304734357686160351513864142816121592458097384571432058685593759779950169309319772348399243834552428491328831824658189927443934576505240941517834955930051095373398759029197289624181212825027914936124449572175249482023959231188525086391301349620800093428310930254083855521020108261679414248556352934002638403384545922293138311922551683356119994401883458314825508723994842063030436985522274892836577292805383028713218866724508082965422361645955438906848897324140909838355268981859699247720386390940027582967819921758313697706081198657415519857605529918097673580000864737118489552465481803041863112815055466825226633481366466489495821525678320203521195467270046832176457421774780708027250154970453204748392294982687085762754460245222991571025063309835571398515355293717725442914524116210357487759909726535678198651879637333982832852149985927353256286241314168811820406229156400441201012109012463319391158821603828834751985297721033775185106203331717825754809271144221930376082467129458863229334298826255881814870483267518048718580112828476218810587372322343193871412737588155096938962530078553764290213736675960496853530765658745704526896595081943632022002975885890993225631338556506710056660869533121536328649653859240667456257225415283251782337576962744206849240877205184315464330740516487078193813921467596636588329613289957872804828852137110782857096296114875187625082980111363464518434183426478183341254373315367626723652691203968536591758871339384560972409560860582185938925096536448680314522921609447697721751994685523623860292474030311544222980810438988698733770834122436010688450173225456986522460763189443011362016600498714017712526431977630180108131225565790213249933828071830722925561062918796884737508289771272770983217749440136390338824489218573250412474065773811578073104900577446355518358867046966993652679586248664878937923036940975664045843817578177117781556810008107976335620737162416994001948151829242073381689593315689892658505081227983285409955973917512124976070402582966870456476298166715966137875974618593645337609142896556716678042217367167056068928875893266741439662232045925349495155959917484842059740802076298543285213371140271638609010996877016242351998962421512982241294562466286112167547375438253768975935344688382066220810707359645017844891101546642839726094547307893197655765222826462253863542004179284156766718715996242612825920666461212968892375600860215058923158121450880067351394379164724411308914244127416842251035893817778818341921437009040490204518411374730940901150712887429678894246969161244044444564919906446729098614222025965241898511746473327037202139103495813318164606375523615332962341224261789301034952374446698102489019500213739117281059520033175201257251182343093953811180103404599505384490993491125774748797440449888742021535327249927886595610189912871345139252337521154216398404364701861517417442131585739905831790437681909128506406043915427120164088913134684529537746944679628578623929203867501900530982885614393947440087011320328095583718155200747575670554591726644660910031480043862073092751541174186557783820747720658054349908803100524612598710122071663935360331636712724129356056022824718332252637540250347814118170685777002504413223083959469790535396465587047793777693292775500731845553817583849746692957988219987368090098393460989915673613368165898358361159498518594244652658961796052647914172080217483059641894265403923274068089435425643111598449987403442766607274978329057740631104922972620613784299397324763168326128101015716089350174197576093931707224750708252739127242675143782881457593425300323569750360723014946542486161297338109164283211002812598252766892433942150066703207141287630789319601189661137359555986508514286165738305607448486789695513134821817265738171758104156873518505512684323829917892175259531203043143287612990603603188581022102799076484514581390184749524674863359930820159722377580470195213957743719584280734288648593260388354401883561926255490886083896906159352790698416172373345613243423584614581094005398359939438963348701623609872531053090141553574050493499512204506590873365722280089577940749410548173897321816317649758591230765297088008528646010704277617055338949246992094292843519013803258090260337852719910554601040300962071160865392450669444018124274061437385936912754915697898539295987083686565362180626579179334708834412150202402482506323779784785229952891999079903392164846048125845318628097403278069748455970449096144069554086923964817972595944262873911777216643662494161909242909791244812084706375073215763188626292404245007000865553072873877104876692753609447113648100633680073363287542795577046769482729996502477450981448235527599758121567312934599448118758364511971874411950000650238685290336470406394987332917566092067634399290244665229576944020911531143890099227339663441490383934377815657525322463456115631333200587607522449316170811932697616193299031128734126293788672802446402343150212956925882537744097487447592032103904332994681073247950833777647197943137288645481351688538342469791227602851242762633415419073196795224201132000990158254110012134045249686368625916654891690972112084194359804778456903645282886245755893917799174487176993597928103576213277172077629388435189809985781649783152068064189776648107971686524086584059918844926619630162502650966778128185050800492422891514860230048726245954425963060511688394226245780417938600484505644431840209763622785203915454222418465389576548409854854079377900394227707605645769949959404643002610368850605242017256812850320288363483397886819761198869724081607632465163907665630461968848862107933012823035420550269303280803421359078579671238319533430874540650462485366663419846601357553699330356686462347870651752583907328151076904844893834182873613706381079307541358851279435471739915791723044981742801840339088523931580290915455439999710655683907283542101424773784891919654664508527990640797158484969950074745890871345532440629414646714145184304628123426304753944027178614377911987796807507531564882946511049548517690666034008312965812996413055610980669627795557805063165162212302376949949121384052581145578186947847370962361700873662025960040292487961918648612703793089950833847203073207823236442514215427886406412328489234836535892488731139038565133987849686573672563665409456417589609151781030843164938965210021659042491271750632710719372576304512750389625133489924012372947667879158909816671821290472060114395724690015050873632121798103080234731707821005031096878343579532229414629592488614905196147535503168690451198487366266785715069192395218519262933618464473502074612261481214428501872334818561593712004153942566120975795309147687646278100542709566085317768226079826737414064846629386193786118949470676055471187875196589621136379277305204743997508239295739370191543351538855297418985477856416516639115683978736441217195320576729259122983729498393618676356323308734561558394792886677731798826557670714867419728913593466108325104744122737783157620097408622218475643148245554980414825298810398373078411462522495706510054787270836667948202544408992526273883420885969176393805356182861121829766428468973414697695049286390329912887119490261978403161219322681578329474718817130073128582574360990076448598166497253033626127228106552714609969464512783111474175221161918462767916530726058050428792093520388202009000979967529965763290669262577821903230198237626896326091270774694162244027963858522592625163264806906548581778240862007860476588835700105418756225857579363309042859771657107363431797196805352821468111530133233616992934703196164521786824146524716454711288094264492293162274303536220642383068927290439931362302729160023896985053157553245454311104144089995693241802079791969329899500338731660787647091133093736838032605273621873600205268008179992735629197379862408969932578003454796559926057972927002773035010619465075769102392334286466540524169934870029842294466315448355207180315180274603296956731487613312516458539223494425667572501172018304971073752877718131489717228324973757540110601651475745923075411772784158060487341637797360791765751671972537401484009404386236104814820935077550553450133939799346966458896091938887842647749606072891882053839880006575653431371578860832005662261164195974098784844756714216455664679937164870969312318202619678930933257176093194840713185552822707505088005934856115493689596062013964726182546753405467043126575175487596516465561180015231943987405124202876956028782054699090617651326699777211907423938080472119890735658200287002256319921741326616953492397759201156439797822596914673137951841353373819060662161191640295926273503615935503857087256096252710619839579272050645883521363085746199032514909599643742561039712306280638653661519014259770707811763507539050545236986826710802321521678872936536501127582175137121088082672388384893933130909718452097033202589134718049854121080544432135410282428124196410187622756774916709006976531321957907561869286940404500573387829758435048955615770997202449045949733047232805631603715262189649192187661913509381334273441286539582539928751309495920188999989972762802608044191403087611233679004925497734875196531803155376945951196995615313540413901423091756872716148776314534079361411978755750343649447404274458682789346768755430443833416942055666222365386984279176730253341649582640953391663106853777287138152167031252193219211688358822280964821346100215325885453758691175905979944614530748944407371323952488875675828649705584416546022258329121152097568923070280150672293033075921524786136586121715617200468025611290192053442465413730274139413171242612985777707074807466666266613694473595085511991961837560030902626545912150003574143022560847281131624646214012973793221151134848884402488896888922635804980497939325794776352376067246174417058371374378022152201666430100237939541585122107748663971900065165782542126575234519896210585870462134845938284091073298954081820476261811972389216968300241387711568228463751148206488756230526378231899547365294769173698511942054355586878512450719311651086925284226764200501588748401920504250894606619262049580410191536520043071527181809457641624070647547299847655783595484077483522397287832404931225569176154403086499356629414735427456959809878880757919677055894315485356973847534202697875455536881985754585007095172730495657772389122338797296695904839262159606174534043762784309152631808942341167545842638876757206042367025453172778999030847295090047453541693981564644447576418402950463204525691514995109959179611242401858771037076217832110083016159261578632445641810218633895845764940761471206786582472981254610136773592861010964087503908049683329579422749255283880252742113934645449590523419375321942100719655111518306928756971849167750145487867536524373192528523241885120547400551056687536465999503412633609274426198622474342894865777813819653473802813737606763986680138319598001413647305976196579468288971716116296266359801582171278575935934011362546522784299656945772415411648225048316711392911363394346236498033007725835993446240225237017530151572928136896149980214323308293366611403194625256701792673056388405432033249052452625756343834639681414687613039351157043809938142520255459968472966344589623760516345231253382247310962140299322129711944443744997623020414525715695615700855277548463177546145530350677437633625023325588462326865504008991161390935470583959590041676410198425370529847598162485077151522957849556499670380570605269820470627695661523916554519717698483131990358942658662331144851992260854176135915022280164412619896959263888464296627875123189711069435008244022199567714032734796121845008881482699028726572038465309956629846019162695029317024201087573550856935052364698028752979212212482407452500947670688416717964711547980735857002676814935854128770745283657853738477166934683756748790028606403302568936415893641248563577157117381017187104306543863988159047664393502550523517059506066366441598029141178691398900967188927761550113628963550125586582944028383385905491950090218564659787363337716654096006833959417457534955618460964878314655652594107969618698417567613625769956465263254547230792184263927658651085691488759914767994853515326757939606231524171005380908318836052948631772693359243211711494159381838306753874246104910664917680801649222432744681554599070001915865378243438304004079222583904067648256114032550725568758935560965149240660432218163541482407402822984336561742509263036954065415318054246936947056520439142922868024342477385050674294102211178632533651629675968845076496557772879626433958851662088582139658256368342661597782158352689015508469758968978639477312068753985028079506480277814266365195975897307118036612324477632548848637751674017245690871648132753179261664029985477887062425976043106286401582488360975132135449106139652418758799733056537872918546533379172996774155389215081621420220819694448269649294879931802568303656682202886884710203621012935704116344975762396400677369841895718048860880274394446979531004148625964584556626985105898037843498935134700568897204086879121991126373636041812675519412617083592967030354656179354841652189127422926349861047348436202238033729076242802575930964023211746242176464686414894473136209897755327457527940947101995901126959201009256877341600242648623001934583473086317326586681566612340255407764203609911223776615031287602579662868333180279351039464470143371783978998718710513774434924127626177429584650021343855530922157534446259689350568846661530336765663748998228699526703577225608560805254926992904105316052861572178860836924268867863821373480189359186836179259624201689491994909052989389019197434722221950966606072996171661398112330009820883795016933935159205626742177165203686556791922918898822816744228792554084464802534905762451548229538289446175016002823281388614421633083321342432156303224040822568729780395623187378362267160495568733956429499331865970269779169940476248594733835086238811662765391221603196126136785884729550685534746067137102376501778302850951101855805301651387072563003284309386285231646991390755407492003803545315313934509571835786597191925729151051116765816203269292717300046259957951838967906285051003157004570417587302092279818185326320926087437153757281927033350964648329255283554204747319824807588953426124219610884000200628806174469475751780765046605497893565530046115395193374819632612071983096999697369010906660820056503732804326765542338157012528245560261416134462612218485102430866872002549284032156717378675639630997192049955544511251930316004621415294940755856323910131611694093482374726963991358714097849499610921719776658533860757721968969248410695237599020598507166006103598413784887164754138620368203216258975775203926336821943579538449289192765801556551898354856010264605437537405741806358496152863222644387135332914427721432156783101832284482618604970411575424369396104629519741708228147451282426139866546540891788028945183702095464593446973846599218429758820314971628470039559542278255287810177418393027070406245669706214149270026678130962476765305342218112259753885716736717828778793741687143937728383394768311215692269253669077619614267711456899994140098696271652439536075898075563395883180733386558510708748628200852982272916434394454729971257416724833211665727104134540408813980270156192611678660698832759712425481565781007077756240092878025725729494629612200644708352016579137508939664431433572918666768452098336364112595067712149792443608214574312673398810205488431175215907055092807859478811945652919593786905780926363182169971841477828193999516948648496526892809405039826484581555328654876170421531563061785378314634266250355954707039588523456444980716115385862577850350448304232590775487888058284359572880654063247428967892657282318449480086522289525004195743088815392537988601480813066435784091750789303244642824059640867740677051282622331456098982339499955748111158705522758068121441896550251506392829554174484960142396696923329435680293351932798495380604609833107636274490616893562318113817830626666103409471302201571269096859455800058386350335778695759731759966974579746952286683974703968416290417579583028784898743112174746802474294031912034636544081556882127211393026800633986159568204402345655052411568021411261969127994391542785873287131467083733212740278978404935045551392061433027833729839134500588200762513586575252678999908307830507877526993911806913822129728040602870265339200453043222337688044719379173783438068481523054840271335550700464299639649605175891605083211189063885295406840180830281354706833097436641541271529914816029216243021970257293476537433981089913670528803550101004468268283714073414206798214280173817368368215692978688125442734825732524128064045882570196862521567115049419473445543469948927224499262035252718817454213641828939655279911725302255368071673573449150861574617609408769694298001761278075174755549160407562769780045857612959839355192327073288540509386795455162299671429780939480086943660857546168507305003056905043271070311490909601557242789603602781768471077904081808800944113539848890467979276374346846493369959607605905391131542635360425812292459656422130013337740748797115394990487786335895912908590821641898192441232589796444339011593199826381381713042429424310361480272107662028149146495305435156568088988958502874894572376255327692339058690102502949104924581557619554581390186966114935193756080655638733609724323317186497699223424282665020103829348011216392882698977397446238956407516721681715263198091049902632639553194547773873514751724983435219470027206964390753003556133291604010119660042929651112981608259496259070131320228026761509483545736691286091132028271694851536355722748997638362507242767300366401912007848147603345066347396469169964244534036106548987023564679066293393302239665321995741830558763228405785167965155100694694689064358868197455983237910269367552496788104291128607499263693206506835305623938276706814343493749608191349138717319364501758096887789704218146738249320721800987611237337194207643580004673843019293796787209931286446452152348378137055149613422191016839122675454496226974377705610068978093657417312412203732529930612253075032944514717334026243096923566364149129948781847012044967818351942158546242301325644508640512442517561177989959222328279001313307776160359493230872592586359388404058428878439508518262794387842243869568058009260583338612472608268444418164055022021836861947713656522699566762991643255384503633322230954285992767645346545360316992450179376841487324199039572990005115635743214765997444439206112114023046353691348704138699599738725660514266366365276651858700480889752473066355504306222470199055567725347465623643516538738329673057520554954305675653183919849136257351159142630799757506544276953845215152127069973675216613065435577472183872655195576376454168153476736807546761480789331057081685218223288117701932516514135190671249758531628976940344787641462972753320705493150583936310029089995338031920165679720793729814189898896615723172294466643504318546411396059743571828718296164355774159102286132996255120655993623427676474286746419641403860887865729199109597298350895909141965664416249093764581021146178532566176628720729698120179681080010287203629259371475993366378015289234668142378339491784770526016556895517678388099954952787209529629580710922829167919709646906967575066752932113985972021361489350586865710658697533807911577280024157900570793895004755265610504628913281289523725455911852127414971038392671040298397560884733018611650726025534724535329077846600462262608016167816387749935052356467777255654840703697952558962735849269493008629991857791450800895348060305003557482150535611172282237895051344308525954675431152356686695535180506577100340718970303599749291944920367015510851344815424678146631531903683139533574499463647566272770078129276137610217537397058226012958541162718100802612899159187622585092031700338262279078083549972169089939077684013879278055985108850270796855835456659454787269326226288752082828253888031072107208114170410821953977320553896232267060556887333158654281710990670003432732401298593952068415200876119839037076819291329412183932625888730182575782736685373589530268639238743615815269706800795948678616404468619140516571073725561245476286488329992855603945781763463579421452820502275215202008630916076907066305888942627230390274246026305653550463686646021920027017409423507894884731067316356542351562523085277762598923323715071493890383963878219854818219582765695606013656009449178503115657869112977194567384473976777621864325806224742748792452723437001382739492529077420041198096671653576605239945027909961673436192995539328767269680444487286943424398708967060944003109816805853517716728398430049030451648331681269618991422280189737600808469022851779124140161640525421675484641434205206685489296628910560810483173048558743523240476654752778830320574530055758289095905898351472060341788118680702020566764241375873306718093116426390404221280620600956677995896336686013558820669431228191019440189813239172745894820650318703069256753899677086597011404749344585932419877757374255711124465363468050240951116634620848159430988878833973063120706184593831590680324339378553304596615065164625092042245190638231370336324261319001268045074919026081982125956229225593261536421078194840438743010084294031104026041532150881552864874040351134052857197401800314838154059083427215613641007021421754371715382783194332125815361470332903861101337580191449411788119236125581689950354811238969582394458779863256768628560736276405702247117376268623936777219710343244529441289767754009386304433673398054132224474947315753052621136937662634128449311800463029223846115540532421085060559799779405936180051309937811696003482781282339371210779866813536729920097407066707413006430936523346261838463565006946123949088738087350881580568122753566617569749035305739052407445704763159239467556782894682154880183123517932357717747582321762576372681561021679303185942480471042614735327299399913809872021421622961463102120124144997292611050695211732826489407753125122420845157629134677621757585119232276184307547977089809902971205236769234996634838369446015339181227904356483757836704512068781445782966978957757341779037638406963516462316122956656824218995679285936243444001377564650691099021536525973386810842194286779221210713185454485433504197982792310183399383585211472226168106108838460613530708603735526411235609838545925470921861202990500106520640143841677730885702461088173805073767085213702307581711538849696124268284272891199575064081588735069321551521700025868409268279549184084566923093160931877970844419450706932944095671700093224341593305915150447103634874676384093940271758843537039045525736740189754452914018481551720102170879521719014425583744228076925056807726961812491014169361112292401937838479613957784129739749434673288459231919372955011959610775679473470928258441147777090564179514195989770712353400761913638522306967704134279845224527510498324664457003678032743098114801153678574345219331198607883374447168404523538916109975267634137678812685418943101171863170680880799068124748798711307329720375498382073043604873517508498652894629801773903649016785065570574117130727500719062168230422614122942031780059979596586717712904427141461083349754106074622276480322589141433470931803591018697890947372978679713083099635569065486612542221008808566818454367576314199035119345922771785528183250078602377166298050614092720164968194222583710695394004819237572297633603598860347666990342771885749379512413845980806435652583564664268790052542993173154031669674513359383624077676682256733260740040064844542557224017223479447638715682004009210885568827512995521953866528358277534114811284761013313116217230185043762818881943349585065252985400050271356377816121789720399014977158534712781834107795694589331983834069776657289813188678873676556652088215578791072823479016615738095710952035420494837826929778240721542153577783669273552153803601871557908734832902003620003578169985593112022847081108472809373515174336743273405443263383086987921043083007616384374956231355030220863769070334084645543671479897547898841807607265497948641126139947638142943431998917554846855316513171119021073606825213959980731323577268235954393250835021733550269701329094030581586207338773663269257220469389239267346537619238294123289444396519574843461369845277467177066354616784127907148122859035671763910138780776192753946625592138059857108222473345176198433696489179891816238459889943533419067907248016023313817235126620058080683103368324970388962304719699013508075379041271799365154579715904771976472138021812677311055342217188282644791578882002095888731412119261225975718302680665274929797094964764908425487233083997893316398023628902582626116322117235273325836509897238491987704734209699084529782157776404532424331189236088883050236841602468645689228860076717242890437861389706430109119573702223340212490125493307718211407447493361509935887271052205601274303524021832467094152278580114570945809249144413839796231179231671778148917631158131541416863845024596402726572035312966584401587926887495748085716197282787995790495802671859326749002875182499033293725852807256756256220900700454162317438213597329957146169747593558096682473708781546677725197322594088279893845704630356205977370440238203863779083157131623896966998450282900462700466924794118783778401868107036964756497636462247097678973459934587084624456488088682243870503727393515558626655089200321975897971736560007020157799364287961307499643508769067601668169293653298227959060859784939989790358619918938556817146583086429454796037586284361211261708610189804837987470373239438502157631239354998452221808117338432960486546717015182584663342336204941943088413473636936287604045066067050546737780919383927253249265795880715507403363267686852828710510241928053527903953431045956343396939481068600488903437632725608287497238107614064820789977641484793527749154921454718620011147816591348881132248801220180062213129691902912959462955805518176812654902525031104819812354210638100462282839046197797414732718109352461274122670959810714580287316854755916987056861915972636128229617014083400593444151137209785069272768459624521727382326112786160678701259990177258709257497382590372721406803422330495962198316708412425807910272289861919173410110031518012513348281307379991203765626362878278803940917275939870194971795045895593019727342812227546908888329613339882024207121735269978052137851611707760185456368227735748614948506012368031696142726563257624263256557363887050169420982312056124725509820036725092345863090830298723717645527497222656165579614096353117776180755970732523363090641311192595201406423417331675551523118638795581077327088031805025862483630023686069971412375766272008852606798009269512527372507824495672821394667978719400085541650003873571978832886528316958152741280966997541045664761832027067209872863052224519646345656078386315533986424435034787316767053781246925013074409030694343333736794375640502531708503929852046059302462421431503809907126929932713816314772115471404227889389220499850596213499398646106001256123502002538038567663621705095689391641210234012300287768619160908982347961110512173935513594232913308084130337492192229830522099346315385343904126574993227731231858941929578746480392422901105382666905498862679368296821175877843060553442480750775094226475952491431566441662449058228676852946357299714317019791038877830358464682498582364978237779950536861909586073874051727813233392322023377280857500201991456202791996896845684316678552247889532299200253323389975336863217013660473944611129182960945916855674617195634164575581559028248614018080883979599730954965274304784840369094729989459634126638200548757525371403264979762941357005036156281227481084486361333201794757888969915927777885792569324224239782620833319558948682462281811795147624517317658066625705070929542897669569806755477395266595852868381836271347558425439755408694366643876973191710107765354242936509490068821175294211888484449822286618620151760180216188791405062045544305568031852287441218621980326040889781123422403849842297688765816201494860981139602711940726507704325391861639830543846647770400507084870798351841976264438890653799450306500145974732840405720175528627615037030135675797698159438381738957925270472076015050026311517805946772439751858580584820236707972654553875607872334414113480491535928955494333591247468698858892301455135758208835490105486882071819014954197818160629414298607289436445165343739970049263564303813504688079638492234863772161707931629748409769932096476183950591681061941153192801618726421014211552212226826981339505640151576254769348807399508114846599177760271954390009502232305427657629944978523978800454980289022601556595457955125818723392511180485780471157997264487402181327550077237618952592778493861424315722320222419332278029340922587194642085275407278952348249380526261196902743525400583919940864989330438614089656441752873124789279078355922618886176340410292834520420751534337198824834222268716903649355228269254977171000779650652901079457312630907392756636314656032918945125397569731235317116018335167653309103059382378480957259602259203851838954569662609979583793132773488026839916442472593819004398099975541227130803536850155140332139376706937952456479133598228774525302777385293024114492463339760909439979211649495899769628110331924052146626360684613064513799032395818025895921190827960175801990779640728981831346996404085499908216397911365812745168676165195772186668138604430855540770232835235889858172296499540831486616300945263983986342153819796435024549173198907113239534383183830310578054285727351091382408946390670902875828538472469287825730205601672231190688297146685019109774223122577100972444460145979154928109906301670939303206473968231411838009835444722752669716546369783706516197409311778612327659801768609730580576869298476180447768196494774271939982377690155626536929217925850813060006335763202793685705491667056472491095795710967763737682951495157375919341942155647855995380937852038606803887576742406063828436539436191486509788664843136109488080796498061186766536161233177814165932378872042719958471197326044610025007501981701438288127902802179257842521720496456620893888541008043411950487282950438205421819241486404085687309987413378818223870461855475340702475222094296292892946443186868627479748204277538688904192699314407352375544311247779730844127569064057780850889366907290971144926982062605787286204635285689763501586150465675307565861398796429786039594201501390684236378482912681111653941417136612205275394384801387453383289954665081236375983309819600500067689937162968341099959183981018373409106794064711727454832281592740032673790668908923683817043194866285492794806537631317362353260848262934313138408934883397708044829332242376705922994151520378851870291677484855912211142705635305251473128156329870585546689413171392947737973594583558978444230079356282996984421353561676382622927764911916620183389147350642682145190616143549805355700905683451574306172846535310991266822816108027037863950984279448088552478139312685412713555078650015839358504681352235499433358812087999972003769083929348724040732666582592248302183344840530012638154535704458329464643921956018043508818283537771217665309337722779289142550026269005142019906521291687065230899042459515420949843596491369560637589316323181582108610533487467271881489805045858189925985682683315049564975896633536990632498694911480830796440710742250003163083906861388650615859157126921317109196338538326577750314197994762285588684099097226837030373624987781028478729441517289514830089157843743416492283908162708938772237718542858454871357793424122220399113028191165734245294352724544344541748206494368044552914171368982799645233071104177310153012332856695007036792785919947821536131221548765687304496269460744734902639099377827967094246026788523351599557057500539961807728122829974997984014269268243658676197732502286004718386723066084622624671912724662998256993694766732931705791751579326779889283117401098173674953235026636516415509429146307456953200924980268255328476248045746880710497281297437126555696584428921152968388621638083186869643412488820166803424035210380257237236177093875811293355905361479741814737202093388639971646074788003864264895578851355590580575649547074957615766996230661895206959952618286514746837912168399526312803685240617922330350745623516437924064933280310990147435201890166569541069981347572724191943868364460226272744361954847357557853085290984770819425198939174647534179061943347581835661672053306277541663072313258987327264617971253486173011395997684103895177547452214114702129634231240711241809152972358677976334789644137925570619619117070038936325798648377081034835685295024330395580328724045313061255144429433198303235984113412437988642778769903692142267224679427535441144619288657428293587597817231704645667193106462333075493461135386942394334616372021445441417767472635211247433711496868640200791357906292562888050969947157790176914931870374102055978565821655202255366209135309610285159845826860005198072403003626960340874135742272572731067291927460347507938641053695218031084893326220539832301839742425827620378823172591096838858830153822804208122687298496759177230238886269816066474537207682139079555805370949479869351025651885063692906760586130803644000743779349389490061338942201664588911799506490584829713662571281610462284480321941159207549375539515811147510164067567411843612534778160434832853832888713972774531893687819577617783260597017935395959957566516135643342115597001718101955228730187881219728477296084286254692071855995131852244010945584617743977020838696951116121956682527597882678692764439449153391417847443581935473247586422668697026277026817422915729137627651617584616307348205197219210194875671381998240086913639691768437757891797114754868728151170849273360205955518373831797586611056395346442855890074696760604398383659895013264500471335266207401966643064055211888720703824899731963942163056723516398763163937544925132601761579411070585428564956514134257382616333446549857852685947339706106450555907065433349499621233867014558711655288409922411193538911206649262033135652226679806227116520257832356540520154247553469883770628122496162554000135137291234186979586454491786683315287669381584949942909272145495383338152826205707776006623179152929260617686499209862199323611808073585840934871799921785918841674062417584727226725247612979805088929263969350950151190937771665883114847167235065529821452407567341652854878862501304782604021428690713821142986955797291571346223449835044191922176065848837709783405682662833903494354808534611661697569541533019877747965963204534737212780912273076976452328574423785838878602186839293987936147173666842697363701716327110984403238006975199646178327395512890901730304249205491482516741650726405861663908730135074475013156293405320279430685145495623824979742617040676943732827856221402463145510338290921972254054825577627725363323590030821551694111554324612113617595559873694707357946378734114932273350265785226036057971984464448115371234693125836076816726722059247825445230549645852401063136099211751405722097514533591152449237101024999997399026140349267089980308260887657081883579787261170105462537377933696912185035182589041999095023985318062329017415437920639021536946997432054687135657363581937545503666962610477353554297784899217839510473105901736653999121253321639602276239959176995397890650477549729747752922033619479356722602869464045926079845608472729386240861301197331183915228309753027314180710645410065418389018484279071110711651798502805471241984749325105266147099551184167656850292567607802176109028671608156701521110629442056747980003222665443227109890344107783782791540385440591074846063585245732227577734297533150632215128178634193085908858948447237142534200281664056130028815248902585080261695754231108457387189754603559600160013922309260563628987526909745404131788426419934619058046907028379208421719925774643574949054909294544873199448545260305758572867698113966482264320789736955656059752148128834285074398500687988575627334919219630025269064372130061369235189979541077818225455349164210296051544155049251318283812167648800543597032332908242601121988324217881117237789434362220455337280874005063436158241052096971190301636755236932567785995033521502561410987308169084228335577883994208002612086165267865728349501375051247297277064156703552335115967524876388645613289780191712672424248804438418081781272626814328632412505516958914598322350085905994593323106011860844847072582765841270047977286580673418363945784540675230235372562132198830965627499425966982732530989367670076294424411484926693366086905154398890736234804194281230792364015339385728985550436636939405341352118872019713213104430911936971370418404741753175934359971330342226324164350017850633471553848431449585634885554289870473012719529425771263525497746093217131614136867131568905635989216198502000704727140268357388880070330232022490412710141802341232016380555645524341956398492956075651753252227313763800435785104793841916570005717213138971049490635721407174078399373742128544831998243564746754024771270836979868076936847396170620175378215192658712872938886284810949968204539492272685236728419086277599420709326131526179260403071588979639587764460386533628841166122219160309667418380502676712297266691233638982060596258715885368332116464130226826806659128737845379774818542792601005692044737468102446799732096767911098433789440816064914912792653720428331791550788681608299819689522443713619177995743785521082500450228616755512090457595872806654766118301636287180488771819487964247336350052048364230183192593344460927606646671475344459425454201824355667654384477247173789959943172878912366337658382628146623714995629944740173309676102877287410376361948598043497492125147363486782775025995123589257959410497606333977105705117518721446383050723662262403206242087569333463203716894298015377229066824858776888331223047530939313632790295555300700066137810257970433361241695557974865267404286926850927088765382827543833635530876243913046839260766128258981865164635906188017863476380518987683964917653448801469674316498979989091103684370760595630951264494972269676843992135069344110636868478787045563835310865745477552312005643674058641935046843469228608454009735707377423494352141230733045049295197514646610975124602471246941058129071320421869480844961848304478446600651046274837175081404699793477453397481157777837984620584199332665293771624989130987599183771263562958572952365598751038886924903651485762047308371361888540097687685764188960396137818132340510875558067425696757375140504739914187356836168710120062537912581376897704595549536805817174869292664915931417172523295313705932968855494875957463965898829556487720439574749955785770638160552913966550847780449028298413344514170034047512393011620524248252709759000744061185030034631202011714729119273903049105165965049712514950296905446891749855666487043119483959211305492798940952353024452646795353669666705733328043376639679700837485443407612311885188274127178806429748868371466648642320849169844672284085333300124008673007212652389453726925742479169912863775724003861938320799727975855851091877443789594773857151703578826276947494654157123026010743613813778833016853343235131888395873023752185949642226255351655953089694428480657930610994707070992273622821869386526872531679442159063817962781277588684094744771700274688683518437147342321305417079675463366235552651067732295627189373772382581450087556858613735479840140465104164009038499741611401386802120744229309887093640833538257413872203122984554596795278667543208969342371835769924186648721388221628200673615913769673503620752190299584678527693512045282048712336018359174047991132724348303145120758349367734208912187210335224847834973244592068144012285462240114915424395824871097084735689314446202464621434822242183282574154080653258708436580678945313917105832473044304252858177258095439261736410481394871716708625375700081939897168364186211640632602350725063580874840638989462197929751596660999032485045338247941097062367288295004100156670194435773260019386965250677565859423598677754156269480086796819449137803228122382219724372109243652517186965976033098077749897436389482656881148082462129647145424551154666443203560356527105431953440975204847337883672118956925445623868342619151648397405599616355892174911790723726959123436589638791325751805587352083463255739646701435600654505949882065606940382275557480962955336699053519692750036662745557801209980573849468955087555036413827361360092485729062901083491465597092568967706642595140499862871614116643962882516655809132659292131644153616019049774758386856445424518937975008390962118618514810569272493703622462186786750951030505087601545380755940636924308128914687882300933615177006112079191078939979384371958911039944005623658211425330773079346133412108790721572803992306307504311245472842745319985701419722659844390230516994354678750025707945687950119033931402346183590313100198044738540668722591801543335739163024457796640977168113619041008802962485681482595156050049298087133514869506462974979463994886929087479935665339625558327571499358463851560076052329323867704324332780823425354362901024701849247043065745894223784724590001606634916574431809216386172886246699787156940180508387659890568761266413702076093617152458119677166750214863914289514892689219110596074795704442156909952582044081873921139976054669866347202763991663326660375226044224638886198297508285481216135242190806130862158716165437027584110663621191839170240970026891214042198837934333286102595730024130332007668809653342518055326758254153531494248433744317633277271168458666664046130117481960769029670627545531483352609465879303697545224746929713396436364274006780622930900598563805745487313505117706389400376273867560887019347591889789430519372451196532240649074457511029496690891212030600705933208940832048317539300500442674852920555793452271679569171305825602796836622845497602522089956930312151898911261491491655554801979793167788684225986028799707933516904997754587125131991017988395500383165612603014362921488661204966556425650520605337182281094709991316877061010106614773404003278057544615227210838225521420023281380366904097979725976287810200277521991351516349266186941915248213337300740499643223336589006709395471769185968905797394504757040303987232256107276906961167732850476996349298419034614258553606697400392896468710297959615634509289515750303238765827484199944643407105369593741993059739245295336344186352232488189498911642205782416719107209116889337505337129652502343300800555832707691773549638039349492245045598039181924567990134965160912352900929478742025408370983440789498627337200957604104872031144094429035941989369629496144838968492441835061502065816554696027295453114254618501713662146792666019288780388075803452996152528052806374623502857445798640029314244483010845720940339726864318667305506347119582425939095032329167980580107459662652371349957883204290498304184373101081666741692254577201107329817283388708327820707472206780578783894429235108938167859042595926931874186977451378513186675743284757071920555215918054733548697412092072562753558031442746944293244909956466060665993607153656267396941781386153732384685446174416097345673279571522170503936002219789955761745840316925485274853818393199468922250222676370919165231829056860088236180255047637662822832613522486643545182064253988970359068492347358326099793936613206800639602097686684796843351107643898485668583622251022267212135382772127007775387462178676409183101576156186799571146671787701162137183809976840435513895664549253066728975858863979217232031363684818781637708200286544478099190611887821555643249233680937937401245513796932577722628167348481988292937163558222466501099018027109139210196719964863362414241014445910415016573336017763502389000356241817649507599465024589313314617290391186001556888079015338683412897952674771980865761100635667676923599197532224882722186492734569493437092808036117201219492886704566844204479323114410597699190076990428017187948189453942546429477317414482071499639604297031767507407929228863540906233631614576962813827861567916887222641761875365022556659709196771093263188701521928972326734376294491784465909545730526646426676235598788027922374652301444752963602952460858683056418828517483857427244562694337051193766415414414522640857636599888341810889097904115490575139833020060892970153245431049187390723250931379279119762790914890788951392961973811342129711418221756924240257754398214005996240946682043102875929027582558216880952166929798418463532988435859501757146359074468657208898711366431180114706034035015418861560586371931356366807445582242180256745084543464428042183966453170352789143070578316182256759253711317810539043987048258379627035646388788065019729522194780504741879285940116508051151599861307184852616809839220464260975359047269638769430149801898346881484775899578987325113975598529846678064538055736087001999132793797579502910465822708275060668166094070985502570394683034726395585567827816754487244199231547520477797520780082033572101837275163905190965524999369591617513106666694515292236834085466319162010543907341180357508917837764451218995917814920575203163466913486568772938210550008913646309621584035182977595830287171991716142510062436671333712564402557387746152865772348797182077049568450443946384726586770822028251016418773372177996979463390831217689890262479531284555445636566404673231106308829437858512600770281773862217407378844774334930816155602649893014448528673018228704658476920010545757935321234065544520527835532712744004792625325811634321303029941566328838517067208967252190079718146519897552433652994321943951386538603140676633116986754258382602783978720609731187162745264405916452704368575023743798142081338778824282992119521215497282001874425652995845545912564891092140564765075866152402499634346302196940465630992509291753738012959137932815640814111622860976278916098280156674473404651368658914449424947852603694823791837382736415356669899760680656538886446566575861966682898767872955712601525679095892903474580414766630914446244847439066363649590848847613722973817754727998462614438459026868921842729587225386172366046899497467803232749233774118680950433074889007916472737071272962914083150520951189928010519686304369745505539589012920305476329459893431895896414884326844314610968311290329535020888471981021601855073978143414957014867871209103024531954619897379753897135921238998069660453206879549971077973491556271042512555961288952566689412672841111951279897947273635400683215785601491539824121337597604225591525374202837806682558222820295024138463127028412468076985742885676561936723961894601407530455884656729059629778023492317442351762003543980727129078715849301660867881547381380536970226980963367368833736641125356049700375284303183615065137361834065945510000921053346285396130711521555801661140679251091971260701364330538563946631806506634295444373991776154582169002451546705870618329552811941395562299017979142479462061481119507122098324769889468403117066159781204500270183924349126505727162553604597117790761141030487462506910480936832194151417721546192689544839546643320416103752614564897119895243871661792925568203905008446160301138928427949873229951892917694856452220937648757573587284689252853868702390590530529797454497619413237434731957375484441448674742647343869605197747625876764851769867642044714774452970660078886694808932472019251445379026593442956372306019463676261002013168959503383469821003109694453053143324666139206945782449625932099323386980859905811800781040353443086140325548550367444092553985115409834259667285600591151768865943290238819249183919047717147670253537886654461117857594113124806711830330800504393151636256637325542079560491252732878040095600738912121113006796066121187214022270751128834085678989973391324383384393013917907516327954071826240710498901333796631519998199842544272333860255921340087561688069525378278537359802817570773661274816367280309659052411383868008991664568398592415158811219454686295215984096499550609938872034921847575546446642569238534395196856584295553821914037292134294212573197016987034840956596146137850811830970687182382896946307035112209753897806104648785261715398923721883191726443940300171983156365924589584492361696122934706815282228402064165864889792525430467782898663041417880367138369205162376536536247384505154202552407603049408805475472855526082406411327870041431613172092203040827845983838478393735383575518135963030166294978445913082756550136008943803300954798806555121338181723499680317885710731712189365677848453081575055928025446775571237475461500182185813787185248464333973077885809236351227179075474061119676500977910015201819415719903004891935419171771048016240727366849779485273163756513677651056235472866720396757439436047319299829658589484625559618744448453723865406049632649085513191637649197617064359627822602477597377404483663203294648370888471590366800231648885838356034091634742020197988498602714117759320170542926226744365259432672069432107746600541181703106860015040819156495931779951326652681502839957067062465429764756806925126845378292005427498162633982768828943383014775270243505525342580404391719674896771194215221053301962610413229681560065806600229599813782460854439841460559629360473083537735140416176484255403959009810353028724575684186318257110187336940400063427162818837532352457616942947538076471782786266232579937814079992963140932156155937326829789455577497455717592122649557765748128257294390301249988648600377496582466508331240607483171991657861439132837800601806194752953010509293084819143848343535673972127109798047215250729854578256496393559472019012137299032781547334815417725516376650860965789674879012464962357094787371305375445267543427644983798208151407131883265560317862910237235031412588964434022562854070513428487797779063416380341642798077288884476197481083050268947151445127104673613418170847600676872372283846622154584253465681332578684638074710739240600581130806677559969886591223096694596708393291264116004615778020383917510743459854939661506402656625037380755829924118809275779608371293072152991606884909194438115957962665209817613044065979152118386478143596241564868179819600307179999122964261471672838952454325665013107369581243664405896452110986655275918922329945917025947651959480394758139278417816416390092025174821049139667743264072137197467884070581084071920414492869255607994189881349604187100935945685078672947726940980587533808017176170078530445246646445982307828148879679158476462287846781118165324029324508669415268310049218654281947950003411982421342929449976673218062836757090940975147007746245487798585111860709194573229469586489414360410089395214945176215151050714077170277087108825853055967541398579955889999894477984296592415487232768141689459369875237077006866402908922997521053594550982988598125754090527477742661435730396067702228643725059945902935587859949402095573721338261486286429478719119321479448708559309121226104595689838532795976285376347719776224097968511419901991047581426571643595883622192347776763343621612909113012080352403047899852716934547730392363439237846223929419912895512524457411306322300323387571990756876114165670286136528099860401821852572288029605340811881835591552392987608223096658519435764439275466027430598654859999381359094888990826721842005792556456728047220785331967877546452492068373859829871051172937230585314271790232548575351451224489116978102377465823238727914276919373488109032293137597335571806478590050879607780302661115785947655612071287920346923995649285122323800279940095578625915939627999765313112053683233548487572533311461213627780962589837135737799421031554621396394290263159487479825180297154349985474742614910749687606022770184718278365846022658608209353745318916764283357118352264415557316499596706410977105017209075148554988611260227046741931468896824734652143460259023696532697196701643637147161914762248244452671076553819211634683484797720704389486321274985787083041425167389499373035957667204547612901072341938287334650381365699469058796518596528889598294711802707653384339224059481056293247815860762531848192921122314163968927284034190466633700610457741830168967902785150242335907319031941223284569183416627315826895327601047940632651007828937220491456257721132840293409889255439870737157943849432426825775303377815662514570710939521553744230762498599631300790303899342143151326065495766474351123891670016383150604120426714089558643259175939553685823718552008837372745860601913130661730799178391456925070066948378622252321171136615836129919614704795539792380061316034703448370952104268146906540143761499589640451057788067705231467536397513162870614384834942534047323642475946078064170589254667467163278730118761868825281711838897979982538095663599270454341178623188982880241226939574864121477994561530372868733903811303014927133463110927302175531028816422932586478743695457066800110208076008749499928885499201216322031492768822173010327490568795705876436283013004944121420966448524928053245407030063548077443097209925402327194413585418712082041214695691204347762083109401705647707889448189839476301979213849329743923050692625889501838267846886886659123947619235630822276509971547690364708453714051601299995473681144297091613610679206527353035077406245779056838921203494123185621778762994025589315516187484213625411560487811014792031814291832517318650202968274179376180738832735526286739763658915278339107312964440058895048588584126938822466390951383811477840423010281175503535872126063331631843090134247408202569108554207155391935221881065383048292289085697741332999597461364797690727906883566787436625336269730957341021816929597414781339034797995573504684609480524795224120289938322723484766107154043370204351523498654522348944574415177352922205285182901913032758908098195834714886276097412393229799424710038874712204837562249515400908145918954306676509297341654722413530932668081542728967715988208708372803112284949639697594888434079367053092393443771194468378841314598082212637686220341331793477990946675702431744858648855307700814120349922765506122893222690888579428418438641591771759289818352138704843583053739713850332242989102005286486930301734876154748080074169861225077348376849044477282015013213466520054724294516086467692429633025244264555007048170413485869620278673641390439050332351551239280891434044511688177794163058910956706525867423903732014317104464104356993567418510553588614349076884008551895207574695282022438335031961146552429908613608460923620231608364374051752398594494062263361949909905300117083341126873250066422622480242922407327473546110813494062358965936600462844520750954512222304256610868457040392491796934233673531461225805900626814649094338381651368523020360809335008916259089026920014522568887810159548703900561307547002710057617900021333822411791003813938062058448125393889388327916273728312763497828835225868983878608247196187437905049811908055929439908977996869788505953883640957239264490930988176470046601890529257093762012327384732645268886580540591966852003600449687936456940751518200986835425384969260431043855766476466288008461253826495612795270581663874762411039535043989095933346248296510092445192616082323232318309709386667562732321915343601356736018419154910048208862160302465278684305987688704984122268994092953239059991050809898915601104843096821361317280713448713776653993280173704522830955428604944758889742590951875598825886319682427678551466662629899740720370668691934896992336237135189640011586037970394641204222771726190005451299364667945063140095944703064950487218302310463146947533986150702560541113844271326295652615335027816232503882708855188179542488788744478037253214540702769963336015519418756287376037707781664730700678801702017063457208628628441592969872677440123725514498929624447253554976127644703487456110051368907638985743839919663768429455634068599495420348652010377953390182745528647092450932507762667169836542772418369689925385033974912342599168524660871760141650023924785517355636860560927408528766215342523604047230427156386113857776899926214344033515405403323379981582545418116043622810951446062974216827764737377194086427873335581762966136754069909011776693380910851055681809802123161818869996234987802794754039466304355000808614947774279565021892568288438916853415221656944599704233186851976176432367080244001575260364069746358893918818928127514445843981757244831332053588069502418405039857775560513102774022580285173693354573549374404994312793526632250485328210354957468875840387811645921806267182854715767108096557376886992407185752348854887907821476994636782039108010577589505349857057452232227338423982577909966423057478049724683876671018923390891269480766934090962081026739328498278888618562702828803282647227895783290991525548168670818044540544516057042542005026565981135183579051821388930609894745788799382134291069848854339114377908673689171890473342906855383845539443924237697981275040632427975684934495164402001422637659070238981281876276023494769658809650402052175387788269336383626774951404018805346061675343841985023395293949321152005976901687381033357069291511515165924489209493730973912369354638787481869470425204722073709866007580898063917126418675451707854462189592998931384933130724429112812997829315965613025733721687343315607915945375617944903026093107877451932668751334316538706315149370147517249912900103821117249373860612375893776660600336811235687094964742866781149066114510170229031895862043622531911972419383433924535318842570314621781105527405519399275258013338560531443262302115194564290540844241846809909210720883463896415097934289689870650470743985433540740433708314037193661385730781091665202298942376719586768227894217329888304116502920937354550335494288186939885498187416243579431871963535497398463466380512031548469727866565100357223461769812398024437505185605802965499454283146742881084386802946300335356522598265954201541317082952282044026375158046847583602025672701589456090835075479608601534449267279255169814808143064523692736101711974239840740119285711229156842645235398683982396933653823662151297216995514519468891986262619769040198973396106627392462872216530279590784983398235810905938111831277986865200246915904738679722816227298456915469971612618123577886725153825576610105360014910787324322419922614438070891911294311920258640151279751245386299846400127661722250598298318092517410203282411454366577673376591435495834045629067352898235734366303942169576982821714830376831278065488233105775029695525696576184529346094138229341068850206401111154875767922738651794858082110519519895049519914802219604725437425909594731289576600000445599417695478210250607315773570989343776939933780967142715744048428757555952688727982940343821641690926217607966911186107337752454424140323354009655044760952098015139252477955323581080062722855765037721536596022299711257284859016742374565481519827229467721010015281395579273025543871275327222638596745805304843689812039256678148716329026977439194058886649983354911965531955903455019883074530881163254878165994968075122675808039187582369422245797033918356699802522771230804850088713478614335913580609172217400628145722193374069909684348403234531222168876265893278651847324602260136866134497115595867972130976308044239331340157564099481807529136867031537855116142357602545594484613141122479329468867857636795672518967848702288650655099947037230324676392251128435240547424547536549432213734202262660907533799631180298769042344998141392355849332730862486274840888106168611753272522677793663748407984155936149872180424937169835872155497239439029708375786728667170448269545354240896437406557851113732254577905266560717981763754708030959838388674061496554174507486114864478068177701921824613576819685718939043759305135539844696328177449348877737618201192383218338942230617317914450915411548326592493149572384363406438058262317506553854489983083169866613466922522072400868506848332827795471659694872131931780776662378597279919915451329120777999429015437772329210984399503089726972651098699044959973402733139285295020746605053352367628799853357054670937857280147678827806467188145813194307169146442100004245886751952730169585240192172049643493418752371399127904510156460255822094721867861705911090515662510232455936429547544428026073161797050146272535912018178957293960786814965971405296096904198134075828012909812001427535832463428169220259655867438891151523901290293219245985842188911784115813624554318971579389308412552510101514919343145985681871998974418774304868504992266123937174378520888865142392731355959864162031595754200234700730719264850686632399368249899496310142518810650289652370638302110142169155777857430963895660871764191820997246200625755682910510881370674748946691788097558149048778234999015351464062946466664984664294346373105278673258359314060990689386219138128231749017674703594323952910266570306372352864878741731560656950484570030065245894939972141667765960926642427238256652393307942233011420674523664126581742720234346350118552539987135172915214008941230886368048034006995163870802420723725278575792820815055294652716067121803200794047017755268474910304019802787925504702660540557168276429729652440109407878274975657299515841220734916895864000116374391566701207658604355304433167663683796583873939141894858492617650133103668202539148619010076583660824797727669632059854821944674148578476559298780761947333396176021446933915079864190657199226857375827548661056241672543187161009935367820354853392267659332345399683481476732193299400409738803053592753451149346470572516746604844215637909346987860675981017453930462132111446858970661346440177686653190250329480271339186391822541956830845650388718528891326855024116366291319286127788025078350325981135956208950885580523154056911682462681414063030237519436374671152394458437020501473070481400020809871767226441566945350628199448800294265154181895998415239996582271383459928294538500256379318033184127258855887409409290124598511515435439514971131954407503264540109025869659180056755576120505239086480869284933038334924763018410134369964834226989941983106543999217300731492125394905258793627929489605573458840733426168630797766940892922179550030686651407548783612266706631437515891748407292929742738693207538607156008494447961619863785449348503450658148162962480797753320632361591017615914135833120432768976413920674387991266829606796492810129345747632104548964314540497492165456871915679487795608063223039200423606195930773249361353008320239819007597874604087640258296875793685134703247435304811487045803355092792165339851640227384175550909840819927067594280546552869787398420608458371569830086917644103017039875397538859241134909549764249549751179597363878663110738048930964914138259093010826480312177750895691291379566184448042017816230010615351277398782784106348536228575275276324237892208066862632318428608527057174040147804440259280102075715780920085156644228198088949459398141406982166541189876367924675156624666055847442554916609486707546968487771637618019658335163798921760425650886554720373461868785203929473441761097384851787336436700911535868428650494490103242770278784442498941474411007672696035606241398431394669573132066269603244320074372745452464300605381997485976945502144453865210340630457295981075126225205413662275230242625771435726775716956708852548870793743965853281508846263874591242232476088367898485821641757351188170165952392451218407397421509061691572963655564115720482118358628551386336225194643273148493579358099632325037208595383860076424293916878567170959966462916029831001753875779710565738364279274096685829895973495385158674843816065030544307155538897372223127487717995799906348193489955686905551112679542047800815792802800879100370541967426292921220395101423197564864301233663482965199237568548776354100200933595119718928154690254338718344002386801308864055342766781116173221312540004313378314758762134133443674675718569973557877850177769578239375451230371977295452402241097802371231183617967999499710421193576773834811645128649785575154169345335963290343713568002645656037441174626864675245535597543963391557400904630682237824021249997955022728085261372610111233658585536956788320167361039773105936608209169428434216735002680411009560667183563873922488203763128052226411086517726109685567932194239769959653537386239270522588148095989046198204266200231103270433359672933613306291998769200012695165730270782239308064471427129684468562122211421522255369086111159545922996812705249788885266931892099247443802660623875795224020048009124834660715789518547023691227886089618715563063231537108043751493794278683910045446425474572539230691416047360154919155941506610282056064320066073708865803675464729085887649353032776930358433463153783295668637948217182627812848356321281101560712079581164796034702485156035919426358616955713526526011952423291175475295856516669665226985115391415967134246137510364702030343103445074474835013330587230718040582094311249123384714980766206101627314735871614066324697267373749371203414375030482142638146159910554801083892569943649197166516032365645763436009632787151131955533041178117938276910428551688500518820059358249812704710940109790408661701684861042485587476216431940400422693518230655422411814434941156846716278584928872214549440837421298943716805437685937152960758331523885745980955617091726021158930629600099176561040247332891343291978500734563086177258602815625189482964212857797402865877174734247253457569868686197109369552642366485322917236595818069366638291811952005234120226755329838749069302038912644930907202338500397366405770103351938133490568976740877878451417586402314026352046735067545298145743353550472738227578666831670179471526356721016836924167190247321934976795585771769002431440571147077667869674060790390725813672051541546361021688089436941462881282621313359031466189225074160574815631933619254975090638762075268437653142254925212679362840661349192692844566898178611691067871645789381234243317873615202254456223705056938986567557217431347100840609815749445585097556916966008320725633103531919124866279713731879870665994291304395624871240010376261097217183948442912641709139055107141208820571010860721896327450351525717679268636713588092233223415904558623573810177355365483314366592543121689679974371447905534230604652934694228128066393967287894710475680888377065262010384348594384731446520595279161424747309890075198897442478162479395258543537341860665690773841265422391653758574301094185514362240257531129307400467278570667322192416585128656514470926584484349705348030662981042263549197588475752538861364548585936649042643782026199189867010224164564078833618210320781857601969972416584492047090644629003853998992854931570348365759706056103498613936693126576154952465756509066140993483574303519716164783088381687737221192820462200964118075778430100364013346104725720246307041691890077318433337087934715224773010665617415375705696139454909383708092317275564274147952329714546763468477166541776169399045229757997843275392128881602341079550256173237898368503824391983624747734177514515227029361822883126385566903648664364030862281602255188621172590277149657109272397279254669041256498210244756596854871179146008522802064688590525626080907384842359934888705855842771117085383258789626565601887565644079929453131244433550225184199276200531847390387431199875502076398510596619398294561462008208871177721364326240259048919077804963603076935206799202585486678165152031034616840200366727286640989727426634451727305858443444498642344625087770231175276596743219595804167683077062276111413794739672765867734816888967141305100607049009445686237577137356761899843200746966214843364803184860391234827091398400935271690799977589957605451376262563347583593550806772157919367430810977462690369693143489871079028294439394798930840127080890000565835139462416850585356315021204056937178842474194168030495523361704127528419968505396652796910993076017830024152265220029457593325045955629757890020152484615390844467452167476205061706132781508343294017331886454443062153974738468858782049308866879624532548538089645869695774706507422668445496480946272813196269737195883307327327228773543118789237213618729424810912016820623828704093730151673357689956838210304241057270128560856571195271455092707237540846119109910110750779202735536847338154793987990437276349877269442070346851761716599738598939346102126184872613050740976241127490092681377008759347522681910755230580316204746533128822051953484496676610958812401681026205723022823829053644135404387400211399377994981877606067937237739585547066134586043648305033651613957641666572397116242121157563362438350380492580026308628166108949675224680755824311454468962738609837053116965179961549326748501669835897536194077405413407822258021488642514559396118878647058944204683135302274662190585514635059192296672900930068154513968486427104233148836508877528994299159116047027842384472075223915618916846871380848677456979238778372425791362172503070776695731424634216564122661294949549793133301333946930904913674446632351543775284331895790852047132990366599253891461494128731821001730576707174835799013076597582486429017562945410443099576202890409576878419038834618474153855377304969438169407411471126478980895278351442958514117152294818739791152668019931229602694944740714487106519699402227401457630656785036460238557793200350271855655929468200395873449154846256969517623098008670729995300625632643061029333106221057859324305810497165382300575128608187360439385051069245679993550831641866329555511048777679446065367643528239730366620354119463964414836083157598063653997805591322863290748835506189628049174626124848693921712365420846724749495164145887746818344696992835813032131743799151944049064424021572843019151791711726323974267340413994740489007849247576361350478640768292549448731393493612617216335377538367723593517572939598184985527230799488332763311414816619271310985279607703094272653389139206385352675182376904285501829434351440385463691740223987749950445047475551891715070766313519937532129528713782994544426282214775346261210362363210734294944029437108197564840733727581285106142813422398871128160318154962758756013589539920244936405102964193553667687091911701994887133230260062465989652210144040234205842613908334784061085318168069509230262705383709397784790195200719714118734998973072850152855051169407837052442036123876845183904291143135420052809802620695957572903040021142968676239418846142826629152619815644761468454737812378002528598805416892594803289591458314837837199696148458074458197765587162031507159031553419130715756420732138679976147664008483607523460315221849812978721959135519579306797017282374058104840021495881002246827856616271442895063299473041983931468299928964105987312412314763904699366514176599080468437806371905587264834762327603517083287823827035791395382639643114515666372085647918487504887577110775459320384654431014487797376904185358875372215053158585113188982318835526582480110036526188819299956203828423746477008893974681174957736181912734606193903340358316845981230035655957893365730684808665346803094934612364701515432913608318008955415890362307882601835117965380965549394420025978753694912680755474764640531809982895675580955127828180774526916985941353422942428944599243190765114501784356394816078153862761062344675756400965296914810563794113351100152486579277552674692470766988380241439513140555117218394303456465857334965080355574716155479977342920710702237717577338951362771269475993677563075165909426276036795871614236420272191518061365725346100236661069589582390287541346620192837756232371599226579573128772512345183664410138166353805767995338068307097190139926125918271540983441899603529768412413544303224670870272200434986594366509844525726581842322838134321207002085707721554474426387859012404102641590699883759869896329692016786948388947675884465405533783511866782831433447624487002976443641282662529418098720716629781656971255669978475992821990453509074208106193215265893986010766281499304702938775528483653741726441313803141439818181799692539092475170766695145529529776124812228493447568418433526665719530509567935620347165131843944258560525651194737882358266677098503022929945760620140098791560923671963999319626256828177538626324164088684696337086860841226772766083594289390174854949646825518759395047314423369503270337724287239613469764346042927026003233069394450685301092031264846490792917464594666751760064949932851582919464884643656225782558767543357381096544551945850656389429074744996903997295037252847245362625672460086588346793418755094560556563960940509541373580342537607531660767526700585585409599876631354201703943485544608460511983063326273354275090520277523469281751897559839034106119314897702835780704737395505676573763127085084907363488979263259578891185701237401320670806937700281038870792909966088054796377920562567778671396928479532798278784227446461231925078105288107368503393738507527365028984108269952703370703390550844088905296632044835362642195696614142269673139576278152875805614200159432160348077906125526306767465860068709559901131519984778070924432076722298242723978564133399262568159653008073482233004145957178646587663989631922469273925549389074025275290098509251821659584639981124051384098149673432540263971381359617978107623856764865149536406142877368846998094456613396732756647729579340752655279893739593775537576772765022781963656256961473738065884027778904441366787695045334216121079518559382086636305606747563634713103455268573969281941832234726317151954562664284664211575639248054300594611535485517092482894835319668993444609546995101729238445835154274180762447309338536342759017120318136611921729648451298438955889922520814922910045138479172807730517216232204354948098353987025270537216118162658382233625392539468892080552463377385068608334178101671112993136302979632070812144940032440212311777827668122211856497134833295626814314462386149159128075351448728924033667249479047416450046208876887604354790383767318031141806438633563774796762483434401700022462279259416748733342698247580110279521268741063328677067920382354491057255022408508794841014539064628490206837173288685072501250176769873308589424198949582043396430270537400913951473278629757221677469348661050252365699381766408214597121559272603223753713311506048062769805680366405033350495815882033177024953968840580043586491066901891996919298677966510702736731277761796530169058552029527731350317015890032091289230483670498905528391502376625130436326525266477391682529496624985338844913236816562416548392277539813177896610863843163312306093653516016046172300326094567896364082496704894793704228213691197157536345953770434693053507691806658716622363111096068071742858295968549046129831192696603782766203152858211296586479013271171839989080869253364007668204102471952064164305797319944013442904312536777013831193566564855476548061282975755814502187669028027971289781900115249288726979746621715705411389279375522067666019686185359858377876710727479745860629476282453182380567791434470226087290534929642856775900950195257804740168589019223192534536026390606078921354774084860211802636476699237606565695485261283683494445025688355814145709445152915168383663560463039780852366835085810399823828631571124281734196167965737895626125964852073268061382463329693921727707930538150346349012270403915432862758366219151544947254148177732858828835366680385264964083210910059559201468266487036770930983032502889376884676528320876861228132989099096143704322426291707331839492461951104631133520092139799476707408103213106014248542137690485272373888335446669476523005684701046028083026412691384010441042202857547885117626394019868048662006905968094269463850355616584964705143482961752656392622720058187165678958003556060948290904815655752594867515791290977207135452901185835305702354492953429529599025908944534012724867338392427445284388035195156139758682274873619973438284783286236220802044056490190186958279671336547716863231281755029320960020943218454699167325760072732912388244960572948566089647678487126755790503128927294192083463287119633343985368464508230928771422959384511337827026895170263909499844146580886290015098946787074416146639520188660903205667466355568987460946195634111642875198303243931578085592968153617195792826195881043908303804965834413111747945857100810930755525339006939522603384853802183357942935355343793875753751309914075396408797066055971005395453194419648923872132369657817104165769815191403273699425411594437356909464824994055827172886706318608149977164590006993768152416760379418478944976844875389896047436889288136432508596148803616988996541581425585089035763909175152270074334017316503162824141780198280157973441391143059223006048682322204515590796883059930451921941786592423940921223334361372242152673515438307533408671089787723597092923828892979967303863310850988985135692666152788252216810390584963569841480624853144843429507983185125504350821276992654662900513990591192917216549976328624787947662839242440696421331701242966478628423465766470959932238401083782268812079671271752634872566500508861924696423755932555060853205443560617898163795810470188631162949295069991004118514849470528636976360383773904318132925724517038662794539151505972386938174224756050839101592711440478569414082242822530938282609042137204176653959975496008997380125157805177062022778796543367307037719321278303135033782436500530327908439553883829841068816127199413494780987113621663893556127958588215068402056731214134001141449045410823930757196600946848977358006705347249179464101466354957429263406527336742683057915490983788839942043568972801558408512492029702182113638351768400995008544287785004545744805148931095097781546971076960657618335854110373883711028602357991380772013497621414516296206094866158528141212139036365985718327733934813492387849039159968358931147447066837459737149096658747329812585374353841803836888762848622268273146378668477924687705468994047504695361015404995952057159387490411037161297330594505540585689265189221883535210252561590605192336300038507813345327383651085541139186930650775046707940574630090116576433439660350008612664019407565038338619641765822768854365062435952184610403795979424850226248922786110058420588403710748437423074968381475345774620529579835361185722709762092757391571433091882134265229023774927487092984767882632943492676674590246391117954814930558935110906178709922451871825324304503745799372198770067363227510148807319178828975463763322061708845346399449994596258448280348055834163892878890692454154380602490172921058459206232009184006797749248184308337827716447589331324681333947024450177757702101850165876433122471451432590693274627228100785851922420675840988110307794412700904722338439104529128941409716716043593336368880003512483479132796320954679559954926430851337693350444465264985908204303717140282504168787219858650911422425392484207200242864432997710275949660249856480336333589494476821500192816974698220762289795537507115011517764289087065535793579478043180124044630983159469862647540780933926625738483558725441815847915871356828747438875372724681278450939092256825099048881116384641323387412534087931806036083954331602962393634604404320724259943900015482804874467333794446371382616565810773550325747216630942485366316744379168563702233927797979001135527705414283204933490370400155393007703369872398038601730384270341110981734385816288243185584646594432566567923299863087980804430284693591457666428377561076824037660169704313989147443370012309189311939292407147699466960611476241653684075930428001251107789615742006588899708228530110168329777745048111665796581497578676020400150958157209086204620610881843527606028430510773306041497845964438572074984294264283656730543325326633300050276171544811813359386585511345674000212000157906305049564898964557553924353718457330481205753312117886400278498155763554242795499906352196148273052504310132883895464763174659774486311003674701172957861074809098942345068068001997184674744522299640912393978433691938574861981051547363175964315047264230879881267895943997653491683376075122323227054596562819060670327169429952539148229429088499445564647791848991031653605555408979932089534731499319201760120870372560180183774166644165534230249964510160671095825389236163869757575675929227387577200676171988640344471388942993855785311324825544789835544941163856052713130664048031282738316804681853981141043095691665561315722357010165109422668777844095304909400027470100511546263428207475826004996676497737881128118746762146912581397296007489348041516658870100055649336664967786863414401582202907684693083938915862301365400538807452352388640508542125466469949683280704735129507711884036230639899385595903486769102807691917814774400621333420974434986351351770498351562685671107586635877931810231143307421539251628919260761858189223043464458989375958478231479168268681311755290084505190860459509559475231375165020867001407246528722376490289679853014266689660415131047611750803365220172442986701219986174302158956442420371080978871353468353335029929074251099396512252854172172073304299908051423107273075430435320695259488275818612618445202251366154826057465614565609856898710313556820428753977506362161221147935237813290493715674111030661339731526179919293373459692426786350294191326340771526464762671074583198752289624121900240465328817258958689454506454118980290959242098565573568617213485188917231271790939852182037841060843086660699536798469367224800802891060491488410612486605088454895283367219112016210658394612263760334984775417712597017465519568354319570876721007573472140701301210039944219656643524866524829243987007929461446198509257013080430987625723770507799310587154775513117091118406697079664257189029938436333780904832859227473355136739262645588660713224186300856137429907876713301188661349900285069842320103903944765635426045111913909823368090847445346734946643250914146483061379832911316934431073578041567570465084339916306800566644010221658849852818481111547327254850608680737702971710950887335744364017091959506405946889714625629137766190789305725849133847012972788292149423609508177273959106691478511173129385368560981190007744959372570659105629524208198663796367459586342191788939231721705333311994960628024368688160550203555459433967545321443221390225200210366260818414272399256112139204605393422857655317407427759346526326310477331503054101046184761096588216415261475135834431003226821693259216752940738499708106096845174108922474163952858088033941848384850274691815731963251747724330665191259991003819285574431866350812562374781207380255041521069655999424554143846616091921839821308593640437885469866940568947822039536802544687199869565997033497787670674812616764104996346059568895979370440569732783544863461624164013966908842853751368037363422080488467629627355690305155043278103227361376272462957833007886800254166791662110121761983652430466657072730708461367322092042857641432280938969135137674262459979434101553511422665466609572736810659948526019142025240710696100404090866718785459377531561174587135012748515743575014951900396740546945734859330520583785172439747597952181205802091707147118836540994840578456259085713365223480764452638613547006472880316736093292313556860119853358768799546848169170017103765906017795920742161222439051643639178500239958719526068809510374425734581912091061115638572491987495693644316018016741868840462329378436556387619623874049438512851539301705983314927405109705322607429983588593097035852787346004498058119489991699192622744005392196393813117478309225301467571355325852008826651697927026407535702194724357523864651213835785738328486135210221450118144064149504254890852406043681601142078793545122491640394310343498658065803832272349434781187198382607595045094668576501733725668265620186672488592802562938330428508869413438765231465167611117027354923344697167059408798685196167863981901612370423561919048094047992929040621161307108364105536694868554603936750603101462442054256651457705361003839433794344547187796934743193909731668940468034451046765484053625582859903226523586298129471129099590299772577184759979325200236953565068440127831163623001990664277823268469882144203513565340056809669204312231460881126473210441885405009931907496810121806750637262976926636053808103612031864870218922145945295546508736632387379694405908510910404838604270471434568733240433538422836178398734425234722895553056309275142191133402589340580123085156652147391871017511399886682385037082447967036117220443258373500217708674347104636728918282487155133684113404655332296130738656030126669985862258602507393400023793024044989388006145342397889559553045284678336685108199969941505120788802623515620800761369025954841276757638330253666767686090253212934018228881371812268270868395192183685710157845749338509223307953014418915807967756073828657294403449539351391955248926829864396273476641627511822654123171709084406973991096309458299703961562298845522827160400180263165223775159176043528592941995950207762227885665685151262161583732127341188353114835993502846958955736415190364351666043758083083486372316460035984965290100158564960630761475415445606757098277145214902696912311020307366543480379805387665695485560838728661771565372434064329631071451165160686863834049532023307153249435133767007184921129006038314668422946128284205824655732888723076601356062488878841663208912202004290384263036919097293107541441057641313562902524363354941826411982655909206150362839457689630837327635863866061049314288333641610139857433632008939041867277541013462372338440708337477615683526638785731957963019487340510524978377804225043432444092968855694737658350152431746803841067850455700220464110662656394758074954731604795938902654301437635385025242705694725720342575408528583083879257312371438672335984884614146756721328844719679035004577691632295876568640476772486200108176155598410306011821104425990888058461517025831411784998644379032154511015701666685532415478155611758683437498189636726136119736814897760412098988392963806107837306405497938459304461302131499756388841024917555078638994052922864491155504346938356677432169811282256059377547020579697891806397115967222431383836745302568165487433393921915473664259659645456178363763941063398674786383997213487423580108716654746297083462423881076120362542764665602984267989849980083094793355721643217703720851979283993969062507465946517798325261632014575821223738022289844311389522394400477369006352935185388248824333705294562353426293966555129712055562984342870986896498618952882220169350828692461906419703788219386259765343959017806593608737655650933151561010970806467298621703976637243157597901167534436745002465873835126144976398366302840338253702417210940440964283652894252061507525975567203961571445465897728786663280692613564759886937832280386294709194533998238108740105874348939190553977141628624835403985680426575679058516530655491882102459408731355109197634661261913486215365157800114004164392419605655722670535402061792650940506805969673969672527033839417297553440558985623726153360485898032350829286058828763766664822208949268329190510424947904994229798957031849369280986954590160582989296671058146012614890277444633651041599266461911108823729598000044166662938693490354596946318559476337506932663895425682393245848718944381105161529610270601362714102359117058434626832537999679696373279569507790346129672216811416571910316330848966254043902220175556946679289408717493451606819858269291502221821491391323833835754871990722105811086419854650934227299226201436908636790103092704515399759637306681715146894513404502446890981504770169966271227440355447354271324385384907680064719583441884490241383458107085337498427347961376928341959034191293162744737204121594418791775490275002188746170632052497462885088115458665146904757687241945850833322088731656950099293737786457848457716074050996734519473443711407243809907712523735090129081230014382272108823271381741638455121388240681164479433438704058250444571936821427125188212045707180059757640086734459008393837626167754853744270063096491427173656515120841891963070335665640869526398740797038175050284201172787883799936338901678590862336170152248373293368911056319555248356169556822236016599242644544547846027952958951983451204316464674233532131770811850289273232223273554713285409505794893334449388646968572728109365122945221295753030722088055682062130767600003486217229294652376212392551168503971741074973810818846814221986154204747678395727459731467142937577064560118782550161354833501475000084788615100279574701106326652567948605460111881865814213170139208572419850015416085174906362552112232129163786177604474874473825506873135496594264846360491139717286030997719265720704804894176853872107202735401892727458968170150842031172220113765993471614620606676575878777466391422393282366373789666450638434461344521875363413181470169273846039148804333750970081579697586753966446618495058492082253240399740975503522619568322426234720968491079738461875516736117166698607180032453219811713037429007532751770914054395832141175775257326108427560337271946383979388919209020673370803295446622010376248387922851417703571360588235621718925313972650205991168491483750835611943608685961820028251125285649869151311676711566036955218960923740538091238168194348718289399452698769582666571002091341773574118916027639391343591681897707019587939269529827830653958788506684055715589268158113111046016688890443568960488311406196622268026010147309324548470926684169912347419071243919911294488537714581785165981420202230293621048207391464900878100100732929686092730192239583047840700966655913575006205898548037627991343205949986100186245405009226764233460549867270550737230510084318816399886195211522586862386889278972735788995454741412025173484567945542314763223089647419216303214195989740601971898247645268520459201019148293656871336862509529601364283835958456393043816047893059407614548499780864795334164809179351589603379850151537328461068650751873018149388283032224421868030162240287014840565510341670586554582030440280476246015176168140973690897880325907277942284575753600993420922463870499394468063117652143730862412943099749857137937218224137884648216055104606192625008370341056078166837873518626906955517563005602189621400817345898082253674828199684780352375253991154332094499750890871508882962820535691543098869188012476343460472548102954781222691083070961757434165089744894489836694877459616559239685307761219567921764236301518863446958491471766080490763518283329025929731751189879990753287047954069270071054926751655504796656999959991741352330294754111653767114924752772563991435266465501611458722125484964718421210376363434267500518009484315586838594189957932116897042289006535345808495646410384196270709633843060541879345273292917677745067665384063141207935654071691452538041294890765193343997262706666150179181029508114050900729184190294416168550197785689660153894231145221152499553607944339904172481085163399092872416416730330168362582832496954636628820449778596668017431603545645395930525789351305554972885235592105836711933754547441512696883935597773002864048371330420251026904030659672539309519223766647464669444659284863661411455256293711831284763694450895399968337854500708261731414095162904366995350068462012813761704906302998271617753786705728431243009147151403508217701245254027080401214486356673650260848047885956318503854905422514085530546963043067990814389495484218592396928640562010942337000447956021671133390053067428850939069941229555533775104227839236075312325517219393474643271160159573307614239307585054892452757766013094301822366325884809258517962811774206607954939197141552944725297857386109612610424884304568191067173701366272439293095861662554960864260866816762863907119669885621422694318708262695379332008502104927130088646400616070658245148185554284745679631777439561360469110673422229624581953642923547314518760066214501112599788273943036313196346236223826358610592488574007224072828916093424517598053176430938005608613834330234349345803032654697747511788152059449147419379991357552746363000172562504406696460599748180297365355600783362848625468110153839017931815254798101421152289992849559371560689709091687313841233226366021509704678302819544516000424337099613400642484022693650806523091035014413881080388708501660818700887442740736817235657982721242130154309017411971963944665073269784565713353431510029146385252966056524056988369230987294728254592677377192175731903777772989207137463126082350536342924363689414106285598145209460473281051283102678022799960541224809936387595476799250360790640303464876364715037706724809837003698164906461064332975578521897021575606830037403151082275489879394292345879731214264765614964741848157055121892430247287565121997786197150766246164827617013638775933085842811883198321193466599411520032637450336620525116613717854857072280290609564386708347545272132822140500730140017617293646338060594243005248842774857852891117964405518291315437369282511754540379748257147262448050402249895404622509780386647906829588466505904640818749519896108132197745349387756134950643393095920144763443031336574975363328205297912500485928853563195329081838321535413764551757411816876859751893811696057384846381150319822615953457434461553754702582911960841688026781746580200361703188717981396180484674317926995859824009273627748422071953968427063997880799318981899656630982310165211402779300753193672396204806405604027636316579456188687137072445578466263834600843145348038937097972196878759173186351130658090077277174271626998073020469073889018364227444939894178844140410766191343403927449892620176504007494470452347865536080770424715247568768203670715901490270936669540587449415835360152874198286246432221924165698950169281558799802851322077720458903690650140933117607918094423984225039232890959056563348842289133330510457618050333333469492711584960644685572119010757993902254650873848382828120506252223620888136874321240103705333732385535262074066416003218732423565501976663562678793796920717852406287180720354362535849087793784206479044845323674711919879615599208841926222967123594810587142895320677168574392503818074294573992060502853657601172645203456351368968096710545905152893372656619130190450712700929854102069418660976929913291636427496059745503037455372405135667937614640642067062087117111655860453039254275089543562005003630059524812553764952138414298073725637917260651675037568770060095650350469611699414501855196778805713246268995700450872187687359449210175884976068231799615183512236571368971793212706041893269478287335694812526891534553814217879563246560214927939263203510249233908751813457963844175719642456755828615762496655964520339631006758162828254675471375614420328863996974312575465071928391283309101411969523284105177216277094379632119585721872161404846907255613189902153570842148988884059919900229616808775025444214979064978044183447463713715513840107496644383736322132209933662189572996220648638320057207283045812356516286444555146587839052303131610901380042602831253131799979005103434645459070903469107280045956286300695595488884209388844727980658382263064259647085735258270782105062313175837094714258432559195177244030636391284627915827324579018703714607419457149221064095902740490493180114502987295233753154054266114650807523707412912527143314979301900907948635344181765628998441785661583669979701890875970776407450791788672926369267690108965150275877215353362343009521963917157715548817124697441497095878838681844225868368633483955329745004564880280296922295408244754866257886467853743484907762971049696982349904453309540370050626855669411209377595642117808505581122082242180759896997300485764424010513194447830279814695702411859342433632990561008803672985568706918064358084219379902225563377828651435849339738447348082574560021935883084131675333429986987972567856097516581453023973470082720932988348912814402244135846502029030620072234051013575815721599531436654604397298563763847538070299123738904621277699335955785293116751623532922130974102577533951694367841683759470289302157348479174657416737510462598863974059765148892713443383017239172479274526865636373694107019798428210162298066585800148649864892682492043733293846330890167805269897150068030737167533261516929968919359238338513507166121172242728888690396861999096237371161488974794890827863363872387059375361081551623419657915408398861695700054986528849509731791042245171607930917761208950919846554950032898268300608646737259634777137309808994149168142197501684145619647220104792856212786281942860093402365169976677310701277368076242364632291484512912214622061664027261809223545487984505113695063273612631488531202779510459658465800715232976011364344370237457561428148239038300630604183721503211936735836895725408868263842167456810137841306819760437060941766816037159170716844709366872095758741678706004131481689275372425388139096601031183994111911149864203416853978522583578508049663580163288027930454001620117015968952465093297708755175718957597126024520673323374630832864641008445763364187907054755196756557925922038756127571785795925550863688499751702469748586691929038895474069920987589092386106383801968103434754701423224033231540691443536441544448078043979576729018517577253207725341283892844128065742618532817929876979764581669463685041115067900725492446428777951592769422802801031101182108125136320025704565375814584976803113970485068092965429948542555958835630749257205311687249175740063334369292503605199494679817627113577830585209514082861460501241793108970125863657407450034110672435713788952231425134076667436445595278233531402369943259370058196906006963726928674039918512811174410375212893660953111543050955766493810050316123714504383892179927433598724319501665793794637775212707979567564919089923805997977399638185202491327270430633988063680800607376151039604949834861837241412426851338346957152039528376201701211397259752871500554280985767732858754616833307555890061589482034924031559248839708586714841180807836179476390642815629963443198488474856763008824275200429026749113573627397799690480541474458341438743840583317023320261756885255976460434028494448467235274535577163867019594384457141097084870696018794774404635691956306952673791445040724839126885333538673973357622175383303838151965990787726706632997728129931229448808897917548350763867241286921901970388016656356755116573574685937456331079265285083056442659656092901491929087205274101619493364646449487406737982206490695042458005915188075838926117767756861159291620041448168155866477964857497670398699495282901419093447340933677921904530181383325710422696094567741816103704913837867579960296492102230688195420001791013417783222800316570053110874693285651757880760036271381378613608162661717794990408872511918898879037452538249135467075241070029178791995391143337868983095408993895626278824240816491011655872626499557439638324660353836179356178764382904846947018778335869199200503188215863299403325610915956825517987666429495722869505866606424811489560379254811696789683602344335044058995045053507808252053224110695843179722704269622525259907773030721903217177296495491460746136045277429465955063047254678222034072596688214427037879593596606344624154961848848713147497988545524766785047590618984176909871024923178846380361024160730550711469058673631332583138765512389356584964576757032127372901810897059863218593888302927777507699981682900733666967628614714851811991128135341556526799025484521705996204242491397127515635973050811122381951913228927038578960277648721142201816548042184104584119981980621175788167826747251142423352541514701891201098891825534429436894050290207435513078366182247817552245320959496056921455186072851035300720136152446900311085925483501339832866996181612691581484620738263326879027579285272176923857481296622108961745430783721308000205916890637837100122800717701364804598624738655363169241907650964204079444508074364936786519658395752185775377699367962248660987273766929099469862520862630508687072242542491139046328441253556352996113953207526684341387109274630466876272875211758217041353847318800369813965081168720467840282059735475169372657894952174289172992091550333841887007309067700452658415496458761725145264309198794412686492293990289669299408320389350846561415806250927084773878518541813982651170416012852712787848485743414573900247440195583796288473724981578978847291011026125895445535572305264323749274464083556274958534361362547839924486434334199997147486010722947194582293223084820631759531319115936792593697399528566775265427112348569347992362766517202603107458341343811395922465821002277100584130266866050472057140895716547706869920842921828613973964847012019074408991404471592240022588886249892138540451066446168580130299440607635957382976791697030078497397147706171701096738242725797611652731591215728374197644997895762225084559419898101464779548706447905335707238847044998633045522087709947882436484170468561499934949797787235323792864914611548860957635172786277999542742829351309942018916039346135934549443867736180413517044783672025234933655841229095506124439297503813409880823725432277934132485792492485982219416913692897926670641640570696166880029969023329086181635047065800071992136957813544082328638145960649393830795082828983601751917982156082667042835272306828604336292462567662200411030469311666298047645130456455690650470047039562215461264823814953739363792161006643852946811275264750633134304200801748442728906754062060859885204044255621811494084759068555444552510548966624791887578457566303594067179259247480123593985391248628674260521558961023476108404754738666877349750682116820960774514759260808523616880729837884407612071416120513279236834098023616110649381742415163958574184569354031297519838945997438184275290782864175102055556714424450846090905224120553905441017426218183023360688641293320268236607866889407452930173192397534480582997293971924564610107284143920167638742022320629722311557651462765394225836119076419050507391604917884519059498119453854012672934262562373876068509732138560848942033593407001297032295215651864938885269544651435161031935452467089359738853332057497343452531367574106720648785996174708431106694251436434042694682732557761954591043246893597775913841289961267928692028746087400330823017586909626819656740580366520289381188442375490961597881380891588148173506662944798141823797003475918388506477051333303681274208358631960563469272217581764867667752738060479212942015392419606861701811760274390944065624300289730256472317706018052578347771866123930984747886077472837590081285568974152064472212104254736388224453364315295989104162635501709303115890816321779667084802650992788051616178977459922307398450694371039931231753966249304624949139111004448052222129781037346245649430229230811008917242604127938979013099842123011653159963221002497761704944351729462368995079214744368063054686324378828835016743721980912667488293509217102479689623719850758427252985275676739067502430062663809668092358916250709710672663471964344300183056956790670692578122412364406509087774584095162677121592412976699872520729060901112969447522026426862197971853361987771952363981708649348664663908578397021233663742134048945764289621259224559700081486587960219629423992353887921666540035446518883122666632445999179371130445982443150587186901863711889771712092586413631023056656710213290478767818577509108213576221370092958778852640571128520609390743690203929624068197741723334016272794587899917077495191941420062589006475277095452308727049592510465559011270919292504348918322241731686205534358361153454089464548792234064228221868671633851995405280827124070412404487573411193762501784211799675345587848675831129600558376040818877750956894853785944142538792961432389877066440214174823997712410280622775905558822330363248350567633079702184804498233194833381268005953902999571078560833420558326142268594528600405544587188286378859469460805447091083189132156004270539090292115962925672438374008991644750605362631415681294226113074788375463804662698985270400210538165906632392478967597634502241641746651888064559799230957208840429114777985872588427309593656903326179681465137206716730991306378568879264956482215453698052531509833802331356285459215988600186322965489279064293640842997487281764288110569977444393552541102517927947877488180794229520500606276416864417815306657232379067752200260591121943587157605155690396397837085661084343142391145720811151235909082522956491478346310609625537570687848473922519244495444553457427182853154348592019229421255987016495505236672729566012725290856098166345685515214276439718579543694499632649377689618145036483900297090395520378758736689186298765784875169667447757630782645816722627945812469867269416744765218269458572664398273010630661131146809138024760129177698697241187221654734639205282100631535779616568668418934192755237284403927711521264328173818814749600527742723317961921207876559353550595647734617411712711306080315066392286566719048990494541164891746709528382414565484048815259588880796522317154595835100264893787042027593319220495765004158234457775740689318897644356727305542437320556272496225725444126834175874493681153113309285740160983933017016828228686060771613037056816667285224871055603004390653418657543668950191269931530356540296358443638341333709077809971938641760507252741056746828825225274618530965548430808672159720555777789344004917759897010353511430430456905093234667143530748797417639238732463605650228093621835697465115961185732446201726607138674208709577359992809046315740519551195857081705193247656785031249880890497426489058035020955557395998357747904358380884574352550995165313229196834624166516689136434820773602701586461709014570225734188348398663851879315498743262541681038703281204279362453392277620537754429171396301032383013661307023191658321276202567889081343110637613630425979147064703071237472666302671301271476933417805947452689030212621733587101877012101461871151381428245316752521357320272411913653163801186064425023591058941860438444296527633881112469098356142908620664891151899827569066896154812398954249128322313567634108048891409086035794127043137586577661676473538631717625578642166295813261397663524805330058266057660386138544931319520331196909254145258121973512164285820367262043455163115253877474263706410581971033062762081036217800553339300761043687417614163650926323522707534315916431082587852566856682840584542826344921703131228726693260975821010705896706066078070759825122192763418381946296744460241357610188798284897013599914012888058777305383063708357126396070342468178799779387283304366020413130321133739237652117642207296725464268574904467387242660714649886574967608786706106799804840040016105198782154112821731606029139376090289471106073728497513240589376025121698214659283966814261896177005014675047969249779062629283212267390265326720903909368132292771800609218406052102823463747247619988857850940777275604660412643090437494688670143599965572783118819879189525220023688897161821881719126167191796545959556061595057655495020448116797616971349267974696845757141116539707314915855682934453740470478224747777431767009036200145228867617609975747179301173985898372621275968956719793781439626583656758855064716369423504190404287934249910336498527682877480469481346551948003586304986418759642831129557138981803905275372945200035199204419421625359248977373130203646069669071954292760780786790058140232988366935262230302074675925358561122061216198790412668114910150526412613307186438200133245634685258552564490798499176806517621289956270376408314728200913581185318045781097427212499512401290947216006009485952694522698988943999395073889167257105829521362160776053315264415981925564306303697513115410912509377244746306395559174346522249551965864848548714952301328956213134912780655214118024551522547289633279103737233694309192900013006650228326199011530055013348318705099444576299887023477655869954685622458750320970198954698121565929866374473307997685642092650526957034628813428235324481998934268718473612963952404337912963738922006900008051101092780783133603676885904153098021014332198014686036912299808728762416165149461864985458815227110957520725631205171612375402429633708107812409230486740731447268583151484970029003596674793609684572843267893469485955577297418150477652332848197103819672893844824830099955879817313875539119113639393417630746544291693057359725407165443705105241125991093190606084601002548797462644667175938331794139754507669626698787079918864055520324152273780788541099794115261942116307165805686596307444754083310815679846454920043790878095642804796435340284549927849507108814377970892034142943091394042944886132249419331008369908718914754726902231076168300724134952811258936965493084125396994020211455797380590934553558713830447652144311541324189051042143683043551386044526145835659523296041508720867567128489809058221491498728674294998606399372889897866257866043179228882757864921744485047185245915841764513798852469129282542371604731279457885892433677683108539479090485141937994216234816758582411521743561967140420335861399191446442031661961735427073934709950873524806557370538222562637520299127193057437404470209835373156007099268631965895388944980024111093058477099603136201193669636455405890212871434034160960626223562488683638650252664343750979323837362222910051192633260778614924661251223173935568524474652339386631173649021452503510277449915048055662612716312950474395328563165937139765538691174085127846745715599064202561081940636887879703437935783942491332108745002596879222861203272678166126675136436027651462518157649668169642507479289319438079873671187685863230105466832162929189059572846446566918800367267378253340751538551318202108879019761244090515572082126338047266260508860507569296141679728678200099268591860771057061726559641854013542479216935127953212538370251535606986932849349669956628173549377743835297678828797370323800262380696758208265292176069646665119032932464802449517360955552108325457696772809602301042791655112393307898322622370178964693274545251355821466659299417137060196928823799559464889346858094085244974525444201339347889384594754040219801118420413422690952700891920624837418415733550966577109254839956693417926361030785062318500767016731161469719292082307855269033486533040707317178326964899188065061401547974853595715522797912773768339397477425394043405971449832086087299897371446982878309256486352977946075012387075462050870716079913963103491311907171794769971699186673572438920018865927904715459353876363240983319295021890020201186209958096455457869389646850574771610814049057424039602596007294659792396107092267625971049880656138888509790721138001051590264908792660389007820927317063871504650217857719439890864485234469121170441449815769052228194482868180978859382941246931991400827723619007575156475749921317532819263324464240412286775677445792208939110540424899359184294006938469984872369122880630279774256017776808133736063710790575543809295061137348263017655586386578184666935778786004541764819196049036914532634473375732694649440680960670431455314534845119218370518489018692274261749333585983704423668945415061570794145104316408922878554852270574205791458108214828622684553537969122911220294147040616896623548544824325761995513755476900474099003998869267060188239829715909569579456756946556140625796283839763646282419747856779402516524554557241986418832859215260352067467951576872524306095035879645632175432324851859621257226894208302057702451132474384757280479409799002045133565109398943355498966860832997454181070171851377887912385603313331029855217472888966961455431623857972166561387320297752064450472216445519822802587441267467199499560495780292873692165416154216389566592012895021403315435931924819747826676088430342733054051580385011533773586562472708508386702835347270071300395959664978191823986275455289296673855864096822467718308953168561718103101952161814047597328257412885251197138773324804859097675490963913125048923223139344881135280396658662037918374568576893664824616351615333225503940802085598300626788885928109378757552829064674391562901446865048763105055040980506271913329783555195777222645891811453859869928169947366996540775870412173584367863229221919903493577093107676278210024687901527901221579026877217778391076136177442951696596757480771910939712784168418948835849139052841096117456730313561668948092702256918778647097208056303224804596644111591164869564757190997281522170154487279717145669985487729746299581245760107567538164668539777521512881844483237001052508172107984142175182392659155702920723341745073485217053532582999608407364503998960753048251405268558992100469755566155618710930241830444346542606656516154352243663137294713443057384422106831151637410403659407737674353286935753470520588287306074496357227491233149044791047252324418827037934283563233261428470448519966402238894570265255834409262398704812211311052206823970116290315004927397981633364364534375866849862811836676012300649092156741855667170842542100946940746903538900322662087850478470829051600775930488249812564490392470623988187934808778612957249778088654958575600641800829396711034925133844482835108953465958937863916635230554928596947893080789968690846400140643646573748728174521186914374165644974415789062720230210683000028272908386982853420494874615742341214901547361172530534291760215520030346270574452242630079259363307336574785043113179824843355539655787273073860044975802016504528358256604981728517616224284489317783732626640256481982188215567148500376866767900647094735957978154712323464443633841641609709007319166152331071426009893609357574226701271490284553472748443962246006046804099102389504776032741572266647557156377265651410866580404158408398513449530853856598486158038825572182286434086820315983924347616826725956457332214587828924851290190479376548476622635708303261407329763745346796111074322810566763678484718768537976889900459795043376676952230440038590273758903098511328985947206308910616921483622182153804028321350618707965925253775675003900500110540790745128355011288210057393418251771716624271721815505208181494122580285839821372266141003479990475485877853351987334612748364350248653943022251968077362691210660692144449953952856304459774108161845406423519831141644585790455074648153466947901243416618636463313444109094424332706017953546054733745301017093072430576891260320539117207130572652875937588169769677006274180646682626310733596384456210107984941973759078819859828767547608847649666710639666003676301610489674061278673859501199137758877356294922455258742289523427295831738174234360943519772325175673612323737125347701966326644943872606294363858807553843082957415451576421570265343589257178033691873620302187870245444200970484336313738920709974069055433140949653722148979345203779107893577717210248753581026558918065834401942950897957676618115455537322254132149468974905687916066825441711388847560725208882025949561603939195781092905822848959989116152689513265434240991438043829618099665455202451318866534674875850275756446405187580539648007266891494613382926162261510760049311229028045775418714214611978760849958444594763559296833059958975047938820370212714108368055828786479155262589764982639014659398815416108826630525972106045559712496979344958365971120153062443858388733476380515862805506631713229611209341580781639529661434193284648919099569309389917280923195172594418801908801799074214080938403400855396195260704455341774964550655868731430699940889714138139797002605939049525375540328678675914702460469543653716917505167930140289606824906488904611469462066915051443814736380728672799080610839748007470926671843805906339024210610508684670731237819108079917079306269121490413076107370499969983076364057631325969799531851238698546091007750003961606789676840646853190899256797723704682998261634717420770750551010664477380985229196494455875236245453169341436744723105663477865833100524303237104764590148617161445768042703806693642189522501814955352358743303082400541484971959672055172034023430071678607558915997206371538145481659466171788244957585714468380218528935066543464508938223346855188934971571009479794059482040041494909795121239666943651561805790583568936554336141588710037733618517906084795861591413323754627543013336524193863974373367433748106158736545535955919730205595070841434543574833501772160070003180449280412700965238317891207054824489793618759665453421882394762735007017577970078827836466579186473673421576409436786451687260430593156697767628824791487327772312509417004602784146288534907850928450572515919764060729627895465878134147687575268491283461688368718971129360333851869191563493085308644734479573945896566030043254161464820999548792741623409441156281700885623475949286096463064617431321912738900135939660734391860831427477906700436149124692873240014811373764729050319204662325801197820984826831437084461497966448945285488508998274409539329253678485014948516089737484070938205145231128501480078123233096065844529472286855955743198867590212828817543448213009648166409647738106436816607189266662600356102969662682255921818615970505545495981967195653008202367826442244894190287025518590896234488453626310115205071421590092222086598761602871505544902513257741938950705893382307024983701949412709368041513819909862604088060130257639801023653257612728585228516684278857537846945350406844868534625368241232712741486206668880697981907330972454729873279315685454470573480201878247539417281438403960515302638341893133272298615223342636432027310063985427023654980955627861625862455814279174223496201222582078269477052619597016511278370469278346797791741022225942204096590968435973176438712088421527252227834826578944159136302497208328931574837447862333945268982036602567043205041395759502719869146659434342880355324413797193356248544260692587130561925137679401595378712436278927436956204392196042016874194806271837753408536408692990204735438749734480896003089067113946646335950902159703691473898338867951676851644332008796911968234756213958118224153204968333879139084556362740180518173985864509958617969306288187513219578074766207109275449390559036439197966647537558702979628324049398454768576837046010972379732422076288238021226887089117330621745384850679373614019410265585612278879535042134186029216258711739888621582012747864594082191664947548884137375045652204298462363597747711713386792507730797017940373822776801894071562136931732424227694998137623300102726914953078311826454414008919463568977867779360338747853605380623433764314205552364629999867982483913114696111079380525556231150667686158587961545274734210050114695727937816625469886928299276131377485836870120350981469593015637851616096886746553613724446574824673861736289664500906441515448320007921944098426678840291212321688385988319855916648829377082023366333332560194782260858938259275475900863221598952177852800557426870014406762673623220592500701697877717816749577173078447055900271987941328893330641343775359357343419448810229726469323425750663374894380031974181094930236893914659356095379878979847703068365131822912308581892523353214356216027235962804661281985131672060851647303457769317242788751495377536381867532153527250002058287456814619006496451770149642370956481009998160575978695704699613092023818911090215964037531506927309307726713506888332458144751216380718975127472886856724881419185169259666195882759520499940907145697232526491072450592177069062073032154111015498540158426086398909135603324920669896858485829169947292449874275751332076020784439256421743670865480423099899458757126695769787590642846524493652146026100624563299757180956932044642112004961714171235220004921141744913310346335750659684360336303528726346685264107473995324210737791988916243948061559495759921054105847082523886842874500486200575816913535932779469546069721775203874520259546203960247611900468348396778387473108542993550703107456208157546939399884265320156972118891743673886374957538626481735791400252253696906368892494715495608227714238559242032566130220960656902366055828946387797907364269440576496230382713550053070870058654930121907938057887441749045373873991771559037459539644730726833529150415896187683866241438465013092195501082213591318226615940263213502290236770486270191072887500967351850770598453489587463067950327950288180587998420027673801697226827062264024200748198187807142309460709876429870614605794300708871154297957758032015721417254154169419311872513159590564169415277347262662055708473933307908905365466091393149911973506540351728431318271637923067803348457276204479141904945998412744197108471198876663653054834651004584755054475301830348615813744812736768806154337832185660047535299569231594312452991054589518940572096578972957073665195177754051658584512573981494837396186059348351166097104089189905188421373471553796836264476863041258269480823721027548769884769284932859287843280262660796067635626224946213902696620286852040451934387281591430792361908727031004895659122699494247266746224821813477248291737087477319657195961338591190094066205492967459027430694253384483530265851145335668658086359352120805456286322442960567524908562691615539550805727215698124284562766410664034731546451083603139942352468781780931287451911523845892615542020640524812597993272242320131042830090728210283543952348526802489004754446922735413411323108381294334157116094717021272364449403108426548360224891259259070963949939946621812753650061698354967604238969730161292210353962494438648714930819891410105239159340401932659032798644426940880684196629242112132189104549726648130932198055200565873527518396492595656070209421515287644016214519845546983317986234976413539908221429514832785142965964303896690656903237417762319461832410551184082482453931587163904288613383988041498089418317118515633204005458845111078438494970769331939184514734278393926334698310096371747781367770148578014895455660567142768116113596915406624457853949024593661569868617823697712527943852291025789218389044125886775565898639375237852587253409756410212396803421723354366506865999274066276749732579821600095198729872952245913231067632653945532606041391610596832583990921585177386970479286362634388188739483904345101278937657919408068289873826115479111649355141810028563229480003119165660703711165910297851470881899630623171391844135209346384326111752911228169358923622354932990414742073943384725834744668471267046230210938420272684541914475708911198964301597128982420245831013824340734907964818102705870142811068641020577122102314714455443919686275721681966493961360416699361882609197670071889160081704736268446744104231634947875418008730592970655656618920808138772409023167318817772637694769266426219329763833036901217471751074135921149382970819508890691971115773831231897471664960607966976637618229268990741547813187358987021194921530572648214524573863497946825245617921728590746994104542378798350012485369899670856062565250944481321568437511870485257842116458587847914338619107399373778979822947405933428855837405946182271818709254279515755109309101595875273019537499743493757260919856853288386013459293099694973180148230700619423918264716937081974184373423987947715988492877101428569813596458965061536609459266557290365242262803753801404864465709839639569361139842758826410816266486357637716563147890461980191887987396227983380352017107177483464407188421863405501129035514885607680130095275630145913061745178965505774990306983021967214770763879643161382905504768093776804496165284041189555452350746802708073758865195627594106881669654151135582010129906446297996527281038979510914475605468796205006387387904530874022087377474469175225630407004005899325021018828598547271926371335880380612290245747024247847224645599279625081591732295004053912753375530560504848357434649965727375348613085847415628072409634835451746254193224345417238957796259773926613022813686006672242721976020842967685684508085512700917284635510462785524691941923812579150273846050389477533674553246106033337372061077625119420371529903554025280539442783666212883395872306153615610734332278806214198829134372311796822777156612846338586277904277017277628334071980017468948447006303836178322739189048406464594893035417525508410664085650474298115814291614430772114463280762562563289920876875746079928211583389194737459879843399184538689013955879053807394702087598552524387341762897353144952599198831376844280742993610743763257764316965320009285937661011364612449883801900150402346935768095774965178187300361790818597160152166389771991257510668302502035538969537728470908336126102076082284066965364671703416286842315845021221251191533087040920411223141175902699756282915554002404385529452535479974165542222850068299321816146892972065141400755475794745204393792616731239099060631871007676331441158315775032447983408124214896377753641176682207492344869336204478781244760595313520588927593699414560540717562541966122129140346808996608568610252475801119274314889496348335210047520139754399372413900605056929622723651546237551949176317078932077266370585507337124440741497604067268763021088018761426435846191350897506358435155707249774794745603522924988607121749671910121989010730556746208555309535760515536163695088091976471406978483367149994227127226479575437750914293812996052533248790451386107175670840701590217973682481404362995683242390824802226496610384161394276037999873806614251770220069441150253675159590369777720647083414135099622017177355073066319735713225247132311885213002739728616469372195546339422741161789449612809533998234387527107919157584858245951318983762733785081227806111920803077355287638116500889861943406880782476691253273226433553741660591927743517423510309419100448911349406089322128759641115037328295404436348887336681401753570656344918602804048220670082356913397409680479516721679815064683087371736642411656188614934192642221509941141800230600831573596885228787758358645045429776542282460691941210585641927083869861127909276412204085532967987204741962014632999316581384510139298382010696678333375235462494170145222407084795210999020465153056973940814710088178685676020341702224101710463124268688239198655639606812038685970409205921798677083416354456624149711923648396792172371066380848927906153789384843411299334905980637271673291194157836018213252465761646611151894376101565975023358495018694248196652183926751466927620486020086873497812651073913227362204964719421974461764616108693363634842066176117129667911527785777076239039162427443976772173915214303907982521151598260533532766391842447678782933514220000715884205720815720914094844216947150841157644551453667032028244530502736095946996735438168337809960656593220659694915795931175318597517716168814174984299810538727430476938481155819917425503454596536169330543559003983191080598197928293123992607526267141621829786340932119901294564583864907708152877303533919975295279469724897277066175888931886525322592576550889998888954837906420529665689204464202251198366760391704419339411028435882160434188881988453590729574539725259079750848287122152248160582087386969049527615258860497198222990123569700651967912476856835261046549105208650105889218580802647554558599074926831296075538211914945121854665391166206704649793158582788601852557208578999813668915026684153557090964652584937682544416706277113685747339004496290810962656680329723877769422322737750325151657908400671675564860544513334040596887385330591374527067194722868536958997433420403657505339305963174774432274266497414955418308474743870542815793370531901745819570216328056116358627417185775860480304969412544865352357268203419200149320192891330815489385829486028185576208094101699818486372239391059736199760036370332787389150410848435528579516911044082322087045929964008084881091123153645231482791387512328196297147356093306564328776287667244082919505815709978908218074830027131153317349209697995712555302840818460295630448312166990356330646957492036614660246560137439949259086432666389261854084261650594450359040495361247375269404307516535748634420227914449556362509790395598071075545962449911457046589697643986381898323328793923326656640995376376381318784402177382222171253365975577234879691295829574666067871672606787272260845985154573833118187939097446623274300579747447742123832349774734016976002294887804621138967632718003543805620832659325305176500922169770306034955965606680431728307293349456210740385248942863683907639811514195527301951760233021555797510750522934952812746035669424634817993795792473833858219166040290516389750225467266630292097302435291443765969785335110300513146380200190993504428767913529570911811688188509831908840392409281972994249892346097215548989802212151985999288600143198150259531071484303062843452392908000494284958473270671353899147008872577231417385342035889640730202161961551430623712692800184398461004793335646390774804636176006168472143331621911524569837318801371447017069074090978831675295474099853418538712490902790894452880442935102759856748071985726960910127449484338944253636062386920283141904485955701580291328302939428361624122918359077827048325282327410830513020683884953873207292920728083542985516659290142956910440324082330727896785472398781274767227018516015350575817363146567213925676304585417679720163968250067733251651102020721301159416693550511064198650420336021573033519652843083351708071792854305222627215555037121045583789760075414813510946874761404759202374804605987392406758573349794410418066544513032255183917175229261118504303959545759931406651978909664316970403118793987107921735982528136425521151099197084677166258133729708763051384922909809958062109155449514903526560164111029735376164998096555963105374249306388635658140290601800287767613504994915364748243815852788232096317352101361034085469079497649766433662120102228571936593312687684860064789378308712068717744688438062087213961139534666881370102789340753864216477461159586910627121441407698637001324178083941395912253225661611013461830101917279877800829412863939008004829143129324851056087196482022183817894272782619405259414335379333901526031514482391457841579296607554663742533898045529425736221529094599375019583529245302721039996846077795894072110676739010802946623617356538132913420140840703104548633028686257045121318402368689612691671892792990889878709881146085791471111605102364245764311327019950071867750408678255952752918381764304774002482045642099227704232187138700674110138153532678652281360992761635515260723405185845438181359346921062414148313357907219920928187462714736887329717535747227687557079478136033932264072823330738468205978236203326247872626351976163400401853672206025950490871125968438946826095720311990063056091507385360407957871961373851689996587956582848482325173190973716303544561243810802537253044496432305654897986145922693632408262564875825671227560841035654460833980275411390410431670971855239032223264164322121931290346948535110338836894716176575630266003126632661658250402812491587774369441777927721380148196162799238559436980145322211426150553079251761568612824391124750759993116597967555260331354555071043217005153019189414383507743023679764180857899811671013016473427358920708938728343549253876380154838826557851949576909678607339814826997196522446363441567897539590561377199613233958295557571378160878078175430041197044992486555519641615470578195421397986159978084164795084145362066728061926903217872955936876517424263547481790385813453098839003170135830887891668782508657215634426786029323052837841548615160403477710795981683251273094113975691000086272319045815753359024871536911769786572245905918825766736842493334327128914558877867730202676884146829465954663743533928204785386763511146734544356303458577762832323386026661248025094727210637276198554142074357745620958588386591396372564249415655122907892292257206059079745887179210358721897785236461566914546836182650186526115209725575132214447551129923688344840921593606003101148028858630045166864524418290931606995601732116264950837136796458470495260371563936680686662023226611903357260916272993177473035371324835703209698539385474272821177115434740499623420383460405367007307287553522725729345824555829564301213497019462019199660553873277060598198240783755483735489449863847646031300398462241577039462667656351749462774844925785160980384668825301258087017629982828656838379698336669297402135548799635941649234922773415380606823810850684486903893273790413909347316559666597106536265070922248985635824255950870253519653118970461184427098903253199162887650442176775317284962973035364965251975814978562925105133226051329985245345964323456267504068061238421303982039725456338594129530300949948551992318778866212915732700395905783774817123604890309365747587283554965520657463285303035683676921682799792028206021706605033966346650042139689329726135322783833669855614695026796249244202966959125918736412517758207945691242767608541625744702688312652737538139116456563894987343327378264901906630586683194826599508542165289486366343450875898380345247272436431467761260578596582567669393605677627502679337170104764286414664942907183251059112510470798040307485669024311103261008803195440276442574723901607135039285848633468010304790420636347852722481282775889085483548419032152130111377908671417457045447644170231743255492570752966985244989682523846543212128646903776629726305438812827323394069937510473892852830970414406655733845327768989950965996627311320688672170944127756813395705326557388170436072818556100665098180278389913199501075576290629308320846174812543009020985385924007357384148291294809093185273732215152531922128694272075840371346018334535525906149796108154275986365466921975876059715025282742999683812292450254854283776265333395007685012834617974503508349024475884656038304682926219696583665807405819282779087890311125550726282568910055872824610219910789164464368715290599162839805385097991556774233931393821920602736648099566619075330215991808609460244875782320436240509526149893790119362357883857355339212803256228191117572308061080747669950347255896827037775028698867100255857049501130734986831557017976802859953371109760268803895482532010880863809051615790645109943877265505936528192143537384953338393998837598237571588951390208600599624898912643537773994675400913895598921150981699912139780309845912555184748081438243780133333518813019070375149063554766774757324888815965518683569540759098898211472351085559182590177828605604826074576117432737997770031613486531649553129378250874079293484159932357251116532463346247981948241722772625396242912890508739016492823569386144662178829008542242257965540828695275137673196069343042720733439710812552786298354962818501593466570435709081815787389625171595307806535074989273781637404348296537514156338012036845383416809772083547446067589275138405738052519294603946107814855918584520888346009821016397451414378591405315654812240468842559904811363306366522758785703368219203970272489739583191714684226251858114224629448903926248357710586012169822881706976608571713117473106220845349097806532852411066790132401960579035331705504770215304162301101949681392631288646520668644575517685102878804755085931924809216204243842805109171151509163832753950081547014860152312122578704281023247862473807581277986686971957059301596076500467735073819061493990552525662596758162795431433963385266634232451365739886632858034220499503204528664909161389762759675451372908039470825233537033625144297515930364077915531971299237208583051555746195327244991144059597301388589594910662310917003649490353209125644189989009609083368040007982143917675218193139215316365811512819595806476871578133971177773491794406699196574363356619131167782968775822709578668391456425800350051345254870921064965689768709845991735809298441881998794753414550902756681011368962424451752152589924428911297288499523174213744776002215795058169329953055612199533142616483166402816988064940577226828816262420832863486172029800057486351071829969380159133256924926218991999868660591602864448343330825630964926429470948915308304382867980866852506601946032123369061663117227714209233253086172882897240196805545836856939048526802209614474884840363956660901554418180304549219460833788645176307679892100783694709686159080259289892804687340566270577494470313573932977697864846818486445427029774719959791160967202968370474982529852966336547025163325925076577228952385739863425755795448785595794712645648927922789132933024463789957783598251086891479046492916582664207622855791673480237588756195562978397767357845438749280029285609728261711087368428837056301380976716983856255354339561684572978075587899985716917940885542101731055368156151339048558875773938817412884267888690321523529730741780212922815725299793013093883700560200083096931475383276602223770187755946671881316756910393049453132655317034670867480799095489448101035878424292703190557107344755070457466185255954096746509674116152065734432962061658013371637031941408792279536744597642190528769256232831559280678441458745298987282613815469298089724842437632944851161980807223746684579098379837310302415816792009697209868182449524421840004380372885435704392147335085564045715391157853315208778943478231765759870262121538360915963366807233206448969283203833537626895084802078449458355618827966752100028626675220151401656236914902799211002634509677489388752720746689070933517131110926841821871336665560847853842686939884655942170233005155409808370682643580543260682143434757070817161108923235022828407226982041252358257986699867419810329287239217822742739861847405090032878124354725254826899445459722834812651754160274946696325743647330879376381294176060438250658880682291687681521796094960991616655862060363629708150304083220113081782411262765077423086974801003652101915063559963597482004810754458994629820705750445015196090104861585113384721099304722507415410026485486649077414485895224939725475075563330842099428373293049023743644853088244938223240996674992164856806625912171107755097118867948455660271059770988837687965459284358765777908394432274567861872924496251562910382783203305115646086548222648229822520505171942027699867515446082081128692116593853174546700330444269129515116715055452921025507577860784556330145383792221957314115420114057520119967141997712927400050287641325217889066357314261298783395774257473894144896462082472289235039058019264124404405423321367302303828333177138457458576299162464033347876833902065737812044560530336421291062736618792087188021023384385703576789340794177584556158059723118721884724207620202672151811516596419059047134498326654129065496353252930207228458606487727237744076570109971729711317114313277396501506015226774345900901641505322562622174433549396117363380051036831980458013227404318112026980618889229442272457807511966062512252005610412393019239411880424841765029109632917258719600207148206923422419360136765334805084623637070046104615357086753760232897369349185492226875054476717554442733395121390850399169783695004928313372082541647138589730337705293110703207006788170746534620303430790679866599681140589970770128640863813651602236146284888991692704837257874987468826211605521362711282660058986635531384264375337401322353874868924799881995138995835657338725550194922322144354122783877444916080064969372059682000750798946963095065885650523193067719390751199532443506018529993405257797452771095055495654926116966521966876856917978795497586534860864760223913016016668666161529228223590912416154099856460057556680765878833902302745354274159622216807750484748877274188098360100410104821787001171097727764161057957534584509090135584977417829746337154942927715562313445167353501037709048628821472536756118050068116941150549047882202705165281132706578241739002947001315342270234531606849681794386834336027279400383860672837786732036985983639212798811537385926436372890189986370039367526948088618658076409763870630262710258210869069735212766708431637938566553481922614737881414579456646013004512464690915003896351200764442330394206028391743465003256576399651510205815660037594240385722489749666655156961978025951327602978660223331428794571331020045285731808846480807978968034103246794309919494455870100440852408045017269838548679277381802428818804913324411896728470408064998451231231214254997579650554921364763251690423334399756190376608540548661973746860550839581876405384297009270903742876780114529895836952518471681012321070687918533591668261385043834190364741577777261841798745759284278644435941300985420922267455302383222286501988082004255610089368927320657643296243378475405483388307523671372579765888984440666344690157638250284875569764088957608229126288436503573819588085135710553377565689441691031742648815112969892760881301601705323879305904106669197308315818938799689931231090509312745757032599752929623091228755887702668469147624927950760029823329720676718736326376548568008993909206368368994443730924892883745556892733316496136538217106822938185912665858112192399008813087457073214366346358993010422866873982591561343918515507791248099746527306622693101499167873016112909479815315180285789911553734420106023115575161943563515861148958165039692312111308245375039830161776376570630776063212624191510615208366375821870854726523162054306230814327077534257293258412470880905816185073957414077636302867580249380367169158977034662658752688275049229031634927334343866753416323105267592210544184661278057810400070801027246162061398432019531714565570003263172329865304427107183790076321027696980854838890882708071597180047001071035467129729833762998829602473498891385986321821824112205107025651616229523185598481325473378828331641676805589704124528845265708257770057772164907842361733921772217966562681785689577524242451706322594274024031630435803004769163929321805141040933900507606176202301072365413955553879774892636416093561686683249900390885491739048870554386937989579128110889332455094401137733900832846286791733629723268699094182581732318860909918461856952537149511214032179120046272157578613675830876298764453621238091476503556901597654813155576432852736116198109304381796841636999684217299565079443557845607046895911452783351220443796867211879172456156784040946864030847302245271854181648751762934713692478620113139059720782770032619286076862983373316054359857498260370108556341074173104874251995190118270794864127152784263637703016779876171799134687615964489957955655281307007808366233028453660243935488286128626450506339373581920936395425072475308160044790728668933819252555135670085973893091546581936000316814577934330753266032713022913727994961318787446730333789273568480844192264285163900210662886458849303340011087328232329570022340919322825023849156670713100495605001879630328558061733266992943770215676423664220610501624518546921838538520483373215939917931154033622472871570509828320224941316156832640305518426171624545305244716608918123067128531050440799178930222873088520421371863018892182759364613237817647650410855474466639020216049798787426761179611807021321716338464396024262680191807744183613255256174557087783109222216763801387338299397791235073477154275640647305840099392456053851351510037973344312968859418650786893476164403552030649684384857805243214801246866966764796049899435317703227316579373764850581327074314542881196670470424209139619955540231494939283122856178670771161959983648684087740852267950062857331236576939244395097064115395350293889253900743852126936264731897426452993142838844676346479762171775053963857118859502230678961306414201318568679719625887915984367373590617959637612919842703190013562402622464454308224032851281939672621087224985778487384583434578196351605432722330321667049477036851175009266180814150855432574435491778515906028249692717175435995853215435728727032279211391857642374529973410261016936143275047943813953077566367935879986822861915762491794979485913214503813386357008707610133751074556707336794538473900095685276008797262585293037310472466661700324368736513540742719322122141503893383386339843296548412441298148427131132140544800979591326686820155980327741821185740450122286334959865498133927776720656404128384998190691597557046037865741642031965410398658903684404740604193749916130800844663705966057234526205504977239282815108552435784620953674112560417009122423783613524653989566660306842089930740505390862286772381262431846006336376753456600603056286944961792143896650629861986627536326393723938000774140684595285287154395725397377173953135123174981299948798639369977932125013873583379145454264830180446498250219798169933414463453722179400621507311281604495486884593612175439831345407556565125428743069188877398706714087635169928185108212151009988886503269596325073150646175030347691418773474873640728864503812245642102618460385643088522450341837749008780078148211872144346175048128487711300382667820060675662199899151955408389885498784063631735539789589628886290880240389308855676609231589853457060805531353840334910880290499821286701415329413546908405936420405968880421388772019643526621433282388354796803212633237589337923584469422564345411827470745718973016124392737436486849168053232248893132249836514228621883951579733408415667682548268684757151166367698533317354669622450950319162432699638614140919783741896746302945561222782504991198014830298318541038148610149351077738153708454184457232420941398915479206322193655730377191169588878311727772567491177630693394682202034811086929264810984720935530275883830847139763796311673135735154752320880656220126138652033405141175205814773454651415315209166528429855507978317272233657405795158177647608452685767479343709160516632404551813171490194276203207869762703131894505983823038816906570399751787253713471625423223557264065477284173992811861419935718119634798727623561384476153725192570381875089603582453351302986428405606545455793351875530696926931048975370310483365174503819731481082622920043312902448033754112909124490384404163678973327910728750903050444429035798959316312207122561532556197408545370027988712777756510030037431275335357913450705636260769396670697567570341873616584447480024697724881644139622828209096786431191345885705962713927030324893330613455089911499300178279038883857877943563607376434166354108265313316650281058136646748149902980850220592956575565715163140035825854772142537578276020614148755628665172353473293370839658156881356557189730460306546691857093647234751272151656878095885634589972221946530104064788963110529868799242161995219211367666577294324764259558799431289183285330375282436041765697663240181665912915875380430504069736936284201531209153918724669126812541465935162263832672527880974951168159360563319941125961445187113757183621266475237553624361464811789142896113257591151845704269609684744884644200433358447245614289912759239470659732555227472028867385718400004923637540796844481060000927621536336839835804703383544176039768918006786008183238590958532997783777949583631452540811803872020006531587959543001999350841148330873417369866275270776405124505897296180783725175956618942592291686605013926955884660206776951871345176402009208973943602619087234260431639180826099308502241851893997327487949478711283319849522118983567453143676399594138035809354559182819044873183242647244537907635660140020752851661898250384732282421701993854486289105246054142884797941932793407899930517459041865422480893165151167406132707213641154529329998330504031039217870253956687144742850632304025829743896318183487881719008154366463291582795102310087415596277715776100177593797395308434840512692334553169420189985054073318605943266338219427623641182877069790384462739356734494618981296874221428223893573401694074853741894833914628560848627134243500084998630507428827331172938690576348376958147967285569825873870264404582389481253309579170635296605145962333890797956038209548932588154020983020872660375222566114253872537315693366136729974042849962208752065021285929863842308285163775171622257887309422103088539257863489190345646167117560757233041057786375711214014819303874517758630408920910303483150808953182393468367607668371796836482497231339951014244721232890789086593117891463368177107296398101908156509354772459090738053830379305740425981778192530976356139702135533217322845053796019315594641967127049841434888315728605314466081497434836772972802772323126785805328281553125527297507256228488036548295234295138651388883107939209808264690482294565056276653742604697487811836401314766319512928097995352098267641736019398086496250317450412450751037393646220691429756555950734684460197308411729785237100660022482003790060442417522749563167092127702943608691412284802117229982130537972883477524729383780037320361917601641258174661275324009064300788796620057936821989097782743570519193245307841776641540166986892222274895475695103198657098820021187601227094778570194931576654190124063309646554370725830838183406601126123389013714590552925080977452051591703180068593415499165019402655550925251134957234902110936659247773359962562889979859196415707677293090319671684246001325480460541173975251495957489438633430305426036611254277860810934906929402474886698689709591494368336239335090855300326113449160383417589111797762362895522450990027810854848870190587410423809809589500754191765537548015427200638956305921571417103904838061434056661942048271216546964756678897273574846846524277475859415599943670384710314181851438438995541117733615509181452373275094532432352772361533206462429387411231990228019576325089351286713094323262137841948180039010422308706920321350423036881612230602277963981703114057438407484913535541001599400045051540471130363167778128707382200551636132753814287718806231865078963233675374209053838678332234085192976110012054259831684873446617604642769744054891243266623689617425155822513699065757798421207454101947601247781470597909584947277153651753905727442568413059641380001245698846631305293579689906970708707740946135601074788142389867600510779368348440681437653738499235163081265807734104061251683490619913993259499553310967465729270636537878409054783721031080290083515687928149592968782012994961909844594590462007412512612391586177514849278144175706628041196838328552724310227354690313849854314796264641794259274308787573403303327079250667088967239085387296197425964389575970972212838088960022494771860063031374914931870574692717621159504937878405370190693118897320055684778508041450515876458625592872397317003779764277337427019810579797755426111315743048288759158421950447374727038831103247622870703471396146907365497511966353444316032951392401544384073439696899113476663464758799380356663496676113011839482859484012255034375626654266768155595466343652825109250138413339610032607650964447739935217279426959712231331435798860648886119200460845132109155813119802286327655253705988813043455395571488251201861250083241230487299782767806932421998602937142669830278974483744596175121303071016565190926956037374392563431379043371286855197292856880422538303680831510493037189519555102787107723219433517744125469808652353520672993339887048765167280592213041438640986724133220438052699523468792985785877885003112687342276489646892751309999876279672534141397916684324110775856873196015884642793227577988175569868882596227736527131718047119364865272832785182443941971443612421995749228054051146794567482438261735826649897137780270066933484877353752870526912426244092057087324847290618128639159049058597485231523868159705661380553087947148313274699335358700769629193044763213132878573962615781195957968288754785860502076955663527986298503880441440763704063211567156218143607808104064684817733026677051331165409760634412510739563873890650040719458651103814660140171628748689089239867458928512154788476293626833784030141757112916479947030131289533640672197397664967164148296777584230703315152132356510075385267592115659927697553721471967592803259622169401779558479402335571544878926914407353181493614825795546773189594260863109694646330963980988579099390661985583385786934553155143045080460715709584341322254011651352501050012005866671870370652281035644872165745344637068784899611866396359359828148482465038276883765671765142730727422121373610972596422664760098484854635498296571709634702521167622753484707232087526901380755669359634886458586881337829852415732930482834486191258942668443839642352137080902635161726018099628070458514755405029085962760076949231830290890301852954393901722855907414284438381227722067219488768661833413950533381222157882871872228015239308047179539168019544912696139091755820973282077306456466717299771485383048573992616334210626789701431940242216863826027963586424746591169862776887791148224865997359543592475249871072027770484320674178281886073573706465160461692875049107169963138442471268801187404461477083532014829492378197957928411055042435461884253491794024460960950892784062439357287610913838529794670879026176097777656316427709858091479716408965378228287258353882017838929736533775842715236456589620792421755391318166529514583820687496106431853923924313224016670673860387964623442878935907185373616063047054969674359253552572038330255757565096672832496003738074727279008712553409593719191613050561358459164334222866563432273801605735584140286537056586232164533309832494427458860848741101422690260282627596962924958405107024111303724811100768132605266775832559719519701771279320879357908345528553059357918180342639470785457435939483358411759647210919788282476709143920915207583265562850735344717942901000759050609536890766518042010111313677859088873098377932170817506540030402368870635296539611038911971595053973596333794104837399717332620964065976231782934120989320463589550914327563808589057031638401016048864871967635411515097791754456772473080954131690483426472637282147356887109293352864213447712890229113010412755431630542284687251484429897299893355882501844117821270148663788320868967596314898046113380154834930962493239018180945241713253799160423658370560350369670168880942853748714459800610231760591371226986105199521727560136005455099515470818229084304311642906631936858005237018906901478476742203631779345274947125749836376587846174906425563912426153030926209787524673778704329125766823716704225660618550498359180987919846886032578673744009592177829540179140407530494341683270432011767219393679043742509214276362108352218967819977131364730180787679949578448594266166055988796833594137510065882840558750767571408727656658527550740131319962679264958236540836225127935791781822737919426654130831088979019800185833658908735623543698800570795890070937966509267510461224626108049898126396442639190404692913761193256783253960438848911355459331081977798507389215575562012416307701880855791717739357736667257390214604625206006237289122100140372350209754073367084155414319872761378710624761513030403536685454968097480352605886371395294722064194927640786272332338856697959478809666450898465826269656998831816584120740410137706466005222461962368110070657472324513599185290630286439235976334816254327081364031504901095115387272602857367026349287264467308330708360235048683197674082028686881130290245003933541061740107596326132082866679150219787503968525286353324009417672154455460788526149150163092473408894537604454406366242699549578093077142582471023297613057323014685754500950185490458095802751550213737078959662894306203885255509123169854462921120111823871214372770109267066225413848553000079592628990780249642574833971190697167774986311688549834643354184972700719904817823738565535308155386137023541238621186637849396413865659851249300932666621848807079785019994752491918089977069711575087780486816410125855941740501589585603210365300256387776639327215813404958425586125835058961257642849806745576994494500079896909858349588984619502230617081852316293311963566566744304256895812251681147837643302940824370918729413182140322607843364638975765645605114741557428565929540661937065972271981203509639152935041019203259228021377358024802512918576148322475054559640853371721291484943050516583311442454156603200896822889627325212884910226215710606705722294904287620008993139135304266107880810260439757575776266564490459139586436068553740754162361121088419311240171268012856997372322939542117635441495374055768009411556777204799595537881660960602041194451609922176480653958016389300823176645406410490574322629414018945271741893949331959967893786636974625417547724081713687694191156294561301876215846186040109239248753853731806482160855935138001126855710000501872480694141676087328855322463158404772849225614547714478613872311481794437022691705367320236760375635904352993314193551938383118590178493142303540186532782849686129164869809993814475657363238347616595472473325448095743617432183884288382610072098041133579490837989218803194615920167668981021333638618553136458060355452257798468354342903563562062062819288091111519849238155813277941058675154943735397221804399313583805154158411402349178653765719022474898084083655073589379557063341539082759117515064041572782607614184035081873133555893586284484336517917588753975584525858305821398649132808862169718247975944022097857093563018660877703691839281093850354020726549078890612069672163350310300185621035367173753433561176553477993867036008023031167876110991094680651270445365290640439318255056153481949150263670969360455551444076803873573504351372034209304090516031373445047314478281605812886214361684795822455792012813574795609106311405846842372936549074479760252535720578662533085043574969498330220676182918381432918951567961635642768553733899516637528123579969806611059026521807792759068863939619853956913584301124284241843612725695033928742648295697879688673506475008364156389128448264234316252206578220023028344195023253644410321230800251997563154207397012004198028127579053233560507772558160591874094852135176437465221792766356469638651984292293690410422805188084654072168658666388148400277581273839889629889327231236072462700073198850940026756349201376713844507564567563491805037212434863748435318107570223721895552503687692408526583137729946586094138909331293858087585054328557919992385107017099303099168640018856747864171334772146895815620922142065556130906658295878573261045642609490793797874747052927517652510437868599322717966167282996971912983707712615203841895278179878811231310710706256414060781930530344323695442509224933222836180011593608731832214857668985221392435729263796505280026019909153464459228615824858073627923721224261455810485106861644972865258367397254095673091346684561787155402229478137188579957322724542410629542014766446932793425999716257214932063996753327774937654313930915482410834344619649314802799238523567075157732565249245244956416077930622702866784144369863232323556081686077093725273716844299237310675686140391358060206332626660913060401522384068634855699820522793686534132474282814120863298438563024368554105871129784078549137585627931873972649370901302020141130182505953558533564428808608481449521157619733654350347143907926627381241417442716878020710514877065634347364095450416395132747571638319676032870571315182992247471018892160684848712266601596781418217757806411107559073609708509889391568735678956120200853340117618513849863525080464888946912938092391314076839001545561141770466092960090666976315209982706493115025724831987519632588288309511013829545325869445566604910849243669519248884339293972791193343346905861031809385916820523193732531114534979579002611356410937130520754297778046309439004392143223501787242517391643756741237176420664611515509614732256306756748216868924272813175318612302717316502643895872510887582400221043720607490810120024457008873351034227233492944856377024233465177012618633314614359852278616205732132175272893810404134250037274456985157631860390776246594686719334015376397532710487946516666310686346658001365489527970837687970595760737217574223324079878331252750523954347305524078673128683324094636520089143028193448568117134746241994462211953848244420571082075964596950719895895962993333999098161641203412604635748916406983674431526304965025775118749926106400711665002459676493614227701855412801170923095771538758064189930519064093501925525668868584899923160372841123543134513786352197760261366410787189594645968951493754748255363545722337676101177749988875672120574021542854567171628774398326496497885292705405750643806466631174673380118478776390797677365120856936841827039695080857124479021733483758124882377662951762134844563794862299403537990318601329081279319021701874766338309062603831380520736001446172730300208342907645510352563555776249594426663461736230862177694348293589783648246686246878866589912922405093711790875889180717601335800680185726718738901101947475905228152356655485481055496896968619577939603985514214711508255280769371124147037910916203542138588606299779150229740015252897321909033010917970908043948426679450566790648703597275178742170671250667023045968238711852747922746638484536771628498137983363752296564452310600380811189154887202266129538485634247327756073425125054717673880676687007353256078250177662249152121741595741604913169059920631280388843645129127998960489666792349661118805535567431731722690008456391701526395284453438485167942066422118227096266972670096530785479179044023041400306358527053507072652323843439353906880928744584052029788881432709727585478983827476316324208707814772988514776664235137180797310414431849534809835423241029692043373010904535933373319438362571013233950569138278739956308043557186616710668366356428274422497814435373144486651345756515551835236470713726812847210717024273852031530143703479639507806684276556662450945851365086471811659709423570450542835615818743897680402133600818593616058393507964347973526681121550412639071153513878360701331853169782338155539887424518985681340970218394824750169065841201701188772815923503050647513240783499297618411785838359204721525302066698883664911611105141244769261785920076776081772592568466910468607077194691575252048826921026924957377886306451166873668554541896431049342380025453196114297972020749593656146493173805886154088238778190017867910901022642136673356278098656510780268393059494752820844713260938229186115223261788393933816521796494403779882476572062386309010569036336027657556408401438728702408390606786773640879569853595840005146456354173666778364837415330599865813027819421849912613926819541728735569780812838093851781556696924400553151751270750944763567161541827718476196688727737083797655460825678718339373665872450089266605899663632089719109892215531312277023824877432335505944598944806838903088622063375407109533587390129185954134959634439486942484284734557147504190094671281194951753252930380915116626942417950148302841080990954052670401749117778091116877129099417743662705387850091507711972654493015631032678361174055062512844881322679369869226503673495390515998812367477642295286446560985391543906850189770339254454687098135730369630347590002385651829224374083988842065859388320460116707669454246496859564889366865429004064281901716953908729558245327510964440155606548412702819871959692425836645640067498370555848294818488177791085427296558057784486419152260033651985441405471989433051723664622937687445591593506585778392316519981135357997134893007100174711023471762652352137962664023062298868184090838542614730323145173528649590358088950417887048766342594826911652407035715250156958182566421912428545807786328240317538399828471394967987593566821540116068663358830663781708791148878254503507448458502817752489270910392216928545921947834597375036039274469140023677316309817929228463193703777888996146889919668580777921501979093722156556056923944790498764473176169934458442907560779533293701793028256070117387401134120671837601571753515868449492588323663236193987119840822472171131466186277520247198865170763606479703144039848716719732196432205306148982130748096847807166485355546570536857006065158352203621135855969488223990380044974412544770119532690474131000979409089885189458645199072760614067941613510697253951822609241261506150167621077859870920839899229083553090189914037189094333657945649372185283269322393826940320677627470766046719107311698814841985088566613529803085938456063711486222036250509387719608539275704832513049347528623301522955257956601164265704377972485737650204723148846025499613570834256385371178706982481209925030217543148684768507811115135777353413090665339570403763416874040811700659791489644058664182672064645143164598527224090130470622330449099395318903113336960726178210924642699740918369470631511261809102281854561857149113319157725799969738982986849307125136950668722870814669818882662260975942493918021475737126749526756874846405019482702712415969122220703298550044080106207603462511919770373278050293309396415495271254456282648932000424200265862361413218657739584818633328811807876290903603531693834623243673767323261678611352100466972602570368247309227011511922859037587551959062121180184268069904061781372441978920764764518312695761961679520927629390223447899452118967219246907734113131568354153350042573896412096995443209373445105310351355331591296768792709824126442769432625740314613337453295801874682505620104872664844977738431732514922210752505620990231379246068102202953877188382739114438795766838880664636051154318381016865899055193192164557139985135319157027919240412202600415819544240433461328395601906446297306220007477609863413855850007722385075723724341005357309615817341255160718342600242321604258466434488068503750671108279742412073413247340720222844000970445420201076714957912477591152708863165046885514517541439240046355682298843328648617827544834471539382166323698026878097239083193733867000401789895836764103694142912022524253376095971176064568685826317910725296524807951701274384243022374388423753746072775328296512097291150734566952488473199870201689013836566345132166669830910830909182585877207505751668897504346894387401499679792633532560283401637680778592510026018567195617548852660932280393300040251361330900921076682285250633956396735638870148336292551197388421623054976855284194890237806469192079458996248301697695314417508698797226847593767850639870791310897507385652591246941148594930233614577409455042600097636061530915210171028609796743028551775239899523227740582674471222533213707688497167355383424222217919633205573719039956204703043651611924171365342464504600897432315489052531330738002190242544246980549842759181736583226983654757420237561297776681959793662782178598311721977826957482173762326908679404022413229317214145451328989359202332607925793421868519049751265450347708220028373906600686054806035737869886085067159684640725280990100971983263139362699395519189283346683442713993938516522624703706558420217509646276836839369478073376136252758945093920223694920743085169243955213012732603881173838014057390172217557138078405389704979332708057551135826242715930696839373196649960672396218797767086998903842940005834852270794918139618656102885767213889944780484860428989696161817143775475668744722880665760065167444837009692126501241675491737523749922383042197041812461875895857489019605460252758473345133642906481132200234693587545749118390884195157239471546799300215272648560303279001801281322606536070254851942878719901659998936897173813751753962586254960676414685570995071880853959742638180277971574566080115424286663304816347611500045656309757003415598549677301930699360803598315492914085195620917393538925444756214689751513288353673075044642565411970735166174159428540368176083205878689869001121693528605542294246983543935702224227418449052548458021343939716081103474550438772854472516815048611333783520266950105005582842759453512617533649633068173766209870908666740224377550334994501265945729789381348982696436691290882170239658215067648309695799912545979267609174434027784640317557679912263288913267550669219397383579945846929302350915225753438053772488140097638410503433449484730848786710429258922652530706759353641347028953258072358687038860047765946410307251261261353520888230168229213150947864695651939107457532420041763055971600540746694275544096532448877757942834989126883320207426040191147430148106262076971389164406907864190406261798239391861749925689331272844680173159179099896468532838766364204537877170350399028403360328567607412515072996488494224701399978942872458978354990908891029199623782729825498140139704576472804248333677486014645461256525204195509517766178322664848279016237007631247749208017352513245691869756687600639774940540008162665680706484778856667825516024282062917976786068712923261289278077580833204712734064378770284950835752919557277859099512633074745398407662159517644831811677970043099480681221216529201927992830905071530193819318627378424878330855567344967097092756086875049840477635436316023401957653315913584721608560079822791426797905780501450713903345118050325354832464475628442709233194606078439291039117219754083030491412596377185206403112043715676169044040373399411440710499795049581372090512561216679710575146265487869097938599467684220523766016205994318264639047980423897276120004345767351774913113381214899158879756536540463542398775280989235726310208360530426960753969877810099708786736556041106878509096172206999770448756663625817699177728871322459832517023002657265861777559079761961803100832973000681313246722193090504270325477406076139674089113836237087815592193589756920116687133373391876763954434050227603820971855181982007526127196760655248712733032211668540189719678254855256345617013647995940814891489461864365987334482719421597601718167313050138913189737151216995947748131427323410811086791664424487242949171623946696288084049503294726632801412200584799485108155488509614763405101556312341541750418299815801800207947085201269720678172519864040344437590900097653758264911677156410504083371504964453779211207192670347209701136670307098824590552169581123410049971188950892675361371001742597389532407128188423008585374439029713835877605702589238570304827026124628520541616951211565925679232301030149538019241731627867671387024507673017155968835447540698759574528027351535509465196634287886306047866913154188892109275614517923681849353338264132887329322639508855714742050826710805613778578710987806775753256588454211180084134734829278085204022099006101937813726313444695393691567811921332579749470262908386413321682195593766151025912911423424892913120775963621496823074898798916539696703355545733289533180662391658092116408743844295269710944796877165257206955948422251184993337261633150580183035500563909108284546571317427472854391506243693254017529593027108293979308662860365412080838906906567914620671954092854864694537992696553393084145762417150212770155004839020656775565232010931877539161076607475017094494809209862089944500360046775117555162350263535658165325622958476978411427024787496524209102485154493143877638352210802325737709038403376245788786146309773772256569471037979659850967402732504300796549356996947703911261493199660397321149807856371346125517961638572083702658871917320039588892396142268305339448478884829657152808628089853325612455669922612756098100667854277092615972330984500144775661499344333486546853910194744945449394891291432669881654242828505915862330938556955512923167525875338038972278692488406996399650740353478102946940907395483018520840300695197572671830446392468774737693072785332119383598935976668952691312981043018840005039497616472226793697311795923158479068148280404598433603037460393689352495016816561894321464316500136092582625190278957968876980714951385190248024175218294935813381741760006019986947370754777396988200756826534182377423240589092340167073600816410587559183474474957552334796874654215925536564617889423615410433271179015916739980314584879851613734698972033514902736190480969553451189321089626419354323500280193441752058071388888016007404139570089365767762155261923712954153975949549986901130955936424833846115011793973943014674990216047923243688183926063597324580747042044407700303784386603906329379492644327246499093841358959074661931898240508653325834108265230672394465770174159454106290927338568696235328540440928758397748038746164798452442078959732010396574013103304479889666904982760994901474662013260156444543873955720450078977339685015297501307239488972527568737804123791689441128797993723575120813624474582007780851699142655606602779810971824120507444230336358059170671163091440124962107083009303931546726499838275896669104717676160318311012408627608310362538318940668344354742805809531380641560365566449547544079882628795304229081564857151003479281724081958225530076973006866952437160973350458827081834601680580351367672885960733115759122663714232625931032384698887843430155209585059064189833495599523406998496870802493534424593750984483232740433975073795402754632611152096508060106507244849434913917437287887756352113217321690408987417705537439375143267165718541612818852194751786701949578063776753736974173149122430540438788991107857437120924426294501615814547068331030744206459570774196404065502324548707843408372747233515326434972527041800247387813327608874833120914090056776171002931481684652977341699865263244597548014249561388481460738913759042934213635097494038826458552977440628672293639416325839713223360566124423043739623844813385827069527363565544800182678703354541131915237916919665526374287653585441752354603592241301830757028853050116745168951743442583942144933501230860175513926632136835093476221580227399638931556849639523090473855812946758041450196813191063864586730368501150605345255631316399044111604981025443903683903888881889952576380252310409386600078711150153890948885776893443606918057958222591203088926063885725015063003964455040020013873140379077625861106706481798294595512009211095625949527751623255806153024584070485390679108996613351413629830239059444720294765164362718589858975100377692079330520935101829669072572919139142135189999325401024420801577812186773069991093261810823258802927981050723950921981248221735870542455096348207385361074427383712322534923244106536377499137953186093282590333046881819924960074268649883448461838863270926823163320697438771601456401254947371938579970942750215348530565047571096569516312488837618724196866464868300274740100678982649124552693458951452480147434528378553258855402100912118234170212842865101952480320232963314369348446608991103412380312262374390368807326558819828006384585094946077200851394124017887471496310349445832482031956597256551637658682670363397825140343402201688236482619694685213793601012617085695021368750221988823600752561868253625597252162950519098094021669035221757367127544310689203206943438551938537313856550854915725637393882584150573121763923017503369931978754197593307789907035977231580046344742436687326223284777629588907584733263304271684693026994316428004844125215795860916186764479596523825456925025733513522814888094954078715141599198470125544765359372621185395859970713720202248264523381663650773900641261721600821445645120748896042258961724760610663413535380861485534273374726621592294716566539501547720107121500733002993937617562214939330495571916367930558165195511374344948248509583699380915922416616106772667602808783333769755856931348132898872739411087963015386652010900326669421552638864296633074190406467509804377241927104198397460473770374272438425714075548103881790806927826918312983801742490985638453245290673795515674360752660412898225233388690882009503113032577790251245640512790575654512920513450602132056097236182714052005359288237853243223473699746324314057261311640946778145191869175182517416940787661474916183039460651586992075012691214220665743237248422243545944911392172504863488516065704432183864307464422729318221143061859881984409155186970677873325590246847714680106111291553616966825020831986825593159035296795328250557224462950479576966366823955192354069345996680208414176044239796618270581547623446441789711872147236440692402498854102181590365193901964472852203760889809404505778602391293557830808876723662997319008555255950976637328788999701419870315604072654970730886465577746425250334620333064172734415353755474793318410917043058940957689029790543223230959234719715264979634846162161282141889278702881288809651935276614779216737664424953968584443731678719935813184668255614403537681339425470391959151530366885265495776498180689117652143001237665100520883872398811097059763866059838712724980520194339713684269591301304619001625021988339360678191966919392747120537422266011268573824699822429731291341007601699733991109104090735225975462307802736513891777439089990688919600938055469708489932740947020620181047762006009049365656101779781629178644054497578625107136445033891149054895715684313217674123880596446711811750848825672340799206482809435742710897057191705276910483822301918678968666498603962136071111049744767880546235281325634646704986780460374750776572304444396051747006112839231825340880075888017377933620697867522534479552357957622401450922985330487899106183907895887708153576268778341249864886830503449909471021369289512391809439687625864646352546497844792909692806688512603008010960633882688205316280973534812280432617486980469601471291121561930588890672815846300150270550403454971941440410159208253281920568664272019808991217261596809647852392267534106217913225305520519202308088841404794560867843509744464105236191416495360434590605168651327371601318014874125203778391670912739119787247228864177198836695855891165638631662299260759740508432948154538914790642084917789298911713333602261143407853439095038873235736576566284716939853609194249947143074939458723028182329113346805562167351778856054606326523078670931530427421883274629291698667260247450906041945660037657903108955443496697653455391538441661030559045563945760545962829235487331804691909910542259363945958982027080142138192509311753410308649849856477995667690357132715021024707948884606504161566593299637264357317353527313762405598092227124394713441239054043543418893913406198791093818443023371641538729673252285611432745136887963470965047564034573896493602249351902234874524525865399596441025495703068270145166986259412802610145533992493497085598887871526168989219915700552205826592044027112797475084760740465465849344451640678441934250107575584688149201185529624467682490697222759959557217424158227192858601242455919090824706250953792866760060510532986559745227033975228880775306791123006440724489480568331325598218540217028828656919770022788022869039823226989379634554215308994090778615822296378775359504947692591352537755249498213736672761028407727555238629163330589853825480893675279480083189264119452878326811904781725541802115265514168947844015243721225628022174734581537319855318868401171713319921306424394252295021446247875259548933509598332172074306958822564401384520034046222084327285794349902559995231239617939241172715322893667520040260712180027882079884107594264705858582693864649351812481624491459788580706781360039484945134833170402411100757973719629517692440414710314167866307648418808517213871344839218384696607746721477400147099019961073097014441916259353253822565390611406313043230273572777042859451859474289367124230398608642097255261632926014505866137342343734637779105974819460279859346064881973962259915842996739677997889855700408810170117945922336791766955426342997437445025189008037572405741105517356800619758019247035208014530018450264499572244989374761095383107003061760085121329343017241219189518391340971979450010303899567412969258747910261547055563530372167937790747895711970342055195025579461242838745333735302167861629787857700937009183967485301685600527179488776649447619518739976604599636023280782447613930046541286627040704045924648689234170098012427502604720932783236109261882183150793214899383028598533146810732522151548774378673399482434617937941137144205068167534945726351270334477617422175764176212515713339120998043839708650554004177483419699520240798554968687880499036439437568989540771329855342110524233542659719222028449355867007649589699229018776296552319004022311876998063576098678770471059368748968093144708417676072520222770222920402831104747245878387091082347419690288346204123995023872160224023489158554970511365249780916615172797636976298262343775344284601357914783572976285588078720512803094632580597188131300089739291518984132227473167624790705043339187263713915119667520348931696128237456595139829255680721977863507760237632428311552859334198496905284102174511545867940813098988565986149319083198378059875185882868364244045711602007162134521823754731933797551052408146821099366702924182432670579476457598097429833013448900307135200185386060902856763143936360206673183755296708849693075522151837235530383779284344630914683302502635621250580449203667135308428393345187117407104318127413596455458755194928594470645925462892626062740053603853031748052947271815466795223672581356169175714171808576194104990564031901062313837564745358709971890175890408571167342868477726434570920030510828665897519389762162426122475063183155694115947747705806735493404506488862897450241806838049538083032646581554097564589039360799529200861310354323555094836308028953674338606915637591043273523879576406437103619717972540377069461011275501485518352610043829790621912888744066148072299994484966349151732375487463688199598430289656960439492512505881743439764509320171622649318890881777724075404937319972112815991985839513071943040879619842040339463704787871346562444117982424299301292429035900379132204895341173384717951101849961519352515594161791621868361448344598655771712679162206295462702214241604847977910609117180796385625260345139333800711854090726948434430505638454548476980318449458928398701519587467284152446985175928879287407811970254995979065426662726745164068936363561307753609525202417688138617879475579097594860820406028499113217768455932743101916591632918932198299363812012213056751019942148863389416290205201386320015268260417798233475930511788055387076061823754058485763712750278866281230975820057128490266900878262185223903635011272565840904967131714580610291091216494777131430920385867371269099004855111855127661781559898131404147075163160964233727382555228014113451910332888785918872212042463301401506525618825006880575757383993954029928151597760638453420215840058649405941667372501159177463770145757342473847883796139958627975476716963713261486128963435338862974360037855308426329283589925692697328956405841072776488722145479547463475899162813653456605026318550474642150464404642154334516508450932440485950454936810513201367534403758391555835462431639561247932552734185802158071737761876249385537639889114053802910161431048810974244522746752447117975256484524171113705179046651084697639889888238204614827371767391096725270189456038923428973468634831860219232716642742781863204950176744455165904234003581463788272871866554507693896475941734735351357116548874562336173449027872906379445320006589858084442524338199549379153165776931861266733643288471567945365187449400164187331755105326659437397687513332066687228112499235930740395434981436792826773211008308951162137454137934835060476995195313662820724551720322341224737238099239735694799087541120218859604101214489051344373577823496863978265298415330304256243383866035340895121217719801761932012911265554421633303619270499954469478395867613043101404949208745002481535018788682657964673371661140878404428709723445084723152177851661091395293198559810195035179221158083648590646697023809495598706024691582695036656374762075355801040640296898783649358328128946806636296771639837925301207276392376608247269822554682247504489103869299418575324917111106128298154920247672007014463995390836560451838144150323297985354509242628055643660916284857452635265148038467625188790744881919702080611490132734615241768404137784679244620705124730209002038264089950724328075270758849303743896498578016657835484728290444645495452732292952118955080132107603970952534804097001288272422514339766424346053747264877139725172022751927781166094449643009071288834580872976059829069794554599130142117323346630413413059392613367931695560636780754654554051987159324403293256507812095057464355190201262611682135110419064897501412436414444613637860665816212114160772328442755983326158493539910274354354895134543791994151242177162475999710873923885374002723642906441024557512325305686992785576260953574135692423647488639653763652862858471343211394743347577300466120651357758124533646926592421623288161315126006469284621348497603154587978271805833703395140721161774386182829667180811496626867909235789469674643340972408327167848337811862058748272168578280229699936534270380298189208813270271807763423545168625973515058660589087990907314909928881530604922219416251621300362240316891375987820645149886239235337222407570480994048023513144239459773096276405020415057971405667701550578544037355021493772926746399292123146155384603828345866738042347396898197261944336236454146518438568335495201631342584473255644327485335640950108745415420778295872272638881934442742149383711522119728478072813172279211865878384135246811751315576493250241186394305102454043318840921390504192902184540096627880160466675266318498030580698923571117583409187818666849512579539162263326858012863062667695640826100696147779045447213446595187957815606624495405837586480860842878431173924536670955891043107330581564226336464828118512217366246710622370857034443741197164251660337697434892226626932388953116097043378319031579506474236629833792199891812736125656950846871047972967483702867077795330983617712869721018052793714931984621288538472316078138567072591289159287074533468585800146468681043222816207628568834387071385782005869887954628405010590508113792460179546948386065727262892764676583903908051340589140148939741161974843393633222591495085021245441457510835382598377120054337993811640030175574246379052710138043896319075420768014969296745302103247325767250802707471532990875680752139876968248479483562134362114854792904151769813123302422671471016117388019825757989901709329384448311730860221454612300901543977730130544072850376020546677743955175025734849037780333968609058851319496435319347195126485965207675575902643005876856623181553175836523072935195026899248442815656495318970523924428772374811376832150977618906147905141937176110326509610135266285367014285326904350391061774717950494571664775780455657355807783030000479248321516824093430083519647406969029390832884437490822564474042035216373323785420879561830256739908783280543951206459457147756430107254393448337207490143479246979187681846555195906683436151804211149819211766159096292932000135406152769027680823792836220802568706229088815703406929769830302203067044605408844435993086535224253804241461535922872356289368492959600534315096441420068487804148714241920186790788345089773203661376282519652876968296963904104625046956079074474447133773926341853768651621399985412072310750534264855754752446272641856848399168800978898580916468598228769718585525084271327153585168417431406899555969416704840649559651294248627644552048487906521254173183273587678453525736007107689022988037806513254689674232723099241380219313414934170274057861446747137725451719228130307625649251977029777634551776048056138361076438132140315504597964864218542989443829594898174686154125936352222579289647354806170219842759309830198931221095056977237343954072488709846293948442433835727283495626269679773005897546725338751555689293281727714218166363000641260633474058159818397918578763198345704116989670113665090694372722085838120327943853376959236645462603389544794265775233857231934720823331249741002753183315430187138316368061867621167565823086998279636978755061370688545945739799971098708821009268757090015029010839362361185632199623755684758406093904500638595710542792650504816451033802763965835045203995441999721242690237815183946334505864912876595878436135993637930129711684167851939256759476508667467430541309157980734761546004900964843719742736100189552557713098662332114408100208507556673636276913804955094688970203071893345605413256282923762797714635529270763787390084801384525016306978750319617261664054242536401110766504455350525529709703444740755382305033093523166198372113883293559087671303210500805123396241686309658437093361933930923143630318092930098331158012632845660877249347551139869808558598342740518599711314694992580335780558494239806746351820260929669138472992178011909954883582271127733526824672330934280573103615430355996276814268873128103794584991241942179085138900726440552604182015253879920161561187091530168846827559916391094795595571702967675256925831621655614810946510497476381920663716850207171305740737900643191201415936124403087653888694078349137141133077030782625548916244819996801428034831113602977212576088639934883334926182094223017175410345660316233083242354071693382086170570428172576521352932851236930362370737926245396322377427824414627941829725487857141372176627094985558351826942702492641274241322537700225717054988454190778120486362208045629375648925645995065661590941994078390813616621825570453312357425038227777077012285810959084312382810220893000481714443330835726079320759627240236875886167856150030920657965423633947892967840553332526464210784814454837124372906997085817476714265183628655534939187943685117413116599780726215423398654170548671755004232959742859734997953822106338775768771292876543134584527490245731461348855076477391112472043800137743048584952147846409759655114034225722197904969070149904889387374659393214138188294362607803767623157428385728461826070024857041225027171343230128331536215994498926072636724622111499686532700587890451699764164792875987644203318380894638121765951426207870636421170571755078096353708386757930571886972665919623419155226427315940961004908861121703888586009614738464422207240487745946279311064004873274194924284359762936853998848736718373547479947460873556911264152176066112344233284711956055084422032305376200101314785644759028916073985862890223003393871722773136607714475520928499852796680419736364767156302024173169727581593781790871022010417217454990034729278473945976386544010609710562051754153546755208034889134003946183860233124624852748824277742354060316008699599036685805440496579207245700546966636852994886654207385657869245506335709680735766975792219418141597507044594145277507974564759335136720503733901578010541934889994367015881322059818307272008120956108869579726914263596304640956411661724305323313008404689254992730961540524197400210562472973997011158258986067731123202081717498152336692299347019626433670568291598236579045639135212585723679410521298102200082519805526618613088219821549296732869520749050080330771814456110916262734668511091011252694435651533133467327958922138939529961369302186766922665634745883611219449742399169393579231442163037755663471447330492311536333959443540628194545479778263178503220988668205807393219831712677096151046584081772792324205815486005921972566709758981405786043706252343835954622781379732836329026462700737350544211285909132246648823320508585387174238048668814426420402752943082661559031432514292758375229140416585177788294473936754630283173462053642784960121892340060118208823558297513984410248399261041047796276529594653355257432723931679120936911945234818897981181325781071736071607359070832123259430780507253247381366929992585862247517925358364196790088641813782632957775982523887973574100944274868839871489445649777300838086185642420227706928739104644207641156530552160361250128279409590894965508575203566813212116738462567121792297976625024881776350775881294215994755304752453399810713626690309115802017539656962456895711612899444112825900228714041062152071727747354169011335197144618628603281357192307411262285386670285688483554679129082554294650417088840691625694937766492214799706340248553420153925410289700378960350380521118684655380037519183980178612630772899245829733792423063270416980670366964490522958400781018613014013052459755368098676287288659458262523480202876819856160476402940425481113796604248687665939847821935386244458023808541318847305049835074594313030499997329366623284829321670562761100392928731193711353174660999525211281971806280951771902924515889182196506345724490611703222974961483780419815669649207253525491611592519571617667808683436933502430820412019197116972297489698974088355209664500107813693551755434734487030821670315007040466607967829750760757692146396904068247370757197970908757356559262666781384960579534068583300421495073693425634516312853750573411879009720356882124964873993627376852649491761659036285724847823029288810748255268494162137552254531843190710825622327906275862347614448853538731236705720321536474959864218130214067698325689581366429681547928946113633509177285097142093495030986944071281684782456764524584715734191630424366788170330662962620316761373327353693421806129048986655861530212153868887122697497169209686437618160564533522518526693498842194224541896783200167821625386481456581962892408437071527389850924146454408310464759152424570952005126473941376895495706255829781121176142338687200693516853296930583488548594050611269770033925462082777583627945733976893877200656126051167182593451122099544957932740385147002539744539414577037702005902433421212005139785566754763008968618382788026280383588092606471741590624548843248073205008037753929453525178514699945298934771726741093265679055197046307875130679560971553006023645957946646718441681049014327791027844974991977947215487859366065630287806161268373636623304552995838256291397835241784279141474271021844621995184549533823385798323836980341586626913107715213829604638147420487148249543522849844239298376923710639808573027083288502527108188769651213761645654876708390018980138031309704134448476345725656684351944333029645108778999755649900968461021208875160559378973503740592262407506693589242793470660937112983546102569645351231543239924158560355748104876914040648329699398655238187673141994509174590015784494319290011816229506558820383325148903959235318557540099773588818861635542260220854696863731483067660109313888638656599754998354063367237185243880126174168401320699329299681108931885661375331326421797882378746077515857417993554927740701273622957410764185975636820268629833737432943849611874005236615580323925550583421424148222483650848234409764839795895016871535271164274472170468300305079909191917702400716623867475475482420007795144629156438216579380774168001793148242572589823676289983319982968327032950181489157687328181193577859676764904271378046790497848577130059846489125586691205874987704264598759382862185832488261481107713328055871971163998733576211382664275394798586938331552982751601090300746232988039151020576755282837953115236408879451845190058822563360984696602792746115307157954638397510281258260920301136542254747332631971060960956115419288221199150671662391472964274160102064206660888802270671056827322084927656927745968102177082469774009885689275472335434963190769508711210557646585912110554536644662975113045054364507025801643203409928102306048800219515001976643012449014195606879526289965183928246320206875567019769016441349198442920885425983591147032440066176732288101333233995568890729442986079793381070175291993020234636303904731050601904112149978466591172975339212069861222783446157398766820599255982640804196388927735126837120198311722077379644878378454618332766050914786777899651442026191861655848435935301162474649510411804943190830497577122237375002531837960585190785187990128472214221364975893455366623581235199576717413612419678110636503006216377922882477295899426258062211798419064264706443979613634497242830037751196452900492866104397073394995673539129023063821330828787289679199320998052953094770769124361568285766432328035327587387088911737640239470255431891350266876513337734700094924361486783130377994448050340803635277868060505071460889907945916277623753504232086149788912003000880574785895043275461456555268525447170651142334821704653842241173101422472702156394815387263548742372022192143442773707999158350215316412716576940957656332083405950321656793423961763866870907149186470927173317478651700421916495791180832366299090630508807565039209974989728251234045635760399723404849484652046960724013812532277731898544463031252048656610098628998640765703434840298563538659042917533351171360757682583926802831760783668263441891193353887801881015555785061691785494653478153484467725446173637723416991204768319077870472918005983587472366623130746540411377761983137946417654968606971114860344555323319236885865841931350903485373205157295013581893368612761623836678915612165742803622408060849391448448158392429129272062233662834694338535640738277476267988012881571087854751034324213921405161834611287431980616624948377388048826428679613331666297671868357958991349250985618490208385797205289476592417549437469829229755518474965664830155727944612353844829558862380172892969792507159013245832691657124333976472119212896164209732181929637318896575345028430272647247109872153404820653658442076668798848063629168977401387327414683925993468261587545565645107960808311747744026236526218529604788754566773563815239972536461628152311662899179809432479189760781233778025486869393016192541557692437314475245382290353832079550121137879548588214328205118920862563475772593617900029673889135635290217530619360215107304097661951102824147697910406683777930274519128814324967296853153777911021747932483210900986338324470640822259800743800525153567211481832420653103928582753517176379418840205362390483679935270010712398688608369277931020654111022161190302669353931614769422452197702859246772920101740849165199269639472705090654333003595834537065669300712976433104425696605512502403107374281482725925193797078468953574223742473299216971561175611529779971817857345822791078908879699529905085604574514475901887299784309128237552770926441199572649003377186797898034998077636115689141213111366931885302731672162734325516939278132592841909413729422072782639421804104773694885355090930498129114563880697446122092700948081277746339331044370086657067703545281797506826378540493208848738569773705596364779118983406261610285781028759934614584899354915542330659486562110924344765778608797665551883414599822361917837641469723030372199986603992938758586147507779201020017905081171925750186644677850599052913007561399172620533119930269403300438078537375036939321718268620604431072182894011984450059414376016557343029936291742716038367676510219362036307776974865827438985933947315388584386622034981650772362056020281398694793338367401593179655101233081817977494318031961948293402653426870203656359131744174203457807969984756000172242073205575268493809274088080373067700115939701798872639985312633862403118992191204661079261043111915501729915121406627490363827013894332675733812611340345802111385843466253813556792625176869483077896428507510188137454451890700730944258411097474329636241010504265753623918926538131299001303697795962932503234987413161792088537321761243327379623329925614008083816889943000604925246002691229923778222240551168038218909566469196196842108194742138017603587041249141927374178210081139791630890989275804076201088209446256810769411742431287742088544941267462554439168373664263988624131909681910601256037914140889999557806359789013926501935262217440362093516852141108041369241711156265389762599275174788460576818833122185970487717787027323547440095124177400227536425672915431031316132195063780432621989001395475455946427597526167763315584755810335928061015121025740067805023284196290606210981635402952191955533556788666633858562367824241492041404815203272301400726588306280720992347912900262218806047383028016980307966696132255680040373908759342028348513672126889084575211700498992590014310328156043034190130963536932238138381275986894163182577880064416941015190872110330436600094662929379937097827546400708480634406266667965382637713082916373316130280953359673682941657444379638418643827588622464950168743586130309716589741579306442095314643865885745862618773200349031628405282712186152324080365511357416902849218701503628057533723358227209388186604347978091472140116048216707161939215619434684109686464291231162998269531423545488779224914805685167720442795893395026604683294248862176356189112181882987784342287382641737346809242303228609535178935781491816350728608802053623999136650145523454892148124317346986054285457338640240703733153916520510977777706889608948458178033428060194789512332683788303579064356518490899223636260067793964426877116525771151691912548858203218067671139600706516934216427447200997762049254988787447524014109686931972114562804643306457159982910020566705974850105814803682882909616513683796627580924965068621959402120889538194300033109322910596605255833003098197145211865930769761638985876013978137004627163517306948823119392548280007849874648741005713843316046923418484018077134504335852978179487731246474922286121766712228643633937564239779004250225288169735935323012708488190883634088176631978074609918577135939692004709038302896246009115840648914254986625384253781992769363179792807733837722162253890516106137391781737744827142368945806240306880611636062025526994390928131970622636019873114722431915714745731500591351682136900086124451880397854314505922537010181681427361725732730692829816243124082957835251453830551481299058010371069931837431566667710673879617490609218832490360485677282822882999097511496492808249505775626303262798898405601595192977754170826296030602823997763343481562763150262900900851652863831544966102869262749868482218694583609788112801890596116703174293798605742405611728171011208435997564843991272835706528364680447147127446126111054973896476313543950090786381369501856245164099931125966159548212876097797604678430370813002072330631460012240668111529781784820374679528550593205727280897213773540174958538121777075374512035028463735827731024042359766380413820535075379689064325285744651230763035647308796766424373912246654319362065267476976211716014752198175866049495531506610434176130641772206989431352252126785505784477090118230752318618404549766053977537657967605842743783636674503003169428787394690302186872366444537256279817289290887981185578136386803127228468304287408161302858464462410869830624664721493395634830066595928097605188288044207945705055098701161767549124802349179231079605595395269227854251017484163778623088641005042666799863409657829609103574296220880013521059860021076907217923633698054169395299710118564705805278178249144236797843113412721562021741929752336047124967062745894215598280008880053310346677521177157116308688345823619648917414002632436797633335064340624151444734206096890649919642235308134708627132512656766845606128896943330128496402884434682395422878108755993964930862952752162668175087730711929935585802819007487536882654584585577655267681946609320382211657656209369173534994160012496987400009074974347205830642312366561591945474099630426242836276248373416257946688088261960574815682145791308073005600343898816722432501617268144944761290456840476968070519019299736202670837994843429794860444845588707198120514129485827093246932708437952572921694135410009004595960169827932369817794567341360234995634291336202010766251406796564555552240478154515604409667497293429040352389541699025508366058920459880584025013577318519622513469236918210913024446143003937726861101036514137244236991646100102436448736907284166576447549904923365343805343313911077322202611805351646125413964396917361917740220224628320579659566572588896508578014336159886986430901905010171206270550436764662627512810901785225397640307474064564274636691742209065755239912922504037065241527281886231613374721899741193460644903852422184345635508886764435808929265422855037747931310334904842508115507261217658586184340232038486937593811285362423567157485795879938154204025293012882923209139824533469621427685602004217378065973659244136855465070152013909639472916588944149487286355544925126262693655782008916283347442272252704177878137338318320169249722850442029093671080684219033547231882625656982060628891090742192382990276898789896099857646437762862875001777907540091598445306893339372544862187593310613217831988753436964351290584597418159702508933769986134090666752092329244833768555235256636488978390223614371603061193638891110062799784520406450520232516378646383810886714488075221883028886029014539809955830135945834387215958273938764908313254132281730184015746575252663022490198174960467819980986302248975597783478147516481860686967896366552491348445510941940330697188194642506949343765737687890727881873547390422547752536430960495710461876797112366901421007327758561370939468127772127716502690838181968627144001147795631497824611932061584015592967397179107044205699287851017527509832397766984278415787380531144687094656217584833859926647257385919163793141825640165169282446165686034895215770228613931762977597628400627412909741132765797855085686895206452874640826222412894597172222534669867996114687468786971524033926338901687400541040287518006346437109621026910271417673101885969494075589657093586647099049046389342054967437895502641059817082862886374218370567608846692316481365779755666291996668866972252128976191183107285367582019825433897974252714197586081259357063950490508921015257686226754345798497724174981071041107195598153856990902110649670599948360888236363027968729784674459041225644238744768637322839686321984880644879270288616936580931930291070062841911425320447807011442955111667315448905734007632608053103260792831344068306368756603462876538425497719756018644731964605731913091647157683817239800360509660524351425255839384718712430713490509292058150224502092823350587601996602970541498194911126557146697176168977357608129852908220136282383803444285810823489484699754132381908391500265115573906699130535936385719038776791176397613957974139392341326096263380412565736924675015138974796765071909885264333036896657050935439680938001295978724112518040424032669919006568723343563807152133999226188186292739984625272048499000055441469123899635209843248911574558160000105288499610400985650166405223793692797356659330835787995797847726832944663064296133822823921445552697710374508496042522844693965341626114365378162364850239761408709870984432920820181286189888136244992576026121990441747372420974530157097590165167111790715574173810532161513327751193937539513295973883662451195255727115195232170281348407779567111210919108749734469786985118133005028995901885627178215837651790981832014535779345149687208901640086498213571193040741774990414651717313085774395072865779149047897105982714263738641740421798505874175087368996545629101621427739113039710611389742136655910381456087212754660196414312120831226315608153806156538443175544403762133452713300815641929182354992958449410331028896278619198512719337660702029955818857131650215817158750817898557219676673824658457561775557973615471188849882643799108103848704988202001721704518632349380235719823785289419059867331199962089964633652577082320178216820231203357323460791038693394349994401461866633812688744142333010048814372357774108482375830002428349229063427180154065446846220944058058512803088157798522010289471071284055075991235636083033062031208740024339680564150337108954424614175524705434430687679601593055420732885810241551524052736686437829120958023322682738705865079828614507572386986812944732227901725871114620829254099750217741288663162777875064725960427939653571220931459628638990047475739010341293653518225846124850618310304690245473016465027485225204305920717046501712248305288894258470314931476158700975913158891929160583653999548826771048687561412758873990433124830520452001566028594646564729018720514793635507598723503835002598805188541086984135362837917695990819839465911139559070998899376897381645175026458539740037412514879396056531570843453191878786830007848458065282167238336350553052826011906932855262182453320302340032496318010693563918619493665881155969905937930100321092639881964957699169403261275532389039398282857053418316969812740920258392174664111536874069118580405759335259662577793996618733952341332415925979732068016582128175760736406633268079721215838372794378241828189489125770444628692554663077212997897326186510209874258714613479183196348799141585837476722394742217688317722111981508924026168404107454771177995424935210580468094112124445000741178441941508896123308373865471552514107723883812981472558550735404340884810661564294981836935574619416576599844291394456928294958750256796689668311255719609932479161127354305043230213190717731958203576893009634925495123431849460996780997903419964130960042935304710974548531511097784515253690437480569743991512016458265123595440863508905880089191480313349113459634222475468558503989243385309096833045847438119518309636199648244550179717556671877193625187547694285328078425655677205506437355577103454993399801987404307316620097185002525957159505932531081845238677075317026932266908896806685076173214234877426409967383874159664520760897968127640110743715408500219922777570842627144917732198924161147684238684025030102260998173979301000726193995582286279425114706187846895254211680470361305786749610770587377288456386505510301286293650434745927832738439907949055849747390881665253273664134424631676665026518592493096562722818269076774198255299005359286898572829198429995912609450542424190134660017756669552216221766880475346510515484073294630249606039115201935405588168865964980432182459099746154248044398740513573114810924622262203564540300098583031828874775407430092920745751061399878673935076413900592845539058581061077538727431073723945223907603020666129892472807379767055988494434620966350496215277486574255533203342568174457642665217523368980664614486902566685893196286004220389200791634015004692945436495232309398098141547997080658052317236504784381731113306960976039708774131521932899240914644381410761640605404524310381981177379293548215323982030501442677956599771191692990257478347952020571141613850287038343335625318539153935025550465418897723766883223488727389933694483379473914094725528399102230187839423733674975993357446868343549673583504763753240196934285256339695315984627010513212976064776131923467806943872945952654664244725320052542083179918788985179616854747836758919494649466761545480931451633875954200487139429937998287444062296938954800228237809023961854445908671664674041475166319520330293948968018630666645976463691980297490512923071611776788008802631638426891008158399260208035213251079120604897706061135552129467733037962639523730597647119318662711589787780924318536671676421360838059630065092963946029954983664426146428138545090679354213506609682977411770751222569915608199385645086858958152224503936687793077756369129487239630676557296783469038564579657234162248645371953234011690304770107600863535814703772824519209883247285352954481819511374457219791268922052209244331320105072595835044114532233442897334181085380070338713829143965524083449111594581847485090716538061647445859146691619537071866777439097589332661781794566763950519935619629221427778428753902435804331645353907391849794760712366551685848327687805354993448382114644592764283593945678398467146074715162262379085452359898529957123110134698022708517015076528532867856348213820201274062471928584768561938598602153670996775417869696232634930615204837444733461078398588705270612862427258875893082619879445973788465528109943972880353181082663858046837457364938052074926565159645116832981844426163265766293267072672164647325075897010919508679689222011578639826442908546617846037267636571831045020933589505076015051985681860040179225177293636541218037699686007778387394419450687480261984048690620594859823655133306381755831204564198355014824608661139258407056309400932406510606737039918487875916483200668183007299985813201680837839979062931831273537378941348039585942923948226687641056163008247373443319044367140872358220130711040427672542623287104878167173173569125077301705953089721823083880347255096667024240599856474905792810687451365455953871640376612377316084835026934838834164912072796027003560904446410619758574882677867090885972174330274924875185938132326581450371113100355122103730671251351435039795362601458341648099687046158699736353884757894410383715121768887767132334106660421070956701079198749093978168740776337235549504503743273418062222959494744831263940211654320633548122692839197014283920487199695489130133040509207868326138989427605134990846870292540378635019082349446739993241233865933476169968814991778062739641476041735989779145415814959820424910408728751827998112669346016755661961586915486990723404961929284769121616543553594663828499850257624818058997268778474191775944856467448831944885275675584418520746304786799880999559483038729681626350261990717845134129543652390518085374273365522974540515036499278198369266258218505576572911777001492450973122261235374616467061537257940378897756804124097142599581060915403655506370679015898496665993127539412753461319585047320057066131654407558933274402854639827415392245464581224249484964618928761288008572996617744660795642385095128705259803995997512620996458324835607903890126461141234338242458422512117171522321924508372538822434003262820802066345324420611110116916086655226757675183727513600318809190631797039477839052434219690490767469792514968862734467002273832329057255139922921955254003159200272402842602812151271960104420997823084153995093604766585489542023414543847468709838222112608091030322661155032758661752732454503977650207845468070208879953670911095348017074574986963874355310752269323851621431872507530282063398233151850117783278684314050367877665969409868444563288669779292877488107456107620445129103072486674377587988052645071010624434732512711586760209390482044031031457709941585448986153351482296350953019042513396232333483810366256084623149563195764401421148121502652147364892988643740059967007334325983687912896484405751853228031593383315027774760548811389386765792093590772916513013454382632835751209547396882940986228432902839003187992846842753646771367548768848551710963876939135631548604712590906201378490609829345800859751875886622514980483148184469701698426240408633361538998569879158519251780216190698372480893622168735739981751917261146998925924623742972068004790632122392745995872374947917195203731876642974984603952335491896402291784774199182495275605700615996562146212302693812924389337563533890545023179008966493397899945616180360567259664654480272936880607623915613860305145822466132505352991705085569907528492370579520173327405989394288063505688320922804982106660620973630675379483688141815190752795512177449772088344990674499344836041806431491402856113396865717380368482217608287555546956906148567733273317420835299154667378069913103001528157419025303564291686291696250907580280556749890360274762092789955370094287110493649012677923744919348910525735475209203427072105140432153201986335016059027215109981792058205359751194167514981953543552450664408731203001013256510831988656238819289111243025372213451706847758355548814239168561705766926984451493041714681280120698646733095810297631057612969771062846459735076785205576715613248803713149893853286649270934796678064090262703808933765426002951595629016193262893985119494315706556089303225942219371055802662121191685103997334003570781134275319675249126325325371861870399446943655791081890913524574055078438131392254071965752585968004364507591842846440004931050490862979712876874135808956283098317180243588691282895322026209899183851795985456756881346475345680597057267214943258851000122136315397713902480081200631079626790821411609773532498932483514549482259819460673567375725819789591990804848877134111868308050907338503025233524592122499479890638555062029776217548247103996057739458132512646648875836277057026199670919920433200725343950222892850068263748423555892705285489045443357111714988724600728975897498072944457215166366212782653705598495742369174234027107445896553640889030275578643024407213457953167680946864478931261811380980658339860471896488860032638497559728262447504133088018306460894925390361865416110795040075181676088493766300570477054380275984715375639987065776265692583250010030935858904759440902568750815971116722292003113303936105367700220827647451465992549853416155780902220127203033221195334091747984857707468756655248224409481019757145934550715351758572473647969757564691429316994614430970492293561977826093722555967622906467454432303972046891926439966196000730997153897651305538860358470906950051492243805547971819702348213637726338626594100273395991305186704430945279767889216315317905941594250955019534155809814839376873797521733703513392007347866146027740830983842036210582095805203739718465147634838885219703150433392207826676006505285779016614406117155992422589183885747009780791608381936394182129826128717719016960532652397553371382093355963655720373017285385071081014313676804721530104846693524514989221013250697979520122704770514727530969356216253687320805506549262845440329846817424528017386497609102469517647397449876650639083126887922063659469863575204440731427846542350809330202893721488015203313074878883363278422310872060551142555259433465449879944566774877937214180892907261954660059237250020754269473813769996224908685460071144163348041209447765014334591999940608761795202796094513874946987384363344443696682404824958598371855322945023145582090294215971852568139344861876937809268748279406077438882720891255934282896891751723255828757359845769945141590220725691879180510175508963701937202272392921712446121265054803132285833409006170828832692282909896633244660343685628701127568745012903813333193838179886302064036093221275675387283467160185913812678044574275168275039046786177103781740893141466167817014230820976671155700898277395825771829546801875720855316693815953689100532181658252659762608285521917040583104716771396600364638762197308085288319746206896641744895673793189239794953552131697291301972007093451992619622017105145152522863477668012204724062661787042895316057233228359177998649475420408131508992310757762093812064743622175116510081436561820403224600003647494841790628027920822866480840333716044300476917509225874894097861012601512642616007272766393170416610536232017984253527892504259832585212527798235907642319727657212089693881266790970465660231014773504214717591193630909292602301799234272683925781340338493918235192648527732510934101841813857554767350653337467776578617974398337375237486530715981624895561703445192437751391060952632859517541651041466907960787386847195677593869942632103806814021076449773904443043471224549536004160024300953962459012242243094671711695568483554582143400879425863294253548289851145295078816731979613726826458438608275008411755873001790914037470558650097840000612280286072173570329272267264049799994351278517664229781578195569720802815052509432788774417188844870599523231406749155855613939431064952970932901989398074038138654490741974691280955864503326538909297859468144554915055471786261822194380692293466202191693970557794786120667387472842785376451075206031938485103042110372763455992260490473333664089206175034978234692333361185029795101412030812841426043954881165423572610820718963792077404714984472822242369132971028045745924901806114092781747919201417850890671644148989881435407162152281377136037448668929029011517638603980836305250731901684650845843967265974464145293886033595770232134427509750178570848051434051286127935466227613994907222191239154316635428688104493471550550198484354220671623103386232901790633347224950824889058834895549818529170761370385576014047294353572077446444132022750999313011989406668961517387095621563011249426917378863720434750084386435943100899417842780618804492874545862304443753426652472730037770078162866493828130198752854402768073271899288293688011368793815960465825833320187920031694217647725282168090266428959508459077415427980656929176575169779385527670335581027031861345248415650688733979967056392685175765899286947031115178949733223419746609753376450796552463233673068190093108838729398234990926735066128491707156950482336066908889840108844437218848545309118954436373256797297210746241248597480135261580920438544178716484453704444893033205331997479794029218621486002930253612711324403445079874666197407004371559998144400244089790246529632012262461278464675340495806436177971702431399962655618953973692650374180820371151436605223170297276307131421464443845189903115320703418528984398510782841421691228400860992052337009540381448682546555016214168198942459114162846304460016107776123590286508452739418991916161286410638592262760288624662494640015846184956292226308203641455908196698561961196622517507813993587953828900800901035116717231134070037912975549041341183071785340965972161337511441927814960343661842881491915637578548823581383598104443592124578743304857516656876898649137172020966904544066597915088647022808818392205880681124113688268182348158575916923689592074798126897051543860106527083412939128904449881994885110071885971855997297239535147447783092226574507915170998772860950564686250400480571509637481313839152713506379513746661147643769972740774846054763144060829109371906782010239128138557662391783507777888398633791567106096354674896509898686914876005437887462523474662952937510519877437681867983968142722811012794862333455171073932870943380657161738641401294733662534023673860089377078933162626956418345105583936839953343988632106226630550940435117988043474574546003141969514748146311060270802304872011014267737588489148306579664025410098623834680111677780874908907605131790539558428981591060663079337103101992658897945636534620783037251334439942935760929904632656449179428851264419302060038934260812189079904092204680492202986966464590633272395908119681069303249843359757939093533782914169398950642168193684907181057121748919034253315949073179494403803975334497613032182486769653751733695460474745616401413821174208155029981783039128811866333042317188599734285695919764250536057292363537685826043814803114249055824497836573094747103058974848972655815078804879087904375028810854274895102318619146817485107215312113010844972086391431940654715337030877501088602551733099808411165682934487154575774051944785484981627363693393746968921089362915349004945075495609717491755942106968658918360298458192276343075977275464293318799173097460348959660566522977245834785306989695860563131400209919263032310332034244991166137440517215674381616893842029746642981548849114805556197256155204902647640381764517676261408665285716045975717557783381342465516339650191585046819515813374578236705312310989614276197776177766599289635837005079116011626802475806324112483376416930681822748816253947246138877997318078847786515954593277715780461480026597183415016957420332117165573194332467126140063179774943965110067389764894074648479569292800398490487386250508160014978633451624364996357076298360932428405451481687331802939933823865365012429893110851328896551321885469703779889103411920990756960391839139266098802492831480365328395117232522451077745463967584246902411715470468217368108998384957959169205563714382125195910632947261175310251135073107046799760753255795336993486895970714366734794618218808706474599285406803612868485432594201972310668766607278146334083964306699594691959184598568027041352091084294498974541314940174194181811517836763508791479615925347137095648770331331073672142019285313631626205549982576403920355832104352144310696048556524709868558224288620607570400397897637222292316587219843230225514752637152525893312836805658017773507332260140293975895230302886722275148546170495153848360915344441380848763803236035044558980043600099812208489144149510197505958227057769175858775355516146519930234228500945636532503350013843828662411501597467108080455156425786410626435739781498722421469819630562850741965256180456030508663595175658633776702129333767484666439083699646177549817387321463183526829142468541362118007590041142305185807648055535192546176803388658483143517444744725385169206407417628652057486992272042834510575828731528861444604457748255724841578945504874236917190458519303001428515208213239394396442944062941802091127113624355602174364401610942626167826774876631144450538210644280325252787025531574616946908164922179435523191621877406714605152802331727993318888149306195782485842695154530523798428911513699021444649221339091984986974568245625052063513915464186517033469630523855032099743367904786425869502943833807282185852509232125971342873318631201665834648417877963364407940988727279044830309799382175436447150461044155569425502143371366798809198454290406261568903581345456016083731342725482892911796274284098002903511532238743496702193301181482576092618465351689487042478215897457222276031184629162472922414308021905856911815628976650478418817023151273714530014179352224168115202159592127531062997650993327108812752716425529641055614972456491825196715167966311819078113050438092220172535836357220144484675872081906674611795252167505338249822975913860006202043994640250129205762039794706869430155544195875126113816406309976556440434374685427904348288293630744299635832144785410499822047345152862929241398579465586057924888892851859911333791973206561361259652134922725299996101159876475573090056671362920039996642867616450423696490418973302402548454977477695749989032419469189583788803766486823492475008283587102281936520992835104030338396109957686592499664377051712249607449316915837553287369758142403487315092994709092385012915328574382276435102886609290637881764003817567139706348827129947342556660670404449783756275888474614500988684131665653483190378046940059345635782125536428218935532141188676795012519542802612520235293183724373190394719626458855633353257898740654853165183493603729624023237824566784170125699844260443487243392831562922277366067769210159979384161635162993815487201375051972943038119962037702176748618744688613856304921434940013929303551180893207536235719575260419313097275613100818590707228820507702409903391650165407273989693968547205546146021750085647032022247257980216483021527192111214004620986007806725377424959207849308577288109742221671674108978323245374824717654174545643952934137962193293083849734827912263615879302302860397263004223684809112799602312633084372221947621194791087727036260709218268292760500880162189667372015836692747851185889398513149450508454827187427725260607350328405466206725276319195745284480678128277842257013439423272072016891168897294568237114094041629755951317935125258351696584977336427497878371179943860130093380166260079863044562723477046250558904522512719826910540846388805494634597051652966588371860228902961409055312428582884579671280350249432579095206994491535435959133801168267544032219855632995838061188927799111235515221192811538858106125832900047832657492576300371761262787748112244905736304537944001361667693860693340137622168060496646833225061224740082757654981139521380339327536423053810716536455563878094331982171872836718972239246052878874542041615417137907279883472743355511657268415308194308037239218916606826282076143031398198306853420988982426683730896978702771270333442511753159795153161088283728726616859516631729042630920774899423245121275131864054119957094887823557990455172410447420540151353894108637841386782780625407416373580402326632483156957870296638880075930884595308649210084649337408604643444318164699070919300075340145454576906341186756181864046127379224969237744834162129855961468543690910029217391583580555831057377282196092058552097681299195231413270242397608759684457234408784604868503602158668464466513294819473879137155095463785500193795478371605483101595213058204326118840806079088333588798756872487368577646649864685880326873932905476305709901172165877698099591264772328241153305425583981555634156684987045051030663406639130546344294757383286609555421789920660000015579452959672413831943631608895188103911966513845400059532259261750315903318835068701998382055715802102955748182603718343381850663279111635651537172404617388585070921437765166263247711624581103163188811381220080190805775934981343583012977996016682158503986622894678615983165872555701190978067942672787445343977731925079875179836365527544316972956313097856269526643517915838143259285366987068191220638367733176885555871490373944229384258523701403961278376634426724382467474857871071254057827621740156215781557932839709335567905677984103987396321365346388952154976141579128329289635566044585916705724879987489424218704208710171614135338192083291750426408167416965583207191591031642583917844674539444733135586760035892881087441950545510904428133990768662805004254565500449697519064824426460517028094978340449560459516423556090538173642348608229129419217769829510181711243578569230734664584706293200459871779209337679665499168560097450524969932960493622769085084122360452004913835109031724675253151265856024122108856657756128719829448724247182662208416466472789669720895251613537400258417494397388079954900055996071022748284379087584665868127231499772311037515932682668048867534439636297362394883084138010184118398090071655142460396325428630516086667832792717313860139946782125598249014402681417478436175063643703817753012228199067961056568459526534817043074220428356599596433473650371766067701039525332777892113110496780970160731566439858632116903548501523183901109400447270162391475145423906141160598844526710219534598349211502411246478522613578481928513066264060791736132363815810519412953681787443987985968804841535999552051252606771317860515257701520701221401153892396002205406587296144825102872233711580991604332968218061284800402922988732914880102050833388412850656303070275621922616431383199219022363531876769394761339115994394975903905926735334624060142559679234298457825343321031208678567860839298554766219246957313431343907491638603686385443058295984058666457358891301663522131091425038462922607303923842575233373884753596535861657135261642681592146633505293529638072839968286725840568601164273839289191348340315043015569119259943689174348771998482973923355879657000963202500278207726834678580848711899391392259335504440105252167685595923172307534408209350151341964411110205572828689590350986563915535783054692544755879264575334576513414634459763703751403174204249230152523243888187110939589301139027347648931821916747343259086917342419597599233585311270821579594096717683884987161256461836833139865759307391525907992364622826768316395439311959310107541639645378332875794901194246185598799605870711232681743838712676624650518829546940472435181221847241936170627786945453177831339183908794190614679966683161750770815397299129838648988554308310651816241570445682683420825129122910677050720608981016262038772807845207290405739195657346568393181202893612351281289657895001417059969577852894341287374795463372600278815972164558294292027281388875239974428037574281030296619959598974810657324135203965049055285444027966399161056949640942335409575726387466352796959761946978809977250213800174840921105445308151033269783726780005825034439999598785238961436185886846728886951468176890830966989934228817597254396740567849193247046421806070338161297907646409641337452818518005037577290669543870207532654988065070924515507300634949331205117886561119293053598459786560591699197695499182534539570388193413872763033706819551549685201010366922971328994955338976499196699011955781873762375644690906048581297632529485440835691987528207347367391948105739367211482348481589623049613701225378725783135797007098987829376210621620280488266989557238365575489560263022275652122733246624839780332066935618461974108327036616543410135922321219796601842770421763166656447825266310770599581384321124699466259559380659326664401266855452858170672513707557625264932488104308346852848760519210279995962387335445405378594406466242671260547007053222746701617874995024854271988281529692540842515018396674623655490304620919315271158423729716940723246326098657471192718824115617704882063145210260987680917664667742952134836992419589487518693058866639231414008955123823488170368338128763354960749457363954951966931275175856243951543921791023817764150537956305900394290076765685378531808441050740042571384983809433096074285985389148020914910525057941254217992704122498159079411687105480704749288077991321206012386104112018699759333700948235749321057259388629972967168413214009723545823410651542836362943359496810961660338298152675280040808235478959257467348709469261645806432891728255366393689288247491000395352990771396618552678347224509044294965980002586708733063594628341495129158909628420988024256684549562790962919175024249761224075592879817574703689775476548646304496450301211018856748184952907699212798995199052898287465251092937976663299411722566162804564700447709906789803801653992323177253920682705781502357142956190191252614030734833700558865901698608820572625864902064372562088400242689090696600634880252928427056248450028099421011344121541522281380443460106015681057261020896516268046627148848146751507623140705260978150644405545871363689760429544830833353595582656107439277009708827528230698387451631143103538680198822249052685843895077884072118219353341361240296273079081851649957249865628885437396709137731036572240233644506934134367728177298004101804070966197904322889480916438683810178605274457672239483860386799076718169878969240150678847750753301112834339683200897420072654430578478539521391919249625915975431522367682936356335015019639635674534152325007679806599560593001115478804445400538028822867977993647040865523476968532746273223018138678120020916229507877662109158478477998548904890606565636329689424080053699033573798053272113802125488481536825792023196509611103154437171831579152672378358258006918346266407201049815536289159551451990580313823965193047441723907649975240738257960148063806261409854679104845571272180379015756057679911717251211409431593533274482471013139104345136198729827816294984296797355565731448971959961278716175362220932344795400904245712899290654060535446980659087115668680388481964564656900862370066870817695772766405397528153146716895925398549939148924631024311883597301898411455760593054416834287103951404975677441841040994426048398566903703649715104776992081583994299766285444096353148555087015139820994489153021610597187589750960731056990033325270871315086043656826291541852321493987772022316744588849743479853354635568503023272699292563894755718668487213890562032890314343054860649787362622678942052130668955589610568738961554725246693741429710992871207974730956990790124171267203380150958914589936113690107252525903315848062547583219310584249801224742927929278987868776444065982583902228072714876643191711660100524878160204940155796229121947431673137232955941997891042346059827162622750215164596639041948857540226244330835755593459643534827908736000874961876973766642489515412961173521797619455513063577305528672100769757698016127306325298753311651874013526582960525466483111004845887466731901565586799749630625350446712649308563225401515771589675800248116065298039300653619182555970268346249643220831493641609317709361610812418570210557763795590739014197659743183486789388120148480670432013389922293806981757525301548408669838836208151235452150099098323009461128845281411427636314823039821666252698102291531917132854742838345899786800623878631169837001116690868692432313585092931182574271560642157376694913430627087958937198911881266814082528672963267144648446354984408304398418841094720698800772144643947746417227364170934861021242350111092546170827065217870923207930110992184107315917558125172290917172320517527984834350133544221423380452790831550572503653218055189771062687692558095384042102090883145194399245392131749328895143170432326654570534349123810810649275215055376160340220389088776252142286783803848883073423412195402171522809991520640161614085752221794126846585755797987933845990078521423218649314216033152764095835196777594919697935092048559475034323589459482156100315676328372739679795314602462415989972491803073796243961792296163911833467033135215420029960884799583891375598747427562799700193200366483688378399383042093313743313662542576153846630810041411516950850609307515660663992775578536008483795519297999462131703575512757341722917581479795821963893767013943966434251187353075175618068384699657124849139710900088287110729045263839665709201383742425514362342198117709368234302853978948479702375098566433987137727704895167919360265039705484073840500850974998893399645056644394238275096064319996114277332031619705711995111493923575278883115869230662240809490070912371834252301935365800357830414103227301853362952745817821480967154192331427978863105962764534475865667491753909611926147434306830355689841099463909325837833623740408368654972174366063943469086172121260234332878970490208661978693352655721128136043359443693749673591806222794037353803637588624007086836486357379603679914649154051714198018574039266988034583410648745409531561264934840701017234673238560290837577740038861000813300592133453268008183988433712807011371959612791462401070500762385689384791594135434211344137417799798904086008981480737961178179056995638933333482342557739634702142012539878296546310763697258789593822444198290559321048297236010771975715121792592956167338102258450943939842160346171962697369534716709377988274604273690894938957756087658006101398304539341926957068614154723225998990080561895998036486523650827336553765197515589006196424680697819318920423969401249353453124826954891019154640680097985679819336509500832005032935300175410064090380388181752264612499368766262474468551805206061089050038219672417798206054024854779947529526518704081308607255684734633573197250085184588528178028203062126862218170198464545419278445465608434430592613757781412580264773282325927552240233611819073483579404583993369749606647600330950789130751430844117401469149165147533141793287435739438219698917910356021355920478533745910207863401189941152466897635720960059391926909205086198601028852157789413565448672007044614163739788067484170380015738976444182159761030844636974638372266001808332102837883398239139910976045764193822667503476571646640992702508099571381834314719185829379459762410864486882490875436303127242055495244681980028547601761352611585873878011753619017597272823355907795682397013519514121354281042558838532580562976694444227441077801215424685402667853254562228309592995064734607342400901750099481387388479745796627497302805816352040181061777688516566748399163751407552134873306729769955147277515989452907071864760377020411353367939600176477602796077841631869741025935246484453221940639537231386773636995677305848428406430986077334205063650859882451328916823697244855604486373113354046775114899617865699683265131779235277543267286257577248802954724403544700059699165701987885211930536415196961046132518265430199562344543174220801085746490061330411334214836867424199640240403372238117374538633692360022445484031643909640179688365614876479086077637377170259916743947434781459577014117788086653056812651811037358710868168728074531419691526649423099447428779798443611145807169382928719942911581851360391876343403621444227774399504650373809633506428253000389329782557670352045402319431353167084861731664397166708785294834649148241056528336264284762138207740708820416552805042970870357457142869303849472924922563867713904132212222352603752297724479989925066604939663807084311156097103064654831888155005298025716066339967957009310370324645101533906556340564731230804522699608654326662891364554806806873068821067075907866604952507508110628682739732393837809749726251452204148102123837874465895166201795711209616282966416804435378246922037123418848780872398707915614585197757152865493057205491064043970250162210170033480861940611866363866962838636441829334812059864100490098550756350337330056915499324693727991041096554124269609019652471996916969842915450974506309249809233933754740673682689491853384416021449241405055758968076493590708148576112555687463455755114071204483251196757804590636252995239748018115051900079564404007612405895406608764655081406159374799248263705853039085758346166815848762885596613043575814557445599650879511789217270043161165509121056489331492774343613412024799905806347255995238850724597703520923879836174720510586053164530200659495565539593365249780460775220443794404978986708576600121896122892222641293604354236808014877463979527878428014993283994520768708622216808178221551541003538110922745986275288546913078225868680824658566573137133798243140691635929100828071176091260451880021774164103304765824914872166336980959474378677220731609628979328723271051159965366582707435188999387209763146518955994763031335382069236931242192913825178550876242593909657949939361812194697020018599058110956213711838157349860221308972250976918105580317909894158208798370299549638196558609433152344146895745576683708606299422786941607088480867009183355597619450275395228780879357930029629488254439675975705017768231584814419762857054020736445878417959074146357943457296645698070707674735247077011808527019689764927676451178266983247704027397665583838067929949234792576918662392866469860746656498271706869278649214290604841499883041646084224345850186043050018543707754202648119612407907383382396530969635381396647215869066261802998991352962096522058321610293961194579366271157995606522920782136683697837883023216030144862154506905436491093818297523181269387725360600779867843424820146922486170954388439082812327278035552382548738587521556097982841173114265070223006019301235292792990907869347010146362637105254667922607651988764399524116678726282936975658972554231420694107844555775829861602323109547856722365189833263594426512002709522003046251519609567178284327588489098206018754172205275704229467689237555056545823786821171149637447500017306309626514344189038124766964910096303272520278420264448103245989878904843524487321123065378248595009836532958813447495100927320853035282903656990448642243039743825321479337126992118241092679876635196804690669052677685944848495869960329127443613904310261589381267930281565511833101913336552045389035023916412615458727463301899731351600076347823274320657346544690825690097876276530499852475990625640787021186353990599721625530106234559039698907120949089339642390960160229226211663506423375803095956929997505151062836644435655146563725610430443161645957974089164990709612166267817956141637354207070182957808637588220802098105238845951366868401975271136682841646867403871890665797187377108418878166689780890940316296081747177000723047865682139720190568518971073163800210966922802438645345191751980317623554980520805308134668676948105284482216393330798777432298147322665710890892017458179959431478751997817003211814610784992221759308141728612386355349964386080724560765346512047785997790921225968592657309964858829975360245002586340647197191295415182318807603186166570517062095973609509511836531550524994622091358947593352552771989850821644965117944084268047823639075383822635062329244577372553143938623649135775994409619728160311462095719325861581662412675343383322308532311434753995224492877311719354847590053270575368614547483264156040376954658549184577638150240146090790170556688352959396170926877137297418006242026013391500607681591538349031479301747801313410198773399928413988804020062080176821053688346371683080542164838974615488846372758027494641583412587915919183556324879899799989002052495427062472351580772442651112715362235283760750396292465395989175228565493132564721550399004199394092256688692237443055937009610203451484967275909959060830543288539232547257540742564009751973336244415700254718682401220822395788008498945548063217930920839704507959695400503315041046433676720332191016408544894679177427295224902443547407266979255565405547937985370062469641327314567724446516397498447829741162372967696021930724326636881269363596978465058831637551853011476015323090134395522809081686754562385682981293569271728313327104032074582966016491509488883204531265787133459386470976551787536202457883902488259099876278043163914598975987064626559726585765813842838069171206833684776616808910421359558031509487731583435362213458684352614093025029774763618245276528374895010130335218704299528220908503673295094870191024438778654096260050323688745025037338138340942173813957867362890612092590190020430493351114664141204544534142261006269853516891656704413823916067488429667984076824164669529416041491659929968781914687776525787977207394308821455337565166913330695300757144125350540578533203915611649762887542901949190303518279041758940183303035934799737275363315403605972909718114083322291118347339520302312684297192550680775570882783172331091275973559595885626519855955295605612183609901428736027853520394369929724082566070003519953790838155305817569061825373358081767591977011613776341880474280364274617310465445290227715852418782934948690017168792102465114260868649071807026619242242025892035263931000460352662102045147897583841116229037222750733414393584292648741963832825024327547640733357023913084526079773838698443371631947182996556944109174325202705113608703843124160882684073466188558052735841123274713356422181403053959400302068728378628568382583850414495149878020522286689812240048896549175612374081714430089102425308793314301048727704418063148066396126683531183740502167972997251752873179526028849315245986079230224786560006202005253631994185784397333379057564552555994536024858090433760311966700376125863366943601846778979116221387256404157627621088957511959300420483169911502045975167625620922893113350869898604231518439427257442563166842044932386840930726451114317478890387127733659155858992246329859606432733205236031660097023274378126268202312094935137346881600434334961674251517873235296959717449727749082110975637717894931540096237111688096296796661693985451463176223039614356942911060481912556256478576388736259059311126888687746955429562503667409666530092617656365446305634520734618671110419022352022597477843603829043275458712344061460126926525010737710790136058687244552062040173550437575581358845991939467222673005842782870160166272065573897379900739719022340419346754386131952020773622789896289283782121066308204797538660452395308925079385051047655440897120790255512891417782978350385309819570231483408246410107077177984991824479520453226846189615481312154988262431632423595987399985318933492642808094403632734381857142109662379184100382416306097451319144714326349948690982249865548502983184742279890656697987410357230603771684964664004355048967914223993763776963010971205630542462908735441032520804769788635100506722790471000431473260952895748745330826213659239912274629125123867381410780843825084339859319576235770238419246320831445148535819597311099488546983643288390260470710918238551031148482550133772060665027319545067670409599260648615481844511360965879353465755413104882339414947963240740794830945927731067463764507364946553363821133304393985484018101450135061690103484940992542919944865926987566030203225305577649497657298139704136420362073854966035143416810154681799606592958572236573911852421911332955069275054747817590149526961629566831406238126129203978190116368361172070562367423653053243156610501973824919238317515277362626669354892543346409209888911716599251701523093227622278973032434382344989247532547025330490461880758704046385631354536446911983465303532898821798303215648936388338911908536173566650711362131377020164758495575624928950982034358922079265467192301675840712953565851016806537499295084217955492273023793265044571402668583429367709442469573999458914585709100412589257264602302857984362571166272840124313105694519764627740690779302550282390631312080203208126126801656939628496400760130160384352738744852440217801328613731140091325529118846380715113352701749341271172270494131716947351897839216934107594517024735508270976701116919071776607212464140946600766828427529293082009667139213107142773650242379817873153182661924221169569191181106852259546171596626335188544351816341287138199695399976322352978159084461517088017112616521979249488301207395360449958277472979194153888964724241964387808673522674495913725759890686599336404194100592376990987047979880280418772785105742292014615778405280600411413799267996343770099608571522268277595704293502179588502559094676933360973296630803074717604333395384523647403558941578440692495946656958439292170704835876733578469110211350914235055072204699998896726560357737942316545737546462973007278864990818583968736988624777685517988614628766074122649964711031320523291879082489655154190690531836541961527166326216476492041190836923860757182201364967540215388859358721725114938911938020566106105119174139999806014059041580859745367203247722908923059783680954701191965051285121827620683511587104625026910973667430539966460407105711992777852477597135840967158468571449536352221583816931424063729974944502430094814860910727183938443125630704619776636843054330816301382101950117688658691621204527686562811247930923443973627371745936988623537876957526265995489859955259113404003824183783892529636826466569371672240302215589860502678314129556469170545418973932777283511238062597238011577555573965510089317592897910494062176581468245433078178930662140329451709478025900941963416829243743383756953787495812259579066222332389201227991263844145033242860162365482786588924523140845805930209838752583339699703290257936021048082359096409131183827120883706566755631328691329169182204209815691720496376472541897140467913802071956790815341380267386101465728701520717113871288175040587102082305825619763641418386869748435401899767886541994309672076025027804716906934952305032065132619011035627038261748305228354443972259563308878278760853831736413497690774733542032932198944306161994424524026214824577247499774663754719599702784785037220220676839459415385142305535946946233900309842278300789783656376875232457502576352174354862347263598774129260128604649929165158007501718789329216067754814349156330359275172356905282473599830394767084689676172008508471280979764849947460249839764387606348212426957413145803430041243153636249310813205748223127033069071808912370806342242626244960569288692860659137342926780120982545468651244076969525099067553419872787066456128245317545103205266923068095387700738215773074057781773099601619197950919847847292036429925492429237019430256683812080481573806012953546908608424184396611281650018539243377889796795715724686694328753878401595929981677322890781902710722497050230778120451764314914303069023840514896728381301678345626115273158294930929565320862848911865649602477195737568743167251650886339642589580827911237730382829088875564552983779573170397234787542231682624658852564915137852299053101622137071615469112105236432837382314413757265406312312315562988750267759725790001923509468766453901844054898367727075500937128684224243884459876645328532802142954347722195380514097273459475417331869692096291022723906707352036030366530193878372415083681861113130341685835578220639976916315484889370828950541888237561759007474564152470854582183201978522537185543402510856614271266561906000480320228866599932476901639983638283862144321751555763216379070682237869262281345545386847205331946121492396016384894632249109978756152422362405985631245575307027253911764736011119921690617641870097976861127712811388567440179935459939535517422843894649304764063519309207777714179563239337753388633498985910651040343487598365013719495251771921040466566601509490976913664330722676509173195678491249713887569786153670295169208063263320677167859601113341557231358177335663638475141187552106019779156819066460651809190733141958834918589104432741342292977450975348852989580244677705751344486523576173384211357904886504552665500591693741876232120657944291964180682727820874419226354608876903300905754207279849025328887373063194293139645938279985977713610379810535988234416200656919591699063637661807912043740958276203484737921803434480046609262632527344420819190162673022712544984164160560782499077127668980482209042785641298665858381990577857786584640983485393798595550071116508072613394850304392859771359853392111870423739366517933790838589431396363711817174764885021115302469195710024903472411043924744356331727095988627849495963101284835870821349050197851423481460050640916664786246652361888996239663733978661162034116427642949154200902796914429042454999243717775314573625128514865758899035863364008985518763959200141178258671252777405013396791412265868211998809801282484914655236656734823073448991089171527792239855947339029402339565313521898409884579839964183650825965245704305890943208202733964839128813699252803779627857137557702429750925309455086823060573258380941399350131813522751166022880989453778982752137819076324703245523488603648330246122070186800624040436618567573527673672699350933649035709712176095023316697702572881716055296772293732972535417426719203077745113729815685181483147094090997203510477735726662335772371214101422827845493397137219315226651627194998276928246833556018462795946025001933651208464587410330617930726956907807536703532748561627351994043595939043631903925373205543945121089509220947600994008869880175627902645406613536870025220021433819735635317311653684829300631896108427143018852529066920044691235844748298388587477024342879955342831088463795570676854410320700966713711407817771568771176125516728090356483870597732418924464004980446063322604017223757409899779867998370450659448721491085780152592991319659126720642678986467200993915552826627261293315381948514176563380449504907687468427339320510619267779229615721831589040983919385226076642455645986078982336610318109146046287216800317876127559987485552347419779186726369806827718977005030615723374426869716947005781034680286774516991879476376859981188626117764297633408047795685821365996601985781999826455438487376134709735451444965483975228991047302882647236180244927939830745145199898716228308512652481523204814760020175919202372910365792414265982954671462289078120647575019415998838601399202442898678979270483388567095958443245275654548857245870512899774257272693491326392795751231089105927876970771119109613446963447547053595953722164472065609951374223450721123201514225304768780823788141869213959401617286649954022787497247431190636980775942520537426238184245715920370130647604344434875467349749571247223631392559740052708043862472311732461672899582040450177023098900921210156661429491119612577739100232975709085772846569956515007383400438583291063685194919551233020598190213680035422466009445222260354060344183674490127821478371583163771626680363412632852606799356209466292114210251186542258367237356417727930982728432290826419141235841685948991656402575365871224453964180556304279783303522920375860823747890073381389811632886357441217731035112614329752994864218526990138537372910317040945939502600301093900711064701405918743660655878338820320616816041292501120700963192845700288754172782033385701846131149957202147290867707920596312908953506811223037522015880190064681659377214174124855219647797291809406917278616309409603476152491896463151582463024365227137802121334823437626083741289516966853062264330330766337330505262223081208316146020556788979427818642238135191566014637602901456884111899916466332531888697205531337621950576587065002095621522714004982185060149221718979328476416820989499359208911342791641574671995969601382224926257033598899822713103584815452230346040722483993308514206378051944943100914449410604074635211629638157892650745406755722628653370532894988235178565604431370788348105700427371049597842028552575256524936124649806690904159748516628494186953696893332736331729920924328699413077391811206887654619799219727490660507967193910691503988353850075070924285712619527692944120332505996220979248692923087508796352687838774070869235827212517169728651593807716555784355836953156739344754008984712820726727235647009254147830706210164766106758484748045187625926003973894671190485648672996359069938775956961927938547317073678361601627008170268045068707933825364152474479797999925688638167973702221711601654766673621176230823233926118917883075159559453679066576266160062056958846457263256462332227809777657856942173554029197134874757512797676767801277196763212476235318209990943079497493798149667908851741953757138968497810715206067233478218413777756719808697418965956254788573572555960671472668150463110793438586579631864570017661596710180302296149835383685082763404943692907120859065066424799462158250960681858733273970507428458122418569231406029339779403873286317388489824549064896916699565931390840240717647916452067651236559064304684704868516889022607610284316258349972401015829577194967212065378708478035148121093647070759438073764356640797168182053588474223224866527303028202711771243235440541296068222451147031775168423056507632022971556223015782686143452987670917798106127393297040004661766242332282240361662280770215807299803427958524705733242734457372902109924142612633703179287483918590404328896033436850439036564203885922623519421524922021020900243092228789011145850962320561919260170629079576999248676464371759026074038557993727462224023790870367551404662307739495085933544629834945649879439528399945972848722911208543893064026316230701233135763505663457580442332043355924667155657937733992194258178869937835490980026954648308398971874259645868459283077720858016714212507599134994196740090829914985496128211517605678604783796554961049666192105377941382226980008096628484283120149465829664850528500631860719728145023202154391644170991992524934313374706917674952704500076044324471063229398389760157119594064333153863629508138650016928985415676447921092086509071605372527811154094987852330922662275983957347372762655427120143579763159810879282062156987152623298196498450556611886199358829760908511765105899832951066317236409130721133549375612698013767129072764560910167226490130132742665415339337553660727178881667594278215240574240443707825354070086259601607180441869203065748815051179787877885706969131584666307774774197876476589626601575698714909732722541683511077317084715669693738970150439213328219197380535100030949419995076568676791141241724565249852372391527065149550838014517806096681798706972520631817789708325344727098411286874218885531135874513883497701049392336572800646933563685343716532796835989019951218137951650739092858435911280305726087707384368275496463955325205007504454426611606788300881493977206876029099564411563973180883055789171471138061253677944874957712955352317758899497921518945027600078592435610579553183402939413684798766660732080705467844861235147629943792078352025765281069167644918005333919906796890342056278510656624891731402477954643317171096471880739879235518444748210149372613196088169209848280518511650574030510117571617013468887131919813668560654288336827502073203449735721335031461969459933344595561596896110052085599835527892731676567498126146999674570437664856317341374089232203329423697330995594666167172915283622585156282880857329457077540508970223974043626477157575885173350059516892980687452949030310385155372332682990243135810213694967719216735489399458189411107012313619470071365828288372705251724426820233879184611502172585346499929716956056711450901897464054083464980934286101394830733560361999271938590032744348097803577372577778180819830595428436195469660471220558079665810480170359341864325198153725993383653667580752803239238804537657191921097375860336597132094738006240159548742839788249858339423680487154651445763035743553209831013676306855408789649557606890976409498101624798545225125732265831455576830901841569722747709837294013530953501368308961011183733046636528571716453501280031758635558686396006631201433514381172287512419186909615986545402795030353757415160924637067236278615840276718486412809441156888031957304674580322351231817114870128804288411544042611577797407910781351527557216850648490855659904871567303544993191354192501931465929874261821996824112923619821546950156677981862465461968992924172632133244688065157350816191273346524548129334200492995162287086535234973974069994795353627511870576549580271510400219031798101790855839946858512488080929028487620398711537277139486627382509298132349484435851319826827498317365972744137951093809336952093114514383887810693018881464003146705470130788157600259140187919498035078023739320213177641012284963143908781052217331997228145125466943262629252893472042976676297725718546440001192597060133260023313369311260740578954650673038777174738310626621794945242761941049021584411005957629305697468681110005834135384124516705296368703880041135256738744103483367343824824660164947863010391239940970397358004514425493901739449964843246313743051283139063709225318451200499396220816661410630881345938444825451596309188122802900492372429504566670531062885985712069479758046061173282445742676816813320011657860723960408985652208702371489713232180686717723633634519721112117969125585175575102191332450377838981312568693125583517639361184760201963427298987229237954459656586205908173296579273371145846939884713435236380281709713425866417600240271486390725875725548752040003654865452756129417217308020372632094289729506901544309260388045505382119518544749303515309495341645769261586060087317454766883383804594995952126843006942956286452901242096745004504854213588847979203729951820676714036287611240566485519403612944015833429434124447116890457569157627381335371136546746044322413835179203135077958355262935990523754901211490091460160344006758892579637221359709412549793587766674072431372465018548799210880961861306312748280370846187868727690792447810356934291927919318334901415459174249525786718701081024493527504075219823757175840016346864663129300773391774813225312947189609852345955781895499183399932579644818848940872142725739339129104836480069749341214279247376125406789808455387908109912141036151496351638119820732771620797319381864688490834736486581893448994570988480391093646910723839239584244737359188871702049890879255921339344399594253676557599397305944132168622006056383921956383154450946231576352417279069844847828533617090566091268391589284516688439331825196270992265434434194345422510835363071926738888678413620213594875302350318481938619732086207638537241790401632360949081414152859807496138825133314876597668070272935611668097589466005698957824012607106968812671032703626758393883137288595728315271621126995866344190614033924745360583615098675846318762941207465798354116452135661869547605401015959869242858650365791911840619929322357502416574802811644097483461376482087409542213665031578314085832836201622632227610354194524787196032077614907952016705446931021527218869505805603383164948176374952232433657639749112428246005106526780245570077583383794607083285204229770169509295040678713680088550334659233796881488063391887743238662275668682951469362512826628417617104840715660363494299160033449757897918443793434003211583524416191245967122146298175184574027536902327503533182401069397078609114503938011300986156549812625254913431005848598892497209447711474411225750670877662326296915747082239192510665936780034988662480842420408211707049252125869859555669581298341111612744693885575119631486786004775792995471517449052756597887221535536787498975042394392257536755956671096893378172206826895479903914646347334833165237425592511958297152598892262783366455122240791564071435328872308549002011310656982134245021970561534324154843542744032156708523814390300862636363204290062505003441709248003271313180649644717743716192748048731396833787258952213416501100555597501969528554788976229584208348253486178081210663007195175117848393501856551139577503842023273523422895881903835509683834419887451074649028887781312635248600653133840936061996665318183266587764008805479424618719728389683516477030332852416186022559239954572214322355703400714280611190360769279082669952428985697744638848985954559460174365691841115748716991623998411710265484424814456488280543556106035756868415758498980292396753373102280431189423357395755751462946416200871069968710446526644650364719175856460119600119663621065137160798653555556761538274569381558149833972733007637807503588668996476636260306027393371403125011715224296407335462738664498959415048505377994945147734394071389206828084939756740383161996165154499334066705799036399580611579038025501316294303386568016045674630320306697356613626059991966484511751679925012030144654257803852618759206965021208569780865890498406478791203114288106037104672552933864481504083959740918206726668876354493867171794947922143830020893554606674681291582167044948743700163174497889137934630771838826082407587987748938211534345557340857249149607709578770335655834298724246358378977855809369065854778156234938128063132578640019439694661406353058048355639352716665339209305902306533898203756230167445064844161314449708628178029036665878051918756070549248421363409104034689670094534325215811972636313390508974165939769889318225969511173296134235521811274073950345119848903475908279924938939999371111407226131941194273506961872407935493546093089371201429485913882844334725488361276408866070246965636223814805445902980868448315588061675830736103991191816409203324470745903972148669946795704414319739726021926244236102377612084188645151697964055147038182851885149464992114029311923597090094121557608401223270466480230286808368412457651329631571215508658081189578871986589291874565359230553248637664881968464683270226034710488262423751119042540105935759451999650538559155459041722588353069357565262049071754040403975876157845899566376372841498692500757640148439481620938308542009421855245479454039510840231481895471665016030627331734277395776610567254183869613413571682003729584058214518236195119286479684274400268403203232534839270038063978819303398700616954622652394215425520319897376563402895864576083618194824281359581266381940899459555115466813498007187362015490608952696824529032849749720721794296968781545122314535640620121788775461450462475847527742358755861095245944923117653225200064363630641546845442625481400072598754263014484670575485828074146117298711219353975491055523243933740244669885786074011591013807691232117605782093782556509659371381045049148568864345994636285460862778153842475101034123266573816508418312686564850448902969082912595990693330539476385699604677173347959247673624198231163833637408135237216162918907089572617518896585876068140847252374472676270027969971743275696215058607322472276896754957246871662372389860508917007185552799133711399479015644747740982813216109029169106456944084133437610735689939825051556295001235385894240578726908441803981752206225948103902580743685518653871544154698631172313970065301244512018148461951820777126191196549875997329350801069691810003561526941743979102559482151675326846472970310600224913600114800384886412997819746809875099414441955530228216504122564249628038848231608763625408504015476074481899954588070572965442407454653116487099080455338894228884274252255536593015945881677951890275043400822243861817800650452750941431938984848226867460874531602316771345710340211214959320599349112145021767015840493084761614302101597284501644273071017050625794299781093014225168050607073418393789879428991057545119942366838858267475529527849806955325253850210936159819330098607279920574459093795344172764378290302161688825163115082762621489457642109445049780756360381376546728606736027675602863229780641834869252017964118043002234324070050105590699820527256936466684130143618267280658991807623343567172780121754127951363455259813836368427746393253394612878069043588805054118838400210245530562466379004156195710339902317496014583935512758731538003157258627606056200679332947654655658840225580981253322047287562909718535185434979452603668072518094914922730665685884664432318464196653058341875080225131093755640916613145860902715789844308465701071192585372351407919860442890872129390452086494176344995567704509529623664589844565161765392315325486955851407180048813056017574912756198326452679025999074008595023123448519646838139956374362565927617315306811856741608340046771508246382512960738069332884589268098196319684160259614117660442867817025902866470634402640856799925342853062283756188769069928076383893229514597349165082128416422952973371687955572250652063985712399753572978963268014876021996078645105688194115946916699443162889061453024820504812472775597530902751629298184943278704577694874925896863398538034525328429750354800105040387177223584613325048029216183037887212599869849433525283888940484376347974817680509479329237978774458214050804142892292131602536179975451538965077189132589530001582136315275230999540017511551477957424938871761360415635472144776272338401046673458066801399075240843284896575348643210267644057460354340441841696807843624357386336597405490714006641614441582936049306298435301760741159241753896626920740027907384356668739731716258205535547071819862394698873797894956257163420235037896492205335449557924762356373328874004337389768127514630214263840607816540407937763504131697167956482329018462949880259500346710203334441856722144424341526784013453654028624147594623522344290814287662390266334687147193814917116492882963654208318211674897306414924550415849807686290023872683199607796057091939355059204993217899632384505688748650290573996179798714270831684166849476632356137038282071694344844550699591327496721968197612233639987832594325120555083950057777730258129486148197204515907075313189818323275554644610878093492932398428381306371307445292838417658711564896377136623388511389804626044966963269448538015315875648598311345891120448895402534728022607295342285243136644018731338910503319182631429405596473430496873021859613466635811419166639783634425807986541221327716965172108086210076408215984878105285660916893179616048699566202747706166984456137814371062767201727977145616913693550676787626765094699961118970169209817639366106081231209773101936328684931967703615817482221902536639975254099904391547114749010429258443657548991894875403224248555047298468636439027047325261870165356534187642836082580098015677604159492426127789745583293229916075575705876964387092313684806954110036660828549985769016584382490798525686197256948596984356617116843074195302773341786824189484903683885228340742438437479044632525695891393499880474300171033102662012417611455531526553133095154396274398917570561710655861198055790914128027896431919109311895310781783963877523707087032615903473474142630118530933411963951876091888101717012234627861595000924302799343895485539435835547882601326200879695878558405478908388115160828065868001400554537938170484397788770197993494329074667591484100218274096712943602086934920282294040856057085486844385869772039095341388423231188323078797739328958504679446193212173865505509682956850365178434891822423348812545134361286876830621127006246835479673182954906561043656487550884065568653122388559188870046523961324852099952334137193645756359224701855097051110631961524267029995361696503886784046364255451021093634474175327933160252725724464102861172669137315128481556072946624965238546050850639018805812077862173747269110552424944050864933570274416725916918959256063390359114107641703736983590417349521419612064835512747341411510287817012175518611634206128557350505045442361733292318808182408247110155606924121954343647826463620268596584877114717694155120351409036771018575967686494008110152597529305964874192874289760680468768792608475489869577681300268796385269679613520273673776912738140924632652344879537403536028432548524298895930752895036201867770540763133944541180511568469964432809829473327691094677899419317830056349831057895868390781914588637459357956041651400357392180366520142601527246912645854996855670079587599251187789776928195165131156315417915313610459617674281894595948271635393787043276121139019165214430083429668445490336096069407142354482003471985017218862883572711960719699478690368237894569213319609208534671828527860792007806940365247224719639684172829292056494534251800979565473626563910581370051985839243252610831775054628877471191909806040021007219440316802968085489804401202629802250846110031476927865251359266045151575634114948224939954771797740560492933246203591398879173796168967300077442491589061552149637349276418224332560371201367642740683093801559708726727585536153914931627251703155365945023693546312076518921929466148656292714832592248492556180218909696582381805901830447226251814865354125104909911020757185472776851470345718299513842184295482046900629335003313622935613869695838041457225974499028109570003215688996447175725112965431902403492468964455332431362705701143848546050259359722812632234601127810495351120276512887955778847080482062337794204309148502266894800362506711655973820312452826564996430507726137498658341427659119929851881092916469183098120749050365915031546341818397153305203831355306936252962180113782522336095154984981565580876686262856759576334037639432441029471136375844638997152787858181680538325566148513703066810632384462729246342383006580321401917143511423266023659940781083783847269185973560735088424001420796285514265562986850211817082010972779119172336801158821175144089379572094834189006820750015142009026425277324891356814323632034385057176471611833244189714556686009165578766964515828695406714618541314711765221626450593329887994450549983548580595757325785508941541892979595242005233588573380795147918710431885751894894386985467370162349183404865272728286417878486784300652663969615126513727402312567104804375148438692807799153729884609862193519160642734816377155177440992156883050274909491516390329746682179968665941805355423615719929030447643375263830376980778592654109298000678659568925578901683071922327617071286058358880982919880222971217768459186400093870292242519932888677907201692942085989133256316016803283213132161409183449597714291971857323167810122521451106564226546372535324902386839515441596775231183502519894150445076698319891792182295798638831214931447243832319223144498209229420765881940789333405322389142215050689770093453584346603651787640794595142750567133475505618782085955226378651018031418944987400565701808778500020392272848332454065907748390601330752656645554203384843477675542821976306951930733522911312872564545677351064940776013762845139337147797433940697634371317777023118838653349987098817062799853784532037027691968187140975486717214446907642884346992456492387194658364933504773118110773022739587301937918471318710557422428808831293987509811483108967506376067478790651325324305315596885803195676489088615843534120537279365149942884077292923879894681805997630712866006993466644644997099202468361954362664974924609836879098093026838189900580085092237683442772433851931169542344040170593575012505100606956736908971503523141858751940402562990991312044785842952067951349106093576760167485160302902044025286555534616428159584297809879666917570860591992443317314514242902374501926891862947346900415122892709798062289472130531181779223230889222440273462729625491703647043679300016122903139665363344459373750911826562535115381808676330251577519455979490725928769114270145643181804605357079344615692847169757424273503859760058836788864487333618693447647904261611914511206344039671339591942884201393130390275419570605050649785056953703643746393625910114059624628906484265863011851294656572284537117502391511132564016307347085907013958047744307923473658004816962296169160283302583485238573173135680797050716980038228509194197294140485510547657544828517122295247319775554031881304897172505659015155012970101479322670624152249078760888835597009516006846077217513607876308293162990484308042914091658667029196872525257597078521364403245903604880209054492565759547359413917724312432973998514156196597122778508737839659652340770591392095360811776771654168323939573394545191365932525940455099300805389267193885961944099193761466035212228207746755594819232903593499186769739516049589510002914569339529217309971871733901220760603767880635427615865215427453457595140347321580500059342229164141182037130254278490435265245200941912815151974122406550942090961884393170435291635296933398640697755231831747522246030143889802143072453600260156588769694311978133588235596914562117777669711557833551241577122856736277396021148611766158314275278248408301144911297824754056496423273638462699272672137642455825454430975883164654042176520455107638083807071231540752370316933002614024320783385847907961436525030638210747376542641166212613799970568519651323235567242549777247521144405666111125751781935434237433821711867423340335252771288283843138379073839695490644600178618010786960188364661565206013870350321839818016564208314306436242151901730586862172360948175364625370309045838943582340440344802182966779917432185542253885816417645191311614760911241584357245723637599115244544670823963491382558677287838323401455928375621830374619360676128127365292288370483727015762014873390328504473950286624951505412139854749195617499109490950129411910326695744511558103540122095379384961531230605976836655882738399670880977547933324948046351161079010919914596165355416619457452375548586360618878463982186380893195286726178113564902248154225073965657206529073533623376011767650833015633671772600509581528033666983546433663539235062868485009556148844935269458633201291421033877406197453978636715203210248468575842672297360342462314846042843572804201572796917940187659172053328345430973042133959970866692339200409555232608274916664588390982895190745275870851044784528106079586792446939019390953454014714028644260886673300430313733153151201373346492424629402346378028100541021010071192545233928618059122085862706241463173981247583597313128261521188328245461317383079550381840445458147368108620686266567280042245566429289517471405169220990867411915095140512477620063638042092479342651253928799878426587595357373492789332327974649335063403371688102596386945447225242806847949116957210807572282863418852346467156963757546214226251815635814858769637626163032715252570164441080954405605129603167601067323874007198802822818288495618951648636964263317879971249753363394170400164146503821659364571683796440768087664210267985848067296024121533882697083480299454737732631423654706426666986623524236227711806821935423736207831773290109061424188290316194583757060410459130785088142309986761446421874463177162075638341118411792254522083224654737946491313415501290137842122757251868482277723411889715647643448934945443398543918660398077121105857464776320564319263245213463261984748000233265665521162056397155278821031251959694401060014750143346768829691711049395146632596247851477456060497970102073878725295597213803009138313228801610490105414962122964504714855952619554870656105420673270934754064612950664971812457058381902293842244322384910787563185590083922122070401008847217368934245959917948729172697860986906565805060069834239598972383710099871001092424033938488920062948922232137948912125270987524389142993263565008684256899400191930313547518229022250177147428129056046473183098575075346154071056327496683666065234534477484001346647024698278228016536611463215453921255807123105284027339382781798964690504821164301849315320925461394182858497146755961388029268922853643316493731273296571684113569605705388814779357336792788771774782386558941405338613008819520433124281552400027599009742832052940187640527199393942295373188127511549348652893988600232581387800571478559811942999049572973565867735211604458137332278085519853711807232756303487596052847747158745962501041487772686896114016954689400140024924679156109700880878948877346138918465609199719476106904053229161593596590501165761597982604224500113898261356090777466836190932185997192737425114437149155609063681244786479121823288852566627479670898178610341320257708409182898078204277257086518922151902459421199473090383578504700174002311269309382226333929851840841697895899925930406401796559911576037037306788156412892409761970034488081181035564555046725707365771298067684046873515663203328553965778363736082376415589145561051766735925843798980761249931981651242391458477749162588594146033948248881657531226584032328451570304679917738283511800368356788568279854715109230611587343390794992649234150736477211211346427604357635467830250658845321059004454284918134542018371017212763683464851539177830215570403302489701031855124756606547815464066743221412441653181086855182782316126662692683060797452988866113373062621163792746344479977601395395611561625040821019736760801461910537579437981143156221525184673408646430274378417702991763539457413070871106556836632146771014224661539076974655009399668609519616481693196852100612150561510074416595795002905694070165047172574321814515314530649925607114824123183905116119443703694931101172823562590406723501104584677211797159816133592256541440642335174507162367930663996521121069430647784710628427716722674749976788468733995408467122118861826875056135409090285546699603172426594315202317690872352819275390707057241224296968834398652360111687409489192207472836513413274786408131645204757128477607437631719798809712048248104243891227527146623605862816358613993486929276310953130741793562220567850922855533978472869689470335058127141568400893241022745379516928650470310545745627933926800136689357409589746461887039467595711615629464933402458907679774822237774661864033444968984656112530441683171095977157395144380814187261572949887802285153551495356302733859024691108673923254188531803328972308239128363322667399282381637765984801355271622997025417069085916563849444394605696553531689985248464122591611656640335941497049392098694868155963308382827847635985286062560379588769956889077053492239969956663453774550216734788969608023154207447295294318059081663953791681839612832914433573999073249450401828665266551720326407035997113437488421047399285434186876603603637961043820118054177988277598575007297451716484321885614749321908628114503046126790020416015748036555310791162574489355145070566266769735804868902952818989798450456484948398983811851864989232812230566076704362041569505053485346254895568738021069905858115928722168690207978166902637577183315483556941420193596010986302288431484203973587032029211633111982955229185859874110929839545766620928474478449519268744345417357681114587652212872629476159239213104319560823120299593300526452354528493760177245933834584078095917940287629602869995795454633712674701060658550190800774158872976533420233377125462547051014875145802907261041603686414689162914906450625416931124541239393276257117681896908655273671832081874365451066992926587800919841993122898112550039519066627343664804202997526574552127407138870870648822853497874251215857357488329709608169970952699307072603987941194125330256968667167141140538749601323243241938855387301020865741510739682069214454373476532475707302216446097304472162875393598344395009336514208437674589533413755113185094788052127827060169279346588928665034700977895592011743153034655816240589643502214046752802780254601582537150678688743460653809781678807445161481474411841293804198570865727487012668750113213338968837728505107065953838591840587707505554793266050282425884417987033718508262691465671963600458196141060529852181640039701954937329629714491729586526559870880262421887939355741985111619087000528148549528940948078246740100498476795445539231839808083353141000762467750984020253550209963746065848259653808046098779265442926261209339791235749373453270409246415830608534123175230361345423360915320927589889729032455210706041841672633038018301013600856636804186140800104327773999120576587971051746558148661670935163161627254710639156241617946150923966651478946968164663000723472461602590391465956301708325431868826681282420886024727221713954476111562928604292264849903875792069016762847238079678781159436602785620611208085009825995944144564382484104949309343566140810800930694183912250291487505635066058425206214013509981276098080704338272489113668550166051422537985676731682015347059778825631359076141996838212773401513738598729740460414868986081942216846125171205006931767675615420523438278324095302439432709805806968433587726822762588729893593691300711242835653025790451702856012724327354253057669037483307483199487837213539621647870800668327546236950104027390008634346842749868821455460448849219376935123508417400072845702034598981396022230087055159303521524778996451980411974764840789862683410410578841691382732799797362125169844258328812787439068435897758625754309562990297208108293356176988907962565529508534146475824637630559170515921990098820997900506222118025227082132681763133046473032966436371273851660398366932308972289858601724088284176994046995640955819021494352277889697634790538449724022600564779179364796735728151954557269700113389218492029157035298364483054698166448297493161252197750100530075137758618248229213000352557535512144083480564773247890577320014013102386218866091487340614521136162789173882201265688854888188084603761045137796001791082685256151348207566588452052985579673990418804624621695138367415649292865568179450136457754626784661962930038188973010383074460704056822629549050314195444700360951035195180344241528092012974691892346292986545837327865320340963861180559523163626260235314098462957595432760112879267751799959990441676313743420028215935265544073449902623547949356107394691139621028646739913520778854932505203269072158142017039133463281816775236503907009796390612768968796208723962777911508095125122121871542652309430567210915668838692480426583539161531784788967720722142844451237088711450503131147022266236187402112702930168692400742848823427956439727697184721255327806991686592661404882810027292074865153571669468995438595538706736561869758850955925871349374055543336538957562242454758312123115961335810245710669583564736066641844264706358525363455931552318007121846443127918106715632326853526058133450438457928773016604608549829277599259798648773190918704979452542741496510387244701805614248170480573865557839732320048697224056066111910700678933103124429365788451328958008653073446953392518772242282000026357826499645073083537881591773638881744743369116553465647431126548392302286524188045281845352327096863744580317173965932840183697598583984043999706129767094909846272778957669597953703541137666026282457145205068722552198914823714784286093879185043028372822614378833124113249755998994271049575116653055855117726880671644616548792182437429090006715058061909085147480478954458572356606916642975195484781003890569284262641063905988945985718186977355265366493027835534007835778191443222456103376215870886884126482432999541003491133992739112723567251218670985237325649750043974923958140158832546410049603561817526954879955525927816206365593332690093462071816912222182403959878822751702476414175884524625885944689631971272146858748295633852055085830291960640219910815274007276066546749174233569912057781565261828172073385540947298155511039182024600206720629197873693549306488407632412457736579431345009161706349817078120132666627286219530831556711819746702681626834346583715154580074535800263424925419530422450399824408791730104338309255848357600773395054171184982601277047624866436795639103978417319412133366983657943690122624169248244017831057455816109017387383602649343040563745035399102989191271709221407639476075995169361224746596828634584944942032681934677522375838982311427544565673077641437495282214528551687989624724593402269077643341088809913757260308142600283982589021566193155039503424752369766116021304652815337864018085524136765146210793254030972032075207836352091459594271912767074033523462347662173943486158126454617752803870784000130524236518935040656545015957888395284319604319002593143431178319018583519911488337123077478848554045462838975313879565175425137119685721046707067285581145492883485217127576251841779893184185010683437767582477934213288866519560761448306999674343487256422098291319001004739455812641020517545899849586260100522247077911899508619015994455546091724147730709680132065898845321274664259198378264660005557085409345168788249778401689875302940628365796566649050916612842170504815287972856710480639025045601042658792616142441453886137258405562526481716003316533623763109063105263069241249890255710392420581657908266169780052439998095837666677347240177750687319162905199407303750674232773993051065701404021439738366487849239386780254766737120257375777685553731743433291273235832298556555768495641347791651594819899145314103856472619272717803283523426417284874338375448735613222958313946449169785242342262518022603803333645841947173408892139567822698791596349458308863187184178020463582313821855807643601636694381455638829785240566847685870807090730619792056461715732261616227888771756451874487558550659132376331149047078124465477700737910300141190695471527460841664210380004338606074873311219287446645839734576258243493503329216753912868375612757305011195934695705517520058567246601718588143593350356038038046630800648192912283963401765057571310687248607881257460731900517079139043991001898937680097343077704604683975513947134688226822851756864067692872810843361691395584709309941928959367153558368200386935326415060836692964986385044499208702780564634917811043038812037867030206541431403773796626105113687101214350161209254361271949902118157258272432752085689522956790389919790481015174545798653312608111229815275346689902683472376085132193063502035225312172530110469911714770871167778321028488117305757180254527392272633073464837559569581858956749567329955742752417075823046594517620604707836462174288046148038118667892182125179779443666644700565144584086333767591954900727699384769317657804843633622862030597653164069507922593622045846612823417014739976498619270998625991563352313954045315928297208666265604304545630608083518565998530608340871418284355425874643011928555079355862259726891318464974235909823760170804616505051438559655513881414447499913262224229586073724001048042970982344397396774669402439921190132030382426984456930306698576459951269169242580520374763850663651000614015200513556101642499452636770780035647417155757068861115240248512448745519201734339513293108344544986295146574686993580471722423083905950172209199460688408709339524017561973252788982716635690972491256628635231078367790915164687644126687320326368997063466284936905246186139839201214582481052661918515954996079819707853194857161946055891456003999062635732355247385822028270778536517191108943235586082702015286510676270466651181372742467705807829292532512719594149626791485565738163584229262418198063414340018058912890724999239143491238955217754199995547001497778521217178897212210702571920792934986410659871427324223619835282626094101698461650603519853533150622439195343449194190733375355102530894559259437742531083530415758428849008267987775694879319472249379501698427348971660865889277071575961346159934587649057277815725508657475929746420708304571215166182738758972092385222902350138536927377170137991785353595643020131638669416296654087683281359494709853446714663014450994750699521826604029296466016525954337066367760129985177133417260387757076931866648252420402551933886403939549913100899596138203006451981271766617788518199305253268841412784047908415652912651541142386859509247963912825871752493390545374612609893541887645291631858938598175046072825961491717991094145173361826013870424444497798419682107360920031321844795295524177147077684239523879933383830877356573487159589698471982234153602133763922570486399503142164193833541544597132220556401057970575274067790433207810062265101815402678208603707467309980831841321437141660735507954856742290203066449611704402920255234035202281203628789971152487998885781937131312952336231037462639859893769885546618838271993031339922834483734127042919022630567954575400843107404969079075706003432763214018346135457740163243502006104895400986569463835138920930612095475497125904642337860860838057855543254844754764668329071696557803781389680206750716692758455757742047221114521037839831930101933723667698989370000309175972400243064068924500924563667988797075051916481395218102905171990448959706535994348190472031731194417301795386252091672649019687218117882281270763594623258480930750058893667488523741065512106531013842745727970217931909082531439681070180204564682720146839301458499628049223179009431866464674458773768291465728857644140385529568032801400830665358549971628267125407532595084716944209725911561077694118265001149358656362703704915638933850779355892887275408095811270282814253733462262283509831138924447999741728467163888887413474403944831325720774099856668441019457935761093071835113031838058777561041003291366951316814754985121209356807029676518016576553931036109168423250044250796300239291901272759190415657816211521244228940937791978226548677936918742053115514592015740108040859069054970631344403138267904483458306009308588577409624124181055839677308984990666646029555014995240210292044764555514162562797203202924875522742425088307017135678633048161971788595438118249797804473981457906563053170969987029997200953678091459740632656983645889506903998761054487162615013434972364669448121489782004790332409122548607050448218834338297696753050288845995738694173074980817175408642490513748395699229424879882823367428997907534279309129096021195061469856809981585817767769045082451730108342343895038613892361775202326345509872315493878715232580365892294949993600721699382670702033667516742343197349671410708676411203535040266118458917105795003814080910541407512897001178273287140467959915883883373600947005221564810934167116426045925579938544485434906258662564656907026216906178213793641987321233824826729818396698670438743878981645358969595483455481308768538815168869750576515800226513692048360152020232204298178559363047496803895992204935843469001646446691104703860979050719802086621122248467570003534636975404672859021292331965371421987304698763105534926274048315759444581919271805610567481861806803611756473333168846322987393483889672782531916334068197377819285462853161163613950674502041313252836496088992270711205444315287611832895546109173361270078127381778326370596094518125008763738450172426864393630207878522739844244217257429083886953017230636037256971269683785312795806587980105729758285053653020270415046094762972025597696774699227766435777444715767007579610659910632373588699889575528472386097258167587198796414021588307900515211268970517945609674785943191768371829585051122295570627952540483714079469778474951431225323003688960427878947459249267871288618634633049720029767101304771976832267640774960541026945984564238194747432245050829899578000882878840796332031093136243600779518938251558030838734563188008724889698782805622437551864982054707773591080202840298541417952674879189164215340095357641405481855151826410154012198774437125009959114881105075470762066144590875050181487990729082672007600978503420860396208650435915323777576261536831533731169946117049694376679523064046193013025397515939324324990327221290797914135898776954774954960587437897525436954126942910719458815525356174578808240076919045473741588503264020305295897908522179403576513320578745144472128108806983256609245977297047731077932588114550639569939049848088895276037736488990149779286670297543411493879971550666234973328539238622897166095875759869725177856890370266840964012522442948793650059505567462575238332580074810350732164198044341551841123734897808210321874373421124751584971307286624908359740535971104593765082045165465375616148843038024971968099858595564618902459868783962698081616807500246719735349465622612235099736793626751444668772100658397051902146189287910202144052655267217493067166438937690181681881187456287793306779061967036646028701612048325340770050408778964924710028369765215412756022345254690919865864604206211462831181666660072611439926166173820045134423168799113715283420755829963401068876799459110978124853827108819841487751560961567376172000407514164480571606841956004710234707238848408737743869543301682570874962803252259693891973832583375479294277714821147164526405786654967954688452063512136744997678396926080337641455068550973237169619383562472399910939089852843114159016088764394787899577249419511841821559043155104236559980521282465955862130827243194385924567074099090192726926999416556088085580038190244493549072412684122947563941623229090497886793385628457486174000059109566650526867494018868369999722992524693014614664189245903788017955922146644448836855135361772905692000321325495227231594155377918480866336715648829528675875756663446818053221979892660286266235818025944153389874586226540888055066315163510526931921603525236609269006283327373146534760149242936741568783192766909724015553789099279279390339405688477394072958695058512616795875859869005194182082260297003890866748673017507386460706912985364816057132205031805286777314737609693235228746132304863031705986503275521653626538667302314309788859177234913126753921074429273883191448153870026756529158185365385259623196921428457421993463749716316856713075112704403276153483173795788386496811075760891580780238038855839847712460314360514381378295659273604284961514103529054427607213324102705343882834917839780331479878442805440979773409590914101960877781857026548364720436700664032219824141720845328959780006204647670319676796032084531510971806041316503758112453296747848902381124388320500515893088304025683126845178248095097910153415202626561617921419645548854631382784358643193401196172291931277115048855366346439038992450600745283018323263903746011327606666180606598840663655254405895949788651066493987634132922475625467911536345763140142289539611985115029873722897565597386642978062161031296280923622954464501025293642117669120730781552073231497736049207537047507079618086510208787729846628151043114426229089488400362325497580931452119940421090680342821134228699735283316544137753018304349060442547661433924483391737411742657506765824851192103146499085996399015217004916081044518681984029970486612588060873720712142992075277883307587177002188627255246680840997433139805729962964028502274981044379292081566257374738576079773206078675895034567040575080736850965769667971886809147860264532188147121559541811408238533245639330420485682968823793331347640961431463103847239419271651363344269947836300715296563444519318829168033224247530124144813408775109706962801251302875978705952108653877257319695231062054008944660351973795548342406393839322519626091061452996312605293134915129396961478304472707132480407633058737367914280593499436413600297789013206170576930202782614065701783838440762037542619198177010654903619657317157660681657896416102663936203056060143170346923730348171407397631420968541443115951490645692425509235929916817834771562135892141894705812771803017566614480872431490146601774103772821667883546185755874234203712782863764352995725170674548663200301410438037732899394783661340646108263373027846657985566610991551942739672658372746619043830916264603352119259714668304274831694332637813644588893291299079004048911998905456334997491109361989139697561912032632879549041974821308101205348514688212144670550175330768817990899070551085410749059572794826406743086212998255054131676236131041539536010270413391686453579378382208617553713714172746017900637424652644404937126279903238178835054923642033385591768744853026171104861999768716555713436523245961155158868896826567592611478686091826826268105325452666146014049235554844034062319062053722681732620168781194900137403154474919776993133922591264700842087118418826185940501052485831745573639896725296240287631863089388846896681146505472145991276604404299962907262371376976014217493968672967473947116840167621430441165503565818913200919584218795033452268078201774074641325904272984411844808899324023693247953102433117391778794115244621079559095917350809817293953405986616607456781904621916753097547972494163341231849393413888689890105208523577180549678899528354175285147772609683693546305297904985612762977681653512739207057067233330670206303067274995626684555177544066232643992409117895957319398908688768618379862737460474218043268582400650577306494879969216369534082941601883882863649936537648816130988016843218279551567034399631458025271699193476937023989899445502726516903052123346250942896981085657734970873222116720483594538226154940611267941994407357237671391083776469269620445536845426688066229179852046979039985430544760692960240492107092225749798346710245977099472291281211190963485803876497045770463039513935282342975932181765568695848627207265481493359103341977052477645845503704189607139168765040429605808476133666357825542560416863408221890710737584389631711086705946197091424027304198995043759703905961096616529299151938416858099294847779216492897169863150081985862217205441793519622024975377698452147393794395906601467834913110106339209297845613751575348540549282341122001720069403211019445366249452214901760528391378608898642316694352575374330237024319250767048416368778569385724452744034928435031508436922910106453306310173844477463404297451417845005555119301639953628836647917239946518665500773445938313975077939126535102354719593969774844543543040918899537665813934994700624468060078958445305635520471334036889607037575434441524610436708993510667961508420122301009554804601994794726892501821915100766297758166007967825624274819498627253865458434216508196420502595721509643674154264552060028054544810586615650950116231343511298832564334771768968694066656412119957318902721066024875798518101588276719969557139775561765795106322015828623061038096416845569462185448617259878762783293089449377740747707390776756271665505958653146222507040033961987452028678304170841694591093040958121132558839517810709478718212057367541848737878562263735847046763557699777740639409834132775920092218647885961009535904121561638957712632589026461359757971641367916134649264450373858668684445522616002660299721057486808573602087597012401802263540431731603634829376266799845085551931812142634978261849849765870570044302017018604623122088019121311522808094091199186889470029889723699056646288693974125816355174335578171805488417506401066826537563825320683823208181685293810787793289228917680626382239882241123398630312227180455325180988600589582932445299299723359996285354412323951571911271700923592715222231487713604633421329080996619509743996285595383885640524373653243464861499807900476919723546688537298573752619923382477677721897882847840548788397490325190964875951700880597701214232815516947089606211314382016324855062621859978765119152063982796942786198349745560794299547269766937621511484880603695887094342187068440815106904922943465026837986503710630399218264235562089355909421760827721565574830741288930817142005416682321275256343917947212537557497416916542239056898729290143151325786924552215102890914583952945773000752121457698428486356217322688329509002682148358336107054392173999176472225138398242685079835606942311824237413075517558440923809338277540950784691898740849550030801904997430286845921493900490831858259200682186790470291723418183711629500423502699150597112563507774293092368226195368535732924894107651124346030817162864925092110702135919282960609015042307705132407104632400541854727799525213377724709784769543859875045891092032234915002702509628943633654095102230972766477326600571286396376753319828906089878682539352077547566030072213704504292698156861306528483892059954987170095094477912863336022542334936484764703191421954245661398832831763936716376808324216163097614777168741156055941943299797306140312450082496316148911147057277286392123028547950387047374488103007830534005254664723220217678294581148663089457022420924231930818156243950275371505470304082883415385726005326349285820795523672266648574468034922286164171037134877190755549235376153776230005354139837249578242628438880553358871425725780012716944361508158496365617723641185270381636267041901079779244367682359105268626836013979691909765029525609072481035127723509170479060398310749877345405862125422000305910998732763122583207974222813598234482814261471367828366991417095041062297409662169795322026110919518780977752986477204332150073390079813989995179613052858315063830627876169542290980673899190312249298291763576801233371617383941500982725419628910317202284137797377445144860736832150667103391602338747862971932755855085706430751329330365613104638849451457246929451914311498707744631251174812444050633935296432593101604862202075253117688400972785614319605988245263145229978022419957262392074571320742475475025881850591608802907271808162150568015365288534287495763784759141041521981536935160230165453864454952075499238456742565910894973403105264606631892905872038068806712665982899378656284328035300083065844286595142981143418835954711726994845367165470861317525768459935812396743842995046897476710949322687315373054171224532776839764358665729897826885460964289349424962429761875036853056024098869973849068725700363324543730240616078887543470811299949608141959669981767624250897128007232429639773007352600156432023849108919987440708374777726961159580919235114519669678626508964703011761682853793895893952276124969239406844494570449490672219440125954269573111779066208804642166262582776579189599939402520565127460785688466292345943997102958075278868842361676254810516506396208390626112585368253110848618102600157947419689650904690894938694819121258863016987078068225985301179559899440876400894285839208060862948054352645752927162220220924564894209058347002594695017262732858107418418243903855207471577224465581519201968351562658761627542267342834029591758498965415938931096262537200513387164484977154367079592345796112348268268326920145293529620292824845127949679824238374926578439811786862311381367563132087027305700279813917698322995126410606388369070877028380323907465803275584937607772013534919209322135395958976973910026643645325137393250779635589352803788045786657652230164362392093393939937772435342817422528272606474883897144704208530904594559037780333889112065062347989884508402475839745647273733173782404838627633800926997177779572110640003127752514753287598231072797471774812674685619525987231838965901732629077295064090745906978983579862569453896411937848612448446332049281415550578043706510377615078868174125246503879693154429060763099691029289606342202479941427815096752955448444718094700713867398563941701012169640048611501463408270080531463883567152285191937289135188733450457435592745551431073582004354458626015639058179413419713907917269518073489452895151730895019097611817986765147173863715292933005636357053550215221696259229102844720253256723752836431341233342561288799075198345161553058810180082172289736731652625876652111280462090426606443683229566763929288928088917559294816326134982675259604956086125855163054471275618977204773275372898247337417147013289485820197532681533885079889019974468309773721832719395472775196237229328930155010613989354964098396142461190421590547071904331649432036456943923809734841675130757787416322436760667925171118744336295611961730324601387933483771184833296100440171261909999343224188741762947771374383847406960472588936373798488843346544683791945316526660542874809634224025203356729977983506309800131930770134924270678066541000055750015105613111799498154604564496619496099820868256076443992417850963016577999281182807830547787617215404847300046581602401885727208889338387405973635091019051540866430144046239534140172691861584814230778608136666142809809719576396966801840159599863453103038578779717417057594600642311691095199071484571148884928163330253537715974600077387269815998361178071223130337059027487073784279164434515880027488808516751588127601313233068602221745737324010352965558862343777338564012266087023248566912290171509084075754532428355768925262551758004472412358189317015928192716858294118437092082952017290928642787902663700819809396783345643484902360822441524585654853902384669556387610835745512049681696617819722570258495691360507119362068282657932579852631528898318459649455421526529337511123701661006813617289187965370416201819406433777345767842678839523024517221749110116243317304383940263854257775918701691057466748328082502153024812087119769237246166473818602964154656518718442765640002678034916377009457645001513510032639111750333968644576798094699139689432318580993289462528190002556250086283896903067791515178180173337722439652529228937809535106821670977750454359618388749093209797254614606455545175539063824319392853957756479612219392217891277471136411451277875147413403703621656430049817169918972065001233442580173590541432551141667126285158394193156399196321194313333256560119407437264295444902554705977277097317002870367605656068540910245877945649036903695158586339983600140177457997127405956509663832320794347940156729858251374687530776282484874578636690824157070366554912556742767801096053169299161656496899008873614686826001075332382215603173048028034367778750195409348086008994766163637022061055827825369801001253983145288426778122422166172543600962361688586074606774323020309682902324832839901106302765432689243003056619538664919968993555991579008260950086662218104398484052020098168257882575229694631430773155058108278831445414201308702638252443503495630258294013800410107474524141603143499563109471345321566972941600402433528169039359019073042755989756376747589267332139122583008714195375153274342016481356532799544039706398522640013489316278170402223439029957519779118687773854843407309753719914303671999164650650284757364354965852139828960246670381831611509021693575944942874624849069007346916357090517720410754601383276874484126746389803544760930122897145919913088697719742645410628423417928314700242071258026953029156963378310131510454669555954527527665991691374495157260509516713266288288368100304387749450763384069562016726517037610581446809546409512684130374100974731685373846072955341628354658059705663351154098521874039301824321844637240065712778071625280986953040595740768881774493845734412490029824228381923743580392334383125542106650266694537024438554713805051819068780657133650027530490031447156734441502785683481709048243408979765840297670993082807235007231083787492323256699962620134750630196743820002554851472426490135713640461161715041945219979756907411160984124541884885728871568145039960840553477975105292500111659025547389163533627000120396326819927894742208584447491180966464118056224245244868500820419621667436433831289870146124650076875094397189384967178350547478377015999257750859965978540535079741704934276509704401147808891891323752498691719129031874494564015521117100718331539342514108931089994779621142862004233158530827578992066096083139280462347405907809352082054922925599524270582868943215699442606875214360867244467817370577631460698627781637939540758610658548208547595680515079798336064010153462655917062268997769688469539723375421805805452209543816087192710886054881692228513034898036214553475648369016407068703629431361555123557064830740105855646934140136863542187726860065946427462275421899091283784006310284859664488661067156011048658624295014773379491714110576202108778693477476564379630673817467633966806000050208747823625988551396081076396908994649123087996130714692262564649166532494795029940035548426693200256165242726357765184963475828267551342578065956150693565025692138370637929902475305266738867344936874962296952596982153594774340426744787547780669827142401473030305998465313022373653931948493082463782657428636841482814385908519513212516859253675488292767623164262416656351598462449413848028937686520253033312917855947780322269245932545688704638864568644168159196535758779575997236675635562539762435130928066968897778321878745272037816694744227900331789145547985117991807466097295389793003305122511086598780232141320999854692295596324461819009027554253741691140474820839334297806874290061227130896846495738991793729655630231560996612352283194392156870165412235616850037695039296806368510459057109284940630262942254809247738126031766019202790814676279598521388841737351032962585197253248303562867285044523150890010137857136522562804074666613873991653419229383791599367749402108061800484091026425510716300870399727457088971845810430359748237666107999244871624864633164317433256839938106050236900807906422133526130460818246751228132960231469894276634550468826017019718237386871128320562491512148262572849147629195134266227838228535937472149463451901362276797462778219956693013203826079131207545197874469466200934948878965665553376464737382997222946034862654305312949095823080520903265029423559466091657958137645837867900434647235306734968873491623404846316226797618675217569733203009779211318227339277417086955828064974952912485071352594969132558747777037534229031653986893608847062865511960827043721806488225590437166511441468611296762398228328115585338801611927996203054624465319197252233355536486477804627497374664708344277734550496981001538899470784338745134023691838473149613565288138582009843495814501285395777291509326327808285893168547869534526997932760943008815312297432450663541746568263228607490487190203326196946217164757219608267761207892397875491155947785361661854819090479245416903557739803774275194091503142827449313552620808572698919965691853760904828619005033647015732692332418846114716647136160563760682624903713765326916733786886004667352715912088978605726126540793673002377187801687402204996175612071998122216167016394982892931754187462960898714609483022815463388738533279959357062800593339726632156198600746262678990075051132693102111714691660125342571929378186046663314185154450311643530473352261119734050769531767632831354416444938511225020043841038239614986490640850945427175309877747926092938236799413716053918563730378553413398594781187935140801401407312994854642807588796769598000224351273163371393984927158390243293603333532927950613712867725302528991755116385394994223772269515791783153249191688794761910185190747644334443774181765441454828518550087175582372021711522003505161339466663404133991358996689476141816140201047776674553125805284159351526185074367763847705029410005923563410812188667093822236204861379309185144422323726883294761473369967999759887069633317284041738205626067794656436847928229337483144825331186528190930437295327997528569004418460047251560815535946573077842910168731008043001893910839481116998925046759514763968724696771388136156650340123752842116906883563638876672889550422808452159624174916896850537669866668835995527577053347291200508763342106532568188959886793503127577735942909489981168220089138431503937767276066755878772274500135022580333534232620265630612888004402485932779686681112375720602346876125275610767106854227291023410859318605549199519801651054932040148192492855373927894752630551553004619466385764159774176733831863418095094374989867427398937962476367828954902260958533054089729903957899243810667568616512270704519458226440118956080715146126294832775878191704044400521863881901890381201750357818625520722549410573564755620520280475276798137430462312002569643838973036107136904034985547528923252125992049604854659170543625660389052953217604347417625008813276793723678028075282919933050252710692186876014012829827584045736303022428302027861753243167622375576582685319911882005350520208458081480870575219838489249085301769746888355931866394707968927681381292575094185808947414140476270410362872703965609132124771172417861382095305578949109708696550510976907095075798271528141142962479218974267871586141222155484057109130787001673258706958180997960077907950019178654278488693796598558467084679301691736717635237879311125352902698809298154763217337613630582131178090925913074624621048887790591169427920330013309706874901888217309626890919225581729244040346842747316246887195906122243324497181381907344483202385255517157648995329375412995485072300272305088410530737241439816800993345158982809081493767978185549201582195434925199175162739273338937932335903256657343947903481128891344336136578945748865849682654017787132609139442308095916948467572371558151609721338980341643116182221979649407452290781127769413827273451999157559159110159164543408683809192386808575132274758826802946380028514832588604936478766995686302668410811966203526608917189531874192205546501393474308887317187886635307299070375849530229982646976407220044766517260328697816975790724759928687923195314579883285465414040657455261738224678390473180110762634812047951189715496497215061229283109479521876613185283081675758509314634475148123929840708001342122585855249162917890723213625215658401589302906497684080150257412453601018354973503105282003342153532003274171869163256302036180375299026770121518556223640121878077507162959651804193589660437328815622906351168882891763484933723399320699916483086895852361669089339070252771984965273751190364888364467559656654812148470299017918801745540249987474497380397948891847309299992339593189167542878125557121148245042801235936830626150873105576149614738428345372118591230357872386178706964022320127934257960641245119037828398783679086591405645322745707558285264330682996556222021379940220059732181577469631732538704732396297380482286449718036271282509071966900805199195861181956601642969597961748161797286996447328038099955401104594648774538330331544816954826723712794398866316709374622782486400717060601626782455659169585759294802563533706266208867012025934723902501724941137464926015495372124521391204861334176544554092529557842693381382090148696615669120852695238932679122544216604111009226433809632471757313023520338893304338459392529501039398769214686962122092886746553015420695150121466995275662375501035584803610180630325208141993937520596539589664830177827251686260014038706488654624353045491279833944960536148114163226791950496800929184300062261093464101138657576695374529633117604423257535406717584991318238308024306605707751354627879948792206115798612128811138207985663160265688384779940051233772365821951045818149485630471755625128834829783425494114305025696721616561505689160778622038331584510956080777546878561384684841976849680868131071672108165466389102802329737243166093144991551891584636107880453188638595750927182187033556973881131731031790314035582953297309391437837811624401091129643239904411549368125163400752301473704494756045838383391087227253660605341802808072394844654925962899598133122914817597597415713245816443188507725132304309425738698957602683530976855995228953455111707255097436004635096863603066982244038509648443442222909373740811852427797117443411598444607212104364357773783227743096799099271760206490344479135695531371200441155802300277777588898534764580764794796995979205670211158518735331848431729869755004286900102649632028454887072801733548902881371595476388303902756116461583850614275262263571416029933125370851661128618440077303354348992455521787365626006197793520344829402994966175059572681440523871776543477476556785061494498769679308680480995549953250052985528315504467126639653527950100148559358852531738073532375886290399690550417442917935155142560691525061254476583145662147303141362282376819373426930378078994176168719518714286833169536253998808678957252327033949619132028823900126931541458130926313543565919683578366238294201820376677729729093113315134899907594164833635567463213998785654977404433259702393915967814125016016968973440735841457767129147059804347005616581898626919613528875492027722733000541542544161253553208795830621285155903275028704341783343205507275281350927758085004699020504100312336808174181366991331010624434094091830441380267924825955663411377157679630360561888059120543582856078336461093677681496860779506781324860329893876248034443513815822205810407908130783501082896568732489308327380711934320035460412709484101978861753256728402646723653233418455451014851343785106779720420340277425414997131043952216553110334420726048380630719425945844006407258924427256358638643690563455185643646590668266370910415955844260642785177235772977144617627911497014093612411704626146485995099762573809986201736352951134803279932036260533159910388492859594408320161227899339219511287277838666808183514297159625719073846661405048252742665698280390485453557113684066713493020621837482355983784557054894728619785952095396739562799570393378807937667064236635798051800774264874464543322292249200717268621546899635871751361494725891543878829512720640679136786600512775234927173661321724029292320712258801138292318026283930145315956804494309337719342038209738519426096001068844894162854334225619423150129199046986910934059353700022896688947192893379780448813750129283372224130906193811668380517638690314228508226686161859685783750876119690924732039694158045956461807983028035691503756270005010561142323041291851796275287510530578328608406619984538380597674535033264844364555989269585622046951853278952206692831131424514256463865508355577160837835634762134275940880046406589056425547599903763407281472854653802328265486687056718689402793712668109583234108634509424920697708793625845884552400800020043003131865911957775573223996947197660683632151063253728646541887970081129193057980489689423210734786748226609255266485349986404258770403350842052024906569562422110696280576623981379633472518331621500649523422846413006615351636884005884632859361330928976434562929147097887560157310809065559333428295755098345377148084680474764711899372570738754602835028528195363630846370901237300094542736068162629865254846492753601211518210000945988371600381363570423710541315405732538499912924575990919541205780815185795595437224358998268433457815824885604784987850413259872123180466041215488545287020118762329107743473135842431183048371606662108634333367803721600323522819075803586414871791942784848163986074534099303914210219115823783563600499046459450165042918477723857391434059828541779203530414334647967411690159847250185068913609138044598771115968142751600453670822038862733744343575822054334360946933550719361870615529271898526611211669827349364871744183290234707370453974857143215507568160776543686468419481178097932688525698735333476326389853714042062144315607210027165004018685373738117255105065023109165595141977436974510069300728657404716493485674756066395828532466157574161949509351671112211220976383607065519071652196803935157037033966228349833670061688809883218574130599104449906461026370519832402657300625132787444995163444049487689114706168727725691474891207081284136379262392578557088975265987797178079522217143641438393529560192406856947193261351456828225143195152616966917730889437698761540421775235692751764275694601895859857282020044187786835430463915085118418450361742710945754349044703642548243298899531851848157009904043954123688658952675712287925765500398783942127534841237619317286915732722247251140782914446746989320243634643789462565319920211663231303913917179582058151681772278773093002610232335676529234664945196399506914023248680408897486941593271786170962342756983953625688159607099276378940656487274549768688531220395219855330338149724979645952272529264996108471257153886641505691296742348301546421821882622082416370412994704887160797550963003819831916651058067227552471306253505591720457029578524324582978597858370182099323006239219742152339304167763798291391852452936739222065917787418572428320555216754597030800209267500398734374522741610601335638771589858950185387598860875823395733190980525285387444087508404515972725874554855075876410555088991425102509396485616915311036341371118411059246769536277520230066679786951495228868979902528595102018743683761133909455232298285012437200340482000786697403490519937918535101956462473197055660244129151687927360027791004094251682563437911379411080259848611293026931100215491130026361364735672110672045043807022985921518896507774883305976700029717662412438790667858408850419712559973306346304962733504593185751367211582533774763794381131312804657105219637436456592077676406884640984532172545449373868304675753017475582194262761409470612038639376478501723573026130536162908731670429869688052850008390019330991733316815589749869335934323520852548625306056592626884722841955593509082898387620040244822133452105853903929551951810952105217351286927061562481047561680772274817371863978212076149487834263984752569519855509667720569235032615543266292733770411877543278549864510696150769714095749591698933212792404694046005647280228770444013073186728946892085674293325153221281131313271609647396969133638750036987081999566456059363299091791013562817398666049395393510049460326614179095088633746157236712723566014350638055908013627346335402441111330726787541307751363299210330953731715593053837374799235369887053570020271535272672023117893581076968724100734322655840148860558278717234705810301822203254328009036253730687336553057364639234440799038379260589934092472220831647360736970115772786306087841360225386692168094803943383666447457545893577641077311108973608732507519739729438783882058113359188277252410502994686532900559040338034986441749273892350053926183146986517470866905606569197165056633948724673447966227063168362350995247580835925932246415999793180082945115127250328635029008928018715360362764562985618024179272070024195902593301873264088964085317764898992020312551335857127459938755076559107525627086521920325229016425712273793933145887147427190679470587554307117543686236121077651527900007968291353170870383168567911603639848237768716388840107215177049509086711581309676878141603152381460083802005941332419727033271780532180013499853204568651192630429346668544739365789883324739377232184237449388881379740844051331605195576054194848194624014805918584722244494732938177683812320902465228285263395131958112401125632077780714900265434191662548310880616105426319697895346866315268479973686868478326988928750242182126301987297154983371547653584542385125244777230645549338495581844779401712506581321011765470513819686984299131841903096413238723847364699784514706887747575048791423609414496700898833516974797277975258305316571938185899591778913170273957735422951078517832334039713080489028238004819863898471483421787018488987071616698242139540283229705287510810480294970746607284844012597368947712244880958668069202819940449194127635300269795325203880727144503274058223744000011895880875557424647080211451209722408735944281648317527467081729974485854698026764019733781894292392328037653124227177785417175027144444242114996699023872570286067248635315605552767141893734689667477799928888569040885826531022000744615982649009072998269607071559757550444853778383902011900475736208201920811658766480675352356703408523153683121246629947320381313313631845244108758141453877465504963138998719096876755162505327461515362583624195675475646486433981462187163709276125781441194947513201739377733264395996946995375090918098341432287215278087183030276780056679742966742137423065285585512207757514414387396184816987479040305410685274059156382018082301450412774398074915766242320333197613836575431682850614214563216764056109729689093405282625781058696488665268634050389813077890138312379263177838171723836927473762476229534396298914079041487907655307736053778408215978876016920837353858086611580300067878983881575644738073624920171131628098938545773459722646966302410544461621691801385717935264295279035188874653146396471604282456417782005714361341043558220954122237547650821520287023163276161461369473374754514103506018598342972814105625433737318374836621411073451678760788166941167312578687700429505301630321810812001868666495803334765909688885944632551423948307590439716518614090334135347901048936739337992755278885655970113476857708614878784309752951489613782811616276020033787894376520453356446436179563961638471804395037628111494508342943035805545006201109281058972251640641757984951811021576747567652752963948565715145211704014393760296665976869398913546430481366301924866422641033434224489501062713062055412753226758729944126437838131675623394325799863801009569352388109899029493921711389231261807095470764623549381185027019305885610475741633523699794200223916971530789479503626850081977078314266183551071727912437414419548531084019409584633754009682300059576194519850056028375048859698926038609695921803774014508622189264988435345146456548541069442586129043733339668775390052030859270474519362032998628048755752827731623960894858539128858845201072263898657626706167221099166507559944412298545250395406222500430451555856245839441852148743539168817271378774005711422205051797453690028531517190143814787848763181848538679328670222137748351530250245048727524476712210745884242225324240402546177996788855902116059454904499725987476140950224837407470132321141116424614068359556841702096227430916801051171856222661452591747845091467163429769999001701120307760416950002335456789512960990880159646203959666672941637820943572334738476992481391260102385999634829666749342546997171557925108228646705836259379556193318425869723988257139068996053024843816483211521730767758298724456647011421321701987446941949115544216308800798758888082109019407626149453352372876463092330463611638134829298390720995393123377181350860239047563719897362946375725141658774842348661431048587794195259100084587683331948135841205277578840148975778011618654633587468418251497508182616507369164544977270302611076160036712021727056413233654019407484068700197908831303914411196957829307357128590609819920046895801237730414433190187569511896229910774521825197910801650613785522347454075192153189977722129650300694659991013515862537082267624632016789747245650351192613703063581217825355111866777853248637859825766497190173610193647934566375309160400311239410809779554114132189114588565409367568312750057526717145066591018785715246930328936649600421256138726483991229420680434959596530168079904277103874611057475199917064710302068072836482179489053698821999548999104774070823954315005498193405254114173756092448442691850283932530402157149929269503447398627154638281105456029639761656649385823718964304853026956812883359384562701119556415829813736655738817852577064982840033971484455905616245583578225512577985522182760020593288710905337133397762132673692482537607320387914666136566978076000299802942415373184696965130917895725828507514388876168064145366935510835270666679114466911035457885658512265954373551724272173540522060633093220011127929436590431760215474477680927387004934064404930734747255881646733012619593440393463551145886941166158814338355228806757874044688823768569965285501746853625942629897991145079821435894275147714529063439597962082493234023537674118591596705744992367764385636171957895070813030924662073861813029562618677403926950373794014086932669695130258509317351071894499045356952004992719794788942701286238846374977972473784274785744686007173710781656157805089692832348795971562694328152549321869253657646182138030027558947221247222177802520240263552623082557060031969479537777239776576433326025381156005721833506700388683695695472232483690222824309673275334124725795359629436351500691441275949007450809886770411146167678518137088054289376267791945238271383750710942921306976657286548261368892695519526110085827155035340844105215403670326013356103227592714392104259143421830074536020902862569095654487368468542457113544981625681222969441344120765344819874442413463638279111584269998991318361735634824033405354297688773628558940997799193645085584936210230723647593113817305193880454015771669553387131497679462499655883864106141259497564270305094221403987201172460612079982214544826085676767910343151868352187044365784404376486428367407300726375820100813902868649985740318850184615325989023732682119941080741099322080305877602952872194450297321827578642310459801991103544356137959745639569624114761187371443963975108862786936894041558124640466456708325019683155914441749714506710960165271551933237808774198775788120500598029933349480616917550419226189807601614085678020910773959377706055518536158929513128499601518136891716450493211734517645468362446824925310672378069611841155419639068127262214168194302050943643455498378999342737589190338118422208458143703640169445258351544533710857261918606234046427369345720768707777958911538388787341572959539334072861159738838413549375973456989828580456286545663480223128028442981507195530966794017676421750122736112134122735068792936330813369141282661289499523009199326039113744039481613662102641349328566318659040358358964426039735999395658175193114675384622095164671695769251135976007720008072772446518604274284202517268002851293630521162132913149097255690054001995101640048886400393932243778908572080356719827604114692413554973196005253651553776422212577172502451290459210367836218710620801487000807663558073643380766337295967991561900065509874864303162620207210670743003744647008522006998389676137476039302387074817697642667967850739177564569687480704678230225321218017706918063839263129321503315427987338310590150628651251513612867269378040529538318006363511432207555853165250017974597449000562288435204752122913735101780918230305767772513085359527538456104372021396687704628213799892604790474680242062573894458163767509374964569076697551452765552948633364312324425995244461370796705912717737388867472896219204110441905826534719920103700362169523885279843583346346757928641765328995224088929760630291737142784514250814482489705563777723502096641870118462941702033583783993304149150999364581791586999334421475278797087058617248791325327030339189907737841093835917912985136023355417394311984703963540072310170697597162681473701800313241676412422795918725336532212822498090931846145808340621622454400379842505103174760429974973839450223324543668511914346532196933621500786256289146879901982548492024172864602473934907010563057294204387556974031676554129883501575164838378128447958634917378519281732501963702794697801502558604243987661479783056279404549118930702577162585393928474333315130501547773215785827994842802020882777213822971792003045407875981639663118027654289352818102045388937617778088764854985600283838683765363464169970019442341499361540486437613186485260753993828547656114976697319607596188481250299876076680322048359808415161478681054547297567221400827453395591865262745893199548847372922055605192378345350254457725397762486137102080551376070212978648374047108420617703757515656531836602327954146978575216814621812507855558907872597382846884306380169769865480032223133500855095825520482368105554207115367829805001222119072498569710821449539082328698446547282055499287045602060306365535965546553258771280402741449795784833098734064343998333552109533635639789349883650295493903731089258649395819923574306318735697260381163770999279833581150284483954944725673676376503965835466318075563476183734776048943622763962677401423630533835920238369515245376073079732862387479688375358295982990149515053207066131256342087182854596559212375826964637398587284967299224716657701961533829655546745624241715164019153258362581351937481153403859201254981215869712386723897481462555458546323282744409283823411676785789041258102247590409108152518200587164831392767139954306214073065139290357341399577568495115766063428786609954279251469083592384469566539939462126850207956719108141338689468404610473036621621638021710240128471384637031913238043254921753592508831485048812981513181925779548271991540421318052046716499650533587635397243714997776147602997842607937950024402921165059753681959532624045382985890674101905132437489388416393641826177536601155310041990653646982223610713585676104721758778307096441507963259026757024267279143775590586389563850507144313757757921730512898990284259015760480300577997402273133987296300004818314700427569648820190747998133626546506021844569598462917052453409073138486762554063351908967855657819258463143037541780408298863073093517624265080105128038095944662631766076602935625674919277720212928697244895568967766402118481922614800993677083536991732901621950269698774290418803236666118441731710098607614067389485211262393627155152133403366238933183343999140686096875113276209797201039709033480374111346910635811624139542456010538051257392927406602498999693804539849225842812531219475035120868762074515083709015460873352402611927521868902895827609132485294002387645823894183433110717985589084754070058924756814925714453229471295084502408306066837568553727913997815610734648125937611206306346190446357037271481547458356843256114998451488638248428548205468941499756544549126130276199158969811812935025470057945990934417093651838533986557438435284169536630646103107963366274260872615615500558460748484122753377265112914692117882702867879532827272752909335756860534530194176694277503926000300021028573848661216926431970313042656567459349800628514811877846523303842736025053215032978397882233604367760322464474451637857460149880722660358311335225445639452437303580258835410700006520427098199237438024060800240786230024844533055138133673455156908164897127437477107550337848920830613021196441494244526726826114394355034084424522223945154104098895303242327376948291542154930657006791587151440809775109471505373970238212507545238364480530918628345121966068896680451100599540064760546091291883745912030820520860063017396916846789502813776929082051737427180861903236717652891724502539075048971407873871728196484515519579845881595623875889331302539467814929523697449945748479100129410321557406454528728855046444424250240805498142554007598836576976308981702278416584651274571770894748237239206714696322609675444774663576583903301268566154995189432849897901925990344467072081546820229590773062327306387704160820205576291871192921381521396596314333889994687044476937519894171262553964306024717994488257180534447585834379591301930729635140230482802175730207112901565930216999385488032410266974366114896282521571096876306196881376358985360997461363264569294397839326514693476427333605933573315349330404295109803414951393049248108061900734853439955856514453809611248367802998951019260458327886983851280543382702450452582444516431115393722991445432484361493434830368241494124896879601470908656888813237071016939315130560030886455258804255737082591130020018709491207242302139566036138810139511390357757877646265619031299912972029468508386768385541076094792835025446502540943138239063962487891929246832444634798335501885652477199360076984867219831012705762001923345725719173151141891661398433406488724268819956079498909025017933588582295103774431629398400772376880218202902679594314917057550192132363982876239343842838253995464660002378151240124317399531314532877011784797443124465682521157862661948790905343715307284969883572462362884985159822994001809900113049956131114515851511640741817498504742361506056249191789831301581105396056702114362415805097811294787382608633398336010998635815546666619093066720544927467010816938061269037829261776327081123133129883838192335471436155067030117573502933846718128595688625357737242240489191013761208354726020306651360476772734304644505489477708478162281277578311170873911463291371997249668881600040738924258512927116352285540243284685725599430877592181336141786458241086020316859175889316504542160788970043294180122961142156779428322857567387219552676807092228328602986830999060349055876341899364848844531580775709413402567965980518392479583497560875622255612205157608067434021800552255699844153727573060788188764823017672920850789964003549160425425661658691901117641733735347590569845146246439234372613895166252828157233207942009056220904670831138161792107296344073508954622794786034588840605435550411623955993915151666503149649379186689776117804572300345884583779780904302245530207089099291238251507523853539267515949453175799399336590169520916548511739452276111529868512584772810112498309379214944562769973622018412093063453378448098583062204768644977105324331088423140393479982049547184230458116669105841298419842489468657264375260100851404135230403342778691274890693735992458312170754869270249036163929944702981306667933801294975183574717112122546011279991089989578753862448677941985710386023438488315768856953371604559117450573997768988707485044030042894885750831980087601207528290317936830316672386237605187256253540886438622542851728179327838682426813364535679653140655356587009957055966378026290278831573726980272434616507075240016007471861594398272257851487531520107683970228719757496831169136275112811228375379795198576727168804848625238454458593950720051669496852708913325194708762936765205172934031015303176023397382545947142598264299955015182600474100406920174711030261204957889691656777910537519615583484105861127987717783966138957803750127566742847451440415682441209291570838561655644164905010440641355595253013305450616651757362032741864477962117637651461961108886458717423365909770644688975541847469030714411230305295972003758277562676967856977598005821106665430978696601789098629752627555108016503134143672945533432430306337383429066981585954439583421544690842758169790791299320628426914161741435510325520513061077509730164537624213022547542701417378205566784218492400091147398975616075484144194550605927923265191515659623337526292453829579301919439661928905660513054385222422437418815390110808369807092168309291787198860759051882356783402717454217655464271672485647657268943737501561939849425945959223954178522485754513031682241282937420332661343558228778919016099348070493859496182453924236382807095238744959020417101246903098001479994216080087636696053603047443318840917159098589198966614326011162767651328575654283814683677866172723244531321163642003031526303043357042316832993321454499354730423301179992340483888107960668500118487783614619132832383726090408428623889548795530030537230030182322257994969215006509404406859850310512394224471234721673950960699728480927933052963347440149895262412847752647343810931722387393361411610637220945399617673141607051081673383798439459400253181507556251586064564085911230579502708049604212373614912123037791916518600579686361596933194543046606662620268773937304495186676374169958997685690403508990472144274500929566228776702241811958896190749946418629269007199501081985221401162346022323070603372513836481232183709951442733103450933911809589280168526468258830345916526301991308886280644457164832552555789708992327263120749829121730674715824777292624898698930412739815868400462422424301208793491464018953407219262840672471062816164711557205589222247851084153075566174587216589050853121587329334910129237714916184284058501664207819452081840225270486030900664208684754403940480822516163753558458703106592734155636386003352619504418909095888009928941364003027189840167345897311912033690378345980095966494877694132806739375737150154103060083250490756758716544848275328557894374273226339866221104114397258551010530588324875689336638046192593783550804258496035066431351258568082783923434242766371396347875242775763323732676383096472376558386985927934562846533768330547848028529194290730708928999509218349017394028840586530575971113217547514442842836139304662565973026074919777685747390330919265497182901763853502629796501724799760464434792101312679705625477765514808827852139211494300207388018727806976725124649883762683847339651594671230449053081600677941963987665381997025522046792557278811606931605608087426632937071490881990745679203294103899079256660420024777631250141330585739828347253627214925403053003958646206583643311960759311963258144975901332763486672489007197440484594205716218793307993785838691998968709787931732241781097160430251071080830063802072706862055106932254469611334718147292603532513431554114362343969086328029528535472081657532429018513640327061947693789284672364078738556109928251064581056848589354655471398878750522052449483702116215626798396362434364224625675341831073290199100028527506206354691594648564420344462846423163860201859805285016653756894256669853664785027695122443761986631659775325798879964078822582370877545578932706746500459583729809129690206624012608720319604034014434832156737138180264218010907857986921015267730382451381850316042631943461478875811427565939732457498026854058611437429490713252054260161829852128076150588780197473689887085645642280944512452160407701957666732004532094351366510535041277619635914896607274039553302763829658270009639710081605553387861427560589934665208161443622819186795681601918839500706507134914784950558785799407880695380652924634434762943913201222925617375653646139295832585452942094756296414500748366190589727132817140285682613325852480381612841076425235212977680258848277607066694975309129695954017488048471441192283791379786469475966854131291790220414837859441702275181004303878152349280479947653839081988884773414477896221237527698449121154940899808202566989870558201919645500604699729528816224337253050895196595337626757366551068028542505970195492322781687856175178379302275004224049034280475636319100788805988275604742487592789440142248044184193264253113308441543921546281310715128744352505593097778044276806502400393427691923177776843658278514553654021220443581224581943743456680950118320999102566606701486028387583538036382118880989336267596810443662005243035786604904639310615188765733519823219332626501331548066123698318340344874210192075610979638568899542356387135466252903645932030063795135317250304617192088527022103291581893023371665904504000968895149865609464331068768310262887260119136655332839796561121341274259267962230491604528726036092777193878658739875357258586085171049321550853505342844568710767294574716492957910574550618473420892946635395237322752447051162713749466369502734269561509503067070983120442449378071210602003114740402407924792678356550726870393632894267769522720917581089677415073302461797499215837117770494262356016573461044190050809006208747176997224892190419863369025430251802006100531257243060422587630538404992112203346069229979182707469062773459273408544765397539855408350367714914283686049073548101664531610373420389290122695931794177693589595169805039340523646802032530542059101841855733168221845450888547731457159759539497854340384773915762604791070206322686645257092097206860225975035111671503701969860604291962215966471394917272189421530369677964837806092124596111861764743176545021819130646138349803778212144657659001844180374057774174905918916611528256775023342380997896613694256646975954181017173480369447656588172014094097752987143523256359773608870449657652195087901084044226410068672750370629101937905850331004638650164702507450334396500196327040985645913817548328445334699218035290612363484856571524273753273255040784098546068453167292295164135815789063318261170441704688908148287712757851855448910328143766722765345377163445940474092318207148277340100887089123260506091816619412075423133581829329513039289565785759523368864939931487584296975317721407767704436621172366027291034877856368854613238492765161683103941647881670473345412906110698306531750930676860806620098496526692035110913983454048101537852788750707429223395968769119867097666093421135577565772888856510120346454258941550450072646787214766044890708915365800364996204372813182516730180409587291079722241696374005392739536134391103422905469252757361466923351903006821963583749629760737211988813887850396490309581657167752024682428358737611083199817832398732099176959900542243039268955973534963788456550822071009020686197897339340706770537265609651823253262314799031704331954861942567540759867400968423885958141251295879754007384030104501734180901882828298697273794477783063045529764804327681895499016051983762184890728799436273416550150938470229715693547563813949181285251314151614488601998786424164759060799772167337549349242989920970027970991097345293431539280625185713111416729029909754008004431895395076299118929332589197246121558705958918660746960724371351696896527238952328840461034701760427514321645547332399403381949128632043830739958168039199167434037350978468428685477891763283748680860517597132520031337808809608223299813723066887478355141406777740953768500164611408134173833641334645709292508435084605305478000707709593319791548329306991293781094283126091301077094557879003918081903714373336671925898776253599712077488640612549337309694894537715011148908119481993553346797930768100322862827075203779884651132728560683226175653620010505899241750667143604074607881061076062975870434384900805205178596889640916500483445791137946751342366791869867840139399075411943474165923770343844569868708423182787152330159449962873633511711232216623860149309644564355499929578566103945023916772718670292777277477697835824216829633646989710842533811452299995415878565338206555112422421375298241034178880700166086469018346784737441552877257971682140277191895298237945850438343387295182546081897762654797738244457579510441180790714996990711943079697125166889514072565708853048636522958335929674738905576425926624092750850746399262352326407449411671795432743692665759499314671647537111834161148406190010785623225788733763937301629783825079337007705929221186615488761661683986333791839211099231614861526899199677794330058598130307148011465979764142208540869951725379624634710092253197526898259475616907408071177749642037144528557762928100463985960712919818539745140057147297621550078706586602217269978847227643449722478267686900298508869855715596760714122336533817246428771422439752811881075713884071507842411581815897136648568660790924132594987539432069415169026769081639918423992169024102814140868606333971445310369873515341932582182901904383535220071028558366151155100246401584762236311401854506072131901479987121205196746215883555927323354089061901892936709954668389342751497938396264296140658265251858999315794245982186574535513203540540389788496290402939026054145391678452939815537885684356321397542258473731543456681799078166986745083774079444770976131284722531484716467127263522604929028551404781429176241851616356251492814472283912748032215568579776815829162848455776756930515287973243311623078353447035586178920120561503960109715042149293689437245554507398151279744691501849723801800852382244114109412848862355415830888896313100973376738503788967920664284112743116734991942472912924478147222608813460603451520026664582436495521403037463360576813107844976462472732691134223799741369295219670328990504618754332383802863459067534731664420930492324493339077532505028957537493623764499922240092625722757506838808854700929296973443144768812065526102600935447046183180492316630446360600910657376920904903178368346882680719230679740587589188990881453898681330935217535964007613100929568747232125558019904836176396396200296213871249786654102244417256644108699282375457297537291194415854221172976675362714697372754123318097194626006998739422364118934875030630248777232519169994923576361729562624838984750803249504663478666366231531141644961820810664965239306662230411941579195493049959074335301018486440220892839095027389516102563368404070499322154770294142617857357838378474649711226970196575194011755789310247871730297848865238484855924217349788916364556949493182492938885527056876192940916713948678809592673711873043292699283524147170402662540908365011383911299367930605308744276719445475365545517351539607283779898582699550400537751017498300693542408390451004638781030912185291027229984161266522647040325369050407047200849704275838955061870342202730517582833463899547251819442019803569984524471898809151526174715580939892435360720364890819098209907895344660249785647872971812912650465408960686219935895495423380111081806723939352205812942483731016591290742144633634381380242836078886237049466534373615755458784995711684393628086658785882121436257396741716037615914780984046915842794139862902484690290044651967932265621724355435654698618993753503199471276519441681978830316458318393780488810570206214497914561296191458401150115365488961660168013685140761794171160751885223920739387162457601346302632252944889301850485304516887729900852253694129792358849282357178250217048647551842798134433297425740164882502479436114573878712211737719631694458690941010428946576702663442082500406319595677263301720806366408157585994100017405890441375825975733464626508400179671219591883768535752767417979837339518684638260733096078649593630112760044210129126391844996185330863843357890916174644200375232999485741962378646720888477628313986179424341240916112279494756378150453972983239606865009165735581648432335926155602866075240677983756272306003545170473186952324347959551642223641223365421628555418544272900020952151429308415249769137910801464014648223969116118900542327112429524863709201798507376242308201514634709488919231818603356136352956348985128017490494717584610224667194157059584837605908433375704110482081388590733962324267849966200718438468006018065028706122779091803514029690540750758379321557045880266439802755960326477045586122930404132975977160831122780596127661654751299602905616714178336788896113755041773395336698632972367486453011800329580487983111448730305851607516199767133885219899112642385295126457197058970781283661640595951386060854978820106157091990107894432199321622932191851406606542617233931366625733184179203996131476923039303757262792321435850893599987672770048109862636531549137546146111351006391279184373336023669355809689995661975913011923856686816579294419088531524477070311164281257769026410637090679417831705617617424644239605130371770040741380423735735463551376049363726545200128445222934221132395090446891277089438111068386685362948335146630891788731677809976876483325522919290736006543220740363422142638071903587386138630714075074884455527609578998766997824261526506398665880637548505046620548581254798136907542229873540771189957767168655688713186685565243031811304081678247859697620432458972945991856787833436742257159642466864201293269341153262124459736368450611526080214347297762996827786418658072338398505500694530928552109746148595130800493209041179108718769895390912504139141382247561049745645127635328867432311734521295564726278083430346028749064159312574203594000986177563813548966752477353555034212114743665409494810035734776525227393251436383985015100212078114259319386250949358550839009666056021262171549140049670836055501075154356225103579679693351661344324480182472876996898158787631561707505533193252594386763433420957938541236989780468242049522286698879315450622690495786585203239816289837583455406797155626989929959164084530779618476137318743323869344322390262963922922184563411572777312036513354734889894539462986777668860828626301913159142092748396606601622718658600285600042614803669676406675515840376252625226300768825311352407433658215817670831462455275863849309492020247425679499736636253819867186430420817483664832144944836956513239523450612677870609694024000171483346248518862981640412637675998125419323912754224122183630552478694187934853274912515695158549735722041593772791070317489158862314269694716533228203613405407680399109988623021607144865713493120153497220615872815359797836494459117800960812035811389687380004842387908238591127582426605835977658153946243471173284988172501969432065380506563704865686010413967643186122964324813906722855281255407193398157348089236777968944733078179439748448656780535789443787001068309410024813450629215603561408621239959410246299003649174391140072500000430401187216314261327345931834307382900275073376733848445404574677083936194222421908012355534447016363725619418542421311633144900961726852958960464722544548207948292723685363838724412793940566323016877175831740715550561849794655060044258790678038220672758726951591116943163201357608731631437929762740447058457374605760255320912557137480077249050199951434456837243944512348793675300691378889081497023708664779989325883238644532828858259322907911009211687844131006221520652429071458585212789987508612059440280441427870708986415872938126474836335422391005120989508421873446726604040828209001455077398248748016459377640433757777272807369231121352887116638565895656738754162254324636759332195127323864180496217116768571511370547308873497606219084663155720606995732186542398302559010854412888174677564978153610500801587229863267654965495976600797146740285533769341889497816860383195052404664167986407232172231442919018139706529809385852209039716715168833697939300656614305612191638934038238480885456013770901682591248050593314630714641945517781372739300141637910562898150029852684833406861515316613622578937628171281640142327629584137674311788148987560792294927236633431682212170320307580031311684553760691438202269845940621770151178810760995513193203706344634723289564581222318066167913104120046479481207573321073157963089728211334071488793852281775889891550869793270192769250867180653365649251487055245739168840773875212499616416766564720675119074380446355636910201458153679034510827232064381212219147577468696522329933025442017350592295023866315980923254013732758647053582539000819397319111400000839491877073099695526112497508764613934483217066124223632120607663521093498817104766783558264921370919441094560267269017807352780324651938857168114252762158368281468189814201606519613851604110001551786267359587117758158317014754483823708532394082533656227451453083743884754293595029336682193362891301231651151410067967437817848013919076246107552476688655668754274834358790006779016069969079989004431473930280968026550660675724500658548554257080642572082526961849630648926232589047424104064921560352084569398482581589366699802237955002071654685230083414031569234064449576578735558973248216124471340907832937962903085494891540948439730845601852439879269646081106738924409101505162208582123594515553652977473240233089742345001947364353003898631176708504643501172064630477325883978171468457216442433941579534768873935968420227381751937887612199904205630224752943423165814744748743367356355735382239047240622125233583082213452556271819241943279529326491149991658134171618057983094878361876417955115940337245466064501466899731838859515597402913682298442164354524130269189651454822057641878296902465582557927097293505899869106858553240416776710887671382615706314914776403848111300686101067535536330794905889518779276383360407130635718797108348738170567636490466854375370128039505733118089156753950891641853387467374216011208021593831233448953109999523647229436025646175241940829355368440696050110306376629058183526263407834261950038543938446501909854536923651784706387112657901634272837041213173261254724375039399148064006967078506453738011588497103441745963237984036616702314603360583451025590677526810476708128683308846986071059266556310869489139636374890632163757165905123318803569767668277199130188121184339789364979974038466556081051162814946851164370891043792312932915872987590012779753345300537421079489650178149980992454205314299253874699137677631076173352605849337562641591158613522464278556084285658792656068903949328209940843367231177416492508029756758700053397455462951458979081325152241418239422806278530693581243291524421268249838304034064169715763301330984113367045782572812545552364200678277410574697413173204908686584613590943825970370757167005049685196508383463257816801570129517376885143172688275307778392551035700586848923761903587475609579933957658361737325850242953786715696064558619727177217773615500688159174570265061846621351998505559777466325164344863418124549125726119939837171707279738117116817689915668449838947084741442590751511147680872186874552376801084736182776873012370823335303158670862024355151938268008509856427663559288199462474637086120421738489970188479402620796643727450700743359088859628833016230457293970995205921720298919846655446425428854608315335843638268961199680154733645197475813282526565758423179010778436319028147243723203091482644602381351929223244068738611298302052965140034533930465424644193197882557942944449064087068562926405082078477122639640106679798368012619103196749888037501505869825341215893530952391899261702305294183990319536906426432972460379033694171108248916393784670253718970003662434476232304267906087656391662613036898148769441307424139327272199332579448629479241147066564431856583414690082131272445009565305426138950979449714268752926449313737243036978051332833984480788438062535835842848994645602577011432507598177730227987969926356177407222488020009748491007818792021308977433362816671369050785388254906422144661222240689083175816039368555023773599301042591911562638807689817478513417607873980724223060282743980613120386530221930217284563417632678167576850407930834979771919744737460446900288199064956878833877487982887500669420900577248401578059348083448129400097659059866299693486193367114623041516883599516069470609221737558669632929397396870114388649172159591741111768202838239301148443775766759385629771181664569609016875529243901676884286752175724260428688458902239052174423734191716343591881269808555410290030213882884259174005817869313814978713148099951984562254144627013500352710389161048319241746567730404730883946765428231283080484961550723470501382096857296888843362069097809999721047134886298204014712762755324154410142954907985078570037579056106774753580393511819127858629170555497233735853639507235749364854352879106853665963343147652167387596675350124915502705998845523626492807028307528017193387066424361099077302201097783004541445368234138762293708811576101458722227267008574847083565572828135347859497039123599072380792344894293658726957335969719222437769703292504560223285806305678067872846795261328840903817178954452210577010495069975648065415799273713390610912563049765206464583921087557548617411926444639933457422512892368529682601757773873238356723256707917098189584458494966741507031609340287989972731284735474855207132603706373497638913655728711849589272103141578338137903513761836567562347440099370870276502758216802776885248260640324510792663744475565650665054794708041350554397440685462352611788205131896072161863242358217422842235047045341820797698437399202321547219450155220030604683494837132589829287052767274231734417405610978471185216674345354225315964015689124583978193575946243658495639727642051451380676365243137815616863231048471078250315317214851672405431992767009857075219047133269801383392842385828480112765543459905821864311866368895089001679209891055471577419062550833501635144390747544829606773582192420254996938482129078060813042251586446324528028594548602999294684381981736714238977300630909042575384719090501755621013258937069066674517987440702606297795437163881924045866832999440484222981939621609038804545716650963400923665877389954170390729213047413875083037824119923139276034762486884696196136260985306460145842452768954027885719439141957263839103110344163738220821271930473214523122866486232190200035064897891166430451679911603894415685775031605038518013562591555731816797198907828754380034653033412223164589744811616507352253394783103103911859190798920341896697787941028631148873087987167671272558990202064360974012398582262544585268202631459608643600592824908501603847765219937618065227414536806713572116752097927504536563057146598470442637809029474385039763589951452373131455266430186895979924562871769650646846898793057026630430223875724802498503272491475715939472728050658700879862123188829039099896525003965446360401488999018662712280704229755561878593013591540447275124298990521322337412264552285190483241820977119947378128490997226880530731051461404185645560923905478379903795011427902111500264790748108301121684576950821599197651312333640807417652054752376154326831026963225336481463660400844958272383442188885442421615379596042587335467192658266789288039461510727353890714424145222978897811158844124212535500415400248446726964088231092193535010394101971824301784033221780321421608313914496843223720439290841629526092868223099542976163501342581480175683818934837508856047811418873637930125871499871707560506968234584291187239239274554530602356171407050223143544533000915296538959241475872439405447614001954859649240500355110861911726693555809095354286901065473373309887557968750714563373476583570030195291922897207317771639646019533533241559614002335862775680452220968710840289157191072197826200322895214982523148112715193203239994357032604858891611732296415442212121496912819476875185726123630473595367163928066104502022135860453529055527702026406765469711395502666597552856901934009550045241650940772671958114948377450870784526742098508194892453149432066833834651339950787095924809851333920638190466026755301173585189302808232661582612743634618719231557568391367141927666476994329151561688974698074040187158321280775288373485065837469142088602726571463126916282203850585685029820648138005509977168608499769710275410747523687687563328355048372386903816160567436083992427279924363931608659357824358448969824553061587729544766656883711063134071245277900860981768434938916367355119009169451062361934866162442928900553697361120713288734416671329634342885367505537208624343791614032806952890078786113566671186705696424376260990944977314255306095922242108085370609777604839091481733056853359927539363604536495658479654792959664966379325479225550854764400102819692601710080664731680600794993539700610689067111093144090908871911912438761663921601454220616880775767321458318279582837254997050333222733947813133041428076388856063638745853249928047067163665793237288685151095789414895542584758885036327947493536820057036708090704297671186570248507195262198226219443606491867743000412468307479512795757730318316755207230404294892604027920272241829871916486235250431053760093735740476932903404397443366235107243663830306649639138273211316301122476916114654934220876846138364419790692839989717111004396810120647355794682562623699178744948229977245631644392651727705466392614647835268437149308229454797769602804381579838259653937672384837582766866368580698202807986833521259834950020628445208341702361966012935756752075633857234905644461296390576066034604083226348061386065311471032298123471258153583855059898324722709837376932549610034204665623729865548997248721829592038523060556278661313290752151242926290915091402137359435220021102089799011633567616707422361035656354519223371400088433913823366593920429608129051885491984198455425164393100690539241127108313891003343773631774439489786376466938076400785595523833337933336508052436120662200277923218678042275620420822997363284409636606634557891885031183320260184685587407376431785934469001303371165963965624147185013775212606902189353513814106250964517834866689529238785274412675574196081561796663318408246918782041694741115590374216719439298407665158234905299767962905624547962684770559309060512121185204557172117416838051445292249725017997358050166605353548929940907147676917600518346130860171882617877502243270459264094154393223853508508950046638236277510129827899310262551320622558047236398398614190976808940063451501705064885082643802300929121448186040710189938028135887486675065180346732607966733502200859738073896062734474062339372121509383167762076915475422768295567537438243742639276261965287592752581522309158709641958749459405016579643494645285800164709034469161078742163520824117713081085261145768251788308686076122168342655928283252635216056047142245389031660716000077715955718622344958450321758281356285745867116092627632710772824394093468024932783085941637119572888410180889032693352012975816042830260659253033502261035631487877081165942815296516915788610322472847315456216830561599702059949520742542455710373407246116025706352163818559839678017190376495729922981813321977750378442087167873556189134939774632779529625527556501635513118162564969619888177270363314533109199545188650312018175076409225925730742124096766542619688685961973326176227736361243541266829247289328178415312582461910682500717024695070068481625279329767025997898800490054701895838101127591132579310533412810021087533416117035583228023098496941870433728738560370401094045324017422110752973379934535579613578386101747058517581270076222107824186205570279762795841019075757957348481095866500931817738578400365606616494941753320530942329941497859986473938674424379028077462868138263472057415793641073763486956722598509108840041418451050486758992689826008417661646397532608338511658111098185758132861858184523303551464922640118712485943906026954672112747989761229418895964237053149612582705618503297845033788672350182299191490900539612847846872748819530363226791628521037967806899770811350359806582923908475749325700606964382041086449180525412735055500632615380903032411324041513985828249504969759386713658589909960170149897005509259242738432136041127913541620640584540774944240996232038170497889570744654298262215956588207762118930437583457210143112365815211838251695159053375746037630958381956078215103899620555775967274725358000213362580805311219388441060245768187935089593812872266671438268918367322224234665620674947246726615432272583401842182039224113431130526797494131871914072738255832480896725025927692161163147560828814898928875792521400990764021272648270913848966872607330698957853552810575798841369272516930748865737530703196926855337044836704305393385809970511166628406555538358891212346017403421286208300893562604337384577207995635939634631476316074819204073250068454895923280745190563351120928052521820738500369129338564687932468353787244545981052522222961026025640364572383276002211765763916094043041577393413108230056461558195217894708964431444462633128148282468955361759324123085459466923409875569066923485400324404262247624840645142863964698947005147175320006208328756093484029811082170673246894611463611166976535023423896498142311581652189276234582457124288393528915355525143247242249680456758775294215655343899846674458133824665538056546145227426609545695371628576840380709698790015613068590461424179143252498761929447652519483053108594783052657367336582693194445821157027846448285488445530762137852674534780391429266594084005104810988975534843076501834379890960610392589485101749286641204479861746965015023728405911342170840383899274102074320160119035298717411615638682804505207367411037419936502177311927137573019578663220163579253404767478494072063713994779199560396345062976795645068991755493542559373238015944972764196527719140896348590082938075127513396622958633610601148804744451807344080467060001767959347369646287095201702069635492029072438450970412454543941361163229784033975474137285706843586342277114935251919700677855088598237770621651673937205161565885444718526531002735470367437299108325190284594747559312212620609801408811495135387675360678516207495450531281490576614795363110851743318250308709009003356551751880482904042772178338088973264130316605526438469907080504791134673796930616968925572701214543189689859315825484412779216276234727373152444942838066585177158203648502908047883376105582852864204924455580007475663067985415738538063328146323999582663544843488664536237983227732648101222732485689823097402428491540242355944714508473156153503149733824594350461920226415123446553305472722878143929264887097700868845908442256388580105832470874428798224292812895154589458087964942116857031296047512847433046986347520685644377991315825616450648337132522948589923962346436367554537932315251969379878389877368554068962481730668257554396660482182087830857843867434045933766537796703149538860084374881884654183997823580734153438178456380280574963880608043487599691140792003144454560523457234975019401202610085712391747932606315645187195171885825448761016246781716545413678769308670833114922717263684942291330263019594091738539579116102906799703689864613172321824211976545254832773573893416696297356439756585766715956811023567741581669177223563007145493275825173066709132499176030746392361828199358020360314636573397942941523916788641431496211854231826333691856663650195640852470404455001367853660626062754020292058462334835646601064141752066844145334496983332612073017765225970815100197993156052100597789595985879618465671430350381190670056716968432929358716514640202262247536502812049883530096413229726062423682817904814819789199276496342335269735535652583991904367798541194641915897935098678640729514197962130442060286039242054040961749443443373592283740097521632276663631208026288167884673991362626897719731596858361487147745236976925802066932411499353063577583010646761785469502683097417084011655246720184489782731495953671967570413342038291049903153214826060951281637039117610844869900805677333271340493912110414878044428714624966713382640475391694602161766418343481816675560461471103062253353859542824686119296977822396938161338052070931730008329119239555397415546954385954766046350791509882200991736106809286360211716574610512070125807933471372002281072398259528875865882386164815518993057719706793033393730886598811991039172918354023536455993572019108924839747820347246302431163807044507939073393114309728288996905736816289344504269490387078986417142691332636673004041824091218382410730923134447920725269282063958838572865023529988297681091889666637733843307109616441256033138444756071571692305123623110752984781024411782381361407818234188394376936617226001884878807915640240104729253741384620861963592442481377433189786322285462900786813328000381166364219534371203572295253101491454859458701425282981122374248320781503057703522026144926892670945126615749958938745163801145606740129021075910897551976001519164212121759375404807826044677377302508449577830050728167650044727166372992564010116544600344732140680042724201087947576489306402049670068779400112514594711063176847237010170533936140909541569212935251579911633585827063750652841096305300516007788383112230484225928954780180899901090822170327098848159361448097806834340256724299913503847907472545844551817087181194979172445578804034602648048637230959227246292256661768093379988561729999384872041931762291243109162980472951733496876099795776055423505688180987997355773326816875438082960803035156613514686115922136552844669958176155672042565617453549024658936341442600145321804808049093704067186055772465439964117302956522129512088972931978428502777333047189994848269377457408302277459111862410518820385847867171572545082507085660777424660227863635087704934633952471202948953845032391317341072972236769728136334352696630810390068461170252094863758772221568116282289658500106290659039111408341477598861370444678153249372468832473853473193338206032679461213761823765193294625251659253238850811921375491377867678254853416585136921395268334807890165840024220184737365935328044066704853760058011701821999889211425078861603875309267540311220457340513253739967555095694669908246277236686028045350474295030734742876036246923772703680147772840956164937623373522797132341106043984542804951449423700102772010103593812063959811356634753036182343932458823354567257966327243542420791378338248314195725911039642148853875534218098590325289310090520316845482240156964255602055733994233435627734997326349959844207026752809131161532637621942439847503235003606076697280737240963423064690527501333719377001963614513395684825403207828890714374683763180643443954061350443924940595505868815746400997490742036245301770087082953476498950595463036463331742224989647674169191733938891316734561829004109912271350345642742558321412146849383012661988955992633538901983443193656872220855247620605390077213436466533142090028500546577587463166441416203088770212001073298702964948264366019015119989698743601816424030557147955221333285146064773703433313778698264311241273845168499564349404536833409165937198264854482390236395226211174835468460432447711387857930525743264509926979143198601696122106191351604040260805888093605385779004962081572383537116961416213296012453679546546685996859524862745479288484882369692751075711382447468169792636034523010442178344327734341306085601648203845248558248721688711297608034422434080944135423793748182540842994392795098391417651099606287976354150957116489068267659468346935537568660332292807976024755789499000402614801332693709683083120924787603713415289430920502230433950640459071907767936348127528291704283106481551222672895372297374968817337836117252238136338026839753800229746053029014801995466328925092796035213214291301803865321226922380281437587438161585680927534424011661102080300469219087149981982024182375317461525050549303681057582045822015292877895335864279143837545013832894843735692456813531392103458527743275962135683865311207112179668571680172754941691946587113544954129042618391794298734388907849226605435634230814124454454033003369893562027200409286446527330293471718244239008365417140914973001741584940099801595820180269869389287158113558398023170545759628476263134631763173165704977948786624687677548497761496715838523728321168377278967670881754880530598493342781464867186454768234430239158218732422404805434849132216896651381079063605605609817953113284797795027496053428940165837690173275748817057026752755253183323461076573062460890247424312042502988479575856158241798207991853024874834776786271196993311268551099639804772877598458975445814812793819560985066779330447995929076338531441821109794482404951384540109628768640895759848914700815230509209187114850775011444422048047097455740376850902619761690370616098654586286338145381939899931560033379493806918724185155908762808463086996110009445609964825098033356417729710912298699589356442700110129314053542954721517604781986376827334008933707250998143435891202286899623436798659861913218312080736741486072191644481986624124358200082195676868455201632454432161049578674481583773572811589684989563443517864410400598362147605200400680279665166032173669722323908702947920990760493484154941738886649982670678602877730681381653066796261332858926837781075555962804234128238860250253583928736708569958628037352780607522318611034589958158759125218769372863576329811914641762453518977942474377286696230774874305918232441895364252450726412063389712420933977500022970323394463262290963409363573119952350928640393723034357126057351564869571697528425271153418337888135241804645952770936034613855842230932085281303265009515375462421698751092526746113931455124579267679897793996611110207057117880434167551973506941288933671740356768408035718831042479407649589465256896844005537332413839116961584521455986810728796350084911752867180258833851279611243483220173757451191176339867293556000347256063234146548603139253237749944074310214940493052290396762815118409339301615829590120784209943423893993758947379636450706476833963656050077472306997227121440040878085571730678886626400030864211427289523649068454293214011932930082541202586442123378130316067771617196660631146977355698675366277356545204442422620154414687776933812183715030638652304829089088119109969087779041024049739650811995124628652127383545088636981098551937348216192151857737147614269910969769070150599598539718020596195047068281922909486740109751901827329033844783263528618746501668989528389136777301012443120701950448016666140953941058150130506233217888137224307295251869842094347248966492106231343881185887837574272143526842992260855494609381997209960549757297654323306989065318999836532910410867664678611433468879035054715044106164793778235100358841924362866061517165219315911313093980280745376560022139398598475755159314212966167373402190821080075603677872100816017762275752584197409149917024091987233151214464084858348869780527705502450406247413994091652444927461023410786378397044139717681681382897713172860325790085878134885677194997006171354823638197155191418787398078983605500020075298651998201410252473607084349706025637772022457963249496886029696914994289518808012454902961516399142767653054361770323992770025762859037291402741827558729668000442410480790423751243527878240230226600988506216991029982909400267301316025581201520436767841744359175138053466770482622217301640761203113711663279321127192106508102728482843022131766494465142591958975685646305004285552435185989420517529262307652988482551906761533600133743161444911549653148107366970723672361986219374899187043081182841404916910375772957283820737117168665402927372842792482544987675263768130467810959179592348536955011794593573003013637331934734710412166344398502342236958309197839344906986380143385992533411725685140000138782857242336423724630258433085890985563203275441432222206600345376051119567036987983601563069928889380315955457714960471350587116898129072193637562964974202123713551256738407944633242117634359644990227795093270488013465774558157237095267372052762375644303353386241109938085796571271097673088366887367982156601519960708020946554160744019045692005664819397316222529689576871464933242745665999319343399276985155779532613878096156422077509026103761175336294134100142427630241755178140458074115386866745172984029140118042902168888810404331694328347617883016533887668241836809085187416896495430136403369212672011698742546089645894908909610601485227899178224311411165008709493001487578204433827770763652848091556220967982834269937984080095471412919831157207394315567844052156472494619182448910955255179545608938116307375171313433663062305975720045945741202186416753939836736212349016090375117203538755495437244766999956815712967343614821614032145238232374401020721974309851448748268429002063807998869958886079047185714586670754133576900336376231665057120368903541076548220579421853972109596556141965551084917055380643741421758384703988042425292292913451530074082650516709648836701848689055622143721662276568815603436747256366877090397756036409022824961414351365759865908948977993750461193080735135080016383552300369013896087755819048282717286112943071830040107671149099955974614277063421789266731058939622041406812028501005147847685566549339070113196855425572964960698331491007632911072704663028140153151494404831483736495371252579741176561985696736651183937214782406809785113668598515276742882206418402279970830302529698460713217693290246244712315966784679291297326515517260728704634914241093036773388783499685157275992215001331513990997185685610934593578495957484533887019182963131461870861216506413069651192408160305006293988866697720509492524528510072626536285318620293900804565781358848818126710408232117389171330219830123461867378540416122739771793323745186574625415651214919608735560628233421667338627552923591497491294290900808685595580219121252488449724059464501171064889799818481240957261059995268285247280681093567035238941063553988318190112954118424694788284450314699191401408142925630830424647829408208751603836697057496434577169099675165162895779664684585647553641524380642479656930671040861323254222977520795696037884902549758958373816455406670704183262021610973427038582633454489157392878570320456083132481743654024427736364256304545172379590922676789141127814346757256397458291050363253877261542800163587032109307657168743963420463980202602955540894282617002087019937023397132155209715046778809155095671816675125424475949825695429042170916860815742752290144784087690171961777023393863565804859147108331149570531443924261894336573924351257839108371293459753733238241753256662382151902190229222476761100769249784953581533469298615310885209559014770048075072236885716345787208721892099473940093542969933565183173804241211748602201544177087399559017094145941966241805801016736338198052780215311841531137939660031874524059568204671458574782770253433781626845493136439659991828063794461071506487123305829313149259054527376325439099808830794870094947926606683013312778769382200358316482064034215490346823828502816287848222352858675224534645037480491569772410497137976998521935951416241344778880165970910632844026282209459677711713747827201710217344963593212017300004289966219648806687123809859811051491793299053776119628192654852737758555194735999847478747667767989619002364380072240322615509942643605865964328188814991846916581387305089995050532587096130471263621354221656977490860487058100732148609009641212458736717356905539902238129359820024068621365317094048503565945245434220373329267056793584051283664816006457963946317893931647422565848065695312369055668290185485406416558390641050881917874207621943701865821609688021571994378625431713112337702022105612245959413734889584160233834811296337974411939665277483190481426209565314689125629958098775022875858998007627167098138279854268618258783184586762303268904155731114192238609094887840005047044460742166838835183971336220417256195846883756896079121082627739935871887259254785041657385506942579523884966516458970113878460781246503171545757358868889256069211954509283977707976358801559605441121084652903616169143321591336831688056405013327275042116894888078228124338806433668721395688676202739520629940223859642813630383226370159550643775488383263126338123380752835775177364908635501508630180453331475740911976275297070257925049066034459595811263019304234850082130848852285887973133724229166164177316493235013591771754176546391957587293434851371838880189563542344104488273281672895737499471327758533867991115695708233339242667145532834341894109346826918824610054698484259280842731506905479521918221959228052315923925301288413510827454271665996772209679150099981028931687930188280512211357569102398982766270624557426950207055354616780575956822614146788697784887907559006086503812814338332454513317998638471446365235620954507957623717643172445710551026223309653954720322707331360272227340078301002971813070715618731256313133833946016149380662594686140626749982522458749943253998965878347237386856214578668535770756096418621277263268646788323941303021656126316228281572862378107986114539917145827582266818140531399654864518583603998269660368834031334962375041816762776471535101203736565947519150774248975813518941066097807474391744059076016631429039596100046261605029459317231624396281463156722144317158454773790278384273734142000904132132403631948411085908993430795041329580750566919570854580975496893458538156463418624062945071862455508147602668036726165468553474364426561540574389103429447544713509224912980978240060183641669079603416890486250444844303341192678711427432932050120205190029870396501112551072220055110024968609637586435247698553672848948420543311185447027850053530882496160578584907022056460776124107488733873326740024956673307278955806606599558520489848698042565320228247015414489707577363569421664410992829684876389614828465317628330558776670711936504615986421259198299394769331495185978691601497181339509741291092972527141044106706840194928960505400318982367184691828943380898635937899610640326818746810490874234462899999941790285968561413894765098657007215160039293876365970985234087865127118576772469021999149603136930130952401843641598835345757378744610823339454537483062904439018500190227724801091870009527521285648246415601132219327990419196605923284393018539824967513470481127963517990313505262951853994638909981375206791590913762341729650537809018408755739417557768509204482555448820934129234503310966815417656380931225045592467557212212054900964815178551255549359650837825862836656711401138116919676832133093440711887865243775189652450619546264989707643221330442478088515592007324630608191772887601183020795425654458287913798551210263619985680784497769035416937178831198988389338221589997630302091423443531138311941968278279472691626961820043986912391531171130995039261346913791974194612009320830253914414989683119077494169194723088473986126726251266927438560835382708611964440431176394624799449421446429578828142597280402367763023288134154989351397888320483697981916519373552003349200129525127353183016705369547582064271091203271758495508109379539063090721369033597654219674002494847486418655404243637464439173579485777987505944493034377448974946418495364306157735220993613948017087475474743826565514880869308451251210224027465943014373232703604116850917862162398263773800143810713011183288847368423449338613211512497257876438953812235360217664357558222523641978553924388412128759466912545447191431091503193857316518508793793443795338335232264097553620266706390158366275261900528680803039251575902719189574811460073056776092670885331576896079116092192623364136447830365136427424844942532011705580313203488853032384318827483018374128817050608766854585312616074533267753494059500713758617385965009662095307220079514831635016432248388513830178483757966254803014696238972110811015290219189016464604019777497571276207567506617441637777344569949574066410400988337469010287239301812633582564127894392178374956326120288639547460877630211944436225288476059553425365179906652303555394286891365890110327757927144175358918180641856587755533093609596401835996326978262315284791530315790668010330602946957834380505496170175872019986860796477966260781977399071023839079921133906534782115504318847822543464458115903794702085350367845529632334187153205391278460982130440894274672990956764508931148421330036971189099133315284509631427396509334650774117284754242985289152541109404062653512894488575027344198191174089845708797714273703673843444487194810083758496207866054872936070069671224783018174808158194897808366254172087300463279136979406028052124069802514958782064098055819037204991791463462323303059142533933277651324318507502300557786942379031175918577686995652345057499254815242669530422578775735771707888550972727402314568211663037292147073120486132391879358819359948504971819893733758779407767504681669584852758636777855463605197993899969315358425132136781167238698250414179908922846898388584793080069031780186472910829124715868620512677879088655594098943121395441146767109969730717892448513654816582682738859737252136356752013210979506241552939586376433598711558904803926922275369193762555669372649370858263964559349201774347650740751408700806876795499288405366964711847313697087791427496650615569619205414972896423701616596555434241171224591162935526251219811189796594983512487800872905954322450607121113123100448665515477083162388344380641765217349128025919476340944031695200678297871726126093258856257919657153522127254503708198838641712378549941414374451212031209998638638307128267593584705514781298839135507117498007751337624036235225710047578778340669641928758497661433202076298620492270784089062612985048584604083537072645767847436660716080800021708309625443723499132791491948389103135291044155000881755709115952494302058998623511228107777963831830328290394332570212574966440652661106542682904173030365038553578058057110875925330933887667492875922142318675600685314826835132681509701089293499864647110482240137030554500509891084500265808934585619462803327440998204405923161503114326333311707780194923718852164105923492476767533623164054670022349842100255020931257759757506226375581418437510673059457354226949365986742911625518491536681651544685223029552043208888766446411436846779026591982313146740576579763078189277544444957010167394205850733887745286761072388893600690426198501378979585909840689540566339044430192060116144080266550041219472241335753742581457806873933975146178070356382878222772697805472518133722561246327604715240723651078158216285240055619151017560740165366421665775607525166708459335341065185721226005763497296014369905877528568103395127198881669528955632451505215825726129362839405820881978606322367097015462469676911419357277053857429672377366297973664233528461061666045144237555546651455325050073301793968010003797759809886059349241210049808318760654201664665105715786625111595399969906060316263625229316692944101813050518501714398380639346374988453107321616270759992579587145627516595300189370129662561633734210877883697435915988278559956462750020039369059176316243783565741190592099518309440391161688349547438476773304749496000265718596986456159875350848859122842982098092694438605247567577077028500079707040764985694777358021658842059568010303457525700033688842519791617448694698311688302935281927769938117389474970940227045486689224679152721882883581622316012706798929654711564958990794965533900728228165971562116000170787534979981883795878377199558721640049798372374378442946904506819753467128421696755492178847597272368103428882877700599805162143265891876575548221659108410737129403643198022544236369103116405705812378706465936934576434527878914203445045922658552755288454942723359315288774438506990794655270191346252028321341372597736642153434784261088865112483477718202441605828429682800075622819413873577105452399991475121466569644077883752051429209217693761922934671543298246299642858150046654579457906845730872749067102489660141626839867653096685755647621223966348856757822896511488768801511799319532960726025578439720209906931569053990706790328273069984699415721334078788013791058211439454385290213848720329590790156974814232845470366292400582866141022844263083931727272937244772325989773143597646364922605292248744061029423448897827905422403137859288895933158581158721088156610719430858934883882660441688101991834381568688057210024559601923110230092244636256406198072753057649821175091356266058205291474631871674673282508605401211848427013365458475659876357250430232344506505617253629110741311223701769218009935521669659321808060879520292592444525372929186827396892699928742941990662137200392036436422230814545001557014563802734206527430849626450469999439712474836953543081726305640971072306513410876041058968336447165100681492183281522323201850359334202826835343557394739241852117173504313163127332499312597852682214454488158998347823494032221829644010248295052303999340775645034917245257940272707334262202920314663292700702901787379698753100212958767195978876363069620910102496209891684207913132467456731936100718304098927710071046762097615143916860550592732842416404698015097793233393579740637869448958186116365657221523465221167732043317537937536609557768154926361288367146551547803759429624030717586623153411007956087573390866013473658096001805631831655940903214143144362260868304238401228995880615081595336613592894705900733410560804274765022474072482625440522780326767665529145455979618355881738189504272266925768938828027042026222813121680063449926615976412769496234516308809702838220229627718969589024417104137175523390005280022708709717227483961397639759151095286923607524988577321217488799817208997535326239529137560377018763539695824231466177651585061869217785460212246960069610008552843755525727847875728039528173588865067561999034641284478993105014020316879126226978033517414047187975918025867449115482564884697533279493265034915600955552569199400311681718338836617009410171095406616401092254948618105985263498218229560267318383895623434048230160580837200712748908478768770191914838921208297560529383178696032492654126466857460231176196016637124276066281831771024424531574763454215436552081646985530778074981268258889907972372196849452657136713387658392168537200508507830747747297956019500730461310891698968918435939124717550480164664654767754660339325930148267394676672808585693882667558065321629775769947920500940162660611430941228584235220192124593488749606011796458378025512775884900268633146361550528788723847441047966323507470839271977112354853196103064489319776714358480984789775723447531658799860297044346932724982100394610767965823962741474408874236097380884176695361483455164577570376531910000803682565641623341682457376128730754783727016181261340300607581545578771683908436837114402572792935474904958613906084811204249743418927456422770615320328135616806737605794327160905766086334180807911950536087156776938268363199770717858688723220361291742811130067206732306059671301600486324443104062343493013501972520248322517761595290006032047040842499142415143595456528094173628301948599442259493780646613051939409158274103141901619563442145235977107690929240749085296089203746112205717600082392096554151525869880570482034772019020135886949293490910541600274509512619011863603598238388735984609591841884615293070015359482525772037057389552988735674242614690009504053907990427209671237866164950818362253117733425709764991874068524737470240795082956566929976472203935285840972238332051977610810900639236666301758342634760030843405017114842975638915021776742504924630052542372346647139451452950671849143101868570642741752440160834142487176347461030640591084709361771290960880258292016689624321460573187009716836841423267438703332534354289992473585520388181207109753897962578814263969038631854548192654671607209641483192584190540312861825542543682030893374337684428167170342766244699326676290265277772992165127205267196827668862427697874021164573190097847331101273353117781815563647155810004644564496262339209571648623099661941705898452078286134006285743538305676804997585912338934663822245053115369875243595496606265114452252620508411560642249192798421525501874227875832575208701414099436300888090481663723745470749875482551214717322813852751972518753344366605164567272560167369883133040555353808690724786311236913252036867326490045783786026004104378415594757057294058989405532016319827341600690428970838167708232844260958859895179949537304257586670433303142579734691750970773108355080111335708470410522009456539562393493041953001402759309140626346936301338099862896017681580359507974968167168279710002079533715700461118166500039484117981411155851284592164710880325389262037016856060392982443360854281155590628171368926671323466965103138445829510661106616068215892371415147932172324059868006160458773516779796109957574631773923005266103183421061862047960251346048680571347492824298286685163396387599655754322435082689321565102901791878189978982493997203839649474571299634694936763507801553704934394815010921588236087564143651870688090319762105868665557858758220610474301852056298282847514760770412311094053992418160584262412830266244188097393106128791779476866081225672549772419959096120278322032035805375741433581594997729281998657103085598610458974876205473399964910880634697952328004985149798680643769213694748687589206574028602474151668712814562613474875431771343856158442084163058073342029666108510756715844292797986419443099042717226688786337124681205549214743052076042770137720641143393084814511275118942338209721090247996702539371250619195367588038434965020324503208024688654072665735080759689999030988871128880102040010603636989589253071519100327823308059260007409070643889412355520483824380514296654995912684199290256388253685355264216573427903919572497033362824835895335658976476573090834425432632995702832831150432527384840321743101005403231025637147985761450434268167033192989034735673764532664591914647982163351975498828893755070557552228943501306093810435635242766215299977323100520935312865310569720622942651243164672927823068738262944454688630081971330223665600452437874561579925142398034959366715476175580169392265384560512384875343271689805098612183794799425875782945759086547292943615796736445899159500381427861196750589855242525450675954088249740460666190854696437872190617564252153659741033507122157985316758150066868895211296554595451559913319377658925056792811441097686109933287035325614295986629617559820381925906926766039753118507557204363471993500826213683191536281423309706703882124424599006395188721840601755597596898783997410878257248120062240502867229459128006745765041218655797105212936165530888155176271337104548059577707023302147921812210590995636319324622502533856321005121234021640535387971650383572157856627723126929634164106744834618259944271897190508182860436624224949028531806618332588370054727710254370974926683413583968679982714877684693759586210783619197358189786411253991165253013094385797207232846881493889352698170903530292473390765605208120326812461999457586123860913654306034978749303936013270305590205984126827351874846482426486082001887273761226934991163354278078157074242833438019167216787680285564883626642785313719011346730559895515938361488184120501173003201891019908163755804565807960952923366402518045917026720265039032403049455270702522781026938328973250089317677411563282495569554955555467881825765254943465110689098125702475230988774529090056300642899807955903883862983721044232463807906256000286496892199199834876818109983423839067126375445893411929266097622893589246968167060057488693631252532698283367977052614555067112485093608852415250771963762795325103754238768321477537619095331498254531483350736068644049447453295435032498767586731290389075002197055626392326999060667346190963584954607610513366468704582109275853616342025036305165033876724837450314843234199595689018637523400643895372143879418276385225827968715556228743592673551842544725064742338281900695808278834939283536683105256328989161696121324833777586737849845744907165792042839033361977609575003830412445203010161988796043319120179052485420555166489968207456713467026981964983485213988696317161832539367999870676955032276436793726476814985119038199206962805727379953952259462394368529615451391461811221303138528745261182041023868144307235157633352033693361498330280908178572044749061260481750479928255110945692826015124669540602228240640621263233795300328209417024683857744724803044670835683115093903686260704876808855125592109625732851164047451892212675233865042596216198673812330948986059759124666304911251287844455044541940085556963350578246330743967495537148794512927210021065571849204672571853449563510253928215374592513701499464337607371777815592662432748439790710820220583100696290423755676592557130230029478187353153013789478376249076642866349768907416746861709862113322396796541266735940654095211077778084984528862071144197659789723177005489798857352818078651932542391944375647077278801817327986907798755723414319221650746871248341641291295939361047288181496032789096537015544210516460655914273447342946603836187304106996836030705278679249982692092883584740400610257523985524970993128973463984730769221796035535343513296920507482553435315196745444869129710535452279420888996051658252611739345521565100103068000726024719040146802822381460795132074476577163059983348741769392430178924154613560318381273870215298608512004149048609550375476128732902249069503676105642052564193437008622219434245509799791641209539746904314566927150428796558333256804716166177305942577481095580866514123283337960849738321661585818659792393119488984337787297990544523345709570918923976526391269420803162516319568972395667627383257303823477800961657936883875060940255001164088788143557572241460447388774473122363032296359295953094570328257281090908947455754451830490433402324190645180256262660242302386900576129945885630199666739202012362509355004720145168192371935544025691953293290462255582906245529780236492104289045027223921096289665230952980941611801214076119741251496629370153648245596573312669201700388983442311489513562888552234215151191359278946446898779997520830202345610768744647353530494398406070168761229556577482290455423062947004117669133239117204537093678505626804683697976731051921142937319936870264957657393313885122942613174081498291477513405805623920333010575223146466116159633433446737405659977525942663267360572796198126634630690037525117127396757881509675655639720238892595715200462435578988539953408006289684021868406249474280317408110685252171932930224802500086250596819513151231150784618095272161516657051701011376204565161994848496900277569146241690247999562723828877304161082444044011739415224912876534186943366318921251120910614975579946777329044289753047467575101867397636272691055160835092799894171734523927558101539805697865173108191234249543836187921762547452117897251199322194381095404432872452091655849234519018238903755019235294583469851973049335738200259851356138872172780512385859325276125545230707434863002427594453320898508524035651148378523882149917109231621960168947157741340439396860539574223188000128331106110926350711170274328253847696482960409769118853894042713689717148875154951241596168031828603763048355860218682145269392170640449917251688132343285891714856593937627322385364230152954652223294815137166848094567888836295857621867426391082520280438266344491779491193045858679295763943266812622384921846796876515653583198494904657161064042787753490795993003066608452968283807417924224528676586037642885951170104995371310256161247315349619574899406993665235861310813977797984898014438094131245374025501305349580805092651024977600004478274669319189797069544959435828837868006328352968706425237461777601242314099622975046831459137438785555110933341372811433415189721101965328182532339660571498235628615239102348401920300041868334949522014272889078528676842833661699969218622396140566324506755297643261239927977826005429843748248449691872094531521280903977255954516601498642145268510783412697312841451204472863801220516334786058076059230992862596859035759430860093605757322618889082336364853551916023722603539089324330581983104951198026695624297234594520395616102229349356370762926509664308652333889907750881877945235655992094733168921226599517389766951394266714018418956241948844812237264726722513261049077908707461328779551690451076607971768077001318464569818990283780729675436177805522547606663232084327315100393930107331938145074331565286994278180686140222882174665205526853612526580558191801661752868347788735890445387721715762340362353749328524900503239361039640406653495656176867421651763513587684616410411166242496829605362901373404217866423997729376771506439461823872313245189030650992672534390887302698339345598724454664349690030520857497032921896718520046679859834284011241899595735049009469171344856851333728020018574671494068973044873418811666292381256006203233113666632561554629691068165040671237490676638890249613984976062640154387554621910346820598378784121987353590294387782139936454951569948928792895794004747463495873233540198171987021602412216816715391270214307454162151967206383012493310570563915716920700458092027326281792855612644559896825042698049571432784219738239529911649156431853757839825618228105708985428744425983931465972475097783254461124954188268329774297891283656233881064026025971672405565756021714017442098314941682501413288842267671508109663761081111504970579407207846854551005678512341836448550478494348074423579876955378404697026799541659490309709992485806213725799555941669335018497615974678003895060119465057979550752975406156228634934394602637092125393262351300953517767217011830346916347242219470769562525591648731480012856849371761497456396835866815443308311252103817381971336805208144304289674003629434723143759920248815742987726809007938834702763334581840887916459653072561434661997273143483752680806814409298734410045954272506968124751607841045815980386610736421651256460867705134694198987516057383966088993821867738358098544254252246801135477953814822390591386798755366485768870269713401779027451606219572908176184809181584930571924045187342512968304837762915968087988959458560124098799881732117318629006504241497423499168961822219094226691959018424496218860025876046183636075140126402953425181462355583004261898886760313281872547515081993129793612603789989206311108400069443633658989728859983206416507820815464674152209063103897111412562478087470574993454929689873635287460037560819562795551025131765396958900283584064443486068483313634114953463162663955848098881515785102358889256094365663198607603508023265024953522164588041880933829275688876210900625568814165599118152498864882187497982861629756722145436365852973401883998130436285432676584935213759909707378960440368794240969184618035904713442019563828891291503432413220286752909215402124569545651902538317375051928855757993956203996492519834501955591539479393137133333942507127501986611159912169839923687694348968080152300676542876644877414391051681861337371016581288139865440437978207097923459291879914519857297419679325499805093075588166368619477199275437902789868552949168080462269988525415234785705824982814512222032987035464868622826765388460623016745904610391198679264940700641855155102699559395893891353194711286446056299372138231806037238024526441438674056106293305855685838491577625363708908002658377420972437791576301022730391969021274173933382004414103275487898170128430884741365423249918900386228721294302137715330353258883200244462942743474533287048458935410396592202171559332840589446138970789075300489596737831900321311305882893345601356496139887147084471342233566758184100986781819222001806354586556765093986767455351243961925184353882708748567250832972974265149579513460407099944008147920518271436956561761285760995063494245803330138724101735884723919928259617185131864905385790942035794440030988250508362757925509455755983450679625999028761232023121033049477222622238534837947553883154743634921828720346713544536092175790265044875348674671452690166973533295594191110901235970611892680296358585423863512021338502973674575228851722999234386079038576453348614509999154095546328497777923586154513659531789840489917121018054875937319228695665948564130259962510795342708119615034675119965902082876785699177618730460539324363317574753600867115233842314035980672561600060753327495224585267904185356693511485114800388030753156358720113535227075890613682173827617865415656340871774348761603496077116543781906646682415137202182127016464613826235692503575413573924343262951326027685830576601925586683921232306547983852682793834409646851334171013992320917217004443160001119392666743145281360087759264745422008780515550619465021908399554923724362746833309516531406011801149176442543440789167192522489854283865929677695142074333798477582368470467676879640325218811731679515879082963690978905807640925287781607583942079836031625104091502502248109731278652187073248613936010679250349356796296335127806643904948490285621894052234985528153442284244154192923316473364973415099813984073786316859746847686474884649963136371227626065263732230119753460257643320581071885150891514598386564454866020118852019258904450417179322150790211912253354864065532593724219990976121795574047037939371974167751387754756218115639614819064005979443922066938259005741648712338249541013618775486881779795381396840085623523378249198196817350305277756265841224764263586419351569601007482300964892797758223649166005457241990746534959038690710076443433130688668563085042302558958790567992255609255861040236916032037214329257534231156442503209853762779770546033643038049755704056922105968475152661171032095931811409117202677020784563389592452032367604375600025776597872107006184926208458207077472426144906326680673587711091102713344186032563614008010777334188613455517772058084577453714574846372433619273227926009699292488774546324916261786386991091780292004198134488137020680346437760848180778711847315514248680912220059083810577610212998263436250512561894247103044047982664125954007687096598342568979951903347208538812256084654301568742117583994141080242771562227459421840934366230657885905792201983123270309656454954819775244403907052251879943439096982510865887538938301569290973059471532232786640786811765886469170346618421741281626845950472316011289723243130524541539519384719073083812822993720284244608356823756413363884320270414263699581570500455981200242548346548930977221968378933664753143263380672767298263393569089471322346714751800688844080914240183751436223588160437837284301901247451549356290127909954026759184756463780260808061061635922484231926328550673889556762814157450187957836729038703795024516023802657989496026349819268966022070390208881589919356752018315292933349954120628233870268736910550949499168824773132692870329909027533212902604399292576676239730449055272069138305294922058610393956916650064596981832861029843893146655682222289084461174371219877281734910641308446798916967404797464756800865366425954462846002951634304813696798323822852990846647573801967358854610147887573277434180576018519881824759430298475426734053517695597645694327017912548036423332137760960764491621869458100899107828068373636148876770632405073070836538463704430386692913467970135667381554343121017101703689930159183613573656442186957534885981937528573604737477090182802019171047179124276711218707907069679885991385392240362555061715978637237848232495549670817304705915783335273572340280766438069859166806929355329651274548387983397944478132608146448434897710443250190102114347026752043535182430821011397017272880885715292122235753802253186363805994696611275929851131977405960802637380280551521059735025025560071303584421213327998009951763684702587021771281854399403468935226577112564116991231914775492543911994262287383671327952395374345308317839179128642583497368141027128264401656999013361853187498771478207760399048153326153489872041459359192016317966199749334668493062618190323563519008700846474230952483900094279473627997315918542317878518530795132085695981966958661550140540243630477870403176906986441767686608184821595183835701309378514786077545832240026535332034469949378448544414784088132459044521001396256717734623238232140497871275810883067503516120690492402988525116198763647425752145762843414063723928823805845226246896988854775155961020569794788183912849511153576238186360778098986691851905815952235470766131332233309946873082610627313085799190606585083039395104853975496325192719418452655949485640017858628373304140761221926360195884831498800506211671608023282717928025744907774906896010397283352558407480967413145552558418478278669986845270754061586484360164542401818320889284183995483600613060609313420081609484602614184091602419135007879235006365625150365602458506792548407138247846591480131738285398272420178241885315724951141791759113975956728215705762374217912747297490475588161808586836552789572873550842704844145180996465309539889940244549011782454962608621838714098766318939668985574550806515430011709855157315505437645011039163193486502730735167539259164725695452784780959460060746792895519602184999297507470308250252918214838619753970642263343388040830275194073027290847322771788060300870704042189054354133875298401273685962384935245492308608985383541826424915830946586775539813227430300626297179662737710979754792307965579391404141195321311573080007786313401552357913052987630032378782032507402586730355695559988915248123103828962218491148979223731083007157042609804785432526355569743091123479823161645984212809519251331733891584388633664470961572145237306762289967667845248989206638394651335774758362442458675075301781548498281704459341115855633658119276072742819565623026255916152597250854132020325989246770750170482315087521388115448667136421401556035113487420985036529373784226483666394819483333726535407547171101758237868881630675996222995535775295079745377768121985113105208040833902781582347514148310122329912325250847081101960019752095571808629816040744288932869270593251228261508444114077884119196371622205571069774420157753945676705318279520457063676801001669265755935743707516637951042675263915262982328064814049066669769780590542355543683393908337319031484798113607675596875266776614458729711950998256662825812570304133795920516679793426337407031565603799508458982960688171286036692120219620454228570775544978178962010180415362839885097624189939031003454772946452397312941301566683068777806388747180682941790518978095140895695263178713190570358040929481753291613879665660774964126290654743843246382112626415210708032043920117109343450975070486428137274401915258917267485679521685567317261221228092164287771045848214873572221118031088462198072607621023386456559421513897945929873618138904836737777327124491986266131772963716109058218400684199818587841772525639080212295131456462189612300140721520721142796622719583839207820201050057771609675722319993315795933986920186551805728439648138757766798305564805004041528117583200850279101656500437920574298341977244781596533215430631394992037441119084311777349622054613956025435152616200015440005967961695223862839098515984818524235940418661530704695696770004745699463091150556119466472686700892384426389388696950950735871547089060335834518085488624096048289108857837295023795163685097627739087318429528460305444407969818972165374542685136465150905602434616443373253709056095194768567454425538062841527006621784887519768614802232391871032215469341374320486899524549795324686558376630501287807510650346282789453335350925248305266876927774208251061986143009439768731973770327447132789091732805307657166994323700113949206277702729733415441436320846799475512362806662662291346195329700166305179307910050433755592026442839870127021791784676283538360961538702959625673063120318948003696965656839652480020954005616740481119032265504733176075509367488479453429515389313397534773008490746223405658101491420497996938802122013716234511144766650781024758643557688708676493328105018739324091636263605352726186644003619129117393085039692150330806048992484415435560431294201329396340296696616177317164746953831929677642211013073570774891978870531545627830039490541357956538945864164095205935954930775130627506746167619949210962110859838325949982833430185841696585285206781959420427030847644560732997010712784201924758522828128479314551691488169422414151665563292204591829414068185899282023671952912628940316443633397739740586706374615929456839070312443577399169609779294594493118993556134673711797775485200283204757590904977204619207412348543426167108145266894069556774509171184755986320935500992058502793470928553520905865514131671554843202743995912834795988330721902481923842667310744422586232146451476493338710036569003841599798401498454778416800741664576322343116877810283365676965054858863544774805750939439791261565277591771320683226200803097631879070435368126762111461921786081633106075156831471524243535703335935046091631247398664168762266200538274693136318607386823912310744828935562881662902674523405340539810317685984564416247505286786421823129592013760991156289374522715209149212740170768253585994055509752659923843752646559015766417567830724307379478786856198818616705696442481462140739745228574110046005047329548883220439052224561602131403810804861030450941090643853625286093977903180388940609679370538938356419540491741425479095596002188030969105909295250395387258101055536216732603653610585712802535251472225438641333416244776031697282718411733429339243818131195178864192968001066895667966576413733105913052959075669646494278443796579450796937838966805281736061843032240768313041693581322029685350246163536445017997650995309644821264437605898521620432188821845784624686996663788496445717057484271870468030894838997737835645695896713683673272825403003003027767375714209303903723592854133467624611019713014326456247023934874785578057892858337066829210617152311566805094333034834585893619140577515162665546431859187113854283226631759446410013717304075326082722434121393555408241319843927937499584633289554879402630486472362984803422437344048862932102995136056148999450447876795725992073234109483014185730261856916666636857569941108570020137063942911832674435746672302637031895516766558971727368032414885299690333009287633892000291705239471994008351771419931996941569887530523683432816429072294105149577272143063429802492397024936803334941955304771072406347217402808575917744458817545683731078701141993998068428431127239858682188051294282791002079344011102793419616972609489077288615383519463430358853692469485883685793986509157106327565339995316511463837545439625615818474228858550085528354400887961411614493932648288473020070940458537239760682622422303913838790573990769020500104590124501567831428952993646004211855504601797349289830205934985551550308549466789414441643149683772697830533586144760712188093493660279323232058400806594407215569227518143048068802122513253162837719875016156419142578493501735507181343783821645586125535091935801351583887089611974633684590265125914886463822278146032021080215183582402901173678556960018894382539510374322484924429372273750932318041779547982066929917374167690114371314972352774555147350969845174080622930603756997229538465759034106704380441740361089420403346584888416976418049751437466318131245697436828431457083732540834224030938672020682117788368470638461795334340939009126851486427211258269253234988237345135817913520674937668966407089414189377281740528922897420762985334295241157811552845851127253547123201275425257291176515819714629826845302584891325867722889638748976920213850060608699440557700895089152560399346380166704130124727665493563998011767935058928852482345447044077627327847856302405502533147618971928810982727487354404035708247862892118211557677339937840629193455346654002054746731490377614342208110463490390495922762570225117416554281593893866083088882826825656875329910750679306906051238599939842136737849868367655054122009077356190526576215329624948499103497769304724599995519358205729917379378461853115983828030640012522351064648449101093284895236115427542981563839324898471770978812798608984615151298375593496637006499580700560918188796578489252629583885050553208435046471481125578098054749108528541238105880548328234351072793503785233357678978191894436224012583870021600940249914493881157658676480770803774803905400712106118491417329188642666419103821904410943855768860372448114149763831479171422247542342941745724574123287271613917283236361674115716447045673701379123635804195624078375744765258298900254897016499071931824329949580605145079460036417207064946472740043717233908291093568657599443145675880568515520272201967726736713067162535386840403817595502142094802895552272841705374321551522922219865358332673801903043469978272746109426703214211857572102698799380830235500682289783926944728663046316605839138944022034049155093294853974348429142267297335800691050906568805863866461774466484607130342279414344036062250765661311487029228042623266985656710574338992132549808530561207969149693312605816936291086754343536939011443596309645229522115315051178709704483522713279423029023894307158192735593244127066744399791860488913154294609598230420639186454458257780502502816442315975756195578857695143472534262297341721491699061365051634468831304845625679106763522406787772761705258196615961940998320694963994579166808063084320129171226345948701389735765898692145296375211224106189505115496006550751571564289129230919927192530687510814818028767620762291693548735784802078522499491088721592227738015568314106950857418311735140156210992224440642809437913657047098142062448389313799081787602246377957606588038764051124707127230289069817367052353530022608593549133129834853882167553059560778444489246260514910445844103501243687876757312640061278572077827895864548152471935632758292955529590209034886189652842408527415304833570403840385516547121588798512876372128105939487277660892140036577954252969998045952925220700050054882126385430747472563076238853022161343371471113380207729447872951468230668325742656177791610809416182804236589946616083364250362022350218208553259120217898763062070019480372778733699788579491138189004246819397239620389249178434813676909618394948476876820550295879911805677534430179954936466113291543453573151486566276506447940606655121591843599747738826151121669903126468258371005436751762045240784009654662375910420493990605100998932585856273188635407872521182354624587351987193452797191045846528788483729654082560440131484877792920633970751468055045376235178642479848746370012734089756060957049269347704653441022845498010871557453942006081854115887600149845930716754903931735972024336995850895503983430965695533857898658948974577310918305345973486833647217215943186461153377588120711436667130051632322779897036255304247817661044455838439864048527009952263090005432307263158186788020039889249190196789861793039124174793115206813688845661261526398423105212121431148828108763909439804321449012086248460654462193583005209965382664704016514860384991535803853007810040152930618664953573135049818393713549626949529551486873725181556661851676221707132588225847954626023783480137474381586264455241030474018387439070528115048263891613813089434775307957679057375698267444182705251671397090367959240788071788203624594387955885094205214573808399107421401158040565459257416120942353213459898202337104596031365042158255204428338228842591554221498208407255548909376462987971153365369070635400654885355682469852826679875363006805736629869834332959405534832793541853207122295048556250798881546677077776868170937248660846462167912827717481134920363023484367197476085261085438273686385478637694659385600784722649425811084038681146499442517958213677938220905849330568677383613637638747240463458261331129414761692466458829395128962917402096879575389546378936496643380464494523251694329829634890679194866968584754255028144956689767348768376549960392010920838889050360153418780698937054497789304208915510016929466690585549347171867237098653520462921204702535629219283319640678484409637413040156697755579780555715146874782108799221058709614136008218373618750907228141956079357985071743634115201255335697604363927018692228176830345393405510508782786166985052990156476385617285467387314600505355785613270289807034787531840410601767271112265977189380300849137747264350729402019517106599023724590549807034443773287564239709042633376531328118141938771698851100041738814733169990685915727051740028311292396826062897022043598576246356412886481571925075470301757460176877210519900398544208484429501293462181021867466392365257807291657809028406753348312732050492244181456710723187645566738482805291441855686579599425080758037941024482735195891227507966414592699495257070844627108589349030491606600014344948995983929577588794136438254930371029620055600559680326956520598654498074840337208211434073014623780690148091793930537529833409242837005626860214268303657971139776146802421278871086807462625650216174540109230629825907178924363154114284957500771499061888744616110781119628334972934804782137626758567735836801482093595056928395494841254475413726476342659304637902937456417015934458539167348824200951861998062592180058127501212874696052410291964688377548057756108476404888311175284647409414258140899485881097436719369476657193553741621886813184693256758491883045837582046549227416060514010430751256524036823533200858315603174890713324121122441135876481023203187146294269609315160199268408364776714246562227292257674641881473277084283815959575413362274890783074382648771034122791630952825015182400575873737056648685424149920031738040340992758858084329895272658073217276958949022109368856238864730757038007994631628579516755665601486987139606366002437896770891544112791438269419444204591338369642543134741400190847666271497933372380333765896291860828913719146299904210320762254385729189550759734747188679452811752553074446908418215744372586716598625830159316543413802410943953126662828380712441793256640971096093325348404626875160175668825108681601120563954346320027526235660568978182308848270270726631859751479245783268259057563123084405962775820592214476204312667110265695240874222590065323259313697406443673468009403920586266423536483429612971656508163133484109050328276831789470679861942577360742318307572064046146744323349358203935713416778265068722193526309004730131232817167645638110015879808780815162043871310005363170465486994677466123694747523385395609546764122943477289422265618282233549996227350110502153024656577163817758594366855423765610714714911198500055416506472230129683120308487160473946155639242918803009843909697517385842860131296498140707553645006417788241357535760577247368134423484113058546856940262756804014878389749681832156542254855105576721603345447767764201525874362332530291960641078444894561511477092405094096725769760747886715845994038491804917791635302814190222299594728256498345483681294464840844217154279130504239608691374732362045077147075046683971174533079825107608073213693068174483137669349834862313738818295643829314144807022069343586185727951155928308327289584142819921369325501674729518364828299090632779248128902127036016683455864827873004417440497912642099304962852056458306899511653943395798148198026103245583231548581630379602931321889746062481958615029533843021612307075405539169451910222641610727069870282418433639264679471397408697359123409984608388977596609099831054018477370595614622373963139109809776860858963612687425728496835661952238856962630295299613386043186100664211030500536463426050106435418113294165634633965317308532973894107495938262921665839096238427768247105251567158306942392252891155995866525962407913372725451764751255334064310994386750221636982745123080596850928064271880479020629657572045982848693780379399674216017188853926100861284909772282180129525225892614047741765847205173812452100610313531000721078710420078845878702953653532274206721265879452127309992655984068252193776978493626432261708010983039558455736884721491977044130102050037189822135972325559410637244723861174348515771559268904257932559296597789778576722622657516914008674224851071069727802507558732409823412617946556747580219178216758975308187321963603568201682951329301905533157593150690534108580711549154119459366361069326763379896802716425012499749163053587155651579397175555632656086258824564548868477375095950295460497293888026506907187492060521705691052546709882378005316928576785027324397963223518803100171757136264919691110916713876680536518528587684017756855299555136821347911503272132544311317073554303310340793848774797495402221583360200133519353685645149234041085812802513803996798816694429043138532371890447950742397937422923872452765487418479905369169094686211996178259066319083390067467537083803503959562280097445733381803844900580037567846650108643164127086977886852224017472451495521295527000349619177680872307286957652431822190579427084708473903978115911509585391389413846989018886323471414105205754954799378343586265722700883371286408326760188957627495567166403495439260573174625208595918313817708521302526183846778749953733583883898312100139284982443683200377773782356304717757581697435592918329613015100930524516352566422922302982835112764851236517363392499981295334647227947056491900144042037055550845630552683193397514314872109726129576042030414015513770780447131137272536412360510433646348785909207253233030154188598775765905499453855963330996132895226853577399394946280050534350340565580538298262718945032288756006849633652034410336680922598607346664730119701793789341570685148673866320353817811867547516576968993358050125224288858042370107358957856689765907476367114431516555825781596660662377959876941374140965014767715892138556501228035321533829050102722111785560357676359678813931820255502882616547399113813577601847267563115331851362634892895336609056273564973359533147279273780057808665065218742727666948626643639166285934015215686572544001973207473108438186773480937697302268709750591577978076846254912378200924245534522265101486527647095654414434235588216381887998150401538386319612511469043871354738776970024551038496805759662922798841012921880492712574684377429995582735385787992399261227208817580573987311751739009903368544622282978085365076322995242304639848380956072115300572553860221841180711460171544316988316661476418687357385079078365622434966923387477087614803269779851338527281946545791245761322999118279790144019958861085081421047969237511819382792577861400871202064111771642557859068331480815216543849490357776950969484199646009482150506532041743626885287324101920247962508142942408346793433470003072894903170063749604546973273197284854961998394910869370793048159436546613723534586232887919885485641988182030974333893171827633889326634360836477716928827887838977427404549521636545032738838050705472079786577211288006982070444822055771442892590646764663800789212924481958467519670154721895385137920784385403221004263443353977364361093046463328754674769259705425069079017721653934423869145466930471265564921513992510189466358329134554425807919114434098193032437065651173076212429632409187678764220102275773970855035530724258047154321840024878986556274429883640013824161539733094533680969117381178646883682881653162464696116817950247513694784384178334398057234126545995322192112617542617069839230937095261330370457175887944581604836962701950679309115741443126729089004428494383313788001249402116840765183519783406707365508095072310538932086959567343567802670968793314190893212389694503543760041572774275684471506786851046398794005571320808234631100444805345511623732155142108071920481277300312435547189432931368096709887532543037466803924994544769377168445679505091845800377378114488096372567166656338803949159317279337285047794803897564378755621765303356730458317048469743695805747111331930406665869341474974422993032032516383265226124966653100828152259009923636110272213512288659467994776808007465976497741190784047567938910101617245579299959969458754945067646173380561671313931167258851989966442375977313379965628745686554352038880203078208929995030286615266722702764947129259794340280442484841085316136474954164086638627997798193824270012661234170869499220606788003690961122420034831590336545119658448677993802463507747173568503780162740033945245815050144301536216206559983286611590176463968736183135526114145706525635585749313529910957412755955789684757961744060914459473309333095122203430649919889394396863491644269975801798648501433154150250163301613449615736610202722938999143339917270598564513263722365934853856319988763838875570046172026419745429247949625624961801069641805246007036594374644118271122318880946951769077824588870538783610964770000292472145870265294401658300652648060197967326498471146625679789431851786267191680520407088246988276976454868924784068329245482776172176299760701103674342723576039493500471672258963407675498801541875595671886538142030912858238680014623452958048396905927108515674966500622778664069593452903301535446604744515605514078945200811231599444180819504551914018161935373251223865011105610999179196214080928124809087545289972676643180670811329805264469879938985973112343504327342048712838721865262825890188189240399915598535063225829778333474410632627783488827511789990390615753956463598370767520580918278692148412223690896390737125349667546945510045175153741762802555294219555735384430998823983770251764752732714171115509075293270894912870706019495263509505701462644886097456146899014766665509741485007203000563314288029872479962658515199099340402470060798632910017280244278047029819038284241513294491359826426000733292306988559360650715078513802154945411079399309119036993579279589722036927086237099130511273743772610979516125664123308664591858268190683553120725803490755953736209770675457737831806484885066830314225858420693532944878756260779509051386500451768317487806003987385041662547321070451130290532890919098279319822616435614411955119398124430139195826212149743559338838755768114988840285960817751565360721866778132906562144802350416114670755765269808514420116362119603992398891634563466899180737635764013201407278391404762153126065749983126359992403169865072846026983172336318507302886073189985939138192649455807354023845121212205416108128154232121569172382890477293944134427955426213336975895387103370552211613810670337181454769875721312185630908965395975738345957377556281746637501099475849944753753915117820192956601532713579362595120160958925385875949443541876121272710589342712244316272161817279837683265341121664033701299446238993721994978173449177797285198315266657257937421268760099468705227263502533288962174036784703410588775260664137111746015766838523942157777857509050110906089490339289055650257379407374451055551175090869751582627229873442660372087456281283190714382506512361361141032373986683499816734160339859174985727265076444953198986230588386971083401443506748148821192485729063723986940316565478127836532052027379388936490434777145286792769359036718958207385652459183883290757032088230113668243063889757923683639474241550547547227976086391479022221914425348725796224764487080770389359427626587321803886288110787795319435735388443009166800751328333784565775874575060785321746543579751529836748779591075274414707205517061788809788117187935458978317987797595173166600202725417303378398170649169504824119255380564670436834826415723265393689163369528507012444737861860144312720302832386451520241728223395546078941308091190023518049280725703273137463610142943849227268909749285058693961941727062470000281944206921770426483734529935534192461244419154465492801048747700592107776682218368826569680195461145878943603519742934417016373143386201090368277723410766073468394328702846051881662154164769525074397985416820098089378848520523574052056789521612756643934951253863350691266356334789406261791788360659488131500396331294178659891479474439284008662062103654242661762754354788694803874301361177673756767645249256351815702046773461264681009270513099057214980556820506595125672150916668909809196066203274311702024096352928820554396370333027148645526275424179705624749191630651763765833742658510576560127813665289278906088465780727640311386521088642962295368872581377360161243698489962920526649299205462791301286733247130903076843109724217737350675114281813988107005116967532245163376027955702212439598401591665133208054187212421163212837976484309773771767236672423616493813883543825751884815558483719141265832849670780852616078374124234350042321420556769138159275656930348213650643556162445726843676221914353953365564103899988922328139375703019893803258419173330192688692463606673127883421587509053305370127020382764750798123249326837845722258435057275360842324365522821125769474175928274790360210025896625676541691866345405478174295000581208112697232374999015652706124273774887305858737318017206344056596303554854815512695064384535557954016466625060960127559354229271157678685995588754386950869496408411011351086483888597280349257652766378729543127282735472119774335495516704589434836953123832080799853106743712314912811760085169634695894602460798820410313270298448173235542853788601727320016538530867059156081790231598900911138072815867792818200077357333040446928787055693540748920687453448100898350199625004991108844768798426865112832051770323114867229572982246503505314363874633698439345319838354147918080918523164917853208965739892957601917958945643203213528009217288650442147527391412098142638742596952627589347201658464559293492909606238571631747398740182549925810406737402428029106777105437776405541359492619147746234651150973215787855852375269021920958843301561518623421614675731813746891237830335431646326520692664135497672918567136242978799981347140995741930919109285465926335085274100437843298998641543043209551471563106352245093513312121395342119990881076605461962315487437286129377802792203640480128999644665363075529817786256796297233424371488657857862598034807732124727255117093076706266957760128341748294556143192472900829804328743491777755263758077488978427701185162157531946494498864277630889101652551203054654167361169597064681166099015749035380632698338498080337594552973071410930378171442587425392619885725977261190954317138469046208454241230197806282498224407025190425080151354978200877625757269630083952164682441202432011604006723730590879428427983457706659649810671721620060175247579325285766618868665359951014802957749904974439574765508930969425635422932751244405426828727209004695377883494292478048459837567519084188180071232526729087435172803941893435094343560175167917503269528721990582850820451548498326050350698713450526000820792373529969169204301991044011135115798003208973051942253287219500679285340222775389276953717865866349404911371149186912032736956799153287771486620768089168780411564236861199488951583615293976251577004149766428826970202860194473904090379538146058177407586605602733613496898119219055571241119617828155491811545865663763000438344813595376122320934271063197053297414818288008962325701684181015392591618706835619730472207995649476854310403620662265070844903141622473891990618148094369484173154637155627328082330495479658257183695959512202466652298559647640112206108618552728714699938415535468282354235451035253507517882021436090390692091246429066835049142970760964787576893595652345016986541065754362643372378934050690567334349223783449016407742578530575613805653618889494441783731238113211678014566024635278233300783100464097905245411804817466227688414044400548728577631481677980754706120694003259136207184386156222347524417406360082771812146227649414211077065965862217697946630680788483936083828047423776032697505077162922899261582098120170775094256403028668648846285940281121623312892430412677441693567845546576150335519596560405319488698952019348342846844402460275938594351128368966999976401679547924018035673780822503394552585816044830545325362120765969457010781925358395338431007533690236391970432289475843597914814645002841645697658388581389658529174289860391787728839186077238477983595224259386234254364420634723538547681498240851315382621444444839239760103122540119112832578843742061273738007238642797946094625336573919334885370706166219152061098150386733158037428173609096886866749576356348504151303494501195015815597647521894931235298615226175827003267704236459096198007064190627169047379915434846115398726877133899278998487988781035718216083405810515576166465913453471141456396225098497163952496101510131569483254200945980457141314045008895232653996074399581302385522970913810233890171291927356272608807492046763865253990277386215305197866705816255455519648050392332594815027678221488087901375978308685296018598279798239137645591967783778745152731094150470071718558889541186359660648956333440436248132264505050109771439020887371623157150918029170143578004852084425145459262639005701912226792043461361237207914356916109404908961611520723614805092391292584104344998947680390149054469739331630876753035263784096781637828585017789734486292440026151037910089698700146570263139017421158251995911526866778239525630585726893768887415112024934573515811006256676951477706678678861941577049473574390496651088437075098435453557646541953625378102188821986769916070339965860687400344982035317981306986657037088672539210905022023699913396909079173312199573849479627905396245024500547925007096591189108926375140743722657888341877819743151034759654724310539376776540128384431651223318234520587182617325275198243277953176820102476912089295671944190862837915752121009132670988604454753027681193285327042422335960543034439939766569555358095806580421301227669547133129243359148393738842711180867380260751498476180187678395328388728166915613823954995165782619465789541513979813320113322433685613516188434382574125084465658732885498255282649319460964327255687518048778633489429333193048993530142544047331020317224164127014102811663965353352470375890427172304842071429256195600964911467754194491948111117308741477310422972035309226890802883077405324912173829667401977002167346694686095995114515480701310713434205658644289661304907185578486222123159941726946336570894264484041904664864223762685628427628862491593109162478202237476839286547339343171727968830363805562748904150312866263104338193146371165997974208024965865533431549984198358429862984039441383309277914345119245898676229719860923732698979243731098857801095007080842619869390446911893261376489953923560805500418502423014845043134839888543148705362248068629897182407980052555912963812551544383513048066992453404667299135195250939599419262606668760706896657042684703556898411861819028028386610578204083417200835443651168016767655087187009210947809162162999937414557655538982410048951681064507364649827708329124237224746288748916107752859489613247344393501643910431293868837085799084954307696384664497864405405181857494060968516928246908012261763123499608807260778866918293348044995941169102077530187537714051301326952544954380134111933512627634254323770330861517671518590371069722849652646607798334865291066889566909750160443991674757685599227537723414090698728302939565186001842623115888612728361808854550717966812897139140454026546546848540559761967729611638606907755166619769172176578887567656847141243766790976819421915904092828561514372624676417470852772093259405951358226555389546728643393620061659735209253817972649684332393473260387196215344869900675955555202352413440303149577221730896299620549510466077222154918426101200034144291469342874411223195358165532291582221403051071529794492799630991835245232437730688080657316262784767997648867245382009436264851078940892727849110540485616456872301638320061157243014463748662777018841601643785854721906007776885270482241820376661002296217524835380265923680420944603246064982400822761912842221272754735780907694045973388660808391033993475769476564184956356524141775473307684253596616875537154192069815673699519603890127699098296508345312923746504285327325112924509363990823207975406292230975372471226410787778616006398014619038254419720171247989728492351302426822635246193243224137537494020652592771474622813838074089031506930052837958478907739303397083088800005198402790862407262336357783195818917633039968565274478297264124823893164870425906702219422710340464853890834785578215246276038959923702041314292875230644487396871017424304353265805217415181567919129732242558790534351051500435541506141871455764784995551781473711541179996511987541316799381985538884180594107204063269869361636237628094784358905292893430953363094450982926819428964241590475974740744913249951394664237286055308494945621763038129049827376303364864855448632233745979834230963887692419344851418306522649199222530265198958783873348120008528859077173854655540326601285334321616776130332480616228693893263923907115176336671706486743353016619753336055277660522147282203913921449916796213762620678444005336064661162677903526216163378470802666454494599089022862943208542876686065834052470890836126634368229763080998111355306742029330310412754176064066361510506617469893582079626871147813515418348457106903983658882627381677722914813530056279203258820664586242475535186512343630312933768172912432003102950504620416852864238244141915281476493858631401002975227550799042253777030363115168994449781482069546228725125776424573947719318518566702156958218873189475156044585704917023168194432565269322732308237366531464814635786664364965364821032722391210450114896391866671675866014052586083705682202981449241134351213140354850846450285107492856730144067477155587119739434421335483610881942007122197082522539070296521321493339299523717604446363540557858303074724567431937845741221089201526962161033108895907005950204045698731218138574309773136534137780893458138958692624458570618814051836156291108029107200611482938191499224735405282047668382690591639735646818777998654426676526124794831803145906247583518643059352892152752206089951657137447770525600787762303517231440614391821908035195362649282231692931230872612045028207657462127702413286706657029969636386596266659070780897203806899747393679539939746825395305373970221113740559939869977482503159117602684207399559739288588955651988803537973899393368388506228447385370330881978286757757721911144905367487354029480910002879467426885087443623186359971966863399773923352796761640659843876749721567547164903878673103038299875496652517112901009869659795136339200982687166205965741177736393196289307036522008104685307235906534873627409080614098163018311451694652809466091856934517699176099500440335727495855997334515743629696633387650946164137373453842151956868804003743647092533937094205859056952322343053259928699740197794903961934844322962395583722455190618654233473380227690168681023657831858452382498815548900295674237356227018687262971629182372672114674987335408303050383346555723956770619147066073592082707824390427924994241940351282140850676720489932500329023424078154491834433571450074265501488553338338317962450027031520700382086140132102996971020639168142295171154494866201693952326009069487063112788067603725620465635927311709905598730603608467029784938719577136284055198842552241311497562838348647415969683363525430147936662479124500662701474983898811230643256992796487193966797759649407283668332584031264809026454073762665993223442392198100350607006376125543660587206198369859138291513811066050796702515112830210377429809586477009965934674114475044579416116362224239654700353811151521169609923191974884727339942721100375386408581410085732515133997777206188503227988255907651549005740366478680226790360416769235246865952710677215078498717191309163160598752179961987630391474229276143481093783117268725508607412227495565845656851684089912194142337773869545310168464815424057564742612382100511123056235496281034752492643946515453015063956521007693468761832070008241602279575967597460641334581819299832255058859566706032713393425580915008179929745547868441218180985160402041387147630195661885557559873769472051008725957429015498921359569681531989717316193736351411283306474838519270529398285977304963653810314494795496384697534117725976994259189709364750540138710895493003342727421519628248081807551675608146163535805587216085739073989916577591486659218474488902544162406690172378933092302026032166234471490585341287062854750983261888742891287656795814674535033261699313528140492564424434358088968679374251585244290873618429267140359371660483014039778350020801191684844659514008607071861145392138832772885693466577144111856656497148800558810439296772146827215940873963906032143814480100652193370027100369050464218712093212794960382302965561885101618134236798433527651222817097993811481602180255000805923266019295004144518181610758373059036774787041754160670313927501298954413993117857720877775677967580969958155624593359540673393320808604087490045455856041418523414814170550604586903829020261408259965532003748040388732114263018438731434896820925371738075807134013819602255855049137941409511938322648674157880478727326893120076909781685849322031403961301480269709327264819878120918319388909693457910394295285064640778367607381875564466242556770649161855895731001225849955627231222220402993163663299818777994550506024155625264115928435742933781131915447736512846674689170170088828064543058153815916503949501525857316911056933448233952783727573141657607438355357408032660653928354420154817975490732770386717100386619373271137299882957211876868444680511071081086650553315096420661986155161753068057351848851557481506924561732293486880630064896366812038505703951865048528989471926565834443049361162721570427133160193038297359055652593405011898465503447192131897364297670791808188236451180059607258962414420007049127348098916957501708047644762819566220843431163677740054659116073032390131601045195054638984126431294031481005485351198644884051519186635519902951568308933160095920957421742161360644720410010851014358559342892627066352289418995847041799074702246261530544614416333945743386977880331664171765563581507040719732245548731068836707394850753432175281685734006004072996929440835589445300994102085503210539308385053896858173615107729520665193961636005214838290272232417061134328554937985156453994331988395020803965390847119719554938851665833387430860268063966743011931452971823611227437561741030476802004847512282126694151060731232884558020599604199648140793026401597410818499109191411883635518548147509704713980624768434114651606105085642955969290283613544033053643809729817339365032249074094690242739441197588926737095951708436290127746933568336002867905403029352725582337155146425554515109166009650337918808562953705193580574877153140325240300969612584964717537784516143950279584101431517765149758793976230777853056443963775962370052016684884470733468318960231554616174407813883582712048918906589654054567129253076234454557194338927003853102762388113669720533873910921501359695542787697717609653750891182546411862512736845214643646595433616959705195031542209814742695937289128907666428137651597578039219818444169790682124765183221367818161859821223036062872441408139845382753946521846372649015066162207330442048219305555504580650066742794259148752275739678747364119723219746842332704823056527674240607362078856850595260397188738719524697131468840972849466643922961509046227126253645159774214197198113833943812529251684090237760572358566580398138138817579562529287809591085614676803245586237834011186119866856461087426913799218768801988975768327743052567710621910857326371924953437649047209566986336059210546102224501959356160698700990520563815331996001534999357326668873140330114720424251462987596290396569709316382298084754316955436924444784975787682001257331303276083375610641313619529960668919915448194432932183950638554777346587107676634083086933625649299655798619922946953725989651463599176572345125787386566296912562704144582665276472081397398387087149310801156453138919531679612474855878269246996745194353675517054178848519457739383489653357081184568595700379733660483495119901418170378391376517816852454635435532122989264545648062039960175811448435657824354161149554156612415495894762327305144723106706846284400053016446593866582008317148396357559528965374997899120839993119630332792594622866835028178547710652894658647564639272190532332403847496625503605715152475190608818585669533126539940022903865276544423773314465439287141774547750585096751169153828352146809763733330578085998063818783525086468370729089886444055117776824040416706827554230217330596942714074487128012804768873683560676085365864274016464602729667225202597601454008315854285802927449243472278667645973020818437421483528959839292088264879885996786389972102306730643717956452438058326621410782034029153150699670126679544752554190592800302991381769389118391987076952238015988056575678902224098537077094407420552714503266633853207947135642263280764700413551502739664261877436375013313784861303693897136728090872135583597172146556462913616626332917284298199203091147233598832122386740666238775472081893643671664238380160029896925650177433420456217392920542591777089579967031946692854013506836187188527453684955593673803212290227040034464210205342009673281415817592350859904983872393789100931930837869258052545441219330118902011963039071967704717743705970997981251763721292010813308118782289070260270655363847462898912072394781174921884748720361324075844621936283311913797707159737972608856508443924072203922108676554730781057946361302341514457171652370396321380944251492630248912251990105240631982121307185214562690083713662286420843211184748660789251492297862600272905210888326669049881946635431529118483238651349849206559625210153253858072256552534960822370629697765237317520507978975549093996590680562544137038076770212047881891783689960339464619854962150929079169108400037314756452991629028612545488227033763414095598982501189547070835715094728533929778026790550448860711096109014669542970180697378102448869706782640294600726586616719865557433253788785057039953288804385900133110147927690127008139443551166729338944269326829936298784997262049006417843414446657432902427817833493401087761651287367075807299206611042488129974388510571108236497255259635325461277193580184267633888231327308666297836693533282017329845411639775218279499033430897883938181332225411243972632941744388594544624075673608981666280559007882507540673873853523576683760686760452860100138951534167969389308425478257511876545134695793527483857993372086169801321677076264437270316823405266327755888437843299399818690045873585228646067639097201362099063765106323670649176672749849229390021067022051229900456861963562993219170769408304369878438700593590873097211514279570511699041307026912306388548855100435026453732929175583535791655420893563872518401390467729960096131792381632298831571461258970052530067751116345409507033167294618149266340176119728681023732587000815937892111809951752556882334374386433549030118739490962005411092607635548504648595696801326858514601218344654843583207727373466797083694867413977214849230190188384468636733946422241755597942774947957111107814575982535669226618571544211520752964327740714795328018913228255586950535171150441840284811679987711118182287268992268088864214765614021767280502476334949943281511729304982424519024328291133405987213804756149724651446758252045065111924562589073269894789026663552704743235734583185368067212844586310934549871291715581038621025073596051044961349724036511428473482088344770790894971502153446486596995633439785255408360430751001107905077811057685112811189232257416353591095218993762925265170446153442692774514938194718876549933146230135192504146349386504754149665217553072508811186789981807640412996342189078845801249613343394087874854945702410350529883558000623015442783753934967735987048060708187779540301151566090961040961976925236539430053216865735935503225953614449667531413134589481791009486700814172471465290665243636007821908348605399983643814878917707776625657003408660535703925385585714951987602283326945357944308435517633060099172331334547096782040938510680878529606615651725048183695858831439360530709951445347070209183676428732752471357200957859254541734594854846330859449148647817763138740734448703980654227030691382795731998453592000332137713874567565123220379713498888311819574617799302832568863779235497036248418645614397266748021933983790195385632973868624000549500175017055747778470981171552914719262596053665673102649584458364353584087118888019154023943221990483136808378077205798860198822544052104095008211201425266069636409478779283468723104272566196283943750843119973940508111848622079779040570419094963640412341388074210840250673632650267707100510616650701026684877866684041059678285285859580489041905640255781978937314743535848733564283232522662746235881365974937190739205124658831619298488811333903769986326046725584247642391785899452756292650086492757148440011110130859471048677172071853168315949317922912358238493051448302613652097130189540213979175098873490700305133398931929685076632940088223231259034676748931283315154351987519300415195095356643162711250727865114955114363185767365361796270230106853106747150495242039530504085838649741393820191618311227796002918389937131562075382978807818370350070884025350438489557452954635695674800019778695037226669807255934772906079305791392768891968620508761866424228846920662397425961673969302342889926177018497353005055095762988810000993007946381405489665606731106749318420884904375736563201170644655565225994300468581932320546107736333864760211878211900264036724249072427457605459955274011569966855076107862748519779522613572811658774353021299340854171700202728292274413835701232479963472827790236173803383009522510947389850062091907518665881640330557294458742411765066067879276017056589515350616545903960172886923419814854765708561408403011593958609587632327145059146868603601852691883352838068533613436648534812204325562477843097509800405507883510186686024431191417089725549457426724538433282693262009490781373689117546516495496645937790853777228727187460360938811274214811282592127160183044296736286304519797039638479972807160459347648047143770543590924687403108653429432632669211037898330287221667841121888450876705690140660179951142119350956666342538606350808681558185463030230984222733793280213025261540738859647789049084464503763933889736429384164014873601407484626333260694262972097591031315239232167188264349249427446231223597299969809600638025183520252590902129246650303970188499183248199047108568303421303756685141797344885258136566134155623778598277913957216949262725126788935177656527279757559059444742157398557550026364824491265624144673346486289749949148824172017909679554403074941061195079294450504973548639727387899515768273982875790533175068417705157179587147184970331988991661289034838759584124905403903462544708177739357845055170824663694727883974678010423777339425988417399139076392354334469244511663724018956239902465448944560384601053570027777422371255835858051788600123570175663384692975275383409303981424821622895395448939791896039197008988944877649956428407095533532717128395544626066103159307579147188575909100175613060352383064480033066972974758196087742306095647642561499743332708984640302342315572791330643604446426329882094508946036573251889059395034502968504076920655406534678074681178691840609385475206536315382019831383341062238776637178450958257835393236665859097353752773231921607151872791295906708638864597156699426958148487275587129618514846525166153613160310411541314205420079118003639724358463474411831281797364927968003883929604463031107691171932762093788183141082028826508908096035559512332064254871675992773374669595453744181888521377342965973926472116621065250772022586438462443400926395740777256908223397047949772410336185316517127404676005213791973119691518391332435044276731216481870733859345388062484902672507320015096992605703582782555488004022135457778174216505062553945735780966235374219348612983188434509498337678639613257125234231028757012991058860090575925435240834808257012766858273658597532073050834339878620068684761494821986172079882925943684775685547426937746717262976727506597093085385030498201664463067921081471017909131583137851822501818248993641330763112637988889023710108847842615297735441129412393879156362827202146070496977858173729579579153291077606081681172398455069879642377348512284385042788737914749799228768304736454988982016905685688394307500316000859437349462775489512960835544377599638994581111525579302671435773889830147102075034979001777711668294365581855845873521468337834924362819537757868171474451560504999214735335870770666458640059193461651370060925303418647662891514154819080286622211924173256313545517990430022625022778699804312496390956617108328814355774899727556734455859979551892818642124975564964706672750140452473836563441478962732914455752991960950118282761713405465877217598030536743220567554566317397251025617820469453854521339078473326161944378846602235585432758246374480210645452186233433010645798254998483764485752222105009128923971299333866422319279409483266571881618953224419077134168443112129873886377742655105570413923493680383386163056875990607562535649603578823645413393496955865334873818708786616288079572285236418640215049147077672989221427107178030359867618169584651607458157257147341111469108071044523938193581853823643895087314596732561362953582113588676489553352213627349492416273722816168282430511433719013587084509171042303641966601613600078803354352047705136240583573423349300749957672043674533989249986380954687357938666186973281891638073620258372112536425105131477075143613342586770856854914765400720028225087754338713054211408452580824917173594561509908984415980329900240803180973117688908242208052312346853612325503245800110394720148411379585728441876873999861990202669449798475698206322811168704907892905946753062829343711646450844104319695392861799306572833644731737169507311584606277253512493665506446778303325963228892509091990207035830688082232433650934349708481097877011712665138230100132124866322584800842028474182301416378239680350569642534785975537604497874238472044736078009684508109773051664695667649527663799526037107710936517399769582012511254733787562617413901493005012272465849478036796181632802126000338354722367476244171399677906502704227183922334448975080848325771014079917662169279472434272145657196182936428963400882118081100385542821082829364471837063075086600046609508838821537758517248300691332867717178157782767041278104753522043328623303316788923052567780803737607333358294179551826357175164411020971050666648064145780751538947359352741896424187777976283620646311799732587665820666352999832798238107935197639329227728563784981209928791041751607683197909808072738651542760051439538763178619290569584286336906630966863722634896699150438369018555039408808908496863754003239618102788027590359090597745260127341053879353779679901722650992256223429737083076056889077589297501775086354615028678250093241804234476265999380360793166824601609470844006957567750264175918722125208536090876126810926922125339568509405442356708603068909382876559442639544534348254710122977537050172041433248990276891171503477717023452491683744555214942363646023152024034200415301876614098337548973456066107529645848054028519704434072899738010712685084829266620934792999547438193584023380947203183626008997018906749215004538944478631687612153957648034437342969932179698403855243068666496530747738782786511369333842287155229513880400819065579137005612779599939419139410414947739991661895786132380486546905966253673425065077966997738818252408232211106901955184395057418935125944017260145816314268328105683531562239026188028711526544408145832615633452479744929327152987200315007942527906652892126182187156764071022148189420891978699526424947881113589285506931648112933494418168779212276829907393424647550187444863715002003236331731848390249823456561676564398520476172366434456878660625159332242999615193812827983956261095987510503856022557071868550802851333086822110535419545928966051384397363439973386150664823883237089254046871235110985373959960685760367733117383990611920022363388813094606536895953226566302406068938558665444405815155138571130208583240376697968796792861906041823715681572173869354272348280556905964294071526866693097614423337678329587097765217866311065317176526347030984947394193275598155554670162947223396667378523283154512786576682286482723023897497159931789378935683564890723448718142849904792899129386665915970011561102458863157715789335653863191457844263467332303465320673786902554847060155808807534450693390622676700676309351404854164547577520098468602907338832739568287694715174154293450598251517386100841121328157449031407076342842593758829456582730668971219050895547734583500325812479156413743265838199173693583062098261800438874532627380602237635712846530869174205000177924656879768640914495709929862256585987573934737717837417952862611097434645426022469791652794802218608926439388134128723652287824750709815922386200685900891220771173025172741385325921935816876423806704587918750360671135113332803964508194116615703334733213857172014111971186675920930756069305259654703243838850541232708645158897047033238302112316208770658495215917024946601731462060339029356860318871045418663107188115729068115964905204087306621564041205261193307506437356430703107851157565068961390328343975198337984323768208253419160716359153790362400986825199597016900243903493476876826923835530694826934778052966514879722441134330640837147986039981414809270354835334457193954482301610899248372233455819789531085467841073707484290617282173503237947164113560490173580585223507586405237299588460471131417932672217491813463984446235879718294235881719524280588793620965835989031284853047808837858293635537144729561852455982551311998201053983185874208662492658123058597081878045830297158515938654378178252059238290487019167223272978125504727454229645070298195760179480406660281710991626691371395522590788136382442771629774469546413533380609859965467854270300762654038324701978756823000521277094877050145683032048781587048979644871451558393742719877391844169709077645678546895772573207407517669038380740551010130309127815496382740413533248570414656489519472244413826753358172203616196608921285214336485369118561930063663854516838286170884762876075426280945312400466754051316115803037121404593804630443573248145159238175837011485964733210146311423280941762846480266341898374692933246519352812668111333330828867284578199886926456341359086153685720226511957201690532840272188809984509033559753444071269845695342842398720846366240196425291503803554888400955560093219339261898501695956739978583821811783820210017466228711904735942378380819665259852894827644440050759632123788971620030842631866302893777394930633490349759296995544725023548526675037826600648502506788586213221045008337638535024036968023081781668406689694133866710966163318802656872323556246321470038500753609508970389151092836424840997954662282766682822685499727896278282778645113403066370829201969426209208240516614856970224515686318996539736569281984428773345745711789066971458618162898443014238476229036367328531521838236213729357166737544064359959726593253991588956980715164047794507885524754946794130302709442213008775128499806612474610477827613139140563876144234427888782109404933331865410798258626671530912829425069616416420151419565636606721784750913017902045997506910453383186799751010760709957453393951174066674728096093779971187631322614882877360020477641256920375616762697515588731440343931048423501659105426035565281390188563306024578549833111805120446340046461386860553569367286261125341131045239608235723852732125795987311541893178978376731760091174254126260015820104398289381338464244563881296777038376190412189220862801604958527398326193290736666941154958360188048626102344650460577186126064700554867207072995559079911808318645142057836076822595521954822863827161207572630753939490794709909035593555629047253660354428702846279902354822332901713692680555162071620151265377002518161941341738257565139286931004102552867112719494575698247687896957374991302336692727920786229998820098262107930334673526239767806805832207803646376024161411442806450212160013097241063215390630918846303677027659609241541069913010647543705769912024909835240990882041659669799601131789259812129088314255959551542187349220194117263325444831968747521498695299575302099615943694343446347021998617215732839813004246637689006530553344378223120192907964800588242063957702407913466151961941868053696278651541228734135280207646216146007197050462357995817986245177762567494933463710753649903273475863097798892391459275684170056595416092983599544033430197161228378887488740101534803562743596418803139860865804969048729876499649177562165629990338860374733000999761694544669620861882974378032422516001311998164735816141078889237121977387371251828141845023327230688548773146029533909750002924169122858423075772675907244217279228335904617342273876063592655261762586300637434762690964620503309278907716616524077911086286783490175695607849951394764964919283945415630785914550758433088474114600790754894299096840605393782823921447229135712788139405845656413085426086371138167428300744986838432224416967991968590267309718766733684537547930022720657257616444325207725246522292306131927865953146754401190160255547282441949697565105188624229219827717108151409898659797859588528474388669816948274515140453561398353496067833768567841024841060394729568256945433632964198279665048779307135574250366654047495710599335733700905237065729497385422862071871394744823562462071119203748355642449653446687560978584716107835131185784344282556346366024606017707819138523644580226764410903720433918574887983671874043499627883699422212691220941533292773678625984860396409604515740134163673141950759992850535062648090401190104413471832422152073660210517147051241898876424835307620495773255575179067532664912964384993501480788958371695185441136610598146195513021579108092060139955920128369904572510059535510538076951229587362257841948538068489849022462887408505046955115764633810780494619377552068834140805297489894950082748806448295435647260855716009275163863972568173073661057838992452675175438381537810310011681267393001901675545071127047266815942068955792295168118870800051901658356454833615771864738768911589270448939289327834732833987099854811614671941451678484315377143248978634007273470732121491439802603104964110216935438867208359614785389716166628162293471955762728004287002331916604874353291438748090858996226657700278017612096283010245295229925738213905629947815472999389688144579416077509485164302622706747380627042660367851854979518333647506072435309002404551006789111606060209696887311077601663642875226709293791989342353131464087471118674228502285438511882452629461238739462897260822535247604614586254273088405096602945365897481364493784060964113207809680136359518718631432164597386963264509308919988192388541294095605975991710974525531710803009149729048683723668694132596190420579442968920359877997108151700113339025388531994638781106780862953549627734566008282940160591163619495461063827835259728756151050205743387543953618204282378068339839747203363553400660311088194954686724561139241264195538206822236951955553653157334156559394734335925865808335002534013619265373588349230506834401164231626945346892003335262579557104050313965921931077734843949711120674391529845468727390189109002954913560144170590396385606275275428162834044878572736975159239146841371130637880118807699616464307585508843197973884711558142288047593587204688335057504272137623776193455994430988708206845697098092925159425805577719897470142801929644742778679846680943569686991743905169081711327948643903511941162919185938854679471397835846098847493108496810539994857943100361986597694667754623373057276315469118793678141723393645470745617671333340704636357454341263930533507293685042894606861888723563670212352813169940391801870497074234927978294318294862895569975602102490536089444637635203610254742350445215440334314081543950769512223860525098901656587922841839512700958513370493793711099020318014310341369730390298832627823678725881032938698665498986671777839894952020003676808233395668430259146843959519773419786538737741667271859759483321299647368827280935993517055639507526887653920184122424848509467704348094038450191033183701244514537119326926756815010870436908585875656389827684725406930198453440108602285339482683924258714386544382145310411035432713407722823235779621171846927702364666113452510548599548528061947427129462756406142324926182179709148631102532805704525791500693084760745220578276762082250106606682844222285248740319538483467411881207848654953478642486782518320983022946611019044418267142409461841053980848044022047595011408652817229245365364822652402600905890530479610973263893707454999162911246809901843358038498023044668151722957212348711316922990790051258994565692679588177620090638937197854108097061049535337617075560720025022371805814464712823388790503475955863779406037308008028046587386164726554924019027071758906756157389651792602788633020464984778934812580214843839160318234884651477178650894567835651092453672485843299204598727251589243564191300159410285626611108035949084475159628647795534773896300860649197643296897780474785633544431292211753410995398216437481306908568614725681665099468596405282374523286726169971717463936355669097929194721466492374608470924304398724765567476111950337447599803513670321446149173927926989992037384943094205557322722002732624965347995609130379891794032624527210333400790077385735881617124046467319316057426506016195697896379638081006226226723459312483633591964509958692455253542964733893523773484137824355595161657875032895307815972181973354351392117751189912621082152632164259531574685480487061435525565122447146558595004655600807339199489643084033935796407892017276326576230953920319454957666088210800246080647488531638662525226671352658835865981016612097816109229295246378956506061915541576058486793980824878064395336809309889565846220683418113583508830119740659848801578845276061593291734811149613683446387787802045619107672595294782803916806272697635015345713996287229279414420981805883308392313093798207085346756597590215950717711713313435240265789821592469662708517212795521438823422396204890776848689164991383276334309228262453434870002687494915677873962227055524272089078387196051289935791001252626757128319262432181331229980323896395717949280262210234137428153709576732749252856609251961349333787518297048010102441327934799775031474403863163870955808477390315397013275483979850935193011140841860919179727236826183929300600342163574511214768511838052918977894666869236199346645689356721443046907186146389689561571250514410420606844580133884391722589675275775140563249089392129795939298667713732478446973168552514729289039857454677322530337091239733685292970040879022665549381018867357315679317090465000368286786899481816036202324081808195377265834005069883919785169949525714474355441853985516932222755047198925469075453117975078495831966885573129322110080305373099716282553337775434880696802835202350205914771045455929760751481417175811272459704754440139991566405265522157437881841033391686308227630723492837192131789516700101128998079333313377068795551882713238871071889211450628834870089470331155998595116694720793703901682065132112256778520906978606725411989727064489354911533714374475220010552809693544149683830290201005017823231869231291704536462301258359671675175192469006674162574111403183930901497842648711150917141769358066491762219961406475850202252538214143295840694553266909882751012113395533691904097157364391020631346077366044354863454581649152386331212879516125521944537723266763090301013305261712083358619879749421428676204705635671077967297228696950796001288825655375266497956483952530815479516614339322345108061082797269483809825972921908761976268799714135373004246467708399177933756537874703816232144200430009302602184301485417554086842044245925240414918358304237272066320464044944462713000665767115969739057345662456002355733482014129104659676097194637806696773336433968347933360934414361063775235679736773634665170904227918167011848403166682575532154006747677702124075156857726491347455476264719519073605921064249502379374608281707312023100033739109564448656693938743425801348009352320593058676106636114086046736719157704053967209355602384578752436424633908606045047568158141096749311031088924333518558990283076115100308417024345514048144746479204172797148529598386517105411530077759469120195120335256718221207961540379057108632821176056400507392047709010755202196586209262701061032266016644865764324198935507639526388565731866343751519049854352293174366677357658500082708962389252884704510562381916660256852309605563642845382186384815907685531436859435419930018685508400675352474088151432665902811885741772166616462188696339636391792676737642441764783930100348322712904537268898535448892845595180158035335296072561337669640421904319305857749857069459263791396419162906183068496114972873361370910780299984225835966159503754968287258771508439314394175987067779311952096221601053336100028306590905973276252035754527671174731506209098246552088459530273025784417525850818211672628657519138263887809776838233680496692045181307876080349473840026251667036915856025008727508290974282836906932149680504865224953907200646815890694514761454856661787300145099831338143123743688035120634212075226598312896365007199388158783622612459015871508966079851626480674789870076676626238401729075773520954878291550597561295287235994675463117315029158879074404100317297334161484812919195956105988917742809781801662841243894616063392762673210754218530340169291241702421834473130435811371472220317606671808724348289511168117801269988022570656703382858470996171933466777938726310260269679358063876861114880010143887857231432794370956696883552397179972287886018676313718065053794329477488914077807535585376978397479409989705689927908128137691435289767698081598532721478954785914836555861331445918732119252763616187612419841227547257793816160968555443872219291385018096703847042473889258744228033631367979759603453905766281252345569323645469480656569577381278080368505941772989509883617899263168976594584232953128408241795862449150066497654267656624343930975299497675434443333410782004577932776336320730479479086490631705628268859543147304258294865688391468540726869100227159042324497196960959741657768363287126464851007281508225592012443649749084879942576966258366108701532620229955675319507649644467819290247616365528733110663981433026661019830277513428139679009647029635031751234774477438242524814339604799135548547514619475578364363784883918928512630934485851652982344511904179367534424018178896425586470800972736776671626835361466790307280449425240719476792774831842054696493060610694494146589943650520750962622576576505611887224091752198821876342390275700328630586013560167373167284817561574936792869898002538978207116206444237070972040927410308464177608022946102824126613992488763282033118368785428319593975675583701711980297895696644445065772833048793524300953987364338663905561601551610672452155150608737076871212289490912805493555384210328030110853620788648973015564789219575850450540085030643980390743232214293085529830805435207277178688076740953519690067477153002095079208352961611281234697254969563099303544062854064439281360998067959298406103163437788579681325062478819818998729770187384232530402324667944867405258422188452096272458313437915444609197220381723028142026871968140093510246675590160967110092671736006333049179469190875565304894977622803005235340889417833477057404543224601674130675400583510433319312127257136849236213127217672655493979530702720219160695282671880671110357626036415149197993301882923350527777702981817010943618151676596977660423677077091449304425000846355704798009167073881948441389251430496426927370035597764672406544929003611999255160961312628422184876279437794922569081996143008918918344014251228259642286964216137000208166590125932290991731354987274816615767460643607928995982987256383075217045341624121242520574202268581947675177817874949168913134696939835678286412158347810013707431296836285886540332316997066055692205832589540523426826531324494461181249447181786945191429722339321852544706238060802287568884386321271852842652601520590880816370899987390331868135955986800590822603340754925976133168760897754800078527119350615481955144148279139759828487535333319506896529968196775446357674884733261145740159716994456263502616368229509805406920444331820597593681985928656164627283345959802208322348089102285636608273182263468109524169683359569422093322843995990837466810682170543676919170569726016646221459997161954680909353714270286587737301775508570155386386997070198102819957512669874960740425008943842268441764365919746155744856658146465910074538498185563157294791146189459267482285151155380928298086370485906190294481002257409096483602112601140880043152216470749743197498464892643755811922573377719677339943266492187496801154599767471728439002920670579250351873672804860225988552650076369327101331213905947204871219773247275341662981568311840967031010038771919027948409777600049008698035375486682551594981839413429333171224843098218418876209659191843527380938273501059203496828707043593159729703738910201557878666825135650800519232983622854729742838191126602020606849434491802518360028052721102579192650506342238002065161552792682343055540344783023940912319980767946331582440078975695471858407644434385242163892323832374480388596229779915289218945175038667466152752004754874080153945450701792481003828280007941318186309930256979182793877030633487838979314992655529488984958694673308978917726861707789452223256536373749530114406319851319352256925597086344520210666130501311979042375616537597150015530273208732463308379264851247761823237198767795010144558999104593101642278763155162381194910277367988451964590723108196307366699732403425295771687435668322762514349465428698595205199916016768222990360059145525757285056584156162842141186228063286474169342930612904700138879100915212858816403384259933900440145738488143153669694053064229372518963301690302425855196513417470570715710278923513896170169744619762583598784704026687184025614537252108737016839700925262484908629024668955043977399304044383769388898905919321182561785921784964248059937213099301262642659173915177617224976437394727574231918224011408353256730224521287696863143502782030152624077817595129958032368948932474676094208281495218700792597313080636202855498862819657098501013798799886411209178700688433613033945831990422955840487041155887506907569514305860015203773279714591021987921275576071927877983959059658151323986397634528195509871454395984732622003821690105656417201938598383267960880187197085953162065984554981795539286955884596851856871432406521718003488748750651345409151776176098046308638528243081208645560804322689169581368865111934296692749276851291694663891799410493452395802258785821446208898459320403739253570274504550054870498915826648974898770616865079710720928998616394844428420509425850023436693428232210724816345516946108272755614429902043043656427740781719880020464041155941379190114125221563562766740787114916308447165345947841223197930619936832876245252964913087921247676252276302364291473481876466976901869757951492312741858479253676955222977515115229121537788156318931473178318497068933905455695759736481880081253560761749150936793475710828902920215841809884357289523029535810834778088905523518750291113770881834010285800839871675224152082571215405412210375813184603208535443175504836236367701857730843205881521402642401381295288133012965835315864273211917163088247061454341863515554824406180154305315899502149896915104695290743022450282497839237314563953889204321269690022498435227355513350313830080536187502825028425049825681095529095590502439446301977527882121259276742325352637294661815915065119959514419901911406281391823511126231048982822334920045733385533913629723024846864979303899092187772625160994619674812954080709458835612793565386388605557986991292092477207492273720680923681187308661917549530419458246208551233035451880714703059366736131686485653223126204946896360632615123383709008998439977387717875503952009705824537245082755229985706198691590727224805136483767802234143563356363681990645300030999810601469630966077720646121778990352379123456115709884661596187086894076254998537396352549963939591556005948551163750530267013491437555000321862039870181082246114981397801142652879114618138789175448138974188652216557835119617543834518727920062909441009140242770879767743564145509379219452746794297991839359707405758586339601862623411142334250990103708479293601257594594003065168162153254152113244393594842641438678898595511549965992305917958409344515647504047695072786200311256296243900052428761926885415180778040607528336803528316920971215516851339817041094442745488883649706345812729577116738668178899374245218796516241422571112066052568543236961634082893864575331943731710847817318094513810137495412593405722836453906972089125083223349702858063451712843354884031546396105758196964948287732407316825490665204937288903347295875624926932272747471792728032065586733274492771721173921610539958345301668944074803599620424231659444870419283255499633460045488809680524552172760038025831518609670210484726527952886344472334493220733311683669579994157357083475593949665727806691503160593028458665245744783111409745510269203827525784694857807850078033257871247943276665771531909427771545912085688662893932161648461067062730395433549242109273505420819735050983931736172046662808823984725000622954355100473885231144039021877016872813673894990274474673507622969350379422886883246948795402927684211158182054809191955324866879167215170671002087690010734643007414997867097245498203469818518182162860135078616960660253505463633892540579302774433060176544408178989671625958192608353539935865552122474780385285574295824112867436209129707997275650009738029910649732757311680463196987908220645166727746647642608868698781244764766143056895865375084563838598946153977017249078420814849520731738373455944600182405651989401653841170923202481564880980382458970937929716054520959568459716584263040069507217567164085602407447934783520032332147966554203746674156296414826311597754828764166500632700546240448400246015953372761253351326560946942318871135077082954785020125691295179355662979700277171980240207014512159405949034062242208085730191145332660256572433344799741523003326892983505006478480997429267171778559653278594208402541213448635509552609037752041063484634290827695379006552651331565841853431618843694211200864804507623885848947422651164982013306053550295130464860006909077724986294086500764199592418967705581548903495676363251172744615778592261271415988299412840886609090172572580974677745617680509033020292521050437696803038564742383519657451834237606684397757107476695069245479835916687445122188747598801009115459306395928883571398838988296320572707446163007202606482091838882396647363130346576541604696169489375418538618941976162835737523056086191088455966407476206519939537359177176781172889392704170039386634572626694535477957756466605304942723412003248467651678460538174646081412110580730976832680650463242833388806239579346071136598715357060359032434378271638603557864168024653004225852706887895247749820218257862780358570941851717048544210413485796098542607355651623889325435337174827975034813118662077175945226697413903921600610989026661022063624960645165051923337613364006033561497705933809302327769743804991968022570059808372932984893415740674934525969500914287730617045923001111633676318769695690504776786216072553288022114129133864523475406687899296055162568369005518260952468955915526405926104186164722963869802062435944465563229594327578352277568341854742311137003888268340907311491920997913022451776973394540458425423446534362305969231183234789148469727487241950523332203146053285442249191425004224602875082077609627680814743840980115084315488990071636188331472586173370434198035439721649585403729936988406725828143994397718534267669592570109854558672453740810147665856358582291354794903323770512688492048360890772035086056050603081268352053176278097200055713846980913963420000542264713670625819756776062092833015351979576915339812497419601418710786612909587949977879625545769058969522015806051456537092575300801928610134142518278152902241402893067038873194371364254379734501532610686872288416581726311691811290061134524737575245479293309392686273031805376188909588950736238930422549480790720847900568555478726203021379961332047543700641772976264758031955893027394974168539440044398327559712658094802230201129962593918043512549591017483255379380039247435583901156544994113414993729193036496771839812034647425451967278454706574224065213457446958898788649650693925047035962591790422663058672315369702012487254955079714591119526159575692266620397772284392969228871467317576632739187198639955439607263574103326705784750693523864549796696900413235236668260096319963917604643577318361722011094374964419191669656182488963727853363593099709142143086036176167311383105451143183590923292353812842153498411237866205910200239791024848303711964968813725999612414978020767755682229399402441765031030202338289461112224854500239607906814568464538585290246827405622884092611020353714976779785551063508143552915964282319344148112025164032808240318171610257514798068692081236987215306940319993608029104048122007094734748198064631182669015467036176149287409209893724732454380186119064622634968730125732993116933394014282216557612203189798851997694962100722549890682191599456343172650697672971618078258461320540807658151508168859784084100053081268205219215104601062357445763957972558194914469700389273530667728693346752258896444073962585478789238738594079111570687941212333673873484971713530369526383895102093617643334320803254770669716421056346632424070037873655094292589078216578232677161609690107552493509004361979317753548628571134226465227835561671025177637765932771649152577296230984695717311493155415536991400980943822162049497467638781280206962561505266591895018556517703390613054598750541494461302675704857237048069786643152000678485445187972697098719993489058375240514354897198437104669213909146701616149252947978064331889818611962081258832760765701147560550607172918491678102855766310396613838590167685246408290474191834170127075608925198605687132700575831532566589599927793335636393002137564273202644839965579955454778247840438727092348710523173100663734890534937306327352712443195854280549179807678531237424721786842193318354765910133780615298845436911156069292583618476574576196275982202289390072545732411728021024266981638625773498399825419286627600539883398171912243802739690328499497918890203665571379395059930768084735115141855312375094026735311247777156738256207732763387960782696063902637429877762008586602176060760101613143756948120430592174578807425572485398774382256518409735188612999922438961430081576488193308023704039767128238714495911132121735751816741726753371795875209291470326998606706569105960063258935822048141896904919520452182827067341352097379962447088487391911768805844742151115606300651063008370567196909467780175917188312636374218805497377068054571401995167736003951561857774590598844649496046364515141919407716952740831075549728706672769355262863871371112494990037013796503391464844842967836414267765862758955488050524045957133224305628110987466166547838580467676897943427503921564499730425376432100413818051775805812942787226939120082841631637431785031954023487556718297785729976373145301882337303364911381558543008282465009375448447693603674318191680934771794921786636731327194784033051842304799930948004768653487509130994737587012268716503981759353844518196364720170419429557216123044016882890976736028621045113304218902084159545090125269743253812447739940226356784997122594624130696718912634066793706923041807079742227872978647232780234436914162488698224206855949362035960881606263911352736293315044052884148205542421813108806264719851382403475718064424697073521048780647851790744954695850439969235279285067144482039175388264029438154934570273645820734831679454166665691346061260739172628299361840660301440964293097296109603627193445674419762597965876074278854659402728609573313561613166784380290242423986262920452330066375642135680849539965515569825825417668754816621411081277471313077933235675689480199274860580132711691185116479389912367516409402089971121958658319195519233688793589342702678831463487611345800613083948202450339478731058761414258682065909991130156134476058427737671482530357690984889461819849401733146593300779901411129524062024076189982490462343887651183894821736077965743609009336003610773341036990734995793560156820012313931511022899356188484013071969685088760870643901684000142497532691795997148189711627242464590917899124501162962491286980520099998303067623451653053359221537940101883299905354801842078999915580576856832619568041772307929015700831445575386224756898050419537334926833815519214789862260104921358319274660856579329228811806018014963823524836088763572806437549020547637474241701522142240448393431824593461429899308958982439713718651731470183567870446627756381377586202491675984752031293199126450346451599153442279216527424771863083585841188092937625712999049227341964782122755057205385019192498271153080979153716241096009806484783702801695088701472989077977096914761551181957469865462217677489213405832787363778488871040355602820295009256003385934299552082623185095804995262849626375486084133145182062014795455135851439934470606234979677406907935651893467038599518772457035929579439287515428448302477690928479569725275985540120031220833968224224918419207944863059915647370051570926643595539974837588285961279702689496995269800578700561703028670579511465620246599720526006867028382228591848942534874489512846450648002051480096773402195911686964536131827390966030905659656253670791691253183974633286553156627681226617324076282547654008563271068122153152874659607624816063092424486758548141948094067260163069432987005621755661672257853746254608282159164604641342662474835253517760409357175550948249028810202144814305054279007558122829533027890779936584014547037089844727879524094806217269796796764662133258982537892662748032412533150055131653463733216267980183914268188084737240911629800633947723387727203333604428258826925103030992351810058043924387768932154153315595325265780006496627801487401179285389635914607529952580624474460562445449021307056426687685062158420484450305485938930025736227716278042238884887508526369121876113251708864893892855498462547905588885787604582448583454745812576437148935973007332531839261544612811893127830543195862953387014824598686545375229242567189413266996291750134582555060674530305601507668438146514734789414996058299352335333452170800623303000696289271125657070935943916094604238631486796681158990749363653402062450231355290489012259233035338012828547515818115591428382977528763782464655573686738928088689591583923151518069906754808097742573054219520250116069315061758639607570378670520367260116498197643437565808721298547246729018608807646395271791925998322507776062882465690447153693435253414730333416708894702566138667541970844663285408194578541901852106244147376008171177029884684958251466878239530982451408826261703396545737652849049278682047782794365685607059236351683620525419381429063823417529136651336314465374929860807838853050996019175413950994354081221244320163054761846305393541973572866597709526336410051138477284390556829869320972168198952582057085800660513393490201137490960734667459456684657274550371927879377516908434434593674808260912036103548827044238841848322487461354916188278871212067631650448752746759910055512176239618792505944585192683306082013127289405450694049252970089823988596248491386190761832219821466205584741837890287452641933834426278082995637936349915242158691381272349299603344268523333731732867462747631122301190497908087889138414090840315070855810348296721470525023572741675909495414205085465210117288958180112723188745888779153016955503256006538566281734391911687007648233820125152794117707189267393765085756157657333516540314763259188332620040112697961222705362756789043982689117093166048465645798117591923096037020863891293117473941334670487715064546064417786925459064295596836573818436706387200580402161662968744312045118718834667657600428412206071509460212914815388575979783860603985101689352693521025821873462658796926752499589094482401950854705602975950594532513188622124794086580806848655118060712237897830166026513882048899199063914614056021623284617345032319191695565001917858287188310607439733872335449016372881770613105574962488430043112334432501577248980560544914039874515489184974753317542477125255660385818827665831441335281514757688313029736945497648527355254736751684761993492018041226184322193833912495337341455507880158269170858363414656432425761482899314797880935233760375341813542037090298008534763073392777658639895554647048459327992929364296441145433918922409781020110918702923187007773791780404928165375940019152777684280974981513594352906987346101814709531100552188883811438546153912673560644714646328226915227078939715782135017480662270497201370957866026335967886156460926141434174982074084124372575187001048938013068457569644281999765713411378980169433330305010056599768961604229922949994848605155779897604730711281056672664255187322072913012604730868465503723849284813435764589763514535826897044052045010271424622020604915244775332411938822569732341760668472859094373490886097643094483038466993362320486960535741059604965456123934065857373527567171168220327680355197426999842749724622952679937437452884286418516830965601098117265670811684634642144673183713206234584803538869555896817139553005466102610264045289200309353873128633313559531948932229676854800851801381641904923759924838649976425652232681035000628745310212724898100554246269133745544135459044763447885937520780408396736159032594094785715897240132095597760619243609344555168804142749231580325875779662863354611354024916278926338848338323408782946410878986341343523242441696265908480948404456424203889259987494553822111629411610762257121004965471632995318626383545844270252497268018777984187958517458723089570853622075285634828578816938374429578769201795610791976198212614966280643039639075611359257568271789514356739152702647905727971891913748723748114088752050147064202018014078442615903281123774375526781585044820059239910038263407742768472716167118588886642515371293832551351214035132501791188430663869251833650887818958922207771940974238977510389979146247149943430464202466547889506833027304020263826695974396329661142186597904487433260280874359298836768108869520967143931079182374850962283322140361525558157491096392724255874304702519958644631196416067932221634834931255304351645296516366554861121428222237474723854050109746156694357637661462396543016949031544638286423873483268279367094840105181441739751613365186400918950122815257321044807151158672595311861256442210352355713402407244701916018514900804737387936049539889186891940875493020990682924927446150843673763722947489749906886222567490232766931676015828968442629496775851091711144777722450761599196088891589147376165215838638097024496911375535665840096500159329885721873304907690824614781639963752869214731329273603734027727725219140355508902252034862851139474653060281823829751323703258486626193877174431261000104333103639161432845182091739900437250869008531171810106463495200003290567952923403290545451099119089905817955897244611630444719430859774215428491727162781074751364406054650711465355582583387507106587000295419983476921590362747566267635330770757780087732442679622940747423296056078647554759970813871820837044089348832881989481261692971376082116436853011961945728348670866730177297433940869435114876967745844631815817000414958883955080182604921307020465035233857299940177949172932960662692780170003228681359115572669387192152738944263877606482917462606892478440361686360406432526720311093861626696053874710676341026935606483956714198053448159751435084874076094476950330973686506296460939189305713252203937373544416238863717214042578052174801419878046469550966233809473167709522208605907276012237354439695978986209135179643184571961274368805921694710098236112776030090743971837061887907988686311717649572683795170614779661122921312131331806095416657998892821976560047185869534620725464679120714392202007911795290686321170909301529204533738031230366103871093444993088019881227983151682096151788093547382809875481244345475675189649249295095908232691968079287976613601420440762208040701597525022246778271243441376740555978664734704121650945484248022829780151121577744756524497889261375657642362472578364181323757528951962962276925903587611003710966445396407274573597238747818449013288423646069717525540787861746358309331320423017853862552049688684011496018866999161724327296447912781715487265627986904729571985664344564919799771778707120289358263343991321042849240895077343588896826607653237628200243925156401439272686605184825760220670256403654358551759687350014214449152952384363397242241122667874735357237641719511811370365170614295899292433075938534729374797587094457070872589643044758400769286580525774428060756935808767390451215926359265713150806694636575310757135317465700840849068737680500222455646004368104727780650228986380176032365457309258456298569982551724756123156216998910596860380646874868370245695528983686490733439319697436644454757466544678863031851866018452040486316742329615813666647854575576202767107511595704014576807958688539308421845506838624741247104222897395959478669790100431646311654341416249039591247256477742497359326316125840557007955156825276230502653748495507267320947123762933738340252898721400139085343983073302821496444967547285371071669461445291986528017770473745930222226035948512307728409671713978614342748489473460486881916609847696056942191918053539200176558994271850804352777555785951450950178016270828962019436682404787538247412760858688565662702236021912031031425426464619134382979064674705226133037575089876101358208359555119977625681655291727745608429078238384040229821473851016850880697158723708967199993864424520366780571064456296115853500831387452973414023686112893464096963678294804548993536022941797783596432897142308194207500844888753560585965532028312624717791866182041213818903462514558025201299065934151616484271374214452300612910179833723704213499511570122103311652959043932874896208120237717732954080190390823112841073392246075679671203971308961611219743184387347399485164437124065537496778095637790011348622030870260113697513913557327859497359096690897562548656513021821018780586260213183916081709485921932095635759224647053265328465762338498240611504365714783699757088472994940238710886865744233202636526417128014222787609000815262281170767830095570617246885915543580861687390505073633572647450361284140911546911671049028282462586259038224075375409560037806614578524319317756854790249075998771203962079879312362410503415461784227035366829196468986734774676370305459202931105253610836006656160260182025156001118057717627042865954372384823628712155160930966532805860376298879632190600390296226111519694517165011938703031902255059569178254933778651998176451313792679279932384423425882906870000439523949480092088981724404164520432222373045137987291600104469486231299579263930628489104268047148210515530773104189290724468689395542932531556867269822991796365178885667068330948602686090337346202297218980552359444301496807980772794427736934789178053444899984106774079076936415718049201208311506282570374177230179389578117633794071002732170221984306346562992297849230513288539668191412738697798988662176745822738550407825694166834698882490500347469890937448840222778674771801082877062631332230881747240088283029415087397799160293224873952656059813916439198164826341516807019140022603968704249820272319388034756577470139823113263514094934377983912415324181557249355463915263136842294138544010848750153579818456395251957508095754704255374201130091028217926875527331570587285908007447950185811234846795286106036198510600935180413933354045574058258903572426717121742125932509397288055817635630733123151485654393220043152107048318301740673806346151451731090996304510834964042324240276654611890123890855317656358848039764774220512345038137311406087120102709556158174815826142880226636691025396121797033126747588994528671603908301148977810543660247520787882098424631081170945171475455892075405426188666354909640306969054103946286870020026938382492958501623211947489436005263762772330308588561036777871694659073754537895949465265143251854634758266824224425418599624791634093115820530528662172221754962353676751149010868818875696242963650905544127654344190678227047686379847270487270011458326298587518530013545432621849329256087240750368098809004654127935884941720504825746403110071580388601208015098126653173833742498366013533917911052655636852658285196532917488801324538517923078458115408052252776068533377501380806611050024194802889872528940805770349425796350664044665307446366390957430749809477829538485277147434538728500132417235794874797444341526426728232499785826588460411017587250921540580419928445427589071387948065823542428295023411065244369000114661291301997227398612133385334041807816472037231741353306692954984851181080038162538141174949145524883552729709912435515706816185048804808765802753400698473296205549900855656568596948228773871250205118905081875724948035590257017556561888079781524448395674381593197915016562644673399710867512867162005382191686726591304621935455563265367948488060297825103967098514396364757572739694166348925357576219769323061285484480827573821329398490576168227991087354356625248143882551754967858488111140485598916493867919648255589770013878981709635820073235894377447433153017279810341499620146027600084264562945549728263934760545468918916704450289846448931266857420861544640902843743808690956198267443521645896284902159807259352240180116636606545224168744656519549870243638544781523675539071991613709647936340157044325236845732194187240550965519442148239112620957889998341007713965749256864160177586046129776844970342011232254905779478609601995360661250386642032669381183866582837600574227228769866876043730043372800696626020970570431195242065787747185918751210982771039515161301220506055598888675695929918961468213005090179137431014807158041493367856149533251897851583260078477141762106937608923129317474620582174143117493529827456477912846392224698591889725724591802539558697759627227020388590297468217940099172071671916644183501605099239907825043563177925649308451007402981953708537574284403608039086779619917123071973727393105882540866522126937307537468421835621972050983181626233308812266082003985348229768915675563980968208910982354462488546432918288840855748066168060359785078656654098953891596036821936492088630189712413172963392344423626354667920850926597753047860794039509131616150976028360806409286290692778692223385895305462786388874437646791525317680259879945645515583040497536562314840457669342132537075127936390484402143740115662268722237628931644998997780279530415978572313451536315749310826668451601106062924859432297721916218133012629803576257970317625465680206743017736025663629566197516997059397290752999622574899281046359345342462033826749918207325194101218935570961032728737720228223885036097620633571642450973388557127027461595993707039733407900214412919024066106366578737275961479740243836721079717996197515358060443565715301760863175194735414610659132849925314313532339475185837900364649278630375601512393170664992946750630733202873615589869049634478107780719778020031748569240707514529874033855548248471991944546860362518885826085630218439287836105315002169083706962997751182827057398112862422713897162500034158706812197217423296030974278181079317004204655970294326797135282289941231716647166930338623895783022893792595213402177119401808581585677226444179351603313766297551296755457406346717279433973733530123051828651164647755280290749024218643393547372887308804610331837991553260796752309153974040857508026749072718204325340261812354043582771655996640064720337878277728448091072624252171805349559595782380999930753259583343283122333547594987377408694034491581112853013843983174502396416611685080054640600555951658537284311814985200211550105614306048085543037980105186990256358873484391136523856343385105630442947959346689526069590601170889825640459576343721515986627301576708140701617530036921571885816416342019926317263223608847825732898134292920439084657781928105474196905154012437684589526347821733508760203455067024198616354211170854534654517117895093661652933163771037746683794469630371522184132584673754238638652607815555497116106760659246593129474179088788716739238176904710143556613426036582724148862128078868731270355526549444209092552772285492743221839414041267341129909790422913404689241833408387814394615458642976530271224555798402853934478746573493380887484489860101470062210854150016507897909019477514149869422803937754023807817159100218712837133247559642383751374961079943667663617005005844449136962214910237055733839699816020138649163649653063342539052577043471912658222335482156949782124705916659862111098793344884691239814991505198409063647417328715009890891165147253164434323769543403795012529214046740575346530729838382559478999486968691791512792917491005913966523956829715757739827779196152188279012816662015825892343704820097106876889673806175919447258655491362864054486306785015762880459360374737047609612691739565488486875204452570013090217353157831228102447274790495255387033233909461475566034094415675887216235519125346254778293751498197736416789127102050293530870156232506859382222818682872290096422683732791137520628172475276907869400662100625277539641563345237446416972544003251888882542941587590505837450712334995590296652793286209433084989835677491172531167045703530599268692989737217114496376334544939941425835600229768685902250802547499574916361639767121317883972613808556994925533903323438501322157473103538683590736247207959752889127632204121118812411480805447548359975558608145987925049483358635570361042273644407992597706255491581732616913073984656982568356217526697052572203051018901996209935656949835385121697050613421556052782533916202319264325561713961641285746036401403216115261520349001021114456113871687062807662297864801089446809013045271425754555251481477741937636853910285213064278940727151761541625409761338921774011693722320685815597795404167987497500867890853273561034313877142446090172074380942122117350244581863332896334620335282287843393904217658916601189388003073785396921752954404353971859177772223908073514555780682010092521528148968169925107091091756988196204251150465933310011827506762087477482238520569572343068398601167021360542895262344709059730316115426238795450331414114505636471131467936108928354596270310755019868168995046163038153660019826389305349860755816294155666409845936080505379767848505100728912505195588271042482396729351315284706364515335129029212433032269267851141959298754993451750958345879170086178029485302096538703272067823743656408396685843707107815897762870361050191599211239127267453652050015690788137923917246836517411096215006474881269041014828290963380178568803717096294095210082491924362255377711373590402068263559997986158298405916362652170430584781526239747050944106162635800828693835890297728248776226599858056588829374780211609832422006762654789736112854240518990799324856955871431764832483170364897981254496560229712675586434267129935145720400943544790600091040684490580559012585737243113358642725506028675629363234630739423739717756167925326285371307611166141225394109160492508765442504801743308145128532729888186762149970753782395647122318358329383510149688693414534165337463127164189960873306404907134619459380508395991899859603635902305061734857056772174783473213229688470192881754398128062595162947900156099806517457379222402500466559189568218922396641016021430064800999625324639925355493632523848737059812693879027339131641633868645253599051873205189494869836871873181136071238557996052443026664596315311919199235114637274710439864941363933424418625682368922599903992140221632950229234514676119204179785613475742987870351885541085659833257124103555187666546749994023554433648467522269020453821131657325185483736095914503932146143868442537876950637874707970526505934288378855287609894441967907550869033457167197433810209213511731355593728255101180624277454815178031358018868358397256206760934980951654684703059239752099715878146028231063843511078178394127758167565956112862432591913973910491401431674418702950976610557784346070642560520030635776358416000886828646880827410778076312379898502784652455428176076277464172652634301729080539727974031363162679338231123108747320971365700985533096142234328828901176608340744884740042315553536903246262474565684620350617872533364282279288744376385873146316476052767243746146035309433818861009560171006107211019815836455801513593893662645737773050524676179952344011503644422723276837374940727976942782989759239323149374063017015864775911478315241284403129900882622926054230912439645201069094250341290609548305916756515295630226864325536146904859215181546129068184016441888701424658962096382585588916928787014819187432382427216263810549239853672959911319159677792025573757634374731235921689410897525037890980211738051554340813760575487213367277986976525761453880655366541727036812951922738729936553146807094719261268401285107544715730263731932951783333456877413830396859541999399340666693999196753295639528324519587384340760351286396934646849581477052056140834165732195384900544369063427500356068901001339836280503770224778377446629341593266466462241251369433356671173273303063581439258624340105187038680279523246678454773432850487652101761210330058492264085548926340209134714487577754892538021146138907162131723419004984830491850686311405012086639736767710692425750371186470326409285412176084162228288867402409001073283241799093507094820775568430659084138247590275239979159666851293404066558142479527947811168483549725614540670593612455803294439031790266350304639885807112856250715543180134248238971565645837944538400798930564520065027588512789297414747234435316916952672631716706052305369960675519597169367085290646371638384499693729652237323073439248358258449829025377624875683123790616965865119225695405456076662982863406983790403336931637323838380659913516652634887606263160589145191248566342751923019431775731335569050171232355364369863289346604584373109566442809245453731751501188366020453738577696028025534316127239445132016060514108717500421434702179839176629894680333677452959511866548073148923605057103446263732811325756887316399608437641224782174617397412525158742426694571100356770937427720274014446770009519874602949122035402851153364452462258498681234711485294123788626877072719014921187988069012168924317214294065403109615644337404419361874798198904956832681091808979678976925619782805557011878395453344027646580526265354730603977472374617323785402879237235451980737883162671390867175510989465950692431807178606624333882321572498275568610782091887776459256943432906418221359428853026173309667091151467815038426173800463732876928110328792988937753649812691839345961087583073884966810319172977227965298762329394811793223707066629254788739524809180804023737539536369409085607457480720504054684702390413378961396027045389417629460663992990982236345647297935634117668461006976791152228669871322181703531529312331612938677296475123634046031365721415366312943072718736053144157791730442645382677303923928268069061355347799149667527601385238365357327273959965760066303185759215426707857856619503070899904901809824348451429419781107933064381761497386937634981118106744663906190221953930023518454297866466506960339137240362011981720327724473620094837921268795703895861532804630063928560452229787716129053514195171923574470135209411219583388522690239813596380663768161947104982167741682112203034651844806766735728245980058663519482709613629040399302458305600663768679067859356617835390947175023312809859400931222381719283187180236545082972095460236050365709329118288874482860087173059007561421775985609175380023969669354195747677650353053930987765958012296292067490145190070907200617087463482178986550114949763303585185271708289838481653626180426324836944156350212135961811560190089697281307775563650047830203818852132543533513920541347499866992680660428029559202218276503559095821135102088097244251989931882131530213131455429961656951645158826702706413523823243214429275301013633802583604284964539390644377856112805365027322266199268416035141327393091004511073031143381690916996442955111257065128523768919503286193474530871104526771133407066133421796546509349875373839189363222210966947365970766570025057184077483986009196452575412518060255790787571417223602965286044007914536386759279733526301213796689404989012699936721796269302494071802278124653610000768226817893912415879004518365820501195179113028461963522514057343985689602584072912823543505897942176189185996694742517448375251561520688479166465640371994757751309304825915018131899675725427278651010670433374121398791859368979146606220907307972971237172915713810488055698471092993491339446438178068209852639859555795388079187173815093126437619317522170489265255611459521492553701490195618445722269360149066398050150577793807226678973250044835146508065138268600466365982320486118428467033591150212260517402082323451590667700230761956098394329842898604762623010530921143859771758618112139169372140173844590382762650538238803365177936759645030477874410961414496018574221101868162832515628183631648773791027903320058619004705506170377014833708080256549552729929882139913761041524611808479486116788048167179592322264357259893670773396983301932001946083818699801597065895127671619807844648858719016116471239494133955710741100446784637901161277163146279953054537827489584371928019542284996106054904933446067318974367504121412641730867950462800460558857223272394741159389519881100481555382010983709617950308687620281807130506511491939488299506954436087874418865918301939354425847333002536196874133473106928671928265444943424632352302704015976307312762709399727017020416868833422079289721612319403572821787478085510346662982963293708811453580007092505879547915378589251126898590732526821967391937465875996231577388473039123225141672285515141710278199620978761017147370952940500601777370290409971222006741773147889844458189084115755369054266298111126721615730256385460189711134037679105221621788364556658211009016646388597375823110020931264668396351092289267315797886003929362140669405251671466652074613715421521315972208256740568518241241536106579726861902823562203168750360170115832795584908007071602897347381261647854823635958821954731830637817926527705301834688109383670527952169238851959466704079714755475451289926580278532044697231242788876862154122146528287471044766786620790385697466057502661627166561509676735227226453715795533663848645468842872539768490797953178092862142447876616983097031568496359848385258036462212308968133819087225700416287416814853684608310405280343930870290550755065792078739151635176118795196106578040300446990415183397592379004962569095453190531545924954088445073163444412088991553454215792081273955029105344033919023550450353621494048586065743537559555663864465328309835555708442037558962255709189562250566618375632828332855024357201236702421680417796504479786153599072377135402107601937490253358009030894097240332510048820181713882506901910195060913389325200113887760018534551304687619254867019920789784430618488832192280914086760129248779747179258077120660036249037303345795177724331780160123065009881217983764264938176820549402155414730299331168556883448737092998151014747035521089103748573608653685588724500062037174911180676031629998218907965049574731444325514461080724308694893140814328421885598313899054719221314386479608496890272604592252350549743978533550609441404143098962953091818964825877924455818614073178739981332028827106991950331988052417799415890677792689624772116728032402622938449904388667822756267910052074662186689831544541048027634086804488708011447570717631634207729661489886143786140831400865533203951972294030160409903349666475270780483384269595652973650528282173349375919608806370205120296684025463197662858140805679153350187875738581743231861381944310525554800066991087818637785332887725350493455696358631559988143702962854254300357510522051803681033982616454622012445250723415467752398691278840042020045664315456956767866016388157621993662898182272191764937186834680803733982528230966493177459037741193819515996904903012506360924175521867062273294784462290592145526163350541929735177927359388695831704846257848138989271532500198254547432283900983609249123425022811031338359759086736760338328115890181744678983734527202071803813182434427155564758315635735296850328045905410621683002945342646759444925590108636276967981907210828033265530331273763406199790755230763376239610069510684715653990482682995782486606092160503642400568798246872241355846652633335973305825232428305472003014492946200029451478757038166031296963758960897033576359515236203392334273365429928483317347495874299807816129437168696453043781093446553599247226796890804353837813173235929417731820799248482568375068851968065638532263950424693339436044111427724827022862639267634408645931257843882211855322220519914460367851144910547195872377270982967639512711120764235056748715726076499540132119861463420569249971965669010736529267760953179723028037507795743128048291182334652624216957135342814304983309230795817008067738143094402023495341765115527026718217110420730906692831387445983361044830052072700783860376974943544719954139377890434401694814743810201328546664892102663632803355099591693701304432000536577405260996126677099272192408119623414703954511878714450273415292096044531927697263150797400674235538285965051950400613879728977896174949240161343465868502535053245626119859102179844205254725415659659810996699711267576501146874329013144759077293722009258569371995878854731798029895076033113963188844989796049607724183765917605256647234664435928584067494197789251333941871350760856143740204705087907359740914412956583390398922271129095875814311283590492026459284552192559048727173756424209624920710245918575325004352781531397088197565846881319281893241907616771253812124975795594058840279152173028387319424507805276669103565067091326424204027804841916019414074414643518838901174654894366922824864915573988884981179804704426566816848471456909586588567745211570322394543886071911307127946360537741942662762172853440251016579718689918384003054059436900289739974785265949893655527538811047776108963279975072492433045839995327417599807302877905231718488672339388094461143846779073536211412356460272439147618573907695176939525336172582919952879545679548806514740439167047134646700873265421521942669055194299943051671634742340092636058169797898252083875831869094380300558097189094394073666985528764557446086075964067386613990277133506878604264313720770487461603814517692392154555402137533630291108414141819180818305482637414917591212918425511935644279335103363792447308779837552616462993987805305590054996816953412461257838265809357728816426948066460430211723084270707337032728359568268821639857282068648256024345024965975546650213280168305264369921088432933893292525696139320570894933807544897301131910105262715537934012497727090852543004538721291503342742692382404390559929137711886543873276650292725712800593733824134849772877567900072931128159838389314343358340970142148465171800487992696998018602845490416976875502572576146991611795490386189373622827995815044103619033252343927851845023394418932511430088205745967104691134888812383834560679487080436698930588968544052353488677412853389777807643601325542525865156510976547643539608522435815591507311409634980824539221648863535261600304888758841605985354915190636595219274225778346866158655943853486561305012140753557237139066232078249339826393123122590099543049626028945593342816174588402591161107644940034088445996842630640726459397967444999507600098818194624040126929618997243593695624944144016423533977698428568581666358193908961856120737231284371121221849605034985587580725232356934579853635768982938745560848571580730980771708378073893161963450298422486520602699153700360910912811185637087900232733784126701101173201122866652565276293060926018245234150142588934875207212303977461282357679451855189988724623482885961657717792909039907653404020255978629251488802781683858011805638497505239906394412783639250073319343948816693425843276718200300891362146982780166047982569507306608503173354829755272179288153092099308749195195446889589878034319373943321985856396552547340233751355781356019739268548238177438656756339227821714684638898176913632142326181417154252786125380867093694800916755705304638084381527820519991909123953997255744667624946659405431290833345024977562660155047452385070308512879367674053181448845770847476290027802430694170554464717115316757746394106532965987385048081258258414982498970353353798153816359931044417600651587754723216709391633362049007049356663213843112071307172714206856609704440320810942654854869442208026775582578224414269060750648963616068120186420563754428456735869021385625899037426262586818748330815403092385672019933464581569670201620540045440999783782237423986266696740299764732753894323560561535245950065037018927999096358486118435665694262125500435672080739921914049675427569614560183786759609458612181742952792866875297679568812719346460591273010762602423033292551105658946991218745121279796310518158073662068085521856096177506068490445582872352435635321468555914469796601825119361784197708190221894435878786199790940454579794643877578932525294897726626125059482703063015893172100522130970355765876465162039147142331637843278732129635874926760148154573976785728860478715268357299512317783790930435638613439770576102918532324500222946538801353230645165017261610656974444741585881942848624906326336666611403693836729642892708582464878957897362994160445811744283849324699372875574805092895213136706597380164454525479394793585723357598463234921966986569419050752193866707279203845148289734045542560486450078535831097147974574350772171368052797867053030153555913460178162872137239745084177242339734434819074854724183546904327001551258898013130955415080335296125019570105653729768432444492834231004873174830660514262764836213983490075336643143446138288318407822078961760903868203285430035125881168921674577384895669209741214680426060391745732620779657132978431795289106918922215212190627232514526831395334255631616132313239492619522835058576946941213483001369471899490470950001878065314311265053688213042754111079473781144341748524655099518723552879125182770751527474963493100279395207628160935947002264978493610184751579389808206925446182111024738069601851085603779936019743474100920523209015242188370129615801281089199454406214629553552375937709495296293782302649458364237363200476647138851721887028018646534606109264203373750056933723203052463626151876885866216512492711091105687179581948845238412709106331566974088685021247562754374289674560871742398283920873868717765477377530516655186868905030648895664993665920283826557021909118043892117708638403673851955001050760523151719675977008696082197036206078600485313027022146546863560802424362095945346390397686737602336764500693216004253262862523860481069802011240858331261623274566538343974693809915744178148871137817641582587329233793612027958148797843061484883326449563065356886671380436462810800406577708555415475249741157175589863979433627732503075316165912355381241813065884523679715921881954196267630653037322009085177017824881252231662673690062704381184777174811814380577137864296001605910353390899203077353954983446577766470274090127151051599349434944328284638917716013286877431048210413223602299867766805846058667125966314813387919306784128019304587080793021259525458181038346680059041035589106799859394832753394351293758801643742473149810942035980174105412171437334492052251291787719740847287220105002534335678699880317044434773577598643485805924087640664154229922452379287639309779841639292261317454934882591107349951734593435741912562278604575554028900924543593859463279644250926899258502003813074077160074992851881912587298024621453074906265611020447836934699345361177452669053874535950443223517106150362345959068270648646167997803833790198444561043069461564695141909537447682204106063646265542967426771778047389208328500230220599149151541557813660888071761926498436890582097387417251827701097363681157675269576540793173799666076515149320523083438149186340582432558050770927360233080171718349978732264105462961210761861379692192214264447306247210495210407403219410200640578795453196435603642627488183626036400473109507801252345632622104772327940852988533201500134050217489866362961125002206278016785385615530445194176379876406749237535231635605534105974584924104467064418832052773201167450134918167868085960276657603008873866368598314708936797125464760610537986977278922029774164482735436410346266088076851123508828238825816133337192885360345778541397512221152869982549595122251353578502265913522261462604767613541208134886635011295520264035144511471942688332350565384748910246909326973199190057488834973448745438149967504397125696459931651958019978155433054345609522685002063343590779690895637075045014496556803533690943749620925208832067833864506373381195725979741326541264028921592895756056893459345564864447069194250319407068358374859340272293786754320543190507912795852319933359419536550675902851730812022889015637967398570629162263642158057907905235237968651305962866332927124317477108603586072901635730549478995994631763549021767572607445648044046052932062621978231058399090648386594612640204151770106560698190288975550290331284355099629391536400550184512285414693142189915866993530931595864528802832955013894659737177862656462303322013876180689074877071185726037417808964273989230234997247919090631361966528971627583798314006736840103907908744773663875702670672513078791778807051318320880334140028696176805245784906496143462997913223618219568803724926771119229879586698838368715922296848051179158134594702588737906187113874938563506628118332649272856194699108761495324062149183589547347080945583530629201390768549648237281046606760816724137683756739388719597260897022222757650779881851718926377117947749839963512848070042322107483358494143072459375010141751934145143097973522388085796784338536823053317904694184452520195291273138065207492786087959072913312342500585952333108321391587498064928286389835807896706578272706900985403655711631046583372594627265719105304553895046669764663032927600715101883975075174914858534876069929058054603180883387653055120484401374148915830971264526798989715910364635520097064309267365346487886591948160066731515258529999042521485458262504657815475526838167399232262276373830238716344199801285934134302083989732875402569527747797755619065808846822810051656310838855886173294599682155119947743732932255087576616316580059763709807470463988195852755291377732078161202372599020974293282156931898498403462140203628877998877971746019943459110564923889454448841984204258820581297710848789684745566037664829673893037819968272211627439818390492228116199213321755431923561966923806619973971285664527656305151964002391752998905038755589383146112953827203852153080444668915865365943203073923317835054138745429656678395764727116250410309809545973965490576984226855081893624581944006288062666398525781697934939893863561621822148443131014366540694247075661829551077485774287549993260961930547173601779665907156386739254438084922178397828396569787895921474791313131057565065725750727317659749908164516650449657978093206519977643631572840474692182483736074294406091760987670088640614906561998631007793067141116056793533667526156271195682390418601977805078999754414069794087476304170934591903519139773173682310255423249875968236664125765404288150127493753806600112191825206755463903477630030855723446411250112251192023634945790064091236566855699139469110390824854212751874835654473723133080898143981666934841668778500022905262620639716042705403011202995931896379190186294179021490123117584461458638573444937578792387901043052738872044127765827691140071185729209225817856921749528584302269938903871930743733970938746779998007276590935613077747301163865980601810015552816455958491373831375382561916746987562413331573976578473980114391941107951060961030578403234685020057107838751979403819331101848093169378447986959668731483452859868806655223928591394824147342302174639472654314657477747603987254960185936080035813842523439302151698859757620984246369706176469403568207700229714538613237166012545313932034307769290247254274844353852980251799809592802163271662730222186017762778798873687329868674862795832936173979700684811679297082047073009468825586651919449520641109014883724780520011633532223509422083672870835753006411150596764790193290386730816424310647225902067852439280439640938126789684121743837656178484497512807487253619448959330771347386577142445939190990656612635645811288364195623815546291942550299424127456387565155454932558152672882296851604380607801758412262464145318870917210017397918744420392994375231192217206492753509380821845076070937787989658786234473387056205921094392521043309167166813253550029100954036988673839078399213398780166073104020298641927398736291106653754492186171724291888373529385300905821620231306169577521803731136348528140801250253680997719845550363758754772843526978438123983134441831915665699703240342403914436794367721949539455922812235868642354590352975710901395516444425255154944192102233241015125711358520290461656392801992504723090885336243593774988287652410743600418469151417051798264834815889375261439692611834463739674110527759355215696455639370908457745942555857933365435909286907737039888972364955781762198763608481520548517434158021346260451548515042451446407943547567022387380439968803773093638389230211588279504707660363076789570782779583010270254496033643118686127055188321057824338478571034594866713170879500353989440724027816695766172562391848065668247742454592035015558382245105791279766262268083216917732236374526862460013137571982153384374289456448360624918651282608583631340370321141095156838449243638403553780634607905058162610203942499820576840503647607396864478566015980463643188886957693284883849197078913503920101051096012431591078068340526965701666703672195767439659980752298710311506730255289206247048295482185799246655080564951432401588833800006389251115567092761974531911363279681467854774193734102947413165540940122465375476831638019587384146716005664877039934672925317770227334295241170734848278836853274561756735737876126717087637884952388966051376327789362452902082335134561663041746854436052075518044791397488340877295961895432238813155661760605582055998222585498439972808706215151611918649333232733617264665769301951158473436898289072560077864312747514373446442307030472889616032008289679116527705984170417435659963572033784327966728391011313913474253895656304390630459682958509832948168709243551218685302389739315981355774428690071457979213958950129786615310170014029921416277138061019399588288008604105496567969285365850174469949002059066921122592199652982007901027663708844866183462835243377427790197660231905948370167248260987778802140913373686878307781195422344322218835187215175171998901693362846715307526261712103477082033953769613225792826539279775723123050174873518594480725487365198036980768022933575957332748795252787978845318541479381562558259606735889889476867759015681767192757794799182665476247396561400737537722252355890489040420008822629168565950502873594016391682608633492456991326497266097913140354190729884358876414731859225996495485677219921633995810331839980508214814610509126157425714023174179168487334396937355162842262353892202031629904516790213015527798309580251522452676458019596995630266056950043110091787715611302321801066472132380055246050297722852679546444762420971944391843477125366164783349896391905502888891034438680534234386860837621456216612923585087326298051937148939195106327253106416135654548402440257291554472040116461363537450383839043014985558200991281870716682139776850584269223194260227970189594668508969006741796287245616261256300125016158497598727645185384402886543112021192856838333376660026507374022832974376044547335560527407698579519257439074039769715763576786065077197339507056660120515568321988454596030523387889024319924316699221744999366495255051818678197656807923442109867386501144939999958071934720018272834244703172082311603124875741267211555700092204188757935540908223664750886116152289788628566122444111221982093339688578319130838090084691043330820653838568898687184017082367125171888815337627863334200386586876065110808682760501659101616010767021159132830303316286112468172201646849041569217280309881053461500841846046377798016503371495849211380924096143153352688842038875175281925635289826297037554476264900828532158696712013619585671287588567218815659743044806322153900472915748522842128024199321375427064297591777748341766840355643896382699417111782964362907694403187989262542089875623719773853931297744093982790391599394472789596999408981043719616470569291961594470613150649346447695045278110626238167495143837069473937154016306645266374528882406026223949014695685750604251460622616098354301808695712180252354292845188305391389691006953535253902874440669107668645358648200291084044843231283717025438959605004220583628560714397442478830333618506762358411330127620452993870087696140090837034402886380591013708436646268054772954519289257769754436695322591606603151710917163766464101283651441268993541249472008341991167613033576177082104908952172100798418780705957080482552307918156099845788645423944767094828289038056391564233899906943126286092727435477965440365500387930852717011657997375799754424311415292053091563563555897524827255235411046845571860859437262358469814743910296308501433172493048839659035181337973674308766338979282986647924225090636962169008172976923816308050732240936001221126670912727140438852081543526138446762010279386586950618600081826387771769137433499955256348911776293541121717045696238942610015658992831981556090853702280188033018343394739151460467179148890927952871951303342943357203318234086262262393505369632504995667612811593911595472826537615075752645229951120070098799157425149886660898188973024060803552098842080249899918765735827268709227977237877280238302321198919324723713347012172216057846365287657773777196310864804022148180740266222442756022753133549069450419537174058234201155482445451877079562830097753478014965567406536499450287335252162420005147355625850311711206573318635360343268422320411719610974603619092993878917553175918441507191553896539979500747180559444651650368285034938124183290557594106506476406235424554444474928787037608624746540451812841099377512197622991702252601827699721452935081257556661655378977010996632295552200573121596253248487665155275685705109223084516913411924980649169346692723231030520945284047944212497969044595884139923237002968250875356262935946014151738822964490026337047513497000594483169814428839808286267529743357250592873297447388705764853339876352424115207233443326916817378776657318248376715640447102135611769164722240305277599614321480800461194767365301960819870821029612909473760358259561385535835094378824066068770771248857774991412655748764606342547395590730277862005284873086935012736541570402218997472307956410203520706424561920768571196509940460871874035870564412024038571845463173154147822465682612450496145067687796493488160592909977004241077995624992722375162098961763523147926228662441435604586855933366016952442516944901316025468128097227399813256725562972075831735102122552926419038108403003972197364054659637832528099827683308296145263678940073203291033599109678431536145777832118594974627550636885266098232379490717222610582144946563704040861382220443390177382190897123302482046579837566695036357388503455943126187852322797525755086169677944045641729573891168048345884420699561371723441256451156674083871478699597383726812437261347387166393732209538254844012612499453376203083074601824736513196672695722177835351132942439337462453949917306529485468611439658202857551608970946515911934592750416406302422720525384495688536989447659484036551168378499408244214404984177467187073132562262875302292293324038627136811144430171402828756631532083847394146291838884193303152189255149742824864204617404901274639101826346147556684463744607876955909806969742583806875144678773632711885671528957267451162990432204696549947858450294063383669813948910696779216629005925048215864885677463383367550819380878223628004230639750679258407959139557159544739918014859353886366765631519977689952952139749428105719701549361479761536891783522605824008952796235141286532557796479000599465447668563649268957448500715721453860549519721781815856665344033399163001314107697882646715901150547855215173200710923463766768833852866610869406627867382128443638183277343897868121240693355405462542914253521278890181607558397613472556641988253562897553280915761083905445787881280393203443210367091995280127311960435092795470120000263606776741663885231274475286543527850947494567983075836453319693223269601100194728696340842250938309986349260976126839696959199758665377598213292640060047417847614531471787398894035222416536317545051070511540381140593676234432258781309853182508230371091072261315710962040341979384598215475140257656266144574984759560099623431961289180846374325577678550456789283786638621017072445890550042221575905485035203356178583215341441545262805468020971084888507247810821794031670289641247263359279538491947991919547547568999767960946540756772683966233728232272728165875220506423607304623384596164226178861485770736685632476879457075774208061099870009142306111633743927171293633224418131106923265222499943786006834159701071778701295318576368309015067438437221575554338807135290864433224683249521638820590775085917629875440006534064840954068549743428478112790140707784668267705104689379487906802839480747235222051716614826077024330168281998259315062500127325265389784563630950841897305171537923488685733957895707445047884188901296544901749401257920247140537521958828963300903105353616193064411447445424625019469565734941519871337765222482903745735384645387203731008635546067155361108008339585691725512103515617108622521715331762592110576820098191194523166035933936156292476922904843472981761326750891161419048248348613008072050746773848420274639449808279736405705204938736894277318110458534409350846091132377646318302317731990056365469211619105890988476798761293851809088771025054716461648701843220655747993325649869662052022100888144077135159260149992335229685559701297222866186232298830781079164187931268985570791053103329369613373113034680324776282785565224336267905363656737008163643588256288801136541036463843842416658812973545043844340288524516113212217124118758241293724212964363084254774365251416515809523341454453308507062324167959064664140659183807821262647622438048573910226824749120822769435746788198388825305131857165260923156242457406305838665732513207873078200731034823868057570975641636456134125573934961342470896210668216065685002887907109463347151009816194849487379040604180609457861111639999241952312445776652641042754067887614384643656242724749997803948759873585347137482092924621675312493182716469776340551949833068940420294514014178292086098741925656310202315276390405963550207937829509866661721575741987174096282756089066540062690266477303869372235210677036066761370073898547280266188061861162626002581858375187646689046545913337420761756266110865161964041885825351170890987251033060721152647476663685612866555266659063738947833195702624862632440470065760213886182355095317438897788879338629148580107197342599817605326831347670377692506433876925164827623182974293104984501283385469157799749332256183643931692134276727670145359787045858667147610719710977847557134469521069391332314266492291454038794076269601234142566207272889012065871495063081341726779769459006755880457746442292663010293471874067450624471398413883194842023240297540353052219381772749598705216568067005811717728359868013670782882095938846603637705483329633879651316133401994031778300293232731348604948035272882469349597591433709210323088314462655380046339516765473741564659326580674363014244287169522490426014227252744296561510367795417975339235066803272796448359247274805381966157214487685548231332006613643641320083731122776065406741724638816901297537320187617491117271613945904132230136412372363859115161061135189600764646417718200283700894388321722865877114209481285856364809272069172780553995805696959502715595460969857792113871164730462031732637325709386202417303070933020443201059512868469145537026446118881469456597613331179036770557233152360451651379886377965168910960195242052083587764161025657006511145413911050593229037359734853154159728050269357912468934647094565934425601785121742395748210618700284674513034877042759131982999087550000908029566539995274903416345144301221416679723837692418265179853011560768832487655693107603365627669742232776742075362837002234195681132781253448154406837653149320817015188958953893673253148180424565354013593950775176418685088325467354240855040161865880918127820079482361472940447962472052505838161334458751427844817713752570059840513465675454658916693278084926561146572710812168284816146190230501903504309733129800866673809849020743432890842230743273425160074550609584300928047244315608448456403299708215134482851899261522632391932827934834511829002981202990942414361385950283051536886836484800781452711383310105338660835801610430364778575352387851358233676323790996017021063506055899815216574490620413143146270360088041051111172092664993660996382620183049084455544099065535121593003074466017462267924250437596342718998037986289373351830746154660869132292289375529378757162561191300598291487701853509019856308621702805692028825240757881643767851578448534024397445648940675057783211638766916811945571637676947524389118986615671730832174150368532152188752695504183688843954008671340480760839474156629985147728969005765340131873787604312549984479229085065368264869446939599052798444254027235230144118374782888698862124073052193545563139641421911465950923707216606317512448974696549211547366053954240159119090799471689004428156922308246832607942396377304392194719988552695655362512807191926257852788614131554903567435267705885574161479260420113352489103852053982648983519058082782500637870501798753750079556947484769367234739837421421439764132374916794148795529841612005411916890005670325202764635325030242709795346705822483495538163999098833756461802109829018416111861842691614432647525683038366145073371471100662081103576947854632398347205563664336613590996061351490129306668336960000933289311239248931921178682831802603045929198636042164200899613999865594103135754973467587355759947694438179598187712259640370222481307010551397817721297636588587791596877176695458246012921642052436417085159121892451063363602455422736292767172170147251541232177237690018708877880229827845877607680060984980691814682784249220116238354172086970455803607788158741421896426645099832270894412524720515208800259284723254786362374904606655719199004107014099274632758872763521390852957014218489990258775270564191056783908269147112504945233548881739136559597301143267250504224957204947800017635349708589105198675368231024641475273026061808473719528225040704419040378480367445211840275008240274859283494045710903175157140281122173324408912528258949878704882774123171380211266296988487089107847414444868774323975212523453114266449075194500424662925922527416821492166664147529514624721308539677415978067583386991073482180120966172958177500161693986818524067610915439174908455680547158904938142942042497742989626728383571627260484654820881923313765041874522578479798353299684758433235848466548916006171810559117320668804413378514990093435975766394651411765910084984102672703070877590115380696511808482888962367352632621135922267842456818635985562618274973764850460067469002539154820288090925135324922111143528538340088088089813893637055392124815776522176600839489485760291536043952469600119411620370619297592208598589016729370884912080962164616533467029111855125344864083300582284764401112936233711734987079404631467738857462610055307688617135042279641833902031289846913922276522490746584604895591433970167947798875849106693790293251676752989011975820890025875038866952523887250477250188571781677227631336370273461481920754052128958787916416981037014871685397726401313889346730070550182712079920210795567257161131588183955270766322634670521163897211965157184209750188980178498528803526371492164319477510716442887045412189740849390865835352073758380871033713366138000123736103896954513903240924299848948477523642348754115854190328786264710289432437346100953648589902470586504469635807952827306745435812110661636259853843628195968584718414074580122631671548519776112235687508999636499859054587183271923276070077128512568138844936216508279399970551096104983749045015868276693425550530043638085800406105273740739227850084839013847141141595358606991971404235052972211005826766539012769713786314571052654294488301635958262894316151725974467287585272766624178063600749160765113301888278894006375326142925014477775606882632466455341722917337272220640826325966859142307224616757707110130950807397500996101859192442556148631750942690733848259456674898078493068968489267368771078087478252508977857068826083451450207937781873227720731149337109420894769462405105902109179960640471664480953801971904222369542123990549031466058296689387718089163991880430224294746458618378713285133201270511230500323416061043049122694933031736286851204669739051431157624411099596011961833815918026039324313554014450840788305265551412014230792982161784497306341602349113618433536943491502121606052951318416861290591283227829149864206510948119992207695987283236768499045861321639622940187550884405027736575226800240608566116335934433459877828509459266704511365069366193876013435793263250295326750774656933209991797033135530221800921519028944200054625457324397804968501748900069637776203244834883346102015265111679028680911225795251691184709809483309095313606334331754849228779859539532233525785561057711423202246478708459618886078160812703488277475373525018422137434110219756799969592351709016320872385204692026361958617758942918056895908719252677023417686022547381164839010922142153837724991999461631641664930182036190818159721762483081419672599595929740127650127620099560086107422687145385784470668061608393586704409070352837183240208467732222385990382289497202108576814989909371610742580801700908587705536487581355247803206123283510949521427786774687793891821402758740009298148744999920046129695084678473014286439256402478659669815039404679806917523972871313775569339590713140203180009082122993831648776121083733096846975487142792346775352302734411544105524728794798876467039203478449961936888535728500315380346057774809064627709663202117790627370853417735903209456498838026828533556805794188240748157817192965053144511192663195455862467428487372499841363844874013630628400991548926842413069163348392572202950859854712145354491013238917275134162344328589453961185658289466841448245201149204598886192519435989848534956012799089564460166982302082389149087970613473889338644843853746619251973338198739743215846038761024791494146700566500750666825175926268730949147972856259597437074239254143138092590839236444620237026207007744403337377456116991001349733592318385895330330802802175722886036692915391653670487130390266994034482640371264001253877868380896341272764533025155037265140940612019237078588844871972530094482659980622247283470143181968688907944413241559002377263269275426557212128242284285372473240090112718779308305414643428072724782080995604173561042835172692912432930550691207582028713030041562258277524424418299859453581968729165491353353051753740541186605318039749040642246301721981269467059203627198794164763791542335680623403289376129864447225164970571204162115807517428860138045471704462281004937330592487242156981579869626798397712056026848221266701484502009387507193599555085982359655171227584224129148821448904985074195350276661840776105860976094007384062921563865717748934034055543543303194992166761644270334481221740439272712022278758319902888879900542013839415756768430141205589226618055405160742441856678603915992021504894771417700430852770679305171206147972759570072972213416310165692396175718561312143375075602583654298352665241408849422026650271587473714366007220712445003764630209475989768664264992532952020553422130181092355590652188171101586282721500538871679761263003261358323278683348063495828254412481366886951910806197496179361952039267498573085207834633425412906758494132301295613861629938711512013052712562020662054327316840566990856620613175859343936614091480421559110921622995617456714550445547853366138187157784666069578302313148062820435968531410093898607919764538622296720033391709219537189524493744901082171008311181309827699258437172929980084253700895383817975309255092165115100681570794695175695601824830733792792708861554169814144916329396223301191009062365365179065878683758640555361129215769285962807698117382871261872948380163103131223005127678970558850591109156331494418962531438258662526174379992860091297476011457970563600561715422046434986713382657056610234058739262889730822802421737710719421864580769450402801127942645186773568926138110756828539154558332649210077860797599223912000714888438429078940384249584617090746319762004907441324535563864499508681021718241314004633995339162012591494071098675094182656468860704508035721901116194676274314720168144276038557865218347141908154891442483262879105529740011952530666242662641030193382365943297382100912117422281175334966103093036994919136569454405565017844746845039278371839320544001539875974662727505760348479739205321028185405619543784582984491148614600239030594681578582326326533291976285757418538524519064327082697379384574748666718434691490667441811179913874816258598427412992711965925571552867751012271137560098583558163220986144743091415674832344355201330467310819774268577789957818403524154742623568614039812984758996721807622201234211831602554667863226910322746669786320755089772882814162603438038850059210515557813738749234833230650966643096681985124422301538875110917847233616321584689795153191730445724262176817043179090772162314582017677387545591342188396067385657517960344495178950275945692429362984874743769084188307903630089968753027814359243831059966898712441530188443270307318663345816023357399509616688113875923940001139605736212535402191444367311138931421838967266262326580505610606117036162130661138349399896055013755864925096543829856671759279658309463083635812935639037136150440104271585821809236366174317943699907248916367176431856643329836517589617088295741644897599267516274276944200327295566244487742587184723929261513852347593979059580713403169472837062920438425795928529587161872665746473450896688767746679316550416449704786905329317439766967256216370552671856531006538811421487395574427662787947839362976572873685446381129987042560264603526119449615203361025794480427639721401385336242438526864837337875888582665242261573157371005445760097649828269199396890951418426491496584592304325035410629648563845777117359142308896503395164169719167366780678464482359112236128289088799850118188110780449273767413500861938180280654129560239346145220854321083700147519455789693889192554517183658313682201781344756170931427353848448613432872074489915050034515547657617522816859033232110908799158914168570391533359250946825177963111509714710848969731145536405901193405741887864324298043734602193471787777645501782368524473394709893133508438659180725292751208942878650451749302974772496088262698023631078778171610096866768741705306203120040171537836716382636752687308989867275078605071090587111277148497363622985377243610311845295459395841188058287841335172657572338421613358010265253054493011020117944112875209140710284271189541160748985734684873703159142029279489832571588278673767831428985156558376125264355558110745339315802708711289616580415137375909866461236061156686685677912269623480943318741380469381775530152576611202972468561089967726953259444351630908719089850663690364457187098557666883375836617936512259651651638897943349324086960962232751934750348989069266919493865782023379510620324459989092726986335131523653832977676635377300072200590322259160836994389014291309544220632837033854291561101515211533880801437719450778014119291197390512626613266265141211570686195889955167536797813986452134962808289540145267462069246869547467941857749784282016283844426877079955248460425945300618344677802994172897047880473476314206992588675504601118961630523878089512499901006851474641001068661985869164774476188771902710412088506802266029996892888040394849575795194054240495110360580661853454938786512882937720759197709747660904652396183828187126987247230170719678517548276632807812273724533567720528205843825147063152572414912699425359642203653650806418726705892097636363368438098094041181867602323838716994346210268576421576348556591465240437029245735479034319798632338242356934038223448908377617070338299793099309725742101394871217223118144633964078253860100285110676022720689513701867189980825997468740585006022573268802700361176573306807605626999632123000523436930474095208380814266520250438201493412173712988290283486875434692712440207011960403787900008756210917537587259680734389549044556527296588241495208413842459750654314609112405946853559531015017617511079034219231753605455493963020263985162540645282078866491333933711333893519468567936665918475181394639218513656825701441279407063067972930718600595896799724664191272959171416084071700843912370552008783861720528593800763322350897046290021453211372889437190951586062310419014544862425137439531204447591948138263815653172872495016894277559330667027172449524688997679815075046334506699873777006177302265827327565385314292071124113210718156746923740998734236779319294624054692215516681347946586721819762613344429089146674665912405348546018016768373281416544474655012906883447824329001117496991053463170707392456768785174564615757980680267655750395753651505045969401702912806485684727681685814575583441349691370905271737236934186444214330611587420595353190711899438926478769377547868906793032478018226807507919788492625799746509363480600242885326230239477019157173576733395857920856358254297224703833711912555169318678747755735782736801042968574590851792508024522795435884872672805314422058497758525599494441975572845594487642330355254684811170339554230450234019723351387734485335883737284743056472042907254713036072920275707438007146283154696781444475032715385148505789079754322680363465215642222443458175874656440333382846452887992149449434468557755689813485510783888220974857561081047620164093125212943413986614661310091517999322932431342934985946105965011912404860245518568188354797482884844139615992879702470994465625629770408183950959760574028925934816957670739126450099812349638807948005379349810877178529856296951400815414024175505908861854315850999547802995880109888969326611250949828770308068188753977067809501931214576821870738665741071319673822219256735302797682105157327674300546982888855766752167613023095039706398786546851447863777170870383974740583290792965586092664191383353169561461461473911783455502295171633891685127875808157011542518515620771613210925216017836114812246826914547717622596313171478130733079373720127593512667775873875623743568002709549910035899834751979371963971991705414773555998208400786208280610211046340045067450187207382138789787976634459637287413161189426746139239535431809260604128535045522720427156841740430055510044509633286987616283353182923528942821959909472930359335619856563155312138460320563802742789599424533401708977306236611799740970819132812983068704899083505329845764075174240827798687955359477539325758554795272213020641989277583263138156215013092929035735442147263914355184599467343127625105153909390705901764818856600991045047734766401077712051762511064867152099386464969462315327032867005464232390970608059703017730551518314941629863446987486898634583099784138691331054011961393045638454273812064319029747321355282958658967027129763224417267608165423044085182434527729143451736295440713092335042484342462327013599849780971753231443582764174691146643905871909053638758455638632788104118832378497039801097359789130149788894598844131817725042279876614583885198535223866580295010201280819509821958208474264634634928556999574030245222180749099291976845091764569010273827482668258485518314009222657668013253869120440455817648963704027715296995179356037936232400226065526507480166039754142007983352343505289433455775047531547678622768159898202755871466449976433181099552415980219671894347523745321460953580148462779356520850574936413332789405579680203726248511864123627696373774237206204686772892562011491866317726667540346911465004571304564470638520517361981605965021309298524931408551827305600430393508277177151255613497896038695209258148473426836650108491334619826695208852202514526129025664213639822887554321771716587088616641611391846053979924074140018938453905179238244724095057146554383740254173023026985101039722338488572206547492719665363909286179871777799574933882478979255300393284545950025974219058427664695709339991540956921179452939671565647820775820239458687228998418209408652540847067134536208220912616496195038627974451494504720336095565429243526003120755831629601154700672269573659772283581638348102026161221140348783581859341306913457580250929072447104826130234622132204268277554851959367196400134945152926362652697938591845721839349657427198905779455709650912387629010890885389559243474113445358699895062189277245516693716213072832853905031461040571119640012822983149418496796046482767246838257016285125234049409299326958953628669432542366194106470875308121283436672294216541317261218093712210671333768455564531778277719806840047700347154651232571047760357542684767208966839768976626421844350241099211191532381037037381162438899624060870760136500115191138727958030918146995426377372526658693004579435846146662961210499878661942173322480943443025806939706291226684521075214629258473367438252749741301380903226261545049567205791314934535250013257696572599764236421551156974718462678098027748288323177528443678154518847063602429928626577530626811645724850028300602022817000091735827661937060434300534018853904231892850341553812111373823711658132505394036394038269554649109694409312553144280979730622210409779224355657997913606845415431251184529368265213807233878998311004889004331621740816606837707114227011164169381117951191381358412441255385705019835736739550947182898955270990432166334667624195333266157356034587515899599335373854568253970590416122736132564171639857816051154629988262178968345805747307253066820523989063013730214801732350005265884235058626765249033490252788120701691429291578639337278382738004312762144142873550583111368441068878034541593338193181501450351066162002388120058161190154392095005004384710743193284552308118623735046136293682905713635795444151429088132067075675812712957335979815458424715335634821674655468126110161720110769233490495041167308242262463173996601388688767250351341107321908528457220281378282348911126678048458309965302619555234769697603991303522546021816967712501239335799715522392115749189519752306024073608617220020401469565382120871086946220672294293786799514002555868510288756520006174255802755181583965833167885580642134301587637515107992542632624537375082109845210651427845894597028500677955884846682752523789709148846163582320760214494010489890695533628131287124861550658846480155903887514317943640828092186767498507843364061868307942844613668923165932220292779900453264901798488329307042359108578236335805748258800296507622705671506411763149037157444304587849888610318232158115100842257235730085085391359782965203348169991690965559088801409875780592074435984085816589823898292491590471074342144058817880156532443542385678410739086139735763885032600707777042358256925383715235853973243943972825325165708616496843378715017055129645661536871916449849137736554647981774203210694891034204052763839760781765720374360521751209927514127693557014693252913542770249038042996025391356493128440611655265093087487964764201045348884599554878608539902700438516297018493101819628231663872308768030352325021653580242887682534239626703931459824696696769698613492160571131650401032086358556975204973121782850640772630339087735404268176316750903067389694372145465952768600514443695296630862636389377428082200605584950528124637620068767794962685038411387732747744107154306939481415699447274930899693180284572899611204938654848868211579444834303780599763791566294372412640598509674701639499927524958925063757541361772743271327927038386239325828701530407900134804462391681294111680822025587989863654217147272366316828049003274007637144930845454315272379580180701734517222255639866477084929096373582448010485854749517620262657792947962904118483064625128272061674534078664084571366552665537904736394526366823366977818089415649617661913251896987510896281786461152771886672927899081879665805580546083887952242595038690396827176460440556559739041923556354107965465987351936268200071227094363371398014123414443096032105475781893214997805552176920811201155830443793232690229914377938012311511931130272899209593976965252664115651890372493286323531564816798532036023296692206694385756097388838069946880730345646129741933132342614040660812962046557078677762901356808442940659404896686279154415260069318116989714830917816253749781649128706462569839907876621766986749777426259941974546606596886533906066730164418819053133219788281672527517586989388639569363975105868860382333153902937208088934156726897707866874689619627725860396161016526670647723665395579071220511018617477852140512492348834450386405102871232729603132534439407860064677142811338763231101082459814213509376396748810133204841016670468092526717988603710629534315886782433810708535802308028435459421797188951321938745273949950716117330691941797243316892707454702947501124819307609743021994719647875541902056148125324729824883096177350030176598149062509870447344932091986393939172343317767566080984334088573836041252690244164481388739130632179090056479490658718121790946039028918687587247443963422199504807627674710044109002160974567730828696032242958146833673884375767991159220478417991084992272198612681364785234480852491705222014882600498094732621191509083126345216061796625515324409245356327937042704288235889085883691233191551403618347018227109146465385164785984684509275849599642067477714277610272935449439139063826684443624740110243314695490283632342765069648794520817534947644700827488777979355749678487416812792777820605215197070223513230255919295733038546155137590001523447634267331649179032914330272033304343739525980618502509875568787906460407779326759972783032081036452547174200218808682139586049181368788178700207311233826253531118268261456004283341517185569311422506975800376202555156715155867985980723564180636387419296032508795461464984390647553126387169326740857414937773618856968624094420000278031619199133515879608380075011081053632475455031290705240360446894455817665642045221326261588965321564902800479885539250438358712910299059823620276866405447724136055501605702184900552740960729194475136054549430120325398481838389486292076477275488396069356379265500331530217007429974001152800509103557976773534727502452005547447083800148190988880979598951016031446792754514458900319685035353727895603538158207836551813181921055946937050121079787098800581706412267119682749842866832017216470036670405964555607951273719080608039100428826116844726995525500419952036812099069224412697506450136872615612860759006527510991980139266550606851266098147230938083882474946925731011479922601027157267037459911846676655328224417142561083076086450088594825988756836063046899570844156493709858924576434702649890825186640950284397038130622279882354843966433759910333860967422275264828764267529136916921257504674570162445063272888541876627519588178535696444175598527813845880728858021657558201062001039849624828929358327089663996480345576084895011427578415297433818020362362643210062495722772411777229532007094290275472521179644258417409169926779106409157295938418885260995929585041703791370928762896119708679382096034479605587199383334250088083758644594682015377811375010315294597355395604876511072423848317871904074987945965912551863230272244599629137859316149431227007939019947298615720842878076964500812036891115126807822327216346987546266417083178000862532957962470190386345458639717422667526702672944234844831913303824441957032526286323463892557208808009539751613003828727877448875687336244432414679417012260020194101378764340557253672104029413034987869048377929485168215689288013936987538712353636772971666410733320153625697434006944394229052326880262095843156694617849259228490172638848114125335742090523163499832495352878227426228220049745672229505018499365495732830081237003622900362252939134697080505109298487504371412335092266838422500804910656824916128759702637909523318508227494916118815165058443176444614882083157949221609283693711669855418002110616221568954196175408255522623163753488167079384076927694407189006360477811899474971285786923369073791300277099060706103554454805566982054544638853530485775397447700403025500064169512680789677526634613373499433972449363770187847173491311203849151801486381913342089402460480785330317302109150919985156786446677758449745927412822883103682697283615202315354739199729904539746200887961785861020888978939485107521041688945322112045811112051609385271089906547966684378654815423334578439876900410082237981882631287912778711877742671857026190619004070083666459292882671874584444398949488647204357090719944597223392097036055649171838579729593339707882318785419529283308980368481925191660433328458287885624533769485389604318480915979325072832043067158925808442636619219312134440745337408185055391585779003144351161261244463252137761304193380075236810400511726426369346809195240796612249712235737793327266897729593452707442694682717733041522573539132087878632735124956803444567248767415345287763952009347818716351831681925803958108071404732221536508426927017633265668955765035388043594445666719097984879920910326407404670690530326340244011195629663524594190676327598282547827630665997287513808511519332682055146807613534933667857927134706434604944684277364623122623664955437568982495638628007567841407088852049676775565709949855507370384192256230399195239889243490524359063064988320111194973820163424224494562987771884685676404709702887805283308780663091768760040934681037072723031583772061069822050476963649683972765229893940097710046490825310793134673781260520572649789541094306479405952696463170327036923175802294174085127198221888243914183800762297791231668998050261729559905875069410309436387583412928560782290173857274644926907503044980471032229022352467058726939566548383530071646791780125829477447135952658971177599739350998844963899389439676791489047495873579505156142599555652209608383415566406475581259131867246068531575425879369721275626158473263492441412747558257715729711930339769754466546054886550308238669787803195137053909912234739554551657998321441616970995116582018116648009907262057302840889664375745829646715416577910186765019374390829487264457306143337369361219609299913593359963869267328245088040588247644981538529829774378393066519574141600976116586260232144030678199749539969361905497249538176134902043628082374880127140592678957749377599784654804564986945319513040647288586425894918087162723763974672425676435143142319651697726363720311113793605646829705455149100165457257233223043896971560316477685648184940656633923441262664476211384367345278960186818879949351380833672438302757166710973826351771922035100749738559808714172397130746254621041301831928173511744568789375594360540183334082376028509812956335475789557935453857088898407150698241830078750895943591662179811142073886884579429906604934518445796909524259667551983212288929962183574644297909415718253063153477391820250881617233403617402133143773686254301766577605475222582513964578553058166952607833810023653147829711052596800353847669054439011326138356509821376715263482728627069681882651524231643858747684980565386920747065616083987940955994510256625657197337532211795261257529575602788631497270150629652094828812185109887363111299450974626669111967338185041921432723954940206265910279210162971748021517120704905364133023441005369749077756920230059497004762052021118384460879914960107618871824892561885575425179814063468155777910535078758554493801217641501098315068524210841426501164426059700842736734146669530880559684804483688738461571484070311416471993937077822194405703828682174630452840605053838800454536794930420576482897622160436191887469568999736668040714445645022945757655231563427047750042481480404078087805597638945003414250241298942509466675097546363392916850727411175991264007408702590014936115792525392053108184499212026622493010113705325590723626111576461980075804489875344330607599622397576104946013304269083896657730646139433334706475940233822635830898436700958637127145984282169800648811944414941417168056223459521560226691605923721473780496232353528765890225768091656143128079179426169017436674841252443220079881829058158497200480350550254498743535505244699888681605020040599268431092791081964015188904654801622133925663744248188858738354298901040825491098481294638216920961284328692801038129810143462734356693725846539937078208599123261040567339645509548393880947926639419761045024867277616884559502076175114980299211636972029325518930861076617924318836259451869173944401901079472098546001885912103282591044031757361583091618296111586528689028994246087868111569686307181380143873301689868613657875892248878350511877869905865674587706746711896861273758274320176017268199307519231777512801120460680841047323412508613008502261175623274534575041018906433613695698908529493843991727379985830690512624419227300081462942246113937800780993731599659937950842286913736542113849631901484030081069421918093136383243780060540302456482850592595964036745891508767035435194277151650987850915439782178108612038876439106201517325171300285223030145892108419399398042783575712910534402718745148750409137147949406706645588486486000570985179598738186770846469661023379480887615892383050644433536579232477070926151315317399693403915332324035624439426955497768999682582246935517695052231955193909326093853171490996915936567105007662904110482446909777269646926805476659535506327366416169951666374892980891425563109706928144414409585941552518113022837371628083736817195623480697049419584362842288468853354806275208262830937219181283945402818232105323508800237733038814776961720974371478842694171268518615097000308028966688479967093180014235187232692233550945282024151001780632262881767294245068427191293359508664273891802189762921152744109008981846475542468387958821195685357953278078164956107103879419681408383279760021465498685028957372482494917922644070874934341683697705106537605323667202569486915740271780279158420465828252582290598052812990990904418621422323770313304632058166946216542853358734441474997089293542126854487240256061283607861961912779882875946487265483099529345451011320130236458934236926687694474108927625257440968464896216228556849616633274192675541917015782766683636649669173630114137294565173304924057409052075176618415542522737591077528726383181562204117365855447202319604836562103707777243242870046881440619053262311167502383570391142217313945233759036193931503748177239592154305419150096139078294108310791969037764677816590848726958312201926964002223310311862563967122215993758713751796814822403196516788627034049891133291829444359682005674494254888639164056068648013139265246053705074020290392534670367414376905671598246333137472529238858079292196836680440228510491506682779267166336076854478974204047123588454926115519326197674919565959498204385323205906911246711063583194837359765514169671638973726646046113327877920626948447466372916437327518606010629744296172049608046457096699625298136355731627380723385741769208308970466135316937547291106062349864598523303675552272423112432532613905771708623652737059568842698102261693853958448910767530628915631318276269153056661832753267164419267361523894791405113698337650584971354508751920151860324671892612138142221011942581803752905888246461449065642882862465288180170077244685880640327970386851240753054151280433908027363474923460863672512859883618349547490342127088510623453247494986383059715236729946777447579830265236441602156894812865107869304898899774155966915841649819265063603949229474051228674915773629036808743256188098565880230046912193871958921033324664187085464619394121851958074368897710862345278939817207163383587853019405158221492700550659561706585293833110002855234149882867967679002350843791210463242784494979939569563580571085828700039690385097730625199203256077996001266062103471867168603972480526636437725949350728213401792665975662029962013519185613393540036862962960242893997637724138060254305610566704089023016679079004925099540002504226623267928967863221440847819496559376270040955996422761936024157240694265640676535265971927047572996694770826076085377064883202497956021934020491767804759331498987522387189748300687422305883173375755645940051031539448534708481859673073656014825104789147729452994977275856031717374710341791636116688894887384270257679121138845089805780176909842840486592921338229332473293075649993034134977690520461841957535817277993038497141847746140832300873856003717613799095214561723648003302221088100217914209242909525524236240538595805323422934385554099372510164535444434214581189078939799492678158408616604313339099539063042093132846058039168009048034651926056378120552733729326408935446576754044506881805155701666265764141633448835762129792599201618973984179908799437619898964400844939603667690495219798033238914514627851120864545735721843699231550901215087593987529844468617152552541792393256063736103022106710710694810359774330377791212310639410000451948894219888024986297660320675118264570982000064374914823886817489268764459920599316803958160829045420687207220242052710510871827833177743699596708360724011129156700249377453809018934868717939650868185150430615326438979123720427422781858121420872335761035833559971812403566537504730841206424534220884777253295241095999898759737842158404219555091321555375261393816429848189309164617743386629577590979165643983665719355969602382982197311275678698457171391766591414948253067294989737387283613535968066049763275082751957834784582196246043404269203847254207772754598161431911487732975988950945659271537483901399379532431558601955351661580170407898590896912836608363023786266209418278493138793997858885298742686143965509285474458491247976110238832028628602148987095477239027330260271066552585652010524721340061468897771238915203952463900057757246484182572830588155273307732366480656136993628031450464204496753610924171631300633625674908091203932198000859731782157585539847517859565406896497590075223136922338986457701942356572637622220257654979770209202747084272609592146878277754981106757931846291184852837054769889137201250661502220599714356140417046888398791607379890134934000287137621101085969986666230214795977844152142960358514252135226733547885697667776441754540736711344612886743827722331183961378191683923102400911314138588534326863636914535708693302345914970994433141592110614598417903759317820886364430752132501967770252959857195490629245006648672133479680246412975518668371732725740992645335425085188130271603304238961059603848820477399123762207809556520259044037915829973248557972034726024631733485509918121345740145047641436814585725975186680368223204494961855571448663654668463484461546840796736473058584682001385613886254574387700575117188682972051166006427358615448292236788153424861438651387518284849765058240570968031298436321492463711699920813396508660837858850338357342267541156094657202281493960927016165927307202842250203795785805319687936883194056864341552540562245262217280831888099460399426658782312915737562278397254751012477836097322187852605222490795097034341122483336465623390295611665215584399565041818648922172196329093105698048172491534759305363442497491587925826178275714603501522072469259634232803122057246960718374280651697168193271603227093686203823154709177607603312827347003804785012079223544512750233469467947957873067068567913337418501650347986886056687978831654141275706105337836281284098646262108365792223831379633087544285187468672258036726479940614363012888290790182420272549524332775410296025541218363066129554028235202970469117668395243819374670660459467449404789969054751635058529099808635834008398605736768414388270044760174286999761110699397284393926012740889678696183883352261145094957096823481130268504789849513084280510968078075203238003530093343852344918446153897526070461263539053249690204440413392679573699685758879893641227683784360481120372942922652575379976833310758618710320827828586438380475395347741120117915521306034810464309159294055594684220357503388817527379730248413784837194982790836655186867125843589451795647969986859124260704398680604770795149636833705594958479374052938285191609557152097148595467971998617551647346433074879711962783927525744838986841191761352130625641860101298987665701200323327630169826622818674803914365408445414804366334716078262571055499455347879184387194206397996391991877752333624847185846391176636499833193184519794826950007186431863649119740308775164173867788696527083279378437655390093327131644914707751634142048548352789829268517665971152517225813938903659192525832488341824576678456104416494579969242917250137908221873961421294275788079933335172792480463668355944590011613174893827168327379543937743863707887094628381153567263954318013296696725081094150500353963412362428662848466660556702095071069157470495238083162571777792600271551608054641832076827739061492935224189813294329967503999824623962290667066741135471424450890812953887025815277285665597604387076600260267914079330661489759678964551847196092642680663481018767604527896135889551718573339345908125023815405942778559490290539356817026516622249021174700940734923962523549924033217499250373214207586452035171366803616601100795866365639473988680121878748534826868856131513982182838963085387042214028927180406590135566338157441368707189381443348112470112751616416108235699871249553220261142497929572482333804115876508159511175822638969117572429514927445547807108465798846993783853904671464039343235682407217950537747600571669581036261872649711234203250157999615678040868947259685964650537321378998773055276252845971444419862952992322447974073466687478999660627477204531493828899848473334905517389991635624193401004665396583336691459898340396400981948358784011282863009871161457993797257666978016215493177859319316358980903387894040366524762486024753800594663856255650529689586425554993298889231233446734411939437087579636984843081794743483053608319022630053964632892527127251366909628812020811814775374631457253395298603097511430115148518355194309697570227748332516910957013782279826927937777459492655268093163869374980076756921058387415707690184994540230170377736322580152835750271200814170156904562543119421444062208563329205333908839472424000665814284203223963955438855275722652624352343312372963584585514112725975219239528984350320100646859236857496024793769003679001234915662589601240664534239271107035197511073078230616766645344081024834176234858963292680712734590357263525709793803374900014267103626220159544965130387817772352066116939206076414006591293857641188769886033649013388379023776242741784409593934616249591559516721909226507273407048380223563432848728060996826016906243919195261636113854003759117382993915382742912707973773095097409001085861129570821998907116820667078436446113746469313856799114212777304490864735582780643599328927708083194869049633177854908856106154279259146504020569817865701149270126062771653406063268395580473679681395798824806085167749754063388231270027813127276209432687292618649992565957272181579037538363819913378583688650803625864613188701502624405677574794511494088783403607463313053778724288512573647912066888971944788852163292064632326011702307421404760616623335568080918901397035362953373651532661110954393944103358118417983873456247722655947346283636053274706360501243045971096204539538369639499750638833229668411187001206997540924579009148420520081845275670032514728372376016411899518026565954234434442333809172242207901311286991540840470978620201658995371589372378991520312313399613271753491307583644751563512220977492840746172277860476122436579250371193308807398753165474246649859790791991154084043070466076118550465769771745278646961811451832971462669777078938882218678757346033081222511688747201803480557195538290564671726634175944178996752975547792264357508402936131807090148789516605817508427512434584991231959313684435961687627871148203926966290046531307283819259053615081168303008870620019983527539750219610298677538411995093523160469771898826828150404070347292322261043824389093386331781146042590645996948923453512862916363020830692533919321496208761369639050834619727736073694083789578580108284785156976852939494263891062713936236172199294007712461996668360106810292548197991692463198410032560750037420470327891775099639222110711022685467770646259596997963108310055206539542898650590649877470596700069883557643867553669031364223419190872074223145608444993335108964359379423450069114359357259614540610637969090917101209874914551746924313044901094714960163693922429155750642076769146642414671775803247927586694203347181708068844858325032045949221211512902119569007569841649791511611413885327935814985615895639639196566545652706965996523765745519288352889846480516369394161606915525238385872445775414478161552937529400845423768602077094834765427426750483920297421824177712507102695504943566227932169136005813812342785132046855824621147715429063170255844510451071714894773102678428147148998135434587961603663330983831475072184761776080083966339917072468403137427768023168426564045761826300808377666873118975035402505292460160337311897845185500805278490487063935557654879928335912861856762140006224014355303387818627891051254532246757466424547174163802418519076526249362283045653557411262655861956523904088273921378743386074069569126453142558670303774168877412502890481045559632610348226843804582991650670267400630982199661546402470318847353516385843958791169737683537567143445801320904583934490493260862962476882358302696551094521159663415130152804538901073229062255259747285161678527451095254652827647120636967100091310391470533319799130418521563771553285737619759780536932947199293826233511719398417827069973955266489040308146924390979049852977707513970284723328245929750050017193723044735227513287158849614915972714594333599871520869491354849472231973048638738994307721689126255794835129018971060680462246693429512568874377346271103488613692407213929108294146334823143910582408270321749164655227749095825880232185273318548974777450235096000954938758182395548483957033999075074846080774263691712292232309979797211804050551078218167417965505163845577318318181633954507502527058002847194156004171151168643432446546890709159130840253503797918862792128459886417313646005123968803343911110869027890287588324929494392557209761021990817365388335934256787037549850600490249843348426593788841823267049665048640677497239972493113949474890267354520368748464034019627093918939752043014706919493001664379618959961462264363957890937318801269004015407933396740154286830869652890708068271957273490722001176770260304302040308708887935172328202857146335861227688689064656228955804280298156819340814337975020479091871048595923154663302034194004820540839145353283771718853902070971011490699049521010316990973842069075270114252839502186948324804956744791741350710668045746799689214902700880581388579029230595800131376317690819341031096509914977825970217909062766693655368052320701033569128741450334276189088391405052845739229717008316476127578126505229038012249511319063213027156311435757685946939818209173860621167223309807764730149016299193914431800877298222421881237072774239656543574839730752844445151061511982172718049085915786497740689708315723627281194139775970808922803460649728429747790932676107339514488682771232729174721006717647986706441144670919225186532017938499557188768402461119492750824205487811628984807316855506931680037510679054118091386217581936267189527170692626398253140369390223613145861389208607616525707308620246485650665922439853548893292298192247381419342374889890246058077436361730716255017443695783029084030478159574656611965477720310476947189009548047516106631195328536094380517584886606035843036448016884831941328487996935416663377147761835247293079834994663317085926465596440498330851047840596418824175112974356486550003201068481821900610434935900023022077338794394300572034235458621823356664289795435968079842522547751962269970206337347608452873343245972668093561798153472683244258524650922117156331395543225471951266111186344054686651548120053842643663248181660006090954181102167265590288102950181527175397935496281391992235177525127292648318770189148873549209133430449276263456932642042193925767355348506912171154410232290226393494568288184270953536130205595894356417807142354440278903987179537073973033520778642035466744579950662820880151697267437450931541200458714784258236547688364672991462024697295321822302460214392618441076572983625079634951663758859542070744928734954487747378760520262793987381722259930913494507216665876555490056810828484944837228533977954079736137888183114686655455185972727770104214514643387862664601668434231446889637149504752201079779225299086287168503319093526464449972111210669954054576712565444523639827972054159650104336759985889105758824621669751556967593243659600607183812332731109464139508590421241992390727433428304530979791965434324762650960880067039123181789506648528126370048526704109241423989865658356408575809154866536293064332861087803056054936787813994215477413022227122665346698232029017536919259666356485234460623406138437618933528592520746353202516171154078829481531367553368986824676374997668125790071690704735318750061242258877388809765481670906556036135487120273301460714744379919000049720788433512460234544270130831086416328905268906614834976035280025696759061238391269414683561716615074816560920910297174475130809836059140801315789575304558387041001805327080540457125504082969047101494122062833137667311937625473992008870676990346585785820103565419790306989943756692804069154435817759705633037628008491947004380386669320139518365807523202159730500576061051643514677061922743564837656653491377621031806532698569737811892367984599277921724126576301864993769205058356152050935920930544370350088848129525321186051802214322880268253056407791158067733752311326612385384270336417793534759944576159884821364380919581997402967588008013394007055762539069082712547933127461884805494444199943310152765027058322856247271802599093278542787887938810038071329069626729551558099652755898437990810588476956533775746293372423856419846023194096223299451817384150083902614648769089825895234583176707520644950485848145502612637594612010640679157049258548741009288914319924663602995282943560576002656544609410918240997054272539615965541901956163224998738125206811365262121078106602702148613917118668764406155083338828482742615342797428417805462114104992896166410031603544711022826573049084949160589335567820452892092615044698367791720160404980569670514549485436609813197998652591116265165533547878692950687294728318523482741095274758574430863114932044743718279548835116446542710495907103764764872729904959318034042310619074426951416658715659950774400530373459869441724208327803640080451163481918896966741579207987626477285263334550848180599712638170399996516525060441385277932848422821157284880488969576452943466930678279346474812896673944329981935251086977771013299796921389341207700129098464687024270750494146405289658149268171567668463114067834886009697645077715967809488682943380331728678756489744875299984426088607003197205403883968943793518299353316213433403506681865069469146824183655441881408205247246824949306997366164466118005133392298474585056218987175654403235230625564489136783923133857070187785341666827857118391616589757471439625520612910268713604583119550484015776741097331059169441854267973662131161639383326041894271867705884271256854578888175770306549603889030498084378541417003730207309620555928149773692612079818117643684628712905309439559075603471157735489667402197893648660458033297926971204757617355106317120703549229729163385964695285654993262016990986536239015891802926989236360967004250876008531046807159321315005532142420740902170073105384367996059920067913518866455816582771253380492168922351071193987395309544285697368577020709858288146363128762634976826105018361619428351119657087534640181426000117672559354416215041973655004365774688362468326528957710150705909191758212233270125580154565119212972999729007724350314598370368564655064541848410045790879241712485415442776128508647193437613738754422034918487007071175935860307440646442068734012889034195703056122255476337175802107601016535156354651203867509591387959139624377967215782413667060347865086649108359154101377931751408439478596738295265807843834938333493465343752409203797441443248196625432613063616128921154344140644785779711492273180542124331301148990084684726587218913303404712683478340072120998372423923019097929695739924664797383441701966780534051696499769921647835748500923964311453170895539601627701323163738782009837021942839233133545586240623574707405876578744219059678145259127438352194443688201573543919484736875196964378840191936509084498432195580961076279491348856136111802368027748960284541914110909511219228182982662642219335404214309942838626537493956135947970789156777501720209026717551138784981001817646808429294657908139695843492826392696365804469234873711702079335925441586283570937142973100301633520828542049049424452106434756580136807387757871590125208201122632531074226131955566031978296080864301967523997668001952211070024407181037126841728702296601042899014825414405148447695349209444906568845201513847962817854319835543398697215607181027091001159732650847785391476030285409074576701946256681097641935747792487648116831018763972188829046584296537390410198536251780170215441078145814629126273132984028522318999633863356066951447038936318297538322024221561092954442217923367348561459224183368762580483932569349001992238261328757427298229936369182514661498006354785834225891685767422421364314979944316206874076334300918357084857634233384134164945546372653310919513496217402350549556167424814660458659723775534301898305303341075162270971340847202696453843100230141773805188837293194446086526144816949770101989765272833622257851548686056666713223484042504141098729084068669792237874029189811282505335749312889192016899072445309061353270167458209398625085342110526925208480883991138754242646083400549431992107234897830910817726473391224242874582922331910797187834003266860390048190298255973937066358879077769805975211910192737015815382917173052897869118206168861808350457448855339635938548552385687577379691675331278655919335110553694641472919920952352476726258748795001398554753377536247112209500712400827090067340673845640312400561970927702739263464711757326730240977134526493086670091890316373640759180932526687244988623332056381219343711385916583570206540897632281644166889488745195528666851797751925642127526240924105682890311050480217834408479469383981225743156911757733943357468195272818740035052319340482437031600200564642892985733181410924650367700318078999468130892971120166242462051518723856999302079740295037606891967455097476929061173227930546066257266450525337002890279142619311650960690940886007029994260792983974147431877644059815209504455716627763620115151587698282644313342422126145668332727827646705847088616299010611735377008579829619246089134657631639705404733364147632898949646783251661134770908408087572834092092136894624600703949796265703094799301135021007836217977210737096638814037092422798552903839814363916001137455866748235565382708076829170235029656820661817926029907456602237606918180091045600299768233006026062479523719802321316074576760451889577966079072421452941762691509994288500599361503768035535169090650446155240843128581232052030200447616100192740243566811720228411135177313797218902760145780501923734817520428609622619985662208228957493457998543755579095698366748676885802792444359948895559302499532829867005008448812114539513512979492332506682574713446063592603855417152468023880469738514807491932554734189672938981278429524309257389951827444756413861995062313387717913329729972420287487397027653705886092131830142617940866858945263534661364667954884347194464223598651131578300751472802006777625361104375613884448784395456369644523318144781345817366694070205375763150030040464449612265390946154578799557313864359733589577646748774595026070083174638351593935326032679640640432530149017518623007993930104349847900343743362127366396759547737524082264857694840413508706307373576190828934894305013242754936567282945846932721674236858249860791328898527825273145209543949941024358218343091561149765309198605019361149414920637991351593741181980757366060605460571745803425362043681773522510836739572283961335041787998775859778778845740826457713954629738858586888012200626034567454361991832647509017171057275203791193162664072903310913905263327463387344597063703618986490877567547144667631020236811596755984803533869348633819240089080213558902258883025074491581424925569170841197174817176606514941675934909627315474988388682603152876444375040521197207656775597695599414920763914420635136982548193249171246332758369605415164891843150354383218509123059194001589413735634046110697852683788492860109959930075543914144213564942636219404468138978217859742972465626734858716339218063722227371755580156708846054768005407884296894152626858345987491967352539794133261128640449433844327411140546859077053220681108988376149517926363031077681981938138017600745317997654312320183565213846802752755072534940677215535431047106293034513848514798126502011294114662546328338944222505337708225920491615330471187033137038021558645083540411168934073931933041701387711018539114089883315027824179394791792637433388936567307310960208840314216924425358868596338095586018179740074944199854884351532192367781022079191775051448572041414415690076820971686549912329426495018955517787058950538994147995408176460238064277178179576945517358510112787423940275407822780901451499162047886886033747534937042119341311339825711547998782071690702796704581427225709376285673179043704221384150611191303473519545243641052402409392017170664446154792627063369357406854759815689108103208271091145974143773968619334236251364022150353853791794074020586865609047963279531635358151437161194638485894155224557384735989688680408491321538218424374050599393370309737007158476353027809459452316358406543800752396690045643676887922186309891329270020756873840457646616007850784986668016978231462233734037748807572940910164238303037272485880170465012757681946134199684750775381001475175588993834717826777147816388803433380251881761661216289846290959586032814016396497417283414320042802480772142292169429677081540135743290374582310337805317138634341727816839266765625708002330065922434747316565876671411089809720258838348588762702386373361623500951835186223380301657900778855387909753047088066496872263963658346478126861230116171044155453957687953811505347435216055925558774529148869843957863682081234934467730434836223767128965866130331783118018069968477604991398407669720059793543202554875793915729446879652116090890456554671631826985984349829073542455878347728240283406766651700487536884852731831336140135995654960110564098927496545317592941146050809597132448163086164226147510235833863080260285842355910201889334598823412663297639599310802426707943900540054465578007507553856679955770019598783843384315320076631740370263695797305054002961597304431483481632394376303903610284131481696872148064679153477034139700751960169970840041697942859491296591401969976310523551716875757691479833863396299546817186897582530832576319198839289136867665780761733398581959071155356766511467349139868535631941662896237304822315297205498453230245110251371755013892044840005524761380939762344668978123408918066192630182308036873198120957170011292164504832792056128239274219177432938488666966170951536106305143253565859432137322699511413635641939054757169989555810005170277440072041546181651928092003347659434776490850721996120765161048915726818062967293260155496285218974210586817900477750961832909915353654573118158634909542826541257549738253459989803887870330601589492845415586695482797518519801900287421229085536745587418883982970334705588353364055931290307508240179061436398814178544631807023967216432916896213856269085827314289171752352041158834564120795274582097071080850693513261497166759109266089942899746805706227559003551807261358053098879329723654932894128908227412020131373649996434837859292949177879702155314471745050822174583834481070918456182463692484127929524975207994927407386101422950992753327423106376730305770765463274796089864712683140604817268813715298723523186840338581695589190497889417597124993159372418646072401651729339580554008064079453563314739066844840221664309808264221634299471316085924706140571035166318358895436763990843867829476443866751119463007069418911708377618205104717549692321822943445589508085307502281385694520026377177270268524961523221372049939342102922276625010965732219218186548679224071097275229415336945269919722181196917947871972543171939571717892619850766118658367096824924812669026665359203322012710551110725142528776376441128314052660563065956370234522202778643215378757736508516173251122395327994791383236421830532527722523631070032275099107819188588720640719486446986790009540632974663579553536086805376565564801774712997833805136577007228605360231516979202734665616850317909699925535288202491047436561853860738445769291160828181846109043359855310415900361907318528678132491546825581093012710571720526742393051676128723175779873062021135349306760060902306363672398665510754417558365992836706011702790203962729619948251312600790357115837422435735328511100827961347490129912188269492254611728277673189815162971295207785074065243859788882129637596284102765445567443425322562517154119514104648002754117869857077748353491167895211135910577180318950419820033351123529337812910446305979055665475733994445872626425157635787918192591108304742745198645996980835830073639102735877826857711718657477801556815412277855418872040611191654958495078515183493172723065673524850093397873467083370435189524165239853676155864259720681396381148357461681091541004914893145650314805339750775552564076608934245096197960491852569767206441395485791854507185586265930700049324696546450731007433141042251912445700935539666048667801857204492981032482718057146622916459106873014855197927087427476455329539334749536673953517663978669086737078687629308382040749600642339009752576568101921802975219718230730942763524677095926305161943409879532711215357737659829181717410141695814255066315483834617455618323751743659874658543551398788381042553134304541689795352253642549798231356426675045236558417839730319072000762799214172209817153604685579732501557560650370356556262301047376376600934147123645436114016556520970753610893146538796440472158924425674264277529083416848497243153098660754433669635947272032230226903546195776131102616159393382716748400962663561464889755025665704662548344479474854012671254950233907920826933454144963685044008547091904827194850168536027391472024508270144267167422977454586537406037024047497320131732050741547029721537623298479391573001750325807988471784830054187726885713236964723989131790440545073502040155735575081221364677043861787133685544560635154522204518702230985487140322586113590841831871012105125686430711357597789527469656490908628873326525659839225456635571369733316630189904478236621186885366804922871694559700163538416890359448311346540489671129066928300174777849667716195111657730055384332309155079041500189293329139735020616156577379208009047215912962851118741706343989273660582744404150126826272871128034808213017616978295150868001332134597650478384090995765396581566194503142196956726790061616541421750441214345831459742710315573336823255692025205780862370333973600835535804835793450949978010548447453786996194967178382822462041609439677770083745959378668513323023500893038768762346592892240070169700912901342688159260714802335109127335527611509980503022030070068544865914088970338522711855636855606011361755671830468597115669747576807553309390492715113417442280481634237367134758676708127984250417903745711594397472927927534887431544785574750622439451373844594507435820966062725737550800043978378905726700603680181235281716198872131436960445694987298772890959006849464498296572446152795267851254401060831975979216434898793845141448483787921450824709590610085913054974595972864321935204675365893652329225266079400147308442767019146826622651546069693205226857478760864147109535966651358804845425814213096134678831884316481284311339383147967174625609212685005571868319862713960515283928862370499209478542631967101206556218883994106172414718018964892908078652028169959571614733795574610541925368036614363089715257280782456380833873798517205299229619514753427019064833818385390515259153716475744598623418234945372112329569676147852656827753772956379606106686051906952346048645455763696899157787085296975453453057292344985771314894652545460721468173589875266689025796088361733285146224960485220520789676808951146637283676085808937092656328399993250331673654055294839250181424348636073570391020505233350036210036577296964166305451438973049915655147323088205327124952250484707118813190375782478435772468873291772974461859112433927899995924940695540529349587153481838226805335126823717248026211641278507025377070127832162098164082253072491858688360990138316938369007494869282585438757559297510897571146129895519204663560187286307701298791840240158774410742161087644963817940871274484185278003432572079214164466574610723317669363883652592252534306849384582526300375249216249261475869817218052207791620287767037960664640975996329941436063034272290685791246567942755709258224270361536089307577449582080873071461811284845872452574751765887293680252594497751663417714590183390349098981078185045492106916325048888037219090415594306670627984190553585096246222142300340994923446611830099218620174547690945153105686152624487243006276047912296829937166131786676590866030657048423568247625186980703094298717473806010857464799743105467751238425629682354057298898828765326770048744017807513528924214252367195827892015850095658168003188611543286615277389749009285533213302771317817428995236374704811652994404199872113233654393870000752178590794145639288383106098767750905325516739481456831558641266457525844342040738375784004298538589572149315506921116851121305569077137333183635033345548536118449527675308048065640965004817631952966508618167351662215589496463487094269768973341818029286822811234582675053174495216260887003453084279115508487988887403387058995846358708449006298974370247911008434740357461557011626043519951866624516049994601343308055722237938424328973928289287015143288120573978590685481575462458338273546282325519024635057230269642399987545449810673397056763534073294019047344689075383391775557041541041404831650657581289405846076450217091008932963453188195076799222593573356095474632980639594569835584027065915921536358741354619797461129201252508628155386578359742120941334550002388832518399735256273200835344111198393797247030209281744237564489417131125112436427289470489796223464939422940948941524025110742868729945889511810793620737646811125562290864671791752445382409321395048177504247820983148413715977495169738830225366390030831630971644049243053006733038140208214980415152290223036227399282513181848521223341459843662049938938945141414188450470492942336029960110750150508082780760189729641984619318413934422302213346507281039119063075994801946087400518020872965645810521055578626332951642883544477315301629947465941671513903109384478048756825483560198506829177861880062528711486720566863781076663889958688493687328615095311484426699505091005426901367743689087032872638602901734929770352870641983778057990196013559009374335121865141486993972724869242959496139409367600209957118161839988181806863605985391641538556543006810472167972509048127867532798492810328008767868996892109014163728759047001279793466779598452871695659926489261604097102258189660557493164529673148938947814134994195491444999489052712926174519403419093310749170099655886616799370681398184964385488516086649476813524746135949477122246144620219760326171041532573256952812835977066496126749248445354697937176189747769006285220989880020073662359475216124356389659878086449163134378633349733873486196212510442632421463205487827164980875953007542921399560324664032247485077503536313929256754316536280891151782686633290791012371603340993354611491666832167952126848634140279531977896833067779203011393955210724868426443492716490716042215894349429053939250306375450519061133913344689197891672368481553301521739311244523402009606998672360258728285701694718531856379588670347541734108004489132846956294407254439960711978032655187775356973764361083378282583057700375419251612393109029019269924168073225529762786615222758311834209431458719801157929695040990090382415918710584368323091261727160068777229948267909862173472541889630439659295748945492501018048971078821827321543698172419258476381090547281751305987241011011657987964660462491869255712438286259050672053119427255658408786242668140228275979986431295791301989311489773659340430209353012473307330412593333666644711205676656201300220918503578497648013718223748463221866801304107501490472748974320766292685059561628810465132775602121649402442970306668551397430431474252183802977018086860346404934861016570307017363566130994553614375837664885024495203976468416678590054707806591102165530608419282955995335373184395648221496350927782142877144255061926129916673673291503972792753354714767817383970049635304854360810726625901494088264772861507144618255942642059460746630736370239086375950599523861738199244176125341311630097733233489516255373030835805766242533761439675268870470528471886792061240210959888043681268587603100302585699347754749913175927604107026948549097751651708545842685694173942013667840468453163041210604109455606288642381394790811581403407066407855423828669664668555763241228080661456651288518180830744172559950867268515986819311314752821082029054066588798120118131160267316067988146130067696389177907676900951906891994510015425002964117593868951613548177189033426075561623618655962571456801166649968341503782551706016216230803097074784364579507669829465511352807635997542484167664157650377567255908146754367494937362862313228912952054568244840381052531852788671994437792821378723788970442514660867424150994868359644089178233947071108857062714792738793577176125060153681788706999061372493768268264718064484320589299338944301079011969358572627939503450822396359830454039993182143003358344598712451168673346120072771775678302053342429491431133262122729307104537986763549807820861319823507200798910897113771817414472862226232435645321238800054449910395445409485533946399089117887407183255789518002873157371114073515700711543356244311846376882384768664471317786036536523361195337705787398695435808392266975478520784774759042286403472433587590157079038604176909838520049412558559389221987111402789982756121409983451267351017524971375225447008959687197905782606229951166479083361104389776102508854134553753330253521271414197725904633565808872797538648577834030249807916521568546360366653494358263969083201821161244712469931000498637609882451464297836535932719859390040888408690916873787240764424833122692771629329162124609902475040424937461774485431557683103804756579170957936723582792170789028013080601010258103605422305229648329897000985102874481922012363374763630771911620596280308425907355859871572029934530301296475869819363606838173938046419700538626630848845876717512184575895425530623057008806449044029485073206454846741069918762301959435520050154282640088557595767090821775518394881256334765824651798483478534100774078533008073608327768848183536185831986378875586854451428915141843660504060376249545342692894441997616910907576145281476134757579747420282673719020393070098213060536684120832776135932577569647484347943917997587634933081365483541899200527935030499674172942825988442308277034088682883509509266460572080446864227282740494197599550971484597491934262996614280423714087869468671019656921051498767326935564670898199212377910315828727583839135295772062492316228322044226323547831715291931901865558265985100869817368181976491795007603843840761327667953673370750174665520623338708253974847039888442007292776826717982159815824612641388888917241458191601038071102582565277034100614178798781195637851819763937557842422885069586786315967993777594159988691133835720580679094645403188750604829362169912463604228812734298693988134622548576401615170489674800806151338725852187175454001709777174344093291562320265045317648326315504330399828616142150597764472754227897477170034154623828174366033713970532173873607881446446864230343986386609162647759470225768940481442038461306135000261486225287692810000326900462617062911343903290272988058879415716493136733196686085681623275265807544282341694418499088595471110428001665170103338057495478043831401139113193669345591637811473501761194983206645507360073450526359818049252779375957886841705097239242957296616290740800306238319385768744823083966952995083787265674812823093443414456985124219018580943291638071509289044928552112392721908540682122335566809214944159530201898004286007486998567235269379582313603724068362502345983913499883236634693037464355940368196133719184329862408148905221560559568566069961722875420457024582103484227740958543019352089788439968189764694706694662398092255110489546076551290822370855477173399612876364790891990270316224377889710642430425763691965078158432891814994336484505718220997324183969443684223081939002303456720256613252829574923249067610118649321547715778126479064530661370626001881196634027837539347731459503823062364263395458901252831380436345564051379345586620405579768919245086068474479331069664542824672153912407675104124715372319340021695767801897115881831084895508871985534222685449329415753323460023154747736807380374928931506905485532021204149648277911401554647690965587199914509255274047339322287314039950564141294058554537538732362783221259425214696989667846639689483449905473111500408662332044230541206925952164936780586768329927642268546416963980847466722546857976986177853832151259980321718860670473932311340101828390564198041096166077517613158230287676458142284567195652531145810846949896456856936514640101926677686054553789657332329440353831692251089243452212936850618871300433669543514111785444802104078492617794126277447659012300298451418285144880542241653212815245977056222846705892516044764833340891800376516381985531168264262800715968025528059422534144045224609802396590466601604581449506414910604268384180069580541458926935199757858224319638963662221379899362847309534053159442066636675323694263281988970401523204603153558207078781345245342530250801176241547521278197035627571264141215367555267682918589723865822039302713649243165361583015850459994817823725957234402140666295017472295500398675714131137682684017521873593925405394321227844278381303125200982332603249526836748512202169664364198119148029545511842461820088157594023901293143798111290584958363270957229037685756506479775656889942107801523323816163876303947919585930431549439991710881110619757908164421017601236230008329071512254397872277855817824127835147164464256212328095018483343199777949593437446959840884907076131293781616102284227916449605099941575504880111362783261507591528937812428083677943420498808023849945560038889873532398792841249128850254907261335682176875975830088224202120962039703509061419330941009879791809120023711285710894618161540833905751955320060833292297346157087407495439887009790982704534389020871827195945009311909347655339146315559660567677949381508481137493002443749214994131018287744372888371663505499557233473441578413883494463318234472463440865181867973826923294507420692717581431398224821200204703811141415857270467214946781568245882411135853551014501501829982893889255817910740687681116508712633037997574132081529817275188432358688143840695537505200047851204862723551685464332433809320719270693930350494062310055768368402413066604501111514500034025392577121845519239169065708451691379223943470065857840553506200937935405152063362009857815434319640845977039875952630087548812909681472847099676810368472810394358392944048114926137156532900634597014754661755206173683732245750471002912573396625968921241440496526721414774962384694084278296329971191074159948710205260609210312193450115850899789381122652250726031194879313411979330606188179858030769892049118691534448229660454782598886319060571246914535856494782645425430989557941068677523683140276458903327832652556603422115292637300674130367945026364192123423895676859846285041203477055069688228707497537105420209143249708601948234819013494064793242932849403996572837367599200366701832072393873689483334111951259617169160436339830793582364349005673307389020688102854960860240575899798661900160701593029256169612353969270386872722028466705363466293043167612076173890760959209598121947544022251493294012961928151239521192741633892504140817790689957000592901892212388944439525119543367067830833626885694351496124603895011989741535274146612475922863242059114530549674060919612080862446194244982573003365674020055858387343715957133075507333695882470258048546353971432666039624135865713150957138170929750412480169790400883677241316990536074666494955810512917128320845261082253927327714760604662691989499928124981244516879353259085429666131195336229576435488274926105839307319638504141530631569615173496387150446131341492731213673426026699334620159403659970809989035766254920332679618185695700611425338152331388394768613853681403899528392248379212852274215129772371569609694238014078999853753871673843185097439972005084128261621691169870343749731849964668590642528702231151139918477649998418322755579997837111366092200128901416171698530816583095641328498933940391183562101065439426226141757697673481886927358619129229206946810629522527453602536621318472571552644198108794495465778036641636489510995338673590820465023837426357503771481567726432678892245737936540135322751959052966464429901277328813347357919699737384030479202096424761278654696662498043152668192779021178122485710978543841622301465790215859881885665485107266080197389934637453960608017314048287209917872104880892322657782748962320569027800851797069784908248657277053561147047421312399353737076475012837107817323699438172374094547840776729589284560350989927529349756636960794483715799119461577556448769494975716924701965163271322076431605103100354612296258492249102109645223384963129160580347602024746031326137919684271750722783566485172100266655822585132230242296142343550555914548977442503428058005649357799245456072133844495954174529019668919457238866718233452083198493803123846844326128541356694033848560488177172634731791917002528094160646856146088137539587941506415638506494408140197584364365299502197223249679494794907334413377396187900370349325277815656943454243664455069996726787458872980394149576396992101073989620649918891048617277161944929499787290198037982019127656925769954399110397790420691265447348967876603673296595578086121215385548725036665253437931981198731664598142865656272267133197362642662994370466976716535338100184070502709052817955107878241270581363051163705665346122868378877628766881154266441390605365994034023136578298377396353293015435908605547009512385981420252451845715968714385730517708184512577878835577415613891842278400868232824582991446195758220363804767722846043709682224177702759644244308398456611851487811606693462263593812757293043250896173004877551718386354954791459873238491097864711885048195365812051282179785747121599639954475007677630415994875861377694786748804919047838638302341246078253015284878971594842192160706735537713695450053748712855081069043065764811558325540753725946260243686003797804469018362558133462654809384048222446752762722434187957613479292312829821476524743861093609707830594006607888131893805879422833158996887268839552094063522541272135372552126573155918762231728212229000436203786976966584623122534989525012387111783574457543130277236370699904773096963452655533645955278651590337206467778151291959879865917471324112754642357885390870035817795214661147693657545996478332160350933226160627401997192632441171134130392163232853850753859365358847674147695603223025645828745489895002463927849295376388102988616175906011994601923061110175387036715790037812675313885000187272112474685810493587548968531692995033940379034291593635588287953561271176663844999365769410332653226658398228855861557095157979309739117284417278685570046164507795406222971653617023887105557742041819294648974291353138092900217032883616043940599994741491210848786016048997871389588055019299732095389008725830309414634079700405490158308152752439286214487488393684802745741275075564570361768016864089456325542489013688013122880173086948030023826768133000749822230192262316521711382902820210034174533809250846978125107287385727643727039265603861884691608703125268346508888769769234677480238161257080252513795605048570229102965795137811708175912007431500720880031743980890403962035502921471812856510530715421466952750001826550705167843542183306503077417451263294888657761821293194751164963768679370029730130079361622924333928246732351122452998860192125052983646651060747379264427219589066013536937070869320135389989264354491424382775739858262900644223556328216928190801486491793371918257309834649547249699734117045735376708378185189168965354442460748160525658824208813212954847723094562069015992714516841960656792301406063726769077430327149645505729825979488965131713928830111266346866692059789511167039396871973244647119793761875753090728748444129174990566111276497979586578900999933692377335058361096148226297145557389725951351631179752610328825854700326762099276278343270827066881923740497796977785848577984323118668121309116153383435669833067968793811433289061085253899653786144522712245227255375794902292898526078396058188435746988563690409030920618555982789519016453842747597123356129387679732777012576278083199763702825890130234300839357466094028460309586787713326020126094385260092161585847995570598100067546082794825970646802523588203885574332198768710877505118038546419279433819929618024043390074655546558355331810089227876529912724350758670099003443972765472535858672678671219516378457886201993561687097433575773740302617163436677724272074940941920626696348580935423487440517608349810945586537461175019664666893351901279094772549576803556998045472558438635931165797458387389110457417735614160418427554105448145286508311423425677053009796271054589377769495649560899975736448624324503453970254743132888645965653693626458647851402081218692016807001377741273687938007322751636360667394788031296352671156784990473461653324179963687689628076859448001355252420386272090948884513923293284769915864848084592346878434093016737827656958947708157594590171240906570749833689732287409043695072823602741398439154469649027441770035557590791851040046880175891438013052229270314401146082653549759327067111628983143609552563531370820172751794525631168278324420365866619013795613405692194093200685404922947566269265773557833153051649079049192573508773256658130183625394882151345142215344284801358963862486054948615162596961399079816009821396600850733742196250858683864151708999288068387282941388232383046591265584536930300638315895360904497339693979332202178475220358714556722899623910544293197866139652511333050486907738225683399499074006506409339895834528404458574265024509517660840178846353267163456667308503806530933608355880154185928002454202784460119119313026458423611638312536194685315362547632079504008294447922454441590108077074384390244311963941106992563763009285471826261667676425706289891794286929240855840270411145597509492474040904057274679209321373939930437561217550663223857154061024428835341113526235733188348723132920019034381249724766473690616984497891055147336093224313675014760246091075056777796622778074923086794481221207444956938617012542965436944527639097599095705340325560652195542850139932147832105423732733307408290315658254915583869337323775688377878018309000824388889070264189034228758173125853901616388622318555992848636446839530151626937160557096568400715452878621202956055866270083000773095336106722014579833096125152340478222123998515067695483343995416956786680337370974457757753359658602987836389913347190615317187560987921470488510644649086429120738592591391228311187301148013353607029816497131201359521563059110805199464348598549526421019798191177954397402355676486797226488305307703439787049438940285955484016859670496402901169413725872669007967381636167973943450749661550975946082878013517149418110862151835445690926557004430548914500021929790608850493328181157644799367312403841819743005221051544438640964950630888798546036862966147190495893840618558265634684931125511812099501608996966374283837548885391551126648836253391515451677128171708847795172693334682213019454607563300641876464934378634956350665734807101918120761860698596431455661642616187903170546039025238018158070177456727532032540542937946550758613077198691730772907153566443729226328469789818743494793074169382331809026253690754068101760536291938351497622422135975243533680844422071575499463278781067490317471376436921952284725180849876231254618476618230705862676870336015427964357636629847547823222876286504236047606159005585782564545684077036145045093983632774529457683889578448241558385160363653042969487813590758781625825405917463432400881942476899267836804318272984482355195555513691256880444036337522569720412042741716877736636024919465386636182469960895204373017915991171971643875649748136297366592085238529180058552552227491206447402294000482178837252451756033901240673074729592888226550697736566914650546657268889179530701791023666784659956586737364861626166075334135888416261562809945373762793562184106706794711894663748828868973950673960143349797262792013793309331814424067088588075746626111047901165907664213666115422439289965594536647344812028535257956700248183002196916979927097986376020474771081621999143875377292037013249955053414712953908204440363412175248769125089841068292881074809826287112083022865137338272405308927287228738263536031030861240393481465921380255147333786364182749230204920983684539677608467630063093890784380660112054893329636430787602845208591460826940379556643380561810728142828517425525458219601826554808182141046714348038424386597202453194097819149021902983822508122144538169960584757714707179895373053343093489094966844236172010206785037903938944192948444818541202431597525488843069673882375083665126096025443557803264744989488653974016336769204027605474369334821650882847864986711980304399483420189521522831170213443300485754662775601608238092241201416390532345971449219649588172121158755284633553946004860398727850329241577066531249263883117230762471733024574770473449444638577371735716496628788637783451221081496831131472146623917530629924831919837673370804966448800743611468493529396151165020447570745219091772963340545832511711396528382720660513920404733572811356519061757677813984639659002002078151603331157303576933051884877820667662653655173036194176363103495209374943792152538137580169999742134862288536477496501866629624496111336832764865358649861717035170471951386550043196481923887614758551391882978370699558694234632963999436251595228943729212807361351974337380568803249166975992948179926354231577670786700643407550772156876267899558404572471321146219096475493423731197412823966874214859868535635817820089982368651810705198423649019369357919143099022346255332157365463740724586486981732115483451022478825273854962851462476108331857113303031101988802669554638053687425640840987564023965069565735730524389527313370700022953889353864353543784095580561951312951202839824267675999475216062610236883503947653902954060630372559055897491916962522246973975735525671678613531412757696044465085323524674477413568675641339696672938455138058500549393087325809149218976091236709000626490018372586807992642061271830403566796918372466298638609092450457719543479844814629592545016421003696263487319345035953170989406472648817179719299392398998724120798550251834522490033891677209779000404788215527250761102354882874908950163199876287254569833475726422389324609716644114606169757110083383309833508266516439264218310345214949333615808452414794163625755988591928696497774781570249001548583971330622385379723522756721114856153296411722995790937936759526821527222378868692474541748963003442039639489521271633114659405274828246370909250656093278066137378723448145760012703453042655690670784138874667461637936325236168501845910065410670219292573653197989221752611929047156234203988213720824151555256994189919302589800555652453413187223910836310486385241306511420794749284714611655631214857399465498618263870312094059068108822080919217845895679253717914277976034804402868456751600483143447381005753888351134064149015463759596036710851848860864578464507964264804952354536199977883704217973026015820390491664980886356781524212253416219854023882123995692822482014703582598108929776454341107342701651735660877044641438630353934974140256176086695056485374661344157181937712301740590877525166895701265049995530649284983981758203137682082863601225093088007005110158844101434207864962817085723648869277436823569735986927081321607698820534767203542907991457089091714423658969741182764024965903853394597949702700151854658858007882202513859896017076508223193022196209741057867184691622844152477460153005913595944216364335760924071863611151572278645721635040960728856701167409948966992293521060723792056106890929579430103151513373070749094174534443940073047603250277351608935606764695232301281466101237701136766331693454036757125917223278233372651833595376649864479924876686712916520853521913385196662205744799133258755553045949050719279919538196755582967809295809798780594577502692362040104704190701207282320232188116348197030295042290933759979060920773771698062459998582101386946308580391638033611073947314259580353904840193097118953101493120817122936383436714260704459178062964975048330079181959325203640715355507130211177446928591724235938590370827286277220192576407228085236057891781619586966324128055610090358380241478765517637628864227564912777369600402753323175221758324794966678696606064006594268196706100879774818716977341167139044004003738476533480182946584493495926168147420299481424093966908379096731793056961602237758222501900576579536508762073882215762711030300166828488741641331760495178328423405382840959246982706683147697637790293584754232582800699541576870516916530902794757361861818968621565226479214856647131847992816959116761693712913444340157241912881162184830853419881737097469514376403489073078572056658916389472538444609179726487772834101595619668799561010115052846001341890035443265103871908037685790884650905443546932207998326119239973725272957993169079229049278002554518507551688228384839023398487004027978306775851725160904283231094590202210579554336067893017378841445507189174591741637791585366279021392744658027465351621846261935899866413054422299522906817796251595306532642565608521144282675815200178181758941141815760952305037617231522855929971594122150299878099060127486090675435720737282807541573616894172068137608877231078062019919166069119101187723794399722192232761301880461182757139117462089267762863739156292493298920295324936052510700110177436677258391114264301384621118803900531266770224449032947512556650045650402715786104290986181313151211554846309589602848891144559396938896047936054134687743729067752165456968895286873122665382081739605484597735457203271150586438364828177394073288945688145508210551909941745229858896214678270425434106878874291151498953896867090138370090262642328906576990792004785800677613484976898512975921520410955567311924603684647991209188866504923027408283079489136171456146849060257031849034486876077749014120398116072658176165011797365105824733019579043770760782075037518515757436061850086000133418126581191040070827591805043877720400848215094542083867119613857516386681628239040776586712244584734673791536831250424887927077236853238759642460304393958355422430090056473324240594921083815839929274928441246552806987284368911393043362913786085587797456967501729178887008941029019026927050281988185326013595839183017532732770236518139818495881626858449466387895310263650539445216072678058528862638885836445180323801499981527487527223048058726181131186678016423101083991254009142889987072581573940221221292270213699700638560837118077022214915001651694999992178991247597200486917544095362109168775283097274054914979201310577612775816708232053907928265785686210887390615962988028362190664197176214923789226434342153261376284763419881258606871941236210923137031628841417847344284744585772264200611241174058931110093960552143423483905483795496592693802056022468553154184201062247542638560049992286986603186435956668214346459833788082283983928233784605190885822388160963823806385496748578919065193328802731317525048643589897236749030134914146368961475795828914674676838873124768782553903507041828851768462927777198761859108518538205492671002344959271682134582123124596213369099564373809759533772924656459589914591665758201622808851626801443883835236579309560662916702237976401986478633261166261226263250843387335896010882578947231104648521015404125474995585790612077095775244839574641405952831841486495786580104086658306972495461018134815472643735569037013306588067605082106273959646335854160238626623995448977757556775790996749464809321956744601025159758625158833768379153075441805232286944609558045097369868728550369099164734040767910154653137584027444723464231824705666050692786208530823284019693137695847598814636770630933025788878897158284768674150839379904523394070947837764340964761622277240586097812030333207693220390768737277687276358096413029244309810667358232587104871857636355338478170485660877357084969594586364805040946140352091144239209393912905093592739239311941039717412911349121939671239492629524372420665928157013547949921695083472010720296544737868973036436446800948023192179417844852699609271750354836263011762505067396017893811241772927063717792543016874371336436763807691268309100903702650295152893303258187947280209532793288166035117981614229550789837522578492471443239410753365316150523503600185613023778498173923541614388633326727745976988481553121655246328279277084982355998606871455203226494536871170139129969820796681451085724122571096796235970070290891525076791157759135763573397695330617274376776312867185018363311143998944572556124400085497896078945614131639938904534677806002983323604398420515512857562909881772986556499166643140129765645861342903835460706006616635652840935252921073152206338655098756292984022256034839982871423005215735647885122566766120742330959959921777696283024543782476581188148695672988294093074207465655997380058315730358743482622303410946695194277388148907111754978453925836237956423784381348874705825268500767826263102737386735631638049852984805308944766578904432683384618332828457332819544894275955367557694285912603352324944133131222824314972793448189454736405214041982808287989834906841248189351156254033815998852079759624101515976961135850499829752560904147457854260549752358817772628941722885506343152002843000170813572456132603447936700481741501094405853999643631671086259161169864348937406806896678752333207567287827097350746562481679314621963136713884006722567022246472762335458358987406634181526477742112559547761682297066335267610535038764473272906490082907409960061131185836055152129830945919116247549752981759382100688079500670826544561390185660032726666043915257025927536716644467468048722543455344534502255611843747975930039252370023602809044868367861029237691749115813323199302586541623520896680672739523615550038308166401505314879634218383668477796261909650629981495921286998694867232548310574968570274418392379749082498212440481898927280359369737831915542740414946431196135203540165942850860087033902109750331369535874596145768347613227379761675562854357803554389645609269429832874797427666922695987002329614904041635850753976986477723101154879487860591873848581691697687300717195894692644202018746865631516711602294494342095620730407389108590367199987863781550431118532821757743535367612727857874103627400844661718226197196858026832594571980920571979754195751826197936975606612176488078523445633729924414967139941632367769747511600784162630453718113123698879950751766196030544271111175795658307024965327626189662554373567644621542579022681173325157990104250775726979700374563993619345448863980536661059841918961033025274740668267033962422145224543147306280099240422672725544146029917423392926376016982287374126095222143723667083245214607747724929768649809034523391915679132977945921424563279404914856810527274248332673924718206841662454109663887385621472955886446610056283126928049642735277239300221257765631870018617340356715144709491655667905248437161732627948423153129142657987902231966756288476861101013122542469917045640007517180484963875371786179100380976303793948992568366553709337754464209894444176588983391308900050978260963485984190542921448827049164939189548625792783922312482194482784008426432366776830011777775770311499544087852000545714367979600306041072796484827634150663772843834105890756191972070709325148480237056635088476910336578960319401474944799590381958728437328361048375149046300675910304249937460463930840854921960755554125934134984066506325185277162436072823203752276935774434054054131296089924275171305210374423706593735324768514162937965825663991038719703393382669463877456114674364954430286757402733681746525557548582427896014816628474630718822962583834489806338955886227100979226036462392915610384839476700615537647822358043201088206967920127151130065193039867491636590114700305034933195342805339887341761625632227776498596378660235725871506888622832495754090762586774403963995540810035732820552015189256298100331619741924104080455270495543181351551764363516528938064901617362177151141943046769422283301727152933008968961697863102451653808993973529593555410261266432975331522743155527220877417958913731676259717368805365689717197575838092135121366688640437363522293758443016369372544412823708311925388188417090326218437108766629822095477618689897076239349753679277230433354993656560228394524998993288190892281505949433737242073682558765181691658467149074023954390510642931149493819509496656084008817041107957327885108585582383330185702460505983881908867490681053973936797295791165910307146013030553312364739189203673883562285118544425165840071156949079537044662878867879436392306035871486262189616224423656448849125015274823771932614451380350307556195015181350450202575806148190056094589187337549497613488551118874366790610872146283709343526613830048552079813738830616803418875694535279537501837486007326916069038273492703314059540127320569906011950669995346830348154871066956403111430777592362610422889827310600843422111520919101339172578898808923160065902557602577403342158456371229630284775440890595115208780574193184657549260690885372350543119520620307212274976274129446577113739249827326527311969162276716073118699545276071886357986315729446104038174782874869239793862135299998142548677090642290333060175876284319939070398065878445903071418510225301768677125763846981823898588913837352702906185378444706374366486073564073066891835517679571906487235399150689223110014052963467252316869714126927359099145907382385815154440500869380410682895321734668187504837295480371324799947146068530058453294354199678178579637315367614896599168476030660505167425764127679711813991114259706026109218975145356275686314561579185105198091106608111288069651976103533236166807711231862581681170414833191842694439896008297383683051849236254441859580393961583717647928117887007738663422446626120259449493878738811773448825113190567379817901230133600148224082653310988127056608834228028565674289427330645176639252949505433229076423249045646635199656143093991838012770307075811302875141303033020616365954836964459617404229128102071759876597579729692520110666506562125703685958462079918738233775774404785592837845978156680060876397194665455265831201800514106872930957801083776935277175323890034953016157710267820460399316122334990578253636785478092341260928014541052442738692877781738731096686828493255676175928839450742419648198693378670257208461656264587972818933299914180096502781381662984613012388586118626067124573842745609991397804705527164345062048159441843992461742278938377069613428984097657700605545204179229431935727072321190279993857486752284038728481663525417520867798256002921771293843103635334734826943120545864281886116400193560695528717695777085363424157678274988721896184235328964056039589696455962421278379892156266221854972064552046001070871731494258993872858776870044714296555712656001898607659287859438581516660077641654397665884580050979662881870610445873257526137909809343273924575066739040853255853176181343626513140064352409980670383458284525838329678235084399513706559155728862027168747830781979272075004647323379409025877009886051729325558314547912890830341410578099733027164813029085738091912615960672574571042848783074768294699944718355005407814378781823349520557067615895283260948305405174995567386459458590067972098989328391123748179013572987303104854932023054210356532695679686926402216867809404646827520477049644173727808382045453921612982182702738439615916761238986115291181414928844334725134693303662592976597921401032116727375997157896345799966577317521464324945602175956072502039939840591374216209482386315991109853525423399204292758695052938414052044931132263086682858305428518548781550859752702185614981641561707449198731357280201826796141673864683899580568747877384173501560841692618426940976821386788526778213339772208609128102910941200009861884241747553402570642619175463022704198613996955672174988325636879050581795851497196143875232071179499324785221366382364740335811364762643611322651974769376341398789651007291417199767235656035626904016811240652776485698950853182063279514533237460342078162613769892307511189140141738908132851611777311038173183524675662378597320574322052300790096752202881132890659705357078506708568981166503044723710687394866328589618720870662219762647725279257700037444390377030839716660766248432469177843512343405330734909043306432673910748000974575651578889675975627266106299384363393583547951969826996035341226038251777591011094583077455114263166198864881847979787070091426075491809955823140958236582970905980829593420683114953932496263280535976578483857268824419298772597310704029255505170165405121434808254828779621386085990683104433651935682455444007988683439231374054947567290739199648200122791038835916289111771478174337284227470312764793739038075351939053858834703847916440082905257716462661775409476462560857483265998093233189322560289448561509412729923395386742894075281007297593342794177387919814300421856744773160497693275259396902987134612364667116291249181906515665686587056713097329862737411412264860393050483886951163565753861843979464347359220791151298692284244251100491328611262483093782888904203588963441963378722795371414086644871970603410862129364951926553341673774081089617693821294847937259711749098430861476254691540676913444216301255169611916976334653351881678774166963234852765703472423722839236374432074386270944570711892166062145104555989195764259102754688955511759323793133631696460902486618856810570426334016065475416742019399921096473836032124727252441176655018271367941893776824117662716210075246424873874133319059085165261578037753299464666389370461405195715085527862975673865776245315426242856915092383003218160307908125179269384629102055826178953935013296157143105815472304085784225511971227279560957700250001015194752620121319489732005563666448533079317650459945617836304114996893163948806069935469247874376481318039823397043421423795507770123155354680167995949012488365181187126342770527495005359635186773026085712042978136510956496527702566271046756217192110689506135773686333907335657853016399068160809990167271185656321210541103758717990058780110025455953128452416200552333070368725351406644790858785569891823383525448788528509368922406772884362120263204955038535666671261583208244592590199876910746402413230374401191669415536347404774085119610920178449595736126414560668913982474322434427310949848318646448554611777631702327756319914195676825406686258432022924574104895847854456502068556018183426563372035629188046435652863916881830484051772613629691913067677601625698251821515523237604517098786106055881244298514012150919902968217066401168643014801896274783500254994841544592400137428557083297406765104177796945649619633529970679963725932177799785671811734981111393445286200033171987619997213959532442532394997178447870165199426271556778904496782068828859040574156026119388522614359614793011362816097322321404745467708530112528882760953741145528197795202603526892867742914410123470534787849140625936104422858407702577194194377396772080306147558784762499730465895165005223521639379520423905779363305233736707697851289912085149961080537448248127160124779130322450621272495088684921497643124030621490017078220155901712984455203964415723146534481272397254273958961236571589473055323343683847103596285280203834114704658448405959817613923083924324098405962939987631877477836481970496767039960739560965120619098856648501025396661327196321826435240829587556509762004682125625956054643060432276197382777909848199362049633812162851793308070397925999715065110973864610791299244597318357738918915728355077576377387517952094015107160226597960709947570933393464776180942733351301303607399196921869305596368328252270034141239448813738144189192036901576221157685277988198936032428153651489045682168334163751003204870876024924365501116047836461300950046992004774882769856522704080032705397953130476150553842480750513035102043888453618220096693890936038235414282989932928765866967385989152768818355332087518486600801597037784604681337141998891905541368823785558586711561796312985869963973542360014517688464630443522905677303152661196861415176587245350207756178846006764643134178894094496349587631903316973084186400014011928220099476712143812756558858014459595224232134905832155900694096897717790159053327136397640631169114165577205173012794362030748481867891702034033594636416522008624592105600705797638195095299458189944220557042561975129614901653052631516304380565791084537554635956722694607262184902289125832743237709207955346652816813288093767355651641329286909728469913837689766711661619333113657513334854668793247952912165911695564316100295390282637507498966037829893208106610850806405114840357278884659931932421252783415203497214859344223301733596694145876400556058603694596743023637137370847318857461952247174285065035138544325283357243287943523288966503793947721021631635052680914110186741292211240954111478973639609055271561494540373811430610376258832157404891890476751345232673068093092643880631476322988400156637780927512766886154890836051855444153344677007124739311486960745095869192536174854806754171062626727849097954680613975893435689119459792022658817490142971826713402443603355110452277317759276767974038099279982921943810344059603633977227632744795756862946366621457334184997282418770692661333510873903403506379134507384007252638924645286302157434263686591196949903576483129665283661282332346135762592470012275256019033229970777607010916695852092410600100119794860374469944208936667532251215882364668928700219135466836792924546625229470592788253128126578586773934433505702811826554319305724525365653631933517881163142933197315569099054527905665346067628132687046088124512917821911254985263884411986893540788754480830169673683819769227149411493747157236300412208974396305645268486588345716536402676353620242374704808909241156812761630002221688746344361442010197893180487959355800463912319418604677121474459443586624186666359124752671683452109222281836557998353149255151429321960378388852813765695547282926656008453773204026915705392337639737256684731091783530076208141818906219577539895102566392262842652214933463800118441767198829045754586795316547923847173864840208767832523805566651626414331810308921442500092747128642722695680395374275120815616531776535568844261164559216793620335671868177850331921144097481327417930903618162268428479346356592963977002393038465052346574233559226013807683702003828452126328430095445923826744540819247578062401385215644376495838431004531815449054112498182857674671984666721071525731924267445567053124674765635685002122192198743266144545071194212346199787332586531200037970093547822037572567068550669348331620355608594280683512380552704353492095371003147865155573716631253631796159321267364915323471813649365791344976613337669720679197839930568847964050733688053617250254080527009663531003490202329693639402354523598192433509097048256613573384574807693009305083198889722025528993352995427558778393405249190890219330463002832332736909056151614299452827698852924204482431263042100873489549962989724449336068868584855553913869839394473632056959183723450678816395692200671949683642465049820594157471839818634883579806605401537092163751800667923271426372709076143369803132513338610425806953545691206504300513539620022213346548674138683231095556329259968531574652316851197471907514610983020043801420759940027620937221801159394397414155537853167730879803861832879412376356072068948834367764659937237388926694471629529643635024784347362756484888524040321116340381546720228219765345786344882613354525452498362881771073577757950085333020087128422364758814045146417939278144993801652772534567647198518597312828874239130677381183106406940118234603501641925729408511571571705482881232519766902339662193913766046710341427886428319868419279983169133410571896050239002999404970056875026411275393236215335878425586784712258746542492681690073267141862150322353024750720012400862383407250838215445821647872503190039789051250364941043289275284079774510526583056856913610475749962942430076088577892826940160998969616977731464414998432650020328966089992372007798493303002341457011515875783772880950941385627604989259606018050459052393461058345876530348124242609106856080658323541473549529031463125751518614070570112408074862057165379578884442498908603845897043755413788902408278002376464374217705636469034155683293798866990829878412224544930309539898764032038601596537679618458766444889546583186683729742484350032637093340060270972630070220302377810568685063207135274445310868282008333191459145931131893788218568864571099236007619013852155380239019940381395808093781998776416008971296704412923932259429846717268924477767423941239828759191017262217312116172870360373067821730761567867052864324839476660074679268826570325429737211519680064194578319917015162166349090258447339000900493820846806397783756640032958953536094255240175156960753772604175841588935009958569679131685736734264007768742699039435761430129684679352726173444074964674736879558836674630292539790781562617684690517400733908747677296048687808417765795031665014797177812960608212962863134313378882604395853259552971703318732067491204849318106763951034250729406493494413959034809476847115236209301890268092257467486525808423559937702964799030921423827471326728884915020781750102563509814245057346047181168992150581218360300980776749358331798646462511565528808827758040044145532120503258275139114968464218128861487675656882650841675858247258848464932766798219515461587476114449124800611701108388444472978823469615647356198080414170004249512843483629491969949758493801167332414070774167814154966000188662857699335383624326683377657545498714081563610724661818689668630417554881344070951417989283988867751775523332295944116063037137331446868439043433759662488944382853459697283634081046407271430285446833292790221765464263271429699575905642284941261690001756607916112925235599621134714517909547463923109057668777495717063567444648224204880263726774769944941212362163533184804228530090097840622035025202746985871039048498785890601324148763946005416444904349336013039288207700942666171690000243287195584712530006883686421455283428390983220724967245654101813826687336495960144170675250954667455372305039987686326721352005739781268316845545435828970056167577803665774632472458859992851095024781410662809289745085796222208683372664381614272210984113652598997164173433195159302157400090845284263298247024948392189139835330395287246973171744962417075127641958808107608109348002728676828485897841178354853901375085871959004601000707408947658330285495719218993876915776642608745796483546339959013566113061303698286881171958555001420305358455262675436755271160443073593772910966285395416440056288735270114957556855810623862794942485916568258049356852755792052825306207191259493314475548773937706417850596882435883513396118623183615293630340247884686478608151441577664402210166021052482015901498755113725412855401764992183949648433202395840162667556165622579626871778976348309511392106824550338305027910920778030872145016173014766030635148338440459785615095036547362217658777804334341135548552150276944176652821194204288842086616647043855459306709917340289361311692085191218495108232478248184739250429796702768348281372953444721651012393480812234493928029161820983114355327501049514730998381523073005735605067392594669656772443944987308197025975273460443172900059289524256419576230635665970963810803246084103208421384088083245671858119967788524692096466522151553500443691859903870596682258397056292219284399190211987315015821370572693815671521100470839458240884859950849202660758998195713327694679247708032001765467401285270196240673457078059898891731909306477031183792953949878046627315088572159970900661598720595292550315597095142512211173150080177482671429642215038325325981064417412045615794605138510763546429540922826245883067281200934134738919291443827985410999286343668497973056501749373126766197776503654480274366416373484737470287900301231937817640037483000532596958735545529159179377966194482981973280395618282519355451859681850826986338560133058103155084131984235299196012260575337721197018192692462798501605765107622161271587060897076453279307928899684521222812558575197195822468425926762768816089321769625601555540100220140683232552357101364824963329775879442872069287747757353852129105783044346832514540310407562404217606457707848078166414703317213253730866637012337990643715428557184131481473533012799693398304157480253933888786440477665300743300703649988504449869400808410061857852001484099276519621666668087054854302294254716705096977524233895562078053451465654939552522470349964667654021552186659164017800960753421608148174799401087903053185240742521549444618173800772892976519536658265188522734978137257922975377123696345419988991741310217563736573914093865266343977788657025299581354211259085991845625108923954887114893237248779081960272702883502154175283916285936791168335460668616555902837547946044363993533922389218727055837066133831217254722437847990896551240074068575106488617293865865671169216850030568444005894763152554507199959077153385193719900868922189695281580018709126416345379685930932570980130119541376871319791982783120018136075856872224748366805438757604620091072905445339420725850794798880425855417732580252568821682549080484449271546159885055318609101471478894269808830791831853401872051415985880474499331215575303978886246619038662702039547967039558738426155033871200111276265313145381291784772587883343282921627549048958921251847466810520149746070367975323261399089219727638962564708845785978555595350665453497043027810944362492104362686872653114922695978016813843806149477325451846512256984958239599855482027510132665076198620819756003804401491602906472762094266452978946761491986033960876751088834787441455519634854597500842863128606725577475286935709286011105572591077615295314613647715366523705187574796389592785372672094896255049811544079174725652001541521456345827422196002158889174386307618543642145161564883778115855923351216111740210176521614311440819153154156387529326388086922838053337778710341163594455377978472721992490256479792136869484053305359996595807030816025676187282153795240608817952567919377637203884982538788215246829350619144385672275411685670985753419214210687461463687387468171073623174177617882116114659270832733405187565331059638516291126605703113240158429687840936070911788552655983117432612920705573159340609123847968161270344863355585007866468817694243130003529513983781834444128016393621228351896868268024400882331204124197168457111052696935395502287356173297077110181115084507734295571467355247716238079293687384054866225969183561821643010647308363697387215774709616392012773525472402408541244157690198171769285025949390402082006073994836759771929626479327341556798073353124328898485341595645362062967342818886390729985273239283335861751606283123795654804153475711290907547311782259505202142607604365919129531598831568650961523305485042890995483008355744879374963939187123140285772302538824878594838523234256077642874767534201765852135799432904239694584618341945929223640743182613299774627777243609968606814876418765515513055834717087751167031193492829386222222957761586739822854460078928411445744919721367380882183636628366356526646570967136300415677842566888986118069611012973634750661611474216300885132934462795298856783267663864304053043618644247873555483708859839456170445801908978422018015328096941748000520597867425562295190572347032755060575486318401715811016017150162638978414809238545873915520927534799495907946571682811376421812420705296575393500549442717674083972549546239482920583854176804862975982638807965165140305336526368499468845405020161470841781550786470073672992994164773516266615407824727884298519558268655306502235380038071031361630589917464322511271315751556732352714836756862167261901459255764794361118716717839919948164698175632344909254841251698927188799419359581824873140895086569463663613708099413611942785838862949825045349552959196850965043877138087945540053100786920575569403766371447571755149791423063190904318012030484561376942835122510759035513066033527788993524540061524973804302972119679441337472719895240825599029429441816135410883233290768144285631573248096170352791105863543914525764213335942099048875426802270518143375436362835111224308159302691957224057397337999497615762014032156042854026244267714312016213576333240554964321344574107679508103756580745910079789500342727592294686441905982152335873544150171615190045126480614548473501959677636577816828604308119334882487088514701437603362340814436100926524976934265498214710939830817108708523724036107949893763936730527666786320639489961045378798318731236423219956855427529168009720505761899400825364454137831734504504743976035845367850007969012058121109041675010735338557580940871385356130208570494764944310856871175936845126040989701898282328118125289952398526728446989764592315185530584686168565772937502350019144907794337673377294629285573530150464735228912519820506659219748878729896724809795159630037560521740011843118556239688283476745323406583798975946493942831219758389527313796280558226688656490028159912970791735265969284348168989057853654334627961152350603459290415427798462190907252925220039060504824326923184670305550552827558184363198309745059213697558732596623375332439708920841697949748325033333470456312700474545493311760538611871314095157017962043181180105972383793817221726397173192335720020735601852866259614556517858722749376886510259713272189771968818596558112896817016088366118886574449405441490325240998086316238483913479039690854318614837697246418789967556528712259119993444634332807589729556359238947557835353378805148133086209230378443019134606676596381378323664959665035190841876115958515204319627752846161299975156267934316723792641165949139039985643356794500198400489062116458470691434805463733738965770077878845418433791229410628063836580899043669904760533909286227513186501540725952901486224787560891913938961888257803300393512115358509769687475623544640286582168719715491414209249113645029023820220751222689168744975138761955300919284422696385939829499687452382971159916034386993358554105209595106446412630342209187715250022586092933173620371255877891628073521819224265862277595095492178939007782852690168392276509061712030276591911787579677222194897786465606604393802345056176545858213230021604206321310011241307032256566716370517454258180495474265508510845574091611279911115410495608488295085378080405117823420325260404298607207529773613453892922736069211121868866999578483681635367059767720943671715449533617589229800540907726789294362447933617073748043182903873159886867013405554495569689404610025164467381208366749504538569910592398348992741381071410416852987262902184884049399905064757731242337395958717062297496065953494835226702526748780764390177022527595942825760597504623115121889895743527854754623890618625796001641170989723163965374805477840688087234424324566878573498978785477525483899368416579324544482484870581815469958245714543371782986305498792757385827004228701220617897410005227355584548935509503704929026628670264369703379163102504384836805049517556817201280385295568234937768661733122391473893711666145037106460351083571299407495848678417197161141126656504403373986573483977204812010990442696727043908167042267915644583128825143514217474367251718970303413555992742531315588061238785566533733162953073585895982482556310229786065415655160291813342398310181315952811643307793044272704585559892327070184436373454121294257742897994740427117122183718958341175662164573717176126749260581500924377019513097102229595389702508595006043284230940989978002660994636669208463256967424964383635667596795389020987208848439695209676464429037722659907775469194436276792592075671136888827945314530072738224152421165507808698380637079060518826971463851161958738362447662236843145968422270210002987867574797858950150606418267344919689116047015986658000089636866729723207102532436106052343329110042337691708530845274580763056125542144389745817760974324355527907103223971609830839826422919842500519302463118988305507256219106461767652382289579040625100788232349321716590620767009082718873975603012093976400321260861594474567889944306845657371504314310114912791192823624020613675268413073787664028740003960937295695274656579836524507410349620987149080770221857991877422752436934610441927118314984760076241300333056701354872715964610403796492878357384858664741263081574912785906382245451533352866419783594311319665300267941763828114770428901484769299828876026480911435144332289433787905681122398563324558595956822902309910677749545675619383271307486087708311531392660251800032794947520540410389172839624368988975978540175081829581419789526446951547304829451099246115897976935147102542433970040670486046070072815794304756971073256170945183483218101658924456236438189790523160342738767382760894526831875180336396952852276253339107383376555664414185026689024376358357875609390535266615575452809009678727692085173252134745347677703939844949630590258325316333753191843548836273078993661802995861842656314631438522441236759202016764514856887658781559843774349429911702556399158239231537463603396967894343744838433785189816444309861203455459856489881502015296773781536376048295167723970029196447069165995509778401355856841734939348689444215876115496435606755424208690666595293986313518108039569847386568964440419730943173319508230933201446455048734437902042031496452231329792864948979989945552970990001550675600505748728632929625007808265211168241274321128337125319811727150671727603352238631210027589001886273549335984052509314696383683829292664304327812530790667930971592583534502045491746348028094469891481997418165035453920452723501465918294221608318158295717863103684239037103240394580712530773666049692922627288161715994859940450949681378267349197828178389537347093584529924099350248231478077769859848576565550287293649820121683068006320525263316059995804597579803246330749351912845050373748172885264302244020361043484108975193157687843982930266723124205475054246568741439387522991220210325501497206001127673339373826136501737799970942932071669988318867146344561844954599451576587751457224518402137382393677993231524895376145357161809253799422334964198839251760656760381534964483220975651700250236008923814521989394168496981211955074173007715479832110070784643286416822008414973796365331832368773798781419322251117650767396812947582791311693830742039451624867654951880891272909720382295623420748611575652833110119538421533529424943380662262385350742403544318336450967663459512002951102436269072245379540710889612007094924695008706383602865233263034828331174677963231905172687751661683118359337677442104788983786394819287521629523471624169499967241561647372786479648712952774349026607458193861843057295574963138514195572953384956861769605297050602666564508383610729451365346917989175198490141892249529709948921831369556597045463791220277367958007831964444758583034402278268390187983575645484210172334526078005516819168880713411195857279576083433167564485320886217570090029807713389301124355320936216342880368913448443135808749282181995544613657645488579947808032580669908331603535070989595703598518937910189367514014742652120529305718079356258614027864392646482955823739446361801749926788586679421694294542472318022443100692131375652461955191372430785715675534273568270639595568007782701498838520131572681386966128352455645940772494969754218232389756499876200170658968434491734749681582007763517665033943316614926180506462409998952711243509257108483717023145139083237946021869853499100927281845671158750602485788043799872462234285965796998943350407895289084757531394939550234663177502497690083015874159265139695798644999720644940356212000424688302950068628102264244138377958005072485745416173846775049514002396489230414345517826625248698717060549628793936481249473107622075146075226260162395097696735940123131446906926759607154025553792101184108115226487326716312316343182773959823879046763890178077953225864181012116728472035715423656494105422235407539602984057215610980662033136786567151001029392648060872627907365025755170520301572582698639172926969435884555912294937920613906450212907325918233199844148554562910246778176531920623614924446371262212460809838178744481232322935439854770717006644039349541395502217035815024244848903644658578287784655173637814277151774931298165489965328095502079121069304476344581892654527337396598389028332013379912007897276085877204575315687931574322510619523506549436967904517191137685020449828356185804286847875432190635683702747283783830539777153245543813535756306530391052451050159914815244607906507626767299920842383416899203259380190223843964855725740607149980179385562185403384534804483502483672088987352238645437544153699504238682980870140112090289759757282548576059200452295355588604675421939984630091850012979955754850549235432964891650866307285698506557212185619522034577506584276949716048673772448019776120216361377596293764106013045006475179962692015505668490365339324768735973488799436126943048530453884048898045956795002169943663683279177127274718540536931049563195998665612539224229379198119635159265135712697468398384811223416454021356104748985164490493954441359905755248397630903022670580605251892360001051467441859044359919252648570004315650831970030927349217008390934085902566700962061089388117060644476026659928913102840066456729296490184873494718369930036590929426702105207717473991084746598214376124011086402094880532375934761120579147540497089930260298006179961697606115330499190635866676790396945387851916805724956082848553548471186482781181869383724998660200351721536019472712441781250600181698067611055682025098253347807706370820778312896502070365363218826557393983949732956396041806416407968780588922551776147613040760489550217205059828951752969138882329325527280326604546702838731867287964972966634245310526375966765092409141068821106761301477437709365832182097974369663912084078669354403029863811282097883515994052775274358799449392089156699151043720079468518143643133018796350719791595609721289785620249856040415206381618696531119362545213351146994987087505407303067240851966150397289991464030486971322088572465618193351069099202066652480302249946693399822599924243082181428626680046174145371476547224395340534514767406795082808451864076520658702901756179045331467543945725654117734985447930994833960865882770862722286123163012621844060269138735876386816574535770411097935095370836502800300773328372687550881325273435070154942766821253013710818256545128951227370314629286973369694898979472259269327682295760220347397963308033018932977195888901826629747854436114732533842810173932159448846583375755121910776955492120727441860216115605555944063698690317972494427479602254488172053722530957476170567884129009737742463897052438051206763180869418660083813145023757918725467599247036686229281583739458818827310961839670029292064082107686237694627737886690039832303243963308776666536775744904184969202715671948330962109328604570054775466158820803151980725334775852430582732301178300125491787721389014884259022022210679188531893823060929024727465870689923915857382040487917447808155777314464863109765252408394150633216248157708463867128250628593455518559991121905508815281615470815927870290483164465718284069957093881612904352130756707387524273736333066609831422926453525320198413331333494041676443241520439943390400495765235139632550502156550240447220097517325446316017486006617858646714599117678656337669716582927088480178334588971572938447462122218515206143129111714715770909229652614182915326654875189965477370669975865972556630241790065589697077157183838821849867315388399126877073335033025694377000128388388734576864567174000387921682697624113562310798418801830368219852679109152007595066574268425127491456015290898716431934626935584705253211017995250879833743272174365641881172615918587189180726819012696813470992633727757925878538365803773049052869484158057394179734197040341127697859771232216119896522345161641104975649364166988468507559553390866767031070244463031009040795549201319268518501787000988906946540410780496529143009763618411733511762978421642139767421008004075788704551716353851766434911373147772226918743272400996086836233907546248231446389418965643126890025392761233596459438903820297671054531126428093136409173102350861392433036854424678707696934817217909646439321834257679263955251529756740726251635066873855973303808213804707257808213391899751003927906040340281491787110587464347168620916016715953720283721170457748830122027364130857117586830469082196414129393774414967813112894058765134363477568129230271957453727506187430134439504268362066779641244620702372746865178328684573664820508652589442837816247832792962566742854331420781876583096777625646155226293234946360421510997616970538865542192687475602735346022739298099416637201812607802886599232017020497314698295621271500669746676265352932582667470822066916728811811690445178291257397534673192524755908140988727304322577193382673589591403772073987605280936773240017284465455625337558643008963923524917251622188319200572952611889293393206167908921706714973108618518928280690193240197370742697825205621181746644670829672616548131555153207646315533034292747185369741367153994585204759184541203281014452000505971627666520370546864851623739595829040539879022054929017565959919365907036148108585629578763900425513541648165712641066335717848713595367569451534837035686985952610045023611482134887453689390038462339154641265806115116754703104306479509653350960742416818510457727202686494062416359697549654727165318666318185051269548539952685990610021987198643806806401375545478631793585583181177401624620139152010347755529117385496153065057224310934589946019365205807280608240062381398527825181339642153863244511087931745875350600468792274345854793327706359394588092834196049656067868239804648766194714928380213702320156678602811201365201612758943847136166829414936888820736543446189681739486754093777720628029507772843457184796218023454372718846411257518458409739914453261070089377417039226559380638264514796134789361099590864911070054933608349037887287634178321567748579518866548757277570249030272778800890531572488265560588077371986938046777424071633809521662487271400077435502748977759814747372651430490590201699134873340503442012214974349251565487906259411926789948483774687968212310545854344042501881158256783563499126240360641612940829621814354208869539960408474976194135495410568653860656577381091062664802738342002709426305181908755812840338088771136284265834114170972573607814775516012901171211871819264936834373402504187505741336984797805937327708260117086317284499657491617599376494638826083652721087231180094150103109971902763875198843336233885982092723212611459686409973135081429032402762648979024941645316619757590925197326968031970502750231465682668121107537794570338765394533849486081417893341484719199192754869217866218565550433692824314395293000830174342402365220633345752458177384873128717940733818032401047552740239411743673102721668844570074066149462726157662132700961111872561666787501051091717190525342201321231014178340551446404429527068795720885063604284717619391292842989107651324677811030989879089624132092558758997994125759104181364068486770332360425855494138152116309719380763423668365148187174503751915426039687058865205271777903692446254891643930982859412735008634299661648690290482331976097983357801981855190801834011630481332613536807303374176816988690522187621922077520321401435002868446554846102960003326109172605068335576193337998835389494037259349224056042998581773201954611314711376835816599279338907527381260977124409494430078231156405493870900506210307417289172926681022634362203826038844512551849526920922039151346062189019503490043548259566908425238122287039311949305734348406027758917094264349051355151988111784364984873214920969226661156767268669428299310237073303155163752770048359373008395874161436139103230791163358666944445110051253312756173465803220741925679283837716373770404419874933973335816206252617918459307668733381943637158009393252811323826709227217888110390289870400606272960580606302077537527611297044082647305777697674094979324883367143845313755868097009626546120065316604233910763037531746890584098766057021174538305916528356388879420879063787822947281593907844494070522233752794551485789726971531409217843185570570687472140673414411514363398358754065699239195857476601242181382744039292711575049582642957202474266706666783106408071497929660194547711486713820444166680941615507213091926402448937235328792530976885633909353108196635562950005977347298901824402398167234665905783266213706557498900401413867672072411900919664287141285794087380727836615435859247291923835042244465002412621918279136155411598970830223489435532698966362277372454668448982644592597733324199871986170498831358307098976529055970385543201526713503132843061627120274571120638018748789222609310081174723507809484401360026948100428503451446212003869187808282825243984601874647535704859751298017347580712614433338604904093118840696540831146776898382700561039588868014129386441065755468206694481349672254771527304774443268997243756732163669647803251340919859603568908225651955220211151906510590839773840548267197832970614031393189090594549129789581500673462558975803020657434103100911786445422892219997591699212110502630764392576879007406165715168559492472048582122847986704192406692146068654314331887736107017465359063442016913938971669743951466774906643904133999716044533680250576277470924230547014441713298623737694192968880436834524229132961544345162450947245269797801195852673556614093302613981888628429374491808802739642282374617171145312397706010359473330228486745555431198663024057376339923984583218179675597790690128548856646301407762411575992915927469569487015265749723521210193493400864834253750842654892037857680072370476106864372608251025810748678939284220697806317608057040691675320139777231518542982999430563276856985386828626180640379804438910956994121846148270160732102653745533899203308734416780318626213936678868313538582274950014506932769541635520789670295124618755617879259782583587920130599946374488920453522867404751165020711590023211384320024686873600208050584330654655167818570353516037037648587416487815907820917769446754491294670206110451285957421876917377897877941677961085858220572459002695532261462325711409872502810730237738827075789954240343293054151342310550093458550592497374529846741674564447988928339119763166351202473975768606566564060571918319348579458730171889066858284678851255423374542125037846394953930348130609229750370723072016438599000721522733255706606981408061742351902243843774568875494540337700092652307665057091265392779392148535642474318540725321446383524897260966476162238791827679062108431704548738843549420320371264569965183433419842528462449379037190419815344271769562537786906738268310527165586760027710402506743462683465937901714423096410277499173085005977568330858477076061123512986183126746532142099852942589089855118501421756602616030561118984019785183321707006233965004376143585427029929838070801699551691888818423206231651736881220833173846751932977245777858616973045033031477102648613827994482723783476832062019151433023025243230937509123149722044864329514276281607803815436894774571276271876652858660663978670894880027045362765768531267350715370726849061437508026765747965802556260596383576973020279387181590257156126631285112313376231737877931128105021555468307850686456969550977221228458056730635610407468660899093672611017356935712769638093015644410062291074246161683894284358405949313321766176852750172132786694231574722535939364361151879648703619679705011141744537431134633393615872803847919006220657224578165290520993900338611012005076136291149240712978172913980568933150693059023841748048677567983520126034608448512118062612654635741926343662818156191264765937901350516279992476741468289954487427587839833241377386219570729020131737272475763861699588822551421567218682227462434913674423732454069318457175333834811372385592835135866611071606137993497233479609398856016911662286453150290823698417650384024311931397233815487224938652712750271840104938910655279106573509986154015084407843230763058081851548504599470040488232104826849585273246007329002455410649978087319899062754888878998305100971279867667022689902359227450635812893377141265504151247713566945747615022148252491316187323244711675645138919813196809466596478766644852066789143905159554841510294324825444206305514908972948250096893070456694418732220018289668230135854875972764354017268176956300733519938153764949962488974777209032038097236442792993221229700098978826284163761778481685903780423632610391127959559455839227867610325939037085570674265914385242465376759690999007687020234827626590571865274148641630934698424593275706973198982835016028771231715388993544375450487526817790763406341496537430508482549992290749457826930947173417776495214359736719659288025415479375917286692313690510910824597085274121873841545760403496126969436024271008983449541331793737911156248768924838323037844741955180779090411003149988988592124964224397126884705668583126819156103388103090254119718318031429317695843901248204073276805035136674002198033245936055549715255388873112105648781217401044312223437552174809603199426720727188869434369373574353011421957223749639309019652755467561108028967295232560363896513204729404193219076423751237672771889588631853608088960214100683519450025059815367872118870806872428402228389455503220684450953049387760721876055033061270196356103412543429681585188158777855706123324951037207325540676863010627177720570386601615883846129983901127915639016546679282311448651610583465855678933571081060654767121676131259158361784757752253780411220314038444223909417782977901232938307752579563882230784287772527989457577545026711363093734379804812667865053312758114283316952499375454321616373871738081027722148772928125991495926765760644380176269743201547790041815612408531671169288119549466418214558061635436026198885887703852312173577929366118950349170530962555695073825081213531139846973942326427868215823335109433585266722725270103166546564923355596788017563517657680661159241406260450634433105655456401559958750908759165055534385013721020977462519173805064381820570389241841840094409154556753569532121414762044766006845567889624537515012209849225501039758320926208042386048083643234476484923774085920036388981475843554141838322712870007800493736664790768829831453874831967198396916761248544787322426466282042620976801434625232027111450651719200243789474662757331918652957452735303010139503610269979444817161573714365357399277266583203842034701905261581092356337426251165583334926012983664001543166907684837790522537865031001150434620180191130606563538418420001519023478953934074990507267578980211789876238358816278378535327161849306973679302833040545519015521482083172203638842360663718345610596196474942077049438731361642372847664025464001960175169401190422919028277578366270504974442096306007235152510937908812009615522610723100565826736157582155531415300556033427587805434102657005804464071239144569531155182844070511056951641919650227109083361000723527807608653889206705402256831103788938216481015241065288380404871701059175628583729468529622468973179032090688515281267918892404290330933219878161093794609551147806817811800355357436976842992090461223225614722989669697188661928648994157351972884982020748204941010582043735106211901748491406469059744268628859045078491819076826142544931351531077863626713290631987321956814228539233385528489288521367730193378841617562323965056287157364447396156732270717732995651375616505077116822361620434749176291257167054783312741484262583617074892503417860810930782467504109415868069719047100479272838925608917585888858385393784881690955749825244081704517395649693462537887209363348858321384266515507626816889307067342978179435211975165953872661489816294044960457547272999833427155029948878366470290087186993779398272712459266483830545879807143872536891299241197012892304636728283402388860584314974730319177892331477157776336198115857867741791654428013304988006544739234895797358329557885348325337564346226631678990861981779448117592786452520644807654217546595681522118618016993444087039751666577765607529276159399262324291028590810488979335447722248804719694759862271210224003065692422797105965105296653824262808133110218077674814785864453979076372303156474028960357209415662136970459399769727265710765013195054802797175337256602240747414339605258738234904426234550197352730555639931674118255089778297400992707278368202588937410943333851721359558529795074873835852372122474266669597016816899725789105753850642280746778343560531688305032295389246881564605272403549215670788631822018764955483902142866765400412204805691346548672980889676714866686567144932850433709369353666255677964800231586192527493031480190832452770699675702505170662264480663272109448074152072237676081277958459942087033019332720422864950820395079794335488030429404386740714353660453458930271556322935081831728530106361503022308380597825504457771128700502096040056845346814242891518922398454547342362551949712764277574398048659294194353613776072553766857293124379520960841633460330487964897402313777683545254658018327417870080537777980382379042016233661110390725800184004282475011244532893590333759186483594726333542718363608512189339052450723130959689666410855932652057168190777995310768405732505700150095109080428480116056478282967702036567965683003349422790703429579764340319256377812761407135837773773616383701771104254491401501040099124436220364267412918954063762624066853659780504506810516494020430704167833538678703581251617258435994621909225307221347481680611172262430288050952223717365341757715066647542881701192553667806659203362663719771738032134321553106421974865427117713100119385552115864357142780429958542619917302869423901453132434332220086529957067700579452112028925092882837845352737733133070476227405296215239828642845226263825282979664845684566005313632517013190157495608262421442546434680325037204817399401928754169455712420043845030301165338907841006452343893868961026651294519288261772797144310189342505670390686684921834811006008911624677184126588680121440585294548837937732703998085934574051162688127524204887903965384570385060176345714242192022670627308811480552327871128717049617038042156018718643160482339605025224494729977563899794249892649226573912953099003855860143169965511786860399386002057000944609860048388564124358102991092261265446068401306458418237694793630607960788702605840280593442192476092135810270535748643543710918226194575929766133434316127237918805412142304986800294152982498680290472995536313264764556256697301958882529630805113468945162199154999371294244970540520467876755894171259854152216095800317330425954305211217573270293384840080122092907365504540388273760833437326638764398803803651753759120319589128093864668069591021892429089236084272560874867310960033998502707776428051434709447582956614389018008658869263959362916170653180514634875074904516162361444160067630660538884209150031089242061220819319583629349466580075590492710873724726283425441576061889262228261937576862410842431695423981920453034673338038235035680496601172078375153646618953512239109244113492607556568196608758765105406923165135340356823737488590210095789138331944083180100544123260159348159721412733504409409732573593329739841613692727203562977225424009791695197855231134645789331825265577350221865623155839509505029757895999147493926021294759170152678000414351040054524695247395333738067257732858380968181859088601620999488004647307387864404512184517145731196582704611438811526517092167196095596183402156254859378894975681205400780110629993807502234770760137527018212502449410306012011438511415521754971836870501143766099197716852630278178098181412878639221322833605229751388937149807019192742549456964177119158662853831192591637137432194420185310206120967254552513078219086760320145159780906442225095201728346427124441486100734245004570887888941661070407542490810775741403062689826250178131326783347256652196499604422672841463075873571888343191411343006746418502690138210863484517071202718990673540682894890338643865226709430470877767141676469592877514744584461695318789363904077153356723345108281246447416631910441355554979184245758953855237819356170996280139259535089305950301159249939744616443196895056610345244824575782533894856808305820335130773715972005898872440870053659333446897931164935367207821695733225394151589700490865791884014501261190874187712612093865519881345130516331578007213803512305591455313149462072637602920169605803940790891122381576883582460275718519195076116984779629765679054526174362386593352078337775279710127117530116839712654167673229832585452234194848457882133108712176581488358194049939220034845014177609517127935049128174101403096997811150430908600748450801604984576796426903316130046550560667957844994624928683202804666257527408347777035333352124628015899250512414822857693598936893264584304946553987066787714925935157993212927162688931166776394573288056077564502801190038026759126234035078708762741344538670040700453629977914043785436006482428536826487334135008384725849548112790013439608849612819495660230717421523359382739891873050187139947967179249205124358526921108558713467257062098708406747447222042145329060608970636009594452501023693892091457216923320050503611288218393507355235154320947809178691108896866913238326478542285976853280899975373678680623128394931715220635089881326341633549940051097052484416278318342556947009465520926439614262065585751491508344470254320202199319051148518912478588899506737530943854475718494807296314082479316759248549618901268661573627067064679539926789288192336525366375508430829559783788472213335683461176979243605734731090492702737665022545560882427841615654841785171416949148829442722710762214030028513603477363070291139956297303772227961509676701695898362251672895016636929543853313751687933154075270143803922694516807197995431655805827527165466518589339318561990056925961957864489054916898394342014470846887812054132922415241846587635901052034835521621472976807027397094379390633767103173017437104218864585671608709818900554417246015990479185052151351937024460615715806335027082724782891313513996106602372697421665423578326662258615203008105654199690441327156270508531534063511517967465542952729230329101703620858297921513961508011664199905748400523588454504812402197810955692085755049116595702078115459002110454852355076144883684360482483969496998257847042762827785671496884033326207441081111008820242153332091364852286481694176623432893468406687521477238743649160314131216395854553940556699544167175072235989951777436448754360148210143592912154434628930104483761083947611009894577080303132941434741105101627109925289759920335396734807925703604303538438784310348172378690361828305666882742571698971552547926930900163780393844879058777207285157244172340272860076037515808496048898815012720003773238678683720983890020035014796401330081442874996000314265691491429241498609862802192126417212750328173556188507530127938260706286254282219909483919617465826266562845234539421137572524868053871289553003174279540034086562953950627696703919061329883341316687521483779342025428237749434195834933974825477207462283972310341052143962037529506130097722991286675232911020650012087809005985369996912970770012381306872861665589391318422525356241287857659991251757747304603488815337775137647915047577472972589006093668575202122725403263246293548526487322619458540108644174466851034899221080120682161915145379742445003131088831496284350326482472521489134603898513712368544516662693887334282680763657446202942108863081904855137385819683922654152920541638525448150313372133131280952183032993657088686558490674868178215592572148928962228396870831776882881923923067275192721332092164308075010228710006513599073189309848417389715705561689225795770460479323396412756842437375038887528803256750041265093296108276785490579701719168933370132316605980376517477744382078844509071086966293297440366262681921377430447172067701851910901927547829228984830002097418159391134159899540233771549927697243352803713801938160305724143839169160876572886430760585500992153619112212225663315556942226274168133777211567175089729006595456991903740379404607244636046327361215945822155344912378424374102261163171424110476138956367525273222091079635422026665142625586831749741512574740820365061339746395503171953699263549333150600448684738587979784759259771989218392726160583472764839346756664794267018404181227822873630009436284931546864754616946750428671662496718141846535172435265866830511037974939994256609690439568083333066695339933270496281443301541190353730699477101599303310485589123957824231710051206303596118550076846285593868050033546189833635286774263253423687460468387213661889262613875498897691962821893411094131747176630736034336834598295854318043947918367382319846547967034980225643452087811143243139217294836906223614103212988121733432567337818272685190939156475283792598960561807131531177272616500807300167689929164626845970941331257854384501276873250804290171045249209402083206575372329994696950814101800504187766030906825448338333899629452102888525938232257832401963331746832706449537338388254353926850150047767576712081714294512924342320675825910275102250962824808976555493048726184347930385951190025413097921634439988150026970560419651767641666223189420930725995203799546734924171154965375586562110674790747060634664820401535181055376193747627880581224111441554092860289264924942927519919021962663745453006083952546187977354262247131396601347944802018605921080650233515908778476558110555932049024530126156755915119660496126553708005672146608931277368563952260107343695430784755995509462714562578385573441082810369371815259623273781174965715108055237161373068788276446469397825659241165920083105314185749263426714613005457989409866943442140614542734969180728363696870171478465435366534023996513330824142500935049868344116416817299042642461881698428180408112436064716258361706455105441431182425373243579633892487235763174629509037029440476470928200875890349344262111461728220784674326051313970762321203510141509836889446435904691703615425817248336643881990710974373144216943753493074975472693010837739741418512448227279455595977276713268218528866650010613426128783438810862992162254667880021616083898154234277485038296055614034398584206339513744585939309566067458747255597089980460412075215950904832512425245092018567530234177306934424038602718434160889523502403462868990450134708819326735014339351846709748819891470137129444758089806887808850492123122721083019421151060029097828882461520868648422385522690081430927146220500539685254087764117601276621291826912332154900426823588635766437724363262155094599785710590686611022438967484278531441103525064641474282862926358847087412120294976686977429908567880967320078530534038959306461250038317084556014042018521344278339738320224729927738941231705924156067806243892968193907550149467506795132812407928636715704878143803257549483558715926230217378796758627218344631904506169084522977542419970706499498161056793146416474431471449755520048831484286236508634361233943069938429077582938046785720142404739777560169950001617833497591758992418586841742456902569789945458865250637838419943359006207123076748337204189076375704470863128529301640874634527429372076903775763403850158262947851600167487852160126386725722144015814068219326611668184929174317489775042188581695751467875151703538022392297917360453248548849030012725994738695506089951062334689129897789040876378470547055599746380479237069759926655868213977267553899754419853773642419557059347730468615665080910105088681088689755013266187228258359770174751926542099481568778849644371260347561324061301059323118048272128657872425601126236821309234567991226277981788204145598716103851336699118973699094571562581722021536528467142785431614054052111431287106676420963257593840042210807315433481146718346515897110577450323572801840939867522628570652343695615230116069876120947240341088950868119808756438079460492798092634137700000142359092833000379083219570506265843232055569242789057540980946296228581108297524408755197332884292861703530035881926886678596618124031068245491783954961913682740351003444449266256804543786726626782682025898355425227081193573016025014729122106889138689635100903087824225370934810468640923592912424337568244739618482374524197426437970851278114373679489577885700791157838954838719359902805730900294672055379458381372120570201190652722289492609011758982660843204294814132598394450424562481613561289548544900071298401278932954891786066413648188168353784297925072534514796247326572857208602705185653128864284326716315248443536881643354008132489548185087159442911653459812647471948741091444007555799345773456816748744046522606494659943815413306940313757802822912433707161829874040970648824767612173399275476360809697942876576742159344567135382472611350350667125658236698657955919005317568497874309695623158187698342669845247968856881165323776156621510252529256666122638988345828663799038341587655855128372469339327703096536022875163824073619324550079578299043494826435409072142182874618400063392396489079572991303976998786033816814266386883889931767541469752062834578492503321041641579166387957309810757188436449325841675086872699395903435207792595576453524546538319408556981674219583862640898584027489202042175769129961383254827051227721472117379650299312436635558833634376458752895075200265799105023189122946977300753013663450994894168741088067017671832853111449110191292919617223625146180430971490456901905057723133524799325305729179224443104556933815894064764486369939752226495729506786797447749429339701801278193988905676406376378719652908488119967732894251993900439694411882244879035198566093702911685433564949845777003711028087003004519791561557248300876894316180539650967129318872430922196498385912126336110692130747341318418215624855888395642829443673567969441580916581645283846106390618589577533587483839654470458423412194052263168809482313050602284988144903861487521484227158478835535495279246793310044531547336617073795576564092240098346706632580477758358928386264250448597301215168400115963515506016931288405960655014496782655413084210245230308875729693763882160200677417850228263789387620096507242704236516159212713316532438990343028075820618974156254505338381092842459793756086497432010014543045861724320613541041591223246658698203364708779254017113285741037650779737156763166613842294672803056607423275673216104911489327183773332861641591521173031608239730012314191284168962957540894819039083706777050934772151501875085554676608710269895229963605088603737344912783891713300852945971089580231577653750689317267739310673586287254803247349205418056761446710156511009265178162360654379491719030232161607068317199414923689103407375579455090199186597367776723859648657999728847161302642935568151586165902381827488290099327052870354520938612436724266422483838064048820033277843054212112941498970091102917151461725780332104671469655095930684803424992103807611386760853090644447909417163764557504277807628773934441021149933306424053309155734865373930947677053313844989088886633754229073367266814512270951708678344323382491610440958261570530723584233743228769319051295709962452340347322158209496048950431816748582367569807851451787008120329161828077314947708912415195840547749095952590808431747453033261788101002744813876167565359386534332494664953245166742043839891125332327293563768878068472046794216038547514829575435776834096332605941560360235788711197174663298823821044466174827030812120042866174168632753628811795224231524681464270593290509235832931051769107635982100787255127285712133417596879732627351838786629895464253914967666529509746651722551632300692937126551475258384201188157451522471420606333204418814283235069626685412268236853325615598250509896251921172920012455779119690405529486267020822019299450044756858570067975795897504569094782350688625001610921076228684322623682443517962049914682609146334113696992756734264303134581445436633824486229923272797285146665208365118194627119517243662148321873150406779580209113697932174215433718611133394667134760414565766834415720360350442266040425740251939379396386392754785823846039023459167891173620948304836438307782547803730431077813163742338161464525169874037374775746410940875905584391855358980009398573934016764275830272777209712854324316283373068759526021128372891066670379400889258526568482105470645872895124314998433612854258244294069950141599234060313599631783323870046980130957297713923876099209971364934637987990923581071488132644431360347131720920472588327683812744777812548232845271520797151442134829717277314032798414089375343623657609556298306490120974673714814491284514912109289558225826863478415856479387420354783530233776458671488543200839464344141428659140436895185988091071311602119085161237275912493379059376948496367355917860093888938718106675666680732567970016811461531222763417998577223754191834739920743894820256491757614507583046895957248018205099461020164440989150531562850399046364026796525393662208481897106107933267295858479446294790637410929241788676422365205005241612461804550079915817535099334483741595028290427070192697489461593495454126244650143278468035197674142281217177366422223796278611697467082305381083558798583416919833361980631220671111592136872905340245349738502571104244151945550937646679065699074215612194849255596251114471698823973776462692764082112904619713456029188571342734869204265149366254912746228753667695930961921674096090848828518176170588718262072489829845953036786782137624602281800664733865203213726785223544628240178433821542642001388495576223606179542600746543942203374989778777888583527470458873696382525225082245130996370132880023792918600024299037311540139677597838077759189514133507172156034830879764848945580212526427481869529006177419754085820324092976065529927356687868048173537100317436058812136589251107460452487525975670330983877611487420513768695084044082861414221309040574411503152369104152585331538307940258758388497617582865618943080730094954802167240140740780805038935522542107256795638108023245581123814591127901598496453246659129506938945673542140826238092272110093360464051642505019186551434979809302656865033769035971330897473464132281089247995498000396697170702081658339432807118506789687762780830631471339422974724857867690431139273155898826823260284642861216148796950642356640802147417612012627123635789795138255621626128370986777957821032939669598662410530125509571365328936067805135511087405098096499226754706120781266210861663702097442001998889457170742058111537176987713383662625764620706296268235462235387867807468376039428527942545701396056680784507883654541005342340805404046215319023965345453939780163976722038147030044649320602595643408363528125103137230146207802248934082003742687352943046227684559840379120208511344419066320085044845351321280554227953623310766448380920262627621938455277620162900168750367486028309108103866901772038228392819371188930562887854485349993736948570352958697346673090065695215606707646415214237781092573875616215186538298981336455773837631203737116133868667427462893785096134401330154943170143315079715239375887890573246392810499860968330694647638554585962638860071204141428044937872221950331613851866259082609708064646336566708492469639272686326868943387111299516522523225331722342691717219313511108160940017685158095453231008617917180250146037590541225749864894062613981316259763252527934405849439271330690892400067420554874146747403256435838829681099093777497350449903104532460789657185099831997026937838387624658476451605758095989638146101686871606951639418503580957957498468428376531404485831428510627057475424788189824159184451441495452741817105962081834150003431934811839171257232986089194271121061462215959967191642221799832037258311218383235087824700810693256195163729204994249556024207522564549783122084758383624973092188680009600161178854437880458188993040139734140683200817878721867030670591653252226012708637461667556809815679488697343363816716484658798704730127850216999734646698851519220907186430662898023602445020024698483624239834557715595343955086059675174245038228752279007386251131100299095479803619607062161607383433555057396507542213914866461684947156826290080162760916074437752162844725221668141911566454490697859834855574426455357871117687865238359416156372915992039012791929183841372771481658352685821246008340261141661021805779654672077302268808079897622848753173475878941081330735983710157907087703221357589713795849278239096598204132963248332880959896342528230215599439969651852545860318078357868901785223950400680321920273992761083083522587337834613376573062222651943792991354456976626644814330021366160445003933337767939225786439085781321358979033773749714917436273969688505408149057968109582546306621079372241045648064405771852175165029374198634628530514625379121654202639964384753768651047198013596161273552471360348066254320292192294795256307935445913640225899195777769708512513190657551908744505576997461488924867650194839560891760832170353886241812031250926954325228845187394222491816862866330477264816261961949149657974603129781112516409565996704745705723673548478385777183355915067546221995175865997989421896934498895576773323824886534872975048438936249061329575621322611891903509037441613966421603058920661257961820253534096506233538485993796306812880409841441569904483959643720932584140880530093308338185703583390677573332114523183962417769018055992289377294556835304138256673434417461821804839092707914220816223610318726558899669380156348926103232445821544562784554887616805013728230128905725956152438920562128487360249920594839925939440698917829125465638508043595275134022819074905153578150433533273126703857995209971412308259266894355735034733098050553799391222309571031545648473571591753772614607433937339144699166130469027588194668873388562179891737401529141803390114672988952513309043916432456059205579261839152471853872928521319379038310568265461411861330056097561804500071300077403361338529687736892971445092456889907874864469481561557600976453985026885666144063228163512983838846372451163945112868969938739111496418102862376194660609044703850152784930359400919408056971344555781260197467861792205402309087252233426725368034104842981979866127347035784846367990084097011930542142158123277568781919464070469418996387418026999143222557382910167682155330821760563621098975164053526207847354260314714840585082512373546183193727376111048379480302174952855463343660067867945861666647575115461368248074301528719542444106555542743071045873728367953185226693583620273594704333367112152265907450944482840120557759910560659833679787899469420409458351079453315601682094150062011246133758361943426587018174045443131939811051882813425353206447472467227304351148693156873633184589646459746863382522122201262332679072490928688853765761155997775140271110335974665456937915699447823259495690748263894667203633171858426682428234589413471496474973762945513493452412933049211098297833998040059249036200955492908849883985665797974221386430940456140295081257671507441398739296223398414949267364688777472805226401621597047426080567891648453190600211257943350688481917145205556182137116366196701362954351163285663409772754893019662440886164343046407772702341568606114627848872097790276364403238727182737214527573241692478691100211354867665858924619820109882939437203147597050836765882564366965814855461690608862846369033007012646047854129632880959616690215297126441391140090625226662183304893211778024873838019115838610151186628517951837190464773058558379233349649707324603492496845146702441468647228380165991230306914753160240059355758575121364281165149551655039049919960590044460282815500615624620269000147423436812017567852267493280440956783089105083654820693160960143297163798876512682958234028885955891979467689264266516154393198485278136975455137816335030423427877878419127392246026324902611071877856816921852457332484617017418807073766318972845972301482682287642125538693044891716852232440679166970457755469287390814272002010923559173803845801944277224378402220013872718431475788715196009695451054487139321403111346837299225142848995623388553085115821165238400693334857550742359969315406938451188931929701310286722046371386720360158950073896104899624678891647013700198282249972094088183127191684987617651428726571577335061812510698310573577514726048103869474595361708876614536865080897481288888366763573854443376761676574913243612660147255423692349484093415591470545840372074037906836044127663407041973356883602360380358922378736447958115511679012428664990786537788910571284204349718266464795450446953907283134388382471378838107163367300858114303447909597482997300448738621894617699200478269293418044675956299159586038116820793855762218203039080801181350146148781916932000388998170836046664404233315576345891969553861117765308006182135861959371690169713664840491710205580137931569896137865221063921692041577173551956746734883458382945183735551239672492598443822034635988553853986197747180049101779871374133148570683691951293216954074246573493834499509643121747480865063791695504690292020553985998940434434252263226269305718039635599516311499935549280833556475826488822402679230437069036231104276235383982583633648875590487330895394172195776030328128786301629825982413583178551456161003324480404329185055436226840805755571368086273485640018215359475104415714114820602297957029660774190057778142405822275117915754124147466681877219734309078862290515498904625751730537558082755398139455047482427957564826802861043538656521903514068424180826402140537558369950174637700449205991764611612208521918709459641183930849064930023510131334888188266419575471523694756700620707632481277951870518698775509898571898852961229727237631032136551510771918682703467167647415041899449160436886745301616942015839790057786940486485886387654985732359939695941371430541329084950659126322177014937978998138941999878011645259710179397448811161482397550232112193744931097208927450547656924971831435314825204787016302518523147877636439403517306855019138890504191907038072330369121834425865269625484802046479417105225527219558279163843326451223279310413789138752096732058794866365621948299589408400316092820958336579915584931701033012158722667119053358527424251049958429780212844079866338740174586282910034667294395380276253504670076648970125854888050311209131238757931561891583616244895413481416119213721269087117584908654636773817255076681965120484395359377320297543397677042311396773078133001908250944730925079522442618277478768445362315846980608394192232985119396953453585516207109150561897158761979784468726404945258274242110983260750702281743246946616970690679931606547136609870961910663488299432222780874954308996693802266994455659392739867025980339390210444866659487509984486823352456091006737156147764183007498095570100015648356395619798907120488026327673046296608021422023195712592532310831867806191092638814154265257952675082746832508127104058292416801425050221262186614738270112069827752808639442158180404494754710398435876304303368923512236843622976460393002125534215771128250488522332014285074517602261498621478195994409066610263363096989860444185924208639313349350285706248199140393019680437889606573080471991407881943132666125495713229600804946945748560455282269052603115255360705655467652405314844301129690997280525294007460248016189754998859274047725024527291893339869040756059937754928329491180847493072927752521071334208284641711870940751394776873588261276197928322786519780781768501303894616861967319390858671604408918895390342334495302353843968804793665570928734692657940548278003413171791087342456549723172572886078513814507556317065661977622331325430560726206240326245990153416886003857862869293411306114907441465167196903761908055248622759899679711672148005335541880335426615436208313518096069860328633589249523071038235418366692012372583418016578442962152671723104562223774455959367823808477237179925024781892088029414716087581323544796446261223578427272572739839189374815356959317791038448978114484005115883005090909522418887159102070670137966005773034968423705202030777842929396005113108678142375264215037472057504405048451169980095819537270781543389943620542876104648152620427110874649722784355651424778471398036510402839300630003889472495924019729002047535087624187656248423174339146611651091025579974317951011859215823967453839611546849952416757636718632777450396228972291446699316736454179004032543040907111516620953820932261705211588348655431381120067949171690206240987777262012422152057722129447977431201011964068956692906354693535232694931748587844861590192424080164094925515406953116568021305524032776006164924810793930010145610065654511694137146337728733800410100388465077425203864880380584529655903063913888580139984421671198045339513025630650208745262561689195921086725436217121040342073820393819610723636828102600037077567746840411149137256467548224843015711078521218902446661639983271946933560288870400411386396188729108721398873757568916483595965011326897231109788152349441007045817946223815901669827735726461044550966774422856752809944993513072941451292727149658093524665121309941623464407468420661862969910336263710978205364175220158607401927341537054132392841738372541446984030164509931157206463043629860508527734059674554320437420880261928869025940625979308089184997037328027606649770878948295034418586074297762387535413957529240290239262738963956899993573424506213528994179161808861338161850930249073022140245152290617231545507123315029201283187027573891062466272287043749446807659282696550487754520181171805450507135349345772620479183319896115173824333978420407252921623992541648622419612085366266682408447016527517685946668662696831571463442056116824888018944543197108675566031461986269769054288449566331029615146973871853558360661705524857402038976141257657994999806036406674419563644709795684492993059324478142844514658252850202083471461667732857622722063416359276577900068145177029378066940311872328151228982817392388915223576961288925248877350296320998276142699113526791905535913253749387956313154910382829584587950115845224763740075746913251889913083253997234181998029608079779802930142968462343775445447850306733141213267210230710220656554467154532860136774291914562312977280417869941178546999108319134751441141557176688882484657508555686139100916284585905541099670329473973722404803955417317266171015049368894835819402384989604112752571595665235114727669349070948689860090826009029188686287713437037964271756034075866866756510162067519384079080037448644216119659878892597151267138296403093073877937339259277299217680978822628391999667995054821650670879846828988685934640391675256408915092990146931642641538871277669808892086107963150498306426879618948804426248741266696029646440008630296037229701773219335851169940676536450071003262142589250763953111861051822702990003654550566583645368245282581019124326274259285902988650164885075171013023565319655057337036467295068081108141165857990069921380810122070101982460628741520265007716127174559382657951379967373157455653389803351325856052479701330625347779840312321647978041573533158631422593968087822359849928854003471826449782591694461666126378561758282965476971613685715869506070336426307027701017064101128411425906265521592767881389540606111715900628092101560980104558909938708695780586391633408961552557666931489970966619800282949027864371655866364181088455133724280021434352364812546418922470310045711039438452597713339869213812312998303746946282233736350959704642430174988781169718037682997905435880951333011828685275217023465867559269038956921554248382446602488855869070011836658213522662830623792676741878456678592339431134211060925418518626068675133329344366742696871820648026833175726862900324991545657651932869303974639182174715612576991861771273515260927064770547087010353140645139902686598319827184054334179026940331263536299993838277758669670300672942884354583470005011563871252759537531980924247863602645384350158574544578771708330493618828711833198316308366925937334582218117026908920007584676405971220433615520168573601993941090001888183317721443308761995232981290475735796508637884748472028418988335027816968762260013110654045940291068510703491566514657170384879384245505798772527919779243877104041770508710429618111364063999449699777432987569758168508121649765823161093023262634832662242364245685392557206280831462785173268921092395564077806188766647714662873303633338916465043220291630467072061129258834689649918984704615889512196412088164256465146834558281227941969530973215780767778354927243982724001917957318770441446530853217275705975216038948701617603429532775103240109159160362226571682457012196972653381828569304287445759780059478941300522412158500060470047524834176269137779623361460185055503600664192048090346961825561803382425627762642230076021952383840852549170681316014186393902776475179968904192684798804233943618883895937658505603874822209288305053905345965727451931822113909083563179039439298533588190921596852023616969497678309506751731953145456646844380607533946071195956418720439479235977936732704624742642325504196351198987766859041165997989564534660874374351834692980220163303661716898738004647022781136885921781581330761557140104375641415451883074959927470989262812678544751724966868696140889050441655164320528795082825701155330404943002112053239109595955947452398766362384327078277165804435841778595072051925572727418579689657021725767022990009548710072335194142886388668657728810401859426905814144900033127191544351614720720381559694623369915540658687573880263651582279562978114076429005528878621762710824237297483245461743364490188269026904350896261378583148860444054687911918561930371353779173454473284824535532367580522964599212360734320549689734191038173372656363939104255093245994868849198508227092852979431780826470329789969656395670472180018042724519126876585667789279835883942748214987988320419146647710893449988411694857449778455826550276966866848204079307077501430285058151779293108384863593579309249796740090070144238891443039064158112445244783150132275207280560081012040173751056290284496922215415888302319817227768721353091853488850531226443699052989715163778489427105235032425515484724150531894457655484009777920754986662673810913513725761063391712964811729798488724293839216770335435297767008812952781768379927725212694308644125837716290347918923845676067824103077920674817201938063485426522901759518144680719462690305701145250825228512719869151677019627027962734281847629043947730797359468602885448235455670695566403367888574924552440746407013559809215089287908201436591817457314528538698040910816057376281395922802831481035105781226941398388074998898200350790818699748176573545495100286524871160845171337555334194472126811641216978929573411433079881778402164343438336911348688152129519735146382109039109477739132475602897926430817511969733794019722371410373502797531123764099845362529031717480513159747780754258053775984163843220881093898610447152985158479634727582026591377269073272390146041534369836570681573299471233710539976402468014333037459164187682389616854678627219757431125739294254988673112252409894587689846515468709781624321133120509834760227277810276536051570142568778989038583193039730989758432728178945589695018535113279211114905836014033477008357353375107131963933385287840059291162293130061836718797554568959868289489986954686423976104899785366159435696313619648814413704735743917821399827791764938163777200058416822720060625350194598556552105143517240936008176321167210583603372215000497792695376593258194784746942771034130447111040692767695782202063441068893299712895100582705662026970393712054599130799080234907661899912903170731332137499827562598487014745714656867785207317270450842181883063867672966430278295424392490631057845874159054326748532167979421041676532116369393910812903176347258683592215448168255300615335083801686316291003897996977048511426583905803638216285245963740752620380369545543738233672828221276186443797339050856456547530404471021750098032076362419690817933421618173270388340794376873833187589611836503300974197530439277470522259205721681724786283689514967210799825357136674819194819876444299547063336505321701523922638110484966959483219282296185419770155352230274618167467676188788476279155384029864377038249427184262853940562106768384824413147299459478832248774899804520245606989616781679394004228349492342768807287241965840817005575343678963252258648102388078539504768796474772618603785158270333962684310606436307815110993923823652899564677918204349783341352976365847061817148319880572107345059264582110171635885090004009181149487125561008092000818572322390537504090675320069979248929216315987809613319724764291278185505400288071966014750969777236309412912831606021902125726699661162071388296538470868706885355675686067030905860732465867888423744729855455454274350359330568524738936600756306059423805215276140631340353608691603302522524252376900696870633020385336516466815079144577070746965240973005977489148965002499318882017585566168191715567984826814370132631353602598647893998059189114601889319706187284429805699970590689230682418969673373810825175548597067779463797454787309551720831245935808293547185573674917713041226998644386275321627863187853236607071831650847034305844300756513675993014907492431847930342293324132115765841609721529876848581750911270561531757975261112827878425171761388612197142208972359252432727512773938329430796511461836121585549193164308573973584031310076378467931826141141744500475102394348582610577077314892673552997476998681468408572370005683177922102397210372528073923199379609748005280806401263222440261052744424292782327981872529588734279085106019570378234911618495026239867671413979598461960323897225176547908486887554643449384287775361700476278499140680297105416853671483296402638271551371333473405490955384544773199822531224976920813262154399001248197785817240446844994603970800998226914037471847620383534011525518898529019391400088807167360920689918642792002261067852290816437429847512770076149574968819264743019490194107626432430487283124364693246120778322445995829430374403864207506758070788603800913399732139804724541335272410070301775574876781822736122241630944312801545310711812951003036615428625371993418965981929984957668839568036266655073736713378765632314663253451488421000266108130518315451566558805566529268614724435203576966486109792556825853948947466292417921865849897119035088302620762727394934117416384321885095394066383863909744830633269135132399439482332745162993348217584408831048636300836534746922753019256648666428743445211087010528714195345414122990015569947371317511697380150833981012930779993518877404453269333260418918175512713383260261849527982707749545911250318922591328501369500059121764112992715323868461006451935680432124896509131169730380605445876731442227138612289327277753424095964163268615432580108017277607639969743940339130290817443455587861931255415415478532845707095984771658234588193796614306052783280883583662496978499219583693509120981912671422442806314211032149729507534884696317068023416529838607680067291501711403060191544756229241824658062313105343318731593525406104774618889416005180987422517250909622616833321600104880974338063382197538290689123048231818599147554523974002712286666564818952718033945199027819423159506821888740529738202704272995382807939401457041565149026151697467048165723085478265076850134593697603210235121701209359129971609514735994042829352925438727839138734343783238553683489674776936270973431037882582722712357639552011122349786271250640166680937697209485456107485140493724952462676946306347748368599183618267900766621987341332926820370016929829353239032122436397910313431589841882820144303081149408097540023118815831357177772340725054213465096593728690747090303384006629520173911561921264224064259592945251421102482783959075064872182016945644967812133204978200430868220385960047156603327337187215637437400820011118797782223089335371138711651259551829289363687175441714754329139737748109349337401186529272839279421689950261026447061957009543567616420101185273295578497589859143862922574156113569214661452084722671698430486874775414376869026311759499528063932946179940966581016780155931034545300838325844325108452177173002690419792673610326183130570268955316585229428297932040551978408347649463872627676139424091757632621931461604125448833493884449593925013812220281228830985401711471058564062190185573856497216723502526536404527083197130028029315039462009850390105655878120648124666096615855059146923328076920588732980170823277055147641491499648131131467797530457718995891146480219944517993981160330499132688417559956161987795278194079082822338785878305953732042259260042638323988659594579310017441114534133033855363523870925388129925599741784092521882599159521863705557928689798372853202694517105388650645719604549038132222094680942989776732508085578272245844127315290667248579387261537879533405227160284596453728743635785367474908641329276885184381632663684837872687376148071490990144901717644460496990869688525119277225143298579777555149012594181145615535263702577953170187076465119403540598563334480314082819478476600896868819145664105131988927485041270623259552840431125397201251550813108364011763453395007025609042867587829339268443395867368509493007268897538703726318233293253129436199273127671323208765801088057584387610955619749305970303020171385183505156770466107354760384057174244524235045114454691505717924381348731191430922876572567004249700715461358086172567353569118924477125200834205278215619123818005114910807525015236841625145621593972167974619421627067712110800861452950402615786147601664929141693550477697737507057712571827299912103372422839574836979173563114434821126850692029776192343744034399295443564649494386812966744949486545743246911977521735546626794553964635777096598962571437823918631687401815943452343186317678750651460201178107142594806729573684826366020464153864186620723744236371797854277702375943865133593599870923450508871185202218817680933641532212128383571221764755843343012916017975656019104744225987139392628551705333909503455053838616454917905636282391968393216554945145590638284874194004087863846622733308778525964240855216522536800170506457209594549070178251165779173763790917486775059602542824976735168708789471759915894403075431088300982720700641592634860260248031652296939091922937163977393011819421545509946972014991471712111331134349502365141247967074889175141864735361867752464858568807646402189949955377322332140524777698975923422893905168617032059600270632730608304154784509029056574478823706297207248942933140589987460261627942689887729579306022511615975208609206358107346706290274804430127966660966486576469226049026988631289594701297757248550333230760469705717456679591612352487061599149918069852587848703389462211961552975023426367924799197664587455349870992812456771038475040469893025527759414808451497793797787454856658809324529037110284281442350853986428469409086111717981028932245725606559553252440254951726708458788424098353362463460481120928609479419389639938097391193271924450241507752065540969692087274050475352146235860115502304268813385673775928781247898469469942072736075955517358935636397942890195817733645994511664185676491923785899155193995820233827378700185474765803574424006892082591532822196630590778196081125235212702118546917188733695099104759659515208372653532086916886261804679630479486409632826381778228543273561490604378674983863859181253917054972763212957182808666244991638595492713246569308452035158518370221652604434377578064728526171488719162887029576508900676333224197441305245664457978082316364331802159337051355271828700898339536635023908102381451768427269324544800518895950937358848711760079250485856471487956214321638390341572459981276564810961975226412634885363417293494486715735987358793310071736594183275953022045940345712496096276671808447920691509229944125342789055137490239466740026111530449086794184966478694557588367512305244294189480999256552706635409989467941061548805300062984122530225745031894951778235709486837079778468359227212792568989772245114617602694548030674102712002044022323786363908971992441075202050130097628266561271694278050920680491753139136377363225284525705034023665939493922730684873429975171120135031420683419556414311323129164084881024917000856221820047563936660801903547506794777476706736954565397629416902498164226407800396364385149365126666324467818835650822972290114116822367470918721592244185293862471724084008276105297200232876696179211829677327632601528786224037890491644091249212972355245354125634800266210164332821211171020407558251093369467859750866611973624227773454713538396715813135937242635941009297112126837570905105611213493716044636346868177511079524463387901260036193208575312485275232414666579899819889771397093808355843115611686106864015485877344180780074297572067369370824020108032922817445452148640859426750235197678845830120214051382482137258147201629179489387007742456819527726517829091233745101858680085714689169759753430207849507642039353084348354260146465091014390843515419688883958168438695683347843539266979599352199130439090600916733594073325226356568680400724256544306878558089036851425689340331925277878089354179310811886033618855127119743676843637774127056556091020632415384828664158300003359512735026680448363531503678398921262220253588888290264915863002936545005562049464466916874192159213501299903717593465525012395566448660782476485846147759277066156282954648763608091656587360359184305021934639052456392568135390210957142273907489213931424834427452926039442126389556794670181259051674803108224704757697274488654129006087794747358660870395438489817591526195754584136447860790716006592042957124471692303415458545406444787229123036751469911816923172427461640970417597980604927642545276925808990394205562911007409500996905272436559315698169041660217935075384470692051688040167775411931302094027752714919684446732204496072262706215863693779925381306485015823809848716244973554109223166414203106327426230083839163742996514437587464539645786062559114452270542017928871012905435409567250517966965735030559249419856187569914112189378282174008771278723646972663705290568342838633092473194714183521228973835419655937329783062398556720942523969601070105960473085416640531816218304717812845409398441515076882906094095147073821713070300732329030823158060047601910884119418577556466972420031245572278640366311075832070495568270077750633253775819355200828248470836355643921460990568247260718624610491549882774878408531998540813317103126597732805413546222037884497196620644959873095128740368700887925081226794201106814436855261532432295512554992735067508547894515149157900959571721048064665838142160950110218250998998375990517310673828089640417327011337047655570446053693701995779266662265378228503329829949132198753170697183630537073525062031273278741566944879233751327114868896776316944300977428340941949626117876307412966448390910493518690885052478455868276040964173165885006158859599600135856385527761852369320866174575310926558079758294789497912274514240950754776063423181018180741709427903481376924594456425314630059279168569323849670451750732918200753650473661563933798218406864084959512799489456699552431164802702158540819719524586289368714376097864038424607692336997725899497358107029373082858573159824424519671563199611747686075919668642782079960809015472667395551207348343399014440117059425025417658852534845752536258097736183410721196315826244101917854158941312175497770043276061526391369673539975905285992095504820885904133318864088109871400336220006156261428002437323562264455164475515601987506163676634777029414463987382161482416182478426709076371820675705154557622299124430785263432832642387633887755500203830685069760128646822010758879187563818133961753625282762845791921246316545942263884178385498423527054625843147712447060283650400219700445543473307223361227098682829501897162202770528143394448694421752315830593240857592478097753583856623226625702978668365602024398634652353065991216358201198871255651494721059206970146289845487022079476164191119895838818668140809230905973372653750512588561157727154409509024776584953355015691991793791672885474708189428074988881152282973966940806815739469425825076401074814291130688023627777851946703043580577429876033395718949371174025425569551733416887576627116721155365234034622524288271334998149994793793952225716658366160038977607668299532074442428947023575681070820886295290543256666547064824142994806822669354328651521177186614216566003138185464754445131832041253586610684818821503217817834140678937219100901651092332351763471546629806549866881202961437338916696936369575587460298543079236865129761433556142544978240840909985050808259247421334787025757773090108550560538016498921515631577990421995242570505979089642300067430773794213220367696397133741718947780380983469625515007615358130030673450292994906182479239348413778101738133778125811430937638987114441805625555198302071464334291685378262635854099309955682395439685644460047640451865432752188565872251790197253137864041785345976915319892465387718428600350781515981582618210191180683514348789173801948560823479589094367088029710708303870658399907395824930938769808372753929001769001220416906055991128108017924673271338665090378980377072009143055904584443166765959277031179093575094989742965042402088217425904823737546761497525619688954513078879272062734137850922741181204881502858137894197040322635278787795246546817128056696025610909228412053015640889588151126107389161370684831156760031723323234115354705877955818828688805254591613755603388039414835972363638991245737324127165473740912275081075793913190771739669089715796944738284287813571281379908584842506939483298572895168297704063403668145255600222604744774016344794883168696153978127863224213237105423270434005269722557994419939879582904727088969361824960785499512154436313505236861572661401644698563345648689145467953190029097426113354077383222785412507450642906786419265462099254615529345213004508619382285513511682671098412689044981795428024051706055827930819328652262589998817718916470868305792653198409617275579392187888765293891038578122408385108129309994874264624071061548665072961141325191667826683731042100023888060330664610318498895216297291908084549918664280118640723223007665777947913859501670640963452160171181433292634072054933114350943214899331793528325495254635664524491392086555971801217397545044043678967729929336275266914803727704741155218659995775354644704957835784970220690266925108637686069684022117039670040139224422193979126728776436096445392481152980030905697846504626888417680398147694925773987084268142056762825747416728701881718903370981125680343589172485260282299158087875302572579871797063386701086941210848308119270534215781684706915606619283175592190910152531858721500204957197955643818363198247874877116809338551865276185028051942531258669018210656461603924625301151791682434018972767869324015384584938179257508254157194514127738963661299214610457081367107214320900223724260392551290348736154085347275396486501595174179930546918314902726292278519977962425192602265125295071736490822053304877523343073171811876003339595110748107105427842364800440934712953687309025927902658004592951862455471299553880764097772931441451601509398212814263309686121913261857858414924247613998584621367595465978071715470363404637963429870033266486809975561538714319433518454877128119826455392851402047993868410565472604787651155467506705393226686120675454435665165760383878754975739997708994943144096333435567873182730620605527592890727754416037390747023326924803181356164218740651348070538487435178781166252111055428970135086780334543715993574146576371245997536628729722552799565211259068088834282555395991956102761915576810322862078204086796994737042626539991498855778061287035976307793177714725569475532186618681022784293486897264932828545123597531763116792901167543523583807104175718658766794867614484365890228416833189196066790018087431609643378293650273258066754965831910985745831279515132696750860909789488604506170913402479954635335900276884055497648934330782924851337394608255466560317072963195700279563754775311430702929624982367113218988221627831692449053680360258031644335109961969115742057666829441494771117200573157554537733047239390690773108217871947318383527970844751148573158315497579388040142984912263243803018010164231834770241833316956205577899557080705537662215421328964749703798071013880221947201146774898248305371516488733885829138964551891785947807296236690002316209581767477344411541864693125400769826274568045962291320411926273247360839402889262455929097540435089471227826907296289687525566063398329070699785940437288441343044893416011488373351166968144240746807409575745852083744149426091083404394015651392415412965528858209062074619372433887785921924266830638340768292616782043750645788961550517446767517118810769688593554650540109603664816304663359294023708312918028560542971070015565557901165474283989714864889681512252257663795514683246003002914986694389485750331830770940519632620055014831595767915159061052911309845376703964451677300351715831559253709893743850670389760484002914627874370512674975130293010460631707644304706046198302182749607842874527059866389010402047128122643125278401627591380497198856669666769068085792480257456531190808752000164704109707985299786677120612938311398584002961635386890353386109882712225256772248126788244617708768728480746156540625337688900401311378770717569140150385203775232966449687672002466760159849496860941078142496711012765169244369803750583187432194492728301989562468112651499213950341587032648817076424062661715993609523141899593038157620664493896969793923832882923190184012144594943020395141528171776834938036288122488099079904583732997769652016469903277826628450827241450198125305977883937000472079298699134270464101060374789655230504870357631555114809645068758714293879496432186879486349297673901258040720850952035825543706669205887931512795816051408524176160819653739655958461249405988643791084768277762111563371407854438505632615663527774925722960978849646743445528551224898857425572329614382577397819315555757512160009460056553732317987736675977827110898211408126620651833049250612066036729540725580597809779614129204345936918867333207800485721856265052707391067049182662426745928431604627945401269096980301974686121249110049404555157429873201573771416013610194911428427595125548706992518250480622830427207371455286363001953161159490322715418637481463006812860926460064664840723271099464068403441659143840409948015246860045067559766274330990964562402047784044196775039185160732769196601259032775083979325816968059188836729775344888656843899289608345291559679693744340017058257060286285376512233491775885624477134727867073449078640333660086402753894024768873683724681547764219496304449969294536221468925985739292482758947870632425208813957875285892614798545488108564842559145102474943328735023335784705022206449415758818250768370933894009001696443373058306794499102666620551238838249890653785011937124882980155070193588248421872327823825427366788401002149153794253190683186595785317041702099457926069065692797820405589798531161703241548293400998952701999685512793096517395991351622266887911197941793495080756902165587897268276598762538919726795810564180534874850352307686439207822123540721201978131663249826469647086298150018622891083697253616091298350217503985670352556490612314039688549609006388956782232885167471217797842253723294649210234485712705681730841632348089928072372464809939789905612336249126429392714249206042878709087353272923338782038734646248777398016597460298754422690950485813884160604683167358001507250818405483900117755839702527302649010079774611866456669166025481256070437772205969782128231446048065496388157953015601174415111675076085343085897789675032326895427694092473530038300865748817031278740077412024323010767169924220209820971330164820298973396803728314622359902877477070159356983110023410374210559308029344418502904688793606883597734089957450844278992478307863940442808461680901071130330131097054284832419194741931435254563938748485432303848838052467486266181795272918915292792585372414182036062739511539659411741796321555427829789482430079289453580047280347778778204841630343040990741012180672222446319367609529585309706425669358882558088982798157385199069826815851613906421421394754524926721798774579495175581115972925036593439919799486676398903108562512004538154268487177421548225977774333485233027785362879371068993022946085823924360018582277698617624558032536637855094292535418850451894015958428588223932454212845208402286419080610773310993446426368080488619537995528805971126229492429423402201545218290855004599784254989084553697784242891274958993484254109395946308915817676675697878146986446747853584598466242036200657036202250106911565991101167855387062536385984634494050901777036455083480318343625206493927453410696587274332707380160159151659977581809769960789684921053289145558340262826617399282755293924273600238853413422356176656631975635728235996756313241793918689670962078295328382962741150910016528556194413332952827420685030334461326458189804764088946639410566542651139656284678005570886296822967875725634950636825467835953819456132036338007430982972828267517658045709140748154713851402605512199381850972679348500970930962986717598883418322883135064181189491959680931635197647536394378725962924586108097301133166715528358479710492402019110009711138227395364013639865150368725069140970456574467800825910890408392541932523470998099023673562754326782751952095798224235068089023955137622209726685571436305089894261062949189183682122323417969286263152912793443279300531309740760551383172198076706854473561423496461636059203082615269705210943211203864734959625450722562031801973268032543088214216194971851732362254771722053303305652882355871201092781616059700461905086590837809228692918599614310458868675738583957793402468118846591155660817894320594380766323054625942865786773569587276080661101371356514787540820222760140200000478776670304050314460458815539547382072638813656971980049488024064404387809870653408022144289572609403534993230885586608647424342970737108722607874300728700086869182704214876477693402419520195416385342594442178491413552485794462471843498734171445333285564366033657513731901170876220893915255657524348751574607184551701569137956339066639872462699168120129840708491111703073371782538335516642483730684118010481709357292715548052575691620109020478614142122161550496527075914035255995052273960963198347072087537219044265381151488496858887767639492194741436139897237629516440622498650416485478187250836584330553407067966194685329192386398534717481720836444969370253483550348951191016451333933805437691788338247682430862134045798001026668869442981373811342237710361083440928800368330268102116660698212083819961456276116284431073469373937444378223379301347892838681281040363092527579909056179865358545339277233468455333872046959116808199607652637777621940076977609161278417028526415151886476740176644219523901778898960377601422370556490433662826923092187950905138532402518550472653387375831837321848504464720251641109251843151702458129976431254975981509286941899686623639506404624014553925611934450012991420502165615985868701738768630769952232578126418905255921616446226372292412809268009154332543509724630749511026294290627493562135671517898994219376555834947013115697955450527394932297786647611803244844369715606905318274737079672243306463268891405610646135353495951540270151375875589422003074135562809475818207056652659812722689234284572767896583087298812102800017932872789887938789954488724116922581616159395825099388490733371630835877362993948691290759904151992025400815676460299715279511869625216906930981004144383800534325275909710971139337285983058858690322878995080770283432167178061791928169642249539093600614081265889100969257839793624788167416826603693123937327279194282892406487785186248926744976284829094741697200028574744311884441171358968744861795467566483358808843394440538838971497099166336786444532963354003478828508106805068950500982546729138003754019348983745845283928201416902080726140825149624328940414512437958327520665552282298249836339340104741753317892131310439291747821208733223370086375043381204768233782124429620867669886861692149819538899655978413220551864838267029468457351011210134044746515881621125183387530304155680175787042653263671418671719720163961889611039898327706696828686876654720552186254492851426147023952392895945817674401913278027912404395709026110803214343449771880143319705311938569781895550515609963869120619780655472326769682649513404337411188832013737474717937406505980395707006712345701322595480987465043639694780038060053224516557376005217069059933900240104061512084413549002125221324843010267306114624487096032558940701088944036760025439240569716852276873888955033345243529032604203977248925163225601189744424171733336006778880797273307928923427532774357602727352942120085586363562730237528075463788701751463071816435771185726199623308956654304931284521551592455429469289436222396458725970666201068119473397406179644998218491079105977559495007200511110756229065510321168683636341997633796832238029224403674263485446062838195112202403436756833824162858815538596978469257535944898935667063998991904237067501143341699785940513418861854853404878957046859806935019297028687877851770583869086990101706501996910524141583293195159378519459873643706930501307969090752625397714961428803838252602761312105765083365018160805004283133954736108333548743607930645346749949824386339003917905307210583813178828524934841355288993777858032742833375586833481566104147187959998606129872106619223294136320814857548474305445880936053806101462314514300642222237171788017116803756661272547809767486730224726920135519289975936606891650967588641488610451926628356542073506065604726382023434955327865812126893379104712593310111103141960794245326505893280496372053040578846913936075590299226402588150401045062790084418649920708389808757025406602530005290240867700364941976797758029965565214692539757718580484505778694922614851987077388967871602423464067409476384997371938907186158467394731235468623255435317133943830673227761339366448902994478085696121847673134844568454242992350700489324696885517798211105888618305509629075649724396023333877409087335888308371515673254493418860791873793584936390625857581825096174936765877275746390804100938597895337034381387827343306611321398350543627216887792924108604387605520402014191419386562316899867165395963293399631565480193462292006892040961606169133105193808300148952048054389143800783741880764305429256256190903893255919934401977991919737853261805186855570109694649376163599518359605773354753097763026145590853363255026009799565113572523397472151034320658540587681314961101586327230211265095054589263173129772939501429649133454442770092657473449922436821744098301590469558263483617073300439497933126242806106654243701133472595135228174180541077852054877010108646470267408800458285290958119290925527401118686961128460737701116339741711495317007506492191955212859344820851559586532319241248406796794614086727687222921271810560308024581918498951574696710221792730060185315937575347781396410366101126166432207106933238674717289994291235907538021419074050567213124325672968024598506492792829032162186493204378847069122170986830930948769970299482003485768638250870698546829615925620522472864611412635344639188918043054177846367893837090395750538317826393478612577083249852781437199026634462806737237074965503566835053322731888479194041951816871714093744918281790131061761552539172855320057720975086586904638728904530716948074141319741670766242410112819990874171119108694364386962673516822626146546462487807740374788245698770570884918302450602628955948334461024177530326077609184867316045575954472954610960818389785704862039116796674090925092315062927157729022626921558861680489451762491296887255266331110160191590984516709242601341791987227971733039765385080147592500628707251256549108710100960340750964305110166624116631093160189156460463724981869518248213151972132467623589183765496366537637784670750780527735563682258980992880008871397308310675711786987704750405554778780184545068550258080415113420534425931679096687308813304507973635815509395674523648216556073804108776416802849806334893958526470438803454472142898606614066418452854301546112080204261309179260367457409188629651310044897211569577924143735888068104858146278732930796823430077984270747368917521977918896987632629460376768686902780165070463844671613935480635085059000804482703205042635731928401067945777506313004667686339561526014613866696813598174898384219670935947036284721479634846268707359244473245088439492231960332262676483277509731045569875422901529948725884560414542716365564360869036438329694493824357594147293156151083900480320004838689179300728907752514633817007695518191194963732058071143686948634095115527393410230404779535722933782444080044663268619983911421235939065010532162440886373422495901158400480687480127469967523437060937626839387851522982401029127564382093094241625199321841941713670844282000175303729730510858654573372809827241336366733456806454579707482830367071741454230904695880100932983450507358500525234105027570686363310600802883805075013641250095982576142540620391994005692606555533311420167932748577517876845968810399469094472114418619245798279368335761133614536110845546308391893526271504767628995900842427003968584867694251676256852063986772428827741527548935983456741851821306589596338638601271577000759940404694167169762911080373278326220328041355665923697944457671352870728436526887496759079348196573343877132644604238376287759710569296525595143240082986267784007507472267390552608502994059346039865160603517991992001543130281400011501503841743882947078890828129228726000716219819399718660301798469206602976112118643524290325376973121617112641530527878025082196754803604938288722883766760445398198119532779649573500298133783068358656734894424600196301756697800197494360931651452129334433056039835175783486275882219239495217518505286123034521381886150362814411059448682534813680773604647233009479018033925843039088568731720275031329262819875838678564427087684757062799289096574944122229906636706372247599185236683016562700575510903866805392649999303189014287107648509397080237028239992594307226787623391849462166366362426969428735448302428917137357613799498118785300624495378237483354570409165551060150383260747469220232252521141208199300512830167624201411993164927886648967323549006005089179131550559500422160463093042176217960629349380133594128269391583902713252822403468793828671926449922361251505613741571894989280941203899525149123669325480286541110186458750121079955955815693356660101034441682947296747403401638267921396451855114169016454416880725699756069592563121325803971689892197632031266973795712995194714619330730176497750543796954257908019917893437206672604930743227515648215013675987293172475398312851533618982264622326465199657815377978391011118997936393353508747383375893656912928587963725612468836907671613911592349615514504774275078882098259958672295287141818795111803536764054918417616627107332198622270143764622034307454845159115413372378141243290338587469656436251061735993797859229736887807652560910609230553791033677707982883105683449571207744860233677676548494827467280483391649667669344387131520994012957121532378935428378755778871203188591043776386089808921635432728294058462144436131017237014997466085446076268786329549304394325799606516987238819948507796627965285498650464095848403847717108089815741625435081861143471414174702902894787781087300347316785823924423106934845511980935714427693726255308470179480137325014159853151872176165622744688386640685576748810007731228087351543480838975708735645960111007754677115764785175540491891363435584833926116375703814647140485760108822983934725142458105157503146278698933807527736606482616365096704836311862638282910042491875304229231331971997325736961755649574720498535815334535456675637713305482746188280164935431267606585097929250808551712892030073974376627463788295018604188306536591863704741331258714138740241705831094769330765154173264810964190445429720257537320031405890314832220417986564293449897380271812516473913103648007514275956825847182566261229594295246455091417636354988884842844226147052771284939286771447981385981925226514540844046372814662878963169071478205120826538154617188420884009079749816277332455674117052136122647351382461839694593669158140422014244704717972868461918613874982717927021566838509107381680725153167280619827553726905350193118354355872485479777364923423135403648780312957318132905536248369909622041523721149632745142371013988341023721586008273929029342337435629400421112077849960347691858740624990756491893060575382558427935086457251141197270768030026888609613620440917263493694918093184794789416010879127129243754079699026410054435955430672133652399009382695307676727752230271259484088144525768498381867997128064042653303198381382378049866579568860643711340615656615908324813181187996058095687192098383358671734660932161932348199388972379548844577813977291421455407024918725283958394482785040479337504015347596153866079952921830888374044477739627686669076081244763281893190541232683718036275434594833281224453269375401501904383770199466399159251887891554335258848464573263090187905299169832753136384291917758516673007504181270630409326854687109316815260518542121613894598322592808389234368097434344382737352229867821800595802047374162005797333494047860109774445289338815058377116536669092444074034388984219898158332754448356649118415197208017264139978257884335228526517777941939926216874405235879624460495515005503492160101460916644702485503428212955492436634030923881067385411701263135335383079794803467153614323450049981433674144515024045478996351485694564958746090873703090762989226687835334420052313340922531604711232062370975436620886229910446751383517929197515131634626766848212024655972895436059696619214013551263293363436773328051010058260785377089460239904854970524496226300505209042736214718724937429285081575054423707774665549671124568739855219455497027252990082936979843755229449672559450593190915063173131541785164507175198563793974055812460834443209756257942627741774822435603445210257660807695749971555554733654891001357667222226013176582166533420499624641450921615234730452045524407432840376363483585180014131018982247077551564814341554559652423476819917298875387116746790003322086618859773272367818079555181347674885256346240246245255199943569307825704111349598396209540904497785588334476413219449054585998001400274383770862303055285075272265372865358318868132948093594720904439776727234895445926591825430753588330494543102470326145252017065618899255471005854672809886836410745312361018942599032346852495310596114769107979824224069169341473640628006216727777404242077009558467745966438819771132646171212573924905262710543201980321478793254418011520031585493853842533610177035730486173769730437190117485453951061541698760299410726383210017492191244128266151563112588311129524749360620797267154303401715847433364150672672820310794290385400994938112400858210486402436832032772019242092186284033080757318339180465660821012345438558644114505310982160252768552259842148414216893878394023173920355016121012001975655017472488128749346830667654672049021858326122792227476946060190751125282177830443290716514789654281918913311478339577113416378641465959725182969706815980664597239358096434373226974967985688311829896492196996609446988419321616375367394915735068126909329375362608527592519505045375097375465281302350984562347751513806754167220803942805692474178139480023196438405626330519678628323544483004041940163542336651467762215629353538868890790454479971502099026410031202752046003826906187852872160848789921498098085040330772004674244585375245274017199893215742166475459167070590839343628127962948224159021387915587560881137283738686962039596134753459813236488051209275860939880817285242743417167998482998404580446505597007838453383052709758963654151605060939201571798763765473797131966492620673777302957349291991579804200489710866021271969650189828758170927242665309930996908970044737690918462296117558040860709619783126771890999908820447904009148107783858406738447337626210285184731466023651943335936856071775749574685263137462541393466802023181317825843677395906969706619312733448680895621808205554363503841954532093665064229910989044556967367918640580143320917165509390835323670942370649235576788359424980473591242020740209938386796720644218154876468200267159047209047977644732558556893062037478969353333281370543450313094866982475925264324156713515251870273294379565842437096088225450485194084506587619514583146341148793219446059515198435261534231802845752957952049241151188869380628199652483700550101927391856792930753449372565193971905607209607222430551952587110883740983917721323985275087400370459428764047108007880235123538804008872488642669287857399630624157178251222649697276970748204129698431941657318526406071260502283904406931459929711030892097668106293426703645833060075402076496574122920996139398174305671178751900064403182642422103924094397847682842205051192714138948368765078377109903111307281028795957004503484116219737842968719463449906338778232785977504034762259224695151179681905843940965126690770269672052980119709747879634819436945997486367594492874360201525656559012261608955218139094044845663996732909404438747340942791794529555038842647379965592267471212525654257415718326358714679364084450686018253102646753045502533769503148571388671480896937002552347200696876407314839721083138810824842623568409919774423836270698272574583095569218804961157604621988404963926056263595460763726199704971852134855485539256894647539515714027113194028768134822673778740577415929463262779443549299977005816660563948894222228101812754356247646885408571277773970379190005242785660069071880062484747523777775687073855512447322743958178165483026973060716169478134576770007837978605867239867345111953023478506642585174120283273319006946319737568544605906759047610762994252458372985169822543692798969459427033812784616257109582113527021734216061474108078791164343136538769678468464205811165834833733690970621899379644774804029061230024533348878782633090569410418616906907019939819860354962678687165906399766642987955007636459975946671973404561160662477184190934293027888940451987659610238332741936323575786687414699285890157858466058009861819560478712336558940465371686000344330610831964737674227955817492545508495523622383951852159514155277420089154743776998314928699291949352470683586442518598570959342700453595409780940757374652946105475164529014612939976510330058037659104270296921631260523162195201412620250982987030161874254657232975452968995877059553569519913564402607632459131536511952260691011454839185911624574839047766256337092595577464703432024902096947495606204828900459496465225447237855880182849269025025539605721471687779603627780667042954282426430939722314514859548136027662406434092245291255679270200570553651683276776791674740197390555404670327066704586913353090096138446851874764429981455288712697612962127255550935642830419131970775592553123636306519165100297334987964302936228093516685984164335738246729243543079922510359130391200185803805544665909921668439977150272334466434566863909490664241691925724979020786562557381908151056255709554688633337660915922869206537750247431049874325281849009984099533763583079226229740184656659109137684862951868979564866518260196372022836251558293014553000615137733679699569166466227285692237626675544098689115166224904889093042860294257177580090746928165615781599730109604645096283909885043100084089263002099053415782508071160704867678814865993703812713089013139576308340113886883270467721524494726126579234643394015630209149085138579907548762508025873889715186214181265325313318085341550920936307599989493549440433349412299324849675203707661840047082722825815340529979659566945825198052519527443193457160292533717710897939703125408873127598841975697887552433470835394255979327993341306784553558402403536237410853111584098525300465179305686953881433620467148587126111354288193901526930267234092886925934695548827919114557438047218036911393357307888457097980686350321336039751815468406309559753200327842743456345882056608950934681641171193853519862354410245301904614618987988081523029014529823670442834409377249981143238071470537629042804396774815322938595917072909554491895552704789000298925508546137178319905131797170493876573342029201925593930903140244350192957673330194866678797728848573647353856475108812063647358801668998681210299656425224822680431303863365054949922468201505775372904782178398787321933287698055806773085146729427569669331163889130345637303982822588142308540535824606644242297139331536904864037893833037483557637614227692032626509450547422627170260527219533307880186188400454967483892227460288012574680982531349405979551025279169563464065209898620154184593535372770371864031423326764026397199523052471061152261926766103121587953602319053208967725448432032008774184133751015585314241919117823569995460517724933714675436390661492015239014039558052699033186852993862646653813582359651216172014136322381825337447292036423864011419977590940531447194820576884066407336150975493778799475801988429906361002637333635747590094346783413812418797014650938302135915091049202263694380653856051369447678862371484217909876880549146273489321274665622213347341975097466744339457234047539686932734073275032541440509473576164662154186808337407089690356266885254437989137643652597579148206363306173935491988541974236349968064941195077267197064180530344901888741007860204518146480437003252869561604642131782685484316398666837908066370701313579426088600544867907097463389627586400580574808564328422959451258880673125137622080840732362128405078515819198899841867314623473444483224152095087087604372165170280194925357365234468306090529347801438286428040997223892276277579836019709650622199861042635492031976710528806087332571618630075260556946847152492493956992491571361918269842173046609650556795975022752523170694836960099050747683286983835735773936119191914011361971175902091316864158971690064994740857153984155300646498920002985902921975555217430433418566440530551893484022220511828460082058627703941689314254388075971673396221610265445005560937553503890001731855412829834173543163705047561912626042355790353809838043182038513711964810656802888925693946410529868949189041476015450813856633173852468676613386849929723255223865596569256729098006001211921100473524021714574917366519477737358136308961027717804044151073832005877380813087871915809940110653724083468193199039336800355477566014741010817261596174615507366879917711780402482727822784208905855442350437824529842202599989142504875707130690492632043681005819671868531219355155603132605253876487182309232285345240677336483918331492379594270978334621627436093384920448748915989426072805989930513278864819606760323290896093656751612455105704622548142632222916073620645985244480983665156551071402676601637237399316321463631970185733387456427223345228978529254440864590833295124243688400217217988803361994677719909480964479807180433085858936017766768072711150826905996994654954964293135937743063009188719922341000962804431378373787803070351888882426291227423389174689067030882324568802124173701707738582731713842137852925124236982620208321322360299658543584170433990599402945590148841917410759725704756394276730632587946479995845651108979697525631132712327507575105294708163790639973836815870736055044274359096390409672462407121110134631641356986746850653631848030691774807268909106369440199936178708676436213382413273347646155434081970003397475087196261908398475587531736011282542265489587841189490693887184089756717918011301939914631319682352731559427241367173771868006205361214975059412577411069350168793215559718979440730786674389860978628223128583260824114324844701734225257274882152647474268632277069103485671672874229105400752200346547684560483783254668618784329299957142122009992432751087755004790370323968750022128896346971214135669943025826756084965715564114989853503424664618654641307188558070218608808881724024091835848583986535587420458837684359933140534341756496006133421815002781871905833224941504534131055471301761196329283176446587813443372045950272523005217602328162012148918383697694400285845702610890932554966135409131853108752506010724074899194434016533724052958113415921285933589540126355889629194611127662897933742117813654590341144206179055024512715904355731854099773002413299650854801065334965775911205354015295666853439512016246964051175718793775377338507853952276146748525061479303461725319606069898433928678732162448329452668583664893446583351052591696087174129286948558343402931144426218050538883639245855251824462048100733613877407732170262704457011248683067049657510543864950750286665408585111969054021718031738028168587003791297034906333018799509168706472439140202784134450593604957210259418546229490726538776774446535405643374843075096065239849684771153216410409468017615302644051469792109576936756941598471639123956204624690789497097758332358430852721760624945841429339509370872279497651735924746382396907367454854124525089211376070856167758965364891716147054417833777867726306668685520957871348718612056725139884275241606025727836598996037557703155075405398567999559109502489045679495302978163414752399979126647244566716256751111825560893152192336313015083322438320616473682272655011793478271291929023254182754068880570576902569403857433757278856437694868434979420206350922858771494507498974214336774274083263924583873033618743575105399270333891237137511935800870723938762825904335081421002867982073181338558280760166703712109847839129122742751905163982670977620234068268065355732008252727180642498353942739381360068695847091722443014506866719288060461011959968077328754650377480310076441506217267725462379780964590878347903332921990427243193157265955191742988027878508411055582866371962215232567797813836721614256980348374847917407657687416083296257267309801487278540482813307720113574594856927776415167859569461534029735303086299092042611625394891465983594670985794279850506599701158318010483088949701834901150729031718664160883492378731574311357453714146862270478413449486428609548175166969530781217915650964388364387964426367021989956218710863422393998308972938417733114580170280191291730146016773419411080995748631122377548046106632299526048967490725398455616813205719580710865393971111773854626542009469566946665938875897672481279575133145596987636992604015047847760880807567036896122468535566250118868120708742824015665607034236532172329721450694009481750441841659055241067636635423843721815736200138347780913519551277255822511433239348399934379234889759731793359193900893994349235465189716358935125718797789736584459064846667604186984280798407148926729354175567296714698188148604401022879042120346639744687492554609459685987161059537938888693327827063932165031082132491434953088535452300185319908046154704558926694692957656762343192242069373499722999421731173648359680845800016061262579312664014030899067357366957684139684919734545671874364878731872501813987007827809161723626733983335752504082396353237204241417553846655977755737850640217420841419425244073870002929572431581511211600005588184560073876788809971179496700224816882690982842466628387050136104897802449132543773743927834770766806934853818255370746146003963702193938175909667328286138986450746565465382533373899615947965683843720361848243710050377156227142367483529502361941580745184562741159969512509706828392642466645403056369279043389465799756658803105143174211700355140854282745111316383327875487982023409982678524677442106759206890198849140008887113741920971505472498978620334725468056131024367931356979945688435128541149097491807703368627092143657301093790390457651176749069462338513393529627174407259880146096284162157161458464290479235442044245848285961311198177346078376868965766462487128529831761929260894281641128787468216613630663707021167541360964900108653324387632061301176375676095228452209142266303160050329261897598216034372069875943070247058662529321767037428553309798374481139349463634152695752378486445839071828255131535716476129511318104423182857599974788824690096228151785170220717858201582391146674141194048090866117839293119274035437229844372154120834708453804495877761559002491067920277288225886826741068932472767883145119437214735633821150183716161086927981255020668979207146693187616908738639119792274386189464611557123476159439396349485468928818909154986461701158753142248797717782449986980283649598277102361137491495883195743655228565040199343315852296686715285817831474345963667154489985105666398257259997066898836417463485499883679659927812163998115589362632502483219263135529654476676188485875968046042560972405720812750404780570885748303450391401293525108308041527249580886862930272252385342750371218803345036481378265513071722678487488361453560017241199515672101328327170504517052375917205785531153560054518959028491482635208094280565083958315406257472427027844689404856537485257113285829545904267892938037231498513900579185112436726345137656644973770417890277163847722896797061162782559155265001031288525548469440298992115702433626020445656318966642248548796350450801670437378634802953257304444820429599618594124469492794391239176752471874840316081602640726907137456137506369763687276784099409908416199171866815478761101618400469228615903628929500323144654833799416543256799615039149769761011832824214334500129785789207158804676796419135814888851449869723554386834778938492944780343798461037657851334520423478959648875489359980936393537165084203877214385613983932803039279876989335002212661778719738624356199184543088330209708255919828501497671408179601271655718432358314101655799623172469206021280560863555727267569558534521567234643085357196105860731710613941272045655210204047114498130252016039108982087983467172580801690103989272892598771331925583856657627282859450172588864821356316889258116384314586211338992238166075866045026536346960129113723244836226218001135598040600204762521546313662198647647382285755377692171996681848836799287885247842763140268164075374896902513733580241040100016708327972147989981057517916296201352009528321474823406554037776164543803919575579473743737465258910630840393554069720876704790594080624105392629327193605449184943435611160996347988142975961229897573130365420219530838443743873464896789199780684473994434345725271085269384491919892487363897670589482110390829469651596099486275143511977647645706373333777082206944808224684123596921023752850745408074477491518442312330717363766176629213261453216657372014248996288680893890918712113378932255442033500768177517011107635563328834021909004635448915772049182241866969778933915192556434705562963757930601656970433465314869167667257002420707005912094907294480847616368475975625349641179382197001314799762651646480702473207068703482802989592353016226940436838290810103227879775871571327328383441435038177409260404375448571285642241749823496315280069875726489710307566987967231719820407725866270256787429533757555326301840875583321494846895170902737462466918345549962285777681476986914259062177041772273534013804265513967242261523773682685267607857162145415358353419958341682710044174843280887411083228913006368003117357866359736950375510940217011587987317546776080566280390912765764730193262930066733505477388140301665568946436093239415180420756563603282970140911022010754874763174260919086949651559534097411244890850332268064592373008637708060278412188421538198183935965445742940514966619645563575753667469521877419300388488169685225565879087533078058958980896937968580370774304523478895799962117203972345479703019901870516861903253702577114578048912129678123543627369425979704128781204042222567882694030507648447553992727130344206702816377069418402918921644105406916826114467340549553805774737326774655187248196802619266455340145358703106873030861735092342496294250132712507613720228430296363990675918360720553891772787758831528754947954073627666595004090097683026958004942091231337021275776751738299828649490684459989224607303208750368372623000035309638275865671658429079310044152340633227790883167048866855643555432964055206041685227738414559328682503340449318096882957713425141839503135228133893324014251021992271546633654632228401219413573895221044340780469785204063687860898052539511638195526830590789190198501858719509113733174382677922390592542676258116071032341399475974532274223748498088250144548724332484728240550832795394886330210133963661035942454583196369937179552036923061235144782113507985891058579197055630802925409819848059689558464250201061629470428171402359970380397236897366511317718378623122328644454747198275771139168685298888547831849215516260318202109220476531142251869138656256486992297794062455038491769799300476105238186492884300278579807070938639057091398817204854478726561784114715851758934873485337386506157452732585562448557376986331829005938510920480986352705118709045162174923680345452524965310002050367874839547996175399090567389536835277157822238307352071545806539415284518003364978434004297225120176455179655249384321395851521811481739041275491523577344930697213092508293640582790143918318345292875370526007249392404579376713819709927729693090784682900135390096823322971597538966438623585115443107330222083730838501530452739665107811904185260007593230008648008605618219813155050258663330966643366408083888395657944304654823172771683308603033836821903536507051705196855011169680109146732468268452567474640326166979561492573213613023437253806633321978540471430266087100494228988264889839855457775952540944643346702868474910482400814170464891839374064591432654115568032279766637766277294699912564535910614756802859005458184258906153368863065783967014644924437266389839332127760805010989765486721321164830369676003161430473001984109755538479449623361430145071857599070879845674851743655641514473326432233971522201107197228787145504694670849174190574212909380111512535251882499408806109906819113404574420399982361197494290362870737417013952381759923476997287756111246211558958393354053647633054803570476337248936623478746442471095457130577013383373690440408188897849106782692049955102591937238457887536542819750499979382816698321700248593117080569478693919176195829429358484462380417565637818940434171759503433941066019867710154247302762945885646737261886269531836166123827458253813452147012504808465005640443142757258258795188484173827377546236735852335106014401498699475601442943904465869557846232732224359846205406965895504009828014561662106818599238669938373312363048720634596517083958568385320646092809654153666765249181955471485574033483453302433425705211699504493829054333347843059265621652385429599259658378250357330792110072118295604429048501382686322358239222152557648574113028505746314006258028818209982153936426209901916913224994660767936420646407875728145100476615529378917095331041253300320368448625417812785403225279626146199690609795749304898619798340322897378923962840837228408748754819880682606899127696467926016779964324436474257937431473118384140730883087968003293466512147093765287736444115902706139200073608586309560761784448539884752784492535978808642015412876305231623534108747536433631377121377228425268488756500697093743357715138761873078212689807719637791559322402549696474452715433563748373188422765326290546548099430808357708464092907841342582453089868548865770301275012838801755512945714365346354114921075139769799144794276079751706270422536367818387136234795580983496483519447119400297698988347540727504316398700081973269053985555843889235460404214089891924845682209772384496377743273171612071229511220281388025734853981804456758347711545394622129436205943997352209120979017705054755506226408324964370963046226835555708538898176523624293979732321415179493061718001582100004713330939168347148762220424523904018844744337312784401353006203518791755166310880381782361071855014262657666682694151040022445406319524285361857073325108353738006742845957361658883512023646301773811347247941843445375901965685782300985447357282171924705523690402504636098793709359189622090183529820016457508481933211388184220253709357229537155690838995604765902098178065754321127723978060760302512559603734654442015077783399179974395557067772553548871583046176960478233093868326362378981404513656547378082082232466723522403898039152613604281725811602293169452540708729070898530963984216642145192819886450136416032636519898291727404880528416953349248093027492419997791619211357272669127523609595398144016411226123839686388164811074920876312297850525563560696378017361355487585536249241659743791857424261541631256431160404314001085058729506656857004800810845764856349002172792854960234116633721252714215555013957316903276445973283593100067749687834515624725709779923694746822626013087044979074455749534362109174027951651361855483906477906379436386723652869122301280448003397709749115489265485824375742522388731096597610373039642488448896386593456074225703180316371540922848655604871089145371838727835586792262408866706419534051287407059081728350467380286711903100832727367780864936755893995126208425929452187367066425971268167931611718198439085891164197035183816898808630039489799093809887001888281613498420925384158841324731907422792378560451681812920099695691582046854158377940854171944442844038372933353304476980983661105381455715173133564246480720426283711187748660188542904992628989949186514985628442799763548751843352916116656601108199794431412687976195207504119180708811471113091367273754934208889040173770205999391760490749952709773500996111895791540822309728580719283838044728656967026502461905506195593451778704991545613786175274826349743885702714875644373522468221792467194926168186500439863179942512890635063148719542434064096407870326215913834203917958996349876978512016193234531468675513750598130176266714460980339479599267899632719494766240780743041085597141036511741700312408691956772145928588862651006407104609816716643353081260375369058391831305845784162435167130290471482054128045347977745649769900239283800283218388935925384468900569656052079438141180393412958602836664641620352854823997121231724973755339903729783877506137756810521388835728951363741460105435611476243231080240438843750037875261071792853526104519536544214284693988697843343904709477908645558746130135605440904764858460338069080607415123205452075930479070433671861708550335767857610841776684099140315263003456088138023514225788848754173960061775946801480756973303255549807584454081259181310382822044779388271415349890545595252535552707464424520653649669874662290155148340480344404185673859657741347413946376180391026681093233689960439257190411171271963647405891127581700747641684501365001863935655737001606452810231759402064546373433664859377373106048139320017130157311039432664259786773044155750091897590429421319016824586875391483308769644443533172274623191948598846638637140158098580655320054582109257102401799213425606626263215100304046368316278202536603222120570176301494419942548544054571073331027372447733599811274384360490454468221090922506677739710471832840972668490359510501090435499150109673646368029581562507980092458200864847556464312719554075518831973079253439700528816395861983668881321306972742443605846476119229811158801432184902178228587391760851146458644055908754881715102702449246956853135102281044931013894952886972347280674442382410086608387228389413303613188931583365737645219756784556965630405529566627836669835120476039037212871315125667003648544296101938705462161212154003818731339460374379748934580771878746365199235276711684806967120069681872044595107057344702563989625833051841692173445485547569792080104005737313670063909590998526090604623911581792672505733079453089957131287861666628944391792987191748932122607883749814350989551303472950271640618026894547983390717420304533258865875934862227794487553978892139611510784291089933638601322171909956374463112828992940961200571216818136291702362095656972763773195286611687860701227036005822245025489675017088330230987110495768462976818283560646447896067387208039586919981671076213042567666650189103325178468714798148155375723099498208545181113821641519850178598758879400397253091136740290127841003690849136264790464238588269895948626084880040616286294894872536055863253224618479472048348294847573776016285371251287996722690363241600618386664521237946088016827496694399080398101161006080014493002249730842305539082641367170272954288579144225620963503173404739823355520699979463584039501726602919102524132998804201790170828373825776387218739874570989322901339004754161923346713708309333472706361621097933701235255042257707325944293669704486101728288162294866264976290790005053174627914497938190573287147011725556607667639740139429413662483553728464085737622141290448570006604204552354900684660357499681623495898937085193714472919168988392361401161425317675021008077695692441943368314325882544973847159353486282345441506789614380116724987373709250439362634666299237061244316191129813616941522505278163994177339956188374204805381327325686935184342031594109240788724294135927566738726124893517752829564700376081321003060194357895039453343916840885472506654279244434862642156748411926075412863530559798757068618302690355579901218139191907030749537108467216143587531149389958147631739008169479595016435151347225691441315863880142117575343232403117386443943263008156236054407253761770147714039697467080044409712153488676498744258120158742471533142488625950204241845232436713555954091178663880760384246114456693615896237384763146454529018641416145442801555072195895501422994962573224515015136152475812006815488211407896521241237500490805528742623838113663521150310545531276282329705398225198900247254594095998035877643157445351315076428046484856994957161025165959321856881641908715247940883436987225609699671361533706045207592738717127232905271715151238404547519301727001938170140484517383939009318947060161362730558478818952640462261752875504306123121232385608399761953118981519613988235061165672048762553014848516507995053156003080602932090900960415376686081035076784619481222379487851308202359842513213093863593460512678546326719956221347190127186470309949764424870928378684803074723484023583595272667056148272116853542219791053431826313855049562605834778897447030452255341963480079744527140524443426717308828763684704625747928395745315188001992100404546688268033223732339128612555183454567254502766751454363726555768834418486579625993584843004199471793943099576845480965418443483105731170756446461168226766576113343828309906704510679980903972674993121973703513648825573026984077799987618721444775127039639057231060151185651242386164779710445548175869215366301141289694492521309146832121139824412616050468619401704412129280633159718544402185209511640154187526017047281489433849549868176730099650236526513438672170047003353023858011960043076212093966681850817619019768185806733706139505348662763020580253984480724751593288307523658874022717776603445859095030047977556124474464108050611302176409776260482034471182667187468900124919254479168559780292235637827841957452074986294591871807919174833814412465252120305121570931547057745967011662278734756887560664322632166791497974872350754627588426300635300350270872042413961563579184291346278505864295867384564279781801366139848443177462200314720104882091154597388748252659274456824894994833407800591577011564341748490684646751378384230588461029591518599330182606597925832996065353787219728798717819193764688158661391988324943026601867970235776773900680847172232693666803122477409879552033149508477449359974329246752886694014524346756955005735844062065571711252385707854741317594512820925087112263756016511049904789302200124415836536815029547994705119223000666720307346534583898127491795976059039148071644018956512096402195353135691498382918366076618781684840181460403425408251703668021194558826835241963109937195551929757634229601212329178447677575914345194700738681387004560587042653493583322888183304602678415700233426221096239295822308628375426157471046709750284692208524243649260371054667913613096487196473962095588399180566950500977467232089104403787887169104736544744691477467524347755569928211191636084906978174215809145264648742256503867149430661831450856240558966798987950531808331332912987489438542168598522153013801315729789870778521534394564073599897672665924890692754713010354428699630727848938028841161069503857483129304937322716353720642710506619678278522078868118211121901676151709447225136859607089812030279278574954120247594759018906715664512442841710646287722477784054569264185588835645407463807620603215897130784690690573941429600758181498588632035454983147217359793266757232571809079887237775294371889379072047301532115896726919237654953304436523490379270316540947118853703061406297233941059553065387355023529821560005039132304113985677829050373027594642130781530157833682099243014124922748171352073802049531773766597267952486480614466144470653183871618968122070707384234036463632396194810966430438194672166793291347309512715940835101801873687129467715793249037629648762669804775116818639317638217936456107216691652894890131434979304912489936001099160581774124229306735393016769880468174816907942169110853221651075335423934703888788752950148322961116158034017013678862419383241875064660712848548454684474071594841285390098716529227805864404172901407117969205367653171569321419069317601891684056964677377465394469896955224643852300618152552830316145301309383417598415489825773301674823487575702738201245624930166892570549327945324342042876694930381248529861825670990051944561947073811079069694673247748826579291951468207486310900662568242857900623526751332417634195520816885411755762375230367561189632735549338517054864498153874427329931104341640940450108049189275481023328215951085524633917209407167897832601028404734556641986800873991889546448278240545604104183498409670532320100425127902631504777378436234165421001798736757118226684584322069999166704584600280390844321928962254835531300274500317263586413958089852475238382029710984418750086967950823333305894959411727419531855103636050252815751797571386662931027370416907647100946280573165663029875735235492729817301747852532461069536866650695693537412419053777308043646051615034734120241637873961708427923649013719569730138901812415001202257934267926458031484986078251297613589967956235395653951814206279257308439080302120844332903037183963717949147454777682880030489613618552139543686741071357138628538805093275719705108672312601240625669875124674091707944310113390867780723036648693972900317319051808248819318620769240752767833507170831986014475766544589396595631542659459811028028987543024454465155539643292525496875315032379666911909214198455414212029921087710965143756980843486810926444897035360525073613905902724013170648127883562233555747975458509038105770003054831627716814021983573102936447528618197674157303532971886926673118481615854242128537227691206169197241308515029772005305796619552360472198766152120580761461866864444820925364661457211073107600035922868826463795064497522340377845182138475245935122234757037641410069402091351675933937103200457781096655775790638034052077068407748988199839891578927294240554711428357681786026980655164197138799879913569603767631232823610122170070440472768121650807002745076675890350371936793557522039396392189807637207546009428552204762924360524176355160484191127349350721827412704236976404883675425771749986222091316907026139800663040433307858845295092315943599456355736262460966934139616473410933648749605133987427085336056275349470192900720709101524176228092408303199875140631104932708955589060975755827347309229994897813810339932090810664543855812027952811256997400096652272432823367885016579779333412912225741108833444110935964031933423537221808510747988737163146513002085888663469361934736822383272483573307133625900936833443693127975240555979179524868861398609000456952069542263791829245626471679781684851011123855061402830408408634179594067578574926939545375825978804403871780005291863171312023193761969455139758876716570545618622789194098395896716038102356077115538579099722286859165218103919023260361763457228778507059742410362745463683394732173122781764375012783955994678464142869130337913474071785154013904312195984691247678606398020628800644125564067679544249741554034170377325412089481462701918585736268534033465604598880520204594430948575490160377463864622536840519225789476980644165368002249896935957958836450202847833603335001037718496502667017525585025558931307987617033582230762407455153654020188305414346270525021801070134809781873491645888388989954566967690871647639784568083362424985784350095530071896903520173443093306152177150294498090522421976761809832630026361003129608312177531394076530476406440560681739487736496780929324713571574354638787963850484858058897317006093598347212426356548416854734160473718303413118930360979581244074542334920604835135290314354545123707871683411589679744677969220433998078989019692176141134998821304859490620667505124254078049914818113070782235033268586737268038135763554719227853078565943403187406866646152165396269571658757181851397286234872660662454840874510436102179552507805312073135647016137945381387563989872888660723843822920120916361197028034721755113082135562812622901842603261353279267657361833517847879170915812235955953327247685828853459192636317219534467240836240605348671630815124746092086477540462677333571838084180108097329401553094707989617406080945728250183340324696941250983660180485179590944211250690903218354020109346163141199505232742684167874811932474952245400985243281903536858486111614598547579285402075741936364032160178621673210021431812688829536336156251467407454260949130930221848804400451806081182941861227519223576986086356537849045825537857755936524047977758142861385304709124078738720714671483123273659993926153959804685758436848295944213410931484032764153898139740454875592053997918679028958149431465388380497823657212683755365907433010244481955869663118636485210907622379591819001345984212125546189648587560264740058042503192923520900191691973055074493812999590476797036733890900392747327561174401371390232946264653163636798266350172801755181063723841840730929267400604976330326710945230813394688342871638714293902047869236833583235168431563749886938733493939937863147933819106653217739719098256293420672115048902689349506531944959810274751004256893871337746091036259084884519569671596264072849131842907374164495713353573503668992677777050792053806671931614671492566755764890270968086064391456133846143346100388433421014630069573465032774222702031607052281961026520457763198488465820634302893945615166610989400261995853896549847602218642146069002576463001898708040996314830995243721146430663741173957489094917684950949329105821366770915174498734216802253904356488706655908519328497960380759583040723791478608263114876059206933582880999081224636745453431884609681420423274392161503517546875076447375175565250405517475226784230311659709845990971324966551098852723799581764055783997877097601242375322635987377447153447458123106198539135995316534146058588161124706730902180998383843131876920293327598327300818661554103495803125137823184879741688386707806794923018415795362355017018894363071521902218148612319407598126984937777826583480591060803988737223817965140667038010108616187837400096094297824573426964825523420328766454419285892356926172540491321583201235416233256722179383453480190702614375109164407121151954016333195317650461508121138164701465964531846645419076325254328767945057135420622341106450008314745750424491595642882897240312876370113105617470952387213805866731853491857362862454131622106494468363921669975416785873932209931058372094180800146453186344704583643053560462857425744016085604605471652388256753180811197172407701281684667855172860622371117937576647280519064874177473391596908837761843089291841417480351637409500834804555331612220820341401013939723413947742690903346129787536338420574110227227379118595502466397888756728685006912240573016204320157605042864915946810414365241389271731065877394554412222617404085397302657241254368654300122455383833704315914584591506385454416986640757270513178949422315579785535666275155529447734822335621529054123565000830710603773721714850756436429602575853768166229463316811962981545664772165891660787376597466678331194190930878562635458708363726467401932061736295282021449513396618958589214838139284578881914343315963586813548282500663222260964022530299019040023014212603631626618572490675217902728441171788316426663141959261289632142912308226513314985641500098754067776383805061826278508367142156426036652060528950710714279648493802010801072817924290429840002417561386731853046677639354831295947269958087107065549416216674563960426475384390941790869648815297640177038470301181382426328942871934998591606007375133351317953451162071260029894380737316544300570484731524480059436997141255021475153313107314994357915081381432190161541784064893567161721064584568451770702472414012404503883105481782784199877758323148348222153187363155179119266489840643558327112525002373726226304101669968131925275911676105526788409378346654627030657036240742786508646796233586962944751061896130577880362477146122139735916324637670826186797800323781382770179394761695654023197006371940997468099480396492341586533398324799854330981361731601746044576925285716612434113159313217969861339781109317328717274198930339222947744346944945232487219089415357621185263863266656003633457511256167162892651968919608426014300068763937884580293170256622818480076510739643107714297763379551454224978613714086666255923811182828404368294574804356971652871600243643813123375240702388433886659595640166633922667890325375718563659694364509869378306015161241654745328002538606576540861796916408130583321697318273102003012516294487093485523601580821360481602835467075027513683108629336490508181196549829660868833426356982403555452510473450793126089993846681422654748637897125104825480246777070996194391716413345582475466914236141910448604250400562106327101045716535155366614581562335750757510050517489763546833030786555180817240948850647225048387645875483280882510828966700726386087655249554190766894015977786815240917678852626825433540488697611599978772513527174334456722452610815557654195622466902977226394648934321191764179860384086746923976800222692630652034375239657773242948850649827314386978983722733725561216712856515858438236311060511809299719543359807168224573423524496959780505677136378036329643066002726136941696986854038937049955272550420554734943846545258870045064688077350924283779467821652294217945021893883374626678830885627912221403462837248177157373072203222211992442640066271670841454101264461217054557494075917713654116423720472947378540341575401282044736020966537267612076697716738264836108875562704494233383833354434798169164901600387524348549736400634359892584748810914615166687549983513266284417931592033518145195757198922653591368328203778909870656959242473109518305856035730089895767413028522530335906791071002608833190887450619604972469452635360728040651009546279993279225449699543388763501703425627876556862231810469269346439324538128448111131660082003435737402627446664884675661386603927267299011741464877284712440338455732567719083833542648006879011600596965665090795921809077196047421143905251144386789698759330378802332561916856611913843532906138429618217688974584293234115289976592082907289678377549912858838297586034851606815240320324710340206064734081638935161558266804753399665888046919723986426865913340298873480923126713999417436402330752551838673004766051229106505175363027940947468721274083541671702372089954756351957267094642362373431862939755101187243816902695428606335075085491929589229874029411911927310810711919597652956654048949088151174651494537145186456012968974704193397280628578238170394762186943867337931276927035222591724912140179751426712354127592937631092211795368329771929306038343477857290530878052627363380426936999387986765233436075299860662558878728115239422682675729579519630907157288670400392788446091223126485867686081112805322158956939393372119907409344824180249691209494435192005427060227266622325287881651692152649543008505287697834792475199609178908267419054404891731134950390074663975812520802214204928180373504616210208463495289886259419480460324775665373943199150320256184585295902483905082198336871099060756234247143497488619955213186069721237492803101048646809749016789086515226884991817583782245472092288668276688620119021750853108414818812584417130478994080643153572421950455969026167520615051794541814765513026253189927055949802904261508751758603349972668761500112516934816070070728520014491937893224050568238637719991276795696332873506543735584840605749065990531033477515227477219599487590824222658387984337722437703296895298868872718907718411431170154022099522286500950489049115101737860728724969746913085568376961560907145619502508139627868855866349836043543856865999765473441285387632809382486643610517403156206063082809197176165738984445097124518604734879084693964765653645887749673727260813562085766984429039594685577831815269153913510907676860369284963909929359769172662178834977893396341512900979412433890563853687555094230007013485209289442329952571544362817546993706217615292880355859518140274325117488104874848917714823564831638250147374701915284078939562240439944883553373976269451004989683611913630738275671361470510999408822083740209581392826994694527979846833835757652947680873214360442343321253094060079877436846592764953293324882539112129871138008923266852892905551069641446180985393289044889238779169754342443111414337661300813951874708283492642768316331118022209359511859373527605087510700757194098156043967337169995897733771444343278120676081666558372829117836218941016800706776775581271100049229047450428194819453806802369862170044978203070444749740994072631211869913048947018869177420904324235462532881413435633616604642414378196828811747137661882423617438975649908330819775604983956036360962691444197415636946796352511191310221570590344465741095960131591131287112752854741339488162446240089665572100267174931576500057962276210742392585130031407989115226064176573339224202911027838976128979342799058799641712036393284659755520910740739907994078749391920665207259938851415529650496317987647418693502177204954989570352441937961342505973719657220472400275219943840934696636378452773528428824132864474949375965275463970248483781554804369699918091915095516460345333273805256322584017978466929640196008064476426556283509587247844308715490572709742470385449465709172305221119959211103119535316295120883510231711065749942172465849264135645648662765368427834048121294858168653880819787665080738268914709722909486280650843011331115159268243990820318991471881315271363097492391153904264536706484731557845731834971929574343383196530939883442125028101516173472624163088348157576556416887321276967891744282357610310846241494212304497885423889333982217525193243195933800762314981506264131353257924168959956799530063023078181043557955263345632462232025695951626784959993213030124156090133303340822613676676666922808877141835325740095583963491760853418684166947288070308786650556441976097873326057694459368685104929237084789157883165352982598039121291601695545539195532808585871969888027625588493711531559090297568909908175925403793961284364322063620899359417145589932112723748303903292387804597277850942908033037791001128875258975633264704251175074823472280640308060288575720533658055883347922259916576716662828917897843869572911815911459778188862059815756344513441188916527678756362370305160657059804098354895075000300424170156781588379807234442518470890925661730700547626767871726205155577837717582661012434540768622971430919548732967891990397106279776647275548864775827065841069506205969314126870499620347000426778691664574131961377784922916221242458761144523915582908465686590149051039393884199922415584092226991979492547734531477644127862379837424034535294587369355481307199287074585343407986932231095037928627367859389085111811080800327561043747418377127933333908417622614088869379909740320854715084457294244787988356686027224442334239224728352437774694412738582519619947962266687680138758481852226191351913353922854555116091487780299493315189637893147982786572143777116310854095792225898276801404009197671240700314576717141432218637172453648250194409405738845514996246033795886393689531879506705775025671412290329842176808628702193455508289222454744534210584533475005338724153863674147449578261816523766945755687322628124633376850201958757292612474037071491378427544679449439728403963691412712217494512476597675998275811920789605967241364308956379663766976999928696623024982514383667055508267322338102080673461769395062567388812856454770952942716650440381704717357321380465094542589051642713030500486165275797286201459016636351561094259034707382890798460329547101321988124442057902674145077075822883296906973299690837011718828067694663924707328152984948259254922412458552589192033041530801257584714579413003047370771162185485941275078396371613932108769256940512218353138623586406622204995886411095212771133465885990159678461368225957234958177264079244196133519795293441825718470570088838336429920016546653747978020280409877334947375593459872293038262240209320605460117515511215041038423736276941194956349526809669475992780142135565494473493113368386076739890612415509938337098059350918231409335896521195162195026906949389202604943758985239535571938609912022881918885380097581448283428537820112637759322048646802634998417069472960841807369350814824274582899860301596106456785550897402324437446717202595110879017649480735444012462620998630207605041245855628391902536045245457531409203636486646142161835391272082500352934464179547695886785514668834715067275941562667926157148683414907068878853705509486850024049484058285220240610790775094705890744022411310500170651379850294262982907659252870172360323933271559112302922927784805506301731530170504294189311238595556763732279607974702612434867812743503010235515189826347537900419962513306281523544029168678372985997887335661851705693542275067020795273563639066478105513057052394432194059893821450847099875948904155692949172142033623654001825512813755745892692163905901892991591237240472550278405886235136163574521969929638964953315671907004170028644720476411294511294965840226787072756941272082445255805294370725951333118486383446605063761337895787171391834359169815287232274166126438789968500283290906285155474814984035573367090261293180676279842751940683538915866176469705941073785885041715055681875446170880369154483783556574696237431895726578162350748520145791743694457232944788825857883157021072046423721723957534883565098858398792834585425085375951457855617926818174857601586283156034810971229864963298651568851403970045242316632981087015896759070420924262202635922672330893595488254247797575685617086084490589191978600363052266171940201864368050149948025493403099348685162515012152874165690859140853161601250651164430916889718450498568852130159662662680145771935963005820281258912770752945088785741781151300387846051691430370552814066632628882868127231767031343512196878182579781509307909833325251792974158041826350500836513195818468732369734083619754489919763585600343502101992331904665458571040165413859747955209211829160615496168453067283954028669975919799437777432864995343323157702061400503957493601655470033775440649678818115764596666695474653490920011460940888341344010667757791147924071495321023447484486092134153900809051774479792093980328252402540801245195097138395529391000244674503813925671043277116391475358380203629892323652338914150046693756032132893606952059434389317385532189493190822112463327959883849759518953826109755306486083838880851619157558218491813482717248739695782004743079390719187534797239676384036405413433799070140605726653104606733235787440187774031639415929609706393689890401417227679869526637727729598295848556481339609521675011920688013528958754581684792695982347448840720472651834519257130985357009333836144533936896061077731055766569311591292483719504564873606293314843364456588857371614099394804656450519077088131717049630740633983156529332883498355959085441476122932309872010201253686161306283481556070023363168512745947098587269363290403710996598198757695924248055814417649905385700813434037244557435515011775545876187542848826397571502839445388822048817038532533708355633157198986212260406133104571259961557594626367680345470668982104324875968100112739745407183477045698844531485154754723560543751244413992217748174742670382188755891147955247559587350393783859117528576219421575107731864997090563672620362739835922395493112098246509924905496249420812154191910906889859952106028783333062478086539070498144246414492267740480013439416059335100709602883622026979187596443732621356905855729919742506746258560326011137487233815859276568689339121817039921921965121765552978180724233620821540802690748202371554888045478032695254623578763532636286721793467695250891138649039533590370856763608052964084023880833470673694954297207604914138479723858977735126148869373174628860108353697772676226090492741980195725366612194852807480267465018906618817802129553381447362179201552909658628915780324689149593439735370764105473914748712107599158914462458324839654888104965064342230473418665095003300641940021555855374336095622611074814987530495316171857309530029095730463710064721852038193412761107571556901355005979416113010948565411689464149887349236427390137078625812399592580029999805295905624942533664356055183470191665102284624983609426756530341690051710393475888452691853858141125403423462159183329774164928858587521283247839127215271133517813033849645651901485373007785082872978567321616147719503774341776912529523145463860371901766623981662173451615980160299848259041502400188739251872012884428121772322108501819138970916157375576769574210126706710995933154990876487890696724868048456435884142796384682063011961523525279842789904334070619996501151797244419267810509309271042005765485631145944589567862437037784735114369377327718905988541516157138521605092838440885579173078163070175319531272153070872035764423497280617315686994109441745184856789766892088468482711099296642327796172683346518243673261725309861954236798817765439670522507373623389806064324219753147427666821388343864186315171396335250216365917441396180990641520612064280342036218598118467095861007638704594022198288681483647736960353448208000260573378252889920503759035280394295868547902103904901197608977225115969859035129962470925734998356976203896422473452674442333540289178958052184044276086657339571351153994440488577601439202870885868814657168570999787508181808970232079094550339772907544958820710897151295606107228559707434583641912301309437429579109552542627731654895827446693927654005500335958601637524143451210097637101997246290613105389521328040215963255715080205500199294205121150181415703235472441263312493974910361385942210630928001011037238328992029233431724248836988328402191321323366178412409001904540676310696912112918656882688493397395789704159991176029724902907480685724395960836593893408260905292757486215393893669929381759839925944604552996883719798913070986986674340174096714304309000178532343670113207568012702207442534872947623082033396643471020853538845969246478349379964774091532206380085126395302272930406521950802731732666467304384702753312766230879076750283757476403901024905527848397106611739179514725010688549551203060597984863739855990270708806155760340637166116628730994000025276817939558143931001672369391656009672789162484709707277649371526185255167387269683106008800424405321723507447697340169453742890692206418422841078579359859762993081301977130338220061742141989966107064948500642310939624828022187722781377324120354581554864424135364341628088029967886138310203910852557947913584922580773094749871174697521035866612252774866863890582959558784377727571514743395630990926092539051805415291093041460987361722681894037840635908962030757983498887431048439642033986896663483610349450121205932946025603839134035827930355145561120882203343620092102334621737880457250081219066473352666860895989990569867068862636813668764568439853371675803748226991310247677385506131598294909522493593305552659242945445763713203467594407170264437758839074991643879170299640439100990155805396087141253299437575925935596158189637943876131993213376887167749834572584408076333180966791361850621544645570924488351687920671701859314977256167872696480592923295113585909021718332337466034124326059613418319331738436106372908787875280177494262660330160960395667134836966493470077175871594039345100798054503692319482997533580549426112812490580289538966468100235674376327369959922090420637401736510789959086653671674750450944053100952001281454595913917671889178668210288576330215051051707496983849272095514169708522944748220925429276403971008013238106476444692479823922897431396569202788673307230895427867794268152653169743938168773311873895327725789876106457702244487488322515491365875938637616950022070057865060046854518088297897495237130052719057217176377148989208820575501186226916515644095984992044854240310546899396596690657139213324582491200904029796024512154386382312070792018206430677482101321511699120471096734921769470109079811911895349799100617555415620095611084618155691240551584082372249647102546685753510860569115770416988425090266211593556842967506918156847491890309886774593778357127616098961834518376502968020110162754096250050281345129612663384562101180288174653366824849884045984515505654844695646789016619562326957538333989501649046983223010838017755944170920799520414323767313809271191980295683031739089165921930215052340095846265864748249580888272206797727774335666359620231040194732821672046320317213898016206081263194302804159080450597438805092726454483958521875336384770689662492049165347584052794801773479084420267622793283139518052455487522976055923107848870511238761977965153116547222122630974685370052864251118662416421551021419843122849519457015616172040710418843228789315905390421040759731894106205893014365602579605860175183095854842246571527897212011235689744932573366515383279088807777942013564231510952380555712948619841587138421591116898272647363370519672680142309310097012999468590074703893828724569060633132832790302179889702350309124511967147618002394195670330662226546645231204124115664392813539756961616163733374519811917021489190906304247284840435366062030092829050114533675972523928894132202316891166823648929157709053930738518596318181719391653395808073590184194347150081708013964777415508286800877138135882679033173853639063757342347814560964988615528522711368381437489741638206438137062388365170420307430673078788502328900466622169178849121313946625269196869462364729445641597524833148825113431731017388447904149293274856363239814730187480061140898360250778378270995549096711894632387872019096043871715276274709035540497081255468101717388038100852494773536634635992580014157426517821363356690678552732016512872116514959079939510065831529061258250246993168077980765855223997126235741294734152784498225962462389049765204110161050665809198237653670475397658384692272803331909566129056360127435801940605844145831217461419137618081350023575618983645525250111206305874112175917049482839154752578230330187613171712428562257482471354720247846012950946966446072221729934638478095938563719061144507204461475473029883909394105514567946267394765990648577581459443383856651644329245474653039885297173260558192226979126309852984988149274987452862773299571276114832414169117413726715821395698170254055725377317276023626847523934333578021101056803522049371935842166224157255940920943545760408408151273023732377782532485265771755059317440610491392942508602571990229852955242051641709052288298539961597826651532210951784840763875081358122118979167758000138272448286634794769504835518043153223096139415162673459925012177746590091960783422482431741476761513496567892121157885642763367053475972020769496690551510639189201827927009381989107706881258254960741566526996409993613248698891089721812532449826958876060499579341416121005899422637306234044973135903282574185824380355723536192777612696051339801050295273484066662357748581150314000662475097980376425839190877012682831948498596032163887134272247545341883435002769895982796074943344636204587370074279220128876535550948122413365225140720969637096021820584180381666640973144019522381478516303575572495034116163268386352017618787785697844675025587063664440439495221304658357983076603708321941010756047194070676675712337101632514566838249015850611076388041263431848023117422949597564610890891374957822950179952462100075899398508021799869467923501680109178981630895860843312119954699005670731222099521869406078851562889038174690072648299476772828048742576493669120741055439104752751774200098233509883890657764074508584686340802572951968099232965455319847781050806195887393743689744984915420523669302803366620087972862257635400899214535443672883840586152316883307572885401617789374595177469622291167380965351715714762812306695275761337546659990622506975153295089909427811851508972357465996995337507714499654816380337975594382204276492335598256142689796335692549040517980627969531455693301025440601727444928854868122101225767894530655700921534174567545864252596490058435899198278984826363259815577495847820462310422449324414080683825031130885720324605130411758758453122607775638278143501169450786600951425115303762089718979891041146133323335171527356170543542900874127390056701709552272676236898808760910008475875781532217834726364028671712326216488400538448354863532574726036010047065131434056337036985577356063221647037918623866459689243920687024389093374896526978341266781371544977448706237267066339841036667308739916198411696023205778356223358248918715191802781917302816109468043627627610304518494437366469209324015425834043174414024854702608283382285835616566393163921891238089160728433532456013862628727749055376699965175471583527425068641506555513486470358853628865519944394841633669699314913790886798675775410860966963403604542919000296859574240226657806888871992334846904731149805537746522767942495890274980662184099055880130471565209652533096371284152913662451427286548769750582916090623224965788496702765090623408218441230110693924083208297737325385077502390142275038915905480648303205532511714770189627274269502809861853551706369995687854290743399431771320201264568734869906700176531917762888664708701108170968430874717332503633169239326390280160960380514396714858756587762746931802941874697695033241524346521800557019824452998107574493836353848318953490201248989068038164898065702887652922416855547743223690022973577357871716389556812359151783303200157356015347868346311120516468353967605040995534617156326051474071544246595054045740756510485360654768384238866261313345954298444678982282133070302982990730529032083166779654278166501625444391208551232605800227235987553887647040856333467061157869450241331123971270587659844201203324849820823064572141748448791178861402604858611907133363322387269400255414066172450355081900331689429547477194974455849197874661624542398168860162536284215818096134533459036151938291190343674116771660643475788360885440882591291621471612212590620916069366460248004346764025634362465043252011122604168079142688860585943477210734897366436237638935101128044786937557087251995813875884722567786403233355616738506688787682969932017963181931722017365756449044870294456167404446502687205578765778433685015710397851438999536481948634617007679537125708638439021882316713778650913417747346373343048192807318461617933960863631179286365026814020169186684981512550481406293742195230122926540423375683429327428977725432614310093284459665801172645791259524924703764588894267635392161145768578228790416362070694526284371738527268635582008599302233898775173025282537360770644617864668913505799014027320422694480412903933398063222020501885397881653510010041490638892665239106273898620044587195283077899171305895756758986832426465042787903513321234453172423776461357992894480532564974196233884597197941251742802042625290080324445826033475587403527343240874977831988443525666405515872431161344300633537984797583293172935047824263659022510711500025646556463790017621033257795136611131398773562691990696002919996544614797667017291615897914895003910441219789350798448782930851138152360342821999280587457535004675281252343302511653603408862274405628299179351462756548866251311651276629926716813482593328455188192408809318158535891776025247866390491355840026305941317868876828559423093466759575433006168978315028541411032397478066392711469180993181483666169033331812828063800033062511904860375557554013287203214593585330189911037062884615138409458229390211137225601793717401477114760122361573470727917369336539662933271031135771875698420070420849105229148435673566992363054370112323079468653918946277770065310980663519786285051858991193999098748158154096565631481682274431193552287718825107743837594929427818418015650166471823494541185182944199026078140322535250892647295043354532275501361182025751648406757571340277464968018321185933031893892413898555027538134993674789139738905358247294392691234518912503168599204871531367088190602914141552293101303389513718344496732579138146782643200673214164410965908337793315904138021136604363928550526574697752936280056275464893070553958600468743827502587980779922988123158702704848965388070608593760918279592996358322342592372649498119311272989288526703958721213530264272950629093667583607646139103129163617759580759635847725228226390647819188133863753202431072802174841161651858928469866517757907602132625712659637599066499656637702797922899633994923502236730182947168006490755822888684572469943401185294002270767718871674413535437546788839003296473538591043000240689700587900644448575991063473471642714074225133689742346002051853249614068820074713580299469729689498640082933419237038768867519979964771235788389414356803224516396769273340249743764062652767382579864219513306302544523772671355548126483177269760056449393472596670430970917878333034334240427483399520096943455288955703099720574894096032736632509358064538841446091594463544896309210144546682810229419374168916546014947614835825154810938876821239295215257862671892095723884639468352474924112594246520944499547286935979216541023758495998075862407329117055883856949265488339641794142945792298760810127129349635303967564692552743213362561935991640569388045140173840209402923201739994672253788353626923297682508676219337077010405645995385617741424188337579507765451363987474239996262259591401642043360308076052415810672939884384198532514447419656196670310075375364564883055460029853574166465221564156406936992670483827171585165231627020764115621666989627051104467854320211953833792468624074961349957882741263487167314310292519090136666261693891622981629592475193653578046029302089773344689088443933607469766145821683911228536762566072317073283179565772540745642205680812626823903830966519038364015397041377934576831300253024819202455324482950280041251906775252557049653688788082016807718443440641985622357134341190255863627362059095824684459906364920942102607010988919211585912234520827708033018636132325406659711031622346359617351636361710563830204420242666704790566117833681158702828517429403170538501894788424606980282544157324388846660270147968706674482976185949113601940574674165652051628864448069498906259451377832704114738197777095949596323080901396583449641583679740974655973816462727413164888785546546289582415220052268374641054712275664325430238635263610800458347551632136455909224815045704192608553536779790508471032001601972966000243533145661772384605634706855686218499864570824487964125577647470428810666089238637487151397786369612694493076017266854560566907702188190676902859683976895111298680840011494763237600446608329668279537491063005930409316832977569862908307411702738820880475179428167482812079925183590181321179130733968845419581982265654499714691846823066107912457497885136773811980857924946706030830579211557599524356962845406614524067075547265357239082877050393762735765831130591126480767522871872101462708861150789683132068201342740534203745952945772517649065963504837946098524112139893577468614685981257921559869897679612837782403325130358359988272660681388750783097099190483601043019276555840613713541665990494321818636124254442932059735220976989116929873132638736442314663255833339916341897358509854729908428610735968222240104918083906901852599954202381095505359238240096129520788366512216085907310184642206339681192728218277546965115435655838369593087342426584177159714673765391826302455099828473862519871393619818214850269108059067016142523541931658546560921276089470777963887346378101191907311183321220379104604424526217859317989756304115284908635979787159434681021601854809363553256462580264077294926087743272429100362180873337350087593801875908638667954614707911224482994827452690761971621834385253708854352949606738064803051596837501022122621813059901635309683896943636641148512035510530388224340744533615635082997320512983020692654549611711029254552746963951581905938532257418651816659024211116224671087539627929199628312115207707726929935675388164000704064398227748785475630759398695112847567455808555718678767672466856023676961272480717377706585803283065555636517701574693328422114566934519064234666654286160900943916768068772174185508830737399010792119044016012640302338045072272677367717654124386244086860743021094962754828109246827303854746127148508880155657262771785781509443663376146664129872609659191499131752260957733545736173847575117717198919344089918872921773937104408496643790246527599291601969509141415989773110234869956593475026305638803707277969724722805061726819728973762645073119931009636908330786500805619390487057331292052334668862315140754392110366180688838486306906435348584410586163193419075317854284947283833085363345968196757919085232594636484082225741492221643347388972191902892830259833777533347384157228155956448172347205384380549585717280902906550842787578051941100774744286214585688480581576283080304120814919785020830540103850048306344501755542501003918167645022210247471693188295984466352691704647981716179777138498206906522274041472159985783895604188517416268424514630320118302722889672536677988188347023473382610201614224832039468431241887457161858592108475915952579878381047877998557712996807573043951568709874246289195700292492914252520207747170383171549010514345099961728306519014419753569724380044037934134872281822915035089453095865709561651700191591991706814461857798845686187293342787972573485114600407218724387428477955331080324032454085337268723892153113971061364677870848751102446116052636468427321806955996521323437346757245534022976797523732369019822921179578418542122532584881644988314316860597368545201960989443665417936867101769694260728203499034418155284430022748517157722928547895614326919054818784727200999329299299534053164827378210575325195545545201912223425098746157867087891211981487714473283101732006053093265852224766821574275653563291635901905640775415467359993164615004686121436341855163853065405203488506744936654525674249180192806628495875457497413573217186293975689652307040871914615193623688780370002919587797573901808401139062612647564490225009549791699007513315096129900946025464938228483047285762817016936532111452726028812628147089965279810349943596462426766833823916497097008380430138377967066574823835880120984638901581843325854633777210371605170789369403144694900191408925248674555482219439555299264529517232694820748741909188079064032864034014454898369739150207090009497156473221732656708983677903627451467120195495434592941824230759741635301087912151538630279817139517600869427263651492159170538536752758773683373509634769264250213930004418133848372535050496294122610940593139113759015738852929525851499826649350187152179814304896235262039534189202036101132466783282463394346259283386683225768992603473265840988205935511526999093911916812220179611654457246716884626721296327322597349819670488310392852162474314804565619739078374254913075841369201391977096772296541415201001339011503718372850640300842825623297413544192335001551298008325851378686505952089178320492001428835157935436234663969147546485575764721473708211874247239027206596118663823149718689017701687319701238426188706193374331560082833778873252715217358328984730156341896931958172191499694891162976205295390707919336808942751102962496693391095462481003327079942605279160917725815791527696293686933291316254188700569049362783999079425518458106095217320709615549919586068189024791581516616110225842898228654891983952569952557363708611332475881601629695186062916281608247245303359941139387984710460289719300644976664618421118619230623419300377041948598426793704144150267682301222073570812484712161837020170566129755302693422125045731582857091456623148512741698418860314213403679966666844555330991086339610057546614730800714951422988922996142027238370398054369387618990761939837946392455025963740305654260675019874421764418118023305567716498352162239797588286072731092285980091862348336345361653300443809279345748521049951599486829017940891062166209892207602377041146676307136032747598724229424025901396201360546379854050901136993643114930378499544456579027953548037640719562537005433428584699656905143637982389457406409226890092049610501347867077961087374603054649164059963604823364340218731321536292541619578779453053790292086306431091144380424655001968729519462011463976847912376263661214342721160206603342740230752765268739081363294702255710515953751040566723862851453249383450518269720445620756743918489275267107366250074135885750450552547233437158691705021856335129579234735117583602132523424739885865934586775880055523865399546841698303993273305702361770536955612283918274182184889633352564088393394235348173699354467139518974005183743740808220678633018948679494018128809407417002443299627122211541388954642108561364647239206952111905943491664487419966158737910150332764590221962628896295683732990421319678896000356683850582889801994011190286203024019412814089993971097526796033019723640437796076330381611386046709549121314923839569901833161131650001700755195773058339452382360631275820553316412371038104791943213423969253343784066526093203699127671668716150490902862872233525674264125476836890263318616873866870781270051377414732872447824689359465420163370891591718802076584535363896352589694202179207067405620511177799469236066899711536057720911742041889364564321210512100651527924692054025770033648908879832456203723416422853157539747465716288209166535167469272571227987337364542920790116880258250101508250345895060046054173461666893311987737196922559308445784031252265557086423350306281967120034119542017225989512579227856822117582141639989439683179757020329428327317519084854005731573890580661462997450426841389081636880967302232159070231393567181456703417452264944564878190253140121432989932923203583121094459496848930254076305819661472097879526898080212343269900266397250887841355127867414218907184497994445266289079626140387050875276390659139324783682716789004532714569859561335450470852914203447973792181635565816959534737125135113891488242150644538431483452519461511130513557970839660068740557616255815767585149520151715891401328567469997138968928978651537955446220504505867307748791197499926933620426113014296831512736282244003031496081835414247238614160195920698107113805813343587987656516747661769952941081206533641778830920181112785771442388079165104535619798735992525219562583187806699166723179037465609633941096739102836037556326028336364531733143968129426641454034909173625407968319418284144845694771019193904386432544357853575493392164953710451947677801185865178145306499434226206270422949733180554408657847679075965500911442812607251591425452855943686880673838452211832415939307671058014659526312078493423835650891469211659443657875867347955176088317356930633561262373403353146060488242288401346456958560041174976308691284426230329448973381017811240974984179207072436060782916682135813221483667219626575248499758609858873428287560161011315496258174644611134475156451560513676193700642074394891800196616794067890238957316272994623321931943423680388673927207999157816787636978043959606234189190916461290313023330901164582442036918495945165217313478870133888891326385754293238289520010326098046753348724508938482917559836255932117618449279452025663816015001610108751727376507991659936099073680422805430642604079422312819706287424748891926266091960690051001864794668119215795297772270091860625688962043713197631781352044979288669492457183962663003340380096795838035962297557115175475171881152710285699605459656165514024546042793655739687034425200257318235398090132490692143647067519799695739846624076023778402011360857975370776918757851457622510676038841472413425727581376272324984133472034093358245489671386597842752923605467988345195876607102119660357469274894669084714004939765332880560307503391994045949105071951868981613420428895915575182264343359103894280212088340956114132029255115789468194483955172927536595559964348639656091134819336425478945992172230757097424725684027876860643062079851213664488460348788377447880870290519569381769857252858376935025176910559867320377958108088685691296517978988721168314818756679177688184265080135248544359954953897465724611389031087086676068097116297189028165663232454684448665465254641673968304888924649208101308076287734448811005477235419898682640945433440979414834286303186816266438053554543610352958081251725708522379247995000055832507174226127346973414322862812893123998156643408176014827062497607814843278636122374302766455837307067368344700100854310910605264865798763044277712158238073104353266349495052792178504711051156724364893554694359316823285386517282968345636723417001833350487078347827683584844643577113342368216995489542194139098309265188320302353977326693859076969715487049860003883540127851342216506396572324722039565905452250779575596428759218057461222307220368462272048003990675891105133738684328968879849279592455377513326748436972685274501761833983405590864701733426877457450879461841655391981008973205569074475528986558974791473600470589743370681647714078234055637882891993623696042079255120133889931511903901387866719002491910533703319056301102656641197846375945697758684013773101239294977823977553686201459037157718262801255719661960154245931572226944346382091534137119571591563240907657330491661858966895607036550897350966579886015951322196346731111213673050433091523593731850725429015743560688444014919725123670139286643529826728647010315174745897526934886427604599006822532729497778235954931243466564091988592449061484366845459744029481569117401260280724866572721280705911617559894292603974788568865067954194970994365640462329671112225501381956776514881204968404952744495263651311297546941582924559095536168441308719783049208274916225505876626553083981337868096248843801619617767292953559123582137728860970345709450256194106697481077976529543281658826549627401252413066534228241498040832096153442784890111492594523461671891328999730444240786098593387380516717804730199196750287913511224381423989692102200755080720097247446064199203175366686104452781210900950373843103427408630117765836898034731834997990505241625832227392415799486914302023033447309259958838574671489659719785954593973825304447756944979376821876910617532894343447207841876069933242274651878374520241129854057441900770384535018110527374656958415214572095565574424559517503197471527023250695470405041429977422931824673119549315332505119919484922420219174757797634898434738602523617097394058195996392019526858927570200240540879900208997432157391995621084961679106360845747341203715487585970710423692909517465730414311625789142446001404824697788575820354724647485269519652313589139605074080523456430465180903316117882213159536128607692987737821900307862195432645927367551955194249276391809561291628540746883950067821935259231384896869728690322265598338550924995412667241679643505414744605656434493160573945865410830494382812116887844736352076864074454871367696033530012909991899406347249637783388963902298744830911862954618914637336846983602086869714827501396024227468745383266721025041227591916429118296977019085675966749338340838293722445510556346269006975743623906543251891461142201109768174263354072588684521253580275634602754804307490444376824842374413868259059572876497967781547387648557478185286301214685604460797882215010910534215593308463118754459167955035965413597555364898205873429201203385215201309909792567819671181457086201642453467619129519756869862676644527733427775723396495133828149224834012693969823783882450100031204723452286408990776996706122177877111483835184167234207825847329744190729850331372306401388862044123366230631569527474822461798914996102701629824632445580256900811965663785282014954265133101185082444001399036753455293764094426454781586224342193016590565408829754516845439742098033277718306599048055631235359936943286592416389784304334313988591319770705784907825696940434502694014035835626959960158709031192823230661922459965886858108884461985187126283013501576582855718802587210378885131353033815126355433407830385796665032788075140842757610618136266434918273340560510839571543266937152461402124156735178864789123117485852811889415974093714018894233213870147542599800489585563368072544372559042990388980034370007055481439410769513703864555749419022955436018219060514465036552776255781318342508950016075385886063963323724312141959810938045779265886666127270139597118281489554881565304670527980291643657743027299239636596622611008044733438480035404912078524429405042468739215228253100691956175463000117612814776389820583600327021664168734174445433958555550106893667905856548760362097647442875794788755237976234191324422341321768908254047553256883236697820448301569706709606311630987656022774543543331764882477196566088680882224371466867878816564520712907334614853968510389195875049424432910759112833500820862574093682612402166113234080062658645440957357010181990691868990023830783992525372622414601558959328357837582995183352756353630579509051758179217295883470865804374876057716168895042718104895036481243258336728493593164536193833866348639045902574750998677035678596866891376720554687475937474874692244938715104993782386785549162576355843826370566493370845039988808939744035908348591093403656124109264452150715269893453385600067162449226133766075864097626018248410883964251590580470130848971061655872615377428185996052050183993999155756435583670650324432668386216608734006170475063231617885886829852116654550393516048338553266139455877442689933697321175532343115404115628087392039992198420390133059900894414143701157031931126169679624414953437029813202420852687792908911892327894164495770026949026375918766348129983132341955884929472807683325837627209621237066188062541514433491856125687761432598341124166963822857556479830284660655689289165396071799643394572262540049734162962264714197047528835160761889156831864363720018222812557980463133870613373785071232198458240664827281603909399244782368363540534478098369501509705408626322430877282826410571938682109849534981081731995959499005512268533968203012385131779611862277071398999269931592725501935772781445597739825434412636091871389453400569868856805907254917186384417370202139798090719842973338899299964377396252071933546988492884342864785467537213499978442779184098839999774620714764719461483216555697488311652278596096374297345982409005425051613166473631477394201913970455375342826215073347411216031535770199092884888025313250901570612099334718635699818112710050340320852167759395516867424864319865055074868490059627102036038196833685429915391619451169518014561594819802275419916207506121090529363361012128820987849755854304205286639948569730272312523847383789705432023113928135476248929700188304108131252722291652727752146434743103593345215746648938181879853578103628333835585854813325031037849951245877912051805681230572974467766489024382043106594553666407963144794392856380465110247795366789443632492662648987654978148787567403459391588279161606146054914999058409923979503767290367225872252211292600390182463479094401742443598956365028790431831328138419841854352516396303669814461451541805608468923245828307732603823342883138766777161444424886923869702391075799092410397093208725392055776969637987705971535468816991320327720215874201706939386736782873662982560496506359591142959915209827199261835989969182202873006165071054226784951667028665476570537781637845718525882570217428926152054926193389616081389277128005113751305171298648186114182189243518023651227334634326394122717169441928726239370477495769726201813595846939694754235560480854367631112911934804419681606771267958726191269784742265417270477053767000446856672788965643145648123287212646548065762425623083366573744284839405449320522536235870423656130582452769191334336636058915151476915706295037353201546683806305197329101646126074490930527905498601002744789997576154069436438498832958929708077956482444643579121806530147932713685109388146717273913560819112679674252210739016556644689684289971304979396068784955367652591046049742621826541093759931985729929041038413682365393828574881743578236251251740086236871525076740223617498165920895310394000768077973987444888239419703890633814892945169427210279470896789359862447684457752133521314882425469468192328157091420327932089423516641829687659330894432521257488831415634830994596388031974855542328543463787496835750042664728695765180557578418264161474528365527742306516194777204863142768125553208781142106866408239656507232066821398963472698312061786573134928349741883844904376037079903250641850952628292541576109675742688886246221314700520583393735476099524751143902294347430485555933359167328440331240859517612230333860011907635274158954145038558747055243182618073166109089886460589746433846281635291295337844254395639367075939822373158981638434163199609470546434420089909828820640013471236585728227116423595529265047033111557679409026212337547192133332468298752275365711165139468770704167961054488076158872643395852292841089962693381403110847388308025460362864513977323138188584527115119259249154297653451589845196995505691645843372792386495562904823531365196565309900631573031338371838878979223496090204702875222777238930863227016517115917303752853127124953452979011665225845035202225025067643388323528605017030951719638319739292618922205756078346429445974619979820654719963616501088888244093295779075765942681364303879256812499667152912698319669723124511357506959273926855096688306447957529589354748759868230425007708280692479036395102282903552371525140677276449611992907339109562050715318727337496764555877092591453214494606672213142777610585633743353739956865459018685232185592063104884791412361911762992182005957502989243890855539856276762092928922599612633449148996759969665103684509640501065447638752196417102005969543266859737085870430515941021750669583227809833290196182763553933620642746297466918925313791195613223288955361130354239364290879366122900419232101299194469328495411910991277469763213399218066225337120329883233351583583358361536364025819922258985406738418936554128454475265672742448660943959232192097834424538503902984491424028343457582465506679340478370081783965763655704461616874152145791736162643681075056510632783625683927247807908594279894776049196294078587651998008750308233828597529724368739514589884197573586911527675168722694308559459141971843033607366180224534417540982596450256073749234843707402514718851740363697869680083820475940962762691336789085740077686325442266237342010001622526771051398333975477711318020253560053410897209669931927411832946020819155077216136806176229456519494379402458912812266746262493481414724864507042495425345427744920170551527485027935959329769911761284843814555143611752721750100535440092544168050309894451415198091854365469666921637274699900916022901863657943874959171008161100562888497653880154552237302573242246475776355101499330544030430085181870529385844603723071530868384057274422387105067738417277332438643136121887713118367802030858977088026065523014442948955803524558753125655188592733061655290751116427334169630107036841403358201523833653376123209304312270533449755850825141648106984732886954977132113221536261658894408256087441747953047873827997517758300276360167761166980296120610620121183378344218689934952608485564594725155821948178568797442006611962983596171765824670742550847421916384212068216160529939986069517864635225567317178078794059349620641914404229910711793975657780839819325417902099091340572210385934777327537859790532266283843979456483750524167486823142236942483133477084311710166325182799049051479692863377947765340551785760763073278432188305356853397988343345590629265594428787441833617192079585911936067088439527923708015748990413586049085521069174305058430400688096846794104660209094240115756113208597480757397562711615715747878021971257780617515223640621713190308921172455385695549031509109602477148798098363256059272003297268669876515118113957970138875290965996511771316493988736651957454216341348331399688111253091409223797758972333425294838019643003009164601797381034185125285713503276754279207593783748583881808212343238603303831285521490601237366872020073284756001154323752227912351185590362676768597553026705605436012473392907682521514446793740540779987573582927094335189417467197440187619123923110636445403773574848992773864957617623092096665297053120548240634675702405036886153382871026326629875713111729404417557808221363834626569601153492643968304481274398179946810621118491418757594046255575856537790370699003275583075009091280461929111046262030038662882560616473031972792437015522140043437438934917252016922445175410219060346564125021773294829765567315511569617130877300701169798895396590862982183845688632482510347083306407432122207544297665088902162008786649959776679584989394524990986243363541900816490598550892900737058759123892808759852763953527893444954355112025734882289111711492182346364602194094442571737971667254680507348288109130909837423676189403289306090097599379538423829596112757637535355096125453636997671935603247427750582908459862960183188925393635201712488384177025074656902812109104837872710837065493951706290179441779202186117440545211124512035766249335660370824000982302088264542573845140250359767315039043047810298773639175246719869574808500499438363886936756060374387745811732663523209242530903050871558575916276379799622448637411579137584507643813154666762719832180024997556095846131740591912413029048271697601808571327167411600203482641205077704068846934273661884552136992046421825022201543580625879336899909063048855960350012932137952060528464959178245428627149542344194749946677047550540808581110741544260270946585175806704343345206227462246053723967345603565621872176998604496937233931753512046583179498780340431557929154662668629960335676870520742966724518194391761469534464898279726613611575887780417379363481618724731197771573715931708125075181876224385174633941996634708983277391684312271394131090297680606834439739344124561293921147167963921524541172584867878200197549414805317444880938347174615825136302234764791514271541330016471173928150360770953661733637208775215999196258774769038528381807378962462179882346311160875391670660645387615101700102959858086434513259301563489401328872277520607717653557116070566583604073932750678205766323216585872715973958240573514005238217353515259774196824958372392957634495132284014548830413165120710066034305328018648137078570197054863331737294072383905442517200090477095797044979453876729426920128234261452437119888799624289227621226493230466885628091913386567317674133595771467252005324409529357300754815516262583701339820038711836795673620357254417047580193948606202209967252955254164813493493858714833470269624056035997643437069299324424251192594195492075187142240246932842557882252968231440576955798759635915536021892175573340633765736441094659438574016689540545491467945984749090576861481602515086776169350651604095603691082413916002795862971895378208385070788670542143289761053225546752481216319777075395535246806482569130450228501345323546250226908278600340233906508385091538333582383426744788502475014498042150912871972686440116920064011856450883846527333561458296281430638775412490904476827747386106378600788334085938412134460535662076936900737258710271049043103761384577819348364867746739734180868018263294271592550246119643975165539460155216647241530976446368873059126538625208745541625213073532260604560095784621624690808531783171243384562738670585739829068239488336451311686155098308357797338808037107654467574575260448023321446338197035430921909828322024683875606679785547474346245021705274732771773393582791411793837962892536890595672810816461428788225589202027249028442736322648020871805807873238092628381341848746083382526491004644463247167411323174790525022076300793456056613529630401517222367853777268832736603075231416481174541443804474405593496702461964345109927863761175336485090020727455475380148638336883998344441117061932727401200224124884455074706606906223676469074038067080755492501987904684364995016647776986547311863842906941417782620901204444358399164579437599091371887464459927260703608118442045439308366452490268925013989762130595886284926182083230704567065176207422520002858872312614332824573925603997465046717426483716032274579006096850886742878555616811990709939841554284111489199614671278713109938639121265838617359476064693988158697380562323447742059371399632920513151200535433560775908443084068414139961946675751488144161144944576299719790018752807314354100892315537715224722656781691129762714924196542281042765839642768483989739793051319963275081054266892566766086533193363918727427829857735314288239441229648568562394335211068137094085573679529616916523755149841687209635192863794305929525587378284497490387335634339561963577688081673114502503947437553448320058128454168700447686290922540413019905995399817921415193161979920346502330363237065173535957128314764950109954543550504929291900096567342613307061409033447601202635135750216079330185105277501584658069040283295861365293916252206917173830617734218099182360157460756114358435628754975049365391572601086120485207184544148923117297815942453812526834077669812479433824672753889659147181795069412637795670709432042276988084048105715217919612483038862913855853213944557298257773873968133574515952989159620896366296644580180370431557426309913327307502498097631386661745958965543309376806778716493442641133636674298791918251439064301124131882812943983300581834685041700332959246204623331660439090833128834014526657768479755062202584732845711604053220218154727735650270280446740622573291577715847471226804598576735337830801187574111209030992043306531172126854158863107665804612151251150672580099444065676667274721408531267156188638431130715880438073548204444795225823014787916731252147202983783088677763487007417781478227016026290235535846512743879836839419397966716798153983919844316358505242231898942781302910070534957689809391946649379971870610934899611245004781310881283109977136501700923288533259997743212095573568835492464971843399617075452452153754456000997421209773670455588025964513683688591861783150211417775569807409471727435081216430597693560213585361364255120132214001728142365331225195944855937189401594194517576798722701761671737670983958360856592953185095694207103217045106851584665174424119855825852809329256287113920937442104579372345073227081663626709883949600672022260130475711230439813991036950846251450534342597951975277988129222946933874849597099299888490518314947777905972577809490535457395491853584724722291438960316013566144498978140413482073004320182823212578798192726451673683872518707608396364669779925742090946477623969379530125991024948915164414256557688173028975478513182420109166026848738262833250852510158586904832552880627138376309285800382002380201501940362308523096993813885292677615875322733026065490200093672671696362068622501964814086294123659726647901033974187026203182513310612451877564478618105391104905133595943943609790651306937312326790685586125780185412386824342382257038773424309367329362280612111103988616763121170405143492725472801490265632053140522643858619228652212314161322893237076389683061435576840556158438628939191910824650444971961253144144755216461571897311480817685619707233031371461553873392661364202280783041719177629642893369898846975196988465961213784987962265433573013202601133712778140283048833438515249705222368380752762203342884131081392939813022576497449091170565329643086372612777108843747863282662621248640759026085138699559812415942001641414508135397196360473580325959914783106976368958946799407628864346980972600885831375877336424821412127705058622603368341646335641131687249782740275790817233546375499998210414415455012009903054803473338280655427074688588357781248060746055733929886349890359122733076476889553488078596484685592559994623393269331743489384839686146597573157773170477551734108214839866249045285603443515701289425784543258998567965201164764234745741625785084654513671817773473470966955757613004914411271685497067768739227319063662494269877561641366032760551541503143882700011387633148772484093054329674426661261508032829685098213566134703339244484118764774189646430330818993585192825527982671111247163742839429616615867372936768926251698162850378779474940441708160897453307686482911831296427266300221078575575009401385559394343711473884075794797245191627548848873202128082802465746254495295519308776289990484863467010806959447633323662206316728323866704323555739119337790606695437181210323892220828935053786953838548184585685808598641022132093021315768551754926996664907818705030138160336469525426867386741344282470551855322394256808471582282500820882528691759476379396382648542254472370247829916153253458514954534391363581930575304650327150845609472477757643769120412795905788163245773124519494863943845846200233152973064726169991279367918605540468061634645995389629023535146248224712921065267514095248320158537823665967592514792704707106777754367101717014125991445326660351809440001953660784305908046757011354137900362273222608707576483296855280208111969284371915376881313123291983748163858810288664881038036431184155365554610725067719774081623052798516136792276711872143522873273853356027988675460662808617528959918565814395869524383189081383520566911982527676428893276388106726680733793175150709089379121523394085004948186398502629978560092467332789518327308811756667940180419199561894891417693364738278453064499307240235760158132077153175267606435145556060503146904798833178063018695655697304790374352862730198622127634979620872249127224301568800385373496706363990681633994858310269486976405693254762727533168437909227056759723834200832470136762035042582784834530742524408361165372686483790791345392226246601668357263195502515988716324169065688948785260318280533539700953889916384318763706673003396224561541307235618803914790151720003261100096558378243018092103619293051596657279935262942802904860668334703537251223376489713655783806006994374515645542572220639735405832506115113046963438217438396400349795281659066674858708930601870163110546968411807141337941193341398672348003660967957259272346259821968534625867013728696999732006060161487826393841985475549374538242237587199470639642938608006399501966654618898648909160466013872875680726013418454856639425018961565023330158882841174537572809850155784727619502916223565140599878222820997809226454149704081798237833362318427400974228108943159500667680783907543167768552579845247402082760418238173107163056995659795474670629449349431669161401585919416920097237041759044595227375563081598634889258379085992962721546483883721101890523527074622147903613046945162308460712773374409885673852304112851488065828059484640954162427435604876865382476663706128206161990653519549013879463318904314258950821710185175620052467608170409256627330501391761885014027605340035092518620558322881807154131348842493496583397521047502027340443224113692862984352117153026412413797627678595924357779173910885641487346938261065595828591984892904956149722358073377041032117576051716328064868623303764153016382018670355807552905553382201686899649823015266718433509149586702391011789229775320994436666985472181949514268280649408682375835936910225593144915680980160310435940499795472611678333553113586490647289564316428570932177768062783470884837950258761527802408340578618738691356335696015785145554829718451588430778665682687787945687129701231700992225403035584166557579780812722389036730264986426600939339744734941155283708102910666369488153360091642339397121795601660181119360770472838763370737543323466290748529206253703058225861205282330372788098199045612754920691184267319787325894689950232852746910714573901443178001877692715567192137796334633574445348798683591236117155462992883474824864606526097898002454240968179354373671294199649988830650198204824941981725651581806757876143430226952490384126747129760200227888050024050491878471863615912463224316138925371232845932411402957360708590520666122787719330113122291211316476229601572047593441572598974748933709900280431910547547096099922993700571637832660047297995486614065485320239955456898699556766755946711054604178768565278821084554501820423506644283215518415260875121184398197320312858125240218958150606964143393412943982929350368750235895024874260738214685232696384891604749643429648191939380733305303060764710089989734197330065578724267905543795037931669384255090808385843879576979894243133357118742379952672656432431228692943227110402178751945643929799689583367336127023316861053958133057045026923938702233365769870821895926076151341519721497928057752015640331268469362179048772655747872331454769935560780532067556808649829117388705797339463537877919645296100902193219196102425034000589696664119866843985796384112936841545945355764988305556661141927017665915959886721191198217401623283328001898402815343009945594496256455563685174894362809545393890220383231060320074964527805414576211188419469751635244772066592570107161298535145973169231294911423596073177866906907414832814907067190084025691221654621421161096756633112977070145022909170257619858471219470182800862526237450104829971548039808095017840489035227233903635342453578286658473061195829801015085020476609686874337519836917161359358266950008777375206649416169087008325309870665562325431192786330830847815233130163924866493951788636892896152283917146357246019038737398047314125651244870609085285374476100249696322305947837094848056936410253643187502088699520416820867423586058223271288152231978001483680599939978334384135107196307250018965058961362183775506669864972589098879360260855129107213332721078689412263657511330100199227700690850088119844929885927570042328231426403608675257492955147822338100889808201021540050376856669547312965616271271652341754409830486486083346435495061594821448052653366868755326809457890020583029551883420064061393301070017858279353871224143233266177435248561786919119657321846440678841325722070027602696847418694909640870532273480103633877678879248065867078999831055291547707101804941616770215213733375855829275837231419890216780187919775270433714775688628412650886232412278849796754216571740120175271168816687924520399781591200215978084050462402914162010112850666438151333583379580722573888341991722219235550676156098351229288719093113767704901756553283223446543511136494585075487968562365721243228811369636443949093062750978501055162507044288137651086037579728969394914977686244005123231717044207474941664581867223804142445674363896967752918244490073160257855524332778260983929141138168759384167601214986347424898803608734688655734967449318505698528290294897307411319114178919463163197129950413721153139857775466711837469656806337273361411320417375871087052050754859796448490530253426503054710687883795202652300596319088242720103348909687138006527841848656431437415699181376701350583268722589708838789801119998960451177711316926958947643363319365471526168647680089779687807399848642315000314510734397775568494465356083373468734176081988667683340990436572535357976778938446425477611264288410079034184565128454043404589310224276737481916959397674185456651128913216060767725109343528962365966380207200115287202483963485824758396508367459086933795418187066858824023276532560336754856207603498522406245524733844922456967975618307636350833712394780035242295254212018594418135208216664712532359812082183590240445704159206899495402665040305672746418959517226493681320665752116542500212821940099847650560551746734821138544066195144983565898765701270500178306933180259860219978871596050638006726731302678808161391620774459254537045347051835475618766527254182586726120670220879211596264555881077013669353328314672657392334799536837296698005322174148367835335862962978762246017659095378217012646877426668982822953123830380552544222540743007216700838129916575954948689668833180363140530738141791270564098609162492570528996401252736918581349185062888903046581338096247922120302243578594069604166199368000558787529527306334685176242549411760886489582695459434276097831871095071813710968736184133331149241476315751823912554891312475941728916603398784914273170809862712880409694997485751344259185130752919107570002866038556302823806055531984640550747070833371258111316973040675936969722641912803160502969026257544235314418465178832596383039297519298473168664557431370398427428265052933205859805075614910409214022772826208649413492348196995802317696528475824240177435151141548107161698654153041206912257889102060801153740058205204049412460487318814357990550820743871667448689618537967661091912034913332400852955175209644722276812805585831433168362408437692501236527095942802204474049057930528923780505899625346953530280802772417979678148641453456631649017151182261086281617781039920982164086095385528039893031537787977761725484251875729152016878061412511993993566305019625922763029444760257302248974665220872718862988230005884256270802002619490397646061861741941078321202479722064417270845081843898139716708550574242517323579863436213839718400872873285285455156051147762086772979878037832675175458963484088077163159107730347028952460785967229700062493774542425370212562822356657368719959547099443172888126543582100895983002386609657568088549217988492378041388464830822106593694460100663002519415705294461790725256196613152497074293535759361416713826036268563168483468349033976797335891786372969971620105782941418637838216014027808132202793176322224248256665267757358473221121233337684751704197787009052179072980333921305432332187379220741155192371606731807459630890266787996265930783318314154638204150460007984324177629086922964329714792120594544624118861014032120078221414991298898762068922600935965663888606801453627414151668583907236562275196462301686439692300488407530887224839540049835723190526061588590522418494805909616947515811517503718586904616743029218954926673312209880997198437905734541980419396475999020190546850108893454997464329758521110288129286679510967479890288611258894318737115822212414855502780816575639829787729319663387320829410440960001212748836995890453910196606007970312351380453456295250778868832083313504148633965374875591662535357721323109902244105949946070212984881164923549384063591970508995094750866496369593830619953744485927099516813062323076105017244253743730729296433370937823018436528288891531896225775699941259348880163685099939285195379022428491667107736357801964599586757541264761430240889442176826514179432034757899671307287783089747450191769931537331475152448866081514130481906768312296405898626284483253007106757212156418767551099705017255917428744759720152337333119392520162449631918693494121848351377897023265409973090478368706389846130969668802069838035316848326820434288113850350344871209460368792234198877800432985819477115704528586951162387592519176802155503345885893943942590631248572853463678450012869969153682561096230322378659968137433201707477408068808996666493228803242420362454948922119648603611689864053222148072073523753999968090901121955558196364878916818330621822732180811312519291572844857646754374718988615608584845934618886964476136423667161035805711697251258278199680726582156692980520397235512733038914895397389494632313748146500585725587457183343954792448049582397040943310836429224980945672569350732989679244163224921331554021255384001889281982150901611621216415126691458614339054442988546831437407050325933577642546534928084428676697719486144443399770346925362626602820600305843973318962422527467091258702558013076975017577846808123109150533450053814370498109866921531710662249576867942708581537216962235373008071854035043773796615691548633982006573393564051543766182276317716628078792611397405694209731303013454181968545533789572619929020894778241556353714622529033946090484333985625133124453748893783208240851572579097979034874895620300342063883058552922946531322896479524546409064759342659857363539132664104064126674526366522806742804967821180724878277185158582295663767126624356677599819154258027538616880653971281501092346462674172936619644095228613635347671980706923296797832045181233678202166116138923413952731083020080058780515674057753217895396962418109841607233140329252401511148371189186685372027122682219739235375129883931352143843942192974742917702397148440780817083145422006777608543747010124716310537416214087794379081353889303045047843784285126461600122338489314036987912369122197980577618729496947824746086345894503495305598613882244804733145371164792577914272514595115754482893109719009508477037989756299430118327955763766072090158308640417101976485980694920979795833501272369587215872404462461005508917494127143570485132529367096898410050965584655044710055903346625465385544965395422671497461203464379053103606582306503759631089657618180488516785801678899644641663863823692632662280178730780679101125762833565502797907593804653675750464012286000524324412239410241508972155906925469466101724778233389890638204502133700347649105062141089904627418956340839259494758948733215880741086019434486852917434192092393181231225952054950958896360651532238690392310167476659385763857452637522332035721463841087358056271228762552704152509974699660483385567316205534175458923738023428711882648841589427981489945571505248051195309766536118628512704291622486262841438682613498250345014305787860536139487621512557846658252326560648387177016973537027505842282831924234625161506445855170191892505729660806825167345413610935244570127541033944512961587255299763431354993192607020445331719379309540649782377039911779935372622836580631127424056937402872806329463482792104938845819090372121728861963087551711382726548636129981598735938155304416714046120025820179089569043190513409768539404601787847597092913752822132828807580375925964708737690875559409804149831865694586689850508443245962275825505741722151348787566910867934014712109152213518277382803819525379899505002395063080646226063198994696636317841728060233066335097245590470743338668967832297646054260912276876505217304544376738247877926515045305818741510930749517097023437899632252344397812779196632694971899339990406324180812611037884458310012700554203112740286052823004406678704320002202803112835626950641034602679588405906830294635722218817747014040484823390187186367491978023168544821296596961554396025716099192201229506730689327136545811104215103003442427712361633425500684088289166146156843022846185559707422740625973736043339129287061625989472666796073448863022572746916753142583117803714464037063679172816476310886218577199215325150025095975580358252805531078003123784037989482319668913699050223074916688155590147299074913024777763239011434592823404151981121494310191427841542620344172848074702352003576750578343347756830711837627749728910271117446084500659878293985268355116303178592146062347624252234536528938461575380548960604673939210285786439278222449003246680668989324168992763080063308690030594022223775207032155043148097674787137732046090240852603120153357182940582466289198745828209736849874017284865650658221384069016157634693097423421971643923747652921518864306337485375751169265880740045325687305073053739686767274787182147674908153938265358304436891424497279877259634053813081271715139019341711860755151785095210493466242128380594715966803592441993116788436061414926538062521489716845527698519931285283157662465129106021522288830158226598130626177237251419268279990643597418821168075101020371225410837647511986323241498343463988258556111218799737142232360353537249819719304834818093014580182147722112348570998108024321762971170989114077051159768450481186988468154378818748310840653802718705678531617137948920257838515135210425853867428840749241638973552796624081836538489968724246727535281934541294619071274623763165973960415834403261717115074432432482382153171735893907873793146132319404186828956907063563721912521325309877615487666759699017213638208225516709177318996711599686251404599595031432100539867038957790355026713893379385202728636007419480192639633771591668587590745657758623605488790170185933928449275635063666850705379822952937735897221257876281094349753708426947606163352640155202554536966149316763312730776208372885233290759689828276385055052103309561635787188304339178754613477981777554551944646752199747474084244560663875657644500770038497226025337056359811964915136352562728200802242947529583403596055720045889580429514844446550430228137480069764777054854916458320048822715141631996579616100094953205024863732713106540620391584434438557141761288901697418940216060916672370807907621926016566342245315497573976062759291180153210217372441072661844832319816382429704968569336341315276302677629007701403310783651685797263872519426177886236870574553715258302184828650894266876648121045316956737310852102808981812410747928112384547113203534340660091312677631163548000646157423572584994628458246600595972766883418019155805590240775885312442292338486319424582244775857051372701094521809148895983326157017111278708309182259654054608110112589704096372470725720508323770703870243163659940195675446078240827758293684814259465245152448446818997674013950351952805674871707066294575616592815129010902737517500946199137868751919633366521134600166317679936776773544227821015385657563578082570390607978374656739688320727744882657746877750164003330886691161144024413648228287779945532420942500247735410514467158287739439169614324616846871787062153614554076817315851092202569864024725374194213313514586197467278633417287495066066865803804927570578126673522044339367850199685878380318745367262860716343876030099369122074834640104811567195946087616342170606862107941418491628484093946703291218322665604685864697403655877727661389186646453269406179131873699958412580541083299194792516539862942498280854263406344310163216673967802571880387643857810300394264854982828804722430842402280161296447162451763059478951814193947630784378762290584697442328063662782765185026818301401855453450483828262417020397674218105808338181243398917798694482574982579113362449935865934972020071294992376910483142553515896997988323459559024658249036618144716670031356552351108154247737657563209741670067194330466748012286358849455677842338347727440736542063702752600122673546399679916861211391641448167013226599210772517299060674058388350274684316567326898091206046134679424475548495739368488221815603223842582961156254480353540051703991711176957481383119888347553709519585312158470954886338079233186076017255506068121404124701264957939501524426870043912826790759062822695813181901068256113772627096484146360753709696266871319762941593312838520834476106282594288524799410212155815814116963014519905505006043460578955381249203603863652470547223983424510304071673286184364029111198189914501729853021034804867016755925656726116040659784509691758272772153854104338773602206004133447838658546278261009462319521957209514595474019221828806476034091347022319479325198065213619480264089630948837847830522958546408800972816637750546219278781459525779249041124953056480451836610380287804828514478884899464125062396894053307255918029692372853510662592268563493432413568749528977258885233831903790464035785246134187444662237915996117414125564871452958483416514264264429429189240004883277977903174447619869844060263070263791842137950794639892636720463301613029831753349783127390776911222737606553705355859110804923739814701505403933147750031663757343914361317088977086113257835597015352497884978572670745428913916679145351304890355597166449105976761952368768496693472681774427234478866512248703316758815703288840052892860616515973975206355446753192107781294261308046210826983092188619857386225608808951013816579032763606764615691908613959333180978905074741138739292227252223030630004955161988431741142717074768204050993062671717262317064662446499794957212418152976930167505883043741332875703006015797672301435472109496809507965054325510464385568248383522760053052134675015808700431370214236450711160209278490832025141961387432274414861264837644023709409119145708074865123515645699297978565959060774022087855978697890630893172834577298489820808883288816736742644262203028653485870723630347461903412221256703857775502786316404842356835395397256687793422277268098848099328629153063448521530870981239255840334017145261021055038531348366994051682276785843772220731664446202875150379628507345726433274274341895104295472182042236622863586674771865391154851697789519752812348973926642971541486671514844314785622318958015928012497911182712892027214133126975395879730985694713905325606124683693009094963102665788412863026881390827629956680507671535987396325446439935221608565862393095109891149034921979844888036454757862612980210721406519960170988948985354430851616376235383426761542419434232479382888867310179300474779828930535671948744400253960844604946977174897082707399609853179980908847065049734230521880114610748545541972944407518207475844237503162596154402868336160280223765239637077119533727254105233625264339057112653221446529331411836565859418907192500582792101492533669153065121067731831830498516753435836223036014754307440014175551713637397294057407540311748231415290831126405587039364078351085922852488366109754630916493076491704245884692943929101457866461602142038303638793019336874694634794291606955294368076717475934787353710636985594209946574921029450903157653007779357469209442756252397620434354611357688557167340056952347209457482315189535936593894043660553684380979512722899238773210508380485747533073630439863792818706002536493348077663619637569838289406005821172158096393859497549778026020422515203269776615878429775350129617319910786696430640314256436301402093663583847449766233083633946256942892103435772095392994837373265061709569394275017158776032156226648006370701957013402500235487050316317509909088193877743422487986439212549575683603492768035151522417642047183493534003411441765414857640296904087674377332523179364886769399517737695136007650359429833424079549324619190508407580735110214985076063428385940354371952113766209296546466585842326320513798369458549923018980434615995918220915132172181936284520269519277464926169370159440284023450693539258814719792896863777989305623229215473098386308430857721393849109868506076067669756291754393212148193844233512403855859419339765347242108525323077645234520691832348975383185001048997446196215169773821871119269655799820356331823846734753128726167864078634899355028240097091973338394380384855059257770216265214717435852359970875318853782393043784028461182146504540097717809321540842848094499974776375581728681922668165759000466101102297320128126786534111737463831849343918410199536008748758398987208319455483398547194453020596622315489521410093689986620548836976848623355636978120774775594496562922382569489241357000661004910278392558114392349933966533485786022143017817857461156695536428664563909085600857022207813107058029550918659404730958929067581543327060298727339721913200186088423280540116856871994863318103734050562123649851719780589808153051927978290158603408902792872167478825077011154319662423497998142196017050318615266372137564138941919163294431014262299558310537354730138160568611102672626830436141654975013736112413296601993644327143453371724847164173084811831219921201768460255221689261414493164053994293452113635195589573426270976606317299217327151705137780667179917105285196957131820714965449462620890641218274994266325619842519492907264089233806091270055028584591150878247589508320674253134187974168062269422933087111842033113222213421759284733447534415103026978961811247835717007388845405311968108962966962635159377696123182241028057173955272634974901039946370305730584076021360612225219230088838353043500879098302636300237303087956901083300665394054880573846691347474975248297756554264538624554546417263564460036642829129157768490625678117432165400864310964237360505226532261407628807097181081373000998018063758654083028875054713661287156445741788787106702893915714871065820207311105780517013800934178254090098409760643739522488199744300744928100902569671161971303806154780213977309621124409077936077713501313807123445058476933594987826581699251748476254830232134167568778224693755239950050902182407877316540436630650831634682847073386244580157084427783885797237598437691306603850986127427403179076666141760444910436918086751212940476544983250304810796253988589919428003913518450211499990958702683540821048392656035902091394827172885183764336302710191817143373118906261018333679996967980310303977219668478991754410323264702218934868502288203745802659015978304558076286422065716575260369927749904874842061153593882641779501548515496718990933576869667277667648227430424846304091058356436068586399693250072335973222738569206996147501107919951096969883011790248109789221181902768970856442482704559345309497472749907986303292048420722741562282433778610224040252047883034180419274402887232748539410287278269850522723543659235080154886760931678260383360831472361706161290052730873328274144326965685886935130933369129967778102324569643824598840751648701580027869837458379898027955094797293946011428885666583851723628565743500758368670820764692223830761705693204193850590619985854721741183055386843668694539775537095721381523381667416099642551053808308240499667808755719620445755887412269367744394485519099965644969428783840069757300194258290308974163538978007551485456732085136428666921379348108010696783371908823188950006716361648794760444789757361036007228435041617407105045784489004487432806918956131271582809739335477422781450578298582837537256612169352087680485965000563127703162646923526421829034439718980714347548119205465334194471540226551282507583708189699926443252473621875973131655339680151996029485561392992182128707585087357488939079772486162859304025079095537215793272442499822506786150360739371552973211136525783301944583146475370565242547910470454283263332535680058192658550366091430924180078393606168251788891280753711447090959838995791456226824617205949560642403958385766349812426141010125042262135698454383569897960249697864789401847955416192018640000972340661801288341790890936405928139886218250293705782293462119654330475892959670883161739648065594259922541304879831537588947322298220770202777920234376957742138230842274560428069373580087004091340409102756184192888274981708426918532818374427530886533262358840490232164357034907975697687069736155619633807382238495028473206295920804355006852053514535184750185730878416670195682617668359131391734862432646090499459855634195998386246779639311442259546375250109191327988264294348247665276279619303785779281867927912988421179793846203413160521031965456210099824024516915030931023969361155815857297699172566000518413616448108722359052801594215065124041589715223941949772361760671084928800670066088684930293388739496031748843829156475505790957845355007288569072374904534286141085657267964782810675214846779667176214219317550819099456434935507054305992423778779750523096192129027472861287446128714314605747520672338155746603713445968336897492901751399081358489411129505953560772191738330197027397813875703791989743599134144440108654686451515277691480226657420003529063454373883216208154040995751682043451947262923081258274762881531723070338014235352975797470082275721186665500322365433835204032380537285189746966839062363985800982289462799422291158784481756696880129895816344933817928668724192660212917147234080794409523057472633999702860356443799161080689526149820921211745925867004063235023227908353836436355987392925976679905460182129056718092072844834229563807901346268143626830610857387920415823297732337783618275095369380548626027697411874228976824962029139286142442134570857200468334583464597654346320740183405636603580978581914242508770023805773929199344655092752715402192577877458122003403542700054371558115486722442861808918568175648163079200275495723390703833662608093558340736813745285293267867343405538311212729169237141546094479745363179582612110717693785982112196489144425189649961401601704766812469146930591824965372067321587329679189061748619608004715641230325306336443540194274259582593480990662759031399563662896462189214382991753187176701240310340918065297587811089109212785138445798088431297132838890721597401890135362634414067826453030470199105199826354860150949293111630315506108842646201887970783322015818953630197713979184879737392247520884866638906793738694260654939760109448857474186892172080154251106808792833450072685782169418553170283903456260439132694460440547714648441489221112912223461258434254937508676304641219333348055016505288352762974974791002599849705355968350975371679396819528055023570941379311932510034459827867639594489856350144108339047141221335025592753082694022354210659609827948958525091767783405408749282230897457772008163943137394087640166082286319029930019776523528408392834390856264562649250561874359558792746520630760661450166921321208779779121785493634331818314674677894964802642736466332150476169135924300222754189578750888426218818663358748685742233162916225336533649816335856378533104245625276687794982128668271521291236157229206037318985475241924151558405603949137421112422593076505030293918413512629794861925874896241161273777754547827893224252346518824681094856077219221548026000730347532976877573123639086554989893526473702694595409356813461585764299137356591591811203946649817871234767146009567624088578405449192552413560474223799636016016304581719904821585951439099367785372910071872723627554635932026126321183419519487846747677320383962113938983505034052351247266829359051391680529667763997513855647168758284212094157252995093175001247679223151718154025319840216362457354023602636863041491826992022046589621587211337662217766659780247966045229712655861482810632847116391830067871616291381788198732046789430719360933753571401377020427791621181492168429114507171026857385165842266328283311437959253649285224588440211563839170785364574020491905449745442572157844938924740922143191416507719058956353525315813842398713313649196538849916027252053522134323500601943260640957247197881724281752729257406024840905174244302193162656485814972255136313290509586421359040600763183127834680202355955768177349934905323624231873796335045154707003936209060815163519939232762261055015945414094114166881616750086960234086054004139830446101365832904734406690856324789321205976076169579240035400869723580036089235582311419842432327821738249946349973495693031077482412266985447233888833752504463990659003553575073642367508279245978533752729516753868362486992217360318861446663771833943723856197977601214397256385886976224656375596269900334773682311134276992090269771232215816374178937402863288071483903915889799997295862035584851170498369128382703396443246657996647665576400180114804645077279175185516774839328745781785243398042894925102025568701540598297819893769489577575258175526752950809163008027786221130755993415344483329397633856343224472658346698069691870959561950008434858965995253808656994824221899858261929069472974946862392365602853522293377451960746458929031173343222596552579195160671817633338033752503340172032433755530919192805792447348818446427424556109114720126162764890401552510635873552239556291509062014993857485309534680902559665369129155677206175653069268597259823641733459394651192486411356193131192805909285941352770949031111942333321040414784660862309086568291052492010048459058622400352436360363503243075152207328091138579222320640885059076533473768410412351124905446609144043691900232114880303719322255007756430917945295053255779833283984917599328724218850816661226308057901103983629074671715117187131748279943940874029593916307207780915491191014632623462040412615547257912022809561350838403868305316663949091959541019677468459137450019511997684778893913927028112359628455956985479491004227668269858952240476332909052608960652417154942731835909836948488665315645716894412983505843512583020172858493265229085921201581520447069652876491907244603325074035878033927006916669750297311402308454339046922144762512105336191927328555891556774478281699342417211649965912855892323331523238838463612953316637342364764061572309231830152286275071887742516178815990735098568055631764128725892432462813222381568961666001706029940111858059252681387682967690262450866783787853787767713108041525547856019054801795912482770804436253294541275704803412369308462139330648113664603288182917916498343391669168258724883004116245838267531528959421300336074042353751557842445913713913974174817856547436019818034893251936799538523997781329818332251872490431116962638132011829898151994938450688929132864841361620888483798798858122190494745027179525752496991661934930894498316329669120583674851149492388402165535787591931175504022182901105373370817844208020979202458623923188678948458869133237429647983709416222795393426021789506882804143546501200656059197245962509279977717150450192299271465202031706840360504309566995912549772312463773219128447498351683598683536450947987009755308044790844661591420591310247856583327386333928194882519972219936092827949648740274159180064555729165941662665661268960370562830788603461047420880175782400265372604847449460646656018167856726748864406726871086886734141147467654595741568740180886032244659111094060336689724741123449322971298947367704537781978757887306192148229033656529756273641958601480594149389340549226157009758303600477199096271710721699750014446486398527685795142715222402355461003957927854911083624708081903260364548552414350177719972501972825510385666854306016362105263263026144146591503375565017003583939024470541933846664036446632747467226534061186555232111678943162022953420732824542872371140655948755798633444600164129074553227998730288454545425242871826706504017803232724006096981601057125441036610887084524116349279415471012077434162484946833642279902424195478871589854162915052847066603264992883560769254405608871327664188020212363489899258172671396460877986984732968819933117039219568991932914960433298585999910791955366826230552482741230960002744568437379093103207227084308608197511501868728987819606838931988364001254454252794166858225047224277489713179551490925201656105256898367381561556569225648181813516717388413344269271762785025965299088399696115692540370207978853954806657479208207340540904591748792473825615079406162637223704378942451169511106921128480523277814338922692051823149012750493001371819724036726911595265063299463571171540233375087367220035682596410733178725107838581492583572888553140258984322410983014006164895032086569905991552147811189688991169360692019861772194680218279767719103918683174977508107730918423262032268451358339761155709141135017214655212639611292655707776680579703683226379373841110810511432434315355341855695921257208289239170710270327479886461497089431978871363501537656757131473333699958988031694217221283663285280936810312850777881868849040030061429480827070524021229486645595264793555537017092210489152715787354173372576032033773051692874772897049584091744978930732248014240427636094980513327570043362246406344047092432657630886861211591111422411800960472356655172497580460177720488182962984441585666226120317795026512523575360268769734882131793193510588325130486331914251927139268479840024642070093726536623882246547030709391459477302949335462587256805476140746551739216754656711920317153045155547527733145781356811725466745125242070552984965517813148329427316117420081820905416684098155463076355677309908604125886359187218830091596243570737547134115754377199790767170616334579523552365574999888397564909496084583521353786083662608897812492740442471444742436558412483849211988287230342282621828946422459111567915701313105590001717141993668282813240623530568765990238355606094237295946392612003958269141327926184387290348381268187993251733507821153819661319096428052525536377966139936495090445280918113821455447736607100151818413545163208466263339648508503186701753409312842061994435487176216464955871464105513819346728505994482129629555033944408443288161314253682106938498618860004260870085107186257291740593106134068882806052573807141017819245133230808820894251333117148493954428003040739973921205877953237255242368146548752935178998930574573473929202153322130279551050046055536116691750022927651247582050287541498056268907367519507207264841754414570684124095429789680919974971253714204296822376091011232710329654357492680408843402848960624440324557763807352842213124566043434220355535448660136446876149731967355670293094194128458867559161469473855818074124610531797226029481123778079679158659507386988163117999764873737852817835365569667880626580523651936878587731312882444008015107063440042012506545534371334450710121814444393101166244269475871926754886760352927093772651962203830233771906060335252871104586963014098100088881691987732888207509536704133974216790509508877269400647803538031672870940734802335270492068323670488536945657800933918324607126808484548361197822206308311876053382182271842790816210607078608712260260173786765064888219139400230477889886552176983695211687580749645042862287139517988461016605171363977458877025010309551287731204943466292390133606219996765256624728775587772317713020495696989727127039486022031634772706572969680161729298335733657059190387812314129609162604046472967925215062830782350822903690171779128874659631722377216876399925520901077073257718150194878530508969963667413536241494118964106078150857914140829881655278354910900671018544360073429517872225663515178284438844472793773680581388484076517544468354660135831396474054536769717063060565539482172475138610495945332662389615248993690984380835721681636903843075881079621843321247576760315230888755042453434819522064009890682421344711653650139826505391106538256748143774103227157404724029911136913428367160802944520401772288946602385399117367002570448122992595467898736566885924885577184823967580329973067297324165841064626994785513248347439521819913160969320634522412247608210259041298680741292572350630229068156882945362743826550926546311956599782172329246817423851926582376217166881003002845987991251878642923750081217228017923298740672077351236034535071943485731734228031933430820564470732561761093362083412000335798900871297848246735770366863217271825044068907836134608402049035364637341767658950267826315175817222848653913731090746366428873334763860259819396485950760181262085961002601892562448732086638272803579003134367312242109071238583556437734112894564184685994646620084023123189568254074006429716786362406574466204505130831234340265122834723711628993494715339359958987068034278605509544782745209003871271399980085099202360987388323614698809437950141471270926140450729691641627022661337676527653902459861340730608703510538617535375499821323736685833737538016663130547735185601499617839758205407425581619208555233696217572765829657349510334427560801616545107969436543210373604711473296147780825836761020015939801524551993547626536840428255738030085864481547595820366807673314579777109256786274040480504117720463419542617805304135432170908933879169149873007196959848552294743089380175183446614095589643734751371364451252486991445219442264667847634441788164207372401821134391759467632723186768967156641163181884760437141724052921865513971447877672518268659068226282090907430810968845496527958178782971883739493666466503110301438425981103071895648796575929032043995173837568614639776741036284052211180882087301332407588781536709556448594918849592830316634620475176040798688105986637063709770031549476184573643863977363271251585337144334279512372664165296808925109176503807291731356624447165393431809138992090487744764559708334935900271694951062719545693345239008773972641172718214605001051946063030784387292592620389652461170378594557259696709052110125046016590411180048572957240697087946041453870273499920930290414679220010472938057139740513174400476743030504172641414441967894960452060426751837079774884497843512038031591373724281587292311326799324186806442737293393919792726348746994960382020891043865581599626871089258914597414746561956006478854090391704475476685930186582653638616806688270466470523204709051293664665399923027729261493493424355178639370972410920806784491710681261518351912151851536760348700321963979225329561623760847012806686209123965483513037209810550512813887050427546615260680657104499448253906931543191440921154737561524377693606867874281034197284593615278480462081761570085960563668383918114572852338907803044076635189048960832883991072493603244995627107936663042078941883963453386212049329248178037694851337470982523403712682355178657781252569161121976273879145543391967047035146739285601796736484458217147896685660592210728527179846838664604233553186994907897986315889650184066651650829650225786463825273683772988518343986723406601389285194755630743104414234487681918601706298702751498451983971594784259134492480980980475044712793406682049510900499422901954770703433127042131966553733608121933597640456194385942455714245628383820607292380076937407802480679867408269839743507303683538465958195812376640324199854865493843773303168467992311608461401616350432162078629281946217502918513632420821188485455800906294025944178726431172175601505801367451908598774341032014333089076943006382203255691356021034264235826969283280067433075418124249452128071035905253340757192335227353250005735394443975869930248277496176155239826585715125803106123667105914660365234710670821776737205160506902012792803218756066610209986981481450224078176784869002796455270952579380183660514049204945858816990164557796088789853436430490749529810309061219855537894196076117148339332347372200241854052875452893049531526316089555991485510539654770762258244590578559151366909422925941200922275633691206265825158822094086865492863754528617766217833380100329467901009795306939796706233079897426358937445801883510788127486958287962215431879487883735189659953836261213922833558824651548260338671436517139445068035266837171378621344036351459987570992749892346754979575020562356628684391820625586103119466675440804002150688837775166320972986629426058134494301427382985058622972309640774970847650123988736954340764239512727706969629178662190113230738990601898184219963094920272109264793272596421306820704466235858334210904722148282738136614366493537226647479121404142804729607151911615040964695526198506406702627809085106246569969801688151697611127573211213204300860465059780408579299580707934367843954604192086190953399224579576439705582153882044096114056614938580795226957712613926059027604795281002563745128883951525866865474734056690928851274855400754453305536564435302877037220643052216454711889255601898983642896898153449309603812843630601992778202426020585836336991920209220306058068315108372830017318948144139308850930332083606077645610826766556872328886522328983043670207280671812542609848767471055916117537245774559163772552158319952748877367019313845405449014686773507563621767231174178429771435034984190816946261193467626262227663163228444651887820056460676303049895398377839547074546294987654746293617961696933153026306335748750447976829486280734292775907080591673944184622886454259485789482615176082946286207974656570896394166754049842541103985111841420557326162602507747915022144533749963358890452174775244849867216190379665209484499403957727465655812842778562288281941922729343407043289709045826861994754611331492920614380382269618813917938032169968682391931672551386070615517602438120931729075548228558334798727110192310539186791212668966074620130732703185698319927767100728363069898699846308640198088424117045193496606283376066281758727659602574813011527072661231682897490700043536348870825380204224321187324000951092572548478161384353201634479086583518984566812061211564633869455757652928532007428102191698042102881400949032532855073930479040275288033335870707099173849586215501990996922721913197380057892926038400044878224226463911976710466144607198729655998949125973466397524616550248507844898983083753007935348076249495165975293912156897529560770369974398722162627084139952321619886271210825452186965384043329512291712182985395124395294402295692820820770333335690387096006175237781437642418073906889723135881247633775011868793852438120259432203392608412997158044248896091437883052087605634895625929819030173867875300667656716799369833668545119684024554073392376969806342413088399972764049463315135460553224335037864742697915982418541457094676333269284037578374500172351141570705828107683662223739675303810043092318719384127303725815716571940987576942059721077719781741462832058430710754748644365872787766962230570353907427971913661230210156773692107044764918576759054247949908173522137583932352660698758954688114732852222224054670982435041004040173429965284532986854699810373184029110362282648228690377057044405946910430129322746961845493763339828945770890285053462387310820657693087301243308625990802255290790281863542158523190736195413460425575325846650715029513541860149721255623447911118856588883740454854666793955120253930731232869163990090271671440435301139706605989699393093934836832824965789511845844628407911341108177788673803605599843703612553465130348936681346440365111905290565720335929967778156296288657284511074826069703021310631184127724145922183750595878723970248508750918742947702210921468734360580281190536530913664886837384560757563170400685687953065726759630549818104560685112131348003233703978875739596890142236836427493268127338414395643994247124718298427026804526071131506963324963606442062488686146055022399074854971663191736341695418053788971080790510013207974116074670717486869925418884266978258495627493850642325692173572330250402061727372527876739175933959993275440894692343573311837279453261589742463807848962784355302058675658977334478404928587245145025722856249666501403775423047236547065572127130394357559084445126471444388911063964425073727597661217152973001852950732587015979864233204298505306682285482140156763588844650869388738217509913202896130181011930187725158101607688110169276084578755371119905652345180610933501150093186136447132692454018154073170510907051485198166574048480860873533370868735763395603532189913028435932421999992298720324339225995159202290620912338197016911597458162190971329289047509472790235466694335530779902295755124834940313773120675907604155424917994945720193290532273022970901811830421343314959335109701350131852507475897023939546829946572575040170911801019232851560528798495912968474722240972959268180538926341080557565582563185086520789035943179431576537633422902762472627833277620366315428694761426068704873746265083456525284548289932082366802830634473582109939472162659531207836402660609656648649039625573239156227680016176598085031709887941843451728710726895644221470941353540744575653485172272445242391807153901772267615757301266646175987254508414760335752729234018561370344797133479346597325743081767495752568497063050629791031949565007191951604245466687917924245662277707772033825667784193193319198936369673752525429209637440437153407586803930032468824728756131077846862878946334309979415997355162942032534743123951807743026611549573022957412971873653648326326744403128583175885652795973289081214304780849375602871782292484992577240864356953094219366122191073354284843299192607867963611025572900180662713824460100580838765443049711377791232060609802902725587025372391459987982231440475270632164094633751716597195187940450421358236151547613959873896337605567667877445400529682218684363149479591805526273628146829357842605908166883650884249548121075430542965364460100699190238682960172474911849334251998391614080230066460853138583594775271632303900530586442192491604941884868504007585401191850630257653625012080993141594500093752624265289261843950920679479877384680054290818640327512976069215094511040287675911670470338973895947395931540933252843489823562473480203377201823835459948692556383541882791091422577115190222521367252632955600181573772619393573962455075549972806203794328370598476858703903506298782918127263429481337308349097792024669771680036900775922186986079142657641470610558703004792980287980894599774824836970308731466190905999000083088329774214043699237673193670878690449474129728228706621317574054133363127346772217368938708500932997209838802204134872771656659042786039483725602798545188455937698597184359910779015549056725098467663667620180641163144774993301292399446466697735175574538975103524302861944706071449119231841387634733772514921914944924663641840693867295369119510576685315655990464575273489522767609534023103944401575025558069747459027360451787716206488494357589093550350355964639187841064930304324295549180071336386275063157282180199333308692449198985065568331893392677481059300536039595543007046954469232393496680675039346072821897697392162248940701204906115129257687323442107106322790164923453718777666393905849105852483171007214473876544402740500332509701414508732412611950261619076180958982636529458473206988960081337995089547208168674539599713586607580306912628827324734161732128635588996350265617424628377931851570378356363079001555816189756087566574113833570305859863955579054627884801118524723138106123188926874665920458287998697564147130620743054691292766505821198224031236709576094254067811424933173467020059820937182017959413056147807054677699892385121589259663860753931296051016939473978214274929629030889547215249760512002006218867639616014592473169856731025434845919664934926746582877414785344748218754446581475900120817470271542878832505859029353942495725970512822476411698277712644879034908257458506005525572257047141239875632811649226208333428523935872837088191754394301503940289722621360243165381407384395411836856094282207791230779148817258822599170026983004137322766226741658204060195206658206336065314157101945235200214312954371468195239233616799054724366330747520287030090577279247648494561465435506706089954042765062112784302012030201829363030385811448239527467036132025388989282166548138323038638339777809277099042079426471485813114488819049286651724427547518781086664798620770061673566851130308221767279330302923283106160994742338542858486729802121432988403939653256423158333190474587584143875529777215727388306925122513047409056710685413868952761161718708874324307709098083558995452737148271548714832305651470566135478094869043116172584897676768037249058753027761024887047257319886613109340597283975506265145713760361338989144995985650123779807926547599960467701324980295873760207272952888760199414045547448429982556242159332158234166456300178752405270657935600982495773113834992846546874589066261993840150159796624617673611273298767186805737258664820958690356075552220094268613623456152776114704092103130039679689372987437857856056426365336264921492504365945574674049001289918192728111830614173581699052603403503034003238764819140551848245849793369195674922597096335120544232244146786829596097520913218754763658473618108423728117928793665480764435778984669563558368773901057280575638344215732891583381281081059716899628248923027324856544902638724008206036992284097698713199917503718990638001286306640804657697301257372723390826396975501804215067535353950670911407908812480425699784452454340266570255351664483873649080424712270150349099625010696610304882617942162277404565303882622609907312372192493089051266502751885199546868468303457147758792166510645617583742536367402708842090207120517045351650804661548589418063807824629254425803039648874216552404544448593629021419481792303518171743655616566172345815614841100995342135627982741607106939294040754163575661068551139960935268421656814112177979496882353866746932796923787614213618920563653091760034506705822266287420293557380455291547371176169022542655365328422972016712941477600747521150599868126523841382994315124029577098368059804208312928773190963701002612137427410279987026795306488008894960803710906782438742544537076601958642246352699219207688813002467726260160656327490127773908311651150517992948526746088565486272750477806404231416412268295499349023108303768413084185717340713133371393253540529969146252486330306894331829532922821685512694367298976986854167920149974423343621727788135864874312659364870531703013937338135209837039135667302967560824802289628773996097618660770479673399533637183814803554627405454220503063858302605971138081641638215418285408916319843917465979533089987939823287393935440464061044220998569119835716204072679555163717638086798427540979195174355211750891866439495559350766914486710544641636691895771496437832811438048146030947664336344113288581042249240639457258007443823794740204828752033226883205871076830376168166088209103434345398756738475198603985306027308857619753728163970164094992968859506634038783884805066879203808792580860331730186588441090634521976941086945507484148157136585510658190914955598287791390524462390962217217367752922492925720324996802051156426913981166718624989850224716807956628522642560423337364905621585674809397835099093078142324010132769872418914630055569473371485034946971520634460426080178495983611603323111590720134766172957143633137164135611963954471544421100617886110718991239186634116596914045882215014498219974217001780451609918960526352649487597297704280173891377639043371755059135451507950755714348145446420225745689864446115223401760877417212712230590433841996625983731151851260760799893831481348216459922067304591484116226066729260366782299105790891861285501592992723329469230739185627044973485260275336472902516243018797415736524021430885638004714619223218987438733805374956863271917166259179535514007959723345375658214778663238691191441776545135230366318288040596310202100739902605040064371349988207662545161315521916969569003102589800238610056221630636225895865074639676543494440598500459636031901888876013171438986866877638146182170296979033789257654260386365714864739059323987525595048784216358431518761244602351188011978321555220171365174609190699011912568402571126120121202256837231316436092608468178207122136214202836473955079781034238585648787474765891244556687783768637813032955981652160914716602684966413277213826385912806384683149316565522519024171750096728056105771718466211219658559744729223511756223929538814110801890592952826802735517272138313846945194115788589727805327952207414999847975636926443395956140613623790448331231355537893039591654079967286138776805439670004856534538344598344772367583449021473351220513866429662996188141667066029844564942144916765927078068064297187627370486298288839871352947820414764704251978127084430419746763019932272333314513262413753805012105870992477739284718809915274559561159438368604046973064268406708439350536121013105458153472289700773880963283568447941150418612617746826719359518221274508230031794174193322011393289698833837380521576669179611931428627349931556940239157959401950177836244944202955635894495650567869050758332930277764337900990117695254647491026807301321729643996483339471191086942673668538188003706084757163173445049195242118535817505283658821015295280886391766679115891260377956754934001630619967215434095936174052790350474358425152241928105634508215321190870915911409049382348644142756671580982604711011397207209737986102040983959673233200059316192433027353573257396048025116995883819505108556817974143650276515310176523131230547747437120033138423563367654555998071181118655188342689688135855105529278630964435820799446560951410025685890148222521056576306430996287884746005626604540456698806598112571683353261113408735850597462424175985902048713605596279199655744640767547766433648509026929593827291421445170472519398150419258677790207183962799491842713914489865504564603460908847793343006040249858406717341041335786613199804635179170246104365819371221396480888958358802751191926649958521207155006647735649320267418461083527011587266879028034253416233112676217527256460785574475189336754798543758098527674222584706094786045524938905137422940683996504968946924230760837995017633595780764187111428355875274475122217726499813609146224808107085270787442751398396110304804187763096183835067011681574754316569461534385680914937951808207890441564434723457188112663027873730909166142633396081109318969749538037616827536610279416338781693961361625711505603495562650517845966338806029353041640272486576511580624389722925033465500672784674161571111802763885689258702685967355507828122550744024132951414615536763551838319948393537835522801760290096494292903749357805028674351460293638195274859132609830284719171686942903690329138294616488041781527525152918816885446809769004852875431392163987127219331037167374650575523758527817149749669594634277347871925261088742832265884620578394167380457297016084972776766298444813850079155800817314915099713019514452731869183125190472392798903909168409797515669561859262114714863445150127524152735570202897742703552362621662242594287829121771599715988801257575435940088480294200149197985190119096232187460130167242692671914216410603056116190319116443044513748239103860833866684448742961274253498127480314637591915762478654342626150471639927324542437717357110585473369673080337501727342094684597856008113509338646950132678150645747395113155788783506458870202945535662353527119376493048666921533161322291502369718442595557239381496634202416376507655575305727411371199055364729383428327182435263832129005726010912582989070408239703782458419909453908033269437436362305624649508378864592395328671091004228906753857679770173123599779042656344155466596582941498599887040586072677848571344785555394277900040096288157218899053805747146649568424629220942691070777212909802220168133297077952232073457208596099292421903835421053628068572769741223842111917213967438012001954419536411769580840146571787664514164173695794703904685227808894007476770006132745874504134373671417883983267740883279154408819118737903614035864515462253469062913530800439109603133309643404288327263567565349118885752218446520757123158552109936937868437452180067747371444951881559068239795497000604949884359328868382136583365661530881554260856531311133841647944548083238723849839738089880001653179540536487786174774479078777011082841918434581043051891378023676328577698705653927485704294394531547026453821690634215773310915312875329065918341682985951796602868135789258924907934779274273187082408854036466596250998302300538417063227610800034416403774725461908407904586214787043035625724062090670757050376910516676608700645325568780606566894793752714304797823834874782093827730346396999487469294891436732984338865866133648857339435002828747113730866928423507402335320438784992891824953206510559145369316540140758228600439278441988510176382559009190838397640189521546443401003689195076357185576938576408075724017872989551196852199821743619007939667890921260390529523855988008103666928270357056292118829216020097334977055991131521694474449638130298112591924982168371961311221063248339331046469805931635743906169935218112011654839435659865398088068770288570326662515164536164915633777001985352618869300193819211086516400938437226866390479266230026060435678243960296946684648822087714388845556551136571730913205629340026633068402024001814217492341565813528946564969502158656057586397253319809904391840017286773003176221157529094634765071726734718709426500549156209813652221417804610467832747585447597378929080146751395014597395132129635670930589671247610069934021994541747782954164821802207195391596770792329329983362806639192731301221411673582503443650485067649476433893202280564402705502399718786665515245141148878761720712640264197576400875187461825705597063005394677664060673939479701551831048109710035623236210055519252375622741261699930382599824992532709034065396935867534560587832829733516856387707617082867705541859867469921632729864972117230330309600407002135836691928349352573756518006670872471899721822154818641505642538497499214236410013272411227491641673345389693595342629502362079626305892939565172768906807203062369264490220142066805844250681341327627598704568133036111365527895239080756347216063771011376971909684768098163924324789333793803522777247507507053398283225539193148832795616005417443126028135870454145513865654954571441685371701217565655677064332228298381675191465022682482182297523948426816568437650828751941397761259601469461498964768531788607483408029632002283843075925348859911491430639511627256110642451849389200931071137672152916911564154692091400639508450435896210091782679415188836262871684471001304795992601500949975656432620562123719455391401001483562486779769326172616748129818449757610536800458997344428225213599211328359244139208398973992961180291951103181552565330290234098397612478417083990314116418501090048841916644076258738561119786305554591284775410625938653848606402136675933968455220574870432741458086821576243311443660301820496327055489856382203843890521147347431871091296746259143645654128835712999217247206587932682918485333921209996623993036146041833527121215990034699461199021300376915338476657663873114864065358540655851954178882207355299054028465038953134898621233795472230442121876130182981218417259214893152489387069612635061157612516862961650381184004708552703551034782482773553735713741895009038298463229152997285305964882995631151114428803155871677785893334575407124581671233607147246390513009265196485815363653391360091065059094911786213712878991581529663916256288138896378403191571589942455254120777843835986176329213782434407290974068657505908366647802028035992812869093464112579244695920609969985662762881865922734778125044528766704292306532919211853555457552797542596907533622674487329244721186839284533961184471358397769441370021510153366049615277845176474078126513144797996149176247579701668548607866640785015901419838975397046913433791259979067394803895042186617374885143712568635820055871448476005419630278343579219594096373015003886752406150474152397625213753505751273392997733057249863491527325847209983586901706263387820489982266757791576085538486971253368306551817524780099808071245729087339574129631181485268707131661460524591590875856323994143163703982664590727155946619140574666313158982000769607929740244504639673289484781066432103333107489844662097133073819428840009348905154593539523614125886912310265720177934950218351811952543388745193935635927255558703806722198871172539346307707537601697808254908612420275117029001508128591353194327213774071312959768255551319877700935743172924737657161661083065748658101333825898669952292446702716884225858173610075796740163557013628496309349576030274194391275731875853965697968325081566514186317438754752689021717183780388419387282870062233980805512205586415374975436791191218395029056925341307316380171080042690534338798737671156952682107634357431635069532226049723779728622645773581090955421615766160202370870220561872190357837410467965113348097817178205295815198534555678357064599868483992807784162512162812960311581767074708005325424559924012462258770582209075767165527682338443856848689428438692543248982421253641643460481781858774498546143709651043198916487925424085823658895116253060380123796593556576596349028777408791066569151885692326804637861041757339048526924917563223288130272642234422796011891205471902841859968494951872478971857564311602026287655622419405314302681271311484958148423150451182478673557959553891669361937399790748137727040280008308587280851186375365573734518487684258722673733980254107106078161523904559294473243488218737978144503024532405451240361903731163585641418088526074270858940644181540178879819439383300980482438088337202912295919155043337349244629282777858995537896287713859634356429352688958823177343664783253625050612209582271642564207425408458649417304994044855893496466166169987118266133728448228772547228515110422774362727989343144511325083983927668647549189765722597584563564275479750439328040286367434223596147027435856381089846077989274479759653610919880038025007624628434511218174329405125423491945752855171507912159925800687450562789516177991367092001122021694159974034260672167558423852594668832148165679060672209215022091396408800934960177889320608757946610506154690733158234568872710239207241204303359167293458454649249601252263288678508801835948125929037519393825210190030226551677948920477051496928553445478648886810956927580945415982492238332033047790130173971110386172759251761220586174845813213510222444541843882114993513664235299935687962089271349060578844720779963651620519097505884687223389998312339429351102789070535059769083366338511754843943764382790317614410617939839968600442113671706150009726246955091748072666086755723611001635362179689575210574103067679632827677847919114647437784977434109145573212898044092515123720835584100903629095066608649608265435253367633997922325261487334080362406749262594278808187906647358020251951316283472196229027965865049531445176956309911182187409265717619990133814553700360854608260502470144871555588621335226096256332452583076352357385834003994614905798154222399743947497207811032294892381895079593789443289962664849331021095338619496355555901341964164932138671023481289627173344297783722294339461483943155082027752921003409877050370794640201853233257670267862863488137420971118733354565164369700778814840804472763476076112578648154243686672427105155094224949736955953159000764033773222778311654893987828469375338409977840198761768289862676846174348982091476482721584235045124384700651787055439724887804531568432866336179834826488240737023384991166993235352924956559559581093540532479070560161185597945383772439475337358277453812830753280459798684066606535136638547760428615756616962641973703541737389137601355998954906981068764545675598042716731599174558160893043921494902817997724398598900599424968588800316606426338686168488289165812689699680734807059831055116185087151606674636216990816590942076374126025893775677105446014893774030993717540340577419900311621683878459632375621030644887866975582801113500393065226424160994262411977345805928220703344037248192433530653434710503211532677092834418447321613389425832771324717577144231526627777042451215213258453512373846555659403066522448944797227757631967135874345747296798007409562837943962598027616953176415030372107456850095198701598219587074114213221801898727068998557906461966669957942340569488591939999166538642638149480234749790409870865755382788852284502171636977482620381156857136519557284773232210247640177110392318433527428668406631129669713648571163831087903347549747436568589545768852629639519650001747752586378398302988562180896812942980067145618971053619636731568332703919955716621063684062525778687367736835321154397691241911158371575763614148890100385865920128634234458249631734785685555615218717666491357036687628472641045587860023780567039296423863221071669908297047528979828433915016284625291423901423085009677985934469287036486656813576762976788703903237892008575224748850665204728224322466574681748969216353720887333900437264461667290679229578143879362167881907570333530132789875110094630269853764853963241269623677202204064897394174724877291885747552067793651229021415306249464126491036201705165330304374545991516274955649376267455029004070784099651340679838814396747857919951288574544387529009898347763685265756335135126563193030902995775131415234360679809103932820711497088144638075658551609203567030047595466325847383848263743311423978199714677313611257036354421903292852376118717366752251144549726128778517852076385372924784591267149889533788951079814866923962826674297756705892389468799488133526916444644169758557466537464219111939685174692568314456218359977545076217668618269977901624627463277616677424808801602851752522182851042585218613864048861034531405997275151842729562753815875734755417228325601691579603274476233845062655116270003157182891606298474215309622254968057462761047711248580851374245528113187998529674001226508519481790376044052231981210598975174853532279056032789482222462235763893985417191255249414718771724908999707186182840124703270197724292230190712955483406906025240744523667955041127815760486827804738634816647557170518359454819974039091280444250011740783831408381323592003412309089085044060971107352072937570446620153729767420981491347770681185126965649976062204126398121033491996272660372693412100502595833701516029952362597672859229969707682999859778545704639997114528589456331810090184801471201784608026277543712916730205700202028389826628341177410208744638512308978543795987473588165291002935126123987070896015207886816212194315598284863118628239663979955608257263596423033657128405383429319680401198863389476049714360332327318005291133192306688826038860785666050899990973559344565545775906068620289591851256756122228946918549785642643207721563891270184476359745190551086150599250927660112497176586312089101763280651635770767931864696961436536811495344820398710901626405162996253007802581860997538232914129760116065321237559136754436343524908761514894885094217947666381197147493791625262300175940023083195253150098183420968002439153040761685392885960143425944219450751247700421513239596087224146507004352147045688981772083628162668670086881608240360726950201055588424892311445847643566234018222650167626313542441852073902270315076556136784773405128090868346359510122184426176747392821507839097793145338859181950836488888300455148035736418712981682978259930770887527544742724092656141307773523543806981194627638978421510237335523089150471075106926185889349356340822307809307364099199465083213416168818529204547270351104077190143735463399203562471848433195888454982676028494862909226867977136359865385881162837889013093309324630289589145449197205552419056697592586806307660357964601303882157896652329115100904703193243703967542199883146160298177871726006468114976845559527397304400596689870862557367169203042941786213393468401120102156396277135348565093406000481092455600316929779029455442275051113940704467554999087200388038071462729166113599015602275900403135645323269729876200198299634061466069239544269783389313756224253359319579541106555990386840712081927896513190988319669339995343375932782057887550339812562252871939198907431408659793745019200776337476899303682042749576396501148548577156702616947098355617133229172643194681271625614685873704730565873059382731980287226480552064504503434516348931153618351964308172239671338534772239663482677935372861092999910983909076279079355570034438746168326029193609454887762253626388940676758904773989035528258437604953275456807195404981037636266410659369307523710253120224694219953529061889365995841611589712933180707504043421077419454368883213247687961117289654906280817162860184709840573137189100529572510780048906111581206837245708802554084318582501580805673116022594793780922955612457480063069928186916940067062983043942760768156749843507207366482802471752865478215092745903828031174102588669441723728666555355456963105393300652424332560557960183466071934483549551338779450533105169403676154270084952364870334402446018173362135282349029878896639808235663075909216142486926813527246778883282440191015936809165337979227612900617215714836757766363010162859330375171078888347141278893526370073410570530190619246007731080117112175158995161669945268390829632433683748391972647092328870325170541154680155427596328859519856776666749493271387942922510645584687602125374703657993457658959816819453534956290517626573680781605062765062051713353084641521068518157824100919014018395702333085243972559848242518118967464851333348408782742920774820576560765719894016181963582768788998034803723631594346765458636439166668897523339179850156140706104385947550600329542629159354048199455012247111101357008726730998024801313257758368242112291939060177582334555991703956069878831927805967782554832739528868078355228529594981442453270944018851241824021463271311065742159279886204723597618043238675948281264274857538998549796376390336686567205259708826757810328092616607835745249752177121524086047318459243657193578490848227456970674860168916856931315031407828660046843697156141042632810205528978451472010587062281841864785995577410785071326346833026732083754797925399313387236685817373879741833852618326681961927259294155180480838317263372114799051598787168200198174634564244378937610719860735382506342064306840637274903076596764783245525051102725761098618751281900710808031681960975869247187374763381632882977734010397928120054998465972826815183117675956321288217308724433819840293486139239935938413121943853286453436029495560773113263419665431617892881738675650457144040256589356715140880333233580549677529062830743228313206625501473391574480889962360999786356947516993329255180953667291599257292187633583310900515295906892286440113464594908138248288277019075294841961790948544865753274696432052582354757105561768561508769296202660447376532364518283528388943821994084299993579201989855371524761932863188642352269035573595097309362936460656689377284609603083371810451606140030682728656527197559928161529483298133809941408793450923391199138497981874722050523322467025726949004002575242500783246874513746595144954399233106033556739414093519312474626896758877806351639377098753134986232525116482594919047901614927259270092864614336979564576020539175468999325570638639901814060959641602458921668650722892661717611231250112757322472778506722585550364062936371508645758109818399922852370025128107405221766603907823408027876013314324379868260275149726383924804853729280816888021625718342381297008526069056581255755186649635189625752775015379098678444368820407201213055236578098679502124519133317322006456756356280941305197528782379503903312630923558802497046427194068249571087703735543557430600686390752481284302173979508687623441438976282978919411308594279463790358095391815418303662223508230208546486952957410259359735783648729928664513200755164303748432804832186917582664785620888608905785792086719187793132780816010915961665317514622674324906055344332678952573988515699919954836733281361463666085612174111685363862153842571155416499266615230716757245942806763150923575346455430034628996845509698981398134036178895924648697479044172481799312746320417181612544359967292502212180477817434957444798203301774665055675198404400542665299885969488363028655192101137650172644175181869108956111468587843539870464184057232579772203714654975333133982861041542024236135673856820258768177575304979141494280418801348150744465275638130393582119028815580374230368479713411345234113641761058376399387902272710308672729443751320105978476948720163992724523860763276731042219915043956607012953884282691578776114611678411594054587673575637497957622846262453883863013107309737565506137747759851653257159238511418982067631477795017367717332308139636878245814842716988488372488852235143256114090536232918388628537726191728318300721265964481394247696853076396913944490370747667441302407853224884161491970911665869242279124431171688959846364472063752311078200509955359625118933880008742987658014066516087835227941604315225136591469960296680094123619508884031585437877659716193333901613866116652829341336516996407012153638832622700932979647255989910306002748191997488637842215903094360890722543943405696369520445864458080210598323281973589921558937822371335736177954358098749122130003434693038842921085604139808057657091757289071125007377212168697227945100309118568587085858605935124945843235369111366404805273850884383226492453941836054028815232203291327483405207328456883590182351399175439079071223716222127736416312289837059947695689129657715744085758987194150600069354676638271779547790891759038323925503251520571904979757258972148561619705382460076828939244552254245246096977895660736924766689863834032545623275335700030261987988967708233639881488714780230944243105029792656339951369831515563313624757185914984315045400374824893950909029457229257408518807422397892185607654426843551825432540517828480394909791445048468138287181576771881707523738994864547816579185701652534380446212288498122765827993998626950698510824943015196255310338408717226268807794123208436324477056747397003352306345392969945142598484639542109807788732405550489061423982578892378299011175801149081376112469564105653092822017164239692262757568885404695021306088005769604929254438450072347735414481530967599277551256066907940391834054861141064744263029363263033926837882982076188665365135629145613771497321027189806070748634124878373216904055180404090992842046620667927026111484417559496148063755871317627229693329074575106636357057373216956827989418885589426295682067147568126984216918805406909201278865053912081709902097154249414673913825367089146920284095675986423916362384016962344472064614589267923134171563221147685550107077026360938073522768837407631748787148499644673540045132161019450425390788408470505365515047778973564211380975110669390145405037035929146646867806620214445826353386101255022657310831860081043301698163673768479834663212317202107545298581931552518195953169325953178691860424883874512400241072601488686189624503590454700655890380387742625703497965354218428642701138565996210432940060775859305590451472103761848609412190808040163670557916246487098085684141242225059795580577758189556389214493649420047637000177508062491669048185193971981454390555637232351854183248097354813849699958622443212817185748747316321729187489372184793661878038068280526289832152833875419613246338038363341030900404324369287983182353422633950789988705933385850616397408774334509115504669821920885784747546119309306375897927510368709844742146663072755346065670511970811559952725125242882184257718596615824904586023989402630984538555448195104174430925990590893078479681558207070307444804597011211186675879629415356857694433238280466275930561441717638535021930520857625850313137633943573277613771471897569124645226262062881493574216239418254443522089848569390491996789036762379974550328060163872064819959138929711191287970183323713590856780246182126538377951984361998738702858268224405720014437816226036112472751073701677089933570610263511816882320186547089043925471848173130212322497576628590153316368105720929048428849632776883055855626671629655249866933579438185660145672291126135630238340332641622330660374746255848960709409003612318028847340963753407612627576837263949165045706789416067547276812237398467867245780475757938145477222492724971159875299210688164744277578442465926022497737921820559556940901836315337701338414214664758873511928709707887376030413393758135303173422199702714087494896782406313403766871900389340884524169745328122697682632028708871039412558659244608960927398489409898164369120464051603451740607149064036038737004789256942483070842580919527661469862881500417223816894188194324037711059770432870820595899427992888220673431932133132710818274138992303931475189966153203227437775741186451389847080670611157689778605373771989702107110752292404324064888596370935855530729033678833570202189586363526453451102551086795177446495672368323437412947274177830681071560828799666297985364029748307669355527048406821912588157279290776419204760674431904572302617399559429170769984603946336875611078890075648289490365825913797801595145193165627186393404168585065607812044164368517892326076821233643328871066382184018335167225366779116564989427054228713777327799212845935015726472570560231336728059245854235695836545237555085896285864168297716747677162654652232236242161851560779733019792016369707373085778821673744522614899881543579967215463151855940973236147670851303703914827731775935992035257196120580888154244931279513883635076562352052005288801781380088872888105967099945305526658217968872532861596217748180545381466948739472689801741100632386107041436509598496109866719584300666344284315879578637286281777471112869259085287961108840724246212884587362140510592014212827260831652218098421399199285702823035522508666789069567355690997398796772469326241323876691301177026153347804790797569251210644505655047241359242186715220743986769415201336562249817132325117968287867176923844690770241864385404290927767744479021875240332785426212412544792377322532393882793261263462025417707620798327208812650573034468636932848005456437296465966192017752230759822719757642588044384889215331269592299919254934793128733849098034450407062928054025777928681638528901785892774656451234920485624456906464237105898710726048093686230705447704477381639493908896529791408372981134664607746642935366599276238410323380518755371628003000286221393053468581540901875971615925379584435451859710459135043528519614314774181031795926093456670957774604132143498558597077349543004806893089856501358310814607589986156860907543034629428859000345778953940674514142418204958763127798749419779860907555263609085935187244905782529872314831369478814610997546115394680970180143938222872376550195398475182887603857158905476419836542033347719957387806994650158405077030895866231703145672185450198272828780209068320068094718117100163572158033721379924247765225075452433593155709682583937289791283771572862064436993973357446574417578177811861614158126395113072350167037961430747089254563731880535832801063200468334101766073567653913354101939752705360521851473001588489298528412241226226281699824602853158887194087040361585552905066293933995101645363119896155275363610006541212649437429281970600904772338269941689297152158180509599569459600033565006919038623395052898720387821073776628168859456032618160301269326062574310630516138628697621082630630005321702081538340352782904044882801520170399845663081733541576083963457742007244242770985918047187723539397757925387432839656850525534608594387965920058596183453941272114785441626871704181599901337588551835980133086549372862877130463326932533345058272745804628161118135861915825397673802070635909094062043901605380301725046423675284929916078285711458366894708590291787068121158917237697847558528484617588059837461592665329662170440721807086448346510188524895252865476295362062488108743610225768771451373609542115947586296832057386314814598108537269998203133044734558574447694264974697272329513797382301310910341502182608750787751883341834951383256682892706031489620573831342483407015230273191228130323018692514502110252931754165741085747586880120315237936738295556669038382640131911179330788957075602214076006929408599939885700107795172843184229574740647749091494066544692355458103145216612129019415302692535999437403001201016501234420577468564751293583988299654184251276413903347229411393134323199214872973197729060054297112957005767242460645237876150608524468675582765315479287290019099888026286689673116206969953748892366175783826888397649927079454592853009340832991512858649530631437600570204814616568705902941441149627183995973838900186064247217996854798613367571734936193502480169956706858659041219280304383777763570557777310897684941109216795662160110075222640405773155412993237450896310825963927752266853483927062554356959921158326965779102482121569838369355737019246703600062718632679125540953976372139067111416337291546361508455218036621542205383905873105999109681443650759804121859179896943413536790210915338497343702333194199742824101723747762539398322066363506635046211708963788886320848735692515212235161703045978714251969249014307255734932440631583540688939033833917779930840555717088269887301486263420637803038947178433416931979852192336189628587615562259389799510486330514648427698421857110804123646970873916648826317214493675730333469441341713361920726889714759864199550095852102459922693636879534743651595312436769252984709879023794741594999755521313007127831607540751186370168473290600508934360298910511782566809282318251870224571822131782019434294699974015663467357994837740397378012267472393163770185015498119442092918098755359587067929209859115316158003288306827636344651029791943900340535423225647352175919014789446346416930925320184187003229998915595080602233813657019750049423916926649732937377586553739256617275624730999418155453335747605768662498997390801517721969592258662110869708520307419864219959072019876132776148855247199785002971820787855695762059925399485006063875866205285219217894927872891688376245190589044431341192632576961634299746813955741906009849954377591688640898059599668332766252021019749678074574739984200621169306142634294079633303088586803900851804215220530103623659073639566509590078110651588458024518108364069513750690246551105334718239967848771549846619394223828622723329556315193807447748091630868355304669746389260155437916246542107644477704205598047116117623303272144597983282988847845249531290745542151290036949351979305546250053618419611927585832286040524954796719046134529069866119520415717747630423227058888074327275382633377265071252703710864571492970152909148952175135517507621078423502178707516048504112131932320889421043093954856079859112473690721009682312569823158060591201715058899178011198656456116835062303540047557887650442358698134501348562799325322677601210533993763745714957234054903759780500710625352149786932896458091876111377184095115133280023941874808102028159095512148016808635668847853112151204320068061766331216409143521419075025115310234659927914369326570094444976136753536129685189331889113631774847868089832912346552531150708889643872410132682279623212575716616751432359373291727483890079209792108726297821435834383708397004422178494722460890610577440202846823718716039863098280022805143958659487757984436639663029529168108590815300744617294539310959538430133419518509817009548509723681952763507213970404124156784729606055175686655194818402389921831489438202186712380003933192022867585412608930069003521963700015854912003369927956995986676547778565614546663422059199215324889173398462265255285682946185003253790894634517893119916261320525330434630207730013894771317417381767677347680452814472823579690732986759406971911689779506557935336253339429985128625841077786902563088812259010403518075145941990277631406423548923067316219514437833905002784739160682789740132385372222304523100360578175672361145147082738497436979785548616879126091923139044284077597149913710074479154082360465328733519139574918218489893778157690124123751037924883695864153802438949517349901303374215488406284233348233432247287207504307021186198607000569041602976562225273462471104894039132190637140305587657112227692314932517362022644859797438002374734949308566864155272213920683116182724283965191065486122766586283354745377330801878193066995347401047942320042884193323672977936158240954880132528188960074210739667094631177121345402287152085681093758637913695320825837189857897269900718820517679458488817630318303325103288958189411915661438323224140272346103413655882953952797292243215040068452389161676543194031218438691058246102398195295791933142170004468912605914495404487079668846730775972328841797422171354239052610971647869556529082780078996219966957622668465433492475000754392381382586068158242478306714587778579804085295334012564021132030306363342872562226465516484646590503852780482290330040885676569325104137927855279606217611726883398464678170631307195026489563651811036706665640165584625376863086103751407870351339617565135780986637561681905792021894306855613036577678304654013254304969379158606488423447046495765772574581871900116664221273297588724239024276782739858512973082396323433345922975002458374238857416270435394922671457997098290569173374560739960596113121466611540012151268151031321355598019395477748977093444290795185755628638556593023432962539870566530975434569006900384635411200617545218304035118675862775714314955073439649195841687846604640555869598335428643173705904716722221370661502424093153709873173126925993447938038258448212931838294099992788585346157979342489415939814939569757221838459827384492429223514456957482494380476321332740727899753685075667516133345910149531652423768222306717364305091228368889901261645491516231421657813423078541987488876523572377896033570749339812892952526906891360067015198866007510031577624770908558104975888963969138372715406369235406828756285262465087701822443023486832417546735049750429873133913652081269046449501473612551574727043834806686287680900663999339054867700416009085030184388120620127837733376097381917243987747581940420916095913971348368833836500579948430061095962186855791873599371892885661858190087512350565510727110919149818142810836698382827744720641036806312301955176837310319044197824686090246691509223815732459636925202281819471799256556641678144539114068639557326979789123306477632280918706677868388601588779873632358004563935214644649112864108951881884829520241660621756902006815290935254532760502772285065426881720683813965025305541126030559334445811369496450639610260301462702650055428252993454119884518888943226935349618761235585659805324295464243210388756794064764147806978013151651776715903520274726994100331417700413054775457658591079213033069798655234650958428352567874783301951068801030203803111821098820026748580971820151001220667802110053240567818324472198486599499247882591729900073443162833448502124527681108838462164121280088862425653152462858650661882302040739296989189403076666013549883086924038694783212769215884008703720980439005102596369335823398875957993791795180927612115181172545578084703659497908158410399712793822166356407902580500613359409694580470817823464144844269409022393720684152240549396388401704573774499370330916745347688512600264823210210794495472940560891183788406670951025289347655347956462276548109094145054425867247799234879407918304125802570824811097588721037196015697514557041813969678224119131790044769433979641342732951278149938424672399601192909182187134003537816535423172358225903685077893076155141518828292688213440714012782640382858668550306545639939517998181033535582377268438518557524304569001516365606166430671155077131181259199596464441489719909415613882455879860137862297999441884734366570958624774127066122329657570266127863838445279116011253709124220200306821823511258907792200853678202090133909023108454892377988920384999080934252517563549771908345364782489155021026460880818327014850893088503131976146613698492454406050593267551629013291731349565821391818931237423241930556823709886946433193040420664712577468484354411518436493508830952175572743879800363344347229189394506483857280345734990677907229457497957852655130088335640443437690698467588384076052976472880189574616735094204606246783154139864782321978673405630738311809001139337368386954187763595865689819300876760516321863675366011001809047446843563767162063286307624134734030907266378760383221824064499789177683312931092187220387961772946250011856608424429304736838762629473946028561201949891245831940280030911041042216338573558841701024014866329661466080264672328379946070689142879214151333891661953095661414600590896385250558490094620463543076506674044330929213430776431704887288409191978047958388531745454261253999097442441665206869647179538660451665171904618539743473175392853101458976144367590138625602549082801839978430117129830300135189714288279013242633578946227258117728531501944015170018803068164886818740339383424318360764842292026753745489517358757359901532296228941405242876405059116002982304357331172970998747373144060685216476859289017794372779244111548602577381850975988364541873667685291590291104350816884963597025087290242594705546522546666770638071034034531284870663691784413768558044438501997710391306134203606692151930155342148470278574336000830613794294957504225232903528524519348195471356824918330654976505780243243652408520187887879634840474949984067598297643263168294392197846989476376003206771404867460630785575970137678338518241534440719069279419477840517364882964109658809702698730710946279248005139531490330176529231260886419635721848965938258003127667137265513406508372206583416739554572207933428811799167493181989725940510842688914202994701678865129865781926808829458566587335615164056528943275634999461407973177811581159548825375115339868277438513745363986759817849110033442437266926408481876601897175559484660895999218917458031454913251474750441424643136317523599135662523612140353725101460108718958875658414701202804052366219663085821903014935251456058588183218954724271006062462041984777481322382772848457139843344047108566007157672694083356858492459068720674766030063630410147311137324041433694675256244626706273311596739951033226830347370655453270396010692321156701624897151099368428443536872657384083554548414896828432934964323448327779872249610603706395280260601433070584470093036610020126092201994359200710320909830030250607782352458268958798392653445694918919826118133915103049077471616694190753974238475574788107794150262172455528918669372754202207604906549549018340157760342527012458665075665290330831107154324506893749919082405060223357789720984165930044695197835465450024184679437525498607291270000361274226704118266764110493832500724865564799818160462182047768038258333820769611862414935647704815222936560084496941660603826770081777399473571048029150672872778550625506625300584169659990569521297669475674768321188667246448263244144223957482546663111399504426840830123244717120672626803227312091218837633257298205443113146788860891455112466436598334058882663144516944239330599246591056720880525863193385372252919137492340606976322789558662937693644651052834896872281918806683082733751083864494715718454905690969200601191676489855068381489358105583373340093664273850559571374537636607700490530677152513160040390493735608060939616677744948538734784964482949619306679400628872417028503736718094690404930695281557682077730807613337331996498342998245411247612581432419801776557114147995788018740404523154496261194021429924996235731590846753154356834789544056198669724369727785446123068524427313050559299384931145998798980903399799002316158828423186912202885719778534264477051087145035641668655691964477940439168833107864627131424413933720545400582773052291311328901611137942096417579884935941413481816533203379007267584446775257269176048938708922852606365301574538657129918003000487469777605840554651082513004919585915326854723037769084474128498334999513933777789988643026973098589027963468196565771729730788579970408886455276947121181505077847823070708085826744972865871729054069673283048483900430964105688458054921439602225868169217411100820814988368684793390096562055100515676197061705515653230089408119982310197177911769966059637792381509620435846995738034630448579342185413661396125953876751540456133176897333850178206925845941056322282410259012984328314674100969930629414273217549720112068657474156189516252731778286413904318489343302940681835395145776023685724380233793862049151913475068092537645518250014316981353493599244243073858135510800397537708927320720677880498172339591098318664343429555365878325646811003359220038236454380199048066780744157167085625120563615201633945632124860057040855388152016240141674621701684991773772193895505434218892376688847311850114928852657042122763957303243614974802965674240825801912636615663802552981408814759366345046565451583675431331375540672680287377227855209111627689238267799695410503713537710013046664500883270377548487799651823579538282250807757699698423935973957991340261500664901929903727139509076587721599768044406752191580156737828742658444522046156405178595375204869402112453773672856027095417979773490598463263393587282788704034392359822776772047314266310142489420452982900778253257701389708453147924816541334747737129514079296551503687964445609593820335445695433834733859070765936711511388788734815073956705989078269517585211769015434809961313800692337739694544325133946111092701207096679969504442294194321647148593843567775081684300271838090384228202558273032590560608842090588078734960145739121324317531872667580605134725692363265038787850568378445979380605804554441906093435196475400542735235940936021583858914383579011735667613152582899779696075266669634325250284641535410666173934280400564674659379500477716585260941400573375853521378716533735093617054713152680876199110850158531186857832524602321246145795129461482362035394195483707776073020441922348229251422691042054201402236576695605105783422580405218946876094426824952039420675855017478491586522468495795382810094912970861067335041265941388729235721812624788247632778543608285794709820713428838731760457305175602123532141830978540034238158310505203740409020341850373353850671085502172374372479121798850413335079180236083055987100732328553786365232936107038003383178838827417906940554755805078851919411762629140626303277331607803853533006140040638588042229111533354232936107225092780048497851121395908266501370658905419877376051434241675528871789360555288860724110811849508150729428950948134341900355474342186178265781600026282012915522459896268684207046426402785245854747121855135456333709653637964879340515139417454037885521626718612489387067172119887584895745217626262124367345120686360812810509167305914276362918701897709818389346869895534011947745655793164230060292370850067229108158935779498428070488219876626160004638671170490541535299064408840307705186328430672823454391309228658673598912415674128035959258745899792250142475521912159420616444872941636187969660882163900844190797665325875076406585304859657089995498504371997759179305400594863089161457353624976261797318326716232952296378226643957741184445199571271635535420748124338974456647548231304520410001644190949801994258274182088254631306460210637830933103124176493877501434501108914706764866380079071461702953542828823495654756023015555356338023543092185801327560061688403143875922639507475759040254796718670629539838813698155079999463776969519031017812232116086807131482744732400621877304390961717219081268969591644921841151425140647600455192709019740617889260537070740640829962321933936569585327098113144096226798212108029693922738876967633386803086512233721776362985670347784087490922221657097676304816496464172782301901599228833745152731746811560515953192503749936140873661968472581626907776156998813824060397027673949197591013731731339902404960437860971662073478123871136747552617558121095544877638174893008989372374568400114580685274288235854180193306452645757959244809672594804269039525882990401513677838962172351895639282526979706188726813770382283995932716945118471756242127179662856406190971301768241666844841283141423307919429905265067939634159889148322051806535820476530591394496208270613261730317159426486187064343640333045912807869587704242160700434693765566929147446199818403059267234343470291895201808961869235958502019565197673562250608283167003198762498782865574040172962243057302210009828953825077003289347185506880302972011758194443706901251664664643312759599484529915175104108752280611450600877776257041518949285643523966676720890672185018954107484317611114012067103914077192750292045650067178485366396156895181548890319316859148089149465723143695015872250981457052140041443056657540984016374889416213607176295913328791646883477449488067231671916774122033720578072122720411960341635892880574700501500003985725366440267752041585198231719233646840754339199708090049060843088877689795817104519223639919847359414564211723827937681465439359128140367297751904162101966916414859441774029086293580253183410714882111402830460209001898171612556010299995285453130159280288970960435899191471586179123442777051703288854024757949882293296992530350749954209428761601050996603631334697629063329958613661720516726757740401086545512137235859056614039175256148553171525254595725561969504131267872119937078352214510517344997680375262485625280461278385688298484398369408681131182622581019547647481752763225800691556776466029370767261034112352219352192486836595835979314256327171531301934545484039685184951746182795022726014872334771765466109616143386444964215037606370302634667189767455237175879980002173458549034456887966475592863089032685435771776291603963465998124082802452481522250141157695504651985441436101222732437299817737549705556275219962865905655198219695579549604637201466763299781333054156682846942926565351858640037148166318542740050115668618116331124217141231554764853302379933807815710432208671640353298976526107576819751781958903979266876927954933787602802865752238328385313976510796455020746020181183754461047124251643266005515569538202147660902907408222191308143271988183068598280959607826534780345158886024004949972905114231945862165912835389659497729426053671042478421294461413633873168624883177580004611178038927253372310740317354860381550242356610030585972531100790624465843258455687136409789994344489103980776971396076208907864501293405443630611452243082625491971801421031474396230786664610483649667709823645360022728449725943300246592050005169328154397874759659826821163635824429463786713683065606305715658392578664196679174055451308288885569759756942950513964730701956576226666685343574683133955606085270136955224680936554861083179493083345094245193742808130263794530057156551679970973047169392892763614778023391906173723411603482888308836841466397380205599261924718654410941998528729219918623169646262610349874165608290662438561612974835395834312389247080393016053638861374058514566785969109308874976557710289352185978952202264119231962083081266097053121655611711797220617576242974755538255501017597895497162518109304450432683202324378345769000805798051037859272277517112257877946646858744097556096725806266945286703360474214517463245144242227015397636264543357074520725540097385277647861531369347252551320842560006567826708757318456725346654726010324134098612068188985164817880911946745353037216288251322980188598874538547686560424544881903855755876927681524929589286620233112601728826576474824157646126985866583686558450596848756079400158930057463447581206900154253393284522339395432980372900043770970890976103816924632783391831975844995025542386382305201279489623507640834293141602221489795784337492440960746095584547979088052576740930635033624455994635203721122371141173974213323695542731729113231132922474889899698708466576516908762716646203383503828109657755963842116412922718030399985923769584875736585513581851023197056550079553617138625292256254176545689122302777608787351812809040370441846338586617889593760588019722879335457698225956118630793270098831684487316458508081477070399471546054529553515057774796425747577621653903235108806000122178944016589006396299876077837722708228070348495492217818705624826173702211003004627596450599525519701055696449426896815141809504070146905579973996282772589003620037295624660203392666907723363213056094675934596211764736569509412183190912966989462054855597771590059997093466565043074813439854311341444062566592506904778166657686172539977036524969297045291024049587330500157985968291649220511744110247958224418580690405729729361574400643354764623193399583050628339168268819739086906938012669822262703417177324135280297886565608763413905316529171797596773606247300401911646203412375708808566033066297976260798409421167359798248953567766218613637595603942919402085350154866601993779757499509342728263543360910191634724851341543801398500669302378548029461612882861715891691145628580280948931583669935143570565278019411455912474805721472484905393269568781154011306984180966196434258092469221962975616698383159921330549689056751317647012566417447654485397064120053973134176166908298120067848633211253221541462922191506876947581470247258003105396621336904359839551939568813968730847540789841049211559066109050596285120071283016366940843174585308732185434703668891709162544337394621589554091844418405858887052218789716499026779652224345201451550805752929401022522882925603028530654411000228736799659093748225526620398388352163720378534613572147912475014180172191106687429060399992348754981131647838150669754432710025451429800993368462569994191390707015262109747241648862066393555443161274663407009973908458232571223704874913195038391015642663067668897346723430789106610165770882887142221869754016874457263832727453673872915670612008762116367818992688424758525453887145079319911194175274732582079817808801251380894697806190354546128382743036113111683357524620068636510238029102276286994199046265571868717221015680775333419761584452934966377652517026021430296927451639520709572267949854687413024200702156073278485890858999962225871359050491219965964416785867880741075258437940837855711167906447388651709394530273515650711497965701636606315568866539976670689860255514370659543259608606867091893393016756047655298906453954403573202831920092029236806148848752389190234376904679932487852562870542655938065992661229001335258418962023798677914880195892647443799324977829950131829362348960203249420964906222583257636250242541318073676989176639291423695542276411355741488366891223765627155083834961641936161739669483861408226726222420800790968939054370885266416118030120196859751160416142711108354049690101566693428317504151803489867893380698686984147263802368571922041923796274492020705549125388136697683544066806423525574439152703331202651639626228643850992073292466345654249157354851880185438615964524998711550591888652945585027072299497467356024420796589129882607678335342023784097283803554222997004081955952637911595072011511113639356697125005334462330097009185549849171326427492648872997860396205232578358895857307601011104577712583911498418836158882816965339319706006303797334971109114303685058873975742290510426844613378217115906144291691194608279768540730348237122251282439797663855475353273403475298302614399651277297225095014793835818556963452541386970754807301497208370832178686462023126176790014453813150383826784089579919852092765430450425104725983517966577919961413818784328798685943721851296617352458062348124794143444261352067551903170804820930129417016241820004779177785393329214032491310088507672803800671957701187584831502516240274743275183483281648585265086248786811616324377731821578278943691504299109404194701874652246278570236507867806249551568085421445324777440732163108809648534684715832663929509334330794920308770176613652174756414712433809153151415838821569661609843225639179229357994449038917477706399866430647436229111754044036905088176923126287029451436590310457202584634866912599797232709187014696737040217248678137229460867334924269818318033598866602316313950452819880023891671300569636170961714059029981923895530833909471149516289747852375665938597098102631631146945258859491809678665066863583038284134499777023238961586603856358153064628583532388855046858037193528659995784723120650275258239452010834919989811327795721089933696123797294792611079363779907649026950234829594017714062294188515913125242546397317345906301426300996107179279783008631751095098617483352258339029386253739080041442055805790479482433692321254762121591273250875263537897831483892684606206624800836172570548234532186354483037091560785831135841748258724462873994613062839073011872062379461540272818324223339443740284278322549060489934470082490438072993220645436828930326420443110660964257744290790166717290457896379202912100610347716422401669513738485466106773649115019560028281361614711821505092463664140668219493971350688411259570605666021445367882328853667316769785848700426952217624966826956826105531266271254132010784993172052870380221275839928801851886261582743331410398816052204012402721857210659738320573150268523344886722035450105247846361107720574226605333615430348056892147897337042962116469207306261107840094934954360813601581854313632052864950480650294073061992915552728210381415058974856883459183495714254895685460441295053640574299056647428359346548879828367098515409419526402666718597230607785509646530143906114670881897878536629249008849262180463014171729973163648024685322669229149175051412770838866372701032225004587426946671038809389933797299877923990481481506274637312148066132023322124880883864952018708862696654244797990941575768030841836681553684469470809544981853325229743344969839624570474534251137358058368626388886639040513486354779892711445261990212536287834339986749369504163202707921725678415069354742041783864529255579244321001216806942194765043258919363941470553511671384197955262267997824281073648708114811520250517046940786741141744830670879487195721616114112600871772807353303161896375606607124482207813929257137352257290727289374418948659030546867009442383389725070835731129866487016666593911183885472811764468631755387091314088213298858596870050016600981372407891902094851796594870050586922806905215931432442587795810875630527355851643859735860115948864166211208506604673037989963193654525242576259977753936232684008321088424126916829101535420477354268081206708345895925584806161309532495181361393724247217895206870827601660221025619160089860640912141013495898017380924431367247004854494051754173864455358169745786765212672105405888917260876584975539175396813547956679332687883438107495044422493773389195962684781681433514949928421720752524371898526838048526033439384366356727257682219021091317303420409688572995422103785858624498586934670787526542290906607382714276402033428357032016021047365547604757107463301442636661532739004510897791628904684146498715645745609478957191343164189848057061255357625355681681261433502738900830309025024753513806420866672631152208454308475438397961472126708762000705021327559320921755836627434524751140889216615835046734540173080137218405026702121142364978529306829179622254737839421192100793437328341156605935600540653443968895934629717641050924377432828089796064122490576588705027355858851345983144132961897823983915916333675192039576743373086485372190878568173067474666972501532404161574452031128735308669374937187489174658378155053903592132249398977839372717494172564017833268981260314286473529142764687382879168399742531686258409227113757449441518639333691910912707500292353691226009632915909739857744085706384231613761663603428844216802564475370119631426568016240473328781802323558428861263641221463508543602928016371055712163132710431748481274738657697486272178085134768929974867352457191525747360554333157341702103272222614415578640826156444047453663676052642534055541128101402034291910157901169718726269571338618611085931079262338505550131810547379865196322721064858327252342014460879489346372612661643090908065460833461957746495856232440009233392242685648418947042703136006897127730888409203180747157504511330237830404676619869696406718049352475505821534483939278503482064056609573095935937040209483966955264129413409234671229748826374536193924877217406547730101869588481148252805235101640775243149715744551023472569999608449583683222277492003126206237209510967560058990155385847088204341530946451349327013727700391927288845057129123636124459289319501133955535511230506019338950981524412832472654478480797141077728034995845630729788747696988812017835012866104559188919010506143909110431053037372137456426884510574728841624371938777630038118443590491620168387665511252800087867285217661962386685089561761209925148369122337151651825339065465411624005991639265926321439092694518518849550262582685595269457567780627508168206145953821999062462399361461226053634658010867904365596727687901653072478054237656956334057105347331915233226975029139568669932719142129017402282680343473825635869069393119902731398146843503202970189949484233093546778794954368923447250321593706327284922158630492354382708297476332662510808726480317625290573479681997522728125170807781238334228203951551691892275487966800971761393664417354931976329679801750457476932470147820667490733792909307545669112947552061677377820113607711613052474565307385455684529775526793478658231994565372010852378258313006242705937487503078862266300430545880880605838925278115941556514792617007845540350214959001068046284322200302164849535265274435696014833758189480791011403917174725289884365997432124553855885064939342213504479882070239992366114481452207046487871846190697807698951332349984532982599404042161050677088291850745588954227604509890865130273031414336455995035939967373300408603412886783490767540470275612648246055762090338478447059886647787509702339938528262222792106822489005997053110545878995275015795986938161060057287547777061419089271265857627679053618837849007120555365309460479965317025574059558865133555457647218792087992222787480001114961072291414052085806554621988743346092904474824901634027457655886825379750949465577851189888857284463362488455218423997200499759250820217697349300864756908410279826513109314311159838643164113061206927009408052105647496605504241777017696582063132270822446892618820116048720138202230125062503357855601223615957605028659536775679311101038477203299499698978498804675972647471972588386738920624762103859914665964272243947150547514497853350828942907925262702283860892465348508983608069545934956770286766565404292233491494209781494428369552923446187432837959092254020854176339472675444578667277289820315918008615032422858782990283592139130040896660371418713197210832972815575515386693885125571042685391911275900539460857356329650127841755783381580288859212928533782683960169356857044789425385410191477118713871223249495884242524489520196085957135914385598349890981826572147975854132122296685720190769631458837704330312626627902017230472718027380447604091749021621796429811403943001835636488087543363542805960171182561678241986407285430951453200743726360480968073557497264173071799398468825093438374449696060433854582921376609918431148784119963359811049286917092185500556980170862565134215151397926067427699300296670590191460919383121599779694861397505684235502203701524581760871630484529042313286689201901251024465918219456601933865819980431847452467732043588670230122917513475376995095086209504999333481627159165346422558849477614073187875764545930022582317177980154936612698773575780936167872890454567117096617672771217347440644450924700683713677567927782693938861828199484063811522313761836048163913314940845444242787371432881534044054874691539226220613033157805607827947700545426753893724119047750531355258116591362937702237518694510017008812385059505624948535304829412641182321603061578176150755670369033838724120626291268573963329375449656425979463602116856142408725061081630194159494263710370845456681525194972942040678841773406144043721231599895056568518892776959665770810774392901358615400473352385260989416651076041497355327443764484998549965551549708370899142816980679899711738110697412014353453752734602811081861296259842062085686828050184799377898660147278171353685921806491322065779357278435742509246799136657530235996600214008556256015785073459229486117220319375017603226306413246386984199308673139708999497691639023887120006109750343991604659922108289468982864492197088158314784099794349702104715307548699276557789991771567968960718424299699634775265456311879511200869000039946989804776676859364162019041901936935313282843542725752023004485023244867560064958323773070508419434419027014575189215543410308597271905863224084252833492993724373367741486482775648386875327139284917337951756418921780460164229822757690745814514391882646405140484370020134263416150507419492153331025649714715341373532991892111474998416438476987173930485235944097183750097025491187631516196246006060365216834255321613307806171727088768877183910594761457443297010147972261773456564000310826918622714505593684672404330014015122597785101617645636618243895745266986737220806119474797754140506377017137762375722006765349257918243055086415465634099052547893491004328678672544945488248934901161813858180382504524145741030659753790354931381044201719165316871972482798390026597541360392913293062697500085453749534261899827397727989309878400369128460207020785361540531121025833640618186881215899068541049036517065396432340906069941373893360132548324908998327531289931825719286721338172728298041713697903999601129892427200432657470481141934748265548814793608886799741926830892533642115370640237125424926938499120109478181851923480901520562945273617537039028182498750712117300215060058698102732539139415381769316317109916481034363354791588614471074152212226980591905119213082588454507875102086548544480567933916013363859606380738814202515346560588139182145763876744310402882521471662960247181532046755356704337931589991791847019013101866374595039366950813464197082268862237863264881019550615605481837397455043655166178935172984000301227502514600223627530867268362635273584831808138708700030673913285364000771461253992448521570617573456927014474388392515035255690534000778099632641478116130591296689097191993726973175943348131112633071398192104912368720251201445503357673654253203779202899578512902942311711359433821423490995381813967369242530950110576691211686622922548059526280643989950298390473823670638525181690394324721291528053920939532478527944054693958421185335404559719523663869630779126438687161080942213998229182341917777872807011542042040508625539262040148141483740131562068850190676765864007437553023781132493833591007936376437627317463161962789603916094298556519496195045155900008438392213506820916504941835961142364612859094390385649805761432668632853448769789084161456935536231688772492223196194054133911694489655152592987921876550514758026361945758026736218618636423441810978147878024945631229613975935510547196913865452742065157394463389260530203393061653503541043318855618442470954617544027537833449430552857112857358785093281772228957688288037146306240798769777454062598424249277365522390728888630938373310968472878944080432189638274173446898388527448070469050258307371825057743450778465319770188676977164666946790600834577795609985762882726716159456952860405503112243681625174230258900395298797193544496901396605136570043918207379259771285175653267695642221390024408554668445679282984491967331993554192632252688162034245302022764128961012071289164380178592293309058494398106001714448181761354895791685393527014289539782116142768481171727128105678569001157704844567353876441584581623627584143126160696671525137440072434857090346786511661248441568008045746412863964470899326016607879356114510244231191802783913485443246423696499805887779956833886241355403099384114639666466999699872353921709986751622072642257353519675613290142896815587160729044615738957234552007986100545767897197165581540903247171955583700276166582872537061352288967220973906244573934350737446893592656108281863104926671002728300920439480313215302882382223551028574017886295250315609412247726938299551821958383989202833202347854427877123604805094965486447864899187169641576613944577077699008010889249410214019270186227155311734549463894678429154795230918282734815094709786717269425556666605864059159578797151694434817723135835377382757341197697048443633428854873207542073959304544095647725400759022435274179812900112749036462618358325900504241687771648129188753566597938535462671237062155866286498530195078192729353695334109318328083670396722943772436191879942497846749240614260925353680256838754696919739672276447861044235049869548555181064607519020494912955831532269586850897425980136902905347896245030595069963410621194115103443325867642731054559316415096445150850760435885983924270355054590459973341008056367261858930964859727635724720963046254924342975050052530497023966009131327113399489727588863176892123651631544356077475863192427354346449787768057901451628695231311729976323666135335436066548876871876877540479701360371260676931188635034808142040934573303744596964577555739643254854831030973649398768376780147858609460680018818380855579653869771379115434465842067569492922626147170669833225359578047940092399965203409368668234088686712342833628984061662914963717127363558045527120465124033374977271194161112632538710727914148102695762687771497475826402750802238445789577559659234811396728068717501713021614701757912182281108063003859243284970650810697728824169337848941055463096713220102093786180124616950548398152006579172310020819813700521776449341028120035053775853084587235700153957038487141379005308658114037475912319312324270492933623369422387111916623927740196368529543134531955227985108310752686593277076599231459074926342404184047590192316581423430567652993946429310428979535039716498133147049504068841709711250584261289489268562941037929614984314184409849154038618793552439200449360658991629283806572156071853908114183035915922450784129890673886831044218241012174460649695496286547302766269491163862093553263231706767138622000309075046454783276403338618502713973476053580362284401685692922892279818759091707512330831852941896058880299061004551141508892626409208821171793778606651716075254322315643447834354909289068866521033806387610060866253580934701863874475518515398751144000014244601717429067848354317842361363168972552992370968273663030834612114643441469527921511452607880081286462380265342413064464998738249537782160194570847370262230401893863132963288733178290317450832570146828608101741140675824079727846378049014512596373221923013953562937135650067486896295592157807549354090934472403640687337645469459536032511172598448723346393147859347028224916485770714317410498040973864686994500339814467518642580199892741411096175673311916526783121133110537510988808225953661966096261529271605533520201280269308476788017524605411123629819580580009743978278279541333800008969254941202186621875366924938745489806697267861315927236712352922464813677138886704628209888154307938813429290946280392622514545504158309193245207822627168324668606214693826767502999704818931345750748605508744625511448127859496951822580184614330125792917623772382410916622640860159562791023137644530665577002078848017141140194441901199596648121211010242659241910969437571870012871492543912483124263849224141374281898962437364620234719474639063598213198606145052771997367408089497220029632074684650025229915391374952243753924432435153611200121779191517066387889490265003968806291905415033869945831692079331723048057785971452535430784027127206821435818630203286563882194024131268005553081496951164670124000503281586545906852521653288970705911048412169550993441813962248441634674129503241740313682679349499498735317459618080881250028114630012174551068058578020143655936089110712057805114084017194706409083171494109140264254522514611280824961160899720218815913424960151275381750455647636327490682615949117282000454927798651734524649619009716369537720169179907276242755436132347147162760827411583391535772190855465770401276842132632369926982911089609250398828960389034908323377591553506466767137211493816450516101859733506664087869470262020429730567342639027894849688702213881996906050739001712071804449566584579924538993276822171948843521531774635523201718417324866125956540466254363084327045804349013938358063277382201325470964030683714006828763379604521469979985043784443819351026451578850245499577405626131295719932462343851806563442000879967374112577401857060327890284106802981738034386588803992846816103026442334173360137167393253795418331164393932554210752177387472026379224834873455254326769665655001722486415819931672419406054156759821199158084953764314717875896803889513679783946788059293746466873117401331070034129191661160594850515187120542801858255522317198728146026532521110824156556761239423105576364160769693103252647591042421192526383534427475910661416755957038846920850228214908201059256172272091351815760529712049305726271525248167391925155182618496949270805710030618557826918988593776811104464792241833317407404939878715049578005110283123038370677085161852920576777885092486156440710888815705425288592419770811584103581944977364770745989915676574346917241593292409551138786354365133457267950840659396452101937093376999422397481632100212107740505634551303936064615569266301327395553077976493846145497521092107477964777179203316110971721147128815271539390949223538340711776691539504576158791406229990213160833914235257678112773215459429086117105910226383583643410718403064160807417685777601500411930784142523704378962981991654573109498875773736822876848699505259828864554322401261265276082452235716906090826629935412605552325561547929879751748366315295908167341487859956077769768094038803625653380970175260151185728970307626650623515651159995111615834683084498146504726497981706695566262207146924866944110604242279311751261752828967287581766652907758224810732565242607549279125530494783353024566671104566844214205759485747175047384557891225299494832096904224616711872223101397316716496369685340089394833828559524883371439319649211764833441718713709270529362768116692193383496792561385890360202807965418532823232200681205449226232558518897854554775966775919031855083474776341189531407527525078573832679024412784529778892495254770473852078668552822533276938597779960611038830925481721895415331802894008453879525655967579871821510975479674031021011088777375837514207327266238507861789538526630681283888651664621194661251808836300091359042861538211801121995054956073623031800946738317484972119349532763798260997012613855381354333332359530760579187058843752466210122024804485186503073817764751727121505261530476410247635211940643725470793124507519059634878528231884392503056019297854885524298541174854866473630557764747279008617238859649908169469119382636544748270083891763738998471759153948079859374728485207651476517398320356605517291859239297527141109789517095881159920950002772131114510805727636875455694338682129938671803358477689059942374644385927672743830664315239218609996325295305020941911714111985740576417878552589495702018480860092327945727765557280807436090937548111420737355320765094509146265371898091545137046841810091552665129141368194553575692278103634219998224105100606890571078823202025230580525663205397279070362908277503332234398014720366899134656172679374739160846052615858555385872235637689763289603149985410048954621525236774098870571889733475620392685657544765983485633993585740233266206912525306806106001017518877311581269482262273330352750096147056480795434857629268712964023918246441574757444721209820770100131533943437454787020381631446096061100623790764749901859196459690818590403676971127584054008320369870379386650224834744883131295259434571996608383912004727357884677852523690328778181692761779862697456658106818266457047452543044916610988956149769315154663226299707173660781049962714322269510205278232655735342011190004610564534035013164497910205307384413398267628976363844535781584269192390820935429103825026214703393387826770868684096480905008472499326570400663373088431828422757962819205007891533543622736727738837116493628015023490710023708313627178654006410426154466310868481931714091900137402785131914755665287987074207958564892982004993158470018417765144223264983278883369709618136770578755863010592189103870955354261940523398434022712120311384293287454012244482861101853336243196075695301557456368066146677841213092298708204127091663486571606244462897301906507717905061079562941509467259832363947085611657400519300018423992412722161580472032548399592979716051534569359011773131747564451973819835862624709410770456117981949240448032322561475033256840590860140668942312138298250143093912614694727890269388565719582764987493205155287870186810226824431600851419930031207221861021743611898047068139684378075537564347382210499009235434644118867364237200250845741048689329013844596013355283172846765675208459742808550455976707664127726885714277165115643277503189971831286066639846001157188457755689950985525568435732344629644382465990196974955093909245170516848113697064093061968905941594187115904430887105912103217284325063476197867246682790659538166668549279128571656405023525789546181503378037763632079517821186577383122338010100884801463520252365929252908873924144683932282477001223751120396441262627213854454356913114233432420292181661907536303177159532398341121310571220413491448241146711481210341320345426232619557764893720168424946621854519606815431053271152601421690650133701571180278778948418720660172105036384330855533150914663674598259409933034847720634251082425075819703120012780392542354964384545711573594293258361128264832161867705476502974708909397778221985663504622393496149902334325665911000392760057338594671122960234831396438047832987515876075421968744887511669554042980253854778482225787457091181111074124268665597407277537629033830174586340602918673260257332857946161521549192922317417808760802641668941463901608070823193551635813837911952174526027057740572102969741781652643065587275227502168449080856935019160044314162458856978565570665847698492391363675181230625025764153794402543109342399032822126043066568438499624194614092100287855887499073888722762532630201683043928171542817204151798068733330054202725770822215102890273329926857304897948356369426429301554022682345262205488791788886677420221436072269382820287343883536089775891657873999998512804906366129585912303077984321134174708259149380450439905611511312073086408464575494487980043919844302132930497194722908843547670895654953653531725577192103671269365989244988522300565908603023055985099621393684135504380183187326442172819544695141904444304698351553557216011027913793506122839491967221858319248496369984795107606922501319231064598194699922794529282126888146717599598804970404372094695865207347693527186534973561701514983012765407853608002659546198597143789078468153413247713569088106351755217920780257030867520093211423957690095504630761871555919359132975922470822962685681437419522080336161030472270247941190463988337490140723286472737865906576518354272742727259284597310717153409324090501274585843966420411798617071675006532851772550954982331638478406517950861989248734073490779996630496401705247957849425949501200395626958441122068563187456211440823616376180056035713693978083045592871148904716818169325288858299759642880021508085631569625264237470485175857170290543302836762515040477683640885052498972218801572081440444414494481720170454364969944546945189152187422489526231479190767002427191284490740157665568843410161325911818255595821569198556241460309178687763932157152580263452711610730000579775291454680824613202472656072256434406560727732405467793160118209826934208156387123453655508665877918696609470617183737472611601195531048402343563124842325935257779998987998948720356200995510328880875594534838680816832367396611022440157013212917449594411062039107402357790734421646067143241734097236777912440603331289065227092514359686081389934204939956984357679265668455194702680934213982289082104432786111443923560285765669277431758386004187158948960523498564161170536350839186688649963914681362149754109518390394134955026336084505227669656899983685314801247766252554368812103304055253345925103962195557785522569623731071940633497291876748873774108045584857502908695367003904643814944724300461390249784864858841613175231630392720085375079923552416617918923963767351949449763726456550733032052620673006188519933930505471311900215161865215491162381014784210099341355053956269831374839095296406654798119570572126423905930567765996458502144540385215866261638386075382782466826093391828758019901970109387744093470316627189548049935295506964469841907089241300820983842763805198485716533792052659652528659875541188019897954713653919494932064273396819521235776580691609843338736195780485772281865988575724505717497985209501831306436034395857399733313638403345238276803514404983771821224484469579951229486130624251477093983069505283418887401333553079023775679871295691705498086017085729005129221083183481025022895123325254918607895178084344154303308344182775020793078496310367533940398312535950111559575018902486446427346332397619555482196679337729651092259445619703472079408136995745189395716772040238082269200426129805859530602207051025957002451515308523243335937626916645637747248687220689710970930770954750403203237168007181578672582527143771899715598686772467053058072885464454364297398570604021381143890044414716894104828208977397805015004723958389112444959461280467499661570575404141018683164119566575515337231486801119108098674702875519494362973525865993759050680636390352251757765378651730520177100010080703226545473899622552318073264759558148033355443032615135121847663926510463211833933653802729811478551474607998986676359081768910024554071189493425453939490759976989692942580669182848277643989065280481003527438764666398426899055668697996103666666968399165890430228926212350798134933149540490828281646002197607013739849539614222945919920364204121559566997933181846360758275430374691208107411057334652329751976867145667877237844865406736485205488078287218732733387898452387763671844571417699391514478060414329754632973284164045883569090673360304948602571557257423901963647817763746746711131327337897316901238408662094837942350656046456015598237039794167931676316059410655719718241708576532967032007206589908050010424284323189485306249418969374857783077809243123287375763801396617770178584237548493172692780325001118344504902371913641263545036661076884577435979567500468897532872758231163813662313964056175824357604866756027242580511498877417460739100416274995170291531269534266895695763167816026735962096548460787995263074478716734398298238888059210540429835631695616287511796938056470483650142955320804945734180580502822479954332705621470387115800792487679619321167374750019597668316869159356407341645431268657854296817411103124952466213102202067204209926396099013738065991588734732099832135206393078147683470782959980891583382990253259001423442039443504486936804532126813110804448708052203143954105332087094122112283774591171535121580578094093743873237016412875445665487275576937226210471918061197442121190997231747221292754584324303435777847948808096291815845689282674129374792126369011813049225753078783340021839919788080798420075502753113213696336668361582496014571766583832175657561358858542609636857396567994472986902910017265791616859808266284792218862627815029204610612333769231277760707328746414278128935598420150710023405974063599749188290214445700723546560029970349236454120068283332828763973468463271205295185566008215494091029039090548214715436369085802751476505261584083107097934657598748267087332623587735881991697777140404389888187954382479519762161548725467621232524962180983348354022644893490181374829070570233036278721034402826273904038439347950467738912223760440528403307172908660093145264609402279803634305116574447962872426732614731752403997586066852267111986838706549616453533522663890814285783722374730857427349976321493005372662269416991207353613227308493600068838153233296939269031729937029424234803108944915365374049429155485243256683893934589483882246825629872105904098178388044916274737394338128959076873821418168478309448307993772023949242429022763023341501065659705397835482228381851003574578553401754847664142172184493780303009837596266624388804854726402198605396609504685442092263439362175522075540218007065479040684657595172827718673147780341240643737138717276750863339609104427334015425234429302252107983588668489369620039559370790515601041646571214386860051691951329943345624805662854283011071956761911912918281655943301489052102534479834621929404948655356782360699013236431136808253139556206634760663503640287556369370192860215673617931710452790601094544222789317380630767778118442353640484648336157967584191801015582181108020100844410282352875369304988265703165094992707051475129407526786779988799667281635193731411080108880022109623307997135383679172740320046172497380212373857433482665520169331216919734530689495565491985895393419330737735404202789279806530776309463756921995706124901636027591587145896295648177398885986990572303985906307547916419906965556541188736097212747140293308334534627991573566693499978546905463546010750896260984186045948289662131889962916751658207982061896470672163260330522745110587541097261467408392452970955867532123932701311766774930300859743599520555066017832929561554320379814423299870412600387586981853315991914037830175734954591285050103770977011295153688145885607341374461983486607097158624106072948934830361094624711450990583961143572152046652048518753850985950580559747198700431199013309193221155818037636967650755005817666739405970096182469540209793603210043147220949104299173305431710750301694413463209591572888888244856252016178894180334863062383796199670232373478791009318562965546276423073675782841702157806242980736428753181399690528842019665058726193999814528780293821465584251905343992865203201058483503502807138469099400427682085042671112423769938075083575976913867674921278641846041624681073646840084859271570776789481600765204459833058687343115927829806841963827923329332428034481863644923627071096016635318431895184912464544415918067490647518701774713369734670446368664809412443548000559321738244479563983583049696143615580906209653356768500461797752317162967791519683808619493417786179820937452991388290261999649453458343080550082778344892435534782582659175203779561994705197269283425354505815241660188249321111553070168646372751612402627298365534375629490585208797925604890919273019293511822748444539292536482712585375482172490850161213864764182551638737171426405159258858422595456966643442620011038197976355752645675013807862722593757026127894638101937424888209017485131357187723180312514397917237138953466430909013578077529504127727153863636943468223061377888275553108738511251938747631366684589860272086283021662411994307577882080054385033437449277030076878159967341286837301853620563603051844508453544375193465002437339395005070067199043220609106341960896309715070646100636129765864583663420941447494346049757284323249835032183887130535460277286247319900144917478598227769493274283204868568497269558000042430085682130072602090059314803279446457951506921637384681693824328156007795015139899188998322989463920925061392295278462774566453141954044628339572463318157439114599242993306670188402189782772393700802054038394440295040977383200111401768162377492852459856806654156881889929585354167124404084828199307224366750775254928272920183844138985152203693420368450535022749605103958191964495428609423827480587447949166293627450196158817379517188501945123689923062405967915655117496870728468677341903438990355488240468715376614976270754578715310995560272454144706453067638658243156985036509373754462956107256731324503697119671733733540348140339786465614128736757376391735023161881806193369327612314883483916916040099810863944521034123728612044232239256473906696629128461424814991175971023998124467231280350035873031778571881526465562932833942891322864384940621168764068781548866422249958487455329416904304887135358691746249917282973475806664867827310609669286601064737287501137214644045471035184825458052147895768968784727844981055795917181514035748594897938563930352963044639427928982603702294864213935803551553933872987966570290085591461173910057574932238261898625121525191995298882883051036822755326213073684587146631037885553387524642405401252069214318012220549260584959731105136225930867797807680799095968512215460191703344673125530936049575051283785613870011971862227246954773446293645673263351693591786690105220929837554654928490970282761131668885150309563725399976346895055662690077795810017246385087478889018885024943800349257563278976650837903111266033929702861023141061793951397646804670215848624315790857079711230906092810315676742257159681253521855998228531910583534986110676423678878884272531022793466561403583864263879387808601056085625116495597971451075101504571796227271070918572172785230143966851111585669999320269059281157878957175403224586284753207362620655680582003054345654214361933798634279938089204213005784859538881186219254098325924407091093456950658392976808609326662049621499010049527920104686852619405503042184662000141205817699658368299540776311505237151260156974388505615567103297961167612035006802093908556545955730134924590878883995663477641521853536169885150709721039586070375399830339662406622274369848768889506165746025593649040965462289143791867068881202971962822463081702331872037737681013423425617633454925464504342251389095132976962386942229405414311972437745996330039170993711242761162269429935792499184478580822028418319573165987088725415611407318322883692814609143019299888102120464931620213683597699898568137403014597838728635479569895668370565623444880550048427812529399888898986473131579543699204821330568426970942495189672653696477207705376015305019358601882883386239012059236332313414245097596516851925295949556911692276632591175654829648459730467348210715885671030378490635391926392132959940525372112723602486909845706695376544941402153801538845428532680643264872902276030599449990934025611086305398623931363304314357954660696354682316877636695863624484895736210789782108187098085419677394116832171378481260655511504000586652983129685987325562264149963593556698447749176177283372502968708827819366910503799726574212066915446927013629804730991457625422032378452223712862709199554267369955930939447968670866467555836401321072797643429192393695417174666176464089782031868888503580091270703150908030355945911442035015360957045897376588357014878753537986458504476009660131659837773166755983676086895693070285719674565787080819362154560254334419393335823590237971090594653681532622556283095972581037061394139165778193091610230644272283698934114682150466751538111669678138280831529676511650278474119673575313486204102426049659140026506102501420394511389437447406569995261929444042745313956553021913055879404711165484182677736141310435136588409405420839509887261083007305000144374062586060223365354484438556742123392072193700692799866236439430584770337052622012572225496640786045086284591196207082206921664527203846883537187752118735616552163799787921884580078666306620169328851534784190189447298950064303531966896951078886332272752934133610230833463969843661589746815273683954118039614273068145694228759726262664189221390615027165828380154154387839479945227710660973117712521942371513135765980134362286322543882481815993621077615255597282485389282068217799109006450635387606645273424604686980546855962232613318999908859601750050375504386735106722004236446073548132560260739904578109492492180435343632582178073810984318105897141869508172766236504435937207099646462536570771929531210178935785488277409214928849765657549612228452382281357976671998846811069543464459562270829682013551063080888894211090583356858101726362992672265221351513835260147828647847563183572758106698015653354909549473582448464786337832322110467024135708996207068135853302209271369254400848204481940999472898366365857623813576248478002630003781195329873682797004610469847251821109590918465878552240325804335034467585597027552997999028289313707811407448913479982159473735362523206696898398414646064143211528535278797733797709507544796875443374008725790494209020041151124590266990928884964854261521395132622058999049337178732613375193307630005557752893658066790145188169066409537203179831992875686553186583845307800436008142955762573288073460117541491534659417632928217983568204230256037370798249920221885289356170597584823059161850533295728855480238727817868275111210341831139779543627956499254222836473955536191740621229145066458417130919681896261965568783102927805408336947494005888312166369795441575005901558280887007315870625962116899469711854549397205385077942865609123488354818744783265187228346833876339205298742105530473860199938193195966534226181179343923652128314436031342439869872165361333519599663373627310775831017556165832624163177293807825615750109235391706309051113480088797818895805010327050348193210286124423129538707495759082480984276917325819634871671174569958969834899708504387907275020530429254784499567827908036449517150742587745324843259977054042240643629219019509158523745109890253461941095414764816026509206987785197941347615977850342157296011626746293063792584958468339374932602525763266134318978338972127068309354881314004618005731718734642957749448204619551758298266961808122885215485157992194012841662963010002806046352275014654703107264165526062518071792171478455983530308134147766458364341219605893982180884702482845497772182148768883148776867120891649110272957714638688280525500789452464008420464517295035237785617228900941701932867366266858927805007012749867033966046625529861510712684773743305912875105306904599035356570407096442232526549401995920937350768634421212245012713141414289107861080953950121312110000575226743699938639920877975678279874534269357235778130267361335684937671773354577846626097989192493536799683996430676913552610019461203812910735055231133530671381877657115757806942859485811943214311981097102594309169422059497717161342307819769976394489763294150582381159713023493216708299225690340074887214691974942550007506356275025432699079549706388085531272105161120607536583639268940581331306181668291636436494975384990211572874745188357581585518787430064701477371629577739792226100834060906119429152089250753997553349881012550767899133052610527295943942066510592859420278622328247606343577181231917440669943771062174509042473485882211500474616878348701718316879005593818926057861580751794965422720002877716284209589971390673123314612762636976900078096683350002715151943063926028753264140778431500552623608092281305370508447260786847242380187927385906081644402600461675636211693532095868392763400647932685218120566043777280968361869107693671388183157323504502289288056477978942001878978977946243926333070313140787226993632915495953224512338540051884361002584710961446637862987599357347065531286752309049274225951287667480806231351440188348376073093394548840815523923848825525773164832603309887794195459830087979113847318841641318632472888118526753483370102129701173849520067987000746015416160029742943337124440962749697242941528276929293967680239565770494402544254307212953322498892393180003104533831080330215773876500208717631243165270695971514625800790471407375224296369949134983642402537675114894278292027118250611340637849512842029861294459635114332785383614915952157818945369701309053785603482905722473061961349200346619294286310153194823488325036020161510450069260745217326353300968919624029931656113851440027325803501540961243716996335910043411897991849820841511701800036674759819938549022883732731194453668373377902480001749738289726203185028449318895276357141115956252626497821377179673866510174511705496701367135125012903669235449655554241662310567474062858789899333527765971561922502224655566504685424342233250058523467215779093157025421196386055417210024423410073655658965048847317266302661744943346427282046602005029236965381871225177330373549260439654462365398237231649567176840480978295513479910071409702601415494956529262870652084370846995373357599092642186700613659554010320485399104100471420099859582994757685014399560901937993334381095891977471881624767573777599278243226032770184435586321852379746719217143131038125236285078443513484975813072112652490709495324019887192757322531420079369857345771265919047979773718278660016505368099830982278945718074400943536516606310709780714937890346611036939352522484640323539873393106494182765863973696507049441984291093614435957593967355566650740944735311349298510254354207765423157600373317096548263003284508720985579783297439904679891520625969270599948668277312483543518948822312772053134183077458538216808282413507656205302257859511415118730293681643675814343919503909406462740920344422167035824575300281106158530628571652618453013647231140344141980118585135486734797305667829925454772491329573124373374269134851184254111785041188388306975795551514137084090399058073289963319388383505517978204046297003857250273908925106461129524077119236225361234614263083331670539592869312843819987687172381438608587220292872742380614170558327203594540274052300512445915018854950107207474731704574500735136335766673217343591087530561987150199086838005773077866740327990364096482095902857602641779977490044081493045206527544162990831907168083372808979834882337694314635144848499242678886532531778229603093906617163973683189766433968108953209764023071457419713603987857745365774193681669240031940112526705622686104302448509224918147316209331798243970857656205750210561003653484103939749181213100817135928054940238147119526741122198375913631813731672188832166207780685624070419559562529817223848123057229744005018329481312027475780992338075549416332365253293039504325871895502350055219682623415145618576729074729906048559288870215184351144970010318924029115362022268404479102223741152000357327544159097680817063603756613614911595987621255244588456002249059061249870358786031988061145315916939719734379850941990730515328481483827460428409421792801418750480688784980259790317861672153081288507531046845612508174114623086424757345889263953746588381431209639949329169048777244324920231890311742803497977786043566825969278593695258642124014739937390532279508570667072119498816791788769406371084287070874066543377892345417215876726301018596015305223473893953437015122892275761434581488955946992255076311564230107128052027032235339652115256336319289477048374113315715964452960087983874367935179284149566348189102301402764033088082397887107791589653002631807302161563505884869005823555426444521734147108996872314586711362296498641190779898996770443716939561433207905802350599906441851621077037659057407151525399535644837449856914151459985055814227510579733955165902119715220688742368336756959213735192234604695910899170661867100444000643894012974345388838339010121886244633752751917731310763112862883289688643023533345526191641979545998943246269375733492787075838244492228240047603466103290481220667778356301298167360062561788584233666444055696265979027650059729922346663148418481111890105163182498784549265755058771020227839523234382241989699946251333274871657613873362283523872455526035456630965341998065628261923761788791405190850079503430547174732331662115562328575139471748213898090703381072938652081119685663515169072403921559918738472624243293843867988586880604825030135474229236635918163375207268972338735212525238927703275129906865608605638201370630444898964156705464965557020956830191441000015870473086396002304355537435033278544202465246130488795133921133510978723102536421094579041906938467893441675612342388837691553563330283558168435474380540490463783848946913198939880273593884226668444551259495857185896804230331660345601883078995371444940758724393786332888706782209744924911084515182660312071697740752532707281287150761718180853752564122921789851465148785357784076436053540160984966279124987969213244066423148163831936383524691034847997867280864187319417743984987699814088440676632378689223053609765875961099886213317786035809486153415340917049352840610179498154314201270609413985931115692865554388480086458152845258621193463334897399484393919357508751435157751793793676438244381545368744761915340974529472721038771620862892180496286601719639283140489683915152260278677746997370658246750775971255176456350880460000394371828911735175406804927528743467746936189529479027144467505213878128580404360615604558335037936572962911725418711408737727119801461681729126819810316177289264960933031713942687085627968165240036011410851743328407344830938529717719957249289999224773198190063899842119651300719485978204240052446033469807134367122892131531483408228601360826724522025321223930332713675799392761235662127211595739182113556347029667770905429235011913633656697574630213492395966767890684915568199450013559773265293194601984498394598861685009474421580294395110486418528801936113759903177777725298123281740269790133308938335235691731145600869483172450984600341635203951160999807468592821349326872625475208672194787887832003401736848425987736233560029527347278894414469414272786829389936909675552065978896747236511931481440497571015585941962494023906706054217114334105962437134474948935129200006542481283861887070155260159534861841462409078844601362470276036853746212471249819043434891691182089694987892760248961807960862405202143088286384157214720602490103313754482616004209461122763745334205348284963007423953500112991395354949656678077336879311822234956860866282379090282572676218273375187151297487559487161581299224102657234589841471069586802192597748641375743195078806595239385567677721006830935303472879283203056645221449646103457224150500331813245079568993166064786151106536238099267963620816917344157496320123517498597970792126919466139308460086018754240142281334203415714381652219654549345915897758294248153236043511239324283204647408626684002670339999222776701555161223577142255598387800513581097749731521736503519988030671371919273980425933444007209973451930368093355270931629929830483441347245118062581912638501543371849996931236071571627078371135943380755353767450120076179669950765077715589311898162444158258883563521388292035467567267208660781428177889007848684311431901416048055038742720292067858202353644423855915240601090173798988525100423271831222594894565364057424159975721899358656443041363160013112776816732310957565125128118891160141495366544969333014117397171246520834816145015903945329130695290941705203451189579601322965747510312929612435304607186899116090471134220670991704307941225210839029024232959879376090903471217984977571770210043138555491936533581054912863458395836134172715572006302279112505479678999575311338416230382658392817211315694123180548975198366977846639051326784844230967526380001397848759049373039917267944974612932906635177797345802640596942498860308902155993991919699327001886470304183343277361349059468512643742812361123772534112432539862858878082588900330694226587568103671588341077197536652115561940908071411885895390398831735681756343229946607457019987508165658009808456110763285909793740175994079188003101955454472047510663466767373052804702710292943487721603365598279587907008042457137664449814582384518955477769818501572927587789230916357893106015506631525739762854591650791276130830392997364136666965801280132311814495056356851924004968740544782700626470529449045240446720642273249544852890675269241673707752134064949328931983285946009957807522413753022635153515568564820754314324923893707344819904120008523707078092784034513357048456702440295575512605613383050959980061944503082184481189871763613551030696343983466414696578428870886633530105862202892805490561858057880018504290061259935095029715142003755874148349929616223829671043169619094918499354442638372853083952675136956963092813698219653354712459182537855384954606802738836416457020449615557302251962391377565711174177472482078539085071578173024833056117414363647616807582799973497089242917154472382549751260289293671098351148305309022915665362540625504098600305410557784662743618751575699545000268494826043131471107306602199461451608265287338009882795566720312729559267087222818703983650552169650060985335647067419960728381085474628765500928972654479814467136489197936954995982923349096487868806272013994252868543079712778800852035384692388782121263018601124367636840422031034626694498766297536963924110304279890408951192629135095342131436962042315880168692637428018024294581908971996170787551852900685238541107980598155520326519993803169170283940781623531717151749824591745720317735944483532255318029609684933215466807502991228278964271960700670458594081734771625385047564287335328205676441637092380936574185645874997783478004639975681074854998682174747265326546547674905330975243591802277470001011888580693325951144313322982761228309379202442341813738945480367526453636014868631979084703892493203882085969914628992001539013836268110739007145006714357899628954355495527789864161776134874149778067320794814769618399193956353595918001861134059614990242832189306027922402788276654644882437488105593578213157270148685533409390141965800040486692495174262839481971148929525661209746333993773192621382512316487323280192406392979070763085424420668496206306342028850778390169032261687099845188428779880646957842897533994908245289855926034612727880246619044312183043960482476107682861264118450878675041475127982918158738352352680857486466032186239187762520500979961961693453487182349977941544041516689861873370521030664922788133295117061880042926489237076774199384033175458199626291068149546770800119143938393574988385907944244568231275299211150752340860673840888749028611852139923862103360630411567266894910429774258860866081096531786935683453255379627075179172967819387341519550740986372506391935618801025559371314760840336291529237493373182175749729879085789876895058476526559930174327135641468681869091046142480286685314020632054729209675525985209897542391614123550850858002136131173900711451259937948784488716857776467872490681630563052065001052058490676250087953164983395112945339144464260511472033598623365809634032319368152253386650434238941071447500018698609389034402423052736264040710327888506607354748547113953092103744589144001302903358906806210492576200328395223717617412979584144969550054274616936097881858815861364620086637649873043353048828864267335136327655360291941628334154567439249560541378599427251153566037709447141635444280979080268074748940405771322788178762069966167079082469828530338802655050359947920222084779353242926732463566293574666476325208066199316384456479890958083272992234851687135396074015598054584435173422424664972625583535422274512984596754917886439555760152544345823609463482290921641556769258845916560941909190514270402837483828248900369131840105227187614339382992607661258858525167217788702466166832928790837939981167506532630520688614649726287392083900956654883395843495899600905353435458529637393846800878258093706758541724267667949610537846843649048805896405605844774112584638729603903536559009614472221510166233985443817877247502810490105677954510118361212607254024178676895512376628202690876431672484397022391314347889190209524782615521836714674621145578815987116493044249206318678670195840803475196690179093788062553729508127888013743138352448783852928466175809442623096486209123982778175556295105573124061170040443977169915303605937839347784619067357272030758128712581335041831729209615324676293052915130891737104728431718706015856563772315789667577165307850685598211844508446591699550488846954066049601766432743163635484701954329031830949551879195274720218068900542100919049870882577625040569834958205677602802322150074321648002567573426573314228753874022561179298507113619309079162950174827111227942178160223738181915316597479794231642293874657728203900739552324134703764394445579784526317880095775885095674486382494576603730713179359298840479500177877091995456637481365273534543835839320379060180900685849567089078452537296325769838927658552685928352336523128507944404878607633564301752350494114239652109517378682187816453330392941197085947216161162017523178732861432663118751571375528140707870055885907776150545181453453083441792302397450741000893460988335262779396873542418441780247679081790696512865978267201984527106222784798451098118230765427829519976505856236499016156472570808800680875968478088990973225816164620708783030313579733709695097633129740805783565386803531041483013522604509242881802513016408275616091243662155631227052785490560367632196548624233855329111971914063221410844693646937235605886221609113127554440961529458021302925368555058209487843970664123121820614649401890404446733935662096516100692969360084441199416376719685838018906771573166046903564070233365403710743264671358014783336732557588531428486271443804639830306696290777057696187564276319574548070989705581925760250726406394971307464594846602693788757917513336288743142570803889836489383646827091629989300194674223811773216157277806302014403556126038641604340639948938892917910812116998489055632668629445621909739335209801012082307356122748401180020867932467407111929489258337302669368659758424724287174095889314075604910009387759586458554529387038883497642227579385992852572132072755289190314641138347080966493066195171201900582245897610979589398250509702853228082757228511449030148109835071964467768412336409115954530292442935964323753536177035502257012374707674349365310402982484738166543600952181382674142129930385759194107299736082561356065274208132625519254473965112630474539754175688325278199725526238091560751244990627759445000847814453457283855832076973803634046848621495199353331477984511454551205564619016239118718217944698014394526579065105966070383001098057729436518564581805250794300762510288945377614894896275357757813815706774885750249259044308217859836401557955123290413351245176629610483831696946068963822938251788803696748586107846631047869553552631921292846915785889205211332551624445510088262813223935090856418887733835666464416765123226625038608638359274423084694223889248487319106137218213512492552843681690950050050078172084204237955173967786728372137873229625512026032042388591724651822256885984612517973998146008967742480597550779789991153660389572726276153133355185402389396546704060379985735468449343404980475180282089185969459657111954836007336197769645541155541547156693093203293519626155086826087578855310853894975392357681277417245695090714397075508112552430292574660945299130056371802334338476610129343701154658064741987802404262593613071358209527938725300098745857256396808212912558522480568200019071003296143506904604383511273227622675002633095088551737793323183962194674950858988548973142897798039564142326877279584458747364299869787573309526327785565313804353491013803853416468931325523656783552723063102073050219259100818876340630152546774844819960869540120874820312774508023342120388321966060774147614653482213121686780300847834629275518746760016570027411482624322645178510893205158087365507114376887694265665605228972268550048148440490175606181408509866560683380381097658267945144485946377059893080979467136307947931453774988878732621110037914242062733900796010366530825764306669090060088026739761458279534491358984801589775594644558344010670433644641881344929545923162277532251153198323963794488607521446984297590509254119782375329269913147367562623843063348322171945764417286286859409268874916887347292260282018222197907003137948932203963098360632442205113314093946688963390619404384991132718261712200338176993979677292455582365300524962089631040544556906891544033446061013056065223571055959618392415559517098696486766808338591117759823110938087672706926197397618438291432322030530232046334398891520271940500482171883078188740539404011349183024934472687776458348572200155056162255300961954992317753243421826312432653970841401936219083042548535261381405487769188892111876389489167020751162128879102867996072819612688229113196644913399842874430544720210995322032445869883620595705081650436735693439787127342089051675506474713920183475156142739199081486217066755653507109613672841726830182119106919781370726240386910294106324203224816571013237727385618224268734427491502578329384702547382525184877433510983245380513322583100112038004998779376028372011800279013826665568616065595415951023192042021968275856629935252833518441250406962229433574496086150207002036684621471977768416116783078376111036939347641193384902754505437421524096292357465897561449457867580697706880062459496704214882452147478941528460016588424816924136876631893838231507996807300722717749494868453517574028740922957170918997769940585571635878479548000769650630332106434244519029089735794952287639115334576995620484465592974112547545997456231684414946582850437096300300549311391198969246696613193183708484691380917025117244717347396672194691717367729585352345428802169729533995736828599941557695089643016828037994805179368877409308300578494917982742352013418729722068299831044701617129627545698508605710947188948512755781192038297807836379607500914550761443410243856599037463616796735211422817231817557503094401367819992098357601988987662714833279045045949966126786077873239980481416578923343963494992650274471169926090738789422759888538655014273186726647931486400098846147028525882309764642000672693595019124919846987955027558213409950467517707323262314127549831351956678140938232657124587305276460689948379129535236638857676201579359990445471055659175633324825067794708150605155017772687030490281417835505724401577945179658169319700826560689010134283484317109036530533355622220007530477624651086614232806226198157673858199664131099546257507557584044466580165768443205114262275165339947202385967988819983815492258145154298766771199048241873045747844477436445842829147520527065174035892882679585468788862957110897473859862824743536737295948880029836660657387881375078305857280220697576961577194136311419131239382612616073046536243653232614553327360695644564377620219556003088104460432325797662317912515590742357021947165653058339363754683535287965471276564442651138862838331738818375684300978379117510267517076713714381587593497365157044720276093957434285377004874993831304016730847394430492634203783215584086569365120512757972775840382163081572029075602275324129878205962938724157372154429583393667929848970119635212096765414217955610652265368383083968561216222803294789955357114516063481851338995461249743416441060010620466475602680058892684766607951531350436368499683390782900794951812443278704003386271847159442298969411578980660119988430168012165483413264479807399259284809319711343778231907197286742580442137859395100318458795095342902241292297961586875525939272426669395968232524272474378903456479303651265045526119790653563799541675143514454354347009490690013583541565239332418080963178696901376357336108262999741713830314559170789810072944881578613782095845847690358783503451333686675726754424622427279673296860523742550079149171824718657476063449698988850808705846401781574884312644268623464530561142420819971565941056119497319626883116987896494845101279513957584211120144719340916182452181109943368974465326389343740827758201878845225287045390166631597908530345036249819151387444756995329618914195732744940928297202819624086714359506107884914592689262972309248682667117070674720852207948782065655584193538134301226728700759471632054797355800004558065995941922792523908265573065833539688631525411422214994040799513861492765842107764209502230361454603361491062804374959243259932199637554778525105371927116335834783856397801406129397876359599600290961799642964796290667270647423570561035365191955935090450643253674733445938411615298713271354595292401882096152085382310992500482741063429134195104189724365430973121212159018017172713689651123326992526079923703955127075787404566192200821114522126981724113056786419262845344699093887611539568420230083500179773207686324202594881803696677735479332170772905071847120508827254902438530033679651094283257101488172452838873182950533874946293788909019631771385181576193442536188513414253401434919993965541733235377327677325818213917705844491580054383282001676109441805157041518520914335815254823291346682382993018519518592035171313044945536255513246314093364195319905181897758074973066317471218931853401347274609621254400827576142347437759606975828672109643046431967923776251225786358098373635338633139608845104530164752997599096790578701955891426455847052066651770337536215865692106406256947081792007710115494722560466758250875336212872270806971265100253803619216244536011978983585971844284551897016262304989431550591338232495196095387672693152807748307789399986204872981205244711472629308869155479721275090920348880627094328758721585874260163901611162473555202107891546290200534515286318252650730491092297785700469521156676106133260217026019535289800105356356468680461985575296644495125121050186268427688973791606731263004861078450193991774885037672013390770611536795220655070712904735912142752155359881835416414873830927924411464161233563067674703117084531911752662177833374155352764381156162034088511388411946957483267394013369916084265046791364495364557121645989953204064995990358806616647426192329899444476421471954277950198789286256412542856794223386290663487108786779840426080556458121032122292612705792345252530047251379908391135870270427719185630567873726565301132634878171306566646665614497694516934760670197471381177836964971643188785276266515131454917323542066686409157305092531478145004280950169324274338172732763454208072162077792345951406824210233667339780386196193300403591165577952559992076656361020821288948514814740765547763844106175501630719569219728955833449992229210054336245575016329173506174825904969466416420170798292849416491680052227696919700764480719948155396632037337171745055103059963471364570755643407729062504118581778971163993445079334770000194101087290645010760040981657688985932327127912966788336110646337760667506178613022436700867626054351916847172277290766804586302156484317659367395241223450528851993784958623075033434546967164423501844839659931967825673493788888776460957823891996636011463827431874560357163994038430888233542746399286898692014160609033797822802312239965800630437501766634877119451764452391631391339068771779996043759924182430809788076970141371370702695046466433222643480659189952300817987920421708331748573208919575398715671704649277006283256785613930827627413264994435742031499421464452366416511761269354991849054043940780760324676297395953239677174020650766030526866950274293963224517639204852031613350587198084774275908552935842721167963161139232838317762024414301562955247209535493974395954710166866096300037168895430072848232777269394215244122340595775825664572052136597215792199015122302292731255125616731987719103457172086882335870763446830635307152861411107295355868226255444916699356925106595757981854996693640115729986741791283290081459746736086977244358604123587808592829336673882150629820262657585297405023908969358696813887010679143426270476036966440350528878137905292303829385074247444990415703859408036094897313322630385957658588365230414024407768088061166064085708288719194748992130866252169643300121315614260353020199419060167958308220790588172024906383281229003888185135363697751745678792241470570911539807274380488548031505202471578507169943384289011013080773741155243174083107522080289564455436563907422490563610753290123348421192959638993900778769667423865811253176068895533706521653628304054313881868474623062432315590021733457513313843038594597373355069767482772084062601388283260795182913081215961435954559710210957436066164115747729329467784094781943710619707307169108600973624085832231633814663302211668896082377691105242156941800731351493755576787506577847012920322955046768306950097158081945890495668692596678306931102447474809205358661201677275398781862112118256460433656678880972512963684131623260007876964354682728181591290504971294212182107652218118627571663096498996253239292882952135868458474272999312457225610236019467503238905945748540099926758924033161588674765980053158461745708518666668094038398958992870415128905122741182634276154103332579865860557057716886205871775344981464739089395268133315022440570220875666855417563687382308472132813584184552524416401206921863385493999144829177770019232891841056477147961916247975767392944014826763122046008619752563351456277589442796838623338572652879613498238384533790991277754417330098435580056984521093662765559640948785107329385949375904710770080486001123311783306518824427920886789833880225440500181904829341374506473844423722212511537867258289547093771142185636093979645981928662968519845134852733232092931263946392335465951412713513200164267951396928684758429319080813935907726392201760132108695500990262415991508599649241212724343239943410991643486799533909792271916465997046843982974660491192037225767686375308080201993008969457606930852472001261299735052740914732306439988986490304144508975224559656568715478531047683633713255989355776057425344823210385766366451168204663308518167677685828061121284231410928895118647441121715493817091037080978857330043631674063791704177865205571136678800674606291595469794468731328972900263840909222981627957251533327087284360964465768978047984169560984609395773764725231138298614399683929043158356776795601687034669006000857120746444646986053709078874424621552735475062658476379325883871532167079090582848203807276836796510781103796302436350420066832425639051675043082407132585185927073588425605895547234421326703045948874016955239703850358207918183525246173775572819360746469552530841215401185453772105838812298013750671689864301342089721412830037590858020924166422649870897650963919337095918802519847556672711114086956988132372507139320814736107184094934242475361440867096876301500545501256583111834043715909298715864167881124885631195882013101154036575073987945313385347122485095319262738427164794529336044131466355334357204749317245300866639428096102061336344346291343634981092665107412939641412064348768789019391082240230723257159085687421469398198315777780520333299851362535469198840270412883257747669406727796492449298520534654670833576516570405048715646366026164451287143335367747154692374432313760706535196265929849201417414348010711368316252897621384276393907489461465530725156020815550719521123150525698333294880481202725314119312399466272156754224967367021810592605590563760001873143886241794947774017619529233987695710489191032839021720271028425071664257653629113206302707858937864571207996378359729273438279814645045720961391649542067811766276499295067479945969695063409479642701032796042169682524748949251490296861704961507444695284901566938437329372100694596078057809332670447450277697268152991165248230965863360044573459810743666965095703553809271691839466381612528365703993151812777982565476856773986941484018093455847832185452581237191589241673217150098101766990357526486928715542104341963326605729765111482003697669875926967037580430417227188347488192515515279265584219375709647793891211416285011651452339628963654377270390389980474336033189040928432453046646122559405571154056167233475027014213742906329299380901774477436763118394853562318905105961577444853253987504134259054528998114059132496756586695981544698095656777780124735301048123994930788791970939314491840245422447918193769641515315159305288815101677354117365596563164841859856248567999310717209670201868454919862657184877052052113713031012011226567333181971953457882305115465907332488554506124242750197910395277836732711187853235435914244585677542157768058469805847119307863498022788570079169909403222973141962712801453956004681871267073417494007727647624501107004129653427564354471712901450005044579118352596154894653447607788625460630507908512289332375027556755216402498236531402960923494124967539560566206746159318912178996979815447786327879601954937567011141067568120257568185346707517438092980766244754384528189635184217267328564868875301273737845860894395335094912991804546587242632281689033279494487099033357316999499376232102371539596813708049277990486150252165501802310808162097108058671471157985352969453748596166957103337967768022053281045998361781252487441770742165019736977681444320558730258361889538201984920240668136635588172188390161994686051328816152062002477324831490101211987846172226983951859547956546694446528696303401268348900968388256188805643442232233317239128348164164686653599548585499412037081174339894493161410498758857665076008911547633025719794507511322617667465046566681037989494330004922204141659614134233631721746501202199918159181673515024459340599269871829521004281674752049179842089874584141859288847432352447904699358440597205175743904481714306916419683272863254460110540899434636651338480357866914920880046345776700341803694790284879058374246816515251154696155603159942020341126217481813591041031963157463900911838285361997633471753643514481344031577221578300239453294111059301211889959887318606374129193017296332206302040917879738650992384144729999679976556601019988576585707047989808859341918198877116888814716554287774430333653574882645586829703108279219579101018660916067610058031984564882633418712946813404577838763867556293779631699357859997106022657195801468136958339042515532622463354591776660303664848628884836338426034569019828892571289790432298251639747850969355172988679461587477722262547640274221775938459110394695456442374107104639238882590296679262330691820237712444783277402388915639799921695439028955065707824244737720285576895472219892567676595714680102985146242452158833670292303614014989387134946726322208019787313424909752706133162677549407519191761847139897573889964730762715305378982877759517398296994025960324980027026575099989487692101940777588724075441028527437296516166851944816214536275758309129568596917630268460953534169926716889013692536551432140708565736210111244755419149838154700689758239817429398499321953316209805249031564525326841327209647984722745758967278902315560673118756595063087204163508740827804479518572009423383381714699089556098838789674724059002551405039565458385538367718081714092243551645076334228485463909766758092439108368991324656148936112829258757284002489445956538531030603659129797646616770912429204436481324197292794583019646666052225540546797975998071486635509619162385501542544800010622878646255551573761363692905680095685277781770839882510141510583022207229290387087808548333641606789198682586748638625449411999350244096299632550020578038561909550935967610785893657695911716344134506099092049932446580244930324545861067226070192833232683392800275531688958542226483897432063066494966354267068366091576177425053596627625950175051848333248914646073588240044973301118460504529915030749718930488888612862183710936891180863610557966961259166415528287091883445405645616669568518724647936025291748985338786610831514611618148134516039962241988378789158565003198776584599478605513818949327077268736577326049124403519392059859149164496847314454621253733178782170926201058250562593832838959715559043198880523693635369078110259027891921676367913800995695239922382836389117928713479367003248239836367464787312709824282075870229968153376645866764995456280353473638153455952121915163338251669605071180899572570177802678200436783891035807741112347471611788940262778966692451515469956705239469963182234342633202715524955378048208599438245871293581391311767362414628070307808625417025064482362594441975663413777076371937123238536202637573393338761103360376677634190008188547009508303903168350337408729593381441249144364137273794028572123139876736089758810768983526009348499192239548377236988182712248065198068731277080218213142513934361679662013276773533185563162790781014422683879225067633436337099204391242875542250733939686332306587121679302643464868884852169739751104334884958506929871945274311173100889203147871810641773491045890957744979564928514450460095490677455385048853981235443460974673952717079206296514477368884221884638519834519627555533129451580297129221552393253203360375180591100191958339622833080025167136398591647938082534165408246424509655846141599814612987575659281702317700388920728009906980800903007297939109724752763113999297846035782819064477433672802130991796367855992156091832167555803044771698990469631839037753219785673654253227952596045376524645335184923700983076120372416844253393159809492592051386074826709367110771712669494272643201285771852766189710028785361412803758471380750531129906439237585454448684302448475732811245456858981676096418618852568688722774510937370937532455110249966732976245688844040975888828667264926507344958010722975561917124015403214251213529145876051494476297412775739151080976195014184865318348933685687855833867778034687758521964689589228036194743210668485744942940147206878317880079133652167730416086991795708040033698115209861063464048846902509995383666055560404392860165667938991769667699427791979668767687989444566082130716365241341505211530244667779496779649501575660713500794425397775234708191692675704518890055819137044855804669468860764198547060166192300540753234215474889200801781989049812917558916934894058731953332975870599803638503978595315645848997226238953642309783799465084227021603155160537337802664084074971352372150270578606016274187550511401088884878632453128851989010791398786873645351788199763075949170006390590795180243865385739499945577010890517337199276203273220891419182807238653324017608514924682457325870135185802682066512000912526956656125725532592410229650877736335224367973445858118692741974909949490355763221949800121001746196082763811474999371300020792357916703852076493706440204857358402203374989713454915949834578920807171502998595824633206896770899733938863000304350483271999385435502972964916219006810233302181292989488205385794541358491448771791913517116518117100714205987624016776082690158298248971398635335425034651087086291236254160883705789405333795385322623050537172642763079366161810044964686224446571810764703520066642156437948135481022338575268096529366712036304540074567857830888425304966276847035165413727714434296892520988492758535825293810545747207979866407080379400896310436433759868960630055108890435882906835462320311742160746903982449780063345764513338442382842968552713733256441469058018014934843384981033617066632503219828556753392687327462452561600558376607316807996387388009077394334905568909296790456094239773795080790503552743238367018259560667559440371181983166929521024899880332981710441712621195116547477954722951415634346464205276321486194098826871642442527050489748193315663247810210616812821996411184526726117845004782607440278927444692520145803212182138475380520958532804487122328073241201557260274094407550375444545333155495550987553285821501036245744906349248132003485758932292940635370970433315244023433859259393118864274585221671312186439212755503681698240518203767170959835285161985346409755648245725449725972714042575366978149648401103383739073955675594066492335972019693393690876792394008405422011627561168864584968120937845203747771510071906238769806129618494513412557387942575877434819768776781423858034418977863398751806207973995526068078095878406953367760325265100219738332629486220011254615198217917718025116927451276895777104109022519419986656853815924893866019488138073126112119087443286447988688548284096442175381188556550124540645352107777777933440741230882749540570926935345232692492497629465849871390731159232250248965844399658586972848755004452680356825212075941183264417780382461801796635730055670468367202866989408857695153051412466735614332261804643601667979817622085556480786987455378362667661717742680805590887702983187996894885303028719318226765111083028543801955315656663094022637871124332181782830579187135033752216581336954204462923653927448273966038707584945596034487966853083354664244117554417205348455358611569016277882807238020923307309857263976118174840728220411117420753925043836881054612832140552912138368010445852759536903149683300215616188117127173915020361242716684652785773231047652161842307153896370910466308441054262766212735483012744714876254375942411491941660090826402304659703327413315369287340771216978119468172158781624650090989350941674596737731606222913278019336477527457948341086314581352917722555361057025637435832041070384313715464438945552504330912736512721137346065695653150009415179370130548762137864786781120847885886279299879660419056025380907472321241921399452438503064517314144354350027081087064110883722375119550805940408017821570763785395550817560041130607070228511142162112167747196658138023613086869505598128271709473101089713710693652728154767025547368664052443250550773955053387388727749544389546896834354568337550959484032000899679115588404305673403527877841718527312624429323397104394810705252177662679004034982455979678499704196651752048852841324559192444504824413363060833211648568686497023715802161921742266144672222504232718629792691532293892982046623362506034509823497978220793479133838048663242559317757465534418041226797866590527678300819328199750962239794075399544393883742471550754334588967610535242169389343196366022157224265682539633182775787029743207032335204103582255169855335892842950276124983726998481589481564458563232872500391299477675448939638165046012757027618053304567583748234718680636834694401422242973819064400969275333043693383766823937809215883447615327173655151272815981873481150270328639045246650813896705419737884049439236726956574092503527690297765917877855321754947426173612410000113884641198301694407117816476353357917247600155033079795795653449606957070616177194378019525792761992027622158024972329912111405477024095639687722655328130324725233651507132505029810744752358294845726726597211220305952696716212032990515074135768986984185222027367788710823779345422470720666475524201375139386173270938057370949981934745570926562777484419194954706398755463074738863828391686607229483842961445642210416737081768592061180180701775267280344791828891443500841535531810339605596613502801293380982804226568391360170964469190331108102327056793427403439151501650774268138512965826016682166315232744682123069712639694852599904555743724943300644156852761504588410042765702709717795005936463149475299465466003235480292564172487502093177416987972460416477342801257803859226828982255167791609525368899125691796871762897251960541011086943124925704657995377357409224759245912688455788293665292504538713020895743642953572683640933829885079818331453197957892447084128427227497638731516624279939841080589782339697373476470002694973088994909412527268497391149323970978646132900825266160069793276918802120776710925209496583631844950254277011436932017744455463633342120244153048158638196699914185495041306434819455933220202579787108514772300117302447354097998251799954258352893861317402153686393980054993835880207589887199224828674576699793094723180382973681320683163990816722919221043660441699767509684159341170301080101168914676915732085161718846246168538445022635042801276862324806517716164452725890784984388283569536508865570628150996444345579186824939894716564907008703626052162882381537276400513843177284160661382249910858063879298452053926797042050520527867719673907326297819915129009966011526955216185238064728953404836223214686586712412521203918259676043550686570667190996056269263733147891719515284176699970185366872504302700237120119288169328301585182238855467928018307320365761316324027146133722300678077282993193445822557209572002282713127368765315071533481869358197088006817175690276025840319777098665477050935086510438767219079313018887092356040237501810269724657252967197320197698731841246167758016310918007051067195941141226508004488009155795283922244075648892979783642999199626054644391991969189359554000216998113492085783956722270573955337162449942670881195214563732332021037184423442754778170344889125677675274659149687530666389305319786616281805791222597529690611527084314445640125222425794647468746563878164835825633555423662904465351907726874615629367856462323481327692531388233726541257042459327355785830862080120530044386906300776766418137714007721839698456529836433377361622148070066363498493097113811786572749007603106258063844914291932068349937183409311495456875217097464857949315962184629140936207647533911502616322777238980309711392988292279890264935627840193828181739920523292660918446590995873355105357743351340294166021289097585045161029224241252980242998996794880326601684292811542072064656462427466772822672349073105821767099110321402174848206583147154364167401223976884384928471676972842027399325206702468314374940473095425424835726367640593371705340576832975746259818004348645155988990260877905316195939888083557507534885355989188788797089232417481989269563539053029198242581528853356594634995382935123130813575797630800895361762963622974998304116025320638255200974445409499285445907354608049185756353034537360368586512959107005878390576675059942467153595798215718545389429849253280335227449856240736982230462947779724247165148874656627781437117709970948487730184697284460216781553346387151375417019103721546112524227934091992935447264878880042462379302523840541626590920267078165932333450393617443515245519229898787793743607550105531936692254027782568255416951535834650705573592869960477960952054642367810113803427309095315574252122094075421653812022917258143692206024625440191197804188119830245321530072567914955893596840636417368499776425962028423579362831064190254358642081518599905645931205200734737906593317312376291453087808579054207699516449805321790783764087151711048003668763699014913322338710438677742450520506430472382393190318527750594915450495462255157360297602749358652274104469581822120033009772996312604582635883648072254419783776443651808584921272163216760587230961433098709491776233709670007941250537025295246979863129794995872620308597752687391856473248248955505651149983488786994353932038753775264784745871942341128892988156586623362626504419611712784727150282842658221893100117708411799679975317580662186377366636014698163091771034620308693651290100996414574194929056639866980687829827947458649380900474088178492417380840643878298056330071943770296253035865162294321018357412544469020935005220457390488210873364519339205421262097948973561816436296247449178807573861921145377572072277496051296973701490755855996616973296792233277734467730718849493753798943678121141525255627860832576509564060370446848536288416243002945478102380510399439067966284138516101340836065214957298758786527675984355190026197118526850315058268440694408937412646869460509022793790859227146712746785403991810899411255969951671955956953063699447000629411592256392401497416029561999170896184922668720350691708990732435920235943744316122187379894831436987674640387593465433409435151726612704718270284838350158391955162502172362308298912370784843702317609363121423078450963731831748279305120495531162993245094931833369964173175888413237955175397751368783772842796907769763704824905475734203998589784838606530827690915596423681756376893021855564231139139744907119990141226238404472336196703181204811704537242638706946651684268490864252207821086501473184484404865889031333393154666248232450552899050989326473376405203037167818309664875185026837782196616412937999009536634545546891993895539489741331845865654169337740323881862125627744555218443486297648863396048429099962574530297948149797432910432440457814532463173812123077713668669439975783109890372508633452809227325961489605455465527814112281017504713501739596511050946585531809360754963799711893287487098490111959746822376860927328509022553684099562925630038560321116875132500374253420528773132811697014555795878165271618381115883042797389790516132567431015042207449989394124911449935547451552784427258945315467822699048931494823532044342806400199832405828939603304350100024394087393948584749435334981855689213084273393073211937034015977233733746910655170854379454913617176164889423630377148880709310678224747075932632812270837273119108155236999483179517803004748277857924140611603998152126807787153125321075883272946656562617935401832264012951439931442996526683746151865944737772748452748777735249154336571553902059587176032264669034513406345065074824733678231818424611935547724590145605931171554287054672984425416321265110228540406733689461421805834131256816204265044905800854137382355993941613826294953061906914626994129489563129075308650729472156090820352538005981979213919903802175537801053255953465321713652387853050216003219799526785733782244644247177338302232734401183465549206956219879104493465623994000376495969184974782141785786827675485511054485019468419965372481915298620989837234000919200433270505679522392164776060823549290667524821289594052623748335660158326231496162171701576848888379506024908623172799642965097528288388073188598735574241561949837668116333390309428369570513265776190832827114424293995350688270767209331586211739186902653081567247712071924530162273458557164081061020998672223098233803377770098817670031392867643555877437843332197080723797296662098007004367623790514087160690232296994922009101545340401153394466926677865329480592180457607047902420934451803355722857346850353914004963251867329666357611922362603117682186582195342150374212476200016810191746821829558307299354962361370377224791862244230241892301279332983690480291691271204652558045945738904484417487351800609841542302251415704301199233886229952501003775786270079485464898009219264822496324306777664291262860756394232698769720978871530940538647462595227398298229652469277929704451076208256711812002748087006342538863173774386577259520508137672387222868481719060432787271464770236265651161822188543658877728918877820626526754225234485926097614579100261722062222834534610266889439472739591102733817171593577001870011788119547764180534864417246722730244612116594853190859849907842053274936872232577800088594351632484301303139999676251812037757017909283705430551373391347582810030768242358860436840396917869367291016783934114599766623627085980134950393894072329124754629680955229357869059600723857563177304315866188589690863400704322499495051519444083847496089721159149010863824390566166204142003794817585587448132633338183658514411923311281978643492244168612408991903302894988763044381004166435404400166420000692041364600533875441904950190466125960825992027934858202125324192152640105600545325258122515642199253942419365852981022351452641235774259603692302082405910583854415485188509018184270406319995528027818093569038319386501467670399965405484813471097431872191162200607224457814826071744305487240306534735951915322315104152103582857516925178877734281397826452966372467312407592112036393834669231382886511480292206144123128997082545461275611377268623677956461764235340564757992875765897753119018872448611544760867597435788167297349030666736255980916912398409857017620128705614409702085471870121131751321688993264651527750924647660361205090448055919273387721738432518717096337273646117753726243810284153896679521919552837639561900499474199020543908123619268736390692576661066794486601049058640333521963824709989307702156378022161575684412341991849667763256847845995508140286755703508192229412938460444597187234785389326574511846041251012687221953452942743284821483022890719799557519809067084735354139749361855035056017586902699259340817329015513708780022924812668158156957566212603748905325095752001634679407995966204596770031082527199358631439663570129885250639176295625334887594027937920540704435431571611114837400057410395259594209603083000190383042079257388947052957102972332573575877162688589958403278555587110601080581462930858074988417583766801635548654474036596826796162575846794521477349320548417397909304979696847531281951882934787149373327809447954697555277423626718761813269492154911743672365624804000638239826248851597134850132219682482644083315040967233491039511180240189107753488086960550530515416659453480671472398201548240896399709084661329612622484275180269355290294800307923698465690749181025591011180468804910723623964611282742754735902595675906908784779358654849221818773083522440721575669630570067568356833830207079250697384344200474137871378883656223735950175524051034086819451714398026261575698123222550990094941762907471637589131623184927875396446229543390259259941693057865106145123652103893920430980906551210947454373021067461154845717788662542933983429924302577429552354997047102998537422838189502248646275907791324683136368374243842712705413253693637503089721374932160077355128148986355586498926852911951890167034945032591689845908835957438231051808492619080654831962138790742705056192278236096519698844202811347501488987339672973475970437036718428578035428850594464154931665973310402605408922192318994676626274532592318869393790581377550406977942826553217690473188014708953813735065793783979774607933499896151449609544272865649027612506085617814280142515806062927223189190949587701229374776268936204776236054327227398123334900871599229809515888571974349779326056326971429225551964218791175564041663496005558781507812977913966308201051975664844821070771328270883632424501564058801997162050632698832215506866521041812900265226671279073879777236169626832479788384667237490004226929232667761270436843100039001390404113748520032396223950839485722439892809992099446116905623039310220728693888499788912919835069922302940291900680401518000491421489944080723124050676022452806814216323976182649143484897781023980325629836048953050694638864586258561385470810959016061046060875701882487203457176921087920570449948931107544898344927376896749664731154434167797901253074747695671744107773680762833130400284567397512358785549663322928468380337086561045299126600524002407752844119158623000595885416194520334628802456703204365872137981620137450523866603829794923749655824090022479142052017284541350128587184529010466224710037883240549793417913297134306084906928726290813957820402804707925492663556491061727003731090844564652538176896055421549282041648634841360943897588068111806160690780781082584700572781056130052186594331695064244836951865341357055182506420470872029802419373529145884295546678697148659747870901184714969120629054606819359887412662253079202816717989708486812477881735593881636152237185372368500887714096716781709639749993650598162477095963745383633335383492062726104789827950692199746971820063752089358369897434555462000731281396286680654382156590764323113809841856404863629283210511217987062248808087289582933713937996226223046380109915651349304703032335703146203333838918998046689276319084011148536025489943836263967072099052161216529698327389011613725555031155520121415500891497545291064936436411026486480401650073438404599099486178194498386852504770128308164753384121039077450911817056831688032478156711890960325244792207651545409704778179861289877484153325911961014399255300677742847142647661509657707328280967620322978860046010114095785490152480809740097661870912919037251755386465692881287062532834348729447533998926267383757803474841972273001583884888824684322134168650146443312831635819911624795758399640003896645691102516794677890783911443316913295058752155202877864020160626341325262130104294717675641131459998110494755532617893046070553923662871500029468208134016526039863264432054837572508354891876833000809179999926883856368900413588900771269654763780951864170911114280511110953360026287157183629380332259989355697460472911419618835078579963856796124117260242891031002750459612343404634167416402667463360775172593815949946837388403465543238114511719750471669597210313867023373567549226477278457423791781069713747900676489314743184717761642643785903202256561996470509513572474249266609531563346851383014930363658962654715880429282318174202022819196209395535249857748184125849768456006100250043590327282918317279655582568203173284828027527692055000100185155312549418386748299791647393692682869344704698128504312389303479025394199166593428965792992702944684183029516395659701467971609689350168643098364910683365466230166585006829094074721811231817632463691324702589408926101733237087860756730408069965120412951762623906807187926156616480774993457807436288122962455384770927949525793641077075973773877755982675107034833853709257305181712283785988523225232433306994705505001891887987712685202849879114579065363632884333674113365518411590795048581122368748422203958606712825562604940621657902928687704545274812313238995482731840545725756599079801013241199947093553424016056328513488460122503036900282051718608037647553564709854894310555235012271874691023588249642657382470893126473891332124491734324148497477464966704204512462352960502037626049195515208730282603204956548102430826129724411053338840343197404548785270109561702699683008749479100768528731993371470999805217492644742250823804227679888412110448699395925318441728665582124414314284984534828927319599680819108319860757756042957537297478982786362389436498844782981957289202807661214297597761211032198248572613195212893740837186889796536241446812829101785508671216318314694320686335514287801576484695204367322199340223370835175053088556852954757938086796255327368306777025428493858013566974675156330049302546671621177875079103225797561502241144183081424023460794097047027276109901179076268717859853014535238790360973762958679011688224129023008933370157905567870816612870881593640372814733644315399442846816602070367498957791121206219312956358436889314350206680219923852345630537044240081910367538255338987219341082620875597116875434608757258374310175656743863704007346955732306548877311420854184974442012121306585362263899784447630304078023281201385929744831018340979326984664852174658125696811552947119807467096858841481765775080715708235259900636057873492930158916731832832759361973215582889213369237182698521355022479432062213937155194112052912972912018558811171984120712379846106488858755746227631084405863880053926563933389017365041179354191635511350825354122499322964984192459843918203885011426259238888223608790921550360454398272944604413976994604203076955375086724881734128785980482410347808493742765884101873252019699131900432590734469563300806206411526866837129694273787536947661114221753084548061932274557268533113687359092081898846078035800806785340018180801114794937793808211164007035639577511245661225586884638943042833076434670842211136915283333065961393367093889690169186361250161768027949305636925466126237597745209357486763965653034285527413294481546864403461332633448383690054160586473835521768564178266588260267644116031209666934772155976143012276965767644565073949169028162534397599074039688245492298402917124110086760684656466102260438354746409101382753227269652319771661931952951906566636068966567413368477067206235168394389214452812653250493932969995462048146059305224474481210297019293521982008024211808289163674940619829809980589226268828115341154315190681696627358201957550171766205895455252069657316503969725524020474280218743857338734806463123192332462906697295600780648704765193878239806493306200601565892817848416097071349688534937853539915198235530527886821429981699124881194507443874327747605268528488462002285840704000294849511649144580625901225609689574469481930982588033500979895439310469615836602546302176571663902899652531059413754096171938517168266763623860123850397234017038895715842347808240620183387085950849366867473795033978139064030738011713375019810623845248320751239495966985450947081585287660386582364033654954934551431442484206298912414706720383247132682676761032276134775166095572401185972653651378253999280150119486051185103102839986732783488483912170650964543743021956945560025981043064704420044051309016654434654158442171561804461475140720567825443253716486057918341046699267522528746415573260753551459822275907121771411141341017153605312433694753987651380888018052493734259750905464886105446785274689399839981207696534950997253591279246588213694372086679951746334730348781004364112448304693172863660573786234770245228511730609172998513479992910577572591569151690762746707511221167323036054724586768126482916954434747246600700357938023111294207825558751365473082353338875508172574258817799933448955505115548426637313109160861148391369493827514759435228779753409086408834138769931462419721933918738341671991342696020973879388850294399307058696152205258285881228703635429700576659597330470260496050855386126773167038440812058419697366968332352118777821022367800491293735903842672965786562818532658766809378651425467117413141503180229730649775809305675091179638469465391542894557796193199538881052090750119626868247567362180911872513179315587377911132868677520441370664697836957531880086801168733012151092440685800592100246993716346459483251215446120496658661803331801468605159721344775063159109625761453420165651726975650752215671865383957795713084532949502882277840115146611254921371401681429282067407260674522177228489592636082825418909157988933990925739494157968208101291025643076053090513689160549394185650346976681610710269208840764871426218953204704640634876360184446495872434617941563421961314317446397115467732960882754187521788824235216870833163441733997348811068914852396959464442181970659434524690817651934628697659780517282536490803561970059654653635100428710519151106137923363836197628552357095043984882977562192870351844105840318218868365927803060885421038107401977470766338056688399633499943139711916227867902424255899841341195999443921176476654565845517542544311220069091167638108838037618209290109897013348424145727561008309593147493204168497144300059585406299494061322094676540217866093554522057389346483370288562817462339341321790054146048708346349794980741341612275952290150702614611482570932810131770978554741709589928284324165103262661076819411686010041752897645622794591535052195389289440801228736907165029670737053856523113257941028578989254054211274466781009476266902857499553566593965714613428000011072284154722123049211018242460062827454812680056038757542428263884581652247175462471657618501460847560824136150314440953270985277993999817059798901529560081117079415199092321112813339526983951363244053063082382976251423197794575376472890278302570386607179243843690161881037651860924273874680486555429974761707996012458861998696989340965269789513541398742535946104539046320503761392897711699938764798925017184997870582594704017114494239400105434378408918352186786011482600886635693751737697196800741916831284397529866385198189049744344693721547200080731292002056075602340823982621718791241198542836857090314463350655985824519797441939618770516695363012952489634356752984653637806678477925462048594189548096838226339597532697633289584557199819446616230079563160131079913258287790406385230375462607421615716427036381981218401224274714129617668155057509456189785320277514609910135836482766828262838046167050857777298122124208684853494603916078921282348769346983690842391927497826354661646880571126107174820991711785888926824568609816641763121289607376672944388624045947062286685616915111928341266292692955676040177425158492790656758144276882753690258596836274544895735136698148676955272212338379586195051983050123774466079379077411677335282134650119349372167353303454892299108718213378635014599332556940365209093024293646832794610683129347429191308080642261815800511036422851924967227354871913921664911464245479074194941296858418595063789960625357563632408605674946675287452222415723633107903783055918545414598630085775410109269481644621424826603764706340496832688082405450035238190937555930603668055489650847325939618487589348632259019404019651379586909928040939032192911423538797770209174172403063734946410664236153287595763940522162318658893772121121269949295701637529773636734025720663362158072611503364002074051633918393471437494301642116322323800474519507343395909411913523238366944031476940155918394100865324849023765754208102552404810181748723755666506724300718662075300577928211262596880664271928063195994408076065829793869937319660924700377061789173640289476617354152490162652681301570038130503685034779928539219559758801050773048005033480483191030028287082028438536864026637016644114629492104792985014085695596777144239813988690747650272265215635545546379414109510460530360292460412673298046063031583730910015036581783171655063472658359386976775821649318753190913155170637100754849924199339427212063883338063563653872808430207229342485225178866710304367608887265918447611398794781748015933428201342773300846758726002296851385092252954250570711694110469391260286297334487606387652765634781689946538027946481403624992641747559074216517608360365806605403986690028398543681894976860059588479163828956118687039377069504414912756231017612871300569067833032826550828546666185539612421646481967350418476204066188062570225902256571515516710668329850197903615282331880355720505802158520524251566911727113596369431831554688018213669876636117054811787441441188088545383065564051039774246487137370353998251276393432632799686120094122037337964532099920946222193619877389693715863029591496042872122284550608297485862172887105153531755366020035316622918613819866921672267524675171592666587493918053821629869686370440278038340576140087728000189516985981819409354855871195904627012218284722711262588783493698159960113297328194847899561119657007286772572880494502464068491793978937367945066373073721999903325010258154665192955819825279346174693567435543587369085188018781968490488842025444621762443200115964363609966795845719028212623686754137092242867695255692764397075115309477708866613086261541480749073672741225119475396511395119274199872251166656576462866191324970012285446009593674802164694408461862438532871016199658061793877116422746351914400883944733812483118897288563414069930003128866996586179846311972122855506852083978409472317700605460730003820979537544639524321056272844350107998097107118130963300734944379383023226661714612760964964499487040687697582452397546625991881074665445527678690387409633869802616967016238823408697027421750414778334474051049870776206603190948911979831667802976929053206328106037792234319848820446281151795183305456777406678032876584257460800549255217545276442788959215733386489175012273249406794551904957283434530398184275882527261408503503543683182227821185712665848594559492719667482768162505631240949318254464489467979986421041735376310867990854164601664316983155334759259938085146697751850334833247648082300733257361907708991652113434941974666244307560269322590916851500676874082167336531008949461469601194099761710992922693079832741105963009265897228155853464571240892291554095103345937102435441003788248144280236472109371768411545617388282001609749891139037485768675605170899383605737005024268816956367977879219701856229378449931977729033653209546053555335479414676952066021578225102859357397730013035919511409918961011335650034982858670612680567784394498079559407391573205491761272652908110172870098471930312212025450283661347667253427185634422050518105981330892687871358973574783902326097475065923472708244307410792842823246350540401482007005164423689406795589186683454364351727605492897454641487562595331557974265397985370292616234369831963410901645767900694120973911378569804697218253464049730475010148755904897743692777135784669614515120479714707368959401498286047984817860571089025872389932314060419028422701652427797675842483741257379569900536644797507540227021895967688426972141908374464483197132236998577016184312534187621438170063409510231688383414384134089376831755203187644366671618835425888713677822681154641242484609038490338047252215808126070825608708008068813898150303350602766401657502891273439205390763233486738250368093873329440379597304383688552474332418651252423145295758552198451294465309970510990958201063218765776825462837250772931297901288293472557031318329830681681306371886217096927437005152640844862919819507245936732344507536360557785939491058064218024157302419594324316158763183274548459430850733381011607378487630260633586706303493657178912650342708946032353298548286617046338770924672504477806124351037790327803039658180148929090586721515463602499375205454489826675573900493829932768727101667691301032188624091501418307399194530914943651355637767531364376031944638202436181099656581892700906274474023069097307589995173077308137389046180737778819736217130821959338904922604617302439642375372100850512891348273949674074864198555906943771451289452774638616713106902494787627866127530976537866073308750669985383733048141981322397292202460257092664220376997985670498306221856705239943221729749850700972278166605779359231585548585479951864576197066249760313355579273576855464102851949194424964023246269873681623366487982416271459654091414437031773756825281492509070805808758419244251508941363237645701074576461563819758678478378491614154033353252186871286300604168817866574540411155737407224386845546623453914035500619527652466331465768041039974161782791318645931242885227470280749906773552825706293374504858558650140224315645498358332884503095145351545636166048230037274395384025724725670880281087911458602876187290118357574345397014240915095786436300651827019386435930145046118501303154246136332545458876608686859618522352719573131031422973105176555247847411820870973390416249537651429855830271356120020901067434365308567247927770980631553769634399121330083897694269227422377581789259769833943802639336892555528886762316456129705883019124673948078220166281955891744595207806805591971109720895358797572203667757487175302083755053179364248727785489948144073797289035610640558413081063256597084236677306261968272514918090346038357551998254308978197292774395269098053209060109730669595077831502159652185572322535476733665712714411268330927341993511942668298395342126892164938666066776122101434018949864014491082470959448667228334351667079732697793467294462034099950018799203150461421602622930082747568809209514632389040545504178874652947633696469783921694887691116542482715415335606774835279476927127738903724595316218781393454134375136406595897294710998571915318871229596492492144187051239468874949518670558301636362756717802353033702337277585237023211598414823442835324539805166051121189547989971868069770009992749292821232653293749633677347057712451276760118335930440047422033212337183065542905431858221875578750865743999707857770824003514032974715867062403022978112276913520962875345896283175893756014419924790915636991511717643789297588992809561105703227813955094782457907504158477774083874387643023780580543894124548077445227679894048748204668611251229189977017245392347275639562517364039831937630016206136841999118236169079868378566525970780420281512325904185603948547866420741900459630847730009316976941774111739007680662817990266154169032690954156963848405113786041947374565406870923771183545809704865623273662739346355758453078501837396394635272229745694987839604572635079864122481795146757741065424872714738489506281866650061399596661610015821124066693115784671003271448085140709194882143455000721392708041554119733266894671586702459718923998193989451252869347045809596588475456324502732048445254326287165170128225833952262579909478380046938433363334116566029091268069020226089253650211437833771481383763603956652159854130297359361709681903225509728640875756252432918963821748705362153262000159356994018924961757376845267788716246614738172752242667593033450522117258550942767147243754620922359612914267373604923252669700301807888886594389326279810371582724011435806505701422088615498782710606110711267866429012577057494334468843482308109318373966570574969685880827613668362306392403858005170446644963944448095211760006647415171541081240457339507446495566181070197939085574407420626959424152522737234155470832114481721166572793767692619999377772820305076147766455645002560938663451899301652954289616069135784558642370807516028642382518498274570789323366341433218931081930093458937180466506077575470327111913826491562045877234050149957380755515243399232850654224079499480277454078516272985516799745657005729428767391706374526831043372082343051683460496877230481118220477001864318620118969545037236939634790539056934267587588554009993534570313535728133133687834439132818333825238554953008934253147695099314222457503427393172520769789602001914220090518673698793114859302713310815344276287839344868390489233595277119323707315152332432587480345748596020534571620674890805296296130709799319458305558489692316169574972537582156237954630089495740026621675324252574297002200414470231201816934044575986092262572643115264453239305466582236623563634639302480606182042771623981399959364609183413866033736541767299135016831122443361186284049780945543501369259180488911712848713334396133414114058028868133429539653532479005603090712152098011858910202419317089779881964737353938070329678503233608266826949879134946957507457626949175096090228036824651086434671644301618299190571449953787140384635686892079509118623669991248667433468629502546134898280365309358216372900982973444933013573993314540768689152658541335203105486200959209117827254199891968759864905730850787214784925795230580345127008475754679217681165992028027050161249162635425206176685341197252292614091074619376263379497510204521055779267314289023628139834734432204964748833919473494342287425538084212577354320701967999362597868240982655566548970038348021068320544704340035052561849899090393781016571751420808103354131313867981364743628924288715423031811258309579036142615609405070127416532016330113072873178452515665891209876438676355835540366484672433086695530788714503646134474002495771307907938562868999401152575968159845647974838575158251938071404088562332440828852601481560894891897808405985180322511800355552739753643529282624490207523180832856041461546322306923163602249040012274970589862833614840799216711150484851757381585418958118952332707634058813621727919608229657812061566672367817534686075797679851053153888653333981143498092785101810567282071421150552999052718855407018592813729589261489004800551815012584230330706549962269046331338461597107419007947697104285089151224716164216782365584495826011158177549817382161131015040286260055200080217654713670461834242482592586496191862684236569097544082750000976841368922347536202484396010735623912527047817849227113409850591635003085194399310615255312722484913795201034205278442081360912646765192123229010312972309918521349623888849969769226283087757304191362281698368657271549225226156784558053084839141746860750603798011708305744534919568743005516097460043589303355021502659246993393300512882912103765875874408045146564956362003927089126912280689135724368135458208239305052984178227382930931360413738187795491905470791215754740690229718422455324487676162398050208429269174344242966760667945510260963893526689229966071856068919391323234747154933217297689040771238604281735045599084276419601408699424684696709324912936160209106113039260399255228054996069561462072314943509997662782222126086289117976988228235380396638732014161734748401232949461749385881613196791814783083670627479736074387699890644851915575857951202451437290012925252700810826999215560189492073879151777798970181813925063272225242693393357778414487505623366900808788094252275015287922901690316744673260624368826282108976930757195798298091312664446122901974127842651932097436654718075422894422590300075242474184308806804823067931629603581060936713851437943709433213366396204667819892282981631430171390095531138358567022721826556848088346567328916633452896014177925018679236830319275209714808915956142796434602798114967652343984310048263313287670927735877088508944348982690669022661460201508131388327195793200447399253190601591639023622441757020907345589289435959039669662713917493005217544658162740403877458344403766818434695832049651057836417298609019055679009093782505501079860714041907185620270728178925518769614000660794200834615559482015265185986788120212426876190374887682280437162429439478886274539985606807697889690973675757428744175044457720521893713669237730664257217714262859590292345605163706405761001109765472726207336405925149095691099378129439670488801454604208330226044590344485488976606601957609818842961591512966819336934825148784026220345934110156668192392659440679363529648198965145432917872088537902040630970556501136836935661234264595968691063424664796639716750447773760712783125031582612230611477425075940000383796621584275965691224416812333829677238558181350876664829509852987687262819441564055074745587474117398296841626733536900994549612705308417106334033057502093185816036254928527981104822551401356348082697506440056877746196761308964566203188172983282367600767715158875199437473631721997299417457479386879551693626185643680241215917532234799531989676808682034620952170594442660365544932456096366890002411106198293697749776529520439200419227708888745340423126297842579028040822017729195929654362911039818670809762451950801428606813688761380932078552633489275611645749357592488568634676092854946544096341970198737069997098033532279549603913028732274629664793657456529581257706281342297693027692543459315304818969625253952775127607718712295906456714085084422920377433990085437672782546957103762050073552002359543129224261357575711673699107862056459678639619981808003284918073815742790207917311946453550901998760789821351525594992225624725435515018544698056833986538982046182549036919431464407145809545702821204745991225093166195107772382275607562283591688303582710542389140291382138574519547347525972210983168493575449667933408037168958797413284593416863178021323960193978550486741082309535933220106338999414187627027207854962852220305844387047099777793323644562647763778176962338615594374290833103518991338666386170813087996051432780802942932266875362836590913585727095025261535686591719185046896778727305335762671889580388089502149334484797290989606154493912474190898985335232926610121521671173928700082165657465856643141585707929982451142139556816754701593849436643990074407942090962856187367989881335495204624607910738085218489123217048550067784565569597336528201428776953439442468598965332900962156753037031467495594583584873318843063788353700933228206056692315064008076468139422782691673132191938888011122227519115361900856954915064101501648872361966408940767696790160003731626057171697230403706409763707525012092245974027817198858320117216989294169198599632299666467558887054986686773747780972078485629426539454258379979361704971733520189597560660790031651783117631755336358447781629528200776302322609375764614868364571246885575715680884157191156131010243447172288161703947908906410366819096414527816219552207691636760083272960549598953523036438803149240557800601018720235913599973353047262004589176925844877844662861957954215478251445901747316444527991281050322406441851098960130436651073794184355542760055888053890698617401695730609973898831888367371264945958339847034106970356110943440411555142073233636112246977517622282999082661697572420079566629614064514770570084413849063504936863832748927091533868625887220166913372538415985004641152305780083472946770028152488633366875231923976705684829310887410951458467045941532477533075003480040152527077680891687495133770786108263350179421842240783396212669109325334785029265523853279522000358484790085147816022037001812211558503669887002590634903373790482319218993440748078130895575052456172958463482675593757787159915745008896672893406735717276490133875114021514923814095926322594919734868148489102210182246113453620245125334363982929104583932168169337180828945838246725258896988198367566095969699216515748757142202860597177927008595305568247076503580072305440273301730656141389013622550345149605204969958852101705112160991866553234536777002983170718156452181772319849741496403098158716695373682344742489045520413743336840264575701308952738196892983757263920157492978924174022444008077952873187073089121856047156305926613862815584066394732532454032555732289179738916993368682571370719762569011224233170942745299493199750227138224925611113077875475991956932887660063197985366544267375067168381930001499552132112756511523576011335286491197527220635232028006728810593107607610818462864399359069520071847752607990618151643024107444502568672714159250062025315890028901882624072611430252617938841796103469362409270969073596282243295323775424940312691246466157220695166689938531809658916274126826396585683403445800236898817637035256609758639067537262898583680821446359973160291478003883662783380160737259568410667725448653347887207260481697989970968702325278464572783186999868205074184531460478804822136019092685821456132349563247288771569050324346216579857115754104534634001934489659146790785216091841013038092518663467929050009042517580857401888296313859199474975876309087416925508631951352172502412488760082978713137432331112159760802290879146041432695813281475915432471136902613818253118886843479090553922316419741626890670477130989522059304408507697320952089799938393929318277698658701379832167622699125995144746204234819682664102889012435173368242389705687885848518618566459579026024086468789888209537886262703260259644782821811462480697622100023921369321919983428044709854174999758021026632128520316185292825413220920345119377227810290106997623501905887661058950718583027197829264370551322572334175153938541744736086210799794441045740057762601721554113396015355269620224692477730517926068142462367671682676871358751256294248104038363216831404170547178938105780948833689796521688297333337091570928671450949580571296461794917311969791744008411657065932795484857272540298546672407304960976959754986412299261267661874109358378831957904894959962084209803013067523732889396936167055495011614804981604397253744566678300455081099561451434817067959992706375703833760986932839149518510350142139638143785243005435207767445063387602880200207478297926472506158656634099643447718609870679164747362681167951197074625065270321023090184313145674304061053728123231832914828376093074558212356784371371093890162044381502049884309899721066538353771809097323488676574474545062304154944228765312345337408065082675635688942649668575246704687983734754203820645180859743967177032367422676562670197328238021540917506398486175539792799996182493534737770609760446735941425611354890322242756606836742937002022781169073118008128083797595054206724021642825017877183896055873346537521879832646384243655025969686785230843898568197286021947415106525579875345931653301052604442488451224321297755191305717097057527741490485321579017767152849982259087081222068191398367488088625464951105751633585506691868794050118618345390814499099202240053720196658555256866467231033255033621775933175432631826927600391735928887098765559442509931271194716879560910285087629384957610605973345492803857005787867175653000021891328789371758020256628759768297118974910174311566950072553387493132054334625566973694959050638162493744838835965062843962879234768478660924493446201976454445758513918158989902448652321026437846036014955891148774243163495546226861624367047059283809014527287552270050637931045477184716096236200636133230298931381666331816171001149641725491676566704567787379314832172754053420743537855657480503200017011235878723635114373352470251294353959089360148410051021860872439047827021522295399379259098336524928075701994641617330202626748389526835360491633185524355362095490437426920420931529993271372338130071429208397574646091166580553837230496566187267924327822311247675784820518894423059582262284667422471604766252428046360158206544100876334279881831323757402851206743501392255497027404969013595062661587355526937240329694326985219020196447136626570483944081955892691833595703949110271516167167722433892664581657270341967723209449063070245770958069307363881794789540352817173150592171984228689194369303192183962664366910619636064750312147742786625113046643004220124764819190487344742781930108725158787591483082762874150350335631986164771263605998528456047936011886030882438762997601406928555614841094722877611225730615854521647703520319467695376683081451169047341941730074760793199212282001070660725242703876882858448493877660422609953634406166268045289888465617800764215127340125636811114735672167706676777719166987448502334653981546498590165463333275618792997603854469465508211210530283865084566318271906020599285851259399700209142872994596651592515325735394406830598793914122016646943104105878571710281486766957276667707315158229506766431074033566946226979076639597140047195112391346601164652919619051125235500770916057561106677538938805539033426966751385310381094914967331798020525613140679177024762585452482995676391829772240573657597820593774441726133183602833241431521788069837605877772759822755239027242352284998514888221338350038779997652053949464335638023099043610063423131072647028920681225305030774939807349435639135073604453735301452325384107694754651046349276829957864838281944990470782731738879139415197470210983026190212467138413138483874576620045181380911855511253255825518681162804277470149334963914181950105067896932498013900976292157972788074726251030983348148412323768655926835132655830911205757632755582308592567946867661854249925888932751337885574109215927015130386556021235460866038578839594610145408661092935315291686648129858290226896035057226105338813935187363322770171116265898181183287304924974448030435383542583588620742667924238928795365362721850225683569445143364985138862153116143892599134174712162271104198631882987161399994438333999440391769440670605920066099553672244903125733365888988102257861560276488053058132320514841246734778112500792359864794525970907865600355538359385106325575178210347693094576472900236392560048337394518591408172947644742038938530463883594105483381653530893222556194826753403551819783182657379694626525363836027101678850644432365168770946011759368506950155215233131556477232691612847668303339177311734295927926048069313300767092969706532393399023062114270679989963894328963047270113078049093599110339746080662034358096749502530418959736113018635771951109321087220897420636883309079407891965631286085982727775647494633691591398854784288193220321851845310638749847602870102208151650330978681401599925643251301119316935864272352726482493628632046337362482720148360811838168201543040579299491764254871598639560465081991623709718563950498903916482260330581109878375861303116432031667183175839646256402156700971802940687609420188054983305666289154555039781480371711746233163627240898441142339673582372654304252073301974894636264957555137767154017768695333329056062490400847106374622892292386855561143706366158556213030073773318289420570395164144758787650261628923888708403860282446509047863723412442808742946987907097127041574841541413935331193296884814302408280218790840318750933914097293352061371152284449352742421042786244953685824694638943772517993411032396232715395057542417280326560224658390777766172809745276801715150373163429448396700003778549322032247456402487670584663223307634026433078659165242482461279198576646138014185585221097467090669884731186182534151338613961355951079637057382934222515523660663298234331556408124796524595268415652138043412174934667890914186069522787085451284957413937767920424717675552778174834985893096959276216672333839199949745379566036959443923015035685501092593748049157937526699051069721376391472464622936046988396020549810331725607831983363025487808901210554832792558699072191687557578939016163048888221870511603264489332772220486345705863588769957139296268602760919707824763973509556562396391915195452517665422429069998618889829374304264646351833780720235209101777758464333962436680315071158332662829620103178368337581207877131595593974073941183335051869698652726127256356254375767631308282518841557993259091665653118132805094481906325117422211171672157396460669791212047046622181034837168381884298025657234919098867890970497559525880149627902608552560365425277571095017091033542897010929923250650191423664144546817045165168043391322089970092501296116610725581566737088862599173289608490514810254418134355317573467733108589391825463267468659851439831045361164588371411895306994359048642265265965947817280066721548279167798476208060078680119206524584665878222379195484092576847300475479798254629662084144368631029078080017401437710690286029495095589564332092872597096214053407237729155359103921839372305594502177340589984533673450249009968695376724274198947032922399858320248194434128591735979427865487084848445383213638963561922782530407301036837994324948870416840876309824195911902233221673852863887998585129184198030495708191114176373011721218396388190428246147989408059018837485542561568462340812900667410624579310660958297079740927484151744533417065767568107643711741735927975900706808362300450839557511887923226497190583490695336700979747037446323452553949655338184298886246071628705529493209091092280538984473287833297819450467221708077329554617323199730904946820915041730755025164040440474718620340295705547233343104351710645569231380796921856727384976686319661936794601151528316280847681525161946179810769324182052172626622537110390596039576024512398393547843907066123650537289115691331628547447294476916031678741534640682882260728500724044817562473933961074876735956529966165121948637398851479981337427035442150351045933626171355353161608548889223578673542854733337771074603679161219286106278639890115464082838264932740858649054734896944259280317407180997660040288212214735493593527402723314391005282974868501899874293685273250331558213560441021138651413867197144185150791629616425120796498671316912732514265022000824858504224375325010471183691757517521356834775772372015689591595828847606685891364716718181194376674628425526461850452950645968562305828447705073680902907359670661160484367734032878900392787333031895909715154625076663866068929573208885721908264505115323879818586688275888251468616980851860763436940939601028677629218252647747548272782432504284131759207479254402507215755467693834915709734383622696486141190598551032943980502440842422009537856487002390012237248337890073374379886781999374395460775414588295769691579186987038025793869639723890674915745453790645577209277688141049530850396944166023268309207919306559919422981871718339117333203879429702133034832608231705903171727806904830737584754344714686741466033314730956208200400942724233779927831010719934641496357208866720704718941853996837712899369705250699954346567099968469639883398622406727060588933178373850920628252849591044191578066852263494238974220667306554478764217236178721224958285981067841812446860175601698433296701858585999165699022380698671719725684070500085286158536342604471544106883242779006372722785132275609693964096286641443182088277992428398144803544958039967894720013175905510706181577259025726972235877608936451688098874157809967259565803438253037449269128414549511085618483040876842495728468294603625404962996494582750396793542404948045037997138339047236940457789248829985979162483074385557753524871228897499925197622850900992459761369119856094890820725775574162164904434313303155670810996168138620172274285313565047225341814255459371506548083501416181610550770842432797487815251882196538631555176180013081288379422774558828031948017864679984140197925264401186334414245444004129233153207197194852148461663217879686184970165598047015439704369324288605180684819554580077644732697441408967122695796270746799701804135763638766339797671999449374231362027026452062723364115660817478376913806005037555094954109741378691059376932012352308409497003052131929825506775399816318250371794037991986767444327321429956960782145511162869234140952320177824503967580500498103851232240471869300639127321288154833139356502831940193584089338814721745707552276438660549936430163467714762228297221090348967465541964629139473016610819617829205964297956389216858171881227777571586205085110862719570148985969234781874416152186558917042733956384339132477247924948217466480455003080763947496639377069472279882650036282419534435008423063396106311154067588910346788251597999439607935852810147267438175122539618653341902812660026144726709648396431852751402369831724178672131305601071337573977448837261025091178030858711836426459226533887920293891879368751429177121751254403593249013498005839486673196262861681724201768920862226659574570483540023223095652817780454406041258973320249625624934756476694783375204664412297985548804411920256371632012732164022356822575488502530463348305378389490503868144967763023925939361617721508803731155628751899455780929000002099242469592442458650114939623679027579872283359442278813893711193781413623572512244135814883219901543552322805549686138987404404993007947020894580518608278977405657401066722794207399778810638741755886790878264692348383151560617339683474993651630519138782759687610977557068795274038879491628233400901843001002216282435077480371532182281183801848755576454698932718116747974193520342832380864877006984517434749983140224719976634254647501951927835180373591321461097681434719401893306349469664994861482471741243096354069108709318971164238627480399359072255802541197018325552914174805981376821742639324759173350195130505998555725769358309071803979325882986579619840996961508156198200520945469861041749158497082415091693347153206194228641488578277526861169725830946306692386321218926753386335943587160214793172345577497971611991319408324783742740791828823616150456876086973497636360343930838863239843714982660350421551415149268635194373134124597465526003302411594984514285616320518641510247100770174584636878966003114588738615046395147493778934086248218751245529838942113788076193442252193170075761043729492046357430417966602077282137172003704204420218422607543894079337944812359743158359103982104189484616226402415363036325487878840859673786299424751932703194085057382461298278127380336064407723532173028028181622423578710420124169577085333402602118024421931546407070346774505968527463134355857865214646845662045935170246400472058395705300159138951338988993350762271107588652894031020880155234654014509184358783431568197141840346548242532625881335270796419863092445260164358317786726977470821483551309165594648323736087993323752519968347404239482973725446225101007774238636963094568118177883640960573742701279326778559162103815681179993334903821156053248732017538225464388919788189106622514517964989063440324301699020903776489498146379930546412172369523508680768061838140212050628410302461414491064340538770316770686667116054662237125062316203996261827696873844546244761538397452704525245425038888691530422907165229022120999099976474816580465297749648486238243655568200063738702093714587684149033822908397426615606518652262687342526213996535970529987866126295098517172237865417088188364652245056222563488824701961224637539051869734810546810438941339211068061466965828018050614654730723459501695560325927440111141980047295669344928366911198998122784180707792778767397047587537294913863796883703637594585053697349407103197852678717883780509822340118831489705846240041216270062530650886343202301984503285528729770189131171656017070727936997171281842409755844626551128679543965479495626557514356370527661279135891735432549761561726715656491918715056087797880268645373690261140280585306489367846788153761669241413628169895362911444338363047036231977175221741388933185225540325667597786176638991870545342992203968264332402981508861917540362576283579948677426361380530347808809326652144922552704127190570412561931541084240998924782590607796499726597466646983440053286493684167202069593605826306210823758691499965624494767236027232750855816541316633220786738601784191971584671202173117650517467319832952732882851183185817149447886860356493634425261316458364193848886587939057817714563647434365284940976537172105995489248635829266627589071352280146475518531722865340321941857180447094458334493881782506250819631351188116182751255511874090988275682359627628573868919051825779736044941010797647421185410717293726933105562299412480107805182691892323083605832344211295176556626579587417221024969700095159612717488002435227060943326052601335467216111452324197143404461681916544245716358136907525798379510068613827452775283951120342582561109614563826776959977427883797233526380966607113994895844094780349953272756903698522096856210931536015530903453771430629096712151542092279363126616690582299461590107817321402585609436237997088199183788261532067946375431319076322453650458601071874298916128523471284918728979612680090697253702567846490461676235008427687816341508198846200609904993675737325286892483204718858708811149443287957670255246425563771377721293271617002820024516772748486234341761707973154676636651688241478387356702099569160614942884727904502833448922200416255122393776893395046028232415007917892189880172662137038136406693006077344433032613995747422010790613403958002875128126281281429612183660505243049471037854083750767472537213355654749231337027006237172876269599016510491546361911240596578163222463312216645894951279738758043127819008267672828090539557769279393030608006884113163311189826630793641480133202430963626673740645055571471950843779814842463884361243113021919043502740403878549121233747019198974098578617103229002107971007580033602424259044754654798086108918260446946357097727022880843719256457363701268677957433721253291622484009042592908066737304507239899980103969861683745476779278269394388645359129612491941326284951429880703453519577977950735338667609467010534837246532815186004880944932958120516827828602071934835773357656556695659831744872290784141030432488869838916755320827087394142252967656714477713398063939287496281988633879148114582141137443216453213785546131884693174360389708227418280687026550787783561842363691395704725208775975949195844466501096662182456054255467099413209458316604051671836436998440930539969283222643404157658204079037014437142717177636618400144108787645376138130391479791470529863233478432404640420877779910512520496968560392083045334859150726269323011034285766474337580181474540974726127710133482445674181121158009537694020195156427011037073520251557370561846478486500137795021764379801127080393266472875143787290928718963175087073688803221914867019436191230721134759170293460659342062124934808009660325791619556239438007468224564016225721637194392528066055906668865065389330571081315447939382813711693298528712485923610635335403068840152711408666075415427291014301650837342840177640114385545555765936105387265210230215904045708818361745451732154923202041432013968148575796557330052310616141136494378714448356121130310317178195131161737604050931052688317975035845436754496730373619943530270598880382680212830371668169421095048375093059566281638671041210662666390463850777396412417413803816126619874325996293159532941462360372746594026551480023853197649933171170361027734303904925040861819610974373265291343121883492397347518076606051863070987034780107904273593613930153710070903900123813444365017191831439764719444654935464904884545692377275999823533063137280127544433075307719599877108232280301198782515036401292450614613013980820038929845167345960857856046900185949381820637691694167821961885009290021695917763196471103593986977997343558719428199889192687329008301297968116839853412845114511296249654787388058777007930632650968461125810203288446161231021066220110937970499350271088563710692784916143505828403268725428811488800771574213593196567741497300318134394517485141484088632958416714997749563171964849826102167886687324624495209783032361514076933410052645321279209997475407760221389855513421731985058283035217156467427222507277865955849467615520550788469851498345704015844099333443163959993230989600262734752131900975238245844457290939965840520606492743424537703310872204479738354114043778629208819000221339110605771860755362928123716942133279830131573905177073790031644878428430788830588970627813476663098863815592461607299933522755008325127894161467259519867607505043486391269869192323133770625342269774360470247536521350044573220922309412389194442272921386702312385814005878764181808843391325207798969899888916554144677376137457133793198115489302881137521857601565874745703362587375360991921668649448839330694876851405524538851740103960198031874805635581314755568627290539130413932762606753743224353195646025954840310863035826957844791191618301445186621662461535882763796429980650174746513226956185734898651410591908230488026025385306353182551589112708095567063560312311632389991129568281728516215200502504783817100635438255134430879323573063409402640600760997829606487354977789617426639597562612424496441181750524042789457805007280667732281688387538943961699845884084949055099867584973606043487649475103163794612373496676645540057742205911238653336375958093333443629153634613756373463848305908462711027621891170120481121334784470190877959390366011012178993853557288478469594671616915211313583621540231076660764811675197344787866902514500732456541586615024004409970400023548778747731568474626823465564053978243776284197348140165211552569038553623438834479005890032735368826980359550713985596860523295035775511609774156893326982505754383505618942494736159451563018840865181502519082104586693964597333120930886221388875203679445911596531714615476451268739115929854046705965373449638982400527861238477049536049818732018916552040728609230433988317785524479297835836563226222164564684458122290826962156107705057121318003326336495703858380049603023972778845684304403226940202461926272892773168994827658606702695876229946609659517856807464298924633730686969141165006357001804537479037589731415376333618201886703128837064307746905401557219736073773928391156895959718109412858650011320131160786254039244080882727543730341375969414985600188998889368122832330886347437361959786761278558364402953909921967706590446375359590675624383717693534359171000146172778930664168551972451851403863072100118048198849711890599373287128380407784118068544697007518405259058255851687919615709197626497434392757696978583411698053448080213119143942959334869455479601745163578355870184073396651104241400101018792286721575681123074008454567224979153952804886016971170978746569526644413151853895954404821117961984791674224997909234448890945780872114821204309587393896195354394014444791541058780394119333171333469537480911519018534925384025015018171837830173116511607098844266546046453159591511560230263405801376149891653576560809636404334691973244523043641089358063319016298476982115582805768375944271121791237827360181183035078189766035216684796455127651587240381716169120517854682587394619879362748997435485976322131676904998441429898171949264982232911194609859704676286436822083204646953446845116639881298788720454194967790045781822016635520766465366412908413418686195827353060150674440359194811795663469008051653404958799285254251465238485986596603476627820189721264084197197856909256995213439562112138363494632213029786418911084886542543742938120664488110723849473437501517495643952396560980974740252174299524311100087335033950189336731390474804924527140111921639186178440512569202000172468554755076282183634944564135297825794803593119790921207811170289945398652970175637703805121966147483622121730689367396719907814500618621287811797294015109710985595732642421845619220695071045301119395319656034109131296330076663580557628451086919427834084055196017746142625563147951061392886110575060128823264601356929716556180362543240681544542206338212901263006079940246919331035831581364046830990044289903403827655682066942597416443497490850033090329603803842399979141523973631899211361928688193111205775489867501574851187387765485536840549319118653090077984148847722160440365356239181293432454719642877395732351793591495546322082944163445947246761813166129337754256002116881382105078352104363244439261085410020368198852746330516754205819495244577818266800853977272291974833463408361675387009623694694947902365524051357505536711359801404460071486833767114196426555534306466794752536651548869176406286364115298736258205919917346555115663259828804195048164484828141881441219623672186932542156018051353294252314645367508837359639010639844386746465783617674871297539503056759261199436780744989242246124993830153169279391436755506690268192627968199010732911914741776344618305085753201003619497502663116564622776115417893164323121520662818807908138551431353387998456872297286003432835870578331228577849187630122778118685191540927429698983516506910513041895578270172032229165976118648194760939005486929104972593278834919591405005106012866077938916368385975728542752621241645523841591813176777825821093569774743538969080664920958696101809673157946612256360611887538033117951350149344922483796289695718290482894482004678843710452154964714234927591479835961513603861407857071349932862983481920286266859146807975142380020342963593681261391611100917160321593886835459217382958250729044790064349469554337458933261284921500101992069463542309632301269450357628817448640268381833175735069111156146152252614703569755434506165015753779475840765886642674710933731728154552957505143743704325367002615046548121493452684160362114017283923397259279643335596124110647944546278343503660911647640472898548471822469482524835089113898133585696260208223189608561712974002469995440258009712934339237894767640973284663874199481032288545307494681367394957097574571071363007657385727542882095757517088163820922096038513716475505128946656516677090799206531690711306076990841126936174383544343524098777622277928327515882896528336801065327270616921051163487705676011243994298639884283844797556699878109829042829881249589131517925443193565094349586762452703015142548428409609592293793873270007231825374044652412430317139286179995196185814577422379235231005045431313308910500750530991309378049359345402682593268812974776830075490130607572945355402984702138572006853425734151016721191026853694578839465586731127768169606680092285890062115598996938035459626021201637615600885974025531113642377712046982541406412113197249627597146189288363054570329544294903006640305607538699094924145751066290538021141811501342767524381700598402289202598269722884900189373364125187371486062144559469617369605267268032706923647863628897386695144935718844274068804202410259142512568334222645011583405606035736048839281055507534821801974970370067723342691024256216628457943350061359221413154728336195018528258111047541690536136258198786338885332714677537894124601712194904840949153772599764811272665698173214405793930077765242707717056003914380241520150456366140962162973113267905756886986684873452027243063756484207014438580216611191589087935105191732586349330968416339454488222899000166451892972354204184203206587445167527291206490884906458443184485651072289743167851601818496152637841037867310263342349727114069566317008327706058401376680471724087659414267606464143969706866752399848889860406704539162778561146933538058883742487874443347555936835204743988476662014921952695733141410944631433646134847344131267841974139183227826145927196059324261244788052625107129246343640960016354086794835926120379681353348194918588862895302898761547382372384094265524822684726779838143303944179462989914444885440576269875112643082152850941452202908386071769474982148927517679597977011381847912747378391755374675805733595622210759792133179594348272953652194112421942631322981093207511014400298551696567041676908335184454693875998376010042388373014059201637944455343219358252883765436809272837342362667122051053301073287249349362107634087452701473361957726784679038952817812069546044050526137714917065271195715833500177886550934445027632478801843260836789604559855520265050331226008158159832030107172927205395849213843479943922442405645132497781379102314080825118512895515448012567931219002720312763217888815489841301273384893181818435300918197209888120996451232442925526752501419648157809196416355079869450169273219397957564656645346994320825103173560887640127281608685001970062811538616856048106908281501389156431757232489063235405122139694375089527655101849411327409855098045475288240753062381083844030410494903412435262052359099113379706490303210374915085455978998207768800832573621443041032269231605509006593557513734964064572090248717781813856940267503923800551929661983210146538867779054508920972731130807289425867215428635001282091762813592172743093092128849009521164669248482857028745984685272025582138216570371454892167289086488654456516381158592110171933713930113742357040863682730778720148360870396126685340854199894069633258887502498563178494641359213768121540789803079157860895015573210823663609074854557919993242997412292817069755625898377716186739141379290884860815432794667335784535940305403250552367050798834416799307108339005987794840949857138032917530845165122994936444899074611026377536291088622039579450513653507328459478082195340865051639418152527756688103862488328578197758310630114653516780117081693482770869479028376490801030340519876454866552554890513127673667210156712860976817682220822292065425966594685936580369363843503734418897902565615267363403263565305738494229022753257107586868243240014844869904827499634844897295462466693835671897245698785858223602426972189672915013060243511659881635089934086689834582508949254262825247046580998343382894463832310434435588328817781461741102930001063035591805976628763773123577166241205418525596013617758725325247182317698127222613975390434591165561419465320787908185884202424225256931563366025065507304351981980687162570715881134648040763454400680812703002043260158829669462828633369109680023159452132458100543564010727616073336620652990077786525745084050687637976246420675647685349243255149309691095032367009479802729972644430550838721754733166330452432126170540990426245455258353075127576540600887368104726994900449075943270658014894307018184555263536635177780220784711032702258755388197606246323838161651074970967965565552187341735575344184573791988628373898748772995066763822688151979864208155174214979517762503215564209614981043149732688348976721057568163356927226717644398186215118823946173305294850728202626493669964192425002720797012864188271160253812618835737833262140413467545224002835085478097187772863513172182376031038822975432441662749608465443836811694919537761796398814144416636089842173510077406298552941398379012832945814131103557353571124060548179902831051227612959061299815359864122478457312559012284640179972245372747984020381462107237048873277100278096447144182510646780704175181878851113997863550129346273072285714766903490168923282423332921854477467824494333582109621126855406433350446751218950833843511457190930495757541177388573646015828349101697709876882366262743180160227468196843469676051819960719243999704021474519155425473194164657630697256596887322165583639204140521752174902214872489885441912813687008099936602979407519065432836350765310401435388079253209439946736217138419658197337951074073331386553490716684521871451401131999060672075190154117893532619263842332234501106994161718917799516929810143788758582017326115922746491950047399705670005649104295231423562664216302384006410732984173001507454946788334330819563222457516239326081930153164971352486200435422907789014739224387849146527433624954177456867286429223166276479157735787103668793000507008168979626167533545546552766194678221028337409682061529951417144373225362292686025876569400569240480411398304434138032366349587506584397243763261150939183912457315694715804279521106336819905831710459986786302950927319818708595594300340612630333694047501201079910550591234004154950544698702455070597323807170518428587225523219027821734049186739068487555599731400329327564725745334307231573715884428434460002304979679665337475661302102173330307009346100019930584351397320864683038985668135292401356027964723621681999721437502272758560925832594784661508445341657621462392755437649773083969422738231978333188278565821186924770112012665680074659386054322942707781851637985112333372592734543073154223850933251589759543554228684457687101385884326573411068734857542791242915867387110511199051953135213274497078156671960900052731433647428579834789668512482150131726500004210665413194004192714900977460460143897558486551367264463767746784307997945799751572607824476387722516918740507220138235386193771964726594069669419752859993072378864998178062867452828889363007842765469275335093091695804420288170273838864471495685913475427286146801155395391704975587266652608442245731074180996839760708670132742240567530636531280646509674482983090412948980193454302108378507508940750044952539624600157764337162889123675859551573072730077817885014125277724115395036703612413567485510351779337287814895325702423891820487501605080302429496378882509902463461661968314031999246286801385441605884911119748497511781233005130452024595354775111289859755177415691356760510003556573229273214492531120624885289022343528738723305981189028724217165612687300975471549964482173859823194123627957926518882178500632936402627801879289409172438069205967030721948630824005856074288333899968832382204489853806398775769730969394756704688587009315271294986236944581150450970989212834380613189608198844543851542717462921363545615431607667786490588407032832204220579443896753175138271941645051762843632653235650763981464433931942196893498862266554654290857570413216224812675783610435590485421384418614243267352475092217370223845812347837083589200367114397516323503966250173862275431984085391730385340892506981293041134291989571883679685211428771558247014074379750812531710269390264734448268360167609370325353278546875086748135937809471792316888640259649683930599867963282153302524215416802995101816392435247862356245341719678129647717158158610752697203992990995698112876708482111267496540458285710313409408684999432968401517094223760421755397440759689339542808416553051478221030142593683524592796804749992341576190829006769106965302036993111061929801006046330424675393970634003274301795771551633368048446264762679705959172746983198927523305156963780424046614437507157251358975754196770534607905346029885034965310553712631328725549908837529888121504371135303914346393029997807987528492430033034026620566850692419403098040967852020656529122588180180288306314477597038676814905522664701337446506525692759814864963886029195676443846767277515045147976727096222807675937542651679671198250693758895489755611171100642275633894476795709091803384494153870875547657000990433843226414217590390524496243340669921521992471378405702075074558854763049883381906073594268716177502241348715765687508589556895467899828153276846501511769932982208817761776538104142978371693668299755524387368162772356588108795854261413111645988493214830233423608049017734470815454987121074003760879294773107231478354134852997344495207894499084088683159612919838380034565016722211826955756390727924604173455459549527613385733093286089108861502273786996222943896155626889874727840057658568762954756108485013948797235585262645262784065872386867129885646158996802375118159472006883408261793976707195881775221639398244037579853676462915374206243529444270068880083081990081544247214534192946871376881239058466339428397625779666821184639212603715655205576322043942796415062174244412502025796290304222921604022967121125461817146713598989606261265731983818727806779233510633832410577582151739855585440698932646499077976658215343050414505518284492792229339684648907162249521823949708292568111942551316454189170310488376330744968743837768197507784267688784730930553940170017034157805949278408960024370919342229927119391554016480023990433357787299981992186327988544748821149462222940693698619319725286429016103082183392493308903093960835167128286342419818318801693028032141599158592486401419154140439275205099783274053184733170414238659364071282945706866056996827192501118808256030380872360775803773123170226290501236192398299160130527255088115739597088328234848207187994036005866873798386885843340353572248768392701484701404226034650103826499195987943093746092385917746306045748453351502873729500030977612127811386578187407276767978425702233830534518396451473664509608961223055105712746740497171338340047257933931708776425568654748197511051839371951531802897110075946144321589791313212367493396801704534909118736190992644672466185523815031048440801456744260698190752400469219864781301620393306088227336540823799569077848830242137682656688047310489914308163975921324302640323476047768754355010710130925269777397572997865368351257633459531795663556950042366249791342826163978785201755616130291409216165718163145594785674503075908019172018653806585464948160531450126897348801716441544927753617718845192409410007846387303741228925017687447373174431004152837666051977117801707917566319738219403090130096227991799005378958728815280753920548620502177915438599789240045068920934000693750134972018476921301784066749770152529199780408218323039205570114752372014561327169479923805630566722815976581972115787303434655343352055063442994255640258152081096497154093653784056402380800736135399456314901932579543347996082002422222394808195887677457862053144896352471214819557539845483278722880197902749332097932034831993025561996090562522855544627093873160280180469782635267292840576017726326064466662813809230955152597122242613896913754939307354112805158748676934214594329793415167816734082850052294759458263904066336699097023672147876021930883722239233692986081874609669252262309699193482259814419426814518955707974403789180599069904560235058205924622072339043749091896967706919930799347166475777316697100297844825574584339856359766788576185109198389317564050205273182819138117360424921054524355557149515219766420245390074526047547996230200984810131592294348708710924103603741155490367943589691524775463623979567580487341524656167795720838895516315745004358540085343549022552285512752343357768494605850874090141842447051470008540591779269575057057274186926394261652621447553197087812880708925296320632246538188712119570652464888282784530956426717334762532845027161161430951231159573356358677611290529417115692387870507364642800366840272840242674495780181241266552356891481042038299402109111083605211354150427779967685377015738470888121606869809301945273789164489146696955837554243298436874829272067603333593575198823143468013471917222787046223744875389991947087363893740794021524434728083659955854668312504005306677870994311121949623161426943359696899009150753460056189429776108319173932752921533342497495529751564473595731201518379460850634730338826170854595549066555510871213655004505708078593123975852594222954285073327772621811846120508277335098328210387854711139240901437497562794379202369169736327840092364103532667115011218066577827995732548381904179353760180163331857432179934690912630895669090086414387929540485960904614396628218815480890774771139517539158468126771434459380871830661456067058283182429482519269778615934252761714925414091081283136029393051400719905530715936165300710644743881034153908419411709666834884577238939505439837578173048213658497449212757845248531318730004495047939556406456675594874648475834625202283609281235842784588951082512636390102485195929777292603273822222859223157489539726266321718747517065504477435726795826245561682302798476332593542361520574972922852426673754118554170384502184805152889698969864101500714192216436210739793530724681492611576497133367499854062879373699298104464213455893982724476751554484970558933493724588630439715501316463852922775758647815602879222071469852219452138541370428492015114102781105928860847324006855568726199302199717432771430408627199350584892295088858807249316188152530990383579820605427016983752754105485363133053264200812623291063941928351047849900394000698322754467993090375952144282810289108208195138955438058867543450332746857017637664649974120087298505613366990100570037469493048339910955651844823360853544059439855181753421330614793638284899982724201786823996263140030707915786506975933701588648928012544683587753877106020981618560182755842130778336263723816116266890223301147611058430260572556209539461185525939297452250465360842841129093491335327423705725307676768085956588367844647500573075737071009562515251655935779596940524013236032019453166319157712330954720591695509930606268367790442464571305985372030607868116852835431524752202881284408881440687083439741050362873645024814755312324746185920093011081593866600280019390581076890701410938891559003284953723561331645212318994826603950487867054184795792430090227714824210026957229973483546883082762661708730963204912081580852466649140504568658493161916975184601123344022029163425413642870406784461499239019728575770857819433616375079482788169960317300804592408856491906263063527441944565814955112407940836456564326581024068914277602391472959898326691018753312238493108577921395676113767709526799901395084220907513129394202082187092237537893113359646179972349772701029265057051171718154554814756787246759353464769587454642507052517539031675432597007015818125882578483465526844952764358791102365511800578182621322053761593851781100915319091206961096955097870718180383272056730983902255448738568419954018032590339368685216232548983747303061174073829108557803848309918670838647092329404445247169029942296241041409588426203881380797343237692446783499048896867427785374083482093398389627127573426307879781264202154977922305999958726607292119427883646089829338770723387455340037891264300366098642058972101960317393609717470938504585283768752292864560529288643577372630371239912775571929176719971462336932751558478823315303876614106332140104340598298686831985130846146946426961969871800807294897187350180516379133898424109018486936141527292063740668057804537362043488801565492294592445794118080285706429568155490543154345592196008199686519591990487545706865292711227335234867746983293665674996511815923316707778963438281916730944752762760485183659350583714779456914408168783052377431491156713054337672860628527442476751951936843388670427182816823498613944004181137888286496951434586895737727817622398314462662878536484866847808471185278302959162062086061777129502491116863937072515561583325961395021009503176038124442000334534821358499743989917212105990831197074010282673799450643036116422840558263455523138915590073036128938629147993742696913074220368824827877197414726196198889881210744462279984652074220035157466703257900040835306296733394973975783002264815031587375749873660246883535730448835826316288145477134347500481907510115338829825979153381593555538140963850860918246268195401101950509134150540292239243635034632858336082081979836193904819679069928353409944590405250585741856135910618292595962840773099796395783892384792946927366402222720842901616872647482627313535497673191142907560800332747567929613694955597860510234057358249497033644118307862999197138825652142291738836978905708241128911754378028881168690519440183729748033220628122622501810463482623191815466192199994342321399127096374267595241476681255976035592349862681580078920799565717239019342165252487982519768457540446806612016682740509606433344850615179858632056694118011141068831011115122540298999742179301896829865020604553861769638268020578668272419848587919747343511623098580707954900327195774461780748863270212938260971640856345795905606327952674671805944263495635470925837470358818429542716422469139299931049094168164514679862661053714657494051618690565851816244956668075195926335973089129888163779282997497181195628236121523410835480758198912856441128916119286754685118156343317830059970474364741195123472514977308515400752721270355270364396082697319721937643515618501164356667596017580563237974733387299407204705312776886598649277198990797380975027506647348370394226572602208955975066053657546195920344831123802173109673414823680043841970862464943472796710427980180229458598605250016945826533650745680528225136760697601687945266629092863622039847615822735791819314031563464813299911293636423043024097902886090518646158142490453142612454901174465054600720785893807937006196849863077840637682986084723741600777605758341346244095166755992427558402694353040930388902279897756763146055290515917472793785341634389569558131200080252872738576288401938171706519681448795219678658294575315461149763576915524895767648382754972848345316553178344635649640131483846766421749612468300010947634747389571389602671936782119411824530855359204263302200555924456624563712735150946627262749575664273077442056709510892378671681962464029611980831716142753150955346404728676347568992256918580084625776663411332050825515899378497435027512539796777234253387363497584733355585140336294828538578416395900614718888381743234538623974512125267215585716431714911165318164732274654336140802999401185494890331232897650662829399875940005650282102311440103192516206350559724859470367333520944337903021131761035941924981390119208689645027517702664420909976839495909973937168490139440199547741131887685999170728017054834252530562884561753080684474923696149921669262082259805092571331693873347426230420261132102337414481155419237307926583825778491043671906464974913212954949260874513645486933655036248607693296979845142875952514690614418252295766538889931148875777910288200410818986719597104586177026568363765377018422143211102808573629260575667110168650057459386037798136034048593545534369735233046519338853211047029975918786644061821672668477258178845293311514645768952845108945858847357091697661617295492185606099830146777788543796928268288528327338417611932552191280498752009030569719544642763968364480116342154531362371176111076745428487104535154821687239092215255088935413709715832831728040003453539891983028400296631043522643450891677554001087991742693181607750898933129288696742306248432004288338265768068710117213406152605161795978121995416254243802808539047663083332524704406989980047873124140213331122634058703065062844393913984407394887643273815762165865538229671591174790174224858070523203575212539322519978087899288977147628298568453394337413926773306054244567599065947620285265935753121952669606907187052122442024777955248547105895300912530302774931695949151781380494442881881575643950968799884467788524630792968786062343827856032727889415195941850993279240765970367100772354678334471430258693144709029922369884033766913631987203153632977849638231234412923743246165818525361694923048792456141689102820432228186971890265225410643519700511426716113148728597138117357147248314563803686858625583666596667819649917799172454054337562557416423133842294493022649115799241176833131503842682165027531020845000668256568319196949100758270474797926747532875072461591107136833653923100168806411013983985125167656487235605215571017065412853601010752770943308701525568438652408167966539421852403389453218596568888051640990058403541897296173394102489162295834164352473641601757570838154654416152827827980746461405968155699897217740346806022251995243624568177975874808846756773376211172296568847091974281508218189424558403049654361865448773168917704645039604242353739698101113695491831111973384189578591534294743245707104244417274392156405160709344700261522067538899211500816801841044059556113783285249170758392290060168266957619530603878735749338588250918181222545353007308867402574978015134371312148597277197822915408736349501445429414878628468407612993132285138176988792074049338133074546036704677329945591645249853927362090068655321241304961879293836699173382525515455944963235815177636932411738351095618244659587839657575170500231062866805602907346722434240166818283212906379262248995630665936521305494462642849478260208112607458880885033945508884447376770239927876489665485008943829545415420460141909526480971159639550084835275537222333656969132744462727658807493541150389671932717249232038749386871159388024389730077836604191726852360014278612736593082336990770225938452020582547098512485782635673897996309477822407870671153751101298789423064246687308003327585599605779073043295392473419342379990837017439488310302485311214086600222841908932581193211133091747447524864694584922681300052488653702533952015333834459760731199632564433150536511504823464213566296617411230734334435164742850290958800518841200016247905365146297234012118470616985192985349111403927188016804511112172295193341455318661530422278663824522600225965502614131647989818468050415903929893890652017176234615707179230975836642212460912302627843410404718043521328260784619194492298445221197028617169670335830868248744061882762772873867612234421266347789965569793355728421801222236075199257071370507867268767252898647832966251238861390889933008386334169986993744483295146146993554134675721126525862983662257313058452916486755948695791052078880573073176589348825144373054024799721379034968482122251234472161011683877401621870663960199053336222877080563193619335654371493444606902054497416990444528467348271841388691976558796987592515282043696716732183314365223017595091093199633583980723090751238602633584773928987559149280390024562088297931675795834479175143562575541364367874706444625261424142108777348914563209234121781893546303598336916926671652560512025919564835075997423739676867219331759363304704342207360254926700324305567634179156964568634685993677015253405228508193853392573524069010037725059086093518485128166593194027740204642042540277610250950611947653391262865906069389866392350212331129475610464025141779560225675557530871771381483317374515995103439577142485352394499669823363349623442812441248852884324971589818998571467176868256886106249086160815685244338225226646637175231827987302970498520340863183822422770134408879518562519507827925531956246277432837264996123219424944539838169239544083839605084933436743855973765136789496270790840165498796431534846662190801089618346744926637938774152690507534478448587386537429575429341434241902535713277481619320787043720038027212022721760256271719890550841571186015883869365151493530819719697576211757918733943214956218009592831535188859170980796550453957293523562981466804908553607846541498451378464531295159553965981296559418838398973814478892708385294495883091016264940739062208935433279721684717376269446352423435139726592177583049691185286464933347373397986154543724635470128541224429829963141726096004680868912697647801152347332961980957337805708258462278698538864700116702578967909498105150042136402620814199957763601774468847386643886496830766691229110769399469890937703982410599628779012222856010647180286143681716120092796147690765154431993862823657591741781803738964573984645259262136590321981796845938826268494216722000747745026306344461537155816956829057603013366838794373232499042416961502102668399879395360779348717293481368997010307088249344814885475040942925698552618627223227900583157816637775297880002477677676206467215088098914614200087887344956236869413253817129076172823109048579483103717934935736913871116624857257612698875166894490549880107448706954971631849530072403240204341011142793887913622195546177540738427236204865638862300327851341894107219488196877427863940580024428904113172848807435848713396697585507260062557815012581181665112856733515549356959818551833774117769955581636583004418104292007430749793976792760290603038400635591018541467047132145246466095341566658244531502904158556363501476834565544701401796221408977171677775105314186297121949661807287726224025903865685842957023210655465283242382409363992107748177396245731891402177274101769467116652155912652936668091308647944274157249089345677883450846686720100293987255564985918042574276236896015240043679989563923997954081601202903226269751738182822097553683210890176543793636463958803583304737531547557622050909020951635232085750777664493567224243547804985102662039799975649503144510739667526418494735963221539606442482360443125493960180266098119426358801786975201568155970726692146281302129398320147952223356523386050091645615378655552609856752816288987328616149114539223561480779922008170596060500057982479730197333743196719381150965467785949588757781059810769576936159692487396178248639462634879227560059770650239845447461740671101754602523207031850132011735488422922122347871781748979854668831553999651534084408771673996248201136112571399935832961368163403599788584838071934589507104519929252879725965538459595089061895409736176568153691628981483662774448377446187556840763296471887635446666505163526827603461543820451459669383696184161868874268558301389954026190802204108334901744536423952424161942140212271068179322923589130798244892932472603594612247999448177677962548022856308079811625933650831497068900118269066913235529169361206569378600814789494712485957992115859557485202370167021682324999620431107824019205933927460040563259143597094462436584598705734408306253365329540045098994046470967887558261771065067430165092783863381553229940551986065141194133570539930697579655671147986557758530304561788415467040420949647086219147929620490399062037744813346811277192733076848352675203507710425826788695159573178756469323733295932114614730383711543522972976514536667134445433998454324798831425110056778716045697656964617813784632427699094849050111465111553880207406225456538412162173398264633346781583948929960051326777075098908297062403819511186459149234827294730531132850569545941277719870861791995385994948033852460816226317376986669747224317850075167307938698899344158549151335787033465877475366545325645683583960252577786435870937417429049985100569724261428373797330790056428102306960142751380406785256240470805377374741279152105803163392878363669549029148329890460683352264927029291582066736454468941789610751241728814643914969454079573889015786487929085520870145041985567449066262716075672672789782896488614015867989360881013746228086614094136000249238275227129909559907132414556659993387898729376993016770699288199463219412379555679744470070231220598260743348409925918339072165762196365338878508054305369408851581844947358571929014123070214576993125132810833529799146900120732888527065027644017484245519752524533706505715288296228282844465760949172435687546780034820934147781804871820209638837565998435659722869979046495259476884427440424556646180514448942594333601811777323480212585852250975324183621487861845035925188762014262917129294705716706733804829111400388042228056818099084378039903186798658019556295524273836480469408833480911002369937709389809053225899129922138262782844580887981354272263292590857218043451354082413177664514558848975190708283532876781393831727022157079409540435822798473055038602391273723765869238566955571183656309154298351319696041338036141288359141315192507859677698262721211913774102559366751738924535125437582541954908062244838924120910561912902486917474030847546750565734097174521861055891683139009494050174987283575064221372672246817739306456344419410393551265852253585076507393559545552213976225469527113961484164387118149733015796056145806176256213415057700545373948155849019733655302116398914999582402945102549103539668387711008120785406454837675376345600770305706940524475026612267364344981524981735620412657810339012575780335109595165891965189230553152944095391182812992948222431360677002022999599306354940436902708680783259930883117754942404294192699916346650339777636207042936461172389416336742550430684688350569667406330314891817214752959438709253579567136234836280700307780106575138364069127287148133221559352453252436982830795072912336104597301051508398841082083219597077386244437009043520709207946828819524505166514254305967787212659941210824741704172867455317812869436733884131784662186835154017546970120774692852634779153254825444213362763827564144043424272498076776498409991441911507187261551645638371613126367486482820856035761643100429779544252968253516931551715208529460318191384509199131863887786671763345251536164124721076750482367477171292663109754994547545975298168829949005198919275484794855285791851634980347900144192361867621371272089754258656547360175468715301310580170729077265967038770031677808005911875175356143872320118020670584580878702623718770486005986679279297158931673642448937373225297486716127742208749635280423342681236695530224867055206804852869940008699794380307222385552170489441084286420804804760161174964793196690025073859197178796873935263745455829168580067626554628033655044179050968912291537212123986824142975799518283189194777744077089412309083789564137536342086599304639319968261866673319932014792226174825406601296747475298802885266023577215896567308197980549327759994328601538789341943540166538224764747734012629696470249295442596625872897098769695695481500632965353406994416668096514681692509208193812780628547438507552108995957195646341081038488009278306583873924683021510104359736695157509292707513186036401547303138563614485194502755337658553902576525342165275987548476320717551907211993712645027957363991014642079832420558437336359413093350826355207651362256742052865848308754272414789039320501852335542349040972272988337473599900510291263574877947435079366564034432027816319450947382747500456766511923409424779633775476371987617316095928005090632056657291414047423009043385452907089533716961151323810764678912273131436277344363572903760417018294699736911615734855341388196273707520353282421468876651658557561073433827624401972235590738981997407264546118142616423000158661953151463017439041861676242956293261675076735417053388407517610737451011878521885924104228172957372810021194824754788391636918767386558985306994898474826853109702126499166908659814065014629583008219587843641883800194735742319219053137625486548015412312330934915047442923640132875012110337122292632632604040760107219022179126305226795212321525487812252391914461880376450673544484841022648700424964877815089721533378605180635134220892547427968363653745094706701736074751852856611618495347546688136506461466708222895012740016073717443858472473148416886264376938160851984628555331305105637789255113630839489652567186071165620035480868312910758498132087795642090349911089702957717786205596814002748089246341372519544732799724831042654869105644452547002120975673849694717030741693022904612942727765206523144816628023013926823232848278865400122309560183936677095007735911650506816778935016985938972112489524324081234435668081412478799375033331649387389799605959920792808157416926136691417017386142362256972958579570922996194952897155222909976824699566102300695331358780302721160081762260555686194778309532110256479084952641040855649588077440697181361987184582683759892165948076521272897009943613796651160392722367470616557870361078451315677480066808676066708175736953137290719949867225282926111598048707523723380827104786303424509166131631206198280166698201714596111380768465759599884636870812914792238808827327847010388530307747663555170950129097073392565135056021770959431392533054585942651178235551954370104047929201425022850703509164424166472930309244212581748968228390543706486509889526289792764754465326206537715921499160719425512855428695759390876866841891839970938580198880699233511799319077506692522234510475645151780753413931355738170052667370605530584504492751884250353083163554740012974212648973111656823968663986379457897514568377600718181458602770722057169703423088963963073250693435410165350372656668036497299001479402515062890618118938188676681838191236624992608720826654865642723012111142107895126745732096191130161825235096689451596332215878015092580471844897055039810987394556240618504217066317489952892898614303493424354336894351710712595533614856420835096320390173102738776999397639904372630815654903763958863814722686950603830211276501230508390708694589151648904637431977134699175577652755525816388542872656279891136844979697170767885191815545082656555545271380081212573047574623298696306657815513983178264553482888598984165200552479940337993468169707464006417300190856722880591251091245865311763797932183558863137855694385359928274826085987072206711895447728968505793388689854136945367131958054255432527761921960133371665772761279244727963902599410819735295786596383371138994063250111912420734900384830710738732196334047921315941516306325362989046028935590615752372707412297528098015967758141050279643542717261934808311311966117495405955030351356942547887358113694906984413877227999595972396822318480785429888589348240786630035072827841754220846689158597080591932565658317954045078670776841473134411465596448153945982598487882019804398131701455521668488410696538871336890677819975514100152039871485036100101467196138664011461745728934607345280361064040245145091769865388117480156133373374325281457044153270907062577448796633869630406674200241171076296293465663897696724143874029714957794428577456107708864628985446981272289515473836618086501830452743153389281948975178458705168143133778712772393853793864319815523583751548651817924399295506360894865556222373281005142652969899342476159951919361647551844166650813748667496021962986738840859298973744542132689578592526111094990175987611879135211429571312081430735609493071865929487056859543439169626171494509132716962053747823803143962776139912198791871704231157817716541082566457049381866337850100530019420203739214196777047190532778977175651366581794633935765837939664926112209867949988447346164150763722368924342904025065992868059904654489735669737665008076973443923388191198819732470118776221712894499559282471112660420798113650171515268224389513536609830264349159816527558927081886165879862399814277722608811768451680514150535305217939660833419478643212371376162440312540894981680379536273490328690479278181637071232535423742868060856322801799614053195580446412741327185319206696833858813964267620345044568879614027478113768210091716096378197871467835775310144671007710462212892964578902597340065761710416395379788940953920299306492112083212216615187027854526121977750723880686556547632334352443339894734301768374896764085986067695594131920426255740993678220239034796145874233983022497408952632996806741111642552254292999933198820729812966691881463832454286999685167383418223782442214363296408835793410831835580932123124194351093354214817178412929108718062677191400761718254903835841386326462673700942805958046423724956338389431875998142460208910766005863319850669938879928176834128264337663408002138211152913241894266361591576303270701010228229499406700495313671361877428761628208651830182836520094158734019314306794492956191614420417737792707287318791369539746851678885228735755720958155791447931077018169566791661169699514688090009867767264595203359931529214459590115203510128035622083503500659623609950957343545953264557728713308122549987284512330210411114951155894988505155285484983678497359132383431708281345936392730118795911578632375395373417096010537612214039222190763196403756574866477582613431924531872777661393393745039959526491678591253490816688357001051161818298367085813050521136829660445236251695207980149841070869159254301532727775490299472926429321997593346664446733005968446488656538904682869211566635299513111519788009754026766644475258912132859186387008252322316008092381408185803560958387217381033820760553889944060374959573462505529472085404409183758052185392432115784098453628004100158330569147848967055808635422689633128665048795870451610549121358922095860090842718073519595821166638119364427352954114623833839672282789189709399089597992083149561137777147523567362585617062347397971227962696340688375756351594566818739306060657843912635468154760123793828501112326125639980568646403740633816409638266241846100052348903553209938600269021675924923388288207349641645520514212991683569909552933954503690590504913801036733171725952281954757060817216214271048677979403233080354902715166152422133613470213855831500764113852423044474813275398561353464450862353840330629222799257000581331651037920039699876081477515039244228636304411524112060496623238187445730342752151183513851198201342007442589706980446520957775345575253319604852749538266848382205626815845126474825293807027099474833867487483005672821576156835678574659849745522542428014199049966127072575710980377570472932329497633024560552346111207558834287316871161731569843220695341621149513566542095957053453883098018474413188427454568574304890718817482429274997400073631564624760456132525651383687372705759055205540556505051270087871391527798715580126308758379466574270129407123583910037413645271042604742956123520607263176887172213223156482009524846877418369012486978710725795985256758585830750726813115234965353508864459932354949331928621983152639410471499532073713535971064948604906052593416122477870638894591151798666783119218056529323435018395806391583764645298935344817018188717101105356959647717024717611640201612377435400522913168826270092047966804952696940505466658139688648461351908493005708567302643936028827447505275418336604926065432795201633646710484594119697954219459605154429894521954664378999854979405274915117867400636064459869546260414889782654316248436674950362961121032128358141216243234254829814032894571689878890325567385885963010232133695070688642296260621521963499280764882669507523100028907261788905786780483160005756452415688043962567907826403316285918031529497000611029229911222609547320286911738007042683085641615547546137291053539344939332077392530925038736481139739447875406449691612258550605152519957839264458036308884534969640533604737690648666088955276868930575571169407104881471703980526757634026534114771923062042137087515341145690470085848306274483554826233388159022423538992323207351984691196801960618547150816055685851368556584045163635002180892761900072152547424163429915412668220117878815219744518024995897125051172422206007333573837367902526699191688883275451400418178563149886994883299535660062900617286064320544043044989892226393105262734387415464490476080601694299070951534500739618217675732006503114260094339544055761680317404094337794917040624239394612300309092578538585654457103104499552954663909708051610195879043073221203691238883412312301096642438932409255037598307943934952313108845836997018822297316329639751226788775339163379622690072826116645012327634789570709289141615152573239212327227778297885124699677582697257987828777973126291812017154584555258827070080112560927789654810908100503950502170909560270756800265705260197074885634503062099563149694959918071874558118771856863117658205517593365996975377940434432608292024873297196694393715050683314989219194429367655967812300127421674353650508456852795533559855977083784930450530426821993123201251195368781893312260525990817649873010770416402689986492941620579345093958067645771093264181784910818722377414945420524814937499281678082840179347254932727854549149939713657036493610836645885179643581047433742008292477754618503492409259431606077613698981674848747340348623671159361004359546598930523704923245257878386771865945314301346840576378482595172403319467985918337005497553955019896032496059666594536478798263211706569449833371898960182767766921087790683640912322839713674373648087506376669404454919642297129549563656338430833356495317944748258837417997860473401733300498577513977997139748170491087298717844651766018346406003242175953138388653444631291098722842475761868175185966460091135153612195844259196097006703601133236016256727762521464127128351230250179498487975644000396893199791220377570725093143797735880476236162350870589255146248287512747413642457274231682579482780946003858898837212898886769782034076894738996662817804384935956626132600843918442052105032732275229599787045630339804095392081432703518159551442702379526656157205496772292960418091087488392658538866237592566902496620445704780093840994366461541683918548020307253173938832377679384396799378065785273687794844042026475973913391840198340955320042932684178801123682633366740494404095059072042701109065908848055420364619613377202777310031915804288990547777344237386752164702113312348705642354608541443378642873905420599053611273029604736143697081678370148297253831479929209815979170560796928785761135105633671428326165835808990158855830566506136839663210954986503233724119661208335877759069755787629792869715339987701235429689825727239180914690992094142081906249618334866750636640625102148547061227231351129443793993937803405640836551525102510439438364302000892620771974254409770500431181136910288445961629029665118009113262721553701991517501132344692708431294161150590108344918531124549785515338327549127228311794278503984046076187296280016239648355218653383331237302162362016309372966770468208590491006686526162744861558044146911238409675952734145443366941021557595658921103146158514026912174345438929974699968611195293511858033548970804968596547756936843273489145959390786026028933826654246989209059880494112456252629891579709033825047480878463031715752303133731536881942156006940700311674088069847957347793797848312882460382035361405395671804159812597434063691816948221845261529326358647562582063534178092467517530728750679832380907138550732127573849243617738226086773525023437091841074698870477097763997711735520801924734036731301365863809440370838633910054824582263143882301854583439908011703693124920932507618025591953279141162437111595949395239406452072771779171522173688520590357985333815160167756465603126104245450741931924976994713881832137258267975134803707975635568818525322729688612627787188684228836651489986841527369835379760856689373646769818119259097530322507289745746309046551171093052962582552920813728290074321204173983811082744217537528303046477861249152608804800462190619747915873188175889106610120374142579996525787954069230302093335364178396096528744043897422310719268861340049533472346196361689689434418851595020295517064046290574754938155639782366137229830932726746512933802332019712475845353802738709918555656238654769197235953842825600639696335308122295781615975419701722234285735600485604394313949728886764527656989926111064165636874792976029520679069266671482288384957454162378708615956522283785297367603276545550567661725324216737496580215114152861318962053109629674826686759171388870661842526855331287951891329036253155662600817723763295242287361241610054068710391422654613871968993472913660459485160820930580456155805971796092700741898724003966677023792513294777577204032289869410018408491119758955253619153416836944733511696813495877346360350211740441917589981610611388060608303510362912573109811390362726072308710115004718340123082169285483029059811120296464443263943282310245767595503011501344969896820276088870997331577671469017955349651406678637852559724307971711814496432756454219319265774338213771698955737975101661478203065248739747848638522517339252407258636117805695660253907691055346986922964133472017680966026711055182788152586572261470169321855790866180937015842351536975960139237043968934067687522801083880867026023967295844854580573192735402898799090387158360101560264819709109627010415149877757572901526147461787992049366533221734948652951812610825727435452867462406019146045590300702797244265735833307726387878682857714502118758848595438314345166374528024250165002816805866108753681722063321316053420893714830957730586460434775083613598895365521593556977777257663561218803799063102250893184787042622836140006039397255758952389829829151756785666281544357627232770684310150392487538827602054294104799149954945816077673886192239784252719713455366614107925066770543414238375876145232579677180516234786654722969652833074281656160614286684499423745223118620579128618356069514283821361984765207211641355836708312562300440314160489242072870743698999985790874357387292119035933758343173760597243335698479645291948783584155371060895359624087793121207598846371337562308283709423588790838008890731528048760819283554878639514363992150759814075054649622896719292492433154675651082307922497317337658047604195759775294340466486340295676860564650665913744200307396595559340441710427403912976713648532081899457979870202683526161626800653153108596655256826069841353916673944456114337192898666566823073525772320100003552389737655144813716290452128132015752841770375532767101115247263815887521191269918092906360319752405403858037000589539764417709464415335214332359522418033195162687323644824597404292476504515117081571543294368538404725708153081670158856820749458162236035604845235044306810510695914513545627355862386158281348067511867300163655682978458557531466629091615398309350584932310712833981445270131320857864282449110730310385920627752390349919733702184817352533126596478002139332326744813230743924985824210544373638301992127871277965362475589609292278601902056587652204683717808673920944412458903841320713377217640492890301149328607691162262515206164844765820133753942639243913518209752664037729389130526037243224906101154481479767360034618392451104777612910003556412971651753347721110265409496965647255354755902023267991836259437211179482740662178845048523515537022364181872885294001843522142853242547605474029840888171907881509861993713473888909411073838831943984369283614900601691265874362005529439576092105969111063861391840169977551544390866851120540390331430508832156942872307598980205806029475203661672645221753974679110962542519121781859249829839113031106646571836967608799692344949970034449343282841142355811169969784281758503167918435737026056138623046583075799455834946644965485062027662914671590736273416147200983071164533609017786834336333106850216074514741398953905596135109575740650687409789583165406832781335692308634234358085089205139946087771031149431607437529635803710706272443445271190608938780706137637548185181731301534805747826115448981666179234299858724888996685734184684433634275763798966416975089044674074435383620691387358120518905640142251707002727906607343290947965639451400074082945094700051509285772244747141746897441472083994732867660844745029373510960724900441058434702215082172222968120006362473096984256281120719642075321573296177744323125917851864977123210296067771465328149500670992779506653423274529545898526612872770344700674177630334634882373568461903226914833046015513817775416027831944618198096770510290208954594074947166328644501794350893460039329790473192626807898890855446736256978477890365376849259943191490970727738841828277889933060272420391569363920028724572369339831857184381588828820864552728472761288416468265938643349815173812333181442638388103934062126730517955083610595356408198455940045681880287194249047217207323761080158165105269773198016725336498068870294245757642045157907584906189980253737604192185014441676543356477015589992334005864802017906034784838029886384742413844822363778001816839549226459021413970983581704618788451649007024251056696952749622708599267339212865201290826784703657925792378874613650490888804032735857272846179479315672574585569460851032486734701946281727472179651809091946653829985853868638433328555756403452481417626271460817400026007085301232356259658648286235142133359109598093132797914873584507056055615739798987397315670563603167500916657710863179431281348076599713799655874906715328444996647945485073190235618167517944023186224626367576187098487136449209953230748240743738239802522917468378384846565883579392762102497524179787182340911170490846509268803026728717738446794435349343879921162479422423178405433231926093237443783408058103901080477922998736411742258125661968267766440979934941354596454640783218170527661996487251026687669865749912543057456128591607335923466522302789778728050560051538393201232575738476936322057087772781496069854776827035025544864835344581949424067868800198277120367875656742577650649731382124947411685292636445917232285024519731233846113004314295660070717130509909372760589707123283571356409946060319578987935516550752444527303066938031356438697850916372936330252399236180231547665677950528320467506160191584493315759866203579725309761973558133829057644147790382556738310845630411456248542004323047331495973250998702331044272796360113564471741807582990635158478842769751405882102359422446427158719892937367033348864866215712820398092730530629180379248172957774496694861467149091833606442528651913150343058031600707620596042815894618970210168461958341263431911062742568610036257843543213943324905760094595181751201832566038561340306138910741938032502149012367742624625587833485100040152418976811042731851959108408151445990478384728916110580521362949823158016627725878474270765551550262172164464627277927413161369544575662559840120018298920189245703361486653488023992873198600270629977981434575173789937423931626965888309653410890436198678141057867119004753996772703999547576606714219870732448717892874579987404495266317189047550286277891554302646742088233849758843005088932036126925155080043029790119712684682750864456719613247571789500146346105963117431461525924845460234353287679848773745895914749471043407708510746397258295254215895946808746718456388605264951793931226028201734790083086552777990926746588834812286370674323485968062228799484520746323303375225285826454759874045578992703089609067383983033925715280474149802878829617764352948302491325235127617837004895911163248751277064129271144989939166601082554325312428467339801714515114402783060259826251251196536639901379183299447232509101611288069230960368308449893778832118378005361172343247120445503505617962472909400145372425696731605269699212766837886366060002078535817070962887732083853025484567789920384857454353124174866387977836283988138469614781545345569110938111856626765811569133702853229486262502166362018898869938097550096415151616587306373612658726026748277243453327919593584858699380286309624091076024597079241013490239188438964093795876003178596386866035360426122339541545439172671579752516842202885122030934963200334127424266540680788719011106529372504931077676480254642906602810906324188507072310275409160476647338621527359390333861786790742944347565208232078773208603669949879444521114701675127501799519489244212278563286046920760833892049324099755148622395832587479578451068226557972313722540688936762381786866573947076314645411795398526421698401966140993191523065405289145540045674789284050674189828490591972300168915950356286191544693353950099043082888980519588252175861423446874239112915024550258542071473366139061921362456788484845622143447863112642012215539674820543062972375218720103104185132542975493345797777073009445625050056737247185288651725923023337305216341710183502643514485673189195478105892233511010977870897923718074340126791754512429545410207838922777723179947025816149557514738985576817064412979784914200604332433255375206303319649602454880070344086024260695574757702342726560536056147963602220392826318316521573331799290139651877092383011813988088731466537778575450167289956828303453129160136284749074851635227708459274899449027821262641629811073967705207015636144417773968782323026155470675311651451490958262460824893422106364383515328464596019038433403460578810676291975248346021370787112115793406438395713810025906867221256049628595142871098417173264297817058718715023568458677485484560378353733413919068442445325364577657039856746532895859969869807551773606150883191176840400619345222133592746053208373535634487717133499056306502541417082798281538092367572026280701913315287640201425451131949761885383970700830024174581887243641782117688058659420803497194976197337065052487488498181483597398201446546917980620659389333697656730899606249458162616258556574895575293688157040755706582812082309775490716501848926574999553555119289486980604906836817521667602384586703942247127732798878248519813184153219305037347630638894379164586588498056628158670834426221171654297013483624790744456391704958017719819677315021793050564475970735258384476649755030149323473745236263977694284078063756582725369337851124733821955720911803846450588254316747973336558024315123268926419654615172337365243083675654032263845275166165557914935067912831068590499893588462040266657124156033355209995058099498650174407691101672257637689966799890407171587093840184568559622007048108375977820311065431060643412532932653776970887306106075903188896658228995981396794111345342040052015537096054432525468434473603376776584068030867632192966406017325831805709741612315101204471529695544635586678405335397942838107677233887134652999648252707244131486517023316718453488106268818713336817375351157038123015982582305774697245275738785986603197929480104026245385090610802224042188757208695039129398735474870199469983900474807229118500546435762128660859001700607812797416544626150241422918090306305971433333085521912081326931327401721599464296265299148500859390519901680875779338651672593175478732839206110245208455091741071940640664648488766851763093520787986809479853324396157717695514529376250941957966823744087283492186726625245657176301039353371495375693548389654249792572114894281825477364348701815932574283854290598196897268723114400938008360429235227879562159403716788904128047759157538807850062123265829922020403516880256710541998484271872798378516047690570255844440535325903928099164174037731775458990380965084034056059631769187419154245857989833124959700682284473709143284842157572315123736625472044106818666707310987885032133887435918057849151437540415636733630019531391047244324124745071139775067438601212044879231529421954902469449578166795176121276779349873986434504954876631980568961540061856592576320836756427833419272600353189929814495186038086382860522378338049843918671732904020925920731153076359636219672910849737010663423241393272959117051433039241090514251951347369076926422418571262511096321794856951075338040745936239251399128860898532276739056947287203228286895008575212099148772855216685950163095079567492548130954353593100166442803917744691132563279566308322667406790621650392766343959153295238814619787338209178785469294205110199106572936783947788704504858173593130983317579420571151449924853545369687331464176567111642421789837465321507979040139582950404654414902244930873677130004469992002839541779513741581838718471934724278079225390964522259762960288796700622629653289756472356182988603606692284779688209321451308506712547780606276857981439634943306025259777100962453605078295962255747206905761097399979445967229332984551509961062034570622971104012390665802696250014889997594986212969079619896627388111122243055793909134475057639770909026430809688879949472008261179019895797071140443370392447510367308060570256878120046686469267057631151412475242758484106485436154077284317116600903571271058776720252781234052924610166519756580025980776958803874586694638943353010011164557768275473688304068082027376850964203394697806154017454104124857867040398374218268608035023706563286309717190634760845669506111132710056669878747755741815733652705505481944671897465008104449903364405844812519126457919196326930832845056871658801531692109331680943800438319998708712137646310330404165345757213089479335490976761550582370508812165810877349812336545899993031692533029141926408809977310945472094888731453747500962400889550988147135449731891735287375857621970315009517236827053439790875571424473582184906607018049208810252849681906853184042407446843274470346813614289898659102116473729493383071102300248831956848130674833553098714034105927539118235416732748017797277580671791860884821169796610157532081834638147072791970939464550846502980132578491560030138874557367077174676640855454237907126665023995299446605927742068858387862240685128609764972179371800215479003441901804678992138012451294209628597385068216698853982086731007485876174172002040131511534967125256649572583575970494551856246193278906507966976224313182895422228595106142177236024696780157511985539741033288266833949394995032874525178760724485400882768885844285295152000039511715058443580863895865038637913715756830810968122684194583614831666354217845035913734950448227715816370726116512283916941132340660803538586186012681266016308665513647226472787095510117529074573763873370309682132794686110408013378027216984011969235578177523382253556349838498694551579838613405347450787736877927536681642206539770685995992331625237731316511354500136306244603211428710291067795116555850989218951726127752996984076909760907427102712000241576990495871700428575172304142097773020946378366166692595243371840423431174906199610728659970705825278811780862464484338010342868296407137773029751403562461996105867847715584300206553333390595416561592053987951945670302733948530846823354516573699300345381750071347771047301857603222130809920522716126233163364164342457254979750587507384164706528832843821756199589225772112525071149857495958811997011518968891122576301647629425259744435867983216520344673086186472102831180903518423124694757278097337177679998662586163643111998970485595102478685132769534770600283444535904016447243139698790787572187887016888825292787373531711399343773144953423714253208531171851543390034695828409558043975349753517759078876035403603131034312440938422053764083366795376924394347799154115615205968677442984370163559217583458740179703031114174237689445791464548265187928128425982841055855408390860044428831894987775586132613591828049323144663146063822361301343969362355589418696748071905458727277101804238629442423661703797921462399554395893067872066670482957996089365917844675803837466463475791375429603598519635540606168880799555424662598770603428178086567760853629460447072588806876358093606728058957117152180989433291917303142285871454968281917081657097766216990619289914281311597141289939304738709497107172612696666528763616352039417420047539040509124247390067942898438087820576388373619380528124386678054668112445454520885723726464344680521252623446943834474204533653700488381288166992039159881828714153768012543902111940501351565105283514139735879053706614782628907312447406326744757758866060062424679822476988912497503801556712030275996720539689752752172360368279752398959200949063109473362485912212678237290104792643602310364810115099264092996510845041240375207413074620565731240388589277516190471641992862810964739975454822183062940389834112739033035880392151147147124678077166314022779391614037756720750457087716970277501340532836636856709582961490385658888253665904566977088426018488496091005787211567224323587274293444019423429811843885840589145442763115682269121362300335885596135537554076829716483401568945991535028687105892044287440315273618207460229600725348968436813451629706780595483126646279260695380987253846233176864799483845294365586100647290548589631108474057284906503333786249827064557056912236293011674220776185384038963710063472907052477298284975205262603131883518031387780020523733712990305700022455556793302291857136490102252004048054914004303465422538829847475854924611997315620333838198956838726007591798512517995224699248119966198264968520550272208819628674941123068423613240313968173131860002575961379213389981561711404591607448635349783083930767910991819940070595006041058897837707188205237006380971711474275235806364506525771119379803947270867235624275159610318610204071942273836034871367564634851837588504447209414176488865593695962602447759313519991049577158574857487581626145242578790610336294431540794497999467585797390009077349619161228131957773414272234503642460124056105512632191024647918531859357944590367645126035731451912845151921579420614920113479117918311340023243709593311660957808354011105303413794361051558729431769470950484249506501927205864395432962890505319837826249441601520928357606818846489090439780292206677036730815696578535433905805629809917322866369146477746604208367526980252352478215083948205677487438879981967117511786527195986805761105667780724305696325724165557407369962860124180480664409206012123988550693536017456213282199494273357131705256417922450979629185628362987415013807750156019029753818769103680789416075839577111380627671942637675738807101748922055709654026881165566550029817773199917500537304788458466879536425757901638070234983126838400607344735277268161150389982956097642847526898788925739624625849526111068889398988761742658338949075202492918604056376623873024120642508075949437007150853835017300055715231723068111981486718347321111464079345897674911181090294886577171601158079232648333131442288555764838486605816713072673471668806280653995296930396833293469178140745488020332481199058190159702429918408749025543548310800280609454498895923657981034029302573235000031446115260259610124875296884649667388714279104285164569877020691229841833438361651447006344113359739395794756327129578201574892483866557950440072769334239679672035076268166963713270589584769624808029280107849539664536591765735255351281995574085822550607582716763009599379532899558229795929861688242246113512008850398643465321619615690339260602494445464659815184912343974703583528315742908391161941213357741128602889809594447528811136561915718589145747049096102081861502526769693280519826967551294676845565585753194333836868545476313139737644991434902815051946714827758726038311594696145731399771772237254119388876925910697619196413687947844978984920114620085966950480166653308410150179833568708332390867312485961201721963661384034564204243080958845279919930035056019461558562124775168945305175690759042750452986510739508264511825174187293984755372236284173991962647816860798163631388249532182743078336589547953292337184358582641180397864974466580021291590931588455038293531676084405005636418571746598133530634842662437988481777430607722809647314111226962797349418308207788368893967301587629479586977039843932370420303433011280674615517651161293018859275222183099812413980802737693160669397948018542882449946852107094187843958500494288581608601146527862485862392372661139714680793507511921460883367200340623236614738295103360620759271558193760915684887302312372806532364653180257065342890930402552741166377456395609086080698997404179639430675240692183756882225508414492657562179253183391305296228304685423507823089183435972740131258409862155514130616753751475242267943003664505358309012823728420714785895117159224971304154854033597723942545214124539344003642920046014490849573557718116635646574709874104930611903244741819920749222525225440953500453434902392327147421433492216482161119573642997234000773071676365116194780561444423106632842118090597780068725042692875571411586958163934896248770762975343813827925932631874618778005253555024577864805468126917337475537154974887879290327010249549282352699845556696369858055989473758872773209325644906702023448092315942198044560933343008899129645680126792697106879221897986642479275939346087812340064615841018279752489493231632623449872140333004671367627623847368623524113384383741982472098642376383499524639576708716958653234864568382541920642346530695116275028900716404902301395708133241144332062330884046911144133018824906951408265167603314633981252085660800728463537838228046605571114238039720128339345796507331829582853764076740586229045099335330223765227167212652238138186903256979647021871819159558277925070262685657276682561379385022880260110328588171703537097775785468689384775062394333456303074856708831160078334107401941960945223023230486611010258350892977797812795060700282269391843958338435097249075380748240583489709519995728849308094813407855951679727279144378006791408000110940834083563945167649326477072345468404754683035302021772016537164654659581679184832857434769634757636062815666054777677422041296114288208298082064646459686206491953701613854585236454273187483834572357329191585923658838089296457729698181815213308349172156663104307071416489073212340215139153954673288075453344683218133677728014924349088351870768054388225766482579827936070944067538122093648001606232687754391311490486540329535636889255471283880537599602867743083421384662107347789845916425999307010589500044004743823394285836598984357709110610053686785593641112606027383443203569416705078617463854972959102442151383005138562002436570156203087377015769264384103865101444842083459201731283573233330897914798797158492902145557829897253544359353138889826551726656601360045801319147410035529631609211172986056687469861958339096705634072283562411201990481718539735418749298867558534818457131674458937842382422024243564053848454052606562471269246057620045555558837320484343707546620984325527345192488340858518871604162043104970132840211617232240525732323328145379207150318375986032107861602358333640549276179233561100946788185560763035984375230758915259895884054483572851923735825942283573068272607649419599194341644759709181129612746698760869481175993600339506531920870698812896922206680564365921023218952531561919645387852035077788837848466865038639151183433189645516909693914804464441329573475706044829139282194963687822262632485713672235332609496982311991052458771791131527023727220116121420359394252789353346257325693199805343581755842338700042718371658057087724826143816899439572494260373858060984993087860044922250113317759893963802415487482514995609755804323722855276122237134931794784818136380923391526986316808448720503472599614831519774051772258598189734377262000868084291552331784928312907089476458169085086066957436356538030476635332903331460400296757584561054768328871522035127672174124494969858233161963148924389267176798292539702875289766088586612608125341282552961274747953267959612104876978374195227291246737295566130284124024910812421461841395639251539303682585847199391916696482167915522683636083097780373335452229153926382236417717300268697048126216018584438366693536384074030060127537115102724533220427814070159960008878486157347035095518101149507007133855945646918027636482947602890973798604522884547273513426012391540646469680701287284907302831789777568456615714811566708248053131176324092797163026751696750735213437198020201938712983400542116921128791644369393949298800467857783611118292439817916789313943568456553253917199795806541404170086496049555950201141136987212020359488370737982525791723073033239114562119403213920764407186518260572382646748824221549437410275977422447510687566517858643398356566149864904847416909377733811800323712302117705779441621453405664910739628640669092634486737951965935270977550458559883317910838821710002916184963099808500106555484616392473051110215391406895693442584596932487164855266595073369832561427090199592473127917381642975531875184522812155208802936030807853201177161633273031807508098469534206988262562996535906546536601161423257144671948072290265361480182525461300137813700847524744096713169104615234642575973836191177962163810750807522226365627227058068299972264020513342944540245390738941241261893005359967648122649265019579867728572318802824265216930919313382259425236509476361367501133701196667868619490566301727538675560272037440721135196259664772928536504277903271199653516642456960294075943855752864275528189391114334250742637881223522241840233198318738417493025053344359946526635768761787739069565241162369428502635326420074367688819721006250170520161380279310556826243465004346686436551674877801762051424544963809803657492355939050736304831697974491383779192056043786127778261020835811283602651065428805347928843107955170736388532801792978821403393868098339639008555368012468964292261692289481321811000905733083894059531178145774867861811822966772693754353625722307069665729269416507853483157353419613294420913352921515950147586791662032709181754305385736528505182964495884567767335707412499750167400578830382738460333332099789034194515412700026097762741442056216924765747562389675281856868022123501580789968396670677249697501403408281249055398120291290397410694208600683858600556757713978801663404198106047304728849859602495328124729966854082745033644739567832589556977927724245939503312672513686234577871813257253056240642577435966445880375294591057480801375859535916858321130547440619799605116348055863135421287608069609174113336032491347269246901491337650087096415335932053610067466513188965877490389101950493638918097525870031274781213562695528586230851858032975797769133317008745143854033970235882614068897209523699641576760629716732361628123065039392626732576596148091384100551282544368148406024307113775815713603664961385121601928723644404235723969129492742914295057389149618725267679219956581279605199953442394224270535362745159405257506813145012765140851976614780020612011345148449040416980230513852034692555942611069662073052127950247832965670222635900336881772618396066708424057146986855180305753011460982883794781238297263261991725983182782014739592848158529374714788589731819083336699885982928102056162040215808404002735988092146598802297684879898355227181750601446867458445033072642848805412718968529686290488992110770337058729496599765481909878053404651058152466954755045836211723030871363297935599723512936846916485882684331288392648481846734583239907243223160371590141977721647098336152685737079874507740113897355248332897216957150158832042435479390252489567565736268946816358454426955209762641983191771276595358073144352193198846027691734859811285236807861392045859210746385726973216371126719350364195690283364966713091445502318789079105995307918694400149719997730125382879076739254241622484159577499512045299153030161092306762851252170301927768102919635784111989695484256026684681016380298029777779410758854000287981341433279874506487741002972974021864209524376165729531076692138416120498127045233322713087549097931070505993825901001592516327648422866288746065262825566021311508544858054181531384961074672359354562688512573559422156950632521670791683340667920142165014755635901836748366336279632281621708694904520501865707896486442646988151672887789368770848236822623627535673246662209156988326115695251923166725021609274041767733740719021868216485356844717988792147587718969994156645143446231639635034702243307253353409684892554256471184025899157023402136380528358377635682364214531248440790133390724766497327240113029926264253892207947265081676286225472383590337453837100905025249878795020018246170700117962435678846759722818842526914567970408961611068603391062378009663680531542186759033914232388451810318726128863729807690685281507206700632208498944032929504057890127113491372449560059874706396004643082034193300079659571370326934466345531196273714257006117819698139525231973519307156916743652548508993480106734748609071734463349302203400730758002339710671764577024002966220058489809615956304987515194097187300321795256389797357069604254216110735080942657870073132058912356853792527121646422324575136292578408221216681635323047687560571566967416975469741769367240286006680374310488347206763330500537949188818411825451306312208833039084846840520692835623516906933905125193637526974286022110703836882514237943784289507311757243711662493611725052782454183621332841927358130830411515843330290327499345151306070471025803146623402582049432593545148292039056715799341634241744388735243915067364539802904007411381246111798531907750164117396535812267202114080930099256209249467122316779405033331141264945171875802649043550743925010717585240239034066809170724280674557193362235529237336682510500759822734687043279258391951801274664277962969488066520435225541462420458323789473325082700862799256039874384055882529202187491448020636429711958352644036733279536917553965031170690843180819141681908017313217534489852793523542719550421659465362821086612919596687665672059924998930650585301262629788553527096610705906835140058336056415580656044987624361331275415917620618120620082472113495943501568246970225062881171276608723907862523563316251170744529242591667389650324790198768965164111599294421443965326353455189464010823071320109736084929711630323251429740867568742765202105742217975776308823746958913953398392941681320754737537715694000900243455580987621695376093719127276718839758331955013390749346460006623011483049569797011700199997701342344424934212646810498686872938412050432033052500255802810516995042077423806170346049642771109116891116533413476890697594530638362442756222794681390455332097562833041484749580900422007988596247049111440049304907189657903383258188960764610599708635325814926451599217056545625807998075874112413591364729855916808196403484714875743149274138586363711895441132572359032182887319263405639879205068852677034410168609349366103464408344449323294500782534080841891603517192026984671872824562206789573734365625993812426072370362621117149390233404226225067597387134489481314150598209611718591039910937889099694613948099783826915513674821563740670357030935730868457676710423773845582030919421388042698023662598960226366168847727029639412401874815974044384296723991401376204881038297093945002105235524460216341785874188305902949287476052282685984468264295947334115527613589241507396696658258882326509014772277136150745097325543932801392825889174987344882368898115996020286190551543158592822538366997125883061252143742301677517393626401036566361332098942606360393693087075781792430608107004463681030956355943514729489818822787237779483098537608158835428557545600894387098586644868280734917594899189522674218804540161128200080846139846365368956603855377143376915609512722444003161091828958229591332812551399688502334720940123069229296388127429729832902646462875223757142365678916119197846618139405181787568602079050093396566304633170098566467405787361149899829640627595135977238971571508984973928091985631479299232834330256416332856462309537964419653285975170201398689822070354094422786099010922644622501668328881909017999032983064462100794533022542778924312584023057071862599751524370184721067960541460902753607885655239627317994377223421238099697457180137767278036670398958592040022330653085188315122467826916309508356927346883151793540444525547817741301952317159537938162031759298400057631701325395819054673851204250312391647029506627228801153946825772690375998745056061784807573606613763304919828268143338561313597403938942568156764680916397381083062518149324220689544832525419557180591189644614939886469501830880618109343365335842751322234877708207664797860971359218064114804896583485881320927457811114323401661808121894769099573050680410698938504462716899516679281333884217581414482104203130934005100136636459460263052400679484244986529454533457692229749690683165356027386842252645834162155704369316097600409598445340244575068622200979429785822133495197406832591582149269239949195892956734986495512372640306985201153801706436319864120851844272347128732575690748177087505813488583170545469251322301307311336808687996435405157448065068938741662128902314794872207004518440592887183583939534005412338908365506075654018385340012817650068360157252516630434859150202230314034064307498961379561635798800659603501045665386976937296254881694215501733342260242273539359852289945674692636201378269284646919667762858001554397168035436874687947464811422024518991405851167641365092972675585011511503631627350845081347991704468210023139484881362838455106185645827628008832050500037925301662419825599441350795138545214421893306568745344358377980586237594820809972517374134987972806778777200005996235301423414722257294650810194329282821266332668343189462730478470289008544938166003738766172716385159256329001481985671079292640752952110775769247510041561654262809404295348241785189292639153605704194699703276903032310148430477713408017879244526080868188341956693830287624881842083505108921919770701628310472346449484159052771385030377478101244326500858581580066595008715607027783706136113090163639486166587864941579941587456830448988840477031839289466998395358350947163750312660942400634282907142555790965182017068339397194722076690591653368178604812841894410113103212846669663447138824899327856884316997423340251558435152964142276374821395758388895858861282324470346100565590630889791668621883516819149662207286643759484907281071734698042434583625022918000944707602254140728057258715057051176970651918313739464020082697589299818850087644623810424998564915370739423972970298650996030794364101258495686830925431227275139363638622606432041948175238138847364047756894897859809705720227848920240414490710339574312985449130139855544835292715838429620283317540228921638546179056436538038149373928848136572871753802137154083944554638058531574577592926568846794910560869840318403631380821813814822457029105544404099072470254541549511957027837384397176300197353023162706852327279028518326666535495752768992506235209936427434584148222591760369674970285496406931128746092271149333592844018168231292152760382902247644197272134810002128298889949042664143763059091441772460349857898148664533971971895916128033346200760669596505714603635132876930910879506755621602265187668988119278560942168102681225507949897068252928832031629832838617500996913973078943975275244938658285482102026218347936041568818443066065073739897264798925707749355133894730910116919935663660692991538143367366743962225174659944131796017131062740575662235680926074270429361694746618276451216729845888809317111702338201092897200403785866530832494846625368853722366520438487204750254486615616262989534438644469538983590343163075354193813114110724400242930627986853304409627045219679379005451541947803639951202296584020595778539947703272235133356395242634399705205205237813062343109906673421413524504365938339189693529538745020544983944571987967971566311613018889036642326407023670279350986236046404429640296800514241995802599590335255238748250028422051395606031798100981427778648012981216770224699025963649333121185293689239661197416025131127524191757238333137877804912024746644075633094972242095446052736864423231792996179961596013045282659979410348968099866348183729231281870995254134993056590254179990608864238753466582847791202694862520316579303852828145710366148586243723059520743179950950927402549033421636007688825884216450343127222787715032403902104620795536346497302794373367300765345415322743424724052742590167352935960861927863530140853917362949741737346569290865365022977940052693404310618391212493599863605090900719093112058624140407409962443796716588444689745379181720714044128866844683894414520952401079775260563865282016569347934776406112964718392269130591887188509601102079870087972836241868050069636522077206073599209660469660838598776221176109181678581409100544772704732152043645755050577948792417284533889513887678005822252578677385231797726401678295804186296455630587254046043826326966596702765103438389659801685466041669899607877683354122078631581365841952647888728904248824876955750434352545848410025583383348945795361331178245548914404363318465062729347251888129489382849225546994966836082444025134458151268191835477589005722483237337539589975453068058184954077163887857059969814977699798794054263419800868452266899438935403868943246242221569028896481155639132671963901491744064323019250443753631407131921751331883086031399250612859061220006573548694044768599981120292110453438124858719481986731204655263079520490690190154072650661958840914106591123209241585425815957363263777077257699607394703224245952306154895798859948973356537428489003493467298249967991499458772354778260816326983621439290673555065283172203935449185481995422177999834285558309962594240411278723705681894796330049208180339668026583313537251368642231977033918026818964475292133031636355432024462144419611928918295523497769174077747136418306570586976089377525322725106208861210619802928390171453572401857756275686246981861593664121985753560782058625039662829988366280535799943999210310516324587007134400179268861844527398114354027491524380513071979107437669611570219896822264784546956248743013664229791596992412206324456178001153191063525387750809029510769651334491412873013857604184762234355835646327392035993228272189290665049580395222870984483848773712122809018565145212566653199416111070088644284826785894156507521277009086180561279655587157937762047092214050441390102410226307804314615232894609477385427166601285335554054570334711507928642899743504380319789107025122539210704396913793794964736439931587752942313031081024224595123606933469479976411648999549342970251775821597635196877604248270338109845138772141353036282247186351513488275436619801576984207730861668639866034715505524046267815867354191267399047143485170144722291612413420612359041881416287127729958763909247929867658339909113246755099096896205584047042551780928037042880939529754388608008981773714809329453652865162542087395826663849405830332318348038772380773509956648887828451559975884304964350360593838258024941034671531050002437932959286124784325105944795573590462491099346389892672591701654959794760348804600000924361786659391302484231729290270730154697247231196645681588004732998454237220760149457421049646706007219132704061535444513326629807122479279248339036688743526543217962288391684475148112002394149917576732647355644188890921769984529651917395594946357704758881717847166155389484953025472429734852556490504779263400660505824408199141251005029064699332790726953257196004294711133642014429255898858601127651072498751016080386500238227310848425583984195152472492179040978898223142475111439761873354743362395196323463087618283825586327208573069146022611615744332769330722780246545535585822545683442394101327955954300295049897483273540237578123076234956320317022469258675299001237509773055109151855740255952836153965329920464935825934523404841670213540539791069889411001860904520093145589179634082329760505919993037340422585063126063032289393756493950538893466804881745141234574940930980488172032750809909233937244415863035519668298506875320878767699822554847070769733788017243040817668289117337112262267910440186126124626551630269584941893000537882730641688883341285971964492813033434967742296482756466469688938056399017240485614843014722763736175055736496287713676773280945352141579647180673182551311331995183401639667875782169413441262218089907570408244573911326884085133738920525158087434889784284119846952771461609084957440825822126097147883378355036488637557552915841530169120173888010610335401862256059671230101864139178270063147312059102754313778559777499185585754457689508346878227305270919663972032164044227252895990539959674624173524915940033344718094581576201835324329432269929219136630222831049332331674240452145149985426865053823121897147220011274432744692601117083069911509508038894181671892191780435819402113586131695583774027696343857717170699831611860808687975588497109697937214759059772875583945018629195867699207630470601417673073830903071266053503369485100149614029831151089511952297467909346750185562487505215599009503588679922941618896664810227976798407785062039131384528447666132671628576738197073425574725846052542685003464071717715244649659623196627802784295280942331051829232221883995010887530677462080231009319799790064662845519354086906163611181961429708004220144825155800678935409605269502341548520003214463689493746302693380331894116770214723780860969011237599899401497913564353124415488884095891159405274625344305192721105851388096490923396739596780941405100763830187484840447369445772834178210072943807902959579733340232411367025730973568651914926914668311742306202500181110960638160915409611460456338866965506429859799753653020871366884561403232030460735561319259123753038570689753589385633505862971928714557225131737091463238172556422461706475523999406737149480060324236784464109241982837106672633760339319084496541972516091739100093571362043661304366934726589778557914408109688140964130405977577681197413762664842781573537284927149381068187835151057204747660971328918192319995642127798062681825413434289450484642962445815382133464866862058957484363442622170143703144037374880021543988493669818030682581203444363742237628247003444883040090725696420921306921396092193757531989650951634935617065158036850122939097760548877286733407848351656122789687077036558045324099589309688008638399267294499566319864258274816953443075882532509502315312219832120983638815152225372932356885046628237127228101531651925254393288882219825781631306898412977257338499387001041447106530928003522045973246116655429330967588453850614576259917761799476456354164546835364849088005382925486042729291074270955365998722663676524855705266656630299701700767059016964990472801280670765727502862352499658847728379741301677438728622005080753832046103812658699445985261746257010389396759459125908451464617123378836632613751967814608853212995329766202368311939769912548364642403751076543686566033699104462239530801858070850683311669555608527250171422933643320912154047701168945960181662742772301782593351654211186936105461689673788844293270859168853439935799577044448619302203238545446553702503928477359777390711637629787992881489408254522434310345678062005307412533494448469340460263319593321226140473820236965742875745306145604062425816181710782894290982160967937400465507394881135466792715124112271223184838559600550072365602635356190211611955561135696093080541038618301189775646442738858329814781520840313169789010430245441009988241618463553588651085447444856065053964088298346580288157605123363330803193223716229661472862582222498251799124002777096242649537389419608293920529853694174679520828514795702466991812530419449549969899006850617761729672613866675287017907560854959259393424124229167451134454432661195229986397725723434110081489599345993356558361673724903720487647642330125538693858645542524748973296510293041530754710131852295021825793323562121485575953430634685041414882752844206496185674917714354162284615219723119087800452636370637930958865178634823155061932604390950681578845530515451970554371603533065903275452361422758546660794317300774013732972984596632935330455993712458475031477617925915982250763913759405841501418313691506735737906754929240723329820382103020122946011504780399183719988853307460226504476066910224609076871282694293304618675478440796584106418625007895346152131771159058570377093360194189180466135322888650104645349361694249876432848294231016499528140070825080118640228194987881331880283809710452942065082946460260064397045917305976148455737119297497164266982961874483851357059308246946918760069726021993304666716759185436240964797146199072490420532343752845573222525754009919165017668780025953503644494410372296660366773939805141699342869113893487106532828330839583650921747984841052639758206602732046202154755722849046217282652679878438284595815212838855989432288338722342592465187457967230361758623041107955764346217100858260223166313548101973390841476148812539169882919522385703126185633263024014777641053477985524038125828344961428130114677011937647225058584661491606363222191411905667598758703308556644132071531801509829199690528338490472823122267723980299103503768436425896598970909647551750895409121088282778714998216245036416752429451761972441085946016514850283925649429727281497672021883203713963061260686488314285808055434496451896870258384259875157288393810890387582592659819172218602887038010734362632090723109583148254627494217404629175607173494939154499282181022347151832409948787819491347175065219583403889544553196044899245650063882148831413931057729947432751621355259093371403216707785245863274047365737126161298757304649713576704055871909853302377364975737291719683038119089940536986350023973295490731876160519147082189444897644451028840150237862091185023373232089097082446807346701760446466220361666357193875882541519358135882667013290509325142105802641137090120514616750041629246929391305276863416960841824691505186168803161123999233098587862190372893269019603543586478220842820128984185824947437104377061391358598452541558824662113874393086776774959169017206379373130069666895337066843809041948037105318479184434996548449896481673767391108069291372267298045575381022492487793443531466926684557745173876295448526409265627218302799109016753281431518282126576220250830707211607888657787288555263625953514943990798863950658699709090782816457206814034594091016896896552100814398753131090371729254108617656002653177107994298701261983131191506440600066288249900579910547891764839387166316087812638112699077614696183784577973739205675251457487423272674093554866609558818179409027619972885780992832618045514488622028293564374692654386744350260209684484040411589406961860541221644476290537687199522548078230685473287462031858184687566683285388252528534003590453499405445213340650229663659375212906667488059616054974077736062669607169743933663710619861700374903135390022578766216895425355813728907514189796406720138253766941854342148782646287018814208700837714901365056322533966667714499471894362673844667010526526776554453803806278091708707459201935218274674457305984461608971972660459259903418090097217765750577930172638471079680621761993832249850851151059037796608994051633365354398238030488283755483219634387230313265037964483049480199379488644273924817026409117817741775800941266084104778837380009672025835318411137791559409589637755630902532313812002885732668070791207664719883479157282159782484441440341531978102291567084831121572344122548855684235300749719494727185916242605275834309859700347404289108028087546827767566704513107825982192933613544415558953039372060006545712669213995010273053573983461813806627554089597389120614118469004864552384844600081829386588812562186277578901253146583910617337575617272749476102936582956754239112616982288304332895254709938605004814975668493543368158967886807810039352947492119359213481864657573047303203800567152115300969078463930931587219722174612781889325388706076102427149166727134075672062656902932178435475448849988484135641620606731206464282238592911675898838191538574715179134829038013660032224923896709191289195474550949503355844473270188138006897586433259525089151584611900702934826226303191850327043135424719861500665732614098366041824764396473631016192915774160173662091017792887346141390753169343083543177553977403972273835350644755419914004273427271283330136670219598769811685065307569478817184154537252086286712560404902187334467324425977143262070891755466429303925488704031666622829154331495997407006255388582857988697589081824680129071654976560219080389678144710891693868301502722870579133908534473674865838372312986903656019087393994362106004597604826771152817736341738358444299275491366651563038320855570554122513818210407195622495732590830353835284496590818784946074415173066400390128251160419593151763737563332521227504653187514116357910777391113406913778933964718678217994646461445903761083402638505249217854670916050232679841429446854413927379211693551953918999770018902339101509060981825849062546044007466078106252087524806606578791835225763399561331211837616646443009728344555731321921814165100554547180621225847165272771282746779212591673596883515405066936683770562119541088022266702764206809924689144864211876494831224540630948025621229675991144164001315822530516661279776979848244207291274784490604070005274724276745300380767422116955703883284204582369568161220557490391966989211476148143147704840889218448693807567355954547744295655691308376125183586850452589244527794471203968332894751800670367265315861143267592204507843471389454736258629029522168026946992100888167487096341332211289205487261139992809235611706652011248447067190554988473235868868129052651071445316328321512166273900754711530928528946273741849854146370294655202749729749849645987743035316065621969242455247482613460799768008282959462924722980914415586931951040697675506462195542585023715484762593712132331060424631008675949211239611762293553994487329591230984500332167900409050818681805207739922217987918202330407233383475760908884997679577376199654555208799282755515077768024874066383836341746096029144617204086684728809705032844817032759121546559877046999753424638826864590829487378448166378305908315968788294293291055231655440827712209909454838686512217835338959159172520009940857363643085794263718200417263083315993294919896196371465870192408415169587331787864347797597652225012766654103391258597152246620550861703576972074973148715533946462881623552314259514755261910567501942758216839090758978760184310655220458322033750901856712700285830639602236199804840276884187087817869853838781238586953718054769682162180767475058180755394690023651939078745842142356788282676948399833338050214067743324192815874913319972322034033852451663726529546304741586823378700708812855548270065394077776533828575677896698560702171814874633109079482054092106327945722240689883849999368532964493321630490986223417171178161911721891958625058628072095451067966562732487137247174827133063202190620356017772597691088076085951467554308451487114967819736235188138165965898241039291686517173826930124288791740612322769261491375085106594881134694278975713695654465043844064267486802024583896462392871834945177694209419172794822574482047313175492834216068253631625840158056285039590476200464986304802555239544064070370159688784508560316543100781430799990790571735902157821205942461856299125135627657536623817069949190783241228176243863852604820334575756198036968437592325209588731427691480151092423430020729561412091900253466401299650491765340196918034386481032337569511965649042469256493507230409179780257708748265385210627446655922870619057856581447362561121677203733136006985471424249633965394537499376946428090057216853442874381894712325479426651680725838127400878278366536128977641469459981241911156256920531231526653810400129979075454151256441501874097921732281971281184777901826946685342056528734275252891388378526519135363731005380483581014835511108282209657727901932815073979774612382619706724458528081379889249130970491904433679589336741744359509156845090057451668164036215748740786485832478924529905604247333948883528556581586607002984612738426870772162566380418554050673448138535525118897707278305237454085818844292012162671475413657012610238018959130500910376212484411911984975590142479159457113482956390920351365688643651799638695968998359368167306029825286649766936702189759365557649641076650837655129024185610987873248666984079321664125226312515994850020095147621366757973153505334823042785941581089801321005835050065489173395844891650562401300959434637991619332134833466737257487744986716643758941241587581705648408719797605697941712119723138411047684897766780682524284726676870162728888031291503111764363810365104627747346904222702145003735405886351486502633535334703746258291601521374170089927682290722602280871784146268291572564405141804734586443208852632303766725414838232160462701161059407398866964949977768935700016671376845761986709610259105332093383894477426689468143387833038687567264782643097061274367620243902195821348594691623879779965538323932977716788741056151738951692051845867122585705624817928798913933898346775062797978095024276501628784738313273415362151153882862785538190775667324754797063868629067873027711361707559465880706962770562767172404218627932077065412802817605196451546237632421335644585203527522897447981039257453033197469282094998289864885964037590527333797106749629228885179986934050706599245235612911813093054175628057034497814166429776653334778676552861556909567656908535045662093702367304144881426459790140260727151837977565836729312402951477392786975374700060194401416299780382196714614605353808791251645583198335923678250352415590333582107094672511111444877323783136138449982568065349789698253783291005566089509102555637796426004430696986700105591558552453290792677652141830630737033047983932485229018755625710559680841133804333860792386818331674763285449192217986031132759548154167457858159914818808435376807839035409998813917298328988435315460085727834480713368232275736638669444194978063644721289583234434033454228954265356327541780142620801962731454099674020065448100488894108997786992617493776693490886122651507129773607719616493305320656593385896473253963608870776499446939207418732602503227194796333546478169381447194548975031578965503017837717275936369088146424709393720278949493786886553077606200739553794043648871694541573715318636216594847966407859896527789847112728632034252214770845221556824787077345568771125639231030059286914518140292482110788651558629191427869961123755608957896765682614128931764326445521972338453661609023888701035539326445746147495507552629757791177538637788455510292358699755462140912995090022422286260029122174279922126406750210157253182898738568199756554232252455183792939830532778569805707339918258837658031010841456458693971509993218087910106233864012766925374547616618880194234555512992715541404140147619605437514695586238094805310175318049785374362857154915621246971301744124669459933929522537044332468340161660574096577756696402438159368735383653959114163550273719708878366539049430003591831121656723462864279799712374822082460725626930265656710973375538152550882260905551455983695966509605682658657774180612004386556759722320904236819631186357664865244381989392813314944430693223924912010180026168675321962067102317659639429633333934502889438059380977590209190087861157314858461008690120108824332898927115004439150124884385444394223341321821336310412663785004035493834557974998998885524235834730007439427354482946702503894294565908884268445533750381613641523700096492262291701079943017198858494286975744790548161017662659096466024040508122722495910375298117687714824596531941661096011812458533756505287907162241478042559664696162542972508229385127633196166843952964002003240893283981828359349107258628089343629261975168512788676730533913763264065039247416437622986439895634315409905432583008092417756144341317346774107484770576213302867067147841698570536291766037462179901656665235418500368931682150134262254969096396845631309275668069854062424828007124927367567563011848465290045984068542268321584470256086129448861908062428060263174533473294778615339408073967795915092367832288222145968881041442309552732373470466189143484228450503017022407947184224956554624791768013793132720766546422885518981091356883080038389217326131236096475360916439481881643634059133486927147137665236975979345816497831781096396110034447682701717298533152528523035238465937595644878809932198268034038476173800712956213661633027598994801193932527632035281604340966346994337729161049245469302758856082913173608001765216568815545120814865615707932637194279581540869922689671965882312898758949909337715760064431640266508625430777590651007251144177147471780771376577331711631544095839530386979686458117876646857072094200814518469299121301114634620704252072881203435933532447340169685684371690352926234044162162560004376909064280917727276586975623402081103148344469716543105992915780678695083670351921793134437374161664365038431180323298328353301259615876565707305324542338033448903973973521262742099858552127605868052775007971787957274412568089435861494958358288273706551389907442332797435354005087779159399577515695328127396417020955427640183589385539921921875456935203832714831358731088150587553967052409917271141745360091240146212935510042773630047283679104090132477383183396337175499321523691307143652497028700797247113923844664695348974842958072419858464590781303825386522534042874405207068349152704061146032391197530054761990672251597662575738684145053100580610720776899511954111305328373432107269193043802243678938812677463234883273211575506115565505330231719571496696699435936639263694774100776532015187484198261908882396454175026956264722149529192651633212389427795663632008968384691295492720098141313445630267238333235099384433788640555601311923317084767345250550276529212090817928809141266803317387570225226450027016634254370097452463670835056020653936790306059617201581527334460714484156998329951294022410067417312918197921258499905248113684620571670316536093834784423617903155512481326772704538445105572899709188486049559883369892883003525208105284743619192584796699074522039701234142458474007094844584894536458098228924439728048309987950863519988131568862967363915606738548415859230344987230745582939198771867944677932523374097259732963665654672675976649459727311843820483395540711596085737523884427667181073113220482987453080336729588031118479902291740195014885740216371280144788217738770734577204192260988629405744181382775636974323624176391035982613894467121027761111050972921932734914690569749261795406568489237201803303867194844748514246300130711814926680671850799551546871408715665625752385188463905952635703492914691930132187135167326407451918710031181031692368136215826173742933049573848415616724127717937182737468828815884920588093085056660920149719372209724936290971541522460823705114421001152481729377012029371653635111420628535264959619047916331563193073204852712754587600113049106693790767705025455430506657812305678331464789610674974830603750161288672671502440220286726293857608611522794447405070348481370403607220809361306948941664574536254998272066732346548446809958306343978985081002403333686081516725561475694799166917477836760239121921983359538276695261920638169882088550897900040447204198692374597331547324900261777012496096471272684451780496790484459126628360219982714281395593124872214137742023540498289069016826075750677878342792347413926003789224823184331174391001529594510926164486278923385251736831319160705095928917279445956699419851487617699678705210566410962756498490932845355417491943753852123900240430278045714922945549164498643658086119723646527382976658162656430992264455764230810777102587793419579155399916074955150248100973878942802538729937222612073536521039388681565386710095353598959863592917715669663321039155042696266293723636918268766363551175506886162107191081567407839619520740789869325569176369402876423538570840500860102983309226242834763421330753631220615603735998430170478471799577886472822242108632159755732768728757503734511867121036679685636894763742804277504418702536390312623770054245493755931894228533392339664487131048181331662609303650917740868362531166941319552421063811438652418439710204220895134814757845560101365125080236027056371139457812540195158822884885056286061719233190227076511948322702636535447742920606404883473197474261292355807922585719213502598743171072791358336141674862499086228748220773710563824302445100311604911801137912753775347259886070253017853664841156608992852452100429602408353636709458016992344227371890617437483820469073958981000009924279639335703948454683191273757777342227410912473595059247566590139196366771223544288330217165968760568190162889740547676630253657960068373666145332873825012806801090272806415603249749233265028185618638146996396003400665246448444078760655790464548418294556530336133725547666719420767886910697472223412912961764839263062203500591433087847170872872222152689354075458980426091560473565241078600229224945915842310355848566297382754305861950908336237675540000709181090754687664385475632656951097757878354780138018487520848637676612952038511252836256954248016198344195155485762881631093523414626908513591826359508272660304389651242799073317378381547180816294916537049273791093181943953556926258647067856850752256276368835143149085745179703688644423271694056156341934228516210629658330576723865676214102855769401083237064485541656813779001929244714682541460196697450401396861969141617830126453169072954988737873302543216151069729678336335059651774709866614250585238673132352210507976172178513497493685138305518544336266445666410226493472747401898875603524085799595095876449826682768097530190283127643610065183543929828176902985043341909260561552333791543190230976986692401520896846348877234726134171253252230425613909387275840929485514270601370234207262260294361472920586027678674677552475628688304064092322455993431913626429563392747672041436802576417408588674869688745426760429761274110516045520479948714096285657224504585745546422975263639330826209146533312521811678297149533550747859851002532937304683604381337449675894671251322897643891775333451247469054113596040508804183346273338269580966645249326924464899742184657945831912300569301313205341617896573499852609371640970288300552330329762573267013871563049293330929015405343908649912868978291465143539493298745418680977077710984537463784730671072592081928379277026571150684564847685764875929864374645690926278006523358558141050750269295693033669659932683210635373217026634609356704587014715924290448031494338636902917605601673878406179217286171807811043990087669303017873042037681275343306571741360349471908207703725564599418613117526150466023780559199925347194618945947537180459984395273339150466726310929738596325287785793928212588014107605416450412044375587887138517048865911703786264422014267146976453063795068462447497706174340643811151361806650064243685991763775245232528772906713996633480841099700533988679843654042915012305748609301280225433104220582120264032539081614984088211381903225197847098451473024021710151269878786023317388733720088572000524794807160215555558270073050748527284398191772867800277407170310276280734431069382611418090430883839847909417083051486316445870298524700051975688118978824108899080555104515146389162367283745263126765898875207957762481356929702797822627227248404870004003689201367028836116130251612121379410659157684097185681569494023812980811025298673371450229598800472397231819703445122539936770696939974169994045443962450336778172006094408195687479766692854621930564938626248479640630963263211288257440153950242784938995358028903376125275407745190737226150175506169383726396676789287009993735906726242124886373778198245597158677114430104319258023872925014793027619880357353309732778093781398512933106389994712037096193512592115527269451381457764734555376286340675396080074134385902084131816835462544546943678735306026232369067943010650528616836218850494863783893977986867476380155843525722374720263215187262709637786016453687556137403570927607842284945934491036371403824321440012479072706625748998472595049496041834745428523418073088413047580318391289822050341319845879416879765387396224684871104564029066147928717781449484422383748688198798046684856230044672290468283873976186355576710303237914817909603847281441852036061958760244984444927152985684609450673209018946467083188129508621125332999417621188815866600407136905758824248211684218396779244470310362468901356861797809276945918961290109703801707504066902183290393886148740186909297809785457887932179024630380855265646701128861146874033361560515216295113684072965670612820572512373530302911722623372568269628394879617948908626782673339776901205760791549897777993128297247473903677593368960432129370923576992727038203292194919276013376705057675602080214243866150272615477060683099904056273170865602370918515915891080551748670441036643165534335657909424412222566950475465637663282000999687729341606469495745887063072785986397166653483803164278330914945254928798481344918371307615159678901008050120210024922583956262034418066341590916176523763624584125931568727049134303507511911956342509991798558331310085231734520322620527451305638865977577812978501407262986291953155538692944040206213727180966889467797330823542257487931185280280515414659244679050694064529042913598153443950955528032268130166121433353929690107426470427669121879093456490328295594909241193631317658313733918529688086737772358915130843769412606413584735300870240132061813658485138696789744353043853732238364005901387388302587225786213497052677189726251781078861947625453723702083175576201914043346780280583735194419888610951579017460052780706575891247493963812026570812728468053344683093602970926415100049842673947706220261586566540147555571970916780932526887530377451343089296947212015738521965903380011623502145378595934213951281269423779860638649117752045289033031406662650435459272086852323505275905449228293093840453273668208154477110325027596187028727162830108493136835552097506949019214031531202323323321454279110362176889775342242024360086694886509448882656264743329234608796998752354762617485402309979693215078525729431736197310813118745215847038189413725431464261964388030305921510534959098062585125073302152564052487998030151220862192661658052356450087581899446446473553569771976671993142864471005811030393531656084766643630065445922537275609118088096256785075902722825401601763234555289298603961359614153190080563219307112131383718345058618491486202660791495021700227444898416207854791322293014352672348997020154060058698480146946140435846846586797699124021919796388674925208588059644156268985868038604667900746731756016127987807684197776805126463326131719831561128901746190535710901862252689546385024563862050573497498350950068801148605777989136001489859145497116951785490392759834052696032797378493699197889307581460905238236605170959316636139584617538214834197435423013878374206348966368055495399114252239978957409475060813924761995593112368427093143364509113653372296875539418876220253826572799432506659863942264492404265118810797419587113023737079371014642790224587870515516409791881263123972654504451105468138667896696347262967820466766536210036036458707537540451681627241894969764217822710549304067234773566083765659336240312896793072106843374276468669051086958911195679942471594908506179206882282420629762242175735736930396229157366055990492501862399575662753381162882219950961607263460688239171440618627496380524055934029832447783168501247008736022243682692111258228207106884004240852024024346798735061005537693698339580367484458420994158979530779020983240548647771776838973767682649317470671930667296978760642713016762317497812882208680852951337998943866911006785837047303177079060730350149087118272086142953466034282349208497140894105969705882118286179744512310824208910086925535680810384520094072919454148058272495739836163688190720769442272395684811038089689976159617043884795000129326653913581851241278903697046921739624443928916485914862066630640370793224939472950490839286716109664214598800910459450169184933678903526594838604246715048832499570174440658855877326286375717426982363181461804046696863366959939071812777182756674106258110282559750245428026937221653068168964303570416501756616777385651937380431797420106449526625705432152659610647333635064916076149836363107429863624460389330859457145691036962026344684401641488232160353508489513035549257962668163071768994480287990466927991578863087542446227108219969781348284038797440981586232964405940490504780301608777848317778982688327960786809487009475151702291618287232084486802887742733001169284132064999401992222203496024380758103451520953969453584317014375108831692203951687196665524105437795983753000313336591503115551458488378996239570652562007612362392393576772236169087346542982304877721635163808446059453748895013778795424737610665665986185430088171799948613187498261870666527158778911408277764290916349619522056824559531794812209294456741778937122073048925933491065311356408755175932162460950259019538277694644185025564086555412553441214157001292713769004293274127482737810180370803147023405956239706423525490478639140970753502973652237548285596708809129128208788292850360276591992618795955483478141093706725463869207716643915791325426886878877099757234409576406715507947297397775528817231372453844450624035780400439892275656922224530759197874263425053200047523306294716213033437849865150224655298501215200358589100991695219846317709894322051846157323479764158746938507702138120570337865301264739478584687360264847791414011422049494830785357941810324959475255415792709511740678849262099905585542516621669831260518040291335808692966494831799410632075930271981722181010593884979478176315250437968200463056315377875225540496882053949608146183316637787069153814306197619207200799159191965838709620942199973857105354752144018100716173464727832408961882595308732094801527674521180785429501333589262072736740902695343002584379814144443700198317499873860488642419202215933422647876766289657054085877242570178115565229503285376579459101540137940950323924205503529288787633054014655265353298497396476942005351791674449376389066465337644969118632934147875407173703526529849952456767635385415404472785865294611912037720905748890355434217251952819552323310079619590186040308098736088128643834310876944485687203358925707568853030486675035504728520400633558261980663831150236733698841407325699990497138786144971685265519029702912427905125595558556691625352731218916338741875558033932038349878553780349725027202466192487164497923199922497241549176486004329144143352927742359225548571561419980390268016064140096251630716249794590756711439957647390106260917325607676244887470707675666959508543361303646645053809237203035535995026184514391737819356019806010724800642722572443949941769721835166869797915336945388035918996360453718683549556063078828326178514786583758044306145772238132007419825769711046175701048674905938461496705232546553749223488345547516614884433042270552694169777736034787667396304962038180074918749028398879806707136634857358610746168125680811910155738496261141792570218231095654675230173003881203576299104494135739631829734893718035779635469449438996212011733590939564683332255840301272561836808513164264767548675239105854322850561845840368686508501727687100553144456315914663004468725054266122960891271647929265658258382504156869520334346168281430345501527155809689057145472584796206942751440504469133687890312392107991094626035340981551161012982450818621520583304377221921011908240406579248245055383161250007733240934248084645195543970120101149384624539668545507944468510611482769464447521810074802059139613445852151859712455044840200747735803027375147432719180320365304015073113153545836068122576447149105842988354820425734966469540834372068709083107796153142284860199628347846874063365663249659664403981653945028540037845238708811705549154397221611073703877354329352044742082772746137442445611574124671287182721150866614441956810590039612726928058714435203580178043200009628338263833952390286504308509196712122556288057723957066325345964548965393468074932887765439662674356151654536397619145442767368338356115752454078150650362548921357802965189258924752684166980683912943273005394583591370556990199037213228557158349751895051148835797895886323827380446698386185901877402599180848235048839833699417064317351960156551287468692506342383240749901871123518547187846482148639451649610424782214866633428354842820151774517536961136925406065996272100387738302787586410558153579366619177922414124806683065028630532142243358420009056115825498397529384413516861377546156340556156745733352325770857499102927752384838188840229222096719404912191867996312278437631291741598265567553884592956056019876781350842919287931552144240101876188370658602771892359357605929545863096878953551275011129851461586818725231680084211265819572041390709673201136186194307492583522191867021037351303986471397876338444117836709371864253923337103377581056339266756603479189165069875027579509474517763582374898027156156857969467390637455907568021930309812089258697760410542566389396784109145950346782952849091056873275840096618338179937361716947097611466968740645559836371998631879133136324491394193526997982863454743333744465565381768216491824768190231897048827382092974289788344339365721074139922291742679075614046175560583697691212827825689876862850766415122027272819200590291535194110797588592153917737124039229291885388754436173166266206278488813059962701939184433251370708317797993652725569105276890562117209055754802622112175210071730709883039515464745664152778158436798833370052205814475819124751161234013500269360963654760626280647603256464882194707135403949044092614328224224968710972834588998861271139216855827159180377436514348762297393163685258011589338399734035793613178693738272441323348204026021331549657660951797543492860273281824826930118160768288523287567586643436065110646776680839124949295162343602208058485806504280971835771502958261177078403193244650705006069500674231844772049412987138666881361627315621239018525664584639558756055077356407565248351897330687071710307058127004025398205246509279423225028485306031051310301992237853917214514993709390925434712675195941609551462640532519956669844153927746900862993677082850641159752639207037888692854677900335159066606854165835436419920521164592256036786498464821216205888529632215597449718360675726136673900910839843452897419871828162525387041099593609095886314951910843781994670459281850390069079504854749735444430363141098412523308649459664204474395276601047993864828008288032882356893330131136751329693251749881082519049121126187119452390411970598452003387986890238445485952527130105960489788159956705513324333473039585744244019114311184400251630043709996440287531776955960009040917735602957747335288926902258654206833033300709018182876077860155052318085912573362595519580176862593665929793695317829494672622095106076707194205325159109383065244053818146571534922023170090162157797825436503210480591595375373517642982348764634279162016321535459414761323336835296259845753001848505421558407917123602150103833916143854321475384595172421896754892204124872161492272525869876429001724249192896948417560444820469465708805718905947394301974830538947665713672722029768119845979316608188164318660454819104027192161367285107989247860853014941409128044659803039045399729994301145774896018916621351404304535741219653304122749960465748506601882150090086589133309994956391723063076392832166067514175227976472178044849560347192435542896240292155705531078829783137741455399955808550818374342674359106637581147363069473311457995555672012425172034482594832098427487513500789217949091130019799384298130567668598238134062467832500819750821656965764290659602143126991106112781146208545389844766076950760404757392143078633030275581303255312569543027017948483722250863709943869892836892328931659094136811209828259725075762919294490828973925330886023874921721522826417130689205333106244586672246872934165099242798900567416753030955793610651571874768979725629595844364833596373636537333141051878069684790541726429499581395291667963512815010538444136998791642067535370825878273471143895713581079489009320395829482208996766243120222543450714141871360962855277918957831805882203780840474583772697349471742798100306951359419936682435211157788393249847546359374511541159425502534681489076049926108867677020881919350346024365856797103542860373319341892473507522496517823499035382000547796348287219675761867774775077076359125528960104333719082175106027705194069536013178567504285711804950833344392126573837162473258847105506579695466795688793725734879582282891952818747995656191828071729061989167410069113601456576669808600340401442601126103587024852439064697179025695452338066881584002172282065413375965602622536960861187172029162579766212353308650814045379100303467161103126218241095302324870626819549903657752139562376177145395663822316277241216750778671612320158250370477410172206264819270246117537684259017328832524343738027292274603956066319758376712636608223142845966475291180033065592851368028257459884661026330993670841528567546507287386508679967535348543508731448991734966192636492927575127812590266843128283989448306071949910696636196482864443575465752708718622854990925316442082979650997414086046209084628813662752736180940934443038593391344585444225179610401593367878853175258011165326719428521383613279598387907123776387717045884218225209472237401777415924919848827279311082105057562257440707224382551891453548409628801733476435009586212272559895237595428170969964453676490028993324262848481687677634602892430971917309694734104359210007164722996631078397183212629953586662576816555799203970433583219048143010981423698987332908185444561216335558338558796604586581405118279930386066233777707248645196733531957536936576918011653279102642971406943410774746556407635300499892839265914150765943257825409114962264212233683027538157304375213390030235152916203944561454333015253233816844118956277791274032668384833547516409931890834074298288390141128203986876900449255963082847644023706883025573590218856261573732291638289693436311520744279617974357674986717593384673978617101474029986680333276484029456707883578608066293883889857526543339290937821931472591905005731698782584349023971751847183267317549266928619246217836179912887089687219122735821724663120355119526975085522188611430246589854107931736964806175978627213309828711293134573697345524041200594788639708986680424185728778459039000909233450301322032858070035141608113305415367623568132017155441383401257575121093652188588537824067442651468295878364862498451466961151598952604323128743331023761678081198316810826986583501411929694090185007022625713418357634168671958920877880718752653120817374336870950539998920365364767574494319738251392680463076895208450387225369792563882440090513339143277053995603818768635344716003770822537993373572881021428880418417009349743548754417674516453608315038091661002725267197636209464281528215469559955025032861337715116318090486789263138162181476567831327316909253240139443852924119312662000720369281061935369942241651442462695676417407007010268009314528911544246637623640968559457671534735716916592704193779438832421654699359953822802620366977627517909840024426620234310915559904862453596668199879197809020173756940499583027063017259370839374586135279524928136163920922452307133201510863318342771592214563700184015629047157847430577612468012325252857535459031912336194082990622469557182861679191916915624234530067585971715922086359709939500759499870783436139722087743116742183117213831153613458017154188788290044872997501015576190187540863434502866352854053401083638897262484397473454625582357587136682262230850032049892465805528253923680423737411331530835883685002859439041717069950633641349153442041305546453943295945370322732854288105769461393378968744356121729051006588848636921512773782319029812415930817468587678155547817851445161672058209852487689344282673534248977769653561093056248740176688639509240352500016373960093873130686343525015031480484234772750514839249620251938812696350633318642807181776819394252305932788254216706657353666202694846137450589469357487896735200714459794173187650182486943481215097361686456969472825209118968643443905903124989747369303006030333583690660651608269605067188023722225954744331951965131513846830211383358657724881521632447642683045089281438946231736536044532826450348891940419905649718388675518836806068223181471262253915107859481902080090942517459386915273028891906126043135116642729142725111067328539107887835926488787375895375232834506066361715589016492503212737571772448372580154394339522462717605606844651458519361151747435268285018407606788719687984862098739127595725870067783384284094547590880115019505986224645767664927239930911752104879995740411542725298235889179890231005416275092767481671055416192327902010848193352426717808875324910380158909493319485944810798837122734538605219973611781627581118179863384673939390407565270127107937769332108153118322439081451366712027680883931886596071494812993818852950670600557922620832620100089611487660649909408164091655529431592505845345285983832077777386005776268513168572853621923698499650695331019598150242781329241955080335432799119504615517326586224486495033074747839246228719517744146693153797117223209094798021652599894385804527675706330829757828092007231217417463812515300519056073263605257186141298115102382195549064152048890484920348548657817296351157011299241827930221018296899323306354199981560951976209259582997956787638543556677590847854873937047580315522329885434363648430634769875223855664787073817219898577808357449394641063670200105003671454753792537121598298949010213455178943251464093659770701908561634526590598635482690610818132628200574362259958181396140643968341484106953765100959407643654709501604752880355973738525498284810293935981402794914792047381790997126868971206083406604806396281247398444896951190795527060952210771585598716875517793775829371346831344965678273720581762054378518381312588777364188640623084879230373938753393776797883424415826866717383581064397165004214204191240785818555798476155198135993287261120311677615543694424030042900097692438893184458315093534341675700821903526335901484688931741675004041987771069049783125347122079333938932263532108630300128371556684998084917127066712724931863970790256712466338191762687552916208633300947978426120722699921514907980673607463934283942468897295145447867455653546805924164821002019631520226108161897262587193234551292383640506280840128365164727093351107554182922433054581748459280551141680958166328437372483773915859009765840640695154829570684578127608514031544939761949842645967625491731612146066043519632918288761676891729195076059511979926310340884588124444155224506969208133888227586159904674749107359082219411133256855390538843090617296254398295632227903427217289412388586339841485924061275363859674019851875801603720604742311137095576622630090661090821479392817478606406758869082046077003737940371222675155285080714464016432327846169629697376339564861206512601017669027608607286183321867620286449058518500199487026774133178194703760630723859557905137690100748390236014114339713941144200383213255288457373194294336086177819690533232206243261504506069540805500435368438501938934312847185408115909178729615459399264628686455047960919145667187508746317308948936447179362336934672902986655931391817821339459077632776849185194801732082044586531699984658353444872280266848200690811929818407012667666821828760615511213588234667143945145261114038973495863661353740715291467576402327251195368295281666306271989974141525112915791862088085158376883497590850400899973793429534687777786417568223763070729940496899305222992590405376709648589263761265242315997534215744539856332316246408793365796696381218267269831552576019410451817437898410475659818283840665639861914301765088615176065893909295746706557401160499335871831037468848900460660595363040078428401506059514152140543176164866055739940385419443318980098294258632717293369534056251201745687503562373849271658306221645733525674858880838918947598125987419704051728640200499191335934964347181414742831474249660354228748531779655716494770547439050368130841958955019355881834963871147105694312787455842167842830053122232732632198449139963445784888055843224672762875861605165038366118382550437392664385810463087253045798341331693058800480019384530626593652746613196577298794858788226223399701836169743602929444394469988658599267045653665650411136816302556615634992957485533209633976012428479851241463219798037658175592943264243741078990622482329124555304838621801969304767114228333327618341298087098791873143888227133217390276537537903215358983330534106951840107878716358877694158351283828283685534184729092271645204860775098291931874300136043405329864333037208652908547673266627364142078699177236433329702998589979124934165652377201938433668138151266083511860152056295175199716107638636012903721156664314740598124458093301583608341986350704133535436997943496927013816607238152726845672633049038171799180547191556759663860730302861271752665769329218135011723782603410926563339058014212324680761928926295599683674153534543734830925825608819983110845294927009176833494102656936584352260770995806661102222443073299708124018738160234590893910244419917104587768688713145065303530722528181906171084132992096034665715624891095696519275956852516224586449648144341109362519789116218789356009542587912136184034514554040182320347620014963401766845327217114531782716278221358345281117440611945555712662721816106608429819224820012512771591153523387476944625338286963689067918364947209832677057205855680097533035352216046865791993655614479977452390050451744710134697023956511686441804765527329978218367639211287606447819503735352512286261689163885736169963921323758266590415663453024123679110982536784718477525562057966068055266017622102061489991790908453782704411628426377909976720740375480975871803152363785302153835929118562774393170406733714711828765995279342653961482318403219230406485704200111515930470603994838555301925402611396183862085179533019980580516419521865604955878061608627979808171422847203545117899177123072590379627611683105508097683489765561688850599650258282075348085367786437344386514961910059882076616154135047337818789962761491581025826770770427325063341449773308858178474345021439893897496326606096039862042014653089206919619544088017232597262046006759906902918603926828634355322848940929559411577980867335295923706311545225545388463006484595793211397637219335283111110640040612702218625110470503651957689365444915288524931943992370087479521564830800308726721116104191910394811668395700870552838481788229905573213586779578213792466050764061837475092767744857208884786003731887699021026423627492932483884890763642968677300065063615398730151920847634870705578306900409207441699882210247805828104999240262117696793740909034620697630562154892217939808241261389716204783480089538523472777225633745623821925195215632609129322823808097405628024117214700494000397743938857070430259967142075289006368804798595913646652114264756581344837113932698333682497780787836951002871523129528853255703208266101273841257984616267073713004895812663043126406526672341177650883014094545029514188874775038066521415713834172867413150161156005235029906078867744076565769751446858332544940692406910961780190516485188514313900156637884127569809303060605657318938964995515962463827621635723459369479662113718659166051132884337125552908496144143267145915642436831692362006795169290795158557698147085349177931202655573845057518332980161455355295339675845645642173640473598478342984872569015891249840196536527965506300432467457607003791982269531039416573069679286078817921710683183657993377988961777963627345988092231050425455478277952841418484218781782389867527774517612571358269585865174152597270911938534363583991528512303631688858276024755214223203908588620551584765700131215268508158270103465713289657131358602677078683025439462333262148400803089912894709776049752493975511577533876683095207487394937346150690083801063710275813369934276276431499179914572614873187227915654723534630629832051073743836840749450840829482139551675510340692799224042363362684522184062028630301446573892058114747336798477222555382900125671707749170097186198293761730498965611511781143411679247066563240169747417812742239244259399203754090145145334092788171197321703661224736658617454811323717231362401806345797353899657898199194608657304217177279745985835583578671679522938749747975433418113580478909292965067185507129574289852732873144896934756235198380624217849895354452154989781861257850642099538526482927791363304853202544105443226771437173446434948063473271166181518946709674811254564406569414784832811504039433323190930227612398872735927267684948802206801403596343128212871576981520647250646717470282195695520552967008329738900185586190994269652748206095606897042996971594610913304398127569604122175780008191156921637661493165301298620580015895948415408597679660978132854428109100113475886142806179403735864352764259561511712741942490749632701991480744248344684033283998458580919037779831236309892035770147809588052569898369800990590377073233973326387548949581080542346580451740626403816910434786809023684228054144660257480053201104895940261112976738748015492443790602139151984472002312058081106466494338845988329875474744364885078307827786684396953142024231496038468542198833488005009430002907022454589314800410590601066057992295652433175153905375383864433512896650034991035178032516635988510749915759326884627220844355208407215419606903036819475420993979907321071273594896652994650123746624086306478991688662480043081704850644557504195055723384212321254665548653357373666628564819084112212253667411607955724379472779528561041466650006026929728885131322039194072397382457143340984789063613331020452565095121693947043862888665366783427446925048693158883147543824287644500636179978500237781293198332626277603298422320481433593741467382990233547912003506067399575543467233261563013805070972440549155301475698801429297786986932547126431299631276709773768590278120627088456667668070303024642666141529720456071032374509545947246411849826914426681889092201968308377786093309454969790009325138326318194491797754023717515132139293128818151519643086774025510325717813825522299837007305569133763064703907624092095806923587187382115869920649247130358423976730531823587255486202839452839909676576775118739649602031404095219367845885427707905166898822452758438380929527614072968029805782909346050870004727021370625394179074020165404977468219809135430044017088635127799714921434106061333501353195875645872158366833154474318623002131885777233480978006377757809391976402633064981756020512135974504544778533696299404215298877496178387755018626416740810480997045580468571928070801790573271713091911687393281651054270956864074118861655596857800100612471983967498333480736530879926551380066536380889355955305642976120130519770649092906334623629127706442961691964058866006774604426201080656092246322406327914629904181275731074617590248718266834455317694480527316033985967633662651606852072602936459547023797856319484487353224099339509772927508037763428037087014229862969210769936027018704680275526287482910566099221192911372970753287895345649178498232153455044577126158513330854438849566470039635412242678851880283626694047784652087502539221935405570350685284682571359350016000108129005764610485125174014322491868494860874487928652767003888606615690546285522454624458695134513760613729848310183296427688133614327722298844549762008746946527474712197209404033733379294785509568629246155321396880325216739438820156126164291938703214221317641976421447446456289205575998175389073724876697165308680407160454313571509715470092725542239446358969857789578889060283619640072778125638373898599088953896312251979575504749063780657907601979784631291080668010703879620377689534195204586974999132664007951461346858782241558651719913877788078488104716782205496275097343403384609255890952366923094030551481563706156935292006564654914404778008087469644466628506149885233682538781055321556525274382142745596232216741031575940363406203071824393634169848536347196716412198568800926962799561140459004655233299779750751723260062188329043295853553591749484543025310018189929904041642464835348026826380025054895410611939485120743866863308185275227699612424724892725310480480438185467531145397407634074702846939255072259278608962951204907422586640926419477030996271145263305532586407877665404704567362169850490359222871501317454280703463552767621206347102158760144278059359349157696511805943182713646485397461324517559753615796452650871157865052103392481608241888398988163434762521771952894161643162728172649871847096617204813357093471707779516519929707371359619542802373936216639872134603351453569458440270106229137792064903626204802690958575308460333915214284787925524745917139815224824613911766589817193551295086509824403058349407512477030045883900253157353796093178594771670502902877551707357976774695146880527465568549168110078798088283920047239141081753640100175707958566917167595688547465609341243485397528381687563028210166806643608453975593021774293756660304424531497763622854261888881610937372982321653748216446009928020141464925216864246015723361461634110019328693372987413796809495300551634456846269953828271761383945712011288605203455064829128070709333147515827397038549867775301168653635604169198163294430648851434917800114504722858734616211915319588980664758246126541595313151269745543323304994538497055576934030363341730203411411890549029134852685237371732711468451600995803128020073209143368128454233982773262326608463842822900569704668670598863132002681926121827956112376807653583959880576877572333595307630831516044110172045534112362689083122913950568872628894932778200208136650689466932043935921527900816183353523009769718385470311874004548618228132411644352047373640880799321586414700371686899394510719565040049790593959775690457561176000288941593921856987822689052003292304845128195677348728659848457694885770117311582456047747215901777719351385548339916273760274502043992743609301488832953656771790645472605419966799806376054438792671201058988260693666061180926003259616600830502414206583893389635926850824399591654314200031785239475424514662667471168688878026639770589211176698326706526847969555289532208189357507582660397299364612379030164324844708124944609107848968528784170453544824210538066193269901676385001923991805172735881425653070626835653833376434367814799147757719258891318506414414868164590498682353596793478853192878537601221237521253030991249778426138547293153839820924736022942857158951308690224299634498611677866367429221232781505711890215298850425533475183063229069504302167564568617060505236548139016726165670611164167139313917301305689538142594510347316015314690834789240048056242480161570628089637855904576708863318500961013836584567105724220578445446934118277748929651169252100328653688590276160784508208805425615994076701018355891959466103033092242537927354651022427664007576852798769873798194009939499391250756858417336250772318311130998710628622557323503658038093898666694801339282687023739094443485279429580764240192863334817451666555798004268121465478240668354849045909838219697216916338468345003599022812062753075733746475630303265066304256924548160998121750612425976362653806123374413503921375457592926708833770512044240603678005073673029857211896464220282274992691616405886187559122341859134685058791457809303039948674625484480381546724997841565993217636647968581256796613970670486405586575823048245138395112407492146353588372166782485482608027521979334753913119124074718226693110883146223166249528021910163833520845743996019581227692730988848302795607967091822417555319402146793444513579816360723959637076875175915545988456676652766439327679752819242089363863111450026357118474335654160933828308156008524865479542095875076565058370436692648731554554456019745970546872778075484893042528931835507649460991986173225426572126164650092173965564999632312347489997071823169543763828533512670671493151436890893489850604535758157807250500607075931954038611209976581951527461547567323684675952760790127911540242700800474440754100237589370099462240365209336420551004264305704900240986527617968076769107230693134030608964700832448164758366870494610594485021057472829042399706175884222628940417165773578535551917766462102304644293326424227408975914082643481523565225298937528554100574773709469613301245042713252225364993929578419224519846756871643973684282044326900854200182477407967549967070063958798840328554832589963078233209741019376651775388113057561739036223567475539352016225602913383614499749033918734131042055841076456085903854508093006284472740932930664551082725614600009903497011922073801624651941558794639733248770912261707396115556243245983359424935238220916791602394438024395411170428187771793232577468832089818920200809757957965590317928985233206927476503788029110583972464459430790586530149860703181037499123472301728481467277556050449575605015115107265363013348045706620488159561989502953191014287039061574336545646666637280526623116398529269532229245935753707161398999381663983854457566618164275425173786101661402488765084795893165137619933439754879203807649379595379282907239643008897266179764043325695957536805234593089739484399750343216468283667194162216413346986119215685809751986965326106880683248274610069437230066579502598189980919349105530257694000934078742431451211684126131358215444753236646721457624507178893964363762009469144446729695622602353674007463838491435867440981860162118444971458919505493204248414182801547490578276654484156386676482705009586071651474868996766683235741531232477662637299332781461149579882971305901613162236539434052673850792260319511371999902999050135429299554431606724058854887930504252926986808886906315791708701411852259676624041728427953712562948287150174173394821370077106297248407239397098649582852098917205034865872835577993371730515790301709041150197937933635079758587036508444914351357001754803474730543198155691410742998974436947759801730765665187737140624029858022139296756232700586582645701278152692554781075587595644113022573585239131638867634579680421072394055993045022620517450739848484490390393298180054974188800298720291814684574735780621690133989585679122954611477130358146754782850839048304271170423114072650151140970548865418087158758352694569818434736790569747483260983139648352197250347986444761660315527137470752541847074437649926718388469969461234754341449142366321478889358783436200303109335812384490693419414835258198532701847977238295198807246136062896435371457861945668562726353650333404414266797113105538616010340663998480025678803131182066618215891002771525673267924874197922977606921433244407005528599885727312871824602276469251775149942817269738434115960562346793100661335363575398140952636918351210427758062075087406728894187614333578612074661245991450992649059194615179042922294441666218348403976530722455207707529720610266398396910204904484395418367957802351119499321104489355047870398256422118132827123243199971947955512570335807955887421847482248200019656727454974841694761012544469933378170614350845164527417608637210479653727889949426172922037818463649742622776434847080751019107253188206180979998942165743118917324228021188114134742860805012625871288107835382191731011404242973295635195509090110672188597806594821037549878571746851303237670436759119615959912064196932261483245597236462227850080128428918332755606143026338071823505126690006300312150253319955967155771381119717681728468794771600388902829148271201878747216696716496912140469228773411907621934380166550226908524236130978053296171900733122751405720850192242922805401419514450287613961062999301687126855497506107631776862983740025362931914140393863608784527093140642192747646945463009972155891964940605403810015534282757175182053761064792516857952982284511501885646367893208618639002194209924625752658766163347375048218666953893550629865965258564032749739516279649005183565923923093860791213227033035053348644792628040492822718542770461804284515095173620837845939882334186286647085065662923653832755813791650523313119490785298868649483918422810496820636156460044331273068434835899797021857637118599462089294887008260465802309049697282704985273027197970316154171435014691432406852717403392667955164816986320074673095403322028408732978413703169219119898959192522928817179553613581827315412337743127254677177750333453346806402799851697377268438944813125722336687317172410337971148787814896010150400691642578676403100054251806522289807250990211895455112960799372688759740737180975334553583652697341315818954960021154780913775174107388293830536588694782590023180533318776430655670879421596407377013513150969263150928233110481675047080070114644696078720509348569336696401272478022065604582534354881181227662151830637636827656030568321147950523614039787721717590405632752352986988037778221751644551235913087842178762984012214525379459503707429242489889093096079243340069899381382895927269242410512847719563874840328060017699394763145749519085671855524156363925798726144545195326229131839564447236298950886985552232939807124368463095509334513368362446303679042969730190502674643551751545846117026131748446870882442177352138821127422241498522060344574329349466888582540444542060344853513687373195720130409949961018581952250385767002398860483620395781256971855863879367371977931049765947198360727651296491650655023974098773122970622580764400924336411105897750529611597394397886453524537610923946554187226064701637746784741768518653735946840336498204006745779462213079493637851901469141101105166069470201845310731689927796779471237675935996423937594571090296217594423213142962763477098819403487261996127047586525516913592641754552676640123854944953571844439384729524918465982065242776577052233701463216679053373342357458918289787705103837822995886913374222589999335178358112483876314959904238350020117284744493158276441985978685487634553637938668397299329037295730031639787423893598137675311909686643859926063504289402199058331448613287832957274454580290191264006044201965688042460769220646825001019881081785242112758706899146384687617744659060216111906169985047161435599187807831125527882785577824183367651135560743086111701567327864848933627104816877295915542076426079297459779994838788619223591079593699253431371233193242661756903653205062933734433346622797034496858482802084088743227642303229993489627345906663280223113027705264391845230406780383426946268014947225879787889568380071755586609840956830090816348195940021666876279545380749628517368909661993699955492018338971442281320647957021108707669473460562582575412466194684069042544138732012831393644148626861902232208554247830141382833361631521895531110605858583379081616065556315772713142029714046828757412946910806974567692191615309033487148102175104684892241240660464425868128958004320170443107908120805582607296786686245854919013116640811382235064336641903120855302882942329433909604783876444898294182532800254711312675629523493965957766417261162082765714265998602707162088612186953981551846839487166556435407791297055376908941446800915037713795754874376233057779060862840084727534664187728289366373463594726329185747164309627792061121412655143852388610200556805639610803140236899116804499953781872552336420557003788395862924113184028239914531739111705024898768741555565402531590761464696521463817419013835552982553104657813752274823328709465863057955270028696629231818542583027275401205270779153903732798950031477742522857159445679850739470892441686975148596108196755190211091665395506505202551419407130543488589094498305233039370679033638530408891758039891924767739671949701951309859272539120731631627143527729287427428050082052427105989184807758571623125040976358168303230089256325804058771892430734659168251186441516132039172714295429094998623062893178209705597878068001744148529003590565542841409856436677905866690290252277858492786488821677669460274423994978410972367511717471822380308213904449786315279826456012666045488646648918239854507571263829098907254912049870793028539718724189570224189048792194066692557294738263906285872968482187030944023200275610888155006034377398682491187700472655570177042835116638740802310595374091568843394378452375045721194046115382667400697811102233297699322810832210691569640396324600529772047147619820851636232071372348293758113498084647303624624099178462150918433576889614042453521072121240493956639520040676893423802859122733075312071176863070476638831011527239720361883613341551506417058440235166110418264945842077694435898444905419014599215233747214673607477721921713732424087594622246723074368890882337155457516584844120849202292698338416607548786240312047429194461151497462513185315731725664686221497201584577407194738262956025468638522212949550874710605235805870531230774543691701212955703438416183339126133793703243473464246488477073847603272839484469738797411671852116395951982347041887101135936277140876400047158440067767869109879468191668303026517449127883374961200324348565764794692907764279886552505059440321915456606058721059063017164997325961389662648682208412703641606352311242204966901910976990000724861823254256485094283270351811403474453293943931160208407985986733496822088321584517609559087977674594346415103928811905317353618810508604194228377546040829738140032913693861169443966604633497116927511258368748695198900076426154974932768542039855904583077718143684411650978114886571712611267445003942267170389357414345913284814548066824311270001157259386363710509328570679232417700324335360596191231244343063514349085636797187246177470455158969942506682127117258069350443511232894957461989889228868413597538112302030283796074334538433492234948308250859151977654755648822669538070017827220589125429726401371605394973153810566848454609463522475250736200302047342507020400903314448025262637625070910630769878379681152572730832352992745385117864830067049406579905366575223532988710057073471363862460798589863180326469632595275997715821679523411433848044026560753362712116102311252595238813942045804127896320136614356976129534132415153493719863568933075841980312548492399500494878969935717496365392874476363856389764032716142483285748668715514223710765118593282508359065083024004364684148606851771299902618843812568112215197803408332762568471141791000445442798260228078578706208248509322213765325425637645787005369434835769789834896943711022422800795149704347962148159795379169289663378990039235855011217413119381274892864723013852936490651938865760418319495461928796904285042245268693108689611265058339789357540626231969386871532263370476752538429480666163531213282097105019143158829842612757960838201195011917213954716815640369637226979818865442625848866475146839361702721552619023163170930621758313006904418835216732229575211061988580424437554815765112686969054245055296146841569371963505159462445325220087933429622131292597440467355390813801403985069795477139259404559235362774215983424127351398136437286337298708993372269259685366226822371852807205407817572435507915241736358961243911755547090836434906755173045304751811706158331399445786981814906496833740749608835316357414910123867517285596898773044331247560529085996382557357033760103106239602827562207985749954677574193766136105015321326267085535538113341828896737847776120913238766203455715165930433529599699664705640662467477163027228136112222228617370727407233019501830767392847790262655249015430040439707186065408794577597041590512254358221265755456217498060638522674392336838867248015776782765906286524235273130847376178283126248158380772774598989159735061527125254604984936109748457145576466379826399179824703193541877872367395159863146563048081914437644901008823549927260002054694931192641449123672116788774840840498823624299205212515909690955289047908169398484928615007337676021297383726259975997014914095124159809504173202794946494305805327095027136754162331717968612283695039095146201099999604531780755347889562798426213930248999779011597627688686134282264184494554658145256043686513011894612361277223039605816085447567298878728019238328815362070305977769955416849302943740623766939890271596367612459552642899278216156146284335537009562914206652847291508123510219568095028777379290886715366767663028812965876941123251725012095194769480885092129996231454555407689307719839314936430605189788332302285931237499350478886470829083636227448951004948099794168340631808628622121647490832326605264597318295346334782509535615055415898251516903239436692119903725512520232204510893740886345101794098332523517165165289092375522548319849241864145114498164670669977470793519728169296659626046198862202521538137361459841886552878139047228143692782732055150085765135907258982217533633670199208493997840028542171525747658986763487364846819813681883326194886360892779817630184863170307104594907268658045416617971692994737955190789899611246485871339564811582724393219968606175910550518539215933366477057869759806972069927041399024435477095561020062133195359222879485117335886806701707465965783030046505589852852075813577133047453142515281557559209407670607053550239578455106159762368071836184074394736359451077314202031138534242379001667109663936252418884170289355670497991807903309683497544645851869204156877015859518285394413264642211896583491321763383843476649469923476407217722509522914132114704312202128771413103511424884707073563235120260629313429939918462344000169011734844970676220408532719963058575565638157136267904215933643183211673532048410880195157461809374987373519635165374657579655878803095170199589082047864321311839659986663053196748716562486122369093996189002361462588442521512276240571706954619264539684991932744000114115236213310937595711499986505478261733311395418393521966904840483410753072772949040277735715725254583607517285134037584381391628023665497091550053822585234727561492132502828944856989436219069511091745423241409234909482163223674949539562170998414824775415449745755145297173552766590529262654149971434068337434420257327691997400433151466944001004370971180411521489604981225985711877663959156083191735182265035427941512727642672445227688925836169186553247298445015879569075505739989736809389611893875864807557664340482022997657765324895671888082895758698799490085210476220452879213147522780129645038172486217356524163904374774366496463566725793649122550884556782065004448772488172419643350508325547578296063111872782406431808699967571678891823102438676738532175415882283723001099150229693610044173498447062455593367575479537687221703791214151467381604386121471876556523794062609819485483850510650927250975168504160013363491348918537522653263209915820853292936044549105157713556823244523213043841962219981042205819801699193448160588514539162860008715110020249465018417796380745311166863208980335375977083548601682982690726417398493820939692408082915847231606840228478640306035748055778307385061229382271972755564952041141144664358726640522530125701586419611222234357500794445544560586109545700657737559652488706306154630027550997966159877872464455587918907118333737109576141244200181167270248262462593868807146661075238268288350733934220622644676142922562276342992442591126555839653371741659741415465780783415056514838821166662145323170404560109161061991395813455257211780948194263935187651397047002857203390243571971007487841182802081409920133353159103716251916133326911049428874380806487911124459283446651580571415502127323736245054887012790287618596474266112242384874645318639850228574453283391287618571618009436285616620432176164462523316875999530200140209373316630025729946596522082315088469639482443909204406276947560074386124089103481627990710602816600072214797959407395516947043456012007633016734544532447143022747163601972094657566128655247114486624798006875357224667783092666026772359926297611642627421902207642089008085138749456163634587067466112578512902401218263628519447860706453192578271033810542365083163235591778464473340537134155878248584822721602783911737775761078638367641802011803761901869668780160792572642114833444111291579689523479579031153366341815453652828881193904946513738393099234353464111449965517385858937828554797429148141063351462412890875726408995504473881368405656216818274833194647128292802839338946009950827450826888100183613235043295383836497880740967192771017594753260505572205088171498538966645665403764397474448314531562007864942126685295158545688126545297323571146478523668461448154795766326885144665088971150465061209545337449772240308024714974940926792322460164959846358559733726122536492823123162259091282375738281851379541429526803226583923558285899122585765590933200394202783412994288973146251507976947213788065942903324306858431485335131046680899719795641656222153147242875601815606003876919676462047045735586920922127339502498008836231414175112818157494243090350635889350008014446850869236882126860253459162379856997099655752284142012169546417055867714668637656036241489315892000591823231387889730505380517276969477432718075920972428492407170405689477523460781719413995170370710961978757802057144910430011885320367890611287680045048263916753399138732814240862919468950298198938244497400587527378073145396241884737014834137006859212717136294143531245163094017331408696012972522995769162877938233144031257701032949244176151263416294516501273303349383277962362630497533210340247770179270151817238167022746029813129848017463854206807129362816389642765358512633208987628508405929692403357121124222203146461860736318185877290549423236164512645499039982501917487418856242273957027882721890382209255706132481070728668172806186160635477851681625595875846823345611710119250621208361690254687112946061718570311981586691731491255790269400166414025775296684991424366361834620965332861684699925628453812381736629259849071458785259336368740361861247071531189461206617277168998062916243848544977875770893791352466785973701309894339241165151600259266884218144744006290321925464946743241154969478373464490234840011227554074707345417899643387323108046227521528989425149572689958542409645125774387074246199795006830741761332335432215962466145281924725952664343266852146010297234307602874329095850479102575834365872016933015316177103875635599064139686881200766711128252918430364652594305122138692796380030848937091911751012528113584828884331763316849324175854004309580632034142437121830810955518199172674401339925227986270444477212450782868149782964364409225660210052363528202653839225388468376253805965433528611625525675375101762730440302197315931795473563218011986789178151123953728405775048594451035381331247262079777360793256069458024686002464276669048598540025496018632245504252169648009415950771098196063297480009698058484996322380812145941420497442709666989527229416196068935244922287662308633435060100375965899540463494506824015969284259611521433293837520423702801594488714735421432301557185326945021437657173992817064484287855857230447991279749769071478389951370220035119107472402392688461141515346142973988470038550578026040730248107033706511952248146074276261757214873246188416633117840765257234941297699485508522541592464826907241061966373365638887876062044581420763046093149244060826491177697473423199407856289149746495962623543810202858733959892215151391864477551366766519642248899615860273819795308969363555526561296387343969426503542093208752244083275441762742250981995528110028335012755812256102463066011803840236296725089657576276497568251843913087194873009851177879181442602199076981850844765004398326081316988500620346877320450094212072557236562089662978077640906158157610385711244680510058731757138309122240179998824424511934673688806984444814575105201842434462082468739304283149255981038866980208679680954138644053759314138043462560988874261071153725071832065263990229843873291616475967064082643296883348232103010741783062877818119621197341081495214378534698657545479991846274739448963488883573022165656971290766594425793862427669227803008785101570409110708638419276253980332502009076134511694730251805680095735965267753122751976783029982444182117399659493529331963508337109131194589239048779726309425981332355119371611791735729209262348244638367216803935970199123178643523171530027350778882532262035087543292319646509955760883988206995137557752082624404182068955262287369232397109405817920610207171645303052193854875731640810087716307377017866576474393813259384596781378874852303650902130507329465939115345157351296587638101117396483853991974179946281895052958143306817212236535893563392535500115675648941075173403878027924658395505740224407080595667523675782657247811288313322269119284565632836435598733394768782910942662148057632822868397509627190789948508914998305706462650919497429291350785638460665095726424533390041165787772578137097838926297894648122166454969276751888690578330421327583768740367844510403943319427061655481128640676852330461440405800336207233833904268795129755769008897559507641228059717326772619971532005403533567812962177549635356107676706492749213943073831013771976199323812459814947178099379126304721123591087054302973371688411968970382522441132460580824405764452744929929600372936461363136779604478363455263334407875686717191757430683895586230328631033307666868072404587807616774288204606127651136352449740112349497812158147326352801961169162155165116010936080715728729116980283250492031842234908432903690198801995190096194635496466908309766740350285198729924909449977144337926184093694398927707903117226613264881976459093144585999234809879089161009366771527118179349485549411302007744925198714276452677038309828279466584537352306099189310188667378282330951984741070228152963462625151690885618985332260264663963986851680541486302319065655371401166344273597768371021337323908421369363996048133695562005876418744068960797478089604756259482043994675151233515696582854347524167961941362579550400269227009279719462995150362215921651413579026299279348630823683991300357528769597796366131955104060348107397836093206660705373562376787768483180465061576303716644654177043697370077818266689470707164050767792430898975878012126122478157547778958704988769215407546978245816581138923064761318442371286994963264670735021421154400696724408916110149862094577546470886280652568630489620421096893190685124830496365742977519042581212587877144519112176337670672199227316911035029597846574401264848055941112567115114014913055333122906546833535365194757719320139685616098003312670344359933374899722083326629355039817789085608013385657712851316863287204562541292422589783745655538207167324744016564597694436224104422127261504432458400019641966072049196574750547076838809403748582824802031102112137801038687258015784437029498732644841856780451478695278492139666455805916534335266626235693213160997659443190085771818283495660524740548295498008931560598169887146391833995413587992785817612719212633793711126518204641623184457414560032259789689535597571535336371501435550544035596734865842443034036897169555118837934399013600569372892189761554112783947758503645929168256206080712695995648117536273994676747231369610044143900358388702932067349910825351538856061862954761906932840493986070020152430127680216800700715638785792111371069909572615649910259943495195362471085769140935493333777607854031540232651011760772128628806821735941649663136029951417086766362965881668124532942522485214328819874037255738912030341727807222006469738533529237371029667056098545853505884575411652530024081074183161674630655938382292055449422026675886831919773848991836839310451389646958990222853272401320186338663754819568112756804333649409696690904253841443999416499119443893094340419800883165474660079845878402992637441623150529368375907580266055901197594926036595733453780298350109337044413279373056371691694764012612518176243323360447102022915232416664692922018457676836588908337747738437699789741351712126535520608915454058199913174589219843992298159937275969426609808654229932890268078146638356106363352071498184920002445908241482968925178995398187722653584212312237268058996624684233256139378249900381984462226631578056186622379492666537501683701977584892352831382578416097028057447727500140874769542143210404711043066979400858719216728899893218455333804597992888379481797367939961611278117116390363491925137999782728513261340180557589092638285104658190692250003984767749912882565636555753016062011987887619673396474005309226399536022860624605579451097622712647594552033469545740130316246691078697781080897782620021623154620129760163049731372283421729662491453294953939907286063867598381719814828776423032965716644667669293999898207238960333179950846870534419508775345928471197124230009773574150318545829742248384539857915072208260740961323216110373572881587520238787434762840211964953028997822162750075973133553981163752451904432463150165665922969628474516566045673757045018877291249942124036553553154847224197109465637623535981705142394286429937278852302033842629231092736781510291974466562017440770227587832923182091988049433298676619287585211967840628771896328196211969490150241463740646549453839922194571952718679563693833018873335386824920993275133477792283652897727816419077830000700466216401855144420678882580615219027685411355370806172882797778622495663515260166797156022794221781282920004993197708959741791121537329757902966396407654179526020543619899686545895429693988138479391657562320092621184204007715974293649767926445237903421003237109518178754509334109547862396686250808931728212496000750324413109371349773654964329712754838060685946233939305991658627969358763961780594176214772526091512923921454676114499740563432630757346666793191367240813121834978406764407471453778037568643251093074061675674857798882084451839968417081024458013475296460008888666754969534565298523267313589219197669010791925781120320743542729074110260734508658993896891528049969434161132910641848948963725842437224357675910854800704569607733837269529289587660498550410871265870026791925193301583725890532875827161898083668506754033641525333550419747394394940983242653180680791061287028624832592337346603302258787399901665861837140819452337503060839850187615003501958462377760000788025147298588330537262002590919339019131464308852572879572667461040227902149694663054486364139999750935284017926130132835162152582478584064843398148580968845709843118512491793860939316871848086860721723628961886958558847280062150634528861064526099164484496706977488843180928315901646475425503872287419071415556540823083282116901779114210961531726704539840310919089297702091289009111662864247696471138466605241834114076968953554490591182375837312544403902546671424115934532563850249654337511355937879528352592198104512654208846067750385551987312411347907294789221504664125086533677891564111897212166568886063919476608747637841565317229339016567086556491139223443263000017337166357247533940669699273757239004729961606023254199247047160054680377519788481175381375620099495961485147343791050429285096038782833142268039863470916889922597222716996216288494727936092521718044512313106248618704557296242734794922320527348550575506098838254581598679024457608186579897561092832097167687990615043578047999258128305286630349590952235814659371571409794210241264734611069311519831187483333600147836387438840962096701197832661174989218648285756409522545915510304445900023757697645678835864166374455678926560915077746176003365522218009954776320787423768599909047868563760377214361658203746259702053422039637275851316777675189663112944845373754041943498981232575503685922482801473772176318872504282097355494066546761340450867356397910993656878688463544940593503753281854162149934438094923032034579091498757001971309416823709458219137686189856207993628842968295777546698690447196827622762025760286248356756603569104872456490468392762776113255576019924756269817797132034403036051700430554015912185629446480669461658344397490887871100342680641229389201205128760876759926026351651726010769127776169794209432029609930672386180418531505914338156333844870432008463051101435926210574859903574970342729095429086771537678470215676607078358866407814002173533978771165658140159788952010131501361123771253342644763239664083092959224651579303018524944881841188711731615886278702534162301378491098142466064060879261292193618607285087434873177135283110063808259139280046062483336919206857463042545238447364097302839552891501102667818368899351149722124339941432919165002759733293417643201608117359442495588057702424006473805385112904062549787942380814099728361079096699703816680157403544581633196607998885157454387237007120620083391129063570865187599086606908513568962597885894881764144740337512296317910701073745502468343862112679847310600637606657520413920827271739565321092014885909068276180991985438360460842202622244803086995151342154998250957947593212659305424936321987793519309623389719805472568533149643814557223761843620836226769674106970757661449492908710526102954064994735603531296853471151497457506065814109277127609681953013965502835303649974516920158702103978723787374660957527785337756606224066522780061625445596830890315095733369835313627525698147457355559455720805054947166507487475853022532881707935885818374707534372943125805907718568458127801310657285937681711165151049540914644116500482445539503977527661976134067453119336746787154676756024290410680880502511960415609887388462127595728356116417109213727453380859322552464306469908581343525562938064226940926845646705397305948532897269796396144260955684156972239384819643875824983899228145344988089855717123223238946583800844480806159970861871807076639779144811574189548214966414467760867206760334835663913465244353130442678303946949952288551972658228472986288390120804997583381908426425058712432541685419883789165033419422317665983019970516250169950351435076388386859218863868777759727679360932228997770795265909153536568048691332358162132635594669935410279150036854087343531745718039209228623051292434785106899917103251077790053760230410962934588163942286973825430775932143005781270482389870359105262321777630475254126625046865529810410046350112069749811971554840022409118727332176227216933112024731829701025704285325987560056249422732084413165955361069453168015834275746683321511155612059371441990261529335326242457108380111332729653438885598685013426655210111887878520416547446538180171224389181094784848049168861979821158547784079984606268308040470631150845569616402812392727645889131086453579379877932924297401433702773885056514461892963315008290369460912673342834110417900039529511453757325619389334949028890230890656686197075459625158206185430849685939021292535881306973909872337176990946467678905767708770411585042457894980107868192850605895269594517261610254919799491522110219779197109902616651600368938180333198443855171911574616294655374474995634840582036885015773078367150895645399242016349487141619324339896761782948509951610966518892522329055229727834473901027169378621807095120622448182257878775151888086357028577017434369585145433539022220087598000250343494046951991211757439832320407750205923287907209073842729825313084889296467157947506062530518364666461871626708826468197532711679361389515095825396295507719211464562075333237867481985123962203269615758772202886778830729811718800234972581282301756650021038369160064526868605124628261002439351773474811933624500105383513959946562801186276802204573033381327550625850767906501477858302282637483561162891609513899661670321991591438207794473692481783626022779781023724264822902964870981724421646610630971942988102146171216980645148695359693382727886523770149788560415355823999820703086527884591940834222652012317459350789059231940876521747936459407970171398656543746608183820528087430997233532502879952002734881340829060912985537385711369632597598938979466684539082521578165415283136753485242860943942894932335463246020069877607030154081656658989882792808205379184016611965276228485360442752988742461667024219674213219455669878348721679293301998483891030910546751088538328296557804959267727335128643080850788324987694020747521823109873899469917981482593626930951442411014573900095046835636294000968831346101246561280407281526158272213830391077711329788667430606205246809702900464487724850878052757194207832504036354840776192791993192148347928540714235615190774378185132083108182744788982062498072611680066141169205898329936234847977016294803883573063627637890844584607451724378957540372984935097066569515951441846716226292551001187052026687032762864466709692132921128154980945488059712076322042463415412516198476389708472052352392260512017421727566787950499605631973910778630624040916377757947098352562019264170860674059762650688352379886235574254697538475075394356320153304416709301537734822130198021693340892045134777825847778371047334710235410644516701209589735490125449198932747467190121246978045346900839780617378336563372235178458666039695497743513214269457274207632443858127006202798428846202598525083664976085165025936088111698653698005324854537558261005930500797614326306080000288936455708662940496802303280464328650635649366597967340774207272996891547604775441555245311036876952581779041790398202978831156926397974615406473142776607096325036118376707161826218381867118513015545553517973033330757508310503370288210784759381016846876828371366378467305378062543479463694596848150465998505884736334937338673166571181365772663143752545957324508230638498418259707731016791863692437227807594990858137020807661340737352310935699018232204771514813610616576220742759311072242333697138286201129490685373437510528748183113425503972797614383785081857176402697610215407894233970314213436234955664836654568915042504035148061589635062549991955609350996976373866677791788109150563810547195023010593285747872718828460367723310418726400703013867965510779720131219622288892699874871539441254064423313510953439476623704979920014456492216025857064424249099573683278689575153839247766175393162777500645058220967068617113774052270508541719799291596672326041037049506551980652942005330010213705183556601940747516532893683228400251927761900493721179764663057194991421550105791962080804201545625414677474001451230235773445739280694929778392335169998930855499316263315213234475987872829967788003485675022776509519662533471456109737505999252939037597969431920342217210051407291379967580050979848715942781737914799593272472599660728458299235914586609267644751414781413217543806557754731816339106000885297543754849465899989297495796791295772323576743577621236768225095633354603647833522505472666945347804800859396130236929509447803081288102667143165644006213000670125515396996418762574977823012452783398781579881960590938733088900160015434172018675537760455856990098881843907798840904667783243878137224744723706903201391628840063393735940151684492672127489992550679690888516956625778705502763269031001272204514126623527119956495871866945156015365288462583688470587287552868155976313917448460425991606748451508934777503083968775975271166352168765188579646924931039768232420897678067147753061917681534399207172129781849516129410216345219683562573795567821923661863888046171602343229515274202981387471760009708254929467132403469577021345597022842745655386664508838519072729785987507945961251618539800065545287942920858538468628135101635983763894108809626892243481815934500122192196641776381204433221585272586254834057847922362907094576045164076485607906535550064212597851314376770163123823315960106704480374085456612438870242177492919564130559168471107705353238559950672727321399023967760619451126055342458807330458649919994801960634940556110262333411753184560636767954656905700548713168114044883812672258095734026467045912058472267544956690253724746742498406651520359179510961456920971832401760265508794232920396894957875014329985219056763366746450621013286163482396469042197097114838475387933812104512967082341714456748480687794159824079370828786559581906818257161101382007470713072468782117305485921629914370090870097169051398807079913587287909857066004104376428354978126855241853787393989928172639424467338984072297952527858704047076054099446682100304469876713535120936064696832932120276531185033427685202387610169332255060490453006522586675514494626680338070250900238475288005349818373550438578229355143672378506508843740757886079546535971140796027367508767032932232979423984461532573275249966302369025275565080894985541809974007792294688327610179861423055667312369915133980638074034593975032419518130934490637880471621032129118401751345725065341689188579260978280742833071841676547134125046660312328642804799241613967140392843434551578578011087398697474776556437397571761340116317136899272756574308808684708157820939595698036641634017445733519240991676709451850295089204067249265156967235026580396804128792695835386471019332690014309272449394696799232608917976510908713877671142109589849651026485227591955093626016417378744038594085520806270576068475403722707426552550213784533954485470023447795937011333267614412546370388055918315270489260069449421792451165311609341482372777701159851900416031951479582650589915564800112224136529294447778328487480678839736226951705664918963789683571202311532384462808245471293372653788887351373754881140553131388364884676232376548286580282693501078620152551726807637108321760415271360650399162594373523908156534545877834328501201777636512659765949637603525713571966164242204903244549585737924377186726293237705850294413133454318181779410379462703212711468939569339116105606633808099551761630458690204265913506784534983887776524770217204678800502491842970799895590285053041589614572047744060461493924847807055477567027274977620067940415891295525931317614223296994967273425164226437572516254248208331578935282105448186941543345327398323546795141845747766178417482580828439879212381337638295696172012536287314736720372587125347595738408261152900697638681684645601595425708330647577635910435373532890745153828710606066314867678731405619525128774867359405988177819047771817804477679919423899772723896750450333905542191961688121430887939340446507754488467024063379489786159948511556261187135265669161265174213341641797710402578597052245322910615352853626152232443748969181657681440661671262173731290863174925212089248379023173415658280309356445392670849303256893629957711665176793153171248191278929628020885219142994556786078924360408306650875547718640365363882344071939262020015858323129197114764749135542591777985570827781585410443121805794707156691522604759094828238213470352428614700764266399945090635300311424493883769007462853876831815869126840314033233784876875558208905577019931716224997480994439540398148773668896179397872010333695754056624912744215626308123895753423383666821568646233724062498358646298284488574099174130792386443156008757654498776065624107495629953597207854690714650960083190072562602263003040892669089062624133730689932778042694140384213497917351822988285258769770408798814178494426512154491238087758362731290530793560840844566443782515802006677310286517814429394702083572813962868238971440842418360272268518613231178855733321304618575384259977217694350718973244782290748471166203920869432350733738653699705240707583049147850794367491776960245728079127394542323673134979453825090893835207754605092295402861870590545412467336864979143533418593152539873785530379410259812283716252064053222706880219786545218816381907345285635613369496274595995266261539317886802082755250351644164882542620887177763473511607686722311704835101509543372100581088667952978742820059724956028040409026249485160175438036816614199838038932824298425270747481086319523138895877485862414711859188453833770052941973713320287794302264627401151238348318453941481208035226907069899147495071561972346549602942908546793548946881709994416135545502656095220873677473440213845570271727370812400198112699398002765488216789621877120534253371786000536923549186651216293563280987920204362674350412213888277362746727568910998648648258605932695882531879052918047518971456037536834676137266242635837877807475015873329026006819181209089855600884948492797589220483786049156808596089375139554565517106369891227022999537987609347797434570823882100078159008940358498491363061954473159190156279189865835488055605004982558143884669427791506047669220862585020172871449720182719270468067869359779999487623243421831628934840274971260516272072753580721494527058184022174396532892263198160374951213277335078595067321029102150016055600425423288970129611471126524709729632516553633487160509857541894681197514804459394990171856786976729173701109898445395384505079731484599643396139011889958983793543887805805641820129609848350416767813840541901077225385777791417984910652606838263639101054292376612109939357824212367910792039272167002682516015062720068647788388865686362359246755241194372196022198646886335388313959918348597107638112604661905688211134928070797687158588531002962336897243460959074360127260318037969021456031266754469968565667379018991164957003440066606302122208047318354902095085100441533159393003416224209346825585148066453990536356276759588950355583125894064218367541173059005907602067680202588110599693815837984131256896807392546787792701513708508832997142957268037048024108405068366745507121511798219899897419787258409658891915398325523075320300193650913038221323330350555968594188767979538204181240658299838417914441220981181820861362885615382766153564047089983804712991345062089326215501305721532804852257951461859975514893232026315584415645299280765119665031128667881552579605494329766172218507759268524042616727719113594778940943461470125728350073772101255498439653193342056162769274270109926341447195051081016118221909017670686441752609962834671389424570161632879077929277543499377685596602082876634419576340194626913695039321659872471116045589895369082093899536582117609602513081914594890278447220073104985404149853817190596655814786925195991822249608115587960066789759712730061925309125250177571570212228897466150133844553926847617143133283763765602991552792076648260245459492086578226675474975361128717801550964362449245737198555489593057187723430589065278516765655198470732201684299818690235293800404140207247593236146009582779065376616931659821191174660924865189972671537023147799973999880438123088059683520593763911224976503174876597348381417840175707363710370971308048933111056809764885440817355667044387883056067937623796706966038688526159267907166475440166956428669691572219280885389496262106916014782845990623782105736458756968849281050005049191530202200875778103272263187426282504641683323301583542505181639419239335662351545290660849531567111802377749195277169235016768872073263188867277591497142472356980924455335353035256744400844295487887873104841713398405657897881102955721457022861307338755146984361749822199161401307990100240229147835501338663829400302434187522991123630274072785579463026406755623981558083365671548273829209922180641481050685573697497188305492009532058308849429767703123391579587465752595562768936745272743408901314147697448657059415742220045818247708954679819614028529504255429766609543353251096706152999143720170467253882211433091439039941872458036428105122493436233398138607788166838909903087674274008819065147676556091973648293647270009301851191145420257758573020339752250711288488675208295647400826777022293500901193812788535495068615207981394322447444797834052381870907660462428988183811600581769921506981906197197285049695476082200854816017837670340376487039462353910473173558356463922220117881607628508098147994031180549820112308679415534502820456500590796088266540949338720385488687151659356509214814781251516020444977721035354057714217555479501940420512762868187868971301948825322192063142344304280016237465081545435765976407597346675623502486222187163937378414725711748001930505984328238592367918651582781958029732157276690878369146857336839933391300496507626976815478557355921616839458380906108088802190434781517040197997856924418384074353205387812912419981943000628996931259493684271262967820024353222326227175412202631050559186246529624972145307194666762051720011997908844018600665887006264879344164109504650031070551957453451331715264520390026302883983462339134898108991488319845709183037198879375487924518112012136613977233174897831162869276794155112025155799063490611197898798318938240442615766440506408303927977239537798947999084328570714956580885719118895381677453900368808631419844584758858335432889987312157148556593358830051663772743390862951619563059313308781346673750343046598327888475450029028000067662500885826033934152992966501221382769643978680666904977504023204566015645137655608734976164530523246913919986726914305908713203548714154348427116691365630719881092453033624201140282168230304834732288382171234057957544362687085332760246197523413163751483739539990355835722055170492728097623274350080020046421140949112871391373935447096732001196759609680019347360685205888219433191783487541183235785709839563004087214277758308126774324865801608305844680225501945033513221766504467192321740199744148517002412481550982471520268713232512408347851935371939048653575748688958004539048139907094970171192606546387933880929113760307394263969071660383823671179310821147623160011009480938282424638852225971562439459602966332867347782222557305622006150777890494936583341485604465337969401496505201073501636998838590212690508495570560002753269932190918878470980092064836903874846602015019522134695285900667823490633762766276354982073069003337578136185809021632191916163327624614904538398341402395372928103540670513800951785088775624840807089759363946118293928917453549404766138793794869390119707127118832107298616078856545504595554628721707907642872523826218769465681914278682078725859083177061328019737334889560481270386320845939105436087848391698486947873209614050925216460159572497193561309237393438258491133724128590455238618615111159563040367971012189797555558199226925103488959417302212115774369456266941161618096231885068328149600081044454591498682116323107360640799938594559461228516443998794851192031265810913753848156789588252597292136652032153740642013259592702427554384301508112999403284163122884095965883635549406237252233791983856275062565466256541991442283244271248509525652754079556420401161626896848856174111898210490280568393167310261103803103955671449618620600616437155929669546050001007327149881599575596307993680449558142792851901477287594058105149258420206044123019585856098665538818474817300041811110408887576446691224335815070354525422418504229778519014041108598791997217928088929794128459118865721546882127248256419770067612830000282914237269762977261221587461992970665029061354060493869391488021446253285872250545281438705152137051447160227119052328338777563960428389802064470622825447455470845670470415563805368437378470281094861502424556155385772303208878438313551507468197640676334824022422179036888282679564248820322652658254218597370324096270811657194182869334704587770895244083457897112037027419581862773814314442185504684849580171328057463439888132064507731924779047072476732082436251963207540665158666120215509555352381639239196645567338293311541554495456634210632024795402025388772296408546967150677362353372405961841337566959490507980472905917454947853790823058602382587172831267504840450598891837508905173767320438989763859877060766830364260995104649776921584634777603628546733554247384590048642512002349007623845027218188538584232720659700609324573269081567584970255665113736069145316608749464270759293037278676854990063628837448150572124993724500661582131748432816858551719324848033185362086910678278746735006529588754006064564553077811960862138741303971179020735318848853040259036167132417314572500324691465798528866097302736767317393995172957127983152574183014032266290660844818804270642559320064378002831251626849399784762698944484923323323299085044606059379826247133485902842191142854544788536627899172558872481241147119440169089266213868517540807070101928312907975332961017692686760254561102441477671736651273475848834102705557584099363293567192455411765500317860067051312490224782962876655179295757675847606890058103321272868499277743074745416358811929154994359636494590372498989487718933454454118325766311521550120229401139519986273028373898130638834679569743005914355157895895881963773912912793317428879702992773851295667683454584235858608256468258350666541439901096509999400482176491654811706653504601012826679961698489592654022219947232978781376025565192068153427670862088675850519481203316141483845552397260603911617072827395238919874685580891758741025260827371471616806525144645516617799125060079834532546417080240353789928955598689763195307299565262300078417739361459586995703255339428067014799722546362050015460275735594215756430382136531024594121113662326635383355586310619893861085824007700925945364422244861298279546768629838808536539298289955087652048054183339551457334018085924685928342080073119944631280040618850345578167986162853256954130921800651406812271001780311823312761239272390081688990324892089055569515574224138531505752346113740140453127358949756467621254574691045336372594328755233163753760534443595674763951653549104256323016780359756637246500863604876517355512206929180406141303626309943710855659493828051348270081807330925381047868714163789447573417790508787047914633455829860328392570661896213303654381855963133246870737265792236473952535075227712470917994104795094662851930442228915288706541881858256823104291728890843007839251772355181967658662429900439470741173952845400498494272562027919114120309264426693937679787893839589755439763278516590899592609138260863412473400742606946553895451339764489928951877506349813653225679948079251638094656744416172610438857318853830312683185194133950584187015897600990646168556189430622534530968986314174442355501041408271538049149019420540239583750272148982684418358066722419334308978050987153932299769678234819166255295601798947523322080486700483388993243958688771718169878062843801218176986302136911711501267141016516184184116114767357341144681527177432484738921529845193821897806071051460132503477772521941308061898778509584862274796263481708657939496990405180876532458658395497087831256098911820813431361449626091638929191860604794300588246080558705320385183874617201209116512018606843778415939447520681205793421523772763934503586202685642475961590275824125954008261907961355705673524620761825134770510324075260453401789140247280550770099188557980120018232743195365165697942055141295756266718275223411492986699889145933027015215215033539709392518251806404607017453377825652741734336419107063553283525381704248146771388804827153878735636648875064405858232245480501756932832680711189343496441548021053426445799131200696415193435172429985229382418083365836718648415993878492583640371754427468884171363682394839920262357213205908528482862476361102167956010685939629221433259237932317571475712368466006714211880934478834726151995743826530429173030760598043491820068333438670161526652351146060459008486896139160418368544933279248015755775663839784625658952509748594540057889456958007903687364769873302059037510716164727844720950711644177537894122361165099931115467457539835157176700902968290874014659454134078505498012772413809352217875986003702605120893264000014938041519497163102993509843824786882413373393956327588271389619733739606946718106011144631415083484003132830610827357091675163027385638424860150264960436778523728036428070494398343989530097289653375270372506424879881760339487193061969653249890381853276757878604378863109145198137381809258597829428946068402686684016348487818954451847200731368939379542632308816681806838554647062917934280259339934266826662225630608346927293757424404261780498066443859359373917487108769620879629839525082333448280406053120971538135018916225279311615235142587043262504809602091120505376324867698399581161167584114233665378658176482886130109102771693974295370357413202673604769116153392561498921717193348849264866158417510260189202315504789463176129059014419398556172086414852212987611165018966889744413413929628879975737966043358007383118468631072016647041793940148819370985989956209041153918917970481513534534064182488105456757056707232699367427528328459833182670270538123271116561234328309765363987656533256946740761654618368442651580298447282125788240563027020012787900353796685148216909924936125492646118213964473407358001673086392499705873131119175719615565434692589652123316951702005325118951790026279877451086357801423991279089814920304243670715145883094581195658626246226486805133150964430191550344765485909959521599592590456384118340631307338270063281791589315203561739180568797355912946140896506308703636687616072014220651574142687520334543258037737476338443362011570467616507038177089789865269361245510687338955683656145895438281420282901568647305206565813688220995000844948010965517045213099110829023535044797472463399235180035288125719166998455604956074504149610652113218566495110802350469210243481616340622513322909854951121146762773605460252863842481349953899389038685703054522841244677486718009047722453087195938291739143838559060784776079469516951745718303830283359267562500747038148650529032828728276250310811702221890463341093916078215497882157916635513485948617253293175701375378501777431004225969708101160117341757203383285000714879922068089082690824418665493486557647180397341675261889423377934377944913409294760635164501159155933377246768772818123279687969172365778017002637755404146927705716579470796400864975376674332143251835922102495487130760340239309639941863445723756503653486211327329308224593955623430310034369512165390694629302172468023363852808803443642490699331386241474357363714920816725301883379377326669006711708308832758412198516556197032256571513705445556421517429701682124952537272351620849712385230805470250079365660084470196095091849629954573946007386494007768704672445473951528187477981455916165242527699565043201863047682795953856644205978998189073837016976874406844603288056431738510300484080296035752251688404616619760444010345861534560788927542248820928257666356489911970672771024505982514329867756194509040923920152283393443795225930744001221542983700915782858838046889636795187065506787825143473381053312747157284486154246531836096779806670011921252156092663957594820083183837281929590921278454096369134888344111572383380525420161353366023303670174227898610516489836795659806534287151822032289660618833999761934358668591658154635117531181009939884636604348562903716076988385621066571774458315352542547123946227668774943715883455755709670522744498347912370387434975374037503937946300527541050922030644116928182299526534999291110207715874860120580377721432564011344193805876406794128069717844870926971737063173194684421815770407306433353179096267235155721588272986802669658997207676588851041336761216538371424497820150702901269283324373337366612360902184633484973814904958675301983750749331125737749248078592874077657864792855456881387576985086789880568990797874482869571003314546096004111296510093029467534225904580989171920084193384581107394959306563957150985524591078252932019294176941063708038563776960322681509771131025415825798483007753688373814215995028574807736407334139342355486274724637773318320737978649600607987244298185837751619664829978404531784750796498822161861045148534764173275823168009218855738517254646922995759172421909446654966784031493668649142391389003454595857389957546434450966909163558164210083965834659198931906160373380826133166289437903165054621371987139728628518244084921342748129033531242878841461391517847951415931047825407495998294949714980159527724132916294352767450716141633817210951760093153673522569693093656625448926150744551482150965542155760447587012421750748994503492972706239059204631115646338116850143983453409719648869207457638992589520396227003918634039350047661928306801322454359869694231394417891200745691238686915981618008889648838100384927154504533722182695839068552641315456499845146936825279635296371204925877019242525289289753240927194864989616378262682929970874370228783897698564036259984298513914926031523973289564127217367230189946393186211247119696018537251737251731680945029642836441744293368531169578790939628158540471839775962921965142835889542787558089812199069362687302989234339440736535886531337659508422459092187979064440200369712869278056798797781316632087769513540822226327936475298235221878594877338998719263641079291823264234889323373204109867634689016412947173805682006860862358210848343510451887131552399786970534755116178861732347831434387535243668868648122775190220497289900529158974696797039220208062587154911080085792239690027414398795284691392027436050021368718556716286197479353398235087480699750473353479090347193114685807349109992342300800752997022438069170763950614686445155384893069898376713857502600986306340183230429033763789859973330796480036078793369941288850751467620236773185114257168481520669026559860208701826939960578473000581456698432020652398416887521588626605326765608512948096092704416771069517581757227421973823226810147613863174247073144732549320293411840025503140649660964766838233176801145825668505868213490940592957184324447369127289978591612144420011436711313403348775811111853687702190595347722925675363951226235575942351203039077399229380293210151613648325818861940171392503348239291516485687315885156735577293081519372293050841996079853053854692610544211896092483676524940054196059306044503017127213672030226467233610807535385466073835583277488194788354448016246167398846762855347242172514430493261771963588162714537607081747327083641044548416565195264742851407746521332307828757240533101552147263115702883601299025386336902606315055700745867877881114965766899485867054588481848293506501183807110354811175634433732588955939999796899735842638062362388133387541929275829773449841786373745445469868545419334677638436033853297527101205726660452176095728925126296135865685891494165324283676861056442223899361659544473900555829283615348809870327169242464292486440333183089311205758522030669988811621186822294431750843917787426584787281774075054528132693918531472744552630969558188517127325282029660830010973597097518888348799566465477457059528547208019455427321492442333839037985486603129909010333956187479190937004493492341206670661787127576096439030601140793026831329470921519297317796024904964011050096994032427032794585056116699314835384204126281517476977306180606040145116977827372504953253431933408530434142995944082954788660588021793336973413947079963204137546515675723878340076866600024702984265996506759323631810934997335500301491416892139341685807969739080557632502386310945222603708439663916722135514656160346326929373195125409282246603252549914831869587822404908788712608928341276382015086624294143617364337015339394559707446545298910091145493547478324434398156880829790456382141166086306807620801924237385211404358473802508952275286974165151083738934395528718923951411169277335135866989875372744252028204895123584402286283535543910823178475636399989512504417135139706361237652130341992535078239602417222710713761994006654508354915329307469485435082290134111604675898655373673464574614514889904265073350180468642681204125656354319999102080837991653035803848293216232258025540334917614593701406853105137567872592946221076002324834118672185360941444249694951937484169774983574030556040261922650457596088919001564433795697477905394049393532057712643405660836264912989095369682271939477513307224652923309835947819244292184532744973919290231939222190474217561465934326016607509463386506651807888904796071117579561359691671048345103424178866948184595432552588587423219252585690856801153534062426029823280133639675937392892979965137418638230690502840836823631581396584214115726423333884627692129988397227571185495920856188742255592288279786984388873136550243918044175866702565054106954190386606048383978977570393089386291807925042748709966066935411367522569322392357443823517641340371190786956363214947359100192395251995476770750409977311527009557488637341647308126287500484522718247181940764692029024082555416837510280485509165704893771444077902450547114154156436746708696741191816588628718882903547365691335868699120777340487463337711785266733787546224103582051715436544162898441752452531153611739103981451636512606772074320453781742485937666520149602193474541093136259518786566871057085661190511865173539095841573702612216759285632368600706046481976346214964038871933182013063061026140402027079291998800380270943846194562359899550641075988318776586120592830023434055450637402110153865707270235164940160654163888887382872336117414174114513282174743317768939963032991956859129874444761416714478015504658311004121600245399549191657120974478165596346675657166497661435811713535941607940429377645433269380919498501881807477087890066491879855609895123916751299116923624773538959607840617185808396465756220755699177175882193556037155764105588702347482987827673784001472239599558328525516544740962076462438694694517746735840221643775875348168801039468461675145573318917471578865273030663575409914655626074850540612611860615895300303526075091121189308565463119584138811207686017045495253066947681488485087681517600343658954938894421792815752523886750724717807480987054616785575634143798630310803680553607497623825898525151196004605397672614050232558791117011180927103609651671260203827377247441431727470855247273994220104518167943721369037851197175766328021048958324657156343726636743870047141128219672241127386997953253020128963353574931572642380420357032354890179754955082518842844400891008164233692465441822880851681571320374305263589856060333291576330182714127365886676165321021762002994208263647056139651603550024741299520882950787014056689005079632917865084560453059292673855754975766065316942161269533732779973352128985684099362559591544012984765701074868832660229886347403919212907611739180258434280715630092276618264180274411798738012249833173548653137973171588091042104108698989626337495756328210478670845466305514408750436205155306813413669270599148896963635677163213375102199789535574001157242674584745476559320762553922279854229389332155095075411637153637519574199592301360794952725549632165797897916285683898995591347040506877905027202506002858530934777414272446157847425163638071274412933524279167498593633243523948422461365865144009618802774856342336245728084314178103467165248344911501590286320251028186534936267595144189925413570437445464238714387889958781397304305724070747122034530083015361237979655287902943418268182850448159496090250446055879209105720404140574092235850429483273482119551326892576298631251954339498561983107840500288585705944787168246777697700822794227911767366995036898453361956789975532754549499299570438408628478726182420364212896596907252083245418648381593674892236430824001806033464679953463921291788229674940995041484680342330252582798441996957128084138657387113627471965941267112962054453655660908959671258395920526671080753455883869068664194881099635162337322974549841192795176589818657783065726250691197475484853585725411301556623128351274261690738585437436063018962042481106081185340617810850806096141749485049543375574974633748466277324768286910316282431858592907472898149131671552535688721381035614517601803717173671855133160322632396893438079654242413871523566660645902233937149784237471269683118526288653749717249480000905600937291642117535364607680301027351865844244732691292537266778694948323399987245739376034878270853675869297021455982958843520171120548895520213213342998820796091264403641925560124918881696768193755914659987178731913787568805635464277245160217276812027950176626096731152835064746754977469220636114145700860970196980319316841828217996844120322054049981069788549026911098246928084820640917300311256351017769989786177626328163062511462469682436288661908585341159716442094046664404930988438042024217346451760169934677926884554595605749352522108150973128758721076655579310578663559872778493303678739143569995461361499802875279769623440820402653308969488489279671376992304066592971783526610704629246223606476084978250495153981238632897682893089454499699827913698063426373485249338485016773826598950133216008345619923050972011997134304680334497743434166998499600551327880939430827676360001091188392869291985303181515889790474224093685964880506397441097065586711882368933732313457750888885422215608610919278977693726788842646762719653951538060130252972549053054526523097570231587551509302265476167395519822124471139750800412112317761805929521266420776301640334546205112548142512429836929239954223575375641143372441577207217498827475653816183114101778923288312773623313496341186243122222275721253368020194060853527970572596440906152744035189262529380297874364550956576567634919762460669948533170814061218869673210470362374603750555295401817787769466991625422212438330295862647901243375095695046894999048574106820113066195083484045148587860707742477401074317777284160017963115152898213208819809626995544038112840378688904386610731165800918375467807742274226087452563468948559730407367666677730248827168727072109454002401396527941956318164438707719894344015548227532263721560787446749771788330341920936414362752277717972071213979672587229977630032843742637757596520524040788805441781537725811076835012277975302987324461181467351779649757799735745396236556962874798955975395509845425216999123452569352452941588474077281872270029770339806988567871635274933470016079812953309578746474138331554285104404707287019459435568168379311073087996379100634985561777137034744218211866213374812916841617178989683601450366070443997231221752742972622487539062351806067031962793671844395550043800641913758135801945063987446657374007259015695560303901030925873355328227646558738374284323209597392730971740370645654360207857998969453256265484111038139750448875893986963941977402606463519165705590017581385168940315654523893489991788136024853007838721067630847244768069684297913134041921803519017651958304212229815163107022167508525786619838373868557582557429522362536799326399961719723903815378288079980268931422817538538939654293094099997976854081124596711419714099825309222632268563789743213268076476733746152170553042584855999999313669194619032919294081617259918066627099243414657657767861980426132023782358649183988320151268113333780514893135582011622268852978187715129744542986853656213852358153451336786431047443710578215232569324756912657529077665800861408885238512690642492995452611915433737941498383581223756864089112908028555265257956280184414998032731319308837128545496389231794229811937444795042350823101897626451068151782442420335380406523884268400273080582508588985487171512496348886419698603074272593309138238989099557093532776732297844672025874046719084609447015817871946721848211771668396897232274966049244095925930451632183365429136433230852005532624440282372263119842017798507240815175195338182146105175602885033620473133122042802864937885314870817655127235892044078954415753126121523514301419084748368367425282554459718534409057244658200511688006202947374374944006068734728509242160537828686017386225089957351987826852093702383724026059754378352326023169302994851131437819734313535951108303872666464384752712650250180476826780281984336270150451032064790861061278714378292409984312244462813736587727567177685753474615127602883542069808232674292389985314988717683193284014241236995140125597036991407342203761791805952176157317796544816840449101175549651463836342225123139084563302746356074520877599159925531715574495456716097914105459723772651273777935786370526954439868639526816348416050268301837643308527272611650396534322163423482236236486140604697672287797646129870757521998923622175656769521443819201223756008755427894093325435186968162928071156639597926613671597689158102977417308042256981824215689691212009806628849278702535259035956420710817299053516415892568345991731016533198338876347821355781723490382378339239321794216528945291820898529943703889901636542679640657017485180569052470322293678865131490734754683341991366283675106966779525039540636297794832536490852384631659811421226569501594788150602004753560742222629542384028203188968894095273334655904309642613443625569961864518393173841038956291031171258255066452530652106512960423513558460276898233199124279986587111143092985448087249641188317521045589579158151152257649804585285736001259382283390954448469870396800471084048807092954678037700217474208820672164268016226688939358374013248945220837848423113742310405475421310648945345317381202118763310467258354239737523917423111698296431637363698556480274278016001959470826848120786742690638561034468665881243667599868158162576241314896046515336397345595731821005931310083359949744292708918365229221344509105516683121892271548859207237215581975863106281665016185721564070839867916933684373479685610451562812697852094180736693316382147100416514117483457441476202520785589851379334425938349144973243099020149681896094074555887423446024447811263188192678196001803460294029547976490136396717102262508096036596970693918115425878897990225159206824165720724556734678449903855714403024947726823782647554586667877325781318341686557442454651529092704109705610135858838321489120511182224224281839414650708765206826294324898105066714768611942165229810935746749414449031826429005155631226686446078046871454583463539998069334364947281951022878856246530608791811992206724639340303354887377044227051699267572196589771522611500913926863455879415809477360898494706628527006234965575530095569420648578989694882404066025929931506365430525905106905939677250439463854390637694456942492897065211249795524171725827270850905972077443780364449869684133476338780453161978930500286061780682929009422327737093979568994817436693364150189868088416607274389024804739426075606884090489072946906018984371115289466352901356720668186450105514734234964136159386715148084010618867335024016147782752307034255845579109004682390984260231074394882742233749666210437680418870968555677102972056131371794327000822597324123510972665912994869774840124903079765267186954091206286476086643289120464328593326056891485526403990318650974376924198563931013575487114866470618757710273329628849442752125469555847535003992761590538002954155503648025124252641786249687159209820050946286841272939968346914573334026959536291755505253815864848370874212552440699112422940263954057885391428665603711563770001307231858086315414531327833085248523805889823697201388432996247149824611942090673351561913223995151529460701854047208329651473803219469708609386874098601989418673027906845022473403394476418980466417680969253445620903867003950112361027163971932724635014324988962298364779354113850270793915863823397068200370680630073419175544397470272456092474403911474604498511096753285801833526912279671857859776478875291000212425982544134719118611970154517339449923909499435732256890510229680331275261119442736710296201144169435111519329782666940975730802132547005106834330970035661463862580928305743991169140678134753362525800429974843866177171804169765418459229551097314917613961097698109435627550242466127098174043636615154613864263347510343866136719522389126811073857279609574214956748489967802100445277247494054917340025978321982413093999724129376521468472155812915409013073422586587239735560622135005266669378356384996210903395584200552444798013049140120443891165913386350512866545370506844844623546840100303721018588414427314428527368348870439155241927522371564024149493664306617306886077708626696211638861762557402290316280054922189690393741648455821245879311394263839486068746586701397863072463125728413933107292171831465004486485082436057260455782147900527861471857557121474667294253277812132027069971655420263590019364079425781670845860943312782706456708515730938613082046541429433433452553571937145090329883118751468539657809336046987130182135489653373398042711165636870474046222331494552215693089627814353578095040765214804045801035750742521371392035256148111776236565738374836726976128000512574948007752740858039178851031033254785472623601494460224706000658258834618002860921991307827663847823148046738326192469085840999988971423300035387152637169038950025096961815051201482481569242392052639778140381172995642534609651519849239455771096713700270058195190848361520659715017515748137339698914802437252483803705111960028289804646985226843551082084557017783302252085826712204301390477024447673682260180615023355591200476063956236295028399283703077816776360149464220706758624191644367694904043614759297691318778757820628766950554269283451714077102297453039298532160795214694120313817271070445641819005748923481394073182611872312794116470295047759981335059354839250611384505801200689497624751887176386957592210426829015232713350421690434093311074706138297388945486553153739933898307718310077438873488940419035132787065516480953180853708774004435263057952428656163531640165649674451967832555824720929230824916902605187399068164555433617661871978378583733851415339834964398115408635275464535412024421140163912432820303471021905841494959798764731894214960534793668606455470169194985240212467523498413443460492757381052728090056403418255907481615610290239215471023425823654865019201643641454014676579076691812825152934971063832409186190250180371515937081301993987832677118165599581789473151950421671022355017017686484190030156263553351119444061754557822766961037739296995291084440564650726246294596475832219203168592553631469047237494822393468418271728983611947531995086432102873039021543240438766918116965754165410649752497580176830385656722468522802077239529351332656476990858178764096000186675977497011474679747421481841403090254469555293100244642104201570128030656406856839827581718982970910286649486914708796930084476101626289528023584109449500064893275000332170160596889653294582750210091351391241082067357011752177800594207173347867361059348932284928637657592535732140988547437789045197206967774938917064310432286831475809461180908711134484508173124258481631853718722722488518197423127305907519415077930935176481209669550903042805193853124814277535910291810382480818428464963298336909352814427404340055043060324196503074300387534099665969235563237899565462786667701251538590566829061738897344144998028412395028070834166952895797624933156373173585702889432230576051531374104698937115151734979669576923165380414939327931460107724670245044654852850525657322721840454601715672160886308459120969761572564101301146930164904785347652122128177389203249321516395404941382656610027762668095827073095756785846450667929324141613695151204868867562408322626102232515261158470062572523828428935247939060489949131311530610310948517488535434993715474074176345697146499617671547486220547517477166398995687628239885382179355608439656592850600457665776073511236039855063966084323805512371184350479715680297794248210898379536505618362276407598486026101793198036807727716833543713521627152933104467988577676826840959532579991777547377824854633055348728868989879111096882896939570458897680832371272528410482475514417983396035226739707939356690347560583633174256119195469215183485571891937056362355758303497992481164183689583769851728659841906035821803696242310363082171789254396545936532742894257208617070305279187514155829578974235096941980933229356113798796173209666591835826620519951111933547571182414293435097933032529069594955391966393978677154194677402380147015556912264405392862180247579681699817425595972438915772498541853268365190488927061967849336747798998531334374488841870017660415046939424646691229093349320773673905496827754971205749583516152386262479307375233608965798479859174387251898496757066204992944832988783110309865409671292598216803413158003299348179988255605807763040622735187772490038344434456395233789373741508988421748938482343781267646309789903207591968465789183930173389772533233548151547730931554206523065159667446323962788042072914287941085503325405234843323161351016054525438771107097844406415460133447376183572595973075738228090480439294777251541450177455624354754890384594392919632849895820449180379255260770033635854889117312666145761590449712876710579604036802762820012999108899629970254252092383412761709035753331084164028907576586805596223567706030107790869143846983549170674277059686797737803723723849598090903927267627631299687094951581096637486635068320452004233116000718666750116419459247569781324223306746260910040194133715780844152949049042976993899804743296852510441328427219593608933709086198252391609336309183621581223853270136934850517573493107598801750771190384361520128243897459045323047204173935518741333694824420283140414462644501194996303734114941277788379920485042926373458122982413101650333663770770634634878703738203255520363065980551314056903856200506889305407498807685192429620884859438059769524271597196953369853419273369187870583732182822572325935345243396647575495128313873391463341167423702787996896682266196764259761592123723822307942058229551024206177386536211802421334047287649600740319903243250224945259030266424386405225256116866213824230271592858346360716679335431055594437698909684539060772527645657921010120273965835304430533519845586706412099788258708544082896676640446335388707772667522653790766538703835966056769546943748739257074904991104896126246221116552236723826310223598814571873910797676215375789397939595731894742570421402279054417996672900484289491883649459909700104100225224127648064614393723277663689758793950190511435017390937232729023379179556591789003148756555053216047516100788885595296976597878335387215203505145332517450701904659409408035086629869802381933321244458951692987205507780047391190965653777521270675817308918305809070213152936815244800713800328595657068995798689499602280056725467196734256650908611928322819647891339223712322387095311531542566409558625715138694792179371519263647646114561452098339147345815519550612223189399299500504962272167079111132234397184790160385566678038827754564502710368883284179698470308107332409338652780982826747101442987716036732335861229092525205776186500516547288697935282015179398636126289458998494656921765805299338311098704526705832737512942956214385727639080970731429195006986131717618466726563119854760841911515340851122707748319174355294988941704545002398525985837195592319945999953337465588970449324654595544729839711738546557030886443432995460278722432873556598209859102240663322540299922232923330795690379065375139630174268930075707286656191407874224516036436371252919525341736017272398737823572578504654969450282373201464908244461653557984514574592650730838711641092822494522171452454423015007010380745718397129381421990988934758066312890159099738500898145473690100721413871058150540300709112770010162320205322553206994888210486592112646875194222994228849835656845650536426749798577196634051727993621214230456805450938056305743462703718989044552704288218543158316179185581641428456590101390545726069328757850851382524561822609310543212675179187061046739876549827239450430500174167950058697055985119548056684192094241128275655952279025868413315554930612260750592448963959151693564226569115945281016802545684293969582787624521206831131669633125442579941348853789956220542185656506782296916650696543688448107178507387731798958897157208608064017847365609420382803560790160907726708333973750907828913283052315863979483401475236982720395832428892466591775348573523454442597921665172074053850727149396859268332380614123204367609262807962243181573232207192139710802971670296861890919540022699349778464750355022119655448930323326935514119415550690418960125791771233157829630948045071812982097993857403771777181186352335598935937508339057210127176901183187741023449013678976534637749332182372017130941588112498022587972514203817598274219608562499360987480492188613172548447728656515401450191913951773222517744869592996065174784041459270859987396946090147016126580122448162541045956686971214364652554732237303221871730667732449429398883009058908358084832477728199135993045581763865822993405880218608079392498537113914557058459386705647407702578893110738707764940997128478350289301913215049096942179113974476224636108867767630798775306748652060255484390816126819204870520999646251098793566196962537545899656684547221954736671405952708280675666686299483162825757969318164948521148785182877912854308024627201743511540128139844281371465760470768905760360498035350790207232406636891694351638709576583146603617362412591263195709050282316046031350166070317888806210880881973730062636586252220170712917150097157022903672201868100091946223412485369420603848548344926388798161221952791599743635420486856874313654248970815320430869406816844501722943060221081471657752149438591095960204185746806888859002163883713141701355618424772852370097254262444273713790826346066296434471123206118984243470821140592814542190766424924608460842070405738991624097661495459513997107539715841920364280631502077330744270931345039205204237226269597972457080991273287004033052365488706692932095621834132890385716468344604171159962696058593012153566543426816284801224214399212460458344665223629899389951082672701265977862640748239921898487157042745816183441532496641506984515989171200464192774646643055350077903289474893322508976212536622186355948796520255404688774334421658692053172779431488285031982351588060423040813042333653685684243632248640641383118347617765216530388247932944492021586109523951199072799976758834821382493140300018645054881224649763795428542611304116533935034028736158762171772844024104724109909717249255251894276156614977657882608512413326807352088761818975212208312370551845349108062914685465651704977114943766142160482217399863424280895364819589589106630539509696640408656189607403470476322692217685439996159834295887625605828081408244617791090449956720264466378891630692511043467175619152466337491753915443112382087939103758891762507804307177907443000765044233802542655271623930642465041341286592891698276872361608075664405982874769008939939671646926700708707068904609950974248573833272129726775158834142666542215806401259558442754219162867609841264660420796544859185304990149749572327967933169842087667070829472796991246329377639672790294346069702056491968452377848109556140219060087063612621722835902458941990832051862060372611750179361930001334298600459307489762188674861251501304104174010642806195817073095616848023375138886087038680818810535117370917255584024104173707439642638622705234179832531348188095302187044734783095159419079140684574481827467873578878821328188693260462696098296840625230388209652610138929387736611250757515361039117850126646427082790079041143435362359466371140324524420631185082756871039621156249655921958659960024551285636102876081525747327487726082634822153438525876300239295383574761710029315737953184744146529256536722384088070402514008916259613036438065089098415624012267144872038864454979685619628735272847151193315837716478937474195654656418229313566877610679988881215636645019222332579817703001695356127217419021063562786997233267564530116274633399189331495164816859584763364781779542038093782824992505073532431194727641842264262629371627341780212120505389961768834621863797941058471750339941807291935734764949234039208086147219603271566459796743253352011016597488865883968030608403421241915266973989641870914279925086629661096307300842819343163871885750440318333377243143390346547820597793095007166027903874748024064757500733323579848108655463287997051592985642464750463100243477607371364375957333217472670540608875369061603645536921694039123827134196844775711876049582563759758802167751023977755760713277188148876817334358557833651457258644812708148499316215821143143255188245506858028136200320527923122533114900904565958636067905314486205802335929714470875276808508907862893336000596891350188837651294998766382887845979724157537403451347815975915377225411491143813787076527267822587521165222477178211612354468032369374838204588453796410317745386466084747370575539706464919759316404673077004630026591623803479205687913238239658648071701486877432443244292168113202497071226243751448351751517921661593208822246071330118761112816805641668196959400229537970599287573615485114921589874931825112186520108388700298619052480472219829540302850026032012488371099826109822712180877314596873178032421128627732839281617144128294257184161389534441813111272503765580569725319698576484123251720228221142427227999888525876670239998778497251142729759636541123452984015401933048183105079845978069439676368400672914686771702117451167421095394417885887551302674529347919466754473191379187204663134276007894289953513181547951685889300338090661289014801050842671006125052951985929993782003560445656998896610507709783508983105229891929224320245872924946303285964133247890115646633223692847429485392256164446851641565294154184521803082667588948321571540765400141997155137020607389342902457616691742544129433654388576009509359574309906447169694175052624561191245573816855241102717144966326405761716247966801359796282021320271080012686390965234739836035438818189771332588113607451886191503886756363164739533492901913843334156361842937107694952956402948193331060617569409518861868074547152061599209979774990407215648205587446721862446273005350077781183826929762629402267405624271406786604142958921455837614474565016307220423453167588485269428253107288837211689984812373406317415234852889068379827606655013004132612176058233995527297496627904800710398899252923561230413958095069338873083385059669281973931489959338961793361167088467653868059085586057184564009312138243096634379542838790280512748086006434667842912586319936603117871664057580794323823819807999175392981313526026260969944192497175923807419497002621932583604569835640751511459192891207653356003722094520963743053831922300597071775123231446265472142682252442438377272781762077255997413432917793730260339057502744810736015266664270671131144100390077297360663768164523267113949804283036143197996704392917089877225256431305373049354992686514875729374177638741742862551523865845260423102080507852149557659932035645923643687805247893452329953661540528265169590393363120968994362967489779343801162928198594750129965443078509780603797731359576248823200451695264047067810519861105898432738366048955910644309435810786056417235221554003630861654783322127611686396380899798862801500910326930448221954493699869124752246212710548120962045950782482669003395066334229150925724739902966124975360902049458061457309352166039408863893554786991227895717517896258360856599987802285636781568427163230287836213051533973686347820034721535931180428333034730967529994090863118002579784632001321409636309062665685269470232846345764492472656583370104649583418354642919895738069617809248017172623601702505044054146541405087646043612992642724319915018776107245956355387553790309735418098597857465835236775232911457374424562542526575354978788133487719885606345616628743264451800514557851889674591770988489102296902141365606867747642026351700288999193525523902078241367389706818786902490777632977664507145178674479038301770647720168533671207819056698672381110793868487836971639060371246708516690843296965095065496445830048266984656291824275739081509373063454118554354514717665990048009451249159089308852027552453340990038675940428386682985909323526444774552185224750928058551196408314626802475420685641783883551311120741069939748498581447873077214328370838810837827702569033931054645923345680181247690010663442771671684838883836736104712050309248555247564798537211954590511547410584879047240566427199572359397864054936168624777242311882781918880505743458955541380096869868195939495456534316150118341777426387468005393862926364446365117555828779591216124591228701379261913623123004492159444471941196316595830008195641313951426035520214144715461273868491880898533630961545729765908376004355062877868489944098059527033216954315066282153819075474951014858153247780998935983931073997368110062547535653999629002203471307755667260778603318816418239719375827397028241282216437325081014589297588106144133436941020212839420080392339342997610424913519820350661100452108066841683107987609844939631884205596890953593690345560129511112247513705585724836238730412667002660934944053655602334634168974382558877215145325197811268624588673998117799917665870607808818305925893733666739573273603341234158460320178935664861630522568555688005838310882530833066001008318669567642163047060989363898927626480791846957291606786125606827526465179715579669607545543937915935437999395124567529457600743769158351477180848923391055204223879258016739332888489916658886318568488892114439188381269511902757405508895520820530457228931216800403616102234563065917054177333623271403548624995990469956531044285612841798610786372804800700485695985335965085868411682426045650588149596148967244742477320837148484466455758026386468928777066781380224565802088797456679133312744615870198222017410843700687508480065841034432034748570628560049666067847719648153200405093242467068921252908784840789575519170574409264407938626688587077427721005241371006297994679935134767593049031137206704213080620479923028146019097888840897032093380636852084089061905254859188628339297778617063195442088376239884743614708368441303779187965327781196820424077476266843979066836848395490126162273406613117687833415611660468484433663947202828385143089348000401982882226633072723891892024735178078673592568823914835358804842637148849600539332763027505626494243738310022793304503112319299526620224093810686610341627345094209233910049257431037589315469745044009620041738117634902242483472480294179503613748665227678907677317304583833437316108698813822416621255334183598831730903373852719522869930162118031847056031174354157751438120189435797471342997662406180919405834987758289157229749225645293956774195609473192984419892076031791291087688248444339633458136007636488838375379058677646225985190990172790541584367965501849531665838984248717845971563894406019684936170990204657023078057873943779742277657432481433069631953367663917830615251648777632920411058981191034932290993006769298511700744667967820687913057732794389601504585137339499768946599326476482508007441216808300863524889184377778517125877743364519629981111805880852506707286279237425034310567051515812849701840014848838326442930447104932212608036730506332540214788128769706487156325523643051612960452518826826366638748681454354471816384904041040232321058311807041670871180635189600857976423062488163805909518269462379933100031009860743644092890793667031489651757098454076052454336047142276321432144235339106839398968066314375728160213631065446684032402599689573930916790580799738589471856285280749612082510053064633980346870364299739548332792432186287898575594372338830171925097899163555769043831522876785634474632319572715888764298108682429890478192345709062613638192946728904307900645730239248772889292666215504745353043153507763686131853893450024737900661955767715605013988254299587239632270378080506376028588131394837267359152327546406981085893018684102980975414707568329851006393009634166908821095201004053752265872338689285500881038136317710781179869681245346594242414003458230812161041962505608675513746317630885484731403800657004733108914438634814117154091997171131856657036887142897436409243852377194876268499621816074821488011117728505783618606334942894635650720513663536418990751471634209501667243905689107812139870108655596717252491805699443652133991394562514960532543418099788588720041542360799211479057176918207752547736867428699171199563696372459109625341228799743223636767521116923887779367300898063455819815167666735027555923263570775435241817730433399701420114602688324452685932922784601619528895345773461322246971983244971848053505804065212017903321582433404329691330512387722184450000387417009086488173312925818754314548215717448298192827539998340748229670925694683276383252294016728000515785244801560026709159691419668995123566853959966735725928751585447302887213496337810962006840110379454660422801867917036917802024086284978522430085784212731747097166820026088840094489621759840278800697270030404923426290256767545006422891621259337024722534200551958452021984097947489809701550296918085496367132808847833882908294947918590494090252863005037844359224216457329862493329856009607809653399951321586088712422781999696402763296838109991352429587997128600060786066560294855858458145096518460508664019116312279480126810916587493754221356797772806850402941040821299406425305867114427726358527626940128608042105904312475899212718740809821160811169126487839398966437863076867783838362877132511416994506254676320215895285981879991736071616208351436890796645735403002024712223212319177930335452714933083986313682453458389982242733840848505038641215416423148988406772172359274205231942167395408390677212829286331992075177084876525529426119390162594670525242015273850431376660652943455996646309243278415911193308717767525801263835661270389548686993446299636788361540873001968689819188882540688809058991266876051026269666533243063358375735314728240304040181396616415410863505209342111534627538615463662314664483496106544464194656098945877481519515605215651980576826508132400948356026011224774712374014202286925411957610542833347202085569184374992207416606048918668295253770026368872178468545234627592037198685902251311856937209950675919046665143041189943449603468867168842103373896305111978249774148288361229462670587783940016891006660646838569119886752193184464882496583887314177440786408308429288879949574742323580506516373165927158797362843565507087559706667742891065119521649216560418490339292247589896228005688069491153869456091204131845307917709511285946937939108448210557582299588789998233991345053765128547910936199792688790673120674577107312149010478268896117157912655974234618708277536048656486942661649846154972586071774299682039508941609398598353807561264675869188856704034449800733414757744196208861402944301566061528337470362864062165599603382461935737956998861813402830109785790567696895524618800425058594901564034098737880414039999324667236529700862694778065293788284405825628130134989678574294092311149092955760613182395375164943050780997656367385728309415574894231399294958553199828625977971305826021372705033607552185731839422232719346926110527161497369753369431833279227832851476608151645787073543936515267543395411216728037517296719243406571540796807424044932109954581383142302884072205386374958060781883258864799668074579509198261712985894094546987145100832254365777804221506768972231706855879723092841277076718829889739546903885774215232706223751362459344012412889949745284679451570031227270973476809986700419041793218636325817666181410844768595419695064213437458918496533128157403790987074350749098534202389142988573450148317525291291083986638531967011771703094983457669339493281719383558304530082686806585896383247286851675879791938110526753343428612569095513837497404058297946432215817041853031959049058247994344945082116874050124145172479812688312263414006838190113749983231798786257955006000785984258618983336288232005848939445706780733873284892161643015229340678850771293501177127163035323586711151631996814318478191851345143280905850765945278837076995340198243139218200906708757137747953591592016027463321986472938692090487857669418306520088387264081975024459141901139897812091294107244650062563361132881298420228829496033295180017387192777492307021265765838909717758744403221304739255797040387909475028502786222737846365148127679933932276050877872181895028264900000156640396492377045404266146288032737025637622348322404144341648971033168611120550922203975504694011318491511123770238510141214058012771171835899765565595775876115723904886359865105248154473497517034886251496342899174629338655880555224080430032783206282821569207814945180986873482493166775098693875338345115799946758249214808629324680776097370371526733954239447583595054157229274346494259846769154670503280020696700363008535186184317248234620568107465369837593522032052156415434826522232047595625240945010314059536050063426734581194660462031197706215058497663268512762940015202075565197158327780276548523395793481145991112788703522232559156132853888094093518289462002434510984137134007766597423782527656044740113314889704511003479587478048594300756824657773533214923788961791894089616419929216347259658247815745397444488850178647784910744364594734487886555873786239939802139391230212061384983718158447886974372458480965996171753318935280099408487477341020351133279125788475001494263983178423326149541676255809438319125978688210426370067574656597540782222059142074272520670716186988985768678038841008480845256908179314467674258095203654307311331873504204372512455294704197426632526172566508551100792349760792800171987993043738012437448224736297468468323091485012178222500708720100205997626314070358911210398511770618455481041342289320910773792918366053927101336881651837113274169951976125893667362123882317861194927170989818748452661120409124886704115562620000293327900351500036505352039138024687964990859901497566069067399366185036891455600455974590333812785489479856254488001854104543027138209097462861501949511080640136530062072230463702715352821303864768551752902065030322602089365510572638020445006813144583821344496870954163854596611520411500973705136626059125975511318828529420791523474618919411167828742418899958113218198614498865746608950438561295630810371753789077703744854821717737215163004327056271118888244298573993370956030536189643987106632957108261404265395428107511071643298333536970830558387498856887560171798510530682664719372193537125196227787739527690914852612292673330319767971217685368320610748064759232178455694282245248663999832884404799900087470258841888608489144753936969024507658935887592190833799769721993616196264661365906348780879495486460263049454846425311456812310502863507159995451625265713249757947210412368647852236249736579251374870092136720878686106265032774156301264999607686719060989922394235528465429677252615229680493623707452196241044695807372906301011402915241001013490421874358338553599954629992189114613960225734610006980696899616483320255920910973200971688475941941285516076744921568850215726897361833692369541565766134584632865444304016531642864389060530600117905526778213414480866687359022748460285270000773723846581967118596624476361800268961111558916259435996401758231515449672429564385693289340016439160876217435273958286628736846004671800794097971754104422342915357550743514103664994081057447195220802001089383704978070843540889066255534241151453385111113858635299206030708645238703025448343934973577337700358274270806025862539247536291404223834421564303129968123437174993482513309697024273862053804358567603867750996249574508540144646729609515625481723860207692286691347612495274451978694094250866759716859449456021425096026709490823749645611395983468228585264848282410489151970183360435398254182339499315659984243075928352609264454081952938564494795760465186533867110102975870367481566555240144797331600907718585716893535758623733891452923265285026419309393793228861347650637989167044297653848215740649246011408081725651313641773190820006412880465727336101604692017002290826495615529445325892082701326820621897913994508600386950117008649372258842004745293610324623968839328545767100954834586397249272161572412394341402552667168622653425515763134091723042280673461577115145403276753283995956198652922036204639359385216603387448733393424613548638614217702687657193087341000922943474906646510585197324463062775482807585175202229803528002985298258269345097809932221183706716942826121730349499739386119603285106233599050015447252711979462700609473890824392013613127354221062581061655691562398330788026031032448267577037642158288436595398851637306790221276695976643974611936888456960589660956215645398677875823378584100282305159811565009986942491822857021628337628906943208850114297235370543409209243585618440570647488358312163826414954797368859837839033200727152670751901094227389352323429754952413597803005845770112123724487803514623195584058114963376439601121086270814425588660336550570930256689087424843281667843003874868948673366029107873410574994935784760830559339559460588765981509344617990345977071786768854268448675162766506743154588471238314795229060914221557775611667771857652621128031501235235756804886252073887619185477246993435661191689313168876312752520338890778571363800432576429920517950122041987227556227043031742699550054062800405057917665031847619864561570484595089907210183973935417504211360123386366759252072895676065485912178421668762438823293178667142609906947631876430550566681794186401475519296587485935803902253438021700850359378689413938973406513659063902643414045966478047942411971168732101783193652283872820149338518940974742941434176172278877435433093357452569837751414959338856844259443519669037556059368350884608409303027033752905323482702740383557568590656468136383455969128962182709726274746136110415339888280586807519068389846351157110175251871227667808667149776606851011230492028206812375228037322970378845914058475992410051699143055301093878423387166633386493761233562188746287525026322777613735746779261618406790742179050727337546193623430141826667299199100639215553890287941803218050486671680633708003218954119305399361640450056901469027201980929857944587747650677496102478877950928020513938233220224552194774986814591913145462112837717259127839952457305151087835846750702296331977971385152743665321434738933931179841564557522797276769398446854561873184238164467965171939503777259475509600298754892931966458705699062693372331044110820517013552814902881378502838462302953862293461689112374950201237047576257466634079058241191027363227159345340148563644818488830616117541051370260782946993761981535732122574208454459569162175993722022856139637189001483965388524946982660045842910750094715513594303666362141032025803456744985443812980495458609068769851377767001414108542895920138062680312092690593149642525020361708394759818053558495534610938125069621184812938885072462211537962698835372774478815462965190996351420456763509674259301245030602024379061300944534306715117058700683135611415344638236526112132047618857235874938942841337337240220379894211224855522094440224253797799097999513808933428746711136503886130597595461342247183014395880203779870050964625590699781970201210053790468868264416315068765917592017645116977737955374796219526506661618114943236308793027722502744920586779759923679668003797888251796189542114384909504154765553524138212652574477425633455888988371890807664644616490313242383002966220473213875404898247879554763007509315861871634952704475164654433574402829071875628729435388151562871997714515439197070216819780121286351003177018035919665859748342149162549208797724028085179131826921406818043918457398349231111810700459609707593754911767345892843823205643873748561423004485464153189126922817092525690812784992927405879355160822331657615982176385370098728242404455826442245233715609614185143565788710755780041295876955521927102491378704896998301829071026114483053514699813151617037770983454559850621859674672072506339268025137573171111293848507861617177847493998502200773721205860011129415481561086880190083410361729540679064848982901146456604974441198642672089423123992914473959512717831958493283103270274492576888473696378615088673376876419381211532363810120785815193087549562282747166679907917643977096159867438107991494197368095389456839006085871718758561663870082544859120458058623436085529252980075360768045083350873999525687486307154977518581833711837527716410328156657593148228742666005553913542476305958537999574326333079407235133988340044114572333109520686051535573449203450644028162363713943735531430974068473198655777732408300179696156613275824813451348119929420030110334946263672357426346723748664560141340004067765792780067315694283768516792680292757853309000333879531787093952385376606914109188134549069725387794391041321751582125346564356863067388841092746777003307539154469325672033728487773741470547791906244314106224059725284601298661706411833767535798766366649429996987284260940688422598786685136952596721571367977565860727404000664484723076567499358255590517827180843674646350797289030703368655579278882629466846547381200562201415199705444203717106287397978144951011033341663138604793642530637301163682765030452624576932199182883085852303572424556014188374484550434408735146790537836581446444964005848600183732729918710095031351681827023110149011735451146698947885116494520810046491546678664858243249717956548357760866022740818224421945347090961811398869473003507233219362437678562896447707562966004773480981363887611518920785064962959886805364457267831182421633646166209646558930303867009704159999626993117582607666078686878981703657420964458234370343490979208108685027136743871827497503355773388527938667972337507383508443021716935503636332740316075805840707681551152489304613543793142091151638712053255244981162998934518549741624081470221378819418724913668369786515547045469384197051043821024247661850648021951017228689888569368168244671718461406901603693224507672025754648520284637796289503462570728439715835888493204982646357864974010773782942679356174389231266254516457859471434184556786157936733769254290406435422590100104949516501169991779697369844456732442742866407881095119189346574171633485143749942284300611451508605258728241634806538514145036827770200493666729115114816490470564687891180910192378478312830022176561615389319360446834937461301645119689258076756307170061572181673066570328754797306414662127564513606338027132216042329042180450343172350007578706573016972407894150734922463550676357867242790834429956328994741567969732861216094441139348826865843380270772153756774569340155577752731807857656851445650579304244373717991093994955831416033928032258316147004750898164785212194998457038601619579361422122762332850309770274853900273862226625559358947801461045044470277076161800356552001240064128062538367878337487146769949421193612541958986583741181678843091433924512693711975424202876918108719645735314345814383678430780117568932183244487988161051311723100212046417252594968696672327446611686706483676468080979142161053142693282849807759956436776977923854281253104374454958796404153381520053962506838141745650560550278950194618492823937547645046940680280559762097892360681640782105639690549011798139315714196800932407446517095994394180217500560334075102099006004864190010810840000643491614397196189513734419611618493904129351427345989883167691124167454822310807935022936816630639960029509520333046407451113782399917412074657633549201507468835325461779163211247442636410325182914507823167262304589656339470653296465078270965458712825263178611090564047291962666687719105728354218651623657754646113199183882819485171121499990742083898573880939009418655762934523899246745622105378254506614935559324086878528104120382534774602107392415083105372096960999091240359221530680789801890112960529078736992731701648970689680683263478471309075562150594464364830577398243151483907178125877321111002221986607722236582277907706969137721051025199009296703727025057308382480056017370964245065783111537808000600296553606170376274202440367546952277734856559179644068196133545344150331116801813843129482662236629682506713653989778528124699266014583043682970630909318051819661722264753154640625411935599689872117954841118270870718409934219427459101567383889077863941454750681226955806239951478002053835994130469833730667345624919847860469315959730981961097864183143166152134619423359181103557555048691381732000975596148951094496082436683325635275012181233950745016435466905203292348459154501405288310459663745738913434518038301670862713709556674623480219733442919265204228090553042966766529760709248122043056892232453676574264372993272504643026807334596562600932454279754370529867516855660711283871483861333771702825480703627437486404348589629056998311241385228153952250830364427078362854340481394163302441824300004833467507593997272869725591362119003024098317229946667792440546252188621010176389325669614477833245119371976946604606236354750068606241471183637580732640944489916263704561936882607914292383079131517089573101908269834873802325416601066318040901507560655009912149286925228315427687590317594778104703461662515586887179179082633004965987666317752925851825012058279470451764909300891342866897049743234319570969606545969018347161405562569854717028242826690785900777430590261117050640452376568588415699782013052450591436106323587427468352439285638985875337266842559855818591269720981076426733685584562629436485677023816392691930704321965751649211279577924834296302433022697101792187064602900619925693275650169039829944748970607802626158893107882429880658639544928707481738333768285167807843293729592689782574826125564760968573416720903151263965725929215165938189855293827135169507073268207038790816733018269069498279352701549852804708869374124345735557008557730371483586069031625065741427403902809497033656297716048523709552792145270471457964801014954278801665708638732144650545516916232801743699191660807256788278876020430067696337483070618543277911496198582451533145868824557155301244172777233123865481351400454218765967711631606784056133730552683536071552263347577159185112710198256241635448482536106017910937400948175969789401472411386613298084778742940672177625867230821546077870907051026244789197441797910277235712375908884611785856682410330376037601326139974503770685979124141084228748871338829109455853008513002659144659769334342170693801468848694646769562153553845773268995697792661517410888496688908214079144230019685976772539835035701508746903568940529921531614837130998404246402238686730890159916450031314294614964480866627604869148503055008612403995690493693692859537893171281163163670880044262557648110847247240797010062032163431023761158914101659040349977423150604840131499927114918344554724467010079129984316671423215326934378608119250497708979418728602442417087626180716123438895430309801338995010915752254976351141666542862734449567600425173514464396362008026701204350605326277937265812460545456486612357355563261636722455793202983747997748534783628262209758014671427452844551583410459243829641009829941013545843061105880003215438951908023373189154180412465249466896234528939687326655879571034844962039138845989875455905809087809220774019169312258961970500156501778457832606803906016390222920393694854702394869610137024905466027548207571500801945578738079853234954107793105072370808694586366701775853649858715996724812140235304113568274378562135634532435476853226267999262087041423281161077344958196685076537346941645908156251167674000056854735114368544086573015713754985988910241754670926347677141356644414000203314907724207781838887656076120570595572883699975315224002311575155140919633059381655607599153829026040435397658699544768045683050220300928625450588716403544109987236255071860827234525230187899258858830149834771868862008377337265576308965908261741691875638835312700737886267330922480776400031261676313736092922255172814257310246009725065565386935492874641940702835635712804871433701292458855386338203960173380816205745427784020128891169780411718935931724018433423206312152259730013643698987227293304051741358946965572354967572607233850957152169125607529962030004948336980923698758285117955399041076475812874719900917177194687047349006225730636796185172210261529291357382471926016104105918433506750583063960356834912475657019032225793748182992941529345164983224661178083835322195829049367458521455277833379408696733007920528947007353227502852520911145822194996452702971394002691349315871192081331370980162225993674962104984919594091263482145343940735111295659633102690821664423672841120387415852988078244527758991352950297729125602029734033998424470280556373054707291606647821238913974803011955266999928979014646976161500186691357006048026374265882937816617109786951273080299404255056790797559523039108025720067269865911530237734274360406848451849833213197419444354729069852674145593022622757530678413905439314072965328881136284726614065138947482813981579423989716599360598974816900192658682544163172025703449461152225696430109406109729962710570712153118213122965110518429249027565636901847091182046131684453182902741718426809275438187830894954022874450781337400909137737630445298045769794758456240554743193714718398573935177094286594747294321949556214282200504705917737648982823312263375957691607489127724932994963195727551013718536024362603410863342509346799983545376811636280150362516990239158555593172527579797803319011049491385899145740944036665723903334678856775556160770363947103013390826709034793505240747217999356316261116932388196057141165494258825855696665588870599325780293180534832145284760186882902605997716184960674699997504136295334354592298811008497460686663458135508517526651132679325323010864785064900339624320880530462195072777237618375968770128433996699946512438588676897216741927348746834650492217521550772943084017248953610563801032978868975247935691876180194583852098271906186804458828177231218440791063206612221106212838790206341512990690115248752400926615030228102815870032233255283463343693242982339394527165174351845413239852335544618123835647016862650169882142273463499746210905869784882732892017576565663434666724506635185571765674802005338896023031405886416901993257838436304549309702732370890894786662943829933010429560543584775429116268987350459380144423458231170429486907165318561691404496374164223009681477849295182501749503946598059647824234152877045151820898882789865880269409136057491213584331642978956836414231186062694187695869653079870838547573055889380357064522194320819250271060391780857526076155303118778210636968699386995672995923379258264111516328336669484797668317078449587100736884350408012112574411244873859264360147784005852302302639857449554555240902588162947788627308169703720138463635674122191279768102005856857245325439027306789212033562506771726777276560946474215732496726262546382456113929901340790672918943527385169554765292630161530179884595160005030115791172831413637185129865936684481667458532784837280115547788179300169894392533084451404868536808235963616394137497645813801584264633402537301561699427802302951913796868371457121296827243494211937273980823603996023942656255260062668721195497454552875880844043763089308796446675618955667462496306301054803308358347708670432780496939686126938609561870228652023717101019621164061767515086335503331288088618811637211540860030514581005051751473598052327406861990900733755577149648685716768106132224158577372917773386685670062308903614539942054067999371535161844136353296663459254458177300326094536144705323190051471383144673980394107977980913998827562235300585676969337212421002114708700820765034502968801878476885351553271710061033386221994012251332925643461894380525637360000058947427265291591592823077193999226667175260975819414267007167092289052390786559858939027296701229668383579659133118805045947276248222990838554011301551822031228839270291423067415839412780044984523596393640355495517579751672594831755412126292800372576380627751015204309396247234213538802122987078850367484105939453788494710576526484378407038581003032540871693601452648508280823954311709712960926937917697538708468381735851796526878771664482241169939762626033985462748837108670007880875536809944210336201664472350153480628605149610873822150658708055615824902341711766002825553036939395870689315855616541754428738054952291007035706604961634206825858787460395670972525076188557450318475121686930993143072935994160079778306714920071155981196990665969000659515838586620471433345360984798780841280399077559379867834027280959895542885027204845774099725637560363432072183510348724700060035798242123195970575081780617505269543185123180290403405796219815763464166244021328111862177845158283205703474077248697128389904968212320054006315753828478211325317259725441407451095712252895283667000383783292353535820434910615665842235493492793522956638104798769840788840277670698522842005568511933415467293070747294827651259605606562171626196291433338573616785108700447566911101877378459708328418571552269864229969480383231405812226526861839831327817880466430998161428793737807031956760544040401001761885233156144787288857263367619437529725945583411827787541507043964971102995635581544931553231261752816222458180517469504421487810832356833400804483396954426962635503616762042283030029915963629459222311096861530278879159973959976112923957415664949487889449235308427770828630817178353570002884783032710039670728178193832157044687198744070138732916031424788636108348269102815771700839781112619178243031089373707402372245947939599504918348124324894337123268761895669813176572699950682380244503236854149473181040700300439658983751439670277702510970228857765160665224633956762010411572781314408763438597666174725100363524781466863752524824812250582399347794942554470145230882491019167316189302290320394083696162583888092239360559602351268489013590406030311575662565798493903854370567866102352551435227135258313260180728653776115715836542693433036382379030493812500204278625158870497143885555974875714433255274649600545752154881674147065501029745532507051409802892618213942275102043418029709999647518814442440825196148228518578388462387720533917998748100181086922835359739974513301590076519017621834747521023710238430360310403101885567036870039496751837273927389924252726921922491731462056058751629191092718320224952252129225007342651668929184613628430633505012870825360155912247694140169613401727379163641695361160817327553375982215504841592896284089011320296736564358729943064669350746362991653353649940027240299024633240271134992835970799658775048348104247395786999677626424769774824418312302928244006800429265516496405572422748568509612646187341565765688118502264379018166505700580240099579264804278532232775598434067455451281850922344358259980408453343231938518196972081997817121992399929083679715034995461943905847282388071484955674577791104606975144382393846534021446328557827992991953699720911427093553143373522159870066829322873911211110059975912445040097820909726490272091091289712579939108578490404535315337702860147417361371909555900792160305536165864227406576193939451446347608412501473172716115254047555891367127528657219556682452699014530377165571544504078270416363262302079413834344825662685883899675548428824376632105974833431641427830973300000726554424255929214009633575034084496623726675026902004355519345634509095905423094419986661996659355000462217175102352040675269938488068657183634055051216120914823804321541154643590384392783647553724673512760744741132272193666164769424164812711220747138276057288098727307263347591955407825191015865225605413994662538427745239972607605691598340709516575029408704691527622850684387363707031118817085868118642399240394564314137960298412413470784495830232858933983276112353739398005331656953509172832342840101271604765016727546391841617118849374623107242503313709452734225437291457740493899893596271430625016885549561739359335677630827805290831773682460475774921452923346255188725344431637321959067006954042350462422974820702583146258556903602817129174058681378734109602873169913759913355800019799817599469974121693704240100803838927117751495834832830896824855075288491033149392821117247499426167080084522827215138894391188179394352709576624395033392498096310434540789196511607736296266576028197938873424159292511756526652249456055613118862529845255355392957126033873231518031860628496478081604702016095215406731210834191187174137844341795288862136100483470452726757295593847119207756114234154182413781485575936068577928315134042400439343050809590289643589105366845187470550848295914268772231239612592714526035193841587611724843811578843294706101693632969500711243619962236814579057809088486107675502340155512610660804535029516285072287425316077422731994131871578503391122789174778188443631617033541338106521538385086521826019831703346224493797797045158084462943074286201121659943221574908765350265540837020810590880221989815553897968953516777946076388698460185250141525919748614281122979787134732304174159653432933692567221605457203232323685918723943706796614416874475520907391235830770705020816263250848713433173427535082873321995437192416202762112014519882415182883754356954914835313968083634586140705391264882126783309321904110958064688192553958860098480925955159464468332376623714756224802211426227330231913818514342533077152356133021968856181061805583877478241980452774955262901365761197842145436359833835226482723044401828996561537031708513980932718704362706262129493072971412561462679515172360681062378131413133588644027361003167690695456754520153944084650583624589559352977272705967299667980932025617407261194521307283058823351749129135845727428606820255119460877366486258540708269970507301911371972967680844826999113384308272670220408765846867264052877269289609147559611393857007915615850338381632671250472010590963554590767695422882179259367442005467375397153527200538656372459366803622312608351428275262107570639953018561998919980071082116267273441371582691373808500279726703614441773330881240303151846848376552323074393244221392556223127108401138894682322053049067416866061652997354615966348526954726875276040754115200581785520432723218442234687942957976882997204027671900184379788855338477944285512770604741071962072235415453915529261154399381539330563688541314140371130124909802489896960547968771111321037355748716245454416041174478734000979364168474604397310553980057158045149468064429715401669602461744719403997338994023664266498573682721364955258058036041876335777208604576810614439182112178421392382183220096185035355887225039041417760574562435408169137075568270775540923129776793218793922512793925932545827593124137598497102214513500267082152197626457009921240292587344018861082539271094855977389756055818515309547266805571713853800125242562903351341542320511370988844228790959061271987242112797567640749893832993453372263387327054873033379996193492105428413125861691277270049227813762685149627573597822507419626271044969733928319982003783381135748741200694885588170983700943239475127976599894991368266597986347514566317173096965300774300301835200925134802488134350535128661419339888956217685122777243243520652050854671715922019082684893175454115854898534862903414350739734424052690616492680737430913094321737089365822696681256688503436128909470556347365608210349458343016914167405253258034989792434116216247310656950771278555618113935186893298094829465954275435162335680423974818055796767507281486879761323262946110723712539196229236195586266664746398922244347171513284086767726792885809042855550642245636564891272245132945556952041428822264856422377813624124359378896448460754300806421600090854909482524025760458411158206270242557736858983789879789503968621228538175681289093362015440446646441459215220431974592262664629830938385252643892935138168330917073310403437959496608491559944596370566644994076068342870529167665523458833846616330919891086409116463267134820900516747026658830970953901270530469815586849628680749513688973438398641967109779036786501310076534412258697433075318245051853020944970051892441994812814633786702818293519578363695232509001044849487932706777510190164613196355692697909733199654595376447351335409442375290302858327622525465143724734633180997401706263814658550962196150708396912647929658033927982117068015268338854293469523670742420545181735848814701205123169823322292831765547658160249414566100149865869823607890756875794983037129076975640405449579382169616192597029766502930067890373132964534175089725777317546098166082229650923160170260311261806863599234594933847564252023537150802457313847431707219516056463800685499432701109351509581178186499139451788543221492813289547585870577444636569413427748362305091117251083469721795808970736437411313897613305423610776519404088899460582211754391977940594497637990978365020910514429627399243697564418585373731188024502922955983858174544989545927330532234781944420864076202914501431876937569572650622481959546801153864171902902276949498967385170535906330595366858492255052096465680123896438276162497040076638349853630521818883940483127271166562882500249186799989432927732480386448763948552049154369273056642973823331485384688450905423625915374292134519342059417203908345760772560327318852772916031126256347471498801335655162200124721526589613178080400942150092438859242072231113457863130751040993168332110005378613595786637778233108747501216465493617419758549340177993519068586983675961332183833209438085378602738779292177956978927948593974989109103172967038478762409012943636665281911130656162834043735926126243060825364306641313647106637718856874952554920066819887911021417048152600118534175717828131185885720318425395240890149127300297633265122324393642670228504793857287370449129183544162005834000343006636466217916812667935634307782628963456830780396603183268448140392261262084610840168945717819613064638553412929785912718203674136082325734956947230502798432112393261465459110411095440535979480790728196474428213806141048923941033757230799025843393741253328845742308856513854072291978622894453006991470632055809349906772794392523373280363483317248661982166056909925182343840484720651373177043160158664993551106174396191718008700689250132350360837942970047552526207284934913780450665711360161845900681065617660905039333135251527414530249419561005032218376585819246560165612747629709577108416424380879691934987363479304835986231697752905014257809279471046700934006227765759170381984455906738635463743104970840347611949277531806796242104917251214441006769890985423048477866578800782781136741233804429828843781080449744633522891225529628215365393081635882625509029571807199235151248310362230825756858356971015375655482459950213959599300001149183170316250494787995969920830570020494538357827233764070417589617488105520659493606433164251028515407741353228568976813724632115236496379354535790725098509202869844915080779133964309368391490550431425750870404181419512537730055788258505128040887240382015701688785262936413461174452138779706539506021938274467617385688358984327425225715194774008134058182111723765474740560547424646110483825517013140361243769634789272017103607145963608321299564311696219037452316114725271943994922814510937977105576782491504687572994406207938738705446146661138502419903267077100865415505208754403732065786412442075508073176650111603679779170281561221023377232735728427072471689687318033784058017117732567261077729867534558967113230148446001388752657456106430522160295925882499841716625205267474873245976338711058032019780370336016207357616302629079907263260890913184411237335257998154609945718873984367543383200777523163081820045491534545706208886184624484591112105109431259156576248358375634958263633965072332676539150120558306026733152689455974630260698640240581150970553639787641582876105955760925700403026022732208973019709278714376601286530965460021224228942930947243006249218261285763096902191805556347624152696208712789139547522185542228201680574078549700338214268062512167258001738724438337962718833075369549632655607455878744997355982980888042233847055154851083325318953823075065674457239634055099227750028921913104927794789410342264252024545340735082987599092262694892887625319386513831622259994014893981320896848461715889707368818008374463632954349097231698385819279914044613300199985817761950853961032382007798493495735603789537623214902955793732579899809360611271999291412408668720469937275756548223046339186008072455914571134061206859779037764990430269613010157327039607053313214200541568338736815946156735137241583532419664228866173560597054791242275393467171830053011531075550836239584970340110569700216321070907261015081891944083264839887098043556655378532624453363967355336044955354687628786381907985750995878442466381208243201560749183299087176445263890421079543050755561544097085442432037464496945376929310813381863341873536895017484203911480861813971530804885759235845600657319358040205747055225330518325725772907898054403513345193258791936249661226870156914439297597552364404793781960199273368476584619737542013462034493389434184634416254905955513787609054131919230213665829754056402212669964369980879985270106958639523146856902112883729738511703282435708766207472345488829369798500005077048603679680163889585920165763520610376843707794561516438330287654470025951036091434211138252938974426729876149191290234225560389621204014412703492357462470520028694523998633658153707389901992960631944884991253980762428786112875536785303029817683626408950027320459073448552595917705207298292494734386879849239209297861432451543584034517862722010261470582414337775350685795311211043052687220716408521909010389434809148704489711562998442202270777096024803534194876598865658589327858410359735954440033127491474907169182793897550734867054337197191094499676299014754457682792295575787036468082269030456892873149252931027032241311359666794116853685457715394171695558106474655716164872224377449533463256994063939174890758457700871646028765002838325260414084855166808535263490564124568547927641169195100791026698004798693382938724370090885051516306903261130551922555214493360453108785196204142265917267909362032602220675252154366870941184383053486341811006470076858058173579958392453727362263537310237814261278539706096829508439212372284884797967187954886007094752587024336359101395295931093375310937647522547826709461930636743724646064082162350681290234805268381675668852121205065650582860907363374085568049223049772412202209693269881606666094809229261499862397477213240957594757994789826646572856857439944225158350618910394703307380272849343087738221604527093970646640340354638398984422371787070954240482352287728847444435135114437597193982809262739947378077992082103794340522656778167244385490434113307602707649544919357842844301406053296874279815739807510032052268236328271172293575353858111820377728120592008292035202535293654968973931803683974500831161552878813154170045356213042337247576192621813017190187541793093114996731792311997642141163492896476562266508600790900969290836579414261473624727356646718279942304704614446933331338731842402511314283694212513524156683712486853183268901685995720120693946620945360951856182830379394915361648220150102893250935964713440398716431744112032678457196824484520900993055892879330452896561824273090179043844872196569827221490397129915991254948390546946292560344162027277758741139154719892010507524170023613480984935785322727458350832764270645054772943669994621677859479720256561331539116418149571937839049433419942604777511861094719474428744244293296384377132698381532806885879297693991480642950284736298003497934946376827568665046546588351482311232009508850086565189907956629419955114479708045681140832196974382932568390112748182566915161061391057210394910761264317258827591550271259844879420089659819995290832926163982605691705058790434894950760613843684795533546895533766504552062541700715461889156402627460445740300357055933632250783922668901715735711258533047308794999973078325974763084255843863677839269497897986806571471057109201315406651672474472960028850475749787071996683952325098731301795045432004151509124161611833348577423538457152889438763368511209456866943753466523815791417831740093504004727133589783312357575382158116592427687042651424954066668784444886251459503711660089217742345617348674775807592665614261543201727332430561622076727921178853738652038571948916836850712228468832693532704420153541120633697303481341722442067023747036225023657999817677058170222140082336010241943320958010099865545507310038572375872329287294228324961712925594853151290957439176378800860003631829930461522958041658494220574730217687521007588305291265212487768072248648623932851712974520669850936173665680898965582909891499578735398499215981961890836243027188863153652198417286041748925661113088355252067083672176938152389424554703376323204270751641117121222163640969024319949146058696305126243599501629824973953707997939365243169932951059221070325525560242014878248543834131272821125485247057512221396781442841067959565743441834739151409882395954203796639116033638939551489683553897842004573560411135929269959446121009602814111235694831540615521710430419616034029470537996241230110592614518899520153908900748409204521022360806691168124638512157049493162337121097199211897781126010418052844242649008890273459014795048742848904468342581740842432145542213498576054492557030932915025516712902861245216269875748465697348416810435012543053092249482083837546344477307657282492611553960690797625744189488521579327253253632439419651832264962076788718715833917787004852004189811518367642119864962768640742238830882603917242579533512335103934950195966393254825911596139774577054895470685578975841890625196933360737322515398241760342941441899792007164181007259166794530425308789275910243116361882573383540653056487257975030885158653695407069706488528000589916266516661080072197004006426893372743141541215269931570572636227396694103165403446516770207386657965627939754081566385128924967067956646099538826763502490302648888566363354847663868322021477137424688076573920727132227084689866608596566054528373693789794049890679214385709909307722994401496415407142779868599832214673442230535840585968666108125452771625018777946108520617904194684272305145125889524044343022034581484617224299648803207513121520945623223802194701891642888745454819363005357677476551420852559515709880739183879953490710661987987759402055334819817000144505343536893008114988308037360994149143464539386990862216794245676922974058932300081214420895602834728138703096145916915803263649020894338205658525964425848736134753680787375235799233130283797189881165802593328637771760046876734881183586626331183409177829269450062435828084433954461965818604912712340814868965906647605635353320036190215943564586292123223495348842550205631646999092759269512305483147765732607643477717285009535744578697702265919166427570268086923978887001401502294058926147401370875641918597591303523308441132254595735075977202539773304982308771140600795895247045496458576374400634132454633628723245487721043038341030843478177304968628107387198638986835585073963540631101980227399472227255011106732394929339676602022492450662524886796368163210623379210185857300547996184941424655404533351255778072019190374679211097113258807535112941755506138969022254172658954245197272434784220956174110741717245786709065474939987688227825548132611228037381903025696765657347731374021036242282148757552029150068812116046604517191789179032199057529408033380145992407042842813325202817440425034318802145397319167578764470079793674760821674520557800602948376478089244110331862841267881114849804788281577250778370866991213499534268535132866898123590076061982750787219278084801605103045727803077035108268838702556650091205163134048103635306824322912003792905774349403140135263571715958968031468559870604066452288014140119410619813223381678343477486819191147983235727139433610843328570225238863636525275013116544752483968899123513908129142724756440245706117609426603471063815519944650476425807820589634610590665859172792279482308673816433414290305880853726797778804840874067377592846817568246369150641575854137185504560650811493303275420476069449584095830209450560284374614420884062874901836150090433801049997009241456738178793609539718110795303462258291154864786229214033289257346478425514592420250958785832953794210940973536887131542227490887886890734203206532938894965227751163806016966770996962273103372051577071774224380356659093519407253825919895517862942377186048902473973686312140358911663827798070536390145270449670612170380488739270196056810810486129059898928123152993038678812742582367589826968197326888448679103637531214218142825764555456933345084443378664458353294922157882203399677660332887791300344368699267083149255680408152852724946222313120977242358769291681115311657407425133939414367493529472516855416740613520642820249775878158593057709879629543011184804813014848632500188711131076779543357579331874880441904754861145788415911584600971370937982511118107972387837622724053382484380769543444448037460505376181587042379516329850312531922958405667840247756130026638933550827194202095465280822829851142744475604887559519046611456173444234876615416855312076356734318982754430120314128475768526256188430197046323537169074029234453158453808871844505491231546578036205946676939482591121828509164010937177161007287055286076824596848101360825508963400736752503128820352406853748834352271612780178141108920217582711474042226248733936108635064411200968701078712707799824255719826817821796623823754991385882453478293420826864322621368281061578030181394537691564296541112977108327700883078606667731659224942579060453871821929536092220585473295340782207148012341688228566109878425418957678802204377550991177669988280033183539448413061729976618680891183993879009105480427233315621969614049207631616272999526394196947346263484339150508261917260866781868658473130240578708565183130765038372396104136096588266125778412960632528739545048944383463354678741450803958242377441072658761810556823917226810363101939771555901026813549758356479556984435892141948847033521875234565101062723039425879614450812723483089645850755464698603220132752533436636470275793936457127662542736674350706898765114249158729361166430651409077310438522585984472169170593789362128871816599948808960896876618914931560635558836341376492715525983908134944755461590952216649425568808548645961883436352644270241919534093940961270146314318301440848789156535793298604452740047634925327065185203512295673948584710304118159965230182138632460827184452939623952782688467740057733141167545446484144811348406487744867367135547973494345699368006503240454771102479226465887789023667611189386756497750816074879772930694938019683200180425985088075507290255530236629957301137867572588728636187853236974360461433125899279993558829957898924250622928785883805645086297596570126220683410231797815259305815806455769583640904777306661831428906536333828335293297303373645520478370377857745222414094370564035155163013761826981997842522582725461476335508248190840702442879826270705290746814666042390563205226706082829520203853429176284573997047305907397300670689428717461535510358652156172747996452025816836616665902706635804320611391709231989641824425919976069306207182703625953001046415166946663776531142992266158567103928241824809265267286505895056389310140587466178989767801507955784566436035939314676179426125056627603346522815549954917249780359055951622345532131835118127616070131632278380898096438911463707456667398862976613369538449808787218247279878443827212866119888577402466405733742450702280965419371059723451620319338144071742561103042997284270807834941576290150016033572888990843569253524434754393311483457098975465134642356433991268219120805640077164486911397185645822151743337663633975626866649791882858141657705228511193892683522345053385397380845326577071450912849312227017855189531220835375199366812562085223611894871446867895339674770632529307921712143244064129223469708792821315157482925405443333633605983120601761719100372798534703310278935106485801330646008702324276146422054402209728737150728138805013257941687419109922701390066233807855184607440903067528570692689564730489849750607641914008331729196937241366891097187361525647290099304680214793500258836656375456807029272160501081243286094272989445381596082146776561163782474117251758857868191270141900336167592014912638266733630873704978909011945819805560746998564388644016969389139705003010153772014035066127819784593861048853768433651060734593791727707960672939832430135258064042102225675139289760737679566267110609416257346784053481452942175982725710990511997018180977229277926179549855389516817055385819666499405266781863665718799258736312148513912310424150014966952448332388532051457517999595144663544587763306956741294678202263066476457775559175938121222404669591405128600631938967796029645373825804317086657590732045703073820072637503274262429024079384150839259875179541751108680019149351679392451159422316884658452633447865573560338134267921203927607133058998972492870324485442166870188269994535771013429161365536539262748064366249081744204870568349882558050578848766365955986352043978372708362800043238748474445606276301920910027144756283919119904247412593730973546681015965989064622463619875323069551012019735412762260783691371779354994410402834719123633377453862680192335398289252369698777104428574141485739360360306734261276405675080117896865194100760535346850821464602673038312817019170239733833967906696593489393319510875483328315821469362985066855376368437180969426338078589420690511234406192534924337860406165710547126803848633178277772950437409415877459943638058003917767022585278986030782534174552630045649067312615046646508791866554608828391424582614512930568967018067790710862595663617733575765466748239017330099425732786491281876404033090174874449821783609062282852856148906632732247747836074036802481632026029050283890885910628149633901335043076975807666202414010145124754856235109554664763430930615137018992192709118504873341384268662112994636451211612635374681665539506134494690708096096878411643178343155832689917987447312611892799953847636343178226238070945531194963513504777299383709995148642573810355475096643571096336454874657292097141416865268996418046123763219465796289517462226942289601273369204150158782121719782764717348445276036536965585496534579304062390966045898852837149868373530159607522984330614181155132013621779889998335351429579398086779441618441767078873838563713442790498579786052403559453342908944204806401181543940633563356785031852538823638822127905593922455032019071317915226844954576281400232080274757773731740908389187759995418737356778934851748694646465396520252453832015301436976270806566703401957388602635771622188931765398608623733896554531946409704359459999224663005493632558756978115784746179507174630529438061825542520856771189791784127205755889698888541075106280841892369000628917631251005905659203267918361711663276147415950035791069591605377174115669430744254397375648523525662105118994489662827104456166278327254816584701573065022471633385771317777449667119048707217056308519824942681156269660185206867801057237520047405036150791029594591310731677541592894978364150333837046273864347619975266972778027012875750109340851755907873660199429182099306152669637512288296304920399261605691184683699590536663640157073559809191158614522543628646686707978484138372818688609830504109147013343957152003944554369852538371604140411884750044199775598475759148142771044175090429118370084888282433255556674833611131116150890073013043772641354745890900958929119310503120626387780059062389097968848781538331706836373916092778145110387160507938901366335973448005142397378896284473678754778900422344897518008931821500485094405747250604459363664504528467559127803418122278806428378160728958974836816495188159985744191724090806721161665718697644974113982752822642873889057623066684005056861600440983464627268318507044291700050731063458284989558586339487475974716978288978092139075085338859855704038967574701489629684221423116147936257704341391292918441061907179744216651140332620679382981782311473371961432912766861522870828681277098741491512793416246496744080897271143667261797194071214634897950951759022863593184137126570733321857234079104990968089438532298526169447099072148127403089508027691538833882004886922317528539251535886272876572038428021947702480617892761446746853510477654798704696796652864281500584736357111708340554559085257570215769897041812923792244325017567823217292356115466562510432905389685838968660229579041474588289975525784604068743454825959305367665388576359558056861273123587058850586114807556907484949122351129585563134181269206984304222101017315545479661214187162162962746769005176982060467087887236208571511571200252021279409574757955767818729571400692547035142945144857845986326981581092690947226279814223218181185312355760134590326789246547726752380121481129775614515807976088251277324559546275657759732478238071298502717235017193720253678027970564339652816237757460652630633496272366417107882908667177485563191150942717309809139140613248335185984313255610963212649849933947126268741315916375649158918566187526341726646413501927045699225792134208790540173258033039084384262273770135312708400219741654213439246812935476447740504093607783667242297989303406048599117137040647687247020956102404678131832750937996526903999166669069116609676959870563942256350657857524368772142850215557098061386548868489015948047408178440530526011256567196185140439785062067847423174886073715437782260795379125150727341751149180056773912413433062713978628340037220623405106335128030020909187657305804727104832669320163417677618335365740825110244923420806444375221207444903851906532218971637650690028963683025127924466857039297593933200112706761146676612741932688946285627453158315018764474992491561008124832801371778999131585712934571297958205849384412973198372690345409692105523040771222213813931757180831752908681094502172432538400860795487433927476894438810505049230733270656011665701092637281516995963673461037898744244171000649267094244668563996620235414992104145068321580040094590306144826776862551867647591634841482952427782174254963063199451651312541147947342987552125796459122062808922000821018815744102667427177903864636656375288447124024090853585391352333881426401576416233496000616669284882510611284167373797583374644624714683913524796842761271073191162133245342590268303922352987804222225844600848708234085524025381209900058252308932608012317711427094076032021265766375859808211720563918725217594915766082503074171452750325166397057597578692841613840361432687436061841184477003191751726800950811074704143313956814613914647652371567264056152736694315376984324364115225411376624404922056557060924863367152214949273912932315614045087665365181441207450086704854614180139628316266859558914029581678576995192457765292657069483999795773835797462191888807466242503378215746987476791699372193833667259960671431062160845557661686386650078557912300559943901106572147127627980450370063687786861029319411686856641142148539054010283774944632912250428447397582443662048057675037061387964970546278159541811968296664655105348936741078618490484291128831092348662261352603718022155374713075302367723182739422336251325379631803527185018939039896827163318460190859665178008257979705311661606503085736900787248568098615861239228239912078214681258733077920893195024238643503935551461202813125868051672563012553259497981150581593063617442669802836053868066683521860335849701345306126271208775353170075313812498176927386182608260976603234667805776799288821938010328181298573267683707546530740359618536993671215548121037755844570618996920005508050658664800130853718689944345069355659500651963260172001118582042809765950020375638828308664135252327640917719595099855207843584895152411209243783495257650080341317439844478719537433310083217771098437988357723139464041268432763180656872329627886196095659148935744480322180995028804726629942449132585555918140906763778560226791466647394593907968040451140550682077431396146307377628240694775301671378710804574270916253766486110526033804268486559067194985278256758643845931735921507148541328032605563051592277594662554605945471898125418645311229146956554793718146485551857197709863552973373264393415102874894826713835888149143877606279293535876793838794643525535793658442798635202162338475170972692661903986421805798662649359939384427470863017110701836536706258547469150868814180696474997361553276477185174353434232997432254027867384817338035346279517916256446548905980466159426371503479797562607367100416890822312865059314685224033137078545071947448861315886885780368464355704784814295343676969528977702719720935667245140133851251861961785383688506095415177215231492482471114850446861010604005342632138766034031081212618650174281501327346853438193445582282775761324634929303380734155808493962936615395088062175084888159942430284899402864005989757851859319130360076518979528882612689707933855036168544359829510425345535654547775535108657179230417569985463083369293254961887323855517857411004248659380574527787579685786962162815683167941980345227019967965099949290452235910809565420576018654110445350663567312884988393150383741550038242250565848191068181344622884110641766119012356864007670528572163041770500088744388764107420121286437192732068378088979589869643916370571026652877893930206364012469823821832949827572256475022109983096368914961867335851267618862995077631718907082399628136665874006998403678680838320496595569212743155067445770522575109987713524568074574978286009205331679624811785420801914832669542741067788812167455960420344441619953126668272732124747723096302910611243675841054086748645839372240857858895445439087084188656762070334402811684779910375055651785029159973021873302068905277347711855482893878912834181263347968044889275870378939898717458814079097315881995552597069131838495034284996855044909206353016811476959985628868424642719411436451287715116007647831059435924489290974597020457628101484515117053055267142581686530002397992357447344682607752933775659485481000176314480402030510139296693119766158447856869744556354448012259187923357794739209022800736058808750032690872770270665713216133376652004420585523043958488338260734665560279221297274887957407381910575713749592984032298777986011778540535121121086864832037799972627540436429847582835260790116716081617314172877504825806325132981367833762808931322801957727132102489575467746304285199170519993716298557742128855888325416717305191637956047588266509967889354516573635280275984893079328374863600346613006074650054411252898796371057872310106054895090056196249919143122286420025776657565676621087782990091897615279910137529307799670845525785367945003161669515873721768366427017983477111507232305902309028317044282879825884072942864354289634556311816259236846252190635937475103615628462614620136741735006235483791888677897029308846736727775072744426407912914147422347760374563442873452582253151794136959179793986783824678697668864571951459667714255802325170446812706299208329302322967307170193492036874457348073495339877273063562939979436042718149474738936541630953322384776879158666965250990574566905625396299453100546911263844003350692070159584443096376740732681527486769059763360761945350593099626200913301208126872187081947742389956857590917229598991870747950396395865375818565824031641882078434625877015230998894325328013061741385690535219626523535882912623377662314375934650744126507160013172309942943548879743619711186533881376792329266893372258706524012675174078816768302693751788774429409515230256885213333436822369873118379161391176946964876564101992892557592353798597312500811640632747610363762471479784513693617850895664393359996174748254284826545688289952647720672069089844381088956649147706458846563193097941027337359402680119023856332806096707916042635775469653459563499237729561577893741686679276568000075110515775418474254989248770011568038106119020332424762037205829189561207903894080367614401407223158128936027524924575509334022494875424175435054425333765344050299603267153265786210604802938894813406550785684443101484225324256225693908224810897760107855282430439101144513336873495634497229748564737329068906306987114888286590817833859872580055555099853661010534822010392422443537219866718532455189476765970834043571946779630873778864969901984384364273371075338561688375103526288126262095874461694217427892408767403502471652647355373033663306471081624030023407512787429524304022486810550531539473739320698997140086999229821952161170382627541511298537519847054208786850329343623294107418765880954451739956526173681271572215860420311134519044589802667450750152735876098707792832931654615614888103670965951935312180432535920376574658995613700464422328385488238673646829821667509752660322575548265360428828172886597255184914633894727911904346725400712924307598967461556955580572247473823851666390731444603448842895041574276213504734661416417931121963278887549234609311207758149091261185825022595509391416897021603631751469009642002978498749028208488357864238340883420914257577880035710070227986862370188605709468452998742323189154266704553367708551836446651712361199677678591504763638084349417790074178155161419740525371872367688455889137280489079665310883233049562918132823244869688757436247193046828504698687973971335281626039227238330361322600845651075992392144847784761314089079146680029838796776415474831429379790075155652222257197136084030376008576865509881090409323985437431264398088424711799803736883493317450522782042556134153394354878531655087593835287988635616796504695694483160944433386239735481343009984449496621164608680878872327030355822961914371604415304813074044266240724390809104830480720620755645143306860605829231696607413450058619826278067927078172411246490249744814832412659560235913369799497650221518531939623716163899346193752249549204047352860333541029759791162808569429958724664044012906723179625794805651830940350026957871594884452911668850806870764851504364292946611041391321120785836047534254980621861460989329701076210310977404445110824524174243973740969159624255623242267286173556049448947314743044168270010968288903200538534855289937036173214842960846460927395977076956777349143859317109787493738586541366996605057687760774890904503248182206424946137428388100221433432004834443261070831644820953252347886679644287562602832311375093519854828938188634288926936023327645098931517931825769242156495388545861835513023985795472330782911604947912962472852096080156595691027762940290648958308895384089090525967906964467770812138241943342000959177760231059769631663506063479421223513977769374413777882700516819270429663543512225236022269143710655678373393711080112101786474705847827331176369082953839819116501058488828477885656324372285360391918312406452660811189691109369583358229921468536691314445719508561538840057990679172202320418045240341619491556671212804579627170982016863568198041376432381301354932461804086421584371847862669020204154805548191846189313103334634177754581370635629341209798007573926526977856252049069196977250444577721714697189012356352312320464971331367730911406701286622448709022541589340905596892438334711603624032702510981880724718954981412345283102283156514444480501986156486884797122184590907653904520391300543147503704622377681250023211873651416895069207117420712313953120227214296006582827780414887991992851084812993181896698707740211254162055047181592329451142468055776536344884927212877907369451576700002809683890895538511875789521545571665240563457233848627969077519084309796369483674090473242984820443161842467841544238188806402571962766412866888324782466382339584943174379184638253313184200847517888114302567660733306724846935303195174486516892839763015599199790928072022836229839530920538217558920837253515022443569098359500074683891858880138521481003370856841495069186438935527439353274656128770562682725895815430768439742568184002876488155602988881726650217291903799564651901544201901510294275143692042096703029037187524044449947815552655408022829006254466879868975084383162420329810855534892312562921532997714069957040742982348701298279651079948857478073421108036863407058970852776232158154195726702102470559207735029332103480047691029943253759679977744594371722263342293067686444869959432660015454933071983061097548425566401424414694026575792285321178117980825456609655891336528374353959129471603641781558492008572488393362617695765927647920791636513179711132932201151071125672814566654864402996784656350830863593445285248528021217015806787249750404048778220780745192381079666440262435983914871334569323905914690306292145095560102418816272325044174716993843757847018281773772245579397877733795896844289309631902018374238032188540310214120311630829419745119565213585286479951342778873206294771384331502332717803273844157720086346820444689718639273858167631934850647571935258260676882692663299385102239264682771176784370540032240588705392870616729083751870682157101846390098984411955801547759421296640331656286693252256711165350682455462175721672628549439552640198098027614132041623565548766836303150880075169968922272731163771053143615632447741998157587396125852964664352774914038556607937482246121358318013593839724379746219798715117946735461602527563961326821599589040359977929189340766979751348651125654070108278083525488802564261380606168910594742373921150887998287624221976340928712713217012366759048512895819505685757494306743338033831981083166408566002164410848548527638174182547418555615582382461781746420596131835670999512951552178658256299235180659054503820743128683722434942164721936524798468046492823497892393011256590161970545208260966630161834870362619383978380801895083468016375587568490392977214030530234975057593051182078297527947488535090781225932765956440458666868190899798345461655670227662897874753811069043057496806706317521341382221165280847671729564389209528334242627666670497737412457027909157709777932722887851774793910327493086042317279906645017102883120654429347523633391711581180964926599550865663836466422405419700957635805609802315268586590636773957176655040002201446233737241828171660506691122933046473510662482888769030532802520711690750051666449890888565485349472656394109305435801919102703326514799801089594545513567272610568797963336730100798724618554110580298368451129422334663336364382441238749822878186311138611064355281489848027179277472007732917972345584258035986955867179425010720594976686627475120878861391152150404139782329324174398617660399448645573373366444063607121541448109408280810723867710892391587370963782231067907946687298599032414535615454335728195349702075371899344356357897541153569426068036522912659780774784312641186439219706562874317799459319311922929414834005533800125916260967751632354318837998499123808766141490201555148735998244651947198539293424845581665348003637995263518671042596617382527966230306184756365508084295246702723655178523662832217951924695162688894988098543518962389294259414437137087142019262395394900696730272800434459079309693523825154813766034892722050508682566710282454599817606837012405544553725653105710228542908349920641819085241434550076758672513991266972670740444705490311695724546153788220151828681440423769488496362001769313287221356854968050736280861204477403261667933162531070771649719942018220361345563284466230579692856647952688397332668227289792440893505911083039364406634076610522951880241969798364649260395835523653630905620915137480054391399571453279345644301420442019343101038080705189200766583081574533144184013741835400570446028502795024304264078239694095518968643530331411483247727775319683489396575117010405519702799259940313686605362775703812572159288530549683031670703731936301487894123183644618437774662966641659107504902747543629714031185938431363950246175991562521040449213488473316635584613720013899652597976226792361289083974781810759324798702050328135789420374716155678902707608776287427227396053020671235003204069535605007597683943328092819756674288974252792498190211104084426192587659270660870339295985280860993404603886654573796050077706792140271702775385308640110691608203070219376787684288270498124823720546194626259290334672879106225206751953064569722658785448843860440592104647703282885050876640926971286703060485703557018632792400921412199713362153585831608570497489221231397585597459950201215643683748534069878684068606483554757712540798157361110544221074664400216977716498175329528116855017874873672804612504446938389396474882393583214185568027559670165994889209600420697020248287556482896070779388056906578263463894943540604812828347935338615107841097457645810490465264817466340888383265307065428117909096387897579469884198463207101266902904724644409426615556343512068420933104324711851539825348024565866037934044275354858312166539374675190892347624416850822307650983812011496875571144441051749132532199422902210396363153584974936803030682919278619902198447034503326638678951970356689327495623182274820172652149281023694509052503167807006075027796562593370279799272320113423234648874896211849981874765810471462426125833222912133081540426151408098098091489551150445117408018048253916530804991831358678721751801971579243886553866207049742483526183410210680055727958610081223708969078068437951046851052604647938867519343629959862312104472981645549916247160450836748634160564307289560650164226436445678490753838899783165266481313145216583676278890412501324991378988706322977208708814563177299935006759780626317837185551353571114807110468197892684279145137194456291891542981694717987059014213636899281566369275661277855061289463497177604586379355832500204790818630163444803894010192243996845452195730725620312869822718084067836224935592896657103087254260988825442244275548991586303177739487641930436601390810201668516220027833403989364588429190720275558630724937763287014686260843196305228204394442646411254029022046024872327159846195521533817640866908627605428185318250223878025096228227286530279167574067865122773063370471161434632458244704400676244593209416264742297457112647434167394685687475751441158126364911738226474005616866894113666139751918601138513272784778921849103769664425199278893409136622942224552520765992332147250877169305270724836858056611741202576355642151835232817546485915082541376731956930406828480898051010958497218511975242741302112675879055868476859657850752220305618607372054151618112795736062761907731165889553444218235472200097317545594504505576549054945255534795362412095822714593287882203470584052489142958797527313369160212043897956082570580704314851652170677256175873687007775993867076580257200512533697391660603125298070627114633242710381426558493338745158617111363780128238263466846776976858379587075640866097957326401752463033223377856741056247261561801284848755717367370212626888050787261627681580856068811272483454134157110789767549278798816617492094084809980172228598922833081731564391056682315238389546250047702774949728298467191439122624310933605912786695472545577136453504129967018352481005481560920844502549092760907760827474458616907758108864398690346216673618965370139909711690677295513210735320499718128794300873543031677756793358653273606606761339072969956760699428073046885824386255599975473712978361062675145188817103883992478790468443261319837930705220671983981668309386803929567345937103964649374502080351192405181528304479622507560788340649771335507159903559785220003651990270291726779721070432984045457800323482909900420014559952735528983703315587259179128823665280515633869602819858550967698865211093789169596019483999786933944771724942025759232278584500984507640174303101876184351895151417863563654560899797593227706701507208355606271368625993781719030217794298690409593542658408959562336307296353177337721104035865598956593164949166861691309602241858219956106415874027643970245110265820855454867046050066071610400879518201170044818168873371582986208247297827806917055256741488266273533974081998856158595373836033496683065118813372054610061138303875068902866205820301206082600614072814207164917610528816267868424596733833674164441730066959559249371032972567617067664249121431270507836915695902166773940433894493992367894554210378143463614360876888276728139701852569116728031821400128767543299038188160756986465879056700950908466671779437764836700433577034175179092291811231963101239179775665801667393732558717643499284601687618894783850913862166877421635063057245404161235463992658744707135852315812726321915474587074896029280015519404436690136579033068855921434143597172178897262879589603257247216880171477615587390067414989031878347520845735191935813671900219796313483010417877037375993087003979994496993720499091592644813574121837356814317948536462419183881216869685339086485277371552961284065965287795652484712129596408938388137069726479248998710047432936707234392099238327430172309009584989971704824350313458064038683943333629176111441616856249824704230059191225578559987526874154268368045472206337109758522975200252652238951071558389834788070308101301409999944977676029674989050865628493987638322685189978646997635702870685845627191957798645488668441089228700630804789779745078179238658231045085874662445179526299285099846893062891865350248198482045236764204981374268157661981751216791517454951815961055248876183787329685190590553419795630983094930526995883103389010537466243131136808661239275947707180056253477212971188325163797253620489744392818575239153637479700345064357054534360905875286397986542337070374760414984297853045168929943716614544440276489186619336216256500229990328224219950646935153110957864305694908406358960581379671906205941048565075873322005876283257378655967087935321243604631591691238535313583379873172788864852701391892656548870292555445024433534943010897633825402717671425810018652197083666402196492671444756701441368169415041433033590022798200149350121412867790263882457998152353334429311352468178826462343950227860571024210697903061496536272386999396597418833397376848886224608134790700084169326622615814620048174332095393360117949923262687846702036388418815017308400618610356156735375207667360879049930729344522666935021561312682425433353187900197631477559099195143250906689601022121393767149211047053184986732337256360261472470142807167233441434923077547729226082438736101829578133446409157443127623775847075715210449910204866785546182119701178826824758205184143973469673488283549097689195342563528296229688256533964869367933317078702001987922551374977921585332218975324145785837813876787062217502133799874014795223293586577548994014048257272746636179297173926580187790874336881786667880140305398819013380071772397004280008470936859559960551594463559331438898970190313534691109196270150411048508173539714337119618093343462949403623260260258501045312927878957414356310471422176116025855956501989934491477432328568917875076091373843052728133869773358727587334070722552934145524613472487659406265733301696574543861098132267672651905092848108046187122349998856561333054982570013572752410153192283353195746410202497316193875193832095706555283808757177904912453121279245456721134251331739907287819786157921003527781940916215354132225082957217879362468289679384921177466664105600073385041434760388564042951441409784713856841663482826256178769531583437940585776710591134409022852993186182954030972425234160452005509280011567910134482988825025438899659832375643154453197590452972579609208943095767377011572548156168592527762310545088545531747986587582032562864223551590784668017711557666814045248644504651297073415478048608231164043247468725084366138657792315360510487289583093429686727731828427908356258998437457843951053060908153954298274020320095204943342595126444581718475242337671585203178609720380185746752038666633293929096498495236169337042677156915645394478817395272882193194107964138694938441099704338976103189515832863780456609019842673975963472333043871598588473812381006675621162771423870772130873556034970335408192282563865366410259599507791578944803796184362820406350981903969168223703244151969182920806923836091428443213773411372838975725769490556647530197865377107279103648044009332968965647918062959253573543309384873763961891346269946949650989964002108050663128150116776645198944356618234425226577907672442057370671449339837215969095704743563726309522769510159848630033924788866538677648350155020465838899391974229173101768874294419168901136378156166655364832592520732752914586906648325517056079954484758150633746104100424987796589388792191252427628546984814936380470465882140766043940744118718822702181223724702991831199035766860013720103205192817988946894105779457656372249490004357247344605677917204381138950684164232993195612446766701475590592842280855027947452986629424477933128339312632877336861020312098985080662927677323729754492143480087766228490614920239556329045195151168241905695643257905330191707881536222749607258377314929575453976611882303868345593451241209456617030174881382464366946290093247926014474550097164900856385443618232931165877532819264659441726779447383998807437568448227653254486902746168664647780694517357227221825302076490242664381709308023309392582082288591116274538003000144226519846789232376638888024027053854712130920845026994233011407208010455602546007196580185352537985441742916783333956902539090225890205524314069234291216531837356532625937580459102436907456096205205889306318192902197521881212638126710591442164904786635134485970042592282288832968135575721705842692053572174127194846047043270622320339715360254483942147814072092154666302466131727430700404902431911774676336608481865002046937733395607401934559981851574244795954988506369533972578432567150212804628751202519704721115163056785662774520986512501967012160716099223621577697062389072060860353914639908732017203580115359343524435544819817206583979218637500528743894201261551848924104619804527574198346943457144725845038566506994603921206944605911522876566251178846903409024864044360797331897624457022971710377912298796814597349987155045525238920059850142835545244121742574967870288381472290284788093844170524984053139525310956228073928212718358330193719616055313943824561186828233823961000140511406451785624327189988002900462636723786531563505809822721430308254419708539401762012377480904010737748052540085917016037985547777575559190421000255072467948958412174013490489312434327411373846570792492055957630813212294571080731519234095311213633748531167029511748286478205152297254954219680964197912371824967841331466591761078806977388887563978443932896982105521953756892883472540000970639663432138422427795428297681425146971444932725391936062754406251821673806408404946029096144261205917614234118105045205952621469138022416106315435663847288446162853334683817100017577521530155098396289362098408557175449636559868836318822436991001220221802623177948893015747719345066351550820770547892425188081090314467955700933240783521169442565368530092092490486630445276933167160683805756140899470523121346538150247581485915293105965757886733476142343559922401033666320313481551198899564069133940070053267609401559391278485301538723051189662481946603502653089570604665183365922662278512082563775144851115850100109686582999248324189245145371731811896831598206471718355778555235433918635151917320720036476994557412400545885648513287835315489683187694268358134629304303154006055299039317419665640778057518039032930696820864010140078201004797022131745325299145781484192665767575745301434304591714813250945989288579210145060553767858059010208492687012718181923064663693571012399626511674014239374182511895974859321446968291693726327548195814447091090003259600140653899431795049749783332180366765248774226779302330394131040589961357905622607148174255510268705676991696912665663456150198717168290308683674923288210090338007183828322728714826448483343304853183657845016221763280754975142889330933857202996258845788513233112661371162080475725166508297525012666866999880536999442398244062018261598687649029094340705845677464985503221489104828897121679235648316165608052927402229534809623519892235268770314038573996121839655821040924411886340931133835285546852944079634925777804932993759064417725751945356258468969297239273740908248338128384643572808947522117257795080844874392869321778484643394425405684005980052848607426041068919860156112505673462326782126608930327140230523488265279186230629019815767091127388237076256161917026802314296978653009069372890423206665169458164515244006064651993372892350765248280372073818630023538069159470373190210625154567510540928864841328506573260698210880964355669387395327265815664255020883401262275891511127465906760743757196421839910106923848587372212937847851529996414722973023705404350406497898480376355619523067051742219542371829085954071979236176702380182925102756021625461116719908498161898007635398585318049955311296621146917416527147905028567537144013041731998083461593115891355594332786229159197972688455306590633265039697829044192659995052351375372008219978139564232239948455381590942123736790026195912745135581011043380207241973182189637999184272731612773732762416449453950469260964689631458120846049153551637899402520503492625333529762873373387341861501778082594393908442253770182510576276463751341405435951122999363083062100864598857130961656627694760539208924953659552806078767537262356410364774307277809669290477484236847024780924485927255881550709234968929498604926873745345987734121064399343432774576076287872745717040811837684320462438119558883097291260640024209571971226875018201595628065314628521723134044336010568599800976728214875326165875703666758536484743221009345684329057681684226915131771822214009943421521232578515683253210949276339247848392995485428879203184044217532996440286483703009295761980603183796960454235951972836644838864069704474760640484056212500347559829860623355215263706451786805437819207957449916954336078121245919368493057580139266606612041194796754683283116139346369388618140545321415407994432992672628020123686704920294502143124648649012464891131765306374643996192969970649742421869080898119035611448258584489957279574108007969482586547608605930961227044739934686667065285468019972878605073176577977528957937005787368737835421846766941290600568134120627572522351541275654683359131833538269896752861281274918384197376667100835419847848825364676344140761084939412346539967686430966230394834557085927151038656377030256074627074519644746527543331217025572510282184806664735792451310569034322207988247977111130751493975397069845797937180726265374011379533604916395885578364285575224795863173343711377153121283508342872828988951328938675128113866934702442704548121007535435428856866185979129403696264844767761202942819933514315992052288471221643711277913841226511018034496219342615024644350338283247551003936910895557110533415515045771336717864208631989138779626436471373264461785020986624677587295502045452381958163626550891585441025180857549352225098582469039551001343527957998667918951542510821228908735561246542809478423435405453208568482752488459504467349240236736072113244319780682607758512245501853860979654983764050087612750899288617261962146748541543715378346281099385932497565934474832508305381309036336197095989267440373133570346780592608194059060750407831185856715208503865658778625614049732884052878483181539914780255068539504000853690236715832420168445399091839029835032431717378583907916507000371594471736986312925173659588981924967975724697135209913970615443978822041676722781568375229541639527887845017513321098512640826279691943097811680300951676689056510762837510128713206113294379793860302095221615641686842798325503162835545101402315605086422937889972939392812786791955573749229009800222793755414627222545774542864852748540924030199001616294930107139672279045979142973893723547213038950781672861111151249776046536767618652259946019395751067883024257027443815150624770048942842386214816548424883915301942778392104992653658547285688853129793969814600486471660517048685856307573485495083736429341248092175651010494256128446071210727960450617415698403126785644405750562082384479688025827390917713857783393434910261133775241670840835996200674228320715482862329795858900425119267448595708969689440065240470029306748824186442309731214261383243769712841436898114879018507987577055378497333063009781012263615555676064465926505650216266557047965983820614204272261595943896045123336447836331963316371874458965916776238303186637648877456997233721504213350508777731018692154778031684133163506534491370542050078300993474589315159163639390006762076511426472590499570671929608215905500339512297517964349041987036310939538290764069206666829818387367271072066999719836098506998458753355361396645996462570589847502181601664109461021401112586861149341019951011515828633435433537692112712572428314832461072289213269100966032813194839372806865584231406007645639166955490601538211168600148057861704334212939198492499498253362845472228805667259381562290328882791233559481158297776291033904338180075524213979664372983984488062023071081391170290583363892455462293767512213886725205765417793240685001445412218492070472276162026511891160668997876951036732715052847228565106972355908522101957514117794661195639932669007798710301642196667818869990188277965447219581258091320306883262403569406765084290487274375560409287925303812424304371379991032870227620863578389708995246559754926047005362396161115144913016692788275399953682372098603890225327126116243575047679398371860799288456145691075122493740020667586034503197569982985531286351337780001535056494414294081121703425868398670448992066485247124883393180905813409966173822785573012313818121949476956862699579894124415538250945023307742775666455376869062394302133258988914350670734299645766270190357839837528960047943387275185095723567791491501462596428347991916453713117454674557518433828138826192586150996965909696733871637507468374860562837973916460215823522475384865597971263944979420848340902256198077611622622841355465911968040057100245376000293262977450214449405568519774220286629677573533428869462096923905331314253469250943712973323742616954946162421244884466158104406815062187507648754300931378775834019825913055698564157265026981265554494712864950853396433348370371159196018551258856625112531846101380904774695338281973586067746545428642812779667440253470037348215091155258863961543136947352152438291637710597800249737785638551628528515773341096264562007001106702505925475496195224129197192536712041237992568205455489440577818156546667025260466067629589830064904634155589633752893908498162454138626881831490318017483073744017683140040827593287196649118246252387883050223773854125777811063016838195653725618455458505984210457147787083006308629320986559240357816407359596266870249243138102145745652168813213869757255011811874816400584381109645603468728157884857835875344332198626830570501100718745134930474912380748910172899735302886072418503568739564472010514781000564289829617695148644548417149378296142483725253681557704569744685174876588072542269000348512558549657684083564976122765170733714807598466106505393575701989033865465820381642627322314977745423333856334868096695420251051954325864796318298321358368270822039350175742635827242260148922674702759425624494287734792338173859749521513761537807228119857350678359034200440534338146237806572995663471852384381088244952177746931119366128405013409808461829691623896077894751422075104656315863585146585213132507282458697964666914563312276683928947918741661245673591588252232086944415083630305172025099311918675775374530464799630344849973727425925981616358531055061565728564412885578292617883367803228540223774712637320408479364790871912278791996398077291394688094947038850119337633525274469039259113365596597982703506422601022038347180962077383899669747285434061833996113229970956554280145722204716988106728374525755040352381910542026435740063505535134597176459962535693047569009256923795435680725695855749380438078890142094632240379445104043105454582136082916842043936989406841648297996087217332810084130769306605467706959619225556287100346140462419620002048331173510511130947206395770627284471367952403365284367973127378424414736020320044675282237496003466007666233623428376255416373456755864116090656259440743499813903644137992940114470479129916762520396877729917546184411067810189029654592277032936698696782346249611946446279947708225087410477590191264034852795661893399599614598099900073457277617526310051384162602005115573499872744628069792105638748372250251578251410674971851426142394809840798675214770804375390213422400238072986511300149448909693366445693975420821310108091552989238727322644863304054379307336059973408332080284968899505416453145364031219519582485949343698279204699862661532837222433644342447267109602310366289605037598105408576368331277426901596449310657524214594196384770202970104955700143328760098784475091737499978594092170779984527485947048312833441260051707840517057056567647471233372427989069962611785952218399486905633517405406781402748139852642108819341756579883347571389451061421434218673672282494011309240558718872973120635607990356732304126916236492796756158852756903683395143434232050150785495702221584564094972373641659541629527237947865593464332871963443469538716616477191641887395381334419328050623461333566716653354822538107153594206046993019511866739154895687674027892774732979141076051251999765537572155990466542304791203009599256338296143791949211728417847264107120091850437941403396431239984104328409949213380873038074240581121236662550681553450173585663592773224831863653821029377313880692622763966962265428647103939112912467180672515181337989127664825231823020735487590263045911557629701595387421666504086183611344242169455557893087335611142699268485195472795208668264741010782243293599196283435110703546116435235541836231806584033925299387553760910932009016482740594515034580087242798445930031349574079122301806359485863660977327015648080235580872673921870597051146699096537973758291866583070218611517727232539422432270180057388303327593352338454868387192051458026226230514924013975717121018367333877500024787088547090087810264486362835505542206338673860100212906063214817945420489730776208375899492616756315013155399251017320813603937935181003852970607161964366814894655229541619934554792733191368520844206341631130136232758562170754038818218333938600383615134316601686239390340210595023818779182251267215059339141672536585007302166198856152407057202087222752009148934818972888115641274135724201882082416560521710066048390723409773122155573780345287378052546659013439149090954244745853793124436120049300942452690203763489226687078061363587696984720980345092023259136915559961240131849735847451716787273260471791747000520558452365565763224335319162529481524524033740260976871753119155182684392329826066692640665562029598281728282177119225591265356044456193234914513874448861631757085933588961884255211547970562770790037369465694791822369660576481964140578089664663686766885969395755545862633238521426710614977582667255051497560950975539972426029053329794489676938613483359216871009469421698711443703168186966634646743749624367831794433807932690285738614220480825767351314709908788716904696713196120647174671854823630831188635332787331124877058945990695328779708237158218205036618636336219728963678495851373052631830708853897861498549916989078142892292851006374283791759437804061154101142930869273644993182829147729457014328878489154980306722696083028544946623558309281544402444983267111394098080718289396295169483536692065953809418574376820361055268293369013636594276451724921212965458619893053050897810183963161704500301340436447515510614402014796726469267052761776180034008898012727943043859128303496589208057861618212859510648060838129062105121755591939679954176946945688004999309534945708266925815512444654022815585628071679625625932997740543385443032323899665583815937542581415376037693335497529237941513627119236213686628447052951920307367226182327966531733503303148768491076409725639936314899173049327651066515236565908567940244145463052645515443281856608415850698227813210323298396364061640684216413041555775101384298306037183253179222152455220035311681524558515165767627863590033483822853878639899141742080549043446688889717415708190884410670489791452974634572609064094225230258885960396166023363589372613494868592605059905442016822209265313957882888634893273751583897422964589034171485344464725133395529808370893696689707243371987924101985258567290401185727518992885115856382505896388290524978424839494689087112559095501264900280070237845587525795055452176862292020284508750626978231199580990022933761276229919496145611221304810208265605113151922784622246147226184099613528994265616894913178809890842552567733209580845175739634621637313070022942428830826761381122765374774116769583137103117097753516215062173847413129221795657721525879136503695295595413635714771086520224179159532351689171660988072897676561578561349825482919087492247525419322767566799048388198012680654719541792154904330199437502987733979855436194576158745127950653185854712128251752877339080840858656628787133264362235433785376411243176417628739092702951129771087260758311693800852112059400492670469111163300879559330717001174410984135458264951708187874060082168747028593494309832458791705259966898354446472393470220761712705806986195572864816741790879559292360848884119440072577443058706991610708013750198970135170808290279932347072767915114257006098582406252086230541002608231940460781379634186337893836040092883037550427105033219779376000914588123026545748327162895958092692919196038129800393704781583036162636792459852699579801894988681401858561473566984769851594952928066880620475058909240692177981997899756436791840807626035080340007940350086221886463359860917991654551723408955828078305208203559069033153102275046772001209018289633146399233313035288585671702316663068781846961997874760485911960932615774271061374209147826866859595269877529703001579425111612338883021701086278578593894129723909703158490781083558296814969094840576326513271519529588667461813629793229881810369488058341473571786698355255959035517376287822915179390013895210457914609609497714268839268543175671011611526801497362826318736290559645684207531757931159080965228826902385613577086281300376844215526266265772333388579581688482672113225136407575719475278955992148140499593653812509245906815740255030880338523188367919297718237440242208747724675726751511889914564883506736600851851785772307725927791965167262751379903811625325382728877337237953941948326412440856977120566099659899094390098026630517761894695831897739865324725430041945741357071787136195074958647357397070603558447099138023531212681162950029693149426179869857980769290361956886783148580132155157180215605369732429337669015556608560024507644449168259521794921563723753798957289479942923088419875499116793489685411927097688116687117286520588308695080317116354640569562908597921740769316853672955669653226614013433908199888834185585130132405535142772794343991307175170020886555336672522038708718889822391520995906700145477854946802783997426979305466889386517313506232217949038118029049086040992842319991880481205075046497792471925849379714590687417573959443325755076175214970752894090181463952090439891359614083195468350516430886896174992676379317851504304542777587168416999110347373924321214072178668145286586526127828801055570430156593653885689770455269564135179277151163735480719350853448970538776837652939382161587034822402497404342485065874671864181812892785636824239331505121189364486107615186853763633457473905076827560294831029485967558756390004870820515088390868426987487120973369986344250794531519718802877585327493486201472822185554007688298586464898701064108762261499902723807427897300049817126567808051954558029309923495766576208954365317012793203952168363935224305955961814440243696918781229911564863244653333127905072431833849577640170634303976637027488706483091509028866855957936202637663322042456612588454529741392983902475526561494286984367055239136052652536349845812374745948338429011173600716624578124802127520259622927011136593350549141782216643857736781722833882815295207563104211428117527123728274461286840666152919959128737425642947942970405324683554746888274915943164539089153539571603044777764382445619376864784628871301889755201104330511614618601781585870294987561762574638369656865249493957060562155026336205380163110297276403425655814938613193680492798153363024751645096461230953599963729347811080793556081174461509665321803763289037188188599117681608054710207859542683418238398096886192678580736349392411448651694618854182911057344111469788698637272085949127573132430941975663152760529417503031954878816916172686006695910429429555175775095188938982070761129627379136110633990297530940130836759757418259711483734532481221766050474292978422447663014126479251388894708063466813895156858873747354658518752731145583668926917663266051085599836759179226582609269444726992851667311713339184245459389909967537922216441780582772570269260499258563078864013069053784348884718644511771598856565730020824341199959958038595633483212053306272946513376404809966604475947174110371577683371429644514090695589331506599789916630255890527489266462747654390255069909334166242386632838273549791143195300208124670373817179849894440386979095692062893652411778672782275814857432020210103172931397984157285897271673058703828806765121015133248554209530183051512927906828372123427154953900507206700528678868944819417755950645604728066518232850566987725944711188761377992839744623441991566761273585943261342509074180251586219993675397236141009443816750055606711520423930579962767403861319930309233509660198858235705157629299718366864846872064077321368480844336301933302630659364379256291589244438394573941864029141948680568797652920058060505256955217011771869381541505229542695961681730196840596197734029381975618840491310588312432009995410908372594054464914873112545666108021134213277954497199036028325697750615228288301199446702126933945614647617591720269223893751912429705036781918250518400608439496049150405018463429155313526573488646696991564291891594136553750552482025636432117637316717480070665583047158643528689982482362997951914780552672179049919787023290797636385274937304996597720640467733237880324736812812836597121131789785044274691469259743331737404011591341894761480225706118892730597016640239810377815540148539436221415955136821943868076810430303749774852865920352120120725571683415334162667370879901859950435618694306471520884265887535496920695271556433837805393789395785108062217106222852778999192832755494504541566494604740177694911725649813157799987478648840990713904961366355677023080855889959621977419292481004165017087755561198209989601881168578781304939192032853479947255924305900159459360724126073960335068607042668581963305371201833299219713088029876259596887921035505113568817033213427089431928579639052313984371088509075425774449928768519365166607631862480895257154074933960918833406838692415807769884183656621849557636037501110815027488992145010792216644398784788763428943137156200235302094638970897124139006225988898033064934651968475575566170407063297415103095328285759144837645767024147838192644210071010084202692330078176412738139264861051061096081347084409998986012565517803137009774743194766364693651361044206143143062437334994996248945281224948784350930529754450805488611350394641834458052381199125284524898148760730244072139885527615359165790827560831374805566626410851935914924373113563416711016810575972758556972725638556707079540958471262012508214300356398006142206280653834098907833374982138547535422910295657962797642225866811260865275208670198769779696371417331440346396382697767777445509448693128145888292621381102364024800603467679176863649494858784760190014558455501856502719417139995401612813521063873823932834398364623992091578649654686160413403176183567571039214340073450579548364098985353649402095599867721028732106345388956689111102237582279319729791545296187576482072636292339206548637900082568065530365240143658590876516391733246739710713176581471428234894451641412752731751148971158992777690932963594173969655236225822787671806206715949113815215156391816700689312367975526298556278155864804210962504056030041316372606744996527788301383558402004543672864680303584250730623573318027807550252552042868658253258101149693690214562825282320663712938434890721475880945127418533265667614079296887945584053641040418268951441981793204271119153951957287517340223237557720658720987716345372371788369606971178099675447907437938917971840044968697609789398383340459069841362531294171753119445928622088051175585994946837904706382192641401958794516601866926090202082469772151233822740395069989694817576200165140464920920816715233343136803980957724158705968514154259161206711494163757743235820687665920222590290605302868267172109069372335897280446030778311242003908985898579734102575672212832747110060102163551024247411279818211823747979423722556941406231650143700613251599329937778268526491391389518490063970730583693632330969166415874767010025232376484288378834084798801908713912660799421036723746781974845291589688989574315644998001434973018515076537232962192852767109114157742895606216973620513878032494618634576209703436976165554849239964396065711319893297198512516285837289399244263386242828282392924938576444400053814629877800055096347433676993523910489203700221464270218709947846076656296105273282592172793176274130087482328130366645346608897714840603646117819105501274526659741447539010606618225261830314210740640520541840436222470037827357773638057198327592367852270148205350117830060981439964425515037233939360578670052027740461057411019416218580129843844867082512581230352818853380641679869483692950753611042179444741814182169309608683101613099202987366669121191074655472045518922815403481128552564091705695718818958031547537610227800397142287461773223959774593283412140206473658261355094995084696573590570583446096568757105649819127322225090684889614339750308515387840627639239964330606407430676930411090621003474283912478996805861103679411664880898323879074890690000060869000958778373961477587606262706984960364605932981061726283174087254328213686180044910269936300514700640882026166871911980538118177373703522233474901017503825297363742617971994350905362165986272105448794596702088177967800389028157998390906550750033990178165764002098662926142652572729768744306901041933428484394795847791342550152412278315280792815542024558910043328331763940956844761190439050602084344518705693809602915575412704232261488706508666314281739092618684528919453887597398163325423168854144373825872246399897604632020881708077375544432726571784481209472195337654349696859393548964322366529482077039747691858418667580131212020466163974727173906936067641768766873362200797271218624558880268213552026792622809462681743118312677559868951609940100076020731192474327429050734794778140721391885944085770539967033029804845847489256233648513167508951022526343420313726243608263509002188074701849135576229517253260473456894278542263194824963224173388256781756224999756680752036891522764463799100628328761796942971990769297933263990516500208166511868923760981544322031370744116323083999070706682408217534985565579504509949341338824213739368761322724789367962505634671450970800010713204330837061613863936151525020791199661110739728339960191771371319081271527716978659900887743548816547547768988050323407856568029869667078954164303809930194671257183332641925246503797646389008870655789431649601550774540661119540978146357057136639478628790155841823557364434163143952967394925187305860181114048637342565352025419868320692935417748048439608624724143998644393912175773193448303920329742233359675169004844210323153822109044649961817010902214216467968578904015506028028226367816551194861646899606356698410451889599700407341369216398471125000256047258925875354094850122007268212181983918731743575709303445951602429846697213381919668819900866345152499544210480270591206821606395283374765716117783176727627797108893911866544955350480615055675969586130259987441317875659876489490297359662907541836105658641543560039765604880314842158741917658264874493104548665279068902057185424090522962678690649607483915916909961108797340224614368713096948139769848419484976434806739322436639689369885069128448584969227541963715893059312071612725538807823935360271461008942514540540447805373632231822508804299010057287893002129566977116948239107078198034032740719700349105037105514050068908626200996137633904696098594838231575636332931450369202433662561149845844501353189686953040154108816643676691267501274972362964403330424530006432736588976387676884699998573357811380647238645155183484240442631929481474362374830745075748353203458008895729003917996397970339066062539057456521853569445772833921014681205787425625361558670047577562149692724204646070475564918404330811509771902313620253468844896390140637814431904312443566805898790203047713623295695455064430774535171826764572307330335188962471012070491310005927730677772628742300387661207261148389377913725567855873064654804288378484994920087128501706168335486512558760940861704065918106631662239297479362489146510869763885430495906174397952209268758409822170176333632959939690505810254574538349761620811262810177280009567338082746458196477239785240923398159794284443391148855134087714358798951815911221794297815630247930943123863393174803549808980387635905756405623407489220817844412312058697884415229325406457428032061532342173852378494537803802156106988055872747744354074481894571392593338473309819631097473979438721765327653833138180759532871646447150629242698769906975854035533548364251739554689780823171841726659711817865058021579946402937206368881459558970515897153375876871878622225220832785683232563773654709448185560750812215139085189408468862232176149357031303735423389253892228970935975165822687680799740176203704130217882107860455972310829199530237303745510200480475340483902550571343908314435797625453925662736192315113513263557774237465937207035907899363027797008156168516937653810844457845309363902391604322784004596373088785770276040594991114272740040152449653612906100682195538154671998706275693788055777267972094902190627112544403065325382668521869531902355255278235835550901171671712723367177191534131491718256423071639938067608545782179395059814920522250752695152798453717453033417155804255794468141305625386038923249390978454560759526760445293212545238745183877617146404168819679067829988509240371382670651034789801707006855655279489893798998556291789500704549568266380574324453471716107433553224724686960606846116431161941495628867652205619612515784635244084001231303550812826682108993778037651586297462988831941476136122248410070683143399198545761413097561213436503846406606999956184348891923997759020982504782290167305324678895668810470411057374469738234579502287940343957425117610733120814133157094061001948627049402624558647470373001911959114727746850258112398868568881602358210659980659884896221387640498000266570438703823849933073422968432014347314889889644212525930897984584239351660068007665709871592328616149701799142916871322993428243830938960980926917821674684853243953660322468381707442875394311980306430677823775675960903210155135350870455771175212411857429604888043765801488618544723096638434872077420699454831764291852784449301019959936784874816163185128533322419008767727814509316819136855411030510456295545719044657478391697672091601974154029463406228154052756864709280162501261903321870586275244971330110375312946232438681731451928598346826621367740728372054196708919115227414457162940791192434696295895967566332670561583516252372691370977967372333464547496217335909055952524482150006501950554292177673599461028483456284421255582187961039518729860072287749133381040184760941408084093012424840695383216543796773819023631437659518529764637984393078737150544901226844342744347312844717900837729814306260946504481092413739963293570420801911260256290084383182915156233675167245822864673139869687980050730760433734123225206742232981503866386435100563009100922168475837294291219728386789389601903611396813313416745724086608103042401722387269415373520325755125077639468976978978719933566697239495831311002323432992509372168239569142683184974359363912647805940321285056646363164233067864866512482616817923346333584719220815488860256135319594874133773493393725479795823100680132429961371749295654751170294432127703183500499347686149027345534601556664382269845951084387831901441210422542093178890220575035789296689435214323994306149459930684572412325422210839811979826806006051540564821728205419329574004550108619284819856235656849730489955254226114552616949002670319420575141273634418671601783365032716940395627150830127538779861513998673573535606458508571163770152723030404312160032388469611658306261338968931469826989661546535355575646366202216669013699008021392665326703186727211139317088759292579828800037663705521658321698302451574498213106921709043409734370761851991025939128229469351572217991578420851772137157869166419884126981613650652504864808485001854324754072633844101735651386525667628189187413737213433073895398994405022586570013930936649438533546787812040797716896772637783098151631614641911431936805916385950830735775446609712436865787840100061621815851066091541342626844500416936678450301132304465589721239306966904151287472634671128602961707514408295299482851853463800681701668094906412934071677302251679087681463809908384197845170955514951534550478917091884360050146067362233462272243760800537059669232714828701826138428127442891922393618622544798250986069174459221924368454155096764938949359426721006490352869506929718761911517890651767264518184862358785946920359118446162207680387764302189400830016683276535561001607973345677276629911877522272522352941161823768691524713496705222686804212575840395503035908792104071005900883120043647757055993711146003279450089092537041698704791626414030739175691229606405554754009806860327302998882132302735939504977660151205314512008533711562329534412229501458796182677718240578968542587607010264529652641833654513752502566672836082944555125351760862935596054955773341503491836575453253724441737338723828196769969251128047445438857744210971956265608005826208725517570017132217687663713878686087606505918058383596530630066275284142072594807155133907280249531150324153993153336286914695719457548234048169579180701344206530804218207518327553610898090172449512092888498126586663250205702486248778127464746569031261524963791638452611624164402616112199346452187724619812298047260795290124476139935259707827056581116279366521394759496908124354184786910768514273262744209770161553623662708325749902180045252100213936405826580312376130829985629781160835757704507894340001443768321037349888942827154361425051451085740849022167646072870797188016703011803651746057227246011565969950684143414167694355187130074071913889577443843896539348527712841789890997046351519716003683286343981370800682717489714545758878160468202660863554296884513885411906990075575562058764069533962757145450492984024999424888604963654107520116128354804651285397736852815425138562388987929538318936746041379600778277482732949725242849017943522534953950745115488142060492941051819433710978723203149610282549991113941286149745027010607486065635280710581163059899743684621970690097643988787605038821500103151585878973769652123654312847830918005247557021660032259339289926427310493708586239379857720645676399183050437848016481177167725839443503683507814249268661202791709739150403290750831428471171196655617881212525585517602924343186880842682355089997415058488310165190098551991907323057626427933675405913370498737411984205872491418985333789623690508099388041050783209771255260319498875996526278795232484177154419929673005446116156048418848251347754270192083062254401740408574530931612358834169732787507469753244645372886052097758809684883203331693841910971586092503108793732426882764254003949756346713388562476711668061727919737009862164284782891113544007245471666920466899006916886918717912037344866413388957286190721985540230582517283311449610036359567683144774102346380420032249381071473233183163907989665361542609439310806252465809050978910114513010296493262407743571892158736456435212827391910002546950434897957789237825300437149932968350543145993326070133482979980083181767986761848649959190017135224815549266940329200185295591754700093307301639730047146689122655463874098092446634667534053896010992938304689957714863559920157868478779297192206821607510567438237718705967656570102920453690570473214427096270493345753926521723553599175530715725552385385852826372341957056551620416481933361781130905836740791944472438237218871436390392623322184236978585148848451674636704493728733824647329199150582533489945354827073743157030365671417934011445659943218836327709901861769331478553460374781055036471869508656566183546218929023566335773610624743907664525697968103223618149747182078253697212055390917671173454778511306682695123930821719797681424452639893021450384790247332059641984839203404493434498016885608657926984209197433251233743888387431396050311367361461773040823639053494501612859631952035230795520795311774958091565541340625627736314855556423101498749259421620279148242962945523665299958478414717790222625473494793632062296966488372719094800801432217897509954458171450429307637500358991447236303528349544817302769526695838824647233920026181639896453459586292416144361990624539479990258911360796251950498646971280989056818656840737530467491324304657967760119699052863182075455783946579339485887660591512985055959539143995137136890095408477163907528768163671451218982623283530104159014361423567888815479686403958934674056748598915263705560490919097630086390355528035283165087612307073218343798562447900947093175060602926253400316158959435360152676456385883886845507751307894037263093449155038147858027981454046180069837628488717164379481827699567778747919621019058841902736751316154400384900297107483172825914325753715164186118548286294519253010782200212147572864402042935046988805769817457107017102258392260783026479254937777299573807146437767749737751074878244274373890154584487295678507201589952052157687156219735157314071631497390815947452404726545807177751967255705640705624065844734356444117253620381553617956276711493138988075642011399691074108474629353622913691673273707137544119322416945418898445030993873484343799820968568396843481972888285180463812533470847964863148070342191955350738117373393846159753952955514884415244099666770711756734089476797522410105069222191192811146543659435241605219982679591305216940320496752920622882431079305192351909207063543110502360965998397758493244269956021321325760956825606649970957870585884144901191542234979567834403808011117200081049848475291903325196439639682111223850148323230270338244703555290454749588951075665177191196656399842557998482911829917413079485654096521512220557946381148414679311792879098768067557467034305627053927385595034588765613009111978093768379244064335558376482581285961012661614249215577750638807809663674163919683696396244721879201900680866155744429178696058349696786704597686482735656711662198858127309341988426500493250405110569388010586713179640122293171645504354660863024059882003043425946177696918766634751194523889669014614407196171659666999624686468250793068622520519609821809092523677899078031785124096220012266138467497080576325343131301909520087568020439520112495690978423577688804852889541387783759659608749019450371910064859015737627842507430722319209999553651968693494742538161512870803250867600987811032799482890047960154841241985414143373610387965806729294678710472833477735175359090538849404279480682418093330711414637548780474844888251490187563572135435625760021761643548339332817016454132237401355171548536701644819073400587934187511781511838577801593512177330717597504821193786564006593239488282587212566432422200671698409173347600110435301057810762591615276098980001839550953451518963835086848473086912418692587804218838236234523821905559500809920007255772691922526382678393943072616257033958423481213178685186579352981653713095034013553264073051516919148811493527497915046419909566249469978169066206858067369814739511124799781630475593462446123029742473070610735590233109622657001592041994391796921401348122421537377745109460690896910522398352342888841827768123559025781291917873966478393729183840059223989738405373771975417732649405035823903524867153931018602321478022481910190135639720487612498008484495741406145009949797211903514801099087283611159667417146974626638030912953661300492006251118081956296548851550950332070194110510708410754650806499048819563062645148936269858024980114420627250230394108537892871447254667982872648385274415369812952384709281877314290077836423961479996052863271679066775091396732756258465604619608056257152358945219477477324972943689442813709429279917243001434493134163327884386674076667491588208064438008696566798424692908720369541763176198020800286241160263537731893953310466204170877381137028394818442568555193191719931808035755927630195449552878452454698834604858661698502198144101336684365949426834283362063120297938730902531414731790869089248685493633406959663329895129094119816900191827679318543993597287691524642774796101598482677164809889555322664924213090005427288716254123898658415780485755103791271440920321049650540215869571670917709759953519410796913740978687349013586144156082381283992501013865576351449584521866104650019816706178921856311714664646670046668617290109202818176763345364509654695819025269095682187420736951791323747442566484388182346352019291730126129050182782860295934139366108811163404415017029236020533175268118512898657499102186082304431424679492485438465979193790738882415209629193920391389500965685406906922280792515740813169961385992208931217074704538967560591639728625777962137687665388253124199763486332590886860567190251877480862394200289656491030771803274695768444972915406638380392751049100878584627427874129679353383382917456695398047653635311013549177497168138436460121107043864368758628208425142413712314259446275636374330804515831864896802309300103937524212636379158916012220976359234724765711619423397694945433104052883643097710018195162582045483733034920784176187387384642951228071003297761992059903115297051414006553385294221164259527223975999254134944716771719291971226279278023130305995619995084817911259731050869497249554571970176677343838357192413775364403623572633885760067481921643822516159472603469498222471599784438468504940939859639007648709255419282949073220235672139025988397629604719759739073060961955646728708402078650070376350537562922247908784015471988524298090354337494329993871450746912777367338393999948140319482688864972115068989900570425234489470409133212900782707846810966710352021800047677119301029219651264203669699227511302032523855688416866549324961574172930603470348721527930662480511570788558616356945731795769475688383254100590820671964767404211691977278408038335193211514233723972289567750262386303571514408707294758566193675160370212802638558498092515741022560714975171509793126805547203676857450918858024915041423920257273252886237048762526308310241999564355004460808614112094647362504635368914161223677992665645620095296464595427380297339404432479710681725911545479141804414287473638529589227930878612017457819958788775048517324089667143502662254808043656458089745396117125839040708516002915323364742846592586530050841527461361519305418773834549204473103127211576817139097239546324450371818191853986986265647870364996375572301195397448870076402137523565295581188393058231109154947863217110800586411314934076492710708899365338210519836387357785493564943386435301308844011014940053629543229898041286069196884096771539517975093528566510508895037997536103011505038131813939376269521980290139661613015040038773965814575526337272504405691221472519187950952964451587315557798678925220374027683514092557899855333005143454005461229915748247975230952947582410662428500671019090625708231076685393375130639853060694608103621470025728219569320189306554962313230299873226954109025363902462688293089357380673205134422368230495928118224252578661715126175752966517611438770784855413759227437342512054635767627830699122657227230347325655857676636342179144790572666820982868491945477715976372841649938151722323717727552003115260651379069083425487673535061955117391072428617472072651577361802161024633531297153848778878484807891383033075462097484762512724626452218134251199585595094002389707361853393635653062116361042611438158959119265019081045688382319430479178692425199188255423726039709773879321313264144974163386880291656882793230997122024179025215842542766960542996022647931354016722975114124969817100067342634880958843791295820919017698997128471229919295335648717325952946288668058416711922554797480698667583709251166749718730280880717056571369027812386272554600184084294188865981092867211039841237109481459879776713535365420982118335750222772674373466221702047461972077627290546511174632456124618502779481464603212439915132413474657135186207954148127910003863225843570311914544873608033825715198327663131995239882973947332730953503791866111649424127289473783631385139657303328341081022057094631306072892478059194722835303312665120545743944975495134647289761152603932318850800802806749091252020598020767898678768191091712354667300975807482575377570957309840365248310783404744862136362812190148863160985446920914554056365871266231656695665507001352875030275148721001752516975016688348368011659834177951950869697876851198328643829182337902068140413441626423314230876135911920974895447721109816629632332298096524986274324235545306612379625572589122117372982659167312959893786100714728712772199524450050005064642005344437494319740621543576386105023200590004567800388565539312525217524715862457205452713543089723985645905080924218624960797026614432162400019274211847697276769103901013696667731449128928311922304029484475895895785796240351300701122858175867826970470507934912349377266429817584366347263245711972221524330333086801641777353518164409960704745815589295922760591694675184637219839936783643321936098538884732587030961914043519567923158544351155552498891739105108621719964498716528277509250684334593508649930916184813409657919018090341958453545312904363808065134252394088203872373452776026915122699265138982974401334261810084369869934808149058707252809959220418354281349960527022840140164577222065698807621493494595409393594413096447710227191606241868671838437138505832055144799991256936506093515059077611596291527498548967975794261007634298942832141322716284689348775470156283182812676853701995759067707970413926162942591483756463696721964656402125421233042332747045453943992435845900763524657177043757155962953289567659996829585735915714908088361908342609194109605100667892617839014533672716690827187985990116466347566514379365550842978509638554222581299564340677952639090058631151923938050832288862887344651789344620326620286905398735843628426430423941600421140739767919328065011927945868788675462054009181039166548527040049905008996055368873513989289046841984495285408526557296643443838625029944970670387353864560706883078742160029810452719718777484504156146931995787413394569356118506751378885930033601336022860046989626157342515954521121891447947617653475107330051063350732550296558853303667517315034304826610041045300094168075728462094675594066313390320121149609188366570260795435104718156957862460500756672167410857552461558278227637849559002569922348118453230130086473537478733568474376760842010392828119134994100625745505004871414210109530774299416031399718671146113494077079548840617021282641639802402452476069879682922866113462433340108329053584799522299534112734677179897417793729350736921881984772840215834678111797685645785344080797952300491137163947882771051246398558056883156454803792251231240620485160627417357126734875905968659233102816238236379557727549057656813488045310306289057805468751949567720791767452392888455482137462201267352222776654053110624347025660365663493977386853735250201005519244937428403660862520771687652166848355975815109208023217309629798766709153805044285867198222550420986456373353417206306829993924794867974750266673391101441306002808729377133154558569448266742030903881137825683526704545058684230263592284305391197011163749612671884740812991366155706192860050904932292573021104182973316797683861530957998426086234677583668062395484236370797393843013079834461365889329667567182265183934116528964595000473053147326644287283112434197976570068053554969760880579045959459366974231697895396994598724602686085149341950032088514905826260234492971240226577328823641041676430991382438665812461377851474681162744762309581469312089962751664704746474231508931106079189862673510247424267559810264064250609810251965989545801951830988253536939787310375117896226104336973561765508783230092820075963290670309820222963798402832515389967198507694250030555900220943319754096722508516254092420393796395044753160726351431532455311454713760240378320066749771766076456562563954342074527811689238354350779393802616110628967256454794993456574762274907198926009870867514032891819983914082323299519729908592651161891159452642149315874953715108593178716540571077653635691595415245566888040741963420736841672941796562981038717028790682740794807880450756178404581287960616841635277030863480051325557891668616823362411422294831656464965095452420572517394094091139293387713607089615871776119522828557294473980570402719229278079275763950882626793558545467049277403504376702447545957911476583037850211453102134310550829223906049645276113466454185471681935325512365465305783698184771456147451105442572329904761956194278235583944095572653586643533413233498839720001553395598806774740667845624492517675366326075857863008460312743571821567879189086484939256354741979352388562463551422139358360919534187747350825810638328408940573198503361782665168801655734514189808553472380701353382805044344036374134267366562847377510945684710014571512814941855238394517575648052606677046368913547867065943017621743144179300003666559806045774734480566014360609126786181017245160186453478549413544896070070700040640497347433632595526890441746009765949476694028797284551705860842108289533388393524856925551729695687929127596828894896581035125449314931567429436531508406267069144628153721856182761026346107610425711288604049459006498442858478137231469196768655300236898275980800581936612491208978952555226980902804884541013905856337872178924064141385501203266685543687387215126891573067501845234989891335162576082605529791065382081961335641071639762788595329054464700671018419926299166179956900639506038509039046919337076517036192295731817381139505893035082501326798082150642170912555471383571183945543927281514983264232004881561598155873512865431026473531645902945853654606350891835634923144314767136204911809038908329472876307953996731904376354316011864249324287433667501418803028488392847642083053830767617004343278844109545600084257718946287342635326373621272370000988320040130913280578020951276776225397953761524760438482067474367760738594926130083830716352360782270596686927115415412816749366768356412990799559263699532935954706061934534099947238981157228108787364882297732906055628001938185733923078536159159777072720107818071545524682014073627696707401009043379071689208556981571307885396262574005514870251360189220361690179805321864974752329274453530782658598846602149061143343293718876321802164463553168961013907334830040035801151378639023641088632748354496863789043992506004867283964662833267590320784863866083140282240647329032132184188248775344117176817849968033564312043023996052742685433598600541191778323399485384056158311509908889586649474921336218332659390861311347350057391349662687699652430997669397906641511150172476807768179621027110699176940619550551989834466875526489211571974065985660004896737100196150295919713045817391312274290427059443298692379908519870107297207381152015619445676857418516622625643882280659991316421737020869924196441343537015657035683517029002121891938454208611046377669639585754217676585828015808407578195784895352230987084264941045838626926589392607089347849342960889903029599117566350077338607793233520641553674510206049604855983017958106014156558774681180095884604222060083114599827453229012635475413906338105384019184211439783313803142727473762294398478529578848034380619113744536848685991142559740407038492421127138674625852099262166131059156166539301230741776076307772238012067709527586425400273600395289562947489428583793343813613624536552427639894671319053927853860916035788570016188350069536031600440301628522116735545177619349483022687324270382370969165978567312806200256560185913636955701737135384767057446101720234846154735584318024779412890124234624735398304761959446555459389746561448589111430610531276026633862536054280583752748226120646770402500578593710805529227404583075888156940556643907831927599577967919635487707977735993513989075211618514305690798335157261728350064613492801372368883336509047099282524381567284703432817168156994200083741829843275824025463773232223469021803157294935447717810344564034104276472057784572196108199049091534372931298815600065351082640687973686942405281224323131277851262528948865498052178413603595261299767105863126477215552918895427667879168283873760017997951165557249098899772191051552154866261161753527584177876525538352719121761851624245724556938547641717400993168850995580093537936582469850382362398178617253170624714729781836596397831022482845294461773833570194888199753457835734949279923228348900544581343048290433767683783512690655424231748884784323545861835109291619350711357299558817520415842239210633041862305177213209740973681880243406786682209619725947340424381678003051542380257728443067332703734167736997334937735724979860894946111942521691744651951714287072092235446443765776978860013396984725367287357249061733601809989664302353244638153683453436161945818759668940989304530665711488663027620654280384083591810414665987262921038398033223279521262710882339990255092851996623330913997738105847395787640993229735631227098162154477150737661576558568840877879413580910371272293544902770030630423997373510029095633097432934474011564587902451746374669870671112362562581448821014550284583073961538945026473072484859787151605485728244176553262663018038660392582568562410829745605306985265279022802989016951407036336743181280471839853731456122289848947303426122037625723276211397373960984831898820695273722610072577250971898042862614367906317981225729030457759939049574592812122353021811059209511630474763116665853579801935155489768034876428533140637248242323489254152980262303227545554071515348418942277281705618562274636324267665236353303928632661057328437080758251744516988679659100113830039059335052406526810492514830553005756454250357223868711105637075836419962524468996756920316442618154209904002408232063150324282055612837887311350404799846003780812297012565777568932766921459896200716029503152658047089905470368322218763920858442650868858239976676945467311872656144873105930243449594658106260462569233593330838457314014807110090277881015510876480989141648740462024711828551864790766267655889640109582316797655568170580702105942941392797516449776359705196198017911549354037341501350529322858921512828972414116061731043970802048779974362695772554391170385551722093275877519563848606657570563742254074277258042696593243586814389243716743567507773250024519820559031288184192670928774754620051897223504597789850865025542218925713297459433751941162648237626094269935726352573515551901410128918564721280558189886544113815175184642910034510843326396319065224457589931075802339900759673371317015682685307105905484649761579398665790657480634791968047073341886201849838177822419684232992670433250289486462750857390318040652345207326954741063358789855024484251189693653031222865500922034862608272863160622356195073504811239146785213321891531015481005029312441372996314655009598789052005524747105790432257026708039206713822221103396920108168723970071524452397054257227302959946200971253772393173937642876396810549807206287077976184750496952623553716660948985036150428419452255014591423018397233587854009762236955339921570957521728868883538289923339643101134523149085508363726395747814537053720749894228213161324673527969425574141478097224790937938647591178003760602062227667097617150402432413967793636640397902550972903741728445087312038755784118411600377267224293490683137966574149296633677980996503223018810108973536048829481905682219849511122479619679705237978388117802099788554623719841082631133203516966973281973284936351795121496996645140964198068018472885939095408353042054085666657626064047758370274621190355911146698844727769294928795698223304470454224091624071382486423731254716739773849075032961912753057087707541146300247478724193538680559068645322939046057680452580284494713227084413809771332405102509501768119544748244919777872547605851645304551781990527664906619973881394413151914628460299910368447488156886161382361537019718549298753125039489246858522891166285703414742638583375202765236381259325452756453289040389143978846892402547256523040153542130861091867237199628236886881929069040510277037190372205561945613734594289533883513550219177499914447539833428407435625330271028490531462568793290171758972442826306936109740984663809471770952244459949805128782998233381525219669814955840457132211868577274217444094500865058130118548202794634166706517226415928539066028031906714622052744233073694456640003883159394325931130125616361735963212866407002707786629123000905651114678727398528765185037245983892993719168255474981140012200878328581084229216706704954269034481351995781287639858402145158901220909646431355588216945035231849734983057159389386075040557804515356223704497696180762215717765636898260715926386912324646605972085198637208695302690071361864137612341646548672330798081926319442252920935995865091462919117639670529780951983299914994406638655320770654241154835079239924246232346469972987585111248767266839583084296665368818712225340196530642055657398611587595447712447831876003684122619976945546682463433880107909851588966555548500509246947916091505300387680130323788414154353067707800662614017200522144366517376226802850485870552130190926734856037464135136787523818040448118688640076336791367465011605004086283024792666832459137918573636519305979914625392750226453487325367023581766105207988456837752885366548431934967536999393662902614413308946560109316467946752035267400349409984798266376789559123389931475127261301529849124933400470512494834388749848309392795621364669128776563480196616343440850838695548163002424527654225085824601586348952124644373713119130418804324547292032977476895995527593866260139894411282975511001858870888576841304673073394540307412241053384529594865321348039734918225898188678335610562883150792724875099042088203097627613140372586969540677947516245414472019738861278056531328131206442252628021043527468672889445492124811862620787328252137558487133567516320550396660081129235900510517529158424957291244981546354997779240749207374333759528495900569809969504944433235473195784361565666801219614552568918747474891929180093491340877894966584689840617262631470708316284867492345324453003300373850057773425052155852635935113633923613653883297660443398858743676517965005043679961641574382285356292706168531861393079425239897661887242436763798279107253383649251139391871880506641106737990815169729604729761602239775464660406154859737162086267448793987382311458244588123827531760035298439144188565000211829866730224905851066832314124958405133815614135219039730531772359080680513308852921101558987161974678235983196892068069096397488078160364377563383364854061127328547234888733027462032016898254235807136662759400869160754261189152710388828948479705159033093171756180316433307359360738478679971581613844812229111564545374623093399172862044970608956038116718054095254464032405544900781883108273051413917123403608240059555477400847524270568740843563759934270918380724444319270286416683367682551245614938988722518574193719075799085834381388789617993626791525181825914806130688227894634599896586118472350311018425449446479266351514786773550967365768169094678170664760127326092973928882143498902831187129737273141151566705578399416603321946329032171637824159581554915070951443619671252101883408262760448448227756687673049612253275336499326345034360685529428844736396710909381662303063940565204886881843374276818521224404072735751935578580368123535138216674211826832978454092056310000384523240316907113420695779950881222605588754247483095449125294074294034603057732845118791700157176444547048112738883348913116438917090842781048593552624637804450003884918458747237319896071230904931647563354855661321231148814493478462797152590401121170714911130746822324109773841476749830513776691823339471753752870350965560410277863600582362427129523502549624896741886990844910605035676118456696154895167810766591973709324642636395265289806255599308330684173820506566431174071976850300316390880896060091237456007971345795162886761970871618434672853753138767781205795465306515693190082407134599045295849727594777240668898922315909543980719059522229683302921324891219107290518929943100324763584378519733136650018324304986605714651776477557628155236422702779275261618601283348172875551126574768003833558328449363422576589341910039116998120514725461530582819659444148547210586852571423888743223541059631537474445860416922364134459985915586529821168670771076233298832817308641390767323770190207117323056729947799232949035356738610480323125772617444656064858105544179274600687178831605941722489806075664639615867914902850423275803970306311865589834985576994428601621317776258287268365485404596515097203676972397442115947883093048527947817041022601682311014013703215853553462796726174223948298924534298727085809366563737807795327973180085364228007516133657660486045225389575115966152239292301462033305257645684275024663548917215277015442239888092610721226047892646669912910184342765049618167116880442594134305871621444743743901935141990658505748627104150214529347088495559576112812623727394398514678757094802725168519787500820138380555938216968476315204842780323970774041560882594763093426949243100489458838576297732767781214350867018555494197346485334072555744677320434489473331462457925940327688272573570992354553250071086889200321452430796737070235114838453335246057188423316158580414483630515961113161210438800258965192338168889270273297220806056356246966919601556421006946070979027755051692271993614156750644953024906788897595050532288913086160978688037470048076791205595337425844230654805989765564308592797087125454265245244819850319525429838039552980810487904817748599321268803157000478787410007714681351837936670755834336777287189325729246691714258861793196146365610572145788256449168648950615560479172117457742564421064251527410370729712133245425796788327879761480636052017792084916510349025757408959851382553821204619657693192519983953435565837027773753335214781417066144137020262223234920548297180371677952500147754857587639114885229946038228484900139303024791169643484793570907576122921629839500206817637194536811868734078748022615808289772888233117166387064824279283902079330012272812267659786960704062763783467699430364082158580782206091833677027079153033671285896168752111945300154255423811783266558064562112156060762664527489885628960691768716913925854302623787849896331023562795896977536129608457287120613621813723699885642412308572316077430770443913328551690980395454100533933542514777335302345233475532063399328779233546260088132854685406508453441892034976179944103722365822311645082224651629874239241076799317104428860585002230750272355551195087108916770929122059440647658652549776125752957207181486545926055360868491669085871541259179256674090368184037310452844910739677673824681286523574913700985667574712520978325658440982125964463617816930131982632514340835567276845015094869109761625949899591184215639070016147796837853867230894022066821714183492410717831715916844680259004330591382806972534360836084553979882995415521945139512122164049719558141421287925320636409348441244084478066269402088713232847350123187334337112314477653629266896391931908477775185016692809678605567298478200148324768944465169174071763912077648078354672042230865599836424219901903220772029839138950280798907051640170875086881813956502310921277550297121305496212598637464888917609354620622146270306469668459446763726207482888381427947251700284665726604976480826443984891385884834408268065190464884151811202466124202083029993020977258904600496083824046216282569381228738399330845837920517046770239897981237596388104387877352722289907406559880693172774791068457677061156569148232142896598771221051446837852508235110706644113596772901350098033352709451554469831788063574412142591161093401803573156557157129398240902067526437699085264156024261002164397891841591039963288036271793934602803446764174669889553537066513759696914272920900421326792491107917929048771611744663518504331792894784359746545222561637851960490065151548443524694583822440294187787024115646043932839604874122485912788532594833744380382477817408208018675358716440479560384486788448326404729344581581360775164335115209449991929306468402622833933463008761272530166483341011616678029956126386594888223412501997579341296768302722459163745737430060248251278961126765754146448385702003543044787791807260664773148751850276997364189942364378636596520514624298052346382651387343738223181855823406542885198274904397420599542838761957268093314601648973128500114042629828220902579640882164340667322906834481069554742192884171677023979502357576134909598906676384153329699444828699717011241283405988511655337247976207560312139958460010401567676729150436726259354840406002483849548735143908201792441077153077691239171004069517753649933860195382235461812916373291281559753354155250336333294997132583142803566030325478449983627287431836482061126102032095830981516114909368196676966007105415099784061334838501551618106658888617273745728320207407806100659769067049732491126705025704399525856188708589711722348449068132892818504005925873346268742299239365681173170520585843086622135371227165664473712777778435624650367612712307679303097558323705600739017393567740752434508371969621686799216470662941996713092751255200703276609425590428213364272106551861050383720311612479558682846657442368884858177351912689908986186417492563085942481901202691289385998582431803823756393037817575812619063063456946196860226635194109324369858389087974158281653993803252060389323183261822501636331398415912184349656239341334835390036294697402713283324764502178368302817315907529160025818450770778097288485644606713674748916909723578315702086800933384396282550230021006967418954517922730677353660716279476611777782726158683076013090320008541244257767275232448502568069963341065100056698569366999240231835809981467908298108507400985530210998531139040220799208935340371509061139807801994889413802053272689728773001161090104131184113804283718535287888797971437866728128898960093228514166140026452971420107608199823744361882998552970108758799235370651489654326598397483978490847297723933465844515946437729250380612842904477084643209400992225583384541636007951820727835884440735195060585485456190327296907950564770638132600820827197327753571698328751484303311128282300402808768013007934693415222872608649278265508593585631534012879444470703020244312403064757149514814888748423441076342940274558920915296832698530685210531175429623399249965997700053729749548662836571005243890828187820468736751520938711461641656710549213466326706132850097634131749235894435366274249750236147500112451185242451751972850120923682529066989001022595548852374645747353639485221908388206646179068004819669134321948799700117903877200439743496113889012442595780504936537199987070986335288942981776020589469804222765642179032866130803441715509628280911692280713134947070538010327334647262141716883552783616424703236538563888696899510834770501226653853800473425228643834395013603853193826527451685025167126107143462386815480869104545550294909230541573052069401139011275605491265068289755740419858813752925778577042158920483432581264869273097477422632646830002847231692661374658756307825414461668172595439606393826827466728903229441740907325761181742672315829666744111225976923056215523279716464741657793196763731196992935059451723111752493292880674993251036986659462545340228331451793813627603977077822475031201335496802675056240084721254221009245372767726030508178377064499024649301139094138738454840365771255900256996961399904216983704095453560377960719277845837757871780959365285710785493192293199783803121326094459830793762351963050691805497946706896103129420645118098203630500363690504046594510999523957642276697025065917799553650643573234421717271801996048146900644990978142812879170865001386995739449903111370831622835029125556520771760986618657638019042650739346071649456646419505252178533045392618700634120787093581578639676934470844684839899933861088069557177111609233650803829747680724264975169463533932509590821159571885847776798682858224428342642798769846361632907477295209934141497303407891950010638629877473146771335678279508179989447483062046860815634656949093217692198726720563092144504389866479240758619347078007142212676719688200146903377395871816488757705207826162289541825030546970953376158391696220337229241154170890958190822854828663932836170709119197015954562456145308193367409497708628372640184754914392699920977330153153936265915543529390103624234767747614812990458461317101769957202454800279177419055640660810504653613902840291398328519062352547685562415883277869653207842326141189958627817313704822197369987543962408762132078337538957341409853501164696298883566257261930591970872327039433635854311533816867747447468803147860040267628451752279921344771276701805323776181215802797818549679984544041238978909474012759133878856723103368938306489349076096113417523336142976027110021836847033602413463900635286191556371179893070416123678624337050781704402472251689833490160120995329191347579466723354647837567134756997898222838783095413841476549879092989466196661193536656914537972278788725704568801890367837553546413820647207954298920243862678000097146177970643928360571203579913583381923341372750292361830496389071112293359744224744732961256070027910771057514357139870686160592099529079003064997739430663604617884099404044687516620023133080244631274397207240936696692270622359380100890330957105032618298381732892355773654566694293401506094685777603235827560590694470347938915975760797006640665461413213498813167097327868572452537252091912051881155381714485368590133498783081112289439026468611279166093887774796790339870921404693189519891740734939697726420266849091886955966637257829414030796280129930831887501592348979076437183651273344586765249693726122304673177206422416150098992214914615013051573626437606556138213358718455084255614254249597898208986973075124636322197519072910583467777460657905548806603658471582758763726706519961576880804326596283647601689103437297575520997001073397277024906454157252116258709963816121452071308463743032493474948822365851944517251008829434049378389269821760343051600502966325077545496255343575838706542216713013731911580092502851393981548005867419035092153592201271568007749512531267246955805427861344057432006410125748524950130885653902166232568588251618479303568165671260356560154393680956489961478638235489031180380305836916185909044559477745610895831349994838614242724639182405814265580902882671604989943722829649189123225271386329061258554533333928686928916850127916167319384006304288964193120897649249924504976191040026593757895858096210640061082428293539278777248600844110989100843379851192612239851119417964637292669659295724548975343043905552111553705325539095607194037316716831698167251683623779664258461486173843985735975016852009762232247947343863717900458095093280570032804278268155093932331768127954228383502423440276609142884294153195607969440768324320412035508633276386894395264109351050559772940884788333931562080536255961440101971649711648135369806410621597624668260475795667001251345182173451207537736784219543245145596927100065429330673993141522955779109068430007854225091995548158045142678853612877716617044153380034391693535100392934278271859386560608013060786988022906089503538228418062412628874963273100982819884085237308198733996304953058490661103694819401371856141626400888627146468994999630425817520237736425406172424988758629815861615765504607953486219756986042840741483126543845156202852618202992183885806974645485095196502058424359237638698954206748146365271510813979395189482122616475374267867754891933924375458806676355191870059685672155649069028211640425644770867750081230011516235673301014944036954708133914678490400793898715523120733836319468882867854476535634137247395592095784025945096264438354140323179873321246577856884602672528998424988409325318731182290772550308679348464269367922874190925681789574321696289918137346493879868342348391199928837374246211155646796154928732732097565822023448865088121504936998655477273379028460995489272742856389036435732312610259953714830445195249089394377108533936491642107411341668001775427305267014045036058013184834818048209701217444288621699534890243237767651798996189393000185546547969074429613288650326143553923834982155847732189894939424216212216857711419210326478219163794347106305608680617763348572244550334729004990102339578908099454633909398478332921265819515152954430953852247078183986741562882756690265832147274568781406414085501736367605660686347263413417644301261810181167268892620755141084777452831076977917934108099573524880074277093642386607457211818512703678281981862271638142289461604067368591811126651166937903232727419444865140059756646113919070667264286460719761718906843060240854526317063356601754308598197109151392594553820167314249769915793823379722518147320324827987191302328910041198618002375607298354242378828285861114697517839220612260537348925074815334306821643631663525293562212970082324301123942548300437458545933793092205756398249847153261049762199948673948071284994756389100735040314539229924773441014032048665339993073277237872577414480560615094439976072758277048411566825250727780696866804175402871523310115925743982365428811321304932753569356438191254412353940091437438784909597989271335880965307602024621834047592977774957686616251211616361998740980076776791056569859626971376713637934526719542187259606424540654654130045662023535587663339692451607472407257522193657057342809564566360881273418198716562773829963822344482632730331511947110219686589874285511934999176801804281213921154217031485788169580520475022395014770066808624477566682089240435623256255366507710935711238038859134194258654754855519810824777612736427330526874214497921994517716546672162865242340087116520789405793442250751677170815724625307922502016943175568903522448135785803602212131483794780115000098748639051569055313220438512061106496158442663530128386153974947958503793278265062079293038793167307218731128930638186665848704222324688393302278784325923479437986024970670483078584805544451619458423814405755642376634934901379634187616399593493533989381169840524937238545927325298120144957353628007914278635789859352000480501793193622860083832007623118161031395048210827834008820028599511474656916225582229739973623467909846711293294574723436121459688054965157802429443956821238703942366494290702409790765048191882044961311339984409209242999824560502119675952565515929572570876825589516546262987181698073025574562418929029274231823321844631011187959698154125345003009282653324807525429914849048706430181224993907095022193359317884802924412888431950412178272800429928311474290271125265755499484412902373913167553785685852954821781345241178559293447868121907234679454312051173919285541150679799714293112327296406401826747133978207331117133860552656299315614111506586907492444864243207803687407521452597220211279943023445426003879179204747910686917543386337770876637985968690356783362869592745298515974504025252963709476741216824057012113074313967246998474474224282218727208840923161484603755439055157507938764758923988769536011730321893759004790440365039249006686973820682039545336823789420566539053470196712827491262960238249718643690522989899797723893909798730110046184376341853114048548766029236785119857858709283544717282482403436214708336459690943675094228578788336554794818368252540159048528766250854999891275898788782577394844276454005914919868431124829935683825141895794146850476665974747367851477452700361892336029090008275401774592833182937937065718661372957153105290086960616858208039541156687748497777856765203550022829869387318817064371706874150963911222758000039329121837289224202467098080695147745219918582570277901411092890971647589550449011829736263757618207690377455608123214395750619339054289286764169302231430994806426415982720633596357388349119911073084767904981029210619228759211619603147298050090167002614066501025531241283942110351749421161180208334804902002775336815288996823710687155294785380289080364367521821756790745198766990946371653540406855638271440892068858127419495595787230161654274807408408257374319410244658932862919896607081533205225996230297615657159220795021387036672430915040593472651737375382997292592042932673049586986123286328076126851063671782347819987742632227066008924995298542218636462089165430944092518071579915090975708847509061439742751688083368826902086774590533403933686942721965649420716113765325590048917626571541577845201550423270523917864029265748179291968503263101967224592375289317341161123867193866179680123944238412464941428280958188435354966554958876225251226137051431286008442621170852311449280751873865205033946902539223172741964542779387596048292728719395275935950177579388991529420940285602812769921166031533455510908571987115474235237134609591056570546737919509433738259615610100070455749655205076163946565918910807742708275045886901560996770647362858058460508595570922527970836698962120761762265669596674289775766190908292066949819417177803361660518762415113441934394544882743108031579948543665575696572988738965966068968468096069262403457750946980104090614749779631318383619265624822030662881462820416561323808500029880782935036053628238453740717460860174336330349343938999506275964409642805008761588385347137324981058224669104311194045581502380278606133198931132897571077063672931086603356719448496630116133683242356308264183931995842359116471326691834686233326125493238593585771696971538711616034761960430798208994567984767630103142131791194136217434246028888190891714755005492017765315446497825063698798570128173939807046597099602110350175235919312444158885837765202352343135136896714668779387916611944087058466297218691221313604962485672932565577771708514132544912403286326556900267776736046003325553180959893071078654217972669035305096844504857292415887862463816365304261065382809490965118563617025814385903163948348879776253314429769798188905615399808082117031207305149587686015931856064540977934662519175058770774209656003194222458225990642437874920587988510203836645827358998352267481225277415894100822350753184627604656748379019939730322791873053390281316445102649643206559116944134718086089728962715147503435930304531804487432336923138770764348517241564577928396405221228115068138555443222696272705693412894729775812275277749518137893118422393882034050216377084844463516372504481003161189194290229770561505663647641257724653059690537444975827676743554167879432356312685497550971755505468473857593757264222826247522514033991547675554819034738110261908583882542196077212039699093032103836388448710201891795349866200063293269191317761360614159325404663836396100877788642809258447046105680046171973331571278323815377704133818217398850005318745153989038577305433379687188506060252872166213565388524522014456475734735863743989869386920426364079425234710743846023215345288029511097950193617031607472728070560096847506717201035207976441579405472074109362453117721353283538215662640275317010799870945224019840663538904049872411831341726107091783771358642354824932890918907054917678604644160420502167050164039689673223440490833724280766401217679077793072729223908084568148279236698061059831187139508087714372636963914063826680509525150193250427911129689346318324365767979946602454071660321967094408323395318409820010718391402839434441287673527193623081096174694722142601371906180074381383728487565966041145791127418399683821299127735707528785151078094239837293122321497266806954167464064031953330315294412834926886639323928646434571541456102711659400523207966014870374080391748532016693978936459218018718872009087858630356125137292405794604216715968392801794368869766216677712660075039529006190017169006111098361258440388808935052635676938438690733836751119539706392671189787830402552367478877215123012394253024823330382257883014570274474962293713314836622853589968110728619009266909844600285936351973586651517690861542527322697746448387629630141167455253259355525349324123976463075746427464910444805059563457162356955563723299760658063043833285879037647728374525667902324944153290680473310933084827306896643696073148822992550263565892222625750291829430349744839373761230737455493686935033422942666184231617056746401116728279538046417502640821451385831328929941339559668757684463143245446053190839241633808895777019565129311062448626671382894688844782363171416355766307228780977775243083821450510316384690373003944178102808379615253951194353518279200454055398104951102497559555977220529025375367044251970975571837489792010004341643822179476015286212091446220657259228595770286703324923620252562552226343538444363349646729089741350566257771971614983970706954007742470117937556049844005966052854112096234363964798975688958887649008137232861611657673155280965606958947441587372425817918698355419455991420295853955664294093915001720334614096078308158195419897608119563936103994839062095685173628282153762373578941302035310892972781684483789170261289325227722182096709326396986799901614636992013594645102550012515462620713044115761014811850764758305688889775688962596356674348529472210219340772917461973850881616824262100845651539188930682222707549012373612358078725596629717097100759832642351726223932012093923988722159898792425598522722733477609199807849108630078205830953375749975979394759711324958447328756393501442766014048213077427229946546536712959380425269835738640176040551035936714174745015402953998783592741904333355696113833711154861252512261024582562606475704322172665133628054799847547870519568018216216880991885129688283622421099322307105326815019201297502152570582220385316771178291559090403536242339924829223520113299262454182490275070888907050371698292822547807310952037668167672639793608372512094563223321069949898044748291718637008484642714028909146695062124891849646870748122645418539735520988826357565814734440250677069953098813607219261588975584981867170082469661777840596009736554870708485967148832277327333255244436846265937872648575524529940773657457992974091239266198554143073282354674409951940206626430811654465094678536680425190811630555960527944855872164313784515538957235108357864345604837375133012143325537778214057871403463159097249624814270351485501297492425375911420927941883643122287535198366363575419002818944321781180222188349626451435296614632159685943684642685191569849290444093911234882189514744513964423093666678412807259246740824729516679929083488767693459822007576376705918488544366694337383381162885306146909620453422458740332628947438682187404023057088200779946131000547093536687538529909615676314419589014928936293983056072540874704794284256750150663698377281496427227260926642930399531107418923910607380064767040706501220589613655823821236329070546280200037013881825376730085383475043345933649358626421001456441376125552839165659258097765030795644523872467734078568484195945316195373928026036321774263286962055006116394791307724384857218027607516242819343525358467411769403264352329367766465202237559307353568373831612582319790021249736190306294451084611708656253184037470573905593913835886263891621742592763223298451986329371301507863539561173489940453884609865328678310518485931724155461338563820522078953226256262876474922555559959097261316897960130122929964958511128757847272662302930227786446738572529069873306004490545649582472809247519097577237887834006229331230132673805944541188072823537356201863363720426028763868489555176965005838512956996630365069686312498743878654791643596382842483518672219779640587105792970020889126874856035592130542339531162474966665170074987134687167056298592931782529267522612352905867413357008430739369728132164154281455863084731326482517830931862471447945977958703924633533915353787719073956354791116946604616071557858690750131565331982314468986374497558928140471080845073448446669308755120352962746881119305506939921388711766997138367331896704648701440421589230630963094167260157348725848748978484333338063701691431254782609372101252222912115679387086034393173851270919204958894108018175811456619573502910236499859506806080214262463107208996992016831277018006552758707055416917905379174581241656331460091658977070318405209824071644553950340374695112148664356803769913843765958101645239629119872912036774671527965370925620194989896878742811238372148705661297875268625935823665914118712946146476598583386410126506706157217068637605710544854334156207111931600109952047924649745474914696866490029754801855929299483727672384100561539821613726264160385714037625500071617930594051733733443191808594644443222069209566321954458522674659601356638442001200738821860020951324090262808018649146585698365816247953548230780415015255713777757569141373586904746309529420807349702419835931498852977933689543658983411627777104787447233815792486495125724134847412160542456722505225454869315792807410772024045082437093072567942694195175010340361791181718542936164157086222739684446360008274170060957917635374940962243857164421200208251068327068119627884050605740693412271135981957357913078365341716783256682332205608862300271449401771071715638609416192235849159878570434880593153371107527151338418375618291197735333397145645655222363034624464159401961989382278085283514629088719572773324342708832240267426477212133478015046639429778105808660457182404596176197819501955368904393855944340540757583537319346339385176213053906876804513817447901201874662289611998918017261590702530056302957528052063245782987665205720599077753959034222744205475457404221497333480937938818211776378046628847681700575944128446120192174930638085221382548173004842955078766738798807526209675267885092184396373543835180591330107335533497829491753205665686099130287957890647620282649407736270674217340805476435838608817335040204097694338045626849988566947168609772660205350917614075790502182248797436962836142748317381362761287446242552423760814055783930308841946428477141127094294044238490540602501339401203525366317353283441200113521955460137479400139625135114631385129951211532041308204494541958249977828740766335176846877582678662222060482567369526453698201037755117350775838915211134949121892936137987558852581788929061694550672790075751737065155631501480858752034404049405213509302524811826172708370962080202616004793833319615107800373253241368575516567821198335018327176393126190605240800023288582853590989366106451312242680977111483691541353186016821428241491794949640887088309455724769581729157514793412533928419377668143198922939237664772635745929716336612869658160200854424339725383272919526189443975782980893653882456523670655848508279835534950049767491426375583947153776605127811029717325619389977932405383307574133065775957340170289682827521398004660659040239742687068072128410102535724573160261537869875799217168895653523402032827483702990016179711248984206241279397758699076764527215461446284340110570449725267909182861354459094169404744933270570491762283926292447160577106113394136300632529011983848617300102297923813510276183920029206705460172032650950513291381645366620863683722193291704856193196338579685213448974417884564165501305953925138620581021828769340463044585996670234490386377200712623443353897997885190840249385658084218724898258776609961998491604689456192734582324843954051104533149173224367935917353749710685173027269788793347965165188238830317564839453067547903118721900150832998939578835288145634714747177489385682847751541323210675916953015347177986642266050419945829686235343074217563736432090618877895937497053512642264292299050632482463408353379654416787376567056157970365685781603288279938215397540764009648012079190826719461815854442766474880825610113083160591606377875913659405302681380783634050168002562233187156609410405654101235389039066851613183191608543842552386772685298864110327625858985345180255923138935997610153119013282721099889194323921738306306322102611373039659466653303661669635147398356701876710586680048011848911760088722548475504930678797536492651756502349690168189648702512385469879637148904781326948895799495052342350952771590932639554271534389927198681477969469095571138932278951708701685094613305466455834003026022853063776917486334978920805165024942642627908426248359766405029394914799078124775313188334123370434611165561448033798810902111893412500661764460778569714509104838085435920792163203084473628069256017284471429179548693840299075263045685211097092588854872251141842890860402120337778295612444188195967346182065234455365918890506242223884397101236514928595818259843805448945155083511758473210687889681899498734962825701562341206499123085095020945588130002371570406453636461223620971300658537663185576396875269871146910916872577709085244787086285584891096690107923667260972721240220603302850248281314609469202248212483512124442879238541615402366471906884263433596568112752005146452640155140182693625022475046436902994242789447334912075666802795763927316921709034499960711660714152385354526521559039497333826971996904752688211434565410200543803632139953669446945142231419365392253349773962138351513587527396423605999248894961814067276445654566900570479466614480973426855438612191396844588072402101747157800094168435911264235102377449281645638936861611181648273512535445486365854705899763087513031286246361569879286220927227758773320474014982353601514593923812703151970760082014316768595413264070227168734414188952783434597031868115604316337160652221488330187827347403375444894859225689229933013463956347216818134232071496725090882855196642488543861569418381861886021757484812215435528631241768798396174209130051283566524409193895829776713592608419065998082826019464091948619835256569877111875615642557080614400034976843278386842129917878131475991439394026793564968104540452959943998880041691160346361945781761353037248813950586993216009695391864142731176272410676767539044150835937857141881157754220827020405842238345121410048642942781281401037100708435002313435193883282249518653653070705187578549468672792113469828469212419887251970473520932970878635125345191780699019341087726074288435742338731754470976370485166282537861304345996004904716524786550768957251491600379335819701560058390318793137633792873445970799979558147948368430388774674346897345037886578456350796591165843959248951340366693588057692277004224219316917858434434282697738550684744178438082698428273387672238312113442243457420860528832839939179686065595570673037165112058435341983869265998719035081411371753932024196693860014594122477039904028786201041628733571735152195877129856881268257258197460155046297782958149898644929684798098822730552520253178529098064548027565948790463930240709517684598466767570363416362646553078875588510338110400029804373061221966727006665112435837516205674461804028161178887827256470310095233674329446663099741014112185406424501283458463994080088985254216888015664197107184252463168148782729380770934832252048482595509032495115100157849753740904686286198962818840091180992948846045600015554747958181397180859505133649694715324240227149470085403002731349151824051842337193835793130887084493449050155398585539815646264206725479535027923436339275947534315777492048296809870918659719247957766872816300965746827342482306225249093583182943561525920521355812106867349294452667061633347105775948175058010771984650000497810131149551388948130890580539917715462420427394172138626656236162319475212499942158635615897814728149044304769403099788875214096115451085914940711212191479464624363597594041896435880734751256285172959128817177302033322874910203344108029720911177692688805544929740920923408784373274622845374478688922544502548077059379742934312176816438589522031432130178421702714187879228224647516674612429169487752035376476974982298566068548208914983274207365855766087743511896841770959453945791570133194276520237342212942927973130157340021872087399686901412159470020123904355624245407954733690304579263895929647531001579385577112411519277584604281858030613637912818211956243898767758369932792826002070782554780474759618610622870882284876508529881329602382558364210224340804112634570484229066988478446171400983646100456792286554386222901968282377372497148603511979170926907522221702874350046034894219117788191714180545923363088981125494017647680813850412313884026242044124482881457166849988093304023915041019059834790807176174389662684016091249449274511990308888949739677582413597889517071967964542750982935916681242252665186050555077093648123984929184868655239962330754035516794791341453586544014392821173415993295925978723670829935802629243110962131876920471027310804455524675511266764225890531890642691111789118510552047179663836523175569727969158306264874375647307613920432417503332326106877051648373390327073999545423779890235481162940417629986848211520024044893926796869333541140834263142204492138914038964570271016601810272587666147269242821296785930824987372353317102856200816604151546839780638690671964964606150671980955926958450064846778646489137222498560082053452525948323355760735031672471640764443948069659439376414660221952358031633135164602234509869869931383191471202842883500194484858439774380292306763392614127225707826905198724916397111256721780687698096315257339747135139385594143671930586790784579862636692432543174251542866754503521543490993871849091903251557378948297440074228655919449847302345937263526244516010180524981634992157442691733086528494027994471313582096528637290371269818730875089934523861988281433283645589611617912377539318337643200969606680753077446338727464444840738689060672345810484272515728168689639628566870506192288789322664429094866787993972736880253943942631351391496970414725444682511900060784876459854624262108570526441938163656973246131998272571663640527961987607294528443201261473502295721305319964879018992492797199398650931466983801594167792276597511154823782003108369683414923395363754255010062655715282632497484300303952740284581401049956326282098145725527189011109996070169380826785279350704495778423003673298497755888954107077035857147804739963461655788514547744453816142453071772794146091446695942562732298585010151404252589053740258916918571648364388263812400349253361239707015310782709531905495284583234224333410449970183535764147381900254598313245594814522394612023778594922760265749971795241992251360474888513100111633854213543112687770106529351601777366079068521557910845371117591022556890526723705299091248514647431286652336824964295164640015010984136444311807539466403138684375947520777930262984988650869669386318585689777842500391111990773179949936754089633570271035962386424224864975487551683780521239329924833184395552123685407748226004605247486496913985747258668353234556391991905175454168350318484980416793919415766711629373362005064729587054103695767805716395223919625359239225490617522611391582581668019323274219764261611757871266409035107610608571122189963634324869920548201365840995658796405338916178844574621375531661003320402450856965634329999571963220420649612526195592488438902124057901302289178486113476667745645194990361443782170494999150194924876852200547160217183085058584777816354180725100924863510869079147980048097198437325324811585594676309860660121016782754450391847396634587076573539709064237644452098806930343391861910372739219542345833769374675167304872293856868476243819810886231007975850335474319327237899370611455380264019915671108040439210989537540695310851778220190343752413796374269330186650592720308844510505606800574761870594850150507739516353101586808834433963364962798372834885315494811879005020572611170766442840287042057167297738507468932941487106369956532600540083900037821378676272026915554234439881715561710951284312319888776159501491836359609011210890081762306368689626697733897590466720563819425901903125633202063038651919596962040183770378748278224286637031956009874914096839526321541795034277526610557509840398432656759938997951893615332313512899376356788791017865558771281142274345179053227850535081444799095629697475159363919114139774019302710798928551898520132713356635267648273089843270351011748659085803914012928415580765388728399092159183424793304566748030292867034830961528724758305506188483054273335642231013514640905555328961058255580522740919601368059779117731567606050003703381691234213589610049715715436541878751262229672281242822900282368735329373913703832417849622535327480001563858697698443178386355563744001194564873624907613273550971055621773434116990725091434949752089116419995132845318488401192727766889691031515742383793044388143703440899861933282841059173374494973133652129894684005780044351877761918757057338175263812854945465626151474736464130168255535993538681939229389361059120445190628655694612249823145957530082949052963787359717108037465266172107808609870257572485761796186725964194856719987583610946954895219005006875747329285270943446584199355427196203404540870368355358456246492572267003391436328807062682069553720962675822962388182319894091668297924502909455841238518668091487204332961730238049971951972455984187999738809131192040486874783198541632913372614758251660192479215773520657549187758970849810188054647062733400088638142069086951014652786155481224840748232387261108382345178285779824299167080397534070135461557832519052665778003544773370763713249992689776796110962998836840113683636199223772803650832235499235212638952545988368568347093082443783838788185326256050694446590046428849390489494693255363009270149648176541746293421983842796243086934397953850752317318320759404058701959429391104031672961529619303422996537695949505300338087613481407297888892360318495786661100403409431476191221520692297177676450472724562288498700476143245883293933162460375484026383015404539006047245378627778351785044771623885175152140530992063944232049506445819047929724724573676484892248423443190035046942679639362662627744336309341911544040944287464349472411679174040936730014830165443058484977400652655779245501926778320519791567644722396185572946319300085400218100554160354419858066363144886231837271590223993644446440124853183080898158009422682400723132995412384873371306965745268030000585035627499118341298837595437469703413023767413172171078315226956975576564915341724331942017902530025819392522637645611384294746909139396773828235316245681864880880037096235100613357685459644946957090469868399771953793530648951322730494969299138820011702190493193614793144140276079297785158935856678005958275255767240658664932202182481065137420992540248579511473337297669721264555400139323965691015768121579950445063460209865785933066056789953877072466432288297895612853291705465107839549620645328394469365485958536901915584149917088295644511218201554599995480379894310861183659024687783194705122503737635671574275295179940575554943348822360565460047626718127153849223541753199435080165365852104940421850195440243287827836856270943743896459746795548758503589213913492436224905566908388186543039503028801100220753614670624721786374446462676347085096616721435629090308668528406582392191653540624108609265686363602197575200394430074563437866611675870150765073116718246239279595990337751158324232626334824853731720496249040631500727883957832761165887419955919069352120273448629057496103707556144549718150084918208587514309462200219314871828780088902874703855406956570948498581608263839205787712988431548170563796216097288534868130453731927445016646411689860398356256888911705123943498265225543498600464362951724411198556289144043696677974978333168409516299984596975465163582466230550524125873197992661360745670637845457437595569302695291873337967624956335865506947895959833474382700659718777039397979644023808962310810761778335585119685552482585632150253288729810867803662399509608162148212727321144738260045711792402260159328613172721085153615973219008006582645701500631826332830045292502240379371362970900654098913375880433950691037183477295540423754344463423710299195667952198752798277637474408518068461991163415532706404432925390336919041307323174879688941901723998301571773990337544103279094923381180728134501841295441221025319912644861511665049907888269129491942721010764697143286871922139354087660133739018711647854709874155842975534256808753456158683613316717140454054181877250047468385680958204617612844923998631509662668107597530232106549773810729657127622384570142387322946767894644308515156080706504722320370220787558145261160882368349714078153802181612255750360293428730920831624752086630228466950614805734130758308775328599484613252300239360431199513239955473793563679658159610573147154656647534197304615577621273898283322384373216791949777414694266034897617883228964652323375749818441645527609110341249382287840766715543528979498874536891684248081507532314372847498481756692606777378024509123753357940203030393035767227462940402776424430705964833275207568741840341583712415415121381333191172006321235974787977790401962007196771426243699397723363697138765380891025785607431030107814664492725612612748788354712543081324584090651428625176223239636684742900737025767161330080344488172012512623029762175599742774962269587671692891566019340962468550443955995204498812085732191382808318709506915738802377407248911986733483905574815936484458704865934159245773366498744194392578381945344831230938435309140001826625547453731450799099235662600094856679218076285485909548433312353551625254825610801212145519976393963470235213612058626584675097566499040562425904458305394554338828736789843977913123887774081465968616427932055345271169972323046636985525254829448649436005746894837332435372128429963418848805649485234014667286454372777635132156731132595835709609572541238117803133554853152887614703696379548165727966820982884815471560009176842873325317120854749856045687812428845170900225560195049824150724135348977686201651231304216770568884404170759636761782228431324758419055060200651004528795871716182594173146440828375450296250491394672629141579781706771277100042645525139270188357182762488834454297486804624516715091923107453822654074027956018936000954303836520155571324658514964542491425090189653928131059093757359300071273306153412379838819127208909991789823856664337239207687465947361335363737404526046082429053274194762151463624918940200407352952685052097640999799555503178343528644643316892727465281704751779861778401394939936765209459588984188838854441427390647779135166426363908175696091377075439844298953144593082992542607001699483233422314249634207646832359125862067860475407754400089985171582699966932082971214474852168852676372298437502451861103297047956469532301461505604447341757560297181734435524108007960632930655845882805465389528253044889894711256770309260214567273653079466832645978414784615490380195573496278064272329974705618686631019083573809318141016482007827795166881886995946516937949421463080405246543866441193256659561730532764388943821520180462510933805043545673843470890049829975664825439064430968921831163342146703756776915449766531614635743117687786020951904584153616109509987859952578517506504931092168235334511891768490103969942157740214249171372163199471311269482115930117786141143412936804242319472467338733476548272732079914654273368890982950558406313304302663430122551500626023982055803120144188739050776578810114423210470408085018452112780441437462626911986250607549636169683015397030609836420623683507188714823081256601422652513896963251219476118849895316986050798661359221724328257674030331491347831038226736371092200921023743654162455366271813248799564041593296121319425157983341300338040376897283209434817411256846303359861912860474799091924740945218675389794164575638050525435806130602673609273854800026026360244964014802143338537352558202244732306139821748997097030687480778814074857039257724545066045549909136828407680085662018144108627122218967690498411837069578525770973368193440461822967493902713944549878794351353069673390773158870500590281854433543437827436927666356987877377535978620035237440500152227065900379468443095170391519465283695775116370047175850994109790708193341617026044397947759183805638393888255936945647916993945741389098887597719212041358730693046531505096914518741679487876446340116685428263941223569861419001592712895596115164359651529314427854331407364317319476222035487853555344100846012293952674790745823234589268406452559224539152340102843461125137346028881127218017514713044190239633025819255385401965933831596625944618301061722622352308744123361164994193091701113127962322170989068606419744796553063367341264455648476423544570505196156289169736450057206494528173323162393103156452477827390320625514619349389336738752588537820106563354616766990492752792914521883365444674425124667988979122691223632955889366898814404371786557047849213295235125031614553985061263616259035801353663309971277916914581685806842567821264170814253827364707982753956104767429828713082653600823772112719007911558441792127301057804344509757989254639665023083439012804524912090779013305785345779647216439499147104353650262195138403928910241851074169383346042682374232981801443043079239695486955973467536696617419701601513928411257704927422621567928705891870730373254556488061675745387291915161469120588917399555536492139018831297717983455684251198556093455811911428406030529586150413901138459241795390926313089842397181018359435760668086325268475016189884585734857678506685757588790590933875574781928673509591920019854679011549520701977719497032537899256495435297442366613724321510700559784512302690981277231993738023993182325974273090451457999576293285913155885738794959003165615592265339167135011906817636649743863484333963190395337021893927421962135909714711036971862748255904495713980899131887126212223329550290134358508165720950924509467843355978538105933922605873690458155573582338120855878806142682136267106752890755258385979477240187080195184234472220852779952552784827303578558472472412029079964700853487091681346214846803999970449864936874396973253793731038655766253859656139996661209840033441388982580303482978221631487172038783766151842383459105076360522852450430429353760271285442957964420377205152703960877101903381662703380898894631226547710085416388901045072012014860763029546851638966462662494286962126726968178122261228453192244191936376473194997408675002769376778933722531204987516020806109104624396470469685533827350132817975061867173867382430963260628564289767165768783649550160898360144182537634649751771217775424466149989109264379873736421787529573322541256764675706048565546809143471754802675191912642647201084847618487272776086155584625161426735076942744235429580790714375895339301311511639018760091706271507054271316458738048414267978509264583987896562342158502303677811152061547108519059386930247737522382318720596968959245692343461922992024598593497123971317812577201155303627556984019472790628217949373066757493315487933739740131234722741325988767068199337194906212675122645811877482184875289215217627574715176060768551918973763443233163327524966721951390986722181233851031662181239971377967893553812020076483943105275208868173852523495515503204726809900588256124863890034049482058199773955985231092036062856056650479663627822956803988107898337392430063749893772814330154257095833875572249887385957941631153125364929714032217303196882709462514596567817886493352072269663328432110987494353352807262099836449925139610511991295563687394358762662234721220593953031284141494406270864302384490273614222875230350799547863881620222760623916885179141929775820302648611637125050124436323518186513053192433857382050306288323429215998414169930951965600899942854866492775862732474257544419903724647470053275267123748721449327671422730492477505782096871311592002756580838707994747508914319996802674987785926704356371595178569164355804513931921407484509316276723295164757267573141677501935398442289620206383610386847738710584675836079468241192604035834765877968317227241430043521281683638990620158321811178799213326158567991914303981767560557838516806110188388437320143230726112190679508371693203280451703123067284424861421979793362448798038795296532506047195801629731607877425236223108560026425787699714412600013712494345708951132676325907386785999635640627684774577775773332118668585478284474288652219143721128125834227853798182751730811605791375460101430218373877972626034236676720975822657399125105499190878346560463643486377179870358777900033969872811192925675860228311586055927091466450759253137971500773039398277045109161320189723306733697405288356293036975321704157403030216003403231613980657324940232255928481040858659524810030948286409672636602144864246369808175288990332994199932236389372115288323551718034243114453190034052748799472871547604647498910605687917690110830254019354799282231215948481435231776906776923252387674589353090103435726430500397595195472249596374657485817498943537540956500366762060282484368989226008794107035072609321231999034519581571395350057456617552745254150826115034686653449254819435989446776778265134058118095672583337809029823862867439465943886235957638781753043064921793124219405042827602827864822831605771876596681299192731381621326116762274150020305731963204581521361670839883322919111216437613790144996923211764830989287722274590137479256342105268544787976366356990668784754677364187927614990399242815652961249090803346907164749828827516765417622269140594546178335286406042229102354691433384141710380604140741661029408562960523458339933216000570522918027132632360719966595799845892124511535184344306213296889647415156778090950147085222732221700528789445005635267256593376066484075704434506077480730621027240348683592515197051935631112410081243927187065179564412519024298874126452891209491047120547509715691750100853289556796746540708607915931456268655792408224532798653753021665563409769285058941126963277925736941979280259333713367513359836923337397895102860334207474659168711805359329423710468211906442037145510385912549888122638788119382043668342310029323377176397576201043139513760592510201911417044530583477986470582466152622510189568032228664080521928144767410631126384429760932102573205332692317866996207255533973505997312681235541730488354763391564081387644874184473537994029573141031700417433492619705290678681246456377073166929731430327232955798237556926775940969133075216206149909170108965102846225459801204743165634391749617081719294516106505112221929304778700600975495540780333555463432014888887480500038128789804901738159658031611630305258634505788637317199759044653455751840127320046687267262255015052708197484543002850197902285021156381338173895669306234325244508666676730462477266405953712602105322474316316328135432312760768872827111783397688897162786305671658103159360158287856813789033450809751312033983012465380272464096036634965469372907906683555158530322784973285140091600447199572514363969984845916499942766141599960585585839641198556221642387808694303932251132446465274197658580378726946827359057632765581023240389567943355891887713346440443258779456951989817171356777038029845743373261455608430575990835289667253100062630218609604275576459746073693414492324692221368959766011148485064704729790248843312240063388878204164734156284119758680340432543277621793341188899335978689394631611756548060985686613082898424843493486549891285918044964514528272644156569287348748529447863641504925002932287567949181091991600246729919804871122984878061775771303566809091382979248072741180077919724783518791333869196211626943238927376842457141558843316244779668117182793704144875652083709487981686724662098207149890532481926486659941984256357630912434700582508267912533728447000524014879658127069535593034999569575781073062132518892629549552036674562238196929552596364234684185864233370705227833004778688277311132177478551736819992108327719658598693574372741675909765054229575555810880366384780878576322039113562479452722983765577543443806627151711794965376312500899555214015489503528579813745226071440076534866945998642261141280203451084537948398051129314509323237936435407346234033089793163785709943607418315346065505396649898436714753933486157179667274228161824556889078789698149437937305982329906541427196378610186533925710239865854142201921148015223960511375135528716216680423714056410345321805377073928328741812729700050664495373991781992512992162324826073675122056710314293579161565746604792427481753603541514018547404624162770770016074797494430827354084337726797045629234127603083249548423678215798897737101818353209913901993276714941444207688533168190541349836439297450960278621185457908769382920304648082444940332511251277429845190060426273778119658561037744053667429498422657919748525882660601794686377609030561717091207989340783249010695963988787007977619041096811899798317399374663573371294766050387639529638151929331101722009950267671685945505170967968475806305544480968289652629647843330381255106058987966849640329405667094074695921142522461569437125352154002578727034072471070897986575102677382264774068682065964752554390539997000334739520306025742506600208079971200638078535426918282445981673659127897800749376086965431578483379850700543138857436198631787492215370316265627183307801303772274142234043732871278362857064457314578957527840886293357991043952677162214647808000018631196722843009002458450877205061578891041057232976261524428734307909204012395272469320754200494492709279750915213891673144911128015928481554763715094611443912605688391667958755333863878784677555962564033590714335863190847968379297231307328399432020818339491639045371216128662222776570122670531671467987726946231489947149757454582635707479460717097453606422085950577849651181113296182118704708613885017116914341129785114419598476600348977650536915292095752585589269666435433808196197370566440998665708408540402545867821071865871884550394201092742471766792718097024300623499459852487975656828378883378556231355441880729613216509472325401677397319642672581031584650026577573437131782813552073394976433015602194431738345726662227099767563389092446428842618681841456664429933235957380894582265262104573328316510190447638377379949615924538762663718131031307861700453440364637990797404005007820478835471056988500019089962890276836198982843678486755659032280839140291511612323858814903149060775543552524392928498840013415455189184509196881328189334828952909611706615535828688987273596401344735003026359772444526083346621386704255329033775255691407745456523016244444754925420706023916550100567212208009547967718197177972110534938187417566485513498521659818289267760114989595263902927504286160484191698595133212560600410205091828374029461767518288314662022827607269960040829779931952210658167925436116415915610144427431144697564852922363939005014418910569783647441814791284405381307364677865508185361778211585936236357979655358937996507425679535688212285951294871125896852359007850757551961554318642849071515079297954718431936122099365632378096548490161604078093382397180041889411167248179544652948209236582042133119082669356455759830489669573120305010048558381195362632005255483271677735033819751773472335550868642323392293581531676457374470422238657419344212217558386263667883848922076796855992532241838492112413871103923960470459004518933052906008468613393473475217649321450389998246548354902423894429852545593381231171979788318578513351193919512837538470578224037125136560659579371469580818414886960422470120924186297623098728237060987476496170789357628825102010346721074064582555850741653250189882114171740852957895099590706946051300756906433536768232576308153339075266329031944779632432341256136702953499326542043231050429706661860178518753418156176802865360095607312193784400000850739543847426655261942316908149723391938097715909958459794991465878688350129107081339720693763629831061330255437434873391236853379109945702197129575782287677980455630146899942734075753685646867695428985173805099488657237463574335635656914689828968960837439138866947362065682164383881600088804894127167802832236828208926741875144528135370527182176968629032210940583405881558853154241791586413459334359685691132170268373078456412420359311477422925515866801414658656770838762600618114488720746576502008528083799277675587267540116917120932628568766711496285883691891894522416813846507689147637587050413367014562908141349796391809058028122429118840422850557846697170025770882662316070922794931594983765890373830038290533474231633060280543795862896913339393025320964386767894391543627655435373566010312976884622410204734495607977977177329125715616296654128486798944875057993300078385338902513598432379231860713532480016224426133032687027037847699008264700533228812772103044944824104749187334599264860747431926088304349230809342144499223553941420237374429424697429871280029870990887777862759509540523059311734266927074791302779767920741086685860651007236674861670297762619390299680910935894512586061943690606356404013157314149992844312950480537295410235221111228652626752520664076082061142705652889461640624625912661659241135034859218177130380261959334644693435002151822579074994449365289063887283825869715256504962640559604944434142072063784820272973375248888181715186985204351986872611261015323928922063367798189496201277138750638657077109601222305399698593622815903566440693129485659495464812286099747136263490734694486844520410372355876819105175336519418072408870750561813785878304445212811301683195453531082746789535716598637746856389480848588277785718646250279474636217569973881415012985418975925689973555644539950428881733496789327973993966591629907521918262139964063833064026522502717345368324317196109888914680338558402465252314023595447459917120365433627549512964923783306659711500379465163336810956315891645344842835795230898382603525085983064237289370687928958536125445219873209832787209329912280334292541115678902154414136646648028150860498740236990773185121554690121385166890231315020724182447127509744734751052582085784980595376293317998269348206045026944780521776384726750133549487576853932450119150578448778718674339922334256625413215560443551871618101576708365585796632877250836155310348575475379171122761732009404361707620668112827069730249529385861760129703885616656931748572694030041435383357280318452623532537591526741568839030705724403847181633177027182084303282843434720498261812720721955887544106743880760724537160179410675979654717418201893824692904103691586631795248589106939949713998301161434614473028326416490284912343851557940278885107665872819554613787238984187149249595881835407581389750651066445884843744492648715703868865066623913255129969631426883916559738150210438823100469333139610482633178580674985924457850045741987005658168179140085929528749273581324533031492368659636183170368605657337092220223556926521184582173906819100765547720621605467363496076860680465605109014396274459909139355186712590127761656885604006742309575836686217523585779652219723206733534541292098951075624915725900474345975037451480096563570574302465056933249163650160014698305995767383641400567286572143711179928317358078820077119427061829982211652900578417854433169520096439654357677228285316211544087549794593862376837427661213674731017091550057995957403481443509545452456820239748321031313945581282465226042920303551395439365334519377452372704016457441974767821817440017592076456446151841809856753503861726395537527095008294903713917479092673049280352548599046922044566137573459267379211302708868635587252561881397453076555779306080178243796520336354217286139466075144215178159809122325281808623683741894964685254853535926248005891626628776905629254720974550561371229859870712533819819148492696105350188683661948887558893574541107948372183070314143030582920032861331372508614255247028287427434334681958438804445260829175293143171399647559054030100398405690404314369518929719289032790364961693158063149798420069488515458627516701003489154104400393840817469546660205545741179291050639580600564437423150162638297961315481709058841194683805313213996265789059426471214575777634789795975137591866342050755124956412917287930876069143700567152876494070513210362334651279383592536208198113876049881051244013651207327445605293538827016667821738533601995667156578999507158028426092396193580419337864023175554779561103745723753066484783285637711795944767300539917867416000378264516788979457248677853006434718452180895262967132583241821260278915878135864102240255134514357596740768206062246202810018166004691779671053993542713161294991727943940595387273591579521221113222707706801923347079882106215787898081728883785508021287347187242697466584188644458375682221661624809473782260347104848389934431990019157712731313272508934846058424138347627463130597413310867795557679744293391765686376451954028191499038280974361646608943896941136265552100247740869636677370164942677018328042919136644743812365641158618074041545042054732308069218117083720172493408533424585049474907272411055446216062788468672252487689840243137697185646467742268407523608130321973350081627127116304075250125882862373621608455963905563276457554900560333687028757203352052217015582569675011747829732676487873677248400663095363494097322564846636778346084395688187502241350915484149463972486078697857936451685437267499704206722123954846760675667761712648653359240074257183091921708501642722992705636911529477650959575063945522940075142073026857963913922100850139059651742121496817937873126924964941755973611289438070428001863008420072281080277496560394264307713545102240259782605282594973101964699168559063088610081605027401175729863179968949050422516438021324680739597921558947260940973658878925184233347179473485107719462769809804954520565744107709048059688759872133389484370627951382267323665655866848140920013025196182936534683306154882861534316737376446238321002675054374693364793621601657554565914488871748387187009306081834043182302340766609849634654479181417928192325460318662953603235258821266538613108966769422278171582119190889855689803330267218277953076730628023424362637418640653983649079782231432790813003999638867651079636383186401914648289439852812730695858251269469122192869489261220325115485972567160220814335676822828624185401925501586772250218481807117795354973206026756617470641107940204854023487138246044684474056179171986613912812464771908000755635971061818403471731914268092327234576387846107041933654288778769161140678126799242842022390779731725030977072354677228112734574902000574314915836610291541203082307861850758034974435874110165736118342512114028120861475786396582319959027762511070824317502720687260958348985688176240484763521249145871602226947668024941431453478314816625837086385412941071717918964371107928380827337329606963832077650234254648348001877102949347891699476575480501186792370031767777539917817906813647758195602610411065458921173513254182332610489308570274483657317007252780464821438647515976169495053527815873372020746815803223109678070517965386141204108109889321612818213959515053833255490886215547824310661563091298270157365727256537782458947936557100739033629426969430826448031141150536191452638295464697919234535417060191797877692079013348387937467794714341609684784898497440729869694644796972989409206450591741839026827764329087228421433753538617483715038363882111018018083119663796124558781838463048795152682288544822348674036592178565683221132122407919326359510525943778541737914807223161405257072498006136304075432624476233520130852615662070745524707765190581299891391533168316928549939497578723462129528872913503232268050941736889951898521386886535759138352940232590171923544816541086280075219554182917026986610780074948317669824398530791164352578904862822740759593380477625540770877728634417781963987663792195513624963293821482504353015001824772577718545487331691727265940588947373788961591908970486863851051858223989221209074342869338099896999762706337469062703948749243151785990643161096744294717257957232842474675217475947463035084839612663706205724917033427590587165708664231289924043771172790052431402230515101157805773776687718526826523146905211124741673922004658447082893783922745991886943287324596200791847950761440961294298344803122756862738559666752109146032421858534164484758203966076834591298910248537656734980606776664195759370600937744553712618980327010082808156036864492185745637217461675752739411109070429478388970537388862011871247523167968940532441850841689519782867544385237240175881671514877034247721442733573694351351707264943947282175046989852060961836477435243847564385726888409038332940031329995474354859686286978489178862191536772673267005592058010375420006203110670666552605106022062924195869915681787520094216018439125758412674775859958036689735436684882139389709828601447149284190556178256989421820269298764884695153681459816856488190357284202553412115844932221203044812012872630039477391360497728505403743986813633195207042809924064933288119673649095222231061812921383075667676501328585756434538706831037046377788642943194295190320136684780164594417565241401343013132879028262330634620165224757954520630672811903110633732149403936389678050542684039273462036223855662854285829717386925863960488721579484754742359641277476182493526988470920180117187203830908522807766095855294786884009810712245431182136743963354006552593649715090373467583769424298308859885958677402493272539554708075763125859123131756328985860914596061662388438875908964374815805153597662695163032044761048666474173401073261967986181176062908926039586039294182347070754221953978791789655975454013876174057033106060266445631277630100908390217043698812087395353837669930239827164155871559847854179828596257664963107320183878579670145150319473743609762829201472812841383321532958439707536708478513124717365757009652925820803435473421539786012374020476236493262542902240182632137103215836671998959799123667231309802527364591115217473458131082146140748319118951605332598650858454254702265638586441658167957990084738702103450709631582745577214196514379481719052459213364206208981924757540210119931500624599579188452660813805230455947746785286522513744156620451547301796857239574684826935589462577421401746257765538086484912310391429837797778905487471143595401026961970993947788185959739263180536934907821886713701098188690000686961892138247668624647366076998621510873039964750525854595145139989225529757469044458177118697808020184373173629223467022899154042028714467461261392096579867127414335222758954131187106054335607932869976631286351722974968155980208502901155242101714343326391671195657288491928478501449502189161701453256582905486559067040908873819552932936132512510172381141339592024580006428881822082997547879906956856360427377385751283515971363158801441738038183788335396345257674984564202878999127589971338294080643201120896806785527808477927640301011951069687827889420946481310386617796530181560939551600986168669274889362646885216526675988862593139556877307295359617673995822712297860714607644682597048261197590336611256729571360744243854683820881454898941016094479639026232578230585531812152105840051625268098670081157330076134766131235212026997605019480731145763940308508005817601742488973760174694474675443256209469026442156860440314193951218511798366674008529157172726125434851141606283111595418342743843815206694825886864251614677172739186273812779541626261962812286939438859982187783376997749355562898057125221340606934566981306783168676185122543496052225099098628879162103959483164228964031514565202361497403361519528387312410887876178038154587505606305316744565651600299347300428369686284568994179675510998477764729799445495819737949617193558424114062218551548097473701429966332591684648477242627148456635948483355746551884674551128128626638911987757908673156763932942689411860389200055109691782221373627553086990226063738721411414905617014747302550435332945578424578136173805851648508547752917715599724305671489479129401222466879480896646835457589329409229839251963265728403511448726543221740906405623387561316292916506366611421732005224258813620658510487018328695882048552103127522735317317645340533766656234435763809706588957327868001069768748019780378442469734394519642343489595370715655630265695303682584755172182405141903390186454275442210059146337040514004689358898848302598898658115648640284429036362575487368244286219472517544267976406144686374035072198817400161597303965994666802758231149919073191944557929469592511062709205736072173494588639649507937294598269338413440026195207511493106438632456139737296146158173508820207749163786479940298245761339623000832384877672904722364148110799833696630752018723620556409155216486335810120662023517609700541253454683647053447765322621948892826116344345935482873832427208043753482702730755967793119578487780868279647559354652279820165765703313552073307436753070822995721256343468311457508476750349578786940464301612611686973703671553403315849451173150254411753328647156660693688157490462898436475871118999529111895478403396251602656411024466621958541625184948553672660927310372322078466888835971120451908698149574997064872217564042757537801804971708673693572751821337788254000002612030322271736589635959759660635478094455127789263890256120596650008597584543529656092646913957336814724022125143848327348246140131199235250241977701237794991696888919338134136547148750324903699928438280439166889257050619546334710161835092226470376016479537350972374978121935646580893156189800809069568742693271013215162971688194898856211753278675302677005990664338895900253897175316477879237732202610255630724302688413750540578795329504452311742797451638162289555451331299807639132661252399375596861233220240435439693342804307705703511957074497625551401802592480482978909761342801439361416399373777485912883203264112229286723259767934785333542355299056947940745389950803881305194138506359703932367331672321517277462337407000936497815571320001220757666855901760847206496549855714478266050528646684375428527361769140187980436022506884774656117693190186315964467279347461992651066342605017897158567298852045058353250947700119165093949598752519820772036505845690610598940907233822569608653034162563778389122935168246289902646089419414411961651262701476280126371978582395343242804636431230618008761782515339566139194620282914030493453343369131798900698792765633663959733490576460155120471041670770783066375464540205130333160650814421126036773447126914080351275041969541488783541510139947773239983136461595281861535540729305827225441785977795294653571784281994190173661467340355421958009661953823642342681172008005104309659805140017022096120289309462063385117431632867986551684830088656087877178655077043085916887732904814939053488003235599851503183906135254502660146495255965313872553643269934471608880171424956959421812956850494857261671793193170774249282748312411326107293121332686217341221445933679740989569462253812527716469304851515957338537872760856329885859860339501061202288092986001753380219014923207368134146941217445911619288348648793468157676625058608637904723987857667264148946234223957215403860691454909745558476254638973981758097969666515033597922291500433941316443584979993329011126485550733457047474866409225287177044844173583244249042088509094615582136602233617202841571095228729584210753838721201991240802800186765365759837004210243813880756982460878617711108377636840850481498006762229198409685173227873294404926295392486178858658578243133677776283680694732780733506736041631246809599068832841152521030078708292027533608507685620845519045800417910928207581279322505633502413498047749466672868281292013629272259355417000816619510360604695523770928186323502171532190035878232885339468698052431023089418696246972884513719777774302172799535720731146506867898375028072389245887525289264480952450067638577218186057277601833981731557151312354434523665578083175093461445067508549598199716762052520845787674125068102940626097356908740359783143657904720751894638949438620646009976769055172615620717610604991413057250502187415997484272883348287844488673577401168634463095960003090522071588971641963100561444664013714821719231588956177875543886570373703788428609927490204348090687150687465154491861963744684938698951645693254637214723233269160210066309280507559294501544105005595758289179293719141411138968854611865935201933308546828044391855875446539974442726917960121063129339645124882953790387602667312896194931151711471392414353396968816410308016498215261533430106070154163033938187624960349633311352361382831592558243762799517753540147088731673397704035446513352802055954863377011567634996820384825667563665168905787447191611642253230420121433357846838778451440913312943760307191901213948522373847694404842794310358137728381943380681050882868951437160864266721682731370958514916778369960763679492929840410001454455167592903735952733060045845819647254789607532144055152157348956645056634023850744596727184600166268326805268633999289799383372232810035788924614634471619819727600380263125590485521813392335300021901044832878098026343913618459506885132217733283850396692204805337001423077307864144734592097660036948082649031937615550165962107503594551334956065525980187326363378161636125865527558946636963764269763216717654119070763124466215779631990343661917123991779545642566633621715356121399087423214864387370115754072652579753606820541065981752128642011162749663090010487313860993748505831260616463554916302943744991667079033270291611129658300980796600481722417791708815041922213902678399970367850726016953258331948692041683374773139900568650819810635581988274286984128851786785448898614488804643415950200071515484897105123625822475978672925366949437971087855406909231388211034008430887384966957921695572739494991612893020400839433336877052621554337450003130726132393448853561587610596077348714797567193412650541159056223592004312890295349552393447450544072361082491682701133294424437253254471354974829756477377483164888094534773110963227040919454276321083989023819705914360061991840992222230212961020755603678739367781478016205654225213618090122530631732937193521043642041317829259176562996093835749923695192793528353775636538482188577294435237061521561157099650190205637111757591315203916802284521291573489109617111054105160343156588597891447235455112524532396093380572607024767633860517161063649878046132491754843708263683467010741945731078233116472166637063117176502187775107340918085777200846653667190388620419862392690766339452948046518102334763248276735410359649807968352805618381731177575369022802662757165051755493866220903699543224336715738352984147620855327622120626892442536993876487811477253027529498565934820236000557510533745108699662178948045516521333495613843786956763300744016942608857874433903005022584554666253878469707417860321523262366933357471013043304236226000424879866095473513146429487027225911110350432586941748719989248806208891463324216056466333867229917482972641425867384054789151842296466458147527544809294153062733560774967251100040431331743704799040389303772748627542090317368073380489744054834649946604541603711594593400637182753846294073090397327547057635249607975684182070858809352067391445120764394664932581323102696495025101468973606233551260524990620236470869784795832156806984544284807011778305751623594655943473867461744862894836787846963577125348158138840851191703621629278350718284330474239798115906083465140480714319296223564679180667056522313491964685223708386363734996719411789392382286072147587993483766290567399934004999034388299766992758834908752829973499908280727081644703942343454000629554928219452955310194620419071672858847743135272686775473978890014905784985777919080562957692752742177345971674132279977613567396218353465738175475143200140946430806243786250554937346785959727641887658196055416500216844297186763253920481982780244806306160068427273932521875261681465207229079489204540739916368738455673343343342257926708542693072305785266937791574198616673888464059807190678415175952369347809700236311768424152074310283584185375159112827133867644139990385404963287821897158305596759444875188763905647599159214880295417906423524459399045505814797284419490435708637478749971568373929676438136662585185177328346316808768587526897778266360936670722139595142828937701779298538305282084257277467483091723012106801915931147453246926563757339396993762308009475185463597473915321820007207265109172997607347132090747112731391921533812545155303469176755267182251507517107813961351747728303676723504524628684428594976050078863176691630730855802634589705840063069231640198363645626268186401269992118798027107252274482716948520509578491136288319502960059209723058367191065750341428682496739463171665015214912936030558794863236735919767170008458702157155609559754096793158233671472480694517731176623849764888901830252433862196769649388818480134523934229401578322522735868047230501401491871544850156516388488232986103299182890640536708140103482153453474097197990165734087510985240604747238021191382688686738065670893093823197781237784252060404266752114551120016114895367387899151553089165361633695374239567517925282051995975920466170110406344356732387984765325402952815867508746016223169842508480991353002036939485682280831879401422518876225179880294385104775655306827038903140366858566213030055063860051226681203330470301596964317199949397183609545277626430173965728685139510795208555326435911139335223157266811887383646287935051783356890177191356609858558384024959628973263014789613054860197270253789946932237973685498672683438813573905988143540013883705267887101202952990222942799976543939576073257093840280734604981815813872580473417287488413583330878722054188852629067800513532844180707348248941201234712634176942546082517206959336548035646783529953081097817686297153184285695956535500833263230558471909759506352757519082863840881694494464240369666494379974756012559525181884899282653056607256271507107417600252416783782811487243897869692090025128953297516091974080162221458626461784876336965288750541828440671897813241849822365456462237731331173191792784388285935619683926342959525442996500880672348133083667351823656059304773470780219998184094825234171874063960945925501977772973629383990400544740034623471004020379032941920994508929671040357781731272890729882471389666854332149963130896098268898388790648537433372724069181228905906906254188484220582747979240019501603445485271219028612202325150655113167282725318293861972119242015616177050565588048462978146120055388833992811886680487020015013709457555579078249301489895476405194891398809102314385288838500602476642855932062232608916222817638961194795664441885376931772052480344355932589034752798508590998642702445839485412206953162482284573839419361028294127737663257777691467018566296098307009094833319978919971409404388670841010091518775940314173335080476803596243836189158876325104865115671920630129964947619115428638891954283329658412703187150906517224875370712146912696518939551963891582158069450789314666839142474117898275249814365509686637288307502066296669789016856723660800178671869042473706052073333553486533108636156613087835806308376353221359931608874599280492219051950420832458169721902255788429755363058604746030621262958962132977501767572475103458213259810490902236126264512220201690363977775219881983814131921964580136331005748493613880826156944404947835770687814439128559993438993959615341478747472863954760410060049388877835972301426583464511159947653930409479191773606751139678690608450325458890933309710186756434880979158853222137442732703607437339688404028102202507302656546332733314615076169383478731098960822335643468075361853335453699108333979534997017711579555987250964444818332533109252913757875908055133786338745194719416195576529889151911934062355820888078974790232883450568765144161199896378854783239585170895838186746339435611969835359188751714287411575735281739201613467963730494749655043108751600351782763801172885082860788359978889269368724212396339779113425601276428883244769699302288474901519782191276395184636104117315396273616205835696391441999528988902227782484771269400064844056550873087671492183863773634417596368112094997131275520889010285476308955201058937389026070271895360545480692085070644469890976769581896193754472123663056953605206327195333057762533977222316716890544633881870131598625608592056184224267983747990602446363211383031043939831285951215282002318532654382733234866061196035373356653493289555757117525587156978393773922609321760200848024548457012040295199117069053150161434848270940751157451907777839990856567911792584114281334256932156605597952846050311501538842062209275086932696120225131899156399651623401977044485531081055868587847533907900459278632310638407994463716060317778077301637130354759252033093303435588342885668860862116014629814380182726230183069341765959485178433076557068114549300553124982509013596152995466893132262602763051710459700780280158627526933349589143720501931392757981318282909456377479760100622917316150368947623213744998629445161758908570899121765432740964328873178885385810451806645222254541442830767352270107971592921708159658700547586522980371084838638104526812593418654746381982952041511161437630483200144143174243295057522968587226847031383834588038910321743700039185438354517873860189158160311882967933978051171225540552776056505149864508530210778051719992185077550619900415260551385043635215964256485181315196405874883272065896413867297093944895650355922679419499356270661957522228749261105043772983003175549622749498652380843348056945282569928309666826424339171734599843402176137695812803332183813691125097175264678245437143218563125627336971298913605334137393118088390607388462168055852236966712488921068377324966298330358059571812720823442781335556041666248053340880598722640144388067602918737859647206777315714087745053141633765561961400699290639842259388992173560475885953914503135596122040854814323703843784656046062073422392950924402741917598479820527874659134250671372229873814329388790300261261381995488467798046992716744157778452141530751668620354853977451079490560858212584000672874613655714494361289954639431443069707565897125773705909705756607990853827842782705002043043955322151125388216118965850135970647711210162533919333725408877098500693532240319054764222597725591227593578733970866065232746917643445824416763533017479058870244348948180590604615487154679894997300617574789619987468632818093403805423801065589104655574743843163200045098926558593949128558518246407345654104846551580866668417959447645321298113702377432203696421626792171473667202056127751170045665693581403275593474200823030127919800701292174939737401286799698188446035485466977386365098536497379367491731459796777984387281705420490986538511038601052640098302911502947838429237845871308409679496680484260714046744763683202323285078492948076651006440185923281909291024379041719746928856739027064595684199255570947238511158264550042956952041392785438844350321467956591763554094517966948181030965352678475123898899096496918499707578980871542443333063727902291838605542222223030514429012497444593251808557070218803129148941639128628237083313923969412271383567485130613206285761412077841224207570544784068908160951399515402219128313001744243718707003021588341888252542558379577979189733376430771373280319719735880517503240334305620163999026531795030774693865053067975296330703580613035558929007735212545328106401966022567884692432572689575972449802513791797900475217318624028336946370714013693373756546527541667804548092064576123522637803635197793496305734671299830687265101002377019217592020461983615654109799860040265711970161564370686203259935429506961905537607931667962765490146399417391932760430287425758409999172213280081689421618876224729197057174373694481329318227980775422648599706100106259285279323528550172823666701222888552551709562259592875933637104101253039352104455020034377466260687601074972863594634141867921014204108745302335612182848772345061390281705048752254634843167620554745070958806672743656804130070200852350350450420985012573437757958951098696562216539146520978011564252697858263865801356309780143753765759671000319364065625732949202374554444513675962591942267098451436435633370001807371570395485321075371776237350233751667107562700286451377826399680840136333473229409787895188819948419341145603790270763938472644938079692119836642904083581719913797570345377506114495648094879237398193483728977670735518448032288325573523181356471247745560073187177772959644058940445683111053425219960795678839768803901336889162795425085754563483171679555393723685535514094454490891010272662061532819536231827740494157507645060632101602202943251410376665697005291921450181091898189286055432056426105833545006160940753296456478580603918327319682901801081003720198381072206960684526859007019061492767782069232688733802735767366664587580490394681292477808921046371262174482044777366730422964198807559384579728116082374829991037562417787292121479846643090687829610104981908601495983463566562457675838943069096595610171257144210180270098921189880572760484024980829908660406453811243661290029671122196324665615757097040133459588557188586832971741589674428300140662069571267632118883250014658420876305399572064986447825344799437345772660737987824652600057591835108329790923541352333151526169582887513483978704718712405338924964872696367128613639277351293136547619954261954256598982180395326260522907923689140810566304885573007442043611187158676432229873936023119625896536854261981774569388623630168915684684952286713418695010636674241925439060782914392208462984477116417965419943094805813916059724724130996289171390769701216180849212619157699150329812640464736399621336037388928551947940676076931441429383488154322323412699466376418739983842151594785292508219491580084746673788877229837908631799279833009646332835101001659458538543674612031086187481815424801633105646013574817861624881947310873844958885549377351460665275724676857291004326451115752508141915396872038132792289008005381194558784843136598295153250415505144102176828513282386637615077084444372915747118825424205796512690100936400082220851675808619338584912899380125177124332386405968841147604231060497312390184709538636820592420509792055263923671352199944175764718280362097433858001734711766564978665947207333242700959940631916703469888620304930970019444435091929407206050773526913616985911560000455343296220916364584679902588321094880814846921816403668877531541487018048918326694848809411735619062629647091770211021479955556599912161977881086770252089488894260383918079099825128151720835021755843239667809379407823705159685992490132484551513281624904735222209609874908827582154360902803111153624863558273067674456519011308777693385556052256795408475256749762767317929424685018531794284399120869508181918148338780487865703119196651043308589604214214601467894071210600337710763838092920886960796155527315738377552502286311159343324392224888209568458030887815554173894620394155629522948484770229635050875373950226118177771838486049460630490463702420110702106770324739153676060315813834108304469327303732791768533470982026456969765149632701603194806778153033031353198520467828383840805703849809336474900986204770553367769532607973185769216105535719182118840937078247339869561826468387318634282839349551893224430123797908448461213012683322714457507275361585216979808374396876786841023914434747418319816815144919122574044706471953168926600368644349967868133352790227298396018804483092376391200429810802072229531389569706408267374276966961119418199446324083477725987510956123812992576919896605318460043448220728036561750653461390605421739429694495629686651225402044396794784475894113424987690458494197339647457895280408085297193759649811107218215369522977479113110865029913649387732942368822308186544886686183562099285131861407122885510444534242402742326829399137269925494265216692834686722008645942087334039957806430939465263475133851774669575049521058570003289972445858001938177598909396832779398285991377020731412531136923463533645965714828270554761874825599122489334806772182491354817305270546148500240959242199396286693589604480342869654169836567150200857868902190138365827701528499652738575074592447451169110902481800086175394017826408495002757100512301591540549064263797878758144044818636206978337189909942733455782276737375216839922564456861987626850700456921544439897367768786177520617432069202010479903350444389692673981817286286493482139715696155173034495663234437624550897061473596914919399598446763931406818004377576790545811720680543846645041068542076671030446793616362873638014880033046351967213233145603859457008394789434534080909619378524406519997674665708690630760577174976656628989174195418049010558551044449878152523118634292157340026743277787589139567104441722184043020890778078109362641150709874983430839497989985951307075637817949228764920099337616242126416665231067303688495556896575139141833829368439620966686468440600179211959261052640700314858257153278914245922207327358600680605242679465154471256006223117246835321338661376615968947231975638972126606978218115209070988564846701975363315959419523921888593835164186167905473208320237746051934870772741472393218458755869168168065504388720688210034983139661947726985388280838421767517140831184726229488050225226306111441675757856020299429536872402961140188196559312992307960473472575355261550789906192512073083695260092325693748432656890131237873295921543647882046216401804584285398721956274415731947271573908359857873429954075806559205303455341435262456230436450502332533011539623360938107672268569295005200248930384437396203554376205017185774569871895973688795288826083078327614509461114236708804491953309638492288669390078174758565656111671564109809903933448321246797868932414017156834385385428158278542082535123034392086938071839292686148366956293917760570151974013085733502241407313068796067161849565510332837165758849237827098752283978773874421968612686123414349709167129602707045144900726285057474683907205322552018075358770636489109778071802692493399707711527255012707274762134958855548911256821057981670453137546695071194301340577476585696675227920381092579670080265002774063893459876703684864328094735989130246646554104525054875284688017491252259033350863895572448476399063641932901718980808627316364334866437904191366368108283707373487876817344718242510351598322385673480485984472051599663789161752417079360376518197293678956057505525219893424457945050238305304103799443233024552494883957489781451475167656052301285953509820998542031580787893631855925548228594946679588335765020154092195486407169373447150914254025942990195620273247500585992081105045293435074037841967341643677769932218145939576204914160501271149483197581933619246435220017648711042641098489377885219953439784287998328006424533896716674606341233277630818211416073803084034440094521756453116670113388054735235907627239030576251083118365051302220449519574906811442699597235102295765077140999409435999434061698820301177949272517693785971481944667543466713914882059702049223409558190197801169930017795762255840495144657496296328037358897128640875353938760946397776342257183942952164337564933224055088923959029232822275988197655609857268274825938660738704482122228688791653739166576402436865367206946063414601806149528000686467646580438395620185340460688251077905699752774918962643865498009223262562455728423358681207058549888248929800119397494987751910169321949599747205461864095836119594336062708092841654564008619987699390833766112219893544672505675710465312844463569026198876238460740930271095242060257316978654106878956649352106222819669685296361065483373947442354272682214269804528933948770830727942162188045602127939087774967240476950464291600003875385504077204466087328829572486797176371048489777490009443799028773995119855878493461586880429685935964123778563473288522464626795152515852704813046233440709456993606313034580065822362850135296570551291148285509434863484785910079923187413162284395160756998437601261633207698435925865449915858250255920634128337651721944846649098088232706162960160873357964379699919329936816415632877191654059793127300126781228092588525716727009817184811580914484855501532925839494169248801948029651979792082170764082203375905090025689873972784256860070724353929069043811233065212720103501170233077241558086745164287718898713614952446924437583593055800917541538350872333458024250895687535697997980169689671748454107060956082227165229306004027416212727381676842162048705522171530126233694319206537977613033070862895800417488916631627910211385751272883573158342059747696686387267913451541975210084910254387087183863439711005843769714907229692984030473937254976010541141526920437630640539065757124129442985236534436190409578890717811751557976909796469924147688779185267247516929625317214900632956914034191751810471575177085644341507785621112346280632879718308357201044930106478683935334982531125815380173509903629761268421812674377337689486315382198868631198152777558123191837412526866559102179971125432149986552216333478126836511992038589338302312312957233067373244361673016172190908343087474732228206200546265465382338014004135984846668059393187192151029938841019159334172646094446219088203884525088930397599505643848782777118118239564889581190253940982873118237785315316095567247739092246858944093208949841564284228984484305551639001159316332116237758202097325627664378113284154426883631623206665191782280152772818040506331548605746800841961053625323927550381182143417445033685403544769654053573545758651766982249992647510199859753723014559322167390645149250811019076270599952597827740198817059557483736208424922109304199981703604071949029317607396178959156971775076139091894031096652556961087468940783688972988469559819050964313258809611921842608623139996970595854308069379938540497838738944825578517988496029020657897650013877150192388660954652124109041742074718333968868959642990221209099020548387547231637055166528833694358164263382377138065782768109147311591626393339237667804314416597185628783541266684063321480188710171222895645982298842772987854853132925679938704313057956789039392828435639207464109959660743253049100599634985892418494745711868052068947081710056253535012387424477247203298937418000793546910150236451737316164806496806652973409165412920109693086843108056146964147073473371493312892105836345093277863701704408311830523145215660510442987552004298019761205942959598139110124249827777364940894400796015840875164855923786113466218170089949769400113252505579213093295058009253342547671617794464811354397254655067009000605138128097541818081022844039894229246425884011727659378585762060635751027102539258177751912969172291312340209154429462162655103452682098585035744942118870763696116427926029578758335405171743655034347194482746231545008328868028797016390605042397352659308426510932071701052763344123592902280006441491167451143952960908730959152098132996354550159390703642734327217179854619852857456789681545265009313262312405733108819319618012026472166318909934353417804773014736302284151665982802680025150562068150244688394550913180789759805307740291614825442788360011405190550380467536879211013679450407996585994952240751880512865826167106195849172998300224769052155916713185556523677526143788006479000861605990229140633098422136870944751760924642647891076332077389540329205948099016603886573382551265272181341159661192638513467257004312018370818413309897353417045858187348979661502496825571005580549873822320089108629830224086619710738332636063688903555746075308637044720670942319158359009967705449489103267442322844746868072155362896222816777861181131549839733048328402273469435931077403110452042489307330301184556289062129796998229872081184561550242437040843406338701051146027168966552844491196244647824587985777253484713148523504296597452014921126912907316723036678208426270586379218271334636122976745324281902764348769788682735680405651911766064915608732839177440210055509109343772766426711923832139848269726047119528257459977725292547777519412551248795582743345196608040763689003190737601551886612413207115369522699003286995289227736888207289420845070470275659960997256465139538654638567870929919814931920268150212915946825670202546050819922164774418805250889001717207548767874618593780627712783391781432356733723834566732822520468386811566108308742802919925733391624993279428100003629839864114029322782951106768530364644693797611873457652653756326867487433245078006652819669274628230680981161748858240820237423578154054591081395076767582555173961729399221341708536943056230931006029416048911273958390264507124793690313512947500669349774645500054610687792522530603694845682238818948066229761590680309280540836111300590247290232368400867691156085489656154996335666674401142995444259277878268135491633527083286034153055582666606915427308075064707245610305550549268424419464582872882010383486446750768002293312783901016617826786789594595141290279210210287586906498772842619716042335612465068163262818344712507907500927058585794653829781153396404541497586085438357913505906104103489013657630355764645564144828294621880530755056173392638665863422607382254576230443645057125744454760305127081826852588613345220751377496154041892396942418598328774318763520402710729262281141287180641669755815669745870797686853507540220854885015014122986915987587421658692647594593261982042151658198281645775021763089513508295754170851461456596838460124296462626692267596517785294221042574151591097548473229319337082100184301270560688727953042491526679718728182110862297176955230177903598816515831084113383071468765896496736355682311395136474341912332124212597955814049589643838375757293319944703986384732509714837800535270606557786804727010102179250085924252475531354436800717633775059081244147909944493146658043885258014370747098756957607782269218417922326478314848954834221667251330840686352779049886770464295767480999201788910318413941753776674290836354231003950606894811743250054183443680897638734817756007780512405029983500835343891062934960261451250680574497681616562425867340022323901655475162246334620683531765809742881655732813755109163863608413373433555155177185806947139401436705772203540593214419673377459860061900211576712389017546351946683894190592212321001962177614637538849576635622572061219757884145081641366785347580688203710810777409910647083125308704278917637611919222240288852828900181266406815803385786261963783783399649101155414086568098520496550059963952831961871015711155130976577791961933956663269933978801060197554562929421458755071008632647391860215041528075244572219788697637752089805548735432243208845432840801835664438710873617937302497794384576397842891252578582463351643494779086510883675097282249944459947234489059573840733816050449538761895612261219346425942776378260895353645602459191737038912506212497092918773630765879569923416173975922087589993625014081812650050966804746741372630206496311130417552204934911593715638440090255449433653038126870716687460532356726351987933782742289886429355342476284239089930198505598384055516958748050708509622645551260600811926860743459457983270010699506656092682616593840355027485317419048672515221055979227388564757761632607852017480330761394162639880457644569836570373433974349588485101882554177171904432536145327517616580778033171673256212583658504224902282485839137358296627613902958065170914286576072479545468563221182319097388126376566643726771758361703683827135778121876342877251549838690947321756047208790128106784233502061242376297064585156237625193054936422427428133426996500035977557237419246782526010510977207886152891943438435850995160570067699803459800775513872215211629785120652469075673684643830276528502165339632661518693247176419083444447109689914449496215879760566540430269455294050074204666085873056504084349761049590591484154939486803592674203284403640336462393362521767717816999112663959639630307768766946453068485731455910490887838745396110664161617888369853159553753475231506260524976597174056171572992377662681535530420471755758903572213340166805586365677924467302995010968365884960767240926651672898494174992305284331792593647835561261931188572312207318541994081623820661386863011065227094275980779076695959659751928135012021721422812909064377991209957159004935140113539640486995689984506107065817473098677445661201813239837172396005304680859394221506883798910520935877150884298053162929799894920452982178183978707241845688347179655534028950324783106420027016445783046786915195678276716778360589316308749053076241104513925924011291583627485908241797320481125172276208375895984785697721985937985327570588816964904227488497668207488605168526528619315007814883591936576431101248024099193141147000260934353560000971554193538642172830523055546080624750044586427550672419883766653308753396656754739108581612132763896038748620088306198790779385381842411785502598767568758482941956163289309865636541276468226648136360378690695288438999789944467761733772943101202661548301907103940319236308506646244145397115720773832414809067675128310520977921772110715905099234922214553777634398507153221517005261604223643799662057863181365926309114681878354977004586103872620307237785172446177904729210067163468185026250272209850444734339299862147692308411027120720269166130491956033694384171182010945033524642338687058706481633462060886948938651019360583958227959559666813115360520832308135934550006181055759882604063798757592716424620106959847332555153869676775860443191265686275194501275285434812039813086323473265268798480473847743047498363290222933135623061903771944597336001132181136706589799059400312648268806515878540703141643745389984879459886358096761158448579120467730646582826937777997900199922803984424970888352313524766539009777284571340660396252029960456925712655473090024530601988881647698471158418055620790901535206136217004835918869740368715920709736984855348028771123553703508035340453453331508924899007451371967430314422614650926419055894378099429604758314940982792025733611817066568813358320904268197180308630497104277895105869083282759485754718769085777774775227630813327582921003163154253949434826505855487130242386285537980294490578442475103229464842117590794750694464622161477134633297568354819653438650485713196146374723795064685337150596663332405126838897789584091095550867528996623099221424715713832226623141851750648436641634480575922808643738429475276267087625718579094418065449096725247448311411188687003077279763088867635833176016614292339079441479971147828426595437632068465779748640571502658444263637220707340813982524765377310990683139188322231075381978255840927257133111041604250412735738149102219520105003226083026888617645828076193514759360674826667861546198823775846570923769585608087225170736392312123907280784104593054614928433544174423667332738792300587090685528882086007322954335283779331986896045058414170813242656082116481580510891178315395142167265203637802253766885827314629356301473196118236851515246810921988725231094567963277067684069334927606872296801264468427029190662070236125259627627459508343556867028276223218314456331903108801740902137751024087980525943477579429582810440444047794878929375330834207080964012941155442277906291989307754718818482274817634408748000394563314927735138379448217601513687857917736031622713602287911436578184949605133245949388255168038236870050822094564743105711937112657555765278639238587846789926487711675418970906106737752416144688414888806983248113034430824749786217818200893498860180590668221407803229326818794700577111757842452949102392563611864000264491574676523364480658213607128813049224742120199434980649283595678646542072994934177072275439932798684607325670891774510705031478774404819476569530166256604748271413656082823768918127363078690566800906240772187481117328510293166910517253119932187278091358458621177053696190691457322623959372821151306424858529906760985120601413996809924300848119059850417743597030574393448984764801185234029017574574966712802810786802540414455646305559181202027421431406698408703202801815989408013585732544495385826976099034225445193514220526765846394155525534874650661803073128605276920109588165245768349595917228701875606289264023965912577708020323228023794794622397117279805893185268772293226439743798647637419223273270887894554951001152567030807006067116671427413218120745681324791961176114046503357339303798465156319381831512896500095274346402021316357222894993066341103411014940531094320684328640183941640116861031989877904089505904424010571840114071054658328813830660210245186120616020803185100615181548451251190510594499243759258566917465566879187133440940467728259586893162835224163561706488480149973576790086346313201462346292431586858785948140640273814286938183917332104304833459476656586141816233320960864280804154120765851990530671540422139168614323081646459687632816917047302584067349695173918084341116849876422780874357987973091406082490182214693567772006588339945752573901350670960751172799043221373667331550066714098537545949056887073037415458278407672189419290900036630683473662917663765768254823759085614803365859274316287912190220643354042038004888291762391907502000029840605068408277352484154177777051203585226440676648410244569812597281135827934506478311328580113973259871146296483438483881265682537058502559571399744194580902820371484973015990484589913580057788280352435126144312178865295963916872848631693400133372406754058559296013485989140395410413064462049328796290013300117280054271705411160731282720060440486459685502345547359772149078804010348771011328820789386737947988656444046593963986500280654580119262626665623777411253681250130969443395789514267380760617659596197420455260133126369872192598806845425124351382077985193585199442064145053256532163199216388298339445668669480231193432875585080887315363388460221784698982406935067581027288242355422874625231470369488469153858539347447378515819153019404295648337800621296022209301135165705639823138146897332979123188803991291100271344765867456044882682763348096700449755787832957306609155701700134792193849411244819284808169725124259041405642391511805967193337261445864576350901753718234554494711929931828343999092399469995678888745828108812084541890905516339970120916033349121760447844245205044500937854573093099714254908351943679178280030971335377751417086904597786035627764908924799598847430981480341505706962570982577434694553817921485053803346409321471569934756890160918493584765762630837120174571471468713508132474623940031828370062694037004814831088996127484967223587929514389837323083764498052611382791597895440469728482342905895071842910507232828111477292539027481436337323713997424408908490887321557698532189127845440521999091972474830796832940212458906948230747466605218100326726047379611124883223687593716692175084505795227724059779970181477115218685004617448360698005043238857126369499304179066144515512396762523058003181029979120006088381518122023502928229412105943096867773637853322447791220433310613697763985208499769724456108629019527341886213554084255609535964079447639831192709095287820900156269541665229256092503311737746380734663829044788693349899990626492251309199082148135112702572918100684451008342693870434959699875016249387422216528421189665821382218831680715964429733920456757981321937480053062368033657255766263954602582366735557732889123559760614310428109747848767731668270007714966706645119747828416381012230848141864051464393284882298271640802457077065663056805274611445567700616772330244865453699890606052827158475624034282649874887595036787487516380262196775927254883242931746209798334247419156552847090155069905451548304451569649059070594376412803197035440454172732207817312412345851869835397310628019921118094824063210713384955572073778726870195659859557630570674786445344139270827923383216572946038070062774256373124497135090742334632868752829106493806058595850394160002618808603250857386748100692884518032757849999064706442488177942128848798388513182203105759487029041279968344052909627664995893284865595305720333528452262135004205440829864740507511104750159818357738858855229686095614876984702064506695118915617878588361112743863526285328266795876652684888174771884669994155581196601372399889796507758783857724560255653231288443760432911247800836274223988782814230440700223588391953090977569537221252952055126836948421169658064030319481255937964048204918391994632577258107745754096750355649602168522088618941125554086478602026294845441506101698955330258337887296021739118362865161050773496571014742058996867949712328118123036308221984385007977908773334683043296796287523999409132270851146484253081376922265671097730853408135085530834675373064988079684583574234891179101825731677577978324351699975347218147204865384994912383840900707995856601021581465325413914891373102479956640255964289206209384593172630346167951788723408379409820917328501243740065525689744058694258527062775747675116253853593907720890579891804933279686991030442640373843421688864317733025148757102645738505956060051057268639132245321369079539757147231486897160199011096552003822789952238559814885872371614830327036247591897314695242113964032688959478803092966660158285974890736314300314272286217333547743024676014453014937425046042367574247894978821388911072407277316051123207686449781189634519791355361239310271929665674868084867036645785790050769196449834548722281026492265599102515097854950177712828134197903869105031902462171737435178001931865586832912181440988795268853045698401387377783562125890587493912180679253300563750070024774947088205077646797718946981892025212924383112544090539214000063472913877783923315667496652511457142416733594928040149306038825912576622234378188694181316278793595855898466834476311113850528269401359363520970844208311441740672243209313244731500442226726680889380986662129151807821007393676547739463381476028946119673161455959091496481544648028266500294249631705210826514965116993468261156047025371134819016821830731863362194692431345003946583695047897556650544247510780174981829703533269384360324605818255553718520632636882679601379847728900515061257659939373319519137308080292049162611009890939984723764344236553562696341200340165775065187307649348466605140805802623333881239870115778828323478190906032424286852589160492416160044662304423338907467778461651179600794233194376738295887654584700200522271197568449210761580832017451472792863193229544394954626525485788641728463912775316729309904133235306624561082495219675138356202349292540422960027297511536962471875249173771408623404089565430844269591137713159617187458100312039713755634131978797540428985607594028016509485596184343838673467669310160158229069754916517373224465658085441979598220937610534691194513584545082956125625587351399662285731265836208440851164874663359998838200051031935716483873222796338538699187857705343271285086027432837899416852862921817076021826089125239546933589778418100021161341749720627478069653409051343209128194367378233615398738165614988709881541627337361638187339392672448426569367384600424834732100467026352861399113562205131505961977792984855051057487842480367001498266532531911931082233198814512229465498419100989940499995249295943102648389657644966733495033742005523677412430868484072267942341094692942920563482103071508416989216235776158515603383474715706889938056171357111010468857483361852701147243539133467972273522839632645071495946052827022328061507191927375474339562695658925633898747776087990368043419142544242741335817533215455155098440953621496677035940561358548851547520078794023156039142414460305385495186011413826565761793682335961167275229386511790369521205714400802195147529480342416899763432596975860244007480715328954653183370259939200484449353721208064379107348530772013664614274918596325095850156766294642209946015414796619830492402332016391706205757862034377109575384300023657189606642137590151527544173075716827890829620424449820911129085869157636045680513743101774900033515335593213288481164740048102387487138233717039216730899927130115468473321964147283769103723991536385722203419849932093019991729486745797857183897179238372476959724899417544092538938601717817475018013417109727491848646948288891512085140886515107023955995118410651816818465911945052854753476369617263044365611227988135432193061030244777833536802780463147862317760388256058093187929545825418362814398557037581121958800304638273646035783475283761624193369367760976832568490621697023060645887931908559134724560154737579220684115328293875584530620063847513603730783520953281475591816149939223008187857272360949471275246304007653437271421589053614385725082892014706464804771225467115882604379822965346226908145312942003033526505036155397001089536338809436549807883084879661756991352011153610602987161137801498397902365216754958673900641786932467541305231630816642263583270893906118219023681395350859713558070193281203444689041317461967949738063779783331308778452880282020468698428917341570426472089396241122484103872790699025553638875721170212234305950777066320104605844126051057403882922855348236126369301569129821752110471649712173920436833232395782114468216508667989217764686334557711614937743303818023170458540484550894669858702837533974784305119867788771373009312004340577987842239335613302140192751800851795910679443930735097829128757771786460555501299893816011827400236653953422037994770484744928280962679650440081847019421823065077540776666780922232788800121773902586226341841688177256967500146726769447972327125711482921433583749773390051492690511748898064774997750352745206050942671949337258361540416342225849530151351308301649283848310975008320623786897908760264457461486006011814001330615809832632726031879889696452893687234122235241710603746169353986589342536027093968056833032587678489029420607608963890619419195271982770721143185373146735272432861017961869540021691612435272628764337148990792520500499850828704742713882273663606932229407135130389108959211346739063646771287386365115742745095440581698624821232421309772226224978804228029082865554054459363855442070134426968330451715036646714809636688196966457097650643293044893808636550478370860673314065146672892214733012228005310192606810080777828942265366670923032730325340779524336525748729732157305031874482340279599448132947400120286201141100197497852290369378375182113464616702089190281221464947876547094791969133428547379035437652806558348644997636459641638929128806873012061407923238183353502216359127299077262265977195736736970006245665457757586740218599291579993715081163091433489385337016803526837549987707731124626468686043801381282461739521710277700955032888517936778469771610258920754993761513449641512761119329351181827550710073209765071752796850826792173123306074891395267565757003643242203771131975868112096357477836300571275828225232898402552805376450427969835832995791565501041732563622062101035110649158686109199728783177696126787231984406061970043498328337732364760810695927029625101093021822949900090198818602596575289543227163570239479517432450177645025588323586319570354545014128382797016524328367503633346979943007638538095446505028610359938927795990926110810296674626331957451113566888143724611670722214110931773571067269765021234370769469982754926608155517558100874009950058846746264011603210816866249171531732607698249185469258112688599075876565185862982315637826098293346695060352912312874972001283284122500635687616436351265210069604952526036496939517337887405914209430146339726314807867227799477602574121674971984544502145744902086278133318284543792793630123278471915916474465079450094878665308744734162104741800949892422385487205046669242002827857508532212150047713494168308422087038860401268968804150014906989384975600541535040197603802394872808946779684643344106636695472704284509154767377460310393790393849683505995292944196574331501255660163322318173868469672217236803352516442605495963973546241842634464015486026610411136127147534998878581268291872092771983728198304572293195298874975479356406134196814814416449193283585458941477390022776480217154363495085972739571391956262821020074311629284733658691183916989843902002023787928857192703694177638454539293480800822686820732387227993224912174500648908171066410191713545666711927359894133187110136468881768322148333878001745839458382989399289436864763253229275208022550300180494092596271491165217414234712966603219134820066541331818043603311075100268678665435720402920590134459834010443515802159821901964260625166278092405539956862119615862607518041115205889856477804827058543148549686797623084057770356403534057609791478107693613967861899692142092036670846253083174084601619348769922040360021008582026015998875303481990821171570969321054308813692288737588317448247444032091497341573249073617614781114047132636027549293083197626393042063683410727174238906183048880312737581475371656733387649798076030432477481497486730047383554501626856432172577308283324866420345116885114673445097000156500209488120722008506068282996518186906974805717259485697863357654864437688477945830696952083002200539689775056878150797402743333665524592418438057991147437388294652076019503982727239395527259709170127228118201316775202872176237174554382604927969282704177782773898506244520075112828586219386417295170789150486315359050035910983575943232738168965051862399594940475193893850953609115535678320298003614734827311525510246844154235109248068294932359296939823298751040588267354759175481464687314319846183554208390397778909211887241662887649170471141036236767062348119795262147890162434455681269601263681592508450254944491105172709411640291158212806710748392460855173319388628189601548599618248265140958196600663147770852488905139643732540667675602109104886122926406868666669529861296552307315490771969614165918881051766514011740018834506899336196595208582381222072553505555994964076116602355033134711567091812687354287320953696317464704828888669420871352181864819944707372784214288468241003058870475782251835252689655629550409644675229058207846270365418488660254509916363364652254700170896256765780460264587213925814085405645744887856820074217936441198952747213926311927598250583107178130064283448115979748817296752585727341128626577132867217821343538197617719188757151464303841228977770400996774291477588046760618572916824635398440605976138678350455643055824756479367252761230098513331736889760367163388380537187981737406348226201186679160283356577786705406868101310427581533093293684060873822244486253410613153899670086752733672902424759740951206007140803043062950817891082000202931727464026861984186822288971588870146188333058978702969345488727579052402006940254150638508744239765665771090287276748013980400798639262212066959821384153014378441038119969915998250327112865181271866160298729071375855386944783424240373308530726179312409005977166329116585699769957558153289126345830333224993182853548173552186107961766980749204842200353346977351696837079594812811588187802795411111720307412820012798598670277492638501597995991061440703870219356973837876378784535805027627891144258930333982385620430434035550533598179047050244729765056687627047039407966388229529318662186171046453121577631492115252685799813644423999769342591552212705341863469766079283050224464853970536376049639522749740478454277268953270568221756934662285892273458239705884489694015795178820582240843824100649932542637599858698819493728601487356932326258493624811215889970514563386784535940057324995024841526203122853048313040674769123549641977717139867369629827545702557198590124957323359343835375858531530860495331076102413006851595223223384958227675668738070875089082243807253976447153615712347372329995303724473340206834494614849080513923033543933961829873710295338624100406924615626894782728337130435746758802801693428867118893064590741967109200337505483826214716148443091533601377874580543272986837732329041266889154346110947555785970167042947894226700170457018207517749840108259332587151499872634081123291266274047557206737115409830087007428286545029943461464209048649200062228778922456216001004120139958659355877823961064247658181917590739814595604767969706232635094188763045657816166368575897035147825181357215338875675632678306552158855960412905723406373813357661292889213557936015141945062862134005682096532982276246322064364665884110493913347412626501038973783404969475709046914101750068800189216506406281176898229526857082687842756815222759012211359259614106367869968885035396509249749544322141631515580819043130141958794509638681817830195346198910188398343387823872660744210724657543923750279414227368143720266269581020184353600576206435286956611891747858282712551714978745838410827666238988778157286145453957540824211248004028421385776618442849286065411425411767485514646386042863621707573648249976230694898300359458305633473960480568834568930793702538953211857370563618971962812925071516111891946370593215491344981823074579243144499865705670339347213786659061502069748538915748240136562105735061005152388425945529051766006860317915396668509834911098487682344921125193055207747247252987732436358026986825081576007251563614065610291437606017310286445808133912203556150538057627724565283454575075311865826013313025331947579682287383423491547779079475555529014916508330413588850690039611074542276388318988975112942854849341997024595453980895663506759296501653101781637287709627652614577387379906609614216549466588932375619697802273276637402714614905529267331276262351287148319143955569437857629497257834766560497319843443993664963749796572000563855747043581650841921208499874682530691317676152804530798505413400837161682588644749916724348195812364655226777101666103141494136391734622399496923312612486852106977538025207264328830038456081964408223927045634561493089784355773400006504051247530104039840499592005944363323428077703486383296885016128117533123527653433487710931743803082650164311419164209089490234278994163969109368948338825540218477623781191333878432357086324261363217467946067539197681140772179739792981678077903383519308391660772347532256070695175233660212917298081320735100597512708453071571194880694977287606618901111763717645997543819731126977970759611994655223140513269324475429090676398792363887131616383300370385416244266295591456387929147309056685372257337287935309446217088331636081980089688778308467891462051259912689076551369551567916613108118522502822027120854476302758460873806640315963476036527910620777694960932755746890212712373609461953231742837456251660542260409293607064498030031990820220386034318824244062409610314025325291943276294606795995803432771576597022433404543437128669397044685969126138689179041442052749744038502649637016864860095104173179358765937412820989245777403113025551043885546264906954250049845803397798289946494288483436514117158530480497947262840869666857800625761140456909844393487432768916775522654307815383306443445840254587695697437121078787797379085402387142242362394214653809587789425059752793037821503978770437499177329167773373862176791075961988337011073490109364165123636734951186534160813589344810954894597539885024128766310694121783975681481276935788812840479608144962854281576072185611464698584033073533426066015389935641355132498366072550293458393408174573554069710373762701312255464016517484472460096904277158033489228057785521349667405547253611692318992063813468874599645710474812622895616540000466251963808615559714193249490838371564454309919359096949273769061986167298026740889358894972135019917574680298886166128747150090881669600340105817270904983563984071357529349646926788115737444743945326191447976546420621101856921958894023934943194297026242105113491284644166371863818063864783653030501583667337700770638714312483163697548779573956500541363849488679826293422264410937637716087056608209357739521091170997473332523761986995795658012298863958902501429941864329754210255686160646312473730348467960560054344563799418083634760010690334893944977693028946075259978070398572143295896388302710750872307301861187442362536711466409472473969033222761966432772135345991069482043300654947717370430141077164841588557066614817174043938801271867368837313903916450177294443982677717778967289650587977329815781796427450985264665306402968942760767078173011770210207521120433840200045891258072795500237938552458745132039496577142558416662568667608585682071749812012528943271577653460882729799685556266397414689840441108591109688210330268965570258732294215667395156560249209870410359289985772808108988276445533068466228750994660908545963724237822251320885079527647545048500723907052607090269671618129882858823811696217784289260868949846152311136407627324036598023343991279440510234723254926779359553908603560838252352768833004823265981719480889763915819069555810998117305557299443906128448491784360935277882137393336925247005684297988089146468863325306911520561645314163940784843241224589690920405783324304012767185288821859066212858429558622471425724799672263197255319095510729107788726980391933525027351878922174511151517435977981366028085533169438169704472488718105255796456626069644260158967752862063957379326182591468809177060096306886415825874611999957810337358336143111950851164761890927117660141611255568107793239248642167052400837934141316339520562861883100035385153917075674430929403967373213142914415422577899832417597470817007328915940039020536599566243153628018642103049381021667063128347817631033468072520346127035100235214050647165217772129806639482233851407861740594618449719317111399711993962676734822111876148026329962014283708949364011717298626484415218669034008659356790954480564069899032909463903616964638023780350019953542837993374576592250219936858367086370817728222051445745281024575390411161524145316715204475672204678256034426096406589546849221071695353359919052907009199538459622722187986280066625672482269330509497545661911259116044198292773389879333010125487268137515671217505775671065715615849972312748405772215335819127860137220030725452646787270780207666251025041843519659276481876010012820142912519578263499534383524211380437186880380581850006106521830828478121262617560024458089905712430777921084704985034617235524529745295906781262176473516953015184363312795560351803514503661626463900998479080967775441377582190883357199974852051360794921200744591500663857481196412050759424474777774040832936195063828090062246472696598025645889020989038316086520314514603899594531738774772224969388982034517910164017118476049303860078331549509028207223869463804238802055643472864868282714395598913274217593548515618080333403063361766682157692102103180368897343921308373949339089315579907773478382358423181307959451689028967203988913569752894371712963770628610048591104714822259887500741481373256370483516544023179697762489098772166378451338256217294172818743596234223434170502715528111088694437832877415123147301292766806698751379431911172964287893297470345497268543495412192309628044607490817129420716448822036245036765431039415842349268369187868887433338979596257147619089241296418136722274485201259466571564070433349618121627153712126477146040082650547970216026242299679502940942829858992301755479477647838969166539988975494389358965006957303626898257795733532238750511724563497796763958531890896575963357961224184275663349643693916880044016580055866567764761197789781292247957280033205858972563382035314227451362478268969385804743026318348261974398934212383837327756044253381346541306856404173019963560548479973690520271306688748782023152242769494543494411220557567647942204562546440416545220614441564703288143329354546714367067473044769973000209538439839947734660228000477586037016779744663187704491694770118197385570730518973616516008047243906937701092359468030322667205398508431830210115140975587980606842809332748027345531396351123720661551704923468596988870358005945134830213059594606194088965634800337796493834472127640693734838302921626761490264934581351906525905547268605534149713380086604036266033179911505942765826831431609600591044568679815986810464463662055646486004048568956745081940958665244982828331890073628380554444425986291521359637948862614441307107115000686165926535616041986954595732341392505978231812825208173198742392808726668991678476601145310770090376713445259670753591526808848980942106833345606842822460636441177301261133989418544355264980446545142135620952690731061878812117525261402342251274804938058115459394003357551604201166377094499172445168448856469161488279801686343369504846578137324986940923548281902743318199490797158027178274289392769039501532091642800953995297686125550998111729322708881516513384696274570181703628958423220202545740972628890778474424340306450159432381670564272877350726621755942131091949305274595810144979781491951898336388145523808918315766743598007636555900427636832173614584737839135257860589611077617913598480008479434919732351809205446547038999637861162257318320442919539051913433277129455833616302774063410206860864116265694697405077551862704269171729502319673459361436794480553189178059859877859956205369417259776549945590757499030416982315634464608527245308820402131172077228261566571768237207130190281210113683642424817988123681321070434495531081837052634520013337126297101542010230085956315408840463027972768813769299314857206533529547216618519536896073456644557437725882450131966478692983237829732104398315951803370988675284637009689974539375260623392551752982448314630433588820747113571574530487259214892714792437438471567135549444325153459709586711126223683067099887465426930410013777244534448389198459995179832805683088988563126131210518166340055530613761055722257407903978493201690025488284249846962875785917088574549091174560760327077180214234388694872710668796693805149843820227323123529821059979823351731297479553330756380864737079379898707054698323757650014293348240884455488875869495003230514710747683855606391522218477617948151403242813786183125354812350871605924456481492796847638011977322281305913515050785721893706125053259134271214055310793480386450660436618026494245685882968941347099918410600254709999045861028039850413983128219937658358098562402913613725602832030546284967201854492173222378292947634103966032616568080193406273551697725788540518300895806489966064375263622182355484887634076661453804416629887233987240805861736358919797342730123189970520600766777886769118575699690825019213110068801228019790221927130515574336279183683171115823957870937099536846194730176066680261114023725775795475656621181464729831075183626699258240506724827934338535665128779624157415697770839406311672175907687514194391890150013396830399230705675290213366306937638188376846773920100714136582549467317288283172292713703638734239032343657859447016804871125147404541030393665240586535022555617979674361750235922115803102710806150832820072634777659579531001566685909866251828329224725894127422690437571430156833806510582291414181940748138058713296303826213539834838023037509129464550052857221411521325717766480887109123638509881414189226962726910732978510049367435967914307630309081132276572721615754731096932005897169211894424214407914878699198644098861061703496549152623698775998622565202915497893459353674549982190267664310778013780963255386124855280462666884600723497636457490755592634359348044461690982873496822592490485452507610527937584175223406272012715711675670319164649587869786796801558655830536886032655956674111528711992228198746891892510254152660503236601653115073507708765340929328787547603745519675380552204071303050710048499535453010182094292288689211583917776571843827648199152091571649626755384656231580139126279618576552433797025618205547153737695518812311057003522646618688415266171497566740614102570009844514922199441903349160068637907157023497494093715442409646587796361917374134252120185085576895579758599349163427466183233548524635758235281216251454775823064692158826408366806757693979412897878233483203913839192853433636561814660211691143263784263336943580083282130003272972128374623388610877669833525368986809268201761479072858530624763446786536610887780660997523900967948057821914100948977795566548791638258766109433706008892803510014241343010408961166009734232423458553908097705242956348335661940634829651132989771803706820418452173426489318082450210582937076635353898401792849749281978311829999051722167516952200873569397094264919741740767375044012724234639916517574787286340116099373349357000055176602445821565112431630381300096666220918310383754476689627578839510319858496751134089434757854754067253477103620799125909709268938693601374539350061897825572913192774144630595439614599673174653347159213249505053670987040498534069076941583266758881532679742880595494454648890185380054181344924182186971646346112461875347869546151843402028323595645863288226532544549108732721547021486223673889085620739563241018498258420089266718148618783636098872326740663723177579113623994593349609132389535328412071194998073070976415129482726773204145039947179736679437851192546446663384758504155174315615169363097789752785300112547745837063450724046593684461418862915275484224016920161326383776217516409816944731509159225943933745793425915231241247783512015865790774703162302220310020714782775620950163017851786328987627954463729364713308858805392385351879008394465912686831864686825879002769420734181094566680328385320365639242303770950444258034454824283335219142383070854696909911487376350047607240509010116270172759401275329813567869236555119422223134161714704649184776122512234758178623190089101010031242714248772167761280681192997654734327456410472099439084538351787022408258941073717398554834135302576964704363736454357422508433782394236460347185664518850145749223660355543157045731434601321368515060515571100836218939884650042289806114852384243241407333206650127358325142607711120011544663275784904448502382975938480003458860874006633833558515587626785883793803840169896208292707310932915158970682060590515634968989659837403104752192538854067944598841866398296213450461455187745007787488933474203910015772879588530822029472376471699341505202642126731244955723748507800465482724237011037817461712666503607368688160306797222973562357358875120893188409688344968142623670441535429502126110267567641405741638205693389095692987712976166057226248804746983370540345044416947006588889659002206596981331128818789187443621325063877435447199981660778551551469170416487527877308464740971472223273283662113307025816396116878817343837940470613209879274077624556159888779631503646552708797546932801275591752026479478440202038820768004648558350462868479238992700609986434441784448197749181828344590344584974015388397316040811755244743764710647637705440499900841271506919547861863036028213197226342264569864598326852863113989529752369631362726300652454281273514072722798213124524382337867094450314455820119896698717027941635402686507114379257470121629694924393134069760326999923940259381739606274728735516909344576270140179535711534113332053356667436957308971463740141820701319551032622334997360126395075767309549797910688788071809837162722501899386165945119919689989207508866392440716056632487370515711126396811861700001373315173768837852899074601040478125604903954303887093972774294415265914564932101520927199797513141910955808876488108636427013616434623691176166350386911584960568763010904405585671864326995209382327655672541370475876926932275426772242745117231707398233133504197174241251439972990865034764534947986594196583232749309147315871269328196013132460672520837542807968491886830230476724108829652246754107147656838693877242211017457904128857478647348493458197674278588483192212193938336337510404669533587941171932653311830954986901881944849276891224346435472925761181847264618435803636313058844192932123166664155918867523125284736535615198110595983994668657620610068490807942867946749762437649087264163071403183790963455424577125807269455257006350865543573656908512100745036204770440847377367749940911201516613126395602211283894055951827918118627058367674696719605085231294048933933739684884741857247891807356179414519027465024687112443275119641129384811710864071579845626080700672761100577359596179536612314812366405404748492289708095185392398305289675975135814213813249622509694237464626647014716442246142563710447320199187239010154402397499575250578256465229832869988947734725556857489737510986388387862523140455576228130781566452939764660153302451177595522121171457213435573506423370907376671471048437755986270977859472421181266336124245371042047916625985176049375396676838293101131963636295423653233347376105550849488783376805173487688124392076392030264199857833101035180893357389876456167214285352219495715436475550184342254055784375796368475347314629519083953179994913881646579027149048845061494998229153319107151481902527512723830832516575564434896378252708235671566760357795043112700433609821076939134138658247727381052323811647128691044237698087519412752024958556260032698586102929882827595733553396306839828516154236135372572029855949770285727712918067319888508211284546098240523982785374261198143804276621671045480124375284706766372036485783640833571397268175801579620587592770277192241434465975920729374497618402235146183466364108303039150703408551119443062510417302019276511214299345992391734265693040827739667384567758370483865290048214440691966568085960759823083171242343339834444648512634173812739109548280570052559210691041926397854344446131634653013341380361574482882888687129041032538131631934298099379685646872904766237336702441818753860049194980747131307006847636664599547595876535034779041832024104119036888712269540784217721127090465763641530509137476571134953112013339826900026166303793503002838548889961047244850388640362258207759206081577395961849816544028602546130366261337748449310048466869772252704866875814555697779893636228165861179565932492540972150015472270774835962965594404391118710263553336254152509538848643954862023028609956649597083212729793860358013992660195189976215121061387167708826775049389320462898459134461784046690041577139371007901969490244903235080088934648586274695228116819731501040854997382144429445824881381830536298934293386077084459041524586982626980974740522373339015629959832937996135279546665260145507412853811277848486142048280714498098045428995853583314548794390952480867395514743703609442450671289411847764395400558420967109699057316403219264020574782822949545060808286535293975891175820258881352767063751994532067688380284497528366230625060845740536199660159270225904976280456337777337531240371981541165770487429585602774778440548197964213623614232022252437509255790554569690016979162448794819221323387760025495777093280471073879111706475041660768291471073169498866200081769208306078621232254773488504076649541658282371461710629828318291433204376536542307867989028690348618651436115149622949886657147407206344523752232904551648532366696557183937038376973050022087186811584524199776512025690032400650563281746336323210097449580856847385905926908411610130322565968826650679859475340160421635338389933474855356584208591945399192563074880351883594904180412750344283792508694086410721891534577993886305124107633597642726650908684050908913673201589666671935691900543650134987811056184604281785299821555403412743746360738086573943420887651409362923912669726219582531359997184681014615188032437925651719283342116173052927546092017344150565576460352820507551733862550949728082025887135277338321426759875604727263466634203973954626576067826207869079705632565329450261468412296130026044967948552873729114087943229605793970368945253193780201743254525448499437617395552760067811319368894478625205404844561802740273791942533426973131300952072895921954024062120402514154674285397976944056807157278616944997787227166427153938420124283902126848927138541626485560236555394817760858830298352444341626480665790929675992583002083635954949849348692141639550742508990221096247024044638441260058561361979097176627053644359543809243338422028318251067899076822677323456116157087898078207984532673203983802428338950600346374028975644141058048440111145640950630311737074307973210148456724326314851639754572042094940086445134177291667167884694894859835324775378596500453268825096649966965507710127797917847736366947432831658204236975581278402758039378388646982549879742886284959976179159767952161688121234387715951695488583758981389565345255781547436562551345838784646940276970325712390634240694751691201267137752383515643282915688301371055238173800402690942548840103943231156388558353747331406427642776786486437153474009885177931048326410862942380372501567398924847445465373545455424607302125656345744986013407560835341366915627980038162121192710838331545848950898009512509905049411875144518289692175648545470026911298560505005944062034034568777488994512442800914142617490177649425164802835679323190748093122743484334005708969496693746905976241831280991109583282384086905242356287905252792391945075481366394860514654803734452060563229124472776262154519722984242471365231470559199860773374260079412249838973633127539169540000354931487720627140541895495447316422505316133231585967852967526794423830778322766113322891041599483667280931027375520325473422527535052456046723022305783993300872678465840547215779782866004011344176038964050044552261880766925976160338797354026488285811168627375488365808386788599884931965593234968196276574953558833752633059556699415827745247877353680600761530778904637901920122956081184525601789256366078505945282437917862351880155846896592873421395375088326202900817250494849412431719042873477456222162326943900746501450851199564373944133381989146644846906984891249319785655454117627428902641003502331507111752853215899766824985011520145035139751046994833271256317788568161700739893202288822286003139429800482728610732916736092142694355058036035517887212471377450320634798137030756669056884497788941609823957963503924716874362819384969425287489854697320316801713141347901931383585862081742273461539234271729145791414526026541311286413726255076032480398027069629728196831597833109722896468201500011842881150259896786971384743720905475273643983486520440949905327896994991448407695983495095504993414612393335948304736689003223973928237508058280113205084917847537309021446439075957701789156043020344648499341352013748219448160796800734084395770674603091618842395553254637495761238034977697623617772984415640996258845431865418247763058401027373855501468668107033933239122358669159991107657659054266605596582182343696809759531328486950889035846924733652048994157004488158718183063496129362824868656262620761004613644902081032378538681496353922384684179209229744467132548932748273556230272023624646264126630683534244304942683288275013694606394508829607621962545924464855348517297160125109059223086449754288852288488186987313134480241439871762133959129398098599918065248170027089617604959131077520871102591858430090725840464845724357296212351849135336935469904335891357270314433656283385659956868858210255012486562089901973193578666277743650058725507132042344360795496894834028686473946131500659736645788773264026549015769183279830961581685016208025294944085009033544318619520934053888374539703872004197939244691656719601749521754486732110790396134724620834776902637318897913577952890672773251343056806525571903904155987127230037240597218318105864604799964011701703650539366932650235230419738638828875886093468566021911453495897764152946772130269139283542035295677895248550704764926890815275821011803842917536738738472265411269101604246825681068681543634462410384479512906977273601409204553091704651349329503367211536816430501155459302592771951614820352169052595335364141546421194010029523604897218089630367037578671162657100107332152625558382481416298819959111622453767581245553682317065226470068149359426635057187195851764815653115091324566547121464969013156217374422750445105387226623414259440983486087844969391885498656905877450051158432266688859738988334336193870385051813339699900411980152286304129690741661403811753415758191542003843904111655347502282768239469561606425231901023781047709422750936280232841760931396159225237938184704833715588776313831786932128594996388139517304618260666173489178618505398994264735993923456865384990064178298349513803757912142692761967700225534401717038028585196914262858300789687740742335498058651951767173447754241142121127187182728008926526352438433293236303071511176939721015385780284233427717718001361802501279406686445557653418237239553327680632907869154513168964327897567176124140383419895993693780566296367798481702618447145420112772136482489460023531827299281546184492894895006881234309685287293497703210013937237712118891739119417531373167459281213137034970129872274782459690079616908390095566290035976563205169043650335403465967721757161188427979755437975512367904701600750901298546183345771314884546006362552043870074276468432091946741432433315312764049666023351329698279314758046097438988529770148659505256343493590677830475413322949672390758129236915555978691834355395822072304369147304076331599328645503688369962472274123408662822145514153041644644583827375832189888449669276965773850289682202372352652121198601695938358852982654936096243645045365774287523687818636003510651868193532318187028268647009009682526159879931026755344835571480368855240823811500030412601628281548090007942444913442003914380991146976328622848851004691555134396752378632445787625094314224427018300864248323243705289199463821610402536582181673803411461550245812466722807913723098449457757413885430301636606006756426566571833126534939461603629094618760900879091775219476709569942509059782629091686182003848356810789151910036035192456801045406596040853844508336624269405086430521635070068733866283563773677047434029720444442916720161931297800000670874034830643828106121600422952332156537860112536416490245984739076810877062493537498947280656591130071887531227170926240272312862233976555036601418114800536439932994111501306411401688217020858080088252221825778370230464560817200103978972958039122630976491517161654649532093492463592050699973262631311644094136324632250416837006705219807433750240670284059018039081466724964831324036219426122385622196522079498063344943800428156699250807041264418407397902518498273863611788784608299692960724581494053045013029589421939278932107564048712172245601490144986562689614018510929560464695471851270990234902259611069652871342602750937579236254331881384456420511123595036698608719445153734903010917843054546071883670296223506235542402363747783640940773053654927484789831470382537496022300667334045418067360340052917916320423885592551909928863682905227957266026682670760432105290368796957972202256287896650959816570276304752225032383944747863846875942443322531158749291524902476548049897984168343791273956968081170464801525104926083619337022238162249810797667510230202080496568653576530501859919162255795491031093090951857605628411369680267589415187050301701738828180678997130928435381229802272861137093151843726234213413623766773311796793811331091386218087241358513642856695260205762389260711599668911531638456139410669020215323913669860490612660065032993722661356154923092288532746193322897693944753817380170102833381128870512217109769688605020490955335874484408671417097556737204757819450464831200883371768118824620426965330658464756282856739290448791560036540387887599882169568427867741332355562563262730053308110411044829793033899684209556691045597125310492167571362777964937015871652063960084442909110978295450135579390795652259646159717650062683402413876903961867234908783603371825801464175417776753150148125146606668633064688616317138293233882197870693673678389828582013502616267666714724983944044187114426742874845902120492214552601148650393496281073019124081232232531970250953642886440176246441653356269690968001630756590202287189970905739319484433487813591516732699441790349683583603268804763025115385372053151346681984055528639319487568697595947412890663430486627830798036669873769308664582501456363554736535396343815333705041283030574064611723724962835669510917279871189484958569373985980060712208304064956308369142871406715416476386189852736627996298499190326270426753046796924186259218081084161586576416353655045871993254231418161718119986820846445295439120088716675045823877028537449416796813268663933468270142772944967800158994796602206452855537322645923332956158617606762080449921692408856184519646065032165474320564334724846933313779508445589062846256796151044566263967021968810959447129314044056673189079951750807803966216499455284618363031883829849837717753983977258708538065150080604785727382742959436320468717749569791362431807789373043398238086839029819343242631714222985545328367542207654387630949888607947112098868814384266308397111899812320010417639556650076703873271944227195022088491872973034218697198916115766684393060532402921630917215177463230399729387794564122752583851871247854621568172060575556842084533651832063128817130070893268607012716491735570096286431104876300358510591525634982533900230110230729813871935581881241906683224447435114330434324908858915198609884101151322486847717590459613400771739789111979346251426968770079580190142103644480411518068691110104689643342631736564499862529060038496722018434281897665092963913512359202558578730200184177178359561768857708650252767175352830387851009637941903892089300362906417595961948330067431660219492208535038087631644962340372395378798522088989153146223822512234166167754932351576372894102968956055765700324681203683414242466115981779075716185125730297230016556216206206529669452425479292335203759794263822576177031190420215931548781552171392535173228305465025372295034745961187966629733116875548156338538268782323288640762913453690483305237681580969643408729774077073975133561413489589330911386204617104748111982748734600523280301307906447773305764181319285231840543175320972345957953892146871194802239306969400682763708362589839625052615931550272371672904210449090051229225539135718477767866365381844769503819592391304324644367067799543320110773912240807740986137911430663640519760028294310916451856123210627931698746077167616195369447438089006573629671194745951910490107098920303684816510499970463359065197353020488807892770978689597989988082328363445637388868317877792161652597125537861285199121917562551311714345367297031682065985819330832552501290164523859552118413660298424988526393856729619558278817557129273136639408948183933962353892062394796016228698889901196693884462920452754203960374617537186023203152405451009465445713795514057175481973038695237847212331901130856518401875244547316330166829568513996674691540351750681530307637850079854282410361254045513041796074509909349681112183119500350933185942036004811340947885858846645937699820258020585719372327847470170178750593692419242167396896686025096326382577410543902391274370942111420235675730914285532243130900146691581427592813111462687573512690886342694654584218590814725994701556738175013951288370052179863187808643209891765245412225167710546559162115473884915711246241617473284684090178045214119063585725358518783140344401603571649370931986256883165562224742178946260602136826017189722071410110223074030212198038680726394347312965122448338100461032651608671599482483891033434810653482173321175144958142457419651375249732147149825425781396760492821761445397407508839179847325031814903801035907195925267623833781402017098049979768625563282688582092481846693181984696518982859552325685341088420682339967571116704548994613265626118031177264755943125569609539523371150795364672098884002461102509382515126211264378834315501515061878853090881137854313826955730362207485501070071245121170439982983284809118271364133507480362706418439900014022358366114798910335865698579306987653758980844726537058776543917304995326763056373845153850280824899960688349318146983353471165164414007262348341460867109138270871084305107258691592804875496074298681997577851859208078856381543236349593361957625342001294251800618983865885492758597026854741794759043749670074408185282224200666671663615813175702738459695378671948653533351771351303590212042690570283658637293154114596092762309913309883900405630612459158755648695766610194236546447356063648490716870851436735759370591795251457062945384755612872741915230467669058682931978246885085280099155313441984793255084065791328133743488538594071679409358570548218145421126289224704420902106119420113257949172193555372478853657696666226750862907143565754293850480561783574684044892981897853213818505873375430831404972494028740860587448146618710476478053875028725564467760091930006687262694469120362814143968482613725756794284575606567652603195150090165266600101216992852346829013890733986485149329820958724342248470289229893559718696109279298381928327024184719048132327006798003156900800343763287875895193984714241945892313900161552945422352424813332492163689177842915477854795529947818740076825256078640361439474506156051177295443684296159915491989854087716387927818572192877529869745671704416332602172008217189159136483637837454401191349557897139552315498085303052588413654636334547969959596212262224947259871228445498794341903089458941275442480943690847552689892495767034908803817519777098215392958812594532313860863375736711100814475241721842849964058114600625487201316989876086238840157305799079150760405889995183156219715762520357855127947898303414844684267700947900491710520000973832977049211806483856123965336497399760327909318914679075339028225372546209756295821322284391470668300545393226260034616104435274072264372917579746925531897648051594317069903885700433116463510650484589092631376179279369460361887416718643587551799391046784518886139964435345284282214290030970661219286033029547226174071941052043480285433553105974073098015646367753519734353360214764395616895322606704712090713755829170140994570468288180238987462870466057307761523209436117227377159321924677377830490552668857555773629983243095864030652880516225242714513679936859004105262194205702559284435487867364854049548106510552712281298329517356508873171621834259956977457296404165137867559075075075646710813627364893286116656318411401341359557426666132124096930616237548342204136702001080246872008287759041982496650964724525478979855257890495455094715907389657794887190804912999727944898464143441488721872602714938950062005466272235646698069834515487184233695828485306822103135067660499250414271315851162742073746113766578215577897661850031145908638909603252896116265879276859036010763842098094524856623557118901969699846302289086105519914166552300213078107680137933971047059318446431593012261206137067997286952392199647614672608459918974760608074953292094195125961291850509478779234791466064774503817061295317375424218650087659428701042172489433664287502679125138374358693555322226876477912314730018993574464112521485536112113101171343509932451850250933562476561834505267437204236281975285977083773635373768414525182753412494487045792066545445614200517376034750482057295776499331146420671145053437622615045911108244930258177593674838364116059223701589509133130235755199546778295397472232135106103509669533764548308040164571803929455630241815512096912046785481489879815536514299642465521392528124296481983642736850523739180694776389535995477235503371606395206894955888364239395305599909178169488822366441492200763061005588295036218020588832115652405895057358547808156598553803283393901659835547622013385353607686635686128995003538085760913458406356490251941312936554259352173247882771831456541549403906170722698731127544828264608536258474996322743776776159938062420304069356530352202695196271923404793273263474687070405289810290299909377285016210002947947754638415987497309620475925379173403009240659118839064477858889130886297372439634757430962634722321051970611308603097130215075590495989844462827363749185399995140442085830649977880666385428273047869134642461530324456776340768042912389031685863235482590104704749544757291876799344009436647065448012468322680406681490854116385808053207186026504967726737876859966810950540527769473193570321945548724677739393917611047273201979366601788076508959630941320500211382923372944830107531078541746821985933749611731453134185149190929574151222327691822452021357713023867999533292937354387202440347838455985587304667052214966199609740939961296876935038356117220800866302694573142945328747317623031984299690497402282824183946062577820270634464857471558269128462770961985012985670316189946767418052854814420077566314139846830660815592566345501161465207319380748552146245208674234236201944537126506699823659991646371674649200553708175308336185941944752044639154894031589581120022173827243854334673593392122604653498987661442737168827377948659967850774730407149304540429291841017118612663715228201334320799025013931584117303091611099874747249614004870321472580687898397213247644773688836964017568302986301289641595072800331210109479876483984160964078310546705124176178074313234055021032003329380019205937625670016210541312012448158487552682128328506882690676037689091582908784649400449742662262730545211933934993309302543318099027681470541794545007360649248592920834230591653518746747746379424498958290659187121988383726858446583603472373593691864281325091390070814936934102815470592600197276684014279078648775338615129319315734665032511067481919737250024382220013843250306033043949763044358043768341651658975361249234504106276614003520618849230405572790256234935857101362574076685638274808937999842501283926344424075513086458791669431197589229254362872241620132663920337546033858773924208630382832962349439732435739998915681280460863067289185867997310889145866679325709168753804173022115712402339700698710422754911545687931022288960194265022002793133940709693736510441822587316756603503765354324952136150268995099373068732236962871784108825432439716862491683724234325267782364899808937726941024884813980519956882226697898450728393836180196108767900514985965096392686002898660057578990939688724538797919659043333318573208969519852359980553483383394184164136456270106925404961349036997525271507664370227626797429139180853199041232101272809684156288351573313589975696177028868586850706653218091058854071894499680712865578216336705985314900934936552513845514055849679617928333737257019290657322684909621225471021956033788423492450041199948665285570523203884656305084243883694959766531392054487734933541511165634890624362559057532035179413596108766066896488758548567942899883923909435991113789228548684421891120741952446655992507513192842635159738993455724915096398045686856361963380195306863803910351518147875257387343202718342886749327773299219834514038750455484374780209643194728437500358574405286785208315523225915434763230865470777193595673562866372911520025281063713999910885524919756563391155203674644365741492736902307951324310680543645569338433434769288287743656468216356637080510642742717271096461715849483164864537912405593659524315922654174460565290844584607453671531981271557643917763166658661373957417726893306345851847157088957973422533631136501367527973076699323839084843429867852662006082353486817063188477909538497697832313602185376418922807140950558782590413327484290315381459138744202864122931779279344315711733050336861121118131338012787905851096718588458787726080727165969383391020648228053042029947424611114321045979579896219126929565225766419292901681460818622109733843391636397966516437756304717138423270771355744467956744692570285414595035678647265630755410601128082039017165113376593266927037392606097714941078530111084170017722018155015225679003649313776616734512399983495871800851670071805996587966700357038337987716728056043694638424520178320818428369065487941143334078829215728347197580236837524307458171981990453552951594669554120490869688495544367751425822675120565723302406339659943190418961904629078157784881713985027235007311660105924097665786783727894041096682236012375414296305446731056757693731578052482497365034300854708384760817396100959961267003737375839228417045210833275488054941696310459762819367140938517707807053406121994541068872022179148274104395419827421989508122804729235614411686749551555178229106466454995306806241851065162871145586956328399605125714810823000606591860494112378842856889303575721955121846268054590826892294759658292083127696026789598901841174141998175934972047794771750458279435760525137379381473623276551226336939404066189167073992546285931548859787106972836261024553497329715927433124014744010101120925951923148820811217059567935967190021482738757326026663730228899251551608163835345953562999297116153717060803516209150654858613616576860875052280167144622887626352844024412368025383542515047071889806911896319924267751268603005349904312944834939909514536789583780234334863092146149931695571357647671247205347283859058676562794396685379836050989069236380097168418792206314739609165999449951578642730036745186739495786436187254347266901721596708483553809083354177485084528345146869184368054236779946962907927173402362620938908207479275976982700556522530514936337817554765079521466127693643504880609704122179182444983254757566855769241348540746160433030043383913513361219143703225202784562224942540581163630108298714505643910415928456194461298274224636879011927177319750329937221831968939249913761175794934531764153308561082580193824178334389762250724648306059253410936057990348083420150386595209068836333891459137781768988682771736008775865796973309128773245618536495442100886308109288208112695434768084459440025917996052027360229238839562503178711523380010948288482904610351123015381159574831164626637761841351100562238720351064172335465576739458628708360792323293362561770173932542281503855939979196905199542274419015215251975655475974810171721843386454994568911508553556207458134663314808810497776306145022068669483984534088875389553740359105677025245296190191562121357764034419632396487550827577621020029205756811247509716886424570125348608136833834757737106577881058869012691964529856639678084288718921097579946371570969387969214927346927933495701441514088600005048975574650541741102406660019798954880139204313182445604768957523775546027855138315572978194033542485987365601562226121812784348816161574864080985068240884566136732664287258628633140232918089771178935578879273079989565157317529411537543370870480030332748137710213381889042220223178583620347439923572958878142297177542318387701149938476306236806100242607344017208158017270200980148513427781997999960672132745136911024649365585480126274086707553110829739454048137552562950374762075552715731302045465542726535482845429109160890434805257508207516939634016719385863595331693973063730533093372393280126386665589004929793924769962177574059195116276998556878591313775749532583462447569473413175902992411899650630558706645425087584603267074718611208564999290118154376501202733372710041150349767095177337145548311549931444834041246666938909426309387538037131168662761095858370572341954726202277198099830097190511455233964627951765200225700849787938539703673983067825222580621874623167334037934064771824326262941325970848584830843395466132672779686952686396334639068133668602438225681624321260492433497869333461412767731744251436572987733747264813178506024821890926928000043055004174368301132774455426951473253600021080151043606153122614025696131623858018633340792210587605256131616379329754047460147031684196791826269810379232309035238503650707195537541719773728710316372455996443470251647299551849632935090585330816909828258473656142897848499151371283311691295003669234903388214517487071404333582974123673301966879128261924090213295146507998835488403120741520327836618676995288693715525987959818753394277072957444688412093247858900844456968203101821367551332160127019478608117002930106254831318062058109533327774890319676069427038205987389214825629903271481308095514038621465084929339706592638181830246213602093460453037339487428974243432009289583240313175727893811731641689251173083819008667556115385310155144456262716010681983204164917198367776719072409849052131318034531111796933289916695469475903519943090773164211694532878433266803245448290655377943491368779782553881682770198064006662925419259294726767037203255119510025927813306248414593713497628730037553889918795804624846235156061862526004657096002718064518389118529698500989689940333754856116406969596025408446493594193219373043961507654421089689227807523692538763178019457000606051118547058251560440538910375828692186210481197310463827206559795405010291391373039954855456509078144181365368838847563400440756242052560458071322133654331577654562017997042605614330478170456736511331270007405669705526557675328128729814501934836626212160946635838732839775351862746561972756890304207979023510540450766349854471060521490425552637734406637421128720770775524557658346548838402189726188028167166815703779584795613439614073078224410341488162024296317596037398493450017372217866940822732737403107847903343612021210979412492654499324197273263724779414595645624339694521725419838591298833920936224177676499535909995396572299599161905808329252319639385488707426050625725270411877783878224760416843839419768513895746120389320730479897109324974574257627992283878717727480770803732711780956370192490417940941619271785436645353931208298065511726560305244719043331267558376217121375695487802816216734025718884655175479947271880415910209863571807328398920335831157005700447666706110629592796799204661757425486098898348401275431393150762243722945734409708355375353538117240925350425224136888417090501282147382924434075733976678425933696819807527564754860773251065299664597530903617162327622325152411697898929497437245866745614254220394619482441845137534074851308506976313797811266381139111180488798199170784706130838854144227798107836077273326569327707259280634276163345055348278432977318733288256499272669817458048897958053571007658151951860297986232289601334130337671060417978932647869867268755550533411749159403511583062573102157674041333270620939202992372001865547529544480602053668218994565531551218888886414404173869752263968386069720983439378114403412938449262364578667038014521998513800711278615281926246271026518154419671249928943843392964207799760148391405289138485527300407281582327479507819371486649849334069815484526519526599345187907356550628828700713478351136797890669957883240449813421368315537656232326195336744632328107535276005460090234068220897095447529373416578539981568634172660476241915867774453458740634962509194638246829316613078222194962798407222614495531042260580962142430929672515305046508824313217530280593982151817771278460586994111374332974236562452923999713086513273699305285863373840377508967204850535285540129651303460099760868221131802011735643911094099859522864464777153588552575816022174228126326151555111762020733670345083091162325879963669696560521094741530696544190821372635251419507750081511767097047742956987929039180409045075364837584797029964028898166120907369672799675756320334292686162053159017956795750494836588203975640509601273750634393453515884567465926541784763561231479102708297256529714409685747786961981980273174320745569760780115362517292120562087610930188005790222941091047301795999850997348815666406466057560294472766270466881251401224121935143929508600574986587972508456112572150851391130573182089121333032045693491509212807028798621601580899099872384856348866990098249288856390092133407103082087041157815103927593959320913373657990908941529447254202672673743171020834313355455371726067020030988039363812057560726091908769478797490903599082834174823103593068950297194559778893733441869201196263574764196927670507100028819878125746645284234417027949746148908084497937710686879151736579967749411542508022981663010136664226853347128293343435487322250506714044327355459900144467096473418744582457806703897949655402420935142571879507957241411506952006447462680840211985584910238354173610854362241959337546143479803498677637687070753580127984705196589929797582909159327611764958425437182352551589912640475014380662581764009598969645620509741391420644250003231969735133524774641495551106128378685019811753500029509450273590054418067816817262691399066117550177411501960691646824303855999844655678514702525484999492502714676388454922490433915503972014421133316994333165041736626303375694495800541264023623861520416284984701572659427574133910376127920220060578312664187295509301093595896544172998000020603062652819465454780433792332985131164159853054189687853209628388368390988140075631564609399211368991599235545268621664227470270583872967664670941241449294512929394231827174827557903890581030350902714624343205316651310101546622749248352863989333132323539974922544677559417132512239114962526882369875599488741526550814943566521165907609945109261709617248761170781155164595419878880469763721255388364401528116222694199245023416450171120768643590919948410240912198876440032686938867143734179768287473152048866245986934326105156772559740975565643999828915977204916532878012662301239206217900399323456316407214030950457506320364121627050813194583223699788928405311516122351103082596953632085747059186840860238510883073828029179712785831267230949756816574938096402353856243326917821264905896723186130867544132687797914694789482552334546793359733948208192901559782185385498353387485584006473588576954761280350578549703098490753629561005317753731082759265310906197954453633336787197096007868962119543273186785536302027451636106980820343276074288622755598612808575368673018458294667119818023378986039856306566560400016961671729981754802877787227600600081365913019911497823150994406364619828637158291339357767339342238314830686579487662623817856281156624995525069601806633945729900706810255403581793918193556435947311473095309096570823937214775286902943848137740194078133642498018571194441997632339063434970515327663981160076197751284722971257808466405850372681472789216321875739342990038289423173808184419515118938785207513272152143094543535059207741403526209200057603728982829619693088336504412133770962090836129677997920019998478094223241303917206270075820202280237769966918484113224256887751170893991914578787532878736714838797349221283778534075066275044829063054830326927977821552718189392193822680192168237361072177376542983834294969842518119991248334577008743686008663499264648615506686509189686199396555029474738852410053068201750987579611253482954107989241795795508503923388281821440458619446980763603236985053745335421476773817655621321218081999920416659978097367838097905349222593587987148101803022342222157708008639248371027024286193707837649992439220521003674352707448293054964479593533747358984551052346864611627826739933942031705404443042545407574533504925538403709972511573362269631604914003115422508858358927949344131947359743125321164272176021355678201979705739254139793713517117919264744023109437962296803559399458035258268805888533926708531676380346045967040188484632843916847687395329383024972932676882082844958539751667384997716953409669430146822567540449414714580786191729550728189073187941019583697004491417561069881507012642430363583369196947723833440095844863331752874298217155496474592191639806078294940344022850848881266176977092547678830106274014786856985801099915047284003575178959722949791160901643128228949399969549167810500236754485929506032991764658255734539766792463975087154905993160739318627855404838469232457986386069334415984083644313414719558896927340856884452574080092506129823474849597210704665741073977108820095499592491735552859016440164046782981863289146734099105692900174088335998570864901648879793626069897691299044086344547934192961306040225055089805370420391218535290696632088889408005478254803440455245698365508473677698507407674541012647090570973681084162375176438605774782723042317667696140018491938010709266250460109580911486066542806887595479434642353535551601291025003398600776952449165683375470196527002311526892825954699697827072900127341860210619263481119913437871341421189217958500118208304166179961962572438258048462940941049860180686202424189839923455064579410801777656949933866585279904363335616776073529962941570118190370898766055689080841110371395543299495255666520148463652456623805269877354260561885843916853136421704720749830504570073543934089176943968003328246122831855390250738799613468571350176657779307164543368439753932201911771744323028806409144824329859060108689053769230705342834114872678422744465428331294749059826644026565597128374134053588752030517620244838635251637278278558015683433631884170177190611061911149167776838000632668858665305858791385989554475603348560213049679898464281588230248100735296552063032138955187069292180260305205455255203912638252123870359046587791356402120951338869028365746383200262844862285824155041089544986950948344247988098506028111281032396574144582784415248565950138234231011374249900860231706697315647550856191345947282900597961878007805522433338294789053918123969249822681258829938534522415280635876756865105080820417687728924190831392051273880188806333232373851911314491046814929995479685104188403457017692322983137580605403812838696408820481384366362491350324150431752792531056676080666463541341725259263735079090516494152205653823706455249059888175274794495097305250718096722009167876784460866672943797015762768295092939534301360581231949227615153130398270772272606809369380308963224186530266955729156739341092086932995880989886033159142052146177635149478949184112946179506712872943085892038438012715010666202846739415979047228545124734092918758908274269088449753835917817425108740218460548437014363154824041298580791552469532552639226038686807309985828709692451030391931586659212165376127251103903638597414204165744231153290911157287813304058290915026757047410585240962015911121046480469329226367092326161149142379972735656067508350612424933533784887908834697982554011927908620395453006224483013701130652808485281252062351721448757417148161168551427052640154155552522884057565234587540899394538484521384919151072456673678664067736959165646943965401486631970765278509173471584231165690967580254370755646680872919115800061471191473017436213143304968806879775316142680673099684880689639614216411257948523493447118838232681066182118363565849925711389388027855105411833565912210572419084696039807685886132838715794230566475657719048522176751719669367622984024363319354219700549178807673758216964355246458642527010564815965253726131414836364332210382174918885006601289059756920416713675033926488758077871282483805973964686851089229606438509035904941055102507640897959837117163165617611451044440885374242228638420399586371128578406826495519578375479373022968050726588702069188635696117361125248548911354230091715643869119392220113447565538825926543440053905730922504674967764389772825637581631262609545081979555902360201789696072655627151666204366389365588342280513988815026250665496434368951184337058308409024305323248282177245997143991134945285460601466747679027637912665290780689098408854119398894112380903164931728808359215728835863250673263819809947712009049867074600486503298587104248880078692470544029381512595133890458700563492282441429386921903533097342821180278235939114206283170152629392039560325680181641278688333993686885472821903186041401305886539016389129020776490922430680016696377150439066761225282697741814472741172305530044133047154684127049998241765422570665759970476432605563221424940737961826917415806375036396543735725470862628953740509879854973097686121837158039399153222183500795023798227459399828716033487030434510618187855692680630308787682621021495863456228760314341652907782377006475360342022516140583994639909049307081255075284726724764902677492394228878125915811790234758193216847203689483410795518488113611460066159488784504513308880125694882368500870719525795013843660177435658230402387483959653759455283818380992333987862706848240854731338594646499714766038227320615832278921322057197580967722139584574444070590783208929370817327892616868094000820551978157522810595105521565871961082387669839812043677470321912254522462818979032518282378513199638482141075726983894528609646166454963536154125420447281976619136658785644569689373461448670179014801034268426479650811611182341421111044226292618958922360315475350549804003392943908401652040751440080616715068983397393368199266174390505474100801688201929354796507980783969697299302681356551696092459811001379640558989421120892665651388408548844040908972162195708776544836070204481459915395463450312373654025914108363697821886249322270455786928089615538308643144624674560832391163869437578713498788603407574082012897757658767205103221240094701219335344917016176865786693737773914996166920465728838402571856079569484849769606799007843135923885455856173189222362179654055527518752773428283075245387904781179285981313949554659752903893185330406614809961208685712911759754348190385035143311351152256261680410054900417807941717061396969160430364114339460566434155918916740315979301101639634522504195603988760189698945000320124714841947055570499933454057856978041151017477129952896570965860316435468486573177358506625961246631356119144358980154361531017712447436235440108095218564078047134357388909647830067573759962485832794660273470897421196687004703352476988401671339954474472399541440156078027244637161299522326650959837174490128019034414148630683367025761716934407715075316710373744095706421117721242021455473342894059011006300591837766819599762064491928247553558768344749704153480059796262378886341481143499931640697621566581819435246347486897711898402931988654927411709305810309167461474395106291162632719945139449908815716905855164530485166036529021483205017743846797398892586604892874582901194971616718681595756003367431528768809642431349469802712703894965740968806345256640299467188780174468474942887290002276597285535215080866787120671410204075083949090130247735667931514271690827912193785596610777416531803258409256469391875086975293097348486297524263173594105216100085041686808967854550092714526526683446721241252393546617583225789374612060470887788165477090272362912936245989120050729537398455060436122268256279869445506286901639520303725799427079719868652049217690685375346125725386319136243550467902405564136696830419300165634116430402387639669708687999928775462617344629940771000548978039025179287670486771800143510474470604514571727034295415556988558585724643941635392100868410070872644480205937937109906403159965147344646612628680730355445031245356350331327164999972239627046986898206858332883515879372137125056919298984635108690625533917999401988955059135033675383914255681640202361815223768872699363009106572568026816164910698207159691842618355655646972487221455140003439163005738409763420241098672563556024742713841968420935623679168792630245982957476795748811557208673314274972282370242633826642870688156134484402409539005508353919654173635033172569805927071259629753486271600931681884077661285112353358289772887536986890790603833862914356010911902743182944186284290005553637598438876231645444893859944099666769470580724169626022216850154250695398228953038300125281630389957675783056930831599936423416645317255261734164184361029448615922948932712707152236294699193349273880068112435436673174223520779471102912536764275030439031411301697130652250675569436447987542377542980834388762200810070583585914678065562446812463060201594432181384728276506488223731493933892409317360884664406171461327948418416701643760300984766048032380318177325257754740316263340225598610109104719528474387502614390094127101646372433014743225788868568240235689091231448804355658544355930727499763360562289110949181233011603984313627729028869173522937361808432046303393913967339238536672449171002009320356218449625532358835628282489394373184897848703092983048860965610830262963246373428019079412036840902909958941758582030332883588788291687656318373560614675639263332252907510905864062066009119485399183768926443218463961845338171363948076595793660537320644684703046762600598220796226178489460418243862167313249241499393037335950129360991216571475654845770490052839460438970217521529515459877103914433521568280692420335023595501965170715383924840195413301491389306977183723096034550177271876129310466494374908645354965606924524359844437494075888007436443998746567642974732515984134858160409918046538290142719768273507967962608263963759178768779252395153366025357334133509598983114843015386490264162645598752325185297428534837076251750057547030954858882312269657524872568994464075226673258091612294101030661208917779748177497512282326251015597470580042065587738251385746236907439681957460687797051271784013759841563760984651949549149656450946846010725211783233014972687983327849443664984121630859109294558803028451479625206988371349593196326101708327476695291903596380505444152807232473834452571861220375325230410829769191466559452911919976642910570509848363231480243656391061346503405830270922952357134272642431580326526710323954947253358407602722499687032062403763246413924061311548207680548912069199234020948922410441820662741267526710243853039977614143824591667475796909626718470653614831570922089294520391268135963773241154250157473246409512481782136598945056361348318515106487187559899644231222002064254020309191823312749427209895984742246945512606123837678698137182390431926635182841641436729276835776858497727064274308866885421897071434738067311770992594460901869398301730079410680692409139757060214914536242380781566994239194916562584668125146021018673850055228445874880385985537550415711690732063404453884676897769498194853008808321478358363421322820725537221161629425660855638540869014672498224977679758870775744510236802462144708135044247923003479460464656500165428937903925872652173170056848612176215672736431974050996114356517563430433754318949790562019419923096930183226284851953033949892807055098123981283747258157046051141789618452501277437075139167032083752120091425762748145546458408831882756392525082614221340844631349708953412499075515505379266599603635864353734254682276853360135569056461300042638809223195339657782615658631393700602703566746866918077747869407644185788193319029362655801667423205962086251496375385624088848459801200215394617909738009095803775159124604038582497690905538051010407749769524152204191129539965972604053154715685167515607820692593493482318422228677550979921161044212890652417977822770450656737930295539271402409279245613701376159870118263957908544387227571107927853544460948708576819120007139601636299726261285873917993763984360779235676289919503076786502856608402473031713013366168326511098723585803977619902495475702227030382061315572020649962180220241273182792938076667168485080769547615405804794089543021311229713288769611485866483318173071839195763999642278261639667102558879773412356799166813232343594430622958466606050083919914933779828777210706667181264306124147023315934025273940668936277850966728797889111475852510046827782430494612716297952216341068767255253382624976735959998259518737477242044001179184103053306372233725933968722637463026361971426881933198145922198502235603657734232572906718652516854375777016913986901302215702473076245775007780799043461880149374722769129525844497531444963572563154183142928837482729196138396584284357703317091049119044014470304970405382517098196612623833610286388080583951543066242338994017072940669280888331419901378925969085676284751033717925091111652030918407226014764750998165146023240828343616365833947777469244588656441791221257987454692400240583925334598921468217692161870029646207190945234966743336369953949617772186876429738395176045820092930772978804938775416985002138310570474358056057496922528050797269967620525715048337309322816400283689293260000895795482787292341911923222730985079300764631216291025721060262928715523269819829078541129217713905414115205753916179445194792731395097950253929027060650059702708529951472642571244729222341468305777425470865561503325889728324714471744883713681467434089284320846647117552883948002848855339593164272928356908369805221215709187525211193851726001774449388043216992530049119967838822231503937958211436341156645449572299777403711122905126500828527025561321929175665459782729565658036910359674574901785341122984365030164590680173445547697191369800323196157659975782218597411852304203947032931624924088060461389590230121259941026788474840656288407117574778825979112690713900852916578644639350544909007387984412605279003430975242179111199107296683926775108809019489595102249521775946926328717747053024392704101117391321507917249553480351969723816926045554380797248394681558280497816624611139737180433725635896835765259181172056969215585528880544731655180424539872641624114358912103567830044976867833596646925694207958679477904247217069215360280370547405244487313464429558799153272381648440381101710783951264675293625063434347403909959693912389866560363371198732351156227481411176758534321434320158013483352530820167899297909525076710937172868630410908054759597809400522192286532549823656801092258123136061213925661613030651531303114554462667986175449089593796117601409393773933648504747528668630820317915363017738888756070910691284696342640406360753197480533188356202139832898356899497025012321903244125098094620017569343639580257736943788150127605614568239954779992879386649339846869869776747013735650290415742642103091089724201960610700154602843990818717941126625760663805585206350622608892291596725578274063736336840059161335645156424558360708310650924236402947109905442165913248204581560116039009427811476607841047687219444810380926767010180898419358530123346299183631527895579011483220983980213549946948597107961882162599064129425071224455064760991724795340520529409770092784601710968198144102307426817893821343498609617416398938575645800404571470578126584256228107616214800928348079998666064270629502234148342617512972428629325497191135394417329879451436038888113373177075642380714475772701576198614793632807595542990463087903135913027332929612992711135175171118778991378872794387388546150241734067390853399292819419475506344468507338247835689099975290056446081412605637061277959035974288349179024939725069210251180419394370866155376432789924736927123558026978401209100152840537804027767089114810870517584076067002856938229330775592952719971008874861750920127099999928675363171475826923294722211918670792134884005549917337396059019297917825639726980850686197972063513275121568805256137687070057801141993410866840238669674724004456109036081219877585441528843055784882445617312331231996931904801683571779815759185785548193985147432209808492022127261409222520339916332841591175293756261808405146541252749883595166895496480672595695306964725157024867480916497270145817610200308552223002622383910251160213888073751913973441118763196793841463481731128690213462807244858452852227674457598634384718810151202442880200786573931126496848542134748431939845620200292410432662366024301061857363153437739975387738304358285118564718196695706486306162668515179316813844215412958514344865211665033820076015622182686380393702330994878817161360264523079073601353047863431669153789620150308417473277804897541000214435299559540573027806091773897353906166113076433308639439128569171922486781412796510787456076059824308273738859342355372623292388093415818778565813063103185535703083623164951255717899529697114379232247240840748608593362229581055907304010558535720271091105642956050157741008389834759698699104556268911174478696001045998767169730204984234958077020492849956094513337007333811854889303008156553158470555497048664136133090548654832999219045401913537244831606227301667324194229075596206797989628766549507951895366805814794558457716331384948056291577863069730621790139632747362947421568981254173051108572198049535746089868273370474112784191775606632278214333074868658121248948548093150388896688003038618354673710720503789263499572208174359340853692071069076138659058687660995812807124511476183756340849565486356000033188973371396570915901459262243792108306558143126031155448904071306730281815300011314525370665562612692914950837608936108512784824275458618582729434112444531432687805158603901720879371731070359980305367865457983363728253533758255679367140205291828482126600866329703924288432375268159079688405591901914316371895104761101837256597070862160857486236995363854004722100240900224033105886987486730502575642860758409028701500759658877535348705003428499823720934832277364490816481093397828608379026095705266116183051463652730408656464555256210491956194697653232255289590310350087726701011201513288839808729002943531151595696923614963562630462343076212664105042588962103874953563395386915328528978986958196101341116653506482677002426180876283044465724492462394585272226318470516466239285910416496493369166245954355907641776053839873603992123359783819284677427115868387065025448369445325596689703654995093203119333576247674576869301662130956981877187107031298369679861585307342789278962628685011336216250354467406424174019812331409646866841806150207903415341100008157631543368879194064302960196342171627726006339522875164689341159691637241476661213873699182720105522605033551909881234489949198169908841966634685115460254645222249839673325631610011652402246309515513382706424046330582623526705051344692013635103317156711285698789356317821875332578411455549471088606958204735020238783273683155724120364437905457636694112767831435053417633121165341642344314829201804920417520800478180443137816893004579012812625980183956486783502060516885904002430207073076534786161072930645193025390263224167713749596997600195563337115935310738182558815248747665457604275219444905053902563581094049637218426234937235792214076346692309369603792078645935072842286222158220659221628451245629789618828055864468320301073079342951231543103571349019501175499598802656286837465837590946614473399976420763595678446468308933713510577183930208986445093659361345563402525565236540949394165559448954053626370522485035455868579136162541384428151790230861021345493818700814545882831496906689666509899531282435092860074690979759679749025267328168591057791215130909180092059399948801522372855599599606064901642817765125541091695763837088563297960251108539707282598190293073948101742854019630440424704596347639502523778725645212200074360537770584129055262004119887930730083322726713025329034282813102023021614034201596448788457720375009916694731670840794303670423422330012530486080888305472861749982496002036917952301321170809761693629795571734549185613359481013769819234198692076877486017926474806573693095337936404179259201839875379186142567254923182967092123109201378774625082903347465575381913124873010805951594571308259260806642058867332171678041668913670270921545459624203399240758810565281412888913716934244692707689488351960428059808979738208670468719755627121953988655982636803107821856839534804023327286380845311017939773921112955778956286061236847875841384851839848958257225235739544918724518766142892472395548583667993047091312392922819888981364889314060414252492399626475043995473634310780356949491433060851154500996033672837268927376338317040915370723127907167496933480758674205635789265799568586180035128272813227750559793981118412656113555949761620928226581236789385231893826437085137525224627024816016704477123781587908790235566929347271525696683432960073489630869369328100937843577178797724678826812681188646234060208550870877010854888348380399887025435610172098293233754103570864685947970828288707329624997777665758696129102112843447795692510184443111369694769475046112748339904186198037592553227390886177231352760735171536513808743893704628334097293371313324372372001354510448008194716278261981297499152351543374584943096130622568722393594707094390425261357313928015325896166889540116889798976332912482424713570330588855854612457252185864249387715073629624461016350242322943684534570432585986686887523103808151304159516801676952662541741101751897499972037812011143861686845093164565240731907067236587092252063398245478279689100934510791143437641298634490475318148102420401059713587686001425608784192689873872791456031749157541118239196527284747364863188048344499317193191544098042414439095109814231736463775528003907874243542575886515820946059161936704655788161117870439197189262842658259094504878689932123043073856329347696189043501740819570013688765031686565718241806794436865272882442772247667343925542453780931415012062522181653086601520981415579602042480063618267495089205160881791607526409772123691410035449183803196477334695466744935301837617575840559608646012013049303814476079151059541137374784465656407493506677467441853681415953255628395067253092452097488235081729315686977542390241175261417563008546458815007624572592589321359958889261411891149515825218867212893414117532755655026426114307025230734757119033621194120774065438081562536113070857698987598153797672826101348609708299420066669199653589210590702429450390469070670597449573889651862265699937595617641026683883044210607749163996203109333509017112838114818744815414689911995167347362401438066262092598264519533992638082710136324812447907452927629694376416631254524319669598656997721620425767569041342967632575845251382573171504988634602789078143365306180867273405289173803342580976718962175382799278600432606744811600887421407055109794125457742926886975079525416219654396065239369396794239964146914650949372714469899111013547608568048640556435223841112721235060931094562205212235884116864822194704342948725320692579743091830777286755711212985805761072449798751753192771982601517153849131393729890933435720929136878536910290815414577594169848867507043035934490307972121569412362063078454511301486031391541034181707307240246758045415428528616670519564799817514106049263845979926318390722442950864820328056916039187618314610786449588529323343464891696445191435369643125418077071882342796335172825324328536589294838989665935136043400503079119142990817927156127589899385249934629531486312614409859567618726438501470933134105131097775229159850032252308072517687918105878700862307730303765050469002354549769070335023757369398619135046236184017966048108973835472699421403550322643817755451679662793108674844696173305305859244679037043240927700272325547788350436699176822396808401863853288037085916859319537567329897462880217342897190730057531776308314383924677234937532018346869896923666952937601648153846609189499708764156392875660350139749019206475758880360930875027661279691311673894553644835812355617163771082718907531796152381550247421743297932901879609299076093132303395163248771943339401832833710299109216037741267956293014241389624446705663206467961718777274616017037783802711028567041227106866738386762078097433174320418482055860642078770616798930779807151182934408204839345882920139972683478544972150762871642066674088544403118197585488578604987338945807038481831718381635394227060112991132997736760176535095092169743254105627606693689628574436993983087006075801546471974698363142179581325215715176843986413777221657044850682438299222389624794149327820346999872960550808816698936180015018807754430181495512510041836638128838337127920312210388027550734748391119051303933697944170460680290941052696769724045925264292992223879186174393204603807173213632128718914969119446256517192229645614282241221965891506994858650829595711702122070436635137422581110222647269313441057207914620423570549840148678655695615916040852966568215672610007361764126984626393267981728191279991256271258715852953162124945228179264805984644224290318876499569887142562890341337630802765472932325758606739481199581756629022866936551885876058203207726863777106796487126657535261591460241200555131829610941435836541935116727959353392230354774010828115928155708126768297283086848270811227316011847682173092669127210689300484259570620326325910392077427923775817121163502849137175732074746620208261495027799428013439653512198589303321570045587575513059981319105501549713827855458642936903868992925331826921956727306724868797240333608531633840743864680604265208386818118341919907513365082152976063956674939377557053538608661978908248577812278945950146276875126732651777054208462993531873534680066437283184800016321865486556037718096477304433572676170001664485143937833567786595733946580381148173472550370620173303857299894288670377572360067278733436911506507965676771895848475966217552566309217707447354699118990468979319275036141997933866667539347846181298480355684526014170723454502620309857506690296944918144596431731663465052348483383354861011977252743649587982868058236797222446420299652717517275348348210839953035008245969066735501922579792020324198600874201035827760214637328095408112141775467489236592272874636710200291833303171713014023706796443401266534574548726157727257208612863579495324469050352931332183160195095757302621244751258511151945851611105370083259322347313368738328803239920093947526340769486089560417919475000283821232778156456175629643849293325615920342420838039124377836488212417629249921485465457753427251392328622474431358348122171773402671473823722374218341399157221272239127519480616803059860788875959908914088150744377136640710907865311390291197828840793584608606806703845666218826599203610085801052030130043077018931855108033368398700653380745371698484268020300976443522025505596723553006719000006716770976781195912765753704755413196777198417118445420420936951232796639960774588801285614028241735063052690129303542166947991076142570933880101068683296136916843129860103773306923578378835031017127188940833109392945571532371420001599098885734809483049671490919673244227246899055697785851694028931663481126960967955091339680835245806904112816100882781009033309214280183734744524054709089677294786644108202382473054728370961730594070868217428355587545945118807487745968172615098388618795148778564773051250348888146541720821646129006685053674740379983561259195444716533474766731336299682710695729839311712016021052479803497971623332913086944023523747210601059533323858995020935149742213106704787594904421576354933974955868816218326428379625426451678708834891572771982950484690558931538485413527719372737931151447753924701818634897646849660858379249733825178668618451388224170755326193469371578912509941723687870218270317786741918996644375931702502873162330182826691538572942525249489534088251695302985297863204446700796417999490843692695359712946656185417986052512797532476363389789398219359188860813470861108064752224666803906984359643536934324521945035550231268184537814657154400724567166732793333435148770568661838014684648017081827590765320859381145612838820598227518324011350926162339410433992885928926529537333012052395663676003238117692964906863081823841155012740473039556746199102131804991350871201882536022044256225218770269277241487284842186733376761575522122523658081761408584082266219053376535317461844408615460645582570675974731071160466404710684117914191136262715104638864293159044016930448435949546786709222657093456729539216717423376037937579578896165184694090585233727079927565541581803890955051540300406382586586589328601186292428872053235798876862660342800565422371125662627161564510518895702924343407984088188474915144764505391724137131166156177390271102229575854550199685706995916416778369198326503395317179537495515811571009118905909691047626174647338599807051624884199742119394480641534499596334369074191507981850345092489700111675198920352594559067637296484237020401774664800181780004831626783801897185012477162806270915527315706889274124556973219618924018076606040314164603978098188349835912405428694769901682176020534858221358341512047620601379559761326334072053274324662322747930746082873339746957116694500313570982787438713078465940278448878661085286154805851230321894823091289396068214801498686845772152981244147422500779910444188755397634420170799508075169643531616163777723689661374591183547170476147565994100821227030654749880793538572302357522490709101211423521028324244727526249807514296909700394115162029222018619796502022583535802003320856308677661477457649421870069835288954155737042487294598439078093612900364563762316573200593894395400948097286122293628386403309092100269530647575241892430481528385432643322745122825501644931985972304564072474881898908710417038933187447155204836368855868460918108150025955233745363282566926803494138643760537822145859649994368857589381805649701856911343327014039436551630556457531218909848854436046472125663732036253444349802332381737014093125850861674126701754975526023079353905237646147250532718283654465720990931396317753459912191805031078354021794889050176859280653504761691480900383725482257910248672448446309888276871424957999636198670501561550647325294553859100763505969710410987946491104876188140167836658881286175559516461040347320319321144700158352537491328309535928611369238990429364576009987254227414802434277422812250486304567385954590225201001043502140638873902497843342075001350957680382648714318872903929547109781661219447534466709387442787948617697755296748562318032338629322498503167043758608200133548943911248715586262509859872174522976093287383975461309911567846649422189672762491322790481814608697686100235850534687550244182314898839831614921736636323080210982646030549464661477687314089244160655982075418308201741049018701164094278397484331297885230985267311602435147590195892893185733152572975471183690249752228506527609697429453880167488356464502436243299477407614723111027698607358177936421040339064444507879510308658156698413292419925893986487954367469659208653036869058531048753558903894447972509407159945200764454269603124742881809495782186234491379945500155939822577339909672712312409815326001135075709105364379614406574864104785573154199182507735305671494333097959144632356462823491858728137103008108433916654979277405809180239406190533790732192218811545556731704929965359634916188721694785292661284468763431898250689809109810293560932107945600972655169523605212492197821910779195121647170365681452693590267751417069759801420907042566522341596034602529765402649057698933998947560777814618725881370307888128564825435111051736973292416617241065679342553202954770974432500454631272416411975885711151007834159178032235856510348532641731095852920009683063583565565263844617165073388171243304885798369908032209068032926468367484615057243810414468465468988771947102349185539264582332172791902571407518379169550600905495297870351672532790946440230682389063011602851607184613059642505400756055726972500362804053592321688592537800723156313671828452220890325729844108639207790676661230432693290688966454539479803277833593130597421730296387162130446064876599098555850923765849682427986855526586431473354142336318692733569503883151514664887988486691625575739014520197679365932028983704644210008731653168122439890105666955366128486824527624201914994615946875890597166329565012714184651318766570942844749468628675571131476605829271549968474854850849653258003590519884389586247217133980907084772417374854660206995271931051941930958959690419179387077584895138476784778109344555309062394645970957848013519046497558330304073559248581089807284779907755631265485899051247669215217849916812758253882404805038980853890756286572261046394985355063155292193730502937005450796746498843723576443501819267347373389776639656655274735533205574805202248365536773078612333394977599617329549164302417465274344213136316283522594373317964017273002817404647073131429731999846408157157702988023470584701833984636859522989619666616208544514117680756111170578560424142362671678033250025736443085784343822055958307690005221451574024210092949711675412658306720754684777246864931716661101431846120162651595687100345778760798777293700985517329111376742391478177662052338503977412894382965660338065118712302045146296355391503675923546541466529962068993817159791255610174028501875385939300227727222049183423275597017512184497316315488961313101142488828727907161704548816855307248483259233839848962305335647656083770767759531406216267357838985988726495228849038735012439512461979124669730292015620030536817258709891553304442801996393829093856943187974877059788802986456557034104741901739203908695896328372678030398711177457526903647615244796686932587218702757525659285238700252306602815179707601952485080383757331397535207551326894258035940973494651225944712092324376816386673385713934260424188839014159836764871091114285397324849584422286027303398302603823401759521344202406461324212372954640381357430426734471897593767085762933036478186525641033349079560164001425887454046313772251030651411717051367504865437807543729846415100172129206223710250923990107276247754531874566612975859494231709559110402323513570263610664159125824072984575851128342585514571295426439160773301365220611976839995175526879148616860589285547668833442929096291054602958909147858604380440248158703756672413419388571036670493504812160547591524687522192107155729573786027343725865909681092350578230817500308136144113798288822539967274118234924498997400755951743476272795117130914658852767659293280306491397296490539976856201584599412353419940864340093656154699146787615167633181551726244481292938011113058258413296398387058055673840213922302219728416832073684658145401349799085108278147517829779927260548225659696800971739512566920385514139621795150154169453971947769576332742805472033735261610009999892027432144219873665989530354673839685973087078180000567033590346905644084336203898945993722041120097860663462935005177127769328287080672600267351325559928567597450936497251718946955451553177103891024491776644276213900903047936140172160905152751029473996558268407394875409901433178866604357581021681187301954992827033044163295989780819795269996300397754400569771635468992925998608962844104815828326569366528956109783013212517859877904818072085987340581451141468636328863221286352751357145952054125412709930959391284267341334622807574479427708115183541685089260183488819508774782419372589957692020135359130015572532697355887940511124233763372468914079675961066187439527570981112668472844883297024723028459874302530370887634708586033822108908429421165115416633206565542123083559900468968021530042615391334999165840509543572596996996512656477054165051138088671208965553368691370630675617075208082651687351359457110894481649361582094482605197193651465333476252431152768460431444117309454867501912099760086099610635788180415561492922372499259598324423796727384080086580747590561068580894421377666201871617320561330042380244260823559413415003657809498361403076857552619514096256032810810338463885264703181978817091173319136365097135623539758774415594699323271352344953622071632649448980038668281896487907635972368296822416913441606446341201029024692191257582513533972674419667247584260524282745934742210874935719829586491844563076186836891895225889148932500510288304116053346744924102806921648145603689098529398992352885945562524564797053424558582298668413820472912140097769622270975266622862030339309936873657696637441324938494569790768239490501052769774662461136131565030376009421674270824976698865653505599317789227883508624174779304697666759668292927691406096094818664449180964170973417553544196849760697169006855600568737757385509633347486644172056920362420941395337324162955696793478960771262664919626375035981052848355848851269283789454280537702695662624676372084654203238631807912101391064407347363753354708555650376267495875720795640423173427992248102359591537184488999364957637555792944192904969006032152290047446504948411233176989671190453313481537906946539292949961903278869802019935608283747836900353083043930444757186180944794884948897495890905193623305900112936762730222156607147024555104097726280800877179541299637769862522382100923173630226486469996836720373220983159818169385062375583788241014940819179247029532464975504747252735714081632758134671725336484073015565673658857621201088277070533447688571784021808231256164512997709674644754117755184852062729138509967660253657929808253049117979403255266597637896073653006728792155965931942990186747905873857610370730940877766669624165533135030366895404511436083940958316418842661914983429038984216517418468287176263675120389934020502715901515637467723390181477825645507069889503606050725790811108518927630985652015565563862468824841074602612981138794706164327371350156478047850454794569864065591393941310573679073756353339704230238073030312015560608831917922462835454079756563184352347904635329121248682680820750919355910267351275321286132846597770538851065266606472873795651967770915499248033754151281664917623812505395577783195255287377444344013542862729081006710668342211308939789469670629027733987432307584812282963007463888681527872145514277598377575406638573315489485481005611241921970561255542416116050689818635665307089856909069980624812910619539910748630176553565859762113235604915141421990179253173147374530098886863598261309265900351142811458528976384050292816490803528089377624986007773043931393427471480136515984677515915341563618333037416259943201418039575090002097652270073711350795395416212085631877889513603069394022330269968700018082350941392648353481425759159766235273551047974017901739001705085023940785776656909568061159762892284468533876388908887970350036824019233725403036891661331575888927680487186248782594316361290176137656146567872805034716072540810128040226727512282424982598659198607425146219314991236505585853599291274970920747307566135947941451816710005213852176029363135170665294174641878596374121077674959605239395484030819477513644025314420886145169372808614785729230735227260085396273455209916980082556236132334921003020783043598012380505891170239104733516104771636884436640559866390564214596109486229093774859182659353431102116528897023599369838659924029485450045601567349234037402502490699825729181567590148050844906690594870309456582724592661473757970077640858345441723771595126470994325924847589108805177118703151395076186449658314551303951210130817438429131753768769511166829626448259724663128316852135750651561725853959627100205046136359592337614213785143146649271661188422703763824321590198547696694403040883759957366935364318920530470819820349281421415624338840494976230420296595179872278120777978201350821788635831022162755445033296714554270771081214508853935217316000217571604375003927814447049297839202644947185923376906530363503866364697492391056400354237866638870889358337368052273377916721842258807472668301331929484082710347806474561963910627058075235016457611275650066500080281429242973006707319291935328027446853757853075447541263116123303499436061760167165956989502187386672974841881758306852747906722921702328183784888051486724643282972604458902178588880760275735548888546509978500428586894164543143761319730434727772822160878227637521563613126696937186777635983994456182816441775072522872964367044610769029963615064541264438676395108472786683562149067114362254220909531981423298445505260346807842006741876647682028662257230922736394578478596286267529272113835440126545976517658303926140223374262497347193027220131935508584994976185832621319851285907409935342727927568704578268157020995844823835709203265370840826108931354821518786664755928164132454406019315592327513700041276125584319141605887994784100483598845819042185799383244777879073901279597073040225519588481150872807138071701342711184902328015702938179116978153150664647114339196136545515798207516029420506626539925679386614950016787167906519218795063712134182827738265685482854097071706941316829747532609438494278752419542740543935551630358998468738192619354954006231820412484489865482654143213247272724186554191736209417457083866720759199345075567801110348763044090413053060686591467285776781510288292274677648767565509165342430593243095991790260047001513273181058753907644604873350066736586331038573891148428476306827372925402342309107790796901822593183588491383001470935870531886784229570899371830904426427641799591263255663040664980415220879892539578469037047397137307964233168595124218568045591685964600339870747407457560588060186664590038933532884921656533507476726914256336012948308923648609068206928627189234241921241497316779224007083795286745247799853440440347357277120131500903001673084834754546473227343687990309907667500179568122944273681345349139282937013781318082838310634024883411710619473024177467865299605719433209769113315810673125383739928395333042826063761273713571719928220168174504759814713880800649484763309882699588704951030785118995740741919537083655694230304697319907181241509014932013119357501087402580744531470459559994926442906228755605607611624935196050186107040333519086727788643584831488989451684548643205025171563564275923055987934759187755554474591723823676625013793009082321086899698795112571773315331077607197527598282018867484271872972335820797173751530810416262179286159882019977981957453459915514008183567512413759594201862238409161917089806151629347523443195078649897229535040007231002697191431091193869739012574608889800229889794757390293341190779016645382287201605245269488601759832241322394108738595136055490595095118599555755364777634274337462363944208707284400532047340805682062344980767269030003010769908579561823210242137661484540602952041604687782571337622257219971226244755324923576912101381822140097672453768140051648133241978913309827881868911072538583537418994068031183565339787447039279073639593591390879997691406838157767367336159278114628971703002526050935538256128326504662559109990925590351520829527357409424912529874081798701874619888563480259427943584173079337843192422658602323237669595903835625971916375100983061082851482993053260556892175149388769816619134955780237219560351472679644761059172108498214706921522207746549635048715622810624528864106367660298897269910257813548976384022395226713249456716468939716137045407089339767193345580732479245321095796923767173184690397702744096623593869306983924903394951168478787667040789896509726333010394969136751062649245885106691983603493735495967487982495961887392047193127491947029894749064802155197341823815090188604334642739117283955457388390098670031464053584700889688586742090109803797189638904228776981806775843740301939541343628670430337880070284464816121086630609674032883163157492104598972443556934306281537378299937640054039617416856418032311345916458894513849348685259739586973295605148778750108103917439025739507240585327030671736218055660182613277041712278708432468670956664786113876539750678149321170491578992239313709115851553109941931906441323660821790988468002494056878974444245586925766181697929697889200783072805427216895768117808884121255309096343413298277304864664070849303394061423504923585549141102691329715061207925923343340402845855901746210481806714015563553283930016688864062158789662406415297063162880921010527649173190752596464557858576120976476977944000150056169786178817763423880650893416134980440527996017750340025544330553017476218944608751257455484040667191000241001305942359906497922800962611786506142151959180824153713785912612078899938753501932943132671062447932175866709114293369112596353238759574814317675021497384656523595277779962272229135381781659907321046273391684996380509650819572196123867421698288346443370754852286202711781200292183610072971494508511020212032016480763771793945073872960108508698167577675934961285493086150504270729828403554970051390609540369067197290855657591760226541730580316526399346764521129235384454653298128707722975052284321376197735899795923138510155709883601679331348106633662949297519044274847387501558494260513080579899565320497886452923691008038619976868402822310953479126846282856235193211722704037733018119935765730937433299591535891421559641094314344400706199916508620214312159770339467332665524108264926617015640979256260234660555565202882900174975047443403707088276041682350561771181782462752434423039088236022537727744654586764907540186545548713307147521814860270281836835710930752538744116734124062172250945378964702779700056172978565043169800296640333630406966676468739593660799444796351526999826945283207009463086329487993329650024428883453931019141611839945609271403185849756644128621411687174577594077211388783624073090458021781052703554435800960618857097425799730696045226259898447983478898671667979305198327673828381814692950487260000778026649875853709000525969379561343575348454969173187980010672866630305285853522471225631235492853853207223242757767795279254203345648941926255944566884510695085402863752163408348537476823372238469849515063343499112842797975717843461291700669605916337046781200939719355811881391442798980305666280490811875816789482133763711133464544834215998446880102306538585618026190435997913798753698163093141841026332153849575894642318047784208551489920397332709446885263027527252199322690351261208908235262465815940782929745528512338763805835491707294093495570253392516647420986635138111818049026380886226642100535153783367579150166502880949639934168231676271044996086101430223213136832618618138484813877456348610021007389754233294905526688077735913257977592180374103567766463251834040129764217402185403210343558964554970034354089024703330428320088660602505563011156565735275029293113532748819275821374643934786352093338851830880992080438101876833629387567475584653966339469363443623603036820081088898624245106708978212577177369380429277089575823545782791425952298526663917172994174930372063398287793092082501805920229984612416777881928743653948896489867372158105616252134296507090902775153551966491668957484131168438719166049883156327373631989704747785192104654604074393170371669529590550935974828317879166165893745438629000728908025694336112919836271907006196438295923539700545798634056687280717974775273816981335349932968148099993402532673116005735271028645213056147450184521680860080310487987686597230067579221131444738816895162569776967766606386966527890967601056117936436257745056629092822405948682969217646350387327127737263100238191525546187392727475565655607606048868220805190445468532256616841004639247211608496245475416059295924124381508366938856840469751499978134974239928562000053318594503542794574274068690075420284165727350035596427144346095186345005397325524351130726208158506217717980942862513178910256932849699657019482885634005784740006563173131429454478143932831178898022118945631381270995997821720643191338522911027428924320103203023924129810883259464935016957311010140494950779064747269866398406047320093079716696991226740357851294895922055757772362778467990306342004633574722507970429193517632998737184242093805233627028173471072888881238710835129084495970909614387567841613417366000978625514940321806732824710799048804407038930363109560336486151935699178109552342669375058439651547961906735808369203710322228881373898177194176612594604824046242609559707137224532099228189800767923412220086115294012621888233765136506346215196371181744618092301733456097914201927302637317126438430036301377396455254283927262068122338964685916199464419802083855180591221154560342330060088379429467045539522904411319915559786995164714431951290062492827352932486735139931356230483685392876660839678111829278936348740073052409799306536173819524415233668170737983393915472247131963319074239897922401798269078931409305838640177215908253034675708932627021309176222121653044496969783740297103020434129595656219791309159120810595121977224839818964911604152045431247760363076935652427716546560324268543592742249287354558552323004377794525643536841495238952643124796446250816616314942970598747396436144273827093855522774914771692703534013588247301831444359495534239106717492414676754568415484940239167461852568613266356190893738401425505521970114116136811446043324277294848953823794963846583217271620589637522746863043745808995492149750214581233968136757386617781934497855231345399461392453941300097531553369538190208763947827513205704440007210340009594711804586705519909482306917646954683103238263397376843712591449100578535161613525369735665573807218796949124254178332927778194121463658568680401016955919005152120208895410390763907426717068296802902930100627149391636994712552177286480529939552088470085664244344897231969859340437861051244266992645130384042612343358784342093069408329753503855447686892628489883119393257198946054405136182186368285098541056488792019972001147180532425407221981944518824737954553405016505407374391480832139822217652244812956411225643137487498426752973263925093285997956941208425647707031493636220648299816699064750957790615245313348067541415083202298534304033724933645633524983581890872139810619850843716664200227947510389101265718405605200579373605951317647795214193014350586404964684481097531733046533576267891817150704366718207490273079792792408184847006948419732244776503455389213747373011108999459948425472103252441213796291086353338745690251278641931828397946218666030052016597813931848202588832286162654952982580712927817300846358515481807894176535031788106683520662469001574422399288880956651693234466812627246750615317907869893599858868250294163495875653603092550607578304903589744283301905852720215921762416588223516626470410325081947802446984218197055732720614064207659770553371705437297774151838842838933907216984232266301313500698841148203395585786168827413081706883407023414221209765193347059230239066336950311027815563813753278031764625232936344741243858339137931163942026348325682991101229108117733158126713728948864719820079961938816127746347977621835734532446520401887784350058998477888468049574589617756181450247537529092347299662066380004224343214532527142226582260739465308295370390045724085462888012781123382341754843556959282261811942495155742286681777473836754210358435380299942992917408646827747456280051676541992220224720041121260693770786615400290015476483732316025418954935757930349777720531396650388941657078675674568731015981045938467928828421053521600896405940924883276130750902835069591746180471956799577082589980487336441061521678530785561710133356621479142964168048685698861650643302999173808423151243776476760710584929326867386374790437210823881026705272974392413243898203153133527900998671654850176940416154602315858137536952489231549925568715388143013992845142403424454228239865163217131064129943320096322869637417288800616008569724192210177049989014181138158444776309403205843026062058627211368940586169950826066520573122091482946193112197081500170520863427545861714526931587642623840383989688902563046291838184668541496449463763803084023142072073976421907129773084522250711789080961629550543954835696635568645371928392945492623182527261830581706361641895836331712523363705496487470678682369339103885048930597316307563847549880407867832265225673794033167969384643015764869936614553454565686617000949578445536346312310619239338329798706608715762346621629824861332478470949671834846134135042194583196597949418236563022521251435205312461003703047020028688862375020485448563992482620109742006384362640791118916378481755980074139268938483668525252870587645205005380304319230686135287207585230065968551099401752198756973743966147398938841228171450879804711393241387683060559675504105488423901250426567489500900250190796934871811490474145577693956735637961808103351260357659997314723161186412383975245218305179308494561326487130907966295219526565203814318220058865741124781263915168688866637391292159582543505281625369885968968136986825244654597583829525495408340792772967372249955160863552725943373740593955638048452149429517456249152937369996547667626763815411863007016964225265132059944265852920497394059792983602071335258961496559497415093265309634039187360345179858448989918793015420416325331625111986450363823037615594441467248207196835538846506996171574464911973295527922496968496036264158669968991174230671548623476392317378615238315893197685443589889344855729998014649324315934050860742653873661715818324014201368161756373653913794842041105042665686489371217111630122206094230544854162859744863874624564076971020163944633882410593198466260568425677347742801470704609750087333183569480950225683442263880494661135070968146113284889664657725728356337366131138624843641069244940946433778908494926509820305976047813842325891912711702189238156337152640647928155459797239684478700354948079148264637080585547724329793526370492265387296464961618612603128345952667878432505155809966949093078765397247203231604509267468247861195480186197598352013990316289149634237007505323213527053707630012449001624088493170212271275182218603296605551669337092042965473886919443143632660329697912609543118719831801484012401224737983732834863574323236412247089387478375950798429007211133390974893580351372305707021959470280823012501292822193720493112859243651911448824256969058987703602274690036827388286972381372223344228846869508278119035399075026110385547868435232533737333467087695837273380209151860102149186020840265425898411050459638284477351791251767846715258449351262883996860312007167086130359124158702198686539574408430353511013425362832313840922227806795565746186251174370294594371850815243406434586402107989041252382029872551825541994337652552047858030259319818482509248042430409745502863867665207298159654598753876751602905448433944035852238503296405263410429564850162620907511196107994668711895508837521362152978491559003399249475742646439113037207500293644159444197857373703651028093449790817315156459033655041461766110489052564248689309809252093781189295019211377104955637617389683626627939276586287817061025055196927309876391895250010902589904239379059875745005527002562686138131238763920519465252689250453105388103581699138239001794964166322167826513057148165544675749146590536508366964019453415281127438833490774356345450778050716823703294619415290311051571339995057949799741997526328267526760076204588777980607256625930805780027057279331903416081271951863533196956090649874534934031069635794798768215784134635759873082652998174696676774709541413730817073754504541782581446990474993324985713749436019447419284180506652045789449909188442059850188103197446348932336896840162734848780341309839277555991281118974353826384683371079996473056728259422390213602810880566331645385022451621677197371236823151181568867630137568573038427371149023111880639400330714609721495240981650411323716522526776130518942322708932827146169643392856501136922939499935202224887385680599049716113422382826250171279640823107017680330758270348762501962089440423374985389576035892240427685531333557182238190416077881056955923100559993257053883458632661366133023321008578189509206337659102003917838854907943527592634898795133987230213183823235893349403102770163897950322260175849674858188477249660753245564123811867134865314479440608551022206614573986835940848393419533332555387192791944278177719757903434986388285325899916172042095596891659475591559144832145489609933776611323651210778013829071193434023176126139007737011631150671367863951663309248382084128712052293740108938301017703127278349741139942867068418107580923345457276336609260645019433506291510327248762870390967260575976568178332487888997638648360723423465176361600336376197016592905193122021486351649490225531235538084577835612114708406804922121831233324289557190446946007539113240945976107769104527941896316723484367043725620623892428796951959964298536837647653615405847488930362492876269474264984883028055265221161596476698548055410569076628762438051963787463791711703162127188721544667023842514782985000932091906596522450230902151673607569534674891141845962306656669488306550023307414295302628590708894476552449743017572705564646264980581118163913186491903630266863300087056196279489876385268465449172664628284679980285602457968413197930635578792548873194255556236174086408021911727781834380524567096356308206501279454554059545981706177024211034911971896831119005922465356107964678219593994208475699868184786257551210591194201503482246558352321455291478435954957247698720555767964783100470211031289469550382933277157396260169445058168933468384574971878072230495532941937142940950520929057462372992750785429028588296410782265920687552242079995753940203146471275796403103611719131444031249517473797079297797779961979856302535867714786379385119043245591191733101419548387747887791031531256421101598018482380843898512621744436283377893414058997487653389713723092786951703229714180528873245040410682877833390428864303705061983877927047466581977739347896564408966046111067110009866423678876249939951081823370150564150542982816660709445435340245898954141966393532199058674351987459801354927344197679061220452920094703724632824140101814108797477000116892044931937753623089325918942262736285226314190872623516216909541622594298456605243858261767917850951347807361855320165233314065942354663129145039535397454980009045541064047823620907431016507032061020219624221802174314657206971101895930029061723138012610053517176487464568860757760322909519620709443203408081849217204157552246519828647075515022557127895056182283595016235555086291059099738453076504242510050306235995517894878460881196353952178055598316660454173704631921444424918979390046109820828609198858314026347395063963616336122095572581221850499286156902365230306451521878338898536602483112524754704719549274120890770181885413294464259941178524897209526584349152145073720019352807028243054984159032510817123018357788767716803040704855546464270331789829352631398929096011035641784929348007326088308194475475126910466471394036499418265299250811241206129492315735371425305543653722617482128945823336256459124156183477753943439228930909843371048423977243634875130387622866482892214914063981393099247225498866591201985162331453239145390040289368847819797848664874609734266441291831467763680517520324068826721453150501407236099228812462128795278321038012069765588156117696189531674144619224305845089071575059123891477120696725462161642623001098515921574339974900894446806394911029739191863871105572489800047782741661598633979405847837317296857274616608170902657446941194243641319014971460368449667832797656632279389018941905246482116165069110894077389865683964372282549115074518800006100916121517661106179701086974987876768510941951602003844305072024475915932745236334403356649986031164974119275314033585860460681697765667944635907259667845100277712658693059924118569852190001610806281681635456275255723293746515537817755824820933492305238199795103410658382986871165708816024235967860245563071722231671978059622735536744659213386624836258256040059330595111939597940245473023329347249847008057011227742175113310121993346322985643013014172335233267714534007723061228068782069771948760720236850624283385201643052146941084355919714010380271613741135169932030819355096937598369316507741287684234798553190311954475220187365801505074758878279783365131758384483892933189928405759551863002909268953131179898387948288079164381411271103369734806795229281204539527082912607595231218188440750777244221831148160574299435054005510209718070459585097761814486446982781232983691666649010754644446741620792611781418363807116639239632994676138143107403997362914888297158138371366826023227249093333669597811530865911423607862125892375554444485480205207679298979539919104461495299838482399518401803913634474660006345394650541790080224747014072052221378237449360656364961708665104563479250574989145077993899324884677168224440229329006627712421427905534101269929533409562575661938352849561983983659038978963175471419032623762722618657122793767971782998561369042995561016587110945031026244835481797639819975992351026112342514095800601416134945708887107413450293388363894032640995946612527373385146589771186138797171042395116371299314316761330912197973929295253625336349222025690417790773033517366568776919261733714908488116816363487647357782440318310367746811300412594195158004943192956109711372204911505310714844406605593913786703127756076274210939458552736162979119021796007532110003848902120290010742157877229158206548620422545144410348681671261498495782982031601837782961624510733157304352190092761419787334091473377914233240061852467400854630189257961554754332066100218733280700072598850430785101588910201702467849456331363791073402179387277016225104500879734149441756493908562643993518670101644935036098982033695607309516445635831800437319207495683867358594066990170788111111078610599086819635591271458864547560261191254440904269653713842606048592247463894240015694593466467699011238067181972754647565070969985280073566298237005120110579446113149678001720922037047545924208415303520001254918689802296328712039261738233728047135466101004821381852748460576404605195767317989345880139181126544882831497596640301938907653599638575649252013394261358436687599837439204983434654609972628033811755937098268796283460661018121716570536571404935659590570737491604462909844712038229542597241658032942740769615418291512492679908740025328996414851929347857827053042328617451476499576535253408377646648883802468337883222439335197400346859503867542641183590413231899392288881270076976521296184662628664163434215428155819492135850640628197269495528868358868150848995192381509655737496367802028579411613191293145289582582647083734889560029324170582632232492358147164364856285149650054237802219544261426383172177264947617882697113067081217780468590058311275475740699337750001254101673094474076432704662775086983174633502083708682063777727058460705106729615895620300225643168642449900042703705280644993351963801260943844050695232837121485975311152888350827373654503729792584805057946481525259024265425862954179975770805846551599800922586875296029996080016808914145414515037090463261703711124049423394196867958275947694824764285492554824063064019077977575889943778727516976465572719564722782562152766362061350068092285113814669400079160106427050284082022361543018602463869596484538538734613199588580265532110937765196292779561998634640213298989374447811336436977921235240038233419583170167239868403103435763592940101193662235791840813349806390795353232639747279351542923155304698835046897633469854411706921875784709481923913752233606817248552758173741984600686850701818447751512554023651698170744926793054051258411913981114390651493286102979498595241514354240147458161495717676244057092608784314667508031907333105362021558005770241511578114717050190599556130819617783912137727067046138301618121644956451048986987260350460947254648220710542528768318426722038124896179164166741555460836389749005844866245989551060331755080919065133907446473080724247989844756877028617171986924079770148039892254256778041798391163048021766166917445379899288961386269933706267079859698920656516057304395080247073083611596033050880104894473410180174028263676941457676444528774598832286760482895133106574435136994253065822847636286726837118948464920136687614345071130271447316283536328883377666344675978585101496358243046711310081101328558288276503130777415112224272706617554847748221013206165006793797142931378906429580281498601033152414153843212951108305190545367136667069069682695098171379625123339048210404547863023971818755757442793623935700064405665443830981581244682914387874284833147236134965270461549781163692115267388525036618555076313212487057585939303442731908473607688420049344185164126291861127200665025453994441031508584422752041455037446134805668593903189882017319001298892077786946853334503780551555166536341950066031788389791829783612689314334543182020837115419883576540680002173262030017628296195382070312234597176827522849071890892426099982936217816966289911731028495456032430481256738553866677494638786545817628130996780013660136230418573049364940441836884037203237025426793176555679083833512583083985935749246681177110786072534536457690184021106416488566726636911769397441849903526698770629188368579201965513361745094164916420149086886025436382378139063488585351475049784938815439577477346073064449653220490634210363713571251885181441569908299754809410981654356823514892908009296839275772133670094737846036408020075677948458957852020658233650214313802254865156846085054979138545646857089431806516856695578236606545333958748709166622913691204655025023630498233685973536967220312210500905571868418711432591971913545612652939439841989193441575255124785873677907079844410532439039603501633621963354112436945300888421032585352555595265936661306527930528575043959653190528939127087686018685335374245049270055759181490372833023493827763903120789499703075339411336001784029225136925673208814300382617901293958301300344046118966909486729033552063548143232749159892552533813966465057932874806413810903757574393678453910489428685174504979441904113171069606647409078984274556777597023449872630066152537689918740735674409727286354449472526504204304141850815574623382590052345584855662134208281666208841244365562932326395783183113727962041056289148433323679016071137106748404683694768872583914384886070341983679168188434787596373065798797407031407404850940239913212772395288233049427421984956436162801212273553898362864347839120605492029798433596728231856852769472118550773920066411684132716079016149744559900742800534834673258809493175343524029537152165624108160138336372994540667134258658725526777692468483197448624575152427490153745841310202914902172435698609441427742675309316233264071997081734679153279507475496941339836954888978028344042072957600844791653184553834109013115755019740950024577596478231550690171627758709427339998146335019418966277387792577197158293220309709713398255851520820587160171466672331039018990365466941126886296096947676410728675063491822984022752562290385693739670812330054159451508196466496109316315992602982469309372997731233545457442310058490359581803831608317723156173819678628860788086276817440080219305540774066642405837934837645189449109157188125471731718478118699404520519892835335041604332191309943810649002065025317591839694781925541594861005334898614491722443439889683472347579198248877471251928519154591573410898383623659395809844948929404734937348478895788670307266154621885269006250125229278556756289073264562708797921907422896371938489742381445308703252777055582922223482765295787734892976437301203870533648495261685490880491558339969294570867444817815645053240487035946221058500025025794611845250093311706295531654070365602299769644405725262163417022629581682733490540126256346550841118217899344411157135153376400840030547154351275490412586557165292027245230913764847182121096608979076816773416018946984834809379588375707043202489823204795693795635633337770522483057627217903273840403440923676382453825998936015501276773377650476400888036136941061370182850160527765941325371455528754245282415287723314948633623538893576520702198123032300069442381755604832276634191569671986284984281448158221453196795875350481188742483069622256088470310212514249531354817507911501662916128070028159151161075420075494428734523072169875303572262342052532002957907150305725245762340606802400286678112970807039475247455024194657541345422526617374946168201434535670228403723198478453455405738535825189852012802607738034805526701059656761520370971804380042607840980740920233206603524424213617369092021738225666876524649787154388846083593190432296755485290614479378046720385343166831790503761253931396978452736142177173465697663490122584865584985246895748334418405789445997226009234048737563546635825904875637656680890881217309455587710561605750740002454719980564823981751966257719229878368363522652222644325636611204675579985918369684958846366691689279341897256196998411343047587367610539563904819687859750375721421491879255743001332673067264020836099499961317677899895021474094230484446191930035169815924873658527714987135482356265433355761153245004762411672464475369937777124888657700801143803233689243713724908595634353608044238356922041650206934112110065512750579868049575807041209339062617891028934123292624542557424738401934758386449168732997756721356696055497408062264678463868872800358081143543347222013617800335973187817347972962732652814073351067985835179254138447676292259063186556394352909265926759815888754472735615738962236688987262181930598005726457316630227594178810615286784798818951566829400356954657087966418285567808478226476986515163935471574543753946102492550781291589233327442220206719592633889411535705778780254008725958098735776187279935534970363302634289818549537678765449456452154484709749564747843720665520192260249703883753815312989026730969491938510555288265146972596711417334188302275838264975420250825057183926249143317715070816203375996112596005184013856038535509653896372660376543194524897717558246376301174844453627184522204862383447318895990583387240613576873804618760744873295027915444717678648649316441540469460695839291697267904770232981567850478809973688407528046567009327429213478986551973696620806285404694420393614859564887012948279129174524967751697573705216191134405831440341378496627934626592371001160386345102190978505328563362183543316902676690353854153802240609203811922813110900152532378233332576230615434864080232850508579436997160366255020322756336549834619354694306419838345724190524952174883102139097366630317145697780063696030491437604578828355733756168478242864688957131785009808606872928974579038299023392272229540815526061645079882748681004056532475072077573838050402085952823494571961896029004408285805361586339466389961397861986353249689640486955964974731435169528243220186388533932764281255038589769964314086634462600361884784644579510434032547306618655408341223212066637702097122437866198287991756088804003889992057563767259783340404155340452106514414283935186344551808458534566202095256770362111178980494061432554671579981628968631227699441163660010432194064907200898948430655634868790503364259183752871099415495532633299314283670162346061108029311443343802100278987398644138049709380464597367876806238047540192525574763025181798128140567065228512786809637394827510489227987798481186397932905389683929329992905495430568762773767904021049803283945653018747744995544760956792942793732016933047507073842037680914694527027000539594648846870023217933658878017726662631584982494516338196948494675775331575849945956602093844626207033465279429474530411026774523379357170909213880831712353836141855595963243415634942033054859484415864107509132931202654192253368150254695226739373639496311136503602557854764890147583798452104713646480878491407414272253863845644277789807464303084299125555941526358483023477852699470395052356567498602566057804869121557874542394741972507813525394158033452852208728612838225654768318467952221432085969575910728622150005780055430955460595288955468245469085432225075447247284488865099327069931720010842205994543012315506466880386727078561201705358090220608805498049764735882244252238259180664766194257283397387262198906885032405312122722441872215859244223393923685002037799041778588792973463345095459931745696336904416298179839416973271216021134868106195288459671128243006228056212860596423601479885793198452743217808590118700849746078466907893534908486185235340613190823917642120158882142323360977410678475919690755088067840293092544467714396716186519938243693076761796666894645614866041987891893555459248165464306418674984043368041606583611452160588213377205846945384106191127762203338603595041072185184530633423146596640225528400329538719988491114429386587424533073131324018806068558085271693453744090042139625898012256058369219652844903368012379506161024097297834642491062445398538752268055686204268164505134619691969773090519886799853560726174748810306226542215491355633153172168551961047857317876513537554363826884483934717764919018270682027639559992529707437871997503165927845239641620909256012664799685227668415171168382540630127398702367617811376748082926075738616469234350377201189093497225969351144817456060795637980740554023634376140284396267610136760157391275713773985440925376233436282550917879686406284868119023529464700890801250662209615674688257239406533638810930088386096464774571240652152559271148530648217896391737370515497633581002861359913838119655015704126311059143502041585363904852190829674341663179618453523529611615378088664148740825339394526353409080015238679368685700759227212920470568608704766418901122397796240008337470511396085536319066884011083330436101122296454946822781518947285783656442613109617359361884657027181202178341866079409164828461095521750815302914810894424037648961979834977124652000572478694744455088093762757904131241047731642699075220095912380365212060515434138564103921845521379439202520603490260073207601683848725107469280257036471870746803890009325207079474787458602870111652531057227980518684941266959816875237687860148958425020450321479890798359605663486860879359957773772110854488998369455626469006249215138163332213518622214301395792968373607954360123746427102980231992716626494198185749215088601802480018680105979079660955675562730068754183234949550188894772383390362496190987564377387894170033972472119064822597347876847990921273772208073324566922935473725936140471275679788603067161495742680639226244291601325810408461995892909673871032775936550644939769656113380634530372489411208858998172819595628557811542130298369421490831126907011460812041983698589460002981462894932966416312295296726425931141383252561686155800643772629287984411613382332633268973598221241148864510674132625350594352006454853278686374382270301636588808761125580929815862897001741109654608748032086131070478963032202718502363805026759442252513889632566143714561142982662461793338938450486354973429226314398787856618414270402151010647077651385669776389585256967905405070621240904275060946883962353197709175709419437485414375552973685351946389473223273619515621776514940388624826706082566861101053902806945400749288979934240155493282502389340152715636313803063669583784625025701164636627976648545488204953453674789625675164035569096626299486963329003514803468740960546820347376891706289314401909393211090566103583923705128640138736674761287577424585680816992038669097499968457617166715302078193710017481774271698590033759627343783897066889294053645291591059806175200863126776623138758580121520515213134455377161695760595679108775443720466351452845390771129908196465955854967843359963322701191999741065750810193312474500668152667252151791235541625175946493520638281742716302479514489713193243759006404850179320624870506182691691896643034200090127322394782568781210007468998590772292973156452023112711764531932793655840163694387684899284029139758206683126064520755255395043519136301762865789345921277340562829819988954009547116537408838426088810085622070301893086759790056681609326601170560169394377258876283326954232204811464667233157397011011148634780155348225045276891088698136378504657335767041750179035138557922094233163280378747817223154599102808483531046345995797212045265842789214458409222742815898871628885196163625736122399194548025433028601693475565537257228558843501546238194336721415639786456149949487766028594401009212895699688121137553105107960615350033756968015066461066766044522528383573297605597092237614351139512830556474092225928386559606252221962557192175989351411394324862870272492952805659387684854147834589966370798288562737219446553257163299448903107177714946742463593786158010422685087499642047180230017248663531159288404087474742741662744593915782035315506495276998269986441451488244636117035968877349090041307063344530374219502327652772059239798823491104317691278186257311620621611389623534405710808184655487787884139239546670483824539234827297600433315845354294551568807514036097063381436394072021052819889543051258497846963469368753349489022699125494361451358389365436594958280289511585405844305763354269695380698727269850827107397772388411263862532954876373288323539844384504860161777291695476091937238511676881868807714519267772975192286787940014699972579871420401810066654691115131902707063849530388865301703046405661238175125169132461768724211747223141201053024235792845905869779375778003585510675987361923040842366747971394412258472778026411863234307200110669671222095493711551078806881917184820331129587230185019188188897110802327354159909495064828186298563391513708837272984395349775138263172329837087284375006472456270275226999813877355494981416693608358488758000640084834811155100380564887658787346997447076857926542990715645457310182324456827700106033437573381138973935380471212329040108023917258958126284936967192090254628914269510148207381058690387553896420820936737515048056667046577313052539037255652953344027050024059457049573489246453729114494111077563820087974820318688512490700874200171645967339159841440587576207609904901732268477341897934409399534154904055280541995527825513295254180537888465827966483157766141262310169025260787579045070332380036555996113642357932913304424783026983036553523704762026391601371093910877120058606573593236530658338635074529475377961314754928064498042103448708161489330592189000328014259022142190540015979000869877828606837836847769262091229490642795812600414660944424669243847092588767618930426655457298210219182778612962145520485076932634722550028081494189404390927589324707436441950101284916037786366832215505421994019929486594071834630898097296501318357219013008483724859441039976554148741434656632785511107391418245531696859284697128577072084488357339467451726805632479259668594187489387548566743768241620359018131323482302363078733335759993481599149083455993430724730335039163435297012522582046372301200540485863258713212601208115068595014052024344119308541711750616763192877015355094747352760141718119896117947638271904452368446252689198490635623352719213844777064814987591763254725823464226873871522519788400691725429262499082830354081592903316605354163248226697574921342275715900844164274787566492185374438832497369021665533420383658390954276136418310756508176914114360325986326657627946885222200454113126422859957061335675558393490498569036196332075319466670168757857764058654507426331127837799441590832838015113861230429653179666155729550265456371689352452051543517563378200314356941253635350053810634843035405436955040803169683106921133159520804450087879964384917454145567501411104339654499244861790416267631531931951063693217081371375714383312119033917351753409435313372415874307470813261859204085217344790255834755779387892987009921050098216430283282279291869427014691347599289153961082158490834331809944908535186810651626184020595186091798667550456556255464835991684398392115237954021889457533948043226668963109472843694323572855499741125822702306395583341791070608060734864915152230746708552570399798889572804486612832535755666034124988741447260268923457826664288284938380045681077951371309784820450980687889913775630672358924425976058588216043556102698529295540323252102269450948966450750489807496590067851400562772397146534128591189875706003570370206958281252360696763083370150024288768722997497703282477362911665134063222238693625296759200582015022472414124090598217594314220764479830503910774302981379609231871522630921679104360827238340564079772226451451265550493055639783168050341472779765469630477050028415727171965525633089064871447541265301693181697818280121184999985667159931984690734408974420773576195784655833934706756534029377531830540228727903162220322422344561095784907409851205270952926800293887966966487011693327032468763779787351653217151974686815191095101022213470484401732101714902650418415560410317786902471380188446172434572028823959001913612652373921859129807735347661626244507231060689231449009271211667903622192712398455883067224709080055711172090553864713228030699037025380077050198699767579929892593267995798912027115632252336371228323216745646971816974468449359655892135156799836875183560438521790495136944034724603645458288635104926003982241804753513484394637356127739766581588468535817062974255675649208795578255712643026779733339611126105355513820740787145845430741901503845461945607151296970910744164425688729090645349587635891394376501296383828714310861199336099147174698433927218900903660463769416300388996031793905826779847282818688137562911577131674266825498181823245903449477693170320867484694062819833192994587825104620371326323945237494990822557056710124985665928560001178835911748602207897684015379044829229368005207054293276654640485083637290447164533778704176675981587319986089837521393772121387525277874246759276711333016529913400438046243022592891327760480500366203248747272818575269489788124270637948207070474057447474600205784108558254584785375539468962240625407042054498054874111435037251104169624776624858931335055297222552563244769331360808309243895854553367014292403028048820112470065609532444367930955587360758847030980474433622785045191263293985749952568470890463430334904740056363369440453998967654716104441713457449775195055325656502211088259729204181051534144182381196825315010581875464209146340953319074131669638610351868798904558347047134929978003227935932357673335188431823775698418188096646018869777243449103271903244585188386460922849270791386717530678755722824185378634546315797196040892268392765250116288012469391982818865828540032523574935159602955789590064523769260596903739074481011162606784348073022494841089651216131687390421297277648170123001100989614629610630493176491507884672490523093267273863333540972684945646737289890013713095096583685478983733818207629591365211771932786441017654979527215548521135271846524986705057118333484062572510212009957259770105694982205778757395817578298272242224637935868807767699976366550825733621666814077885666567628409935303856703311644332173394402066837083103306751378011821892869818564858793169851619772695714593019664019444070140299263019627909546648230138740637561154330676135387080079260940124434925606137161825748670227097890776308298683283760263511826349036761954811220294899314496491025155958007392163057554736360011114661004212679935726279384552025112739361795402026334097091469057881901716771580320865732749903324997614854629733098265606576085230219508633644739857969941978462923013915140668493914573059992872609428124247936469426217269582445759667201210831483468582034787881938054485243845796369098338153136247973086874544256715654894044347004343316170496810299911669352295367206582264549648978186599325854470605490543009290604011440118080923543315107568292311388577604352262633687016825909849682075862302845100097642008840371488341351876650886370439912306862938701706722125198018474911268162997431170782075244346373778117843378409460111473323403973492559947207402497204308711629959126651538595755947747792467097701640674066443991167293381971267970014418492836201758069186294348176730920680858579013324312601777265113403676282511212769620980359481278720904211710241056877135658713747604610701895788434585491134084776154836858828566147460948715245343378890261450893690899703356554520693385415524535875379970245482200502719347036733937214091660898647191607811934514695998909203276142472997729669568202215244084633420458327114873174655590388240953687579741953955695342898481265336737627553914234322641783881154865435041778564245715683238350329209114722795379750801533209915539748286534338608700650701582345585354947096272725088293771949258290903898052284838462786305450774003422791523978133956215484623074773949659243924038883753386956366178833617941905630493808071010695097864568079087640864999458449480032956151500730108036250321162625029538975204133521933498030665790865336775029518844998193600957779714228508806124404398148998868744612383055945242584225407883576438394401730216645480660223956959905615897017651867238187577662436818946107119366163171733055195935209203122229092429444863122506393649940608631598006137085825258749383703846858386916010478016681208183821733084530653245855919360469246263701104267778765845400026202467628367194465068504214124306361458360868586652051608072046016577195238725955214170619347940986454868182383808220679098390630663430095136602400937374897822295261694076130585950894447347673387687097886387654945999814944473798058832192005499857696749069866703577254343813589247876771480190479972135285330313126258454978943354686803759375545112660797359274504559245443751587134653112158458001386590431757451607814096263533204637394384589052431418532478245433671866431621003322943164655779406800469515063656161160470433906273890109958275620164711027842190323073745793680231072569773409134734909648044276366847345352462559324444341728625356607694535743869454090614671410460041549007326955538485091462665820265005567453199687838096626187774816287148987534578358261599804676046286825926602626995745948067538271990254764366968356125069516714726672992210322575184680914504507307399334326490709503373730350386226582548486408679084949771346745355937436107070954617039280344239340697335042298932478633316904067077012941795606447665954067636043053734131393585006898793931261058172388871375487286202700170418913365982258058970622413211303029856842564057689622744607927349516765090097636754606928524872561377383681886608783722618413649288573365912825656993254723118367078338052867551395095705731985123545550293255616870350778457546061907610059259271072402371597846426162369429952209970552916117139067498841323201398848351639046379576834177354718028532593028329657585223365996092852674232741190756094971772802553242640100934998349821775900497570197693076691940544440526352541253463573488708864757609693206042025392586785941638751489301706813855302793765012481424844147846199398479031617865808611861374023404604537002717988304073344209269698966282382162325294307629369051896647632218319327430617517024227493921698854551997159164987002330810380379413077970203970946677691167048941506652590729114233554606473409587486928211043765176680756754114449074164410463786304935347434340810515431571038891250963298253301363451610728759377584473525574119204695885743266296590496989345869759684191033402822508466046178694647577158461608597120768943612516346502541683763554022598507782852188838118876286046138005523977933619984337865667017837962514142536408820155747622688450027168983604441621850639468973277354033863339842253544683453974458280761283608121027076862118373716978334975230613785506607605203618495338442846560132083353770970169182405868874203372429728589606092265586189882289097610667668676091407543130133862038268157700824368323267601931767832691274248991003616623250575051920409857213085353195225733088050120655368970992116575333323654290374363251159437146797352903818550724880228231507998971605264163670518989995458131047330485527104665108404387963363730563410835661080239503364213834470402563277901027080867302045565315132597083745276604616399452899058670194298053637011197148134042255768587480563234489215426484110434117326216168641671739612329808327421072987055460446891744133736640814166219075504074157077531774493481683593439900763592471256939546845894128704255892022325238979205361724413995260568431981621282956984715124934023447804109476414385251752564935468104983857022555752058477903841403772442438245736212507934127274096819945012118417761665941849962047245955561169901140742832378528039239901799749346648069304428031919996685895659860265366829083362363982204764026696370539638276677951206653586061708598822375337634866738862924202651309622570426042586906826126957582280750208265856947996194820968772403145795464802806674679938159176343987601935194132273291932234357273437090095107781817585429596668421778710801720775935072705185787111932471113974006285533126178966500540913899714844676766856395789969668375189154385855959291167999210945890372595005314064555427402013600472385325526009686959029978704461072284260864174339750016203408070972687783660946756409245644734491329685308928221687680698267960070843702508072303061248106588013557696213989956126099281563623534961820399592346455981823901573526280141533087808338497539068080574448792136546372696634821359244518761631715868511700260213950004769695086773619608025179855312515384891205078655612650325661576961703892309010483862966498804687620350925888314636921597835806853660327786079317818462607793791776785371639839767722094206336704490736025964461500240000593831870502279939875729399110724334582530050788852043885569992550168629716353618111556674791515921467610486667417587377074363471735780440635328846070665562420867287484875739296835232884934342532245183907809089021209986389733697813053154573302820863495580730313599146070144105288788125894833308417050655500301172153130783328166939881979880973078895151444381142100856703103294455831007244122116081485372059240438704455711166548949791767310295804645174246428493300520325994951399100886954154810596698731538492961034386113716795481155786261266661649066183284581595745185117607619751429645989836617011375905722033588605154399524935972838657441477301495678065910479936574172596310423838337229648666998745196916738986403241221824755267391150744580686056176644774833055446761830742967582538981717474814985535817756162072148597422977565184001953093298818193770668672858107253240403826305569382304172862042704185939750733701385959597091767792743051684918212995703666432052249324346519981387134342657257632721548215186600815975767662827141397826720728575436471486020168285640518616026146124595454680016105761286639094405347955285957658243681799467373250402320367653732516933968048671421315613688312252643575479356258195794509526783922450064316791564353872881173912718805324021401916944416050902654954938806972948565232259544651063557363449114296353427138034078277322494383390808827380063184940755361508634500937789761358221732231837609195768807226087485530570691993257250807970668510291750878981682787201783556062297828621912485620561576713628333495191013920263217171741710004958429319235008370961602817908148973150152498594548858409773786872581906217040879801605159184385455648236926130805510407868547817082338142928712007365494936327389932657136428387293402583908376393731150244112234351965771635543649276972981261983491136726071384725731102164749654659301747444520113097566308475585775854173873149546648761592164903785591556024156350025291384067013154440643386872580896984901238891399700603999165493454238013930509621798879583131253747839672639262782804484404000231428346417169875062607693015723000496482169858350101493687404597085621621802837671763093381961114429387719350654476293215475053345200098254654611891739998391581439139844504331602103485177432425884233745501726415570393481705664160674151914606934036005518412389389773165011721410371864735989976862947953307031230277964333213010827417296507242337355619159100993665613820075015681288040862421655660067923454692890179359421095941826603240999191476183480261712570852292024314574990882955378158532834311107673876880174688677023732080058720971250823519077724354749366679018071543161879080567832151448475763559496259526741368184979603319020568646191752362141135841419018704527692740149599861305810378221632347876189517550135861062022216444358392834486829803869405982055189460172516528358982271794944409427195910989134869929104739594749264337485397398140482548696218492161074170060720542439025931114818312368313609827708848209001602291678421865846334099914662752472063176342856273133370550519600582698092177420983565177159857216841078997487591032682461390593678297389705160542550617301772564103770525847692699723171774746688184313313239821470600226886922978954654668027691081376905646415902930260423649177681265834472335660184653124473518467705889048019914116602509540540779976630421410683109078854741398810556601470443157580534927165452154137335308451894089780716435610867002025871162741946813661177919354738417735281658236593838757177312423222022774316490052284185325112025052656619756199913467192349100480994878229333672538860347811504728567896764971946084035977953761308864563318336241373856634170658341529530177396914425513224246663917032349508713143070755014554924561236457972892551523723480192936718033877362443402381019142982803939779210471938715705216958832461597548156045254595576834734103862035878003026890380664628383752736198451184871534587650804326203895568873193385093329659201791290562400174462909385681472408288529275614426539833595113188338276649747063227790133081242239467610142848643186030630285559159151249763695353632181054251823419786535827822222840715806955548752584306478115531410259425913292494907073717100573159179821419092486282524307749988370925738374178894028691723667751962412503578610225838739949162827608621040868601351384542805451843899539852011581359223070056642104599171288640711406716284567644984376803225264459193127651208350466335888614848621484816568085542011237079702935474379677714387446974788390918374260579499165835871564314462336510810649837396470819097193269802276071821655403435604187069247720599826964521011608863207973637404746934015790074797890672354909219852621707818978224795414398057808554221783250660710401434113149465917872738483262983137565415914569285123772762615711178688807320594278654525245821923800407663864582748794307940151919614166469113283145331435412522962991983557162613370586746571821795709196516168349020171969379074836674303539319178891125484151124261008410855873522837193978783789574027596610792827346379870776829101325795897361498013414724847534564213231960573298409792166801397851039870807276336340677277038615533134232621541421226354007384064133226205820176652871056922013334328088359270298662181277520215460863208022618012808037968409662014653460081267788548573864962423609131453909757449046451060249106196400526149284696383646944789334742314580680523614923520912264099328959370332537984008481475028781167464585391208873344937386222250102019127904388088128390376322244761794080662266434642721694898810535461321497181157901205044013730093551997833158025020820072613931386938378002099900810513432994088256606018568176040220243026022718186634552451905956833851361061495109200476218194935830615483864765024388970608690548919807562318603136135336867991567494660090084667852861436808594025519920203788811312194564477118724857637723744285043167112905323113901465876319757681388977826440793722185365711869408404472290268213989045860146655582757684501080173843676719186149637001855499695532912732963214264318672291653842718055236061524789485533441259791684970304947121750525268515237918589125810490590548296947723109289267148717301529599817224478037479097080511665510036103788229965734587093580287386325888148117252949791043943012634492535101715617279328451290696309441614822807617878911044568491255288607959785058503294327910607976325124101826065951481086750697922224838026086840619209124140164238525121568366628025927802245238167748298728200972275775811332740117257252942534516804081544969944301534581721648173360170413200916555814721316247910613270528164018660975151108099043733737979248125215730918982201110142123586971667914881454322259166670602293452908148421784401234795244303553663323163283297992726711477696200467739731625813784246637103464091825321132803014014783891307818177187393945100159303533435476817025857043887443246003716849848256548629122725127157117506968799774956348496354559912256568574571320320073941661497261839421388549584100122457221021209406181140635462058383815948900477465092517144500009562972079575596610429985682519244765371723059538018131598648660206751182885129765500804697394078941222408863573672953207531783802998067460759760328502028087311272054407360035311880408399051891484826992954623049946528622601383363303134989518802125136499152980607773976018656642030520991253131822616881364572197876688721657866333281750547847433013871829750610829801082228300842145609785106486803899013227213575925571841128045153322049869621620227753514005877475419243111702174341284689586893447956517167506741927190254668679150913026264984705871846813007178771247654561559487857011360799442992230073519720545006629546054076850092860109546452097885470775023083760371650341186079444863093923352757124299119692017507848464595261529859125003583501517593838730492981318903214654204438918690442181069977085435986350186651734729561055751574846449299986088280739253345091287221027397243894030722787205746136415874649783808994506693996869114777367648677938113308432571394016293728016388160988984804583827702465904152671286113848435291678266761954055863349595310415061547345143899562601669766889790857597864236512475629305305440712575870779769502252590545482067088788776658420481768104599655425958508941629764427627033073498058666669682151396554657027842926697035039421176472698205447704663662510548629100515586363258619868322980317266681122248833224183813169193728342812645815209589260808411470606305554271294102332922757899228485339901560377694270535329719587281146232678889053633057039022838103042931601263304939414496574617505467074786397430919655674101474827676736718933330235194891780877110648239591687374179516385993295416769329747261636779855466794918143047927379048276692298992554348822345244555407484178632618607553009773633808362678697901621838105273315243360461541850481129057834250429842723979691014190776437785274383569044429512293661933220622513928221924146475659712711497868300057643759971859284697159792174090332626967344638287148934729932664605247921477644666035017253551357293692093716873327141687642286308588285495703774112105322129751810125122857562322749517768365841052507198328867385661399251919141605773182577525647235951007701111984619653468403792710815918915951279684632394155676520365092626427796470187318918714482875067444443216311389455529100005558895043217418169777965500033553470657415997428317034950157713743056349850731804654323008587818852249996407390316532221960140127512636959046996709381588057342768674806790307763664636710199240649972045751964128692025078280192286747509170474557923003570448893687014002084028117181165693020146805487140022232895029139639648993096987423473004525730437183555656594563518277768376816304707013611088159505325863640320695279125311371178784346768220860712898682980993980647332913520902003271687690586394458709971413187456804583269417883384910968532655011024562210359615031544472597640170430983245434568727795005756650629730506976854768858289122362169229775731609779931359042981430236551292917398502582198640543844227728886379411795483224391489599639410949624153542511781662828800938167298810835974399792373060453900606448759695015968531842013592551026864099720018467620970349259405239983592814987159676397563480350385643367580887274093312333118113379627495892002600257143170219705995050583136045641054547588472844061683813821133504739798110525892630908942247804908689588674086918960270985483770667990971501735965615296450627841700700965072724129352626584254910726019754530105744373054723438607068912252895524656309078843879375613660051329235909372894473235070776140769550888021965213584112976380637636221101430683685014380328552578202338250657447897599387838003962938198048933281661545910539173668969809787652439147385931402362626688683935556419398560325443112887155689345729273920666778303820567078226536835253749181100954500345061360399844316628341988047976003637037419480162511036795126398262393513611218408357071234918692857445148691142108957342817906094132850533437931070828232762191955632718091161326812269065895978950871890535284220440340215193721334680870701946361413140097361551570687554322071309414660448878301961544006932514670153939396138720165430055242361406180725283671243415118168978068200934397789950438399938014172169529988345355878187637843457881086825558020646660398289183834064989539370811314931322956928972993828136560820305054728766978220528087120639838798656370414013109129551891855390049788048497438856776309549782236720166146178650320799576841762707619888856849186295770449272664592070404158877030749118603651271424021921269274871436706281341627362448966656385204503314525720674939777069241498459230054598238092628843698171508829274128028883142915673245414192202588044000895963968896315657673232201501443488080034536056739064898281548230086975741993085624464494562843672384606512049478961427208650794766001494962521537271701707592531178469719649858945053431367879615479603596813659639048046075841274656038754744838710455207219055916634952602470193092181458683872867520371907575564267532334175947103519340891585998075524800846411304270513714061946037264900759099992255704164384729389855525642524624523813641915871191726649957176538295480843229031022553221761340878943209087402942340052871437200645364803376996461498336861210952511631243465339541933013889684105651661409744595400791236540753649799101329156632167365717357651028656073327010247724582177465579284494930180190040527233093436185937838320762916793487587507260824719258512262899552989440886488153868673897322691463943466077203636043632124587237144899348756276867924156768160617899795627650414174739384126862655318079190324585196392423018428217842189803173721766814996946168063677664719430919034450377627062296264914512477329255230780437971987160023215703386125136864125378324938448212706518274368362408227439577133296440292912001561904393579119609168438013518301818596804171657922016212167581327229106730612177246852982417681022963320554396586085545425548412222150337507244471209328006846704473075279893704509928973459099203920170406960058006473122570873359126845651821650286773784803183403637158070059565413013988672787348993004145604373135187119065613301540177971968664015293980653069284538679474128500255810907123663725677734428226264556961427277369627957290162412066547842345743734080932995255236197236077406387663066646740955544362330093748061093429367042025753537421433613720506561648530736668622317767005714321812233190758407295681566897285815673912430298224357729606096022015308588084334847821460621249158119781677374294278934741057258200547631302620082831635644834248776188446650587767871885392559404101242346278008135736467701481324011481169031973968030260485580150148615142913463900673045068605745384447008249485434217446264868338487992462090422495124809411082319037155930771211923310137503643568803190934708402496561319895381994764876053803535303146106942641838175233454272541430234067561040443525016356551461614495424155421750006571212225543585764653422390144580573728928477018674528346613203979286789798649659062390501410106764649157079744346405852068814844711630114857929459520255708911465845716821178217895275293664409322771866968502354634212343846629029631456101069613188996232912155144179063389684430149472937617121480193215596501619048056528415588267607426963284630117509327032544163834859400766368653088873177313352205614597286568791892733695744813226193406889849668316173789891579709678301890592830357301753745275128920988606842093207090214692373814438344538844788439651525772180152722997920775780562244329619512401993001170919557301793843132570904478217002175252998018207888760949820671461327877101372398189679547817645383563856508425545959469684665209515018377333364958475706681146849671984883353288730831085280592844554181354333687728331605785304974386559609517952742371765498854655337746988735163811922146599769456396000495078268750178473114180666165203013490098465235182751035345114435649055025699100891479649576825450474347296326070429547105545077038022244108016939996706025702472984470980041813172691919003707571949429012983567452800588320377654803607333048681532068074702872677831646497506084506517103858457650017336032839791333448304018781240081276386938288071732670888359449148551594726428486191214862411345783878667109622628192759125560106438478166897516421122613090916366347605456344114286434248538466141831839411277362918676970274536307924427784410351120674308986950565432315648150328322332467586414601947715343161808716509943898619612509383955497099870082918175261059473560306478945911014779791425205773491352266783449969906601991340106298813610437870934185681460676189393151048407869714508186876451842364756352987070433314707456569568003563659436315145561452393595980047648951020098513740162709966560625382320000226991131118554011576765941329023038806344882636575050238507707891744255745852094374852498644798786824284006479190880012641575080172376273206274251885788213571902243763500789382583702035386805262885640222253796405202135354143389319766036649362678472459461641971486318662615474467601435680821918197688231291743867907378668543859953313403967914353293283203889496382044341883558661595390634347980989364876286663223291035806565125449022470765685689694056143272823520692995813121704680126546269863867627282150229970772977228941369697234892419357002765496604418356704112105219541192553159753183505286034061706252833291801666299876189995667102925322138243579467553888456064518049818158518995286224976318305062046412123260339380377826610894288391516372695525498637727425173918873931621036576064257687375394539654687065975727157820615168719305250442146566721856935200981451751026022331484650103097557232607922107914848421787977126432952376945800373603016851654276481736921997483121966259595079148015954655555370555669428778531408125349165794276415230400603113034952626979580813456482020784200346085072939141128397264682470734611602462108772214513597175713643166591705963095162205225770908670697778678728346115478861805832569313915721235929337752492851685089330443874319938354882466759694512446304608216570010942846915392946293212191429071754898488247099253697849239613486985281203130675296356981584854398326754495490261150984804376853564030575885509177611008476909862139978573685372265410423723721321272289003678053385295904812267995098199129038461757146874217079995457263935033387321831622966724305936438046440319198802860344734432165075765287057979822992694567461181792480505762877036100191492831159643034789575880545286245876324080263076127403539720429134783741966313204362687007413530549759341612685083526027714255868287756119196180805853110493332115173052692914486831218287918112183519083298368955347545807131218932922105218983281669491143018021317340448539413381786113673250505855567076786538564766866635592376712996920487846745594312337771443507174535511400211106304657440714989623990251482742355486346370420774503336593391540247413367458641012583200885132210513647719951115304292112731473122206173165278420637946261572547126617739142422288318562690315411925731125713758042260230834598210966906275197203697612336671550769229659920773209008866057683003833210643356164295149532659323464149906795590529809262230237286241326735328050420678366306551924818557127881629712247982828678106738386633011793234963419645712206582296377645639099824529181306891546015436689109617407677690707486877252763864782549486527205608080208383677212478179366881583932992409629807335625977388983326881452349153712698607648188977631175923863984969248739754065607795045394444734312661119889883672107563264770352251104081238309237174212256574671371409833440929201323750349819303295484416141974997569143982263897804874430499350279050359090261654458106089287130989003022123015184070322100571249941985663389750791609178204257867525204922825586597849930629037843057055056380289928216626093167992036894081741104991059772835122125869021283129805570133445871915038153447363692029573825960177137298434721951387722460647409970339561336839060095416301829248017277291933791994763638467452884277420107992581816028726230150904280841823192316461420413258745272203234799273734302177126074389514420326939874671014252649482546065981519109500384293385586309663072573130527107985506402715408254780244858649997989205576442070746553002859105612390412259320846806056681173592884137866319277801685410356517900213247386592448780349463004429005545843859262786939945997253831961587949178494414221679468670303829354727367043823783243318025383404349723114478752094260707156529448085684041668979430976732559299520932036829501283546920086543156552999150101956998155014849663841959592485275546195626309379387338347863562958551975412002134374499047196082580408781157551249350596561793106538518046724537844511085090359508870593651073015909677969867843895055502597581628976274948230405098241756209886231095821790652765990924257973142241598006643039743733178862006333469564768761959629101780806248312460218014918142911626690244939702631283802760538586584866670756502512690152663755120369031693515327614608831958858605149432202478133999949669274404387227921488549305402057552960318010684079324051871511033431099723634894898054189883579198283384867567349365351349051881943144343227805474472724985662760778428250218687759413782275395543920382126617089806333362931424520549911899230046314619461668868093091683380835220898895528306152035106994836978383196182364544602833840184599482868322657579326656157798459806958482492032040723208618097162925605145375426978787781195007862150653760280952693883916525720990714235262907638283997680620537543186135291263262839089566924389061177280383139401924677110211813297479269980095832207189885241988157579717107519060665469538160471826143834800713090455549567498518245719147773458817875268294164799505398664463919908867465114926441604959509781090886036338352835520983297625650364374390116278985518441075075297635814765443076291890746380061605566753226188911175640679479250372958834148160442532923515488011762791155120133597342919583907966657780176847402822794211656822773831267252183297853086067830584544941149439702820792824578384206851386049922733343845055613758224106993169739762825549522803877805131591086218072660186227169506081332656803227692798407250285061434069328692269091994606703557285038384365979736907751700298708411414544391632944392152263965056654254997779990057462533606787332063671696611761612140602132636227202028370161180993566182537133618102234439118999170238129433028706684546393483491095270815967314934863293901866037694031347803119794037606016070535179492810669379700471748767563624548173700892854179382923574690799575849090824068109252181783239499426734894598893267432710347293555912174381529068905545428991742018751631355775008747444850950499675273604893607693664687267950241656618759917419772192842419054412722075517527022352208123316751749742265081020057347075515915404806469972804735961451675668115539908256653347315819883082881290359775982745361237321817599675653184772595962803103490780614268206084209054795271303862626819897735786932067170051553804330378775323572596946971841064864975751681595865002100455850816992505201563257103930886687011832205649406356975495862025596906250786047912939030469488188695709147721357878444688758859027690500165351609673545890441533840159756817993142587973042114085499039283519121195798901297771248872248124534407097329095501252093472539449160933126109456237964198035058598446717898775749102672428213016616670003660010778826792061074773892767487900967054218823229411432499817930501507724616875553783582822694862379963172873634728157956643503868258409507509470372952400335245891938658286832056159145255716791223820251703185398202454693048592796931995065646064609813912779678328632874448835239613285246334547648679245119168730060547190214755242340833162609687552057545677157938072782664745982588836658834094503890488890796899205857480232897995453477373150721128352873400026607206449352952074552688344804481792421895898148194601632861356747400918471210156454863584946865229595563994062808287554146252250050072273598717904951201081183234294850581223358134205769825970494416186068815592451987952447206598439043007577399172221200127077739027572023306856219611818950093306405441208680128410555922470507722091517025251843741361217379059518504476707382511801499792864691140969210271404360181874057158261092273507861294240791450051486273513784100306562465530287881975145192397548789689663288752229216214760139321659017429736844201924258708256174398843396524472709070894076387126232473593832657783378613858680644902926638868643534425611477343952967135544951922096419504381247158374225684258421471513639593808666551672171115366905662937895677359367204189643569178614122298003231937518422367833934314666093200832341542469543355267121876410888269723844918942676118192039907363663961407559376892903254616658633860561543283102751343096821122953165511666169965854830839829308568174680844876122760871154285971354827151512963452284912013392973797084302524235665182406575224079677675757757553687052364475587585200352200608529444960912798451175559053823185588382519129291891832683180850728433670807608778651501463572647637760993516296362804500665352305593424251141191109845236863861156162403835889382158366598120976377024815129038586542239999412541038437246861926125292364865270491690342497186331256115307833964094239706400558349711852268795227513853756705512175166981374285750918635615102577119513715270064083599057960382328545167551016115068886913978069388348835985707973342478468640331748177060087772925739098855493667761632379657821699211363824924931334511464072494314566357282130011778765429357748276328685765922799893609694180206226449743729273785714560620396514012601429606348173034067489350656044238017122034618103274219775298478720002127335267860951736921970862392684409080623994914948672767613486211534231618916042655785836063956814411093233234854595328604414904741153371385079317362388363320885588229235973313693425372139592896783581358669211360562625435244662420187134430543062547458492377587437501307776626070786652999331739722803486091979828394651643371849581464652301152000304593386082578114414554341597703468703010041029825188644356844853249851935367376390708587409232116376722486760883709207120136715516650646803803729758872893736307527928715861793665066463888027186459117034147644254737929223711211980185131561970411896887320322334124011498214701644495125140878104332497841082599279802089184722219065147432290909910909603569787212269419550052555323956341442152074954995227879271505795879588815726649714110712854866752022003274074334811882819792475488117816069062965807888736145979826547002655608973541273887434849726337820592912632862855111200578117784578259322741932202600492839892305180437990389749640439526281566322125472539309649774458856745441723291823163189641327413813843519077514212255321627256387805285800813017135483078908326447119740184949022270245723560233172582769801807504471347374549519547362722659940042721249817711561496263257958289034503315531819806429117853977286663661319684488268297173455754379941194165015224614300591404330652730655626344433509611779802188948263459050888793786496493775160262982421271375944199609623875206455956377528271636368044480934853625383312114259329460717996688770577710616074806276429194425836048663725896753972827324280170903762511497822065575570097420971890400112450970306121375870710791782647234271642875083231011002552912201070382742473848444222352987807279176667839585055309490684296151641808751853717634799570701953472955868607290396609139162496002462025997348738541241855078524384513847526568371040106646037896050123541798266733951861746703705823186186378781231653164496444742387071708123447675834100019226499209598217816355705241969876340530179559795549789918688249095172768942800170471735245829542910069890903449037022713200954719794481669901601914683695188899960050182422716410067469549465185647554251378567002883606736349664259689797578365635058599906023325587042683897199988326348981966529739454261857646157359129158843755346756752454404118912306854235032941337108782472095037356222097444695634166484025911412592792731053224839409951767168537178455106078633577396494788228194369311359550190623361792687011344469875683869475848389989516241481620640310645982260254270712883256900389220759529678392314355586307967318628846393605596375992487972525074694895136051240708075823173324330612078958054250535918493598941521661683045451969830004770927709189456306885048770471533489390513881254603046362643163206321290737193126733852771156595356384414218506951935882005245745677265461356013647612124164904006740670165010945670645727895527616943493285329138568703214233982408040296546107181020400180882123151884809782666709652325103563784606859419638947164022627313402936999282012358629909579188309209374430370038387104124337569805715790498321422948795951756568456427358694184846096807460215634349574558470365618708860818372836592395065476275841062838189844188293490326028571015555222578289680199846725362800817246604810856737108682236943027373973553513580513592413085497371239740322746336867735717457291809024478054863104982034921157503125935762729532991674091887636412052308391392453335563633619747656394789896229126052336447096740809310563657431820911989672282336109362973715233133283600978644234458957489674561830018228763785374546471372463788907553735224873265463953312046593844867361300050187870948692060612912524789444528250644489400877589763329682831197252251092433597858667064322031387098378227935354579459786786649622655803526537046518834448755576404560006470096356346581071172738399590921942165755518344719074796666217663526842022033110390425023034414772896145429185426871238259402871216010061220476284108867872553605935706266847626672925012776204145759826664900007603243457349918104201409626354296873539360537402541836351481354803685406612957465506016159434949025744409499684127746885466168411121209952408233665500847910842339562098705414981438785032950716975394706871955509496731184445374834036868286175774236524242952804853840973391731750451864746786880107732503769799081835072330350307441222944225166562594454108618823430249324207791270807483958163453355689468065878092164726692137342935724032040770581402214811796835963521854513737663317120578610529108807691888832946276447565764588168116077299799468293000265783094379612342439070695688840510508271480972105552234587997889478038810713078345130393930967268179442966570372849092839121098568505873533389480729607962251213442578399857640861451852257177483771041098319199993559178955766372323352717464907878312256244353603008924640400429923088748463420376145677586482036295916359503274189380755860270139900916531792958162572469138043841183268002520649755603771416802735369902575698000087664013234686543765110812567048258900649615172765338257311128554872843519510660784673399221074048854217235820689886857480912163720181718726558064267668092811094364864403356455589977245650007386063796653667109661255143798394336264315299240603677587025940530617812638927908217761984998079473407542717123524590164312332983670853947994397543096572404142186891211743182598569309111952421015925337561030950297191377597672528126985051001517820241978480204954412961034284193698774177834356835878692413836097999971643362332379423817980258332426978791216870789412815806481777060965233988640760495267090599907598348871177505067752218124544915868265036313850098839549037330746051780883265684991900821518172116386992186947266191977528524962452399978156464491789223798980783797423296594886686377691067267711907505255822703812600126189887793593268757975798004630144605698045171254061132434388545155271152109178645072175905933363981140502331141936790293032466971853531942172951273381835659870230884039294518693407623221170710642803615626994538222437423460965991098208703894471989120338242777703369987901654380070128284562777911770487252179999575808442261852480765766183063964848847625892772754504534498368054089993238337142141472074229782958070440572593882305293711717598201761293898237921869729617305402052025393162100211925783575201266138209375675384884506052752130230097686174928488464579436534007795879505044447335894823601785135999284325510341717435433761200517717392836495178471323448234665285173108114245424183695239083440247417608401048442144520533615961558097992700525443069515963351710596861978962213067572050767733224528161162491405628354229765236608378540863326232735623730463008098332625543291080639272037597020253417258718426376683697402518651066974740484705897096474706079414392583505000435621062952145126056822426715483351184825278346009515488255524926781704432168162783211864464033335359336305804247337463721253835530755552173539945692505003114594443554146249658066793056425927468413940366198041131829184206318732053360773300832083066310514697079928809656490323003140113159005379180207513633901793578649218322164422353646492407053502887965283316156633364013319945049007660622002461439820275331626700965198582287617754908828934016569515162730657637998308202035209529775347682408859436701430220470363265996830173678903527804992154086009554070306687778242453291692728075718174466178245822657073189535008424435391622914790035813609045854587902881031680769827510368136359970909154146439294604397103737530431973738687621585384609686295616397695415674800373264580686647494491135349200476655800911999730847400467208709313909605040119726900907139646116370668558645762217187536361185765285015539524316551825482008479516119257008382072470459060671328645573732138007929737903003840125499954356330070392845437874922917065968980125670674752654684399098382995908240613672473833437276289119916102331840507425590918117944051107519152973945522341745472579866899220592179555084620220777496303568925228451727594443915001085352005259887192598151457054897227089168007839658783320297504280463911623905132042560885186405735773889790033141423012218286313070774560872754312128970843089240614666858675103156848592345057056464269691919989240616142456240990144691278748232695829777483654789489634200234184891882516347802325648113729135693120247880995374402733479317315465691380954454404944068895239196538353767834259738387326239229827388983832674452748624011139225918394403061390931472359682998026900212269468740740441683873845728780044039211491423269168396001086098020973063691094843092756963262958606874912726512468782258449460393119437112073538349115679460224349529265115406881256103756001648291919624843404772378747419304072315978044720705712398544196582648958438398914109397798113228376957403380499330789718825344665136034509870826303765158590513218630346631632116233232887775391069328030092970087546592091430364576067588323817525221600559260353151403575296903145738187652888135946568596190276491742564693540806433788507022746870622677892737998732222336482865300952000367760946200575037146702528382026708608225680096812116904976409300344654972031257248592692328037346766033286001527221869038372668731248451383151385089206063116535347596610512968651779696884086908012131317205924722642692219398428676147316590902077631364910739836633564611749417819828062400660635672328726127777412628855202187392650789860525381787528817542226231447465795222746570396330405423319090046297602904267184571106327396611796451553397005410214286517379185639954893670997463530016654672369560324945075523883980791263961589967671285964151014065322623690133372099839522221921515090394755941236397812892751984501227697129026664951805983342662033096229075779807980250126873197560468897704692627397258999057256882664390669878993307958589098193837835851415848536746575523002277776051457645978871599780638678891684298295408110455161208826157308293272645441187539591681508369477760629048193877766398134371915343122802404983381222146718876158550640543752063791399152426672745053596666401305564429947428355713242189493671680166079629223471135625280280912718506421890350276569822923147623810087078760263487411907892148039784545037610265481404605612225307931808996878789527867542119701627333933198136278768910798804075305902302496754494150582383960080649916011152808906109495005781747747967965343422101804909996952938907390540371017128610956581275894909038598669974378794388165367538432852662696730018182931171845176123687088276835050285792901614801072389054509405642252651505860176094085243723537381388597676134090212817964571822882260215946172202666216542468689395839722818136277240085993416253511029402081273357763256326598928930200888061040233935301113796584088235775563936345147782436365476631862674031899973839741183058127730336071376220990608493290205651885608009580487177227337843939444172086098558645200810545270878834458557474439143096473919131662092176021574623089421651725629365450890405412720513840214599773557326023726953375305679327058341664547150416132701801029682132140268682317492590232489580481124578099047897966138960118338323913363822330945152853126268088694369494207293674282437751141736321010503317699918697593140773854219181159452846780083784886741031514358876676717562573498110972154104433111606053631177077424174015040439223444116106260564633702543517984372345414206819406575330752781450384879808341366287671479625846140724059610882261470181461442049275280721269952294474664963206730335426784623424803010658058598183728040469498510494251722486055748370201398038664123740040155394823533885115371749450287581576920309363415909628574774936868489442445184547302798700139549975298333774124716028164050579985388857195904026831048283472220542319725639169687827419508753529107026639291399974314669897852706188411598479189659969986245327428288407029694887006337203721151930253150150713134260684264862651696861503735447532784904823834608146196328711261309334902932957185727722987443310147407048754980313129496254051550906437393493456015263921558993793964630091355322669398908562636524094177657745268279345243321916486842398085970678518175191006748631934522627398058197018035979807497711014403861906442617575065617709526202182162022154758517965553997669019627841097581213791393410747905734206879801208813021110914293826980422177248928847370147797277969966313341085356579356782206598654778580817566301614761578486617484297577439573573692591348549745077268306650316105377013362404531441500259914946966049454491385795644497737472927122277273035260138583884547875485304766776049814918309121346897199062044336067555253101050430110145275649008864347389687874148566763689654148564314737034180653213724520793289361225205733890501487596095588196421190159535147796173455029489172437689424101443538143226751260472588164790850776116063429658615343196109677396496495359575554585390615605580534263928410239769921341078447250456542413512092309065023582243295412749180394113113860666533333185371414091778294282364880740272952880573272249852382335929710725847430578388920565216050644067190722893085675344019681973052693164095452933902210851844944661102834363459127917796815940328171313614467543220565224042310354613013465365933822456107812093819268758231180204587833403887873812574703657902631643322847119329073524984671537246181114356109526063593760466294007290220233496541526923383140367453337765627748315227441611653260060098371013683226201975819710574850554253918687560926201303611763629099811698114538279044997348081278463389897830511572976739024559368594015615471067659196329312138418679361633426715196054182693500512409376507688751725987016491729676999712431974965927465268199647094333535879732881652231673473331269950001109270903348639152938569671206430256750457599345780942716761429943982789256089533756064925339712508855100253931206546104324153581409130260178862725781970175089397608849818756906543358023445181148328780110030948599170533565816149399685369612000741085877081040824465824471489601851118307338339423263703202642895026842066422724952554471488285967977232413557581976967184528957662030306070857139344268654162570642954486059740117804716354632681828288325735472240697685992823585289789927222862589799494245316198138988886628340795638462884955317555478919415381121956802153163219493074969142706531102975982437499118795089885699431035622275152968071892483815114660356330401607728876408684253451685220773423366785523707096708577961040975454944030692070936488237913318334953715577244343713470622844837713762248236333415373303594842720518202193076223532524716680569654129808686430799798635473306343684749920492037243942985095575115039483188119123004896399762784122396344324139102699086781967186647974332860839418661412913597449767568414422544966710452591048426882837505970271202447381135539784119111375820042124092071051494947758481151494360166525137577541541393935413488550127192484020353556712023736325916525503026241705387672915304820125459689957460835795639726949762515330439271168458830193522657229515137438095916200596377446905650126121645568669386190949024813629342211219616919131378622055517211728620688224283042171889749183650244849342845731110522602255447881338859065600299477674597908348396021572418666441484031168045334948086506916718295163005606033802061967693261466252147896258812346411413902211961300210321467361286549900884100340910944743520531079727601184120592212479803051899266393619890919389016180578998385744584367670878978366750081299930620153278057234541379373934549775521296021195897526407393446145298198397858367107591667170869430098806268702823445787269527692386341367211068840462046642964283441884201576720460100643059824408828389035692616869144806928187966198664464410025826128130456550899140887447858557031098572035922552606522005702814635898715565304308636030831621200770678825074651003931069134388242622978692047350600116652881820068364409673324414976447879943594063534080924322430753990633412394468173409283239885536546374311014107998650852948318302834349140912604101122815377881107795602030913399309416426812624121810886813801405266013740117096137710332412707611964596968073251537042990171643134704280892213106038693741102765079573172899896790513789300679002662697378485964650342349580124867521657535889613627532104423159265523645740168801855234102088486359069870451979467409938209754836766215635973599203190779098782607725574576243892934248693820396097690477705082464628038768073245127285471491674911221419244068743387536224772712351428330885742229952536669103184501210996486199280128953066176925202336634839546828894252684084925295182946757348669373315577225906801476100225896270181275102316059512126548403283200105140463807265054717482355983396919574550458124067659674720016037877099649048393854988047415274290369000707453237975035488372507383040968792178089214838251854522226798593377066290748140436963776974916032467770727619257891983339894543665989789572383939465350548626572214026165337439622532005330499782119747171768343612430300850557597074534540159931581408280152178365529976115667274746393936171993540945088784876319268953844274257146465353036169813225901894586247554848148786230504481799989447798480033933152048122508005473051550649671162441422888374477441188473949223712342986971165286253204454550890403744879134440948271080061055969110263652965879718396629196517225209664036980825711704847841349696507841425828619365251906665071340192971728112186969260111710100597418885749390494518308055485005907020313517543885436464464516986719750417825147313172085775934487219067938411188003883203108188199876442625476496972390019569779652072118146243241305383930525279865309816237734973510822781929113085806683674986120885796616486855865309409251026375929408030466903454947134471684316498916971099115611572952613162757641285451443582473324993349001438014836335275058720842109663755753521542031102411424192752055893945460407631066653971005977010570125295643891964748219223740809458750150337628576525032108976819398516723060728252846863041473429681309357198824612919323218670874834079979454585630152074251440074934158709845955649768497656499364805389631711434422513685296674892136704483277185698521030934951925564054964313936985520662247375247240535778882902186534112471761265856863580713978039025588256332946731606796857166225371088862103615200184926470617219589131195782957629283839707155631511933485856111052296387306311122803950503011402698585714722615757235356073369645434089659347406896494995147537457637241845698959681428609367161783018404727521041318461420356855509740266597053561997348763661079625595953878505452756173825555833571105847128545307888482123489415181284993611009855369396076600212458339187901301366258261135256431006715889911691281732176845310829276109601638695345471622829880049134230368626283575479405674271454453941213058490418367809088327420955889501043331047578416710276059629301263076186825244386613735712801343426490126805971322601934863949647018379387789932779154003669641031524500327785441323489583830200639246367278879090754077020288242235793323396830439279935291713394339260873819271123405896509805267154068975777024898350520598880572847674817591992932207087719906081446446442934053505631416079651184005382147306733262631121439373292085089543069047002862150555282549882373870772279056352466492255960014765198554357725255263421999620691610553809132375741498006931954878047242679306053281311334398322094851938965949831400296711441098917538309416343904115732450316065482006710271136048005469832073065742147695580632171959882272755768098790639785418268790462864085538803194385186496953455962951994720905921542988278089902229356084729546790849854755163964534763170370463333163163222839867761691233639434968084038250660615528172418832878650179103090085520306279049803895327351195773564883467933806932241629824088607012095848209129648783929389382290549379727577860349836754906238295209290640012694222009123562619706279862613222969765711074651435670728909999396100953673626275114787960976200988076804466305417354478554752425255472409060458254518306812308402860934831533295400832268540325889182573727542647464020820041216671644127358966112631073128064062425467886067358465954299340454632761049298846217684715928369808257623605755139998132526304009805163319439328777764273614461351157773708841744781271429216424111862944064474921237758940922136603823023478167473396240744304998870807351836740292280885553613401095242890931688616930014178857472565646269878285546953078209159060547903896877116980325265727001879344671412656357054990700565166039588786471803085942692920949263909447607601720219926872346537673685782421371364486743588295202214793344985169095048902389713386798440429113965125621490635884296887670955032265874316017145461607703077134288409375912424961610913385250354859727632865856300242834808943541060277091087842408803559927464300157705603186534830265333319705629894779383563937864476947236961236120399912173667787854053819516432072174932326740523850611865935933061465744647876234392473761484492247624785637078159017377196943712430102469333702927351258143960009207885947116664584125861832481293871092675796631027289407612094619966837943906549628406006177738040621714207356433128209450481776348003767940972883215774017548004045844428669516636522753999789303369454588650059345903842374949306837276873083838059895193948641342005227200101721874575873185285647609584451583649963576678004840094149753078303268687993630986091976023193339837653547461490741955849159369792567100489426958465150072258302444968453466550249220622274918322094793884775276830305363116469458417373711309078519578042036346762449260373661879008193331324367597815098610233023077490162313884250458551603369069015520044808429521768626907880105040219746530247855007412128108218857474729221301538673008775242547557000375230050034759099247927467560090832650138086587607693264459787616135042964718078621573599780983284656225382838607869181509464065193843433494607526766904094305787189495994549389278729417459328010382366031174552504330421663438150034405972231196954758879348063227925621675755705821585164892443587817378392249236187670106773567280781238172477667222603030427222723732160231656550903979790878523268409805170080527073905858679306006620709735253914192568183865129495545534494322990953913942914246382967150282672077953678341108555469975461802947225788122315340351862123616919330936658723351608044141147919277636777851807723578943162793304189013066099032053534982126590615892579694787768186145078451943291677372638758200947515691040718734400347082800469595565494216532948717132842737792003255610020869360245463365303529444385415359451520066389389182182942588903211821248471170293802261047096330323054140025371821186800520994387896697119933774150992369886420338103189189373923395445257358618705190476210574236700334849065632451930356374405381346744371326389644304496177910499001581832820490203353038358098375317158507781488993448313559409531912283224426256317390608160035764986845845856085394120350838233737167609246722985189355836333429604931431682003119981455090432081798241106201378189139476687248952930837077334994678204756864954053025841328599780826343116599268169791791936496395275240322595777248850537349114906975637872386282827297228130663623464005592650603800618366392566600962793858017586205990217552710114309084073778168169800854293519283163492429122831629452854224383898378979384073657947398880089789201177715647653328330068477343687499105678609386076701435225989789255893005184545152139589062683199311720349733050732227167631717908227906310941831147783446845436600281422058778829295685731652469439330717992396537700862228486154155238468928877329415632759542922941218707953757796720265311459777871195405720563616145204254570558080879997420020602853264991809359156000018605353350303737274530790083227623828714214520609944082738968094992792718003866135949843997434873503270753215594355001149711804784442362798677098614152265416039288817873507868734177196711875164874563401847652363008254585478362278647794579675220408677339682887131530012732390658277050634989134816425881629599863324829859410639061754653456267991484946300258820638134445004198167962711093063393005920439438158434048771711775680433452476678369727909531177217650968830883171089424174034079649642150724557101541227909113765801229784401546387526198518444482513894365040489507058913520908271749758089940383819619757914241956567806713944318959955938880590078826197359275532084130975928577308369622925497844994061203160818542001668178005609297789584498269496382670851071666823719244591041131065418392971110402862088883755491273287776605020147474545074527907567328499988553027607314671545101198923535201866150354604577815204970187653439289463459875231056990303590574056313617087854938931901195037439791012681902461929210090574201186457437306963123628749341277345667208746042253811854515976909926518044726286850994504449324380204256552307430862040955949491553092197064632658916817376241817938884838337443314451141476133717881733793871261193224280038861572482992600189082805485288811054147587573766854267943331460827875539719809201605975007621131661755998891535863625521769312206421754639429196079647508176891571234690124852749865069935930394637777343676171806563022229281895424573436052287444027866604456316877864361556082556828180600082725611291954665386090525184016960943711936149593327345135376592805968848585848284233597988016814367468273748505895343386472219370085238495377993228461435259750519133341339884079836050434010624601461356598767282276191507602150164188015558415603412211332912592489753427693380292348691622563327599251378317333368597003683365228855579399591551677705391688937241307321082936316049552557581325844126989307527043216790683759379342897531447667087695539265166376320433405579793183960540744816737162722654649566725021417694690767224829539100594818378872061039463783165878042464483225818812277229305944939578763330989087486843658226061735489852121137719728181306642570217874564913333345792195676329750308560274765466949996624044165771505044443476834121415423406216474889517874737138634412187247782733440286746101426162276143998221308629039792897221289772723752471145310867333991192852981428053442670947049837646574103460897822146407903028350361055165213303049106141613564520536119640995407324818066027751583172189772820204822611890402334758833108422770869063778669148593810888089844950767806635744187028905079380451680053804219006164151679454743268213570320894624036001876080880587503348232249207177065315922678999044030344100952769755915015014885777628460073016946408384773192306918982196030804076408991903913577249185420614645896435131859150610690561457466879563883320194256276042196643281176700376337110823056077425171775008632227920871947196877752967884229568607389871978516183765220255844577819638780018804859922013143197063509400882417636982653437529966265010814970379227439580379348638848567307201250327567042378715894984768004911530445936855189321391452384889295584500066970284870635821903843389004422042452738106165850866330420335683421669536823780910232974041283081814708469563903895803321178473499938660249331017125564244909219101823025044148674332592483875645523310993858727781809439980596822943254844145548867614659318162950750640732843511068864281673008325795363375933234454733931290377938207403283684731822870945963502369950604697143866407420617735754662308996238635068313325097086090188971849265127338069914668255420828325564123916169807024496940131410527168623394378860744640300270805812872226260503905387508533359668515282055332676689634885989627354144892833170591045510577628200654859282437510629104262108653117079608395532278093225273242522926835337792081974601116257439725904251470624381166209984477054566769966951336556563753730650361233366735442727331241836945084668648278718006906364548914717140689034869516080097972745854228506973727896528731460119782161633878077371937966694741787931501446337671574653097901738965591772650424649577406721139125421821118224940124731325307489438621340898600139026726695009608450507002248054281216456446133320655094136984836547598569101592816421834157166029000602098137168589462918948363378294536232300804310635209765822791962965284996146836107026041635292742235231101659777308575777873105775673882748877820220302275029238560258714495222226928858173081544685186184611686641994780120595149811420748859267911093228111049623470887474785304115933595386865021994699581525362499067749104809467676288313686163177886694662482307872156729125377784993383968024248708570955510191777464408608566680729084558791799646951820582456604682854363497306849023344632534523031799146026953127888376095949007436731502680995055177971930893786474255429178751003179974512853147331467372904952663864256091645040049509615643096409346821317379502127145900314752981324708324899503901155428728929505109378687662486658957999981249691123910349597949802553723520934274751014215808675217812823273429982029430142251476727352597930819518369544814404976870074655101764659642227423198646760156104357048030035959511739117530041483631574538151595992289313561762282780316073479901076668963895552973113465681774960984556136767904683159437559970498558676183867553389558870953024783428018663316052954043494226515310595969532358662083694484334842856268023638719234852439071112070880356420010289609756099452846146866125855554846564752935609827776871103380305501959773933584811068531814697023411659766660415466941585473209213876798609087781237663349379985070445778964115960631999903279398458442505537231036044082153393709246778576289209710875446774394100204663921745526956137711055436153589616219126374195327611480969195792849785777041367304920960274314239584302615731482553358336390482186239811023975970209133361762483502568343608879040475529198341771575771655093906394242531322797896091556350674207709810638785010359622245985398411632967747533405373945403379793243268728668373516545706780457849241768789378736263247445610003522532048946207986947380038060888701962684793879281973832065295103354793296969983643488054523393586957094564773467222916221504103524281267872404927267240202219740592392022071970787607219852518140225045976359168289133638900270008568889774171058083811271588139507663492746654364906787671756550377158614704681487510204857173741080930440456380606687484235409222912297871193600744768002372317067170779626753677911148262996554338745979656955556326840157275236587911118841270913077002524553998411680002996798509038853032061199844219178726054051761741422291139205234448913484330662066766797662822203706209075377834671925414063791210899922908370143860547140188129815042194813536578385887872116416648941783719395261284716240172013180457917633919629255661852074642231715714033561467579554521662634576057756298857078564749382538049551992387852772410507256998937608343963822219288866249976804857522635452895554997826936027264076686986169982506141609762509369814630302860685683496381744822890490594061287620533241961347493766117408554610040719719883835438970197284711634221439426440909901425988534638509370315651991442290413671495251860768545245129168235905864880605433435710384249397785251198463481517009150130470361946212815390582636231180271828881911568474836403323783798967476321309338659708667139707524313717242984282584488396727112820976534371522288208109654029375373919578994814628425475272179724080707603710911442774331854105954472516254541448648625770055519335585376048847010997057982138367345226228209078987234982247560932012151727967637004547973749994750176287417924368130623737235312272802805961682461798979425659043920388303733928448192794269510707703017804693550680558941283470996206109641707408401711104171086528384791793059516073326301299578810623796427875390928274633224447130122140155898175025464683615782949328782291179089991340125058166824114092234521057589503105687929846293678225410261569148469501852875919823928658861749877049219227834899041711243242646301438875665323071029303708457813936151561598899586949968553324751648292283904639625163821343612862717340961528673490322624017571525819432992577202515420082514245281478032880870213810147428212550889997998738695772166131284684859394991714784999294974522431931662774911943331235627185950412956900092539821060983115023216337029572027334519252264967741605338495115015025373737346199439760100395783001673076912255450400572277225543600939085228274246548096887380669777335828690511392803730465900706545977383533203812335094729561904141499363935117976655518387824686008105304757822318368894601344721015934811516936277335511057608889738895272866853266851783768998128434466690702626474622188644958624979036783979879788960330206094270768160836802152662086979749976219626049957945089047234817985407849933803255223184971940292903395630830000557229398511717622870905091059214952720236952728069480284058756245854451541043725627596309681425794813308687511382261887125438076444828935974892310189679853495505601899711669323989170776291171422510313901617584070217270227574838109005604057493773692692994209758987371283827529493429175736252424140795708862592510881849576390175635559430122200001342088367568723858904730750357773508910295386435889110270622917313854572295870083469800128148710201785749261061455794666748568134415127434277712950326330181804632638041828056285913651163595873054115312091582066992515210358418764004240103646220839348267651019684678344838488877722666501854709407355242895662816268382791507911658760692069557977913737947425132485487427506714804692303639534886314030365110895797382754778969587826882804182753742277890364827866057696831814596418964890277677684410017335797971274959182313995145066124432702772573583531056108676890387282673469285849098106102837467097334224098950700232612472557539985321880265626580272717604419629595500358105033758637591450222277299813965314690414948200956588278491206442092831139047492190599390189211867025963746337108276645328015296376374420765429572185946585751103875765211948126244840890031777112342843605037547793111198429467106842246333349300250873270500389748946020836346728420050521698531569669626865064758896467072183907053441308977507131762384388892213482720116880897460882497029931533699835354808295035199587786453526183955545299184523083519312855148356932658835371229275721614031209502446200882545985262483669398602115719259859928988600584990959558628682756552850038464436509969727420999739305734677229034631758354469226493540083061377518098756146462523506830285064433903260394614168288216543929731948269689534385474589832810416356598198631007220422626227986872170060776493107737697086418908827801338172069421002521995225811046165624165389876674395524150104735421397740600846014646644612047638383648868377557340945379790225664918385473971648530435200193015761133052698398138611778616332632634832024624194472303973261612118938896219313467696061955858531984003042343663668890585171320238780801804467970906923504536719029412242479114308956111155144356257880045553801513788075134010545462844321192795436571733002601252547961680465834891551252429100735209248197177167307169738022430239081189132297696354039329567302559755718995847477340457630865258442622606030316861145300481372762597133603652673961565893735714143436420510216476709165667539929636776360803147611268797281134318396471925102175978498908792722859242087101577241752741996712642090144594459274914822836755562845392805628319341268934531114015435248199619772274053470087624081269835637446929722372005171883955900936252291438752024191483536635405684353203586843772881819855238271371375360984025601087409198879990200391462329709963639105286929051559879028073832622004797930768778928417717530650704171330355298357209357127037542683775646968277339396741840040913894383889673475435567864835891289368312583810800065073186261352494790337715263384161557721110307521198897779933041743478667400630001766698102057875973820423038831412748999555012558009256031541826978795423720454663908580648925627495253299727548209214803198077388289409761675889174963576821885023195500539681411694714706197949157148430247492600050129164215965383595085077128004498278932689355635545074856768373771328139469190930047624126879968173290041634243292232412455991570505223125883714649787400164904506662771600821606445974338487411673173308287412209674236887606143893855792564493308805898546433399844119094621770768557185649664618039448176996065165876344872531874838778248549961212889868901044948038171367090891396554834343525643005204020023304147704190801667190219640394942334243829245771943383231456622141747865970074884747373043594767295693678918792878850073016562713661955989788311585521021547065618771901429281841925263178025526414250851517467888702845770343026850211905961715921923926462559556281332037159832204833261943648615503736773741045916363870684871586741670336560321397616128293811214704750542420175859078988252619400853277527139139378408570952093514943050549951983158326388533574958883029542935505840356813570820687871506134430382492523817137757726455578554183166171832580932566418839199312395188235503531045871044902261498267515632752746363007015423833307217157741941619816707921138948221975690408159084098505448587944629635315575210292938629067156222940992396005816585682142758265360686194659101108647124802147740305124071197426122785373112290127204022110830212658038062264740728066257586367344961699691038153800757162983244344595139829156867701591528976367165603439253918898448385169732996457705028909878015200294325558962204053651052533436400600089377688158937412671922780737243276119274821658275472051316455460908851256476751939737694250242937739378781899620409593409203877204017633111016211565792764690508655594678990564812387166061927777770213967652696462481765619542120304788540393120151526531562660388733175731612029151790855623167820921739052294941748426259214818743135373479060411668919311652178239078718201700826761976675550810450382087971037856818156123840973567895212661933398056673043990120713264748328018692523221126604123113294909865960528095987533006577957386221763042719355297952431680881312483421795650788337513217751101927759649955755872278240674336334446070030872906561730535262443710656247389613929066262981665212628585225107065649408405830574171786184816806110016054603826766735379984318504615952416843666884040220752042530090888209745398385609840053767020486574325307268120729595521914690264744707878044958870035556193184877957024898783777158680417371263113444411462822318677974014581040555676052104629504876815058891278449774458407876472517468333355262507538884215990120595056110833531401399901223839822330081804001073883816282502927177003862612142374799578777570931060134697602937666495014335602116896340552948599804746437473945838282672034906353382687497703942821867211151511889462095220739145224003749966170749897771305386554409019044238288644909470218398621495155224133707725199202914138702403658166605849735702455766972711599869916210412510674251788150052470970032778238116022389322313516337347831155783366228085652025082101070802958604450316723560029217999529980237182836281303814448798588614201492978925328247153832668156943899034490688806935233618953779845600920965012761621976676285259639596289937877864554685038139956722409348634485318988657131912436536381328431422370549179506718519110532878692457767730635285547063960341939346521254235081776649571109156445231193409850505487687014145484912359304919018796866741408369517238704045732135264724130276300739585899915707747071224291256010233036246737537980966457292591347037238663976155764032090335806619173131934847689849763226753079655594459017617518676233566922207850218329222693358523250294341930190447341826868854147385523679515824442000427313978974353305826384368093241214486837983582784642911954812637457129480444658509544983121181281968968196847807656195634627209616581739417531554151165329786485414462532568003270487981552260492133959165372560288944091148636638841997408479909505415074015622568432695800768390868609728540676560573226345471679391049278562090438023903122473914938046837236368125229190784418590794666073165037180122393139449932360649657611904117109420623256573776516412648961288620122354609885992734899546344855440885461940131910508296030611774347786959414359299830638245472521482804177859418595210362641736013459672227777253229147153172093076474023967212756882194627689440141981611577322884731035283909080981667507408672314007149074067026111632063705149216108056263285666731519353383326143081955665641646115629650339376661007181178628092004295944363439490544097953385995148999756466586647623676724567958826748550804489975628722894633983958910774932144461134557891681941209439475872053244683549385702397068986461046139854852171520284498667934035962927742512512448998262594180590374341524252292657180191120372880131782345691065400602736972641785399662009187509946490049173756524819706954945143739918667901182620587715722843625770031117594829834073956524612172309864006844926866542769637014576986894591894586274464830998067498398514190629506278333283519728322420096760870749647581907046714826747882469222011035729403654225451485007149754588695096080061321052439380055458269903479645482368267128842411446946947446623005200503141359242722856382870583538873337749066166976663643257551335120871277969295497950178142274239363800752211968592506559571623910980344959478255615176377711115149515724319639712163371237757569790333577635398637187728651908694045751846287063711080288179225903378830438116091081333272720391319705459404876295165725002775878395528731958911995328341981023771021773346671360826285699191885968585702562130719857349122228327961842764274351043496697105462834463639158898524127581313083759644369752725806669628860208470811833230548116159478952946710264371389337579345226401568410259590097067756104707237585343933617638525741002931105401079531609173130089013119155631747460189571160197608806454191543816617554650162997498882281439973844406728780251218621759798835864102680057243899567074717149151489227422588177336074619191810824982276949643854655959257040303035139306124761457226002416519913205975746897859613716385917853541920100288530708012714460899549837405864457826301696604582115078311888573305306005319221976897033742708054767862687634888556123321318255607680570197843159915263810046849684345902254280538773853963892766760387624885639289956816104993339124913789699023528184324583351350276688025615175196885231064747205047068669122725390583553524830320957344591243144716657170283745641287291625852983204122862344605340399868058274241706881041398839443907406908265308754686937157090028491341867263636817624459232239470698990776080002153110978031021448256764525468906433897909334495624662958856005475530928784285501125935663484561104333086570775536479572227936260501495899812128054838084730244526871719984245579477523627579986951030757862043628814196248860125065238408337075012967154024047178229672736279572748772157204833576629571630505062687277506554108884714272000313436015254007988327771228513229008299221336098573902448944508685412549683034855261465590893812367724229821952711722278472047696964092864948144867982975335740885446118332438091964272379401687634323024571418809703875899923596251948697362863233938526229828884231078318564746245864180993410102705117943133167814760161410565005953141718860329077800536424003724283791141865364662470595317922423091191562657001343956057773924166205370874569377101272313449381186738585688150955450627645888222506399321155112442309605746520372071636473168282342135717808842874568883485395371548039344935851608916311884805419788033701976816626451077914480126857729930451484885543644184472409916667459788337237231115960616918901066675764335839530959400775113260615256212456335127840414199602518451300342043779052537077985095429249918557298289976018243613449723355373126622116912008476826001423559259821899849498697648694987659419387361386912496907717064910502061733379510284987814472501867295376934585104401212755024905370889072241186172143159102634705398007917401612996508286436486979532225790832606528160427768481210232828737791243952514911826410837093996750903378852889265397832348795017247516265640050013890134154790855553561363313195713442225537388030446762039103774168438548686308596252057596787041627564933226438213891560738594463646923657910742777514099018253882907442418113212001930760162198653472496602475716430173254684520892113207913887760438978239040870863524133243256833560121006806640391193570268474781552125849292621078542301909954770151528788879280238203717339578940600381977458984936217566055797629601422957858792262772541216079840223820375700413339720707948312353190626667325593400916288827946686814464225851758409212657216830631555476118956508669143963639497376499682612021370756956097233262332888335052770213676778814898554353018083551702434324775512113094378682636458945419242591010593458780692402130130325597739242942471818748466765005570960480915915931700160141984360832841634949061603723854131975028820006741108658267558543819748638930618137688127095012935632091524644775326043129840832378156389122068781537051285747261461380765050280348244120254919505357579923844591537394240052562107721092992911196157102890579321321655040836652305032613398047834933708388327459275573319044726007158362242444475498210791699108552837537539103985338757853276776268087051904315668450643468423339984895903752683717344086079597547105117342537410852593384932110683915893278117873634202033267918930917613487929486239576033321191201876194024431778323020029070220575462884661558802758653320279878248312334625833780640595125727662090602525522293305247195525276480482152752168220172647603663671578970443592066059948012192879921507167436038878754443164324711747881308129230308020856440586343895873634750601552642973224008539125673639150507617773577748372727242328644640818167018157929572605417250173921391616129386829821167970984993257437626991948321752482754993660535782094528006333957734858078551224982570322606262608580035854178877684003224036893151822789870211615513199435344653056791592604587364094263584168018788875723153539862740620774363489569778929466186479036922491680214954530888944039615618512231861776280985790561498469570538878858188617586467160654428626491059985015014815310481848873677674854512677687270666811947598656084293106117068241404641711569659139251801626344311384320521513039673421439645522258546372638037617921083960530529016662785312480438505974289198548064860801401802681120246864353829460208390232215580319724923375898298867218335893412972885134581050142121217564314970939810601802741022199624700037508463446438348593385222716162200269933597606150189192641667948229930866496669538109382372432232585864354730502299254046142231273354254853406785842810467905561415922007207953961314436000358183577884169767876958528387774156631985097975310469454097991990958816408046172789856087539549381699782139145423462427415973245639975917199623178047310369986358684765446088422985540844952973308354187199504590619894999499187144869254453492580965314903275442399436990582588314873231523100786913004069384571386477126389169801173772988000877158035952912352574779164448835521241953226634684705256631992465572211944731822530833048816547508543145554929150594514954168540049486002017454133189589497677854705297594925514853927980715777275600875064706735713050574335400456476643416666104555696409368524218577780327223940830271976528259734628522395091904581560608867844818572244618891775502351908093422349235249235077525670890801055521171331875888990047898582143464664130373982455541695509709876474721021436287101002536181435170755985033306474452657728839492885249376342408258646667349975180269433920518568799206500060258513225643669606216272442557146223367364291199880621280112754613106739554450752185932678607177826341650486830319154379730556579216513154193793617876021927976857187062324541163980925880197366746490420032287736011523670183208989213499613492668127453675119220715514736811188254244505347372510025026515486461384971838033031179566806583095196841729165224136721396241823251888575926227093262403240667503132240983123636203716522417862683073272179766846664922097222892613687931702336140804094502976943530497840138134507068919357420044040942998870427022273478738315780989528680615264580742155909895723031770030587310275581512236533858721074641093625570679873482561472438870818459637239853035961126738045929716075301967486266727143624825249013341058574746028155799872863400910922368854540201137580378601524994049202187949780315516021313509410017737094566543151028516150925452622529825370697462455806721515044372739400456515031769776515445691139057641394003149318530699679087988595985089370526689387592862780527708422462893393878415507663493992610856593677866649475592157205682647915513349037422171855961529622188067663837563802374244378295667255880059959837889818435099048505527549576083993847292433713096808812027838625844991100834426226950427802805317042312950714460186909484527609250451623090473893103911877556693690811976986746527419376766044934245174241328090385522672718717621587947539807348385574536004714508153532875639256068307400288451506322491314075607443817645603565522730409954552485154046891991022903062642804210790126963951638577673572236281696505891967833654108350210647652316585616963907736800592771238464361034150326654906597636390219361779505704218484769592696557809728300716282411013742263857914358019039646591135450422591366496574414886385758265772815723585315947459455256734768474851881185770887740303300459811387229354244774520330020426741502122607363646839183866331976867371951554175654872534261838853747819307061745479067410140115431369524710679554687973519467061015368249257614217920563455608010452047827842911145656776072938958309962129997179495134950218739556646095659366066612688293474014013607589140910263125062423997202516008929890016431783522687367540587503576052642415066609405929895993869659227172258016047090078403039439708670797707576198115616028952024059417898652456383985398070755026769098180451990442530549410775229186822810569038600766390907259788825031677689038819704356571513549546211970777937866950232165851397275236244281302547171169835329479406074959905854386112903338008077126400486768265180151462867807072269006895668713716049178441870894876384258160427246517096443440325254641087578465420796012150234153143902668960893188619194411217589944746811857512666550927197591545976829708581284712954814188556784466989961224362588294304724871686523310912842881492248964189239452542007176464159524785957915651005102595951677382633151522747892366575790577504871377477161783387143995639223571088556854603357905048625621144021815867912089009089091778822039041750843963708267373484201402186066541899558891898068104362524113592579827133551737305931368371321809954750085442968782408072067028847735738076454091552722365636648684936394100325619640819927134534009268225003061086458795219034742506250941524109185223700124511004299733204141344173358620190700769068101438977082052927674932815155552851705997768447556259084657929992249328544841060737142795414217527364152155537967040646360512803042474382105860673934555551239398015129750998700868838842401479062531344025133090217938042193686996063797791016573376674344535787479916296549455493961544086992469723783354028848322513393758669902000042384456813203507512018199862245087190091437224696629509303875085244080567502844498017022808460743220529248769184814990673169714548116802557910936729706944123665716470389137354245268992998930853764867945942076166195422270245352675510357235355729935196551362938860022988902779302533455517251560674370673953173836170130204283029695917081880775573369843364666954880142449945069555928581017380503768103107642617424889590738215288551281862498153355838604715654197762189828685508314378924483400123502147273342071756169860817783995222244860388786810136023291722570874589997730580671302337856388139414319352814306904257024215854187045442854696930190753115194191208140519561358073357957079339089056200744214125898741751457674808057342087922256305164976492783058295231549974764066370209637673017202715854064985182861218500990634307109535366313767343984061440444361804625268492538559179962063771017755065402762177483173330529134366465694161541139714219766391278478964345453246815046696658147586280544384329107435963557226898700233842356333257490264855568278282462949346232731198867852407536096899081113044967398914434709410075227212100246612830056841501190512222702380375311474907225766628716592437809741306287919034653568112433333431840172038589645437779611178614785821644173998251394985608374551681203071581848651183973087599997379802971962556613017811947297899030938951014626733615582609776893536901774541348187282112951545628796460365562068275941103003436154813885983874885656305866605522225031706613315344664415806156683010303412461985482254453652701158273047774992760428300987980414512924902211651781380806773436306566261789290465022272536154575274035229903735100439772861617449767499732106490455326228737084135706464906236629983118286552755887373179125010648607017830005149210495856762812211295239182274473279995977531674726823116292020283618662582181643676806495834048463192672721823362888795605398856203525498178989401952460960838036531039999564091517036711755745889755630978381949528393613028659062796156341089729024501512019921627013085833947576787633522787382790100162972109078332408752083928986043742956597450738954719722609474516278093919034016907680554624215179638912687931897242345707223480050103320970941286340601976024335353026457052762211838006548681633630560528439633163396972252208415516233494001014882783508240154170877612531161589194642704646140019784069913747632622154832125424452167848718070832672586370746410895187468509184759056459476894752969709375548543661899850473810834982110669640006516811714696297913425696774503228896927177859429001227114699927968626036597425632422942360307043587170019140419502155642497666646407531702463515547655765833872386701673504048193193352483685347326744536816828086795971719109347453659210027933055100763472352146280657097575084391738505024454225022098762345753337670651163467518433206788485595484911428413536989933955929328681194201332059059542458929803024106274747462753404420556151904051639761711410324673017519522024319337037542961005105246793492045100797390319417682228361378021013415554385864445676728470990822986387603290378678954259268740586482568021150798698109333816855007381964884233462156933546781358082134332442172866264116005237295376268198942921439431783669832464181135119504797031464986598004673111508994816590589229015545801286320441259334762283185542422104967170263075833496116974368483513762496302172995175545958736220572696736419047037151475265744266540008844778992295338747139163062726373058322054822693033215092307808964022255111752104639663202499616725095960226751991732333038042003896649880580918465687438743327515188646933452648048447415522218543600146955875162078511524300694644539722443213284039216889714241221058110548286621583436402754619307468319524718618363724897298251678249787797834172095718866704627529309132119506116639189395199688980915381627912397445137502028695352350285580700019143270755818932608651437948078988657858607383064093266093435802111842199849426794164066380304977403293747448195885022805930054069424068517786056074918198920189443629160632971149340739991711938135422975781765441368354080895997419458297211282114197711633762819239009335339401499102366978301753024124240789315460770544435395723123631131582450046683252332564828002979701951737386658699341565536608213963579562190211479136283037323756192226132351601986682354710632465834820383297099167054957481461173321785843908673525887540897740599457816863283726771152683474825371804810733655251812458485427559611092090825791899931182618679708349538390805087201991466072551558022249826587819154979584538243497040851557559158586146732203008381132506634333709503111322873352066405134321424027709945602619360991492943303316976859875342014135181574990617528438709940333672073490602096590000875957013328015012154977371195124200944882452188459941404664485788094575051149448138812745028888193278906050489724959950815010673895416444133126101486668588328320627001225301454996527275863448820175412545116462552042676397930557182021445341124103404623266734251118576590012769453845398677860303025381150927064835977911026468590934442220196512008634191913340299907102928759583173316677047965269247894398489420774558786415204194525227796320934850401732195763501042911084853715370893883718487285672751655242349079301211619147124959235316056745297323910638055277295938422143201470237016927214835387212206007075423842357511546430326376696378514552655229239284042847937394655418612004145189057178420096440766096466926025090881835941250283966898044974756128617974703504040392945177067408144171956459091519523641141602033972357545461980985324840053499895098907561842543151130645427070578117141193642643924318055663051213384322105738819105473594711165259258927085150469206255107039518664748795782059545328737550408075464347865009230636734089052472255132389452280712450548067432764503048423405227679599487860554952197230403802261292524769849518259106547167861732772565022838827372067712628965282251055452518898512875717262914047771354769410548702061150096602128469244467826859346652686251784478402139868944248935556633449876858835026776190556652394581704782268913978924963829401698438240108178205043308942223779968236447665606149786741041620338515927683987436406223694442666886322017189253311898661845478010937100014742216973937400971316351433870294400405662505082770894939349011701973244870045890770254526591432823269903983955664128575099415508156468842304721894233950006173982818445008265002018903053265026494778933768899671254786230493934802492055820316778256400387003015084693509563392558310018570432065462612509392993614197906072303979200796002635592820556105965401851738033537397955209100143918853743291200777534721460959821403899209300510597088665430167491996589441777787947266775589927808823837386871318917563197353962745210994817816813633856486666278642418656305190718210967783884610230307134082975519446616798238256135459975041315447764085932093042527113088661920882450920238616850160156047530915721716589772068543383288511848487353307631560464343357989123195138133413010845084220564738055351716372159146922181168649664254595075971652165318296823334448728636891531293313213685664696913225253175799113737556452175479974415637529569069466068321991219895635764158388619990978744075127988137510792312604523837444702159382119355862242411865308835845097015644662264556808186531853643226281635636317975886390643074610420648284599421766686766890920275449918223309359337588734421327289526946625690147385429751662762314899103462801705508821676225613335225263968758250839563229313324322217796802529742910331037518357001114789795661370077300356452110699540669820660394252895434346959354780415005696252984450480971585404477366241099473053724223551633513946953108819081914650697361122872516203266953751009409753474056585933156629828389897233901124721066088138364406749627784068466097547288135338026156965144082294997424577120664833001113690569772208193165189535719420183139462117964953287236001721261653898129749173888935694226571876336180014277779972407295767786526096721363904247338942337741453899560609796056133467258769171676849293166798660174960110105755591565126786006507300652819321147278839757460785880239439179111391595192553771306057207547004908544515641026209662828426010831404356679333132034084896922722956628608001380673673962429035535828951286052401446699976832965776588098873808286430874117729564378363946471557449147264485053434913060460762413699790060843360340794178931818399951371121778147909532275069074075469876912088774251700066054579793230022730421415963172303955455274257783702634316189936930375161239315874989502318892361638743985080237192543116069487515408659695928901095844971761597621683507664113962765277623853400199447033476989791746900624295705551651746693563015328881246790234976899334235763722505679250097550030508295254991695636830955993086320605115194789298666399362605729382972513492582893058365574316867749574169547061512021982267843531296479122911346547342123892154530441755029826051599076068128652540428648164328848404462052792536763656201469800850108798120779298749971590359716959557898192407143728471887072723330136188412815493696502596645393856427747332342412256146280558781060627061151775441032895278826317595169957593908809202252677471689721641676888325390868916608512243604950227447041845721905717323985868434310413817844806533965030340309868133257731280819228433616347109256425446659823055892787901568886592607444035640190946798968021787872789967846167619621992188333436960568075795960786730757984055734482321710633062197027683358443498377023453135890230871047215297891550277879073831479159056396279726590162090362229317922079823522566967726993187839976115419465930480731781038406918746159871905178412110725551147977650037282404761255295716554874353618698009258446096326794458793046675995964273415118313709398378360079468354490773069389672779530954295402080245211998776394160658195134233436347795974524757004747582984532025231673258657984745775560754995029117001091626058740003138463588395610381786661291949217604985388266434784240598176504963789882396445510397594002614829796220086892357520334975637123098148964133243642540556737353278818963074625299713873841943346546575097721772036627326476524595727921640781463916898316137650785710177327419975250835452568729027869334432494917624282383924511260421817432410009193705756748471369605625160289873601877355213478432259503269372194931050224184507447237309670716547553662013277856046336690102542014424242673500473371137137449782794894044749334853389560995658915618601380379153780345154748368980423627210332200741562756080902229976908946153562384745425759281929642754834328788083748071456558575063927766042785298407559573745667353419295002366238207783263395428355847298627565955915690155327511706977345667332154880733142087298494482146700989079794514748521343299347230477026310439069908951645093127139749058625498756600727185646319094602888079154454098919942704433243685871947486543993504046190672395989817303127305182530791541188510747664484644483623823475100124870271928700431776460924893259462189006271654580932744202739883500171302299065356423639005816077504321388724295306826484028170837454370353325062708118127147500335074596753143307790891190865792763986271733069028407963152136717282642066167712414461178757218290601278442559976828728817329483349495115201477099839848623477665181301507759231649608343101474159237301334822823974556329666484165553121923762155754800856604530477921258487122293398764339811620516808575902211826030854659276919135856953007543779247197471843965149022735970860968494876163682156219451208455798056484404191112204627947967702606797335837673180232335407895336063627030682337167938632179933673176259036611716295577183219955430089341159089981997850997353433817904984906895229845695972069295092482581655497248412863407417287986399269188077017839660042950533225842418975748845853297472839565916172907892536308976863530930489042856574014976030981662290220131873116455390608774077277120085112431506665770649419016428815638017147470216257417186889025503257355652642573195179921914745775502858348903478209396681400215192879991233457172292351576435311595475036730423112450832502129890866725845842852413770772855123680589497920762178996047053933960282910445500970839987801772464778342184375702631605426734002422034126346927231425657714454771697691044027774664024654482273376489252589306105723546652523647162943889316951327105550197685687671316909008398087037058416396923631021471108662880692880889399816919830515357233090735907252349379328175857406922860531196155307844404010095215460729142795645412681588164428081397997676056595250057336015906126198173859921115399407263668775049037995226958336175877342391655382918258658711368992309789732218524175480188634479935930755876655142928702456088588869707851162798005978688987767692709576500075689133691426190877626288654611542636487911180146970122109037865075752487453285125562957170880269275099391449933970988134859964047874020408426905168678613148291443742721321377239116761976300288289049963223843004265472360584902621981727013473101259192884533823607275933614426629216892908447518666839515031269050452306208317193854929833637602922539948900145223365676127885440383039699039674401158939961877542790672728211632485179522053468999801821601219905900105257345627286821314735111898250312699834402156359288551107652761434648274441559794866831735449755949646909571552095301313682402443080549171114812550020767645267099380148541157866800520876254965077515493648768830298005796423221567815957844909042565086465063753589249497989886949946852022463674749781785020848997085943497282933324646956763372792909840368285777130303236500827091735952503949446302492835155678137004458400895973994538600040307478861624535133451365267732380213421728042376355109468625684097510535852951544532917251994326781859743844206336816449086294176387307435160175282230514070616157868640377092843724155021375438383442200686291236927558602258418228652939005707150605277913706233534839459704355169615536738161964156419504274111497852034716872547144893764929108146391644829723939535028742355069425425018937690795385111160701424936724620697869579607150441401448623542323474624580499386522743641737952231568775452890435886110137030852182218240633965945645245829071415900523430573062721005686969134594820853743555246430959864114434385596132830643336148963998714511126618846209838380427467028670727406835133397660737876361757008685755699314734313881711580608749138167624189621891920920522555071593037013430089779138328523650465419968068477680146710517163690246181185023979358463674586865625621389102315742946056303460244778281497747193840413457476485651352961582411564562973002164909626975343086011143629518679568015351075558802979701942826696656139522737732207763696505105786357339960230577990112969448284691109017250019265651580152482643125714041996164761218914582625266139954019652672359336040322060119299292795996877649355107318010531797109072753091275985026318843915128820642923248142358853974351950077035134491517152110775473948268444630610177152889317013469487090765650122779374262640379637253126886869942984637710464887165789145859830227419595016269704914113376006595372997862642128650091645459194994023358780868175277899208005077634623753020095308230486706055433147778751765533413082817611076922885865426845023402583904244138948962712119765625123265000376978867573731018172835276836413869167003598701967781167447372927154526938188760909723716019093280232653355593218248182575481030015717054766086899324681364134452445143073547178100098778396327516402352479372231912575877541634420748443432448199781478300355080764486191706067707411446171292513050036483743385266705175306234206055476950638361186525857660643233283628363843630111880757707945795795922491565481528453288697280003696604889094066176197786102532957940444654699413154820684454337592339886223591212414466435540962557384890214255173171665143415389199233193436331745020820115180346134491841710730231424071370568091210114912539756616652148191632569269557132164552545605859227103111810518172424535512015586390112742561818472794820635070918129993840278006037049856643175236653061842662307247444339681389511015312062214899173789788911854505886337912675172904728072884519455321374539644974778146403029962405841574298774676779416589774501690429247147138235628602164297164741858562502019804410970248549283165930527208837334649105703742414483193050507952373402366747595001882179290732915337662999374891839154827443294766177492697419978426078139758034737191105063199218452255428804148930544131211934023370915107996231964247105687415754846664680571479506670333061224638658568338488376200843570417603070465187529691484670747796282735428125257198970276610422592919587742359351538844049510061797147066101464012605326199873165448311601640986284804633252683556556691247527652881210636799358373255590871368725441570250199799387656066286356152207878327122520877670507883690891588666675350387907867479529356517121400408917361743285519937546383939802603496255799592830047010001371371160931274473659597269979164644376611821078016369010113210342927307844287388850515655963662289962188926237550138534738995145018860386733386515644828161278855006460571557216181883636011913141444096726021532352408320866206579119244358916939736955688687666994994249915281120145546689743606092846489259333131871338113921536245003601776076497939827254551196112887192369159774214355476792081372548982046677979919857816964159534881007908846659452625819464657596816759890695445962542755050585075402426494363568377109757989927465675922766498291744359325600488372525430308286539864989401526039263647655313385029496819600856280965374416957669824351486106756363494049191768956704364161472384819436065161495418346801647582965861264338098674886951782054862246109448779643116966870874492984726335783396258267362272404035633499728652685423556600594614819590685830200106609809597042379375959301815165034071297722133760156105509968104776557958303948143143288084696678895605838818734244278655568316798952784751414609120574393998949460961595766807991837697593116534010163612964870191888635206196265366203990964707262715438336825869012431282285067098713134579784643264448017976977596706716925594049660056412773921641979825060906188607758873543124985597974599197146528743883739971758073388774434314657627519156288943836963606563780725738989766926407046895585019153148703393395111300459542085363327304932775384071086078421834412010119210215077471263964253570745198571938284527715773052491147811112798641160551187378109798814958136650639372234553277946736986568394995462071623953343923337061678821975225470387537789049441875715047690904475394170300450445468122508813070198434577776166854419440370484700945839957082726905457700586370724608789582930771865671888532638156440847917936718408928793411315995006321691278386544629414445655263129610556314997869641347144210765762422677785335131010827220043464970247845330320365714400158871334767943462094333655758081120691553104632994709077818931703971834697108988765766987720436332786243769975856420991583214355790106038471200181856083208973747615184587061864797660629932848596707491326957411725433125426098474944877570952940179359982714064812657052856184346629190116938707782222681705769984468631888915040790303934315927702045318219296442509901853009042967792110959523417463487927956934255453258253489996219272506969057215334221164453047356966076853597765179073972717791951847714174604736400546928294795661141577065181529600930115273740503921458206259613096255311852639155796923128450076693800464568183049880672380482509181729206921717254006729686144306893006845529863161943568878538648212079357083283789154529237900970556801921103504260694769105276578372386572318177838675046086553631571470422307813291532948153561304941517849844073558071754369651990438385008872769921441535983201678301905719955168178542840924557869864802266021843708532729063671554387310903059418269591115507170068731902511810180672056406235837897511029741432755669760553263258106122746561396223874920602950208378922275747064241162841475875147416191202880706121331006807928490130430641835343636252785777350416169146913676144062907695932212116747291980985912143207914552120607367909594340923676780864225589845371892029159423452077715574008052278274244743387359827257245643116214070430177399221560833819522400820213778483021231287954863272538903239136340695394165658282896331021549106965630399620008105042119303728033641757667445216862159027895524514098942658352215457339684873042759664858355013672046502746030792178411537994860160707397505174541448804846789740280215892339317537460096430155787938795314889334219581376715113481594130395397756682939163320014382033967339843310845798995413716406335988513951146920633150847342521184550694079836908750339186355228553028515837738946943522042534835986445523986366622071800540969181688364477190435431840539561738177130003480552026574909906836952588189352446341331996028004868665231390987902503204450410113374474604051714700846275408680845128682013879934031713658233952372630323273179366572981547933960984661139640314253252794590064956529649629061365004081443641312286024702791489812282584445695141481638678007710642334279740373959178372039808872075833241472666200018062496193723198524254721262052090605107154197648184636149436328120976512197914006498128446282046427148823939127838347214166274066005761393136641289641240589075350891764295560000700118522651923241464889996541732831027235337536651333713981886839375339272273987207338434722834887697592421306984284805942306597102720412029018398319807615550119580152027266136856121382984892092580958483845393262925974360416633591514570404095109061751608902983901598667282485264850027790245799149294577109180585217569255227519182630447594070310058795308399350347929308305621481472617035430563470353446538652563512498280826007420877250847172136024035110996634919982913960233249955959387489089802500972798023148783374078872849914301267595170948570346118357668200302237336174692852886290500713968425365525278732979736725960856528188609795872560725017547160116235172736511745007695543537138925406391561390291926218249091860392810840807067867534670264071056115305446892397128047246185398679047608081304525235724914041291898671296428958266749395292497683731475665593897627370746578920825243138954271625256994069014665984614935784015210264688300733908347400007926842239053507700466893439476896073510084462489206507418621856362450577644702068709114233040664387610237975233464747079636596379336613908324090453049236085686996847415406274024936431730655713215994184980199151932681672127687218405969258110069056868588610534369434325214608272231642376803997367709983977869865812527793947540822532523872347090760736675488351483233838455820462325761943245486152236945091461026190382977035783228826141760828994872464528784755229775708926454637861588846931632561529816074348545116654569404744296334741397970159803802091047272477423400132599065912818798957228572573252964431325987818564087189942895594957921128622143856216973711472522845216395565535507630486139283348448260840487607316141262748981083584546165890778206331074534833103304248219289723481412874646047879978191278082916339966645298604878873733264508486927486985205304913656820462998160883890856804028709709644091815179333126034130248729289932138549721299622441102672327836524419570566310625455332595466991283424698596321368537154942490668284080578863424895860895512792416576258493450395946802098645409407323377458996201828004966065598688146868466498722146958489352601621316897966590398025665919106658922816863785303080848927205688580033601176259930494617400826948828867089908878500636675034331652963060017363316662081442697689479385631258336468914255611619213942823939818643953459989996491128702368237229758613519213639218085558694139628120591212552647044918580476208114565466199518611647478433937762016535981166966202257003287044061793500432195483789594383455300490672242400851339714912248890765856649501549010071630958566115120323011357625364944766117108374601035546642873424164566891921078425089065806761113848079658236043448275528591631188435653710568860282704273812422072611799676519847420657431511614059546136321438404449424725351044184811093023430882695918133284986072826465930779293584408976953124568125704892659808644955877202054504506405247957275553794139907176020609891083430719666917045125081712097113086081792685987330580756906123356805135099949937496818510464513558121628877131754252968837921891679846387503010581337922169385996549848390195551466393074872587812437337707130817313460765624043299065983389276399567150320788558625831629035840251361125874656523675347591688804027012206636415081046347744734143449743693609539569219079971754699852874218934178842134765699936629259750897001301138574587510820830780083240121227279907853195117559338814856045927993330875965541810008098613117256440059924763750053838466358903195258883484881882628655276260910026326862211486027815044203796845714039149170830024808564106577753920137331325554145068330025567955394299851135546466484963055476699094209368187749192656985366185597397306209184142464774681398563570723086951802500903719326345421564337358271777882674089980084445873606062586632254880335259380934400090631265187917904000823398695193280465336962109212541985612691455187820513599923912052555107038877581482730453420605628509015939928714471553229688481133259456663433447592189594933551688524462268433068751708997584627342201839173991344154554975423279090229810218916480791422486422869737377330852264549136835930713930434471848310593617071661120027024116915817855088413643527923725506475694867841412781458619422800791764634824388185201598061801983733727308993200945833558332760921500965508304974754935648213857886048329906388944881056735950713148745706665545560655985402067943952872077056343369097599989587731202108908892575802518445039072693629803567677444560023980628095907051064584718441096175749139866095648870587772261636280134716046139382729885887750841864397644420415418286449143562327964011754921999990314756295317556161169740426533744589201766647148914134699393526803170341663964457002468086112167090402790237568562093017991680241371133360819961079815877976612665437059304978131219143124049046691435054293743924002323642254955829835810095761030072725614290550623579761420870005633211614994704486010928242082334646630142057568567126297894672472297152273630980932855701083968057605815680360679134638219652072829065550932818133916620561499112115928576539085255444819596309649085303257935428036682673873619796825526948289955585494475563848937219159709844093018546141919539442937834578623204183604366925631847929840445489004062598569523331432604239947559573117022454493657627579207625156595921121159640927596317077747020426508490397336541376370118119041181296879186712625110044133020653995782129639813103966434670643037477938285859084727039634691481684784470283056859144992556766416375455278751913054259608943502885644945422168086072864621582644860601622470034548601057403810045608707460431634351134318832656796896537087270332425180108467348591300126385248507492920622685403526035011352904974063937866981049745087185446653030833733277933897454906568647748579110754915143954792539854763505126002489171787381919193979040312402178287267285613404015336650981736300013947716870932156104016371918935306783843304724914640206707806244800238308400444161811637885030832076868466507580715669646095093966962802932418715817755197048627725050876802733782952596624183795302610726107837900042936214144577781903098508464037461335428005985015972081170438702142744386126984443461997251577853668585467868506039041513357713226278713745076539653854882843279874145760521294451497714061537657375790651219752626405700042712143274905312946481598033495677104156808196914778914187277858265103316996506079973291250969703874503642464903247263991142593066083482996434049705250016689518285713158420488802023061910117692546620207052376107406494252597227562306982754716286892128828564518039378215699208739849711879822995544092087419872044278799155518033040358390069411173584087849477872077868140519120925480125086262966767751217595093536853622402475535164078087116512792757002147577726825354473106854576842110037675406678107626097050459347275738626839529919811503502481434908526115227961363602390117909802642025228809983864130824209378096421453759023515158810716046600154202649522240189988894633893776424809772645562915371824612669897623726226013627450165458951928080906837199413110423494012896457055794751995942546201274037206945705090442907478109900977393698549621981927202997344631528377172503866891127765304401358954028241621278093989793725763562714496101401282338520644875401031337712612699169541697959636401449638727379278987745219072287183110895876131246777113474260211720163723678313109056340342640675986449879692030808549786169187445620771837648461513625727943745034864480960967707414872479923101194431353302599478269559097340769026452557068554316662458945219442354436475052099796186231273668432712435341371048448541659436369324920271151530763313125653580795398169558890662513447081238504066847141741963611145762330964105555098923417141256590552537492800995423919920899211097394782908503915180719225541248057332524114734174581871211304902844871527290015461405027705506711723455380996708160823223417970589089402677192218681947883354040337478281744852505633402807363567737703571287625483090640571475539736402279450714881304479930145123898136308150210832435318014793616727739194231936066723715918479684271550210234518503111111320539616322748342465246575370520674752458141830488949617443297418833698830027336665259241274067358087882241314486466921405427478774437596129583539621402325149872479142165047198239674234090009817955058270468832266008147547233078158434555222162068941030288242923474450095764228493530654477946219515751687593029755578470580849417654848025601179144350034498209975830764130744036100555740630722740933334767970832312734804629236310958258156560394139126895099062765975605902909856307236894043776653439283757238344207232377128915950801859211210882008400723309557958082162976391094856786381544936565052960335224543414079634021097874866436403628232074763025573161432154542344230784808878023780794306585598110166700331490434446469077735068897104852273445308898641568697569792090611992379394385676354692490792283955663925203415401565680251948432055275628682101965887929956632881032898338226311393153425228359299742411907661733854850648587333054343926638174304103130932826003546039275847978379753713004628656667164489314887810254606407483417748005467537737594357431894950428827299872691416935696586305647477271919717782598211121100549042910894604432584071720209686298274894239551273878681441120925082537137502294733507429879696458325863454800786290895993506869923463427245963485960232333497123014466395647000090392896083178174058373448441424383483094490072214730704400182235783953114406075602931201335878407247421733622153586026350594155254537317298339743313863329737021641796635288911367911787087459639673682461549041887297119018363817341788704122863830984211166707380647692872473063373045769085553291454226199129177499468352303420174957374173904347509497227079438154677144179316980285071104626733610016694962165189073130121503648559172135340905281017456379988136932818520596065318637775077378244186409312994956602327335138956813447113703569837772877360854853794386161131990256287818905086397752161261191240968966480808562323627180601067502819087378511818773752508740467406964686871922216219963425764142825289923168504424157027746633554628828621961816349572842961220095301906204830359255706388188815757873267353582224292308094730901706229190756808276496616545578165284704092253946750410309053558728111780449933077794165425739133936430294586144901775965426743706510534068974351659687625371773272725806595615570002756963294837403706649468536101197006150271588908580559237013322981924539429340605793705615516864712104949437432256265272927035230455857959297633326822276879744769466619164838795783699150101931786090751535134430959181383454793271549682382846693360854184757248112565234936412951802111695857530769409846117980063101711159825319867384309205459955316538510452327942948499441752866525615079733505829007567040558334823845629379441598926563867189671489339581599286752318458509433225920629117959512250038036414929626052425225544155530536731328027066154655962305692415484525926141471215717285323918254108371544733788525917442139630713726142196123110329567351698587832001506427858906648461971889104907136993023009514274957708656974163582014687125332194550614137769036648434846391642597468877255410026856115598617187817384725469911686942750373587908759269804899850722668166507551995524416361860860969305734326828530298311809978049713489082006110534079294709994384798884281829378826837549964618948301649739803988718687558148666188593981440318582587636579108307677083543569463409002575213667835433567832626831460262435792711160108550860604050071432585456937806951599445532138949249927789119271267546103077769725249002379046356012771035735948114285472436703657923745488335431612675273832882268593104072725992285545425551068701310907056114101030283248495957711453886216459646783490216748971597909417271079865699686596084482988934219780525307162965936144749289960576099315634388310000234501567516305093599485956977197551394220775358371582659879004015207770491760918586874788923261235546434210580707377761680200315393567532684107593270081265446651601799141187919809968372474046607244221283645838778173698924525535370832880080753564786996114779164885806298031373599290418922185561555401897217320803579499915002002284861848531479690753002235357629882889886952075122687868943602319205462566652534337432683193822787930949921404461483868518044024229498403525333128043758872599049715651157244259805165080454643873170243839809418413109454457602749591269420522761546084114562387888656391433731401027394760487083935165324305374493253454896721376323187642320703341317107623381587214881148950149435864670864563027072814007689080292409101855856425517779458488049022430790087812047938023838876351626327789582492491285291023187045076681770734559188523112523470670432693065149461193412673056455401413008198250550669125828993381141933551059835539064708487201284211590549256376133031004998786621064767395813018577070585674765425236874435163950085263547349175110747519551257215609170865457361295461631955401622854113095294711609058165190582687700160548412941224420780533840422831441875738104140247352701679795434313112090907298955427754368278617388705840841504485665211685130362070218964390694700954410743350825865311712036216984367156732444150226379828973280678001741050343814932792540542136859622836744883853599889696847018262176825870573994241020334397016570312226347421821239215230412273350306263448203449556528434060347687223209523401831885486014488006760417647225463155321403596196972606642468340266999617236193989586018084434071576534755710048910998084761845624412036534738707930793072559944313593106580521738824095682278395254512941922697829354708619712008859498435915234758163303175911713783601234717851873257161044444776194948549489743998179884782690732101922392355269371038965189523267946852428211241461689712333607346703136064812226692159385642108077150561657065863082233217904409330501402188066636755069604115247212242049582601881528613299474970195926058589881614880793933869893085394799001111302297661316589280840735576968870924495117609540807252570959068048589694193620105223461103332804708426037838472411224544408716203938819952429533842914561851761254767552177389682112485070316721745787325906866809690802126729291911515937644318630001300755646130142272094361247015825926358049020137269686776853353247404387822490990677524089827105892049820569159762871634802195933732054052689454684561867873131964180310206523522298512389304898411492750554838070198645629522515969378936508697031320367503659216032390541415220396078441362027943563246662996078199481859646117607143322640295453038267294905721832147240679989744769564941814687979357769915368055618843247983303133528031465707058399054756843263466351736091372311727416614397095464366666392278142162842277284750170985048130062404634216057700612699342327413710909422276017664452480987950815997213728256303027987284585839125546822413656699068145772729040929157731810059324440046307880351790843904096489899556967871016641692458304430894256155086197014476478709765877629772846688171618292738391033587790683472100780214360062582165334413315011312376810367553328963575891489996456670216914151311488258751027500639198855500686779360022765074480046805497891160339040562551084528074576869122005024314343305530739141189552236938829375393713099873390315511816158141748195205836919796720313756913567273972679079280971535327081793518985698728705612527917678243059234738730402009038556538217745467997091314063996154159619508663607080984718372784653129021902411878093312207306912297398416740154753483918474651588524018543414738760318153811010895238380367321515372393808082592013238721877376611746187406629801671647452397614592007420381761896159934830596879883154165911537611140106302905394637837104847745217183756136840429859751951933952483893088147079490750377448908553941097421324212743757018381794721337987305858088358238273173129176635906920738275200946065871646945135603320737548321207289673063864837514969276547793472856191917879564418572960430865951195265968084183072189902307091169988096477384073413831016259060268515407081961586595380122898140017893856682955517140481733275162989009344592887024586377224029259107687497534981977039562861821024851115471483990800676595128872325458557123601605212871085762273302742159764445856038405965563790969685873796138004140230951548743420510639593500761724179442542686213389147683114483643909619175984276636091570447197894394677417258144687245032302147863941064036602748472267105492614989368845972686979757810368957787255725896263455563395707125069187323721072744317510817940648446484689846518869567248648576182502229292505794137665738332049621064203456640166008191397240722344426219664116747929461321584437218489427668188593390340511628487155155312213214947379616000872767481518553546057623175416580188829721568881490549678807030564999613675627752900671425689744903538848997158169626934936272918703158401836253335305931025992066849412012580938178857524008568832774183833695534671551448380837913622424107625844272799366441767701810490200956928962310261180187966515939080716373479454712440136488336324468166814253510010941204344468624185856132177076307288566632991727082695347977983496415497591153553064813358610864735642193406816474708947710583226794262031227707978436875732417689582926676166098998968970575110634006247914677646463364163769290443019312412757737276717686528206259451499422716278605998556057333202762777922037453527045397174343450043632045520650899286517895603423341513678975740450710239506142992448277581802373583135816297352798972218088521541973523798194549038477672435675115393299831638816321276771460522039656447867614488420474334428919047574960667216139429831534918556162979368304646588728565531669397006796503793213618825915530172120210930852906785583179538445933279563469876801851828267317088249877464425242450007084889610489964751638216391900518322657866901582447066159049987486130990701705029809431767959020907042986821745391029534344280357119407889647626464289446959023799080768365607643847194862360345255680998931458184432472119561417226567117034586665076832390695752584645337892652729943607018703585004541144467567751976515274607565331931360804680408109222587414711909320332456227497010058318002642936540618154385349040145456753881268611394529810427730778046998625016921731713167304232944884767720597573630072533675250351122576790052454788548616508197255738609851399622580136924841691248502540490355830812811426828309023546356248135335981864842946944777669157982479147562533692340958523496053691384464264562080880397324242185241879849646974928247404465700441822544181594442655558796308730216784985078988764281037950035064657354692873532604947533529772473413487757634023024544817776611670146246830462486500709407702021561003380774692178634797203776307253355382880837776414590985170002124993475072500129566445406470569314221027515376961993348481471428498547028099332053925879595091092004228863256243320916436848074313566351020254999141471279280150518368233048060148427347366762346927017064774456362893579919639106438581612568166305022246128664273663315285725729475417715619416716400381088619244502573823099224982039210925139081661757508105692130064176517355072893715184166610518610667931508904689864235882316368906172651177697937127538881972058944266529796585970863042060036700581779222126713866690751193883703257708433593983953732498424064177796611595576592809002700946120064986578702962793232234444413298625188736530468172239705153957283845395601086476630477224600991918573512820503887182119313229890251837791132982304575862074776597305885260215037459604456704330574894346370988063135241566125214419037326935854476152939733011972617952959552159195604445816277992570412781528245406869558824446345284816737936012733434369466525371079731663222441099742772346085132620910354103063346976307971611211817671434265828691762026489829595974095267790230980112406115834056691876710043008797756348180575542624130842581298204253256112953096189837171824142802574972245065250244501261205934794627361811804221414663902413735323803587352770736740207485559291732364968635674546747432669277941551541042676135614579354615430205252787516882631472205355388298193462216672387304585870912413838457712950981773395960060747733829899645866367088749371180888560248551098750634341663944764921495433327456939519516227956772128688707025972096371846597096454399530473535548380998967874669754259328236260193777694470824277075331059265571138815900557864317561448188443924810171553485642808800570002283043533380482359224249548436493133139792466855787331342046568093866032594362341241063218549328485989860506697535634967481094430892310653743737591840183300795564697260006469780708032849469134706770795029497307243703302088138338569959172682918356497911077228729530798818557226417117391289284800312452743798606081952799419179127291971664551032612156709936295463607162512211000790431944514984487257425033132453693295869305720908995623545628048553587559857448313116399098272983251162691771785330139938443868519128246614437465482422050289499635526383354315268324138404494539510536570415473260154196715044304902236007337504062430087647408880023112691112569814283144041220763131397039727267311196435670936011196190512601959122214019753020951594086231408578052209909777996157721378857807820437864871177109069266527497628703649271296094570276606697038629651571330400868469504750805832314986822964389806574809882954831906946702546248078202735947992200447168490409379439036641390968033151046801433961063166635646852725060703563236230844435612162093484796046449743074112926314153187574994153622747466786241121830333779074327530316373051380888440685635977619035505121450792862729538216555359181602705612759432925430398434831485795089411632994229018821814479603222984636420843690068999793980896331455278706920349265693740765805838232702821424380558923047809231530841170072200600843651994349398298005296717397671428335220210410412358822559277132611821573041258362255790509990641311451781990532607087140790320146445600227699165838539475592192969713358100945413029466890429647181857743299202648428081643205238713886548916095356881150740523110345799567689327429202272735951760950029149476299534185621331318993396765965154593762539415144055611234002812263799609398222895675108525542059817918113177282920538721639660466772100311585558404664747158575526697979914427708523157253362127112497657369900592833208910620907402872058426221813004585129964884350111440020055779591529327235572194587374571404033414891346172795910252776891796110623235566019981296885568965516534661942088528866083550725789109712063173292155505171163924936317976808360427798538656028167557189232556488731903611271534328291707018869671351799708223950014296708251381741091794752553708908815545620922289615642487796963846084552866683979994459993293869218388738531777126831148632438689038780993097336428349548389883688630886503989417143039674560688971949759136285858926248649074642770922648948345340918115260788220883115492044261524591195552961217654800436336421470700705066453449740101286717724892885747152924047360732712795908337488489363196968650087240798230684896436675304961788707724754746367106797454757492337099428436731545031562257289516126611359133147971058186415281057296873968805100338989531507257502052932820565921131039305642996286878231614409223931354688841987253909160324085609804552767474973889501361915327650397458214674754159644214994612956195867144951032167839176327442242629597468161879883060836212906952484166566351063194965804232457204395517961209652434783186879044057721738511733895691087726660660336759560511249697499121936418451464920048116288025756514091907925155520447694162714601424307657631719051802679558749803747463997212610797565810181385161147283886372235637949257773068508940721115898972346705553565155041642621270567215548776824714677069659234003703286162549635660643405969399527248849370604281613031561980813942907485581704001582103257807656022213808828435796183984813091231767967260693196500563350758728629578111638777763787772553408889872194497736690757699248925889799595035329812284800923183697783124799103209607315863041851930658455621810819733158202376723375114789661379879005413044669120862996774051208076739329900685202009374384340111157357723751001769710837106377509453444296517776188934772137886511767906623526681114364975971179287193495127040680776465532836160906804741976292759223433488018798747660273249888235751576580270107025126435578421313458066502086122145406327933685533410369417164279291474187540165609442465005589586160734632944070639530287660129192496363350561435047110460941406404129394737816939740349955682800813291850753958904909620343391080959843411111439599017741308130990338025536911071870620694606514204274707696967398772099551637041907937736492115786605985815585747805427289452341927694488501974132146582896345117796988396217368905003693179467352347160541659701051894267434527548398905019850375561585641713781615607695922286082233499565313454172646375200332725645526346271353336474325284714986543740498279385338765047445752882963739329976164255432488556093424316446752615713632627981324073934132634147458808866145782269964070641686820306682787531278236447513642338173598868265296799159299608914889006251875454633499516638878399869385021030511928227503233434517967041208267550468837387084489987134303616752104957493386725428692231454906745417307659593832403089250032626160219973265102924948408278690613164579978211392166439993082312173053936689694178575294141678803679176982737702725879046295244055832233619550728190311593073705431508465647149494621824460888564035953834609893680987402853104363750108190496579901429059572654682546786398236250025895721175493428774074480394453416707667669715571180954234632412327628970648775343973776350927504811480063234385247811496481040751812738328708562579684738257613128007643892689505238721168940926290749806938737362130646515232243682473857181569649093317793117158246003969623615763538559171624046394706643876293632795413422375788027979132763974090992675791168634315674127020201758262701170532066122019752421893247873107993981447152614897349292215341178285500579860988174183898527122674936175510324052035874578574934390335080128508042245786481608743091715877281532731309302291837008910819828659635085644877101287374592058455839909361833509240070799795762025757016278204177535526135487653173918244582293576321140007117055158428673384499871815129750979931833160936924618160578390727505875672375622495697648248378155711941312457871464119825247990948662825631962552750930492374876203036715113804761150536598699144507238249184586076454627731508799340860627779618720531148289086366802747617060047126630220523097631513714208345052559248438818987160651676836041769944503637045043296516284431631467003079532225125212132060767872379542032507678625835785053706150683383105742526068658185650152155904464221955281311902273812352132559627946401532855707058157198307689751684560477628445648750385827269416931532991245526685676858799325795523014278371832959903625323810788560937432271908447475817568194128765694458167531582675579898674445508076815485947398459102240359423004572704840141915540645410115879276806792259466091750244074160403790481031589918583386392827266410110784389683857068431945921591174650761768142422642833749656466807753547572233675953527548204577365818117193110835996240567491452766847414547231689900212697926789493025067970187269188328252038940634722690802764383000903860295761107786523627892252936264225992101658208568387621945187515402096545061971936628383284289791442367582978241187226387181097087926061959087782374151502480863650416429378805880656091970370019987395100600425913776908717702769780451651396403852800767712625925838235936550645082169827330064545401091451139903148395672372533689027964124176934331913623891960294354252147686828022097664659899596381510769948074487602475231762643215520286426619243122367300970197458877369213722290536053647275535514231753704395833178794607255169449465681102029025967456325249602604404094969425260284784513912247720434029409763111388155329174614279089880597313674313613496309085890086558714131621808433150757009600282167106414109957866333026162963280841233117316008197616784936644181553493604070133205570085928752595717248913038149488050187522621723461953858742865894079135621931745732848799393379041305302432700596358111969521980110489574604467780891171129888360627252482188861329531281670114906534046215589944278266793909027921905656039121471120072603327018527629321805953810868576472109015473452706522211347134613550009702975210572759008939715915324748409413932943535109772505702426090405013010410395051481081252697193405463204151761841893721256985358275540376343030200227368826152923978429867785956164354998963200619940630381138013886229301642316653554230234933002792943595760376630113732081909077868027859045583434694038452956821113577739813206476994510042174964795122135605612964559624830644734171774719965728787811542520986594914434180599766270388805711208447583252420605580568228775522613596139234978055099376161622499898451942975628580053434984773351925096044720704753057872617729417697861409963803789766189688103896812334520507930541208116770237658481273055743423326200422749465688884868950313744306372090233226519640638569453836887135078564522489156988565745947679082186163274903073734792824179908711383783551209719830291153052828350063280283273903801591197434283390574931934036900209241336466928938325583847925818242218793636255211176345779829195006594524889907659876527972160322094167694985331471828050048516279024914736378100742913760849882598211933544982705734790882251760163137560739799057862930944255514420098207279519382082879396752826877497687043449355087910434933516606866396675741491566475369254536296830257223570949498164261196509372433957046882945853947277368469751764141557291239082577003448923424067039163018056846328476734713671632232837118059718321391690609488913251272953784294973226260603068883377764923561501995818000916752337559591698481713503636430934090599596411079109855294252207701623439089890027513922693863435727165343753313129754602400413514085499050320444080634876331190487667659779999068640349959069634737306127446384734633950326355189325550505540391897072540337097591045977770310813766102777480355477147646498853393383273330338908278503064528148382249216708476647976629218120039634101856516808221642361092846840350352192161014362572052368984898109663304107224898421030087253410130316025370552470966805155516892146407534748984353740757594140146920688033568108354936896253223490393112821759124649107377043844346690681934523726294148173611484465707277838023706334683689657581878771876421858592221369806512846630470573383728783958516493450204173826759034914882243254918073972119290995513898369374250520378940953942903419542813239723280335937804088774294162177431293738316024182808969556074119101356686419021103663623727154385012097464780611073612102146370273891030536001780018159273838349235152695182309704348611944489260103456416656490288168073989421970956954976909145582969322640002697722111162759734134591697348055608098406240770766691836526592313406436801947164471145698563886191160059929558710305225837211476915102154149884680436742017334087364155602883731423801850426406042058071463842861113883862135177107401056025683380230279256637238624921794534878550345985354416968385995203482321270666709882469883738182969350738311586827568579769926198689342010406645910283662684884175966310791255980396507939688293729344471632581817052892429343701989656454501448346655963994451513720015495371781814476264008440727536765661360678722659660638411907597695497020527896638962022716221670820966831301166235238998636620140604332918901795901278424335378352506168159747986786616097538014035077659129382544633203108413257407741632851492417804439246692144087303505796631444843176952774204369858999758216710184845677436573056071821700053709681502430139068753442697714475214949212770248312580426170192296831563660942800088470561985205927315731863152236721846915678552287340207397310252366792460665527598016390095865658844036988924038564773219752793948251821889815498114200380531591707925886480404861658724136355201316813784550271643982671245382163994328461647632348618200431086359718507625276567124463264792667751066647966369268810624954615842720141366434898084106327663045168016122338022253510863648522465707519575213677249996568592132056237842996326222300706863948130609417092009830804595656771391271499402362648690495436124192768170717309605729654735406885553544958763106117937096550451678898368435980032493120766194962332515481608461206871440246384387056712989460719499374231876176570888733129350557228420288293581128003148088849275798300047677702834418015999165255878987426939155495152682838197494812034832685495838346436624941907909230265143486497329097622114340644010628504335721601533107788735215603741289621346338759052405797649270259177595767881995407253418323485456765936784942621504895518084364720536049868793717620932567785837850759952714350498310061122066023150076606429930830880456901138767488603228526976543119889583877524675991900612057095583841803039994947814767418292634246554908267296670043067420568755853221344688584748416127170764693651428313545197078822455672820188789277592556384204661872698481722887382805200598003498031604426484501385546123035084315334846965067310584751780602843067927313969165847989380034564169510104064595079867627522918483084361100666241704089644989982705738265552709147057400134252313939616260929945704318534647409655900375428688077121201045492588273133878804384682922580251433700204494240856667510584861011179509367771797575774092427008180842097727007419673678906710206059212875383825785848840748331826801997279843655470778055435426947995689061778021454460917200179116714783928126711239939349561675226551475076060394625924777001837747760482889542454749592356948490866242567630626337090909719411292276284880864924965150127707428467270330195217661742354103800281662267146805764735800852337073062403884810779103510612404588756251322490133034818070730428627907243702336033576353279205446232141464923521607046947654848421805765882359102766383744382428252672019197445992410631981403646137396500572275533744901807161979113807760298376794674111127092360038388170444238513774449266937392468534060883722676137697163680167538618159042246727176021765052349973053484850238331952400676626882737961322153319568903774348039136592549085581627127227696320355041959496719281117943316875448165057785924522841621939056851778959519923798318566118010764481141170278513487680567105358582699888118004226514668460789839526119968197971906249634852474924746844991622449439517794866025540354205220675645724011719662963023206415075856915176760962091452772296332145000856215154732417499692630945186939841956633132373766400407478600981799686802704231594639723329036359554442211339700467262134383344357531379637520490047012232663648476344979575255227441028590726166257215500955656528407721141744344563574351786323810198600731404847658105639670886227463880624370477498805799114468784024720231572970620522429209422974654967199866089674774383032319114092443125447346336275832110605222716843130707761968026398970750980073974638460592529539308275480300879862037958288839736540718271020903903400183692610041186595106344457984637096639323315930015703717463894005425814203594191490413140709751699798055810943297653134797373755196897132273140161353908385227694541586403443865967317643569729874501281765605357145111393687451766251539563824189728360603855638189856654544018979398705584997875750263389742605937972491422874037453698211064441361520514061346465545242183512728875563647124008035376277440290461703050444879725428007907138143214913296375199213345131070363923239791203061663122620947346394022526142821744961296140571873645470610509449075752061610048890305084143358857708884036689774283952259946325667069444302740143889469810603800144755532313407540770970662914875003599481153449940177183561899822006430434183098914578474036812858069867880632010443587443489588872316989254627851211466419887916722081830018834539170123065403006712740395568011871638726497576865289502283529420497724593838431361818493841993986509760256526636589098676229772604968366915408010697015371767407450309126620110212987805871326407014800397926847617713027428979906413295489358132685932715853591315724686155370142035140388314446342810043835720028651283958812700163875056698962490037921772680186652446035383050728247918836978491908051749689509997815617317358684104430855534292279825941593730639710024801230437662462450566249740158373728200715004488513714956739306370057400693709800736017637368838178370482454994829160837008805679301710187958080388266049202966755201880872083174741681534909025167025039698432640840486062985598489309730640807887116646619389002580348482409377661625103741660615974444728682097225471577520769119499709198875920350180465954141999461876694344470405956577726987430958051589431402871850485071421146343664365134365898835716606001692148603542996138420200815404873816563999023340832091867846635544776104291516664971878315834904921762537477086301764377877112813657423037854927924210529277879424554783822237376953095927257844169847671016842024364384356857098294950490320449900809669216061080034756124578297151665094542681835590081157488405658385216614824476876733938806251652180187914388123249042752839254662734918279170737424482788546093080856179146443634148794254654800077163757680591811960429380582550015358988988079373247081102211973678830696867822190148811241439803879412003137335491160757645399768207595093665552983121525782037830211980898896682059484676474834909343526683992835895997140957082409099549171040237647141027480077599197192074615195457133771513839498435034459255831300259633871282990411773280020037320807288018437096871882838748950639207892154486721787598934003823047433312801119116730112456605825125471948580324636917307138389895187172145201371805052080333090036444175291528774558402150608301819824274307516374136732546972173718614685765057542475533268139366843236690132909933128468369712715773305332826518187743205968675038014363080877607783211143290626042193912329898499483022207724481729792250551698812286294428325343875755061007136020812587117919287187451657154440335450753655951392419706046939680742549996611025126841891736019653615634563428318444154784894220581860902394766507512624915637782787495840540587451894343485332432863549800300170471058552404122621030303924251971213562469012298884217861151067960242778399446027509445691483187860022722047813936797251081343431961193981061998557804151772331536183538014072553185606413310300541772786471104109252966455469564374677616841672235799318707893932311375248081615307683363307484784067438938011616135284700434916285174872459238784702755213760980480093057153160822104483881821949630918178159666105188920721040921356768001720400710908297687955158784232256493021236022382755275628115623343105954070385768961237730209632441139174379001930859292407552558204019972005631853436120098918172220500224335376527219045459960917942629239030484498408655036409650697180738647095018649188142151327221241054264168322040483930394445850148191258713727843157277385368269320124209079662093838154262015129062020416128530068967832318167838455716381026326697927319808991507358552105605029364974487428884277262561715575448163441053048664143608038589381847099685880344454344812767364692104442536479107036444041876763530599928131481230598616694325679086299600843603168399502657259558409800263357984941147111669197022344039776329619014107444842907108597743407820574871266621872040074793094969676141054915916162672601826952232762562051166609772144454006708462869606722229681616877574376249653856591667277903144196814625332135046156395566292292370471475225850582057209527882314337324144485029560960360632831870672002387192351789090102527316766974151464100665213285482849582291559883964302025579070435723369750939998618660242671399579059113086862446434653956890756075399285297639739289747184886880693517176412147225967591832310252830899943432297080105118542884054241721829107268429974862681864921758699340104434590611397210574085807218458407514527199466427324492604916897780250847399760183997493049632507114911584577649006317547195891324613398287393007637509225241240059467711880704510102325800255088496501727250542869030221651970768897413873425860702714964132140482018104427666093708577158570172344750481078445310311075969802867398319383177474545618110402666921844097193452193691059803926302056628035940282138779220874224505775621165854481845519760306379934976178627722306529860047023055347434022886030178535100888755150675097703178816388386322334843520539614686368504658238906161429884220806087258492373812356835177303099906632622583341030583274036173297050973252246927493684604110882886191615088722044672916592148080752234581815241218761527512763737708910173649643323563495583446021689389582581353771150321220479727372889153061953339756040454152594728711223817034039350774005792320127207374951980756688179837242338127480641435773777851409172711031984289047883107068748266361778101332299401479420757096781728762673812917649493674962516906271026153441357815679689388668904937053461728852639900659561131875417383077511752075805505096955073698722063958594098563163119315305006229705691555236788040025387881311338998056495718873746875920419506671713931508902122539079151158481958407302062621562618410879373772868344341671896883102697986416733309996096100103623057694115915717112177100643212491982325705444730839193004499242930686322645852370517410033031726901213055255748992034887682702558750982449396132855173455606461202809033470185134393227681435671238465283930848331585133077995493821980474120889122700484101064571176292715429974606300816146349810089243808544391214557307288929084548781816839413053435505962174645250798328733612155137341776936036599270608057060182236521402940477811524079347228950272172078638979491493047114087513065852760275765693557306529806763083574993668870358131010641611435106400774734594019354896381707749130905665142063616995648936542863237056904989835394590378658123743653737128654398847289010978305354027678523284416836433326538351232428803143122524347972146163635930512189529903656679613292047071216080582484098716802177074121054087551074210046743962249615708685528378397586174819875243483847694196493889233990698656443568020814902585504703473525838827248285048384785050366049020532649832694027951291833086141772938467851783722955594902905441187374868632971777756866138284433172905793887933059873193815641315343316900650491699327763333399749239617187212796057257620632625991339009495592021519129790935164744849257295024736759855228753298078936462668745511454789021558923670781295780602002342301716291704833710965797877144071683159633516718770213179396389832809347755079270915273796764796319680020808257398881847692662221312185716988747800571355743546287951356320547975761522581916938502860289595531885771243448525155056230763527093481641735962056481702996203912977001357589644550266682003677814899698955125750403322069109077723713743900965734904404882448076562334220407944793420521220004732277232882523511008449496577809896219928126261246852227122149451168442815005922736667541401424231498236133165848454658636522642813536375840870284880279432341543313388311060582418527567486491510527829876867757324771718901474478655080589294268747847331437209891119971428741831349333528159677153159461413896337391879844524092536001632680003951755904269394353423881236601226645758651708545189295084749151120640587181399395992879435499544221476085179249288654608455183683131778671069896329670592823630477159767331292140920771341606720980133939435996440669534884921831527785875680245072146938933136988531637777390975589013591305295877603252084597170151572465675144850824532649292483579894271870328349697660638570675887727892045934477737913255561346682207574075956625371286514653705955011231574425026166067628158629969669257188259224240268989722778340843209889383967979921677164624253237530626983321182667816134009490017022085072332250182167741919111363530165776020486638100347832331609094757810518062166717090454347654461785944986935691884899022562758601236356242680569732291553068679194907015093323433433782745178711091574607047715821795331531765919058377647050057918870241831388203002837872167133731174711607019386261984245287241394230483100343182328933446729418689390729428521974408846195236858690171620741698169695512874412287261408185729511053678439915402385197179568789132663723886509613304067522005369013524157299975400447548258267121003299694302496540698816883224263040542425602096634324532080089360727036304962071104640902804884556032156932285287646524189636969643764324496845581715235145193146657386939241804023377960414874889173031265647129509088075781504420309853636140936843201928328337694921365682466238769860757337752574542249568557217102893675827234951927706256014982462224854143765285615855856027001723154523674749139577260220890632438849060164970445924711718846591456999045730069562914544590268628475393088900770875906533690495871416797273775994807043385356495463278126266847470233344757205246404254418034855923411480495123367273575522101207760683363393845374198792248626772013089145606705846707774629610819059836749235535924791543421492321633334016363968648997831794797539452746914828325632880672613672185936839682423832109002189703863001912034604332169261142926901472200563000685061275903328633042337470168386468824244374244895938559860379280297236221541249590647589417380251963861613680527885248549111099213530032804614845789358955528744609380773867870839563287255325379776000385922210714773068055393303444026391813674579774791908849557682634317973298543373106783268848903048639210196508744115467717952250560032059283063131747454052940608244366211374385256002112666645658973941068173762745288237503904439765271908748428783651633989413282814504789714182928775200818683874589592379462474358280659448219917729947820340803200279005242789605433529810375456071166514333157862164085540350868076131453458159780058818777606054488287038613150004009074738333723857561763351978465230664383289475861168753417459033248759285623531658226175046734599283630966127521661440780492011877629925996652765958820018428627444966167784417415961397861737641171857783068220157108711373374794495900075415975254402917089679385359062160812134505416534663510257573388374596400612741698953920405519664181019515742447412292972611309226431382819871874187602504409604855911409904387151802397238373011069110477376692613074501787636236290721455223563023693093711368272596863422776240688808956583017196842141600546515132193354191203233564323513334934634650433619263551699444422296351542621029513917657168378833383366679411537126353216961884671016550512267400379706622233631178150077803962833461745272905217749644786631405844096612675684726973758663944286713998645707457437587424058307616888558434929679726861109143954609549710475745483298860231109281552723021289634685793825561769559131160750100963748040542799623299182609770963776315238342707844447703577810698871528136553039586146465593112109220071467910659495880897292549972699250956816573461880618421213191969017490617746472857286200749131794132447585375716005715551484088364191385556705907643912913004906062858227645363710863421692904340356010824219457691328829491614233938934190653982895972381508446599349216341885552815232792588995490608634589349244205965608387084044190609363140135675912119969352194541550626377453893969963308634429633089334017417675486242566256846281672319042506416279706697482721420899712308798592394757856064500180674939816663851853444399158532030400208482877667581047990268483841944476289193853609546172042241993388977305734251901296425431054894441834035998229591931852733480353678102585545011522425370417898944404943791181638336242143616336657079766216068292706353845779400733619817446536826583514005997275729927742233949570539291264760033701215955513005677396215263110805866333742066376721916511170371626369157588445125301235343319636611201617326954906591275265908490931471709714650194472895255918438939421501103038687610582407568700195881349443374495292627640706350657086357376368428252436580662299714535742073784808348691319907443646296495105999488867923217055491319320977189305043708762883626915589561611889182540803933868656019287109196769497946434006282962023038063309262147730276461224678477041782031519308905330706854540649090388323195352116538446598189414869255537392238231482612918045440125641671995232934537837548507050005512051363562231427015447374719398273591341013401104207270315943060081319579615689095185832355012562819341408007713462191412934294062654290698507739639843154104656240350627202801310823240580987392726020173256861691354557354458699190323384648736998869538350544259132611391533408039150031131258615489144398544167112496021784699455851331499513922635605801139725051400390701377764569545615258528018654087074005945690849954694220388372512116146562942274551767213236038028845055738808978756163245426661215034579517230266173289169610927540227997812213670146580741704998884471090741469653524069564885973667468788063317574097571978036304016364773391328817721074094542860221804450676974651878908891146919851052408421154389284762977168347182302812672364441660017442994276804250084796195742157643338525635883785932716283280811759302898801383213132450992910606007412490947795567838425234373649078353422089652618124449321668864118067685432798842695394472780495055634106142836397396860706676145953191429237646854435109892490049274826714403333810589236645593125701953809589680609230498087054214033283729009497445935477890430155385011217097183871836594183857878776159715452438754144349337548770614146656648176391247313445088061667280928959991064628215543459224838823101173258014837620765547296499077699724814146889766618300755902628525098305715802140072328084114760359741657659924155276527224247366999112784094162753777123693542291662938608153730094443029888745715934872381025288048496099665794938699146863870744995753000606621809789896247914103895473078761134122544128742508267970201797821829342394389894670477988056399968484478133339550584829010472959284693240336568370151391412125925882373352281264325579236523562019858643864993443894855530293918717259785703001933312626984766307777904868548276193156334699274837069734388841201285365788711195058767721742333791249773735886108879167702466618089344011863657760021148563839039539207234349790118689050139709138650092333338107363047115358248034213132097765211103582502350311715607326909727124295932237590960372348283977241787152666951485284437889003168114434271901077615643762396032796448505666157120725498805607808172309539626932071584636861497216306536632878118257779355143163506779119337043763397999425949039872479740889435599712428786242009492883875320383986796086415663113162961693445053365440182395559038439475738532132997210063191943205274383356857184501802850984973803335043313196400301845894819179662894274989203441428122107905453839038752248909693984909550993359492902369574329008271323529394894215582126615315914628601062108028894140560801927821132884546082444170382230238792971768838469690672255556818206452361811090579413673329702669367091503452710478295726300728241807368794790858461931208293793017937215661932648685292914217796661729706636216154439854423436907090752566874222164884534878142654279623104417612275080770834324892774664592198772690111898470510080139682277732828179870300778775514246361463585211266224803764643753904938308791573205197296008706168652777336018302846200150155223722818412045053479234048535364232405751335535412390473152057400911694743221628346012573284620376386761236141818600477528498710148527080613939708882184035695399058186707317093134485965280269871574487078360553377508957729506793658289206810936686173872406142483898933135841526269210077904053290087267015573993642977381100573979406296083435417942332706259014230660735218797018626359962523594322134413627019050614206064291494152183965038102411699392908363338285403365176653883513291116515337187695979074780480924485861300163607566264963391628560070407866010303681407028408157929034475292767803064221422584881122528168135743568337400353145266271336007887334617235797681166662626658780791885573316270014004057452188605965789777222176494185331118094461349276957876296417725402909414523101881663167469793881848693946636477626757457477585467656020555413726070530299775911772760125875633257149363001097894682359041014613693838642855794274193103105997162410486956216807632747543167582337279053734299713961073283266792369771763270520016789562463503471548424086036865084216596820283802478166741239576616431117250812693999880555791965772219873510244955688813983535510822391064745704261992129177326195000155369125594309489596903523669247311415492739437689004090429126212495565022988134930312452909703372807508306280873015213362768335457470966007470239795028400675537126765877177541530738761206257299892280065130264617238683806926403142979341765061172144196749847797108815461411430801637004902157156875694811148155711693042614890392244913963853790699749877576719109589496881012219483262476837881233806203376005243263371558674282611587393618783390587280272748511927081783923006809298142000450491473367228278072920834540709730667033921372291361654568049989082798060759040173616193529868108861250468276692929019715169842045214610184176824436405370662450362274337235796046644829270564032879195129371234107223251889129507950612214123646204447927977732223795958564988315352362186717397797535285999482241931702124774482169987518006067281078291768004584085662826297496892063460362646632006224077631951477715247934420526261480538172958906321690678820606297181424837743601489244224621766985826561798424083575401073658045911793638298351221688001510574165275141939324953321854406718562505466736912692103070603289846567065350450523740421089020718978291011486715262303746448332757821563347059443748623403413583396983413738348677116109168251329347085394881334081503084259810808366687836450376282944425876725648753371995647916140313253663533001952229994317981774617066572345391110819470745334894465428044869094334964172849775202906740207561804449833677412478143995361726965594598235081206304096179066242413635715714251615553023484301771931787403579910757220118372448740543984895150696580459718233816069119997310131629445467026246362432964060848612044080136465229014914168813813730859930478340050811844840764035563185807638542232446003371108448063838867530814112860189013760566173732998685345011705602437551608861244380374208622978103316988353183875099617849420611121755123917096770440954099397998400382337503371824436530797458966616341023912211012971395095232867829196593796641300314633798767730343031240980960990356078969323844457586433934970566445298826573478539558959263147436848033083802412851291645961283847894930735028396426898956203583754706371714476191225815990715237262369372623277609911194768383009797374028034061522416839620981326669678575904166460749921478941953210044057744364847497494994793258864909995959237154462037751716545948161015678113052781636747166146358420239949846172089592821924803195630706915964479582608480205987187785961819036879798833122692043579290226681968755684911604802440517554993791472549363122962935344300216966779354722143033552841856882162345965065791714979219336127563201086657617495343212734323053700819085307836676620995480283451680970042787567301450340517736362713244166733157456655584308573299305212215185304590992247308742069498631400775064774811220909747853180386076828979277171977032808044117815219197424237044732361018663460508785116301225728932099581547945258205652747725820587639671717906399850576199176895210094044082270061922014778912329840950956417744681221022016721213674825302950455487900429478214949533454472251936904505357755748876540083219252863902138898121848402517206389228086979525406050846741131855880683779288374918154835895020944357321485288707652742363501297256491977632209693673512671165140464518644790058875788789066663510338506759172276074286353797380691581302925229459349753082908545733804243735904280428543113205767515278264220760201109816856457976728433552968970920796404477210522130112143299134678848708677311010487961629860574508855747455270630280438721403096887711627255721396475898423405309321887601231174105041141256211425083030153323176703698019385854113352971141892004149695740219640386786223747429827900275067899329919084480892346282332124515383871140913128814383356004879770219426064412193346711189397059592284310911877556455853933509949036466056475487422900310235578952746752597563111712664149890262434922251240127940173945744955343328559541321529676499663932725536348333431865035552947591758328742917069264681748411793318418089496505838827257384584819097341546984748889349071158606283317633200436309394056205123806668851679422668121655792270127502986222817975542959016123033073907213938528722868946238774465974939544602820160551653681465791597501277767253363658039084127607453719005976962402729396032487650537263590264633814629786557147441617920860919420972168369444973083726346921526848471125990212023588519330959009588912610077250761142608078868719899020709654679663914541933997200444950910732109841737500986187258571092801412486627090855317725158766997914711215049860736951281604356718374665973580395870407224319169935644855654486871170288785567271214999390021043351804057692043565712774261080416182981156516187485862591005165290437013574093072791875443965411658385989057487369343474246106701826499876161915808584270547937175638637925316599053889822286343555307610729084817386512394159179165003069251970085990904293940542215056746499205306965055694909007883141374958476761333272948032077567143370998903824788727476180179091259642605555304038175382737853054284516249981776214982589332816685250121333437685598311852214667213238548547821362804570761148632876362928520587659509286970187636573330731554532323983046912694387476102070079358771162307258483011675859212915365110988944301371594750331683886759178611189232216773084370475121033268254955336541235193115575214079174520789510941157141216379417539088680880000398256121354459553684737653203744174645567977000728747150519812284225577220921235346475277527225002163386786337806178158772557492018225573389740439351579792415593497460543082677113336053657632492762911277006240569702604715769223490568914883433310353743503550583399468988511141804669018793837789901716019052120473197385606765380681901765379651763943100799919869120703365408471835047381702850682861262290996473267915626461604751272093601775097325186717414427013769689631184622335523342658581531452035843407692788380798018131014548917530997832930228968343149065362432707144456148405440592921359361126638188193113696627738661270624655286990454114526499830961294360332865434419360766582551193955568811105006872866291566156928353683659826213834325271437406459990035798395731827203901191778414365759726238518448511789169521218623609547361390947312130773210902256927438618496183474146080717286415019297034936753681789407347979972047672708867355515188116940887840030609683034865185171001314660072723709007713835765353667084654552090327719831855604559567526192597733667954252264123602593939715554371467618821169379683380819176481903868286568405161511457914755493416537205622857640921792658929857621519593278697237198345284025764045140183732267415013115809682571620158736756930898541583947253599290298487433498976567769478555398457215254181566819373359548706216273031342614526872787109524463613770881933900413756179830798321988049232326714154637620983960277446333361180605299663189095127118616798881824879323265927825382976748215395953301376427649681816004416440030469021475076324651340968074979791637696191189216337759109649277198379415525547638102394215312878917666979068464315390984589543757924704543553398618581968275637194478775405642222205481880739545806113905944459026797768548933849148957690150056681518555300367770247766454516329147361173716943509695609355930470576160851074708575780466825952539363997894395723174393538590368288361437931562032469364840847619933161884021461389365071412928437605416429481341986483082738415166142973569282180246505426375194409150778185416472927015635048820970684385661587395076570020105449510889706725726752034634868171318556343073641339882001568686063364809281586539595543860096159825088332406231661709758155502509319654214119773608704475359143743904170516030313240308325317443052781420813834459203898857865907287992094175862526837249778795792441025849717254494789335995376754393940660738524026057126756127394944309321496823982335037089901022058902696418739179372603205342749633182020083789519798022777214330483119722994175761365382810951450639208655864846187800426538150448268160258343959718971445916752749408620911805896376654301177767446702809783988521483130940911957218528673090036186351592577729106363536670776339219416587703312637703576666292338637858808103736236153919101561824660554775171491045948982508607069556573413609349521374938167905422685798223352176986593140994231063151516423547199924823020995344677718098665666540573110656927593904077589240523056959345476718422077001939123090282702761724496857103589148022166656373779434172146692699850734837848427967166396548807805771998930744035377372128140834461132988165969980700333081889998959708497268695982494693288644013197451213089097253142799775208733334502426114952664305016911503367968281152612001446735464685896451188450538495305035216347209723513724145421920352658853552131391012876602316079446909002719933346492800485581557480821944401099099341378004112337438178426256104537878007978390694784150048344276666950378995109717351570320783839979474845778217039711278936726521099158050808294150396356058625535506322072072269020478631530971017962136751885731618535148089191344603360614220651801885920317452908774430479899256204025778136146993142730992923964639883362078308244516945666412162415973222928378292780268189672324773702880095589989970607498182603110772836487754501011973360813841646153272721224384356940932287189620692578618614978513640640990180656988665896355770940962885311909506090551831228161358805376917121680722558179230903131118613584846849400560365691540911109629997803940024548897722153352775663501354675211521131254872196796642295571231940312449286829954315878980546360913269097909929281033125891732211664391013405280952194506348017558270574105673030206114606823918470375900064313168732419552269571355350525154909276669834664174630168318513262783367160421225715722023481168433395105541199608807459805053384936077104656696241647363091724458941084346994005336023587034616338997363459705052588908426938703273392500461167262230914017581824989381140782357992221891688407682601613466541156183890360194169390963638954221168190725917239287607496682387374759103268353965895459505131437713778916754909802350853795554088526207459347314715336725609177839728296037151289549069144442298614399093160468988468035441861121236233452400990662082779779029320139029898551730089504324948051383201449996156203974190926406159234176242664045337587496953888134376280168799665261440577418679999958707268615686410884632600252972106259844598572344614476166664823555626700258163116655004307975895703276314516130084024206175067299969901929465333976337049119474337703832525411004366555382440850951710818036780847286919797782307847838910024310053743972797915504111586458774186158219615611781761384134698366162812813986166419343827587200267849667916797119393732438119792244887014668167126704974739063949453479670596561678333042642624977272112505641977402534663992897589105512367854345568134796663331053178097688495410606169687606733349252418355037136271455495107288204320501856043093250675559698251946716398564655540384929539312953827227913444922878611048339219600667328421813376385927590405917826428602791612639841362812509285166959880519504396170721432328723209506315331036532192017651138644322277162736175644174998899534437763204816874206497332021925372960953442117723140970835178226348463925938954846722392453163323844861279215304913432602345413672505621451033914576150759073934201851497647505591879354668669497708472935511114265435747278138445562736862139274561277039575446590869397796294423393226971329800249248241600295289807283941894438816093343950035219088989419007512170348388589308192727189904185603994975783496204038937572466724613914592589287674317741765637724042666200815520042153858551984669352438392810957215473311474350029289432106202666871183679017835528071266625964906240660985393395655341766685949697221798934154914440592767233881326635991393886422595468405073480146012496470902344749269840072810152179432865094386781010009036024449267833246024836069055297073141390336462132634178493799391261347947321097320277679074074667595590818517280600826271735237366803293617126151860657669386230500299514530692855735942319219246953961044205021635406632664209341699368822835019880194675050307242925479498964832936365275833233102106895003740581939338781851959922495008052774481033712345357594624856008977668048963074961112872668853299155308691027298251515788804236777190067263841163261870313010534654991101050522169182988381722256559653330935763816037685305487046997237012652402533924568137116162676700232899968828431637899236550059374164239906807568283427165660602144108293206196217947826459657393235123922563604165067431726339435914888974522931059794933216411010536266503381007847289995857128436092582069881246356827241689752314867457546686572386483218129744579209482312426264157862692595492189667616765676807946200958864995616481254318330566305264153094523809532814212371319969213661829417460707340196236124360033352686325583317311292853441284014683445222885582001741010141723475193688597504784789872142713237612230212850432734174946987814796240628030215362961193330009270150097541139158229815829913772656549475977890631858893783515728356465996201172921657967465881621241514984245628966603161266948081124772465433571407467192992366051695290535780670244809592843095202284502575620726926285617791685222448223188093212572773520527049079905005881052586994364300231643900315881795467867547521264429706914471944754086411454370981001399833731976485028823174802454709102780428054321507773205387605715059781864424096047859871326763243846077566932193466245574413704149455882784640278307985930611635644475509454328667398612640695850128430576437852208307445883693367286840120172642663407908994371182310934833888841383213833860243022728405331564508114796907645115314673561769639169433138595422641160157358551814443345092870829062419100368475566183758189038693633413817021530517675379777447233064729873123939781880404167775216188962981303349634499201472870996591182921517151605617864322210397286818306201429239225329113406217838586538303728388503566283738319535842738876127127712683089368794347014289222352725354986959018291890573052628306073226009748329720279933107627987782343277159678415608351730613786737135049095692538692358430343299872922948111803462792252301222814573607925609876112830406856250378460201723937287473593293115813584492289714341877486432531910672253422901351364315548438661402569570275648863736307667302427409060460526443598704810264952200164131596988645639900740049775333961393939610964792567435338963754269379364917511834747325774559109972800879629921047161653712282283497928204790606258504199837909608307148569882530783921169367619528967209690554811715394781128182014586731357929869633923178833597726444717527410185956413596702261761158861264757969771838005418559621202937527679988113773943996161269224258374875052039488982491036000840750168635337215982809069368840287333587460646218558502155679861882588929067719410524528657372159216272494120938329891328559106766428109478619315979224647802635670265926376063543066267260636646555955856942378324930471667017105785009650196517854791177625926729835767436020744737318642324845186527430269009249417270866046970111495952423928431211619374120811901967817573135195899827231644007558680015281106265243605940773356676370831206910734393563739778269320716625135765561134114810170915662397367787541017028329981002776148019756727086357976334453930135764090260792336249529822485803862799689303663473756989578787946700241896341750931462669199593804002991777810675408858281787972495849600972423210875672702217807977945175097080931590356888555745905931246743040741394906549867173746997773036324027545640058133328689228842520289189607423056820337032459877086411492251156637655610401303947062306782376310732191007710898194451685360488131861801745430612844986203270920839307563843156116749912125975720079177606195615024295252224480793185826254410939779811657121330519706036830160059790861439393052311720685489325597138159463113746704955629848078063722199832050151291544218069173169854988036384633513188618293345118967887537968516184079004200987139750337125268551754552640649148199067563010409585293444318021009425218640047206498836099867956905497494391735082534899689052162716291635620293157552548313930171205217791810149938964085602056593168238611782251370413067680872649868896362499845329519644049769905425531905629254851092929991173139546622853108372820445019303309555986387575467821129925102521856472492033937257806514167913469637155532372994137447961593361926236488959603518756761562819775751201800398022304009505272615313941213338312168919828205856852143037615642411660799986642161297033458077358005199835175869203703430718630663514792100114494905501627052175960544832803753185995797778687108626109625815303696130890801994045129959547057900936426285076397129209684449611588841845806205810038211517212854875074339858106436805520337636109006161053074333062686237865095829149222999391931652030400390345168229215662731580302271142936132005956534132361229347201942447538752073188716635969758485436565002483206532696276322481484894417644464364709126696394472242617210229984481769014012332204857481022692996385855806610966338596163614307128517733469095448799839552650204403696854179963383176293616367749076875089307889039658069115781174717968642202166480278747687806310349939028093334533569785609333924643057545211911792233473040451204984989691902705723814670547026118425779324417793059642565211347916828183652063599640330315030469704437763272104016156569983219424154965340107948755273762683642971827122411977729692503653532610056765323874141079855913232156428369577053856880449179505472884180506177924895040832153489013793554334344512235936114697112031271282296111317078127500370000157663127641341008874513398147272617630504436448249962225880413842389243182630926004491147417153587655215776535562005699430789611576530682899794294070748033056481297627333232409486784687546315210983258492321881000492860702566468770191034417344869879158442687204392414832811447061228914329488687935224924959244788127107371319483437745527118192787062094533993842745036729940193430722998431229501594598004129559992916662463481787469063533780195590817547428324392467523983385284158536614211675629860007399634963092965218761393216788584088229687660755318862840594480293481046466945506665910584264451888380556168052377884536856358581417738062286108197753931620926299624439755401972640952133159769079040792504816186465149756161608025946886099804624703769507323715391020652775092859753437073015596717079271164328390299085150551584652012879290350851647476212799155412345975643689984583695887654688789875503164116983337299336065423508349577808741417344251543024828973920560268748053321541274918912365702274741361990985385951485387625357202825002300452657927749281076544505506706406039378092813836559917437708293102352722292820928550256208542667975534603004624818235527843924659195098750286791868219528452443596592247872835830063152128695096086856996677552741508856757015889981701178833819051249513009439452572039875423407525779842929376849185609852549920710002597538500511775202315074604540692164281100050566779306829042227227088611184449027565018249177452746329614157258750761161538418821722243017833626371588832422818815107373413219554418693349991223464977362972288804869930094279420729257690975097293761981041691150397764255257867386236061348739242680488219064754888481338441941588487551792611186310339201423424925978342671560862121082040356244661204609663820808794285533066256155500960817028742173886783288641565409457246960721648898411366284855397185476276466906966729646413118200143484555246306178945024822497184067787548759685115628475386241939416612781091606099011451376784625549158635704781753331208099941324451563705850836993240610488932863340154175676211151020455435957130166503895723668335129365266055869809930768917103246116603535133142405655352191665660014285681974222427156497578983304720091790184869908934115579993238989170413110845511441719298948011609170463481936384440784190604701600697374420501002936409851636667450422283027483553983772375957286100075281576951124251371840033613716207654115964725340452939924544248931405559025237421231405012262605449870297263623074942676654872556718019556495500998503759058988795910386883417399648438000962713098822765116218487698344084445268281815581508340441148541030061408781037099443022274013527521116164766991130571885791521279149217065811907234951180819724923714469746991116268850178195423063220179478349030211486549668292824256994095083639287488109758145274392635918044951621363808955001272120672370090502043455771534935508909377269429616058593941792162890398340201287529283989957351463973601342762791376607943394948706633303078414729228648306984593911005434797188842434394538881599547309671369763010086398295056024701119845547244862820285429564842594707493365323865482177249132870622594732473629936576660686814158335299797646052106446075191994035367614100504612924142353606815152933967898273617634794327080188185051476716554091603608665614750290304278309434812685257007966516228008560024629265702462227552336456216766914438462143260586363515014637454578449487699035079105804835930660905618737227781879737296085663962012801241865294604050236934725929784740595698060965318039536405264741619328505502888318311249624627155553814016244161910650488138156984937584343313398104616887107869835589792793171639724463677006705933226303905435027761708822772302875425874072055241885445325126345833934506658645839313617038065600362115277215339772827256555763337013172710514976625533750731983747105688868204859357918063172486677929506732028203315641582159617000915193555025116441961694305959229795444354834278432250416142020364901914684323074407263963707118929790204072404251534478212780399652084265491001606766659317351880679488583309481656471419983418339523080756551288762021183194038719861060589547991668233293771610457737504809829816167188766189149942473372441859184173629225420438096328322534336096063850477586857325496608959168442855163533293253185550642957190253328981247806700938468770549815770122350906408168220478826667708075750951511136632652912317995224861706863111811858970192623655706814262482018042010252673847353728162129429246411038377551617436595756155359696933389755284741433944878532067702361754143825507255204158805062274548972729594910765634447195852131331010825814094742917872188680469816170510547443321093979638922196904723765114625845015533005026052623100388115694868245336015086059966261970030629389178724367311588807475161883601889206111866397367574797051779474980498790961850295680975117176251440687818258591874490354391554593180316924543641407125672486870136565829187720243813516054147657686972215138578657470943089104058359603607361559010012059975754706773680401508438384873427223273993940070146398417454862056810957157691149991185474868709084794410069646998396232629025162747943602849867497299350280100702727340405664349568933622985923314331671866973003206815560203816577238846782774558368697237069961424720888214114933253598361564505929087917819338998545235191475522021912285301044618597271893087228194194244171204302851609408396236639417019041575994150688138717383110180227979383716139067660003756523489073057741677991838521168174000088184959622586480490415461489337589368570824624158587892026206603357682981871481489020780368921950114965264938168253155460873997377071460510399337010556540196299091680183659183693918848948889676707346694013148883430749143331240274297018990692193524720195785789461452386210508818939936142234919539620618189447901528171395047718597395628665613205360901900335655220409113776214706333099272483934630196917707645117696488182508388532867670232788202183564825995020311834903874745374071564863700769642792571999584017160054196953046613175473405384910399605043338489013578363075138515939660274590155763726169252976943323266648484634380439521834522564326552085634765830571634531525878974243777308236320309564324929900919522985295423953812646640438143692683225890184425402638203579412689241331522229297604610832165302686118495894225035478482451953637987486885301043277142220536029621852162928400897810119371652866401891617939711986425567002243043900374448361604291888168440477379722298020755101125325959775263323204724176773642187714156182882578783968137423264460556294772077527714536534841191089792433538911811126341884482380519796400319053924652596694283462478056982501588503304311423705711913487119157322376486678932343484333929324269434355857862637451883317605401446627534671232476063175130423625327786628932619396020692847982469964132523684955512998218049018386348818395667404209180480772555005966357108280224836707807327642049015221429703056292676898762641698869133840630632993199376950842592861330346746831544198661988541316814093553727229888232540591612608197820017765975016425989002146763002570837325553367974864438381243860581907971802837477576749720889958634106309839175005311216866332096556825156291323719626559064457467232796514170309746480443573598834781835863764080721599566826259750861103331876216949726737943956466058926815493118498492609140603922250060699583520856645678425310770723450993378953627386307343116648046922687615668644266963650468890872722211096005342044672894870340290858676031206762143987747708295126143802285315686322181551704183211288375294758248701199477051675940617113640136084124512521961018038112476406402287170655165861111021111009028762971797605005859842825352401400486779381445897921995765810564906294675093704139243784338411343561573997406292860236357998781101137224171723576988675520286732598826005924183982903972491520711539529338323664557234076778776556512618433816761596173618090112249306729027789699371686342730162850654405122259387332404574758623510093385999229265902844144044889533136668699887110450836239324408216453753582781390141507675598503676408836092387098328381163178971669773585646031007414408997238091912231922211831772289195000721004226471810488409668694795474700578564673894217243996622885348794092785610692208959254469749213236154597137964191581835934455304779571256716164449853826880328730992114003981581962037149930511628002121846660912524425225364080570520149565411566165958288420233921429072425979590022153919384888977847326302998752582347213855682744772114009678289319650025394110753399310260706862049181337644250747381263456792552298935897695272043613423181093647571525892876976318328358964278232709601642274888472537250694383853661043611078142675996052944893197555644810922399114695026790347233337623850520120286892459328684554709081679402198660048953353959374655662724330804905268402874718905813200392789328893129230425579980890989775956032243590521322563647105542665565178795494915999487934988557391374757123888969875750413974214897408007382303695978160294956128099246910065288722375496932236772347248280094961502417537333938801439343825020748103868059828398454644118758691964738697900576402785244327264321565412898708257892495239441043568187452595078319010776256323207287346474940858373718494262595384749963362141431660716728101532875808386526689233029104565821824191058384500316670996625831083129297060310017056098892514612102719672497935134761731841404870937297524449789078024169436793832173407790819462973692137567416186143044638622460919836652607742098166475721758574409944019483666226657147096874138277042558893094762475386075438502808729842449183597876530000090006387554047696552477768922020652320342861950156985141300763287106420806779540261941991087528615447590321385205116175103012834502907168468221285301648703865281810094103240671438785073079001695368238646712852693459951219721693489021359272771061622945111733153871602784845655049843565574208993615600946677852561138837704213566776335597818452647652938048258374166766318763606534537071426360426840759150965219849911751819925876533040853015152809647971285378404825912852901135506884871849899348685050847773066392711355775394056277038236714936024945325694268974132668768400980309393847578979102033416672003352205852053148460101099076761533938462868595021303868044241133886680846989626397144947021374337798938578838548647920987453977590753644988843137401702304540318513598264981801375717788418640209634627623356785118838558474828288322527140737758001638013371841413330744452246454285615983892628976024921869707555998239233602495404714895395111289935688784568020350807434845063164869180925898943012979049183306522225298053663445750438231056617056302676481202725353876699482413923465567487832825724124883237635945436623719615049015785282970706005045417912445524566173126009137486379302212016710073745493920932969343404533920760550713516922355394763884028788455207364899571023240777434068275475939962325737571815004119313467330243392666537661272994135514980046808112930394920887137541713797622644685187491580971740826249541628521430487187091129363775675759113211671254624612304849028764757808719944074783726275833368743620193093133658787837845945965587484585255174430738631176364622118401031175070440538551791867269088001842328900587128809885000071982866266429410719648599463112550347774450087703795631296096903406666364614751549353498089908813264114908418521833370974815375428851896756764180222795273350235713205635525007027544722790646634825580882413437896838898186726275972938976665027047253668222839061904401525487945173900704209084316321141721145256720568427844966441457600585650240771521618004021404674921718023040252760992734971272934767426369899935293586719716520948209447900474940552705960901282432995247582128669846068255321365590464863725757470355141003890375335245638534623159971968257974873272580048745193447865776402767150989304941525905657449988703811225527061482738081404824828140991307757784396333473246723690740879359628182197984528751503564142874833183773105099574373497924777163237167693816836960680000725811221537910868771477890683864882841097278190613135463620691050260398800485598157278688394034505516016788599967418847880010142303531690364249728801230577997799272775733827794301975378583789886881448534410719803466257867448875847086115396336031840497493539790034724537313306468195235836000266228598365142327617862705226822374863092628935466995375733281631696512036357626819104078750914484708655906201902043976905109373277118027564212430167685789486982744693707576284110295379810330206756876040425590376595778005696848963000557375388372776072716358442911351225419499911553003188919298843324265889290718190692548628719293609885467426457134974349907623894439893512844106036720002804682283179814696116300989484073537609953587386173438276586586478559409134806990254035593351978807993128980424748543018151478672887470346650198165757208557017625809075789071579220412182727462336757072977011424404172653511633796291408096654547041221156817752738317524059148290062859326155081826049556424331688637617787310285823783950807108489868320296001882004735722038773641300424268253737643680434704679990354544496434184651012209663200084626614429974374650337264750236793936068660298609570035786753083798017157377200568607846955058426680888414167956950925088039006286183737116417899940077490394176474696779939437473363702255838216429628456005386589111086776082966508406255316921491326040391407753680046100771502809709367442980201853007338902890005783327981224002015972231428305040435629569035232274215622375560324410548799460665436811320430607610444968410748265242209264444181737118152315050185504120918021087134781141154038079311831534133883587005998580506913095533131325473874730667071171570453525046333273307570322204086521731201038941107946737820490235175690980686749027320095312111589004985560895087353711834298708770920906265618740979197462746198869664291044510757806887596447377379053989557410089260180025380804036251918376004086301989796475819985861674390879647843312511546280867880065601250309334487758497164302393697247960239217948965835509431893350789556379499276195504922584346584260112769636560311097273751408120949236124078242740141814235624169865939504091425427967095117284278892795820965648964852358530115029471423061109004746850445148944082287211372987114634442550673462692495648255130987298459698338549187941134893515270828498827700037261238271687373883328861111907367758262941858449656241018620466779663458850080467070639856854231831201184003347700094637497354745736150873255901680839765903807280641547283752322709919753295066418413885860830502213432121644242065342590643495021478834958862185379567464720436648857929315975800286790711506726436063581512900117122439669639550647406800375469732964003978921878240192027440495325491287257699882143031800631214525605926058685242116237000215220502851455783029094306756421587130253034560698641051217460474081230185682908485713986204397864940090111622283886157890179905542203967926234720233832108693625954468615608151673374225065179421076066208284841603521317718258627192584897021788396447114088875791959808221858344072991704524119313458123714206976074827724626087646868895801359392441946791754442344755027294211800236212771671163207324958259696466181990687171624961528299260264003255888628520360942437229613145007075863226128799603282089172012142769925524257168275494794830130963730820703524214529037092678051096808215666183748067457464668526962140406634933288785511522649184391256347323210919757937671275958765388428164924250728371217018477887239132606024240936502432270590363625122442905194592748593522039611908889556232382331677118661438302979587591758285926236363900703743064686576636228228277434601010013175772706651127380029059004320470304268526875895600925278528854012763987481608973581063788963638754252068051265498418401142701260814400808899411559546688238158093150728852352146013468701689311620961162709421703839674247767877016200690133136685220578093579537442157381810296623496285683323425986622239919490644631701245769441284326078633372746955104824721772929337188012896403957314741205998144846906039716083846017647869867083231580210820543721675663342988633813985742492005968230167658288035201552326915041366583588308544466142971316986722789670019361115350153403554432929578784789943262483493605627777783134876387881705160029651115342329247101391145902425807298177150261147273398995973155438968075662110750496616559131363153691272179710706521078874478729104718177030248001739813563060631168457257855675698539087896997848744299975859480781136709216999480785444159113321979013290577785212604575826277005752835622369701191727996805648832364133580690864576879623239642001377059398634328765911689775408679377558820632624700061104854495715495937545999976295711188253052781538147502292449269950638222354128553505130925786171546391100496748588886268933922968939051777323261614793823438356038752601935786245567011496090332350674521850812248852642378843165900849876033713227769956157200611019311714081751464635553806160220122648327166620434976116557123808784607215951397468291725893339800974551234120783197483043984047291983734430655863881102943955857661365375997629188003299947052158356033025107897770003602956582495578585396110768069918320545764762733739615580882723578205160281407910400493737158498611735386248698040820398101940214805905338025413047828328213545645778986312173045548116728419510298127544411921170568691281038561102208234749137910953986032819837258880569753917792980548266776293586275970805533140738445292649694742451335986355501966807513125571658842959452912923281827047335506486397679962512275913292143496974544171834766369320542116767146418359664876468358847358178191620945602142138627939613796066334965204351578660015990388554113407461306767775811972297856562052479374291885249309821127041577632779349994116291533946393181341108412010738632915263529140329136683064368498663430075366941132281138675237214687427114910019719043152013327292905585346657250105472411627971433846714552309856097747199210996979007923705612068194621743947673414269971510178468736143621573381924531138994697899195006633860178097278631317754008491960567844037865790819026494855286979755348512516768376813356509991554051050050016673879526953953091818129188890746251837025265470640290514833754703970843183480507126929616430021829973670071959687073937603906953614681392700160877023194767597098924699555631838882591321606267416737385266360253770205153666787483807522437740299404234176451128857670513273260132082561146211668208904513470922359821512880343793510991549624414253846253470895862649803446606014617213295575870106464633506048521540332394253000150202968299365065515603804152455112313108012569609630814625025954472666082134776600753330839068951464963854401773612951756367994435514691222246267900282544643787269463223080995175031377410511634169187723011442756728710385723460415984222878661585354805386945924830190115263199204726784567321689663166304761532612727532218141876865016173327494293413276004068654595924997444079614199063055346571381185118660389442452853428860638672156328317936506657210351935353411895852285921689228811043278869523760372880570005605395800022328701909379146105877642003625756540310796281317254454621461271300849786484285968602956739816226494873153755889552605915109920218692115588930939142520651989961669087950877025625902373060302831946055842891240613604413168985408642971414718440346425626385939166695680916713379262209994521471835141550452686576874192545861321779487743527815211675566665916762888094712076020400253380064027458736151864411113790386417579602571759299892149636520883471279985789138235967267017602700469792990314640754233391948065088499383563856857231395080878251398167340036388366877744754340852948194196376316125125248392917659893646291310209614557075511091833308621227716526560576720849327349829049511845402983173973724795880771989619750131363595345866190424536540331429534664830865064732648732074117527599691643025731082072891748398285855703536699327912707986071517301698246458283505159867481061328014313423894752162444144368808443806442270982965306371844210638904597667266362278250033167989329723911807089751377091024811566588522672189014536125113220181754427738547945192778896830133315408596659134018146226085896300401300560507566506432103173585272546078028346025889956101095092431570112952997762212457839101197960749023847716129579040244770795825151507273672642750579567715135323718556242024722205036626106538610293065794983150454861625387097365292661058465919803764480788244875521761291256963890435144212202870138143766990839600214629867046070653050231741027041928311246501444954643852070893560307001892237472334348925132994030644229099041550190153494304534354254168369608201941022566674892798441191370541107069285168572329587014891613138031540034468615488052285419694029428488925006825253495970849516954397825117695015853510271439947988538426994611600490013791089505471311782412521585419784007861451865888986990174210104088422796837532333497599949420160023453076639437699184935919411711537972726287456662590273957173147502317573825634347514912495432019039767450477139189534618025675623978153607060490231405612704747805562363680121522482302732435429174674852541303119740857166545359093265580179758667453770681855035954718717635738067283810352297437031342256281141509799598358930120035382230054316532875824157098037599110189018658685634442749486645978853472684889249742212083289321161897884518148734827227110742506765752034556875823200379720410667095507706414385232153896524225892243025100700962505841595694508849986149243569697528778723244085002014791696241099708978304562392017012920229258661566388832697084525747051999637385200536938585038397544304519489765830752036801105795584878476292972654648965550359058211749699267515815914471260289179840497097132290870761780814308498622686116073712976605370119234581139970050187165662568040853811561451349450476889235008942118926278119883477204718866873495160631869002502682899154842998807910051755549372139506271156523645676326770820704429640930512179228713877731225904249898704114643203154609366197679577414406188510005516924199929345677964526730749522470113691728058491113633875533092449033383261210033598135951939968898137923133193715982000581419030231306739773254640012677854864875480624234340613556608546770711785425929612436862748032104303272161023249553136604516501781517266657455808087241553503618601263751139281744086549536083443778024434312003794954261328679749357425190800857208554755085937469015488255295894673705582479496259451805024459287116715461762146681133964345723686722794976193624537114061891938787257075477195798929245027171475896560619363269798819825731129487317141555033495974841578987569351604277149428246152980551015596229049619571941697819668071605596890035852303285870856473537888237951627241940929174603106801736341899925073506775706476727679641586292787902555373423245679216954801271825263416662119798219194375041681666403769950482281668131070334244747145926162969826480895325142521249892508877789482956297201247663100335063003869136667996772988742855827128872394392114169930393277935008053925555643357409008305748548282233200262338150798600810289832062837893362357337572505199749613135915419736774784501033054047254494362420798396303459510427003927491154243367586646576978683089294225928727433749127554092335993506579418747641626343884652928189731006559866669450247060956293706847457581723223429583586026493279430915529486396536183274373411925400123286312457206842189868234930710552902816984685138684370867369946888577708344991803627317217952055440925742514972171595102237396392383278703674603394247767557579045904425774744388773082760230902486922262601320824586427758152023639408202031894133458692819991302405269503106985958436065622736173003208200312552474670828685626969126339157654948999739833121818922932854630744787460445776406726798161360223539963566208341691540077524674247139645174560538298558898971647935588584615685505650489655589029248199945580845392396085480201677125633272095592241364973900134104282863868464609893874045177719646536263303079029011250008588018119776056108154849873607389395385066424198480018912122972349155838290908898265521052168127464964720256173493442427040638807119334594145301391385811832523425056932557453837583221759443346399962152055813687401153287105129916569714491479356538081044245626246746575139110288419921400241053546324748526067546038977562304458245357515720834614549866775463761061338024171752669518167233860909304438343924998384209608534810972702499345359795004556659947431335314072558525013289704895625887377022332727257315802337876749509057431129898005554435061353007076776797854093661771321809487209624735973639297085371090546287585406230091194074219659583770474933021310180737703407068008817176364013722684429389881211660010134482551333296827723343896356008521819042596289683430323909623081773652182682167728405782790093024456324927512120094433675390663437280913978314986976107814362959997338099047754144015170396910547755378212380278396950336305921134745112276101935815085660275801257045736413307216571672051150312420774516699541392646281628030140406069165313299799430809988208523348400211015276192592785672203657646977546560884069447879390689451390581348289082983438784689271701681855824608795235300762327474983331885887003467200523903552370397793937084701728216745888718509503172546102706475392308944257613044409697567540042382747362983628889669199886220738055139616085766658798038733702961266650336322746104346928444897506700672530415564272631357139213511710664683301256219540425758200455381545682636827884495703318027301672954072584009466034040489530452389884815413314180145816461517098438483461876108955534619490236598524434123462419607210247061391985381628627045181449484278493738028648162212571596420843123212863812899877128665840031171730763655354393861509170820377437134652280308965465747948466609425592914101386393054633501413400306182524344829311477004639134817006622527960615924495935925326053042971499975700224820028325793713135986307631642006924656411563616031995473857820328064044321129003280395526130842374249708166940091521647920616823401823661621670324519984893763083009436292092511715149195165313834581646453044779625439774512715203914668015426447177682703646661682809193308129237185953054311367229385921345096590818677683284548423051077898920168137797380950617676480409631519813199168837122289751887905209312915332818917668887319798570489166718055055161231542550007440937942501415334351608658703916223882832021446606718723340140468227234683982359629711543791322709201063637915460239206290165432514145922980107605307476137364683083182310050598242368092036973334748912665549520586278219759049235700745541735884517119253103305869682217700770628020150883093214717563428650604830388690949223445699181410442545578664149296818853458975258597053674101186765588038444383921055155120742573227548545308107278383825801304425494912994453618116488018716142259077256403693125481303615456408706518984039998749216165338244024998579724203305541651601778939665397337479376953640377758265593714633152019968714984391954822625014102592320493495719686783611043471215016542076177100067317861652871951321541347614722965705718600107640619943853177106159920106980392216757496867193363201165511926593533011076042290979064188066976492979553379798954616051060275325454881706406487831092782594059126250373213381348904443906795062092098291721853926852855112712103300939227834663504821649671236868263091431042426354001678784454983680720654411383761092079489332365637712636477806096979425571864186486820328974838343471008126194738011681012124263316389189575957880500611571165767043426040920456548587170112635358183798505670942048137506516982480126227684020120826866146076525775567580915685659395039607364806435884057450671473900589624672847846725186661159282801382968045559243599891966810089412321868702227125707997466280894642549794135099266234867681702195355018197623539815671291072508007591295748007561856125774438975902058876903863696081596922069110113024391578387632968020200151411957894080347407860556722143342587428354121095556246274347147780640695326464043689141727160815666469649476185626070235440281279246835267786417298936804332717904699911779762393252313718266272878134572245346091520344574662343094015664810298351046009314977034100707254265118886300489736410579325746672555681052772266772100781858439789615987772259607125608961103818352117291734449613462423574178525406537416531578451043665504137828743093699080351606919568912707763663744425332427944568219202886145398761883864295075484424783522145418180728637574537921875444032246049268766169725762812129381291043569211210606610896476101469304497610454084747527783564504081081824209382776311977445212271496209213300699047117223907641547558065201004082718898138114918349156909148968811845217523704474522417232655441000540340964141477062381589043138607051399606022834018448151346490199476690194426255166772300852380016551194161126208636055502294560996334427407153176861652461303720050024964989473978417204702604560844216835347268000938470216039646660837164192716681783191306860820718224267159691806968324632082260230370785006556313835347236386517578908307738506001817477227918879155236450275238868763037128350865235552787614180222979262850430185761901297017660697526799704357186477361810694452210783299271345006100822283849944918400537868152880580881993183342597415408482474672075577479496595480157542813221449552204885069662076331841612759381222217441467752203630088891588413500967143662265687863583893204965942740860985020266143413207015289566410484075213996046603478068255283546384565698656161117422624800618033626662408330727243407447220456910026192852246806879597491844329373590042543895130030101924065988536698350196387909649122590287705789484045658922865929980996524839614952651860173957131502738329535446874092871609298782271439173472596107544286692844026083750241797364093115598050908832157382092110950500578665188563772150136699699619202198033705967149700883109216804211064585530988683867487675687219578693556438009552778897431932822747929838975211204215026738589044768436518151239607981581396180606909486028701311859880489186077658979116026055139408495864354558652224561374234898403586068030197000849354143690507931282900806906231585228756492097639529962189045242797458650534437555434142820167442825944836355845213449517680606683056641693612989284743127026769997093505946505566391132164514698196440362184794059969486382002956552482420816586512182586823279218581545222351474348271455840826197662965520869261439160170472082923702951914248755109416022333573881169129934194093684298094372917467414562713860590804677971248488559818200497987277526871484501131646538448631457092863288306199963432594733323036617873343374777395746851025462335261931669979523571564045884146895508347218935979427588516372962145695192597066137132806887756806229040473537381528612471982778056224077380809353936639972984741262821263947020687146852287544967503093715280267342564503623368521305625998260705819604763162226850374331431236757650300737938167457212197068670399609849596405471091988494038687793482294203848426147517390826475413215380155187077199355518095738182082462817624314099087952336759663383999027857499932956317878344427586763327621616364798835516952574649075120621940341433208482188666204634144516718146161813038986675865589076571264444998788329226852622721040533392132532613124156354629815872474306190532239890017706507799145723710934571988776727851144388791076524264190314146199595280027823597060651277346798438788229382376661619599864483444158464615240084814071041158754877136233214146826146250312344535379793273667870037162529553777406080523001060449428091443995463142117073862737165174555463200780594632039920124937156081163887927675908826557594199868174169184082280129587955863108625919498052679756452502672461762521647366927003294475905979013504483517636149890917869839881771826363091018541865380333676335545515757957162434689072518988928312497410138748649274852593195395497831946989328579616087146002621887504544929808221612796458047367479329769031886997895529218768541975860254974084327421261943048425200912877860681343090105064879672879225388802864401904460854084179631625394721181169616110796856037328157592626125647025979283654956001478959557874769451388912444366243934412989898059179177355266295729445695466082269565415671525683241696994924779658104561049270623171640039015391899123427032572317362382907145252309715304663146672302106450501205052154143910818096711575122086395009042903047586933392565955446306629658997290818260993384251955981409196111408443030100997773406393325317715250386789334942262419961508236544044216333657058128346964875243591251421674869337197856412681913487032050264822415465623987454995073595832975303730620443399551008126487688002130354009741699778789712641515971949202271248743564612958985695070743779389322597699305793794294050957783430968213061255810220902637818190786017962583434669311163171145548007645333835294156207736659127973256361076568354997227808982174445762913215789458758204797602231145353680196664429613254559502765516291337412356067266973265705146105403577688749241099576766185513448960845254936573438915518866762318817383370831510934622845392742332768540497301257518359334249607451079984042125503187921459060742850612485910244741027040513914604303551891873347847438291240390307286855326760259984293723573303856914058302630995347192248391554454831758630782814526139513001993067218404477253820382101945627442149653850730752663405892332183882664058526390887546525402978630311316534020138280981389563348523290578888051593316991755755279768381458754001268588551058485545374038197132009185659692635400519571126584518466023104046160870651616773270042452305006750706152741387946731251561888569142760537346252656874884420524715592677108368757756866086238520100666494452773073749090057595279933904455170262382194904773595998146546054839241295376081768779531412410350216176967123972520980140485693758880493278308124463002765374860830146668237797704805259618535774803123150188147567510855863372095387413075722785629856963650061563819555605726664892743073747614058839302260130041936167874260386473244535935815130992097597552368533550285322144083796982015604621549251532749806035102409351580125346717648366210842444503495026437239497904722065208222392290016654293052981106517793511238947333959249068793967513415941136706427997578525686457313765709212204675721514230470338470437944312499903677515615260333913712552289722505863663022286484845597821202153471262512730054481008764945961407936177375981838357334351917240048150808526900742237402717543645069416396252238570093937576831663142467269147143664441818213592896558595867993640742818176402194683635042457529917833004173708314309303920931172148661273331258402767981529977631743417678895952083647982653330703043573399325416009897321007148735639432857545934701802156329156719052808778114680747340185329706752063548967594660937475184173887305037812924585145443790950314551826131628274160784465094168286514173144479880355881849722163703367192440297490580874826981313965421749022065876836567490816479483175145804702362286197987713287255844724148165543652068303854736734628805884531578625228721369950458769772309443135881834014773814529488043278389118577204703725461178558188298036899544232966946899125710721278266526053936350267111255035243499662353264527621880195770990370727618639260501158905733484286816519758672900642494077910476614112948550288491041848521165782868757618248942977519557156915692049476036706966995555792074069181690475068553528517373174288429002208759639505313051207195678370034535620597617289392410389771570555033027329728423036933406992014806415072038865015912778239095070591447747139132050922214146158138346966646231487655877720058870788688140536977578420271423278964709930098890771611330093017328239948432154046465528117750446302286122103105544226262922131978749437206014817026114744325161916507328916736689886002366273928933649574390516958483355062606246587122010712348606609427187479968411108160640799291391112548571715030430910457774589170509673302885869464462787986127480462996903512079418937044816885683579307032824225130866838290594359587162026654885343689792744059634728149968729579816332981997665437585671120836396297643932199204629284649511283647513248180676588019428069290141524001878231319498938568155605360327592909518750311755178711624619358647895272045970735844390080513675915943869361607806962697872280870406333567825241620764013152243032307784004419264283671532930009077986825258998210348107191464390107085176927609343125624599616898868877243782481903379094540022230334622317138441764190474601349419872999623510250248890508406056798101953580088176526891183220799404023450337897295004045886191542718692060373814549781977296271435603543735059786830590530077063716240300259300031832777334197803928859584851801756131206426412567605544450499964847035535086339242960249558612016297167014131967835678699363117092880556504190468530393546885401916496949026614456260864887545782803261010928837074859597101495571269119502650348599168211054284709230306558700966728454076963991392511847799404565806194378695379042789966678131463373630367272978352660960978719068198911582399900865733817461399575165361506457450244624272166292319989415441131741258552991608998366141381038400687592810986654334945338278429509755050954716409155571924252098149691706531960251827813999162141781786222242798651930044035530784662216302031240622660698964434852451514047273685569618962666714001554477341448792471763425491959727065785155949169501894978089067058526569309373097052538068185529172302082205369880895851862796308627617651377978025945233703671919047612414004115924353537589632801203119241140656831208117040264095688052851230794865774909646273430137820455015454037417682231709855401620359819167368018095536083136709402991570710411614484277113069725567775859181386645654092687036347170860324148756149481697458600411782718342790305477011211661398325656495609589362325396436630594493497984207622825420458697310391592142550056964479263736323455846099176426842036398636387532537257537458438739496900098104748426831924854837190062927604334992810794560876543532441139617329057608400410165893265470553402815453740315365478829029612138315035060735840232103960248212893856490631079595002454560632997332229276264318857569770893534245610363962859563692959204192381606078211052349726924570882770430158508467523423012657311731851967075264891006040148313466305060478387241300318064718885864064552244714333982163902007859282308257182171401013517868224336901425919628874630228980661301838212467865239279583863034176608148532031394779110382765071368830836808583239391579936783658198475148468653241030370495370001215127014822139807472198378548106203658519220973815536980224737881048381543535455436171655818992764871610285155479927314169025210711511220388747872741855659220901829659265382572547021822385853737756552455254545381150388838160193206040441600571694850696048844395893126579083442379133696391332055930873914426670668096479447266135454551074917855412782664861554661811786018052737025629964041234992974373572748077790621424897353893065628142688523090090453068935591759436922377276161964685341840400684226833381919893684837821841593434177028611048535607099428530195144741044087978610844825910921956387873013594736807782222431653641398936621977009234473979096345316773550596775997131181660317864007244773761295868073098325115588678733627643770046263537474993397758095921010324247516058482587692528653761637776900074802879237436716529813191592304001170565877710847953996106671497341991622476373865666826075574917033807990053565352664322315555311531112391664517607521225738317206656183512453756326098335625264981068674356108808791164942069569101727112347997140556481997390623083829860782985472122808478500432958986872473708896441364137318834881253207348273557962805484293776060123939852644371969561058051564923882943181833784404234608808391058171275423616225117646981030192893908442213963722462787170440102185034622782589441998802867986732570218253476406728606408160800993189686082572892043403685200797574696285494832036394377669106604319957621413740551883807722957127936882299358857459537172684378162451450531482872175928866254163782063229173403424918277003521542772972810817689072891979809102398615002154659583351497200397822751198147234085149843541134629966406614878955883196043433575368598376108498070486977537852631867119968067997223371978869079526554313990226514343244405592105167126900364279012301319535826773497830501555353632712439746643853299244631651674318472789466935314627141391047874360999364486856810535329651338325694754182812104178334412001423561169656618584315825965248150120164922061783631289310012827393300621154693623670408727346559877481741442750247111214200795326893466709617177280222697435576625176589192762754240344339095650558233223832844124794549480928293502081048472176441829786851137696532919285469758737240322487816731332847933360162113606996558286665096349100949477778591044093453974949444871276461121420291130831391345009930207668617032792130630859141528867119424663095346971560240119363561730724583280760309208295046494631162191443188488016318478010663188153663816910354579634779925141413042102520996619026739641356623244342719290027482219590179449401086211574058809837900970648931927722101568212458277816301303305157030975036753019894990084905404062967473796169868055747390933443255866629268136404893775985879209746104218515894822297667739389784367428570060185358859513463568897772708118878475904781494370710012444412413737745036766046394015886645942894168207735118389636834043388424522844484876168467915640399881990693893943121194856923289716184138873649875934341086967848465168515347927032228216990729887455036140983799706594931148575908075223053243286485389242022079034394952028947695122310709765567555671831501092044112810777559506837389496875122996793572476229479693986612085254419507588578086573087691222099105683542345251543668913755555533295475081135232730841903588933496509081643594378572675888313176078329184061568280349583192657936684642189755445295808688735251625371685620625757448301708862881213844643748132185441796616865528598064250965592872277265327202099871100829610724880765856120409168875992538491756386306088720701630923964659081332557756836509055504288376831216065005877018078721423700748216343337699630796215767756947065017260820104286358867819483775461051510184919675335051867657764282534171515862077187821930667506054649691506804851440414074124852691299588791533389816925854388837150818711155783896621982661141288665366850107828653315685948764856372996781253020136438613096144825379603502072164271884477800342189988948962363676184431427901353665876624719936256582677867212527912782157784978730855243019638304836482471454470937057789405034263529303458510306628855062249577015717126295276981812205455276004994847242529358773673474857310446253539282091803330876390282562427781357102562940575478518037786613877797628023490122888109284531465647617952527468544604213183237779992258441020525465550099670143474011109380505555318262613552200280748214122044483727093827539018924601339988239997764384154283533173678748661781411287249717134741144390548625869393117988137110020418631317378943712868678103544253364707295808218631963749064876761484247361854630738347636836111587781887706261427238956316413480948113340885825723352132069490800516060611364472533493630343918790148029906132198048125236800041498652090027714016318460866325023054371682659620270042353097793187943020338194645776584716577556968264881840067734954616471414878723421939347669112099026063794010216009771040470397007434614474947914302200948774992529528087760724501599962129092945867714025132619312339593321577154022862172773948922161433787586473715599506665278133216716175249047185046709374805788856059208163680449353002657116302699686212875730284928083565598974321117291608417344795431585196115861343411325076493247571809983114472745878295668686173985465812039124791345635640600023886510313865394307397310502544751188017774714484430762095628908235527490866710439805717831030175247975002044496912601937939037217765578798345546485640980356533220839936776846787940339727038386383173979582118000105931343298883854846654920022720074187680611154151888564246025227763462062569428313091538294385019139545413023067319210163678932747592043587366723252920292549360010223932603005263021943044234380646042552944928492049625325212377178951798878151475189841057352265711731112623508028443201571992919904592853694662887831530613911040489247175580855261283428484507198373779117701262093258279397476466706848300812500126909934210708155050565897387372562454409150554860319286478915345333605233377048875932338823954170876274609568341231261684652863442215525209874063982378594467674560012853808543653983051568513947849543107299679637836848510151877969297844914039000788271907515355531380734261263665407604801122198889378530884406815915086716477666004977908540189863858374402614979853122945654144703091259801385482129554341099069495357064157427182883849107500076390450536911214669038997865653424797763368906158701258419576811095334606657614324384450507942807071328230879949852510771205144253094990679068866167451402404046836047478386190963487218034853271889265960699130973261261965483245543399345707260561499035571407957263101213625969818771469114782479086338372557260265529223727843750310764218934405419574070607182672669930940853358189769256019090482955550628594975373219844830369950215827813322896375482266292974333501804911083900223891823649859280310198306974964688075225487603387049670179193415475125791771980164525936095674041000067681302067672960677910869349529479935274960054769760662099263415379901061799115349873735351986021992901171139094398054651694717278508871368797789198279611692014721565834216183868794595773434787119942447005631671368811617942797028178731794315043150939560413619791468989101298600184193634907630310488071534906438029176200150994382477141584934527585919406633510317095345825016278956156953700007617258809406296661221114082538942452171292713671075892124174697003569725917622341012012275625169558310477811974942468076046485093114063068103352327095573619427574320025240331477852824942286368722006755382430730955650308469163601400597547787720186666202930650790346399211912366515120152989762518730010673918232130340067065210873075328913594674814799543465686607475223082737900960970338546170201799658059389454810820595432020210821167737325515284782904355344768827673629788112289117846982621981594587421558859081371622977571742891280951951110348582250172299071650806262234589783440325945454268002695920421574958797044965926334496336395969992182786733667385123212900252120674792431309171655093287933213750601335725596328957038379611879780039786725359243576290517648939097086841671291898045469925153593468380639934971687652265755567291618830771348162627751571952970711701954823638277975657237431034007286243797817100715735391743920841779053651680937296542551322339464150200993187593050992758966190814575144788262931387983945126886514287006955842713695968774624847327199112230357298732757977533977936695572949587891342182939626318301826440432172459577595545627342753267597356749060008443156533896593825078549307780040253747571872849624892138613006939303572405922006125493404301036572001183225614813326722206248367549899019504689834639655138555788823949740403582844705895530823396083664560937960221448195771308983066949017170235562730376835208655097945254079628457485496014135782309875646548320611568802603991792011781681360386275711718298922740566741286339143523062578080769126367185774229060455691969103817290317214665971247371149434622500373983145671357132175656905668324911737880754583798973044051184142594695389492447740422306342615109401184234669536284465653879757277317416682555178492897134703962805298500539560251274040119580327571955065631762973330550449393613444102670406910088531590046226052779322342789339611742617196938654011753558600941685729099554931225241886541336286398981180799415821219533691362497289426662515961463392864508865750213671639172471843687111584633945289241909739751156366450988244545832465736760087877793672240327384224020491163109478694057572189767305231989868315415106612367736792337385437321871269873044506597240703547093867853257070969098237024314999809565301318824569612551560846869260252939017292583654178913980584965224540921915529703404104801554130127122826405458783018555134896849964835400084158854872826978306393396447849008143501977242484789160509692647078789833737997432954990868620295673079614671304250383989029272797359572750573110147024234117806251489140497350139779038618942948190146188771329704804058790098423403434066984660429332833153809705795976323906116606274974116074941813157066269354017605950507006706562047091173378567514359926461309948203727287678842969216616243492870226725547861310407187826095168342286659667585544703066262673165970459463342471899713284487460171983669735676636268935959407369253187878896085618405985157159386356505364901534710849982039221849798974106073456374795829284226999777122570641587064160667130328671843028560388028771570623969443647561565476619069565423486177867005520414295765307459446147944787257021219954683724635450342752581310705647339122389562913045329120640800832425599933476753135841377544928911647133361699223115294468181425832719082418844827608519241472340886468557971779405233681411498742640417398218672645344381745580837284933666670264336522697958335961877608477439121614339711149589688651264448499740922104891280679759307347496016635743561671634033192215293850766449856735996586891905473072966685782833509819048847981905142879967069739669506752753253354484472295776962479043289581529146190320613105920206803239970960091998309223403169509810948893752107535958958731361968731539198589745747565539939489286158834406207029460069293861351126121516153684984788726410764808301529084966356481612563604663579947020929059730402072207524602976686374087175480871847585255067891259957396851222454400123871367724253765791240345255074079222158939342005996865940308400822528404381218253346536173817230065145437189716831644652266454448117308157972133916181464482821648604952810034103244667494228070987151600995338665211287078761546418278125651205769527143685057228810859454340328453248151010425748635573519636158424074856324427795394033556379214393020325252142596983875787564801836402286379364795453893051017975119501389824727198582457282551524437178323488838705677909610544308110187707959374445077414726862414890728691244737911757033360105439223100965436438062963081885395074591060598657077052686027981320613738510947151152009189438461765092662678778112477236629842420466915405055205828238213567940188578256927817434193311284969802163814992266100830071986380650052680707110228316134139805281072919417562425223636945570181114543745633556126983520967150790023865571236976333035995787090958618743126747286514502275594625550064516704380018965450239986313184265083827372215770432797369574920757854971659364657772649813129904414139162346124727980232561377875415434298412056353976931763192677842376844926054264692426977405546485529753471683703851203697946240058855891808020112834375849149974947757929389874327981962799841059183057285065135428116263380679255505518757094513300671836314778709291211048850064417862705272112940664686998052690086309312213926038100091228223296042043294065367417755502691704667938177524539240940670591617377949055515194430232066268782845910372729794843738837871856889311065502820471393632043652598105696259825696307604432702314108798179092530635945570778303348654683802097124227792486447722294745641153813800941271406063725426971052953785070569151608434504052657802845684464883442540373648922420576553333542816195455895043112188838655241631586389411330463941886002178810764069832523780055383826091684935855526866464636464382810724932589022208319743683837022717090609833070884713270516714928216093146395365445011972768800403133422647875468448013091788354897237052017992623215643181025063964813753156207513560358730897034755396185349548610161138474934986302513532263144090814377465958562410112750551769048885691493776251324148415598279856241407575591830148341176805209509064074080732659332668578077404256018291516740711876279652283212291301477188201129717052772660120908969565064113001121430054932034239934519000544691679840665548541912915821573877131291152844509867002521431817749077670046808882624849997505148811849287599559862398544534635025109994085140025804135768286591852932076456125429256110251835495995235203545751165989403185713011244964266660640435343489792279815868851291712485894711918850606821067669745069686626408452359180441500763414273005893321826733869785711097633225962311529546420632042992198361363757452660754339582020999412125977030239395237691089386155895331402099472363009341003559868729453523406561900457157576040462469684177962079494801979797906828406227890874550022929581990746766319474419786476887900608295369228319208678745219964532773645711129159021427213141172133631222249070889526188188004299553517313567248451552435957913327271857988964510252234568978734213101816580772797183457804123240692884391384618465072453602856495096546572190894326897097531796985970966127469059473706502685778516507617875598501761829356167304029769577106424280802344145825113032758557045488511434925095595768412963227592188349633291857586447683172391512023567821516426467317043951414880562257287989226498141657559489212505427168745358995920522312685513293347962099839701217850148622270038139933370175314679771514211953264393121053025899731609337820604026784912726857716441198034660518465733020898846306845230206554650034073489351971761035139337812092535355436340167363313229606288633394481544403148845426822887355648557754470338019478012786565172174669181196332122204815340495600310410662775999561062167439052738680547193395179580547319720557044641864481109429679917622865769749993350959948670264150793800646360787511727596609177817868646950215660790323537046912326603378451569322647320730252868410693605079507103091759036509358381331001896102370936307383244604333828752598418143181039081688785740863908099009398347111416134561712900632708498796926337042574862075010230936094749501537810760939263608545684704324050531856570060031332466706908743232918329106133924469359055601446004630448542770911565558808014903805344864055899232694674255404773951360146342262884050452443590733390927227554385757142986404125612716481576913313204680894275031658248263477650226963456850591467370591172543304319635075891553150364986104451656714760455006020012402495362582964121630790312632658938066927798432246185478807139457931280084975599563739248683639532893561880907786541519121470170458081427729662344607251818994968549325501605885484989216879039588176270652150681782687040117160874368303026859388341088425825283651250827926520183518724464580527237250902455867775729755679004779777116694974302867608564698804615737578679027501730115260503900384878108709665122012831905495285870657781814219116494508357458914136028551538050008434127604458361960352687684659802870758734299425240547867633763320150681228979864761397459789326667795831960474713395316678231476945258748723969731356635786781531820079584211367713898398773504634345475220387322207255664420434938851775872104553530041703140476973755029040111762738913072005258054710699436664215967823260191101952392825393314702345462480571459188203081413923566648199155052441021864501057569620387541759693009065412658947004963497419974823281485791434903682581920049140588873828570600979655991487227797316386001582908022621319462672042176721768370966077736109573265161123745023078858792916464867410280006189133383282151550249201150593987909888216668475050320415808742811900647627172852147188729388614009701886035713160855157854911793520677451996665807763686797956042010358774977752365534085708773365061056018608113791773124965144855777049807157346382956115239467388499271409207123551368234527255448176486828306593149761836825916124713750235211101510363899407230418093120902851835704333437826184085246424000860662400100776163723578574872788926052246610575735518798658527042464531763699113662717846045573343684274003337191638303036143456648643336957084300167389972141794098241083324787765439933424591665149530051569114473148113549949652152597871184781141004568672146631069917933298073260767839513985700672906827723947228419881465020717569001242849999724336308176944452444051548197861174070657841629277797824519666368392871348431473536800602065294756602259136643530152627496991550473663289191437924933380727858122785502322569334978155533891000681830545275555392137953161152608941061196354032187348339372502559262989859791039134145326394565658132893864766851572421317702801661464503431134009960376778519210518620709156505696103617170045188394511440315167409244212080079874635258408863657361399601408702537771714023355207726750047146901850859884365059587095929349938315885856785251705703532425771166756508295187153468219043844165905681933370697789966509422716235361072373045860610005099606570292549814469023174927774951135575193215396879486290647699548838859455133355050565767233993060083623433152633137978525217119792351654727434504549343787056099537582358271825878806867052844642744280398327281341574165753284197828600790527173188399256762691261043888686571192928224507466290707097562920287413772886435125775447771745452699163929366566314794786359356796487981880461106549840309281680817056846456796394106889987573692407165162563941264118973334480899183840411299405979102259554269295224226495687843755703037288991253400857533404813764606673734487125730766936346414192954261302020700195458643745051930261294648261635714055508451718893641883697000236489124499896115588502205789739524701451924966221861787748160148474015111646405131183855618531449775009223521383379565170229968210486468973782512521366967457857483753699535457381783159775223418380482409572480314656226963908969871460071309819759640735954450538364254379356747007883048538993273499697689095148774254870699347274402552836954668037822709734065107403689766503336933765440845180766662298087739934290767005093811017116459895485879416957417310439508534394291552780930024434308376239862893623280688414868917483244156333990550567408821345548702061312939448280895006552466951527558160165952405747844883198207614489904080769601527760961603047487567923495352387421784759279903356569773754365980225692587238603202016260151309858204883243402049923305022010917120291720622375461962256942648405083809833810213535863704737680482181573801447136925985767643273896738807007446145084720895932391612945638457683498725575631549248608449916090463939531834513298572315134675741251061770795801948530973298790481483235106558967807732131187343940762820653843550131922834987899604072696316039791829835621800045153623391771187536375305808081497954283146449803270005667156933834390780402521569435696656340491871991610196684220647334222652376079756295030138501086399237838256405443256862255256268986098222168022718752607408329020219939508907392562247388483340974892839023207253929604806849074133881185716844719027545321849277279476533827975111941412517350556157647585750412073934320935965123110179625616511044249033267763727256136927859631411191630459391029764001390469167361070300598343765097621861810252047353396022418111248242658588645802875469398378226827205915614141494159933572280832533662384345342218154217046275773746703422531982774640700985276679767221240692470592734001543823998281251808561622003408400745507220815473465302585009569200977627377056901270084284057607118845141543578026150669688119244317947722741920816652009204882574551616415508355096120188899081666440744754193655566848093916868878566839286250190591930603053100250170218814133578560525397785762845437726440415409995679754370076230863236694020070677442980511236868883749053193062465488306486383295536747361793813192528232606349573396513427784122358034110801954910409645613124911519922137818295702744814664249691416531577711102171431763674097606450888429718276442515281258243234852620312848723563008198280114603783591516036222567578560191479678226859566807999432340929736734083782583144006025333875132913200711982727962102692260990738579733764921589401603112506160438810697067635176610799914745610255355305841380124976454151097709604545401888757067836636776263276590482774127382522271980074005357364563596514443144311428268287824002003088111953413357592220905624062449210325466770159340102699066073506131957079459591104869591938975718869936250662894246229720123067328272013212936338696103089351051223062083783601246415856607511632334122077611132967477301798595526864431207977594819091766839841550981034422973728223678194533064330561215793238703122062480996130374538894302714745135751679128382492991716787283267610219860989673868591584009127398167549465184416661855588967177807947319603929215174967368066869668959965828025882054365492799105354370506551960706747263104346393890268394799147469950549450239688481822305071836061419881548146769635908412727938216779698887508573537439647591639025587896596354321700190658468891616245423235633184895503749876739796104134670913481025617757513874830267740258006875934625166596825667469411230136220039104229054179317053012976025684027301769144348887111110427909479564233678630596419291141015972984155570430517482290459678070105370682565084173516687202190960395487905270433618823095387442830932119930146118782594135066290117899312125752665585228509249728241581366516557859298271509411100765137157392428662353117241843480194708586242868350887516554083767744623267443686888794883804939862502785842700524160501621209126071980529534419088754792599893352145936126924930797876371421284167516975092972808069742053603582659138155562401691077409374159856203530951836783680893852754055174376463750535022344249460545191247289554172760695091779907296996176198140398121146374953956739995993738590340466853276903362215382461516448717889655452766781389531642281278334765602844677463527965790826064099254946273618105619642876598241256485754280798730656430947613240759711313855706331710714700178432133290678843179574939654056504696957244495982680821645271770240317384418176964541251120448296911240512105865021592744482464685070827099891649627865162942616850729204978959405635950365643588957992709827130149950213428086716628831715748904404779565180729729970803612566797651246484571723116468996206862362430779510459136237215666597835106693851692916224422713719642933527070559088382399782192518638951309232384784551019298304767339128795750177830988469301368449777945005439249823196650227205551998861987872211233336016539501049234177288586888911372524315422903677054571188772458330495905563748727120066763060180254136988734311436343566090242732300979915860351037451463869902673700556721844234879112814709289152862400650465435952423205514969916983700062357482070485913474900791986718038368226604185359911319065976758708895250167595763537755590953906325823440135101773938837252971471666223091833686387233847145384292079985469928767754171503224193569060574343608749366434316480364395594612475690036422450888503736440575699052379888784273316910647940492302539550008186172449814694776335022313468391755318073411863932375113118280582102369270094099361059976278117008506980903510602903697179854572202242806800105974088911243258640374071529070192724907121283807876198673061001240044523624481999459296917812379270171482213215043038356372640251890842290293554822636041602960874967842683904316708127081837733935219590113110987146086640666875278790301489661121048449720175765727487366406887646694099324279245685081764870384442597177266239348731458804411137911143941740227989570876211610678009599863501772137016817131448908809681388385331094624582071369840343240468436337891911694672289465808606539112931980276174774719093714151289963393970791176050986150545350333480540445977743094529279407278636710522127327246758786438649103380526349311037265718898973890974415682983304263096429006712850395547652994258441062649427059215086347326188214531886377854792015206544145426426650687952960925763089561782287703616321557698835180365090080694243408031575706075913023379463133897693940418810077905139815278793661521092130466698214173612582371726355104756736634371878024786447199220168559499784750417899432155010229492021605855900083091810234036842121714754088781610212933206799423437004497473747535448827934719022055666854643604753197599887317701260512428768441103566682921786535251711300772278910867952416906587097739025848276741259342575878484811482334014470344392385307107504933722512458440079999253800701797802156199694180781453096142446142482068084696575449259144263702380040633809801129265826102404687573377343106848136385076519118098656849204138675878197123580853259583743109195902512901949975370276601751511060843657896610994995303933823284856926874776973142189352240273516417001053234545732153082540587615241851199168463630727274145793757699124137754787799873679123313010003540495789912480919238516483708312512188056296267438124085562273176400340031519744119024338526699643234044514787843440066846842761408680363391539079217128835813128548691654268983226306673123025302108171629386212829620191017390466923077344787007525395628187054472997452457344399506191962669549117913479973724341768454113627634701035191948800365354199080350328332644382299134874680879079990498183138454181576710723390968217613831843230527586568375579633449501528550151685761194495493614275350612955850717336273148728996422764670135369744436217902556094932469552353179757159358040935818623288203334252589773232966254908846945208086958998345685940280331262355330644366666428150825592906046919862244528710227506350598364807249739975162261700916117300937624581431375953002980402046261661057008229205064849300175735416923882627686340341381703118475097666214551812690616908049525645613845113864292650969575330719637276575611062174691157914608836516477932741331062007508112895823743966826345629253954865142206168179916110179464381457493464652589447249461787259455111727754061304329349617608962609692946707541186426996100552895886203951308552028011650244554499072533331451005603717435157740193721124416693214839579792997218473032372210747693001944091759391043502287846240313651891602614495639696248950863672154801372692161146255388400928707121923471821122121815892245271635230829752109328352519865050472804264672406337010999647631517901401568466894964762374833237595327580777312480804736026880743961522481484878258224127541008275525369378669773957539472401557735400929271538984661370552967776036213528712030972426061251314568283926191001243523020055782257961541667030366219194928593966880974507283646036617957208514692269226713769006640518860817984146173003405501789755545129574468796463155749536217661454091443817124991433540343696371050492605641944344315065496107686917854880680858863939361802561333161944583694734354641177201148312680520452648556194628603789419178997325560256754763209089847673442119094363459497007570036094153154709679148993008418469000554334077435096025699005669041748371131586366314407705684182896142025218104880898398300897059182122665655233316015445524953783723273859515932034434949007458155971878067382912082414370462468719360040604880637062513046729905170530183068713657844637935976393843810203110965989072002709404143215815331453893979350871871110415886065832225664870703881758172384668796004121296045408288790979211879974621056802185629020935054766239097378812599602526351461378560657034423135237476892482796840798349190738167143670572843881119354513470447203592861130701215764107966485772004364408209688921884136013229749850190711048303240263357784978575651343703701594471656974724301773254867918015065782827186958386232138233693676507733410149529510764638482509561306504722322938978411507062753041668883600023451004817596292872873522033733178142126738676924414695120872970630532114060900860866968883285289644461226936736280198830336726453914728019351893533512795298170665168213144949935619545199923013449565315805650211050274838903453671044229835610667276380010989655671650653739745665465354858508516407339556973519120048046256905507413183484963423992616296641552360307787113587367919632946077680138673138226288451213413318394371900816100690595817301122720138261788445878322193333492908486596157522265351202825061762582138546457645863991557261732321886887619161354741000549513014392539847587444744034271999035930318985067848997524093917984947793803753534945037847484867830340304850504199490110449043756899024322695071738937688939695499710510733353180919782300298961795685749536915153766729653045867815476562712408337123768290241922885132985127333157809183036990362186215629997041860533323127592607402035409248311822304225140299083489311264565954342603271301233795449976133962654731587208541889234863603350739428257991343114340055788943725020186947435546960180315602643581592826327050266402175237661645512070149805062847372620522975148426842068894076262320386727102187304125782075053835788705118143730392728198097355155781558622412225136351734528137345363788453367946633466548208364119270182485925600088906786075815888232642369118460683667077404976816231563839234371648154890347853635948257106290816927975934066671337540580744122848994905664277857958563049939880420416484945087970442074389192187651932900761458021135673764520408599240194572409024532246524888937514608112453221246900630661090244229474543100544694445832785461943468110349599935562965388415962723911156639148857050390616568840793517636413685157546117949374743762842437799143026079655029568747701966057832208394787327804593370346226476118095599475526444493616844620993098189783354173557019585536672447350477807203544373139120959269135328928962915124449665865752795776554912795261032051438627146438783385591471201586665333562333513116288433054782104106307226530701775984831893976155191412157165654950516924965544134478397265295296029154000432620133262186789621014684186183002625332190223848091847663832497985072552757847912308362336416212481934785389527169223431286588588181697699223273740543414098988109843068503099553328477049906240585730490040572887684532508631152567125045954857503638830462478628260636838154741999683759664664144428697639139349880633406472366157589777514698700182913678114243569380859866278189616438217358229350058049592096790233780703419568321630912208208143329135848083832913281545225217175951512482159257983276131399060678479304439648505428185131399288611249045391316621853287385526176313534538757047321721644339209335276193896691133434076364816799801121613836066379977640470937583573924318517881781800552910571172714917850592300686086603176861061315257281549717271908935906854713216771222641640875676970571223231740606339275318560670483918312728980992924677824848088822717061608532160725485942999674625558863536217186680703513913649255628769003347894195376695920076219357057154177023944845033241591098909361741631921842594114719384238961176096699364439805561382754793320873336654625903019804727236421877039651977529842363191353646414985272077189709859452594982561366465559956484335507801780928404002839343487095909964406527850024284743791507924704693245075989227374610169087129492658335653971767702716485176859766408354843885457091610557998382047025868904661904689391995526218112398008489938778891830355790920131604924552743647179912972459866539165525713050570998580985899959563547984608039632461388962386749954615698497420645857525617400141423674021303912805156684090223010075519744381938125271942763257976757818702849187359428079184620613942818256263899201922221377540306863557229963956142709503264735691779768958674688883296802555057589189487078689775599817915433880383407614420049935739380935434846080324783974225843597751727501369622631588233255714012083911110582554593714163339338924496446352057830270158513052125481061278478563987851967046625714899071548975765519762682283816183364891415888820704798464504446090970433959259795685622592955714128389706659645201590348883746330048919454653368723552841808248782566523310515954358458815711052448417168126564564417809117216055343224887625103008265016987056756910652270898939620147943578157210294696084821080671088270526534912816630991070817584271885076412528123855034737554207074078972913302022701752224751319034661040850487311413673636852607583281526970831439584090222003302034795791003203043486818961678416566473135270408291362164808894778710641800118372747871032249864693438510769253928230184715630355893318621248089549892415068214012766161036991316549115637898944105524311767043680283442715523494967723674442238336154610457065110962787093561314133906335319356283884329323945925482143972797681394069512158820052945097137093982451036766529222408148874062288920315898448344269044734711240809391358716822932531917047254517392538970081759706580297170187465214826539572599483838748375878496868592320512885776222864683912457316113175658437503478356275186838432714547225305293053356939337527387152478421740601725936149168316475338681345656441884459819328068640153792707138481608034910402866070052203326851501630550057639972916505305462561640214513345458325118424606794517666863575925008091076282390264884975536744603226490848546607169139881634096527451752753532641580337568526222393421664077874544372654520922187343635356439843645028957174018906662996489049654620565993658468187137182130909257413543001838509405690279917985775610924025651392579561793651651511744338985445801373010041803454415421860503400457566413409078388579259535456755470891045366661277675983078410969148705530716424172314798618425455746744857361024778835923951810306174973022370955289620858926686493479201386537265627706355236185090654311986826387507161185181526061987759153325982364947239389742905470819840253718061404107519669442088116084649229002115103487352407386450036407860271137575974163668922090080984847936655522332937604747891257510753080424497819856612984762776989270686270123625086353594869936874072589664660369369833469600197770276930607508395805866851971560835895957355179564680298609891332129693469806397067929259162661046840911461269139540879677687344392851679585336576803196043534545391764021336717449631696184880247738061183263708056311697552216303420045465480673610711451901097309679887462574274475374532550294543125347197839675730118893211253697583890676585000751024255585106684657110948347411633624005030173106276981336196640419113498168997141503321412858607604897613150844594301312664928759259868690429677769471476170870933330300940984215913967137841185223754240798983577176283251867016640903048312669772955539508535316635536262467883933544905698047639545795719977054179059700353111343376818277584188062225183558950851283614595667926027831059694835030076491700576305326460792375933997350254183725955648933336317262654471394830986025038956098031009683282131041582331012795188213716350723421520770864293735249690859829905893168926294848682495964784378710099525944037415709589150718230328290902265481156642235888266593004565158771790433258367937964479196684686073463684515756554535969974857459576445675058651058001787722499457284659041479298578316478622203740275722327974845879187661462997600157771394778608092532501744010816235586444786991136681470266009899255241350502806310364099555982560613778682393999604757392670021449051317114676255481162283899103221504318780384480551791634891277832256685010971335213787242170063418356313015863281555657075832619601102708073787641874268477883401777634708565835500807100796695777950373066481051165501800958670465654015912850700013675004661599198123849133928619885297526715691686503768338022501198769454218715458145110320878888795089094096415015160389967440802140327758988001772619778954556401300407126925936222811277500991569243639714032173501070539209203164417289714124530110252354761794977526154708026184849260199619583510950719432726277873186974798612534627783266963999667272666189980786766116717590998099606028993568316426044906796407805195937694582691884691500037758362832531258676491955486209609545373395815915428521790753908155378840135059305365826275682299993940453076657785049567510898263722975477128793164543474632924930133783915028965172643308864007599412042906569644459413255871855655105856997167829977101462050102354875446931743409259705165194358221775546269518278228154909884483292146260718761973169929000006905075978253144603438033931858070752169646307663370978770935494270323409979603301939546791583515117734464725779090728109875012114510050524559368471926192157240213193420612487145722170531872590827865525765047791651619344275641347210426245432054075189413210304498730250327313438105765894914146177052220706611721163696986747499437567028556353919899290448282126500619771780618144818370771421987177073262648147512606371787214316072930028879758941897643387974103169018936450484567602392450005652197336395150012245372401553179156075099947284636160887559129162928837721057700394117188578858357315406281592275843783505042297023135265171233632166776310909048750974313265098660233203048400867997526873164167855082547950836367853490020029012388605112096968555380696059274055500481393572416067661957819584097351148226648838325909875938616006793961663142301666499523150014663792060085946886637025333587631920320286250039356311759887451975931866517297354264764215668301927374426197795582020264418330815671411642903547935137213565130085100271137900947235824906911747106987008846911416797675323729377512493040429219302317977720723907547974759143151369755070907126423469367652586181454871527638716811796599113545906943462772816038247827589096175578328805900637376727598368439573952447279366327209848976155039014840839278203360869069969769514943712727251545555052652704997825384511385353324357376567318776197907079610099561401311676227063490682281695207236722068959342399151784352786286361527437494200032593697281498045200282964999548765701492618613584658215026414665846410340747579107520651617994822600313242314268728862726352165070321223445289668371664002585182416730064954788225815810509187969245340955499290479278260626351034559441308874907096426124894673451855119988696272356680448088743048768552796884332283137541908916490670122676601059699677512632286203145025892549481687596914214449993863035188454361344446306657959070300946317981816861455277108860496413183997734719186736188219676431259936999919643632041893844915469288665756629008075423470395018002257232975411384144922350878397584220491409025089014758093335068449797513473516667360976341764354255629714952679629118585282837972885604437680868239708941292433982530633631662633945683399369311328918572182505382822973095595171172672555659651419386700251313719960739262685488716157769427105493249308692651744903062171302878588178491947529076923104321667554641612406523376495294583841116265070525213298524662115792805484126450510477804401323549161211031571140688073665321475721875562115312591129004943956706156683263830508436496389847805194246269662710255288966770059145107275239652819997648504154884667223167789478745446902407673295465735970713683500914243686376121022113316836850025342342102092769996306499463017606564239026912791512325687613971311990663239289158114221001970902294003544271513031156856809082213343975480624127420045170840732504231172450414487560487296510612403341279492438738958409084337913940357487360426697660462451925425346189169501148673361628167333415864946860388245200977941375859219624003802272900685169098643058156166182087922984682790972029999111183806408010996570417882500793052760312716470443588546171338490078431950519446580313932494367063956934078455696478864112488507506724423509690237876252239675109730251407875129333241306029302355262173207050923083619911604982770725903877118972594743577023721616604165148470089661721922923379875524619355097380411422077732254493076405708698291501847537505730667931401792472146764091691337002442571688585266166256902940295068748078105046759920280750683451778871531269368196827486325253197780247402588317649478542002282841429142152342805935241378859733711329908395681020477147244454294382107362958109585849530744189250502089324174851987744084410106043286614440832460236123220120612805155588972193011461103983556616319847867409184790107258891160680044916479735583928499492340180348966878500473022736267843743135668768051570102790550854097745451789060639156034339005700815261546046242901816040534073430019034995785136257300952490171583378109071854115941137423077172861120660970360434520717150467099327270241227729890623082829452492405851125372800000572538880710179751868274774285550850665336426794225722133043621838003269559478451005140332979780535400727779911263847750175187901839722829676732731624667732305368567328248073933110289755590675993066288698478600064378600916106498789876614047567714046695244403159012829864719684359305551328456578651611211263566639537965671994936275803303329155153374035030493964265463562285014956971871095146993899357795834691203403439055699905524385351928196812515357528325121263783963830320071862075165541812152275761439767444325959438064640829833822682634990550854741145371532454453673397334319179640257981231469717861651393952829353477836319121030997916685232495440854034704380424793030773255176247871244924101783904799129068515456418574739835714733716277312180114406952469262655335962892165524510017402795204971469089014638693723672173455290264688794415483520294742804274599066253329349464970272302779036483498092985951292571811855521232624727901339352402739042694748719598062512455854053731495260713641124982655476768443404746188645747231918149113790642406592881080055354452325384096268964492438998039272199298964464334440783198860405130620280292772373536427628974699711770153628014873648280345103298531596261426770750725206943155029477328152049719559416870700955630006229917654987278019780404402036408873353104678499333224202332154583680899942997983846052548460722317759124681272462993690668330082140306590672772082947562446307400009394813662003912540699521380642502803131657286879000901606226977849425667695642849698849750263354687643975303286977130906321351670218105602810910573197148147530861784225969239430672995851286834241510987402657155371032677856415271388577338205946854542268394164526576795471464430785316148773924538921142481302071072883503340452320542731273172998043555046782590432865899737523438068463977922706164393189466104389864342389681533546548645680435028385430202357109638683465164652940927551442474021942048002584394753303778011880444347557425926790093223146427055158522034712269487417921044634997081618458709344153138183567827669432019483288954565400900379953110778878677368206868677303430174419477610248805721307965710198068084867158668386112190378212981223635296508147013477504867617233500298843491858575472643122182867335543922810763448021246480712219624561968773432984045489479557418563286112806432011849889852137541020432882807727716362267953744514387240311227998063296923399823989371381589831286134534872435574078026850244421564934898351242757265416154006340157437453800728400636014547094215206222984752249957420132478040061588807933311088918487363816203348929998240355502746132128298905766705097654321604007092071598927820301393123331644093238771447593345218419408085399933401556508151101443188553096170550772329134022173724992676712151473087734328816798392365444217952587459512384581490926786813870618838698944396971243864278487183516444638374361697115118070030666551216256011768437106237209858188738096177890670253012566594360578264678819970247687749555449378970883057484939535587126183247284587858819611966850288829178891598794250667698563581826998759883113796980827414705538769042461016022588311693082670813813489068765307380671288095311332148706080120470409630011443385837861971986127240979320855840523052598347714608065877791704688321998845831192216663572057909474505100576671620422669660460985141073838384301444183262034209876859635483525464873891213611881345731857627495456187707378573327835700940519416383523981903750739872422725919734061676885164924064947065837924798200632746284371105405772820680384147314280685922992825822714667269034889879636583297007220044402976029342995401642613454418196609897012963442183533283598675719098620114984615866179593197606580125906190380081455677790235649298962406503085446254700038596539974079796612829789235134984560398778310878584218322646993615747392840142459960933614855275063495087848442950941671801701666143603898014280538633790088133397976190231502352963675800846110628020666269953431330893508558560656069140930099181146570276415246436239554172205346539845969057396624152680294615981480994434539244174836411265418620348113162737146456235005317456078437800105047392477848147694966642487331079548110569267458086593316157198684337630816977146284137113761658838084524489680287829698460068810405980065344290935364363515730594814069328811930108244423005798014761284822158773909684921257944382039817588720983293799767454203662277263701711701250439212141762009576486841310528672439168847260625682298809992968430470668969996238593513450732089967401677860513594910114703355628166388642832865201099606376205946908766724617763074710823493601077820903942287870447994811480950631388149741329834264058636086553401703003552334108198650738508824074748756645492425252667182781613956922679003291298688076868899434071521366514138343865209390888105434936871771653885171464951625437971833045808478368567412071955518081802834448049715611317608316276536765208474400074123502068235491529628855681610922123320564270483316264920025698516110477013068734674373202464697187932323038711583502269875558065784311536662440390955982926030838311546512221723679537786326017857111386045236905544421251827691961357123931557213420158697650687519192958425149652922143423659237702392726945464634897897322888378664440784514374323708081262205164768629787978726785270725260985069532322379569685643665569461965659774287639518071776311705385517648515305407305746263942203699230033546784709831801213523582175102049871797592833745335525717631732731520168201089766894303192621738258170138700941250856092561906012480590508941612043244210231660482454857561551716630562628875517610223824316007178720908436319820685694382639404082641979119076623737351346459213542905330424913767393084753937087674624020182201893757941466250851095975470219694103510594760130092007219625533499491017829696969190779348119989869102925499175010856419883606202877719024999725570687588094364615365518742271262191287480785890928663011984112472495545212614620846827317911164489486070410640672100605077476312105440683360326521908992285533818917206366807995509161697424036243640686269536774690034705026100466343593474482666631839358382360351956947148282987736740168431979480729669609679532924749929728325484934780311106641088731756145471488005565347391625209085531408746537117994642184492214068659185660920573030598163502491745832341786143387718276965067137826713338926161548196328773262439740011181579601546257832830574182553427149418648789035607247077156409727481773800916813815878493910993870785296073903679137706774478761402183369268658298936099299568486899815912576855507504249015927481090871063154953695031195871430128780679302717904533900466637318477308511304411463715012840667176382688720622248967168788613700879937663110825623353142617539271132845460290421789387389438578434258792451982270873431746172863133221670654903446229552929715325533106979809772177709948160348257429995648217832887275088990278947224622038127018349636052591503792730404133515628266377370314859766082055591393393376482435004892292813370331920595481606765396522695306651558876296731378020291878376167105655548288524193350500566438480805422284004568771021199665123440252019957772373408527777719387349697275856386716301211710729079777321105474099119075789742175286493540367696371095137405174423416559498015506697666125659779034275652555104570331252252778608837993482247678014362696801832954096732237734617302475058072444031528647025170614053684247586748089000298755282688300209243111674695500853686800489126615976652351213664751588533832108765972063095885507783964918444456972695673961346627721432992743224174966425907889846130883820320386810301428066476901381649413383742432737470498861633070844513638552015960244926723616862031597800711165004342134992418517152077989110784570935022606086122024314827645438391627865971385210629382977312247238242819787728526607491199476482966599290280405225339799986803778693369450532453482745546585885606359324803740777976612721449667672055503606114994892618376677342237052031040938788174403135011696957728311584217183437496079019943070335983845987209002779578265142105022129922970382396860015211872373103341190666604166270786474399459251092849523175626581436290512498802104856319947753994101736806347777400390089019243281973696191871568925437059248460341213177328957931029411464070647115604610954863809433743269268705247079035044666004641928858345991243994029011630401754763794022260374690682196870899599089136267859553759018452295117845315950335156334436773518854406522881638069443335520731315215129605933664570091274401424732881839570402735275564960764755462124020962220700384412588258590359842535106367571839716169995332650192247097562576677957785413336584824966355018419912876400372873732144779621550689928202677436958118348142487515017225577478137590139645143296028683024075316379093241373077929107730363836496377703754562664375535133994297536887995381417508078298197553779802837705397718422193021073520320280930026404786048807034540642876011323244917534902568613148287046995161524188238105842434152710009055101663837548937849817899988543215190952064126954010578084370002255784003658013638044145334781786760128387422930954201940039280162169592607471225015285401648112412194866787734739715997763103135678254369817544272104758922565263369836381939905097478291580845891606233420326871173079744064525010891335342821194312618634142827249868586063774245553518640565612586146604080874650411068450214250725152252768817571779719117217013028327789849444935637245995831462925784533678335622364043075310103150566338582563429144669497863451549469565260012610383569344267437847592849994168502021674070943319705560545701373930311022070601005100999418993104595929669795070510958521047836367947680899129201733023359325478754400517296465131658843635418132223474895070986551411847091440267355153056785512486074207032748231518525683698131811411475303597312955480803397079882787749337960154900864734843484021878770818065758084412905829919846225758511667795392387549000768537343495675600972978774328398339649269102544810063983834596185872421109064187566095464573112710079604503632275688842947742295943315400791756807148004531353285111404057158326036816776150745893709921116234497676181523261744535591207183334645281124237243560699873752170543605517840976611212785776438674037325059089027745246480370857411096296711252033055677445705897867374893256307033512818521022130566782449351058893780435172036453324579483566302947895483372818315987733854855451937988519933272914593627273508767087385661769187485079299366247833811541624993733532455648409516520588255420481413873176627178489656356476518825655262262131859379613998244023460106604264716421608995993748239148554346416611004095804132663427177378466593702689549690414116618708807162369367708639550773629006634121669234245713637012483387690713635622676906693858803501561196999724694118102448225955529203082304818669562802428602236398224084950299638697550933962649447640156201783919789375433622244412056831463900287457275107490085284168550194217675269056158210122463954473892101523401132803573178668504603174398167208765536203219515265894324508094517967179446271818318191718655463080092796199963079009170445111212632449060951706177979129048148100635224671768235833900498767635097581138755975766465846159800729321694518445462347388649309681197952036914693783932615926295081013737325211508198001625855911224331433088862292302905465761890685969401819911055313109049772491929362281192816795870080622510960606017915148991061069985033425131827903119424484043063982214699060685857542498614632831202496787295174125199246350889221129513395305692295402548013465061019186017213773363803229700408770278314355642637594240637818617779807170380015752479675072537710433556961199777189545350616574793198902674831607285686576870963029991419093425621443506388702754905456277041909379941195496267769036705387451565287828018602925029273475715658716472176785941686118275910619376971175668435384921718332507324486787750279144450686954762738899533153721892794282979306799205701742258296063078067116787662040709384980319504059562589307263696313008438083019657894190488781094362181291901922619277431178037458573185584787914541090026949754807945530621505395339487780515363781028814966603467319686409330280762731348464809241512544595639118694150714305131008263178869103119301167253187777312183273106126636929033811323511528448832240315644074592530356859680236075992342356964000469515074228790669779355525322706078702796969792678936975865027108638101076067518662409858705062810985509390527939996293005054922975312062171850493697427265532990305688952645735500336911611487158148851155036736275642923293386055498083320493183371758182882985016011952595005066043729257742059137866556364883849321340525216790473069387097710970815687729455912456546013797120055282632161480442881948607480542329302779984052307360369834968202680285984789728576059364389514986598795359782853213639701896712680689349654493991926191893798947298045850496072314259859962583520372865803323239685647829168911361880588089968508631947313315738254919370778345209228566692959759734736232484305038135931737568401650769172702326373110973524228966071709100328003276650700521539601271668736476251737566228382022298807627564131733590942482111555951481423572594837789385710387736734732101907162808826066782600441032735552169570633662136343654801077290547826866313627131283463222722388374632510819915929095573645083412819369693199843817497867689088017688495523154106801054238939808478667952510662699379061002361366078066551774983967512919969539561396950457121319971569013416294815379117699829436344117199426922653157375872983325569440391020628484130398959011114916173797912481706696624396202008972759712359639533778136143826429668046627226491596076694980241289309033569149700248299051993500211522311975264723702170136686736550975433533831566412103810614611088767355067484449946581667503470649175188967777832606957037801588909798176582087012196045964544789945644578868481363467944334382059490205191968832728514364681924678429034004169103675880637011853821963949968514771018231352280679104245403066727418426472946374371872642689780301151451920951000934491235151566343565885856840529668108208468001126955514369219794054789542380979215857350106919548001702863617915063535707519515636627727454733790140422214408041394738551187823580328993753060668824198454923772242842053237726027781666261623386432711307434437361864570811851901481829060657988969865744217736246722343588269506770754870646958842338891881825268746396563990286699511142731998073668632129514803601272525170863527020352423134336804971903877334468271125599982559022432012407413151906528140826138134580166595095060754513021353645806060333424605093164038238734348821373500784063841089955193872900105317938341818787954278310151016953841371156758231597587469450472861473825154438976497688188123071263715464910960231961392211817036649389416794238310095451764453448855972916250207207997783949472616104496158725141020248950779722499776414895251277163147103617144970846001259491668924702840546100247274088428696328729623874926947164689226707334124373507474524801133404448547826400998834734730735747463335022989593841303443820258702129469033299269863769099605522431272870848007736600402751974139339718245421790034866221349720528631463943811886973865087860122192600717995836634673066748362673706330461475145561555010811863792528117607964714034056502912541900240587480002429478293297393354292597492621030297153692076579494993167808142993456002572843915441597340567087563910487987920464377019387702425430344983675851894038688268060523068186248811347411521012215536987913083274178534059941659021639147007338928150844892533594181067364805872959054628083002038440534811615451579422011337041824450881643245952378068071520558768266635238641054230018298604576659997188380533063304723931425029993692511933465980375685486089195512349516866158756890270127039997040270195174653455995696969219518234036246830770062701024830406671938592323849318723135278625658301961899627201417496631704883829603314072811739700312499469617391179282158791060275347931031614602068478362582164069631361586936374436377902266832493965841163428530054113528741351277876652257154498964186750680340637473718107527772586920953320616004456555902305080282206604184938394533371627752651693606400362154889398814607321714566832417914023904403540755847034308221582023388292014019421002573143559398993344905103968259749217052277511530477120629656074099520057679843315712765242533588871368208696411738202373313276617981325918055977420770136582855129658124846461383534477391611681692865276855654776246810329000157780967531088290152682588037912846308235068083260264360883730277508463068818743494377646483888788522985057159953523974498425854590604794952280036499967356520580865405102685827538391527202828774371008174100211736255805531689457804286864586931031545030169491835980131448620853783859633014789038696680052147171357862967119313347315155037063498568466099182668527121622599517856706479268224346367549048223306495482382966692246607924661027614307637248487029672097969752899020377065569227837642646646517214540682243498110749453030299963095237561993207430167032748838959524807170487850452465867362668314285295567773077978707303782861216786435957325977668615027737589663002441203353411684985098996509813262926748011955885488847809441582015343867751083389143548289627740443221706022855609937841536308755345843559240970184089869666705908911387215929496398264709636154153620691331122835265787606703339998294458584710131079438643334257710060894857447625556934506665416859691642503886816765289876176414990199427678193872030461986060462205937564717365150023888116545436937394771969737261259178416405935765662490078944507262841721349726179656678119939485796679365359756274313076775202388376494031990192144866558665831776630779949951588346315159268872186486392842348647019700922794936049879750078046775188840761338107814670131479607896907323868650865099076937472922871999068521373148464021623244587820572288615373716720328162637910540579668520947340546629146717602380370122417163242948033969150360042394872133024655616346480160456842963677740950683538386988761679702055951656415397706513689100666620762423408811001548981694517558493447689761483562329332474728493688340188326614874706796154862258359405001887603232466677170128754807269696042774069273913826841021861773061052659448577326274659671085354167516562084159674957024997308886271545005599440456673113453619621152889095601939900378450319414393875424441390023071305746828327049086091915786815760904215668613935190025451639758841185094086182253332189250586704985558428630962125835974038953419320460159236448125459452639514701242927320285603448588711532654667597295058028680229149165125239818544725862711846968952593636518181325716310064356906100261446810480358621521662317259151615494843559817098403883205165844423902267741813832830563041830572712274375855188904327201258128239183085195495627236342630414978387534605328392899937367491573086722171514747762704134463218562398160194929268796691482926391435734097473504285424393247500008444410177627846698341165645395697053818180598566794672803161262867963685522665108775278559230368450139926981381686679742222623135455680732940527857687618722415333363433144241305612937188015601791446328784132032357139179897559725081644863648931080751324554779177536629025312063417606812590047468310642886465877516355116391779747018284865274994303794359558512913032497152312914611159065417186261458213015975603912826953735924600328863990506041137503657206340007106637369056261554172971695888547960827968962096545723570637579780260312668658180845371096131307063596478805363728307972228818747547749054419199332923227383093762468270687235832089199496267603314316186134115433713557266533513691400402750442265935406385916569807890309153060686735402716808135493715111762899081422378830772366340603292581215191065218111576171239531648288132156728472534554363946469263280963264369209158350995815200489583921924915116736001101226840304112901185656696643343040885813328851791831927705351291883488784040902996080597782508151267259013834545310301778387038315099354280862856529221353758429155762029392355006630749618237871884018975060261190197038487728817400405221692603555408204176373384967256963422255344830064050933631682501792644682390025292122960068365454967740601957254435332714042645120774343514724824619578768672452041697350047835370905003292130074915410482881768297449243091882181503075608091823471710207664027597192793169097418614459281721334766016601508959495076632147540843020688272453573967222984111730689539534421422576080682360185109138254532619617125356871015158144147719131097856555799767207169159726832189011912554140455964596336852253715546626969389356868830083585132835057243481635281645282112290920983251937182752637970341533623331066646987739913769517087926866543468988048378139634107359430203567912345566008738686846126396439289005591965603211669658961811685136305377710833910986257402040396686812734478827425288066672908511465526991974819488587653005930881976382314584543928486933116265377118441837158650950583576018338562211021024180462413970805548551356904419879261409377236382837681206793675889689909104693452329587074663878107959733051181449420889877390597430142844349372202981650821470205187272245864386178807913372407564636558755161084876262616558736308624216359980429600468848225401604501092420104774483326981530399834541530525534232130159076501981393875182591031201250090835429371519563564308845588190746899899792167867738643092370718869939129833217001458720168035587352347826653221696796620221505028844237041225868628183543582262944299236621908480425405034239365123213761880042436349265651458079184565396039060065428261930797055437886630727150069218808498626010800073333038549496417399565020955037557212371081335200162841005387436945370004254668621315584631380621034489853855233475118908375058386491753257383944043924733193128831183730021340646660974840129962648549054718387327587136794409942705559780961456926759751959878178447219051974402673748817492746390770581938070560611392475583263273318912336178714994598395708475987515371891073583998832934886104302230126058382690301643373168007987596466648311868772368792035398399936908853221432878401832120235837661612329624086431364760384646912962656990559045609145528677564292206126300464621509324444468629126564296092441874083628020430057720035214892276070287800400037579096130623818865706905188007928658446512524553824643886956993875251034984279507391980418501745964983542790358092459823244333098663376420970924318119926252896633831108098609123744046753031546182462325046418620144906032181170659072157717074237185618233695022857689450377943866322225691190852974596395125168236966338369869079725808716309056211596008887359877854149339535963763949034827365524207324680933368790303235608423342624790556934755429892884709478308380784240067116149336112186665418583312373241682375163595801173558068944553483426454324579498938741437085302948099552718556587277898533017350261063587434851881922027842925540394499037652798252913383849142109739657861965407177776723532268140651363867092726007478997798365465220102830910112834257285276801383424150807309647149500257587107042690541038141020412604639386376819839992943349890302405946942337438069180288919376179824323638093223523391175033560795769959708728402440006112527786962102631868805532147712373067722922548841721485754888880067690587401605777480677313265316443162000037747060812947830327065960472154563774302957438388659895229746151157103612478532809604964235381616281931801170331892372312531011246352139929177820451360715251909220586345109195656208262702201086550045008642485454062564598705630107499685342149611312084373772722786946392782448561771589764114868747937018255055084168908364315294179564265340656326781950826877600482942172463902020801305256738739656454538614693557518483651854523248407650312110873129317316392704786259654823082084051936550377510678059948683474492800822457366547562012728059880545370072013555002020585569592781403731090063922894899880183289843013647727122243619433373428221439788449764691962314741226830662264630878363145278337890437738191973562869914516173469590124274984034647950790907971292143356419024924820728395460403993948127753229146809938215505960238347580831831775230134771173885653711318318241517747505450610022079070803907076228557900191095542901652024548797047615760947800087789286908881310732993381479377413727515889946501149092930399946713854320767086176132386887367867846243815099235594244825429235103206407222877551515387139798541567964472019680212615901902390089873952261709042530646900006545905865245819073218794306952911217889547906905512872628950862620123876226439043650065222360941816771466165451830964105914640036453456479305406669255652562791674888817116916628083743750575146566194290851187787102856366972715968355635405402593494033918704557024162190213855130184328254615948831520332943550280584235573943852934385770033010877531605754646346092513028223501113445907159112787562493334055812840308101259740932210320728918882397188181765271645117426940690222170244899109420927794360636771244928129406334671329869402867176323466279349966544171973229800471813706004382918911576099978734722190255427538062286498427350336849014545983856750423008108609165702554002801297136228993352733072179737071285504476096542723131025172266309784138844488491372062471172497313082504579118289427018630853696806170699127499896575376760776534890700063077481172258548124673610607678494815745133076044002964947434329207092695619945364199547552370600574328733840690726306564869689854888767512116225683188471885073855933242142471546188539303164100057380267143677065788712492117249887492411387452405385930343136543228373110089393886834500091704367132993117388849366746826756566887605456678812034710065048520264841926163243691259660125724700780433149739516505593813151293970792705245632656397142175644183476898144326652700722676551317043484628289051215698188222408527519164038272642088082246046726813559000218500626406196088023718632347825297950314939333176418312514875668370415734166133980382048418858444470769746502095107969791884286291187505445974310984906236572213756908655559728222219503884719082662943625086637860453903025634454323273925858387240260493817759061035490527956633494537290039915545331427372944481746454278060877871573273200510864645106405026316290033176945551130397545106720531798090102690217485206925234630645581080837205146187016184121119789959680291056968177279588746218832946361762318752127088681780960205136047922550268691632821602206369125306164234065291518532448045454087602773982529897932827325899369483419859064211188313650160636221098649860249022941456194309105126262869901474002360604223787213648439732898591058481124633488313801065292750806686626332005292906111906484132217740691796093122362014656362548275444344264637836264964157947170076382109516591452568898533853892850346703127544995445519996465480284115019957482893000575233121121858004552448248094063724655243119416727020589771629899480950747503178096016577449891670782729070338128613988079211485681839383353923895042757454818352975659942773288024127788884445288034697228875846084257948693752528772309084493250399796765881056081864144113048268451483137694678229283208136380999155264095840561504348814079365267999409680113211039797034714136561808525425035089779702572883892719851232453663932869341532655287075404582215050786819450355899478071876095017783692585643821318227727790118743096298478149808002197402267964972014691786113696247470048142010709508688353330889727512322240169771444151593990925831300249603515044034780798792147863292560090704221593575958358884972437748677787555227429405459932110149203596145773913302962208944037158054918137341749166060470833984448288658515043570329106142517878024335150415910335612639310676841155532520169916907488002646002955184252712002628425857972727570847577558706349240789256310910553159933489119252258873204935675334075509364646562657555861519355285449028837318767666078125839509740489310824291615629185341742135584437557794074434263418277546849169085728956343151234360100416206898154597823852697142764279918220190781902266741806429023447432692498951595605325119796355758344044950753142324151135881657554950444282183261084563541681523009846515533433353661481620872341976107891003009152384606622092465142521309755329788644762173038015021279475258991628677376772766620347462524393936739573136100092082412178856923344880254631631020760030447093822001683320387454737247868919111326932526459711066344730400398706038503934046317059025566584214338547668693638349323979684754108743487829496402501525697479587956450387796735830197711795902502229659584464014603922129583597570582801272296920058987111452492919749606140464312332890053790337231529869969895840848854758135732222616452585012471215203511350062998370139703038800321153136648938208973586860942215977812247800821217355743139061007071916141671487080495242395774516263516413516278978454522548873804899097798847339714703873415192057170444427888167113276505823269047500179044718205320923696853415419465497298880605399697690382137632190105861123741149837798736857702981912986141735903345182182219756220730448414919070390257183642171847292764677866725595793688793857661504924281820361742376078655163287527779669497337690939360749698860021619250904399553981286269574381707110513163771793817618085707179131491555835977925652800261555232452769526035437332233147110310839447016410335264644631539136498264599656865183165226720281717729659917629845237502395908286210602327613819816322076299785489461638104049392074040788321796290134845976562747526633780398213071816357433400228581525685984001968734179302305827669635814993026264746030722862265397735821739520916223781995632867625161839107652486209124770619346119316729524845610325161032032091152477458480059860848621036226564889860106230975715170605568233662336881387464773094446639768605713718659963746709704436860727275372235639577853925502660710291211076808802110517298978526640102006217524803081505988888654578220205255151552612943799814958211391965131669173711855486231659799041803539366912816381304426261214718953048335874154378252291504619358861263444488392234524446340102024061896025496515676041234051524784037422071584886311696751791243379887354154001243394875660123155099280183172481609764384622667422944658045144629109412684959211654664052241043679054850791132934178820675016549234468498210294671354340866716042485199673005583892739484024020624985519724459858819804253656086115282983471358739014249969829279030485302048916542639115107487515469464296308157673101477204946650944843502472411470426766999925419560291113360830753062540811580819148770435429723639470015964934731154195031527249335425775046685113441069935195195090801990214000064873921178289769929071744392583184356305179772294205702943372322735189880861949440787002203793165760829789075667287151746012404286093997515964140580778339208692339962164143281190353342121599484390568691080709424755780306663882251920859644104466583761354677666907524673510032514001916224732427479541112646119886863594017752515734079388672374775519316225402713879582997737229493896588320811389654027650997712414871310366259555704621503510666354339433351015036161937923944236353032285279185391048605241496035969619928459830816878793037603835284402190515702058357408375480539546694158577107784315716920780392657360063944551157052854479521149760851957331962732063085404185198026491968435091889035092578209817133276326182706254783402732999529964854251151062076694576806429737200702252586367753121541540621567591340833625761602838263703755992473825185187796330395055221547035667499157536020115506005379136168138109079487608088178141541984882589510280327413669990763650005283253291862017455165759363657979392821103017797570923285924110731384413257162002267392023139984813119046433483749065207578832873484862115319223781591264660976937743931359859168820273210140526849556938181056821961516051002214605242997347179728906895632147390084990131616088336359988083603538221843255225477465259143611211918399588886331909502200220239573045356081993676744023588929912520955533554180158416225576648623630572842694559160120060856880581603313426205584757000000877090560361568139322276987615995548021232341058965865186545192639291836873083726109554303978972728737387358636077277159132452858398621861078566486099282766679331084057820193884134443098434290129000357058019902460506814481023478154769995499621979467938411284615093655049470919060739984654572346231422856659113717956304661737126355738743998147413200494323123018842777364467240126938369064766267204980473271227836409142844790689444416470288091377403344189156872686594892682278235077075282578562378896740821225954151010045826143340130472591513728663661149071377354619430214206252701525329478302207969731027796687368883986789593573941994544756411524934019737492610414308166812725886457387950310949156275730413321279506093620750536786162695256827811034590389793467120972521647526698929784521910029037031872492906049739200888071589108621090282691240301834276449719276668623565545222156938110150018705658091449065347521438869665520240044354141788638291704026964944281025768090089819730449790694528133420181072661338777615010922612075002728698007074814591513130674303836857060400501428251090841574824539394874626277393764631305973465176462849745135866161779510467261538657696067712452402709809396509813357530957567298587335164042387915498848882465333315958183159874468263018801769055545654553637652932634801606064252369330268333135236604094748498783476840697033361907455111586966247322395043131671023685867973307879297841980338014606425286533441647794795175904799761398004193065916354317631980183405739233126390587772395478203384244666785780310772328039561146557653274613785807203342431559955334693098589605248025341973720061426140649975804872295985002752474619144489028921649966309233994323271832218617719456474243637915100271234231188887086521993804596703510619026075724064981536147926148462179126871926336689632763584544705902116741677142355924923564024811033541447392680732402639255982740077665500763778514680394566647435158802915418040032966489108323268007771943353709372843911117639045426048567210520532216728016275997310473573545936957344345377576140870674522326548193535727124870863302930651498079205427178282278941638438252573577196517690579926174613639219753549273102751649672363954323913986043119578998832785808992983677230761231057712091692717793053296427708974044263332348931704442959136329226467825044873071921281842509845772990752892478776462595661528048819430514725241981540462760901490645039806019086282161818010636060560425089677912189413878742560347661026548972953515075049735349290210467766168715423056114036452043888932880973505316072926244932879475621813190585216909750535203699904780570113499006672198216801502007258917709913491469315479918683740952544783763655795286306760742708259202889049892173493261433531443282689199737298919815263778978309618061704528079944993024889010496227753052049439466113212028732580959156193489227158283483326216396115232344343702246140426379114932600788470075957752166277004241653395195119896480476121560294672392852304824080220878241515802092130258062453145409090762210450518413013502437642420324882809543230611060876342432796567026593276245472151605909824482443447165341790269014077714706414017952584911826575165723505378474909383268178486034484319684996114059711713446392454787065479215431249568576955043955808509926166979820326675994138066824526498146089100567655874929404355151521126505902585135808885744113467958009339311406635241765205738951399142730280684227313655348558470898005330207769562700874842590628822100710964607515949731415915416719841182051317893827006431940473363602375375523856289267496542166753104982334889684454758148495251729945830488476998434824318224367124283863569050974546197690876791684167493836658313766405802436801549000089154346860685069785861471196206136401129821208468929780370634802939583881291232446459880936968658238433705532190028516515794967624788701467702600514959840673094087634783165324052928599327231065357755773551204172853034050371287466840233520703833524719988354468729349810588552695391088527214589577462542563564946558399735783833903257890142734747298030241281652964703741077262863299098356555003064338985881938345635710272529311771707653527087701012349895820470852284075681380107835400702165192626030411246695233877773951714046323588452712514540302093085558183706682900238254611748742734738221868907340610301364621487771522335926087578902331007814913124161225516939157189254376925897459297509506408363179533167392800931904712909926184028526038379458379878135944032125441826486665707014275708963358755795196248855943187809792848210063032035778724091509444642043565735471157568175407069097868436060085301658824356541002115606559232146784590436173909634763071448995600613005442986471319604718271004026228986023319375447196678697078362409756313248115622796023928564820247740627353034657663826631348300591671994092274019923073143294442601977781089839910359498186326257302879079311168907513749913253673932723794822906443569135100364209271214398754045782413589173782630420068200277029493871235013258875938667474459253066976567145849090874446568428556160246776934689163293797217376176785242726456599829226335049139510772656744150625105165074962595827496813287845105014632255066298557198389999830730188040531869196904921261390859475163824528822824466215767345125326814423515718315424138692986351745266568059334460656261033857221225587491043911223544213317684682120904387224227963854061876138427882696739848698930584052238570305577110051493245657987837248322279621456397396088599058837173760370397518384213447902530906665824228307812965044834436869222247962496430591563313106843366104792073931474738095955153738097911776315122602277957000728512803977676973367674878404196925214041156264292010934151509341457012898463233954468264726366468653673587243728953371661100984583745770910390328487831465759428893804068767146997195457840497062972169776241660190661098633677207251633292990831434437637744485282390321564143256444265516452956350567285016313559367743014473447511461558197397330737079426467309160494669871679966609788006680325552390998555802527476585769453413420014348063538844847594388375418175250260429817256316928489530710979293999819318041873229836902545636575335758029874720875209933539371399446108045013941903531290748302801081945222312577099111478033958917317405853224589926526242403192035423536889380843380884141209620923425292735361457783485510962768989835191051510665501422098101432977352070990507320396057263202869845462557246145340548720850570921046667988358509652135115693120698924095425714256038874253429383214060087389274835119001646454340686003065127743760176883245058636359607978137853141870248031247014541520049141210911344716100791839979739028959874421426960939302433883152705876386621312853578928368177104931416896912933027406723883954754412272422198957195240629707006136531758602676775645253886648696657034723583710626708623473996452342147439240564749005933767244439207994137150585819474374935820667175983237237733188307224036128521346948173614849204580135880736902641165041564922823530648629556913948668835450935672254571990586190508044769174284347594766779015446023960530998198119012646281425356312830712485472442523728665702550825284752794642295680599354987174984018809389545033649709537979415137980837734540796165214385474094725337339135229421675476113242141567512560951206763798973315750078399028519075225444719466233498270887910588961935372164351363819621360289638526815364115945441927881126088003941488145909604639796888350175614436147674678664293989538696842993694014078685073461542054057641374242619736459862545919512825059125118918236069091369294277179758649972048325661890978750231637413361533663771809186811149199999190488644729328275958091345459245871199887887235747023038133697763918166049321797893690861128205528138306932009713448157219035358948390212504837962920835050407147715063255958847413838798088067206390170088498920060351569078574153500609663233138682264463164038517305249755687667386670871108451256313039402696030886301083771968326761516895660157765232835214411912967364915386910884418174609180563265842244734990297788598765281405526326760360364433615790967801803897523743975523414822695504959847812585411679880897603883669868522095047855135675271742924524828047881055935695447517571709131760641453687851843006137440663962439684986105307560450597872771884856530296662562016608894683345847732293325465685465367065202258532087388908272037740169921881120056462703247555206415316406542710763651700781259084911159162395603324784583334945234690796488478398575523173657018280762796981078971077591930338805683335056099623338058580633395145545315267886108519180265355440402585573457621355452974525452311572541038106304605042567352163520248182185326827747977389177104901259823455359185085301133991440435805248196392983128896303306187727972894276280381919041207235273550993944651139515253365883485392521655725668803473110057667526889251823099764663152939104108089257441952334276375872807702665702726803682821933890099981680388384120981074023829363637154211498156222395283495541483215982400714543527827221168625791365123749886161863631481860190797288800611701341808921348701893548765445676488623306583523877451741996671631465946029765121014676473391775001380093130089122732246698919982222312315524109891591111554391077941002565305302827441223542229467455918659129603054336135083343408116020842636325873898557439989647004930122920929224071323804556734210202020514189867436115213453489779754389430596996119060678675612247982679998183356498258739300691859729961234734309178281541851267281219327109796274593709753848584578970361683281866148833734118987993877512163414203426122231686643305854243291452868927140094451472395141924424432976357934488854414135213207992116921138508815182701709972209304785200290483046783785039446981958858416462097648806472312495008948685373445589919307875556132962846052361981621287706495587097161625565054038209298114096790646292020301388930217176008895420464349185530905742891310509943027488683995385589714717848448806498235692183632533117465761929417867735806797062770058298563352017652042985946002981258105772424534835068674379195991907154505769261404671222889666436224372344303475127440481447178736617722582316794291954165530099632478864894952647499895846826944569294019890416858650941793833070195404829945289116544344768677112171805360934331963958847150924461934898429887554556563714733629578899845535199001693568009774885212070736698325203332857728766401631415341871014547443088462187758337548173480399556830598218223300828599960498010428646874403810347149091210029086900350259326138599240330451983986330024786894862346129808223172722232336628044257131990127404567349665268441196572981779232958345129445687437009654948090954565980814230672687008070271379773161187562420257361694369522664982030161151947987948123302259618269265299480902674125024308595776019437524605589756934222382090417322570173797240443885678363286335402505737644214303589839247502409134492294807602891494314757966461200294028289217109584330024562888723615854093007752403192778767561303950805995335958787647653032527278293388335323047934412783842811395307205705857056422739176929489491158844521458253750036808412389095995886054925371922014220216851365267964758250360105240455528304804639532900246635275423172101343177677304900050177076926364860899775683277778317990876245922414886365356265070317629621592860759881604070926613772766751277395762180057326246080990617283615960782573170091695921903361754546276002125328320307110040965624141881101118355183129965634045741027752855403317621003913191592561278687138587513789861995134695430767032437776101214973292866541333776946152459175185447364495974883980631546657852411318075873750523281653352788444449762147180362836917169574218033340527185634481024126571284470661230799454587486647940039429587905280533443289772332406688414179374299912517304868770919779130996317552466536709622158647364027062182795427386907311144815243380786520200179810960327601465842108707395036685015341896577786110425631754942694548658842175022183422053185867080064412190717105526774188416883272700798551036958567274602146373451456008705182037742436068160424034311523198181859138302849897164778072268956762711177527953293159507259434211406114983601748816225235423398969607276059451092713324016413234399583956255603527901993482414134074879873842357219438128026628149301094988677265167934108987003156881944553763977511947449017490452069594611131018970183353963962177006645446633892750822719941536581816709060696921593174054477028367514195797762101957660725953350079545260858384335102859901430568063460019567843812612019343734181712568834462410812615751811582395466104776917304638911326875409155709415699656254118639359960130971798016955027480618369881936968395426373807583594926023167410969626757489412517414175079879633952501624323495572110916214172088808566300029144069722723344036642193418718231936233720149738132734280027948196044814885129777720632722808167216386938167729048018311204049770313073258874385612906331942732687823392333013795254324073638589881129271397375887115495397733202842425600665531259549933368410436916305828505997169835781156902705709389393832817896679785236919161661273306487505134560480937897119371963999708985837864872013336306438963738431271776504134447453015520552458518786489380012226092199824866873879838266122518956216544798517446481348834332490985973873526718910818004114992554695911746130050522195920874998117318550428211079037683555330722550260316439501546004019003928946320363614922976898982284146408894662575916381841291783923497870380432686747157019668725305558581663550864749106086246228495292594684318547652618001490390449914201844286335482992789913539061172894388954872180028305432576924017440736241686450209645905886473711497444124025560140688389336340828122961680220588015845972374844496280884729304552256520923007045710524285658217634972796061142429281549503374476602255374479213572010412918016172576720472945730267813972088605443423836239605695523609676141580100786718836077296337335038205825166462041072186925514543602442645730332704173849977039018819830651324735157538847465625436476260164582751595656157335863076829169283888728190122431560215241147391925077988962897897916055462388519347085367515265675699655527283672749378000309513947322887567407501170079667448983702601795481066146784532657601536643352612776025695934649032154009316817939133131324958178849883895139421121776577351156123497851101901318117938752864130739565390241992740526127799838650535459010120047723651776720845402900492962170464050615502293599128556415635091684297898997324480547608537883423114491795734367563735049421446966543689021840406502263525294945931573128622814447107916225029732781578661092688448728936641099358409836340853902851913857400160523916950976423387753385178057020422154544662383562143442413899573196010929090985071559793026679354829717239611450048713769214932365693146195913824564971697729299361484227557063845410024579904776353193484389283669290008533648585250969777531707909057222959959195078647249872464079223107695232240711762051599740624382749051320608772554499186887314509882819685087003105133255505483108693994477482426488275232000650946771220761401783523819075513281819664829325157693649713425333917047020563563399229599762511013882034316263226504300732178337397567838368139956015343115613230980326053025729786261665995265780124353995180877512535827077670074006657631618152277662699890757634912384815908021381795723197332806241627838450554309982661160646935565903311491727328035867283329959353514044770008720849117786572657410880345967241451553069672077574931456036206479390754778695306517328335154375052989421200641232444561696596296288500356501410975071577396344786872704675777636043304329048520053678119124886624072595484992419863780641417768401578592564248377857892917660021905927355615206802365286188317341135780978838150390988164962729340642120586887321134559784476394022136350397468470697411917600276915179766454444735179382394521678719256275459326125262621372074139924268867176632701884336566209352853326797557584954673784526100862592841467353554417123334343146579630973610036129164392830658476710532373899280084409574649343500887225750149546980030040433452725725646959809433644278252206882295315134468374344017850240376976966226043312483659156290048213686617948971081856644924430531396342412444703366892115575282937685006720710881634257767354780834240125006931763243922729913378047432142247680918481567758581022735978844020181828773504926669301324614822897895662303786209348369625679803392540543375436162705376018355498734587352253033191665790466432804672332378587791738930253771985759475544245327099390473446777500547336260231096411970843151082132680014344322696176156170166925373706516818019089242048856364727289446077753378651801737204589221272669936826268509982437699583825849259925534959366280062106342940350757027818125557151772981924732369707220091874563294879006837849717965422170612278544839720510255434269290080051025001545421356657734504137674335960498148056258363816553968375018354930792394361791640239317349681624785075815035523731104257953632390259977686723863762669623692053945177426064452283013377348245337139874295122288775245219875465655775344599822043599089872852769198375117952089779833032191538896610686081369654435052179270025633323088745195350160457325817425371739629058095597446330146578553423487303639548987528606952992481609683111802774990573040111950522796252256098808726658097046677232053763007106031853377034603912557417807651204982214153901688380362609566667904359897571896100596171943626993394906199035739117980548772813108320733147954074437897608831492702607353371080029440835799102557930819679263711504935697753751081427162837539585996170995476235203790286321386862847118480959071993294983427009604668087801541984603530194856104080398992546662292552275532261700439561701485098859212269195091487140927256116697391741436359190602236833643038845985272508330737152417160081063789799742811369100301032553978257459093594584636591180012028465466092976852727351274407396933237032274173689046123849889675174800947821610459164258805479697693243926602741660045003570730194136254976463632378496678137906477444005530680106771452687040398965510332330292722445116211039665664954680409473215311434771303222596208651879176947494068575758057334614704191067433620489946310917290096107829627396145401668013567224348608874511811763735404516931869097832991875702303844034748124107168506242313372218980931284474432983737412061386368362755581763457107418275405413843692712622296827498662262557393390354352588861176659589246364686390168373080963328008770191432238460929693100010639221912996450216232802722710510828025551897904035776163360558404621522432069295616196086801799394158146248800487649987712833513756944778196335667229623149793676040828595299258179767593826911814675934901925185012541824907964755700930299601780523064041410948238795272770033937135311204198715411663429443900784505615887788444133197226283310792691485135393046646288168838687307853740549913257570401197640120352434405498814257529385514162413330311068291429830462243523574198253642142978651846952190112573958517401257972882523283248386358336015615670500092564980301443809937195422782697272831682134716444040026006813077628153470794915428223623729286911630113596640081158837644601711168175745147364613310282952202079112232014203966776837559468555108271599833953774465627046455949494748280852635767407895344584826574828607368349182718105701685569472135009818670492986637496257660315507235403212464858568584983976108833128139597943147059521570778700141406035115334968231856707056793732011629193558153600254434910309751224903273978748341698949243378597728055102413410801687304973662684308249614555770729113271753398018570045378666423687901332741186280114693705870409766678897010577495989607943917163165194124675902743271150506887789465006327939805765309293263481531401154573252346436115042789357786122954999647941296273437557781065266423113875270224380636292401822789663220299950890752409478523296415287857567519687784089084618719331104824727495054794296820089633726599346449506356061801426341524366377204872936053622474157584786918724424683733210410287568984979206223412269456953770523083321897221277825264803460457680224144617868916984709984284866943719060624616777852994927984993268491321559800682375282075471463458527007045806570634276839053054269750371098673688272927768893649280120876512748625094709687424006527358785283276478784833600471899312233461522924200434284901186518410555367050237564535379497863136095159182940630535521066079057626104559533956474051517075254736634184887526940657666732399883814460293529625912941645963567623706140859832248794635776028336993131028711945902512851340408487635192244660795678568170952492664501331299497830232141489635622586506755022786360351087581582427161832655116419964585194447912844423752962286358777074072409961464429879314672904640779354934681299266164255629761594337543929735729158866941929794527928254354227433895169895813196423407391374486620558368877586613559468904746347494333130794146299482766722771288505387083724846424247791279875238851651704838831738267435456961608619023171621645860075669011852576067550781247228945648006695689506191448846318097391475464957686810842734626165965025595196222718007010706091802435372803291153956904200299905688480132916516845294700993498057501148493983968561065624524840791275593673928474080825332208460828680312838957807289252015308825121262813152538715225381788459343171467506109861997335508524047822155477615308113415925818413469480445781729345859264201350420392921227298850265174424397142115012708969220335981259639065289827886939318935163422514048642159139052877411307900496909203200845129369998736097249264793973060504853977452452913711395191337373621705474627097315962022062636917586471018093960620924798320453632200916411697794395322510009057366032138726451165439889397440238548707295708401969236077599147642878044963821832725093403116601432323714284297808936773865856989647012722851186091127296420352906453476213257841668820719263938380106440815877152767665144089803864781920018342743260790627148524219938737157746660613921983713935693340189170893502180525369952597090707522047297682102510094553021711255398851243996794887504578406761896173102622864197229785469827145090465403006106204610960935856248405373608294038185463598775161952030633229744936212026209889590780282788216550654416665687077127965573686954904618774763193960354260341660924716380582980077402722573008475422304946212527705802804486450593570078330098535880828127161656533810017516614715423268298299826800602048757593017017255181732557868705682597215070672898540818410002407624585199876742488106563224256692889024003417607295876157862542208553984220691481704937859611196229270611237625992315103070295291881814118278891482944956301690820078027618890092771263547693452927030752652074733590254972174555479415404988721133236170970114397287923875068725210286963372311437026474449882258535092956056485377089205092350058071580257971291200643762349684444714538225641471702575083783155922280686815435844630698150781905173112630058182001542320995020453990149232983986469675814749738772782529963360885927225506169390562538780263645617777340599790667427486077863479046015506328191288677633762365307556364120824969585323880229930364101480722284101815233757139902710484290161349413381661306599037836134876990506911513063563978840154057868878339517466065671857148221537774356988982817289234922324399546671499799562510552478079527943830898527826295118722388039795229667945491944656609587389269716222666094627534007974339104653531881172820277503994867951029569583998781871396136082134131356047883968048366165356868974846005064036052835917502153424552258650636661421668235993919255927901213270915100467299613424502293039200858145713988190580553357283813553240820839177945308186544298610104047162846434605815848355551201140739933306386758578377903944610799770487637926135281588589531343916146744915156014978656998977916071657094909606077874937159719173336448874353654375018064721735298806276193559696554582106834254816851965143770715232525157180437519569706201027185875301363759252113713139510733869238075893129400278690398538845363168309246995602374986469763692853611679143999023103015170508414193700583759330865588435681490974714529940626708467080051076006291765108835782377371945142023055923845960437007163958392993911891163681507978139662897136362329005216278958824968850188258878144803574551833468359464565077613944128572646860056322079661364566098911449436802611394236910099284106548751297117341612015721036371891984940384829929962175144456826757143518011974102315021584916494773478619740431394155174853511306625408386931074929027464582018071950090700163567735463144791828125319305659851082683793104949108006389387359235949056736911518999377151819483952337804683973905850401094596368467267413896546032872134878640943162807804668406318148611979689633040084504861061854777751991500267630128839143286069798204623620324882169136166478440440388874070842581857026787584061676590936746737330950112525894817891050633629646708983341416073747137094110400156642475794509682316604090448360810810348281815814361089771489098742124926129531539260257053994809480364861126345673935837453741796920870363668566041256148381542514136135839230663485577265674698220295510587092207396198988015893437236637692785561280815190076347222445164165917181932678941138382102929092222104392973149150276213156312229082793614566970192452625136550144475590633700615537200710566961167667544735154010287919765189561608547421251311294647955457241404447728008847381794244907379056254808330018220949461239601712605613278337220627574296488672615106148209843533605452428044859261869753940852640119276255551941269234248573950412875992771932966264696723633080606719455042956290880318240299301982053147809370458831808055815643747267203977638487021362805676940262582100081669066131156356597107965013183064387222337657879951315609148218447230362903776713793708691087862880329417569356263623865109481968447762580342407387120544561643678051473208094083442463236847831816913022481542997261864587397352446879120595300009888696240299749384866718897517482451150926202506883124026982217207781179372946413845936692467927139914047995892881324532680521132873808538247420093223971940660681649120185071733030125246377631463111308104549763793982423481138048000566627496531222630382092950225815916916697268461169043929065713158695889089696767294088536686832529794456906056631994423804533542876851517933269136391933919292306298936685168839989508554212774731672931831089659979860469818039051796477716595257288737679052372797055566510311941723795090340900473879644227948313024792033984151636684427418699173156618963099137476734786445393773481418740036053091341799799726498478018079317654849807716298867046360435183915391616040140759610212206232746045251130767189021386557851949326043649767996472496255363921421935609903310417309393414291806881257840454313646729301051016780842221706709168835764988946207430014954247739303637088370736371983548085981450284251745498802200120186823578164690001925813676693661188525132073835436315025128284675216468459012960508929195741485003289159997214970032887540554775537415456712704869216146288214139130280529189719783067677677182613756165510430027948006112182878379388476224502972768490090543565644475563590666562361342034672504790342428555873298094834977911601606279112254038321549333110465529897949501944678677097153385743751955866821026832324003728444703456076429596689443706802541503148546059016126854610077586476108149336715764627468244746081546378283128359267906978792011004628610664962686364073920546435311980291605764392325440378399401990935811179921246161640626725468183526764525042565157052046828874909146606475992277363398042443507087925434495102942468992230604038898357681006979727518004630454051056935630999987602985142232668158619006904793771252006579855954111194105553677959216040434415420509384909491508633905966814646246211157685797413747744775287407188058566231857587089834968209418911134511366528018436044727389432017740910060600459204779243292244014113426442012788532040647437354048180779762295375761378042258730248353750554877279180200916487536934179225591750454608580085327522172214349504163656559081957010826915255909074987042993503620412728308419860720982390353397044564077365830390243432795935301346212214438868550786151521721172508781321536238793475844019384442720380375427740710020677923309803385206088189562703252827575456900762620284105230464679138863656826937359222724384602885167612039216629350921844761818181507875096418579980624766696690220281007085531156345027527111106189202801641599371828147138844294854979585094688314823865666034253755235974409008964290338590356784674368062386482343956011439747150047583436797917607185802686099169595389257096726974576218103511801876647436125951562442690445248733082227574113475562924014276027282469959927574302657285024227467252372794853496626685888668438081510352691887475830538572596529273393421643928490627810205186208818647082516547933568169991677598476334456392092444691537034522153123167064743096109169927078558780656061901708912177712969779316209372783670397711701971332075393255805259698566229810416472989821605871984197709253333983896900895841320557674012021032845555770520566180939169129918258161747578379698593827890892125174446144829890552277686675126847627639715374670494505840825302254421287339594778458401434990560198165067228865011437020615669319653440652978773431830888902342860282937886342823977857781236998761567984667216835142908767346326719878627062573807141583541545139500090121322572172847551456510705769063631578567762404148584329173110523495733743351383877913116475971625662665519023170883843395990375125559517163261218268636385133425304062691283482113564803521597865973857455598063014812153989019583497681507267479978020737137895054469767192340910302520364798824858922393596058791787631768911136022799415972353040093070265877034363095903094589195711646816276058197311282190029965685421745173199715944927166577428393612477705845211965453126297801136286190700362375434489278222524053320125454042808977999819332927386069247005461911219843708393372532617534821918754748038599374429656111816054451125485494979536749487504124221851659560814759534703349939113122779587383195154536410075877739502286066794844853429883356340521295114663533262398294579645862357980420011280042649447572010690761995297685360242425370104377212932089139511124821489834374467917038517582773610760853859355255030694721743267764467063067053196708601827885010455365262530296375586951480871641349558625755327403910402810492013990693285983038996087433270579529979081396037765119622682860771412026199357259137986245673327946481218759044165199192437274628678425605739440742265867773808373585984990958296769082106393467318244723480134258836305857591487492037676862672614030429149055358341253560439837677056815212259763593489027562881266556838766095770906388739483867861299216899786113363556844040095015386887164477396030079817711318183544440946617953730371395102665837319795456235273563871561165484521322039080090749389893846215762730486918379606044264586022842930712723758518513571830589173238012992270074747262832425579939665617746582518629224582138202894938195958258217767529986601093570697367854240644944389539472274071378151101946457656736232107539347359281755188622439035059682429494221788885914627609331374885251408669409209612363078682614556110664294187106525956829531095610098352085946003466499491326180697074651091505871316275444579609746688876398848878024740856191524141418726489710782955751742098115064938374615145332015856780525865963998637958812433779083519269913339806967493074640563806381562282099850617438854693016980525399628740856784371596885432008608317047268309180827176716273076908929980103732871029311644563654327825258553875916088436984103275836078926281501908805542409553751483282410207942091776890392825203037125689599503536369926477246392794161989974396877149542143025496530192741130245361355221945757975215178374576739670360830564492449490870814573762006830306636155920240681414379192547730769748124936713865997935984445203083041294101828828925139754284628563786239842744756113503668821485908821239747889200087286280949949916537065149782866857816244281354570246749349113231218572697329963456945465800376837691890431428851349902251111428337111268803618770435792240658534599276501115292003330360006183207897903435994507575393475525930568401201733479208677797004708877433491288047187760328051570621578068522921236549162287494793633116170338888165795321053610439448713754687364024849118749230750218771106178650377046748124444431372119303070664732861916207434877752980957178312858611953059289098525843053884238948619206389155680536136488507150496357482863584582078019196765363639454035729744338365564670515207744400933191802833287669883756840239336660987537421512330165360243902601432242199543269831246518862506950697714495259915780571847693373151963809927628105678047791707238577256644837380688667431584222061560413434901916516081458565472941487728354778136220854908384120977990103744581367066766416180706630137370693766947147777894748159978657796975170237170787490687364412998225040381927167574194566975532144351056325082915649804777683722672673339639490667941977666660855197614823809863341048297652758134949808405999008938057378158055495889281314087856331232847732199349983490451672832300805791164843198671705433225935979053197906892387982915393759231044146998257669680458778205375317150684317339793622866550790213642782723826780885916941610282631247264922087211140182246015297988153421485145626070085843356837527481998776703353766296293164596226834601727134191002490356744093631265048641926720216038997007381641710962558970250927358561111303065105335870501971554658914827154988486286750404695064637097394800192469512240426386969379164219288314374146639894574699965371577111637279751591396278594751896513186672261573147034761240521186092402875476060970740188098500036918333360703986151973274769128163976597500656008559123550588267703676526152387800968402714869746530121208681349693354703486731396807403487963462735193572334976086052042067875472113599559025632568324931683478227047179668296228808225323794567603261454825703671071046175115165683573452926921057627825256376192621061009053333310405231442014434991839703859400929054611699876032169380714218309334912313162891582801776725530386368683838831134717279860013034280038449201656821092781874697873913725068010215977680113190634124240348469523518726204718694731680297054621987798494786582937466029241225348363009289112095826921777965971991567220588913230928300658356314872785706066414827487324419838778073129431721672529867006836641932434842340744211971950187097022333815544130915147192013615207072477585667694579475823566640748233605912751010856588580678059247968761296429202632315227741815709648403797454714207711577276927348953587259120223710524846942120294076915307198332513833335713891056460368534387320825199627703347511417583515540926595078977209694386730368973152708053523822197373875778564923750560276548918010439318046276207965285227846266879741686148377988255954208590020804163453648841938287886970270097188011640550311080951530396362472516085974778370078704014809835060803877279584402713274173831600863876431707629482113957668511584549052681377320934131073837278419729755978191735163690586470277110270157256926062500388339460437676681369854733548419166389578006100617472464500967459563915096128242060243074930829569718837082247838620501791399770007248164162535188079692393024018966090529233376724827629096510327242332346462316583789048986138487622482621047820496993624514432204824467934629321202308407729540725546696760877153949784149095980534022016111821520377342963921214714093161403664395246470682604598167516457870990767036549288885660352555692148615231884835729298998907977033905508640257414344505734837490741150163187878524380421511801127911216256385747385593384933092367863448199249501327972561019600072941460603654743078213725744486252513306862479242926784047198972495279852957910834771900725411192323913325090682029681333293685432895159491678556628193293432559635106997684842599992580325665058022277414137603469542961054019671906728618204114982734001109782162457643201008496828204479156596897529467696925938147216758138333458778206761703936213439494028572493927540686451190507734562898272390626032497624014381890254926542248416286896470376048363299758955139701144543271596472255054147763687565897047881088840215413718318924540289831082610271800024169238219409992887230419460312770144669040977271420049085047244205006908167397000296752982138099145097531896667142334222601812081778513178812091922437089849607424945445637894338099020834163724888885860113008089050635821684951474469023785679989482257510679302167650366546790785672572581277850085694241917409517457602025477022990891948502852835450605806439471620955284607226629096804555251926996519536912499427164435611987926728941573473905554479663117356294435652204068567711525249607477621949307352262566994459471942122753755306392657438547460309024964250768754559299680949228569852922842774047089820428195216904442363394467316555048517785360182639918712474999471115580290704436032107032619675507406301141127455093871256207546171239485356908274160859257108482033741331304867936564113359987590277941061853784319506201286668015510731096169825367316291449442006052907655124225666058213038611060536295941081772295039599479301529303710327256248671319603228884718951262999130121352660940911922038514417689344476808209113379907283164057144779752129478333180167939415421989276964880612654824985678906063897024664065464568859287691660772426763274540284958530490486469530264069821985384312351486199168157587419131802132439444622051383638595869748596252510248849320987111952583753592317685360776981419225959142176243060982438896137582161938299560396836288398364110142653645707960712472451141022711624254259243499088449546236472595116469691200964982356446509973186172984134783209901357459629737407597509775207551786820433610111309611723836457574648459861482058352551832385225969064764997385860786976623338752164091694099179066439011295536693270657639913833913572518441987211915607683981954433047825489186906110828794401234939584198409001756326012327065754481171454014690214776955487357477815926974645961386610968035568570020486578602801481289298584814703103106743632732883461816478751677248831539413752282610861631979973706678871128802420264281960927796494167086454471874200949241455649211129646126556685529137044714433647547329693434369923110947449240795270067479358247932424417932039564047941382729120208827282120432598100348343511708599193281890848323995904563734140885498515604973768126335713804412931058181290239490441565577063017301728990297047913930334482141239846870554970479389327245715925577965000115914232096873865127214425754413943534367247691604296824164604306578131171234589104393827099963842805755789327751968740619302365989049604571578501122847204402649258933118815203050650715947886481341231320564988340117939103554973650779358556323090498904385518177759266410502311315758470719832482838557416875874103853937461192198877604835387854593148674806372264793547214755311947757795907552366984026593606390696756494400028376731903009474414831848525598465904937388109162290589119320870104280483875620531551579437874298118484967442381985898365631143583461462006580421364098521338368604383073539078194643959070000467599001608461305970468813168477919028319576058100577631831329905079628173517601753191948175508107616093061094203110810358115319140557918111116602373884130257769438799707641580532395710899839043459252534351051968956951931143288200541864980322016995616254641284894928734189923637459398128956802516301875781928857974582984390412518325545171998805280747992773474257152523801261498510052237233431909379551195549357559764232302585425537361343587935095764991462706705305614057730510586296080922683171705291905334045477773191066207609963003549255225115842934896742120291848319942205307517800797439920754575363018590825856431797619834613100690853511687446472527118740393523234407205337674463087272529491687891894649717952222914990467148744454429572584704135934739728554089277093667606366365378272226648492313880470555205598290322882632697685785841874675635024199537132562397527320202193051550114308124620203775179383698470565376112312050943659169561141331758697222111995624987666849488357629303500684463197145887020477161784293091051914388360061364502985723504565709217448565599302300787960609776009990410877829223566027212739826159204418237075530366277892276840436265424601335801053305325862267598381114053195850057452578837186126981828430544593312083939418802743386803335565014603230490858757092071323155276555631617999959756781451209622021249769640260519485437769141860376387423088797433818104317754781746197783499565151423821352858601808204150254234150181249640517739268245263119781732029761132680963296931990166905653099612162246128036972328748115758561505434940779406043798030991698615281679162274892969699242354611792145932262391286090145973728418589738815780594821657983709910246616141715138859347170945217442611921448489775640338657242642996309497780899150137235834685881135015863391419349860690850794857463767793126100829889523465178720473923178668068348309796792745575183601784523949812785950783190911507274041004649229043932888121232242089937438822171320734713500138611060323486290237232238981933948702076273323355620928977842219449450920905731021509072828575455281550815141066343632842689185844868995054341684926356377753192971530164494399845709062774936044588802483666708583305496766075464814822071496409095615158179925030845164937487173476130637715808593903988183197949042590757457846056990037745594692892070620584173868442045710153074570976710796770845370308007176720410792603632852891878845047050397148743701164820912516384190835072410194158294181854096874753942297890035541133534539580769049520568588140975519056327649986938853141579912487804689798817696832456617448576044191636155383115138107225985226931257634437625259701683358375584736554267745945155800029123045347814948429592270005802375528984750314063135181571867909076686915894254182663207015019980658396959559410901076059504928814023686664268612067307920552905232725920830744627716998338566385615297388635989514757579932939659395368042630663773663669179533113155623012712698209719382790459130837331521694450449801355292949496307445113410384594467783109652152184370176729563968949281746533672398718393755689829202628167820163009634781578983966303760795160791300420839772313745817612232278802982673402799941568846065360930886421898962187873569577629664595853994964878803574978036724677225807339046752847896453502436976898059161676308042736732369798023320069525551138171151224876681721068155162751771127709783239837999319011977939508292810354768650062635746132842209998716282021839277223336704042720769079676579190455089383148237645731120600482615396067069940731946593728231313820932514236650602646648331739716472841334492434497272006953446309115172986334104727555047188000046212655974981538255237788084483143440995361408505918479352864321104974371467651855562361881992211120924151139490235267738714225614915732515974396385154571802899715448803874453633198426472636941071756428657060665853955414985114818411646422879230401743303393049227026650768010606090923530711177322939380429308648581132929609016112227710424321412935951676528004216823004066518123463589686161888582732439994472980171748935827340455970951307458714198415273231402984662423147909987870219078796935474747126921429023669681119601345615958041522541824224236584802843514350450440287125665292595827572185685848694378954264468753597563644654957500633316333311687698390401565119269916816095509928647051008953835706247739572812138425809013915534623261010087241723810476697558733320297721460177771121613841397273955193309163474732678247338398900980754061062081361066003914949004215351123170202642937088922527989455879056394375457848277366864207067900521753613372877666589565197696303553172069474436359563622964874632402331012693592616892572762070382297851785618343948760256665797458506248779831838551044560683437590143491002518950299093196203177650247772637522296738845017132380521748323835606572584903928554488866847199703709262653833761675237987991519165004476358180996283494759084612994380199825993783184992796902337961971047942807519008064146807205869466610555338246976602300846609330406870746652591904125064133982975311378952552854702079077290688021505421784620077623527289311161157276421639470651578551335119608999774735014442031409892857624330068035244836211120143939709344567407168682916148742775446218342935562228267175788137710568755040765430148469589349266456156441310900007867780841859977611900881520711391528667586901736973197189403794376528702013114523465243568500076649741318841040577206167323979072375261895699074119548100640708857030224804830436110662982644845527404693198594623046368475162845756460711665439499188248011760061301458470374688908163534350894651020428541352478576936074191874282713318230458546963630257715402852327608284520440261455295027407508194433008809415284511697688693810525766256434457869671831868886327475340909624855849445864656287706935410171067862175174078840580662910604614970919901150748713716946547311065741803320730741999819428656802087952994626184106157866687752705473489934365799959256953269054104573363805537067881816829182978929217299428753860141183522111626053341340158546216061356352578980102206985478496280059131768616835346409265478888439442024541054281341474077671775718652312259956027256015374183709982308397909605694357969477509086652733512859115108703962479792881159129855329783712234367203275569013097008797816263372256148896255071159025528756033169930176079118303025750094377601813083643666913735507641225548758452992948629285168012724489826432273251363143018987371471270043266352325760484323421261146596574270359202887375482538332059386427045716476675802737618893660916650841344385639776112748345090846549761247415905206537498586616291672587530112139939827804406037536055356997615507655942269953338849154382396530568956013726533525017434806302925090787260849041225594542455153084552164854295757541926240794436436064101243698049347188168154020815412540115052373121461669178010064066832748148916334950774651977494740292763073841043936405181651561957232455315964001825520889196165938517840579903342724919452054659217053992086798122519294579997624156548451026452668241243506581727494875200334661198491808575233292457399323944558699445892975062518478382534175766434198121034851830711185386044060829516824961522024898322747331400852370228851283048280338095125476893522259326818130062923267647146063230006605856883579074289566323292536816226099322227625838725260329384975508409467009365244091894601710107901630237573364257764910046448545484726745239662159272690604350853527466250393482301393726843767370916153160431696780483535301031967979694857050604358887434450883597755478382376426703297897393301953410218134332833224227193928556867311217498715970557397917444446683207023967308944218931113789560759162819754510201029798487138067118208054238035166697353341194241539777746917791176391973860266289434947652970227541926242788348895558508189638615551094060098397601879077527584903626070814446103342902531891384717752760350950324845924473912023087630253381249993064160207158515914047860868765526288051335279545031609996559609294824828872339658978063326051826585392156031339290465001255002362379169856414542408903573966562500959165002608446586806137454452086404228260536019017356109407175834689896693862840663556968346639902445421484546770961953211004176659300701135556351239254290448482442265035995661977151341355636247637229435626650873046604909430064920243907258280044872827830482557041053382609864577801478830164056856999500205559672661469162805172961979722584994664927481816767981992529460244011923084163083541763282598403185306588085836050638040660761735439411187624508032874320446782192279955864723861964298180415510996205170410338498435657156109595059110618005352015014343162696029588726155623657892444491624932878834824981326670542178928527268979281980809967411496959301573103073015997287680616044273299061677546014437283923097612064497266881607720470561683661262157684550741673281858199867931567143492858105809316154158657437417056186009322608940588591193579885149013767510761716551644853978195043204349471658650268234536255755904441324182459259445067430632149693875850217331850976882476748943867195108602142767639261075575819683907296266519794396142766289589028880738281597331940017159264131270887908649939446535859301872641742986693168860486577900103925585129895193361892833210991699490817134248883899456092530182359122529904427942662532988739552690607377269435294494782387168321441114791870913865306731379319465199542588215448540531545717387872967677293493115208990178082233939551683123475432514275304754656182805081309544284847825577057541376784146383807233398170106817335815802702853051256746773729816181327309208515043883032638504685489988829900580914169161315556915811191281069306317561248944537540638297567956912965358500236582066731142850520745181935544067754886369184303726283346426462741443913320495174913894762230210150075061555398386543020891121738920134155529992192422074063297739827635743243204550424822645113226626527364656780330389379964114227942543250801388915023421369074914389216243066979889450015936769073490311029736108171799068326066758242818520425101397800654975874322641537091844799073585315199602905293267708563595251306814779722540774569399960743384620733159578571580763534899982101998333410409146189802619469069180484792847918883664340191963132448658805320725358483429974246104230861186310098778494174812044235274613304361279864575718400478538048338298187706694738960011249636238542590460251222155954114472032394848693252606998680556592535444812391385789660218324281101584741840477753370876835954201768191374285556060731172080970796906106420268194043981819970223333235357997952239164308262791957549128310430847419340168627277180982260241757675494969074843716540374967853320197321093596085973376494941082897555477070418966664410997771394849458600243876188734748693357773134359988058385560656002626756050728660249573031593070724953340860349140958026749428700874220442362889646246365031177999938706902331649188261286777479176294696920786637771486910169588696876486368955060564188898683765337455354176064115894010941184925701631230297082782782123849524205344206435038160100948994628296358708108948169776374930649194578007311369893785701752089949389886102634196201656955464127972114174523881127706075079623629104033019303598974583536182647518020126259224174646077613667509996318867588343586054893218008824831636444185496801649988935812874994906796567060874946099188759925964774758223803877861676570617912023569707912245936659109299262625707346342581362510197947989680323562713032461756680401285785121262300877471297568362554038162096638172379532489681960625940216187012700302950206478735246308947289743103271031091251907732233770638094501682253328502351020325719656976544754897766104803940408967623818108509630750136008708461885674658212504509053201914466140041210679661484119272468871057150688265843492588199760020743739673440933508653822492313549648539968830068539214844972312539483300364400511522156409494824767347451089598578810757671129193089285414426502385770137390170315866838866893527754103704832851158200924997609469610568681775541529820177496400405885068813892684407515464380209409907141972419745027391540910775166903724828390491306188369348685145462571331624597895323832392789741665884084602477553008635243770351078688155812209547352967896728895482499286638023315765620502011585691097882198851335500213172388886053727317984070162480653537249182104266907578473866520572413215975927640105739232320968911183105975905145212463152311299573814961836426868618406070241516489932213358688124158472500518866926239374929889950851192822794244201510901893773533257570500180714947516468336681448437008950147615642346972770275911054513136615203373142031499664823359695161146029261329834569609982351501624834687917848199944532314752269750057017051080023419228775925729986140081724455743130982062739419374333875872793141342597163962749725508061262209596937511949788919211382079435849689916389671336947799684563227856261106976376792447093376688044955545244045085361804457117353712533029996550030682656163689280288493399752700755153694401723428661274586696457865747754996492272432807500792306758865150913168664239816264166980643644819965834888121157138547079648001692691816183006082704356868673465471159050291992919909473253521839063397234845031278450985044548915750167280686557083205524673310561390101917896778874208764660557409262467201232857594540185051551046499589359850475255452563519770055938670364234399175121483132279625146951758484259454891175552815692852372896580321649621199529791126356370378173171036311892994862680442919302987956134649231265373940574574346377597507547194000264258066991919340616435592973737748775484227914504875677581040915051878089272993309241673140381909301153914888407668805112829597670037653396365033991579727175704720128576146806890089046432629619081247802731653687178360412153321903573656470229674073289003852702430608361190450813852361691565326202461255539275932116583875459251808448348427111772363167933052310757653932691901452515819035954177194110489534790486140764270169146461642232701904432909791465927916733250907619664321871599173738927881678354376613731088771678624247741686992060373779321968977450779433733579166559270203241470791433602294033317867144822156436673577737877219332508883040202428817166136804507852264294299344473880170364614448218667017397509280868506924902587751837379676530905374655979229267825972055030789456050472473049340942702368334968282150526558370920085764575244696364103682056779560160772791439848953393439008445142819241297228005374798743452118400632909071540260149161657378440691759400653290859031874653876023701349511577459717185925644109458799013498012225954082041170634460404053296404247093260279186204266688343220516260627904146992625048444457765701791510949775365383223872653455291505356546300913081176305729455664329739569241592481852451751980398545966677098586147566768213369950868459105440886768316629275900970746475412433587464930442591035133200552415025959860683665714262582904858658238116258781480755873732741791533713363550128885654538872304705431533706609928341684851344646583860920211090537539890858990931554602791599583732408000320363471174867042960554795837868246291513610582693248157743363277158796045666372863709984392347826286945186714115231967812419642678902683012039141765367383279721793954348693000601028986803672724075582337743817150130176679262237879557264798480450538300604208890680648215697811144484807083884887229753160229152949713147437581834538306759947959840538458209618090469594380249373474662910368411415531916084998976181564941257913872919244487895690009674243401599870046292972513477362040685370138037899756660755202416800785202379570181339446311014259278325875807821292722293152976527573702343138036800356780817187623686644951013897781038127702308257572433850975009808448769736929717539019062640849488294736250500045599058103117481719638350468867805654776540383766096700175952035828297160629505391239678033046481647098418260661069608212683369615937226237879754212121837654550842325120279051640123864481612272135731162441634759345268231363674123143785871582709075874377086591868720106395690224890587337896988431044435963244211195751037106594306854905933604257759732593356696845740887643264010374851672992018840173608554881365097194091900761794130839299216061386080671968001839877734458912912288631415065429249133761529586545950912295941240553068880656498940585027402015722386476138623910750002307596588355668907277739688992405853465899584477591858638343326005499398087135179036820945497748302294634233928921314415856242954863048673688526010825370817346936635408901160468445737132615549714473366989450955985420469838371968970677405712915548115979812607110955603847386180170960379261456215168436110939746356634097164148486632335259883844694262572345250839433763536778217278236959197525671627938138591146841734516643528695724807866160362575440179014647191055043770366391416168909562883636792766898969017855723520648598023561558786467055585524121638727622023144700087621032105826082545571951677011494048630992357394841158639839778355389581387650568214669711283202119106298796226063815342732780574446497158343750255758693744861596412454088822688900098572210562719094127684315796368184619964178970590818588109047487855465731155868152402901217370840104837390897684391334332558585245231260964039570540829992417255382203352161149103286842082101745500164869400562043143680843564270689546292681197096538702851148639055703828484528748005927380958688103559539488652412802694981923963041197718648134252341326784077667051777532468839787272362080826602919436500668559472952239402347985324764342327184683292208974749119552976904647255845404919415337860598875169905061407245753760692755300392582984468310017601089614508550609713839004008774734977471520536575904474116046156173315615573223583776418635913835542224134124382900955613529609551201533455928440014073836462991866702187549862847093534294586059577408544097942004228854950161237337407816719955728898691355576084116143422519018573398454184069246512733471621124722224940015752714395984866076435599010197710775036099467615094399499482868351759813488418747066585960511552985959975300401201673413282298855953379649184623894855792239316087524940656597362879929101501956765673350458897978076678467893710470502328929638025057264176524862618923017228414701397996513770190217696419454100486512705277042320017087717532685227178135560512991419597050051423958924365393537017589220624672758872784901470151565534581217601129483888024294048201644824495992374221190082000919892754541995953950127933442428127229890329705180215133558256498406725545486876957388942098438103484422792204163515163200673779955954035120576956216450514287553023611625753481100083155020876602803516753957592359535049078053241961899679567761452203920553602163635983997509035126798951312512698997679586550615062500311305928102871105573282292171562192065388451873189620327699327301676519124028490052038601526152302028776811928164260693150464296707751173011335548859313169221176873834971410252278904443268831388052132143123687814442960839046169138277739258650677768302412713558336853768233464626772866220902808712600196232874261461456093500588632317484501540110113163642062823957290931190968453783634001889390987977650230343082806983889085469121392376985191119902397493612179493830817389022507475626610369612956970692214093995953520322251296284250047376360174554409293481368210289696219494831292167692208466715355474450761660504844939127779463826930008023362949658443026190884379722013357069235131132628487923240747723231030675123072959785007225093921363311660604684112669908712910205674730107597187137514111653542606346252078137144786425510986715339212526528145234403275609224037302880508531106533831781536459211702726173187238367247353401211732248553027688850200887373312993663824330996485323070260800267499466297186409437437775614743824054556441649603536465558889182180404115509571808606228530691858527309024319829530852955232836710076565727673397924838745837847459245958207614012009999854917535992776168015664459092717088483956303277574612723616331427118036107254102930475598358440612772405122056682024931445324936558397891541696558052328475329579967007711710676837944057471212828433946132024653864436399554819858534649855317564371022354531346691997584393075788118958208836340505484726428814762714333467023120000918568070025275185571170141292919782974529831687493815358524862963238268624919051032135327413409331445331475671455403907520979574581411678672068927435612435271510896024148791531814151802875571341927061609587863101567251826272317118193664622390192741334390180120997612451065722928830674092951045041440705654691832386207734913132964437865844136649990339309442779047644803138174485802736183647714198950787610220844230952926837264024812293957215683052408405258272182447787248646308100531601479402350698909952826327011676303948862445350470746829968827982745498795636488906668999492783098536569374853686412536709781567871605202217344962997280511958152950093481114660301694507555856340748793381324277116730374973251517178375327998331153948750924812993558645012984963430136048826612594204206652115019397853951666963261246938534289871814056432300326746833828255234209273373823383725215551001616067255144592584151903772170733224777045121489358633325033895911041473663756791302290467081612931157435310152636306395370307113336340518986180306871875014816582925000061090743706824087718751497834071108940216643618333689928528516443962148684571801254455744216660892196142605351413412743237749637024488637034153375617705085119587467375512411335261507995298843043297448910378171547919939084658947783852355126513324291973207055226946845852830886828379397684075802257580215754337906572126933664913698153206684340551783815182345217283774855171554089836237537742325629953996346859845908994740837597367962120329769690628737121049041913809797173384888485176322726962164182444330337882708690812393558340771805969387291391850527440028813490415244499856409119968110915721965942609962502258740418729726535361211928806294569407227526717189586577941914334723632006165384206133028243069067578002746129128241974878988476127553648340801624438223428306680009615265435337089531338733319489552344393894654176881266952177283916471746972680468120885474078900726011339518184164594274071081169727946270247585517969752059496700737540934591991969431036985159429798191838501158886248104248264778359023444854912955860005538669223462015884615919952022736520110140669422477617614947952938078995059454905696568434865981008486548332167102878489859084615661798549293568612295632552955008098484572779346270306631160121706976516492784750098768405472302796037014967848165106960377861277540295191513712968238871988992108841298616121871989531174948023113196774357093104427513799611148805321452488740864090059750160463105297657408625510866493955113681255070464216502104055857952671236890988765922009726366051374761945115053831210786127206838653177788815988941486730127747824919490356652764442134002058734090227257313008087249260156903394708063316593250306747935645199412724221389394876241434920588283842578663137868808234940798836377211302347236307986354426089104366161648484090017281723514799192580365767562041755542183735658591493833436627922299852574741278683862387692414100767421697485276053835411890598154946162668589524641811564339853748865176255265776493152228074955434767591194873990635677291449196097567197285938395410906106915426817307884298406821891877876344853871261851037816460316849919821436147082375048995552637756888386783741114138451952112037725956856104379335456370441264565618914134174694956603092563279407649599715917895842995070540763689752089023110044387513765683682483498450004040403335352977141510260608021735546251110000490721839628665525453779637277035584401676226065604757096353118621782215444282288753513246396351431352916585151629150925377846683587273963411630781027759237822250593834078329070661112376699874011863977777952652518938834675773759187577406390302546331388057561676946255763919777315740840387529409633819675811195945849606666405353751316650831358044409681504618920052300431306584890059947521938444182011509819027398674567179423740283719202852168177633949012628340272363266871939657969476168501450182028767177440835770614510222914714753434944741061749533520864993909012130521217963338290005954739195401879998516424836855121352951509045116294326497050120324779169423586486513273954327055672821401832639903244180163666133437244313173216403626767012756008475951589957395792128216571926915208597048916320568886083314825914031216446705422030971429064931514814276650894871061219237814735866482157954912631925201515998786717430731502649429456008713001104521808841657981727929365178040658524558493006028787112793663086254226820181446717550226764237445678984158520080122542090682904531991025793085196134336239752514504250820516071957738481302936227466739135740080572971824143852936463732463331986119184838473063998945332694654905472916105452456356625886328147755472961590968673936298280556625543514481258024013263395702699401730583409859794053490029345488497154370152480015264977198101488298270954495596233001320860200260594104338340672786901407622379778740003504263939338476363985889552293300396031653699330567810507353913572527374408424563320959890460569288259812454194371856694343147750965730927163230459732620494153293133653929925373045531228218359652043650180179455764233271757618378447174399718403499400736789210803161171880248217374462612827407719277455574841301200818058665965067696019617425125588674822894432940261762304772714994006989414084149079468686101487250161679617972694100296310237798049357071729679534502854423781160576692209152986186680034246437836364450249341515532158174255338375337905334646732868407960808744454535091246886653807929929893377258601916702991936086384568262570854691972357320142096598641086115951262610177764748709351898164984437102817805436894436125290119377602412227705159797486374734689879496788486606014028882600548158097375431706629026568087962536731572623480691041156619901084932067111976460514010907014542898523192633201747534818391632653790856311861344136734447261641436350414531935784149976373728852652758168257745093345150762372399374886809795955642264855046379650846672416512402196728194284810722439794082673535769328666132809914692438732243117585337972426066070312280847267161639062751280839145112504952657667723925711741201623908218114879225784061625815818627109000057944499305110564509602207053536105839517523693727326130240486935953209785694550296243379430174442936601013994891095812858273530852021852190426319655148417852005564347531368160880377799977415198025240951394334923331243111211567787598407685424027087081855730505271450293292962221040017315899761867226500259408970311943215366090220077566570188331984007832302282598880434832515758144012646127962208923358998262617879503253083069346201967371822449882989486870783232828211614716123420693378445798725552193627914877175863838547194959470086099165956938655725423337739286157759626983851354851572415231890603779585017629005590322728385215689562245283185200933048149700114756855825779979418300210130936567526856576043375503621959620644292200623266084522013968600676397479592554814812353539792076671509446554502471683742371270877876326018856632550374084072582688784039960240437252136471467720809020953523759734542899820782785335788754387027190336782588787622607888538044235330359509553803977595427222154506038036559254285155973362064235408138571604731798729622152877021238828922824756338748862602587200244152164506983929465655323899427625899465338228815179899492486469937509205041918858347918825415787361564636568032069385813402974491870620808987610149383512205460002704025075482524716169225460835397653436304926759519049044907277535651755321853018558599785731576956505604735055577545395334802223872967241567268761325543146923969161970394968910752106465045952364137681886510122921119463124495211110303975847343254389994157961063488226403918495409721133229435710345101254727546209558625752738680496873309221191137579391867979662067251013832207787195069663825149487218431993834967172666739599137109550007919317641451661873532352750958925863312540053418169491843206707722778293480727731306951096495199165239181940773707429499303954100965653822618213060890735400552787621110275767417332444871091964459485980579269244553312290038478558349722160853132363920372289601185073114474246242202087209432462842282799482173807725431477540165402435266333837043753885269379984426951252661126953571474664893158030959763611190370121602876034202727979286609825254682175728959612280689156007103641582564384374331069655448696926359204480440351483628382821606543332842206148401411323732048359415065763092875737126556300812970357327705982392919393578516807590826729993798945637740671270827758545459752121048774450268581841530887450291198575642022936733069630881369327779081483112335851992963957491271890633368940299720235758442794247334369829434384486394338862212843998449214044169798643258067950908369451891382964724303052234614800941441390261222840622173417613779108401138768997719971439956307946041442459306053710207118085971733497703906802359320119463420642561138534876101686217336059883000727432754286676926350746690387184764947318142583243829010663333285857647793566745412372744869328549254208583154232889676881100050494403455412817726005352322410038376786752856842601543349509718511083055808266670568048056542840533661976045415054001854519734008307897427465838268448036615953769555349859734461561956798840489238966761381636358693763654753590599518570592920349284746362580540977465241032647788343782121959989587734785732135989901281722983948609222431582758737105770546491124370861702957774155992937854771155853536501539043143816847990029209191485492836768023386409993809882874026860127222124087902151221810668773712518982495928902441299066941848719803614413421930350182136125457084994874387588555067840221139729044672590834545132903213969957838335372830534300466963704030666701262218483657740466843634126330961395492290466083926355797810218549212957088179626674312137960980375682832269629375909279959752536008686591168032100765610551677140906046867587602422779461658150425335694728510236725643303847498507140376575499655560944837721915923863886064170297889436664817960871163094444819500944036052580381313868475173925075735997893817544509765160290811527187478146959234316094083107283724969333655217384020259860119323656301804673995412350024069091686490619318028916776711230847371124694195056370785685789832492119903661341160313296686170147773682383848955232945761032083115911859371246155452319856552597893034275064020508848704556185855731258868919818805745673755916567829586352238687736122539204049351525581469515180278311677052590556589027539786998970198014353267199320137002461413482279343723319776419797295416251303441765622058583234201358564731385658127424491557730549689640304294762713406941185836133634962223551126099433632335844510738680054190291694035532901376493792911926966496415376610278367319649210536864705405759811399316070871473156765358250630638418055771072452133396374921056604291210382374547926086748658270824954361913028291826783617907836980812737305117951253760440896457112253718563539585754128004600610013078144926470486890919971130095794389004021632939150112991004685079237994126200927280362780849312764268289798793488008970662613790928286851714956694570658324115283262426120560628006338885348749702450909747940253285884743250601511837378020231411263900875259903114296342454875181852904462233257866144136514383050986485378315535053708968620405865754058205926017682642818945939604767436695554799308079155014050768452979452338226995179838031951791209463536898447865212927798090007582647367617925870595889460319554929116098230314725061133349415588357532878788003804881936649447651466029331765942517462722781005451805200623237244896448154915436905029716375204811523930051374833288862757185982929678560069393461941376299384383287260291498896057583392878765191768946939338704769351283496124687436050181129791036684667105690482400441551856123002166372540275985072201010553768239101476536572382319815636634538757649896754986222242979428209314658000726436573744473492531685479929009209116362711013757113881116865914730113791553482883941084153613961737503783677958789128791604242118342340202757614804949023423658715368767353449778228445444640893175764496707640382777998351467691380665963148834727124623588629667691334938808206132625736454658043069436440924687668634824168879938058629239876168122769232080164404175690339261766757315934456353050619388203539266118768598588706105323896483839241034339958968931975321100779602392301893278024151064752260620804845745244281108629884659294565922886211835380624214415521554384523543777910904660961588956318499518704271157081513290501663596352482637955120017730106226035768580990697878770290512814558781253907707815468852740551846538277527683593391475998888849238270662174720447278241929549409105933807935960405586720936240221244454143311511576470095447634130746688415583428418709640146157657753829580894333433227332588741829142990177337812431025101006380111564903898359551969528578521668092464984057561554161196769200853846785807406229097769691159450020012918489443384820576398221347430840683568225078856196678596306632461452821783230451590652111499464449274750399176457345915508054300832273421074041162752110395129848921599183461324108886825059550932038572883351628758367704965080224235620923182140972332693991005802005238882096837020251548626317267841629989039343868697919551392100567227925290863293934536827833316254391996305497844130334494664646226419455196203070382211324545794173541685971805169462270755366378252132761062153200071725162308243135024473445250206453325637160983705054163995472905989965755344353788218201767955154047889208674617502513554887623205146589025950988224374783990242252122638447233169708164859762219916645563779810926136042178929617415757065123199044466120353114321258404832044211093926087042086419764839945997824200021393783429368144239077885801198013385705393969078387490118101214207213324818893455764720298522637729382400739837128325294393705256555495767679989342589821865820715566779397463514383224668449894128499313112033370286157126067905759829855113434086532537482336711458671289380151051123100716204915152978654252816586253802025569903532559137855647596288888853935372448167707250397189977215066527207589506461993374077073338978648505937063989774060199775666724965362813017148983109922811194265637865126884571571463308404717745402761526541300118460726755131388532355138446244381042062526646036046817029759978537164191497353415473054596805633579593360376848633252427165509891051122169761790015008793089055671317609817692919479673360570006014802953080874470823866834348139224558829974349935523305438386392419678123381380801704569950652671335151625002070746516414478948935086176021174203742365746585272011414819338963366064911015444103988600732657583552871828730201382630042354463496840907148733146955882745959096465578789111636351828790534839162808276130372731461195977305363503106074483539238927718918529963207481367871154085385919840197306079807197038221678549899802386141327861017666785365515011611439256509344641072279031818525090110176441636567270068819134016985023423650760310052951111365821400384719548847260580648464956965555508480761946011367603138780070949041421122837632444490351836053960497406942386490979110834064029419576762739223017081068940771394752064342349507981535237838662529259664500137389418738274818432998030588600743450110292588507271352819374402781013238601209539583460181540469566070205211030349907170961706837831645932967926591603755293011178024175238953153277763776316622945067599575579065175788492780541378914014885127064422391782297231402230482617551532463159206436797200862574605974607777788347416817412752054607710269803397952017581947607858277143703395817118492165027077153036777511536243862551454273801882467845668450117768163508726124747169415340139009893147043215268284643126556147331017521842686570957018137894110884403258045815066331479199590333747106744911876152066241866921823712797184699088170358076150919794684522652360367112244951559089315394405307838724149252011703009595671521637320811202025439799342647452957871571880635878610515345475460623411251027154609910066064576072577252923325181695801509834635666326783668238332807718986836451936127719150422526463646820800225579287645011298183368650384085687055884137548283561336369139274556915406268623917175678314005817461630762035421579807701155738129621920717934511684508277247422490465164097455433505002729627478349397363926405773553402083395188270149855907527438630561496117443999975833285280081025530303752343085630063929570193877833802349904599711824305923661020174970469747709482521436914180430978090032652113813762206117577641030718996003091768272685702460622916431105880018990490658566755856236098643609587348562332542233037498984216757196967562519048061457346651926875744055367483742875933894570216679265991005343308817737680891842871389401733961567610864179575999287563022006021473829728382510412395419996955936676761063646583114035476398403367842912012042431104165757711131516594346936562282159508100349410333282875991624085804533307599431897984465052645104326736834836207777691145178125666261124171489753048138169253434919462557517413630481958237479529298448690898959028949377583121195945422259323283713275788705973627658951613247100959475778430595753155044994267890438664509527859203918613281497411195016898029111583551233962397502593174146796118979437363692728420005997722105745401668884262212897682963298000578093399650624852453952915496766507153184514966986885541860834575112417488625339922809535116593699894090451586698402892465082574127890269241714637715787147249548609835770936370811413944315492154432686718598129192291689143238653246922154875760448390846192304918577175549976814424141953121774932381336149866313459271238488180605019750211717763939966923468909345794217123207415409886279848622412846287574900763486787294117644500849501935761701185204091986302860564225556903966976774842642986925385359259400051199568883658321018344276965790837200895097439411679882131930397153201241088078237084322397283866929964819815216833765111165532887220437574853895993471310429577237905689349152015699023449126761437799877832673168795933643901081942139641498169546762371596344860245242124352502709923554196879063339623930588619729237102224325951921275008241037365335802256181714309201484727919374521074297706251283535190586565919863607453151099936201732773612927117953384391623478267268998964839883845798262967915356574942003578369364046197655753922421178162092205227511532621331881889461535777550222417559634627000296484235631563175567398712515828615564266218380330816025913315177605501944030677533378678667511817310640240758307942959700070169135564623544345846142904649739888017879805377462916178310330605447154377887511621262087964628789303376783822601216955335919957866986106316415466243549658643858162711637424452236847544700514328909700389061480016073194579652691046178259762348018969520861160622779719453984387978870968864280435831779264827045222788236237045565020091767781889176658820131624940716356590719754415732747566117279991201944411030073832638203196558796037380074544327007557621280772484128926100160240676639744482885914248725063624981511167323212995572320253248069121464162332813081555881118162385218538350409757619056491145293256528029523206686381667189669220209277198357722314849471264652845449011131033863564314253102442774246432942579202920942760928251723781497202975457671135326702470588283905823753944038626430876143760936766461419805065124372246057184504535590065208546868465312119322580680193791934096200322475189105794168922936270254445291629391025809262476071390762815378648902784942728432726481073871439348416962620477112275815122484468751002785006573158941883178926923333466274801868249060069511894994575710248479637885367701262418499041045001431514543306607021619559590750473325018999315009803866102690973525575321292438176283533157231019327138223443331417250544779594217415100863290563246718454236983509182802439411110355755612915563688115174264140229873485244207038229301484634461178563338448817864164642307206718187004374522238560305373874230695987769434370268943904906484559749965366906516225835364250299671888659809218859182443025635634474534146699397774104614059643235191160426351165653647502268092697972571659069436790156652194166389284716385932978309439178750426871877688736591099533917043746175630199833980638182764479189939282868236294375413416181532932717083570174048429164676720222907109268190826033327090982281926330594855451473010255689052451508482705097806872423288442578038757741147967750859104260343925498489007596447698811563301508634916868914471367603847392879093211201499917961805732355794884309722628160493921037650328419886320586193757344630459189305645439359944279172369857891548894483271692057735705299977878971183219881602170372646907217633736615353392650544133594810020932713045162322283125428680846826499345724041361533485447305198179452288176181527115848315028883131962198644173450204758941512986128777521341682524859455321987809774063198061941277586288115211446958343099579672621913691776885969623420303038460344477348089745596723560492084844781381094194237499208382624537802415594452913731878223749842160816945660610874423066995799015372375293406328541021215024866028924147781069190577833381923602587882466624590767868378033164042618103654568268012669015727246914098492399133123302020278663736133878059393681163303198372915903174009398182314074720611889060759293429815846203712339884382103773008098391594383450115303586422884488807321839661281948119150096671247243233888998663233411716537381415450855021210246527420119720740246286235350236279041589131630143685098924263375061177519694305432657651916638724127980088140274815988105845685455256304208621303068627451525855611598355833555417237645543252573697993756482976757434425389623346488761360454635005935846002740075513888573478672625892394772782753413001149323075628763942807780908762937334331495322125261650794399552078913340997616353491876849248370232357312195817365907479640689971765312614625374204813375438614926627352117099764058884448160273414646549598318811823953002560597469314182039928175738032101686765200467064620293501281815230240164130972001393945873179725648263574352323378653781850257798793972578094628262733971038980668938921384510427244837275669932999920137068373123687401178436232811278576665604817042695160032696838850743824297632466502894798390530909824994874720653247935418379437107552516578750683738256368190045250811206135500618800039226713664324974360989272277219491232254735254015849966192198399972066553529756230016836739174775538050004624492357525866446401272913756336273177000316985163604215120755867578757225410902464474176312568793135980576843501735044331465635472176186435603750355246335525758833472676439068188095648543647556241930851632572378861119949273016412815688135512383343799102456191380366210897515561451037070990004825033774553872741404324088422664456270184896495922506001946276607145785691984061065578360957500505172303204591339639795149761756979694255689443685064027493345838308687179507947126607719560306582218140673129231098850319054163414695160306382891824420715052766061877825810929083858871284940673126098548429361967891586295084569045389042780957037373763991954886013532010261628182323875893759576101672797342873724458114688507846910206141791446682527954211375824769104471108214779569935383270584146479749899327928607495893874266773968739092118507670368277657507676670508299810343918401175675305228844595491430386402637256232755719526281335244551227283442792139072967820140038936262318481074309780113597394143105720304697623012693964188262105246794988537567312982384950351865690053283600813756752663360471988462337367326840493389340096671074356530574718539518332437343022901156501983013153066561677947379958618071317337643313551328469876514094445675355388261946457068347101073623222951020650914202745998558548980078925173177995985406093406906888390821982566934022270315682367469539172425897776946893319794141690010792252518469589504303485171145481760763529245460344874848337835541493144454474757763864547131272802553313376131832327916869593242948222174552126444255406367510361578854616537864073881745622661672250074495934103405933168522710163512408646671620846825397866282788673211128934481172906659689783982723599162724858686031390206743808139675071180689656100844099880809640977705714532626395977322544803266153007453932971046811942966072912148309265424642962456253195895817388906925524718190968991373400107684814083129625049980704398415806386404048242009442809948259416554580208597489692686537127074442408838920090219548332523668767101014550684730117235166377336663272194657412788015553609706459657994317922688529836584279895246602564979071258168730711067064897399523501901220618990000221284608048721235596739825323978247140490722193661065944948786135174482776884948199790640837508930546992072393617288322016584354259084654601299060863441495920587102866454368179090966214203286869829648716359846046818826063456251703653335779043536905611371580233715416796717100539196414599234465965994864380115351505562173894532648988660345207646863458015995185107192071322630343440974178648262818898422607391443604622154958036342327432364210181897164900551109846233391995149630645409679858536628008192780037565191926835601702094493015256173780168872850945858229742082871905618697673265357572896919387628408070771326057328859569484682934216092059589560178057450548778708407179489408199159918859800257939215788962252790592198512161181922271601300644267820689438083484103486632504696116198989517295385770441375527125354974502225780658955039064015827736908668897907538625510325706954184908656283582425179267811176574554874524003295228494190200894450486727031315647076111260494066477876284220520150141522778468252149786244914344011077135028650215682345347668330786036400776866767003179330035766809707074340395185662756241079674728732748644516983370203890339783291155663784932705476907785474851027582654667338464197573184980609364503011669792828055993659842379944718819656210476592493251387669676247449200630229122519171654966034251434590792781530357795678125600512474221457566807082146342396425369431719188832787981380005650698722150061542827032441938066292750987648483969777007620211185178336614718226769674994542264448634429489383276634249767753332136911610893331483130911504780237042377627107007934993628730052234428036034374567155375468357577327801856665492760273305120129439412595884414505171639971931364443304853720215184799218018005859076855240714877283766794413974402408629487011432306152458357213102652191922529619486402915271830788568131888979200604676706626647597283444658374236846649920142147219906481130250879937128886527128580451063718652570162916704107183811537052818067436427603301331195318258236881331946087974815854207215861069526160282108886509908881481311562984830862726673984260592456326873740481361519532121503485345726603583552923168215765281851136856070615180528636911732710887767289676018313720819503655810260765310369422006456853145366108029187465210997047479659256462573347114249573676962609066097132755820215825596293381596995697216630000487000850003966194920605696464269919504746531916413760034425045105010650928266013611800920023839555598793952828974137292331574909905545535716298395846857862156828504797786541701277287194112969532705352473871848527362462892836667875159730479484855257182650782654855812395262210927756418363337903808988109397965845099823749660740340081717416987704325868578189741730316247862705863946576799392101964751452035727981804002313938731575722190855250042455267731240279714536212896956106491972798685469174811438066294806111785296687808827910798552029157296067289548502856485489870893627925764314485041260369344487444144942584911360550178393220560220305461658453171033876867781851774000320259979410547591686152487418414807101731549828642792990781489097413923309185697788531023600953310040516677342847332529062144227593680742005918293218189091615988616551728023318019459745108385848556991369267558765665585476996846352624450728040895056359633580949552728187348763627691896575588011997475943835058054423453658636426524091910095575770541017174507056521719237259723354340822724658378314737159213734888401557743945766497114926141172300933009635408383387670722455504669721509958631762888490191176407696604350399963276027551194733696740222349232927319448765701771079104740458928038268350178983069901254756599455027241517302795805023461979230983041305042604230179662380994326689921669517100661907679596932079636211909072922237166310717452379886099701171300811997071095582791441435625904440516925747814679527686114944150559209646524413429192434470094185394370901707044371350753648487812067617701940136671112847693368308178499407571773102016983789156618870568769280370070226158287601946813085424411607851946312610605240761460140594118076754021592702757609742714466434150192189305171583867044938175434235750673030777948751815236602539444373517356329794314322009128198648882067466505400569599464772079727070020722236888875082886426901223098624120318505475381485948721018401954134756032744300692844156093007719127486065080966308622925242956110802104416420286326349092883557684062242965928466060157227669391856121185039769148602263528456855512099148034958425641058888512834921634618341745852480256693448886994709244899710770045712744162535014004956171921809297568114858370689173708972208398198969749243875772509877646103201630064256998094462486057943008136393788903437848699292504461936584285853064792775102197344190628673782341726601198588254928025554510206139801064640877495443075817013680752467344820362302187808475008304769815926009290991269840484824536194836202118096407460054162451446625456689250727825589919520971594026960768421042778293998477466834565182890194546349112169472849932229997850708450264881019166274733801248650626771984583590498780560116438985758607448061585837025176585373148599420235176425758367024209185009888112004024659314472351163831105500602626495457860677378783463113869613114022736059115754667873525039601230794747076326235610608447166068336081981800776341998141907695449571360876556693436749647707494325999562721322240665185262581946140872954893262758623614439231307605067481262704732997419654718068730828804154007789475099290374458434927364421846312944990634417051644578342595106609453315435701956283384743822992483708201094555401880886540814393874495487194253419103496090839935563388393419862985443090580307115428897316411478171286668026837588965355573777133539756368213373511775987464906034371777256967728647930866993128382297894607064810181446187315016471154311567323102845104714336117143121369676118781738454217840611428423873265195053466075143453739116140786630996764617327803578091947893040552260318480997613852419633373632911698210455972150017775980859372966282730923998058102510025494629774216475661794656556170510939373617084239760495549429991663682278209506943729151625049481794847603349501969524544427379450542124298096377845360668642947640517449933876731367371459487194737281307832097532589606016900974042245134019456343051606939401918699818114747238137118843567568352577255756142756225359581999482444532967138881758219973757573075913687016867105468983666777961978851753489804378453277524806048030008587607459653022675526037745804843167020468523827457264080877292697181151927083144906490530357299001247619291397357951965254494427502197544892447386078620998871753967623055737863765922782402628434712178340676325898422822739200206110601394213921889182976615908670065719098368331907564883809132182388546400129711903472771274419466078592979010172835620533059713232784341898581205554503938459018929547916400585074838981801663870706210389366047532609799947697588819823069299085539879773514510104065609766941212605749276251996444807963085501167310390835410532513921182901174247912027047327236046986192593011508088657220754214149678895299207064487277223320337568981099012732074114668887671734194930917573732632055279093554015050358465437675388215022992742889178844487741462842107302708347723779468680711715079048919470135092264536303123410784513585345458286957273571492955814598642316393544499334909648575820235038086591502305084200179572939415520557165344536541688148391708406496231469511411481496406986710496591077828275012714728306313522117845541850038364623604737552596714352418378650429114814337576823419819473524285994664733017370660851390186746810958312553554956800866962223724345372671815525884659207309119386994144324030366347778630384676499139186876912752801869326380095047090233893957893388235279955992992939667606932802300370736723584630984701617868785145726356347671920361401603993197619498541314109972068137149217194764410063239606142378020268779947876384657425657878384856702648653339335826791508902630240978573363288193603488009478500728643904880644899155980217781544031852302056054088746165913654981943036306389923919982036746328611094245785657257659650317672529498667314531409075849307796498406629947205803692773139996265991823766305524784535792118738485526873395014441906610254408278616677023823802957304686004912734932790601762096075504554495100532991070559997534721224873728100271153961407059497453291076976869738322428582764997865505275611062898942114232603251272509028481873385718298076679652091318344850079652592868378885752068886838678819449577426787141151867111598541089158807333420133563217409926679551401193262243847168651847632265916983382102807131753834217053376920879683881594677339252436686337060914949531323018743962780039568959528029172523691816889942748672600556823819397994026492053219015980894527357491710553893742218000114988188136102150188875600251851839966060480133499691705085003946345959923567437399418572946910341391965631029398325609046719940224337126258446907465578101848815993034091242254574160228113451739880737682368383679282560932230740681000248033678801702947212992757559968676321290372181721762408635871652141546092580577454483012108484589706041984967622389382634300000683383808362912847417195989670424675551133392650304094483485837766194721526990394597642835275214361339983200899501951020342601375573678023320073044903119825028535952714550259248348179940244852054797603593878497032524528328693858982331070571623660569091699870055296213190859582927757498228828174890688821345210292640917292359140851916654395380654452096420862009192775142495293292018676015557856418098678193878511986834584315304697761869490359104399172641520331372792813856385432225565182911838942055560098679019809250245460816538243574081065314976569664216494682842654471125528485347964390009014094792826811074114318102595078069437302155559784076282111043046287886917040758267834305480249342146910232001440380315706087798877785096460431878008498149620382907398276086398290262508139697810572100709599097964985621955669884055759819954823410231550181042734073192471195557231662578990726825976017978696805792303835847703326035536493827635270319433122792584773835594978371057153859831880640743229098387499075470561714414415277825133824138313458206201454101115756638639654121627949783881798832963914275147381286834345581740660834885504405786768670280326832634774340133648174081477541062061586172424180709626509029803922069782929953283919805354025034150106646528383498740067035684396704967861835297128324153824603375032393131456136762260030936235196685416776417338275787632703873971660669760209867952548604399749744375414334659782824808837387503731545245736637358851455376800336621404930987703196292255237196830137973310502099879176232522856544407272226233754767554304430633477944265377763718787772551351730932801925501678851596364710174405109003560489140756434590197270401128349418883100444025155047167400228632637280401357814762877541024389251993020377186685095897844114083091730500317734282050823037904739768435367489450480520202390144528640791969026222516199410334597070168035157851319461780411771741607040760838975821686665240862038922267300094277290219705019921017947660090143098053250230184049912646054442101689285632531195718630764315264081980355450220615375110478005529041610568031427490473532064500863865061844300451054844120373208917461036774286300045440227349713768841457590164197925651892956496431634733706247525330397594324863526392935971125668320159337875894790615095105103537838225391651812985379195412995290833568949373244219653992739687173318539539123599137714847465265998428890166726222300567406162603597209735615125524250564347792952396304183619897848722221527556476377973798489488290319973095584166113174710850493691015363257986659205859860206946611107404532581257707439637592956076958372080324893529141779421621709480269216042043411562062994847661805480996964527089651110017564617137240440760946640356034722079640988143502464151033346575628080521725768465201619225899706565960274845218503857329107745565341291877966371603778305909045301851490430846671717070376965629470243265274384534319981885751083963937345407652363547887032555348907346206310935944405758383460618151484187269285811740650161973802834807333052746042512705719249609018723098525328033008650207906873789022356947224281148802553468545389236318892416253426534562447818798973939915118371346724928584572795247727748885444951851160497604081637295609978641473124958346277965028290263335901925160252378184991517556236168444417180571928997429399428228817364330268032136689012294871503782144282458688355086284681171161114458033850806628331728633376804316225393659219358959052520112551651673447428708340941825411755843529124076479526624773532267002360694125866975527536724022617549152031737852362475463818973886134649706633131514458221141828977681542603553989993859996655787817066544896203346088477801466961419554240530287164737364004971091162469430100991988039167371412023674170212825042142455029175915026929448721634579776276665957515007260330721051995878505381108790950803331297290135067604817453838123213699730595606584707868991736922027575632096114964884361118494246078124267448780672808008973000715644931965291151463699700878807483737615137432613756834341811412434167404889370587122994431337389144929638471440315542448451307586918443435486193171079073222254023058642509842340382827405726844589231873745251947116167118237987832932121808146419649600138360006029657457606406726756016593215068175659396745918599266454241103794017659146783943856148416757763888716446666272516349798547002324697976777988094052321062982249634897918040664394747810271581730252488621441830863221621122821822952013806350049969886851289568024981537448148673752441481155213093829878018078641465835750520868661046024347180673921410769637139172004423080310921996388164422647102163441334529055476006150426222219383444068181986437129514506320421102719060368068335710616046169459472449271017647310078764353830187826220964313141049403192901502071603340157740349056921257683809688609445476465318546744321482454871925478186692821351462346163317483281521727929738148491124723548419280034692938176132549130748698123744612173781296585218914974429132736950259821755594524138324923100865960215846415930464573310588728951042933049143760505086648078879908404602934663919780119411911644866751443650003082317486526308849254656399905724774810641680274165174570062611383911492685978679458125780245042237689006211481318275686332157970813787503349571571202750557685436362129930775789225317637748138000531784085035817431211553546864876896428791819578793825026182210460247786000122938622470716406187029951273271880124211346004369263264890010367739251342688135259324979017549438704596434891529383069678580814840252212421655932622693462827282309370745946606825777541602197527312371027787482553872297770384429763626468578922062325865465784950468987052642780595674213110178293492221795461797162585800845604366174855896500436409442541563518805462457279923718095613757875422977453753633828639523471173002202869940543197416736174864069938397148001065126610123801635189135046181189628726690872064387424752084292353810885874907833178016228368381182224818430931933999611123651748726526950389119571672146296924901328100912714889950674168300595933408183463338779571959675330137713674740741543643770197097732399584003512263899940899075134815433483398644866385789758841701600774005693725750105195812972995446722168419923388496243229780855125869203119192560826430707179670966078266798837004726931696529046597105120653937697143667750116409128283637286672087083922077736507232266172106883260193902895162438861432647695324775965204064145055677474935653550187869446094127566587201262837016961607793783307717447776572618387668096747256101902842018341735202454213812973276171744764376358831765631925198547708835295660539135964657934802778806256559354665047456630627099132014703848516169120149622086150955576221047259797142424538467794773870734672757813461673279037222984095819479990614103564748590610854817101097669031895750963906134294305000041495482391453434736057633494423741384139465275653509561720300251731147658343869600914059509765728367782420475069627997470647335024426145537252630171244311328930539961015360616311090046745046018164304365227227063546906238378703479629073565104400183161553949707553245153834327507788131694942854128605392881267920503154245975603424419596362730568740331197865991564653292479941682001937968158503794456675489936105462379689021864583539933653870070357254348106608687938860735885400526288526205728359974455843899133257757440964159840401517279314116414069996182344772413092925021589599423869097395456984937811516345736850911781410729771027612105363264916936765996316162422535525140754941010228551347818443779854762835548626728770783698310516726370354267613412944515194086157577789791379532498929433414507656632393794572297613574394437191477149795674502259068763005657760823171163718703575000991907913841208577049675874986794264794578402618565465879470862186747016582402600007904956306524699468553218362258407231448365716253428785962248281032757611629923021166250780533445339216471451076197602936075466703617261919801418246091859657697398013984291442311686584157262712450929825541947898587219806825914770355308835656941398504383508753821354936258584657561100946003827543524918803494057334186995901228314836310596905162621268147827148145023361109205954154995038739991577532022235809741680329476722383577537854570766375102153795271015196780647979575433676035576377168582884184915654495305803104746291595791446819040832796107695588706182153984414564340767976544067097947320710029797475148876309160863952227902619267468591871640860627590484976613641000932694281022382576606480362554569611768714058279216340265361883680403805861460337825595325862107341951761250356842685233629946725922568382005366631498692486475039622794078534424047529889001820984333896830334863816050452840645474911302938971240620130276383773431668448469657677340246811141680335760721351910388511095468944232477024940376272695722706543584927404639458433520666120873190723586586523770993882311997676591660036475868102721144059794158659067530437899396231994286532142824614891876155632769029150872776890371981596543788347781531686825934988308807031101211217763046545037390284140180341416647172114811700448598820669878069420599909479853445592419536730910901239887107177956639253799125630870567524271978396187844462574931831132389632885524621117337325753503171906887087227405077403563060038723073116832223789883611035709824965923474090127395985880544113314321505027105462217093743548590345218316061830464399599370179213028522913634687490203918066110058262709762863781457465853505829249766027905406227761889929031580036838933765758636489344569454994482177536002822077557887886277606637848575004838945049677003319512524502338381308507179125226083341732815546684416002357503323752255551544944315414646782136486523634066614193108896804448687886975065969798432907587673533764825384954001444364960850627644020991070061778048373797251400202433327888840324331679508004537275042590957598046407595748708207818276433683551104482928882463270174952556167720930444072216317016447383429783871329504716275810596514570144030993533103499794902672797211939954906699163777324068240419391704422896011503042791698513762543771024667909141516555523815358280413471969230029194684912581144434444916391854011201278531632307979507138906872308997910299933581488274507303244027369768860764916648549381194321071069009907915130146849232488000462598714816169248757105334399573864122650527443207881631344581743185946526489433559473208533222320498700041663931389768604023194818131999727281091044891080110266414220064493840873858683241506894317456660003075763953492732697369150138474619496063974092089752900747674909564800659585784064886863725503933207402384313270042011029637307973257383274246807033292055134754677464727343419287933867362066106522542214030901804703677003010185505422408810957882881293488617789617142554063509978684225167893311348775257005124125625228167633508679731075478279943107366726819564843767441539234411888353264392239859270506319026028150203465422304858413786193417267800816336612851468305475557404677832608513784216241735004842071153746029649868696964730266681719334152341416489661037526497125194103019712631753440682236447531009110823423032848287812784071414372375466383261583224779265873058259299977367821749107556210847686580852819873230469947526553140688682305034288031374109774252509677901074289810237761082668505233732117840076912719689309691004269794724041044325090539368810318502072150101445403390975308438444074419612181594247599844557013532922601676870801132762973742344334285782164224249479525982242306603586109282167121531242299900753152790452746154376795892205921838181339429204217602791673824530521635256960927635535352505964524212522339032248435712775729446757461950792399266738822435265384474467719000961227449169077420826460570321384980486956195090083345545935335556117959903711865936815783910919098211442786659014578766841878381195627053060066551066801796305202322261227652084903829640271480048316832027691125745851488449729334189128069692823164028070891723192511199244001951036901299693311325670160448529076578993977205301607474250151913341475777528399988365423373678741364903582908069692003804995013844752653098330235617925182001152457878678391853310011038353369558359966471191737558130199652208407861805360571393451365077765370305375868392175397367615911525935863223815674095706107901340951392943216010249465980717330523259479768337188490712899605477078838600633866863905873052441362057388250226688354576906882830039446993820156621209909339081643639508089896470948306374803248968416452061470308980549325473954520629395648349689845487604932119958025228929833045396103921320931362423772924592765060776196330342101805522103017604224399698692996751195835059977743501941068300844957672458243839131148221883197526255256411818493211984336399985830294876627866574859472772908139717793395267826208958077018404119332272979196386911900317224158187714796511682295434555967725168164801161024303828577463114149674154754321725662747109943859024948038803951680647347449500933329151688106556684963530949011699298591242685867516093556205491667057961914212774240395696514555147676055402581886781079741361300226004252698799224849177817033001853958159165663060593940245200299886579856328697122487614988490379482185956364732877378418495329462738444634792488368496385172923859397354361305947541530099421663066929330695601658596479285171068020692858042893431637375833721339499788433894728732213765140247823378061793960124518100709850786683497017175311464093997253676850755562507436768302350542942209032008964923493904669094385674288607306968944399735887109611069584968194724224303126566979004923975612949052249652805534091746103004186111861703446406742431409426292397177062563406333318606628262030000137008016062224969335050810370083579350956247672566047647976995938222394234560820624789547136175041320563917111294166038695692116731024784949758491151681522691350570573222976750065602976799058281646658846768164453745903929497744396996829273944867973648634941575813688764411642930279391190161882822850094159452177668315483085187901283196004635906196379842751634552908468819179537187498317369228998222962263171570355275694046927915645882596398612284363083186850382400858103804906042532088629668140074136083297416120255806313270140567245410073392081875902936893340761326406502204926984711374461214838610670981064544170943178811415171569572788433200991772743320316777155224435246034864864818069082250985611681172521953946904060918461085325117681660527885332455411501420259210378924310066163420540118998633726659519623440104547469824869149809697922249548656798069162383014260788470626358397891065505794709138667652342988383285984887469152547214663648162502505933086749435188945831251010921581083571829414432753086494967750301130829742549874641256722861875640588110091888340045258145071763080536871320204840967239687052454440998144197942389108267556446769788715621559708065690511092644379405194741445704425113137387568341580255368795279770988122888600836527717321950937406667755388456547463899128162904515386044041222180447634464428984713657274977331445345101996904907245757349365493613852250688191021615865605764374918927881969311402857809681075881442063908512779199569742773093949198989157174989396550637187335058048351563562291967257714450804259516419714228480718628250750045078022368391337943587027461801052575794572344612513680952350818891531660451527062524319005764843813074658610442811443402527542627273005440063406603014988763361761208571958621737122354243275181734478063356048080271329147175730503713658375224975304058909436275051241446320753468534792648013892271415872036454916220768929445620373894494113626458092515334065423061704226418546526085087935334375732461022454361815235258685343365235860283989337456671377827345051101757057120620480523970953814039221822585157218207489782140577948463661791873408266846023352276346773201619076940284569308115524763511073770234407112628619415688315229211663233424497439014507749741520176410030269241243878247088860611334814222939513546848721065733487013448286771374837031767554776663922457784226448041333240051700829621390338155219001742681198468794120908011994273189210974482932452019118385366674679986350242942999161935904867931619114247695614812389867660860186634233586997605216020846661302324115832325457591252826221891145291661080383465199833896215289868625912840960452710785488048452353067457089755510375656491234822335456261231568296771241706780532540779898757866557261619789622036160150161397238221461919051400272876331672229572665645951715140556652123375729869385265482450298329720031288802387904004192017064719062764254756821860862576565508661747515685117856444387538690813392946409992250133536550826565567214541543006590632358696619375456133753075605174196940928634758944511947085005571671478456946720597119811045763543937753483170734907547981713840736999452678191960338671890794647296345549674451675528373572711027197309933185814902296027414616610073113397436839484958181696913758169598142132276304290312100374306870398944318123786327658212866394896991395645981360785156953089216987822749322779537691566739341118466962004109465444765574772169747573858248261434040590609433830196236136407459522845722923830987056842423640598105773464309585761430601138492926796648368943087343936864422531646939186991939120127346337330542309099031798537211911428277712329654062583099799834062637088582243022058053443528772557865056995463576180373755115691395347776752081474464271610610188643851401388597765831109782660237645961940368058333989211657605283694919510492999912368032302055329062623001445408326991954209175974853843255208451751720829461846131636906723328379940731126280667546429453579356091768709887538511209440996726829493441442477020357037165635721785592021396395311718533275604915230437913050568254682433647792016897062700702107728771577399581053946684429597027006756367777232669297588099985528617676988480316898524114113814492582497007491844458782241057103902531395943582318229190002867407305863720503213096037463044781246630994977482965403095634121314899829087122952450645871234358719189050649248876296055264421151153588623935039751812336120943045653677691109044031464796423482406871169346233489178759045629723943553519979836645558814681760611945916763961796344041366296239501707436342921330799702480847555351688225194225070304676214920350792039262859145223819085452468578334908033566631314834554765466155775020332748323746839680530366353217063825322491458125388606975589976065207939747923492912078761714092109564527739490945830094342470596118566151211734734706004251887118738379905128059189397564023178521776245264216668332276393367395355734082990851343190332668273774262174667650741676478700920389236607613281300684251070384808663906778685874507721610267363222044447909983595576931813266285628826772459938836380153143830812140776632069606850338237629803230594478411002257010748128067442696740446780203307502881863274848678038622405739700395438434247891189844770851144794034100767796541965789298401262174636154508364401199314889672030588882155468197511590155867799609578077732830134102219517397666980264155295008629664241096749938122367691778414685700868855842001150451654533055708405187151931234991413537376426314623419328177192824862958141295802867582224316789729401459756258595135548363860965420848586527674818737955603723104480740931332070664021242527517188153709897229224391128121962640498537278696429450535267184269878661498689181173660354438115991385770039813001472478228877928435106659857406822137406375570220869374806779280112853253208770219630914780767916158989661346860164291018594232409972455615144597473046664918979097397507177776716511797145474011958135026988289656444514783558781816959555187370667463404846175708201848107376427586061597109537518009790237874909390575025836719675056687524550760372309264453829463223934919097027108184430707068992090309441257480729728272995732647644056537893254168197155929212688545156370007691596214989533466650677077757696606803922350069501991915537938013251470285609046098969332294172990901245376897041958115938581398015921790743078669754473724259564487416547994530782649739041163562746640707566869425448186992750082890324624741009689669765565351720208401761308464591014050456606694212960943416526359148806236485544929714585447619977933299907591637194773989569581712523003112958413434198692610916288006162089472559356062332838756442223723760366934495621575921312598010728043825941929273145307982445122969841718750063297771297838377728185951025571081721863724456475246417848906724330327281673788885193442435781854563500484590893582803006459753621059160875504669534388064650358178326938207049337064408756546622510013065585198066727804073139955692484460621173078736484221975966972814040189137337885466822020628477022869442244145119036400766157000528072053116549651213859764158935148980179634594677586345847204388467688465967815502486965474194125855255509705679111087051696807436489632467879310072307077899335864640631659197014257433189750320446623974969509326689624163373173133003931115208170700108329906889351627533427603138115958426608339557516251822668642546179287541503940407681708006561373607582096533131283298707933752040362935871332321351275582635402302454732739182895997145437136220819969711935634282001690047948704520049592035602820839702993055734780798870075113392620962199825169672756881681220833487813982660272576054153498825856162055637994820033048477754892798163760474683478157134118380259192012589781886231047383734563508436157914934452765331229543732814728622096261831344379280604520807832837478212543803257589573494293069257367239775035564147488980226343920596190684278034619995465853879572321511562371870259011469122582626074705460456592829246476463737596887357469846286712452933214169378052710494582913363816254106858907579700837251804825877173821221569113382633471516964185723173461463492359841188659134828589337214178956109718223411793272952706709000816725259018427888106397584405384893413163494496426214515872297559387121380270685883705565360247770287926682945278471029261200886157849576657702533892650753541337377959418778840828174994432012162238681823435889624056168661979752043656637076496665975197591284212529717035754948979280882945967966917488045766308805384382306681260611354924367220229857699151973911590918973627529567551583478512358039254623086938056765356523740744732204786060392993596387061251777164429794786138553156027837501519620366717478062209976201648988028533462738187277469534767813294789342028196706265992778296719332701305223205955971414557861329701887874323829617260698670032186612781913363222727086912930042666827110905731159120276591316287676783464963450792674461178456102738691641530091574980020997831130732789599068641873009541359060942959500247304460723540656996295590225003744915577842521643993306338663824000401039378484469425891438320275010572019273016665470106883604882643548496884023067320914367703212006307199045226973716467782148264581756620382202081285795468839833058139354179672242277757818896479866993339137168315442204499270969544833632341017700335073264728864101523718145635293887590611344325689538705210489744845753414580414547930049219723535941329829358025642110503281046465217310531373744008138821121500244165701974081124141650404860097036170123942311472480133776159239991805881219582903895119926990959822968504732012582304722988711135218055361920556127074311454246638936443282455280754043526501425119031267701086119842856844200218576888016431881638692803620833841104725455026503589262391333760597664189090217473933084251006888553598117467005495406761499814809692803839951930799856552151128587322303122734598047641678011855437690814343943497922078071291820177415459762519196859122282482267390458133777175460035151675764896206821447823513903026977741944787387041972200314055149462696870986583234721671777598946318252117401960999762733772399350318938321357113400813563691273746594807512121213169064923394022656480046986628534311514845952932367610720209529149162303733274303859971880530935898429684807001893288492817895645762862431329012050755879169987554201570444660616040051244038806993448097520120507546986731582261719373800452643589562576077884337527611043345383740871498729094524915341737029342691055513903933197401690184832836515640619179749082555689268551310365056876730323386546940448346739941031610215456604459538214195659583698853855382741219255138819809711644901396739430979062986316176624115748685883996494537956715528390918254644848061025641140430973405808081795822719578713201860606573777962639107370192794784955107872787242769561339761941685443248072791163041966887327835602902809592319968772165372588502062147184324876577917655096195333790246800267028833788406700596122754570733187763267782816256586894618224159635796483779560626420615665681890683852528797517732775756594866613502509160668765895599378682563426187837337898429171444126090217231790211445517755517906536973422518055466492054959209600697401694056908009852699550521156946662192155748044169666171020077799055858809723261989421862237125117670919259384154066220394756417782456001035791845316862733319056355851235444551369561767229006286156402050003411081877012178769143107404224074668588321647248991879681941905304438552578607936229457288900038563755451722882755594692139378284746560157101930582947578868233474140228687756959252477635702911457731439898132212198422071581908080666717849537764757440448196416400255736257877057474840814752116412963483652753833761176753900912187086842577577107159328560832933336030640347571110055910989621555586677348529554106786360761826457634596722342416554466483993840874920376437863632508852856181546049499209165977750054551259571127628880675604406524870221940514283494706070459765475052307694788733073026109546359804901055507008732351262313849505534161340680257503916986890697399898291292591645859530239289111915882099714306943409395670518068371867347452738142499374793644484101273658280403708433720533370417525726344613032314388090035644399567162840212313998137622224567529325683595118708034489229363840118530987847313959969759337973993076572026409542556259649515928247627536634293720534820780173710760957440989702783747626875438248097633169119333405624144155240131852389875614516733927808057319924620270164487416901494364343383811156925182286016806431965507309764387266254295791839680310356620313251222416305598553836445567060844327438411849392448216967012033162862246883583861595006587152930895121504963077009491121468188471291432330687332198570217217226046516013059991428911129527909270076703932208162471109067505256097030901355834315673587508159895335695815276389358148959043288679880775702427945826492378789008502239177060819108535573847260825984115798789157003654823861573113908926694193663957569868102263005789617917164016949940659343337407438021557009917498821856748326217039907537254125417304098236190693130130032375161870527576034128926999015475056363688057467587701425622070624559626094509853378079983938796775670371036112863871405170584223665285670629151979205949075739696122315775045645398878165041009678099304887750637750593845141768794368146310828475898301114050676641321181803794485877767335592032676843133121822250260589233165779100930662960687317984968836202997567595991887543155196867175853013054349162801510121760187668926617089284331984005412858031655215129655954903587719740432378536550680161271414521548817596157712433327581901460282746942479052487040501874657643737505885049269790910160274038971556153862857991198844264963898135755070240717904876465467825290580515697865342320737713018149668711752269225105598635826079695756582061746814020397243299725837337561398739804998196264701781546636463891205792272765692662490125345949216760583458365828557329995869684841889793481993025838708636720816753588163794452703100383554094683466114906972235914234051714414028413041480858974199942816868160781263883791438011370869872098714586380253375504908955059828630756794221727336602283354647230889824504593051252169058552544015633256874871331622691779197465389570368452447394897585049943591999652951816045092315255089574292550437634226799922862396600645505934210294091269883285280832900152043635925555460705771172110246031412842087560352601379242475794836875082221610389090983258887918446161646536414836812540260653530311980401004898762747242929302881036795129637761082589326001607946501232828463747966370648509358289266037193555759079454528869585014501707780139126138150238647239429498882598588417606046122776640872307484639993779845904070766002856571486590264682879657909056261939320267332932650229652968710091264838968459588979044151306199081811681844812332142263662011697874199111838708146851599305126678726071953855583834646640845168354062405652927555718287408415667222774346688185936463892152796538180020650638456044354775764240430512826772573258229565767899247554041793511728301860673553506389705126413562594055663400460561295446527921100886074441832402012886922625044384179895353256573974159090408172420477311019227712410244506762415943707652079158716761132619813809931469963284523226646933554839763640214283774246107035577216936438216841717346535619381265146776214192302538877658800729496529155368323345096839427696085379298272280467083978992243283562488845937313841974014514200037669996056789722698113963868098508163228738035755751732226588624957917951485468103582998996641393790430576282202788390007918750656207558777909629063312540800008247598984983355027746700111734140034335609077276316044188784648016018611394750765590378127216809019187853927145338447928920500235878042778234220939349679408917696634846003124761729968868989839294379198777301077466515096289369367456074133295068569792931133396990945753259205691578435448390053300317223688447949777516978133444601752412996938428343973450445669735117036231787499748681488680056855007329002730967877336139993164256254043419837482049563704494029691738569023069896105872318121549250452753842273127974590517062433026228629562620208241660385642013114527673614361097125245244317484616634682556314705469473477557456095446446772071321669358064535137067781926163603798902590745062134439979074810520306586315327119298080932990198658527288177058729297952820965526170349121687931175649110729724932783119385758459912217102861750647389404801749658961947091639257505559530685629763750439031563718444181036655556106666109608623266991118222995815488203282591665810721256985576717230558661158315022736043611446968640806969578600199004977471845680692855257136638654344318139874666851846212997503655264693892096410668736103624934064315174832098090914823303501596775095748163409662826109149968393376745337801932930907158771923004115794104223307859338423128834786095294449996336374356108400213168944829964190697991499292244395982312808773515939945527598233370701093498496899099322003490043505365015339614537113516933617827183658593756910873839546221355108810842836892321751846649518755535897831388276139721425084509146062072715096824656873619265691014915189514311104410442716429080570923166484388854890605766342430110439988620792830809456375986526824149226808304471997870626458926040820059438584101204496726946627382201291954500527727133172318679736560158219485956111651759793118338579044604953040933648481093573535514850761341320979526249076699485604518674203121675824216627617057944430908651930157335525213777494456504066038288528815768131385517932894060405896596437985750059220894075194531355311135204170350321254720335550100775306690066106166299984711639806408574804718630803001959487409555121236491703504084671589510720877999235665041970099548465535253220519229488577302578574265643518904704418519346138279154763616631883218299653615149147901771440446817193427687556911303217040403627962408504159588202821346099813801067961913455705612133501088663089530174154537519170346086073246165584653330322456864430681366399228168111187521218048994819763838279693618485549258838039312925225836255296846486512551726068366769597064313898038730783484057018500180224224297370073549602037686625195022268482514303378977386899401984305439031854156009188772394785367694198679760241465071381369653543634384034136934304060628733191502333135620254065326841341984187490746063692741859174711377046732328001167400817670678216829309096553191167543058726512716152436008318899284463107115385023065052528943946746860294571113503977923052291370923207478208199166134957503150531298964521170774451698051897524971662400420143852577040892592228587652818724608654993694770077262384525362367948771393010742842109045182736551669431083342485074573926277520220050335296484282200385666036782680769490404239913351762845411495357335660416983804982213475582260246774150257522986537006805350864662664522346266438392174876634070797208258526285414691753337591570769423376852545371628467929318408507438510855290351981031913677112314383306912439341936886187395657821078965645279613155326589876231750598899312536636668086542437657628957875302736653687079498212852247751650832172271784709367411178544157243394566677350776666037116414027660183905431364835747942162558165594875599892309831839651467252468081418923873532928523730808446269165879641880450289921872048557748478323240103285397365682605272840772158477281815455486962578212035248555815440361245227570252432078081224553075466218118223921547516161489114318196021651686892381115328419893402513181355607909860313598550954153249141227645897050188328837034486277708047679011776439094313681548938067625226396074001256266265033494243103612480681389490588249581426682118776378469218123658138350840888681285048079763247120423448758983064268706663668861483196068980019824102591924167724001543309007033554559812069535368016032275888308649805761874419286849348873600100314744174940657731595270883971738270549579709134552106200512443953412763449334716771870380404869644449360583276886338392807735022473845776831931603561879170162001338970034881832340173979192527370906507035229923295201270407093110732292728577391843068133800025474632573596031775588455742214183633787026808755015939456384226140136243102774312164643993648384172889307202196375307450023476937171690751964648398054749884132341535487715123794265639177597808389930694754298483074901037413193091775159610414584728965099541156966261627923411138478376176392628290427744456571774146316950228139063747864563096702656443985500959401016976109963269592406693610723697979431700889341671003007245446654775461475296216277840452790986818238328330330379327208698362805243904084282341078280750989080554005822913249692173424081921244186413467212952104213937794597613973830838430484703289335506120778523862998075423813251379594835027648449988135947307119178068368961225428183533595508121911789547405917813737464492116162968849326736422831913192432644078944356842110726696200022865405107229694429008187139432093029986620547398401289555605604605595882306262919025413427322067410820602695369847148171267133011254182214596497450546838560477108919767093825410381552161234034904556921433944282598278181709675121350598598036704526751914681041858889149203256143522902777940883654588627826596760994574697580964210101587859816484942812568107100976693232411910980658226028269414750066935985331875397036828654934621519251506830278386643184209173589949582717044820956136404495142506812801484329849047919238481144941232701359542525155286733832626869741383626739888544854056453979385906820779806346150353610637187085328199395148183387059720312071682172937926185830017226147380846575290325473903822291209878786388778291523948626390711074172756065531150845872654166580983124072169268241680603940339859385845296504796403957733327217347688149203639005344062018475781756972805897933660055516646965721787186161530453712956156114100724619423450681091138750490609978523915640966477890801554002651098105752795163399808570851961386958579555621232830538852123771157585894985760398873282018082916198880366912332333277871026657707810253326831031806280824262904913244511574920232983929280631532082254803539598421817876450467406914864738201740984350485234305089029871216072440638324630353261852663624873941254728715135404559967659379920071655307044380729520289730218360533123068400646979592982381323217382969695741943694922052402528947881685685980016726134751212779783101899712054348253189299942488322184833223404655132768858715714248842285649443630064284815284747421695387203901576056417684199664469257865147227174255914154070337917382318533566806350607979484398420252200373837622907939392560050404748844564501756306362746676083227604621912807665158035577565058412056551111698770607771649178988597699633166558453817680061060401901740075201442364832930419006067536343825401600867511251917280037559237817044387485677059245887732340918083752695705765535731568390992294642483820859700611467655690928647355257449615985454420365730633536265504985519204172842677226236729308810035213645181261642871424935914652952994255055891384396704838798915305985327499836503881169373198317728712490193881655018004287450532472226906867865967172452621966376337021216372136041041074883727067820893839768587765977909723448941756617983781258386340144608462903689763128890889286757133749108623164228790254592932645443836283528840237663993558906861527624625227527299671501644855034105709389678052175345219217836035604696730227063667465946983807350357207405913035296641968585813200413548672662755838085312776759868767708305294254792858496669929563284292891844796049231243608894720188573692815894235079443218967819849627206355024828097666271308773890371801484978469708410030595221805456052978818073460151825015144797973613649152749506506255380027714860998805416148302740831845568363853606281847547051536875910543047940754990716686640275464945748645139696074231839887446715757612315865880244439337276356363386218245890226617735879202296354086833720960044285649196105760477832752305834633009265530087408939468133997096761128168538636966823896525328259426199520021165637532312963899126299121577110504734110932401172213483417798248295471584245215693768434822232426474079661084471349126599859901187187203797513408133562296319706798949889124728203269059374991473284170120998758919875481526186177143903461903831970085388476947817928496375911592202504703830765476044201708303323999087299654041794500652556432326581400637219306591870618993407676289315423864616445713911761058690373268025146707262471199305010792242660919753742688573697871993379242707759521494552513742520228348596892838259135828633116328052907938248766252411295516371276139315396676800656485190565133674761678340487672727400515152807731662418867678565482314258111641350006051846307757700655194610304485489254389735631108722531711356695002108573182064047287358093068221175334106615969469367609419129303879584032451235772797657099911207150294152700958398586989235393968558239001003643949771437524204369937614792611403411283462849177051717111177004576223876357200765070024921125471388970281137842075459561160087790391207225037123660380849121635119261812603107343612885633603856448708339922073657757448186380777832147798621565716041922402194320621409702058686022073796333597573891008983199561745948348336783057050420018134981889501501095657390941024496225416144300584323258400351877625254070016505628248911044758942679363773268773112294934195721231415182308744276973507383776611459917860185297292396048164667183833740427068726719114831437019114511987571416677150622520237809218939690225119144095983507381226419924085338698558032002180766351093939182897926863076651639999619598387019009452082566916739971147537122685483692767422696822828981128034321219244762441153946162198297954679153464750433100364366225410497659246291492158910061139503931412057129078082646595989513821044752960046985667979398811432778175338515068529158540720526492553270909097512219301546074418495342812388148034714334561449706425049216366306858993395431297561554988764466031021603979746014411583303149792000766769931012845183285896198550346408031316868263434564432882505619725859096311751485643761431860159693775001046957215271057913007500866276324811021420243849347003259903647729656208137215140968978974195942444973877040018868895209873631748717492618082015597811809234227256462120350050852120869563268805187290388025173741132107067308264323453081246276889576986002692932745785646752927688346574225078785401929607331338902941854780060027687619903158063000685490313150942916527541478315301135035722688908392963067505072354810291206882655640891101909537233016196920962393590046845395296616865107256105200622311044682636962948651367240094400907959331167681093596347269062373567803298740731973680322248800909336361370590214448624210565891294079800166446224623082328513356256123177091201313790301950108968938731540894163430698940090213283283799484029943720246413581708741221504180387643744330613754474725671171889232999400381772649247012738237187136847765459760368688527253561619580378513374808468209780404766402792762175605786507186523771576325452618990582762634128032069619918274944258872255514244705240453022547872659428471646625621174157166951626322746744111708465914985559426525882222987147253500081304719669021835761865160440295547033666102125673221856380512348300578382270298590577543216631763265833815900418533068786550461739082225804462670679594007927836633706066202575418180403516969186208992984003413665468875711538840598447248771235852560918693529795874659495679982971862214710563631689136085780695050669319283716583306375747206119830263828360638153459388241520196071868156816794180358420673408480906674505110719904888345517655277566810261830959065572156508396562612966081190443202238280504857785997877217484556362772038053522924483147167559555575185378182052975732532484130631039869685470434921431772732719425903523980408968725816775818864043702249377648291102466466894427397985160163964131178340740959628727015667751178830771364118299981899159021636655667523177790380500525674033776178004120298220316559457187229073878847682783210272080123523434323878243559874128963991846505202264191937440196475218658608172191201341794853216888590418681985487238538650458239489487581216013319887482147257179684083965784833875752901896855953892599501724029162319694572528714342176233522250105739948521100371817838099090606666853419427337164023056792962248897264311247914134227977251777959932400730343135833018134539623779912146606140339564701285677813370581491107532953279884714949733243250955580773302840076346955497833426746172228863279867988965932076604358431491767644856382760174977143293982078902247669752079662037291103214463626469987246833159475195990048110004642370163858333729925591162082881949494534961462817020301718520055577881698331288032091780587824389328482773111166985507400442645140198254521368857339792540054763427825110088323564915316598999830865745107190197038722223492779291765739129555666739096445490164482818523250438769537470526574507088395776346996280975519281593294218909281642351892677434141231021477650250581814472385609263946698021582053911296402331637255480369494037768048853673847231959394600256005151599126717751628882264660521989587495614436412280051139143970367716923546212805264930896334186104261416153824068875541665436701522481320922514597276504782535178835712207773814747105516004873886679349678858248953326144473832397235789271119294271295352862876832362831183531761613300850892168591125723517525941757497037363265573032988190758975037527126776380385790300225630843315810330860565324010257654251943385128998714251461460717375307350028743255016299039850339998712830623852033632616510473166588892059578066572977654642199394932752049973794301439234017898368544119281115425190964759467072826152532487354500677483105964106043898026269972247558765523154065322740355613019899262657665753090383460915257449434001392131516199235366204785456693419811985130796169060378714073830887265669713772659764727220764264620146266338897858011044325460431937332169564528633093950457192671889337750653570288062635269040902621464006010489786627076767512217863016434066503855132015795359692647023827010283896111308926330569600440364728612749119232383705080286101731575503951025008012020705307067816502371104192027692657706808975780686240504932525045069981229256402558387769857041836054852024774019787601396844253751286768825391115280526994584856242567831986434107973748560057925029058737266406345190338101900153665765657681204291064687675594430559738382053237510091297619687543586194148851077973748611285441112158452863529872052211596119594172183901797222775912275465601462619963003710514571206082445468863021198310897905974929582351710864255059376471785950380929795768474579521424015513324289860382330327781450437494281814946593994088202905460693252582331073697900937383137100658336488260717182633165967292035764888817616282770236280804854511207347517349638922330678984763079387834742063976103437385878118917527327945658358507151229232588730367802382031118662391520568392963220435953887777681669237580332216479680766980210268881599825377765301445959768441876109760685276822141956750164937229261822091344308393694058277661532037054841981365341956918201510838807439637755715502193536434660531771962442049088602824638518236784593601894503451339661553726109668640579645150922714065827677879752945019080832413414264495226853776648478303020712656277746100769064605142664992554543293993783784746367685383533360444515091619455677149370766080424570598391003381988728459583985549916239567073023304881842695681454967071311010517797157681370766091364686118730803710204742840199315097606321391091732156222821623052998540390717234941571389043055960000047414485103886750841107715367472366451110963050114137255122792813009595225071899801417735309954198560592246075930630236477145342474527856457674982281493106289390912052053814582499293234456215776722764620143164523892814877656681753472043842938406330251801155822422526637997571687867452708612884607124549776185517295193456590740966717059288621602954011163842296404980749364024587718123354479830845599880976268938428193867049375419863820220514323989811832692714480187548696126491572104119418194114820276825643884806864740868240887757716532717377100563023514696020556813166087722978896377714031216743230371459958391134247043999959601116309951007945533854972837250421277467714647863575226144021597517773035084139727820427485178448177445365785750197237910148276120189312276477143666733553876930393443409375332041571040194869174309736252778801643706149256888865963880808759459477530789961967435783560201427314753657412192922385134432339410766287473241117822786141047591736811310027126367726473968082891845225981906363924802446598984500838616222433493736069286897157677820593749902260835307168877465965702546997696145117684407341676476639009060147251868690860835966107501430669632625149382463340126144396129461513360668160190840748014157766411155854740051194567799228935543055392404408011586215949629515118369720614313470100669301121755893821734939732123348407719943451263684903554403513212650104635591867053808229580044964532029759458859089905664595854384305781789433119000024381606065731424670971999103689615159608545186617801206029559479673823086899695953705507241751805863025610018706942543087825722384559507944699311274482632792525010577794714206850431967397701104958410313487765249331404708083934042648552015042657800378410189334489554027641390747233277793910414249704817569698882647865982518393877632724916458106134092622161289530896807901480364188078806419245401634675129751702656003025202306542769463365020437512377370982767491514107818677415851227528296128034719766697784436607206340449752848996483869030389680022365216016104415821324759088771179364343743069877701653717852162211857297629233240172445680409828439472486604894421895666155027133052270307605334040483190550653701287388242244127912127774405839442865385126424849224126342908432365814767626359789272647745200631315325418961174742157305179854135528996925503729515968999747378175852123803977019498327943489070083457824221401230499574682567765459636196668126866084458050657469177825569664983474870343808201596943939796853122275648851871420319757449324125849516181832116175007505547480553603675426642013338984862126197525145411415656733026393962502861562540892413156260589942996646665014118292830188993935634536881626929755251740804429567629299938695522763050072681512753348638184623917174497601580171501448914176819827450450906459433163904184842601770436876483407693465459227341745198132179840033888376319147462769140008237515064382182882486172423651909153878313993379315936332288031856702093703780078743179425174791835328334995399617270706466505627671770221051739603157599095000769861078675486306790673212410719188641052300825712501357765135608690131391775474866025770419350691442316781268657653557141185635653020639137787252782210728846130445337782347916824450419200291982760393070074657493554957047315679778524752247800802826125563469540745321965329294208253056592890289572463739235875102727174402136756001271361543553498409351587422813628224070918935858438299347864937545255139077024260100925376445010883640880687150233373633546072477178309279482407833159687215321201829146586342448987926714648765636565351220650024442010438733460702329166116633702820497133482089793411151136567075374895741068297612029007909535322449866120004807326994276067865413283754632874159309786910781304940661300923340463339618390893544787203880605256068994073586003025827842464541604506028385618586246824384577826204632569777922303212298325772511574365153614939712086413522051464420604775206405705740085400155721965336528109872861426033492404450080584077045179423045125434720283539169475162547665825302487639691811867466010852057655158611743254450579783653663431406294955453754609757241718145358310828940727685587757283101020229781642391269245009173585229410759581075621195577323349769752863314508904045007272818579811701417531996594882117393134862947607653028511041446327281325283220951614608148815282310244032223996599582668556082855795509045134895842332455407823646133778553054585806205958403040990308564576836366532086619670096672377386835527586019260767211316274683288318396741705540141036120468871454225792247674796169659858107013478203357652059086334445839388671624501570453074417419776945279705499188489462544706627611918510196067704256951250076962923306703910540891237462989173191804370560932594113384553648092537069152137062347076383536007905677801682759198230411676577158107873154134898165785099326345495812769007464927501218898166343257487573967764644721328913829205963484538492912520348682404682052321895085778333665869537146962620977128396431365851250173311473856653383610984210885338107328562245157865014423782931867979001081742372983374125661382369181662357045683436543061758323115181707110726192549469128155200194216994972740662836490069879285713657997819799055339068476387578863760516510240819509828824372190165997311291390190028964433395491157295733691923687413805869160999004541613527789159908961920635249888860530218524776731253328494570148752612900098259179266304893268448305959717214962697246576702437477905214907268148356494730554417488343202743636379618884107488412196627365631663418034903635384413785769485530878801463923170474749244629507370878035759021846751519412203788246030966938620020945413099306667848259593172187295885132070552873226431859085749696346180129014587254576871481719097171191102707588881028898994145585694661572011966010878843233341944757123857731938941126043734110119190332144821692498841955076426698879466510672400510290135193194755356074861150978546888165400298717242129608176918643408281381555517713051658631129946630675912253874248014594227868218767279799088534423849112368815274830933334354830905914270777820316518898426377284722998591319547407128303661633017636087030616474586300487780432598262013816507711927633720045396041809929255717516725134892296896881385650620909337172840130774548986015255193127331467365957121065987135848976897472158754054867544308778805534842698023228169831558694461925755346600276184449324067752772175190079938746968615283376955124354029013093276973444308332861493584745777394761638146131864729074584052689404749758962679876626616691467296689699043080001159070182308687696670657199227562612828931708719463108613007251551118015675081039010049099089228371358122480235724844794887338213144579670533843468974527881354223059039910234872722275435881800568849713712817667462978196059357298855094077480203171827974089527639048026554050160917342201393886374664401548834761114163154079989373373935791872712261124137846204940276668792996148880283883943286215807530103295259043796006491351164391953941156003905596293897946262984878086721481974976691242180251067764735380541658217412872904564954987815408642070715835663447658952909859853700244418408316984632983835671954336340914236512300582268312106375665265689904695645300293906644563710540280947984321147048697120690400518207779447727036408625957547016483708000572433183309382277189420874194695302899865459323410230128105021155825582713398320154478666133385645065314969812514032749014169258619289341066799161593401597181459594174870466967721480201298312864414367155643695122683212432762553849384754444448040261299052045696717911481253912787671502600615285236562887321786710767755968430109576526345386221895216315769215288619097366250956235746797402836544942603845237610411467988793949671231051532155651334143870512781939600003189456165226073559255177749804679512399618671032358350400043086663492704657472024515423847110486219736980457754565384458072355411736611654175206189723444240397319607764719985199396945802026958103263511536953308798412394944600332233599948278173170379107859539219580730706774956649740197878608543771379376540086458086901519456930076799369334213226208800165696460226049776105125373022965011632533068533499676108391326336835906236122289030454233095023597378511577134116945083807776399559244333730525714541608012788192028241655674533850095902806240773784943943261756080546883823447425884570292593955514762745118752297589864830668192188041455922015289700481101587610480381490913097971572695400065876861459139412030573869373429526234983636667216048490276141993756159966078878433400203794703134449074561080229763306112109268643786045699890380309984301501330614838127182492673138238624644351638359949449733046352912125466482267814383948918631540016548823452920697242226507495400577087891523241475127759027588904282500387259508059434038130680516119979821606954464020759896083289429197881963835461697414427011508845336047374698573976657006110082171595794190232109636916817725951101120387288037662770606075303926524421458200359848190640842661734824705663687065573277498283980707550884176845736580064921941258295777337950514912317166540824338014268147411342800924598951333025465124380170411756896068705022092732047236233063557996657099967685231581201638841393007188720525243805432431502018763146189684474411426961186849822108608544228235393983800161455677660656940303220370391805214778489817052908851445207098975199392152175857612027779587331540240173851512718288311089060129863479298364784260932414812286512180460231174262255188906310525955669258936877533787744081590069307557873569184646465402327126350431398167370257548228533215304452705914352071456710934685985551227886161546870391804804792844592961515481527773434442968476060100410029792876377078923797730601483802934052374528062096202974534062627157707258221146636892119805294675696978430225836812039069688515077581735929823066975587531148742149953481138479474191238112759063722485198482536744693932543816144972091121725969114289621881046371037517062908716026298767216945367435989781778575050295415799020466878671535737548903262536760766489526118161051246552447093131932691076608991789277225760470109419854751878391021760280803093749932278407052759403616859958340889740633009212539401120071947545493466766769887535463802061923130264236470235290949065209002706948949075180813758881646337627239866377946151497177157522334306676742301172458245005788890257474240029964234384335698038927185776953539961515712083182887487899753167521685777181933414276804209843746070690923170002475642125856292775837572210686966856700067401776939804737867771068609378994955862183587359137124164722856191505056565502917496639550682548927498866209376666687740315719239483568059526812830534832075861880204742620896958349112445419424382981657642926917602198261320031710751297553993051415651070757576193473470877052996977883670229984519123235086110880148378154371429174949426282099075815701101206390323446023051103389063930595847779355168107261102342287407357538956367904181619442281321101707853325302015866040271828175128871289702332835571225769515495165411196567708304327793281377172013127349083591711667295836606907294684085469870772256682975079285505795820527030061389797353849822910942604375143611740388552448988762509027957147510404430911517435702408850031206950104310801471715079679013626424454377205498299171848050650827408015509258608083236447259585270525705385428904734501855872432337726423719918067698008174423832896205707577713566562915073458112886692442627793671818707177724997297966124391410688234693649398280906077303583853169273304497806817595923146512791411386958217389549555691665341907704757087774837699670271785002815000066223783114262922823191554680884528708928613979611431946841338647685678595084917095611644235351453010511817830470323491564907563911841585338679612794215242750443271024440788852912507801684405184978711421536315251109848127749454366349341367745006094530745279145033628842748677149962645936428751191226680114638703531009922100603828435887227267106932282441352889537944844133209753011939471183846410403259680073829121860192139357510714973208831215418690520730682259036582887169567332975986998989204998935898154402762650851330671491738207847351906024910008644905063731448650776454119307581312569164749254792659884269856198422581230328041788443276036684028859033989702401697361185860700472203247231944811758877831762466736613284073943942352609131180471219310945996775855369916341315576303904345679338557435231100061032771332304629086579272836970256166381119323496012120260384303850265795501580263198214358326062452529719149822313580684373292232429601591746445760342072067410367039971705454097935909374427725511324094255893835911967178050153568502063759279737659169083111853911511849707026679527384211503577327783134021423788848532359836015826242603799350649691033973422904849130328494761836318016490596848182339548695473897304647862695515044587111151353198436311154902252163459370910638208096329148831544444400221993027297232255001933474489085742798221362713610780909283348688268891628514421761958106786622171505527675303714369687428776585550015238790381566895521896649184871871087875069384756982808040019914947846937294155637104603947763881490978704392300078115897859758374956070194881910877817405390531853463478947588132529352032324702486578193704464629527040017651659539790517049807937412239229693512969021726316316063927065788522604134715448108381746877748769924549803312671658999233324209958367298471529479761399112774584067088721415025144725337871365522896299297122326111244387289566478146428122377776882593860345530610557982269254786290943754676837612617113476710051386945719760754152988471942054856038028353458883658202634527954285001569832459728383249223352886617679103282473957319930313348834694163653542058992999075237443752451260177990204710733632647268695193440694912831968478822621070350434195076838596828590051052448606253130322151857800908439791597233056196110428197488342405251221082298044277775429394760962115223615930328846443375414391427506092209237125623039107382986413760835267655356088921997737232469188789167832032532540793703734109825279283619295700299629696601243266971924990726692363271311849072664335100369856765450324487813737986568674523842788146215775517183311660357181458374611212169200277527163119539173739688159711052928222086784504286243452930049784106466682415368967463409400613497181764142051801379349878154792722852416001487116615799440772152305525278035125590182252067909890659824853694009904212718065870812896499882157886985159051290774371907717417194592033776908447483885374927439403261492819778752511387180848734001667802806371121465585534925504366681842801088092380313606890639982064119671803216947003249850670220228183133055983751551831878627741409340244052289873359050153481377972420920794178829353370885841820920306359945905839155785538521915425789227858184817839633654217739615387725619273075461377847930733776235215807183949233799294207433053909806666338187481494048971763973320711812854863481695300995222333819655579635164190262816778006139596619106997202724322749074280656737940218776742473225398693231888423839493789611848189610970371642462200725808441412102173613625872003945646668772381529702985555869830533400730389913399412661187784197440920080589322692230606534817542276987049108379345727047924854294221684459508348059364986819929848337881051633836601103460670998602247608145382696832192670220141511791539250280779716813232123610878488761400855338581062560509422472726398510412300700833480755207486574418221082740470568176960693721840271194330689276278008586474206776958961869930726283654055395913194206323746594962765955505812321675373148424832999463984136533975125137490337893009374214202896244286607675109666495658575320125836957798239928596107979250742314179406580854209733402181988042581542211573830101424669872745167103566944290960960330760675336951756088495677319661071333104751247481132890559518954274224551873768855266600947900314071318282161181167633893291817112326987143913684398405787216996365788090669017463146542377837784065424073713116653284141785741030305105337810673234970118347208441752163687743294671043439432783170314923676638892271602530702905622055904628158340025456960435036228635715627024399926370496529267904377339233468032242490504392286497921792859828522838122270565662757244425970537270392640109896214486454645869192557188206416612780786018885502926259277540368940181188546830249387623017748576394907284879929961551422033855796830581664423224459898151593673296785654370034229034370292934359899240982516380284773362821538347124678716298078817821034862806180997482732628869341821062260940205572338976100055304730350291466083389603294441855196982141994863950140548550120265309219812738846068659509107602252568788924543811195081510753686377055158258763559526256280359348550462105194144399038634054615983212177020467384397388705059461815627027213385093862108381014153688809999084800022863522613736099420302058811979439348532507661439511340385585581167839231020516289597643821732775158801792849807753254739490165952643676182385465992847024110790300087497342813094251034034801132064917160329726974027804059961977529926485500506580423097865555641710744492158350943281490941140504853556924006659149197241436926023346666564577764714693810403809799343454860405100881606156085015945766033101121805020335220838104664111343954075220547232339263529854772766860205467297029626279925561319716977841177226097399221681643923428686781080163205784096383832138718172854093542643380890522790882113982704818362634425744428570910888357972161750769615545126559300026204587121270351931816472462471125577225781465467888130468453450144875410054751309371881375989429209704916794183624673788354951369319175349663723027997424275083786881775522261716831728378234750537293592966795247179839049778839591429991645836066705696945080969952380735783849666950413517296977036729035870676958106092312117716029049936720185437493084799979606720077981680547298764726928527006185253447487695320481891923159045506578065506117460985441702732106787611999314766915544068168874974683491310098189431956175182549225450133987836773186148305465770354936310993602910951873567514873560197280230929702032509301525420630693945636039465156924123159883837614769189538018946183394288483715996107973357526207314861322645267194276758728046799997303905201316948320654193943321272459120493582027533031927957980865874925283425938301833149117111830137551527383096256271043844112691937023062955450538065548256784738778746724376850557016259536838587356484363740288825106062195991276573440038700101906365567113005967795819683319503821283561731316606249360383676971878721078518442210540178155443682843548752253236733937423957465492478797265140867331723738770427974475602059147242981971474588105110021019714753804085681387619710757390964005838741872002139558211158615538134287484886422522529369418096360965819829240510306852606590204740405754444139817119005809844859634312114765514143671440323639447132047334631491093813190646401551813574175733236223335597781740736299092473024243908598260578231490222492306898448541936052458081750053462599133469829784342319106734327465257662678464468451853593794588190174118870147716111962601149694216525093743713917203031247628050883667991544202546119786523247861542383685618290778765693154503216758036591648962722448368088191698419071246254871243400193016840682701166200341150049096035331227160662154833878522603438363434279142604752820966452334104781341129478051796870399145164198792170991221161534140862639155743749416236984736064237570208463912434812661202396743176318389142830941910095475338399027561913193041039860006407524180744667584237392100551312129138144870515721612980698880119531593718221791656721707522989332741600570661350402885704963402296949687410148290236378155313466919470818082733834904926048253808040737021853896650353305973974919730489686612542864001730162914655260361782013208555823887633926623066794607748005157310006469070525567188983116868514920930936535506562074042608356915474738559941312841745510037668874120122613589942971872776711272182923963179457607636280849894984269658600828087229253646985395048867381366635345435941361412233196198423154021239906694124616504113851730712497224867153109321920861685327014786953437888488427406244549819056096606739880373345353167939551161172303293391907754065492923230584188266867984799211192456099518758230254873646863004118730022005373695750208143986248001447132166448838517324274347475783758514810187662855469908105472234687080063102246916192555127587029344370500139049025999998524673268273313073057463171194733187633736060555175763966002876588789275077627145569449352885668866105595471265339693183053775003347372133818026249960236267513925470477840439461760378113202608286763952578293287360173169700999698700640728690325822739326394710507738381952124459134907075400587258503488621035558096860652768526411810181793100714282439325961985404279828415696181027416080789667588925537259328922239275137397442491808979345375799294765644167306252161934601210872982993062844750586821394642350002684386058726079151995265632079126486791028920638019713117395282398347189909250228689394519541373652954761967581086187839378707491198092987771933452315963362839660798583237945160644169160116379671956201608893539044195884724242771127137629781119462484735214194425507411001759382556763032512911749937571120089149953036795017573172089132916409852180484361628027410922270459075930967491998141576540657150393399090932924350814987723157080679724075646351694219888048423144381379787226387489535783461030343780562579779690919279097006455195220781180816093565671512028212943457869532600445071716432996836559844124450403204357503703562313202239356700141975232028811169418886437738041205189611024391847289777927343716446193959498564038011861220199673776398805667423111028756799628647527580152132782060570070344637990475427371353627280142944947932307374270836966941565250946121645010323273590549285322720559273678049127696125144952015384998245628045232233333876586378225952654134866060208762174640363164796803923700522229256944457543126437287658848483549632316475314804966523709318632192440983987891013156534067100619546713511337457529612574486546395466350470420015253400872656136572150758811464436817073696578146031908894393214414241131643911046462622752715222632947149268350919932963051236766825243159452077483127016091923548863466345911209882524621729742790956932452929769710105536636318689385729242738695631172573288825605708509877118560660229587542220639288017038996983067977736524491592278335454059431768244537992409776010896835169941694431832711743535935708054194694074102602121400881641246092353380268870210984657875140240635640680904319245879519894137738702700976097452492228022312578451251850725026597342382885034609036625276431334629244383769326575802717323009229472506939307156436074535461842766699937669823797457370256028891377095857507816069398514203986192498058473888069968043485034686625603622578590564074640045626925730623926481282609611994105939007951265113145621945611417886696470711624636726514559552686211969984979553083750997363623181454755114385953651592250282233170043359548997061083273192030806003519872186810516808995803013151214190649616874612168151246891941759044469962334463419456668939071039923607735002106931650155507445434769422884682136142101598511915373458025596373150926065543747400389349770396297095912629412772661673195106178818744357044538538010556235558420486788358380090605378011393373586058508221463076038414913035246627437278694519398849733052058887992220209433607892693757759322701994736254537338993006147647488069616802035226923913954295135571047146787941720549408176834810084222942277574017379803513195148992399516063482251161676467193193486090005115838000133181258348241325582721311298696655869848715838478805589738381394534128738154507718314895841109234783455313188960972024077372501252337624193253126497334854124814071237408703701436868616899373722066523152776328624050749696288120696647482994836145561469730187685478703667563839635967912164611741798249588736087339061609656147432720585379583317089304881789755924531053175119327373370671980953728340022180524333199440596678464596466063366738573988134048245862246399237113653306479304018420057507836995995367613243191641781958345592554114197341110332104287871764680578751838886450875331797192057404865375599460596022056637898781656521608617063422831359822723134977417485781147924884482970298008938388457499895642114641746496991549732019820241798688724427674098622604152633423266096846776874897071485717823885997777917288782228441666817235234616824218739625103289286417663322791604924197905389491236277556504973144430740611251383357740932504714085109935234725064415342533696538731771267256435277601395297456223182807246735040006742321286058403338961858736675285894777461328920240727723648132143679229098666817815785672157541830805823912623779623177421901713827704572252399140736515033814238204329497841028201167030014150697393566278963308238668593371995271787775825187822091710641767831060660813571240069655886967404290571915042734212182189530926034113113152341238713062696811839508801713006778096648988026951098209261638310969037283949163113290125465376089961533817768181887060972940899941744928472676781819383763690831339130948468660033562590739363366304804029925825347752596585277273053851590580388583810323072779974755183973905474717188250945016885083666400584328593168850335670200784443796717312559510587901914870325258049739231771914667510096122121704958464726079031997265329056184990189564511045529166652673329806505515857434427786607803496125400001507182931506379831010586564336793137169959980382897840028631597423161360065743727803867706040693903781193958385032209653627482833154957756122309252413355735056331760416742939043664308597012079694705441593722844201749896677622675390661676618657985519518154243436748941839569365589243508737568087783317628951664416372224577016665286571251354504032101738858379524977373221780398018688609665797553522330157569927953691275754041670186314345130504833432092143982820496079866348733141060367560777873380604110884719338017129741351440293861236877855896365178861702553019169685294496989852658028868951168168138210907918990089755575706041640413126273219075192406655441526609824428256306029249731932014220611172665474855090763901694530339014039856967458099842733543657290223089628582589358117661884098474076483461744562942456717695503564164431006185024594855849904626689055957517234619722777630821728752389321106924270121140139726882346979899328179172776029196071119056978946971941409588702289762089977829355700565306806689066520019722238750805388852029639955063093240790322671514944441547950101482048585258521385813823431600493235872348018530301869703860192328644654883190063890993512291364141738940024598251318622145598171324370229566112681595840056047425607603634459835510209238475183123426688522482741007345840394270990902040814960341434067030689404825339946351446677643828508504200914913443991841624697290896317045348336862307434516086966755685944253507845520008906934772934141722304477181840732478619442824229947480874665924013492093199369976368199213469356548879304619606613690193556018078309225619142545580138957655469405838730070670533860783029776102612726348240839194424583403348020113923664866694615128757844239062124594309640652221917708661624144201248485132494541591241423331553799034077643603096248828234622406230563511527273390703079043560374505714445612378747382215188897095237943987796453531560522585138270199979448529697423254405972057017881160077308368073205924369058379628142537906836212221852240649750777927409646763707166509871866551353087162386277272594103247654045449819596633009683626493785384079593835625118876214264500800828963171690199509603640187021932867754586431972053756241789905295273991405012068301229107608425717237136634351930427904640350134716076630336997605034248820849062496430423186481251879128747755044001070406199760054352325337241151049352799611180912099411988941564231929583383260756153624010889128554999781927051530291503077285388095950818348049906343281137434639664865915113925568775175309094697236103577619941059275041599251862655341197038203924589956388391066806247851897229384627655251235050597917318845747623852103443816580291732239549964197251327569179633395205896254243780532942171888311058381426149180549293157082026159885488543690358705664010692307926338325482659930615726050066300553800446409962771233483470718851864228092501554479855909062133357975182600639878913529240849998481725447363634586407787951335016240348792194180051008882998004633325573038695835112057854852029778012065006551055595597258259929256497161428837188332603154563913830510056459579344948437168007214466062324517948289660059810004516475753816771529324052895040723479149995725553710591993768109709444615086828619683918025131458212638347109426925019944378517795542900610544768774437957202387293927568679482136475972141017899857264117471338879994655651060774177743410329782631429487224662045885985942059855775422134667285598240977714616390610031665612813332734107285943222580019167309102206701462652084549790654172799614447166288547760507525912637882503981506485667084492331069245318759949394672472258493543024428399027065148756486434788162242914616982821267679099347709065449506719860487208156382237866899987822672882228079051428133301200537208468310179169179138722269685215194397798833865987635406122454342194987472848262890403566816526904746480233168820757973732359514366171663866608477469399288373240533560252222842798983904167508408254338069426712845199032757941427796142578719101278233132519391360627610012909202196559047423164512905581952609116229043048145515987071654317444229733261129939934725670003623049827647709642884840910984248301206570941871769504673668167930289945055453119832306495842743120422344526922174913181512500627467765870739258881520432658053803156631153754291081996486897741218168916791999503827529031819352274678545993063847779895282429059011211419420878241945375521830225858351037710935696239722285691272406981941580107569324512669609384737558345214944403626370286376628661271067094670667491285887342357568860062518190029443364320755817475697517076832304036452102321637917767918097308780305900423583959362848428816269422451539809688352217719177281192544026018215592262961170418649931271036741709678263001743153036410028834796234373009659357526530501857582706593990659112975530200246084794149925619286537434958825956084665802583817471864104583790771568040796955735466002802449118427887814032611366432733145749804537394540498525249245535742288616080240817796719666617174289197299134493977379035927112940046379599539721451135579321401097662598478291976842443827431747941919138635427655643404390777315401464159524547463497502451692790575469939733914490083197668838284996045440516664031723725503521798773175050412338750843974076813737596752111208140812835541927153822026507226065352454395924361946043644073662851620519141026540080035730518693137200768162633538212232997321977002572406473871312510753005995789034592458243560366989728700082791694213569377971681908524076384618348673028261893111538427223868874611078733482734030358729333066251647192184093079134714593357682901198217907493137086620653310937083326365716582390504309684407881603622984362821512395017759365229680882876999305258349201153452844163793763276287957804819856742696439203223337862106636589566743440286503448039996649812280739092956631237967420070037481130331032897685943616146013396781750503169831866004217478143968530462508163863067162630934209211499192019718913991152700223832587097211490924171418554818281706200243836001547779194056652384887968423255813700471127333324241303821416906847297609079684673535966713765881305285580169701273032061007263735798839073350424524993263714910579529167552183755258344009723369924632353935176262772808179404969336253904715546553839997414487090005518585420859267067893450524621908982222134669685543375433241506528268035380269730527834043485085781937762426908966705413665120064086180695441425795574325038361024829696256049720803366799154781168566852233869079187583583792204223322182186619886119502301737238162924946466168056921473624192774911839935560324223180042949922465723679543727270306682874920741508712867055339707905110959251927877528362649218179977256114750692510684216589010745864233207147135148455782911577381590294536521873400574421809184901351403341870027143790182120461102591111209294657313177540987918397772477873680599727563916926797976678765403735933182638267135818867407763312844475313592791925861883207898662770722943740676544002312789320131268017454611293595670360341754523828507204394776388590682894256262535523068084933232636121442380730425155224475070969920985815101439929687538085213082057108398804419529723790709181570172614878994328529054935700292914688902104264152395454087399451770087794556459943075561360972214791418820458721465281460000129513035373260968790426134614805134301586767247284344415546266296451474475444697966956566012391686421356207790366051132332947759678792685670009512379837276205435416390191682318418042395831534465492506623394464162555058782222491058379158058195484546559977915438178371625948507337779715071560228217205471479070536574577211155391095515891473284312988800559179594671650603022211924239510916973307205320496788547138877475154894662225757285792906766389272034186742186682800369606341078240013924139153713487555135351739621193366143319749911772370338131876984620080943992635108553705104006403491603474259469541798442443124813219617969551557065158775182008742074453174033951372217968907587035633863923630995644257399790214055182440068836688880295167573290839573291530349235800454494608853818991057478293788933929132051500692725789383721604042813031094092709382649018833402698960448957321522284783549321948124993441559486805891057086480614464599268989608628447323568508979729012099623244159594544334097594209714920455467802214260826894014746729809018558317680998757574344987625055265127101642336423581766907983211506591608628015553543655771856961279798599024553778939979729409211332877180624849858993062397607721517512557594287732905469059626435925485024191236414372068734839262735977412386931972186686687011747771258288968282416449969982838663467949094584249506761762678206545262932840639146058027452916315229059835383959001070648062594542887122381102077345900525430140182771275511856070037768212730552059255017678906491546072311229814584859823115502312242131108516825219975557889867741817755544099384582983959753684223470619153632202025213828854566253018045749469759512477760456500263623049528533369417791635421691859913212152580887706335197599542724988566753301310532207152860367486426497154246544810105733624092393623617857908932966327124555528240163375275115657757295873970874654160776777906589805158692604111689031367241237512393900660733252290398198994446742772989720073047755155343514156910466676414442671422576992771395975827273851895937507915141927247755738452636755804819726274305155553737336375228976425328583636540433530579284319660790067450226104328004865126004747467660841154248770790093091780597555000665471578870626220235155030782521850652547042341254576214241578704392983975316186323554221554764312123896173018541725200195686295586160491288994128677494999894830022813275446093367517483449407843598441045198567094414168276242386417416179618630958814584383817701550027560364693403916392704951977574430403099863808298755703411067513166197351726292292492691632812076211162480972768991504715704317059134956119963735362909160039678309530376065742733920594353708492409490075368682412868871063754209163534643688870594565937720998275196610093359325737324288458649831001721213391073839073388028667850203975540688083390372325597391354713285201521186813533171865947096191112573460318617288105598342341668999581708590817243728160872935636358999516373080927065441642208210237926064221991195547651681669981726533777280506736673765880892763202296677579804732452739337462798345401568840265622148112919141249573362239808824921448830824086894918995631786269252465603268588569738747946299915025401464790611465917898589427043050197124833262503690668106151751373149689525252853603894649554575349552093756710178681531903213495319053503435529271589673120325649230377181368376040407836672374407672816534334993156634903817127504890794032996802144922784807739806812572769352826257703968592336638078320348278973339949465646611466019754086084520077085131421888116952370582453203518909096909852385614967280572741041028595608479236935905856417480866193606111279208881373545982007171785497245675822408477037507406207145463118777892975599804668118767191463977320178898215613402467565277412355714406790228801904542274281315203799651026217178060438554775777200709779014003483196413222706088384298382267277018335042418616160756676214856456232380589683081020226727511027763396964330579225875180376583225478793253468511173058855109618960615294499407275638028017217262290751018876492038329826099781975272709848243571290120971525718300642198483917133297645328901532514453434963465427296198099721263658067901078196274084335910149841618912275329594958916600169742810358159702797448911484053358560548326341158236013029248356616100899177958602173343515046014506393592150922727477784296054042545983524150760487565443937305461158328625431761365222301328767471313422316621062988763608109105326455085322153531448531997082241632799918043356086858114185903478784929626702052063550595199340992434935688322876377234836590650726884081474149716232379403359476202704344928669176490467850801536712245903400305423811140966307606727186665395994644080495432965212986287287260046394958867091000080429159521673426218761309443830644562377933840713795073675312173313890215170433637008702158664949859442054034681738788604675847973252390504277873638773196630242649065771886109682823019967465417778549798687573220269187697102815079075331845930670863927753781642136575093388003699638490943474508547967804517827969850503692999558393597159573088578145073193688685110908678338091505502687258296504491506621846167796853737971737013675477037080916819051612067109771031622314792477903463824977524472896087068160966628652093845203928548592333474499507771992729013044240945562744761409182398239737390893335308779054815448428664758919758687341805360246519626014366524903715339889931653971589980395155236924822021800548295781447324393202133947267151178688051489794001167104490442329303431724813470674342135188460376797351527838994227401521057399346432153416969337794361410400613015319677585064789740751357079056534020361866189696091048006974268055150534603874672869330605620415358137882354705131373100450615820397469196341895585995022766325243516213752928801516624255754171989201885454490812216063129163037716006224439521028179681239450467351663180899855414832737196803931443323020826541825015997925335526875134704633518865555224627553708227992123442100432041100919912909261739453731924861347742113314457844880469777232071912564382788099688725057165279654484575028134888768889609507071696619993867791595142051633391975877570332145130821605115095964759750451095205795157505918758633781123723694153074991725340880499998053957620244196721854872224943415112422505235311260525800053617929568952722289458253828308346959154041820870504964261137616141988832508397036780767449169727808562289708056146463034578904356590304391370776904537522990087134243495159816739859555693084409795439515171295696635343836521703259750563703638106326403753650851204883625039178264594211278321281590451731237302268379933796251981384185728536320794631472194333696114269430911874512689677217356980802532322822986973081762947556995426300189303537177935225238669935794212515060702685445221656603084416527228288665525970131408418269581088511063193963823042124324098328961621351235139870764195226262167847117121623207273949199083381271142866681434095771509590340687940414701103820895438294030727802814130747265032331262191757029639585470145289798052266898904156673762332895750341119038275592897147492904594520945584881021708156202734544500599415607424077105355200407482969292256719594594762406867280353504594389880283869105789190449401563299883850151907915354196601299639642348740283140648677574060486243254337587933232222340130087524454874202227438885614731663433964448221621946922181376600776036429305071517887741123521041814387754634408194559248039778803928677673739427603438841142302893261467495484147635851924443029411609768099757265098737679128596772668941839386787774291974241549986985681528642095091180029369670586890325438091987926890759830101287122929242247078264160029896180979602015067556654575276178306987828593102806580696423452836773422201049715954488156554024221123076888677038587527705121324761917921491334941823498971358281608413629833978648625618450994221127618632419678969864352956200387777878354682649751884364509370787080329434420448343389421044201791879408176596290907467436909280790612633996721999723777165585143005478255607559585904401594027521835895751277413626546031381961167485319508687578090591072699629464164981194266609700714211217817083154473971304918016369254881939466758616256797620960867311172010508813649238854554130463142026631989757002177452185907644693267517376583975949805752607364271339137908433898632063333916036452837048206014769622399768559662311165795257387019806871966170521543714828099347853497822678828620680781175495772624775268722550392823425192488972446017818831839529984126399177088185802307792906565134397281140620795221088801574406578236866589536359108986621098925449539870217738789751918335856913255551573769599415527862383906242629905524381267448345420211860308029450458282415581961450629332287198237130841002285185054102467032980363198740686962215975221078237547207531901268118281938079490697464963577686971710304107961465077439908631717260911483135913117440890751631914472717369802263528212871352438034010914373371250835755640867543981034008875533786470040909380745247740376723403127728965279705384659192597392785093222427113468350241318217009565096841126596412013910175713419136942449102042748534475244907182805779217739743264594373459067813962946397072080901547391487711367666227085753568690638738681902359952416335796779506986144224011233838856573982822016250244672508852223890812521615714811919371200512678671046672036965316862967071979252739329913021075551359275313370692372016932192953349576019375709597460461174340997333124295843904811142250646432354713405526560282190568279057395628385178895113780936314857964173436629454351605169947700173720595261782829330548614178218678178229904943285895563704386818090983527472450251408971726013019599901532955188515861932856213593736572916242360208716608165763483708380235526404590720946119909967618467468138748410311509579057332415135938592569793388614574518383278547569751058578217130991145810524025264003525799320882873291385058242773909239986406604856870026372712462682808350510997055188635888177703298581506674974307429048090046745612755361149814683710014602057763999715928152899455653787974346639597140137950505445065104942079848259071796994532035153329404369220093831188785589257625022364835627383191553521296031482940427016646544221007606356222215393427975512220603986255047154186918443294688763455429692347654956191508095512251638823490130500311195185612598573439287126470343793499091088030978938447335889431535570065545413633437422414860669364168670221375412324229505714081473622875588347466058138587619837037920399650133490130360031779829198274987828943592348214082922682060006336835409624325171053758713318429260480494253766637860881457240150917846564153464331206139550782095102311588767907687268901986397222009483074188311331149425452814385914868839601569518994384026098655590634213527119462931778200472400885873992622165217500909199598608215135220361440238005625280266736675478736262148493172506703595917692349661496025938141081702539689757135193674797663616420801378828135821149379392753940277319879441936687271106969898714705242843985433418370670265231880794919250963957810078970590989055091511905903430478699579151815418876182162221982173183269692250273752980117992842083103671944115545455349483400180813454943307120861886158659054694586474524215973078409250483656575807733354830957018772784830753160064483489855845127628818455457311264329528044406308365268631495988780475929816562758107328013251327295193691188722874125352753666236988904377239094261902133812324539817759642898996713770540170264894614194901395162226181755354950152299002049816965170531963061517710714816578861930360042118686297720933208613516508418335433301657385001683017741382474306811056999967823675143388351294020848400907178267698468573324626677077066780909294447708037619578456486295306599500455325965158894499553851343252745517780050686824466855684628094225634771330308024626092711422595573171606362549774813347437098576496603808393927076416985354437212425473610187159945089669924629678249481729966663200845151805006477480635433001717993898479317571056906673896818553696307891617314714074751379550061978412120189906248399764740146297076001819923030954098030117719696701563049314446008962102913814228181677995060793493682762211777622335278232044071259544849914178707988819760775327812323246838864079829587045633889697997701287793976377253023797848351488853523599256253249905343469800533627772405442188618399949870371311029605999269484554420422558922796837947822919928011356931742845291207210822946981711204898682633378988152628244440059398919990903894580396920290121816285455105163257033653951004376873827692139629691499356885507291053476940289595134499107835401389914207069825138438940883620722465038709341655594836758666078964111316087380571262244471432328887736293773984316085088256904685658770766568893771481416028277628437383753638536547759358529854243448630742843228010052910351522550955394797736052073570931673584166759132588411365176704026852422254578151205052962165940448140862224481745673286199981704835143622963737974197381240844881641734736539041807159691947865893747551687895471961597527737824828739774088199916064923352474067181806786471291488891008287980945140244061715542473805089793466881724974037048500939573568926001197937802634284684278547123576533703090780328021237355784062451281538437772926374582813899778251376184368333593274590897013758673282415485914629355226868795906699981777631331759919902745505473142518279939303441665079253599404893295178057739537264083761769689573519031276063622923233096823503886394005586873293211447506102101320429543430540117756954361527956461885648439328212080863113823738231315283620477136704369244150264267211007523740665541539764425592274555390858768720886917938210132860740012296054307131884591668038777075355462931525121301644445155714181161947160539105082806468715041417424926357608395371318976889296067563438778724808303054448496571815366502975128842234904543807030482306541652185779066733165186351816290810771260838052416545571421017637980521135017559358424768511660678336998074581403777888506737744365016874946270335050817704153549703411272202763452222422109762442077640529495132044792372975119766245439776988709086553094723895159020318001999455681828490014559400575265341348899361548826209574299034722056906519595127899060790210199784083316978790549572776813231060314967769877331558756811348652031154107980982086383734914534107908430469976859098847665897309590803582327791521282285684527113284176968925989992078938036919854216087861009637913302444765107459353092453145352013790581276446712914156830324482692597595066996961753476175076001188977595876204110836270274748145971553023080005369034479011944493401636326163341144908742718255168405679688405007476453260947907866370927691044975876327837034933489333842233414949046470560121931015381367214722244466957018646305321565001448346730453184251667527890888562503441218775469474407186497205323459602146079558880519578056383632794035113810882807003245811518373402832303889329928347200735684813140930109297505184541886982286737122884984570656566569579316774149563433748789588448042905885192069505991366187671557928223180739549921439700332318267086613595791331316485103879131499908649325208071840521375104232502093185343958253749381946955696522647307559328843449644452311431168927248624104345761167183584038616048606532610782475448734912899275382183848297251810608641500794134558291612621137103919132485823275095238459883298668277813919953970881682908863085657604215279801056334754435523509084054433574724587379608384690422412318561582768121313223814799480197956124107579021045963067381927844796220123763442545451322259394874906908525064330051457720629309874557503217311899618618574397147890018325583195026190077359537996708070243383605633860102097028184349120638569229817304868913072857385553313600902637242060256493447267401126269679228255856326116833965380776774476905300322250284990412696905026262158532344541635573245054678921462755702952856592837558441247490070298471614397110682838267575750412725470871455211860909719950143867952918368631002507084915627527729331541298053696968347814611056999215886901879466533969710185799968627829101510053130517265886155565682649338708219456173069659443326706398002339248946122554878944117982389603550591816274708018459408642513027984345081294302734755526181450132941738841123216538035379806789619827191049957584585907078551127690870077971044417414003506428187758400488361894874087634862366684755444677883541102442477129151561339629502606980895684281756023423066570090498782745181895646498552006080241078401053530217270290168882552658069751855751947609678936598002763678196287394216114963133609008587945098269036063442205261920937121228115730446347570184020954024044720473717088402851047294398403944585755893071827390789513790792250983263543937942500306672236011704089904857380944353563733756308628183862620467119750166902183627822770453328261805573863853620089853992899010579624812006307787260788271722482369139585086958037877366878197412441000533931039310492341811480222421276549223626634444507858773310743866550425725485544228503972171601993293612640860133973075983104243602095967856670321899766499864734610058338778688164322368389687720905075956829352142638278950786427178913193808381696187318342375364735803687199252769649341878509418421711161518904932530697509851756201365401860818001628302595956769749737893665086298298497445742270222560873313394730611455558433527064168511262388346408003589877979951272469448263048599097400353402488789429126429213080689505227357566553071067172914177142856768255223967154448954501897267494038530949993454559349834821291074812658445318785386553514591538602026874423459068204010975111022950162707961052818186972620200640076979694959602002280470374074515773548081022769093113909278995066504665129565965687985670125859965990382480568480335821333856123666198467954563968352781790855453675960523760302639459772255199039144364018950310473334229730159224962881795815752534700186027462714579515088827241484521664487558329593719114100744779261683325115090613068002183013065599820268086393164661507041131501699902075922765402348648369362221506147635796973697147400044689529997124191517589593434200053709021956780543277581635172931044559406659297042401185012176267329318501179210971740482978141100986156060805860333478594103055368577715898429941095677378110813682914635125947080393086464162680621184082854364641556002548741292164952134105061527837664692590837452897864781206505044870815136464461575029553349479539591107086949225023877323444664526714148539805855213458573111346708531498384105113136559078214367127512714774162185585288551808967454349465719234183857072434192430552811167949295498357426512507937327953039360897480793167962689970814817831573180242453119823971506890677094708381626848613372097970779714501128924017372201765103038974884869853728012523009970558828111125456862353646796688882154291122596256607606796193575901936929601128284769252079486364016302315406247221431854956253305026991942221360995445527827939910056031889467113898837017249419518008511425123905916247666117717317184384717178308402069449398668786274043725043366175907940002645265092245438313974298411358948658568802485871605508601160318310243813313364661609580035689363484927909494796631849204167287008403586892766190513426630650742622023247497534067502219298247970635000453342761139124036053940209667964860347115263508038847586990239497559203255696993363665412258326282159453616590471942252878416300023915790333675454681435666865632399449091008114232758487842324101013537877104505306464524699628833758911572373092042093161067771108644291827659529456544867941163269962531214692639693956589562815998051293920579205857319212106592045928162236134977487533381065570875195350183000199652363233019581024865010963535206239414506785714493229713046914325254947388464287762871342744073657982337030122639565378448174376178919033961231655046821370907440115839009808170445356669223471526789818819875034686034790890157420949661516006125390628896288393150706187091736543175829805891390623655298585120769090968453112698716224543080786195687677284119173762489211476951592918706610117299812210768784792816434627475252427184521376099318469949501541990964750441102379532131997829869107100860654245590024275533593094894709998071774017251939770566783319049332046528027554189319920440952771503992141671963520339047780301928364086430887919057023308493491423929307909873626911075875619046477165728620297315514925465205757081279727305995220501143985893755009778261501750174244581586832532241155266997122730778545060799684570165915591631617132047191211773827501879880478709296468671693334516747047963327808889593167453358953562524411728907989949894675357228607441530690165278965300530353728643475559217187212099773980413272134932810941523839633199376773924902392891054246449471643648260672650740352746395378295201362788085280205084577777182918025191822599936134512160854649537634282704847312723781647514035156709192804038924080736513509386896754463553356335214119638750689764981389744831842588190111366980620728637210026443341545796316491305155779828201779371922974246995630104986229504241086635664703230593563441979108003683032208069722116175802952920370226889105729763873917527753661566804811174531217210552094653519211811985896599083249845110203557942641602409101446823990053947304951024013004536697117041584659835060819092416809654399643429200290550322119878850699655900849174977964366879014967239683649988110791375570263299494651363847992787291909557320814934209821785391431701547047175209831524023810309750416777809090431984798739877634349657340490329556130535641938824597319340116379760875130538192318209019334707205370754995270943280536284612801184871203419551346938441688433417789801053848736326688753398347898542890122262169949708342757590194961219612931612030689278310587040849776267397409636451358106642721023790737325663767240791391933607749302723774136213151898052519861812392385689404484787060899173773540275516382072359605118675659319429527677282256550922993286463705024998143885829297662060964903926048603697429344166561981808221879584592414887552051215245545435401216977760841090288749002772417628429028761997412271979542487010108205534432024372865497922798932851563817809154514233490136623493766190248818584359393388322110597549221794300315888135168884008060702105671536168861782894322951617689933860084050719677604960337710843869378626586422595189161432174840545429240307438067928006391436334782756409463618559502259107357757399917643415474516371523240474227764881839173094526425412862514472522178517475976755391515527926529305665834090897635268610490782410151397262704127306832565797620528114622089473721955885550019941279191528354401501782670019241680417087215287243242489810570507883950693075537183667524043980158262479264801125080024128629458453619867940553822009105519633821203319966381517383398762119665465977886949343024878776310902987397066800397609374801650985550197814740033814371337572654017869368425799036289963241960721704457112226013540707054005425481401137132810946266649974631395469003623719883039288262074425337648045758414721844911030308087387438493146355585109721170219232328969961024336478522606019576589001328062151173066870682544956885738248885541631903478697692933128442370091288954600780569583701369008856353617609188122956426460258187444752869690405134586399939094383473920979460056193048103259040441045701633152830750156278282775383037687367736757556978042905506590391826148674094536631676106534677080846912832107510699518687993695805895782655276272223239121577375167414617739756283292953688876512626310761321094874844768475684591033613009160395682355830377140909851347899683193658507368498150391011294942732049717343941914425899934711688909103151928947556206115265025064018302743905911474752783103255991408884098963942338708074332335405923352464510097962314159557027725395884113912558268605715091495782338234711499540809155194857840103840657720117703274674651463706021429063728945051694179999232515466601878782136206962373957976079574612445741813421569535254567251795025378299437255953261900773836003674670593838745984241403322913425437926895610319136236549092706515498585347262124215904654502637401986435094510464470904298330857959801672885413892460005587529534440771207991587120462427105203547302500366565720513386000877248546666070258168145427155873781240513548831365992777375306205042774771690633727099375248838521402228713056732828689164927320308520647586622566042470064069788450107558778331191677247079487041066827609352985867654687056639350281318088993338591702131431944333725907260565976353623070005035872198007002506721479878743746653177071520056537604595841833857751323113541015219191364949725588370730036314507898019272258734308930791990534264377540725073084486642020737901955745164756106599929067984129730182795560323709924194478782940029551046752301688796245099738806620709988285985352643566847093613020462007278955236915772816932561012570513684769682811692649700092714826082290645058889495349615307650476865568749974295411533788795229072080227678279964931385168855257540391925891941903639203926636845353816049305162794344924027613931545139799119725958716270654333803938740912361012652065648996524981948108739090421226517125512649465063438784532325579708054482178497365219572329418653256883183314072487561399556162795255917447412874381299169788992856014462766272903142527596922695852787555271624343119408631556144647393409345515400866381992747342263164261597590673069881256490826918744895309331926358305706557021777486509586489157421590197807928920327170234113675700852567629076649238695992941709528364665123292913388925410705025894882378068568503280073141955862087681708892379476032915478958553841780713132021747484937633279870413888325092367543745874276405636220271044304868902032619458090413996966837014062616201399268679820947850410893295570216861121436089398583870646912842574805079403968447203360813002462966490366584136093919494793935249916399965486682580991768865154371884059260315843397143642749666434910007003332717134453942006015413384367547617074886207463866190423831917785608079701662961986935781224020969884685362600152122400976767211098896528036785151225726226117892561153152281475204864719798444064436437189520551313446448737390353917707410753935051957548277557555089807998435453838436232748184934466235400744397453968176909476446631339267969825204085891860031078950274281961825706362885943111888698495333310715658431009421424504974814558821403824045708519981642782145714746061386421131727403815909789801616549666402478274940833821844539526740281844933217196948025852099090146176203056145016580125015014721303725993721662212561776384602933874760026866023828699331373135579989784042554643289984965283063773999524767581238226494196598407522733951231389642823750388818477931390787311469418789959380940368039294357937111435851309356677210329967733014714719099969586236032901772280981131292836450219712408921444349357901640423152912957100963157946253681999850179638081343491422127302270234781289295329960879893358908230015656338562527550692388913092473563526939314793022725563726366923767273999300637263062479155060057446573598844095071595687888024450249769046606256298246697296092324978786440369734164686012957463726095080363323294238507075320779482043740075110272095686918704882980278488307083242695616843508031153805129146108279430495799893732441681845963620114211856736071073813653324416407589310251063292116636479750505939224262448934444009613180848236157912237837893837986975179528623298404683027619295405275950078228369056562102963192328424482380500147484990563134330412653594388116090733789217648519067701106441072667078825639680298634706972310945211720026418408587880571564321421358573182058642063977119860105500946998343427334920292630407552076825052629345983907389114541674781011806026928405283512943426765205334748674694687818705613350538089310327452613475714602286242051808307883283941335008095463195358892755685456742848921543060336929853388235002776683893520263409012039638367152537142387229057443620602132987520050608431146624203330225879843997196595821469875201397809882551265528741026408921789535357692256772826059756059128042422699672055976838850506040379104307102190749960993892669855909750384580718561623941165527503186212508931145865957098375719601970669148396068071886581798795628736924070631911016370983672255872541991764193349444494250017072480686743588730145722431471478083242916732111569735404599691845348918601367554911938202440244301857938726448468672439437782411661297139477549208056237293519966689058509645252239094706034732257037117937851306193203642820528411318087538196298261653934049414568669937696201099079650987273304198566096130072372838738117065191027413034779876171581043668052041226786709817277090220305970480423277513245607290243040107288352997896859209322434413082842589726761081219637816481754452915863243444100407670014394887702103619866634087909126177042032005198390490259953224228660569421976115893367105917995539034882729267699801757908294890428522602560705560494074846579521879898288605029013810838916180696801901598182740527218948802982511336035272863981191062899172346745509423696016301100756244487556636093475855979458310924670910359155252909891891190389328454945618118703195466972957845565694390224323252338421079816125954213755281419592929602789998145278187524405083453663600867028949300610992481557102769453901374683544190075670445928963373291400664786457898899121860698200740153013658912565668425050253913689134737438679171236644573338880082341796999268538474087585324258206041742709080916691393495016605208799851725617406386823772794052845800394608193369376218920909800574133172005455742927972997192735755455938430781943258694354994551308759421061726405577252961153639899861639147978981483020105272495320226491531885578176938289224354819329323191677597997040116426118375302084660170156702821071094052710471224874297466867670613780601908898679249363322290580380654376699802617483938048231611392726789610274988212802306190220980711499171120433023853680133371518798668643051187626067630176580778264257673803415467121444673411123906407375147044026302703271898941206715516502906407343122210914081763842961995113718161833067741487486293796854200186050974483875202785162817371923966618598564973067279017938506780838713899887171410142936027364483638762480158671665599639702212126724416474218336842694385933177636599994893462072668971620022086896274028104444430798247614936692774120061015676365888003601036803957174562243651870860565839090852646359088857678061683898754646456133368190749634637773617418518621052372371165402992132116940231095222794799670119884130091557425841781726829498737550860738631524986170516213426217821549449257729270249452574082734296332222584647712575332585462013353767606277884455597169534050534283285957698027199419830085969420590717079265267282125559434727971573867588064546711302342791125096473164089027598946453673417662522226455645615334013027403617793505371647739873945196363092435036416450900819898817059317844701688748088023944611365415055704778844729240449860757295125583081576286346075584041135572217268780070498238979308367839704313712787897078195742954006705500334816935712491758023387364326249228688093859568218529638737065993639507895650788140258932737610342967802916533211525287467161580437918025887230886256646130426279257779785105374917045697483819803989274797404152667607253085096574953503880521263589337100393129477521716992026816501142909305472005836523429407835224246591821816676092567250238944636290085935980837396319953500348967347418077641210399731748801689402397911176664561988483272094873731113593689851887956457592666396086177455548812072320963265681562417631901552264535690177567719846967886454012922762092054869454900292370630389653020715144843401781769560989738130256210026177815650400042493571096331324615491530608277120246975234317758503602914774775995864586545491666713464477510365754584619063907935316299867156470961482113783028102424452170476995288426695876029551113891667959944395875118847656252600673428304090116466897441475951192270312096101476847897534938714862576700062486102673395363267601952431564395235855987920602389726598718321814826070215031394496040179126362119520943529713286618929336126487822089073076543032279146432871888763275569746157644960588823918353810761046729917760873797831579843957107912759988702223472011888672639429679980574022207226857621075517577537098414120046571931641255909866433090946712474241608342821307301254884889390874332858364294301232969420073984437514442662007831667443915024618633603801308932026517325825386153729013997097160133003960545844706506227037498067546937454072473238294878872805077101256185035855492535123423021273042296173741079114208502127368663132154860818216541360025643072118970215843152087667502551181726946465785927558575981274650147530463956667809792510948978969574869438761788138860165097413881493926896706822105953437163619424978794157528202946905642038383502859911824436627925532076198472604893080083765013737590230780589030687609922086492713809578084441899540663949965546068681304868371640388461467434818118225861273296250795437284426200397666374066900231584932566379436927936889409986160813748375828975318948438770254797973679261067155047317172887803740526360262493877826492033614573791825925289913875549200206816621556935007214712662343912438050880922466984375612817563459578270561946768325994964168870289208148598869535809571762126330678843890324852258928912724662100810797672869893828486812597051052426012322011423414486975064103995988346265838594784369684674622394861956538982170827567411820455161899826711257351724589134894669524516831665593671485208898756625627585925021725682898255897398312606222758282772590743186754057304961073535826611115190667122173344090251559085365815116517072895630554559198377670416159549686350863975661863624283481930181277119463590318883729727051176826419018237466382006245574586354647449404212453636417324202163921885308809012980144153169698821588740108220020915394280860529170555504771728384530909852504901749641936911232711866114628345270173560056891936819382305310152484692135152491270323682743664870064016158346658740595618408403394682433666518804085396266734238768998512209545319956943662869384797325405831770283540813150403269502113269656583181963262837978089703987506645184061722410719935399188135858376016375346767098982862338125884533610424080635918516922940113238892889581172068658595512159607463694115980580261435572281278556623054009165128422716825514669142982767353275563766859735530289413197963130056003552718615946724116027745165655995178702942925701458402761921730993046842763471723357968493503017659174529850390813064693002260301584359897998341904755489992038084655402319858040333202039372831307949360394609123895929299529693685544571199320242327966607415409664627448518658685451155086517956028200669200891975531675336423133379084710333292703259359608306253914181392504496729693021919015427520844030360066435977501559132470495433948482060485446897812883419091289545199439399074323696561302026878462455172843995666512682274249635165219911468733146689090459762641319409167884884373405477834762396734459135332117480311041366478046950189417095119383078106520648507056383266375272382892168845273922536849900645516523911201398632300637311396694845130121331583355214324894053874442491435420566255845706560653961759578759923882391434192109851505314911612728152667529091124238229954912412459715769233400801849767613418501707182163836975034508818670065529395778200560168049622599841023187196376559284496502326383123823310491922950459201967039521373950288450691574845599867902444175295433792581903148599540130384545875443691249357446716804307844463311760070869717278979563212992178506287971931371036232015450298635172331921370483966100389349643141237833386189459731028740082572407064926972137373404232576014507001662907733155199560087055342074867214008835058257969377104912436827895358551312553663643627440785168862625524880117077483355524900359439943832788026391228499627898440849794430517154195264121392744194277230028784858257563950375739273799003898902054001479002005103477538504839703706231653516324375892496726085664866549421875987333522577482005663737910644191537586253614869108967959124457973930100695781375966654633585886243746909541208766692898753142858129447059407072085878151072115152613476136755370208297448369084049926007602087774004990438979170457165149766748632037318106723087431154456428312803884461921045888885494286712430584672060137188389752155466624051718625643074008143176000876308969186836336244117580741969405251494522613868536589673522872453652917801327064755697904244557120729803389776421957774023095450923365413460290022941717779026153304643692288963906249158252580667732366329534627780136497084454144395115614907550117913994526968824369340075414022583607557898516447876262386621232821187570040150282034876438454513698819601646960748581291110485390999558026890453051720917883410228231646372466691839189970482733868033288003572903896308463372662081141101307028298190825701929621134249430366575592221083189417204618810740489506381850489896810897474578812074623195421895121145804506091602161071605690666971760604241187188566767182289739958755925269011333956002706743073908818810954548554884209284350371175726442693126817014099799361537266153053664253980971001399682754250940846462243328008940388892086796932790430067406397518583873500367183024245894541911073989746508873280181582416518961966870902188038953421900910772510958596171186791231174199496308948453740291514812034348633063174183588058387525530552161167367658219110971780588147003355999946324802465413062276131947673748518386530723779008298607872142829998403688246458001207246136263125929984982297332220318949331798583826314363687133780020001801396822612898449431742285474517563275603974516988669470441245033075605207530880423668352806106804517135945651116040377608184151495545817963514947611620054232439232527526364192019569061191495219548672426369431381352043596280370628702022564368552645496662630078433614108476033802359013765142026030362672860838071560516715306586086234710930996117253091657941738201902842200406167256089794412779918551039474469519873922750507859475689881237861348647360890369027228322337716875090279417284177729659041624018371227648074452973383621737677144847652946017328465000272515982986423584027198835977683327025275660945034161045909787524074020817099095161237290275483427741515115970287977903039434937752550506572462944492430013193796545158851296577634346986147933616591223578958998986774435898419177771088255193432151347137994961941378186201878686127373711758971746794435495156101491112845114421568579623176673001826082296657625375101559181199470627024416221035325143766668024281884807933827512444769595758668846199452004053351144245165743309908767338340521295709085049948176688289057508868505325069414374674949136360451954325728193139374841146931352461218317905084038005429647010421338621474767782829130238307685644824410469846367810203831904792684910985523763625273279719905806860281484253766976708249979668554564625352257698647148631812484475036585955051866208837421455480650510669981968538812195980716232970035107655147100783472406378807916870115102200215234513051397193349655060132942957033430228905966097619127882950419400906196707454833530260905134673023329387572726199208131148891426196312848078996620687737304130833365013455265953664423017961307213930441315243796464229991386194603302492749699532834039828368941448462397921434501793622948087297944168013196452026064779389753297810706557496144746156627990997672191336269497989921295518116696675373114350324718338176382075372698122033950755505634208160070137934284572867740755161745813419050552538788197990886889821844058694177753469074750836828074578402801677418867733087037315843795669020492682718557169768872599440873166698946379586656258332980747133265246213786315858761227854736813336709983483925079348342915757864151357812659955219557244910320243416752700984844844000501657515539401393388700636904895162336560195087559966639433450791310790538658597138016421287820331931477832627615246620448613019970547849816497537879095227690374495343760502820763180999599478196889282665107657068868594190150870108342845649612019329075375705741100962704560927689686239412335034190674827659522555695019443621402328933989755721506187738550258366138930876030243284995249395862507923236664251211268960950045231002126264612312608562763497279747653378076053003919910247660840142639687936680037997725844039423248525262461264606066362754643109033600480259936974764702332237523227876260147134517178720481801798075407706934277500862966830842594245197720334839819822289751892981690940155980078382109126007449523330402219454223564026896886922331165524067646563501802026562586248041338368341703963274208503916793563139245993562543704825860610998216868838184750253924282439713631695443034450076150807087280206367625015112226487625833004857203258816797582689154766597911017079036109798525833654796130516488224102170010975739230000825049298026676123549624600137269475296500687136759961629781864418733439734860185655098759768896502429719658082248073835811678927390308646993107617478221081387907262857205218018016845271524187878320548998300803870523745564611605233200423138918280720587922773774444883116206348158803888026053379681776792378808790158373669812854197961973305760222363374870491999533238298879912234090418331747107705232119867255024673299946345076699971638959855582839255827087035867154107468952767418970135316070877010739759731283472214753498472154951790283281215467897409737298881122447659000436853582484609495109109509607486429247857500869497303641658517193222686911821519450578423423580743312992488859468092595025416418983540307592922964839269924908851957661752182024761786953002150287180068119994651707271383299361339745633279381593828248067433179237587101825392481781379551992436573292618115593631565561999501087674875279483632150768321514239034904275806318731968947460040727000700904687640006077207191005539958772121830522548420779229831579116935499499860144965392045619425863805592085152738997656113099484583151571570617850115482360141664054181807530390010935892196929184954218436532917653010515847714958619245476142861429653250487133718292448230502893083357948662417660226556510920780870361068425041789704231347863182311184108475823665062566438852401313971408209298726613300692002824151926761486453674049244601981915310192146103272689125950296944349675247391283946747905991238288761619247423906099082586565331867967331391766333214114376833624785751678066279141459653503180381337615641129685362614898094590913142356749778736729731967773509124815500944694525113513056207371032548001763521370982950863515806449812002374957014802975606706833450998594655419010398622761709721619413465801452742926141071028387671194621700328048431393652223343142215786945501296071368667137747545132421430975204398251348971739151249015378508839253983153286285022574872428197327189391255708775587132264673712258293696738318408767652271352472815630838109199312762185251009421928380056491288626637535365315967041379983546675472670978458040277738789990437975611541505674815351542513655467185137314403535552925770899673688924914957942686541135833905606065219144952539679013106518558787069503051049981106813498647846176962459629351347796831574082411477255704703260253639332968005535313418701567300960184431825365278036792544148163757661649710926022145706765431061152246108225577828993744418837567363373037826855588108890488488724834714776687167721944275043994477479352605971712222184368321070973175217417471100155669233723422334016523934128079314843759969173525600324958754239052726885901075646206337324261371039984537347851654419150360285773912945744299466060939373360610080254837486716679988715582647080190792662954244635917754332855237626694656742651682183299488058748877527415332307849194257050135062192063142541863625613859815289544255999242422510191826485604280096116219091530223323088635272814513104404813913629030570854891098391045678369461360799216950627786044774337500451209701129185119602762938721433132675857597594703707509613707554913295643702058367364217282591432749079829327011846734862199094026863336142504449378521306147183487343811627037162795694652606102480833502178368547427357966584366856658578916286636334014499747640516848745824418350852079362432580418979993442599293749079236121723477523482401049303840313338226251663422128968501538769076016562288596529702296142947629681858699340815165007966111425779503397464023753008438660921869328981422580924777542688223407273893448905873472296031348171799593633564807328694032492999002769453493112097132874056583083821491523813723955053618294582779757059123013688134446797134164812594312319016672693625155634451017786247927191506821482394841134564419577738586851103688137726941805353662124786910985589782797073073958678477782052880121858503644036002362944236309297690278368420026526338401164687060154499200163072878721201024233236301782978663049629612737137317910952669893347516353116408497093423204835335882876487263017583103034332788831816256072245412999101545469690715481487844446004076610302849978206122158347107968307967106221129887354632295026420297896184144332153365907289489363113839122998959010485608679417135359651277178120559019060698483244173946165751264829525529658801662205900683561510167168370656332646990324389340907254595629330761581658739428231521914645309624107851982307914550605594986472693454066365111344173559568704660100932027717029849957743329653792436928098745472093416632856762555185551921483641718182348486681674114894137747763167300031618424423921073989667859929260732792313774403982878370979699172836931549865348463337126467835296832069251530458542613178785307356062807588421079441220629412169945968347385364147965494176843027761282871646750283179613843755918288916965416483544621100453065349372028859357547345815799387965071622691649969133603123768662100389255003958158486820855133947822873945388864613362314655576549965727631535193856341460321187852998614255265966685188791686714224134749046024895384566104216338617049721305573080449229206975005436841409813020556439933415646972103633956194785630994717892071539535010509229666632103317584299363830190442266037486337612434853784385941636802565777691889876727752382784850328463236265536560729517280194157422408750738665303342228105325534981452566666603470377714129342622065400677921908740757750296900829143234952626524600362632404518827553219030143917515138464585219314685725459967078948217144550751529349020222810619761361595501568925007084491095429079909167985571887554450941751627052908248322256000675189502712364228928702431301210609959681501759863002758831290545996342981505751622878539226264402545676992874188145653997053038988534070067885566114382681594782402826539443118088474589770484023406758083555996663997269810435960473372514406937351826214504327124803379137078751166455008628386675978044040994205109227160116746554103918026554388600728923820757806457956046380172819910484136209665057079253361921880353734776846284523010969146278089604067709124066733876804335439466673650439249199962047160099028272301807156971162275930556360666851941894042208958514238498210054558402986831068410622651322004410153556045315964464827953261267461577163976908520062436873215817865905416213253932046953068641127006370289206475289775265233699943234869861247707136688317067969074693469361437450989000797975622752362370820989312638529483249473511768187263421597200058481649289978432762226762783634412596627141032719697130130331141217895128589390523108937674318485087392792779620867979466828158246647776267283078330300109879425913885170107423041526731459597446066903999136430239338627675900160878399968294991387129822619724716532857086537759431371089898337094243556579328581803581226462801211596264530101998423055302016408243665833481825455942690023487644104478117059628578395273317608028408197457603257462832025947613639387514470707298441278186375740541188626412640248602641874899215901768342082813183511738624546869132289309079425491481446588837525956810124607218673289902039208896787514090973648190918135331440334931900069933967703254647952427374676328238677162145442107795463821894486480589785765268985696538479663596639074037790645214033725047096601439058259616215535522415002420293825451350423411990069889207503848974071542810658130751909623556878921364246294307079678092599621958149310550106964103391857954206796482915823767786465441522702197187839542617034927682824225120902418753824071045086537255686244363874169134725232428873311557669405912775222563542774761823839191101958869320963355079122339815408261158943515527736396306439850640008403159572972889385955228318276925227480494805279096917091432073849776062190143740717767886673349535852318714709961472524218120135963308080280512118523447144502940148102139331283309167432900741192257974130351310889887716703741416095905871877675052903950837452568015344979857089829927242791622098120579674304459451902563057167120097740832295944753561972539096521460185222768723725326226945642108492333762118091830515211936582914867145538271616233469544564849335540628919018140846963842030014653548922752479846984598160178572101680351151150725681053540022382965678587026372790639825544066340718215695620341767818927101151675873956565826652757611120603491772482652723646075202820546090704019647087290863374521928835775186455929531939662596503635217768979894290594094119259990375973919239615265136987575914499659419385010853433677793544262572533812569728419593556970174007908233608123450245461314070914088843321694497330574467567079978132427473218382415137264695908390979435899945023479903891020217858803771198481327683427923995568777224717002061027359675919179501773691494724256604605847756791697889888974759308241202699195899865644623390404876662167437305608227642305824318786881162749843877191122102559709612765810730497295147616309851338789085485211366333944361006756416086952280205401837644441368475226296015982070922978121506279265153160105544325268016390794431061999137212285895694244941116476701247271761868864702023257813161525546052177437018772889003178179070593347290909808159920969172368588789347628703675760790490694543862574929435730858179448456657332996796217539833129132434941962957182595200618367446893968027091981899057892247303834227620469239985951849621201659266928071356484531298426521212967682594974471983160837225856268677786923625512937719671984180833446698579830067571539693645831019374889437741071318396189986802102819005775830880381846623230263128450558232754376157611924035477319675340026171844494999234201307280248993344221704280581003136967760356800935794550235002196012263148036075634109029225857571529555982236514150597510605548321374163103498331128386971980626575593961656805055367989986992009453975134255855904086148033514865509673562170910289731528526065904760621460803637853386325126252862985159421491570822457548538622452137581163182765318073753878314014849456264862915481661790668333557458775072430349528550482764664638050614054809838922766479087072172006509060763060467825221121733642911488716704972421683407269537456656289187674547025281741016186184901241124546094066173029799610141183034259423937549823868494832547590988203325495284748032461812848772116445314798013054471900846062362986384556616776746327222679670358265670076259932582068319949368240521486238204103505086565365587810313286079092777808651206538950160952472020774185218737602888739794776966296503305921732457331263717204367830827333055818497392317792341680847380401567507959800267729388165864929086941825345977606299032281047882405754314813108163303220911199168316930916670580888954860478614241985064511415964844246236027108249970104997788647488048470767511283102145050167625451498490311964457845628120287559315067754182320480637416499734852650437935684202751165430731074132201423434765799386003066891559576383942398941792864248446412435383173669251589780174811236273190742927816737389559553658609435161568585260132271884403717500564317367271353264847618189939087829205955101132925285310780297240358662597316892894542470019042140146925102091023322707186075078625942758352353101242187633020922684547775131928509071749916631089857867766927636864610530635457675498379150540628550012780721734657183261449463557597906655034772745586624388553398388644737501195661312535983046815593987048328080105034384981302249649626083730901953312154279190897778712859125456546325757416185824601871202205074026576193476472329919178287072078388132649396770694710553105416763525532742743296995695132185176765924066588748534292890353121031581910335923675357115180757692786836435681662775727633077408055630563282052373458247958966637019093611905572263699016176063562144328289601946979512924258851966036869038781687443771557295675853592537818912354930416605003473627586055687537298314376976891091012379265943122409613457560503709184013531961466081998002801571552149560565033322109115344668248284431865053720653893778394834777030974732917058907695029590564985394331984067524966363719977925151136527986824525592877682352843782681621146416380207941272615856708503138199894854256412803290700795451626486802306439504817940939308558638123883849076577126765002406744885083747087017749656911231930935631035246374823881597637917660526571651159358140267139260785316128302959500918173078114062511983905579020696189147591741071584996604500403144709315868474585461375791544296236908924717309366307180586120726331310898696213349794845468755149952581761164252678196075826735280778284149479477118178798765297148238663954950967440221212018120372688921153024511713542432315395402120908467953357907129707909033683656062817198457648881033199894251435935272824109057388357625163921640403340723250985416055637159438705948339163621868654060358826507684022437840655871637479118842317353173882576468116212234391912042467910298110436269278862610730584446697122907477019438030894231291720529161621475765148142781714402300695923308151387833583607109032936156374281541957628642598034957601839769332525736438495518844520308922094854121980220697096623866668873390061511135110746040509247233027375308150418096821773685788719261681574087064583776804497841787561081553982871624399733281236102769818447942742399675506899938900834237399212215765183267693398951177580548899177941396320499155085657984548402840689082591151548855540149162511695921666315350004922774822642555949586075941145253200245539475521420148573018624609350631512063405933992681614768452621858906115995234795756875955175974302233230523088940875497730929877657735552775969153624532738980501607948030272093324316408970380622922376842242619638289042611740090466219450025373190469102605820756992812419616867604789488844747427081336306544410858698181215211669722937234239783903432794060918975436351798090449340315223893015913099711513557553918230171010560702996174239491490686704395851703137413747866265692963558869066728736772735914975025406768524431973619109699699341677588274539458243811272255782808281653367110405657210551689638644460548739622503564067229467139686746161567185208114113506132013012605230508013865577391354275315524090435858881404637226618546677204734867536681967185904115966679757819031237051791164012699005352004214451353043997150996028533872297356074921891383259103537635810742610601844600515612044912865754980923412255501458133690714146583702470819585479695353992471885382390481024651808589100323776337342362965775229937251501711559460953401542596457672264190003516098845983662355871246470123243645199859977342814177710860285042540995606955080861952365515244666338080795537102332300707184543437944991238468310725677515705198723742049458687446741344108220389104660149650676454529433533147204228106821022457519419422781932127342345513645083638428542534421001244567001889431536427630164901451022528649541591051882656208988752553819755451857167739019717885707999517125202170743478153754914472443981168225854647128774005469374732755766714827668563003074626639807740154662479556493097558933711173788584358699464451396712097955014027912354823517042625705749491574847618415226298418292022957755512519460543562036521805578602122484975963287008662015711171550203628267352459387069750343099743919121414581684025677992942472011846537666175884694901026577495462553381616483822864141248028525677242214053300513857533345896539718631315660711462975695701986322665037193743981975918542951191062104562427208369232739516569985138437043861600500256415292591120959800639343958825834755811140252314314807973120618972246252986016150327684125083699895688929871697032773048402580596843174414951536973588004517144050358057210618942308681825208859109646117293968460066592694466218082900930636808912188226372149546441501148999133575854274196627114285635312061855400708949931663515845281595659461716782135388311934078651436982871297145448955269959701178980121592794786305176507514982474931756142520227681419422312064592492607894504383406454409245953132638328229837355144976380239095426451507132578559361331058998277236703784297714249992449065673637440438048292358812054656070217072469162369309445340785099181843588232058300888076495973456912504417080756414514480369288248762754760968644798959966516381639614012140202085895843484971309252673028597183796850082853245349696577936117154923051850364367453454218587459228435746755994907437647193101351731443647035412968892937917578724227831630344784894729111713083246020511209879325819369389658953118118338038152773428004732801682064183487078863357370378726379406641832960548737905415650825167312182859918256124493575391822509470918979788903087244267536799682989031089267062218776026167602797201507918580199264776454109298338769161710441158829043960781373749732357635786507158969357044716040776082855675372239213628531452213772528607037048131997706790157885930046859802547840351917515745832147742254930386886527743926484200867439294142496600908781911345417240383570881307048157525005735923784030903751286830167621144207016902030213652777330538743268017380539005716744681180116128647422570174148070255565847565915239552624159149012931373723540752316334362170605636690890782763874746577973572634940286099938291842594034745489432961970170773014033142992990377025347573111713814067072530594023605956198038915129708497000253439267732169923987791855793849590753724654108658417363692196150137545836651617975339088615423858392621741802513055593293384458766273958044395730294736705419032398046026488522104526005490309694094109096493090922530780784791849005730179075724819590643113133834099350543392896299445786787456428739081769289989726822883336982394449705979925927568969821209817826689538008759929976814724478118471831682983604080717994926671160658552005471637635245779139770646557280520820631633376698276421872537728211685241174940839405036726720282827228954179294366379184955472609030150677444411654994589023070681125242954100352156625234570592904188609029356671557303038471809958122435321720071864451337159523926102232439273045776018310088334174659296296988557356331315085752652709806275684502944489878819596494494557120766588976079061947701510842542068339498074162309213567502308897651414015342837719176260315343253198991218711396574323103639486469753719963345320131185487449665123976112782099216100537664312739166417722676234027057325739130678607239608903515195233637669709388938305129605138871156780935212947704143541385390704312716053426446070567805601030845220663678918081364285207844238154731429273125539227688420148767997696525709574368975575471116757682405161896735673445372857271115451696427409637974459215951450870721809858499447465480358230028311177071538107341168788627318535714802165013699756673084106936732702751460320624344465221747757739887127262660097156106168083178362545839232304040015807417316506602275836674810837845564667845876226584233752753048257733044781849998079003690795255789988538730279546046713244653209223141530539819973159665645481004827428992270393347898736493986393239454539198426624083533873489980782197314028213673598870793406212435169578624676907476553380791776591690459829583542529032439040896533480616622824117010279173068975184353140632600901238542033661572956029585267802354905500973919597791652804598344906105270377995928246727081966464512642740328036421405261655879523089757767543618162214013342250387619437747106147019854907066958836751495535475904129669461788748609170709237016734855615088873173636145490956460042899104630840136429235452218603652866333491883467397624822820652298208705289220824202916621482295990007657097837241413652555493724616783033933327254643303590991219863277539455228204324799751938141997819117459569869690661244528699248749043461351219219621445657931519195666583381762669486655765302932796141347612018946805985978358700501392733506999315089826650220357604668971409762313965968349833987641815460544316659858186405209860410491534282835715221850152139612243851823791718720269949414728657802349031964342210011972689835167472128508990806729462894712993306439346562760031450789844292018465488028041002187583752450173320470150789083012281143786586986112285312521785802044086411920560933877844977799993592431614431685405582595144504505461797376438292858275490690356433411133752305480979052746007373101667794771468594749638303331892579516661746884979657789076632627501878700209628505935936486620103151363379048810697472537509794541207420669132092681531445341014349360273097013824241449857993809058685269385076298616027275129260005217026435655840431646273919133443796865628511487549355235968196815789230176250440421603182632740113342422257721778081683279870797214631705129888818203944333479015588710719100330376622422746466007872808677425510710541036238484406856362015189145157144450199617029494197068332922493239410427348598210964148174702652480275982790593562911549513364819408749426450120102938123296082342882858241490827848409685515840496713285065171527050134189044360341637294823536255115140085009458788445601547653156023190716389854263645978242054655907390594494270082591382056708019639827854220625139376259533208779959900732323324374848783071986218048768683707759122697089194913303999717694560023961620136336097979905913488729243417348665038618432356557030587324312524890896734881669308182511551845953787737139619099422112805706859371181233364829008344147054888846169081660262962089637909537800727964392440745889283812744905094859493031404111117548583613582577769157572333951475291254234363399282366703296079983362131201655155654959128980556888982897863877108116676133884565726772588544584401556766854211272816376379474485902897493451899418573991425208376709846874459663339211634938978144634445810622061946460728489721215529396808238619698622218953206230482753419616501156904563263504964464263325638637727417725520375665077623985718030616696079312069582897130318342212131264299580660737790968392526491438889998335610793136778410885735881641319886840020381494736576829081374942134937571515459248625402186064039204374686404614905547542107214968008423341660326301932421347892846080264606627371317097248459146229147485583600667894183573638266412579384316010921226086779827143654507046817319830517309059828080040836567253891324062165062193860622475205413205146590834842243294416083425770241251360659219062859613111308447444908506304551530705630784853262482241671498350017450371398435478273771899593195200435866076888690240696222627376697212604820743187054698965907336449190119930414791649937237876109029538444229756542127498364041130900630565946005171333430874911703528711013283054514014182918915382251856968723353675858345725288733389823236166171447812230734987196409279209180513279013297687345851036027839438115024887537177245738699455907962477565388168935584239201070239000469087410881807815451711848144896375611615072256103935459626228745809326181814669601644299704568635844023868495636763772167351730031384963457430310190088536708661281335943644172355506945490696246913244531211519949396860185963671154104229714460915098099608870468897872496441244003533685762495345401523785417243241482206059939607396437874488794569295658067730548411836742329829325551477883049675113809092797994455878752872094383430313696819430314567514411118945716426433241265160515895571703357147844550995283484681003067471032101259774783313901765306551272505121886238302105717893844909938734491617355739869759218043210426028243566363358794229496701777876057528073691962291965019330187982151493090160217065849585435907222364131848328179826824131238029569484790754068167310901145370947225242265191455668059204774142494573485861482078117730282195261068701145469841494577602697727596324128785883583084801820860935772722718416650587763599963103899637058127616390865275490315637328516137060405654860815349271699898311436382903026987130327291691744999505545377075021050170702150319036740305080022229613819971399997488251836356396615297243388909689841407408166280516809651467813276250496476794581794286533778333704632709736771385481775148812179746503803718230544123777846312441756421736247954811885348780267960991809683101403468063543513002102013391804239399150297979461991890712684520746968977076758029115487617900404678978843459683774379937244019480713348356148209206568457247537448339062718680556001771723232342525498686515459273708571658799457798090279841316210463329244391056999229881613101471546656871203272938558486072248975465407400640337701230645759469811917584216634515854771095505642251365481106354673847196738723371177244261714000456660023187041666241660221294966807007819900121279987878798271091137943320028487559390259906915244309713444397825320288415192207599278983638718833564395989042137692448261172946730732060409102783581008953318469546197687296033651851937487218329496487689559827943218430609856102565800840777034181383924877415324530025215944080044832174055417264334838036987638462734303467166309702962448794704381634431202764714345581912318331782230672588224015820106694498892327349092444344224213139365985151642002625811849929176927632636196467851499080984584435570750948507497559821671955523778493596930922701317545362538200579113811116908268588661278073298361185698900879640808739405490441365579046205631031652444202990662523794270866616612334718445291556604792455856741138051480581254146099699739670387018760434714174600944319626452523344650009746392188239166219648078172630493299159658883612602001992308636374232961787028027631902336636754663942252918030235074859945397601857620794635966386349407864488997861038879076640510191693973473481507208133111296010808047102662001738038528353881676557059304456287906161315100917686537243889520329344077645161095586890286262701811038670727880202435446831535398556194190054631942619146601379859763851452742587341781714465409864657512699325050123994345811674513029460669588813742443117889244816121678607074537926652331604807562570369471358742998588199209815929055249846096194829534459839623376426800384670454841400366229839473940255766386447897351119134435538008237223027729931277888981391738649891321223671505876269032259008542180776913625352162667727271786643509133406872791474563249080248940982828350537411598882934502167651730830203237973378436940157551981671999758984823495639227004981764950382454989072381820349922020103321426592592642944226021259205257577142301933520257847678027015084344538877852915967593518532794784755008054582214994604703632316552633368138318295120565656570586451540722816807362918634590629894959161186403333049794374744120172118470207641091460081796162053092369699001975895585512226684801090976149072439971840834952390255490602423554966200172033962920647264272423944737362032627385658502958913671382618691108265008847040816254227179315512102266623849099805534067045720325619027057047469852571557372260880454351613424123097189834285995318375202262894212009812320858631508111892830923328884053022101373380932408737030792002619318015264888348763311199768950039434326400390613177627076866332961211426931989466675653775139810521189580524321344105423462835075415258439484386562317374533576522914666393884921032284397865548500797225116227314972763108045732676860644603855478349352404010661777619508837099595332944467826023873677586651808190261458031700575805358313958752553813064784188781116291467807786268943103366471043344087447089632883497656527197223417982172348816740880753563453401235180146881093226304464810547281664572259294724067148959523960228619684729299526532349298586196463630719500587622415622925262929693256104374472621741900284559126899697756096605992587669334113424860174326892169850674229794232941866357916287875106690580180945917819266799299817360165691607308880275830457164280619891916758492252532976289604123481815081039943168815240449852878470586848654385592481026997786283894562996879169011350151454393017081946664661152181190378406137206101109744098061329853172990145939321697521182541218454039562117998362754018216231365112158267764169780496045045765573664047037626971168940299761617366266040759740927545705369735818279510455899735141300976389615836840732020960555887919788078952641200205838550946960969002958364828769062759009308636290460309767308006602212561990256115896154492850938628012264961542210122052577177303594495089492820267108162477121839916648148912406681595267361450242452568257328730898512193648908467248411291418884139324453403768177682454179021753447736011489536597117712192359453014457815548489642551032778231727321005334130845200318132480857136031690736412813801132373009656026760546943205197639755958849968206916050877803721977889440774582169553782507829325137939921405120578925813143470919249533362581871532342574693303688100094134247777347317548920886288487126808157009448637866039036336534785759723667018508260529727596819684121624729209404089799640536477990297679670925860102876278499823333828874265686882566100894326359272065503707523320246840645383065206458135058502244725226055520946929112268782956714472191847432042970905937969157782189726144276101734925998893581798636134114081131566477413112530849904835394591145169570359504643332323932320556428277352892216809747312743956109968547657540211128715775219261290957029834033143096536243991314458922389456226691795163637121936481899919875098859541789038307303701793173280979377621896126959061360254628027116629665518247599067658990586215210500820412022580758874264289305074764507056229314520934148743561642495386159702451484861584494895231365881788259565057404238482199352229596137287669441907122801604754327844148468161466427707378047241770147134234019699122701863426559138065395444380200971701267688993790534101443405412177736550328074634861384448343674122655216079234465328277961581875096171590903046401888165334626287678036099998935997115416089874276316314296865742302640142125959073195278433809438266351636239901627380600602360235184830707734507991444762131372861680329183109876090012488366340214461054466623936298732338185606552389008513532014309150801837689899910261186023262387942859728910795539653035415405876772524158936278341448373679432712524298563595698887044294724526472556923959227141755483736172042477351015344422958806329659863921726495700656562658656213532957157843242061024681751705863686892359458797288578153104789331440377323908600333038795247484432334364953389995220595904928914551384552679836880139488887525296288906972636969715162648072227359197600072376291497792650629819345947570842121744308994223572662697931644370307018117709709980091373206880567139763775779878325584006987868489688249632278606768796579006532005399167011247144863718318166716344741018975055963093300346965732147780916335249201315589051889456080860247490154677813070289120175944579011420079398535843786478028400281079861437777231303331984191914332916525605984555030370255409438232144728977088437366585297417866255190689129789657475871163102259788521172051921733611094233769578420422182549759794259219799011901751028338357065909489267758016689547208558658942822707648683664062597826383532888235110659935460756357989186807625389398251690133762971671642615689234262742368802341326600899517561464502901647502343784893292182755072991222300795592245108197399285936694775730909437574482827363363252928190871051695750893644300377455614759521866750517063388487372619327729962607589593297899125420520557577192183148864517892093344651841094165116431890503149234764779787741973362789301531782908075885301142791471622367656869104400024367190359034599896619700972823944499961738424324025673903577348210959194597388913674794141447439859654731539531862512245109052480037553855873985696485407671465498370028515268972326020448273261829581739857920284750688626408251571045353876533329353621857500365786479968651501244927379772587094263454138700567458562366629925921320151223873569947089888975208809651499906526162387698162589433277369602881855214263180784453657967179235862240341116300542249411610789982960714744030540000338253548944288159681384057757137610938538804439843554106655344749081369601489597063245847578402931792615785117494042411384755319705286438818216846075853194665879412005400497846826067449373385807206698773994447046112820285512487312019703992107804977671897745412176658288684248021345884737040068672345029690611704447495948942923441810310165050159373737303548155628249028362775813745710555025705640039727487898775167588908023788628066746240981089197504625354832170430212130919763925597720383495031718908941544492949501636197798572488806456849772687841452979558070789397572246210975110150441667887217624965624581207193416236728067942155904607331145429189853622528023381570905179689805378964046056278861429622826460707424699022047466958587780944428468560571478658931782151617127223085489315104029330500991445045710144733612985181998255264140435305195116979842372139054455229044207473202341851145115155387603781869143601471835014730399837688912903986333262035250014865924866341210926652245265003629641827019054410393411806150924836522579002869399199212003551140125311870374151991856764894768274003527567672271501575125526872361711381333301109502701150945917026951397620223113296363540371022539273068392829746259511522675948217569871332516370831280055541360409286577395585923765346561792271286603907579932171049873683842166508476220919076432261731059047891183767240035368698575476373333119052601020872826377894247373729593853600697014089055910002353954933787515542028902487495839230775791782700037684882227533510524136220863346914766070260699199862806357646918553103030862557556731195408930522393828955250759527140434196690122311689907824601978036970430601932817993964422823722240553541188844503364446424191220794783976343750306638538366361380300731596641287441855184985389116106018935015438565933063429931558550577468379116127679074509294041764492839536513859116973102865861071273434454921453748249256671464210932114791362626954396789272526209774751839234591210922995813715001905372936392155408931355563506229045563718182489447768054367989932576166916481354281892111261960676791761493601257545041867012779478875918380318574420702604559598552959202166319616337447885819199351820569400582780477916115508211698005974422971308770985153687588875877412187351405930138579262531027970482073108763484740745614265820671336772543187418672041981531840900584719923012528164956219535762197921493940216681998866470116273500175209846711488550652047413183898174497833448700444081038264391572292319607895557761093056903128956982512375909016410927558502738325704784329463440518826188808111177809693351554806314027361261879000502845353778084255517225347253740680904123318991468977751595969638362154345371291136376101185672884080416575735671085058683957558033959198764802471123197984574745176647990003581915242658643506371492721899067406944306262901511687485581482428274362878175529674000676195469044973419231306108024870206078371349510915045582940215550567630460055152956797473986017121889504019060244835668904518561584526935769686516728603139753232139643957953487779082984147800953047185528332590757827414102035094308418118563404161759338829838785429959780337869891930203657076459912305045160581470940989241213278996286854055326975164716458279512904584478138060366101411624913432759505491037498450469948013017837691929657288151147004319976280183010168562798449974490451127508643811194096876135104002831945378642599693858157747325915193700911402698278128684852874545458793524703424726855126448216073129503185307391417491929675766177536211223759495280994657040182450691775194506432862280028623467526973528887610224006859831333978145553897263152602750424642007115319305069146438136527088364732317677816518914663020548755480829248627274164512860943988035348915574522036880026645511426524298649072629598858613944782979468604797459454311786714131020553110098601831960044103996653775245088781241927852069860992964911800084470281243300275423029903158237839026885472803827140054274750186558096757181956758258131179450809260500921832583234092743954752124109354045761568100382453905258343925627509662727212699872708865613965003467828976195045027441317019860591343170772579703599620429884259500270215252040833643133050943552826127609200459530208185243325677225996203881149459764364894958984099541037746638956523933732761782426140875586514941782573998744182389361227219396666057799116633643736848441446186591259952186411488772301372012438640893355926261238452678171492710928454648817419812857825032467160062594680299340918426751705760150390335370536202715869204279913425927022644753285420824308938750528164541772771394299061836756608788411127133085869084587211957851833757572992653874893472000504817776488000886087571874407590918142135717971322035687929189935812394504073692539125430065091615877485839104099522188140895311021191675222652119491951710946932374713456525896984094645893500713780635933744868264144306105651112024069435801259791571499989749490812941268662350854141055679764131076138263299806013255428807212366307407848916597996999269476815147192925309836073418631593936718277363371630802865135008203594663791676390578426945453497302800791951967286078953582220765637129206200821707692445430141449522495498295461637696836351283001707779453852957742462523867235959809888146880000534429004662830497001318824832406471671575746817253012452013284639080720286320130501777956286729081192392297798392155385246060580425307605244922372409568256435202748360056113054674394947068299969391417160457600164794231526896786093828860735530570425011621516291118821383846229812858185838035379205039597285992912248253638818851909403386320657478912023938589071340369206975647335184358308737608348867400778232297573153066139224172561751059176076378098651907434066881526935314436189286376655282570287662433224898816822950503334530446867575320242018008026023044459172292862251049605533551111728259914165421000248873709988624062372858828002533833081810201895529787812576594055227992825211516308067419968973389003266179507340454654655323356370613159270321983112264080353909142545140570259884323663071758895253515124457354401232042793605212834050768129457184859210729949911001829739993267457366492979787143433880363207335883283936333499279234681612050214150642808121188576403712962896750503390472439326185013064600461576418457991111558479435727628312685337946518075136450271234842352814686952889535856382404021139048020515382223188184509235989930801456262237919461909156647712149077218012149280397307735212366886128105569718543640411129226756388197401000685410282420846555904011308616103202678744853695737387308262422770077845307903599102157874412401591184466075348138890387091769281249904177904245012123286737574982391939113807741443819241568037801232624843153453545014115276339864955931471781191023251763486160991251314372488661924909724991433120299058359094351379964152223849100571747022603783903747155296368589998192610728245530571693773588081326488443452889681225403928834907236347417461175069107915568285523124794600271886962291434447405109430465361285296994116992373372289314300969089650550168175387197436425347802879126465161346958906442251908360000974890780522832928523960628829855350067356643031490564837453619197969664741223951337276626036448009773495880946807415078209767631697055919060996785059327799051560494636226534384960229775357629095771761568089282321734945587474974398383717274585206877279771955562471993098118291369334234455717100132015511056234820129579250063354560003978648982695439709297182149548652042859613949548835199437243053055826948420268787701931566097316623251906027369738818427571094715367572350458125883828242384670332762930533298829106205956738046089423205840347670650504268876266559711794913420946848978831582731204089804680668729737432447879337644985492198440286309506609501286719879539001737660685577229611138570309035842763710370323052762345826693826516174829362341204344771747588009947273048182261009867283682898875647606853001798843565614439358220812959182220903997233651787853403312432928588114924360916382646047551180905468850778979130959691529589799730336292595925395627563057344325764540996690415225026891212681273173218863589385169588529243777051380148972277289284549291372406966768939032066635721488558872274316098303287261165012267831318564084428385151631752751714712947765280062884262345874665607445736249444780215645414966105608739131738802695728794859523330652591851320531913052107400573094346578892545822377211856147973237975218535927644081803529055196114344402590882451798856130515167041655012459639188340914228306150660424138750340151174608265708351109125270622260041135903680707424026551001322515941088359514677111173265002649994957759038322868449857251275254918805771741846419874765450178441840619949750455197111372285483657365542005302617128582807499285836692310583832958224478922116778045658209938142927020573140694709878981549828589432404125774792669506965048015499515846645547030504887326811209729317936471874942975395565204098985944498693517200113284900966620664349369396175800278389719164324374630289644558152998635017295539882633679269420772126415659705501853999803929187647552645660248446750514097861639877945901251459473666239458892142958096139454441306517370935897409572644904205131421826589371789322546755019157569870628164341201914014107860179529124126011415610712978903738069015392187191717871323706700167021839606246944719552822622096750510894232694165061107878298694820686571398657895319096313140652684587783362421000600723340220838958233959838961312066115685800113064063537897974119399399228143032380739473794125762761603776575049220850326622446066898673300002850385088412936114153087076500323958079856379045896484328959444541861774177700184532228120907475577626826119502671316011927900272599477177722227942089573563149876095667373967246234537286333747408301429174415572071979899954235664726055609601840302716173706554318829975870426124034877778717844386037446389280951511268327324276296915248674852592794072095399333015610799568395086519058243994418522366631082440460225997046171761771419042513595176045625800839001727364754783623365253030711952888226903996062799984820861216736563580011090040991261433673501416491880708238385428006615226344188918467429456722621740085330976816040462624529125287747474003057817632874023681335075830863133978829419751766663317213076742024741984006369084984031604619777073353667136863901678770133396251970942619933878839707512273018509151552114553580344725041137825855912409269828880730809774587594403445016170046511044413725756194100966191124931270625602013715637284786260083847409107457864629522456103935266146025020326617751268148000466415566676885255595493699711830276140759032371851476869628948467568083586424089470268823709522611688521332056908569356510885922813550002580912615527180799990020571698532919461979252342381669979740570313510470210520318932851983269471780942929281025826706052018045738439497257001104699248057321916627267402845837041261783724887028716938026131827020714837034337482381005368094577596825905230840441102611162308592145172826692439569464324340750278867689459030968678304543808751932719100569438589856875870792621535139669537389680522161533260050154669615995099943494659311280762841525342521457555998235942680700091808271375036829356152684097534985956657387098372908453455003071109778621925871346174484210576737774326527916231272109863624174729362173154692325472501305046784794918776508354542384313358718837627411583357392382201284464806729780822940858909009136845497543525416460202912275044396436328697713553581397864577394595505848200419926334257580717055624861705680681961125805438743107584245082270974561078181778707699301987270459896900229083604937016768646476960145465714012764693048832051636071962395876038028059366280011979699878631155741317559781141562225816546997877700383976617291000349395641755141198768999406959704502268137064152537628248840649604102722208235183821492311027414048019464926740895516957791964987030631999184353538507169222006618534404583263436867087835608751642924295134911249059234304534930021198623237623103910287053079071887299272152965931494723878543457213286751845128777123197387620938870794519937785997145656932412745119560054214638913077633639415010999238885231215102047169111558801464350900728205043014336235103138669591923164013594867171975174963669278423573142060890338065934934820571649768641941972105692990052740410800685118231370525261752743559512686259544678697610424116672558278181789880734856557971654172586621276164516283843422805299072015288184232254836128765357080102307523392578922630867029374926074138488968089571837885677838897892794128514407906348283654597076512580289279184826097721356493654095559513768665228545702724825484247519597547810228881418579608199463050065398972654207778035789687432699300035787613342411581294761916823977098600680736913015702565898635491389158256523916301999710923542155575780367407145550373660483078897138923144136696540395070493720815832443610535708667859256808812225965426653253303333501878318453003587478084372325126316477561496802480267614236438241529520799116361757860717943653890571295788203957008411602194301344551143686475536680742895231344118917911058029103866567058262132885994610058238859000380143343935599947259094903764660480814199913312017654844091127780469133026482684248489894217922808363089318921817590706239762163038876540912862576378146208034940190583992540713674521272745674239572734788174711896219138075748583249950230075498819745996687683222772057488067612283207265575716087257108922032302657245116346239658321491065602767719075718055671408968895561843083140156880172296696041801395266434660184250213510757207806827858120133740898026001874476793413793047523641031320961177303033469377219948106599705033516316454249160275046344195460419646200789968714042681791402384215178200184957685605480172922806923542826220833550296066989044307353592125020417063772082759663769471008455358084510600955953366646231804758309341406708209783127884358413016405639960772085466478704798724921592524422533673265259154805996370430166593205490471600806169642781106034994552195711574006070675194843965988008976132124665704940023678210150132222481777400861237440972536126306732388210675949819660821161837902757619541746749291289861251899683642899822324239895149635982897849874435907172996664112181297015371299443898323708466600112485954809119801458305178841202716413298271514054324934374971184527986594294567830745259265330390406632831003084856209159171319122160811355270250418410917553555049708334194057393389906318803396130009368642441119149392470847754663040351113832982976667543597327655764104601416267158126405846025162675476493002708302842848183085769020696100510039847025177506373740948128975549087496531804487924481767781331975840531509964973015645704670500843689645726036901102734879332093616085487042979486196625346116417366582914081532414409902595601915189767140763933306254372145262514021430932923581394899261583544527535346148415058718948496135381908844284990496432775130228989986862664910385769829522088493870784020942785754209995491550015341498027656169122545394170535170695790429639250875167681824079528838098430835005748825474622401509476823573386589994465174350235749510768922482206646616431368101754319245434434772687853247155706370187252956575935388546173319865740194524840125625767433210621058230460239762513956418213809940550149649967888656893199280069181602262214031452331023400004569058211384618038408396394200349094544042633960961372880805620355960886671698248230300130968816556492114972463087763811140245222662875132094146554584526258304627101146278775024089524117652619415921205913734772905976228138227042557983096942938568398008756920066203197918622330719897027907508655568144778699508933899572621169370814922204793533278316763816397300647580656849734418353120880861872013503076530318883397242784886860704766556726687475136830561653290551462001195542553817332006580467103477295493140548650995169242175536790787332714700861639107468125802474761322714395742460616666115243698478761863416393496756065104845648286087506344572901984142179401006565208040428868256748692121052086686748206070790358396629807157780718110042328309689599205027933156263853936251382606099729152820379007115444904709169222376051913281281829159201269432264105739030112274399306458411387513171142215007279849577716413757565178480241498679681013519462425833138358329133232065355023338632922161379183541794958239301242168753666047211287032852639488156919799054471776146775381337544516660688861522858651220728715620017814252149352776580519774895375892983706971544284442954085297638897067592944375879800905645163853178232148120495783152738778338419120195314098372463521526932969532852347421935637778123223946035365035679027000032519033916672508648148814888676280533026840136209495364190467147027845015221373327349176963135826654737829712032855426134230945235386394567386201390725267107649143870497633486030171762672748921668072080464954663984563578644219406625914344456565103234168295074387826511820564238180320143873330526978931030946033723210397160283491911001975522088709724531389809604720189374869231692549197956203178789752215779524500934860191296475026116404456930684618636325080433403636089217640112585735265204469922540547756522136501671602081120835118336908689421349111058141178128054580185439764042920870654585425483048591647577587338948975076716537454593721509763858028323075540165126844691713381438047725138307654510965635771058052098315428844358001869276406979614243916354917527016468471067000821106210796262227408433603862843608130836993748543216137112347297799614968604803169888962780038479766961104809909972800058048984649507772518787890843209695937257629055484011759893951002944115312342558273254955186583317291198903356691062292875582377737947216229663877542690866054595076943247452132228668416974791083307651452740599699108184084681196650487733765483179656606257626268266620638781921541762690415911133400835435731074013334820881641691148717586456734280990834900697262825989369841939403396492142966461070572289826902078481685502376681600648417957343120429490376345253297486165428427011886785935785359013396009500475796155825526313766645389176094995676496574976085011584566614865011845996399201705756207497591198118163438480612167291688253302515875418582577202837306690161125196231785856638863442059556127010717678145826691589718325289907506065545435438596213500498417544281620412918971959728883807174791333804651867957233191243135545984796794233888335320355373915954702028236986541351060793239112700643230827427334513264039611030328614454336801500888974081189771749124839441758510391144321374123523936172856145712345431452354187048251217789099417123071076480543879451065876287980552291054244880744357528904562310540158666849340600890221675182903214105447214488987658102733985249126425682548135961773231933289092015906194709254926259217111380787258046743116035121094659455179868437138925802425604855613603444274683555542628441287811546793603062383645540586272290323646148778859321398651214471041457038037986803882556526943690196937791913519980461217574971691907342891440218427166845405084639042783992261599537119296140768778101148049539600312276066716779040377154415791416548501692751851386554778178337078918576606490234020181519375250027676790516349301028142558874257164980152599219134996035658891619863834318601849379936303132943892425989702713079719675365958508999042543476703836378054896975313463133385477293610979256003816443332037270551866932985821948184346107966754592020637836447837368253543488505823877930952177075221152378501884707329967675575701100238540606201641949216485283325725758336631950081451364402382339134050343170354970451482994612499352067956510638004656685294595120422775389314651217640535593984754947050689829690108920306856968239921216052960360543468289822871514887900460932050895696223885416649517117083967636266135404488977027521431108626867011196526070968408209680235481928269966411344115585733941454707773318534222423687646074318839447872342812005404173473615630385840493497879437162841504873319622324092369822335756982832153445316724717770799874192206547754485582623801029776570710114073639362782886168754056775137611701544361498819300449374940420222524780153369525991316084718565096390000334227387941769669938988325685507850727243301575455130768224827802285705078778086725754718315183373703606567613932809226703062054085534691386211516262081315722154539093125064413720402886265128875277686006321586513206236985837146238736605501809412841515357604185959138022210650369304533715486653178968436405971675079655356327964186729784863077645526837574519914739224320428906739945137169378522278782117238095016663856513192959064107113798847131822549846453123158695318406907995921783575142011319443245679200314936994953134228080418941128639838533540496994939566265320454604299665709432898073218836045775809008555197995749379222157480027826087823263682757005868784446317398827406669192767852969310670518791073291099646049584688993082495127614928397324873518332908522961562240061030388052702436280032779116503920646586943548832243269708028333382650032880633346885720706074283790001051786055654845581892598669963803354736897074920613866247298655275076685431690863856412614247761915229993006978877397861437645741960323199188517227420474761338245161684852190537832214773850773957292833188367126935078317611768461913444698844753458941957165352052293375915720848824689714055172442670845263217431835707964430170745102397120897317365037674875631509789716231990220534549208423666069600835975687605530459181939062565562472590152287969551012887062910184138657651126348005695768739559402489292108574161580384027306531201353458668989316131415367489275709931328371467516790165336268897913007059020787357336549764926848082813018186873838018335828170949450012753812674396279848235265442560364548253771925376631288189034918505710567116304652318910204170657015977253626917097161868583711921575438335205474850714310978311327230555916402715280133515039522203285131170164856407869676397883174737496593509507587514253604640897835599843463104326544838464186145347573972321456665155445363102453634917513267241978759853362903328264799200739363340850486383014152075060920675999033206042118370886026976855878853063916779101725710745884219199929650411553981449440413422066203127934505283881004718879547367574353673055074911891818055791687980584941053406725018254784057989478411402577994470858862516820755459340445081921593487657385569826773573045439987091494263906013139913144082702924772559517684701128479339438733845018052967663925666867479143658618254696686271855227941400689661647364137710121876390341408890311893854615011599174036799854235789316023189831781909774588583965870995424591337299849254149442673724060658758290817762452973152105213546694475228541945270510530325860382313283349180673988444998585872867111378560525770273374504844268883581296331744919700272289813831540989149865265266684631731855776482123020481137578702607685912044728145162120142254460883750722855773909588764542514009549412882863158208797562079647774985308387817756691555850815367678084898220489744383488835227859934943889605510895411099366839036489102524846415179756844275489881773903278598852167144649360662212003629228681441159803345258878574418335680511671913451899363416650417384253907572443377033829972855595535500185645900496758772310414949204474051537424939953531490126426330100688718679017762198433247126439226990040239074280278927447760762731051360539866099933602816695925772159565115339718948453484203881515900889941693358742897117235410354026154951117657008065212517050077518754542682987958166101861340355432680992297874559209785293021258603286928476462750961687456580856164296912733175316165631517496225464766262002979039022550969977105379279862954109249353370482829270002272521797341574344901052405935143495998630996229958290681175127489066923278296208347083542544301119539616673104676445978122848499340872857669121730530935843407657534399143082843774409555826482530468374424755367876566843443310672642490421242370789891844024659845445311065065647092051761496340999286408942803965733248362577851812452468763065382667553958179300231984226240493630317825955188351683754138444178140433299100715454704310800133546180229371458505976186448662065295095613876946481403774247176103343801711209406047033853435029959930247781547781431861310208463344530764980195610976754824292152063260698580090026771168195271509283813083993651858819897750278345656391906741911219480599677565358984897077593883277380351900206504974156590751821470612247247539919803959731619019870195039374262507275455963624273226794959700589346901996078381117528660785305234169364187078786736185633262609841170448303304224562715552971766892549870619289135417581613218118578265896034592913513033243299643247443214389999815891014377081901623622465218449902382091429529846549828170325674126246488884371073066481651981806771326679583333668976149926329852359599540523167554494541410001039585687969647677265940659127936844161569653677913751763854250779458819494762544756767477286048199406331491515462779155250687753972104146757283432908934884858206484504716136057357401933233212678399890128761943635682619799665099461681100276739083666966750762633882216820548240907418331247020244073205412499012188138093570531119207917643426427232618110666172486526199392693757517694522952393409670342210685312755335738846935647622906901290346280024301383537753359643059259973091649608486484991333687216175307653230078067511864808215551351571164605325153269436866532012025687537429093830476266540088959021153700288818014928740110644363396559889100511649561464765893445180385350547644481656555995493237167095664759968654542074370614725247450946107984759836312888205655367839091744594123366662274869128370536690000607115389139180217314311274782968389006329134626949185221511195979775780279667992130188173391231123436884203486510467901369335724629108886552664712410925759027511336045203955451992920704613982571603073233171423824565515549931386707090878301403107383424121824008677730766659338760982334742856854966302321242905980815179471980083728260169842588720615975843944377710308247282033475671328890985420876012153564511167175874962449301894991392847486875230934435929666908786681470066042986444463677930478490838794085617941229449745999771819404172654241105615393148896527649554733728016979997293023262315075879536341224567106690277267463142487543962247857515406936723556503725297139062986720026789648071672067253746000311249289656748868000460633433209799477459358121734944743501302684269233090782970125604547091071702081660576392137921030837754261864525764115587280494846040520473098443135342282201595486142464031704411366308130999152155911000406318737700648552277140037802743791232346191154698293993501858058421002867045421883458837152280565517621605973152347075566591411463903647803711257563279112253124447457660123567788106660803876187808952218254354072535563542848329710812438432472864711208854551763693786671245868848451661888199325824691736333103362976168550583888427429911517509167077043018787910249658659222845811498451169975972286493357738854403695605013867421801167638284976907689723463130857926039051244877749331289197727705837173587066213683843342053025586542104565320669996647497112681159772649585702779592936452305043217930925310091618974944220586697462249812667500270421626566565164523781453406309283241821502876734643682852248215298828636952170510390265877002487605311846967914501058362919393078452359068331239302026444943195371479181631901775873582852323944549477133336729709537247050275382317420739359880542037653077365295222592519843552989439746619661298393764562859208338966741403780830045855819266299999455044585156673953470270541078137842940211643994050811658515897080111710562475817170638512582050170865312246930579878890592630575571648829533000486586770188971324542527741459006572565730174530570570160486016196346889068711259990609369513760566467368216484054579118143268273373916662760040546816312541034129681498574538542222505693820680596773643299532147100079192289406360997939387003085884456913349716110949791020356728390688521665107684315366684714174763242468178370343714370340948113387533457963584405249434932781120647436007503987842498347413570785445291723480681265824706311703562233130251227329625639780510653378331225245919972469695017982380599156031032865225581822137459747955259001254078509450190108554558922400701278604490598193955860043382619285516961960530205457768862833317150187741391784959948993867004657077223339157795208323724257000799635833853648197948791678057130475336237533942317451673654452118362372416762937340826214460734174528778519139461406294266579820246714700119168420363356840111423806975769599636578978272445830479574270734854315895512385201008288900597313134809440115403009755519382755605125265212523140358756651750132240862446276041657436931626823410435284413805518308840397314631182763059657694167734986794582540871694422420467805261390908729113892304975968116396416536181591577171560147614108115844136211064045576307636832130032194594231866047425132703370241267329900415844596488762711446628481145837642066749864210361976581398761099026570841468941967095428336878334478725074641585972646910223259040080305577087870043518945128398019443938006716889993916911617617922485095188557495588613927013138467590918353976538427249709848471122212965790571245102902536092361477045374271854825607053045750557622441074767181605792231801008872032383982766855108701970264120323366067324446861898733225900213958036616881696087709848995256727822371038564447497645228723704774202024091716066261897775921517935045434791117837007645647822806149103048750087724525779180110384958768311094936769356633436215685285400331377581668192510225326371090150548528887167977197545759643874105188027958191286842647705496682256882848879941724721102365366469969465124509692409336476064378237994393858536581856313602355171620032980941463037516230286007239005003478725404145474542779058380828897692415798413431293823930989620268984530769059520636982690029672270652205856368475467398938516443526774304758991903511581836747011729245909485706806458979125431818105051431443873975288966501649958094347395606248619221146630481720516012710040999767696202691410754577660764212550075634408607098397299670408409393200685069212332477452046329684890076671061451464995348691502732068529362807304718244254322268269017963993760872595936136561748459369937122496841262635576929007544150533645011953178634425645462190115490948987260492606096670696565230111161175062248917608193047311355505062292061264370895360809182405774643982306421062220178831297780090399298425673836580146833534366792055191498875382533691971069931831317616349816980401310089021803407043435421141390614022385876573410719203705379721518783010156861590485842218132363093442454822784642502418981269218349359395912012075740569144844249504506513353616893219136962793416816262460588856496141702539390402329627512448506592348999682055939578320719510409513272613442401444141868276371946293949622284458736606236968023425082031016476523709199138962729116339934027128400119193410575991742108725104181584903347398865021091779367309381692729170582283900326425210448412529492425569790389224651742049035567110818800159813005152656405330790613041427178045566567754079384511073954107197867471414202259512223468522494878170097848302139143003869382343950188147911474625180162681718470620075825124719249447524325548696027534252506572187150823516559490408197031649718952414941624468257672642451965284556224350749625097059191295445221630696673760744702534804067497278124599523194955393689132265622426177325056765721604929433851369820121391406498325547336451408191300333853868719309858654076410710109463785874564085772820691832197866494776969237521315791531160163932428382449292951715391829446006944248431611453361388100690289489335420817056582165158188735675773007093906770512724138096188240309433932873664916117651283626727429123539288197686687589514509024136708860333830945255238250386787660806318817894667528758677146305326762186372172418202496991072719304902616408153597130696883623727519544194418643133467002105343378784379177884649977816438261748657874280568016317903901626318579361041754367339678039300783818757349690214723880718562187166837395889356117926844701920608511525249678338767462301496100498542582438577868298460322556425848946152866402199531994985307103295722014227531773887634917759371941760748420819158651469650515854034692691383244076304973797269544534978522726335695117015402071288757653855056072032647965037262768326324691061807202061886448715117483900757601665683845524887704783112145728558681127005740898066310778571516002117132760374789951616168984424651269282778097077728232833357815698991715749257166127884321536622612836437120541300086216766429136027995045066420681727947927921035577382159253968929425903701413207884893467490979350283943174278812040509297008128942372798497185899370983005253177579198919644446237763829905901641529478501602598320445754295291002071548917327419013656003439076375205624324648824115987161225590010571984526812781505719174369531922469910941484354924442446639572096680305916612255046949212733890947475571889689371911022401901689717122761136799639005269728370836960336491080929297090031903093138820395105746944628005742927808612790249629440857009062262600408508222744640703234720998219647948814435491906970606974094254205075437449023537699044725990154392870089942099631758318864870932801271655823758810281226361669036357913315066945813116572605425021611688545630137606012915015223098116977326827921052247672084567505123651501782773027283796984016147746924472037469689060992982694118767616841852310265573673165003302143878809162800318687206620672672138402319659161980291325106620852087594243845175781480672536005938091993247883087381231580446938229649272925943300388235998806984803296763548375958724030901227136592762002960479684550480615971027103773444375309959381583474840288347479886026723087441743173359084735194299099116042702266156172428274537449371362086529917062976046911381950606652756145266521261035053347408471144896965524924681866447041172751419399739825704633551921366712960703007989262250754962669955348437070612532830019792182307909332557077292124366700829079663999761213673980424397940640273642156946797801912586636601138831491323150032322752906294073280932318427480415201242531662097318373987874582338040369523997989687690037518404688849297668255657747523065299403384855508791593847069311493816778064543433050956109420502475211361392258049695382718836602396451478769037921850966928867478860070300565545071447027040289861802808197569662319235605659021513904280448966884557016542784421411770685913674496804602812063869642462754748413802156584583770788826870466305743765354223655410387832718534278762919454503893241168829482925310519573520485881700095031690665549743845942116888443083318193077720592002624696427734302434765818525780172833293185206952400015697002221225488768206059499437974295980656293388827970659819975615821970270474379193103183967168330442701845207112294519631760185019598779632137184628870327678385042568905684094201635181675469664184954405741887848133347427812851948003138397473161736683308290459820937261909212744068858651006154323334093710182657309501437109202505442493786483475929545177817671267875101529438012234836829064591795156432225591281270533064921541965205915357949713400186581219275002670725124489984167886692189639780382934010584381711314093193541982681120026050053642292946433301434223719647848059006696174920533457598396153506561081253046583928206805230668293932716801002984727586527082274878533173374336188120749957386036374808504506464457729792495217863899108867004031938994601389119444818560453675724058304670016180249582389216071561581084536904670125587802667818130666627555660721093980883935902117517926835787141638361922351278425084752198195946005545433339730208164431674089745604414828834698685825855101171855996514278555144606733900002526200518820621041684571095260971871689607006977583664633789774153314910505797489102387092674863609028073242434043337663364544625880136369286406364846564838656725490203932182498403919112696967695704056564605430617127778779899889387576215890904219638191648034680583532440595926027916410382444484000980650493924265165659806237887474031537431503015587175096714914645311389715193659142126603011730433725471488653263982429302510176439050960964948206753437051852381782424241770209135213716551443409481462897494982538575716597696004494863577251752713684111069051883054352385976979498655044885069212665632312778603564431156777218594373785820631332296694761223230959229795746490710563517058187803466277631499127051440478629853892507922244016471874483415419793306180306049213477264463167606873912075058537680907307442120390214430929476020312209672778455166090663881493033648829404826906479308422266156461732010058661860596703695982068379866411941267288337161563562176826453312966397083260300226714084827432778155851434852171569211905010948664897114801282163563542803253062513841771257012669795649334453733587988613027944278484694348289489681550819964444340559844566793569598098973207441036353908965469438861439418346890930364585043671428359265235822723027883493840552968337524172620790994281657953422317030159641208017159736249251099455279074816901300225311429788591933425954437027681130506269119060986303696592853234313182588031093040996506404804911784226911958383153905225874686526016442032388713341522687605004735683892062646549774616697094990000451620917020655046208112359829497633768558031906527150680791428371531757914577887311248642892260447257123095154759390527235214754943030468723893007028334646171304550646503080770362202226374770349281933929974827337223301810220958498358670332222750695153652806849163199996918342494987993293986820689629639881781994847785891039789504437949618694376853529286585080643847881623529835059270981100528562213677597040428452167572329932744001012231408300916636672154174642437301415038631049344876714782664732716297693302190472756818882742894926386083709365117158930332997694793945200005157710355508719985044419919378223865893645166014597008475749952657106328452392945788139173272498982950530859751891774066257844613903919885468498773275440954255005642088690631974090339953330126465087804025368650173366242498420987328383711685631400229507521894500936335502623024670677908934020590524386756131630190917538447052214960768772830951881429718011824615626318145337317248144220109454334790000956990493644630628917431230525198170470459949294270225315953678429151566009772847105648054097256838650718584512222171091659695175705469037630978648612321979404082853087987341381178246500416088222772911580102662806653372690807473848204068481471106853985146851773874864070093333288089494908271276680913837637544394174108748006510962781559512947643356987972786052617657608077304641102868221206316525797961015866763654778049283964876094423173114391326609204086400142508609415009578045702039818850472567983182106943381570016153583184496563931901206596752808907941429849335061386086921817780408514670399013059730934680312542300073120007050912614647157187715295032046265917472181442407915884794788491721690417979523007532901492684031403879217652952956751420168401382902897704335126169291849327242904330478547205218814454649911904096209440629189186380655256635292652747796914121865628142658119053919478192805787892520745524404621579039783813842375457745018218958888841969633627121259835776432683700158227270388945388299647418793368871464313159849263463921961824758902377691158722387468533178355576351987945533855467171009516777275107257525880067423424850891619358289882193304669330040047223021486302028189715393142523510118921572761125498416885918649208225524959453195253775747119015085696681337080681601753535893465162277798868934580338283472620460914196139532631319999677480831130984359432419688719708909186771766307316454036785406201320875080899587463345924713015876718783105916521963820096797018101458947882414225713536115826863336865711795102770222648404583989815777349656825878521094922870632609909599406077005011555548574983175037470907607148900926343485289946489907042464303871662360001180217893234706788233706369760857801115273289801239682902778808448022880987789201022309057479368071984172100852959944473594391905459107608621563382692057482583502439219259148036902823408420874581413568602507952062456555526020047818107794439421843658293019749642627195891502448668719587760531881914093528583254510015482387489706432215021630251703517073556360227692401092529136034286741702943371525953422991077574989620571431405278804539684051644687701599815655067528629764585712179722203782079506416574520880613253036410367680122781390002676613792240340239263333872900848720283032497071704133802624908301052478627638973425833935995594220107233948325530664201718040111705068342901814637663626968472642070329710735550796367842082540112465786792187501060026029613054504169113593378228542838758815293087755458407390796819355788103552331973575062301380429399733970609219920093216887644534778475325099389641931081471974499253009754641231287668125313918896531973902620475832824950980482328807405252802611014675905713190426539441270467408385145511279710109095489059677073844714743207685579360715260376121807535902274064816968316570249543875947687035079073836337874615192820527998393161726331777744240693977501296545552068366072011355781268060475497470612205621576501299835100266723625078828929523760168148300447225892081556744773309861501947719832183693505189202320188112247641508925251242206572411061572226358904219586800040648195798892016953892881627988305461908597719503551037947281507353261915590894918100497876238805984047803559370540433040156931460072582729344410897662228690271155992871410726815238033269692100094759253272797024307851693819736333719265407069050562745114048321671952458871116498237283510421280789941625903208916396760394101743769992269434725185392664952252694556800288423517398729916121499281594163353126368658625312188191349375233844532933356791062672628194819129292263827966133468224799839621905356127524100640622633815092850016917979943800394897119838107415263946457372093384096146965663094386768462991738418850145752397206768588966283886265482105868852108441028761766721857707343712154536552801329098091036679366029818213097456679821890024663197009724005305580938637342240257378656882698388576377399790535447346761787873080804459640048277012425901303072255431688560303516800431014444846987334838158511694905345290594098909759206194001187554397776190156172191266095768159905857088565714566072316844818352452763682544050180399122883946035399927270056117235145945328883287192609644050139505797594618463803004474632120741662577707244804642531495889003153339635584137398257262663647811729367099408668693452366362124705225746712631416165051515721585125091485568322790475949378578693453254909907310917681698036818091002804379583540478742413265618246949710060456092685553959416202600297743386144251331714295203360452090567300143829511198900731165442081314768634649044644690752214592326201798486709407644230830925659982893706112927765979479040543310337471297463356406027844760157408458772141799635694299623213155342646800490290973580707320435586600322308512487782276703055416435091551176665416929427168620749164097521593731401388234235573036197616297224193024796221759590971062933203973808790002846024630759236287458388361232148292429995231442937729763644906577789863339164625777960585337795257017100719630311866275178152020932031027440487304644973411244176464276367366272351639833051387730435379774255780085464293779926044451456016814141778710555650819223804951726313823212381319699498448173692912330919008773698334669893732583692583575423477985862430898707393417914786181872732710826148034483504813685649377717158813248147667656513995850777533276202433447673745645295457304234876228132518584681418744952604532394193677070262809165265501705045700395920122568181943609528195941008790416945035849435415909615466849874015048351040290370780525576653028028000969135129616665414253848889729929006662356359651888559012152720856903062124729775616641966043549727288608593105127162647283367559385390856131395859039505911987132666482741664434635203098158964918381891198163443317686689853977253332578915994374150834668137860477771458124916972494118281865364002752058459590903000983937415581750708480266560879544430215120574398013601961921369113460273494742460657841193298165791971630432849654877916666172355720082021848540007165648610309776389919758452734783299560740406150034801816947442474621457170066679900069256915745863276365480665107717897474789709386806105395543725534907158071803236061064505415512138202843467566609766792122198263151292122682899257167669690703306767753593774227000487479150471764060679579705321451393659926334350309360993115083239404093608269057183900491531333541700485934490737176931970441892177805011509595569967105502326191197867016689452070338065978577370911349593608389279653821493644600749871877715290471439238976195213157298802056113411883106035879265897566106632832788264440592525461620296436047894766222758458579390553920441341315761450204841015049988209602252129508766626269388644999894678798186694369142128568706123619902195528910884294072737070203060536013960086865694171184692335534953703733582479318974120703606517281007861651411977655363841074281406115725600030742018904947510610309980922293553074441781324306526477301816019229328197071592668022979322165223441364571001686330415327300166164397261646848830758176060878072047171512058833430689622496485611791951181429732665164793055149543037938929992135583360451840860945767827601095832200335785431758089364397741790889551771223576228421342166974605622926596643098261127221158228570067499483564327739999385140519992994763647598257946408381359009983501848881617611115040792089062226734559954870210450050501663714941860335516554394981053545519700192699093036001387366805520852244554546200881456463993918661596347131655538836105641202857078553758780061825621511119957957152326404713843883907241584045986267564027012921951529785647076635688092698607412698692147895266284712654526341901653246263959980590157344906532106817653955421427391677766181172925308489056779573283470191767280045218083629279289666613268575884465396063367330812300532541610759759191247942009350047157765264197055725162721084279989484856379893835894622588374531163369269859754456697134748593470023350928415561351973384223319370200953608748780683366753261925625591326252499397760526634647259937300246867988453810918929335607947379236897097263357744018684777315700785798436981449510908383797684208571348676547791067056693515509917577956956345949815281213593223134794519575758051852645463364737566172446104223494426661608115523495089317306545286553785098343521304277264122190677292629810449082144795771752219444957679405357766890000909014757531793430130756441790916745195801235160758525968977581804037460087100168172369828241740820823247506589941372763755392089919248255049658993785124157225814862754515884034287865694156425834484296997104147824381413323832865595807101030987410169871800139558468346372101365084784309177564248788419573043217415745436958225309550647604417948802942907421944258230253214054663833470900094057244867987323006817165719534943285124549477113665158631014773446354304331871260996976372992959087036863833301295064001132491400405728421265677179400113179486480583964598454847463778660106778952247037232613931888380465833431535485953602948917055777373708050576108843602268718719898724656825478326828540833280415857688963365251420956527919001820050290323855656305837656599866904681461950908657806609656242172092713059161139174879854895615161558841205727404504705152270691509134274717559602918234456628603414947627897692763075441206572073378913692244709446885918785558398411022134449005588965962633891695301248651887239363260979195009953599370199864320660645478520137646590027213652412588607059732042830858210158139133587599133981860366684071879633456555031332036733489212307786290563745739883248170463919782486409439873921459193050142807872092160864253836060515410392949162750225042205670886055524917500946938059507952509130143995333577196322878838772469571497429442051522264402519140077584515451706195498115417635001455440784534436974298106770436731426912374378035931352909580447767448353522988223221937525297739751156938572252418874163096274978202501039833930762885975949916135157128358001168784158867446198370921144261472154633863044422233290164557745812943120778381022608743642543546393050531608957686611661201433925312504056249607414532137326540903912957289190103036765158165790886608677517869597919531548682623448173919121531245592315792597637329908395906268688097298511807818859700133609741413369233802278466887687636041833628677457847266341714941469964514382383812836096721215550137637086156757423549125198311186347695065826066805736532793048447856521478774449593449243380618259335127573561401404864446919782685694427015189745560828711720064305052836900154294904193937515510603005870909336058816077726903392910626800934535342813109684913789478674058143431298202273424608611451351496977217989348774311824481158893754410019539420557340659047681511887418481296436202283976112614377720152441638238569214875766725766391013838327533757508446657340017038541367445895503490161522438878685985452086510649523781033688427164481757276840099858423843964743930390833810716080237373054379427813866862205449062466032587799738844496089284758903195817833196287450283372069688607378048200447967233969808893292889951313312191683318144992365077019934850428132148431608435120292084857612296186861447882741370610279617731503027342413315095544512934682793282575111920184743329139525703142649131970877001792763411370276499463877641717245995106640422133682804481566251003416851731187002027164165095724670549711333569820622578528515268618333372035799332517051588443213592517788606970797996282958838383083191724229907961889730371562567076609292925658119305709428498999361834574196768889450590080974846689147027120526091536450422764161440679332596465437378579158902618102568341575902043769717249250481978348557744699377852377767870522339792947089082071110135196799177885844709673646347360957804862313172938467749435169791214470371730812219370340052401713884783285588906049874591441172644664027484714438413749280018529907808862283868497531742939690406397857367268942605070227573208065981908897234534848130566255805152941110320823818654249831756401508121291439735780081366229029892993603697030542346432474714449206547956268834109416371444934516188029615313462424174962596491354200149211606390388572408274523555704806874125442499753556051033070829348993397769086689450696276041156135026443324888361738520485763798152297599731457159811464679242656125739919711378323077854249794845423317796890494765681612826299741733367410396774520238655147343404438483368083579689611114187927925393030771604821006140927911793350958447444538529631167944522632133362170375130226510253926834452011523174971588350431469963097161603126941262952484872130616408864923567186182954971590445766279332812199536133603344911000283961049952200962497354335917493288895636659004689422703200933965990234013317122223568671689403671343464175442508943361905753559057692676940541121682795701852979440023900970118763688811772320378141439347506870404040449020306716840398382677325828905812025275548523385292957796107897713134785752271050006473835553757943188705962567842513751715032567212078756083473285200754957097932215273618498296806897139672093964185886055811525433647894739310826017504016425091924547285280411596031737349231131474238187442632374646096089421465244696779977220326759463006915746560723003524860907251879918430319843717341075287887734006587648045760610738590027339016550815468207931231771581042535961159303443155410144954864782874862879288389404942444966439250491924525531824777661462482123258791861123896935110716900340283506749777379887901148780994604961041861067368165853334171627643238545610090508434925716585921888217925790536514195193404056611642377451360513700639071220458010285225810601531169833584004658332831452217387973338450266508530384091297949613673994632841174286388000673187688144556430021800797912435667296550993645645895421189638123228325200636610930867275696108992979037743662479374496846388513537991455118247976468018240317772356921480611576830401952161945010522726133659131327835499712534679920654437509487732309442787784219434848162311566929964936544340931416128523469206795088670871881613455238080634734234316526529660011409201612259744125639915419206119370248609495644235978755133941024861857632389189432900299124391842455847879781408489480644624952477856591493106567918036921585078053571183452877592722343933889330013002177966960899768884478151737409649493024668406149771642103862709760118448714071950280550802878892473821992122950701794324596698499495617690384806383460647892290502892534913462911493227220067297945319475636246639130621013244163809930932770747585112678116043583810683413336050593319060623096445222604837431100264383486185084762619474916267094815760417413753888227742699885852053692240689060810234907401252159434508851074568053518731711508807918769097990907956456566107000725840473299473528489038366343827497940829850130156541903524723038125629367746084365263509289217163756024516725811867333979259963502322467683981544359124090314660756252653006717409496663627469676954453717113721803926409854055568009250660447449481283046563690040609057999320830661131856099110364854744993371756275923923405190802686627194289713559676241522576338814666554651940782174868144932355920602392136064877998120067196811029371957812162984856333795999149417479576974097881635917448717766576409072689578651991124462128646269209684265306457249610985142997119348376111445384709963885147639501813771398749604058372965779046782734754051315313240972643657276710029519135480244843544095563414154197529091916578695721395169380895379824932220018948233984780970959863230714585372204588488495512365577699975909834347720785401615300531041442368024543591931534545320562520236394452919508613010014537710143765521669799861788881778786034066700075238488745586639767613066939215193103305145015396446031427413875326215501414145743791351508254677192153467195242868021236690886955281112156000890103172504398111210340367270113396699000545822364024473138879622865005179580855984939248094405781495868900871806229254241260349353891185234533572753400000760027846259149099244781245180603259345239967138750631962260383473028111561794081120561559602587251048925974818759974504233346795968303723168363669006649346240405870339556808100814157241110855896369690638471680663742508835933700686649725186026915954347453336837737594213586611368634751223398600852579356640701209291494702006684444364212946600043131784573955004260770585453911614967200780293290149320048295530233311977536035453475921092771179104486304025751864042972582804781531686532305480015398338678886271496759672926608313293941765520534032679045696837656110382043956506432729712606366430520876462618183431782418195331131457117541764953793075484288142782695395229862291329284458296067574053059307319927659705217216988012686773798154305790551763069232560318553098055698807997716933284742379150007408363858164754400315999256037122138738778040225332682723111454696016666757815984781914426123172696833006139159027178917181946534493522706026853575800936894330150069943726221575443164358851778446268876926631607620745221225713402010550392245841335558296739906109874748164873082228046194653310964906188507304375199002630149346022217401258938879258803832752622977158456564217042552369956979430357809185519886838673213667574055909353891728635528733941537222451946838405181460213714920299793405507683835712198925471904733392862854805112961973871015632768053624492808750131612419267574436216109452768726938450581901268655126833795531321329531327893498694951486912706146482696898957004574602054673970129762017996238214900319212308166054095928716776335031630594310926820696111503072103270814758773794983553395427399339726121116929843761896074169103763690861426596375271634811095933671214352411132910393899531254198382581486534492274495472937845144437497083390543561930741489787795451689781778761511033490512822999081415773714851852655571583781936478463986137284511744461507547872214303849943826606896769676518745000408372931757461652672331290705151931315521856514475994415458977889121078426955610316110997899032883457757756660703974167737764072828351017080209569764459574209497173546494453396316995279346481278511160145723089790095516618464960861700122658909025861415018281679440783273376787653719480636966673343552505955205779222490172656174722458133950289327287251016777454454445170085552137928196388970885017855947806677092557812113031431708188390214948948651486958434264109131960888531516132555542411558348858223733943164258473105427015555694626320032163521783970960768874112791359552139496814286682885119854432551273939485615301026058758807914134601183808426777438482434884093157051447631015906200757323537837584346886063807498675460969890647049213107468225791871052756457943126975619258540598143289831216945334352287783155878606289412463486122830691270646016413456013099835269218264434339272196736634958105352061862602684333619685955051304813212205891273809193527428653120792839130144549554049679838732365018420055994131649632756204167117385247305222910384067784234256592820148963972045577673949930337131109536464077591600074908141897702649980278811397343472986749267021781903326715330569974145986517853611662908779561298110820952256235242384255513627207666157727055573009676673210053613323747966742913034125045526736345254504930834244145996788914323419407130453440867796581417461247706353852339765472802862111026218688285944951552267918142042738881684337397024270541570392876375077416901007334982643147793703350248572779025625229146912207906791412412507353242149293143200226581478179229176360415654295362100910427447325171788252369834032394625272808386605311611561336156289475297870982861675409987779235869707542709949084308278554795994628171056195389776314653457587760661335736150561995103840695378835622113684259646770275981876805400309620999430810977913125909749932931825646808337763217855229205821157617631897463258600589663257256683520856174628315309201889097861637325264978781731023570469578951561025858754587740040155278529013478737409624034149935565595494842366597784248063439200077264087769490422938245391829972692218864178528543815730663558326460343655472766660157038039019802867704041417765897757562022173049618075209717617006685103293704857134808520897075966304461281481425903323704836628828076407530302255659297496700811921120646612774648172799273468869232156595705263237445081502921126118507077295433075519449020184311297094292419401719394178916087909718313647058512847244450956930477328298623221605416377764211132601197264621878338580049003676322830614754099622733786623974584238301478626223915752058653255024080862638965342692361856181503157922637966151186389222863933673992951642615777000168995429361992187724611414484417625718131918262354469134543291822762414161889458722364500285888536230373308965040637137942441663389924609816004696854016287981020023633048113930317928373931411455320344844835732908155639635508417349456560440925730205591347749404740558494122187799823679270279470046757536939908887384829681187922348124591274041963652838400589406070994388938373566285338758050010902298269727000014610738981742051072462367113567954053559378853866064531987266388053762344659906231119872752986240304098588238960932535308724160659429499777347497701038997494233926459606803619115934552701816179276952403856757001528725509364090000457008210333513776813037408963818018294670302141013731908445619038769377641612919061835851314392086627821381213001264962661325769342888231803024173588226293277446773827445913299503197329889973814218289816994979911737858378045649549725072456220192962355510594315097998391181469456800044680893542340174995025645203999466793505856468333658498388364884208061857031993424052181081697517843374290525489527380043429380307109672307893853320047323024564812668051041921979843551290496345833495786966452814629980991180784802607872030478378989986612765670879239462395412532005817580597692215817594848421070163207518299197355227236597703490953066343838778581754610231320663371993538246458339789290290098724906391920625529189960822859783053987791370642842391621642548389825254850905363718679254259681646360313606734730124579142556141586716398470044831359176939355386690023506753647499808966001702300756110261164512394018180276686820706217426011284728504478714159445887859385855040099206627644282011763033527517682706532846904106508988951522323072247573062955122436160246894638127878648230293610021932248892711902535532757703143337923873214207825016222944369170105098577879511736324140185020217065454754233026668808282163537487899221404136156566378884640709780300423351735276671851443314694592077669087199544535878705840038830589512032185439720241749030734859031584562904277404609540866756117798592463398054724087330744860673173740754769361318479852038738571903811652671155216187625385562313011289398969189278377269535890784787731914944423391914404560465207503280136909444482386131297513610652319944309380441670970929106647032944151730563594140868223098704108682795982904912782890470245945595010380404807535539773766867612005214654747384428670692842344519959633424680567524004765143450351484569438061604737763982942155327343632527423224601165790155800863747128291867663126437195360324114101300986030958622870251111327959211618427234725557299390355119943276234903884847677208104988366798346910091636112618723072073652552572773180831307394327849219844152356676807880303843148654740739313011594508155950964933331890738057922759744207386546948707825727606421123629694491012455776200462698964647047348279669475171847648984487849765149084729771209215208550682138967017824496486382717006840501570710944483887695140827440942973068954808968865683884651146409002829529987747188733226439942792042185597975547076028628240099495207929993398734849915699141251421123813361680724209094923575083959950894868924013242715618660322923879421003494948404045127076144051394515646649113158619419097237133391923049373963309391454401272098405131775028248557384540903151600386297316832387373154275528126451900820296581775640550353396743127529803267467574073570739988746128942639270060895470019483533583424494772319023907776663094214131592319509807978109469378901447538955156330239038292951593105879074610725687195834736105409744951924630187911637682902343433122882382580777865584861420136020883811183971785409598445561465479146179941203732188126025981250192515732489420545724233220799020320014571001977230562523939633955180471879388192241429199973831030448556592702405124808868492563201178334929418915342354293517896577371581518252533021018070301769286780327083681034127229004630513072315093455210930938031094090858270446568161627357505963468871851077390210574300310105950342695446767075433213054574637556200698135789513121505208779400635880936184598057950914580168220199649539358334664773286879644144636588921106247742598923236157843777782061472292236901192548163070043579931706746072554414807324807787359561191807786741129466809020129614369866774032366135552542597013856463672072756175616843572158501141005919969188928145687458768605952444941134584029120800970913161990113963899356750706996651778840509967003808750347562141872658274221883711938447752150638352372727653226792574362818666430917363226432398478285268273359154773980396144447128007486040413429198694639035353064018893500208374843585139924160883780526681461562910345777451036546678278833409971270418879737393668466386650684848140155549381559227521166226761354335899158691946054047877513736818688498429825511877938265200710364086319299925638591954221909452805030923202800877186772860859506616050987666907127294166875412760657704477875717109813143828869154948556406014808099797258464825052732654190821415367229834347221753461152765026294282865657067236132974735327931446953886935462246229774077057881256769845905090626607584679056122798405193091982155891199227884204377502327327043472709805824481848998313700653934468560095870324630674964238257109869775330883510284915703244668178708642548329567376797210954061521478097398225981188328578658465081998887317212893127246964164347778599632942169157920013977573971244699735825772181154675272017264593019213744108893668130591409257086605016788778889874378315005642265148582587889472484557059256228551219805781371788777762370948396513296950596259058444034468160235198827225081996346830797895536055332306999329603143296539890865973969169406379457474681291315165476565708492490605609944751421059829436947704561577824569559087914333959165554912219364940826045857571662461871043031462105854011223446615963689087701005930472984066752165687551366265519256059052027476088555553304728779723951514716914970648287766847258872125107667139994903132587449806700878637953922915349972569117786410058875941702121950057100404045501306382187651385021104641427372211770868167758461866380066196662457133754688258998357644034620958405345399369693171642159910661934921999228413832584815653173685171953811281518186398685959851110466560030630858083136864593650108697595051623576625281093141358543107297392921687414322888567112910059982082897400325799985470880125930961889448618209568168907097169393051330357007446165751585316377468931293010363005832352214861972766077830298097187277908017646263331871760729287461280395281375190030293611013684679075642748659054005949126749004400145967233094645109090961502673600441823798052777562362819462354501987788827195771111837527187694889907653627928673353083198742107445901928670555359579897623689556797426192798473455513679199134662725626536011142528710064627080604182903490560487917998692122392808973799766884561551494472981660360205552628456153198017358279553930259256756854889567240447116510413544232501037466891040494025148783427038344744820245550478355397577220058179827260420403713506379753054481790255694366615567119701810176136395448927704779711225265989185771513534470602065127623970785023566123264208152439195907497772702199488707183255357845841367488789295748884432868175531973845419765383303716956909653391174535206321541456714912063220560850170264985267503843376845767418386539678258828529525431653572552205803124138223046595494594321022413555848362796176112491757518244259881488385738079356132599074564236312432991161359095901868343597300521995136485457298809901532624666714623148744677516668499324200641392170439299301849189752675775204508351790476299652725246977898965132334948502536744663648311954268474602555266319640535064428334061624055662177820671913845200243868664750556084119202185695976277101514935877268298734582219994152522402406899588595469065326972946377382061165946520869732546254087204692120814606466485669885235047018977317036016126337645982049265712753177764142829935997829544032392675695135605550108640993458163602111675586913087783137412240218848600491717039196935046772945600629791201485854831567256092864867846047310647174828072032832158563321148349620438558034976604667653331167821197981956134922813262292526721051489436080896129176028200061146165991280156483671392166685711363118443027855864025193833106802973472288721278470124565355564796580890636476463036045451093818790762289419595535463820297317299309485486029154139704657996634059396664728933925916775818485208060909018627561392859565610335814078720135880781149258370581876676924389390224606952281643331345258588793857726680426070838910608454760256149998219786735853899191809807163903650414133213435899970772074964600443600625901705943854920549249578122668411975521741082979969020655199309470648637541167974316347810629426912759182049600385501464801025472211057886465986361463660666812787724695118322761169780753389837083316642444927602721616651741490297658979689887989683617367320299267413154647014438070544494173668116036406568271225750697568905230854167980417440504320659292645506102978628803639669109997878541502699314982421748285249545248320471444018355545529931205361991322619349425156843410347641594076958637298254397003685173570505196785619207862512939144102007701156055646625265009275494069644841568195558564830033688366323744859682701013435626397472644583668033439556950751475476628590268849125431749221941314808381813848754954944963485022441730475580182893749507115104653476892853505979829019295330479076134346054398127353660454006431860539537401464026015552655245876521309041717735517792709576002306673111486805655483705542384876818803589867382079974259866409649493290820161966754243226078207854042360377243480621585282396658823847498866370063717816185109794731180120021370051622624558660306206932538928689418446024605939114932943076668423207959417900413810453890184658639249658334449279926592960067474806348396329638553869639020473648687707392434001450517347581972344680814133263174721325339196374804455907722195930328293507015968871777127699381160152994857384319111149521856609209795476394298382686121113891295222766330242581545967972721536680484998439992491401743011663319194613839487804337021456984417157889047112997149867669389000403525036746230736878545018262937739126689975408702247142802788194587781116713763210877079497353508500371114663709381473781637277206054984997703702142443340827771974789638636833909017117873870978520607715062677727421590112944406261698930173625620844600945139325840075807398048872790126894581255031148431737752573954124369600123863238709552908195166274525519369216342721920087709957030702841736162388203594369281859945173807294300408233377515430564626145936300380330640621899729498738608870081370493361576943576953562048397173333619578163831271819516939348391628584240041359172989260245826837774933455555557290284997453077983304661361468167862373166569346349985358393967167461138262143283690801465394557206832778220204240191134486250711231976548455535278693211446848659852128453783605021505214970707997653428566840812346442707332236290500536821348781856076829486312308499232612377423957941907909560340439982865781038564231649879199626475953275260880876090407413825745427340514677249045142367817798438325210379153713402402559274416985126429103929427297417274649143872485103439085257761493097839488094259878569092004594002189365508882915619119297238279413180526028110750524545790191312644127786383030388616471989599181979582096273489588197289841756067456906492133305654959452548611357397323825490545405648937414576899098486315465714159757060452147518217015094861483299724835144163704453636095020753078279903089141743949043206563702785234535581928790101420587971430974176080789909321919390574441307119074475314226358203179885905492851007399019650759128136488423916799631659209048866642514716620252477770077346893528160908087086596020505888147570857362056903037252247223380877866263007992110486141056164800279320085897226357542688832765739974782360570343038713688866372072369353186671999130474512491796986181529246801602955620784686464866798580967995691114819031140575877594424371876923636613198794876672135515619688775521799977499282085385799084154147211090951129857919252679293555157943012493661852666981178227397601854647516912725429542396967384893231960104925764575860406602753730471439461413375135046450444028801245262465924971603375427951296260651540018755051984531868430344302462972289002637820184591267316835187547779093585693226892603237310596867128455044877334736898584071160163658955596196304791268347946354817299313050303361042372234519447180344985723169508593352869712525556096124862966385711794622534497721839571165503701508568732213647108695157611126869048856259248873935180058139323040068091143835095275134004700068771906127012613091838038575492769257439500944927794838467281055206296744944560377947923911804865408787107788542210407994537132963765628325140575943828061779925821407358261499609924330795079888248002718612207110502169016715653542862716132328829355980677456105920710918942008046118320312354325332818646200848273552917425046926626122338218710163135198889987022890589821092943658332892843955110680771621674662551600366033809150701402967584916215978180449148086812415904030847730506353101497120600020533804486965014731639009733433094851997409241786595327372740728822186364988564634608889307779166098199303011311899064342071980697981919147429573387128431177328130592654673467212597637422647328678100671544789575590245579815253283573768065779696044245979083129382423010695879253363882522725176348023825005603386415864075469280397999877826245310799702848302162858663769332755958560330840961265348845505644709994486273528750356629405799927905090966395845206532242723250134696490153172647935953576953540917355376396391830211801355744871148420674572030969543705693791872628879925252684522637012191792573484540489977458938323322239465695232598527730687175397198440866050326546141329375273915918714138909411070106245231661553673755801953881332635959818417825843796646943683209987487535221630306741987269713390525224111133065358856869883305476765668421362829890292340843487850956438834639894930509169350394351858666873850102563345875509283448794091030282966286465196728420440941650195046496865895212015240982109201647169655576349749012910104837448415512636994391528542426520513363732403113857797639014874593691575381569831512761450421638318058180517819948060231883714044233804607074954294422817923588158550189548929474123018526989998674516902657422974969844157653168307410742565529225094444667786036606359557488910246273528828834006832006024347090964446312029706852812985712117229964290714116438324292822379593383179560819451670823285241428031205848446240045094671131947999758425624724878153005134854757693598120640376115953429320083107150471515782601197172384050219838239151383741124595410298353283365555142810911819088604717220098689190457188673331733476486369845157969152536257908537899284425795639248190992537727946501535277397911171746065291123912905591228308897016885289856022586801586406069269786113138840233389066090602823065047226472852469983737183490714550614205775832483515764432603361085257213916064738162313311510301026535406235481376240873109055338885105304585056381590494521154644106974411505729992643922713823466603950114460183724949448580547362732842879697816574393673633660291296066787056687612754613688513095043360601976418182885349262212259319169692722448449202073658459067015505189969099779371486397378456264786852389994298241241397279727991544127554978033401174670884360420750631409049695482755171600445564509696071878083332748649290275318309155784451230901473396011468834177148892330565139320984058539604566384708922542965886651557024715033648851315928695582495642708609028067631421426214246243404110947398011322493856182328986069528557685929880115054154521322645196400116595456221317928031060440864998566465431622975656476994293240058124562784217220725753162284471386730234012252022268300016404348543407678473759829494723797198114410603834755819650915640208037914862153860822589430975403006626904163085001309370354117523956927228439300577692300362908479951073804392580994982806385571217365105830017882172174316076984153335709396452734398864357724869962684862712120858533436464435759743778271420357156590929105674366907447557637340771081796961918729632235590980361244293769143955790367914583745283490247171694008141628647369083014394686424343244329964494079311761556490084255457168269130841477682279269228498521748423932106628840944787656004393415255268563433923627643370534715810306589346588644483324438777789544111608504243157328028404778125014642845445449619596791951496005607710061269911122152908750917639477339424332660194635224488357308266005246381235210224443435524128848741085981698226678363979804854466949129349236189822684950541437810504897260870393906915688026008858605055227201821720028269479009046574902853603879318692229080787566595531407581516691404245076807336641685718753965882169787329704889147310729551032691542843130136336693218215269887826417519864659528657387599140494278969237166883001250844232353045015100281192381701062088506202158987104932243871448673546880463694761767567330845625534481440763829821938115991821714566644232103138938945234238220622892366724996490070810342233229992376160797888714647032516888357741926125966100375642006596454081321746843899774177069500229248103770621311163465332654263284122203805776835338329006031914550617778971817045661407710375303478552011880800985545279857906823259295036237998947384461550168891058382435800082442594824773519734632847588481508478015341324010430305772882917715433102999378361846012592711248143346079769213683389041340756398706234284477541458315940539771345989973149924255049033995044189834480787208286435719607944240529800760710515825026991945483481475683339367174286419228831339478955865138820102983657436985247365992802812666448290161694202051615355739829747574508798550300924846747624377428353932242831898620735500768311125700060644421161614112789638888620197560067250018183221890766587911920542502686612251163604173972329548406849399121286871484257017595281667520526495342807443819705777712993749304114318108891229892864411726239706353779841053884355019152056286790489515404890426282357432498886853397613914437140000098939692129096589340621219055313077158080406326199266843880895938247770363091127684738621358788340974151082311043412577729970890969706291860141050991001168757481472240605988891977433413297530658520612230262893972305413555087604912407949111536872570227178475272899585276348314749788645037733028851196164691769885755972780417036458347580915980946726782416839460623887687713876087910065292359461120348132001750719862052590777496931203992431316712505774410102127686537011789260290315027502671458116019086526429200770927799139969832894346905908401509153495411115986461712386983356017662943418200184475214567107675824149402212509576592753448224737275091515807078491649397136479117506305006122893447863415383564749670648582634951455895917014388496517553988861645139052788077259762435101370697754397600157249257933383922923664739906919552200033424289541848309654143200540732566596461673733615630682721923451640195123882286054431013318223403637755864292832231099043256183190404398104785945560731873874616134118509834526754515957662505197864901201988441610551935859474465051236592465010318077821096067779480858021911737328987506638682816336341367587755548420856063637251895520942318532749660541956918886137187288262001993600738857868419294085706970994960399553687060506265964599934609138603127442838328325924976680607655725041824956378183942639036168596619380689456519225121823601150873498530086289631450927306022282306258246479727062305001445458819628633269313981428518922044617096181664582038472113805356106911719052574253736999247366288435794425288413349912759405635493490762751107304664129506982686045098363424586223783999428172766213267446023687035277185781547613302930027101688997004776894106925719662224823307857869282029108944825106925310741188492075918519832675750612596924700396816851341753792506830377275794788192870939690674624916896375796603222153617902347529972020493583417677575058721246204807684829733748727709481873726373210369558732344757727372490031562206137284078343328547689711239152575692075341289979912759579174675559283437013860239362465569891185547878558592168164175839300534677591057618197594744082043906061881742533194382377789667888198576404961483464354329242638021736309147240588883558025382288812387801219212734924483629712274628329549204574929498638669774858564561563881098755179424988296328196765563920718516092548997629072309000213880345508931282927351834801203666398224304705044145110448617003331253295575469595828578673801710097345750623249674771823935347321610899821923137680752865708964656310500450531108932879748524457617013013525696311580681512964004390942796114910388107190379165589581176407842903934206461138150601238876342477209743046883665776509001302849272796553032484761835992885402732499250284120077417052860791164611771353807906557934667638168347063499987510637979221388479237768445481604495683833816306918357882964943844624342758064378792268545161529404477831888437109873523490951136206771171939487251836600305604904314979970084181553714567115051961639583922257129161727814520839408875778532388992502627849099254705800049052828598554780757767284444232261318579363818093767279966952029831034742260667950954636079738564177993609069217292023163915951600985244682677185835638126336347341049215970223448842867920870642820078220525289285244189872127664330205968597205045996807296700937928769493906067876579689676348598623314988075081573274440815454622177395654348037690181640035365327173971061660245968915767242117745753505164636969063719041931452378047779373337754962209435979432189128459259663857102911972012487418944494921807917084005866487048916470359241268972078800280422783252345938279013149422064694607704380328127382897910584528481159429958756976879014946246620326326059077316202607430989812614622549869184587238512853979900012895883721505414585831212839757448508702172653232968208415896023462962278091039440909978975893805575538598172710229502542372378083126773054161673264781371156489752494880171278083959485658977059540683245665227097512079153613699466040454281655805814941583795548715959882429034433952343936686253265344985298694010314892969172482439404113037961713707683842541782069818104934992344025150743753573962880246333012413753718630661091512624030822982831325844853708494190415627513362119664511350873414999637029637108936021517350055787146171015798435185662216346753806642126497868293859167985672460323689197501204092564166796146764131281892215632947192001050110556071951422149532032366835961181090645287527960563391426282541649292396564431217651950414130578317847006091186453225741500109000119456541791733721072122032994438157132855330081224341970912257791271397883259725857999137156824337728114828163730780944122026788592764956802238909613889859422880706622733555195076015680574760232418369957918562891679826451696781198099523508011650871944442067535076276626696147673629043349259031987737741751841069386515998642977808507725478520760524232204666863061351893748556019748942071825960788037269665511894488451568278449505322940580433461951582953056858188360242328059568071195397011965782737522403239707446058738361059372146004101054881994442392304974665884219167878693158584422759100229715603839210168221283616819017644641331279272201519905438589893827364794351657486560455134810886509728786536800957636869491736735915362442381968523476050709186299718605184157575189468225722113071375130783918096414688708554873076319937833437319333144569590160529118880778094376268148653871197797264554246269850376244851037293001408060119918119047547836390556340575424340692727203462836371092190974397779867135411115105177041055809888959024005332468746418306022599478816616172521764436468817641487791794404048845681617376080838233526120727827478502548882748586635690551917410023158419718405350655780697106684167704150631999864432177071121522440820007621159927185481654513747143411089913757064956864777662947264357629983693348921760250301107810554258612405830590804898937409673291204799085923953118710471877350049778085454341564436363823871236369490320258178074047194918488183908613697791761775636864035547745107081559440371367515042737491812472727883952211542837285994295892245203773421325473544445503979445862136419983765543498061267069685547619519695236558469120277185288891637579139770663314866353919285046430967832711349487009987486836650929549407353063331826583794762482596091419506341057964890000759284860490311403540304950458990195293361000047250789650565717780715519691369823386017423593316898896939322700272563682910898078059798996177398337585602935025827911343727257524274291319711178262138607169834278968919659992486131500957130726316855829245640068873182994016651181374140003234514124252947617325472703167366167860868340973771454664586848029487739228438448820731962739780494620930823541527952694886269889949222860743727597231090044604960614651658844081143278831325827204842662654398130064597788335022526951232349136010567337073008136267762251968477593012969471326279422975744936263532981751949464996449808280406794846675064951240785699389223779519177909435456518508875428411491854691441989461189300678448977352159857136773289424134961389700555114371473989199826160465576040693427213790841117034346783909996821532596568758733566416086456667029828662465257944215351677121274187716394725102700131788836868104061226133950322751900377166296695061318873183473966437004407292187616049915311228317278412029122952656857949072463275641644373850529699330387097669267718959568736665323456049285759706245585944578430237003851344786003656750239495826836671447050409126988473712818112716181004532722667979049608295324847259859208684860251295809040501654273591890337716691269733257021816562254538415651704294165475304311698956336327397434580074344672528696316938891039982314779157685913816078772090944573179405129421807792640844029972552165080658215353719381855969440041593493136932429396805640439688049324649848789565866536853590619962500238910276362585085149459527651329528709984424888340202243302067336068049666243782991252678456233929804262517317613735973248680362002328563384020357577340953755665022249975466978085540570502455157629564890241095399006279895254805748926724702648816325096200079297245191386264196478579602897595012656297916310279025626414600852203137212146576377248328019228172017431475057697163026538856284614381884198100987023209837615912872801273244058003828275771215773569004749469503442889329554650411934233391511886379289649227707391163994342335437082640229169865545049037887157959660872394466771580030277864590566008125508006892339482483502955253184000062645743857009881078892131199724948599876010779858960223164433626261841612832128874578524187448779381108906498647849684362732242618393632422491138727189374905080558719967970607947655133463388693865810574015033669255914797202839987903883827904322806068773576841704772375582947594040189065630372597466489266021797233128930345218509238468852768692807605382294800249594407760882041604759311466237567598227321091499606964035720130470308469850673198165260071025987715187020513513762871396679106561074804773731815463245830773256203446271160517555767567791075294832477432502227690658943061608527341539414107862662744531686933729312698472157133539048363930846559042109404141057130078419671505928550819824616569131665137360916884446277203742783785980830846541907561174532617332827015421570162789149532841582909806224747764858804827792613078428814164994323792369680264700763327652991391443070873088690526566963198577603125684758623770466504936935097649656311046106913746505442498240658842483679372566347319000508401387919166995691960521351595257904785050932653057352545668083309805375735062138014169129685771182497547780515466381692304640855873831648031960518706954442005236298339352254511718817131645711149126611583551168504223369447189096654306004537108375791567064142788079915413288825413976130794012599742050690007570957064658047917160884975720751095376495825261574669505214014067197995426830659114218320843759444419865144112392039947791741145363491397134629918157341085254654629839404995567756778554827982947862053146362522674824706928663963385146560121673151599410242759865645529616523932139079761893351812650125145793068181000261235733551110555990933808588393628013385238258400066302137912992925835040693031610350838750286889810034370583333296345505771448571197553349201862071475224622893665247682658802250799231055794985365145654053502877991204103091637424721420830412202582626546358197271340379978785523534717457924700089193759564046663933049550734138921161409109982088142024541868681680695546203713865765137241625374918816360788826691691075089600347426178199302464675112023174983294170383901222244736961457694540553743997567620346309401684770735319460406589193219590676714621124244992862339242617312075157402798834417504348556474837329989640185900097683061417492953078528355203426306924642739587272203328237955009903981550306174453879707365710913120696363570794312333449862949153134127580090612700182194005765372606210768493255968217373056181973965260122503479380617210473810892288115225532624929100893930873942090174727701614241770894323484102291224056022890701303553345276481966553881251377799939538221216514956881841012214689766535368125799773478479222844687413126089865788968373359406172009256864270301055198149440848424293679665670112157007946069247004390357635920917860483398849133308304155053666124051832403044712514655996611992013637095717714595167030405781225805445685048899006425588169872192630207933776979135659075173805548211132627463083061791565186187316047146102661822096102742179879260497046845154278802409608519107041268778204267186011336949649698426915831430303126305119749660813915318122190802610501045003549986177728166541053303383714248851572401681123840033459051785717121484086552069299431461488216004258355297348839912987034251289911859238740673140382077884112468415881967082748867751695623438209424362349049216303602796829607698217062405854223196395418024798518309874062599111532209111417292194203187371987592160387257634470321462369910638214559257095416034502553683309583524540032395186404777011996002601781880679746723047818874335203494545931496153267674026944626286198347685152093423950820997065907813751032527526234559222754692065688843136936431148652924191014462966069974949094462167400328329457285790444960415406521470615297952045587121101134617752435118542083858639540611963681929834630390989179949700640057304028238613502887786949446332003209328703915881646426775548087160368935639363226287011352341857076758286170920008384686445545569468643804165881632747464792085958626462258233796569571851822731656978636162328884204973451732502604780041297188952853296945735309139721624217599332586091011045501218312685298465687380510422865801291802551665509468786665995766240530843228750788936059905172743771770301263472937126171629966492341178480878671268461715611251743039492754265144298458689821811898285411588725263842604082291996586073855599672286093439284383457237610028279753336278638252298345190261135803755287406399358066957390992193914871418495677924689715867401896993025916691209181895402380882582043554890201146731756383308765474941742513127315517682298168108323885632492327464132264171388458614916187447253110035295594350970565349208079849271757387809860821842795468219396455285394375807961738216120736760491026397903050450634975346411493355970334453637700345536061568479968352102847563116994907229387445433469748699890100264638510589804305624181215474346103453605191018113520307807792742952222487866577815830524534941830026762041622543055328282406398224279805836213324571561889070797980170148134974091392618445348902661603278704581348538481919375537380970117888082687625258951929862437378059785275155566823312805149961076196382080291355833144730264805962980090325919800808026344648452604097332256577379494783282887713840415112121290539298347153225017992326729870678040651648952439860091873396124380153209024725973751328256445223936747753406835216227774692359337889772583291312060611715452783213313574376754930878293558543398634272413321211673657484770865794872727117518085224950760836611225334036664705740697380929409246557508762055319272018702209760146126893526899077981889392356929412233219841935289901707118546075590117748307182694968195300902632636438357646077245609854303506033220762078588245562136172415485300785972603546426121184170454050512080537506960134900980603323269806265287863054330795137139071952595230526070392177975693017976356982931151406220628235338460158970563671694130991053831144512176223382897481837671064470535317684568619977917371048829635456977266344244436100742808786180582817591640833719719713474454381676021628660753885340254233383580128039437020640736453710600435268584726043843570332454783305577563182938773108730403320338576399341480529229206532788511255937477754550636271570458868268231542733906698964824590121032707781965967255613125068083063900565463534139631207357659833973704121238776069770258056597109546783759631714477434826252796414513586047105664173362914494806565983423456344778516577186334212091675039244425780592673858531317184613713911875414990389322345726711385199523962849441852362679368666652432148676604589633814943654500450294215835488389856917206854213811353826842894321639354024300311023820198213588982115271320804585892084569499580193826644123044019022455418611760903449016599653992973356193915740002520320719655095213294993828485607558904840765721432885186409765262130549833783724262592907543024221361361714002050656224943388688708344277187471041305867681837199831625322136372863259257852093226035499813180756059101848624553801098353040511780619464608361143579935576265276660381778589727195326427236226388589864105366036117015761754263549194644243648823590221390393555857727943156335198794400271886775014078865912565116044961106468964654888450362087072992321056291258201559989365472324427520065289250863088453819761986842633583737362044960628673309493980297293125555195271473056781249416114183052731785236736002322432871954859436575119067849105660204839504332545034968737752368339372750534715906246622071650671256155720523676841257468010928083031321859559012897308918907918861325519150124622770578509636361895316620180420937992167215478215221432451243994083592544963287124528716625940063963837153091001311767331073108878522282139109363930141848954610249242912023684341305014204087352721018292737027122250853584516994959800724192208905220226836102070807340330520520959001505634240912367473407565957662829287392545993328824464387780143752201243347782983076886669429780226544594495195067237542982318581499510452825181847801522572967015398655528381557024336921708749433066277521646033148322956146262713487884159302846108736966179682511967604528985703434765655215852232614649783264433879999378194112970115645475887845335930645859005205341893626948094336643197871677150955231869885665334949848899746512919186949396359022749236565628378928065848086359502439863158914945488037921363260532675045072801817223715783035008387028825043593085760152580858413971073139879565089363939017291559876125431773230088149192846672324438354438526473887159937961151720030257155213744798327605063703850382855286162526394037025705443723049100315212071454973007585789529852330359772774529811875109922372110125542983169274976987469140407751030722587273938023533328184419254573238552851222264940306060184941225606883346296168949049233289160642548791286257022128212463700920596212249510459851373030834123380646614007635980860423032188467950835392087467248125447583866299488653348062939802778696469778526578707734144105314898540229355441754386075215534468997750457479613826048461496814308064943757940474810200246076370637480108183757210936881347865171598128655698641896225455740431073119344921848549929772622298775253722829798870925263626198154145920844793635717862357131603809648274490492407593931861736231131805030170065659748746586032702396317248814018776996606231684136790577465891068902774638693393258502873654216899961407858852947942335503113524107836091712909651096431294911369542642853359595836362205428350916452872998523543327705975300967318916109906715474278514957961509483606242039616778207155970005282029881188288066729883518220955864823551721096458804669510566767512716541803616465073776479253060560205295704114478426364425983297802024152468020791060261772745454765276402714809417203576176397952483134897925223176070358076509245023627803606803788266120447633533785806260263960767955650633159026600086633272925518035310030861087722206251795575715019873150680448040613260318122264894796911771481016603830585180363255306956695635342624733053198811440237064258925570897189599135417006345635044445461451177429707577959504380799183298264957967978896834089171741666712339946201403519539501298830900681997041547369641160641158760030068480617916792038573584825176477147180029698549881494386651984925752256249998553520269390263720278949061366405278562667595279635178071113387285179590178879068210412740249536825857229913557642867610304149230834123254165314540778827292249744272818436176572995068767771614069913753828494541316619116545668105428044777335378672281219719955459302850814872979677953187670270977408202986211829705093924999130512209000718430892203385084796240146759322089150764454257546574707040844371548579235160517744975535730356863085150957324041654971480076582241944098271129230550784502785229688281721258631805363264487654117626991128608562268156664705101549751204047774494567590862391784492100964504522431746828338120538150293607009209551734639671549730355200740868227831456033048739702642902699839183420210736144247547063303882586239276342182519134969482204994001717378899554823457179063282808669470926192356736936535942368215224000674980500275069869800323487039089794663113510015294691864731642422989396150345591480487522085073663224801572374179300942987359622354091056440628170365262876725195560659985852940118207856783839849622174757872168248889317069197375872474934504959691623807079129396922282563153070881358132972614771908402521056649960982614903645607255432227296938852442015555704974902110357690978310399126492845930202590107228670247023248971188214479191292309784228284570210117839630982056102096082043012673949119795255239575198285218300786721632452199230551361756556705154572296842449874115543128794820503148195522148917595229779903125731411939454049754233128220775336232029023589686226230980514647704482759482544764997119613773642426012410908747660903370753441087022587162416692621513999794391720276210250817373683488608542619175953450793562071913383807841090148314698165863675081280645007335929566043421265678279618370757434279120740394385490153693664611341021794333224310468495961048633507768846576508996696087703660636219640826158264923464429525641046203213920929202225128602426548796655275912339560450964293683980353422004382123215518161948031813421622599154768005921472415563711296395801496371874032844852347521336777316421426180642855708844863712918156784555517214182700922444630748227518998796724289038982079700595018969209782874727137749609971203867067250849908795421010614919871058408372097948204082604440404246219243456835913983791716011205463394366362657534198115856710620106588803767355713414078531577555565814099169086544929254981737992830839581534000038953102621739522935968424046787240202114003831065045044923858477719637098390248159265492051597291110170858248998089812169228108575122617848188464012440435252667594265662916767573288982835086617851307050280333302136518887083179350622324068279105873972979507161057418251850739708457284468369621624692710695570023044061070387173190491864615954912246253225554443393126360755688032855440801433765047462959695869614658569049112289323090317032727551787931271821098465442576549572966993574005345693404389129927211490441435142359974382066473226047197965352853594598493895984290431066570653607299406945061869752260934043035331090984258493429522088699556245547133380655344377028674475029643289857395049546751459077396353040286081762975574778413151710279537964264958126713462933963689571707800587714503252165918991445972800993969887220154869159877933195427471770966668476324339333458347263175039687776781814049890301355267277217641176226826769443792280059374969172665146851967939922938315433940216377693479070585799834221973576803683872119608992472675136385785230401510374181026987858956594577343631454396130614815359393644321190552507586475660905510837089572112759549461749417145652340524947891873912350196295549641774408311028236731570939531285352091003245707613336600309545391093586425756117551869125541277629085492070076076669865870786493383499771952497792639550990404273124294584271338303069775183831075290086627132466555946727444346883876547087907488394163921168917770592953304619452405731640034563135776527982224586684563380967082919240494362768469799140896686975662908577662007932657729525310807526171966784839955753891824425599806737443118458332123602068232932683586596416766736830971837922495933183159085974601899746782402756437045850654424375574964228429569599158856437718623757322488769025956771971529191690097263442992132441626741020301209814005376734158933532461228698702118798972852315469993224298485832606362389755857019959904030974782057189058306986281977430937681917343830474239729798860301492783861230779151430677349972124167301123786536458745007789341089873527586137012669820874809595086583844359048004479116896874384833509172628306660181165351253652862016009588625976903571119137722319931058657255594746889276099853542435906089329657992978724675572087669195490866103353140759570540728640325199931505258874246214223062533077738080411592753562585658127022952798709170462762627705932417115230589192975919525103344094352970836042901427402137818485997625224923362404126155931228001981056027996487427860470784307791226005431287451376227670496153836627066330338485812510749868918866338843442022451330954584017622097082717434065598548543537608208642980930108049268602340028762811198053728055926939342407493519940323193808841050991900257396747071091526918108275472862607410301765072258185430776985477584615371983646071713947004397345575850345061493174816819834247428476123103981805841638240250425075445020474725052972394755580464377263075420487551133526052328578047212838593722647682075711316203900962125185315135248826127556135656078758206590677438920920020394747708067117446504855243846940107717346991415941431422665149405691919484751605256190078512561116516446331177046198482258909563892889462544226474131537918686385136884734281462196751641079678555901633842759412211571581533331369066315581499127392359786127334590908101014755198261368664287769405126485199050943384435515323458646242447570648169497219551676307827293280053666906315168776730997603427046649545096694115450910849648394988704939474436934645108671301723671470797498908080633491985305502189741778318600711557494003035369378297216881170434386640468080247051755327088340595540894670504769646803731587324649218762813371464603163037691520235597910137745154271430795584615734429023063256547159967007726122890914746950967095119278094040253218417155736005194674578859418042390475742199673082469484188149460103366507078479458275451843486190179378014800212056708210037333126836889846277968956651095511256605575032531229972522584425801116988569188559389761857818810624642171493911382740439751530395061923620234107782490438575360615005294590144070662525345027470498612995085025386716029579002287855736227949731019366471529350281575619255232296862484890798075943114281248057268476439428983179591141301261032230151788320081160815137270242619728922216003135917900098473372238138788248712534199249350423805705524927876080119269591594653182435933087214288539661625718204019737327618360899238122122697941727057526794375194670087810386673119449299089780665628293803405882795345325121158589455086600504067936048853523179336768899931131044444129935583369144309091557615129602491857374310211400710822258134184412310685962597017431586320630066412502666047037057391665329853870140868668244912350775893483129298001080476572543733204704098188983346947110416584522593544056679037956478150763444700658777811781873172403240772175273753946625814761013026590030831152367963070948031146575435926191300076703916933825032880429773102008770615107677612463874891027501969431128059774437044236066194952127044856076533082398552249352361623042059102089368205945302896505311223972640836690266403687054533294330846139614244331632260580427813685531406094916946772061035334076349510713973880974782220349040411035695424642485055791281409889998610365105680966098803272172409953795548108181117411269000441388050397314730707170274510701461795698980971977182542546079464955097488251337624011818308781879062084020485647412173916959147022546139032127449653597990585492523298198979161967959597627108051372682372200725656564214699259300145019579439186026195171939573244304164340822058511734515705830234320679852142169402757727332020787051015607966948442917095624929497141753017108931239875816324012255413363787809974354344861511079496831487979250809606415489443598458787901508855802496348244826474322140285219291311261102165845197271963788512277744108022149508487638501183582181761710620003441135832320358469168393997412058489187404818826841058835954195224383091061239361269887452715784942951050001149949812811710382826227503474436962040397668446287781929362985778206409063414923441604510473306242477329705880463953939684424338834886895272373106101896090825593997268142035937599309717304249993077804492592231643139393101743056955941809963467901556741318997855659546034387803210458078605580699773334841535272881770189369316581397329915925091659725398797060371871021340390929433911249691661826929340109326793933322330706115729019848010515245319341468244121619258749346743056504726581834578463653304973680916392814730101484754915934316920404030403809373361634759278700785437457846768311345096329717130395019851687607284861540296911176022855788054392681756314171685645260914351639807743206967759968436782295455390889433155662522865627093903652334853097667716451280418629124190169345801118514972987435302581662627662417387285606344812171627142879813725124637698254434878125671341044956369841918193734882553481877349251414942974009060788376462190905057480287814953467323834944078513402868057349619709947346775912997900713693275105687857425427024396208538632806793574086693017861316374779721215236600214469187628326526476303718036005670953483702060621478807961425032398113024983670140808590920455909172168752523703048072973530901525114450666789396462162391830673617917391423390397915636505861783492200268558907348552325904986983728644650532234017421706402109937797594274027604575426265925947890786133462522767773585474874434733684922801635143897385996526349890897799504854776196688232821810220962281045405418783243860748028251767916420493045745979306367952233792666429192086477358446446050153335917078898881542563376225494444659701802427449461786747627843124673193892218220258137709136982201519570670853548527027780709844446690622303156472928549644543233733557555397784537813657510768983327108095911852349457025602208836263874152387958886848856694181555429938093648550889216593530118378643034496985160338935091096132941457833017777701952502712598952228009248659135419702746936700343898520634867193921495500730009081320699884427782673055917189314585345688678215686615382015797040540327271382510055977566395609235346789185093505664802884862094976699167005070993321122125957531565854834342751479043902380103147815297351381927703692003165048872267637693473218554525160577848011625502172235597228385492030359044559342289519056794702932223128295916000297574791772987619975562544388040041303944154120743115764784509019490102623930930964489885184837460052519390760923331389685604176756034514353923676800489268447776893535476332107323183158003434476790388866551313461969344547338959737756744354935238137586248008328377001947621062096465558454279397757736813061704784462374914394603099308399489234255968681293541372747300295051756593956262598033906627169829701339531757415285464805193996176474535638251184983554087754230807665406408959962188495661842974246090735814348181635387219355230792488416000687179876799588580270122389041507550391613260154006220804613731005440153706090385069210349710261390282625345676194877019908975524701111439125113830299968541062675144985269439207606305317000228188575424207927758589829862728617452371837788370618183430146397947935502776932645785846345658532890287983772936283069958888624163693623757143243535305468059242598082891935863482151515200123559117883830284676156927225750687951533007199491151393913646843618020626756985350080374050882381623882239959757890232394343943076406859425925334850186740284913803394656789405911723693175116825618318320729784201342717438762795664928811327618191035824378014062673717265986636813515288223170983729606348075625768439580501505342255013814706595559037482062931058808830761809429939786929762163864224824742815847315352417346635964426079755410491683502935700972499576041846762574972917592390363426818504822843337825909258425396457824868362295129697111963058276679512951226786093394064602441338737110356128348742312425354269959016959357435555375748777674203033508039456561411811742978150570820136777377160229229627498660780933207570628598644231359720212180553841198766865418416883385795771346026288447336390666635604155759679668001022078360065349717149674482730823009761489262925091979101845010576387368733032145408817270220485124235748551456660715862456907479845007448546266458116977210547065862150723090152721728437772114098633338561409138763008743704365966539010633349938869445348112081990237114015363172392594843888383681437963403825491219386631026210143613612041535160611800565510695434378139157448704057241129683079114033208708797210266003527172467512663851940640862383142201313149920891696720968294868204799123435708972218200299338593588007936144173518188713793869487307306447347200416846786808780440066167837091742167816535583053167146890941863267754949116930804151686456410898275340178644371214423302666985747587649200748454580366262180081642552491117616672384687994479090425204007225288115013661970769536133802939563176386670108817034463693091469514237588852407518162463208038578814133403706469086620324268687667540144091514506373917479985930326912379676967321131089782103877005958771713776361559753738943000908935428271636697304485991931041001840970865884978570520594657266641633922528099709216007457894703075244079679159202633590469528909921139506106247307294775628481331439375665185406601509214771962445507912848296934048382461353048764175939334109295210113737105106196865292224118752115032450104036755987978599885087739613580018158267617567967558768520594023381943820115908054042714964303292114721880691746162975346086540847873387258234950900882389040364869775266821742284218977979451129516075612710612991079299941880367652640992686067407296984838729314664913243553118090264215654566851361187598311257818908531893961241625497634608468661199558691532495882306144277040165385662553237390819512559036417918311260114331091685246315645811840734151867260559706831550833721267886997763719811213637419465397120907107074354146242333590999636162114361834118412078334416675126058748413645547352000152644881067880072732794703905467492848800393444166060000370447218358883010142362992705253606447889844306602396039445591002897611544183228839120472190227225881258895313203376391764119610745276090474298302063846929787668542319750203654363701402755732488965435351683311290286530899232342771926054483285617235599940818462672887879426745043006480066022595411078905463242459739010774213135513056833210653350396911688001117773614155702573581989866757312246568255805589084942247448888190610373608905646985772501682300808169322541599741898633824788701960968480894260733001667151718534416787185373963777451307025765857974136455840174700207481516486557914103754001679244311996233146396845446957630261072609589374066357199681532955519232480506218157148463741305691503343475381514387717788251575846894979575779696699886909654177787291298847157315744826593067240255120058720760728268413724087464689273937165473069766427965868777724628375452250667303549196064034374019882368123290756519371321121529148544194016775308279239508255417592851481679461377708546129045648864308161232735205743982503624827152614263000545247593809968014991627469392409325589677373383381919557174973235096815571306601443993793789149128862667096104825263711542484143059629670985048168998191865122835011496658494841864526683300210027965095851564070297466139834192889903710832262888124959925389782803298138059681770882549213323575958886802533341893507726348661757266580811992708402949210642502607098711156890371135419434840205736637445658227801047132293378357064698309905464921763696495494648593247726530769079016445894389243628471963787329564129571924056648696701051035533995131379553389559407143879973132228099018454526849827218297502946257602870213740137842322977876192049751281990059976629815355690104573237629314963279425512916598102203956972537521391925699886034711186954203863133301893181059831682543437841945558006457698231863693831982591977344786964196030186351021708959955022397262847548108854411810036954292572493209279587928224561289247600111033965513280768139297795123597214588819964993512374665690559863907743788703319655865729787971555343823303342381302497192031618385438443011747226419838154417497341822548488497987173942689131827189291701075989000916779128374297301923610501487444908047623207639136468841267737319338037190489085154757419289058903589671772127977592146715734084018795475540672450302280886409522796632202320776655226679605263796044682044230006877413704814043265084004895099200628321645975393695410241155469942147747518164283855225115970750491389132407728934099055502919217011346193998654169593429851971626294875232979438452762547235869722238547085386434442708146962167269005666674975586740087335249089448955832903516734533223723176973954462541820917252426363533321293263457894340465230789969344416870807611578101183930999095256324951606651315455009805818403561848405468686323071206679553612440825664755265813211037776672759282201659275970467394694210620217492396036038845028279759686048680714663716814275381456332498244139199708627541639847878419396352673884541083013867329512968517125014523871571634394060539426584908164771659660785951867223472827489098533633134551670093226088559183020417987624556071540955920999077342101102529755060595549600318293166791986614596173094677241558681148054001351054850173986338474634597549545627931361468373275230434702320087123989334275570513453797930612348836604675138066630258887292691926908572483627529239621977739848748686611921857726444323834651597471331592915649778418726710496094723096014156025914849430228731574469291759382030363172495123667122385000332777973579437227600032868323361983964811719182044368776389993571928178375494550727569331395113339790419952658371590301987593788813422917269974554513799966563514092886972795569659391337870937685894280538574325779085605763281816631298000306985122627627982171641719808104697470407221782463521974268194299446620795855814843563844335821729612672701082138768091431937735233352079057599695313437588495647937115362742820982765746248991036537406770530391304249191473525217942830291675557928888630776320326354496110528887748074936361858461560642466443094884063806359119159193206284124603756520721225942757814153626633905431839784648724276090053830025334474075417785950576208519362861077344408763845906066342394804646964127533066140747501923926008544624551913148516085195965863596223768359342642524713197359922860137526890815243615395919543092984518481824092791120831388316488992025019972570575946945073845333552115574626110200653668163873131422921890027056795120539512128711344963067208816107176854809677680573083429904070297066904117867862363044111784159296205924979684501028155935038592770549842028401390822155508285817747318277615816098126411799787313094112598975293766806422932794918513631920713214458063525467115539214002687178716002835568825097756985476731072142619649529311745539126813741172301267321613844032375590235368129231811587451445351719737549726556044090062257017053464082951062965446159761072872516412766813705069115838713716422345897899094214632479635006984882264650538966633274924885601558409434033325832356870630460967079911310401312981981335828318970220030583567675507263718650017034052489660617749075580825856896011247237236895255251145111961580325060333935046082046428871270010594879305073643886733614687249162916093079355543188951803979090990103255654282563147869104327275811889658772976881568304651210535870332606093615949382431445156690054411741771766265301714221624362263403983438998477936683155917652976132583166011883871860773269235236060460131948334094518097723771325555463572663908107857841432443949847177124395740834303236464059816684029993855368608389880977117122471179812171592423414677254716801981440642881222477540502287565662673982247633058842636128896556819364013733074975543013803636017641471927622172702231433646832132499360838439062209800388974103436953418556167190187472919384257325926321928083112662663987648242765067368640494917200122804967375847738809800691266953376258335544624031125514002644522653347342024097769420607503442793546907258154204784518327308870326232734019735630762099747232486281556241543722307540935110430581115900365665328855784018113997267718856154070842750600507212308252764002416904219597811930214527611897647845488955859987343051780196200436449050386475620421189686574882241224411618136762178216526669505175074165707495130576214298486739959215789645004208385336560818461880183128288293694823234665012416276607274567676471585544527947081631198685508056057431682994638560357950298907221870241576261520805741211666340510520971671877356304228612941205476225660583688366458478592051359920065683269445789611215937261467695824022370482127565151504664010499376286689594330594601775144691754955091670648408435457878333900465082533122194160895362504699169476394092605170269826235701051611212876436539459151462246233182239772170964403480907177347537466414649005858073439451609289775407483748702485038589977618289024039781233155636152692189561051126375267638782512278979847023154630941948182450877510276147256520267007703076376623563477096535821561740413810594353335700076254389970927396743397194937310445595280494410466328954445139831707586971900666940822827521919917016005797035995102394738266898697819476484387016745642299088125778696708915001769202813053964335742605689160441420843710152630164056798272339469158346369137597838096773905058685976525220725133108280245259320396239907273275569069838935736986099234447953101501767761556496371358223376641740824292683830240591545158638052273385686455544354567463120054285353975249499601819485540539164343178730807454564710864134652775942516100391674510630715872922867468674746482828311316618920959253715660972664641866892040723585341675314508414179306226294059000857430442147564490428276073513570145444847462225730251911285315831819727429967669848716276891791608709743932992219362033920075904105197588524090071570595064866596062550781364340553947763326969825802542887770712356840790292940451619014170342490133603262094585913844718625555596856789596872472692461979251749187229776925433819175506308219618326075385336406040032360508031259022788073843201386328162179267337625999717097239726635018191051161616670108456264642864205505695425378783820354459656536978595067730949443448979261350023080661136279442279454237614897008504654494517682262006344559887679308538911929156602864376834672761631822612171367121894228788973102256724613544356056376196691320280335857549764966098757600375900691061981250127031083770632083595031906499340789026985193370316570224563967709314273144600095083098367141570925874470774085152576358736182167581546183574915512615257870312128333350285279878978134403322050125229355610975824526794692610277518582639796567301966371811110887011803124584924089017636502270475949110517079174748811371825979608438275628523397442303844728259891675139096363866397102509829316745243364117750657908442758779894383046290559035269393182064387539151472748530824680785070961336158306340466380767031078035968327096271518295031571743065407687080053979521351658526416890092771737281135707123437191936081024585268356797870415039632739989658656204734659681036308959641610764500255388423857298268475218116524991074134344094090430033529179985404836291759595459781733311464026875538922211150569469502230952711059319179064992293470855941887532033690865712948314420723982163865019668407667562470803814138805908094340385865657832410124530676285807985334727146889593603832065991928860635250076899123495114140739045842775776044281206511409414551542686468093547574294155172569606901887333345779436596680059572282918043263693781387989472326823469040790588435477709103075792190503590699981400249910225555697575041047769668411705834539505372027295598736351433663462661379648116951740628116126775959700336654104097324861758966507570231207109185787683052240267158162884701193678730016553840213930766779463476312078473154005991073011532494590194286701563781864110617844464275798576940770251203107340485072906339584499217946174730225987251933755791208960623045061142168622438874601412947588599536984588535712423610242812032572840954568391695413990346261546119713865754478662685562207025450931261429972744420886004030587137302975475595407368660199940343453267562979941641205065516910773737250432903215463871955901629920752882167205942896833835949500945195501494128240317845698252014164278055999876595289690700423566068836024442240891918608450193961190831133345914173357910605562316280849439563904745268175465584261937225403929972606210003866937023749215472266842243123923126518313647869021201565455906931541146669760459334151946894692184930238983364096647265834024946462392263113023093446425254083461359890714618580808144893490720484035844008737940748295439662542134200327443387994677436346927270785470614567384270266479881944391100621524634427383706314433131725247256637531409590471816178882955616878455119795297086616084155537397918362887687127860284268646513490784562229263821940510694822809191592977311908303832220835824211729101289529710564140241826830032042767612794807826557837144996571461643969422111133559818308892391886472766716293820260381375706467858105437199862921712887863311171659628637156585130128811406581887805885445635828965648903508307816089428876784231075839467333816906990314770527234527590706757491703928066091579579847299381013429133678683287446961678910839920511012513763918910643816760974016378633416442275557536959261160916638743398916366988454362674658730940347109238950177213222709751206933435939821840176082028753111665130631272585674419900887937883589390975021650887496708012504055669712884374886059156481299255163503721633368990124548630397101170019630807244508996274943900927358937472312328279146717304507849335385076019240091299277704367536829201443230898387399975304477152510782911064018913790375277227301920432067811226549346373950956915501141857073810536450986049168727490125934635876573212955305187505635559048957457518647258303564452791151524310152924842512218364440049404299967472109993942058245884553817364319020466724497945467691515803345085648546501424864294444606634924211560089024182214290963861345255394109134228543887516247487829983836640874049550760935810356344447135737241652152788453463839776658411554689874079232511783363461178026877607212825794712097382391758111398072877613025312472047262778897488817957830837698479571507207894041802192763184994557817187683604202037454677540940231014030966194882521746281229384261728518585290993952685927168756802219990986544127473865161413241497815364588453562024084888296984815675517201512432158921610574868047712329806940120443114083772409191096365678718525309684823131971837101359352425253228982268478533621686361410755376858518718611709622764411950051706613774367052449488414587341712732344445662813549056097161356852112527292090468770932083356588527425143038088187464006287682827375504463213427256976233717630035262908405830014707756513431288910519183117191843174301638470444846416157323661553326285720899511225172597848643124210996560327035756494651204492081949535192849556591603049951359445576395179078039217140636482876642739676638334686453742000889544669127711866123061756235427996514245565586481417167312549031345404443007475775129476502162625014483821019958251760842593804424209026076093337623094214218290198734941833154353972904460928672953079823509501856436252239844106985884102233219142629322352443663789930524893188444443084087837921636551413542302834633885524140511479558060395158266531472608215425827356374077420782062869485178631205886588413425364140373017160651947691759467714820943868936035275512889878917025117041725884116290965956354889222095884546706079769895190589864173106805270580089741940372286480527704211167746429609046280925229460874359241184803243947311373486552260672587198826630366388186278898678615657320609027057435675200312513334083590110424897969296038174116557325249792980050193573315029562658496913665517646100456536904410500149298808136283028288552345668856395922443329944675900485582229723042734883950403075020568846165908957855138469992057645434143309937698718461176088151339916254641100702216081865406903620293949698648065693313977749917163052823784215843948620291727181316575980649081360260352186617408857575492958148232857568209432943652131131783850737187529789316471353990128915918398061053628169040921607794429370917653615173769121355283485232273925129621736313638769238364802800629584884794636618540413338665768557438745756756836546385606147927779264040945611836424512400174329089299644378002093293507608256513910308413564390129704325687058594035342806179442404235675466896845765605046255055385320098741172856935061620495424210894863155183176370187136433947843940428636957794710135030356124331208701506955499315475115862056285897577111308501023447019025584409111800848979858457944042581611243605111324876024846832952216662803277418041455641674532596765782575388623890391897623462575085575409065612571150608853733860263738123468698497464359410145122924390488253875541339307166740819961225218479873413409120133470586067829457563480838827331813953492071329663832451148995379441203975039412003893322193949577853861058934222753999290773691750119913581258745633913268033165017690892775684375478453000328953300282835897806145604919511989016024047678201756675398108606564356426826343693016874952036251339941882567476719622339020166051277220106784065271514500820072584179548581935996569976150696015808265455981664629190494269552493676251412300397461636106080482721608477740166795395238583531836228185161384059568798718194581656584584759275313420032632124272231063275666999244228921449428329066105303367541363583042271247165811070037871141807510482036738656191620368884222739229673008108709030511011893976211257528429886736585412217331391424637893514816767166052435182185640792740281835099691867765699904108269858639866193270884961357325302242964650902252747245051744696722086938070354954711698277680291895134260033405897851817811241119499922002370678874862647999790094809108730296249309577766479460872221023003253794229913278961447669276078624066649037470962927015543400813477932714213627519940093259607031604451518759212295036435157472030594801529374997669288248422908845656353478905306393253960719016745429314013903916775547734881932500767626979774300846249997025624292636540330220616997985461753093847652599351801148391433317809150750530821408548609496870812927807679401492038761988180447308463609839446459145419023634354427201214398265916873886371220150104856863615487717701497473759436224887355318395639724618640772468819165435762320589377153632651976870341093220815751516632825481428740709050853441807348912717521033169374380971121161540179373344542396839831187748295649121457080334659374922649285804255593363630903091417907430032269764500616490287279389037275223000992148246689456217032489292329481707113260728337184426784881124995597687863988777993862999263257467464632030129738877189810761403476808995885703661479993387898890309248583908936797932568769989485158683673331218371459679039378023238324896810971194226269873067530473799136811840552818077072447526093250904592022870677720924665122511515357906771583791821398974353038971920593712168104956578974237730396883908042514284750359585735692577810456957109421459220143156999927083781027892842176461440088932865077638264267556717722383183952658984111708535317299706574620595814953829249906623580654277886361534457389323193327547995598398164820694466995206886586421133452595186805347681373864063460715089108424115397535209690554309923350812504630968256433209057238264139629121377590374339378123727541357172694786260122788944680909651561769623762139972499516042395546361060528541429875013103887692445910173143302871798363587995289233504640789682414018032443946902212208263427843933302490277747367518650938937055595375004047878535037803081657601919804354474634113908608283994983644218848505878806145681361858630787285972397812337178137526205332624216694657910229351046033871273689626587367451190642815772694739313554956262004194446214974880294064655241451906461058287136975285490617542097213978866751757110526849067451956280386631231890255097308761306697596206403341827792736234554880482178281482629359824327910037280264936354828159249498088017712181905518294489437186171477366472290440214525739061387654408198974819081553493566312174961442513775387317766151280602538721231338686186377211098110576727013907936705770840701839840186217842232711651657737555439258058729549554037412870081309181627636868673201526021167422496659512257110336203597727784409070601287556485509242211228852643777276973448412029041871123493951156644821626338438541765002246602880231836290826007390398314686321307342301406311681352207640418198324890499171944085927572029079492634270070693710659022465591089219877167351450773871708891779078295943502249126908416634033253754428588175360273356134927305409054626467756557258227585696359438572528747097035713568671271955684935164040020557707577823553595425044436421314877053169058026730188031192216004089006541741448463763266363436243408937710417113531677962914742508254410008528632574383769043779024461850710600236554304027405471757855158797262863707689701870469225104620788990868059613314031179719325881832547998280851088298228434714345084960649885929707659753754998756279873066644322668145292795225769692960077109821986866821968579585853482826727653498248318896967071996402967926625163803727020529521245800310347336330058232317191264232827966563829430673522734059810990217563912767672720625741590677080949040306262609381226053594978284083664697306221636513696982979690473517042448619686828474081140752913615404768870925678552674312659485504792035999953200525472198412617203984903632277225451991815583721284456971683153014313854820403678317667998346217117587947552428539815664304736649590923972732368723357737246747002834046149131091357770151413459538674330427471226802961886458149701494689032416073278158011412496990773884185280486142507117377746544551636688370100984161316570425602593792600833309784819071644014159132641237162233185685248404101391043151188033032105038889155310748717217674452712054192645802647722511879665141700654721538675697171105798000842316521092967798816484069224586023138852365952008287122497843851233267833762149022689352862708455023809074542086822974735401899526424923410525465411626958176160493585356295036207180358052127109994235928652361937849691240358801548292568487890138912455932991789085706380081450992168920847071864276077614949312096012157386144840699887424825366294748827950552485349209059526263765787709170105022811191092355345287340525981680697830233780710301131263394496604853430200669852610820259069383032273901187468875171979992366849836814773062885404680521936831993958229085106170221856336929860945888808106487941350305725996904226835723326246383085106457160792669179795214055263929882115051000697502167720149916360658693918822491165234209122337032138405248880589445730666385227044665311650523482569902845519541247598891235588510106984059290021168611832873528333401145753347906855747220852045891429048400803774288835778446692394138711840082731414118312906054865461770394769331109976087214876432567725319390691990939833966655258457443913900833810327548284458148762990065105642198190089098598855837822930918906585946239762411768612167450777630725314872264657914864993363994259406677800506737196249388756509857380309444246665031620659496388529721088787011552433891991300868193318528414893931854171921453276230313931814594121342243198906723884093353464361854553249657624990957765961719161200912980597979202027360641791685124851958718894419023950654531984619818912146553571880107228687314058043322835462074403374453575744913188899637281890359494439146960231607869962351461335905210794007213286195348208234189994869204636749315683952161241437527864068861822743840789783398164596988041135940216504790173357854635167391407639327984476134299857712877009275409504010528482112216418357217771917946513587714908690877219348596066736723499386870062626325677279820152040513575282406660259170728740611906498666207388253532759657386572226479861417774441368958283118403118509762948007974363704327885446142561875252993420667057632053870700633263294221943942467813438494956061248906302244210639865595738041489227264089040497569246866599223779920780072199950255094871760204567692155589486183758315720968598595680166612164317075210546380668000064590335200998356872636630392919976981969422206203966792057633097757340747837331662454760898916549833280769757656821587813141067305043729947547174426812349050973045075707297761433469581737821821718564901087732638842668139211290441550877251561945167251862960420891625224612775007262401862352859114684821832701343463793322723608119988947216671262068223749370857863088716681441484883584733936591259901187584067433855635882787340497344911544810292789307306842912481899327854041824788370116045605040531036998768499933042206838984612476534943951121997834334925368651076274583822218352285288104704211937070553386752705587298950829977487067101176689869912965261866704293473193832893391407760067548508667121757507980908659539694687499296462809280423052254667635118144662040985350390026025386193924756732076653582196873294568287316249687675237096716714469396357099064610339209001288565795046428558671097793192454675602439946949365247061809436886387176278433918627109385905529783653088644657859974063535230523497523151912507630143348412132722714138865681795399235592375764309343719617278857327440260495113152001472230966741551663968304725399092859238084679133069655422261765242001530721137890873234401852380189797064445953252978138804114599987301258217643641934064197334505601121947935380292926061415159409291103403144304878894721406396319764603998719632996000121739820118655801517956200673812062461185546106673551222937006596596322839282058104737938849565695766713726546331698106395995453799710009652785561946487358354533359252358981049634759724125545994750070910051858714238744920973657041803311798927776893481072876530149654233277103486741576817087269139699844439840512349339949622387533788021203811158102797879196629218073936985469757862618760844311206146617147523790155376615623283660316276925887871592360805086510045696280248672351192204272006034894049970180064933533435181113355709169198199424015729975038873207772985824178240229243492127539473659101906374248722310276504976739865245158771676286181873825396917564710286538705519583092134668996487975757509813644642914453281360930818896442164780993366743032373760199989371236682394500233383971488463227101166845848820796795219509605522732195922214605327649328283321049900151283804591932809410006350018943383414979490067186633287037481786184498235208608811636267203591319105642558138670939112924610437073052815163893991027976273493557009745289351046282948256996920804338551300382734753618551913375839945975045471965168597210249419933235305309378829550171459971441978500441738729174041467933671127473801400973931533351218725770459984345269828232488343128728163013461691686436967792536463923228011532887162234795620937849083551756338043320890480047058686746357408665465058146875876483160335284324986563158042622859375896378981693310336397213736150363870590882455876921832799161305479503848763782353457555169957284222788182197518391209905826101956295763770925782511289298703472291861097018271828145533953098697570925292937929687272501533553708401917771348762341255955661440638378642363318124353814547861047096279928808120089851240402700228868014696583326741220182215671451921551340169614548505673305074703642954882333354423169789388957926879729062616957233449254983016476172502494838692406861949325369101343037606673397400613507500545260389756329724980765825653091733669099479060233352629142888889485208385681672297447278278574438723728974982833797199184889119285799388633421801742283273510395452190647951935062721209847185045238198313566369886739062375222104632465774643161395486249065670659134271506420507465577560759038810277020912712979889790000438537618433836986689345676646979651710844013296821882803498134957420862285522754355760999961594752874734021745286326521981126615985373436004560208930157337743164392741927291345596545568318379256874678951605138317271189764382210397119361581377763596536875245697156716518877718230156528771186268558726879222670298350223114300322144912246684396486168702185594962041132436548373087346923614125644534442250382434434468214370571897990834407290720068504967501310639382725393727305404823488508716265937563332598705507338268663150674300696953060796088292453936984326235789082891592095824205112313882346501482009147385752332595112372065192341382140842200980162793802993050206550598381020994775020555807399899045107544810138851252475979341672819466059281852459255004523869503302372330479396800497227478452250221164188592062733038913378490296918019479243676156092696784124104462821175011498208087688109253849561366886146437399773332981248448488205917351755911006807578728717087759469100511427856949146227244044761768456123399075780767633946527530559519077665533788737012023460558924379362205540672529601705773290998191805367943995244754601126529744197322152560899728059280535039613724078294277543395700956826570845402629673605220820325714657196854493006785084509766539788369578164437471230526984480655538519997454805492697009823739714780779913585379969148595198573059539746788352649757927749242668327459100560552059777338249455985021341330222403239844788984279686202514236493692434051368462596745734290689978331903948358363440106009996504161317572992033225134460751222164587039669019248571954783611525087338668376172732431313847204896499089151442795044581125531066131300803442012553048058130598224657485936618212413779266537078778940549851886222695052225627210251229555859013489383010951385237091636390291426127863350498459086657801550202194739638123158707120333393891534196847596233072805544687580424391664978756703274525290686322321601824916574051045014826423422351669503944496788709632178280069885255750016993262394699499701570471715096025047123392245470949666239731381620114135764792347712681513981345704419427693061755861222597744807902157665741596584938651389874469300326190470847250119821341807506980805060285901140637087820700273546685062591331497741875262256275872453219828936683574811477651805705667572063704869179898086000107170898518421912961397304727804109195714823002565194527797308020226966834809272807371050865881768894900766615489740252399762704996909016649410110790556166483609713735858185451391401444779444655261418744133970564941298641628450832423895538222166687629944963039123439140544941930045024286492960379396615483329581233294952555554209300194402491052201363179911159624558511984556382724044341602132081322562287986939015707557966486313040413180317659148837205483900405032313500146749653214683247792309946766341201091499925451921985411042243422595163417408612505069363586873405164895415827484298782543426488086369890538766005208507814573833133506987169701021602057758625610446491588535487899947218721908618128195484061096597350821218460902720719987841864652649008628616914268578024497122006723477864757584348187868993904303664659375641663553194356651160011916372674590983289562828749772085839361009562703268308110819236463949355669648553719920039581037542163377980325687084726400111400576039700000841811497368583421989722283754884437420083351906257272375622170557057343522083828059504402919979249771971680648138789507324160529804434562298821194711111877989960486129193885956017971237553104828126862259676054966802069403023765722306188152343777999975226342497948872863457081415447832784696913619251464346458898516890366897876057780501468885641462226601327189761162721873452262453397005608610059812297470175540977121327073586326788157130869012782986876519162860519905698530431554818224754909942948328892952202658306788711122351062465667058507096736048411626978885045915423598264470891686189204773560660188364972155466735450538395798282638410201059106886842338468566003529896790393576744438894927133600868189857510629267006973654276006191985316781208640537823128852133636293474940296793951041657103209092517128703417873953081244615488737413991916932206170131488184275477800159324888846015315344897606012703680442045196172691970800191461408742124921919616647110098473994248121741059392602553894288337948857393310417565906677656280246601738832377659282833794988369785165441001487455196154432023990659132255634611505588668333368531609858830357314629882460545358707280034397975121848628048841178623392214065560741323935273531710725340122682338060960182917214672986477244246940378188579330701628266581055838107675827741239546281462193870651866657778171156010383087212323652092733073305086535656393277583160971335734499111585297269054683994413763288779486516343605072230050086165818811992848385861547838430321126549647572410888315651220847650399199058460077265080301295471120247476644757611938686731039393812509955256126440581612237354744529239547356726945172813489245260559752250885001143066367225625879784708191389288526305010400941128030928184623786662501035994572607690204282164419230266302739531588157436157156818377138542073005961244374412071173957269426804308415234078594417722438054217914775539437026302256428685861626728108679516490928276317270403190248723679557852920335429227304203756568755596074528082133872452286296148204361629812612831955456489888119522777060959163208826375658982102190444423915904782594297378709006811332500741705259786377254386408548573846023717713388838240602338176968863451679075651427114259479285267745222302724578533202275304321294266732968649075997338410664431073356435576326284716147578349950488359090058729403558410695114191877791898972622021590265388372362880739582008652897463688800648589302100588806883837319891406240521814537872695065337071718117033834253653386807618701687246892084336939777511195289853055407772129775459031247465483952199725657340827888312575119841888585992781815689498500888292013911817529060236555892089246912730885786518728585165009080048475726629174692815637379694913156192243349051832395030050760934346007662580803802113730009332223976090884741243553502727457144872173367386875295461173896084487479998749621018708234499825824729672911269823380279556589264499612028441170852183307809382946069066230267560368172081122407979365025609271400800236784919789878027698881682409257764504282230759478146991212494288163957397526987850719231084206672957160437080758390149898963882853105659542039256616511334401584594858232933840262641427998923919829119424961495971009949147118568425042146166715436909538859944315825514099622834684064238422677105399878914601206033824038158018678263470512037902795247943818783206778942845556285006081873017895949872416580056010828497389772506646642543950664735514570281524300126603338009820492353365227566087616055040147812825081248409553103241444986641630322171331655095492207212984177006051995462833506298072121668968599200497940889592297218308393945460407151014725517953709439292682468370940967564546465530418569185325970100725452708059335373709610779920294948212492768070078430944706079379851232373478372777367891259883454320200101186101250721968307942059429298254432282758537648903222172074532802359377769556736726244823261656863519220021040667634069482108672061698397862892650186976962998420910583535823478325442619120896191514962190667354101245314010906370091921184713498884256107948007649183376466557202975405734374526830862706343814941828682934388663019477620977936546501722327566670008415481460760385091512435810767555891321049807759869954869177579949417118381592905855369936941655098590850213651646961447794614388128401208316761079314316891813455227392103484789130938109793422035175781669207792821315790852305988181981611781474948265113170438929380057563129929200529540019366784569582869003181971330415958053722818802683618913692359558904912788465604460430856779693470375991569037656104380319437051207473454801611052881429000920006841892130780579758466729416533245371169645230759176939646406058170586883641485319276291333155561452932185170228278330182137843750789461611669126398979187651383520519808458038318096073189270213887129655388923257086673150614703833532464031780554475914285607767685921377736017223655635372903087968705127585384712854596402026335660217077676208772430810404714670500429645240791882707557135383602663816402021379156018118284997902276846702514111838015579299623650416034083626560633223617789190551808698352414176422500558098439646989885695887813782630696061849217797655710488207195448945769713544776117252409065267677808519766325407748717647026598676571869210893014265941963938752472496704550139202298288706401000662224711075230792868831229867559556899905712081783172385802993925865866102910504676758519240779575638491405089520809536168633240054806855760717084597863017542775675673209284005989525344696031137404772652223239273070654534210461836488315403830912410769586762308821950542574867278064360280459047026194397722496987029496359204053519110411435691111448993198253174141263621939321473123981625713238947157709129199377799869875256205876229515196022604000392542302982202972535893175116199766267020723765587972606360003079277993488083043992147194719563877380574903964633497640495771739316884547419203045986445393539371303011295887677550265708486952587926381323717715016202022802574671613326896891943584556854190621481157987883431070426202376821114516885431434753972019131038817544611880876824381452672023099734402026797001572811706046625963897814512841099826433772420374898429405260813957041725243627855949185419599420170761131071481548390075938254186886025455478497139895563836484967389360079044480128823576116549302804620898975014096473827713233285195196335415471830581398274139529077685388018945523765281392666853784827267191405554782199224590176976491921031265404338940764527224304967460717625725719479618856955783141068629101913214947046627166183140718813244615663714848037266944548150004448656473943190138237129596897978288694904550812986530180025491008768769444613202895535466537512633174279915421308170953313287791087097926435006735480627422952111993428227466249883430446802825487220487226454974745795583921600389686631251684133837342794926310132162156156563222302969608709538700665463405063423663484280753674091419562506663665653824066874778491413359162865519912640839145159213858892482746184922733489403685619602364193180141522071459619634315280261877242148771738225215953521184675170800008085036986265172949875167183886165391455158159374852966283342029738546889103730005921521437852557974088758778422640076437533474479429071221275282195886593200513377995881895060836877026253927277659700497888287786356854163027737063742822636990299599574584611303331053242957822609912043996211624628897844709467612700190424091069024454935888524265136587693791516795823404033908296846181287068181847529826152152769857053134001167234853679880659788326976110828947252783652661726305761911361165586370719068879339902875942328886907849193310217923492466499249724071693972336425738415380343463038747888071093159461381290705442878176964111791179248186618287329979409858155923248256655437891840644290214122214789234492534826316478229075435755996878816740912959279964672321152425833031061286755980744109739913744248710466659759956138397033911530622790562150691173086297017808220685583375640920546358816869548926531409340386224840354042321262387002922173750560437776279199472817158555250676328470810934402140493141855537520150415384800141454833117156585988016261304815532028412160516645842636117584107812691462023826587238286989474639136796912447829826859566686797204356021728793741285702381217515249132477389644473011009679630353234550319130739246916195915707129693753509910325303555513471271547971413458275972402546336436710526811539152312316924728351861932025436167282395019017672127304275603485631500588506528852789630874135945929022614186300347499942283346752051733805757408025409445006615509389159327404707418630518195805116737029382094307589478601456441550865713694109427608838894001074161625642609474151245154618083619157989421648712660879836940085322641300121487321284346778435578296967003711010613183180158036501328225016200209422260939466473756079415591774439756681172858947387623966083826130254218264033862476199589879265220739470141187268886484218748598656545127155731741884758201392749096996331806542907867053125779890607785685832110343593312888539250899267892955176580674403403481493205380871129443281118359830409891179173019610365153734319664399146490520412209233416404570335065852662253372921764081255234368777047146592514745572097244234994711271361779750448563142988875226916741436219116246527541279509952522512537585189808949190319551126071736714148083650326104803704540806301345503713738456031232647597873508221816737974270187810926098957371116586695579566556641672424070344616741514768525801469659432165133793302392103095787216344233727029121089803675749383241699842260421893923002927600712594542006324577936073279009205228021320027469648003655872621605905338920687127788423728639264120694043719490663404671201333410262257139112477978032461137018354043640225638694527803837685286563803384446346870807710060959726732834126731471495877787406492106965514318481274714613703107676329650318049645878499457770378697832189867713762927314571948369227878086615646256574773058973001201817443458436041634130698643411191446671981033630880083548499851271230902255942869505896747695189695887923430556155184353219978124788159420378348928682248325985126185711148298721622389876429593038284681330503988509014642816123792847601636879201042726689198937308396799914691816249366808828657330782378548996841736438764399532265830154877646843712220774958395348780983847185803061994078712000847920356702850555710023572115328808629602031813441723114376850335210407264557414471784847914329957699612044288474231249482635927780366199805012693550285985592097868570461626832177484712981941556148169605323474424083605652879765922439932817790930624221632735444911018957725891655221059422279823488317346973678047098373349796941782287442481601876886743914206069740964341845195698208119910342575939372420589637624974384376023584111101663591007684861556219484712408727987974072890361640296632039820146147780417719052344495194592194455711378449374864018236594171349341497243174964350468124886098598985151966273282948498726781841022048794649522466778623950643475826536130337790637161395270383584821557209926083079377567575362712803016979683685580623466335603511227565453040830052686189253654520540545528310939953315975150425527635855553464159521063464227848147854935929348178544659869861661551495703198647557150941682705097883200973087707443342846034586053549052436463141394455339776237455438935563548395355063097206246428665820996571252711644324850306363717349874559219906669876968811678323734216617811737138160573007216539818011769270846283960306207514542107550649162726769766645030742615790885223852462890811203043647471907099895876154652457361067158233605618219157711327972566601772969915120268656189955152221793153167909922997131207696883896736104819918453894047742335611084251674967530868473664106061696324685643555985493325040820368301626027518561757459282161766305508176158758531951937456019031189458391080343522474415992375298798367253598143594259833431769726998926378120025862161734750864366132152131980864100605428237290523502321478472934252764114984537521229922745646019425460159259619847251934725850412457128673687473887591447015250052606206110434053838340730892128538883312733021935528824533311869855181799698589696805930393327201481205028681441133927133844088277290979454157379065946090490505732462840824603657710525650870964026682371731582545199806874394723915196778039235878467831526890606703206871219370139537590407798647347502545309469990441620752181760963155687838562977197967559056396558587134745627141237222310430414327814707590422091343379610903486688229131192888053447515298890230263838087667824120719524298988397846612721530199560602382281598116927512139660733697620131288372682625616608550847034364455701053906036336872357112580230711086037590773621774756080240652389003940609663712048787323742420085536892979933288306267871440093655492448875522905962977272124854819763657265760611947913328830366627243680559057565481557080249244318627734747501039937087317092455247173974886961940191172614295455060374734148506424225138855853762536870187351521960638878418745339543753480851754222641768838201385330733979938620955305315147592574410488619701043502566331351519991998031941743542548416489776837695811704671670870940970226966833616332871132240269635064567795890173539445170816600567909331262884379146579290023560713791928010333957506834217128640240384227178765300123124289477891211624912007999937006155400429216077720186047817105615876855488261054472880342825476009269322486509568177420466419633908095974650767656529257150826251627862603878609666498756202792971242088125057143406732363538489285370992804035925027771514290652523664259481459844484548278551394215460140116784489793234860562437807232296941573670139454670031399349172106754526175029423552154632432696093950747442260877748472555427892744952307635680166353164999729721927921564497218026530857655166887321993266298467042324966369600246024327696625745923833800890650687021401150630849960388668984675353193095516910644864152318737819648944222909431487685114982842693922862178384473724451234504395647973658406090260427412429877722097674887211873442013233884316110755707483172174482186645633047137435474791845291260229069739699317300244878216545176097281486032244843417404492350765948405891870835333248371590623666451012741512826267364175686629158381831942958680755263729090252562873909953323245533570760215341484275658983302896699716625619935759186193828079988101440408441137472346253224055021880919515524365703856978151994563687498667753543875397088117938544960721479603592641584718044547695789004297131294946776102105535199326521676634241780852163169606438638645217814690478056957880006552738615543614031407234945452795280267100684237166831985028397645604705785929800516393054647232078593591003134893296730111745518591521985871999596822551096784640956478194493743957029018114793028839972640971737649037494740459706315511106696051770412568293200172061348727218809471646933981812200589556402062325146410712994063381851641827460286399185430529404154388039498202452772092271128856336515614959616166776200740500057187820052718953368977849505484918092357439413856025357940384644548778776781375708562617287357086303156415504956508106801935050214268281607630554280749502022290141606066313322471485036723827501009578416754874315802510577622237375889438610291233058294948676039329085977856123179189710121400523645126259679935329214848260699597237194944230623524662987974294352458168334028585617345889009712332236634626316926647538213571255807418297940355616180856734298542609341468773136963606932592904568980998285763105150871127429210446954626564552127281221453808121279101517202033035805820746692683924187772606042743718910221502701283480716876003725073712671300193597858932462972594818409717963866339073365445077180549298731763926619901686627023315012274751989599991422282703367752789028557953292289358574194474543110531897676864263333618114918480776882532996248295821829112310432696253342207779773041685004359602273986841569164725276103729798230101201873389108627710529865432375691138351012677711366032681479565017458653622922894986446882726853816255227373645640651578448301333028692894828733659651110696200741377060666220604171300894380755865357568423841942377243201682007382726092029867193510679985337690804236649618416539143435399154855663076634389357864517984091845262293326293114934641546278868285518619471085222028726988853300278728903615036467995313466259412240075367315741699127247848111200773522094652045862047423680429960315820859178290516498792560430292318930808297351631663597749628356914559181897402796522115665011178641961821020671782282025482434479387643002910118071285370424251880374318860245303855540635506759431161270069264738849823427408574039169624129412209102655459427947139688710300316716972382717514785192590222134773087308325650500352330915757691178410568330313809682344015399836780092391496968349467020597438149384140630644193742249678738626717840765908336197135219449345281012358264744419334407913266831662373022073462047830144734413783826260829902996534834946816548764137040877726458711397435972479733658865187191395836354807421404399249198534335574187251460060837831048157641875012490317959801049289067650402065216005335362449518851304023688985481126085919822145585710093357660722253774298150043666304363602518847758072407254589955123047514656391220979337300965071131840132843212603923943609687713383379026241414062517549224788012113630199716088009533460180093016010144974376428492476617613582948914878833051419420957360656437511952456338650091243343841217742193785947109830038013613816728755507751064540835936449672398660047110338339799664258022224589932059357468476445732421217309387631767663063631022915164538680573196377923662881188674590325353270085095660167044551755865816200889255424209535300352656331802492224141953611666889580345523149468870339044481881175619844679147112083083947200627094972759799060074377265452729887531279086984187971185164833097195681437762472435456362284693700363194530524227821977735103591139795576426093036001701963272117950458950066646690061332333973322730092788050652926027402594486161288109130644763380510978977672665011692828010906426165666611034946566544075031553780268032593991939189316164144466059719514846753358954477880938544016101551061267423116542919828002364176493920556376850536290620228424488220356071417757213493602777163674753351105810794079053112317971437690306375734324586322435159757747634981206128352377081415891868573830518349467226634077702427419011536820909943209732871158915333667845819338632631115655067628671245177318141062808454561983102652867801656396137527670551744790902722668516663872459793774041642036625964857545905114669685540795737585423160105973940331579213627672245436196142505442231188509601019175379397530844332892284385993947591133124414071752991146611699815737718060484677298168291812288549710827829409943500607998073020375794106589850123897192598174134730219098668693079331804402665146099459168802347502298743695414072201600896924022570841389545367960364077250083934267039677758928984116889300739659707514498643695365584832793208190100276718675414343007559651453374855500521598739410622241170863402331046849781884590378795333895461980318714243121838624852935204837607474177785297102453282532156648901965384646974837390721076039262537074262188464704625530831385845589967895816246391599872543598319611884847147427519528126964594968407016052998072691668813799631408041857501066257265727434091420315859321277155485974031566182367605693917083114318945369447205663295569496079151250514993818342554098984135511585164607940482346207820488366180783162075558691184783262174875279737553452036966183306535186964360283949322027581551409007977562676904659125270952501608269055454576460311724749690840448373819257053705743801853280285113531588544763214893227101624036633174834498951549321642485382534734680532571086001996528631706267180517972730125141551535973583691810390292927337385287281661670441952020895667816278670648706827670235400405633758341281738374829226832559075608225876560651432826572352234810965220221176669900682736219313945215640339003596164791947730416452917668390166201775206463998868069200113735921975119655413911397414660707603863385385888051597594157531716978418432061072977213568458862837420953094459180599054238177071306574264756899802548576475613948766529233204028008960716084361037595655988295483443896672290472929872774308218300967921920583352953782375767654114982778025799846508856169895270601185512722083197495314790808740032805307331556701028412777634057954937860439322543253871347260075834177493425617863021508098421638870228671243196323623320062077272857431187068553399710190268416037822610608503584543056299167278481269414444832478068155797930951974759580442961708205329400849449501624624418621217959422056920685740038187247196581113630069460949031002337164727694839782147251363540680446008113972046113500065425790267417017973312855293869638621161351467869516573029263892515151354625795696547300215966059199668791177420903798851159041059287201869811136351763181833873946237065117905896805347760394303896868464450416984786071400678001698241680170499403290046623272630699413738425470780612064760596657890794707567370133415193397706374790625246343139644596359411227570114380563242023722874005558534699329873781459874772809721657005361333144019836820130589619170601623749742791923742574334897673595406358026522471447178996737930322083428905108836451123482829807802279103923897302198702457611738929395764089686701646853388384130455584092555873969525830930494531782205587292976546479805196123083961151671395357812485208764754799093345793796166939864915697125302006253640722266463828761118035402590415458540927921190967099204679891779019249604908115355071664074849004536606038785593307517934104931694249553638580876742858395496593898695458540933637498182672573632707714612603790192341781122215185370853480584811682308656626546179113365563674701354349485127474893679067333448822105703393339278980130045229399462090953244195040800692071517698597640988709837805731404117189700509156025091795738569260433913435967495468132849861804011554525771058682280402435850399918628662950344540139646243617842867935299475365140830302272476007316926957366691287981924738900626842759784622599152907049195413109987711161651647052448623676427593859502142867102456792595612447417325809560852935472335934982428767475826515037807629199913120721475117345898820254476207030632198101809400083350882730758535362350919390244412083905085447387063479189646933156342856649082595957280625624761120557317265191283104691748218957859374278114332705503374082541930715124383019356501864223574272912481737465585906632004696429678813762140797045554318505347184138484727493229297740832478279706688457809970923081472076949395730034935789376891048227436825400724657803402706238315715193127450134546712845691595523836822515851312818937281230960440411629305026537963293676227719207105219653646267468879492159734689075250364729878759483130461521162926861449964490819274866364838409719049861519596550691936507503852495980502964197843594497478862476677010307969582470672798539394182032389514978337217238272597119834027051317970158710396638126219599364661916626661097662635748664912482365567397711846425251134258163286577015646508061428452602049579042446286018259476449777002483502816745306681973995844141487747309152222768304651613632228859265510633129742360708457679705123287839339003293817575548370578093921967730731162492992756100463536221373913765712700939489085984747523302955690010699144206907858779542971806044062607698634368183860988966258164395371405236757161343103183498180127010934390947080125043551765210717670176917736412490239290504273638415696921617343239033174790163339842223162536913867053252569460721322031968368213380151355311556060654429271985271340306860406631466133785796787198616064842707427063021419619387294425126595926266494472021578218424595875681472972359432202700987905547204810669359208591867831204697643339739990758678805800361615201477789539796728916929409012070352135083445025853721887389346762587776337992002545338629636332408941894600613450248799700098787135709421245890771452778590940253509415212917853832380836587126046087936407199710976473253845405015720166649854357792008415106512739477741829694701441271818891435051843605596948381759529861891177746575421902925238132565979855280650862404910252310918508362079336907977151438577542219177680387303924817455617766164218527552192148628862815198408726406498743540169871880839263880856405931857575121400222231065660253432768831940595076513766343023541124374960558923574452131883214595233898446325642718482301004783962989979502751917310093443990051926522570626967713313737502383665594194548282025183100901421607898712220281530137601655975789143063789523221039698869973105803318595222443506518666533778008774089207728560765138503041780453984457377650746323858074685011098846255710377138037489536843361253621741966272792718171884495479559998965557801259290508151598125220786000857599037263118307461138681252371088056077916804264263583546081083550484364350586956073357116796477098989318283915041261452210494621301257518169570295459482065759764513340326566259454853649718430232858175310155937636882123452926147386645994784700946449828862151575180814564007628767310930037717136554596711089689795856908643719929151155800727214935352869495463286197201241892150686277093096582002158538484939010999883163504386462357222931634283526331220398066919405712661709058213521343223922732631809391555120675323284466578967098815793445585807009301027037933358150065409098612018007994744494452243582212845133235586574861487043982164184754605329759373102311245878911462183520048946978026362735371258461686451807995670461931626847167433002910565469211652373089110884693134520473995011283795454415501527781868633142986953003761666585062881791897048435135254501647464305494898558864434639198918301025134797773268972302618603979103912223300657394315052371986039857500157997528506964795985253875775624632693320055034945520475187087747819153921017056301529150946382162039748345708258211401003411059723080714212731434705660000293686130276733579760113162564750431441085601461826699566530180045349030206317316739146103444479244189287134541086016107894570394410854425714204269577391800912266606245031964028844601111741808365692593102916871618869337707706305181865463905520629788130082637131535077189389413435630783677068315014977074366932474728877318539078909103889790443583458972980934577512959612214388623965406527196988319118135203301545501811433345050486766464255367797475798462549846150329216145308533091295507958601050555872997016726848565774606591055558150334940901731803351674375901684385337699545620763933515625230836673465030033915409058780104530895036782853877209046081331085714528330927401896348385891099276673654923229754247389408882588723039744326929078817703755796246679050336600997659322270816063631773689154844545680283506828114626751290846920746098990084178534328468571305249394926778305481839043285514656380236094699903730325935768962266360523188750934506838701319818666329203722098157902133979948463964269370990705246877605036173734385398414245623819613711596955219977683360369330052723859515165452926953035819520329722777512383306802604455061775316847625232610005926349072380377809837109267936934932501077409475779154986321304805382959322441317834372876163761123761127389217119513844071198663797978568327483225626004404410491541576689034934620268993525707125012222192704815883576292583154924007317971457481314871903297195620385832011530863615475129094476046094322626163168801624209410276298912251512305878325536463639082305339018009729308796038377002064827515680581838512569056680244662390381124507162204676734892681422059516814968260508288814431550538601342289310319339098024686189528837800973101692210487332575580177898175943525257685254824942968980640250029841744852060655244629671404579703071995452578747208187827383913118736161258643622004106220991259133258067179058416101351011335514295743295704051792264394530514751110889760918000454249364739374148359181471171586018273502219303159342709722524822529286778284462611126086791759575238034394244119453396107125446991300949318508691156837104932552260022168620325949313001705917063853586307834813959660711952196306986238839526437592438405022584849506789459385882851364609280498502173766085702360741636502632144268202453432214006163245220492937997913054339577198397510724395000291703447527251735775682075651382416963892583919052298308974646751894405592234556681126396634396029980075029798745949233889625930449470197029881559244894383669203576398888981530552131099497702679285935244225360110191626269736383734945353489348294349125956130688240902669789332237305637788556355765943703228238110440556274587128572176859693369115215257540335314184968196275170384836622921922441738238845526188211937486196641227350273328013812551017670352644944894961054135450484284166297873650404022767405865548154996595649792331672682094500383473943585272016062446455856960240232611637067169486061217971718484091099186564192792149445783490931216955640756653057073000768866272259899855548847195898225566278702440852902816063074123110951181176808652914442719189288349781090906558439840820776787672852273158055633983478616095205911456150213393200529673164782858685965418782533735519839767181707156096715218976401918309273407987809489752844021372487670341195695932807321053792982436928029446451284586642185074046783164369178179024943459752746079910078552648399825883092157805805830324245786565218377796996780655020272460750453411160458697709423727317436380263954683993009769285514905883424144911367153537623306730952608293398598799789192448826268537573062945491420479581142256016935287990581974921656280995290945785969878492287989204328979709251227064980052893684973900835130657442304506071873881890454768892348939473654370548043879035845864847231881720189338330477659131528338971325690314905194564672086545815534501231714011086214513902177506955649362301287014766892873977062510467851359937964068753021993108970635524305163100142740946016173521303448544363123575032356140631427375130616914935352498242939685303296751817437962360285151353689237776024543949460723295578324546094760237672035566294897840391017936120244613847164505909981573813768995278181739413250082217763970705731898841832542494962493526488587879734674543071176344462539591286623349266561393420947787764355959185130455208081686193639411414295920850698487846604221298314663039101425995776511209290304949863779582418503501310491987493933305688835602265043468734105600953491112472055073277389965045188440919363517565110845672640136311293239054746790015488515753391751758432981898592982961646599441726876100905956193740772111829801499948096271892535409743215688101259318877919153699486601982599542160041720302075679885028407052198047116461772128074968703618366259043738068294594789293941797330433003540300516521939602922298129258125832233727258851606803501836332567887071384454537115222549469990214397709783813354744098020368037407395995199626079036226267860349068181624827068914801679348584675768889469720215508714943296407456087179897560653262846068834841564241617579655327453226575777264020287613243152876210202983778144551909649733502519974407118544061237786998315356651700934066925907868825635766422715806426813517367221020339987698846349268623949867123435365791425444086512796573400174700125590373442325677861143150443525853621838435966403647635996561558728635567324362255837511965547612982713256938346361680133351760954993842448326921613114262330187034920230489322247009374202006137951928302867605774334977568853978704595562365319426132420089093911242322770517162241842005509940024299754202399079149346644473912702529946830667465520460534185329027369341290009821738819479585181429514518542327090773266400253193436001214241822727461109515500964010236209509558976759057493248107700499479398048588121641592452648810166058604267462933189767639390113775579830452066879295739943564911120077680689019195331466394383445109812552954188580720859272334110992485646052264861032870395532933024694456898941187991216401611209841104121118965534946514741142849402573947183472222806957806670940888775882601758637895754886483093200286741734046329941593096913305120827143091960520622313283427686145109629466676610948809998486861072453989614582907430399102586513130397270595592827732879014544294976408822366948903547538228007037499767277289115433212704327293800581603111281114390910133778422373249374084932173809693402222681674543428885868439968750619563127956984988877095129254321650093172843946561053216808055328976542218431847664612788975986549419769448081577164675193298837579534877547412836976458204913178832573418005323416584897813064695087051567438976509433479793099729318052863329144512458710850015290770354823923312165839111731178197199324538859752870800434290935737915027164830688592246927360236576108705391465977531298894686759490906753644521504257702781803671748040896286381696602447264941251231718945003721737273275297385987474737833472582809149269642302722649472472814590823820590660186296960699379398768387440997174692696517444504117482342129882193126896471607750376661795527494470572562546857197256378797822729575919958966759143690679785099178528793159877120979661954975339137362343586304436280637317333028792056774065802836492975773816252571060613664131406246495122985131511230965479960523099156471427915520069416273945642993515057745372043717455712816873994537132410069440705044554503432677004506304256323005458552673100210957462933540031441949468611885989342320840965981271383219432813994237253332744029872329312311386807566686238194667844322831833359394194056615905053563157437449652963589435043930447391800871611877261087279634731872935802351550427368195832515420124591851778908786230580871111177467134100692713795007957945873290542353814813123587092671604470884874401159502441669699632262409485571415978929813272629805658497335433882325793619150905421036804840959138029858320553291989343298662617438589349287747181161759169488337603860694198634644817478104797078405044301562021239500505775403662274181551391505953218994380333646316539064271338271925230690550000020272850656526066786321373682574653020441111838408868434581151539062361454016870802116342676891467778181641204575360317742859148079146602636733340438572348937957691346689612761963443355499528822125097698185673337454867376298369524033668548761692894674281869518318097614725383592553237156091401310784259609726887811962976185939843478866340897205164133122819604424732823327032779644946368005689687317903055474420191745509039910754635603919340238629348687693692876698729003211750620743871471950731283618533466315419741947737662822448534181664682122138751272754954109138198660941351721943494309088353195226556604593798590344048102564050209716102889660265307046471540677485933582140816052864210036394970229240251045850419328832062853091711793865373546504149323156027396559717709121496865868916467091135984472434303935105488144491172846013346729127106042436566388724917475709163510774717041281054839789727653413932743593735123686895821318515871117050417546285161637296526518687435071207270453947631567714191271199047816664403527044063084911917959706732466866657489925280928195660011910147308813735382883191976654306328441568466321147135507465628294404659050816248305908584131920356842556221992615117393420459056798866610414426320611762065668866748902773752690033787944450180379967840707460284734959052554630461133870241615996643250061688222794595502096877206457771932679705986640732208463204068269952519852260034350902928847015802818650488756070811419683787278594589573328969512263708223675299368274192459787624860968936966254995660357555432499709031922431724477068076159289783825332921514275325830965983797060362553318328632095119965708547695541510098310827477118016650624978350687771661170008979106187913761974998685712773395712955959719392907145443961144765001240999252409164365210806230364857360543507479334643861725830337765694967282727808846806016757208407854264121333934137171545230685609991295159293740838000486470941586376991578384804476776834329651863641685173251561661779894470057615610481617334282571321041926601795045815268244980923638415153462334057733254259757014900238062466662342081476120037188456532471133222004928542762923009735011934840006706918534486175366177777489646804390352370303225100630855787345470274166406932834126015589138811687268108198873816875529591141711505069364332760416067722292981078354386947636385681573720396367446177554504109943647096642466509490215094816855520216590696329163126959535232860859423158473788728232733615439981431153782102961003908885497734025104772978845473141270410907377027933429844352370289462511755769091979957970853985955126956475521113053222482994203280105832178241050472931836798074883656623638262076482627280942612874982465540941110244307914439855140628398677587533887830177556835980127980865701566448905372349858746180605631147306338812718735534465123401568029046831073696744048572444835039149800787017448452196339213151066536565752385919427082787065459619542911523163095945745351132213245033431384262837588949827497540013080242715548777927196876565448876764689748753755725838880159668016414971437258983637758288733223539088652415422798297191831831253540752121154277366387715918124259402387864822359345630872030525926995522821084162193063467367510735409507414645272747801871797498977585229602399440530436338880508179645412507886073559564286634795108375060771677371264744835619830622406132772001519878904643884005803704080692781786771605145127363361429129718557224201706411031854433650957520315025115729086745492645703442619310352986047334906640355333920280625255487625603958876447673679891328903896631610421025842950491949517513864019889597553965956256470531240771552232187707251522548087399164607878995929736438988228497585353801747638247912108728365828652498000854160811652321246363692065177616148371520096892165912930845191683114560390805203064598317853230261264691381609613739944859703565947723892913074538582601373262033683478808432519956751732299241336643029861867811290259721632480177587933545114237089756351163957869689395649485474514635482355404785063611962738617127114108403797580897135040746754635682286770769140757182039254891507067640599619062576655376064177568986090325158215402989997328916355459391187342030376219978322994316167216385690796094768860047575749791978664324927429073169793540305215423305792993195977881184807874477354722517953281012285272501167089330817227500823896951210150717523835283602409581778025094066761941927683163205331904615189813656258836189611846975765448745581046915191866188297051077750263801717441090424405966244117766185720649987043422094177314948270197448211934476769156334059230415546539860873126691246237330708300367285884016147275069812963779646982796479576491315075593760078875062546195173477295779681273068701458718468388846696761927051340541462576844636360194778169194642740335396209072787850993754177168960970236605953484452629460012198336093835389677427138798998895042562635590488664918991870839930039605449096535993780617443608399892981729114656942822936955221978425189945608477779727763178317352208299193280599925567450335609041951174577490663720807109874576190795127925651542272442931241512767678443427747496998615860506661898013090832377532013022285627986975860316161023259642410027765422872959071645261894822146939203033403995941109878490129239971732476273555975402395323813710571230350749400906523827443653564508226955254970793149022929085339284109106714178225972641355696779699519474207221828658688193783616109045757736389975568169929222005579285603901064689570500429959211835714554831979266906517204496820173330281391474454894046686122697514550701859529946543849517931147178608330803947960212266863326608104395694741685527786950288313786633255376851732956899978301629493526364964187830481531117022292833038616802258580703540955475495367699597169284590435431481672450615776461439316581921985099264959443178846620776366640639346734627407424996721191922472071071162428438549275132377333729577454273853081049060226144992639656975411982123364627474804417493862040856935151123921269681383213795672263911383839705880350143026698530852395686749262930290696796020886879758027376134041445189110988427389296559783817875397242846719690729962229541423663054282546828019836228422514573138808261619945220923940956986063520426413272698548981222972116813472491987493503563513142441587650538617466062016016981734326486992404854585727039775213695016370520674789844831081345655227932033001420227805528443148250395442167553059745118983215775849539707826135820304815292708606435342857626615882147082846158134226802299998475349886641628249332671734714060944108230026677917920477826177995678800984402645007849152047383376259910599159069917320596312571733222413584253114563572801225670001094694958630354647479339126145319431257851727537862823204040910689267945198636210253381761437670771389083565286730308911982791227149218023238294654333707420387840490725432074364488013140223189188495384329285930508058444278001244452536473271409226566312652699731328418643697827578863371957344061612433651160685369637144789252711744717071646411896256119937537408895315924200010977240897840793022752637364814524283388036678560160352474429007605344664272351289143416405988248532737709979081946279623008870921825004491637576967051898406596061054698119490687434548510892951855427565771331499777920242914628867738914214196881859493554000179404315644637277625195514180954687456917128560495425821769684269093261109458423730572143177712739340140067500240500739835490270133974785469697891693795186406248514074211335743064467953906034895021298043873200203966426129842466340911717518692395942494482470867450623052168361517200659847238067144684830077595556409051808966332044509735435787246971123717498815939106429581321662564633180683679071319701780424347343069636662488429122746490468117806688924099418436510503404251007545466528245551033841505298797102451400495275219799100955826447501478640134394195006486402756122082521172557081161869503536507423518058492991200190090301347861599656305711183027905028141279834129856156544193270020057748846127804521737651887265319470781803963905183788769200893079030118731821348565961053498842151588387347108312079471923670732228112919857901935698347223994537272900356702327945083282491192412473189960554384763075133563660449354517326036075778263507061325286321191630655189945640645257796152399080798381550661005753902185619060224541993037779361395944033641784855178337441098803125491187957026986857276193055678188598245031968452777298449791060014280494950999916934497469229991515523152063657134366604725388096742149232805197726512999203519016511886432356404932113610533560593475929634132320398663763276770831057285748266810244025346801942118443739945045588563267198465071932844583494872985907939738144056964170206491320934064189184091052548086791089250468155653840608757620623022691597569135742888023303130116698550092990226314786127987421512062542241500652098067016006910935900500277199547287542846859434480948171615797341050819061603683088137301402209438363801249281763757098840295510891229621538163810757860288970886817983135922082401704187067593979462170611965556550926126200782469383601320385289251115427025804146543560601193686606816428991101997943162691405177502573641032040966663750432298564737233868251365013139120589178485943380388673306501579602038810064549961822859675189361486208299858893511209363961242393259586103184651125200737199380333771317918470238620417445817007873651573106087143306355016566878205227626764009312486054115481311589867021146914055306798321376189159714621712749442614257796008085030922542070980565212766751216731819024160553724774872312559396431533644905451940594687189205746433431610375434014225496159028623543683599465584645680249652831806304570859261382238788188202644923456952351013024358832800088815351067375992531872088063530237263224763509717415001394881027841980890780396807832735499419251399791537019053286294919821738095444417529171683703403734308326113769691696935483854953230097347424348143824675363393590608222777533531125514714953562958959214111277458246984993192676531784887692432524367957465533068322922233014098237160198547638364666388967093696004127653398328706196103728330559463162024940940481360144382533892480067709738715670729136118178293489245524685811395799716923067012368481499615627420139413267596919235566783339410557456059540585410570004789596298103152661663850582569821226886288019945451128546439542337871597830347774275719582374450884242729928445263696953613678767414410014720193948927645331113666426390371481677898470618301524459953253768832584725195650399640207017167421451394490456640062132398516152006004313093504588062705901776054120782121121664519218495547430305721891604761022988133674071213805480815875329475293383618763259663975504498063966757315462571900405685879322709223178640184327931473277364904191451933808638323828996965232795490519606095272948228724035047375809152424305868845516585890349935601207145433304851598563347328950312555001985404031807522561174010225945570006914431417318331095157436435784501211528217025730623637091341303028295296009632959630184670287284506105830666405093119996472976737263728547700495137958999455295209480964418313502484044368580346291058713381542538274675078061281347199568288637707283537931250018877766262407713383015434882818002823649363389373616903723813520870693492198176641976407037871958818624022314166167906136520331115194101531576169237701792358582692654428030608425577879140470823763393731574540758080157574869245299533588106228948825448125675486315667062104836564130095566401471807690774656917687635048976298113175693987736912302287189546396642689029805288527667686751108960526136374122817418833592856918728762692524527658451574695708131094926314074641376690326932655022576964007629630637573877514159692270735622162280489630629863689070585322976348030166716848781658304160358673183909377287894443603140153563174848802463217736666817123628753643587709571611268101293845991435853067830503206365799368598201437350837709422296566031138483110094234543939558829979387876676448796524607201586021901360014486417925173115197038830049759317197425836312442271500802226278370336536186464417987221491863129121312943838535636502379857765601727696436180552251339862110033782945733192803927677548504293408742993242919739667471145312906374671106284483742480672270776601189782661406348802219017456973415186685122573560742285908202972888956230528323643232734416173024720960766738770044310194345034255120521725408298320717250992485596699274500508593830680801607967154678632260842544551142214611803152879500543475014639177210960999968824993196745427653688569728184803338164640962358900337673891542400355117268786459076322731023587584578011085143453617934974563528103885068758740746228420315900044030246965749159454494096792761889496492853315808043402682576618373740713847695798908035993805732890097317572930863104240657652341695539664577819835721722796550779814882846562806691000766835488518478520522707097011431895284778064931561080270367318073344626415293732696036015385108442974446908860509047097697424362808238804361154328585753025819431849896671175767249861599345744802973387458571626838194127909400144050620416510417143142982235123791541237486364876586638911588800768040371692054523856172001986123726929739874781321406989451256740642873159281187556714623028834591788292579550703749924403243213864201184110821052154338843274342847037780705993582133468970173680740096642132798424476655550671741820187991626532358530229132362197588508300756302807007510165683489875675523280686884753957346381854412624292738788365812143338598142712284631570909021601613918163252841223181356045271308807059286729875464032365180154985860618993207037369666579763013083197536970672944233051696505839522107457787266064510184451703299181341081073824929966661236625359152420593564183084450285081205909138797038013528559308236575010949173123744125691750326872978175887967714719963332150142846765566503799058796335988245849127997604756234402570129397901679853890888738623900375439736098617015591538257835066673715339094508276759588894661263098748843890324842855743141356653602341923981950661050694336981523195586865439479873454217582952335770665167712771510840297439484812402131822361794420502517620794088652596869837225954029766688397410057858048175312325641254029475334375455314658086554774614744600963651733966329325172250043597064241190084133422147623509252805799879500857587383416060687461585887119623500148583013669264423449380062459358131895147042084204554050570218011049985962964336826333745557305077619806918062785650699889722277853915362946527537792412284168258457799664461358812046625270497000376642395982741034931059072562112153861300782601289119735789016460369966653560066271984342756776386791030786643190196897902769869852492814087956897606834430746432273305286848643587744710109802844780165357138309273317896600354778004877378449635655176919090527304354249281822369823580585246738204565841379555955106343799413589441346857056777212206583410303231321554777711283838773211464269591070781183750058944133707105561161318445618902539867565443354195105524190224821437047946636495467992222970293833602635702408275287435567946576248989839405053757324005320658987979486430888601421328827203233370438235719551505642059732872171087813252107984421352623229922856807182894997097034838069555083742576937892244637411910448354400770965911951403702602153551303265611403527686562021715741299909912379507764181099537091582952464988367306524325846916747132576474320037409947857628179600156341245171736729275941631640344040342488742282357994064456961760553022319373213750198131170215554123695168587463266476877998414827826745664030842895938212004347289298921846910215434334667035243655155544193422770485878035725040689450367378167696503188524772207162629152210408743153992868566340784926817954101019094347020101079311634378760293636587751483881507555985327243723652356247436665208460196517826271710274153232123275512558202239170042991455839319103123109816042971760691358641244653979339579832484395539183610032611608141142194947157865695581621371165577338968540165345624885813053617201873966945313410024535827009856365631676707308415998830300565673348455919187265223343047813638818664856430305034330638061874743768035149329117549152589012208793809048582597060817695615211494698411739130808675153171670490669685181726734679058498488032050156210127572364813035414366676244397369079228127530933380255841671639679127299670189008850359687013313774139012644626914430314517252646855194467694118445413600683007104977711487133294512065308716755952332955085527527534993938956469977287596671197958801199821375026577277796812245950456471290769847859715968748838020641648318432380367762900613378726132600998438662516855416175125689789951361818544487551427154489273007812808127314104832069771321759144658420163480634983394642478134735816719231605621935809358364402806088995470312359237301956098085550634945253868308869652369820653565390696478573289355863925506119274522633933403672443057227291749258505759169639376919694230751357384160955591621046500210888220897189605684472673432950394834600515247626938923807487591639060862222710178498715541915856308529900239610952895732478434241586166148946488173277136429116665850465353997719841762999695298448395816084814247931193284801235403969192194666926022197476146820071411533226525946505975939978447529281052861782110962158999391835253543485899486202992795950451227588906669539996850101486457796412051079837259199767146454497293946263893937988862145263039370386112737427989953054663600386745806080642741482878443669134009300767118733347009467404245328573679645147886878438281763221698872501975372571146845669306241210229544894068491306500780091268546400265038295279507927038557415152055908810090571800339480635983217259105720284007947846276069875962472621361029690919158057542794114337287321472634291660854478357885172228652879370849821610909694240441902368749873229272389605432832582451070825759226672141244474627423699742732557656764812086008660542288257812458740212906811030819860325474439611573735505114614185921800196849587076665826966248543405452979710425273156546346465754596434195112788003684455360855371422374696002220412313709694082801020301237290171213231872568012235939822869946431238072025016934822611721627257807603254673161904506636338661970338288231131288408017502186964572069683386841320441675678614739125542497632472414316824153867512431389691060806271730540714935562500162826226682777904383824593271444796646161398206870169767353158742419116592207082457749387460477854941588201195388930521638698865752208331450734442588970099736976037096553044118653676734152400366511482780357556979859858320066194079103872754529969675168475827251634182639760330900232997791814896982502369915503021213290780694077068656483013189553017183650133752151083157388005044330763326507764649775928468593031999706233225546573121947546510168530030552051999129795576218086859176178841446794699427437984859583221671988749443160001068804899088795248137162096367362661290248550490748877187867019352233075768276633478865522632421320160924109340934655646889096403609617067071157524979068172778839404986019455281060529107236636770320237386920785141163953754238687400744293744389817922846047989864502981358761160634698373489623643190729006569316658521740932524972940766790545982590667887866986608667677988033660865430982120353529717887727189934152612293365999962111229554860457775536208127238676379803590960107925882393618122817820607281025401362139485298459894620753971963724163247417390898005567844462573180297891509307215376869697532302764789481418354588184470969241638181290243535276583586918551388592149618837061292408392543913692784631751988816662991996019894759706221978376503306338208309015438893763333237889014641713174810649660560895812828628592891346740166152289471684388243066467013162881831909633865143880643303856443099717117364929294604796012680980304803346404744663095757468708099125671025560706140084596944422540958182996310035443113367974946830325139876665118940900392230953867906420950548906890360107719903512605837224061505406184922478835224312032364115618015296996976835731033222633023967455098621391263020505298366927188460827936267374677549744879966708766726638702416510685926712691650500143560612870629504743199106558261375737495363214109728020125108023205457778874873198115034949052998270126007413766976992698563514794407015210566688102589893949964120733348934912290377251760162245866278891075155333097310680082999678530762756252287142582177037753303465388011838211281331674609915866495174298638555522053471715809866849139558468667518992129453868691613535811713384886905913816237611946340271481844672947273904432924593786863345286627078146651298514687535850923528461589070849415651334563260668932307608743541228003001728795767852991868675638936154765649839834531154458866185386916801193936137245474171096299473734472374252349700775156169086179556380161583075009082746092130213923356292278816186475949188046374665903645160178586801195667273611611801601715632164954780527019567819976368468574097800292107753946331604307206070457640320332118531316338762606488116926194317573176575217900957657484596097379015735686162809970043835188159885487596971697031501650235342569927889995276408191251606199870907409243881879017615445440720384130871051167845120332757069291248340094915533541916491980683518021109217077812520510760082426370023429964582679711982241193920481818949079577800849998942125624007266791474309075806952651031644006077240683947096998061333969365757511372905302406483805550617383074071923900130683204103276814268193404973294367555084857263168560002837813381881954727029280143014854284520658288031371546033899472658563234307120745510206562758635559965564114784349980547179891201375336141114597598366179333504827929225162548883831158610868272705521551777762014873054884379502153935606942637947188599157672863230165823111566612362971993568787304222453054077606723309160702992135898234817282220380878481061554625041689578432055517346330253973240535488839561904411203734169236401321858401482577328015526329871725443820192126078165724640050950151153846551542565796156891728812097515783360294264861618528604373828675075621259259715192706632043845433564088399604315570151424587128881325483219659485137844552505800329590266766318596408112397451462098169075443152921441746516879778048687935558627644215745433217544795095845010089938838130210614347866462222377516792026767008231450399011491469218424789281810200991506170986795667574071235010710260277142848429407942537498364480131324335555134119024337944220970762447267183723930335075553031314575735099392713582197543326228552074995859180188975217789335840210475618062003219523738722639685944787645513464191458334879491199433952660053644175285692238007873793619748373411486151494419780665028377633048817694777759836635073384694510575568549899780943689771245634957215949089673385123676951764303686933895462526506333495899793609731738224243080755673879529840010172280987586341566733904570266846660783951062999567563362541308854733146098157586445108350701372310196807846766612474315307428320848350268712637882638315701787441523572986829274622697460928068681079661042012620111902346871057353482546161103915669596939024878156299113998976631279034368749944471929346784009363717532575455528338673122311892621512210119036657931424567138878946732196668681344859490736113806874687697008487831715505106248995845368892748496183292209099678305937280524299528313252088375822205596432779549038779396146884522043340512123015334522742379356879865098960517179943593375562162047964839264744665162396470052660033287394287348289090737980903904472434295626177666174760682904198649374392893027573431978930997010405302517881185522098013856163940110724181498571063711132897426506239687942791437149908151669000748203317066131457513572315200077182317851550501155859374639995648399699069340530051978771917543552573052173660801307412437744668899867504162835533025941969219156235528043633320573113813956733946669196996644548876840025129832701193605784152981580311617831254347699417732608015546025545955471215260473770040035140296658242131097883022827500312284536831631344808509097168641263638354334941187251220018960129802329595202399155819455038362553199677943966339756912277698338664114085762467914739215070075654283085684792421854713084747969089046307277894098426447241020539602413369614179700606650157174924834218046661916035075574005566243715511895494006778046317980816897590544004829823361502265720643821334501265681962686080958961960196436667570676759056821067531624507643201906528820735265231371391773792822586196968536528120097229553213122523908267679984505800244349834321288193320709313273717041671663373739596010994171683542640131925411577885662014502650463985817772230077499740179855173338179755272573129133100345976543673715695988662675679729707797373767533944861598984673521456645751960651057905992361375636839515817342873541946745421502139706206790922712526361356921042597692891832006700618640264204853780082497170593914710559284890286563999361475458667727102417189671564029303357663879517273504560389420904884992497894095579255616297237390330650363248835714899692407147380380093405946248829766383925415543351799331995898349422880246684386461003828500227363188056766351691823607868271024519443794291801410367243156620512941245047056383267825293181804049529908956560259336892141170181941525202169262085339761683561170737097910078297916856935461711793560443013646737365814914879287656601573858869646042134244612613045570663426190612839243943798769303871018303125356487792362821897781584002131395172461807215864068539370336336415704786083437089270865631926936974300101699180916605244552014062884874920804702930325610438711453885963262609767722749844079826513078371704481556180597805733530240382684714389744425481669415040259135029378096967859463195590436390887399354050156896280965681634330183748429630272775045799931385448364663205761436669291553963275337463072486812982906978458231639338989224616773165186484100670429845367705412385028852582144161284727469478714953742408806321146983205907380440332232866212315906201492750604964869883198671240398445542832442585473360778771986894237851309318008446373157993394458423034750704749662694864287270923293199246335695610349977681625247200978529239908073317549074064532000239265480116242862222498360096988231198413507322855071628465572460932186546781027891451730692028586829128684604443481437174996730399349299697565459596482142282462026329849921739715907186662918534468499980408221401988183361057628790831829780522888743647841698021230570496057044091404109455232806182589643324372670513969398420080685436789039620725639698418334265088673014454256652278725162071746295745685188477923248798141850018057645270891928221920489044447824610385651401950477061837727348883878975834953561809687296401092085096921014410167405635770378061491052685830701250936500417203159135408569678467206709529256044168712569941609984046204571794760988647612335368782341752796372589910457703662974117698625034758360527240571388981909678394810506303636836713592985929965871643196438216986205226275374452358230441331439848593026104922478861964244921988268261416001921366674484487934063926069283853401596858087877347661124823843402672159358777498679501781423835363596788613117428075439760958861887207977837152399037034281314145133871813887915962534154650469623365403936394696428577245197284049423930711867917610007325468527850770295151069066674690872374249066966967770636390443449334499734287380317615581532115277291492302311875016484357491342502909042300194846099723090318500188861244028660877281923487010461979226500021491358726284118645852758197427808730770151762469896921936934429928082271452417247780826217798787411277326492375261208182710769184262045456237024715673027252758165360952180871105789070669547511435160202121024447453403656614534740035550791302841564611789845745344666916818527172607259956236225353487118324953801636171249004881395881649813526485411571803726280398970118015659609991353874439947895571400027109995812299175084613806053118619724107830264113302070898335260946435816983071334079041209186933487868163572873115808682455267102083531732397107123821306422486515346483313973632418968665317878075562923403578753632371794594648334355384218497537330838272936771795652634999706172289790896456706714596950032089698484397642155633970894604717078132242026680365112853070651423007412434098408328559497578156454265293706237962046347511318437120212649438446388076195025182548067080695012695236200953457211133545227821148611209229938135284761388337189436463132105919937778217037367360687531130916541054879207036928804406719645554441992346308667960149803833087206360867518286373671062334255715375506524061021162184984357933497002734039936993934920881669445401467377210410062558791129598062175099893767678201685686127133186975554700894978852835135703740312297849566807606474556390850829041051962403799767726162880221704856191705628634883167016289013784999673992028906524636051051052001709864380927109498298312782815771620513187553488028961652932785627782760130087578570613747639096996835950718920379953825176020668353085139380093609778999274396078207209048912633949067473012352435043986004726547461636376788288118027894490621474412565863344547691524427427961758553273236667301820268447559991602737276232888440835797054023511876147560685057682190841302085286992151851294708635616478183507192978989114690126549932685778260200309831000223357529521364441448453818542856550089877821645761955019016975382567589599384029155278748269364908789949507174324771055621576905009683534653324164890682694611752515580013677260900049143692624476229143176757206539023263104444383511987641901335994664809397128775038714204026424173695725150807886691021414612097521125173843945804336856958491679734351346639811884369576496578295865610211004421279364127649604036173435768213861920028522225602832128397567149048970570009734472938744481099781776965259508315478217460289221549077116885052611229552514619659610451578770808937845927937013302469335242362232527842864752088898936290759333351993065878421946121539367899923937596453526329071333711615620443913880888107996921944969818042768657726280623705971793620828632490363596123464937649690500143514348381621135732504964155399511952805568451001966368401144882867139217540515833338112148148938407506552664896072115966028306474376295998051836453820279159778353635496094247455871667014296266286331978511933220457403464292632269866929235489787489942271739149875018907772467286333705251767945012745047354650736139655043283593718912478407497466076415228451568090833421277469030348608045915792963209900640717190797908930605049668903452359943652395754220057187401878220129151494483898450933036115297853421725178927948947594104402078191863566926315898974606727447642645330831486811312949729715863991309749540365437306166479230324468169132791362931159688610475586733409573933829702917323978887532917665549265021568778049661830570242283499826437430986403681772116808397629350846717217945099885941091095617642137598376397013315327517086290012508285823770179152064288712731896710653369503116400415246467194444817709213586009308100131356234870489414449482766589920043253943092456612505363525529444645557289588521531213463329785073896448640946326587733280859432617048796417544887337044037746047274337345736562199085949559120858828325400214911716504744017332118743956322597452547348829577108948124837257942895623472857157461853461892212179982982725850235216891967851356194499693359628808550451445318522923936832223560049722925580379270808630411691919448474168814792409895519552010220875531078030975256853224174425290495963316298577849693614277563499007497109422655423698669415921527658603746694561372885534003055768505800977007362409981482473890230371827581857474342435604709800116405086535194142894725164346382810468032229497070492916211158502889281689131432634688704788149391553589958543209215769771321940530041934670039770145950079914274371372376350137795546181338665293500806828534445227055570900961961860801703708509291582260783394937922791783271630163480198756854080077947133316352365308081503190658436129937709932134632228368941651949462705080050599689893273069682651479499012594582965816585745722321790565751666726720510910369806224045379259817616561481893678723321695276815868796074101820831519062197660044403412095595510963457874181524460260582107740828298079916149315152392519311547495132844133886780370833600632154863928185551756841587202507272853165518939249265733356506477259003863243719728710211334623011837375697930085048217556152324757562052251262668463898064637529683721830031793967495470716632410876927316107671224826961798063468056722334589737059152525119733338202784683990060518348971732222256580802589788851841913115156314920615051475992363587428036361215060165263515494917155300257416533301862555132374208546302746058058608415028955704834503222507047203782449778795965373578928673001224562707835664579758362456324053468279627378794950771203575079761533323917416793783740507347969000122221315373208632192790221557686888643756185931772852950422278679847806199939607922335756961499776012942025566210971647641759241329915725750418315016080028452051300662238071710172411910072551741836622560009918052334661833421290287625058449586496491757332741699760016801467979317512141443117820230561251493699011914183481968932872276193287612601529208120140878793100630956644199375999191459978200498973423473990756282515862989118663879997313459239893177826225965610585664155834859624038414855403031389059694651800049823020967054924061588829986664385755712697062714507880775643038375082047859803126352447499009048122602881128393575237128900677297965224618237079168047062613166646148352328301354685746522481661225782562532191185924096632314325815438510017134764424166009831206611165604325225211077419788611938252830540947389769390177011834634087301418949886086027479129226258269963896352681384721930874596896063478878099898207955346295463395265470555745722770503034824719102714034258952171418601783480220437689325736737988501832177968073902937889016705031532111552102005153583840854625067974775359689453744095746218984569732965009477280935585866164148090463180442071682341587441800626279229480535596316858329183132971756945147425330737965509327361594582975632261042099121221061511586764842229975460482066274165763028678872067230173921234468936772445616875635236169461192291426791537798009530116526552118629881781119767329094204087589860596102200609076385020472681961097144197783782315959492738979218557564749551408178083230036245095512589926414260247243953722222002428427137552657457217039632294159136028072162254155421411840340715697993424471059790641349705788554187328129908004672068000762047367898140685370782405119645040696210204130958426489080137094530964035834788294168405834216698559314355177793188490171141575842064061495289804061926435551732022154965024189885011117182885024936004202660615673483096819935318565685747621475111756362874462035133516413062169191539537092901914875099653385785944482225660981485088549514074383237800838938437888505830274150194361041142852522446863763174641963192735032705093227054827801293056838841704663818929359314862201583659208172210064532097262663632275461522168147010285506266547036966712678836747923200315918769994278446676889964240455327325837852874676072717216989196021717965055817400033710039963932200763554593154150378954664768713844843774416358915357620286648557042860835158224885345911253339432376709825829197982926172302220280220262125264273872857787470143822715313694119606332512523753944795238398323211887153969633675968494935986950728792116677354707712176791144066587893551714831833283812453587278296663798959558578381483231720094972885226483192749945056007110360887129640282265908640952748089104048307290206217517295118406531450579889500044423134367491803636438697508926375811248104826920705749628807635284197232189446931677764109229115299955366728251510889110683519503318009284982797358778085334595518423079228144453576751837947718076411136214028340703584775844474813047924809088822748264543831996303657146229222115305791539495868166828256262742221678117682795281102791820435881993565530251315570935763226004904502919248465390201005314555839126971489779320445821740036144040664062292796937169159109741628346320734208768189323389129789650396407091086230993419828603054374498454699039487268210019894088723375285900243965150263399326053067180191004187091211752468422141170281041002116459942745643326061963106322528432191698881140924594362404113702354120175953533962221251285955062077526490558761806120312461101670912640204929932445086357924157120184734395423825440373704729652131521969073431130061453327669309176121161848088519103667214178214150522212833848207928124927503321626310878550029750571523450411260223953660807025582704955279693271853071309542076953466066968965887592781802934749879447133612821924699928119208911478639139699053515860709428125294174782273165162533576148120024525565946243348270778271704425197514827005488800365040275430948171553840031360106033413078074540606706565198749574439128575464908866166917518539312754786406450290942805524282621113744650660211656961950073371287803653101873627642911916554961365402723082070278866851344194792074211492104211925468711117265189818564595780184250728266402445305542396143781157726193820736588047772477680846520500256227169553411534842858804962684636613013991328512299828123435513587801204470893601981242315704649932104308299226926074377253447245104946952460068434284203726210189889572375733019995969121117574406943231331324988997305510845110208179340691131216042746721741962267709197065698185799031879881405908082700764386686441569710092471750397666423991054918733939882712876148633566701779965118733115958523859401784133771191522640886983788206207235432041491608717425513482005162376863864635877679034918703115358715953804421625497808753987021291387524935354339213363655578383287915271518816334965163367587863390793029040850290689416236126663558529767901008290435473954996286967180061716821721737995373566589555939256689147338074895460969335243690643966848043992128304473274861228986148789053552811817771171392701498819332829079520809325366735184741004059691111291127057532958411944007326395774771543782720811527160984028162614344912703759073318628350442631436111410519752858276871236136820530399164068927258119504866678900980180723390648739542967201547062413853974931421582336636282035607223277123815190396836393602757357574222919646877857095746900376757936961108811154237984769181195712863671173062013321269261625281830593456196093219546042466682610817884746838032764703669081712326726947174439065909950324154846143045892174629834298291328231048556171774698366322326107614625326359687596112590218820192065934170610908135974978787846452238097293965838304214537746932262273118277086048252218489296265408688849224125757427641831969745713451547995902630391591231988825753563371269716178064622482445462368166473824287103212509966932636646405247207341387710575259195873212461069296162587487677056332055036250375554088957741059240412022285920108696872517669726219497058075154478432878234466273526279566854350799933669279684037963641598740277127613141171751041719496127180894925266719053908309477445641922106102498269746658699274443322540094796155502483683073201941929765140356225670134838187468264479405977706232174939013254513055975250181305731967617685116266187911732301303166427852878456412121473820623874710632931392710938571979124712121010146913945794692391639621499869379039176117439161193318871943259969367457533977721221299178257385507798397311623765412226909488144740260390323456356417667562308575832138064728661408706597057246966763193244265969456133098933430091345125274565473898834748638863405941758515814598907943332372158208505868721261058221677529076270689230693520564278746716511880174654340545161732734204530612603148374665345102593173125083304403440900995251159999891670130390300089935409713883979664843251535689660385554151771131617989620966748374290968576107911330734242184090180702114678477794607142284546627302653473413208004124899002537463339636454663703054795218396916169066149287086044022055383775834138974475173453098441836797653538642069172053667602714100982076177611551176562369134606823669520651772098467243035996026456767068130809754814330188785095507871215534941710280754877101994233280353172317105449749022999155246708821909473634055174700808870828216940093944067359022029358937831033735402022137100974086976525278400498293598212668016298211415244248837894327803155235052837230551507331592939986667692911770801191927273268613765355279692922274785070051570189736763261989037590898166189821774348930899647210103654568083028574744350260453627435712750471182199386406377777020489855247835747952223393553713912212076894046860846243716937865701972002827468486610865654026854186661612450334378775695354542071453593483323235295082576734504680478406482319624861126007090600982448166444652635189338595271312055641732087785083611408958266986465058800209074779181264363186316047238436234305542364671880239838641692369068932447377180756744220528020330901319579402394107903419894146211637101128970442469158709988376252195506763929344817264551236050201265996119307709151423857877970377722860743905404906543427257819711243403705857844395144702916542116513153222162233519196273293957606261178873761163051913722383425506885063377669078082844373080782217732929111817747602074149709493635607909161668233214223515525157062307568759569600739432990098187413522695013692145457285071934389580260133319148852570434857686342742969060177115681640430921480752201427086889833441024869245711569812254632076176357533529119369092766884345467128074339490323559186965943430424969462498353923929087113156222153834844969334951183289084894651244152898205996419936981237150414175955793364844128438461289236044232350415650047546591931905503242209869635931178898643964711826400943240750706362503101613447408851512049730055509421264229545287915681682423340513090974618196998483630576028101822806229790397433218907009583492467280007793643174612051307073956245236437709567795691414832355629636363100775326072873509115226367966868853640396131767796981498879966848753165431573550187201117552924182338137332581579068884015721799029230067007204188391567173958885409965942718840274399386712812286364627287669662552143496051292303759791241213946439708870660643670689463094428679571097367685964643026259607683702328918533604073427098548767055946713554280547016528810312820856383334909159082583503830506774662938420484733614089873609159485595630342692061805940308539471668759168021804173246843090399143172324577004169534854524205564105652199824697455877205815413344216082786795739546616391649888547704379729250275927383125522073932738775237972166926711971913115434705797506453170452040471726578003128160763174767406130851009728459813426307979260176150365650170582079062973744574468956953289838169750283976418161389361326179675126977039262129373853105329940190360398211364948907896823574801610896989185370804065992647500127104996614611318762218029331682805554373634688196289976343802410026492400596127899511860206338191365349286050370324513960309292847256991098208849064311574950593661027566991969957920825540415429108661846729242334386187291340124987011060548927256972492526346106774959437438841942033212036805584311650934588182690203014545523079660200731015739723294210044649152531198885674978080670734825653660381560841409412190168436771920084387644620029438698467859394777620635844988448916578900739034837179297912774471345207573760673077443830814661010096780416567652991692263188142336476250280838413913637070917090816343634080493435172513016153204237310674528758762838696735229360970224047857220519191454068087531434154146116122960376310881259729083243259847735934032284819397278274565793059795311493582666508801384839072063861914154187527783492301864710001601502187574856222327796297583890935876966647733970953082674034928692229490191932390932329237818066714798676040446036184987056281901297892848735183855413103385960626027255785616819474588314038188538641689239822463941864891879287828066273400351772182369694096080782520156070756781387352560105607035757283040554302442641442331373621565038384907802561109070248127509538371597902329452246070092870840626864344119494691431220441890548517665412309467071305659618352167089052940689336724618880439752250178831024974779930243434514944141290014397225856986913302869321495111086603553418175504010315394779279180930960974315000359375789811772334612245503896086339456022283935502453278793744501005626758785258729214819806487002190841676411912329512077617136262287751789388117780584434365080945509194274275600093307988466936496291426869517093777187578231469492160540358065536450984882562213160456439495981495260756585881412662501095305291773673198652907116710826678620630912301926580678402968488420748006930136041454689853589509848544981281844201776975161415992465592651321877372300860670760461923795417471285905614253482225843543258856967019995900510503477440357448327990507816676340631621022845211925823032004332540312830903300137041513205587066796394385324602529220251754389038571030677787755221974850952535295651067125554656798578587337805903753628211989297608579352945586142904234161963236132958942042477617765548499769688176853641123068019958147619830054086642679076953522647455996849889210323183577950896150527183176708721372207761095440376259861167376237443652122259380732820809252245664323769528836187687736875568028921075778397559232424990827352096206787170092467010333507846840604987379467818461256425072548243072697412543559694734159742974406867441904988261695046734546041185602611482569869385701899743720088406593823353903959344835623237764746095437894485779629349999587557169671607749704749159313303975006596346766114793953034877822882046247757842010976413919116162406491273352728459198206140045813554462910179213518915804251481905846459782330460203924269569290613169962265364230520226034344123193040287625243685110805302214375496671524492289513546815275460896284431681535563256603965507105639838208367266208210391250569642536805496580980200800289108546662967954583011793192380203385966284532620263446992511083594747165604026410767778750806409603556203053595168537442761148294177977823911081903488431263104576246527402359552525663157446664127417468183278030061143428650219052592258108498674573419659182426408714515965097616999620178054072635252337032262273441913497114163880864704572596602039228784513468161573418798458105152284802747952900217392719165931265408266906207408783243170800064109641220048384721342894588739883830233771934443109751805694324264803781028634787319652273248666573980252649760577445272820337119595176627184913166598360126792741645912820643965145335265674243180642262348119702875406126020048242475849177879001051010218105817287080381524132560434334562968365311883203536192705477185069021227897112798779734484782034492753966268169803074294511365082640107483216026993982781093316188470949920334037278281790228613819129861900150704365183750808649563780162478213181751386727604621253674207012484026296724359787969528619582128715290339760007185792716839180991938567148732150449986056636336363950816195256605887204583147029956383769172120249062409525927732565056829434074545829954874831229497740243474925708305673402785873980755806368574634482042345176673858154172677107938830860863862794367338201450009802364326996568212538803345226400503755338783300888100129470802789203186662025378308069918289324217200520250461344018070212555423353506079494672086102629617199448200125851400182547349016112374870038982866233076137540546675077860975596866874806098262743990184582545719395811455545432347152129896888638511383482195322060313556391992371579057362060936244625664517499187924650226875440564423209656351428776595348916668221741761481340848563106216557619555908461156615443645136248995695865960325242839283172243856970013442448083248950760656526753021401263142013350600878459403773292010435382704535125249710158023706246446822939920728676277429422153582248137033882399156769649162884247183512130630493375806742488955261250776980386972214999084023780131977766878985565914000000720647554243603831303379363017220037625237066148080150512305759839790281693043143267400257915094312254699878079737976299256553368289016050595889552572508266613072419475103969023313997542763902893188745692901666347371176925960911037168295438780605714183448947257322055635246998145140155045009870309483253953168399909705771788773442584648006400195599688527861042161070725515169292234564125032223319313602400533169886065698691141736327341007281139513448417331652162169823296549664597854804025889069059389372830573025475394986501727398765236916168589491126300369230623497455619894387539467102423646897606646728336030278730558726203261726305393571685991500061545940667021562286746667404123489768793871283785342556522138169783089319931676528517809012432627963167385796953687578159745912335360989294629988440535728653860914766373880414438242330085663608165692306550478624327751901333949732023318621196898639732379656897433321091300503435191725537382165505080312819493324342397322821880364604484555060525549187506029947872192395276152515190168510140024518873233325501740924135160836663511898564485034895877744579296083657361568503560479260699806575842513213329364447088804463321118986535213460963182440193643560251942529326365610641533405575574793977299885397871988182883778840325504877486617372144301640479805128724894808906162998152257474435153244557364776369950695711507707207637823274907108359807143193685958414525795851239336581652037858964322269921665099237707252473714557875174115358986921492327583225048528467738417843199773361592619065975372585607210385315798890748591061977282900317539798349856789870153135910730820909093761639891537116192743857148028523520599219228816584198160077694690101483474227754581167576662005127374095576854132616953204867495092456385838245122696100524740619359222789279121063452351341621076143437721683343653533903139656087159221772021638806068991660300919228450281836603579794783824383488715729882534976982702242413666287197161465123031885766952464963439239210178539873428718597471336964517349265747082758734623461733786113276192077373554216810155201415737633283649713536734356858853051605282316609065232590899694792172930451579607287639984211229340167360402106832997746470370262892459939147414460008514567404240636564960842976944859908725225895400549350986417448793982530401158931355477625342460412764705424474100930961327541493031807069107577706558699595151080616138279047299582002421363721860345039884827925140307970546107089400106350916505366082471124867320421576845453441523294065001652587436983701681754204185881870716077275420631901299331483433354551970682550550314194562811387727307901236731672294243492676777571994055163641214869447505353887164281762984042895617751461480489392661659546525381283323870374342716886040023195662572485729817945768751899266036466575688018150439436583087673373948993700436404901835485015993732576346376122307828017340265096315616351014542252229944248900268553244392653623400300737715291553874929255639689588642801417375176558473788361965118956267198350732659063817249969987860197152068573309981669474152298103957906022581368986443756500953909670987673956224768372043329176533700594029077317447900449967687008070041690559234758271780127550140845149957224634509037141525230586472759353292934148306460559543697841652044439309205252400496086672514073767841105956165387520716590935925366458753413332359144730827669213535102743236089840607933228003597835924718358494375110466003249283441833926763937382336787913043371331245721866830833263023242983161545998604893136655619611917618169516523169914438568593995003079035785813483786985442780454566947568097496321856718621227106465159554489504389661451375513890379635600412529423313416216841840703155287025078395253322123733336438340133947107347950687702324117099798838266080426527203957451339604010376988205071016712366795874569161708912026721118172645998857194907892299091818216821864222633954957252501546931136644852192843653150432269038883991108424477792709076867446178664557157619347764642971893332613935508818712869344655020448198965154656068212943040971818476065327818925206377502838757943241998689808152802965644247359645701637745101330845903131973796807822748210921687243966347430883914072891604973221283852885876306450523134903957739059258364764102114352813996642050031381272761159018538660107201426479647535402297400395679809683583704079861061665260035691206299946897162331230488916220354036587908114579031756981202428515483201715286942594095374539650991900336634263668021682325655837081642482466038044330843293708497900573914384977048375290043521018976877740621771085232912975646890946037747813629228463800730635114868731430806694415029928849494273162305277418978941562112745432143616801511731485422175793023047587762086337073243615119011071606486076795757582876148526572468367392435637367379128239362552096277442268980297238529816456303098226023211751652282285544248924488704130521926194856353600537102348426764827407330395047765362226790805845837311820572799538303374342562592146024452174297074327955197646136058683540065326538268274080777891935401565087944576747225295585873936563474767821052589178108040048394923467146232342647070177388945977445136567504607597313730285408648943732358326899568285188223674299178393422818235939283715803213412902223810409401667298023060604157420288632660592522832640829012166515485391763579116252010081844412097164648487451266111931155679078891446207957371548646664984556524712213434215552322195524516711793328145366150767577495621808241565930320607987974556722338585676554386756814305760023304236062782738472064486955387134861296810308687993734380978059328045877072977125184245855254320413930269502434814695927611607158822082699443851950171237737256396674024470509279415645261660596270805436663132037140208661458241916636317012977027534670582351719305532882799808284946169559911096406002093838320896302048267515247953567451701747065256207401458656183172008052223461168896596173799397937182381095465069972450495009862965610667255750374521921141146061900515281654244195966616107176223141748318424174440827097133336060389836192900684255048664748159337525823939545004620548653590781625472607688169382657860472202959479810243163719052462064386063794232386639446340701337629392877129150589178148343968574235508950987681464559810333690186778008643906964299845234904467875364088480613917016001702347873941810244469549628884819647462968654139806018308263127879109214756004650987914411088856595631516095276984562456360542088483005838448519201811654926380999543581253340921673737082474491389967908510925329593512458283026890668706231795427892084238353532662752408436264610813422298992802076273516779510128143783905949288398381698519392729833222922256659337961021123915821556332080895584005246710896178005896618807164118392410297406326919320745560758477150360104354960263327767565139465140673521093427892580248404569898025617629183831263219616358444642500900495292718537676644367302211952228701238120562142593423805500815321061353033939635681135377489459104975748738482617391410536587655848923201728754153084208594352477391175199123797085452780593737855334940324712509031880776511172106698640203979045389179944475790788185205598395925592144924387980533028989743480251107949561742567513702810157625574895391220468327710171249232259342561620023104978993224288640618132699263111534711343743622265993598106198099501096285506627220232392493747287380872539727236626269447187426002633754455696009174099756465648108171983524148006805856307682042699628022715088447793956913846372586853639768640241589852766950735305309601402432090942121430788045620584145022423091800286755500366446739651442019526729096254558265272485396676384852638151357340222852048790106356393104555677593739964409403313358273148552570965030935825221812094484112836071402067722929687788316659359134108978115026776388770064738989577267918917827829137219515659745382161418251204216062628808767976165681923869896001654634694764751790809713614149917482190967405769891171763122763745756470991748715738055580569809028572899707167959539073572719803349024799119777163035447102687139151940791425140235540560250648318673700746219152292098218134855745500418805262425740643586493475414160871373379410570342885662119326728458624633216541128446846249797183533137965536894091605050005851135752777928810786930374267862431090529237817850272610597467327598096055085963711896234574994257909789928453287727277030340855875648484611311901064625810194937441206440080255254522394781053637238109026113253513538595005461016653296325466630460439705171601693106994446496709286173262926043347635179326601583125721699396516662257207703583276507054145337078898665836407142692922118258333178265173587213140198192080780699464772207280244031775885142304142336512086908217769628529865571268821570360073234946941102767409948371000832147546736980171270243398062355914039656203132831501903712753148918251170087107675404969152727682924698923563281880379711949468942779597712631014155413901301785309857996023452957662975286207442130474443162449035426101897361642096808822753583746205261704481610055640943938111743671679362183303185812860788946832126876380057739158629038045506628499613363769060510520754433629037568180610312244946158514583724012166851376262597717080527919404103214729350550149137313529062497100585140559235774878892070951092999596811263459737188616695008771498134371590127552325683521959107644266080327932627128196810365296667946439625970294526471564725659544536498358432744602729765307358171244836401925078965299325859084469636943186658606483177626127106606895530492919463212497926289404672435639791824060471114924617285499639276974955459741945031004588371252157974998121207266129986957120536799815398640956689122927166120830301569723317373811129566244515890141434073147388440482813334672804275083229851614799457643709912339411255816969372588974334731971958343364920517056121739916970156877696686900141478834469552086701397218598142965018630060090130362414777428430713238783298801940296048904966845915832944193840086847635424029086318161988266699750036210696201598322185275338537998042235541951702939152369326809459127331220742812530675440017216451314464643674795123847046934661853545648493891116982439357906470440395286067835539603707665097142641218527553168936084779320571120362943827607046628460708350020158927042170667713081244862570297961669730270340505671240323833995009720752162796917014705740635851222490754624226595047496243071603333951078938462648685702470556201937515314741839598946658362141278637018067867755505827349127951398601971684755101628596339891215964442210583666011467255703555862090656715039151882816751105033903983481992301352260992996143799082906983536360511796168547995494896841557857226582166145854455779994535500536847942903875044417494409526713616078004881883933521127926262088397420954167292602723706943184762095162565715271857031336239058214539752416279618392162519085711225019402949581452507626567734381377021751941801444405769381882522972901324877034090896150439796829885782199916235308595114317057414178910476283937269377959574016964241449532638437425281398759103686991735605192779639324231725606226140467650689907994576931545365590615134457876889658338173293174001753679956694677900691447940301310334989822863249623695724505485796746516422897690784484079647292161235946558168657890322603671358603953263533012095108428894443799248301949585169709578107346952216671810115025000841760981628996800894632468247090568657565841753613555215705015869746680810698856463528996936778910302197100456211774364749512189371520609653206298578621335613852197038548810945359402926438581803450607056790420111377063062487266265141140107657319002276457826657849654863188623791297292450454450165071453547004678735064998351069573285070825093767095009086764321414614413863710152333542436403768826516581016186352706795436602534707664494962842461541934622044338721734270783762069690369038538415077985234732262565627429220638835469203036589964564028297724389732420161177796898855401222709102020555027323811117135936762338594976910467851902858157860370250543242373711405210155507540178485396878510840771133219268116619144657379430933460782289868907796146508201215328773939504299019851966982600905657604318666627095776404198439817807855559129077624865372978160109736689384883550064479462681623136971233406209672200301755652738615848592551602043443989490668209443051481911855716645725994349095024085425247704310614444272487980042700719981151944546065930789937648994802336839247322466230334304406592427810494462582082684862865234750791367401783310120272489803868586800018265602199697227238164933477915231895343811613347317921047310302983854583048798226687429337659901732208206359700639066750149210125187149200090792090607701895174293437899912259765574337835824244958310192112171683000595419293045418486692705623119721701502225779123105610159627407840309922099889859664347975594182798686723768043221054662094534991996057161429088344191607463576289429503253107133364907710404308756211303037634057398051316044507382466920473550365588134189043614439775531873034056259896572667429211752744069059032827778194153327741234301579475827810798592624618069241310890519093592176048803698956609632880315153874953759312142416694949034983679468650814340342501602766910066316930091022929085214326673159127185712276528290520197027881255436418305949531518100837214750817679337420234537777798778025574424984515798802189435194990306686351349372214098055201081149339646725896161930487830160297661208031707670660668417361723932437274456630830938625755690672472529956568129288405929812281295377812473398344227240265593757184833213528362219311537741548465953447422634544934497100469829496361482317060590197609146236062853821486920194104764217763110074230470745362583814649499257025588068314176835438467891319964738765284652004872478809238575569048052021244150569756063099717471073438708239144511640562605954733964949759970877942180232662254850865884625642402357721023243670756229907753915965101709916398048984146168448406800278905620893470589473184996034302511675302670882389635441564709662343429417492121333426793875184804655728809814694515325548271124429678507642691708906498052757862647680492321963203783051294447325944205881756784671949317879679828124453251409194015356697577793698803452280017435486475642014267675305737363786556369270084142789885792291892009640491740455705906126036155618045164142040274448695713683593119215881220101056351344825576983195411304877316741483232567810616598218406280391985210558616217868136900772002813919332063384926015938382167398425464588262623439273913407930051454759934072712072026131895908886259995693517213851070152804986145573973815561237118392936539890418214760698616094763823781199433978892180947970703438244211598706146885878418842882549703157755753088814720549934850979783314813882562279889981191105833415547485672850623166434036475607709163891986487424467432227765797806858613085745858523439152912301272836817715529364410561167224732709787840334526025359118177862757739017282119233386999307145420122160221897784659868546461713982862717891278648654700732582653110687122351582532110380164146425196111873515968917694399146488496011316832351064865005594905639092571524941169144291207402974553012629475820586944046943691902656618770740696910602361665672060565220523405945499645108219515979437915869304063806497609557913071269141633369101715242478903403450563613619630209232745297100449746547429826618774738701178494235540857127633796613534048872687537114834137987839863406271954808892816135792528395135579422809689320361783376102104671226030518399730459790839882304711337939235715802126994420315895641380523917233084508190906392974983366536215487765833375782261564597814607066139834997411729448959002276378310842872705148190970658975259450292846501447416028923757561411275920151534100639910133971344655437693764762336443621280927588463694624788560884666789498425135535276401853474291295129177084305575409152274508546416124445772077462861535914532276836904299690517567105851885735707321515233517212781591762166680405983797572759887317899826719026397787876230669366002372870894691999209410188812946367248655541979031106153350071767633698102972470962099775639348637910428728456956479869723292804063635705597128132081348270952454282441857959052671258995599555229596447891916710261677728394947454681884350105004017697029647587792862056822063588780748901122395837609248678676312395364385219093140502238070531294049001495443825085426327244002783730203630285494476884351294299456404239943067275181174452335949647935544564058079332334463778972125280032356276572761510029103990887032528617688067989160877500601721388153950338009077563312923595943341396232368773172275564503918461703240877113664124013609766613107353716072187788322794056192435765150313675159895174612570583489442404620293070432257520542082922687183537561966706964307448388235249190410541568066030313780743996316112937286469335124605294465951217184118274901946862044947660472031434954455341913043458153880674881334631640141454325252547540401900826213555686619494619335737235968061823119218398300166856368657562280750614299084456080699902474226947986663412262607781254893870989687822148471876071059122154734289869220980112324477703380901502304095125653592234426209568716252719661526517353410912822597831692747969548914387405181199307769258407300281769261284487475099529988681402663112991068158423559853310164513978913224585894071716976029183899601871565209275034238590199040451636768699837545184993636039192622057337892893800746991138348357939180070904361107775865548954603741702447106115480569769701993481695918780922179776951566336722837060085287016394474731123231629059049386867092279098920982001250011625311626836173936531259376571425131805611104035433188766233678262890483388154767049419575004622167404953069679588738124653337238970277892636345269755726593303210605742779939157661104777099943540142999343926208157414244878618412036502005142893284596160106169321723802993763868636984668237274392543762512868216617105005274454763754984200195912310104222128560187168795144964119149540510717025686955409149608042327129770279100355244134053008089480496800580757626985110322910318176395680289069426812696128077033965373099874406348216293362149057611212109671359684139297056119315105484989439214176931120170923199165978612327063056869208760038008526706601612665686381584725134531051063815422215095058554447926071300581522013122911700165038918632310442867888082350591916531920822794322563316672790416206553988632912866071878314869466769567262510783323270912454052995422880832646498547444148277079589985741911497734260368024865292853511766405673281049244047299012104821620485180354429810340270502709039284190916095774727345590164651021658177605946001293521693719035527906036337843295569876350578017265281547598388158886065971171956456084682419077286050529437885184127991955825840906978723481087993615285265285070756452481788315945268706190090734152035747697872448250679606441172325196748259595963460452435934190829680131671444610423508537919368905695557338613613255112090211389070724645205093553277056989114920848414746980421704197452070010041316840820008325775667529119584072647533696405030866531273655970265905565862724839800694890023722581560665340666376251296992660585582634105905572530486643255637719363922036940083484025222801201758839864571176769915740081752016040717098315888462691300119458791657036837379286141054533522324548166137657012930758827159149150549472127284600936962965347088679017055038247736386038962983719663580728365075814593273766767879254819254878611151592363408059860804793158344921819625270413023686326831832054989707509927194492977824230158039206189371350939181870704137875743542673610411353768820390405041175235970250839688193249828511118276075604051049569649092616926786665812472340133657183849039512969790015118283169154078287157456384065588446913640047821965983324372959462888465259144969113087412907430276063279811241641097272797318774067372369348446009083072774140412855135643561135362211751098637303354880565666368639275319731207778687637392726952519225518179230952605866251643503355072388479195050738855747767141176517584711767882054085463436719212312586043375877203237783806426110757673041483108869104582730100330089018939294102770227741146977097877502130434115443845810005828166649672193688746184442197238053160485129769954240946959066318623564373112083295191940680407854920165854440193622815562344439718728033078762046870880959755882033939318323069394173963466537457742997810166925921668242673129563011062965895615741097833220668453826755694753179731284322295545892359151600207339928982057095818687334528900218150107948004620740279076157367133821548260007050712381214511749324908007824714234225241888760215102669687012036956764314550239489467211078159758684442617956477620437754927803779902182234961288016753724264843480133522490852853609738919317859349000904214317052861728921618643784973534445946726785997326622527309674279663290982657646087839070566779111757283163704421624021943762568513460236538813270215866618051073569457260235243187493115092595745524885388395296088944224668570655702561607094042957162922736576055493440400773660086805984163499648043964845554708619202200464504606764619066671488243611956953551270317080791919734201575796750560194529540169680337409417939037572334320652974480750883272710200406399139702670974883545904388573426720600186223580870919001521570262946698353053640209838457509021497501723490303467937206293752574105589979795770947295638424375969245071339912491226766933608136088258124107259276050670890244779482332508116552229727473986282471982619666387540811943951210088084371157647744787885210029001926233138591004088360578938441674760312170065013934582453693820356724940467568073865348613694624874520855216500703674691272645706540887677872500819163440935499163231175627418529750988013600135180450390540543039602287594165062921359555549243895755190256836700953930257775309053450469457030806422336637677225199514647637226387524381662738158269058634622207592874479801615669313693725543344305470094463516434536890721379627001061603853497920259238886893935334791724529493470225397173224035357103377272515930918323902960271305124547396816878118070531000264885182534876418985049751245716083317422157946340869187840242382816718330375001094234950715228680230077766149306872140414477664762479439550400082331155295512758588699364931929314482881620592534667651690107202033072612063286241833482886478635728546470063144956849150743632362059262257747028773318001356673825847286789086679555216697108936168604468214317322839047270657544653121918006018866528544661870659713584970332015297978510161542102147512118456425677102007946637662155950446367378645863707136072794408365424212393899493748132782572750751171084610583710503059629685005962135332917036741495107279318188863466022092015404462211803073242158647263184374956269179982654921658542331675811485360214523530104369615705567299408980042048242251226755022546192676022830238860826707206120888210420743845603056551307016676934184995007004997032944875710061821245386573701356085554798354406408048569520317288438233099435083899612765061248441216630667006675357044286249052804145294292887972569651922054991495100991019254412428573142792582598669002167299511533619310009878080011363691470414446349124472408977245729428010333061625766655040918767252666025750610478315390682565424236955628252602050845390052301505234879766671666742912433957544287812429929566492286047748436338771790608473626975171751534261489789241564511680339495018752100162715043000133853145020672390961715573766493546160702075718599466777277698143180634988783908669408813539495690696903938634299294280597226957396949711419825783000851009614192345026214503303175640908900830280785636823586710754270075675509317861012837268400950422502108718479450112797908109937506610879312050632230979535544108757973799770897727686424936428562087381510759322166450386655883745864807893679742958276002429378817256115354488759607664371230038860016645847011832716137517394477684600697347258980113412934309669926059399715905386223592311820620321406562901467772006191511477608317561054432072402718871450266360883824608023773095601199628420058279760094455017030248656732913765734742754683679269933161856792019945570190862765013015935015605259191251910181532469036182172196299726392804184154181631108297295418712075885793185816705249110422434584528284980679707472099015434604147979951626401312314650718198266310969506202390034736720782876581032738326390309760177736218271643279630435472432634643376922621810485399955359029895868489106122509511387112977450964140423367524687822139614200885738872926051852292905867971175356794196028098469496126193965085612573661757506143927003850310033363383475646092921129718526810444061328251552151121371119207663321006862827662842937655648158591477099216864843423583799363131103700722068382731748351569325505204672977761702910896379508974685423077438746406299653239638040631773317656347636609144910865058097069915279473899308478919687556314733456909317951569644642733815491520185944901902999015590997502300981119443773558245408238322721856612013762535734726881711190306326544107201568037824661732349252990987841960342996742946860828478006705244141699860939968965451182960091002115491892899050430897045105901881423286283317118066880245231889594580861823504601758805347879010536508215824118014060760264283392274206115938553431702477519102189795437618062819197453042176961987777456003295729978906621918141951525566979267265649906767615995540949357702110803965579314065711750500975785749288889550145400109694816939700580816029825961880500689875485717818448971068358539948674317422271470624366579092117447826131707721925065160951530153485282415601940080071093571581778208040927751905507018204268477926058417932352293898017453066277085008110013221398606318408690944669260278301741470661138786365771443123183232787765808662592068373511830954243179881482699990015691089030956168724055948456138202939988379021105618614673918594917446020564235593502137562521886791972626729356923871162153091844022683826685160289326271801300755258247099770877623113503905058898766895529479789938765797024607020164346121102706832074554632271128946727915519262877158652302565809315136362603915240511074029138516336571333457735020630019413336152051117777790385614914352181004496766120551478237309414827486855803429125062559646412280390371012474417230497587739307875231397815336996277960617628094443940402578133821025677826637336841796758872150269969990271868653649254688251694462781121088688530977295303297497076393225050031239824576781219484504842485652138951814868832194042913285295173250672493450323877800696303039004534058593695523209609204439160167080379030638044509359427374167557405743270445897905276975085784389718900055811431596877633638925398272377840511746167164731051305214861730675613930042422491273654646947645766259127078495788959383103971322823715707757703217513531147721784954902895033654883667739096122470096116551275728920192775088499449390829359653251511385377830180297011986230739692291510491557763238267303059335678571102490606886184447651738264709631493598468523364606750170066624503037676299583499074784405759819803780064263294603581234034970195506163357871515036949056198133894748842096165277482293778917827639222574590601246453233383500805950748694828216383982560200048687693859421620819912277173591086702405894446743303406025319149162371797873730995323832921627241816943547564499303619107072613568333629373996480669490723145305348322124443355500059911420383234678733753145564569319036446671167639477637267935507895507074767853650830319056735165944376028717443794035660330506957812725884183907675133084334954133068299083291562030517812733154912639993029899890153328487936139760327787706280223800362594368871453861463260959853039881527760004839238723883413993201753806230009048396737375760327912779669219374870878638315493333184896241944393421302439808471912336167447012073223100435389657465731781392527325281383791142456944747049953503644568362887840879268243468903296050058371335569386792005175476930383092826175937111533339499034219116574284918952436339920526997085822222126165027781770789049916887821263818458086934304576337294850253961261516643500854034773758375341569499514021671652682013174218352199291719668048582770405440362643374147717513558586840338421775441804995322372665356672951557273240282697526554795352572383965898300230856510736007752490349096579665419738491085946832003299318280078564644183373427215447502215120967052175566500498661006941485254556017438075743426052094467834216619876317657973100838071802967619998302007925680343825639242544050101616554665013955470842066033999157406999234833680312838825535803178450000003936436757574230171806837770801539256530934488974783269834399960839538145781082212868306081395481184721659166081499297853980021388570437644666667380541619136857554421711007495252490840265456078972736575214853738744900073437057211674466441598215171469330505918818928381980842170081898546275807177154679682323682446300651388753679394808812459441672423105024123674184937559169772084667731027929169055978705018436704561426382452418236886130102461980976812501173742256982892354538726048051500018856006222037342562064870552384644908270230566755202266901599618747339334691003035512405541570368075018061663988680857330602526678092886838495559639328758071453501917688406131721309946206226207393328337437285188227209257653003548846061214839014655225431307835411358741986695338927494242240833537701825612749034035230060100514668935699464145846669521909409282532568026219412646849076674393637949583211411041305739712771516210636076507261257568289392097048241724829797847871011100942222843396042401717570443205841926532686263723276527658277894311590683841499785669959574062635414394910231235036990743046669092092878711885983908934236043314268685677029484853736933313142682969676185469176246923306937679057882235019146372294410794586701221431639929781695473851430274182339282449595115912006938650941568223267723040769974487555514380757186804949062710544772854723119626818728432762873064009118801111082644566304768561864875252891271770610580211182525184113143167172724223257428937882159261283130657997691961875491366589010981656910155194074569967702878787658648683622385110541491606075566542132303128717018067683223835654751204662700565424973525130756040608157153625270653867672284627507692740205139098566998319574498834070651398312158398757384552357450899525710773492633111752407694049401242013052676114509875936763234604877132216886227681186863344214033782271740033745214321031666783691450451008041677308360666108245540306673760761924107291207614260268037682133289881319989728013947248309365762775183104953281631570297723153236235801433699445634735715200897906327510498989128004653801323231567728581323529400157185776407745642615869295857359724163531309343035654687987554722576433397415300365377082474568678507732213746158948248937112493677121334243124609726982426689366776493950226486198921550940615165655152116126161674549211349751072120784985020546257640615333930251638757956738211446397531995823460523779257924457884342729713056214101609406954358178692853979321441224662810761069513882525686987716885357769500203773369416042858448242926113202230571600814726020754912596124382468167763269196591952515590911722429358157227106584246972161726738716201975137117787951933949814445124080047159267616857376059057636241858889488277448776437739740261940276386821689399905388666440892347459194521708296132361145427758070177852935120715834344583490094824928161150380597400428850574148071000919955574111897259712711951153459716768630013802392653952270145331351995317360059628417746744241252872957345763892987802547571486500832254625498483543181670257111425974738337052165656147050129281387777259319965846179805406416331369999364073137854560435705136086209075585971474580787872123709243094915650995631148800612608242673278309139734126893947076359263784250759231959044288909514844816173551996209212655813564793460044808582653041474916969694500327897378757660747845087541549026086684470365437802090407500079898777557389013997061635737635096022649263034800249544686673120706632932153911411958350135497433094859026519553619800896860219729778324910880729207266947154232693771014635276625480293495405327726463514967964568464713528489013563374356514496374223738530830401240533970377444392431493964911010551760089790186301080312921912375794013491152840969650790252568288130451611131741152893144875425296150168111679569850869582825448307053592491470672131127366329496642244409852230041140771886235892891649556151515430536803139669735432609395717492935917975572097837472934607040141393727482393210120186831926394892226773413473900028600340066380591575031319997269050620535601270435228804787154291688289327963103326283869455143421638280806189866005772112394486117561492356146514941732784243439843287255693230050613366382727771707649197163074181567136188257282940727642571280096988616170261278923737827835002897307031332361546047956210838176023796374773633102652330952285027124319091080123024782239125115483820833483227455849485512066033202487128840623907003129857613933883599433266318812779527209390989449735424857978265432152648849536336542059283715747935044827478296609104481324880156957586376656687200552313511283465024337917862454759394859327062456562488277152218358510493518655574080099175979445479736728723981811201585641789379753388715060267141959814345268658087123370336463881050501040349341786299934284512340361776702315711326544556484824075529928126755178319144155069399758431046113228067541533505116302852713390211381326540272555260060166394908311077145658879727388442939508749961979407992605663629453725956837492595402052340567972345937805417892787418244827804229382521943042205582505619468251554911668306957935085846370402589013297009087012105216309251002026685433248980809143708587675948150079663684643290427386366213764492882752515726856428587025682428795308400623599629157557464285468398888330927190028154723120783647021325905426719920304586074675906208331931899882169451192239376335274196668162743326617562834138548064969554806621538548345319625876752018580690179562359754242718641002760188085751065199109544201179220971158623031637019390143941611532335973228565318784348473685153116351424884916063543788101623208098903840338004653490293329593138063410881902402576262393663417582991778662182239256872429962037587290587183737287613977421943003829415542615749109565390028382359334227388209647229774019132352688243006543394802410453701911640114194310911379008389890502580543510024718207612394771746982022434575410660511691828085665259932452957869675948730081810146127240655220534019433400744263787015525512671495196002120253208867997774740087273141405040876130130397739336439734372334712471722728454015274644840152681660726589459904070230104287395037583989423497719294715379771118831200758642248775947585878358597740157837352491644917923942001631895260842438679928872810807374672069658575492913257337228415700238857660092246086337821822875782763318911891796891509699536583987527635611484518157640921161675314902379053883515224004995755934657011850531359834835272708478925935000206912027097874747259872667560046688126493885017573517830289547817873398594634618612779470931671291338082427693703165803798574117886470616325141798596787197204316759082249428994822966664637919056299857521426018582403546567682476506573090785189938426918893018017617321440669068953867908513792975375304773964360625724562756135327529313941689082473842607928414939935340130679985925810217388504538557987846458752479624256300971827011636719795779129120529375090785658613354367417592848945304330280981917410311564264706894559586321727174875586590506598526236068416181945108186760809840734968723164995341349860774571713861795394362407682733934724271893189389026916946333804341281000916761512267936921986940433154630871296808280299342016138666215146189100489935793235777956314079026625960442493338136690970710784625953212859333871540834503049017514032009154345031253453143631215829809959872921884857628845213653214589111166533743777136859046188843827291445752300643070679472143410235634484785460164890128888875105473865784838464638756437159202342787688180746404674146643500370503138518393110912591364709781011688930289472034344359697743050619202637500724527347289241243220170915980231813139887802427961904455209119207357138930429898025856557595122492465008588710984567909298948589155005623407240406039845893166644550330892535489411262372543330144813498580373786593359383741916204310373536905047241501332531847499711788233014968712181789795939022107648524878974245332682925418295609244266124941532957583378199127144593573999762241225526737297541847091247330096617744070107294754245060563629806919442175032231021053941148937132629373526168547919605500618553043609608692357463783072433480464648995218422953943609042300161401865615804388501597996551152480213913661301369589783959142027811730573277101959129920356032439268324815527252323996999737296521467040587332009805308299673627711225202865578989829274083288242552096600130067976276058789363727022931324341528313801368538694396281938049321502615305782272998330184052242019416607110820221066794866288648415484612942185318895074967340967862568048755615894792196981809822818305105784064129073656879445294888626981257978403577204972348835037903672930127478478820408754842537422555683332185984977997569380084892813317512675164139391067941840645601926555348594388279469300255195164039183127765934286118569154614300182466659819222796522165211888145402056751999088450967236265260624082670468020848965301340882990714395072479623833848810415958415974625083910297354009352747785728515424380955916946745589554280197240984519680774900888658571869083701007236077898304782164703305552514946345936517140494744562021374500824286718515064717032420750301632741058500223842682339031808014123058946513274393880649350252065052562734817771955433490353031658412945943802294784796383719777686090120541023491355509787503641813298937663642165786438906651958195475105687182984728548956445735741612481858102289367095616351670985627603444724818277386993550695334010713181735952685740990521628690372235955500031071825566311139139251439855459902378076407727123694413571046319568797014067975790070890905881199980558089842579866711237536569081792858334478702405788338013453049891246837393273416289469220214697640027385764150301426352441431967738942544149183984870237166362561180571944558565413476389283703699324306430780388805006621266491248637972638253598613822641925617805054122578119746744999998261647677473936101200005294393615303124636130659447366515268931755650081766308439279776507517182495168664729968081579482051865113541494159118114743845541141103072625062782783347937717117095246965697887612982222493690681019669255056373379167737473668349355997576967378719727987472295342098426470470163379855658246203119218853482117729026058080228702458032689962559590449485526426610748247662401223977626416467696522307078792228867014985784793488195884516087618946776703485298777943991529811601081565477206271505046781393446134131370095929032552819827374802935473451850762206948193310844024365414511250566680551365290824224657722193866436205562941999938475007509433699264639192176068406907155479007771639024640426188566601184713541077264626366327556051072860039340277323040448367776537374938902699278532388370744213415271169183455981759882737302752229554048124971910702036707085319415941971020024831674681014443651218642839018983755342196977003329853993586050586501571678053479766825719128955970603648449982353564349748710706150115878820963214893507458932107572514514416521804644094181063572235161434797254981023208423358403935758278313449159650153739996318860751303190990186594655924141129952885129127333585508305092622591972592136207006321831451209855160926445975508943633985848783372816254378506458515543860237858169868146688311125668476939816034444340930745388985842796082204339013651508187055930505535407413849883951326482672381367094848103949913194997319200383917709094581171198613490606937892633792302486344914333502752537963759918254459764712750258971708468411299638335198918601210637686579433342037369057452707478521211107235432245721193631944082511953353446764180235929967564782418291507743098188647022396215492906575438727273867382490365346383328216007530269313426783516046126342251617470159526661733783886723876492137927582862869950863053334186684116566089566891338020801263386063052335013465415565444416740501514105586815775210520513519611027089181871661747969830321855254197336217645849105700342043911305593271253247493807190899857064834759925057695589430763014868112605940297956280703845173275190302470701812130621361743476785125280807056074438026748327485704351889189960232335374571596501456554472733508461379048912316316832126180475331832121871694803774773921122647323203378262187342847840669491397591070628562645739089917141028505729082681728386176241345197424134660954228822990448694632696942304708131329986287944743916770951923021527059422177244095590404351226545323514927591596442486952059897205125626651832422533439206812871139401137508637386370303796901001708797596526483204404321158580645028340338878988409555598332660632813297679794287950418985986690417334441584876598528694474087513839097705476774985085457293034396188401733708646955649834183239081345277034233682871856310577478386902223622128966496022314537395079510983196493094288105883440757333544804871574825407297101468672797366637039222952203544966738209928524704439110491805328119748839061997904752608020229494108784362036971625259922780890820401600681410002488844780527544589607513937122651057767186950837831918793348891563847560063008731429496498097345478091429008984173201276731397943076230421598079867332566614076398640573166707647664394986276096320387908989590546841470976498394492046012030228926300474268371796792993921833266463521405336697282910813161944069670195462947897986314539163640998560473654035521841790493813099349093650854197527066915640205448165132583138507317765544847623875866827354795223455607309105051476360254881802392896772392742940517314470569363392078314477689028495680083931180344289789789705622352143285437661746388140443409211018966059632505460178403733788480237627239081354695174878182680676575151088683252647251149549099227841802424085885296834516018775277355529156031163571693892624554433705216622912686957266154827253075709772177139555652076795610089495659357768287911765194491056773095399397307506839177818107237361266195567703201945537169687142318873471401333758814724857776157464217556071533980158121954682520453368439080077351950929811209972808082141336717490576012918158399622440505197945957971141520853672439346169821530414432294704205225028186214048471381916609985933063903593738037746529339508939818775528196459277872815867360844511941136756859909962726955464568845961154345927725433736688500402243579329528330508716582462502530005918898610494542032002584582231324596467286551433692390730070517353811824958556418203386752268020687902977825614594488971362650421376181161931415688419660342058786696087796533262877024009260182373559564754726599488953892356949282848024008164497016221334002099079427462083472296611710503252553823334430045649241830821296880611722685969084491022317030529605896784894886351715586982413333727664019733164038778875714615758939196100480393519464880076318274165980594692769398112586712704957296100279917828579506356713905224527802491087783700566644810887730491861886124909222717326629140614875557390580783848868757362702462048768481280831758269685999034939770349434690369395789848755671658162205056733162526617129640762986668093419241468632165581570703313411481145399074300756744632908749446181155383015420955644751429004133832848652776856045120662153913725307394237852434186657572212751425971892884208344797299074143829110641171849390338830026660167733953967077383787648980951855626700502924598037997067612208241832035569925049878691102429489743105352780764271944087245987262647203904588291834367397304456666032265151982909077365558462702141076682548461292343716452022225392329371868476849510056151314097118616035983273584826525367942031000251964336310004519931802004324008761365621376642249135770696690377464571719145335280987099601488267424676590514970298593752334327348243105163298916773375792573199909351451446003426192475105839048077048066112370126967504819667204828073655502627104696451900481027193815890549092770395183853013251572819652723060400508792302977511806481412326456362448227349819773831535169988678403405265090494251132578933725055830104247564356675640448142853662721003528835688241232823600863236987538894730018533779970271811489373548862704853000134683490523585088529887850147434118884859816872219967763246056540811949808242930288862228013974562999279575536672370334942355102649834570415409443574128989051740902778124510700515937999919189083397087710990340391616127426314168539803310268856347046977472467444271634483852991003686536199537620572883665669199161012804163208555510311132365474373772402946299989814573213043327439801727330423485515073946237186948924636239452785137883702176618277846977764661142176100569843336868518855218969988780330895070107383088278964973951505645812161661644610201491313482302093783437781800983093690692021755900977927571090623577432277397673313048521326814465573440165187198311977803410854702429890729140914973478266351753146782704324619663178147837361683180952886076505930336352785309339221754133351329909583457493775468675521009664353147100025267881149068313760926603997664393510492234208159308243122918894475167493905968864313080469800521884913793462200778924027095324657737564186311386827916746989762850983134811445680591114299937103043673228726548006831004516664258873692985871691569071291162124071484849132105414121892356322484083717549339778216324979574524504887896142847479896718253731143776416867570547186036324327021825830721993902626901293834115193948303558233560466502552778330759458875123934831026746753100397243335094953840768955998497496993924248162351956894581265853520692973228830609737427252609616859761053788844793999752311013806980734755191581439625731130186521423157209280324579735194476164767735721804291053143401480439409201982303490199942907782877782446082003032256072748924551016710971655702351149192397965947101038457637301873225816479327815589919948944245365203845092094958297973644823884928585961045710996233578963051550863688869602138544512400338117800705919793343330016917094669518020509079795160445792071156900456326763673033830242178195912710932318435284020717301781002088121328038520545109131180806572523426796650868855482356072721395876825947798498002871863584044301684138308002775547705679618529904661724310751673814248883460433662585621810074576821975859615090530743298294584472127810634904991610477868989314550180201421636723001273865976544598749040178266733384664173779894614469177776674536081568385197435345842537568881373421964500190731401444615967679834639078552654849720220434026961360766287907211323508793112091750279870189646468973175512464522694124021941092371804317871691147632326482302508387596094229417041133565457431958757568836800448323324436201230392834746840179760471883349792843892528767147860796379184274596062014615153634501739516678993210499847092006838837225576248463606941134725650701243956056762484825056341502697027370740757598648268579307923261080449933014010988737093534852857561366706488261253907739472518860303920573718312850564644240346503042418404764331185915347874194655661220855665885550716484843430883050738281269265174043101070198055985185974923630272204692819887210414581971999077653271993386851649405896521751919207496831773181957867636509259992707081818084317586303692093455531237997989561817299509421712432494635984221476747857525288308945872519437822032100283839495451693309940567041213125766916871976406386482586206181005142174863062865729234894977495206242739147649967137657401621950283224211883056318166414865351020383358210167092434999811836471267716890194164933377425798312564308688489342677858789174998272545189661101042754277424929604240837661203950303075176309360643346900888806852363580444992580602921812890180576942201791577571121256963458895992734241818029061035717526683273867601478693001454858166302311811805390436905695805282267812540771562331252738352171730824078528486105892573112865155673234154164182326943611695087449727819463724643708744890543211748213339362098287743270808373462792008685026706511170193237861305319751917711140556264641978585239959859722232056699944108101664308348184643171545901631333053454063773100558347449233029783129365106188109937545588423205563281938109939443090036218052022762101794722953196393221187196275330523943015453744501574359766369278876515774466637854815014683406891479098154795511491765080516262538843674812690225162275055671077694322627038301561967102921440764147528117912648741513076353823567932456170445607629750431167718566660482201900647559993228261128278634603386755122041963319103291865359583714135521956756032525550813282745482036839877071898437600885667770373946450177105792145095391085294261830831015610194285802294351449897482028732743554695304223755904287582950543097497827346251452580088207136179302869082120821968776060344328886535381521264066686766569418257295494202881586664041190574756933827127954666630870405454538299879937220441515827939648155537422571886439895367314182841612662483963778963178120748869003673009805567480189655229679626767541271427221414295661099269742186933989083449038830594860402988726039771119557477099259819896737740601331891427656407421501353380323555169602707510279937933932386886408684019531780662369442320077332878876152514061087680454263969466312349729550721659611421852208700524788881986436939986312610504467120764457933985664281229316357518483163111939315120989276386477611575186167069242027386055991972577607082046249695831119759975092171143182018099658411016357278537043605753732819303465522933226744432134940291785348595442631820922365332675318725836059083512152098108509990418856070249825811436802930092751762390160973975647736980784657424853777771929080203779677637536816723396587017725835707051864330313468874936159770461258844952443448604008005928165767664446732685765856424428342124144123614563923376868184314677945444922504333272331882144049041993856897285856641164563157038245815117014045770556788124288606036120086997588796945369232424634250902480666523449123980871279171702705386637206975295748682708491784044871403361064957738145624162143684094688615224937454753332136945856238243841812648180757267250380453744076205048108601608935745204335724228474297655425254748739143109529947644798745481811896503361896455252936491052038995916307533361597047072090209389906315513675547979822258462589780032033198487727902457440023255965783812383249164842175171342409388989353788012605572616351981543216518260645926011466372852260309923493351692826206488612694997938415153619663585351736321700436493673120153430821909015935911887128358906861771515096159659943255526212141034472713680657731153879339736245561817747542155943275034675058294135538466224820545986909227249501003329373825077904392454120517732025917385672531175180169774452224797251310425853661669749366188868636825587879467576202005769983621033864844268509836966536002769851374772949556314529207075740587827837212676996131084941576331270557887602713308023049932779147105243060304770189719589963913578824166949040003304392507085442307773297542297242182443915366100044685298760848692380046744950555180012040161071018570460561913418074977250446186450053863944047063199964582066965655908405524263805152147252242304985791183662691799134887330714058471890504882235081902489130083420841681796672099070427547137753568419888457056868568136072420200241122374090074757001472230656027578892708264210128177972601379294716660905181412299437133722702648274384712259191420034496456627848056918357995635445340680713577812511275081017534567361519994309709834613878856437807590970764455319020616884533900233608865417931331131116941448001591022413885935245615193592622884830618170307695813003389801521283270818281560214106214480741672356897191414601012307743824492274722304334881612278361119569449157442127850711612525252178306350775303669296219787460650437322039496353859003070866749750605037320578455143516384926580175264061292781934109573563873541290944592198855408551826524647424460696665867444449443701222889971082532232362679704914508244433894674117922890121825502798222787092393789202807079107163007950017425803347444178970778007584814743009750291370549833092561310415709409181727881972886750910825607613945262274251261179139881658353278768595277784345361894749418041475160883167618585598656268101758574717102002796495065539084234685563897303309628880535921477259206516653775261840353348119084413129193228319024142846189441935104981657479015594296787003427861362775646740033983464981873452339362837107371564079724658454667320528889778781749461863504795225520534349257042471228660624967207749139325198270230433400879584763379997488325529367332300276178586852773273700334240962961772449179202623367850215966700000456336669653578160732294722752060429101137953233970163086815764440797703234663180245039226527208289891005677784382488866686529079830086602405329884763917564453807290662952002345609224990683432347255352946353611884228163314281421451167861570988959883658379837269112121896725957427236169669713934554843283326922107782493163773029488730033866852802528458636613371577674096241566992521251386770293145627435358006527256868049597339995731903022174306044312639671053384391933469965257402489117903217832621798073225273662870055370265797922512362936179165514038941920646806096677818273119229771078947074201378780380618469634503195086494086514109233041580788143075862720423218675482424981451446662889815407816251027461115197657883354373797028801235838248617351429609490228497389482549218230981134774205050080217901265313777278213484834346228511042072528331455711657591571933412689460528798152401082739982936701724502429128288906636032160898092701826868089674231930561609320119348052772034942031793036581948596222371274124582091309889543438730535517448003830650241896839544882484414938156609860858435937429726888267946487455750016459749278614463487964849425485464744301254513319225791080631644810064200726487052893498226706305124211818658424985725390284702276507508102946448659824840559101490270048123518340082181146780183012839592483553708397327701800552639673285901722912429917470020408057918300612966486256774828423940631650423523618141615201944403051103851645493263596183937081283262607078655441215648113501942828830201628299249648719325020001605979694093266232823892193234273136834355335422860539398168883380470291974586179817316046416708276247083651600553255855327528651153137093394889146531067366094836952926386294293141475257177467353979142445080094357082600100336429855070588877927567816347400752365314845543500824433686946113575393359082642542270444742107428545073340589194678159510403496730643482197776443691531596793537761566434996605554312888494514014537473592082140381160427182467614078820843186537880576329314153381213458898482322036229415294429865969642374345709751476560608296435438720534162099534360761368711442004000572165080898685254670484664393992347731455825924748308935277715579661908369468088264056090795391461441149849179730062133554197402771744931615182443351871281038840521698920675729854351667612241358975047561627899725643743468931912438377238796556462388821483193155863507026695697622201818846740734736147655360252476861501748768837091979407001920281290884370329154865365941430632458480354220955143166852676350422614593066210788180347640883413357240973130675967913134334939651121506010253262831707197935554842327843333244212782061376633389868434953287607556628202506660012733540221929218026635340003099384842784730432737541804913981307436710298840649743441905393374100382462038231987147286099063036473462976778852133306490938761602896991306768643753161142439357094612519707935676215425488770003473676936493458922712784253463492759692101232904884015282110501126669940732693919803541162846760561901292129487131998051914540205353885636605291723785694267765941483920526327918103781187470656931391450179177674336860707180069989590810741994259058332426256161255060583873126792334803519337430133232986173980234107687785645023996255020931359910472522869455029616776618031394003882562980749924203240944483320306524997430418446066091512850994760239339278663383400715150479348995487687295837838401047805243236128925730843901634409065768236344467398790835667056845492494341810261806250301203240460258276356942053053793116045025847957284569239418321160674408638615595449521449141552190078765365579091524677771223976645288205394609985837625583551169635533639686506469090550376931417824314433691271475536625425381971503690040860157750767304312677729980859794837659974200872028166712300410517405051508119598535114715920650297587145805789635561966173525220016720945450470870965441319280915287326190631711303315753119977783054761178498984888031634275836495066873636155211934822209977498630387573407537660771075222175518847945210703714967990157781806397952701778101250414743578927809492857020590068670328818174379648331758167163961213768119771962288826018096044171831003255764388972778828824096046628542492263463353914234685871662950288408472572295148764977510255438070609235273635350955852351788266752200506981525100784966366970729458617183602736808361088537247493962577749258540894794033990665064624684624364703746657698508747600707576716018386297788322673166815263742174240994350767266173921658412483614395779555623620801212500389275967416701276822092361446204849296335491122578603819308870757469441522732953719986488547166764219025427479357543198872236165355885980568821328121970189008817650493884372912923538955297714929419079157719022181346164086221907958850777300922217325128646059956113545559771918468039421621957361775595903485507540434548003270626170275112762599015094060298017291342981977608275078903048631105862302392453273543865760775687688125211022509961480474564447449665914535759976877935041439803533258107072189660206061795847849409233639520320615958063427821063765295705476347276355875378435351272101510112616176263248630712483066455297031080979367606750478035283633627485883260421747031441088627642393328844823432105530444792049118148497029556382673231183174429175132611836002863336051051179938120682718562489049353386812933709560494278997675449090439776522261791740799875085093240849429186919958567516077572378295108833835603727541103847816954040734960037304999059985267815652584412928188758941934500276517445513392714228305228820580552210365894619860602566378795078457238674708373431946483342046764716910288491284989018790896921751977917989148939203514640616233370666756664880064614244792369871172181169664257622982106243967033285211364489111133744072934333796872192628590704022621771963821170227305274397738621873554370362885410383082314515265341454115265756817543805131993838643982375983095670801740280646681871643752828724812665818952783851941506224726998887047436718735072779184945788387840738415521836126031485165495253125754399415376762051310695865594446219453075269984786988422796462888250652338625691531082162244031839762122338864297797205229098037815384869122904983098184398058210263312993097190376486784368850307533081590912644800603314934618075620453625104809190681804307117204064323657765879445013016523801050455853116107172388003535724199345047256397593000867490243573849907271582651062364515301933419726359172254555784845840417332972944623319787571872388489688030319540344528539970143231428433019112279027191791233752696097518584714835633504827831563701508999926223638610127533173575349452639399139868339668234527681073774217906300621783776149627868687983896936879244543340135245017620180425703243861891400864034138688675360506226281325764197110750596595585453402553404663407140566182526304674557982873219146853127253536911559980990634487392121269001530809168766160501608138625323890403924675225737107092507281339077500278126952303602745519653625652574367779414415289337102490481743862931989587802168238913648922421394234814670230386388942085687674402782445771144280728703958575222809268768979364174563600399028404320540109942551712419754939395967150592947454633988324510565629184163652137123394481849640284781549474825157628489912466033988017037648687258608063135094212206475791830767780255403048095200625159110046985560199376797233742002827400180102476302565882186922299572377986683062897892940118844615281450890841456828270732114595814058468884931757868616142180064224004706966186150895488153080164315800781539669626606499611167737184513820360423085741707162413019292268925260177094460420926583136811732547489179678057165862965772518480111953680329872621180794901685624173111808391549923040278723299863846029911574769982825158861527100412048213359403125379705659547065153869831913060266232624573061673762153265482820899516240268944823666031115168935810869683877815577695461885718828175790212621353713195165882495744660920850517008587234931171354837167459280066174088505008524660454177227109735155682339218363397048495869458049910172005223982356377647852928850198112056073056308777316901717155901010945859107888233354141097638840298094654271651276078186159550078052160510330157770879165617069551744909532107518499981823009735003401220731404288078638683658412076570337553925259490928717135597270279390482906544463429655485363836445346845387270429809331513004090646253594543331840341805741187422203958584436297294737267976592282623049674363587487584810457562938670331534178916440042732194218982786083732259056992328657665191314298162762073816498677814997645738749523476509043857871526575823699469410423374414100188549890011875324369731088094194664537423598960533633872962801954399649227628408362959774689564820132671512178916971965210003094971980651749790360692674243892012458348998403985617777213099068733558886541543250704064259872231845594024983932304184301988408069476722280162306186976679517286167122860831824249977700438947362533962644345008490031815702335948190521881990628945992539560888840394145507136841911903904007986255979500765129919153813933921344065738399011975063741291141913770726787564415968146837908011601495930499093891325723646319938659186070406286605456854496061154183633234821311961161706120726437285287015447267192132752794308833579802904556954033287464044658716695076806171613911844408294462170546416485940713078486705897666357862018152488982977644928415131205286296434922427138960604680076180824235717137536306652507779516304055252678384048248578210629036275750855391231168296157267604660437271321353683744218472862877218021440892616780758510647974425853561974880986843947056692973123836338541504504480563460622746620392822584631352539778955449745212999296662228597623852499981154290756659687797593086131963817883920174670269144251299584997356490520208953539516177053657080387975622955770451447162018636280409412720783653458227336854725340246795011870210804161188037376935936694207623874015710678537045856792520489542898156829745277541378358355961033192696932098508022630405366196018283186012713299987932486836747937051099586510218281275863175572991087321229012621730638930728503653874108074007474867137443714529583101765926435061595545048992143532512899060955395681598007647274937865456956669319444476443977733848243296725396609302060157902455795954160974042334191316964281307202566463984369019040780643119507271301306416270360231402688302612290319926777991307440101829028390951546887117015375693352868663819501634012879524980580884369489237562737978681364267429199403705453447697273162795434071097078745634553936672315925274498280024763839980686676357742954528500192194759514562536285103299897982423756479141335432409945969879658773714496458067879669060014102097048479426958858335864506899868935512188112251421586513188081169380768493545482017132217306242913196869163135602688909310202742502751675658529392686460036177867982292537576541243953756351452004924798511049121330409005398341526044056629558962955433280117563388130105924020822514455133971451542259775280449637635649441603981381755241092738779190675985678844233499011162007700692390945617103825850150924999200248655159512001720206100746190957553174308561530877345361178284321810853025568953394103481174139405657760768723541350561944486473018149506151230700338778640986968142473278140451719988155585760548528314392183206595303348415253854283036588442930387230606906573584363436705267433169153090954114676378427843397396949781643810532508584414968634383304536191493950723006669924508394977243779193986085702804191867657374715423534503933304434786364267492214482794923539372958572065646799952713067605225386432083135940649619368339165412065048742144814378772493263590316664384787276784813638642538556836914059724220260872745290587008686156195114912320302816479324404756315899019962688476714509488643001244511433215961287246499220640179567649823622880239407898216161818547806611559096727336923179034358176987760300056725592816807078869110329058907128670935475640828625759868268434359450697274197344221912194574357305145486108549179259435173449942832227173873874963938544510950466752380525093811867515560232364281413651815113259807301527152435761371943397839549994427533596621894354180540005187011608591213089938093275277467358876791003101592299640203399775758489476041642419157270867298203799642524277259618475867257076199158740506739836674203545558017877854519454654513543756216640436193194842176713727901033946919457208942443710029839351022097263017280946414865280452830348226496996558990933781217808071452295856343709766736901707017382453467736824931862411148135688705142829636175146532736102125765909835330415976362187126964609417644341948453134075643343192046259285062696514635297821979783518492138830118783900622786701833762681040540402488715256491098611634335302596078794780023825161561347433656399604968555820614426387940541188580011687603205663020554296439059828953042409963281056531346098034553694540681912259833990708350940291654772113574237935106543004517406146554632594394133984919284427861109702224967893407335163313822082961485313254718315271462772674675785068444515801594774364581891085345379475593077611812501975216702007588587769668340572912036613674194433412300192896020697101214481538958054858387133403310513690828317628571133617536623569906700460879080270947714046728990639634753120492834868474408961850625837754539641999740947073835842661072051691224441483200382143599131429658558717539347529396175370452322868172327491727409742715630466767325692485466309159810551943719862153091595917932470384931139436980995623692557289445696349751879007766138464768606945465938681780463833994688884191536136652267849553425834224123004264759337999670651585537402927198612763580093818332905791550432135735910993871789403637301333808669265550375380699746512458183133257485954048054929088912041572074837827211522297252965840305516747539872511075294456856727721470500218701993217805516920361094643529327595356826324351849647042481754987083179313749583035121891017514882284913440802114312576853411192711019077064201801831773670681862709757480842786097069928787015302106601669381069062431940552686153183483000130763541597093316254871586544717592698208130056700171299751367315389054686291288151329329070836106443964392393755637436200038602698978040996327880539182003153877921348951277666255978347528657262262380892986391512965745651115822680119282119001216322842091000316498844009421362337996220017292400604291489734499371229707764995377918196898609014700559118616171689771970553158232353579992507400949878455128953572216945993819841430432601893047116890600926859763116194734243610751006095325230892487820330690486122215939150329464813328686723519097631367762455951828810601649752115026067028326442294889688157029994444608427888834456100632574946204483261186022423957262994516665512685823878391000146810595630412389442588859893085365425404506063032399210288875713934214769352662004418427124890284862629658265768527534526823570233623525855460961419243680207371120703722723363754956534194169441605923962253726936870002110055437483067227027386187841958963764712262705757856874834089085325005449373821281851187746720153032960599029825884949908435292992387650326701196077694222406242129276048566490588866058304926482609961352822815240863186254386299408511355181744949156252956085897133167499098109281482685768898531692153773525953187723416882715735895188307548716143095838020956246046257416367823908608387546384845715576917125354736513935489921878171117389287766791494621016927361558942984058417113651588254503106987334429440096746582574791185866776458689771735324505635432324105438590444200605441652562234086970069393504662489676044814140640197718292034354194217870485965716360372807639470216806705083226023888347703768930543021772225510553804153160522051111365580005176890051827579820152293900776836561385197181782387761568624926692617415150592330379857817657588105242671492246767977891133428640825460991727644423202320818932766208090171648065746944495870804257475057764610596952433901405988702237007046710128720432776848978942414286846069630361331166665994983379740738465751577725437559824449182167873057631155615249794228368735602709301801058771684275869285216548942686291314267034438196752169109924137082116442258561624468716021534213631452821491183245530521339620347949558126032049991352008653027088469074732456021188249014433746143145486700186388826826984500858366742571861211344939037352230337961311751308635484011252084490333410242992379336360795681395021426914338901150164285792899621165085399982966703982840479945387125509123656619832630947767421828404474636290425187047558820684977039558002926320481812106685073668375514303229997451900385062205408491204120881567156933780965520407414461960402467074990303141716835589228874231875916510213469756167883285588937858288017504246345251890791082306552646257165320364224112551750291804184166344640660498851532293771981699992758457208899173077934885452364992548900277181305728781680676006148008622282344200592273245865649814903311301929094813808262087725804443660775141517507302253610691116110211431469051624388754890198257019613159648967855142162823550013406413903287294616070127806543841292925130917327929557947283934332660813852656596272796177199987610854411377516872982862183178263688396011787515445442441347479473861048087390628734212148181988584268701096401028378595993811782384719652327269124523328253792961159646552774397302827021409628226202849828766983753738241515746622595236610075161817136144373672198875245216652716549745900149558555796685293870265943316523211223592216183909282664450811395541746231027126593768478740130836564053456672432447987058228362749760372059315725846590077955528537239121180321248073101032555802081217056827011870615745308329821665733699423123223846853954225883085455920057003183771233715989981745011224358176686858036608416801100182421203772111329466418207651271116254046485678594760812620430849033654790173292712577513251082515795271362941808637168570069459116012703443918542955609932795853673291226986903657882575035469779209377326717060706846058227971288264090163660809161576242205456013710370651363051982219784632861180377152379431224400516132078081216642908816056429667366962150978591811891702149027052695022836003104143011620114613383569083873165784728528839664902164837036426845188621415639317424152393359733463542712169230421440465700169115562829280817367614894409538794178298904567651873995642028232486453727877589168140113245326608590335966057298149395153599761404287127812723703276253742176861102969571873033698915161056090235755078617919133807480192962335637701490200201614572897986658779469436686114426627387412630581997813165515078523046719747080547114473322965659817246684362215186366910435370999193451554009786221388101955533000764762452096655863924108807957293715921345107947359125180911786359349661098330999924202900163964858050919398235532830875075215263743768340001660517895410414662259369681180355224002436568055664456147774729669914906709099840138391840946152423857017809645282875185689117482004363843666798382142942051427175201684889279102686300355849104871012691308774077879578527387235372768747687163754388057107674259566266297480379438599673015674441160869226757453945902212832708028693066226926511145163970810499428594619683209510694747129502067701468568919742061082010534422450873122695930773048263562601003915636385778956422410093290900378477442121237925709077668986900227958621565578038270035611845889173831369733967090144639649841090389493177206315949570654699001202321755876441646175939048035153542434940664291681612370715148389898813773570702210099752145471739407670442301179305141194232696222728697524495216238996669213800230239520865469177141161221439678792028689218556354524188603463787042783456592466321245672683862984796993483748263445557721630505209913663206078698132471285352659752407134597614744007476914560690188570892905681760645714272110444568165144809427394753198531113295216299495173564838696428532871927596870326280963506748034700823428473240150335746456358595317624969829229957828634893529148261678435479837138311189655746674727272730230043326837635217544541787174902586435743076024515768577876355024524984945021903562280035141543787587259092309003733810266295555428715601586994828996341706239045678395011442995394436749048397597144491267095687392512738348978808562126906106464145211039062190335961075725249991103806771654658200521630960964054582361639464639335353399638426345877560642110811155457885010725921558973595248065711247507403328388783813212813746842196030209695176032835210824984370595671242797734382511223130456152697752408249696514783941450949922241847036114899280656302812174417365027972666277270173286113135302022999439822571013714557642960074536760849446678458640304863105326596641409926254389309874489060425848960546635368747939480412661525709936563042784784491417073469851180231140640516540370560363809943508190519253105814263539073799577601099669139199655403687315601443504878335921488002717075472313962594683193390301845109504245575037377577217006746000532629071325580397935492694728546005177163341194777251080020282161155131943764638068807550149167154274120119365713988624976480498098301432980732656888826655248884225829891348677121877846161546053394574730801252357502777268386374516068701655758060274025121796581338284283320909684589812595473477967707719474211655857325757856702588036265487008331141068090054769687636012439181559147218491911285612393235651749430543590155552694388296067698770313490000955191412355768093901518008610243354365281867749802407798541511981380970258767486938164101110177422557762896597556657955942262460722808133662453537649562586611747667658472292557500527300195678595728953232856193444248348235791249923316969874314461628767556568280625234797612145828653825318770361734452712216817373873435073286628521976072586152638466594115854001754866620501300188589464716861509480439093333290541091927213676116484397009610124593564952845302557223934473614629456706971327445280448763927941732794922046828812610603811524312114937543436277806818498317774808945678046333610577023342858275619486139559864258920646971842012224117905533193411315390741506068423543077669762940447010734737642822802146600926149725543261154348040252840996306331423667543194844755123982303996996982439040718180973021522564232906323540379939532501780915325401848309758437230245051880404604064526933243211081908060622719581964208521068096088480401273178088977232286962847547978482287775717628179803975901778231761982383071789744059362466368141382358103303029860788793211680981193673598431984667359558117364519985128459860851814679588481756422765401211334687386493881639456225749330492832256235111713411167551249395642322480674785613410388019996479035831357859268921695444027908498432736238396507228488599940244417764922735352131400167054702988250838554731214052976711896271288645260050578117320130553641366514111543357572194847416095225264926897667393957436273146337251491555086522716687995413361992043910001907298599693905125596801564495865702814172526100469563347959880126474036657865611437741226734352143383964267597980694438148817399123063021147410431446723657281593832666202185694107172046747496351592113842271678631934971251325073967147330620345277993685412209302399901991623617247841737497320731251979903614511981030522581526323597637208581197128783176033198081721148049974026540600628294732515261831330102970861299464003370478923353424758125165760868753051676728088416007060180295567893331919237822533502029354900451704866440157347666372272329811030369745257549590208718339555788663812255542037780679468661418365251866714703803732110100804147797889895807708391023670664123476622167558725443617002321907476682836213980300872329402603757448595842317420999069303458932092296893615016876320711316153909241303109000807790844601239936093252776333256134275453181678688928522701586086281175433157961542357591716991676974771936708081768002861855143028513896044005418857938378042614238836649272440805833043465832459282110462435859533995524141135561891545050123742081567732921255286641807519224967105991048258917758906219574206505713143880861808825311141204455208629710629236406799035134808127276755590372746505058040156476151701387234061983644290459680581982389586614302544365859492427414119829293753127861389024664598696073401296396089644229852364786515882393874071007938372370237540160987840559627728904940254208026098907630946777923736055487110800525244489716233147156471947123760833442031788072898028021736990649333527924263862082520944881966126398706154049891498147956634849872168122629822696217302241637068073781476657445211293663104447161339419791205077939753837379744164420900284570450982874616552975130265224267950218899812823393322929168932127103831278101410626269626807819398538848812991606042287039801219669578333622184383046566422847032994102099766821417196723369210803981806111593576919354209894125705912377989468619760054781946583983574460213858870433745749880668210481078559654020282781424584009373162374541278724975535576228925477990025520293338782824857668906742072991449412325623270103053267643302247971484189860959168649000523262626047877463816868132753415029401620129283672231310267230346837183201147335595476471394394548507676341852370609504779538234698259952036167755910399017105684652022211308141105286081880775368381713021130702038916135327141099167080449483371514361605144157902421855243810445229985426979045707607806582066097337471848622004592315840082861617767352218611545588546285048037910652864258179549561804562505425015948965798246351122451943303207918339862801199097357236374468208504199948426286171378738145896111494156246715683731962906073717319571102525948813224506349546578423237906472200258933457982965711790914200222633223455594034165006981484774753256643478924462399940760889628714598662738487309289248140122038211874318950797198521063687006308757274360929855023859236318216273932984025714070199105468273552805076815675294120360108311810367495013364079593513498711931213300707978835798972350437812358059246108054530924056656996169963441172749700522442384641372885315069598098960789946802464868306659087362065903293532778323768678237998430009939344799587650027404560629163394796833722560946740569279180979155337369321231261950781853003674117770228367232185937538902695259836083674689223876814831204764978894700209866177766977175343681737764118365863242353514513429707962655179778386280878693789304460272228068133459922597222291351094621124466368778251762247256890068446838174977778030189134029775357261892429683928218995012431965456132040507797683820468667315095173952986314559298589352738904252951411358499086635051209407052574479463599464464106429515822263636588428212827497160536305001259043976219176796048001545476147047667549379239792272814066196422347766720921640495620972159944745522978371828935082663803680496451931393028957483975767660556427507836658923800030657293415643711865471020890202957819664327627422123408426984130014197467881488623483303606244675725954795855978902675085156943405974715183916099156927940676995937810944181049817118938281840972962359890837802733931018883447573839701091222045681199748032760289470063066209190395923207795400571153090672146726617710445055821389556841984663091823766006805974181232483978527833441659998753948808505219424954507790372472974508911420002335915736638380295879614019768714193846107837593487063683856912522476996084832839854469411551752652118361144316909486561754080001099003036094646644378452204891062458492988480803658778827654497591027205721836344123095467583086128434596423300002290316653957824409225015678668637841369203938566036194411733467104762521539039593029949448585030861201759650091979748564746957085530020140478569317719099904614075410418057463421940100620444500535617568415234855089858382897593600985094081727897470261377009244160444019229586168884998226265640367464584575823815851947797210036510261858749869775928213382685737111363801468023582247609630455152995346633277025290279151222959357081656001632749177054379219720441510520853403902695653972063190956874012797417317269785756087458630603312908860730769616525456615251542179018943676372487644882175810823719749503480917600890579920330173473393035537919102888764132327756913078785043664853158218269299798424352786709101009591599661164828196189106556877150369813947443869299702608948177966342807327824265171983757853342919344418329248375534671678469308275795746306201510729238153051402366845746454911065784322918280836877976132445337706771334246586855288832931380451148411519968980002160967527562159185997235031320781884310024003048140653390724567299161556161723990846048635494031977128118243656928191744435579704736614719168545041052957570119997493305582102807161149495842966393310372856207926775743754280719665763885142910525489039987516216555299870784734764001457333659285013177034675083119988812176141931331547108249620792061177947997294926471627348632786168885859348997512811366893431263268781868249868247989619868572864963439795756378892393054645583799019274954696421098909135090612853745377004286785626788741875023819220214781281508142245043533302127289953682893697713613126439180687805094519137350200789704289004099361534560800697384104540912150806484142972441101735135568180222279360956991903186550452651338146209525087149136787668533397711948760069368994100224791300000615768092685196694357018062080677927853211223226492184246307365542116553584772148967926586126684753214411837116484406633130131216901035297992935380047305680940401084536541053746740840769494737223963943731665512298406701251641376987201503082792137506223028404546303398047432752321530922266923850088150198934038711863419211824545468418477086404041616710037994099062648607974556264975709411972926172150051226949273984517160773891007183403646576054841343988137787519702571119713157454568791206170632997596558994242892868326864328586968453393458166965936117689964500918261372939791585149455486553339729970995065046304925579938225510506407864852776643681679871927594807712071878855341142092180039072948873493914923399623551147080289088076122947034237806802217166973995603610717671455395709297861403837540760868149606690341777508498273907197412338135441896360577361809120567234096663526267728580165847515934748174281596346682659066739076799275670089193554897976207202518175626380769669325736561081992054725076884593714614622091389317906974228461383683654440157147268701668626073070438200684476501859090816723100242535634757333914777905925351028980551076630968951443853254265655096585399835884757928338142551875032971844176573046758885841248845693001831255759620829812619673944924885294463837415075144539992832358705735847724928506451406328305848269734705876401259618658581621354070037058885087129379778652398384702238542049022220472613006809344242151224958285108144583787272882357993774130964226393461610378645948020961926141332401625834635304327923423360134614557797429640076257336422447866684688903651685430746828846342119455212730229173562344285057308006522532738500769885180470916221197021033432474545131934473298575868949188295681062613437706786228180203399204096906188253927714245566670340287639132142796665375539290936263064016732386241562630665729472216365796085167370827703843970783796864604982154032598916843062333479314713687359030658035157449513398722607966835558889053375312076016330490065529916565458278868858223760859329349665055292902483525822428201967556907295112139233290117328672153943342020082419303168788008272849953557170211706299606451577194874661950133753690574858797125240347862644920016221555609713908781641709507092664765068467506490856277512543643913552460446435247053817409721125725583734569714153828959380091126662881418856238096401598994264654839709261037413434159521326475613866560091890501860813935020734276792207308579638210512539204057799368196966629641307109119580860556925535308380148232402981217161946095104257466077064643757591751770743096105166526480129734990044822731220949797505249886010085375952601926541692695395052515406829141139824305110089850997252868208750074171199606420550872035247278485891239179224885086492026328597323938525337748969781030564948473493805344059712327841192914489251933532929112542366659489845972710959324793246482238461205250183720562415997109229611593818130051512010117001333372606752419697345967040325034605843143688479993941689012049800576963262626525796719110828981512117058356816549831345194273195615217661827103601370848474754167656883189601414943913442255349620031167296791613199582286728724840277740994538137411322403483525820049715571313183226484281682464373666582729300325530750861087203676528286461358995449000618117024868924880251741466466481810423739395169426785838029268901964076878509428165276112265942537890650373829080361501578514892233465542269446762219049812119853915265082628315645926594458539307352503145546461917079909543585430289623501681844973164498139881070387306929175926758626933141285569804414149237995115852842917812445114865070525324375983961158032321921493132723471303311058833483969389687762365993792705727325456629759416197488115184127278316392857461808472554002942696800949293095483827615449475375878390743621343740851352769537553206877103433807711832490360981525653408469913408467851291316256744005668005536154817331973187124206016612006815799917141855756377220048697319328887581347116803401526739942210123399604570481121876837434346364716475032439555039522063240818378813923266210853468988698517197428323202342184504912912412553358596787189995210831144583869876837338875958082115756878795784406536699670170920306984555800013806795767987567639051028536547729728798377585506457398403579975818491836973766113164639919747484332892416648049078031319409866861626126509597687026177059949821855763829240364844880039990621431940580283882034887375652206314081552124834351006827287734223697421977288629382153680604394276731791980656436216166566961809953336142902040069611605724814269525886461393615860662100852635913382326772000285155688397913673434659039679237317170989295560895297153445859468123933011980873469468705512151758040012560276359312806098104077890838855715172444790003916936801011412262477146161476558551170984722954769440664608643723759583444508387672432305959287169945305292489256416121097224171571462838537544318690989328416970912476694355247457970709911254084615298767738906215900427251031264412727908370591118463122955369400013608056428350310279867736383513759433609155439442720719101593385810356834371216369086910475348784821483920015292356738313348529119240727811832244400574526328357423867228936060062111301190837323027695971502372062047139484939990424464152190611802265474394873997205588825254074038139972869073723609603502697920448645232476085878087640218624871931356292006515947868575976968209480747209901066312441501401354416350735054753413510254373954190936662190452876447563357553871200887639813896113953440578734999406653199733302309705609174004842126198117762879166028066780482186748873182130339809598906669430411758438975949483444119221618466010852011711841420672688552984312183171843466441559246097837376236525705850098622087342461121453633731412930387680255928260925648351975406509044466606396766268744099875526630240037414911554328616938642264311166580365428610496427525314001556414239642619474015929434389977430543596796509168328212975565384265411963353280491275516740767754722454830473423841555743253144628220921329811391018446466470157388657638704994068271626970786529986094428480598032882201540397972238660218444622611529648502816595940024074830022244349859877661361692177621296192923908422673689379100897507059894608424652946605339247668710726575706781794067833125732659245836777581730728560333987486205835988925604102899631622874703212890093701570628476360712532044863514635373480998168513367877882493741446892408437626728098669376334287414125863227598309470225537528640023918142468510754738645787396755296296930541427824952975628373527902156684056928237843678526785335466340493656122612447126128993737046112721282082473431318267164682252341631795384782341097039059506227901931756620961567030318889375502459541207686081843363444012452990586733116729226514644056936532316499875259315066601192725723109365990379178618401021336475437909903724592120763543679865420499323167222881010201378177369518440656685441603266650005999190854660917669853938736854158659102074906436002782755062774794937489525742236688200696308765344584349949131670949022016547620529380870546947250783153727610635130628540847814881286255053066886162252297894355594799182573131917060486204882861874517186650313232866111355326600865155231583265704074199272659827894013756256332052576591479018032164674730603052878430229521819468658764783237810289094304862053769654246525698268050376538443160013389478812219375856146695245267243373790117987087855330787643567080742476247145445025349322594571711673544661391874274643926609431921255263903036283506361305274608263254087947691116540882581966905398991078634741464786981844046230141065974698072804125812247783656275460108526028614142081045638769851198952006162227962724249267441026017682205475933148403306012515769156976335394447013393573633906357490520552451205169967271587033715566788076558426647945261002107126115985185539016200114704561023238748308071937597963922210308734943904400153049533356883223975856417554774244264709153463167618712683232618870073174428371782821418859622479099191808239531294860256986224908866926147831099201105509067211615169325849476336338217162992064343276113265852207147091143645063369733563456967474652418716268689375738296524388499792096825554471450037810193442221512446178065669935284135544913447772030518135269292695360222139604176634769140099038969807450818070543042681914205543467175834164662707707885589714297354267152324347373045041469926833354424946603721408392319855274839907448873283192521838397423753647811113124511626861283261193729205867920781554273319831589800610401794953295489254507494055605274001913821978553016816159604444683832480042450322010231803994489918069529421070085423721843224295802495455707237719657348687158505571091730994575974438802184956281686541217239391895864228065697356363696657402233261588503790131588464611422891391199183093738483638662714751242002843780904974959318506509524247753646804261242333052518289609169811080162911392905094182586549043006971695669292667319210798621921702186405435547222079943453503286563216187106995531937308926235505872519473561819719318930212421074961625320088895905465003931044739764496620640102191100896234597263635435822008838206966770933934581108592395199127785400336330470378229228418963668817895761387866938005698313380530702481761239926883476542787234145730866035534895801834703152900936545163935438342120890864220298946486315717016843699470353782018138350125255625001813539510556500021120245501302554551987512195539142705200977483264115992378325629265453596725121711779307844419010746806679339730518873936285172617053781320400477789804925557470802689690390356407725454052400018066844258217243409092217361038458375144280764301575383757418543913664505068676329967397109510522786224015145076765220929919084576795520501958724894168486389177196723609184895226536466585655534430567830123444191297328684840338253982049432794135657374445211179017092173915133888389723419850559885275390771231974990927238445055919268172061618801084333253248156174262888065876786187683206136889930737080042083321640724901776538932483017528645401747785390870008684950677258003390354021518244027660847131734537606233632265156309374100918482445779572863769037132937309875158742496742786959538044348389886673449447059564309530124227528872724370307210070154105156313768570981314039166825443615818986906181503151445289174949593432134621933040076533886264351850983887941686225513590914729337215601064335499772283917611544640835246140273138826944506699956039508693889229301928197762424631463136968990043376146385355510646423300290886750000679614337396048135924233622225711522250391537951822883452578254346097460335055822513013502463865755404559809338627265057129253181321921270029194781230158682527942015139759757075961318004266070516567376117919299638778628536763698543235834773652594075632788035682362384026422181563756972257432071273943830174612774752461623197263719982997629252159954821632828963761421468436913406496993456547625327014501091782604386064475768523589824162181253856606605554796572998628508078047700057886351005791056968798515922665512764898144178080805733407400671344797339218951254053647198318916399266140977930943152209190838833409789207875346778628884994171749610058244601633633337614967394173772420787481356691469701283583888373628459373640699200673767387487773045289130162178503652730039690652875700755618836810307297176180548404214353207919694105017698982384449832484909354488984638832087666102964225329098110948375739203331902415893443786981185941505485678176341837416483947651178164764910588116551170061641322028298511433086200511562507051562186092719847528155127314022470383173498091463850315021001092436707743552838492339515971782023789568920329052928793740482204544077109166882690288291127894994808473446573000833744169226520116248656836142442333173354157963228043784509903765471461482971626136526645853099059815861047947831142048462162526775213439238675107958948488815410817009541721706733759494829522085133136001913868726157959132469317199581662417389960964465566310675646020843884338043680305578416623209602242442354724677755299353806664627555982428933932086328886098037417921891339245886271565189210845170774657683554999490727941119420662378389417935732189203912225937716338835425811926548354659331789303530001502126161603862880986207992381876584327138796861175734997108507533018951491973156812838255097441080875701578360330351974146578763227487079754359802199736418397757657870093549701561576164022571197601479537046705861205475644231900004742396457962570751864611848242087118970381436764826771567054637999896476934879417598802016393566460767414158064560526815712348657342150853188931355405602367556614558149745204593780198056757858811231856732073468779822138590536717869703889934270240525360576265109485933125334251153382160979287476324850535736983227684083174651236233124750876829450380239902917517020299243525545743934169454894774466004965106908434244693785439369886610891445273881369767881480764133097519999965926782971986736501439040270793075215990395947152171534658592934164839825049651388908371768970524610322883088989411087601978893384952402420367877317106301421739251466984806625409834250815287747212298230159680204459337986767665990707195883700028029712000759567250376827752428501497359698459804644553866457738214919706241688855023185678441212688894074394424103065428976568981291076645629857564882515363132302105451835896713059886700638680055592431171425993493109640700685790176317170792475435952002633164172609170619586409260116929938975739546242001966562988019580499709893468823443690048296171214218642824778101932042853985369346194862019390222334941996154371408381376139286861457192962940588645946661177190752524145775008976916237464480286846095817602628247496167069668724930076808041188314051047330731873191125808622440206272062064129112843855152195691240374570701096806030888103545345883432127515617866570715931952803883190346610964804562147274719805021475528511543430077042626380645171549346756973764258134155662513550787077241857087285667200818079116368367658206263322510505831803763202968405136645478068300989615736275572562203740378477261163733886355937858296936355411161731458472730940326893566869731466457620056791830303932378314274614152883920143328015544407003474866033885871012219202027940541565230510649088754887455553927469732350400599637193705178489810841088771931565903444022729949748327259363286712023644685333751383290666423930854401709793264277430135080229687292653732964097758063840790644013593505649493080388998690056064838302443090269293595804167982478560093117328197846122036407909736052297250979010694174502662106058650434331706048014713914256507374401871580094536890886484573575156914748197984079727863415951402133233345995890293718867904940921662173538596767296278594489664385953455080208373220234118391373979102326619869265423342704434552978874138857427577688282723645138975219108511953584927305876454559372730860274222306867605768228056237836695252579705962016653473410768507385396687644764029029923864299440511348783640782486065910917435825966610963335570425890764025014427052409576781307552392899712287984352816619636320093940378606745416413556168914196718101406322046111866513062637165893594912777713139738548756555813129409779887691505320776610972469597537046752435585008676793349549874307816605121153804499096297550324928723366304578298820388465578852952220805933852963081666796509641948631980531729721276739943597125775311341636257977932419434055419123611678746611149786550594560144865695615817562954675517367036688665911955905631629278070514676884105607579543464580825039469025314014369135554593678018378818776685706539834964796402834264718838025915643115419390288682078528374554481505304321946176644842630888085730421809955499198627355840402244568454477527445230641136997924309151654723371697419857536646022298553687240313644362140154719592585336577408033192112045423300223474165456774127603936440697487095196124032008172890063438528198334557570879637797881832993283674322432020924426128653018020368438200805981646814934730126571720663441566072796570556465244673099767094739407945689636726386506489582735880921186248835164474168541291984889615181431750507377161525009317129371880083809539776808813314053063122393549538312674780700774832723934944712841505742000278863682854910004435900111445616202803809691164609674023127467245665524620358392593661361804795707964026846612725187776865230331103389556014448471583323071291365593984371040983233425265028916966339160954883240880888309804350985494760728271252922144786735233375921877360438153731826070938449085055836296162901817502631586835996931944203602010965804819625469314283889773513886827384271442335597482117914639879852335077612781683193132263918573102138429252787462360111688444995449109898426081914561098414185916218940363666009807293140124398790512656213771524217722269068831518277936361252291647735440700378036318186078983297320445028877810853595253649626029302510999520221424987715334117322319816732840867871811930008395499113810000344694813315473197605915438466530023600715915693278755780087110575501662775869844409601359094859089834405688664368408874679098955085646015435793709687705769545212970757896313044733731492524416345498860665285302845095455453720997271483349903431342211635409145347028510067481755372639710175658986551562055259728672450483317956435764529694354846382557169970741345126655988616858601432036337272724884828998622071787553437112036322413985079268941253016593767110078280507039331294859630328903258133837432426484687559229598973179854226579111817796300596327199008598521668122654565861526256423351221076874350073583720642842256426008275030686651687826850536589252402869350849564047237226139898052298841139396685264900894253644907516553638777219948344178475732090555757065959473148712352002847118889502189330018526759813612293015283234226354114083047542831145352999308591091907629741632296333047225554845863399151928152543370676997656065767292300808211159733976678626752753647821105470749847259474472032913764437687622659939445460853405577346925271588852584844999239748509185079810838041354332695328085886629729686853362895098352680822345558558905637208505330396098220577868606255434091594554007826255982444851472541365273699250018836097400829625401598213933739697996553405316432662383050549549899023284127951736553915493337206128108922606009730460233943691076757571276075497067844977548458364418984093872106820713184603609603557300814135830582210488769130570462947398781336233480067400244224148835106300593678535225693839892169004263961424569263324714105756870513127325829980513666783953222432068140606569523520051980176445850801781564193351663156090694130346788170487012644697723675915878157949210269431956007866805737218586469380174430720446408842441224139753792037084190127854779911674656399404781688257842863272730962124498580789120024942705733014692626974413405064692518723116990777886477436459357646325226552151583643388036109702557294920186315725564904510001920624103855442027405377357102366416188943284154592630682672559594498903314284246213329008539187253500035392529211344084265981288119612015391797795293216613295329878782591086362372948940675883915737410043451286177888156811787804598845895561160005353364305754295036193098496906218798871263665301293034892839947758666845313330311842679879462065703210432979579521229201853356288158266652370955816416102633702600840098592972144146481434505880056002623063848712179892829803411249564889764526130208564185670904344497190130006507334384257316248923520990317341474200255687355846637648634439193502546455126619122468677393333713081421562827999404008956073681455368990218783752806270651445723003974116740113987244914964501837025009533603967739090462354648046213221510856227990314330434284957659873044762398063473412100162392038615365988554768230240510766964321960037688139801906194067178142264993169147212996304083089347856703952975407241288565153353510903496189337113867584792419711678340283111594582488413070139544692345160948976014281001140362136982242040145240930452036388994040717476141165027181880770163478729054459014572746783694970134417651072249177879542342705790582301943392752682247996441515207583695111971682557779553056697019831596026333638194013417123880614402006892178452404927323015215874950080022698513329747528936631890470817388503709248980223373467316825735819066129800253266687248936447908514629206858791894394088856418983107644085857024255712676399680686954135827313252494737183444578043013739870860318970222712869059778858889742788143962799068103547398975958248560280409793546743335922778222836484066537896923909525361181523082757335905591442240713868272284332768996261081510870652083262989528278556466959068768242285085211823974190458756666815462986049545362267586960616707335687812167459736999597175903575868504368157261628885850719773380337646712640620530749839106059397297542460161130164425770522496347262042405121899907901958571215400108029451323210733152291295677539970691095893943896911188254586442122568972942783130745180119482212432785998544959851561521172190131131817444471886982602355291748802757385796379226229882857884796926333821619548053346380881002413870711861489799624206472502083726885923495357478012407739457558235079760697069468666392577284927581019703908758082739657695771268336811446036836722222753776285162020685414576483959724483513164972054621463762119577171527539267698017602809500513074107594360096168919748457016651623488937074136201006442470747298115906985963638087187143966593267726194937698628136597958399861772236590209596119582059674099406543504823411025298125446060032096659770692419028436897023231698951954318288007995024951915613875949493777579270695796269132261718305723773727009630057619131557553639217524412068802333381066986514278803369004288707471245664430214397816396727906602505283976168739745525050590496216813634883815571936747078074028437481140935274815391951190907677974085818632913786532359351296010292211033320567951445292151040132441461375393089736029648233805555939848977625841222028251608009805419919424234627569299536301131309148544289464338312146128203535282939890399251546571027008483277089669960287346979829736323660019820271816192897804617667782753521804006659214111565894486844272070516722325418355905369925627523705537905524365854108458913008364704258828911369010653456707530714027617437637449263990148592114621760358897465676671737077552886466630344535325140771903580082997637962950385739781079287767521825191899718746620319800560083660055189604203995266082652541581428981155029851062751840496411714859975557769209165850299782565542240043033445066158640507602802121728297006539420517927505075782852289628394245819289295407125772985657013718295917638805864967938918485234455121117915839983890915789033790417096870072245969576598450217235762153154734324463453250562984401985404838966468712083871864686757895039673542063637171122918911194162245487483432862146744634445199188786557331888277864175349792121113273165324782399728590184030064641788339450627448686375947429122815435221196247891372490504104946990693658108040619675328950765996773153822453289850969392669595580264206065223299079171081650011111745917444251249093912838569441174797181434348401663372407039042306784844503718430411107840565858518785302358010771941296627478447844974627498289794091451506515952995823352771885753606745936729079829774072404422084848060238841671713708502154670639567675609797565112872361179849484851161012421926818913624992314264691365974342709675092900730195995688516882472237062826933612622168644798245557730946484287681078917068254335857867349460554035984401552545137263877389342900974264350773783046774362932392441593113072969192670845645548012532612470796762623384372707886854784853954693373025011088766046368913536927951594011109663628746034503880805827632018332371679114310505654822874088494995751343073557961362724977107890494799594589982800210426907733913240411854070100559042178910749929162920810490174276208492758950802523238866749085672573949231878639393395927818828660944347292446824160618370828413084544212382612663642540631167598669473706891993403841338497827972211476958263146583073856314599165766468928829248235735251202778515575380680483544703703957695841953523533821421376476795126359729021198372863255809097159920547153620536779468334504538670922120426186516861053949052607225289508284016258906862282246524296442735621554152569909095290275118255243981904181845973695259390559431762557351998803332107515154172123603728246932432225964447943249828015454229508501970574651213091468107523566598543388646215066861051961159437317768626976787881671388282599525322668285596705197168762856938154631470899828952995748141299423416583888663170131431631537527361669252525794908063821212544196119081494821034727592525043339258937944176063507668487866280231472093003859928611984032713886161053080179684362290985295301125083508534580577560510618156829042176344804683520086686254021424931166810981512476612882551013647060224603808562868952063025663121856837852759602859408250848459097892156734851285367159022740993162427356739658709315883429036129420068683321207599420020905061489632959348467231733313969944752370966981644732339857374244584654665334678670572093085820384672725037106878810104091138588394732067006676360675119413919684674038926101589105986392002453435638279978384680942196032640771626889263512857523224868992147850088171914164760064760618334517126935227570518032519562063693778418117142667902303623907866890278963705087413093929507658138464026937248844755420983243823655610047536655590491019494408027954650312690835955858580127715621159866683395387090698279260089885287472191462264624283237152486130029438963318506943224643150212368196889453936106402912619734802814004251829924390799835025636847185174596236581620832080380495096721421626190452805725336728867335077183094361382192478920332430587587751723099691502766729722808771788941559176102977144210649465448643206133145994939481122470064988647112460851175229538441179610428049542775864657311022797319185027233364416267816098029865322985583719898443654176673882730272418623374488502680151607867642244260164045653605674157329724321952279216121293682915361341152901611272716763714610716100592611536487424791857966857828667936972893362319023033460906768798275792067532474474499857078368131630469854497884789788224799492821799973785456144939326990216569178059380615075068704227527326263035702711323213430981479572191230227422961448437203711556492505944527141544288837191576565006413282019037961520345477889986092565792122137968644687628456073967859198540924356841930449940532130805146964266301838975092345482298305956620566490194842966119707328553387923139521191929405344797282951391236076428414904057914211911550752840194614060955651719649784636067897192059248367196533016166783604958416067169396681881802280755771263978673688993533558370559113331489570885919202857453616642550120449918041344625559628950792944641143913474441244009360566994913049551534244307274880992506375046186973601808404881640022203320788341105218139179632865636843652630842298506405550469014281593941452986991398903780672896608270341451518558170750437010753536489982822517672041282273168278311564190137929666800457448787460221199659753280461657436135964801722568598629607231210338899840404495814104790798553002824719067230302152903562189067927058248083286145834807798635629612640380174298147292697481539208739947185045672359109730823194872317574153543053431429350151704935714273374827502087964248003872200157214212860662697778902954286371605667047679104303525286921130509602294804952756151911513775768968919779859618942390664576089324613988690529853561870057197662862179749459904735162340040225501456458167942714734794191081506559163418584401706057457635071213471786191839808147947492944244991475395735128711993037044593370715107576944625711356993434007700429187372806414293999143452839851216310938815788782002632554232582747889540505491085388847100939495502307533652042822611708611481142404296061442876071514076310892430081045794395431053584451899848221506195293942002583022594047933091866237954615016324847263804030079377096850112102911692272864339371017599985546097426552195364171224512045889045051700484640182180148650619215911714800065005475497381115513541466712369542506897569274401931699264627951846417340417417389195971608331451944466073846845811918546611772215570866660252235880741462462439860523264229199583877018287668689164083536965095620699269473238906768510707449655657406110346988852544603808668742720634054810979315858166383278866674772171161351858259708981149707733051524967954550936056245701696676739449331036123550706763909851629071404494868776102179268406929043228205959444382423676242049220111282862817830446394037564110785923754251734857079260718214667799969893997179483757064979498142621569826718814210571243262029362193367976266375331059539271738877247346011404136475299534173278677783205642394565905251044214259659000055027998531581834786878821777008834202244311282216498197165463703599614094825904153989493368648656851745246767682098363989390085326752092495028289823798784867943348539338953521473266628281006595243072139540783531550033418472306684162702357230479116271464241523556473685880928276496833614419945676758498823857655492894233271005017018259800196773530184801079481672725648998882649349162580272995026737726226127166940389935212633672697979514476718760169023064267145194341448717252185739450640431717390687127831653785036251329294511381756324840068866290816066169517286161264404040324676529705287720783362852800857218436281093480988945443693672123567769003234338363433339821800072189939362839578811459151647729602504563453267915580680431821057765559168341247548404146627781716649132544140028377924109146224488808803724804466134155393297272705689266129002875512180051129488424018882992694754544826775943667696313947629617310205075898660105623107078854291802718127986073772926751961954997899202223792498216821391368313295376481301499978884725983845359624990962732676835193705844925684938901901322178034948470093084315225845874806251916847493271979354361451367333312912619032354053651372623317119533977667325332857444359597361900908963419230642282500454009846271377604133303446769181000800640437532885241884597731752558712834767342325039300385993241215564345775067818669432335597258448860151790480988079208308561818245319920202882011837523929758600847800119836704219707344191299670313498007989224873139564124390515339514386825480230506115888187252457878097471144749645180161106774729902975250436274947556708430560305151084167040232475769942413050583385305807899226141125086802787475989398873255210032301128001773615587292169845662101726632513801380242474664731596073325128777872696318426071346752528219587082675537475978637394046576798376764873571421938568101523044944539705464815372420925425263561721003850642733091807495711398443869181518898648615356451664136171132686344544195232637435028407938259985052162357521794249264018704340746127750174714475966850582367395118806199596855225087504471106167665974303635441364236966734982050856734293673035559458796867807930454918879118898352603304180020450699377249030580512506182587581319516776645733894192434296635572799547598594631027837289583099169657840964437393640038801005728721006752770856421383398151695189274812571448802426991849407435357753572248522368843311208970288607826247059781340129051111266183607210167612063695852241933108349983114391171608919397985873991734939295612979671349781105305281753836940154387254436118925310560905263892521829366208492653152944538095108652819254990080950387969644805014665984729429850508944734395643408870324887320239594608437766006274157334845295022944169828601848943270835530471812258580772426823112085291414366421154618626906341902419049230891889583169256941970473764189516335620248173405297082208498046446598817994608175397158018362357793684836271139432691242026677362863721722870084172768686551423800553301187700744510176960415019134430805135640232250949242407735404692107016590336702400784573182840445917138552980461614310041395806057853894991020286551659438642448178414416022145582769129533005989510539862594369970442114119263958848472564993440412547884788782526016046194084359612977450932721361796665954951789408334414171337373804866456250681149786567521461243575115565209761669536275668881701639300138231527528975894568433094920005541362270207383202668753337142945372652733260988538509935309539882723912725978481847397161737564400610909230969922637767861041685352130896089930030851716421148229129845749360558382150843097556120621666677089809855119521822580581846900425047035131915836772650750824462741786100683697819818010900338081938780090360986588607849454632125108149300075980888782815132678083227041867923928729682826552520791851848667702205508092614614655151918136920422230590777599429516207030624159587824097062123415314717638062834652433571725833628430073031145640545626363110769678881418776910057889855410200708515733804720011691543559870301724321164459800646864444292089333672899451637378675871165357688840546577492255307814922000839907904620595403809074884979698147194495738044289923846972339232150258265468010898456409615275415020026993372242812112335908020694157479312094548688509550284880096898528789325337516280393313486667887126136156867063815013363149849608477803856214559054530515370501473143540250565728973665407902315603301614353459009982938837892829528218530183211224313940925596361326795073315378013307758709055317938129187041864284440669723720242140095913077561807133301148306835358430972221880533262575330697099645501600945479275520165195667770488935219127851835108698459167246803997601586189576340060433147826493885173446474189249959098818817211066074596822063032521778755147969389042720513017529334671861012484082412819740341487076528704016072925494878539584872083110182118995560039740185942379000899292953778048270353450923709581577789278410102028359374692421380346596628770914241315627635292027672621681977354199550154376629652713949961354698013536947776988316862696879005093884743001852021816652884200386183923528842793598020284204284364564592070500769692747777538739588874589007165413769994049912883618828691010707591969843569126766451752312326206935223588034069699032681689430372197767618925133569368119990286859335450117954310079374920739261071551241864698217223792161302734275582051254163391169244008053799555543255888554034523357043140039913141456291758514572346637348860450302635399113606892699552653066096549218076316843387913777686932595809311998771940094002454876294535667330705960484709156178977672228947432562222048432229719818039144467718767293838233628897164633663532793156214433888592336506890073291918725713716113596239485611385566947691688660967957204475496941075061220281556179333568647453355480280671210975100138627687547694322333082963961979026707843844652956915438157276074652461155455992981458479433815556610189882737864305752040997475425572853794726373911128405568985544459434818701864616578659633385579142704909556113021518766862947849402713760299959401414517966869783539584952934448656836336852404353848877295175896537660405271457170667345952642768617773884611534608526085794163090278463671879390558501482025596582332978307644127062391043697947015180555720952167137694858641689050445727588239882155957700824651434761114110326103891922047493705248023942916471913584664595456822002424815677529326227384994746967394757252734813314535546771185167081523771948699490439647989228356193563115764303268553022958492857327101802824776809558896166058324930907827122742530697672197986972171028414381669478281414502013101522137451322794310252064015587387910487501135146476435557028041387329662343415789739301428776301704095949025907714314779279058577831508966984764741294586653834180833409132797340281451823807837200200765242954261598429526323517410300699559575965437036816526636406040815542039313314330601511836004863752133842311861424390976095508859889405417848042502833761217326852910538339805754311880139043151053709530390423257901320643573352019048051358129986167777485749850204634302761769953252527224087466547119940858907699024179348738728530583715485135957566114615651662487333176853850136084425229476227619385452677828940523155888299420126797337942667126306971457449701382311026896419541201186573697939024916553582546301838426544204918288839042295900813880229103831843992684319532177989162667352658503690240418891027090693900558344596266909598793380472854200418538532327525847234032105944064980714593486510621710456276360712283018320647445288927222170775560409892403931190303237736417889609263250237247356145152509890585015144106720909434088819038803018329817356479428317399767882989836575653688332908935959355315016743934782932545570945119048373208799627120784857164060906519954664188488807694045089573799894543811088087915008930789246754058120073504299140777836347109546730329154720185059254925423513631034679398685795374280916942420148589017006423544359540212874802851352879273339091005667618186125328616768559760130161408173287075036406536863507327673667216057102113933650627383707239944961190159434602940411363688548295243193913337339475185546821060809955782188405208852914263930298326974807062464211307607777045448353292803043219598211729819611782953557463699716939914219780082809175214361808339282450042139420034768408201493210669602206546367240807860608222031789796640745634229622668844856338629829641019001985301183357702354757460839517285164145374126458616781970258817206211379603036923693003578426484707634360135099064570783141955693401431825520664659116546264321813520172289782140964155514907440136211002864510504497888093217921652833202583418539997539619089982996958097231480334855753861340048208171123215182476848184555486683397602614353699763458818358073267243676885351927744323327186473696051951734571230997469161922571100070334594108862508971910201908554862269993458964376954230578522702420333380887217621094434359913925937608354530401049132192932783564914052876588003309583810948997155006983755607596407016855691860779976615973331577647171630988483375744040546265456748489039496082395813900280326550649625764021638454653252433914193638982760286302235707211287048257705360292897089211117497063807704775983493501745082237591524134432554064381514353479781868677874510664079150569130455230106948963885971249758742516455938585378991752585239279265959233428341989478470414550353877207886239081360398053926379679311354404334172528504738279669445234174702588940387575948427935092929199429742395170421316798505967756715722531961221624528689549371372609344962554026430382523753784333479910367073841193853387103789934396444254212139300194236927709369175988278216656503138398835522761387562970750780142249187898681120668733342898150417013233133027970807767219328316468739398604965329291569023883161877277550184132794453169096880907704636968543263917638011544551882714852459419156749927435388510670818356324836819574138242505351696160290092807668188720222521539586734079384275672750127002302039735191822876499158035914474998526838751168317288443400426873122173818759406490850837243972444046004627583952313219493513443048987014254804129394761475768676899903326189643990491752616667318383966115477742710997268698532361229415501144180643375632463794087454569549802711212768776507245885049229225411481514412987440063191956007102974881697932041398480735044803782720645015029235694346117914795529156578628426297310895463074515587966503110533109914432332803537520468603143143156919552913989913039146357109519512381842951248630205664380217852916363731525016558093219457509670221269558841197388124463229319144789140717359935463563122370950795372269560418883394648119128582440744582942157501410870130699778617261077314401515625832623679655328421505618439059863344610608335907046906210862369360394151517513589118935482724770729313331014282410504660680995978448512643800761201269834208604604659388648972250320988948284134946710074118804415816786132539996483400484603193170344783425209190924269795119381749280544789405122330807081700692388892993930491678599188827325407787964433947558154964077936337806556624508101172565754598749813647134275270564315572453737518238153777001701697934992136918174433046550381127666472554384113786200128447622606353002101436401197229277973947547227387443478681277109101023005795441032529649587553386887708552461781981720436914233561410854897654399940377282180193683429981160392591481522945327795380087042741386374322648390742220919195630141105502819143986038174145840920464823956998068650203595737634441490011036935890562415636037658225417912513672746697651587865215058782820195499341099910646055067242874410159239806837719086764115090689077133192487658427784203463883878968624567958900696867039651604775941918028619686802412290956721612535762340435774925846373577930790620951175740557535087070814095604395143376263188600381349891453871840724084402799212493433476259378240773090987468292483881929989838661680144241672424494455485848544256679439876242170237538426502245533348573130882192761688567536368712044544987495624065677535026087237965107384463057859563963184400062343140210605555531520994715125571493477620717434760593146095010718106876992172303502765825153354474023934095701232692765976795238275794345704015897014916601163416307013892199357765017934125645511885373838991183956560842034657780328929073106037210961190497031919470356592367023545462354502899079840008201150460572880008225953185960461843287860998095680594356120282564603853625524892572451706074771815847503524656474210736073464652812957165432036611422541126383237072820640237799208244010642442328644148468220624403656008273974091705884060227874501078823173422244869027229366628184226250313828760811348078886313490512456686282404047736585963092586986291139973663022919534625264739389285409308594969367005678416878889596649236942506027593506060044582497925283037545086593425863268344304900195377542824719127450305570428272123018577211222716735370778389811161506710922083065047600467863691555807931902953914205167975800894294009578269946586855676809680915983557100965687127949532910611848586466706871186405394767266828376616471297231415784530610488105152769058083612054183559988209843838349152269379684033561467400911011090091696000727685014099160617427965348323776533811165942952926572903649103372503396771255141454040086365466183749745406719508022962217571018334576912110863091219011045582615645721774722677396521782608957633217502259564051585662263357747017803839349097483212758557026314462117287264183039169639487000763907838838722873316851986063981274222895275263832539222583719888066268331061529559522472092593002907202950404882546279735977299519856244953477268214979616019304259092511550892668356882040476030348401100234210207227733706751360495762577441009286800228230334404996361099772934177241261776400126637957907888568377248104463597467808940551860438437870300329683752943940881519120117842921852222613114850290611154687450416314097032521223502268583122303602065032470146842408396871470121210447633922436833630067479455818442578197622468022524452465053833439157534741572081066448994199860030782682800000315067378732686765289468755689298691734675982233537451538847824366879805962696905248269274163460518390817103445503005992687610806915432805851821060724149814292213645449573145124674424111730996237311290079845698007054843785306832302272237929650180048339174811931517845484540288732517624588489938591059391500541310583520509906611467542350689429377767395242181482919731217102221548575827930402768924420740774331409434543269061735192276327209955292934206322195475833666422895114019274524588291435370977415215615998116597947337638664624889577754246023190014105721954407651760099058004013139176020319923630600120577263076683219968378095675152884352186504638379920908440235356170649945998341149038468064149874090521836462370518943730846031003816099946426244495458770430519156200920907160853980132917205024378198566375918824849125843661661074968546130744732398558915958708353707259785071129342846959521458516621735566380815202113990914725932125181724214712126200190338982239198055202675521028271197593925468892234697914043791388912394384177887045910952281925992127289099700822571060030799695762317937869318412119237979761827623089931189503161953490991977805398851790495262523021502730080754880017813066205939229129337298392891377475461892742387288321357293503131368858504004974647532355275724835764931358865356810139360399689882948639017490810479097192603237955266410200345891606114007563694189809767781975841040810853948334238941275117029907897541229179058341908666453567890855386020388961082731178506821569058585177583245839997005119189020417587764673162917667982714986989612615700815274383199580907300827438930226868379519360602688343509330623512180556312784726850088669572373346483271334425776495013548230827943107146873273225169107667467171160321463672980898716213312957683857558605939324911774729857740691025672953485161848572041461740381065061648593517047819798198125662441182665734646852166844198712777426384149905431405583868402575180948593278907116476480319377961250244321938925658673361115830634985867363131122221056284659419234757876017323496736253048713373949065370271479463666887967980079510090539996492657181127430557824392181340076436943190536329147513604286524987021839238929348725357599508888504685459663499296323550269861901051225188812757329693464848482563972193850075188663678850817025168000042594086857238439393124937426821817002167864373424909631485028091411533563993126333107454765191669504016674292075593759825799838016171310311336565691154306011448983970540294326260579257722900027277545665784398813882369546098925291725193036468591736949280093261264805527193326120335742195581104295987471553719829289381382698810552229093255081032553489874743018889483698809354509622369172070733231020854776274832572005485072220392909059670462124292599820829139317032399530384141451722389628429228533675131340651149840396158027126546000561246251796306398171694131792215595934731979240175473656218331330720531789517626179508612338183650282268416620272180274489785839192916872437036204798671303850551115349089873127916125653234707073369433468452634669249995803714869988197671560068806257117223980359147045557873093446579593885060310309071509315591127482460529593779283324756410922990573657172279011318760375255648487993250952051665485169761386492702547867658441598647250645289160232417401542516930869065988421431047156932131771891444508272824877646837127065732445947857277655290063571651849472007564888446205994117024617785735664237627663640720708750952361708344524373108342469539494605280791984428335919614361909983153630635790859176368541465477163547851775906793209682486954707799514148198698422072025367207226720637263246762267229761507677004545997930121634015738448740843634333371838700266385481692550983302619836772343025367880379393173224521401732411753478338245166528705508512129741512393759274727184515906552011979849991019704729665312870994024105819777275840379517166814672438018464867682576945060629712048986455683059648584824393707194507694768600200437559911576851115177403369911287330895825406869851711992844621952240573591447213263578755928141754384571326996633754835382507646948326975776209324288559447231478207419038854577582602393279636477571366281495217230874577608658155936922581292024978496761191568633693725324027998200040361788315768205588532676299298110002439684744551777174770119097585127634058563364606959030315598135189052577617273133088438891529774410628646716702485032555473413292954413458270516906214828710599118763705091473250555852680381749450896772725620657757571876224030510616192929178237460202062048920519523306236464999628822875619383483648968803121232867052544230750708602167668943002914896300064265096960770215354988230847458811450562684730164707317101351310040134417404722824761685359976632779630228218813294094557854945307913328894950155366923335761742606398980551373567851963842491368493249293477876116216847832585583591475739985148909133241619749229673646924638895427074708063083503401805669276982637124138832824148982046312638145449253382972506570703648936030181561873199722539490416733188730560949615415884850895025559373135954259432706603819235618490197385966167668395891581736972782021864774384044190152297293197153783388426838651917343690919254292425399362243710365966250338186585460941978776740869922147144819539992525319527699071068438071251358619463772022586705763505679989372255503369695047986426092278862050544746590093927853310320638863304551513629400354576700804360596467247568159948417542137833717009361328506258458093241266790021639814191157746965825250300962156217309176380208372895481109172737363401258148403742148187123426601206226143652388278690636529533572053574213451576571843405174971721075738086467418392843424201859246686766593934243414243008823306160332601547627586921572705756833056020906170642605892052028481102503588270619453060445313241547445700775914447511878138032957037880920036386231501371135216604231166237023344123130875899658329749386080200152916546831135113091134048211531201137526037201016886935738607409467578792608077368799794950147313535489139711493363411230041290420311069462742406058813009859104396622919661150432980251518897626773915584019445414221540198669299326161081628345461358024859618030273035871604668890119828500275608612182039612470445042571756181132612512135425079388661122095885443263092253146107721047863191630255844575081922166710161051325184781964368200576878691034307402096630797644120174096160851982324145247009773037100008623066971393965616916884295355097396640188375164568566368028102831378686292992445752297668486264444865008604594065218384859910611916273152297675091302080738173444316467527540151735527174643095432323108543517023390347056407124211430947032567062561310793122035374216821255343798655974666634436260534713553874363051037569881427150284365114405796787386233583563881199370864753459016034571207622882465284682794369033132038772806461445605966345825780828199032005851855522135613209843868170481735017645102798897264763775309640279723712477509961173432412771602093047325464131372507343287248921623283778722900671868013017619611034289801586608685152491660135240889311982573720168937443563553920722051747720210429495120066532887014477516779315324521210202507766335717705727804695461902377038486736603892367714214892618061301801104256768233806233872763560917945049057440973409123655515853942734462059970652996483806222645194216596157232039621279955463415888764754341533555315607483216160192182901888542003793726480970819530125259591695852711494895263006928320579117434195995943898117857068360920343413732586382181819910841959547188061223298148144916419245029477415080528208807425585778576100258435569204869575480525937422475655670676873813925797478411075224421868768794573133947817017084082780220977081629967810359584595624693309631454210357464408633289322584272938320800719662813191034543357460823492471001991961693714726581173886159126174508460523703679204929867122230477012338201244925994239501940013469491116261126426618531970557495880511686092056463718610545286945482465355671402483993681574096758251525412096930188906683007413935588370513950422396420308595497144795670680436121657846868372575896675349646880042546569206650855252290895696301944967680227246716669391100587380149797258094309718522523195836821474649185446235796820720275817547995778088144070489643534442309667592703094653400797654506977963861206581163524922272218702566189939502321145003520273337369870642430980549433475930803611278222835804670148206783922418973750208697526910349730502455456603585969103214784152161993344757793666978089416423162224072456749351374736827011649299916527307125710136601856875602981181148341438311310331442082557052704491522252417462679904681668025849707810850330188959013670620082645490989031349627192575018070394166375503034843651683149213936318570364677008538128026614855765450495438234446272996680410794129482276668113530406625104590114353496029465081478696952079653838892569005484200932672170715416462786230356618120714286286737028597643919757511300086284316444850212877787507916510944561272321663286725949326181475862170848931647461239005511678569543977633410281607091048536301078004386533912799665323403070172042742832915324756850601004771352739463035802421302432422548617842651113126949519757876528092801998398290814469970747110593509090049002963960177919351801332655789529161492378107567251136193203961503663947047857576039773066474968855285158364628122161747587164292724865990209519313171151795405602622113948434601186262334324619769736850189119349217469476664999600924384218955664807391655987085843914679517513116561925462935145835314140253321525701090921867027597435180039045221665285140070288840749542264190425045987517762220305523722020222557621566911863462484207555469861206780015839092132603519294038789859154729434066849577415440894627731106450283907253370058046741096026446846369249390355295819130392634092769531693657095738004727920349329101307051447674781136636232970568195611032056166427358135265116242798726276294336716525421190295467302961142489601998966896092517292354031805515910053138744854910283967752218801112392479421757497429586982338479318104202583611243454946970446094042943413982750524390706565931112223805595368797847338733953000330076973295687459455060790464036833052498406985985175039076228495232703467017435493824771183928826282395112714981479262977152582599603909737260184479854607102155588129751845528655176641321934589948333747544207847051970902685756587805014129796398890909876832290884759708783041112842952162641142702015690576848663543124912960488263420671016484226928331939935635764156124315640004415369707491011336985151223293017429300978044103060772581263826102257599835138765418557149789005423612816991928508494895950758146368656997503621337671680038661175556413626084280601545835931528822929277133668995814867192174615783772031640307444809616868083870850805409480226198517671763156509356837012264149804550308110041389496610703615193284839379283657895446931069113464976066233077693121978883732667787509922260055542467226910304173050107788061214340941491141989301930813234838728451611650583713380536909311726457244494053721129200208187150236649401566356914244474888325973934948872779863862723201312835468428095981703729163110169829946189780697039503113587969559387327773908166544375005944907288600819682768810244812591470859956082185197459576030958354744361213334459829612326333017783937360085142873801147152913696718585072511976981783474138599318044564514484106028533954088004849722343061848244410763216948085149249438853021239360505711721346282192691658933442648940526703727706534132005724279978873177488293873739413028309740320746344864823954950579732989349477091890808470132792307978801101046759217314386949216242110407606926162359601394793044227114223683678249129655518169074346184993186779552970062935460129576115877971641039055707036930987168943580718644670140911896604320262626061612260249268614090349779856496963054791927687078979038509172252583028475916516384581699479335636056459187031258962377874376492052927219172912281476238210754278966930463577585309497727064856969388532451842823058201319738496616731468011919506720577939078463354695865891351412314313485689104402285329159010598574509032501714807954756932339074417111706715479734273569444290366203545830234247080487537233053026254933349509824002226778257713400572591759333522703479201354265132966411257170351624484101371486519193710039599570246533159420459624706711311066290064897587611534114196276744533916788409065001846514870594120495287415754401179398954915435045391920806826090455512713461654452785261222657902748837715135731581517786867572794971250465747313489152429332854922194986910351993877006262540131206895258195735010667664347644539648427543309695824883588681395328206163473382965132359833635324686206594578301056709682579330018297429537310032991228374405784477081781517118037993812364040716375861538593355229533801170338779136419975164770317325690305534915773115805381140607208581620894005281058859528338152778764067043425228551094153143848939195459212963722368949771950083557145106473101716215087101029869763817665640341477664926784192899584676789410435315152888461765953086390186555711955451095832344793698279624781461840024233331505329588149800192552785180466237968870638020280252554169251201127569387391144991322218065271266402665520088615456967613458394465160772011063209253500959796316561288416837669442564512529689163363211348725548564407992473691043024801905340126444358128679286263203039206008257518856594506685391478087977948954912598570988066346671758055688744145194649172306617706159944858470508624647022447434967795117900092151645861872076599386363921800185343724572388053471765148194370736235906690176313255248084616936684482786736427416297601951273566219651586031914444186629817200165913187252699765318359778653701148497807925782859845842841701776703275376425638758330438155190518639616294336342124262919073363083182216154416828730469523516374986360528938641242204591494045607134522487574490181356602095651068574114168634960508548507940743307874036479651757657843422425279831887953332383495859246855309206128270005860951797103303944469144945281418071425654156200424955827000775260887802286794561074991453802168612716308504435554386170395317658280658306364592720090530689443202499283928745772989710846170705293080459844163943192596521420745623891795092676684348404315317449722383853281259751908284755124245227727308154707701572695574448904615880397675226756464733809123156168130866086668144798496192938474170036931428443487454659854860126777160421846726860664604705643886466270228790732986518527942075692731577081934487427925337408119583248076021028885318016253002508021733706027252409596709675611222900037374898082906668624840799393560765162774416363272087996731271284174977304800599968649766660925764109669935054150062925214085401474976860539082994402412843174015530021438026563445962896576420128669242644865498055573837470518656440938938859116421527151784080962243865401739220868921958641408820873716384148937886852035348918965935797542068806490695669627672694431580699616342258173194825741533515468011761288416489678654145035378231319263229842527939244139077021764594439117119665499758043001027468862092691005276082726645115980477901547702080899929788497496306536687086150099766470120554189476294600525543189126546697963957421410795569708240529644159722674177477999512713637965602437733639672899438918465369002491182025534281400656982111881302125419965799828489821222933887730960139026478640923962073539675400571213536146886424911402391489585908565839100618865011089362753080349607154113398353241759859651110831253490579401631616228211713581456223455219537182857315794893287866114639503649679188942232727776059195267706229664923685755382117047751743631945352093665698800608924307428123270551655535332717842531112605993660152585777675927518217396749173582390064679184676417843040529362723292257605148393177993021028139601601418390559655469690445176763417422355839792320861147740566659170875260701570762634542274502914207344401779234985257063198797826146023932825186178910809229639900513796654369907158648123059753052731412670213548766122426993022273615420503195793620072843677054318376793435900709537875618314607660493763978114957807451688590950884229955706859612665560011223221850835910515366851936878905877262608643630465831260670025261188854131776781407131638071129109417050192958866526050608519846268326511794605086830847849918762391687265772234957399208048273509592361122789450635120225894555203309182210045376262833722472210443418746309048325989334258947932487518540735877498957392772072502283317426748543606678351526603074535206875455458804996994677722860057877153504829026256383627031930233485813596425972656833202973820908929031882439886432851653704855386284708401043354723665530448634787520074685841294762353247135912172110159264483256707462493956148500681686528281172428831262375308605983433115274109865707676716895406246544233016247050669576990734411613108428450048743289417982162537558826243527042101432096528124655853605593009124423429599503883226535909436770168122372776940820871698624795755548370117739532300056964798288921214911280739901912934014185267012850020316791003444802183767048406290072846192874858759076318845785040311997427098552110047795400993440619898416620067534847862118365723515009076362517958854999158310880687451940050808294474392285716068597320816469902887469496875931869720482227326738233749034493137243363387726811436414332939762013667972379968035044535927360372461341414707320268579652505602142134175461628604906112887933280009639099225781640223533974043208333112074716590934530063415921430233669278451059203285646073919747733284778114030789645108168762313025709274103361891280090570915687707670788991312191206250873080929368644885992043351025109050324672287048209075291873783047389668026548725915930125697730964951618066450922632393609955047805089399566689563992774064011766164864434015832517986792494297049992351590225341268186015971699154024159812514494333145324291183594876917560441778833368392607394749920468107709302954184478254707891091276991653765583997249721386919744189072557096727519227038089370383283658342559266854355481985711187697345542030078791241515915968568234758983027940963027045696032468508163700463288732538789628547307820569110239742318794169273795255979229458680444424251797260182437474985816961506101338018086710510464718934181022109788219138406519477519370273565220939614532909609603234830612962323811542339506143979007355558250499195003655584815409829525287029833578938504601079668193251324151071017140509869145774714374463389158763936352731450182647796919550740550597775449903440307778151198245251059216656574064592962220084049166748260210858185707381657633482907759735352681675906637090280869513033355126934480671029420141116488260290352467936945499244030331627238715731968966714206614195568074314389991724626858462671358910172666490632080127945743928833758525929326119415557474390354461485492371879490027489898982075696713938437227162863624746174758754183934090204963014418472651750291732298130567359395154001989375692676876571091465079966123867976242469969373858708607628679638730537389016628894019990617308859084655940037320327353796697161612589054554687383345196611989551814605081912921151850785286435335418181954385384600844063851346206885297422961818326105162619518147560130677394273087008167328711439823772513449182822398014601729385389907266529539129558418994626305255716580932688163524383763905493076002302524102306061864240986784042620210373624705814107539715892953623671073227576585430781842090394394872192835162778299115674416323801944667561786218085907661775001014692790884419559899814793897533255166962669761793899154661789493734666871921929101223369973516967527756341286422740609866384196923071470172169336089133715676318926008246271123313235591896171551086644634044315283944585201602813926455295344593541971980462364051560454868646872491017497219069609812472320410175289402466081170079184938418142752577300681322386438275312438262382508523644883961246782425735292871026647856453262615694520565319156201041647002593998395301754017299046430399507850925682136888082000803143873211791474822522610043134275364182887557275129535964999269415991978995616359777013881557678042630251691409918502522956437056338134831267559328374477054341835456223918810952004973645581514725790320541217393143146965072224724334536466560867686687423836143118295540414598736609289305449650185642624611339094920599847719333005472409788628997747111928677242021735413893082902333346964258678275233666190436421585422053006608379728686009043291876797598363471146809908433253582960814702008812186711693178388870689134697464339078705233144752867503669732305379528292284951667077161954364260267008203484726293332735257347630993922070861156299002114729690824282778805109787041512759289265864526492013257929934403541928896152697139105832007034430409419858095896599161564490256946034249141488954329012252168772203724081555071602400343966156827242620022362912109315126270148278247873412688767706864549768617729956836856534428248525029448106425436729103153810700516304486451116282762324554180200650313807814423200806585900251221973781295360058128185617538824972141280029956267127213110964757219029710293273486003541409320585003246553198122117539064342128096277335673262109248744207364556924776167082799474733858438338840016235760846920694378155136018182072877370974353177396822940119799469837545319870798180261772937311630416165344954517387608324892363343304422636553231285017627580320004424985219962681911630475272721391570123908857343789129740269635493723645585411761003807701733614976014796832174897615805552782881144033313037056930164686886581939229488420617344047148564516911419722315018263498698826225712951424976003184321853323126522884419560823378037510797219441529943458677963056130073100246133342470135969923175439439202187279521417071330015365628531499419746887708600627769151674748487591267028488883681410529360651904077138068111642745122233459959207948248377775616285140855770866158538868981187160242141278278261198176212837218322818267794900735588578932391616218019866211827157168784731306006624845587940222080239268916934915196626585655968079177600866807042926169170810530508996101372721094141836798947951874783062203214005649651228822400069850952155027260187298752131285028504305478232420666826665254689180090117194883259214382945511323875781338473147720835230227458683297898915037009866325773054591221871054353082831032856170414565458633137774597701342964530160322356649861876108670815565562023059992468858951032721656420939187474800296508210911902291981448197883404916124202717177234072069190520330167024900094563022194747492055924895180166793118653029113166166420924283551520781215132409820330236879482238494935326553614667952314065088988106613549063429004001346976751700836375687676925847348454154377636161726133887785917678499998842258639564962846809118946042391669452870370243767188311744486535695620959615375808346242763678877450082790083454416824162780994946589388431086180176963175965623878135059646306135508012014469953888599582025843300249187059225817239533480791296194769800953946862779825110702345231169787485764016252959641326450334291001407583765935546603936586472664873507300089965863199905327019137122568512497296371994608933071818013795137209785754652037164984148401166301312683019579172907052321868046523997174979726366905718909406354574132544994952229043990159214349993654587973420390603120286235526746000734285797268032347149164333965090050549268594575792174032702929560570612928650957901065760535847703397373111161152573932203756490176701899574672229982997053592519428926715942123339894813211407635854269853062633081181958465444255238680872016868368120567227375132422600225916474140678508936219490330670604880657096521411717477832900633999201566243231089623027195701269508379245520655201403544792643030181966780410955000117338821620102077336779399775731696151521467736325074572839453098765971961189900685126187170853802105762444096195752807672138710453392653710631107427638974292277745825486151252456465393791481057700424887342172136443468021812000178486051580150716558690769497168730030769908096304201682034950156433539215400227571367632582650936098617170015711453982918606163318237552389504963742226362873137127106998118324096326179418400382306680779439212498999078172599481915065657436994547325450223572720306451451168978414285506727428501717764828717941839587785946710036726840004725112540622859111158739101628039739966676925793664715319138189350631329767997536584471118857918502043209200362486429647505568923491088942368469472499572822526455411101692272120494758380370417757007565459887468568831185669725606430034828280843738968097120846153067881568761165036007106604612762264806242664365764774027872128415649832615235292873551439404456135184405686891260804331581907746560160059847165680563330748199150555472669505402557588738555825093515057842201831691824014748773166267032934800909534507247262645389371408214820432080076940028992553078380696022165190187833928439201926675527615189487416040642321074335260349296575966243028226638923598768626902828340036462321611563586412300825172570027832670903338536985217045648725922939485963483796378889780597613227817469967443949448823930009947211347051658900998928055314494146485407297983981926498411516409985783724390555296923661287709405261442216405711669409391633980419545591413034767702434109641101576975446506770267715516355066935559816791481073649274231219753368989178253470073028858318214753656484232384475240006782751174655398859010131762885964630617968936134653775162096455000189018913059082460949835531599758408110757711273192117307827725867656558075348549847338239454488971105475751470281997040334661667192398281255065681034034595612824774607967889526972020135619534089976602985604583543833258510861786092702803478057680654373508777865450103903963860200960715825572654432626729160362746635097589318518438209588636534387114636553648235092379321071112646354707385770200578307367902807249199169694143172042235701185688452917475043617729476982169719563088628653886679230988793444001450976543629336129871200962973545968553405350484419588783546853899828951601376372065071992802978575306260275164378512204906443914937135213863358908813309862465717905116271093978996590159657906521522175691482969655678995987614126693739302688992006729478663838054715205026131010341442319753096968057607492593781244578190539035207023245332330292131536314659726528158658482685435468203499187959898586239768683495972280528581719661504281104270221257981960456083323273199806683754785912149533287267762082368439759305007871786018250317042029132655132400504669643710828727272249517194700613971554347620120230753441788380173632000777129357651582977854864033564724209371325457578507340629624404362417697934937850651554182784423779258734111585671505820430517438689036805554677128516871709150235098726789411881121236490696229072230321438640373045607859209764960367745081537193313171200094504410372791931294665749204927093388121581949254164754951982611215089208861053722698515203112693480865443224553430396266643926190826358838803401811591417138383590225066184757384563787447882797582820936639716696189428633684705943674651495664577434372373607445014545323464853785935751272447342627146712970466753732161240940704898358714825343343361918637827965166963468512550589557526530148052741109648028040849332395684760196120793051964828357697818283177144734102918764541738057259340028932108135397621227543784443995200918766274943302343506360666657919870486681859205823660911528941046831978196890420549262039476233567285338460994377605176091625212958889495090130518326105187098959910515936324317388433724180234823225025150030199550462898458811172322496583023844123825231387341274471761942459262720685228191742652393439678471856041742664073309571832850447497871252555573398171811558497235908484241995737432552604899204873958433604316189305063291776260447670891107194895918157463252131768808433112119339478644522988059398451418787774150542323567316312272457848169867727685372351644657951497745395859657156286547787348111586796027615969233500217645056225836487740172417106106815625970052544851433389273529868905273769450522533526556107474129605439717302692485172527501345317302160561344129269622899314942390739429536021961732005587269354974543222696287583358047224362599360040202151377815656978400503957724422477743636963836547303491812550135521751698117276704563965510495678371889590245377774338435786792537491152984485426772893569289642986285967382969865173180580004262254444996056354123422976947973037592647881411648553749150837000126830626275018522174694815467176425802859801036552813019235954016369148563931611714093371351878918713309332008877797229057201774678392478354863962395054529472420934110813729343068289806190206156425764228210762246235384069960519011851810345293054434799098770581250731342524837892729952951253005393912904080089455574752615326974982174444537267078749994044849494200993963285429158004258130877768121286828748749229260397121033511711710762332930699420021482855441366480695127119124162479869542527086830191199491404963653902920172255855036344820156051716399461259015325576383317196064542497924849902665029480097706173695702196371385552627553157006707657936621014476779736126322036389790935862057979664689822852273892358070993673526978994423708084568522491310772786434885448079533490113863532434436173432061759248854700228089908871636889445154702215510432490917510637462016828214165246645012618502998536893159638787315846866228870177977011730982265155915518575937680056718160045154790583826306924801646131707468448110670674111971540404615462771182243553983251537635585926892867462865177644692092120876286239878811997291207813338988313646408462654307054061323973255863663805300333857799020836974744648742826437305389831145645685894458768120553237316940565408788943286568306784022248702539711499214191138716272395772068722522233159992482435950146417395728089335126787212569939222350267949186333962734615348234470826892284603059819861009974929040401641811503066186842570977089783506095702323323258937620416802863545065086018399300399510962324101500213205894619766469321619442344985746261066362240435916342044030253547155369991191941873043681757352296153587902005655221116281355122054037980119852964361397905679106187504917929010124280616318846748546153108407239696014349358861765376422770904486328207117063132805969294139275334720696465933208072928216544894063555419110717684500592672600359359681581092631498463548161843308173202750537908443823422928231847313667617993877139219488338590169474797754506701403933923198432747705551786345922883582657688952072765162128385690094613493820803833926689511426835460485245750577892527485576672631819300049333781849077469606686963694288501501923936100032584736771482973272558526147609004545004633175551619956535574859774934836424141152451036694540955258677703646331336723897606738539439726370856824664600394796705771323550052200241992618291587497474433014521880229491174574572571220330915746545739457580144762842431851511712762119843404927631816793787879622450534623907357413139202422526680397767791007655323332334391144634474145731526695779293175687919195153677857660399493953828139883060433648078952746068337209428403032941626602196717034921237110861730551355871012278740337087067119586106462754806158559216838368998480752318409126383949599809989670029544542238607433610888261824527688230448925598794427090207212531703906627884910454406096014658983626797395340263647470899548792061849946572633134020050499487175363701402021489696523841074105682033590511499026619663202744675119279473798689982485030877527464252642078893506404433121596352284734059086667843753912366924728726880678717459118705362998485092440410774452558958163083634918898935401898266186709422879733986704894195218619745784155833851516501985430415412752364183216899225643616144918920121718033408981570607846750770016861408173612442977497190048651248990170747651790068246147274044655921359036305613680346003756233957288408976537735431174557887466569613403809404570070127801840765531691278640364525190588474436792777872821164519817494973059537911447837947150653869009517192408911782945918261018060536279649368859742408723439938804199785447670238082827744026242451865145112639511852427442242175485687038590370732486776825429703446257737056285577166260403527644225533687154781847795308902477328068581161717395673285836051384513731390958226365341336240856418006385151262789697166230279926648107391355067020801891843661661336054059112185942513765334812535477793671426585333364566340932730115463539473101999061379164400209739324953662926482526712360811417065226245177012313912225020534982483979349002774071992909947826381948603299414680212091090756490030035407793127153091267776989348288679820303779619663305369890594052382720390436842577319582116077245938575043054025259176079651845864501245391347051519554865582843964880295217302041175703667089295892848735421920828612971515300226866841370886866972068325213471222678261225745034473608296282284131170909059921867145662244989894700667574915543196743863425788048780793173369808781741456791696223444134693037353164963810154309827395888272866840272230219828755698765449774094364537960779011672792290156097917933353289333260442183742427460638978182439777916363472568594559062975362392350800152174505104436103376044523782882178637661087610658203719307006425172165679301327428636740200034241213847847647135410580214967177360518567850412270394753104164080535410380488671413606181006257841310458234085709076187603761807768055504593973167321888483678836416665840914454951767142539191977701541919476412990503809222225646502649901766353154690244181332535614297074803691957404468386265071866401079769603376804447007150980538968273466527663500565295160944986358115338890397425067852229303708271768587348614310942094645459987237139085097060856488055194327921626411720932744044610258087174441375790569370742425286516744103441836989541599462026971856569074301871970004618513014661645125608089026993936080458913234674888667883093856572258728079456294066572324109702893395730953563782582537748360143994773012353893034051816353345846055198638597342664664846662963573152455409231547112335474538994884428219955594453536623000764444246868485950286400956325643358097066304927666247964181167778912598139382663068211774444443206371196812609549849552669046065837155591639513300427798946189391477011993215382873795977208270267657737447098920831162641775005279037488383321491381039873629481574285481379152377044012215694594491478975745589851280970994166354084485615396822111496630016882994041480496261739324172522394753149702405729420425442585472076895591483340024119048711461228876019965688895119855148856804001214694090487499110167292781777519506892809023434912529071500781510275514036461939210305345394343423759481713141350203007118258279165060594670038414941175886120066317215701288193535291221934917571175968287497299117384070302829921122809897594810873527844664131453535678741256767094247594411529280736013873154707995940013608076352906721802591261566778655315246037954485603761851439926062311338925457805887858121172556169983312636215158444982033591386617857583778059331851786088768128876589808455838334977130172547561758427792685046397467237208471556898105296994200536394994975543931278302850809811492385345869640174780625861041872444606760810127703966280840880895897647688129587524314238409518750837048045403254246664794357587975403141266226170691680548660749725421621148427618262358065672074160278239202681412560518576747036020259943624862477098470982137136035269214393298984027356717147484585729455939752326929995379936288052365783333833525838864729052182028258192127020743010473959877878202394339364757329284887543274804402778633507179243057462152971073838252451798131422363164172171771940819425052947694174428899396852909987836963141336990430650456370603178499855471885007493076014191569788817639963478690902484862712646210974960400673546119114716199970625027813915509317789600826454453396492914818906897761932978732000509492359787625326328806825487662147339033967644477448330008440988296717302055918162623827196462152805294287472443976424002983391901048748592268612375693919493657753632139224787291117667611773628081900283847626115231335205726501432721217788940741820386929151904076562364424476278121296033674791843459209877886245338837473410219092881478108113092815680595594108616943810545670312570597885754829438029781915876538038078705981146774990479776827525824076730514709253715280382183290115352958554398052731979249910723444502731633036026577842928677502531473142165623713689314529461187358026538301833489290324337753242623243679359679042414242231291178655661775960834094861304621357013742273753757047750009565843281628620954281572502678495742636784895132681204363687130723110795348641704310450117282965122956179994407276655219079683673103681285631308135316485218214602324066208656714324552389090452465889072029874669904477749801031867768869766075793619854215123476603428813953853966511649885406903277620325812599626225597088673317377095698685554500018458053782942909866367119418082380759391018034910099571091218755659898985528902733396243122243593776012799725682391192076689896166484883198714148141963107631221677012941303386105788284938740219400589475855009655204159446651760552144220887972509308131370330106318729966163051989343977245014965835894631602450105811874600377185786728594664010880352972975524761428681037565515709535128022036017854423176184063791786762756808514112835183953957295999180040276597591971102844749998211084209774721683984882609170259421281550322546582328593403715376936680467913140353554047688243536507491424613261830717754670974889192877083707861703318124443483846634802579666816770341048255338313743102416909979837060968076654498139418041448364460889996676877775553531267355601774621415021132641547492724163845028618178344101107109789125161968837045177291506205757072002649307128486112239760924039006624517405015939803557191774986699276777882536911579418350238726031162248445478262405826582888808527456462766350044115005175302272230616770917863122418285525020887142446099851904782225370750810904931245216131896537294257352997465159409823380769798435609951991153581779723976241082973814209524897104255652761719112002485368596110781567821231541482669790428387857450555865589057428102492439758349715975493480435130254196136528324765578189889014941201445382418581599788043154993478521966273739296796073922072442323502918854344946076778772209564089120605621172692247509293581066126119613824592714742229445619058813004264217451612507655280780246634866570946984976046314448242715458087278354275784820135884436297034892771560193822562496859199600618514343180646770904182334959227056202550913532989713235908810412774661761438967011497361985452204944156256727221527480582074504940475361082444548397779545294209884731807649141645815839483488108284602185898948453236166764280309917944386617563320104610630281134186579771606267158600594195207865006481644669939527767101655121374014234074208005728693261443459384593697987444519535389972040229696174517776978915331139490266637913885293392058968075410793242768911965536746254596229261730665468103338974419794700179965962846059615370992189551359037962695778876322829355883717794202137797851507383189049891866101773983422265066533881674132084809166418038185621417320458384370681840744628391602523098756201715923060457453346795813865121198633526863084585805036438664302382669400062040299966271415589428578523690698621551875726106724680028001896418451622996410076123114555018280796295184144686067938082249314530723358341031327995687495612032669543479633704397453734150738778943618887228107597002583558362462831387863534938594108402515358336552639489738270975929779914344083076018093203430860290168787060772099802355295238131854694770161163065543160960888317820840006008102804329196327317197447378112601768107238722655710522832334105132738518566073075693283631660462679574390188505851570087675064348769981381062013462582728595504643513961265516118919607420533342330524109348988427520723536148418833726234550756128181439058236433644152370223821298812962986838150735559032061748886482008171760963971458315227448318684694505838425773252503258721436592600355835403049729780417510618954148710905275151375842667268077040096784865635401292405589414820633003135662061953926469127738763726815090080371625557321892417588205056919536715613023025229189197287200282118068916803205340435696614909951606628162969288127102836038980915350741649649475757812714736751948776225876091406644234636767796536942282585345249154033711694066755072087552000377235063564582940477292827570481952492081901800698309574994528528083035709603482439122335716923078449845520560460004223489850426177546851038079688981353793981160151721451504411841951660713987316373020154286346170179486482693529957639582453091869082579263024743421122438600207925700542621690394673126904142439871430803289585906685447427813807619339141700743161986761101599147208801530187859783162519557536062221248530128959542228162605787528163449277006707833113870038611154973442020319153951159131025111479886601025182399108492343376404326029772126364140203283351093232372413360504881401711246302678951837920890868244283589739646927216563919119931981497678660862283698099779510889592356996139947652021233759723288534923553360285797586194525723389519987131503012207249219622588773247774068641754154461827449480103434875253029605931924090779008336230394265702912844672558956102124931649567073228747512617596896215376788777788381418256912861388701513079388275371028951628033815118118047662848052611417711085502832882972960600215411019348234368219566489312795937900765543481113118993942973965594793257424073808965263063272178183120826792640808959234237256617386527367135093397322395618077527037008660324718657780299631719004788843146189206118085264346897897198505236492189798326460297791581618207831948087099502698024554958251832620363880444251090826905144855212919791014954133442614184493342467946518613145095824477114003830823778494002628677072492706216075724391342117625101850543249277973073704005865752873208110548874377823196170956273878794781407538417849876424537360414099585984483883460253052577059378781661704401071140242404983075082864227433311248758629705643084536790201390594780450898326760286331511485239337992222538670874895645293208345087077583425764921364333598584799277495661331009400519347079029918801969992538645944527081163367105695047584893661798591498553157020577626257107842265281386086118980747450705789365186001706051096845201494973855577982113234291735529975524848443696526281592746896012992009406746565957516317783046124876990441888453552905419275482936318231396834365816337108492884241515655362337583660930139340717136382773432103841765427875351641709271137826414371022105476935030064537634310866312710997482574762147873721068555579921524291399778624345866131931042172689415999591994379022226978985778876229183588402487155971577810410985235276721629136935097581392920192485795495039837039105539880948279987516828334661313102463838164739995256945301348648034458765293939655819215511706080173838935170289414157842386214821041429461107936826287570450251635017247841956538673055188197129814991001010658751100873168171800318364726910443946480787682268241266896516893183283838630075191447754156072870607739235434106510671059177270301988725913344202249338677091073816389751820465393040022805216121718000218009628290531644815679768483315089589236464815366823805909430768975910319154768330355743835220631704591631509096553326011603029861976578971488264563415494283787853377269205136621251984117148418224199169601454380326102324341220656795396379380561125208073211589085193579176517349476603627201487027819476647070950797058347323980889765676287432183322734502536776628250453813591798723048663549579736826945895173653793457580834252785388294797127794799871760757707272400240907331866554500797491640278628554190537972632284568649839824516712626965815649783892954709819610512085988288405343875124438310450198697026979781925188007316911766656785174951217879449041569339577400942832063410542763641624903363631295993621001622220207793346356084435428217746674738001665581059045434184362123224546565865034640224878533613846360808545672158345704014918610280276370245410601603380029452667682010802244503358149776327427197650078951237822052042542931061193193402600508352775077568301285787651007913878011999831747469427788803308096707557464936353567286955341456566242255615037007166165703250395245365886167579312376018494332763210937846784625526812586173140333476141422715931902116059999759326505683914286609797309213627190642973074532592028231715630797566235383452098057276003084732257096798613525152328266557987841257238166034390553784691505124012816094806398214304862878897041709484975916793969556221589247070656096389356508894339545569664429394062916204144583273481639114404542169776206630109444658652476108006254278116955690638508711452386616166672963322841312806869552611508207482432308638129871983146139362950766143433365473447984033771382274215866946151073252380407737360590837475308808567605329298552788282017156749451254767832622128918246453505375522549208480370169321343191799063493647853600649017147932986121201485943426338605222188086817863698051452015591953351809646792333980944090582404440135568130924734845133045242096275817783138848879942415987809558487752610896880066660855507434724351144073581652403458112687212136141511136846922279683141075996489236928309861433039099688117250243379006555243410355002201737762582334323965434033759494390727396506261810962093357431785002186487550096444456458583297045490691461219510826839259944760227221758837903400782208669544548778721937454679806381892844323605920713738395261469904780026562027353511096178947182519722545553233403930575367988962773639151519698595663524494847145970205241438788432511295986798925696654680513243316195127979733407213155455059475906111842543954160906682168650383021836902143346282758883668140342853809215427624103177034294787482340793916394337935019348963220711381576942542046997777870716631185294120789566245016363335733210721558711602573015735648437174041106756072661877831767189128167214574949796150232286217262093072038150510094344227150409787647369369067801597629896450737211547770990278812868312719725061711444504112568072170559351309021653536444779022198146706859612274021149604107268212111039587711923064498663024857680432412009525590806642805991170716503660941512331487575422785343143344328280756262336600221431412291585206540132743737558105320361255617949180985939897015771078193776523115460260200841453705595703676751258365052856533800831065489261134507646383061485155339967320017277964853121288798844521457023867459744571223867797793373721382982224209465983673673779593614935990551658178263853221481487733040915387194564518841643974950837337624894448313537511272805326521283331286212320268508703710387090924752850563195714704244892625771651966478101852780262058417000777292751911632807101701300177371615893191672031026738790972457540359913359216302790592285601551053232493664856764969963052771477907250429846942355463684754258843493129305598525533486377819454208407107900865145569726189461982052464479099020478903047244939225509855846170635829355012485108124202876887999116744390247364340754648138352387105837713872183130106659622051653826441500435889235031741344206444005141788763457579470567850898195008159917970559377925915305462362247691009736274329483905775657692112391031427400037748969729637329991092455698197940434434090702008538064000233507080979902747208521631542020758660831706423479694407832019156841744828868055782441857930138405650152311548849230065275514205563850763626228028625300551379252863229736141365580699438745697555898742987621141500450198071624083948117187436068026665895499642052868081176063060380417774961652611844183802440353584070974088419756766185955621867936523288072192283662700539029002183689055423151164685560771377987573615153414549825157097837019397516373527673026901804072381227127079821552699991142126238572871570004658090797656069985978211109638567760181715320993722849419276407796117007063783009068612398873260214598605386891980496342330318553960245335831923658017976565291435764378562435072071916060962041425980934674396430366779655252763227933319947880523455910276876021661477118883534229297012070327251557547238293623511927467430515527868102087055637156074394302180080846485227829719834092501329095031200896650474762441009107960705136605069510940486962093421394460708616977677912238971897302017772432233644310135204189593977904183596100012679750292969782228329916178683715570586995591825127288806922414576341527794854134764127320484036135682151983812060762485116834699715333800912721761858190253754306073657552337233140478633148271596618186507734932024968141150478538984802283733963509169430792971389282984180266578831771944885741814555844608891624544546507197275487567938963010436694182496532538952477306006755433313399982827489231388803949150852865428903369639146815199304949326089926137193775207079447949062340700396900711441340072502200246409981664386784059259207315582965478493364800867710204388012881802652687405704916504308842634829497462761868355276935136998191626320840261509489676260183208229043634229381761536115647454713217499065876823745375298393015025088626692125746549778765360920446172488517467900832172604649545705945670319722113728065436597909865780238403446639999495211333117911075343552472483858311866288170139762299729357250795606411511979611210492969917186079124174569485052239640352696113309869065437881971210612137530078156152563140366291563670913614085461753262604312517565230696662540110217343447883257197813297617481134775059229676282442065671956118232906467951467245669826826710417742836387485739163806642220149616858627632308948953733611159056373440049343110463511088576269980547450269297788628024853235208303185159178259486663360536166465505219461684233192357954043570968346812136652093819341391881317674463854286408176987707672195187867523210548223626023063974214443346742495245454552334670962474424796290813199708182662321325139404325086419051735782982658438307773726057728302976965313498401045688929154039940015196115673477599729711578357955347612172332383766015026280662674380868746523616493293185473277032730493982332995104303107593218950364588388468378412311126754024628539014152696705689236716246787471939724702632713038400084383212858957577609502944251426929660471431051126950944321396929224109966384956088696512030552433524563350957162783070254929355164726914728869333020360115108589078876100352395275416977109294001041151783434964961443921220825313794139848489694818624150976093311474179435999539212939050163923659807897215531994081310262723039735512163649141304215582705379878232741793163507172346189919996738332449989673151483591082022789151468065837345647941128322958083297648318195956299391735949989014623537821847801558597154170009676043162819067476281270913042803036691981169852414848151616100756203511699550135288236300015165367414954440094962908149922528550462036533645900125128615231573137577356232303169076743052374688562946909901700475647572763362000693918373523776239548107211398642582589085898547963311353092887361838023474055843419116872840336835713424642209578520250075556315578310672669786669352730410573451713838474562381705851468163019749715040644334032666773421454059733386651742998977218415479778964732863309739623675769015824179586955474797551919336457995006618046816331176427447867785307497982125448784296223522992512673903322443239648423473712915677601671164606922074641378520001622975867944197562193789445967035749941859952058759315923484330060838326162892112798234087836606619059303051190197070621260311699519195438919927911117190405700725964226884684672112274387946559055618662161711377693943811693116790500378369333443862820843908171653087257042754436563425012582428685954238535461944178127695773673495294846260252985485735846010156063046053770398425171897201434425195898251318359165453384935297826945286315287089144624423960836424386471310614624624196946006131820642930853307450387395708347793362375593358689334959259064821776277949976680193833284475663402702956128144978791751901844403881087620462886115170895656918434715601232829284452837912089465769855485147539481451260811069438471414479417587834961365772246504739774957597909594052311177304943223020092468835545063077294280228482010344998410596012928988702061407172748412030943349343724740112666412799925729560841951771627922114189738514271556825043128081933877582500836909028741053905195475778763040614672096980634697737592206947532373144498053154971190813701989881277324014448426228366528538933382661665302957900567654773313883074081460867778208354602657443584831234920083593674508016074560312723831969101186153756092975837823980593644963310047066706486217482248854585692345194343183591453727474939357532328668490375282258510933263767739620776729569276876460181075123360521005610045505722482737626659803085612564561117645303305740211534883726950351207935178704789230191354822204108485445004552484923867613602927882155826893180972615018207311368293886629239064665864266041224292419375059979566022908529242244765771508292602911183897520322265223567463612380479999103136137255039068634116273985293018370541267183093685877317681391057352967886403962843994035884890014122185797262731676882094575843956121101690695628510030944177016385529359111576758592250800664830283906197404485363796163142359873489768027716606334017255026344425112465793268438682702254014629293851902751797981912104966159860920440500748841529620283348136043935496530541682367987603665051654106411827082267459693663183487466567194449131353334009509102615836856214140315189591215592238549243361381522023820609328511879239686841589762780185749608693441539229149602575803711866454882015002996436290924062331946044818949538726080900067491408864289697234269328416490449330236380107417352608553640215994536903570110364617398863696485141919740643536911371597386430397621601960209859885329321294915371592103506119607598469277520772538367937333961255915377361720053062551581369067725357724681460445216673861299376979408700833131941250100559487787191617805575095102889265243437065213489550886647297221878569532630687069771507361781989698171812911816035797163419793629005239882659475085644932994508627003333890909946618168930684571232442968522045667848873004734417842738957233631959716871116662431040639548763365433300417305496834667195466005732274699653934359506623924332495850060041755645900090083805251730400486789654233618399143560082623518523623295549114515488832315036979618941900417059523266065910016344362587398790257390388512635812523910203636956722695723619520427356599224170683292574206725407895811319044690326518253866938269819432809919832731164404920181572515299927771695798330832186632301487232861432730879765048099696093446822078172468039805751348899471441186063969169753552830080671114606278220599205230295817813189219046220967306214464518379703637014299643829505350607821579693834129353370815702471990283227733971721657269592511347217022448240625228040740221884006980760157637610412132807208239172500862601051061424360774979898649355333068763840670051499614859433717008460102056444659528143809708876169712937985304235636694722547846464951991186983227037236591578866981533357858870007052773266823372794548656703628212854287227315493663879132168346935044006085177419322625501465320182313688780029844192553756534577511461309720019072691299410996708572316427517228029571008762213937063996999246402173156392294864941559110509448075104522392469574980305351112609707337165453989679741071543195599361114647637491203205868885075771472351534598092833591907405975891479434236942840053288320859806412276730149132767464792682048498155696765110619487918950713638581914933265779140309358791680801323672654077092375563623953770124715847324679012132466845009839984946694991674681805475036799328007578409057407977578321490458170876280081054140101721704922828869853285331811022837907533313424774231359594774945660297914097009988385912378953939026912742638606178278424705907257952118116039435827679911654987429684272358025278628661397684558294602820628535825629785507363152307858420361973404889777767712920984476295060706346045742669952695763178977607119864043555550962446302279499702584205004261294755816145428740193274291466388015152605459315098290087849789331258944119018176308681431557179107853143260322104419963479641198532553302060476541070868792803871245322269695686824625085600988381550538981800648189264350329113882962543968043865907116119101394200144541004081326598856410667654982353731357158794925940203076009050002170451930813531186685283826527969321986988677087046965177108574431607059691280061460360266910664978786939502144069483295164896064884298174926601294465143328272546079527203078493363012001798498897712484348165273701369623450427653750732586756077284452516123413054636397353225508302968607676482902585570455147748257610317544504710650199174417622655527736733793491110667079484357583315417529321327454239688927783099154740237799929243596636846245645256331880225423610703367591980662274342773643279477675555256405486870458370201705579292550249344222762857190850705045674786353210528616766680439936492958223517579867403580220064567002501732753674455213529662557283434316810185691930128115748688575652988961744363853563793110588073702159983930165484608242494528745599538552456505746154639788422474512732849849453434436542615268629928047472871957523831784072486768921227048278566026243165981394598221295136875175908531746521197482730481358846246744605033984697674710852313631726320778581266882202008151025789742170852508102689154621613177322333830983247774628376788887924072709110392635885891760388018763075400135152038529351027989849885755142198200642776554473483605747392053296198227707398029013689185591690163499127266765451826753324440846877351941226224663376479039560949673262616815046561276646996146220329554779883508235699795591529074235889285506803836598135043486706598792586714816685218673370063091158705942041266108664236442069404750488589529518861549585764722257814688137058266371245296158789838586692778471148449835570581268645039894171313825529185200690802482207353027643968949153173204641810526713305219628692408093717989089061354623981990910250112974275904959646225017664827150837581781435139032397671562751855867945854107831117248131223952727728438904217321298023184353123246776857352760145723000391273386842583531678170364111680514744437853191090576638999945231087279055036961874823866180209829135842748346013911943397005585585422236621677585233788142381216797186253243332996014832163180525196609489774727944377214738532020038858368031211576875188275375492522512796206780418553965720046984521228193207567869009387404769280499334784173246017320802802848334566170902449472968933697640197191031198062665749225809459213875804036823950060982538034245093783351459077595360631976132241270356905644501237270845981944765839018845116957864005747183126144261666597680327818369103862172245219227900508925885281973283586307265208728658284356961277203091962798115844335130654984171427610641621732099051208170162842865592984650522625809201269827845336926891388749560244384567081931929187859774647275022708752912381642494846444911633036569559153904030215321050628807980602595855252335838545400016562151289986696820572971855429372484453783845306789637640753535461310214506059043400244630115509610682597165964907944507036177291723884322330799577580813521322922156059939505590742596784705509843874170156517010234490336906925399167560447403487248598947883044257634255034257710165358350416242801797688590028992651442807510664650889231449467630897278895065495431177850696768155549100626538424192007686558474257351188038885972045830927741181624321154708728719980387595456150772598503106206230852416741486937387434753956656884941023853947457419034295933396357280576051732034119974527417183853339094532817111651063468294420517502956841376131923305241234141536540549052582825065590014704587107350231834200334803480035502196112687661465867488858639624212646563513766034538099657459061765853469827716396411339666086861260654968855714156826888125018655928965381862751186350468352982740671782418101602669666701433798684389607011772351934589779773788421817787678883963440861694230899323747500834788813889832558185325718621808284120205856373498742397564510241955146164124942110905811125967359409693973370938228830453575246894387024976674393163589645080355661162747488458488240634572307559605548636611489334107451485861765364167863699189031048210839532776438001874558903326825304557023052476756237870130486664149348523981685567391589218534113101740459770271736081212492952198936996352776190305152794421241456808624425547510434998718785339802005432827428514011313241798492002548273897805708194789988332367752944284055417194524761448835872289351116603900670775049309755119338254616973432399829963361143071067093672125945927816122048411153573180928999589239653447570690140065190007832436860465139543524553301506794743715383061932153591043586725874662118306346140926815867870898899781816183364200003338681887012915177321731755202058282770889982185003479871832088121913181641611296792464336504383563125495774368619486205497185379626925338642074382249586329219097147998142071771048328582712958652628551954583196018652874873947771276171449298096117642635014474920223889457413293551007270897590016933967854344400323483903295565202426971239628690979742453587109061591162801200384941340178975549802730181566440299109198247900684578953423413775344186912933582320852662777572762206155257768810361351193006741893093759877612203008896087134511058405088980883356107890133210247407034721072050969290484678993852197878853022493571748362102684312222213912102298746853939685139583709013194273888956650829126063034864263998834817309308951944067045163683454856278437266962758929107207047244715002682266601357775193190995029884958471475495283198340166466534196389989507562726210508654594669814293127818651665337712426141210044377835003598575414858400886876628797694903096701746020900438698799761075224337243182321658760925925339515415673946257820516396714434797390378092509764663968603242323190184948673508031515854420657947621072263340179754260115643533830355510223761831046142190638649397604891470922706496616749456582309040622834278151379243441326945646865493195212268246926022656684961129405536909068519128511316610884220997002762060995110825413431271253344326795719877198619897799247621918030325828844653287735235284935096087680126992702440847644351582109579784495930854200405131148365950123221428020864313957319389755433557828292414874771157102091342812339356470847543097548197072033642378691803208598323665710346675851913588086994143164097715762267374794801410643821522787387776335660387927531960323974804600638033608278579390913890629832848094092183430801650166483090092701350064771074951620625789012592421143313914701949535474067693500993378465337171270243513768707946412103534654861617936409717622729423131718905174748612597199183200924084112376306712295478626473407051845350646036915591586131251280229020305677513155560541006290150309223295062491480999474930640789433675291811173261960706545897406810850561695855985573736540982984067848310667077384999047472284887419048416242520293363897878910412347661980973874573897016031921303392365205844963729176142787230316536483924805714587140637540048567932991694599792618314423922541980274423170212969946863203386364836995717861347834851606032105525225690797159151204342702172390422342578137377876457821868976414393671747278495256878521677924233386265104408829643422006917714902083769590549815806660064144248949973059051591443535485268502633638699452042909425808011724767058957811592943585490712627627410146273402841968800356248256519063622646608791030135592165843725419623437282050789027148596048556078762298421957245437188739107423272379126327055427844947490226319511333685918445835490910060298642273580653989844826917698813004583272122347899442875527620242803892759310261575295736681606614356297787010147964551905456468793587760138903008588992581750048536888541295946730576479593896344142123146999226164304655647918191348433136622182634180325308740214934191499124733725676842039035196551100925160650117460518741861637178468012667122035219744614746132106620046227154356699252340779101731396140084969948184114776985653065067163697144240549123598977913156531292046899355246999058596341336247597822525417094388936467452190004296809217899418330656064538418820070238455584968041644423607465135021045538380788205651297982928748785138257421793611635305157425544851946542957175081898048681966308819792147813621784162441182865761107863619180916288120272857896598419979578099742247210454354038532710258701873646604759206000944812104768317680959956241800048604015811840623189186186200027163269917991468030596990828523163032420874286324216861274618732352911084066668642570203041428409377960473451380417624556103701365202068544314644067726401953824565954155118453400772810721665252063346909472509917878688594553934635635384779121366496404019857334080307112055290247278724170194748772036129701778135752447435716182404440943655036438158732081074356296774001191263058822977308984077913696860628328688582923567753248052406812770386772721379615483061554917706140421534183052444198548803306614878886202173303772876549343736430294743884257680117561017293748707038065422028582954303399687092952928633626989671705315203664092843816359715537470987918160328446180958164993099396795186411706931038924012851972393964708014902986637629325446808634663281749508879255788676109060254134762049814529377149775158322603284650939135086513246385888686067169181059657498803886659084586278957210546007586637890576521867087860376437129996297538705308468592245004919565385672791524395827077435716417598764746227947971133073784087423718546068748322168168938674107180703602770616638876018725082662825280393067689291377742562081885557021013011267294975303701854791122391880148171089060436394940845958729618161522761605508539659364723765477070473763287874073328445972830259687305800379719489115891061446605321822519746739411987780270646690748623064070901054406162680581127465869064644273119758658789713047793706712129135542051758076702716039926881326071910676793050642365606598169311309439552353180884580851716422793974649806251580440449036271575586950900243595460453319708633255323760766938523989861385683143100032709323160048984070784097520957944890459652817775338769576516310580051441724446708373890992412127568662572553806180772013894002059201424211349816177110143836527237035436422907978698696147235931233664476649427795034124732863608004722867888592326672877874498644340909573159444123985378939089258099771448478251553877871940249156157330925616909064944625882522329527240100163231526562428232859797617142021910692228240835533573290488565934109097815003280996915063556977241293563896624052705204249487017585084935583180214383466471416744359846328627970808919120650900229242779574961339750008587709183422536732045118839230058702858564681233643571416369329214571155490750757064527931847135009935362758691617080066809319116083162187693387136573195342924092521059660389053429831082236330063299547080176291687339314954895967128701612391171953086954897741965015907609745535164620180056801212526355566252198848551334313522012119472035213519453629612636413697174233967962549506254225584292906451922296221723735656561962032057813703337892957147129218842893058456481563229921631565902794233663972814420305862169223093125701844758929053115723823648162717159697307714066804936450996846777333061856900897638341971049820520655144717522478102050128478102285038894033477513379930389963010938488258147057256191690932518668244255100754929273900967487900899067665717796176465247057996195298684095114928487988972209171891134472055091465724541663191051274036369593266422544458145220572956882020165340400273390164779658165520117554349390104876237447287752855371429938148109915150298897196605768688711917456235411410129699268006924623280935654182260150216546700247857169360119005701309749648650541241432096384255494539021343144777204071716376700442763594182586556906615655797426790161057911532488396533084484340992039036465273932934184909129440178456217027468029143028702474919411558510327326977867957518192917997233603110590820622102594383995665215983102144227508944744942723844832336296212871070089656277536346503233263227793013199641186637722323152921691291688363890720609028727751098968851901406440249852947100320249461461071815055156951324670920602918026582158588526068433530028163303761157669542119274965972478392015183833506736560104681258980884780199983769517176442845271246753904938369294510313664000341354536374044775018155262258949275083862174068257537913192453227052162767571300798860906932357542898127214174916357999060918201195456563535121517820710280956871581254171353289059754037917097350937137157196581350214869615167992405435675657155669841610596090139295816206181114894900185923312060568615563368191857963901908424805249833100300552494670223178980402410920650494929210006359325264820686747523563243340713721974052980329237247656282986028251694088668388175125681322990538083781103444471143153612910856130969527240298468920423581758959404192666960908318053863556868518339129526835209878341144173800705631589317009563513830254178551977993296341300894902999718285358097250864655587414483945539330907088870611764014978422474543753228278515986879903025213866883961481918415509122641232698556949642872346108450246283003289479839475334619671205268180464409722989638913966875357630296684173673448266218840799561928135986156275001985190672142060612305172922432803206939778458781897616731813709214355294639479837044266209921724241956424335288020502294362243999088567807585528932134946119767637185945711430035314865964930449820823147889907792288074094664818318154679489326296472496293892292589359247352122741620947481091443237880651275888381997375484878314890647736283260760605689401804599201733832267190982797045529652197405992701516294512911370575288398024726232079253954265687965483188898082098057509642405015434225879326453946239433651885172422217639553942510236765740688109096734921835901817466850285071305304910751821194304221850180034475432947521240861281577129026719960994383108369542106819569774052929929617053133731831588308614855617964187659381506244616895671439336868552918157327062126037154617959935016412232996518972824502646912372388821419939059466662151556426001365271471810520010967778495737092876292718997454119850199873658863295515819050828913820928374323707202129573504706499130798266929530254370369890332132849901898211377168994006665458467222309088853097572462232753218492219985650158608161241543066393133351523386743848333663762674262094035061686725483455474085937170884143338981428379968157294777802839975333925974864771323832545496479897889592875002242547005384649522556892168776038972439351086401304633401966604753664612604427708520248881442708499506834232129380155303301572492058042677272135336814037310003712691853820894597439752457504727409367354671836859869055496645982495743896984889960842388236404703650159661819886305752531017773308327018699337024741787726107735317491594559220800520547728308792379107835826986808383869004329041484523889003270706491942728181205785281453827534767812795677657611219850083994932171294681349405450071656623105358272453652898460328440195062649789159384957745910964507785041820088167823410098412744727427230223572760116548571322066027724950409776172850942328348932808764107016109054746593524731138399965289990354333831483267183758741418815328583951515952509887209451807046168790984994536908524225988736012130486106667823937057376454040247952225480824809178708274873550535849111750148682292413506111826620887507310726215330360329569387235124462949217072560752485702889917343907613260272060857583869975863421709641685913593749972814662858826992862702090206047680979983453503458095348151451480131151299715483871372314498188714213762050172783821284396960465688098648276819891081100779574476998547948190485793178203443685079439395047380452640304890416282168846442381021630745171960117338589628126455752634799685030958048045401095882920223972711626788972802401592859558775337900358905155871793517052361208994185553088045207988419975899274404960079106381257949735044177036551733830310985799461256367322042207710202353701701953029957394780931660909295739423903699021050961444644063081722768369537815021055912103562104274809798142164134779544701056187133611165644509613349804689734534627620783384494680822415924900942311762746456765555792599776792892494627466126113576017990818456693705774756583595709528172856952022453475320806077976672007979194104736894267843020382087572041605294596580756848931709755920860517095557403607188842150232311184902166110464290863856785051307346757934639736425950310620381654172042365127159033180581065858711848056437188649532486001168265102750747808529340424621285352311139456655519645184077440269014937515396940269475913013971565188730899953984684286638141918676152207192862684529345210512301328104215907376446485730289771822680004736062260138057779587219475755251870836419207986557828962747640298456511607077262287276234909793927123313043456110081005744366814856859810380874341478523924469475844567222212205753503065211867479012383301344424052639124064969381404686142049721983821221154564394228575729946047324462358367497468079800665888136395946978902679806767916009614618897748508030370058450541469504623800857557176288263741309653499706668171872040336332241932871865619207368051520378155289288310114726590528551544764607382895825808196024034558564658524550467650210073813739644803979230240995715764219810299636384840736546300307735681814092509364409539553186833761621873699267875577056171207360074173362392328525336172783882358179085631741444991094948818880885209023644539313613043580761514111736761119577324763512706454286238732527055341265997965030790169842385665962000970913988242162222077743958247872140121086931578381369211089703180611593012053670727454289913673553045594940647761674496880846672248618703014482022592236129797730056438275221157069143678395492086136856003163538873975089772340746822471232884360223263239608220075984881560274328577967759973048240330707417075288966806102192600790607421869227107634397653120188408578638059274533132358267361713612377091960324963637660511433542187839864483102400332901947043360787187824391106522704343273261807661600485161371870275227886103775385649325282376970098873060972397507889197510228178363164166120071594037807536958504827820770193900227536583672531296496979755193477556912313988775462915355563667311345948627459571570162129414826055148215036156138484006291857671263162236016995581466164919241467024060500013540275978565165924240220335859419743209525928323639803737902811473546892046554157573689461243864870697433249297623422745696426046188835225722174201426306493464405922952110179285923564945518478440314880023551507374131511440943096864305789010175137421921393017030031929012047937067131749758621859852956634555570962475486308709420758355770797984587339118859380912672510869553851477640445959930059008392683281677871087837765128227049692948845748375621431445155458373151058081925831759215463895475546018520666003086915744577598050388262342400257453980067185127235133613929974258558987714850425265310007056245713486505121260399035810080540727469711671308244153734896756454514084031862592394049115424169175638875303096556648045754521263401717550734680399894762946996461598380082569987515500212512390312147000993618401152516076230702300556685067649518109534145757420986643724638876395354160860936297260851446423845697336447443064493338005394450763658224020515646762089880074104942760253334277462847368929389778918264891188518545619857421190120644633051541020993989166995984116750354911403695510752995624925562300389258479321441692542369741231094994086394872917218686344644564248719966061223847408596927072747914087484355926743014016094241944551205985435607700488896783107398802605027135408576713633399653610026119191544154382481520051370689130246630411999722118303830699274789337205502732278767820277162179825507830881096022871793001517208776732607421008766108000345039842844647133848838976342166806918002437692395852878094682398172771875303199490979798774660610039071863705689276802246818669158362294338239960115296691779164906410066684114665387090335569249556732042005536559097883711864112448236104588892268290861315805163449435453534910794034087811356781019290213009735994758929913276376760677372748268449011821382764388499556127588095064954837408227850618318317564265377109432535185083556053905982693276216820925632083319854616455533806861750442715172209549075616849028521671626024443840245441197477662653803864774856082313357084202865210594183576333129937292915443985632971489067977470688641105434232308207999733257189522382433348342867561915775780347309892323641025547165861485764044089539074320930646237823573633896988154415263108804623640323602294063646653934059836565379324753002772781348742119078845532612873740653359534104699007508854086982590847634852243698066696052432894952438422774222910037560971022316312178888699937091950555787437772882240408821312203920974385421584390731407488516467500704837385128137952690642770090304541597821794286764438343216532697625871295578013791188140318573723767233623643872647826417678949927782881566662069558802000016352678226640563352225086007923035397202290558382553726787123720911877580554243861896147618877492129374167927176687984611580932966487577055978981863417301308574130458159602888445066929096110645302273584969794634378537108735540080069585251757022342435437979012270884863651708607823199067726380390969982500358873564493621446001627972895199473184652891974966851362966571897719824837116461643897994531737157183715741316864990247213021128767507354229828876853495357443720029482914304126985022773477991303303673864978118550295678728952591376172578084146049189515462204451433479519548608319153540533764369896019963143943318245279177584408292626971924769202402075086298713992694787838758290771164309391881968946031873842001030512152999941348113262571278041129489668486365021436276380666095542949533667091892625828477350710437355987731897949961735050852358518206856168182154408407504819417782658084889203210715437396778965200930282288235467724097633133480426962531005677447221797298444354762259846857375379985781596598875572306326261432996105071791114033480595299894095178935774209016281849855331846397130322694598968779323330585470844277745143259685324656798414848641416028755325093253669086942926826931622977050804388494099828467681500978116905791619357026190434599024772952879587314322577156428779099965515018504402595327055652681481588045825654955820221102498180774409004743014389215806933750585452687672564448075691244932624070454236130571698449756901330426160477700460834237109717743509654752392402808001862261539786547665639289552252844219881557182155223272036670135721761862448071117050845880439912887719720149883647331409823354111702161841091900079830715883203877072829585337217667895276429367352304967816107427578661734626089424625874504789134572615348214607071092894362260185161399674987841559851777415144227440099423657104237074221284604494510245035275032455851437464424433888012040007169110680339764903837638101957516880639809153519278922921652689448349569478690499935759036855774299489382913590719893094058117904994196832624116833944281427523999199091257219101664493027234701894045101040794221969780514349565835867213397303183757461487089286793016610210928806927484696967442619238173752847753317839804800040259296043284803339334658909405360051201569095726885237505551716519669781947423144957284600747887366738856016973716943119357310529311036941883581787539292679662942002534811562006069342316484591955170878349905476317189674812955919146625167918696360444698527233053090686295616706396956072094486088742505314937952479152758393291380845484336256184280857618461969171496153275591300279024482110222410366435599694994878909261684489044124056359270161587756745685960822145005040186096593117040607544495255607874696013157156414325730746092153485331978890681515663141690876634376508040473130813030964178638095535253567597022915953706684468793932459489519161928457540924476548085838947852672197135296525015869075434406873914597841154555723391253889156031675854197936324255882422217623686334315430824942084336511178387903704685836406733701893155448792282405083558879777059055234429122567401372466779246634847857179983579591865512663640519839023426635698903328361724158991902797446562050490203086205979887427767635416517638242120018801436510361450920423989274274988556948150765704587789427894436872612537613399276705705599115704901402960258694721792647736915250832074416069528889378794153802225424073892091677459797861651893705756045080651284011923053115619601217805236541635379914177760563153517718231925342002372843768150159444890956351812645397444746641192975614841903696096429545895526626552282708893410841228018330647948706752627785838077634441823403850263740856039057683511080965350321327022867942230810007197331621855360482929024029256015450369489601924119715745608156181847272295427761413927182002154582832441040309967461201924906679820682603980334445122709382782674639467765500248735302388128138288967662832050658844890893552313450924490615600857419606303460212864523428246395855741607110567540895196011447394271046121978130730634749726430924001566358004948588142600139644770272643557020580390309118555036518556279294001023316493978793569238544591282816343671541753841732426254867329251985823348411004116813258913094833367133485559623188945201167108198446677472381770859570717514741606470770305852227056269673337408388406377600072386350009211995127031827416877298587619499457305602186087424509368595109371585810272269727196558036476599542484542558191141861622875039583517984289443553731529347330945529613893594602363272851003048783522350048295136430443137676881825534459842836097518389528167839886130450525086776716073994067398404493296967826594582436557020401198906928638664348866699187086223191251652791975387714289370424108975823467582025570000901759844037510940655302886852916452248694439833935089176624489794514100892284143429815056803793667137476457418392365041584237472075162080245781872737208348759151105889214825087598947164352937482460229551491963021719692056869466592196801811006029464916016131309220275035373112166207452344345484804302505820311443876413684413280150475640782771822263001879834516584778764978904799972293492038519271813515100663476528619460793071111642360322064855957067240478396944468864312750131989320126021245499570243504059135062591231665604319976956131860756547992274919171941955331257887881658614206202955629657503993516127543163153061878311948692443480952095831196528371270675059791484610075375469204435408939376492024447706560206666035620596641268306816134474848205304454761646997664288706107700538140315249698345104592335167965641536901997531634931006087838218830020792247406067932388170425522141329242165749515064019555527269314052138235805062550817601873941680791727245445961212655671926163836490903535517328109540497240370766923889240790084230559126384982596305623607029830237676637357064431884930750022756279553844517961322514661761562720731897472545182734995988537000410161875392217850507504343919329707937161038187486699015108556172601114082292884281597209386599941551459721810005668966095871508100996874700501041640853700835602174104456558709464924835455760490303082342330119238115971260512535456608340956286060921658370937476851994398266741170696773258212622557423419228616089861035419203244969830501670717965092727001567344177609622515169561103248954606568120587313252967494918415076203446740083904998360428804893410845500904813836394549386846872103929167885734950469342308988194949204837650091523667912712052282575522669455700280759156192251121603892645936453994927395186293168936294824425623907194239250142831655223686754901327616330122594756663468948378320085016725739083878310553528476837131651811363698744955111499812760303444244759428559305222113032310349453943520559820636436105624412461245537303337184267153842619697589273288378734060869463219399829143285397403435525000350100464166864348468533122047699949778120923745207379272342121346029856602902381548301340536928924825271491161456670408029756572467920201213308518605716755368789577374534130219925540489106997529448604220883020617500328026300980013592769939326374699046818675826651670945247104695365424229582410263297505735623063871508333710912456091363277486665514662219142189287522980023949020502511344239700561084107826272467915338856495585351001214852252378139868635794055631276468510108968199085408599463450694854955884040107770262823623098815298132864499268013773047651379477002698223873663949334312424956439892067825913160697388888555653421929336974829974627729948499896098455824737861699271179387256424658601440689363857163404567719995329669876673145375201207167292180835771176354567318031114027322335453550149751397007701288069998625084992317791227224607930067921042179856204208368413755835519262501051494862018187468257412175563065024488716146411105156194806494549229322278749010657599375053600357988631722826414601516618940912468706161835102702119080156981482129223142057456938435063943717205069632929737823364892274354750313925990785087553462428604529543579990402827303957749676356992446034101872791922465351727010637129243588078612526042867760752121821685897804844692114171641064493331553652080246201378223427438540289358414135604288020872125607890148735434070910715747115051539475798909160026521799411924431913913008160037025348746857034042452480236580351237460279377636185173508186014328541777784817839069370482024064970249677212144197372851029558036952587574208027403119403371594189385902522214428636128477838250725268686320505504571845873384767909665150930041873087933837355160322949631049221130704945568621615837902271347099667567772065630746271459375249665320115928712213799039086400247094412628383894868858512264807984574845893910478947531339905193097523112861761700563245439710259680489335957275842632062986154247920795227117369357745721258118131204773485446294863512130440344416314339691147808052735718030617526509353394985874605060535340251520340340163568822582014076740192760681426380170732725773895183130642681043008929469990265034387696196188118116889400484246714213332913495092976159335282105484504775978091856687629323091782800343794281370012417406738319274934674440803048546011821467439668137872214807635980569635928471284189423105753826150623206405714877866738161833860309685042996243551458774538427611401888923208436711497584925646691347868898776060445789370188615421039758310451637761984777317752443112687248818988598443532931640579943138489533119654167348722472489330874828582558831218199200367744707083726003065857109489452277947899942615531310772912013056046836816843503159076795948837176152159623130620937555939793752685805614142461930615043512803213621924533020463425639310613855418118626910879969809171728399452799831870953003501131746673243446916150078762035466061191817340039226053883196764567392414289975216987624254370936658526961165939019442413570050327645348208152952743018875752145390347879613459077012070923944375665631800212907454937430860870819831724372274050942649795442999058550883167325961454636024720855345667351572791278006548645633012132367561041746706617002009825573777922127878435826037446313676891580562784014013025949959350665088351467292870811237280058821186679244305031884319547607444958567268942737580016945658492739329999207417851831454980700067520496502896092533474083068049275910497098874893887374518266102840894666523991888244715938841150300016321097706322941159455585178772140013955597826147693749096747987871032949973392369221818104398329166645053760187099782225980618628840777472528803819630093140613432182395013335368244378845174587535970250542966606001805168091481251182047163025219359297636127206049106398372256873079151402468555482441269379149476738179965425678033398818230529021938382206610858176770512232789679840332368087662722936647061455226107198640042380384494609336610878931915448616739728969454582396545499183603815430914225190882356527657543650374950814991746836169760074446589614766097477932157216640447587451609567439002741833369472363538953620665804023548403633301759476942821785823973326218873995861490064282976703979435068651387602435673493689408728684782171200292798720726202646943356719564211652007706888624276299349716749265895205743281278902584098523197495828811055228399686473422713303123294874522899783689832400886776842149460473831920524837392553474597798008401494218743116991246493403643044115439302147701982778064774108946071607654972347239479581277589933186739972883640778370374794481641792470993294259590375314989275883607268192433806245275570392208427413732620076680235442526471365800580412183594171198170537990659238977650385905639499997670463053841031034649264562633040084561939377594699681176291204193896629135361192052697594836197937145005176989553768482892388108739846483098887669610624578179183768442207108485580843353226254824380176367134662029804813695656706448246183663912073124369685344823492101411915069576454471141904768906980238220632468425310840285991584573201326879293635689121290308472251101796502010805159038648558275050400916440205967712959612932386930394035882713484753237785252435528593650468055928204147218882311678085837810975642680981301246339256198917076782802457351169217104820608254447796382334815628527726048165900158714099361188298736606454743274880542642089935497901691245827539934652739787615519087754306979866776795714299241648734028856761270962665246319780130127947209558320476680202590574118891802823399446368102282364598015370576272903752743876276106139118372962504898156710961480447638605566716792707429827444382267344357858704307623103287487961186887491834849551534755272718802013276056332073823575151423336702747418306652164945023705235304352152828442835323509441163731023560760670994290802397566890498284544640479314827955717702779860090956147277213813170386611772212028218657182760328247855342557042739477208985002549580145250729229382825421269992991563702559427653329587607449999449573360879122569096362508349760070573066534846822908768194813596014119948454806076830062440732506415346188922096916804786072433309310652275833275785237412443645866100262758266152220475579435054529798561920370110445256845506038063327926136942881646200420740908521497137153571901185235916001582080402669597826655444597286462692858808459569119670878297183265707994546029082557937261739945188987472701515726915964068276582357474597264064906047701428352293950060583481838162815873091378052772558018781632391448075890400107501773057514289053233802934444622932435586989281795499525548062041860451961400074059034303988200226511526426734896044546688929852475889237277816014248102644464076493557080753040942555634776766918969376059840376776744071825161586474464137226682430313229751943112683986412665614095364795485396106871901890379900633040666614861161269117390777638715370994961249887735903779004988479201501548001321719389270172826655058870860956654690180506826083326080140277947799086664117886538750391878121984126721496430694066110670325261351726059217053309645717917872729112579095473301897837387925259996183194508430457149888205820929289825560448511903457641520421280753141945904936834227126241419615803526812099843535937517104674959014914097882650751574384587552767478971932239389534260770474517369381298738511115431795020377717308165029071237226018716213127806039771422517600046107435048807070999066279558778614311629437679756375331343408368850704189697931006252789365533784662170698357091297507102307154718657050141002432366324279638363628505831212815062793270990839586937518579153580758430518764452557243061099716274148623637941194059847861572126593970569537003209162757641651861819552203420262827115727689315841603311096037247736070245554311663519334202724481970607030759292018090423267783692493242987065902630544196258850411010962505471728890158927334571095072509158511082249631247071062009895473503517118404460768649949428582294332597944562737697200548995061245417726024096876988592104777339994623795494218712248091313375453009078696407210920005060060875992789181609161622181351817064954503412567936010952357337856792072526719263702892278213267403370293572776446642511754963866808203453249229445165527102918565150056808717034402701244533546673708630654395572943316871186310146205134672633381700278173543486108582417649453321433859040873348938158837237608595864243267350650127511953442234334827914319589307620857040973609391209114318250265487447087231814635378028054896088071307308085920116111376600333917722888747739230590660073752491976725191825443085364360660889950742175153803643121356611011069689019621223155317709970453409648475119516300200557190562221982954097964005811790674453289646798096412022108555298920067254053970115888893263307475646883766507361611237010816723337522076048057354466638648723481483893650593885438515759034544725326835069258404664469470255334535995918485718102915480298132511587956451764048135946309974402032095510430643416630873506192076355443267492350234850206765135076186132091872470411563871203236916089286253385522514680831208682513952129435517234708080084929782537789391955933195611743335603595375355182036666774162573621050565183862445065960792396261603202548665219583002282424978205547107300267570970342916106838154995006810736717796842795975645533626018223049855102289254764475168478812477276281338460700040538501081692916089348032133732817524983893592123744825058317433902116658135120958102706526475530684029599089876822433466329213754916728663326407736033461113786382302366416655089589958164605941134136825883318266701852852900129892801270111823687755186416893565786217793816753768494904661270183422489645650863936704271080864711119458284920620007784973671478894673280448566732396995692697430604913704977665565977180292826264020828963799951285621826695251763068946272032929906881160313545129936830994597154978473127629278206364145530436343372325328448263669840938881186389332635916951291627002409664279134320186773690504271605227853294851467952206180627857778932975503571327077493319043629496931723671940300533765038615157669415292711261488927937546845138140780223857806305805050842714935855313463816036738820893021855617915553522084377191362064174384942552724211196552349648350903662846921823478678890822922278763730931098216288687517859740360239515122618063528298591669484117211996236091180984211958192998775734148090565803569290621213862624906807973980346514199402197610756783557003495744042903653691518582189267772499274896374880646104703659630897970439368453630441492769600393413313971247917108487158411053326653711951883092937003783639505040619897842590893172859516304832735566423485488165259683789996970939850587532713453175299526932482531873179909460390604123371160965074006363750896968340385157784872998691459330969994222664897002479520112468093491096884874286012467547070422214256470841619811313442197458964025079918783864621914207936456274070116489890939068142330674703622867256898996583379663657202217823582768031451826588192829459775681206220812990575528041461782839150439980089079967147657576183716984242561804322202696865874974772194446336418684421617031671145573303476729255810547843210234891849560595129454808836401212876911161393351142304633358861005989995626185974451747658162374636325564536062279572147811761003477451548129386935678902296787079062863062165404189415135585431362431736419763616041075354465614549482548423599613221920171095191695838150453607043776195882378707490989249979760719123995514240288165006095527093061614199258828983924317845254820755044354782086425152238253200331047670989622015977701916660123927844625947118945277065708731675960630377214305616908804823232044256110643990941003970964997366880662625552859310249074900581771213437168189755947654509633311685257181790176716185682389435424241030560796340522252609226745922535575846327194214415006842288915837267944265421327569399028795807569491037777659471399110574635108247018039405061937853980835994990008258559613478791505818062996980074242026366634063270274336654736311568722149257537070258699547069688692682080232677563642028544398490704354807601083287765267398300462904825582186113619879370968903842234576632998213645888940231402056143170903596458264742097307170424944672244209432884824008977152659024979057225154536082976294170888977263025478662049120543892971963799809205451397820689893931309805185854646431920931605012754462254986471606007161525594630197091365647194076517151954581115657848320972949762749298004836568794466688882733144650772127101929034603562272130318503321245976130667400141119170267262963573285225081140648721570683683090829366966228652733471816455578814527996905641593508052843323592208828096830214375604750173144009153713487266982140938665734144461403343893020835211170216731622091967529788555785150271187750883487168400178770507578483072868588325442929008909477768321983818208507555704345811770732738285731395485339175424610922156726312499223041926735810259217750931592582497247601402083984673254515282624794298570759803583851303152501466996801283711669311775058727642287004019204370315594304282794633883889704385166852412997703021920161865914322674370239378248097204478852824774501049884631092796771199631575907103338442528156046776889931126546426205666519172011184576332167839131854744442488368970792979079519438327839383852169411099275506921789069651962130663065029869845942991489271429324479831100637270772051872083673411000150717054891503148656451964576331625684141328450289306847568787478234750998314039334312426403665752130886513182589718652629744437731841565707937904373113559244184794728251187335863916700605436503536138602206676878660663885527801725776542444635358579077098981781507326798774299972445438863032875476076685915379612518603110001201783658358603553014813382242424069773534924991093061001920414047342371200590156216931187195900519202684165124135942408815315742091686658626067066367953483397221826333205254862443172722237133112933596162489487570178216401132668771805594332814762831489662210849895770082845728723588550589835611505192723596641341586845688749557230222163551860528251882817520641399885963373635167626590148632853220451463547116918707461839198171439885587957050147320465387554400242326172913803741669118981484798599307631600898762242750443364143155513939683311184810371940464786223678581294772535107532041889539510991064797218363595122204821346118849755137351321794283223626250063121852208969787951444803334631037705191334977161585368310237724569820955273064001124524162233007231963633315044181195035547980864203619836687782788318374156901103337480151766672291840682725641867448097037090012951241485231067245160361680761274950252551896733877289210181236653638607599150826796776011843192149206114294957686370297684106360658919959758866751910460862602549921160386120647500627015310979634363748448805469237882773377263248394611242478260112268850912519671445773486928103677152286157618824937143076300394449786007524891642527199775661718643540682927938218113206253489097232048173603094294411959924595360653934786121672429447755826185164536533261669792424860372342950199993363645306570996168699876901551254884739904313102434189070349198780732050822261341286428230398350028713657633179758958644157816566775048072655357832110984387961849095458111673638778768029595440092328423042823117301792162098193778916675403905515168648250432035151006197190022114315895160364587087274471373697130235026869244986487010471956033869951442588793323329234123360278261011339873260105477842034948431811162263072479298463585562244449338594974220003329276731208451642375053025066753858689570167183599741464894884359824998047683618304163251670500785389365123311992180165778339057366450955688476943347544137123667245594925379491796855273685850013552257880269610707694400535601233002242892234934283428613031329888009323824044408824955235284034521030041835055330263634131338715694111271392979295189103953122362450175399578919546883770521821217196942129917091248113635356516207013254552555053417767713856814957277018761683510139729640710484877373973798559270595534884424484293283487268221065278971839828116867790377367174373828271954446679026878139103713868937464933218891522429260184945116954150861598588896192013154700375026409304948176308489851714143369611761458926681915434016803061169196653170409890387675772382497451080586564201462370602330327825622631222799299208864634151004547313784373686094422014665173486470725490635714306120165326874172150980177989097730564717776276667063509668829352541534041626211416145098472224182244518882900008021646496564486690572908129930456915855557881695189312122312824343991749112593249093615526335793048958031463874914335249213854384980596598188410680666683279882215154816552171075066912897380339853335112699284403909683672067759973062604129720105419886734645461079886457376664329490180026748970647314138850819127284816397295533815418239467495002051685156225198344679796705768706165708139015436404940524784656795988365078152054021504585245255898633106121953423244850891232302986940750488618483632512725489995617201398191164795681720837508705169498506274771352117797332759214366826179347060074599408003482494441117649508995229328721684749328385004009185695071258231009701701328953599388824534387708509242913224411990298161334194822798145836035654007387768242079345230779236401849304626111207013110791794823930775230036945792226895644084878705577820387072458912562622988615689645696058293188740678040521657506613350527882013834553211084317915347481358459542010513241522912329780604405365621431986559346411572036689973178662982408237654513468275120934264844606325474094218499446670953207400055669283019894342187044162364830246198926984580597285664714364479674618344351352385285104835600610533274235049967171006020441169393129693024820790343051060707103431713044955804353337207610952720788337248925174988197638070571167072092715586973295358260063064554015701801069558613737729567591235488763818387834443225139668028461929208207205874987410982341867773787366951041015185214113834433802755180086474977982291545465352567756454465498634728803470767229092011646878903028804337919591997102194985940335229294491534923633259803546716731732323315048549875865292227802518344901851769573200511132959314313028812952611859666654247974500765997291019982445013638523393802149732309829804511020200058802618206943689373290858504101254447115424056702460139848691096873547682562429499240160612033956952945279811997149753725667262378509297969868308847273055651598942098754962002985261415856268676197330350726430630322317765449279296418196944533026710708706128890266074984866717218830519729287063582807189391428467998912703382364121090693158117741381966647448474760522214621514459091040016390374854542864763007681872556705980448878794131517238838258392988263850573573172471562530452924562258554158442396006900373912492938075927032572974577722838792913263756673453489784374272186799355121456551119199901729812511226472257498422239818250197408574383244248967410200212107842077520228752687722598246792907161202310165356102035163785674010515054995658197879281468826854311165445591535742971943766918624055190979715090597695176704996472782825525166681715860858413687229754281256116700927315073983003905008510470977033213198184948894034503548396406002907228654730536652983601030348239808534894734325805833638814575704028118705558066957033208533311970350221555144471898849257566844100224775141694502975488553484165873550002700466957601324444819941996419019683872607251997125886691301389411661920821321640078847057745544112978102628625801626676610340191229414099342779755185359800175382566654923938057372357294858701309937371663835940096127507596877486446619551846150291712889639955432417536671093800760273861021971854339550219208861453618167752223733330011396807256996224706727452133791431076330514948144277248238799305524140943319975554383950022742584771946187683498208345869287772288486955686523649632258487228089742330643433513017849046820334837671243207111845900535509706388992713327276626010590512069026398460194728118148452767995911571318651314782932018095750964682074980171163638545243059854557384432824905683026807646995256528931998220788321643153356902877945686816226893542042018189862227623424575371643915545349389568550434184310174843893442473898302735547821001456810561489084014619081673158313062662821365019405722861499462566107686164324547191918563753176595978972601701917193842130081697585129331554823096408151408129424815411555959861597040251900338953637268500428676718441252411799727241141541376216748812497632890650643554054535005045424336388453213503117289560206633855703850511492794267482273752061107111532207088540045107037594562008605953295540748261360127877453416250995476749059913696863735770218210077105723666196687691093495454462041296973161500421771432592052261912261115396489266871293682355689149443750082488093793000565526969404081783507508458490280748086613218513523357336115186243503317884682274656443231952245779813623218980849001745166745506455377175883819760044230327349688262316474209944180918462326461488131845993821364171977967585031243563148261455797150765722692100812336124320456842156414737254046200966747953608583223197079062124455769906072411867631790577508458275789051175367550014146060656604230276463308739585912126246965433175089514580986858568945679043307883582133009453165888384551205430035635539967975377345608428020694004730220639921870458938241348865589476482903829847408804158896135999891789547217926205241064268711079475166774439940367709515881589752198508202467119258882013813292492487146542579117833936075143686496586368503382321644752667248133006088373057475230657413900984811920643393880359632534499880677461599346168948141643723096363101098081423234246027531045925694721127208688212302328248659601220298309487474410340299153667579033094278999533281084848911121587121450751768437823440391923479931987399795928663192608418342746906618702598813297488167045670069728979802670664922125863272283256669623000653551974408109670244082107496659108819052835656860017576902752745256102714297491639707486223643957006875897582771684385334369098929020379016749506553821006312130213131265226268399117922481614688341637557163234423841959199690310504031000973868103841051035573760537277186396921023165098704697371635685764239115271954902285442003610197322441403783175732176511503440884557748947375637346909498483682755767481872853907549879397756397160436089013532170468698609086379548183690476294093278864234966969924571933390972364211955668693680221645038065226721993562897527221701540216424862633621863240857345338884824869574360666834244836744452379313783309757057090279687778273862068546695582266229746934159744327294809586523075093311998731478463427493994470538871481053474784592762725963770646065061688556885337546630194198736232840573490748996832183663252609931502324895815949255524641638283890223727629105516486455360838594568276236499870786518059879864449249224685100952155393013045435111685233834275139342699388925636670065851488013635124735075177149478896540909990370194261641940295004337336617509563846173372457742843063914991872780099512233890068058384725615021490029835569763667237637191147816443843582869852243191476479288357687087318696050767548003683105786744747298257255126088687907673682053636613745584566978603891933858061510973239081263223640424155290415460607196390437290259557041042005677258524363041694310869145307354851053626168815279762632283683748205807905331880892822294101606304875887011273598198844740421559631576850852715718654788503991683338169024856019256847598618080619974712926662669841520063701559228572425666266216606703792164791615472170427793638663495424252335420569166107284365887529759350836527773398882495452454095791038946612092558254868877675640034336672802346919606547077338155279713391658657988303252139505991795543508666660986390169087547962287220319088064108166959464382933927018479024322258307304175084268628664650288503684275741454117026697725380652974088561119562502304751711033294463259627386539336460113350481452661392255287013411273458702893784426605090857797525440063935858618029454774866789448956066233297280819926111454049966599289645151905245551302493709621244145122468023580551154826550406376995232644389677225237888859689027214595449478749591234392575275161155673729581617351811110342679312164533507400977669721600943950654407454353743845069498075886356216408218446107875287212996452545972280731264379847423605397236825779804438354519462725670652731723323157927950208760937891928847407128539352417500451145592870817044862180015927488111756801963368283735361508482718325303838282972261428731465603738776323645941887164692776308565366899890773850069982108433409451929153987075813875922167588677853607000427888435143829295562190103538141839559311317751380039638300755920695663732788625563970781443268572901144036280583850882540461718821564990114169887654049611643897846760688966683188023267442601926654287380082177580656174374793028364749259174665595003225723539808133814270334562429055935295557617641990750665957569226606497465520899570526530062692406179233318376180048268951994567168330944560279895832033292933336460409903793921073839389955089744947407329691525491399317251690443095862885343578089143104926918159953951427697870994356356563271218642617408735957726751847130954105610949010479424774185395233900871298039928848030261988640278446582325533765807011784553623350886317925328909990350977524741530545552765023547139342211448876984205180207492817151092500219065312063541614423796666392073646157556153323974058768969420001618057119058474235071704033694261149263752950575718797213478319355884818991729997479487946059793108115342865733569262147830749435585022274504145640603190975690959833892323166934543524287314926275672905220362294353937273341345849935974986764055164644090484611439291618092694179009259491118952911178451002829993394827328883777185285508592718274610838670512781845262258252626399719841776920591627962900651780065581972270260413511122166816542588836979072547317513580295023586601335428668281270391851083308790719429702546818412837907051287298031014603168210350845192707590724174260559143245038765797666276884168729669212740545234919590337999588038004546974951079929968617351927494440172911887515462323185697193550853985396387833007912951001116307423873437545466748752972700814924815115588947270156284500206391213572037896784004712537345035403548800436881365057167503366769286870804130002758238860762359138856064810843305057901296231631775544289779476066097261816344470936334310424392664112264884123615435172458915588204084769111143966829888652426467078949866203711010733904248419460917331284720771306862902504499350592422924292593430509034149736159879996779421819238921925950611802907082685525732946771324877145511437731916122439992893152622091986858080917718630858744561480639989945091654761759758320968415956976476006975578303230619160534984377841660346399926238241659251205396573139847119315389856187650287571232087310144831307892618642333452682421191780492732567671013170522145457850911216804730785761893632051803408126115386579449413043525070853884070876200407067599506243063515508117802923762885466789671928438486051229631564206578609781049711960158753168301150567061726193743216812514463759361858493281182824822270343821627595693425373979200502510427650760593309975581845765064681296816717321164033952669740062891050785907054074523101539027558608214290915839798707484947730291292114436634231695152189516523165687531841728106979912586538176580810280240027461161740109642397337256850523150616330502291694880471175830824455801824271769402592864817353509038435457869700441894571379499991909931770643191495828612578336023556282689039437704934024708007123371258384227316012406861695525593032793117534410883598035345525949855181989389610115646728090852878288968410028797776587874606825262729530056987470427281483191743474532763573905669133684434068094161170174619440271862847267859607276755281944325597392060380588477299885140216825932694930448646662756117065891690149785900944680088319429490374900026715687146533025254376848021624222368411165161335956883331536560349391819152149348346417302172541295977894005444389105418268687733801223574009508453853577904373463730800697892368236197334840425890915728084564815720093041258663201205746806268615266333672651719777980781168402490322513396055844406689765477022903567558037207314537080684165458975006061848193943739339956875736115873621898006546506953510573568387008388241127928626865910156057971943646179616259711361217655909761175531475498268745161220217403865229528672890647872502587830953822152838324555338785764624702280338704431667714379036945177502113147661469569640619587551903656202998677065386581261790559921230122457720620444563693255416114488270379607914649110507254817119102946164392700562972296256099811583120562148665025971069331063513070188094717064685864249985742299464219714197386533923701310758668351341239552698157340499292559756744088269439051325270272697526420748328985142047252789692439268182217271839690931502051530031019424550480277552448376202133761985946095350234407208789068319878678277133159045902782913918735652672708428612148913047050462479762111224998379438348636710589908967622212717719557031947826985194012951051459613451363302917443107899189022233162093085917421534332533276853806239404940131061830354608172085174904798943680548580218897761179800803726680362491638387748384291779381236298697433668232921107556593314653458069194760032273348573498773596620580512694327670296978276726704768132585125708154044085640876318802395625238046249453332810152624173334710753775911927763455400305617334900513930614784872130522101645001361785950918799986112032349042628395379559736130734726495389653296050212357705039014137324007603105931475762091623952127741482085475107988480979624309686887548493534099209487968703739949859362900772933010269171122790984931830584984891941408245165920898789401473122498078216930749052719066528104553661001390429823274951882942330885893362519371530137340336589457691042692389623286797903062582318423814370896243439908942317713432685508020725494328023634463547816528824176510157764006688344971623470765068157652536305452946725140211560339718058330412354029411474450740874625607009624617848853225085635118394764770529049670713084605234856523205507128048462066580498894351685982019436850433424341543810978567429207536722693234937681274723513597555634903897998774528000993938024771383232412995811413735762777523312478781409761549376121129102740441276541146578718853556478624841854842570871251266757031585238951975627753748127888433390889101666858451144032818731544214545198340944468662408346866431913805332641321082446533493057501920895186346920727460283157581496529579283200376266438979344041689740721623748864663075878866870211119333330592227515167079690330551913654730174219813408450303842922188764719014714767886474190533976449163034320541551286747408022150012968966213076416439695479394741059146836212765741666360486272599240938667106884001680629847279024985460043425350324619973576263184262323135950984082823584265553423215594302887915834273648873873097058163712716037418979294145292019930246858818449789471512849737560350880777904129308418006816508870155265103708795996338087551180165349656759351272395932491096687460320975304263617568495237837586863959848381140319941846824557398058910984011763624652386370540423856018497475240442463765449551408954304618100217597785223148144035191533261958691544794758676178564773635190844139422154664127330406280295483040319536487088088395504204049427646283670945512646205472844744199338651570090200817936189633973799052615523041724532012715256193450523255483070727838208451021497758287786069463272693402293622291170287795196029179597722397411559807201906240442155105411722043644098109971343896671984610620577820165748008635555292466559824841755565830222736243230565015065607896775317185804891546153172184035595730584872073681870811565821980736174274368327526619373291827894684267929583345276543429333667995723198417238724407519159548099494410740987567554954582876400466216321671353958196985396528162560361780987977204866421896745238201961981565625842269907115804240126915825251125624829393052757655859080859943141327193395866152268422065703659940914787356597741581963432823666799735192768637805251968349060888190703455103605530390062340024359704829848275281808319475246640380375977837616217837381293374914910927851868910338493960349018574513446363044589407749650610896564583876224977816195701692385192364356254078533133530652563168887290454924490681496015221055818778488719563810447747016037389166235303313955470508340614787944599798082003257951906308503790027062050430428822034674669451985118199245696649162888663505867519645821164639504391177679208457333333070979547685064306645185724457131502017165502938147243129938965782659040126677863872827372748533889606476666999079646323364848731815998561090803382742720037848783612504068353428057668674115911868500434400334573892149228664275981238713105219101497740754243120180852661863166899558319866017571826011555624033448848430834877860458921178191634299780820728981979269203143507875513296340728901402018327921006154950312577513813148151808575957757036758473588541779532448595460254662394376165213658362917154411643921185248525855112745822525952602988074202215774561474967871150477625464590414096444725696955088294495835138667561775134762106477296603196154534240620540705644006008527604846526179849590475010903165859404404095047109152127707745940506144556387761763289422371556449253229558442951789791714596574222190654049410926220106874132567652991983136567464797392442295208861093456671933010394127784629241658553353929631607392371054771187923572030213451635154607949531636512144420500722584749324706501820945792174417000552331787610305496905116837193513782491109662106184835726253785226790290558371008718617188714373622610155777543782151380282127021728493921776845287011928095821176066728398509585792268810800777868060414191781378979867420240300490535848563463357493443304952604694299434178468439858224568004215459286824420327392877642752099239628839331859944911743655167045951396272473819376301647793846772783098338421529612651986204701055391762004220056816964676343750765822841753682056356482581387553091567727962277304638933973268729703502553008017369676754846594650021281607482978692166010576607535323820549852043762341362401908448854228836347445112030024298245849259768788303290432480677555569557441014368628140943645326215615147745566271157465943141903802862504428946385622571438807099842557673365288636639121099892726392103011651862225596494048311751531254732287833127711814260594469902660986706680442966774217948228738176031144200602690182971577275971585598008823819212376490461326207299828495489880251834433148236838082583195455692492445138269940841917856863687575786976286223449189126929723153107111749376659499245345087474901543310787799551449213275403114293475448239551142344272854097235934539080367860190734394347925507120308976264031044203799460154416459022234580698693809754624608595882481050002639737798360952758305139574017103414024267958885676335812155389267982292492076840062561171496025211346672755621071571589493784482628733415932309059708365806361422333141519912988556741333833458990283507507307732733424802935059694676640971510295531789569837869688450908492328883636478401476268970100944729603442502485856231128446992777551131988032799471483759030331634869588694660073296256895150527150081631365256892904136532528603875314834750354845677701209610637539027476065572327875684092909450816501773742630961412371236115494375268544184504673692304049823330479067382108133543343425357232155391602956306192679861881598434551303125164225034396121417971131415013568972845042463127687407737867225586574260589027459873783005097705287422349134994469974975231424080207232337701359176411195938309137325137486730537717085564166683664268429453212534481697275626445892530827188721405616604914597123398733678781576426416759944882959192742160762210532665169957729265688485282557700860435140955313060701371273189704237265801095000969157799767423116654247877239942750654525982637982647794202438241684523848554193657073008863022655338468239749169453230198946084888918635783742791022669212788199540539845229871913409998297482567761342341483645232152950806399973904534056318002456409061726859371682775093035975427525555528955421539490749092549119150570182945627025640060344367383340520417275905406029449001201075965900316341399818815479443782504984717679290361867631208537069139967623045966078919615401832856924554980412573695262020194558621630778225635904113388935092145165865908806391695733494929488892721622177999308667075052514695196306046130070884630548434795798874230529328946109613979462344851086391727985530878317947868621861835715514403195506128832099368086581568959671892521189179124289158015824089037181106177168523968211447497092049371187945233257411927203146236937923426450539263964777712980336700917604794476655316375240825181741068001525719983688711536491346961331606465709971224663201989092702939892338647507982996803783580549790521124666804119900922918244738359514030945921350213828442820649761851636978735939837249403475045735317264873517332624516651179133488630103683064957378378949032776226840114980476927010105161976700176613500412783999624095593589635633531654380228109195548199662322640062314820840312372626173558060016252487217221512626294381025807168464569726670045068375858830676113983957689568943079624747283840499639080331911556466543066702625252199700472725698407409168708000199534012867024366698959523544727137571429377596763333949145009793677416221183385713628682793097985032520172004115852648205006384025522010969512413163159801359863245701417728086310735657477161295307558877696473901012414663803731218472574327238677828125907275566146316216434528592978855949019563078568416429928914565201353974221773630139410019990631614666227008334039001217904705374519945938290576107948776553592899175282930077101149284664004395462497663630249632213383496885263275959335684356844078342909491089081688067999860648629351573504756078428642149149614110502820665783601885183178007485719425408228269176267193606854023190321616872654171728141638409046163342841536294837621739182146072696439860117009025053220870444679225831906759469114430609030185396193133098029450445485039579627782939411434263179020082626881581447497209751145270782895823202546523265547365655383699440424059879651980615905624333246229021058708243951066599411056741429116733532334933863950032677618083385157986549920204990229610752343803408801387706595201079779437019029314973022747491973209472419807593359096597587135589614837784702978046727583889004562447222777363124666940286615797015455928034111731097144437361349438230712954881776909767868040701252491793776243798873904069799175763385414876510900379211942785648483119700956410901889738572078529859059980664954850608138610188266320492134498390757806676614169664072853062005050494546522664311632063635767227651451474779482362166364284072704198314935665992956828627045934007860113285833985600350613949750994994599470860000254006337657521766897354265716886852900656625750593219978832905990891709548306030496979904890296253903871925005351211333660356681829335813042515343390507076238509077895122026568516141528270084829076674261586083163398006171307424234967534228756290080852037828523965044783979323621710971954858911468584207832728068536507786250457526362404511458763064667594183924776124379416406111578740366425766544776099106592380830357275800291118505536124430036192643846961345929772808426379478086194543066617681989743177869787103399239049983505868975678934952577167383014683918476309476383888663782700777104613742587784534342122424216454056476304185923272677551587410233004285500540267561147867785107846117567209153354254455978240416435079021317551989840704605255250125345042686456399865947080509087754496332855253397521273724673214549745732617383032736925914716129004185583051103755173934317408672680651556683421548396490710006547027717214692006052349458442685489157855393292907668537724579886671114824904344922835595823760853370832010031408657311750489182036926537478325256652774111944231618589035071455320566451551104004392503362765853455345676537929586107818746144334703083108597354226739786203252758305084927942726417380525015813492123231269036691300837374518741765709974704163158191908646784185490191727469422465500202508586763566681715330735901190190131408894663776679098759426019688222668776356095890531631597331508196668281980102619467460195341487321664844593538425370662869586778737730403224437974948107594507234194647757642358427129100356138985504915835865114576242111848893902815982058576020526378187413045112459952864533102981652025438381847690202592291491048903909755764977357211413859892132335286236255191487284815107834980108239540892810342788569741180143702773333809693845637197217957268129977228976815839099530476997571356236401984383768474789488114874748807375976456533193118521442505957147968657744137609279448884887262824336782961970291739470571242215889467669147026476368583118848395592600692899291883334221530913742359585431520235782593498040337096884346865924099241507234346861947749546646873401402287402678834795663388329911298353401921063548101368911210518925133901744391763586815726253125316861497526922083559183132033522785460809899690558159000909198981786873155910355871460587134900467358758849484233949992886482929357188657270923995853724036470008150162471381967626703909325246876717439172400493995535405226976737671215667680198451636082493095239440354599608436789439674161364611569945922481318949439955244644967689814009926576632351647598290797195136228490649370388778570982358518831024594850300121687023595591656616838025545345489569156527015102748077047252668175899525145137072163546544855354120537740952519723505852419037889065431218839458536300107501223232593273609520445796540908059735444828935164736929882926825146715877173649669079855117785868493907699386826608706471408155680617252463052553198159454447622028816273570020921624712899978821588068751319030061073898177595640189798303389506577209492415109821089077465703609946158552440399875106064165799541909281905391587515224731452798154082666024444071534196774558163137199156043179882616655818043030582243772114602522436485215496600133644903830839007545065647655850901571943777662188271592454119404672559580738250721683275737156336880586694820318368227277863197836370605387248601974113722869263594060757820837611292476884755691373039508465612699852092677502351582810562913721755563045473507879167832758111225570311382250455814294822723067792650359452920940274687897592756625972148173752548950548408540921140066840019156228505361268346434361358140228968378411508448688326374448606288378981109293607849363589203959397962146816050592001688002001030234248667462090565096667986437147568868758913513631883129037951049779089338990954977097234978108611372831477730816671823920252387374491746694151309733018255154358593728560805401373089338967810455220858785621050723574169413646282691432480699926647989853734316580189073544912285666420669550767948050668763219583953138391163010517858565435256036446218450608310351979461449796358818538282556488949965854762784013318263496240829685343052721838289993498068795352594017309486159966276193767132004047613608799319111156551045481216204759098352944326837396954128453969027870243854675991134526280602891943394124229947424422790313126119078060382198881236584387879181843520543689778614099870307081740119141888592557940088606380569957943317451586823641286674559238350618954413494950446373307165522111742926807939691612557175460921858318268438550598521781593841829622130909367090070783159048903290940864176774577234185751441481664503391195312141528946074699411549653544153646259120838542279377906409376898792434262721893115104876480241771914756685837301022572780265581413609892055736213115342027746662754864083299387223668982997388512464087820409109079048392977382174170100369659536054575932900553129785878397726042981347646221206445081657367488260490859052796695851283561481939870962438399169646202136171171020019415416045098081207162371766324625507255468171077516869642270035285091947329824386784903708622780836759654909846287996210660746237379492563487400599939487560798208118475923313371425578233582885982628725957528682795753142023751917808767446277714960168526102798285095586324721478960133458045051087749225610787558141573502629957538571678372252219214255414004434903003602246651798218277860138200514244329498436449052704247615493162392294310784720812467673759900921140952078389243076773537614342590569350742555578275675769454469545799118498184959649195016871836898420911265042888929626722582764452462947262750600060655277332781053035709527913954061380340221889575949774176342101962802050240370570835578602313872233735788043446318911951468165487318564569910617126826565169384540854515652842079576538345941783719674051673584993197426374057755503981861648291635817591440184951870104474905062621718392981491915017533383858132090798020539135152026396624401134467495650118937115717655711362129344134609362287147676215833377427561943650201357467102332782187212693637150014344665900521768451918644582765440118968012235408579174501732380506182848434246134543948562333494310276981297815033271682712069773279502541590339534890706291229905133243861425564245899401410433672062302759937517044375269918389129948003188082739214358734957936194669771604873098511203166154953443155714164371221559935793709032540331637977003630433457879753493911505570444779311110998393876343254884782110592945159306492713569018542908593734275338092939901508702823231803932697112039994427220678418110275994181894420621734315870615117511287342800403927316184917926786115635646974158383353419091815135454072264730588474679559259538847263995586948403381212914128176903979350603724587691215033113175190938202954231312685091068305032614802517642293304974494678464802410309580570606861949112898849501397270070907880659523101137159363167156071128024401555638648796160194993686313500243681004095733893782558402042038455620857088838897280559488842301895187168338393236145300482824942523013264774515260881737723326159003552137662945515668218334769871242648489023797588680760921287794658453239949295205876570497402693141950014355629478067189196183937320279070542843735510958860312967857927943445742834547331197243513682726497324109672270854309797877598702032967075533811197661964606310964567190859009326758477129079944158367402491533286036966908366187947963190758015850013455564208843842938635964277349944151074873897800036744845033150835678765130697991920479111068102552317450022718794861336774517945804206208663380677505964326813252566686935720910388171045320171584305563466328400257657702506741836674890247536527277651458532070126938288590594335032838198911829955498854928115813034676068784282866373539910217663923463944256047780506360444950489591129062823692437647141711324083639551230141984350330236642558217065649630407946418888408573432522397237279014432093353717168244101768973332665714994021413397757624375096982673593674249740911570360126389401179760077412243198977681035080619446960073665879109747245590645863642631752355949148508449817448367889495511448701591595463929441009061880379646474474956150298562321148034932698883596745720137360850981299378278288814610007344470285023853901616102472725731021907994020815738596166572399312895767439295432613548773423375766536841029125317949332773118660090678574051486934793929452304729198289469261890197908026113440842690326445121258964470665000742637069805879976066961956422926618594251856346916658871501864990014536355951332280379778861467032573678849518288286457548453478686594772966282567775989033000983879530524283567640441310762391739953289181864232535497799573390934867025202020020140278658875491875326103891691660810897616897954665216358748892167038505039780621233669610735748544157543718290443293482537213977635160681719182978531279546514377837524417287579016322476247899399924306813275455663846663181035664609520657771480866274539083544462140420263264090646413806499853340684410081096145760349468358687790149141252492632953233067009431601875494965922132783201462065774527861837880460588584063763061564063398705048121064743395089086694947792496409290518461429396884623157132208941728836449274251595746200730494196571174959692704749409030969411649804530802090803327831388603539004474344767179343229892588619680842614164832426240461616340367591776692233557864143870537221268548010743791842176409445327251847613137411145302544287480788020536657197720876320168007942138690108451618796430297410729137232976882708788661494555009536834399831518782748975422280688572802875474766099079248733557881359738680031070326275057944474452392208892459609806231765480235885332664660164620804239657110095738438983786840537770715531056030919499146390791602709414910632611895529434446363885824842395375799452367752709119323154944643816605076685152027785837914245118933634419657463724712982955429605670494811849526512627783916619739196636301166958055450589026838391205683938019699740675624261447830397419055208863315470582618619120628621201090001288072006242249351752592901480480500884515794459445624550323310791502831402120302910344961932298188148725031996174096553183125902113097699774259667582806142538648211342022767182507246066081798264283159375516306737976404749848078685856488548929524970150196896361918713053737859641051096844857225449964982693128021729189304829423651712892536360165136602114150867031516490551516253642009855003974067325277511407918508898543658507554613692335201004893277194042667540723505663152557151327081968577599877532773930216535624397319618696807324051316309766442405628678774522501154538324626438155959850762855117685533124063494962795837944202911401185139758748259157717475049233056945935987829857779687465259993404464421158906104220694728826173070963052849284805469513407404946493006131252217222384899247661317948832598870630781736397313402753872776453553926833201927818584766611307955397125882418652042912500699550165616016171220955413095589902761557379524669941922634481637425717417739826440009054533671157218114586265046874395236679282460830229340768139802760142152568695748101924556648946178329242299238125791862720787261669691005299622808943755421155789728645635179240441850345519426852769619355480063814556347715130103125315370781716059755381501960294875389388205836087706537944255924798632095218009741566765872986790753342044415097997278637979779619908244835941105818395404023581387830867449867026460950754349459394857981318101367694893508202340804162626992466475648681442242012502967736258103527831275965151831423893019630223033380333588848391477980837483028941030879062339116336659501052615899620525720908120875176110876714516245108491117806293252289119141982075117721922379376818466265433250251207638728393400775974558536641091676265238991694053667154292917635138771658518347632724791694813432520661608484461191988714535796314332803803745217380924288011880668528288968933639844099710157975296248247673310442405176968799284382631262231425536385889808519816744243792059690557467146105927668169160256927626664473714556270084225373153209728544932640340837422001601669976894084349784826702796646988276578552167666556720347157862955789378457423287701730451329474061521468778500219446937398533729931038018550524633620254412893924613166698620543999240941787093527687000772829864892872762745118508342861206545031560672198110698102616522314956298884773236303701641861110527188415146998402956658259680317952742220230007735933678792458353835617598128099905853948591726735142924125244347637489378738971040145495245043671892440511251684900771331195351210309543140936776791857924311158531475161114445473933553201416405179780683988206782003722410205883042441288358863545647428144085439397722447658948366787362067355938305915179554153912625665638672011959960818251247919314136094651166593172917155704139097711889449788548158038808267469955089769284562956150723829082788163363852156951053450743671411442008438871868432933449289720036324176265788877342193712401675498863151466074802373330148013535278132609976724496460257160172304151300812343760362643490818617458567589630810763777339383561441391822749123658702723167518969469937563714236485486408894991564014765701498391631323836109781674872409163953064464029277983327646580922313834829104364906841712217639682521936681513118039956134204745838531913007148201831878505855205210587257421456552254268294601375655393363510675811053826729160992926979638636901594170883807936073395425740107082165984808073670620233521204496698843933682226438872061122073191916277755012175163229046609095255858228765013889698380322543275013686188121587764315485366894970810356653228222074495815897776735843895966967317387034918042627130718931543435880193348440621294550052393061817004730776583811761882957406820908071123211662933945406415108480435385951240912152698364948575830627643390727723294726371097639209714454025398798623489915420647529808179201356145943700415234190594792384282833736540743659322479917788350876920031573105845028595852292023411735408868527397215716370924455269734110185519841144787763645303210650287402711961998289545158390023442105531676779788610307297370894951761179429853964091772783615774854596204656804183116266405906958697986685975278127329946102911018629652667083845332470092342907182868018064412118859373699953813948107566846733456427914803016058357343457296265644917951889317647825831797602640610665857232303369809028641925448155598955107416719020411093218976595563547217012592113436759982795380317037887872026538265593620338210883852034016324556526604323043211010740335022903726949240435615706050196110863375121828432760762118665203444007430125803209880722360029609423713532551129691705641287624805399167476171284933156200655449451115000594252537137528518102847427460085935910091474027794805855039961642260477251787925968585955944037443722676789537567098421243084444825710796635300179850934194288995955763987463261628915324001693398585403153046441265110429863721040288974991483748850348759694352566268953428250139956201885038226849693155983275336962084294525678667171162949557532366550152764056768438359390131151647424268229548026363994367778054511203952700504934115696430028291603812510151433027915461000995183157590848650881938789117819869806595461109483876022891734432893917939518468186566875233991433872134110071028591399906090489042279196346340904890623825322134653437726234817887317580937290954145192360595709042684636978459047259928880164966976085093613248299622369941890886617810430351587921314792261879635049603644238775646316581865578659418163003910130855854291658687265245766083296057394060926652481956430096053491357131925007636694626489840250632655114937525402507858199760255322550597077391459229718854185370573630420605192002422618287709833948099478979136405608683680549629409664888431905028594083045022506974521756289243961354100796809608166718135974972229071935607732261027303954041755256962723983959747896926626455396351951188704951712764064276120970759487293749542993742659581266208392650218529932246884477573955487902822092230913956589193380039783110279964131300777873882053186540602267293827517975312683215212592240899656882483453940097140628866444355485295533451091818636143021877141858419172270361159722525450475512708027271528381020333715265610104713840021266042090032231243483689924298026928827439681825629905590901791763742339151198948784659784204369214037603471176278103361951182341610122751532169474514460340110520240057795377123432036333833860642783381421693293001554929293214588830799079846155950755322419103852705237314239599740927424209075022849136294397228445941576375854921944419260959821646518227225469046510554748790293003953917229324646424182424764878748513386311515616341951211039324784177732446681298853267716061685879477172417010380624595798540264914530659413605419102671792399140331367701277248253731856101611201185762130563541862567027124253252357390893578345261392966579035430078447258304710409468492195060660560647171227948512155117734004479180627918856840033343772834481173087348899091023281684443182368160862095843289407940958226925513434911642174215843938744635089713026922128741381019505702294521752118241839535950714898109544501060422266368567809213074460893912455150509114164636891823858395407792813531478599600373978803303232434788720409781550275937629329218599421853534301091965057456844038444585909901291909077093518374669799060622940524367845599051789164926903711826375051354334485074388977244845834904772791147917671971339160622065175692512613418453740564580951833447272371329020484920740866973414530506779818316870300913033024543163078943714448704616249124275424992454376485252539690992167807702724569509776610409016526251674111846961103729196838904732866959080205952175056350638266475365885900064631186995048623888414199734948669750848097822467224515873041460721818400033121321141106689876653722957084524444823371717850074618374983415768485693413289998410424257515161290380192220480503221974795974675136360925629981840046866911802476165173730475954490704882370250289037287739983182574870640697732808746954449967916986464024833446733364690141934634434343290326006425698774248977134657356116088123814178767261978635436261923847871766749649408684701001148849093801512305281200643203600900487370093980219662008825276215008317696664982976715251182079827380889723348761045667500957940064734595424490085653161145984321115319346331024484103997374000142724361731701158467585595938861611826678473663191160699043646865856706681633953163552656748724425958321404281119597359861998519578866953066712324248191312557520935663892902233396354314820989116180976636868994100707637326400087576247670653844421109538052601464601996018593276220338579427843498213054455772051607968280357922935038211715092211519780288943905397739324216685884157840066845349649798819487541445269025489201581788394057241223566622699704635996645095065558816710706629340715167001462244551062311011486348815862829340396767811293176894656057143525243211916972668225284511179038751173125206396829293068524842312155064351737820960883654839730546316225287924040338254008766652376413449893673386445390879950954792463293028832740769850575122833717228950998124160051595099614134653738340027220568313215919377081006968142523991335912184363167870091095821125484789671684684995176366569016148876411885039671678925694119612780251703549489053816614584668810951546477625987813365587302999940889214013121639295635996083812374543754253778282374854837350275702452333451509078837135611721443392712327966550912746409923508744045479355252485896124139556340389859061823241184441824445575825834248731593247849270107272731032626848758162165424430536737869570986224712317855418654565767316557135756562791019195415187034902523299619010142539873379348107614586040027351253622712523639481162815922891280790605398440958818913517772633510429562288583409506537430960714735237327912736512803307912419272250351175577244638338173164589328394098725140275148758570717997704300307634041901377862611825474801045835180170329321386354154285114080293291017337042449888328518976324722720815437186072009017352640394085822990172936088241835829639431837676837574241034557092032137700460457615048111863876703930572002938639239917511760170542031838899195216423418552805448977474451716006180356179538203183041895241580669482438136490264006993094176044939691555825710567365067399196314845672385858375214449436714526255751990371252642632389700352390254641413310605869861178173308063868230848250333566018589715409079779995625150333459095513073659759403401668368583343762054946684857230897467879722893164625166442143622415534252617104085181425037445029498427481748579207959620948333379735255815029681139618342748268941219364171827923411630734560073676871089686218349112592534621053818837307023442457755168235974904435750881216265646379454099107086509206106204065875724369032750557999835554012943233199342653951365244406501997253070749050401541696478355627523426816184304175721640812263155272154749942685643504054844996408280406142890734526858616839459346089217822360845981084534461839128771693390542819426593441671096275184164867087458085181749788327405532280398806008684436453983862282419474102473762836131960985044939066591976864814067509178753734844391190878240260374366590701297849984598747426559214843333181828467950933024581290827907668263198270976922296320814978019329647660282616565379587461631719304093904570501526177277557136892003504832412227337027300481087541711259063568999319721964293651321082873419824358897460675547354145067132696928312138578478382896136238336445369143890401131847907742574228706111678847986794655981026206332797016853058655988985613969987262808541853461444654934698441646016967000391243204963331352731268791336981436151242707334385073482653393146413409825350323509315773504141357647688075688855676397270009296043421155716456335227448011977585850873796297733997144575081292200978228815843398483685358490240818710735038096843165132307752033085054358539930302077849430786603488560739230230093470764837317293005677390526169993013472587924243663426811688439383191042345528930907974060040235320325463785847984684201607065026532076569246971044582712320110098693329700738955745305325827090407343078275548088888855172490624654026657345310704954655307486330314498013662386625957505429583027616695771171034407375392044016109988349448791562111443418185551712436498681897609395418101005638553376227321652367767630107713055852953381682573663487811509924846110851508064855113765784874597856100034144422523560325483943728344709065129527955340655110854047863066881203667362443098033247980760509127301884303722227815374356629352344284304233014245411261582930055401326500622190888318131796585488394273777247845520055425413242294966386688810297542520668024329565958967591591442501672722414536865098543711777943564773078872135972375700945275580596552458991837062872462680596950251864576001787900086664850510343642860073470924241817541625782643992833152339458688463651184684865094095651119250278362352488618265755408793681249869412066125162970600530078480259871771068390868211249529839641623980998067188957872563613040662755101003533426668976042779303619998709060322886558209170350438818637333634022350589773348370192739847669079355780951349158717705950358726756201055905352414890070893127782850704200939980727587298241311541786129667539713189305726591293590583972525255386261331273778764200993714082039150256150549555430945423184248063135319177978466361856756086102922762035122978308261335705616226085678301895154930960428875074373367980914016843699816998385388945294249090473069166844477736113067292849817721221648993618406680999126031734161701736691901374737990896659653982991730210540620868402422811230528857622810637226462903972622456574787765481728488711766089613971370208682236899795917783448086033445388728499369752565487387190639136293387653640594133197763068228285761686546002939531533563531014001440109632469555721525387171818517787244365481187335807894836077076699611276014026534674104400105419066526591301836481991045876380828598408094809588456847745582662350568576964392507487757347674921406396475683580891053349748572436577850515364815059732145156779362766304808416737703683469563413109469020131420587289967623880173351939332481924104597118458544607021441863193245979465685296873878629360722583068202578805830276889367561877589728290805833973369601116233649686996981402223283624152930954770604473220818022333134206284634349419890194334980525734904143425231321911312488926506308443985140319566936585073822044465787550134748590349982928800220760194110014327493868721241751427583235935562361042891117506058413488109624268964535154924930368682952222636321619362876172426488826780051858371536324281347063801225349914195476020277737566842976004300637687734513902231527089492617863468584702500771111083910300818926060497231268637573111337451761538305782381488840406900861890892143782496638586995632112534918587181727862586788142567214075636518561742656429266450033554544894423253080749980335359563545026382127369441943092631075655651026144848117287309633903311099609195964453588996563466563621569987962128958864879569201048755233762409700122020474818400891601241034236847824660162002069245818476362098852475101365738724341190367035643853755675411101529769420835765587101810001278520845210472370256239533224981828731286488633719276954228702190539503107148887219193366278931236913515838552847383303780339125721377953891921351098521622586960162620300697905283883982958875935820096420770798682516940461893021929282661198466983572286554015805508889215958792499520422779185384823953583072388687050115781841805967158443235002089985811855123348131377360047960963057915195799667845764469533847637777243816667284547191541324723542538719897716206401105807567830146045083620201215287560193204142353501658084648237496863849870247086950359000467501338933545854539197810093748912294366322255862540333212017163947092344385659470895969234067355311132023439944206742395910595887915035800147033958786809344457773275383303046201235218931067565257281644244718560047742714839573201683638401983074371003629351552491792769225217051042080962707246021294640394278427160497576280564743868566777913544521107049486950727645355422290952593148070700073838615473525080464509768889526462996270715852775116316448049280673323351130080026651126764195181433884496995125899511415203958058165943911355746721639410247364139812662158820760416286540829764196773073102513368960464820010625883674466823000013718816281675581657213512412402076020564538137373020593168867435406104665373709361546667561534221532921053110150184352850249823809870299969706613893942635220300210007671249339562561201914584463746200359355165246419230823979613101074192378727893356761174111249253802052373403755628378865484791452741676447807122912109997516161089071306399108423026286590522037189409640274267440865765831548626512090093447804867396928221341448794022902741426791072390839099016688715941943796943909153568605878768407446295832413360565816954970988677227646054418222069008716895195803153444265273867429398714003460723598045270414098940946898991435959237841978985480291085575047450158723131023993176880545672057464715824234621044383695068549988335764890947830866270223374940272168939072175122025560759622246187610951184592483430111137308193292348299888544742650313319527573095285923090058694802213983216373546285777692855846536592760318216520846275894675590345603020013537607124340679844602359657534934247391177500345255656005226092471173101768988109709376429179431809935293567271821081019807519311831749051764271304966294968997511026426279139922579179566589329331706016878306575677727206136611442846146814189225774837914204570691698496704030972690670815266370562689306151623914409911714678282240042569300310701690456587744064375629724888206274829668962990291853842634870486593514063359453560220435727363103897183457009101327747285093648051808737619032733773280719540039819441481663622468358732794059145118896147037454325166089212777840740581476544982656096689447977212085191983685314113754773920579079576930434682529092479457852460080557329610553014930728402299047594943289287914818900215794372212813695175575377803289358747373345175510824906187979118917936422268043154918989238197027270856702248650215415990340694678724169057738609989884232594217968904381929583341341320856874864172878694286297452227900919304880902858954993167164198724694741745333791743230166535946388707784313340409042975248488449240847022246716180160667934843617360411773679803383886055144223340228224975165196547984704467622328892968205238922568488934836475374114506271174680388439323015060487268347378602470106520285582030218216796505172260973210511726412554816235419022661323612208291104087326630015185552243152130708779525411266751571567892676287348839473508036288206560567053761492921135292026004545195385561393811303712738976888925146144475561095218882275826274477606730721693698654391634654297026170865965755437416343542543454530383456175932535017726962187867877160674652879885369113800933319281526914111859389163965594207550341172056423183284269878224401438845092632059344820041529479579493003684571320653441491708419582709618477210622534753546675636261927752475549566215697312596960505180655438537337588965950369998717905498945065028915613010228501829611368347332106227150108903446610115995393338037332553600405790872934480267863061986292190253763227909388210142481589662481494641696371418970339034345621707005720347646160995609719380296030659294649047498355737049697901688166012761093018477640683228814206239502816223629382603527645113501995561348747473284545566795974843798828891067465811251496636619076174791430141312462035152210783036942633322225438110266173124413738510139657659576935368660234277141167271907307350223148539015114246598491836585804154508084710906302711003937626350466581501784314417789409182628725029926956511229724928934204996191533361216344273227400444795605252784329456389579421541804518603355715153897535591720059949535919652988632660149539925689959264260140306805269599779131630051108933100059246202111637809608567148371245226190171008766176407066492332024775843156098856766709162214026739342375483373129059939162259604226341836940346860662015598683803251798134323032393423509748211665931228874242267409565498064274138616515938866641726400106015249779504381937851365992276976299605857234393964892159795114693581182939393844585651742904090661561471380917033037101854056890470531263049008518123926196448852625100843636577848300696598819642312906272478628085544161688249874365980783521244436708182334498540011646090286546872050237775716571807264533193041991992175051308038756825262385480933094551843662429261589924734511150089852776304841264075410576623715416852327287009641215755549984799722048682729334963758512421378240814195607651959892740633887195934118767595235411540472118050867669689741705197614111220590346304485611665361291844167534294378722303792671566459005212680561869351072791212510793482542715430158599114391805888773395487927078948143048787480097917427257509488380779224220662697838557554406654992516303552604986926178117133060099489700295922285934202572957721026767070365377889184716835046614282674463888027476530548916992646005232813727860490356513756296997350816611941425968970655308129507192300518931705350858844121324259239402011336970517555790366480557537985834834951189495098055687670330974793771764212885435475111195224480677485765370643697003080034343283510678125447862141175040027387669058807917129704442702684637448291447171436677481133780427337739539543117072456666356295000321695019682124141320060133216754945874857724775189058281051312001765309824980988070206831965013482496110277241851901098465778848233389145403218563848346030160277412138098751356712026574679193954970253506384899627669105139263586728319903928972086693827308847554718747057563545650619585158882850489874808858882403529172314488637371873490348054424679413216524599610461072240509953328181319526749937166855534480311250514730738814228651229891547534772374692938353275996362791867822324851787363909762764565138671925325030348035690802076311486200170703847367046149016517010349418763806907268861962449998861008482782226917769426039743426248331023021508584290629494729050523712806336015109187183421168372716938742382675725815743233389282807741417221340174527172067598374218218700100455087307876109920519127573818582408793975929748760371555477614077190710228077645319563977172365678769533337998009570283445540941278921075297828456748305069412395302390714796891875364329740414065483908847630673167023829453727301141478234123044457130885959069376454849698155841822727205296304544138252472948466116540094723825698921675016334041162281721585488824689652621767474627731488415270034702673037374071421087626357647428707195958751428265862909568300193204730146124201587186948412736554337357714626860237706670480853924662435970422161726017864115095868283938506259232391227150334775663347339206891018145975651461530158151658262562218472929783721078549243132001860087465434763944030497191354054766696208153990518837544383840376872942173172702032068030634546051154532459777136610117077240915568043317735058113305696916997098512236964725276856747640725898075139428300326903378629758081312117447749156202375634784251785204568953655224251873756683377109945110047177821168900372997681611587598747425662386248010131197420284213336226907196104093134106463643701550645825106872323444772744245837715605107548229570527771587302597048324804799360921578743555174511633587343427655585114125530714286322327287593233279659563781243655157121140091850455326088914639801059134919038570577355597444531005433150498279500038028462290854298371119319587447628922622823213506317964951708835594784540847399338155372676972235194932007439242744225351821870494286206421357576685854713362825835610096389686642634105156717659942322677436613607566812441166732311453210641288742238666354571492032728482727361586337494847383642116253715883170962337508460726255188019162132561189775563450807796577790602179902057314666528166182504251661265194173741825065526270337916924251024326262361511505994293968457348448378262215008268360271954195080244370452322317896496440977815404842435661417607539577845216557679393878933567094365589170538488148389640014912017941381434990955602988286933016156820463812423453143323599131539246644711573851570668636831520574235578546428291001483410778534639374206730602209902091659753831151029795802414322514178299394186845338069598904528410171710856051815363305399117905464949163249374280879519222428611158014024054076569542251914370205197051877263502581624426068126055869142549076680515327762327673404771087066245192174125105531172810948604884823726947537776790050975583668900384726682630748976442592168657072490312435215158192161225844876761435618863997373768476616396029463130380357523706061346381714880353153437341076448937457926820612143984758561906385841710501994416613745423169302626370252467376974751384716694742104321267243543365839370123840874072859451056357651198792393048956088891609811661721005684126936786980010666732769837365373382722785857297624148014802045105846676532881850789049501584523246167293012402489612436523350170599036802157824718381934597035304702914642211737304185288751455762277269357269200042685125726181479379424962681931840516795966494946922488397711420764912375612424294465737367180788448070377095242540616849918396939102966997611036398961419410081743763616655287462059942262271616060480405823386122089296632714817918363419114216749565570564969936210614205178051470528881846577443116415864366624399882399818572343924157152627109578919734678972891184107058415112822203452746959557406743250429636536565681102233691482094762495234627798202234691426203199255661138705778694625196964150361525431398136010286991191812076281100625670354894787273945944912608947322545972677643479650168511198762809910575452646976083098708824497929507901250723625490075628637003954965408504143614194281530463739310594093100603449535938900943835779865109398824334745191746485797346268724483102340432782140802059074897892007741157515837260346711810160324374107673297033135435864314414063475038284449462085627974193592697052422918781144881604902806570873506949883516426941343947332150461758462167910960673338107257980328831504206352297770289732885807349119803147196003362669219533509944920846937995821504950670407563468596360923280697065573581391894477308672930934617922341435499082521044955553476614988586337934371181920296283722878635289996213830027819909379391886727402950607192355604700639039725665182815484550347832018687832418562300090743534646774435453760043245033210828339150902979457047450974188534978936108549547413128024620502579861356075669640374930017661572823978318577030830459623663493359346078805814609235213048056891483849907405833881482934444247351607779275677609988706329655300074416151601851543172264815882680371305245455224864633402936098680259868490125896931187381500367541923764507846367845914826762622389040540581790848885963837065735836437004476220872068909467544889290240435727424357567674870634425633532866974989419704204673676267234410810702045211545256057868888316254881009733210712477177047562207432720238045880959774717762350376947472995018526962232457138145225990942171909042142969565434889119027554605463932800180185775106754004248056465221603893448948924769559037301659491888519628889150745642050758321966671674727727725903457371141737039685929517281236809742738474126481119279333532489209499473816178138965400845085785327420294136764549764180021695673886704148570198179051779718940709559078282696039519155661272495989727513201156579447931026837613549034361863419304653619223302684261758210844266898058441544206173717906777487464264171014802941577380097928586030760339764538045518721172309439404532612786567796061109001317046717701194718362184174066772042952752085431237902533159463673864919565601660519847055322737291365528298298432851362911531882760457274750060116517226000569828007523030348115230579784882494019139959125284003133989026231063449036954422635032001239842384949684575653839432714632108896081613028952566316828820047734076234639709592954057673807107829245859089846060157677246659056165583270897887764495033631537368837882352127591726170755374682548532026724723028334350641513017175911876998868750964074203206557417214629501826152239810253951156959157395453633242690485753398218641425944753158966874136957157629163944108069598848483622063987893980325681559426737145863700469572330503747716547137947968751104107916404936753705521730278694264151166422292087655164309730411280059722758944224615997446853011335498901892793243531128202135876360293952936074990575852055104611680545620251243623924743954913791793750552785948694765448204682097340068830981140343791906064415405516755578407419530755433335607762993554556259980594547790947237368287137902487938772231734739176919515653224099539652353509453412783084879674594103572156995825510809455867230478366566808169087985641187128209575636435888857285485359710136647429584995764652294096460887963400775317730471144971705394760949778266105823051701195832225678295123729917037016207338884131725255688841671175806358579762689388547494602718139590820692704744115546413578060748604950212334951451342701620693478138369091985405906585908841493563609625368554581846308367397499659987238757514118319878994071863459530213628742467167295980892559161384866440794293711327892335551785817151477615210949616533940010180941711071026143698942027664061952793418936250052507805682700904306525339332180218245280131029616088822173062770328500453180554965867953465752139539662594482149536499059846966153118131754100258180820801242654562072770809745419588909684820573929479415362628415805226902838476093867658091256086781872231672522209301631344291440463476623635770823447250408817730897894435715660618414811649237708665361354921197176864234670197231114593462159388626929276941593784072318133349644878981091978355637830226037496206593139585003390117142083104909448810016771799229564968077185240276136296440425808428305024885602710351020451371556985566537709593326634850831857569905150676101557426884202821870041314716654868090418955829972999235852999004936166681139436927492156158274533789274648473377432781871970204922816865333976953760320211850696854846145756837828350321042019428228827150936701928786575170683782533048066258530071548474229144782872885284653406213145095337889241822052138391938958750150449543767291980962785107581664813686194939963911507237658661762976091090568468508713648319573380776933775491989839445797511795994650556548727040143273759767384367543304979412813994430304273784879852089188048063249639267849552740640894770909908237080446523531018482687623628295282174493520285698829441829453722657359762059974395236173076169525028545110084053848166072056470381054641583612832296991311867071817996829468613743230973064595111120241075002694396804510111201394420853973463377831073408456253208536261215481655264647108603432885675215782438163250307447522415474179781255154617724890894057483722089603771534482329055423471555530328804773263944334780582450842049969234073025071678867631263329539679126689908481090568253954347013530314324967752378237127722923737192467693899385424366866525841217095753989019178227841114133343221867969792228324874370835871548434143714460580790982144027580958508294299865161601376197388323167268476558730311187423319054619085077167281452953663794395961448081002363788958056486976790969133557624224595476270442681048761545850953867848987139564040322161147942960487307917677107020218182255762325035269011906495822500641802659850814653039189669847669066271118123461268536365882884539068006593450964963904750778789468128470954995398409902091471606414066304961625260299729628687439452504959474525556017330227004609674067257782575973955742101172657631212332643607362072315575716718529102079633719284018819368500542991549007410493239908484927983732591621122505656899340580968886686881834889415984254748835503730401913923343614782909139567546578316761132417710706736220424709279208329965296892861682652177494415298724264668156818169618990660791013827410739395654542120149516386563941301753207829417606763713299004987919562752831591457442349671789782049158416273540347747745371641451693357185518406316787229266102738273247385733822385511933896222993208345779306401725444237717176623026062409675041937453907255212900306119266779169921531093089539874502856518761835050654011680491089462244779196105626319689384454691079233747575465903498949845216380052478605437671046430003184106776061136183832454504538418229458916152288333372373639784886556533346600627295737484218297238316424284796023006966316417465517374746885832101621659019823871339462351104929551217942934378388443173580214517250297947681087197366581509340386439401006433867519806349299469265407548627809109858938626842438080800043445549533404596211860480761604609526190959559045304977946803832536826964574204812691876774632160842528262927098354294830445402891416792117927695143098691587297904103843111614893512076106214529174600555419944341923557611666145906609715264547714683166380531055615768831068494703893664779085023650738305176289024512041921318571591463570133151289333647563312045785847832496059838843874604059861664134872103938352195804850533238279995788997686507658268670660930428561693633295623380125877524749000489932032444939302580006744090648585290113796457035970050965232899852636113070347726145129185496150410057643863265371667380211213265856770648020223260773553110398759721991529054477382763785674117564118308747345470725166020243046955067302671327078835624261262265100132888682078846694100138558214974997606075131986998236608546562171491070673102380445017247545643250582780081799574060274207459807701004910150455246316491156850409288997195739270888082957914135104541752144944175708077136628959347308759651109319032845887484900679181736893607653775651191054263061816893508892697081582198476131433455357410151899205916844537480844157021031014427404000438098489097451281155911458292189400374568900130506156392060018136752068183534086843781096200413520278867610497551081491319687136395652057395916052707653237705812804497504481801615201046641983356777925365019866723958937104908743083542027605853575460305417897769210271117629277074357504514594831297481610675292332818064135453364285414052170995223590847877312718030510474091380608803379262231612935720330991351123914129831821799251042050532187290152285291807300661435211235105387668593037801052659824467688068411317147259913172865343545314299023845659169250706068478246241891223965810733902646349001914796692311259240899738571608636069911484559451828931635430669760927612127077510999724401232250078778437788660087306407383395990111985859135433420416416189473507015717568849614052226175131269893729341627417145550948515573802941442756797303806057607141655487990975199766269476189945950283082598703116852707534540484105617440024277480657055867912333007745696587861591567992938744408969046104848927421349251468898537875571065340009881615207654744346731290737575481467397725164421360785159827781908292089137713030059711582274657173198764451351070334396263742099621252495392430181828854161306585174048224808141097682698417200539194847208791231472402788453008091703152299864412390639037913685336374302980744820121497747293422075973563682853659213551751186378488953123800258093131990212897591231186980507960941311666239011549827980161196700723312755601129806246561774686501706505157849923431289981536567973175804423410803372307037706927445519615221553111639091752509176303385712920713051776553544009948306085811761930038299704304463472050090324343753700156076868503022162598961615467620909266116741915471885687893047944954145461916220988196608962569797131889072465748739278097754890778329261946126110110825954507355581852224787918994296371344274802481929384370495455442686663727366902093169397275934695732797548148819896460358974299552859091012867729289381877442911681645543463346258868269605093598751532004097418113771480239991320370998650261341236074134938447609757001954568465649367168370251327647926499571456176061408596738866778852066223363534561256743551985539911598899180039990007163306314177952582624205182856728870519781408822897212380904879666716029779926928644277891014011696966126414756934733680859881804885859186621498467962538721673157753403314308498292792068712049337539931506721295604749594054073254796908321505920758486826506741957937826129120781353782018124910493608209574871534831772865990235672949128847806797062736381504577882629026244108179219580626512283783274372706686949288412445337540588061348475071576439097118921422433104539462839180242338230105277112605038115807236717016003816750323250258879055440989446561786795815832623181055018104768630072172522398259402618575160407532689064923653177605056746486833103691842735569078327067218537457758857688165158759077719867948426879546502251593325131772879132005349822152775092001691403378911636334856676502573065277450098535744831964765443297575318170069652384162391772514950461895370616931973248812223184393431363306407567821137439049400507699868841316635947819836144380734996196708568319823907038299495469251300872204545208115621692352371912439771950841619864140048258782104547964521518264705824861197382330441046191655693449834529900227656692896673972767263740517238749149788351662796299098218593805917639001028270053771364251312111280321840142867842401988838969823454826335030568026931082046282328072516365935040254647920178948582169150645109855896867351475007773553388031036854297181567778201261427491782578600010379716849529918846122106158756791939909042867118316875941470965029623084422033083727408772863881779140607237373349206940979226298115620901844404525191955639444168448577615085902165584062116370013314727348115500185802767770638731968425036159529036566767598873863729442959272998436341233093344534076148859407534554243654543869014578969265050976275940180283171644685459829669682672057647320748765786616908676901899121249432297808862566253682642581544065291992593557575013774597552715286015418320020335608150197168274642778250170881521267833594092768925605468994541133686207527584556774566643737145898554763999445210428343146992925590278396374203136244728819316796933758226783409912134926107319425362066902723929397645563673073114646871261618806268767756188866384737789956049132321410002900867405137080728139457895369449588468130876135566173974884429977876116032618966704662760049993405765143952701732793117392095624939102259103531232648832938397163107164563247176079447632590296966485214718406296194213050168378343346534631621202831718652662446326953904444242484445237845368673055422453379430304006502539107294272668827985305087723178485629868591542487664822740186740576730202742329577728317195838797336072408745286176437605147100624037050419229965151351478904359434982584177751961270078951703063036545017155960295513772310007978388444976245783435481721255032404429075181292553391592067857140126787892315489394268681533745303548437641154126906063251599411739471488226300170331562135006833195591864346826305242095203309806227799306001276973169755976370844193844217869208775688310804811222001838464505662925856130498209008499014711322949360336416040097245663255701039007807779485658573835315985925159816953075960139541854274828322991553868263222418002000828359736769128393274578841114529262138944705616792853019001114940716907709051642164959270362678325291495014503339635607809999878241213882306065672624886614296136530774802455720322206370254601434421767691019999425072756009565437786736408987553208075661484117774073558446223198489714397610921819155054398990473748472039225665339083462711973637921845716172139359245809720223202836581906125764842003453680688536217014541137468180544714726905066282574463262483374714307598639813983025774603718568063023160057351962656141149220853935584080932838651862121298689168090560099649214868952817149547570356381549037765812826133454562637190917595026131591957541823240780450261166071726706692663744863019933730945011677090229541584666641696559574882958413528421766633456955727106144170789143169774304181485499113919117593939178324052344388254300025053507093299285594718607584995529493480012244084470756146233644038731009559733488426383030350781754286783522612723376007523131447056754993080679122758137054507289926515737358545072535956974483261931367363271391440677078697073768543449825600925104283252165590120776911432662904403365378725470500402805333023147624066762095373616103221660412790135842288507920371809885710886759285196453123002979367460740412030451367655570982947495581653513621970920446820229940189925173735983885804407649854669833411358399406198885495230754414695544682995969520065480706149983296336233391016169709704408214226339513710906617459384478300497522098547732138804289034579671114757285419051803649817151977768913308297458061362670183687249172478186844339162327996726793509384434278517703611973973280369257378660592857109099893432686193377916961038599822499183599420392453718776354663153310950858240576038399783011164192415850153555721017045764446144091216633627812490000326397390517611321532398415735222543055954369966674063445358582564608675088916853410696818983008987457396554235985882195268381686363940835286412272054454594820331145353076105681658064351104435004427269185098871970568072655676865095753352469636219113654567450173054360336799859384751692210502051841583754344812614328359493758153464764666518723040789228758856866254166388494306693852467097688564337079028979466537592705219813889315801000320647766885745891363343668294951353708213902148373865521414540899042988077863765104742361803054618439328831699909455460861642032897989732864409486803594886637824754756851536568636252604401298185548548993792431147974959716680141135728188135683890191848856154049104906014248480019487473592647451089598035414488493543092054106572406030030433070072257367741704310579222468084961244000977258389275684117100040402765461405038479268341851955523977148030053626997031451340349329942709359066733316594385504764946175646585302066709006792896713183812242914957485842208842410062652007612296682509452593011105133173519542330530237310320762891090090971108503075621805026669869277311094516550085253474536399897239257687981371290935077169582744978182177683994801829894915132049724107409508605251439348922465009798247373934824489867963874093462314158842184896080292422564617570774481735393076811207610801899992276348074760151872000588704359801322709439725517433202535711082047291461417482164049008022907099793372754768270751713338909264551862035588400141466551940127357439576345333403129790331105368048971860104672441440744653410554436791722250817804786976341726709343408216953704888638009941194270125619807509096271692083394854122586802260675110489260370808635684417848560500912564828855680221820336472551489939800162097042200672443716345080030175158082699502875998827109840834777875825497638600878268989926181186273885542838092463078115139751283823327329733977930548132089327938542558683673665683811190414611575534226467744389028916314514497985687662209525290912567759485260851770797213117341186798374166980884979195347349953483861274707076813661935336463008995999981270594247277511499049087039538741194406179824288709271218348017228127992974710528908019557570217128540257550204867747682801640065544711257294235361203784876489472955784007708970390807166104906200753566000208334230402520997146908932106683367642791756564668861122009834663419488712862829060709824366353016578708939887926912796879296200467036037219598301989447281789331174826533066517811114365683423849978283998579140556629124228829267469200040469900697918235778885299657063974356331788188586581283377043747653356312723141256571506320927672822230669337062302988045626775116806322738336474421780709697942445205886425098670909273878360126051594305948870521006067496252430629631968451013928785568400089577321232188514968388303117324534925896148566381376427417928580796883724922568199448669178805603965862995613035623996192839125553140770389329653287831482810734414884541709909166600057231986441264994333978272139827563830068562728080527661551168104446026687503731086177839878694782515016819155379838719607182236469314119295089164294556293064558889213294834079232766152993759587383127971967566666892725124193038421450903000334136184879388070885153985957510098942377111461131515009186420296245453908112891000047820159941967159399731574255231952694452157130149168651701070364702872440005269881210590174611059441324462441532080077877155584982624776508112669057840750043269992078113165977899931250268657489831102698601162839281069850223462073028621568267638337855048183572296115856740603494327174068567467285235156788757835037693361853400190682346726794295334674117884872891903761660556352116909147888561375445743108987645450999632496760974932364666426967834828027089459221621118279106389443238662795212855962025793837881035882879453904588016235569000865603678486268586080444843305979081615102454398991811016197080652625731409541357546128822131275967904983410570564283233348182183990774793085706380064596820760472443306045329780384493882102642594456442224955900419807897653686851204885171066227318781892261602306451154052506684711268286497239200059139424185122352644144434438977439972759069737736472653148116884067784157396658656550380237474677736880283339743655100750466356528657448209811610496589879458515887340048404930443985013568026351520246303949493371322993756005091812324524099964310133691037949791618968310329504132807022860837409384831857675150150322897265932368527178249965319995149570852221814177636839632998247059447647432239316329471408669594155219799326167386054494447112001680723677039914080842511298856895524217166604405322187569158111120720513165412889146183316623378002941319407677178777015584322606556141264058386739976714520146438499028231896805693644679996098611830421188723246337348647189548666989892276766017923510631689393772655807107950962179375189506873484513793240663089388364666934138640971505464967183202853814323179844082239387789881123642832035280581985716095085937721384694557292601370684990924737886225024449606367833443236892919736466223174248076968474761716248074743744974444246693522297051725199721824599500486437379613939220641510186223731561403834755232960242553766131932325444777084035215767842203550079285124803708067495363970500569881126907523704521814511223171173886255728791281123548518263055467278373646734129111470116421187190888255763240267271958050410177661969731972117767828739785814570130086687530316749850769435651122516237991179568098236770053503343352136383179775565357415053120889998929645410527768171098496985879344485255226289836734916505163419125886215413878070862784219364059875195058404014643396485306640618184495701474646334708738479614604041690113206576578671297139931725130499515182595333154758779288804717329236073030693526496464803534585406645421865945554707972965398735768140387020129900915678094396292193609079060981970821525517738984828087767553683503174038015856783737938888851294861080568737996902227099023473226723540559613087175004181878990458138982159932479812594563951606004852875819468844431364947971128916045451354270095151004004864428222929059349041112653236916775770211410979478656347160755412830413967040251871075917681828174386223133461044918308031907551381132507015604677525866453423551800689986944825355813834074969054761949811141095529690969262059759675992306773157516483361861741960037361023875327551992223526627301921742519926848576867310383659787425402430805149608799436696548587165404402354259231787176156347825162907521655482926883819123489649152376021181002551863201717168118954392787982919757721254113565228747124930213226232382026099779537902077496558444935530362188073872494078270299062741472145330615397057544274966929489004647756298812295960748858879706207081610777284744003254908581030964529180606108394655749501884002290298025408910692028875709991893493044849155479986642768916356260255094006073780007710738706826439404931497807384285175163881809220514268829996484102761305533002113075979445233027955094064167863466246022042137511361032003234123959156601077850978845557171816991438717251076300619459860188013144403183530650948854182694633595816630979145999695608162755965045793121807218898882615615846211553452729244259004043060689563505302527621062660437822215044486050009211842248531935086225168050615082899047761020905036248772261029638759662333600120065608267836586782298057638258312763507176364060645822619756149102206874696968707799717365091591048149946565122363084911015671282616521042227204905507884245159092958418571433175946526523475157445351169917558136663545972841096358520194504105289338539479911337702619010800314438101602568254474179785571944534942358194097203153074332549745424409874537553760297930237044460244753567236694717153717180088560198832060240668698729279566402627072225546422659245024157020847540287291664213353751257005649821789317160057273739771304430114817678652162396125968210013961467426722787009497347026008627001061703291582856696656855367251215723274948407331998356579537264921451137407941980178790448400886721351682136518799797981492451525358921896703213548726220520925436549997184802155332258988513439570204074137284283748931859465430511949511441041334955077867877762568073070652361565969375068264315143727401347502100801530439268540831079906952742227843977209255791771735354903636357133152687908093425036394895930782310354361862727839735589110444412567693605245663592700775790681442913747940863663988044036641950726112420060753041394408206683168691600600241618379354056489917572687710786842009253771522962923300415176111196178639809403119228165509357747771858569691976531686872415484739372077575442461818948376728345666003174871693678470298158418942969223286702777162570001197173877482119866396798504574743616350452838688401799611702171525465203040232557540139463562688853114988888809156597530314058853082228036363965912673503848975405768948476235362421889424957604039366226711154638903866814380629174390600485847397900012105661932899332900481371841128430898350677477414543624903089971812708842812398647439245474441950096950113645954754651861850316096496536501752264538253171944273904942692598679991446499961865150771486019267795752696862129329733156379526133190589266012429344612605806030287619847798415760863639577193769500190363147975807369236943772845173119421309073784916697825073562837156764844062978739317902383586854285003532735241305672456666203253932042420941219218354448656830441677736778479732077656527057127258913615808188264793651723901631240947116115653408263219403635794362870776110672403251217355475304557780530185917123602211595389204268172826336714909732542311947837874024888253552256961204363059453345025929738407358288942941753158515998994493114808750541664843078804553751983316076435694699301439772277140243949284797519965087518763124300356734610754898811707484877497678109650785389786627239325406891301704318404744383925673968051737164091785430285264501647457795747812470662393394803136638558811640299434747301562029101611484862333973700091891361113804605382978411000555168967656206903360436042289324010209630514474500312351062167788596828120469815575077014186606171656756275742909462984545159285501655657760666746016699255431330722514785465053940567749972302971583333897786629942808097836831172837543256095230369481504083053000354787852854445517222337871823417924046461411875342541965899079935934218575524670192446875971047959910541073592931491061041078692902780913450540122340956583279100427417666864638131586635400484949175112688057691109581337726720640969998202396782162395435786035498110363551199298335436090997068466837756351342220166194381325889101260603861789353560080396234108275554717030103665781898989534953082312062198110502152981529873999862067295295314070309019207147617373333094316346294693069648749175030469693258621658565676692249706990661159499219847413064689419992319705491301123776582928377519921119062362000356194473254177849119682155611508408891698191067405521975381621528357227720948898987616030307223668362774195235411599525374124793020952529260506745659985981516373736785086321093368110729306877070408034403691697948789676551680500763502916252118839685325548177449544915413982485903117783583269473553521822370884645311285693844549142625165734859944861748604505369484027637288690818460080126717519340488066308148716171586388594473372691472508509555305687862161098067329564019436008640280988318070158925862162202463913861038833591777222456439752719097449859121046385522236377369527180523593252484582345511218105872358665193621152398743301766915001792062868310768960210758171717672861894948353997289301207454781223655915982107319080426885264478650211046107670495456605757548300069818123849330213481267860887742352657874599936018420380860433974869213373085098697717604125849239337401860830906757159629015229948696159922686384359418248971246010521000019874489432276272390006505684930201023447012490420185915276079033358347577402615567009611655427534134716647666618084965518185708435155158820841175363671049929860394673052507464617685133856061129001025325706367739414030973855213100422853562794768134884414220110074369629678041325139735391882720512938378572098920246564624814444054793254305984559658657857172960109357829749216643380165903423662793420587268981820701546418762695423239312049602371016381838825647019608175156956662148808081382552566810589835921365647556198759878424884307398929965710530434126579256970981248209113599330999039435031026978563196659922636782638491159372157587806124387490854193098215573854607618748068219276905688646352875786730304823330344706308940759505165326974490890302404652235343640640580782850052790730308303452537135689358607539244652840978942816685705457741941159529661223748683078395206242660308439391438833154816341216674148478636578465230135075323105833153285448498015906918862847176579224266667893855905154139405453548769748185071696268125471923734628859034612617940885738271579283884514497954637473873589440388824878509721210440078087795844393777678008445044764064395566610551652972553921125285668815514141900140279662008172093670038728089204249997587246207168468026715869917933860613232657268852937975765944175509046812516356255838932059171835051122921510743945130618645892408918175143198712386536850749444315915691187981792417061187462918969038717617030021379639410739244010141197523955368640836536848740235268042331418486891003413857601150249241445490242629124585130001732303484528718955725315037910922005348589531780135174006200904365150370361006376384261374368490489181286544123335103506489446718539876336041939685677064273632097547251260377128075318630203125641330515428564120947503113900306714109921494920316226394913971259451635025306935960890261475245130891411388258889195142813172673874239015284587163927760950336623968692142411284766862335859539501073898150921260977377233648836298302912797052257963626654070465097092508070464060559407616899822053471033191215732974702170976952669147672198565185874573259823803751090511032521224998749015152926587995237120757235116400448860439871563359615556430063438834324922112513184942114837620491597993003002033973758627093721986543539694690953885117625399350338538599123981894241027184972638951705373605498226187914853266661100788259652332532346839220108835968710274909995893816498513711931371360242382974904411613134609852557877552000507836937473688211576169327828220590443456735454434812670437030008422617714101111266595732759100905066760155982154294419949293041920518173359075767742774118421983381878313384104559996960189349418072515695514083615271423145300984464744611424978908012367475886758882872065179181057080993413120178112723971706270673227436349872885746408867155079358581076627638441714212168153985889284871728554612483946741256616717556415175149617033330463082029537228019528488937406209429522706289994639415786231211961564269366510613171491834733792315424762283019333773811318970123597930214358263219418883667577710241318837170848792360002392030296441859996288941229619098078815817023576227439543072410336716323464782171643480748125420295598108590902957824203147877127177533353525719284817887316595590523300817185548502337873850779106247721319423619791380481691008281700643115965619042810050289969214315708574421834843176588945662285415944934166402574044105002784836186707963726308629162008317962736072778927638726910501047991254693823038161408112489520110775322079434557059922254220385795302405103614184952611455884247256598891641140018772700394336502769492080863210371150861468574233104629516150388776704624233807500474580112237095762414996294440523079647474766855717355053249121577681750353440397791841109089411561663810026092611707192949860613052623716073842554402393930362163322755490449667915705548465090735784034868845317074474387603432396842211297635708729118780586815480073918108151616793546467759658643892085470934662694239926339436073808213999676038091406288613971359108731109554947578489418981782614331235044644350557075771319924803734420061162954851908258599282639132076751348148777501527293031329971456586987225125389079825846994337209796407634216725090918812102369615966217956168546390873263872749205052828514062461780607417327438006142591299451362552531539559840497996003164982126666246562915836302943035887982904375886303078855808439338254337712792031821881729712573587729824149592852175412685409932888910625838411216866924500445040839340449644429220250465867526989235059382432103762863189160242739197400377421675147856361719699499416318973374611207960166710156864154405154258157603149196977732238172837638327600194235071238594768913101810131489598380583010873019664512210184627198824317554587485960034989739839226657781241972224270775702768592624564808791730037491442766754464841137546662414122703216941872512691398931565916931176300442197267583963438205453320576521871392973091132094522073530182921484424556457496633206267579325803153665506596880255370359511373834160222394094703405108509459621532195724407985769857502219647026571886348470623822317031831757217261778379179311147672627714742521084577757340797372348476816361409583455352225446910654906642964864341658415994049089164804091239979391336270281916408677469456527666306682942829746728068817658678432544085345191625799811362247214481411504336121789398594587502750325707020869907166825018682591015227506650765506405050258406859110433643294926873341049047186754053175428420700932619859018626998068061863465611521683739807816046059240612616875557310816354632136445958815044381064227862631584393568599016928188711988017721658879015598741343205737119695812470964986444614185831993713485686275626853454982319845929537152392097570549272544573397994733028912766691697557043221415392609448749225253157810737555096822427316077130676734080114715307598649879664613807827686082111925078649092993519662085841690177125259752504278871652189899026916975573147826184519882920170275395768635813901116042459016627509447125969362195958690505245897976077229195416515957597996119221353106189520518142979600009646997708322027293387284591312498727809901786879485168783029839965746130075808243412619365738922891515962432371584175793172462611164810824978171396733417783147220059274420367888361173772650646704544331217758446566881215969455230757911919741966646810275028633753095437285988862707428597902670277921645320144578732101683122206505310349121749958514807322978084726508694329890577276619582527196702421181821931755825939016573419120986316316010502323563248803409516841836683659170926787153757511488910009557667513002005299515562789492015624575643948825794704848446891696403633091796759780380263147376858042246974275428060696284814897379181809733229709355792927480980581884047617796936502278152114909006254867221139854229104034089665392291445300071393155063240144670619912512044543039285646797518966839086735177561118350329301038364651187673699670209173769756596841512379270339347722209941427058469720223227368629164918480248670902456953486024791570245796411576625087828338326064310724928415638936046349296810526648816800472118123060208332831637232649914347926713857546052473698934634502118760950559391419155893313359191161014371410202853462175138864247199411430504133393676643274394701227138838194251115919049540929226368619518947320076439467975035437373874864318939283221704649043977270876672808855255418810365159475007145168377456276873989046136360579114969087900934543260250865809788992026966033113090297291478194207061187720841721071481872318622308638022988339649338155500743665183324845111347140577270148073468633848525304708678944497264017264219462054607024061570564991595272168166494538649390912028889601978441782658861623786230229393108761480442271164592390229743710455720189755107297131283482371409800404421762359643708397015285842925548736097008817896825570050756405312105485011361058190199713207776689355057205034869452728158554463315221486948577903097747726969406708152906767683309994791835096638192429923186311681293501518752423114314376367509894203530526455158879331051786317067694939628126458272046607378972988677729634484745963690987479036370299618348400004084344470029698941765596653570003448875647096083993309016205670521751754006239298929935263042959258115629553942618035990010389999296902209269979496911647837530486965448851931568464056913621368112615965479487681104842992215538375099409907352101452763564897452052001768875789310886396805619733941844488527601346081090523944553432532250889486726606750834864823220883787534527130343976684920389228896041445517610958264863370209243128492385010482721852669205894779564634818279536802511313947625900773184313184296106912803532500107813045276502561261485086349469651097769095217360013132846324639692888865027025400909301526220217205536471448662985863315206848255213103801498551277537204966474115956371746029367573295096739269533690079085467868704755851702961569722262750947792409857368251610825282476808345820377750669490093934038885632811041724123026231025821399112697215912623176137893970174679085503420084731496180249485450449414563898971698457538884401854575491591428709931704205229526806422647057151692922306670698485610321539657790720314636624148604972086815107273178385146628360636700699043616342354452896266044629673719346005159078529246578486874546573394244092010547076564797280642075542260085274986695022000828526593379918780470974194602328491710829776698215782168324549197185259090675977416587852452798721928009115673783638154342810515498819720763909326011648936850025246163873373125188134072533899432392673161562499937473345804422779568297024088244389382682445448072586948073795194451027067995235154948576727710523578906993749571790995208016284728928151518603295683969058706290298010108232909931461620201251915495702934374418895067250425480654576824206031914550572650445146892618999631951334477842215205354072467968543045837039313323054224419114689120046917657863780129944215638126212184726495885694082733021197051180749174280145955529553324540596645927091398635990454591663080120467059331430561810650408527500549097683778016962543775055328115188562285605684272571110761606791425368173145512924700155062875479459406707132485766512117932489670088672291637256186331367530329868298588932056617749542521837131407007314959665408171377553970466272593234419277155597644284844492502971055558902736141738344484965012533883705691589622545446063488863162006580526780074232957387822152046938824914747097577558636235677949283788361450030758029317927564790985690007245415744524571003870973370572704455382982620605982890858651588478460230566634718432323535515480886016964099492525376949828591813967663317478366076523630575320023916147277535602270975347816753203710674931524304762713207378286266481915680343438246677377064362646194378422581768895240607806138334429133778231062370557385164293236582036944714285572385390193616227088307130630070138771114635254804851370864963681050739110080026621525372755113671608417530553950431529249226836264813918974439884050389174861489059049720887746706034985295085511499244960406989648155914789372436509210854361820492722439939279418864528888893452021942223554001192624894241116888391520080108712922291090903381043312124342117980987753521672717158555296070846309033762209877922349191034188121966568915415282482531772583035093395593539661313088235534124708091792166653404403209565193548306050830074068135181374599691354446094843749836076228679755011077192719277169848845835218704639513830932174501386893661624974609270258236639148831069484753268031877142580599581034974531245953277158424115245822326328024901220752943970622167084055773856413309567807610264533142373591289906767517256495382968079886729860778616674155150570627260578153422169329839040348950966805998316464245345835893418951307473508377016298608766084893529404232041949399904477090231076357914434562314011779219643001166746046711757150500057344799088896342794953162049363175258082164783271736596826038966555381330057695408533216407234510880086715935181802200002797914190543697727768194806784206775707352690216318836763477156691368889646614393745727582472681808943922026822039170311595827643301834443342790466776380655980000426936175856940241475942430013540196591425716275780956393017029160390558605224077957152840180106247300112073898995703511146306012196040746873522783833617262476409828464718303616574349863062756113564598833866690848010046758432194757666560505912920853689869545897159981239992863671941071137340746986308272327465000414698295512860963841782973714005465426452949422825279575142795089806679471252702317200683159999461976817947007562052837088111736651393334056222295594159187592334323152947008550540989530761653490744514098047161948216044585585827130044342290894445344698342276152586937103263358391602568088386615228229346925066512121667262338744608259832872147993143472064386822150092539434673340577179982896688347876602245179969762334603908184934796820635424840494869383583472069856214258771420784979558153202759296111674435560528975055433775789903628996795335913128820193463333307449003484453733931289103352638333159712313400231654845419239426529384910741137449220047568928398097050473114515794084579526441118435241212327331460579251255221899027951609482124703295114152640458707337971566715122417071347077763603997400339812884030657576944670304333474932399651417877362569599756504376436785166305724490179275027533441551473535241492888050147861199111385973835091187481887260857139113353601599458839356180241754130496062907297079334811024524624054604212251501851618894297870456944236328119114084669222103337608674102930194120167252595540964318488835441629903974988538620671931992272083587547465922387460036854220317841750896444088249517563597911000782884927980453340007848768849930613221450867224461056936291023500704797279324773151155587399845557136016546975576703074821692786083806108546904885580682796207863541508357339809212172112964082741495650960746291167650410505238837394830615167705442896502919929244048012328966743413634727925248986200128474772275853812015195632679511608287527705153066798911517291017512603055925403374580217432773111583726182429976281902127758381429837231666887104293807592337150243776872945468394202687664989551508085916544451819939934578033073825525503414591376404493100296533341219579964552483161968283288976766627674444009616915284053193011571453800335629563008122710141978055599685721125395362600298490703072646529784331275651451516865639502071418384725194442480001897088642058656453449384187245724272017868012593071470910821423854292546263189150609974431601892271469432758327288036389843812543216934141080330164961938021762604201003652023277163738373901121814095704128018335884270269655335070230325069194804635488281521681647287854464875388348216346770441602080421008817846509710230772922387007108465031522500260410363754605563705693562422936601115714545782754096164051632362539717000343032020365758902014991414317875856108333250307363505938882959719507362465677953078743576839553386657475662355001050547391639149833550247100481939806157085426812854994683492935358700015699502771161001996805039141965098899364725038833796773588311095152118616637997922409856488713619629896363055977966085458397183858298356220315214936192524962355771703121806828094349012518736373957313914088489840863423017123879918132986175024846277593042468198790389686460834495610952065480341040606950025846133889170105277563059439507336402534212349778917446222123596117577303617188393005478190558242315556100223060165058200111614504290512118449507991522966040365845241611674320885948639234487077144162482443960933999993479397470113797337756556303735478974730616318474022159872144562212261242827610871799392621738947624941381211128353069298353346662518157528383428071234645164291171460584836124420689119909414630713140089910601832503136418604623700181217358064900719176726741417443981784690098832095839920684043940125465099024539231194141765975621905166971671388004302129829591166176307795164108461421140345131133995075741205942718139834920276482070446129865295432442874508742169963637701366294656781024788739772093502362843677903172887497630687847639545546338217233926242386922807783522403181775850290673113450998377020384030188150826669072905169825302838306846482180285217115466866459687492279057798820628030466759131453972791090557915210821777284625192109563067470120828958270434091218882503236572518432716178623312855925241905718175966069496828655878951407095609961412525646633705665759361686877183281811797422020217239475881465953669391759596007866820073007129976913388484354345048273962763094181004644021251216672785339869117608023738899460633197718733999901934081787623617114302619300010250894109716918193307916334562006741394957934867630940276076158310923052257129613245622108153423396483321021233408565584522283101463370592674436698159501220831864939774063136009146177465798473351648065408434456698087029755875572838614231431882678203537763484524796947399599465853500051980654331750034589134641142464387135661850822539390604382104774116291554586509335237111362061651342629903193702458261250508277369328051098630886354683675798497187183565291412803245530775283043327989954789748519161745436721916238084739529241792699540583001157373865526868920122944914392850157436865993224811334336735023262031420095070570196969198404018902248561029264843052292487440976028272945292193685531703657081755253901805414037116818272193881515657116784777599944400148395736163308827659296251963223865973824782529060762804552473788352825045601441895028808615752325177217195981093208994034013387418410029429649575454970301337246525871551704359521581903985425155981805621006402585908295920479897321651843240611947272017989308031600476410240731975324899112807821702953238823389334373597284515329250236538250565498251372763095889096869376995515354668327270721897636752026338416910242841793451555576220275217399126121720084879456069062124186079768617666409698063081317919024123821010068765811871572851873027239803162235081153402261413944755451511705281069725065436823751323671604615375935463772142169941415084181236590701503526494082659226789406249694913833838536369329919405187152492692566634319240967171955334439479765544702229809679920727344496328836960052410156219688548450126455318777678397463639889979207238064331398485362702150197684044893901131470258676361827110882945992340225180871385919440641484916873460398575498377641690407597474116760175642791715970333275204017087730060801320321012370153600505700576836595709345791801647670721792524018319526398282559182890868027175124765580740558228020619741230471156821078213223536622730686920694453946505454326493099751559635681500505852084738960003817881860303740906520371773533788605072861902033562740426907704398875096009472984739160176515421605418053124249382545847285621402425677237620677045103476719188576507305200800219767450192702792181034794503801151777110412424726013058647239755344786248360518675369802941459403452131169292311112497599464634649732607951014152453874743191236203566936699899479188535932032716617616328532805196660258981067544780566032389254040922070649192286315185041863222497699239454326247650180860795079585102445575304072377556555036906257460948383890776139800586726164779674877192515176649040491308526192393652085002808560790856900891996585317423868102987675283100926573453817811061751735474510709535147380193708239356150844801637982141335955638140380582158435779374851021304260433055117630102258435646897605048065108818719409805479281001833441593149581652209867289571574860422518243091221912247896497195288477405942275070765896414693600247694851372266274436675859796139713504796357324807129030086453977296595475277495956785574150748645585258216828686072123358699574320356797787965346132269010947327788792410307640855877148676945428417877098866174059929329719831230649704659466561528748548523890598296711650515188879381287400020196015538376294395324182292950701793757579341827021883304684910609185926774766977718046695967982497116873154431126710171609786567935792703827915616289350806942376787652699286124651190685650337381137576504173075450474432150258548214169362879585310379679458003814397363307118545567107416837318173539359238881538163432920127978871442097421868694547419852591902333497075432645872149435138171755170165807902340166628121704251023875005003995262542018116826393634537950090868618311398806985917645352533277871944366117767776747698600127005675640480045602539573612181211810185503336206018615891934482523297643023212939659348857654110158575643392656103247838700544387216683040039565192866005245750203847190826552100849991013503625909690571813700162289765632662898233551810140401888262744579479457136497441216416627381864352004160746702815167027728072420912082526717356504850388508881903765841346522664291231475320647005139944756693900329510973939167575882714973701894925541011063602868593791525475733519317742067707137204244463685510721501878128612521336093980508834063031226105706635084785837973980577802924137754986912292428190365755010317129534525839475547282931199178017433469245590690048692195381465636015687107907665717270930264763090773898666610200673258070161143193787707728695315906372920366664561491928612085727634383977012164057384383288462327606144551240446929931392203590834912295020298952201881589028773058604096679197819447172142605992958705756954760957361253235755633921996772678311337167559167261321820188614935789132389939020550567441226207950466121066055135888079438810346618365048809020867358205798059224239868705465885720756145090349393878584120582685105154016092833180530375859179442353959822143177295405138248324308667673536909809375909722697669557831243194006609060691232572335083146820967484979894261005361003855781256120468191735824026514492439045615797901911241120084438675768875894138784666663983326535412362479440752737051091811614822885725870783681913536621268593609333984351990928654341876668645655988352622063873374297565803932595109363251016211104849083923119929877964633355532309982539512003988856167905556180080135775461223808770100731694719020390424717674240398570448213576109774686779297704524420218745533549846509623783451224991989516504723082893676692262119257029843965196610793815222396071693920164765092317658430419721332033858564385929599915616327605430237761354610110445079075132891625171245894374464012077667666456099016921525947993135721155880323201116709414845718468058391542337813878199560525366884664084644161632872116073329956982765139101246638428750429879102302977064730356764643675313183941234065722785419640125149489807226511079024723226002263533417370194696209376870743267507670515510046548566148376099910783882903123845431586485652759580280166040977582332077730456638354317578065767343816926226502348211968450390381019545359981398054885580253012999273644472095569660944140349101213036784402122065889841719024597854195342467699739132025935840924888301130842484160105617879855382252171225015545102389995965065321093433622021331806207309990449768236953487283423834548856223049262461764793573861714573256473192319950884285740996655471171227147072618684799346492394301361873297977379864017934236466391750648586074299226532867360672197890888555978767409795757639649698809389414069002871507084297056661050062401229046460852961317538921738738871852750386332735329502805640029435782924640992656902948139239637216530070550713070594074869664409483146987410741869468298821090821735902195809671951742924322212819317799130823689297047612464563808904989515279380166959473283195798685428525178009070676199771449100347544037222990690412891723114121752337457349749259571736640089373832179465802136811434865952193933468601614379394680346676522700593932516416442026146224547332248847156021157985990827801700171161576247995512076083502149055671376231964439995125486156947150376074562262604425089579320168328504554607218495280818792115235644637071582216642812383639211951289519758846624500916701955721675467706731274954894772580616950523266904285734494117175927057121290678200946491466760802508672187275255445658570162761557421709296988016972200275608108289828549401043366302971028193729326154149996750129853597197456495994693709384863973949535088182852809349593024122707181397909793614760576118451813241114412625963352121402958709690761843753373419763285702486856002185915662519364237287070805780053833808484142571662919648456499325619830057873904646018858505789850735900570463540268982147025829675811584508966385916768416148455052516194470962975526474774492371660008116700286778690682139715471417973300704461640476353856993360571133961369939530825954741561975522477061039796480063263458541794992026228667152636141129697134153760658776905106606730691603769618474570446821284133329451835062797409190882634307779078532942636820540545431279291966019518729764258956771319141685505187483754137301160417151195653316309403455251049143017935373350693879724420815867711286555413727873585336248789927253613935955586276999152440160367075720202848503234962951214853425950086581963773625083118071961382990382204742070501223618125669428896812864956826455993853051656842383050168928475706010116530098118975844007943324777521385417895162692032573146573399185997426540079909471510765205459994193229589157979670377171125580287009603274054033093661689654660452956430044736802061412270081041902058161193561682214078258626895231563904641411926750609730633606114956879814637467430837373281341748951516872534593935203482030245583002204285441064418756725160275403650205015746606894799244397668080267414295887201164584841828433403522409133489560208088072242184047476888449355989906927935243150755979683570076605493770744316410950111280436318682072974792241107096634680448724147080354662734478865815681753408863319652797263039747724192538721210298504882635919411385973531512138138796724122991412128264834080535211697895289278817461127221782234462585115405483707499123550601116772847470133320967941672305237947098314557180245277933912457912063163952578020546570169207067808623430648040923526550009604957740403307713057756836791552611566163400265285521310326955374340267238032478345852022421656987856019655595012880607700082506718172870164690189891555536639415385296727050433678134680382166114070273591603969482230838557876518734270491071205156000754241727202538851548402339769465126606390610611639455306230754002656784937670873615771222024461481487142773345834935387548488940596108245082830948111695235540111996589705660867894972594692594578588343455335424294663229952983276281889342538200322881190435891748167142410489481666166462978714123628985769734860020111069834080492620723970144023236829542978687510039665845968495652426104030575137160928357582536532629441609187310094639967022152975189515326274841289543673941312175732158267111806507142413499428678070093429030098511300822620762331358299445775375883025549123877110830612740723571006460628031888511331195690124552589762668434619772095491969241422329184308279645900704764230824943345489926504410207900823362534839902415850090173120393496713995709543547332308338330468594531781759400189835299949043438632067720154642297998157950950575485490838512681915232300809737233331422714084914882209975373539437595876149728083639764742305480953453403483488895022532806975320784938078252187162309249271182978891691346391872103143053128580585079213869378341206708471504919296627398590875926755042372211171019061851798025204070210466837853789526244108294750560160867387597684828984699797113594755394198325418719238612503998681266156102898273452184958476693821653491478254196517136694074582657762088332826516379795225155667499033507555630344188831698242374656955821751454117366082835937511099935914950552808432233063563879102259020411552770817375133131121258850741563799386065955251636273608745675392545668409095551860143607704233513522824675027036380470731552181633264466915938191792898948300424717744833756146869310231451824276429963053950183716051874097609691691869228902870184657258158961817026784237279435835871580273471330235258949141148273656584880321452130826187602639438365713876469811904282624725577075025656639712779355770932935319005283065029184430521871596889914876971269381475778170098444281040762078797766375064454475115766520585705792254892419512537678836356845151862956252813269914693488856511344418838018117800446937146030384141994723526523672016100776350860307964176820083180224677570528480638388447830035571831191784390992118326119314565973989082997386410716882928706964384046968098806068683851486202212767316330792151938100328548404540915747654608692522721414364918618766728812917364808746344853803764304005816642025239183026988749583746970237047318333305897118318042728505575868740420471383663190059077120502697640031739046452523340066190529480818999409349581016449592575665214968370782636799495881023526037113399789967272816383816027569233064197438817849801686175158434998039928954306517241859174292765810767463626216168824830406773005582137266382897124150159515449679434739195286260213967724373938438323956653853113448173508738162142667687234373400486480727131206193130677438432079755038073906164380310423181291740588412246200898973614065641509055248896533417051148420198903679612103612707827887938953755035692948975887555525650249934667948972699251861898244031228962554935154340767743914973482646399352983345686424148755150268252248796589070012600209928696339158421770457243472927101765876384220915278112817494394090579509636650324811294897616908176802993463167020183384013049373875756058007386339646955034887388839864525966020595039359772561524818262561556426251058691538279321383315469084105820554135961544796460696614888392857252573780294590418929360098722391729768098437882980685551011907683778569636136422806227308059132854296172025244931686613908062121770632688860121207107883032537858691874723440766512678566446827631768416318949985977471613565600696039976828269817316335824282630066576754828041896331151058361758126201227891029900273532353523164786936743226262056222946910049564826554067504607827762352593623938552574488379775790180930452594088421377666377751886147859004686404579605682701080020322771725605092112744878088951242410970875526503307583432945694727063900531030806125081054439333277839557267058525680571111751265259906883628015417547162341091381274633581200464990675619622950446196755797040885633382612136695584523032355995797660427291068238093525982912686168488759642332887898493910010669836308475077819670767589294265886352120850115448187481178861145634750883231762423063011204357580950438397699234189930921750349169135129157203817640288056821176771674861910538288356001823380275283725323111663428883738155448093667455334607860236751102182447336378361146605293600092662280966068339205904883799859266678060008407819076023732443318873008720893416628627477968692620523595511963208834781385767694588759801181951616380660789662162698810279088151001661216058472760780386263557660272785493387033511998108866056184905085378064730660168628353220483459683424353591231507169261333955047095637178046364223229041667394285734835119924400499054046891390851067496646189693313061335720483879826879285041575623129689549206437395211193456108862418372845796987767809407759954054525329907077954692948768646334665837586443994528536285366716117889954655561273238237368130366986203713538746067556020167072913318589011075335195199156667834191453881961387616188061866824258714417176079710500469672013752722015207219565625845257950130036688097424690708933207218000125229292617116096868800132044417458485669396211448529193995889263907513740694440154918478910928086636766784073931630278673521984906561221563766463639027608082624179838602436375373044405081424378397820836280955475342991798034789878689310155123959580098100908583390609173713601941411207462678098103648707061291117823849955875723137067481515931564948801702822007985469682029802212891419866018108344205023531823934173913232827190056649839776570288634524708925145570135123663396308507957730935806925423789967758565589607082796323928753689546523282111474980631618652603599166272373071852173741611319318537139191652013503009943981723831824730217588405594033015981149562101185482832400561602406250377239091171717657275133311236699978964698647204026783566447654048906452004713283291554901082035892073050957032594908094789834156270092636319752181893911337984578136080849624207456330172741047407204860981031388259237791193035326944971405498251987518130013842483701121860138237037803805845438371669965101264673532367985613961701014450997682258264911688351622078054367014038693450516457311536950635865737867681251919550920665375816068499253075981309973207724993562920652065586056008435597451436126585450267102040759169276906159949402679517431173761025744903494105907989534416136574608198133361905151082456888012395467899070385804525258258645301634231651083754218106347877452563377494469610667991894185425036759258250173190800863297262867516793521292179470554730054281280905601722482333600230595419629911178954070869985135768813689320275345124459959696777670049325320153775518349733788293894357995505731494267920113278103850268070263459747782438565503064155521029774100607154017568848294170502312870670591067618752677114791096313916275268075010461086878501994536203262011538971554771102504326946201941783835657698615675129902569247715786714421901420645973587780857548141598010776236529736758672013353795427568620360910752903604942499201696859169228355773553869278418721161970774627034991683615278622650110956857053727600229555671305713710515379323886070661438880050582263582471615374960354140088080479435897700262216069687605686478043772481671997170111447970227074701862932888242988821949055162850456878265405293160292143952189678722956457828170824692603596750518137008880303251447888067398428963268013594708960764080954086093413074010169014829641644606498944729186892734684438536681011113191182309163877751372287622306606755993307941501217558474423485414175056000844699844807092965064329055325577012509726084091093249929830362233629902598997556888505686994197740829236526665458590982036224598937911140238706653050688930400621461306967458771151968449172034706050826516701348844825600036261511727198129735594960755730940790760347158497282167401693966456216206507293668606503452576220540119081703732706743197179547515622918911893297919126918481538975965940910691843193784151257429114476620124578568700673578210520416803775528981420459283626639719366555750247491727050639213825796130631774232019435807597313988902552617456208459444605092785932686582412465618852249093203143477187959325922531365555487187212023579924330426610004833607452715840892334051075287647951110710340472121338072546374704873338579425287840215718690592197846887288343441235652381377113999082424810639144315229510291133992825932882164032420776795203552315091497288054687588896695171150744025134686761644570409920768843069103133741524577583798599068326033891103940575893108574728981587029560851036860583419125657248866137780162161651009785584890978087593266451677229312323481839069154283327330616949359647917302989903942922418839498601264732922847035047149514931775505798318860347828054784925357094617724420603631319920275519402167647151160220990439082386989173121403811893478904831007561906348689225549745467278717696789773810857408018779022632771168498046305450119850468559308632232654967580487623352814090045172878968092418374697298735635535727132366475055330782723234536732599041871391144961796095294835054021991239570617200727582935559891124467557147503780618699536962637471054608264742535172297105971407314787358698352673437309806505933308574134372630997956680055825917083404317878219306932674962745689321735757041220194200075173140979739470175715651324543020652791450982739825467147591025207118021741113196112403221945381713203328887773299085430135021417458936396675913234762564195510215050573687386153015921923487816231970560124549949843234837743071377374397768487990292234271798800200034501675257485164936220765415748285413957953557510505215399529574686523145616714716864935691571136587625687648559121248807669070444745480679027860219336961641239426070567221417307088014256703950540714072384673543227117782228291034782257131490124080444058126726135886257805434816152847690295926715349171133862087485774600582683358664964726823439145352279538662580580279068424519112861879657738015932193043505061899552530028305105848363071760375395657484295202627869523978933271647690915083608503480463338538494702115500431600798627154699143450343182251952971128730047721387411233373128844711730888735910743862344824437750475697463578459487822521817779223407916250097039906083896073991645289517202311113632549008928503123117613465897542057848004156598633164123329688637040426080201046232755257497470082535177415816395753796294502648988706154198799175773992703696499877073337716571414140469647994010757517963720848256294406601353567197176642885348754325878364902301784090608871603940290378168773655772621988347164015609443776689759200147980592944405758310860763080578976321380011620829710280264633412964698423124102639403140932792295365264110363047134810882459268359092208579866895639861935183631857757394324783472777880665546234267389381214593929316591386102022291546892984611213397862229855891039963657029210525798994637817211268384971914583345667360730936382458486482915177943058896701214614618575978737333130509273495706664506789687297251208464211120162290960626591639807963472862736999862952402906161124883369203238475306891997193064232394391827784625539407283035182769264963894352918305788896480592350714787602338182160760742689732275747078635942963344517989693396518648506669946789983777000429655860485269877413589733370606011937336513431029646371968451160901476914707041146009250749645850340345801204227793176260686693198491718603252245735318985155432465372370532396404654451789798179791637002226996091572871486804771645291221502002269182426078859268668215306402065856481395653313894459652610553545056156404428160092784240153410055061769685405445181557737907904259200572986799648351521325090626295582983959038846847207044107016629132547790894403354639014346217299235126780339621919363505835124340650777257129398925890394218365094778493716499350555859717055561874584130565192944210469901650470882859352633591016049167455397762930726324138664899699477371592068511843878968617009190919473273234099860895168826254796185224159830456762049199546812573901040680514266150563415548889531969096502839983022022120199193977630476039509720897232516834720743821925970755636318305494924636094852964168322460707182598127083049994275579233756584930347851967958621356516754065250613379958069067256007818072245814556773000858701670739439434135631085824589451002128938803609846390553956364435162666724436965447037819047356100198939816139893925552654338065335876215812728626167214940394727610597986853602123055353149884102709705344077837506256729506156343331433347261859380947430264743000075260173191489276135504502931086762611871315690934205514509249247369121517230627862786164779589175962945578615776069178246519186833642737934966988012470400354393930172945204919235613645698710660492515052495130883173779085564357737524631618946541741594069681396171413224516506486537483594830311444330369286869688545381579338672911221496080532152518106854437379352786743169198988669700673930621972634396349204871299940984783071775505355435536175310396425664877021200969726696727247175980184243489271223306447857967763530767074007920031976633809011445907963423142703795061008813626760658195661054168569269167137003718202037024612224323267330249632198662720505349735951854767070882370291101338260567278169424991126674086498818797796950507718584989536969722935691764499131344313159056575436745029984151281135599697295154039328053388927174896925852541226310267176959837699768741591638923848257828651033232695510881541709269230620265165160093672004724057684503161567437066305336269067468444944962954622846885790637887622048131787937744636075354863960610086733319508120550808546549512318136459931206844500922836842727126900406712764276502940501105440192018273160395002395609046972037852737471379605507096607944004984049788839506849700558841684754766895561881244561846430578011041803473543891077824359501477005164945754961282914111983181579825399646445018715369537566712012937485189842903716575933650162739016638943113748344927695832350404230706016003507293012530586508748139028474164601346552946629173115377136814870619255679641696759880785179532623846825007802918790564501686269713742607276837791078057276599059674476371674456139994152128478747334330890046769709923881043475834448172178114663949148760701364841561933359942511572568117591149969125981152461080004672439734150646715145621881330963025802600894350898216133038447969102151158834015624769561053936216946285991707833862936976314795025346263664279161459247525128371163595767584458037326948158056827531445581272718184337279488790300552567397830857790432378898262887464275919607798033107908160612843715787535779174413067529146351282556881236529135539505132676579387065636294919639248943984751177055341426981692341750982046702470120086830676730653591788621966712784931201715548270230315566079217387946361498505742333180377845261835212144477397747217194388606053496365146477164493201195161029811852196383647672817141932591035876226508422709436765809633525398614123318248243523271798182361007806210527747151941986596168779233683708446828080158928938950202944916175708014954331301303337373545537073661147160009466006977357203360533327497533206935209014627873873552267759825284170459580176338602554130331325260112703208192633125617401515061649230541508043809879910810386862901137352126130468557534833494398891036877490068295854211305150314037795123121441210666228222629641587604522246030269459748394968457056065199904146186327702076589010454613137145462509709745637520140432685950858476753060410282038488428568138546935419342183668594492932024209704830419409631261952354109004664394571103556723376053960996606406659655552971033700229336109273288560519893616265648690933285323534765251289976513287126081444089119956479839079957761879422912256674453602226835092055916294746360790381548723555096785587382092074243527704331711005150635015715742968881913347378255038517015253745625553358839905349573016950652733017171351470345475666500745197719208548384523861075948235625159059521110819583134340963952130724920947288632604863297556776675271810488191368848321633877773899662317557088446710065356263832558573783610006173987711281911768291130721956073576654207046681230422148684934274154007101486159230473143267784084883684069954255220801394996993888394489926166917899036328594514807865692197612731493727293073349923886112428445584219275218933374951268870152377472446051224066703431132805190647457524041208448816262181311163987793438642956354846091383437004665732535781690404371114845353955570760756300547344303602338506206413733458051227430581566501540479016798066712451656715386320432335703510068422765787747965035379578366336063904877348515185727777914990071929817738351459599702884947504369534727063337012632347763016203758358370244941272364655635529492617813054778260679763697063194796729435136004997926234337343523215515080270721047499784563872747998175526974777092127962463207557126071131051787862037503504804207669530895311716496085892237793982400979480847249268494141692472503869402195218392356067462332740106715866998859948108286691567064606437610192096711528213080306773279669535161665076022471104720058528320758293001829225642849121551562627313737625354925355937890238699771264128980163674142510686821104759322683433180839247094909597626124537141534625132145911282985614928163752558310121751750945270606790990786709822225762307268006151953267669417577103387318059989492044929001848161787938260577338388969938194254690117484034797259972444108518697678807616831702177304883944818677710114653481894857669542003607893732983691389852250171262338276145256623534082293020817263310121632610569589796744718354195336425786064214961920316248331080609312947351247319459835529232293825234172898007821474411015624260431167919523002208022823361877503294879534370207340920565164915210157622997750847984089745733938184240101808487556244916309377535962074385153184728374425021098173787567027736299915421191604209313463950097832018082546537103589550658092659249896623814647027826607154328193947689901602088717144551881947093634317648608849173755117046855430741861493712578492060268126471530908100972981529883384386602080905938416839488062597316987180214768683315200273817595838128724688211954943972637031299840640335969898418908927040305122909954184739002956599081057928134050093040275900877385848256512602307879559255876222748818623743977390055243030172958033349846173816706254854268104185777304497625938652655515305643875777689518702760602522065597488335392145369459568832981139385037102177137816264831717946924650826495047987636686951243362263543392331375316247759331886118370769344714245829714278369188551817891289272573087482212781537047037926305237813412197849684245449831395820523840744042712451033021458974522701999477271150869739295684875006380702999846004559319500560082949679120506376014208134906454123536670274638865246203691271144011290399397649586973558817522304248726264191862324392556071763374828564728155423779038539123890749829657678722751970162459053922167091600951466319933144389872926847678311370588916544522566268324881088813973573811982111452520695100402593839603793849977870893447961735534757647212265878396640069334980875217175141381324560556582649370965911439836844578928371123145882483788283235637786143912512985933230991525516828875853934198573813154996339739863305379227862102647344836938270866488854247242220441531758639638910221932028406568795656349559212918429449506732584368894334004200829691942835001978777524078405005659970290253528886875260872861678618210019493694733367799167986823563208649862152830560487600375956094229801874192068801395476495434498570212084470215058602550936754609751996997405570128552228699886306652915671541550735984090712297826574318105134060268777528841133891612572185545925215763082757966184039413348508107249689325484843695601592169580996219988859847427827054494583813820253921463723037049790533184668898575622993040813800494745737902946567740655003096194327731005388593105419874767928242821100569158034783758436154472387663653877638633970096356925869394826161693834412767632443197005248868596254250588576213901261604276232377660736037233364812852858616048047928756244755584321786729159459525951394609721756088861051136443223207300494030505294257387230184572721934266924198945146409799428303618926048956846074663135356345908831263867594504500178574011214504776968605398125359628925505164178828642370123778914213166985459645187264226477839895359115957705774751378807740762600724275888933467657158402803886714279395717636424362942877138408714162430069473363349747212430242818965473648750449148555441399938515341176502564775940557499039888367725673610606891545211197388496791490429620971936424431000081386833129151234078892591968674649520100085413060681718586967720113594102776821104053419449243044780472144265876163130054256323333056979225516823343101558300026056957571357130738813777132740340006313928276027605058726163657227462950931814928324348461368972870335648259891752363864476206933958684855132648567132796382481319194754861707347986533411119165676694462699218927406110120985202225334325435343428482310388142994354009041929807763101810293767390020059998914401557676067974564802364696052796127054227173955094469857309663974443774526974916998792268081762543785822559770254313656829189595573593280896668381788963887723544830502830061428515908989163742635631203661412542762050763724393464967095883026134643547858724856407870537427602723971606352600719899020381375816059154253883467043064607875725739898631355574519788546790742666739832903272270373688127813036414270670364095921351753315449732289263806275131440829095477191936303367861529915141290510029907807823495019326141288020428976726509336129834386686099802706342548885677539177621833810210772088402400461674249946943070288705973696082685490013558011875426344124969894719230750694870212983786230963163432687245209437412149218573710213632583465869592128199843483565273760161572084085904883619664855334092349946144133311253619317779554015904834868947305194736039307641506901672335069083607128485387260302842819126478419087203972790565619264546117401612380814129948235941045540250764047179923210142195751013004288645287156118123146774565868026927518074201241157573365457841120622670756247786435833630668086121144373755872237134176932173884052382274592918498436804757541928626181778910667980931602649006552033341593642390842876837571361867317384995299234617940049221433222894306567874148610559586270784959730956426884934723153635986697809210959062588947448446781906994753675656857025183217318192125430587827932924915825119757301210162095370892783353132669961776217984066479527913339186110125134798823251764298906063853018791062512276382700336409502084333992243049508664352166765929187123204506992996996866637151158242530540257584796552070174145092668049976506599698372889761979515012617708087112973183105181256381818993917862725297702582914308483087405795918306531811362260315741436861852841632035407563109640206046576704996780812899130683369450207105331135832418230185034240042004021100376197688426972720013186496088602103347831607826732793510993418259724162695521423732935325510072222251644981645356351275479921066097460744704830754844055283980269550253965924621160424352554289643990910407114310633493729204385372292260052741121407889130785792843416108574578405296274075105864404397487879595076160432444416940211025919866290845986442422424218468704884281089678828306372567837738267429720802969259292111138693173717372831263369285508821062762116455788401099001163169446510698354153149043903408192697763423948749217429034508932126515144660431691520189622500375242998066382229480548151090948060920337078764440854599325807759565201952542757899613974911991793568995061565908016165314996886082247659762242848184132018942698777451547539998163197224589208279892352737447382934499890601908226179374878740604763911023284184352640104510828781751011335370085103584169682478471530454357026808450062235032079629559148001968878983625383954850551747609961936994284508449626793473268593592899293315479458393004662502814154088774978982328131156565341610963703293143551265443548964214550682760561822428838530460243340527174178108159118878342666765175579070162311572235444952169302878639853819329749200986792261939098850328594819550002508819299482406268203895665664412814493829664962299048379004643394045469489119864562440609258074945588453077610867280134862427533887353358673588621270699657990674951947117368611369309421233256282749389536683585029987832598042699475837717361138462469851004151052639001335954613432715213636699924900042378662309716486152230230713856090039928431103488687374524772891699828492535335563116266342766624134187955813101794706058449129112860024016503402067823189039038141798817650017993954633532242027838785513157046691660834770644215429148399147864198751680184374412575412461569985531700489089450914588617361391659786632212529942348248807306309860270172706272666926261916145722956720968591595371874021754348335452038808548560274005741954770300393116975244839711114044683286306713640875497811177683752570494786198586074125552839714863752872390404189865638977227308699884594169019898831674579506028875005884269381657445291015363645730656208576603231594033287303951707708727547458767387522060503424880757483957260211842852917664189276570820660297055919036780536547853130263928251605650731998513993459319948064791425959900232468610343261534413992835257497078117577779636309853172473601094559005754671687856755396081649041889957963400617536135440685843845112438608982356080648960951951246465436243518764905922403746834971046003188430155787836373802774957474991708547496147699323386963440200490066032457626493784093409976003264377975492102892314231160608078823000385233720071291017392955252048976996759835296479302326580174058283453423989271680891044632674060830617920019942093061685781661699975070576481759632550452998225092430366037856970104006120756854011594758955916452355122414739370119887785616651385994766162461825048436971326330425227871996008537152199742546966658325082368327563280042164744580108142610995392572403948908313472851281233765435526769739753726599639423894131692229267099674511262299413007644975844342376257115632449637204194896332715801110270278055047433069375216094659084824376380745487359690311133977204864783922699072331862961980615096275405095143987059802079521627899261290547989767191867499814275711289007972410397228335251796680098922024224001675575169475464313579393254274600320565331176497888817921768447675017468294212811577088191181678337191267970358624962933626859073519374118500949990570598741996745863436179436631076264561079212435799887488417748435503806951730627291781434113552126705159944711751175712175410115213184324472976832302964374415811243812481631643913323782353979623928646324805575022841290139504194732792240628114079462338774228328855889667261020729034108938675079388010958346205404439726485452315659513136254162650807080282046645507580167245395292364937554629666831655011349136988064160610937554345037803843327792976231405761120142275653243098988612372726204965416059543053563795862778259107013503525361340702041195034706843875790770721254518046262480630308283879251859945024447831813706891875076887767651655589794056061699020287128048335263250996468128593072392941676118721934782303255358114033870685629086157146309657345942551801728824373096137406252042871363398877899609677466338240274016971506218706557384918332101318852727344530172589022103104607360241164709892318970883789486712177583196361787425930219010049602531788359768329440235448483594659764241436298303438721815392875188842266894354173218024178613635232782103659043199350588620445877433211149497708471517378201337043941815088945921863175069787337036436343591082363811818993512962678746429612423427399152495340084330332560353822383946125479472394665046786414312514645390362659036166397335648580787369937842691324554659803457945900669075646383734155667756272934975179187550590621462934447955857222364233395690369436558192453507965194162056516374758741242730704777154894743318072707469002097953617210146100613964338924541786901718912909516832258092524449811603851643152601094672062365327495439468239997542267183928785510614790695256199771673231038517672300420771491267425091199689260399558110360449207906255074573074975429165227960204732733740144493227186772536135634104567129627725683913424253560599262823043432032399702135161515456447565558714177099474074174514426105004540179363891949208497978551942388127222267406019250250013963272467562506004085766172042551805381885262285469991564847073116052464739842691175577362237894166240785588801270635388615317563295199014910299305036366581166253142882469236905466265963428205540430151210772264488494959448487719193141460585874913812266254077627080510248367914983256818030646283760530967572403825813491381309690857980904629709553037183321677198706837153654307601435565422039030409198878247447048420194258723410331818367712495787146598192588346774086374509102024709677797000981489713252373939778464145134836067607186154985554590505146632268220018106286727848467051222731288538708527264893620552469749265963455519715325573944616986109973507087455630061882266200665371692548343918343472897065302861697944569924146967218554987779385406257051764950342988034187832538949201662727094291261635420482280275554512324974643405815139375483960393032856062767082336604672277397721121585413330050278503076866278569783136549919131270379011010721442827705191871245650332204874763320716776267220318804677411599299863465990236720422863356712254670393266544234731291288806339196339896634757585270636613403333598248131528723221067187128582374412669755058254440106278079547284533690420138894290782627802887189026486421524687868777050805976290906878552955637971831305143099504727938433945509694624310832978002197963382529962202342210474777801449993860024113218367201299901449435508225563410740669326367145662248573935675626021154891019843329458740366874481275181525855037450721903284570357872325117585272326786590636843701845470803521424394795596073626795268288880157541317924430745892119224252478758395997148624499402496479650892130716410047158028640576356467306928753391872774144082858727097931602019756588429694260071583969383328745146657339560475287626154081537294254176574149119908932339531841601594073747501257030784237624910671738240161678719277904066635057029748743740519014221127775519527466594869239595352018997091932070727646513655461771588552082332654804165486256897798397882144964688683728483940073269857661353221690474412100402302975368458168751926376715352735201795879783370314223006160560709238640898080522283942182822806114189531173304451738438780948260204558491115978365791836965148185879072173186945886535379238979706304609303571795575361112583984542087145416722873565624602403670919028945463959104812762921682225141335841990895793796274827377289714358975055998567896419854135686622136594687849766843942779050561953355729780885765373449832867095825559392193161353174164462934860827370651868419238595218925789900750148874089762647284446282202953869814055075534432238094923157748290510568992197727864038587325294931973542950981841018984990166887790075689874228398319715043715525919442691941410597223007250801743131021911698214892078660866870479576952964718942223283118400904378262908249149609425108889256446569459408729520992163484381490276459974947052092124580090360119662492397340069957802970393222918657182175579671055690327443591362440757575974089017291396198308008422462538636157928066950557532646963580030716217970027568634291408413757076238246820790741667205321382453458467427908308630188450049450463765571190727244008640281512792093950567009190354403796278901694360682271819089430792915462923007770984344478580549078620278281816146429444462082524300259763996212253844181013426303991546274241082784907089963129522679476003407204217920870124692131800985851117596845484550079223897331046640239349312800642427792209644574562044906171715553337202162729289687526670305391717572577673499802141903720516120727004418767311773154451863642302100653671173070432971803714690148984193165665218709217398184023810451124134861143197724402058771549731448612619597841943581046606234971268354579671254717504271928597696895292760199547364582187467986810110906703405682811768527155343567737560645228790395745957333977166023422871922892284019733401372061006296359242496021592846658453232859014281061817430834674859168419124066222658402975657984534461370017154595606037595116587644506589638425873005774526381492502941184162792468935405668853161623248963514523161169760285185589402523271651265209445304374368795356954216310737998011361519557601026684073360796179207821174079506145238942670567876021715145562465831547659799912313744456211818529971866657204185334318101400915200215296238904538056875809750133100146907046896620806591498336552160582080142840328672342981754570825656392103478871170285033078082969278666986380207553318061646568965960184819481423592864679819343156772448704606484445978043589052284139913332415847998355241761805184047309506976572450876060973495672906535112943108962859454299203353511191239156685248107334441683971089596901394481169524696317893158579984654491161986117352979763703731327537737691068254721739238681330584499911535145974183017927191347889212561317081134707639785913515989979960645935735949001167628827093438872609416056956043221203700373371918367576558698781012702846762110487508423684298266971244692674760243939919141903932260375353112976122232712340085175820690400840187499389277649539550974416541020304124239104378069954244580689181399308613255806035487140405114278297259273710574777292925923539420835508212857705287318064646276707943963606418270114155792637006605474336843365226643215212586924125990704431439542187436050320827024784200536073200302619467367208543457415188651361848530162856571070217346401472386570958283423784083033268098652876585107892931846144729114886103479612243226536106769124698398528907726039664746646755929977980738515245829884769320361535237577726531619856684335995277114317205203174027190802413684347654477496917042243090932201332369845912363981871075977009473853668969474325199128652360849064648606287621450734469974034325360657914548488477750740495826078454323053464199915530004337182430870670048326231204091044045279595612409779074478998098975394969738884427149259393312702172164275053249221237723577004423674866353859379851922574633744959214391734102914508407333907837750737267598275656843284955421438818393998872549964148402429951250146566014877847918519587549772635340990755540770611221663101105879256102575440100583744186463234064819344646400002361149884228654552494201946157890366588050803742363373242036817639785123488602285430454520996791886316636944853168001044010610027511230283706134142683956664925590969891112271529036410933590278093624684521144134251244734137929757908980267527566934849846438115418543804732911270220232347637166429980067679539031356884451293790196089676291903370227648213717014080356339670618447800520685187966712548128447818402953083683072485716169635811621987452677862634031526551346854427578906062122114844378082006674564592943823475620902393772343638511518100500537826540623739606341768905938967526933912934501158872292814550287394420519946712285899644041566609536211003914734925032840152262030811751719529477357160288066578140922801837524439296790669778913500265978858420903500293721464275093747011539573288141503916506176620941993883006357865808919900715184671078771223672567319420904783400623350082390551689455214717961116910823419590150453514307884400553163552449425676515052989366200138677467442295760314405148979713261192604250185945917262879527889962204251757875343942269678561599977658741960966685561732992573852739117961835610245333455381922426965329673310981173320763654787401162573986896810189064516485893908570570119539314790532749563376282524403630438811855968220361326084538338877758662184909358725804119063831025073545146688608539116367711411367536650545052843874602929652461446924471342944371885893053914299048034616773591475358734683413083741558163102776928706785352703551163161325897561322036140992837587238445118667604263915350146314579657872694314024158254462049560636384272489305877690775578360920200671302055908589111761028425256881979299925653008890565988025573938720634522517846357075717536324250272574702739083687098927856549219582381189349081411253374954104072865498305414394178091985639736909756503304519081240326887259306897077213183824442985034722149085868678026698301651815083823036639068891970535440862136714122535900784318311854249811627771954887440674289492321491417157649660714627533375795761924024017796946254448716377387652654934568163046787474637030518210630820963382961746042926857512074190367880338012367355470654777020189275061031537214266239711746778875866088300937117917796827547375543609923257694071650047892177284929244173126099902294630959456705287243152629489332663706389627071674986789553848054346959647271041989228586396619617592750611776989066274442059516107106486553312484181348489742597251118432701921339008153684301209447846644174085598951232745761501024074223405585370369021013936968954341039921476359667871611073586075123505406796568869915225824291384553717567849731374513358847217976368987004703554966998394465092823305208970425665403159759398457376893079214479859147039904028580125401378038310634274635178796047998795383035102349779883150317794416014990657207186613577247407765570361583368282349853678689625471647322339079214017673001789035439780973954805127953831579147524490521096209554303697966449418703582087196840897961495682470168601378682993330172374349467511643447254940695430260171927145825158476244184191446310157246584134211825494494498781277696864754280345111587096627432888021536475610513354982947333609253686847417250529636693042650007926409401568310378868735997650987644962321053729915528466697476945151986364983866975841244649339515707749388897354530005084334455557165009672582921995548390798872548792083352823516164475007987564356913464317360602270301691956766051240942291768001956262865263571180683395450680162514812530878887775662084253723140840574380103560860616078423920873923332037921295483433071487764836305560052947387179474962524176710730094966344410739074418211025212899439985330597857930248624382372728806611632331402284687679973465456038933676804668701270481962234974510073436828641453965096055460499565682611000795356702299859296145087417745000417261377119458819018738921208157320575213156300194261110862187281127926803054688285444535088829517431879687232569011559570851626147348056578502410138677803752548519458207646707417006279914092799733720570513564263475199911831594454140604870393290390502310412450467029738327217432323200336654402552016497607225660049326555842496132543630299941191620047688115126907977813797722065481013707540370928645335775084863027455008870972323216909689066064604691772537733812506999173850331129214961104970957763196584168018600853424812214207314389533547670216079587862246971638350606544797468418782597572096677959332125837339034155193139421050798635122586292388533721433003998650859375651744529668844263182831526362208352262505250684145146577172880608127610911226151564234343667025887918994674523239651136738338064522519732458594382523878097797643376403885596719244887875501141150234448265623738084288343996727068383668305273613195142032402902491820736094974410621309306658558381224695297826639505048281456465560951847894206275130720338615260483297174035612107586364499708477193639387331514703072424356645096494633485700533122430811990768421272240621668173076374706899542623494535026304616215642857979820534337235861505660606914878310782347893499659412638062413122449844532993023056989978134335690230294820154836729812147350167221081642982622008798829085065648815621730789796460966403956891648561463256143346966069007739900825226737291003322456245699485200384087663027972948620358373721906138371904785304214934937667863812083304676048092704986419043761439604001384556754451744713017845255009977738033062464872828825145904952021783135423828834248914247397851334736731786613265698641446554461816349030726649933560017392717650222550352626982131720251208740909956161467971784721162090541282683246664278609640916235915298397629913733508610881635204639779638888447058562223041382879704192073895817624310404244110912072061272817635822184558867017660498289008342982032560038790581791826238944406242630449761615105689160095129855044896276347489602680177260163172098176124756354113751119294310992504155519241979575447516466034869247603374144432688958022818500266915698940326476341279813348343877008095127464012317429544838787198753598889892055505199404477481468107076433528328499106464313026879246826652343597609759951420928127124492057101852374187653133091120851196055848428628974251496383744596731414285192533636221481517113714887230489855791914698783423521927938529143483680624545578169002236116693708542844652705323112806843918039881612296330472936041442421294203804823321112636238127014429252041873671887041069262413067153871468293203274439355321682151446360329830545477086530504481592927710826596191740826868757325469816644458479323070212774329786397897991446934018998641625388248624559177361000873249375899176265932185414793896509845674917299134140007042460098258663744734562929733964026721025989158840610537648880460943844036244673467580909781698363981278239882548885741799850033472629008401617640993247278565146393362509146823483743681353752224202277712843145824922794504371276113519147752852244193968645236885023074343163890048001638327747044478893447826075012925141493556617376840814744755174138206676908965932158297668502816826024706843628321589352709749353840987362786869550309712620012263820607504885547140232669644877916667521594867188960909429081110229946717680732732363607763793045856452124321534891331656266075025969757828916408535909444403195443167361474231599353092681034471433152038355230094912776041660791628467994832604350811301938181388296957390181018107744752152277042996466238915421566847613268208445296937759302556622009471746721603593254616841629369471954115785242334896752409197442085467689881542857538724276017462268677199619418563832745750707357911748193838053920096376688811427783977203138021395630238543180397801252139225083827064237125062543153196305135207793145221040322083180270892264660082799195947531942679019157942517912656565801294322095892017505339882888383892169302119376674748138385294144154582732323503006525324584835324756276031924891520304370357855107507001800307369438098500415853126570094557332547786851979014155451988140974371052311677260030685977218949235334116567686323194348488479102054609220063997656758825613133212294611231837081985399843465634285759285742153852524501035715109741471872893050369433453256176596264405059479514966821041243521110602308704078616322140727188886084012924488252505722927694373278382719467097749907277808660068496083880942381962607709542762653052168445487233237540688131577920453799987061059227788755672158513727141253428150307631593132409554817096398830418788124794425359287596598147229449083969629277934754587097127528533006436724545969348237363398822951451606030740438204754473823368588436582555707174996151540217069817840167744454809352769706432165402200397145478472648751511585992713048573945171418840947467365538116605933172602922946720701165314010005440193418881789459289570169477152516092035458550127509721516925617987169951537773681543423433791415585875276709146833057833404162753228539489766696674118833011905949278528446201567976849590449977363769800177296082806267539249746873141049565120218465369566228342137227590136061075611376123946602776242734225045024161585039152577871968608946090845403038689946016442520095209582610347329464897543750418209216914409319874366982957265665485251099482941971625295181460248669395536403437349535274708071222561364508750973181679297087030415559172804455347059889705284229612832737028328844134533119610491526867118023188890286312353635712629174960191881725019226624500534259633780290797146631306238948179966866499465954149031369379323486379981072577976687216952294594314183243727153257485849228672674302859165765816171867052829280930643018782777761136289961200835735425190681004965442656607332717558156997500043671729512483414885418890716050294885173856435664219743309087380164919534195594816163406408345919221692857042259066254712972802654131300225761450337138891813930579705044163777807880216287008960951460175458651015747072140771013081392336094802060989860350414720841772491039322797932108928256839409260015276311531652243239346408241023503770708987040716417455304814812092810481169225583706789138239860948481531009215745882836084785344648440577121733826990097774085357950214716675288680734386566655413721447521312439125418709037040359297700191222107679825161954014873208254850435748412321766715920194561671449276740232159491847374965161550080728445637132352334406086105863133290415468639119860115249163848701811969605216377126083677925804484275477235879334811487581049590498293278160185185765638647839952767613335725130146236174200867360889022925674192544932478693323747005089881837651344617145308190905532049662184640746402934826326002095189895625251282032046847863900551618200769875245976878587532004585411150457057673484621902864099491325210346274151766288126648971817548691854545231515064826706405855236060392987308281283257755862194548049843029317147093156354160213640926434521950731184380220005785592306578211524132468859562821114757641076417960824667941932872940780520580199614753476300411202194467527300246528772744017988584435848656929397510238623682459922974381304900403015485513258335940434453340007255584283198931408818060017644716999560717223267467581260159689076338365229492292855879853865849125262137748286789503706754370443247283513788744860997055701749390293768461962240115841707200848600094662818742942504452825157645193506200634544468905352809830204072593645673602967065616680677212371332457207626083448825031589280472954401648051391031555995494893044243934035576591165875748004911618888131523324591813760814169039038878425400276253839189016213363787147193331453745405148896120813897720434372970394340612742154274929025763551137794813644197624557098308561519007520281907738240556213137250023403710242516255690744897574832517182047860753729688580189836279565939674407345991092432510016931070139392074329352189212352101193471697931906256361354956408076283704847321117010880104869450964699013741900010958962162222078015526180009303252266749659637692199862943853708689642846726016088143330847878903552099112479499036756371687776284060448447003913948128454104367281511420060536350745871190028176655546831063030655232700705010771525732860931851680635622867962494136719225292411278558064615763481032026737294248996274753675418619262634004213882999179759672603728704340222095875152363780253220586668202021488866512330889386261274722983205648089946509569006423616862629079991089695743296449621007280688654442276908290184237338633391378582884049883025166653811038758092279722604680400806534800509989273307976502664271314013463933273681553240195486842913592583730929549693690639325275528414356060326798196053232133451629368818122382169620954321808455144930315019824571190319798024050504117691721737606204587880292367235094962639439692159176102603619342829506920142450133845645018234627515545832624602137378700394788486785080347497754094663945065453939645240818714346028721428946971076714567709651033227482520602577123374692351719290466961991933373040259552911012891927565424327585629260357498268972724585633757489303201264709249662641844659612358881382651180932979731063977036705607822059643759392775604284947889390839077488568354412368814277225717730208912336157443579709027585387654796247377243383155230975563407429590161664077226941857216232291862599789531620831110034400356747498933876824019431150855142241241477619375226616807725220530396132863344462142357353556791817784975648605960263306040034012754176679418144795354586322171783157821630128044687950944892361805439733634630538852830176906963018166556054163066857048577081740159427873665074930974205186118940767168001490275938106542604952261615870195129270572547931521186001884550376671941146972396127004971891454671559291817320869777233276942944955052187425137885810224195185334755329357611657920580367043775633380937244463920024995304505839429541723039422986101599121562162179779699195972902316062671606416409432025624156270037005750070681315743024683813290061794643687877414668927712314465489079000875936777783934707552271070950521990527817619855613740529547280595300480284393856202153567772769935493225797091862322999956578995621823558943045391086907362920705774689218211608811861600205044986872991525891260166801322251145386035773129947880208372757958387914535390223707983625991767104111998480488993896019885621967789688817533903587278423622757004739367620452004757835989174195898459245521695834560522919355724463707317473339874361394571421550176915079612038257165775083888620510514876145018230994111083385391979030633578830040659626454859885523022580089078773463117561423307598179488994079718840442958396381657655138193044216002975529057411452500378580019341045109632307828371421394488566305321133115762093354919162770027392099314657779858745459463029017040226666342492632181288060919376041401673700184860367438638632286410901431136583147970917515706398356374156682101751239262910528076811482479559941002147901853883345563779631330614579460878568038641788680656285699591060024658731744542230689091326182213982592038951946394481344435668363950069232387430042184052719791236150770172880459514879012387668538554878543485615642652021860757291782131495964005272998406789570110997608476962846749385939047329454791719640831659578173150312623914369508352116243206933819654467968331362378090473493230361165627126744155804279501307904490103772890177605744778134673518033035417031458926766144605533366517086812906205255955183898555156891573517854317463215165445131989886731130461535125816004379014590273857030335812398805266041730188592491357698299998712444432924166534766544666101660888758338851203684159051961642211700633127402349217703683012559202801791833080610954747837230863874684133084465261845265851837635043349953538549939852367788570810207190126428547217020496495959838920716201183769399111722486563750738374116679286702945252008263655767957806888730073497239077379532540101772546494567816871957786430572067933204547187027713344816644795077521873884296557792000118647303212637115211374821440029085129665705215213810000590149146724007307463101363981576992707977373710818342991013768038405490712011185753806363471622882566327064785766391198420900709829984392960780791024467901622943904459972333918554374175795978223131072484983880234808305734877210448351665558297075788555210387310248993332284041603269790694915955763511819230327034567637785395985960615163309601043908718720774266785924444471140423241418059753494369382327760188121313031277887188621402686189633286620345994775667933773170938720885799268034301556728813834246784751538509337592712523846511377097303824467220363182869165779994094478498765805914363482494166580272428796075394922620943705139133816826633708530480110408269399521813608003041703449878001985807270359357883054688783237835120737178273511641250895820243616117582601940012234038239173857833792208516514852401581889618073763029752041672801955436391814866636494893622489264608179843839818674868440606703066554905289908405173329394197765925178627707686576679789531976479961265516751911217483851455245271943310665061617253009844242811281189207690660061247924480548867525252899263035014297358054179552325569019218812737954501557416021501994213926585346352675347829042061900339184784908534671046571034491014502346597494832945126527492356217731297457801421979328793150311415141341613104664759134081052878138939233803816717461595109414802539073281143776027496676049407311793695075884835275212738660739138894215011782649583258072223171485711365955795934402428747398131411633826412598567295352960015754745683088016753212536333009778951943469682982279744899417829573962064114239181486862124361142388498089689137407349662028348864827904380209728259429550290940924603798620637026437801562671118249296761100912181837870019697560101958749626489642223366036521692135579411588913793941693290980433104870601765108017563428119230761294523098383504991843253064816836348465150811329001850825848022789971547510002775278444924713463514392912135577652957811177038078808613998597356241835336191413275631463511482556485929710999966876921724484752280514230444703224422244711513013507751352756421288815919375046856135451485742212558193620662797968599793145016783423260174240155484723461269006132240248768739936842208531831648946670420909923240040185421153645185369922610496238927680590212162107769755469927470856840622234737995017413726967260931961102830405260273665968631331953529391655881963207839710673840030255829713002288059876923379077980099016742927738572274078291204881039669266046666032654354652955827154768987735541967022453809940695998250704419959631957968581547108069432013731321507811213483131830863068786484738500811517073747363113756434317654302300481561608403275410902733526429887074604214179624616966411176641525498474715972152537938425953775717781828367432881056879697006057410130021943436649054721301380638842952321070534701494077204057975861652560625298252709993882071811789717830678815209492693963160056578346410671817908061501473426916072609550171561594354770106997649002106956139401106558896007866722383449912425461647675941568233326936568932576223463362509538740587205561545431987803053727497777369105357793947552078138162738731303125184273874785031889559502652436309948764374723993358012549795505362715640026137423604826804733462253485148892937616625172806196326106530049160197765802487088733065650397001372423449742484812420548550090180360665553207589700286883534521510502623081654602855049994264341209610247291665964238080889786095999389136021260473456230343958500915687010760774171186138376237060049292057516046749972893888935541640502859537958826279989873714917236464957778903025149100971997560269439159535648670466879936768367911029118123997755237956676973602393719098858148381047067918883201288709942892213807798605671132226614660483017111889812401034688123993890284125370052411325721230789393182914859200656045185657395755722760160152925838172944689277786623097384643244372808304701943918241411803888494433571032000730111456382549264719716526719211240554494070777859057890617084978369876782189319253989300752999996861219467656940881551094629368551314783187995653148640929604656955860556359695951366302092497979453610855851518868441653414985023649780569265321818554731342082622751980927186135484629290925286638043187962959731629381869709654215899177391241847772769954875259484135274542235378946842030036427117047897152573855764985012064864574964880906770688792436199961583036899199896778372116690691330005558737209547217359582843588724790239244223322607384410287792966321753390832543683405075683813068107776120590004861814460613081085562720741241973963556228092523190094986877585480250013478593649718552206394135332318051886309811925719443556647200517168623041279418149426999780202002424997650069741084126290688485201135955982520414190165871298904971508161116584865335128535612054253112110036971113862582191243381425303316135231756649604379887153208352256341379956045527863849832931740629613248004677906000039406903939066800607118311952106933815411162290042866194231009925387699345975437284990796534011415716402738379004926422622579906836091637001901742471991877292637904281167170801531847611283671309090570541233219672458925498069305387250201457586052619388566251004573386088641481791121367844964883923180125575371813333738604969080718728661958409982408758075148092911020623113431959930002960280506311791500569704196652847443788513786159126138501899532817219424954642454190110021628185000968562613746415640225233781641147191579670693884157147947434696548639052271842330903701415085587676564643337352450156871939094305005595804380093116111869522062439062936857706721316119946285845136873256197698825351346520417265580801651509767174887227483177099130304600943291078180044861420655080455863621680688809492154465046382679289000569435110152997565841491297405590349591596349842550190752481846898122332028668259530063635048620555849274897405695286185928508971844319905838445956894338092750564380116648788016433169384880746396781559253586487325373246976656167300340096739149503148723046734733271164711561948394099309323741465809215091673318414183446654816121954829833174801765354718670156027694835656085910497429827781858489304185369419943165055597909468190794326673127074269202301033279275806252456174053052401964295890859972964147719313103092082461058565506493390152488692708472656442245334300964153356389168312706682332016453272894743143275617265054685799894444684595369141568144792560335876384858751110252262976279900904729773007320394178688493589565158974745135366305651095937916802327384105566183763004729169203068383417206922771078312086668603138763993975197893355037546874842085085000276720283307319062666942914613545726800976666630589277888955402216059877617023508828409479829922266021559146082861615998705572459910806576498744069053422682009377157961364011716294256450998754292640866757110232927372854075613304167152069577232614680484705200218711764683585273597681537625452357822386154812954181981368440898309232243173763362084268019482122610044815749579167321247444279728338574324261767547677986021843983842399781141901163737022902737039541798662054406821663284535849198605688670710141020938003975116253136588476035575835805486516326943076210116356589468611022510563059417912451423982763572295907500538671620991014838032431661191274571614894396677063107167157296005222708941741522158900391003337928435206966383283083232623795011527466902356525257509924858192493047021984659666928585690904322911398715276788504836829487524140791432888634722832110341790065880127948629733972221079105013779107682591494955741215436867236607723604750891121990197572430185052148426053443931820203618594588171778382224846080479082169139118933500423080597773636871158833659422829801951062850003485606793368916077196136377090078338774935446491565780933024785757737783350486279807703453791753365528115639652841696292118798858912914906009134433950249835267600532816398168928742443392263094646569712979881142056048968198505169492406296673926297932996432809352591645263037858692188815474312477126781933498260308108681785789543355502872495117902844180845884844317072374181082672116669890065103898970552537419200447384149967451974858610614357577996543612897535759332802048341379197122481577455910809375530614318595479773193652065416922594340118237127585323157433971040224094995325202816788876255818382978881248123795280873487200373653246404769873198738459460770592832046295227439953959549914124083080634663650634153381267774795639529438684225780766774590940241253938279717049413476014568291518020658158734212614618166528369970954687842381899641395997140085770023689898046444457912116401111591101727376772186486405686366416813240516224675457640436819610090712522227432072318126829928203099378309093766188249501135102789588872596801796720986120983426914357033445380980380788872334645862987404370392523057788916682700733207489258360490261349595184009066069067010413363365611784726981093932261593942275143393112036056263704713141094681043093510055024201021720020258514919658904927618683039427127119279925072363817440723193385428646942155349000705127090497309588193289905845563288480714719897133558567076861397329267881233592050985019937702426483951395729987788094873425017288100320684005619978613428484685712370309295124388639590481939328867249274890925570924174967535048217706925909627496879208117013925956431630931982167326885726309483700074013799679823643747707691820724415784994401006992117177063842366843072409705586489425636055095825760486812824591788371346855531326476740361449967390253391954587412802970412006275507829313385024910804107486384691547519667019009660498236857191692683839098083181410376145142859146462915509729008257331632003038261533772559789661911682623411620101851414848690883922057653027396319361033897234314457742409364689862158845998697299274079762440882637732698358867739063309202384214668885728515380095825726993361217952962148429767577407437483459439562964604905093968981851915947086799229474990559385174715632419216107191177507339831129940552175114741359577978265527376409948222849325341287383345761525908501531568558250070079832860365068957837593484643230679774284498826267898959568657427331027645962498049953471468687025855345051314554869128440083878798513814021340109883591203951545660445744518240741656153424110380478031488593433810106708260517463638449827994127617576095207028504055032655546352600337852197980438715218139621418258532920681185377845964342061592692633468987025164201605807698169739361966358141305083230063413575229706117574695405448369800283054159179905454178482626968317141575198968479660865181851071613951408781413164576758253889106820227338347604652917048267032033787296843139094236726284774906488092659670530285537216223352817785398324290336366203717265556640590988198111983115050511100435659625826378721780974924337294612937232342684468703759181645040941366650016540683022795843814054361723704791492701330197137872873875201261960083046644992353076061108656647140690087863158101880152989099844268442183992979762582689715257194762035551691857620874916521658904728468377042319530185256482007427911392411080114712973513470235399332969400436061872028212806761697571585777972758170164682110986811517587996531725182553703272582164907447270217900491021637591085893338467271875370292225462118235928387411812057129912493309525081014615627706246173040665636145126642202379371704697147116590031740173762766342706398925105739849636025790322410194484411388274830661728270246028768448173561033510856315216119070603029494819581085912329314507386737663206820942932065559433212254450792746232717150324422669168429332609516824542730939123882519044796641451384290161040835823907374606381274081261210110225513289601130454659335289165122029400152611221460477376662269112628403624859906897992747619354827156647753856290544879102791152337738852939523577499628312530586348927064561521882231963664321203503169824777228344906156148493841383358363801754262258613542100136054031674510015855917632597335662172434585157519027769450178822136081400549340107755016482437804849515240764593459926474140702346779204685992683408977162493098954358151783776250552337431333008664571413328344335321425535516931844432044052469925448256342884549674448664252568573294365415770329998041982703969298194037222589381607937550953303279538661205519325427538704532832776861621943699716995708727530011498816072201396679891541220322513658748313003708011743156906625612605371701709787283604892506300863717832175193810006865571707756661527190286830351575648551350205955947118900453924322514999795416774238886467721181267295413411228755022832596193594541518308606841744164424691710112162383588034353686725755998580494503299309533540874276369790659641321854030306215724368411543421364608788217508479886902136502437647546807546112732693760849917064045219889596225504299960035807997649656078355766865306919691457374834904103208636741064999190087924588438164589648038718473180901482364897522376207417676195723273291113552573491276048345676743031246700323308955071417916618241672082454326536043181177954300338006566246593331038567113992044534298706437777563702286515600140715796521902546346466471713943813089856987860910018684705164110138729915062128687490917776408321713249604829901144074026159469651243379648677412944143478706265972367813216567622884913098922893573531778415216039300286165566074539630909644307401097988485435496296026999616278243960558420792983879195218361447705029554579542817623457824853244575866309522857930296008778025742204950657125503571763511707813579535042330590574325974244678844348222432974787807239566667608218697275488622622178438927700094622259871467652761555680099190227913771375903926971910103955358624755670177031991614730188143860312373226504209828127225827086316623125169194389852075216477721389196114239989661445663658976534480874510420981961081333203813410760999403764487911591457155555927662748925166113591399634936570846092388793481938647617057728456201441456367307087294834233746309406984619071798993497007040256011313308965777245463021532977088558883737684613594982988507125953049896596657289359942505732674646401977000135604027329293853247349864072486096816200857481888522264209130593002128814970036462062393571174791019872680278264193247249256044117189212078832747432767581690975846037948292867167172260384787205280049305695399912612666720428550207492128941754122413106171193424428503740932086229294305751951501558476855210672990170718338986289294646816783000186345986426553251597089535905970302127612207166050868342520857574146543812392691745822953830714460754067841561274039982803489226368089445318929848608145852019541649638423839841315811499979577751973740203039248141085645443559976269324736426970019972798978719951217041860332563920029767725072248722108846799684580458743347537078383369905790296482095333306541493954095649016469048994199518565829239211335218020907032160846516033905988241120401946539599020791203323732063538046839548673182165869036103406910266878437668377472676242157910411251074801394417375943244153420709403752982961299795711705283298146687840318562357743014452298360953934960976234646960899453082524039468942102757385475349089865469233700634016153079677499152940668580772582265433326446155439796058937618522716934476159309846864457155358763125931608259673937293860983161728202191593525342329211330816070969572055562149774657556304166801356235668863787214927129076585172670994166104943837722878671015888355386223137986631620462891915578816005377341786341302552756819734371897487121023903646944679872212349459763387979439225202695313246006881644289333051816601885263083874948745340574315784568225102565346999542806053520521320032133734918853730516305440586107856541391690456296808208088720259122657278067385520939390616094265040408078246418142285102582466395389182418191707909579910181607101146722765052827622995959626675060460075680680606310661138618984192854833493055697422725547468803129148824156722063941221090506970183738332286847288815984817826295931451792384673457269309165356524652110688598432070984478858697231447344356657644913839019113872689039373080456924790106157701194331498787520742686834219971093213546624568243022390185778180485458837768660911696865415288567790147283815797209919761817779047956045369776263672645322864566810661843956017701923373878695811135861709810485035605811283187530909703546426540897379295968170576887406408399321152107639555446719988345679201953359232397601948667877016807613795599482556838927369439803224906859624087875981158598374657309159557337783496910103770340053977027997828176834777612194928861102256396139915795098312156058302767791436267466611407869511902577733796060736962621370649765083211497181776460332208799943288455341510266068823137999761867077370454017413226029694433131959610311077765976270276444041499691917616443275538871090595548328501465370809708091915704159549938353381360754085675439105201876298452268837345664914463825173739640735899398302960886850106712904464064684505043164834569134205965706344541686109216100969576651978191892698688606985421983235979465507547497380331755813382503847730632608220830037917379697493748119044900065769745010504514345315357232116492100770095233136491336070421328926393777192362751812626085003418726834057886642538708082133017577286428182268751260740778321350156677855913010933331240478181693328867431557891901812746604130368117221045914420440244466899078259614725574403423586874907944406660404412034860052279947908445051038653467833679143260184726494679612726280154308211196534645042679792094980354307110958204615489731330718663981767621644818744715988452133691667029692005426478398687427450595731084807792203605164118818170527943250417572675788292419475685131057415310955325691804670131737904710740465352229308896047957413630374370708662587781544333122934930483879405917415686733340417050620102946067336450905369615903152210313545098955010306456369001680210018292712147245942497513467226762366855257349089397957036478820188604374162371730218566031875585282043206287542085816845142921661367324891304835483555376231806320098776748601804840173408215944671094509757925480634255481952700089337689968584527077561197566435957781429437460665072210799092917936143990354212926324918732636838630941096871187143417963481472382180482137247266774266985025486416725380050881465551285746851074280555162319361926145541783565495190643536287806692258463345235740608934820095987476320992146724669942647709154557980807403747631232446885057482281018238741178453518352349912226451116140823879759221194266762809283204260887208557438249511632135225596225873173566037797709394852440451064044624386291508175947208361080636297091711930005323341543721242920172999521796177594418494224230534232759206253905759207075616048698028096719614312763706554498245442659140047516109365048154138604666477211447053070318681336613735859150452578871430915618384203598227198724177071494486548052738098586458372357444904410709575516084967359764732426003215530427353837162698131610402232445544006600973891251963402213484813903326500176592039233312519425587629748765310740077836059564270436883931972404525120827296455099046598124964752353730456346024649042920890534018930588155906138770616100402788614207937562865292874034173454729662039288598003657865326928963817919383130822841597156024034292151561502516121442005583362053087538903565982733641032672206920133800546332121495375240447573803466638190681783599091657748579242560803969330030530095143129774717285556978770515892990506070526165871681695665578654100006569668558558160106339272922763844874748558798175231567112300496541540952101396525512035862740115992119633531268709105123397823317653728742905851050788299019047447419219063623013939902210436290473341093178238041487373444181989597529463804676411154467200020707091010976423471770605633871387327501412544613505443780369884188512062041419963465341093098954794794109513140167018302688364412809473556198291706064161018091672262060930777115385321922348827391234942689587975132129957897557796382199484503282824716550679328021963573836755524239092934064348605272714516431345475332921538674922679405806392205126449457604948023393833906506676356692629922343896805485447952487655489554531205927431069272345401825967304708047453909934359454867483210594063189765276229418857454280913418442316279175081562041159255979282145434203165078764627440970445477026578435449975495117886115663754468215086576604130218907870157772622648365949555366055837370451427897708172646564881761265849625956351273727257532632096972140413934515549039595945395690785841045578234694729447295036603369623239340486874751186265183378925237220156690549293609674791266947499433234913438553782635629883515845879451564856969282267167867162977641804877200138370100557653174483342484873710640950384305992610592284173003358171055271179637247168123928477473747621481889221245745988254872547118913560435503925604453040305803672260308542431633364123885045079367588187805059300991218549252108488923499299337785624171443442254240771129582958544944921391354084855489686442334036526978325287573537946477234015576858274487029029991549000647510090574803441968907983072635375307854335478072393548734857622408056465132884789984409099774900603100635928588686092122046374304702792362652698421584136025083904919238593263547108162162647272039101726110008833573095359495616017858111931736817082731087401073802630056833993414505142677264221042528385651185956179904420854840130743259938757989313914302567970893139173099636300229012485793968624498305505959678683756306349850136859378792945213402105927384521552040174576890847198186002621662680561951708915616081097458114446943328360920411181830596074129150791736641882528482783768951331162301224441442716989185553475797036138739893018765435532408951661904929947084144747021600155299391145273642373852129711053913143573282689944966348389625760473008057828550829048566454568216592681006013171104826627586662281706052273149945915876889851424284629051256055934794646969419731597326614394695690565876161319598202657019818254083624465493061403441655955340775131817468021939389621865067670988897754165666740451890076914239502154829103918477440141977259138655052032136428537731292273133124535384016326378299326321628372265775929079170550998343740296592832715564432373625499147930056411427334572189673058650290883035718782494776462598416512621930757152639774744202265566298883824121005857378756960678114510922842260584023580109854363218655355909708303254217114514420683450697961361585648773543778554740416453319509722581938965106601561344046107056447585715927494817936625448721693231622483565267373558955093081306700503130376913220260962150607124940185370605723444084114154321461283467015464030982444912465013059951353738457055394972504738791279814536521218661350997655263047423154246968493582580590526157190354816582653696004221943067534444775112117265471091456283116671728444825263408849736394431908553673460016412279491636066587575682556309294876549156632148866500970112019124768201915098706045343742617407414778930472198850372624010476486454356635965884607561423810901607044735588820894933155968008898256213353245362531847519245439671933379249664220107938438356625437346364330174418238224336544719170707623972656866912309944361160450716106214087213292434704321036640302888291159680967425617581017688526761650122503144768048787083121842140662281084825669004310478304270319002994556067184731751763173407200927660352998459894874448547590602738988461145743665803353354322659209593039800020375875758749172834566936534307047541522251348018201107454455272432268866005246148632655602595159712909854087332304144480480984247218657381979455020233387541338431840676012952058739826550098075358412711218612464171022902321250231963666336362980558319952626993722280958924893100216032575198012901038667699976347136575453240164586839407450092770356395338457532578409206096584090183102904608437977896715310635471126776838970879232776780300346975197464593644623923300091438378149117573407016928842797533443540338921289271902358574446130704778305839317996263234035391081806704272379484374777101187941614817399630750857620210559004644042408538789675486471392053621963170839447048466438731908855720220366221109684879185926622076344703025902144708826659218464713077341037930124778013899821152986957068817008343626023378368737056627737371150005010388820153086662790007588686546198190558247814087369018533625771023208914762613336987479936024166023971710141894244888119758154162892229136178215906573726693639851415784628700103134396510593636787411234688849900543498497002609872811579905999134673127988870811429832610294811176293817030827304048679799232362382136844793558870179980443325684215543679444740985449134581461855696020133977181493977165511690966918837139139394304461455420353468911823942480376860987407841873177728662175790999907855777007378781263541259374522393466048220023440454923384799532400035597068683022052121619653389027938695826374073293952037026185472340219795924809998169202218611875940624457297917992704110377703359953435142665852538714334431214932399347459639372118117813606573630533281244390983628447022156991380470975366159973956987038260184500379333352339625702116071313665744127896196782337663431872831338420015167651403020092627267690549921826467933259887736686997591144847175110625768608741049755417674485971122839654635357170047887010897756268117591787088390310872493715151794814282100977830641903915050526692883485146143332355137694650421277696212142419182165819865997144081827069434773662942390437983558343488151071132552946664636742229313781759927584408482416926668750416649152449940235954980055492739111836865422900997797601076421470055133114133237175375755694504537885670332221197667140397597318116466105313267323464525576705515530152390649473921544209583390658425948498454402844379370668271767337169751515761737237598757934213319261143185142254046762055406368894349684586333845347862539011970832846475614410328564945834608716040726142678663894620188985211585722852365053944909200994130099668401278611904182790657361409748112011969677795013662529592823383524665356565516292765756408654704669827661747864603827863873147841849700188280380452930639911929161534116815042123518963521896535766966594450863018421647955114392029048746749855354090111772690998167250896358364557357409561673368807624096731714482041437477216766463810185808698250803446504569448063290241630610722290911677786295749327457436608169359971848452859045633338620515238946161341893794777046154445859202580372972517253285969593153747449279106175499934070675505760114095513298614584864988414144295249112679783503665837126847993265568954480418520713581916423627398200495750648676021326820115075391071605384891397046980166611398729599981420492972157255275509514442056607466191914437394407546859938120742245170986301424807724052665873500128694865829583158407549283569255921677911300960551859920176658948900935707028839631226895283882494103766830171113259263925028413564015115996981770590036056881062929489988282464397503484858054865192032755420926331885171723098478445964911476116796036578022069017337927574153039583019456888995886887623920021536938429558619850118891395889995338743838971652188972049962394134835935055035141037052944811692933742577516185363844015540144912309145021070664319581249013492366685834635826305686884302941384136221130967109807060317658767571233146100674786581154273240600337607621538224847678871989243262583653260598523807355662995580479518757304338674544130071751467788914261239018639459366172946270478951595649318087489536101499835261975306838524221151003591437765506212628942892095036222155774048498662394519571586195330848387309259129497243625902060394378491325187597216698164562355420584580487039405373503031485854068010967818835676065015450228359953775720999736029915932579184992254651521471308867359778696325025493109623197477289124061062891898585378421545272696657185912509174140747077097536539300201039223847529923503109729898629068989519019805751968572145829964668868638952209208487152232834334499239520284751013749327936822830413825190487360099976775248958660578725112487162512790215609093454124118623241590076542818098499072288892654036219510313930991668277962235321423182124027817729632071420966806331078573583019374756400368922909803170643903364734539742567008080104540700399820493920929132455775886338306377152702521729998294155154749605882267918798794871688880315427732424227947155128789232870642612542182011768731376620084076633254035418671600177203083210060145072573499490470827462879210996675556399251797164996435800830545717879576339285465639975013274193226316516247899519944945752144472376765740530773156862103146036813435545894294283622436804008905207598504540533445505640666697342166598953848220825461961400016478185479188445533173896541808286271493240101433714685934491365065683817827819965375251689022535758672050395458105028511130060047205999382271762492789740759310874362236344913340497975764412918614625665880562360080092449408798511289661068607653378794256990149171893405585339758631510059044767768756365939106816126983838392992590967251052130825302535112532161333959138084064844912858679537185026968491581079629958528913604574882531085376111475879334365773457073282759828310736194830870268638817978643391507581604480734399754061847892149108309451461646003900877157220738513858952122029659587413050864065229214625097112707014649429405877765177479965358855545450231548905389873628345550076770604419574062421665386433295053881984201908142104101312281563754188146159952744913897178788007215750072215282651050372907060606819413164025230103431511521199190915766290535876280025101859669036238388847930473259570935117914072135939466501257829322158835396747756135395804291728447774449362942203239003919308586986634352604345813409758914697086285300577694125798061066532723904850517778884492360124690117217582148962565370093376836813941833847284380291056490766998640250252988891051579835032402728927303231952749762342060020761768234816498876280966516433994711177637632338904416931515472215688549771771851075783651225639014145849139290178873431242077113307238899627378155434014213421286593661007583657637948771355767526497985429786152216428253458307075309398575931887496076995874102755747751777706118489928346066906026940080774818886575591609619805914471504367944810020828732222292345446608787788213718092220478172195778875078136020647878028573262778797494274096660389947522993092757089577652412236761316843294217740855518820007824579742967311587337917041062732839689092177343274436199693025506516535998408016901309282368517074298026617569930603775042019475667773926304986963898886975666666161120831336425763865773237642949230244794122344811467385895263301760986425463209228380548628423682819146867924394382484749320932067348874931247328548968042799182370748147819310467710559197496787609259956638861497717829457272942403973339709195533906665889082698578344441705517592614378429875034205283612184579701975044038396603131206123992513595516184039258340471024913048048955392010586418926759113865226426882010762298029343019056024245860258845576197268489510506434162494796392769710738529176067833451280902244039357870051524298552532233010981822768550471381158999319877399434692150294493846561181102452328587513740700612351119862239945185968739177106443531532622676528689838560796759353495800110149289053125008870236584108746891625488982169768259255173397242989861675138551284529368540938565108946397395825958104959763290597533746182838748483740655563300606918569139583432168856547515724916955358290216843830390309908693545447870994418099702835381925651628461858096178776929849522869450017652982061964780828261733773046248366987918827269137228381015644271432500908270936349890938486053781948904397436736396290275116558940334633753768248054663915966299651039828304787949342501195376201605911515746147068458765169621965265528170762070283971425847520144880105748922061643703874378955116118279694747645625416684210871874427639875559189970745036062297154153484019833604265740258824688792255705321748808262974910774421729807325073784848975237995286259723612663229932108139433066031441806317735453199229290991804522013488173699789806715500836251807244796509603585177326604890376680108136040709538064141727226785303545334621573916032681298923161369348253559178042504495947242992184964131116186340999255215605526246556806798162087618274482760179315931419117244115546763384160931625850522482512687070283003231303464212054111627271171307913230027129895582765570618048923168976880622950219480407296948376635850767945757013498051986951993055737288149568807293676644156698151957105793449748392969099917110928878940894999471768748816011611444404472643948148233427772454384571400956590369670433704606576947539901400652168323712889050031421130345722486094921226275079582282086603321066847319650779389800905670331873257884435509899497714620825709765106390390935646442222343534344099245259847006096099619697727896492500253292760595108705637295838801870282993654059473502286349768171684987703250502164130935321352909776691970720383501525968901317558926148505556346135572061650905386706696116926646198659133225297701869455225142551815489519792441545093877229091391737993145803417069265647949221762077876741581904119554840482979111929961590166215981507933965245494314493092254604774443966154806221333008097866959555043377758209512713299967360237532086336940649147477623299369455960485378807180424777414141768082583812128381732871942461147946441390870450918024675438968293493934762573938409116405212454757178940053533630184465857233732263267867753402810077215079996603248333884121569127028586792179727335718887829593526644099930718202106457988697538905004794579639379511092058262988805135068150160463307417986394854149158654164957840885512115568987338669913022976456145915822152381914251999931632727094600656397555742556866939845249279897964770114669880769906124437570918411671980232098944758058224021674832217283214117899107578684813026702764314619846054049481522192154273009541936342924389298880952178597670598519175796357930136001351311512261746739461917337115498141599241304578096751467996722701060225807414017396888074458119667695986949893312888113853004778573220158581849182102242972061951787129105061565192220426550850918853284636543552438923661919572828435199522522738160821670564915226721206502570308431957950349506229450843340494095955846874899808703321402372305410949080753548181923727043876665640278213895293010373698034363762977341387912413716296223205969735924232776850619191925273160276192360801569338088741563546639357709879554266418251877632575604854633792503140179351630899818528800927883447732151704318055105729798003046495020929593374706830619860114414659755757782068983479489811451948337198445484679553262978529119259038477966091705005826251521058708945651842631942561121696384257026856780707339082580061928698739785748921324759561178118471423597582975090428223886316814355263505749964140185103892577230888223147806820245136877368455042514847785578827843020497757471804422338577788612371697508419115590856804143333490423711724697979858799416164942481150692504013604431993596401757960418682561179646157876998994080523866782961249772705972646479911268222305536074684142966508434907468681160163641169968474127210569627736800391882097442712316923777584559461549107748234633728739106358807579972319809809008187174846147100595323518557737986471201826434786420413154952314405552570645711373866790937614925876745603166571561125073637398747763020567633988382023112500024524118086994721698972384279783368394011701193967225251048351823265091150877511448291558023470289738090641868746057797614339910863716774285963293899220446462550369081182114729224636367855352950108275183043497203588399288615371852081267645674241592091575675560272852484374531647328295809822433341797097552780781281376447344328123658828704172902374503443929638325321554978983472542058437870511063270051518543206564152052770544287633784798825758828692231646041088545503419284587372460402766238677494761690603302661424540066183658030202053092867485930474423553187395384421084853489020044181084777971905888120824223156144264993728397113184453741434040152792994485532800413932040545758087854171958328620684131907111322624123283405541781156130356872815418404101544206700091166867836453697595413723857998289901823296007740258895459766738062384397707546357734401689571791376173336408543065526847568393904221595585476325898018247604862963165278858240963687618029584739837924077774040053504969941064514985450746145056313773807732133869644816826921942762382752285224374858510015676600586443742403086676700095740839344931037541965702049436286512682086726195417030940035802843062325618079284671080593561978972727616301862666605787316668378457692801623660070894503601953545846297386251714441032722384279153153930869404213934624974223314261610579945896888199745246382964140937697414069353289897342565854679664307635212570167883895378593766100926979228720894220182765800411821488962168322869983728894915243386871623505817021829324145091457774961009811933225755228170343227412887360911139566755851184930711325630532033119675512865285436920979721220155203350601632799292352455228629084591687437198525840758140424963414776782187586450685031539203549385554124881598888080639555800062581628233438631045126176400414920512982600024215584426930229446620901147173467751580013759978287018141938427188504263959862691059078075649639537951267675235797927414142586194969097179115655884389392314590801712778668601681513614175559535675256282054192312769732811386772915081993865661685050346078468377353516131114258274243817443127452743465772853148122459260784923561281392829485129858602955271028447169025761143907203700758680582817357615800703729396348083408961389095879339119965094495923913987847568130959065215140061240346749548257172783355469876800026643029081917557296723876367877580140572564601822829886012880337913562496950283290678950887457149008367739483384090388074389143266203268375521647039631141634941519571062428171035343148007971643907495635203683790740488344103526524035047555686012969052125017687691868634188783242343307269633085588556451649532317481503721887788595805304591311973118381812498915142097278908943814742177408081139732828289020054764309202472150020140261013354374312689832791283501642243438850369267642159930706140426610935428292986546024647567462541845207750923915463760668895061842109712276223643986445902235051366941014955457552118881200090315908763621315925405924853262478508470058358253317641765311117799449488635751399435325373987212253843017948142973625684510937732985347828076032043373137241282552820228550314752938591188980399052883628488296404844195109611824972184772872705701704814714879243388175246917186334846554073007520980489215044131507651822453163043436872812977954638197944423760308576913844163788492040611647846550666589664747068744876033983619539878338519062308146343544300357645588309556696976397623994888455490661257719613727918442981643360287412684572194432773232136945947691475214308586790889032258981357034611929689298846827279101847817148260461355851348864656965571946387455838000452440629623658615301625413453038053878471244640434820606204966135773801284554143314878527132198055247746990955520300271019870501636903166680872052577903806835833980461322818013049813249353266868183972688059800309218672660713551077058611924591057402769133530592855283584561680358319662349272525715828019982835793262397928025191537375541138828732893898689869044512573658929975878031414607147660789469325253469373986609454845282338206236308725279975500664333537029415990968900283825342111491808622216808990132630877597735548441387437083377308745495946138887184674913359865320597203323989342194866798383489029121938963161014493102563069312899387593452494951719776344643286697898985663965879665389391203282420533592903355718728679055468365929766376552069614688199510392939272473127728365201313574478564992092781486306782196560293576777939167482746033967387609071892103759991352717881433438900375898457813454183606062413874154530945957907358611995324323430521695049710908222083766171811424627167099448446757916967265898466475691526794859719940645787981797226318499383593554444391146908973144709235692727865326636307558613349629645871801211616486983123504076054400587365304962931749251537832073385459476006399291075397256180129534619766500473963330368872714344365064788091182545959646512948601256178738526450411637861926563222588582890082422084723349548920543323915309764510412271687396494413908945401895177445761832175486679330401997241540819610138365361438054314708072985020695922021921548089895279499797849805926779809050279443734518728899808154406971396630523743159565091647827971260608133951353072402501595107508029824630828810685653219751459794946171167810121004177558788801920094501406701391140470505808172884082532023046237619347063844722687399495647606489218449636230739251161152037391723740660095792994581142884228958518308096146462355360132713413672755744875966573679966385573659239470328338460155485996066294227646308986654017490092664801908029233481659028726486178634672088592406391635763427885162618230187317272694510432832788027662362305980692948165050795618001893562401351362052469887889435820117472589269989694338192723168794801141115722198178292541094964115653674449504560637245733915058776910687026928791660642633742961133384566678385036125041395734495762480947157393963764233304817923958709086657992030039550843411831664952903579040155383304882239143697017604229030122613640812144910557086856371840433878276792928359141279790696915102466867014795257049217006892062670999470741996002384610211141288675631596098445443406123381699239533671469680243456563323495292538943837615510908952879220941750880434593330875390854264413992896024408345982074255349332012699271674721191452708598650890579200737230163273104205821303397448558460223552314773857413720552830636209492275554783089453915682207050791104640535621696550419891584248368522263950546910923199505900899683362552337265827526592145934536985573798479241694675730554846029727827358941830990067286121040282836229666764029485601218356372585359384596150955745706096634857288949933492701443139867540460615406690728483845332676582048122261986811147363505011048407941237853566304196249208929889862401844264778981616151768180179090668306324675261541219369391780762906296816658291454214947126856100285657942645408332298757211335856289223575968675301686110530194129680152440100539548499307004158485609856111235584929326508640278159074113077156239140659346917334551950485320851534008756432120824451652807643027117680745206535542602103586700897264882609763937917421040608344877516476014866363299332158053748842445949875638788869311072537899286715453582741700723215470483370909056421212021091500421254656809614648033292842681244470990167530819259637868688947393376623727968136756021340727123335266423298555919569508623875680386280412189753366492052428070581127207085571913332323335865799234482706769979246954438176317657843937720589484773822567019927294242973230442676986940759762625589372100584677269816000663439545162128687729361790245567586195707255381160074301871638524682703662344718151081995417111846543866101397219832375739876414305098456149681928930574706482949541987248272938182864600935114890932051516248677643079779468907736303192297844211341678765512717056654443090408635597047407388864473564244956993785661940253214361663026820746770465921544425060436838332984340409717822093761598347224690823330972468086360089657311989963498938662141852526830653139169371738950117666394273116109341031839203418200844985913424689214838621796370127259224310013978032828841754456116422934337093623383034871744681948369130565321580555978665883618995334829242496150104563299125838489475137612335707956811864835694712091371606101066200292192034718851142030957600386005859619156933967705512350087881747101582952903872352409657778855396695013847326711626729426722061568173947535403894672055148221942675539632245196854610023911085809601635279701298776654636797035786461949297434986217035887644652509635084636639218841110252482165298459861460551360864403214161057053532159234305303086393891663778850600059668259913951566505036751361014089895073194760290593354582003818592879481409414997115482332799890309078507425390221462766066276748001132746368500118047437522485945518738534201474737194162655236562166746530350982836079694866787424165941668721320126258283747663381148998896722829751803515602052407928010322914231612084405287687656684775435730464434583743542736059290537845828927184169400344925046359316913713993297450581467949023065607168310556758366359092956309030287475844494595166410170300946130179950053526584001969945624983208373850553786620442572556984013239223109602331718344734652235160289764632045907152508948750181423882670581194302660372440157303122932146779538893551830384326677320027898396919893078899913329992805009648346451158301306015663690113477617722820884351200265944514888417228746217893385288736353981297035891054144292164272616638237669970974593276440748620929809246552962205921749821723034026492356306080141057517369695825537659046088431747836157471742335315975865675748249543763615174911559392750600576204082451832839285591781410024634364398529753701780401197700427577030287383215739042461161074537905732480331321450238687487858924864200061727767861630975321604356506108485802966501712471979219990872140387241223893044915425924943227259669450237007957628752672779899800748412124409243438152507948054787090878661550827438766557359529097891525729913757248448997253019340597269621692453250208010310729858460203059826054795054030525942880245330014260960880231639551917147822508385276346472128205152644645018953667251283909487410042398853191911299540154154484827624038990595833743136268635552554637462744059876692953928729281410724960386725712776808761349334427205260745800542721459115495991181114699488101610820635737350038972515004900107772001935672415667688822372833397525127662502751390824464130157223094606615295612980694667603005152255968533401510431716775139173232284224721638810196937426888946508132091604025769015674727940770274026407870311361761288347294727603001230653378302264139310336789503465618448440548567132121349317670167651560151164694448986129306314689962762682216300601882850181387500611957195601566223079376807931283278586316972442441093642219076444737424731150432781051834711810649406231494212516830071629298896859852007782652098291955383726811765533440846104250251368752030649105627305799910630825718710871765736532812909664276429439241273453046177455539438450769061715414930876494551638104975659982960841840124805003259470599740979512051509216035267958164526096709964768444515634032250828631579583156389193380735857521822610884494068893016161242825500253882565891131954457239294122373343735445057473597302867681350185812679507825395755072022447453943737608683110004532390309318429414647653141636453016552118222041525383017458231757605650982235294094389501284388060667923100589806467035615004341915079357990839929000843004368762470531274152801880263652185773952697952125481070935448692378929931776372755436498238147792059327792568086835871649047379069566212295769281254151288947552485557034738642732960605659683949477910326608489731247173539414438701117745447021262126457728647277883364373813372180730844762073260530898953666075694473405712138073856727043977676206710221622655042030724517111444326302198918617357124828959071109026756448988418373333643827837083359432961295388586817279241768839426212261122326156384111116371545808683925078383887947338738366525023558133523726528216049434974666747882621609830427216474641062920277790270624373052899972123719029481845496889937899847623562171973043701845236621823042708104191855725913708433193419089831264826036315492812880907696059306304282221076000352756875500231614159164849547651482595415458964163498955344199596032915398323659988918137931202242885876896440656445663068561441712186825877482415991786772727317269391645512834911639445311941243989484083208295205865751528358813194369670604288824812712660950440233632775015175717065406020763140186984835878703306934911604508440109515632600411703371346726759303392557562273607915128957841959696487431152766603632912251062082293213131068352372500405880176054597124493736892150617445349518316454553853301413979222775277633011512089207367840265081749809352326120514116237760667726411161381338797154195052546413852619247109502398609568948548602678400395928855195136538594798531589986986944208240244387384461813426144960458506344718733097115173563158153048190427830993412522216931118521407910777617836598159522914991294488484453069263104162556002927490094985973129648963517134813139344841614526961904582812952856790939541836623150470701163009717253495052405718000967346917261263205482402809404459705690680593805832247886895299787558701786040820542218091850017389885176124618730366279822270945328146389159947164176164950737565049710846028132045261837032971202246782520288365516412986097713767748983837705660196883359563459574638498634576828256664752518641609842924559589045956819384166769939442547544191462043703575793052685514356551733945074071741115963052105550929683642904389375044574106212492792203410559176061746890871527758253103921790328436490443742768897904174968360552865261305264456223866129174215131755986006080144754487757741099586718707260779364716124513991560728708516968465431837516218868812211895654586556625640585277126760253404845090841020680756242516293702241645720967119234736919784421164615573141742732794696016565564100076683191430579176035347163412563427424687840488356298790819562451776024519879909712373445951132287168844708116864127664952406608971211008342832811531698912827565540433660286737210039385152538898271916833798798948144928276217868826653065451083064020496671590395751897453567594907154104391016302073343262916206351583739478891307974164803126747202935314613188727132729859682879586415425935921271590949415404642518865002605974963782765375424578414693070148430975069154454737147926643508181325689419481457440370954854101058548055836002278130164073348204354775582208553394405214884253435725992234765329873184513229927780081808997233512015107163856126526532471521624342404559539707107397910002308704062056146234850219612204328618086388718499690601708343870300987676571413337357679643095738404176875602688273478649918480151395564862477346446541445977371435514510942893798635467491234302676939094745622705684253161744729747396739983791608227942052371611988128231182868552747224716853711750071642736848793862332756170033541875158799670147377740654777147932473340668232244289054544083628934385176283125533917061491036616967209397398941252517629742268179715191127019392106598158207848920587497572557563659263913008773006194557445562510192972881141752819028505015263458136580873591766165460634768587979981862493056773293423137115373246224889711946458457875268363027458804968163193371872366407438226508811751874268021959559968142664214000324389359764599263897273201809604612480321556457610777333957469783229290562659828415945615850212737346787287116609168070495427527589737035370849959962829357599050193372633207721992105083267305223498025159415311312790013590902762771251926359947003282151065154170748794543324472043031551284797271034247507148343326517617514531931701401652717845132292632937861816335231255555698431807280075750016886179505491651302694140718502223635422891097997713059219380642846633165758486608186301050670996349277575874217622431944493366559010214316089629504407110592623504533857904615690140326490455442988038108830701510978899812621430865148562158182364169324290714279031097574572643812410501255322889299398471177776546244591907053978341798636315341390811738511989613685475222496977890327241068371917147978916951405494211283515297509897478366622116000222654545294300311054848848724089556884685662553575208358588719564411259943647606210417126380880618908704885357116855183546710567300284148054644163033056265337137549821750871933534163351339846696431072053757988272252972637200543755104150534552344160656876039562164443203503113295319765187748315604718228298116121667741717425871116180048385281279172552729722181745203531236176768523335974113149972323652071561027649808839184881184052028623212484218836744000663964971018895741120208940824472037636175173945951490610929034855073052608070331122755635880450232711634808212537955191755537380452720023593319671482442738185526936211802336067097893482356948373024213062541345083419280933087420796926103569463819402781349775495405307301888747955338432261127302673378078267499478746784379971706629022845066478158465102855559503706882297039591545131419904162158056837138930118952525731273967393718474171873385286071077637429220318114141101896446145121708757691889413828529943355829161140257216273153240665465829034907752175826496023955721433346110925923061944874684576476270316572326585661596989291494209949207291460790050281054630098477535499918984782322226709291331420413254073928640331163885672106527213348300985502755005764682586182062606858039921888657529911653629901090733795332943981946035510695469496897835229441701721395989411299016498080395577418952203783923901068884002641686555811019730405490467270802045152553167339363177509467663478419410467365532085276047566339347817255259889097232131494815978739917392028658860558046994818863193300267786116465553524318202913512834089602298475663103018935159329268570568275591902811928670038511837114143929740181849057109314359671740478522315742581682333396586426590680034007817941231011366747970504053691075530767525158497061443909834088913449692099246026642264335380385441800250700047292726061750689467399312482736868246933215993284606066836508653230656626843661288160250272177504144365081112147995584150096210522774146829082562903797183994086307291025115143543011049015247504179069713413976293132201952432477292114881610435989733017868634865983811180435674476189877259314007733747768146361907884646947617096701320474840009101398529714823018874908545699840150656119205970812810467642393691321752918623849759571756365841292700578850367208787507251139051808330072512564878210966387670114314485886823232145075170789895789896067154066689350907450908409598026199571198352679330580271986982062261815739116947134332663353271183288334736010553414970231662216982356382060500857428837954396713113193440073390786693323865975772945900417514144591952057170378990620717388692578891072503874790950821704684883288609784064883349839652156135923951147193657377606593083495752298888046961430911988601800446293109015889689107149713691006414033151334255831520685690478445798664984286760507722760151993996792472731762398582291123771317226062989841913846964372433800485192746094991663291558474299843610661579851747202447565117342153172842317524148955722794460255429478729877573685849062498850925647649516463412436703876573894838667918518815242045199206113799651228549528215773090210848889677105900187333140099892025082279403683170547988532357843145657843933858840297686805820412415714797147061227512974209421015592922787847014341369463276772547245097013545549017745823321326158925401453172207996323928566266443633202902496329216212542679290695179000221583664467707703582713164147712244776663662319753491169853879404353085330018624879224229515934903522649664078667868892060166355172272086593085902994539560455040497875248586901444098408787987008677500672745785346308581505946888255693566592997955777022002758998702196985563554159858552362267972229611531588588665308945605451846607506811517079086541619024653563352563584488379212777196826206669659837423938381884673746487898307196886417985711177718659625238749445496915994388242866260539253631850664241512754093607577988138695406828113931014076661745763583915092970340586307333436888345229377708859790930057322399721549787506114314750396590213427656391847046875873598457842507746822859395917474210362028511128178945447708099470481839851621319218298711151682643952339393754811008508999836718707199908429616340877525755391611501127078295759895926936031023920185406299116424643293255147538638367494340236973629698724597205005635707340937986354909180175085142726670727344386262760904490033175631805510669914675249458969926014901233969057471093978293797377731573779666048395996875282860040242272440966854266363342205079580734742643994587226364646316361529527645008115960565559992391910305505543269241479336142854279253327118725191530620811534565342521802609643527884837225309915070696291562610866590013878225394953950359548657735320574229065934930613927066252323198733820428285098265545301459707702507177307088958558427704715439468366043935343866427798260963287868562464924630766213786930730524616658877631095984178963679921640595552629707278357223471234437286691727358437440134683113994804434760995867711491631487782955004033267875001334170935351493536763375397183169498357603691562865035997986541785572310393138049538382961343032322289084055741996844518569079011834285584369799156305629269528009803292472804404197426109034841036777216725860143905937870826427301551476674475154328731862100607759939201505327370135339506391185104190771914150272802581895378027092973022791085292724626871495095751388340431253722357652338941302003993109330162081671823430607065100217669089331489546252119697869819440872188118772073152289962329265559155668088771230122543346373430351302201617880193746720441328826871845836139632306436448331260155131249805367119415865782197289389191819214093211231733067234742906249833089131172419163849398995489900230228110141107566351004415719371337855166408997627797353004960516679341643596947884694015489137438338470187639628950373245119323270262615281307824008684963171198453531117853010926460708380660125290176687731330148031768769902717324489105335726817173116754867624284775938774047080038092992640043703213666100346682147967014361646627312096818798644269279788714132975351256316533443978004927275095625226816004570671923406090421805666891989969514463542757623447662838051750983077899075050218489430636166241262898722821579678874519744813266548328823725368488443739460353482789911137559055778016037160360527659122471646891572863228261418241735253472435905650058295243825969652189225098881410050519897438489603219793602938667529448303026474019571264921937863045883059343862616897014050632357310383023147517755185614285843323420683638405880770285977474758867359810561183253845667269581493831453769816299919783172879290923771203269629579863406637119668133389681312797839560381009974359701009493760223369144241207357491490866429827149993915201700119764635955270147409965834317272761992462413749560811190662854195008285493907819166751768346563640984258823569127158735573649153901566419051488655020030890904053920067895473134759822622204907406161792057578713513640688659699094600478635147432477004941210406013780037632712000306443718043723159395794778699654327617335348274187366102276845121268872024559962577719475362237257286675466998658350575445031731389112558868981368889591688441949344288954323104893018272880839417576996456774972383803748674941567105487150838893433492102399655195987146983871557721646023137309757805601946083869723936584697679892286604977523988184560195290074246299223661459615833369839903131933326136064847797409800788265928141666367356594920484605525976807433288814676791533629634283962235333815208525591503932645973263746125943825483320414458904912249575671269940633162686091061976789735783749146097281228110222655824853653066314283721785213538937869872190419956404534937895345195235348560387189868689196280128738702316950771222652629831011812006828763293545851542215652980289338436456350138544657412512952069902740700111289109605256810250495711562644897827198229593005170646145852070150030979133265232841666089251069584484359298014019522269784097504132207645957191774644310994009332075299436470357264195971302096581201699538251519467045469549677908798552219697814753708793533210534151729760193521188078712395817903123132226449080020434723147304117651577625817064418423508071937624741658859261445154731218151457109984680364504330464935003893049698396828372105029061155448697789844213111802233726466301257371907247241011608469648944082232820259870619517639470357334272370703985677438461227042455222808030080047597899910938660041888546322812111600165593423256545355862990567467356098469371397421630242918697231439094242026316670577402275663354933175430853154729564100008867315107270202623795391814619974987441535999696073575358160002792250657315388487649390234234322322920563995358923498534155748369428720919093009713663196839754737320183476896497362788547420832201303359867562569304489741417609590180523689501000235989716746558473417572932345979823682992751112030394882681112698825776234337261443321869783411234230900121897150456285073804703073541021922849240041126082054008641908938962877023266113077174974474696292699147584260176484288057284035154405383298086344098467886288370914906477321575763692112964257240537386471667157265713986780090813754456940204556291097269042239249155714379836631034913707725396691792142730169159382917702852596090324307386726690100237774249867792364296724180865514908901369540440640241109243342308598642874728441205545814726840080721353140709558673894622116199133946127556052260872425203212641590059994095496263777054420305729517165172230512330664103865542727899087483025265457118391823853100588968510997721280342899611460494691784584548966973376852443041292851715589925154999457055372393585910893729307636683902854349728710655070950272364864136774704362252000171905748223402121163485935680072732666575005557254496855091847563530712913905974113325096002316730101660698733819397932862892414502422555038024238485994877174006269504548378865387900252578973008241483950357616583110347610987790194599579052565954012882213758437262026291986029217336379150970195647340368942034690091218186505665432810411638839677123132139721641938519168026282090725570579751056305643609817667676089850877398455562394498275131439295149625906903319198053922844208819343687048288630694049756997713142550232578319441622983801910034594597683095830988375152351818652424728260093110939670336712174713064114130867469605264227443248857177729453157945857624574865948519808782339982212048883992514894706689578307634433415754539991445725983558679683839846600975479189459623185632613164258286089568485017381520746049644873942166918762116881425893844656672233120910594469060006586977080036302339794938042292020341019000782244931430298116682952625208450836926768816681905627740807900368183401120928495910360453271277506167261447441591753858033682208161241022245284011184738406851240101326303712579793806265955119671390866973159281781826215422561466239534913650526041660374709164514675574469991730389360423286913387213375803828473486120993919026804040781285762788585962406770162846979101913109838057767502672101792095148072835948943472638930338695253640548862726394337602957234707604927517573316404344816596845488946182245356052714118421788181673529358781547225576356543051167519217787827921076416398441101254108221162545129274195258329341508194540846498963696615116657792524467183116595988941247744439807514060644989195364557839543894441981032497862539607606169062046104696510537573447015942082941543255025288915072209390222671497529379126440863959045456454688504861627634305000016490402320691285153094813567190450838672628703305598257107389698705465769608606715280980146575588082793957041331124095510024732250303241635539096900460366704208682494632034173821291324988335294135066432927719949732566611832556619859776545837754820157283982751593849598808814737833534833918863017754085214252319460796046934966837645211331217303908097567851841389986820997269948856412418289086598630636585611038539224361108767859830810043727671129666606715348764122241024780246044803845052958359317636788906732657986444158739651707983946240245868073586411947230707566931383407231520508632974600375656985364166012136384202582827349824617947272938557545057549510679322641540292766176575956215881502831964664584432526075548271640461093637322929295075930232469950542589366560863638998496920524074177827429961149890463235406636433095161851095687269166714737567863816665699695633165893975226892333782382396903420901380628587323289386896774311698754866250739289699906641296106797717810180365574569989322372341563267486199994818376959159626675511171536980194257654120956321502723267207684521117103495038407999295205120004616395137532696008340747705739687880675980343874479834254357989779160384614143211685078966769520174771509463129767076879838571012787716380009746541530248496537329061544646506859490820115168565950560167810684527162413641831465598322337949372240572062320521771543811658335474784475250422015561634696171507079574958340583687427658470079194899513223000128259176831673674704241451164602440153020924103458649301744194435806561790165901901352108198725852121899975896655941253377743473699851216932824351949401103697557912555540595212643002768848710061654782342527704883489960332179851153139956026149001699799231246782922327017133712439494420830066294961163569883981886397381672753029187478908588337204344255728774930277985873821381270507901313440784589794218656161652239232459161496371288801429491432596374518721019181627926609866027709648396653046966388927472612940742136192132176105341805112528952497626913631697545633957237354411312957659859006862766608905379541879501358817765552410523652084466491588787186442855779931659243017009147401182991773081557924691013401855856945674737522425926050432993108293219495012624258875990444417387206541827314863930768468420707070851289603688614054202630488236946712806283411076214888124099968737533527282152724799716332028332699368736847544281942035092107813808247880522054738007278180782414988247211215999757209320674435632836201030669218227297174918802200923636646654738218249476360242654583015330721362289874236827482518943426586695397576529948663547507425743554391528598985488714181521823734965729960245103450831765139999286646459267774534091733649515128066111485949016226990685836271379927937989947282108916636318433768513937902503013902728983798264757794440177016936145013683824034531180994193018138207730049989065513417630529081203509817843437607990254925552107158589042647036152572255497313533003300461387148274647576335294499683494542047579109231886616329818823317357809423258669731667734207520186715971399886376621209176217661681384745252677184328526321926489289743387831730026428559723478768045559442654636298539510571648056649211989267672251117317040181014232500886251594435180971938304130861064694419287297610631525965209855926834398142843464303685121732141314438911954401508274839575149703973282264985216055437493698893649282162073334809927619277368227228848670166097296190780798884918104642631117183917688374914821897691970802651176525597895136080536932667245553264518073140726538154613412587901734749067227905747921330575026907089671770371975169665344665411497881387566138662119457184576747885401243582418435734745269206546172523059606143009376566475411566198014240910180638563283785000083409083429812187969001146862620864644298052927156917466274040651844324338889439118923201282903135616178944892037532751723426226940061274134080329465422998767079774405993406937209406410405795519828718936698354129215796595491050734085763286401472518061661657650580107457570047004139604268794722196948371426833411244136202437542943542273481729796724125845964338963241329497853745435871942500533357795313864084423764403338871124720184601505005415789508202924549668053325297884973773132554597067719475970061725928683620674065901159943502321291564614720546680447064550220974763086453649638677929966624804484808092223309887578680710082778866826342091256595017229305477065334124561176381652094241362165491528742243334638989198835129819704641674927943025158153551823187465803559703278223417613024771115318486141356417259887094469040258261531614009051497161902671199024142730021058898045651190076623135649965572443144143747509646346060961322223282057184396938365099060897074132653764593854778186936022092229045503718842340657619198158011768445971250539305132544344376188712685200095670487059888991551653099318502272603302714156521460074133440960693832283173193010655650009366061642134873540183925823136721437285958486524514074868082664114626615417363836093493442057298854138676914204004514789427677703106048009902610157559153909110467337982308969643838733680439999264359632275706384844844540324835829958099302927970038172353605116367864064553647795172653868749917456459082863724781125673460205008194610806171711651491846548602136267061509046438040640982738910650592859415762223514005357324942344143623911183458477298729465998217426360489392982272563163972961036086108640131079717624560230329156807822655188788246709708081984768207609800460738019776929933094955666861494092867585847501794562747146193247973328030244235947026321022601716661513449842736781760866827058154074106553569480791912330761474982089565370842476727469695167430580403035229200002371568158958169627116641828104631248534826736375904392429688757018264134281137360518715858500771240922065273645024449231692477473855400864361528545408754036941699217264822634891088202301124305001208479143175532884005580343325860595930092052266824817949091701915718148021191164778250028325706398261207999727237809932144896642711552094425227267519696253608343358099862387354880971596065948733728476314084242257040468228245929625881978916828516919857675418065030883430746908012904269885470276978912613492572396411002400726626228316131870795986589997784101302561940773276274216597220240428212716192636571352816383447314428446908536420025239717934373099085719855055132142150076786446602298173505674568065605991667791540394588319260296579387159704515340954618679010533712207358390685949230922122347255463108206788852012478199698420289500602626812428669143184099265174941062459972309196206220430026979260271500920992155733074086489315376235842952390353957137592158623352206446985703966017049952906797060287968118512969216111792327192672364221320749503556709805773631509804824541218220585247640613473855011938623832444487843606449053943935808358689155912476701379050292652632319186427262353099270188897467902488664635899287476495688932060723188719689048053165921359705298383137513612446721084523118877957312657928292550980905988501335444628584919233485113511986257833095517383306713581290990631209455403837029616195724696993323067568479192534956010292728494738103392347974739815577275760149171976781485762804661085309872818743570921553338973806110312432631240509836971607024037842854726603836187666279698976666866162582396438890932891602408262012746797186495753190415305138264356721253619025705649237900209495209249876965627951073531102432461643300823554915162372816989406281328930346635276052349988924518284837810210996863845297163310906521596282271918576369254277950948235762876879438754571376702410504697589461213511248945902382628286635002049328674184539080463832587434515684113020565867686308712756941173584649247009434046915321857844870070382626027812988831732911171837774562871399356039416072899985803575358471490384777485986108459929414098053439201022631200971460125025821210298616179652586574376272799943435084970325270128710966215849885532705867691455134439441353941963053080220636210516212375635762599492053653390110784500125072558516181578744181287738808541277588606942127655176651983437187132124489483000273184085517462218573795111220269056774232496210960087926364792759016288692328439078468040579925054840896836049126132680865888051475722514742039860819990687385100515899063972860760453095906340122329995854876533094122488435256948613750464709216509838022844674611766730496831024310732420301584593267317416108898505727303651912434583177343647306008273955646446738512454894454574916663568609431697191132476216267985127062530819710230660761403750092842632776873046136807791805777140517654894978356378022221176144935296280163433480290509382667759086347566927754357298299387714643236225954457592344873617554142587449908777657453755873806574605625857410059041133275187793545173228440911268422643408908541075411888406367496743287031637471931713556982647836427591596701483106547318138897411882171820979665289425005545593539935449963968231753848375327257568605441183778555773603103217674046719789532077662154868047457314840636011428072590669463498825614718081013994554725765706870080044594639094655341491509544432638200567196363830285947440159392560006032910418181186582789575540722597284015864570502817551234764927636064703059118468126673331420201719386446718882395936361867896370119376998869840063458276115490642248585129103880994600667751304698441302366899625846758148981735802511648632040345571648195510838146079844301218560891311453592397807498772287588416770586104189726460895630693198631473333712221047493205787706651081609717655452304241198676423888243406499967435900910505092597369159419606539175841494434596700905081022812392257003058844384920747732277673433456522354335960024786930133410703521077558338890826500112195705939423756288466994548200822197479908007463397060432067614388369024563861809742904816380843298860274570383870843838251154293502426728530649622364449091601477542348418309843062735687634887499928129507549557377167832352989016839414024148954720834698269587540395714217853142227076956572029149499336581777658871749424632157361892674622756038227925619805326355313710343966398503122968624205414322705752369776724101166099472608304500007666656036840438219128240397409219886009212884242003395819414549244921928006491630018599808313530920062583577346008493156019585567906122420777534190745180514748946210493164790634654163190390833164723136863169153412749065519136265541942606521285373868695594069158561112170778517110448038023995070314443604698185997005093519291149210331154108575284998150947470973980470960837422108897224301013728030560835929593707818871688896848764766787543968641232772436713145126831137460258951338762532203172097943493647317128574228213255895152750415915220915160435812609368815748145220503117340200766126452700557340375692317707020307460924174552490807928668718471503471348180242276997978562823941522632694018078291653224533775560550197721638347011978787257717721385751136881745839149683530034095807128572837813400014083896217684755385955564626493337999748847033362089981829186721841125846926658723962992911929933244685943290081114325250528122533596116117749854547277667660759040483222049416463685238582234327117870471226285646200164000579048878958912603328773775125696190619181986290011126754385936214252266218102340423870254841730645125073710680681689201659324429428700339602794267890148007015257600511534804543991421419701808114792558827130593800600665080594418950885245772099839722005950128877258851294537649096499899552055606560414264305052632644459758691357423988078198730241372502287713125303889600151227365434055653059120978089898474680263636337648133577227484227835004415405668483978616618034909457702576847210996925182227984066575216154377058932591035279182793424269005601386744529578745241387105098839108483468824080325535055921588644185998976737135335823404802080657904319754207385388386364651323121215398506641413921853547976060810206521797328843570414778358897481909440863406874468303675328482553221659283084159533848612633896089945197063765950893790938974475109029750889878807246782392856978188968862812579725015445113816164210958827187992867334494444024868344564498177823007611059114988443325017150967878290028071353359155235468230545891395302018914283158966995628867496384358482723875317129683664632671783185461411609994663018926396176530445577392310166069391600929192180200013908123313248062823122028195548141500036866175704616941916889966632327386038499750460794264360549593051512009426077406961195523395578625066886439529785812891810732360332736635522035005627571430625638401262472374844083730839382373912287520393898247805074076525431565374216015060545910056881421082359443350291929044070040568856458463877492185925197831446795193538009635890259705938122560702240346960780084730900208194543565099594998406764269002686893459958689002844088093562207831668885818116632451725943470090312997103422734811068649987815308788724439194911240826181735058329196288513525520161308978227855230435295978787214038236997143791119127600951152042357836622871898417616567272074039775889358193183172434977980038093439618801225441669643963711838380511851197517701523408155882132966118163258247665381280014080735817701101402124791511116497635803201209246019277220867383454558634354018309504733876178739482018397884037041335128886326596352995932358302721880186785487421638049402666045189184119867246006810021237780936418929876606565207912090470084438501194173500323180712951746655669805379360698735848714931888638189996490709480175042268329689677182935055455704365893721946606306938124805445779426090870797060699912983146287352630700014033568978407185805539639098125209100511018251395977165246466302102736548385017337620148023822982007315502727335834465585242356403166613134608475229878117730933632316314923044940584254536072580731744028737471204889136446249050901726681978008534724087613647499075048018661088138217817048152703231455356299300616542266066052172509329376303846790998241787446040718537542656006031979029109462331367668647800774552577264354051499583826964741002460755203416637374060287505827805857235165621395654828369342808793680254942579573188259259561410045642758255346544775905947568001128309210070849094884158157746546825971968428395462382019465144177976038261819970161629505694884214056165969225943377785021014416761382223731293194994820419757780459048157184971516761500529936096535042392518353549431625499650331435758530315764580824403404037440021953711666862713361423844675515264446698661730969905705815317421388807089398997286919743294401303729122143732113655202517774247830006777041532446499276998994176319541109730807031824290414568686576617910127638214761606313320858170543266308656716043893334959774509664285559536108070336716395540282228518856159190233637521443904520872684713732158017999931961284977655916194085733126457683026525606211906520443992948807532303714107067217354901556383544831209388892732656902061986169004995843816640822506856170334657556589718395169392312744012315693958414273793493151840716049107156183430132130177437193231709202735933192216704131942624016269809076030278411091081382722071354264469103024410462322242457407686700951831748193637360565792889925582693587267618670433879142052321845588431172836992834954956371286420228091966197382029489182551161169776438765420032129783975571536007196111853400958080101686051062358006047880612658543485602900761743482794950121982692428902575581721313663805953035959520308823067702264065684236026903014249265750975220180748649619783629842301204053757675506550313499495027084378714226316601254474386487521252254059642187177408791687993386313080388205538167963038168388045389515503998196068469301353767919445322706509653968006333023540211782328870767068776475364568328340401603050904293205472452690706102228945326882617183098146263801111137410380456982262871487183513073602715619911959078528881138569476004152154909802559129339900334998238940411006681171867677744637081370864439896821914163558856781698131404086630173597048899712023696231157033700067692909327077389023737060922853095159552254782464283342595528883582570544292183273300002533202544564322679122543462735411823596617639327380734294682429156841405263494798559855256370126137204299521182247565435603238176674172270131389357318310905773875412080407537492593650985316265844961189957276637763715036824370053386824891135405156647094045669150907100953134091295135186093905821390423513081074358337872100403847864434923271329244342229105517590153591911196341535754136035446904058834415768350040966610767534304482376215816969974834685324943236824689565683405788091054650117340450778453686533554484374588744137575790680983505919957166350168428548920412828919611612766343024934828881499242566361751010699345227243873943717203444730777560354056877375870929723837633166395826885325124499182923684517794338791517640037393957844680585862883411886112894434279027115653367929688152730354371822673485548861544200982713793943108043726183078297715766912398358274515379364378090917307589812542351667594184982415167200444465138113146967375867544129888535394750719171845661332961645785983654434534064805435322373083278244003786720171362715994386940002633196649379003024610084920045927374309472441570494542459656108554183442767080633194315702678307556044670826601635563127542518671723938355760263952251020240270869577937840872548690610174208226296655790201529973668049918972675247847485406387241563024854019007955083221859393678652488348772815720597912496702880616915510233239054078269813416249344807869683509835014778980365119292771329499912874021312089753590159539025375773227980834831940648029985028655043591529876936246927368858221477435924341974745664252325697756768496326875777498112179864033947673728406133232948710867758330816014548511701627232438704098777839267419434867427625253419271410913498214572490947535027495959905097583116565517050900817891564085438893147790338485299838887920544500028129621739005400265558515109343372283157735242138714394302183134788638007391041541048704096807070248417336321343614314409484018188478212164111998013780281681589400595231526207076060820196336789755918625481142424228968191636425224060117906978324569155524144050147638511612607451179902699304206856257230037571418485264703166312904916585013431561842950041136629969361464687861843042913630432008187548532656113088615573129285636062275806273287809262313143419100437304809100743431904760015901800652974895518502786083016850144076637083178834610708016924421579101310307120955299024158227400179117625911554043997097066704718521649486730049735811569241321598420747191151471306554256647352257477988933695835840045455366907760618362371635509165887912499716500223613954828701057307078679296114409619291136430419550563883486757023620303040552412157979817314134928812495801608392634890100165872531805709498875800490839447479383763761281744955780552528141422601278631764804097092562901124538081939675593216554655027562347463323015109337256361033427406505039397423458702635749060285658558477014101016355522614152394308591094432310778286514218821530653051704615362317566090657313857220101355441096003305753441335949371752373761739031662489290737406612320906576879560449514582653822107252231075014198470332570264416454859174961255290424820051563127770135861101871384017823961226467233453372823236670996546285536727098113115962697334690820314324274515786587294431755749339956513757052963626513446201573879433298530893117652092552496686379944503168005683735820703465946807666410137878984551506656936081059652142764142824525269490928177010178885473475588508317254075437455643356341330680399408834538983372059267810277106835751377862477119408279440285567484807636529958011585330245446429182099831973169595247809690638955881962389694197068705602932379089929425660755770512752450255523749437656831104475120116341378751910651482601627030926274290126815273814974689398767554595105999000438901207442933976440577130086153066205962573623558363638483987200167197475161794305326738500184800765131536949536312310993574621778307360888699519311219335284204594733182439189091916250185991209626016808625594644287031665860835065224771983275374738882021017392020088352243323143481856532428238874603703501270863846782341373371919238245375181941166244267154529927445491175637540120306869403910053330059641099521582632578773355909856353014097464501709478101682791989174221335798096591427926657140083732045723893071591408894815041731698302271153817208496962262048184349380429419592483872752793203374608821652435401441334171994428715604466002286711324890787388713317142620647201590898799794698909752794777909695025696156233979852845665621503581726195310888091489739130545239538999038476384142884669148954924441552348419542757322414899448634308896060693162250134685208284919895034302122967683264796548574665730601162492006540089584677234986886695355042473338237848123265533401750961811670773584029005220009808776102244139574039802753066163332156100716604204442174119964787416542668287854567659780536985453194807287786386603895386061026708669104761439889532029221512942714417380540331756493225081675669573166280739816454859603296741571789541456411463183996165904069466509595526442169565523129291582091193019215927049594609246605454147545839075026880613305341382347079300787849604609253699771056697825570094134882764941306917854227382826675531296061058234424985803163437060314174359223952227123509534006991035913804703127705831697787268811946829764227388635324920288319303570709398183998411952003481704295231881397229696837029804712216488489866523223470914549331659155876819812646084733001383889819399153394154876822555691576488019797929353178522940273958304385252623604518018239223595691092460769915213780184916910621050030529058300163339899642606274647043113020157773270090331487018286807113263835800960305257157965419589202608317157950501463270892685175957651074135496288326768266182858281720964082088169760819987225548979789995776648623424012676279788799776965206376107933329643537593093107317589765675203418262219042375398680211209536518733415787459561788931861685979402850058889331883737798702464705187385585386677549008311569278422213955979346513983575061150692208407955007500370117899652662356235643359912316867994808574162970028985557367130764163031183023408962507283977832202765216594109006243783747404618414198062218137936065590743075034824115966987235045984444144314265920444841278319381609385605463745803900277956505787931714319766855129757996453977648656831101449913473149593672138270588988872362423098601482960324433046719914606824244149200486955445106420252402399956831211478884845586479159113207442951348404512291974776740628248118449286741521479353963712330518463261490854671726962192986304288135676586093655740285755493085591684881808437159962518407659868138589924745833702286559203360554674176384577407198489906509198735975915208677192932207049117936761083082948291894468983520434340115779564139045712343874567079692527356256260423376899496337944133055168135920505427419164074244857087051784411440227331696605096534500710617952489659452720079808075391405020570842636129626966448701077835268629596299189884825271478980477257597475827378143453138436666214692732651022174721368396883526031925666358587538500858952835311127558924950656681861264427582757735534203703635877441140469545428196644259835961462971106268575254563858751045910640385026143689320839110953824969835297885298998476493532480378251400702908757085336503491257291593515075511399500742252300086123010740311542458439240841169105053715443570689797221148125145880433427595825962184151963950299916639819463772171925218658957066531225843357285717589546386573786030721121588173269643583794572453977833612485992574370977917141885080830243749404078941333408380625556359420082660613432334434414586675097032066409311733536022019334505951732353878072580902669388764712602212660380437279858366674400208753762667823786188106354193003699495895406511743456867021243584228387137365836346162091481833335197902762430524356369226518771473987090054256758779108558687872459677979479790389750210540491621896229745979956792972412138619373992083154298263264261001816208650685257402977370385374753628043555806115767016057399720412607792030956222352411324515788405746301219898829783670416915345700910372652164968683749800606080660051026715756399042729581630578712907139422518951621155423876785997735708805386315641615189943432495346381616765040658020953114417343871018088642008287692238093990250351982847147918219097393399509965486926866060915220466786435387418442517236876207698816115181115360432694977101537283520519587364988782285125633372039213889329032175984783669116097359293818679547855170643689955692899989552158155131109349919688103045593065432491987514725924894401471892919416091777623683702608769795383386660271803318572112185937256875892660289052385265095231908023365606948306904198234478838230485272816783906857782535544353652844557759675283043458515001755261357791600400252448997188792104525027610352381286953436797507704020962772411688157169272774869491325435485790092490237853801347366049364681004202224997730191059340365617012507590262317280468564472565298613514365985914462608198697133281876572444881942789322146126585651185296335125801783326727183807465861339461744909369455224230813863202054349701219518900015623772023914470611084727864599484235624106115696328813788953515973611289388733348633045973782965862671634388746677597664928049944533161323912295836068939464220029494655125364808532650971599099199308837009902827366198161663861274097459513940040186305517844988245690425785290860857915512839706045726182884437690400307301363657222363869617432135836862158951810834579819855063521197345916882288415534788249105950482714199218249806996226309348454502732730918176054223032944768785075245754584601000402038896336718294781332378577841996173897481100872254003519049919731859654907468568191402903462000142250955669834158182458279761714453022242978169918374727165253158362249724210970255802770151271644887059952609416109651325495434711150092385373718338096623408345587335941281366917248444465368774116359859301292184421217742496472439744866479595676837818573377429344375217163403737981931967775953442465413987468177141045319644396005114422542237898698654380972574997643659577021749615824660056866210086715023480179520714581528437118121817042951309584086404860877410863201812736410130662435260635503936315121043751260069207142020794789883759159616429512152591182486589910876809744762521934680151707945638556141274914914110185203747411845267808241502527486430162348669825558909788025054406848782255978718666320035127738176683920068789500632725346840296349841048509764515087293813173988188062651595124025783142377519186221276984200102829798720194297759086581746984529254047318885497290353750747963449169253143462137813812694697351013295745829349120314898095434012206101483541526232827181640973511520168462337212723964912526067567475201412406705436159197278143468649678176603997793048158032504284833080931279994211403390959926948629355085462223342139064224644251829999161495080400534386126839686498492990585568819678328423720331679635843828735096015512196535016319245809554143364980753151564272483091065696339602486055146160451522296741286163379024867039900185664512452583921294413067696649184376253926029102511089768440559351983550534317135824790358917739600978577819922659442295349951708519562532355086773985769573903296549160223364622950900462200247771380443621784431486041750718661859573641806698138543862134501445172940458167607992848190538597473838685417925890702925964505010535231335496405249671716997221020156794284059353923088641775019794746992210626377589312824288156691530988219008121509838495155445268939184331234937145955062556249848722005482492255884289179062570547051380455797013513375776777814220228406052903358418168558220262868956830207885140648627479561835003626930128298102320706832195249567450381136888451324918796866098240382117707358624275043377395280197977090034665624560382534095599414321624614095220315200803919086650595764733340588085743039018194867564555695026895109410924075874273282686883489350922604338512825572315753811716938575388906499820766985187919886706696216264069001871309284939621587251446657054885485183387766954316587657607456112660241148308475497718366441118203714509842747052940774948888159854852374366336453713412822218786763973040307032475991181553520360277219577472542615347666362433558460908557660941504911726654009777862426942308344886840612179818158170291800144454242843999991212912976140187791834366655254751207151187666157312686314484456164004213765970326799714548700736264778915500011116500883336971458288939599676751406009190069621293164731696422524647246290154289848449147849500708265666994916996892927297791001164856912711462543058215821472324551462451237068487143204163068732748028405643895336151155590428610148518360802260910332456990596403857494900626236381961904713522383371402821391137561288431046392919097273458378406700507717342079006671514499037074302743466197429904675740130159128498888213562612765867684650772369651045639796882908140777678159726897394571530899723224893533944482133876531154750553278527208614659403766809168670236791666030000101344037276275612482761639863227869021714080473076013599163854363215029893831135677712502443528533486309381337178913778416567434133779644626516294539431246186969470457344321777638531930423418349254101338869386819993690458831930017792047921132197813257181691606185238898445794419379112182899525225141461505228760887723665444835426795306621754354875614158276197028817999928822668417868339549829311589263565552625539825527577205556044902118850025752328217536678514446335130650087500851215257264817838718149164559690766976000053901557601644516226639469686581750468748392897974693558474537878945954068199126901277867807169922353820557874716362939020907930653181673950012096592753121726426944322432602153936573027648819533913085544839636128238296152082944629884268098866217548322794419914918614038460790597484525829799546826423633637038962531822364457242507546665367381405700575569358590145717123223590705398618736598052988533016668373584975697024382378987948388150695520309173552189811720868159269062408847198821253526229314951574416692680896334259702372338908547916992207020664126627208961927391009759987052893419475106587964988363480038352217210979826884469097497504178088559702705491435543530964434983563794180520420478083947685989415507821401846062951260499704681407290568996875998608149051799925356949811103453085176851347122286957239791095277227484764215810887142906871507681232769237556380457780423546137497908487192184287809214735353550314735770974106084708139329457808707481158552837816910230357563538416441656797117380715196529419444241546037244113783287305292065983918097343059369423061394590540070616974833880495662768868457939342333780777660265046723200380675986185651325211385515850984017036770215273643433447850941711576237277006733097236857817186295266553148781248452863579135681681221942840341127156372749082348949330759724847734501203222982352533925406911322336758575920836257104587983203076938906880442905203032570278236675037960908544563016938196396290393857170809874466550290395325777823186510970960947741192591725731431649828295057454155052657993788510468337108725126215936725767404734297988492752433840376546118804406553500871478783650151947545748854789341240107704352327821503281479897506504241230367360929955962694636851319648046635695814074448709694107396763070177237104061090932004493756691202646023359651895396170776743098456022439445695912825868058194225057093432093344118790870747152837617257498494857798015550426060628610161564044890675741798719829741650583650173163850855269405165629138160112756994337320059224788393252474350692612346363237287363734233038675937835869820735202538839069130348414874246591591583825013375694209555844666150928511997435079402991034162394386811762567610496824579322723261696950351988782923033735662993248311501678932884421262240615254800327999477017014169525386419392931236618260565698586092263432213428333442586424055721779863113763832547280351305220549949483508819963022276544286764382354340839766254035226051035149936253300597473841476279439029831859458641579517206266978620698938943566259869980585451701280208598548322997126528057164057942179994020173597095811440393359044466738254624790861369691190909125759683659088365830663958771972728177652388476210548919220804993479245054546235500668443288773709275855214312372067749777878955122420655597758513228982369147966136982389490791309726074849283858877551345298077287217786836002746346794464041043178113155199211194985898490752660757883977205519707800267739474629159707275383622757069607658325036290334786093427604599961890357164015860851326425354239166382570983884528965550860546676643534600357598061724793948987990421278905732876654927883605966203962053002188457924843692226641869834594048666892302707657895901126628661898066224397665664933726401966314373942526265565866173807945902789588829051984435966351919874109199235216167159573040672769900953191069914723936737015506447743777234081644700452759478284255867408423784829957770170084006051706363904526679765387817981622792524267546549738814667618633564870862845196900375841561274662922284490317788329067389730377699934353586350805190527455774888582391598347321330368527256716728138072321857647175631754076090098854105785794499359320449237002668673740872184383376352844883227305184689244591169467160918990068387904151752121220138741206849511650439304873936504786057729631068021262728482237587183222184129314169302541455150925356556888382957193083933261549652740241200773829663339316822193618956205195853324598340148005844868959991352544483110311211896142471766336798161192514563677187833520623013312934685004132854693333950514547571361028226456528521820236603914368823123176237251838925713137341074264629020314690940443287165756370683153375606731814217164738279233217853345371397758215431136449234979298430899003073350357987275989635978001198761211602240740711470812590637475311606127119542417857040852252982997563790460947224831985820655407654435077077560363292283908511516434523246683632299555729800046878620109088779789180919976365006723939776748996978315356244245938062409744224180135959133526462213821126031503035139981117645338893202782900724911393491570986210664756157872554055984292098987016000528616042459923963952214492571914628415182872242719283446297429621321036495900481676014870010936870265450793524802428869428943603038377238087228140342808570496902648876944790169682876330891857711335243888234175834215668469466579602497836250367336625900453740404693200850586194202857662215077682462630419306348886455755617316319031089474821740976238364742312820152702479140899186816537632869071556357115297596480749306146633511752110739046440913989269252969619172218486028482256118756548385001896683775607763579482397593955422699223482047262887372458115031431989218628580449701736115355585257557245627070442059482449854688541332888046951434974404342650024407758300946780574771956060905605485846398377299951169968412024284616783734170976068093341596969908137447670555827938932573435342457289311580795641836888416843906757818447850212875021412159710842491779972716902077775960101059244385135444273052084074213061922778734360995546966271297279851123919756379086881351410005868005934809003998624111731549692713105850871463579027195027913212209566774778314552209792605731840690072297778113313851457060814050870274331020415472687918102619644397675745946495724519172799886395610113436153065924302535543418154626909745777751820295359693879599855263269172284741308822758137827393681550266570672044413941885146470835275876953853783138410868284449309206035544924949554039467979725801391459343298999069193269003847829307685655943527622844947992208148256305365734529284994710233403948272272871885814286341093175381760606322397838030213005145387792821441961496653992732166180116098381644075779650633654229208045442063558471777966632524506684602702630166598511012173792578677299063908815329037613364390661866247928216102290253069430933652129679171606918740857763306429571110703031343546159688502087902474029505800772871430668848319237956473056547353820740405660541450215184111356168003878162006903172677631899225750826386551314411827082567996394560519938479153462304285902104666370440098602983356425124937796306443247633995979505887224301984523123549685650593736611179608601722660481846341017557546876443614671796949754038462403834799187657749189988716598866178065156687876277665248491071967323747385028371791657234654633196788634823849436424892520962702466939817799072313815933261979677601438020973309035878552157890147072342191529257854102205080587286322182408712887241939493007390864018924299053360832141424734492673944511894745420363435400250132791406330551083769710061423364812479882480780072137131960634166965195510967945127645666078519804937078128419342969347610975662322957488774609317445635369772522786369918171869707107522485573441877488682687619846015290056367126851467257046124953708409004596965280194879203109760248288030114347364368582298917178138140088071034227945116308029239903159926556693225635475026072104805724182309044392848296189183586374616712393948676740426876866716497363105472355976682764925253857127002358648180890910310457702474931366393198510973340268510980397586732487523642276846163728447742404732546246152941062730445536198882030251928964712267268538907515451194547502023683237632797765725322354176916568889483919960305086010197808067284006968475511609789642349552559271815605727678106010763458213917527064236857702635401050297796703468338554231338543495055287686852847999074085183450910679115886332151934548243916505595075195437077085800980045021807510501488971087892115710724313510613673099494507987242298828517372568441469068959153983586646336791635759764983817863759185658221000559667570623730736876069344526778691908879515440488657840590255594762833288223361927475263434815579562989521189468010827693637078415839850188836663587663761906360144429388998463754074792388507036258330562945372864056731437566000766990309108385357576184597676340324252093552753659705882462419008543439917838218890140360264975026896501449915346661785033488488803747239602313562806466456464987661932705544865556427799219714406865247123491334467338732287056141434323720147782094808717569926433598464123559941489781739477159590894589559650019690165657441744279494278232631924738854052548890610409793049476155171199251755361414338011734521054737407923388259588226414463533333311630237063152739847772431683730109424902246513066572819831545241545915552985286039084893075332186760006727086263757507989993022311164512876790558523072827472347299431535848717731790126977189251874727555839402982584584717940331912751066771165014319633691084348596638178281057907306271920720621956634175261096460299227998026778106711974488184263062231903104214253682339084815193989729180600471932655849426883419085888033939024737558823583549387300320765497481979670572905621092943926510600413865325488114291015370266201044345941064785334469309153866494777525569197005167842607531705756863998943072265412595434724903145280675268359692129799469193100658685180677038288967689294196911423517720969175611182920722098818917729091047189496628468243034084877451589770901571598439698875920555494702769330226844136080679191107029874212982801307477892907156629776434194351263704458045828045952392597068403593427953975896835881511504421717426384441753015488271764510977164596457991027471328195290204247351862128310919910490016468071956906084080574611859146845158318962138889879088815769068881977012865864326862137209941359019515169690794973408672804328714512669403015918444142475273680887528963797194072534336376766443850423007513978355061755163766064715875102671180839825009044160230148626313229773574305120076730454107901766530500508277609959637877750192032960372623368547552889709583872135572063912211118325529303313726497507827598590668978710578499447089517639939010663403201799813665422868010703394782137843594995537361467337724202825302587924623406105591767309479263196969682401807843198565575726574459778388909173764967580022848601017887875466637511686359918422278547876992609086298708583684860411486535746279607400614007584155934505314283706350696598957060416471936199463751434945761094342124541252715385171298552082085588501456197938650756495730028686037626581941652212148506805616343822552333547421558249339025798882756751896946742346992173354339041986181981719624394637600315907539977496188623385378841521880544732090835825085211793581606619847056796270742172515547763408205274998172081127197345056572337861425263608525624439592606456449464470088958474182551014753091784425845594555183397518804845681249874224148959487504839623364111125272014184701465878698215584158787364650640985417642038615608488637796582379792481921655447588017908426412970614106900356512699686841303224846258786677442864168360364307267102464913988688839979136049653812029060383457700554107886363859567753223432125381367695890536534567229843655968407758216172977868890891505489536796859373815353298907166182955783823519977108629496500633541517950040698032426235954055067031662954960555139308913100686939218290537404265680120760039803007442964755477054745671747191705548904673340867195057673471203467258897257360088537863525715812338054717827056634287379632684342120831518484337531310666661781755723199066958605944630832458259869996457398135551728458342082367402381406754461294349372000322149346869749995894977862908285316555851449869606428478235694250501757658964927352801583662032117345696442151147419490026749794046209784476172295249870248246336099207280826616464662864024318674725226400345418101163427556672603056417455366934213785285857529538329189385849742256202795378992565101656180528175627762000280513476576343131282913450819627038006679415914523072004327798339609123762285907278016971157668966214106767286462355295915085805690405550666487091670588744064566256139294198815189025356526836049493815751038443478536767553152347357395354844916414318260912449533924105649838329563263076102612539690070068856301139408064296394557067852729263162936086711784831706752470773677558199628204326867400719617737705828894582668152826404395728256801644236003357324399660487465326382254447843082227960504939463986187310716594332442089710377011611402671045508325166716231466094870078007616187929461163895215624246885479473421379310975643752120224920831774345945138576158758014487476755909853416989627527301126961115767596980604730967610897441725016611604126451541347286723175695415591573445716557592422455582436479730273719005763621960700486166551719072753586986474069999079878776356627551210710893616573372689802908934229795715209236491057181614661394519280278951821398266331188515692803201541599534083297798933320689177836527337658075259323120221973163018408172231303547458425034668722989438059708355089219447860974606103583265876334955663284938424202458671981178631093132416777476075669636213588428707978378251299881508822158995056307755386209331571520118690495104410473413999377214088913780651738279570966980993236859456463621174305610993722390206004671833295531587433588794871400630822903511217524502360388664496763163622409257192257160993067120025772871093527677449377833023185434155497420327159048335446577340288302934586621374387651673048684530443563343600853004841430694723201971614821719270690774021477822851209301264608245361966388144888110939851172671626323730413544878194946495960896523234819349758607786981301874253924787662491965662441456265826648459910742449429963179015156450593851295255103514914829704290505532476274766412522005265970091872009344380961629490325814370305882952238410865622569944062578538134482239943459104423951492482140639325064706156060778019073445000583749430152812177025713732869857284546521030534184970911786499863824818089198359770527310500085698604524234739525561623545653972677660506284687657170143868710631746649665518047270182125781824332445969469312068089712795570822561434035536429462094720400659394735473791122079297816959831319626296052816588885253965995125957595086900338886499016077568399442882448497430010475917700336646354074683753026729011053505158548981875570307940622133287707179500757793904695841308190931088375530026009186607019511579281332850051107938103994282516018965883557706959863995225752918962265942904474081781112583607127562456000990261574327171328724642538937712873222457083088056051329583862691441393890403672159780995272428542895763893489671371486995181231647416226001814929643759498761705570334689484244998342191308672584699540297403937487888425191675144799028153135333469993641116967292904464642000692810189506437170404290581492484916987191278458526148477129541352065548360165536583463102106715504126745779816770740164293193515631939514879567078754755397754433725619424847551456667698807135530972497170855368759455071099525060351559759976605918913505141749670095169431098025260753494472273274412072849692740762472623350222588883937058551840017800877373193720491156763485646810440688232696648269063966880000429970683096686996925919640321495094629846484870945410389107560560702711021912282235749881168254076995014030671825073983753775428555293236923142797140308437794967918204985789066263601000935587314219127671521331733733846625567063839759415304281230403390434726954468756716472410405352014696742343474029642514825657793964831347326786723342980194991310463037325539822612968157484811762313012953048926748508666153383919647010030432107285134757408201187422290799514283854673282483047639850374471792114582128461621246157178263347675944571474977429989858560190417695888814664798358456373775837453742937987011970880420220889535793934129408135362212994815933846321343844305465586147220843146222760875838596655303017540017463370413195492743046683327914222556045539485379780262636623548228159673148209145471271661299955323467691840358124959782985686557617485014070544391498825964443408475030755780830636264972413183679490894613670818167796058957486624002193363635404136042251790752310850963021278635612837616694453245077922207074282432966155122944142617013586542198008762380376201299378851222540607927681360427326616520796311436576096901180198455677752242492423535806492223942691623451960201166716880075538869357878933499633912116174984130225815464811727011081673955245940555064281946024296451763344703684394779717438465378054631921136721796607256954084083928244631003772475665969095078386520098389597491107290492820825661894690974329905763603617517369917701590554626020988667297743643191471358951031364824617535476680466149741316444865541328186161034619030862634528751699843985659392777089469804436440597474047946930798346724312950185143542005577422528114572943082313097580520317507668677080189543920640303828623557094991370886507414814583433412497103470502443456704855811159810217434771264927131609478955692706213217180057775272821179953216217759212544927578511831683975650376931320162725802091413190092457905148634726493847765010168473395203771310317028084124806186249470606217416165794578224947985110530513921611451808713698754037161886094942032303957880330897810746542935107996048910503346622326453277680288308798617877445063631147269802397941452136416512187894481174617993702935252539326161421467369548281182515849305110256506612401652604141915291526665219742693476015485056561689658503716463284579610193638961876919234992100705230058817023113529435110395313834100337085378195322738079173945491945389447863580203723785236831787356433459918408801020753084204861512747111649346211331350493626811594770363884807693028266863373202884322913029955178808809550462328675785126011006222083235890587410377879978397767095039121682836074509528615348603917029669804467717152321260500405161948862745897618223314356719517588772237425301716770749713900783143130866231606836566541463967079864551412113737050055450050026609469361576812803065575411351248509775445124569578026341315176846078977200683004175328387194591695523894904210800149465956774405511435072759254536043629263321179856019972300872327194660774656910566856972350003868321567856392991989205407897657997298976650473946381914052026912761220467983884117229925055279470593876145022420600591995450551926940679684921964637723990610590018508641314437658235957444830973473840500414003984662946843101912066384040951901172480938228704975134932110186501978879439047529580783066005495993001918648328838797447186003833907667490855995831157995850538169617932549624941820596930543585016639051417741842705930128033351612444362741184712279519836571322490652877058362926738737300944076749519834842947573780940271212138764770022438014121046319670250044632913259462189793625157459907953356969943327733847477505003854067614436881009395101219807375704031293597717467690573574322923135336345419566673663287526174492024795655593922641609468944897698678544766531301843102805446040170385840225644322375810049139243800082096925061273006182435938778979913612181491261503657764959338765148550034867479514556099364305933170340525810163093492569116544403520876655285136515270085577641291121255311350517514685831681681173058911836793414757672907248680419172485583329545027602395807791269109478411568342083472394773345446984221309288948185206204964144018374018131541828904119275529538561304228835876891434879733559597569926357860844306675638837450762964154903394843832971166467118122139374221555693853939355772486605206193401245573303530793382499822423577562841321287311385461304321377907283444374630775266751717500424673656985947767674551326762423352569488475613085410310402854175917295697749462680388915387060524523030197156310040017307831700776119470727800840166442842862740348810573011578483046320346198852542269934559599039622241167661730597231574039018639687930306077442119959736317370121845146162179387516535898299953407386329750507738989222279957571951188883269123320431110988275304425977756905610441484996745090149802543895922133265620499412138145414862028876062602400014664326828610722445107566026476248315546988414936826095346953156383631863675293565380162610368783805310479023396502927301808388093221608390839066208849881680930653456205605503777837149390056071669421694901858864210793484929610395079851485931038481411600895691145995138857186808571435324846664911484676500842795544104923736084297292193660871888351544093031829621797401498578068222619169608291465300133514224712569913385516222774338817837761420580636718444626841836719255204152733488691507261399328693264132897095589683162486018705346843328966906797387859783886257178347350024386769418766982194868390741688985473035718715517800006269557670928910005558300341853347962748422959699660901761546312870821581592881023342687600792928678627097546186034336110708527614083911477141815362245864386406553434262667777971256534351411189241108038435535668389100628583330701970889535849558829872036055950409793873077651853776986315723119631641642911686327630903952176047397380946144709746209508393647706362008431057151035243434625979552478864081418655701785133503776393114001030999103484139052019254602901030798614676551281529467847804635923446735609311151834975626189013908981529423355304480303901819359714527564360944392132699051580885847835513709103412517266053513497187199033547430198968894366319883015879944496680230828736198579827387889098562656817377057878650742067579315878329751828855083021050039226724097500507904220104588244239676479581180365647061330951332294514766635118637461995751029811260250760916905329121906930160223319126430578859637706352885307833092466978929313516072138056711147279773682950448146235628148234067498086003310172292929767159884872862289650222981942947798775531997871531239794365561446897245190245927261744673178146670543968233529353611655005531291768783866345124125800838949668063096246955834481111989497838272146241453185701888552308813846254110487661449869857485616779606990361553748978715399031229753957556712895969092641227651625717022645409371929230543067917174508177109772908268479456730938154540812105071062680452886723781656025832480638892200859204353809914266988869858934444942714596345841853495107064722132225313650781008404425273772565065291274472315917086728367689404338303648245624285203231005732064927552200035718718957574421927255533154326695771219423598519026220217795381927386574719031662063850463441807761515061786034032999074810148860713068224832456197559916351533487029962652950143084692989416798409237549227894717133100313021847328333654436522187856890513927005909315015649143427329909676658577610269440034543120564514296038740262179297784566185971765823645148459378178963207796219027151424182683912682762911458697464019879483630634038119526168236167579085547160857663772473572989790394842482414136816151786308501734798609568566361775373632953147530097725351439983473132199448390828517731025882291053899716152375253641867183127644723021515591310722673054603589735606236306592754387161562101689264685627637894943402131567013233893180360089936340034312882565051069685082830204167029904637604433365743950368084246122996389875286280987949789406945966442018119343229199559140531485031054736753952139211212900648896366683637579908531052550426289557205844259719270229381249271836733552512813955494427337626193600815338912402959800582414985358407505291572657063466759133920714318043520722284780832835454569887751216870755334163834386729394051562907563357278781138567068430983880182404759048155206811595649631429157691380658328192747591059354920373013914543461395955151438779811183951379716711385502620037072440513463830556731723008654872295635349225853757180442507231749043132132421497166612353846293641740699253076109002088402980205782941042110089670591486160088196053490213781509357484311433360981155518384762934548130678613108220871287997045812533866943054712243818277906961043560860329444241106037281643026523898448095441657364367135691199629182563979341401270205589760618789637600061812346341802954336100507282207791034624097496629420808463944553736821439791461063816721850334302634919688807838559249973753837791929930746558046609801888048196688574528964546675074825619561883394034620709576381213257678625991929083873968382399628375757198191299481776567370858652846045063705128473416257594116653069911669201087422931734171122134455068797638548528296225404986852810064130080925959071736602612284791022330761398795542524694413568247812093551256794004708028987679937611310552562639095808753191393425549496784282088744489164927137614996073122851941449518743790308560484239585820933419484373977068501096540851382421176020996904420363522999579495512084153951207303540276463261580673418216082275973964335246591664412071566753435196324360292970622289309283054077511495119635905672700782371039871072910979444244385976391563693223670289187530466290215154398815047673586918888543840309267320721568948602943947204963845992092821486870153944607949256125394130091591738016340153343283151385691209852309387164363574036648263168858784117625098703318489355614617153842247846455936488457814172649829734629062693281268045648758751339362592237995507142557505844155742864348833224749926857222945006931529980776338551152043821470948147842454028076598679230176732572100263241622427650752379714350047143411623668452607044127163579849996164796486308030165751793708716189651868894167379418826587834344515485570937908466802682573990096030206323938929795028314229479236926843708364789910063734674359583586825990681206334026998733854168789862840735396047736452035989563545838529505443421661441728580228343389021133357996427731769964091464734139683535603869012219224569680289685992001359959957240044263297411959585278408473980593052514058037450929689175310137537344905956149899678359389907374090351658024323865069516181791092437303946985966253095689131708316870928411712298745690219019801850553477979917504459788248544276012445028438240390954449222701919193352766344793024120072387836151893033700801769199402189706427522009149346663443684329731537925770269727264987011340820799094998591242219967365576046022082569448496353479305140867664367213809874862688216540822156415634265717102677080328348608532863187305360917560283639919084375788738258001128328917374768095604350356402908353738569302040699343832065988536132891068215205899120439277518224987541722923948967019262989905490542373051992041120946546628510005220923039836021865033612795924264880551709746384136241728222102904847532777341565270165084967216501417571182962308032346496500881734492955251806302590209273589758890702733817932819540706342765216842191191220148128002016106742966610761004286935246461651578654158674725392128437985989179036308409613198126642206652744387317065515049003401645181264106901813156214349199399798414896370649584354888229662857881600349229713051779876616895337621071823184050991392320833386170806322398147027003117868523903721595390590062315957131564842082028011736635145691577389718787594145250443474177328016485154163745009705210009432166570550920428835375690796391797499503905029308743096685650885250464950962721893387533665353856120506755910655718718439360895797179898816156187454330824168069551168358360150454112459256715975301090618394063509275620458750340894097483933193264192195398897671441633819422280402069343324885002377509058492707288821004672834967818397859453179678064681442403861164185347109169359076802597084717536154517166392024672094895169161669708213827885736223105320344621826697630850993988170344144580807767932576430259350093894934552673348883482028867580452017089750870258494733851723210590887095350901027743426898671428699958856314421682254570557440620888446865820478992982434675673106660751815244232085403028611585602978163508824778897513131951583104933983046407944505437884928421082446658581131279145915644355287215291649013183371870392949120435543888806325019588479614642887280482745833367636349187549905769474364432137310135971533257062366584879120173792606093127341333900856597951358423375970691727936599232569960249032064213691758767400949866436920010327861643231055007432424303689120456774189808570938041616944912799556258773189214321132088565314923118843430996063367724795089562636316578706260394388475382386525818754682362927258334610450555129694643413183909135846539102745185393644101671231945920443558792481942268900749881798309576428564024384419315686927103315949137510258804459086950376401951598842247249418786495973875212983184780449076380444265591443387806599152040057672213582199512730324523153311354205633399397360224072972200281750557867734745069314086693470390498678814108020627890084844371833002244488276121826594365502015440741665574678167706804198400341765678353627433212239900297953446614438961611718898036748842137578638397549259156325912785250351661547904299382245005832293519056269771829418643150421741465206998455672264577921547118322756941636317056973113279402809449496280354364077059649556761168268645554040635163801085582975031389986337357956971193921825831930821262358342494307064190692728137522401587460825671948301514124928874766731869897425423778737788107592387282522751468786789413599934593858632568032923091347961024650608845133704271973103515641603890629608226361356932674108558608355941408485341031251192702430928665392641694187478729072576557905745013467689970926057340066733160519643787468688367168953527322005432136174222674008707720759510799196123900440989542929274435522184619931582562447972951395041843965348982617142253271062039135965908903105391735538738359024573157878573758592005652994593834892065282856492406228941482956081266117139750455965312786390998247782845478611444146672778211638427785195499723020540173167713284919458299481418338470179705519079777327156150394628365797289826682171744555927015268478219555115086931920653037974701715111534506112535018333284085140272098407463285907656231637353400243717930896565579095669626803039913805960196604204157001848764169863962315374712913243045469600961754316840784891971323132761368215931424067678525793286588961748940495446623155153581833916941025134527488592517170317717176060757535881234644863906637523669032913624365664140303685536991779751693186763423824083086955879683071533178812691109953392300308424950298966093277351019640310682205022624035430447055263042876144707527265234737564321666935557929128546562272999515595638545316010895602271607276726860416001072078971686824024771459967102953147411422392147690160276164660329279117326733051960370746092312280567945743349658084892852756917251257395649463490128277890569988438716495479939762463242863095544731977959306909786755510853081984172221387498226193267410053426790835345873349925407040137663192959060821694543397470752641508384523850520858557216003544427750867842058976046326997915278325117807328371407044163796996767768828803473085700036621805808637404278149023688456296887096892816069993418655232192813377676438762708556754102089261498776606370045826720489163597482098708415842131509179530253530562567594383412624359891954914103923722609611498862218977022639323602024660543295898391122799431592486937150146070725976315294744339451567778592100894419838144301172040933964469404745847461956881984482463714467918091834305199583614385865802061265172671014690652552378732675863155189711685698301348411832559176352381236712936594527025279559987066803366699698890850700122628458990338382697547163138478700502503468753337783265424697299354404671326195767399097338438040881129321543798390907981600932633465885267812045345457476880374017666943757624910222461273845885617568363349715120943570053879864861949310412339089606397962524506070558748232298821325934597207136984728101081838663081198741145175705838630485806079504905498683531928635009458329293915689924811995347939572861295109629111116518634566960719153617759394251411873470603795277252158063771327072121455354172277754732635981577532447905187894475007211085175107747831043940005921429799986663251067191540849459864600096179186490097273322279652603653485683438495537846083548482130529757040075615313027042094437872690736013582835696899440150770851016053772066830553228447869472165324032326784954705428657830640029551894009389404314535884213208127331076031475643594388874560983833398111564660243712485402071747885667069026047623434538278694234697724893064282016651370451462867935342355784298537646229913795183363335738366570016088687748720762250865788356923403592997718334244679866009233344241808751704218299302198831923943200336032017519218925080875807314704336126395483597782279346270212591706230031326160883204763251916616294915776736882627519562906674101506472893472097294527481875993876906799859219517996565219212878785520279398022421100816084461705201405560924480339186224561549436190091412492852593042407213168507095746663392830792016867259637149702861432485756254608052596877262894329422636150450895999198785212886137154175893384546590749548545890617473302385142757157186577753170461249003539421567728768048432108484372722026939121395596419660576937357467098289471796929347784144852879876569740593932318128986596157623878781341873540238516300499203995532414189145657134163980820538632010338493545552466454037343205324249774009092001726934142219885155450379584801777074320040835100493810809428625629026486356831263565321360529100605571026599956439040125078791977474864035518250774956168641212889597018083541684656012625543420721547100697514492904800379452081759805764076469324362332072369634352386789691262272635332857203886117159727231365129369370919829151738677788567007912351293426143631262725797655438467606283754649892781945120982236511126613927658276803809116717129454451616592835809585542308738090864204092797995123961961558771902770660423176095135043042151316226554246593790747343987869253984321640590366221328991539037275565932891698180453784228242732887762891988240777925265849358661393015446487030448798699039158286976966737676322296338945706033544877203820331199082607468677435578847350326448375742554307148701119207611132992303112958521926827899463948942208982132427417815722403262707387648245785779199826844787287681882773834321085782009357734131115796850233644790619120819763499640587433135035289068567942376896078240673136058533861880271222730124358296280135299042291615938115284454571687994578570920235717348208832159643650210454482337403443234929747234672008972299042358836550423753101549156324596198523407182459456446638113683398918924072712388870573460040003180640166006389376165822836578606643325251673133796983620953069797040766047683816156042231030767760338515790028952877622006857537268827683154856550019659321495399991884909737839695035749605170468671424185472281578770425083985002247728167227603419847533753278247631398378098126166658320482395418041816925564369056745107463366798360095434301036278819596603506374722361309975866685744923993467407405362885397263315684056770897971429631737882813410760241305382462703396095676902872062642074791530279842095763439907316309554480804957797078587978042293803733334745157974686945319375797911140379238397191989575797277439185331824398368541076252045686708774641692973458934483069682516332219300705400651459464952323544298526297103631631930564544640483177207101633208905218719107312811551008722692776498472224885775295591880294871496396776750998618295591225074230982290943184272301248047419833868950361515787253670984907054910362743174784318968630805052298201031431997549835559659923431057424799166731292081627236746437043985034927846773388890339201562133899194871112128540513185984074858288289708061282794257217198924829800692410867237287530422806311986987473853458643789429613965110182828999380746102972439410747592047738673964782558274157912081213890797440971042473531638132122909332393517990774454261365915911770261060947062649097748533245036081902732135490389048123488489022862142225911261030218027440228376380168789065242434726308590442829905811179226641791780044139319825525005643177163447236810489293376617087094695845544424638635860119619193330625003178782544367297263113234592561328530519739180163751466923328632055655450148029687523198304453915127612928468504219599555578246910229416283141454235328876525226798178944798901283087997908990488575213608693082740910010576904680668275750109865725338560650364587377455490876867989602375616608382682974347759176892774079910169150522740010207872635688191654967594000869242252470633402262796256292951835501472299357907972514596487093218665826268856534826111288014874713595892788119534860769922829975121362999028695069205203914360203598209765950786261105751610872972765089796149734833146659096395673993377584291457270558945672766270480948758987831677495632770668173356489889732111967968115762455160405402703627654358535852658936544060333170207501204177678166197126084355729701698181980847120156525716826967068975454297055357924878760981432415603124141531257440505888646096752280655809064465920612306760851573452738819602259375827850191046354870547991521480558727970434594291185541389488397007726452437556071132488597796291277556295081244967797476359013326579197994317190289996706478075377616771137779662436713089133279474351042059420315806455585277363791911496695108268719676404259009870452899477706833971230877841527001942543035828672374167081848285501078044258679734581091951136285199374773736574936118112606183987141897740274773348288126471619722716096213011340843665366324375371689517881849021430404007736233046887775042343700820835723435098345912257194583429610325662909117332247914200847119923140576722767953338073224076466793365535296819062134807241106679052800430462003786298820744335878670814344477769204602620775217069437114991030428106306737094087920876414826708058331913193121632441354447992228031325184700364621408655102185996173883807331261816414797491534742216398728648945294053508544332656007331091591009791040280395744620020077799554786996018696400113296816941560260505972571222730393295208385245512951283880820007063969066084003022833025074785681601777331395748701805012808743841603356360206157852728414011364600300824766034133336430695586215604032568866743395197606781773675167694063737985383405284158306373683988954270354253185298810031261932845696153897157689003907463717203545007565649582963255414314182498938377612877563537560747902544079174395414087361336834047113796022983305072710122151565624551932638373784597300677283062937718635244568958338268135791548119161560898099479008216240637932564305557472076987572341389016726412021255250087381982662701957842815784210307047804154955915436172225821012800862745555229823704700079325708945352647597708591208051670274176081066508081088132572376206487340590175302568472215481330017630465090452520532971530078259088629777333747389712163926177563599828178396821369122129935620313835939092965067547776331161966962318952432600345208416126115150358799571814035781547865952733541238393500804949750354540510509057541765625949446372322524744698036360566292046790794635039249984368888749326369744831712468485903793759230835193284974254839400141149788298070708807000384496559026473655349751525157112594685226554225104757015157268808250388647460594133428395037273969699770839071994573975760435172959969055373669882110563736539428789193064430359918015439785562543472348328091600493534182490219005991409434275469716577628302553507100229411806067385477217241157225678632113936413886973663066743604854355055120541824068880969256337964565514000875296625917271896507094612049336638053202073685822396228800471895489369161666379932387164026727079691929656245896332621252898000047191245983589246490415128476816322716849403013940469989734933771984906488320822912574453997252694988246590958097423785596415454869408027000820118324981687842727745405866573691639590201259751426929832069907702046028489297326151576307700410382231256065675999039039294227203712940316468127884579138001921564194556371183742579249310052577090504435801827851795635812467416613781283552460663623816589700698554628689366509361682937118382177895053619500369997835097269790323731082442387360629704656579603565770159338405278635723496871466718892964995214424877289543856977001708414573283125185843851456498052745773006019955462961235320680243203737703890462629677100855189879878060945221489814998958580623453644253499723323455271834169993704642721617590989512859891506993229344169824329121878776332844552082625427844923181215970782991158305183557787254142797706452216101643480553931978411038717723542267691885059043538322214382595083136626635272881485300216070654313830719797621254652589787719598307151702082937621364398622612341526504279281455829991971016969855711281671259812132979349522624132570388138957298550143054108350193938339867283052229562968365657606145781371366702773412476977636548284178812430876756918982768346172725097533426789436667420533808610688270034632531963897807845233660844187397509564124142728973856590887665869259410744854134121943512494934948970207988567017763322325825237855583495656106604409527021471500305892724323998472217911288867008345577132638614578952642805186286267855054684417531676316123930550105555138527010524153138111350540539508989425245338939283151079696439445707206294801682375988828873072911053255880051962227935253229653546607521427553773897673462564902693512738685603758252158940604986263125628290279975593796107692296448933452045147935180934305857105634587046540778342789360292456975783849681439281795917384985259646222265442591233455713997404521634908346220582573939562286260108736292358701083937399029492791085043105277057548188631102800727445698134590355272029638997490682704918327437778214950089048157347016450395041737220988280096879984328409216558540891991555438363051546227104197720797388289109268477655610837501953196056579490552722639980907724779716279979495584313852986907281983145829071589909520369807776854369283816462669448132068027138003300232192230843011195459301180350727668290512811078664154611966553560885933267009517131941745058359036289142142876890361268534239363050885405618626500105693069562952104444796932714605907814741439833756695809727115647711766531051651196728328080610422325772734284203520269828933820962919465435868180128961257340603563179651435160950492154489750388526680224682039954888495298365390425978199228380385316934623300367956069381145490594419245687872952850492030703149971912035785956015415878524523547386062470337511776705758231292536846825689704230168925435702059824665701241978126908179407492845682446243444214770896950771635293114062185819447464978202992161463454924114029091072616190018966647367825252495538576785952200994654140465442624888109904397506998955853914813521276475612134286292345685930590516368095437884589902963615440102477063841193753042350187273814126582671908294962788487744997858195876207052601164080679096366643306602640384733520917552391412246889458086345225426880939037619019392806297221933718269767087558525457345676791017552838765400720637810584576830171455934124652992346034256848093052676723933810449783333580596108897112970153229663869560681447239656528749220986240003197767208345922769615412545348074611717550252882957424390671403618670048952143245165980633116386498850830799282788849194562963696279164221769814500893076305833659535935098835095444986919564660799109550389180338717736606667422547286083847825314383884398412499937144162740375117484303729328507819897788772162611198369215548926625980705750866970957381244521944029589946173336552186853975162363462438580506225599977798937267008343315334461371247799477849885418346938552016491296629239123726548872738672444747125922131859222922356725036596012707069828026070821365331214527287315741499575231245966245089872996245457258624782417915949854194760974721522021406929499203862144768159402681907714751930016289629639123879495689073317859507821060777043725766957116046431907341759990832783460879533987229173034773721580456295419000606921893653994664510020817145700341002679755634461567896815764963664324286753812526391541243527854474257438471890034891197114328779407866292468014565569357411479897001531738488006247282313090562557638098585081988406929293791313845275529567796463953936131072988642538284312755818439703962606487415753178339773827105278381104522715880309211674793612170459862944043479002644088232650022855390372367472260003724590396762455490513808537700001240207289146486657734093153541099490971927694152340628260755032894241656078286030247469069109090431640616601674570684127084714413060527982904881961432928315686077490928128550942807397089662216373279362426616981574283835748413605774425659577659611609065980812942113600714056613713244188268315791436400111829391544821127468712128885182021190872817737499276755730706741489693302498930138128564564550611812307783768696231186832888043602749540570154233897277830078245350656329649553724764832814225271030571079001962848072874291585169100355166566047969630594248269257481454595358593529324182510282215200922407017246909603261555939811093680422627825537931822726448282362137830935636986330746178886919383732523136897844790752944595646473814405976338059764025459714569999699738136432334703009894975820600094545273774915499729494395522368975366648066454970004713291436335047347859675369391288882709708354625572724026950331780022377567650389227991569762065860067139741033980394944203590703900185740121463619071590165383283937077286910840541042421044775953424287418459699400690653449946309218338796733553906455662685184117088813124947800245241194246560036309742982031748189919487802763253326746031765952354740033554819693585267653841888748775478826263352626704336273091556166783157082364440216423141770299980190456976162780238169466826748077498962256084890318063147196874074713486396067604571297771502228936217733452802171818938123368561406627701447011763062854836280960984527151163295541056685580638519229259714367512192464553599256069135506263059647030266870204915448067717255643246853464889799490120719012710756549493720248718129321711733686887736537199483225043586672771129565155674859542318972121975187553433118997162730415185653815724207791230536818964934556533705116402053809114341280726717779980574111743272721090163499688303870560453804814858900114266494201495781242979578460334516082603610606986391506054665287663961204010929146941476852809899130850353921814127400696830157467984056998970834685967651848807448998591644686181897117965477675443238566665775302211685448499136985591412823463785856640593196454247914787914588763087581982552593238389107609655310004751375341591182313695631449235786609946836665740022822219518112899163337414337872755528277244241800285916045660295379901222657934335079411046687103077456802921844306444538418274531634839487689071026846893028665564959980324492285050816421746001165576557611750903256928956605607670900244771073741551770515110466207928584728072331533861573383660303451592962518674366055619857831270680479570743932667195093704332199909228908727482325183797461658836120348848783844735717128785952322597983640677222684091478996667289525975205848968467990527959445872641884112306949370795273870737199420114724721874070168893190915568645958620537577078483064416927308363690726102282190910073155704739740652591516036156459213149494697295973333342423878980336922594289840956475385742101102666678529490527730540646214979889178918791393040995961944698028743792018280827024974922907801653872376962672055534154366435136441776591399938352695227295564915801197728315564829552301464942341883473378598103648354589644151947466862854881388137885409476229806465522538626710082515809487399355199926822442223816807501417979245511187206228793243304444759650833444094076184851627571560960254378686824826172564118457847049954558970285642608300730959677304305609608022383118157135966942124647076889173424379492588852747021870882776793947005224968077873913173112847063253154249054355292122889821745505661427545908195262158974362584000812609611316066409700524372864823783584850889694234901009503664650741781045313156086233885421107506650596559784776038895172205103262091437303408433317909359409532398792103006701700261575687273140673368004537549160453759226876697052325717881352418924859146934409404212832985244387921860909169870024378413031432356689592486509821514400704810876532044096828042557751290890758682081417441224719969258794862737108285631994330959420691372064800121359349164749939012681499426418637960159326172762975405362656851608517812002849907771412553589485201057605141342190925263442662249347638068275884593482381077245666649602114296792939843340962545578507376400895802322144492741587517667889744706176330927509605647472335113731839157294682684610666877536622601145061301939341277185566760473388918575175200943839372523898550728959808807700446320172645268894713512309920665443547304437923481507088209732612071342248430674740601172835550624692912508759676968250814291097844691025243017512296613628250273572506243535343688685245595361724769522333213522081815000554480664901697469845792906522301778694954031523537644504704431132028188730999773423174564349082282836615254341140879852174292265502301377249036223643354335683171707755357175052734474484868927949197963004419714988114295280604753442721116429141967795037384845915338911442442162043796529323311633595985634798884568099940626014466798107457268902803736493162655629533206251032520239239270503044123768682606607653250727794121418981490350688031245066407758879689305295291166032113030843742606128914072913826793951559785525639150950950026349872950975071874405274508046114236440606537248463320710386093243178787258359647100223230049502461112226977015584126775785224592639384181893711378791927352472767963940504324807357584944223291800435423953469802947366042488931113106848939544282924215062494640145761596419671019450972453861812664880270536605767732615031135734582262104047466408713679904492439927157687331347107709061484339652201006224546118955972195518038317648295392023352073850635746603853324440958931725039570830500362993937925946881114303664760747339353586952220534602840717685135166378085757679430679228572796084958915327598158891790952282510876466924265171551344591373726764161076860543511994814458543294044044702494832676846320520285387765253873339035933747891378047391765783945610805434296514724355370097360738874496893908818863732503581712227667471358354116778309613330336503970872526575243515509660287508430601414882665060414509781536708407217377279382487824536018712103407203168918814960758338456784664413658617713718148636721059790209161907292173590675928303710110848300808187180647545806246502517413462738008251679224890519238047118952215890311818632025286303673212666178231692906867000632920498107344733702276306134921787832689134092888938487951027925575544576458387496903580112834216076726948430294103442796078722281860053877526884458799502261467315680828269049475289760171173621991824117661675535068241605474712730593614240278510225240973618438214205584734331619724229379005326686355816157603536093450376275610219903790656050835481605957208697658167069757122266083155425516413145473339658865190933376730265311850083261945856987618764040657425881157090160927067752761803631432404775647479768881796387290761065293560336932047055915421272372689278776966916044383488116399353089605464845036565080936241368152888109562994170523590462988059349952838727981117045904176330884170532910763184006226479364881650627622358272227257617000410606846776302078835415126352020591009126456382314217561568690809290869010398974800374215980886375710520605767870660492568611445622087736916744408757676573152518532308025749599569238274088491123739385391112930129336830357625363485498828362483646837331217087681086876313193742386421996986488912565860759894337367351499559449984996216359600264521237640177113290091022301124800648710299285116798153833891410484614739356521907492100641974778387509902423349870395989804444726055481968786835461155341751735450089771114224167732365427308989937995470818863176538988443276384223715635712442220654581151458226351052042225329775312935044761600562254737669705698437053728003319687142161897643830382130945031285151784957603956314449011404248973222769382067633322384465925921810371440169292234799056852698555204789069722104247385892456093575867602157723766380185944547017799614671718337024853020877208253055951537499787667876776707931336019959454163632739115902540027113651998778694388101655462592747448223344269120533516097291263171117605721937940711152133087946908618338761717690519341837595964960010689640235366487573732290481566490954333203227768550163906847682639562308363008107597622645380624158378926360850273169416778321072559385286723203968357917067030991260129050235615856582511597380752250512241977657167953756879376654140807809567981896252968439373939094918825971273319372397682024955277307324044353610246544980174542414432702814691660942797975619119261978806721928361051750504100485690411297411953199429107037669283855700758219901855515538775188744315109411777223959522371366138872026556858480967911126906835419973429589429394876153196652277637633735695455214686462304337411064620984019316166149117500755658537332776435834092159433267719793975593480815184969169031785750983977416102116906006319894218700718328646939283747516945434599093184976540270496323771931063043712309460359833394905989385963577254204794419941860463517450843716206693054793201295726118340599302263328800712790837594879550218692659636212470947328931144593626367661335269406580465318022640843421418563553275182648562894890226684787144550918378205736395726820289150913244917782100031268907151719692703245125598565249603454141464657429790977491406553424293809306249936408386101910354332124752698622069522219093676154514300257790625711849545575970111844805638366065701702256997344729515216604144164251467492932969323996923977101802070776366084387487532295991599197463228326074965679283620562714973700024737393559057082781156047087018901312328395888916181924473831809954091787878594417373736434204298522154859813911123270575200992687178233471703963251804184448075582205665810125790759252555853102668942108273530546017429358292056274375893564207272487006151652301288082326017845799168051138437658492920810706286302519863775864827209721599807580504340523543311644414733995124499047712971260368962135968809784161658836258133708001348270361853626526982020389740751025282449120515936179355076886996419889057077155560850939777403374537521415428786801493817324831189529645216032516876580446303503991585330063614160597544644290505379923572763759023378251365870938995961369059067875504956067325710232536990553436270008323649183795658095121018607087764815225059474101012710036006379088465938031226836900656791336197914509341916150609492866354018547469782084100675914188027207985586651882298205724020722876961590673721713508638906924706420367323417574165981461989695933329967261067702636483397790222712806749975879489599626769920628924807664388138965501362208762230751573522084384991755013674778825683952995894663598324207423633705580045586641365736843832976492946166335621294750401631234005817856180126006910670552279067353779976053653389653958334875032411212500132535598504411378805589160050677425908269556879233830607410379390984098342388211933917842774037270659779186260395971477359881243955899150777549704021803805295457871274363307359972641505696256714527549999081939779727296467046295667434371792201964732644024100489067483054942426251693536954090623078257634082767982711975061557833339300095127226703993765964288808961486538429641110383211213996421960008326980637798224561703893817530557459656536885483154514540955008163047084441877368519133090424698299551674123261742876693513230468397062498884627596375179072554397821047984106914484243186463978330293620867681349110833447011047863344253758262726492270311832813950045999944981981315011458611841766818787507262206484416206340910248146842645240760187429606928282681585651736609477693275327723422291134377647363283613562689489312893474876266906608395819980239843597883500062450944395339266687515145035623755609584898973496703067685353429928343898228747779739628276893534756446318514361893465598132106427061728727952986895970486914666482678520214499629571475915751853159555228388266280799470911072821464571068184958506106269823527255686191351519572721851016642432817859165316649077373687764260806177007498701143398198618638295150072214859918290343442189011390584102666618671045960539109788537679551993396523296046550853730179590699366031035485487597345009934290237438241944851172432692520858864027174750279019990300157072986623893024356573779912222559888164459690797569974255054065333135406351082660319946135659571506154621535509560030614341401878656789253555152498965530839019588533268297353900301854860814838196322043872628891487231144495186754382887766042039455484309105200857692928618154859895084575946348886664583944853903810022858309145872556230025997811975565155530650751242691525871197889924838229167026514813137092938303276085215488158815474885940980438166344615514850490722702915151242424595744224216044336144008782683983677794866103957885619960924735693272122978032711799283207826240602096431143601716641298484574364619292821803985524693930743979359556926561047970452103601789263008530713051283435816901548966470016055735859223411998852233069493317269218886516520462209243778782356210123583318015994160166294768659890435955618195474398802530338939949261862373967566552489516859253540309767228404093290023597003342976822803893095462182581084780922210927309239854102423490993580944875372518391061122455086367922310875537042017745442820800093801476759888481553827650212263912307507653258855822047638721716404752196194749796906387046126463484232072491416440409699356712687808275156585874745330216284893648025198888344201412803694657108080829260461742564003641648329919562454682229070384035801358278843585431131626950344961251288543130725040780923623451130910093268408836066357638327362325156868650303174471058876199282745209861188824884572013084326424064068317662654972516510846540143361590736357156740386619517091944253818921389448485814981704205518220184837027040012068345023328051032832287411320282480442304679338401807554471778939626083041352751886716135207538227514439338672883356109712430299276589952935410423214142692222617506649129633652674478798895645893410935786855368558430343837849914516448918850643446953142858068680833291393697325553106625914052069123533462142248872971693758045537586277739155877653666205405309920757968710620854132727849266243300637448145965786722340121670899334791010790568976787497640633511560587335278518932386023292015180829645260644222377547116789294957550262980785727101826487783094452615133990342426720216846581163983114107384418481077610213841939683308763521584371921163246147006865857514398879997476179522243983359399821121604388110162901842609800563475157506490500409131914412865291839104426512738095332783078911725732311785840635298312088733095865568473381439047772708582562371176557755002827830968384446190915114431445572882602553438925986765621791321678860935419080888077063970189334566821190724971319412767389171679682993401502334595343354228208955364813013910817147457076988984942166090399787750609373325993972273110785161679874374671545701183468531704298979740201688720341842725119758712879599605285297393412064527572379928913016332831311954193312626315762248395425620008224388838866183939173504409373793060407098749750118390191643153375849005106555870641477345376465468427451151386060079675709486298799089239942834620091549520437448543734022379733771389729972119240612342552144525895003041840719934372835340635900246932174240877325728827447043922479203518009717975360169652184257851332205978409811983085182325438266381786283947860508352570326195935254096917485135769747007328951784239614155692391345460987788821292576280950905485283593182412535959649983225288101338260410838758948218195350122537396100313982587116586211887451849523706234141062532366507450061739012081396348131974010754033259107024663182784947367930423184411829969520520477759237208128130007897955377253987460824569067498295942035775302260290244940212856792856420353416176061197494605303002068844188571361063031386932501891061258708539712949941918759804804796653249086605053587926499491471131341788121396439258435678508779946042120159855470868007037782914089681059859328972533064293222743835060497987724205664466794759363849195599660511626278832567991681118433177995400765905981950520072213432827347324943988650717401895377927467771694816262161999105902557573473961753677391944655380846393480922213810002029163308832911507893328656307365832013648553905082263691033253376616126833563318644496205982018585055663484346600702947968707392621201233523091492315848182624261261987937585495118987448158890991214390234298118936543639052474061273714613819195111678770915852930549066628829361952162200666502028954813303554958122430726274041677883205966908512311235017424614112200796684984059989186661724105073135337766497792063115743910350075549759166059442819448993770868845328900496226029578942128958265730186622560676948620268524726482299721000111661887856286274616631611213279107723811029995138591658074450874252217454317083522382753895885143509376102966260217547889576997457747643012223296060261133611256099011188531934488968704192304524159655132779315290508565344306368820416723271734414419252495572358593565502666054205929599836483216249545292418678916434946244567765567359053943613109823153141179609035083177765434458105398301940469797630969132615677021027322767120115809889214455083410475342945108552211623591899511672721843584230190781924828926077255480945931385384742095801020036890234136172639786728470140647614698838867125115400082236852150105552939887185479605232908146799686766989757164598449143477249380924729071143267453667478567623867439545611361852646761240790423873688654287369666525385206306975785845631105671266380723523656753046796240466797869161744703501275786480972362604655301045869634037952942048085028511550843534391499051391627572615015600818345078677083855601823533260664420043140391889627002057568826315686024384118085069924092374031575002762938956159622757714382967888249950136273636713471373972555174301689489105533616411163708980907691221023689654249273145994060189816211060980448486184580218839412982057575425030895896679458532601146512947464950688790490239474022916168235643598802099334852833510081496303944714346555164544190053234253515530179519664750250774910253280683341342904481653872452402670534535247560966971270380819359370094833560569517292520964785728326096655531935457017052557503495694421482880561911933623097117273592523225785828422188282560562473251929368399571779084425031670800393223625228026039017737853218066817803237528924994410491530459068578534603656513898055068726465625329796510131556408188456319016040426282760011971700254184582913746672638312892778463603452314830603527362832954149213881805377851062111562754302366538049578633057720570183326755649865439971239407254685437111779472073662444805844783081243383935143535230612516677888785255137713522382499461557670745347849683053128394480056130553064641805482416960183194159561312119182759257002756217906089072219354052460020212577117531786996780990996977198543449397778463271647431504047700656962287887826244168138466801933625610130517290957720616864577654735963604376570743629487823432604387257198144228385964267182471532352395123074704572851136849736394449909717391565544319208785386811948959569800100045380063824796265634079391727055359825297868478119930490375799392424443543307795153629916058072342183599767100945963257297801988872254019874448756665092005804401014335044054029906524732011000495113353599016383588366630853058671884085692291133817123032650823624875013273048343896931600369894320012369390138229657084487378155446669180436845993807545030794911402600591605047256060370503966319329713199575969361583016380927784015276572451963439694852152873916786756941552633264790323081858057117155166805420053642489562117237601507287227425567948776193547152802179217952283711270726567212432130909737198959951539557959541822682988764414916513253234637298945682265750740798730706975893655752103959680577244759321979451649464426960197959428750374953584930517386456631823483636552820733831280364222391520036820501905999945469292929318447570318106322326414739714990359919569619294621782458584445995326437825121886406249450697662239712531236955545126957776855857595048498809934308597671896384689489452798535273021971717554332760085177211832439987525937032824021214586927551714279306751581915875242522275585578409620842425755132392219065603344941818753240760476650701798154981401830718550540958285995837889933229035355629676002679625715301072958212208453913984355795800839135597162227260026118819750653190313261766127925603980991632706098213898538100104661031852452281582964706863201589020789106571188603467511973670120557901863213948177023693634607897140791697870708940387903573297416847252370913782759110983919514465105651461162040226389066354267211585828753914233734055137303077344552291589481436126337197176370140148491107125833837085414031823796080445415450690134741192774468284331435594747364950536871363982481506130573680713003140604963611540238332147170711651750937540093698911091497497091556953823483595650815431726818976140328108486124429037298090285917375504881120814619636183238518201032415960530013331544608010617439191725951165407709022968919877587238506676850485339096132756763625538201194371002351691838733975229943452316714760097896060114036526249446336178139575134188852943442101161949987348476185144669694974890539655051262089440859312768360426030541074512292025241919376623137145633830556104282439577837577650163111470005211853884047189129579935041875006503604317469337821265538473471512149308563760648784536891381169553262328547945249375583887465825858852505106543318541684333798507950509628872294297028856280083186161335075268117047837557471714675967985083205059977636462118111158101399107413436181791463321889897764474759689899612466320779394053236546593801265470181055856548905081120921160221065207081343136571770866269491891337386588029527043153235610512589098385497767258564184220167973195707553956018378163720842254682832881720897685124024166042128810830275604109601692384148418223282831281980355442271442953069049532224172750137556485784641730826457871208905424460489973997721185574311659233568014353276207614046540969029695542610966519081074988877640420760912061545592516501919114629110772204749286043579198282360541670793330792457255636630852430713507203764628435238686085839591202577776687650791850612780328304702718247836595681080014661143290300266428494187525550538906006609832754060516135644779110228802117541630071447174817734459332704245334277963247670392528848258641810104168737148981771549206455907197921731696944886371643025155713197560658078732229065339731139824269706486906209813760592886957989137851768019868601698093881742756246221665437224226264852084827950645100229038850779387876939381583551246393093293132874943532136178522497020283262898944868412776755468579888564891348777002258416547314497488436759351909839973793958299915041780273921604871082910474622133272529172024937034261835194928282803192726738039381281083519758800368408927587274506489952277578250246703667893479329197451906044315900368126875828834930064396763899299675239181436212687975292848692291177736982014098248620263918216119336221931042570961400782603755316121948706020595250513267502163906915619802974024872983843623178360499687329173229150286767287746545536910582832381404021508716106359793268905318865161486482100005302931459019468345055622464795818427897407965908923965896175766353465063744333363122369229083116652904046489459753928328078973426734221050216899677604686562833555876463997373655049447500287847771768172363912931199632658740165421126900567888158629659895246038252315804606411570142194416014434679543267762324530160417380552259053874552735362227168971857157671819999343906044941749594953349049187553380093603841798705234017825553763387080045219700930677284729898256126927059510835775830824970779641446439707005373848015489421681891683287081468437637214874406452121215457257274866917247063347851168664039206337041388078040068214264873494785441601974708563497659464427655438267056108386414522901393035848137528670292772650461385553248389811796774238712373855419197142838130112457368153490385041272987896298365125242496867416410985014922806489962005492863057132889682128859949367817529602025777426477504447006599862967434129567211799850683098607371183391421320807301150298593544778398565441469339612124771833633235510708929609314751885369743044993446520859616629379416833052059997531798564149576737576536634061212765138221090091894393031943027183890363473237127787130396174079381039606631426934637918815044332021385009065554939818880992064203723747978823408909679658974111198576081426645129263395510259430700535181510984552931780728518710613597332759143913027295384107619422537216182925916977774045138872421393425395691217896238086393072108547601631797360710643862235605424249552655584460355317904757700244488894250597022649653086750696358164619515572628966499451003850099707294800114247493483455557114238308177024631914867538162710010537747025214403385417164934767935237014630934134050108400803157482068405183744797540087487629577106388135885222360431094759495964162107741541936707564766210881783877789480659639716198405304326741522832949314447822655779606274236122322819711358004117395329419584921280570655122921329277039004233430748058998904856003021685260063712136920739402552970980184447098846900053594115105523999466486956037058875652814541865780368358749588993150374173872287937929830619341322373723058698673296756092228014569054530617987598738494994205029789853104817132373471086744856120858340938208129438232068629825842636849756380494774578812523637011122795682522363839901243139670663375025644114810394765612305973817809962014210268105742937859663715825221141980963861511052388054724271248021749259360324144097034673809976957173335262076678153543246321658636064072372518853839147392150477581648008986973633372872311984374197200470702990503246861875028703848809692202610173395101117864517465589431658908890058967734158347680534241124003303518130599463713428247600647259219998259682267041210205647562346914687294419006389295296425372963736975395994097327289202022457929317206994998598677818966338220301192181002679150878051658412425821094567675976948985820645103715966266667913603766550298476842810861835885013707244229288203830994115394655675485134725197994629435083083365048376868173908743960796776869033693042840160555230694440243796349357248893620609423900458335929581381913350726217305698023525723429208809702854311063760296356731537798834552550445582790524878937109881463399997896377177170050382730915148262346571565636977838738882373253248910190153872109648277576054666673417144903461716949233333873743385211695597463183150965559107200363186917375332298639653963413316080426207790792569402997755449683625908138821536159346451205440504114637845315266722912608107205270739014791363292679131393768877737946284283362316775038153754243194013232577194139783814651325575067466633328590638776654072496113304584548505927355207766195198744196643016915925143578029238482668608318287400150395871238958544733558192111394489319262148356191742641146826847800689268134875744789076317795086417961717392259700919428013610701541465286517306463507056231845536334813936449392315212111313804688571889405109154098588882930325404079520692007816151289089211891955023559333118532759349380444421029206574319741461606874936271182280670552865686639066601309344320988656444537897508273800847931755899822718177999215738638664530054462031002277001942563133881997690770889306309578100216376664315279415231489660142363635806128914660296990052655833691010509395983138098911947523997728598095391172438781092583784137482628655259120825773171994229608730341414621702831249706888360024403605982153129006111396631593086520883272830643993773770982213375532307728570841587970689757614441269184760904037969431975912091019673317038555195320145009147623955446521905644166610751867850760999892343673732461584467682547188698092343121541907545570862657750680429081039827817354816747806903749978210838765818249975570811587439899085727792977447827308932631967601770789120779968269973334334554260393921087026045751122726647165364743228022982745821849462842967711017019425872679794941819221699795361254285582211944078392016490726652069060673829161320028829069687700256104704978368140518251162624318689109942385749770604311952681325666780880826418726551013442845143587408739957163680264912648618996908810892679115185876750514398166641329514965954556192599730653452801903491742734255761320501081418015709040691087606444067636120884321236489111702607274959402841916412015117695032593350118141348760030002993847770428368072841844685755797150369247337594906746705382790815913540234592344607423725523917933342108888976462301581615463095796109978169874100534569922710228334823686402527516994887251017581313780496296093524587932596584749885067067591459169860214581728439240066846579574288701584903322404480440078501160306591866490962652757129369458912301705648285832267173157979839582224166576160362487615793362232442087021844692346101606934634559699596122453983667691127227488851779647795372503982929736858024152898415506057699643875847986455005702361809263884588516190166272248899158908666220373137273789871954712583304389727071169915447186095516365789523391776944031183142759033833851999024780720962478616529283856806520227049398762724318049733007712218654404926693370648845803081198043520048963889090320378656616903941466834475415073185579397342900663719443781478348394734982596330389633795597004652507881307351927749264688758325936256541590510062527219690910460067510154531652339907772095871661912887382351669845678204931514010572977996055026136565685827489720177224756222120089934708912555839529446551742215627624837287292242916503068499318737652423607995324933695228089430610559527863867882077433490618324896806860036169697260228428716203757811087945865284450258008418473631914141771035907821421522696549004586235602118916695834255707652007417254020732333927658283735468868715390362905943783215276372064021083920295123647812744407877187455785310357559032349997448040260577462576482105980807590852522549581527220030024181897289474507649808293638892347669055436467385372547677907620388644604695338931238612768516625866781559271988739668895431444348419298395387185580506719163647557437965041884768437485946099071987887964640508507713693871110666655355039481998754065324630850341518365866036669281364639272781982268907599724480448535992409746185483730372675902163801964000414763806254263869303144133839178965396372214368760315646463184901543426479801081928874801365306508935929823642722892843000654134260681186031525792765992581885948227207524480825396555748926969552901432841992857407712479800041297173978284650945525821683642791719817210738462820026231847086071439528380919712080728828163933089007781624940020674778004763042946230715155233830426647925993934878861429309103207182326794241433135848612981718826061128229953631268189231087759976258345531136123286127180059451876494058596113765552977126443209320304201471040356954806025890637742635884063911098918485196529509141298748091540706355541557895764939076247352046276845845291838530079531439664050564370067567488793420882307961385114000388915044479189901344533071472835015084515262106230991969217360959200649225125362736206649599445613805628368429911779209102131662024071738663398177198720673480787943763009957926059842997930555230022619492668899038825996696268771042713179751743583470347139265122032668532285933106072719821508585351154825543526727005394407002682084107133728502834485146815845977841435740682813032588773209457851018038395537155510745452647016638686262600802926322821682835685291058397991584598391696227384444355131568613294522992132129738332283758750446005463966104397785309893154211034299341905735346847952513927394814206209205234819901574865347322900620508002387538496972080033982469950794633407398345490232286522593846170498825545174331766104540596571349365157964950602977776513499858934601720953020253182823482743911781609834687622285880681143907114586143896427654454677691495476755583818622108031235873088496994175561360285426601444241339284620642125272634628892002447509164020024900484105705902024707058664418001365774042233416800819075636366338987568408924744856605583705815453446211751542551957044352207322346870779784849366994215428294367807797344026615985195751096457043266848778970883336458588392027784652246002849834495238633927855909404881873494293773163496337992810822135378957405207879477559555999277478549482694422535937091183222585703634477864799841216293992631624166548414720440979577011786297700422898921303891039267602783216591603101149349084960938247880227406828958519184265983812627030901133363208722881211597336167464790462913971235658429806933387702137682182732614360873406133455963997085672982111852923920672583271585615448088270307972304574952996963868504101436861339612761236000265646727138208488199686081927203577868031571867673386161342896517568177139774829425589927721061598263389449939953505152922156093417500913040959720021356520434863027109993648794451892763075343813750823969592375019394537490386843782050131415774152535739325222933252746118459428807031852256410519243836713261276214996253253381523355456133263144562542687883770616418365006964269264695004072290727505310369290575213130881417987554951770218771455067946414428904373759564275779100132203890979972859786264938618981883028233225624580320078375729615392835615915230473967602423768450333335053790426747155926689348020994269485627709922845457974858008406882270990033517112017835282790072325587475801791150467025417507470248236843552369725846157643728016745823865058406023362178740361379101117775257799775708438988923545644173324970247201438675260870858757408003921305763343424428486754323415944406883685296980491283818979907990982658899429152500990428272558174966112324540404977979697558191892543116333980817877092457908824301675444917643607489268263488493609081188713404305593472263457585018575132587238559500371529615085411720414555637625825188077987216028122403611189844523398421864157451383314730476182808229915461678872823419406579849907680128312778171230422065074007126650009610140081738006880531475271837654346521544430288626852336105734529559612018364178075106508393356760060282527124629996557123201993958779341234700484889162448478139661271525705085180472175543509323005656355794735893109764892770349032713361462980112637834637865068352460826199191175308867394546678840819419211774092141189738449666484037853069574752746020397668533207164122158981930582453668794202659185074907625155095345005775126437185811550964231592973392027919376296514778033655425606413130642427193825788460491678726373138524140443451319673272341364280012117994364670665005997880652934618545728464043954310301960005516814882713770501554513516213150450746962286767772151694666994931409161548817555597349161102211061205963629955372023540030547230731869495800244782338220315933344806557601242566698884034245279540618267891781339932662961632930852907382679790777696430321329929207278991387318508765762374252492419411351421200108535456279668734623896181090887760476878642687259723278694958176648125833928011490333350230991692516217286821721958127083499232893772103829278025358044105572584313467265113300358772783118770167263997518339770653783010096119057931830992143858290307148688396169793637905824712740005582852606893912577434934081392685670402722427006395767923189162807516386657531410810660202384871846891162666576989126468467066237586162568747861011745754612619408358159818090032392064868894617928504594086420294698366465971298089030731058670804744480700835002870515914020178577277183906534300047489300390375288518507097117594411717148155057280893862346032176819110992968178783833949862131845769241087596654146628182227278521627361435124894681653295042037876310674967419977629024178486774660803419519934909111385903576117173026181505378072950048764622868738328744244439753921447307934673163574768102037317180218334314109496614830044569273958695424001222554648505837136791932572146412380185108117247373643711651408838897191249720647890487223609238478094462968298310165840972127302365072361598165787303015159019588424606529211489039427910301990643193880725626929791989131981311554228742069654442220470568502043224341544607482665073097000675035510195470216409869308590325693346366317120021864204662153372732967599363371227328385074951138688164196433513232933774358712372333025543437674136170642483880215759893569042236981341667735117743031434612237865784940440736929519657282068142222746677277622188738361903624090651802511766033612050592333953498339936159887548560814069163979433681419853932336810684904158478830583646018110751962761898769706263775067847565325627132062826299451015798528269322464335209954307244194558741563424723839271399728455754924799004737319646948093520152300151941099034790053247117757620743380928809991068729686839107383565866946427470488155617187685708404924893896821994850561473246477310021027618368109174998706169888007964261609481389601257295547600324950677268430709580909265858319293014445879444175038936453066555208476928928076694090314689457778992984606008517899572498463398838113394264449318942378487537848318894645534128036055389849317232482252242711123426297560867083055439403558148405754949108169525641264031340043870945163929424316285709358852041581110339047818720792944416784992721222926094347685154903412465875238291455574082859021483667806358819728599584759797413459666200386695112236624372778984799190664015331315329818374674706179826290006878691415931545198117623241623022383037280826201413468825595025280452278566277804072477709988366608752882013137026417411044757063588637931091943279641332343251117494106042587272385521468492042940366145677034765037791217308545343553424003896506962531048507436054865433437223173882242184886181891315315922206634886088570774988849981818943276127904202972366134724302361601270116386045806739038506932630962622831333493062737266671424204163337493009561029021568233778910973133554678959945679895791376265036649205284974968845764328456776497047680258278353310650607948171058744659115405344744546774570672120193655877220238914759041310862151924483486486226984892632842775832716264142379367452601531623940847753063526824775331986511848569081201706371887607091528140061044682629924394626925985854410342323302386392006004781931732912280387519081126894763144088157949157501564162319347785995080634205051344697606198405767084614442059132300579460890513136319719238746312827439105047470220026187190335679636153692232573690701240117108023547062201792306202402424390358334122453230520077308811152780893860015842162701471352062745408487219627445513947574734141499893074678094265233806429531395646792814734275953623569116968427533748054966812469633201264178976505773149564803535212740215373557982205034519994544332422635529926806898570170955667719334119025469383575170258203234941343055160389682317916880147513068298509936366998187982672385891149501006142761860806439964956650853427324719276556146075114344188866173773782525318381534335766794816031810677787016983786173096804581953815661987627435826512922452144426090816613751432266167798977120799792332849087076125517604880863187989056639606440615898012117703958408788906328056703052140524708518764312192664417988967023540114322494121498083100146870055888856189164112564083686763178023993841273220296906827363543256892650440973861874362466139508208468720916623181220949601026634703962283641400942063531253345045601327336696829029786089087541732161701814441741867610766653598583169120466582689152645099502667398437232582115195467330966375505693030623640709027076592804869434387338335312965719108227529837206799843738706894196711425917343875266490412093573772006024533651064419298045336142896352341257348061270922469752437736324340893728015694628144509546339129721051342023869632402756548239082790579797080760878638553183860927421884631491447596995982438199010301014335099265213465953429303954980911696107963729396008466838927003441415826563297369787161644141626462176097884672934102565154154181033621941356285771202180711091942255072853058618251375156581562203186403887756998979079195222509868394987749515872858082334911176714185346424595347301920454534549721848862341944456212516605071305596945973960519001897518904962262576599741285204763076824533921530689895272856387351281984712205147051546466473911368536217296122522732632770576849285513618362895496967928830059472855098159203268410928987063549100665997271619932770590783427470920300543749946166966299739294070144294980574040018482783415510980286350220602457030941496239532671066384266339166873417736820073673693430749694512116028351544606122498876929941258292101520386144340511734147495430745072817058386670991852259757311420151555550036236522660956227173583125983589832848745646248783978867037542767138144729715497610387170723269857901916300103929480925487752372645392095763612250464351497988689007055674291044131322417599875149866815383327350941611035393671014211150314612240146931847275036587830095224318338237344496427488891422553774613266213053850444706482137643765507497662711636122264290344888485452023169966499339899002384775165363235088758406531919576943723340637032017201945974091184525718298202518127722846440553959438614275385328183510719687074972573165792445832158780893701393186972060352598911965869375461023733452970075145566952832893408702628471840052407314646650238312361966282474502234060652047960842661532187981082450734731715386152643390012981853868321234099746014409368235125040032834884236074283341610829342951149041992248759586643894528976588862915466540904314865934508886118945302645784534221527047947942343407467638401080435684118471088095367544666386786070187630302379740189954835113965180660549679447641524126818957857508537075163040301357470740010494374915452252072446432259243595698702894579709773791098394003976705867195534962898568503908714858359334275379344031607600853368050536857375235560202166508750797571663701273332810350037606084937061867945134203562999324202247565604682331517785192152264207681240512966008899364594284917787782265756447810064132571325215281043496015077213300820559742423664514790426047447506572832103609626893236157176642962648134911768489973353821079849758768351579636446790309102354327619824307808889872285878592336953268680777087102839959171679551491844719613152575190912101831633582838657915883764478552537915651795743826792710620895150504750443748323276503706820322744716672063463540153526739191086731383245539478647542949516294423599117274496182905584390429709064727976144253231699781125611529708362826807736813539336745213549254515122700252557259795067821397851280414406453375339830288032146820966611365224113974107616586106722541410289363955109041889502192521605360674661812225032915601280351151177207448886930135226102828369978195087795121936285040007842948960719919494531044531368184219153789885025553487103987748150022668806955435925484392010991030599884445036566725973603758058467517968970680014788233233290283712542867865127945910211762119001674482643404301954593879883469976920734053766281563959233742044340017036672100071333286719231154932938053985297868832843894050169093529140379400718612055729624812368543590131739943367675439196073630952614400072715615702694989512062780105258708414901502855179620663959853017321766614435765948279291531853267301545787405606511194684328725653024850803112124404668204305017736468363750220012570467852942208320377988250128084183219651392206404515754886351122394262821255950329390387199182479629376692607370767047246573536097600976591792958931197964703817566717484834286325401511981221395426302664674534569366263515100675428700307308452309170545384933142571042610600063768397444906859226463667607252917723724428784250663202757341285355442081423087773659939667144623938630169919674691719835340605024352372413751194411570768206078313974854510246561262325362498766344587979283386453094206946906698059079153426291022679797222060319609605529089238517105736505430371856313474867967414611989939328374579611629579573710553788731101079397887569904124936914884299524134560960924611664233152499546048075149388048282813796130193212800317439955914516128657114755072507556946793185307022003542197821191392847387931842818039203464155062459171462795293388391774729351292133441854504553694256426998101422416002658306256058470317331683633439958736965981323184769959636769680645129493059687424037571438517069571374959024679517852966355255743979100872919666899374403732627433079405441686863800022250313051953688672884689716215203045427387930324391618541733996642982625023095715134141156232051282961090915003923446918224164756063533592556886816106346615653605041293139905712530889029254219406672403320779020424826127040360932548947266347988127562612607807760725585288388791516242340135583583223796900625715679837356941897740464303364397682524713210658823767336033898112685057355658832461859245443327240838496088089413162194442366818531591838755772981153244508710048677617460367709401037501314148147444876406088580578017416811373435063133417813062405305625754573891821339324842178908938324326029531318521834040196653526380131911669461265475084328475073315748578749966762245649438750943817530204449156823114037166313472927001009017643207637294172377654100692447996255630005229314302209264517086275882874846156730366161211723224070217189010861292705496503900292270861764993627656334386793017596413099249124035224148825236187000318054896038175429137710222533361591564616952629870840453052887401838411579933798667825961087689959979799768643234290200416481830033535106502140725649163802274955175590870888863377636049285991997564431661349536066401456443412056528530082827667727297237953045981547575286377879473753875088838357964801237440021517420294495812185607690622839461463538269847365775853571123680773299531659406678512132876019283999365658990596872702006160122010667623434265938967581335007338103413028251800592271588525513563225042163952239738812001140072952510670672712279618131894090739510491485265295739403768935322265042240399768917645065764198976347073728659157130853259164482063366141918273060829187435039042241888168035565015164610168813776382604179176961068169996895932535956355009566539188338282698357075732994072401731523422125163635658461798596493325945941785895808313345912962929498551311686032959652218942753284121979141631398145100984946643271081695328428279303945107993800908831485560869260483618719792209539195864248807263931304760565530643893636242205764636455318836828184595269222544748951549518899433999837928544784674197071938880827104969440891072765727764855135677021003862484574150776608631207489996479456589662637520507315750877845520629074155513325070006019637742004243279375451126134497984018836114631101469465771374138904663892394716530577590610337817156228490294463838195774898412595573798973188696742042912267422876065957431938013060371065738312402512052387697588681460682898092972341569953566940208270311416023194043948955323851724107307875357285580385375191710626774317807867919475465039327874473146908023503375719214414301020150155235669358891160549401217238342462463829775550553822993479314645913455856118232818811930409557452030603789870479069467856437630121420302427237024476365813658903719177730203847780666338931936834381774574002799039877683251691742837543574070927512269638353151832183315271916522234697045662623597062850827028305253763110644981163508970966752175505205504516567334733076736850632052873651930403959091993049697405260822187796183371093791377461267002902318061476032793151632672819772401855772883375661438644240044620905319167136658763653544801438661528824723962497448352264059598175997579747085018763430904237091427480719237830853200596213047951155389325615120287521675331725868447392497365213675006511896017728458772899206822002676611341489398495618565050521578205676218632619892612843901963610494809183786554033989869342086756297918020008056645622821568096850500264620771040537457722997699725821295159227051778791825294830145432821816597814450113589898713257784942535984538897238995355637468627060155982412354268687971699867209288397716509085582017693471983265825511415872543777967618060487605557151128941728391392063614214235476636484675550881247816418262907440156396928187332005456053770834768715882359467738829816035971248254050765256440144854006781993737810963554006963954364228607393828230308761522958775279463837196876172045099413965328364168467785235824173834368140411108054335414514947706362502593646135698767203387336523991480067023041141746074319651852116233769221859927576457637478138775470379551599478357546889913518954602667314769927653762335276743862124212637058965252457089569838991836401348698951712050025039381584678147930835907527171707662989419532962725536361961851742258028816030970706601404030690856944791344101616472567786502386246928789404714481951697200258342533371189960242347424295678443519533595928666434494495014702985708312925148485620246707979251894724093238940940334239517838583206566766987131956700508231874386687992878475284311010322318098840703507796377883118699704393403106535431999235430685090404029705730274670222631355890470724194944171420803504202590532979465480956923421924029547128669718535401938105645010942660149197909569107580437628792613815378810603234719054204285249576034005458705006195409919139101692557453000557878892570175374843859203686509362806156792654053797339058851753250795569482393474474648546956896740997304913876434741380879040096193179440027139416050678952324132978592494155898151472707267514032155149314628073818504980165940167631492518244756068610313768015105818616096108195124829177529082494271735801936691609476109226489664443133031104587568030786299763816696137026878643999053166639876411303750448358313243653885043203857288565026699440601930888782884338044743166559085364181181722480522730182701204613171682372829273615439841075198278773635005679345741738525728447035277588275352416099199104075322188909609812395766622804028064308999918470430541510847601784293987399847815621689209422683000959358028683308028872210857605234278499079328625976446748332741361990837130184471203703494621892319995949635276104982907468876839240028124796937233271170150196481302317704611131988998504889595999820811531068012691854113676039014066436646799249837695002510880968477959823693982599003533367723236301805945192998745667125410597483478406027402928780749483054035033538418332077909762700748299192915615029912464968393671176033842132890536143691226781095265642378865017455810335730533100753889823571552880205146879098606555595626212960630370375704713031315007026294364536483739907311032127721163718434839466780059605659444935653764750682646815609335322126920264329366876359730682094739312082681205616756780763935971047002611704553460508002369137295343157994298966444137710661032283454228598000753276259081784229454450134586387770212581212476245452711207429137355267423448553432795512938444257341488015448398864529289760342184491998413336950372357063619453275787123911162753908358648160750006741115086824743995573891999604894298075766128123713285930847053019304519793550578955847961148308551257711799984245518954863727221821447218314433514677426596386806527835623973076343502439255370477010932999701507444362794446715828080787247772744866224716953266132338672677476802181642592496420178939751018674450199887075627798531135602423305054107249797340150996000547336507378263460870562961552549646703484461617629452021396601408053290153770032247841086177012416164464117784338497989867640335935781375417813513383682681411395302440444616963496734273291767488411858139972844398109836979327891844576322712891278833219693115375679707476560962635754538570460083457654955247427591139240968933001382896154083856477063514127746715003088440142392666851518123343556001173635849443616727094056564923448659576997632298472660838510292284092976178024675086654435478105491516872123246642981491052937789463289264435306816037242831749327491980629888836110697840341666687827026618642091566624578064906253075428969229895628889046845433234133167456475390309355813170502473755771641570675793078789712224485635504986788871832418467330321034540394877049065840545774305429571535350561248087822378560579943864524768811325078476899042827890754963043812768114787897931113113516096492020536698779965797394371648429276476390012358827616805011279710097508547566199845857166094551778750572088264929710618736461472170416545305106023874650529366483696661828424072554549766167971419929965902914259558146117931360368395141362597023566600629821861219398410763122353217869122870759493232991029826535488954751044993652509877222264814805320333180116103145610144992010721274444601849853172291024738449209939903760106760928268407141885266262532595973485947168645333213188140682918450441399353041234058906881473996198618862302778597546093984191612750599480873792529286576075432571134154905708863861748759978116295124761849054155985027335834130781024271565527338348315168752389686245780215759538455629972944261364406546604656451592536967541121575647808218644406487083310715210664964044128696678717692152893050880770649177566085879970547798354475099999356981789860652620254642616313654737562666721084496747196636586451109248852094931604582759343690991560854249177932943302138471445154854107483305071706405711696975294616121758021065411683991079670927113538393683061595780276627780376721754147977929136474302661617178570573631189949768802390610671809447978103146205940469281506944934286114001509874806059746535034515368871912618348855054306072763435489425104537460247627006849443300026422089704022932053451487340120368599352479981788993938900469460686258041616748799701808577246601988157392824804857570015552008442595728993371812736730499408614979369976326705209239929348156737034725144844404932499629352882171624024394408809203785023003887725690642351718994788007491318620623006514458739519752100040211721317854346439707831403451026642496317887384517864408088976715701460945568122682349461422358956952419962953725081834710768264676914067083488886244657251505839032719727514671836865585333046501571152404297608367503746286347026330214457090738683152172493551203075895591584189414921867864966456627130256216774521734854061723352325119051251906905374076664668340220356381217770219198819857051646476905609819015623592285095381075892690493904539664059076136448874670634511498146956071962720304620769037535638499311212823961327846584002231213925148235820133082605546071377950499907133168657767700569309688739547262085130863857905157877127990358049822821142455584439775602018517244576025450007880498492843884150914845998260913479294568061012673774219955207924670407179822807659993595891032091177565548470504191131500649614469053484466882866450396227834032398418302351945618020915102190909474333304067489696900978018900231298231967236264526192025505012153447690197971586063668948146364537691002611696082744228843461597056442171978218826806544878018098858668195366982329684867177240566548277716431986228846114230769711761911086796788481956364972393861714949516247382724481188223783643191755199021879675986826699581715017616528974402286307110505811873931694962889033121699963528882446760547528927595585079201161026796036698340078318829724984672360450360446706516955928515168660295098159221404874534894027003859997510264006493478558747773944068042830176585511614578136024963185552541616127372333742065390428886884947215905974896814977207768039243912730597674705279191713287747148464577527507928825256993075861749055309545754366452098222744773540352831489207957132628658128564097839407320422290241258617356644794925807872021301914505429752599339965772070068804804641491385491825827209948184344385636435059787789974593780305194843474951730243718068683305482950769773125264788226969516639386640282591350406893363352547978989361646833605894640425720213112034978096666709178576802566065655955288638689869609259281291744382607250339131739978157633587859544669876267360633075297049698669039802526616151795906106607608788877724742481212517375921558349351756518890252394109193256657781552704978424286202324078173661933573840512698392443423358088410823384780687826930898484935583799845667453159246163479754038080737133420628261671507969019199925673739195177551120791335962313897730752111896156772584062974002061411760296046365197172266625901829373449069044730249048782812315057301448311779237226824880833485549808946798998925817437815540181684109884657353420045935310468809648271062913749788606403763056980881583337044649562570598508928870918092749622253555929996623613198669551129760188931381240881755718284696869253207045475180885658195324969423506647792940465002476082832553492171460283355714083761928369025186666080725169483194030821303100148978022164723035805808423357940748890538124744037866994608326893339103425777436218950285003625480713491486952100698275273867899894681132399881144525181483117311822641293412784022561334923027842097499818537600751887088810216902353951701189495065325135707008410935755328903448346027225037132511954177140823829790649786057847756624463913613319700692063476928710041781535298980051321360366103099126148080778133017840757963964850700324463228210842811480176393979272198695596916872464242099255927461596442550693626263992341612582357825002079641191453081598638752374507147354286865624032865892349634988022910425722347225446026783878328188394013455329042120977191908093751469034406883191264116683444500138033555581404241337084533332710994143139597390007705229698764640042568489146477297758432810017914978104103937558031417442463532014048064190237485545803301216708030970689803592784046207047250526118451321557322519537047308537261822176738861223374816324805659854680617236876820392615688503593697969674871763740240354694827314193892931300678138671274808535637006265456265952169236804212563930478179316273673533566184393471334359380568220910722836767475139316089771095933023792967967603174015265662608692030765613552248520662977088420547932960777905351772177658062287716924768725407532167002568197656299690213641815573322956716219634347243100469628305055212734015880391671564736743071532185090593862398431460177942467159756869048502747275292034977630801415040298455191023371858172713063573051005559205706495263881565800135666386317476608734564221093602429059614459675514911338665215743767355245934778577811146120305551055617526168569017337163961828434380445359688761584824238495718378307917778175221130412347212382529965252227193872650918575316577094923488939345490709115626971802203083330937856159845822657278690968738730944299527696752748334622521476140315497898807341538722684824710754305107997488880053893657663875724965513248425408898485312844391447338678318672016483063506849745232109226753536620082331811853371776167840780664985666916212173532635370618167684944409320734959674827240173765086295202313638643810377551675446967353960339158348542548306380314226749645788101560951422394967677988627579013779046108855974214312446301331918119536270059679567503773764780443057525824880094999379343265617819069334490062981349357460628725802898994071577322379414486893462895732911712710472615377588599245007711732867959607396506739835413295142299070269657114644643953126212908547386245747853210382563231552807235475664109089229929338868896949354078778527848315258964943606623020419011338462149992746988440655749715683730773079925037403936850754308712245682889617712076803702268060874377784102153727943350658777220129294232177071371757579027159355298720274652457148324898446745347052889972633604519559315297013410878481127219018679159728981443322926413008675546546494193299465589713362973012049915834476001951090562026016655257216813174377336680689266734896776731671171714134910315749154730957973976971035811080158478059879301694756380624345938361505285096436439551803640218238841190091617687333438345054582854531812830658362036683502989551658656791788882925700280243193406418345671109413608909375628165808931863351290595577911452955810789688851350055560245138779279336310840477771338044573258043616841095686799137399974343600261520743096240218369244757390227962168241738843725487537466825820959772017861829985195255582969668494002281171831524419571758220446367366931868493392848451281850740859686496265870700862443463638617957192013231165870270560180612288816448489123028516340935920374120733856988633511056383843651765972255852053655865382313363023563371642057779199268441735068178370284507557086310853794543516066732424416889470348104497060717693315136280610961844829700676428356430820009945258895704007862623886759657255240423745481151674752874493543219560965877901006455565315198665494503368438594868727349512010816965148202589868189287105759005596793473428062429547128145637291313466614093467213512669653217180429653377869773923485984516241931747666194660150788083962347355760166646282315365283260712036723468900266555891856127683345124046916188626276664808064554790446192530828258343467180316395744019715264254931115882649140597303197002319121257075697834270218488310818594422202084222413202635533579377472248627545673483481195972382061651168424618016361437366053181482399533072626024719086450738792243922460057222683084650408407736948493064750313184305324151219639336653535973557115318922782228209330766845287781729233879553481573904200978827788096062774008927009412225749246951905721624797312456759057884945780775724391891037945850869443336578105512990045326470376822744032315220730614610229888872519245261183691953146691615328631694869218043663643552867527194252830157859811925244266894278327444470408918757080215790947331537445412123751248530726663379472017058804644571414708609713471683151047134113952506240084079040360665796567284332254563632517211355441966386929895039951458510336032924474198074614038050832173193620727684318459475882071243911277769503320216830468965581600956798203937035134519211158719582792389264697324952334477622191145841138403931982848556987883790757441479753231998472441924817413781894153448121453037806305987744323539147118706094371540205681047035768214723919430869762533885510863907900940600564487242665968397711360888198417973073185355151228146261559982346355182386420893453282723720530569139275815668260565714958107364981239920787541831140690314042089450009756815153083382624728716273292096098506865440680389683273035806156499967883483244337309457739022383115520236378937418907492489426480299163879989427076745521467936815509051548310359566535638855768626663677320009749549413715499390926583776733030660814908480082506775639153149772555748322395228204672152311940950352044178552266108513931096691773573138664429711836205521285296156130139784656151091655062946052056029587572852594943625071958609510784746253221808610313034755584866550747266509606718558498923373285341903313613763957694730305445195086683230645181933437092169979377642115699480514512450766846820824278530898557426889426599681762469325709723553855057111945751625425424181122916400104368077491179161651424482139544262799792685307242583170537786662712287995124516355197399898833261145661779923625271225616764297072772189335135242962000713776586431769753750609368631834576516390379835544101921514859314698917107729241525181497982443608145295935086823733393443462534663401668525636505953720075205390440632992402329402054400852244560036520384654940565671460646575546193085309401566493480149870730287352272224944536403104012621287404354424772601670481539753893470470803161271166616190717325191788420572963034508137608415627296863071012014381333848048477635087567097214752399269818281855749325614295918658853973065168219015043819660619738095165417944356521133338159175241707162336542893733710773805549546571530712635314185950670153424960152759557075138189921072627098130605310525450900938590318860016233759328647518982148060417969949427128482211347915340344419168468241848699250591531782752261260488506796212548933587137604695549972136753456301377144489320870592279426781065665758707670639678313639499748399909706641697233578006415872639565951533756281098268135116706440308881232669491450442546687251202056933945078031512536948094379247284878363997604857865903015897364639511395624740912086515907294775806230365021427826199186982001088691846241434463230269774111915782787888193536581058832871602424828280899676669718555427165342930748480780033733923296595428900203526095648974706056185107328600300514539406074693789478212548989880433042978921376262486889205314659770372785665352574647058982532070649958760673364141507932682623186997409049808710480922094598265469906211929519509982339768075498715029932770678577797345134299036427527083655913512692917769329329623850392698198359458402925456983207309922753049868809101852415770264122021589890637463369280251552215536350572142207894658452891422445700250937408579763799050273048798921423849493406610879991187763669078824324582106299307625880890910888689004853846669800520289573964050828836192707674590305718865639306757070874722098248055527354820817788942835665634418117169616987766027287590706102899722094090327196800863960043368250801591780369455879850403326519233393438223139968173516246341923134913484892684196428592702448832396741398917853608068020552544565004605580672469884126284911385271335743277964574163484402885399919820507803570321449839333809481601216393051114710220543002397214209259332205715667505100199533419355918826323588763477426543708735787894238938085221844824961762371751694541326759237728466253258435614110339321331371325669082858007327660264251426590923313288630544400441538977543769576421714294360584822670052787069738636579373824062667573749223086526208782341810354158713300932902487110303346126967416900789529146552505277240504288548216791173596352814876384788357240875061042806920309028824414857149035701034096261060372226490610583880770285731268560109447109878951215425335920414491683519445962070402307595368155741205819186581598257534373947458978396214419388917597146570436634073666884095295195916236434880601840473301719628682862647915837693377305479753525790779977438615931519463222740104412080815632375801010967788831110522722338552801490192732145728722492276287366762224625050402997892407546238871389786136002780876284742861418942046025924614850996138655883988466345529341725746926886616011435185596503186000337749062843553193826792614920752455243396626660348387480462097076483441798939624537650222674421286366621551504169630779444018361865643325211085293760790381907758443847371627808856152823589917869217120884110192733660564400331800254947447922601826761810572594464877050376713897738090547199041677527109059438105432989964569249048311646886158322725911350865727371883235770175130930358475369126313616221712433708820184820336449162183554422986561420201645494488952926380892596006575276276064803856385310846810757766507367127617795672237687112603276502316441882843183030697177149742044076769817433225205167330952312464114170874310159843352744941846503346485316640974481075004885918524120769503738610426566509719556222569421043841917453994885024288126262736459629523862484603241880522688548061395059671538948742744486147262804650478171994380689246951603223898658025553617150432899306060045389634474761472230652261432203686189783435805178458037084661631553949226999513864028724426794630134785642435758482045825082998253736964109711043339908009508831943029771389640070484261683215232508106504806213969931624813105197647145951367520118376547632704235077006998851811519579347278995423749836009152247325423691503728657990449523133883327051800630825206140602413891863662388089100124299776112977192775123116926394588434932592605579260982199795549344515174612889691119579344504999635178215552288633223941121346970948712614911556042069555598270291602485515204376939209879424487847401166735582938713918368081024906511883328726840007946833521736338855260756104724725330377107149214222768063140937662410944101931955241816618688859768767848055591704357570341302612911857893458299953555469764098789170251301985480710405472316971253978814595569428850796455096919408322270918980270057098334598968146109483315751360153548227948841240509105620132343348395902826815486975721607719778454726398809775915399491297817244800395376174651332778944756427342571855802115414274000147556827609371289043866811791660155732021614144107137383318490035470746637767026797328495143953759990270643851634729070766823668487475425260541600088457927634043042433996636316797862883005797979093508661147000024374869173722239591671404278915559458969553089660128533127606200336609541620142845817930305110871575318984453818771544441837574547575653423325006721799187399144701741526030474239894414193609097677829081404580919504680451031440613246985326990769522624337721289927081893673185933633284661384556316870861991393750015983146110085751138187408439549534330154639069177776889082276266198063989405265778898445022882459539590164962938651603451670658722526275225115091580728510520142038370141594214776952577563507056805243195412707884843867947340803026955784862439920706049454424154148434330762654374729326383463957877806112288464060748343143774479013296507001485320946863338448494017315655927923358805082981686911254564211536986732366216486678298437742807655605971967010515979720953310451457278891869671389888528739901880860756513549897633937069614756705004689188105404732761248838447124105632648618637429432370663460261723965296216073836756220086542980813459093793733490536327678785421941080798450520137225128522075473971402941493099837818333813542041349671841057571799348917284655550565814877580335859081050751351064515189048419464174786271250281245882772925641424486621232885313202123068616346041236539232601626350002335290325936186512714756508080116359230609576815153824330087360317640002364575625763847320156199883432792678378955486211779648609182223263448593285769760451589447819439861475258631611126152855946579660436066165275541564835856883270602769363642382432388548360176210591569019581622904028638492260695869490346139585067317497230397869205974431619704245355554144377263095122657271757562589201936240968555210452442861054838680547842487130015786179325790774815923816043685699065087763940336472607069652471901300169321845938955226138912935204910704807096249316923060619236487455322083164544178062617915003095632116234479540515344947130131928649842460924188071946228413542418299121662380657402712423137261689392707737860597828144409736261545240055452890154157581838112339899741280270223367090762352878732586513887492135577517085904900906559601059962029304989182172460346692046056521504201726254222326861828870101622279426635384230531313028101354725757973796883000579562508826436833765120069810237751315010319644880805028384132275573431201962930629343611706220301092618032549158864763052447457085074567685445278296919581476724257952159267723631941334910080846333753604141041633108061836199649542857653987450776024275939610003459147919420879468239974902136098091192947322885252644967951961451857091180573022600506391738930850808457412007201999082045808724272121738868938843626220685025379583146911238947394277194892901989327779871095817480270692449187700487209096035555439658029110397576295740277426728598079388761010800345082285467724715200922074517655194396025870567019435880196949524955903300707043870942062233007458342343622930475618958217059667921337004674247053463378056531237150240172785996271450782843150633129845705393631731048410818960643835398222223733880117637361897818554114372087743274939786204361875955011017244805798382905823198834432478864772266574531999242535237231087176475186307988039218317185098280937111902449886448970275060767277798269739198370631053250677478356159630396516615349967326892215160795742874483381848777890503396855436961226037693705960693326538997507101506172645781930544480633964629972223590669599037245444149662664604997108533716360359489090385152877060193151373150691984574623780490682219082452333241618402069896343258276046863302983419884411386252291131295700987066529140220162241129600561558706867385582417854556065315132424022011967112939368419782859368540176062627175604166275298279062593052901464657367651356828989962933825289894600897865828909783060973767022189645525089304068045759331212163731188705291049549123768042668732606973550374494522526200241630107005172936034601558481083574463170411553118821914383743729103657420290162595796606289447314191012995926649406783384985689499897762475822019800470379947625767879155722090470736348300255926823455533220641613830679746125365778299418053052494571973273638866951419041899446374603289564643077385874201622692808396071032900758951254150966700126364411917115581834299541751706694372150337801157880206233868499303066778617354008774388416139642851851959360569096064288854212606975195186362796503368150964896534282797421025917983414046625111665504725352276112293508120046271165065102272744057634573580730730616275234325951371110429030736090783192945599948103889039066808423464262428101091637445762608852746277648125834500940472352159966592392798982062007639014368991753563947066855991049394395712682574799759602254051978873539098076074882989755424431574700905856855369934848022491132256880093638812450921130213928154957392850934302434140343258958547492979958091717637605688304218981919032873806490646678839548889609860982237669630072072596069335582793306294518829349513422175344239071600920257979027971920443074037332386659323191411640479566370942614540608400096626410746040685460477809682143764864941739459512010985420171917853812094821610569450440659147472004284793805483473234793532113654958114274883849039582608960536634529661917383535573132418893478360492211453580892938954888651362171898641972077498327846807605773239557470316383243285531713405395162902773579839147640969229970181427066202238484108951465244470969405759860659853148298126998017483131742463408291182246244613066029591536042003713013540826666494853419819835233698756876559414079949086369431046268732263262305578118047712662237358151682899689637559859954235781441028010189683241877749856717214936859245837797455648824364257881506900845327061412954396821216753084448671237720716705509097145238568721831083781978716773900125058480902550728301263099765127401485603624002307225602409775331204493958321748121716659927606719792964955553932598672635788446819172426126330800674878897973966247617428788559762613120359851913512137054142578889608788439845667895379630221360533048822769594385411014322042693210655171526756063244570160368916340214772360669723156422942202699998416702339936450375731039786072951755424327826867261869485215806220784722510475348095054726356701180373838870662423696527164972819137404644751090297291953414335907904646759102287750810373106985151911857252310414011705231832421327393713543050223534444897663685788702758592128479520078775377447417252922803265307648190761179711547776378683836745596092469859142306972320273691932661162804436397386291200518674902053890032336149985464577000794033500255260508233878068569100236676590977283032012970911114899834439393847653285637524224048975502382895692117549068688967175154491789445112490266642013902436138924611444577174704560598344614302074110761677367080228098415231874058680245882082788465287767670181025782982774843318715635425034153306252708279016108359333664680314204322713523360378733173041051141969118153485725181730954009201948868649756900608030034673351221517337851010426198479817522315666027413160050476521163862965592729914224691314885610413374707824832796841266681755565974417989575102091108631997024298389233647071296625405747421451653651610027258895297766505812945073075014577513014119039149128275075071208424966576881842924038092170940970766575508326130379197757954813306984024998578733775170698034213643243195297610971060146390950080356935209726912407482971359729149505679356061016676590690697840275358845564628291665252760290977019600448067468728302730276152614885136551631259209554522401618974476490002980505254976934658376015126457241050415586530355849952605580625822362748025664896678038133014730499089523481664555284464814903987053910653388950686133046426584554333689598104571319683066799808066586431518750265114811261354986334974311506107934867615490171509161873428118125128876712173636424110157133359304015678588907916221693106197032615318992841142338138670140388218645187151781554390960105475482167810607372725341377546074634061363449479502521431464985810295601274277160880156469663781491541978358662071826411663461059492496887210712733560794429105012503436778302935307365802991611694993565491509733338306263523207374914960757313762053095614292616420594294759606032942139538107560499480129627267910051556592776242030856874928625582917192408082993356206571574677866386939602941439668552054469422183511029912299347158748294959030726390149194533496728397109511356126671027502388066432853724490649058998220565709497474833904586477207216828534341361176088586276820147011199484430537833733071577343462253840480369598220865035960436175474646161360448725919966753229171123914542449397063431270619698181810309581997964435836013484931099189365552298956220505050762971164165971057853569251263031559173990116475038405228892894761806241098199917931494184449115318971314973423906975536605575403838016560086908702682893255208173811292801718463243060278145225810437412022844872955273655921571955912060885553787029418157253634871800365754240966214122843649388801263274194186829116328522903348340700047329623795433368994849926356349962641073294216118393680763584949721023098810708041784876328853822048383901196150841921588356256594254272607664989414256928026431436246360843629052914951154161482723083631414905582089052629287204414369026567704803492022639516984634290542150255146202894721799583315845234681642883650369909477250045598838714318025784912300374941863766439580930924036143586232272757193742242559545277148485040707814689024773321434853076985402035778298808848213872621316444891988196589832930194224816040875451577931705095784524674640385821818550783323233331612020569884620355042158522264610694934154971449079671736895908474571470653991657888901392677863214885462953049119495537385805822797349114828668288308936219961733794327565056132280687214046616567469769362969415413079172145514700493586400152168205426229203965385863814031442390389249777477415397316106456295375283421058759564747289702632200870606779583571793285961002296025388561855161933807821202410563134691447610749439987111537954437334078873624362352527874916917934236694460099369334728138076677059640518979663890490400482310929226961597006069969751188050495411032797754767846004433597711365514137638732914845804708049875631942980920926388674666762330434614293716087260539185228701530938148253975375914611288510866485050528479774014229974308715283162211809002167660905762613012614802855696510396919303314827052976602278665397072446596822127022576888059371586147231594324237280968956227392951384471303055853003918567294032681290693395513342533306453208365578452565207965848385593255813408873304469350764888500863739094312237325042175146775227078357110965161447871433193715974219219878008702671781701338534342125965923848594174721349626576514537414518758798534481825571933109413009505926864543427187568674887602051843922967910520040083112374317750575575587310295954065783459162965395542654619983814252001269306197555174717983191537692815850413255313429429833108974839471460703937148984775371193651412176407001789785986162928419450726735404451459809504775743297268262890418932885329140857961047795077127365135817708728997870436838800612120363020120834695258835375592264676071044776423633635366188267786820772675002090606975899133272340527881305279467767270603945382064814153162899838859299394181628131675793633067347431989669070076609951372855695805330752513077202975369548042105673765374908048131147762552356817679561196170558630051885643783184967236067669484232801513280126215074392654633909925598209906801554023897279187533836037797583662939352981947356437207378223166251360329528901532933455450124105770792310523330939473367610989442101478975410251294338762179280994046339886328772192726528373369236850462125365428735699548243969358459489938564221925690267725141777347580668475685094658905217783201488559167029014449786535986068924949517356235404819182740557797863730440466779474288599917904402945224660517613319026182565541035450184459147455383918480498438046688288156075522611763247792863558756671269400792235491304884273719394228420146814569267657911939552739130205562356410786860660301357255678050377676089707513819663834467228399958220393098722748270793751108916639061916203158787486923649454715201891714079940273670712810633895190230700400484966870555030984395437955425518522923199023870926004471175511456387402591481665962769395416960727061185932801461912277692176017565054343897303396341669059108397164415173048747701276668906282535575113905975513885005804970157158237436790162047199138999993143117426154049721838185939031253756038948819351611890158447570688475088428630974664502769390536923563629804798281982617996908796596619354280770534455892353690346284497913752629393225925284466360195564814321364210380096232636515464969475038018205631301676306449314103568188524987218650268812979921417027797246374765406977927932003038600434200812781732796222047791488641684890149086061205407043284825234088816298639595864642192093275550728192973045358955418867547104330714060077834132124621916877915491116914758704057513116408725498058291613081445972882164104968706155622372313902092814903575248043462171347548141937601490104505063170190788367094727688812688931760285212122979924614621080573627621948024804459567783795800479474811539483552066091641417606836979115900492833148489762051348742976388861450734908442631898140241227137209748372886735596633666181156405543141489051057496332581203954538450610110360423736892309576375022939676080326014969706658081049491214713044503158803794937490150952218123008409081285990792864950481131798671551881981679735571677564301502218067521099850886444560773540030700692704609827809517239548705953005679873524978720806082009217235471493765532961486468728784875278013610284337972542010667762424271980508381446435873168866247489398522037799601782092491163490120595555178686920365121924509942118920605758146369887206669982821551356001083652530720733211954569968382764601583267425116008225263058743176281607654666003208001645062493473174116920673238986049554818139513860842562467719552915641674804822521716492654306856712486308739950631244153695273588035760256625398493106584218890389520006711271683108925402130699646771073199590368442165615748314541687909268715493662827996814449376679257603324794676529225420300147774568217991530585916354418415328035012083221364814887889718929762388589191939931432858218283106578043865466280038891749462123181433901053057680314291168065651560438871117357427540413148587893805432804997774992975918642228916741414687987977753836328241542640140812374525377798014743710180945608276176615134636342335453057645507678329878331213452024995463954555371187517549200888779953495976958166210374399205647980941366357027903738977476412945011259798918026424417612522710418346963291708473339803203568267210277992288178032092034932080768573569917142972099496447744047394116417096008233010842150943982291270937408574377005543213802924779633696338265950908699541038201162839978673809144453631270443590726505551867171855555954194790940802497139190941100372619696731484372361484858718074977466807522380342150465470395220438180956994893636758164889536872804220051322740698423145524198860826587886775160154128206905288068849258479973189270307570806347056402177585758949317982204251573329113206556476330339821909690577123996627241315180892850821174568292696742777215342255279087565317191071361598976323029222765421674788346243489322176082115216453285250813149932636573351824283272124577963539141210629242291791586005386177604013028580548463825229551062675140190785398581516174108180750950190760623002517526673536233872416148516027824416669600909033618407812919462010685347861816717095547150246543293100149573787791951455646742080682399827425929856186876400127963400525643286526290343450993389536119427602194375631981442976044205377076130522655209220262802960804988287110482604566410109143297565328274875501080418228437808517544684636726890822215751007649059272598585232919428074797689790980551558640256950306102758460747651154770654045635744094647738685595894923655113806211690408544607206474140046023217305719864026912548812093382618504741351025040110597293468555290209118269341884343448647911897885281587148459912461445937542011755113227325225699798186270939543466233664355645600283809676252616480995191317074702663918573790247836531918826043836923236941737098830729501118055637892452676496717773069774561104022135933591530114353699277167093565141464479269298458320612524016776159330277161918619674760201946062617354752290527920427105732194457338495647841986558071954636003453662646560905178104774162848844057863415346378986937639898770558398643252680457937079036186931802448650374873543147313803337976574284300977067562431497161090132879007883464506564530678585790677480362277285187945945654992826797787117308954734321745864333470637946088052499130519809679330318177829720949257840736073527078683416427287268569356181387447523449199684199977688465744036945937916977067599922357296617570551895779796138833703016094981156507668028102017651076149162374994646199956848455592289388549456818290385329150298455196172741701057765653383053535696275769130561106176919243838805640966404955414833796344724778613033710052395763201087782901078360847739430749667275899696512985952150181652328497785048050299225251785536017401094080947142619114286680212983281303116805018256714423528038094990677810218306954472504982615847130639781653546799926756569474192389646053142614167365781122472942994490689145856294231093710951573222765305843074957979857790698911815843177014261596015992094824646922731535470185332934763901101567285095292347439819170516167059136695085619194570545270857266456108964828551896172287045864127602645177532890522632493488448126932209331471913099416573154070334737599158117661731597089534308310231725824796030629212232205938643867781760729082211419839330575024220745403304578974053434846729160995640534253192185956873716361170430103988326758015309228245079427012494236402571365106087949679740686793742522355983067521804625003496336482915965267339900987282701526073746092476000562289527597990664930100093518715273923523199691191825193605936025642441623595254181040617460832734569113591902862466265793579282600971780215687268983498178329266299351582690075975274609523690593506614556601454096715632275927187818068177841925601373171890276964383000335139049134983679521530431975007610701467140502502395472464004812782994661238408397032060025569164720231963817667879812811306603827704865677596464631977729086482582026482587031771814947152907729256278946299948512651928236280056665927553700069343506637842502091122380968421023912960628040456505541019731121913266369644319008003661404665379588164969440196129414239609410813960820234313435503366253440526320007651280766114205587370079263042388880612148631425130360958316809357720266006590850987520690436415473798191803277806043052259567631940403100078750930779570636787077651200263278903381176871633722586122544202046680084150699899857531715035608403951751936488491536641338545318657199296813560835025138846973884664051044694005272106304690732187953889912122301144007153963720947264161117634755002807081358256725986941950310160949406449124267986611505714956970755502923029827798660630697254549460230995593020070994185877129526100148994054635896577063512680341720865696566962208307207650802575225815137761032054177250610893586783202081586896232959165799422324205352394430117345286124525590084544099343708537733580611004715557912042994368817825506964929420868227478688798993164280639427866463143337983889988853093049416628325300552316740817910045309966461762903134692437252295460100345780293124501209682304825401797738708673175401099192466304085361346800946506040412317724167303686042979071019997444880417409177705353414560418511595692924196433448115411645515505009206152404281260673237019459765211875094804340096045540640962103954375019315393373537883644700880207730471966551143255225233389658518392505980059534061675075280045739069606730036786814437032468750340216530154834076889837343789439406441761275479478751137414296828063637485433196821911620522951855391516574378411036867501201930346875937081155335657908885946266237245328212781078298665918090141157950681399478346660410366829667541501901932556694140562437931499651765471030673882517769830390737246784263855746240611125905918415022391945789175698135291204562704258064799299966478907632217347696605844923429542691443450998362909163433138364364572148913550796351017936540130210255024391796257591163882167716199434824802982071667602080526843143833433911053760447035389820134983903786910685516822241933502834844224536340961256717077649308284871092940894443814684573280383141216410679383206209957518914825631979507381879384253149029876248766522861654351339032390978488343479105556580909504780153061816852777538214439164375013306571950744035961192004012891354196212834011035816074311377200791664207150267765939678135456706802354584551571302822338229508910742378036805859960975597768083540233662929815126359754855075265863739467977701525904238652437813443985048513958036885240954597275345998498958887343435707438050955194913702623680870386775579445824901284295638557084080161255882697485509340226510113365356117454376039563976733586522958799269755388091663303259318232382043866392634367147886437738453933268974330560066159936115314096559297320917030033115954634971718736208798741662284309217808776866688307873981672054279721912716462378991362245658060301644015138654321591604708784929347294935738441862175423882862710265929554517019657678119007835115653634732066751406462905587121002409353997998725594461918886564756683884816014622784415656826827027663385843918715601535110758604473447412130856143191259384383467260783655664717416167693208256417418781473175752103810316731558290141005330286537996894090739653709291383567835583192649509835663354322938693486035037665706672118379033883845810002881202585304186246796208951440258247693331795470008917915267164452255977651905499456307698517100893288991506561248199408636604380513581531477270444412435869152614875733397826061950564053013454462673878080584699242678923809079006367326243621313564926549264065979067313868389487827037468593199731549866946619566247486029169980461071441758680405102074001636475622900021025975801500022629215957679880846174189928768537056845226270320435366711870458638911057365674059411424897314380183054218226695172498147984496354158188372502801295795390781806229656811000354618838933178484059676449802554279714046807208674519129239330858331258394985479865979020789992580135602941208742182558720297101454820349075285393631248970735056643737124546567806764594856950749260941267857235467283477598470633365433512143782633193930037940244397491924849276173225477694359368054623078097693783206027818109223801809389824293583546826634293083125360259591890337824631732710304655620298395731295684476894996466294520173596225808220306986128031208504642733166088671534437269410547409960010053402549951616402787115242972672602139543867506979410863563146978313263466291485452385117836741414284668872704366672315170820063826248877784562889778614697588849424969050420668751316656424824867759611975214303450550695186965745408899746022121923529167616512818218527566160190855523567487959109816491704145709669118835904772581249248508951713353206258454596262796076479936647798753330230556153483828438042117019120726430119187818197310864457257154330333357169449168180673560007388973543394993732278265983158869434727624999800189410121297354839510721811396691723918093747443768800100377291421117717276533061089145919044713030400256859604815663808389670678340192810126887159039097064718617026575793194768460132435898144549690977323126027813556776776912105245703638053514661946372158085038014012414148976901865813384248217328918425715201581942258241673597689243633913190752829428851748877255714280421656121627624290687833989550026016369967355844011354777415251745857374882974003147136339858450309268464636302834718227055531009088991437765357120117508274860843525708551906664865809877392077216837677355136699665760027476628835228018503621619969618409038528090846890320976874004932151684869043410931181610059996078473012979874634513533198497028342480160785770441035682086866712237709119127021711704672972347583838738140671662760405035078883926210009716282960394004670845455778211223186898562976837072041295677603409314678828957555062789633394628359803195209047122522138671614484579501289386870535243965540112240575975018821582978480307857469091141693158428500740074793287125421316982000722453464685595559745239794347053029142916049875991946142399051615736695309448918700432997029547090194739214779279744724326160360793922380234625779940974480555952245684745521742143134362844394986154634652619768080945444143760848952936948988431889090906111321914260665321399606083720287348766595644613857411989037504511243326499839362232285254704570621273530610580165228511944867033666059481908177423489317387705744103359300132985324042108927144258523384522244101201851387968181912953672824321621907073756222995636927139113336787044701633588014313563703829773625470028538762873946290324804784360523498544704474156870307329365563953786475898291155448782489732536582452294344467648215852391624504467623856005102640598470517581125476802118240784635901749167167412526258298370443419639370206639153052542074262422363850111337402968842605838207489665144159301631494542606798539872672191087929285233103757969827668463614758414031339953402789698334148272417645841308316544102516672457410681562815830449919877073657515335158345896966580615174855534431132676899801191131432617650578017189310342721993724527022509072008622531678191460099740382571239011074737054279973116668911762997721222463868913488054801303478721737734697757052055403665919037755428082207915990814246759658610334668589381887682248843899182925433066064361732393268690210462437796031138301818747899955687400347793577957151067663761862168281350497206132967892044029311456816176980963687697050865775486845395974055044716690964300572025254132677438497421050807536419558766142424020525087573973259504505262199383954327497291402326634236014981515444035577201396005584495356618482311195860680247816438052715912654700460540896277820975982863985580044081839245257115569221829670842669268535126018567165352092073316857746905041183872908881126992534027621586311099125149115370302773232537796538043775311365831334371272130424456982050879633452624545354152453517298557016756916102212468779565616925373647484560448687179152570352812533236950160036553569141798415185151517940237665976093933658177069666102038262305129252333026727754560668127008992978089770460789848546146934356612560027110126411785475729398419524068744399394483053711561708446091314939281443839934828888464208715550637356790871792505009211984400904395866283753434830149339048624487443666827830093640885651350695806960339183917798781306889483632041319754639567158145033066297089025148747009836430370071774592585475269668855727875576572799061315664579265867978229078580522124492347020572259701979999076118972321801676356988327641688040543839357620497213858182969553654494090001832976110776620569653539919266401670486724140621408587285775904903312552064138336015861937220626076982911499383602638326974235729938057726139041426004060027682618211975600606647242567685558415938958086400808749470664475046989602327765081874837205204570115380408230307750372518814674534950028780987419963455233540599492107369910659144701200102403508378596625772021478014515326792046265084823659094584205473600313219694005337182926111247710757293484127902448682395739894493030969545092535634017343988969960665023644847744027785450176445603744372371578460256503637753124443503538722847937683904083533111731423212233452170226836165475195876285573559681925261436041830869214489267372771317032663356406986146236982777921204164326709612017287110803319950337042081261223642424111090868001837761876163188762471575418358811631654714951852188443335472699713735778062868277897094007178483734072747062683163527858641399240313495084150608307885022358160569255669768415695563486380846344165073866734729396914181197671218318309885931643802090733256371068419423249117274374663285007177028763737683193658031683484953832025463357771110690434639417562937794867461469816264382957975889601457167422700154396059407805856817428119884287408876447324060608808907131992020839166161885829040886867936238658778169740591973613483367717434086593461186224076286593139031485734028481120919928692468616757321914389056059517405279455097359332996608159342950588715549911843858301515639945272388892268013200012379901634525202382223853347790578798556617967806220138557434774014072710896212807637768563951204026785474616201180419339247491294588575315161289745693121364292492177363403131731376326055177944143641560809075477146052796483335581421254564118843370419013759325519186550007051647908116978572655644014344159607336079195625316702635161667723727212556916161235394307524160862662816575312632439578895953598245642012272607116714792205095088503401339522329984562145784650824595062181960658827405704207100014260323736793281174792164387281456971503833972292314419384146524240991973809384573455119690710867926471747919942363999766031787537965931122756955363380884330097157713296068169228603184327640083515938183822991692464629684720381047460994700325136948231605571589008384938705128143747043917422412091575919593573817758630693285581983521592854322132094951815070500639589918809510885273770473032607045563700189062394795244626031812600091629522759111629015477793316005676671990877987642505294698174419895073577241871893580997203107469527110583487067463712675618277748501353712446709646280503463859817249554495542388932817640632924507612263080645547034917950871668318161908999557152848457173021675310737809181207393129065263064209622856384841393020637108034160161805115669950465372267037909369841616996876494311580219780258739335325927464881576664947092524045857833141661973332735183866224944114245064539291723297455975205293842193562106297078273403523401737344750812209585717344462799315297393358588840018807697352463001574836405355700953894383638312985330876271361550143291016645587393242920472022597787172994359265232139511476454864733752202949627051724121822079091685056551100115718502029760634044750885722199613731047521599171937227622626116521032563425072146603959924516843777148859670655054230374484896563541928695570798950211512614891443963017404107924022916595896345247627316688633747395870012264318818546351895564557362839585461925071997567093859779001680351980516378787487469625716381045437039726966256447271606898045015641723498975200044669850689997527649705897950960856614562872837742874160704599623763402614781501744736580193398629578921947559652572690474849977675350926966896304476381958668201589401887431139873023153383809423317189086834166129340155763185387542940914333965343179461974590676430989868275944840405317091668130349131219210885094680901215074047688690585184704879756452699978325740618679992263307175262647052326002177739239528321993155587609285818478926881847559400261455396480023883773747541792158010432019678307914796988700177053103369462821713028116183961871916928060497301346395512278798686499655770165365879226912114344100574424398116758276412442520724201092351105479837132189830635711843091183590070007220610575423646569187878849993428244705576837607712881007458002575820980767189975787377762341831466850641497799387096390631899369909115056967264005048846060811788287417494289766814738034104436982715505901622561290014922097761955376288467869849397863567804803023139855888792023985979765238321700572162600842512040690393846449967349051569052478628064544808830809491381800013778798528736265083991380587748141217077881986170057862579335447432974702634999772915254296005916188654585489121532244464611041473408697752118514858093590999050502966372627011004039637102042153790648596388905323150746661460585497101695825115574675472111489087107533631798230863088455660069484852114338676701549647075642941068137905339057132204843155489012408755088121171264225974286080599914449709038088871827489632481814470769916011756589511586393362692592553047345063296819880283332914227895822251538675003569141892150713368799456190742130326483608197728093133606167706307731321792969450758628448510095280048135323241287337245774073306470297588733863534078256423741362428441570041156461836540491524261190581379905153703738082096925795268057980186546487870463895826620643262099847398149808026385322100128908700391338854846102845464222379114990825375371874522699408489807593788283071265531852630280406103808680300058104328502184509022836140211935286793305767810591138925485383873044864324406167016055491198799040279501580059726365415958349447403127860519624989878008099990896193467355549984882970168397448837220084663774138015552754025547641841561662773251833331143699530535790139204594670823672744973980603774794742460710265310248726337291935312630892946289833072438706467696933148907505964386627760110781135945794500483398014422575066174351554994433401204177228699473264729496538263156515302686468274805041420279725611478338981655943791841580836584188419776301629299766371211548830582923761994530443359207114965966007689951093822226210522121336535172696280694485162323650407940573295406252480139489698804790696401772413436807422871552188776334157018287736255333240261297396763809100126155651321000492369959022944196872589403380432032312786945009587558151284986846887065577785571975148102427978491837687141496895028490313633728126443014620899126571209422751108689930347231098386648278067347147400717903249820210204394755213291415608496461062394008042568015601866241969417823177096586215924116998182959851761152909880057887521523937875625439738391555475528023336034959413687412745375208615983612526129347870683902048404576196196861246252774978467050958446743590558995731978635662937666735277245442378982744672876252468497933096455016343542478194299343256315914420260678084032233994637069209602405119584989122440196600763349233267274577882300554795338080366661955987105503275481992415823196317810588283990731935044983323914370548152853031616248323625659310113151699466070665243087050621802646265277340407971330022422800363619724363347043966055606865097244776278484244951527736044747010709168087733208740272122521742789906459328460292680570292768047498721689172287268239403026207314252923584849258025501265933588530430564796404453243463532802103422356148265752325052351017495407855555690316760894994231264053091273196550796203385804311175533137239284359974801820801686903517162677929377248658538800687254942002434238939432743670841375477393887744005520543603894772018736076521218861218202597332986386208058778348749935236978001629629092883276713409899605748672516724917908074697863773733505043597204634068998126041334219932950003528786881737717728906223745608610624585970560224856297779206998084456313217388539103852621694900774745356864439659217150933786000092091294769818019639692644493068062079161131863989077063921683195572284320928580748601825311721043981873888022261616100534865261198877092196966687356801322863369240307898373584967090868519293862504603317958680472963340860242301218796553427959921726519178616081362100647683398541214500215466226954885649566713162355537086490062574007770137822966936127702103699517898208523527658592863124719806994969000242754607684444693209311398456216333802173564852617962851060265654051901345190038248955292374913300219976152622684808659426306483566363684286851875981982045157840291951651414647705238961648165551968651108144506451003081401991952715977392872635481159577790129678176289651942320884969340456471261779003355266487877286369066267581080505188790880561998637803841780752422551452023910083819695945386405378246755024818856234083019437085658262537337272895340486861955401105499926357577927816460801169994591815616210420967129810737156366775238330536354984543955774795587154952806445545080390074077043046993890589812352826587964636259436207414786247947015688577681186763520050519996398638968547063218742193908210518364831773273234828102800762509840963797459942118817121627806601533146372452713823714039891094753051626153929334217874404279492557478522346700521243451490038494069275396407676101302196383960134158282764990046544285111295285186497857771966470564384078381742743481256132947408405052342194699825884569547031507857215288316610096430237392254871688977836083009507082083535654002139794807963928568529859354548373784879752000515620378751282132710710026994434835921972403385248647688004965723699267985650357291443913832006480235089023451865594440438432075941811624379196290165233662856836792423641343163277942714644637094922416717626135100065712938127298947660032476095319409989636602797603967652434855377412552993196247718171482249376123887295782334058742110799966089984134534849641775815033652274584050969397079270769297451561331738383361942317775390591412338332547633270746290097689451380585948026645238593336362562294905948419864443560040628766631875206889598736895556359577563223878126842212173836262005911464175836493152831512436988850123602517356624543870818215301281108133035319619228039717983820285996239767564037116482329486865911430962777054309995327505272873227434882160690807316159298742581475797662989474370238821776587827107039352601811776880958931949855481684176079219309180203499752108258967367847900086322886183036948140231559239320734461482655708115895764464341377563124671668216014362829819683839179709117500275713800382406189732416005738503376754528750203646664886820729776343046316574010269622132388197166043932474076468106065703973393659160966310467716023481972779847540786016709780719876715665944594381230643091108198231834250605582080831351525039282956557920660346542248831589903901583497133657273793791765740897347650372977650010013966894364179518011690159087006592113409497878389015134799573885199423498508413577533336458133096477789424418129510015558423068764095570542052511651772233484361238335973032946822406354139129662605254536915270094903932497850971379265596462139251560835853137159382572280868896699352476291057828945351978283483271708966085074944360517184568732110088622712359333417615700668231927260596772359359111566996611610145817100188729902056830154941134249786732375038172415246011540922451093239147476848296942880296799638167659344123163130030530793326319601316284421077913274848468579995585918671958716152730558629041575243505558532114635381689199907693719128455800943156387334018614325004556434281000580873324834468688721925430568937395802171686159328193868716148884618350050051411279975312875960936595402611557478679156987457724753492591547004224173659020590917390196282728397136208226602767729362252347092505452075939381118128870839615119552309799311082084769700983228785859969788687892383809655992921016372411991546433182212178054016524110588823306663193790372277320458684187648959226354680586177315439361216615162572225119608166700688575987960091146516228947241337179119708897748785310191514351162877504565196996998615348584866383403198854657691168485155076046423760793796138416240511625680200352864031814960787485575129413915297207429091478544195999581735275229027892581209937493468606908593336456760104506010898408409811642247385141044456897394956915332809437023586142443336015393495442141868065820073581030035697818371971519740447029389525704405807090138358608650318382259292071360256280623297823518374881546519874282159040319683280340678121359909258884120246889262114453492038903021800879396416703813175605525520963737184269662593335396130646929639970419678751743618352922138912955391510494429139397266429035620068181153246591206181763934195219285979685400513181661219284364100412065298443901229407221299877391852635853285860578059048939677177922396965268909490826897485277052839886104018303300216222049357968842165534428439937810703960332064252045125454325484148596766500974264893815327305797234040002453771455416995486439963876530599150055073789462589495599196462917602398687550474067189817734468672498618492772647704778084163687165405197941023989598573807558461198038836516186789605115500614749518050662502463152012706272543315401297828348368896552392360546356639310302039220117884196887546745565477706091480298115718112737273211050948398142804969155308333544090602145383630018196281757166238005942626948729594248183102815334509636375864543371610050667899114706534828573995882907182734942094622169474026399284213740575811766100763962690497783954583631372129535854848408704860506600480825642290984277365078513080886605007750863283675371988941868550957098141545633513018554773277169384334625394666973400223140282457769612613937245620404829241444307205241627762213078056817142836641216989519480843470219606853753047928380166654233386301807073855446857053168921444883113270807207833806952438207915862372509587958267861540756999455555776501145675436699418972834240865809860921906534577841957442795785456656949954607994522386724872653305781723849221096831340072104586665244588962862921330619870873144425771709269966851079709723756018312897676939312637865246806029854067022255833874291871241506631935566484059968269838200670416906810456220063413969705193012998461042348380114422345797294274015100240016268737792410608779357353930518347970889768915339956152804755834669152412671046545138888298573792566799031288951847151187614126523065504073369262887240630081435679467047281201195811737483095949652913383270941184843114471179529174287471342874480776152205813576974288488922165546863755177360180793047074462247641921037476662426364993518570224589585690365990777773964523481812455855730096698894906851722627612310743360396237143957707565490218784698267362588521794976572531821422237484195086210565611943690560944523256071246641310555171048985961436101776844735116741680623246246859969241640995897913270243544845393349156046912457695971900061826563894242254373656886778211226217225613268815510094121132480446225398195228175391015410855008361955162353291380621579799590489079057307905721740000979974822186185985604945397384267336856026867134448038899307874920062657524420934087417647319372275262851301123862614620821284718813856238521314750333481645754830136817932723735084391394322859308148016303233091204028193338154675349245908901029991952727507111080616310724473629184484356959064548318677139162550586091324677824160642816262824381024257070524900261129286581803289387725604325626857570021285979960516358827644800162447900716995879345611920787804416809822187561047318497456533615192935597063895191837672259231641086522569336977377539370179527195616865705266949507907810021514693108691068348934798914494950648639020644315921652983078187851471406600455820778904751209028957744864545120742495881455687830601341439153522156013286432167081489620715996647567275949525461173451855965262212608596988556015600737037416767474009969446202588257871363137936245889857928208204704445230941733649266472008229492686589893155297535605603252939975782584936936379653014721344630805640156745752306295575151548177500986965607111414384435102504649844547352151186256527723160582394674926801026333898668579156881479666697575074444072034147696088102242236472882464091493102258486287742710634883314162332844013223505035525714905692562991689752903781671257778042658575888959842341172321711846822690937736762936661915355718771835166225869092939787952060923420510787691510448555434768645449846788722829434228601592203104949713456614243482023633709303124119945434180535846542144121710728700822046845478394664473210499740642919588257196489442985504851102729659981826841219389520768964157231959297442056372950890329231289477887995831760215071586530571769605777510691812511809211158780482755195687937880290664573239425566102048131113539285330899392126806903430426182928719554379062883213684173511544098821357601831520880024167641589675810428843792686622149943636313178112813965425597943325561862908384263107209485146516318354283396141015291874229672202679637561669266287382327911906627276207234429789012347873935251315653788188549499711664056077661359959288061708739214351648108357134778919823256428552091721394082531007668838710557432369968149373359753294947607794729833343657596451235820455791314296831366955601694665449755065470118627957845229322136696113254421826642475018203124183891858361102443601946850860334431780842287507266667925818256603980540443952497867547614955649633891624284546242975816149656270934508253323310122439939191476960197063844091338995287206804308946518476956508823101076819549757741418839053878589731752085954964606558616900489381025114753616613205939719125722799421592662595575474912888844546783186783686850915224268508160514830595208727389622565366953086057164786217910572158330318552674835951907279278879761240231748902214830171664519127557404828400695015074646264561106070308594308477881302927377222371024547071478697251644285723160042577603710597467538291525741309064497107380688105142290756871749484097687777346612383633285877010890455429599847097599254839285336221038741030919670975791458102943970480734354564382966093074551839200457648693544354145290907604499336579095491320862559395595431796479749205860920607255316874047618482352669046960901005550691478218342049992688144864092517061923782238037002700133585357777434531602277580472538679155680475848944425503431777888481403359240297727919042129296626283169569791124614732035320687215618816119436136718366324841773200684193427447609620223646438244594532103110828612029287517598461793304284899845932907085509554276387609991630990226261529472147011754758937445172301805187586981702558565418243410111808645704034097794634532278458773445122628643957200835594373962523664889227009579269974884911130211151491365505281459986820721800172329425323265407855207983650707162137266539598478504644865263220231956031756343667292552297681259009842055948868581665968831533609500836963542961974997672507745517356000012159549101087301495561234778953793002943403834738132965915632548054385555807867426856558527156217186956292708006620767775112755128741247138366723370783700572132479943909273671109240641620619755921903734440078988499226351618105948628285337042816761599879487228643023837468535017919372728389472126862125079399876086126238872428658218507419129006973280001762865352158402096561459779884153579372736774170372598296769827363489793664659836701146338036312113957789343499863585946471266214414543311884339818616727188057494268207805156002339353307897319630774264546225969735463268744071932076593415209485594835371836129218431864612359868960688598348031050759398481345740126845866376616319799027008935617483995138349737543865497276487210934902843197476827239759501431977703053297013946460732708010837354115768011702716213951592051953996116842131466328846707543589273232766214109385053216497995990832999881109599932880093643623569587275815279865139252275604717216257977580455215832215537559387153129066471649246171747703080140295158473481928022573941600993632566912998231241393108892275101571270115791265763129766762880669322667241876392359541118687195635894837000828559897930265357215708684384287725805602014110551116576928231630864775370264642652239184847041444063335983465976229693711882515518557692485195519470474765956043022483694139078535750638525505807323890486868034038790836623325389058197348113082618552483009304538127879342357628425038627225914363758489356842286126400494401054409063227948203080452582654705302710364893456135230607146522286264501317229927486395601965450384347937221897328772394940243065194340774957120171983032438051461747154882126823214578778849835019128247768987553323876340656355964268215734974821582181933516866684786284433227545632759907870072899645642653137262193819633435259351592959332994279874939750859935942481791335052769964845890797514588906379945319992536878134382377152685814458096491532296374218052330673965953255267097012892985032042141357830089959495804537937487746481751434938998693240366277444830508350532717494656059681107289935913795043609974854936391325858714930710481234318480034493372723171766778782062540104750757444616646400763937744924455684474329441312347845994202163397770724283892011262670697302261595035690895281001752475671604755434249608227609426267503679899612907874528323832740931774063899022332116432405679678241352029550047359177764418200764548525552723053845880140090913726231931660352531930046143743711101030646542374249341612665806171113305370050802776110253233620166956942874889606130841008881991425668450094523002027943028967984641947948206490891941452478416879743161358373290248141760427170561744558315308682306699409982465775672677233895514580009583949837230550808817191596216335460630368959099007213783610591158069964870313703365654486822966280913454101834617689782341441662053900879087890575692652207073369105052025977900725642419463281974271738854712059867337742457824766092907438688519166754588221532515323306270330580336443599997378934390582962038771483621420020616846322362192949152331903444773595196892767131233236848554368218325434426871009352981917295609830833847546337185185634724796374826880445181770161559628561993489277259846652881773118114250217691742058499428284302534868805025191839241871910905656369709132193061096342370006312985781823689474353315692963315065378715160091823604487356411684179884706417065206010404248398425879601882535328707422115242739079767108676681011251172682048802521657948405672703447478932644859896173123230303220334847207885792321254725846088312951871706921832638267767771511270304230896653552055427309587965467188081296727101319441097207479641282181982156843295001500326818912126249953192461331331328556274431097218950632069478955168733276163584050552768830635374355504685511126829057633932512606940250562996706263886896164899824336539122082788153044363709216548685624367372097354196000859563298093481428689029666529492421121909162627568982026570488074537849776272787618681821091822225253909511537031038770313288427780076760624979361781269361399318758558913790527277008347724965431448082932329313100426724002670902606794980740485764841892994287569348870149587753633655171806292347649990859579459126912115896841559191496495816145778913705499515188619321471817246564260292674372347747459785145883266021666770193747563143153101492960217148423035901964615763355540427967470261215133723096447871596860155917287193002225657750174190057271407605585974905483649966607476295905694342308235844621073592477619861051500118667013478166625730952081893813704405964539397459520128833417851369809783522741013956265505172527007502374268239669064774077069299062240000112448745971116413307446170647584259856426285843980309699556317034610089001213085645018925170327334817904758529523002555541627640581986567679459360428091044034462517330107241968516490084231389659927754485681413409219000454594878053601803087562097519300870099493314280742688668670972065229374297903374655991357831768819745153213076751506397322365811232275989984909276510732785580270858178336743384581014291434834319353757527280185234542007237356973345835724762066152154379551426763739860740931479328038007367269338008555458251863913430714610218368267876363846256985553844448999841580881046400524553738321393160364303992575566403430866965569007107249371968857469591298463710199944599690194186810021007301324129567433026324114091345927205996947032581453092810615722144333146720007113412347116124233404429025542370904275631474974780013821040129348986115927641085245469853226900313937841706234105103824555823221822788976645773901002999484786390668980168297089027294362664396256043161446444741276433032558348829777445377550414315930559330301391753809564906352797840540408938913784873683923653945546716769905222702318077217008324970471838390322541826680851618184831003852194083832412758922630097480783339992813205265145721292760034466537049415885794527483912780008443447475055375668950115763201150374299120597250056248234847806433348943497169609875112845535786940577282709696058431702393264168318397183650065729159244965272790728911999577196991099469393696519042604842368562203984452318105269142812739852738397365268988450198886882112003486586306239505824723035743273278854661179893418865738288598270945996896958973910956158853639665960042383621822171267431419632516555537599325803747953363497849461114153080895763010847546961735156568767675003775306263371662118841339200229547089138000308705841056185860282933329521300354280016902012390485020298614178503041823715873689358396444615507952233670951204540828058740385693750222971788853570419679793201226159988749524109950307545368481583628987759155278005181800409084461058119572368043987525968495276596572231856141824915084386262085178807981700079741067038067834274441020683350591509234334957708987861698257947900861474881864981449774139226835012551318667945163145110164831061753498012715836064436884283370857472133062283093786311741266010121102881085693125119953106883512127588092594328806557181040985098772224664230114599122619823301998821770320296615753502339524098073681543931229845629499110094757378418530431283924060990761331908433793924989632728627407301756704429552295145841327608070177926068984868112068535944016615023038230103521495639171875632869422964039715071735621408869565113754844561040061960817553840818905703614838055060221092780139405022845059711605765031712603097972425933151590922135022591140312254462612950039733721566876183880548377952950812826463431001898794316911152584755693670568068592349833464672336572809050469095877013510268594271078814774415003836029563126905328079534021378229145984228156786733163817900339773542850202418699509190080236561237154124058076654437478009775558395500133790596104928025201535837607281157144545291464168578314180411875070779718171183745371441365469095712884313437870569310001556316245022829470941206283902617425461527274712981185451773215903220126405449401750275373182324282624647691997129613140010465175132366270742797172006150650254829969002523357735993993327917251455169990850039356161114660813391697469460181621805184662451947182170772181417900824066364177657254204599292523689732344681347496524063741665145179048848321799402892853074420105537585073301951390998948516726269480686351169678036270864463401376157414535658150006949535290043856613541794419917349331029159433398388946037376952950221920559622217668106193227623005039569727620093266169035158506824179695925974141438976166000806238531243744435999228231323746453306132871228850165950473400965114162478818621406382376831815054374215159018710112804666688871592592301750525846922143645678394396066101514170718016561733395039218064780141241831223523067274593921432479731077574475388978242056014883713089669229953918807441586042504111630112714702560575309816259261549785351059139334924674356154382894036106830886665042960745947107211073961162145001454563390145695354481262701375333557104692007807189499365026341359115532544126685981669211928544126383896766305859009872256009127059166192591719063679201083339149793002157327694168503362860124442388500773963030336014055602757288610414962681826653667831450924990942800573747394964484961963246485658548946175610426881442727803598409514824704352746579816176148200972648772039686496243257328674543753445849119304104509452957278194231304740975180215113524472541578248772417190087827539716452876037306064183101734434057483971241897178399537141749430855467586005667573661184093908484147036501884147914648852739041105468049681174889469903194371258024867095210683037428687596741729437000551397375963726390159750155662494410166993432826284802544832552049335059728842242577307709473405941552670061952763091525501046815719640773268774276644092818837812648466555879361073374419653712679440511149850756197662401903508572619492712989893571062562389914259871499077226224397195367431650593314911496211145546091548720271921244043187071337089805024269410575699898862223033953478820141874017638823939617032894172246810550182747189137367679480976934848063959241294936457644965176434237273985620209375771253178705161275468707545992545839726621829187606918201532442646616899014567276824053495586789280344632251808780275157320051597031681057613022665900906923418438987630748906718948369147059639726717798655204773165543974467864319297208216221601272480435386807445412891317188815887100316572036414929323143980225781213664379468968612675938611607140468737178508422586456224917909413357600439328917067945984815492225837915720334468339062563015497502581358353331016764788064844090604279610306564597519520077837003088366163577259312825676978937226649719370611084981962706371419740121915093765159342414192312004217477981882706677769369705819680127053450329291972333630142669475104459598064452544838952738150917553151470366978353591415578689434402118308334697685891843090481156275308262273762218687130260665406708873955351750521180185495381372806746638093736728988311029051829326507340854817995126527639066219740918867059343664006688854539983770189593208277982582589781366284578744960127773773052184825734908967255864442687454939090919758081498628424408083300570272464127166743060308078242376549987967094512226421443278470066957858951916731580081853029843343980394323993377082288032922673844613114272406115938710251793085611873264884398185137496178185829960796935483549519739948480626994182906650131557958051573482441260742573650604527688983948308812853766828467706270248062357126056965906330560614384702735413834322279129011375670632178347175100767013024674269598650745139761564804350150120899866526837779547303507849609090781732985845663315058681162525247628940706984581553229041579783385060466660080109456372220307465993533967022270373650757973262276748283444999981379656939443851811103679760918042668702212714015965105401974545970965150968496904608714850997370078472689685978684871303322799966904154129666172831102308717294967784203546531253371342649766048645853620270357306534718005696494842939173846945165455612369573027119734426512608815247781420606025316548380149632170809518008405704335445784627306709017558021678528960016999366294428053999245811436823604609389669030100631465323962091377045379436327024235979287278738864873300423431049690994822313931602027074276304249917222837613067666778948736849517581433184702187745326578798185197979713885509582199041723893897429628272447381091907043604386079522334280602265550039093486671035740907636637922358413243798285641963395643010575687512619806568217003104728073161649759104418658221265742224724632968343371977003105049126968081626189317300939392417096671496462810767241211724606172046333729278118223998097274002849073007926456925310472558291266829217587625984156014260123805946992084137729291473480579532666752655730406701904737053898025837160052660658844314210989997396570810365286672049936047786773130524248442892371481199620116297447104023902814412295248877902059556552979922119393776148251476769874213171684427961371766332045984674504774348540554645920202893650981996692274756912793838496572852930602258971264383620594813153231434326115580142511899041783670177267754761128334438832288925388104111250450613271867610610759112336133331980785753487804635467426806836326385412362668033049632257237428002497842346334342775676231367114624207963035411644936545413235820272488817276300069966779914337241741506222672116281722691922883975102203447835492576834360307759773951814003344634799909418178701929993476164226749431195723892680357542809182832450975704688812224904562163161378898410978746072886362442334050008370048011351845223600142946704333250271648768089267873710774374245462563477544830937608067495310665009800332883784000556513299600585781937351288634782245412686190368564734034215923603861872731163520488001777920318928087969455203217715100164081128368405976221493629166568421049404783936357025537130121730726792311440262093633631387383853002278713184974778149416463476982260955767705918083211341338608751550581657555319736028407523374345782615179191552922779865655781431063213886399356007563518237621931904490030318271198981660378319912265657103451736610615321967536134469051801798378066890391824852350919907864951142492956287694842695513889368568962195531008642695246666598803412196106936635998056569170386793576436055071657986817860625749890656250985113273843319903545569917916579040374201791635046813260985507242893731201666650826376771204202350324532811823193001233602302313427835001658576925327116833779471066803982040006564069418426822231985279176013533788796931716842456071337363611648633982866421202667904596044556123051929799323525125701560482073097216245704201902879487231056148802692641639308737573799101425821681476083905136118485867679965451280114728123789688513444575193247769383612181754704563768298759917512510952954095512186606697004449370848180313978007974549455158575794298554935957307416579081317421775927950776666345375351744258690047294243960026740230949193001525644792252098128917977698795147459917639753639509823655809210735472851687508590099181740767695680345817509587768471733239899675174513275403475432240017329466554940013622471717836048861354485640334123563507039848543903500089245629500870122875891395988754459732718302650834168827531775284226429992874189026232404070224258409908289151137817967965928365041345745639614985805845388596675429569012708634313955481459128384753709908445308085605197807894845653126028769317572321686883138105854604666710711387704153503236455522569800304983863172431710336639890279810095493138158556714213383257119839287474220616888126453724266708223307146185125029781224043593486066783597565496063926365170223747912390206789713807422957858949833520638833126992760078023569222069092276142958045063970445242863423510634709259089966974533667962069512987335635241733753079030932042723585268468178856750135148538666988035504105112009330891286037054571338225873582271628921823332956395571840524746616276413497059533988864001361054299258925583495685589894748691740912761283840554774989485567701040868431693773149121712562752008819380640220217834264654484076391564775725308151154453704790574629628190923470096745020829172052122551659556057884011166411792259242875538073324312764390748158582086000574218211277100700002142456654423124998859710183235769098710049413877665548115669053400972141907851433329250579420184772847894107807103157878340658395413562555398779275543597794124369829566145266232241259149355267940432768341492853938054938151168523516235584933487925862218519412195541331577475274727252871265417699090282655017030026970112392123368666060406714746307551124227445395726955006476427718872481581431449741213519776651223799229530233028383995510415978022114767348777421926915354544024331080067181184210828224550118064835353995126327059287228647053136909366533248518162378344736172787673996679876038839681119880663092302471129660626971592556015778241905627125098243018158789738658962031268854409520948329323470082020972685189100921609501333364346360631473624820086213839103054701015441430444909861631015891792272425367923894521853859721221313449587650372037450744717027558724715511530293842170531662099458684440301099867421062503850490430587440275031169331314913454607071129173121513642954863117360115963567751153440066807511789205405717958182584622008707199027805798332851774104632353102389418260393214204711486691971864155013204669200951173628922058916641513798254829364103285570396423239501594528298339517733637200035854538843356654969523850223359416846678432615282294006863074977187377342808462576981773609732176575480245439641377245521617645536929504932385004197370559172128656482011282231151056503327363141238352368972382115920066653844579465249314567085753110815468375423201174305717640421644737142727345560310825209850243328123421083477163062526916085552730514036043486496838343995678187167725488882264337851626576422174828414726865556037480626688684406636581159352242861797679160097795292072193606588944774707227881061109944261531320361424162827565476296499660621065253566016722516932858879067718759538137276024447313634140877552994753377747945818051794558893755081768773960222967308584318375298322180780495175283738399718621587019199244223668163310916657728233117680662443438180334421688430567201343096313991515658440003310383312173125283445173153561588696422491915273581925182310378822319299988134904709029045496505654803530686340479070671596505440948895102853480634342116496127229312741781641950395234492254595796547762498763897549798707391730322788709246827774430267869883536610083194849384802913830922398314184746837573790254828709264088917417739336613629471662315678962579406074225075777856927440060299878545964521781531259019803703485372614505200839330980124061160978979083351379809150786747942255997523223139301089856938911698105661986477251103167863059965000983976031896042860874367027423799361774001849311322668359735588796452361659451331897369341835156491341461426822087671798943872135744093047996638932996669338578242616939533156638379702952876078640763900614757158972204410147386424753320684722470284898291245524318343904000569481349840856798125421189035329331537372716036327657063458336691041326933457755080262262325777131884732348517107273297234647345785959057633158829835477454920134554573801749454210553319448483827017549107920996059480666564462095906099936603284690025956758994623558784903641407290125684018813997973631450957815910497418731258877531822889608498976507536902167539226561488700991694539918164542507441532808844671563242117167756152725958587244375214493121647611908456577228583340136927242115007083103140494853416564454015224150317267115830756568269030918755341148333819578654009617204652795226351327422872924107188741633996864051571753263210499954211011097966659849317341888723533351189648619200313453012169010817434011389473730705079687449474646346434815259138661872721230836721106110758567292254084344527643708668204302240013708129295659724128962394911363385817207570518768574348880039916400151033237956282737693556570164864796408067487931845660649907575961159819371845170917982994160804273205351182138475584093709932986437646107294690468248851951394614790066731479833778378714786951744448630639062995801307760450544508226143018207026970445726279416631174731295225551614372372462508454969958751404644725560580314597214695717639939347109380843161910023050584362985408555100626824443254334967692639877108386629152874484855910675453752756235930595473858667615635726544051086373857532758816297285843262147722878370367503547156722220668052583425166005989034569122280819216570081270845222363345309451964400040530580378230274663658817647329762003709296620973990779481972543502800705235161757770186194897482888682961283099995391620416013546549663046207035560403692305448059923348480657001589573697714458702527264738037836812326674251159381313098665788934159437812322735462075664768660673522550018687472659330821921162856984380446845671782178469838475777400115941053103454628033007901749157144724857930900722615575828477960767806142947712626618408613763026893533483073532285288699974762761433133793007379797190914794260319257031619624533831253066363070768036099498390491526844811050996240628864633822227713968344968664563784678665385280210048449718892775404832401701355741310095087492793532575748110613549208206587378311132077675089348798779068786543313003070879972486906618834828647905885449314546646221238199812393147724809896588793516227746165672048704305395084100413277326138743939896213471551198573971421671177326271160596642341718048957925418247129413545310433218408895770849772396716539939581678720969364571852022260408736630675048299928456692094118943246835435373424023184438890988722052652423549078794480894198354586678972482420325766603505683664986207352556679609032127044970951956383479664881242236510830226204069616640314606808397796186856078223392288292952549686200644616909001422859280152468667307240985953387346510909267604642512114174600222581907572331076152318421341018484856361382790550194099825548589351922549658417916594502513422206547386793651589439267392076892053271838663497141878096901097370522012922330880704694855620603514414433954099551905627282909871955625880119912764606793655338814798702776979594973624656032900824133729999950394680189965190700824926805792545742795049887256108356875902072174292671272056205903156769335207304771541039110717817074355634741280980855197187627731184720689524272773908972349074748934788965104168696678162310192044418434387597597227043410894108620323391116426684046992997651099909214188670226590941996159499909545233173729981188775878933881267333835623120728281892349291526983969095306581960265527282937532157349540552485628564119092382045992034323258505926533737040581516599990896088402385130687431623109737228340532803547227215007641648750141323137496307843380333858538504100653448199072417884968109161127924163322094394659623429973538046745181069780109458313070506588225673996641642141579503939122414401587813300371301061070206409398424036216439164193913647001920676987619391716892553181858481213225926658852924450640733350542946067254381290582679817765568999899358890654028887895387978732994475221613251721428246039877818555652418763966586624805775069782759546523330460495936381648448777835466862495956787715671407673299772327713648306019330158132346356647653075560944307059589030819594611430968140804974626861484938392331481537322023049650198019613418220766448419464147339380334560451126541907849321686146110143834956350199299709662583141321883268506139934900637191772179110597723549895785759827950634281107325168514498169348763567211172566297313518293510882211149013930202497092746774530980098274651212736650159688195084487587417810412879082535863649250471487920136224480302292098080761144385078326281172703617460501554453704707616222711736084466350053720421991081610364314187347002448424632135955478981534290239138554179421859980965928473006093987630016464005849635988563698730319227727772787757630100494899131602442091283218711170136187094177501797543599782192092431667225208136488686641970090464838079078528766162419477214707903692835418790006941350137418410927559186277126384445866347155890067288239771320447931785705130087440834175631165349595284916641369091131598520041708120849554903773165856905890345442561061764013304078936150767481709772410108631728584518438642451118007985137730931389893221198689845884891202073067567807207067187567779464805985314071510812055399691418300411554783582621153417313407247504724673489989282452248529335300812657469509697016606413549801388867019431352641150437158837333872818053182489969034478876033935880066585581742912116867716534620002142240673337265368927999277125612050616691602349322059737910546059047749870914731214209938182226515660675432896527019781047459134668954612205905328359045778126230259997963968130520048218701849728029036946209971121994810869721881450115192925563677519965371096837677171106867448307245980274252751166170320947318581128217457194684270784238797744225867244292376036618617648297509915055804694491551493607916457564978569570758899674041582020562645107164524426721833800233050986902485950171635367603107884488263785948113114243705776003298051140885457153230914081608855752044561907337554812416434454785429225467257863470149605349376412163088694265337438799343306470283260357133351903244547052752731440301303801025489507505730757986981795687394916368765213760998699360835633254442906518435898278513085515016085547463042316659890417986002545599199697030376257309178394377239506995607589458750519454851070436539937681558713377786602940709319243475514445903721601604711833178802352339346355564548718062624346742719344919785856100036330567346719101873178234111584889855017647572571220071648268124908249837202093603331712964364966000230881512700419938221320424444962078772988434365751063674772220361223374788655921186323285042364883040480388090377000716093188222241800582500233798386138242983569665133930790438008636126050635588363711252844071641014034912106788579912065734220054895210319200766130521760521013852091137697924076215100968041008397591852528465817968235989222128995102453203203187933491671925503203897126392305513914378709266945344798899178875463096237002318431459828080676731824402695500587346532704145001015276882886932416536093070635627464795465313982382506209456341126339105330629057593672549852050621514561571628101272385504028866494084982427997058676024757158787456667131268371565874972696681907008961761054403379903045716190892994629980258436736834106529521220986428760276786576294482249273897025737038493190293398715827834028513019299789201448230790429224954060528917086453714350528960474525979395385561184655448674752817240149214422010561467013034967558965728705014619657945694001201400612535301396230360115135455078754337070328132079001672012153514155652825041869106298877415653465342691821386628155243599243384042404194859707280198461849517052935906227364173547258458462057045960927413383578116423170042163956855793118067298469117139577526784424732666730388444169100788586312888455208519973426609430035502300630348615662743484676017528370399565484449141789444782821989744427103024347432550470510390665069544391782542153949078578653017684057993932549341886646360223533855431108086525240404249508951594808998406770240494371141540401581401800234107433158931084962192470965219939787419416026259528338946192618752418602889722587356516076709543607141961840719383121369157666558194702378674329040804173167511006005661765466275918526888273200880045564788122607345112754691456307194798284836018730526159938359642021706246265761397748356315858183260124927941042078780003698690070616253782639100617619232414154240966230323346504027403679398010141283178976593656686200519617738413096470111574735568960765314134825196572144872568267580019373956668822232159984569076433865153776076764276784443526773433626910707618031957940123953221511163773618832421666665250812937574505453562609473215182901008211057869600351274531033061466044913363247717390497972732590097965522200357362666485783371019432163189059271638626535855779487748857904265126253168936241536297480947759234009346910836323117964056128485568077087892741466346315710547666124295558948978341654726659396842858949889953567344623072482426853722005663528043340291341641722605504754323174209393761022255095875516974468123896376005339428086333545519684010147663519706663358853764671519903079277389702511252206876941208288343695125777306766535905187884626119066487862732043709192121862070661053183704496584541040712674712707676212000248038889736035394650075815182122685885995206069388381834347566587839778644778584082007836601665015487308720538626624407489241027700144687442220318205588426267272512893117849698150798539980780211608064127390753107305459848085941434520603898607370004269123456316591915574220400123842361067608779058818745538468123103053089300268226245282428462196183220941024360226333246086636110788872544835368841731171254118203264151035833150118177921621010326538227730326513340984318412956543026640516836687400107659313539083214431771493325777254030905381718142307974825847200503610432009618747315144600013836015334627290815130779524326828179011432658246337691832207043917675812813342957726280731972595151193384258232000905784947411266556969191342912577927140649831496940272168930510126380784900546585838366642365622743121805611886459455276554164368785845974378054795629370977257196535920663073302762319666472306697357694375690773036677772305771708148897879956596836881409029770274043907163441519085935533202587796631956492909918507231499266223992135795531547882598361228144042302042215900748395411997582976628707619044517920821405605351111636721602476877887394369819815675866140613979133002272080283308245014143616872290611991952950731760049536890560773087983840386068296982997793551324172281137430893569205241025272716590180219226850473280081424808466701324153970344917440728960616074174874953525706344641709222513255487623433527446961325555508951203416414623026502572538966268140899645904418259821223197402310082644498495547038020982972898431612117192475484763601627400385081747020561878917786437667509684073248103148320812503016461917244321202263539355412936086822329505941909928666784564728013150264499130904435758329581449650724221958050242197008478148102644450005843727013351691245075430010032313148333864730664326976082932046372346651724761664721644462186639319095781573132453171651919820283322158210636864940536704725166432299096554218820848860581749770875443215185972529171096186575710993039079326524358185720697444783407667686546876905909838631161561515275793276684441864542467467441272443853076096738644893379643782568668408187847711232323478644423865734125930372163133548081929202975383150459180075813744342870569162471289048250403342046081131131190296497183484748718695233306297130930181299502897972690574503847925489009855070828964051952296599102086759898022382636943264747254539699748250531206318577138156784990086919759660449346756739293740423027440917119883538651762072377251097267439221436773972937252355599187601393805167326151649413604650594852132091515207150081884650173092555794671913694073490758627499754348752266957422966563152912445891939749804702043699609367896456083122206757034992709174596166788892984773377244378847065654473447218155780149928029964972517121783007017328927653904475964715332408625756918753453627485337201774262383192647032088321575005538205927888939214992610008633319239989582724210388973495911370434390938026304858175893891516214984395421391067193724091602763223181201724260765623561029954885528781547017186645436580879283112237479017931470766365504894087026771007432708056723974587047490054927093113146516219694708591375291864484090792579008047982033858009760218655177681650608614299548374669872738991053468324104850392663697113884699987345529389622429384522559492003264455711845539425833796166897864921022382151671655907167764543632453294696462737793157901639538702935971630252466985765761392502958663005895310421930120074882873712265617278089535491143665742271163360791893408911568705071585165180559090261107818623644675292796925940498431338738062826488768285701361155126589246535616828417080451426995447367273100580058112775907828093303178914072601249237787043291426889921340605242715466463880151501385508594443388996108798185078410791471235124965744549531904773122080267749002838652611821933992545229227683092163305299194845972357600730724953971411767658716417401157152346663409683530368859192698171505263091429347955841436421738022754158304997485437650211650840984166470195738372558007221775314015361438606558009826886606609425923346548479906876827176181488392780552894299009791960995650261133940740122286180740301049449386939045340352208526285621042574662720353200223033502011222500870657724825522411593625590103098419410534063485295503539506859604617218324246470127993112271790098073912027422991179136987446477605706574020879801522133080962295753980997601210053976539002664680191404548964269597295471000016592492841505395833814142221674090894743610021228669978956501551464054154640342005735764377228309087391956616825566005409558238924899414341724837017381874528904048606658966703224210216349261521963633168405665597400991337366107700795350395368633841453825362287754767306214990284058841238138303890620221997114298033257600810518097695226145587690470344991571890831038042889373038757403519728921394415118050699969312173255374677928522013946696770331652429755800543991977995589502220283069782020143285639493741643951216579622074824580794980613799459312687916715787723539158468111336071355509475959363463284059308237952570758807324107494922903599596410668204893431081356024600791370855521491484134052530935981222439563887582359983806240385191771132929867649787713498947661452244789972374397370043698711331163457702232277540402258384679229963505708753374907251960716480727780301324691045431788591566958086747828037139912212699404812691377595264184703175215711962216369945995028645612606873825542502654558558285091699868072874437763857676446546283571461084460150851259583875744698488488272834680851385213764698387865351850314792967501072331194119985311923598361198870321153495392510719962760583350212316670337460351020501425128102690473713832355061808771869256123078788469263141578936190246347892645757395069205229565749509297476161696650546229102561419764438464834653826388675599647634903742363186077036262323955761914301476487970183895963707225888669339871499271638215988732256365681997981404985274614035342045255799180065204727613025618920539827836660234369528922302466264685147815612273504985703189032458046965285127881244674797169509516096408815444527385446524771640271460071593846713321400822383947024565899350458569284848801834102845458941282346599692814981562257031879337103431673366296813311268062494340365021599572182718799088328317784789161822297191533627695135557418830712443072181747115425775226254135209701429149548401921305411033612395797812133624454086974172344606656204235193421128118911970242174705348110534182001657496056232156189910770729916358029682175095294600499830348654741997863503285635000846118628274987120074698671386729200984512842107834216541701120228433862907039267719142972615616447166368530732831346377425575248480140681083435889026922952208596518287954600827837868450354757891868146009369920109233038102246072373333815099120967797020225984965434861783238858437892243039053287033000089952305070766228696102150072363154335114192980486697379634095426894925989316398802652806421261778607241489557388521466481679700151286162335106271258283628240442149260317499446877820833412931124523534878040300285579820373758986101541801822794739006315913281631601682347665372091085421645901726423459064028511867353097448594215888093691760486193560824912220601009175866024793006809593511177346001029468308040806007852874211143053460763607994282018479407532895561353501457451009653905954425228627215236077837368005103943379365046733980391332760575021472335751583101737619439325163131422805968972734576408265588355619891387731396036177633480426200938709034627196098069753167210400249233927396210475918176077347128754773769710216981950547767290731638355830674412765525135557147934651557718125931029266014150158888565123818962002879709716602323805317116750536528658335028511487059895346145252599157035300719225792202862363122188238814614523803542766315904888134060210917563981611469807929687662306192097129325021730908700664202311050901121373542582937181375796897107503765727317192530941033915568959674873710429495134872599423053379970334842864727025554073989298811811059522067911844332963932336946562524969958637642114797524600112608712701382170813230964976454310827282453317102111933143712823545614128225331887327018980770724681705471902272409433777018578647316884402163218270981994815463778749282408446080167279659542462644137114109628022707811259492658533258848545793732699567606949291250019336128382019964181642520754421421505344173126957589990882984183829963037397752487027873644880998634755149214352963253698402850983049705446145938319085850459114049477867129421672428058412172391150690878774917378182842980686132786455311640955146043417711280756440814384054329780681583265107168186897331185644209528654202894703290156834353091311709549629238044807035892037522523640897044435050165623753326310134434086053379941495010546269276291028645967561896954667830588362295172847011712421775629863101420037297709637386449289340086395517609738881747947680394928645079698206758629218219487361694737130624695616990417970317622201934807379855653417872216135911275617130337991646763008401197305091885314329012401808464912206413967719415407366904147746551623314659008642712551669318569084470845429779918002221951120099752353431150229288022398460488708471310845200922189269606526330414231316971427535465492944754509681219246254118616205827823390393913465527407318017638465517352338361623975937757954142833531987327749144805404502557730624475637922928411521300799873004026537632114020330955899761575926646977102626501693374864182876374249658451996923433720421522667487175864001774949847937540078532033330344585334166506141297472122130120386683864955416768463162422153962603621701407636943376957195965047108419904395869436871768770816794467398955473027656814576964540153640010146052186156101343212616303914476095245574296817578757206581070378683425451749111117641039275495250413915063246389189785894378061044812679372065397715615781534911512155859603971019701558718281556667880017496036267259967277825943790759663191781410810565635068048312117294119863114908563522369208283444418222751884866836799489104677442189616925333626776975924807183881049460828991671327219705240545851889772758574053738382115868822484454370390508862573262021719419216232214913112916164397739753174382803173048631859229386785422644431596086905179859187391567167393595332414337997829935486563020509872039432221228083481026873457529554052246398236159272730510710404754121674050645978723967804215511587190663219655833184441305754988220011197087961410238917318952618146511219685202523033344029781873581984217492562312332868987141875775657878240329740450162868464457735083679294591765420005077255390007851832041951709309259546706541307191907096205865078701232083132039507359361924559072950444842228289860726154453030079723550671804237539389306474354528727237805119535360287243388421486514662146203517678533052335721499344417337338744979677621002079766524932631410689781011338329475785323340208201219217724399455215261591858609338258262232297825943617156839312957209349524250507371083954750253328505784613210284527383270396023221450180633980099219374264473134298709637172316787622938378431518030497376743530827212986103798697947186203083242740339704237164171753637088525655478890921925211725456889441576885111010371216034691749263379673671791360432112886996749788598313528875405603881218999755075254036881487167872812107356871297767465277151860692868101191405532374369590228934954431670990185093931905252970816374036656051405752261464140574556684104952147045091223575179564127813191332431740290500401050415391522041953308438629180312880858658334341066885844582908611000795252291886121938969360595054636826806793888913913612596659492061582673543962559759845259482453300727813915036907787934767138813983889347266477656408000403948292545406635610532499826266016184396654533760528724069282630304615710906438765648184278333591506824787134620560367827953144502800525593513748872448949474653565736456078992164032924213025204054813711855549355265516727981499825262034573678205722145319210541769774982406608467034775279406751141115389875659598880152119059500339930865596890908317205545884425746959044146068015692686163261120322566764500613156186204527695487879022734367172785751741106364538610069592795661063215072705105880346514282257491412297685680177895188260776775151444065166033611602285762478312449532134836042064695636182735043355233784249397357653652452032391467944452917859249891912728618024321198047556270561686499517432662912797461977583572691279920625290923877647413763815686092614821126204600923690987165763387038228848115237746492830907212370754011519263564461246731256106478107895590046700058865652137819915759559379613832850733747778144890856928792687585779975286844615360862740238793141377738221442795055858294297866144111329424311233278622055757870640265059862114176593815213574319628704116799307939289141359818570358850557990793384576763229792004237013917449454481169069064481034279268710813476168120938106721085780053616597321900691918894980134679333671910056505056618165195043417130932391737929681898563445455655815908895391778263591759954699152525783981961090193955056824563535169632159309751127383668475393544706281631235991710302353233228793523968164590172221873002757340876369926947273074451061929946180747302687637409026121948844050177797455890218549354426678417485082067329889749427656949548508617288814032317837280778673418430501922072432792761051019784604820302491610864337175753470914938634608286200463843025335375793003865595724904250698587466955703537994649508686912219831889114425896113503386101789756624066499357586946262411379023091378586698964153684544954469510729140739856387839766813476677338755653960008627671106137015586101679362528680831691217426024045896404793005669017994722027028608422429826635066929082824423829321060905494975695333731593981520522249306531837956184573306668969500561354920563535363909828671686128586550404822501387912712593796885965726765220453391596364922904482244383927470735789344570547300341825195972513570451265632247873167850241495879868801181236077216363584600417557754287171194195216394489089215366854748467143808045043131501957373385615258635465636020895097661886454238898956552932015508820585410732105334601519253711007808590721560289130320839102420958138559531435218566051306225383148093060804839423062521131124065503869905078292976221929549010862194826025310067772012681103233203521071455152058606409578950111143455511833874305681674824135094972171636046811881983318301014457138047116154783254584143742643319263417538482162769094890589637744214105298535591728354156319098165111669615396709902239460352996781772063310771240261116089670984859002418575953535977243106380906583990523429313547727585879513596669569444252651860799913272149751870211355053415796604443325146792144323861647826212717500613146594840043841136782737225619757414084367292576362326040397218578039593864073894640781937914070150028839672030477772508558575901753891008073420500104973054195698254498415071041801318121671860028945691446607883965042615162110689862730874683190985666583969130708254008277057690285505124313791351577433864401296164141818603176629900568591226576733626142108036680219634617464853471838443343159878774519782458684343957844620229725863896634106256626559874931445669974688177378893619777415421678814291152579156087131943542479216005200131364283429220833062291684314584089222111631892852874213017672334177145248115938623354885875455005033353188072581684439886341790877990981171633640283444185728114355218118118711151347832849603409973585949030446342187444425576312241728368640512400297170980250319280218446267395148307799793243865007038417276042494751439808260225517564494640780717440252998317005097389243172531577160442217084829457549109203086302447744225481456637366132609511353443640277334421761444838069334311813233868017973717259888526389986992228534755901541099751952600564092773751982275810212327856274914379876825747494468436516990531604432146727008697903940240787823559436634852427984313255238557542585238501158946347350954049487337530123859084084788187107650378629574579369266683267807867242351798658961330268344768958039495153076957013243995557334513166392884353948853045878714176614323910867927348921111251567952888231179846867383242591089928057629656801406021267497002694785347550675570064378702061371109162934813272837654698230883090276788121573516660316083467716323621713194247351801435493894835125489960765760319926988664103403436053536120332838494876757131449413451343425907463969085817147724580511754594702510675286346417875214972856733967289573335540188116308631868317238221105089347466088151385905799409024410090307300744937505555293891426081954952190184689780708820289139884656915651679312067219345289867443707806642969364751117331411644191682764384616800535188900008904563087069796159476619061474010231154689874097461571634240569849359007378252777823452252404709460929181306229162681671615361502880463891066137281589179008082361332788651039741188169560871600026574269269732650848976712053785841863834963033243646137837955904160349893520475375594068523466755297870056630129762999708619155118983239676924421719958613945866310391745776439955231338809255949441645709355725688348795242325645847425865859593275755082895611259585314402332809332688883490712650708755820444473060023491283362618306303507659114698569829500260320201338217683181424584052234816501768848573147572191648908485762405914096425057751654895872515581388950257410464637932010462916710555260679605597768086477613455268751759073360940923981674305178955069345780399963245975382487152537478444490908799893762520042972428130169714287165181335313813031023343344088519053517990829144671298185148186462603422182566575730162541410248607193468285703538506409949713532077625036366738748635078268871179150192274530761267151532247902444970043498035810400228698406456655583306237696954204341968070682468990081972508458637933278735671882387741023283914051619390370031814955407013100719295980938852169192223463944295054746520701242598733731316219477108176612976943672608756358231196913948406656823985577855613103109809692717817218665981386413345319807554210420248381595773351612901701662973244265733834366843459808288430927183485058757271250709590924645076432279177906692201515762251581455169680309002925927252847883849649196720124602707285765447659005240717875820669612389227881433244347139652417251377621773512878875646436901894110670250619013247320930562534138052060531856763440551323044730288164092108043676068188334512200346444105923120976366871585611457541741620768719407205660677082181807663578374202181363016147434524783357649888713237073952493977746720625510361692110940164897980782061165051133271293146405003746204473421720949528556949858526505860606670438304420371434202560571386408065841198469683595395552277197416793076393446367605721972991539948785371336200554367595283710958819578846056578353202092716051821274263079516902678595777917420246004058917683200807790713041002880244020207890299081911301552734227295561918314815962736573168701150909798119156235783571852221893889661595078422015061963455958041926170024709186922673828117218454305357282426051520037579418025826530174538967957790157821113461055930039146090488685347294417436364089112110566079090703256555769722603125163438141692097354944987471999769278720236336189704038196954419583517449125014714772328290677556450809791731342698942533005942963484462071237284264787042762848225630644774857533880268076388507772349070521531096206544710543601077842840833514313955626777770073665468154121076581987508358775178297976569120216808194524669652132341401914050154884263376327726848206099371047910476143129023519230506696951038804788323799527864943753184497903316723405395214145946513963403865485156248280620282129772259088947518150835380240817490738834089101858065683685081159654273901677081730697752743139467474428713897761526054070072152775029992506896887297740198347411482565112652973717480442040623958263547955226566728565739207215086475243755081545852273474898123182976462085019722329496335056091242692400786211570131938293102608772060793940111795574562012926772789039814961861076819991577860858999727758690577291999429015721662934324822457505578905701385304882493716714929071067937141977564321311978614551301091439028866512139994916333528763405398531551604643364861623976308476861123120181777965834195152265330712991585999629463239631299089856612428580076807318294980403278049820742714884949321675167640055299668880676880942546960696194618023968261089861575000949150806328617739028743185339889455780675556077657207398356434222823052646436406163110406446543039926093039735447032431729858267066127552434008330877548519528706469157069432838898114378610473090889505737699943988578870477984039394810904461801332007967863787913730513517729234414925703644292666167503964570715110727043927510909811142546237104836106117961520262245608950768539945454841060925537904428323828483059386470756797183840287626199831003323415271219648950783575533820395618116282230448239753958994876879912361247985215574740900016867006828202578142068947612365424438177851879214710782668555428171200089488604155219022226697624074963560201778564615325098139373073014413817763118076935565019957558447910564680172471796670022914428516455651128932356244991218702652881729413485781634309001153413238913473498228275731336096672460408289510712307003002289133725174473813894286567060409338350303914963788397525962410226651637070131435510778772150391651688074166188387929513283534757841319691357128837740657016423360436550008653051073930552911120763330654902560888985626554773049375213649899410106473137433805195333223438174384377539394710165927224902866367275981362007711256811969242314940500186713859337225216383228905945603143986535034470180220854405727575242221837013244789213548015076562291575849472517747327554355812154121761529460541864801265687493447862897092985182319899497588510123046838306276423328818984447016767522292886103918398508980740687031537440557937144155842680109622353683068032940813692232758813979842802187368483542571840012224872745051072383059149546486534125157455679673476046521336143018523339330843523235932126165044395192447624328957832391985241933619879811371911654174572883433430036772700254280980250392714735388297126221967148257090675494711664224540362784636136268173110352696469458143661062021437083914932815900100716741188272674361336793844174491129973953675809498607664416893156499433279753550684586392066420977806661788412068175904106848675229384194439493325739641520571270795275856233690354289800421313160803538946802255521231283110247966159681352076161291784387588518208824869719111549628642044544941709777147481258875763863896521119148383136287356494424485114874671692802331413114439951564007966271605066031887355659356062289451817356701182721085493974935741325412518015056779549345666191455744489850337202039298021311147802312389355635773060712235466806128797238433126656884236355606978619796848858931970797547777470466976293873860995486694323257426616134291279322257154687914152698677308420357115198887351162017656960027520110559528521778637603784538936600300414662081643088576096444198265887987556412133865918866262115999756401996532436115524298411939928073700657750796009220233274785063208061527866303471910023457316440806499637622659297664213183073503359202886156596311348902628410695265775405365440387731744168707666322630360506731046158209731876971542448537479815605379901433048052632827591397607483318551969228105165250391324959649012235614215997628107815733209042612824327396623774755950329031370144279149301051380125370057363355713559384926265799591367923545356535631475785268927382189683300265180804175290630736103230971873207953288904882925581450387956648984500094728854092988509423316961224385972509814168326404429210003367631505239715505541476848190434251272396610138211602724481701547145699145917367300745720779294105542705465372903696954743097873413505859839307382237013584910636642104963609385204942700032083090000116098104371726744856987495262946218949092997387966137712018212958150095425287942437730701692613775830928916144080123266976843280337483337417347766677327978357563397916713953546494999255209753048273952610782060851290141506295015005209262048936868209242742068604808824846377295799342559825639324731143015877429740656293404901719752770616334818014051494432691338494072411086425412444149095522681571977121629630976136743992442456419509800023056818857762103874357742872617314295279711150778249286972596158886646760329145988925741809355172477381553423371533547439009644335246819856332318731199156944999170989278434415240222160027369559577670911447159349585617520133965751881082946239586011733512873263011610880123059801321269495111827272318030444535709511420915457424865637794155089843193494176310548710026388239545407773861866305623869914548233264150476683143995560640009642023890722620105494768481527410600824893983410724495934329891918212680953032660667495335910316247787442868450130031623699419227051167725995918463080330215515373008766388862982355935563420797566474599233133736190296356378004443653351250912318258980018160000438551555223612853011512442238240490339978938105799212868018314811985131310186753170158872846195997367279324434318349144772683002424001268462631614233650392576353027194331036425974060045155392592024512272482013758023018021875656696160140109316567200139464641859576598013699032503520712832627624492187676692527962732635677508133014035405540798832497293012642196509056014840456064770304853847043873779942770759653733887616861007136286405825327916184438857900639086187589439658789954081098637108703015170432001334033487628511355427103142200184388128593239727954404738513773321213966840255577273325478116811015697333272886773383902226095918774421217822734462499353292524278593288676350725365786391623226071006307093325467852304910269211857345457782375580251742604994539790867244386567148384017627418358198610485610830085081116075334715973969624819536732585538493973117277671933389552604266584121271880708868812090386750624460639366326587083708054376940089389811728315117224840357201494587784501922541605625249664675648930315847637497792552179734680423269013922651993374916096500060577391669769565396192981494966122733941472672269303278480381117147059862260180276503884118457980775513851839318340504986726459839413297155342846610758310442750127711968186537630733562946782555442803278843080447537851267285283985276794876015473346285663574284408476525230883223550061087493111734580160252900940488072296622045867109704604876895266760546274844896771334857710498192801465682048480608414305399580792451768694238379169566640837695750980285635217672533940114492807072955689116519904497651404406825948175791198119734301706374865835336291705574548432404076712228263398140327999184475955945449257621283766102804538530975470063778469797132231166043143419799065535109149921917681659292996815195058565196950806062928456378652722848634698100489560971135946264888401149838085305440279499268469953047122782489457835319765867281967433051124078393787939677105503794768249591287904082213519888100219612002442240248651377808365871669723800810684415990559031383499486727751376662623321151913428266517181303289249703816167481452186805604891541031581480693359505126899796105110303733488024819141173563122354177595930935701823080808613938009080877665981353634628079045427189051659261501189613513607320236658748157805196584468132409627196511809412100981031958261745911343381224164990791997594905897930338166167756571819405444378277481907251243528742062784310240366975440521521826983338827353221956247557666985735695842992565308488743539756303789302978419230590790959035643589748314530800534474114823935064475282699030791880786872251549997283122555271485973196426656685465146813567084764782094246059525965110667739460788782386432251556950637335314545575476840312307060515528070239041643929310473192917263224169310541697415297355929378641266648768420058014158638032269016797154378863794722030791848738952437480708289714945020676309101990818581619077100218899627438887868685935944105140134519842917753125465091123468793833088849286910712682386450674291590530174645620712142659440035723007324705831960906876904486696587555333883657720248348002958021217299779242562616424367581049354751693107972348106728536390845534926775337277023825262543376972111135626147612067758790610391143084051544709321414141484035350904394821774614834419669369464987011268300819044594249794845149368445600954780577658915621286385424402364270691133804043907469125395644101253008402356032458135733920807044733358057043846093665823845555932188841693505792983407770972175205292312396541523202819514210460309888672490339320867779127145220493994528032284806573898267597073168562654575303146489442761533116384158833925042320473216985739038024049224880565172111608665677906818883356072476025583721996886173019751764704607318004945518111247729601984573368962084757868393407894072208034428442756947974667394548356522985611368697387556023409977150397854277901731490231867695528789034941967627269028710735144991585542414862168028973976770754600516369676394797321788799200575271482546053862287464444250817670969024824035208871401996880056203152414545290127636792145786541531865094366189030691689659926424403639941276504474641756005866057134211262039703326337010327561451187915402758515693901903600138098788944803892380052673248229591839307563282984377488310320185033374824284978249300532199847929486548572408378892540375191099092485418505957002789645238253220506046450385120512895677147397598677458493872712932445095468005259993759279255420306129947481371401865148503002342962972669674326657539916033252361574183378374721343667698606501538872684057539549040991790394475992211483662144157871838320036596547220065330868602628837671174857686976075069309657638781589168021132496164124319939725836969296925868585421310210974044060681055730380222788928629677262939916051007627176940620131084262572861767609113599993273142404904409808035004777193727607359820444274482036290494838090668310391294359283143470935745921872066513949549992747031871370510248265794380131802986839789965042488814736281461775750062923536592264984911775855151934351224068587013670249634582861321571381847333455014559789675130511750209353386619668328118948673219942013034513155925850561449181246927250609499504188623195895075392815527571020415603387051540731539342248669674682916293612736810053933177870147509063686284301778483433151860053360514663157404060439606661816978439465821488984584501245217595054484967313153370162442614628551171755981174722111367937659251372358154215074118999263729166454646469005571153826292922531672921412461719186469077495458442784789656592073414227705889796245528180829046701045948148763983759953377146362916103033151329930001921175676066987377387157778447662029325964597938632430881525402967373014249060289673036900797602169128913091495739991897304062090408222681027588057139312746927487113013945102212780954869331169869854565567780541233357661707558832156125138432308172279876304691600611545148890158293832891506339704314440308369567124035423756315076853991839659658854226004531012811447341625443365642878896787435856417295452345639800020986709996217751039133367544408664785750374691898798955610217689854434109667192102349261090385634376822389767818428062744609911893215436807863915069116908734550978496638739211616119891135858822534688679637764615681083214867183063104604406097949958075296698548858277709952417189628696281115557801433643361775553820376829017892494969393483488884438272410572982143052794131974510073218844429420729633263796803895399132230885957617199760195561198998727218479732575078539175290635446092192940425348534490028883300574858953384832449138551841028618451128174690801770020352674556548120227572262667137142253199518643563938720429635600700635236976794348866895897614816659241365745546025345343433576349085626791904462057163316236477523732787333328699437202383977406063800402628914705388874783835234029152905621336880506394288713960282644472060933042208898655925926253833009257657289724687171773269911470526579118738733725321996992916494759788256399883052657181324693251933167522140266706496940804587952713209226445016710436495717059061341995587938587158417149624075868899829993782530132578963545270932670552323245459605021210603074560762197628999039006579629560174834832060301108540424853445790696329292524987046506140611563919090141037976313352820582802937739343517576586857584917962181763095663062291484225358983965716696796993324336415198723326912995514898395311989422249211348254116319845752517589903761668287837418354206917264736066539358340883504076005419868523048207439686009805026275005169634865081614919879706743681253683409352171918046908580149182877871279971387116607233452046655535259773895384678533947602096155545752274613119718392492604434991967611339179809735752633066468520397539269726826771559207758092062992083663288984483906681637524792470567396584320947183172352467678525020381909435380825839791527468526200790991072143238170421261809085882140818708279655827958839948089712321895111743933033799059195450804781196897896223862327892656571094495764092217326570271174712771438992935298667424153863820418626965659171500271600392887245288346598148408084696990664876653760040907574115528446788407511831933489880631859071587257220043504797833066748257557355203360918813050517846124890482328057543271915204084763639892543637546988564503607000683796023492407885393300873102287625816194875081974930783889610317769420439171100924414827988720187567915501123001751407621757790032498827189731872907125956334245246165966643908733358937121931401865614727250136033783507491976353615225157274398443683405512973259533906350764709823106827392794698312389635782747211054706380044547158736135727357850388526567945205800222843268209901245008159307387653002166822661355367194487299539027560184008602402346740327359195921750199825982511970469302821895299553879750204474738728685767608600553343670269071618825086832157575660454652830724942882732163841938268629330665374710523500709272221334551158761370863690705732958191386769379529189906414244433644009356629431216248089474086194992557431844886819688473080269235595161528974679166044811323601551024855379894757949761716051170798633320009354844329458361466737006929354820073248455367703121032840003093671222348889039881469988548874763102291057092691525248455680317601009241296168845218499411174443624830059956152600980690289186669398091092262169792323320015324307535967328970444186418283361081372657098790828907982620310172420156366771808778368877370100733655911767803062422738855700499506948125251880938052184893658025551501649882933433703015748441839669268464145089788021631691597236739765055401284541080876972919816851253959000417418387833835954182905480391746366181435821127328194393237200835481484169317890587691573288354467020174396380420733664777291217612361208577149562454452240056006487606480251071417906885304105981168441434208685669792165334254097207455826404382863206155985990163417158085787711937277691379340849567350882554116962124003723197281130517730006791943628885834908136338540880100000328169878994397205969461586683878994786372007315265894328433733439594413291839376324258003054892726614882978056826815142287105867620876527792502759998618522663374609510989494020989005079595794140228425898898735723983787488691161729400460129103859529468465969851036036817279534408315381329485063161850599185326061964712779635055603534392707709359014276050054351103463783346828040073359653762596339480650807682950376884456278302476728619257753528962726003960278729402988564481716571389680108826387032923281758417111812074854388296658567439840682766037222857828381154366108821526596568899424665026474140550709903503182586212242793467332406204945968530294064095800718443306068747999927208614055110809596328692824944639471929461083269486836822687582435924152922770886977120752712966439503525157237484130355366831182263657633752703881175299754691524169847893482095498101314769849879413521930366592829428878129492780590013333956620479103168599493717258170949510613235258354287381979721938237615828499786528277889732543361770977622869552072444458493286825944156237343832049653568707024600474160326206797572147979717092113335104580093353061771328772348102186443447514769863583287680750332707691510406879126411826409565886420000511977098392400359651533351253319652314514854298079553332575966684829965826644398256440827643044196201534970501262989354484649849891450956834454200758620112037436962024242852498475976251698340661348470749899904032978202618897512752065932975784254505968389361568966729775985051955350251384574689498367874992885660420942966676611891111652913775474045471689443691588164516216975447537013982952671007069476271733408383646795535893958246243659665045202207560019023498669923931159050611193341737465340593138590677746327468569442654214717630997585882718192176406428884718554545079306167473424879542578719299947803606810538500593973339016855905460317033570508020082037869943214250986677279845395146898461656906180958008993148804119777443139651140031757637103581477631653030466988766669112057220405631705343277366861820318799752636298710422736892901830320815616728207789846279621513555018072600372350489837659069482203082517706229180414811318035483886976474862194853200855127150319931045459058985845998086412129300085521672469569916291079831382925336183779762649510051894819257075836373475347022833049677019809702136224496997767637389407979165203282919216335899567339766471874332210811476678641825214546506420839274810934932154646777037523284637335029230421396992486635714992311092281013686913816403199255335866096303743938864893931151374058739758632581465274080648107201843307332510259051247441347966381105204300066868711338372687102504460436456037467990012657622931017780432685662205907376682580414357319990133737023236738486994930558017659241666064720439623499637267321561745464498602177536344056903332552590683432243419984521471785654404201953958385948283399903616608128956982777253069405697864935587856510875126724277079870219339429857155725877450709242070540436657870397982546858533576776853242285579007601123319261844809534003093532659775703823454605831548714102475181450367077892102197385471820540599730104402292584610054084123097470192827121516742809639592167675329692832125637002096998468683805221693189511336440735976938728946726354583736526827210525141133515431498770800480384269481078102366095651692354829952806489438976478506906711814496295111886837373000961781778938241789131892031329243208710601501777805398532791245260610561191293371048913823900431426948013177189612342273122785138465991821661902514790669895929681033406504630747883844908377299550695730978563494705519491550769925245807319171376293611035983843881305160400367372733395739363692267297415862637656064017558958994586747492887812661820422727595724488705513599373312590991818538941179858749945996488423600703465275561928317220359396466729415948894611754278844151796506508170310248964851691329925691880702314111143855182564363953460842488486158256744183362196010748693502057446535297339514177971931998488643962963408056278109815698888051866743052442975313871349015365670810314102148789660407581232905786521221210589687607795871898214283106253625083104159794420049756047726659177409238403271974067849868549938388822324441790401705700325102044118921305260807408772619179905136215211941542469130098412214900161999635904445671374383623896939630226890194196652535707239247640806018994977081978754302741953648635226550669751264996523099760006211035779351408202723129064526555557377657776080868990176183989699932032694772858776562948890521304029802672652944645385555693271801052248227052211538965686495992868029264198325615403039843255390202696516180353675673419408520633845520836500707182594211955870374464309367099021371396265135343946718362958002601376130774445997586373134059093586929165968227854047479466858833363498209405410927988377098435894292002354752167033584095183287819689864366440194242867006344758427794339733350403149116153685951967574476157078428031195573094139688102820290712244941901226355023590937271074535381312624524928806985379673836616483990687203485191981129994967940109102878764727017682502824340599103929192916199380929207415831033275461356632569584612251964386024879118365801692630510908339835408372215980079406689007879117980102746049074567016346968762557762778927991055460036061663014076579927603061140272974700086536728031917536792445940596817257214661735447748633407370743436735029768401742219936889979975894470841466208980895070401184467371685567826005233846340263521993331136517841726242357812109062747877729008463739391239871248387720142156223330578262075309075746080474816147601809150585019029153582440818249338538330021661608705049399464757645136805124226358863161284377914787654097614452415388890413877721020681903980448535006583460986865779470314185534856728518239021236379024138541113204642818175253009409619722153591154968788089290525798417967642025472623545918387762673865991240399922501681668567492062865387475417766358682662439265743361938054468835562353007531374154700826167626984490164311955964749618757149010951768555138660128315186758597144310702723613778924982099564738694776976792641356006450022085717106168403220517062814469878791334835966550245213744095558023172356986376512089289364755690119198262128679458319094508932073746692717239102435073608008716687135775530948614453377404776313690839127957032684954219344659028433545583988826571966638544043917160493763104955632559047115077138258327223244644985591495555102503035352212690373108398967929034818632958778927419796316979033290470250839499188321899391519588562885204284566388974373914126347753677564859187059992757173467817926504128958279419761701386763971871336885084889459470330528405902551036260031262596636359319112782970073401387663858404292773528114088526450251169020172261750974698402669385076591520329154357307481394474019730680455584059133170573028540144976203671650787282385843769750075871153170401718217956615376016062728867873209564035460355953325229118374730294933276706050807178062880945898862070437667500118733592443962357098498040601146571161644844594815912981746261261507062609884525451691104000297954931632511213807596964408368885439931319031018619224524368270040611982886583992061305948395682446515923158928218112699346822843937281705194654516534641795174278259845745322970336675357494074627736013369757094174749732340837734545036906904190200410881716319620317516990685573270532602818062144112686792609131617659439303967389381541409221643790669126781684337094874977589939607258971385680722342474901162832446137589164092668108735043458563255404964655726927493048289739908010767981116151715075308117065255383563816633472703955719732854274883178771514624673135659106656646915616377077657104696991161767575829807705058146113150665361638534134383217317669986006572478132560484023563239592463817829346150032964854125840533790687073254369588972123641752196032031885722265411291663927108366063366637811819187766791091782424642432354728085793616939498888927805026001446117969702147315630187303291927832049368611366550856315905664763265860448996851993783283331880744446283046130309781738976698827908234516988204842636552033504474843036899033888282544032742030869138151820130458594687940573641772741929632526789524414256648804542423243101438560592621347591581236665848478519448092513190757584530031875057030786753066349639954538242142910251632507698559954080615865709850875273694457620813420887627594976532100519754029115046171130092579507041768229430778983808912296081774019821352192722237444093243644713320982428044467021047364704560465824756518776229381905372007238829066725286821703968219918771972123794629736236914311419575204038656559098170833022453725132179182318720645586747966939487625326917034112375566815764503470193165656819682630603682591929272290842155203101715976322940659987439681891134294402647667387733660284935706181212795638289213966072210347101268655212005903626950922932617047980363704451355948435476270025669633653551335242524052379609618466738864952286703477536441584133700800843304265825283009150163414093481839740635405139150601250917448182276137534803890040166236192270574736531204855222345205399218339675216163253990752132401476971299327321028478169101628325681783006295527661440267827486148004097601625763231782817105941959742287809108192850172011961952682261791241087108204112871560839210808907285384280413466021920371119800167221130129614307864645657333793547091344932797189714168296634835589967878260979864617304823615453505837180220413524874017267335584904136807764195938751629272442158541557742283593871105264678997751143990620429495454322562892988388667118597754567280578324049156528586772060105669609031547396066980842377189844237506365509255774424710491240295651695206391159861840890701689142945726699188430019149394871822224633669539386245502946870462626409029250338996493308865156489212037451218386232705697061940937081219570560917717795129037527346234327391527707103932800841187649911884507310612968840706864658657179981005579372694636959402812877241292031702055746397074726512263321939447464977347545730141659231733114772861595734155122991394023916146240161799439077550472666916393876459756910515890940012870436057458130933771479544178116481002806079300707869033072841784222910942913414179842142756143516668231271445227971646716784945488703183454541074883443535792079261906149297371854244481567911329836628889204548005167856059260083397099769863656709185485570219233611696905580767002568824876652696664645151330574695293175877567531838562174554807368225105380631055796360149480659485503201211625659824248296095910589250991514239858144275758360620368219909464802771349001690067020262612696887347649301744325212421719985086273062723501043438902344843111491309199503895796988945165126654542788923995145698870283100477989379903599562358452046709155017188936037815246401406433416953277407200682569132448574911347978738458737960623391722107861038005616128650701683454318712966152070065326781431021425775530406497445478656074684678093001917956051035219398445029354399751863850875382291485857600807288570539282822851856929207264160116765789140206751106563447473218184179640155091583409851909376103714950482089572653897968298973391911605990184412091200219289712071649077573303631865485874708799310635964581925380886706422191686487179080646791732713468755725697430974351733381191053481827172375970358520572699893505529505978221212430578660305889812710120920929821986207538187512563299294624775326425525210581617607703850537986873113929507231243214957759403061742502618477235727978497384699875683360754185974122810576899758295823649288307362672149487078540672934328663711892880554415012617173194767287194350104305910916876504675855105619414525640893849455604983011748384968473661914257042140911485198326581125599004467202881012301220854146905739436933737383953453501196584612516111381387881656031135476021556480319792465511930274830796654752852064626248610543444001309671913574882125307476189277488626111434458963778210423051743759594586538051092802240907569523438028334017919022759905662460599074469822151632846454790890930587195784155968952041883135370096954864186578551133256203146854771216228891518732592355790844573807564961713025875739166570510652432752978817982120356877958386694300537114220641875101765855984571294256980453830810832092337795361070952021282963656345748192207909211382694742859433599516774976003176054068003448571468624168585892673089936703565983463406139897689663220648472320275456691321457802560270982535515370070247373369073733156709667262734006434554707380909120737170732336734341452656187691342418131385883178523481806540413690499818599456334888601409308540260573971125006254215164905924956385942822335768038097821931406033884527645373710680043609698426488323390799702234448001334223726085281349437961522887915161161317940301879480046647369298206243346218702302083954291197954506320348081344883091249359088016262451493498624448848247615655947808648262173321274655319329549123925574057825265277808444645203336854833709414685351508263525223918889387976542127290863786052029800686254222297804112169491802364510075194663038327464596056672736652306290045442757545909960998127718306933201445895060404564251367127488199342112575739795415169056322770254765131293196985995041950154767580921069279807121676750957756876515827759354124169001164205429303388016125629173230134646665288514488495078598872496503923143322846287803348148005373288320368225106465198260148943809754306358289721654961671892155966808352092686115937914586811661253291590708488790489371737530915109834760577509739082283404230098251107093029083256528001632482754797518678620013844426365299488342098219490663959003183844591804270865232925453024613433392023340658766662707643634393323542568830128893566870907922093606563001272362889150255486984223824435219700778359945306073900714432209112636446359302569484473144908883887712816250968613541402558611819967296709427073595329503543556648353736246399801237489924580623072533902164580595763955658272865882958925360378214217454757413341802263140499639520236715214729570120358987219621883280278004417985137438383069211689666830931704866603988089043435276641124910902339697964187275918696627897597357532587115882554782628647529426914767151531222846172296750796817999395093115311101669842783911296521100837497304373363693684048812216097136431940749104093692767864985121207558907179657115423452456749886824360868786795550889194658780477539981401724910967986902384309257668883005995134917149563876525813596101884474147234722011013180520517283048362282034805077372970982562345546485536706074276383828314687149584398071555039871656682989954754216794425848911193894805534452359695232085730027185923051642449374340801447343439093810420948902368488218552517404251749524668269229202170504808065721379250863929449893068446650215216475107503942069456077267116444652596351462254426840871763603008844403900452433266445567577886238273360379901015690436446050250436735165829906907781464929196573842868863727350629337069463844242455396770604011775173935408809021532771897433691687137175070368725900895431492571513478645898335183719592857781972361900148202562319457274149089301135548458875422740584271300892578049346548681816968405772471449179897665671330565596137192355827167742303288913713244700786324561510838087956941045245773285245907142834881313357881010049056371910670941711004565935347686617600532061316764082261112434733205897426247948782848247125276609376836933353038825472719123684570770227286992039775037375850012536924646469470027223921457777880452695603134411719266650795084170170400431145548171011658839447843159331583680556752681023119493070773549621228609184738925654315108221275967559383235090621954053965730080179470589637699113295053082395567777047286738741578064964277249685441823355004251551464226578929669395260826789391215241044435649383411050137159233709101139826386460549819990959544569742665785858285680158133489304327993523423787777488999255050514741501471844582298533616821321852043751064044193646926610059838904606615313257890911706492593813192171308831840209146544189750958550003989655727638505416563253498334394150613086994237993154827977772639186304196175207405412254535442063426569875472062225844471273967178119203327498041329198287060484089876336150481478958787125652355411201686758968202568085766972610887788730673348101307663445788938884445459191420406145059630620055977779687239397035323988104677140176825127497535781235203785074597658914779132709323175164234745139113410388976148003566237420108647121166425740815418172773738182272702734785651957536695283843027400579365108241088433400042958439656584232043707792438907668664762401299510409293553715043885936876906938958246164595648029348078283178406010639635625913175818460441228723533800438891191186236905537747433898612882228702838301586459870757414094748904170769248159363501303550584716551574819355060800783938942550504985007217376073342192338370487240135835276409209494890342185274076495616850519026859055932991263331433537620326108942418227775562866235311380346453772093195447666864205865417928109132592291528730848623641505216932847708300335916484290514131875595809541239552136495251991227789107150997676412549972817966767007619852042978903272265463154647897397056982101841449336934152152810789967950348225291538776315471185436196651953134115065177480908708749057125824387445153093092757239456871192866305593791659179204999762712790833743289080542925061831206627056678573537130148076402022820395420748093292898960425844685900195947425230056578642826487718829952479408349453230326843949424048057912725557017279741845955426212078271182982333564514541255750897544304220973991265496548516984045033528668065679964845945921765749023769165197894319329923583697711443339604195010934613544460272822739404594869121958704919257370011854785054864733284742335265690172678651919915744600819668843559035193225789434612501373140498259633181870105675274014107647424018812955532787991675449581593861686434394113561821962337672832555066337770126648371422949004992280784177587443170181577233050866734510710513865083237891446843411779736054989933045467990786504359659005278849127314913623344454030597006130057425235731150802774130882112802897534970378262423150315248181364439477003757684699630066761000658508381792307935529959265250326758356956763752312778045991374846744735259108799174986163556156182849846542508775280628398359036657648133352526235655660411608266511544752467273261839057990555897553957617282525534769636806612626310534169540629844487894109933337499955006710296427567141913610932779936552469891995690088183750105997383118703397687920934505368294164624483344911848696186315221769764716378674718297836551264507799917424431163259054897809781771053177952818143831813295312014599450961535079123911337347164350993945855583264643271486980260584981053545511037271910589321489732280374574790045552650647346769328949799057674493427518239557427964490020404506067139669864848447663077824257112748940486847617277834986999921515036557438495024695335939045889922889176822859427503433727491559071331840891829214783755204406649929928834460801686636010250588634061680463516150743783708347788392698322611578668456270946394424437408866760189996450360651462753894565426789750381564968560340413580890945890150886710368324929702380558244632077547664328915581245898211791854650478335793182373967949394860080598425764793662565444285972055946753447428227914782453823151710446040896417003155012033468872435574628164942868341799333726324443622163217117834163732970021224527757644412438715029228527179474742906849397577358288095492003483995155611621061850021597193318797766955247306166029858320892430560164981328459775238214866955769150119340907864131105880245349445903668895084529392886501107479195994268225709011222775200417634027382500394681786485845139734164987596317341676296904150361763352841935385349722649635017048462207194491046385541628085617520234780482683536186621974330048912137767973295406206050640052227483345381797784604689797232691410292328265666611292882370549597702211252126764213840179170209853448602418861705460718689261020866884548884036427320024479847041104589636709816218297411751078913817960727238309524565233486064145452738828927706915382165865406684143870461546083389127701642517877421906848740856751680310678085102100192832918354761322120991485333106362089810289662224839262055108743487348681590774829935462718302467088255414406511164851516302450286280689845607409444389937723303604297544700808653513221026159197333993542676849801227851587938989124359783120084136434409543638735276080583705659897092866664257037067575952979445343380764248735649795631171766178497112762429856995038978994027325005846849758540404368044025085972833721116819252428494587355346607437519801781492932694555523472906265163839028164096939630193796246363232797096396306820034085626454540181554219346955861645033826532828932474082427941687954647927992554298302695016400879300197362643363873470625256066614275789233386186314623913331783707801515971041248526209639551318098557168466296516204298207177589309970621655420283808725316388509528528096081832166555101917915227523133168774911889515246257909353300585380060093645109102900202310269787680682299190822822812359291167803543555795018581174621263377671421736593693283726993478639476713045359846850975711909417899977307842060862656409583056119012098479168961725166455143972365674414344382209414670200762459105553394891075315018817377490309407365460096030805933221270729735477485595761691969804135251093737608236550104638519084457472021719058979641173739090609565299465303147648552278567993721070511516088037925231361499849964195686304777738469296878939197055598897467193401041639422541561544591463771742473597926843249131009291499279729157256143245826004252952725346113311591429172357351610920984401077541192001602464967093725750902465239399697374889249389479653240465301307916568359090028877704124470556045872365553046395822170145114890780339651254209933634013985040172232833847943633565052674051018955638998696182901689470122452043800728467372578733437891326222994004827990059990474550985815809065011185596062330592609595544721957896825327016088816343217053075196115409215897550252181083434743801866459824994598588201556019444436871703709251680422324236354545676743876270746450142935681672258159220372239942561500907827831528029610692406601477226393695565888286955988800400240863916804477822487020984672063193130114681878555698200529431480991140602833107690664497804865212441667351264165101621266367209440758776878811471103525053466251586610347445366213086365130365065958187882852334936420130087337530053698685979968365839809619740055415622393187663459244538815182665336817048303418276789509033711009566326579850929519310988082569348991108697284030963764163018180473302951190831110543559178102642570419312170527430393502604048249888522611296491147135117764951971061703366132384096036053967259977099302434798271070218870768321180604599448687576500059599686600419743292788074926389454897499960348905103919648856228689613877509203478447829828225063360295403624343838253016152206935720553443414387234110397138683764970954923798572265833722189839726478781686596130206642247660756376799292774701031303951234272879707141293475974875996563019041384139150360229073924526963588091627179883116705169686633896168125752951058815299884395612229813883290760250495922058126700655873571773647709868429461932388516782532907035048790752850711442375140325663051078304250715112988982921083750018833991724965711839778316544940922671229336008557293651074257720913020799082598438599358358034576513672954721153899592048857092645145354084184863326918791018411982377885024204815075787239282279707855612094769389051151896200193338559976017618804952527871008757829002686016440025382335092491769721862715840245903479865629564924564264202947689423776911254491742393187163064938362729258328525378656675391143487932851463187061067582997480360216851286915978631266754255921316613005669938476501973113072883955848295797302954614447739469031410150558515083716338381483601420781250413802716361659548979001379550893976417106863256959530179224379650530319766993466789512652240058128529432569614303412010002344436626563203880671746978805339099105227044746050327865234783039564839295970395898347956745168952138184838876566799106843949473585443641736751675026902221301355298143570359045068454248148348679505822278332005076924520610179567177659617614772677697238072149584148466125265730306841468653191063261218604928880126400442394015795766694510976434753816145445922617885425718936531421364715436757334475745016174334854754070713553225750722252149130313513776886970395962860582727699043411653865772549143863424530740856779294306780468326615750125933490671505692244702763388578521518520701256748244585708765736946776153167501912690668627118332446840200969337958361548858994177007362376067386608132309070167095209187475664584214884832311637949828829423729833684405516703239143334569039002247941198778109210077182721786820055479489242355841183239428255337161071964058510054653980767118358202553385959345901665166764919956306572401868080225574225867144834048559238364355730954378612077762667938622297432107769526288214836043469230774501455017584015152212812387976574114303153395580845557067887976029681204623588963800481505328706277435452091837937920834836844951212212548698349706826430481625156887130472023573166741089043258791208296079662698482831147085474555599012065054866480956083539429864141914810659489951607524056714411665448177862028856124473362932310145412326034788870731540034575544287169866026273949600362599172866075719435633281909758999433194807634739680955320360874025213284957782636899788267677141817564964205991694324713699277883516936339277046164870052294601614772058363390264033645318182272106202780029495128163494259819857661087067137519567333421515410782505558269071279094405565486681753021347811875202021430781398140077033422841539974259536763605644465827864941226789562768066734120696237799223153164406265420911183695627627829606167719348593936121870731360575575062099401057022110891583693556073846492019268983558147254311373770405042920139670893133101266991224386125519047475337199868820784486711497124812208408114580205247329148567932558944433290386232314889311597688738840972383049715659324677282810575373881450174964835236351000031394881306012288206839085434704337144343195558076361107446959544845977498378022619828641177958671295795112801946222148558861957891327429358626846100449144353856726642377117491980017055857500132464612095934278408265807602260201416688924177610589945871773382763229148189661868160081723283290298440566091547519215630293964397189581798462111087050791496777244062983337094136092433798516017865458428189258887235568055306851979187116887842232406239434753662445268662267408205206921460625836814012002779178557121651365339970246914021074327453171214702196993479356849142757487391001843024970705927685100455739510860942897299433859630962512894122854192980005072577854096582026975047888218798617914767086462091553097191575362855035583112775520636447503858662847684726902363154530932320849667898781625541879311243594560850068362484681483114631492117299919961046772760612369506696744342787626051543722707465060300878338613712714216492467940058104670731282207165156650824214069509237519876536976532949572267894329794193419594074857474340514591638403804796279203518590005442661382058721802466388367486987196676204226684837566756659634660504051733964986271929621343628574212712765923317528376968271099413561652820643248157489487430859868735233004445560005861034608645360272613704840797816782111494725811296172950722453369759257814886322484351102796269855314647903013041653113726634993477367068309652186930600762235558714257046052453705753685684769542400220908351710584304209767482172447546869044204484373233458456598928474704418269014594885290057018356956587802308828947111299722795708240879571439811276492437412975280988731288493231690597963623625249410765245111669476522522470524792611345303891001641092881430212916712183148658628867373676694610844412647234607683115927970218192933562958570816589235188258300910510623181540574373059333881841386441364313471263883361592180476603450079034029917011244372794306042779099860301178281714527064036350005343050545588071498325898289760386774640634813442550767314161173794870413095919832143715996323607036780340190189197982217730431086345534249705779737578307248579798592356198386135878455665643013864907467139199670140192516911832173793407523451393159258196714185603371081299717897819758514004400601536535032978335999725700752195399522582995971473281104805609960986137475697778169940530959681805534234801350473747970378563914940019516582449756595409437736017924623942322658637162736530090343813998575556133634387232627014012879678867608289786763554475748475612844155582557706492873591738985823974623143162583141637100611658148353569864390756049359413286167946138373754754036517637162077840006343721285199186666958137469752487416021972162229532641012914599879717447288104479860069303058790503496420163070793617811508371566898480409506725391572141626122063300880397737198118857745165129286155252632998004062007977842965537404649512259679898753304469873870975226177770322608355940069153055561314086794288900125499721654255865976177140654320278615535381070007766221717364582458787735745144763072070675598451849661114156265708590066381088147224420900381003934210678311393137924074070442527260798106868218868486668032787453267292098567699319903526295082274770495442573865222980052626371564526696976171616114256834597819038083773709447250015993058161719926754846453961411839212681864114398931670954414799967319888969621879523723823371499624846948123018881044146821336004360523530886899269468752054996302979159342423278821614857810025736816389604887843923648105150152011023280922850204016245634111507354444840244735273803756743526159121314729436433139978115066371027779275408374763664872383902163210984754584271201340192370526636024499070024267644718454314217106017396039759453421200749474444995105490880970573683731471441594837552913219670599426945483541254709320257167898196141223421387038369131084777138827832080682876536004910989955437023594619042616342856881001397495075861213854303472207994086514528021837833544220667941113918821815769294473149981113937735011963783408339320972955600987654330546548856360943774290305305249170193183652820473444360239636990646078284792520173710407512881255999953404038437611883552017991025836941600312086694712678525100401858545527265060358014256205062186927774021330748774462614674986686360532671179501532350081979685259501058086691473165076457432489666499127978725593135014995611157540374804603941431643066380737715436357811998991313660660365507013668581752561841237539023046331085941255018911295378849405718293718421042117922193952723991942516266730286256725555117758855461737370463733580728214057406654609329054930934258367532469234495728255415040213642484059639001859191772628108089068527524737415708544753653494586692848434506893350237769390915397860194628787313820619559566207998779952759028765021229098429813246254841850005448122723622273357876756099668662128483825178521161071398983627873178732209627524464024801820791268092148234707769146269250895293210762944202182246141817211100984300221388242865117035246126042201404594045726797429222654230346122986373562466796608053397315966310920111156543470091231200550249822746938917553555305709739469091127452119585292227886317589298305301003685710493299726099145531366117824191119752300721605120459570891531840774535224095871497317686696758851318870767654406860142133422205865954476917184354056029262993426568866815145151782609336897230633229507365982981502493710113196245271057172236692018944344485598398792902343498327776654990271133173574855856469333766663328329067809796930391609771912482236368375942723819844339540737505818453410412302400695630430977254701259971456609473536407754460392365450299620711485709088479381806129956472601854439641657343598409488530595626987255899700555677656964584366361057417701687407482891840677611273409161530086800184427176139536308679457227011450117637856792139669813005647331581450681821269745507787667271337707870900774536764033502088147162217952702007900668625660774176225771043597060319707586657514928063911381221396002472034030549840560205255853977675520082352758986972471630247260871933348260499126121213638477629057755870743252526792925630626280367063339008584188636372673193547473964802896033323342337850434558241688507237680822325185721170438390160408939211597508868837926544071666637773211390980138455769386009933296689612865975209193567339934188567488860513970385751207791404158217031591864131137780523647894426218952812359562903542479533823813969616700194656886377583620007243340902719387120887605383051996811847591125491975945737650404776659416472429321124531548369926836062946857063951554199996407966840386616032425856118996002414945285363975517019472417551369207322762289223115456828120382202071440428752819655960021991308507632590694832694677499783231219000269560469645999090300728342225605001944401560202792711577243809653978484857930586875293836363348653533807595415076256695888426021865139927777555960703790964908429833015924071113057696466140031090151708816627662267224057248168404722004964721841097608506006998152504419180971878522384230736500755000307124743175213510491696527294463257440229339892185023344807680066938276802670509056507645503218413291979643975074411477633054122243861813832478494020989190285925012556505580498740172028842790417227294247488048965611816046896288441778456187156026000488615485649437386433984623918930940636309887424641972811124832132455745663936659086433314220879359558292880010637905664558806930568003899486526350304164668986248197393292719811769064054489722590641252307323492612976218452448481697369635036640217009757148626561189943734523219240483819157898302127533935631360867286047491544161779459981353284999300159661288577858465547167405178624741363541747242433366810601302086391757038453267096985320941952249753392647828386583835212867609794925935189269993918195064692983193983896830785792677170013709758508444195655838989993376866353253819616396996896694334516143819998966549219510148186809783208742392742229459065373919577302757297197509741994460002794323437547437335007431881222054316647549042591407715603312375949649919304135459441728527421975247635748463950042527143555543326331285842026606948061301905053745352576644932576168846035951560262662343304769625716652345935383509373766262915427255377095822009331427602010272234712761508253055430652623551774429559231241890605429274232021009214682883962446243478147110715719917458496472349127026719095542722299604903255890451877767828767062123608046322487625211876415008032340247971765898738343304139479119511457641855048511406991990867156595997532526282738076446872981612395591514379577808513365158710025443140780583972766074128712474643104507906325675028443911673201157554104086904639198755843495739419258934469958464536574958671758075475492277960723004263150499445483047683561339073589299444374674061420308573885454754855211621044772760727581008313710791015576954594132144682518279875932858650738569277741199947568996454254280355285848979005631501717665745294629520211449950301071535296033302285926068387063656890784280505141729913195548164308879030932242091942994714217629983200205839513358594634257651900930630189342799793962672113439164556882497634131026962899691951579982949406697615288889232012252141363488893538384209078304823180526952323750735264297176705436570055333176550525241988683276438474336783259249008929420352662778558322545335283551570396781029464057176299963568325128801068425858752706319657614324289223660533452023421410414810439772999799992390110662063561634128871726436980119743469382065457625876645227940767323011758318050754798021045903904821259733867758348438425237650948363720475827062052930301347308366969622698323266208788412377554732219780792547730969185748939084486621016355807785988675567036700383128255257252331529206220960889130372412319955542881488756770511780666857186110219915325114813972337360744088530754940245714699653344201244268111401564107964032841915698077924247731030564516015627284949702634577408256316946730060938080912031775079830298013883191430395255942727250874261847800686347961829367837699359311297836620757009770583101647744952146213485887595579074452646604145654943257033753946415043029908133000578592723809246333133605611107788799929326108424850450954477632067973225410059289179238275398838726185293788941114691144746944902365671343361359626486831346636780796382405211697328539937348542802616316409637098964876914842110091397674463608352297668927649661036440165035782541989568342857849691606915052079336006749714194080329165426239616377746346966376328254167731583247090986876398569631473807770472376812475783648512766812386128046010767967499272125944903602780509207641776600415255825766843830985019288590797449711523230846283400026494296366015358123784523209448609437566869288944231046003169525262227030047609267496317373154914464032845014989118757505708859567946330154251331644174239183825530177766527386945063776540208618678561692107561639941618778836027084820488868740587576604584573179404718795218942265616128115000917194124149704144369162956661080814726439904543596387725507511923155165857211077575178705405888667915240323030511169146013850485312830862753390760693560123894861311886002946518180467784460857929867047647824496969585541695125884024363007249491618304615212621312650041416024648302694528234673078543150543049804898444464617966490677425291308013728629025771482650257654817399610478499805325010964517651747172284297381869675812641063149658745664551698711919136683767309087274052780206526310124802957523586846889320912528575265253674532805909883843832081714535239575574258824547852175063516165087038688149628639931966405764339784589925212657728279615354513423941150359041304389843185855519831476832170059631982675553131222861004848007095617161505867913428758802418855981747039231248584097981282573796151076176215189195246786805496352970920395787910983855540531386091479490635363373943997681295281845331705097231230580276757411432556470114117137882085092334803919519288930304127142765188734773988863916471873737854518890454707846825301007302410406042555302401353274681192985442542134930491053777121437668102432739225550152885736341630648724521317830408930289720502590733969559543906487906769574304222471526804216580116185517000095203863394814508939387547121570656513087497795519634299389126153619090305386420224544157216865051272215709240995889799814767834427057527706825640990610348301320439696730630119699903145527495134521598897036428129577174529728322097326180533398742593158819633739046898266343149980940993480574447073786277734598521653531530921968929171466107267996920449522595135435031517373986584416138735262585914494818710704892306883459789747458406292888948350322526052239988191825912959077857376260808386705776462616596404557195445483838196968677656978411990788266458659129867199847841422301147827839691083708074690098915983123279205223146858608884656092404642370654909496487393952123702620425320694427584269650070035187596028637643308155713931263084012640008981247434706960714957318302089775529797356056979748648652473136916297117805873531441912770711921351578538089607026152155049800651247004465749217079618290831081754392607947236510263457529819057046338380120720733777527135246161752716126083283495936867476965333095156133456610179464657993551350253340109739341783230267874679579381769359377929396057278225009992569726691519934330197618293412868440580089952122414695549241797118755026742015712418926140146571491450647966129443046160541125618844183597659665274695570214617619201172614441722123039261703996307112835419378840161503427114913748003957478781362286669798565355692664704619388526274101153624825913907515501910425522702773418544598148566443853118824662381947380269180118944819918469644973012214509725397620037561771747977029530838816538749191906258650043961982854541613998502824940224109395599404739439173085877952590616568753115590893940755635137065725031960564034313256313684404262118484605683510886644150826553241779211700769196003697035443068742102473617195351172440018153845608326385234070054125485252351067887054338847897486367918633934704112835066536234880687525586025140256382010540015036078148876705966021167859767712918741875923143722191422695272647392902684079607539536835406456852463309686553008819792464785305065792038195688568687653594267857731712188029546181958301689766720016913450464499291785667958628003767118379176415055020055161587766959930687334526765560499144205598514609810868933917737793734751113980484892993646891194470543104614055727516790612082283314652491827157547875107136924548194265029571938605508740958439125746359840479876222957236825577531760932791677216638404747566729703302789239333019239007525686021060856743957095108856907585734027909007135634989446031074145084712518598309741009483626550975423120516412755296835104062998200179812272513493119298272913136299624136440221702082923954238399892537934594930093603256918817999760969959242149387812699143760222835947251905579216531133244740757675169145443212817183508434163529275000473887241466117297505784109376556867351932395882923778626411038333622382430436600017457265069689568943707666799980671457047494899747693247660009277256216813766619858710282257195120731756728365694435335514648808942239585523420789986757419511665787951098137667047822911510726239059998998245355813839617657442526939241948873615033562256248310457220858122309252972781990686073765850682525794148327522966924842226449778654972860122447390538129156883402187979890324321840575609328936442230575814266826539307140470803658641279208630571140474717941454759851703599532286924004846597031884152555981233661556500195686433039952435698814795039139584591000230209064408616133510466187234802177944066187058854173114421678213213314768614675470885114737655262899866962696574218130324372397655231311923671707231192479010960389528176831695511117256337362232486999398356004384195179388987547342370932760482062735950499281611600459213368797060145001579979055638987758135975205115681157514765121625203208525495686923632103940833023469488767411906458471115547318614550612349635709134956501611968407277952242714056995875905080394268719434107797584520534457273301677269514897396096234340843603203321869136578511374980970250149322529524298245035905265811572405985063849207130059574923059256839858431926980932214147479520726480991411416214301854766438341419078301469817201207088812687547062774325905731029937830240854840378904497536722094280154795843523950716257978920273928369119180821584500653523357011116805475699704054296694230606965058443385949587740176427277326513196527591893503054316089016968940623411793935053381679069390553199930429050729900943639588958280966989190033441391294030160224861694233225867150455677949001641268320594775604386370343229743994601358336768729565852922838113192668214984404860735197489512045109385703453407653664353718723378389752528275368909948780387653785602683983685713809086617490970073239274806400522520948346865110722674403843495008204610620476151879087531000965859254683309626295619823920190804735494035517399397908072864181005697342434849684694218906905303557735737625283368612893055782504321734346795141095936606831961847943374513884571145291430031197801920820408616001664366912920679444976451642801631180253780120201481359272609403350950561502109729701041909527529834501853173743118014394316921431057964900423218489419060563002035370783023271229541152107228479788923431644135318702473390161575739634802491005585346617156045577874858711313261403719789913927947347794571657178657350066939988092583259291097196992673837503361219100044128945049822561368475720346637744548284674959213399793236955506574485016124140045648479487602988748580061948358400513046976825172494107970094657140069060206227157094975040012396521680566228845864178730343563118844691476660463823033105204613852896561670058558647279738727436199751940717496895115294182769204574936186895806462682621658428409778647566151184145481092164488867834794599066286094861149597804371421831166943712628486995319121631609612337439040105295044798467877008976564636143331289538539658082513359773152569316090195032972108171496274616777909935350553552914844869668292981707098900800678754168529436490301744877790982640813312751678972920672208078651884444266506191924486209552760991691539315451366232634274220528208270172178140115578346102581169140656806618271830960594045507853977023487274548712151852162246690889805090783971547595345267672606852066409300851103676952731114816774496178066585275086887819947980211886691056327617466570438877194913095441355536645908198167952359200715307797221242026797275246938414720997165467729652812273058975491276543071472544596730132721188473951638683247032214492006761684048099979090749986788686469012809089923040093718642799555935795090868350329214128558743366939697792103270759117674609418475449287004158042642380881327016106097481799128433875538421467368374668547636227581102598771747124748337562494140337793003153172033610857543364886478386448802125077057239649442028164167702917068951703164821808539340053534029873046304489643484058631250337321823844224236722291227187095954814386356921347399888181127107915850124581807068408787842646482294652636867583613680862841234142073302550151847171919736369323603624611603011493426613711724394275522241183012721333941926454254211753874099198868557109052970453969408018929938038728502531468020142949846247747534743409608194485383366522675968296142572490069662195058044738489434245610392016575743593135357240390259148821190062410497595120484835574416804064916757542883433066439948663827349531096847093039445091257095965032442953062446257612495409423054055488750261883904542501465066372017928135054780796972474953888413862287895334956778979651888649253565297284670665308389451028469789553494410759229856141630316519861583786257734751315873730768007229992237292648734517075134350221355488321417080758622281150681884406819755750782922194459615357249894929903714300291934279043202324056929087599582123423950359454862936479049192747149066396295801294313975869626222402995377774859364055693727492612472056051342449112713226567033152231166411090928755662776318450613363556246073692222082913583593559782730321310246778121319870503432313235189271687931136494834145364072822880373252331149432170699297503007277822497362601254156959693522188394482730582067968686709759443384874470072903334479953437924964121533255847925808823982212920888032236027180007331351232280640864750398681827294147976077552503356274817126171276851402683599876069573491254347788670197591827769644816834912704940358213560870845961739242312921029249963236787576543339989857876212184663904536622303697065540942813189328792063854013622300804832328199245467423972527540183451465332162053068844241649320071501618842630378625133575245658533631247934865802366095072160210941171863773139447323885575298216234537123288357263532731488148747403268544007781124340012952050766883766084910319264845840105273329638224197412689146389048602800267959623992531779986449414375786630800218646206952075563541523701437526682135959142351384741717763271075374952074374601575238683669197693105021868364556453330958533610863636547272900674534281738621473451037150347852650613529603219143656413212802759957928073320345140330096719684225632591530566443829242628810266780855756342417568722375742639964750616362117438289102819250244609155998846483014148206998821966438403993213734355190871709051336478330273488415443403653888119712966352370894503493284317652324431386733224123059754183314925366312955287851862163941669803237347578234100975774830686247917858475727260890831175575092795295828625368303186622565642570645119556462787611319571324999545011730715835262060496698537447585460644791773736404638652724213543111791883033373598507528563444425246351120814358291819404949529164599630809441538595637257667909882958525714232338977473764921659526926965260044971285183574909017120258773272190550402333953899935548285048240319872234869560528620793703151712682776876453825804681417923411105372807354691408997704040515206099241382239219087707142990640171803380901228255533880076276207658310846454040084868510244004762731248548919312894320991153641659783330670256873124030748756083375824902351599696782677004723907572622161594146630644255250436246512567839264502530788841642734092246581239919556208012062289399449997931139523006446825898536653339399249762405957899486217462386180389256272547458616926021723830316947812445434574208605660340400197424696691011597716917692350645879444429532389856671533019655423391358305508482770000979758030696859464485375746340130009193423786419140058962278544113066716254305873437627820324232596177590399801449554856713386927378243661594090866386766430340902582608230729793975619232238159401100074507273521188658750868011755097463062726847999735537818247956547282401112796350447209823597063595160762136996899991671777907422530123381951339015904507581808502900500645356174820409801595197892046104986930218523571616009574655666248550510553174201702672928023895712843499088616111637292533928286395009797841111722805823100419600439545763779864319365121073874140526166046621310018105810546443392460133496827485318671251782382266943887223747798497070745424375683819736940553864042039261341253738394795709928673082969077993619294983082034428275939961485676851234696153368422127479629990456495830020099963280033020124422640200635714672432490726592170984421380173194614439400889254114403662434542448261186287906313790982731660674236803744757465634735617586746639921170321588891239201220158671748527801906193507079012835004001448668850053699811390218470272239387214504403331319593141142378038281418231618474873318871765114600922893893034536208920710768976570642500618876723445118700610039111334850902803284162387338585018045786327623267171075981437433834040019643830407626843018659146277362219886016777895800553437299010948556614256014125247378929280490832294360576809189803653842304140974839317035848880065887567704421287234364842166686973468154152199605828666426221487427064379774699559672389553463191278775000095138393358099673500160733856331621290717588333018207086039658360524557685606660008459487427346577342114436761155097507213830772728415393787804834390499113848761144394986793216189167321082788638474961605657664589391832686304987581659255475597490200305775461470483234492185298178231964634451268472409677138275133762871023472500688563652797038650254123763873517828451445366890658859198454777755563138465746168011331938044377909313346556833312235264342628957503345390264434092649578439605947520859486283183463971656276998321496235152092255427346896713740841370919350125654930331466271541266035518996299143599034119214943884771623467439013527014571257118235197128673103357471558366284165354303276426428593953852960028182046738503508455723457817283253458446857805867591136500939715009830084533848670184671474489406697408731804319434827993272791417551702391406501959200382328047661018059327591186510827146703761103819043412328236677670649098107595362428105579770281015649982339335366995008073220060839602966267718145515343915558506245892041875494496249198346814686964775369328160149112089348139772895220194538133718560385993073206546862135358007826605479898522133407096100534852091402459448885611263228364749534186060294183624342210183243246271923412990875960504760762948340033714130917276763889089242138154553423855323810220895461976640515232178182169556247007589833586222353164825559317474729067231924714605156806269789219273272261104170508121933816392276372950144003430599417385190459609208431916437445536129118455503827346101243342958147901272320546174976674030950432031312557995694572328845653106688233448142552522416043825707572429490792970603736817366566930589782899864125006731063713741165929558649267814561377434050730543568810329844811218852993595093715113541284462432958623597594980570719606470291555990910726077734179488393499419850524286005244923898815068995254426221378013503274689763038677523181512247867981235254105922456696432912657706657650301335334919614034883492456040080936982868955746109864528068251585456013519842286452970794968273314143643849999525395623598167090185297612615030315959481821709541583039965295593337692371657533425186151781365632343522519085661608690321926012644659565718143948476904666264652816696839811495878184121063293848840400564962608065587406953022323385590276966531953751057262610865370083110348630224854128921577590036453321179257194893773287475931828806081779430863541413044710812261565886845608171931981833819180448332069085490547781056216896103660872001563302114314619068327103869119714485166448659244773227845172812796547002652067670609127963216675939973343301522785126372074892045452413169261640691757747547349157666111014264216960248610779582683333206829017715460970112040933033897059943462425998581914110796794310775484743819487519461666816091116520337607342340621017225688324487179690143962622768302550050719422166281428388070027938867123818852195342608659012850136681728897866011235721963217085735397345193375048113898080704014371517255950889217230655587069713575050270399504110230883072154976290824915789577085062533872553041489646659656716448936741209889058607130655327117976516409534361644960610313731315493112068066395033841336270095473692304976768004496567324603187017143751193431269402321295932802572721414754947219614309605062213578946471829925154127606813059239728332829466273455750203006874691373886174989514889552639080799907689276466767618786306140332922360873441683478822038387193252934089156428697317665212648753764575494412038258668921501885172856826721185719359247637123656100986062455447266109653220725996258066114139712461357908093604090587793103751424171110083822394857106127168630264333842695464990437310024795467749865356627477456675224158333143591559848458410640816038772791947980723378745333992441076154272599749797257280518700480357214052003249128465334036793404196777023266610689404081046592098663741557193265255008097654860111349189529765410831289342846619543609312088540265745248259215847296918850271559010361121418532857522562230962689142434981037270449605379079730029017468842194868305797173616840070722283903042180093571243977668696840722473727247111383998402955121499627101885900863439238704292559654356557219302220310007302946769441000693504849804068100381868503046112707292812858883467801111794759353749516552018851867688939068224033678672050228033703850010724854701305533356533962138421258457118379310339696667101201175991745814739743939748087466623164435732941929046699326258391796191077764154936014301086999161142550669368828011643352436841963749171460303662614191305847821737499939923741972217028416700057738099220592463332887687953582179381865773657573369497338917906933162693668670707550354781219599801025777575010716129597702091810253408341411876392436573566974724563798636216073970932951120921419761958354147870840195579627701596646344916794052486505207055936318171727175580217406264985507084484753530094444570034697993299647598006663925715632983901307038964999859507875574116196862829500989061610983101015933837380434874902941010447050965173214887221450344955034493722769808062677254297620385723068870483435291435275511280037572906105870304112427610157392048487208985918730239092700188104689647925886809505224561194097386349182416011512004574746634275980009895808744399676233750695618959927770801717626903540362006948703734568051355553102535213992548874595339748161391503813641943988298402205511843259055617044058530095553869663994220778491617091247970934891480157483326822780451890230298713725872557981317739818515382046140417564992036254326809592003829589237810148457996549719734603286827374516941335043199481962507545919519717365456264339296235537869165570590358977709622745766296582948369559633998122483266779624157757619593897027529141633375736823697777131451171422506720039367197046195883438345665684468898104085226365941987307523955979530753945106839225356108774840314576993831529030454134465420347082537064599752751976681255343587236519078373868297191164555385359719526222981493128450848374294340904528576150668576833610022212669327620944551534623767444528250932598227256417470275414832592453055586322008119498829450980991648322493292767545609503611017667779224922311930115084861433766836977568527459388524157108290748722592990380061037286868183223141324540093050547048748496916945760314685192539728349434600085383488888304097132217004524687725036222480394399436972109671974259656238424217410928619232769138129205747422800646833123017433311145380013551404467930881386509610119981780482324278544046325115184864986149981487459955543553679263563265911138929991484757347430476204944586348134242013340453310617223574012731316992495756036868229694445951925845039479184172973331470571776283446852637126043104519657240311588271301272367548044980149949718998076947002087368674607177267298396405699380382192328886050443722507670423009109393387661675412720477665192895716714985477289659671911853943450989454823493257842405201268080366148409622598458120188191529782824877428346625813506979054096452515405172697351660902187947621598877760525040293358317675354177853108246268838037655356759559607627221346965559174501171952546863307778065726650981029068878901558487644765515543406538184920015431722180181490555616835878425184809326055766900688658498932491646669620196052948652853613509039288633403077224766250078758007294299210628454955736551206650402061904044117678496772280003085586033491486059997130667942805250518091739565951171000484899951380852004387434910849565195482086305455721865916278942277579895745417402069347217376028077192163613991611263604959210270479491931400879309287874212962421518428212757088222000884497188225585530081070138583946325954043128049963204879404545119486925051565551140088594690499662833701696941098127866648519786998421467111066784088548540407497960893650271316765735743599471295746874441907785904158965186967381691081681115669515618997915811333150205144646532205851950542404225246732614565465396818814745406556027917732974273651493591595426817141943051238346602589985988815986157582023667492729077837644127505264792889854468458777575932731822783927260478291860984331345520412322626797641085121392942168568177835494690888141103001754135288624861114895958853443530512282916098933538560973347807972090409505145736311454569971724588369195667300118180112660906881833382288687308302996420245730959592335992120117963186046683250539013538406601444403861625866332975568962667909963199789550459143554989732020889383886663860840238418685267424530904134268677310150732283184599379276888390602706418673272010214585875905423033594850817503157291460021835919986239876472007528866646966940027998421483465880590597764131880913539418059342757045599914947161894237914968342041332859687422587339444192560914598870045058216506770310994545572840541602147417798647676881625874186971698462491164710509459606950360008015714985360319501996348615674806633859286191008797056295454116434626620975836043748495259243241772223975738929335170144135687118797827434765355813760498630350306840354332626780287680019262483093634957565744821312697390252144682080160577992485685950731622628844251556747261572472447518441895413091483756920237875713306363829540001458204865166564104812927595759894847416265562406835555526889922268172120128141614434676067739998268972693573527512430577257830438854378633468020178251131522655239803632809131462843066109769036486503690493903486775488894234622761496780881346715990493442349142266504571180746837595299953398541297497238083422456854937012117739438488065480765376394460755150159329080594686198699649070394480757379131220266155255668748193488810031787979798266629405733069833798354219120863997526820761550388491022773987369421730746754688094001476708971685291940065361726024840437949567872697500870531168979289713508947036828725478264189295434328922405734028265809868029535730719728053147464675555546118169483614818017197271460408080229511376229661040246761966360459430252624624838403320055319416843957741388623357672060568622222801251235180949508054979731330431343371078146129543556292889375736346805999448387265816610801629787881083443334273817430998418175941402958812484532073415991948199747979745271851220542610082110608356963839557615950094262451776960415372629939115836234634651856903948836087629551103171505695742778733810653094332177340763747375115806434946789837629775374970023878649046278377488383684823037343663054942795556045428796549220750490164441400406607882866784071119502616014103473175148740894936376218683807191804089302802296550408523340204894956425859162528174464620212903722109979812882922676826607326873922349377577661346127157971048485015697889773415066036434924660349796039042439847047428411604084851608848011180421454177341752782230306105217366022001086582743477685984305132330766877827063982908502662340037565327890106215082315953261363391623488567575507140212195489237071271940231771817298356770051389174874321151507413947112171417605051969725398978219726268699587064988241955285636239485169995272830744940851037780581691156167612526445167805978962657208994821900994741008375289867668238798341291184530688920752686841142722933235565972702484040231490213233187962856639250770628018663086426456202413282395787471876158068294839542299326747577027322503786672760219394049134483941690076932313594366364240357799388105550790888352988786411233771705986310763890773021927044584360653872828246381365825043484623390139610781034968169679595922812751917200441142251050569075432662192450477886648886208650469028405809229163614600932586855377992839957877784240046265026653281731233969341066602991374051140580154426826132609695508848264995078174085008128194456655857394176945530421520582951277078905479672260136034511978724127227555962161523487713495224968565176487303379983225265708678173816166877234007769647780020190833441767332019460915873140098218800854327215473986185928022977937786683295833247038892835935245562972210084888410125208087487877665525482053647908645659374876224150584042717763754409353982681672022034932775848875430062535411881788092033230346030411352110586860197550700112923479303960204200671078502615943070169971489274563235283780071150650136178946199362326639800516916381206052478697785560042849029460493060290789999023085135459140239372818763438186121742138920692284816632540185741734499706261043209851098467185618599608235199603704340382396884827254117061461431939771351854792785032014578552693367544120475571004974581841848678049225370144595236067044031830725114295782521775599557359637021592800045762047029582674082587094582261085940076880608637448589384321047360559699253196787331007667995415501343251848823449780083232865511677460914999784470580413662921102525393095165491621678158804056902747426904810225398293777990144796309809278692487896503559529148494291400493489954393391526784136673197550869362899663783702036826294908908246645351841263095919501187969535777118697710644974366574594875309756057317235210362940332661526291893107658832520314143729940330236558315287214894467235920113211404868829987408203858849012006600873651442982360483190430737989426730769826125216646559228195144787755514207951129080535354199552120445242941123737436071999736756733347661701258165040119981924499197188483722887479385552581848374485999777141899191765541024585921321439382750499117214152600441042193992568555495211422851426616465920292050738850082144893368867351363903333627800548671502503751906771933478962518421411805832008065760579438444430048804298661887755826220725755171009108370300126173337800969294655216738235177157411314064450995168525236554821621093980670922605599680139917044325003147358899137959201030950635194235150562461397367068026587328336122163859265079912851168618908695721467102875730236955447091050112109425187783804506267543259616426956737393797375420883399169018560753810223998779217943045820978392324554378420555792537293693556413042049461326489810552373086566496309792319473161749024645641868431322812509973106258669748575094392066049637897375890678947083564935259150987301712316695830254163008225898262993167243838070552691829508099539804351294918567745964453622994508606533705123869894963625122656355974419781252647689815195677937374888387006771181042119016771848782397871659414283112113809474425492897846919876862433491377645342297864473607991135210026870681996377375667094188846681719743923826324860800946882212215682346096661569241347356445151051198862667568821325732130597569431864298224570475191286435157231198207739452688955892270053662219755772647147764062871522844312998765042764975722338385953446869006873092028985505968088969579549770811586723887372529797112230931655715996570660573578936078313452483395191827137250792057961595343026568776341938259933050279179177976756213435350545152807342403876483336250150472796842749907359280721011033168632011527754783253185614963932547008505669941341925395974852447625463365901708151768116205950882838925617362765503264904586051918370004568592869752580813474789805145622178369331969262604249578203557424733921808473560667554635494189508637430919459550139790533328323371503207147045141703303752261294954882349795031112854262681580131536739326640466488999901222535582490165369243686995014972867547737096142466775325567820904246489215278262534581071951549891876482064223589240230644154173443221904768361287467467074921243094019830906571005777271266770466596926336409670723175512458253503651659705899083653927643208822211527013869374960026117945135948709520084470404670143369550186277421989406453631482201397283049923518318008368250839596336523809859619806133443039497840205075617589795574165397690076782013222131513320440173922903177590093976368898571952181550319598748104233901246576437530526568517001737817904066311237508444099811174580039170755840720003685540556298102185101608961916257385683444765999759435395291812813558402876694329810837718192392529014256567961642335844449476801951693138866834095020289931007776759383618069404047284398403322199729173639727794847731285923564544964348455266146292191657015391058066859214208986628385758954673602348818565140599646785643785554536381969623124364330115229092057688899446714705055154374135094486116517893744640541124665003813607996844159160287261312131773464404562099285701537353130276445759671459303946927247305690676526709158303840581042762416065080160360958490463201970691118356460026480521106922138357196064735148665401330056701698123891278637636288789435930058843755622887270956950381959486932415673473994336046473113521638190953010966630683343357466056116863209936841946277887239990381865029334264664081350944364837550288862636663618743083247411313031913467937071058449649101013863759209462014540408639963532912053857721527794090648674491079750386989653367089512219034798384777654486288506913353661784405297315882028374001747307630336219938687230572958131995537646190859008677283254389127721374891918422384009936773577373753106115631301470810024081598131436825922175699191171255415142830540702382417304129033304301607679269173059377632945057235851091591600753327332239455039683618653949893571246490780406391395795757761112062677450003063848909368185398570345812522778290385186123348195152759959040689816082022614694550523919485487632384007174116097558462441049107721078581398913355981004665943421603796372377913651190038843086695549147836415644861215717372723760365999284245631577036583834540169337240542019863284992484495248021316534628658561510420390909847087217527307843039432301111233277418714521272753838271507866995228596764825069276424669798239481870310402557770945385563312139482023757602281912025285929825548452410474479946655885262366934753154785155741448287737340390750631038140958275837089975863431300238516450455662416670677190458685688848401437087644223298948261642329608974829399850178263384639600495319375402021806901856604624177673624246813238264154661871891170867606334440749729503370627834014529720638540654294260321627473402860905194563664473710430906220125486633233646800887370595256014779658423302217108556458131113043630820234058680139654818914324166486945918693838604685899879475293654081555829715117542553439052708630919578669793748676748273145031061917620857922918179407926735975205058795441778562092702185956369369828653788590426920800597714160783913981667472655437394254875788336651030357554711039275231097320446549696859795361810095530606332719014447329278925368484731044652774332866725893195115931385420757450254377975618393546083471966534676399090351592675257099386493999098018634332715654101489167390946071982958997148649969919965473282261765980344814215423243275796165654332953792708093246211333131698772537356083895609665158151998387083637677916968325795162800106972198625182575363213758712021691103346812080784504207790465316274860799212305015499772612143748801243875469270501288371774746932251435042795614982253154341001643509471958673507650962124958386891755285076936679827077117845038643988164194823082695483994629436286682927732784373424067564468231415038511398825554839937258716748901467724648433590692604775119564141550197540293114548704515295723850780947802810744424033748725610805436805163961081104153069470525642162640003007798756793196055736430910026012215492817000838526645452068489307001587875869702691297970531024202923362698370428728540414890731907817895254850423822595316098927541264012840124721755746914324011923047211469839716425696722693662402234146233354923314559838759495203920582483061340520634375993741438818244310103509462124144490028640126459087481859606556828095447917512406803960202484675401711597619317363772309504140240084121624406139039933999395683062428489184966279908706375303744041285627216864890101044808820744513149289529485120876795847926353014644021579495299347743965601960598074434431452638910033032236353377683101456758265302019235472760456309205370852265960700551408783814138997520265034991623882296245214216480403713218635916381294980306467901615638345865580008216113031181839614704226186382085541239746631910719841653623781544905642476937238213327392252412232819934066297315482868396777392276151563759500833599050094527467973728720754162618783087339478120715590324214440614977539482092450844377287345258662325459617408108663520511672801221189747679853936346265622226261992378710140574638669303705576555513612345400845400163715707762914203327239096860114444688075110503986562075170708950091847745958814279494408558355146589354122408066467988548780046712776551701205320009020781439682837844000655783775665285220088705521788884730596033130049742584499483956465784174604805954317741133987007267374917911626810649466295751182438034950716836594186435948595257563515329265303032626104116404914482355209879857725500697795295186793029548643990742800361932280854852537507531937219691449623102006639160695399627384977287547489018507509466150733352092599257541183688491489963777054807360539516010488941681953219827940529424435073235363624159375336937894905050163965730917083722706460340741964456633440227791295135278597657313241444657080792411410104200102921451891246708801245356177575808874946180826300695330985506452138313689436307356172702641250780160486517693423838540790090598085431515659396680302377211971351814802897518139140404249404928430155850787373458722770299868635516889872489495810778780301074583671738424892906470592787603451153459028762676379198127382818709485022199584152606784350834064348642642917000644400010616248734428891208553727200942561722950955718771278963557017381500303701862238335600355005876992902923138678958503533551023243963947794175831266482177140891678949595208636109788698418274567111955382822452437614128391839592853081531531185346643560911146426379482891783830364552940069337240172984540462509102446529584905025314370915075262231987800092004457407938893148788567050556029033761670632714222662176693790303755422892428673582961687506284356996713199804979915264909793658794013434057893236969327513817982980319835657205212202538085754051527024516208425054769369636616613706961848793870442756739072594415553155930980010165097107099577379464589686208846701193798753982745491589851185142565908460031110349046583349785646155808656047279257849236338482426281489025374435552834722259512673785476153128096951704267192857876294779142812017599006410182343588116887662129355394974035924775456582119080630491286609138734936350357681780977829549629294626017112324569605610742033268151938516849397152160061732607953589271330863761601104993171365458389875034512354939976096498814043642091768508143840694474930548431509869319799838565314851631010213867985555540809011340092580690359408051096778478779073849194257044672354051236134074107157279269535659677053193067393276248726022603223841417045660317865767572752635982874034107519650582694057894887040879483958919427010033553606208331978202427880006175655683406540820559227928404954432333738700753192860070975607003213347594819031603293854010746286894888526424043547911174447721080325108744136529530130311693640019086082894115047183817566283008561128872432557581817521726578866642773204483783416341886484177381211322940732469099938895926962578842436446227545708426796094485302657912969408446914038354924202700236083120563457325423374121042424123382076705571950820155084123211022642220511637488586325203683706443374637765911398201336772517431639602253197157430649440635799217293148814198404272584523263377872227973212695148366007604041069308554528147553437051654568766470219973942799386483084862465387712888855905533982258587131211880394397737409738117898653336516217455811459047133999243478755245558176461805483050966677839581400994055289287096649607076893844847351380402481038141884178555819839073404581314176558596803991705057270684052997128318451293599063416542587952972525894939460111513238576359767142545480455748048522921512977750464535630703039732753154731933911199029390709231220991767425033919749560128430665894068525644618742856413443516806645212560437024059521548585010502145728273076533439554099266312983296778716747310005532758509476662537775937607870065532859381875460855198299610135718310970322334412473594267113482118361963434971624871419199284390401701260453766572705197313318057506529326259110380721155967218625734943809692935232570282861857974091862005400522605632139178879186762683773317477834775703126445535198472820890449183927314999618424685471471726314432696132907957130626278952697055060433238915718635978311898844697810957903633888260547359760347191230019284274676152096818681790804231523092767088258742911287062794140033067843559148651073226566979590871191723154260830308802394191845289006436285757924213999148627596650791810107942375985541543528186316487321193190911817088571552106446889903878119976515005075044642391254813677653518628660288096458151955771480892124448570297264485281102690983404254947903057655891035952506424263861911911235221511195737559283900324222658579547267457823269428232241373081910984059582793696657476816777749337835582231156958028740959009986524850325523891466397921717781318693365438044889521266443679629063916998422907463468419076618776203470400786988122765130341707345218294709640795504116227978831671894759093828017836884663486746046543623035499321811677412185175646853998733175347785618399554368083991768030810335659702892186297476815041849380665464825516114775090584342794967973983321635328670904120086840317887580361184814928056361152602843374662017621594499255423131979387078552859759762713931939912452064237028704389268604742382440794618497287554986708077686511749995940976887369158498072933650398896165230591623049704740742112556272681291110506374231694301895945317078096588326991579542813774592197463077593506960698250638214019128498639341423447402677247465848677661105428676270863907076854073689359419749093782378820194650290623388872875456623970109951052253871288119156554098097220459302805123037206578521183389330057480949252074446877536389642252087521252323201326981587267098465008770777333457997343536696306540623044648998723344391461950745007851639604339148058240005007725778229254281891954200076273904994337582225233961875439271289194352521245795608375532152534217076412865096295504319962578153072420180683819185216520095679991744211435761910397518878246057901940484095836281232850214842188007328975489507016435582729097940968962894056136352683443098755642595165234004441726713619495550862834932054521109167838985095030227413863828876576325280816620845563721664245595270844165471046895513895459560923102900669482038385058008525864651967629550030296507024498700329499657269730872069318811987791516212829009763277124827768949942395074157015606647882148565079757756587993281894589176965881478005851788550294215303839358087002328032536202070620354348823052321222735169714971379039730132498810936478789765355536444811179872843086512258393907562184156861401173512015579530834195535577795705928673233856067704246864137559505914111406267298760216433534121009737287819809429192959274263228344284581498336916481888573578680024179107768798776504959391618401955846397232327038672468404885969647799659412138421258915293305207734583881060260243188301494175869013428559360390556672477360030109701166328151658314278172326949152329469101952449799897112922043261586313249575983123967312183424108802566768260371422264024055940009986436337847248838897277225442542636840208651921321058975857648636324196808478399305302087579951953334677047776497596554005916262856384045731109858521461124099507188465970114702970245529063528904616971788128875035508036075935954671353547838685256736148095668568806275184467457722975683685891125636833100858714292914269463236090518643807362243463816548016879842514071775074891311481876079992734100249156682661236005577232302149788859795457391325522368684608675449388290428909407192015859474695245622845309818807343781096279715682179405281442585952386222139392765972615215603450711925345041939516486986755326439923906040288110036167494587210778125227915373388055696444553230853858627122272413603716519494258332204953530641885626377491872766741295720377429435383579813413048495239189708134824495686801569309725386052923549666933001963601029476298755317980997094119322695365315554988969465966616215102293164814341992980512563865510334099996681142338253157735017350159433808772249327066628187420501710537443098567058080721002949190526405850355974475989847369753286656420378566333646440713911030527328477017455503391795072177129627304241402859042274522372621529897860100792818082597717099089363170387569338760563887340096227731737319145455452171457161968515450948798704530189769392297443206416454554566467451280036804359879849554901792619593857407429683728793464576470895633905263744040194972533964634042140645567462153428954280087574250811481975004620201310456335864038405885734745421953395052473319255958023038036730650009414215398154622475354816999983204242003594490290383136712188814755062634585001699877209847274203410955742714526840663462280382466065351233315053805340415613653746597660264661394125248007890710322565531351777236728390559339618038636481004411582390688987185683883690433373290926533054646842693927738650055103617090634910362009437617636703031799523763059448985636851267982883527738541466438861456084829569563465196197596486341191264987581280402245400238390682699692090463552861208379688675517083265545460206924966430488769028966141707633862591550022557611239889338226030681228903280493055039939883361169383208974945112166612949143216772988201656713986775371279039130762629977513925746505211834402151393971321560346070966068277294984161410447524245462920329707167809850669493225248422053506660170055006313594417104733201584637567514692930162585898149226556186831585652812749966674345759088758247139048194636267887209050660117546567170808953437013180886892911094806049009680868638160541802243126672155714246745339106471692854181832257554481674016317709106069078643970753041866969855689151597993620883766804206384736220793776037132614783896602558749525929866873015416830415311075594281278230494409417227955470400282008314622302984295374542899278261004776349645167191379890673855386920731481068054054793235867924895158299751372799984480101152812657506225954545897299559625154281249557877921345643454124946895208595498288217905171688961812372843639222280923170167942233142665796947970738264527940514194727943311174410111385597717298962976638353145249024649854739966762110184816710177404021603597010280027391382811033558213753362944008541249524693237366738444328657826320372596527195985390044370422556624536905801528783513560442179980341962545405474276485874026164117882722282202524547524173516163698234103011694043829620253354671404028444650894877960119858337501117968331748608269973925387386656122079459428713503209253391068536072070263049308960100239283843067539482066227642319389509719904523353906283340024438185560387654670396604218034526286267520827668297657036915865945451583171874388935268606310200391167676232514323208440677365875263735026232205878029745407722115074376025216967562681853867080761704201080839139064268492166124462827961796284706890083013563475470801788724251718840894944690086336675965124918631689133766903972445794752632667123560857174275137405458295865700176005445568069608671197011559123800207569800931380797824709276915179955808478424046901294057675990410890809320061630193719111828656516506762965289624722735302981575828098560768337861482761195003718539500665237747661735524454399323697304408462541164674675275614189290628550852926730607328957808722188449179780499661255470129649844302136571547453403613485356379361388411696753367166704877174519887633398683640575461327311951382090984737853622584744382179106839667828187771714588714122185336616107099667584056788518903068958002014226191110141317438687854245596874662123931301183938576394007993159175147590808041537441545131265002900482233867919939952640695506508909739899190015896408970665161772249352098773761530146120263045269763661402574181145491379929820810785452947629890265395365436907937966571554194697414188789635220862288649367242992379603615737095123361127011190631404727825626628438959453955044044739932214830093040204505321950613049756382622920000372367200827920950090718893472540035662880472688843265841264598545162928981827091293443420583099678608573567785440595223250049589148370282842180940879824370369660306322753933696515625275165981100913153086465237176963176692447556205147617252103669956138812195493078715611808240573179354269643399545602391243310609115391925557769398939241379048205825541841805150811807590472121386606781239354722716178860002871654594720653537211484799829003948593880179909910130151510583380917522456688970969718263608367674638709009631556191209942663584714064680661273980728166258846478141556345259516800426726050219473027383087423674433696560775874084585075165637983364068449566956351992984673012571055410084234469499637222746059861176456218817392130752070842470833211934578373586642997164671550131837854771833661003672113546661495232835909805441681508672565646766188709809441732093407240169104876276913365869352413157497758333221093735932878742320841668138952084952594750501412603252715202076559666699174154128838088184365643963587679291935712510516284147243226472757877987399834693091429799625773245690565525712643653183444454226572664254610429283052791039043439106270330547520668983116496596856841307851048318225882189970990816340777607474757896390827241628894758207278776712141003203458382192285027255049990802947299714272265115547800996745812325278842831135686657927905266232222285245181239489774969267261748200932570418034105809430158129080288269015539301741467164631094358278537023070124385191582076391219917576902666638096249727078513732430037811543648832849208677336550275261479223495586280154614502151051663467348325963061111521654036853045949439843047547389904567218917143323487511973206194171793373391350233758064448741586490277214879079268978884115743403228579118927291556489467188714785973117609245928870394416292572331394738211183968478819692305471374517772286408968641596020565268085659516692834394688852366021274790563720720561433440041136197566559822499648609026813497679491817824391536621167760616586592841970745270199866421742521446132010409465152669546801606878681980602184487956418383317178359478445897096762024534011180682252049124193894724086181897151949303378709242649136089287189051193991078878687615248151607064913973425026027297303873710020676391654732502725325675140013974446382616771076062597153162533069823376607428850751397463349758607288901328281430558623898943079222168837008923639118768526381083695889253277173073195468057195297718992666976360621848829956644238252118085582137568218654943034833781860273096545144665220594120278705505609326639852461316233223421100813310768460455467168861116689996300290871659531253069450545689406002023979123941775618490514075796034144561502419361986739999183026379153447875126648936967834470685499498562875084734885768139944968501818850175028123403179595948327239180881207036221872517571845128716045333345538527462838085342458127096349510409339558125408149657618998782564850643264624486328469750652342052372019292254642926760555261717978750436251513976419489298428253916772154665283434108748152647306151356971476985985205800039289397206729092712851305708626184863044728768509659096466646636158768985693590918624076694980469273475702177478525818111331150697575448472123115200531994262274658298015848809620976523109029244587323451420393308901259980957809648684308888346194829075432201528852137542285018757513842654161713151812152357659086510960357949202820485091923259001721862510176353031761158725324321729922569192967496797970063773130958936301560670761484649692100140381614712706802820043569570067322995818447954745268233247920850385479416646660036764438459839383990900909444226227750416145627239038720009896629205727012873722801037833024047301129101127080172959790086075830731973860148209787754382957287472947810542328368238518363444709644772275661574335392327747232415631301772346615482012977360219395026985558900555266498283175652181051867295770738881078548651043836199922744755121672423502608095560406182714413663665282872123229661096215253188204527701642804327420636868491969623552934286136005303231410922641963435423566141669484290226580154714506012701531016343989791159476311984438299048150447800197196264307114752506061041364609760200985109704448777568213855589637151824991196338116950614520726979018199248610340466000823400709279961504355044406921951033374114237772123724851755215686312414369482383660092431801565948543556513010650155982140176367790418892213028147032666387303399043506262514408993607421215702252035788313907484848932767542751124495618472107082572395301449218562777412660014864959083773257671066119037815034820771691741371145569705889832781205183812505590008027866075353973339054230061215834912953248970023144387941140449122476011893003114331192012421144102735672443343002018100591118260612543416485157346895231747573230572287791392859902125634090231761682325351266847605835937393791025748768227635910440528035153414913121104111431976898179251282062968146191861914234295775065862626933334480242484938792869238923324503377362607910262184965839900281085467404383931602549723146128250654964474794148461933915917395689533241046947431167185306939317374365945782911916481767478589459828571004973880046493565079339482681232487158364510421893248515954394814282477256215497131576651554182011002124439457963776443922391260297832662821514978349995815870873921782247330918791082337690208510492305690182259305149718022022293967002522743836178250210903912518991911764981990863316345601434714729390184642749698812585975028501081278031945099799577372716643929650819333972981248950626134796584521816969883579263933116998985050260025858185119172115044112406218811813249060522322514211954122788565736527046690726168921673621058038275009728283493643040805763341104633891008639339282977247441811119271303138612898548524089290773069710943245469260134251104999375805275375186408365058257673215824010710566179083767597648449187541627090750505188460331771658857868236506301108015856938281131519674427850018569229440122325599600205011972542916412886874600664940413341240976188643844713069368088418094548669840118567916587171891118311928884325257078335115577654227103571436132948710533628877328996446468820925933359917621437081157494932705669531085156117260508185617637279474335963772561486397054955541164274278641378285880217789064031485082405728696449824420023679352315578693178209095755674618564621549387209012984025810808697733173504752038043914957675396816737954313583618194181848632953683147593594918106440429154795992880734990841148851763364266613477844655037664468729990551297709042010369112014457202813935127066539239331237805296848742061260568175732571560161194561867225523254945814163499272507579908033187285539647094014471535558597392891771697477830575218871833419123736893143193908387964648055048089342024222849315678893272906169981056272484638930379962602446578850668335723798722109002678007992642421058204101676105086148200348039321719234229097922017751677261626745235533516346213427910881791975036629095965700330334271654011994827951195469388870309983977925707441698438829998407666355581919565753970959851031983927812509180867901413923304221056020265844032511030450651944484802927346332834712505382988838101664881266497613808879030462465203841815502205174346836371400927784218331874809161723840408213454368359444304368919626819053702621932745316222386661971460708982413440136993699382052914630171578253129865455987557546048512939974152772430503347764716124861509783449331623576464189451420463887744405912466679079262699197078440186816976497833993992642294805326721577970462760283270137749646447856942118080873858697380123509043132243025038423961088885287605670694318969748397258621019241103229490534085163189020424344052224731521900187343647718948056011675609077223395068263945176552522369217139255535444278079179554964703584186068489656228932731646922782917299590771883226332773112946034389116892542663001668171154539057825219778356359637814705149712032531352489541194095040774860115617767394526367724604728618667140424879628637367155589414706657147538981212598637129820436532421650660802477570701743265756531093834422021917863978097483883859018786106988113479784768626027603008276854581291125908433146468098963129218336370730374171853019527241533430298498629517214150754146597104901031655594625836034434522996792963912970376840628506966009396318027019815628240431170075830206488024206219842498721139497414444786190894621554370803677846198111477279141276785195736059242830829926094157826070873966160966649363676862145646148792561300256727035667753797969749815218315777396309750131934460858719858191099718258750912571822902009300994695712892220607607702311402036554653422586872888889750424147361459343560395235987469680178967010414006818301403367237861950217791339939162675375125516036261392586275711303119812081417395840174959358582500888984498223057024877975480849975106145928025865360496832013162581055860272661655250066241352274768576144604265995093554691592402156931957549234616167363236911988950028105959605144174072436929931613047493577315989943086020593859205551254128759311398252687985350743426343551433961988556930720465723309151802082563929416982603332410115777963989972556540971456957209756952388270108255518791857904969803378182729669786371952478886452255389012581802479335155472394471438030381951204569223191974253858225776533850274915159118969613094425597281290516692922923632237426654009188583553783258999497424950212436754632577444526988284508611392607088828566255811462809630260789139722638588336916811568497944402373846981660843906329417824188253933887007802041929323864177326445048234342311356515685805353859347972174735984937337318434185135028219075327643850661924427183669125766212411488294271046245845668100021348213534067670415695723138314618568335704620503531947070215967103961106590687906509440574977243049175866762564661283716207276727671566377562120295470419230062112451320267239637518750453646838245867035473173555581367859001500236883389472849261158837937036569951541007142451713024177786825049402014776431571326209256369145562848482212198819384608346135407004977345424433287339926960094976187702973263819714399088698611497737759139686550988860521784893451767749411693281856482719348998832251533722350799293285063524838077950527449644979798170288000059386179284367301532980327861547245776828465763593199727905334580602366486047153356045426968883479042116768341635321151484499960292818971227494762015715801295572503885162662700734519034728466178107819641640469478278153248079082523462108362246114119983718201871764097669920818062530746183232042923935331697885124695680188345511088446075653466652080129495669739696897669378645410941908294118135198982729426800938989547796006476500577670114768600655374077458144592256536545494603441779029238709233367079751429577554378539809448826356430910757520415522648968727473311154085918721161904888549771281847550215803732166313070773886832202446077344860818867075481112071046355463986167794092505337682102147733272865025111979308593714257066411325227660138311372633133776746108597903982804287045165062011580969618976309199134294990341054294114314493491966998252969356551687848161142080649303060761898101779156776052540787038342639961143691153076538654554325377596467243044819932639085189377202014898182051735268458428738314681216623476204053245767478079183247349059871042084884730185332276413653361376183700894080589598245392408960578020360686305532477788457152708332639231573320609946078281821740781507037354930262120649362837998934961707504025960473314982494548919536842672695679433518024559413584207566753719358547145776270303283071386625005794257085837279363306952225220650782747256246323803891041402245714497808505235518884855595227222781375289199780878791417115342082353018660376705883309408689125830426741089988630807300564671823399080618778361519603054775378785639812529306523151885632989277005581808387655139042189132171587375086392402605830222244112739249191264185739986416104659957518629525769480679143994680560541549698517241079066985811787363513671359423004131166889772484349823970896887883922052975799371577830117982010210696117581487422931912946919274058315827968640782477264729197547587358818721694776613861670429672956413599154004494848634864549982157772592010085685564586692598671787467414097253810067507147212249791567144022344230179064181412963206037553965236259519703339819931178742108528453049809799726478439497681717960365158119026291714237441956698839650838271988674306762372541144327304738956189589296392887049562062430243294890804968963353070406988031737867775051306012818035714061109042992973300089802498353746417010141241053533936110884310541569769437422126294106026023145303062256200953281807398297323769836620326150845741676604035231986421275607556545175678815054652078090909744939761305940324659328212672559144866961503870220161962893374556159527972099899034398810476419839054090599290526476994167886133075226018732017743264671019830825173566596747593694542767723458145115185601294957110625304901834834625771312273445659410805889813883111686771678974548057112243868709994968376524983003283390783876742304201640457697766871439765220165483143753843343391185652665192068652079965616536387373291675020058646387534565982944968554390620598350626780202550056516303790929981442474503014782979976254334716666248967271763519147733516057683192961950429799967593042271552243958139091109412648403103050767408063822937510094840827591975760623359818956357080505518367375090220691859867189445132305419931786848265845668131406708383614358672845052228304605005657748972891969378433441276745422675954888103057041349756327088245023063152291634586887362923980577135492275430072130848781258004896720784914039605072262270966793159168394354412014996809787815548160001932750889728067172286670007395732893412252402888960702328959149116218610383931649439721786901748979034337869424328800271259930216095838061570570259046428526440568647249832135354612746244204238594147699039878368789911078873443312201322877446453676053985313003355390259292131979320995232186033454752587660728649094672770051667772196674293865001515678234154585136375823899305428871954270690754830716449408809075086915360310754928608636389041627504281466417159332275160334187075762908759188788591295198760325656258585392620191700025881136462658248005351983816322665024337339102250771067638564311241231515989682060734776730999595592179401993990642909834119976353570810580747175826192499472625191621821694840951917982265664028029752314593437340127130765636033921424399785796858968594298753033832106249451792674255758764922884338249754937731776882353139862021932113795221005946062495152504290282570506044058905558588595081683463806755581498157373190856939064566749219147008673338026106244504771512239711871565576217003962655631925914859169654065199538750869015880484099009223999420499194643493082493501706247233730975818692559360618590935131683415290405706076257310952043945600042362954229999725971294233565630248612781627340222115508207989446978739625131488656658484618236201889057634928539068882989545325823612121626064474684300238791875640598407448862766637388797439847501505370237539606622263456811500106954064250378800376337629012366764709408190665237586844027997332125597814868863528710284500660063536614393404030481379144410953767637133598690911604126509939375496996844821157995978668798146244450742637733358189843623670925987413909508086201252280720355310062793419425148521089090809041821009568081576440489159026503714904946331206208176489292256724194285218670236396002073403048207822961269344493543137718030482824071976082769900009374144245850829804915617338960278657249177602882560699113887277799669957515759140761721741815249228337337063772277392174039795836784619149368799344349787755063654899633366417992465279727676300050818947384049739018461331660495705726560260153391058815917803265418906927379620200343980877457287976035977504092900506082450486607634796520047140912121224484228853916795416505614003668031073982932868355618053034863631934279363468213296355190798913840569506241652463920434316648789024825226652955606731122175324167559490248274325493284283839794493305777631627408103480958511863881126490132047460822604722912412879447322378417373862187023470050592537334382297876100697055212454812885119976943924633953633193288389684910572945380871398561298612133797047635013833046266299759565390381343095928553967715841575737767817060167231325886076960437729913206632302229823703887063975996494983911658566784241901965991484777778826668004828464195895257296857539267469963131190373863475609375294922074004531489525790369325592104727927843993672557934468293004222404086961513683108270027718070921506644113373556677343269117210068974228911655748347288950351873045663457875107726883331137767595367487294568604212661206932710783841144965050911269684603921680021617047492119197823268090068207982945779955912523641991337248069301838380963062711772361809698111571846467679824623669217625959347350751275655009544521800460740215985847694580948432223830943907246702900961224866715640922279093603576172328845986125757384734788380529286938675566544015730301955515240308542989423387852491945546472000389212647453271906645316552437899777544433278079046319513495670808521493211512870491448640906138031365235338396384682817723384521384794386710290303139236870307789888866721349158534679892683799719636708513952821600830767596958482564532789066524632614432651021095209566941592419942768165675012163412427022009713033621242777435345115197202387306151719671081827893839090104731652964095436205812995799442961365220228654024854437678112891503726379166800816047487369569272524333602399212457401498999543470847331095155768116329285305170744202974497068221977923115172194875255466630597015330778984690225666869202962866108191557902117254231040539094495781078397267359701578857792612502220650254471124935431100568725373603185749750141915444560142379167925100844200610662865466222867333972908571365843609329736768395416411348105715787619703529441432080166290914306053297158601043587445680504575947663383761523574111710333535421823766533577003221215012964947954169363106352710786335545286462936699419625589110975482090600017480533917923498051265808405690706182967358346216316691230297533396657978108330603963631712149821697973433276764622040137182825527680154783728040157942063615090996965451701688153375234045712848294515372404330444214022482917218431725392380382800867677104561808518722739598440712769071456316321710568972551414918813163611519215040887527271233500549820442954887276961919678118007201183091754207386757269175607729758499260324241473348862274209176098717634793139220109139034568163689227801529621939694232443583183130313577165011942165212627987290877155834897233882373028168017016072795941268792458351815233545465544414401940356273182447406317436237475147452144834910004803703207517610196291928611042455821399948578214249069209731315952543907991039477347769655832641656058942530803975472819887486070143178634497621999732689783892539066721756063707041315147114091528241203580678774371351971496670144973923732828918226110442087183213644709694854399124352899263879024993812443211338405511397012881863038217593962612035315630564509029456018684614271705287253505475984344671125024659680962764851381775655527634297632959759879036432256337240664901135447854739343814361707557019536053445516446301146429764194409744969969304084286306249936407672298751096980638501505732941931657098574335917876903016856532670577152865530636116666587455046238856471555069658671916005464665198564890597339043136650779525533101097831645074212465090936887975731057600013193721173730594558180703919665924097628656865184381064079726996566113973481408694983366012844113539945309057576231428071779932304028683740828682488255533976849769730388057266216512274056747429945398189807351207061058674229377072498758292706863974838620665934281103046524149906582687096431324320185991952446039824856284839515008969457646446771647906853879853371015283526330048791115396667391804862456597171273679426848480705888957095690158251719633203706331029066794946669507658729112042342970901540650664469439636922292659736474980949219050131584144252502486571024704293126040173864714783537035675776494164834839910763591116722876496725275791450574012799118375385980413555669761051312864619615557083658328272990652497209784783519240560448823806563775702041916035887755628881675783475935681032686209264986220417728308911636137205808173574098858006818934955278795806038766429147203228910172764994524725520968081219013883645271455882382958775747466773233385064925163857001825848802325848873566667401862138240076421587392346329693123486455016956333552955294568326520985140225538263306357354164092884916000585277027197415342572460255372960825193918259435365523117777831626555717453627137631733259293111729824040401905549225698896437714019067660521045280040696634903070854565863334685614794249349150183716527227805384916653706907730787604591206063332461153089643402613723653282503113084534876881966571224046521288619664116993542352651998810079597236553057312783553793698181323349749623368121036206269290237858718642252701204861925113517168406101260520037248406484217968739023625837819356313131732309101295479340844276530195145776675288726731922985161167023111642776622580338775486166371384601231889537670456683553112316455163601493556559227277109901681956147995382731101201890448692624075845359940598800463694950192668558656940566059951151490936840603151442450027504540930588757089815757788488730943405720788669590309128942359059897574116647620514712478612759961184505593430164089247421547584678619935952320292053319176525333061538226458202337962122047754756870639167508618076929393973161029359448954170911417034161522612844752757170586832085624669183014863263178399470601568770627049312189702926589752282487895473489023462286600179637980423683394468306794311563776069962406748427916884850188198167810392819005185131743514386347272936385978751613167671665777480254518380726738408047648409129133601598626040840264024164883986535338245694492756844327554870967744844252595399056998484923445482577989750766604054190854271693769736956221114518875042373870200155844273682989024820552748464080697718230749189172330386060657685222716397032326095941272962199357703711996386130648620418457485231060703391343203290598497325916823638111233560714555365304506312596399018515087075874587706816368140665747631948677456737727887531782520164503686903130105716575618075383108342500189711267471090920259081302027176579301399982453405399671910111670225749047047526930794671271927216476586381916206002653129262277340745451441989923057623016346761527034669474977272882829507313685859067455458373546000446254530674253392065359151586619432299954491743014849676534359600254302071758312861347348651822082911494564105210138659219598248105068322033383867689619993266694801057231339366166134595480170217028637402993438314679853093024589639119183969696242932918233395774358707303467013419282712584789082741231206249945410348572368912250969331411618199746229612454456776451308979890645502785295496254624106377708552842887807242007668001148444707048145955366696512839466476790846543692437774360235493551480302347882677130201005808334201639308285588178800746003887820249992842941383863490220568650971008305706736544605260069417953745501153632549937387841915929864030762919178073920825039838981190114874819333183148679900997709528317194727313166474116037770582524292838779214950980954949736629913105470280791160249758975879597289945297213810815263639878514160739166825875947878152442891381423797942149919189697610180890437384858978743169965615644747911539021272985671080113620075923616904442141128616506803313874211729334619555714931525300219210384966223060061083738530970554608291205797876102015387846949153426144778610137531448055389932610658560189955296482450485547913683937028969664128129457484949701658314308631110399421381764230027487481170533105592135801266582376535129637030193896160662686374962068511145417737595792325180528615899152817626122271785511291255760010424974884596113411625062442270625956122424584195574180675535494613471943518412269748426991712075921766013379358116356281095706575596653082345740923855535785245650787634111194051138354140129644039639957758532826624107450625652306408653011210839219449083309846818965551685446140572682914305586861767303924470717861679518152822363846790676698427435934389112546495416379534971952105276283596498099426298928653352034917421259427373345638588518303525740061606780901619015380684744868123854154278436170849162800527116202069980990578053098369100231874308364822921046672843257905882643854605354964289274089243296618598778958143897714996359965492670257374548504292123191568898904319743170118417450235851337173280015533588348358215900959397929016279765825788198529584481527318585466674353057027919828931367820162882052968371222415792948756092495470592509448453064868948852636174342016098428657291094807461790863704376138702149237452663057929933712199723117076356751733157583876281840694367113378962080613774300134201397161198641790009501552477304480692369279260343257075405532837322616322829913430917537277400486106160307299561403048291746202397589676298797990491337991259241622231906199660888929748335589718005223296476612504649844508219260077866074272566939313513402236428023343763836322355796384632533292304142745553905042099452490771553543312149775213535118759900823059249335164212837314448267874557155454020473698587483909871361863466627745270845344173815389921410769266361110800917911110763330263579261606554853435135915179680508895937965837084976161391039294669617704921909053735995806207657518629887272874297784807853185238547138245318925905577092042200918832348410857332434258435157315688224820269581485383020924495173661435750873376493077413775555114759776255601368331452532846092136423196992817222848174371118400544356866992720303673035951709531626365281904057133560812339968338105329062848382207246798178812168646309211532729183248221262608075517335384194568886226230058931218900695042011582881810565595398272978092459426858714146603975152226488191179305050437284682637160213194247409877781279452470769859500258222801700671463623363897389393808755249613505157384310935853227461552540030455427855996106508030143594501489997523573443356003252581511308682533708772762990980199183861141705679051301245770055264130784454525654626961281429074108303552626991855534334611940634028928734321676098950476549788322257519113355252886358244970936850025112511603067067633304806020888980760930146746955311371837589763999159025964348317016364800530271717953323217633240374172810196525597898763113712873689909156009238938967470974655965204083012941975961242652349893658051223920810012142555775689945823991750278757454008914551759207046244435053357658979478651667239066144561549599747238984923343413806263219142115731831539099528907298805565748067081736420679668790576691534001077762964651725782007643993309536996474548490287800482097946610993697749557423509972278544813474189302926698038644674041571246950615245124047098326921095514111432585096648579493049306410922451748369964342735939978728317096259669774945610409129978888252390169453017370475188875589934124080580193752930279965629646577519698615048198616686512040940281880601101302414050515461561350032912539768952546605847040886012971799313724868745044759972960122727933025187920984312480069032267168848619642996776337235686905263456944502732729420311238601942258567781177145662490868272586076827062411488996394581157917214137763360334876315821005104210233342244369091257536056012955756101453017682289795145811727940315992175719679952047064762521406595886047841714134655561897847084092985453810921069131350827989615952085458186742852555957240695529882456653140362622001775911642731306536294814003915029044923159499537210594654830964162072745605930830273281675162468878718033863764410821880644287492644879718356921882451096114819117323561904457977942578958521130699560771709246830804550544199398761607549590634528550791407522383123699461178172188795172428171017054294302854901981407230349868553171000069946812447789704638121968183455357875742726803639872389458832230626154921492241158470460847461912101799210938445768457326523883254160311994870287080511812889315521863672824840653659574572313870536403597553387709473365299914866605823187521853730422859676569859839033369723227905291337426085310232115294539811497161308370745411090739757642833241643982313606631924769854834206186519182629959692496535649088731009635351010768813249197870272037021169163118674540161168221915546988099470071106183043726730413198031082520414224716385152195002034692828652531044687587952752638074051433343049958415113793822835692391697841246250013837248654359975844547767991594440156150402901142673584508764917249841580577262553566346728682573723408566745008142011841047248988683278312900329754134147601846800294736248707237106398359287578731947979952103273172667198412498168652072875599533781805739360367658469522057733553181405671791602436302252104725917312787078841548781274686225752419661418525865970907876624555597869656340951021528988144735559541877007941074674786536756033211533872004455019489086885492530778770096262314059922141389441563416781114791746830352539511374670798935142307793070145813381243573307807354018298154753939208912222906019360114241308032978027571589113587976886282341062391948442607902834319882337385468806329482141231638581601788345638960475060449078988862753052125674720944396960989902101580301097477982821743713783403013783880411393379661885522121795572279825374863844803211924774431928642658193122996491593908803675804822632042234387457892271373054194895327337350714415732457146264645763194268500026104613226885407137896535438668808091370820536603604079723065634560495951653417717928918256182038645251837031659633831812064432187973546492820493611339418191164895094456035551254470103963925632479976168901190076059971434516694385751669766022952301172543411849132726325050260987242297007733619494602800160134781285635631531581433638818356834697804167012829279652635198835537920090246700193826882627299797120609847551092751623189592180535096790468037538954562965628156728375698735697874316407398074096719617558775006643083672138690637124775407128582101121390248868421742101168449692199121663398510844897403155967733319955557909507862713599839340730880870026516295029824718897174829805787890223467864605312965057322021622432283223347836411944307743322975660333197652442786071112302879746454840605570700208175638486740071978049582243768574965373422659142158132714007270704346935657877060842860143967415186074308813345748682394151431261525880949694854136049576994249407062614056066001535293567276109629858997910324668411133040608783379805813216461768053696009677778732339908901224162325038405211779313122433237603094360184582749757297614085209168664865043270134241479812108014831307234154503961261187213363462824786052751667429344772233372718668015526849323746651860863967837497950603897608254474476999481494484839698813376804676709173521209640497175948579280511929028052651520834981547259147552858648878501002441237054740870432326042551661023719032295154204488807169722464338330135722102997086375475833251702468586090232696557019009737258349632886645833218183253089061753851606183041515188560275038312886695488229875923450553475790361637772037344150033248486129052441692697849621118250377433987715697690895766189259738103696156854465049022606304872824584116149319950661311184861038989447925368075216234662544857204902538507991066002185632419064666816225157860168894713286126939711773184878360722443318006323017841640186779630242471874640037493119301316887191411470005728073199441979411528448742827024687576855247005989518299944405148312692873263414456746697763195572621098132794792434264887186173709139123948286354254639693934253748014145624495179598624815497192501175891080692979359847057405144225400465669815278919126804052452249470277860993762004440237741759938661079254132478196062581166891344104902578280557334189182728644209406181108982524281565262753183763692238726372312772372476569679862280132877816888259272126770585733265815286077570897442390554150286743403063314041254173622737008200599542177088166045894978707646868388909080146544488408805125598808159076138952225142479040299357276722372091230794885257934104873293271303353029347687366481104955962350990673649321555290654399982340756489497571408046964591170609364447699585672604843931743276308805207146943328266343091278583571046845425948734081348622378679316880129225469333167601964343833217752038913873489411898717364106629278430060006941450013479605396610064140038582043436146388632549822938894680334099629040274405723220835165742816905665450302176542293698843619112105518384137351648215543991887553775783751680970120288171816198785278209266385888628385670338475011334256861028256093795417952422711534916565402413308217521601172151602484777178614862133807271210175144402271505535999464538265036789981965371554794730597015891732146654254379031878152640427098375207225136484482419949191080908132234270286581293962015383676093980041719680754023918584209199639730297847832917905372083198840559278149712893438409626982680358222452143702796585536911976076169203440434083748982981519283997958180319107767320838410753760202813898180660105066356201045426305807476929693807594282471918532444849246759092005452069337593477004197937235086173639486331616554546490226763942356094955973134175435641562197370650780472056295392473680865001343056415538555107927283586457411773818540736089692063985019632087565531941429354846918873403848885679215509773456454050624685618569931058789632738620198728779727482736558004580264507794226690788997414061493471432663596195919794728906885814163113720520808274222404302177542367796760636369316397570812856620970912971478403327222105665641217537930314452022642243940068309214247974977117362759091408205283819903452820698004642527675462326691883729542354709282926287346006369883014639114562642267988107005981299857225943834695793785793480543299720422111600200512756672112930076631258479146830318205094527099832030773939368775607131954073653972735050407674078705397692990471100937829166135417637615657984311427707336699759748050180255098838759313883064435422662902094436329118800219878446654508804369696680746385618053114550020764002224554160186898287808539894958521473481769362296193474712400263675861707294824887322856287978080684443861568625740566402778468785342332506431021931557634293435691088228443824077630467546425434264111285066738383748878952527296522827049187878874936796601634270798558224364210904927666845369865224484115865305111287676811990783223062290660969398168469507767155979134507104940842984265521464071706618527866661562408491275825706527949927333226311834103960243097846096968749572274114204391013044731187088093221989904724698588783630205135442051051715763984902556835079711230536760909119662800517923937963367395933593369796657873714205661115111885530899797937762104129494768634657060303848467935150920411251469957848057688142015153052015038893756744137240226509623039490754552452066907061562913995610072128373573271270206511506834032981911123937370076837129174036531556265775122617169366767956881077342410314132096658532362440241841018117458538914690378742386655781906332133126943072587994944679298031634565588249010440880447772842958961898234455133532492213643077892923614575051117646911006974529649388360844256717122174367669225576567310633205080595885176440756367946415808810629181775300407227664727788831024388455113281854236105430652999234108072850352942564848872546492621355564943133612129374200604498503251556100640678756730667930489558512169271592878489720091016951571460861781457223376407565270459491503294489850608949287257861207005171438132888560385555403813979490237946178792230466738554266384723566727383036452705937780279719609665117033279785176997592178075957866842117788774529032440055360442211672752231738723861228821644107632371090366865937988868078678724730430953621030922211107917853368622621364321282984923640767090967377136643822020668726527910972870495037166202413650144315744882913936428414298407218079031244252085014060453821632943593287946341676899921230050081337982632682598317331953053713953784831964012536791583534703252754199981778664158826525694201645349437024222726015809684009302587256042684364996493497414106657754156021447513317151005282194326585496405384088816110814303830182518908035525942563718720641601070450065802791138411969818711976899941158197242812410422730435959493488637237948120256520921041448288235273737217597683638801631360556658577590953282500736081643783214889833597981317094236020812939538624148171561481225423688515284841743514415289442007106322017619836571226914114611446125077521064367518731492283251943887134146230037112992275679659035244316648143860974351065397684671956405567445180316122893006266043015397936613930077477001307671569530706834881183107065513958314633547365677980761515753961163953297248180593923649784143691080150491645535646254086865144560867157638149711328278936299892944748424092818067726880582334748601671115574512261435027680777214592088972632174790832521977610909534616777448845039676840105923186516008795384057341804932130545518978648406847417098102328405088948672406627898208405305857051240999562704873683616146060654402164411862819159324602333596080303538218880097789206109640724466951208530514918265786597574522773344831786032745466701392431945943055951715000632753785593421226403864967449926742562187883548692665420894816763812983377784553953200753439091867143638455867058059381138656498192361208564872430393114429401337319156112774510536620786373670805503283801779841063934322941347324911504047527981541653431203955414494156021225056862722662915916257926682520324695565764147010941566039206511459820571467188815520696961022031112110021289109630033759364972898127688738064487623367342243602406422858108414665377286656721725630078542632392655390719493797535161648919910936985585403607564633146849880262899189913495822421142925182101215165388397061118011958618022866347546247004431851995091030751810108919530320231779199016350106728709424187346203972829125524347480084046848975966630660831915396498823814835709951911345161896630203564139451293247551119628964122708000395079473111665228111110746296401669758482251464619100861744509422208130385387108024710378427290817338523522847732824008354593485724459064472562280773900149813628411948725369793257340933757428206151079108286550640014859013473193236624788661481993950047617610123217167773718059088231250180119650025974876922076404719047833478431547262552096354952123522578256678489416591093716269973332610324379258514391284460080692457609459149215081428390633969925643193453979175815839968499089137860591139294099093662128554357939080757714785001840877866846280414957265324825335536096624808774815690414815421803438445452478631573649508928458757684007880979135630503061705366451584977044895177394676219781487990031692032207747704098696252102216499818547407826728653419558991094755743258918577065317888388816111246577294371983857430625858061497323791769161032222642574496668183256489350541198438838181654658083589127342092899165069582848434820465697141099232569539874742033873489264632270240855913260030699185907308495903913083232873385404141755990026378836497602926582221973144028830084491316207957628917053107080281265703499698073566751903712968723726279185332680932437604876502500150891424919875044969977487766784970726294461690018220325061421064589233235055004677670616914830990183724143478192745550093025300138294002435141474272407404274563246392122918516692891906006261884047006809820848692696943677810308377929194501580910661792792649854738931523783172281273649009049981136536477253575566961846917198491612255453115123883449025487527296197807853009353648633622096238815519846052194366235213560797183475614349896958980015068082189523775160627100412552370693532507633588677912175939759851802574942919682128003702347693442410590302144282759925967545784444525877532810737211835151987416036212129083772287981860737023946321197658579537883110562397880483909092655774312614528551134040887620420027407525405708220934769985725698542899386675979464145866555168113950482975946345231844225313344997867565327906249843395346976176904146151605709708618325837117906915688973287604243142626868585889142565957585738338730244678872083393594300651437694916070904640221500979653222801540271106155471448578699028104938072946458665491216440897256379545052910448901610368351610329163603584857829782906409989542687776772659114958570989325462770726395471864953574650806738060510077058896333048113184836077116956761666071780468468300505840980593863992517917452168229227918940428087774487458351342826466976210507085620357888942321057899768974883250547221095604991621498991796623190750266375460886116450415466187988959743166440449822794198480633401505399883793481733068299816585352076723585094873350483131994145638572854884027019281839180122473504004814067692573268769259685958832158037401230653921718319092583317082500599301385662698773363495063624265323792730329902767273657294067288223198917221309558127574583143042466325515666828170136012667077008596630827832343401276458933121046116582389996213385939559478940861780068854803536432780568729182223972413433170127016705474560846262832066232594424726415944514869778768185232446114359342621927917356613579973667453054585089632107376105218140279169197920374584761306514094329681603454124139049168857872340889164463920509161416561830670850663107439003446087715452226173475673760807834057488631689989094133775264968180581256768512391897237880152334340747998988630816574897067913194992566775454740923647794967308667573586067714816368611107640731027918338763678254974875939796898367293851085396896360207726249801099176432815342276675214818551766000113155576990215129606654677648431029011715586375055160706675430604329172703925026167346767469363666604447388666415380395819319829098756354328539964750281080895399043412595975533747855847888525245089305758006481276846254289314315249485496715904994223235242143533710912973632037720334011673629437930046952249750352324923956397126916413340243321766740354446996879648892506653573883385947646995128237036798468931390941566765976605462315829837701676094852390372543449054056774830421903075745432583080022371587619123654484557892169366483290926520502922025042777980599930477588362715119140119676926917862686224139289936447160852827665341884980565754967046637620179125712481668341375822782608023115208478340867351648078068873724498103815645333157836981228945726395527480418679503057819714573705479160843070125829110119352637518176923789902005121629161506831216918632042079437038124568313869407053509174224240734026496570211239450248622447299890618702393206063558529370847549533717498579601746294744385208189322271115021394650837517767653192635848079391326876584124863676952831359531851668824166665998687416518499381753763224081263262356594910897286475402677954031336563923888961624556649751064856181622573213014517026061602797000083475671386644867534003212141005491286639011290916627290451515584278419347965875078973239014994188051428752473997998800934442743084227388999851316722071038649686650195020129288693758423189729423644999955802347070001775331958173423253977169188541140669980871353037481371116951551090272176624364036186621425603193372780081550884340918195366491031561100405165936208055706897442598118539549691689960436550996720257550931766656724611651084952664866353418337415636330693927368145720690588904452594115430487362456349305167673911302875875777962398285472633145607359343788590204558057512697582348016135147112694199064631449747597635813393859069301098355589636862726887124733968058720824693840088360117307531658168716296918435826603248355011719891115498721141096992871010318226118341131987426170462327458851072529721514511013562439259944611828666590739772762563321168080140289073695487563307211980073277090167046881292084543865609661213830197426447396331150941384778890457000647300363293469661377255083523728189174605902953206010397128523648290876661039637170076850909361367291297307425432700990988675279094006476578493861055520534141259370695509879576182010535595166356558430434133448980209238017032036776913440048834575958492158935398863514865706754252421913214690916827861639955491171221948362328918450964095843859445178967769026672357861452803951778411130917027060930545356830355216980538720881754855330763688593910434702257846392321522011380216632524895750373416238151791179007634588281341029421784078348538973896172498608324468970154677855474570829116144540079720466934694031300708802699222839398182440573520483605756809289789285421564494387027500398953539215934270891530089963607756422306045038984399866914472325509081594942111419681388309090891092102770719601786753642225100118755549387855193808603069993351099809792057219451041910430749244821580039761895657849160956146400047420030575773844646948332001298975246646591742456317899630493353033626423176610475167853328965444921711579470157785260078447014735648155778422187808161192416695088899698531953126466339224262988635223105665591044611637065840938512328877965614704200239295767770504427814273303333194321687498738295928370544052604884455996657457783432373684021504952961089138240270405073732824748753084751696843292305561233443974581152178165648668024384080233447864947401465545796679405029610529641754284333605869458453645326138443954705439788396473534378138855763539375444461998661748756665367617621694166691574916582100325497875236282068062720793361045889703888329156779990346836291501897228110908581597409669966785047705877141510423455938235005816873622167883909783046368165030569870276480250878986082490013623285519597078657044860358633573774825611366729808539022351545297975398741837579994149868587535535576838809711783777535531176675556403550674183273707404059954600063709338527487448862826051629244741813708409530305974504412507780447742361622050370789771164151000164414639986126484524902907145821542401442983254571572555161993588999574608772051166369602014744466988642009822730674297999253663922004051955990514656772701281575596237397215068031571974196758804484342147036224361915288867109482033739025065314675010748308991844347543981546232395151542857463427956249569566083725572250828755806117603204143940391578295026498167044474189396486699260316717985498551865802956768330130820762745940455358268602846558307833805839559940126034091132457042490887052987809673837132592384025920368961317881593344662761781686959664736426457981162115939368925824919156937085863503059190505753779698152120684551910617734921090136128856347236659856847103688869737703111552086851559600525957590162623677544763163473043607519317291972798326032320336236742843560709589191814568094667079857171753840178027011346354010925062973022242272557781607826264482813361293198567775611161481635009414629191540449072677311734987985843582589167419137259830344625746861218277434239523318928113468442648534605926207377432756938966923161115740483229449813535449966053885015974810767583839566167915086436899823216246824696066289240464413772254150951422898718636793616325312250681771291434301454738318192392890724617011069512449828527397924024383193846194301014127318576086906662709679412945982211641391316576838879010814259513139918081964424794811500155720611936784399150662120853335656665521548689177637582610527067030166040529842402763538576457445723225412527459532206384775971513145280636786067775691872336714164163358036676247755580511430354336077030886599869714447412314088268003419307879970355012328624117592466305587075519257248041153732883161487055594412041405343854797340476973401404696697737402525278696406321649659638271705814803093711124132090333407693217561219234051947486503533784748092852288783157434737822340536786694376000470755464086638429663330559204010753248488342477395526951165441337925499725188437674392090018992792831633459671363845772472980587424322671033567764881185294593032007438942365213916134693994071207923267933841190118065481970623934830394563137931782154982908263212704540767134484288062334047771116220069538915107503201893535023297871722846418747560413461224985783485839255328651158741128079296917330127122821349666320060636168495323041215581002135338264856147495321188638434123386047104819498461597811343114323532739885584087321767094346567090164834769634549839680765584357101288477731791884268753403493105059933320221921264824817945445669612857874456937694418547557311727674502594430811129051638814118190622418443246490282639044362648712484313280741205028132181056651741699180571800282223908330474651802048163330833971823667199694790918678181514898108839742848492859430542112359622687837410070649932702504752816360019910800412742996280017622174105498815504222984228333409558300221809276584826584514482201393868931898200999840374144061331418656076990119488743787628568975264820161587626208991697488705072033388011447041456245669701504413990913598700797188418350394280730870623068553722330903296400704395672937979251231488115311732934581091121177532997508384635960795791482184392820125846133763017570143818996968352149718912819247415231181612178520752082570961237019754668835759259670090450569604092789727570489247910194970739669135808905194671721572551477828977129531859770045380903225757269056940964978165129815134567593574289144095907263717518852739784963887565549983190643132612238818852648497112426939665498587243941184804570480800294940868300167404128623777310448986963278154770820330336875825707411954825740299554145188788729719713374501373934101165416540226219441725334716006950713786290959142319306559230303638842055453667406232960489465342163326114161709807284729824059451747685592338165899044581695418867612110680129282475120838196211267873998629557967410152437454377854451948894573697315212626921296391902651637102747032170241674336945535268492047857358538968998611217891749311055944553152042171354936549843325332097646434449745248766655164021711461671400633269136681873373563493858232121588485347583969736905565008068959770106904146275964693991137326800931658361872515296334853493133349362930140607982983031039486025431010327614732054283355347983326543296030084093043121586917879414702199391991042241866388287315186578260837187570801191889340217158414191145507355083196016890973088849186288294376031145491552682473434971903096162487476753832711569464820586154290426024189731981710290655520657483749403053471039391642460837337784747351373738967170672603058609974580938383773956521685257046800774292539991902762175703224621974480152955145682709920298451618543098690203214249561767099275685548743557873129099635125788944442679034519241740181003956872093172532340921420146720623016646576830805007620224100888683005906897617463703047778639375477110794866184463936889734368502928942771196372124664735369758546338159641760159768992595171887570194256374990732562144682516050455166860149114278854712643569796281277771062465124046411092207781788146624624464137727174127937617554502178685909605834788118904561048009087794894589245607711812283992711900023538331789615814379576980350050778444628250442245328239860341879116783504745046718698991065205870343816578602967752118575774030133238553309830707867522258831745617556844969760737312556950538561577950128742763190171306893621813071233857469187898432357612750634317390010074191479014161784972573149728535230762719849923084512302338647373956365398869460993288354569446198053189257557321334292388101130414269035328364263427077826645846268091605756527868428980275171762079489440961071416586521956191716398688463303626719304401631055014559272340613880125095120625600767338409206212345454277598385037052667230929493671604813883883234876108660422349103512705389584309005236860547654499842987148450890221166643699649175969741958220733699218609199825788587657096770358056501013610182741299076295537427490888867764844011937429373787308200366912797927634746147852729119821584354239513184187797503845812846854154051625497851922677357332775837900884375669371266408421614134920240003248820206123486512390795841018224312416093037148638291795579814371654583636621748990468373961904358272879870310180506914073525193307324987193268956869362141421117330767417506518091787366769915122807129088355287485581526870588959202212566308871423295188002288513535484548002450765483987992613164410845835794733869973843173431736138880894317175172893960820723605320747017351223322059006855581603759131223055079778954487493930827743072135440687433054517490229236227215067727254767680013087561625012948901598062711718404594041081098895468192806613660641234889313946823709580691490255323393158155231486654128089697139821386237517271137264689635032844629204153467132943734179313640369283470806313806680836121931226366918195354957021008796347519666873419832046078297964753355832293340981554802640783833649257318112224895926049017598000373338881379742883416787249024879182834034981226396478952455496770040750167923653833937184878927730031111775626086068643875779585531451099311552082510239872352452857407332535441290246528192806894473694934635548261986418540546648360755473868335589515030422068326003614466888040686806624021100646265936972912358934822442416780030225794775495841323900869307067854073074242114727415542054143359126701103926210643959777496503079251974281242398660522826005438315430664711933263276397889134941485663086301045627939997831308945191638642508377162931257823588891553059009483186168106391349142195477347637804999628159612547873969934119782214889252468884675442980636185175268797812528796246108680020107356571190263025344826745599589521703344777459570296198148249240081011155482761109946980807027807754362352125621993767066142174192705829457265066434791399038360110691662015909182964949828634665249610375808342285551516516166907930709838955693913899775613507378677617831676464743128268683068472819613607508703061771847890525917357444550157627824452306189495320113525612191399612378037919611929807047718636668053625054283054136854753115340860097727027836127261430889794454133616743878714997979671986531361770537047862268592713567335797001272212684767048437364333578713290961959333180588742712733741335172504106483667494018547993273719228001772772926780193132343050467448461749183479287383202610514552929034069728793151325986569635259190156805073009082358385294395865096947472807027808907644596057928822676874865701603738540850558688420777920811698007852345113788200499051178315345475141184836936764226774200495644941270040589101527920387268496847942977582473362783574746291159226570261456995774558195568377273927949012700392003691751085389201075207951209281330162304903725680108598036929577921852803385665866934957367678072432566211708742443420778202851342233856265198938855246076826063973537918428670322959378420199938450761648999452113447687044133494859387559646944570634059586974736352892052682909799701860804226105425890993148596140765120957506851817986376254787931063618575697288526518873482760818481639630745897544883991430602792489739237864911219328176226404206453929454846127245962957681958046870909941168928859677254196766928533170754272874988158576059389318543981122854166370668796922774707005621120968879357551800844532205363210730025815103867170742143411842638744546298668295611484856830568457842179470143728790637276906950210123018023473475999925380808389943611855776376998874309350198604507295253112681085274654527343011468183024793797424887353662562962972137033017042770001695081569189220074454407728085939199445031628214513065877715323522140883652931995956023412305340399067718614029833474811130604779836055364273455961144414140620285351497145582252516358441426013244914580276969336214250009643833076204326653741084116078617903183447239764939367391308465370938928311326849560619906608047953923813878920217534403486573311736640713241107344952522053658362384288582414424157554016447921666420471058675942797425569042390719071834988269885827133372667964981368399651593823036989466074168677722747401471712110847496033203771086439185269993086292978689579508819244034305451632269404492835070204425309839486930307475681001463362519779090920491630529634587041753679406617450326530267774319601543886636930720444972997342664562113497905443798456186358091429283819909864694288770284713776178651848847097035143134091516443071508094660726192346365783030702661683317658686395845695929204156485285300802127734240437076250585215493984747695894719405795035022276161744640713775133586190248068825518313893660214453254459709440879623756261252585802302883573342344403947576454987184816919543977021110042720372965792463189173665054650744478093019695830004570589437760346413253978257119732859686985800054958023485464290274857205953310953952618694731808878247933023702945335888017146406279955883906719899747702079355562831499442121861031563326517101241743322993076108470314946653497571181495197265301607984199047555723169108650235165605043393520065956970019070596772942803078822533344251223795687252782199129173640721248882877190522899222202231872801703615026595587416326524936444595077230154274807774974096757274238578611700927725989879312752727975051853123171341592348315106804201064874805302837249099917245239313170913589094164122863199080422154859072661978279411891590173738323331149858320853665276715523764515251157889525191997392873613601197693059610005015166067878917577346488909395567713288611887021612060630449697738501545133122262608224921350100721148550115085844390959334732165277653969917400557026292840512780919077905441251548788353177046849071503288584002501849628860338765827490564017207127645691420816833735728560182864667155620996861181144375661714196285131501972032885076238633689571004409962800910115463616820418577632921602693746380276981166929997695759275122328017625153723928992820510318121332870064906961941861914612264599543200266784023062261401037316968620448774296257461494640064152705632044440668221902124400357895788467394169648787677505011290818869939315777997478507440005252706433361228968873859894481160819838596432377383930208478860091010192461040647481903801234114919449054700631265831566230066603130535172609377004903900188962685725948603862681916720171956132472756081707473394170459910101453002945924428527831917324716605725552301195560192957157568614933542464621159789947207497301652069856464640377401197703808390628450634265103846547064182577650145606382779624100103139425035645864087588892107464188246954818084289495692065473019910408823045847162662388446752413103284561186124970898069665887089400000720888893156713566951633544771193826099214645056420691438290521680184351098326174170672758623374063193793658831640844479685115271527079051186427499537316787853795210659040467952364126490912954540934290406777477894977377749904926185436535594934899815645203565774319626847268448364038032611924477389948101656147238542835351416476177199995488887767983454171933480875175893351186314031497379011828855565268259736728557441330849201974724945640421953553752891750778886886547245630948074802203505968910167183003949338963166873550665298123757941746105697205633566628512606659180092215507175507020100484878123711954570325645403403555142382805167086652136972612580573219040232284877689889038514668177949903815789094950803184923765381444399250023133482389090516211768022317741692718779982444985175132916150798531776290962203729746596612190407573188636336954083620359128162704861225819965994731672308307770692433161832479414291308057683531427564846818916921660005024048125558486229310774139464064103173362282872814539783956270568463591531352901971084692466219086478335068352136493073334799292124299186288620950174637801702282169305859600780157837460952446657217814845132805242378462285360462778627895439179878305675893318824338326462495566106100570160557141122593230309226005860771135620565436363233977801361633328060002676293144561539143835047019423072056001924896086583032432158322574239001253418955975196718157877817438197356446973935650301385524315595551875965379070779662927161070290196297496016314007134599909590642776651896396021141086408236639769191401842374219040245241728322117794790205250587432230015547108837787502527127643217218012510507810454905994417248040267660210930414598475951298117134840649603244970759918965922344309039154706775916794137495560058189489547780548970305029299337834401749828370096672680143297198469780705537096623450258932478126048570597388606901730354388389678134287842855736098295932453508981451556279047715845647578063808695600806723876583161383477394976654453661808164343594550295671256488317212957971354722141700297372096954576694014288372767237641501446028685000319758519174426521849887918209129998921233806518083998603074702891082940117163801663686815797739224423869444790622195047479385125409743495175352354481030580190041861652794290237383252053027795284343013043519353437741275506586315759134929017258783101517657299500039926292546552698926419713412313060447070837800672387606034123103402656057355644122379691190096266511554915817665995432210634594275785798052114800691856928117285971329080043221159584685747243560256407243931263101568002882626447743496389829999239701951131789732666990637775859517781200003428356364036298842219197326889824516382063835978060829676135001907818085820180006614754603421038291265244479670137547580385029111775988618126064392937589587187192132365901684691186116845471080403977826627676350861795936144445786452409897740837825773006618904082226633862999843686358885587903157966930011697487063931136838870394094206484414496963668684322213502823412021008713585725713020473857685554633991728250051646516338476439586866576998019857594667780482439608513059247722968754117617716496530528504915925903334486803534158431262256866123047200845816793812940591597675134309655319872651939943225381106605416372112978117858360172916811861014552123287687679786715005854804828817411432633388258648976658977961833796524174665353520831934564995977679828812741900574077258048153441127734343212382411225437430302738735215793363651680164959471111952381694017267106130069390247797166906180632499728902551820332578794011339154375472586277029581243546057692643704146349411059148440148058977957594743662031486613239590254187652049945469284346985401022583626237724163341694075381802413929612838521542531413277770534192443896946959833606919661152619332826807145549334356528402751118259083265311971314865676174808223973585425861664323652538710291742052904120955104097819933163784567917004283482480142379480385948883356703286129269959117036978350735194935829707152411310068945493954039171600822718595916298713806569378385483792146927364748453839009619427527419678826504193261708047373976952099856902498494358023065853583735422847902156864371484100050995655885188687916393984276507368488489063262465089998862131180071108488515850511064772912487907681674544621735140606833902567361919727602436859294876359783286674544971759093800212125710228781361109462853710152982761891700842734568690020012553909771888981866225607990250131929901808319029352831033514211769904589285433352304424559731314391367758019944758251068324464560575359526942745167735256702752890320393234682386290023445932227129299956202535830742930826046619534464935984770602298963170637370305808733945042015412882712769120933853110869371465129674877641663830995453093246353407183016973384709866125344603592426543811518005121959594507141285141841349122116225996586409118112528752666709269316729256581695292215181862929075716704110241501207976483565061945521865281118212893891448590248939994707845609668223335253759602908329254568597047945326993734828500536740985090485417834865332408995340938411963546838268639088345187053525962805410651739681268790861565375458218152001889592681514001773005413068980251563653539590207659920041819729365760696087904027315204598818182233533795342974141480996544379659181552183703405339430870346084152511084765941575524857579338625044596986294308322640932110267099040024075166674802110445807316988312307217576724074949348855567813313636674901218723463371165205645862521818556866283283884339077052035714935907816406824559525811003415866353982583612665988913793320012926902589099233172307049970167835818501300286415072394092335832085138628430493689245162268409470738578227944796327556874563932298610232362321793666312512332130019785513353697847242557602571141166711401257597796034662035271328038094077074545661487421362825077682225265467596378166222890041966521235668113282637538307424277834353251732681919229074067983004881951339152297220108994607314608793331157750028123744803270566084733626981858625403520356005398604312831588230771276470460073826083085272360848897284090178359340093907481549289130281487039627760194490418218038396961092864806498430965189591850004706767071709714415435595140712768006740631536594916983802296981123047885731866685273754079236349552067214680732169964762791473955197295836567764102147543792744033893778814000836821512518661130584785533918664822267640457369559109955401591974899234673241839070129142276433043520265923173169749866689934707916856302832114405341718299353292724505313836986491911249085383569358514186478323897449781283363731061612352249976768511468192346341641358146811446290758163277556657849918958498035711518281157443772119355826639498457733781384156919546954697238486336511089711343768264037944755313707817612409423704572829820348307999820965638313142425999729669163774276758526344879338822785571872894752887618881119204804139814373277673130837677311133884968909519436591629183773328246288750428234294256698276898182412426620519779112568500724531012545264923038083322892880241387098628091868453141090208823821374507519974647573104865020713298269036832976243295891940899356774839160426886461948153257178049401516593317649958978675917138968869990472012556710022427644844460912732346694099039872453535342058968194687166255724288313239714621568232847106313337430220354502849485378486012272604019954263982911309002081851151651523067098676837210317686018158131551480035265149539213928303734036331223261257900012743512061730950030405812714127722011235964214490272035017592710286552153932411533279282148947834827540439407869562837203234977241294647486101279172274526850511820183303734655010646823627435304945716513472164779812653535137199021513373556951532656189890647761472153868783382589117392883740533071482730736668049442261453291078385218809050483476010749458003484238862408584370196945257681131674084293610781557581252527521140563330496456958447454996803161037779243586294179106332362355176863202594944857394918298026598810773392350201682139699135031923129605553356258116300405725915525557430808352509014828800663415287115937599947647452189383568267600193872841782520105135164580583307955109155901624680718845634490313599510091656595636796235342642270840444536574102221477271800764758276800624187781740855204534817566619329965505489023385458947691480468897568738587073801204442046949155669744671670488732294433587060026496709031872308983741530551914385630335360313668378145719421291666115075269490793638097937188969964793632094340636711466502851795100880590152426450240535159924952401619805919291702057305889543327163020731672748082874479032142518046032627691464982717173515618283312024096513860604966377062055251842302217454134423758954769632752948131317947729383434438144187106217455913389040094199970402973840970730244138037673246392623189807808409389665949268905168559345178535294260802230157078668613729290962633074436865701264508259322419576680342146780551673730979586467570156905274358399817186695802847865578724685390475302180717128306264640844641718151622004488335076844132748261443781405959567475652433318818401394929121224446903566403563898187566121541034900973976083502259898310047767177521970277181734853552226055921911369613024655138532042499687815979630610455535179761792559654937127308186808573724434383388970884460582583246452124905440450545137981162726219953693856796747621091386838654503565638193595293130209463155232050467657885076054971882404955429030341344797172133648318735485400748427796031187280079258997116864345862504207903748127024077016396896283244084023979479252651851101117444610880449283344879347021322237499089579693762776797074906859503775052642404452383716345057269561663227599229874906056701133631824186057710618883454326888174665083527479935658064636661551241168498858729883081264098972942741369351069281979409973517259280598587708273777490005949050414902545165036119336708518435602161786763031334257769697945322227693083908017822908766837675506219926501580225070384245613877720544789667877641962990358647092109106100189910463345646518397576831191743058168840837354229577426732236095252457119193871019039577517598728507985506843124813838349581664950023288076252970010962065790105022877970664565356413146052833266188796262728732268024282172865095950524746195125900959664159869094281461167131417649143509076092009111794243871926840704732906227821820515144034814414745242034028114779228026141313423520711672817561179562841845116019225703396836275667212639890470818345369153430207587915876241384249201846523943760450909178713749220442940208599063659845042709015295924449059930094216938944244177843598651756056434872836075039808409506421806614940023462100727710587022365623642064348290211676228000813484589946873020099420749164292401589391319295368267965432670278710551923735382185486978581312060376918209475366963464891008051668336676646678185231076177205975172007626412804547095058197195029432340635702083175201452732802998320676001753332589777756740469791937135576042279881279432962130406944642133063806096558025267955981267676504984470536357147645264951213201356436882803911195106011080080340806607671518379456148782816257368813914343230305010910270619475110200669991252446139794943191508203914266232764404536131074335570712594350046361044284864955619026077409934152884540335053623889596046074515236416504503766579873079255050474415129394917484736769590559788978402837457359487226639264065475603993665502698145777037463304863597447256790306230960181332865705244031178949247812954466426646381716447198715151318443035584036566835315587497302462776092368371863703088639246653051414031010739870527892957778496179310937959497082587577770087128080851819706555393382345734557230365372619758929761967755482934597438405919333205177076016254439582694821704593438952692345204016771944538506427946851850798331723830212125391389735934092679470161783379239726629574901508496625046013985210618198046809397970569621762066625385513966585269071436975953384743265263751011565356632255386810007824399931246822454785405695727705583476765472489386090242879656295502744143737125459575496140993135860037627462386648929993367488379279802376076164318677927235522378885215562780696873435755750317089016331248036342958447673688742427229537937525304206706435831737581023499032867124865518079625086320323508854051594463131665184906973991921359985468899110553152053475658326008469850556370736925053697366589159028886280904085650284147563004593099988968931805139284389605907302174366451087950864413138201984133761374339805176560279661346766659088775912719379206394388003919662543440588692117490134317307069798949327416516260654450517062142242344722606307659169761349577026202623293460408745253892547413234366861389045984458222979322914784504700012654555898513015601015231263114188212914314003629613256415047597114889216064779310568138818228965281859875148812104092108335828718217154706580959307717597780100344627000140389835960810996900672834857298212153368107706083622215730108687394352788190403844880146996715707421977240828429689439173367499717069736608199516786345487636308386917823279378880732317316875034037626663856069800000309101877873158749998853075671583454136127443925740344875265663070899258726188728794884218479878074663424670267260360798142485136175657864647418320022625223928013575427141719452729056276070779356384929024218283563433735005874817584438325731255415916287536422748953044649846309805562502690594396167402026587049643916595927877789372180597506388963073066214208835361083568233414114096959483805696271220934202130284179842883280103819206095788271775329730688004375083424691369093404473213700505279089286624383753771201165137338807851271606613171420179667230089193334890638425018968422734890276290631618933881260713980986072596264322547533885846467895456872243310323053635879117616046379829465998791771752223759069016029603075086483098288523069844341268071503564430800776884337232907403518143727122746596303182246214194892871786386397449345639957985967987116580546486782290195091408588342885640762079420721144679626704000924176670227580979918091166278959782778811024579199840707367578709736235554929366251802768542152320152471050561438680388768557253088729215577274473543246655529719088436346627746486673348884834568863793671398794113641445433998346353503762253861858103676473967846437152102711021856611156252020292701068151887447318014795070428707668232888923367062786966814446399706906994348728596949414368227509944435366830630347215425636525627144880068171508309620629889668318159011319990639105529420228164604105587924729863562989244835535711045267533982208830098501316189760331019778574071949457173399803734660937349708119010511841791153629754272985068272891036781188394377985681993951237491033113439603033691259033842857250401423153318121129964205243293325704736733922935486567345372416457661511202907162165679921172442530329427118903233082429013350236983867091190428305206469336152734859711297304136001818299565614398491739045843741310501947999932421838037121906520560180986966592173182727062989399437457585505705115161225114940780974552030619210823040882881156150530787265181084110329105410420317915770953344556871894256876158399631211675447252725372749727364629991682231150011808399999520779308319123945039799805944501144157850679211265540379519286041454161170826794355541539082495986764258216228949832344751326528690622820754917663859018861593986828062229345946322134031210459629614505411789414317491508024592339880681050455743498315655681272521948931005396190314941653655821149825827518092142475286296419864112047654239096895216697622587550359747450974305719276804773842620828226917904819952502220423033819024531937170595774412708752051143630352307447335608871960909069738277956365984266748135542500468598355194623429395743737569739167663854720609349339616507396413881757596980641860020478643441919143284574009905990726916000073615887729926595562075972915642272914866287157741110820758305756325250177098555850199083120029855389082204349317242208529998416063265327250391802401324528017548934461482721264182628149962528873245290913954606444906859825124160211528262473759326376679137190862451246890249666669069963492697819355838101777567704177284775034640356826136157859373889167612739904541921378171307028800601153345773464950130060281174062307702370012778644373786102792786075678531718014631366255201279031845361318910164807242397654833955992427356574894440076983651732488363902909049506681646135098907322228947789816411566022894470602486224164346460184281284011931619267096490728835385448957115050209419032690115721203922324175386051802316837327991352953674871562228402766575247865752714820069483639923341569225752543537801568898427776674554106281866911775148513598643710628922068301920764814841258412325298614396607109828183694616048002801652449868576509399448345415509165253248534848789101030314881018257507800276837266088092518536057110699450390798083291002057118903744756705035254151031786735136234856185149573742179670189528107608902866612597616211374591236792809953452428636176380381092932310293816114148496528902019369010543432682297374474266305122352677693707989524938853276518038533690751111885136086768838406667689225443006707139770288808516045115341820493045446372495483747917827506463279330423176541394325127966548279182725819382143038390627925424967413979134447127706120000780370334065899946383225873878672916205868856955629031594974748738026100002574453440243906654011323428050466652305683631835374780702113118927143503663946947313525726808781692377855500378118785408291415672409500407518421867292274346574080374790416711865739334036777523153182737627011609840826944309745256665523826450676027124081568429894394362422000412646097238626187248462531583874797043607301015577752668756652962942832176705447422692308231624979470964105891063596685647675573205947785969020193309144793109461925808009568818313902579584845809850104830158251605816131679356057249516613306736309169704108735289214563616366061288144316919095387672197286323416763945310536361404024364331518259276569428342722840940663352444402279740412708310158656140891008884137530474826810112156316541601910797292471540794248482189574956088686434197545154203713499050064748550979078614533662898282437594543679258975978434717343630648005867006620272920887148246043479887416200188263514513041140297063561764695495789923296116088858017207061902473313310858940473316178072367753459303718861205434395884232256421672686515085944220815643986754885071084584726518784731297993029710091022777689020370948902794519718462260278802985211320434554530919112051209663239290611044400792714080898184560978439825660004392257512039296480996230645334515756013025516461488040432954906818541357176799412233607824457224456975256765485324041916203722262730140650839530921119364008232297289739710897747913141463881283020312413725058760181866287084335098942103933982169829636789785231592795248210211498052027264623156702281639310593721207497386507259757925752378297285260475376990442700101123805039687757298725595213188158879045105366138381967937170524468486946197341631976975581953863621260940995163611449433273554060544616213540629935759789342434240972125997153961017510915857206370536836287793346917235198793713824778524827479851408085292831029423742252504415273033135214690520548967741880774114357314109324197817584152937076337479459997172481479657496989314128970004425379706103483372437046932977008434589381291502112412643331637032120979437747723005609811599713613452563171797227650970806165215467975143615861874739119303864184724119297432889704389838370939677654858745438420764759987742227350563360387928840206797383831873265188834704265851088982108294520580392701921898225432094766829825266653355152733182805900741617985735687952245340539706369738065008018762152542488398640704242848574523427087536752654185505393341260083233049916938498752980244717428550125432851834185398052180437022157770230958188103046157821394799052523403679929789026695679686924937842058163894476442494064723722596511928071970756675042440345894256679015050091284455487777434816956313500850465423816788576323880264361374690786394020050496496326639390390613632817015398530001471400688510387748820194571822507502089861992181843131270055191091885015834033479131095248931857335643284034390547151184298464004150127550775632832055511847700384432600985130328553420071420593175295922754899957468706430180661335646642841456017709439745481279155027605482949742561198627985611355349649019163835480686524192513535081858401465849553414250997518717480950625665677409238059644067831433379836755055743656859174161994404242148800709652022400829952019328743587903488482324311670629856373058430697378167612689332570642684654992688224475624877128726229692225639068660538477280190567962546924137526647231365266931260117303091011872723815265158340247472938559908925103740814460243328155986322369688130857651950992492414277449819954256676203312054413147585163756597603747240317163724065244210950997958704904635337820141828685972140339547587195387667338884397811623322448309487548606416710250325178362675471777262743581629985304992766246054632080604042058931571589234483036468897277116726593639112238299311660226590920042484934819429840811985164634370856814467716900451930735126314784374060098458874846357143993312101302696976379093726494023318537897758479060418085419573398418486773489075908504093621778034666188379170149151821198899463959119457660527506915343217747103899955083762710306373510376141866100758695254559884389659920998584226413171594221701221029770803210495057846803654226973783370435687666106203775172720818955496791955961128889642909659163268696134943005681807294679370077418038759696235082032905270453141482002180994375341603350502008791888412988246105760349344199371871631198147985047146545466299214682553412923003756098591246428001998096936141327906052735316916252747916488121921037350039246639892589400864131185026505593128461527223267754549433322710333418921504777918012448443770030145349003586018162628577305207071193598139788734025665184103774692991911522516918320485616166157183394853153162568665960447077203387765623354785040117221819281656540539980471383306634362485486300692012126638574486847401221260778733695523832566298720808095620944768185778634273662243631250700145955101956467682303433538230223751617313515689277426499079982524918268563874439196912917481499243218030135220186403479078150447942753618711084565562872346683973881023126003686281625692554909236560453756904928499032320777070231523852212612448832841864320908708796244610947065263892504986275500594702916057702789408325805221641639421753197690951544193508062675303826601798301849026051141616123492319224195979441047995152908266250210281110239132327818964382956337667161361282159193385316265421532793987270260507049022325234568936624654950657841929279572458128636308078653373618577150571231323180256058370576958315245797474663513974308634252308445665411930543107604881878633782513162431538130645149915959262943099310658835214971263861161569861976303486502920976348649659512987983264920744372919221032412781373939185270774136412924182179038700599241720903684672908911506597936395351416703743362785439784582732231224766373516161820593203515203506242689317623469506622521990102234147801057104269619573446470502440462445624695838409733875691816027078279777684224959053535714747595032160511167486713006519224898890797910815198140225850120272395462386885683936944193740365921642711390142960147553518034799847087999227831251135369995113955730586363505893871285405396414676458224714870333960696905661769432989685361681743033206352459663567030140851768408357292362508669388125481836256015826468759699043865869584751409752337032212073779808857395957837653025825740530866498910269914788075984688132799310040409867178429194630077238081888951989137679887906722050006203359951675866975096525272495668583279450026392363816283986777167071848287570581936599365576936095806230644467123646747234409533670326205928056726373220386109839678265615885584061356764896791747354247536408116145579373793781578096046526235337974547960597360842546508132158603925087046194187464101711091019614699254599848624957571685035561500133458411547689094139628859365458318914038192624972437214702277734841588296457627434999405936615985751460841923233050033904252222581577251538980630842980692083526501938296818325346328154922082219423090122591404359800759696763258222810378183703899865939751598850833873931029313962457946704094286095075664357981629179848433499043536461039560699897699859042494180149943119587411387228381963748404691127419568434701643091006214459909774514135494029376739873929753746681346575592258623908722797107644860575876523647701586926440062568733781689668844207326942287155382754944645495747518432750935504533387941382360412949430139747228403993337495843645272664063790879344725251067551090047638645132566683691677222426128232775552734950326905149695757951348058859314973874726575798944651703810966750712056154297104402259583172714631893242595350385512083819964918046091183914078877956484891076472008880430927108651147525873333676588014638683149417143318752128378979784366780147566662655066431235963085668945180330330642749625022720189513908390770592779387044274378567992579480183686616469987985160746052458121153336453077974848819949265250731663814517161575655217946415260429110519605081797610475534344477143575335271205149898499024175773303920668086855331699413925735690925775326875971298643265327563418571043811275641068105858389059780446787407367593174451532285890213209341157428232038409742183932068722580173203038297410208960167795983120781519526200427885370642090148252991715743739320252814676148403998417926858756407081231028836791074851047547073521114279572032758568650015266316000882619850358546048596643999793622984793619427631983092330943255592063138529140198125818350982915036492018223049017127894151351867626691363012815841146902646042804050285058088333031101709667373524389252524727195355153146002832805382706444061711513228123280699001060491744938539954635374121184200239612114568188519010825456985954453215905496652519880190557927809675554038385119127133585205033326205464295265830534974973122913409056195326470247357497164149615289463297228030885188980716376846226573326563354190986076831934084460337908024600058814982240761437866660454130232735435517650371718046141088882155107747705854912236261094077407649488487514626798521451861573494375967027990713815278177590086157742710790890236140455185082702860232648266650824512929608042258489810124518996317272532372597508887311521431795986420937914348372127064859033125242278965468517583879974437598703259625855138025430253732622730883907980218040504918011015690980280927959867684958278476063086977059769040626653551493632307957320674780098816371561125821439353670127397152619311189090724903236822714386678072300901174075677447263513741956004125966470682137121362360854886918225602424535671851879663212650871849174704025838826567492191940092883854384539907648052899313389948917037664908469585595895670747393639802192174936656596457280523807944286229320880898885029323648107961330460729727498049589603883998829466976400340765198438838294717966558709056608042374894697260273143965063881510645606483505575637352998858331119380288469037240975566785318603175568207524279000408179575286787751044647789459975156554942758000242252360347871773964686643498991467865719097885084100213958412301134120805023964677600786165019253563164419112160400523285036593681582429890491970062542793833243232444989378787371131968534476283743479928257795512679003573635955330636021332410010151345308095753657227473019341988329277728999729526122003606704526010052545304451971910939285743148924289131609872577960124836536416946641849901145204926003292150394098711510741005250093150539818456312477856248381001098988682011339823050513701910379019891201072360705281041233542103579724262923457118995812389266233944239278600258973813814472591395008670483247999987568892973543009285833309792490252591079887339162419553898656902307531226529704106636307206177095226783912990932842438612740332400238749073102414978639326191664152823182809205927323809321553463210425579614118464855623144272394526866059556080708546504655551435755666845377296457771278440116184465990414606584956652653849129544079826340764002817010949711403520624447446667618528059130130788583456710683955633466434952335774086587829104904419920417337007666121611883874357663086403621991464324945126269542653765704042606043696405029273409950090609255353283658110241675708716711842685237093440430685778515870557487865852940142136725043029557249060845421623358579141413668824818410394706208942911012702885759818817610654063600406180641405204810711410842735405338653162993742328485847142742184106682651382008729577908513472393545685359867014772891831293908538842744621112599204928570360544426922674677266849925209028065700789918341958212388103572896868051710729243560161198295875252991354161763397104289067700085149427813922775044913838276327741341126221800599782684926007197643989071134065919805213505607436773195297698777771396885655604304246803172708045261366362366292865730336701009301674626754688686223270413942867438393189958925136350176887176504036101071568334215909648980873031261759592299829485348116278834633159867479806185381032491786917026811117945242008876906989762479157228732421795003334448419168335666182828235776422887622612983653508116825341353280791355112112960964535477006842608468820978353668004224945929734878178882241075783155178591647004840324775762342097838926195235270588342684982207050443251176995010443121103856004961390758951275404554234887827174289347364503596062481317747522198496744470768015622238793779039054075580295560789427700720686696753520382678626185079673274737674545083458523466963226561261965493268286791437144498484590039237291899972257444146520138705318957262418385444484306296901641864886586628876286246926918961386239750409274181142848464508355581087885148359759749548351325176134343626754436567145773844483121471194188973975511986331300061469849578248251806425456193049573811895488840581107261520298102416812996581740336086485461334442702929548733116751112236371832925090847900912876135649482650552215387057751074942659333891535228313973738629795313884824044609159954929682945364017067558482592333798219901041458823364084923439268530450654008099235759109746081006104278427992788076657730416168139314012117285760029650934442987248962982005173291237743338792576104683912149886849086340047664022312838014213914877234035662333848491519038467427925563270203288288579159164208343819670146587601570228252993793809676103700239408321683722588805139433424178656234341151007485888819222939461620986362568548719936504727593962455822327132783336247092087838337958207637696293150952993579391865718388372757312833487008928015352326950571111265543518727301598971582660015359873764454775538129915977729351330699639873742470099269525996042900000183601487160815878375028534844091718261798320269032253485486655680652730755596793514416251564234044743305707532011527439896391669902660269201837721817881856465212792308336135922399805747931431744055178733066595908428911050329853529612774070280526693572040526901989247987648565044062200122303534974709027099284115107780525696259283816494400988795308786453058722980101494133683186372863498695266523454222641163137956049930892578857501010700390881672152517455424144320811586703804734470770263013019453727396256496464281451974474613802235377600877772452954264690944675153827423838586914978014416472554441355324924891637780170300245313807527265064678747523109441807171729952333054979084072324598734254826600810078345822774426396988521062030582664918291797599566903406099797705788720972989378865510866354747826362073382959003044318698648084084147903800347368596953156827464851067807445905678947147585686667152603736592014487586082178648588132850328099413292890118302020831227402752158099192561987216298240578690740758997329137573840664078673822422495209935810029986611320906313148155104467547235597172479861754358412775535522895465044329106354336191088432418173964440044209092309724679794652720743571110307492398055702679057009564606114828925819972066561184935123370922465277572658016082135567923697561344731010607811762018197027712965579949173746220700012006867118360535014952270966870845481422424150221495865291298238322178535523172719881155356815859440690434664791059777509351290505882909485009569575394131663176526531110864735957083263312032539319012801129641530551351515346506378738565999326448598173846951798678697339112478392676148368631592370711706110555151125865300675105990360656465217986443090587828256167268118833753802606217615350074560784751251002077203818150172297396055284842028560308813472699099883604817165130597494570844020458756219442932191251403218189869389191416548665948666169874343777206740205001057415076534182948787848908291567738668446985266372670467243515333252647634975922605513778973752451675032942247446891424595536628016095725243424035072340740944204679215980050472122083015622331920939440380702111432676735682616577414290599491245625076557807694126486693446544273661604065105419276856282308649105885817225002626616770758631469489449487127668604222126730656654655142346432156810386577627015033881638374676667931030123942557697765024686040001269173258663381873084844657162931670864754725196994127962636271809932741074992829303404707000862189664687486089343248051915581460911138268610374515031283047420893110445769766827795867566945047750743186778102548727838923548709935559156333987749561929456734191592529754806316697613727624924108014163491623441412581468439512473699359262342566532104014552722182866873006626191901670086711055104145980105285837793934279567794372359794487435422896241813091489231883703180705812851950534485838782606886177585649390382932667515224643381043137956953364664171260836214252014507044998046197620551292923033512542549227728750809310543759635740414403169564377608442405532850505911401727839985087267025562195744135379585168918437418632522448346378178751441371783750430454852470911245332920679862057807291289312210882190200723709401444484250133604421156040940623887287281777300065762393464737752006618844176542825313011330213155748049789651112636493368049034885233663776509518209495351091384159062284738742766076058614557851843844492204889995943433120029717014976940429865955690775626517622184383304766652111838880678826990857843365821553708508108936413177012784410076382465020259786005844928841245467142088492370624594584834312146965440825125179768856771725585827167815727116484687745614088178239690210520691735182520369345216132517429529564108511218930780742079354761698549461156379430682847086150831957063379862670485288926040978932407695658009671636075010150743544449652154569312278289447738198858101102068578422475831763257067924727463779833195356016107577651439312974999107694915775404960618037903837668441681742945685152511022354037364207152788910738673572873705176044253891117156224711774006035013253865529340700884129283352815241736649628380222712522487731708598956863926805817767580795396999584304039547169606846859373809712245187105120227303129461389766829219081106738672032495436409292492175943798637892933384401798449748685028665400578143920456902901343661846229760542690542869133128132690167834932122780187234013295062951919588071982282773740309462785546132446739728145471261702558255181417583684217386510695877806411789510852566889861610089790984679166014169871918461863913531829312065297435556743533931815060785301298957358705484189113072855776722740417736080157099825973659111886633398899451514265979543613808455221835626149373278974467286649638862169383347919032385393768573132154240922158838195585415720395205082047265146078469874977453262313822333294524757380479469844579873333717110049456158188460164746424530103058640564829995769880075199598791689465373873208776244915003166821933148133995162127248450671858854634187521109201527247996628211757178503870170090746640294047783500564456893568178111321249589173792789940549231965848750047799724734441822892876188570902730176154312073055671672771310804746655305697563689581650226512169775226083545968566404276686792067220287472605624783459056497944592195740252797392085888757168592037181799596794762002013213666406699596709434179680251193196006864587651490962018917902905017332429572504735719229539183518329901530616226222784327124796459609413948316085406344885251907523236396066816455392062104756504270937387866577134089132139930314404401532821137467905032622193103090115036561513395584825038568309489877034433226032926214006055422632667940328936516434324112912505022316425837409054590161997913606960311616662679065243987954385778467729335710142563187661674372155696713185344474706952525572832571629532460726951965225966296532028290214148838690924298848660323298817433557000800303607915388978162008360656705398275923294349602683703220060010630475692574637015084652527627264561605460228114350741322071494506337243093527335152224395755709772734385598915888642501526929013034459062233261332818580122945920167155477972145403052065094561430962584853709505030516177610158300975262579311482727156065527494778984697909287835930410578689751944188201349959070273979220027216514683870836721772488508345427754230637704886354187120123946855784472001411690102206530850993856335979502536916827272921117364963107167597338428455749524000108418543720362165808912541154207342159156514194828607621075749205879133777538059050527467801474691082205549435984302618187582661467643658701340774607677308453883012939050602544386321897327050140834308734653735028177150188968580792768430492322850059741532489844418742213654132671364042812054399971851845843432191853640329630047130553100293968623658800419307171059330134038116033941751550367380907500153895362850508746609494344151450760300765704912697872303593351248724803930412217019114433156564872354028067667503250817785499935534959723388199880690474048059114401273961984742327558293957481464200096222631155824591035566008779144712972240545737764625449150776806014097026783653849836413086852458854804904142415186254581846467670338640957906060410767846037981331023089307765666255956692685425287130524101557635018163484226164303499961698729064103355355997440788281040785882885523275271326032737117881883441935339277544399151031325241792041396715478687649789033039937236065379718715848457406309252531000477073785262239777751241009601395162956156163546257546514772481226312895221246518680584744873386065196638046508682212450908942234621041641134055407530386885701267711239516895588287100652827607765245460038409777596144496430796801625494701065380250508704587247244935883226116300829093919849594227329191671116668609543608364167992947298287037535107376177393637536679624727095319382608840793569463034324868965896093788389099757097324140343029939185822359772922658745213032842971238951491283809413569966151584796165462336058784496032342036842836662596250914044948673053248566419764360833242253555588378332107223892598221240764537175247832203027330526627729028451430227342667062282173601542478495612495555680384698999355360576070642920395953094164816818346570192065690662225039011069585864657867155960738840958240130999983120191912119121231431064761088619634718383815650263816011870515010756670335844320062375767035910914813654784477282260035979664045089527658234583580764461509749797765641790565696001144070683070841076686256183766517828764388507194845399183569347271139142549935561641011609257142995520052136301704332911415649543475486039619762131519010966644430218758458532744329132297346311620011028126795512213983889100018495214173109994112010457809507154622819643905334708228061900369375908035185374147730176618488714650135357100322295096373163771813481365118408278751370891698950485132838311476676127122956973644525119527410678856642094017176361830713302388838630640568868412878985454111699375199935786245332457019395085452659492436043557810542812299981321943796521524810877164992820838901138800128100976690751124929036515662667551554436328816173851655930367937191875054886458787833694652948599050283556836495348321585979413241468647880466214393787419052051550864225419390193582456042164713649946574033307151180560503438071105685972741778296006980554998137115918236386904725221753943284062167093035739309816981351619008807503553767306841111343457171626485568286761414360923539472845052569099255005964754566089305884764989433047662367924259752854766119394078789409260791456684792274533185742553929770657560817902779577587499984992035286887857388536276715797937256152342519595466362041499380990975181853534364150774575272618942139908009710634073903908273965921198306793318244159599692275178871004933105167374328794067264137549632935476111777092401002749631591004741793968250389443674320125969632513892675424997518098306707883572470437410796649317622997149153207961631654392809451117337936716327300140195416878531605410376113591293860321498258864746316857579305460124114711076314056474842399389716412378913037648591729555931900815580615603578024613734403881728133060020428248842009890343168317528767680568242373547940235675514798589375587012942663846818027761573200687520517907260556407339606346793997498275182952649821732098209122226629165326916257292764045097025660573918337731001957585897678067931563577871582016144290924923353836672708799114238680927778722315786095886113150343443906898649702227118277189170539104163924757700469488782724448294880957608823373851368124844403674218896842417802982228064322399966241249032510388294660410323028198496234346263232220837702565780550172684821885722081448959485052473850004317580470617761221958916207917357412189834702829230499672282633388825752256089902674793865966794350402753279268323280174229752911944515468489314786227314489608303493062627359378972953190707070297542726799114101396861109985195741883110318021922523641238015058803093006021579783758824165691313125422658010516727196221770249314372360981606512868725969661194621718302323817090300995764022444855557868626129112529359263247578479374255964090255253959562308325222243672560089001160655321944187186528197864796498567107518986753345865363330274306722904295252975243145753899315842876515624427729222787464969962544392814443764520870435448988512694682275690727273611029781235694335334603320145979795844839742344054649584264404165008328470302962332513320626503585118522504382016445335511828738331275583087739417252558000713346482460326185016242463291711125499387987211883288863974387728633102985446787679119549432786242976924643465458402965251016791789088759884144746667301597593339999211148814569942429782578041645023743213495999816083309253013689515741411798614583962818264674211040520458204331829097428025694733720411769438605924284828554125114949563961732734101322718552224029392129850206034919289249860025956471619636346479101770600743173606361940297881117232501748772145892033944197205636433832403893700074713252374679095810410238691007115581132133109870952736073314179880604525948906951293989287259524266196494771422371314780169415264411430431837093860075986210543772716888519022247201258018766965817039309135845510215028260458020786573990737817049946469617355648899159868243702079853450510711551681152787577642459559825958698352095427786398266478406188549767385286423545221381730086500636356562211960557381672393998433778633626411360865509918062327044245081673303827530469259569353873501123901625381784080412837829654683643107587525674660205510742951215699544416799291571235085795709815377221845251201625554493451657745339090487888066242979255840421611946505206003427806673582623061050576251396037429802373693246295077717319442277125024231587363910209529385323741945195684891908050653437957881665599598893252395429766448058957106624146572398975269230090611142626379082023314118375381188861961858884897830577969926769381949631366061640009948295567852062368547145382546459586945519298529470008765766795163321007944192130510007633526903094122598099255655782608588229176721169393577122487381437036196227622354400398261488937108925042783712132895020073497744669779965907789572885566149766872754319932273465343673392852302869185298992362294331851866169546843854984988201467790918318622684759982212065628955477068994241073859409966718376473117917397788191339441296857117623892805198739600692770843400518938519283405765813911444535589396638349113467711863290731609025994012379912407471032412280117984273721019957666351447704458509470699872098491052875982079078369764894773219497189217047407169518346325599356581944765264230050880508436209227805832252848864143394959246565681262182527258253210232015963206507739647064834504150425932925946198722870932634396737398553250506547925006415462792603109958010352303245270379754059752889770683383217278559515328843693859481872134271780584198168144979146911143817466229747366236556985964853226413283340726187146171626957546279592268012959860858216868072332991920223204429382079680396563872252755245013355785226888758227371603094589286541646674699586618480194747008873663919273123849274370900000178818355904784567630556391208840991612517197065659004487836853710236157866625493284718885863593553591121494833965548566656070031274507266659041097734120038524371213918879177209280218023315120775799883024230981501194324756449120031586942010071371093181530968798181545371883611167048452860800644819627590693205005587958618364414180526421699173492222320715138150408302979102441560777264001490804066487135369290144384279471658220530346873508197533538817721749467462618514943795538329356005756840933462431998798028466830183507429870874148720604363550730769319528754469501446616021989777696089770301103449377479439835756038432803375047693922933264106519637030611119273783073378375695252515909082961136944488595465862742424068291560370581826578157289397701124922661707747053226586641937283087357915888264243088552824616063392086255104880007279853833923750466055985411066985851317725410549443269661968813643212111107508269223760025800118009052213833248893519006420770511300432183022513595566644586665869861859037878481188817418201621002606821594011363158543019644581002808038594714434749699749247779764610832322653328548930209104037038459329542353395262441517363786554819789891947235955594332408600479581525565591365918840076912751701859873355501273471156473660669168723532332751172087313724821300278091355035582649306574758196099170408538939050594317914439635620670324112531962199979776961255402225054791599722452431888900070910150506809838298284750589427440003476119196469280695888233723143642290649952297867525681655178013706943958476020987088830114966243851060576677075146123599738639957837980979499220629691054234509685730948210510541668453318115366060550763166641841805800865670303130373221542689647439646425591560648889498590856885071923108523873303654015356190780998524721322632503008840250674699994517616800242382396870620116588607830009259336527731379901120991968521906210637199183892308014847126078304902239286621008612326061724911674349717461185615214487036488709242843789487564808547533215497112794958808949329944043558216588904978892470032778916899898790255273411021152328049855787247833017035850389843331889497087930656909571484945139796627909050832707437012557856005351411578995016131333542577854369193945231671892980916310119162392795331589660323464887337288640724270730126250371476314388976283077839397937925404619390941167747240682585393756842795041120418857614835319267233495821970745942306952146331321795313076354313547016589995968337178120736201243741246220281269426406525794398025594820298021445114968573006062522861971108968486847709064259088501586985821447786624629446237290382418693525129209117255264941403891445447207324686403935599206584936701508085676453570890093688302632678899400945805284074218213763423981393729650078562651770204439886576807933784089100733664210017896124521162213319449118087847920852486327084255594177786611040504511192588901663690239937539568443267018168653116626382609312698283587699656058009733062641710641838993616922795835506169553728309366963560781050911019664932578455127453707473552846194133288255137284342972026419322443458118028072277591028542402631792436138786123055995621737616845049876297297297937807276496252720305663963390803419923126313081366617240347473960312338581942098661943407673934750488222671616524143992663286666590737494971651677299569780644238137653024600873717401391798200817201919875881671848862719548319697699244550607945077873699446573897971621655570235157121481932131185873094025537079669179794252381293625522234659178880966303354484278656400326947672387341527397598369893571990799691251288644209385354097557380413423240996682201702672555966310975262457072533852208200267913180551737971832927773515488979820841625176219565718538040924066190670114885257925393387734124480611451124179957304937479821910445300693537947334149918515736563121888885374579517989896917626297395190289706221273883341458343107390912334506939374919810693130663224067361067815095816688436813518016995044477291802333832528152755010306476350665722395177375170322845314593322907330862253443110783647131569137300989571284481027077323381653168297950909047343712058152241963567825253468329873908590047816979919043207134544728501866000174301587062078911476879756174111198727492563408211046578052394831362466138354798231055979496131144122899105974903332297671491943872360635393653959984567087758815184323061518109108187421257674387433378512428795922108466781103966625746803762350600181516341774573854289537413404351080389767124064874542258656508073500615469888655572045002024485859914542129143500225729433855372105208330580103769105359351045492673899124994910972885506128589215660720832516627163793576816667572544353074263447927313630098913400120100747452306522600216404173387942122899698570213674131580735817605498732565742957779649366344438981027657832342585499836232867187011494503305559692990718197347161266419122714672191780335718592587859717319973682792863999407468890171944080385373297721583843331714114414095976471789595808606745073107516138735865226330570981912457056406659709277850874889448600045211677451048583004406192945887242970894474351287594553450243906611255915336644782870025098166075163278689323486330508699101889276371848627093336661293940077823895381522729609282738597957071639421330989373354622699663164849687117436796666253088446528864583097248325293579230093474165730754762434121584040021240424128049176781622223023115789021564513222766968673233252363944348635134103378171968828009792763618255891425646601299234930041796976155469918907335284798400335650223760148389014380019581565870666748499174886117494660964846068751342026287731047090086745476561950571982803627480239761027429627814666991052960844107283272983006084087425096063412770399828933018259477688314786797431386733346878077094269163060616813353899537451967591001203392900491114537716223593546126101306181718760805109382807426934440095560190521850983367649571413280328790826925810104145480940336146509708526587422568904459192182603769124189033735941873894979131322968225080345849179764867913037000322774070536471574177998935167752621570178625180451468069925587473014494302669141877130755814124611188120791081171035771616771845032638669565552245050445326935846513895216121303429504633048812072494804491231844481061631733810145609716225241165782959870699164169222509599460649178872048155300839016660577411094878905433632691247305749639208399143118788925852227665901971911951346176040734736750330964757062328471960384823184674179624673566178929532239439384582322736511850079904532845563832592111584583479254216058055677794240973328200885776953778784368257237497841861915780942460253835187681233297121623057877899913319734212519890141659587873427242939522264246796173506992920542704883979595906352167526127686520640459456905635254448697216653596162633749086890108835693032221782419949702538592653047599817898496702103612276576469797771004627673961700096248516080750215510576990469638158362050736662098857881124688317514177318499877801268872978474423389224579308000380449588846298487379771871720346991320359434893336397052618611581080665229190105157854101055561503653644351927182779745370068281752218659620370195087147680204497595472552932359925820274185272578791051866090216642738565375957895871026292104559249500247228377926364374130041017459446750525364656158173799435497787021726288076781917251383074065006115851372784863444168745420810668817402841054222933725811832575538200715633241465493840894384310577551679409174608650847172093752515782015485538282036639025663347708008188312052906011103080176780483331561475671388509692904287518628166298305437634097712865443823330478189695683734005018591899997497524356142171207514834702682439341331585751733582972624422137177340259232458762203118784940133564195300735106849518823321111696543613562375416127600680964085430262531584816893465710930759481233166804605573918628439735751288654625293833546545175864232147071411902011664475701134515844081986754592768555893612475587388812374421385687375125770369755120511532268284633608193326134519070636901269138778283406872503656914343935551893599196115476564641069240159484460543781824610817791322568098591952465290483334282890471796117790554908734003307257628774613972871596889125331253792451954445265333761951105779321522159673305403348772664436819500162455754040505054718226483003018397457183453506139203382171676487417526772842185558125087166605133687677824276364586504594941467425567921524662137206297536098456065338987307635980636975844012378795395707242420458079445177224282403213567504944766183329151573291307500163423890194948214551409562717928025779223320303072690135245506792508255247364260802022712050806381020091058742667803171766473439377894524258040922349329633233086339025784730674019199363759713317323994227512279462403669597160928655426958799372229578499054161485314079098553195808155402299693852445985362555395038766194270321496288352360188829797236949572438782870937076073283167475780053780536055446894167012577126670945706016416143785307423913260774058559720854249578295300469324955702236370346316687052505096014365976837414947834759091103175955555134643609649396148498655087711978883940743916461543301405037536254951282186927594405862645634840345575916729248727645658791306754694517434685716919912648517418104010078202791753681167935285008609813993717705490883066786240135097568008732136412496980083171128990211716101386250913597584135034817215190611978693885814552109835614409615144799667338572855917068948986615904505000186930734374139006342381941015739863776429998114914335235756638260069812065332592629417217315387675453185729422420732137711656263204132778608232962344713389934962467602833387406831089052134603387368712007497693492952414148810403170706765258938725531733312365944405261148304396095823804956573294204991229504358735479851147125163730970295559989801718555976864330245887401314564930010003531669813758635845157971029929277092443225020316778645497444396612353525860369369627263114380463455105666228930870889655737364138610681668076823594302776336737154927379455163631863174397574859756222303932150365472839115446337290907007661816272313956445668419290710583087695738485910812212365168140993588291214821023308566157718732306370149847336667754667816091976643030667040800930257378580976782877630364220427475218662762373090554540678733743724331111027292078251494690694901633683502763440862469636326898959451177247044070176701083112944283824574371952268853103099005199772774336730676292752745347502807289444254590964847420615233861182028254282078501985978664238785022384078574895327639465034741879579493856232178097438736161081193249344389134665822755598764849657686129898245983209317118368373101924257126833607707465680761704370611549937106157081296307165186509582878054175307021381894528453652235065687773760289884998819761567501924273538439290802895412305250152531878327682311462980262940938162511636485414922741652043558691912851866507862845224852643851253166194501742074920927844983922080434174088325407176325336430396568442681419228099399246333197971496973338620283609921705545982968086431813462847649060301901426712198314660973969005766008162773229111821084938688964739916155217465185054203767014399170553042015750878553582552197384852723923099330796100584829990261603995692580153776466375226487036205162151799850011009711664340450297193250208043522074279339476098000588938403539673542006224667777946326594587985908779393893431132377799652159034699936827752446810462980501283156760859722383430833337508267834220403596800560884914385922355956608628538949239635827632265179627103534349593674343790153117234423317483260589511236757524151252449565477120127702125693913394638631016966809820349496178301164432811579857224428445401174787917262655213743899458945842464049414175455785644856168958083542156019038485507477557508050156154928773238302336467634617242798329378651433714162676281103381974866569150423404009428141337850752189497137948663504081639968980589536163173815519384244809512369376965640373437738120824527400877641746881272876269550603556053893288317670090139860876549975646999377881794574982716654302390133244972762778252539420287832642746913305173281414370828945009601434150643421026810233474862592767757565349577621914459296718436134098971340238453699785739188260073425883322050533683298557650267334784493046788040514666253325846885378772817372322517065572142880887395295445738691079653787676556934764168561526368380465955337576805638670282302834334417449731027845331243686960451266159016176028486945581260323494284378915785513893228552955753405756122304423969624964400319116614605375441576826360405158754089759359083272151690593058851650147398489974401389602057108232022721577863331044181917406219644247267791921062637175091896573368519214124793616368830528473212403740768207725718181582403089203070955172963791651868600945867950292275400817995303133629000061844271172123782067392772387784340918941144763120532061158217753984913662724977253875541386566595414374431197064675455850113228973542864292839087988709325624870520793180924425394359861360753612871017785330774654356706718912766719479194586238280077920155649521975337960868869678416948624543435992041052881898058223171010801940052918896315745472906930944262093270427504129325832613781304522385869775704081939500493492634263707140017886360900787272880918474261687369046859414571043950253094049449006811479702588313664490098891942832408978204568118198786759098639178748747875897132554212819277266586241670870950648549122988982368507823022707571825237428539363478550986394441034445344240540818212725902294953562255055208614408479745207778753456990968818974287152055823773186501495624409971084565855391797758153549940692263616197804065309111916229334401195556657489388447014279989684237337495250650054095234465703405352530196597311603311256326882996862296459587205423554804691251032408656833987129067159588719395244826573230339875223368042558038121536645237201556681926190783202542508085189776393756227291429832749486325171048664368190053952310755141784436165006912726494370067655515032145724583862030800562746434343722277067835612726829602006128053592211670937659672284254405230488408028768015044724101235547523631315719412411028124829730819487878080008725353095583705253003160150349815114832366011859787131761406766316635270240953747769572605560028981830998912484451136395598289662481750501066818465737516525834146840155900622980938400905352338201873082251592953566856109795470617476123022041227074601910899626475394555792333327919504007715196737035337312134288945097769287619673278423476303205559234009667936485881296960693199698391139164740996024954991297059587941148912875769435882198552244915862207412266657474425461000229155646663983422216803321800804413823690630776116919931111090641882496091136395395534464742175312924495943222069941907922545830542748805368618826923540781843722644784097090431864932517175124831951908552762883001179976359477440560077207164429328457295400013111927855577852251622116036299001280348567227165117698690374270848233324091432292660243997597713781331511224047103163570734545534902621867141017164590920359173677664273912252867445270190245243956122233549155972411339496243061517182340827123598550296411889685998984922292919023940181390463365516792948650378559801530462155622032124749238357104319980135587013554821518517468006444498247874604755158940776558207471618410186704731441966833957357695039358170188049316835028191731366078346668914348548566118515969464572588690250108461613065545474710879954573141875996806782541144331253919395019379762585347975085219869938148658792433705846317002936193252444352970332108315051508711302561486476062151882462626334180224298347567391215377614630313061099547361971922157316318043288041935329579031011894981967018894174792014965289017728262131523659207818352729674586398257546627395881147660057484904735803211889329701476627408737987141046552940769790209503767024564430628113624405439267599631587688234512634697045531956752666979407681110423878381856859602119128518757000382875957720806040860331969631392596568377199637112589338578031211272907839278424330989061821234436309834845742405437987212416331720836322828521585673099298686930196289738782563900377069265337265677252287905585756230614918488036294082653700427455323719946263416831194022875194705774086514639487662734455589900185437097817507732797143229018389778379618223525719183797944265468454269028809047187086466910753583161152391472973197957686159067000697952432431045241555720286649963991000398495181480400184284104954329213854170194938256904579074971354963466993916983356283926359164624490683443857945498241638859184339830567161256131758428091649476887062827327111043165714535805554384969979293845319044823423674441574918436227338487397377256929873987756505915345641836524797420923090161853755568987695972296414353565202619916976293459214374778789232344519463473418568324164213633140179200197835881442615966135688966266004756258087255844539650693759346648319779525488411041347464885098410577054754717354640311776947037237715266561202829144906446506356633630797626128947661783567130246343762909906265236017846703688992083166977031021066275734437096602554670558735144373184765896011677122549135658527228994716602411407544485620780701801081516838718798054522406790739637669826848467559244364842257198551760781583957180515825355771749366406708262790519323892897328126745065470219565526325261554958456556910321390951177302358775973633593109380873996922587992238726977741049933531204345860178214159382614060975102590757398540965216680298027902112310141504236965079106591382859835897408182724637496913205464639227309853819664151948592529818776412365851037716069924151172114863744506819073041259371026949983422745903334135869027603481491225209221906555102656951808941645712255510156548014846372760057528928344697370115413555072663958923941203506208117907064046556833832363703636904762925841056700091432007801362205132666599339143467746933347167515035446581768766013509242071507532514432085168714562684542478812378555231013393112264555459110462180156097472985061048132557036992307421431347940376829263645491958208799354006135961039448883363869390416549222169596347481427732410017313552292151059296230354103977406202488176474430007921966754361664316786278902921883942553851528780338713266104477151377014691432653160901591554414424565423964148150293583433138422546931496251717424767485344302722936252146618949331906692877560103113172587981256619390049131121386327245430044166582180736189190591327592946600461693660737661481802796410503220742258572414157958228592809366837114139820192921797042352505465459036000920314529067174351197910232958327292157498368312076728756604953912219539035249296270418743748766039924445012946430278000089229149492572933884556195359503357027142368953608212825008756140296901240745823437394770568714919401375405080760155500302955025844648759199300637120848086256586341303336040152261076352597054714270364935998065379586337868703982382845411380281015368789133843895385239643394560565333230561656120717870854569113364159873321514780593878151526914638564579818017328009027268620861565945405558059893823237722520305102973699984947969990946425220463436763802851231070286555082935001540895222701209645900262500925567761527168131166426833820137032952504749688714578205529344552332144523979925166208243189002962808271033998736458266833906075512362879211361691011925854360583610584986747462996598927605022393344790526849507774325204450713836305865446401847537723681888621056848773343758855053539018039792955647495677539915012226523838261397109702074075895106918116991269902444488459338921489850927518904258411441887067457413532452547637829921258317300634342994760713765964420941181125737986809082036626145130754861960010985934763255742417657257971733406072993780082004093212704693461267471631355353137913832620909669311284038487264762081039627124362884816570112185223603071030336201756436943907113116602784880628407149931634917733353020444991174070502668134514528803317863238467054797623486125152681900554517086146645447365253783462771877936498316595545084752812926045189162098256862892651949452888428499173221147867307937061610765331325108604685109349924635879946361478973163555761481508484936434174740139542627744429816742706369760055421806534446336132194106721081693399709859903617099607415102226754118478522051989908134839472858526120999048834795928895690207952239355039320967047408388993239100237955356275785937137229655331905669611527044441646667844823180221048882137420438630994988216427013920903268318427300020580545148108400004729617233256098685936115708543981787885943146545217649793961586973005774945658269086568065019679641050207613435621803410900192806953899782171579455073385492028750134766239549996020336464869440595022174721655455418848467467768259631982053387758049171655667747832854001379083023716614237249439926020392725848709875677219743700222334046982739208029642191486831480648338382740216348869350912492453384739499486362581958492097893939609799416355972733390188091966230306037434721505036140129362949188619046223033848403246923184607217299229014237862860438410015065421040953726151761686367666595607423982183605961167351918936414452881180632541395513456836093394502980261258368327840127394064258522041521767980295363927195237950855068018846052250959572945148755193327995975150122538029155197901093022448082842350127687630559741967963496045223677443320355788812892900665155842700619561887018459316150349226255852991375656812344225883933900591327460073211813699934666919858774184827070741979861543205001817200684566875849192829398240064099861011263097279405129009357950098926595339988666326915313150602968329293527242466765007642009314223878988441756564261384329541765796806455922027835510732204688254189300053743041396104161828220615067332835212669762160214273946925513168341292160832999823029370487214767365491332511595608176258721174818238908118300279189066622325537131959461303954224727450736607754291450066594608901628145538198267910295122906088051976108430930461317355868811532886803623021482609685665922789686452312725205112351332581797478612631895084779867253759413630347077811007246335054021573388164115268211787082372526518472424854374005202366529874000478893261637693667931345983438793636205544939776036906404535065444091812800677595523685428024909274409359921170342295451717739263999853958236185736127019806974433135359789083729624950662497887485279746990408206256916793293128891544924319869173075753388346922683707726823449709396085328200182890037420122764236420107874022070599011387754325243258886685500799827365055103668944892992121622240162278453128939098396618263690251484913817274851934097795023203211043277817429691084866608965517623075077644081371523203477754156543585546274596220290561686387573706099980714475525211704108793883651707375915299230652815089192004331265193714138994917811397269870866835466996380177380422482835418776268905198506876836244446855597381953431496948047479410776193997991951772881107628013048974090789177914812052038325336255584129382150382012265545711184266584921850215774987791156258384795823476381019326669228654038031262022690076877528432890978126348667091212552051191145634250042484175019277681275678413629300214976816996528726831736163495411414667945433530890644967565259936297267967349276241774860750819568803054942939337689060934393201463824501321479015088736950069405040890411884810078103446432511003928178340215781949255923668619480999157781202934331413800185271422533213938636320526948982729295769641271748432450381443501633026730521074951703054805864823234559850618730866308988088237519209580115248568840632602078626464384774523856862335553745936693272836865728878364070454784942585769413325684345636185411785741914136250154546981696927426572624091329734310314171275933021696717221103082378293639827811904547278893671378382495374281878823075797757732552540369197929253025133459157573271408668976696832265038522053643714019879376175263361907302797589823036368231914827518402682390444940533933349912641012902605657192916761260575205707232289784621603565194296618401393381443363413715304569713063340689872468438568341358741049917679070051771835296961875348824063997236757218583376794445241443811442332910900974356958710341669957195786937018917446949737557449966354133733074108298626288367889583320441392913176893679468151085522067610960863768443545584488112817269536631052278763020096821550130745754200704193074092640502070725399467160783799115633272040639402203395571719758281115684955945735733571506908528886292188720283364569771740742307415170947185135490217233432867782296823944304609080566733951770068481628976233345949182850982638765719481089645003018489285225111006178853979492122550100121238552387629993568934801249614003072536140735933586281594054625285637223304063308183965471331810743412284784651492991334790366344209416049617864342596259697774259987804045860106049182033186135530314199140951032451588856914543327609136295659625223842574593542162416287052999255826583993864207495335206480871595558581327929159158205859003245785382779588473525391347922437042690521950803994192788385333580157548655007565352569179966853182492047953629270990107285593485687455597790832516190064210220600503330759291904141078482371863771942553683933861406154938562245286515097723589824038845118411852941456570497804579763962439014364083799295398988304271780921839171135392109167199478132008595764109310651668800808023162431312202759496947660324844952718146349898944803380105610879246266337987371751491489458235318312097333920047968667677744638156466130932244948016882665303361915879902582956142473416231765351152952554357171777041538680192145877880489228647047202344115204130018316712070587579707085198116575359459651057479112835268390710377518987193839596445921312414938278577615572744800699236651776435330765466464443464930546623362035019104502523041374542230000130128100648479620993039426025467163992387355152629753569585021345793544472539342603812171095636842103714893116818486622454602013377921176186599621138803989480662365991107710483813568076451863260006358892909416116945526728280305959640618747476570377325305838601339049303684526337091414000742407126058414398316517911167451244732128747651049442017269990608316362306521043722053205753067738796796527893784317068723172588670554178355256662032501903482964403148224316432200606414796521666033137172712611187594290016065333581792331466928323063292781048824662623953246500558782679714691517105852151042208796454396060382739916060976536945196838996257990081441408666685406525172454297831309389371974914360456185222365950672930724476234055066437199399934949034005919165079370918774923103552523582442608087654308613714800751576933527687467273664303165928757930612462254928225842301067452904269362037107423606300992988499750236683372238085953359747721624821637851961463103559905395705070278460795923446492358896002762112642893791259617396105077594252154407718396049973711203680658258088795064876605017904508319874523953163165811076417506091228163563712312607414865017577153259733274927115511354689504623978227324284267913871731428112565321796437226721752453255266203873930985397107223108450367288899265513211096657395798204604772127957209969558084136109088073508804599053756279358862976735852571599731454801465959159928962978055447890379015608376806084955136754481874951845460148700856037202177181462079349714589488428163316611442260776367703398957632897036228621612622825353067535241742407683155255426449452223193871851978670589770848235039447123925665688291169473221917435991275941779787355705088378272879546239165900242283010257848911667814607019251346314100460850467783952907623063969847067263138021292650746000009459082369693986093821432674593422914878982677075932228440398339221786918081771542024447331679703033536229960988996003963546263822778435170015412955087384352547736376859982827600882330616707033500575460418309570289418898222824273417716045489527809777166627002644048074486108053664425081501815507301110311909630327314003809142176297590985798212440463805406523818308232094834157163906124071599698268922916785204351522507871598301223411499506236638868635410472746916313069954769198158733811053572795998491452321449128693671386335262350212384781099987643608519432796617194484286441137558427817085706928041172556172909207905383010144538778443239602187462416033392802184961104277996020261491918425654218070472776057419097290260650208699062251764757303180663194672968376624882522871595176286665159376210782552586652749080503076710221473530195251472520507310912178978899433942755690406638863861418771212308518353006779064263854136784270195640236695705330058809962543085657903105863271279507004182823450107944640792335725500341807975543287606479361939383489470543723200295053365499065707881246372990838201570413871528825961955187240066970831174405528103677580737085161098363386892496863989186667127556115517566967650157608511608509986892236248806551006494448414954862987859856350359698509563811168366279002867076631084287055001127897293480412846798661864684692548592631841197293385279715718217971636261589709630427203665322609123156261289012098783371085021525314656297387954673641730544515063573707789456592214295274656784298063191207630003820286609276541786916020496617719785103770498048823651481780332530013189856375461079248918229103647186880904233619689365327546266007475334304195736345185598340400135268554628419510062561319223704111410996410326235567405726035395156467087167264345552275678904359913519485802619855091858936793206456727717242435023038355867252498704270633414332727067240378992553835443166593774905235470787656036305935678131513070891174281048323386568228898383680461233025545793682789995793245003674430294670658001192734059008408351691483609228288098450629808136314549235807763534365118001614563235413068372784509922991996198799541541674035132234584486833707580357822476090350653384595959409689585615626319710727286962349379244665927317772610170213567420257313111261203312976562293502117760271458994488325763396364743232605598607158452977874456510534271115153793227351090666613228472383467214456376610503383015907767936570864543523473640798811987310949206747859161460576039009075264924074052937822333554313186979840259045953324220956966529406347942224984183521459141105470923205776481849658198839244054175108735840553593001666270550628761133262332616518404403270919430583761317056761966215252889058754904087009862178600498519636330563310959915402398217835402927401609312694690416134361946209489695124016050019126277840113766716721164780388441539137627231841773635862526210256998638087244971869469942017050666057431000629731015578450976163328765647301147680500385377419989790853022932624703495979008133832982599301340577542137435130304100316833007494224674656771412794799386901670120710596464916829170383689866172174857767014215467491388810424820448427059995425190317597657149611364070031565714224126240204514558171374861180487325804793028874414423195428861064759746736694879942187510728042553058134993581381013857175482241972218843217947496696257608251659625368388679796849503943753537301530143606053054322336770192273754737699623444700508418060418322994307221318294513205592057169204077156628844706988420303113717256689814301839896755724843574255416298246941522045716668876141316605525373729567950825100552787949345770862419527399495477375642868072373638635139458542252825091275502303682762151534127443161729799282838997518293204286345306715565460843623331400395938290702820759945405454004883765044014395373771533412503197096746783079400726560882148571915562256478661734572999686878594308137995696163146158356304805114826384895890566909673709576420265357642725026661306242950574692026567768962906010158657589692124183702943840459461146646327977393755033645014349103484884714247399011104113642834017113422175750319859665510322587906588332653638937925188964445305098391419827533886928845584869515560681118801788937518056040996552785376670057920509224854194192706347920345996394798994140833767316915667803664995955263432423197043858024977381614419926898873431193607931005345352262610878039212700429850916440203815202265546790574940542787342849611105079831363697751432316792807629124455725263532303163191575401435760091348797044434183242676605511852254748094126155108277270795247463496584758119903795552651375646504694211459180510339564942182146149721726860626904478349159846647210220671670133584841970428076515413459569207005723605038173743416313848812336240277668270396482013649944050529733898281756836340984825645439381258426090600571005351365426465667089005504388343209005612732121619248218578290084088042792986491724729283692119717240601285618535669011130280086659966883414993689896109181350485268365906728457801046660659118172135442879113096517913015336208249091349696677840403397545998724109378714069375619156858516480478008834414046947000386799863954963745260161227172205945018797576653847291061387733211585077888219498631991797894453104118351170894552240554198669703942511517582987499948616321827928743925556568765249568219071658991009962733800967796833469847926710459658991878979104379999311669944311532525767947499023162564631905213486017112088298003749648400778183879661376616941063762611037337045958613980358818042266750673629813544562682677598845506503843642822102053181987558190884761024753959106661954331898905430749447586234836999718443327738236587569481459418839582068084868551912524301331384756173120125688809387386769890060774026799839247360338788060622411763596961629820267958101274366609552791172220913087334378213026576399875101866895907641721300372927158581530897763868774508286404860887858363179378136535221397667021740583139963473255688082579922400135986499674596039951791903828548683553443812059158471897556481433569395511625152300933167521243123076862407230511337155505261833985709372454845719408941324200584423172292867312409379630704932766201661819473929215102495983738852647418139411366101829406937605115100449456348851297905639792780038631938986796553166056495335046859653587007485256126089732525441157763454219653114841563075437889545716521932431538364464866094107486811899149225897594446160309063294744138225641774147129258080631725981441555832205124340162776648894238744325716038183913223741205571191756845916647551649261646928794938653056802530496275515596947989285659668905956346223210754872679644747261024739858378438518964782152180824257899015608049355882701434764619589982014452892132208859021631243033269027584289798032056398652363282720337276028994647708812823505625403139091174011580121541851117504655721882663573835740591910975414859224368051471647458512663144898441451512713471479754081532428472163986933675647833763863439241954842308119213374039090809204933083535170874591178437329626212310596158158569314837481627227918387679132199736600033183001335869200393042451938736866258424854629965597320633870325348955169354856556935175874077209042347184658924092103551339468457640685482211513960571515906037465294214188142399630307463734856742934931679824046944322304563126718744763365920655594524264674895229174699202929249621750003130697593398476745790686735653734195261730245740536630048331580302643140580556726605195502756500442618633587677105248581541357958866379732131307756552470942792516150836613315583736891248048412467729433700411852344933690636357755627141895699637610103180130226867476754649658692378491095986889998316214795603672997196461300915888728879228643894694167661717788587251645004012831673657387557481768535066286405262720476556306309739576658190766754981848408768478007764638122091185984648906384985805304197159861116015602502797370129205040628002415075063797325862284876245707991499930102190153004195851421186802754511175693884920009655060234758118506595380559899263641390010527252675759883555454194135482732844058526490361094225042755339590602048464781633847565075292544411330379721846839908303997745962804590575971581554623927447248979016990544624406658569571271210324856857108413764506740239966366238688877354554902527054424039665345715531060837983069769797509268056650251413833171617339405816525961577906316008876341097655391821980556500397641903936876086787066850429413575670799286166015245915965152846918453547206006313956564734714338885889951444663022724512233401803227952958619904006078273269796467453470433124806155560302140354601256295087907042763358637319635174427379274675459140675875035786354253785895883015708504824404384643369152518845426099470360056081358040190291543473685854300759175937201973734483514238273051782125742732876787822808975447837997287783655290310221269837077023471872097426762622484111816232194724485414194591043148000746752292656859813904551662499568258507880576442500373867445680213631422792419491566758734087897409849010086300679386884834479322370000218758121447394246629599736418532832665600176208166613974208934157850877304219797016914272991117859643550264224137416420436232857078463452452193418027272205478297313733983537441602705434783605817636974985284144358668961730895087375409575436981761487113583978344214751841630841569203557486101376062327110746846306323725276388450239406815544920273100809521845325466792012330190866030238241872029815882448271273262151509221318678491399554760033053257082313299743544290845856230157211637028516690056063127528954303557467885127399473810363257268514416231569826190451539518196876127321792798145633855434681707850867343446031982000916528626339976004500985277643696183668553289249508399220017090164587515579577943665563356577983075429513524706930283244215764876700432339426855638952890432987553813990648578806329374650119522636884445695123781838400910441196326571961332046578882033964217798606629532573928860440890119735950213727367744771937605774924905315980554913616735491932361341686867087962643562968047700612195165970631482110882683747439035430809267914452085121292233045559927237431437735387202569084040495592128044524588562801084897037900015355049008191120036994620005731602899299835285597947580408316765012143842397082060291162770223778739880235682379041851306758489439849474258620393015318497066303789201091048973690389816267132333600519923959861479289876102129032864890507863022309670288563691432808705786534387797235904379215617574151010928140446793148692135986976523764737251166229102723732692152548229695216531404710870602517679313759155221549389666048759797951993810915982412810619484270841473546538668903378646527051086951650945786477423376476206249470947911487211406325762084155945356946348118310158628581735677260269430835218918890300895116975006636176500710357198217165319895427911209227694883888726063938352599261635653064326417934298347601012971628583572012463311121102395708700111123640324005614799218282519976695548624364367988314178170279994275136720488581878515805038372064498642724880117627594801280835430365350731214841078932900308625985509342946542126726456827969737027802148254138423090195505130307691214536254919436387131764785217208609788706413353365664337862600700233930497001373736384432425341576763667801769643577184123442521120783308227329218768981377130411930218841077107588052110109661578393640351373248710763608121794758368990972384282461876613524656980912152737488223813567310411448055069519872918754304208907193967675200143166810247205514729182706604226488626474865375945582496484554693906720119606510506939040726617074794116160141154351973123386396958726406480295585500858321959499947580960978209545298064396605803233534625452616764525092746423502776792936409395806568566865217422602645239089651251234240976747577642902146899318061031825502953038318863593326525574796723992704329885292202109327050434910428958198891087725123124394552124077482632481182758471746371525323293367480020673468347576683272773553526208332508508340428375057432601111398215560119368202309026739668173410358915538138887114446930185272981762884856299415817263695682425487940458085434442621750915623812437840582041519812214045581763889560636484639790093918116022520572610953917315526319209790739293331427947727183696445700856039791501533397159367362310595520490071848716101663352693429382449114078672699199162936223883445415871607472487766650605394789199566539464429822465373205925740042053009890272039015423252618421032255632085855065479058442033110849810187615367773597288031536614721688429595612443329049581863838913278148877349371798094875309692410564926490472621862940331037262628719196652873486195014398163631628169550526847232337375671650558602261193380577768840958276258677677458113759768484149374024975386294879995819934127329106293441953678383749566363789053011294780281117294868406018506774317686277567337041434577634226282519660788679830128760012493204077299620038084760966405887324328758703505165718491857340360300013877584913899519106650706711470755007211676850492449392015756914784309173878607957314519844396556438410831578003425077394836687157276056207032510609114832628360625085845251867785797233338280504594783845288455874748472396853394663447504398239926285663290285996146387176807446438614053188157335077763814205797343395860854243354182550929752192616939886458752326315760108134753968484506266430572215873419086352159185589917857810778517257069805881647638739751290843792069349822258274637790878853586680804304676349363595788714486947480929174291160518073356719363319400266459317364031350823965381700125239232080671080561197250962637227526340162650793759115056053401181863237280274960279406697076142624342442963001591609026072555160800650961398302968706866225560190903004051547597789327378335435974659089747095569013372564424099568277926426802472512656849276077683806150038650577977737422296015834764369544092267056969883908120567717426935093471805034641920113456633502622794445855526067464872368046541555505815070593090054690971031958889170567080921323457133050885862117630931429673313415268964825012698515342657910561662235660664708653013563857810717333562240460065063570197195155885939839465640209642402366330911777986762966336836362143011469639053463066210765941421756876553497723151823863490318956711907486742810344534966346110354050173174122268533111593437597813381697711957238685539015641890735742427743140910039972093159448870862116247924435516738455990800224400022257413801950920248272230350585793048862029610585395079831604278357934287509060737161878323012819647554996383465068514836029874155161619630770310437555695156866760446804783425447367925214523558910963328530218899645682021603153596460891675137969705287457460291096063633361955915483135479218709961301004517442985798579779309556059333633841936754323255564108480350440700568612729237055040976547141877941959476762839869795846856564861326045379647330880122855485410402502527455466687949102312360268425362866769976866551938041262109835903251284924022553940150720396291871154674880214026185867479993147709120088155555554737149992543252735805982021683479042888312236783154401346608198167201137168060325530642230944955812150520366381760026059267941154964404763367191754973339319368554885478020437398729578404977639277380864601753910318756922739440234833971945426718629327975045754751187436983238993424529128014346149009205188384100223961164452529895380993630822703615082332982664470332765091801693768997886389186026015758490070631864649028967074732887794283158048234972178679982102748284118104770004994295435700696318557607625930734481363918151975487658076333101152713566772590543154051131958862085124834026376001213007233845391397372249913089251748614520482210835286888886338899484121997230482475123526417623847018058585705445263096607524554753315876324508046364003253792411526581438219243683193963758734793392552922458491739717693746703625472434043660655235819487523904850741050675120251708212373775909792853104769813761930913462091187566485679131743462865607707620267239679042335975996092312182925982185333906823442390084935837931357874552848441752376633992676055869629251806233718028170916459411327099518998158887046040402293687236464689088245816616546484934180437591120922786306648645904869099094403373176711118050865894735771271784616239632986923563975219147236185261900351151395061606240673922543187258273403330912217229917692549694027483135583542038918729650955875512327534997102628469575843783783383661797339558329410009554859596831803402802790960237832122584528208118346803234533578909975124746717080817254312203043555104537084474395125506899218881659945368361116710180421506976142883020585702613735335874856168893694252105587074828590351833988068085246924313009136775071339162069697704990590688490095204192439621209268340572498116709815695750981529857827791874844100238404164590904029586841198760111875673736374369629696816374837902686241882942226794089812237718530017144783942381896483393041564641924522564894173546777643765834164682112858963499358331968860848726838547648885327715380189067455598105923101507166780064748943048907183344778973613564377414500652721841212606747542081280401126827209587423155543540293717575040105648231692722228403023234955813186582731885701071663740982297771838128968091559903745051834475868110389362288459025045511564663278475652286574472064612929557555146036695312430440466800860918479532933743008118570319489365097885038986511552016564550476192486681072579485238201739831968789487842293008412185943663263581909422807487753612213051436228430387477916151393792855451753299803733081612170205328186361452338120774041723935145915262901792915469138215866719776401046675663417896511197382613153539666803936647827684410411270199545342555380359313956107938825940554697295188990213575574525786739986477272876566137336961940674927548196329336815585043363017948912451923365874280814718626092114424131961407260362783838197854401908849663077529272877845634326917166936074316739251950896467418820138800489575251552655401278951457311862987882997371221963000748117049717151507683140530029914113419386356906469641452482110333581085314422205846342362407653475563261768632248079204270873883720001238942868967434334032582442607071644748293456351787489677235776790271964219829635441348593206865300900655400190915742205479435267539633802210856219077655570697734444828361852600784730091122230872680657237274630891995847711348004545279285550857886256775674684734852430083752274227023481057485368249400982942732042454666038700294614692509690308393458675772609937863586431525016132865507753903013792316645893191587329429463019939110089855156430093094636825889579440548803040596100946976042681588640802760811525930262087058633289717879060625945196392960319331916901078379905856321300934178986510126662595692859165099657273416122885433208762293804523553255331218387211487560774873793261549292335545061032726099250170066235431286576671078637288506673416168770061812326808333556691426840326289790319803623182639150917024132527407440751566809140478138083636097439304773013515265950872885815314109196862302686410915484409347341154827164469447198278763415906062571776076821633163554844562494609267973748243912238426390947271081371776748538562593025732897368867971139444010951439867000172271394146921678480034709779618245861226745005984834887840844660619862564579627184982362494214985083538948397233320547354727099151187591156641966260508938487580717230003872592893879943832693481083549796631334708529959873943608331823114832212985547708287544843196510898928881240714664824487958951268726188541799123530205206824206373567999173457998269271730784660421528344403864029887983852250393461160269998213584058757925730685816357780126127994750191887279668018685330768796767641700843068323576268545499519958423073022706260848029327205843240385207482723208826348758026110473522652322498577583358374205411375426882320015411012421588538119571617404861631592825448907611568876946200727191496166228300928423649738464979778429330057683626989235548078395249042216048126994421793378705990282891148386453442251635262229083536390209855604506848838115284209810995799276622273502337883712102538446182769020927570286571551677830940964288352386481545452587379572454847889279062475297591545806539669597192027332839586114445679712320330054741600046238342582049328649054554872288556556439628893022889577183010753350323725972317130618436543394259447666181308426373865773964739602837898014605995638749598527021822734915043710101166717640096218413409167254193271447072818990417267549573773286253675688452746526644634436818687944318905958899265285089724597148963432609469258789830126206452536928504097029509817389910136941939929517249194533321501988239661888091351933126631034935973970422217415744941931891967835642656396231657122890077537537544582629578415454770929214157752435331935182252682688887338588940509915739275593035759103419398122630063886115090607240588829539851467956465928466897777666200094282614048918916714993642881608316596631015494050996327469047984855409246451365240735612669357682872291414770791277174834048695267461684214215222020077610552967251106222877929744913002558295769954661860322830232384932986622362972255383273161780887260758788206058909879539289543916048237961215592032436905931766021213698839206554277258749034714399427734981138999044042094286904158311826822031766482130417073120146027639359349832416586620937361176780843750340865726112605714049248679157710026536358838045312822107170808826396405863063179444371204288146361931936042490082003366197514499472572222100277802823103302876258681707771185219923568164197452852890880610532242374276307622021642696373839409145567233386471125343958970695447460269811664976348781513028331338733778596324840185279274327821447092412330961651583821462622002483550534054174574798866339428198956518724006778429450256738482463151579425823977109762149820291617606199895313494994603726918082045847863693863267425766875992993330560266421304804878710610838198938014649830150180701246623167443937497608657634180229340117273418337454183068152805463325623404728305149646347708444134896852448158020530651740299803962976776718291183836532371533744110090769516400510027651196116114752543463626181968822957581107298935636195695981842108916420881123986733809794995556529753877069277969184748440000256380890862346784121780851034293276209418400683244509705627316504078404211711242086693606781780794699043396613971050343441827913407581980806032659435507267642236804083493888679231438614928606225999259316712646953201261268073316961832327209071761040854353919812865899454360195564118322618765100550666789306682039564200141203960135543382096050688089411639726569500136777966920144373614240331854055241437867138048620723390466046677514016200131264125785816085727150983416915548431926916433139141539362998195537486014944336327757070236617715797491751913787254177425312062580714588103876384962023138339359707169456237532343909029403217849386668251462679373503868860820933711102396103241939237990385871182727734317853871635004642878026225383348349927418446346485943624016999244026705444233175592691793415339898006623249148492240814949709729789448070647666423829472176421087948990161355735383093132920250055879196173736730861495577791191575873709015718869110969372899751159150515060471697976311595164052096600337029591829581356483630687497311629256835284229969504629450394575611679199671839637032341913298231841881352812990201612795721109826892525157045744682014688719651831751287384029020446586513938141413437640599755870535197229680777271411199518922171593052104910445254033435722316828594456385035408699684462900459874675159052074209283367434730265296747910330252358782756890340570421670872519644075598052214203490429176189000123204860874492462612881432949550626041921696794370964924547296237388905063177519462342681092468378524240317792714489185733042630437389599971932773723945785849311666710825680728430248567726717987892869651606615562663779144910790173981156400859209145668978730938789950871782897331580486688545131093108550990297562922398861162873116115961556567257697952128202109965132109519985347975085784172579950634601583934118834811230979560139155258014343896965130076233351853595580223768543460286451012807890104767123104630256066818801975245590081769771405882278391573795284281346152208998024874287236891711430318040190749116093617950425076616825312474595915475574240819916943647596718137720611233378180147227046152069857331481727560169098107674069019412585116378059848345987314713739231441804007077642016644142881885466740188841097718981802998668426698555137902455415733669016210679696458311594163665185685324889038723998369312735584003411081796348435505222268810980298802549036922805121740665944642908024482266485232089430554857452482282463904562323549775261086881645297519795188819898387251305797249099459800056864701664016023492313916300080774346547326592563953083219934768979504664635845248430361819835102851153662272406116876183964999597128249335702474975914666063008487603090323288630502161911999243665143243510385257637924707677529406608102995746992925885591428500833404547011358711443831543346158270315292459094077700993022888463633116614943365842197374520040205724097087582793566911292530705854013835821608253929382030984832887278004415132592659104621071083133065356398525607418919590449128209536647727843726814030835616279390679672916861280872758167317186489503399119072463466335977214112507648484779559062610590317346087877595969519523648539994802986151051199146436600147879711132680568715630405228975983324190919549374392906219019613903855617222392611160757365437726305678277841513966542865669193251059742642022748290511656709807387559982892872834600704912307095040086405899474056782203685740534385941715091441970891590774246312015670246063412270914396562916438576644390217429683636832803827184975466569689114805603220146789929524198962683505886256850563318345358325677897192714576207165375211944273681642685782116423434549760227196272690156506689836608986184331134128806513488907662878886377427431158154549734281126288250015444271327371763407193797647126086415039775697102113314693290700899126153922718541886229470349348947469623467494515270692193388493152944535539301756790976186754874861349970298698953982818523125448844523931866581516035527667960312342480670693086638954330269704614023059098622698769609691512591084803771782035510032164147978844732094943426328769727318721730295444208502023742253675477754919587633307255545802127164642112069917923579706839249277058623466627638393113716167336950710469258697040498528745383699436105919481136706424639973058680458367788435924806032671993976343387104219489816293352189862104805567317857198806623827356871370436478954318355754767547779238159502379473108557453078893193058598998037685644265753743534406981792230575037091436131059489590522902123143403894549279979429531431206407563321162762640944717619543798031831408010533322758107026404660926874882376230982668724404811537912647649267020451953307731592983264434605781327485110510588869581038147992280292618708773254888720004574678149250312818751008333086881480164528606974510750090182070811649977711262718288656337034536562275308989270933840248201727390951432716569989333241024109261850821605015795779665705825267627036996294929459684953347375750933334645186121297240530973037434485502540248879751620105159110923015612258949084848652735003396869292737526240042419729489055106674240214746458352946229115009334276971275425155866686443931921460438591887649757186967776524313256091544066567413773452990471143622298560997299973888739848630549427831297902763433447127875528850807161164218402533429409708192988195957766738569403235119769233364048249815966578146600949851745279587970472003193415590890080487979987072214312558437042484623759123590437254072428032306688517727062310049288782815731662893452865536633492653963764020278889142688693263373454315457540060517561048293792260759219949205924034802221823285709032077926232556970786746947604510726728660918375337122925560167109577000284183298246882943779200043291513312289052285846444692153839930391691506422205821468950858625830470529468313779494102970490893154379189109375141909555763935968110949996924410945482825727392875696050340092070496294265378976925143856508478943283180249001780928733940823131810863201200177357727351966620878712686211661837282276426122124015266527593932431405465215588292884335386973229051735931383183443872265574918068375797037447079247630996087684587550257117408932070318193993850105584565644233324347332180102949707209267646506767287689456232603106703878702965273339559553361124272278898899800157447322417754697379183344027326021114425909939204448181109581881002968546869237925203966076907073455121325604505538813860939511776354740390107185855816530539916392637088145391601656076310483784341913913652043736487907544129598418364411527373556257221838976566129802531764219259478048775115537311271250891401627432356562581142241124974313436603113451556480086764035528217950075177865606982729867964401946480680410803545965330281559248629776577042556360664474315629085731813740665669671880586302519017492485055534109357422832862510383534794351383030370418734910037227656894002757352695195380351984712677426481447236788487141011170925645136169709748944560234129469784646034051068659147169171370325743142682982644438162813721513241313995440010722551552811850422947717961774392855901808012989143285544366064018410430668622250823375991600069426022879953311294328455906513848572489003212789187809440972474010438959957617655253742077713851319822817119738060368045102854781511706621069212698357028028868917886502681396790278652093594632881822724492372949369267082762333093935552849999430467561801897927095007464609740624766930336368024775775300700392973397825535731517384572690956878196067186247092212172586951245416922168175526472396776881313680701014082482580314464003486290084825040721660183381039188034871582912782635371710820515931795869884784323119931587223887771803122028098446218506484591394681088496798063592802062623215742229965223753689705313864016687230224029383808882462428370939076167119017000783101462097131794700759095826534922676733852661338581127839597466623259409448191980059053473830201812272598534509404088645483633369118868716060537800261551131012005818785735463909579848137848922727006321719110681968543445994171977030344778563385337226786022091962886810199900771897505268629284811566033456490082951866152396374193840033875144833492898785372581597171665330507112073739137251440519739198494057163048976286242765304295030816586556155368870736897045680872719834667653254387709749230796322385986368662260526404011271755282233366041888604995309168332666632196304246262375033481660643505204399916014364703068014040374419741062367126931405893287377983774585409145113426565063578124018511190907405553460945556528536548272447227617851896331343119108814514541889992455581577445344992095714340427193299376968787273490693737554540580247435772310818103800394260161482839672361755015918179873213157901629997123471033412236006349367185492625231756649662109673685707153917026495144613601592369800986564555662585287206455656566255676379508642208540764107039181207770354113280359576208203721629659482972227876021284983525084344801257858156177269061142590976135546688503883716031626712643683574173879533718215694169732454474098922589962240616118726636423370608758445054400305345409757419777816221207437464924450907343120408929548188211527372045773015223535942204098827909009425935630517227803121968088785751409702155159749879411425792723950136868580603654008381139703938393739411333701251614994466912267456615352588445433152479034095276578238443261200497808399969880016982280529104686640833308496352453633571334659890504592786291053770688512574522118909559033172144538911369070367279008974399801804852376546750527083641766602325868392757012579818131307472354318817759688546112404291364789211188394420815187895942204670071898714912228972385241028681385353121905617307743362638967898076921568035515115387059226765819809757560658351890022572388221971465083143601506189774217972230607995465432589909327832861652535917173986115624241532434607279897031621747015550776155205134327087204511492286129782070985682286458421089610639525172961647389469438527531189098844287528040895181477132288794582574357046077072002140259830234989770922283303145447169813024747761116573942633499113735009120056992726126941427303307472063304565021072918626267050810353331269693601839941596547550293549321774639408884158240683729325561615226976390695688851072738724978463525402388130600623893357501308633511672806297570822321913086613028263770709693509562938983410850994267768308526924374802642953589849335044825216434621465419746660774053617008138343160034764496783395170069546284037234495477535164343866726064489674599994982270085421409061047381877932048185967197724499428400059447182328232378361939242093285343090426509409388851558975209404052385338487096385876300877401772640300040878786517389651157037211827168035444621053722921490680870044798805195257466257862822244917680322833896876200727957522419601319962032436920516041419304061730348020646196534296892595745995308297457811671680960433212316572765325654212414722915670525710772482843805852671738812980190302020264919259029960957222390982726772239275409344245791321628225385052293458450920082388097994109814659884153003385997765824848197843455840394253065636125517363630697111466527098328187976683033371333756558460300118646098641396126999909992300225440673782511810083831393722175289416485306127397072992757658144740067563770218647710964376665690797662765146855539174382820612186695947407026669984452590713153675158385677745385653321707752606082503147846772944154240932704434584496311503297454033466270188347307798811549267717749760667219886931127178133688871124988455219032532354161429025631064695020616291717075020794457799125711323323654298877933221989685820268362510589854917312882732073486855817283646210045616794945761047017642701426043021175897998681241500315110345345923154695386922859833577337231704678854007773094747455357340712766415741073987900217172825512759098962775833928567313712286421147270484581538436686553803832436550717298275571905518554613676374993205832411480999054060483648386639704143674137785599804487330528416851108217309403155069489816608104528883133821156137809093238975989529221775717534077010130770088852397232013821152040475339572864133794128099418974401409203223859316414609293129723383469367238686184676627646162904586280778624370213246241016805440558342313427930687702728262033283524921742470275942584834492902698574694820291016232357291402473687883429352777003925244847262963493448874400606407643358770288039315262246576780996140548579718765217847155326871596629427314255936507637999281931591887401375555592659510930916378666602123843992859233315234668706015133314347611963292467312330086646221164376079485319472409858156532028992691557768473660669822539285037381957428155447517363722844705934599784798440065837224348704246829636391959871596812162573921476270413819355288102263646923871229595825380956729766762376833649388725496303954156779699735946999015625894124406343668084838908211764912294121440096569134129005292886761852009581783155040821416094700609894784469427151766807381229503404482208223580410496810525493693107917873428899593812140409357542956688239646703807857163639557305309097913675371147942086164681447674134337629760592332856313440347325932902656237397297320584653490551769399015012786376831901995548927381649659833999593100746141452221445316969345245870734181284757890944664963425792903102662590466223441590606338477880740243051586800676637731170564892957822193983136519376532834734278360788935716599231892624157049564447475644955868625662949322685431636474961551305901650547512529614374309195492894631950069592640455905576277126234035389674003034092868293125545149436125808764169415863442118633113702727987939502727089844936281928529601024935713953506456841625621065863206272524119042545007620736306718000616726346305176964990937376244907498251329694406075521551424163479816520541911469300099936720624498232184338341020517834142451072265941344576739264023709562979984682586303106319345627933057257442959042434601489279165139800766896824811021033817984491848530863521847909045351729530195955676670663810199890895380506439521264414393042863221637625766498669394984925420497290662040183202826002200453425759857207166493803066583898757881998249979148944387388368553967249083432918831659742874120656632060460160517343429257253927849980527281154970638703575921206311782160196282744953118194579154126463644495579725539832963988513661045037102490801878005365833067818422438371521983940817235799760372077633032351412723337933110792922081647908147885554887260730603478897683452082423679541774078361481566097665369828138598471890390828051066654909537908802046034238511254840231352972595316511493165152457338017763478260654426339169534567851764334152488253723703489664050945314478018030655122781604379122933603157423238495663730361630310376199752843995666894923213502458832000010673427137444452783430506812114783056508673926411215790021495337748986983187220399761740341882351161905480689833109918254015399567307855997789676742399141633058385537950105429917775933419246549840645509514718154652901879548274785182679537429359467237860350339926421159624560774277304507212601366083461940001856976095316816648866658732714534312085712217405409367812564000334759305742731261210451662816554418041922061896989822277970476061010776133244105813380059437155492296856989946692182001193992818308644574644868523331874190224483373555186602484153664644884810712144857314485520114522937808252108393086725552826599080803581495340528373056454384011384590263399422992576627399661028224396089751183381618011162612581780016790291692317655405026233234733347981827152218921279390784954532653415230579032080190428063832441431749982359181308652724485923853257029741311756168820239180867811028028314108769688730993995326567510386627908014934816200620937585666816609184995488293314385686703283569321570138304615163682762950737655998269298770070886201698077707549601891672774850938801136678293756373117419593520898338605204425010884881185915496948917941790455674214315196960093686632517784224226442498385780388918965464663888291545642090355032503057067465809657718899826043118345552168199788582571108084006801202215530948011689822709879036079108425162043330227769247301521059483750543450119537155962894041326881772900329374757739335926899847859809649677213607347536519704470038779102501611614718936553772493074753323780716372569657673516094278120246324459397134927187192374490629886411106152722861139196496288830561414831599307757682437506846648097006244758525989761830761112591596154934448550134402611629025266245145439471212237748840721081105512186929200053702712465591788331333474704637942995639398738665471420012659325081827428440558704154931797432502407449049044620567275691228598820719498920585381366611287989760599193258227278160003525512297081850656450992007275725355573501153362005226720541354998961754992676543426635975000139931996741147440022210488512080876629353937706313795824363341830704085779378515362527112654636005761648986623092699071829252289176953660267806303206744770242525694186777427424536589516691655129142385972455310598314070775037676754355275642360201038040282670200662220706202112664175024331450390306796188259523744698887032307015302713212119267517212577492499719213543244729038413307985160461513393410576160996190802666724143874722067990672044157466235824972640732433027256041234966742055280483064234117653758140842958176522502561287873261236048757651869787072571493222236104894298626383958008478600907595021261265913387557005646434101758434712786700284813936836944703094163128939327485495646372561243757022955860771717394847722749075038292413040976698729683564751805814009638659515713816393444261791033274038063730941653182385942524996107920031463798088013688336178983519179029537164492566183674698355621087289548191522422479810532634588323021099692739779215589089466133061153671013768029157132139643392033901205614419202321441539081101542328916149541239580316174578148114747109093903113496865897042502981331604810105600454802270461514902854465113354621206518867555568599967585281584305341320643251778704081953677007726692390333360878092165176849983023830069938419601149963296241099682530060017499488506678430599511270166955362430658265599210564981985092543006657865345703442415511633884999671937200398119960271395039971139964263541077714675442408001382740414265351442294309350687658319815343839011877864241680040600532175511551670604412849502622056171121681574143725695845582888109417710107316554948425060522489431286171653561089012510769297284936742977011367114087631993826150430759480628717765767045636207684514946039706820301449894191304100178837897369075691370556575512563876060137181799629619251120242464378124238519083248841651512763241310258379851877753939190591302403574894101900491967835361243627707966875753382924178866978291394991666555924031735308404733538396151165021882251902558955795570183393907270569170989534415547069271329930977474720721588658123941099462304773311478626749923002243582338034568735634150867802431816870784798442538470577398627246177240664175170692009498301966633071374290550123013244443127914478333812720332406591816989604885912227654805536385728775952192063719582655985266464389371059200979204582162848189868003330404086516823943346439729386180111664030447760254023370695153047388131743265795701782395344818390978523729678432629066142749400005754955182163132201507657297148453646209882792429586480151161756867575417586579541114571084240690566515341512294710863387480050487460536562669997913691451095154220645046881033266385849501673707470924344242114525768848084538666613419172831044205528934869584974580619509791622304706933870153548135627978667275133633414864860607999743136703932946835632978492910634832189301386705025496171031998001353922143963432625706765671744523156992808061451158448157807726460545910689582373226882241873721874809887877129510731889921439986028474158815126973971899292487446221529541285828949427715655805697647611258852789405768603378875322988691977291642166630332261993453254070302165782285311351979551694461624976696843921016176795821447300804645434401997138084906839079223646721231177996244323384437287748915976054375515439538345937470583768404374769073336526657480273569857748403867541454109678260962669464120623909053130034406336100363673727632063154129242219400896510391364303976504290036811746985890923257070542496606744498118053668804966991195182262151844723095156733920059155972100393685258942525390314100460919282770003017913704761621421979956406199585028479738483595272056366088772363106005853393455241817879806331105428939605325202631408588680029660929789871675666702288030656051125987658496458784822274156927777891463822863750101264838083321455964958663236225829336280056846092171419919770193663128717755989060349998428341175076054732715742926432688480900895379395761763509710377502481018182543423926153532908278288668159330899821692245106563131812052580059105045193134749201176804135563057995966438659927821532607932143575247842738696880278670440056998478528560225909670394097775135921439157575773617344915712793304121648099625081250969390508190736799864228445372641026330579931478385221532864719548266835515469980543014168807250489681757480583538500190066423608770481095904288687379868374139572546142349441616454277331625713239115438932041312229134073096963021329313601293248227363614753374943391306899195691063251118777740685051833055136196979323383852843856483473239575845322470452095005305460049181597175471183749385285841895026197402459337142259202490794929069732324148509954342597068145913874881408087298382708844821203777461783671497477163418158259832685713986470876842834168405836316706337609219411709558600902606907455618947987091407158911915175519274106249966115339150822339239116012614525918483620597266352335645223882318958142680810832038981842228043752771776330956129629706147769185777538810142262838437013790434285519897499532153726605061231148273328347646323787483837850455107515924250274030977985591589003840842488938135971404777617791198929059780433575589535332649039174568094194474637942692450863394614147913885945490552788184377582209616585939690637868791002929899550784279237151839603490016402040534055064076158962983870666744819995853925484869158328127244484632284183002916655337995346289850293069688626109746304317117156150488987349859335340356531829386848586148705015274271196351679903716009766271676577479762561713080684200234998995263888937364271597495609538894006796509265085640460555198739693431059138276320654010571174528514830905437347345189317166998802991974272430765282514473857803633204769270874424392134166323228208609943070062677557922122885641183995903129075059472458006950518626002543109781796104325726431750605202172192876878966695954915719466201373144753591654338815986712503929737227414851987478194794771910456061186923240672139364226501663512313730528749696273788724470722241919593880770871505514262200528997409567491765015382694218105743590227659706427583535795254685179690141239395914105666854902986338809372466425010941253195814860892948430231955411694209536033784653003380901915014093917608730428129426872998238882561524056596175526251917299095087450721837667212282065236209888868112212820745691903846182830265801887444051970850684577450466404312780943160793463474668389780658858270504312058668266389928841024872091870100066377572367964778332609560304615927800334167124533382314573358755387306149031667304006278290049517947033004145785488916809872257046173645890823347986265861520164212383652407389281972707883204541421392626836763412002884694250389896877418486560722171249492840885793322904003882463601774575920550957197625303550595003476190680145470672406647334727858695487515363968259874659243887419778703393655055049874984983482382058076617356509256795660677128321257184880455505549809296676467650185989872761457370498992851264861234190032963501305396660004716836605090555244280521892315608689201233197973643242368874390009588390896920034734105998376763934538906074923420031053838403661481342102116936078725917064753762070870436665235554587603296178114399074312371867256707737933583422836368449951209701654901270601661491257216273048671751788186607853947993508573422221698207074869480482706953519204667605667560460913757143343444952917730181908681192525744922047315895064428733834147383704902300816716664123905740909358218564496850024639340413911435824225945336320568807692891218853466467018228523312897060658209862953243388598220627736835247392913967323424554363309576079706291070326632578633771333319031480683121527334833233679524635825893999209671048408426335451437978669073443322374815261602946363347127201460883659775325244023457127937134583739628588153082419087883722885757749758700796746112119650066246638546146271899572937833548896854002525324265592419087123553120423209265610071248626496629585240478518072525274016548073374839747983731326507570194886221608871037042153356162757541015370391889852751758532193920974287219019110533719518394078252372328342105237628691134442371546599637188510910566521045905787522450428013647037565605642204323240628450734126628219503968151809449942887532551163116867293358558096090446194787615562093027997364891930794994605025550636573359699664942993970849777002194558074631246919345117565748770767006499240899044816138730609989288542992927564388925414004318654780540575400378872597385857581149694214833061316884270611919281021238698860501127751890282654537510903050111822960300059058078852632385647521079553386775388865585752151116947408515360633737610865995849744868406525940892411036557295992585148046602449135093693956948442848549100208373491911785502057133086006044378158804797170390860550514660308852275910762164040457996721907990206327482640500089031200188979805359174284501008732989127445090004417619707602637690701495010805761768486279699630531335987636734492491683190946864788185156946332660595885662614118495473538205828691901073319091413239503561678054010218835778713337916827450801892940562810221873374280971208286278095133762987398698427291130077314875379071516908205744747021986362733946326293912753822419316915824129995720463458431607314877420389510937997919217435135316131347525601068252654509710982128871815619360176096343837110438799459888668551216043580629127412661056254950112206978822009700138024277276853921395101931371225073758572499502775048179379311540945339424807467705443811324982069195361916546300624333237366109353770120067315257445419094012623129853455828572327454915678983707133773113528660190272857664294334085545397568230519827817862014367088982872212857934108260919497329584639464389171971173077656185212946592052929993966232562969913227833081561814774578635988899754604625174801689594991552941638345351906077302366644506103320369955042286950180994349638661067621846581304264278881131393138793255057985440270275948457928477316448859995363027640975758214788240692134712923206890138130104263486113408264189607651143464110445405506849510462844986940003602308074417025328805736869459728822555673553307444610113090507757707965208819522339529329596453840374672770646167750830832050389140596272739779441312736579446137165629434006711228601206800471425494511418158054684768119998274240022916872105098340856574963889770120116865803170225365217612942319987853397235211206414285887272468431748979217402471818010873319076124583975034724564585627127297879832033877882224320064999376779916785019728552904957070319041374893098921807148223782117583009115590954491294465797421933986517665872929987885699152093075818258511033854028828795025546922158655552627850218701819285774338880799059601604374932819798042905125376272499231952123990743834617545248525140801989951931451305480844211153336375291351195317859604631206896089704863950144809152613813899570114127375818986685082639300032401569034402095977652618519763887886454530535300977903164915648949085475173824265950279624152214301283129063828747675219914127015262045011163458255831911156359412857980211707930241651930264250979360697762006429914265279437078612980114431686128883166517186873526500758143844244575152442903907487059552127193846862891537610116727672659607014960419832710606235613184710504359856977379008863383270750103943889930041491641596953454217645378213253639381416828472080504436568815125773020801940770138328165810122019487434549968260683919796051702242157644505886986929995341591748106277042067308047632125777568093566639910018034411757732499621414880745257824151500874204805847156886563277039864960190723287414452574737628474133630910090625837640685450972407015306004608482872828709168559987072676963737311075987946243139566432168156853539894625279083088921928006258430827589617745953576544483275760066791765573594604901587692716475071909800987211131513588849844984397604817190136473022707943334219119825771718170839973436576720487431581702237524374309730883065322087476933321348924736856321157027665213633893189209496489705410430347195054777743669092913957254809237499824327354747742154421632823526437498762551297883550267043263505585138836374627233990148804706925692229215723198028327724147487982788821802729811841429019143583027286546780117312020369854286536047970348322718963015246105674704150176200205609065270551134155866629592749159623033875410131512432152772080746981983790767154645485251117615982881802317135905149158225440850567176141206301033213865956209557851802521172387535675098347513241183949188994503777947320146697973931219667527235628838979078111934948731480621251544202340156867348670611771281692673181142372811723922358208751842901325423849059492791392255834404526499214717132408164505467757277786435419324574400342294295545946022462981751351901512625136674910729786823766562164081773399704866296448767052487360421512017466482069549461505041103152929081621963875542635376379375254230938318011022353995732797240512850428746013233337623268897166892470458608702611241542871342987073281459435917073184777981755095200834507701272861102988154269566693019197646110317651810581901197763240041548774517330594591020162110599391729165795160212753519914168966308712892361331722871388732574293530075533463402448966899510155553563352743039545393922150709975694856845614469472873173509197090473045780646475056026992583030469497184169654437970125239075551654292885161714693982059633546442452807483339240965082815984680355704796046149970633866337159604062933694856740696194317613523353645741995559584601649659928649209528455570579432709179161932515723492344059833332444498053499730832542574789120559294812380322480168123469511433555319882528876222022734371740416929692655184099490763923409075751365533505668939062188508713039947366704795469414087647972225757831620845533776970110987052260848829822898005701216677445739524397691292397450336359999714522262704767272163748430136320472553078445505265974669153050261510876009502378539308886660383910006294904122396363325219065827510332298252082598905220807073946782777102387257620883080322153285536874976572319134583832290371250253645327805561938963455806932053564535939996056670179824826095605064128857341808698585907744298254271055378989177838195932728246447658701753600969706233814932265941559512331669274026256114603422313595409265669685385365221118481230624261638717952045395651869703684779992352262013258049808680291081255535522939607694764929286740421017340867871480109216265334876706006736745336919602000008233971826100887137904458930006116798934175315007914108997149404399610407059667692443790278830384502786871665919606772439641838185171456488042610003501842042163139494425608424474591350930967463256414790691936133378196356350705287082744971355341547032848979638039031664515633972029580189531038205612092090040806631492429572263931979506064339447175959182962754530993003579248398490984623022033883192461598950474025006645974438986859951398843706391923347516390197696568950654157295887268190878211516306125429841443755984447591029196337249786255867483178116370050040661412031544185408621840605074832604566496542639384531690013808935818731860298203090405278418479521048217583159949240396381060722026758287594886298425511980107584002303866224402858746932838247923411066523787892791918918185356631002191526267502482435275376136790683810978737557410059244791621597449349609548418942117833212635996792708013291230556842355990904625011292277638952306384657615004129375012854718534443531875327508639235873595381149814681767342972539921921452719300898005986693729079373546341715558166580794345049169249240896548797537353383430865001728687609601051554725884155678537141491322148779648647788801837438445776268658012200672295512924599634006012450615395189023973812777511685573468183062920015009130687683649426047959880063769922654276680010493330699399698851287202277717813903099733712312020105833712287664319295158683789143970309572989951313660861330384059931975610838820485766695032383972679907800472419868248485751048065643012450520019241807697358868357075786425990842122534397218819295702198814446980100098099072641865340252436004578021200365059057295285073001060878215885211519708667211462613366159615487368485333799778616550869058788925187211511658726773233490520954611766328028872270721789660200215291077452067210375123887849767732002967825724280815541944405031661798041118933459293054843381528381566101817332913303919925676120997556912331406954481700448041376011399576100514668109106823513027336678570688034806643682130863603892497187833050498999214761361843178194572164823727897651665853158571997476384756138892191771848369306484452028138777864110516235840784403259886389487293907371504887189513946549641720511614781282220944085387182664484047949631724980323684360923064287702165693099260140717713484971616394874472077155173687038904626858425759395506464886463959421028984556206921286086072629789341204861180834472513524758340459301414053620437141795140930278214166413417378831628635455270896642772119982949477506003788889600707041009259160953402738795682975757239070352592557384987796911572370620137906374864958188008620436100308734026708564611332600911197248645614752936839777809877720828811614877181015086778886282591595972894822169237178725932231709585732802918424757173823667423690164488816339623643447507464539896312134388283323452664565657566603593127337022751046325940654817222904365252225066772714224522001747276803839963640440213772143755572533247992705513983394392268440243176573977854536926391138008512040194856926979048248602179176045622223956143783297716296929226934835492635570826800727339753364710665515531344397648621574797450580552921998244829225481206803433213315140680675916289473144064163285109726828460994755568499576827909099343544721347758161483088380248006230419629202835132430923617131412166313464774616095492499542056257239103570929756804722456870713985770949074548325459836537310638237113292520521523272377911608950021763359998064409293125054512921979343700961288380962241896707642162732237763404112458014610544458007320693834859697176263330567689519697587267580108276537411024270157835746369184847334474089628412718422732041134756605945994847665460169749280974700401423513749530419162294102083468905989810770707391629954655294111674288857978772306253479042633391253484035861450941112436934711320424681050579471534442247591770172529681040112915390345452558117025604479008373264482537818489033352161198624201778307928789049549293829796710702329101904835694291482637824638214453893731469587275304901079174077811633470934471253774508261229917299548139513319270679750698063154288297216141801423336043198906384895463180066335983175056909786873467101516292157466656131596718753151087798693479277880956136959239176815800631784581001216136045022566336730716727240924432394173064846593488793211818012750453009985934172690462626534491657065028524150349813886056166960556039245578059936021612784690390043708944697035133864950766018422280434366068856318347878488282864400572766674680427234427973503193705269879420349111819712358554909754361080894019564796170107544045958258190529804307243080533360900056038092239199009892319379304824249080575122820142196185666013192575333216841725915888949644952715966215023366843831328154706653398711022485242106850332576102717040230487824595581525267435974159802884916990636589552881073089091410550168498592831412007901159976557918868952067277525272819516730910557597335264933065475527978931088953208285041280147150125742858320418836173085430267856382348799505497471031181728229350078149095942259948923319566673448637173829852163359674423189582357606585553996437062149433900682388757841405005058561676919283280707619839294230316592906343615099132273013019651193833345027621182530214796912296765928215410852015076975689986515356257555510638568417971417474666036352167252990087851960475981704108802443513587605096818183265223606742802226438924292460922909590061198038504931901496811811856888278148458684020603759642529289125488876770965945720274293194450429502889859371148417767365174834552090559079110590718046218503711969390372837299032576319094191223864352353977080955592586918216253047578127632780901460821230377877466273146323945949990507285962187904045046818792341500622589671554191976591763394767529638815859551264929603787151667183877850477772821391043966606685109373795379210392385160048460704344654447398234350590060374294378253509944196262887012714143239143476499627330657222728201220378810478839901733322611449688345468710697507929495537276658506270698296472489604604637433122401543820681236555575929622003838811988035334717393009661986944495921437803271406689047281265734875449871684151836811083576211421635016860199416656855651896216971373908295733369166450312535415869950758746170937360593744631912896952530195179163363281024928841002903898504594809058745938352034789888372535680024907352330215474087522977401213370821047435571220361241142308414312110637687721031370382242577464042397974237298960354729535698767288229272923404409416480181655162472105874072352808564462631666140184707860601273159959756390014195284971718433991520106195187934334073466358009889559720987105629333418465018050668323509574768566792729059795239054497612709204432907735577567930652536839534583546155747482841091711581447941854335237531055439077204294377955157223405815180749720362114770894223615170111314491689487150543332991357501537928623906911561889451895049141399230641355835953137752875609029075080760075585077808930435104969707275763179308355115895926192917754820463370672567899713941912877900876432291057446622634886472894484419394377248167502544966731293643941577143250137397057717099245471098094308891526762240510654075636070419734692004209840509979510148674698548606330496124478491434067295218176066285501147034485001002682745489052950877508487203863506824083903560270678693551171042693797175522621075781106022764482143652941145612043354511462084045102615799275905156097543043516550184126572093391329814965993780425411180829809454383123978215519876323579492840365856373251969633097178693009668705208184216818903612258885666171258971524246618267316026707017318161345079580009108229270323621323999572909077574107120179768851600257627483890076202085430374422377350514236502024651589583796145093370044675276475333053832744001557433340266740496863031404298276175439012580943302227020133817811447010569797320289727513250924554755359443993143577898868770666695734994252403974925761192944113397171418941500032349728066226472439730399437809658941792949319027553432846601696347002730790472497626786680279307481708029335467616161417670456430418275849920196522646459850374090148481068351156451924547654775324274146523169195132269795986908541050033734343972217534056555209241153663706971079342482821503041864454018576396297328351712832876552647665444249910227969967455367813602558524753581837032488290389222747923945423108929820355796502629142132190285423469396701214529729014031970963112356715171453728421382933276611433139124197244208443262878132506911696839943601949350369351842701398574346360555121361498961095689784341707922142772750560706680115711544963663638191473727220859246265608419437776628672800514246306403636716818500222215787758393916911756053833720186229502562066993791509319233434512825617057003188357238861965391577967658907453964427062415965734870231668414877280250186778165857600191200919064941501022214606134483470554765783870891390420748070926251577494264729230582483882573151359361575773721898818144414470339730919622164556115104092933391248401610176098709958044020839845331590948577492599357187543357475135847936053075418186763613673122773433782954170531268559933240416178755436256096839162040347367490461725167517419130720842104592684694788797208497360297160766939844363925119186932925793425614052557753877757471420363554261713026612171041251899132369386837874240229427261832815608560414110250283688114033019554574194809928595603111578093498182578830017000071031098846142927817886765337985865476182590749191182070887383812830802919259553438904148397302046225380286946971965159874220180235909364189304403606214731545191526151682405100273856149075815944397482842506643419685343662597619474608490947670408051561621959850119909707087517895283710955110252061768608749904193177829158312484956859939354207817721503514385195413871895828910248490578495602801576273437048884276467231921011644192954169060378518893970343582175570524207394785459601918808247947355603046249122562707566301830316666933440356920627237341548202204435068622666357682161140422904844419283883908196545138837926230076168767997460336171564218148050561190007372283604770186530718563159223358773002272908248430312755438975319938795654940790843099143315157166586454691867921074089860725565867893729099651734851568224391828878646553916232407176441355481123086601583893102975587019965795089432907789233292261341523026140429768841076127424199225032086526290924395260613860039493421771783721546573777711959388153512927970067463892973892155012411567488314931101633431940605492590801736732579032633603006739796601613295784851283146342035233992427376865152460930650643729208947761612239729849523922895302614527810929244969251234206703544418241861079321472156382133130064737754918397303430027351344413134871030299433414851790766689576096768310784053621644973052055902455087980143308271238263259301464677906589421105365354716952220511756821501076229314381583536048725464300034188090124365962969186757156570777791459951190854998267062949976056935728135266138764855121142694394569228854656830911305377510093590606888277563539494052418137484164905165611577001738833589193106416851111313296012215032871022040951168755007013738605101840920559219319439283698008122820170568509564672734783321217467391444108426809406895041004036031022160809391569347313493272299775442571331606181649147640248751851330475985562862915843318806539779200031189234852630905771880592309837264941751162621347569526323342704768767481960984289371294196956998239935994554743089601842504060233378177071906956618184440052950365046388749275662891153016205105928970366959439847016375360039796721985565098359188310326858575876392778834034717830697084616569619857421149462813327513918048535483172134199593957152771202159127269287022265235638246886437220907906949717135588552430810831005231136867854705515337989953437562924302783669381594323207581924439093255018917275283347166100484075613790283788384701750979719643230211722768634345238431162241850046898885346305790969778610086302512230021707171121723701802628328333495656977374288212714532465665309030477771320084735164992030265707716990723523974551621564565516551295348701160625101056852261242673214919474701281731327301379606245328404407763722351876438183561270271446706093526012346684879593461428853097558557492885202061028600966679259098878321013027465943867964559256709329568706370093299576479968606308995706879746066360326960083586966997178804325165972773829639759632196016648289394270152803549106095516212754739823008820719442294813810420333177893462260058350516870491042639977472275992378117455601832409254013588600481372558630619099281243856414602420295968981544522440128676857558222144775373779554104715416663039666295866796508208362365808664827446964393140415211159096035870212674030063227433180614139394224487490480019491399445509848184259187145301478638939435811525202083377258843514094285695435724507832957091395092288319316203355857435842016001813861998497975741198090467380544074186258419618348812859314165032027427959414817085228030443576372658329430470049295192247206497897596521834419088578700275463978873360638544071390289452789911955571151399688849730823715106758285828501739696318692825301325740135507118022443062261095040637905944457721551257072632215599550279901708275047593741099196915308823364844794478686618495821777908962123631003855477539230213935249712578679014267451736487781434618738447605449259809740356099716817926504724589746149071605374208198180268602943671496725289744071554508469506911601787629366279607312390452603584884292584633339374809809412249419581549893417753170118402621746673617583237598990356308235694534010312196557472143996565312147803823589476027255120005561225576162265469536198409446183675832233632115087775654859321049512089462962561823545440553694775888632582648461688506839778127095369823786899429263908607016076758330723231197007502625098547735324378258377052185716619835605280195497966571027519825381497971603087341769348042248074725219743655425237466500358980893896942106200815486134632982611887062503241667787490445274043426332688335621010323474807042690746485116065491443368646995976801377379214778863121020017708584835630269423423409387370890807538906994983792883866094558655412139345456881601992920669541879185029692508163650893312501201770960214414085017102275354808973338253494355285865552390307677463878683514827516287842703410204358449775082223822414563955930502663832287653099319200933684778373949989183823321893248970502125302227572241114847962692626479240921972494398905212348175113158585531534142028562889096664754026188504620726740755346659236479205431398764252453798904447109137327723966839464468290955878649865322866568830583585776186088886358757921407808121340937007773529470120675557162810515215440211457078790403586029854032911854166645245102711767499431097467697159142031493442118720789643648650144137102277529512697948182806515844832972607671673749795432906325778763903351688254877430061400712512013122075871797414346442907328771590791817972145077094408772330424134323806615686672690762252610829156087090737913592369767628233433426408909652955481797093804602695408089586006646078374316677695647993920077942352934418438769188912843581495344396747035761858860367397330147173228632073518315320940114787595667138007285754959931068968160414079364360699366756716003217845607160412732284394963637641091547710107723017172698499751079211156210225195391330490944196247314619206885805410281157714797660697517724603419258455778051103994456895127765000007476814974050242249002651592008985885218138301272277024910926618028916899885833567128534620509515956965188747482155798622810584305306002224245639012453152600302215911262347192836295659228705058663961732233909568706165810451611816572862674389616574563112109352320516700511016121703962028781762788212359996773839486772646802392836218354268158390462110573810639139918468103128012918896601428880622221157776382772654831855560927760279145426523918369219195602043522933848154793084001739671813849887108847916645784251213450265110785799552703803300601838457317392167161553413227476809815985220337390980331848007726561380972119120714196500947990622499493085156298473007238582745312292181663117627162889494484428567460891105958334690103728480566741878739248523238870195574534177696799690745775521321382981573296320301323277548528896384740393318578286417435688076042288934270294086849473610073545778921522441037038681636487043658458535635976070426217364125519663174045989503371231721137278443934651412742529788193394127101788424084898242390778786287806587952245647460304976843196558618928887814980255104916715254251249914476470488397305145135534137575117010038780800737541435245824179914439539863190876871887768244735887452026729908964988029621623715956488964297858231005626768810674991667072677042228475097354911129223840187467111732910583258212449940750415962270750974844535222146594848937511808713755089490557253982495274805672032389333992740339749674701337920183929258832161139500478711656399068130706785052154814897881513668574026457782400263124739562951626359473869894200550366790505436495590968262097577298510741083565438526186532737219802998863918801568628119828995904322134330423563194477879715753971704545108055210517479302994816025041680670929800197818413563285062164185296420076935261276775258191014920261994401732721292026796376378186126376048978860782543134958318977780442387857243170137735592764312156381094119892576914803767046726866247311185433794755305661124877869636817170267563939439708649508137317041662610252227181423425626551912384466034630762249925768557411533405219800932330987544855495075236094895345563536469065222756303594859591949649633384134411161232775394021185228579974830171019302674797619428255629954120900575763450726618595074496108159017925898221525602099226572644383991969428757654208520606041315929589700459069642882595153360437169052844571784499150109694733890181847010591547877559703983600400234583613117090943226778282428095251707294438662992156773587272984783930994473929517006877491402043199936533139909394299149068621793964034524542172068935281529076295457379576812576554919318670217621917167860571343282360839056579008154024693072955320252234827405781286597336557672485058289175834733304385413143817931617739616426201772682994090718871734620067212178387893387791856968586983512789633815484637758877325485846984057503016803095533135537277431437904295901511819769180719864890492861193282603500066263403291289535058874592198010392393427188635313821961224501938449780060217998709179289949259205308289661615043960918405745895370841124729251841602504369583771635870177351193276440203312526952643681081467732990230742242362883662068215603367399018701177026789495442681887314413179715658532740431740256306140683307777921631301579354771955087996404479775983527095421211754427435378200318901619214948985561793747123552677298582376493473594653433934823909493780337423551660214944974510482170224054583343315983023544839803027003560671853925207490014260855789997978256117639811281668096336300490544406337478171608890438495276153778568125546199458059880563351587041598126804867145514404533656830999454932956240653842050257992493752013067319073545677461141345568510130258310654319478302863336741635206557365930187935827412507777028047871046240632005663882885420956214384542118163177903234252848850740458042136330303914277070096957229841528211830725957315679172620559735477630237069137445915936491113849029490604834017158221162154963413796946067157399423631930387048337385936772676970321555946664599791750305891414025906206222230334762064333832083285890596057286266795207976492899372123865833474558712608106792097522656422426344940343096348770169636972217600573226422289474543792013876887782872265170948008583454357928327549639793164886549057633462071208564201738819087554851874546129817211340328912179606214476715828385720211698953981703346000100211713955328392324783117256861188819909644172769458650106886105763774557139313170177257544800837500820467302518943536794245172807239057237411303920436491697625422666336103525305731865514314473444358486142878026500254780307766447146052972583292461652765744703870471255530582374516829984752181287796346785882912692769472041915554508232256607866906808436514530157387242044389175884369484078728743984235629495538967926986102982458508756743179050588664286627255642906809539287349606320333878064359615801482969948444397917144676316432886766883101086047173575622743379560287469969571755990469090198047076811171914520711674103119736038856041525351899528815068079488151200145087644378177700071030445441308280943304891792983809922584200452765286660402597456992575131713385714908820923940961445884526655253691493455898460717397935874046517966113693427032399397106383297425749703602503083292599307070676335518033912115154393729071135128594546043112587114196916930212919058716213471738799439415511842941024203105234952195218391062240798423493139962784453537350272005260876215701454186632156407920534734475905975243775798510259572877021128114423787515275617442941310674431664637830259391337296242663865017268606933899206913557336599693625839930754721276924350138703579364305487268317387823731170645290458594804877414755729688864060159509346387870140176637793837144545190908282178475005532797473343956855456206816660121121173860900133737037081178952871680200276984513577090753646588001804491650895604669935108762617206613873312144576043706803590561377948305596511552269988667927604684695674254344252860911489586458673999063412908869154101151131701001406950747540431404773703053813528796001144407665083817445251672520814861036465110394661192079902807544675200570688933985327553660580772046674074874893992833205442498369375843389767164298054988237220290647408397700867063871135036622328927851048077614071101032810362306776419377211543636015452000475744213382315520659167085287665106433915650607393391082180884402884988568520175217877740505077527777077058934307893877618603347441476230335047404058967675352907129314953985691773445861635980058824503753498166684641905950678872254107683986000331226876611088713150025101799681449886793216658715976907770178444048932003584795119409460779559587816830380558991440968427976061439707564061151188421240413018228282220475547190237018053492455588148422240678141233818580593803706396222805351693340376028926819913213828160137211324184681009961218781887987996580085934948967644645077757417672658216181625931269891493522800781222964979361390088371834197528062395024688098703197539920270732418553183435521925110266855060486466107417592014100607595594810079480842494185016569135887747848298265798930267022278428965969121500418445871602105834711642263107107816721316232431111093421603989778063962248941746144465470146132950865414755464792798946148476702287281292724728040029387277572383895847006136933254715275883793011760343197646602419338196115922021490997412189542059276703901832534280600350764826150448046653755232913759645342651669893735709029381496638806643185924818708428538962329885393108270999794383650996013164471560743502639870611928446772432492576845830902493062415590912670718085692455263057378765917292631061059375854946124612318974824826971828084553703272741894604964123496675036317551851435266008720660473893255194034095823970174978371435019156395554988437285313319232977482785124104256925658799149278740015748106251161292331111513285461467965244074904997914972121304043068886430155662402104533683132153607065221715994905342015942129465732009349907960436892115264947195602209470408438023240963690687377345889000807116638614940331738899916738681845882138785201704796741554722791820114757169388737188142358424339385610248615958723756458264660362323152698953570133085230766144102977809041687309520184383732566789570189477332167429768851275708369140676202796130769388647545453545801355782404258633463864927152905156619896954517327947900886168243780956623085828822641796299114487786115643820935519786590333943227617049593426415882414738585618823975360072873470021991119698949783613568081426434046683704898381195886066612053453147546306907852571418989792498195039324108513886660005288422894470127085699129964034009789894336512280984260207321202018598591594417263225185003269376295995671392257856089234887203202181045790267070976737416371021967870269329764552820634432252408231290847020801565462353326444582631627830564925582325444342419099444181093466179753394377733709580168397547042246917049769701853797230841199103581176739053910401144771110416077408535587293983879046194975642339653426664713135085671229490710922218306030242602854657029052017304053902973646810331660343011935442675590861608662983368029707199982358545294438992407705394285068119099314413834478400082140264632677816997766752954567418189804759762758545294455230440597715943824420449040481050403560174347569428217885924511338165481270203535027131380485170560176174334905422285172410740093072572936663729495788791280052658939357287149943589352573376712369584258632507957561880894252969009448260884582367941187228393257347647806560781721250671419577668433160897659896285875869545873754172351873784101161661091814063078595550457033869208295074649847325622069260595884746929150621096164706508953242603176462641701413868335693962091313013719211478624466977236544422363807817824946567470454348587389208059955882802943854267195557658440476539274970201115576489895535123741771442720823733090214492027567639077631917933442738145298772807763551966136249914293585674376669743124311258915380268650688379518361036187654455598823575871484381254962469764843340879048697666265801863327091802606128627728439449798038942492818048592130345803530053398431932861026468672440210478697679776053325824342130244158459907308668432604141884741751478735717359485152691611660439855625287034231462198196178270995585176741185251388875760270488233167327785965636540854770481866528905287101859955541474704501755376646795766810516785495242230477171277549244366228836877943690546141694591159496658711901700183207892262919507653034273685019422841166740139231551423247914895150677145939474650854776784446386963462087127783234190162478137419977446406385169710569226393082390204006698795628724717893585845571204851717473522315737127501363265927810842072023793692525178050367345234656359617947814031790747436468911497548617571678889672224470818583292649854910983869075391236949402609548568777685258812950879958980271230845083928650978599735745092760632710626504771356039393270847680666429595331578727332866686261438168590624699883418797213301585832166872374217919350969471607287871866196284688451843018928597728841521507834829131505301579666479261927271833089452001446642121693233895623845372776888105835169483056528053750380285733090343922304474751108257112374649868476221465336522785301581205565998701134188887242600776494237811167754913794485378835515401696614446558273542097891855755521167240888431868093810244192641089454685734544688937755946072418978089471615743567712932851388633474748465870561680493621684127945457309541465163461903364780760121133730465930971058282324358697735274148361706520958349181683007704016099788870064647490859295913476879180350359906799636321956416083209217476125206734692377326860112795762312525054584929536209909302142089074143250691069673567373935860480701832298585778734861114630520888349037484749721253149677534354232864037388315840451812399264786784487486427174959464181105118304348193653442244938885369771456398915855579536261446783480747478274445533603787811619279180424955304416595674805139995915999186680047439665783405551213260249502247429211517777858731647890122548538487248736486337129318281970138145175787855380717638418092344507792575149039261374850874683400120485592591172402770112752197305201465043981119612620494725066832235485761965688065527155264341813041594929351826239583238222965410212461029301010068260439748707334160759611636431733873762508490905665605905820965686381783766354524581224119168028999422660056008101970158352489061469316752650850381710871811447783758296916285397980249159233821457184492979311090929025097446449049780060525633249987529373527103613649698001343075130017074928284246997187189359171601009146510194325395289771989892372439229864735926058237120468544248526310208857073810110279178072479208631506532103021558340937508790835919498621562475801363167003601588661864864535212690620121456348769720271385425294276303212439427317925010560708687141467310987857392389669242766729413258101260842664099996160973183114604890688077112354248770737936319538146765201525009211788522992864101742279488279636968337707281659696462805984480513657918667340084612608292413954945939448152396450966905926281854905969111329446928082443730794597412215136721949260573257723338381887269058985543577039660926085634580570028149826581019613785131189389447944640163145511590795887279785554544591477237530955655016723132461290695221241004300037939224109334105355033433480215538429982127946413211047875021941571732249308160422858385070370273999779902034483754280000268265643693474200085123757940320604658594979644076014068374451954426619452157603595234948946117530318071924457739588796347222158558380772148819199454022915716573264949654982678714123008247878757315641141072587448033352029432313906429236462540634774007594097379230467606740155821382685828865223753872775215782361921407188762786343611777684711459167821120682439003234938244853198427115005947756995223611397221889047074294105265286805792420492647578694183646961636474491477315662802495797339660610390557943957571397046591784391662503292545375709944717762451059571217479183307291944442315906072667736831310329760985848401713244896240358440935864272196051658290957759826001481184641239603610056176254026617559284791400753337961954896921293560688893626776619182797508354491304128530645523677815146530470084800905340291961095447773734349652158246092173143606833823386461442520570379675164734068837504547470999514001753280641862790568024147079730882658287342985726058964603608961567194047712411664971755206885215931084273896456629676233056336414752948616808662464193687937930250433415327533252347649882868712401788643052183991115758620205064850670932246471116852211822091375247723400400987892895956365094340374647288688627491754458648971896041763186636504875681542745119861919167409839072610721105523454683173579472277277309456643006613086089666323058922018885921177875719293547760147537904648296404272055240961255047712581142460443102174371451816558535485400967610281155035125104366983181783455301648245454298525349353920950831528140117921999462789088493795791061030389444815728446017425339162183515962298911703340240331035992043772095460937442697940095914082151018514213840929661065996249387196378333720084255576499355426159226949987701491053251848248214593622984244030525543433205315209989085744222603629018748625773844120596299932703925344792777427130500008254450339834790223558443087642806566331226456470926236200989797142558108676257404657848465790301964745382367582479607237942998408215106063517407594329464080688017143855682552187842292374073273695883764665587783389396739565572276485715334417230103423635297668285893889797677526225529440610221281173639159312431503393436658257570748689165073927398952090514565869247413604827807654551535529184162598758384603197430306297047105302875212535207436435893468790941965402728152161508348876179581656532578773630340592874419339055477415967024154160593371702705737681295267193210390843578147182842458953430904277071119305488191193276797915329174167584848302925732079220835857519708929456860257197644819918581723796960821273712540710820301528757379033989904452102022754170109341933577138463306216453148188894219707876598961891841707830897044838020331156520819448657595004748608109661174919436044407677038360351018336294825979170689766967914431518993852473655075584758370253444660657709963184869908056168238630728327451767288988628788218583104056232757719041237102590446990825977749279923927434163872824733819615918960688275645134380798172081111954524138700752184640869465641328667439455799303789405822815741941852833791490574142119183948038499128913389601976328039567923418669473566196992792276905206946037570683651328851530858433070066044288612054639773518871279904167013329308627776396718395144790209402573603879346565107762289464639074196477131472091180491235246013277519882513342864491204012341434510858007618116436658224843594225301023281503363284640955648466101956685267737575344429446750453355851243211025330394046037795104742302731322478809991779897333024941472291741412637672163250118692208971203934120207914520581854905447986479990958638033031533331085459671371163704325718876718631087045420634332475498470296868534938357839730825927420103096178887603983635316894573494958159613746063978422510292063533092237690749159602498190029476930952572221598019700796359006551676379680934607729552887460298699888346877380268928630807752962808389102270133434801541876376057180970659969484726458982891140114884204144247756813641235611488080818807450680036177700882857664809845157100938826071875531205751816671982477650205620220637312525707716591453586879360278216267602757478295164151647741274417899816512535884337645761367485769440237324781571393373104660344840024105088085725829550855389035781770224169150001929309503631539528090503988917775047134796631319397547010399336888243448715697250273788445632616008436822605230720268793442384458723283021462243662598131586348771914029387543750316367582398817254234054735721867866951391147508443136984192115480284103570679842137367513117369723580191805963872269889324472008356664371875659409501511015312147466671763568496445387877416142199223024057560427581337692009649100356622628202869060502607382419395465775039257662853220414703520732035542397348769321994528631492733074536306266670845079779309213638054042047326455562261696698824370070126641217263765936477607786445335447778300195363663473073679771867770603014008598273111975173058425481543443394785098592484714650645947622046736852706739961656528562793620029015078808026296518149647381843364746163048065754139230997022187818510254929595978740138091385453701088198072256080335162639214188618998254123205577506419789826105374541285745684147535757980021681686126258904150221217374766612165176337928279356795504339456225090986287559400259722863552707036843543886595779968591119599179324200839314794828141190853023294532083335365137274337585218736213646104150599599018586621049977585898853336587197225099219737087261292479356399643874884903925872802774541340415892248326239768066023300415991503068131629113619414323833285611476776702886847242802994084766401318232878970644010884516044600996233075924965878272375267531277534349030237451499614333463225880619440985249966153204596368209286777274275006399903788991827619424347510505741033286626045776575907952592950409895140091760640622600788571833946818807709002012700993516628704601031093528874751024411159058231643458295554538499096657053887930660132820403450281809627196326856583873031695241078777648330695211790400147679973297348542177506258560038122866960089449861998857496090289000780379865667449895584826078361141209749535851703594552223681000307736771360541446311426245357032582613320355763959389980584250921451918754375754065301579046552191899557705210256355229941598624996906859621717821580864025393217545345517033177334995436206941315208729509509343108901816309648522662375245132011102973880366498839679729400247613123138004122988494601970593907351828018758060647932018634370358799742537507638671038675837121711724089602986382028463986546867893502934826900997926468494952614885808251200344863502569936895021863492899465506058919389506356396542489373245290105765099754857033801118025474417308522767372541261541913372708971718903889753462943675995141314265343212265564238368635205818901976840336415779427436379020352130904806690928344682081269496706180349161910516088622209037078086054413201702185275787561272888950515723203931321067625762550748717090120471560649760388261995036395402224430431847765179733499841837363143198328482371790700827596556131670835904118325762523943945628307374439759072040677943458120587927340887590840527086225085590035853113273188082120619940873047295562703937852661945378545794944257977848864144113924891041460219407248437450883219569745069961662331061594290724308295815886957103291584789485474063317022932179237634648817237956607674050328350135588863137606196220939476805099670806665176946410476646778433084931454519582312631387187105339929884707628463672690155643731215267290426845506005995420913914151318779130046810149809279935088426783049094418006913695363831232932185126126520621795894522620459460943214377304262663914354626881984416757990251218108569533984960177468480163493843987012193070842056075334337045606287373136681554236516605142923807557657255337882608506074813987816372431824443938064727358376933042327782872482789464058230332441753353870951055687984458646907824622006947129827764364701545673119863776156340270776222400005815278309681068544185445287965770084554956939249838308544988299180220584258955601917410834629329581159616984521691158114789543991987299107837514548506105810094724504229462586641349449151918316579618953446856585591808946881892846819275674822820451979036415603041254221029501544068892171400165569184506592992713792813405960226814343412773871177990989921535409484647314248445530363217577710669788965124434674407481699190093790300493843550275670241276620767164590675941193858690852630937615044109216891109181803992818048772881759049504876643620907080036960101414813785446668828023318306512347844916012718753290387659568482323269584315685067466712214770790419093869262759711037047674542427177921000587754854782419609572131346528279212451895793740671679811452935255303405118359707466634078301436924639251738320587931263193076112144401829132494661292791453878535040283830986129779086889501503063823489107978207088500327195019748059810464346666568530157111219874427717852722830741567335288555990078064707961689264837029115249194950460773380841848226355461563635211692510687065821087165959565590322211707787765413814353426500726739817022097249842090368055322953204562985387645624431862162570835532385697364757628671667943589397579269118109879939568904748539046824844802731867417947714293263359362276082309245207474611213984727609563142799981396677511604160388495361234204833030771106331343848180024560302914006192620420457933533965221072649879801107012994918786647650153425924420519287322536874946416934443208003078872965007374909675502416368147855620486571423655005949212983259314544113031439417759123184474253589695638277404848534550445438695578815011437865314614282029821017454003887208502974174710751556170903423585971691117725007931417356253945644445188944679888807197463837131205931726612975557937712230015239930803784971541680594833879194210554183561015312684962154370422452948464227960708517575646773960005947810582358699234305590935877862418581894212431958344239160801318793675050115443577732516165590227112252496630325561813359072354808360862935776183470054677420697864823765895175293643587485368396311620033375698646603933910383527298938641384615945595038951883825881691391620123488650869830468221140825259877120638994331624527390376832039978223270811959343237628788853655733659674586190648679351707056777569845861443247598308581116679729316803735699154297229337797571130146035240221062030906107996117369721283619320666218323231215749903153342791728840752510319806921534562829829804237216525521017605958490736751822728695747583657648934115893531066609187679619307450363675583262631971783503556190841329167222812825329753592481710320295421068598635698191986986755098092012703383812228772112743426941814928229516392191219786605765353082472349660880695097314924813305832095709114648375112730703760401461761917479791308431614530103903227711307901955688752697811940982418061102110260679377983106942050620224423288786488630838729625230523993931352185431859734252684953932863356251600096801637865236429140505962557127358714209323845409710694380883201781464084150233988995557824771416115907862958361201606826188569713586732835983029776854750894616499927591374855437014748500474942052050012305027145814821968287558537257113948239731153000028463857735036474216542185602126443712898153709621778767509772731588957709775318284758708130229671261166553558842236173238940783440728525104540128934937750408552077676071256930519845619944754616410525418942827363778489966531167334665877052942482788257543547338556379723537348748686370812313437999790186956263371691994518211640480495262600891052270096374956640300357034664268522016712121049098938675738124630322530950741637517842621266370063450278523414434558876984009089074330920536127946036647205053566411086734746944346715404935634511895059812961567901141701948177567856769980905785263116799952506406920938405498828694468179863260113775578740229669580980130661211361735634482384848014820189115031756642326048904141089370902743688976296507122650966260124776027128413251459672869314194926020751069094181463686179988847793953116856132970173705642277993857713418974725976208058605874806462449599852019235105405865947876361792752008696841137817077871502818494992376453245071490494058176932654749897818179147008024709903178152329069355518634652013295694477954394366097962375764151876889211177172391409778586044456165806829889005558331181300973923717806762998535964657354574008046676821355742916595123923426646770755299906123106001177482745682845804376592837949523326484140423283603299163565137804017539148950457138133393794726745409640613210515332549106416894804594887549837850908806464505273424023942759763281728035229724179899690271566849712650734928725820998654810109773506304840772676445925954538489702713444881636941550806444160597721800909410225346752357692219401640760969536144540077438872183356828441325389619014018062750160932554135526867826114358016113503432188576623417403330358695764232923075553089351019109063673495778043458531226846687456767621534358417036678671889256675694356777560863923248858978681833986134146675097142888115969897550747019697902577141553476979543033130152696294251726851407399250279875231157094732758244207226929378085468963013830363818767070920707122128568422836390987672306932796955160568732624092684486880429118046350789571900606142507162569017629061167582453405245180317507244631034175458219699275935418259667945032347444374559602768175503006249371872233362345231592996254199287477802413020431670607891110775669751752681488724216542144873903938456912444980109236137080037254111734348324614466062529287758618720847878548187104835099164549446599501106495304049944365111779850214169802371453627878215367127899316640701611257900356416352950342220530870435149769483278960259625301802525231030742537298126022177800942132013573012045296626334468926926547256825629166117829204023156672580914305270177135201738156157909317041995038583478430478544740369506132950082476328360128465044314592423142876654987685526140134748943535379111110451593051995845257304194416386552154098892031661459077679023786179451002617798017336297345211652970100932775925404774646618980738149625609194585624505699056991163717415615024667937371023314722477099382419961462201123437557525278107858812860764193419750621957745408581891267857955498524809549043332371357932140235142861892138885193293099527574330514778061953079590022238779462385012380359363744582049662468997194760551694770569329224325767535644700130008609263847647135419514281603765417229856757726046111517137049340873753936495822557957470804222084723936525710585964106670631330277855115439772066550357410564492859364278125876184772667485478653752997494121027749774780915338040059332077802433408302171628182463678394953740194109328643711970467473568743008612081944743314114935929827968245322826023245258698801508644024416929733748753707707324718351301055235295229413794662301964575961231988484503710711780466832745972766434462165103118186778343417592968358126881512344873701911738478280711950282384140423992233558074760691340983902095802375233484458007721867779999333855481384556339700910618101989378795896229029777125547344371676152084578209149318774161331182448262884484167809375552822849481532796777712484495289660148632562159192356706984297588824715169595943327627182404377587752194187631038939452963155015699028160366373257932797289598118601785928599000411867450447593282754916720474391762410967985651831817554639725503551149505998081011965468609300783552653583325856652268112052431237698277522445138382354548121724530591905130965495086208654555343362453188433685195649232807407215583964455053358259210034586538844976509430579083167399900090200431808708967102315377698271585222270419190357437309389965113506212990299742918985533800011785563673391574341448782255995660291369843219532597945334801932282054409691886599949680819499497513891432426397422777095563387386691087913832071352324036234310700759040275950827382353495981686577727416620737487779030352181407551136318190528910574764075683325127727598212777628048494260571470984988278053975801579514041201176762248354711420071900440725539222799240536835434950609011106704114633004179947212788033627407849287625478215554271270729214840292693378774101247033554760990062372381353312437554620272439438489382077064049341455430795492901386335478884528955807694738116515986666536490547363556215661376874651539874520275527844403467958660917106802839520700062447698711959003650916492916178660277466131686412427921630894354747542351220921696205259449306101405255442742264188192421372599891316104673702885853297963494856210572720913363676621875839748663015498245129100449496991644252947382127272889294216312655680310775456665738860345019917765065547705325803006627486481716600910997537498925710256649013975824804562410226446745275984313440631780306873168112721133192298994289254498676464244272126943885948047138359390726197351949037048122276491287700019213214271870044376718895418572361205074201716061310580433988925197875144177873010572848474879964957723070972770665271878348467663114961466014748007324718802016625252072355072482079294661967632202480489547090773074610678772446646309650006913149697794249668333470877570285825996106992323255188015173838325551537466661596877238456038679927849601795762692316412285632020819852766469706149537601076870469997145973602120663174030747898181676859458818522261153969919657936995426164536186553690544505478268889006583659920555812297353726737970092446029908531512631180911276240048645326700444472325389714750300154208700218168241257882722445854638839255136414342449670396857757100287953181797851564208224012018445281652463738436578725248006786342605370782230416415602379046023295508253378632428744424528457335776875403761515586383668771809687063454600563212537275463861368476250413788420873709843486031591265138206694989168150572007364717377449944576158617624681767347930600099383270955240203421336517892722349976163697980075513037337987216524463546546397949681583109323567608907594251588915157189519047219498865131799686187097245475024438228479565555179996133770527953465067083530327190776802845216691492712509345612407334558411246909563534775762016470574919175250464698100666844693049742363057106579620850115193230520633180017559285752058761689149184475868669178742493735202852333648022143148952607245128893283528472207481184587271163998058805220347723383255147507171817740119077477663754871547762123479035984286545521124484944917579362896787410873705564093269844161522777490614343281873301002074454453496990192090829816899737950105590302103278048498552422614594881727376621933387322470210375589703430070784078421745117502371236291156112477109039775193851025591496297925224440441694070178440111395444175646492731715493141621540929887634359107558223035908090806469427677834874174284552980733642419843920577435383063588155825192464798556030113927721146324445718135292303963854736604219672929878802978068863866751554806448718245168242313119807153557219977809788302150708595889126536664467169065929394843591090242491515540900933205187653680883164666013162101802170638200533103489177696166922668872638988159751258548485605505814105534021156241797255229447424919937422326826775380276257292192580062537563305881000934477503890646789248309085867995680376817147601020058148477818266788710068216706758135278077721174460845947506457556556598198900685369463075863669858567414009068625199886390677746878276379071055926789598978265335137287560607528892187710794677778480342553505114048678643137687723238375033192673529659887918884242456833445676572917241466968552674181152580541565694961148011647544240331210491737270625820503373962327837342564614953475958936098748472921607236644378034004024645070618743417507732969098636531880178617086040737498861997205554313607932077528015177797409429617703034708098314714806076270478126489024284934690256744525163767793761548150308351895442862432869023908096972170922326905128679721714430197033929640523242823570904462555356889774506548478048673266277722577415333752038230450284033583608612146171079383238390713061688049369208949320828821444987922755615026036841812291441665602613856557945429139430096021487484932478534887067612631249659061528488400620779417860992616777086409900271096248270081498414431891080379956338020551575562847111661406291219805204749454501149372259600245567025070121166712352459665878146006804335934396682946543723329736476398850784186448888207684141186098389716384024307384792360617090966120319997294374902188678089335519964901803109299275941937050689129125431568724278107760637327377827469714879510578909942871069040869827474128211103920929734168931530500588612550063730647662781396615595335904970979164715201316915774412340319474044954996104656519829519714829747710961581103216668493058395086675917690225332511229076780634764453960876734596053925141742026201249409026123011362766860300823514969233814528414019689976681220742713573344447132195631010044880029448299166348094266547444751485935857619116378980525248218402607860310149022217924200619498433945865029791562128078767166884503807907735300693162887463451866952457470520603372066848304226147706720344433460564996696579707286504869311362209995580576188810386468024921384918307652528783369912329600327481706299901976970596902262742307867899845765249066208068213328395635373040868104759003597000632107592694550205400537345230290164845771402097610745144259229741316113773900178603486491685578340897573634267312253608191890917581210296991601149821655605331391819722164389441919744205554838092350625110609545515881408759958200124195867692701202508244851314252513025195825781889879228423378491655079425759337687478972003586127760565622159221913214382965852216245757826764781211747380258161373526128995029086511332618352734483084180622214428540614269855250048410128211961084918118760180863648305477736452330152115369576638004497614751997196400043174860061065171369475780760296183267323919792224359618536246507140491803125538615099878599264833555975853821293992824587616744641521985797222159048871517494585427027185151817159798966371978327725581739386776505762624493385892848156346894896586870595423454837485618626205058545133354281757013088773971124046667874052975808309243630609779277543753183610687937619591000102577234868109737304681773393951711559675035186014985968017815924441919384633069436378137370334319167387031614918791124758195037827621999719553323594129157311017157755918253267333373346939008577540658078663190716987629039858707765322102242501475705706706629326859485644265797167539215026313960164016460486584531313294661354861643153560864062996142360028186175491884526582126261083803702152377359294690897670630432127468133820100812432204769141930620767885820241967962386843871942000859442383306202167698324693108262439240699146122884160153830731106550230552657715219000762792534546164075831009795080819009493144335474738978764091355351069153853538685665027734142056604470869753786321566694212926858830594965556815681904571682618411094634112715196689306873800644733140535906627311301766165392794626781935232962221624098354535377445740791338416683565492605250048447772339778918094683224052026957376524546380715676719641144914713429288112749878724648724203733604951209493289935273901692179587670634395341068235128082429684743636398939748200520271961342395525345776120876260255160631207285417523520973842682652522910372629043091645543070969127186561286213670367863267511659990818096935705466208582207817744563517765232809194172096862539155819134430300507889079435510545905270922408846429661020727597274951536689820128041142378728527023527490989514713146173796070759491004999520055309610328093004228422114040121451822215492621650950648421056967563138496868039561500271533394718176240118715266350882458672942351071727155148004911498556898312079475475718366530974850838900598434399726691725164924383471005711530798605994603958224934069010728588321354756519704218394558637017940475655298016389037989760909983966308912184909079416686216658699205998896677175789503035429237835902982122408491421587099396426718946259631184153768556701652877294315763840191801553087901281968921110596073225249975877465515899739062501636340914874231759310919715867686229121800096933702018302842836164552673699505493395196755840308279180235388583678095808128867448202099249279477385220899415460273336850276434356997332940148215781692560247521391334077973263019513069183949799785385491355145105984248520560786859049909655163343101399094592736147914135584627314879215781357207979928836250232177425861206724379700302054969581114939475244013758939598762647716114736872743077114592388476790925886321895649086753416319829118150428842114626352969056448693196602912933012004884683992227446515078072556695866535974604704266915594950997038429948438866179685519035571557234418553809003794843363347640992253109078844571072419711895677036462599006395663943554152308999566554926529898645378556122680968258197651877516681554558742417930396006759811842386107244096130716573241169044685879974115613058166519692917497877885677130952592869096692814089534855158883441003219077981412655584180175444756729954270739288283431336810684937945481398134041053160520014188244744527065759590369098429498325596256292733349082224528406934328917710358523982124132617329731266919430723112105679416569771327633930003257644048060844194703312644181284262580225143091226480449429361271086071163469043118467976618537096666509232309190562871403313257296539286900348931150238146164370159396918625915967570890273326132983485804746349030344574275067212602018242868131386281549988710479558840638832418457731989028649796240130352956269274711958760507674010423218653229198374268486147286249035608854354822830027122730706893358377177581110846397997122485818453915866804593655491512137078348852811118749094252876274296332940830293781685539458149643542292201425922770433008882280760247594680020427148947410878918448410511160622797735950508145239804343337835747039322916461208271723949282492594520866900105364901650519621793218475534393143848322956381644179246468634555018694067347284900978004110566890097092318082186886224419807709941324846275709523580697303211729737573195310684421898467492008137072439468191625664099691416033847168495928666284811112615449712707240218890515879189883287757375878824865516402628878163494569122551225879153612092047370142234676080580623358412049130580803564592520239348874861072985912275183220736468423315174008539103827650526275846714381571717068480269722562779648119681507058972288421734598183210052490400270007452079687378319079465770362853608728300888784904913622412302478759696460286226341963218815523479363942900955186168194816693793339998744333506093591391589423080481683666023697281755930416994332530082746153155894095642626804140333645651205999773093788096784599847313260504537419587911263463332533344106947201533473003210924230283233308425988728924564521368226649051890579806593228940421262222642474871601545187410270924304656425050734263237259074517925148599877361552215691001073413913061723277009736972954685339585443600761254868507534884791963138946566971601677252647420565552049333264031806792218842415962931851081833689328356358831754502949158808354130193917855947596087464418397647372857727483473930883253103875002199369651928465572035425960281948240345434691875983478252680953458209465236626642291231720282035736702588331775015667814544252621932045303950094360252736840694472943729945185838304129489033787060328756627117620670504570826746019658915241239594033219832281919059598361062632149915837135083032466217200928237832226263468103194853771279385677153794743853162024864569612227945657669453035985147966244917096106047150561110761535364699686339523929914303752990977680899762029347326159489735650780062798466090951209397240537322387706415063284219804949663030458867165449212448197192941826763372281161433221912005901092294661971923265132993503109663089490899759729852615970148191158399833669386846472557514143677652339761110176630934922953232144677922563458582384020319427791409393881288118677756454831699559128475976633877880523667178795355691016867328162017479164867735718873782740455968200763599326425025956455334919291678366067748531751280278101737246949729135283441838263716118682621776476059320818293206765738380402505796405254417657586062796053526901494182628839775860171218043444541987644222879187180708885925801198560330729447086336224047363416769293860915948386553620181323481782688921743758681222092479971791841260101945655276235152420626725146731858228115461528414392281106750558892980128837042583232958244729830946636955658956469866060636562071077396181286159234291218275817688762305579700881465565570947377364785412325640041687797974559794431847614405312743539581509628009622854305908357002346039430268117616898109996805420844066790913992167799098358433148110261058354513634637563203338409223937149125827281719510290501760020894838764790528566387446689260054509114145520236028643221891606351123107723141831464960284409574838154265896152422182102396784056093891168900619991999436114206008811340841485175416573057974758166169488890713247220037848562727736945832625645385054171158402320311211218413790039307863817021490550931172567287368680488714486867080392429278743384197590785146499614644849521880803134236456459373274237891214370768982525819702334456036227826647581662806851333388189385746079142757617235932334381264032390235081029073470820488777421036747524859218484112762547088585005156804989633224599959094017824778285169857735514966825399319178170998224160764723569145021234205858402461841740791476683466919565607977984947875999545663145537071568352322130245100394898111939914193025444132647112657806889771905443018241911421478930520269468831872999310462149283663580900560620254393216167729734878941484417564794391625801378112558320171122713698918655700466758193435375691841494899207863651998120182628303274042334445082897477123281276545068440825026249586748495644724587043379244888114956601434328267416121083812703123994798385716356592956627859206205828691492455558541225378982668423450864881510424912799908279273599220988814290254139649859127035356898522958881162696503398289033156255691814702980946142771459055725036895219643951956074544118547097629851831378957665206199427859956470244760880700933152917273790108622462132667242015675218997119771412815728360465867787485642748257588499084267351313845309388500227874469470608677939160595679917818910128455823200264590238266481340577638019306876684026598461308681742973425812586267836433191630030137626315288517730371221069627497890913274971858338182055956466550505037492690874192697814678516821127124746137118886863925330088363740463837044066894060569138229115626852703456602977432296070052458911796402262479623871833215370789923030342681492136388568008412686832747022645712858617516665455495946136402289326536630705315833977102081912854413843875776768211986564126744782538505238899855259627881266140787149206675010277898374092410928981030932853535713173426186320875273586550035401621827066533043134111682669191492325417463952756566771375066124599306922607609940735692622769549760224644207925664031007175871584241175569725084785945922480366563182978404407694528136143434456756198783172642920401223426592132143865495906728250747045753919045909771854195056359007974867765669689578390815990113646414142416624550396160788890373518404741239059197850844740812776650075127829801565843950385956121116246545728870806363457123555144469365908966139779239367697627786063492509608290170301160377502680058131480583412127888023128213530357937927404582071556745011988078199690174375587046416673355840477682268246139252162110876945505129750986183456468957575079936605066684137353644471608956099830124334805015091148996162434881614416192354694387984357075277707729534092999170053748738468026178622934401610313701244053584153530994851376144762721968599855520768184540222732367351478498245493623720701809457440912301445461173510923626413034281952093577296622327445286810065906104441469945250463660634059741737506747896443140572751241067113158889760833996204741156796840218749510334065903501656730581610741490011590548859962969159429794583181823841683446875618583658837362291799731268776140206590818170303909780881295846724424180223964923632116395413475374629892811906267056658684654510204749868754300184115064370402765356543454639404017365097323939722928850502684418284104576316076307622788711415123872912174527741025396669756545662935240883436395832054415522125742508487982157245904950829874012212597853489240864617422730354903625876391680293887796689662153382142114246703976491976261723233071389872394850742816671794585095265730244830122440989404438132446745571630410480671548965495913704706095137081753338298932766130893487543299543349137904780940263030113451422053966323224591461916705914658514361906738586989520789647647664974030010265945954793875711638469398005466093913004931914543446743365353293998180846146374894980315062428290389351160048220205171108071217631442671246755767712572864018201354929454784932717236445591277494500571266404149836712805227349916655417011568522313989828554929689508307531207139771806976068076159031666428951729596100806603655395453612192863387590558006219021151467934238575018942278938210590368110661879687411281518882132476858876658143991298959348579381534110761464332479924589402042797247377371971032996622815853089394308608312429139815053328901835315788212184343860289205906486889862599869677286706180705436482861900064286181034250408780259467104535033417280139029703806539326076018545855574747353757235017690173996807429049036174274181048901528811282018158502925865137112091071037577197713626957351018869273782719446113765009596854692628865152904076216351553544019560684189644319497531044482656575396040082887419125994050428277341891240524089497134076903139848639630702292613780155404611094134480456825672187229756043853866070382697545049913412921040963096475309603269225263257995263332151070674751229923890808640015509356129161386491338000144549003885882804153916739377754998795731523762342627147999543069573373682308330958376674585972513077828547788862075917436482611430156381768659666164363161854706456715228285982327538908097138633444970118102215704293461716385770208459862337945038202161951635319624859341428156990148703749478179669872529756559757405337796492067657060601355998883112123562903577070073915868223652658714852158892251607748612651262022320189913675665764700751439088657372195097541094204567012783791183534211568880974173306088205264977107101328018676735783700649618154661415812188082281912053364963541509283827515626885298226978286610459081504918907757008712072215038326481967115824500200905673222460131452201110083755180801140448886925022125929302426639274512078724859601240036969176077497026999061398977436739752582811606930910166385916473498870720063838734978360837000882507978728137095000750764953049511655794381032578999057313853055950946718661170587952978707180678723521544531008751440623896257171191565272640860089056746214789952802154674601675528088755225012362200093593444566137288417121396975903716771970325709193096559313272379181752874233344860659156564186579659193986895483897422994825087889782020499972701051253252028351947344898026083032857251975070004609597914661206086634646692537922390142378582568388889555748741152656995053864082392709942027128349087926169567482687907337714654121033157497990102292973877472796531374447222494670944310373653657447662531974242219876663673980468951218121642433889360037210380165649681428203416019576889507186429206829826122837331950730748752263204016666994993607464092022972699379571392292194843353105679641537502184285142887677620191442600467906036430433626443853073566950666131506120807572114000534475497745092601705740756652169301477442957489220550775231803931324013869444019755498977430511154122954309975849045344817400639988767525654597303784175950390140584406121608234349856811989823536470205069570243177171963960079133213144274224227322207892204219058824341226114170161994242426771946320296189443945608317854130798633941343481457204952506593359964564575414655624192744667178986659235514026844044328986675688452674727358804241037543160299994357395253443956560022104138318108051562365475184420408996494053290518233969482504668814048237297896868085403619235798346860019190894630344573231846751909913357619157331267904410876827286578034031783693320002178763945826949431618671798326974770946292326711368244472271814612866905439997340710424378248892263067144510772058200282939632730270699618040984312134943940961988430233924115765837043342182587430787434865765947586005874580623418643194594111999703217542956020489078191299144147682365470460392995576737359337273880232490353653234970098069452483552963556251095931193070765147151571222661768201294816641444148662501557760852950032702027739674406838496013935248714858014890679950851641529773803240219011491689609331698007566839266990240898166282225355427358077731951658933569511198686479053047737650778905677370888016545217429229647980188264475934419983124852066687505183765400529255476334542820587859355033405284728020337720570378517400637343677494261657673017007921239170328246531875359448456522290700027115458398541368432014046454887429115237808171217467344830834186917084547685670039747381537856375821093820103272674996249590492815185060122500780185706485435281345101870508753256147247923687924983814056937468738217198173626290651305872238001386331038678860626045577637526417492073163562401942008860793801314207338568924151049817185328537141756800389787479051507668670343252863549002085899027414581979194822899072812224508989658133113502293344928417107137376451238129487215208086206093318245974805725186970662066714046272931931352161917574070257259471099680284543970394221458814568565165094007826633489829584187264197072096457590429323511943348633689172421205970570120930729688546394060593086507345355580233210748381710392948579358447862849207019468575924253290670483284668873381577980434224862930640421623365911939056731480104991858560905183049521870399232270804279815327114788964435981174670960311663328694073287618605066043936105213128052464067829850703587983237094804241492600151079917432087815177174413559803640179824033263672537452449120001287606692856379608889759173688094983997156978670132775060835909251130762077373272861668299151998140008632922465645112589000257711411090511400474064262783366111379810113414028200856384571568277051308921931956857009330960556568995863624539651164741897194615536251435338920914647989449208130206724324728363658835533131910315545259965229765466948827714039800187642379040802097414283545165274718689932579941194474514790110714307014706668761911325392256496696788868024908251899806772811224865139449889459027620540135211912007043266260981785525039293411873227360366278550660667286930755358560272049089071342952599603402416573111588293403695962914776080016686884442853742861151810856164159202182997393395799998415581906210155977389488771451562635010830258353400032585170430181425749107458667278863679923947831401356149744683395663397140058624848657990140324636460305641160906046419437302804592200891981491026977261709330470950474024227699265476624180527388613574779722037934906604018647994868458815946013352672023163599234781892007462545566940474507109895376513047389931188714160586618113517929136950235636477650538971813265512932248897972994157487494459948086066319762232676777050809267047606890033408943467043194099371807055720728520184332623306960642186116856073098789500898750171075044412269429211141639661763801437875521098039837561402184207645343766048297348049097218311310061557932105928212714657411489000914836847372038578154313553817678601353388649675401836252106124057221644561212816236500172736842930156265474357885102592870614292692971968534089070778809555669232284568134055192966184983013285159147724176037071096681580347280647467503366870546040699683762950676909069644526418494894114234674438274450046706798738060330976836167234590804113915124817155684000764966192707472825443997124847518195788688851551214219759171978892142712319793785480994089070348029415212313004606437236325186282554143312479062010287145726510620821174492955083528951383019998090792561010841377741185221487576813197224440230381747558568993388342948295363852923240372311018148261681531890000547836989580486628183760627511912342763156508564006295144417522523510838561260427198920519611584607006274035886925965173869208345250473124032031223436590857501665806471962611512381525397511854297188077191505801880504989141636357547235958458000691074179233629659837213996506011631773847211802464126107609819211293038761345869474831680334146311577579747538389516492750294374566645401153595681822020107030352010038235368759652855655636344077515174382599083732261088775783686360817766601596826104862060391820264221012506490234473143386128684287822431420532831207291353677172876582319984287404314798968105400716169935084825147891647358845260977286600497349535702769899764341929137640707548907196574503965740775455229332860679079113881558105862800590235338151664482560667636591443937823926721201759473616030907077215540996477832842479869290995205319081025202908027595392141615089933263466860377611693946708167545550047105443680954873235712766806757161021095057974914650463215535784480244730636496626052689550434949379520976328981586932766888251769388943279115498674340559064789057688000606561809446435967162524127116010778736597363581700111892392279539815874270114611537372294481770006361386123833401958375032026719704896528938208479034332581164729306097798347815731812731885712853149881835521320175232736849454268127471808398312285738854314662330199401860481235887921726587218889403577857536536200094663122639620027287862954964563998998612728805608288851016667966710422025566828110211906668857021383320446630200001179615946654766996214066173393353597380830022639707861066006550871999117693848025126104070798895193789774043831926679173482536677060456461496700331884777334061089849246381817505585143668288153490155092429147530807906919603797049849468919952753040650510618657976797089037779522733667455926216748298378936271031601600898988554188869680461202387038396145427005271048746615438972049199112423160064374598173001512799286267850222381397790332489062898522972831681764737028188379226709274498907690013947697268857515394848550967935249914495090112481937291466050044364819312038269170955740632215835681045970715693266981212830622271806998727222730289755954481465609086908040596597655025201916933476542388745106195768952980173337243442400543091956084818395997524062054554177005870446981087463699462167756109880652421729752955232559531530176892528937221046767112963687947207724314794731292853559806306389793901900341484958800604839470898414039220779134328612252551950774412214205262725944094938842792081462818328265752588972264702515762245637718655519805662585820316243365643068755263172482676235852973929965641429266961150933063367005907697742114386124924227478382234416929335365545131807746345653700867208801263244843243161145273789981714120303039684842337536574544006247236704220214816023581450869114933620466324674839058662248459581106431086419650966920668174870381811303882668569255899788766487694336835283064721510426778311350497564916957342430439763113805820124063671796688219089997912078914721084372891637261659088199321543801927826901961033147057982572794020461017237606132448181234338989063310149600412712504126382960315872879531234938536570124133552235618922588319607960650049062974908706009820973875508611806189011752847132844809294672506573048842928952141058147797714828956349894872153541686918810321193450659608194273522379243900752464247328112391188987689520535579033264784991608545190542527434819806164323315376686747735120425214592302913953381979597629647513232047894069002555047385852955026052232696745497103898502254190863601357780576676433610947336656623487912963887042201498040627644280844452163721984910333859213271472317878025514345613005813905088510468760391536359677425487677106624603134295670793993121387442066343276939665616322985984663415971165157837111212528664021237794031723341033953098784502054284989678770812387170926331630308744953132574550593383697652184671557437969644793458892481118210561951852297102958453757588265236720775802139782846267516656203428982461250051476541755897311437187466846668405377015348839920609424228649506085032548034571893854960117257237859384217490348055035804164340439541347613300360468004514961315541622614822216814631026844432358774887181502398732620504022160299555631139771105305492834306911218950936398531268037822870682623363493431844481307607495793327892583810147214662937640582663971145249565578284844460768834240788898442116422427332812179391841592483285637557425653291772032538745502749990086860380162116444116209063166446622627774958061444754807875627765616028704983050855081285181308941584846527483433360419749412675083211228023653628938288583735743606380632193209857923388352692958542534472472711988259795274867963092635958454347380495692688800842553465770755982939762375282925844467741757667336031605985622515666739334611687768847723808547966781216139139251702637320163648098110759372648179046446417790410163191603918760189911989062623429856909396691651111254685174294609385605260113142648231083312757619916797487610439931872231850693788551230611441554286612432018821514941707601731824180558314280947869295217986570686798320038614996034211510016580492325727896493121322573769375069176112011939695996967536179581671882592246078108729581915813077107825913687424912624111081854661553051121698597834903504183403493549849123498339476382846705164227681619231743428206765164562952306810132668733374919400066871637063436202794031757677177066541959769122977145613135917796349523540430259367216155903365340493596640353619496587188956514075339964337168675383971289926233148562447559971124322239475499377033820897815877553524236362487131504891165193438692945854962517203179891861950243457097441537219722619336044903143374853902692902981737850644177969090170024850976784946637090591000417805209686675317046034397294567087599718761651599341076080318968647794022827587734638060698525100892116283523011493255156760001025317356762289017030197772156375737758641611271438629521849871653315995517161114422366567116601522713918475102815597812182554776922201487795670794171187853650578925514566696110500427869982415908336539225514573072184290411808931707013863062478970808645984716320919032020006832767290117912428248736176592858164284726128962779006090987179050192880885153401321464908067302099298019008684587324184344443645484201962954111649148189271545721548326040988412881984852094787259302958597010568837958977252767428529508757811933695422498200331318441383159093448140538842441331154338720468806300465079131536040311163102587514806014512056941476731891875140348391458880190552987515144796176332342371364287360897065918169297129045535449619058740796798335913205000005968876960913130065041066590190552337493851204247576050328241204079644691302978233816717194420796599066789827281163218911990336465130373546331300123494761594074625218297240419920181907176633435888640042272205906761525488156252261357609003946949072614325997743133341532975014417116147750278651164494852226565125156905624125428812340295430208644601642796327308163145588502401912038653058006609527621833247979434010214781197156265642443636530888655571552667047319665490141310040756913539574873475734956495069591688949987989995663970317964297027105009472168952551803023495069532108525959890411157362020270775222847393783774227358360848628938628871860343948282225810887827887819604299069812249454410322777111226310815720916744914045522186731938623648379135428279325493753762618812854547954896924733700054674313890580354151568684973457789743777274834516542096397000189976323065044236038852115148364398466487370119061490918548069152337479649101704405081131533760677017760826959030579846711310836355263134254943745908234709866542513363200209389891492599424796043799719748509598329902019649000760017462054667183357679891659543009295447888586055144438592191739180742369814051530144489611431982285730048056483879002956324473007805710830893620331971507745091642609838539348583163773294076778969920954887858144936435167524806734437833920158207212259654091542831264470426752652508723779178386439219251863447067375054215610992749870651182834177555457453087095155915048011693343922001764078947397436466644863139583329641394319586421815395063963806213560627609762622435334029676561377197947918625284438759702500480380292589250320667373436714792826860502825690291647899642432144370801149790854547490009755366891937487162636939883183973819103114568883309518401567336524576247684191266734061668166783546807877087432425951729724806918022471326655371500033772357391326371191062590891054146619440189273358725112105331439657051541245798204047853742455175585164855175707067735920461283461857512957070007575594684523221305089192009018043036336574035857693110277192025661748537493492185436869970831785058029161191403375149559712457547347468626941219603289083552024221520905075493539867043886015874502352559317708708393550075396861965329740342368394612934509954808011492052187452516660624795870578967722208425120439211478107094882753180449657341020468379708542766700945546878533946796484087395784593793680760531740998909941298123227152328773586776569374956365556675461180562151419524078356883151683080254583869312890357895272045779180326087842771168743643936934645712862748530977322035120923504101556518727111039839865160458680249115644216751889985739054567825940925669747299520202576628870637757576932785373826001558283862539514775333922606674028932034731801204394887284566172241864049693893650726140607300711437035058009001137738875753247847335659223223782312649235318331508492057086294395215673278993246188916930990776023284733940406611148006182593473484327657828180024806703122520795241421136225625593577597551430483387435820328781512188473837032686399498561921553417669301881403617575106892659929649620812509160643068221451242348678744030800878425014527898845318891985209319333581018255081348092010568193140456911933875416525377495950409174408309830316940037272338926149154009764461673716488115830823325728204838930294892566067686360148005581064183724310935004381192352247078593881874526552749150529731362918598141731419208724288838090823721185563731631956388316517725323008935938314362817187370051727891510188456389090412609123427042855089428114383360646207168062778433698144000697133278383911136707604260646005597256353743341599548464570773294413528132448163337409874650853581741709606259445041375096114773358727536211405289450636981389351572845547532144974606925215741327684706745363978333691341081225619820463236572232060911450264829518593695091044537340391761888434603907487748460577244582685201553111343452270984387578172649752861762979507553778192012490978824268908763733595428345511088894927736210641428971853164546842488597544266249250740977030846981961811803155569432561133252327221019835146117625004138331821956920970278035367633211069225911146823073442125362342121782168739846733660247825445224722608826223164651591411164197695143168429368056416949370351345507141489239594527119997341236175997896255369172396140897060556912247316556232756889864180182796970222143754983905800155284164152481733439833868168858765275494129712322031790516152605468047232116015403986623655757020413604543778907404063765209071354831976090211022799763771377557097903777605830767739015685425438269387137549774585730137779870044143165708104730166185375327264689929199794547662857060032478113963743125114517264014277047707879993437229037732226398982966878359517779574278927975431574441102268337702523322411692447667138611225723109806909341518967593588021283845546208851168061291625369252940783487838101214875371849882785015570085292971891829869349357970154244679594706735362257312072813023770425556593457041484535304811967108526594232998255583890426036537982507952012777922979695163551395112298505403462066250933053352547643746337341140244382042427586340114930745441395513214710265307774965384663437409008076898478519549948773834601830291452798587133999993542015054502965497391602525871287452065645213283714327301681736740547753072160388380714219967519766867009114104154827991627111733689490104776786689855235323913585049538889951575884901665977046395792049959527550344351192673283255822967355921329723780854788635294916128204649797859378562330546365393888429485385020791283641531547149395747357195626967800955646445197934465504637271353105043368919794834291759449553433330106647611912577705741429015854775274931060676443925406685820055060369041163998272391441538695742739666779838693544435783663772784447535031345979653197440727239221057109703100367962486320687342608537614425103914247215497259861524280611096739014813845378541032442273803621713391548278856735085453200267680713024039605494676442697688122539337943245607818180236902523397338981695717126379511939566573405399118652786371758923926008443382745960357126364120371609078794530935976591724057401340260651873907453574774255843907504938843598070185932846937070676708261897213225245019452643834002553968885362526101049951730737276359269450659074452287565339913831706665820907367554457833397984791337401635059965292281462465277666302840616034990080122357049909033478436357934624255500974768639191337318927733781396605785160840428408023695893804054461298591836268974912318433948890071152764314724483018707716813927782861814894043429417210521143976621110052069765900695615183351199704204599975429032684500504672971006280436466311201206003427648618198246510744800086442685278221798514269820201995323299257590044031143938752484598187560413291574534055864814716958049539839028607331844137185827201195340369552263409738886081557324718211392022065776167143143832697131356175390673233621184630710087249286462318774656197333197748512919854379302390503069553085679022109343286604279562155118407631683843976748787319219068189089512305124015346381728083479750459235100686362144632805026651186672914082793698977142978860255444685509617080838117743791288071679004731067494485072542955160819916043505380674682474180541412087114177237218588756969542724577682711428328324571258878174908336865481376813242393524891676131861766459007206905772694949422762756612488984715425641217592499580342779825906699131086562004018114407270203338444801103431823947197923686317790665745045503273820387797211302726164828365655356431364212947294459679329756310422813749851256137699977200249614363392682869065689244789636560907965926127675133487261930326283775296853287977232375898893071429023660979449325078231332092620412154706358130543183075234071268983362326426430983824555442714962280921622388184311772600830239338060300541275091224950960566605088956062475099381076267443646464501928340124730908329667877887567994246482484435919700163529059123980075104898466851235700786774285523098204785980885959070323319227510413299795311795200050170960889683335516173762039078178394218827864389206075593754076608332185225175830067794704809276094039334638492316841869875208118614305575687040759613311172716309394160749002050398212699084535603867498624536277680284168022852340982694119318185831050202090621287770715543807008283172037264026951792870860347534488805229312813429206533746731120373316656709154176227336733789480714713770781616206328317298434755460097510659264186084097817262155400949385882123682049600194174089688494960802745366168149137008095042912271525378585946993717563093418025425848944560948932616247501871958749539668206490007467285306705830433450607010971737103887402490639735831212274069910037920464532404428977183372693828283933716694099963768960345938529390120768892310408954162011095648169669815809788578998708538942323834824577919696206192824757470241718890524552589503513015645216182439707249503362674833152940337561086222789148748270969756913998713763647698064991727119465589544964576409779311416345277992914509798738242731061981170692175094836885805595708838926153455570232412978245061461859415462591621911486823848005685413775654155545961299791997393616294077911814727094874697536828613371718787648123837681157004064803001964914530847044317349982923896469506555786644297675176962648410614628652358660973262484441606665831513239961791228406576599618863039285272909345227067275617777707432083066670138598838868583511597991598862692328002060667547927946027537576616149374098688618628683645851252777535075250347551083583512178673521390583735555458817164237908167870110524059600035116093807572109897496777379057688579291233464676376059596958943859195175317198520904958566687840239164784676267311628652027236561693449392487612712094649558192166061804080612542219236702203519720143277885436427684486463387789221193162338874312068879641991494996610970640046480491437805189100551719452346422272558154799030283076874539174013726811361056655749681671827645593185636003520611231593000844536988291136446949095055862319486801381990752731813823063793645521221581039932174211426216646343181901776717215941661899391761027430772226170512898687674210353222528022971464938664479661887849909349885567417561400770763741946676015551529523283956560226464316418958757106699355588437174114409310505756027889063791051468956446334814705372599421874637015393833362716937691722563817532053407890772210400500490890241293540974559680536495728218778982954078964266045323579270216048252513474609332931100502325298957700982000475565687947418523274109308206685903470344461481209973381504283463552863471458261552606272232460774992714269791619235840363905028048147510407732496022998868851036592398244290483652879072356795987688937784985407828763718468433850267617728980312525208505863167505674539628181892096801301591486504096529350654098660419191778154474985438267477522390085201050371832649771665130856901542984844613745493845280061872558212009885825173364472031334295419482304357945303594266539138663346233291217301233064441780840556362821832162475722311608126086011698238882828842825340003891105568376465537014699834807293470766502563152730939506719772006816355844621223665804271734952762709788070129365759309604660289201274397540285628348401342682831167597963178202316932778974577622469230400791964883293331806865011334621474355179308620427353012964632179830026055185123272052398958173648223423486302461547216444293161226298411218596472255524353839263546586370210069518978768006592959717958193732200938330777809057221174337749333557502463686984484105766421457446756001577638658267205094146127474956491962303245829905532737144000609460598634785097968766844240116501277964615908951331897881342030536049559725782381504143622938392095387585390416452917284605069180316556355365530122606158181146733415211894901296911795985874793742621079060942804202569455476456597290982530750043460520698257358594321517293059498694199587131193546331182926519124586721624705049676669610920420494663508898910522798224133447009087313671559982134776421998810839385806082039291147123654962080115078574369306749753471230182653600026957209432231981461543702335239276340106375897101245136266214781444722826700067624985995510049671510609622738180316904557593030064326454234894840537208855398297797169052661071187071532761328184263041287449982486656080796953241370394816378005522232745206390593200757424699087711814288509641630962830089313198285291249587039467987748285873433537765656369794635814654895284740947058397111024325262987285067546531116116312087182192187943204341316899230192425738394704371650389406436257527952591107982007602571506118112008278854685530827104724201443852019002033886023950508799296501876253341504094017130160665264950335063987383344804628472030602428882446256511825353228688064032780406971561386512280673181314899994484834729505976089392655101890756653300302663009179003052653961915136200075403408678750843466989791858504333636755875856312538247015581686891873602962677703032637392534942481534114304890616142193994552710137995723276522696606472887376329487560095380056842117830309339654266664427051703495038492955136214872412017553601810246367263744936804345469659591456151998795813209971083185009131550353684680540615906230856255161715176151211221770946339501393898816899747072982701932867829489446496190138659535862455166814862348190424330002736050392089411287783683112852910859504736020672758480181222274432542709381217973034191095767030274905876284263626074976001743050257889583932534374881043477867377744022314978246620407209705124536643402610139245441857396712268156038712596019734730494737667347597835221726157898242822682445784020267297158730720672056158557510567307799115248896684925886663472114796379069970154614066067390945350116437622849989402179053708735979650657461343838636499855301885184351983748464482133088830659168886132548852882595297630797910387067969477603926622258403225112330377595572790734841033822190019275829467755322010364520529404005462918971464034209601559168012826375855716161088755201728587789349425047738954433029057199474524033761431147871251642538297004128489740601206072078303461846488072511166918878623178100151045408683362334926478712005462074167851656196902589551293378351022018173772501775360424221576235714105066997253661106500275202322187199757821667789293247397192090769409503684806454175251768610765263891964292419053379920118245243224061394888579062893320679101876387633614681096991575888279534323238915126134371574465296516292893019510232440546490880584922340139991787416586787300133378509589986686646271172845846556493150202527062877648984058777843124430865525373154467221279107165620872644344093227309222455179205971375177655096677996157808272532489594819916587563724375997632737288790951053525587136702960443587557642537150972690400323413470834217716668521007733380419013676757523698083888568292735585053320714645792041408740309831414040711051535022222210969089767967801843131595692867762021733309831266735748568911466074161265204789201743936618036547741122710541622286004596397096705363102583047085668639904077154141741411207375242567646847337066904746227375292444429937949510039443798696962130768485330860440996890496963838623288926420987760347919790306379389247127202279709300740809435344425358106350264381189118946381228680571928113293744666599829612850644910197282868593653827151332119460998712856438675877834275981714197346125204606991816378024843038993782801289560544500910533716934798512666677913293309022046403918461164820810297555247415396831726472209494220904833724189487315298751975413830366555429632927539333852420860127349166781797084732570755073418442285889768070739469442273188918412790232045554338708321686589108073924727559344337668993375891548053031195840009774063145141577309042792417548765563720599441467203481259467672963673312093205381914610817353305761734406212868347699211334543314857024786460507071474765783146480626140177540588633018593815093815690785113408836885683963588297803707351262451180849570514797022005137280805191424607732525890692972172387200337562245867947759568278905197750774252837734796558210381982544635132401227797798211750021706016525772196202300078347397691495221648991018622543550728066065641270428690765567345978989931622454534075695676378579517815687814619706034407306643495087045491847465851945795408372941456675581887857338817996492891527811026391976627920565620475709068159825479564356117213305926415223585041257672606537925084103885850683060948036505310017876321539014623682563675728092777445793859926179978946888406287255488546791404928382136028989568581358708886090002061294665828326651579025486989388520696640539631923918252677157575717962981060180161860611553895608236156695159798601044734870257851349735756901141406106873507116508786007090235675399134273472994182694894475936620699823030518982277919004428163761167488216630317208198881700805580955584675694155697773184223082738877095011497722632586796707235032920948036354495962092091358602156596070918537883780585305266584839903297502253746756518572121332616137960106203748184943894816279415603797349528101066104766048530283500035207094370253283655279199429181611978997646446169021015650856947158513994829261191137866748245023280212689119750380854680337952236444697397664857024609779130815002315161228429438078555343640088808742681540211426820662440694392513091505155905684128673876733250147956402905518334646057535001276829638058403915795123855958400193556212511683563751021730862153997994336860280853387182237119773198668978820003721142494227698342653278595510612565962836817044049290889562439909604027287616008355978098686992987463945486266762665716471164665614102029376179667693319325681441377729213718735891582775514606911162809016084788296570333817932209576852047140961534943291932098369440150690556705118269561347044543395983371691018795066344841424304754037380610044702593676288176867340202095557897683657132566896087403101493665749457577446507991837153756068817914990445012519030067988155951323014396325232814693518909267098762601678850750295107527464488486092346403552251130982311208930508799501027372600122200693089153029733002497364052653405195497342248161069557212295316044208189680195025650751482996651095078592429059918703214908160528892676130375958090332389729473643462498862228687534662875954499628216889955116598228053650400745864272581259955903302995417642020850163211576190557435705379081152013408603977947734980338875714485402526884505786816352563717243148923735296020795073589259010640264511500147051700698329525141002447626880698602077566869744979911972877464446139166128355437915144996584068059787891540599746318863297150015656545670193734818498625750410297925446141726000691917252087428598200944723024797800082246603734475666031480466271020434629416233621446512396986890443902470794644442494917756226453581983342326487870105698591265318338590214063611122825011562031451579661563537987361967182730209605909485648991443182489065139155841917038641441353644462903225645561528052154333672037872920730472223888985158344282559997200930526825846430373182495874890026748214172740074412719825648630238623500484213699124872747270079843227858683335120202690444350216627752086938552407743248675681637019847084911598408450840578014137704986926250836633670764448806514261485195708150088000628953971478292686160432431518297919796477972029048731656567714368368076715056051435863748344598257409776015780518890836158621827495960027095171910433408792964303176519771163309367535401964074421277314011778152986741665033316267861030298419525135442106423020121670337294370086177187767652224808061158922360251480674470869844759470993346482020259681705629195841316265071845125920824093608851205208979682695882660828622169057250590409888898360431746307395070168369204109290532210122248363760505961391965621707057223324781182884364294317257714956656122504949714018930768139238470393946504868744036824373341965725846028248953792618149473550930085218495084388783180404290894891972190694643629415724691735208735221904772652440214508400249810938825028434884846025716022801755505865018423644685529085179693818058975933985889288261559406278002427670760057583768817961173843038798803310434721621466202711555460014999169203841712117423612873595378184917523451326811358043467146172604659469189793660536807548850804162747973789434209820571828814377550561202733969864597821379544606574252659177812820443261785304067960159479378850386970278954011123069461093280507492858999251805362434910869863646807965780747481562782122404399857181583144699422822279762396977023764014699491967622217752796530333232779276763885261130682725121672005085423980027550298166035777597472217928306387068221185920769242260672750912790073243237966571582631453035020768798850332824608376768907306161258047014217895456673569648280407438390830087879595203706146368544286772908511362698225379423802156379207947186980978565105977226807185059104769006091019572569295447463492789060297017006230420191120386316561231370798743827385322251068691137504367491878914420249647192542491064857032625435332628832040538825602563198372630709310056016725811177811439167541580834444945182651942634598864595473404281829468836707354944676607987329527751311792363019056107870659569297429497371973369302480185000816912548911735572941870999854112896436188119802227235622748140047142646255852542892023439058382918120805861787958202965759315416810606878916839333299990642238775301169685125412719311176744046661296669194980472608016833947338793794851746661733313405239030846289108824131635296391188105600111205513713848591099108454267255917328825690167392961011241988015255862070457212729066249990096117798146627946973173320864961209601434252251066481748173308701826428316414413236625643271122103749334392087744626624130389121181162465904729378813449107920508266896509121427671933971733364157277515424741228455560215737779641366862351187769808702298822371576665246802502593453978735067207056343322690615672836224898275074841187358759370154708923944364353992421693051388689025445754149018620707520583916546893699855879010519943939342360538686176066248952267650803634297067841514292672258236825357201361972436187469467339226741592701291907081098966482848271832841328976879869866878830675789462361573687108364344913132084861757036469158964966067500700683988107529673910121250782057610149069979487976358839934069551246008703981539803626466607269748369812262220414647594528508555638552626369673262794168009690690945756737176954179433439528851784486983684350401119773448320365688202612798109855634129673548216489225790489957780303744145902285574156805103429500263499702814410812757068140831011978977717069342969362604643835168625351870915925231966722936291488858818200693920920124489980337803257154666296275193536331560406710953060106606482432504819629526879768067505374682366489359300090298137344459387370848423205468571398412201446154340113281740379811571425821344503189436798021486553172355815669157243242612297885988276736693089075790004102871528296379461714014712801166287422403897839780977940787118122725325489744982709102993732993796383738711924097465414813350739370917476591353428748610120520159716560894556422904873787403770109158941517615777784981069597140390967298544209048798104110276200293271745996084289433646810379235374966885555772306269688826439757615707106181779577359585151825060008958630755134447120419202412074562331660164003117848766365761655951802959279556177085816424291563973962003619582846758631860285943286610452132556397095838930951987870698172487614623494063244208947085044384333787584288536954474154386819142527205871196732446824596490216410361532842373958021099390227047660114484808212030223606949425118946836759645880544955079908143234185013249971662901705616154417282034956749401453817558846587583304211448573173615524179796767361728575528175207222066579065086509562615052970352441309211481401096244187777856830334630518034639812929520745576725730298387904859236986233968283545995331702557083653424796106742394006626801135694447962874183766501062142488539763546399265658414718295200524588685554323869418040929622855405799526175007742801616024783464172572955564837217056446413578077870891014160710483800002958778936517828071264105207288437015055536767001047899884675327808058487911869554973667139648766301901495814926142285659760331701982974201559492469239772778837382864355852417672320132799949390104035836686412830585758967782714843166592887822798466160084436456783200501311654677469993022338782854147037884917835587649029183957784484157193785399149655974369299166922048141933502773297996456406673179416195205441684933849333051314037870525566510988123231385817812997000066022040930701326276130801111058783044618078987090610694117640810756199855557393260113213590462142040017805309964796922570977706600856941866556402027659323964530071762583450599595500748825966280981969567663652793475473828292116870374077873194012082770694214992724285937624017249827049141417951238790236282093398680823161528456980245531918080062655263235676665827631708706554076916470271236423229857953481574319639375727012231462239386138282477712716842666543744059219304730582465665538499017463666372454110917155153486745353722399031061460236415124106483193670105437840785043550878228750184052468798807808762417929086432482583376225564073420627097137277112890938312313655877344127141081070211865788441043825663004798930022659237397660618147839948162179852917939424886739366531006466079648176602321416994863265110264965006048650384108794127110062362173799883157471431288239210957436829193519354348484475225695608935281045063981400425799053579211295606572401736803155193198667091793094245034314848614572416525578153929570249267739266844219727160384812770733314010609926322185447967099344984892247264422273774561904215840278995392042486865005142383790055783883486110672548093457833098127927475727923347882144878975035206567478852062996744686527181344846287859503153619939689702481340395738480740529146648847855769445393925243073658281478098628075057390189088409389546117667685013099434745171353190687179868606364252911044563235494153290960244640638354358854345897223135498948819164831609337033623337909238163737913208435273883744065971073242505943970189320657684393421424563962436138896658380726090397304344821579735049279778029395134023854269598940970781701516498405268226078848678566154841725214725089476804657833463587490191658431023824468911026459613167000896468589684660572061086359719447519721076087286465556520928714285844577888628483967868455471599317820930718044900401192628127691538775907710599173816939118399873461870517293285931484491885875459226897804580770681721049234507862570566209263114777989916015619884049175572468216993076586172871727347169494736813793299827549477854796052911559447540488214761457060582623859378280628043892346538619148798131190073508595153810628960476816149842476647212825581703700547441048211941256908559120361778465198786068677999447460769955929603773759295891577949547670516890791492206224863423426664372813799903140221142452711193407174348208351264201462511085968878638144478293643059328336920144540521025508613421158409994547525703010681213635898980570072346923876674649168937954589254585116300075935591205221689896014079080136802655441528244988319461929095394040248713769519147767904352245240761401185276273385862508418102559649941011862277546455319719073069581914797527896699249120133607604143873803126503469411639701801501238769715589393073845124016684964471363347931660242117411824710190266241307691978340120493397332799890402056850971674287229446778430181508083269091068332808294289835061209345961974458629463289518583697314306356640335489201832517844969351807206127940882090448316166401160782906808311984483037948729851376373766282478886634836837127441664649960291192863532719254211423745459862186294479444988554536292007066399691907792556421341949800651037919652673661377169147459788726759735884397369649359776617347120095458381438157359283437954273605240146634773888029311886093325451264155129328273388082276191223596203658746839408759003252473720524896497743111456608271519363751099822045592943312804369864244047422923627119137180159564673852429054910902126204498995212464572682986148862596067937118702413897208688066381928596869292593269688344727030748535474268701372231996260353669059430486063378541810670995031301097309035295787513335237669474522489212107722796502680348699572049354165675937870002644432277628909935638498394040660229650309814674195606976639807787020652910331201034867654707361834850827984006709128403738725834481737132546267922489568888301779791098752893374269260634790236274080320435221762235941037919352080969609125830661976803383599443023805473866404589677535728498014995294710567556091972332972400681032289133132601486005566624498657833346902235863963364909094132253644810247890734436274991030680291926774142713357626816380836075024170422557591907420946897463418282316336831385307638330523032617602022454522954482625115393156432386729957150534828293929455247951870945586989652489378169632060633145204976127069197245359763589778878853524784734866605325794860033232441546397646174174194461503305129326862445801783127887758659710399819962676994818026761316867486377766958113475987150419440557306603652973841104948516706320593844466279085219533474664591163987255132811222432427444417982282507839055066935186879888552366967285255127079827129077827332454425085256422886297419254036474277585989028825768483704867488576438358338411158430146143975083468645426257412645593011903249641687723797608941296122432786423151883358216849503884236279160536865793269803581082483862154602068605737427928697059165713991401935350295215369268606339591394038739758671517887913374275607171419304597549745754669730337654790585885139680646885418565575776986898808303719013675385129104217544088990538598701428213263890443283375470705746675164575774535359306055519472046618854787422136499890172534078108059703440492889217562595718386199305370049623029976656828763107175725665450630481481218470475889318193536865542774638648407844035617374260275315399267493012644067134463047252057985926674279722955026697488105989202529202108296898403096144735463470418168377688362430151160314190850337233239951083889963501820569499509866620309714184031601976353762712297401337653166242023178760959414631408387975588512784523285514995765661210245627425849353763826589511450935459622391024996382004699636334236824419424215809533200466259845065982981436688889523700322319899465381198569422779200391899728001881995184435285028506016060857432010228960489313738315561825037837985413021762442384340856677437074549756974042783056365583731479715415515851755244519059031364055969724823546900894368631529241802815155335999137582294457848079221543585996513487387358726061926775621384599740903815072483287649353487628043176359026149285169405931611836815925206111681372054787988022539628413464650756474590538242258881799252843178883305352973567004815379036833128756290528945695956534957841654412782187722229246268106093072640517380532394365812809031759775589165758537748470965460681958921043708302494568419457190158681514211085104435645789561459632530876612106475569669455121073722662121095812218817359035494016855232943143933709503121655023447958070473274809671987356094157215256833444094200832668473562925788939083757949771743428393021581190431594258831804160655808969911288476469553918563173141445182148235662191412165859612798907076826141012652754874041807427466195733713837333307842235563052566083221190731779026361962672065104037687427796707445340524216687296163545074230318254930031412046438201350631177689217597857908617378876800724059234140528014195160848801464172392443952167269377578919463789449801330530476013738215563209389360697869262897887056837771824867978484381595197053958728024966232598036968344819864457111713914661748119254414532735715718694660842494325904022670058025743842148575665871449766463351468706267018950990262527383953600440229105172117658861667095448450244940556254534754011582971351638151409720641498468047503802247396100569792496155644165154177274778631936946021962804269853935701927250187357632381670413402676857211859233519998035812129026587001630986328485674923849974211267549297979372797997182991675729314926433307678087314584625553586214967048824539600542622332833067526728009949808533867785754206138500815851482349818746480997315313889484202567025518840012693323257596827760340257374638713976127375175356084628469499784926028386431199353608637140132261287287923977763833484159957979076352194447875051527658191026804389666448483850583708994926954793831511003155167249652753063863157196092458366628576489969378858876635494906479696698658398256320367154565012919051734608575638862880350764869343380855238831549462118499328933866755164178942844849945441059072184965154738901356508788192049468802241427540324842316359364953936194037345552176006219885896871580762186507755223408712349757109100859939744384162078417873037683169442493571388252866200361382573450051869483363439141655129843500255508135994938857489417077750277598688638908485892478228997197086110054970972489540864773479358929501292327573875012984024372776044669112322461307563896210652198572413123998618315024983642809215657048785440238677774555327780324258982554034279337297368702278567392977018508980851145338948892306963123197536898875554165603473256234488408076634469463098885829250625744167373834629962783226796693962028931534365321891324517799876459101454072386611451622994487085506027301224760899730939967586777673308377365987089962930899132257738947298190639862555461669575904549500814186674825914131661881746934378695145687318788861530995632022621347488968749279658828749702629768789577500504851616073475277014269678225488201001660093533315972647563982170525555937908593074790902690120938695466266315632406650833498589433923838554764081021571978557199700925046605059875460019810281339402276036997664123748336839119193976148682923733165089265119963360638138416657918779743898523884904678466412701348582661687816277595677390310022080216532648350423411852257876533827538171365245896284335267495098526726982699807379643909778894233374829498630037251878691530116841199988901685998728275725541525906678538985510353138898019625405650150931510749309506718090362908336451063146024634272339784654730528649279104760652053972268552708132210451228762463827120072748078764506120792589308376866524594064553410448991358399032438877554095418727578369598991380230060140906120852593150060606221916395514120911048011094506233883793367726395518329947727879436401982398232408824140148401386701094799822071718256766241112317283986594217148173388123321057924130565122337812001802429759781229966982061329631476532984049846659056594694219216713617462725244968309829356114533019382168723895469507010331599885545831173217942511206029079267275926398220054083119532855808452177983335736234720782902275325492087985332578870303233095229605553282619330320009181921675855275408260520900665958012043634313096126684777520109443757552502512877737466336106984043237925980503439448447652617783413354954680599463150656721487456291019711414408815693391208227263209522914367012705229048564429528013451042006257088345364128593109484808262997438557792580578572741873556566961346306920958826803771288886139272442646728938639557443603199492586801973639086793970669829517009497987123713868786571528068282994577193251209785941394651072378369471628664194505214093519131874639764830706098606857957473718183758584678839802655358103612376176831831653590114848398633854805790117756814835137444202312065797788360072212426805615467702788014972517265070686183822389794870938319647242982438636826482606173451110567881267131411683091907443214707030934629690027392941063205889732138108387553412512436549349860090719528105039696781577630340426073068512202050893947652159187710347846258913198405122907477053195272667095155465626041993308353604151208955908740530148418111356781301336898543126226738885013798566111512216127537158748065267510369835324413287368510406102168571178681376919167412953861295327135974959019569918829484182606014968710755461248657722836048585547075130862789781272498598946954670417783209232926158211086778664311825864233823375875011266509411735236154947943539652852451510570390704491337085879120854881710985646766592953305925068122486575643682868083736059783056756597050349513249379384292898107357400950079794743923166017505811896109971728436589121840761745231298828375620593532778178554169481128451668134911983873014448132350809720846098324799604263705767388686899019622398473601826671121126678367183312892453460249455893156731270479452018673650959617822846039305017206754328697999698698601576720033722799751497354804517963368085710720412235533360843895529198037368149364992550115046812050176383439168912241352726511452462207057364069819844547980831894312940960895947346375507454966139618999097249423504387473504940589439830172768091906838718521388100167199717700001045844192400139830530294990054561148539907282456935221485021745042143063405816647131006198766927420999971300704593895296779523572810483063344357197458741342363398177661129000917845581324351474594760082242770931632263550642063271448587794529985415918244040567068982774578021164336727334991380449499746465759300693706777575399147569376891931387613536515263292652235010733931954173288839486693384911901245671511486444107770411752373170125746474346424539300158781571408966293450551926831491690147895909578465804687291449702523080092345066734474892367334872217147675439236157065481441724424719274665198584944763980438289546920812074757966890805272682925207342041910003526781084298083552472356803587517896793553720657636086130653911483521505622923896307155827404153824085265565760339384029522729124697777829977021274704671257841509481797962833655623909161386366644564235602633437510889352539466574276911188387497587190907409896079300005438253339653748364604576195215203457709613828603177274277990218485371511682770262852931192427805028824034528624151433285859520637707063331560990678593225017804836455904973608468986258350377402466900681277324078467122337372202200872549954552699527844299183216257373722037693203438831562996818622825558861721456525420250598336881890880505483466605345050294743108054890498295535219542609604895654809088317442568368601526275783959961397452699667943703049310472356509214993850840773596130009001077438898352381831131518346937022732356973483865963419281397497387417818648405010134103486441798999499701812098429372860104865839754645602405352133926977230586765987335365137091596015039663883481171952366665731177281905679506923976870029034132444190935902490478625575553398266124605546362647373437745056754682742384879415829615707791335613077312766495531199740897800237716836078854327772783854561058551824976699086127651236123538280225155782322639846620576545055813373595923212837579559571692438438168505215777467806090348022482731973083550955083406682144483584535064149464026081142670924055396925752043009814151892109892947480028267878209612209320094558325003384360755501595036859650244395319126149946007878953077209027457108885364397182179931755961721133899675007515567389988064267661801649891445299645919946679817925466606877893487224393508381007684881464717420131861231162767814507645689809906946906885613255597341245554173749965919902123246824326073952655245765176034355633763997510659208334475505598283588642908492330786877780632890559477428429247361132194087308266532461944375177201915260292900109674139575863087039874186626480080434713117091060511374762282527035800755534354151490873427394084197235762234943773067776306274982540425375776477332934224964866273695522330665198662895284948383082219402858761982956555537468895262517962350246375488377267223109025060621424225037829071476873499723873126029226712660363429101437462464551280493582800274500827046147763762480486996275317642976861855631035596981546211153882273500886136065525941510685209909165751878529115970457501058605810384283184752650544593796612157085131487409715912577656406217918415875821298822951022728891297784381281677001169061201214502576625223365371943432746679256764528541599980162270820131009991202462606745319892286229602957166904088891566967213589376929276641359733187240359365305820894751033838169431282878003290655253355310011618015895456580681419879069272009192804709279508442951685037326983494325114452744363385833870004756659861037414056529367087377451297537304725038777690833243437996251087891199287187510345717654305583087792000426007943595895493513913055773445718664083787885547932994352425503076386881520373198539550260166825136054226392884936784750054841231358946688482011207853607409793094661955417632378453171409686173488370278070594563225529721256829215388615529079934343977973458596848081818438895336591081946271198314338087134945297191059020403729252417303049767296823462120549519146763827744762697447986025094535238258583615087856550105510956360140254233391909449564470056967219975755568242981572312871810196100981369812022964127841012070610685860884818968928068724333882309729024211751881011581350463878050003589676669618878877741811025736710886661500407677761689562379145300660683616963682666221556218648108913814163247676576353337685274500215198121070692240563501828941167234691634955730555560329357952768634002606784677552753116361817248867144654112278705889337751519272901261631056060760933290156905404811085621336206758556284651892922881895872353546281652923171140878338278653385110567282554994450735214843586553636644343929937683959407030583235963708149403153434559807903735513401920286452004934604860193669886481850180246418806575441908461097471027245973520593033371378634061308582500040507391953176731764286764141768786006873849749675488565055611556573453536860156454656765732863315027754873729785322991996346504345817696561114299728417748639528470489424229856880035123976330166975159338198627264588966224207822947908074950894373223154149076046657709372196990563509219814972418087696979495505059456850286278598954273817547611267091737319395451783553593557062767103658162190366075621820385405838091819712153565355264607430984083918307285557116165155194568120123621089362372930863714974772872043048862497322321490341703663096049279224449552156986382365719243495375425811297034306299090432344297493850127060983367544703179399235020775070751044644020845739605575578920193086754173923063433996310952980132160200998956382315383237691283572972287471017306387869391995379932938993866762153280769981841741480819234337495638960063434529202236833385349401896167759578935117441412145622206450394436126770981972139841968618058587404124992620093317973381508761702982616759620428415946961004943022024843517611936177834640591463090707470495958295666021370511022109660048265683869142691470190566585107907301056029690840350701561723383356009333382824013487577415063583198455581404516900176888032121640796627842988390860096731199519175771848141899025993617092207403336724564261750258429574131014056442171724414147253422666292549894745584232008844261338130073735239463983690691730475789814597154635302461673187480242011465740801193558490734714664768494137795269226279102230806022995234700568339979834404195007623128000410268915260576117853280498836713671418467661700168881478173982005897597780643183165648828927695269171071048163796469751870387203785718498002648676782134874943882621395231812527024960088901331106458117402762368740530673926758869347201215814682830858696906100023190046888788072244185759582570849345618281353840577473339351566353267561194107129382216074660873578691841017822629920728980218012598822815613360564031591297957076167693668436822321132801262616329178749629091316355964738925483137116593710238367670272361245419101507036949120456745207278695367618975346908015533012082961918100891061118704755580463703209504308378932559016946717771437595326379696508830395709362926223836013059845439098668121844391940565760019808605374566493099068513841234891457030357115980358797519424125625084917376664569227353503286718768672805524123853499624992218285145207823897511712601019289188728084100900857310823596334500113584297472490857563870640032383743638537880847059180586313701376018787609733649235861681812996457753160533790345575767333953576007602614269754345904216075634509430076943296137355036138007444911746099052110376318455010082027368416821259474800913565750736919618989083635641291224884302306148220523898713520704442266449475609754136411803108336639728180482088878211896009220589248567185085053252318345258319839729632421596425454825429760165408880271669748603442294792980866702703599153649865693301377330283504256807093816629872214666297238092895495026750122129657004560280266365964588616497884121807899750069337544469254669458686674030398689793221560484911919987489042402900887261160654368092608937288380660574306601889176962789124305350614164128743686974845573288645755286391928711081123678172026141173276003149035222172589230115277381264374731743055771989711723561175391661158716722218559426419902874216262941569170817973255783914277744185936909731702132669296491417942125048338980192944719944766639616368542684775273301034485681655002825947763311212358952944817604905372270748683907130226355774193680982803370530634577006464931297806977167755911718100629466791495436545826910351618709885875753581665847026835438737986498927304841330593019279861485810292922968462425184602772479357160893387091151941055780555089510562283646088466556410518356037982173101612567250684072607976479317382370817450123545148823253816307497684781028175926172818831071748399921194799192053641006022794440554712114324389381612594664412791394255080661851735959025003652926071346737795207662687775975499870563319096547709319098243857170567119606188705120854951051362797520733860628129213751320571568355536450944417728121990330855227926912502155464953034000693969758721194493182853187315578945016714718615265783787473089329735453553031413251281860256248185161378726080260070101253365928016913572391229720365989730632383744178992961573436688461538608499930771850761588216749741712410286663623632173758873311260391383199061601341627189666344155771589741789380447574423304836984448246038559714717258519684999933641904580335266029161238515360639711138532619285355532624291124758209732639287608299583675203321055960700339942035870518589089435391597810434726279777192124039681340719398472056190787188902452897876690006212282775048740263070097519916066944676192556928350617646665406193581987482213339671271629259855856060850166851788249567746107437412408307467515462717203083240413490820983873795274373956584580270767609005855714338269986665269687589742786251071704460953446958339286895350747012337120132173976028749587664326896357753896519769736847637258497167124555732669354566499094475747537654569839141707218553143481385220790568457297435130418820141108574057097526127988880525787786714159490499113705111902209471909099246470373223986841013853556321050029942600257217796445776776658978287402017490396763299822094430539188770884262213452285096956281964827536402156963981386991099076830236763360567098020195236592064545286560217262125796024377840122460605472427600157443682673046793347195820989520305073031282237721000218311175464454602537387106553445636580580504796136163177675480026962948417893729971786409298766282644082169794868291424016453152564384949250250840663901327868889187519731288978850816594074011667109942167759171436522787961941909608733273277618056059417820110443906071296053374944333235064622484761626499225351821200623615395190739539593571605108052616461171249058714792478645348705214416990333680103355370827915153273236894666149661828442472263862815282931655773918466245579335382726353628755188639741001638126497966242869322302863798147602092503482838280457585082497466229624145960354520839070851738344773973605846961890544383616270440888889548343158772732382944317129706665418815778083413640615047628894876875229169167260500576325202560565098467843223084483075227859588020583268105305120616389473461742999973194170290118694898469020515076236013292397139390319730964694725188059981058745017657610508979049934320950754742710056073747854618291929378560423939437256820934047783823124421890922016589840423692842619028181603987800434593669852818333864770235403008605998739271716432296186949126823983730664493109709800447024996142776129576522375133100302489569930321612574272202569937253358770687264006530874077883998401470146410284579236438383398397480445836724502490621035343477886551866481138336253763116794948825753140003824775930716820754517315560170737585038957967590908828877675831296583914912116056686762707271815507820333755205404102255430761303948389216219476553131593269898304383986155271674205957804980109585659044353567790088444869035745933497742313257733663176332451058678120891201672182168409014915272799367674643294114735138837072094207083634860230227793870703728936412545048221925916347563281010849283770362348173258551875077154383106636238461108484265179229084788617971795590817127864165418134242227625688428969517054330524628064650046719547818541911197823093186764105659424599004291729946237655941304533520373912430693988248257690570053429111486791980332071226993046320178950740620243126893850098483252206727551003303232534399035924542260113648387940222821692648793771926247133836368126086269214591802039460413838834860555201318498525419352971056424908409585436790841986494622561584952438761582763934172626194712084799324879183963725599906543812347479204845825908632845324963428029639558561394859375871451253898375304543030260189546166031558608720917764307332661620695069967820203901883356448352679175691298585573628150417499680347575483327141636101184717308379683751794792552029414261083196817414082344803940085674591761429151688774417846085537200012296561614123664296307749271855797870430110969487675015282820286209420290402903572192190737252775703130600192895088883152726488276638063182247865305671432226338795119279627191733018931796501818365198397800107308235544424593805513131566292193593984797210765122781128332683351378809091735089340507587554986948910856223367147901099028346752508687216016734936383243580569919232767702157313055453469751745952300304867594965977352719931478706417984143569922645989173542039854915637070001705534803034170436163312351069931423648763058343273538080759007503565451975025484611255743236519536318612870347549085296347916852380368871665899268685219195269592649098247117633570201695159265917962840428978247813643094283079495675924641835473267873795198367661691974365691047403429721169140190212836659539029408433610980060105329765310159517502628997414860955861090472458400927549176105763607425842581811261975268731163485594707814333632902113340930545195037254039915939109978774969987508995683881239374340006684391554782958165153346810348854694678542150107657306260146526112862688975998432227300190910113867792107634237082110902764864876726231503271641626066831553979899157044171356888020508277045348084821181876878687885901420027526926080565733151630841931226481861143522602294152449144563651599679177357265993480517048950679825600577766021277490382682895848575236504634755661250158751282368605298712645217222122800356692658835886652921791012640840370864211274576326532567444798466600977172071302152148394577536147029924976614132488739505565575117999469220135266104427977499894243401310567310560717303253316560980091884750011148920164614899590198260269499928677749148764832932354796001339002472414451929726338015018426296209031945841613498833216375667907566723259502359614305531749250861374602307667959504783879465736376393344281636253320146388712476595516333624629442912145596267048288402141249774926560244118674257654868138830865896324252947746140767964545685565336894068237933784281543878621750328867285637465856620384821228739460116220358366825378631338612283262476448137552600445254294742910397917331088401049430757110918476978398235439905065187450775201526038921284349791835775774403060866648822061255646022572924486837373743989880587989686408764921192007677837758882084534026336063394675441471221630265670909424741204732740320089131200371746509597707322862968157584911351524781333852674355945143032696300759845020352331653619157289017559709811524800405033011044261316002019728891578220036747791357441019598918647875562656130852310744465011947885961949066295753866158352018558614501659728971473315976300143467749305206333346588747040049633183361287824497648970938411639035775746786088439682119989051664066080490747848022930496125426299903755750977097587500821824627770215067022246570398371303178724317799470037370573203264886656867200829927528691474938230954282613501431667130388495902665685524855154737902738611600114634146479434793968893665652035135653055929981082759015166560152464767629537731331509777808062692553991545897473514344208525809739782185327139127386862669028150441304977010185166653399686751567723899396657338889655276429891858770511410675954690988520872405269760380541068516800774940370620073958274028561900212633516389548090495146940057363242286876077774831583069326083294861211759745149030541130005763240020568926383160498605826231554074715361884635519416849038293717721385634203931544147219779436979092443501461456915338828471337153602850173445802129720972663602147176407405258013006100115258426320371426213516480948521425659776776845506958002491910738085844018205315890885849019877842612332952775224513884460471781608132908549176622196058554315111066392959329328932550532207750411971595461920848584826439907039964312610332264475331998052791985369562731449794676124076080830485097346241097260070103344483087895856280698484970173201246446397904400441417621979994348092433239506740524670761774364511735743125366162182140172543389900719535199366651131443289547003913820636056510952194010779442413604393036023223624506548027556347152512903715426642371000031817258828241453233898033031766045502299376804098296523886688254156016785055285943871527640504094645308390942391701456267634095426900470562954749736768604742803228481914634956248733888858215451849401333134630997916271992838122539545419122738920475414835285804422473130109429373689998337483843399909549048257887389948417355669600450227293599434349568080420755383771325643215674523779163281164583983700570722388915034882197689888295591213209061849949830616390741296690661589896803899933739219627031274645024040437653310030808175816232486102573436310538478339853495096814126951807172416804308521086884222455184266536776393941154395415764135217649422100555482371001004471467499265416081999836194677510877346748665236187168139624138041465506908301868736157656003818500243802667311677319029887598956911413146752722849129900286927341964886857631322819173328533307533256525494964080426075763420903777211140344426239425545288503166573046329087287210100624297611094082511243766712750989917248993949158330250660792139557516338956329088528836298158302755821170727775672790603012903732505857885453279573341263490476083317396677211411502418625228437729859556444173854066285536881413964655009381395701720783287282284755602166241477036008780059148478873143533247392935175742419600505966761278261158568977205594837078639495239757934413183744222678666166685818617021819220388683917753558424418506985675207963347122834037028626915954554266839025378961874667461671749447421652827037770402343857428955250065314535250928176069963229035505006150676622810294018471878668754070004411179058879250163217791851943872361428935858074264079898902241159221765159866169574422119992394378203589712662899954363652130183767500610873678906805670972529870368870377296375356354499174518418474670714741147067885122089799459430989538664295653358572991952960968479241337723902849916932942959407298548872725306971049384149165350153874093556626339514889831966335786137683780593564842140473479427770590796139801707933499022719407550841124684896111537035471209454130474080299921487223119732355997216256683637109211756345232672554816860551325160253014896331306615991240327516115886972285981381115392551987878124883068349383572993277315353914726734596502774666822022219029277869013175747558008992968082718606626003483575414605628288346463516640085876920032807475621273825629449457374088936536798411337605124702533064506970597614519598899564666271746302031685973428959397210477086240367944762177187693142254868896799848276764786803661775702087045470045055819706221517994346092914338289304996664081381603156198414957014936738016650056130699942324687068927219660309524259354528815305228858547587207036836824761154670334261482738615174966974539508727528958401843136194034555343833489438362873503341531906054705649171519909821208781881457496887712366445135015137389479037589916807063492373420395297602189373005142416705850045930637271248734216498359684139287780017970231920570386612427215852160658598886658751433126578339368820344831411027162094795047469203739848667240800503636145680002719531170422347015115037621381238497512498323241690926040699224211216812248884938981990627163951518442496307318666309627091939016338308000563952702937152076893774553111210962540844100827372399069543679709194653905936250964630937136618264715438574017637235355988632867173154177481327746583466749534598298420168007785432533693649824127687345504838500800091570132626766953525522954626103102073216817479979432248674195756983976911343317126640558121536116151958486311891822011075273599235078836489147925285574156041423942034574694209669965297303826061707093161249482037037965283490073661132528680480793542196620287085202524370032435631442754982241762404952592238033472572254788952801393389012262856654257580331353617803846327871199508551709951847954346063200162981724353187391977479004480991104980893915148523393040541871099001210555661108065057998019136728126753851134735340876270016092372185784154439990167366891383158595467242179103726657688036360078606650508174500888789148450037280271494273043481363304308713653107289888860110366726030864958648162828244863965496001660638110737378229921979589824772799190513157759299600183813777962645474408342850913716760224712441005083998173668131082790044182704623394359520385599515170631754283142157944139753838493975125172990347604071700763314002255868899612353859526887763541909368634374598985697202421417887247019719883895523416961419466321405377319447198735637710424610039928787238726108269408217814617705262391813645814460820066533195067032277317378575166967700412912850174286201444430027617352316355864177432707168920476152408823724165992558514576654805473003561485704107268890776743907437704028978537302492241388934208964137844108808722746222708882031586338275016117861551643746385759903680257300399364038316893115098815266400875582740206089171412675980907016618501582096615076439412756216808531112737735263188365603876528293010816144948808037893955682577559677157872072923848890986822379726082244902988007980453827640659912996841771564222069933195372614075636399207253183326977837306361103736956750996155244109456632121811959882164197848861650467609103633772886459624618208080407874357177001622004345792458269073693317662941439345136943009116922315467364953004955419789646488025188979557659665272650127624041529515227707044704375812543764294133828325400367629065276377755273815813149150349645024801262577464429354653080298996303318301656182145116052365062222744749916544189251657650058511702469245636820730157597211579872264979780879268039255656151720102653624023083691114735665741998627697790345771976272142422490674809547484638843897801785614050466739659056116932267904247507307537710142702147829125150961525593438677720680706590989590081731272978549217261733035573520866769154816114138688078758500638688219661354395149430752187903068419693030357841473845473561506633131671003517926605982934474590199318825746520753552049817474385771620325410924565540877072305761412377319553252536064767916685337104140550568741073319004541253195905093785772409211494831938221933330836732404379494521524998869536585464177635533459645968566898024376290433880412306295254169342693422898498412740313163790841606367470602102878536760935899627924114835640835349220828841339390050154686082217890158568107871659869775489845248562328908783009766398800683089144259375777634378796505363934777184945421978857952340997022713433219430455157791433012048164736856196790690628614333520858959406097612347579094884215629316578088035126216023686882052504242001066677806840690901449388419930956083770932918862518243269143673890716086862443557962547185640646567446096570670054913866300467037900253616925708414805819984147407977728421805803480930047615277511426540766844523767082580543118120073479113350109912356639283570126007775247104593725592568000007601048157553857281438301480106971744539696300695913088286299449330559955025192075560274591915580739821966513997558410694274351014360702308607041586731715434529850910306040944713891689250491542743711528095688057834573146808773847161573088393714024075433891851462471775596763761266843321533759551274661598233722745932795783184295537216888464024528037337648895087671625667183474519051177672754834900245390114725050992115987875648405732863457433099550716455360338302830737564053825956677356302355618218432423863748714581776223288021794744287251623762800944582806610239206658920606397673107402380636811769993863579022670445296618002174042431578046182343133091231145424831059080365391219174769576358844576339053856649001180925562743554305069186591819045831298479688699561523636596738764175564505618193399344056977933556035097615234979502231810035614103959144329377033233051061658941408515570672134924361220251182000352608723365454292545065257565414936960932599158727830000697629946429024726081574263741868814653044416436219363841295674014622875771906998741044947987778295276966505799453131158666822358700370966085636653450820825292087334153568942936462229356134391021441965301018387186486006351891924087860186060765431060670235447653759906927063827393985725236323111504136717612531498173213014128641835218305267151334541783661551808151272781621299071662737243208019999966422803093606943577679557306780850736379514098543058959362158386580202910768138442230680377749183567193467942766715326260541280746104786809479483649755594625187573981274864517171635959684315183687397798664780696848863053038597507514366665305629164320566589872515095396534995355038424116380262592166670287789253339225224343027315674291018047009457290744843043537778073079790536037311679616716662247318908556066485089646547555204565687728030498393795073042382443257094665850876155320950069404976622301055765523578710881592116647752096895163632328275120033099510100360518217606732937337287839003024721392406055150183305742810266869305964851851456036778366131518970153836515291040290607854511322917858078694046922981729393475369632890072007584140392416264938857317152553714798298767785908766176332698476146751267410769236866193131579731402541140311146612134976405508422823459529628126566662449236581858186667948133372024056447876676790170084109912869707768586593629911840445134327196698004623450358427259657707535009773741109585962921081240809970116467055045131174893493856219677063326060552473628728395036408368706826231252447112134324224565074208810349070527761811370603302646308678999821781324039575688903277732436446558685433199405251823387812449486182075575456305853318033521100330069369160675190611918936468195025461615762705241237890663148953532813775128733656057359948202015727657752732704739198660704966977037035831702673716554722691154038529474671684405202786113218114297179255654090970213500786132781370950916328226105541532014544352701262426311322418063664486942184771104199679776579983010392548694482198464166304682306771812456283886669051254395205364582520501730135335090286713689327576901419882278302660904799396688148965668420243010525277896873067170970734710757376564538757953562311861648009879920033448897687258066664437408465026115401711865530710355704176185067569575179843588633269762969928274698194610337312860646217974475564153975967398452126979593822047763850494658258539391032725011905279363824187526406466126505864562891280405132225977444929341195051759761428992083976974643758481219899519154188615243672369823994402205615175029665885676627805307995093298213991607713579119731362715211587389503145068757669533731103860498727803758873360209806026725271083420371118572097320115875354416227742539196319164054388735921258939254283651832365368228244508386841630105723220964634486450555602174641623893543369241458568926405571989463469305224360129895647947769993880933603878317646782391700631133575008051236520869600601788410259828113117741376517083815174555594225417815417549376216304360545611862133553238821302907599074751734878594992339095752147786754367062500246237656756084320739615425111603944341119291952127163554113837927348737619798436969748592760860654220024605213918297636181336428438964982360109313863636833398695221542057078593308660462179725689531270555701727440433629090012463592535896430903125049822801757350931003802664910577503158032571197113599059957035721064393941351802015533776584837071168143036663516230753584973500624445012801067020774891057082456284295528469361924231515717730664524765787828834577581901008703800161992719440565001034917631553334224212838929196412346557836029541238010054471857309638892425913464373613514554646673942303814989850579483137622849973430071815526449870625134636332830671029573335391770963975903110667050857327281124760436284485098877110318820663098009223309934680278611216476632938494505204530236205439002695423381144206754573188964180242018194686726821667053448757082563813430996233819627438515775954124711404871823715132522293601145283564766348117214463362528032147413780540221261899638274540125715065432045167360567771474955859203276920700219535464271738169566571420634095763716469585821006525812220225340972847418576844126697932324984949387960131147465986375526496109904594671746563813637275055750255097452994112372960611466883050554021913594508915534744153600872581736666272179716275555414264606875785880123227611123896636505472995582989069235820105869899798071924973818417978890491709657715152887511360111845420634359049143279028056350356578575075810613781328499950667737351911647062070634266834700813666366521824081594125031124809973378080672230862390174333904777944288838578615424399669896531669647779389201153166675740844876657984853598085623595113682844395674969860348277451462425557380955524294007649449762087286677079990136585949996090767377103494329371551274421843300250864870365662258782649138903373401082052425330583108034038059060381536637293558696664968441549995210065587162748185409748727585959394743853195757026842014804604473032523039491964170018730802486282999184028104211121496749946750030844569535156168605532734348036717412438158992872314158320988849047841013992201451632054080315615429956011788745550492470989221163144612790502156138353123783712135240236681856530969521142589750458985454859597141068626749699875546617378148691359588261345469473908328182443849228120545131188764527240453098159997903049849424373081945475882832043103285068045013517743337011257465541149364592487862427122757963467761413683440636889862967797219565976066873284565437481685985934119634346624824872672934892241405172726275692852739089943832562233492030781333320801549740638917155281347681583343440287789950242993870153513573787144573320378500624325305049885305374756088903362219146856369916307423756934498843859456199017972620016246566262012810921693155020834062540770652339853610844702318629785676942200785342325811694859630665932382654489408432327082547801949598764549449445528069277323965765439472776320186631904422369147205103296908007167140096280445813169296004632422439257028469774816682499391167063776465455475904528336078874021438387566745642923790952374804461692359300684458467557080378361377173565862008220276164451420728598656029590260121804553573187833570522024124919018248597515588575111165250628197173328107970900048756595643561450979484453241993441666940079243323974266273441793141312545694947889983935375404223460274149703652345512851708241029179788328150504868155569230519692485084425773272304282744309621657686433925477539917789877261566210039777938354330386711972530022576427277968195066310088265784801934426125593008507375673620463524880411685719010184862379307381639966021027539213481767992298963352609434820769152295118190484669901528278183828317241030533074705054395454817638840738547147148797431974866097530045417798484188599410552689854005144380158512055202311161618362951214183336033998534300989290645435512874868300329250053510942131198835530567532110863203720960016684470317916308742375414201987405941877582412344003172029720529200622002403981449807489477155250619028363468811655782988265787411996692853226772346291558702013039338782919579863139684364378232572407119204075161474714255040328211851424881429682986718401160794658947858730930426388510120491157834074120433021994136012712820972047024841378554290141323624975719966563121564501029804304872463510474942156132582235740053233224979911201791334895124780088611694218280430194735627620229544639530184192689342551553143459828424740339523661012189598814162040395505769284130755889479412765689393811057309530860738701893627464781283180087433195103628167980162366361244645928887041994649680658201979621916738595295483935443133973675368598698190254220786009784758926879797524365435830537362306503005464531239551716842813532460291647921232974735710224477076006586284303141641685126900113249937212770414448695226896939694444050186987379432758918425717633104806063916689862778012123380350607900978781927911965994541372886155995931411403087838902753890933569813503266523753348164027623664858185580552764361866886890966745235676213060297664923388336420190304695121857678079419236135985431488457723430525437404799310075968960544519573973103624886395642360082454062133521246811241205370526186462930056602761578562766494213065771103357655330954677241651822498105035295308290632966364601257949300991098545676174577657094739002736940310074384058098452374935942232993151694001072360084120479543361464692354378213327386821017534968334529031182270730186813396482744416438512503682283886754345596065316079463060857271289906030111288385978711607036580989405266829408452677430575259897833656345527626093388114541087910678989676168776174744405572740361589662562839095517748561475852007579821196659633876141025520273251629991102966431926293254825305714215668509323524489607211289256793546682571568161458505720722113384341475477219014206180428032337783879365797273492100229675484599929945174444577807464993187995564788774130754810692852740081495112210811520012569901270872359081543435743504824538119829498345649166830224977504666752150317586971856737554035644275067537171273362489929116187759319507102240992077139228354831842325830958119383144024596110899521404451389879361113176797647678173472206544919208188226339461695502162104569998461459021146840330055761615137035062225548096698999689276818269213793029237844327018939916511160830954494161838197764768873970240171881827356785340856629795659569514266619435256447179571702423058271961012970084169496517673582912871753898530960036917806383038121549366717290656268680055739811103142240199052390704498853477016907103905449785069430518531818927592104959011421810673058003265778792467126023189383657374350436719403086368309905928150817837271116388525479134000385047069116469488617160873611938216726991087334096561651077422599377974790689855561039534601267408647018844933041524178630860933166353460036440593108459987862422241506508895990338599332777930329031315227038638437372986657943812433227035189847413650235764797797792449909491836338111381485505888741286435468340084406489027498348372576972869959450095684263784568292543901378230029788565280343068277557877445372750605437593532937246500175265704642227495933436272530534993151167320886758586138865259770185191354419641695147210894224438727570852847018542879616937568394845052167203040295349941306161543474701159501275261621635943798755273676572664328938361458160288227379004472512921682340451515590541712826807780252388581984622405772047455175213775823154420185545635261397358395666611363501839490674268218507072180833446958989286777773789102126103765129750510465891071609399227188488443503924657646353501563582055839364497821191330592046381796555184053065569768078810062696195707599967114437842172090796434965446048981659386867259505067487191744238055914002364501126590569084579612970360505921043248198309812551528052077529654769955463505892865156094775777505414263460632172430244660512484998771270944980425523467775235224199810208213446612381709075100125269603229558841317647608382122209740841099324347944211262319180877746946755658439411735600577404178934197859426155782720112440414530192214247241574745972552845868851874788651954360301293685975981508275060832670989482730268089952157610624875530795383644503860608226436078427458589975021788171759124761968174806180664517896469838328915848814616875490143460084311651086497668663569023147655039723333202882695782352241474579694874810063124868951846518255782126532832543125583845107539628932150769276566571310309755147296628731080579720240392629656102662579408249105420672893563810301592036471804647415492355913013325269800449746625985314743258602573728837439140825064453866292039727383539747602564123810284349484781856317080986064132970225602441925058008471509196655674292439970347247316144799381449425950490504624716467203146854006884617213255359570852692754172484045942163712952632960665797125702550900477914334627011589123269744340657824176308332939947927490743190611458461014808263841505650108063859143528072652303404149345835381781223169988860632490222572305945460798366766344570479798806550417062755652684118384836350823467588228461898807464630970273824349255982016469577057070570134632335895627891592605345499648288198406644453912234004183563991406927058370759672196818047305439196579708565562406650281277964037917269493951413535876463024794739734367342893204248533728120457178722174443718596758429995240955307713109750450453516336283728481696520818143772689362108680260404700555050577200477478066783870405567039413239829892570137616514487709875958774645396025483188100957992958477832176583947444870440079363253906382265186753304501871071170184390532419736774905111959080571722825435359309710899350538329163242432066783354864345638780289707226953789718594725971532640466288674780123569387082780124101735992245885019821120102611349731413090394835217165191084061764265118345413588860170990903109565061625947663133829904127297456124033446117273275566951628324170799992476288959966513613516315172974855152909979947697283590428869715667386731618577003766335669244691404089893382990235990874012811784589168849716706347171685804299713769230546963012646810212916292743927473104793599946814827172145956912913864778131348701370393831249490687593072228294643329898647050772127570300794018028683670839498622276300322539940856378133807237038036754463612058014558004677616431112920429267321175394209712988075077414737114358401564465495212889926373177527303670224466735513804234399213823739186906302446309949895843424084051071251258795945120317575335647441055563253793561092775012783176489691679079671774390832115001623268034455900262061456788031902692990203118395889748930551706142847306232190446219594298550063362219701446953772636123794984402891794125467456619735224283461838861274036106245629360724067453944349052419725484512381859105541926073692192862028199758262243622238721113374797605798206611172546782967740206233775259036514037808821576054562699426969038564694613557825001850454504204913686131322155117832626358311441273519590339215243681045984018723799397299680234649523767533613875725748056078289410645148329967147909134518821581933054335988856711328371330586519246696532296716218596939671693344207225599429985365619539592835993150458773875056491152770509443734281236638449113466558833189009285769542180863479518513195374036661450413590514632430721219318111093699475914402033997584223120616537020408485597614198918096959217492875118294772976015602427798558974116905890954457941496741752752532833184532011827243524302776296112622699277050762044248967976557502001508095051757808815806542624884708203014797744535318546452686173055550818594720956457311109362498271416887180267882471791356752852938255005320164206489890728997348584654558925412362147610540416009153373114214447091901012507301192803244924811013397261358390192078390291261347021529431854433233248254222691057294018402447811796116196385790684592268136834620188592198272518558683065090754797830954886842016654338368616885869687340728985558276264847766855700764816724258087113919984567497943083064982751963609959144311227062751262486141759243048719141136547927754944197816931890467372439078103424329538737427448760012335019004526969432705125290991083226991367489736451285300795794131320369918334725894958439764035724170453386245023200604396294307237878881058132983205954412981820112910729203918961964203833277268431003625304826548956485078475611140959445423822013431866390693279150724810026796419466456715509193635307793689008070294438800963268154593427680413825122434235481184106808361046647233253366622386014120986565984147632576168168884317114486732339066133261151400485771725626249347740340865536611091484551032159835215669266640386977611187184315959299128674247050434229701476280964628320870864878835174521117616843022060611479009765769411024958398053552498813604819825643221907285371547002773565860831427626052889749356318316756676862212596414884243291523886887872718629899982584706695584609983296773869890930526687494589346991146969819775579799999154222518752500415977840985927135743456424478561601275457674616499885335472479048781947277766879986671954459171396739203680106353532255500354394791918048436301170662900686336188204526575110864567290853668332400317066365865952870306965404735927968307789542676367381465282100302504527906428204855673279816629923340100557533935597046906053871172863788072356856681028805712233350255093442733692907820706591043319181219496421793880627150449633843701141114274189797534894096399251800998997674475771792151170096645705779726917903042790323899837623737288804075195529663571826665196889479366336137904396984065566395657062514546414064655924726249756631045726933156537621599232450975980460277606865250477656904225987232623915953351762094380038038563978440143762598414869755103278739767258196015901834137248755779345473618719947550970464439621035688360716159172527531270530574362558894727535838939113710447244431097020287937560867755183937835799021876910461429970166167832864415914712206434599321400082929979850275342384560873948865220378598710080680132388438203716362074048424899934727828717366187389673699522044324473341933680057217581925032575897368120827489887510000483196365158777075328872418350442197457777713569945954991312447691516041694036891479555134776948132701249569628850940060210562197905294933764449888476053649847466786209126590100129818855940647397397154377937566621874564779866960036125663222576217665803503001643252641866136650310821767406082699769763715463453426646487107733703090611771334999967326905041581991211869357478710404833529461108435486277968120185328726928018330317195240217400682344992603828084909375172834086684256721607807894509216944768678793192888239522871506422642032583658965578204913904621165806462145046767055727964090793556114115053145257177857049690926133286787337693605423238286539797308223512837467218883790379221315382113941763230842778536700431140647515446642060430923396037308763752861469969750897362138088494691804956031726286588157201879803263882310937554293365688406491137170555849485037923472307361646309315632743738655435071292485903152075883142351812501022175100183750743900371947843246936913455593594959248779177076219609898487075087149485662684324944947971544732436167790627992154332686933693145837499325212746458470801137300586164590266883888054673300388232956682568809886005852499286532819651557670651534464687878034409670926659769605512804116619419654224715793312837592526689073276034321779656397443200824562990737043997489838470384013850984409679696923264541795920649767948070590975532030445819848930410456010145737673052827215080585131839090111114919491396810008136571067892489086843046785445682850476985648767336474583337463151184495146097661986665692377394446039196172357721780503843789897111216589165749411400056152303837245620292455508007552467594838216957109404573223052428808538247915948728278777601827735313014520245417150378403593794253538048065668011186809693687488518846979021782647488003146189144188947698808169114053487903521260974046462899107535789582707653567337419261684581328351061252132267781235524524541242303445832173869679570868876482382991682361748096919292596848872641535617818371862000836932039527269162424811696361128614844384575082388714854746947553317348448395298537906958252680814512851950873824565350358028980545963431654032674022460214458991114300995372674758987593320703606811616863151431336198229968823293012273889774054587095676289991548967047360608058020488323390314498452813112650579668346464997426191058594656503895069359220797898598880520514004320186935755869224651366563986208156657345691881845852374244064162710780654618945605963085051443978405546333601572092202810320887029243950236483820790495989031496910075732556468080051268521026106980525064691465537136774776168682379507240895948588728033891595850304276555687727697987967596491751262757114848158364938994532620511756914394958200615252524130107689283878914023959829611104618128222629137760125453815047480014165910389543861655920696302797460736926833469723475922455394772057515195425783345769639467321601719723009023616495164592958095384384145324671691372301997090408538408080532491590358350433831642743878182822304108086643767938193621055347852559145942877223520781389952280932919216653457756392656764054501277034794924497433647362849140542825868166618762502439277247295687709370743517705937170185608682329183857747413093182557541973843458095973153461313786867323919932304709743568537562144847122623361059760753811779745782776597828306371519091001296925131613840422465219912431072593180907258273162397693619633775658176304899750113857257675080425918478511894743301458622864278118468917440936678541045725018288678612638973871392251463539855837880527279855215672223678122043377804622986522152640520172473906635079797784215934654400914794535916418323306781362610661554507715747552121020879772004371113422144101188437329852866830080121779537954891185709871909810670862730170132832288993543090418481461848292782739828573371066011531372795507983086601351368617069007554629094115223252548553425145449111832367413842754468428752990067908393989785939958051833015201515344815151466150071045497882132128872067757426798646554886389614639395492180039129383061980424329723965010524507977718013647328027273096037135570063598200996969404839680329404725295087746490139448970288930030236280368110281906235926477912358678666653330986697462107792305377387127467563653580371852674646187782571081049897536804432073249945958679861142756972166181754395816372588489508848391171338479375221838048449421005882228225084656996633699816907110276811171397640318942882040166697636836262738326833577670947690137098786216496680625904865893726628573872462091451143864629384176880056244582822324475788175140682006632649292807304718357272972421841542506483771461847590256575447610783264483378798537529083216413698922103452862685941629746129889956806672343209223006642620377904256414385018475813758123979430607708848671350081528714153786480195327348727473716706438218258125438168435140548373086736260431811000546252573954778683489976278522235957193745151412316111698514493029341364938647847493380996220036282986952881014903099104647632678394527668492558613956391237305314190379397299686907036786997449973973553774410837926092354350708189949900800868089396472853910356595080838019180783950763120769314970524226790910617598822489791107304673367321420408260786397587001812715060410304006818706917806155197636103092899349175758162835375366628281610631786375158619430583717000858027579750995901468430646782391932542994710238765259369694792220334091074050727307813517983719761084137261132189732823495780296757316305027899139496859394603062116440834720515729506174495258074386937285014143591958844722122419719714908447558518106617391354419590939992521024688588407440081522248845781852476996096750760143410578700915576084541225221150452438668087014170709227064465363656599667613374838268520843337468798836304262267896305704244267743354030847856880001874166185048964700482359958517135624303592803938723535218670958592710710470210634680577632837556786554947450496581797663355425362252832307431187373288147268053239998999476777135038325726067348979031830668772903961454408614400209515194477508625816200447097870832453757604392864775653230987873658651874815274197810695374107912068463489612828767300458523680022198200765561262167971735477716690742946825001793929912664691692306633218926740368888259413097673097114081020984512413777640855566644270448626170467345174759614469775518607795983611969141804484235250820245186234940043507534423366022501667861323663683368027867005835646986459729049960421215078120767579095521733024445215065002539171977456840367358900686976087706637206619685173127618605595925141544311881058487100113189679459449101446913571580581045997916583569538741361894440135711991717494808198459407835696474240403414525836624156810586813162717351741311409708125669089014104826715914672166548996358591075061789592290045996671306925792854782910786425509602656970260226608289393564847979366857145091998028183603490379170340617349818432293717052515676059280926356398706345163537879738390583394805300732363281099253027735919864442279653539105438925455846245509951806189602925332593600009057915074819723501121395395579180694278591906163851097711804027683577626860406657595287397976450002893089705731671339824058058352422209940426264984586167850823737738144820848919574022994686275513092535979503539006052145171001954919187047537401154664690297054550644818614964680538844732998368824868978158832540132475070201864989370995931640212040691444375021014558089449271595260046563711816617760889063920460436967515733651230749920527085222188890807129113861844592093647656045217083832376755213895787285891266117827521877718974213157485834217628585763638530353447721158937327726507382052042261264370903680036766992111193708595083431158795763372032450932270496202315495546218118620866666744129445938014829822919005917999021109582790246303854891056252583073966241010602290558143215840014421609993790468516034980748879829942281994867538942229168275958839965220341488408380309454970600728258089645233670459656561180323499596842700175010540705561419410783278549429928565989321881568454307918687470366510957850657328764410793766977900027207701277468175982269422969507719232347333652043173908881290661971284729098223452819758761187374886646742005565028653058893708274532329776817820837222080900763665900052500962939283050338741171159517292730597159590396813303301341771777852538870042076385792718194091841129158971829187678564034748345405980527899309979282862784342349955424225464072299207788058507603412429024647287555891147606956210440610107948477549619505450207160821553046070703876445240467683402982683976599807994901365305473293096763454955628453497652672677013197683092431668684266433543769448308901720656078417725909692032632457077639764022389756438757860431568312688534936481777268292180619102862334594106099127340635061252093579409143147273925210867073456421215201062977534500693867806053248686709896840556397697357144044952002814637767509346222719636356477206431153875796645091371334724766204739686894810847071619213948219540878247849968814432042406232573721701813582418476038249714425436330375918832992220902271578921526549358017293967888257924112818897241439889115105546418576670795319931864831541334924839271672492073034364711366893819253995968567171676965436695829346551171533989633424914698993173913826469255828228274240352433212534081986798801695219651933700448467955014434544049467637484493377271285612772357020382669585328328921904299610394833302856314998724654199213454987211114926257043071847920255381764068206766047225758962537897907083160083228290497423417443523918833889235159889124212045790881118395655996149813872448381939905055453037726172084571212632554337876668056910283984938198035493531686824627247759715686776698838867924262271657192979572931282218822338314593873201456413009814159093013929743571573859828164797340531066953320580027333109636647722494645775522529577734391142400923341082385587309103477393413613660964034238920386195599774899693255709498785172409380461593753023727201842997470514144497678753696680477203428839334266902648841278179902979480100278515443974894537193610832857772924162459965208559321572451117594409433069719075434039200660817163714255612589655105796641136562916792593763445723522040225441972960266980247566260408138937027830820797938875517366080063133071865100196577726290240748441432269579935251392625996258104199709305417926482570647593926505560649142130415490503321844128897443661576890918826734322219927332824797743567583348657858375411752744143464029716747749020196617389730717886399099098509840326042770475334858296399112450966702877349500144843690673546302770447760346802256879463988947284682115793252142229054936061996987098551919512714151653748005961355102262580819258102659033071671700185405204754573869446757958328767201772612440564445184504245942067206221504855035943608670423501726315290734022860844582593722998141805382903425616725778662096628248988351684371068523118207001834143845554242209766829214061821925397423174441044143162061104556208381391917745517476257600307498331305327319457072928840130461980406214942498650095559480967538521469804769362644005573421716329290066632034381913459008300818146653440522250857469060562130936737105762157819516666998297586621135361300047018684900916339026882618682803946376407456216605490642058970376340776743627377934344671304577322424535134149584838113169871244841127187744541225582461557638474732892796713996820811615593575861322949866258213808114949272043247067752907413858367819852329619098985024368755458293079674379668581948212092915785603048254520450743839700264147415160075853684220872053474373747960754243983489478658619131082953069746051121749930603261615134321900247226011263689968419067233505111985594074018857097845445794226964616685738812792398087217316259170188019926010233808008267200540541823921928908589749845283646506612291313724330036889544471704154238839500679799926271717195330980703528161979110388528224588935535461165246115780053600516782652032012993222449243590344782464970843383974694283322951750543752308507907953408648998539520457634531519884467499435270905010298745975160167725858737810737546846351990204858163148557236482794966393849707877849711032770393708788971626344879821067022400523788675612453906687675627335683554983652422684301399232874178959018563524127462115800195644744020689317166363669477423491615990342235186343184394091074813326739236464338425401020764050550065095324676963980021964987964932711536435363751470134375296893608059228632049526041154001551283633812461947678091425650735332467461007262076757340020750975343598139522513573329138421293776383024987967811552958593040653100548530796774019292000723184770618069188757814258342307019856714820726740359575971521334353199098249325880484885614604741809242215546541428740218750418801859401397186663360263485885567786887773770768246036217629762453929751020198304109945545133961305062317661066897271446623298599902428230005218129116215080082285295919370723436389700746401575007882445373127345225903136705337512839970488822649534248637231748605086796073080374805215761422336640971770046372816371107391531612251727029553794803909791327857640330112524879209148719289763852322282887399413449274763049875303069425901483931882429674818006876530392326944373181916573782760411345644800271575275318783912235646523405239045050697006464537501838055395765072126612108159172058815686889191267090516225993724655852883185942022742408027870395330804510480242154030306940705903800915380360383618733073874364343362811269475420987326717010909423306898393563756191221525297951060343850091436689410441178482303377848999012548945992165961751257344428693671370241147051629838651390798216437198504559462098781306706175034166164808769362100728201031688055443884005185733945609229070051865836468676641238946091723455120785897080680554440387478954173490343627740741379322249444301444670733509694835179108202449688634268816719313216134290427999941649807315056962357052185157451486887370862520434155082557574781634738413153811414359028123058715930497861926495573934106392488600884915604395181407324258288806813140743883820510847070360869068418172096705075634470290481086690148052644717976081300806282134065078876121603102750169710441160230394682309368599339992652080253597624684853119304716444648751057201306398592167431480735545419832182653125251376508533065245986475261396341880202606000236687091078275287167734056147298409188174986240282562116132390511100577701226807673574258828459777248355907769131780965829541673819324041204160593790948892587501535161402127751384950063646611439431675955148967090347869950506878436265973852750344502288288022753702944400058831580036996243667687905618018875685180143036857927370790883906734015442465858396090850116888274958848976184919877998052967540389771128092760067205794631495984921260850866999936282033992511842129118696024921197217837608731415096494639504421898156311876913661690788005222026795978631317004499826626847548307593455914753022649163206384795397728679791005501538017855495270794673768796318086234228791583333621669946040083190695017496516109509187953293646199486108726649752525147927087695809371471563247319764076365837929294191512827120796410469257157426134487951704377676917043866953580463428366671065081649683793069813997321401152614538760781060822716603198269761909416380935421531983522757689947055322870643659446391034724227608482638868825508057021292232475813190484489274631502691196593465333885304066839189369888300542738485691524432066415279523821947356538571935721664797887731284107300410662986353681679488020429125613302448541262875572529707604985812797953943335973536704152680418474510492141967748838781702133936946986274888364082802355615796587703672781591226723274114149036388235106945383908385839898585433755992124686337839719344098974799268596836735361042360135374584138055137246288241833522881493642392125654143732785822908920939526537126616666944171072870121968841840598971616778690470691892502269305088114297816453680614998725770240173490275414165495645922643571766831817054282203319326948765535302260764278566665391492621952289280334811383924543079421280899214657496727268974536327946887805668738393361732454550398069098175753482381313961543053075391697556115243272259698706935464461837816195246567225160271582169673052470019935319719621443632270271975646000710759044968483860950773214201505953239428492511353440883661533501829226264855804752469416223342901041432116353031807050811379759328039643527521318414564142438008866927492893353120344287599587243474997151355491361784520898304091420191564641934076742150957137583852606935879411729971618099388372046778083166229247178070198875041651080289572255890533198684942023099192803505998012597933445888524246345468262112274184893129461373892454391647566021969814490462008776731687084009544534402859104507144774853496562817701737459068298698534093829771749383991772742253368160573080785828663201222153890836097621851932020365697728264477014238132956989515363623622049931353036321600787969825940260550853380351296424339517929503386206471548684649617138310629459405654022492015113139279096265863309220749174583048777731989733639714806835299125633827137968734601938507820940277890743162783076013317577002444954432816555952372127163961195206068261911671315192281361445267699365659808682586103920751543691705649613990230698006122438893160061810458245091480983616374915657381485932157164999286372308852047487650405403381458972845143271610808224682698051250876437841714266734157749086139487221651037937220645178114668952688500775516791594743088147181520597500699206405899617390014385363016923025227991769608193922503184362022492580793209766358495509028751177880330064828004877103720759359266186082886899021019694446228873521877987532197068352385694396228546838977772668403293699134110318304981583348262700565087877656608260537140939312345899970593969694389007706163999124524426661705579141861287158998241572198890089543408833231382776005291458169696996912079201147132781408415087419839488540937855143567893015198828029732395787955455036123308358437312434085833212543734002204244106078811035008453843282377169578199563343313473317292353672875726216521713284543407830371436844049296848593029295609743588480330899082440525939393623857858633541177443338010780254260705867673711198794056524346847103159685489506065153374079809752783706846801013205179542297632257073814491458652151506201133146272318934218526939613663375260622948291358267287801287931004087002046811445400855863370268022767498063489963252450450901554611134579434283403348872221329039813561851984941494324407365122538437677359959860044163258331207200476716108760659161207265484268600687747821164398757822383539110154705401851502677290771442665886374737452846991480391697974183051409409000468538260102420594475000308434771430932907871489739786517819981309754987588078178552883436945631051243305092062031585498996918686968731404920173296455286464741370280297827217035258893647556438603300658735866806599236089541789065261048121262866582392629137048636650355860935884683740658841131691157995323062911291944973818279628675288965075549608550397420049930484910360336348002489284028747852503072975458638356541798834348678816169931773394818919962027218743765986206848021439587255495397079355807251795134139762851096926843833511135257478212895135569266072967346710754168763819978232311003318189379982295477221800400212537992721607732871389429549919995569059228868738763920482236230271490785091856526407758521032126745547179292044940231602841276776407445651013136870532663432827352693440019505170679357280148880827665772137764483206443954378194433486274951727775162307531424134353545478845749309619479860758822049725656450299811597674580852048962771682187982076374289666451460964735706253772304344051218439012157161772840518712800103409106948584090448279966348376463686894556930896112444575305174377684306637683798561435161764425009382300764404173446122000076342838335437926532907577293666842229276600719392187146163727844721055974090859271746525940588963199328983270328969881752511272689772376907141708118910517701075199708168834764097844217084906220932602071249252706887322609126357507670856035219778564725323080268841731600213029217012136762720300478737269803661340337507002485628713572752613769032399745644326226740265187016753599861301772882478698665631058637655896443411681028221955887868743643022231263236519880981112660506982157370150161504981133168326731173715977224848598477801669548685977908444341175194872390369602270245034860562027272379078471269241598996958785659173210006452477550954384117506998778884505027904240432559502437409766774900824252077417924150625318605152021878650422438347947457084884029929272981951246265668250772354286943257307459413974064733214566932704616272199391082187679937582889448971922433887347376032071065062941323049449900106053950128960967064365501728352866065723745789811571200392417680914175089693237741208753905019998958260737956553951501560462006410275506235010083412037384721390945931522295334987499315517395802163059166835669875557566379389337932632763885293672665150265956631099609481691889932920158510184499113992907998652802871982554152180958333078147174674484236842379016433581353685720914207835465236970733702326490117508841121373350894597387655959648507299619004192661443458342676033672956229336063565869120325108915006160066295368764128796784445897652953216433301026591250630975625968225387667526973434411296776134647398705988651252551278170671238870791192554313559234728187019639467077545474435518348934893473433169723941268020773093820240151540026264390266941114946176080781212157036557212619187869783442084083352635173091303713015872252793754100351125167962208326997246480557370719147695755744563080446479257411757820922839576948294151404094310052569958526310243459465644080061198903467886952067705148637453484857202621122223407533984048213119076202631454538292615533541015967330924906346130132590333125615331767011537842506625282680097375582270789108555169315833658463287993983979644075332055805640504420169942777716774053639671785066260523020709948226600010379485917149514520772339704564667926073131796392171179431123340201382947377376564161149295100111944756852870578648637558617673316701543999366309903939979695197193833398683297423530203012785082440554236119485067674374111594677009230531354148123772997412778760555151266632882857256341991583076069510455753307016876634159712121183201023372928156856760389941978263787041175115123139579835252523164636387032165540347518110820054643446226517440083502001306829145072490336476465815785623010876163930168967347511363102588647803155432994604159291899709210547659233870304986606484863460150836674082976476800556086984731010057442341506639599534210029046771955486831863822148429756004778743603262634331563597252032957944175897067679579102384042878042577271259858438046959131724480532672169626479644096895749072962506334356036767476802836565038545381177960308524177805346070834199900036500464783241965568391016453423587336772578903086969787130338665755055661318392380772472126185553076548953417234840972020808816323577614572612052058305549948625572755630080131041327918786839956351127265894090228811112174034753702362171256772220039370895257615523185315862317889972742571163897567307790740284402158993926885103978328735706535029291363412973736396020462686884073452311208057974486426952000199077575571330997927114152521997179009949111931006458491006292520897247383040438086240462691893206993138989865769999281043370720644004094246472352205678771719050863986127388754044433695923330834777377896195380903248871538337277340465348966871821405032118880604390170396378138022234295017406083827451650047136547254729295283696178481818581318590544939895928136862594821790167717438135116003776029036169032003295311813604377856078414768772073005394286063718891068730840973136131546616248915223458926219496856425479546831944020016306354970603757188076734109079445313882217381614732653808904689198111099479712896029540932253316808936901625520748331134049994486080019751716794487481007964891241745079470104088831048173340802332047235109505087912215257665215931174721481827264326028106856959594173124477239398780767250727517151756342157518434461895378461059944423613651847383424970086850869284817484974123714677425173038349183769973795784543825537615645076326680347627766880223262135477049216103859793361420602465222307347819800652737069192041762897358410934655750911154861263606427961599333632572640197079231599944581959785363718303323405376497672640675829749350050248319317575865700203251440483756765159582707547535237902827970077385290170349431668989108378860504944989806984090841192100754291576748777929047970378337927379341461808050793169753155693729049554243980574140010605202234706222911945321574769465116667362917474307410375689252256399854070951579402123691357347470080131963601370539584128126394911221771533800338009534953586416561341341957648229716568630193803385806545208008488514550366768837802475764069878127740595610975606726354037992281480545564618617578750518648593803338201644790328641687100206824114463913018514804764079941971230009940837067595742319860947533119553444375177382481186851902228498802676305157711774821103657178091601523898092562548304077506980733208038733744711458114783343024332491781789230442606536328271754499201773887069727665762118647460253469067586753536728408463036404933178825630814697922130072216320255904400856962855738223369296734572755121863328027021380360136838390597398864019026810240677590199965892804491229460207829349714821895770877982992115623616348730028968479571211826332612561826698161927643936425817867540732637266953393997889697925506989122506804058980381091609689054429260821016298745298076420235559477524238052701497833744084228396546262985077685736738856432676093897638191631156136310301737707905654055985665839198468551467222115227326971945027295735219783230182359111590297191217114620952125922305971712979270782751697701310425617257942907360151327932052541142897481847994222771332258527624170811151668088087032214972384171549017268147609138007174632464584889846380313081592503528396488517435235911398048819548843196536695430816308637140493986933320102174790308198563092699048823609587190047654102030930537502936873427805692026566862114852945818307604426804878526716288814459878584188131213743203925785486458087425940172413018221702435437946379952926454150827638452568893082792091859726856677077779249907755633887256730738519733109389962394988507903595167578807822194387988223733579919018168155394393000791486311128799060538382262761836410277452561909192327208217755195244288414969949189298871569629032207034082959857742182970771312193490078051098312509068843641851749348348581838979218556779036014948866789408281646626183945359089360362864743207070576896798635508398824197119247880097860666440793450426084894336948096214334496908842269093627321509774815816925890115011691579018766521943361512443185898297070922467467779809934878095413932342540686798191876819526063774108420109189398798024089346159674819153126533865333703305350994882621768372200918193342721585240479091829348359714898667971263685713705965135612701429359335804665286332831744449821336727658478861685093964618279730288990027414998523591972391236740624590311463223313266885239909727706944981543189871790916552598578324632205548675739271081093603119027867297351700878742571727073212696776686707321512907046934406966763611352269869756268551609722803064605221876701715764533347982916249181989654985412995088445224761371765568377561097298380685598132653066527197600948926777250194423223585738738532339473646404812147930207655131558098322413514147963513807682364512556897806691783728817997104580030196017168907429389775073467850753715553119214609205641253989458748443971781443231290389782764235812619522775150263125248550047000886955041794327413355918447806530908231649604103368079442674598720779711722683043509186018420642297132197133630217016681684587807064090147770625837226814604641673727629610305896894244672053753450831963108684706222886051817977696719086294812685516827323819386799085938839898626672941440034619708640675751176353733375659690105904077938773532287038136332802852911032650552185466387610813837154464702914466283806466178301662256378493267167989147206171759246006299530931816860927599370406019715173587060506850142361660498311945820813019523572384584900969519917934313817481118386186740499748497781046942097496734304792769360846788203710147835039306897855034522128020920883322119391674949971926188512996535510232291586668099168861661285882805155934750222671436016582150706198897285364976825802128461246185480483673709158783952385376770380532256343918739952745788243183130543842337239178802816650385560064383369534467631110019272172795803412394297455720089664132815022909324411074157004827811168799955846902912941795610072083004864085342048706929288359007632996010169023792912955093144839489290861279394749940158859062704609519518732155833055063238625253972474295273332279787792874119785762356590331860441790462338505770363137351518157324830303640511851652637521001457043409303667733323981061014150690503289315998780762166305676160349939666116588410673249635056567659006181522912000572935191940084938640582180735830889518856394201034373798339307398342039210781352954712791998608736943649483636664397152580167622012642962843911804933912767742636226002537168596144014630003791414371000506028766608643454322349039382510960417260065092203588990526875233597247266445745050499466539751965061311951667350990142501530938092876536108267080751225334952945855118489032438000554640884528753284477041178543900133757440490434076743974123159059310125270737935702326809932318310688672723741836997078102182015279032868449281788483437359532763777959085331013742909124182515845133999436237495877362399500584584060142573784043468834619770961555681314349336221753355605880093252497222290399958436561363515060771577031426603702965640319333365640439304432621200862302787576221763451518081901351434563014689378249238412973929133178279761472445407766536884130668523607891562746290550677137879409114694717237346185105785668430127954423583238571053370603532569101030849947228225845330382204347181685657688473433141979127139907328661279995504305812423486259917457449370196786408212494173719290597835494470757714322329818922974638438034976195479251468988427738790150910401026966099252369666091856820435555117031118484329382442234832948085420043659918153382931552724369624942315227184871740126485295820401604441619391312584650974565619284514734533030971296417244373848858989201496247989879549173284076654638068746128582301384751739485898930066212954784200817066356543369049106308875045062908118116327816622075758115894910787184200288235539292020197538057958064735593424007064880754105734779621112378406488489286407980702852948811956078559700615346252422087582550570510240674543448719166178542471293193789962287008383990328010065576657957327674823293672310549136852041981009045342614394246233186473993611527462634693546032685526463875165865787707202396676203571097158201672812070236368916303640590591836767330652271355496430054867035337935947071516918088962000930614364139459423811188658913732248827274420331452903937603293274404279642416476476568698517782600117768067157007081510464615920178536318169625297153026995437528434831861104201009244240763173434006183451528077796498420129968216436785116084730869822344237656049680817149397072772032351555218417074471318987000720467634365636336369233829628077199201530316391854109613968439038653415901011133053265971419175381089449395228442768215371275571512290239359185185403980989077495621946178229324513749199414501023874455783608714694062380860500921937690048485533685215052946294685914202033204992105139887454056719850280720419620332403204176179576012496738233272649274471833667117737920460073097225941963032007424789653272681268858558016074150484147951339046080296456120607373751511626580380712924410352744532338101052844697627364899377287352156678798976081018948502012316048911909166797150397622033365102749127017314416675951922264860513427524866168542763138449608032705697015652700879007559649075930969186324816081951877806451307330459739380373728115400781813238234035885585428569759600407913910145251312357241999962225528115719753029205653504393325652291991549960250593691621913520165841271102544262531949440682340733974743020861285966393267153632175357743515907726352073192539019690895190955461150900727384501731139970182509967349731866295191052613201498225390618725730037705327823086655137128480105090385965685000385396295654972462260697823405000014859662513511854519718953353659958289317608936532481063312743370590864750445144764145722398157480512863130133461928343911497005214342195421092817093616051993171984096881019898528307605584235735518480593174776943328485460812602254618165942781833611177052509441956974877644868211497356918615162586577050438283158756131648532513297325154881109859506750766306465616422161451364138510841559068527680871352023202882996525300990851321919155781685707730930844870300610011612768771816086654327304543554868059542088523651646864266344415749353770583302615817971598483830661062977357311430923484615228814022935289787117112918739669095085279192202262317270472892170292743507590382959174414552358329219930494969403032531663682634733117825293885134971568545647947834962474614419997254888321575962607939573223944726758291798763815781184075121499069560011949962261382156323360153192808349941314170105795541062718407796819546808510378317129030714676970513477293895570283688033966002224259101667448001154978609067182077639189240787170362944617025390422767680834395553488520424676100834434911025592535492712474506905387704409456793636985139503979075018555352870759776302476250614818770591619164434594596226033620242755508021999237848337012323690437371566270550159388114480807274734485231876213644388439218087166984072829426732897702912321721700172869080654041001622933970171189901731156367272760313237285742703620822524763546192930375355252580467661312119117271079575441191015856998997943219866726420678663628351724266470974649727641481398737510077778294607670947265582596806845960547425677608259572367656031357277354527908699269476216926541495720232136102982898225921175221192187167460698559427927539608623069816535393991889306665355022567929981770305502441515944403320583232436273590203262089231628099038594607077540554652299332158163788407467585529634612719977245762909558813535159879365236542882577077079506789536462771256958592530344258655422351951791172578432999316111600174762380844483858947640357070009286866074474840307435740207625081157230263778294466217165479377202575406150594208536453169798199346553545860633135489617595887379744166778123723983165030785881046313727944256092449529940718691977499721495656906151632999305142266185715574221044004878788382776347823911251663045061427983113607332764025766985487852895685540284187571430391203409571579892769414989116216321346649529972220103701471824538343232742097528607735609750483820373933569195313744429067367384185266422676917288555199587257029036240931841454274635140554445074024748446038722860773852741147454022713262069931332259210774670741533103583719056992270536639614576719533849812374951591022059009275508560177832921658274102063034734474505387810360994667857464673000897532024316629611825015036588015079337199342169190350980283603910988092260512776316286882142078811364755906428254414177471402558911638353851100735229000917408351895227159309942249956143099751643224546315836490535543295952960255308446792865637320275717530482348535218490256920830959973493583243722805708620201154893519523608268898536180324887392931566726317099337782479797338943071028500966859870127951075604947521209264139825988182923731473278317123620546197943323378937198982215369340554583669824020887230505816788992941258978446073968700611470474027315678918906458817699285049384940648703064373902889827947868805351970752066606292468951611109914373555845138151811687374208621314480776402310916737071728845055174781083117832301913844815820518699058594322888955135989924024255697643336913978437685989908127985994005838272745765911137789150987662211710309008989919875760549992386276342717021345393899477513023258689328148419292765114731643351794028197216274287221884562924235702993391029786834324455627512602793646340512648308040137454653589928151864957434025881282855565517533453701130054831235456794099394337474778919074154248413315654632033781365394801822712271219674898276641853020040076897418153396218689655688820181588355965363216456149108602384889825310779853678990601789805176409601992149027889456768538735877919038056346086399815003731255294936021779100733168672524185688926504914993433479959047658639187676113238302162003665488531750267722915679523150615490439948334159703019299552912672864055091392598064240373212266499301075101428103125195946747891540989904039296967038002772176774402156464509172538330740126557315846812931233969569211631279996783089566919181963778034859819366831246103296241262501585237077644863167262530479594375023695363414051465918729723583595742067164073867201196712549819749841817392240766386479429656409347792606239184426193712237645233485366488390680141824324783019208165138876543350841147449429543752476279147221154932444100118120506999988826999588277722609716965204369760402899395725046476455152546612541200234176252997481785122460053633737734550493668400305903139518694577212254618859079429739648213285812225934617619319635887999211660864736659746785516263841351967904882260583470443804786926538723975812257831145167801294254163636563821243692617385802075022912927324057332685774430091799383712913797538323372387039302473089803094942208135816289347966185593001466296849698399230200358645638037008695932158096950457020649096244868415630243451731911013783073281073885797602665494119120686982948533630757218132854590806118748464048836696924514506204139501204751550243854107237187434734448431216329182720594190075555896772472517326573111627867692567960909963621542634813035318999276526527185042103632601829989528780597824274576423097707354547454971649391944288322025523422332236045330074953307218730330666609817849941640243487446424510709520679294729508356055568820738039497343842497542277124050471428005816327084559827862548255104650705863888668413553670321606337787840874949539536406383801952492797899506970222111238163058708447530360774146974802987493315714995642412719120258328391870448571402416802500203371588100758350980471256971316830159783921518519811023480816172274046056393441324712421932424726862019154013721862241210861088307124278374809061236860875285609110265709568623163670355538586851936858819564178195398591789414420833019889552346389037004117134404771128454947327130190870886118996755878201652143396500698188237228539109425925625734513131193364718967116936728828173040112826013311599179628269347467926641322999442102279966289154165319757023775347212213794050901060121504005648742173872682936074508008599017982728705782146259884091242683916966895071954046542189096858089743393519342941070729716059616939380962313313441916476810758735535062997674015011167365246954901764169723043284972446399956816301191061029963453553434347599733354443955011591429856954802474488744245745405414119986615202630614867702664913878976809855473513368113966428732479085769969654021299434764789593254841114871801206465728462135812940212097270828065510191497673748908045826298702656499685230337974549307627818274436476988497582028075876473424776227944720763584918015547055531974772229339659107982565915137253416083386102948833822288151759291626080896830837410572713235441867716968626747377306519787338361564021988324725991638695902487223485521407901636464189215210280484475867514248131017272732939481731343638647687412599377804074263208978273618148775617215251361680809711204085612216591400563622111338750431291384505705084100443403016922997917886109973989449342598645390804898337404113933354278022536589765672411076203685167751469067118991749727546442341061323739388791904913920529156298302894739713949743179722977407250075456466885197136190962869544569100369085594948853084656495099621512277225834563790785752471911415206806028302123750306152803232534942938983550531091314391249775734096590256453765535556549730206902156009674408460037620220706977115323079198063378518537789822233322498174770534866153152883622310533617601380040064735417647270094034402348039797678299675779844329468485018213543461242912778156723442490878370867790558891719059447003797010297409991563565991138890304296991191704770747968632103337523731840708516891029242359161425930693477190289996977504553477349574253103517790942292710618134655607146870681003018086643969528473749670319845595965844953225548215093187240090670876428759969897229628723489703723786041517135062128447147254483838972546029283695454870670475309561883884396051850014455533432701112448087512749571495220893830753430876048245452724841957683399647917617051402021424420556165164587438163996573586342614417526664981915032385084194954327265346479399491289341057655742032141290901105504242842649456811637138128849712473048484871942477946414075670752284117339995458690319706684398569503035486510988454681807778607232356417010110655911018967760557229109203182204784267556419068260535525086418207146778901647386566258287495065923653890075828611930087977831679721687806163715610536744620104326068132420381527021700932478293118943594104055738603044913405122591017377853554307785553097058685766255667432023338819976481287837128480303600627580819194441632091075399083256602802524393593684965174782169919205400459660536808252188305210688132800196771645188538726792120938554029764543048937730957207765320426400536938081687270401380987499637688601807187780730459600694858813509891363095486629865932732779910503517474787689826740143530128964643229445158564593527426066669087080234213237975905881394115095835856532035577468473293617173366344092818631354180530452004906924243872462345569720319144564455326388725070827814732964059564200546855556609601802089701995829522886904887253786571173753077908056466327903989551381108936494291494727049862236083231586122776278133005246909544588486092726974941026672066685261894129855181128294457173246759354721756913243505418427168427965760238733866059388359879379143285082669095260991501029416264426132957008651789961387889388286275448464420884114220645337288212518505078716247108179085945373553095570527440044458814619417765187344515557745962017542210418344492385035650681743244227353287390861583334501086655546032838636526227006677128673489441366866973842045213583257026590907902764211301540032205893262269868050326966633907455068532601133236991247901543342077799566369026919102118026217785145471240641436675692088849214123324142724987925882562350281554482069648977592281900166498555472448323201859624028875195489568931946731884269423338096983023590800926367513784206027978605884872721089500952444636984485158166777877356525889200892128664288929697686635419869055521238991399914386455326552099399750621142972481794583934983309224229459359942813860588448019930730552994070442018537937299120413069390377736314047092636964328721107822338754914233352296126258730553373292796364337380370279517762649345362703233076904399477478634184419298314843800901575761351454170915043080415644820548243892197144658228706751217865020395036529377500117393289111217532299699197054916355414902702287219109520538259338924245470030383976746792704749800860793489745297860584636136462506135075175434893401634976016041463696320159362064211338963988117869634279736633438440800760900200574573642393848500989830682845999653988596120084516478828067171064491600290903901082060572983015017361245793721962855279838670478694919597133330646008937908468388428629953515807682601380325333132044371010860402985390612802581775414017584040177430845983770236406592211389806603256656582352375323250428682628838527516538591289230036163462518674418570179157748358729325002179884176080500470300085439035270327408205350722394931244146313449314070901629611600509804750565322325136078792836485745126161159051692204983847213101154015282763032418919412076217790692352737030259883282673400523733516267322415879749268271905892066677295180981542801127463774151494691734435718490456920839763395865569398503829100086954609462217861554103440613699016821554691132640156572700212580710501002649367576052018282837110534327561456747632859063317502652971588069756134440360700134697236631278153695502952663948458590278307708431539119924424571428243837501958808401826992502496044735132622275353505957675955906930369221386859444231832437504947972120606589557144325830507071851808213570138218698937160105345144466609064498524640363447163636990368065782220043096404758438648565958609177769108592614650174184230771872301695660005795296831480198140838589843257812932829840426528009027643975910227299473430616964985477584372993347152189540619704011395173120743248088839298926793329952541487047898524255674471839146671154527766645325105323540383031945288851872621291505056763467861948360406559214801277184159175142497349182934193040177143205936496743724177111353847872587667242435809451643866070888435836532179335407409117656005588327474768870466693221315693565359958970278753818170744219860227799303597844597036762551358208004373535389208625006646342279016784054194853004604193504295373376943550244404309081187553402783740386420596075301279507197598927277374207866499123342890223086644726550433215289680500817650618770140936315803915256693305267977943690523205214813365062021727614610282494187387267653778168194478765034578988378613516907437022940315346378148030409579029119908263540497944330338580314813227895866861258619202927246346090325434851449520988718791271999140441037175348345152283365768098776079954498420090309801030808945792705328002248922641570574840867136103082280309953300100948800148724995442890519284895853652855144969560247097472103662099504809415650645035783785708488382396614258138758413210336303683423027077597020973243967702801235988868299360453310811484700549662284225273253905700783270064142637573187064554547634204808826557235497448841787749760383774336945405641019175110902283991629330975819111680483500892178585623810258086833102839771466050022802465070510517422213904526590988824417450595761809239923174500733730520447753702161925532510851666518336316990935766951255282328220829967157774878119612778423319035233663173955232677310832988617398492239874181585819484343255497944102242375460758729523937115305734280447045274760315956833365784263570353977439682849359933762181996094046043738843182645318239686879649636039582651398765634700898169631251103376187699876531633061234346950055386457036174856073852441818083600437897933619942357791199002796658971181119679204807242117668273967275558963079615592372471136455886170841396585863147381328686437430792770284104549371174036817884972560574757070359003990809620135990679396852813423589619148890678223877599697106152583850248147893106093340919320471874202249899250496689449230351236647038323556029725333323166237503695905563180741215537949932734355566675108922615561179007758407734834648579553916939779154347019630453664446449029861318852114886912369680225913275767201500461388395406165205481560476491359241899083231754586693225041394362738703289618057433384070306646730945893044362795387776100507924977925532312223697652448672891375060249182098941385450776376447839630206797951651644919183141223706172294686164170263741090086146314633279696613841390967088560373880821764267340151795650831908087127447164004120568665335221918031671655739828030112605173342813493847022561377710893581642774424690174252747046352879992521231888092785858635383108904744730154050210103635090162053045224386570277251220240548794075297899090097013065277706457401887499155327364188194464476669163588524469063867142142752265015994761136118574269429934026221755931448567650993100689478793146542765973206180869236343074676286660308908047086940747520577634049213306167853060415676723999011655429430547861836878821967972262506875130055590458949228671589688668280627940959939644442459131023928344061530980191677936734717527645816072711389696506841408655663929319306660885691419812931190532199464781170442644244866886319873233810508094206915423715800107089610626230354186647441582452631791235051245336996585165129625365840257989791776685296171693971030566941405658183882772608251934602899162742925637870630080052858646258822180859749174918601345586006158917831703679028193439528409466753928825036857883610345633211297387097333615151087575600127840257316767714540722900407955029953238763993591466120145428549509944399571088833083109542673011219792116087925158918082524256322650541559682099244182596644370100383309151537144111582943859279253001644590368159875833321653938042649249929201914125868997474889970919096758563749751494540971662744334583349666106503639737634604956651680912132122565553369553613522265174538311828325154744710796226422990559103315739314582913352715546186082908799847755025723084275826488004490408990944388558272154915732809729713839736578329347261185753807493574624540835585826347763176134591296575946892652003574008814213330839296018988582585269014702151766977840827234281150792202692627220247745453440601526377983079832734352555328902623038759737284270434337967235448843807643801742980030744789431727257550105345915246314109437781532297793072895717047695132878612691629175358115213210905069589322797558454798730340295898475365170677522718477708673057489011069197982356803953524479312521465268714479056552828267158291550167835746724401001782520409818888615077984992311362699026667326086484898371069911800510495024979038408421358961856853016666740652568462162450503057522571134596010426225888877160359822540364470794915550449559885525112382906046647493430498051876263646167259920684836391893890100749754512829261327703187257068842111889694533977506396756886402562317451857742849286180208137990454571007082650929606475785460696329057338321587660596718161355514077770863718106813827808979659940134380604197926876804312241339878431931501914936596948600940305350732921011694408824305635110582886901140619818934701180891464310994754729119148942547591525334545325607976129091919163299501360742005659408217876065038324968044819967193888431012874898532166945024630424175661658155797777474612107991228318242206945904950859376443938013515630952671428524958830566132578684877835449318098956070117193879245430167497319169535417118068107104010061269846033182685507126618146167777696290303834878271994950460224560176520711508855759157894710530053870720913904223468128056039330001595086904067138410538407298791317901204122705193735811060888649891884380700028682874968914541063535771344666076908285561464788011150024092514486088476956879140669840937988596098131582223379490160467597409916373457112866598339875865325701934057560365539455531894792839703037890120586407207887110952326777115823639189608252419957882256625587845601721019906756669292805392077278222093662159099433068442950031084813091669262820231452093828176978193927379809278737053354995226144500982061775402433341327874961938114988927382552345393816017717662248322471165953294728821477820818835060017156000278451030821801251902407510123747368138147051341138841664409639592730640442204611767036544574353498684166916310316967091944577514668714265318352527877956483923547353395162366183919769986875371631870867600193443552004472399278365995711583097544946009326910691089668452613857064203578696133903434029550235536957880380836342047824214954979268867594926365032157756867643212647605106266008271951987448211842261777930998559632379449264876179656731483431171746214148722989462594346180903957002431123578420378423470891153845883990122544048077300550650986732749169348221467302380626687865580205373727900792493132607362670281052210974358562445574111470436017037810400888363538854265964196998072305649935179155743126580845950991985869751852407492572799291837264909942021055251918795578145672851970003641020570286934466013373617986261903059366468585459538187231369602634002931304626626267191529056480108416397850271776190492404995693203826598806516357743174986277955532358221478274689509994859534849892614116097931939458368000206711102610565222568566197161632818445240839785009974223474158238109686669857961631165650867563162348798159476848878761414446477038469416826144521334238251396142120833369574355722007459456229627058356768845615585054678641800993819025309074006553269869520827275245428986221030055184234497302887640087273489454678937717204293238245521526958368882751743123478388635660572327143993035452819810329644839791918380326377602716641679440539646363991341789928597335109197770138244002200290442764853228942194660659284236973030688264602523530994311608798471796951058212454967426497968869927192507395272101679954123265066128027984065921570962045007566305780347088594187497423455312074681280950871171896431590083965493926673585850521695866325662142846727734957442356435195336050164849608639817844282893785193022672108481643996443304585391503160139741049145858809886335702087396609495366907719656783552556640918177501513810155488789619354794720501693939935934984921323309511317604144083805709549877956877670656167131252698465941240273791098957129229782396714861177937184399055864324414568516417796564351309226905540962204141497694244513518465806215871985830268741263333391915475944469072163768564017088825394787249698395764040170853514109936238463995087760128911915014853877028502105053458109863352059541018072452046900063405689185460444958119815248336965670228802934039821084431051110463521632477293912839638612562173747086435790149947204513670298767883474997962758871882319861207693902057421633702678900178627492889827859193715629213582401640417430498244714024583433727446335063072009839795423571359792994958108489505715825764154140608062260033444717602068573967554235015356650002886121240327320397474472667406677569436788480801777594316992205318188328278087314544385878137572303152597516446794926944556713817057833489975277123231950800253454656943641213788651977804187878022055422629478749455786825902070972696889702397707288292666322044641394033511928852139985689483931443119594235659352257604839770087474222691064154555158361206885723669242815251034812994685112100046513422611883587024446831086017471389292345522620817246690118350497241875485706140410968343180329877524423666364745170915173259647974960702576663015762891234263374721834344386723474816784648072393440450311646610721831021614463370683942567259220917859228987234037438931836473929658096741230821723813006058890541808975149104569766473698997894405319853294579631961238615880934866139256202239375884956676176063962234589587871264725102415369300436516921831475268650993029654162428096129074814901296599765209238247188186586867072923390224585789806706044630975688126621712938578681132258886846838049722892467544467889454621335272590421253579294751767613539935867804598703626052334109237307849273667097446460696818388091506991525030430997531997719765313175226600175562699725545601589207844766639098695701699626899066883036256941064755627111583777821869260918309569633049028718932249693406288745969206148912726994849986595220932883474153823747033548781705725002889652959296036800917405551558236925047825796760751246014869602569091070090411704440098688968110089221541312764731983117925947744822798301548183215074808507398549958778016982016742396135932448850706602141585364516336895064265975441370711420069614659385777692190754389794756524865153068686069507539796574029234163299072862677806584001159931405645559705576305222069892086826822914349686154085895443837408782920737980542854701431118763541545121657426505420350222046577328660609229764705178618880793693059699471738293967083179280463119170000625392663253268140441045994884395453561134325160820710566781450876427555771973530565327206016626517933330337911158463368514756262103727528673449777750656852598517728009590744436524658628846095256133238352073093774015093305507068682452027105625133129964715230106971751541846896158035111247238246579373941621513019978378274478588847327296744422322312283236371470649315443668093483054562818515414391914224758612148358580778316409830631421344000761592741517465869488469617657280068471650883798167425683270482689650132414308330023446916308282320777076337322483462872028057426707968262809928025319838526408499877914231957107013947290483562024259444516091123822646431312510468733080092279700228856279592050826915776882355508781075933357792403207617350876245833581195319268381688181148948100655094735296192028187830993824082575882016521504683042723350172549825510006613064725744794820539759285173865256222725048877125687986807761689611915409860740386203609630187155394184684021651858100507581205452983461210380621605224512510204496381152977890397519424703305336580402373139117501819950721373679585300711868522088792036303770050136351602979062153343594833315176669131900245224158783555839052241754608935792978414028688076946643165914337441701487788069548776858115546296043480492086142389123482889920269794092054236670711733684998443669520043153632835798369273637191104815588959258116551730755026599240773039607724942811439896502742807525105257826485877105431085107281004697995693808818194654977743359842859859393301488502908575842965255212545883072613688446401233059215717451043481265029459684196273551411159376549693679243238604108334210380179431428360945973994022874315359688666639367433028466813801776742914871808745633414448900493429089688614715279237983038047884609984098289787456367697955085063312001099391605502974449915706930467799298334726221805879519208545254842898685973762979856397621167120594242832357865634219840915498829952086463011874439932898101225418871648832523572143001371707805586924007047202412220706949212879769626150424383570642550650303760925776472576867434689828174644523596963889252070128371426015312085876501797078432355754837057510435624922093626997032845704319873869275359191173169959061413479556859505565521388748568177012810690731632185407929070122610054151351576700095100231062349169097905840056118771206379872181111108525514953795079914475269991833766295336114139582596896146127069683780929032908750360259837406721984820909881701950575017817102647869888010403598194527351207114563283845609521320524809137874869745614475594653719559183024930027744311825492006523482352132338505759910208986638522131963386125611536810674626614336075643627463296936102508111605928885276797156016404470420823667234475091379410093595441044199845727022177070999707366954513105800564381734777561093792523578485152922079475788936236563197530018853341986158280626995444665561595996391273415893231106628898058991359767840064048183958599898414477826282325470357525602890885674578364913014526359960551819881657179877607691098682238844566829821669101749162546024999483105503157189285268949234930266742836132219418645798616698763905364229201832899152409154720234164002762789584441534025022392222202441667197815658381272927418126161025023778141346885896642963204045094369048437624978228749297586983915894006226405958133319849100543548414899888261234826141638856461486585784198872303697527062754355740362098439444348389059775590969707336909572369500414027129938948775931206994310563028495364043469022109562239781272242107264747272257579067254504020245794785103956124965237944389390215339784686999096406193717323355032292037407683186529137212681703134637180785243522301500159866998817737657672020539021338518260961498195756521312899371669195076879771958851449196988511103584057297276322280955084754116563388666342453711415419348289221105613279698664166790969302340442688314880742222336133705916840178436777446632395319777863459658066461599485380678892833155455142180265664009480599314362227242167294100792695359843270713916324241552034831566223095777727750511643449875945609400806334175408797891209891329019700997119232409153290258399296928800799079913132561993977516825673145916445037912316595948848370239904205106633380981430440220692185883655927943188659397099726461612923495000697737819115711660136203404957633990354012894170533075303867076360320224252279170053199754749561270150870399668293685764986546794597841880061876615083930437682037206356677798290096950793429067802336868730179972882101963516216281341485128079498080190458534591670209709082772006176980495028777601928649501083084814843157896685623500112643239197461249546986428805494559396360194087930999208810061307273539465161733222891953622666925424740817574919185482157997259548552319586529829931904105624594702321866574740710319822686010014750817575749370590524152455978575105987051870607378486983630068394342593058254411074382140929244241843356848762721121541906285135042157488133430907088084546565631628778815581134689004372455493256497436680760800546308230103842809807800308157015863904162164935792033839363299179125287675794703931218495063649227759762270692654278492333655503347245920935265142729432653882312783897049793227752047470634294205393673076636804505476452783420615960561758485601588417365163585831639023238870433442353111534431115193391609187465676030306057534991544274130156771185391358106526721101446991496422886308465375607453079980717556159645789109529809482115125266203734051948100296997474580645219340427279731590811920375284892005463278119572704907602865495503160335167766116788680258259097036547569366545294852962164984128539016866695076588236612373698270863873632301484396014070098447166050360236394660823264323876078416594623713038022015025744381934344653954836663879682153931809065492814754817206569621356427722764988656872614066438557993990334355632300967270282707552699823429508380157890337354739139526890399296049984842663021984522488153243313327891483418632109462457550220382346739109557796416217351056182294360068464698018139369580109131728392761462304354315513301509526534034822880875553897297056682754918741616443559264518245380317266824560844106047121541589883334116034898570905040264618131929986255677032715070069129357407326910798370638385858386673667088952263551714585742541276114609851759736364663982092684799857893882628663260836106329160378033161589027970974691418040149578798686723468073777350176776746583996000736462863476846618770771538380209694755695335422050196250528484185151792513375195288911710493213982117774637393196141948614554914956084523683068849216476446576915349966022589655033940701833541117482070475329400069898743200620367942929141336679776902555267242797830124120854848878786360482463750535409395908619232830214686029975420840035543347374460318484686624408306969760281449341034131191951698980091771401639838707488559818913527137547690360418327289188233145838002539651623226862058545288596979082919995978380675330650498302426040872846203305206975813544329267618734048184886939316347684150180783708587612512768701842448091072057193724975192185995831520480004533612851029409755897429942780878011278513353059761470846662538524561187045320127563504947239337084818980562494196784302340984542569349121107855091828991309414037893864958953453968310791912787235601488082432454253418142625500811575253768512588039771877321546291164990440972271392514154390081750284362082599936535807193650433262192095285038768718477587665482431954595823436621692669300929543129524198277668238112042518900034790236921184039896318644944400933099761004530482222916430873872289042006304327768032326217772433146603416317422824797979562282458030361346275379959883623971196200412992950782001450089709041240191236737471888196101015176141756416322543987237957470428092934368968156461039647827624935501022787508343413486918926429023466403422128274579211416196384562045375787756076311157415329926653805808826479790807062177312041332355577818051788508116608214687673263611270174989084846420100220024587152217161084560910036679317539647307369183497781708767230176319889650802311169669062573967832073814406794938127288631210940590734665507177310164665188953189484262844622886231562910834125900038353499410385947558199501708999379008547068432084146534249348370114701446922556278645511517256253511556769711900143393726553405605850178614045692474993980035610319769833736671215535286252142976130721286146558342623009992442483186751153562103451282355276531471303513923249080680776127264500655617240111423841139897304695126784048163662691869956866676039217969414475380398230787767645644683977522470535258065303542445763549626379797524903345056099804962602357519458171398398383363428425959492892949176121201022475162405243803394983197888279730855238325405187880340425423941926578970174635361323855909987752134530995174822995470289496416805859320894983104468678243238288561405592547083636178794480113600864936971421140608329339118211876371980331487638662225583358717496399290678889769416007737995686167549315111756942562433550746280246836497561266711077789723171968675489130936558440993557968403541026109587927564866008267972621263938500177909909702956904933578188805699427095925288702359354037792927164998124806998995918215360182410691009012982514466696117971566516885583814439480676509569070379791974954973185216088538022748535883304454259104799020858775104608308926128643997484674341536565006488172069001071957300523911293879471625185497506110781314216158237977738137286554349031846004521593774713319933375207691445648126503857616056860772204305879109365574612694535334060476762398359621789769091497706286042532115207422479528994884085819711819327078808164924909269118484380927622001979442975162561691291071763805509008497623789770570572804026446699915080297163346905370342508752761431585800887619413973752565891089065739436400074823001029369640185197406307285406666644530652980767180548990972269181544053153166256652201093343258262128171175782608134445340758476343929814310209462000044514274164404651852609543306429648279926925440296240317882074630818619738782977747866515892220659922099063887063903861522454774980796532155857009209438771033455950506378928531367274977926037429379535312775939479846246057097872604418572627078731162072341753750873508005270777239354240497881340608568921660875545877436437037300880164548030646456605412450887389950795537374046538242491657090982012389790094828141724069964826702951604214092952716396042652253859444098349733169989562826230106541379846274469572065689880156409430691871847247579726313024720380833248268961787661251319217125477286514047434742833933530351225185150144688530367285022270620379461164028006552998748990220568572273488291818146603520604791720699135459499327813641895918080904857883682079288468311439892764615897402290090907739553992672506805057197655982421087257721785285771908463618167505438798508826239219752072858904469689948226647662200484990962096737852799331203651991756172021719438872711059875688398339002757841547752277482236971901240920271055327204908404374889915032330836110446833649864278871478755267371417127114520959109470320002276989846024913408080430278789915509638676954575391749323706302240026335555214895019683715602709636659770205632040918094999593780391794088242267317193832831494979811971322826408461173738382018996620645356028648688651036498837376385550749363104529577366191406914251485510496530156674668126318764883112612633852695997060604413341868173508545030008715330482280875709529736261848948278261646636153702294819029383781907059307898829451076841619488621142938533734049521815417735752912397277988497825087327703649140368369657297721669958328168772661591934908187636898449078501056648189476473205743099704990443687251812157238436147385142067030038709645246520595995224282269202057823347825048993278979555923025811643492694744775900771613833129760600808797083878260384378954488977120508633471471447159657090337917504061870033200815314836444429306999022374953814091731759082282764339721911583719489981616834140877200511071610413237745546004130616482061611698288508937241593832303299190871639886940735074914336450490886215450951032213611854593833732464913341042710525452474608855111436561545266314134462369131730571312172253368992103413324490516750301111706476535328779614129869419381747660902595869594066348763021343271187988793070362082011726687298045149738995621612418733828226552180685590092674428227011294651446847406030104820405099728207380556563667287206346053923438660587594523298559153129383349526696271791042396558811675591246696763421870979744934821910836708817744742087487396690420948892794485819557271365957305007737267452936784361545042920072919226070134541053623727149250990671944756506439897172269294022535188024402940045869042971055646455603629089813578979568898723786844148301057690870846879210377837506867724656802361169527529540489479697999898813675713036727400391822044139072707585535078281865645026529498610445098644370895153264870445251806564384044614023010614413332513740269407926336502170455787869725476579240043572133265796406592032942432264096524418017185202663050287368316164343432656822198664451677954071590439670433974779866327739925134033766621402190101931148890387032852220573421516520288237212619747186316091015852308631590230807769856734441262428846159585008310862761621980912123963322241885379967097017507622586369902845604427927742671610565640390305806250116741491371610999941099057999469464186483424553590241218175943568928502709131219262724341215421007860291474340911265502789236034198304923144934963145489753222736539845064020116743926252886899864412478708007285908729953515513881814888651391603027034268591309209545179622948274100961280886330557389001138026601673322542779886499371811673902639124708768973389427460382660131369848693922190417474883967633525619690306419386163772425143253680765689460586488945697887913285194699811384322250246599931988237188301482639754958961897409371373127843666984852471719615199373832403549021018602158495550978115896442960080937768368695708854268057394755319759362733208793773935274162567547542541083377091095653354886875028399470523827651627055524953369914451429515710530937126910201542209016466562829560257643891331802645320315404883854343763994127781579770773467100341980736581933635994478146563232846744296148627384872916711964838159338011423604245308716753284738019072508397074234076261135065569826427373667922533287579320025799897709709530741912976495083860957069888233800194144765630185333080261393215812473786362615684461333527168920680483303063873338247237858882013333978122398082302268016479673971619722937452656778748709719389623279401279444248429565889732125676699690722444772102458590210015830079182890399063874402453289933596723218577596480846962580070425838045889695113574287683864871980321812653663967950534243382414975771559886944533404034051788695924951205321895024004934013246554058261488498527784229424108032741038544954959952434653251948858797999356267491549778701173901294519479421165500633552140782221259280635628123079099764349214679239148669183875970520350642344605587475773669329661337239907386202469607151222195110141991358277441603220972619334815752630434998669366119467105889136983040291678463322971284279772370073959371839428766681212309662022835239106412033837045241444813972724287038907221465867738541045045840630983431642781609929189684224735137420137670724677737912828658051928091636129905825164788100198814731503907780223069826308495254463883239223821059822247051985156371441360410282354140146741884264884421486094095810133522524777429809561649497411878023848850330323805903694833810081172777540056729598924801119685280107603129799325891878298850303483866683199155065790254685286975459303169034813133993012890747474930261214084816638265964904291031693405943649848509356754615024729396009662256524005494579741892966103004686817099609388950899406597371248019717982696136285628228258435318987451525580025427123589581280655786641679062818809785686986875391685102563981441738743586618873005436734893447123872678208122446754412316414322889823259289386200401849837712384113549975359471639197247338018757150033338281231577199538403345998707084976688031234698547353834686568425518450691483908195865312860034158320847514047120223717533776556780958323506791315357541077148907429677722877565446204669271550989260107034939968680071993239856594006851826259385443700923497470331082380231795077873459722642889787184799295172721419325415593520952190653859828117403088808900771241849639896903538648368571312790104633196412435251302424660541865475759519394976220424560266452525410749856197891656240984523340424088939086002218495585374375564071597944525006535741052872982955552993753607109530267682295592842272806183803825501391075809487633437072139896184361750980049030598026987593060944802608461893150712319466886439826186972426096267219546374175121100890838343057888379920939132316225710604644022660012411375891032399977641346128088231951367433125005722536991950834000372057557728037051583834774025263598806185633116397820634023564251649028599978928434953768879530464500597289532122652688073626219090427362250827063209256357425358636654852024644729286673133669299073380274445342716847412195227625450553013149643343100168952340846626879468611285104639341425673074069733044342194368874136027216965809452166919870801308854263113574804430214027162716595696572705401448736910842186477105772211044175363605700695810836222570704285305250666894469976258802392619902439238732841971276520949430502371406813449351877262238805579716053205544263686050218102745900663277990702007256043213658717016398928420006257818309152912260409847109127563246345385404656963256175339680522674458332118084684299649581994445328771499510565930847769524167007904071022394565829104775356756012246617212051724194115256049888311715937129318434227351942698913230834976000149079917093289130311015594302294255807287182795817217527691258462907549079893852100591766780100974567156100570508638817473497201758316359301349508114823341982436307693649793877548436350166905760170928020203679894069463721937929724280015793560807526022737740333809643392954091451597613546176696499635672756789210759921078640273301165314862626172550861527704441332495628469894970459183673420216176938169208655825404925165926239463441159980555130036991629329960834072409034612481916872501820996216614638497107257830827735353231949575208440290776706245063978798747193417873994770362116075750783638223036314253073322381740028016875296644168670012943258357267504759850171192697047718483403385085458839971629086755115121147928426931164145660282180586298598485412662613280932421286671736368878052112324783016392158721529815880850140380210055412802540635165878383769994833267118502292183710890585405267693153779348457965694778522130564204133999858910298233109628091623018416489909832918268129242127915746845425042273349123702473148375756946962365791746876832444972452440590808808476443190710410173399782140758183789330676309939503062978298310314767293744470877204129613914638538072198331747700831788151046123463700778429707949096695971356497670060138019300001246288320421017378117560538895658952011682377981425593544228161908675188092817939818511678492561121545170151553565643174704693259817253502343329725027986022651829831866795552311200646248263046879547434126609651674856160986317838833552139918972855950394198735827406746760490646660839715860192250930367469851702708096770031943369185970260371452027177176338019575050382454774415180668253497736320697879676178656399046423300675735349539231774577453969980130457093254368714203724141177388984701895569937916114853691379089451515988610199655454066664595119043635475262652707939147873703464287130346049529041154556113328630668517557473635545056033618981506911452194986685550722106072364901942249295775971253024038992159617322820572392724686146802822446839641009948757886776410996918765378276265272880828233594072011510988323568344470286297078415810759943549715854669274063447249159676132039872450911981502831104767567845566511315867820957457835483445288919928346333080502467897624030786170488389252138955562381193862758268142705344687433820632449838170612225645550348008897082170921876351318228119506981327543917426620032630028111258519147104860673621552383923755221040948089335748506420893604092563537104141601900092581901892098745350727078529452602762110067499796335847167032468367304848464149817087366456342988156457088548300964204010265183058039025413311385618331405223572259703138630438148590069461052997613962333042790941514443526499111749173457488959690764499376217587395932628544606847473078628088410875891788486523552231373565534447959857479135761820410659132304323834783762685514159678439047598798985315641562871456274883476550044121023215404244535325308753530565416674340162757464597921166961101976487115756615730185351604729982226650269846999665562796136595232767743581869749369247036900186974300778687786133874576586689958594476630226350836305072911568474812095086376712374986966295999284204165477891661423630002707051785935708563929901548874790618817683203215202206061427834140667099634964764919130186869356863753167417522468692905823438354763228337550540911092973701163239893446041624870106637994482184526595411802836560737844578265764935003491753733953003728191670411403882328084606500976367496374242172086611408273513575232566993637245523014121240800177224711082226816157697091803728931873146987810704986965965087448379385592110124762537863743058005303294033977726024396847163556300487135744060741490399103215880318263568590863718172131576887392913761767763687833918973538235475982518320520221692417116263438882404823148497714350716914545839488574267601108079633250329325726415523010993829088623057371193861628407524835153246494644617339772400277595588219852616034649769361895546370691592863576880818998984559785144997884523656889724238725350674321081156607755535264276607900499530244167926771551452030789310399600338161169091599607480072370636496002033120737732081456450360172825507926948819482801312264677932949897939679542792445364098769347826418297278713199176237017514335236802653345212738071843387218683801000010231563388418454913111203920102862612765011737891611745246654909339349800325968743357641518997633253240075168943606000360743502393846718919090065360763532069409099092207027023842348944658035467840954387428989270934859161557301869644635854347120635735866931605176732396813441240750646939081365518164905072657788141949194864268397693443273037389268925886786222617243749113371414333539855860361161042216820440085115009554329819260212374401723166204359623628143904119247109197920331745434756465530363483582059649898699542138950932821915902367957669155950544604591275184948354382375245162268392046610654212053885403263646277233519476789119396929487742317758130722200681421436199082644946182178304039160973382475930346500170484997434361715416137467294186870602723571669673920360961632683003797239038058578571908546751622202166038385194772167473600649769526163437205948870684264013101097478215268378647961668408884831550862384314710473909459411205343466065584960633522860000521144946604739410617343902624738392151367984433063911841784696954596087091638666592300630576852283838732421672412328539775074261723976695096080792130663315218107332884110793054191200077076287920771433531150750864921517024805579445600986660866275600906452188723982309364686849954099247650271651268165552309235937062166476994168206064168446321676079075634275902096339974529578832290667790521859641843222069229204706245506381325930586447049191933324287015962653261000614873421151515437576983525385966010144152006183483244343188952116819133658891793893840323825650289931851988194287001677865284443038829187323780288723048980323599387916083028035215953265411138332779063112451262596527841070208623810466863726250892121175166222124187082200209218070354586722693214638396194232896165752961962569295343813098118485693895601547259040488944130685931524895436614962140180011513979460206432542853863734351130387038970597960565299420947963786494620882141568200039055016169598657767952803551449665413169833501165155192802557629428348593757197588530673023824570190782142785226408177127706890730134767000168867599694260230590486454972299634816322969808232806223557469248616745440067181561684176364636126792711717555296832006014494431778436981959443030836404909777020951690326762663047481577514142812486243978771508312235481801252699669439178502293329060153971373814816976886253811486730022137736833093433668239465546702865028479496681389231308000404480667441937164376490816516798158644146328707926478575276217765385743621859017647519974350675354168843594562197559941373100203234295111420256034090397854580905415840953546563607846829141698488861003465046343428283787405895910390219439415250051565210066769370282888552131131732439904465579000683721975154597750672180674597027471805495205905934257912259977587483282686675763464001162779243716030332081895727408296014974111090295276490841661385025526294811689568668232258380107499292901096751284055787044733060872676442527888963352182780401555393337098752095988090490041629702331745410842428125751193833436123655188963571782486108129854857695062679707240791976397049969617208527135050765966504820797377220349419851596734899950128111400679285925768899608136959663996873880807818934946058343495167157391172035352885888311922234535170300074090917961576111022437503696492139232586651469817772707159465790951509051190012244756822060954123427243373716252083670704434637029103397669375062374729635599312152233001875455417505231232392763988739320848070036667122545038208761304735820042798052938286981270810628789202586365145867608408711266151979867865912173694178974289550724321405497114108135978645432767092139774551139931993903483228572788402741783726701134870721845377999504543767421249482971237195267986501619956165276490567164802011726054752936689138004551237274172210442535861635058335847881449783530385590775104461451355826130306991175974396665212853260891680591099430952099519342574358370328508990559922729145004753048157720949215833635536778826452222901150438803596223315728926020956852225767147092872318458962602390487516376110468216544937945903556636662264315236638757981365634473780842382560163267502697113905143147479146359924733711770594015190006734516421455307894523125256674941699600526382204926271684604806693853970270723221981808455597332392718156216882012390904478930284185065096498848009783572206290067495541377262367642304899289051668680012138761424291943432848149425896904329877672464972728843653432230939208514708856734946532462955647101226859637985426361938248122266661797893675754110399264236686470999873058879506548113509777949146303678601214804906938187341296288178386675784494488432577855538316302911564213585426472571998524848220046012623503172699952115142186991132671708933903099959520048751640692080422856547858487934125445544672966019161991919255909638069892233151842692369103814425704401758942012049961848937277650609691532944066718935211726247343820172293303067998594649810901346664486038827544406050255703333381189294787587070440528599275170870971209688540800525065496594202767288286287711509278019247719306593539898810702082478073468294450587005876554242870404374115707300527006358152390367802673174305738719605039913964356393054721639556016689109469681880537003884981863251233027051439056484117729441379114979982420196835528415278061873980921600694255059350896945571959260562623970903226557739912069558097565144967375079883251261197332206323252437902591577023388277296765753568186896104916690242114268892767060990703204095253632070561556390700307271948906068207968465889730155439519611413586950953223699725119088291288138662357060552735499636378068934499337023418846816492236652312257675728477612942124077500597136213509736640518180171811152672027749776360284982132091418275469778905869526362768731024533142979695842599797054819191386362489821859586280966019137745810224606140398597961533105719306524730672952485103450485366278436554753381479828503394987560510588597630378238844475398310055032837405142530568909781267733980924364691054179360260720339875674332899572186578340123818281418080429711301144808298105545421892652649464922799079264347402676880427230911502780818057019342981057942763901746918348328733496212475397502709764999290315230079210222842957815672281829000989210958622902532878780291374175164589424148881688063614954061531610867896871115775365087082800171642817255703042023514394568575561240429728443445378630421685411043958297902056420780674714132628852362329294739066429853179456032046142621190335853881287050419980014245886497892498673599343541116677090093338077412598757094434810357772459051580507390959851703015332189290066135492920963755370236311577435765634831034628580758773858930490447867113455502727753099590853914443457702741621191056011402587574783489208773790447803408676283649969542977345465094452308837366457266054760277904561630529275782320164335431898909329555255114147838542650345713060755318647386296024178878562074916537334086716101111468078959530350521583223368533333429670337159630698776729106338977378007171818234846942350447216629930425129120739354934188350797601685608355261115592356255392388826986887934221596622899815758343109065644506444399273394251941225393523429810511409977775794086052128200905168199424727719385661652547809272818843745755249864155175692726872121313031948750928377995028521472887197640707347080412628541049921233282877730316025647710519349769997293609167089532648694403433570373254130928535089738246536776076830929393375006347195465280775130030489605502350220703850948277932028750657402066087283591475004684221747770747023327744931262208586886724231726328376980799282348128999096534864845183847043273745761512377683615509224730137801761301163585211263257045445774786532391516321537121056152609343985418190428747137725131326170128202342939845020634763057420409027966457581849369069409298463897323107884789744889204119311984481079717703674586060505921331430742651491580262033226589818859973744178089255004459701492978628124059257952196396084388245414228569023815924250911464088128805922161150529737163818835049996685107708223687989750593340305115279696416735286466744799641844141019320652801171648542145706404826338293639684021790289361539362343755047050664271761273426426036138109651643781272136637066161016364851051598696587984696199374786045510450857692353409622002420288654605300748732198647611268386344870784666033515750928055439987292337036089231014637374235607267940294365539945490492302214689128708209643530006706954775116530908200483200042552151096387248241885575462513447312777701024907141460649787408762648914286743384885632771232665176866602778387131657839188172061025816793170437393412867225005540415047222511614371732198264929938822911384365071235692277170359379224499070593729252362209716750962900650627675684445746096070217501856628899498110765880483535162216080912382397357232984795079509288209497769378942894102546659398572285690283827695244331170252243047429635634358251979597613640092246437680079942967246132386772821795647152461853724450862540220561913501720869623929983277507271543937268684715422341935908271255076510122157050637755422100945806906062080775576353918367451407697514410503351049297494716493068217529633539728057310232313052461858003484695896213193509778731103656221897034566535342541950004307799863375065073566172137357525909040983783484646859241953600967900770925327330145947139581885601211941967452732283747917973376681991616265681845493438028379474808939752638493434763283401475815361456136269203770800905005200083491769633094895223058140471731712818645254047432076707617507682845238236365889508936864036108499716060599788163829554262829334801223074544348877779924296738839012180128784421950806472687511682962498428170172042228195255917456887485916771224409497003291085334968593932736258280062402535831541661523595334956497930960263946877608147845703867374378142575772199451665943183851481581623208451035373582080188548399039140323718907951388599086275216498162197965712233224341081083162114246298968918002807795090759880200464490792895150795624853791518720484846253305763153920007515855946938729668624701439898778832838521975225543593833652988939005779599311818144098589842800877611493375865292084347115386423144541631094204441508408975538097768901484993053691381682297339178006132566338667002340289488212431929966815817150580980939117898385704701960890859277875960779905205850826930412684353897098130534498625800742951082564824633060358640468946083677073419851085498342582720060058714670932452767773841513799493032080467183775449110965858851755826995361009966268493678202338084203799815665724438367383409989906812605960573610287886019848155749107281415052916268158407228659144331930374059000327213579906129288278446174966739518783746251236166333434394559742544369418592791592283688550904798843639052658491059229860061151643667961015868425132818359786389324131441817783444662970221165372562708579488606997922989035265179658295262382115910355606360744644568924739708523336974611095467997502273827698630160882119346534137277495224122794666182926387790205255672584002184774709134194027159240669620703074704085301718683275011185392883266910650877897542673593224825616357594495656062727153322095389113770226773318045618302291513052873097298372722962442655298890776990800015618511933979456216087839006790499265877141946877724700214118009420432717992410864414927896580966267703616412583931898986232287367622744095320596100861338469026907895073419792033316240536138680481566217732036083739686006652025402189782293293167839019431223127944342861391465372730911374269297778772558052446631683177310461818185293149867988712914509034134481603198463329604457513298004674814996029211186841888960120417440135712535677650918899768071250060968664252118480119613331194780234386964267882153502621457417470011409261113338810203004589756802960270961023312957983653326734716588468667426073402789822013199052006039915551159381476319975923301968547698674436297144711575170617822737163417004539892052197041391571252956181643558697231664012846631330346277833838084350061931443307805058596384472025549271287441212075662208799577144853688633941552808767817942811303283788603869088173573159046742910757339655754222539201409722874240420678176547067339133140771950364897580740636311608213863460231989206186025389860149285276050275299146951871723333208228510398903688378179591049882407564130637239738318898296237676655953724370570224331749905812403425938492619073184715755628991770504321111745847682779235171779633838171622257104935216725804940351222340419003757408490716451463441963815614030303654696830111422524918329782853394711813444924735211728082097337880652106234245011792007654757809376493141649011271997674180479195563330009871482505034434602983325115148865376451594546192779109306540524060129600400324930670785409939608862929176693833166746673691895665969314925511289495044695765388197075697024001999508087815015137034421715886201698853160486592947183543930092242877265665266270915528451856415019320826468451923202256366868172677387599141100590812263267947123517642879962095097330716898490468680416396574743305238947690957984738074141834433392802514159532503802050541549046822890668367695808970909014772705074433807856532462951715496621626213505046061867196207908592556971859359655417619858349476044406444320488842144944037821966796921904573361709769231469429884479347283241599373085610887191298291582609471389977952137284559507580973982543786080896576140747163331191604348653299293541109362158146434984977738179135568722199024634251525040146094385269798321952211053204736598140333856863378635501234927146476569352839439735628331426549584263967864821843123331731884839427214828831800340102040102447745214553858030757193522555047237170257801729214425707970206895755487226985657902135942943115506198702255465694144126662023091331304367467437357077826478598598947346804740141152631319453794635517340718412626877507906905947675552584948864684841318435891878935964332439110630513946053005533454959822342590818704069344546270633417256909152727372380592113349142393388407901475032226062349279866835989893329531734371284899562708444973711703583788006376638105916135811363870811157297509576566478936593755085970977401131811607838578759706922849226169602642247779756815166046924217436353321090812194969951038321661143218015097609460345422679608619598539002093152236428941235380326790418229337515433774909348632377116103435343871760481256287887193229919801022278337674776446965291064546627766193578741641404493429363936997554153800321219690400381850184731605510267463575146743249412620544743078603811121397413729953269598176910950986188565511656379119418087146654020508521170254982672674039494445546706385700321360906056099613193733159634375794202922527299187361467180014342711890277623419754544422719273662378502076824170815027210025746030064580513815595379609965105245195344200429512356438310779534689368761182011115590624891618430527550054510553478745396906416073068385999241315413095345426022793322613900111356976088481334648246108346998169280584089270540041744727170732522233237436584544588082687201874964995318450858851320053270286616655383894919800048185611393984582219803009398299069018178362052849115772769349808770914414417251799108436822456763814737945632589951786937304986803289300714970496776378227784800758579819917457593054566279954940278795039838232156141144556246346422746062981740765205452310301542660803763719527155765784666422349945469240270891544972473120508938634139286148032192234278711264017335881323021625821810313576492535876984789553034580014307891068374276669499241987132792243723213256747927743928132263853482214527962786219556827141839120610194322586156685669034309140306136763937023636925763757745007305572592612575714574093365250418301708860711413039196665973294631868414497456154386004355008254245154223357203958768353159907951742100158189890953685294920481634835046450558235676332096708394479018797783437220798359042643342116571506398867950576770601167541854030631134306930072192932039868052334980198023253359340642670113246129855647328675622373658344681382835583309872639259880644594649771227198769872174972327395719629943547990633094007420003957232350526946599876071633411035234753787736338382879027394838073215347000024923792869114402783482838081499503983625580241591194127990128472503860873104788513332107022301713323059906301563891000123276646688272863443259113500533440495179402568744917494104402869543683706615499265033957447750039569660485026537422441680370032521139624471791393812220999997958736623508232705684881807318129958122996224021710567525004899159745804151580730734505829233050231624759586125489897968042095487385849454993287209306524858344734661219338417246922379880792928038845428929819761354877538689456991827627685397017756538653290248373284458589393737324895636770511719380197615798943719709921112991312703000989239230320181822212274799514599041781667264820640764938836076313407948655808644077666889316626500978344208559589596752993360318213717625604467752257810484251601189949372909919548379497765479768025245933341104320011429754704366069245904434467094082829167204882257195901709611192022728414300989969235241705096650231315493681901241562937733169939698849902522413056656560384880905678710412409980236558165301269010832095277547361531489868811550068669096613047143292086122140018552707676245495907926892518904237819289169486220723867428115527618987257922923848845286073479002624198101906791180467475783353635867130105882174456582662734524150740170766550154489357740632108595547820467581937008515146557780084174708858517791420634623084803284779853964341383163618350200530216119119720130113900417897091862373907598365654219218080467589396299897448915078730395392943480500454443915735695147707243195484460193334150310677904889878162902831463701394857133221234874029851276199722121473282069998362908364563702845189910750928226972955940557750801702371790721620245852458518792638746480107826618142869695214373713777165463652533691748103786760261661211624312713207174171933210250215731342894475965923305053897692725806053919098336975669754040071916942533023940072151541190138885641628818571846430500603177084232382615594526317816293336143371807578211214769070052943674301309769951599874285669971977304306977780370930594236810518927494599127257801627153208102070316409894156493176595603045113757469037110473481158666789454113014642143948770524059848537933160535560330255937419388663023561818103980853188739436697675448024042455005746370689803382771731871882233745311491251345417197480312594975470671125813603452768433283514448008942862900657255995211057486010614050925152832459726659415926742570095153221866277438882542695615496747546202401841595616151428782986213313781406973130190528628173774584350008252225818130227894535871844417364431951479290235217458001230918020575491526897526846448687718215148544336655118284676527027757186163836979355511270382932578545243840824278597715940143083680840988042005334095969047075412755146582804514483873828092215028131377810598431851776192175588473885257880398156767152915434816695041774652382009166304124773528266819986403064745100205274114731787409336862253245247212901743909860251233168055225650262889249757693727537093095132636063308114321832792740958258912279467005377957604465566690399196523950759008014652051604184616505979763346965374622024596677277826851283631090770688606246571512228295938818350341102997853301684065342056596577989278103060589653325072137968301137636175472397829781634826728164695291643654486999525781580512137749947818140836986386557571781556604807686397805096280990485718509426154685962655812932326507086143270823655370882706458229108193835023696165070459361967224337902284139644554407542410426476185240204190547302857825282101471363253604181644847140950837253423411997184335974753070415092358003313371285938375521690235305192345732354523340462638073331653279568449666942087444012409108260129958131156079851948505509471255332568327200981214012468926473035025054868435687799971125405354668313600986567654129812879933087058888476215820169761832966182075465267546190803790102837155018332375162950174243495499585803030790045830720167657132907434368885635806913492723126330311471519587931044650707824594270830866172053343642072744939658807588188566278088116047073126471238198994389571289957226985158763435464163329819722589007610177807199638658223616811449207229776620536162050998086901097345658537330691178135634745888805069774269752107065526044425439260030103244611205890595000356975141857462902685185061813638645949434265094990554365811174859793385191761961580715927719347178104617508451686822056472307673131142142271251640503931584137263089828527205121344675471281796919988174223944481129075129878752417846087401556323767417054491287915297552228085610252128458736101480803059795443308923777022397314349299326983433052289811470915377131684692435919303411741744157590208088547810590639954580206103451680752283739557113768668309803967313745831675914937606888482893638784862068190226098856028531423940534739102128272266009555153832600357103782457164901551509305055398967691839371909597078465927965445970779368453322106877131653335422434049696490060601821953203583224313667710791224663514712958083010055200854205979558855605814227194775417159884256635597428649460171863734434239899153581934102672986537757552713842472309769620165105794385217783120853004398045876023902223569409303767172267481442511850101017436599160556950399397230706267376301126028951661509325072413463652259689967357142951247541377257112952784181311669435513767685193704330482262928400355990539826150965548830512619545015199464859896969283830684323593192497722624994847511018974660871416022570423498785506407024905304343238921237946908364294042369546347077941484025880052074358361036287219430046404841417890848638788432074705489121309817835919867230357505330914896884716734914344654198800752616793145751598905188586566041797069651969722080715522583515752684204882752715175310004254874768577142203558009704601791905042546534523868074053995824272247766716419670314366351099679504646484503007885629898866047223081972974749405705007900109691911668363453747692990180759266518580603232165987238593540598140101203682416747023325689629366439574929120836727013949697609421790146031599002060331759510876941235182553623567095616489086760487113591933919978321145840577215006899596704889748301754207979275546835898555587892982891517908436354040069799314830669121329165855113597394186427828484553680232202266131560238505331893411780328798966425092789926177329314046855484820758038539049696960993701635428388326964791513443950463752029466980251883253322422550034747541257608132510369969481428098570387086944840364647736749907449165146807262257910727648958782308277141271360692147540235288517168599265740633744843595508170818200532136471240924021114270945246307851339106882998357192340565029390759429635947863059766392128054236261122990358175724763493456736814163032585299762464674178834571160740566841993198239100128245135537315564494114788025474425312180170407548262597419919353281866756659516667317658525755427315483889835473830397597709532145044729549908555747200474829387349629851388954700348189605181451782177255235342908215363191054364892372379408076974154661480317923998196500032059383363848881383818329632823031772449118264980589245654470441341197707917160633195960014626172218245456876286541949248335663110420530098801542784642605448555365753021061824094388642150482523280334422491188211782122676713207987792707814159661794127670222100328116846229642735633461547436148714714733027788638844750148596303816567742562183172264356705535154670517986636188495560561229618978731172288064692701483760273971515859179134145862713501575028539791328652002119319020940085468165238410866365519225947821322035113528085928864891976564678087910903827243096058043599942505296220211869768493602313512133129549974752411170681803228679610286790651980349948928336393301835075635273994228022257555721379477362355756818433665822034917506939587430594033247864748002916979055051227213706785476849181153649342519434017744899635764929653437740708049170346671338486333772544721474441524773413205121967165118847629136481909997652015543666426795226460778556396850133540555731022017830865530664446194028446400253943236320091597109714264391981422499598878229168054808378459420475858397932335329198421368871314111660220964347285588311501089883140178176091410431420764234390031262033533755829224967207413512965963085549818817017665218864851586671368646681982920197676308473571560378817184773918125300891535082010150952373737286191329429903840052868100888588986313228588824989783176195976904953960623024874168903082192664191421261094634503462333514441168827495312983381106075655254872145481624562918972611414707718865390496791981595754830645144329103274205916545207461290502078685517981072317291215389988381889633343659442330783446793593105956394517314608381518408627039024748506043826033667749978138004842490448789526112155689956920862594133200181002916612644702909726526304784082754401016201166519465190251618979887969120678264144086142059391484103583299454696334810153932519254348042218541227437724066435315936490021353009517132970420297727629605855033302097440989991968368144455358713932064438164282760615560270224646449649440554872767565271333957027721711512986873353785883043417681707961607889272251098694311807629070561947312824511702762057748743308445154839330137947181429445444878283132494952238348579312398621761369742753430231639204991448195184193438835616478803303686179322296889361797859391849141306582633637992032920992212401078775472738391024441199078650078889159233500493610653616670490604557478860754278461699540978817503648238771996384642018667453912966570099623971942454034367722141744567392614386834379302514034278808046724974268629738127352586150648393051486898883395647804468288699848877047137170220936196810122489715723947778578305038993263366620922607054570197374124547710440997920502469940230117435463498434090170609874856486275083393909923180141268496232331003072090562677897242349815010240065426326604346607964341895363931732150775059906779869469367602159635860670399589731153560790529166035652423692083602352613720625592405255316278379982733373767634357099821322729562299432645458323464634771042664278788852439401759702693003930372232897277009892707466958902650053773180640778229879249415099861388972831819191246881064501961245538427585633499005416907882978230241955803775768708089345482946738253817006966339834298360453095953714939257506044603324940948113900890865337059388403132862421526976007013710874791051729130682207615021941963272378423947155719401010986572333056277821927873460793024765532545989992541768429756505863912225524739550087074098728822655036980577309789834096866187977728122069186054812393556816331148461561342806783302427231397117558314059250070008800560532910819356947249326651185190272251150305614407637285896333763101183085728617284389375587501243855619070482418159603669812174453285722785463373878305890359407819397547397035317372729700983543463764113229520896687811120346240460530724698033865444382872698585866923234307958278684684680005934085389628141445914875999273567081791512015221237338335754035852034127310403398691191096441925529816882619109081222280784901657789888929519144230239199202442741523204585727230140775655736739357349405137455728415375912917593584475148430400861236926738394216969549866306875857843012268373491882967994672397262004247671697791846989854682247894740295936652347669271871693129168138127843448178850448426392052124297752248165467034084774226025111813695333482610010869929261252896778121306466349579624072399435154483175975513727209453811493098139728976654908252592897607428504935618928072612471695045268465625909066455447069952443534728076278858686218872292663591375974129812631952452249414273054278837099788178993805985201424840569703951816715839277829854944692388454286043545237058109966409694556294392679298426936186314209120256827843661729316159794148672984527677598064509370908537863648344633941868174976283951445088782632907690692728654210704565042252757409703195103067809594845373647313695074465490806656541023355655049974908976746534018975498298077031814031387317592338054129649707201790853580651000841421877918933899521524850155029967846937217292000968179290835214771031528798022481032216835338726099369677686738185629219374597072908341125055507620232554756040485145761274923467336065039212133832431905940719858423679964653247033467192247795955473732289369898126782811517148288469423587224705847156615314407545608347652653946073749297545424072648547593601603872805197710216567748072123805744828282054631100808052947553025906447200608506138547050877239831857355020514933821677479869605276773875844471614097603072933068921334035971791557393355946911416042453370210848748187632788250130368024320061628209866198833581423665800685588292605574979839544554695097423294130619899788813388776392735228122849179291103323396611573481255011319898218705594933148418694035980095620560820730820024490208934286057279671275203389891979838617058473606216088186025498326937426862025755100050756321618835608605101815012619317812385238826255323417089921653804930501349257674761646865228393301794481614283752808466227718360792725519793011000770343651421413924190598023551606692283719908761697001746126399158160418272621771103621072856438032291517946021131687980683392845749583538737563975819186190903173313686909707205262689818628027002565016990541881605955905048123722999509058268557795576688293193229009436078549213814343429383366405684857559698710404403432824560734642295893794667062794121242044323104447453830982415351321063229924840245518398033351566659998556286017809257179772287453183258423439634865946834947997214080968765212255764673084656211711582658853456433838739690096764242159623053358723903777005499040700226200309700326485334391733120769402626649059947317047884492842146634236110591497516764169288767610385272361812522245061893238658501286689574073654103997988372508329434444808297152213775978308722544523379581545610040302703408371681047611760924909592569339570275682729825508925064728443878856338599388621078037055512086234288663846161102369998807276035397987555054698322204782760858198349207489101220439488450397017415747929049405884609385088284582382231281859756188510071073079044207311382710425085674940874182454558354233114282964076516316328852151527008665108753096953822918496434337894943430584395793992454349349806109748591364704032478874127960797781113986076251078852767084304485073890512051877563543997464582398345427870828175691978903455545485683295333667207295332844761712705150106644162267760903653872967733685917921056509053732478249766710240711989203535477578032752880145075157776716066219607352871361676864911418739780498468160563548744168728140699758593252669608993136114167549495856570980684928329327819653838092074409811407792789094698841222380056683289650408480681519916343760424887573207515887790312491458741167819278855224713054756658685223221323885963616548695037013930610002057956717543321112880479753012919817657369767452241274914578089008008068110329526575463108254727117618558016371524695884478356768234559337526427447831173391185040466182979531310897139431234807834761110218681530308328713286384252729351704558012524663855174045501956335995085734716376220191680628871768651843127108977618691826408257168933183320306265111544871190995516749385337449057768401501088013496042016307675437490132678436414106262654267168052902440960609902396894259468128922776318827151026310790863136035479359372190876547943256177718831230713459756937092189322700200376681946866674178736044152443903436604589851835569291158610076993760326787389737704125278668555508474962600262427492479384479654068622792653032544912062067529012363939113648509975879355389934025433444408318954169116722757044019982712222614547480354281356774251316093790955120699363369782936149246452244132008714522100697482473956903429570269889927015525941995620384745552026258165948683840294557314368912329697235671600221172362741762677340844635112289083195172879163796160329404734746704347922885195942635746153055021266265597829887425967009328950029059462769636795337814752649058043253899251608643515255473029928528432954942715691265901957635676389933451269385352270474043787552644150709911798457185473721789164198086508794708202696211025394425298489201216704412442833260982330469229046673964018935648814923733589370186269088440351632437560088459789865989921031575860750017593227053139863496751701868956663360052345295100458537281009064232071329151490136325752139020119941985345914115411522149296431036745311585692331371307762510516182033552545854598335691957586276361776290984324820200474688853350753727996814288757917274179270111708056660947530727744831317392679934611377787993267454244490425113983994867131139969765816244856228276609855726551903725484055653674137332411076325531569006467807994398984398800628103657073855510848621870338284056749064504177128044893632452117121302314448164308051468656905765376851470780002680156692228659582662459948760540553840005155085415959140933417282328127794566745027988878128522087280154698263479276849189754588325826068288214884606531189696463711256104201020729873199120204765789806884908395992348951830009931406147963575368667568853580603237691704763120012057815125199059427355439776799053890849124033712964264461933526913911376612102031047217429829816405063506208161659647283845043337189004834918711999191237019547587352480865755673596004130032044880134348489644830566865058472544314511495874354418970094346496175127507751994013555267006331535521830434898354807057766420334390285575549418915271663943661990869302635312518339950817230362983437248483701688780860965263045049633684879993443162730435617961662443938569966038172781555881027571323380339891358488809442369292239268928923332164508566859311652139452195640781810784139730989909485566147076185530300652709010387627608752348660250431244648560326839294961505801981331363676956788928127076617896113139475056552952505507801893115732363212099411509849525184631397481106221301129542702789935142819166114381085561271953468087893627794736363877356084141609204658927297006438987299844103833784931727460359034170834723359256847582507586511736866922257937329886106227606740777498108075392711379609613650447190682612839325681568861230535352980406331941883284141617045819174886377587483899643426541937896780350651978009455308346143827560896132259237099442408094339570982289774271178823005634294189207949621072669689671329054314341608894253772575199423074336003574763560973584149289705469401932232108805961424658660729899473919328323414203802702284276173825753923412484826714111082987495630906167257885052209007512515718382271829049711014356687729141209534678174451945648463782082369391103413087002846517269849556890231100299151369732731275325885907993172872419925454858706542767452696948315522540729066471362918466906126396175848513268858393618521192717328593385645095080942647807312592660907001157473371041633882757439958062699589555566252842433594366572402498830323017546348181206554328526327672367214780164540585184423111285177205603828355083812212490805543195267669648755736219252665290498916652346973589994401947047025213810974256341632812316753387357867763592396810910610825855943887460322644497434044911077125357709771767799035020106761005948599017437560541403551062581994143102999274193914303145437346341619085880591740375898874313844687085942254268514980421618298716165785381205158772357905803819499412470394209807936827837961222172918566634485534635483171992008786884550359987461435308404378203595009080796891085134590156749148819824198477969744124475075535850019615552284599811707735586978474196111465532903430699697223650324023217395336706443809598551807373857664943546620167432301472330310541145181086566695918229779959922349103796002425406526555130252792580993887375384263758316689115419470336458121223704401704992131841255022585907496383091332480488898727819591587344731967431775060390256805990796390847680934922022882758957795243415317175787943671356547983863274232325650931089359143025260218675068709845932111092771345648998280061275853755734386261809676860915417828371423120109107170595283077602374975339919368384422715456740819104089648893256797339344737590836082292484346055255589147982250691001912975351901958261059891954435221488653597494060803509184517161060528248171479553247177194889370010506875388122900168955656197189788516145652407907859320475241248226895057682362918348790874978341353209435792222923098649382048634384674136261559688696606844114613107045576407088242096484880492532920215611899348463943238196076594200475478144016122773703621515698321897502242981030974925205164000371629094707328120637567603337134415788892837386486448503836303296831696350973814623529843965903533578766466448551491506357163059457554844828204638331823703836585774790995952301845479088359483548845201544444276935253844921854943042235725700216051243710510506571846056148574225607717229718564917376371739502451428717750307978204552925681071545184994116006694145559690639581573117916027868243004404523810520447393857593362573906805060934293037418971321263786053324332270570705444265402593757812370503861102067433053306873277681641976184234386727109799558581447762469234044093071521311208277744255753010057211227416145104978551003160830982042886958495878943420761462864848338257921824702461776849678459905236976058348289804580361058170740228348336236856055783810133855632896745826705229083109771645914504631731369572190480658779783386847778159103843674450946542919747529972632977808205587442521812921302371728190276023575137526520966302030783374407770491317295943233599232009678226052545493628298099657362489331510006242140482982719509294403197251177301403051603507447910959357698488088507213714787206536741855884428612935044771914304967856969854897158155053897800812131146378998179339601683236634812419486350478134484929708273192731212444199891944746193465326576458164180245810439969421719015814296616575666960604871535483184343961735053621613567998124255439847366589456198499804055912876723560433686927282888420866784854278327626389466076807078031214522322090449269020401181265674774436330261979779720529340382990172616394763612231016725268505804691524343482549093858802847234150216378541465691255118173353901002484783094002851779960031938116546733292534366982116406809269450990750496305428577197661850096152403974412303587343213798507746336311727902921991731961239821676259734622049442016241633663093317549191107782271012603268884720360942645013840009763103458806075825834956987291117948910712767926142683358619780909550762461153140284847949707735816874738912981528777971208360351743208567856200847242416138874265436025108250579028500185511535881757710988044894694714202204984073137205195390206233872942108056933421874059711712168142056518957934042208114226725960928680750767980530597585171768356062822103804634631683141058020849957352121540892043827408070917654225428893049953042160533560272208996621136154599496408904545400229420906412115596500707858820968335229000866728035650557963277324537395839705918537288020761400043033207907965872421770131809762137533366944835639477680933206179072889634125001763382274165305448080863045658739420173216630242872058576935996770371762736334621838469578018354996043854543541329533479096737417465703059917723149144948934628743509250623707032726657247032321201127634159450562603389790405940272691908317543080426205248646388421680727900299757159992042620587253429329636293367392019920634726004801887677501836243731431646001666611626608725204255626355259923768331025876686783080175393603818391260619493764153000371191795978404372036270302648606500787768151113948822863490560132082309426799040689532408204181350165998521412786103094733520022657562712199275246034737198212637958447016040182924712682140428787142975476981319823046056929149689007245790318468563652640207756110064040294961898147444651487332194603318972674521597643406425688448624124175706229416991093137127924389858890490314814359811755460479734044844248009831967530368161046095334451579669172304429493965979157526570171432792669069773146390720279666555065618248836184859715248454593587671805298548341330100987849310361735999890151366237463856921804330707553248513080214452351180646314899267726172368996580200778704903197129284697243090009890394727036180547934878298160613856404462707403338864873348326404854681429933561367748422655923020084874394616115926125251701216380023469557208287265456257156658395149739937362118491973698590274366406796170766611745552801345205410646676363557315672570506997769453378214148075417553841439238779750582296990896351635558630394253423843319700614116927397281438555864845486211056597575575971736707094744539918260634356861190243394690301431718634579677855584500572526666627773660569153749103475492725696231415061705388806231602304142249908198161922282290352999592575310465244381562102699498723972206571731835742673706200807982139407442947628013478986166390328911424737416819540397407976219748494835869941805606468146097943817769075451055514991311378556210686956141568193118726294199650587891746566091739437028717144892134057345761350886115797063088281731061240949838085496453695969339612186620885934931355076389047957157204282282562689428079361783061461085657515880986833249850605531254714499884044683588809340087994014221365556773443754047079989047943138211591478376977812138022886649602221550322242697617788906203041702565973964704044356711293639535470884622968217909935516253053842264963723400221069946482896380238042366440946327528881620714706229527408600814305489599353995074154263050168084779261685355596884367661548053445971811706888847557972578917825026663204535601280746342710308755282541821101357173651313273948737519792249240001186297696796984247478620083388764787158942168813457069231464885479513623767067415185077670433412405008872736374105953144239205341460050839283487250848921556213879883324743590716665754534518812732432380511950411586966137522356877126957886485563630014539598234466671532163890819472941119732210863209011587361297419823709464641291490376374580876767451785782563324841776250846165933704297103070771094849262937355201705004184192855681788098825785077250641357551411877560907205422493385441837621967806573022574011006708811282187894580030216905136222974259786763789722033458584037153116124513904728163206288950809832646077640183063564005007607413598716440688847675190626071018265954870264017987919638691686996711296668233627237560591976144201059839145713975766771634762091209390151614222435242019406596912571561744277975043203663535554007054006124390669864224155308711237435163071135954959509607805269239199256563435409090408019540780067249256759407632822793375593711576022207325518731244742566663738497459837148421569136635421823903690299411134579297583472191637721882316792569084837104193788224914357988401290588583389995754487014835318268333435747640773522404315625766228558985528227280796515784061101338024872934479161005359757003714805043354614798176055961282762043386584775011734920696740552169189525715158429870291555241380602701467960790664952108942597203596501902707536286580110579502893042259281471785403857187772939152088789810295132397710796493084112959798589836438406751904802064703117371387103731765747794560649104551896958789073359055077742033481316077083763295508953388621912308399929031793445509829003293041362884780806287222853580351777131299951399631106935761824759713483474390112683935094976812523141637769046092964060875271554535492542749802514549814594264466675989003480097950995882195231967713781621723488181901463332867201410520544346454998365357925565360938858064442175093657871398684590006191769568104738317238223859894525989577245581792946252096029220682502045831048659696899222619642248032310515200601520445557104763844360207564401131554234128466246693297797095356900539541744324817845906700243639907530878158572374485314448768040886261647080651340471828171265823225206231036086115361776801627374706326930557764670532655409205277187364391889644429880454471866570000659711512757651027113190519832157722171320481570194776183719732671733775796005367660825942520972660247193737181628772619373311503376135041786837952390215887334223402703187045554318021670830516608315562882774130278285294242763370767233396134010446182509907374754294027310680090933820540306979452231834850363481213581519363619963433651889983721897050818708337790181814509389105343056441679616922081557858420073013460512775895866495267409557053373761499497075401964801073081196933984029824774121091124474613596640035883228989396666486579355849889754712090551131619313433978854920024314308176047111775108364326435740990915766825381907492700863150819314345093221749571688998451053095772769226575201971506966160524759339729904835389951335620865305873507898888432829628812226315119693903006616511048718710536620573246748129116484669883756944107723041604128934902744346388070128527177968310598159474398963363201271932668408530934446685515978031919319960850247981554515767717637260079464093559669272043060412425942395632864920608389166818315414675294424901627463440755029554107600005124388154426962317712749980287373655240862979695075595436318088821514757920974978321811360905084081189734769001240054954474890361919964056119544614700495392161668896770440394345676145250645650808432991934853532277687620043867517078590545295013547837564145960540862329401459401892925535964341695903035344466125943229860316186724667999074692860520846334815388701920610890101175531055231275179926414667866159780525814156224318998617269246375524865734847758989086204467807639998637538964772188027998980368497743333595079722535950377729259325617104394112498178844404846574964321924299540352624568771849797270921669431908326865939613074367083635350558854647905148974731584804395984446962862267548980784151336156461463014178503821061657543691823893609619043453645931581144316421925519463988939602327849096676430884369661567148963306204304869100883337309234350065494957472286521198783656584531751335207354585860795911386921255932755772139058439646519014000052201232556216591337925797587101209884532422802982141910055065709209987304017251500871168748897139668863918645130725625172692671686673204156738748315437311005275166463999454404752188441772066822088673623172519054481845941664876559250750474300411775689887178094882190800895450977218968905242914675818624876293720525169031578416548443888050756284470396240916377787649784796874844312812581231942197740346270611621017462340555096194349997052258381600953851668068452725846455455717882112950584540662218068976706333007185045610083834389189110116116454398740343387256364998563540949859270035176908511732253040788392159190425255084234328229782444551308548805469146161207583618430730479327501607767889865337971128354351596255004399718754272031781482719263384768803039065045943930589130008930156847025637911018599111008500558805548496970495880421688804126989391796314703332323436090415101789847661895739563784452193004300048422832849077159140192161127649453964435314759087131546773677441327450637977914875488782442726751457409500957814908618547891061088201765521340542337719561890751170019639506931018789074722254720575726842756512484621919069004486405166824602420288805708102801065647652330523131051258125923500544563399375396102910439388146135870653432372636596889864660884049252251965313361825070223923780980846546080870677417052616243779216279310880484819643257108507865998542542329493760657674620012939625793590112424775642512615124224132110321798890388705882341266998174127078620379342697358417659670341545493104984788069482010690575966539733238662536085334449951337069734012888328179326923094683885794879066804199216763061298773917932914432568601667651556427848743309584292269950536405422996069878593601979591683459578843113785436856702089289990606812832798543988654283429275562705960881675987228851853534299978708075991396863424142723342303687716948856884199346239901515664521832798504683998616488806654416062185785751345429225992176245121056484227442551892281943330103132065906709122041133154467327531221191511653942730942802432356820576240709889997873604812396090293824468572513457584832600547128785499284971476806497703298412269427490885340804518501726326335357029647419998159360187048716608808693210976367428441908153924395841316820719151754541074092787764106065702988779076099989433631632867420380054709445768743201133526462771280818571283095537225569700007064138793923852545877933857483034196281106383767686004305120734413149937613135744671375164759588278236668866512037837048748878423820102668696139345414534952520097361995302005897226932997125586599564051948802450736064158516242459731690319344667912266816524497075746257996834756182175416180399102455290977713952991328573382599900565060220385880272544486480477268707218956221838240147364425133196488009957348580960610600306685523498645746873554779911709441095255646127937327065508538945603628014794055743977573642147137278924619332642988537172690309805315556532090490973818801162893543482589073056071734457271014040121904128339134890453134289482179911911618567323046818870057812959762633402487393048347662164684201608002132621525917714282341096665493793937667397525784752860448628535993749703301284563001532437974646968313008130538932672422141644900595685091503877464270034449664490955597978369802117892114613687298109587558774635031926564109975253188313933688297075386599735819774234659760095750636367630111364000715574578272323272093805218438809845317490496536133449367585348507026656041684803109048409777404127049405589186827143275214789434950417654423558408201622754427889136672122274631274394069950557679515386079856322364795571760809176821071903504443714305407309568199319891290780740771818634173692218252543680944960224973871196985359229385152639709257919231823894766257643546012081957098808617726891656772916982558043961119405694812300298370341461375808355775720643871520575540504365898839297006422706021101700505931952711600475916093451141583102648990073379719163625252995275466700316557816375365146090501628858117546350511663886355278027421538026163151211246273190699955791257959485385807107198851601656685564255257427712600508335799113864468908211035983784932443504945466012681904975797317216659257370311166810754672086328708714414860928860388117419269441115947201375963642973708122173828165470243654218394260409618855603621361903490762514199030833616319319497817915885129802346089813614771614308009691797992766198547361123650884226093357452307577528551732115868896209648387978857084716188860838499411792496059512374099120493845471475352653114448449739564385044360609499513514796618219447773684073932576848472502926758318779200679816582428474078034075308564427263659405018604962051003599147641847480054675989980641737141611287131934703425778976399945411178492191838935038925610744839459814005371924191680310593966972365580972811051434847007250013928474311158603448346814276080211013684461867494401597914908779116312443849339641823850347693584767771354336839582385909034512707042550973152041027201619016678052198509178977489817581894069022902218476808731502431918138700528882412300036802349868527946852462238159815461341797186634367809889877781056939464247728187106936838714369833186327629063967108536814204674384492304453565294310671279738155293492593532667516650505355779113968006153650589214288703962495705574724721294885832324226101611467642568692508023443625945274604802545385491064892818539389910938760687127856727708799337399976365700102558736781465073839362203709827056487464900355992480829460224025790206319036129033525435728458546515843170531569496839698103902011179121100579353342246781518568181754345101286640884773882228893496680173105529842766851004851020789317522195415763297469032332018819240747104471264466276598242803849657090540967301603332740163285655110607985228539004894437721902692908309591906923642746407986813033011298368440539632598188607663855889770947951366868154439898168725849565289895131914750127761050844101677433486423648577023227861043715887122451054390213242927172074349875719777082792041465598833496870360288580043178317526905531093458126357944544856966990288377224495768780235053170637050927357565179862941167110789927493097590943513534265817052130942919813512973094492923728261444497989679414515746327907048163431014706262341815403749927926881628644652187218606532438793285167508082460814331244205455394506567905884797581884111577894612513258659206616556466858079222470229866717410051018712116543172498125789361636677087474514486876618625316337058297890934235657407714468354690969716557412212004199286592223813802910737656114054650146064327385858549827871407294071189504217927116875289401495633418136376520123173670409298286278762440622406952859962143324994988464978386091021876469580966958513086955635979670115789905221274182356047930204621387255177125917680658841400880877239292989099427732159731869208462090323121786084727525054718890556543284478748862867360081799899339632703208028814737163282230516220551325968279434192181815382770024532616125988436560533757874747951934412921648568818389181532999581839024063567766099343883722241674170821034338775796983552232414810276110178181627098110320173940182039031634761302645083209218695484197345802988485850233487721271940650591171025492074086515233802885806673544629575365830514283373481609739162951507433440202397132090369543628832461026434784621505046986675840634861117988344617445398123993610006164410563330504380612546121090174908710705190921706721388310015172922601025404233476654744941657003800423722905211384910830030253198189878143899768950157051328593875404088287545280363437281326416882009508267028540641777782354699141373948532652306905370242817476865447971299668312184825422903830302087585955106506466306322946859228517197462703084892146099998746091268564935189569960624573350637249846631093877149357230714223863395148890390875509777925027558147907572297473882751954516314235555543009615953062368962503851431479044281211034300647104545450104827744847855748159121969999912707093003587665897916348277409907693720482811912776114845261425438829896959428726169577648350977134323319558405165322158197898476465328588612927325340853581088781168457503821803757513590125129744574123509099569594667295226042783904092608606327846825790860678055069127286215514157538972766123257894977132796469513322554614761837961255401201894960224571635097117786144552693346749923769321600147264454239572427425111351129372969740712180670323786860217209512857599326701044224433650830946013683253815105256865507317016118425535099762005309733305654745650588492331270030321130269706196112227162254628761206237487950177501697351100107988769440937849257521662610027410934244961502113777753793732130528783347608029501205155389383043375117426178212409330433147197841430791233663081251472686787213399395020992017957645781950358070074387570482725150527058265007968718465975417695831602165790124476348496712759580532462192423646374413751060276230884634820116792061721922605314137501027147808271642895738490775586645135840129323811732289006161282233439675747052292037408395616752155683645752897606508369567968687915062550465873318081889086531558937208174915579252284931936266660723670702520769965785562816714215457821531345549075561350662288025873969199098147220185519673089147697771176899051421804103899593972661273915580425524837550023188990389679267574130934944473097164212242254938367985312985909486603616577256176276304327371655048376848544942736304722478215566304041231526808159188777608360718227842832125711214557990743830956020117990755632040455962138648455969290537825615257113356217507586170288006116947151732201975095618380753774786303593322037354543627306297708381833719344711474943565406013929798794878343206991055738813691817626265269926378336221977661107945354442012484407446343618536494509698007513369099102465372479965087528719006406618523841778069927473902503846246310049832319427270651095303758731896559181250699398537474781904753945688923336054962081603486392626092216960582464870593583187776522119860238600937172869984140820559851114813684167342541563941966475205299434762477690180801611165470763741925901079649114907776539143528401424424439613967517692705173246527537706132907010304996220304866319660798580576301018889956270222758844537675449725056173937412329414092275326763647406704415991131087755673562041929044077308136208930021248494118422017038695792583593649919166260435792330563254838447336143066798463257965654454805609122329356839166907110033125418091763712142809093408204984935097819367289855586311026005591307008949075187765960550523669978264870600447940275374154127861055012401963639217886058691210901291297247618455279401278376047477338641139946152617083739398344060570516429965446035392916481024686662375120534188259075440134997034550358552576014132338734827809487527304275537438999899725116925281457578767620220484970352886344789801422218503565423019951617391999729991557144834630164827811920455203244809958291926122574252040211183767403988839037514039284807335675270443105907833210312633149404706217260937832404126613229835246100256256844214732143644174585739864404655026667266198292456868187361511161328596859550881149699128087152413977539676969581902837154810138135798206369632484246395582964264031577065889329886763047732976620883617890913249043655851322311962352298632786214311109673058817136076218294423285633904601137693882909725984565717631375236779732823528943790473272611643417875974549629626370606879807024127252969122070157286036188511200969117008601668372511721790598545397354653862768898790287205605629204228382032419784007186079559090513615764453104802186501394523806573231582034409999739144988947021237772958190767006434889417043205047612661690378576960619744453640274624829463980132645298141569349814551249073960178577289305357727765907277301357759559722019619743216289650395254512876962242823893943188038498632679294040943448181961390910835136952923461114038552037370724959557449265819566210042671664331003075896048730625872501413370190978818081243112845780291450148337348158090487146498208915096771106502436111788688426588703499154854781450880606481308538421318675717619187873468482815658731444168759666044613145300542216012761056236551132893436735880297923015215858897481031207798258388662905420945493561738825393652944123913043819755744248819987142344867169604596904955312103338485049494209696009840489984438332405194352353539011268880504068507331532474830897654756326244652795673725228479305847389482770486195128127199697337532341948711539901034900432291661282075753915537712488152640774514778609727846090746317761471977613552210835033085119414876273709798456051152474815782984039546078137846694348573924464234954498544239801400353436301251967986145142820239931877698991006228358688608590222046517277726787704744885547035194955316325124590630041952515310209147512792466490377865288587453774612331642874472987279010365408064378576152131973784414186598230801525123416880415488112473187523600309330332743243506906013194360644725375321765671715703985245511910196556295584536056558864915056949671585016718122711655742751871654027994659059829514255127396333403071255865249664973546368218170771416182204649922611914103525158778574076669119856822562156399393326828608007429999925030883807554820415009641307247838035947478955521486108844781407069229382652387120870194966786666765519365621441852150271798757430614597563181116764844811991001679717404719144405084560542685344305073847296814523202443858477130725805362411592348282162042595940831046582452595544570972614456194108576822033518459416918766058829906690889732839711020129259507284127161482579545131759851506151366361532299985014585355510165574059145751832214226370585393908306263646166049380515334091391711175296306158355971135738404202180435478802201303880418088857709843671022101557337503347830720521718724819884081394724238865842385104604227315249142668684530014479004199378997586472616801181209880837394001053724245504311472487319385404705277675865838407245129044077099538630848288026715430860419027357472399271786077847102019348200787758419303668497326791178181910262631727521205664434592488339743911893094465864552709853662261618230163942400474188380999152991704394058026232775149153010210560824824320032451183631618199172243400792066435114909264460630857597648757565320035192300054365497247112237765648694632888438939252284588483675503702794341305592637023619994277501228143866636933599474300929867436634582098976174630140666704771757742198809875063897830748583340672108687197619449306966126079736700224616924468587638032867996972139500889644229148243949446576565242165117839625959976571585069746968357966665010739252218899003342991950112865610875777370383606515695253798390007261202951519266187721354673488373929741636247539229673495106178454304702251729895181335713373631627062029615748871962156063802627065448413746770455711473416650296605147155104847888366435485805399673546750921259020245208603261992382417195167137282936157777520829211974259935624119358546186280730901611744083863178168699677666706639482401143016926672564469981085044089238765810968613450448874113383727514263791432046510481981243644990789916660630746295713316699224477223425376784951550902761631480362554682772775851458403493135914124230841714142473133501150423584346853370846271235797110837308384767430134475614767642455229528003868631891022836702475709985623524787313098146945867870427544606099286808393784955654174956229980324389934668063457139144147944529892490986759571606769054440652940884429223057624513508603195577310336115029509365272229250673673625040884527809287848740491861516958966975292366615119198970579195966622129597806155500483853201475040862263830225764343362289606211789229129789064140233221598058754839246184597072086310489047512649666294309842642703506782521504491179328270502282235470460884665174882895083470117753323476664111902436042614194168542994300857680707513735908150574683970104090987569886251480980285943753881882547679629528200906103984058660104381806738277527544819708353392317044705503971890001824671638921121942238945568007357581130952461952550713736982598309108698659821966132583107499900363437091852561305792637043126844538841677835513176163029005397732253499243499238966675559894637808906696392526649128989217767004281465067838001585255311521896982371572562361099722871503021565725626037543315904863928103898900850295607839674265887994436064070579970194182328072893745763191482846228569743248556531971609532574704906433907496714199289405661889259667335784416145280590836580864265730142157631244837916131145503116032190526001822289162573401768406812853976266686679503438538818461638401944838377157705287612721652898520757285851763177278728350398137414124743579763485797759522132207905694952790410696847691065479278428480224658529072930267033696940618547183044627857718742686334653594239218211781704047502340745948301314894460460486378221804553872873878728967101466991353349137888021345391261505591706204732461430286425209355745966474153977613468770475767360924419327905984761473908325185996300761283711070018321709363490305553180560573175651132223641216505186630658570456545529088733068971880396718896716886747990083941845395281342094870950991996730691795519393982669469018824264459182387365867243800371890291570534960448664189599271495499266996787735857357891170946033675737063793324602758124045182233173435063889684518785284659910665379549986037755323436653899848325043629337718676780236749914083946181429100837147792907899634860779528114617782512794711206127561127156146798210545337209086757801370661386910686333535103431135523301121579003108249658103566630111923319398134582085782932923110165907374796169343445282736190581153813816828209468589573548133121709278683273914765449633912674455848861069022964801061085487582689818201968471094704993901594258623006006283765209712586821238571781276695896249059022737250535225932235376569771337026324013293069584074381401838154500090229010033051939739549784462307567046498993331881162274554639229245078710857133425285259882345301239819498746105927846510368522337557250179101049101321699151189909651251223217722044169087082409551742904128307300710434777108452458303901296514512155629568138521512285023589434453986601603905954933736781420095391717163693516567722119548671336783590959944979151943377996059125313955817811442055146437009781782629298506881251789181106219083091458138287599168953345564100417252185112054740445738633884885786447749488980026466878409417746334818187940077807285072657222432377531033538080319030963767668964502553750875180274480849315592647683628394092101511202779300207340717304333008291712073770138890350040193158296201969711739428536760546455220925412882912025404224024568484442610068220171724866029923034275946564242950886219108494002967738538447195494901938292266989819757537532367116109830779063944653685033883976486222075454987174618442370943119162861141822646733720408965932625312571385293280733122857641789642854026792677858623960870167672100349681740981503365093939564874955374699723043848980414507082487673337110733133103081523030434886837704615000321536289778964005893861301436833588233408876475472709239249734281502454675263837676895325352839553298100376837799490930148341164570312417116763908859625232815727973874035646584441063937931236947087860708909018064808446644021730271746071541029723715784253476562353704720151654732596896865437715884650794396069867761550406725200135465582738562124926815116284688443817863311298856159649782243660304362116038407058498431458092907785586467073443404485845920743394903746495762531872197930158669007866842565169614012908203728019210807033874001080587321973783660868646628001086271132469097623910044826010422404948202159002023734589904587538764749605117886161567912869753173390071257956281291442611570301163933266010029167925738675455727082515192632410507791896456457383823890339358014435153612370778965230348710114288185005577193002025783598838326254253685196237834804145802393782435447394492035325096756565879325904849285916015176585146904266379363982524774657473966039604200114982717464320681685219038571246339362832688755302487899447983315358914610014717144904551412550065229896798451089610025388306807055007964651161953711862645405152738359791610416330094099432002381856734074917487266806122154005568351430908002998568040500425554757288200874895605676661163752337379484855794964735894358643714859062173299536275436873875754776900434173251113319901402488716432971142609714262723806792266260863454335127367987382828736826775448478644493083895497652068250261832821736083458191679179707656341920734661750202104828201503385675865391452904376471484712269629478364035092173073063042327696926153515338281273005222293159698338845466426350596227191178783812508206681116310953232660019597134375790453953880486811185171112165032420762372930606994358973298069288835723779294150975756716266243293881071179520811776003047167409532521102429956234191804151488825399827018686166482090436057592430615200645736061965087938903238132802780713222765774686655488662343124610101134881473436381927996577820024476497874790989230114426780350575670322579885687173731899951139938414467216113546879406495292019938430681754390621081551978904916840041904657446427874053899785274309849949603631359466123998745249892296680036835355214471953019827534485783805505955233739550626889146168197019294253322167759485898514664149150637092218086580569760233087108555638228549592751122647431210121632601652681709953030018966882524146269132296875206272382958946924200370575877016166280019680660132792675091257251777180707922723948529424077956544360693190846976053726490190489340933348145624851980482435257450687345668656878731938582906784995889755226034346471743020991396902726815294832297428273315932440651970073522496895890322700993399932224570803005165456531116157614971718997652823861059602564610721682778951797399606331620596224401329983429380070941280359105275042788588970146012415948351470941558498916914182680629463457881097406933359742760009413069020188022101535192170444451313494701842441970911381563981078824218182611918945060854264215524391838701462839640911606944296597772922909377439446014894253537488260744802232972685273172779258552268080125729258711935938378551585885938385876115836863203019576704342314291043893930060414819569248942541083580095521667813647063837393632525764221206862371008221042735382400583804534538700728117689186879538674133760171709447448411501422793673750499570887376444633640896946441301149069884695768742001457334834669885453371943863920419261877639489677151947834804516127316104709054905540237372511654492514664720507667759283093974506731597102115536231890145773401699789795140181458511374566150907321532157704330560489648987396344063674669198038172825874808442718612512541829009087033800476169689305622877868319637828138654363546818080531594912652548673538745932553772743375649151610589021826750446267581965557063365404730792640063886328834613443775916831555747375071559315190509911975356073560589824045654406347512613669503209114310211686758252169330478250281194892267631651575016848016767591883286769655932529173098583241557359030107993551806678006365112803116479457978941943383280305754662400362241578845442747938817114704585347300944011775216046871145624997814869305728109312119980195022311935331831076301197144465699906546353288752204190682871292718894499855109349296032291794353258668633341592144797228164489390742675704418739369024748276362545709510894693189327410784405483420043454984798789954750440652792411785197925199015126232221180027261063563326271327809064700130723733318836107788427504074126357278917694636210098845868039129240313258896137654477718324906644658684332809950289492617647206649974444456095485640984691358592432799613718796230603864755456371613543171978842354199795831301560670127115136864731187677132795435176538021962077796282637736841029400112751154473751663064013907108290650549377734633555756455395759461134946866275947966063873280952282496891467278077803566387466244553491756269711756685881070616252890091088983577468162133370677677251876110236492096490369952218382322214753474639809140956888609965506661613327583816911119166231734619511420729886773917559173766240621173447168789284487826707896890857219650970757663014699647015705836483076297661847681179449210024762913123247457074603550804553226427265901612699467819157803822417348755464415407005406133161202098751250665648297886003053178173065020232503168130025718843563922969407896197664516085510000689373666994618280696692351395913981138026734576982344411431749764831058626984585126999264269745023889132715398621413919819951092674276396686801643822802705997043649228965286121140390255286685397427934932142479500240840792619987788298141448569748107770993671130202080853170700914428803897628950758330132798315244986086628762643602328511531236312035155566273747391294740508658579079566253667572917723090867034546928433011061746589175859483942677767963473710178953230433706366792854485736381956315336311340894175097475282048527214803709739537173038399799480527259842355254744950914203560392556553245735994415834191959578640903267802128947668563891608237376194297582706626119401276085433982062967859948717193774565322090696962884249209078618873303761262992359286535343434701185300390556053820536093511791369260483786908514281359814491181116474366240450025201227515319967701104804064870927931884696071031970843014084013416650914080685934715793418049446633756218696453137588981882373008212598047619509879534875273398612366344300096147856258598340191185079946058283582115192167321712634960222753593857310138036322922712711078441114982815004074221120324122737665335033966611113033786878308347815218377223693583872652213856173368042528156015281928509142164443795261007900665982220779884579718527380498161982763642267431367093383324298241393034824967972186967647277773404225828645572435866370263376874512565881852283812536763135409021296085831034020642398427973201369692747447500935143474146063710073287534076822794217991694624882437363774068769854033677068459913230765990010588241770030325384774381312450947948743345170495937740979337824624727597020112916907706259304581583556345953300413988737251849213422679523821238798423497509987139555654303878768048895991407837306323005176517150320531690854490439534806708123007127680649060242068874594147315264227503989113383623769218984965400405145708255977924128006867806970699616627157482312290141307105096391895448370067284255742036689595735158597035127503517259387580970859372689219527841421235519223136860802894803641024663740807095759456734389024724804909131852855398398697387601145710930001295637783940621751686673204363810996720760411680276644236067427219096005245177821475900650189034550426140098654904779515698955904713417119726464668242467448231469176808397715106595992062870629316345015739974314530414229654686048407396434496240994777665102654471977110111145393736473719383786431917167715908465658430181994092741271680589044214487008031691763706349204680522957626308177605029237294840206645527411456116709051424367595883875019013706641787612643501843498231814296167040381329191523450318891797546510374980327349882418018922959557611779235030413387985173797810989662604029313267266202428156313988605983267796257840380114430449596429185996848898866934278045496488354642149874746581992106124759228063236053236643914072136904831214351386413895724323693836769943122600371034245293767371665495477693969747048787837282467212468157097865873186833856161582458235389240513088543974519447065720912908939851558018283993829694789120583610444824006368413912952967936913192953962197594889862491415902734031397508010859344596782883185378834727324299229388444946991903798054941234108411715764798658272223512098712287797137022990847211286281747866571802129672453535044145330662794290854811251930890370551852870398320276548292224583652306087185694372797135423538215174760092355378674212049038257767357325932136713966771560530711979971018503096092676529806297489829225038056823386764228760100009994325768912724876325791535952316864026909779501751720766005908971313222919745590657950015369037677328238106144638365773977137020993911411588284636435840953477600325860002651836362998583881905869139677823730045509714474009378369196385543924809903209302391589920339649945542459305122658245530545071094527114134178315677882435907394719826652089054834481680640459389316208521087680272660023603852127373356074871021063744998792486572020300154350758873940354899632946272901922446718708272867012163992247527284734978749377799225666338351613685873863176384578533110195923558132155083016982733880233372312211951831653216370778760757994104118093623443770894032980272630750917979889961464979906886597191874102611718573949218059398852783619477755282043987382353860105825724338972511313927192661853948054601644489890503544754051705003390025371240467611305496340714369828847210358030893508169201250193026624169303218762340201773779340749578700774210426390955096738498893664960208854663563446055768548427240726811255411937384803630433774522833210212561073352543015322141888673077684951548619017231221053812110960256576404030864995550394431577221267332604495382927807904406991091474919883116240978164706635996320910685765699218882403759489028096370259641647542352657294603977825838593425400570600226122640051810707073773698943992131756359102733817788965050474601926661569348050793465231152574265969641307436231449365322531421267169593626676711528724534850903047874946702221429354694859674167229021441678980221138319716152862437189880412416809355148225633268529019725670797062881269233782244350616994697606197099610811358820263777009298199047380826568978015162618543253926073546675863776797035298944612044544910589063454791428650218343599536341025514098262912605651441513574343481658991931763807101017772038725928469215445623438241293888159818456660244671137696854079416075236142731781163126485440898304283568269781943402092406720789226870184933717499821696976216946538062638974290352006454103958891055487958478777166175801053932030086983965236892461792790305819986246910876859336407475014054702049366411973917999369342442524753709691183953614673123726769231144923418917055512684168676907478891782661350388439046636294014756344528923078249455498225174831139166836525009044847985276293675662684602363504979151537479765573868093988261614509956361532093814373732694109651685770554997512826468202563826199488324558045194580648605161135608671786084455122351654510755637206352511943637069347413660438161409654902949098462612401120824471160980520027850499623190331402752286497744324947497207543392470206285418504217102676555408479994224876021729408590576982446941019203252500396021453081025158918088159789591622146886758130388660090081242211179027216023653566772269439730759063802803017736894798550759143308800693309672411614266631843932689752142687993903876954236566998320495210157153153298717414709339788300612715665877396924224628111611359800939522549749048795709838372460221257704817266124393221811721041242113775991560878334342256616927063065308984911687495496568217170732039347443767793316048899472704299379473533976430295147292673264066206113156616081351192569429318887541011346955955944975019184066712104448945769067834962549448234205437219959603838362404764052746630689922560355644455994428809991954552700701154115368291644306338750409471817651315943014084786193111375170444754713379130651302489871669605578850138560632564373848861025556752818459626812823294485648828382738579164200667935686110234908831287689265620923753491787283735547254453496586341669791776706705679210610665248924443485371185581700492701666445093625241545390245897079690418319154829282952033931909133005924460395043761376945533857186497820768715781140187174265080067358765319529979934522940086013494149574108616920555763403385933380062114699317792167180326451839320224704359606869319177163803381683092171885564165900897631057145406047971869006321171780410895380673870900038598783919001312429347455266292021809501893206172317361014022154380629263152132951026787584819468237421077416426778362459798116071816303775083716183029986134479985746153163390740032342518021085172111586419829166930086849142832898660622303093486327943394233351758124999577517401894343080907030964039118222785695425268455608512500920365643384789841569891293482330361161117931686445648230692852009462723297610738705008737573629580436673242315050316513048027987265337583686585526814934456555480158917149364749476893927182539052522868081053138446366593123202909876365002925827792004510308990623415654106152974720326297746786041052257951740861193694959960310669326078995539611130647447470849034034382946809690010024751631832002752292711078504584580790512149352633986237571488403444025489261784276545013929949597185205340568573588190848119411080713485316251479436887480135616421272543110065961304692265971177448385424249714233633905986918022563593923759205471984660967770226278059797228195676361346590666944261045972342425657648144268933562294578974839178646842714830996311608800141594286474549917455374093631551911842770152589792865130093828351536678162625490716504201754333948079427651151917742681247386063094455339239024953186266037599081858985682090472453501416580512831851595592680630000763978951081379930088077149494516093638667732767941578649989737684973194397674087311110000620257230613691269176822235087560521459951767609721393109722077193906943713403760455007390832401613359758839384185958100128188988211099143436825754448464576713527927571541632342031856240187556739650137487717651528240613844122816119469817627613274600612021927133847403209254026515244548807932013163352973128705198343904410234471436606841492199732050657910529562896179853150161698069020858705813539662437907223662142827175532322890895592543230025135273531571231138102000763624257510508616474441067667057274325837635625052251438626543271309754249456022778842019511515180640560725198715498098169591608013144459112362755878038496040299343056030255557658597952751158077192963521520821186174577562413662642997215578121784954046702300297809096706155277688039508138110060987171930216048431402414684871276888742272365098713245199944265671476894496220930669234754117433318460895942350692339842677626398471828667653245223384214014341503464911776031846882720876285015125553568608289028114684303407895883417608064684377587616634980093358438818749349498384036499232545374447325230832633726957509357808187967243995874982592787249818291124048411520986636825924377601490362496917912752026499296842259110057211068303533568993855720422394566282702523635765825625062623038360513454769783079953047724589193942393508578053575111601173442141483851515384942341017612715137766482571254768925813017904302611205392974988199926869359604789208682275829269191271321151511456365987522300816312277877931687045273239859207627413321806176345085526971508749669907968045278531048279796357373673264646550200946119097602448682709152875382683646245919505082095412253029025809533676105145036209337149061541350290381147050462721962056688192023393556384310019143728488367045390720579247099714267464460042195027262089194795642137820759589963914257692083003533753752152118053975678813655532783452130469110219266812533986647729629233946730011301062355156713827255712059515398327959668961210078932345100518905290684010676945282114298773667114032713518396449639231464770228954245134022901014410733372626277783731694024255166986357579548187346509806128783720761942865574523224523609592315624690888471175082081149069275245474421616017958001197041392903168205142793496515102442895266692895647380184553010007573859353578395014608112703688099651431109501167385481785978151048418893634018293977074535605873638818379991968824950920884240346134016024715361328591002496911152064739011321760922810067328509867683327605172527275412735911846291542243616589957505179941595336372463826739058371955256604423548814300510886420881900718652086769132571887657169530058016310788922197146552313652293968012353885842791018466819537853473333181812896895903168586294279641521421595772908416821919422514762868954710749168684899420607299419550455126790390759383880856067986987094832456194783787993496812993166225262205496926895573527101714491151461951032118916751406944411986309238417626060034981942845639626943180578441040997785642176229798940171503035868662330395545573258417854236562782176988793409142623975532411835233086663944562871615760328015650872104799071397380106306453549385240102043999662840403050164457787398944130380847326971021043427938088820439674058829715655219078409197435759589061346868589323290637477845838547873673878248883104986124378820687663515467228696807136630091575312293071903901653183299882881457086908786857099629385946841003494147361975239523096676213926116524625720264291143537931531134709335325708599935010545534881421653988678287562071479036532858083287913401766845680358743573256414165066014568531294201551996427193774244297544832990174328566488831460337349842021224078866126904828601830397268470985743655688369270396984541276310908489342256955666759093228678275130033333911333359222827323895060879924663525121653457774751343483048491224242245037117087448148584353016299213703443511999815220620384497287846573331721871294931122962460344750814443008372170531895294306753244048418135728399221528343433351954015951583861614209413713117446269906485000994727119280149072914224755365246484994899354000366270568281395590125801706090604169684186178478669443162434560957380489770534826733070825582368372081521510701754166747924995639055007416278040159672486308019725738204607697621083909552204595170435544343008614359352633405203234374189374412519917166399219429760028673858559964506261419775722561075852684697952004009060976087023511918780427841200348620187412410680283048079775100612064709622721718731269171771527544667962212265733631623100051398637349197118282925660862332779851075031057666098142420446427369693421786023279695786007457775030039590983005055836213560345545338571227048766639088011859224658769754676119761662629249498422822067074701411827945610959984477900697369091768344274076626679267446686878505179354603568735996344486146492575699605735855118270873569487907192326316955175622461145412469230292220035104196873519672386461689860421076237505147484518247185177988810663778094799093336642774798466947139143405360595758812070820936399344772434843035422168606360392382367424997381774102915551806704530772607261044693276294710208130492397022863899658904840663670143041756150663955122197437529319100364733862637931667093035519985132038105424188863823559515448445931696260501848327175142387698999694216564796931319838919874691900075145775678671165216934946905165089267342221707242458098434216619086224051039742414658884326253144747725615241105986991537623119388906865895799100563971245964899645499000540346692838964976026885380002703154453116583572488653073992871567366767029931396466274151697238827040619982246089317348689437309657399382072716669431645535152538145435924783278038173766095699002113277081957045602554076606627290707582736222008412063903592404174653660505825740029897898812878413848553417026381370038812582327885249307277853663379708270772160567800122068050124189199675912334954876821285482054959146430892651123500931027219346745392113578289472219743087710720050198677917090581992053256279838197017059666613960376439259220414069150417202336448746067171573276497479918371161737267305260314227100121899141263695513916722420610588518122099793527489741148406703279597400347818111475752805474203351837566020954157795085662503113252883009925806974475692319438465956729435858432106441237509954156640522245338086962679587857614070814573044497024528280669616413808855126929348948844335820014982837404161051562281047472024323463754660283972841335531186950621889775620419029400791231460930095467684634303433637099595015398622769028916943986477769468291365721662217061375075447503893435006358814249205361960531734151220984575137415875066455544756349239221788640321359179725022035112260165331576362851334878423045176693127475390821703403642386438669163986914591744376880053820460417445888617819031372423875510204543905589032086182896721287675570599274265005343557076951772576996984792907846625579545105327428112443388236347375896777343952405804185099609846106117602782716380961713623754532892703602457767341417864013868351883176419090852283435227243080354442859748185340363846288769689365613252144194152760757586937053825762815030420905777732559708255516470099447576431609799493259559536878105829692550417984439633924778650507103593827821827556405005774601086931749320939494643816751662130564116042983286139340447100703474031546141587983946921767784443475107695366191643831527403913352337356509999149571846367903480283670744163629071404903514877212549593352956883542672345362209010947011380142209719939645307961651987900603637731517054922120078173868285906413608979956724942844127951584448643218777128290598029173830813459231156903165474220360025041764293630765405556714610339953420858910717280063543312355122406521619590945798396999274374423407568747345155371501858450993882886225249089580385753170217068042764278196174757319213423413761879229052844944057113728232477597297433129763699270550715879424461526303744959247556094573123026977834771374009669569974175813491315492787032801407015969135348704885648975939060903217769369062604808362281419864327852190728996253104825917367625681846080107533820436021036094498161741498348236671305843186706568887106925197554169538564193487469747406473023195847812567288137019964421157087716111321534378080061204452533961153497301878910499243954144982462284284560988202072697282674547938840235999963631531942420420658549603758608362055946539095690715609940444730843635359342112367558298167117572126643220572141379161402861763490353234468789144590349037998310741570870247087907143085696773347023350351535597265992723451863545519954853271210154515245673767206221357762242426899827192400054541108377129633902602429930065670671288844663041173370124972557508906000858096845121860818510401860271219842931673833974455675866002733422520714803162905090991314377557678836965429747348791334150942656863253863088035625965656284625650816681220889057549030075945349094043099393199771773919183479997215359170310712770308954279801331443943164457958510971486809748636727951896003210011044712028486379154431972854837887367352545804866408837894751687107938492360848137688040676296723119124346837932865924457751830757448715724522470371197636301152995679068145104284593926149590417786469078903013526807012779005159208160557467503846476027944469409874303559701813680825616117539848261677109504333691660018402904363329076438582575746891945718358175721975380657298546051600788437633634729303911245825705705502192494499307377508435112181244839829393430858963983770825743644595462753298974288221966794568364079827105255923638738234994711493210858058378428540104784509767454766271951398015958746252925445700944485459452319391660267647333656079062719855919032295717601990860148358022236368349199766120083368250017909464150727081946175664716841783438865387726302130285577549599524682034129256611220598844625062808228172846166776192115675420170326645565338968910105573099716801473597726910982373385141911969700665556656494223693814794777604511816008960690156212519856783355669683383671140278596626204614374797305387017133183933925996686730252205031662427235602397634545376046992939583351456981462027661159031875543271091750452719463708410401231657856478919748342098875547663627960975958033515033436572112392461009572221468347883067840572639189038682009133700600100526694354212614657709063389903289958816301159264850450332035906380639955037938769292986089702389264570302115186074210025591129816632012596951400910846312003443159510437811494531124125995567902722060061232614960169074029947956789872872488933628161950463655228815286274887888926601162434209171725465470362915786815237803946918949021718631999718362150959040248341148096636790038647616424948012230724253419072638421990727162498862646473598316901613265956204652949718124400158090448233050094156633247065940412874662666900659925592450082363754355531413088132614822638428622829322865321291439375273425464183586442481749380262322918428919744511067769985447283489762359262688279614850867730174040643543794667040488851042613340270659280324978452492580143531847746604195866952253627656095804913941471535168489236795195502466516764683764830130412192669085533018809679731062619817254637496347048979834489631884095097756051313093509969919042379142000788362045597945270638582363288637696018082457297640470641478348074431351377444472392910692570930782778169059016377812771361089833917879553131156058579824858416042081652492682830705594740474583896012758674963562460566633741781658485285483400204418507742728774621774082957704436385528311285784620131617213693689175162736030719993381770497928022951893379111317528024381108369941693286246970528784840159922504782492855959022022817439414706096517997594841146241469897077675912103174974008707228398082912685539564474538660851289632644509033246186928821217117404892980452338994125852531529916054700919007086423412843634684867251401296774406306899038818740575513889853004939453796716018670543092538065385216393441785608428056604938411891252437716708456589212576266367796666463757440134452607287794543046979263900794128918640417848024205398497571938589050874671885222394920636998419736518175050834983324450594108874888876580633953812905970443509107380514534833559665924933268633356072972046385767702177759088344526885240716918080089806982862875238239141198727493887821329725660409380577217374045899011130761728193392148280857390171157500654343594948172948875628868301158163229313277947262717138225138625363143176714737056729080713885380915014687788911633587633655575763273557821213170952591497393589170404759259198248089106905884483346908829870446681548326482299491523488646522907787815439277076109116765232604633393597198207146024283563369613128044405440449811223473552628072524979386938826893712575511464202835150919212872025661162005609453818371647275672973115574354832991734101332563905762312837503886420093000866965120920923856403807243017624775363854052366877915773807601934921219051216745984255083001894908461404835259333686432054890541125200168352315374191774334280558683881148942860852618629867440764654955859663300185693433081970114308778009669353726878047266889831058507254908628461615781058694141986420392724337045863117803829608816575988217374025898493932803828424377787909077955967869740229658003400258120742570358889307204085611821459458271576305337219785879642218400596164006593738327236645320271093186060889796517486422921635729036168921712346028420178627135180010341423312442733119686205730302342542705952074236230247545480241364486303566654133965870275982615419327646221748764476959873927551788909941289791808793212529590910318640200821051069995747155855334948805433152067790600962764001225011735734873436525856074437960018660322651460062714154202859806164782496050549301043069755596566942812612538595719692244115258395932588344326634095966207937707914365290277375167639397624255237608993709971213023955655535899075141502745252042739201195096454540896211211911424454114534497969310956550192911065011911880750424353268231844465286485361263660598580905799597530924565502463432588903888730708940035820343436385858597834335228008124787172195143663656986542250191881279752020722856701253663300203700503701620920877555151126110043878979094646481513784213871450294660403891984958952787486397259346424349913499423296902685236892841451560482956962747422455768895064770993880886009578678118580266739405042684348202540882331643550505892226383026801349310630736782083078656122922684163552385064028477040716262251422528875330041498423547345653879376912215420449516494334926598020911402001572724491534259093584576660052292977648996821087103645999054286343891939679622369698820784282840746784882277372004507844364149833683273518581042226994537724466765380029460433571805428048690357165173988841925635602640423487961080450307729112096192826118310176117987382000642045389776631226110983561362399583773240270928685397473787934242663730531959852153374325504641832099536006071593297274744650757339133642509300180629846805653829996509186486328269506550195610521053237337352975993594814975923445262148142431508495687061887900130654128456186913395080680938106558803600603156008456832216000792301189445341694690121291957225833519284198265128547234184540623816923023386639308128236109649167806570732789347577150714174412091809357844809715844125868795166200540113257980864433988075421677543857064665738940509678471818213906545186442476925086135518907109504460840619458891432148214601539933857562512936735656751172466470271671187104665995260061131112737665504095048495113248397279764720780759866995321788710369351153111401462348555890860848815369594148245633209910843212278495499876488313942535418200482561448265233192111093547815421889693133165793608852598404441703397352109671729564410505863784907314948340506384541829423883389877618860750901139077357256105202915285353347214005748305987777452822123347239961560678707436044507317614827674510459995699616098244529816338389008266873605447371662185639338731261225542402734318862689364216432201280130325001351006362960025847533165863961985407293281035436278802692193004001626896709357667912979707563740269448387595423515847045655479001137539776205440941223226784916052820055810069362332889342520771635290064443066832842858016766351611966512350036540764341367282413083352913029893317757769218601668927608757278773817654876927845381644013075218310374708429032444944852484130444016280805445271117414236476806448032041468520979988660981654987392938139220685923358226660074808738500276137805141788992338802479028019231297187103013404855701434219759714259910874418922249461830756176488407467581798149604795955572024319248523935508297262865745040779257059234565914024334491209603968607598803007185649977065585888222764226840895303458070932860663277497080427408833077467867891388760659509697752746209193781277987724060395915019824480810275567014451165185596411287308457960449308272063550191652171443134793381820580346044699546789821819121204674311777413269871982793601782737666673349987641489722846439678119135466942668232216230514897701904415797247350431907177842948014736737303128253122915254217172844047698434764645786335780688234438922601251349542068095266512955836236693588000029437338044062229925525142374080260802853563167077028369146322435316582304750849523642652662794051310211487495844539720622221742643648813875310355693847044173517132890214349086354304908659147167022888844645934307549553029965669237698607053181576928510806341004160550375207065683416657461451738229245620282980343427740717357250170960345275999936399151910813172569877470651844505859449242512597404679938919460729988104362491632533061196395721811227611302289424345390590877762481313734106385174535809393328003207113506123736132306940904905394805733824488812727051004098579669752462868906189916497634047787792630183113890021934874240319623080058874533395822809042624234065225757195565760441052237683908979069869670868855584225775528828897190939233209368886634098233813199051149970146641026579684698534070274477275513815534656554171822421387045046066919596384331395889366994487438527535772437262734412129021343286490363740882848572296169754665110894042368857564901011617432212259491622175300893944811079369887203216519634506013671479692737538103054127396175749475901708343383180804754935495520213909285252767516816098121443262538784393152241326118238008431803174042430817237167905216372759450163444812160793209814881817263153665670041517900012787116467102817538270053247890319786097235773305677056995735838314004201884576311842662797737324469639264332195075443791762355286355889442589868281163791248002863931611549773689609924328213886937129137892636064066038382191649974707409593888461657385164920304392608015861504264699093669280350758079633029631222405556069731963233264289769982238965505555910883505722529805241417491990013773831860957275654103461944453561390127010542034340186877347415382938234814883406179546771724944873835349705930368243462630752019088013295439848934880472712248429401238836205546550613120105056555881465290755708091479516559198785066588879562024425319199752142148589821204726801620725120085602029133946136230751708019592812886418280740211074630901619168594631556094149482467779850689988434222072373039838089507731239123819477684213127446855010395662665691260466321229942218595285704296791945525383388553241581091093496941912407740666175824198727284518314481644672217692798038584854711304426173047938455022800491521989355129138177552930981289215744871219699513186780593633878996192295361665961232252075935283612911352590164581144897345423253833074629683700328529710012769610642489966850798537237130571597205730058329944305011513641801191757351431697345036584215971391478258003147232096415068626773169180400586674272360853913251078121685925228084830600280064063804773368613858009270540839882703783288462731046452222434219672417265572513939408206633826713028426379789345516548996793859816001408652932582093949168785757332816220257768987797454124020231976480921491688432765126772269591657904249943946062054548522449991436189361445517758615195188424013212796909993807952163019070732951300111527618682326621386179566142217366183294082166649593228339873296052231361569756659949292285265162252950230720185552888312587288331748635831145757141537009803988260338241380626678921541608255534819360610245598511236029351640339610391708960719858124167558098730757342349206867217706085829008394695174963373742929253441048594176080252904028296274571317530153474058543757887936310608435710433940374356686751906064372709259905241462360742282464163255018411880383254076617105812168080742857003711899678473885827792128358952575327915360304690332235036412721820761805934261787208639450077733805468587122654539297757335572282090045123347534565644210730127062929051127124961786533784556630032752792926605970834822313097114089414429082161952938127301585139922394083922345491344470115111412189423864856190652241586236878396605794206987962077480938956056147010096460003578179575519468318192907657162681843649536577425968246247312952606678136046202586070721651319100848440513913778595983234082052881149860283163367316016265861408650374169736593005742685043079951584551089830744150689374927152727768313151500029435029443895507582575998288141218023171302901232181567643710173092794478420080676622254716687374231790166356454029968452867369357355561984120549628281076425485219118636752779599344774550075858096200020727131954959900472296221767431851296508530618958576825576252465283557709427059348343905243008628179880471723548679803553840041173864926627101771983239385868231575948142785788448011625028956327097680721032724340276027518662789613251143882673013543608481605787497081743739878350147195937828364730424780978424884576463376214534492532326036276354366226109195022917310670225610819838824143826655105112492944261369804234020237743787938604819553494700176501736633142400193926244936639195670045372272228380738777375091733110713741106540378219869513623258659033238239694940936877217804774440204302458134165525926537365789933914660268352172350230704046307819107780626476224617028285650934541946704874259810371602203011480364896565840513314312615987501111147111234911052796283691030495293712485018953543250648924449351407896692031673799467818344464881240250249631204780123451073861715811966193854270289962962800948532231124644866894844569245543469693553012536827375431897858472848744073810509149432445781352307347843001689251832882231744109635565611268501306764470457465496155858953357271043871316858009999778547285192590853110130578140113787549681599439229605837610741113276923753293385970506983281269626744320413438429147567877248172635187757270898626878969246459719861589662347450560595083234472177918184667088928593225561129097424808371324965454795817219967999560138745946644086345851739259713040386112954623288652468093293493763247771006165361762055682186981203212596641290834389918804519814193712163665319894404734865738909841429014823376587323413397577483049079707357657277313670693616864732757917722161632932171209744985495398233888067347590789089810099533555869311615759563319150516515805934774874344199390790558771078696474533176968063318296649903697321110893635906314979976665855574569530768014243385832473742410039827952680575710295259848873496382234073999475568597633999962547804637001854062402001951237351236964034865373244657498634212468234249530984578934310290038776505402170173588416390577437868754829887941318978293787013438052858461779142885386800796544129779432815205297550395433529144821305480646691357888615880121234616694118951055643879844971437980958188555182232608226127102166868692387999489210251612247555643098852963235319312037762570749375926971117886323541196682877006395817841252658126248441971427882085286123160819990899405060621590187909433463538057110763775421247259327121985475945971002854398292719795243742716247217037055487162162932891075387245418962239159871365082862017102555257444465387892441909665920302153731432267175468719621416990648909893424665401381672663525691172623186332650657019356527990521554175338093760966035046305287653981273634724646942215179062907690572861877101836995146731649012850328826906586721686400194590514755706568644834356778418174548651977864944258923786320493445363661490560482499779914095253179949506666949060059282479643508385307446769038903330974748574122325990285066494713654721318176468329071047684918862146905577238945591762752472503239730604721823829423666385936109413506362953268744661820504078219160898235748648553179944317035814289158166486033911236670300051109902571448209749226749610876456554282546667588818532456727191500002434553775570573938850289789367063364665923597178473970253351003912480389752797599129373163136078120906873002110086889749436864586767549798106584429924966341688377483947063662676523001803025841168135366212154974165679008678067507215543348931023838158871185340041553163243833371993223582083992027151744569504123334853019056339567584803315887435627120758725888119222651095645138091279241004879538816990668668298784016748590446824927267638782595151286873779428902392658058963850370551276304351175299411246158885613695610004258494600909529602862470841183455590828594083095824640398125161016643462151810181022072979846125427744650579776316622456437340302051177761371658321726504743568230663889802189865580892937661342197994747857167952210958445823596513260527724517949118599573624305637580680299628184102668780037257529742817786097439188741435614291925050242281952416497625818715332814560814271365198075112572424153708362785581973968018923203729947883922562342841412958786155144018594515362937324962481798676183615563508823070573181080319192643447754403030531577933944472732785632870941086299508707342779783952789614408941175692744429521244258283303561843112520877078393680770022629470632828383526516555846798136326060597487140014606530638947274270949304539072869622093520163047185637901366473207609099863007239195264384069213359798652115968573580448917291556524922828527400746573994513005071321233445313023791265043881908875204724397417768655446954888201797023682090301829917607430093011866161789096493396646326297278332493963141494523190036982564726288703405948692126828656399739920168976627831300109634063380840671420821999330966208931687461268079656784854045946948848567778547829525905270400598868296487093030582739004029988819521403378462791518387168777448922075113394199040994060523143552412233292966327695077718604245665144494469696494817265572215079875729476893998114158195776603858737345474726383751007839962671650686942677943316062626897796898981220251814428986630232569691977818543939110335693880621091874335213057504675234941397828187804626204425736033499238321396300149297430453282981196426929962644675555296536181106772908175363512692484780500359625735238713080148802032243954235865252744267289062807990467970444510163904700219705413354394917821993324853138981480922114820059606538411555544012549239490695808833754979143228208741386701017301387766071544518858768625551333611645711934581975798362413746642879210669744206877302602285088172495926815614521215330181033848000169382924331418768397727565922193511270945626630242575587167977069671718706197320937667299860980160555970355556733041788284336788852258141283268773359132671096157072792285531303687043861821420418620582092848614694806744756642785820169682793131465322504012455221607719896880462004087672123352571972116932898408750234680075727979379179072625007767382904730107491349480964948246316021820393122555635986205540074538482783181555428313747382403513123041229756552634860342403764239488978715673562739064956511661370534608964944756900820854282318194362748892667572164839693137742019851054366339090227942169903697653335903626906907422540123914786137247694799078511011232229636173300464692152773125403873080532335849520543942282179607392219798918419525909419254907157789542319825398826561950969542282676061225120189587165823067984534967265700218875651383973198550566304194973787330489169511722859868526314101411276239662066340664128830008330331972454007213270334716656984304206128594228460300667732915426174465847125501605173127765109672801362630082295237762860711836203712864182274058324794325213339615244488367485383020685634082199693163316014469654843297636494797277506975590088905584526590697176424271094371304958926273884472381148083865464957629798720672550200064592025712410745272835528838703806652736938446518890915885839649669392985326184705388575684730296111532060738831056465211062620411005299150183843160584801438246130328608476762194156430782149274191450259910914261849960669133305417398184801250770818048665851321624616702077894326223702108761664324899888321910052639847856155293462522600673966475693472478944809258801243904776302262688232439575220204728184387931136176860164359907744248563102811439611580988085366779734180555387942903992394537529498161144217259950278245934436621540001208524025222918932113664258833241462806758920603535882637374354689323711105603672223904646578915325122067030109155760001011078534520468357604442603157556878803396393516112238360471079396262728590525266484806949184556039344250037755025762007615351077814487426372987701539461393095560924069666568715434122984944196671003924887632888897117545043493673918850889929029991795668373982288146310720841301114824315623519485275677839934830545834631612890265513626720921497453883067309094560713798916233833707737669675012230763251858420543774436537642535590423483782981787340386559103976779617255910102902935455847859524313349700822337838177861062688813953801142963041824729848454949867227997009189223911220856213151307889897143362279540438862222254934326170700406813775329546719201268269301317271199125464280501113603823917134233369626086477038970598320827784958656288358807968305017451722316669757798197262872235596511714405568435292921315166928151992302957288112706671674251715815702394850464301591886241832026918938542173271241374694048788097166932663483250536325927563380400410386150665519947162079236295561553838483262424441616675946606675822121798866402138844727572438188381049473551465242836056092853807326557600702386251484450237573411757756987225198438832814142547363382854345835219652442633919729527054972128528246986277274526209963909320650615630435405071258436554884593389062283443878872648360938195396597571575711397816957007507910236367248685582848311283646766065975361309678637108742699180554986252912754042804488959359464656360795549524089805265101657766941194290906220761709787608716671407741561383196762034375786936680286032007336184370805484919573064208607408947143015571604098142206653405100708797855291347087432114916134811170591565405894777706681895888420345975617035107400692141429055300875746984611544073455781733612586452599361599301216787520869249522885880382992422572314588189294421380032054499531288541201316488372000780576723377958006027616022213360369928227764880352890840454526225599229544271960745627429311858712967515522952686496075424998785451513810108475798689731766275685752534901368653626684813593140754535172054668532089920500043079936654448114263780966896038403899624288124614697756345851815756202263499576484292443946085366781680562990186587778791849261380824454812670071941870448869032296634515059616762483559078401262262168037055070127842383803834454567752249351882367061015862395649887787534651456810849259898603863180723641797109475104077537478236683452329080037113156201856745456191996081639822078615187771096645044164972965380024890947485399244038916260749385385742601071257579350895210396834763577746039512821653247322610131867127145942525846507902399783893571296083362245832262521516836862430119339030957679762148701228747459299516861548382223679647186003841430567582048006436628240654092928809387977673479120434756829461749880558281993593571127371142818798623064509405713268973630210760350640164931654546045832213662713684940881355808331122716225332706362859206451728676742783773875207908164240994873708264877531427909650793200690743612000525057279897683754852381702436259115223428085774401758160854900066083531446474986477085186509365556792187242096805132975324158556578500331249944587493680076695766410850214838860736430250224505950667599479472453973588862220504089441662810061739088264646209241573215307695643568967060311011343896462411101359737789327194865670627695909661932654293286394475832301541091876294988002818834268810199958113037083547781694872560648151986143050909537355611680523481258556302139408653504018668588485090568167792733496655010881234730265472411809284128279035725292295918876407474194055958626193866644947613847461536709784708341900928343150964482351895285460061122373429541196448570655997024354265316426990722609768942575996650729649801434697623979549824589131775303176186299307607038050135200684465112019683023375845840511335513477095225521724701106652776824569561205722854207408174572204693376977601454360144132113330227309043956228197632121715865674072239769043051353788342233084512992411765595050287353664499731413689511075188093085992914555655701995760805030424981892990693577995383408456777803423516456176896631467352977244577114960590473509804140313133922929082986531984139504456024449565366528343263117890427957732004562441421816899562886506529814783999473924296884086497897728012665501997494993260070338074781846942239535801112207204570088562916124656561400068665016361908693374571859823439486230951765873494371604693698792107604998021109171113081529649717883326229495359171958812547336351148539942466638797686309077299431532284775810896197379466101462858050852507912012791846296297045223749785890128063613847613771439050727947566290264590495211786706223898901867825949702515768813969485465728063575908726710529355776770948421054512455499766027261283532103465853879187567664847203467265989428294649333361211186959175107333208749714332673038037487315367540929064874232232498778613935662359269904910178871985208708193661434248695777114801682452488771049693194110768551216009485213092714020044894292319460354423776020858140875995404356051006889358125484103796275014896902582269194490961910629475150123012522842003517567165107934404920318379446621729807845444596514856733967006355632571518688187038865851823116765650330860777834676192981845412728663771714236327152846196418905046023821822432475042972484449328943970959873716026024146973703591340553969970164707566685528868982332482074200526029746900681004249105994596750921210821841946886467976066946823974377011797170531828222594154759287706263300546812842547820591775564085402342912123780954935583091803132873158131161534590600361392484666595795383505119975895445570445336815648096784650327117096847005293190817436364372180234723951550219447025717290276627859330059382969220520026786813364263588489193727184802358034506743349912299424269438409702143657221981930268187234198309124521366799987080722876057563040860329086793978217613465291447657080813310419838395757685142242837409296636428490421349859939082460438470564210811694293155037833429891162606258386949979788509569390421049264363276122291324846708608344949930117599267762115274251971578763190518883796233275892917069291609587345855373653074561792595516201383273174372957232842211860269533922914705800188792261390536704221200746396270304183009810281409485882150894756186742062239598756366011486491239252404691597823603421226531329606272748941342203140119768557291340088634188711275268151152999117294185074332395691334655463819226483402242962305568090664072440932163948413977615835401660846458526857198659239990039774781954514171350965224914433551837132409645378596856679714871075677292570142624217293947663867188126849868321995533106087861366254066161333753223133117942297785968727689417206029909754584503727575864583966744085784124979462821202167754084564700280874479052906857446333480598865841298991766511086110448031680591609464432108360410181764390982123066637056978512929132659877094846879228434369508178639166279712176852179033023087226961179996886814208635792348483163645673363252938999908470769594836816616399066583253869664765260500595693440901753283839891289881212518268457693009231824832935917975620470516170369952767891111821831025859193870908655236450519622742989537267636624338872389299858711613790735762266116350560192330666201650214846036021756144365203996332068846139601211136840205735947486457578126847909027200781408125133330243807115117506568036544626283109624598497673363238974987580677837895340458074564725874798417187178952795810637835311642380998751846521681487189335655606982167422953456758375537359547049551036670360916950864816846866618358490990521985716319409994042480703508069426026047797543116534707202567429172800941390974401971531564492695429209991606928535611266789137349922187600140861108961938135949343148836471992591365716526228526717927641739021919274678927155141399528706773194239019635375169380800828459045406175247932619666728275368958446528881138461121868994683192998011299158681156768975639444208528304212795924434443169747243097358569768570937914469091129968561217199008562827239185364442601052205670564207361499502093005525382991171945923057993904026034406931246982888054424969722523770430310531418034970485524721516996975945072176213237777156572583691632234599199645118232438701808054655532671484489978490838616607180023964672176979413912899800535841955419574258877815508328932226402889654068614479665756995166168026788942951902798702442272051137903336286762027108611681592861809605066482859088623994732123785775086163451120276560250031586306716877079235574749091825777052990815730437656538763759295792418096785944243238373263050375879610041940938364193054267428323012845978393806010679363235078440596824135522066857024251615457378802770100365864048987878623291941631924920007163872778267358414517419719309623395770314663377265271724771245405102809578462332227547767423178045716168634174089522800528401466263196280321334340402291496303783903805835394197479177391437605206134437836131793343942677656104629182243902735461722344988102994003475567851589157120208857556886344184099803813601463277014480354440509183430619884941466260494875725503702316609385257957237750710521567727072733666431221733397656037858207787362029084780099112413131792344819457167981341241777184471691365628071105744301567875079717198819705421561311790980866178903394411888424823002117915767117915434855433028260102256599673464724943607613637043879695153464833955779693705697184598777520827397809622419300879614662514129771833011520851250679228244993286690727832948777612798272931003411097766031038510833808638494797001522683618162769009290457191213853547060262602632719889576644517384388419241726598974872197443255285744749080058179314001209808603285078050952679847514474418307385769282286702154962653456964520847085109166263680262069664940085428210640730505082029947308826758963525308191041691547680410647473895427001526966006908844415204122826639759517087722505332259868932517430684505303298096872429816196937108465182287571391098121605518915331916065190038627257360257274369186038930844138819850368710928635398674530042730940902529210923196296246319900266006333555406903371355175092884607703501810440489180967408895175288501722349925177862404160619424179157905320789560074801517859102005432102961916912118763788861333516288140830109918057655725761900079623626183108984894526755945918545440978703584265740009815610199448929923219001249646324335777737436184712807928137630581484171064460118304472234469166727066753585010766449509933301204980905520149975193928424150813681675633664974742518461709019031712893795881261352163250855586582947292597027149514831211103276112284274897163002257397617675290030594507348536567294230569563697674632767343282197020017697640974023343493109959491247812300663477217725805028023519410618636371029931331910545693716837964986832493196182365330938959670860059344771378479540138703586222852177442804190779911200028590879029286053065537601247688037027938740028972847722855387122725099128909782094658820279905232298302249484204060610616645488871624563186792666970010597044568905514831381599698402943007647326010887242260873012810762189724121248225157189646434757318827229478600042944407663724165392689281896493485552314539575325426848263234488879744634060596710075310205241553744945064182257970558094651047353244240460706261900891898175921576851057950914203119113982319464643103045710025788021824378576603044185239358046794758503217863960627316379100997712441052479802900753699223641395258753864380863613640714943597071945727637580068402558343480398132194317898701317853969759557518309602564543774760889034210931936994075114141777002408114434134479762364192447375550144122706051391434328946417102749891904228264194346392322881982711031446944355064456789954704344015376359980981089140817410427618418642872125983896185415597284701095065640081019444260958539267107307981227648958004131899926664160215030418240976864432736365596430840722733382946337404887111968843319081600310696598807361410227853965161735535200996495252473306309032570113193829143093296416999992899623827212589136032964026558441319294698179165227652542290384092512144619813615278040984669595682368094267570331087736867322495918323601137340752729256768847191280530008120840009041181558481007773618711900758139878902323202464983205306854060891963174649918408579839677710065892489385850630008606162337110228445195803558992348153749427931077131469395220774155980843394534228876329570406448031598492937231383383100261324954317728924827166513251611547930778940515808190592847997126140855051335803745859745367848629810686189042133293565233164162225226156338763906594133294459634150706211027315862829651254685718243090032207622250706683019421796920826020513346841735736575741861292391077117597920644270724184159694993332647229592122214734179642352240251773349284402409978085454901172692164911472547398494326694349994249186466955543225791092052578156368936886454550309121608482067287250237262559749323943418192308822830693551560461153627060777426794515924840670525044393889792039079110801623931411542632155438882998145194685987238066759609341816413740702164396032428850647717979628166763075387726411850313976720355193285315182098302414184856628693563193593935999215328170013488164863275909608667007883481245134874434848935852708879472479809185432280317555945601430949850478402009548873887790483394096337554213624013524127880271745045527623610927436008990513859987603379579287356829852735557036646437073634050629195350598523675047376726351618960659542590967324098627351617141197382727846086510418155433836942904902679132731251698953977037080685296356840939697267741174259391052361058281802513991229602271255770794018117142070204026463282616090781179472805727585597366155875646772860555884006848687953095412894726360843532522144406363225665399664052375572518487809583520461465439325208659430079450978028415877560877344762200979684412134135604200294711224666713410376550212396104966974010519427324942381720608609208770284263543592187035185528007992407073485829512029288310090046772205687280802364125173415558413251436499264213780151604018414321335795829790304245298319911719944534587647715741478057794299959054581986199143128490249941105991200175718642277843242395181860876248677983596186611915610477008398427328970656514173743662700104229188693753964350679233749941262140261993921833440576368875742688564499924267676985924702829726623834483379791022339393710399132177392325193590013031677061001009229113519658258377311293175633061181644901209444943788646617628856989249148087802803486791801758053510820417505004792108454410860362817301498650039975586166282941583491686197000112560240445438458961434436101025573628886316240024442393989965335583114914676787855210762136915559132413989892549874140566116051223038618651754706901085019136796076387113086019995950433656900859978289400055525904353931220588226625520932072851045626003417532771504271930133570306162285562078502680411598575390462790818103476246298681928459997065444082677389691789314389927176691152503720921681964798298057958762595010117206961193006332565180378131448501569721500204817403571129498789869791137400632007056230405561156662024594826929442996791542022289463117434312617667874918278767836684959021506080748702202920954064443509443456906253392561413314695291711819425123367795623180181680928201271929429643560481318757043901283515344880670065031261626629890436509891231223148531565399726998674811405784484910490021819805155728276158089888765217999417563749670180160985984222664204912677422497144262331584469835284322243650451605263914211526329573416719105817598603539761041986658782849655501397000146367659689407211911675080374898258876390269315230791371189758027030331595937512738786430617903490855154614320830210251249962466546708439647285601451171479415167726086393802483473762769446746623320078377345723925116556828258690704418277442815525908779217774873897700711356739727958227319476718464142491251747724398315163763253550338949384682380712383558104404789418002926122474234137776319516451833016914605999017050304297095350835899825729051534383136771387070088357075630078540313393926530867927776866871836699396282313737519920773533612445279592243319085953070954322059588696262575660845200861943141639472685594337220178410991956312583668775370516215676270206595903699542563863119953085111113335836857202086789387721901971956005547489499557314547308765517420163016075428771357001262802982265091976972160713430034985022562365700737040255115223684967787247657401041328829899777234063890945822250391393460986793725198027891051924365696181307065027512564104621779668656234493088777439335327461734464426938325864531622470812471636534532657389041017104142083992900225663542654574973873034064735789160537417227718121416831723841262926899837875296333373171055500594398008208573163043892365775235993540871589336546999035867483448741269201649451332693593002986702736398049997617303606362445444059346884459284898078157528087216543495690380399651629129871628425868136563861145360091110119572961472936918975028176099916568865039596144751275935712994264953086940975550976223230465219160282967382657213915978699825974245173796694161089915213621185524921794951672358484536643476871513138849697883776618313673068803156831235386324263050083211834360801521788603247337021801691565859772368140432778190219553709287472000843322364775989221504179928046201815577522183924181709730807675531925420465113637526110932546125963216118261513500735074399577157416568454144554442796129474171513316860723203556872416919925178229411343913345661201027257101013634269771658628349868280690442064697936064553408641866784484270278595078287793112243335625602156078873364961143934045495522284275550172888823193835727773243462693701190959671920926614487872981348827870164695750584763260871178776252382299821735302286819347984232494288980693212211121248416399927607586439262555449858996060380155437988370525816570796873450536069361657061031653178291740685988141414196543233266217542242034087459625049374310962176816494938244915596895631404980401916641517308971274655437288755121987107464902874185402562443993550605508316376505281926505701703116677868768779067170701657660731630235100737797177090858098521940850512457873771565649283176546154998391407346232379568113974014635215420077282900188269858185094158740839933640004935560711541425457009454975094929638886730062198243861032783662098260459182368808825064694255841628420111810764196326107583780196455271619609063702654086385923400039994908063395662907839830194002369160266685267725214915903607931261387511850115847623817587576878172780275101003453470844662861626987218775670925177044686521867456366197236062962772203568563410806053720384015323181683404012927733261907465645532097944946846160093289230443037077652253095172031198782367776277877214239149673547858078206603434348425519700236458003321939572205945776782869244674537821135710463685096125939981853831101677392105926723964033967936781076601307411568085013197843072249275107325849403090658902164644119410390746248781800421280778251762785926763605982250421661410030854843478243546347292221885567956389702610183936248085722412854334263505223385612059919273393599379731038102950417426938944454423024532377647504092388360963560396499206755811368755155236327758419073937054753686455197751137354486258055517369817573170295888455828332208444069487613392887666709939257933611031363419531977962893304185745620315250444964126459585101283118124777519814042981880422353596119782463094436342318475541843214918606079966485392724978167917311405158555667128924250161295974576864831882345784363784395600014023161583391548943510080914475778071575858017371836142436871256638966414497710045874022501064725350362746537540936464206867381739011044696381463983581376209715900518411065733446610842560833576441310848392424429610652426101823063627660982794587853952333056458972017374223338550743687165692500174345339547248238550845690584457164071035253230051782662696023412979741777268532623787829967383619104388122290439198870972579164387361802202666651392878704865147692708486559289555456488495244797855227609883014002581043755133341074975729163602881880893437487596154479083810173206752512332838767417907299685052554680862310242475834038315486732726740523308713909639757032965218054936466884409797084133652069560135825721457836995371457524487878545926300015826676302584309219254772530797422976533412420356240603742964053347842729216167854302497375552568539346848493842724351557983771701311979516572482871432407735387385494627674071931874677701887140871018720708868156892079395598504675029431887152392937775538190206211345972997243178536140562096903557373741173195314388816686790094251738702170710222750086502976081523082828927579211379068853364900331510041973655415079306074740591903307446912075127679956722887074168430321811621374235946161656995002154359858788357344778389389982860680441842229737772796322799251365707500743074440532478632663905353195384216173244974801293517825922925428315675437794287633181885289317066729570444425927505826647528033307074254364636441241193275266952806408216634778877732670469698818980042659977339622779076709251677077558017403438131400458863534387919037291037750453346947617483206996214061308846884590348611210005611800109373065365427334214844590812076924201451364220705304361184394474079192595016807082887176723276123642157667428524585747017746690971520994518130918002513868566832537697679891971146011193636009716366788901941860141800054043828946121590339052667561546287800634516205407963291264906440693881938696411183646088275661850414944147439257359887230190103130041471394584566821950545409229623449493552882847675859193535620680163960173871716698743160667503439817882552526411743826540259514325374834748650562553640996206777061509212581755002475766908005281439972623566106364518254554866343635347071840237152211773655464127595519802966985801765664420006319894037673941575365037153235892636775422124539777816721659982717527639549976797829184866112580415914706445653842007607428348236672227396045886275429230498303505870735501949661443475222749709733247678630029769714950627629829704095846332449012079768797047042752523027611279400573895949643644544302483547916060596028989919666380550089951016779852621051967465236547730706213964174150574755852944811862017607014409267384295590849962181732906247887348623331612351500870989969391403481238368553773650578908522084881656763511182324360541222928758793405239839962154516384093847076797491591333177340865231985789541727374134122528847183956403896701550905849178403945556269465325226130246010882316022415616070463348681037420975298584414898463394524056726715015338645360317152423489042916735802649890955708653509759540595515224478830579912981909282266235953918468102021188459892422905012050011667029467374996803011865366527786412235752690568759226807047453554487752668909809337353147878474435432117466611492504446033185485388938738744023071182635487625068169927919285772064917341112055965753786756160092610600714610109982591737046686443908266635793477636021528317465492299574467550446985592921567870069702580738396716918102682043316450810516011280923214007200997667305943421188063131561542592667457200439891904264282041407051128673157289343943441791154391688254303812405061314021148492237260640823421072749363702881387625900434428077975700849698088260898996889193901215835151300423751993909643673586996475051403859520411261063283456320930392839545623554106364227224996087450409538123307151139556088921149320032521013120803078999710617709900035585909967106944293771602474004137385480536578273610506335442629975087101363440375570825896825838714854368849203724855477766185497794595206813953004491791399736929363817386069810403778730426769997972312154601478772567189113117128819016847587187875637077903624098033572885837226905715591363719431793969849866790391653794906109596390326323060503587892538771031205812606682649747334584382207769046363248855134330830616026147106361631359623853872010192634649582282693551463044507325330218214990704144546585670783215759017100992396559756703207330321846275906639549874236011832378960695376047943912826239675179098981960078159852457872599026223399742591721244742153086845176722672788021300873202894034818005244428336216646423930129078609494587169904825586215462400294671576770113471518017200176079618717067563668487277276669396333297851492742917177971916677612482447070127005914166163464367862993974007282933584443253730292838581992328810570893903998057251833905287819452934472672336044892657035308327090456436794059268110226867076739491437874233845261840838841515902542061622764173031794950044449717936236184885382809698134333572399677130153212100732156844091965556012217709039703807651663724549092629514657541238420520592988575672801142869681520999655865214690055123544269213717294569777040252385513475332616890987326333220369198365990855053540832734993918156351304733912956235252515548431335727135365639998410736552881521897403308179243901493708996946383522535001859778655525621801135745569912962258781633242600559223637265326618582551525706772617652124900493300800118352511756163525454610788473880001091993602941686902638816861786117028111896796168322686416908233611500545474310089796017322009603568161631568677819463423507924520989805189458678632508420340781524438092359622464063936662444409998524443653775385529906484408033846356226865813621252844644012339871927303839425448100352288930590137945002682181585297238772332849456355519122397836500972871546985091910539533941080432201839535511760417882585979027026779561359534138492372924574807247277588217075436970830631612180325090884194798953431518462289155130554067335526589583660608111583150680302658914980706415907575201682035628069571973228217555081534739943768061763815321663507188729682628857912332099944073513148874598999857670905230454144443802729867203872366810678669202414253144745793110322031505620413122060805510651259841651091365992326862977341104721830933038429241946939901549579264845198638597032139525581198516311843826796371554165971540124844603742203794310034841807432872298393961444970834940727797653294130057126212696379734417480569702498693111345235088875374497342705812027647165588767176027157906449396882805766617113010838984371315187199659820634771243151847511541415851105640408716901939399456353620596468857917471207472411747658403593994337532660818847120409753051266167936257007224212495217907414405274550722464304969298592964197849475727653849834574750977223706335734290999593870722807544986546911433206385962332375901100178831754856531998697056976473453372900423914252503061483361275644914607971502201349336550235808147886448746984097917988795932691195711060155333525216498880074572578466849634114251686305980526746835098471876917157352701500123527636116865248444743385633456508767940809074413408569907711743626916518416441946049218693092438662647470817056699429666262799299238990538767016958378604692653712467888128296878330554080456709110287161850502180542643639717483374573141785361819944692104861254320941362613979184826111603502241063368138214128232699154697107603829403128040020587442174522831851035760969811579764421445359424067969995918004366526329245308591664563532342641159428308183374617707914944460166807332545107268967991151578296608238183786612014723561247072237505723297263687240484545535162168749060932080706436876106757162891370100774700113764848338338536589763259585367472812908690688129125101231174024585411021581180047700174885091131179343925322880826675696870267402258786234483467924636788566386263130857966699818767650350088066966518191041542114576777148906592013566164156590965727904647942734202570868476072526831202965571825895973805005507298072229451755187413958478407397888565889708473552748993695863476512272150154559623359237855454819686675102759941623983261530097493988043566701889823228524866804243977694922644708230010704458010382501237412123077743891567849337428687767638295095633319578789688334475971293173968439137516217303997314395899511457562894576169721796365332068672043295362491321184182285125320803832366677297365418525700707046361185395459738704106810739838310367608499184747063520186927535568446410711184741054566943180370594563709855030302115149600289785854560285690830014959718985396297508968572996430099424831096541029003536365153114399384667521887624754819998135475718579836828510275901515844554528635208751887331080330842005483326682127879628471850380313273875479376281477039798532484786072577687139064496075481710315071496374589453016951705187094274368399633588600838360219378275301210046616959395064513960328754846787999187298673601839203244422248593304873658800199480935139688805899698949306769147173063144864114636737980572323059110626967710176877182348850180476525030039895097964473769390702535266672011678222959413047029634316189710913045531738829481555225802655545852495877847852503568128059826508806650616480754861698315089706310263232649298063977439428640897903281364756082388800719760484654365930938919616607199461137875941366783364764465024387360211257775039894749946700409394151832368999476141148335026342648979493165077691389345878484492390478266169374856040999520237786105263714770991138997506128408483521190359611119932134467842028835402098638980168623875847182706292859248259724299927481602999533325554706174527528885379031055462403799885651799878892815687845766481050437306533166315322980577804682990645960550930375377809601519075231897575056022050452565759722827641152989297562788603231820777529535116651526470954289883588708041353515130346179737304426345480540099048704943018469720593506925613246147509910648653900122038914253635751258236659921844314152730676781846222512266005577080525913067039163032946639626927987335693755597827012574360673456136196775972682613751687287924668821065623284113870659698555081805496671140722716294628337915191748767445468349645918142815259073027710778693282090645841967998266945449142449052609998218465506370587046780108038755332032843309947359359044938766768046127815626348535267464641952781918397890767403903260793038829802260953566996921601561666121604533105452044287691048860400360559010223838729509344064109393948359820202461675117134408857666928989861018109806906623613361146811789049173766230826363783727266256310187069169292097483523941693152967536555149024112667842346412898247201864615001428422625815511976167602664488591917185389662037157036945159189396771373048515976908874591761401357052700246095651774480923279060688187703709114358964549660650084937174746798038185464957742770537453073091011996136119699204482010278205045476222435204336934573674872456680004380224968510186631738489236164266338379588300909644052469959419106849549873060457440263116956768478439168278851338007113136700789015859080312595032004908637728684728405814738011505520939842272994032010531332167919411732518605471543739510168735795139523609949597719613361374851503806499397912092345576230241050853232074734383437897414288328755970151647339406443750481803297413805331561998198897272769037282531251946800494763488140645282262135145357483462721990224032605573853714701784447638841674676134395699510617654340653476443943268207037955964064761263685507995062333582772210892396823957034338500871239174001037721144479039702434752931285712218915098404787496711180155502414134721632492095400221285444445854286319638697221300902801493145256017328294671346849276469861924295205287191099328352179450988331733964596240970194867201394637907832760176278657428622603029290183656776332630268530682078172704350684872221329040466421000068546435383298501758926334413391824874110078541912957429001407031089445294433550655613359520220096642938745972775771449435759476224425589458017987029518857262801422384763797253790142213458266167485961488957650132597017356525254604343636216404141929515474991636623759748679140456758179729776944517015628789903013443807508585151964361709780608763505658778704294545475287800744229374988007732663304253692715315649801310726900157516974933546878199207380458097411383366476254251700336504749252323946378832840306310588939907496564921216177450605960204825113284011568892612130920180097285318751162886888158973598735263791123365772152705032715994558529898395563743393800616199452090040691487028350130608559312703017974988351178286046983770694714393176672526183297766731294100522726742659782598700617607117402915105911394520869214446495573870440138256009589444705943821255617984004168259632383956725648829537654961192316270315312606411493911707277582705776613346378130630840687728514415914201778668859575474497533412082092636946819277579625163512867913589409056611018929384993177844673362846083066881363643696341526033463786137155932333218817909131714693492175181618267373287375277396919672921551002059664494659538531028060590308791698161962362982874119023468864056967829878810706964099158394216251497272998488849730520000398468969393244390708918273479753530992587487701498620522071764294736800792072173568881918512947281066643946336844297445174093225322652862294661888737969044126770990092783380365148707327979447862971303901955454223514265757896481016455693306032409844384494690150555749912958337534655003784188649805559809143216031280586694564558329919010185037378090056468366648256546790065941069331773084345983325096349549858451805829921052695430768001456160974739042921597199284264416172371880558011952735148059909105903052019708778929195936080014864421933699512904708766825068939957161681706442076509091050108419075729289818309525247731965551524871971824660181270995297399979516930862651454440952259073256438363870863995598394630238261469139356569588765326355303079456983010404263460157931904900096014018253656127464703403836072060355920869566076418772623009124838977705761465781652923183716556095077656551441938984369652647318094139106506493520797686326730492921688195423503210207663795205818635701767796942170688314135086630280327339332587797458585835099508957729120031511747941649213649320278935511838039840134080336859929575448929882842096387667838847094014146908194901350536302071689226674303458282830229184075757570718953640142355426809069205494649764351238394885662640934926521612585076046723414366560849061622105973611430669074580280233253997656416154053415991204696812516181284080297545106068197743096517609445816549129332738941463329143875006225128634681011061104793301536115127722239054780092994004855435242486871349184284687883496395431681244096082396063909433310310324173748126722895645013081351988768001087974142876706181169138864989513914918200501509997695432625034331750407785270266393861091292736463761199045837180022880302352225527661923313152562426030828319975756661621396707194919888919755658752120115997048345179242671137951295396213580230465079664048722391188072198452385599070655869742725206422403723841997081568311600636748698938041635547097133129273148804371537687295196670279125335599263874689102412658649479926250548468779746115488773663491870791353690156274197371348647393255870620504638698878392591862500069790024457477805632330312303531292690333091334949431257287512433933850911879415963851086947074729595635643349585692058928901866403388081506115086971141067856141830333061778813473008974436509926140794972775585937315288658734174197203457682240944137282606519500495945205626059128436406169506177112433131732688329448512034428419061446173159256962166387031424189427227260252639491838398112955976508105107786652681041205531952348262345890352484488721373389725237152670153941794971553831716474778064057488675994307670773177255811789139782314555770415997171687855780215738630195392311120877889889447843243638497303494844066172284401602438792751046542199977677659637540388915225056122167423078089052257401041353630908265576088470175927781992252350992911554359541536809242357769693079948814810822979195617469183377516051693654152700024823324458961521783982735694938198895726454591301726709881279878853567165375339142366410260426913019216704007405341293990421989387379907004481939466198098086494578994396869997910413599004129076507846671157981979812123431223801301772786412128199505354613664599067291278126868218819503985454316721938810288203756861327670195759002165648777795532920181259048873785108800005306180229389412114378296270790352651195417223489020110654794376429597641729858693789825682941887623457444083766062918196181415662969404756464825584498970577083529341446461239951028842061187701531980352118357659255057613915440357782593103565150679269699818286966821612398162582863656511075430716963060429913956531330771070479114484080460342083292249637325000015080699506056227578374966242760148115558036812220890018639202219592861961460023143428041120317973487434619983159665665149192033046623397017197265009491821204410145996313100466013154549348034509341551924801980227134456237447347231068980066605711104387540958847454516042505707348613563629965280422652225234818543268183105969299509560213993619100701774127971565326332267445806375020485714090294671418361031862652485215964365313126611719247866604789432369189760128461405471880298317217467513879801414363346853063607445471578938854640671188611841960643489098032708425193606894136478577683361534756730130388769254110558196272937026366861968888648308162530092768089686240249369007666171151084723574652297452267111295110266984178748929170884656166666254927492883755187772578580002951390231719133984522435950262703195967335936281660886202842172659345060084310390980389822011547724996004878123406899602314846161442690983175393000263867116281741944073728013583624056012828726526249290222631073917170261925880316561842326205561695207639878855110748244836689695254623162311492993236162137879470726749253880040414171905305167478037703475414185954864247426750850766884383326943172754052347777766770591367258119775215324336839484579487479960337167247073755961266748376043519610130993906490533368658582106288560333611460110442396781057853296871960141635695672629358320326585148774258307478168159211907543800377123700038071847208695534097442158749366926856653478158162793727405825405753717933144923888585923259123377115250170787806989092592446685863051139965382578625514410802675445738306267957613112604202098494469055644224241724259939017947044640591656682514368236706606017413340311397296593758396848231432444824454897694875455290537791101872260808054144015334543601377530770932669529159269190334141937926476305656113027556165672736868590319860683175409577914310443790406269236602527296144995143766093627688390333297678003877474842872585644835715613710062323464892938172148482309604654715788450759141711487925188174975686995596957740603296677877608487933004111973611852799290590915938964350048653534852379109628307170053878913012151572891283610481211886115790762373877505814309489714932022296031221033402528370262997935400862391891864028189946611453063504411970948989712046631970417994602455146890970270864665352003101969540624393937735730382850732905545628595884723740839573538584290692037698247167481640365327222953537883897771684060102088166289594982747776336702936646657440298178309828899767283555967357744728658450052450044687801078042815771782509701911564662881263133789363116578161267172873643430118692171411875586832343102425507948515581103600941422028286027779833302440749809205691217399905362243186600185702395122581669714590360889348419864287696419856057883867452399953748813171166976616242583579054235535807962024821084167688252603681053565042894152572168157890403331959085361593016511379340152090308801591221086691068794471675832272245714440062699735635331288022185425614010643987320850640291226604771772695409543813907428652337161803873361070888287941429999570281434537596122551070897311892054493017054023802651349898219333833550103315848723053160167035286901757695680292553158771594188976806189920478775236519649128407102514758936153913888673831743201121888001745273089547867120531575849284384638535271077308832439493189065031411626432582208827643606648065926987083144347817860321140732740687968721798638380781640050702642366109805360232189032529928550664097772927056015570757796720813678206479344662109163395232100119294668284193850099406161620563439759070417705724899036877262127608434763799613453827131133480064487615789417025385357407408409012924868189527863952429198913104738926917179077145961426988663100145166290763895786007504263026748103520296633328209847076577408233698632045280371308624964000520475892891151721412707409902215247959737465899257295604573442248819805359348333178753617810023912345441502435143106382083138818669141910156855766664649948170085784544483641407955623433851036307493594853811394982383143958442111726211682194599864679115140255099711405194744236310406474399653029969037193429754243718145794516382948763357993609669991577053347666281303683934926692686859660046747009975983335858280763535122010125367405718904265042117536852182587842131723866689145141254080890263837635386145437540731471750675773129638553272111245313385693011060038178245811972901800398573592604805418809220048204489892947259958707523960273127577491366040988202209465593087527862105713795757771004953188792253203634752606609330352572391369604604504085482080291689796051950702047370377072615148288742259041200831508753556314510974188739438131254390273650826760951082405105827210490896894740475985894493850611608904482036876088873399949652283209163321941270564408226352429440056851784846920330951321848896108428453908421573428159648840200744584665295915150816154529171295801943948439994606715062891579538036816624244862839858277592635644998743337789138940702729794018436905984528431616756726676669477942509918756453547733749836299460889169991355613063497192191750446164931084748138562697952532467123906058765269095106533458639927649984528488010675402047789994269927466056109536176250465379993714900109222454386399389016904090865542817716877203715373241718283324238588886367437353857753002199987742231283446604188475522302456460127058083036907392044462483175036606483447395183598649614673796088442332198679969459370792486406534633892365671745093976152058777222627479872892200335596721509281994599712921579162807398250578133175182529602349679312333912029682076418197561450394404259971561269717911244154264054397055778082979793605490255962538666710190474912359426214471995263273056665925780252687883559218629735225158969050663045965874268500212137592076557485884940724017070530967118719368233135953595272142710315297172526737934054053413188661244332057731172395016193893022860444154812557633372031656927973320431367563498228554181624349469230647066767439190358429366426522840463664048007399633089456953912576645212802852524269429869606153043848561985505073723834847931960766861156421095771892350648254753508639075114959137810402509027948084322571320166108625497894833013813751457776953649440678947472236999056804477873747774955137802232394487705366496572349469381496242642231492604324769282984128116111027160399796543423124644517493374614887771968761593499697439889519332395234474073559364298123857824320011143797609064448134050180605397074624638351512978590494879378532175295758173869962287701440487594733984729248029568648167009410166875370953496900348840753917568034143623797521980882502373083302313758047967807525567712490828946837021767491299019410685587162976666544489840565245851828022170154903814468728292249420352413012542373039603761782902241948641349185342750371439270379731615540427096346771996667230644880099484523463390176331810351968831956184513523292496076671441055965206324398182917607293912000625689422970910258237414584898004197136561603541606462717355925995437319773159657993117677389958530269070387854999715588853881716261315926082679110074321652240898609815332862158784188999435577248607672701764712278510969239511282028489428416016866860104075150470642694388181192206946041358513807849847752923385496031514964680883284856433473773494146322809932331096188728269238593052968821558174703443352405868166556062867524291839611796265174744021042665427532089505340558053948898563762998300103990849852788829235108921672459426277944263237163641888660181554885803260710004822970315855098569481344434872756187705057771521605476247261913516654832500410454039640144298751716901874395451821462844852156197757804068138826193951614182811649056448410689035651382236171180172096954463386226967785324159907448117553628066554297899990881127258440643465700620171926694157224212660352334227016587783401738130221763773368395790506983818789978430185797124795971643236010491273430212330710963994265281375138850018453865402109227237455997621745089970898685329832634140183732694794115520098858135436734604696287276538642911791401765872527169651347556050593754068088139689839083600013165470896657910255764126589838881821455181739621656878822764750236520576275747833510271648644482880113570200730426396414122261543974580874362846430891750389038760614906560758344604240918038959114774239459608366229129462391895408746754438429312106284142479026502015025571476020055221088395069683239308661214866252833769151858215416387420094842134395022535390927276684250211606347483201771130841144094833258087932009143479894772820277053565108032537161479982708376351745949081464255527265360177927756982490065520899558145397325761423354117005482142676650371100905110034982715886641583575358973471125237450457171205420400407793793635187485679199650785034062829205568723688192699460637725148437743056356089566972211900015454896587993347517324662691860546802862236382036209967948024668429725279110623716958481175455060796078605965309223145743921832102805231394560034991859352336898027337086584996579776130472829168351397826741411579673726683864911714329335455470854401029679690089272743984439427496950999179001119500582378617923584519412836175627295575270797215938570913439200311527003699050247842724121831331549724405515191953391091135874954522563423876131600809000068543212380918491856689169756438556841333231017586006881018363896335133227778134772034253360033016422242909155331624308310049855037592768352556730720201576833029552199394179678245525073851249669415671349764972648334259311756371650771873157155927009152384964013261398031010649131968807144633924532027909797304389389605832869492724584161107786764731349288236340035218133912434491153087487281051221051929124779276886009522473371993262686523398689734689685746087845210214539761922008715454768940498864282854428713407669609468917525822896779620825927084538440147500601362997183565659988194499493611928946944202325041418812170367927126681337702423409445386654966896588130220127669233852811030073076955218476289474508435750985608084455324093263764869842044176726703252756944779773145347228091166294675432284556464831044738809799959082485024336327457846929588456248834828978047002102911411080783143390863846307496473219999385696205043382488235048772739098331003312228007012660420040513445569930513040860201970681358628285998174170029639148865146154474120369663965682510398588505784173078368880744926516158030261867159812050957955027068422588603129119705196107586038182760753586194356372588873342586669266642418693788956367073812111724633703852570816976138308176152299135150488217027363647123435090104585709003799166706001036052512987376521559580664534859713095221030563563177628075186723572598955020633652307638485714796427638877961854420287256230387859607860940415884087172118809188509782176657937027566105363835704022872003468951909105793965266110897716834139527758248356821297440309750814526441023855645533563205888961309179743420718127154146801020040024429076548515387744366856569584750821592443537094465383690636502266509720578692092336381437366881109624922327859506313040986359123453186846030336657551826404813480423352848355727362338255898940404168912069228997497426028727707724206161740864687032770974094159824217387903892933705397454616506067514629303597999665659975344657006379476150272361557960372605708644207983548090296378134632377018528950828549987656519171944942009513691053299354949458476498263352718138277234801428473705154881519601954892271886161703587747704415990591754433613032255040533681929701901450269858304192578169309430799957203096978066740545489396635129627341911031237353485517118885326267616793076993398780638392971705218816117481566032013942194039861095260627014544653772896496464523955186116795115920177979071984012930080823887539212791130403810577319644446891737101314037882027592973261875148211466017953446651682308320516102922386469407402787266903019265010542016169915633501381652596449723581437406128825145909220497841592842950424062017972210615024655250428657250592665122925690801123500461465553921550871870496519378718446189959380421318238920833010598582474917288293278791909132405873833555257329873527317542089148038398496532372177708635416854515321785159527549434118148690310209957031672603078042596420797272088000822363164598085990338924338933060608047150998487909828743536810896142523781261859825103438415622425668331230809317811718945521780867291335499996588325194644233748391424133899593784961183622478728301758433339639417673475096371918738778590492349252579894459567807018965979727168762999574388445234621408623124625452434358809069238717236124515202896529479654420381449363658605393394903443809127009160653312719028687861162178753500023020932592405909657234830495593703778094584192288185641883888308021266212310795084714801290525711947604113783333506383694250549677296785802066440084468721607395569521503570126764387981680476632128061079493231983879205623037873254572882746442030221153122995679575964753471340844242464894185122778162246784284946258862914047616323140309685383702239347896537237751426701937115193687643920662180813720930273943239319331043794768393366046315412303828413594956000848757825681994351352659271280079354163274126663525565466116514607211973429405487962057526202283608647517246606870933861734627653367992287744113918282586603407230171318348340368326827001598778177374743957368551135020635733598879906141268567019601353195293126687095300531222924747549138545683113617293187986479163387389838037238446615457978892088535874264960750177491817394577508288657314882155369478031444645660760823317222324301927575432349277154062755721270714923783623782740442245610324271368327070727161659559612955226323003253188024758731293367283949144538319891994402664283917871261288127725110998569157095271296885937734801044489433713347863321332673578995599084905955885453401292433804866323427689327351199633178615554980620787726222495069309593470953839998285179026219709426241969908592866720391105153486705763174740331055062362675446323398367581992109576408483499826612546196701889399290725474062056326329302688076505661130233713334534011871312733814600596855554890731242694910282868187134400997358809451360083959656842358412400172810103232997521921619731297363733077927749615872171153409755324895343664252931887180464843261015586361976548478154239392653580875936646423962458270738020733316641376705367102793296308963217108906440444277220416196751739300405345546314677061609931544982555207477605131704805181433705216882813421060197498309270195428619344301094753571203283207988538709765292543244274188905743495611156599029101694458881673248721718552685416183771908271897033418117180742220228715558081969898431638017100557886141528436947655902375973759737538220261001880642073065055983045309015700827150528481385848016945027460322967350078894866544510116661585861295626357649305999856531891924246708541152407955598805100471527412097742047099239360447706232593616714364980756411864298744353805124584223575313566410270328304723189561838006385317310706697587791061760109186827528631269539711203726254645736391928953840496635420970720541167795620694273449872069913756186255929421787944559399173981234937837912828498019575399323916751054975785412192275527833633435631916209510858509470099614800225771181914102157478094688006088549654792285790967300555646188080885302298468790877424388125194790159168680823401641104706050174766995506434501786342575037085021262448899708621619551372473054794704202698841088485315107442082392444026333701677891178114888708005373948476441610404283479328087859365103199735659617054752961276360233014015802940715087930453720766355143239929028482771447226327742857137008278990392603617608325703431824698929294801230331078161683111433186185083273858022685378529610786836948639882613670649299169776303846194212517623391354265528650971179740376384509740026023723141073866619361095015927653521061013850271968099273690156025318905251412440597942227019981888003266970878944200666944303313280738950110545963484411558116434726374011357361582467649995179791800955985186786216538906845660378979879832479732747873981014966390225094874447360321234027362385440178624346367419614239736362610451447224868276847616392202817412176436331737756850446611887655405873256020260862120912880392758992325958233969818704732494298240970808319777846319457018993019352988641347413310710066784070723840195391244755581941427467796267270146782311097887113238004988886935906788723865590018478173963733820663043117386994462032029827689715055728319170428894294688050419424906964349523611413853832016409509488282591095497426787698056821698506973233745612745178097119356821967627896010329050211484307507163620321217102984881667734967269854448883513296637794920274356785993696877636609800904346344029076049113940138783130130669151452532176984894172295211833258611673223673519547352550919019539761267685677117943853692898403043918440589944517710878443738810517925619601067627089190603018946548150291079657257039865847218914295035470019682199158268378863142287336797286820842269775932820891704437632675983772117429952737626570905011368577136328496285441655174535521702345426081256478369793174676146294298093247805283384980888676611576162060317326562006911712756868264080250696034148013220657085880613921432892500772646891640285066283953162121135951829076395483631710257251186630086815997814053370908948162664142293969438160911816400712321312768703447586213286639153004449149229520810210683969909611233772925801060730069175607864162181139010357024744839232572507651850210972779212494126291486212926145522363426519234899705388825746815539760833087305283354069802317391253590201390554293114804628317620926691510256528362097377489930513841818244069010518659701180476723305027015714216108216847838863022453500601178048314335161848881210140101270033337238693959571361577847446037717842764872035370931558501869518094698908430303642036855391985342938062428878204664366099891224406860632507740246565817218228961748051754097200161124548538683107085536054401811251189703412978209626780463220571886064046178214267522247677697502921777629166283550646441028879160780425458976283610210481949661451145569006135852391077972835321316006284830519843399980862150474588567244552803548249149588472536504009448896552548722755172335306831474271696144210498217936607583829867772390034847594547993724881987559181484831643082236927640546620547269213485578111689738504754860584053958069014879729694444354689402812629765190570873116803610449605625661766004430314201727973997146172310723577581963126417959336303469198100004483331625917386319433843259080171228074753468092879968974315907916790966205999681296708315237781767521789551475101039063837163306219065503566821283108872557244839826255866607956719748103961079357908228527073542368324531665892073516402382614720160380936341175824395941137317079525053061163356520799365899630422143065260745566240808679431809829155991131542931919970975582446028990287604958556409873106415502824104116086413372781921934012692943091177353718868991579228222393779777758401776421529209843194468190851731128381071653081526047237329989577940829663201717603207277878279672818498005506154942079730654533755629472817539452119908596839731954600258702845011715176919675583346346836294931446750666670065937222068278588422640366922967857916425670011343633805018027740870205542673304981313920641927774587842733043080281377701517096503150588586145151881497174519428288959678207922211791806034706033941819347401928989851040870372818583810487308655130248197666575231797741352444469107259347450486115039732203686026119301945482147905118022250032234734534577374756117575012376044351074969163245510052329602546528449988319471553072027095863699116836408588327079554241549887893077934746181063929683117018430663061903655060793615136524880373229734179932401163304040856755584612728012183447990637233707594810640005497034254236566035822358102894832355213627063165174951419380696251140887603409081293716060668748554079283955856527072308365091628868082798953008870913120379830817867000620653430761418407391028676341124179943517469220352014713700038433261830581746658802824149811271318814458361147947231630977284798417712993245172596067609793498021606464853616987169235181741294706468665795297518453762474083160997137437127756270077299504906159131117468387259878791698706658557781628147956226554795601198701200944066706272180179002450512957951737754201179945592134306533721769755817463467545511050035207401120333271261968816306273922908146024431164071802538303049847073503784498105705891160182897573629862843641899617349629732831991514492147737980465043592202825541657332574941172033673788730597332469522819241083176216442906195172324756469482610003796810959467742443602077747652376004959339841130612707620847574410121775711480725899638671620196180163855007228733638597763619938752536063721712263216665763705779233371550872950717083841155570449270977405194854422327212861043928944138299071392867230655900205157191014246308925556356335908446577469833874725787507463381891606482778205879621605731336263897266548730328553680744804616620041273422062620078845976374832282695871946264606467107446041513920021623957234131054207081019071472086694241575420775515108707555430956244295064859901463143759763363670446872490517606382398400386960808309835231536383578505314529372303616805530055178358633217748984500471523349325349939963738832188234124209941570026057002435356483995946480008522103054306549609599406088403357130444451403261495123004277271707537427605218979788186228621944014346342876146452207103232998350287615509114150633386224241023386916043159454140791347872503872047187275291324703733804304908409049782781629471946825282701773010713405724358819011215447122976495616746301120308449680587253555885900039158073648250544697930157543754519400322265196572491842196215806247961619078159341703744565427218625959786208630613480008060384642293795490273375004471002598950997496312296022459803314247366916701085766413540654022868507721358652547725650154979013564536815498595957996569044319629488620363480698769869550074096801301630299129771805518480238270683681364204215270503124488887608050674053654225488761419292812699480273409494074251235275972331267605384559617660941176199734215334305351971670663495994841708328418221052180390760701812171981910301343239455513769571075319023296386867386755974859775871195607597354360433988475019715066277021153430109205018495997056262682425642503468059449808642708871701931345599736825728470885800798285231645344386258403300568217717244227543989390693781756022351307769590726092053723380971743838076325444478512329915227107226218548022771168397869417182222638723922682161629101223857570640279850596092859033371455410591638924423260467341989797845734453111882257795283010832405966300421844975273624305824030855320878782732052891666793652295832116693653211832305760493962184151905294188022306789396478412811592190260743192340472134958381792734806642729333458341861025786967399517189117660175071433157645610380216915374149965654791087901993938993973196341265698825908689101275940957909229015666657721204507655092290123958904205884100939662624653876181327079336904344310060941147238759494441371575695849000612361636839467784871760765736468397369380447442517337620976303732858245938323628858254444341849139276851564645975221041123176518363571430058195560947248413473042965734752558696135311234687795987051477012565751578335875746046963264579959321883911179657335209341962288725102686556364748623363216287331951792652003053613888428532860771689897355853714881112976570893394411889873336721508814135906134654508426400965291334184146147054871471017858038206374965382740996691215137997097767438049787753658452552884690576797320914294926848234908656510687035252042727943807327554481126477133685286767165065564221107012706424418464472242809371597248520204856616960998165241871996965433998633647829948971138752119940098234050062269533483812590528251352048229076784206404283451576439693224112183579489154317749358978305824906368487272227973453874738817051793509179010978264876552871725911709855310915981122947092859144415256318335884877930099209371515028020182962839318558309700423941929118186779676108015009154602112380513652085360353969651347741374839295109248569098045186022667635405331771793105949840523391839961725157834738398129794471875480238883414177225184933188921217094290868754923557907864497084306732269240262298337130547970593614808930682773574669506066072636196778157368708717957665339656523368412176796199654213481493328849900565162384607712658790846899036047778159562564675408471274510790201196663826857468689605801869743321221558568625637325793560095410260614942172713890208913630797952924231525041662889323006126630141823591873642183408109053432654809616637491882000159822226349456438277493493660577443560518151806581450035288349491205257947430943666788384018207431922388529975509506514467345464979167955628302620771479194558767738976741860269881281833769607681273464764529123967451130628870153790527285630626115611751471404576007873973279562399457908814512475225741336793403462518743173600802175252675727027344111860085771269500813824490856929055598725601475399899104538423127353730432262682998369705691125109791219089300389718950940654244976376625082749294006435157400463734786256874196167792182793049376990726231374618610756955986077641557690921599235987259654324603943490773878694497263800757146025883816196202998449499046983581498982260677888277536214201235499588578327256831251921930897861902596895215695600822034810003095298344675815615206091308467711608176156863410256684667752336449710758545297390678714870888733398318926116282541860294464704968614351445321058386392846448100439814971271329114905236168195822084515919620171848581277110184302848157812748189716277942283405129131304210501506365114125300801849113526283100781987013845101008443102652918969733715120810220218251592567724227892625120373673553771689518536547153597654868868576635530135860576409103087816657283472902403227701413154201379410746967973712964557935034660950990256317289551480770025619152391586011645412791726912520864745569676232953356729446715231608873182002179440249425615759413109131662073079762635464753171474823332331010939536904881756850617215073751219698328414309720437646467493592743251782518002633051210351791569463637195616244864307213033763910308915274105455904556273711841655200760768431694365351844046024792823235688788004015294044671606043968281261384724489167199317674079451172631809523073602832588178984380735110194447203363231666355236562499735789509986548464649310286689342449694043433620388882596291677807018597149473185684426897544936471454347491733088680616537878379027987347152864262909879854349361731492762135943837140125302347995999770855115275455239856597698564454009897226845605794544226482909593511522531734073672518983169437722923775709685198302028240349553734472615564732036825004219611058850061238446650799564526368945092576074571968352020607895737822322437085446502455675710624350166484248705348730894702720845196901849657573522680574713938960320800112372542471236428880715731848915622754604084409839127100761896291341411076556872470693713003967283569429274479127745717832407015995004763898513207419034582980717323844553571267104068353932344817682844501863315183577178628821078296702537328718226475134179043029851996142995875864668572384900745068645370863207039671050951364231342317112707215152856005807367603090066623307766613344138914281043133943478439417354713427708528072430604821721508887555810855578280324439183162752753551772433328794291819573237113015423689986046561154085140871106292584954550344062093110382251645178192233400324800020677985756848587269083874070777190300336905914735523763237643185495177057205499740798369202165034683967887740502027347119294908902179951815912144885654089487071876334578273783588833726819058043045713224137683888948744555025132364951948677632228010647133906822936165234047350916808070182787402156806468000180404374477463837879506109559281816440189533269570579461654439921763708173117551305313976382068747262090640589626567231143148160664724475046152119933917211779787119897501092711343693067976828495438064804784788408158464078972274404760726082121453914497169446748467318636733329841961195866140002428987639828832109509051289464833980926075719447016612270399558400486699149014644785980482003104236890218713419374800893432179344706811138883146868206370609771650868678840855143211026929961168472094799514477595737786669537947831658008758160864451886301784154456327088723915977669672914867690526438398594701501115540234326123432441645235756848682851488924737650869859015138537703620610542206901265756741803025004138956722556618293921774112353534505479066261924557067849140612432634484379962907768796355644621653910419042797051770875275232884397765386481465816934965584289619383546942695544375910987459158033315068649837147560079044886366569532306876588718818491028342681694462425038812488995411530781443625485580204573106715156821535907303208842460724046360370798776139304524306233074201550445769598721957290609872973851233310628323555138819356740005870394723034332450506866217118874713122757174918537479483279716964310986237836356710815179675852343106535983922736420944090251238812491537924663440224233393712598611723032142808074553696070788923337617398887697232910717868557723036677780264875921160000497456595441356704483338122173396318400208396789429641506838765637267828622347092902098850452443917508513444302177599220942529480163549789683760847026855934279387826431624231445260353461362931678136897920159599631890641219706379262613459712609446057278584336531174771139827170198523881641802284443529792186739428897659735665158857599040037271037791720597545790338052325870093871820835732042845555778142815053027810536198541223341107384084895809376904811106225217765337390410920880204893431010732637895072836617485452306655115138496368860132079165274673591017863723135358626951098685650293267350791760212343358810148047727448929246175244138629290323122431138677354869112545374215708267148100244129039278692128625037465421856535956956758690919718463851104456993325554573550909186131946457779896861847946337112522969833804000642072089587131763417215387279530393736405859406257922634197381786498482965906858430964676751037137084020496810001024242679760027476897336396362754836583052799050682448987821525532945242687372650753282124632152616738543827278848254461691002913269157482424747331599924463274833839454936492712309763525743666537011900013681861413419840506567925163546263090368569269455939756321422539315819081381960643891456402792271047895839758478065871338016069190844139540356564490188815162059547094913344756269963288097789101514669600093386553105838395704792845679637603379074652998831653660054344166630835005073816265930460705212010081794292008917878881156840829450769009941067059358722895160158824259277498923496833693203564904970396812747954054028798040801780699890170263927788915213096041193315533618025115236896448247739287677161997049111663138794069577475255923642753069339120429082518567831393131188497785532813706294558442064204079987289172221796349883679513531085421288857033826219919418902159377958599466416307141632583647524356716186246906272205308360574882490064050810653632436301389218975153936207728854767855577275658993259785748315599390669071908204300286934731133874328756630061274553337702487114903308800922925292221996643011046551173808101978022503940968974860074743125579999840299058815664589612276050519927619000509496661085691084111832516711617978806727285168680604471990006731759579896813245872362986586755461855841498354528555334949421565361608918629469148833221921953064645764863778109913607868666524525522055764115412495180126092932555596636495722243133815482612304308255955179144590882716721060459916546328860398204096247919403061120437505539268361634031795433851427851263126199670933095383718632331411838299670067268456805617250381314600526887091734060996878704381344664862734614245244161053552400518384333786233827263362140257506081762477072865842834648500741453848971650667744897297000936617512474393973862185258410936617842928151880398187278070852018707253277759095391507121983020722428602815149252220086819642954926187390374332635945338741734236851685943782806814965745488299781854811660906826327263496915744503097300655787948600974157053138489499726110024181087737941621142059524628388901870172610080602439322188242493343477807763137118248653653563338970798712391769351402484241908565777637783663472013614429017963613658010132061185731504820653675596160877427558161825029793124950562280799225622415772005213237239605250272429020478004719279482307939142931735031542223054750524282313920886445504779857670479645330629340464683441110294291461858225424454028472512054888646288457061858293530643242510645996638782829633161164245490259537408060510555426334519114628765663353310612643302237580234861010366839557514512633466564086013858953245899821789234638123727812482056006984511622059327593767184613012820733507548906621817533086555589083082191546058003475406978532347944447438865479191021555009212122728001443066463346179782859834609621970701144474818143966813954773217697084160460323009357152852377823144001093066846175784941547393794873477863287757930422941354533791274673435120983161884098968017236916207652993900091383244512819868216202224276680378311077936879379614764538364064049183843386760071479093065109120967980858087071746890031779007956807846315561315576387550603057692814264028719834439603031724766101504124428610368528563612854543233448328059565749150545951054535456593922652171152281450116381775159801624542512264423285710078475417413731681411123941521564676744862078233152113107942100376326885921944275399931780677038848199788210191548181883638912908705624139728458654235126491204431791667326801004873935672969591227587551228832572485552257399470592714435371954919539089371626563731855637363393471715415232213603117783497007501552734790392036361746766566094351580866986219694662675837260740961738347899210154578671467510695352310696677174024689618854414271707258938485068015426282210377892032236532990704451138653599521235869876875194178522359706871582638762963701464456732535015900405953507394662598942233532234916990937445259852204432428742941146758185417964434437475156401804235399113494557352040439705724654442494710641093344650927191264329844086238544126705820499203407062427482832412037652066503393675560929683964422137094491586620890226869546872475924910136546222241238051255772942547206404398627555078482856161783290664858735383387026503642922462151237319467581739932726208431940387327343865101159683898341824708726429144960693014204534753380261000398653273193598604231177882886954431569394167390541150493026694496286710407996029365204965026351748392736430713158571239602336649509860868254192931117430004773316267260956517470952438398275786503148169285790108643243905493536826055003606430173173528460048967187692695968765670086563675231738172531649323965281216219156997869585409183050713456140466513211796797372304208832040691298664144746188412519489367637722042806986151697532207358514588954578307903182728270107656910041424951119206908590116476899797285899622322216744264472030035741064725782995859334055350530034868542487998671954828562825256203231583446645428428685249408306667724806372940431452124832926145440871714267704862763794352955657476793468776868314418381613883014742453317669686506139173359116899013516221067827835894617055037406401523392417045684371631880040346896115816834000565827682108174696248851663386542084877995694117252676071810605964780625556063119264002538668732193895381857327246121585994116024666532787362033217715392804380348466560951599973904629464834962438876489213845999237289529175867870743731481333050787626356445917593227047302277634565961863449299588954014841669004896844001320763439465398425213255212657739161550745923127649589491908350514443080005158237296773346504164414449625946552651327918202997663540087015217850312607648735643943019139867261379940438971181433600393708092066560770923979624405889703472163793932717975421618780366808895047724665144498939057944456697248253673059094680375219711558964869411728818904881579260121240699087226699517726733165650819186122187538582566646303104004474063527074123531841658283458862258314796252838130233816481016664916108086089100955923556681926070963091813253711253043152739245720059160182112336940443919917581300915379237345720003667820907493639262658601525643748106160604493733499423418827911194644340533246397203373277982428506230479047742568200450730435227136603317616923878901569969157132704871880898817519596523459854077608018127481509617943097296182515080187248719758892769677458302133749012035314969674780608023436275421784910244870058813384126676698647073461890550112557649697213110889332208471551419326071656028247595127008866804314497953653541282978634363925046042818811531956760156201926643830366004253037879254921922920928025803095712796428455004417883548488577549325124162596987074488355744065314465220185886397720011647486069750258650175255136647758783971052292435669347553624074474495110080262826222391842945850362699180625826785309116092590743374738371573845947695424558147351055970908597397019730302834790109447985695403499031879037527433852142613143688534628093069869845413998338453533353282560199170371647846673581703216152590880794547607966821777895176004766001914292552875583347536169870060974776475332589642616780539074972615584476762147698674264024375783704282301616621269303997473264274399376004604959148388417661381756848531159874764795707010360922521384671961467836849502646560155268697790347923002514715292747239774101412742218341225417119744911342763619288005512816662334166620592204465569899236517869543744651219099959371911600251586677103956163215796850894050475081087224092314971362958217857355612967014812222283563888779210809367004067822340359820950686570415096760442337075121541669670136053806365477682167369551212182774640522280319005541590349357034897773728376773138215479418523490002672075156477535178351703633161236627529682163962715545600511002889481654624794561029680164879507354969046072061367244651863828020522263558597803569751727417385759930545332289667143537875251188481288665932626454976373012128291520178903071269650464987484481334690096199057633323141907507510377523702609975804098611268562357016598118384400120030682375243019089470669657304604221148343603062019820443446725252896447274288073598024868667406259461779610575753939691169324063233652592734691163267677724380695491915993310608415949036125085050296046915787950960093069471495566748290961052873711757144206466974314637065091898951395818017786316032535439114206442686145405827131101209589730071461371352220703660983974336442949471169032027785808892150398726135415954889775709296312073215919571240468481203550560464629080770197990697588505955146981924059921791447646120982152062038025673563018266545464469465210070916262474534976223117594167648921802380661913180768196742371219091832774050841254852935900813242026517451525392858731798712615854976469009894741176660541637711337606417690543015389498183862574096743515310945891436591699033555698968832305624119962418205458617594594609576944319749983354915197636597062198766568038703405227669800660735075139651080965102523816744350527410317026801079081437146746744116082569288777287212716619683452235671962088942228979711213559553330774046528281404074389877841898009182375009844733684811098065710087445105473060545877910613560524618945557407446338501378827433633909341380021365916062528062487333323845814399014695989798407016820429822695365906592118604533405009085646673054216204282454140936263331449008862916022243828990944797428490888712709303867619966769621164302914501186683974464551322193024127119058782830757166870711958899878213782712139633695936069694901996450167227105448066259669843554701278312249256207349251811412603795393722540082773639981562620533841446826356138117432603470963086328904020820650221738392911118116424277354555353898351069862570282391444928159160944471293245352397705843730321727687786824085137099316018284955491114713473175539534171083045941413878966557642258382420545895673816807492907503768753980957128546933967570877967630168615964396558538598979693313692320152233134278975015757449173560455245032825090983680776054076975846403372515357801795037589013516500178461506169862347871648299700591839926776181291493962627904332281406995825927314043125316698542732514318179505591267744577532012769834144790173883794008952308774485921908844015173949273132098101588104172179675850209333555778698467399974682159302295159653933661182602493817490676212088973833289709812417680891708287439923166077399615631397327907820169582973153995340302958578995056696184729088894188617061555020819232036535430792796972755797652490402943241999340451736113092568138484568483459515867218370630514778310488770740615478120569537155078113966715751140096546357513154251501736472457190808383454018121532973394449637568223270831065338442515941709780430751029836377404994644282750237628627019738102130579403971233319462958675384734594569382966676706807535530182546759428794532041577811328115235715625843794989838981545757695646933254802037547509580808845539992326086273668319133819103690798797047220278083007786725227396496163666045750055761911242609621150684945594289085805499349168043501731397176310520641576920767780530615855211828797232560442646335938539267140709448201648471840004033687398496966879220125433970012508725375531504164272620650810639738059144640008690182861203778618661978380423570305500611996564214249394167693340386488042923028696210246456433563541632230444510908896361777609374135905137140821112853239667002843367400689229503149809910889955551740842176509486652222562145641514496953141340777727677811592987829539485103417409724332308672029209308134506532728740257315587867300805840493793836603755505058106977337515350532838765439707137890835084357394181536376186516928928590994723818795827467885363216378547532729778609832779819744577290293271224700861101080208565239271765012986795921734585746879529182680160679281709841142656094220677371205909201043071374642556665360032748271688383768512034403252175050039928168780812552586233414914328797181965420184453615946751804818887905189563527091974935294965271716597128523939952931114794233979759318534318510906748798431630536752353323751166261784339214386522301177321836868327240759963867648649741601137475742494423065589150248336122821828848854130789156324360347117710216637931247111934014705548386880075605067831690309429585693130704538475838806747020358048207323297175707493244343888492642000553666714392328130665026770299451329915480390902443098309570237319872566136095742337783721646998339892430301721396649270607848344957822266377257104302454202814711062576725303176355623204396328789322343672845336042785835986730603015865488378489855307305102470370932599891727467835589900064245626545255067586039778439556880101153387023377803856872310420419682859500694886645551995865518456437372491265109909909891548636925442988617386586636904315368882570524529029035134540837882614207813321220956530402902729380688175918564836202851441737274090707473584645546078496799319420553579676646585131478009561528378343366015835245847927320629298772720598672807239558853769520327355393785696552660870179733085500414425076763456038115777838816689950155238189440329770423160111576360600127594053430671689865460661420587400459457421481051264969108108361320973162220174740691377378562024701244009828734055117149746970078244946197416388957003075786909079385920539373434974043367439063724535026054897488479850829561765607482486807339837690927488536991503429005751456169079328585287502895051310568574724114951527699620020144165388915236900605388896469685192774022694532110670974420732660323845432910822934496320132360409427111454756561075717995298360260245660022294325064683669485756093280531200777560127318437079475438667771980153427035572803095137374626991104302547552991594067770248070531196621506334556371557238959128011858252419664470371750486224904191727722698841662438059610976443263735462896018644211447489628409883186386201464315797059935824135821456766978085273908135843288172391670360293729950461385640308016645008424262656992147465734975714212652685257721475314292735819907160721354468790898733867441121638450947777690264104562413302628873343901647224249394176780964012456753465126037544490263710681559703831290718226852794165934001699971056576643706163996997657016545623032808167745125962307084420759904917665876074848352774376997218007045695226652449192004017130456188506993599198916887852718019776402845518928595429824884273368516477848232674487032989567600012891531234178022109258329182314178134035476747560861322679592715163000315078008906502637047189513049493840723296324262313118064541711429376402376795338986797444497361001876627561018554770129203070554478610019227271830163442557192199256394820449725955222258430959403932219680817264458312190416250465502517735841331387507993265064179471993099851251396889202943838623595785614092150136207808489008626677831029820353078714190427843059741852348899535288569759571510762704218967689831809851101073703497796472862711293193674935876570255586602282219900958963805418066634101155333287576373571267885203787719246074372783483506451387027134210885720991026805319245712240796464986286683408862221228759021678401642105309765585264265060349086615623142361967245715961293584077078350329195411462691064414932508791513895779883814979082878314082050594281430551137692997474286800893626837154343357811169923281299347237217183985084019402178535401005046270557259907748120976292458645277923372822151504223757316680029765546515222225599884217865957298912251868590958382542159239697069399585409764258228332983465459677683073992071000209461208904447595817453908022381760939465215666328450052770768459589314985121945645388874685053917857271352586334964556231913480019560380864093892754274752390878832136188534477366372800870873347442579212126696269683671933326451304734029712426179307196337582305182388354241003628238112131221342682685279459938643839496418027072659287596936843819949232247012818908751218616597979638820057126975423558482057077753709611613773358912421481036537934677590676800068379352943702832539673816570697883677931386468809416368953648916176531491100886438067205129521800375044313679808610871390040402837359359040168902191419333811479747850513218838610331591814849873676997167832320632721119854826855041716983553542582048538471322919952979840461373642376142491743988928422859631587787206419463568144110806655885948729218810043880285924986684121302992511485621403559745956039143130504712967313281122364431774234792897742965940737317996315297268539388151874382404429684694292156542987091969350771460137818635212570223967646954979417657622414040604639074566950029021098405732770074858360480810617737938767211753630813906389146286672750348823081973123147684911491013210302384643373087719585320347652047707115419428265382999017680013500939527388006540051541365452184279012952685035202582281071233474376076736349281757481265823936454754227786065867398903928076542300845344563983173304433375485653463742803974234323746193877660502343024926041974887442117487969239941287663604420650876343017730099135077892039285511005962345860190557782365183573763448413947381546170671285082086681742333977293167151150750936149328796551595678624420259264463902804301841324557511089556684900009726891099223243598265428826048478451724974953213471693103051261908264959484091486461352985890519047985266614530294413046544392869167207675681013361703286160203510156776426370498175329655150964997233924209460023139144457843612705561571163616606818967066276104311372874284805549544965787181763730577957756557332047194949269171481693388871798739474324017786525148287888103483709286661734660915693097730149030058474413123848154602137960483433668203482492190416338382482116878143285655047878694365560822240383644292611068809591617299409906496716152286214791073672187362354259341573206045449097682810576873706657492559918502323810682670846206885187185738048297235797258059242607644845550719956925243298780004088711161167485285600280685516010122280140786978937414120322763009200480526369188918655401287965953218007709742433772734066005775738101175241530589111722242018216473999302284234374338254510091955644800805595874424685081343935635581051225979650394789854071674191974753551443548605867512541451961721920241177847379421595914057433666537042353074019289933520951117578531968573373855300253467044641156931316310427676143152483042759404206065719073321328846085619526056894029432034704584094625792048509123670128663474377745443756429045421879515611859338953067731790927263174608298008910835534777573723065002732931770822499910153908690798208242492564322036956978512925452175096024967062810283730143880054111384962797337294644397152939309551605136642574389267486167996171542843054349332475413704747246314435412175661965172013125878404134224157834891395311226660450345363905466927723326527111926983401127598466522728654485659733963208988285886685867767604962804357038682981780936530207384787946873952585374146105579293571046701389543478915698420022440467449231468663936523976931826698786421244445463258474252026320527951045315066497015590962752550969383237208297895300095013950785968669773717846933499859825348047317817470716037097565088437170845562841460734825423145529852324592082343935099855271670725091136419717206415404244424381484817561370671592445036062360257530903340510674581375512265070897552083806682675850409391927599262938798635128176006266924262785097936771800615980049073089356123623460780440235597167876133552993261301350741556890799162280699239136829048150610147072793113617901370066442906041356739677677523945561978765309320800322236945805983268260591785707465646091151703667308055537037549226928771372462262276036375631388645433845345677292949990519156197406397225812267993336536619554555091071553212568839555803315590322763489510858978317642064412760434945789343412880794244443011991852130825147626947068048631158275199565756062254988306582121105654031903327260950229488959335477411394779673215473753881787146590839303120621402077917648019209748331233594191613940245098886392532859114430469956312209140877048094817127422754674734042375316567071725661479126855330053918120847047172511912776339145422880549007250626917802180641596455072072815947093054113404568181317464233800792814293138627048416680970213225389701064592106982233075220717253505591924364908489986406582178501934849746448068239330351666910929624885235427740379987250777519506477931258640587377605240810417817588037212516886873143329931121672849713814319720183765908254519947782876198256285245179254841910472623418253144041037970262059879591387445895531813525349520757785472518278580164647451746663124149903134166388045534661071344190429515875682245606880617254460297888845906955813625531963372345829554706023205552702484708589821612358324028617113671059161198808864359918606597456732004247599789965027012168112523146684125251796475397362002921283623678754197976576600609173507405993233438506857155431273931303658319478823023161487929142777339579690364426176594893955518910289128769490427889199942408526299558201493493590534109290022842456353037979670123879708776899766062915028229880876906342233445294799974925621106196996413281448061250781415086079648946865925178411082783978563147849863623765226961041196307352127601327022482137046173294848928393291870757672926840331824756394143116378957351407964238598783774935006020781383518258750393765258310276678201053526258166384971336830654221249388077578012865336005524127841976406394115783073662191850909908237411793612144464773230827743758333078228429111048288174339891992098769991883425464474708872197196061068725686484613064601165312475889221700774912520656674802636961338212923817045390537144890945781062374360624531026430730402151435095331442757998709801975196271632676179285423597604529523506585544045927613280553472399106580403649451179777281024980142178609507903326072235215637671206736961471586954358340108082007161030899910322158780908693178456236478244441479465431842551972226896239355857389949787243468438077263056033282324752515393002549320395219728312329612780099952109067962241124558007205814102662608903448832058878499688790980842492979470832218753784664771966220344590142353855202148009172734483314267258582825226430260414249365744925596552383586740044565527380850549974929988916172775198088371138410803279539852447537347852093500940892084540257692700376075986636618711578880309251646586209532356681981145537017053643088587650882050601244555755323358124349377375142476038297381736712486384582153757809650418768095064955292704245299827251328152437343156604727648429505819125862426154853826504584483297144199807118338946070675530223522582331191881652121507917681956405581545359419956287083733990902964522749184661132264052963667615704839331307379481331224386257800995017179385065315428229675458127131208609963093528306633896749324744404190949828456292702323654324631132344977348417149758612516798209067562786276410465334823584367379690290821446911692165828619079544292194051099480670215661486637568649025314581869070784480656366207218027115243012304448858058084068049523980347065654988844134785218287065744240878836517964311227593508362774186813688629521803076741049755670107403417316489582386894370973585972796528298591765819779566380690340188094188382518159701462751529800584774084087792242439562159961202472389860617356434110863293183306511804165022601245236193911555257154414376841544840124900261885219353043387379864426167964564684787115629519824166203489241512446112979792547054650444214386024521981000878519689884673972751461769931943033263938918618035906068648706834445731348547539018394740724272508494205633122004495941773062891843470326769847661410007134810956480884357775874722994094493010461173440929973304881124434129616853460922494058328341912804478633624486969142593846067718520294973427318012099501603002912598825752929834619047960283758101196968067933989621649790721230018425193732038614962202281705553215613330934078148023806012044284657399307621390558887684513625407140210474753929440569167248629609565663261532433971015858710654658433017063251870384317542672262479448688620915616603626564297702613784152902246038395890121741006036489787728000715996350388115086730963130383673394319178454231993794883991847003404721186216697849593411774422948653154470165019070002321375736128570676507084731052794380904465829351842145933117157514585277957740419950389796265215287276217764596997043054933756627789384691347088407098892604678819121291136681654911033201316555565628054365100500671746370383293043355852555556823058084761064148627020967582902939780230797371047779733607609190427152553975273845666296820728635010142464759528508089252636826118260115481572454166831222736023481765830636324196906130834436547909257766603181123279672049705556070622780991376966889810130828138783350636829683386888324851424925768698541335864050058009669111750613923739309642953283094133596583518973408094213353225980864800681154171170259071775430983021661706628820975881733777530286525161878925384267567383403209531599201618317567746960966560990227562120316522770461044390446509101913504286719553378083700397894916277972042233184623716794671576551967972516686373118578905649455239287349328074464677326709715935697013631947413037447841188873987174432675726447707979647903875585082724494782097721875419883692098499343718567950551140139505998791584029884944831990447060399367450429223934764131076870275487476793484281872196603214739668696015757194333365746769014869960766366319917645028214508161349778740763060284444243715610577029699747135550404718087692153672764873317777390173021299409294193796069339215300337674424092568690081177742245572893419437531326729396170762128981064840340482356717605094107516813209827103449217922529534151871103114611238453080969325625115058209813443092743403099027462555419762338337465292940310311602264378753280077702225722903182668606909292450206194714847056467968401249967018687726273541979382437328010689505214084740076828842959901389966445221303908872730242246618086025317715636086137971649911139769758452587849793315938175442969956863517137141625573434810168649584884792086014932744863298430308623651641744675668747317828746670568177928431657374905291012402295645148006637831273221866484151421558809199212009649441588937070074603194442351630179663505654734053054684085796606777293036367932227026698671590872316768768358880609492793920406616848848544538675358720442235125488927759574274597738681200440987147327959584077402287711578242563403955442127282210102703249766540780093753854215354112349748296794324491354684893254143167932245984819851841215608863913088459682781239765102437671004278481645120474759161781765842467985922834519725012939959336939995885339001910842443157691633114816755838235874899649843189597297957259717412959751342842286859731819780306533764172843199294230984424210811039584051854730036218865761635819182126150331809974690762200209091510120191343461486792059725074342654195157807736637293343369749288440843164445950148280761984656171317379932306732293178008430443595480805869535612562851262987642641838518112551874204831511333154061078007672597963444239781133652539470156484493762705472588554615602242843876720123080461135752222844816373386270999446961280976208027719206054161794205145018866526315335889569342495738834910916665722209696486247082394572942421030932692978758928308164229864714272183425630540167845435091430326475788572223227988656421386331540796454707092614189578255546434419335509972457521498632969828542699874786648592350459487056554945300921054412402930589209064222209827615594755568279833840984881499065597134658317470407319580796141712940462663173125368141753446458252028030058662195553156596882009065415205485593754895328791553756643068036477561719974065418491587605498655565756981462365484468185194922554089348701603577897384765117123190649951281824338359595081468971687757873799407369161944801750351182432438661970590647611900287793140550326616834841202081753468436446305491497866679501300919763077614843633221079021771668877499313272209915374143032321288822855751318813209416564609679764054788001861855267613300149340339422500056631097328733656444553291272454865662790536423533424919754049891566791827168980340798430556474453490986439750423937417250551249723062102579038800142018918040816478344341303654460354785961718007350767256176398589325329117694905357587441295182715684025392569651035180598718839460810242656036352248232441458575392585124866575764442700676059114190682646000928293997836303370571212748526066201552965570911922560319861383269619303215682081751091688563581639009362486100019560555526918279442560014747683622584455789138830573604360313879595761296743954271269541500957231077873867881466780516620170284701906966488258591906547897328915568583453456815052278053295073229138182931230011655180614167043468116567479520771908085447913490254859140837419333631682734723218739268295962400945612500740514643767571013805854003311842310321103314233023863457903202706923899975348830506404264844298443806508159715023709561587280008946406205573628194346987399602946246940284415369418775313060492928330758785905332253674157475176089059089034296240648174746341450760871243184510002797886849896897803601967452190745457382872530518680259709540018589894569509316264639477635463403733681121700616797060198799190948277845860258236455035621554520284124015722004184379555034181662165074937935859955925852290873360510561739957378860147757411839888897082347491875215754418552134402190687500308357012253136017815460164465533783757636124101589857745809892456177341098413546297639749749966785737948952932939172710345562548755229950292193854355230016034002156234651496291622334596890310002151404749930111862441215484184233459556993554798421396292265372591147983688745988212843225662652388626918822662639945850006736333282280462902914495488918779683351667633053879062900280089554812859588263484967123711198703843936900654165925555093585531922137266353582087814337054187936681580955731246076869444098494472645662885722753380844037125725443575062129438963590806243140232602123339511084755799153948297933923209020157710135221568113889220415155949310603588552036062668484582603129129120571832304742058790180252506013677577878821125209796134499270146648311244728408209634798547387595173905018910974191241103832558306408050101970148709255837814924285749463563180522356777797009496730258892130578501656138174669281056667749704774117526105133386538306853292375972637356790814234729767011231896112607944532691144783036621303229332429894761590988840920105815557475882647774453867812385228423705007898736647774398828000755275366895699912301212373355035485908404766226692927918882429640591927327343815155944288888476934285880802745502567064828039464051133689483937431597852665025061744355796452390317123652047852482329475444941772076140600385811112963848884910410825839932441828204440027774614163642180221026580722285991105482230937947580418963940309485086693843866071892879334529162788423611209331665304409817683961082823989991278628000083630372105675979852762433283014922413942080095412575576416340201636850963409500807968853300780980504441350684121008238164530884108711104682070974405264349541957649550362252465321393542264023587265801105874960021352905318299941898130392171805346313408537736721684859556892296407404462891339345797567415930996857419297023574905135351643294571195695628733361748362362266529459834358431170569158114630815160450383975619165923198616606906315002856999466776045381317645607356386396297293772393823615809361760291268313996946326328985195878227458524307394704443786203565264039019985298838380889974445865825608264398567566026426985207933065384495455914488954552589669435166001016628728570108157708716102678800628448368759316780882746498505632425416869959310798170705463814364603385746147659549300983013057363187654486006620198401688777226921545205394929934426438844000450550131823192367353247815599949012421637938723713236458245947257379895163114912541067590885894225753203506457675189501404528917955479557784150375573620966490147304312897572990672564885224239089536974007102517905837039977173880752449957952086340766698771421252515136632303898724736857176327435796959929114927433365914623679213688834066161168173245970577241812028406234480274839493285326310707923627298152408828853488885208364845258501637281697157821661468264241643773500088030550179171317410646770242417375757465193478721690928875638618531975746732915032280533570420548612192908611932955731896320209161379658192335039830113983843170754451844200304748478467013335062688564685409583300460983073753942178736623164338830225259528067474153136138502748676184787929688264984713819470316988379497637155671217992396352989077270524093425663967986932410517548595524335758227406230413747034981175664354904436619932663323705868687065266385851305122981274553848331906968130134166359874768745108982943585689345740395947830888042128514764713545132594455791534576595462727736261468187547871603118056772102146192119471702345764876104959956606702568700165080044829997342359770251386275434359887314460038234680498347918733600152744744830637082484085123423737532174700847188499105664348669153178995260653880281610611912932185934653317551602672851521137289301029893593904107395407562151992554216345625085683529657314517635613908876666665599838632442543058559326202380981460167553667563782555293285233230133324230650399066476859320657158474863226033180471643923118195585224417717543616853132613932045338560884574827853524296271553472282569576171605809074801162864657296001359523565112389544746531317226971013087007035852828305977125593020894356065141414242878741553563254179491754897835662503470406806243153729383595877881562651960256874875288363757217723727413540904045317826364305971761218133454609193687467736124725321565176799572202974041427860830994606106517726533642930602680501697065022300277675969714210059534595965609965440606229752543048586863838526882461015575460545817777058713899212071496755404329956956000509348889380305121317801817137832901521980812336459358566624614471448215342164574572262456226491364274079005461639839761668983561481328672330773686039523959594188758290518081245506115082187186796249585626103095238034987810424200535122153951980459845263323295692406969898431438162536513964932356572760342787776329199954394621404138415303184932381430457095909851821823852917582649114722901724958073913758167799713282645042718074801754869100865328430766443617604210105424551010216321992773559555506336417209082269330838476844565917061567135798066769721278845185917612547751547830606244170972311501968760770804699956673119560855473776115890285493072256013493258009326683295996910399706071348049063439184964783673463503221267868924811652084330214461489290109908789494388597347395301668934490510348825845544163603549312617483663255410227202918258606054588376652912030527832753313049670212140288771401654942283499848329044138849862287057067754759493717540481302440533261777163584323792264322916690573095283624327933190084220734052728853790769779086475510410038446228585607323714692165280327723353816392613556440938711199035992500089029457489336340150175637440143525115281748100609594819730959827177178997949305541568503673565614208473395380258523180273118205979684119155722237641725175515994111526507296661350945712751907116249067158522293975593279034172692582298819115882393697290772715433645144933740863261834297493823393172372192680363995705996339887963853109073114416642396190320640339997719258553137546664762897941413016956665794656065128506213991884852157676476804542082254218218922074092012763188895991719728084978258541909324328592584858663647222573059593944771041476003730812037661973773180271398510170652280715114634140101172008770928983761010017432341955600218533277660213087272546671553870846975290119702460508674137833646211081254154594295455189633614067850446323036030946071488056441180318289426205181323160673938775063969882956678374208451027201232032853818498175788269453100519541043743280460934932034181648828647585011038232212776283255365905921693687157968581359945717328669535706440405027461133506869076689703927647218629453014919881688852182634690863321740171701613607057745689560747430189030546321496213844447766800361239287920885399987009424411819675204879850453429515414559455891396239037430083498972943008985633347640082631310309264382752111941691502240060569232641780265533073163570133724990300920483080306250206564784598133328119421240474540723928847805659889870937760316314598808538865084530254484364867415534407990642374631878024423748675270833796605408517449865309907096413358220533644649636548474665559303255492590982331832018431226562002277344756200809538605281212442879929713070279619380386273182614905449788822003925041288795596347871598582418905009046689021555284677109903376509166599233264909891155491469549951851093263060480246959930290189539953041554539516682669405592283585202571069523869670846366785066962638560150957684852509395452978863932103422803598805689016575921438283509647973380736002984847484171617764586082276166223735689638896870392495843870001484505931009242359874222901366267059477080092198817341356382336125973755512084674120020737085257000341942009236537982016062209777141359872634307303185757778756258215328028129954847094259770658129181628447350595100549711310082727613148222921433195546676564312908052113168641886427883758244338570813289804615246226241855003977476010015569317112965396817815546642264875512331619201379898085068496651089729247172122094904520413622742798918358229658762902962380827084079742831809841614646314361814205269294879290990928046604952223643880773070743182744905013843588618064693929393612185224860162135624228912184489977892084701012208639978767600630397918453427518320569711733452046307220884790431777381452980659885494210744104401104101211771702111190944149016389706896820108275872090703589604595565309184497171666575671833739786179208665620657979228350744447233284067944967221682434388147809288963913866925550380088188325173908316768193153794031074485675726648927402396166442045116107658329685931920637804743740713439762260976278504567464360699827580634934360490792094633977267241064921820322482856938753651828198559869360817924974997172108630640256168959261117621830458296854353733756246655233861232165854046748993879630557391757745531730640354390598948672370792399265472668661726973842956393702198713026733553842865673542289849669760655641110758220370265361716285583215766024613608881787218583681415647193912414961993138590046471180267416536603134177544515416205248857645561014475888102818542955071848661157982041747240219236669404871317293000399670251948438731874128019106419654395742191504853924327211468493907142884627503902610039048632650717522935533154955161446683981502732115534644914754916505575488905233836950289977590076722779132004204749477891411195685213068769077603614926658063192803967398672890381889064700205914193259709180004324779622777706300385065781868348808722506272539553405232856148946886545436469511345912264553487742560377421856211809397427947215224095331678286940549417047884181482185014286459935851603687880569993499436077610103945546468591910923371832409565501981656670457048911578432276755698243054538404402578408872478070852632937174727853467465152010381245041212743250102303104679684777534639226258887431468174971787583858392791261718000797627207103383355801195610857217121720358976488180700674876907602971179479940134902567776422493476788307121616917804118300564009870375318862164347241396476649676891787865557246035644864538606206721938303190359186950322942906680600035376910934924013244098106341210203428029098929168454861956173063123603736810374720803828157260992002546968466675551102455222940228123807116814592355220820702455691593603752818273513385385217532616386642047397357047850710761078635387841865084042499556560937261512078863055063234357838888539576728003314271150239995088324051634367301115566013818168039302121510740634907598578919772323305614797678672596364810013900302745254728724792717434640632688591358333894396156064364108224333187242967350278135600796861123801473634429181538260642124750801020643309791755268594242167579033143161589235597862718043462670521749950480322055535887424110033044263057438937216243531408661839118423632194211192756503245093476470876847310324638551594238171002824842848711480161037621747932874178939254109688477375691782375620361898219263510232283463814783935850540277224919945493390570948430970861475942848421284104002657909225016347913962397055717024069663961128135825593280614754432808390871683212278559336841091287778630036806209101491832913443053686692362441354064100545348157418009999186313212722098135026020881619679671634120167314479235704130750269930830832662784168950387319296066657103722994391278641423136128194905875568293731576512376662266164612303836925299356589091483254128775675818896901871401012184618818984773274348085001537625322568609426093907654692133727091269045578010645537606308217077635044781994004097639003265744889934767981063891195857929431472944218721589016241259544647534337425990408396412363477329386089132769714807209351668175442381457057229539752500081600516690439363786160792740586880342351913523715533727443823400452383464681502443651829891869062309283319472567325836400651040918753391242419345884775823345780125698076903715781155423011910283661047874037142544299205357776275094037405616413044935142966994062426587427813016279669599061623200005674829409493180281606908365057093147446879193512639267383964979970342958296890871773061087314011686228089767910659205496152042584513763797708406746434505741305203084440598005711575255456285772194992041704071118082913612518550143794773115364461558027263678063185088011386305253535288161538826494674941988686951890371802096242421724629587725891144283041597247089989637805008606158688648214314441397442514358056334829168470491617062475008801144252723317451477117306049988935061044739579881020521656457804235059078579821925319031746973826605500946516112580811459815681361470118214933063309646382139901892112874341453820019419450499159026034380888176812533742638579908927074090090027762850591353528338192479641757320938407952005443505562986548333929205888843129240328212224158210575187979197499947154836670888438402215091046341347920042692050642782074988662272393441196876323511106454782382536333453370338422425932057211844485535111338355061492263204068649794602721333213728987466654518712325346507354041746799096920442777236253707330401966261942244571681890264249982079182249408601436274098126276500048716060003224650626940827430066285735249474047437290557017241671779220455298680548897838822536805345732497325394802340414792816887834646605793812184759279103168062535236278586184353825445907871001764831920255357330640778132100079109684308654651597266419514643476200381288044203419455791275009538382078453218088038137102853163949599510641239305444093653950797154520073483576188238294882276805899366949224683473499128962004996149855884106453258772777265281316267373639325193553762121978064532259875656330593694465205003905015268245960680139109089551746796396966440610316853406789775520731364223281368005614431959968171264575986073897194458045319384783342168599510725617369188005254362242513679115381571961556684576006482224256058207575580787029536440672169445674298641577479138701158803260595086238230347076492429529028407798179099170272421030521955432755714787209616383543100106849179421497846775274624590375311458773279064554428728642235336650968616057268936802106466295932229850035145601275451795322942682064013084195480479154836815295944316159205093504409126701299809354419249418239420266181032071653904885361568471614343633367714814814126855201166048686295670037108827066442038600502386633542868025181502602962383641914966155351485122931127830649010146969856899047937302420925059425642824447308870818222884594490599018859782776946138076360517314141204935155275252877673517474172691583296544333980581148866243418913627532547751283926130025596555063826345738154615592433968236826833231348189680897586045171411834417909178603246290729383906647955985122841066632397935233822090394432682266566790200162397627752027479607739384768268540076806589193916177569529071682083547667987928182987387561726760655419346524965146936206203645426758834164606480295472520798149399717833361472487322464141595240348579961329921194701262355278524584147601950865814203902142025654867743580378291396282162311240786038358253161406038424455350997430003803735615278732111003952643149737178279687688111427668663140521149445559400457021758522909162093140111845964069321399349261947609756422123007584367558806008054533884191347778147093803423702871303209746746679300734336587550203412624485018317686013374620486821807177064645560973574365563756313680221689119031363862194601915853875743542013556527834369427325043070678527052094016991429103823960118726109949586786983517977805439486132888212454667527859644400193539414902826163795841182364469392437232987468916875143451986825328239334365146755925268635260899497456598910297445093186181567954749104654785850067203218181325076062927728977089147610622684546880737843315211559689049793445290713426970781384314676021045471146762955097710568670172612487447487202170716873130026714059241772434548832404565044654573396235717838921520031892808003021310804025175292637613312392063588025521061082017908420652735309711644404411048207703951477368397867752173904261552830608828906924113832630207945650851761672231677366681672523775573073390977022602214797842593620105075318916457311743514390921676892283262040114261018464547455933254863932889872199783643333777034349010163873485794959901701985527577620832368322786701369159272647221818818298592743059321855768889164906632660801591364050260818572568054921890719094371630090632651653471217684028721165166713096161512175110612718533768537973783330741571237569378680722068385670501031258847026462750272699818210117468214444487122759980796161323802310380647534816105639738637211382462778848960593446974854241392161257315730580359430426001841497015052744330449521516620834944233188586041101632478904096749239973139158666509700959044251740554728285284325002651157947725482792364427244361540397979613876361178733496290208831259726263260044959676599253751532950207390564900927953960603556329707704102015597273236098378322959793506945538027064994100430869650182755027934427155384075500735925951117027362201402198802993417228712511928583301886612285046831078331424737385950034811607731159936059267115270540393379668626586466177235566843611406924554962654304703532959885540756956114722989331770949498399165530637301580155019074415925217802695842847559282391926795895346226349389077617961940013811689572799973924839963146049920178646421515594833590517611141732898338938952780090486612928563206926921125525684102074391649056396241557516780462059428783606050345527743986955475123250502108832917507054393965159580253325948319570924558585981406142637717184873640527911190116418264743197379109491903725033657238007261443272687253161957801357894016335374208235382985256546251293281861183967293823260079237577894278300940341929964336938850886763389152492544614405112289157479117896141365096836537073475980090714670427002152194507225260385306018682895224828522494183439989350503634853718983258876332585867431761773763499162510776148730695821842529570845213258573209580040424047103728682483109130009208334137516576482979493671806716751550268832839498087798190563376150565908802956893613456914699835589009068486618588238204113322630765238017560917907705139307499264558853015880366091539304064971081619705976300202540882418548221529847089687364634766270924451866006266151454143051147546450326925011917893635877406418893798021275221285511580005770826312281116275581892319685728507230796828684863359088681741994323386737555406404174525220900476650532198615151067924763263139324984541911886268253985984495572114732039237865321736316129676972618395595462890827594929792928214901926928093587749194482215808561623816718569266851169129149402659277753601199422374005532047978714254794093693935626481796803646216104394129784448222625469285733054694757555175833883037283491526517870241570595424755965749976726380843433958571995220858883558862569476789567038413019986147191433711330874344420742718170073896992195413635737074365043908067819711703050593505874657900312962612180522594537508807830652316462841248571728330935070696983430088504034092572160090623732205354231752451461447138543760894971466047359631156019959901052481908338175943769572014123430615456028865023928870484722467229714502898180175755063654970290518460566095789911329051597025530643289869895872442915330118156306934207275343041472126942622151769128186289296264178713489975250209002185004075423787325620039469008539186519082773521659563577562233810473123172566945803524904764441849912210445211828505618716157882421355019251215922045451884887376719581712103200276234651806167285462695636312584857976430364670080669449425555024039152458564102403462271061438568730298574456098363671402557869353253772787327691408492376465740467531232302964919951875986025026642335475537874638852484490952479136353163368765484992817362539237180264598056705581161464422649860469695964365407018810140290775647907715591632282961225173496174272749454902904103304173529738977576132320950660017305112474098392967318887903743137930204756055846141392523572958228713260899887257908291173321084468906255143414095805696489983832341014031223435895089356159000090457662721940109546908586279131205017141911058817908447893133399541196763893312785548751272384681649782324825809112483816412659369221193278509958318408730161443843943267733356797351953399247771931639249921905674382920782747479366669464971524149890881252459678755417750909153047785231892933123853424466505580452005234673686210218523103057499248488921945464743852557102299561967742835881159305254823294920823744059548552375909996986236197717266905591972152707059672169074737103499790375104918983618180081303596978410810355364070381380044969218474563644338878554253294327115594724297642766813932932937313564755635587680177413803043209732830642150260222351261163472547170835479357081102206896614088866420625539414086560524059759188974872335817829068542225940585259974924803730125749943039118897612964085097114973435748956262797658461871134558216120169013712420664259724593235591381536512635864519298209033987441904592736260776339767337297443561066672700769195106087394212482519449169459745840966933415987859198601065515148995119019869356053807022159874519516603740269254296118896463327007237212050783480563660115359137687068868419477694308467534377910814345272935747298941693728894015570185197281927301436274455560117997051815507064168635099471126069896343112321151141043843394883868765027010242348196412615507305103656447867908390567006680047391936594608770968533721491282139228553868082572875379511945621864354493932888717938613516875149098352725796805895609887086199511419548382787048188932232805297933804807930458402743815905267802736473769928573615496795306243465917299164903270238422190713207611694200253279622121639122970675165669244867768938190541795558913405694726745443670183320528238071124907112230396055453072719412588552901802125539641875016517351114253758720883618478207875772885486075940880536812223823517444669911132004485336143580482878015232960006529947276609294793416369677260491672071657681178686281692679246302805464069245578675924635682390142172187716126284945450611614733619581399656897514042637245195631956950107770804148788609489283963592003880755064092141773396445062677154261602805656276329759252390369937356059213399908066517843958050915769412755074685427027245486763977594072801194345806896124589525983014265018502575793273278249494871697372593888577852751205385657281837920131201966135248054104879422319166406798591411350825974445105800249011982728745420932462924396386238519592132393818816862789618690711205187532576821236970366724865518692349267016982979508411085595300580905081085343953480829959449075276485148119653859993653340110396824702352014434193687501491468975487437913730743530165620438526029252520607065069441449114609547562415018057635012095457815174757832363270936745819975570152408878412168307263494853672313005833745816936980136663937727003673289261227466788266029301278043061852263475197382831730854755744730148488936622990191966639637953228235687365026284830323205020872225073828221006095466469603559743025144259964390621925621410488101315753434105436362557457423295988700750713265222184294104752839937654439811885546690271358897178953139481859483340707795176355449836208487417438858843061177126030346038949599995363589134401176978162763216755691979166308940327816455321563550901291483558759126407274058278651058986488107105909979657048500076884624334241260831191388544248692201425773459633981007184332987768146420579318952641522835932272880714258389439188231075168652034005813301257032536139991677337533145074905416754881219186691376754811722217315697127982411954381536392388206457016907260218244481623051665708071748687998410104004505934029614925284235148289072621959835322175308683200145384189021208846961609957127806225311928115844501458434961662748731484614584345066480847722571188145215235016170024830609274624248121613315834593226830152712355371168312985202371297741090237146031633853282962397389062379199836074681254111559529735285239995820546436502836614251993041425129440043296558219994437026970005748528484392276391825333167781934515109091970519327401488997810358855318764300111694402124065718031610467240247817564043268754269757232153609560915323969650081167400278767607407814298713496198145280485110485675609059698733843689205665050715954089777057402486882029811149897464181400041291799720022470841403752792945366010405021670009804281895793236429201424803493640956342832763308439332570922349136832430699759493422089305788659254398115526210454933753006270354145379391836591902050114180983357766102877830638742912784260153599518736757140769422976546433994223046745156790451468101747095236603879439819561227297487110093669384035824247153711686127180652667233740567478655197035390669548820247966001969149955388316398935575841881390591074919057356913980094051101178519146467877838604134466567585183599283193192266888444659604379025238408477746579234460492360991405196001840314977767166878846218711412796041104744047137778051157994155776238165173393685633928257952376991858826158293691365894983345227704239020807202784895863695115814709664879824731862186704848667594488145574265487306020303434251288016392114044956559080285337411741449302048786604120314589473987333894270103238629501921659452416244539188646972544903118102426030176356765340821050916418249005103338152863642593947689295187407275411767164980991700430419530657554081757417884756018239611411493584297056020488825395092478487156072340901686505884927406107963386548308865432089613453443573564878600767513597384913427407676780964192122452840609174450348669772149953535222400859542319629959159745475232007633956139232135730445325413735300149051638957233239541829704745253512063903550608012958733965190731974364162265372349939034036534674554790218626100324248174469400841692368684400275267264261193761051092117515673676165177837020290790927434409369549205067098530138007400082213201260110012487377755920207136234552231637573712468724769738390119463916609928257732173819028281601088092473805085064567558468551197756391406351833139002110079703612709636606433027799256145367677697197487204786627790585155556610048596093249246919246673759978977669688684777190234708578249462003274476367203992085873918866890469300506626968287653297168167474319595542495348037562121665664962876724544070609498303522977447599693686421446516486193012271178563887654156973396388749708755394439545618809244116357226076053969096210790901928295301969403720427435976143714308987006814507655027100711771118314166105789125651898676547943878663555656362092539367080183077805311564380637916306145450017599454516890855102712529982181219932315656931887669868440408629904963836195457145198375315111018391169897425914454313780774641035281934341286745961945975740315955081789012286666003238539698041459348127223342287758392566956756702450219655328586883617666710074206259166685599746888494088662933164390423032641634539847381536115039709642406491554591393539899877688499336401998842626822145911390333730525077232934061552591341301496791455312116267269922306860378888936557695947961315370254604746574038266360526603791417358544971857125809690768866874913305346195793578902388859333506145528890108112601619185437214002786165719154213459516727498582501564991612371701463832239837059814781343312007828374831566612996341164303719519374182674751613957454033884717027733100445198959202858486962485375021399473740226480549202203919284042594011138315069547911295087108829638531868981772850066175742315770818879855121019103220787113181018584396845373507757267128864180871036759078165435035559810465577650910939190861115493589517661734738921859609908143697098091173831667572875620973799877699193018275414223728572825318168596089676131795530753828082022395796969065810806776722248180989836161298138998642826332617565266070131836660636311455222452374325346203244513772457662021511067859978434330120845157525689405125980085621400277845058138303685973289107613011316069465494607364555486995341817623277794246835333158084865989420450952392868532348256350559145543814024623747248928973061149475335819760013614107437309063515709611684440419416236087825441539656832983126337681587827311236001390389378906578902504781432127174145174305648610847019118287288931908018881043947810688995915565158353428881558778592277187539279925386511461422073518644286179776039336696523295634416848338816090498795068698406215330091839044519483453009860840574793021359273989700058161334101520344818113275604029639985731042006101894852915478331091251901883384338414390253569067905235167411179253748492763612607071482613399891864377522031441428879411026590296176397920404599375975465153131243053157901294003343942028564395015680767516228279834323713905777257885759763642657050280951835222256894364718882167555824386893280874638986061113055284240949770292399427861103111108242976620678715681184527271685929179395610314182462463116253762081350060636527084989776643806166005790354060820285144335485771990821648097356595069553308280384208137262166967878286384352911048934182435010661988740265341322605623646139539565198272668818980293623653511714402391475872553199692401732522981279669575458775927482078562759205676136959344159292670562225485297183704742361646452332995370611097203065985588447525915963036383172326095925827379269797834512968176015876515287722053674704445593273232039621783379317688313532124822693019869994400043488602010243441444183362799411843743591523180775136151416372454864849810515094336001345404717490809759322367515643263388861309069788334450070953710775755386556147185305342735509293872759710681268721372498479110490242490524774152676211964349732295750461807279203639603989383436878506316793127137023483379953211392668971139044668852973951390385389719145976300395756466630370698819132066157882141729460333248761715042700242608408473063426679049558103548972092431662008429482432590220727746103407501719539234311911114640899115494797477610053317522718265297383292106050945233634477077811264533973765767980107933707206878570101161093261190055963365252023108894278668758084183114423762472419701785133855853545874516834004611632532472617208415299450263762727508721786715619679276151788633630242616346157423710292595286468125447332930849643749557847529439067321191429829346960184645298510200510607125767323944490690389935683802901644452969136396637093111877273526853123966803188654742314263853837847190607648818376726192713238200549233035566180125650383567002300008157687145889469693723647724430314609634001526780960415851382251375038777695512758947390445827738101283137637887197751809072766891088936007287235964043615041243626250897739667971940456079112405920088283857902136717763687310652678474744053020119493634444963700736827269434141869001365254001781947811830151774599451650481801120962900407219312852813215538483885702542772625399856507335913059312275786678849295414992517659289181758224475189846509490651762521763710203908459838408426166726769762787714003679340850774918829770055899203421932280059013639845308115058744735430734581233431503534385914118278739004119255143673224185870792676788582508984103850331839240930161321195973375813873897778469853370324787779541632096802423543212522642172377337857275649335153101230526023030983247612368519570259611636990508820962887246520393579696884899025578850002869337582266027404041658958876535434347753518702844253870697646429506646504753695966258860498865356850358821979171573004397755411059480824204707710530589654351568668071744621551942282212569935673684533758160585332539631194504852990369700723679098010285673344125889375876013042476523473183127407434571859438561583953411722497269241593216607389618312378811294360363758429986833888562791565722625182886788938299354712307082429875298989445676025411744982961895333550124213711294129723190833031208461495457749905348310512724707025287379272385205467459408698188836493789177129824189823587177445588209830932402439905813702091461785716324116701301602318507972044780869589602156909798877913075956952220773719036371871059293812216885927071362182005951294195231581179505179114800936678636444117306617220107919926126104386697516274294476761749050571125798019527264965021299260237505251680282259701957766644058862650751275099330202617573242743124590062740609772348164514244676193909017425724768583085710611738313667427659595798182112765582425551566527379307872939501731789539987241655889891983860246639877428413327354879021560299597324794325125375387867107470442755207604454150505473580614267455263530938173978298993622603719283731316685849766938104719205629118593441540525133840595735266514178762190429554760023520979767855927746536229362881349531984806154823541444149579264105644066350254002582974744124003031832006396941258128628709936937472985140881087156530208837498565409350977426583826046658109634142247195516236788069155541710110325725538586990520344103748695251693786728335442497109556771919648383314422757690542106125601352253463321675565733124788416391226830021251075604764485197322819227067989404778881908384479575201498529874233628127178247838417789376357995119547411728264724410671704717702034360867634752902262386480496469988908551777759015724161905812981449430192338264317552196741563528508337545180438209674350278719495066226156336940039598223975346513498794816327014845493435239148387872209526988634520668457523090330116899385515459443410299661324117096335272295432444088993047436368639750584303872756167080487460642602875537496186038277655983769544833731400964081991940520403018564933307681266525975107061667212174568343582556883456431085698644128050796888465463979106990087622025340867610612383988364560453777495419282496641087957000303424311572861779023961029090203640758508218330098343908756694432952440856404567546029187636572446428153835233167510400499569306360141540006851675179424005401553420557237231954498822043573122997385047828662391734958657982734677783405765114430390774116038131613902089617516976730190364838255908873887131544761451961112954668405409195649705834391724772103234920541648584407324916579854733349908255388756537177650493456507330505613638951814473235977353005809613053038993226257800320303254467158102349394872935706969808409187421379852226797213603622226422454530762755260351087318880246009716322370342548659577276921051006548428282129350636719041148409912077846077492848155454826242261416580648291829532240782348826937066927992206172904256172423174489687594292484891838806540602310135685102594931795815513183050067949754708002709742574734314395179151430679911190393715396494033032447338643161179434228626700819169800385742046018963520230752060133313960029351877424718973380237800674563662412320746462774169522926434408464454718364705700562224449960436886470445198563668122719686473642922948404018358988931564020126531985471708918091588586459071082624507793878478823229948491029650797678374563791922663542287408813066487477569072950272211801064762587428546546340758929524950533028266023177745739519356819028146060159391674459500389045976703386010506163732982932928115883347028412689469365528602953181826035840132359035386635107377776619090369035058130934665988572183144499195455516984620491242170329732816246142340127968648511161845117642428954762743941603903729789943278172050779391093039781128126381223613334911143072552092441488744052266638481916451232958701412744673503621787947036016402291518074404242240753300779474046222446308999142998743136003188627136598371707919768463430665315163608819724924894449860733439454710616764529115951457446607803072247570435746069504453186295202579206993378680888501281992432178787129019809847286198342411196552843911259715867057631683298475239324871536770794014289267326071387518246589830932113878085594391549178585676252216849355081306980081859152909773861463626470538808690780127493822580237001300673841913275214121087188598262715367249915045461690203992411006746279926459580447785549262621740438211103678499250020331565221613562402990915148856699166174060683696059416107954054850137748641153495861874433532413386794327153367685272638672175842400722181719507001547850314559759174441697227802002648371210090769550819603193941304794368836882735805574600785384859772070482752138074113054552886943561850344302354736864243129298586935994141569881667108961252308293167633661820738671450122413694096445961490079282907296703699184405253340347130496480189881987572244711589994303814216411832521158588201431577862395952033953140508268580325950886935669816919477518697397777211398464841789236275148189464882063490198845533857174680031048204145688627798454041151247498811313956314066053915923724141680996199190746425899908916552911972818504188939975074386978858331084989292177259914575549309933475526643241837779498232349122283426787842334445692188693995343488180867055743641531880243576840597138103024516343418260038091306253291870802413659906631845446167162191360954838499588969170743767158816156036206315579219525437046189213658565414154456623972432080067304909439381187801125390091040231860959395255360766034170297226715828023310269023352732488198924169662038629728078728841278747810536787957950309827061625154531172796730015575371378755260185023683103101133449153205653936612066908581381948607221302657649474326105199633718919503160769744467027090881239211678890962918856708079360280462859699116436244208534086216303667345553917734617590891955773620793518844761837951168256622141479634102792332669968966517346719020024427302706081696348504168875867547463328716203418887444518199799704986005643240814263715780138873836442185049199130288721953787451205711447631530232529972964291999918707309665420355243068794737478897617850469534233828952999519228799997363714704831201878391670082622177247534379558542238963805926287954382275400265369099400065982847578300841594328486091372090292879614311887603222318781900598801730758639400229061622058211899012162466350488799599821789630548616315832691468138341719329452768058564854379320848356369694801788567669890183083048545766932977957170918659900949114095224558656348853632976690711724033576238309962188087348307386003868711690977634891285296305160276657406573769871999390148676039000539597359966977498768461993743364352405726498626441784804150957501193807402223047975064479660673018347338197775926849301453750154212602109190950140907617422968070528567708573723562276209146805534773255222161216520268427075774203306547917796560480985811149430595211347230819006404548269854848375066486985413315815920826626560029852684924364444777436762471269632198285876936218241918278291143492495237593078712735059368279018291912358395694938001775871180346047415917052042091232715097239132199861463146610864180324194047055304248410758458831473123854758404097675429442176629537120098367291918302030162890845052968447351664764765560682947845217507657031128019121838370836816640585752351992233906443020323531644254267126812944282455617867542125539318174878655178401554807374328317356843069206097091569810610560483389973126073303901212496301922789573428368658243770016014392194731361027415055686685620411930433489510687298928844732976840484840529297657880365014073176391416306158684286062200487136528287501820998443334720116855160893369845965536135799743285952678707543510158297558654245842809649883955098318806919663929415309206764987573476184923435935229842839760629291570449678349811045638751602490945358588863214947964953319677716934354605548357465047123735967671820980580471371860147887297990599829169260494135098565246059111301203410681081843947539323715973587243434937458219443389220986471764110835695938464640999175928818848437542988459719991162513752560864886413925324386530514535528100625361427120532391196823853926654723753248008396695942486119243640179107942619195363382020318098206171179014882929719379750108157468805384540981866658755597125134437456731076463881669960426059169472002864404069284691755027660747688471630495716400230000530937440634234060737578047192572031917922127226184831205585211106685038858773355135547853054711887788917870916561263422033632510446274065135972490729998445917858411527896351962339994091547463787305409519284754171725882683475552925939802492936104803799542773920199548956600566309337986620660219128687187169557559873064180034289887139567369293516255827086531528951554106441691436519844717901473158515053108300306530187201506511341094633395135335980080052124101515583383745581237904881867899292511468585764733740310906970041018518308338826654614688658442232625665315325573286105815254442269393596951812768712626092849169036907386568794510103037902688786579033869731572165581028763789179011362981536590289157201868416359063932616106618716226887556540591589696691809039788536951871686194297816345946159314267701175146975713925478930623515330121746711133877505816367158758614398331864921041546163247045040302570424334396066021234925232749907384697855512455283967267749830671588821314364361159530271870467540913711469883090915203740328935923376318676774998187517500665016069390893751327594436799340920984006552802018456417932257163680046591581500691020324437163401044127717561268122822501079851338139468930900759781430207879002905653192979841503001525984410244355113288927846823430796809977788818544685162062809658797590517995558709255885001704532272671357232032376152141812472842718634077668059901140923787827780838315959195890964012768029074925177441849655901013955515711706173032982372696443020451754890714937644095017840381590642950301855776164976541902708411990536361110953482989739951341591445855768238579028047408920568239620793883985202267014431118080266684676378572665172375189936418626369974881988022896999927531202331460688064684893678210810911112420564497567054911690789117702434229585975444662336862357046386166657071195301065410279633180124137392852229853177397227717101966290487346899649370401151263776675064889478809700221634236572978819232219414812699624310857822683654132478882188557744641582553317561431354613563798069916240365919990081181377947326660733496911066199642016691688133449079938941404537770169368275180707025677657443304301890501081726974888873042502892664470756416911109723625910999923729867931668126326493623231431160236745075533302633259616330477514220619575984663738572139150181506870360250512164736676140276341961492187406546230960526838860885087732653950647553968745534505343910218103840347423762328394624386600108301545245774670107565970010580569628214541497023353443379845577986021568939918358350536165350720351922024343391752961981784302893567758368690084123735733251150784062395507028090263404141400965631794226365443833516758543320904097908801834090424265635397163513383290563836775120727791224713098599100476373610528696478781337701028657706212555350659070381267255950958114954769898046447334196656324021698591228139131927635504982447226778656247662840604726288166389534099281364379841564955904397846005064800402340463134457772194003387088010271057401657771371746593889917178198698664438359833382355894705397035758537023081840685863718268878802829299033467185099439606350911389423238815425748953808938955821403634670053289551657506292705268946079816854543877730405875405834537170226269961165352146435076650003411180793246692501105782183402246552964070333819509337241907493865027018791548038440833788642482864022834796284834288434561339705212354049954756442125824217006466725418080909877115273736643512971330970372162231964887943487005028051607688080102680420300442532504958333795251642067656001962416026416137677661525415781303730994899466019858850301489935157348825466277909656471133184328777379891261449430003822936193113135018414177259075771315391414134680912114269025015313633373709693855590776468172918991266889263344220322966087491843038464474136161910528913859897794110326255195297962707719902236337558407275729572710316229260583966870404519510856071591254926965384595070737047504063195838420660085416107360534629009411424826900233175234385046237020572189167388755409215679816820730002501161422390235107683665025420052708949516182719485549348278923734613051306167615435909271511879550200143784402164842859038425096146261269871387160706716650329480666871106601922925431305458237683922268301273198922384910767837106368813308220908023135338720479678875694282464383540383865798793025660274682245162768428108094607943189363375749222068905806260292031123395470931362781102262711318028600257039045446232262613289546773140922333228985991139711400964045448561744697524495415370523187039814969807379768095935032439065186208964384805739072832557518427943769874235963033814324468144460884596728461274096080809568084434732171073666700669860271926757802171827509196453602426074272080802446302579371571214210830342506599309058878758375884643225348645910343508580003316919850559229424030164485939097104679461586885758739242132008249467483805411973000168495177431696766504184738763370096885834131751280413149500176424953594946711001387109368619644635447208506291784818792620337004258258728862360755766158219896273846369577348544544198090684400626908406442945320499337308546891016506061828314288999625495454980695439408896123567879122318764136517261467716411014797469800192930507952273444194860834226063166528469033924576875058711251067110818117884011184689573416184232209170605915506999520205893329515025629898787065016676426697391730843433459765074069472784301902246310920172303169429804715862710279502702946845994173544935750750243508703615040109784097327962760906038402571970322351780502899550838656774208592285063113513157007796446929071154757043965886345582254010630298927112101908200599388639055947913783838310465924336623224028045671846557631181661219925695968424545781887407772726691388416619034480422169352107116257105524976109670299151280341699214481911181717765876352150946089188000087574538962650123485923607102392115514949972181337037931429842343523266970859289690713629128435590152962057852521656305912578321818075317249550735459018147262431844509826279143962333022357721649495105592150299872601244938246070145937546260804705760065339749079360825753651867303314276634140987294574001921105105652293664903896569985465536823176804926366816951035108459816040311843895188733476797345153340164427435521141921944943292088289285870151658171948146770412948073061776359215090988903935375050075602080116391564060089964718502282753662280145891303847825910361869656692566541879904654371073493084741867171089765955967594096940936541982022497507647809166654203151498198892643115942359921286588757159088401238559529410560227017974070112704371496544803002961203298629976704743487527674060650074528746722235736535218467865730483723961749903852596849673278168043982890809680869315065993695983574978298984993873365499891829540426970840456731650206436644925590155205514220605387088201976515192593711680642617934413778650860265699532003020656992688769343724060187752583792478732397950759816774379899111890880372923412252974471371121424951767871330173202632790118572341575542384292534612161602247059891636365936692949597314447946686537220884258195173133986783545910396418227078799618887590496014129427583640170054828810462798438637942250865180078251124523364601815810915936773434166181333662354683715300401016775620616093831570545220985271898903442560607549224491620738255868821224959041632069255191490211254156042699379118782852883896246339481926029524260338836166075770834860227870420359357977565206161152119430471191467741012788745401675676103100159962715026310051387207364459587424806208855081640492584115413740051083813159484957669976731455943007370897851387816655246725189772780897016954795041876971375287193690492687616001864207925773023808066922359094114658882683622014315620702801706904821173861266661202180665013957455781326286195771764494185413164340974779370791219465361511758826216390317010203695026115455948041263380706907795934191229876288689728255820076887404006398741089191898926955604204791354536850772708522076776103415683040268922851771902837821900765945589743784447982656186032624612774211996706703997415890073996666982120160083332875297243188109074541488233952684864529901462355482944293266243947879401038384596525011958931553241745913710904358293581904178927921431947412369233660606169723595071867261893138224459643612402358377844905399660794564334818398175845175171976083915915283297391466334056422647822547252417272760941888598898987074663674978751871177131407764205128932078266006955544770792578833649228438473235011552004290415498383860958919410601079347754858579444061019890557908877234918614792324831634819588777975154900918040824831455424545650335801123928711278838231980007348538736167145041133078933279941507261176465284210578539239552686405439424538091842047940148088782416200484475992569510942994479581915026318751837731040201300419427104145966057083539476219961222322491791147601657993176039389284487124549411197758799374693687696659030887339158272257395878702026008136588202686747683913630001441680100279190242749630137414176167928338730709674250951918533779025451420747323217752983947172552676737072395710427343593038027745717571795744409719517319337205756606657336683044065030374771220693327801282936790350430130728185689506885454717700462681547038982820064786740578663909010225087123393243176875750103421146944003236898948667969766940145177543595695715189251946795154798617315231109003816052119117555386723774059194630021309151333686708499878681146498933327362597692976136553924434986313572595271236191566300127726652295425053720728249377158682359622888115762528117372871504737353299163504551067870603426146050119045793403291161781679211350688768471422791429726593820752918719503344187899314801981459628243256417797229982314208180618795520919406366584028916665139014380455680810852791090279862334211686518502793844638440443222043577532552721783404872559830266652580241018430328842166072690652290771149681873865935622350858109656223583194929718910825251206053129900463034769623310084918187506854720973605204857810290162909339443552541225158763652957003774572088936125871014741654079425535306906220549266822995734873581367806776396537359038563030740692233969265682542539051010871310588641501502009324634567567489697006244928874272677352813449906360835181249566980856015604204066829410511524570236442730694558903573405286921307056608139893834150465963733330970675712916432716233745884470569302655633084557887965747456379353734417090481107674609525489177589592577853887367124423367759548999015414370461454147678205352410053406722191903518706599156770139240253372547037444340397451531850117894807411349803066454447924233576934690844597034395662078669356540143854107922033687578149895399383804374143532588162054828996945459631521502965267543960307746644439087541935235982376186420268388051129718314070556307802876170662851195138087054824189153238353103321842226104395890434275472491585898852020468773351874042407305141451463084467813451157793859728207226658639265671729232018638309399385013089467703129254846830996018691995702918515484771647932616328233543578931824976476529802021272853230053545438467611317305768556462521821667913746370320456664265322812547220568009808419402627148838980340570594722758783803833088757968678267731721155744572472665527868605558558015704987328879817633600386980580996444385054629099495741325453289580993814367087306627852015328293346222265704939805007639549959756812640364945981997134486724729499478915719507347015725217564299037330067599807511142544623744486081285289988639948798528010640612609642790772034663793079602355317500610173144626467664300081958935945394155809741007802353299834183187490330669460241477552815195800544772215497450742908337289698400193646223629428630014292005708804177041133073905292873848967728034648666094972821420874989445926034351287023235830485398061326114760668836140354615130996187310591709592701820534090933140658822043230107983379156196618672228828129770076683460403546736191847742591723969424159458720186001053054032146139496507557131968646226213508012532306235080856667446744429575563096229020117423533570162845649659587242646748057046179964246213558501429893714062969702984354166488476071532641268558302095827219926603268395217047429156995324264075281312465411523038139007887948933725779633725686564898895651768395093801626360728069528869057902142413897091016190940406581412537283026369338643179842706100316630841924163904039645481017287936203738542292264548939063493900941092781124062319176383992740798429407025955772728592820076695444901814275613512929403197419982295345546789562066445643537837951452075141080529528217279126681012433512097293449362190412651222238084759080323324288849563916280233048735588235146398980640244399631116449541993317766999870630425822995938193695671987236522676596267374442975486137591155067796836773239322659196631017652350603101329096807646448722489885938543531812341931057154514549517544588243662925848648457520995587137652588801428400851726234322279711696440700454495871484421629300013617682081917726771665482855021272288646991882104925356357383490036503296070632088280003125091189461330992336512280944870544238065467050438248004901636452869109757680957366563801556642190157499065253149284883409430952069959346802074203285950887599471576454193228343090405509683265098124989981728618188194435597205078088950321128707777532879228163770633509288742950948645447489096441863007380505521805498962981900633764374349653810158000333004546999263724755613007989221487916758822948424396910263806213696261701903177449350988271038687563774383478451946106274430965358220813419727117779166211356883736347716554720345005827484886160052302180237480171864115296048605888552168865656421620634399998828325271313411548038750656671941752367822500345807202477977157349201126745749318662054603380719314017087689090415878815801878560969527538750911954793624153079853694578471175726164839033170696054763801594823810066184167380155638928304640534565009747540856611693745570026965860137606701566333005469519841714723393940198913909674309739246474039636610937910220238241584800850876282572197859080320489003307002395598171521698453348442716658629763784579627642410275495617807491313939948566713161595748330819590287546093910628428995028341488222732937640252380470191652687373919839452661841456508533534133469568196860221462050495089823966653753783737401251782463168921023276002826262314600452482704049457643949177566806707715621936961308607068572419391757046758719679652524573502824824039942696360536688854918421718765897309751078224255136441244218916755779005097942227040418487634688927996176478736614327071497590981132471883099870636014990336124749662082805804229046976218990621421606225334301690090768827424639774938237225233160565121054738668625235887986530869606120735928848704909789123713059377653618903712987596009325009498702712508510066779149785832025808498478251232475602497790866118395259262864891228323957909902747680611612573500480904607711652841056883362465012973828275605099375718929329968068157261709444008224779358324444971818865088130131583230519306286200877882393429964334165627371773780420881026170405180489223368950206354454780362815942322126004765465920676916087356099015922153349327095548862655027773356163869045010519252555903359686958743326661497890140395920232557005820427813292943728749692515854995599691810924171443808853688593372158101734846719327259898120090632148022821507441705115980882199705838134376117347272243006002021491969057999155398198860580347139211347126868167043746664247174166341225191294354849625131736417851875040403860065412579176048304839719297653526192760069441408523344356900987249192364927589520210600953945462070865253455065542685300589577615615225674953623542592426167670586731979711585834306049104356937639595590095734168500676202155982466879646977440177526606669326756996704918898500465746327503677758046713760981799969436952356587974457358559672708342059782646761191679686747277416918157199712125677620736965795426753041072614347481060252658808059742140132415125177984717468660739313706762172879693371288829334578807148016740310030840457369233932397033308193106089981990029411036500744163071248924278965106518462786615167702897856313017641719961144105688600135513048813998417011001195107295751846994953037948521117523431555874764164979343697347334688476621153340530294434757382100973509280701742666443118687027736987972581611631344515377837059566161136769300759831215688609091100202786083998400827251957186836715928690336891539580921208598765147579099875018393999110117880211369463048628605729982483660058204107692701580579930443596045858660770829856580401741286548972325672883779540760963852480633857299931580506154823846999049481780425748888992429943180562394343586109695975793192486973913403281406633450096643549931076112910878622365988075958229019422268837851180318275039485348646180568918020472021313886190343546879643420059429613379525585264685422733848641950040849125213844444049654457967142903773443115200605773721772923201089380703060857393327544559540690955519907382289308225686690674495351865037051021284253052007652384475134266859238187141678195324465494800684733838284860685100956245945418934294570182385242320708780219134151477117370120039839875178362540990341123953916450402205373650118216302126279350822277785227844706166381019635668556903027763812467823065445651973210005988912894885185913413807779584758372639232557624249137951239859877097983379985784250503885383010782311848809401094775488970877694989263216704128616283187423522264544552056917706627865076820703680810982417169540862393219726295727564229694976057095775329277081092437514280193406695196374600651740421852426785706912626933744678923503676595766580942586240279886608689696386595340913620662414152241572504168422778310287348395722523193668712407310341916508238925511089643649941408143881062195928844756609774091125852779640642606703188214908616098971092843455481074475215059524933712359204056369803824492068756048344719724490839406000656454107227555852543998663748188154492210568226880509907346608750636777117283476502459260930399307696363459254572788813834706263419284877990306153392594960127307500352230347068815116257552886237674381950262171723498208296881557810806107628461651979422534835297902334805331495891003518363275530983505051838797854600674530285717821587717109690217336326081179218840498085543050385637649320444808951523062151740971032606643033088727206757204066352393720301788429447840890265665794180919114215555354007331678950244219086407640463751730564529828756723109817995002757776685714326384777338880051046920461157428779926708884984218998715045401372465796948440823402882283939618610617084146952295481781869678668755624107276839106190448780935409323980411906241928779551700496751895181428708655459262628772412802491133614552344956426424997001518935508880001592948546599355725476944634084520527150239739059491344422422492433369518367075970413654334753046650552210521101466912722388368045408029677221949400433202466603319495081445189409683357272313308140750060462803678333797889202916864655113534980428678755701124475062734444159601592473989368802998714869095332921159021167118532484089763385363684160371439531835542552488243392875607616977859629401502129509188622253453709167042081232231566090425483729649367622996547155397185042313448737417526364057238790146921762060642884813998499089729979476253100687149430409709182454172477919983297273556288396572183155440880514263897892142800193154351732895614021015555125632582659207132622771479318646275267312408987816757333755628604698021057110802800738264983097928016440836400808041932314148797446651868172947615985070783606030355061707220336796359712673395307738750455754395915516422608101316496661985616112302776390002668198170875164627995971395168725549794846654233899638659177437944571240429138917435320796697654009133980501116632050905937161988725073165336215019307924852065144702618096403663212795042634890435539263400895461133416412606161308668335562185346940491763676339521088447543580799238786567393338011913017509700693265794706674108905199000850062058481827758257864432590978775962265220243706875757301728375124550741727152501248609827300936841183333538606449718572851944426988519213734754784989416081303083339774563612840489504315446504698047270363073548169842032972027600836717676396263039856472828544536327894672734924436120676657782168787328026805956285901387901227273224088271047851212691408998110528896298665329689149394639958675219295784563642109580854810744533413466014854077233751798231465199819689880155385981819061829087626388542431230605119175469796379395898651376523066112690997276851431046272273996193118784746941163770790961550089534955819021424990707991520883363108771418738965971868186533356743360090840487071626986163997651871374603312755016743666132483239763875998924659203790497700079873953930890456873614946464126995276034030376653410538930006710575243855407573641219985915961105356233661450521861054270974455197220286212938887781276396518359220734520941218072377932024092554558177776335296625955693692987716932902016603567111238566762539559511451865852812855294684139977112000659391344045249838988230140635383366874729798057147737068530899393250063857312165544080519480901006360758464234135086192947642421402286260804246228939489163049401023480502466701600718374718338677789563512530897189747255978496952535045639226123274405109739388224314474695347888916777905978022067213476500222913719151672104709556899853050593876577463786324032828289645534535008557072035394695922407080727351336499470706672252274530785219048621371799761751641107936846422376308958189406858336549671706198765699522014911233469639623118401306975206367451684093767833448706984360901899409427222938319916915801174442868884900388818955793710017579525852229036576911559486725235406139851347527025875763797663123041438245932006458097286122853479080852611800259147108746028858661097503306743548868796191477024438305197589864350355370349275686014230691751301406227048246550235298650720734714629444998656772597010238894291576449730090854375071669087674650486092141713520950992236874118643749213341939603396841088872425461757804394116068490448227153120075404987922009053173358154513755761699379998972958476403954485915960480693305520270288305409941464380151613488319594167481548980930968261135590077152090564326635672581952807337092303871792726038167144199686218158110935369833397114720993566083146370668113661169233681768490708758701392468766109037416544955541374684658379254368822626860259931657857134536667095120684836532728696887047041125376930441239192615818195675071908570411910374528377015257403237045101538093789547919513494990469658712352084178421070514579123712595682637631162796646748818953621339826584677293651268874013830327565888009682856486040288889712294079804462689357501946501708810941578278191932543454467406043902005058030989076103195158282407357122023246031907467688133104936676230675836769177893422843519482368814020265310148386745469025900067333167127587258478610009310308448217510425085029414336804001495396315846756326720073798974901455395345679181742395257526921721518320414523747511275151453201786196883720081680835704545488754614228325788608391801935072148724453367081519106858958341154099131473585599514666000341535753097644742602808941774973782712473774359062601485407718799271389021913008993954010163869589947705170650316029309131468843116296815755404862110197236298435110829825407642470404129519333930519784656145741783359712791735844202577461010098206124442807832739620338041088190600584067603285907181959482135779263676599681899722202747970397850137825369967036282576388335627539556472546639019587898313034152891213113558160433696330387549057126083317404045032617401711427395386171326619568849447386592972294124978358874735490665474709291667165528781429246308163186251176545825320728155135413700272164923945357606745679779289704121098908904686757702794552409433306170037153149656244410238230913658954520572415219322704058956725303212899481765680026047953880078135414026803450755422121081260007871721262733797487916128991539659086192716771654447008328004069967207944433779677673861422422477313460192151526656330455980705205772284009174755142604497831967014997724262059752988460803770688959662986270947472144836224351962473855369081206739192349461955076327768742294176575669242822776069306608291353623829280993233900912689244751900409176736100733291465333858529200942552102139714831844255766305396645869494849096798496683028868690888545270359883145021734533652148508017746147683902832316507778491143099623633154656495986560926275713152047157233806806446396816288485273740401456491871372832735343765201091182053251947553658404353688420496972681689368444564631765858514580847689661541764443867734875836690053495363704506089114731627702171115739764280632312556840865316532232648979405085874786910855114110303265865106245811837827841028180024566544931635008166051781804624578849415289798965434538280229007065254930085006637796869868290202267266158333343015956617274795156525107855288510011140204571291346213748236824287182586308477286278231067198768683143108137442985066211419507266294872867216343917675727704565731283801743163842436604923218038238246727924518567386465192478349491717820573406404620275881499450924225590497339039498744629921266239815110699436107004199090327042089348103806782245066716499646988295542394006553882350593660508748419378034093553075884972076080266818198954396954234338533785084173935844760859941773657254719836548613673043570414008227850464024143213105860244613751476618970054608483572630560290361096357181497759103624381082500865574923099723501575912947732195091401778822305106404487402177789029490079438726406648062835353159304777931527631711179536029885563859020827733422061902640137602865167122142687367459398496704402952836078709467792367413444957023324247590470365282655342201542588645410881384757115856741838960503098261545733736568985647805869516825037935903451301165221302106064069462759805464686070608823674683732551326326338258007574973750185367054801877496145233156201589372883862030217853546622947848135339639852322802659348774136740666240535410841446257405602603233452070442446279775244333103785544495771486489277914713428772872744885253502979724739909491394264524404024652487878921400767416985752066912514584725180642039491302812048378191668992287931335530360818924422239182688088513120268108816417379772515379643222005551740778293496183497210069591487871956764259112234088739976558397705330910950611041652171257337113699215907057839121870350407046786520410849096987651453500163363409633754693225397512277328347800006134096827705620219325002167842865163638400708173735318355904273865868498620598921374808200250016851553724033308084399721726926339863267251054093651833034498252015653854061573904820534231235244160890280057932244887982032366790749064494000700278661017608099830124896038360235501118373042838581002588049747080793931093449311688246657456128732003480626574029687265848597274212839701793128785025729839118735641346731496140235886575012275388228974274488511113039033738326025768670416770128164019575221747240993664720428576457580790038806427944264149209121597369834185816025048410578141980887640739375620578933897300177036638417693494968910001845620960793364713747177757630928250804380080789354365221017518808269008549243475293348568695904721956347997742897375952873224152141665830231629229374751698311271846779981219159232520265895484746805185764689089063210062068076001692107377918211987018748495395875840727868982918960958540911106349381997058342288695481257395552457119346665773895542701115367418920850574139389042757464979717036747187398583594214473702132896891183375560417951153942841271444037620253302756050479585105289960620203994357928017116100720273860590755892931453325120812751264664704048140804078708660659873194634378320659427430900604871098510772029027390514329258382836929782997672881270081015642704434338659705697935872479996508162178013541726223394205924916522346260271269750890132274748047756172922349997265810826390527484289007140379665044871015637227231720358113236205459469128593378715824170461849222523964399490501003086798383524011501060193008405450338210370983541431662205725710027973596992326639792268683358158634900852273791864504096538190779506823850830868307757660410335397043740330206671263328161897556779667517194841319271705271309500242759221800970669212497167690628405760449120154023251845631912583140687008466594119278759177830576877216756877040813028692013648169408221721652774528152416279750859367814749176096120872200499132644491247100766275104718235954462826608294741540114338274627558442322476301310327851073132552423983765613100310311349110901450720987608976745416529641565971300588106029542481159350638396523742322822619610111312572365257362775981351364158568171232770230558296743413708205048846730833734293548323258863170370844169288065594323702936833148291607074241770597594951061210371160245770748042545711979544608344519127918275822097941654195222573947310689250722614108699445761496940180943848663728409399932894824785266436107164798838882721442030957514717219762672699619924584933558111781295557816455585449093275882261511095393065843187009706362582013736822663862156236274418929665359284720286481191718649730543626168925944618237505369160975086473706567985863691230733865967474897698593218861771311250421506935305439681429208124609327389702063542734354467123930821996766018050091865192070742340191286672294552633153279392917888248361199775679148371730690085927092108119226033515759063536301689163441545193130254451855462106087413503395584907036119450663211359090277077143148273363111576002597434170521985471506167153870156526449908139568980800696029208823875675186311726971102489239505365905851277998309134560733453152819104586233704994927970846669782859277516672337739258813765905774268379054417225408873059943690883850574257542924273733868965497009284837329443012793153171825382569220474424922097144312779307371229996361711244487719412246017267104074522764427265331521137923431644955938545164842903714128182565976379607473439265267976410549011014241657032111890354672760357019175477618359155699862544616869582229387720325343247790401304664035659889520159380546179837460160180509368829275979435858876481186012763885255492191679212276862821999218813787209222668178459508656627324309358570233736697818690808933732394221794017583005249083080176151871969859432117036787894343317067613162471851643157088391519973580378611860352230249647788560648591449578729606628659998152084585280005627966149224396471392316725337182648188434911980651879655819824663165168370445873391573778501179159311589494922985634279280318133303387763507477206862691511736266388878244651939579995022617991976900589584629405646736280471170699072099753038308019864763787582601342192775991100060416056962222422792785334433512027546650326784783837987248573370924023537706015455480278312396736293717336593619464386295549110458101974456339597447122775766897883245632535582159424168445050313374826022105690839662596070078650268398691714379001247973845650576596925609105350159062208200310029442161746108875923996921497727190070642539615266610048120355894222248766507954121609372367389525882099241969513221570410295214995213086405462282574796541626601382406608216092936461147619310175769693255870952624788658752983304478403611683302105114459464951913037984152139588813326649986340194858918181560344575400098656856965171594892088926722118439481376081294884598755626990084924861121462731501877131487117099280261851023519359223516526429805058239913629212771734840948116452496832737650308657664263510514840574076027793488543583749160652935945529124442450145253597697936657115917184462706798684801025142638382227778957762277895120987975331729562356415419550709992228460553698436895592855312651587888307981789768308484717424780161340339515249250474878574282845512416583510459904799876334972282158561125599811791259482152820199345256264563956912966404875752322698800887863784119421212025135210558287501163539849097453404613621527880682747849871163475107127398730500781880271900041206144419126178450915915913971394812438416945314442576131443956626485651803749937006064776445031070547273050412400170469266902198319544403196079720495198761318076458968960813637989040963669985558878118642644699827884095663323343259197410912805028792431919580577477058292622066964409521825321002590444726070920680282409638308635213293164414977636548246079066053281619958070043668292354855062913559142474673636182732922522775881813421629239581334295006452619575282509501484026260159553740440301181853400725270921127351535881829913466100087560674763092219121610798445245630680311164766967357790288751128982363702598713806272832078256588919980246205609658779744041582252862334070432603413402504901210462216865616466212241009872774574682711172015527827601914121505630024413296531418623958451696235685880693252889257539319557513283801181822598245529086255699031030343416798104389194075351738016451407189345451504177494063825006695423793179398334402316003990553461866565261368695971914518100786746703729590806532941474363976360329186642028086083677625479587070088223984743087424822913764117337343640636153747335250616622512724323707448781071895301768358721759739090825197332869447996916262875506664022994578656126201560467751330895788213884260068333173936515234562219871527160573994958140322366551254097650331741318459181862699138139001220821544220483389878439002946291205037835479582226136562228708936881580142982821114385399637957867215256662760547648183711549594312616321735975180494427427676304953902453433275321939080798378589186601072677033947320265661981035687003738778328609215240731845385829601883865650993114380285011374140324893416832563179831479831251560955811904599790625488840274741797721316622300690266882932789088427464378773826846443815726389802539567105138041965488385816914123902376650435433849503048344083929801094672986445244847388796709257586234225560020452253917049838354641439448184683948145832517424183378584675324659031057758499249274561320376368022996377121721018182305296760822406882658144907375410204863543403589159928546835614162328149121368781131679486518798208143726794727580835626254330968921151573404547341968760498297261844954178790654075623947856050261944173910985519535290307027162550429065263514682648726863186300495507686222395163413513916928865191095010659345184409784637801016972003723220719398123586647969667707097951334143759572410993325758245558969010074844865147339738311096872446196450578132025300220490526887204687024191682766162852286732193065590259063274488717171212114806021151359180380886943254036747633650409608798821347620308212897825644390641066131142637976538960517244376826197914104682287722311955133726387403637344802802099854233031708460103545376734348954444968399728118303638735330706911217222375543912288749585744196735332060375894933780090570964905663014030956612098549168533944173546606277588711473151231627497910973404256418511913924563125456290933293238341581524578391808000749765259116328906568625256375089200609899375717759676387256414823661731626014471597719467782983295345373805778860129304011990356185698715010610540643235306719750035945448302466537560676175281644630506402572909089935908752256166505544291539120741131734719918054816775957759058697214488674378942311637027247814665252951329547008397742251519505906419397680254789314125850521418371243031182006021934722408910267866936734551148939161875226322370863377306603572966205365510526726050831253200070012728004304508998498161786683853677819186398407840317881336651583326901713440899434039892726048210017668267347796490316951850757793919350436102843035490030185420145993909358152270606377778811887308637955065750933134011901704901087580187421654783338237713435735860004952989657987046773371653427494917443730558447213392311338567787419036106011078690892849889704637188730884141968401996734517675397821579838846560978100730468114381440014093231716405648287936627857614592925520932694714484721123985356879248824082992956515396745134898031037535226656778989598391153335135391931080616239917861628138847813037278908241479183191248797152874877057251108156169522178499752575054853235007088160324607549529326853357631575423151887047272175543719397528221271283890472087615120950900125068865309337826730282588703775333385190435377750745215352905145496511173812683217359927612452416523646102280118453649356351298237355661794973989612634151061049646893313606578580963476886107698119769829065760332008024619494447958271890549930050851771000721385329878496966330859372554192934637767884083817922235568022178902128182686624581024594704485274957994856051744186367999870568626600124140431053769407846254338686166285263018846794845956901303769397962639489907959833892710179328829660838649739800286778571562469754912948047615358860480705990244369598092459212181387929334268109464606259105799589811340273065781445465308967339088736026819597063406503365767062979030829566377136132977501379074754403807714320590408488868196581150441745398097787180993725285592145661028727182110913573105117119602492959218082745298157150409603316600513947814560167656983124400027702212896737042016617078618448263950794586690336927159383862794201847042016585954889224859002854857937378612310584076551680124934450604708673295669365059477221097166918795081307260609348736386261933773261846777625226018677562455773058982297986661458790645671625608153118469108494152389294799592785408860504808480248591326069132292136281108875552189253013529947739283126037338280527120747035464241204748765469159084360076308177870432622961516720005790095705658423719572804173572636769174092202827671366881340036708511004519549909614514749156741142450694306616673101889001967510780052364749451152892875996672087752362717033495936398332627938439064283855778731454268772976037498460625490371319834381917449080091318419816176830586600524942725409905755591392678748572344840809659583897202676219620102391508747811603156509552092526311098502793097668977495064144840813165036537391618085376532833920457986730369224104954129171232840348626218288839576487970292028517540600351206715850840711251461527219008098857120921904930724915590716920697518205246287500313316222725762471033872532626169228852981466534425676996254553829903273567514896966694627086705112851527993580111244372641238246658879509540083097632052386225478140686144603832465194475410837289239733405463045377147674285997212620838293934357860175290719325931691234710111774029627576352569166158899312388886193068547834146438141131650422309828862801017773445623029651078052819344140977159607821143592720163484943369866391593340467642871233172827657541805304162552232139657364286792084026694604316366207533074609875361469922861766214197501842742008493070824267253551894749561913585796574582075929932216246139941332657980352388531496811133326193237204784966677712290059087387059338452559325918814942839908646577044042238394535309161520467721049373664616401252603467127447421910577416289857042399074393244897827931832577660759963935317384171101008609403229152679594237186665867972738255545334280121776668838029375479503526986225993698381949377696623608414645126990466600451535918757124297066284882528246330457090325476747411983423244107724835093128630204511570651139458136308479555455552677982198851035405786329439761589769577135414875927610706563764847761483811925757231547109502351855369697341109152204003017990557429757734658501929876469150878997887217248441217685890304254168605809369434962002956539395697741899299937965083386963787124164198721330922482903431399357576597212892861904420948189225716355556640172719481954070456990484738599953239370899280204411812585703420502675383255390281404381597428552046872111918583535019157655454903971831433833765600995084490828949758525513498859771817630314071985585257809397046159964468304087317713809764329637955097365963979068565281360735376908112794329182866885193476108215782522295362613857718256228420218067166291658598839101420734989348174688527364967460310790231746371275345546519637987693945859786927209666695472971702098329614142348663529391275084997281974142109180377686094660141045791009006380250662946554006713706041971482377772253165980397400736237879707850547849841977658219872691158005822211788697026443602318817585523834250822995586355037862404565407930610165109316232630446305200796535717543265172402801500639652815572279075464224985695539848128806649573982895052226592009250855796081838600865960921027772583501504041574974067912566847493399359407619546536545845752544213119803708410458516860177597028461704851216900870012534323648248791064381783957776264137187576506400915782041128627952043166820266384016313727864553991051941222065460957799849383979686662818115344846964614048951315430857190649005377950700476462858241023118201085560664368499479067259625017595229576090586935266927077278621160909427598345334527527029205136879766642864323049130684938175257220579578594689861475065807135272320856599349360633522024461861771836322322958721655655057747611751136859606900920507483129501208941827604599675214242704928501976249383285728776022136262255357517889583437703665389434350469221349003560188971646462603350615216464849278127807904678307144350252449113343417975720536122944475437615961297901881903897710103855802439336449372787228653790607686295369011132347985849399038522155968550641267401120090321549796928869472984844059887339088038659767405498386246383275594273857630494743584792789182523515446489399834598312091920028714602850918052766345781843174190404301754735853982066576260116483861658565271476788597943888424189691892255813198566156186465341891245370560503360017819992187906283755616878878005850227168246268052987261680665006350974427886738971482836566649883012090315784266901044823401949757863118330699500098716731107100484517854753361689776375018357810845504759690294394033361324503946461808462858208886151024171930045092015250206875931812255467425492113477250261428759928897428119340413837541374144783939813662208847936672469178864782396495420826131372116486532516823354470089344331012454187104020721550121820438832647625747477029182618363953781012270863957488982351026802756020715636520151111902320052215917668459483664698397393454938636173777193378240587819542726475084669517808365080507535618761375106287822813809476649590711837344269787270153513957673721578339317614169649196017231318257219977539017136917321543175099494927186669401139163810214078226025787445958396989592368115913542168112602235876889308232924964955944887096356601644165671704471619890339347686010423290178316186153149398044228919715054718798729491754931193757318034665168539145808202809080829057062759817215945027255748609449824041343862717783477859091351043026043942334462323196970272323255206858013562704257285459980935380681964416104313326777810182691365576520005377159680179156069925929583133614136391239534507388310030432348486418475961799447313529576589740926371135319239649175494473636037208219448391674754288412777451487405080056682866291966845167324873177979915813719601407850697301128464436161112672560206836684363007390502436435836386460717674743221563784342031196939931274453493477055595896801000126874914605004744439010153651820493746622651563135000975742997390929999252911410285803435610555846188314337983399124958653746965721049139857274174564857465921091537039180299084845296056320559973774848574528841855801628414184573548361706704556373511394998035072835214955674478020043200200956185448880797566057311629642867402058439878934839967968360884551936594705793398957048125099603892122256364279174710654549090713440723644238718752592530762370891823949965009786547290473761266443321168571381195503688006714127843561154403470001564285171403846691637940224918142015748840610430227182820931262662320820491959321563955113729909670421770159101370711641212727098584628489315975646180791513344806497861910997727016260058931574217750471178300772837424854330487018367566995650181772673615906574788628233069006519595946625395310375260953135369366608509817322583819426780818861620972422183879157108313555620133566260749072637235349410831215601302131155141031412813036615113866346595775030325018120304127226175279420378871168520646146259481435496710613326387985084591537524090097907889651970895286626040246997463315032588034082856352246164879942988934575588229937748186612460729912328369069198629627533663535683836718013927838501872755249200682579951331603981407977940325443581913404224136576501400110945660774886967892631823779099486638025475658438742714837910958047627414125450937195782666858510262006902572286036641934721118704289158071920300592413510733224358495240119490313183007543665384075234291484448073738691213326273517157576145645659127189049722686197631845591551915196390811724015443246783537460234381007903092793693388955099884893905290879642511012941048734003360434338181256876705690072323913681501538686796061558349050624601051116534604949284553788379893617099402223153506167572348938019806899352584911908251271820142860623696327843115435668457962656558567886732989397964962882222875790760073802632456990374780906827181747777631479069619478297371961242585231949210504454713580722219813922267909107471908437039682604973862089085137125971692694747353046819609820630263449418548284410911761984846381537286694505347727384065108012153063831421486946015110414607308151546691902867202387297416122386986948498914103895640133875647351583669082121610106321141936054402382034297836384244874414924475639058723606466712012326433085580592851045431066274103761660181191966233528705261038385119735774455946610098801077119670855391056968868454961796708032846537220194402144987941501003687966430769127400108640752463856101821430743727038537794328467789286303533656971436351354005281784710221033591218807469735991602259985111099550280835568395696633240916608695021534687138811278256106230708439682293278895172705473485152865728419755411175904516472364906223044561198286705250955579736778488023692690338813279593551442276066674662703820497167582017068152285670940390250489741598862307301788076435642354766131703229398263660583693580826993617989326291962471410503187982730953106307210936716687990265991229632657933248231737994616078322641127446857881915258421243350454759020728985166278075447454693404738037529483369308792465208585852583174530918126510883313018521201328977618873247927666380439092131980101408811489303224145128335250148622029538630057149766027404992414497119809078093017092506913902460165743942487256162612147671810979973821086638447206279760163502202053341945560801573493461938149527946667876087920724274549427415152988137284748672256585775071150297813299512027049216467291678612719050517301122813108133933055420828460228033198382069325979341757154293210170632609026197373637384249856882993378991179598709948337306173585893449125479621380056514034099920579788331446217043220471859125191063754639083933367126289032189757210152957728227131218939857938661575272542575042623151777351828989974931211800129721795198438760751481321414288566086493009047251876837211715259573644576292631677298916374358222967550356584905290871560198090777933474447314165350384442252235893538535812677922317845378103001004500281326556549618332438931832381471180556766923948616112953874545113437015550585694588631936393225991271441367167178150780944681275553833862552853425437483360853324362576028898396144914042671089452312343732048202583428272356493624371293246811278430044565935115693184048137819275082638937837527034786444624866895566656616630109780185801695823780702929714981305586706743266885387810670394456147931867182116628902010347362524834001482059930940477989288680411687762962003344098933731922042762730399353614855430436138621001141718168980003421767555701434985184539846758491354134478692810373499511253410960999222854784279670328363282945519445939383744542502291259389831399110804136231179420459827561186024491263056006318749474421916147480283843859503994627808622520443193172973867881933650311745546852937068448620034104423455273366307175327045850631471398810866070270236020932739270031365642325441904486270317407093983192575618233801203746981821809093917713736221050752070212054916578604099544713684823410156562069720303532624294772229145392852260955980812121805412370862825507138790225490893928450244621865056024120281891576839923340462739277863933609548116303206703469836465886201555756011174900875261447093836499138166874709443954833161540130458719316486579667097796779910183563789803809165338470376659378631924310882255976109429726654372381630234609702676583013570482455376821569544703064787187179559516266506785460363150982144313171405271016526041433117497499090731022779065304043310708700908266518098457752676212478854742831083116765773910170399978636889683423745148449817342243622250500211752545750273345144769495691907591149426349636069005527345184091811905948385340304787879101858600461696501212462508167680382314680943383932296764775837593805175988283521920352033299923031771429109806368528689104672777398485363964865681438669197662839106834808414602490826393782086496102037489828308662394268557984743985872123461364597499673389850125945426504064260591003558932910132221536598017167626000725175350469673502705992875722825191815066881015294126953271020124058757369874841287252587038498453602041612124690870522727331187201001448527853754067728046229112533121473404996957463122909751191134548306213779551757947937909460224835658921662740061388450253222370010711461515813350656619026426035125687805240641220120615451354211488231772465702979951925888821014076479065472375773888401585699002496080321694185966870689995579258261059316161529593842520238254536280837239375911693467020009056847375395933016219966823616624714862741371519820890936554634390566657484294568226812419425444020250613124344649144593777277904052436924602564640547141253247451286684821096724246932334909809022304161469014756856145247076746138138839002990163581625482146597620720033930222978315783311335044176163967499128215634227296898996370160670588082311143480378134545373191528075015549285775050191817857757557399352883541729710413406957158010393112765544114388677179765507843681686663862406000045708463738687759086973519159797831854414024673842815669601144732198224417046966372134057171645915342021817465006893146927315999422527541719095493091172702763203309145761551988966658449478147154347286140612187501136181629531268417090375000236100106360976198368766438630634685588279155131256541794914335027505069234400584611541518536722216259568381515937182402376128331903842395037220880154968111646746810455628349788852620777203366848598704547755707240713285065269707987573461137607088851392014952740772646700470623751796043587292306769312762009725834695294059657129416824540512127618833005079053424516923505775463681894889743808443508140133411256904601086136602704432502145909572680713616153408100440303664769847074167001040681947505854101253599014121118344309071370451793754985210051589326868001491660988951504788453151663553601069911905043311931304834662426012475375620520134432760279624755557881497606791563248117276134173848445319681760362301239747019682004756401430101716103288152115609487683493503508005512113503485473036796897621464570267247818314131933215626290813136504345592883641460313205084105729145122260319417378435306752238479201271724570184021917617984881733842604478761674568974526996323538082171984712247863948253500153349785732354318414233663493059868592710187159112462668842999959862649130088716698352938299005950550783891161940006517466047238517075274889570462873336627004880124840742839458309491226730195062303272938128603081450718343560658705439715236176486260165418611763501411566005928969335863518890684383272141727022201264568903750446715505308029565949977133003729787815212259878471846489144302829558862917051753663485559157828398133933729699556392058677079120619831945539611955929241194130567421633555237659148195945617988062287394795104989413532875663818607769485722257363198462533050026631495713722658314652259412164623736677456216522366851222045230703794950653075270425906257696301345491198244072111908742093799789639875825208415782407629374250764780075784227510241944344097511284238011743099643427966519993483612144538006704847370525774026092715150179509728671071845449614776287380902391221348103679286147118794005661632556942161731130518471653989553307423272626051551809866743546414624814123507075042392271311872684711443516652002219558152005636241772997010264257304485295504165777856779713036850907796101808233017599928109483818082235530843607994209533391971757312916868865989892096758195068291375847999344983169157754846626406092400160532010630983022536502664213528660421323617060055687927770239746816259636852830233375412664468801943339172289733167473753054272574180888385174622336808385281407483648002474921188142610017229727394489638731558115476501908217837369307562190239295510177987748993632275470375484261088143462132844432854449787533333471636025630448217464203088685948356178634320724779423580914318578995715648331335236794279801338988300963128763473109895551908621307602740674022352140940469879484639624283585742424565634637538108549686487343080960290383880507675108896875269605989409024773881642722671909959778017603447826707164320725281961238227659472250272733458999127648250977587071371330515409345557553153352558896535464314435398468085271075058213936169845476804489395181052471727593204777641083018008443760438555516738974758421433862531468290917773016978382846725962216537302845161643552452691179148018855683969974960655710197299194514705793337827050450249540818454835132093012899067472642172269951367335171854307592853922809014898605042683476915398842919243029314142995644641519236026534686374772386825272979515511613068132464525808252085310977587461592294363624406451256662255437319460148886273623459751098735223716354519166789845769847757271125573191104101936683864086587021548255118163058250258536609490012102330056245046107845300321661718169399306700023264819485323874756028363585645811995863602902749539800905305601821246037045643184254300564337946853504575139812057618994996334425246128174174812136992941361877669279897825449209262418419293525518715118535297356570641356796553467229089366609731041510210632647641250898492281898164807544001599117393663001058595951892801568835501631654879964154267526317936987765799115249359452290810541672050551382017846477675484992601464166187257329288193325806559492497334875532638876428481010763421532591709933415935870470800085799016684787865500518916887550584704441210959950477349362985167678084789056602204429760242538588225352650339198443278342277724045184308488112302106931236649738684671192841622221186993462308174286606822666555982818074858045222994625427839084341492836436471145658777381238381571270983372095296984685122388988533493435656392192666127997626358950436902531316166919115141359008556281977433850959129799492086574040556096949526288936783946425980548807891022972707804008326402214611958234522834462844946674952153728209070710549807965136316737151059346824034136684834071354185904651804676062628174529831483954641128629142145480988727307959924329421064307116985203965032746672173744957210234528117461714693102489037855329953269933533538345812279725102061328259136819701496236596997395597652919952089161172902794309923979057492795355227468786373201634362457423750623051970182840583453715478684956248074691007956682497462595854173077999491251096481119425164363468693150600586837666775162729820963480038428012452647266451032089671565277898896681021527774157367428045511275033778981669574121497212183375085315666864216323567430216687135692756179508361526952078967867023179635025457077218660701324032183079264330860800986966974288332857925028174934032687712284439323157743512080404690435901536296549646751491579187759800094790273223804762044929342716980469877632296031227905454669066536334253590242752221899327178023768252190737770525987663066665046658375374093228670965575824451755351384870702861118051432084355724859804563848478774409619777316676675673876247262173324001888781025494637806685845559185995806092807088289447126575711682861029356113208995874693005109910505037994697565309218173071023652777851221017092183249815340904136248886277738296891252963980043239925585714567667518323940466927444999153822506147580155831884754262987259470531298477296419146474966763308205190596409676604127836420682823212528764388146109001896084781853028589894974997903933623824502959015714181485702758666807326353661535142845035049741269053257374193038041109843777697116277569223619704886747698987121562607248690464788731902044964287666392070317456893129197252316723860629760367435499921463221731400201637106813400973982595067144910948713238683651342380586761124938461827722834229470369409606206084553268540997230606122649605232649347323117694289086671464849327848329691296599106249966965554513496989021262541537341450602588944779087626824544730053199717079423969494101424951027576382529233686153805829573576179000687201404027907389619949610412617601744756629506759092707247996875120525336506564538886338972435929521393100264871961736412205697024007727967009257782981446112262303569506019882372611146410503833973656573318890954300033585075829082439935963571398452945307559986861449784744992956019674095791820493521954251478437538399579402440170342915115803912760290155851871127220906546369775060541480748821436018460407779838392745960688001975796035557904958169490400085832920744260951275080871304236341848994729003117744511941762459885473680726484366557468021514441180182384918646963505662176289628815501812295705547054184128807080616498699672688469811057095488089477091759010216329811449392995662560062046984206216991781746825552414346216407548077498798562122391192483624755058612245075215572048343619912711388307720042013252481940968656046847786817042263118531561823364472164702554731694477586437396366508068307399892717451464105679468048094268260315112572277746097577002798995843993235722868527520361942771443453902035250652338685878052136611379048729084838936656676770084260439879464303437955078510113330739769417490224242162846220028426354115280794542996067165188659373278157674453222474430946899690201958605041582338784081398399903518420813041380790160811562561637192680141328597010515043861808663962650101850103489314713058071250131113444477273989218807329560318518117654522818870709725317315849405415654436871170920183338726306885084866223258544252387503723031505716347778351078879756720402765340933081228295306317344597534181528889142389859051941318408658990090920351014747170844052345694823338548072648134550158354956273307190715944934219790602050666684310649853999836991850235518437868571251709242334826640645379922826041952765051665006775053340725668258534190065966186824699966050035211568751372875408032909748206455051998943731308521497716522359952729371073321277586395872267322637288857216867236989715318399929695223863026894690469135073193294707263542242343167704545788496100020094565085045765420042758016496539640849195938325715006008804331384369248805254880277765905926315617472517333917124051322978980411583309165697709064133928513099928223591363939400026617723142139255766932811516148578305749554133282168920517486755492574668780846082917963827060248427328180884131371717649796650919494171112198887247236248304607313692567879268746885640755015699047213108978348964004224896252954036835522863405263233144355672126123812304554222278485945877406344065245884611298210412159782200289962822438228917153347281758477197051078387652778393758441733424506100862794664529389650921012810897514918283185534607681502707211901076930984247825948596495751727845180614472571203190286662259882197006368125449515486218721007448406164110399567872471767893623222666767199793396978727890787675931475897273570270176842360553485310556733842380739491992251984666450552246586819999725840611885563031382743845303228169952410558092377269029608198951770026067791141451849865693116961076811733912570446136218968607376697784592850544855221534757256190877476433246720066150969735530279287666876334189390687998368498725225088739616387007497986300861702500248446201592782846479504791060422638066404286591823992031682241043162582613457316123241577903713287590082430489039122412502334944718830319861962694033092722196159634207388367944140147384726964084796861574802029810408921774483972892643793110820071063441700165006596873182249032467534993559921583829998795205398826170221677312020061761500699355206279704669086250705215286263462055159777472339946581034484784273063520440078840144810097223036819161883649174787776557134299465227196828870084349802247944487191195293459575968504028723368333364952252570245315910938943229111298649765492164933080302106853716309730350544055177789195033686229091975134067157824354782173784803571037143423874957095964249909933342167793621342736073225356247707825881163296299852629869761087912703710119819671696699391760987967410071610829747133991623521031608365553572908928129879189249885579879028074741582169058400528646277493366060905013387681939881024944702480814336407831593634745328098197376143233392282632331377798066708421890738297140092781495783531400815964296797059274910492276094210704780925021548624671580366041624204930366950737302626039897053581416501097383413788154101920164135404311768130864363065023257711430774026958966822080775809779839471297278677127807450823669577904490286430496533291513650642941815474318535505243295079060736699406526673015809721009993987700655257764509225197056596626942234270057855508385734217101898107987866982501566183647587294340369071141150967939690253540286691567525230484340593018466651861297899029592048655446064584922276117265228058170337312549609887745585331319132365691354440841300142859976476936536116487987215498337506380913738356588644896410172275635663868193190603070413225341427798941172076676276556281173710415900450065913364767817653495674058665728657827580569957642900382613383588638003041142880521988120035425394350372608609025673573424316573394585748158512528359905066753227353716894298018827714107776146011099658611937614797190381488031571889442860060447861726358090031364318665397769048707211452860469393687092421377076094147021071471345212513206342231821565450413729223821028231282827707215049299117763999368992473878778502445314834094054805540946988838174794437975107050881035370372965114611031438799053972618649081373602718420403157684903636672129749657919966617278483264110480465410740520661879071861596395467305083818489443466477407926569567806886977029136453628391082209644148188363983208841987956518591193893908023466629236609867846275502353993386015847006106053336425707106963061763451155303683529402245303670585740305947245338575361587118734707488496167610048201350102371155900042399461686310169625191201223851934807068082758627378626889985678959482072228778999151771049562727633266996166712797736812383871640240122431678992998022506804960681533094413726333820591813593333268391968606801842605619418443489053200182583988597536139434550792612079374423167376783775403935955416478663999591862703117891070000735644523992784959245869727976626839449322413390873740942779600371415247665613476168876611210118151712391449474590216399643759227970489505341639697416180304947713457719099329033547860406152186230737206825447606048229190346616798932174836669705416068710946843362857807443665470259858231127429783512874447037884944573937173043488032305609086634600356524466142700912796450975826548366560490038660581958231334629639207135715151707655067039006927043395510251479235199763462027423873247831776969126718340666413027315854645745097490187558552116022062983425444570842302345762508983982490477809669811713893427974637299185616760164283972600218855102836736656225097147500479826616521481116520568510011542366861502483647284758597833741305018732269289155198434182738008466904175755415168667490110325074974889574449123851324486882215339346413642120643343032797735399198883350295798039243415408849856735781620341437659427580705779524727912891156632522720875653317312911549768727022951374612617030889790444924472777832419563233553092821762693054490948843303800220005885715536166221417246539622183959695330638782504043652621030682384417112523557762302480303845952738471199378856438262935508634088184144038223108740790462242314912126809892331787721725789335185269512031879371901382649356167081615892357547102395728563656092361928376457064977304232716361791728455295484538374017101189256028161617851770355605722842801080074767913002974582993906865365840838602702402646554017571407331447820399121409205818400049950099323911714067589031998911226516471170266119953496118169536444587224552924921678909500046826211853187726859788016793220097198651642590754295694482434711283658840028996889584097240252294563522263304159959848119359417887924668125248023633079445035088238030750982261783632753266750574537851452161875896488803658606825189263471505695541542230883620734640402785919784568246206869976023034806820594212951699851398866222603663857559452722938542581478761817452239083522952964132737988142177887326838865692425996848041614101031736604366682998172967368919225221167430806083089705890126942903415511896721091794529304062406936896248791778513431062148102019624353583604591953946780511345168908246733676079871317272679350731946844217768832612966832026062264940809895066741603776127535634235304295894292674019669109949500337793256619683510047018945258040810471721745949111735725729760729217604234971499511863013980837676647667781152265914038244415599880327331518621683432216318767436190046251190812376163627714332966174735075708891382641567909133033894301494949478314880678423918706180858540072356705758580985055237267734384002416010384925959740957243743370812824794052733436396138755854152287703477335878122442473603999974364168366679052157084232604427052961508775473762079520105990194232077775102464971986072055063781913078880386037237125656411323898026606011121825233890530668159450860753595416954186259144308189392885989859776160901571535018099531493427817764613361560539184429065451775322054988727000497463887755424287643919899541210936500172615456512352433661410476626948141169153753949111569586191808981710723031884177321489270657014808593291920476313107612779994621960466642897393355087976311476219445273139718688132985944864584721525358824581287619739607151017551888904687442469512012231736225189404824242767743003673373865972005732106619478999177391467892324069415150940332030601471815011934552199262245931029631761891032200584997521104295389112426817245522366740521172486116602282251007667355804027224475974419361540621889133716023977548193959947208167193532505826094782639521935091786831510715515811697224561377736763749967282556533868909841153342329399623162874640574086672971587736835591542525328616955778607967166250568935435358804482448359719381203880248795564822367667746525534889810647989002276841148028349329627002656095629224369473175788802210811149198463668704490671389224578568193022746446051820765510287601996396412063123626909186407526936114198269103582290953091044500965367637583626942484724022950768529534360558601911631057147474957309117403183127610235860933379036086743490431861921775249904958607688449746465284984919074386780410170371411367103612980209176030749926577230487409430330049650894056724885148300669427093491788849486497591925612399355087980707629828903634208989638904361041744365274221914138992438249304702340881889397847677517243210570457686512339530275396169445225508780907808756845899872860135353464694608031854125823813504325019159705823209533002506618502488481232940018469456036659189260975267760178368508237126497695004193952532832850054394760117273903478871512037171252611495322337149044443471546359956995753748787782801134136004324907682672978728748056091116841201922598534351867536440383385451868924676977652196677678913564857701839902445431861676485223829211575171141032753308742423601421202385913332360613392741476647126931247428638363673474430539952093983863482180738701869865684563609118006679117848915679838256085600435885377032371098392800008542341042513320470948508092782107771426611330184823067276463465481500232574578781979795176038970756056458298429577496117589876405049889419235047778229476573109621769737392560364920236014161291216727709012019229513678713132098650897856862415107638651474917003342111779338999311888940971867455236912378615309329428089337980181459743075176521402357570324265287713752712821218996076698698949883433430166713966666377482919755813703265178030137224635915997064910617263402363789545984074771480506472827407063377010446071894997294165131026924231644360806870318590170584095921101079699950919510855967940990669296006587840162793523605052070912974762314435527621603809169171746876136386712701847873156518091313485601148646047522659981487700313808556199738894967253359425335993221952801724488016677527408562563856122614458154045957210073586734581221407667641675612041380688313501268910163266817128354933213987428113753297004226780480044827325940261983557697134147458499940152981192275486676116916932459548543981675864425994927616441239718273505485040623111759549449803800525923742001200445258531450643190316876479654883095982684784201786000005654904128192264408218274040860110441098076398989605846716001788082293801976419451195244474235499281801868751448882326111104913192171365369143247140038215913280715172904770414176590378523334580083778376799017409409314313494530887458007080696046287269253757619225489759444940339164177698608487620058799571428600228727873065217614751748224815099897443617310633872619753883106889311010400424008445859668765575183462635674394887664431268053530177098301029272934875242637713689442667769403176105914326376752242339328928185655763059857802273997714471865431139861956869375672839984628505386053479469084827800576041421291597159407488345170126805602418054572362001433344777958280053035035387852212605749038199313663492302240969783815455318850876618930761282740421933866218118340725283852257047740158188438974022903226314587382233751584321266539005809069428559390852852153410450711162927549853842088225554730064550601208206626636389840414671949507183158640976007904085396338076958676800136202873599845186625408536329671662839661342244256546194717043082979874546321116882916862972479526064859561462538889996357413485108683053815773337391944191189950732300707621403193186007375253469013248122880801024651558307229260764828134037971209363270757165041322861903578721887229151853079812979765068836414900939912646684529028100058726411564565809574072964278087955895936126439408178230414645082187066392409765723614281270415172232512990816948363393730630869405700621356848927613047159319497405514063457181610364267190041920460911059708700599847021558797110485986419614452709298215693566882438941336682985273500126582432452722573451179642045843359652976082738967912934135886877498865058151545717442127948316583256640899541330375240448286417238389082129120678474586512055683904126113164212261103303281735709369764573190016508698853779443938567578063175113927170062983389262165796510568025351912057503229632803302314428637116331875837107987065615512293977880909232756979763888787552378439482195478440458524418260230710989262776694395601573719733852987651887896554917131431128652638784771299621094466680207960760791487196854772607722157334779237087184682895130758575047106935019964188910636018888069044762555182999565152902036274601990430728097374658422969731096190619910493445225943304336283743109899879817103996958422811600840168622213991291724119729899618036451563641643121425313316356789477969707092242309143888626473536255371904439078596943408619952695858962804748883980263576639818852356607399753885314934341873091978294866447452711439804824683748238363532123249897883411003141819294201776177927227048535738428527966837856723632342841592951790097188951995925062450757184573551963732307747911458599319441374973992669404000397551284342945148235403277101302730768678865292864509378924066730795527880828193360022713426759358859215401192201195776957199469992121394851186685579380080264624766082143981330818714343858375679837956682767766776018606041226274982069013162298860866279480998767369573330818604473280635653564570297181274963285559787389666126417388439884120431583814778419011147354157686344963698134695325572732792723352010534040432181012963536832269204396452352182886267224973880605172210588805722525875076885737771617355426888882571024091281127695105376464428857629514365496289579631698810536087291357046950811736216088221200270530239574702850339348518798109065788302583858954879521306453239130997002266537507068256505794007429866907692561188502220577689403653235069528741557231937521410374180112562094879238887529658970896878609836697635515497164274216763586645487681733961852489985268943723390930600376525017965081364576288753900166031801168991129957484332158859869054288549792050690429665273968243452368014465879081967479174082923883861821296377704348046399852119127121713612444516796852266094065753974709336280215275922617685922976946252708456632721480426717869565752574348693364728056754016129396293149775645815191747582866689910890264172279139527476427121008043346338795343632601924618090172122856536060682014143483388304561619947604350830176502768025834594969415601446092957153311412451975449082052723480778829348196879491437208907704481705923315151101082347985948366681607970743836241734897619270503873089552198293444756971665457399516878708884972195881669976298092462671666400290657396522145730053894247377200051720335148258430033097117837659421884712369976650184182451777444012082943070909197150623146501887707523151254458026916536308536997801507000247319311601564523780869915917051215401533839405163814882360141112472105478132275433460836654926488452107133560259979782052907907694296513340935515668228405562363989820760503745043649295202512096671949321408040765976952072362942999896111454641870229374098731620658381328554992777665054158794772674340568054767347056383613672702602125555029346627614014100663272330056967347620646289897699092050737391177221618646827928761229914928104544682715732463519008707839400573784248745321899561257505132496594223832911967843308476059044601184937029409541023304455328564443565230467570788472825889636384648213545354333037785096447774861136114289709802182741367747472263220491126222769338282218892539685449349884248364865956828538744428674990316738592426000999156369201033142325578641214251616769914493880502635521407465061782676943164979302140013959466875317540382485023495508066821328241283828838395537920977641617694909843910273949320770898903064806997190546288891139956046515131229834882464584722795018607695433732305816918851681779262667357335464461488337499883990561875844480357452470644660488424462918785372891394959284360753523503846009255810652303317812335933874348326778435005844503342964003790943116222732210854505290826093716229541589776382214032480624534160381336488705529969501552496181683092288089052734672271082613900704952734272525180485442055196949995972475288628961870263879563234435063152947085813790547314301358559723814501940007277126435188529786463331062332459762103273145050607257802136898602525582410493481688133187962943546560672095975190642860011748355579135056384274847355538745413141151524333718341009608194590536600705171065240060356716647523695172953820820608234150929716015983795576034151611441616705978534097252681365564501244260382589309093639925483724716121649892542862479777595891863291998823155947238624028144659645718441151590681609762140087967465819054018301339047768653501223022868347273261409940425627721638740701098357699352178535039929741554505063846222616149555050458943537700977608459691419526824864508478329207826085609738093969901850341251749056221747148565733457026258527757975620008511197639927478286269813945417428337377159456118178380875152887783339162683134625930345189076111052056812849822235129850994030330894611680824218680860804167619112165608212701673909133451637055895542277847282760372025436326045501969317199625650792327354078060303219145153589291360835410064083644668555637521009400072043443056751918193593035578354543383167377246243733423695200668194766850925021464792941568383647315002340181811681563092336001296933839447183188474552032799346548164874595284579464170638751486336886100955562707348915160440381578913647127605092747964472399058812268685136137536306318366722389811450660726272291240338197548499329819584074959441576058497510091059791393173222089459883043673231082117574294983779871172446736574554518898644501076329937876531396090907232169954441120683039102292903079585934065149293621321112169834414383783160813068433471872321231649364019900339669924464845688632547130181181719600216103324907508474937704926036786380402582275096443186276356198312094860394010201052974382156138384602339904972664417855753891089287352120610255335663729139806536997817041861613374881621602364062631936275852756961087404874036581395403206342577207878129569769261848859382096282725479413879538115001068814202840838406577857636671556298515848538375859316143360897654191215245896399815668148735028536696408777629281621932437272234797565803762103548833534220599353940240487851469012483648483890583438644194882613075198950031622478898837273896739270350030600878951039241278833394072221821504563902868921855703864707511417920698434579367482154874106771129681008515946963481783745267624224802796248582494678706380706141836623936350794349867282720541026695225558070083748903839148018182267737309922691640152104736480717265248919565202239927019505691854264475429630477869267882989618355700907584139902865914440653295331556440744416993126458839520955090296002076684931725660155876472751646694130737794062456580661575967081107015600912144639953682149404857062453324273114367239340036929469142058304590742385189902948348924022693082503868048915359359993403252045254791856536150921550192550597643381077149444879096315125069003405047994850998481305463276549210115793521283965084761584412740450887878916461860571077263483960799293126658716356204979399060240840570703021633731725940353348319658379886335170596512808210821742534796352250202670691020390560115812556492223245374905177451346431136741462953219753725682182963485841747846922217335029506809952947524146573441368918753363014578829775404180485748874608779466581731372082787929358221689314899238204864990159220074389791702396508285362617089291848760505268129452468808737149084566430730545997137334007140349911497428954171416750733150219833688612664339341414217153105421020115255783732069106620671195341748551721077439961144968642036457888997005680859491508792578930530356335777508287355704862681941114317693261781922934674424956774896593501591078493956298764533840236147828948969755098564058948749304096626573464477448176719073099364879431922658852120041225639793419784437959266953835604832010943520508539894083972059958865750492080166945475593418239326318195236047789749790673215777153953293883222656066014740426754803164440021399906870384967698646106819072117839819609644453021725245203227364750407570716600740456206187555551655419382597556355037498624924794759730985597443215314219414001476341148540452822290747704977967800311010651170216538405443212371264345268010308183284825258034997225601219829784465128777292585085598393369752381889139379890979837518602050407206158354060899449744104555822345007931640728237606397552090916277233709584183957737879676748461803652444764544370326153172205975959827940107278776659244736256507020974311470581228207180181721638094404049930924105450321708793194689861467797620701560486130496686933420180096405526579202249601769274961525493047115223519605075715894905079129330856205575491710347005582511913300124259580676160760029989049686859897239411558994824109280554433879328098731043315490156270649181470338268338353398199485904336781560215474799405423878637149656512459295176033386491986996584950777520092810419051164856442322345336764944041959272496437916355099324498682421378617097492894999356781557681628341539954111579938024052435032530170564742160346009034778953059424100957645822698619476159225579514843329146269765201587598314836687995302577942848893763181456528736773456971040918623280640609554137849687009859635245043569711951903371734179368217198302633607360586947379541788611305295919703769827431055537375490247238444859686923794784090547443936204867895242044125274414289141092248424508853444806134324496876082310080167123555443617102972327654614274698583630929358303374563594826096045787353430369446081992619882148537418466784351528681491826570146338157277489133030709935507532125480915502140654099525681896269889277438752145462482362065111380762595386920582955604526038103553288363177064564920195647153840319198211843017713614563968308097155371311797953600791272304585758850036450239560071530985404599531248049828249734427025003852208461691093853393820047431318832254188822272696542761259816605422356694910149693817622052536226209284649173341107321003509559011138857086823768404733651803671637235867770624369454383388256021715655873477292411741810177240760296793264381569277555545448064583751692091015463146048024564636847167649587584521894327793148304380719925325834282848049302514789170925398324966683139711574015387900722587639390358866074281783415894910568712283530020039633272699133743668141634845979007301060387252649843230239038258299465029670175108476170139588516483662622894523837620681125776958523195252813231249383197744965532884394698309523343627761089326126778263656228628953877502042677907839880920774188444501506577693116462939776552022052277500105733922093767614106628693750702782553805380805717583646701370900466953581672119902561503892750759555953033724641269024873031534223848976913957654942345735713764971313378277801026179887115902677339843913741097979870007959987667016850176226203030847668832053390678732684523747488252779580047151612800455447643168600250815732303665315203292712024480386396565531251575731290575185038226061526149814829246835443505365899624296998590192724066357940388746467190001089698794611421479215071619254500764810108679995689067062005952173940058772936265980195364489821863339402981928381468240347613944873013001280339682168234687038791568182076764119629377106965390954110490187699915216245559705933853029152128323178148397080105058752568684379065757153826282089360721902914103443620681422390272796866077232839772481613047869722975237630271586349254503076087034236473139527632210513765714682199759898532607479571424878812736917671035702695626076761623719375891622978702902558985779795415183604679310453001600982150376844852499965249011888878973647537283429188676634086182150960035516690135871131817672918617830808694603135539471000258193417101741852840879067015660738790652537779633664528373548510242556800021746734925705874492744534462185527111757859110637777309704305826391100472550797298520894256692777993490493522897212296086487656815202175773222273030582584747814279950107908697448822267445209909187243026972893129214461939191798745844695432615892429059251318630420407324465686687796088160230873926019793127612533069677110778412166136662751065660369960065241090896862459894601633104777298748150662880026890710702359658929484374339178435424461641790463163572036662502211323012072880179560219494328722967419092782227544357742703041728418998435357573733924204985835826658087470319333817414257470059040643846309352485842547074512502587698693039198650111364424275175436516955189065615716413425311388563040780715619988778507692305239286619398586881441209162945896351381177245315407482270978202198254568351401040041999899051475959930225505565081910625743009202576962151458703860725310733733935961953778679968761552380975009801176433482302752843508077014678408326202081293063190756473048441480065315504669173453927659837103324825896284298230893901953059979774239905611268634590159074058603664012293732576481124258339552718139966555606721322083844301695440209662700571910792930545822471762642291912344282054675973858056480098261276254637207245173043511500588961314823586293162095845375900694466424956014886823874335808265654334651536613791579175391205962368526635297298785222845454510226009813971961779380718105389364953198976763694891863572181169636950539636906565748994278790535250022919876311515675438985415815820588723084743313774085553354506795464301120878031068643693072681615674824785833302659762376804858720085824860506018371558845648400217605917547418336826168985945659760160281924807258430683606521022932988948115886819291381896273338122423071859950689979604086488315616806359702351617657125091916825624676631722178163898046700634615181689719252750011972536166981474559627403412537024710712900297065258619765459108413705987525016990722664005611913360791367225110245026100511246203164543269561123108758263370332034978548792922720710094846637847307606923172670148150377195810231250902441640960150810266618427659262860780034807828165492686972110027073623451136496146388125833539894255722166556205053854561032281689070375695296922607513889347471910070543549035731411075083551407473151977521981901989231648183732351936536882896838231682519067319155764664699311403713821308091198061396536741019950525284833217720280497172499554276801398839473299986218379214736524757285798693568595485139612971849027802236810756343567115681438490749999934771440041953884377440031905991814595533544893938376774930221201036189792323726397184729234956411641872805245288977968203208517190519570584094517429787218170279120103474937482260742303846017183731753333774094894323027733822868581274531715474514042486452024556628089680161730921375662223758198086004881710808057146365301219073329685384136919932589022688858658857077944376632498838202118143642923188832225698862409698501475688762457272053363960619814237154458302146450721545023192334848593511133416803476431932376923026923253284539672642209245579669447674977923274139463967128700194501641151518356646845123341706515037926144553837187898248257204285918460498716715782483385847777015997518674473743197079368003338003700861815593428725771577448250385594311917686409566262826533857970762779226776154599510733812351376916962553899113564524940850193880843729765635390571316562731944076856779904008478853365723219513899901080993360222600565795681366146100098056520177630908630368138838779618722077357094865323853378756648252500418558462463166254637179036947239653756757782352859873250765768204380591181515338924684717747283344733245371483520643196646545331641447767228172935919387255915141802733216908026027183444651310289312464687208677989506831291474979246375221229198175846555984271525768313866058644054011537606125940308633831836848329076350461440318157210818316551764492134731491583032720895005385805360059768473801243161894078082300891948225682800111739318332775468237028506775815286482493047318921067124475227150102232091652615985905081482225415972315844959441219013257187311245866797380512824296252750826621999444576758672989421549380239550791447744859333841872082045988354847373385541934780224850689740684625822850548977694590349098997007311079521619001342728720374814001187586257088135706818794035044574712944469902628838383236577632375733712252840775440781770998358483598101796503050104049437113882846498472567144319533408751230539834191676733163649638098274890277523184674536384551586434162757895507488801591635273971115168779305825290478213433573330821955913895196902597132496559699075755701247385598631091289392592222962065069037504193711790748738927676968821071839952873530387567857069146794668807356726542068487415784517109754299785927742534957190077027660342868090720126831126860791973356448351507516343052162804209140649268209771093526866267727871055335896534238575336602122216281118807680926499938745086604909994561989588759431636689158233470305882005769872072851888128703096269282854988693438575026927234334595316509713438319750780257949492396484448060361028914258574796391807179675157906964276390268770065356497485906949192871090016068912266258150471670844565888980586352730938089955563593859003560823493971884539180983792600173338116605822433990677418035114714946521494470017494501783106968414324254658502433336620964672418821266460262833129412553303913322994276304916230707844191761146279974597404365602568936550684912905539003251994515878664157483087370837981327989010160322003376054010701012477270919102998931105376842788206677226691040128447130460213158590848727193862839731503576424640299667483371781361250598534756570589836059786826584169601921540486151567415697139966196992372965942193126397373310011478672145184287849064683488114142814016495883259399363705116630789452189438082641884861154705523398593603308669927317921238158420944655206106361302570310582059776277262084217262050549188290938507984763879740399272909864346972773115168589169101014838388842709604214957723849878056868602976491795954307433479544088949899629496580222456659148208724191270055034659907548309736765875714294430299626601220739924295630052620288528704203722166254994410743430762209976034688231577326823489873806454667448547093496647788742032079075361951642855556659484903855636356994579130631917637088368331000888400601350727688021217033998897661298663998845128389645711215786812747347792171301889261768581373023233497220669350820141542178452398448269123930121084228356775311264802175638241000620845480717756516740671351402071399258162215171196759514155033340874084671558807249523676648119717485803342080370239508880307732028701974618947977903159354841083339740286156124776401391410186014240837589666397193269792168732795295544902314158363595592103945703230392526746254266465504939281003899624828281354021063428857676709729690606236237254914635353265134604010749785360598722495560058419544119468622678815340121173641798938930543683769228259874224616022610806465188312968872993756877440935093719165817010744221905453987192757358517008439149709022972720353587898818719116049502377638643724998984172700443993813813710685127070285378878401320654593743765323597246267687937540929869628580571157919479623878501460048708027077219648111137245170206952786827734684825438013156992688259817373628617361426107977360563220048828966402143069939662404877466055087150387906261194563129694817417883215641602053376640662925595482287177322709841473232783549895129602581107328493371811658682466353236826078464274653695244853170025625330628679616198956765534984937309800882039190320611346583515469977240148003418380316343134572643436912297601317216675618206277750878924298286410665606058317966844956656155242706278679512228935533216322072766739105291189383853513586122188660602089257844275244403893164148154398178186491295787989733041636904354804151655517463953113616120243078024781430779444624506260719254937889109606081733900097588293027631053838157426590494677169066264188425519642458512091475459695016065434294570301388333309652043212158025233170782090163982756919397028875132066270970249850653276414877233583271534477135842341974413639055929804518376076947230501668533710929072469203206224497988462026298205923012319230740273789287317802854499398854231935918283021551723693447401061207172155008226283583846112870481952555158890879087217507127053914970094093298167994795158405792023720684180890952307867657287851399550158887073351916521852767409816287082688417571455185009292366821851701599002795220884493443022201924795984759345083363809255460275908920294017179357964730557663319701245890634437946384541636971795722802205518766804951865133318758038251464949293317181023993123180395222771647066505312809560181737763093457255455651614008680721533991895045738232855796015776154592927056312594936573719375348187506846377682532222797862337595676463646282150478815116183857539674374296810557830993692307718695376155323468933718004927377779866598121122267704273864368166463958726565521029548783121518738610008660566656556506446112168284556694855196875417892512824792533519968186530811775553256829007466350394046841240493614252029739997789111479698441061107530987121113555672135016130501802376363916261722793521001977918740301702975887074069295600157633363434686339526965417140368682006192668954103570822727638475642306972649401282611456379663877730048188588535425822868383903690331605023070670369262451672530250386049315249596970699662819043188228237339607476364794778782788655436149826368461102324973262866485874902033887683344999850775978192963625566490090986283718014071408029438153094667616171097422745920676509857660705368468505417943889423460173194076516373147597681316394769994836243491635574813676849414278539422862892569819417360139056649262741348063420767281035187490135189343939798478705270121682596783128016969614953494713901150681729634132847148540446941928222752586683439597934573649557552918094560780099759714807786369317294274257000309668278986381703130662777213581974942727965456695205017607152466387492343711348348340746088678819582733460132898726287199076526306217875350179432565457577722337341301499293811977417550316637033858958192580919415645660891443224733247519050657209321186259219995496352698146255141910131732942750754904865366458636472151450868845987266987257555958995461493173554617012235515497422272021044570896009424454460924220600832375399992151196341883035654106678770522439663343322310946436883077574329256943273189413211252592855636474395771975802323718604173819900249358716502055763113240244238892726986740208434415777250832288446073058032124514494143765545987016327283817400012144582431207286613034218565116615885263478112558808834368997567876409724005688994357056678049428141153216817840220403729817869224586764350476780981969873319688715399913402449754512292249787987828585758415345805704272659323835753325444806404859084867307376115241150198973060136307924056770572352270667129024536398351796878835586397418768670728670278057492276892851343867362219646827552339588160105227508656942100763711104475710465928115225695395802182289421829211440663337904382305184677556899546796754030123787132569701082264361427665584644031694604133116585812810810122813154806080112550846684331297528456829898686501883510465532631780445602200108063046187731542990876628308312193149924397855776665821764447631220727132318812200048134539957102022576361686764416604066546595016075874070537017163504721939274988670151524427758727944226221420410976613205637942478471540526771917606518690372169959136015265960912830711119605478108009720143888680149659334990822476462931458893590190942299703383118009236154617227224301104454333609081147843722687744925547260926014547274417879620322497192913608101395711865547856518742230177704927786510932066227269220059052007222750592314847165091901505317505604941835010820480914775923899524611273068188962767172485037984976154747462355042058194636419392636032146677958681655902893949777868321370849816738588230929738342204305180416039764191389132831090705207518395199648446398718532972838849180662182380154457722670720385257690785319384706763982601529866343554859826173153359729541843601326794788535835847110638549581856067143549408908482617089965970844957057923906140827548287775548822638195110864316792804582199256118645991966625549348996369969706559065044358688250380683218803282721890599715319079745633749930715618087992418699931983220501773695612478566169072068113977707429920710805105486390941908689190680764886968168244471355844431233224250119786887440741249142857151282951848874587661998525071677935775136818941227704204404741524995330160100274533018226393259838991303913838377721779536436563619456664162526780827693717522967743493262320867496921305230495237336233349895892458888227200473840547891783602446377331184981474457425399213139435685553642378603748435166418792701172612545129446276535462684844839531891266910545101312611695141608922986058663249103718929345034405294372720218753361118906423217368062931463609199525865985560912571501311433852985607938236428506061291343302551099007631490847425057698025434185446745967585684801728757307562432413859283577344864935344706185177629625583106988154278557887637955220483922350333812971356565326949101920822856638748174165724397652900540943407261141359678458263043487680472264249043883653688680808502840857615142038964698818115866729882733827817397811476289883492613360413446302007991761817596567981892339802395180112936548192641767199826105438932903341070242882905408428246936462498022973100346930731961378215964283908424470552575653393177829913610575178399044892851875161960713268809466352698882552425130575120608936338921575387611037187245106375876096347681810456891684651976158368478355753743268974464324455338826036581354632229431235634909447634358715323437830694168708315386189897581324676195719719854034963833688431365460786372733909185177093102677166137721089390200544994118955118217928001223640295850149169979702939078382102842131024634207713080919507600053929316232668175412659648861099841273143306941871448883352634761295426608900343871187045855987166686813332872734604269635023847370409847557043653791688345754080006376291399530193094344074797793576902573246901625414333111772932040509592534892731905900199331497680497981643690306167869888864534500250265350927971778367089883466147435078176838889294754541463080075592763043704030147066395639337673690925901370066566016243737689707026270520863202245322836880251362579085952183246931468777988841718797017226283489058768966839073149984308896534778674869721521468668893352269852100857057347950929403963021264538996779362676947537094666928110825903213586505239827794890174309142271245447637367494485232731345372775228251187040860052338298429786544120938414897969613578426565940472029536551832190344948707273794265893636056075832282640007218229139073833760297048319174071978025700588205272958497507999331767199911292884633993100809634697257768158593853620356960999630853410725359374050749622398037085980363843423618883721853327576725743133534220194921313757732783965933749010020516910724821199680998530427181540013409644903665972425135826407680635728064394829799573597117781446809743291543520905999503680775890197384530050978633268754021529073339755193737596150453357654154261830814116112405743307194298608918829332285890493562621938583518155974834987502055091385769863731138650923941488800599642522890274132477320406288770629062849498006963627490073142772573035172673640633307749410584561240634608737637623084504299755666138967599531788954785135010032834055505691567365675155354913969539207658128511647559005369068189935945855665411958739667173884411026017107976053797583252887602260739755498372259552035789740318291070580963089927349042820915835912124285901624720201631163662650023196600320937683977579567963545680786370941050918866283044303368258696247667097336428784458646989468655295788873114927167575579239800690515911503302095598358064578461844615911602238699002011047937575224699136793930168244213449836330012815161464807971270469364077988900882482231158409936665404329565550242760626656985517863045314145862836058000113478074026436005745813185169212935848246049083588782054735553686328069306764158422770389165507494304941166498832928394762187278272006497461558862692170695742762221272871593789941888475489571764586614569710498748008945549134079419548252307663071311631631931223999658551065893976683946875496174164672023527599199434130087659459295515109781200956444592422652071679456861521797246729843701045305986582299244239625853193310017265379551884843328327481719331936932669541303212609843184846783725490657178296338491416046949431218756282745368112472099990127948323113316061294180474931072930633055261617959474438761203411238447966496402527427631147365489313798299819271046350306969913199123714140698833729355715634351199951902817843263289011654487262150542030821585050493882029192925135690529704920874258110899242381046987402041818038720208789267328363416074002854413255813161240516222869512921966354393413539165042069763392612954084883543621710890627988389312593750684257205591964782837087563214351350322111539321583862412686446085782823696158237527551863716092548049688334420928032250449487178236353242493802135639956829172410987732464731888942683622157553916748608157802712656419058835350927647644897423618582152976259708556653799004572659288754995716385904668485099453009776272074432690094559186079543132348666428718102443388641431171159051244227356043235873483879045121233563758061149063948067478417051660496757153603450162128704251111195734765473223735464974241553292329291718957159521947823763723620751210141026435145038271037303570784533116609965630645568905183512835163605110401627361365444009495548732982290040311264142375642722589055596402871989486493858544363529831804247846892105017865693602451922334927018516097249406351344605327215609386617118099504713666286593172313203822458849005384212972387749971579729068860494174747337828429279067177497214324561491926300741176706636363193161713967040822983188677396296973378148991652238346162312597660537843496651273352668386500792369142529603587331404413147592380620272354427886498318389693207320376050834577557665595948484612777423137082488104873921573920055834433127644967060245172255620952001605986438370287441386221121601068031847988600329992768408337629532710758276138487821832978872671896244479610938527643744260020964429543868802447950547912935342231528136090944625040595989633212304821778140884882536935359705801393978360966920420883492630654690272945954304672113823981283080614132345521669541675165544657797697493635911634691684608744369608181966458379670899837172916769414822540563558240442832765803854767045452171797530192776036293105749509586039683231435555088818415321773660181828982502606501957384683698648431597100728989684146484034034807286463648035161831924128613011429175713937090460924220374302930394826970455162127946196897107153797331273903653756121217295901671830999758154330105770286474311148725954902379647074631390466889490412129605471221646829847661844538067026474417482354207777635393002870796490886793920088901320114947509038563533314450884722226497461247538080843153023402227909909109694667210932501142624678032753411190509493919826463714701060953776298030268150084820550328741610513568107695369615603361310845972825562583055390232285957848901520682892358925573213884287262506119906511253692588170036856370626166443783773766047281729567127310319590812180955437174042041682343986667366714721742663293642022779553646951365468017988508201605218675828254022554199568710085456550958530762723107858551403980726100989969009056956372699623366341952926337819489131254121559515558498197166702722027363313929398437657969782393869055204039854988214609560160395514172502825115573477106839616651952496924434513989673949347605895945286930563293914835676840763783548334532397325750517670626360953935917558944440649387697837081066865960257876096557692426080338723894465339549650424080134683047265897910183995662034904613493211500797159292002305634339562135031858751236197560817388349859794549399575358359337801205177590653995730420360236745609394308247520118852913120609505951292547722097623595369989500282768874958094788500040071031518845419111494144057198450061069771234309536012645685966879884902615114741611251258117458868783641303767839891023988060127051783788919749803844247461091798225056435306409401084726690352261741779828935648212897645657802224732800259609883269578733269135945093230086822832040451324676980229223747650076138284312279865942908533918744034040995250501708012542653404032154975320678601789993157999670748599145780730739210099119567404006456289603040947520194725144962138845003640978624932714203040307533038787568841176275770578639965791474827236355538959718134408506116883274301939716521378127254738105369472267532845300921024910302777158730277085282393963054768521948495097650751634510245209679609034130116380575451732271301079877847522827031078713331816116645163410919365531414502533474902430621483230665155520257868092372068077592295398544853408236398398523247879948222801159467345575847322794155295692180471397331103089185595339016870729260468280785537777570324901301742861940536228775822000940274694919045088174815135929716445037639079849048946009234020109111601911410652653698910168623513710146353361372066393746018300980638314163075107119438282553489179517805847547721603677142573338934760069439648354257079393206744841148247950888706293367381872096697684177028316619654811149321646684353570648435089762988036950600283027754840369658033856879995037261295760305104595078786370547612249499639376796407424980987546781481272275620314415576145949440153388910867718837441513379039002254760287655555906251133972650994254669437641765770718668436058835968160002920827313782203496941972241358648228324428058027307481285317831527590921906838009144028525555505613273319205452340357900583420252386555020066485864053518799028476365894225266181400933608272472680621375204283262550740738007101055449040208295555555510591941959895566548160510713934602591037772111854670562080663261061629141384696440588952122897973529772453703096427495807255885170614009477322169525436474036752858931022423923909951980219437941850762313143715927908647104024598725051785243497045839670702764444627146238341972328706030834860663648197689906170623044923157649447777633586243613029946959203306515824812392829122810438950540868525227148762224235322117760029134836315921034155939493219888393549237585414840186752837133610535913566831930260206068183912899191795370395131261316149898393052965408806159100735416366042662604718634408010299543270693338679431178389395044439819241808849409278208984409859394614605469978804660501617586417833373930014319193740818785555539569586012830688879452073495027418192548831190991020047658602268172709206132816649937229304689585905476892303182700342165028798573330275572759241643312418871765060125626516201445933174795963186516232428546879588350249102624005284497987153973783245133250065066165482045691363959355558099019565983375129812130403947850868136048476017516709399693217654894158912681467231619381619561028094210348605300698830368980075399416538147824515900167513267608464110849005937441595244403754234829498625685006133475710000735808433037884879149917813547471492361014115038765108106418242879812728281977807136855231398105568232842187680150483313196124374194938373332349537445237153300756254274253988819015853932837152859355246193746814535789433339554072286333137655712717771045446857940256331965955243707491582733362648009092108736789114296144873204926569304144946287054527280360230173524449738668251940481693206461694516457453843340949182634109660070827321835400078292442976760410306352003942721728717786149810170498601340866660447816584345827432455969616725328703092646468468239023363163231621398400581482267529927171481840841734309993099704458056703013412701877626561253404055227755563463975534835209022639956138373591328036460116045747103090840176071490386138998226918429314159516923178370108546303896537806589782618128376659387011380369354699288070163548390183422334360749217248430185234826887309408630786101941398133156011789731542250427771581938201176684583629366773231924502492466516680703852095223137641484488930410779086366907953493644695849997613817244408419095343416900482348935826840552582549401602090437833884439487061042676936045353691677761073008386810661160881807762990460887858387238020095126627485024982386497103213643458561747272811774887605463279332770908873293231751503686017572273422798240919914014342269715150009996793608880800757157307826043338527690091146801318795450571341471685318282113756976369354532306614632620975843926881400043271618247391899906319643176120262606036538038230195629996302473242075769336684355529010848882221829014132571508127526571348038331242538900820295572682943304648781536742349996347260403784817816433601909856651798765827367317735112819119387474260801141663731656916347107422911051890030001758759714239147028362330816530792152164905593366080285827734106030535034399056042993260211741417618731362328240547095537163195376961964569875719049967377490314745284979773528400828178726368258821710803607529091917569953645025927104820708259874495162058270636859883837825233424584410216635095481209378345879665621647674245398476928126829744514718464647245074270268800360354835498226123347163704299196867409082389457360122469898639213550082099190141617092708049275959783142267076972012760687791934048316196392942728561327613339059093320859797522037146509843671959923193406490732088284882602650938218996255001726097626704999853816951017562587001550229235179458051749298290478835033243002034696227015371806727006364234162302425037830562683229058635355538525612865096534619540489618879641622826913553554091711015771652934090459903200531507329884284094604809839689968295135180679400287235915442523418935945229034501805625241630286806983443242660148030280552208542556879189294430374689533542026839619114865847874380394066892294890498646738012631045903372034379611576685321524513121861079615993102085278945652861573923238274961941263910119767473783487100341177731233633493584545381432713231317896302339939362433292512681602777391304119250974061562288728042118241342729930481381379265414290122348833857846897992719541596128249794602288485846055301097831384243205465391349068813951645568869603908500172103799023687534847640458386967825271718056083710609490272203070987741754989675586651012525966862107006929322221955844491464948573348379353868183126322617337275732614998819087126123230031676663893632547182199692279612903809229489874770512716130413839496252766255786500944049289348677661721305562334505733168677806446327046961652901886458769783892779987365469075562295623388481744469759527185021051085957012238464615556568241679187180007705312963377184576561313498895589214009692214353414871263711119374912925264532740800959101283214400957688485388499903976327057641194527855351524588767877033388810353815680831220947867713820781829207665083826357896907912412202726713318753124747247577545068766951612232714298215966092478644170252020922313597395206384731144192375803446093324077260362239871061501935161397670434030238434803399294014226852110106254030807953976022629781783247379185385956594817917685524991685296305857009383493730650754488075330946542293214106398174827441075097538697816049010126449822052890340854622048186723392068913035754642081030408735793948711438981390084255314659419836065981689273907614761461572979360488658688834004052272986503722676810774014758385474325345286620226223080981258372825763632966369736453217924283519983304463894703452668051937024661362247774491302063959294007770943462194451405310928752824274991052129698326223827677187425770845903423927850080872523687138931620097188051829068110212191450096369044666118658507942146441622217995974898509940976719528060578291137580386155204564906502583695521722746510771368318403180570058131244996659847413939557578465164191135048647628227863344119072380918709969251488004159952936349008377918146907183904517921081851388883976131134731957767178858521763362561208703424465102881862654090579041456954537595911675472063561528400249983313664948907445747354062946391674103983789885880953502207020621329086994120215880064270013643931322653400684966788846762846715429411165890165309676166370706673002027620550118989822499667341895433845969423532664500505096021480149215788085868268331425617187923500647670135789476627557430093606221718925309354115417900968041320524809670561566646485615627669077577418256417343823162207088868977103328994632215106121334484639498877529902327813806031531935337881447101939576299352235834541641572669470070414008454718246780720492248537328831265670279643910243427245922129959710706020952210064595550663886528758053525853437582361244019766612249119383092558385792235902551855441961625530372786517185213450073321272443576728177531444824794343186103521872372223117429960402096302154563351019611397947321648706482407522574201181176726197786304199856220803379246169279358853001680118627026268854750266950243232490027669750372724706791367147664485688855386179714115398738974890823720698691569727162762598381889321573519712248903217597572315868649579026816983973412331121072287479447351141225961384934943740769838140265845981905442299953296786465858231161518801737354677861775707578503226117992739299952798787207857482336045233488679974677817779736754276859556858711298724185690825064059602562804105581143792540037889589754606063000819036082192145906507374568855273899414940770257180801705205677017602255417969895364256788061363124433199575217235571356771565985227249557275194669504600968432316830372503727157289989465703284259555617714043639280537130409990211695794001623272202642184768582136837380012833528016895106907932347512792474287170108720017148387994409143103157146098213747528132591937998705276216699680375056878097418706762744483617763836464107976120232577379234614454053467444540785993615809160734858048412007832301110308924164745029904467112296065860699150384383634815981236772321181847347025331151546126264650109985340867730186446806321558666291398334057833630073369245686777647306333782495858631618040563528018773413947482825541776392337570878971348704494730350104739005085566031423507322160734995464606733008636111855994657625054394654537071764046241705765193834913386180014221945669813018547497249409725191820613374877346010792417346040056345555736902462357203302121275698056144774245496655740393943706820351497747380349500557393718069921092478167398417583982425738460786417167652015290143496268718398312206049384303168485881431099826652947446248305996949110023711747589523670228488317893581054730702977997193313810533479086781878750383142211554781562982229488723791397265760736806959774329488109449620964359027541974012091646797433401452092466794276198861579702282504225180056755584868891391989729879702192307580924425313492690853604930679908275058962724630431695152744643464598561723907863594318564002798412077961402656737796092757209626905061542560451269579332219015138471173051559922397886183560899231223630417988353251974325143761818458259079960324346395804156403183296831032398939455924628891029959918792002598274894353036490826135148129636644623571261384739606953840256941466125918315158146772104576318917406531876493173845380618996141928195447340334156542091208176153631243360538573108865339829550753687855314464294031772132949660411638142285967430445671433352484569053243489507272676826680825556815450475213413297855418516239919231404801211347259855060045487188130694363893368911594929009083870738025636299360047222189660868205840598687448273677664367186927281220946615970358984757119760492775454877273448684433159282459056284849025567916221520646040819944694449829349879829700550567995685403580746129969256213487818586622301713183554700121875590145571281360050274184768209374641046366164432765217859477437340709993138176496036873512052254936056768026704450579088744897157136652331829908848779821213597327148715059621556856749582973076973869058448123014628939134757183436029928595886938057592878196646919052133502510518000705972631589473455558596314884729924325626254259945849542863378283702259483519698805242200756392753464754388545008171996095481971700227377674391130761682612295058799058617416022239937463591459603565802673638293184804735714878166689878473577579440766168793135229952276957636412459255571568324251705883681217468433019243788937055502768096331863485901711071547585410017994326334881840282659537641641705214330496625368563900342036536291605087121410707766025731955451250176960663176401005608092208794310938800334584213053710455889991925630129258318297900155160095986039052075992768034308957640273662745048473879648849824169894708293545198605046657682174463065454660212241462347413293517859288076008292578302291029630729338582216192095284252974018242065412296402084033129706501636237196770218342189390830044546240659850869052440879249070205903432610192322061203213921472926055741241838097106354726619749693431126193776922677094839102565506581649756230748437460227668733458406917694920187159191225967324334123122956414803698440238944513118540502218535826861600568071307885233890274176111171649484398539003763448057663835292479780158555908218042792745472527727934809363553694703943677150796386276189007982452114296394933019091516866718587159718901389190155987332546685593933888933659815663804485327666661943251083806569790558404085423706030580999958401245949585266946039069451813453452136163001980227120516588683693460311200890770016847338385035341798409699691357265539395329598111023237690383337510198915930538328105723794982888765041264577189999473622848610659247371814240113564747744405943706537686617985953867339956131007996461479903390068379400545594918491960189497126562677901824851611003309553377484977188229679457398514072925305020487853771127005907422843096859878518785512920719578623019106299046706855344913023671423289140366683179875476875610953287614730806590461364176964581676017247161935471444772884665840786063436285197384101231746920959892070586154419126286587087026667102188226448291563288637434821976360935365684492656807271755555847432442493122544981417708496991425023797036712140411869938623348647890248212630627767842289794068364393499714863791885709714918602553482214531518768915964073870380352193449561414800865685217987587346086035700204921017837548251508880552487970206961213718597282999953281190820838875353680625574751999404593423019560423394823139920288442953165984596644597791675804323053746000230268461384036954532615234148295397963789289717055873888658907423586429403826004593246144196844978629355072464142417242924178593333712396861911114427986202800279053316503743867502229068788367694850474165658302539045199265801425648551306423739242168015563521612040012573417360294056408431709296786806589028104682426495828225720752776520297310034091468478649542416930239622619533210562650147892529841662628736041058286627100051503643895246849821375269419895158787315658346243923344756198195504785820816630221548949830830910281957161209983086446014735365768625819059120874772989183974246270212445883822633543661252688156911265204649674648255951415192247417717022845322771674774565207615517088865750713993111711627073221205784109966082473408985189152586579857743034224654268078851618021254952005057761810901193374532468895073222684487543388857669897230825922465648856543513183126952744160026245688898641295130973045245156564398554742066602855796113272305209297363460256940305911979143955650922983439236680658869018047476588504160379336772159196291449357957572165472999497074616989190998141549995624678276305807149795674804690998831820726790008701528616237769223247178580944050553455533427088247048598658955981148658131836094565702882911798434021414668354839727783253008851889630718426125311841486809412674316503684330942632950076441608908146228434580302791542112895726152236999927175575485160846261756424349517085237761727268762985681519748295576921278462430754795824025226166404557012935895814237848246278810637893761126531391702940109315933291168785560633954325599022458538785558007346455749680794905675093193361945220805532402664915539265791999632889480459071246224962189829391978364439919925019414927579487540150584292658409443662370153290650591049619416539282753926847861095361739112712786902317574093103699287946081316039287320305167375771153038475892341631549674897586299374158045908017681294801462623648819119156136252329287730790119232283945552248310893366589893622787537822939323025518362904029269110400988621100014690275353127793464003719508834664594140558730366992034065112452689311961649852394648148444620218027137453431428767308022587855687938248095240619257590709244444213546056336925736476359212758970375042924012764174539014475271234182698063999108813539028131354208925080835820939783981317344442349408122770623188114128815605780385376586770073277673482716208750529599365554896247426462962664744646151732313230883821713523481605606293775585734783539100425500735115491565988126305982369561590135799609778200960441839754907250665929953585454241887941427980645439703102758096235392873618712470326435080981664095380280207897188247725023878908262304931207479876741891183180756325703710147099083269215686029376428081441137933144901305730966510577130648811298946742182135309145039089839780063091823310436074748908620841311921755749186519685808858888306004711605645126370039095277879464481483123436132904256253769790986252185410830645613880824609202116546268804172389968795221161237930658211241439755329761040616547212666451705817422808601523212490551468958497644026860277658691784309532502992566950443408057799387568410518402529549261221402982364944293254569380079367769877762264621828820331229115301401093895381484844415167668809859274136022301706310402224762570080129365723166869113395141591368272390179966295618234882186959786722319823965306822082635373792794734780139516450436151894535079669406372666306179748215150606273775714410624293069714613969142130147701491419257938152671940295331883676197555430186063896787172768086046005955012757705769832310329716114601661104636788046641719580521319039159276802647008549390332211952373872805366977874786185765072048119950198287441796393747128913523369413489408880874808647896697519005876855731785690952994407030272742266775326952073119651748622130297730123506399336126833884143654808825086714485248398028259859081833429555931174218471652821503086535491946871311041721174954990930735044129967855782201922290607657679303688154557200313556607221882238069797309617353598010812668845747609883504462256875953913025963051328562358943507461394888915945440892649234995392425748333616043241305624798710986424419846489454949019368250418173204295116124472480259566761696979758498290991274164211101695693681649127952269986822132919907483596047301895918430942804593615488126156559218825492227347778880953963417247321756958759734994616490472862651584566253993747529703053952672532538601672660604991487666892883893700736153745008452176375683006853823574320460649728930281986420901781638640421014198922153531710822188813674689303800046545038974486111214753649011632387416562935559329878788665011628832853445088694095511802282101343059528081266244820028454763803185966787688011040067936841154813847735782603303263812560175014477105538703067143474356098328365187611009025105584615257192990949841154433071054947649882931784249631778311834248173937614776235163648739312666674066987927902549039849233408011242372378484623814610934172388478234874099046396486173455154936087507542164279021922541073992785637490189019127094472354478579922226099244067382506617712044312844824809939551698852543425238882653947999159014332405356435025005323142822431069922517301236316114780928669116758794845621498128157509106158032300055432258564020409871668245920204734906337321507043855225443733865224561938882087555705149073751219928166795163215809073302545436374082965025055897815442138237198749447823861878912411001666246910710598496548139873714476011846362357937774351763257709614086334850707415102807849423794436518024494647655058522420096772682157055859322390488438313719585921714095174553367584344340397059012130150572878949791470117041579464641193383808389854290659266046339185617074759849407071739684058763828371914484445008409542620164831232484034358642398765780312412360946031830607052435003794109072932964464994437837147371907133793907768442582747494054474363509219904210668466460145831568885786663178786231149804882677730641174805053149949919638860369455327932901523184629745610400032853313725319856395559019261392859098476779108076236740294209371580709991447385806448538652873947963462066823056127877205721026891090224629333699760910160184984785060942727189018970994616241740470483991663167230994985484046329676738581147638914268928623944475270542371356126252508715760296329974978627862077231738824275245228881603481480804610758976387681093827208450142684029365173924024961191520521935215374232317914873615809357109461401996273445703626596241540923357820026828263807910218859196552028245057121645010210950721787740341341851268954802100180650464453082251597490135020934977497321813225925001265583205411104947943771144372332181341750349355350134978566975520180656339968069459757287589945077120523337694795411241339637113591343409753396668466928902993481459111371514211956690466969944719470700841796336217183530607591005177362212341073069625749960429418262457746336960917811395308244325242118412319558036210476901389350446108917392364791330345091390353514234441882302508776955992259984097501934086732333142918685097562694529093003229042146103502091099005050409061841304427525765815848273883872311074655653957484051851906784296941840970141841452171991629859913450297602350373561680810219321962953001423502653269926153048065011106823188521124479543650909454572837697279650241481270236747790916297929714671000276745392946489416252719879109716529407081002049905142987307713527276093598318789837556392019728016787871828264741188908096177245255787419638120997478967496807542972093083728739818543713891192249052817281067235803377755397821680090460808985318229895751689486847848685618796599398414026153498707696172019817434595047483881367829874120888443912900130388137379336725836883059862821631915073802806781596735697400978906189589527385173709954435098099276978530892647965498898486862169451932722033052426399523304352830284091498308360959241748423719967801881756034191746077517421043914499898033495198671161008234002347540622217695074282689318844250693639319872280440605356920920874974865191520219814775150687791667519442251773610271453493635589244349558133091792063170150916765801257290951735071808372583289832861553179397182890514431651103333178363619170352839959456430523002578516240501857365811308432725899732815866920622708094762850583293072941556508217488776392126745775606977404788851689721453179962469093113874689011064799185292350072552409636584957027149291332281811670775747090154793302619956586354453325530662285954362380736891922310740146444966026593004186406721102317585784973843128144629636167051610026110025219625602589438038158488999977347803812533857780935346143577380366669438273148656117183200523719840953911460388228303595194351992305562211007389095260441813338508451778310591018687958228702875576697785851209050677790025885227363331539616023046513463195991364828608013260473251623159619993920104969928674242777179526936566820706376911515038348505671459658690185216311360030864425763540531229274709597203339898134114632809081706828349960501690480762774459815285815590259033462183036164818869104161400685047871521855774348113158114129398717375172673384566640591862193464042214320237088111074140497601978221984516737058902142331920113070034174910656639830697027578555409934378323133241722376460794706240633727337387674745154079725539732645700816886598485929566883943619771453081689094945672933350372247482470273122095943685195611019571240019544045772042246045470984861226601169151030795450278446539318179753788251609578445548593172967275414756596001620010150407298228857068625695488475030246522916004207773382643729636740340013335231427358614038756205855976332220549055352685744161816833304579569478693332142962921894850857167339577432624525680638228951912277044528819148532846202273139108097781853170576384497296655558484712970466057286064923567445897248333735436844213040617478203471853730269808301290364524973859246312801243645187590969626743456375155745356261523766995947770260108740965893030178616744729881023983936441365051317267077385299516408886112318239385597738096028528478753775846925930005777490185458820507892336338825581311681769603312463730726377829955180102296937939891463479634748648054220870386477397139274859276382108049463926952739825159053256592218205045029178491552773280835529436905149090314992618734529859861271168974289933925961062041037868623093383836366001558039124784379842047434492336000522875850824902236565492198553966863970205146139164854260894682400752221414289160290692646636721917978814599057910755926400087891607614871516787609160434264224181938493084977112070846270040043181930790798338714826171822344288989576759345854554695848143766691557639745716396404127679467182463690548587288296111700906546492345785251265891378369895561765400270034400877925486479154295700802956989259576437901988089131422514347272261562281558297275606078356581975519395163510039004305535750336690542344951952359783938082541402835799403860679608292521713461489704414696584405212966183799955173187270180440549394674162115742883192199285568760420376745936737644635221050551748558868674722041726271089387719732153958134427351512679903642127657354314536553340474124790157413927872974430500709590797404976594125832469969025569157518426318753676411820277160268373151503455253339870558749252130472463544995984920318370999803762149315672156853842485427287477581103170853157428489780629742646390472476648341774470869267656163069695545674495291559628434872475779331919181240507582064947515988385272788321379337212495628732732152923584448944877412915780549707905739119786963554606782946583197766683927379204781554275098921292616395819816405667979335011586928410953487735814784121275743906353360377803989943481609178246522143679796242191922628087868134669647251214887085056015481068815880865062946532484370621056011712372001487339637034124402650292387020238347411887520435539391516530717830143299973346841547208779220224360205270382972511986790439199668158757244188901382196829338800572422230368124252968916979924418954368358052698823304899430350260764627014356064710775396920174388473085682441274751064111602756389190513816535476023892142165182199502843996811396641627742975123598905614981042943039254611236548723176518242824703552636388281338336181340055592471235958205066800677991192230524354269526406029939800863325196160397292350467804511733811777678588581423547578728689612471905670253540429701700322468988769561792691157053777151479114772358901204594704316486382556401179499682574477970724536669240781479761953040420925044308081007919748990102662542635259772200564665653809616205481605881359337204317618334061890277360784305598768831967118359491264445536889857310009129915382517807116843336974098386663133679533070663859917927015020992525971776414051245579330926104976309724023955823256520802273844586523111552468625416436157635124000712439346447845013472005087808851441322243476129824402234497212860176421448051499340793327707131099774586455714876900742138302319014881259300036800764670927751149281953105554349150996669366369400247356875325015920993888334324904632695960395512583992324499259478841680968913246082684337384854523462860503252400691885095463856258901921165790654741233746984785207248074285827819652525052030196934763110715838437738317531038920591557691105788069178283578733223526554939079515802102555806410339030990786833703335860681206989813461978946674508116732762029959920246883497131288033929017332663678635720146939175758582255807465985841473761860004124599823814423464700884640096083393079786724767275059986210588956998825594376517251180128444959051451132975545559043999763815077741831437158110556412768269034625192296031766699878143432854241354989146979079364296919164532118679922923569740687028250897844827165013404422981598509706370692422788692812459350889588963740398078892597923334122620300206706098977899914517182644966844134544832217316363980520086588357987690859133956050143560689901927239961628987853080816381324356406089140851897317108074554445808397107832971269843154516370149485674245999513236177357385216061564509502262633771767473160311127040271421582932654242843122203669316143518432540559705192069614455775798430474708693972286126511077868868465151950963889217303461558511957873634543306315753133523081940645652914575282770841397812524734081597485081137681482539358489065828428837976306709875512940009323672234459598117980709196299066618593069881362296588769714822222034493751401844133352111585631560115594570875415848956406132418823691353430486575114865559279795400240825160236681662143769399123017725912067704446870271879424432812449184100763268335736691260917615156704410484938321643678087212379078179879671363672831383855978432928948419821770619533300504848361835572346780580529247353308158229255309637794814972307094549012954705551572262851208358575101405589297422414121479256092415033679086782115883625327379862274195107412448757045512746528926590690314314592202206917353083144844667786062639693770094475020325974263181451530063365543902817133727816336248391559336712334052891560156330006629409060460702401278835497468820700000199043304829312573649301331105934699216879448556989114963727665351410382548057529408268380359109890084524866564599850342774614674110757181417074540452902159818976816259497360629066195766994339394468643545050203435041340420625310644081947807355456250627608281298518998454874039312356067839470345034741427926788863013018311907821433252546170456958243677648314446165412116072099849292750471557078492080093746832856826482624346216827914851621876487766352421533746376191069750579750761418772910620025885961414821515869531214552176994308356795942940554598230943114262214824038376860612508517814148283870532564118989678903132795382779567068172148547452642832194592120839015593505936391571769605601686756559028858056651521855105472684919296867530656062738596345267997101635921150916487411232097116213726821840280114708249291941641038399449664495728085702714409792796705911769027999207431558732871684085456662487335572515023115463768384060400372213601677751278709551274929100272081751711514395656109492955781087238835641484923389528474048678312347267332826961322318803371953734606179654644108774760543954850972658563333158623405042567784260916798263725111911317696371127724163961375916129663854079051099211833138794548969617413789637950344731779778136297947067610626810818543387277901510405719906326012865498785842336769664166742005139254936521925548863409427525956962949257166697443347593083924431300633516036128450501759216984619267041518432226693155721502225400882121565163158171154762901793117093610162343464468560325198325807219303933575308538388325187724339696634783701007315754981541594780351421597241782173909284234455025803654645435709509120870889612922980967809622846648404645390266590448139094349532043148969525797611440582886486664152311681745377613189744556057142091926105417158384900368112354492312631570048485331775347628571255847468604481946475252648414789163152969715329298354784142164204253217286044166284615055852708947208908476830940950929646616785941413239643893588121616352870905141978345469158516454978681104399926106828348373968366351575193558330282274401059608083059194639624052899387715326263505080572926024605779163115034123180690494758095909323790740117187280384541003214576713069805917270648792650287353976644606509835624089429616368210603773425398249552976006240013917337069394055857837323379848570708847642362175664968003048090683884138168004830367533422509287723664209597940751647448471291443251229314013146133108250690512461756261004386924340150621257129234450250648488766531427173330848360965400544675555424594646696153943580362641408590342784186672272177924260966500846271682931209707225249580348969570727080835899561591230580080081017144356242051212446702766688036384933066046550310465579169766312868303489698020182478794607445831532222848515096123307133959809996359163600649281823204848878840676260506050844624128236999399991650836434302735507967325063516519878912809482038308340301751285837431477836109407665165154042291772470233999482922877573772825834998134522064223477540440153392329754707638377096974764845871018182978658454874990404301741743118044830504515646667026272058471734275624976154603632027553799652498074401742610179309732911916103087087665709270611583853414471969512114437324770990443646495293624856302744831864313348412427472273103793694091596673375292934760533584575377732670595660232009552090066848745260949889798205401530725195994596547429525890864573413777084779718635520148378240034282016110254150976736344878442838615555350250497009620295650556794997154845372607140771412359496672281121115558978178552192616158363204778796219975986971405942320400555063628112830027849487211984613908533307886587127190849366871383207989101635995316415522976060452398752372888252709269045797563201843404265927173716491880199674869137164014131684143229405921443148828870322030274335138813176999429526855344298848913610850743496483350595424306885357808351375588262666947088618585916542420441933485318995037053578834923064146467224323889987483039204320601363598784619135151765198127190229887766978042830781465367243875203113079318479718289559438278396621564839547978666200884456250308601228598597152102907736600114986359438195955238886031258976891498337795716595559037266082018218939852515256711782100549472597085035506927800945765177582950313925862360775293007588311242699627261160948046583836461535966445178323357127583423347379805481221408092273087658245977692839776741414101598178224614031737346691413455891531145014473539751820641355015374541522686118491262077050213745592268259284669924524206155678952087042135284697951342941003483945366089410147835679687481152430233467689521005165868963867593959746161540323318417703842154729962512862459079479668824308237381272802815132727586345628283128475619511225684892405021456148382566501887240001590316226062846637780932042118492597257207489673187342808356474641321116386204010575703949130907663376375294267503856097107143808540432949825465818216445446616893025515793989917421807577313826190725936746215055816173260637725035295467295485477231779031182230218907600060178683317300269273520237079287669467490296109747118042335890243740102985378682142809112277608189799929459419787012961191295216934770025062578931711603517177367289383779475559399851130427902532510179875411631122670048389658253902767038023820803812327119143093294695007982996081004324609169568911137047804989127281479815863991717095346281715097884884535039981580778910631976706157483441580392748163579517426340322778467751100868175174980499627317171049096316730256664208422285980019767867992740897876928235172863232163094932033671243750963359777476420381973163129776693507810465296192442323415238539000263385655502242309020462390446797724847380572318740125299207222507939998516753301860397443774146163269633442717054688352799043560178272042691052616468524679294987697793586098031229901602899179114536468795856956411683516352544540492065437135153948611040781698762563712766714835915322949539551410687831411757096325900442270357595169737593677495359527308418201048077356643831959295809784625260958027693735741385501615276477325956107784743913736842597038705773784472669311910148340902758087221840934945648077242130541755089940907712301763881752560216157920907507953698520517771126188346195735678914132655805425875127411776328594362655172071234021260180234873794406322646137037850936427762685474647536317432817159870217118004230773617015381153139118726085313803751662735803319175604327653737443167926621137436711172511483682487411476328442504635674024399191679489876280044256551132932913811621651305968014902766332962063826686763553294251177543939304305204684118501189971803831539875916187411538299868185284056929153782719834229998071209328657330274240669281953849269623587486756464966673512638679221843875074773298720531923084412313288019970224416584571652790232070870873123071321934301861696902925371519059222499755870734878080599179671536874159928473027447198341151185917091354357176302684638797684318385092373532042139061930096023601313244174002299527012003440744462874555063482787822197133456340994260763302289369319222360509940405155147285497702765718803785092410581526050104716532611748813132858286591368122547688754152048328335908776102947352256314630948106276500658353147809454959271807156789239669980378995893406789983648828418085365165698235080989286696480144941100653987185302658832248925039415963840363931305117040645018036654762067437566725169870091358305426570551189305661149134361385103959294163209377261735149330004533076956436426951814649272989573097324390389416346199719358854422054180507923409689229576544612324189721660105381865601519375709812064660710110329338474224393628823944555766375649853924330973770681338236021545745920802125487768466682438809170360461989165112793635991487023897200032984863722032314539526839427999992748965388694917793970271734364830756591819279619773202413594214851107039131662023571856005261476542284343710073071600516296364304516299410764260278375644286711982167877596312114502740308828358012771070766563433148123707023749094820878927900791419714775743244121950494613148004824751491343417237391942483674041376468300567858829589298150011562133785813560834118714025616029481182030926493992248050764885247157542489430902529158715436879248704258198733964777197645341520503692203518510734789790044604831541300964842659178185452284418715432702459962641363422853170856445929499914824324464163783976133580525254825557507211627220495971643471264760950153692893106162162533827723330317551389855353446272428633367279622764901393671874476882110104134304419339430710548882143714739434552799047908566488192626852874278046822598412132691581143512896474179384824854977029471277875879607502485228663935324967544463181540601959713706543323845519597331560066938538044756640220214383784707828116488076875224809339164559769724672960298100570299911345604963744191847987596097102147543764824282876271487824989851161151786572027538252133411671399552416698751248031449988275481406274860487872499897172480214193800664258023106405488397403194161212616297815549705236791005784847859440679921096325777648019522874276635799328670071416357820468033512848130276141241148166951859608945056478917935768315332273812210360736726009607730152174794764701687785780973966123253235693889891025219715679143599829827648271204754216894574386349897905574134020335649740558647373565526757396844166945581859275836657109973347859647017322915210198583088641214745532482495032845990617847827763267776065444331019295085395171720358415835035185625516215958969845249471469818925270898930017190962523903885949890724597717919907668450899288075411707879737065368807370293928080423045129002913159990595508336300045698215941447619712366823281887062982363234926568539539480882867084371616686699979888006768068424495392859327879295153348571025557604997789389823986201164874955440452771132416228884565543522231060251928056287115978472813769421726589656010436756126085532434613467585096411400754792979756660603791865568486300044071534240423275597855969655726122277553181414295093725341481191047181275995800863462813565328695587116879342384704860849739351562917758341500072916058533558042401087894806747645764845950505932088652710619108603280154563322449828771864063739388705587139294996662767368866021550762828056723130459818007769640234555383212289884357158386862084498123971049252976170945522208664368273875575114402895652749804804201773614470559034370918487297288831129312281943218310661931974073183255714465257214494452001038616701287518433652746150800587406108974546352649518579790546174262039176347704330355715837711138687115388147743419194112398272473298250962877183763572194889536197427491306868986113005551896181658451276337459925952198261607163996302717097781157712086568003283207404445728799150832677674805803133090603399305559763849273009336156772070390125783701132024625546125988445051900947402490245577198975867989526431943079247546758925956620080234036797840496155838422724319020660044933237719648175766018707137366066248121379179492258739061402028557411063439406099081327188206345694540932461964436386203711078709392541294304957383770542920119251059087617027098146172936398165831637971976556730933554300235847903527047969051316777022781163363098554813372723094108704986580408771648100240526014261195553658133412162265120161150703835200848319121215930087801186260502136115694037852918850512427663488278431753465331345392762361480568630963054279342384899560072184287776766120213005366752367753364001021607398563455947761787654825317754976085305560250825970610380016058137302152535207049265307481733813405126270450769495180289165444158476944115484671364691682183395158529871619131501172872458564341635327363534688686578609041556092217805329509689044306766834731401919758132476543506622978161673296860710611049182969585180693538861875372387330522214116532728902682810830230528403479153547082215318349083880175059297389379202295996467082768240404904040147849008543786967488713037515011952945914225802800468188699775285234483732727687451331217028164103054359905530400965072745918987892177150665476710868485073765095020721136013847383996032535403576323394954828647921578294122456234058445982715172840386001081186948026841976484046348165067930653004657092370775736136264124428984777510741549719592005602259502284780323652783119115726108137709447276587268518373060070511199595832485493554779854453803964778765965614499233097468234209762091023649427469569107398369748120117346423363626628748116809681278596945841090940197364476313116528251828329338889890500787684288073878462246623561102693594935692792899627791004428336361892879735396141488055851852521740795360399805292957701929903229369269477622507490205158160178458780484508220559124737361653453052897952984768727199203742461270308904483487053869617633944877911720882544452035099137496240465652131726171608855949486280269480432002637568971452011368011438022037964383767053368638772347384275110756088616581782111901330579178096714364918195479420743654596174327378020061231909561854925258792734557741912071598583540481254868473311414759466604294377666798855810836976616752842910090703188000698477801419296234075886431862087383890293538239267074201997607392442212125388999877093289805804462247104585213743712430277842275700062827025626562733512586301249739528241567419466983648939319035329528333799402982850710531523159112321467823634402499351647225421991562784547795953978619258660942468197934295422125119906957996120987557559333076595619922207614597083740046266216220162406129839802248001370198780172874725588746072296823390345283461371327366981687527963978721456566027594061335869341697513704175367812274414279452711070568543409321117160314760217941785978623039760153442889983532450393801358155322326734797487262825051697352388414759187706656087993226180466887040001998533699938776685205431555853121064475492918051444215407390354108716942389507162359376048697038728118867812475585994412548194281001828448516331013003867097512216957785823864775357130020795274009267589601947442637453725789854691477566815190034828807210376820835017805449685819095305437994473458560544561443994036933631396654636184992043094446065527939725602608291241364728144077872091090575964673056791392227974192137689840789793334555066086629931455409244236391808041782404057919561044762838240406399000495361355653239940298065417530791664788972579120649139807792661657660025069947624422146629432332585751441161753604952647595682650505683431432810425062582379234135251384620742263430419693828973290599338966821225798736033232555789527666880551655260786583558770883496049053874363602567528008914822427259076079106642100358439960675175915444901108437433250663611563093840624103257060319958779959287353581986730924277351230271599854155738083078647149982932225438061727857243944875620687028148382012716532527697422723442854533872375044927023869826448825759907863406483842765128824464995345354971577813246029541351886425431414578661715947636013832094598885846056592202737871173283318325634735135138687215707112813039048574735526586755235258077793473347593241666815210308101126451028340886350828951480238661248793554773276026844331429529818540787634348843341817052442049399104957485748649327282891172949474213194817750568498089493661999774136082496940048739683660882885737042989548139000925432143614893488471795877485830003070341730987942765482194476706181211185958485038005702177587615279234005694344712992087159595700043218529498998062211751946044238803136671575997887790224050553909216864204077144438104939543042778592764448650374384079827180493534702642123581508195445574552385037874826915936153211896459270644578415973951164395084044387476854635534699986242777111964314732290715498871094282125108743623289747854748908567622341269720416908567565302333223906043314281564927921818513801273848656792452674929991235879969942134729005323284477426728414699758727212145543438655532950396541308697045895924630327194864115096881485863915859782092051975743927044865572538721740999727272583133352077617514802270757228636299847174561460100360629028286192204997312856948618392872929259378681370465879678021830033759533572965114035606118899470377939625077651675843075245471598244430404957214386957215822141100923124368740598209935514954285988165766849216141670063250335839000542771527623796526958329235750940934180936855475251392244455367416660836154604736149189214174421455500305924982177313981696033669688291389716441726026371931452396039700990462056846024947970184878458787445440200441575978635054586084312277285614856516941478256432174341502017160218185045007929649872707472042275780451026375510627159540989253801025940661180780736717662693298315524439023260173868285966525621496594694923238850050343622151021691799555179413938046482917213852170482925546337644346994775627134031753755645901229931357941855560330109940017576426624918317967758580084218444043601377117170287770538805206249410061048845776641354249226532915983950674544154561732326590434348698301033773171660449244580878484873083998062913241365147520171166103462358810888535792691487677529999005666964392038531967365339361671652757142245120151047744535014479760249943861855473298318908967228557662279570330996739321069736014917960451670730796828674223063899648090727651770755689597551623855681613010379910104341142950845454508190241347462285863926021773947809238160694587061861215157066750120274253355204648339154728860720470310951410879849876644195190945908351190725591312334737981357629467813387623812196679281369772842307425909924594142263140779361496810927743202132151379279145599468489537619298009574735743633807732272186426155927487094936611597390776380632614416481067569738151871788524884576805092919557493439134977325646530609457528072592050419923119641660774542500575436542318125424061130059286384976851817671931072765417232488134886262786368843582145794266992665056498102862608923539275699685777893347114018550474916080845055705006714332493172262065023258091887832312233485301646254116420018317525942498451016079648134359833517949930003451088233511389124012262648131399781187373719673467954314369828124180068896857487113637378908797211931360196625763734831585521965089437779876600521284156516746322472366690210852135994957121257702443029623458801476137424429607263425176065463971358874045984362275145208350465347168792286697931212121656542079413189759219603692517820101742832080679040331862470161693078195812360973510608057487416069143309379261577499928682035263049521819551744712851712529111965606894739080759459054467766635104873007020838680546786998713616550028333746882858510899460744835276577213313036894458840933338796944701271896484030123288968102671673754573163359311805954956769036098573614300066288558135322164033487167142503911830557755737174031766864727459554461532052048397347626363593164399592257328587875344368035124700991786051802512075455089717589424187894683213130190338485829847327121826828657849996860859701268623398010660050763608969690845054582002503739228899330125200802890155363102633219045968656518327663425440953075749836082978296773795739507673443415327821246790250076813862373301915737140209226237221517832096640402364909860149353670082184795041591217583226812954221973571526737125263302567175197786867209372441689473492565610968202907694313161366446353315571586631161412528757937948498046156481868892906459507251155855912723762449960477714476180355316340671734310713025084391268180852534773086461654762745150705853133458578779911089508776246620358314408931672784602364355823441843926694723314572238084292819459499794568564073325883519921804400630272249150635677667858470045239600966671009856257428629406946245522223692876407729186168391250648988576899119105917066174899900742874207525933495787553786317042091056133623921232849571444724966660550693902095708495266135124128425037826796159483914145153963597415269895976085698321058289781804166462646696621869710645060427603999494426803132137277705267834579574461586755890665091625772229958513143923393906224064465440864705005812868477628071726531992683460077787893621351472650755819129331631298374457915164317690409927134826477947901226900417187780061941092996323416993005807237853626220986210898573725832952947319567241984183493688257322376390936993629375568153658453561924155989258897614150348814594430709286417412882231677923188526272076311072811139536363657810027302789318190905449102075317833021597382580870581717563464170790436636027653328420311092558695469165920787015918099359114575131803215677348354853498297347604541928502717317064862608956221226452865399617446448359261270826456755001358886064799698845354498051852935648434363803590720649857960783760327904394634539280337538490401562038932697194550034482532317297149540384756583240305092578760520519229534581419134812193459653411699051030401447309462969407938047720638909819538203882892388611354862088477113951871939428529651538963490453716217230097444674035468035976665883357772924144462776245173550369936907829030032823302198757660066266656074895468682269092838680471023941459221509077917465089270983486737706604391629749919594797734449321221285303117243384404594425098179765010462967598658832525416070956201568983498242831915764584386740125374947143556894784870383940632167527493536137628018125062343953044826712174065049230358619342165777963089053040558407134747543861158150908903954707030077780527487125645263314015562563812938228461548819185494348942165185148273617967039203811055060493010649131034563386146367970582408726967021817935796028496771639967674245975053715332320544040899774300900203698895951766649111296315715255813337197539529745433458472323815539092649315712507881667635563006569209696805092370392134298353134290632680479893338960136302635766038962714385172364393215819160272354514025975378633716011339818637816559352936964868816419491075914902015565084899010019251132998297564749082218073150452600460351481292579749625902422091491292499635975000427772770767952038025415272444206882235352015365538395900386465790837968954735453099074954029550330026025759606535014706704782217056340923350220299066930663854520512583360623782390073554680289472347647118817770440728102001420592583531404018869251054768898869758977165092083112892038481694437093159404461096328838950036878953175433751215900042923039415482370201759012162096148777919780076076791696899261035855515422802779080918167262440870735447139181852196039615212111496029087710268257697314138859978853098500138646692455603819013849123807717017074853031350247710825329733518694530262915427812586300524552099608308997651692941666000133527628341455805094223045616984726638244333826740658670324280299177705132473484798721941790125273307158105812048411575601943074237108533151696713438321784884485393954806961149746298088234634876200917967860003589765246755785900811905007023410496616792165907109154540525657792704634083652192181933519993286999477886316667733602009176451415479118223986167613280069193584511585305890665098779345146111285307622796376155506034673487213408368291657147906261481182529962535813684505609565857748682152844628073027002699214375928209686024448719112764719202343879342298451642581187063489883808742538820409333352050633658066689635862086830997914205470919582088833585423982408546770458739957636091742187697198652570910029965025362582107718517421667763136022392132687258503902546033219697622202690519900291926047786934147560252636511181272286479061628487038354327422316096110501594190350218515306052894315322123316302235952569674448529355626020037544737106491675663193889588095147320366988737766286689393333575597324258950587540380975023125506759796819612883850234760109922064662647201393349475202408532563907112643327380086182965059135462073880265456772475975290554702586178255863934662762078427706850584510336328096257396082093487651552173792335032477736850123450837609089053782615736328876030301610412978872513161562084064559877984453107399508292549564265139949979842437924357346501340099652908070446747277035727186437435185881387119106748338944612514183755805477138202023160502421534415817983978085667466168358143508435245799106009032833729074739284958856249963871188123926371963829586091827113707218687577034023869652878031809151861447233916484300993940669626676251493929873485992956813590642164095025397802585801274668778544620143990344100967415013633369234731090975066741478111956028044118550640149514622646033884076019448529968804405511441795155819887997494810508776815784028340759644453531093506203884222006097078598965984516141739152828933499264103372522835284896478920103552453059655793040692891623265197567436873892125863872868793570775882690073151118947593542066793206967871809176587878077682155912370207922695848721019675064947930784884608210338837824074887389836906930538624253258648093066869295113909161193451131686307816720605536177340416794926673711133512397013356830015049283168985270905551342533646489931713228853639433664405328151705452090842244619857303123785517020932451187374537191315990867626337389859414001831730862262274525589344466431195587868644038886121302818230113851811810138366290040672142756933112476418798386995133981148957306035058731681117822191048401666950213101018066984603893344373580571208467287752798594824851007085698674026806602197078868193740430298224757304297076951921905653118783072409634600998852571608528674496970181772971508713815122437536418175843962403512223984268875259144818905074190316932628489424614255593613787251406286125437268917469131623930100558253141084631358719685499942874799825285601623942499272778416952662557776726244494376720893786631865567901629054574377503702150923619916873058318327524722391921818595177902420563114414503630708801980518770308868999804112835306233861485283029432122824172359069149854160740386875719822153022210684937040070086581783321597986812089987447103441047022229680655733470018821597671538282779744906543884697820323167461121341184712457380552798689900267524204559128637331958818029800097649966265782383534359247546458350524735366272064084528489384231200120199403069126377551968471799548630248018350093912342682452861589574733650987008847309501732871421920484771886060567382782842826790691164295670377967300502121925269351074837190375571025041673300648354165736277966928900951312427678721837956460212611326574311955109997231291502314951326460944497725355227940507831034295810469720888267454643136913496396828743477754010032643869429043638920960930823369344212567758262267902171156968854512875000304235769749728191363304155936613288745279244795363776477086380209607457105180507647178031787433807718372524170817099568565255491006036065405852527826318306845461613680192189373887678350099082401189687275203294040285722013545166572343131332723894994814531902049578523367153417601708882528652908329760172847203073542021223067372093401438827901770549862937108758394889982695978683720638823934758237521702195456840914572975764828038964250172155957357438521090459907127337335593674114256618684873588100951825276098771734285577980728780101167314567232888618284009579785588546845492865113975878699976459120210500023894342754966809159483303201972988510783926468860740258667515062026302038491368701930990145728030872957010670313799131094425373394467614815247428261912563309431078654020742655704422706433375367372134131206061844450202233243879600934145449263128888255109056887258720532720225215506432877021379968376924226238491492428053052290132585266649224855498939238259044063856600906630461790428739842393877586682011409581242143718195052340698109553775466407249304674144188750364643051601400310502440027501715531955448640483936098748780478224395977418541850573424538105712421229221641438980406895276709357459305968821750033834003943845441173883892902787175784067744479521450438888859362554625330209367370211608578856481550035169209229034796270222845568071658737759039481767740593526644435643246140304693651687114676607360948674825817925349787799127522465388647308200716301893424932594267366516428526758449033638844886227799006454558799330775068962279595456761685816348286506567939158827995100415524401846353384057248091539120424944254235507484525092136963274686669652822383350648416358128111569287338936782075746797244516532717014824828005553795365465197742760577343705130880704027454890289202164673816712061472130959312007314268291872034324926974367236337500462261022089474421701874080858979449891319189152358665850070861810266441599057158049847636367006658629141364882339427420477698605108942119160047097320357011591618163107635208439648490735662211501034796293504256460766025632426890298696420618753260671422874366635819286282732844913275647145699315566845134447480375148966798532608295749078779187622080349567434195545338979546344466223876146394439046108168924343998766813313917720845905229249953354542601407010192572755635471297206255587913047612394095559707289278543853105937322553968804477210471634785966988792615317616754303072309664489642007734291906758835990258110563602321043569419568914628655823110063330719072243676154289999453665516235916253481514306961862788351264372052910941290308293313121513147191626960090195879670595002938926056727709857351593406428205256292547169022457412192311916561498105870809394391070781422679679304697748706010794196314785587812318477146294337565277274277488772214395850016176272321634428292649500812823178772995923042085093695355804838883489213857452589168806005114278522632138434471541190999139759166865690050109885434594178450970304854696346909225827673096364645820656126484539905134449635205897008199498239059610344250580245073346089823540084173418186697010671711404184557507018873076350611456783681182737359444708960677897840923584265007154803137359382647756670725158805268670638519015171381997238262651526570548340034696986417086641119358669548523013296278862852819107436170206224914282973890324012718613564404914447222533251054588777705300037119624747132121037644611231913107274830308975471012939137100750415651715958825811993147630041749967287412848920874307319842833896838859602581657126238906050042210233171071304173756497163500232956254488167559337742836582519232669580840988773884448094449332866277936027920570964515935683918495857483570210586798498552225881512717128608123379615603019982023542493245639384194388183392746722464808896113809584757965791317958205723876022419006947290699627133068063098838173032265974319023854199209373888499327164750235150428554571585468318021039612368118349949079341759546191938542859720555006610385731074538494841207100066608722862564345397871515990772283018113924561983577246524935789013464268993832425201270033141289658990833463535268884256427045790053576592304269518527242038781032386018929544261206514870561431484841902183484745198856652848782233223833695291916329880444848731733122522746318217373772211110739810634092992344863450830658138498530877243441146552680026172666392346196632362335887791775704940424043063002388581508381593269871099062803739796606184185757994438134830127663391730193185889225577579817847141391737208602453298915125257964552183016571940526049871941937015116570847526483702685610097735199554134710113621996340118341924947904602361996230039162033673303865514912856030298184445212852081504175910204253870525647382736743743474912830608492154785473918591875998674509076831954690638763655840661640486937333284114420421911604157813961892363565841930934310140316065716525403245634550439044244089661770130988588552480287680835279293183978307366434641588242580510581306966930020032766332585567258192562938821008723083107886078254849878231702160145134965087163208415175500658575363508159797445161053848371171101346398942664670814341198998668978010059392342522028611664382579181095228418344765091804700792728982723879156542110059909535898881026727428989041664850252677400922950644909577859298529753371494865876337497429926073819941229834143342163092268074581560007613950454761423557815668349174577478671488061136110143974537976770103848138889527853371410143647547445816298120222998069497047625711935965804531224201613349131609456507016154328266179913598177919014652979764169404781479107160247915886185468449424756853029399771628682946171354695279676541541354073161803686839458802412236558092784018683373231489781096088789504697279840230682903480194287285062303611330916754250855877979662976375779097173922219068114324223445830275251076047421625722436506828253354223375572932924313118902611683649632682154719528900672306342729736982711764887088809741102812605021973921625142838828591149860203041279123750492101361483048834860451151256895319729564141220287963713778199814414028781555686197911784409726390697836030246299131993957904133096382251787253484058318243262401689664099204517832926152418509159903483088405105658038917573017445335087925198572602559011684106079907407246239313393133114715221470801657818585021958239916753809336733283694719966788705445805605944762987901558746266772962811369142058630831568976846386289949127964275820636687469776289554541241473027282944985006827733693182290673109178949815701606817537908840433673524829022906873791999032457975785695602992827161961497503668738285417598463923596158996240476497426279102847956215304877551194020423627237098644003800699582076053896612977272442974896191564292317508920414381455714862160021168924142211039435123944149946390993293890666762879646415860805732238420806982525052447315123086327800602204627584226929037257233613511267350738936920897042664118706794752877268548287236632112437333089373689072775591423969224725138696329950421226737194766260638750595247838776989514650326391710971769595340054989529726181532793911929602801531769416175748194101659284991089362021010241607419314939590089152694145921409729321319967692070707722883789319492806222811930947916853002633446186012223019713817248149903400743926646972130116808086666329237509735205844743820622930519705484993690434224201059032902543101260822841479373532429990757444103563445279025867096973065133578903029470281098766097585065739606253824675702046488836077098308499059570042880244298633193783194291189766944279646367763599593965547553961107363870961595550393747850330395241411828443861726476867190565599026064544852065340770554254669515588016749420185084956366456820595984183212005515579279105828614261569559256855742085609261902686050050023964263849084612206412475307711255287513336383423330968290983719269447971367356712733082449227999249396462924529506375244436943603484473361411497567786428483008569937016505969027032347365279360066468669612529785941801747870394209791944968378250132041249519162082293343488851770723241579260851342040768077102399616553392530043185487689415230089793332379101213573819649753845075033186930697976633059904741690899585218578778390788899014804914413119837007045846104127739579239939674290621309254925293667193180293678548035212798267496421327947936257275295558128149947073962750704674897620790881139105988747936200983319414566964914570678679652853776571797543737767015361321006101420027764412071078879580609646765820678253746572228136454557158752413428582134827433606174250691224869205411569405073167202045389416249062916647474720199425977386150326614536281522511303160934703199277774447781980014554687687035805505791093634858893347112092885587742715273574867073524604442399913179414139583954769957725702454824814816109830451849177128264477178430535642723804782744236353842252119353800813820948124029224328690709077191901410364857938447427540001839188453519755223849070752048362439054008813793069460868817676219624247023334706974184015806791128237344428113939060236404072368003656283323574593437511711551744481614921637935377972513161004480808090923288402222453289426293648227520077351247536756025442253581843635213687098552642177635006536354002443378809551806244989342757106006610014235857301157548739611674572471711084874308403442270431157246229885721765831758262745206728656128284876573099760122059634599281506114018295943196410643693908497135337011931292713102411035289136571382903036558561884203662845298073077426742972350044354469551418980538242816369506832547368605296005226580761473399838621529029004639442541485311140538788371527369848088237658372388207803726969566275613681439150305555554180330641011030109824386809746252746174175955424274903655018483613435828677607401179002073261036706044665740902954813315307523200593189712273587967919491476420605265652002622465110337278151875831720878500918858224100677007524809154294955381014203733648495101076839809572461231368580058835547917250697679227215048233242921577119260612165415628232293456253013336724378039769607169685205880641502461907450408170012698607990049862726337634535991332619659387392804386606152063998774073858027951345994529826212764306122594404571760494525840266699598910568614515936133867893777572778514824595225566845520638102143475841310305058868688806508785758017130026916024319690421682318583145074423277175783568179753651184069934150946682741764350919671239900587848794195776811227297608576667615624026410189574869708765050025115640574426730905358669176412895564499811880727530946523174155464525957040616744102933174788955581537352852131028747453665576685192441755001177959706463634801190299038407211446487375525667765359242934320220468056940395405207283570365462275806046907332163538717024427671240253153395625064240608769985998612776828323236079283649220298321065811214951947238087289000924615779634569419242490649583787639245398977784944970900238501607224119485125108207478475880311403995046258098799480409021798804549969062608239296076203393632898691175739839927232937444100998607164570182998597929554963711410558653405211295426357669243114784607084474074262537487471506497303386600854144962243552847051321682318917108658103392324779222052703518808356072602575018830368839545718792374512960217996885564721732712023748488724331301247096275072771798077516223720368852983404631660257224612960269051853656962967794658183882016022086709921318638945590179922192992765224458011471368595381315422604361002627188360919804550447227019492194850555554515431566830610457461709562073300077520454343712076874871189357288239784887485722593594585248479652248699074180625708824755789311241079434761962071352152424663008075205835316402017981580970338300398836657513434165337428220979977661090640632448691005117793045474131812012232212844552167914669619685237380435303038759348320458839119156777710595647392019840011163391419918495318624093544181455280777657272208751727779309344870951184954422137371013117503511663440627693253085884661278551758145511985361158176535275753090336763751429045657334722230546881897745511504730645644558316461909191546921332253502889018734575407605763057184975209877092352261744005732748323920312892052781333073637657673276321446787927174213131759186054860962575720335430997401413281753434782865085462354234690503914355831723404084007028925545357060976327635676248396147636257504899021433945742331576324955246874885973912428399894239337453571011651922193631523457390011724968442711011985685285686355885000020402239158280844768081806387476262105227048247883332389526655284262110332790361805589837239632460351315988059982968015689234823433162026980663502799201495236714324520463311839656720940296617566543384960792585771573815571771769806098673413465197265041668956804318161225599440196421944593476116533218488490221050213347657238108879352602577245672380998566336010980883333448218818059615118785067295125956906059907694391183367341290025084386821150293238350250514850023674753072474897601316624313519287395080188749257748461949202491220050414727486979611661527510160944172377294969307995268724881218851772482204551245104568284616686924777751147421320276138007455267152090233822873757378656105759739413878910996023660610096913634991210244799355145344330130827003560938107209678253495793919766264603783033278811456432899282460811561104676673870107296583126308037784146822280952740443164818657352041129107680865937545318027805086243885779089373754171685126377650871968225090485427352839343935247765822664390660784210408342799009816116467744454706116051287500606828650244406674900743011324713313762067799538160890313003660474494173197452621575638344344928084839790141203427938290018441789994568407303922694092739984996127113660151724490103458787636123845149581487708141121695422034402004514040096033513893251360792713304847764206813385738954507956583665898186659250737157341594747443984272122351569825998086907686826834116956625641342809792471869615070291722071478067861423961365934189024362750697192333877571046939686217069670829708317943846280997723778000864664553043048628319285914890189459137272474248691485324404204745402942500371787400119288320552590125552259626261359443418020222707208756782111421957867822040133368866607986278845404360781010856384796460212055032840717068391433546271717951064891352665069042642193838206173781301260041629799291394254490449576236662923276217380307998074360436003734798112535629541806359034388705971609860344215435975877164184320237886769587139022628060988920662856816090247120334217784330088453172670156942400644756971757942499585378311851115662727080670923020045269992818736181259137156019936168366106486610313496588985954720898109109965443004640561768280003473772872864259938334473233664394412436059044562695510411854874290508813179689209259177715135696962498932566926699613737706219785690211628752464226941511098557332456064109739204297217338476209673232581914183249436192735801424799592805807517458985867449829293745258385696613775340361646453658337287906465898282546594990820413860020365741900853393489994217156938375704445037153973564769060611249726405470416029136532320433043290003207060283435099940599501668913776850400080596584419284290740688459556733244632907183768999153792931725578114010764531713713972424342108635236994660018127531284444636292690100600741712746803325718280640598992611637237448659568148826438361597368242312033683704893376291522484521535126574818208578611906182300786083949091385946021782716148403237110861707556652685197420889439314903947950348408706692323906187854192554083081599682934855701229136084631357460371639727753237021801725927662554341502756467060611140384879768139741604245976092136465053659538574301800034795362059488219971010350675758298883529686805034354322872070012026797196846182726686412687312512849473637346810459369023307205838987255469766515711706845988779936869519629294524855976863667378800661021321283662001518139568300895267466165982956428035521817086170995057188958069337697974916089195988157719613178118274099494280046286423755496563249211195718381426457145936357880976063296652952637060170560082751288106483812627903616152430797869640855137429926586330699524294899896290906279675117880717601193680086073035721968463543792136506740614283549614212218022728600162131140981072452783511631930692458251771381873385440716430057010164799285074253539084393165034061941719136049053468453651127239934794867074297750822491839747236807140039415883916923514032582613058976987821459651568108908946175803181562199387249705967136527001808418478692270595687057753085631564740939843066865484085942538865702687104071295058030530019680459426526479388402555911633547367724197638802160555058889809539970340141499780211753385701218839318913125094040669386336549179648238956159863858437625760067586545990237510471051852822922862250901660826936986609987998830894917138264989366852149676815605351079628295687956520638631538513223211257599560559054679682015155410993032834761790835581028456706239460007029346373580888110940911887165752951770708622634677080389732456333714523778832127920459186910121817969350901824811030570913547933564762576258050989150727128273694482084182829003361200948827696367246890992602768371902384119687598614343965367021977210517268140736301008433488314137648577452513443887844539068695069035721007298282967850502046268123713783316148211335417186951371671290666527135387673642728130043404863318589119235362055768352659565022673591064087014867178123574784090930870653516637631464107151846078369505582485354359041943769591208907179697446644237013762059293068169556186447576003013708558727922365147100203300905940980072631682345983170943502806311178608568201090927122326287629455688328700615661477277520026288405747527205349928000003717679998108775957916628602536981504270535582728269294728292201544056697299296729871123563215191625598389449048434862871092212907281056853336729020188323974753500427923446527674332345830033789327549596944274285298410125928939893096905877392502016894379467396086526482079521822299856104056042038650851070135564475701344376967215020744002280967801990212009733712887959462788501861723556057467857757550148430302970914780826209744359154121120143049839851269707277573980235534597033311957278199213078556965200380942256145010170258700981426814405394030042604036673279317633026512700332038254306050180554640395213507530324701925046020639701285636155153927877434614966279045715604215210666862223553817549559037914049115111312687113150291672368955598661719759843641000545441223829986445126113212679260623596500182839031294804302092849465468753313747018273001214710525438052684385555293827685474946943416766280408458535648569198417130108553917798836560676465111261948542689722387072843506318387710521622181108088965487947127800514219602903594549341413733746954865977048582520979359385600600965993094607499651398124657560849784327832678501053284646499925282167972557637318647207482501029892503921255329788559884251818491412616179955437475622196726788754075525014436971138365666029193281912250062868936591668756036683419392657564171187937313657672779670133289710322044623204464300770780724640006016483370970915860294668458947913017933190949827071540818943931467524867492973820645277355166476452130274415183107651646765634458464598096812902646583456032455889651096423503636204530820520431905231448092225155279600232983189305023083046639087768096333797155333609444514349862096404369985185005683179886469778312823532877060625929423830856517185512658548440472538283184356842493980879821298574575956153946270084582848060093222887471590805455076498806446579880137110335807901754547648273185986509032215885224946561883389314888538103323790826441485125463202938691728259411471262752055149753179833764808574853378055312769179930644213019857749973699615332441942371813135903299426267937151662843650056865231234739449327271801189249391149140815834983701138622414371478062411659538035605951691312578542349107920740575509354753877633466605229131164818875332644929165976454967205350685262070264827987492674618678649272864162659052237020705967111357028762451607353737839038094413146069683201775939141208797281976619381861025226370370246614050718052340619637781919169772849746078516901216777423467491846685020585777534317862755958922502097020533642607106541540876883259984707908302813681482291713777754927119740181369878124691913074812214768492409141165224060088936536007083414428956392035743350256092966188507949298818936623355382948529612349047668282394358007637568780891744015304485574270824238796892617897458388361170726631625284907898300183927758689545239102866192902518470542504261889429049588162637883519357794141358968984708206353068760504711980437089698916986547862950535880981496873247653630249220359123972884339678978909912412468973426547768191812850721604590751934009399793495925038781252068153950586289522943946488281356751257419316183268795177308473110834786780445760359237931110298654096373861972988781413023041350772695700848019010813594036897844812555647613262014187976054699342516776750087464489622833794744847154387690911904091296491630076149241632055367197057185364417739734654113472912042583221924282870142370963959663087036139889489513214464762297128957447920278484914050071380067835449909165604477868247403844847483378554712771309434918039844178461112831247493731921972782042106048485663201375924580642492571386568619857420460410670748003843946641885029765210263295076767332129538591627478015453614596775360261704843195233002779516491163679145033430692772310039930600739520126997537238633336965229004285517100922838253174132363769462583954955794260035197209735825846548715007005426747519002043919392945385340990692614834542974092287936536000561953056991964126909517091320143711649217394103036277763461570378408151670976453324001714590245026521661678344061359856749887253101794214751529911858626311674765894548943452460897054096690544560694182577908122894604438183170590920847618595900438945049922270287163902210594023121746266268826600753690248120198173674074376765134699500974283698440733168449213436885883915174283686493705320401683407938522632919293080615980434202748526713435208131529655369171463313659897741750467605646661848537370671665162638888703148756161152018823730027494758953736944843645299979812619842934385537706734899412988415110670244100547385205922905124646249314047729640872856017420970806676736856464229376760532898287991411759937340577767760628162193920683374614662188169046507341095483976324204192254805844164525165815390841106805646895646568956525077725388159663678682788266118365187004001345248388522392168211164816722630811374562991596928981441467729291980812587906141169618364362513073502616161647644834234721918098417861461412539294227653420052109265475294504408725066279281235862837180501786460991959994850587770835055240774631583558137805604588729236597282764009590186604222838390866065382478996317550708646359505274041791154926072834885398020242069837679923739641696814450772881452500403849035283667308393310836471121287988124921760588358719611319920424887108016672404248784849805354692049496609917453311042214702597173294175921577461742554534558799552372392477863068640748562809630415933811258481007545897077891463881716524665447356286023962795957950676923992376078458013942547278494013102854153009439875284425704785082900329562413872175629415339404128513693659851006781042217155472422566449006486664348046109560234546364652804822948060506579709799134888946592040670986291659936319508952796798464734452497956561212302617506778563409782921942248949637514056034074410006724838605282734295868231721738708258469913286950397550960936317596803577625181894652078887174965434575999888910158218480941734997205117114506845672898587421324880064435973266174931390657113999637606496653311721274613965985580297877968401064265214530574232768977219174770825000352290467042961505746636237029199614171607481652125037854951187913099931305794561117490619927055909240122196441327635315015413281621039220217633171553652866528574643522756975062769639997444314961427677418554953161677551422489015565990482066534991882932556926189724487567071760046613865101276542172122171622967596688419951784464920725545597549219666596896400504748101842896441501853371824637765392232428055631780054552277494214939248865582432891867036933267754412258796200290299986727602776686390690826184260709674066968245902108475902348462024860011014537333852995339034755623966336371075405501267041375872348115825790955527778345018136004097300736027007116115706595295831546733236526192883594511057570756373537723548904734633468238226535224631243149069678865976826645042122526583317549700757197472565690477917411598310452296992604701330310780948212325174619020784380274719164966980344564193151421744839273677300238400647323642581254272142978382348813266738646862969782550644346545837165910613793960821911197596843714722257251309337196715845162891119346248837625421758439170960088721279411719744570175574840761577753291980008337358886821918426026811839296838787674742971347898589399944591393297213704598006596516867011599904223887134627360483065560714404110139713706315209270206961227928251861216255089935190573833078178818182309239169110933706531407796917569125426984219587503371226193241036847062312157656529962714972510256696497352001423590181359919387376039739038177091780177613319650450033401322736285492848125347213156655198699392102864965326643582575638610122003622250342186509113319346930174151373272328350572758617553064911523131631812552299588745178704023008359902565682496461232570719429434681716104898938288675856953988161568962885481126162279429638754945573788963419807939933424352657415945452531895014853721931698805340768649332900630822367487399012862064425223608806605711381142331052674101740997802931544192214234817722304450454058443541231116103819149227403349619014307439780071927029382491947545725547755050369168372372337256757301125820790909760027899939312617955744537063239180981599969931815347119840407781739362742087855145582082848120223225715675259342498957403555290119399424223368736233808565977873760855125980216455880682369242863203011417602699802703048024504587022575417220875405020891154243104433488566429221430619295468061167032555324853227804687453090207540076810320922739588999718275719692776083299229754759349898088929524339786617861564221696962788977677808845262572108881891143185319920169140866753070339749549647760777336689076189961360030796931426058307677816363116456008819855966594752077686764115540690116787183556470911075989785538842571279390443332372199355888245123195065320415141534618161017518445874409635730774015224839676454014322997035337950229356624022215220413777053881142221343404430830491937492198674668555195596829552639183836877283539708744614642429272405784869939980197828174031651387006149530430026265012017873649053166467023445911978844392940438782995015804956284128332223807053461037777401399569720958523644151222725944029217346410867183313732505502737181767387588067588887579921072984351030735119144604619577474637175249019822906325254227393231637456322905090172258710385387719183123239904518464428528361674217637832283912949065355566722960795640875175738221427132213616148085698730406118883350132658375609098701698056229587762515495872104017507408006086509922712184006610241277272479204325306754171545582486205239881261641221270145498852689828469155626209084139986105084216483430349084869699924453224629917714810581819253964721890858414570008132524209797845003931330681778471084316126370884053702507075800194967984063843265224357760776970429422477983830006441983094444598247081564225738509875333935034489879136196024110447235027812667676357419760495241283953025002420312379017514001734835391720476047180516406559872131842295939993797094428466657185525276511923669251700157865637352164035477410425210001719098249126364579300307128917520716416108835808092391776713345323770418394747480618036204255028746826582629229867509170963087040965099471118689864685418509784117654961116853752813617799559556871330972957557231510394973363571072886814683899039131291156917816678490211663433734987090820017059460421673770638448188011414204858795388125330316083104852530314967234373635587443945710841667580537988010296470580887784688954764443128354582227103314055510291100677807962371629034977322151823479077095005258935521820103580203167367707764952130563144954822549421302674533535955922628275914062937959294031578282137755010190744315690141573851864188484948013311197060621185939508660253404944468235157026008620117164998420646773442015951507661235959631544802843051214871698168014856628846304520852434366820503742639831799459296523560384167449692463998433687232774559867790941243637647582087836302256592899908607094512529087040060039379990925817510445997877244043623931536527151711895486156782647330913128792507925605038615917808315913142661658421349924001322866884408115080395418065375130979342214288589375532417026712919006973363665766132922826186956075234482548246899628885253386674321657396056846856987227877542419855263696102172911675228150850469016385926851314312503675552076930244122207430048428767512422599771957015263292074297701652578151928473590308166719256648500528368992096105566336245251621841586412693144381330323473910921096863119158226647123178980184066120797437125258825163290647555670597266854328102903219572929529298229125427932503710569594741006472559359503986300262015383403510284061721072345342610841396646544180578877185801698572038970849351832106685032230651283721386084471396802485401251679253668762325466928406395521970236788097014444647189698723363380267208303710872125098435426580213274796873760580529190187711321498813848325778941829710318127466093307788030256130931676017589146322420288719235370421792249563056215242783769306061582416452318922628449751439432931284315446238680232568252943085371552554895003252193775249258659332185929435409350292049331653168312489468807064637089759261554410045122491785883617155047092198649406343010895470139457941754370508828811288209236837357990399333750099032266833758078592464163921194048073501757572952870480775448755384209502245829224171008763412687891124766478911823020622498523833889121086672981032932833292509731209203794394242223686384533690004275805138476557591711122464440923525589485242818591457781511744725757659825779466267807881089836141713227977109941476783213845708855289948301270303866338066055675814725517090248051946722348150802292286995674849939070541141411090366886126331237946393095083296324387710896026597098336660450119124151825952565899830586561000299150967947748478302656514813143503254286708467240061647574641073207396740400665655855754623385015884125964370036914414923076190463957382140980170450851788727808579238646225312032701783372680770663677873053727049990792430735449838055307921239509560136356589402444423364971275312361188351260626621804193334437912001271672404159174301361785153553054396200534024636567280823913550628033747457512939335188581630371594492139148746251225632467392978976457712848799415751358474647474050899560159955352599435477533603748376568781585455333978787170893501645497434793498489071652442227057642621568223615914836964329129560180801899793424771538466238547889616074502370612429871100501946033702982133808458564636519619000742264984194526835542569649397769189361291053331308051706317201868114394103612732660313280276614239936345649781490393047453228470202624217818878822519852152902397680243879414821266137874467226388532497009222926729865711651712699078762730681114004253070286098326227492593596749120196037052544861729506842907233814673209165928071443318050998191438100791577922423850505351357958307324476215654659756783351847320434226422703753254187866907408369474747206373743015480584536941757494195333132828890654701276051207265764520944772698609532440000829600243775059939142331305926179489370498995535685012314640019891038975325796225373104718670809163182000979225303050587959021391162212161873379629610387830439372740954149450265082214659763136879703898911311115460520814242094198808535263303705661601289322637699881621994741117748439917917876902617750428524601969468526531711101661739851689669052145164256743929868785844051985663232634680498602218985915951244728349171094504820927679311125440713330296332929455281428190969999790675463677653550069416011018858006812584247770290035871833253225908206918877086422895511819940605796354202226331876450110560687497152200801346885366491832807547691152219121227880354744241606986987662338721833428764062497294449519423752669037856971600325844800225214221156918990364949126066721643386408118851321074855147656235286135511916591433528035666588133912512704195941895832473974632893330826118336496214015525137368101285504202022263454182914810320371433736220490907803901411069187160714777962091969245854244277878389295899306644314442941346920872495250724362474288798958487050159089388880267094651823738009384201120090809278124944663242535985328628792985723074086956668050544227705809206106069771602916775334123214550832798815408082641698496809113059233768914775269142601961199011549776575995623080041760714000307634414185029206175043610382995360710680847422524231052963298539370824136516220329297400187722756085451804095408637370658815876609012032929868385855433124244604833349328381648082864408341658427053394891961855666097013690976279682433193976428161628025450207198488848741368290549247033891992624804361764961119846890412090022460879032446566553403536440674909007040753036618472898943898657644697859133249617710735231887673359810218402559518683503769950890416377971273474437698047595146554375941804019464526019591276549410330048460354108846806465560068063762278145528372545753923615293772454463039096377684851697404654715185162820169384622882526977428988840401712383390560003403941691114642334291538755167010042874471995016653760120090705600560018567956030529523943133163624703924920178964819966017618945465131985375385148908502465450271743632212839418892985006569153011744953697576858495546475861434707097867013938600897391235023738796386235037279762891154475423246332034843990921318266882232352160152729935922544278822144801253297447249642143085929058322388573397741117323131668172737578856170029837146822938521197300122053531288910022674739468023750430360864897938985486522067228850104209551067805304635105164722885334614438762179316118251876947510526898600752312557826291517570535924776173950514280569835551684506167714656364468504581808847610406179927950402870063998231205030712430913502291243300399726989535359686956075760186823018436958608321905495423903873656843151225158926702899860351070556837874603950917978837021068770542673387584600340482435195176991228440502280339413407304215142430484250958399482377803422119264452552058807940277361468088809818903350951209062099587349839846576903857857260426789531876997685554319873505852429873176885003976535685264030643207146070928651696980020063103075122726010191932414983559091231525287821437801537123267304177894526030210564123882996409130093990799668960185037642217539253496629947022496828303642651597695536258546608616084623781202765675279709464510855094695362126994060433444495612467815282589164813157289972833455896665306281242307178795100380235909931016738029357812417935053109849372777908319672557026200359834446121596490365716714049831102650066923249414643454863976187222819812836523523586225569864757757552453401988217743513871463996522533983827189993243850311278795726351555762126060518701554858894865187958430734850671606551625444152263880128732553344519647238615796508653554440161056932885256329713733689431035100414012419029808504562476899186267496990361650508965556126197983293215895632277785197847266260371801214769386114715059270007155215461692569508784937425573581450016636582517499138185653061767458248190901911766465732128095489117966414801597726425309000229619025207444311733310625813709951494556492317459496091350130967669660722290479722743248894442631592647795789378379814865013249402205203056591178707653744596371766554729659455607176885719729597114215151765895422109958009511642536725962393889592512306577636481921040487155883438302306661981327534630947391980093556143560006637804376362653712073068133818542912452698826251718508544249430360783631335525679437673956724875825608861372739054611805797732604261253237557079178798974646537743494343839173477402737929612881357561443811624505254505515499090132185244758427017177238322371484306807328151516562259490720938827425566915840435598285863389812478064320833408376673189019297461252799280296854447716449632522506175231706745468081423643892598536613206956610197320704320322670491099357196569279069181207144920984612797244393129643044935052994199971737498923495198358119905141699179516117943215081717571521330973434453563448661316596631909450021936524829033975569871948637862192136974154058869419282834171443080303321299122619106000714339697101884430521916408923478034274014127060037041258853614383958183320726779907888099537104239975907014819524622563132946999307768815215858778597078428251259110114322747672016034712224321648700180105830262511864383066237532571086350983651866346797968033595699573749477206802026429422107032182762028519206050708839270517894645911900942512143027060596536899364374092200466809897201423135567693964898298315818394311724527924668103393957053923733181060061284048024500018928927902000082910958869315728816659332008377293057612823824905895315367714891936930125664305325516054623702199101518829259561950497320893153265261105496190329756096681634336997714492050267816637173392532446149625235778847871418443017382204955104212287178426478332498593513822881823235057350039770110897329611583937143118605876552459403062873278024051236511412665543611613901016229829663226541019094287999997284558935584199720410833596989655050199813913282718920907594522164175318295963019544312371897384247308414516921868094138727866837031336968747114964128067056887645115046976832648072130168051320961024458578281525613082460392904109513833419704458883221071121486194936571861735266409249262653413857399782661783278941299392617798780800960503093689235952512038811097096167828102932544467200204335295384259259404059612910464799358654836140120254711363774654836940717129048022022402181249337715925343525503479113975476088435520395996583465653089571031248205880527249199841915026092132737580557729248309383271059998089060341296208065190005938172751060690143039190689058628778209251969772593097316043604867343602592401192420658398619213152616758805545419484918929780413152991527132448265417679753244056289599235366804421241588821577693502007118527745084722938695731755802637038650854929409529429952226494909221945350145512287568222042814165040092414399894892301770420579283937897628091538404239811034411215643159049615148906142222962347078884564188125553756625022697195840554043231973356234945220993602373545334824545581489328210538932369567622647384540025811876139191275967388472196831752006888727787429035245852798239620532982537864881307553095388770008711809183983497649349787623277945526632984416609121631866118548065664345562513760941738993624300632795087683735046350196342191423675645930016231803920401510286958559352542289248864703603136515173658813324650354487729166243404246472531252411628949314813706093919372067358744692042331942744026542021133729787196154620795293970029569027329825673851564995199762616971455241845613927404065662893146680757402930721977443203093189701187879337295439057898885147477585868016779517492517106897026204945333957466931250799787498230329819187994721513090358927195700389808337606415575116266421878670552087154741303985222714404167090161294291724054944610410859647014890666799630465041739568445732099837373795682613143518819708410571672160604612413429369489927215961498667558980716923393216134700233802243095527057388401104991533686889988429499669729257826063917665178241375647001715538605561981422013325908408158004299954503951824774093349051532409975996895068958920317446271795790803320006722258719832782851144609492806059256371476204010066321541528317243200038426772192370833085590166255274809869876235951893306044044156975853701756913518468263551003942204237559082261704683394817123049978225168652519920855475438366974780596944127734697582295897615800463166864836626245237692627738406494541063342341535961866789674595612363497017805627940315911047719289969170053168361656307773527827452838253849223648750136797901393686758288131432150866843882926048042226324480874072599475260575396286397092495227084685917660700937276337886358445561844867125350910814383974668206333487943234864728857618290962536327415867443191208680833012289539843264396737298845341840399255413376396839226570749728462303044181191806369027283509786731507596402036770416247852623471525394136498360043406252555741842854122962054410992475161290603759063691478229864745620550168214709521573485006676524619550289082728512829256742641338437060628603539105556078031226813367819033724820791446717022890780117672961650234586975410016487208299145139761889813950474070700651008595535721321563366745866707091501444389433403367979440196095531693074169539628825660104250301596011237354346400680027404709884348343449623346092229112463706554252975510450725341698825070300245077153691126143488767099782989683467350077830630542154393046140513507258199618114681909988915943457386582318768998403293409493716227314097812231499726056195875512132820285534239423800744081472725677708001457501731017123974319281946750289166780446812316475892746772137861978062815687741246843991088969239245800594592204838411212871150511880558651051916721450936488450028567837327477834760342203035104161912240355149647447845457496501129063850275358608370626506533572044318920564193167925458356517800433755214864467641186272673351178689768502153160897875758412326629615898596021738091233152300720647691830149899686238059491699207790670057382607229533761754781293773374488565321514084089569833856977272193038383065125379252881682888522604573883154945927838071451647217433867824401809898098465300411136157741566409613341242648422934163249650201298526440013547278915649834236840364201781541262697004404760578495069318600901126713237938316673942891495225100454042407861882148955457632421312290866385645196851990572266404379880866521813950108404733557813476766128246596834979789718424216185140615444074090073638713604536839391157728526145742776282341752702695160550719430010142130508366751471217532744532607908361180772445785607635203709786855829311489058065117579092586452182173405890725003430479220577186537545885432988947417693888929444957875721246233002975323870455415839846274865685480332995974171721176095229261947263166127428997723470736788298600181289369016463984672336754335968741999396063319550739202692150338718149022405511533290015825237646052558764039389022867620524119096160454345561762172845329755275359716766854845808020123747698921619739707083332595211709232761752622933389964232095449985446449320661378038403554250856202416753367908402621864489237919490045591215765617776755448066867820308247708194473545293483252131253094125700459357749039562467451344267451241087951524783257321053370380990791589712799567406440981674529061758780188010397901456670155968525384290458955253585360211770465615749752529136479649477294574068064690810577694946360442508688944125550869958253313041453057994072716325073099292036052054495767822889967055131397517236497595070362379041040128579488756257506531472788452969435168922760906860471523048197531619207357703651125514987072104492296788770927986327855243203416856971732395599224683602936553073065770397659749254904646582966742628113471080174697796440384609234581781288759825152855917879511605511065024899664369056737608985678356768967772393231213576403098664615493652202423054498329815157720034030354822811581317651775924892580995988353397272159885050774861527971943850293668818361691555579939753170359662272889174510635129943974769146167177067013501345799927881047890598120131437615832098572949407449841200079063590880875521332406860607110684240511064300500331396809420735962585071799982680148890168589051562055917503144706585681571276064546539597107252883218795742243320966939025282892326020417871292372875537426652635193188236968411493040997078004553800614614691577672912285424174413447710981469518525800710786210080578285936309680830955490730553415402734041676767992358690647541796784317762387238713065141337901811080422018917878468898684582983936404141031095321330800587577560885611811527815300645909353815245484016716038531850872635086968439324615409052159007125120356456060064006398224423296908011663744798975990607099747626075817112147450559317890516179250415212586698787160816843288437067893329655309362837805406185734987370451912370973995081852521701042646832777972330048030063107598318524331153858567780838703293062481673091060860169946771005829607091283057302251965987313019543537280148148036435053746600785352685175942783223434964550040271198352218997782056579007638356921390979527652455974432214809333812138808618197078162478465541648895101165671602752625348090463634042449234592026586821708315495809857056330623281915717448790104404890345018332101149260548105240703624316881990978140953635450066098669503537517089985349282984111984460829026846226799309447629638842656153445619861457422824183699341421799336993556423318052030248854639853104541259774804488034520084977917477419781609945235548545173641602862253079313497143309777729492347031350051004562968118856010080049798255544482520961184098495190736067027583510616517074307855948217365675690706972905136717339000531804142013624630642586691169728236589197777250828018986949426470814390506069828990384601192901477234189428190641431608957213382115903552520229788878623181416666515432408904272289491044549789557694466630976471141039955635782879331399738903427572451500225901186827531315057731756589925099549640750540745614649158089125011211992114411009689669981963439128764496367063273798531502715829696357909663117484027465402800887564658547152620935476781034983315951160644984960594228219338997283999435712336955875888255269086849916846376532212901759534436771698465954406447685750336561998383009313279987164399766680942597712351284606329956570017978202055890457802880899676863344104726455721589892942134739944754458234853698582608422769249426315120940438524490112251823346317961369733604381331472946402468702138569949353353740867799953829292987146727278174238408778658292959761605534015642183105024062296169987511293615227418928796684743706294842510649801900359948784127696092688958224402750186132420131274254298881438288691376607446051199665306255912352302571586574709118052441995318923274087716206998775132833942180958406841302875746050711005352812736981268296870182052790823981211901272713989587195935437886082416988766962349316234705618039057283401902747891463310082528045364539713963754455125359811627365596089530327010928345385493151638520631085300408280591021830274427250820667165597793307762719581719416182133399979269688875871973452717790708280332118682912428360720449606672666142254053802592702261877781347418546074621365379791516947765608044532474346169171127497177393950103864250052519333472942877200383905041280210509161488726811434961205923198449916990844316728810497417825732140270240443218941015007432785486218194743183530708876011018731587269104149397659395962465312205268434113610881959287745400267291874465039261740150205983412623436795676684424127463958411170370245810584757665203773962092102214179047749018007704927637658393634375293175646354248932325217455120803525210200659295706902134670597325642897387590695498550839246938594673732284574557832902071069607616757923682889245240562045907850041990507993692814707100580937556059150835682106754652950425964557560913150404710807227107185981472651978052217419961341041488515218822920492102167149405209958964938538174457723866982881891221661934721377839303165699501292341237057930197110084167795278877538460696979215230876182508838054830360543112219091863692287505455110663626682364772980303452865075360817063077363797189709546678553841666377799635019465066360504020013961204043774432203663580765962175070978206019717609738556684604211699646935437905441006675499210863253203290320878304025017837672498266409017189249090190352233825445571838151821889829421427943031315849382923037250884406237701923992989640394407389719916818593808084301334942668669659684734551258707872323075975668257072083374842212867955215856490686875626943621676764872443402462739982719781218052389324915712021668349029155823881983014674985571628373167676466078948384993099656441389469417641773503922781629821183961717337671165605894491250328460094413668842055132004629235889396107739359237168739579420775447349400003391230508838275484516677094233719166298783563219919592414407378514893753463091155176227379438921841199978910590638473010766094683693826262376628249740316905508044821232201091879168752476221284867862831896587319881575752581332989192884613273996034686910006031302549748246900950254687525318520493990827547335579204571016702513640562096229337332034608457843076309452656371228263808374462347775113884601751539298790548459827138412054611464635567190366070884661796292271354149435408113613201317197795470114783452401881910116681776030228833053058854293387632148767423855342905589648714524828850780138959950064888231736834783141748591498517912301609746295038730589815797261862953101423525344570364804322183273924506188526488225807616658817105477371800831376518204662378105231543286220072822827163160099696016212915323221232496003573708259943562027610109688993517180805784409380185838205798252242770403965262093118770609031946568950907383164817486469418716377630727807087290071226903337110020464169983360121133420221477232622668024266262965368653528806022909597748541491953883754032650552131895234482866993630647031206709209486743146047750073085412722708562321987078889739272125020982565435523111392993156807939747824244257523541789228741672555038047962474759053693381644715900467270443139904709961175506639270323510446137435704418303103876467440451642182909327127236092165523513516835765606759032475495148942559307246940217536023752868135910511350383915064241359620907123580248373573142048249377840324604876726142634940144953766272274719879461065893934187783851005023829565361134369646882392690485708578771713802051672174956266440982729205320156415065708309999369580372938002827625574060722773248997123661052688604072047508172384259108694418279297919405857431035313292528966047604772546342309551789278192627619378559979969014391070389636842450289200003770345549775117573401469722021145451927376034079789008718114146474283383267739822356097443832051095021320002143610115833496895181701820207806385975376997098426695489418327664606242283104057291691930922174631804149959146034405480101222765001041037586741877495877537687347034118240750943571997582198448823884568308680653272935999990951548559854644989667196706307962028457137892557809114337590728489133632777083552169215214768456602452950960565301808858208987583402767180956597119907320923945353831368360613938507018894171846587412961360140643073691129165922847649219174559567177360296279660689754570575643937044992826551134458120642937135914694831864492364328856762736871232368978110797263325167185268598911632319296611030687831887150524498019904454873800371827404095591886024898225197825642823700052440465439594998586086169431475756665962458632632972650676069569873339196858315924134917485046833400961486253228960496708741707256501744150081914335307579484812858234928352870087472867090227444678662071052084756612756690114993469059956569608930753681089589456819067739500966973606564537696980951891335040680773592467252916755627756277813307415567051785599781285948478172072849261501706856596969013181618650048125236119640909135002275585909166584635175601605274840116838638337590259693049460473988849349431751180630027825258734549764388397841646517041887976774921114166418471536298901746836154756435807322619349144011216901015589619604656293108564136420970363195894039840412645243188668466092647895737084555114076313987454677526349165524710732329244441963555918453413453014528710905780215798783249244982289176359826547539485671718979268428538595972980031544701656664929372938488769305867417931431009694483155189251274766086548539208397363153118344202465065238550853010838591578642521757420403405639790507024183981118755304419166586850996383156174405460350177116148078385076883005684351262828888926057438693693852455668077296377036242664017979553847412761248580626664328736308410290154400638146877845992530169545893300518319763796681646257392672280379368531506973916816207206379680245189911932919976090350397722244000486431436021751639144349166510177649531149533883739642321899923785510810137159393310023312136484235482884016767041484390880925508653783560730775146072871438571821940186919247405899766854890277681038542186407925159990191997682446811169805846173558794310262132518442111637602991030906107919205850369824746531969454184535217791410300818607702944899467660321813459703107895828412191072584140428847471004169279740383878025485442558427292765212415390694672290363076009731598136890498719589276636868006719629914303056044948390211545923449103709411108191693094983491548790261067851010214521966971630537866891563120260259289180873355587222469677791687145173019539987966758357850658764528144573644823668121927712540679872753657609277353217049962971583599144103210204843428433474803698823676017543362846993208298818559783894338337880481574188210881872521404699934385439865941377077633182924225789495515236407599338390871702779368453860066148162324791045177924766922047944553698844485258653921508166510244651905585621869118834286695332589258206822684608615862585097961057127223878143595372145669828279663451893929303340216086399908591001261234486840791751564618820600317417690626234050076890684745147585570337176522582071531299257224729524100228275884560101403869329792784556266850098596472122688298704214158411552870948672921385537251216105635943056370484020052231433732963750966774607670354142414753390623625441626073248254576868199191106201973599982788629128151047473048713233704423285076879527059328107498345348300069333006285650408284559839461568684196052247071172549842235767795724484168807429606619679373337871837588147054385672851838073906069372974667064191104551147681967748918872930766917784302155335005548185557065879287466941426556214546028411772310669414130646299261524658240237925081776332965007844691722601764875955835317314817780286734338808474893208272672360268980345684381544672318872281427407317842056166142763022359949240108980852292099798258404379397895175715729673504133518187717688174743358645607675292421547960927986548019513913214142407140896980260891698036864752642898961874583982356691282643173551526738202645791044679822204904962983265989721417072476666009817075525247003718314901064112548195067858684450653437509879367592837434795943502415811930010655441519854371041229653936060794033551024115412346947902433731355398075932340697139279674385063976457164930122676104791838485534342182714839025592752585677063188847321498225286494219202774131012806099205451308717628503854103986694503631183877959632728523358538881727152739233694108480929722406567750625517350665811257531789901436444015325425984156441779561454501838833199838939443297221693701673025813656821577945445506369654167837014503086174098518600765532425218149888168611862094984991352915340426686458327346666395426228858076531384342997730798526595738876036356094378467672029493909933575663873167499000015430912804155075105610481716944530723561932629775608369894553775898720541342722670438335698162367027576480233902557860714896272442715699339799603148605194079175260026414388886537415675129240166775654944532202412301798262322597033929489843536721798019774877433366303424776594471711622927997309729421146920720984091982568106993981750263632149564753534133960886266861213488248885202584744359168792279734742548837718980174542240161353522547233064362778185525671901588498265983683564354386095450292694696420256317916174120897282849424347368775587655812832076715501923695589129434083592802938410012643087022586420964107306627735340489798712507417027030443433114253653753119365771244927335900560588147553905208172419750419371121249885978750321921481129131527334684895244535834166920762861427675429321263462366225827866774082446418732071190842683153017213177716090250387257217946665998475439553985065813462151815454775724738782522148321149406377227562965671664398043498466661582977480415235263100847530222082443830079903988915999713001621152418011473486737778280202437524484498504118989781716799709753388474796585668441855850120484553873312564989513393749612637467189802421573978758580779113200721514569403074369772224964293887120701490894617408245003124041103931523710410705470356441785436883733981702614715067672846464951854621553767012194004654784516171543157929646385629626660369040219484091253283564883564923751346488589959202956954231541095572146116150067459421698513869219708203041918840045962754636468968512139527915546018804819145412739784411190624897496583567621321374251474142661263493037659968923232597986030704758771093052408900888965765569452443921264321420251052571001231293765403467640793269112019598997926089503585559219747909476099249503741187743363851963669628980224782259646080500229109681492822509435109160295373907407166189779732149229495223213748072444597647655235326805932759000210483139045158694521575290687384605498215615042348726221813268176118008215292979639605256893140011923308023774824240890810212575486195436205936423861910925362563263150219513749308490715850451717886059064304968759382296510924502210780990806160183093685236680955446274157095296449018228974033475743203078622049464945388140325585149179410664139749407692525227316757329471266751442433959913638341121745673127202112649151529217146644102628033536388047267684198248819319833079160753969975366202374316517920860487547618781521462756671036035105447058196633708313863416569724694045645063248353513651088951107149111341682396289609834945622494674646276887454760539190348727616168973161054648839886167774573886170270668266508460692387483165096961065791059981030656395558161598495870671106839192730611610008371531691803567523958425944276388714161013408085297531553396175834287263614469854058468683168317186473622209515242887603372479354104492821464996374427347391935542103718663910322499382413533957436016560753451394202528582066051791900873189640183412685516168727413937516160154113455442636603567675910762937407679622029280901403702521491731797041899918921595056070708316473266455828923603118961913231457575697963223118701615408394303578266363498296773305461249322805945959232120178997386178867404971244651877789645077241283149885382781069558416345263693489090463279917241170135549355402915762414248650829351492836850868545702093290235579900253953767535308210111131852533564696744429571633713287331482190895045876048255116238415456413672443011366142848972427747289403224616009188310172336780009475102132545884727885260116682174096543012745226674738514342689178970929199521191510901656945332262579972767715502644036101001766880823777893671967211299870013089764493224911252694423481446411361849233805504503882065376612494028334389614918354602668144848724361307267193468652529533000065056215130377974071121312148883208815447690662479537154293313370837249088553005275513066104657839425269526468069265792693840935648611256284242445070547781075918455768609282567290955616165802621899869932734979270234261217727513747145587793324827959831282867551584053613742022591447590074238288190045539343571471871780932771616326029491765799789023943325212002148943910919120160051249452045580818352666931231102924656873186842579084781542790151856901128203938632261769208537927958183926412728897086394158365247494958206899226506974112012958352169903274285301523569561783125120521842672373546550959744225275065398307661461390255710165348212767883652120775432240278884141369001932675798069957003828751288891747450869657575943301529632102129521236955501959783696096446004181108127435626862636366745882169072562425139539525841530972480141532828792514361389434551989905545200228299880973701691429686974605145968819780155623992517372341345392145775265103742318007182342689960072459206279797963943487637642995070306202760944093938205966075155156277857460637817426672912396709321904935219609368697211925607467068527597377706830644377570574785580737194436261253132493929523403107466097045166138021047961202861899149322559010054009075453046364775981313627108954278224513927006084580712157058059596950565847944581645751902034799400630191493796117438074427678162822029683750259544413927318533275487989706318919377430804320047248789523036677971249016748622770913136841912346637342433547800785099324686153892928233772909423714499360036525195123653893192102556077969375778144874920724009761694785953447822211381249105890780395796937790451297983593198512959784778813494210482482413567361612298674434489604700718823694699328294661324021972842809505073189432507666650014056820596156995793805344229461384904704729554547639580723223500052031090845849683032961833705034041245171006738834010717624620527605183542554209319492348570098893423015452439600973188271793455653178896019019158532562525257059357653910214027623704851313057593987974430874726918141118274244447529896969444162812195536513254043873085756889162403984972368098674537130990515689874935902861937052668701008597180976723968222246057700367220275860024320218145376503742637032575043362398893039990263793540277380488053437351583348228144354005978365736374945091074155933170350178579252101366135954669579025595925621905415924077586102700092151141120325056301683211147701682852636582599444191276951975199973105843090180611738067766993339187589573479430981839921176096889001362326982482348417025666743528509952617191834168894050350156113949001020402206742059352880058323941810240818629523215988971511494553607279332481679499279758466300220999164636376448186842530013982294538576617980280521192785606480963798958924557154219397442481970586708257473086310340259211703238007696423431570915427235187487853534164399548065766650925855077348131626018823476996251082282535353352676601564952787335664376183113507261884526615006752308313689076207342328239712129693185137232442429533670752660497844713647207993592382388187051411382960098092567993832257075830718713036683841809178595697610982036383679181753344683441865290570820872133476672894522848138251641122484919771114642858479198883940719838741238457760447342832069599565023330595232805667749486846004690283004185047157992161790254647182230841858024800744855203320296231041425902782812491828897274160825941287171123640105852129807639224547024254366351692531693931320034038296291894472409392627371100934987694612333577334241521569437869506030105144217145210592124505086442932425612709516226365214711764176890406202107599739498944314591332783378488111754745146853081947957173515962076097535839137646554360997023547372107676447838088364641817044684636133957304961374515406916114250874228026442867870428715445323811292717375755147793123889583284613177536036565978523546964014202225415253122763256245838487264947943247541963113013810656090434656850907867692785007262183312492001449661732145716719160723184566521696634540251026081414690690515813260944369548057363598434119471946794531251743468552683255758915358808326093673091088107633325625698483645406787599606194782990044266245558054220389494793055569337930771352395657755320620535665664771463892662279193893164927739254831496457950307749689891306691043226727089258020420084961509490353565291907505505400885361705976114608186146753547422994073753551894598756390381482293392802463202895254490901158432265430290470490286250970347688569854139969421466455087085669291770365931329768553226032743326304934354826460029173645064655331018899581693794051473841699735696777471186473847117210084574712537805201639841658019416647058960241448291829576885699939444307318424217400299003802151727863526793149412817252371921697618214460488204422688747165018907581069958412447795689402291137979429680223743089073250904320239881332512548281276998029236441439528205925956740796316140661340420899249467461762455499760071736744541378912948740906375732063034235490082553858436556887065734140033301090856238848910266881266701416395439053820425245219484940318518937517979975551196568009832786463564927319108123335194388606613477522190590739778557901480849101226367747824819381410930393198283275445466467172278707449803104955466758894477331542643496403053861896586331414575035951979628929732299984983254153692477124446532784348775707590716881864484550998711386967607750567101576303797613844808346535168692587138032132098762676206448610631658614889485266488677602432776307714023242918835629014837639926859751148431275539283090636369906195523899635986923994004171208672499608733370487786296402501765347422550449759856609753114782869324998834337004900515749560427776389861057727666468821407500955518811156442433773558913434805193661984708152164360240297245855949731333946964955644719457262345004742988390747294006481492980669450738206077223388020955614693113772080258824270754850479343487448388079541251224208502252364974420722601403820249035062538341488187202590349532377151056279744941502720676326327793548147579184884676980585219015972245661426028163854094315445725177592070325680876307400416400561920574299609910329844941185813162545096069233494798076180123020372714004206235074275176812540705450120892211251053750281725530896620704390566930373922417226814472622384194864811658568771511564957994046527254139378735356156815310158271953916496396490863292853911017839567842100484516198659693036839779106005996227181296890568895876787969064583793918115652410654036263937929943215138049889745517795869289124476890086783191556647015726663712401645514549727794640772550546392236420469498169742176205935969367838281306620197377394886568193163911146753166720927477851170666157564572540057031695535855739419541833009772227601768989269683167736998617020073490448206160367060820364805115090817544217158059671667038269436570311171661496541966013110649611441657663028543679723612402695942330939295020721602260919516425945149677695363816912282424514473653479079212523999301554402823468872693465720489653433540611625314977662038330426734984160238040793262825100617982249128361449335227755387466431962256681757277127633051878916202831625073486978066037767500985115568353787527863313021942150917194934463821656061107500298374613761022945649670955187952264907736546659739746688053578023688178705649895562878168167092947862548943956810229392124507399933054644410854141101617323689686926395314227348221388920533911748082324668666606296225213712242577555955728264889795701786878134282066635781981596549712272456727212383544850111421447864599823582330996215831525638247164714077892237507177110649758013772718201209354906655303481784865357563221838052673015915384156542220146668746843516686709605746144790562330092470953238418328508902280238186435654589229496537615983468779955559253089724515826896255025993319762778806690096239147626635148897142196298572118301017602438310437694961265052370450074105565659221246500200529609503364406325776689120168915503379487474902168190223058754472347071046612685006926712495848306809164710437481729657363826396432332445134183184359714364223350337083154586559033799703618833283386961708226052128002575904870850620922897335840166501515590257410576653763651154148015682330112963277627157500876278768327853310570922499440753317615098344821932128374425355580087037317579634341062239481895124333197096284597231709472567594720394306500994022546571959957227991619160525259950750081557494906016449688497655779232488004503832695143710285174833804680946281270581132791845184424293903905289443643058077842982085222828415403443877808828420566528256676233673965482740843580308008932241906650239468929772906128294366297206240566667986187797002717209812706370452276994184737838431806958216326933175255168923756695946201567558440344383600275272011523935450258673849806323173350030328580427318311881184371822981858087936593100292388278497075793685781044338515398554578512422561646763693669622494851801464733793026858964701753761433483151671209569556442898865386304552758546299929672272239606469355643667487175847785359281027622175730561175396871877097601537558077789310112417223731760774870911840148752177804188394803437704365156539763731339636090109684052737022831237309321654586712622514699251654520873189332088233852291559100148932690087536480802235781199695870805657912068442434809165688336069815270037734348039549513254575352999802667493965006352306730311511756810622755278722495032451201177514538315809088832286685111021005860462779746243143792987261677439154120001646339465179060824037481582832835202847841782674126149864456068659705232514827635696861006121275589689313974751263592670281062674921936410143453571641795798615242004290561564704722152026195039764674844163429827368210637619688198807044817497045346730383034029070179878653930834511950392308040193989523680313207797693932525886309303089487808541315264648586403552780925168437103648373070101982653277248383749915120391579447005701565440363324856389032431392386065549102154022963420920161799477830526034128066592370464755602423073125060695179924286766876121815688604688290832780932051559136573724169892709121059158540483779256721472281523069949263841719631929587204124081668829539343681621372638044231322617806047364716848380006625060671196998971801318555102856750368762566151756921773793879207667657709844532333070902259242388787662575755921243916122502756354270815214219156612472060868816511053867120732164068259698576503665052886769314479004748778843355648055972154614092154194527426437227542671573925967915844234833679305477024634048495349466979867827935509832218872492010944358287928226764269650307276758150080927955584496421693349260534684031301514796067780013417338164035244888434018111276100537853656204426660957578855975184737119970926898171707513313413832965639189588972816964412067117753398233645930813337308285048776081305501151133280121249074653107215511246194674582666948972674679342309168180396436515066068959977639489992312476193108852635160610645500048042038569638131972220887869693068092064767139433621042250992697433315678219005961088809357882283532989599634297050174387342149891976397990553616749294569449859010060410750317049477897732952733826535959329947797145806924775109940792705254699966852037019326156119469649415001631424274339385742076057009238471254505149739243935160345590287193934131264521066872764023310610793465139011373341710341862586722748659476597200782092543158882051910301304427157483794010441960147855635300326345195631701932613634036010669196623816066071885232209938612734450880253846494436745314609832447720616491498075989137735772750697070255077115685911513921772131488098740254128963665131290984311832925369180414478968810502027997271621761188166419049595447612156706729351672668150124705853251575842027572273967165830693822455752937787360893726649681294881498047584983770078507330437828112157094017384723208768340860619591211028273849712406684313874968606197590562620303847262165030983222031798918378305912305492473160735184283971203824468166707191389138207709268994359136807829870989982869627491935467359218874302345392801551141030064871517047497046696776369454040501707034533950724507951380898934207858841936247225176428896337791286961388166840222652859064258383808002761704250137134867456479456473017493409564225609618207844461109916054181429031356683921174369062104246909092144139847295983572595325455856921652248010628536073684054065477033917235134888143800569121812951002845266417234583835016663661553820671248713073001601274766412802595192648884088153757877353946076502175381028875043322420307971742706537929185614475532175368765017795593335857795542228306755968273891732590176980370027420558537771598448024018349960724743440538151656714801711542275118504793461111043370314969105029398382016045894705959786736104155550381726803113752321242026148811659050254186386597051402495361137536573132557011167257715685844547531901071631991826182180322281299490208273024632834751511375678422742904374320414526730298834393598052121140492927245351034520611451536291876835801965802250509001076388296867109617224231722594714442859455680255028077940349649155804028217923433949823486550340895710894700225850620436505107757560931208109941696368773471657455147857641264358896000980753885775266325315787191610172131896481116290364205725633804356494533006097305237943305709595427641712107082055127932336417857472292400534342744707888883910823397495986479132323767736250397482908506678065092742244391013405438626574892392632118418111565512459277601035657643510493682461797761579930629684231798999498424213693552667823863562028604653505298483191738986437671477004244594061008002192292863250176536156757592942924280991877109262241920164395698025915454372953289731462372122036279205290745279933033698831707898218025719437711704397845998811521134560368708396211161558568788571275072012673730824519359393589148900873594859831864786408597143946432696084498821363981210162909212509255425634454981641945269742225056375199698131450013154205103575948399659240949644651241429904119621011525154614437321522400837219960764966212477858949955221340758360246944250678534028429127643583589407224219683975918685639299002359791244346125628718603680715461424171999487599336460116019917315420562088680403865738938911928299613643841274984684989596982914798296719642856038548972386510457367045781268022468768846068717163833302955893615901268351375830722305139872281707822751076268732306823121147636898375698376372820416997540357391428715988635978303445191785212468637368550602433147114998480114006535964066194942206613438874855569534253636193052589558432886021226308246866905083576823354280858326286056183662676648450753192379132533523664586086966827819609597716535485129989906814280986962632512132800698420680682256607301864218553538393398909854550068066303121746534691217772207182983081047044974759167870096179949692426086880553950441603298981447924180141354150671573879989063099375260230790478442648136952874235884602585883273557767395267177576511353158466725557245040270828193424452438321267986903536621183673164092911360155402550317273971966944871097806203502982155425884603473324579288613151666404220361677961655558983676283803504551652267438145803897511791667780726380556265751499544097912881739034694048220740388463392428120441471475688108211134836222999597270398047482631190943905911085706368530422304178181772858195754661367014071318932277120096267804943844990276034968185323545992246990923885717268571486266511254151285845753983760087549131647836760614503417372347480169563970273473290448821543901354334011129944272174270122525303756545492170155637509282338817296863057961358847370971585422270398556587712578249094366744307397720875936554707661755971618842853310046997323908310235292783770744069096276589162077706234850471374991948881692501239913091503961252967877636808259735357782606047283663314091547984206900520938852820129887291312834663165057888427713856533582465685174162687188785442330428092429171365700553574044635444731974726828687470732132593089476851703530468300019536020214016355028156726755998486500208618913499765679159999288396435531955396386774025666833959059739824252881055066720430297906446727748728967199307184788211580048166420986530081333683670882834173531836658495344782905792906331121292681488859831583524448613166578596880411669994421437390439360714502100764689781513776070977177024358486202829021606629189945307818013733169289209849291853188924774210722524880570082523125885144544571687460213562878385848966904557325173281005372377266245630502502055826191030705118556249247316086001365853469689675483102001767355514054476909677712052802354341892892159268564752069287896124566698734995845769997728793963668352416553608644399156370734128374535852451848069299713809515733751442060913617416172648933706151317441942459885882558456553498939139808337881715233045924363272906410793608903716571541721741792119920316671587857305538914855039058739718923050264206101548536961006103147999052264470546246157140278204334271307056001781027221235652469700217914028604559595058809024259517346803954749409204157555281621832108876106024642698986504035668859313627819032419688486155493304501138912706313308639616279125717716754909830116901940599734180109338617531795040941979835053602917510945642186543923865432867558502899465369087368523745805649076078462348881066541115691890789532670742144802600165265345059059764953267245128591154454275659375308355972518420256862548585352541987371087681058120158784256405793222610213220607317406954822376175948690096463796589681593643793303286377238433892250090868779418286480689069969651255963341696429668541784651288872703861397095929793412019848533834596920460638376963956310797153216377922776345944505134569112366998991960237573124901687846035028988095249265830751106038674913927313149504307640682772212881777941613106876423534480393868514735506223453840308516656076255400480292829149928727185422648833290934755458555248434114346015347139297307981933641632921552660008134373452536603908563198943476183125300616641148514793511072878576184425188738792576850146853844595431329394687671781672746504925751700659984749622164672948205874054632665922683937398594116720650317158793777826783055301524816743528779077952854685155022925419652360363502423247396796096530742152130625654899318542662510953089741303678437337375348607332773058124704558720693399113959369496910591547513004430092746359779385372676317142431903540511115372073754578804627322785640105800405646225348246736199813988318246265160919990752798461987242643586645562125088752132305695428723115554464826571109061681101244722111741718406090146008466950714810593658635821833191350097956475975752416187610506798068694387391345360387866365617954180434277486607505547324852836130465264723517401896742615873012198370413856637894791701835487844173395644491570157431723625150275167984387578747562634938846141086731928775120236489200214789076742433864072309606766960170588953112770024219649108152247532382559663956620046713269406097849435651228062755984137297482488428808271130103610049486752690879007301859210159904007502775172950234581607250881199191480017363894065185572686651947202953260523599845900221541661585781219534130755958827245097131080720074630475726969914323895131545426791144737928820843851673944328578480225231316651053372609054145125578631130604111448425023340654711558878631308757500406795707631341396920271125622629790359118331488634718741557812736360201807767139082594183185977511605307208251837622832818525429045643140975066135891272279451660485951086458520749533369333539193218298841378815119369278038945478083346171018756429707617975352827381898668063410238983321911682969657651432044011196059343209086914032744329209336839414513000219052419583143304799589053161178898070024127552391131301693600958183831350107750639785451935553419053791624857111767791496578460061539845308113745029504878573552041509598586799456767209917566354810843385195142941547812836489885314515027176290892788310040845000900100533222167555635979185449329250060791927304962583680747973837878853918746038107868376142471894715798390740274053872731343757182015150921394444127880868331003042480937025245441983303780970715652822511974821709905075116311631322445032629936994414039627117728355064534848360966061456196324364390716529555161881953488233635686173301193450148130369552522026080856122647700414829274392965827924712032339147299473339123605529423008325977290291461745821315102328719612577267596118301184981600153877598017536224249148412862595334966702421319680983175930240649016577723361721296522532921397739987743875826781222350394987687029523670234314721834684898890845334968804157016058119429805000091809848830903606976075195678344959653476473060284282666456316821527546827405785027074858123850763200317620313754610049125355076422054343959031719801559603912041198370123136184296137037420042792393757493441668229104024043331352023940989229985436956590741013852498424178474268345131287746805065932999250864303466434132649200341612015289759046475964036745781961325018354458300218178492957340246991180224784348458084751589322297942162010293143575770789768731186632516114739186222452110740394308272872838654080058374169787276043387404171327737171133656551980387570903233270905044612455095721263411044603824872198469929985337950465612991407121930571317710751233607592708063693037179502759480858727468529124119012139456374135441777115674339794105853544654914484176507583375350517882843059532918513130814173235247891892398923909230511535105559523148850803831851426819182792243413964507626594699190542987869616848116516896243800860343499345661482707702842840412328519737945372453304977113919519896408219199862365020820963643580108586701813117227401129119937588451560547877555373689381442970252339578305397246508504659365192374864564022273614471396905949216512584966570526668392064342335910752198322772247008101778304078942788091593784127497796419713196940480605855156568297447572459939456293261148334650244560902049825952973537953793626596823655940683292972572053257366183577783422061919704883410413568989694254847326339449091550655454571417106361736833649160250696906656081900069472657711801817891443452745015806069587853025989858605622491468488407225599598831100577427841510046169783620710434778876295604922212730905317601785031994567185904308542137390503249498532566243832912347735437223366467440799657548968113427409537874388612749837545571314954327066585213756503187766352424272341052949058526570978595815852611115359039026370644676833026313070633969660523229080471911187712537824353232394737227829105476072777988535045309871394764497796875630873808278089213585200152234953557454144105336079171714821815639377675858129808138863292893935942035787610609463155190034019176652425546744043543763672360666459753451273291179344159993256812816069254226845608320923954385559663891503717102643707203672370985309087576705378126656493782969737264530991288154365601766123678692643217922689765249635630101692446932132957677361764834748562048815674916506286829023580876093751645715937165410240689856405505916613371533319105643532802221422888789791686284107601356800664395534421912784720882669842397680497865205336603730506280471163427141624216222566500783956639379752743864113404592629161475380830362632773082386193477407558785985597458269912531184728385518244760092084999725275528004717047008207542279001520356281865039730649336549638300418060334855539596645699107471747935546782203924151079703438537400102688267310083389903972871124300016491273975278897570973744522647025798727767754516552107630201094272210283157725309543768369092580938775919178366728464091539635505071698479884204275297349942956060845495852664218034375838659002116689019287837964466634921274865861635926071803984499485507838503182188467100892807100635164605310620670926628847344435363748191383065471091466894279696357438498013851968218667037702520033291534783646424686879954692978905909071997207503312656092073587571075556144642809036141681929601017521169914330920636585710686298068979575560938313161444792898400787101889589133929972683453191624837536043178466103925131646185177836274439138435356112083458084280846209576394593182026489727329388092913425124164096371232753233986821832466142160915976833247065416957367883211387514862023025417333105656123064883515540944187098626244556421284709577307517469198554681099060175903286586663593166320260531376965063151888430927338661992729671563290653983886422921514867000085958922362409160127266113211300530912900634709267607918426107684622300902498683242246413148258962222261851589446083653682706417725776758709011653480274752755442584888506171205661581805126786931272245318071586974615732678121702282604583032318874426964920327523932687677926407164860242378359446420719745407203366719527402419658960585225214539913047458141956805399112551954882981152232455550864698660756731519631717096144147212061890744248964347834747176537411801650600148387645315412950049697901789630241213236396468388976670438787234288094734208687078615397857015255876619427773094030508066061375198588234774987202341763818453361400110185255737609234198412580207099990318522417900667523511497884835565271715195171900073900198705143229523031212371535323596117911039271595710754562889073401730047780824413805905616670224243245183033382497577438286378425241299356325521850901761119237387390464123824719919313906275315379868983479401142826766724490062580633621823845195197111656057003736291172794194768723077565080141987462982170925368545557459707769505657153276868179751893469955520266917144142870854094748941115937706806142976279882611586677846259811933789627117247206508086840546963927447052925520136119778911011972778588924184221501262071603660957427738364561424846005094729150720120400608406292926757114208012129464063692389419445532799398650072714762643966785929035602089617034223882469530466446178757508574669098262590061519266773881180697353374075057522992834300540016956989064942393128083713922406504017513959191807662029538739373801532571595022168606425543520465803221638758614859463652574290006749396736694589533505281846106836364858028387631377043258988464992947000751749523386910306446919114058846158160596005160172565430583403258885205674551366854576048358905695535688173606467299309247222884232646563527769745440174373373214355314627827044713072142335428136195683075163331394996668662916561323948987791437692843797880474195503156167064479026883910271566379462534975187885033243663803341006850750188014838542720033274566317974520178929198684310753542390558985108274362092069508780105909968132044228764267837751257577273499351431318272863724527417467863622205672286366011052366283917751987040071302440291221416201567919652102270335660587290846472157356434579227318732301796820114906340782079158821440438089558168884318299531459233881034941860233029139994352079712459974417081871180486431646710372387657782243799000495533277825561153440123539384346493900369951963013900229024666709889989767208138931701511376436461730120275578218123967438345707577537112734033383446265962317605727807533965609103837055056278610663688575781624518468808432056759212765275780889509735496644595335442792625892259156028683245205484656294689235001303375780965632613203284873419142190595547437612550979935672743277108266767653237386806342488587997870248244084298917089112662229482976517342440756737431163185367205358684871305033301240499463341200472808379219983822379750301174768800434140563218457607966365052951349452159861552658566568305264204344909413457571100969849323572207301266158398578205986974523243001175768337895075335134840783972313964246405079372952786707471291494243911160109164634885310340223919591128604670130964041784771324645605012438239506474437390473832908156081025726491484307301839134587844501892173487945273070942331750988605914963626568453747300993740930141523369337843682550395974187151902229405283346373546952638653316562025841254410266665696357040659129115366856846007320107971904860252647441122764933012091175606398916454569028073427497479560578505130484753166560947016665325098536354742116493722990319122464732975273890198535085773744382309398033390201187364491779219398973354879144459706601719298657110410630602504091975285729814555070678847353418103246755497796976928395832757701187046794855238946812457310083210758300171968640204148967011528377176026190181033546296330592481282170717304569336629802504104931656092006196688268981171688463224449790373859331912291843929317014402829776247139747458108822139498112143075510360713937648220120710811361172152355815711376946462264960899474157572499761342244721680728868794400121738424733715909749820108414167579074562421042569609388230812055233542842114091368530129372157910024810112221456454019928765858172126815958642665392117166575505067607281923100261655510182117771783525361922546267024040030194940750375484319685405615334393557856879461505137142360845724989733971710961090731480927169168263358776531755668694647748999366300110347556149259259297081888938952090146280806063528950170803583330233645101608833913046853529090661656639794636963133748286955378905340064978112312675906615606751987761145270152031125918270257958649779021112139666112004630459758147833914534961579197927150976951986261924783107286154432452983282816416406212869702490478926040385697684936390938005635576825279387329973254237152981510079162954625692368174098626240577667193356746036618683320989045305178058720660884838322711764484976180556007871041351431635474595370468586822952589933213258247037213549054900721221536476360677149576500708463922094090038877506093324905156804295531634685202091633307053879952725464721541480412245740597078172598176391063223923195201677389121581023523715578486066521208897196085765736677303912173798898052747940695792694420784228606347465192578193889273902594109812183582137677721364929648493118129018469143558019209292159520487876689355007728061289530647233522512557572406865538971973681301154570581436741821531995751601764933908597532177069200141218742135776064316884858592532655116984667461021779058559741608870718055267015322744985492744594677121101563418996354189076590782858060027011600882473819958751697924195209601004191076473829267484840262619641245558298110671220184720123008158420604641927524719398071048885966189815024322452486613601605795965138670709829044791384507856146948649701953447212151226950562677070202560352057961640234723305648477236938283148572353925178035023896815340066308171962888936606603053009247187085479468084355566520076952901701910847165383666845365324482757617260229636584895416521862327882698308361690749546345150144506444311518806304679571520706208895500723860409249124596721126264635426244878959944249761021650128913760212663730505442186305445045375487371897925465011646617559190021243000154001356063949285084705452387077249555223721687818409959695312244188841369855621217091639364567130953715170414078514491062501166868585246663946807970683785144907917959273223555293932785237529822849960781299247000760010951885457117402634829103299464953816517069209612921978083905351234566078098528275913909833934367130002432309270078822792931655625212367887528739820369624053571449826424501644410217945228127654762202703038883820414037141975226513101000802788873675609973515527078774521975904827752358581925435520303040043128331155700617030798037562777036728281622576574379316707042787775361509223668096266881572855175768411595045611666266332181374290727144369381627572860663741888617474695629782787514910579814275717404683389771083738094561056776392060668309864414071082325490966600228202638075009608972313673671091651636496844906943799866361934825965281851582873133868178716078143139081857241814395839661079302315465532086083089371633190509210384756159892879379996258200388514164376225906320181511168839733622697068119148608918253505352781610604115023677953694491707154167203545665122312477584790194656587465823383836047822265017105318491251529650128591378700320912196753784675788267826867042268969793726596930382710610938518849135100281956697604526173940466439245653585020831016681887235500669424434003581521885475344454540323856363880549593439995438589973923202302386190997875600954426197081227903299007405443777698763307025684312278512576571313702470065990249657039729127206580384513435873294293747244472782321401667079220013004602044897756737719601924886146913941248849285442632101221526479648865492419945473031693443424780960994552348995920761327485340867505999201823700815493348034650711436802042790257182079074669542213785918357432604418569842911412888212682542067602206350034274977089980197495575289540787829598919263749735323133647223275160993680454253189366561316187023179199118858463517068834603184455731128002612234675930931240095482176580717429204917142109791521248730324734221808236237056811529777875197167045784086277524739263147306728586989616953756904647670651100997501287030280812024651364900148227263091396805886368886303247432727453832536755618723718300313023772301281964232190378171017642883831960008785684884862467779191699472224742283105495797098121711254128305488047723865039000147475346298790740752188590249430895808006355965892059645490250987525263206181382482343668662575923798358553869153941605538246695058031035969648839922453640637532921701247810759763266386024664047069150120633177689620451793547154333219786130443298765680456679781921712252449612545445286222010767231260086409608159265590801330887287650172671045921808340617411535441517826988108641257682308477477314513632786404642073739511564282302426153724117519109712833395740944206488320325702105680119666297967833300203156961767706162065163646579716037705941918148138011963198830592312875264251045852618439137030028166324220500742896479439861059833601971742641173763121788185365381839982569126886317049296034713135554033242869602062811237339300368131161318443673407321611772684102847973064856375298685618609814365412433816358312477269404374579389496548874133770701908751442967139734195956923995253121767119997736995282554749926999060087900687474018326364848391868262409531775967420479586379863511978550402564681254303519709587856035113249912788691647324925299875482798233998426858855681342113525197440265367099915054337228847806678400451185612386762895782050276426922351369651004856532864948260394404502456679516624529044671981397405301496139517346581490448448345540139820131974554383292608582437723731374372944126087627718346186490462120357933315075753881491758790258489701322688546653729781097439849556944432161948979764255322307572615371390930437637059423073578824291087038404207292761323722802395501864495831063901125615062853477039944586329559168913663131293639141488382713262462977016003126175493699586120514700928613912919227652101043596888879215421875423962075661068402166631324343313071019620848175753353125232814703240803929431617593192830009746050948239235209765573800460463549560568215290242132494088229226074374849337349204838360669173543588916025816924092455524496718586099556477090062388267725092134012763837657576146742132529417690408175152397643191750307927522910796139106459367641845615406887153359552593833322502968493619413362202313039872259958941452299530129903909748835230891907869803876099049500873414753136697590071902050463413053079952565837713397392248552932718136275089481391736682380691210542848731825522931980937262801135696769312906579799405172086738037669915914790249826961433690356313734694520405703628540763453107290149825544829336840678825451901295088539777416632146968791912669897353687490402311391358020943102015256856735302946830057036096576716212796226043857730360354704262072849644566819060782457570846436460366155558935219074836030406330675735656411842029122894990591381643466025047243454265866035803323018813637372464250385574260639777109068344710083223537966257678597410532800545337829182855410525223412894529791767163795097611719487053565782588779591985682271783794783207560185523094453702353592221492184358121775478562824921245349128107020227341330455573836743218425791100433629837835170508492633265484527805615225314496777994431141670781605026932362719292240878334952391522328319919421528231293946577028061158015499316485300280926389591864293196529030588496049900060579750571596436472074369809944169645260572043630408354244328007227244115134515672201067435458561805945003658176195317850047441460109360624759603164506203357388978849450224197187490300583217369186510923950850506169449907538508149523327336265922460433042736672301545378986255787349089474912283163046016268571926371850876437551538816084035639840634630562050732718839002446996387330117343201400027398307448058628287377071022730611923090721792259418114534207419025932141495702368648232070505884653950904083531138468980928644065414493974068207873282103231131149828824769822484800928587428756743440733700800556081008815230096309534475596217636409757517102516161067770715681833409616630489646245180593044681071051148997961193595614220282143262223524394001006871914353391707466629136169554274870347139013552101970480157352271520496184723737995353665614261711774701929626503179026768406072079264472423422143677984952097783733632472948552830221514871558474630640148885494794987754489697523570210464980559154964663661873271365117360362235722054606464663648699676313010395087962502093287195251117588082108470847556498146631690029537812307167731549763376124527148502268506397885799505330796159886698105551103788131702996377804647300952237820928764495485685242590146585121217674657859915828057397112857193911580003895969180205865008293533559943561057827238488881383052606637104317537042107855633482160180353226409163991061199502250347261323252164349088445911165950803626026509551146915369937485559180697607127780462315875045219969625906104318487494539219875774294167422952277872874482184427284694670695013278293108299878326283217367421225148251905445491762691802994628352765173182534830551338782629636231499398388126453339342929214026524348271738408813115391344338932455818585268598281585147246028249179045555897064092219868281040271046834419899529032582906279857090829811011204428383179476404374740220564350619986110765393247073504477276040637116558228091275039259045762330283701989315624606833611683205665006666529020810176886571474344679330158105687869371808293675711892425579476297500916035814866114791935417000173705166877278818115229144409933841585721419285095325383335403481754324575994037100165707532628560322554237377592613578063809631793385405641131464278061444606116177416302426781148790839390771292208126361112921440018673768599582720334093184679692688862767415000892147379873236695052102513314676261102514823888835467707292446010967286023004178189309808584172652542721845141646980029634291921716921847170304365043799210222061624690346614280513191516246763790806874723770652433175870260212524595408958037873687760114528365365462978738853596330746033241192300018936310301339071126920333417037644363140152921523880477899005024992399597686027155394499705281699701965909894433709946747773317923063742644949734576946342740735864028536956674186297695047390938496657895442599790707566371826030201306058350344104607436747488377048294101202123964112779281158034792348769605310877777483395679225551336180507322916219085933803854735031247520214362886723488715781235114128772354709056734239864364048536842557391902239896772679807746042025463908807834159265078617650712146092042141806842770097554684629216598500730777345686419672467714631009143482379745236922742468090863670353196273138414227386846793939753760058751006432242874969313963148736510702450152733742104667413991915547245666919369680748866455936527043765641529128216791385563387654606928348242997233809884398488227883891562038825110930137046805767574742795601326859089118831997343383304781577989022617134332252523482669431249710877895519885714542537477558869427701906892234755204959191172430637646136942690807185836141451567723916281712458288614405834094823598044189263746231217091671325376399142823323932652240775438636991358213233325384792067126186125914509945426103181281081230214533579467876978834775042426325588941682216232212597388243921947844265789590019424641947000298597542805245993572668185430616364792656218211735364715503599292361878712089375652001973295966228390573723155746090993342044559323123029568634744709733028617293384647605750499342771696824214839628992809619036956975413250029741136599029866649774845135730444833775392659711815282772271230773864107810538481667553959040456404363722372246605461101922371254669432208499719960482295517145865911784728312738187233315405077112634963245327802401797424999790779431499541658845842879588243525259889594589009022059854849603877556752800607125610165176273054930843688519383156127639588839449014959895774091013335507767832168433490588277049072585979097400151109872451249811425984852256273627803412918201225321937511794496428851094715521901059901726630575474518194355886695770294703884307584180956231774105796016738206670040148790709001738899688212332359352176611569024357122750729741201945829426492799614037137115787108759073796032990885163309498879533262970287889332085622559610484915036909265475503097635714467898269896560795812672082318263789991742547638132516364953794483302054155805601112470538183072400872047121060019416881708635355899886256823793698871295824550556025422196549808940928974117671803823849563358028588721279838087761880886392635313562364502059194854960826612593538553136932199627302376644317099998433915289562657809773541265578175701529195733515816857757411401290759119217492534990945987473281631676828884896662561348810182846494626321988387873833508221135467729348992809104394567751318036096891554804555783329432608172540063256934149986737390242936763891491416798839446122408137526446999114530920292004996563724639535971488313673908709684888030371310689170513136949747075727762409360319956332191020507259817896991167112444576662953561103650567079482684081226819888230124861689216774445679764438627300765363385236808912446527426469043385258304065766481814087353444070794671478818736277103389342239973488082527420437887790651760968106563502009988855988617947830680917954649162497107293078707272870580203855724725407029403117032776719555715001557455222130055429649374200799711627120907283807001958373237949740833554411424291572287270998455166679663979828475102790340013656767362473012157419010820201030768685286065428644729723203003542441874650939995801617608475491033851128784568283277934737527229388421447555771479982483725314806847274179973934065292483623058165961933311138734451050066744565389929282994790406943691928184542604464345511076056908165798450107410626993756205811273509452158689108188981202871078234319476573140604029827460707096783911343045451603302087800722106611069974313838430815092971601421946066706838553448261710782585172330946283274722804325233776851905808605547267760144055383428084757328666656230527184508346394536708353053717886145381484102345744966975219171714799244569012189099924297771851388563572617548030503563830692952321361090450586105607319468292651905882111604523987888241446203829329028920090831567405308900535569022418727652594086018372692620066050048839463395699474503095124171040556138780443166448540407287744673478738203365377677468606977612264017214998158304494916838606642629026853036122701591109722524404502312213254356805615852615758789273986280802988849910651510803483034561914774482470887456162257537633147982721620853826769432341796128478436409329564372937819489573353107358567855412375361092664711200304401048345426909029573911575663581945720860949757413880879059806593193203905665048121025747174307380043268180292075434169820921300149653042327190928498310481827309437516445727879692117671777264529774419995616730899700183433166860582003185245849965057741681731860735102510776139013761533940362731296175641414807575874930156024956317505602813692458505393743396258793580900916962717148654055159033555504986179630563726599652302111755224807309167169775354438216999320819336279666936233485711956229531137589614480119560330022329331955501883029635022920981194570760464440204799223027097399432546426389125223176669975392710144057826794048951445184961971928777717779454109478422977376153559782597641983492928447549705334299996682152399723921939859257696116584310969757703622861281966834770636421308548767055459511067954393951309328303088822917138975486931279694045552745788037180893610270968392416917187843406062217012920757628555230853328023809806906800366806856951846578019080056187807193887635865821051657858543769844009742228122060024747408626899383333048371465761064383701007515086412739253063892948745433490769682674940376895538648151217740737773456214301232946179835808035851602456410638200078831594413570516339682231197198892314845338326122015659039847290878744528702917817949423397668738468852344940775691151732138435955100728650223056238907392347633140445506436662516507162938038772164286870534987413058184408860940186123665820287878849758068999429025695351801262493155184267471668290710558057253870555219310628959804990015640251874028271017829119232402446677602864048930305828081431954739108059918181924031656448787543548467704628136671214067193847813890036483933169641252453243095170128826034884942016837580211471940901799457624011872741725749409020707754877826512354586115218650332598506995505108678269564707136504094465459179609608775298988718311874865768028439515044540154411059919048600680848429214069408442255284238109023530647278815899552432317460448606708347411053451629512054068921182143658631100370613234910566694098340132394166174042206553105497022476708823914535772138931718195519946115681644345110770550475172233742276615938133110318403186993834522256949080476577999316903805222273621918912046429178263443311172499989875861445431898715801874930909843472151696945706001668350903842412728662978231479415969843053295026403105965231842183929715804666737837170916116012523563205923879530686284717889183887251542774105457865344976660730327001945543781323247115855128294508718883845038035156606986331638226244324112699593733626896170544643776613448937721149393586545721993728456418945754827586252057157597133346118705040285441684261762002458592398569305603115679243531209990669953885939708319393935064349097694715580330713045257707000227632602059353129494591972108690853917217332086147346692589298158505005659445890437030551072017913293315337008931417092957162663587169234165394743211343225186911587983891268040694325528873109894502401445631205281612615566373257818157425155799612423841880849310338340135254374092972182961794517334670098457658908298404748814114901911604194939283491155229360535286537092287303373640309041102023747883389950882762796834586267756212973925791038088877251137000827310021947914485118906772227535298944127773780369051695060124571860221695212119205251473424773717602155540502318586421950581455283877176486495493561784890783731367954269280749892887830055833291807203116836858859527610353606818039807683359014743126530269540612678935482586477018328083220317626160123935266365815989287062485806075409641242189264390480554116690777687076932320214342570928675040187494396992631606572123218261134276033072325485040368482947005378416662621211263187325589490531617876240939382822017606322122560497194702160984006246322949294256975582086180403202264665422330497037444049267497814797296013145265722169081451370692539941046009986277728846999927895759775359077733175029363550070098740687574098949701281366025694502016657110942075467974532491002814034821262308940296009233534766771286089590962206538159515789528719849996064337713571324246047533804004111683582729777543526232298452371710892137729898482993932020572380935115350852051520529113124698947759987163012839703361932771208516713820291040005418860644446205988273215471725319127793558062415159138781034727813157319453686190499946259069869949197434468113860701335180820768507148408069708597546906439951409848384989832796727323610925881224910395123119954619907791999363599392177957582375658989945369871496668612763653803541984734773222287231064379168831132862764500325590369976878463304489507178816852567137681559975977135594874599609238378339456371043511899990054091522452217400933681779051754449546658002715198931345508108180199503159901597701637403316673963707057793481518829092231403290098618147783656070437788205717679018946542043426500881161665991696090010835806201590343531182457602502419983318148246882954758269129606446375576150635462518040056679532442302057875320555828586891946955234321792541573798905316547706941938033438342218883045092499583615492990400406997327131130356392681699963740715850920466420660024582973798806933338446636236327692044022145730379554749247716487953692440121940969755144245335394956391849284458797027747010263177240797631667733000108748112893441720371473712151461172692289784319102138094111546903184061398513806862526198059423765549034952636679364949159324547684611212463292900540083138391478957139369096412875106727666566863789224880186903053775181448162828283157813045453756118890412048529829700388613751993653191315730899255832733752550982647400920447206804663178222719849811836264589094941978488922438267759410067841691132286428937949772477873012352574851077597860160767571387110226673958060088053688948359904826703320455140780088888405832293377147576182984686099678584601063805317858423953366931220230582361228064974933460530581656553324116068842240442254367994617252621846308796252893279284325409066748818810316816004491039785214352999806692053666200037850147677029262483323950754104054400114043187122454930669626953900491416263614847310421925286905954391930217289489566905389352495221635458816782226485123281363888251226646755526961438183401706297408107792779144414501750179329378715238248097541597329870090748958357245850855741780437670718735231687524016806493197868818094671063646373391968809671623272239172096544629501107251195528472997002879632948480992855780560836907683689358152605653183543346890086040367805463137336062830529181109887540434876948490936561891684513626368965808742249729741196528662343503912224080175181944655008055933608444828684465166571119750716813803555061673339711560175313564248835874722333931485443566034681775641111317968921997930032646244673504183168535013814985426475563915581392676894810981019527906580482684375085094321126050257728102532388114011968342020164355101276974026376677123930459322760935273375640441593850222349195281696047448877565717643624286648044372487339561891527863929597652257058468435416632184057202592494365706484530039790676686555979109814070739104335961209401967504873153198510468414485659172450537392947302249033746744894598889361480880765337063624139715637945628996318797276535775222326350194037518598726502150888686390623521348342988520494339723994224763777011494465554147339000368069972695018918869315387007586856718073223225133530926292700319214046461993594496622598427226409245682533603655742664344342868475669263183183112785837389037841624586827721543600586403561742033593866435886113469327353383382709513439071813317974252289956371567401104877765117000684756673541937472552504429319584651783109881194790203801885442795251320034073353625372484444881838831212855103052626700480368605209050377363651186806257725626575758948410920623630785074999393957572938041839497174904795583914789931922719375121348122571588621973236166587870682247997501331296094763835507021282147442416352324162594065836512103320905621822331498885272622928356559236519202134031183415287174552534732193075646833194403863525468783834661282080055060233274954581166430782466049637492453601332206106818744814820385137521833614309861733566150933543965602577439317696377679541189562952526311906515287782347126670201650313267843670279211173758913272800996064075793494993310833641406027374364383974216501710758454994449053639974860659973553507152657659545238831348145060416309938217373277111470144832173175540286139361252032551373536049213169162160739278860395857155001676678969979384324395424032828985216593301846845605380146325104848898131637158242056381242807661565952039197005832457494142890708446828687782826948267644215051195019273918423394132473619097979190657380771692390890696231740892438276070415725100618878972413516872325808300204682643533038089587305780798442389177820925512607230774161393134132240273975098769436220665245543052764246076503589377764758763622913882712453448446835200441598509001668640720953232317549426618398713476159303432880464780437888707513882323361638765623566875505700483107977860427254916302701907737486832310788554143123704008759173732092672710736347614733644696179331007812531035860852197274482864276989140740911829650089338031411451490840248262408185121301921830058399943759291659134182706077958686938622639872609775986180494229273628857619852474159619666597435178237996222759184342176297365127236225158463860029743752227042735833157973155735931645305130336526128466362558731729188658266749828834270243268569215053000077720025116574030013206154928673026787598134555015275731413029582874598176736309148202557905700494710262057182226072169453234889052001636059142918103845089334734078636087548960817993165856714142276224131672131316759718629776320191323912662844926229621743226430227545227161341446431108077698416454771145746937193227992715924416984744940938756883835126086938791389023122617662382860235272371787816622173170227057262054716937432221356981129170735596441725601042136107939222315047571269015119840252048155140092310712994309283014212647038199753343076743093614259670304398082129347240760940338912489517854991609010476724251361261547583116905693050590250622729504508544847213693064271875659904862105462978124287254030861917740076348965838317997174295608945722643652603425541756309120825697517064803120574227694541724727501766737990910890093760402964233834271030811526122601511892076957236913221344252289515759296038924476302872107955647627867031185463432708612187868965284118561527001871654056838404296419528905127169110360602063235790660680243476416104556558298499071645131403603835735640217591203643257589870082853834344477162902054594988047532215159922876716171996139080064963864806219987988154619445153811289138838112349967843419581493116736030519671970764015360438685575023352461716728501356689777044834302439526418677005573421136040703263038824880038797002900260832069798719294333421619870815538734708377005936813520168395611895936515187662327603292436803108482483422336089956791130416705824714247389211380819284826635256956817748529668531240855168795728707114897208793710503471708950917478425318778187940230887778522770429108487080411714321167788258689400032090999249747023633355352595594125256328928433024271631205667037960798703720088276078801028214731812009381229624026872058938019248773144251090378478789881519765867322307590739915272830085929826607180563668543256659621358832932502986571425964837889361901402533876145271312616623550680428689147242905725890290801296617542334562602383746685705010177099384000282981508108753786439750221573431864095278399298892565452517715791596269161394423097764840385365837883366727605973201496975270013957670456688190005764087229446946400875710085064246294187794377311809149815949506953383018711640464883853883962397489594291722037105786548147124558813267572008901072249732945732281492910594988848283135727793721389244910247956461603078320627863860776868673331849611733850243093588553415715737706418958081317189252148427720185560183819234132500693669203479053167544094653915449738474499652072559819976005522545132889077684055398866625037517411888646277389213742505048225802190358907645579493643667275459103180122408973042971832622346947096758315657779202696198272032616690291484995733889925468406636837548206918673563628519392551618373632040103282058710526123368705472267169522659052290698841980095344270653825602891492128968926641405023758954597571734160932324449861222462212246877324601918874814190054629197628569628838420885724950641329291975792766996210511971793841692255053460103528849579006369522750078894531430651331923137220292869865242097813103053190437411654296159821775215088749249180805786939059165805481929011204453687360770494155878514925328894289658564999229499595289950390909310133863009136626573884376246789123939743183638240823728404812347087263541649102108737685940969031920199607278453444792645388174902649204881098523602518582229209548401163685159035361105321131730292502054692462548289428572585058108176714202796242494366087012889619064625961372437011651398149006440717036906508211588460431320553144071159054005863542897570966611447669979473863072514437352455029944279360433264671680865638697462196663886070361071160092691388730403533879584999242166034742284020612589396696726842097799076812399779110659752396061310604801433041538330626060636740331572391868194569751808470609500575582196505109204307182349895716833375487044632276442887119643869950220351471525438197938658568760122690345951545554167765584627463261223838749417075234727208857265878511661237801006374084722340271104500160533812108872182093782729857366938001580314348586526589594778243479424774150880371371772810269805730104259470043774943123459125869210859803668580566581153171976472637349578026096838007530240498099842668580228966168285207398214674799479920425155180736686734468456712850707884802677949999534967779373031884919892192647813629121878186360047437351910155913633169834406151320144394572796987404878947001087532338269793111799556479067685111840893077610850853419286957011135867313643819906936659236455251008701774040723566534299984846822349602432645595687655405071857605019621148269939777791870508754196488933780235066065759720527992838559872343765463695884469598050009472968568873641622945553180135181841159989642289226904968379321782126410055447054444515663556966911625188073442102374268674854757965159310118329482631256226433219647799199064311199601492322920647858711978609177633847023608528873940429235504735259241731759639964069938820902596856792364576056137165292087164527540920289556619939930141435793193703799798422282667640184857425881027664781474965392828076487780317707016878413642080359032884437568525697285055247204640958815277715052132603237777606140294513390085899617198115693418440533292265411432660568293925341486462488753462823859385448337127588459293892406611135604904772673748311791896291317318832598045615680679453450276565184557772555516258042073638220934579484305147629412816020144585961163220259151066754231692657600352050723432408747515218121504758612973650689595269298651479431089872604226617259160975952926264741343092814322851867130367610200858315168716115097133583518630544757388783952265513062769915103984674026205806436242917618994360148319984924057141846431149562350614938370720874471014568766840687231653343452124454376941842978248763788688882796938262759311785690208806951129327065268154947929569074228468351924276732694742188255923042719974012152830135853250352300841589713919336480037305543328321518661369974105553692344274046658087510667574216912782104261727897459279719670374247142075910406657229341687801597816622112663360330360354616332183651459451118875385573312667064841107989053568333434170954815481265811310219082091191560217539891561220418801692885227961674615199149309336889555210007414954416506161740333605965217135837966650459031816244368121148779962233190390588235082630971066284945533864503854092780181661803913477456915542109239075322791779280542323064092645601028626479612882971584647343269767668754048613523703543373630112639202346266668801189697504510129673544588911457829015967803196168900761585904696364899657038742125868767791074334518948996980216074911107528108324627348734615750969990806319673661368665577797466096714159293702252899722208579010420838165848766996830636686519683268718751523872233492560737998467133265135735088310497777264651678206245806579232878017821036870337831749873797141116339358691438079208422558221605027276079451185162540775011114297289235194438507863272049587377965426199850352519559925217268865939593880732697997939200677917751143692693590398565457311368769614142473521627874507590685122951988715540140108648483178110666882124223334733276157319310643214761153050796917614811046297264756255571768575639953416723475134675475010430567568926204244160881030574220834160814442080546043720484361847401381410667358713256292419743397021634907864080752062322481687960445200595947196921896529909158766236311523753777335682221766071526828030633842315069576908894837409495767694329815598171192490173952704390561073574793716201936197960626055125571601277492006856146178219303047073575184449311918516436164785780087619411757680170481931629301155775863035797725366652455376978655540276486648782067236166945994742659725010018774986641748355132319511519810356294512121629084529103297125229001191943803375680630587570946096676808990989807770729262025154580112299480743846217367863967701681465619767056793256998600188517473962409735198989610658657103029225099076911751460902528527503410998596424295127209553154736817515261655665460259460699602398511019175211151093592406530565086263204683456514736137449700239846445700642245027626086177346867783977799237090394445213788607073839512271297738477068716635802838873979134017435579263579638561177188290471911678570033109627896815104853768004430047395963215216880192321558634696812112794484033758630424509357101485331124947982121979754901485280013414926708295492779314521846744774379697517421355032093707707437406994416813915465302312046907574744093467214409553306354422385273418118912014949232885749953040895720916196893955590795347748762559115779263830299307350020006087431678533906484060473979753951351070988272515359878350646446546081395504085394909137946210884130756752689187994408917473939081166817088715741408901230326909613853335984129647475843257059011455815219946492669403699949414969007481742788758756243325482462347999893169508569708906652132864090138728926243409630757566914258071539715168918564586025934281668172582485525023469248550161472213825703217593839295972363603993419024378403533454319288088643613360457289959627184261698723400513829018578299527992240902183708122435072584924311054538807959815412505551061170433221718327502062825280873019406432383698068170455430409262701385066179947582465874520517580114022822562062076166815604202519027437590853217172536156658851968091647692867681385395347351486228144258408195494394274239095468481689112368871154612061299073712068070746846818222335553546707120173328280154088202920829381069944810149374832786042429381602874333087115661861171879838125741087533403754051132516880854283244907251604955315546036936806254451652701300001936808712509990962236855861358656098490904718622457487647109958181053000265803065350642169193058160653309192665620866158638374739542419086378879050019202858131429038602723501210526629983428797286374438304223140478842629992408168509117762250500864128255415789673108511603839230253922698296507472898551957299046054546960608230892953935642281571081492374716312566323440924108098465693323346712808313849307889969261210588359285403006383156905346819354648677406957813521262384236926256757568913451501464709191810811589774374121424707003720304634236785392947946190323555422024611198832231676319913904701838470589631883171791333652823392339618350190659484179582689826967513870925571267544118760009541939160588363654091362349643990779348359643800422987466888091168866556011373751437333560273012494606097056182123630524878205039193970603559965263001647884473416314480567640823271396926980823688932776377481844970780868534989763053261564147307997940661809194505057034685121419756452226002971333168551056317108689103248167389991911776887169530485613885976418051764662232138696425188847241297152730668580000414994618887081907296414390719004682968274155178751627574587599774242089629167911377375942191169503445387970649108347085136329739506657592721325991149870152554475164371279888280227917913214057664032982202599858246546565958142452683062712114181530407700146892545811719747089089435446100835614576190440874758110203629529723567933452639189101880107403187295196241654634083840189754282803932682451658446057239587689251400627105205973286021519453086417866880796840558393601021923801929345601816981933775229779056112732892325694818924143641951404546228851821303498789075930424119939820008925120601329790036974309632353268153049611761451468775647212557039468379832837446062456916365800358252115986628245414369886125441848661625402317669150092179356904806489292413337479091606123005397287908984651289112086334728092114553422309823141380702964108439210595864290290381982097540594620353849612548877425496562256307007912538733584419957734437214122936313708656907140994155726882944462797463733935643962211664803066535004062650231323223094823729800875460370123304776185815808848545958964439915130372379180183156352955748306826450898233682678715306892790142222194895912880617154614139469402477435204805984121215923352954480931299683542021800821491728170174396502743010429009827002310800366318114393921757393874696556625211540076499348955971864347266060038498684022990198175164005916817136319578298866541596409056283007465682619824206981858963090583590518926068488827160651524230010513955975938952386450085074419066308455069120394124138506910065820322575679502106259661242535350391825466874959985152022861015838667542573939704948304629978819684707791049614760009037063664775577012806214571125392530916310405087704922371110930452673237224010897832804846319123727680042526775884956794747511636764114691183114128418188770257760655640939509091085548577657832836159727735550986613596483190188674106267485336757001555067529770787182271927309807016595953137102906693513148252841488657866063397501518147393839216003126199369409116032335912883856049550010569492491719452032152176416404834707670482001525837870639172022957867987202606331725562054212839903053210809592413946434538111713095214284034616253949434491220037728444864313790373775109408681944322490723533337977630397633564130078541937945149163360132301215122873574256044789407345911343166002898990962072515323216494667186321789538866080035143382038004880275237488135817687448540883869497439553700746219193904102087221543477919572372175099997801703084342503390242335906278266051141749489775771324183702849583704084152440215134022051855204609864266682706133611395557615921931857220807402258513174696503022813757643149518964719122543331676473893404049507223482088556879729299874786084942354908450850726990249131246790814583904801594586681349370696867646530600560948102297993658705077505597826556937344937863652710500712575712270059815712606304354268914820388611291805491469999993918516158047443039634335982267761474231432548012143700590658115141542992000805130434442737959957666431129133137932871022756804048818431794205131278624532016474576102074769035678146467874642069938714547325198844366131919492880683616978022790381172286584349322777611904949879348870697300500312815552113825521438056204536195770057740801520160853336550050415505359280931042776049920805109769621905468193597645675564520486370926604479441560864810375877221177064836465381358188759672952116917738487815582716022671128226109911777830802990167812539610528353077382366568711402537507630944176789383300868758940053465981502789873590850348905027638472565708812706194942164026879339899798173845097259161717750475525835719220632653171112207433140873306856429585183041376596582664619540304909733133844290696853233390474554687788243921123537262187564122835756726794221094375257041887589979040088121281777869754981625104016292948720396396092350374537654878393909111283852043978843400392287971376845715438445522162823745924853014446731919714135215192994827621350268137170282889895261246749907593147396636407947230331393705773393883547729947929034672796644193431360134783903968690079946146424236977697133353755871831005101890234274015070762694899179719080611540060166458619899508722878251180930145069676405517258988258094437208337642906720668890842933476282658446332102369660251145301183730983789123491994381165130033371166042485043904078375055595817595069531171824306353613864177853073193165711406807887065719388367894747299150789534620410498171020326774002152314796721283093726574469814972867871834750659074840154635979765715110546961460570511069692015543432278138750177920355275476181348427751250860327615901668231504977509543005921257081295363987945156515693377152234243602579410245182106322021927063565594174716064475835666496471910391620957134509863575926979835359513779612006752846091825391767923151536886326193781904162309902753365281182742828814778368868265483357281236700841208832506923546640596774198021246358751465408828041986376596217551602789655961656550474715516099431604663504461036683716078733308361919572848882481253801022701870348192338946310614482119426150537511516159170964348796577217692400213638966388780381189388173880086321988248675267352990432859972062198903728089995781671969081595781188965080007366052551606564530827129958963043433355195392887054153354915969023018977860146581306715816158412260071039674329623910846577085948969371031155113415675927427559106346625735553328712115265359649562663678085174960897220098641137986586524988690019979147429712022153140395838344380751621301788383719572717384317624632685644147203273954737763872144076363943234137316428245311870769118734137752115895900062353740374631490833960095298257091236885215871699276669775639482467969119730830452545818502146744662385928067813723850384185956096298840993619650872402701644398838726824804035203558682012346546774712663205069311549637145546402037477290326502013777614304166370147801183020364604332172437066621036762749860979497484002036368084288457887797110268191431625699505558712418628762533523024347186191083369551541649518678492432921015949600989993534814565210832912903218877048336914520990865508456004414369719327205158189557095984576668165180877505603340315560241660388688009372052689891685096457981927737812221659872434242987852970183175757338486709315215825784991778179069678885997098705284229541379903263534126543734412821596262545737118741099701229672873877228725668837849622094405862952138650142601002442441088219143645088471013978140541694009671114849689938407322402548235616277029555073770758194204374597172748199237169718070445931272055127717922646996269118746785727961968423010469469272166207536783684283010747301622067914093062897307851207278598774288590895715385192045716322743787707236230301935741955912093245551668780291965059153691957625838441430629375348926190502407435080017187474156248164955604922462664892846754881464410597436942546291614992424892654422358385382876679446968146994710883227604348787465275188216777994704906502775533154492329232678405347270436573151835508528751698263940679165503518870036248029902936133174428798273928577084017072724396950796768142378377626013830570691874995941259511183354358972264077787201547306664492235167745372022207197537050809531398890500231773623248230074583228739605856603616327222080584733243064318647455857081745922944970903153999762049615727304094188569431425318107516146150325881474075098415652788075525917745182791431481201847968980469178958467548352050569212031580229613968517424287901982764613958076285070539779358707879679813181549155794291979478687892196129187650449019651216724688286607225941321212865079967352639272446526806537711680268464460196578025889908925146421407551914052370321060387098941904480861929836659234008789633992540158585881987194178141752933301406058204754604707882304888799277307377412614383936897152757442166462500184473497473244360569947804139771629381668790148571552056817963569290550976593180579948740544048916327590219131966269450470774536829516921422833434814598087334510019036306542852588215867920850246995317174968751820672362443293426883930058214682701957867838005563468745398073367388357109936765429111778832569310620582236822121496082364437714700156671447562801544641234459309070077843063413815723609078822336074367534205889801582190362703557600467107982606766141597091551617159250523129502484575098865903045954433850135934249638659168216524675015930693838441958101975010166976075184238670387750662714596376886244945895532325230317810905571177914333098734858935127807061210478332927268169304309996344877158282927990696077369756609468783088181274690224773188178615624013804187442913210029669745838050397842141279106367482258285269304049630974006488309788757242759813634221578425063545189268955415660892326980389603999376231346792956233492194959482296783578959708523809753710748015535026990690837063655923525669674911039644153411186949508948455906720948853716374914972933956440260592353283340444248495350393171673871465736848662366145967703021450828031382000504153737688345615542291832441035529625121114341253888664588617112229455683752417187830093542353024555315238155012615362175584181834287424971488882489211142331664537119620854429099517379737497129664643644275323473763837466676602500389073911373654163273563628839964173316237536657760802717190298236747787251324537968204164541257490701652519799665272139219360485578109263545860908080024029147509119431974961593755007306069670172368210226656140841348150811314001998976064855774989949291838078669498721107732857145144488671403067231340769535046115730808916015571033016198478940801824067442514615812589545390865758659145717758023779580477535655030152665293238198800591041346808820360548776357459335265577188257567344797280098903619462461180868487299826494785053462016071425393814920676884272459042197666817121062676680553723489704489093225174133539412138919415932320239404969314079389687365939036052456782561394483737870192587035371160956073932010064575583920097642670648895272476004572964801693300016266027197653977771609576579473528735518281215789249835777359715495635043751211803664344785855541010744821427854110148673440612202302971666912428226967520558761243020541945019560390983675021909200339337929048667941560471804545837941813041559428203179334578472170366292050144571198002938252378697611033403986560777765784365812306129548966204955342617362479086914584557881709559913915956966867565709351172582925122917174469548592286868042440388827383664468486966313682220862705815024123848380303733760432426386766261067286717282117297095756072752081247522900695675817893149725621174627630189712964786020438007756556397176767576596879038980272478620616763058959321838828617361407284349150942616222546817001263988028385343490411505303031262361550249322192022064348883174870186577247332665630618559448708772388946290724522048668544775292783254017591505804709713197103231695527169123496577516570011983086421624720665763839459974836587091361999486730631795339877286864340597301596161896212990843133116532236135442506427882467293136429929995484330579000611951460972566322534187456796856161421409047355009159318993312433578676203770670184691198654718671863666397492191052970343038519311651635968184672643938941563496930176419855597679164237080877818915505764521582907583233702751208942027059475177634823442645741905666420587125862454387041005297891141585462798860115425324466569737473985284613666843257350954859669875661339440828521287894612927560880838745563784275927198573799558300484166326506627643254431657137259502364613996985770591707804387242635626002491777223212983933827042694538843767568854689788069351095102453580841406961576289520710153519120483606617339771948517969607133214167385335145967177561173492025629226383979827693289906131961814412320753101796226377623577574366259012905327030247872355923034939710789343759849938597285052043892674851224141112603969907163178266463892115885745944713991264140356802148509296863910972218618058500535299745616028691559960879051257679944611117373501621269091114836903837260608869054272310829243163259993001116004307812049558365585037635203208928534420789775629539963287199167696662474256479099798707141194441199389661472561051941139030134081846755919853804326568816769967387894931508284378451605917177148007890801349447679229421475260814183492046973716250439072092710480504257437564373602390950040235878662844321417282242832694610821052476779123089886091537212825316339372556533980751767834388359575905246954065872522466886545920564457284350990451979166845385137872242440077392598351240927227532890004133246586734196119376738558415676265733097925132536919907895605861218930407066104384069624334981809820709696071578181274597978563491874403421141316969468957397910042278316030355708898937680764674754186415741329047661927362161529114805575440912846436753664473231909808057082208803211374465782437584145025885664372017884299140028323973759517462850515334909062626791074326629558274106600691409635424582863910981853158431117381254911759683129990954750056198008387425066821216563647611382430623287189669942333544887474862118358350451418476734700019118929082662951969983001531734423581910606086238726710078107949102066714596851010970787836408423344509874729547027174043183881160136531438396219042858955356277397141028924454674562844974102941821896687706184872891158496454909362303296862432667136752992610128008349314018887324145764230684553682256217386935471493082430218945422665154928495861698614059474500924444848103035225741300555753664940203080025497567146017528974239597531882312126023162205607126206130037827670929384798749905673328567606842066367524516883757245737016143747819280984620035117681427129741329674182968996857509103768471266524631534139567936653365569553216310762589217934351590799596018983348091693836435440959277007073304101686164259931680596944976431681377343456361244736225249889232930962697028476478870093091341082074477171472662969581630420047973171019903332175998822398409403981550204967507287592056529378877298593115382379342789578830416100844326052615385401449351763837446904874890452103249968353023236288268740741175598204353382192128323475730358352474662399670532658911714964050660468271913510525076090617836045392544039143243842386348801292565828560381252983283005311113130735210460087590541837843368954987658143476518402416613043935186049946296549623836713483063166281770456626661205771815878736322456971625753249776668946970748477606405786317481643225654416539193282436368085213924959020498119100628374944399523654102464844866954097968495870280504364106762641733602488106775786844852858896416064797705512702830740338328412763333338170438991486014016586133798376863506651988567687447496606257462918490504846042811695348382283921783359317866230035743204769930908420908536858999244164104214791085108806628422946389296900976040930847094941040718034896632639609582481374891023463955599669467921977448312041552702660895754175527101800471057262345122469701646704799180214227869503877314257751344162778882313542722325804553315513123603735974914624183393334698363801948047690611992134193057407728962273915478599670162138463704501295670446006659305780179385056640159591312320999692168304661091179842155841918686144570422323779780651399275228641101875648424596454833517966925026443006606875796899101779061811925297560465049121745990413618601949225481688966940163389459102500920765157830420719718168717202084489842989957727595372481814625126366469935747374903404843668959936071009652386369755297998549461548108444495898969998975800804064038318014960729843625095337611871152234396906033264538575264270112652529761616182449644415645087035905949262935897767520638418725864637198783387012333750413139152359397388452627201670749834621521400018838589734577310414080766042391561697624173355679670684577492421001795899886942754201687157823864284665269917930467713356692278219797256648378174626618136513654384980753073285296530000719281589344466569184491506638033458390177424107115064330513303530991597264892258315013313866746620416992233649823584957062436886784389065488465409847614230957413087730224036976025622615294084428516326373396201487660144221388574549974003113388017012620412446717402721870229725987121246872743517832300210928993516028170060399287037569808262498242171884948383086247168018488080028430289753303223919568062438074704457730358900395742571753629551611446085212177569443804797321460500613117977459868594211139717373002948868336792887900304924978495544134903502017055812078607452619279381650283905257974178019510047725968155256003363272009801095245174739242604180736470424241466087048755717160255679223799781447614109509798397102472620734310254226386595626053648202913147261409205542579521138696316564997939118199836247620965924173068189439373140910919843095498950810249779732778847080169069303492050229356530269073704324222803631652001117414774705591763150034263913794337589001874441264599307275530607837178487591998150911011714108562651857116128981244708337581475565433803835058192864943776160136705416885713124175250051154722269558700280823653937724455201421281185698579406895285502375598188367112277320988356542835216945126707121064898703873238596521230464867489699592081234520029738564861906832925826361587965815879916690474944524182908965412347441601640201053947118584166947122662318968831153464142711795839511356080152600887834474016645729819752258967714528335144592826466985469441751157588437632018576156337459363587040869519112358455367102641039040396856618532120287178676634513868886598918106120508127595531484605972711756921584868752087433440632457558957841451047987778445214700430805392810344331353302397941295374926876998184477073379969153993966750793169135428210083609415094041249615357295986851949354774646276161276912469423991242538140369343546839428952057766866980432971738210152141409442120915146427995582095557073896302072826965367992089009516681701912870497797341502707528364473445319821692861174151660360817021392694132399480503753393409943202041741227857168976862028878154995225518484352512679406758783167385183901511739256749745654398377714220736192678052500553456442005252398137176048284309499281051152799719247143731635319235527204044844583682615919444431252962408242143093776584854558908057968298984369937586440922537731699846669277926493897034535597051824318431544188473084934366160924943570060630026688515013270214785309189325024316921897864528220403959593681209945988889428184091920654584159971748673218999387660013077652814660670022325556316303136049436668774600679798897661160267021262685940743858687952688053446810590243547739959088216182986202108622797548873557742540326934821324871377732896417782982589729125059107981769370870444031350236532141821487612446438106969310875324124549127349581990789290418721548364385902236099879854757715693677526425446614629122458030631539783539925727573645305498983496263632469243284114360351345010683064337246787296188982148123593723490353112339993480630681991279509908589842339988699793466906891056068518721975603729456485132431199573159285401110758610741134060223199731761797024695471453794960979981957122565288911601737740028661400582671053816565190753313959017590567134520279461526706746932074717220782950932556546661949644982793425164965678033169388193600300125837162165043124149966303140627630828403403636093951629837674059998827746296525460322434765691723192521588917819010604653390368281512008225635502854642876144174377458987695156786986121464113131255189536327864411753320305176363154532864484509789147276775586795204252087454645562042112962478789851041585311416158701862870139580186365795493372036343951860909662110380603184822785570835943435248084598817254783582602579201553580305112695971614357245362071533382017060694302604726594255080360233761935110322242335514949475606318336435463990670407161984603284335663889435804244777584977961914076285785957889211323849431252882737314807637530115946498902783409086200124695037792867988675346811310157005828793270267581806474374630935400407148884682771576299366296733742029590702600880534225370707485556480104173008896737186202368773599128808506680390762416997052122368302318914565260293856065534277059201389424546975610711899699152877291059670176442566605488331211693716394858887247559679019647285771848164905396557606634730382233874191880216534176004585714033927013264444567515839435797658216984773994491289377508079837492083409701203751041842787178957116522454736567810284396465784640761625345458594174999868096018176527505339736118432434330105823223663341889844213748395740945412030091198707145640112785128521095074371909180722375174798597263220268454407591661180356312475289928116347946654555513564085695270903547087219448847328279086004545286043850700054430636228427963269781549207211613099828814953473090374736054315511596342355031979765197432602277619115419880152198786935898059358088296468504023924851456033382301333590749977521681974795418452550674581570212613330211863722807304921969534211975223957708172540883312837489006635964053470081963397003204939370957154073800997586472668378967534974856491081526316294411871422805441604450223684943576697519368748128914320121592462900545130693915951221443503867024559450129100729713261349208805302897988546403506396968583974874183092345281564147721517832917033052528019989528347710658993701781151867511245492392015940498129448546270313111475135014642464645969361634997131314230601682632704193477359617756769180118234186943077803557066022335583745951672107949239725208227842359457336195551920757398856795218771812460180473153506795290025686621506129220203305184895515228481257462248952216479629294902308803874567583684087234386445192248034510824312904327561209205655356558776238371357274713306856790129702752118476519498920208628307462409801582926888758744384032732874729044531212723232758708500672340536804944765562358461212092169269113043550145655429721625229286346853317885111867863776468291878330340450609683326203199315300418628927985138649104234573194341434070773022461897020217197463679851777929307945870212679239205128791852943337084875404113218174658960470041010860143112128481944786001086749476923391468387410600483262380556294369093057978101310956692079158586444495903740041234464043370213188220826964963905509156072729804170534221480239963428252779655227996600114835021721650167566650730217271627016399559297714801652937143519896180106778236262455189641716582811338614315204608800363961398186267304023493744373758176698296474739643258722152189668204101847390868652605464296275330950247980824107280237993523816360478384713465364049261732261084253666852640210848592519693947111183927161037505424748814445501571614432638565330519569329167204528851565991760940870120575578390819662690104297701969107290449164158456619029738023574659349415199038478340384782534965369307796353893553060337383098232881169158340077088233859137830923971314667719331906265282512566131857013237619501189021892323049703800173247362579725341263928237379551183238847669428663856278202046805023921941444866669997016473109630648207764657102729523021256673555809513487999540037015006509053445071139210388700761727026896214265137044333913737836439096555883667051936167872978933280314229639907422847861538020344686089194988222596399210565793684229758440504938404318963389035691625724091045902310561163284077036903309398034482493499962030258141762720510007903019824004015632079999129179771528647956260159346253374085290246355361021771894163401916327718199991953291740330854645267463964522101306356300253441409982532171156967537429360584336577634655502697369958429257248756767413971603796024731111280064987128369744854769431581903456019371215253001637621135501644179019485916890934105641124291515756410945022803529182791910949458372777916885029182906768861703868938612970425986891266670212950508547420930837580897325811579644110306410761717787216045012143489760517559502158677132863127397886868109461296997319712557368612504891521290995512703503353457670059699648724592272321979904503006831997834228748466251245560152402384936021975606912129961094849150183012963420287118767190624596892622821880154716303337566369306956634145543325284412742754988774527354347313410633158703822601418973877652130338393680090090439617072643634404352385693733969937912382901093085567328594832230472897070570467905401581544490391364808873226749209420165810468914924130748165806214499727360726709587525039523075186369161458335014273694928117595497347579274266484339953641277637024796468977004079698106270179397868694313620537248382469443262326646909900237883994470057651124539687703612085863984385612250321787294642143802698213707336747706896882489425699480508739184682451989127553133576254569867993448669659992943299207276081639676751655088917321921558080881017854416549973578906063426742378925911370701108165581516374035672832399396580228079225993995223593243020252946595225983752870055771009752925002967786358404578122743172393332864020928699207154722680572431146226179744117229641563712163293730541805717042677791354346538282711813758769023584793412284077398197503422051641232150969360278660649026300222522796017676784684486435285760889503263665458224034864061335670842937731784341237422603680677461681983330970916430259395923960971594636944370817144639053936819643524014684602729858600542099420143636234226859690517765776091350678951749333201717099652655058274637752597224144743364790756048833256299614418542419023003006794848321200927708737345490176857828367415893622542591848531721914906317785427134646133957257233873667764474059004624441362042633316261820025221146660731256036917762956791491391722002680299063645187954933497033497999342990207907209968129574589232286451477560168773877114498979065335581827833215694979522805471364971291897227416007028223354538513047160032135682544363638871433113666077982183457137833086224089861786074213263685802323575987262205643546523232985098138795651945571627871552174860773022596228375485878500735854740464826909502953525827662309240123209934453308894142975658597158343585397554138654012288231788594361501363379519488623437408790621817016657736445015016468674569326236999620637055935037241587303631164600429472445263705245520866726695646382470396707149678755578677063307467678796597056338717346286385717196742669347106358467040189911747587661131143215004043365825494059002602149517470980115425001162188782485860281670061987034639591905473924394606503714957463293790155922378968409506899632866838214612351770965517115953421005148146388180074912682560651211360057540460151689855643612043634042796547559285729698113094189778123546949894882200810141740679457299307847002886706775292649257628754761896222664395753123273661540963652731687945352921347772049372882788231702222149669581119498950024960030926607035443048035699514084180075311517129435564348641311126381695291852239395386500311946197096721462142145051539098376831260151804112574220554174925353567753130190707842868512076388038680567063288495422363314860744165587295090219983492914232747717591941215655373840325811648448983662934016665706612003679999974770748453164012185531217136878068064798887142163147039801118577983524791567888219899933889428167324063318072666841386581762874700410362168918146715922808515841748523915850898865553654538730514263495768216755486197540615306951755421615469932951146218504304730919886505016097394655909754715105904904399797085990105781421075839998215140793722755063828935587885019607646442280089448788928514589588119266029712977651095943987758860882227084160230287541518385291781891125052367381093192590002420246266974592026472887784225513667380916848102134699714355680635393962566672849141036225131547379027216548729598779740243690532164141820471522536128886068146631636595468892408077244076733192512889465099307789370156528751657475678039527974453670200954827169518128314980995222901358218647375395613168622357697381274167094390558822772548405535941811619894184047638638725529569634531175563638698575776627951095998977319995172536397171870998827880698509269623882221018373997087624432323017786403593210968352388314621366907831292614072947511721502946357105304087193438242894712303598948309483645220599043135384360024511688374893032986213851959866249762929747716621946726309946236922716766314351747011838274537594800913409970618803076581442180890696773485942973023247620109333511091226360058036992359071789301282140944834406734143844632219527267832250952713854552047608369937515533577928835601452604591136472585226507248174777293994107484828099119445030681332104166686182178024942340218272694897971675353224036306894761392674396035846249554499242881559559945545056157355809723442887552428967691790430542361080482451367471974103492001000761513148441793122039258342524835060242346843339475107267825726443321390839197545459369449236944943331284680286917317983529523908615294792012968813171683669461633256862724511198450868785550740212171420835966934944004380722108497859167309065855042039010635256503704746797278168284205510733822705730485824210343866566817009614602523591986025386849344151074625333031881813385347691754847677358970091801867627759380114842724374378922294099927018863890425401189596584961012725627004738024007695190231971083281693875267035471321799562475146478221699482248443217544021187022562604108155922332009740828243812042957015845675973974003089487807234242339228962285178451393309583983613371651021519184954902954115093130361169811944679629936890271529883578142042700877945899273039976482694994091075796388258562419379571530521944896411263045563177349986575794294523800355142838036998714745223079620382054038646525850905237709501479773424917120274680168115321561998737598487849010411855182384909276000294128788001736224719787062343294997818912990865564980977094876490082524148472415000720314928668788734795535285348508612697420598395120912027705564659562053033228516184356315607216311538187035729033993194681598676933760478418048854793155926933265064425139262871314352237890345936151053466545387068473423096168587438858703383527691980016778618481835373576740612760126225859933528291901295822051257863930320998640593260052841771692709253063958987105274048519619749514267715793131068052921205747879665238223300709754582340971323913057200995389517231068059402211485612075532083010805191299427133224249397313248087725549670635272890553621450124156075655441057986660050734396030873451702044386377025879355532505456620009435699329058322854939912754354332290636529647113258987505489975816520472142804526467528237229680093010076897986472623528564460975672981140402977279892707532651970180305330693727400693137680829239058177268893696293256550089997401905660064450813472118084714453690560049306467925075616420820052081257189858057621759878340332162015599781320157847476753683346696339194553431774716997681512774796263908612069028989964337306784991892400591113072376773379482072662630392359413733078006953572246530301852474873176915198545100211075707213550577579278213974108611740429147125116902304153679626700621977136952693369086167246314198189329857358156463835185257753996104824393392616903945011456415409977490088159866031330773510910893964095077437315239498904999623703180613649392075434215910242507764649642627765157236150183250542391495887541420652484317174340732871555881707519246122861759604479389394042145228665592536583662654901354039777618498418489767774795852424110174553468880944016158198882800011113153137073647285476022553975121329346493881230943485283015271694939619884696440173360064281208094721283561353734170741567159027592898447998866878865942297039942487077826075867247249852748502514573788181393485336443221438749596243979063415859739794940885173335114425864631863381269323693608814518671003346197228633473236662963710354423495283677884023213757032072206529684945723171484219344152188009441784034096653192360844350322967164513172036882664522076132768968965328566747286756551218182320681055083946810818202267931270459590537606400024173220096841888395808312706074800534748683508390507436335435764280075116845205924217514214298758011425270594974784725097973540414783114459009225027290849207933821006173684312756648730968304007311369879424106296483352471488283839856843912062873523358352093893135485404327996575030646087008585889641702641937430340468360533044878180675699595348062092284480107468431680474825031776140893281664549133848334340383764756925877134859842068446878763963476675179784723355107999279476818507001154646358994192127852079147271252458118216154123967389073014328530933152526231177979143435814439126415999792675615284055081993215303844626310022641388537845864918735424682117147077136600680379479310897144554970760290960576150272713855755997225579790539090087389458052109201417755168122693488015348754939274811983763042658718713988973664662316588311201512116290063262787555550877715768073904446811001405838126803571994935514734879536974731601074637245808426978964433463264899331806888425557660227838656534665747982816368919415715096914992986543127080093700193890485472469076139055100476549304596651536033045559362317134316502040308873907116056070356463563616896143969443023128244938755925200628929574077105150717213025907397820743548685534487236872219753415565609671541923609800838307619258263868936396041840399574991069717395533473165890502593951876550599402503602602182966661181708537158964522690983762722428529190495269212258236537117221798661488323456658240610252964542789649799116697081315081188369872401602171327604746801021943463615101435041973183216144613880236706236932589216559302576266033149559092818938509760054207033133880532822223215947622420625993091736220425702016281510540019045024752872006876315662474668647097497875250967181546717274582036049722160682304357736340521386355059446552278618026634446203347520941070614326643292042181520462594155683780688079994667104536576071409428928823461155449951832141616497260972103675710879970822159029844334434457524259129971837307828105453503753147080643727386319637830735092451439216330177569991921329856791012382777670410776127581740203299993441361044015897657011483022366268554226313324416252961225355795707347196975856922822265783579633299810769250910661725749572116681492753090533408900239835223610994290151773593597825386074638135883617590276263769483011995048797897432686603663959238660331754619729459963265919920185466369737189749554519475734765184836759469868733936666595482820429404906887600310980095474616431635100856398471633522031941160691628400212483970186833378728628247642860696633716710445057606791274856342862526657307582998209315689879778553734195155760018388147693971409162127890267291365401434796424183903219151197675211614199532747436159877820014925497172886987834676724188598232486757831912198602642668547066851393179942829714920611089784013141226231974446635893396992527443823100382136583541877825875150500153781296548365928036570145401593847319933272420199436572266565076074396909730602833161133016679217473747294362927558961736048005090203760372556647702103973972661267236411476325321764767845814419574140688409229065209176803748651339616012097912162716419922547694724110267780663100836907236487726102676924872275428268526127779523098133330476997900791990704402541493515730955337210218539371988229722418159571589800546157922921770338502245722624376114118275882290012073573440204862053253308056201327522835534963548925890528744233351941353721888349354316199654543754605413561104193706946608434308919678675202129080910441490782774529551336790823489574773393141943356917152426811297326055974875906583147100232311990300530546710078841193553560038513674847591717245065541314370765478915689568262680407501295780084584675524441994539567513154959921432865990405871986211855113687428634644394301058766254443781729488429196079995850377246787027823511083577589269469873717229628104429968587872860130095755257141883543640929170725257722015516892175844733350621130678395221827607013787835124271448130646510475604225699377929214719835740192496637619561177693044129759969551823933000560068061389260409379011201608408150620471308344010283603889108070577168927486904700827228807922454563210803603522637785290721978566211835117538848965583956751562550486308229745968141305984934820448637091092096966607145693020694131581137462368847489793348868655591693097239383824832715886821186490634273906273473957368222664606641539476730083115526219735487814334852717036984880342698717724791693334832786162181515353918741891017990878713645641602469226853972790172855753723697122807561190406790071170674317465930696646285488976701193545990229118455253719536241379465286111857231152003652931289222121116740166893130861661318122571028404131439134554066051315942048054832558185326150784258064472979880621404890686042943903124109638281772118881471206854542699107737842734549837357504940749136955936008413405536856234689164692767375854080671704797417766204506459735675084632623412921580461597142702929313903485057012730306167761524814491102152039747816546511067461122773668457505840323266359851438502270103898380082902165960451586554320009331989705876130052299173716188483590145597189477710523125249273022117729387376412641369973761881622795960942716568769948931172110557677524979896850840124097630941959495297413956887265500563955353889361120978081640561454147174840321806450812610870026293714146221098831397602250396548732063328468777082378167539563820105610433985425396895509740690622675259150163375281509768367679848228976239851190045374818765356680899951206383146957424076133004678792644734133114047749087493723152727798644745082782941844491764645670757751423143658547332783174013734461292903120866902335033808757659998726518031323299436136834543190844631842303174244850218413497812449505086339520244405117609047348145722176871430215323320197647032783202737614060864527992690832122772247656658097782484423477902186830050929975546376162351431652527002750670178988642671859646259941161415983041608489897124764958429173319483366560177823772938048469957746402037315846845362177080276220623147407804584508471818389409376320576288139109981151546630384183167510411685749305424024827566961081667236696685357707254172836577294965424081424843572437175104984897944063952316041291533753693580616928025607827757034309757040647805668063823321448030464246569163373374316248887017446827443678886777151611803800863733795109326979831151366519527299849967739025536748491466036347748875380510299945323424976231525707398305042082474006651026158155617102446411443447571967881280298314087555477828620242498897863515813437126086392959671693120932405035690458009731625535653902335854775870950571832504724110935295321154167564882068184890316929677033180093069166891366109752071269033671360564339148942378404056218930718579078663150464470561882061544974406803534306178387664440236269532445918814685117166072722279317359056979411529142851662733184243143828740440794562661484918267359690460432285889626175237114935758301055473596013985187242461069944430634755400465671676334274876155250332916649240707722086904737209425244533498333616660681248618725221149204885250900375105030326450619901014428839733021463760076439799540363514961102071928886658099844107671663015876470086411579684863625359450792557620659930238051529903057957002752183075113519397727107065346920582182583048463831447028961594088743752698453159126823276977492441770032937484726798940993624514058128016432478811332845225647161716831526157838086808780715733094513012466439672644692010796338551739624186136917598863213460684097390152017585218358903839241413604837379092835478317790815919793738851181248579987357164276539529906950569047768290689895017869096361935464890896106887038471356347490872477967399461962217015762606977609856758011406027510108459839424326686639185207825575894842286224636122488766164017931712135745820390897583964523695305737849703224696186462481300856409556512467910460586301732477560027570801950206118203033072465658791835860460157138383066793460624293090151608464004925055301409081199578851899895753223077126417743591315300087398857262761987540279210210211995078574812301679094814455600781082450111818889634977670988305720905833357676018703901573995311623642150836669673940008160935510233560099970377272660607659497160304759625093451204517437310227304341237581423214777547104631770810462587604328057649435579443703747563352967185543824313240868905582062443329571770029245929936146418170703792288438601686388231438825240426790195281386811632459358659632452031908973075340861811983591682205961747211304335164997162525876401556550335964138992181503181442752139279250897145192920246017284964774255993209304871412991513169050247905460537587959700304527073861940853545838593839556290169295321903476408314654387521319180241933294562437885418257029511738939496737566198130894976598133455315042432265004812469658761661633937529550592556223871812593998559885338292431614265652919730518163330042678316055611612869682519140246221810371879165207780638416313189917257021949034580137118205335058607173831509028110860349509716629411465407661343244735873750650846448229189917804384033196243700314270780309254412893491054588919696456895657874848437896144531495347970383291341641317863565110462328560651728608994314403659920090113185658489533879534460100735895871564516057790820380034824892140660198985433712033707298720882777916152283255923907533344326040604901960910051059995270859795856397214382672055935961983110247896618263526345748483119306199257115258891379044822805890455956404137397675942680402267713531883977650964242258947327467992800866939836830823743521173256895850076951015424299545432419918804880584544283397693975528318125231671823039619286893334763173449789082442497225172323329251159927726089132652956709032994627226564887478617762891293034874155942587045582511714908410978897114103847197600138277190667200748009866706168314277633433174373373643935918075147944306104725009425140265878215676479060361307493788449562484168920826526116939354144636882853075400885279500132644109175261514692047896895972932801461487265595053905423193445596466886890673095530521018400069879882790154937925414711418134450412906880533142041595175416259303074673184606607849339703562769626980657609168416269475477124701435982004386631499780409410055281712334414941380548761777249466124084089561042716044082274283796257919177582760532714189462628835139092026831378378415032979281573576967216438626873403072747975390269115151380039283141472922620625805513783173054316726659106016376043697879317010107874947339297083129310865098786908711431378056805967800907546514346049457085225392189193792781849470465470482358962697195813925323169938220106162230109361910907821849522651575472019741579660586451248530184515304070784074026064352162791188246629639206895694169506414114949555484447832386577621417571901149433029055907594366906385794074994185795113020562858542776648074628753092815808018578029046369492267355772203095116794587109085881365102448575285000421652239694451957906455869817647210993364765981566600954444390712164937416630216871251107925978322226369429274363207164895293355385606252852300331733442091271052032536241087438162567992845433329509751349545901213469650139347548310316902483132805931781007063676457696116093278938655009324477437587361343789691737031583992559451233752783705681983425197578424852795651570031236231483762605441920869009626973294360591961769229563434235210506430930026541680825736801537265452358344964775866488787328446097072772529490041738193119277780816439490358521401069400948605363929238208382624256891535102775276629996854181866822362955706214114797639925268493429218980659677963127427932814937302061818975286146139402886629573259571618905673951904006569509818805255190298774081989738065969947013726412643109595559197300402972261473351881642537241369424030980677947495209403554668528313967993595746008644144219255084483841141107225821481338428450438927125697487434428943884672587498839421008456780215765366391442745221198805982240415451028771478149643693342798099363214150643859069753576779149488582614960833832888676142006984691471299191324323859893444183191729157641488796387516896493157485515913865842554724660540718132668092116396971660205262738779779013514066389668113392136759180814098483043480616884191632841374612066399956672490400571094549949476999748050002765198314626353820482388273558388948829448725552553978990944546207910979487616776034506945355367845140788801712144334217298639593037849726528786981119919406636931149885776631738187640856126068730455700922875687754436216954645026954630043438104170534011157874728920842162030372508941679728680486964291022585305855477818498738345616468430718560437929237316768902688999563239532659487671187360562077203174222438695337699186448475052125947233350670463122729624587418927098017065308007852115586148166074308661759085507920118885783258790962685618132208769872122199230683238899216433464448192750637429191385232738925404679028977890452147797698693458565496235834777814527341422930441294454552485175082762206292001525001095696785842458452144473812303034502744613625703260694066167803486482772701490130562883922236106418688036543843656834881021961939382050741408618850672183651347422590306141520230032849199263493742408842545174512641732695293523065618665527728201027609677392803432693149036143045070216437020499804857978008131101158882310774848649696534564770539360723173117645290828461749950213045415156269067552271633392742817756148632433334531539333428953270608879597243872874479833159465117885999464971928958822380954705683812473810371557788295677656439321075141183920151285758210924418220608471154520426868096937857538546946519492785147012597281355116074614954456990385855331075019098832281298254690033998853557076886431995345793358586112146783341352108153536758939213248953524692615607073561001836289420075097489622523610395259592837700184088490162388353595722417463309524288275355024027668296828064096091261325456265176991572273453881195866100609358096047436813181247207684034937056315317810520630345385470118150009399913126765942105539416399850754065757723965040728117815302770209044238776953587800502616897398547006412048199199693011818262399304116400868423592564997916279938948300144435136660009547448210836803839935384132489455166754160802442528834356652275623780079345992453257299012458635077308517470458389903197658992663619641727077406581786414973872643546705902597968327287140190597585693915450494372194127069862989774833908595499600083443601792957643714302919099342645154107133060754683875842944059273653793844286224741893191398580598332874489875392782227598732552699570482303654361320598808046091942377452408969624625405545728086988909595523840601614577940665885834710485161177043562030867010499770520049410446267243906875604586721624325504483105513542931288725395393180259921111062374765583627506379850870782015502707349186410224315935825619852393594203375317359586849740785774113453481440126477191647161836695499911553027155385847268115008870547835748813072408882913864185727533954535519573929037061579809835506361195030207109355379939032050836984888742247847821810596618340219282928130666640018539807416382724773949486806761956216815895201988630777244344940351944446152350715373099222110764109740943179686876921466793542934358742605500333975223912695925098966131589267559021057071261709663591033687775236642614245442255933612984032041853565463321112995432813646109246449581779906089823903331289926187724828976856814776883990231153226390646821434756310079145640302742164250914491110592325317851311126842641714601179280396412080000774354567561445837628693140051587048671994075888857215213938577403916126174933912173478229264767163087638292201693149878193233684924833974954949015495860114192183051589226501889118527458814236167791758983625549437388332519070885230800396255858875714233000334962225695140182980438545141642326439616138784293920515084272317813342222653400096411936023009020191492037128772927094963149441758303071093784785705081574447010195484737301371887748109797263368681584147270089383848181745884394230002751892571854866646085441555577591240342956453227685276365726972271013404203923731769240294355144610267239078483430183075984821401818064150804262450447354880154400207938723494127777931485680165359235415621461931904438396426353225125856627927046530234386187725328612656821297280478892534404717461305041224687345633711944783617938511469554217841489994087268148935944307580359878326370122802546448332985112601062798351760674413353042304920700508744012518800820306856401905845919313100847761230649484178976521408110101628082080220373609181421613591366836365843448834336323914942263092274237162730197385104371253513155852143343783320543509984277543248723993543778621810819580137828029265040645909835264931068062651062155004164870140869847439105900932484023678682406595193942055505901549443702415924289313469264400748313379967472921876166225345692642484404528614315381730878720877336564855018877443020017058457409514305735547712906247367944203207859070929614734912274055763959117389661811542306647175682843443423256839733121135009705216720045986274384328647630694424351971400570971819393735108445083422155545286240361479352261888359542853102970545250557812242060301546762526990076059800197045387476010851412302671595428612741009889937521952700725527369876636606237426338022276193156435628982418635713470462791232002659605560083450870241556140363120753013279247512494677927566145176445102873814824726381707732887491483263178596039102543494950167017627750103159251434095014681788707111154092406329564839410221740721812611200006642748522499251119895344212826054760893119724936438004127884419419908976325749976673978070223418612435522494240559947692820185788681465520693441668687053530429297256943859911836232827507601892542245558941089563015584762604220486202053677279337253171825863947786089390908566233720260058742875529149372252741759732074876344845788594208880952203935199814547659789300758726318498383188545860125466591678042296448887541788434447465253091577270557342414384267372432751133950846958975893558002297982996309111804215904072537063296238518727779979202593789023134587364114603899213003873472645423785310643623770795383555880384917365917109840364874776523144792958727191818645874882165623973997303330898694827338706481962564223191232837405921046001421651111255845234951785668881338647444174398053347029280841620071983230146551253620729788458847148208695988289156608921924109920531646300500694472119520217783026449318446134658263501082543955784597719539490429608811720263268850604877533301067128868949814101859276636328425440277987896389063784993099602120640938343571808879481268622356748296155424470396046775635944870869545256444848697095362076139977000191244263663458941551255552654230825546295950313558711883691051047831299065311546312766055194649012975592664126864860521619406209414467808522843808445902427872240869872187697475940186252001451734885391975905696004857304602155743896346027889860729719351996677506764344473431840751406409679602720498598678221703308788479090839228214023193802450450052206036343240501082670649357763718538951717546834612321466323020484131331831613719999320782457943621199618335224206662068203846815485289598800599277248564355363282325284894160573436465190610245688073808639293850949961263187729838435794381495917816192518704269588051358211882017349923310190676265892248780158911783118240931619551446239482125894786545625724530827875223066920683997975259022514070730079334618326279981192796875693581103863812806767190006446854109880497526351591765022699139243422188704921783908280101769793738491692832054701228736162365645842486139778624724941167668202216407869926226794065568906345800107158705087561485566093053171899194546842872394600382415100884749331329759061902593355929684719836844523249803821372486472715502291232191902007534096647297568018553699240046465533979211924898777553402180820513786605834574283054166282300931976522230574029763819194264487464735940844608998428657145170252148470016164627152493811140726632519358704974414973493531048932812309767456960494836706446342402586662762801427971590816503658638097245941826111865264281165259401003568538765539030168510490035228676580517069231022658738632305420510791857033915870009559029188120884699511745509770121862724467834320739093676021475638065273948848581796623450194686925851249588557672946485876925998000765086914118870889628118161368028315436460063027331890323789882626968049200472151065481131618567363329880837079770910821446886565893324180571701510050391645026799652372190660230341870290727437722005791687930648289011076026353086109544148030272219490907939359780540006324751523827342190189465767211754624348160190911601503331552873567393621843744501440447869773510924194635383600785454412923449258209634438163436679158834925371050400135462471267199333417343604116914350758027441128186476913153202636945834778066532289976915183530146557527560178400186159828727081519501307301479891537942183649214742597050596277429362868827131094959607276347501916352408201991814628448675090360504408929905582437239106776214757290037343715322274675297020720633067646328256214413005547373766588203166224654909711170056236419609859527927112721909653782959444582692117643685837057134990447169311377110607478297270301515192846792523567776379921386320557115767463585943540819050600620024650136443498497594333276969847188867909122717138670346434109194049676457512267787074930132766125163292038057680843617752809353920736531221976298625056936291284211896646650857739019956136608075118967306893885608923847975067978657161041154651567023800226967930869048639030415453407504043009922940548853447364701006729653838663269403398766433289485618484143069018515811796268177041232353244569258788777718395649689479427949133411976541690181991776540101832682012692062351776242703657560250523265710697065934576640508708347674112212792375308977368457003318413487148417681738745624582578113578860124028163787174277784332907329407130918346246914410013812412680188546134717992689703401750449314069255789372571810097914016756665816895605965073159330833776061498003346951267179981654702798584967823736027789187594962186898937733002650097158580485423523192492244849263055834078331876105458965031322615088518476655266336673054112948299838734313377246329209074374702054896158953966343865472484095617020797672925057888965880611573444005399496460066835338661990715185552751340608233921312295444330484420793603799637720136567410996832049454971414591967722166912025960693778048838200026303382574056861923155113127135210398934125658434692463211206781278843035517489911167235755349608748277707780965327385824514752630666857771670279423723407584325752749534925827418379453629529613641311931888050560949661461970044456447665477820420558800979718254578126428836015332948380615352974878364450877092952651308217265036369092086412183089228604499118159300160566541423619022594543469745595244163855453451391497837033936669601351786883204945509278240734883357281814489374619415190777221945249365587111330127154656308248971038487386489223740398066354004187611134975276927938062065007899815100248379988212595603077262930059784769904769397538810291041784342594395859617277537301548734616397486403868397177019283665954885777277158959965444301853425191429471433264472300117548797819018032116423330225424393233779868919639677834680365655037851168221916026617647643967069055900721653221254303252218209489421175757642226258608274419590277962280804639455409861948212186027973178655606270064536897023116599927254121232628637118963299180018116848950954457932077749647088110690004315660614618853025674425402737713231930100517538346813688290195027722273149992106223016501364519529893439395625391275996324993920331005607779888670391147503637343953099335366890859574698129193941047999378805609664511894414899485159922338388244477032124412466402970451809190193760033333206015344706366000169925017376464196660740755537464709086847454440734972631272633849820664068483653459468172072200525511758194210944881084081112056766857578604318061889532426237476716655000680253278427533475421001592985876111324514893884477192124970593850859928004649527785481380931602719446232362943260164859522341030172247226603641453385234877003317659777006794742816201761909211321108041888263715512296752634451450084848913625232377639946942468878673593165064218561030075576279553330624335835430071672821899641941364416725433876509065289215689935822241132313137259423602902101384665146858168417665666881822301888790681198680293720881971571916253345235762408398495460328653408075077505081929599666084306694667818950216261170020151642351275002790540778825667283277088960279984602686837677503156685949736003602580675704174114526453472331454800294215669992827489834658954955869384957890928831257367534848079375170295354584932523382906029679431707771282188876814813741035488221610867259754532540791267863112304430222348158788746057836258500037858151549190407696236633084335661352354119197144600652231656436451973182529253048041087699634056222238541923812086820447970607474595781539985504882326795623862208257322410655044434375562921024602491707303109821741975278006601671961006955808937590218166755727090370932579341272465643485114508465697801853700654119920665016854667290249073748933618072091583412570128923874562567725486206767648437191118323580903458342933199157612849287094893928590318396544532786853490981524534726164457615699808972143021627917441458280724979535642519044885163727304430287804789579710500111981995908553487146489300787623083288777623786559233721304848659940946593736349362959206750035177521850511744721457008993616046755569112530643064421093144011188604215327513010767917209205199103173623560012991049700295748135006593748645458242882368972699715875806957092263491445905411952507503564679767603359938496512802506995339491884636569902182231329407094914966725400016960829412336767745957552771736433269416424097517320355208212999308719497817723806632487364177095757485737287862061894787810634537264430604406269943062237640551374480555731627189213477547073220598606087308685606267107605736792517155766429653365368590778914999739176005637003987803317232081429140097223071889395979517270935614513080095277094198287963432601556340159850987269715246313186425345245443948771935370666081259677297653000807970771871508185628310134823624143420263293473371936857650533074433730016678925645722270700480519994371682268430222504850561837451592242378971867221132490619337892519091249130844398572306388229457195132959286990597279664060072203563136382512762833888686100188152403237633614314974821126549261020213867529235030272070988156121933010594810817261743181452706366128563498355568204343234149969330621082220070428638033898399328614240282644030664057604263536822698646010711555420694107949827280220471244651293285641591493517789751682460736818548198371510309353390999932214544691276687299273494437521405548200388755145738441531622126401925088855584630025120232047731232379270694599847236572974886942797556407942713521437825216630056105108030979811725862336312000317880033345324381199295545404344058749086482199782345333051999623034119112788252155484325499780155615398593856226753857470600608104004738779992790411588156385585619575868326682943584259425675782739392771362908798421148750413125518480874854095908961386972269087241527402567550799836463593747918868761307474412089340760053160433396001614463909850254616560445610312341029413369290307484095042666211886512781913141978598508249224869437642099153707082244175003795096759579447622760627960664106949434904985999058521589584034118423296881195962535786406102127297883407164849795943700419641585599360450312462760868704230777486992390806582755526215860771299303618913844194171937382479059254535186506206642756405798014950696453545023375257108720962660432945941430660543330857469185441153381135042076842640119935846185938554435488768320054166776264496617738854110761985543747986584356956624980714026194912442164506297918309853428824102273397016979592228457534991896750636333675154715698697214669785297005849499555603634112323107503088625763759922467122609550517431211121472735595959933430808151849979527342597414019104817925930033781203289277228445371837739767436726678392956656884626451247366112285530520856145949576642121121916695381818559922947414059024351036818771170323609346698511719328982455862808257529275017772203605598976533158949727140776264306925910026156081329590735260382042081998732283631952683575065156078133437520036095729688512346646545781094856095882775181015339165061694353909977553000460978435334547199621678947329048988966386960308115219157905595262085916288906475985091676533037079623177523384941716853259552644307286377336436739448219858535259092476666666597026330761307170787479471310941798652226694261053189641436445570816998747973996741263963236458166972569387447251909270924596441604264085629358242406407591351293834876290811964512231229269854822743172290520709449262978469809758864411965872150630911509316694462381760254442745743527018332209521142525386104414924246607305757062371015501432211799530244999270451313402728142090136731281173349565792432307545827793126078532857837869364894390423945036930605536656116534330890672736378830364521714242088883928664917566656486520425099890427676035271994416028747132427178124153734144197919022423525941516206059862581246094131617740415624693759089088681833797039909487028098590112447955508319650908214454055507955505778511009904269478966096684105979822747329634087183630442271634970048920732072801027337204670804640678580091158988595384216035954738398768751091110464277142105193916270868818364025583426590710799943934134580214651627991894011813662108075044707351072150873735893897874323021937653400640614286210930823567100955504837421099285216420202791511511609214153435562449832023521681800191399190506815998056177485799896413256216049184998880295471220241799809289667801053118756898016880362837297371604651698357730804286200435620206456937870416764418241913388081411479912377299536752723534452892295055953929204499112131879079206267200016888571869527734174021714761928655619596776489705560485019393679366615068002887503013770853523002374606469613404100841287328377623024341001066834782911993271749471059049659044890424437764799892356229347518384859116147762946771370823415638340884196008578664444627326817307400015406141177561148693618234262811758275095274313431716621747115385345746876210430627747177233845472870238543421621608748220162460262065714220947264779413326567500442455586942532888710733730303856954351384710893730378317338386992840566103809431047734512928857159262560460762801532597009976675789239638645550935328624047569244571482194866200886110994163101717069874536851116603516329056232899529469808436034631975293918829054555618128177796198367646408716664799053430028210961643716103689304967857020324654183723864144697851528385182365385424256627484728316832738978676394153234002521066933153817508618722257163888808163164171026598481722268407351546750239737497749592096083035454837129125934714419658791670749108862571372673421203774984561645388040699364635614321955963471313131705215353258140644223080151144557817013369034716494540273007958246689802782372645646004931598363685867943300476888792674885694977537854266100375899574500531648448473245506080381419365348659939847747993065662620574991128608884360726924043777134538706632971339028810705107909102061792990771106169692379741912064263905070076787895140876594091723627389628159064628266948426651671168086804861022732757379964137362001389281372808069336284724601643318112714356371730702915830773662804731028830355380554774265960748895384890066909751633616383181396742291979689563421506569809529910424293352624900972700946513009265243094963872676618063774135837325823328143717778122201490184214362584744240016475463490482803945820426060685246799694362986548870946873021028175840979134597472444691043919248260558615916386225075182039499771091475923644335350257673286435304859315790453221114845298378894951393895898092595344913030234510701747434923759329512508232629524344744076594903868151103241317361998497060987005650539281067304036090181807087203915337482144968300296533534909166919866891924277260737473395576684238955199947317545623619695095726034751470000622046086004305957561570161842609398857904497577668738612216323419804415902847476989400184753749413158152759785839634280087441677714193160305924067482603952261312737951664548438512342772572462738268892449563160280189323151292370626483727985521968322641350112396640013189720071038437339192207517334133531554340249149704543178780988260110704785348214902917397198483555013291419293930870012153728235472437394600866809525932842538546644080108053893006576722582535556664255627566856914774889626364008962147857885941647392677843276878365363117842505429744748519091811354902236750408602494883902004283631561815093666165167444468281244660319739592484474385064940846397992168835425407053232937786866733854428334720654896311522206902435068001572859050260712194766899820904953717461984438495841112291267107707720538931631803820447784878267845161941080885479087194040892277132299107484273880350860672905871809397060214237276594266057082408616911129769476056955556393818940214651697573087559728628209749475294702701662193537703210459382486963411866294655904676000532789985183231017733169939973947346135966146000211032248428581411426888327577329399599286067448674483577984745302241113046015294838442834828299300107287290555628086510672835179872351593791763529485439552644156010444581925801303831458527434418463967432927555721634448202310618040762132488519573368189098088821800699355058082826406458707584422269173230853904457627406176761553574334355527635206147658240653231538940474116035286289935492688653299750621948111722672018865947664974708934888151357368374537621224035844995287413988947401643511031259105610014457580368696834909709249539622571225361426476441603939263437781297736386696681927801309207794308322344403010214166168007989845330223163225871506487349294699750032837996714602787133573357606894751037228623229265930898314730145141275579257482079056051958308432600066953656958534052833524215673098380436612812389039817454652743354083682216624649829815780171351382741859186804691993320372211355352509751452424671588280432994352397024219007383855778525891961339648402475810825045060815779023599600948767031012525431327739119470211410873867704012849151049665181979650669159984705709416334603360640893985339577251110247312297090242947367132903251533795386458419587771225615332443946979410113561286547339809006540869818926959665851572353660396457892030580845100272459820359001260697122540683390364813275948184264948963213431176398880546749201813223234940697138041327317430104507146694859706814605865552020969613362627014869633373676504833878934601874488592288324344778535237155811061398483404442555517884939735584800532876859645425869263810385354672533697817725706322412020168405447692685341667101354309453124534881452040974880886737348519724721466083428809054065627406623395349330537300282537368223604247664027696572140450408961082425603064063475648040692565325084860092944217895146085932681301609734652753336425036141106338498790461383940579579956596681092904531417825431356508913735715799056451764992789916323723048230968979068190176848094640617473410576652691627052597770626411369189590421074029733567403194360375510307874196441069652624918837550966824240528946623758920560306706168144155795628193425800651364117626543922240529335517977191560762953337053841751208070068563530120025975835678455399369428234673792190695948905587847070909488586734919890772487078302426046005310143564887926795340586226030830037344189308413616016122649981827650593673240928980610145125882859027184383559572791107944124135863878296049555723232096773768862306025216800777319667461443007669455093346210898830105691458002872255314956424509634475153620914672759231215719823649520043409215445108885044456454284707307195200727441498058331586928429009352011976342670283803523954211027688826591425469921364003325687778395723800216128615856148938404651377167518681430230797305750602692249633973469240500965608853646503932198089879559157917652124927572776960733923324316752672515365222548532330818773419393902186935515642674555715507749059629077517920730750620729780957902010037333158938698269334547843123982421731273914866404806752674761148110409072235649663226476995399192136884633829859686124903518528045659094267876230627828813562941844415319008074512530001798386744021060521038880968341971839121062202928239299490122069571218287353218564436140454512659958768939120307178873422940855734183634621342253035035550282198901384557012249863590764049108919398516054921818958585096106260043304976752710509745499045207724665242362708325120322225931591783615483120215219701956228091679810031065062053216097307102779296341635602591842597172231404944956881017536773862572619867913540597498485374425236281942452937633209718088579430600841923994597792593357008927261130228228212237164899304070136456500832799868947067884953262259433416177576716471734525545073173731310737100576520189200988847891826826445828470261944227037667763454086716783068150569948746380994057276053408236305889632634908146762819179974067146851045177423524600476182822146622217826346338093573890772735382967360782553034208916811572937395473461364009070485902338924896967243538699647459509453866111825620582737351951826540209239773354364915878399126512231524462365148568202414143978373042481779833404615554253015312819060829314337094738080425421957683275997711880085934043278283569581530370238364641451735700245058771610334745549448487295612469081027518150529584404620434941678420014445612936136479952945175921272187089304377935912769000484940234489264483811901162609505329373526891438810850713616990060193136230225791556407782542529059745819903059391582019017566277223721911610863464824859131765434254351438998364377444536993853179930171338926684668927797546998728578509123274342895268724455985050103039047965076739986719262475111504267262401736688977669961577709183092277488171615725497697303431197280630603965087584152880819299825053864575647113704523780089987857433938021746617480569866376182305939224806506580938572916855079005770358122729815370684350160322581911945095130050137750289174675656990784672695434274818679559680712496239756755453960352893561020132839503518495420523034066846421106431129390791404138779602578300015908777915938589250777158102176892213834105722775213876315891262940909152176166200607244964731837888568655209182470569385117935931936487475502608365311261337304283260879249563879735877415652956811348428223298702638565671460868889781322535913971038554923857061892235464742755929937758803075375089952022136605141864054752503656844933936771287398793260504017386301451713876030396299997244251948396469136209233919170739569089673440826285060108455536331643399386526970154660244093973181453709115341540984361967969193016536626015896195898592533829965747323351441609120944515929001912934429734712795508202722427191934269798091361280830596543365441471260115784231488558076465053479036967709154406022348563569133538626040660104017546484396121014862897752095202283029283275244246088900249077407963051862001356731889235610377396593409561460072281452519570857946988056630852781178094204034294930198724754643620256008943223586719116988578359700203993164404043552911262562863529365001992160266529339155237955949407690791988397369098271806296852523455587753648726767219735088377406039642568698392117864058371735175954857571628888982702233613880858791086694346075632191864803998835189184980051752916716261646414224821474144645257174597740292829965396521708220045850162321311958057806835744427145203436051726178733910953586869734208306992744002926357676434854209897684295398491243908077064413061416191414310481567983934290671436148029564305837140830642362079495161350448048483321494691841469218675398328879948257943447395023031835694890860032315364982472917342453090603420374066613719317415153249772822494571304365781681688900556270598109221544998492976066902389308819241151888786660456372696982552481528123518746719081453724311627096612602589657006648768742227092378709184837056962198652035785119976719035186679039581288011805147898598757749927904768907122651609443081246711667668682490819506721632777496995092222066669713844010728180575593345270748541003086985594610826331705251915967660803980813398065878647462131874803304512822715424170072019596967257803307841293390470774434253765448950599129522798640869751145194627579952350938755814129330113910783317544862039787494169841953085463057205044472185942741331280696103290385757677043503912567208613085198915914882179032942018965448490958560844373347116552691091262872526022403868641782333648073778561780480212624384551579120264828823260794510924844013660589662137734421420284267170138811218947075505758579267077424422897980088576505552301543233704506401056879187315481702981715032300318281462412170446518436907551898004097191952971855046586652758062093350271648569952419945331914499682965470134093859647680018810189177811007302554716979935312588325956673303069369216906878424091235398525858744783715194078818458718078759273383528315201617523491099524897787231930219808710898664819114131476200394942006697938946713153474959792235074810724039438945634271832012105543117710125609690378480926503094273227993012619482569375995795445184630649515355665668047581764955135824566966573819749476716133331578126778823031973657179387564507994326232199437220528077243176368375100812092895206567275820565463974198750117914208191678240485120850189009038119343801744600053211570369347578608173319875929878866635093881003362831003524143415433107493662056200101082730160010099729651077668142330763562593541295121763415780559956883091576498230711023018103671267553343816590011651204959729628522618881278717060130594403783094196465872588874239871144168439438133099580969403688980021194942390622320187078241806132255582100344277896428060595354946007053693481045721511056518153379979761763959215458903091887525450652659926259213518633913499137281868088048233408650760955749649539624638135996977642813831623293329616440681166552925479437364014337156104096428820009384941514497586537893889585906596162590357296171878268681392259335835962081272395442497306970903196415694058416151498126048265432615298921717661314588064835375364489119431109340890560463235364424816693509123610220584216692409799419441039027720083486773363750361841986682479762742308188057472528960361723164284275084421354029638883664578085057066345929616228266386013890869974006167855242033273982655810345946340700109971765922945502889326343642158803846434620350380109365009702494398096748043824377876194517935029068541194192461256562745303353355823211053291839443701265120295027482894607952401768132501251162922521898945196424025990425688812399195689212322687896054965741026525230485653151391085073545850500150506661072535099709164851656822013992827267013432138254114128949957463880818656450478681097663749515044399769106922000490590941048662314123989940647421085831358669786867479197012019250154240623480693211285867414787516571759205234477422067076151389483305436876511010231803451164316826657123072171958647028833439452277003529468959883535380979021354664178412542998765574521344107362471989070466374499682945894673466670034010179323124509870729574680205311695251390438454557832860680997105010262796452972914400903699389756415244102711263606534186118369423635927596115177675833375517466628456819786681716793655934185019538951529422750649098571137703681516142916365225922960095149876707860981946369272267096758495242723747816642122448229046446246134214341689258341377321761410128313220608875606463316552061769970191528159388462694252273212105372118352329202385856327125717031371614407674225999821423205806011644269329458591171463257750459722476174610591233075504025079952135611147933119709917832901639397043069544268395761173220754386305609346023185592044216367729377650461445071425374896901284223966311935840851010265597602958227100883974219185237116651087791613306819250523060346740596497608381636948109972869009767482080374011413896902662789908654916193312041182474238184887534908807104238316516022825773461720280601641099510617715473500626580514988193742929229840926203992692067705518702311490754554179775940365713960653932205943009210206803394994639794858816472342136770780421257902960027476401639202917535248345332943465991381307427166620280385899422717251107034922461769351998032764144680467209772929788561987627637000063256297135011297580808140346283798875640965472380164840625101409639613284422418026531894214843754637458558979188689885330544532751216234964690520856652729516417254313339078646374181542466027826509519756771399682678089882931046688930127650563372975853345480560630671636816200838368239529638979272932211482312792923111913758582083908264462505374391676748709815563686199224118781089344205296724978837082276269615578827366006594320335905975482345700494924654910691107416169788674065572648322399418468543200831308158981188185072374086422965437131097938945338819948472588652659945453772264546562260643763161429296589063608684407457837420641021286981511428275054835569321674046428589690582579629147462318794358840867650165711550112841543716543747667332430959852679497341923686513080060612066342691821827503444671925835535184986639622132578013660877525907683222859269839326764341368793683072419756753180726306562243908740469150518578735367357798829119135411887212366434152175083221917498498399039195132160350400029992187966760425531528096453085833228873397309452100011668360004300436831133243635537973420320110783989868256213429544049797691813113472630698055194134964586521801483868069200662004360831538967707015660840117909604626437368778027875879365553911501924909207613283170030131033986013903692601307108939531293145552236155886887134107902552263378885378325724726826486423387290775634262703243446521700930276755098028039419075643667224751931539012431105137280007404281989379152815068963883965829368349037181546421127993790203352784983592139425244943552395793764254245855636694366444345891767272807372560590948634566736589612864928179540913632888897569142502685751986713966089209747381189857238320118892052225732285549627538976775506293957854649377355123910529728456199554576144890162668989714503796673324578174314729970886562779173129152749548226693734482523191361739536290155550221192048114641643249428225478217218608488566910369809089738841907289256471265579127071114300589835335177755628583123226302774060952767163105005519464002932349905921010950646381517662165471337806671008790639702514251396554316358850209636966653513154263630021302087878546036824029510139989974398692496593335221407499131822541252017524598375224036208487011629190186948545741642004885098748849699921700991871376663543972880227531607469028049388129419396930659350024629831273214665345497897690126576771265554375898279880041155783820315906112244629230371749581512300851945128230055357458764477056553258055112518124673597691945793192959987697874557647819375674635533116071351864066554018808324351859861183911249737439620705918287371567341348733435560050547406044576239921506017803098881743905759616169688405198192936013217040374746287257477561341851885350762957380249875643598059391417553526182573840487180368289601411552313856564585469166026357290429855774307654035144014786290755642338059766663247961144296776003252548735982836520564507337033648793372809405634202510792444482677704721870991584525011710977940071411338264203959290202694085994790167065173012839625931796833542037470620152173297242047261625284755946875348590834094778817515045417456896856473116470891645941117094887661547809334188396018661751091423037788998197328220256300562474239588717613226007979365950607626261729708711453347330356641675238113400136948333930793848385503147616972415958774680185020923455709192394229578448413473576036223998666491585017961580665508326882545643242892566352453580881283178551577657545475662337062311552079565931248720848348956116406326764549087937388718656763453180609361147837300038481664486582818437733010343223603790742715198436172537908282409708384778281997880813263319020438005088466134956131808846217167259570030392477780347913929991175084662373651039106179293957454470977256481158652999102759389902882895521559053805226041056991843866247292371771159989641156457201588424790673960139113979915487573678148433905259434611973937857249767491705953103254435266746090465042183664629262069478223404003280071328403176409069361451047229457269401075302264094411651368585063123701890085930952884932632634930238916147602862593572258148688665597765050627018979705276235026849556528015604223983295545201283862526402485090018593466686410909820113245764059595054135727579276974192384200516314904401187899323537405275138368788857415263805178851592638557459077352349562763236966942631720462886855936119242135100593475601376277642213300438513466646732195201782147634286985225198136971126248964528389711821898193369031860117109790570698600252995507067906461577662967649129198102673092276731774771511611613439466688287175008314039384369588769679630353271070551753113669411756677054519141318016451249531031580380193548884081232993756040281762307073721991297497312499587301172312233782325316132691992108548234605757245317659264050625080336366235515121442494337773417514653498081169342429186845914476248202210847637000915035841165374147368124392184452180950468551359660022901166921035014596018545037818479061387957508939360881127271351273878541781897774573419767816027767348225600742304365922452550923245978540688306855527336664133147697897183981633024407782447691570439947776012891645046330566050306781597595154698374416983899839485292797101068862852459192749035389148635521647674392318201139644134398918162132237849401628089767559594662471921398400603874217126783315503021062966440882958856990694982516093695692419756602816830354707661309154586884515870896969055039497781160115839898286609153418208555595913777387925943896245897581271503915347474521773675398374734014247492247572980336790430787782308381414222403140122091746737077768084187479627385538864136145429134294022215311982891919407089064301573643275901118057943861114069608900812230040627317342311411804610844767309451706618020617277170431889474464657128863526496115763556031121491468840947388901125517351212419985056044174848950590732831449035744560605612498941472734190231873960452769929081363002479808136236581024179815808625331354198818349573862173269129828199547490697283079642901484103172932391684110353113942403974566067916255859957334566892725734320435731644411891091881772670364414228316042322834726555657535980217155189610273762797769933444059504979744251350127412445993195429595444891836101888400558284627769256733362975913394940136278000413186838959811058515137599274826144760967292964823320994866623967257831610655944811232846597616053515907708536376677019500673950903786776820939739028059217110376793816673689944959602829504234058970259697667950233165775752486383322567365454223358426475172486969170398504832140248279458697040381657900202448716205275330924532674820306543470547106916003969586140571473097393196232707299053565487887593585522707670524849837959765467435215882720815769519096398038230163726251457938394411898420289702704923137980402962562462402371249869239569933189626684469134595292646405251228140342497109554606682570766835890734442093660232732677749960577074902402436293417126832369833955520701355583440350621263590665663333649443092077647489242758148130802084994420224012697675972557162705662887508716486704585824556277654547226727492216201651809218914061174133751905623682875272167704297818224229320842153603097517975346814646250641018627789778975275385667660024441996107705314320127506576531238238101294191292948140523594264111040169604576830056767240312671247994311994271438154290428001457302828549053317329034455604403662007355596982759911134460072670481847332162589195949662727644631747664882150228254750064403437689714746321947210287618698720398507741774864822627624267274476732191410509461542341653479834385125814423192706259134700085991111700255807489719244306509993144021706154435045509506308418218570141528456042984908096474682141361098236999079758740910920950925295129057248512590762664391162292690053318723767116800920820258239369948451388139280820819676555440316667265967619544599555749244618861623186263157885640803352024367494622548518311550977455402059328975445966769521440293356567243707336297742002254720001664005446009202162801271775120503708421142826961217930176362424127707785527205766006721989521958746320538611482862812729703940466013722869590809593968925147024875112587598496239373002139948197754055669552601069266813869990654867757219805840806979028821448102812212454458132448010929915782852621555523996662749099768461918278215338218739069042755885332843554062911757545123919856864741199770828524465540569006582026363379533798225496068591259371147710299075944419715249321115258044895399968482180829765997000215798009531064079881552220990500931681449042736466040416101633554966826784148025494921865524041428455638644218711707365474604179862786576494316595413135315298943270908806197640510825182273859618061927772854903652873655043228407495769774659827624886948936942540679389352523456459325651634863885178423035115116110955532146998184667148807938161190169399140818753215603929273976770963970149698217590097899257182524868640221527544295748957212134443443086429856075242906276907037576739598860131976321812444693373008556169480142638721316644794039898104269817722160932266476994674175896465954891380876165994864432308241285584963373932313888574203609810364247071909053717580090084204214677400092580891684367635587067135458246039953596812529103951721024286254213930663211423822167119293956100344954574352260154423733856721257177883525962251499222790091859371357489995167309040019424457078064853542428100496380463114002834126545021133109413888208972554832753002159798911148766308478472075232030527315796307251217131128374229657806594210964976272326578308085968743116143909764896280996873712185456809587222103064104564635296404144972946983341270614377490606984765419028627891380944915061297837496545874476664590686056612903332070722224137225790099221608640869062840419653559793852326089136218582626979087635572475070514034480108952700173110435012300401669820127327084991298951915660553409154289655440544317026075278747279798941905851222684501631289345313339216517356054067244422420588286123760053986528640699360618265950665068026149667600400149323096071345373596390545986479057010647806016167467801979384100568190269254181970694194924232388051836434204700040550702498232324535589842594152510442509766372947142454137086946705667661621560690940807199944439149094084175607770784808413682921918686449764799894673737608377035149645956585493723251884633868763786131182933872432613338207677086218555154524528089110071823931641536908398548583015881808747744785078509962380957582201327192083454472281766799762114436889990915435107865767373693526979461641382091896303931223088394934487768779187465355577900982367225878289774898584272898727819609169108583858949580426014762117672601264590761925510323665506367127716330555497498915661039883830242480255824850016173788805560120985549606674674315173577417311862593716267164121243022143441871042135006284125658866986471666338079100581129252890066576383012005375016802244841461352419891601254666470622779263655370426191911344559019204499605972211827798889145920071254701291164432696602034473762102176841202034455262420737004258006123959072206782406555861374211158317638137456825382239912195564240118092041283606558343269252024910334002221123044699400373606604355861238572680418273705227467778035384190731673265798476200631775032856070974759294834958579708566339491342089832423579242838228160142100649853089606151269134376065406233928945539130409338996080013803522075547982316199113633904312342740891216094051342949166629959907832707687272707378902945547523621906434543027513994166447521048591105907896145057375609214683419925723440944386038344637648577918506023171309268282332088759659150453836659347665583586544969543915279274511488294046495416594249641910634708986785737127979383461607999444183970266459093491817280232682052613965522457186715807971321465471103873640991700917670055766396132680618109894488678765963336285252577341280070963005232296366721472967992138184916959455978167292821082033413877970927848492669530981649846142337235819372250020720325035570169782440665566868521442828511371684394991878804661811683992634259345349978512584393752762719710633436326001667158241088497433677013688691935280770660192663137825925810420686956503748704830030117598534149334002869996119805934917276193352298679757684946726970222859367362868782215768226540587217458975145249892101711396808358281123015644458421989145975541096023659413265069496312581064397419214463089759008800706620478955515622687199626036761090648486112388134843534939732663289203237090813299624166030967190262580023941376426519168134043402113905234935557978309432640802385204709224734134368455917122514892186199771113574847072335277501526824638469805670995970448156996751420311789973220898019027686260103150855075959203188186571977865404355142350746554740646902887851316621530249222372431820996081565647979746884034422657884641500216811864596779609332119681466728889292618286863071215896765675591384510488294115779110468216259925418895308414706818721830372410002347893097100141126151080475250060790581831829752990134256790473066493265019926973131477449052627602436779360871911463447757841964768567159977617170671441919863098851538357753945904801741859279333987429163871829974114445436407607229765949448668638454039987428805847805758402470991763172425500758929762386671600196224999372105827896779839948737217596200912797223789652308299764099168592648804744426846398417638585844347921997230499709467609413641182502426214302160191988634247934228727409351963476463701914595359066818084373026671849780976240207511010993638877496316551047470812289824889043455920815160230759732966601375511941789479335126470877768068730541788542435377990125059581542804979704213680532361523819668336448439197595264424531337600613083768161017401013189575909352042563566714954013106899469138626169588307958066822374972177129027084913578052936641005047480307178175800021885333307755646489881157139586068076496915796125335688932376447188452539905283523729947531785795262109708654721873217875681278458189443970262394184780496076262172669173687255633094327799565503735003561478453996786904978618926386792318180886452737933053440954101962435720487313570026722701721799882895986971278889533866398416807139966414222890751872008700087676180471038629415102249058190710413997233928620915890522788783980528209847912987411485825654490083624941231021987594814475390370821088100888551162301640823984293318431258680867898962361759935779326147594000930132753284022266652081471889966578043623696385933975822405218846504315450047773711278079288373882992062866327125032059165705834785286148761633089520168066338987315557747118565480766523772887729111131351206873577014551825767834167162382777091875314108387032883862726895627439796122514540378056687454401544863490257428513632835000362389347989181934622403138857762493159974014531690738098478981464824797057417356343313692657881404865784113635052676906323837232808736168747162279466276022371574789350036584733563769873194342756140655394429521995110782495252161226722904947471959670405457738346549114717081978323021447280443770845265968810166699102665883761455455373676304097258948787516353900544871395440108680524380989214658758398024275616066842386022750815325937576018549819974043542596696795148407395572991970328073622101980890579781432226810568905614689309944989511292529394196787304009947962110198682164892122388281756882976058692740966190934606147999449843325010176041874321195574897454114274958276793236987243054186097089996481518769111487245264080321390909803335954473531959756996954931677578278709000827934184625777815543708427809205913555114897281688563748602449209053842139100021984387760850444753993880798466975233499272115344862711187471748526761582956419918781431875432570183482126343575066184554147421043524932803986983015302382417513930353092857456737350796411992666808649744323456111893166744384917784653333091209641233473188944536720450013523297037431727146835048497129638800091460877688806429811847462117156250860286165313590664155840154069454359790664116692970830890420900368950500672491825046445175711781739014921984501139133494321124437413798018098285678497467842079293704728829154379169102804993328765860284898061817474901702786659413726372478747459299324350038891827476865688449884920254735596963043091819899738338719584488776163697768162111772077486280219343806140962952459371103591953622473570995709679740629819046638220308873723396383368717046250682105773585682901751266278578440824268061574224026924119836286759738574834565444980005857976817864051552830181813316822614633816236091526309112249151014885853539708729092941458168523237072778587814473432682555243829327707833763105769569663680957787559153786316566539004543133832079227122280889598475347461919581660245236817237758312092368328415129752992939902720130429189012767700112502841136772619743644856360613830683561192276233746470555536861716948057823454943987837813047834080872396784386222316451938090030643760639725607075316704677714172983178898425464276444612085134203923672870587388826615038474932757598933789635924933944214011171029661086399315046032871924397291131944257313695660595541537157589542536528030382301300824639208116553854502023999668649463423470606340552138528883999185537435157337612128431016553658859737933686996237345716182263343344090004582081289461410661446136114189646663866592482082455712867729360253220733983270517044276672840251890697137068103349429219686236301908164217939061270034589758404291019916140473492433523966480552528829955491419129000325096265853565322219318533096176856982343002679821808936670924616978468793630720216187677004814856887742581826197892976500788552226192769506693444664049194302205190486614668638741624613717368746385419920493451598318151961097592213214496368378707907119475880860585341779447849584227991616882419999020751515754414869855499572327215683793793690662441411842910769657478750658622820807315912606296109398997829728643682179361407967538217240395051788214093254518985985763546414050179844796725585326300943195728865380551911684712691086660943795347732605019345002771059407846709829331247284847407315217087366989065728201555052093186931591059883165509924466250037046576356620678972725872931669776799179455141052130575760316960187793924799764583329947250721314217449219371948758502096386339843818243227209868229748901268574964821040998380212167017898720294538055275636202823025980797721278205181438462706376884620683096855661005069357417461352488860688436218225797415597439058456247209688515915506928351651040253028502137270564068442788154973512327278669567749419434358410748083487941665219573858757248006156412780664509708386169033788218389960137259136844378964385399729944046626353908521291986569267622701636700311929960738088103018357867908169776041259942306818132999771086122149233634411919902798389511067698003460813969644756230931211433164195145946629382953297980404677390893087667745525422959515330109732889387310360111705771576545883754326446293912928239087464990610283083140406989742599310985053720977294617485405325251887510202014408504593118265838539964174406812325137591486127215741359343341460756916306315925695816664762143789280317805070490172495740194138587091634969443823630089893560407758672730981021269455442520735585520215781252893073743534761111479553063363550606452432860060533095278706684746313152611581111081193870820925690904194972628189009815647875214662465801575624379828355984634183529827798823307722630915908708009674452982216761137470731701384248897582238135680501466798078579941293123579186198507788377905992520332270983100207771838334961653398866170062666441242226464352271025037145430928355434352612014569997795291434290890856713351031881015107617884159385844580925365133196291697699759265618583597288048541938120074560638031206111711759564996315118102110418699388538757501412431927641868477973043400663429431734071954936930079438192343512864904464637256396750830664650836656219780503283718706925499149312538180304088449154288951563205773018841908611254794224411385986513347289041969727444122447672217417634266061721984853102911798669777524708961371833062465041415011841733093066501237473309248747995639024200895321969477897860941813293844955423138967200446495393125814226963797345793197840598522831295097173850625787779378800796154361917566431774609379697500754021257656277690246148100606652824295808181963953840893314381683664513266795316657967079854371208560014947585941410907869966159923576050056701627317008559767937389518891071847054425005993558298201518448112069698645522160306220987967483319324776027401400945084067073635579200598548720006587753695914266903090175887759636427286439827765321394120949373713065083229529973349602607610155935241191408817214538958328913292266280371149782160080343022365739707045536153569438892884475408494226582572917315365766501647949551016652399584358569058423329006748582075585772691986080828415797573091603617571951330015306744332376164951312277931529064316056302723247239916910398003668662776364810406961515441441331827742688900627990114704944339653747162088898819007442227595641451553906643713452515095783029259244181937676323252208390587680096406341121669285946644148407365671410720278904497571314528243476087499236508213876378523141139196558536320257976919680359857708439320783647093873006496259772455374051323706232310973072208397933236404742627174213520160074016855147273117519490307850068668475349257418377669342565115736372939683746745538273998692422703586767121295179668827055851133869912666260370019351858830809538244612523709886155537469602680536997419657570890164024554699262480287376053515534951967685836321579389555111995493854776917525199135209564676868124375981390514173347551532053165944458384704926306787235814771684144827743219404605858095001753247031108795940115943945168858678064769479737546376583298101364070002214151787239660513595865500077337114851530010036351615247642416821071151928896909671874147483893300216151322853885896403333972547651200760690351931853827196419971690579301385808756554843176303111467028681038500000533587226271722566281661897066508296983334527146076037483826488931701761454111259854328051916687786756037245143077455148243672785165804701349765583783133401535023672584637779587875141225138932888628514893497400483445392895749746250782676196606239833168469924471312823027868383935506795212817198145549661877609714211890542628829268122822045570191763295119385767646176054121166697067916954568050207244680238147503060281565633217230619451477450224979048056799250818288624115910018619261423645381433287659161479142945326508229682870748032691153144782296420480227805175009066882964291720504921431965539743815486952497919475080262266042231621061996912111223567592559123513663388280694864846786398579354213045450954623224456655051887719760841786901251051234852747014783861014891807693106604079439858839415881515683193161515853807857798744783439696010581575826240046136957729330031578667057584209880583790016101870000552889559807061847735465055989626604754617390332213732247888017176854679622342134731674904738434256281560430677425933510708910177312034388754418233357510809482376198048673760053656320913588391013736375546856314823252597920847060376954439824807479870823048437345059366134937671998777598010515039592009484217353025640238797990682976299657369684739123903219451110549450125245328172501594104117334217248616088506824969626940433034118762113163313544372481643786679102306925975996200928227204129679021710198488298311243285365379944435533253574775290617628737872327111787256215446988159325055751368253615905684558860809814058162394761103799186185377964627173961888571612970955605686692782005195356480106796487018135328842504060949628576097406944056028567909330675763804597064871068888065346831063438640562132502751396460187999765073728037585764030821465955581046756730568740456488699285024415789315871998111439589673563694573801925508123187924435579839218963480809072517935819466926586818413980105268964443863519885533705627410502674747180106423734882970231716685338032009901277240682658177614965682177032778894360051642363712956686114808176104159293439932715039894472492935762878577438636297334441971769853598386204197713252780505430870402749719537495788359826434091699605833528129394032879474290833345322708574639376770855422162213359680068025260492167748604573303396834444334372497253493904435712271083452170198369102488071752987460315299343479660049871343496295214804083718829898263657954993935099049217965669548360269836064979695789114577338681699714561886337456860380752346890063164276912766930992722008892267717227511638839875845787112636406143156595842169622968507509139255580827353746516877233541368545601761201189073541082011865551651778365546457254850830689387671554624187332741257469015972392327358736562146131562249794653743379434311744162955681016442933323299781959585248664342517634035765985271174081210271869183342293527283338167093785702375806720535170357837757901434720361482024421752740533146313550093710660371111199174505162985165318418248959743166441840127099526611481555010814445746057154147656784490466456602809336130998477687650826408295772826477211703160629126774284141864030140928396420371672819622632275963401090516420417342299642567091647755851844452471345937986656574923456552214309388048552704254979954339104728363132619912916606615268522505498718020612897950840202313583127173643956306977144564882208488498497751006449192139680402495428930810875493737412131688861323074019075412317591081028207155286083136404057164418492233691876931198275421216166852211971336644166608700248467566019845574860349913171501866894768808550075789914796903740933181543141369741807072754861157333506384372499868314392049549385998955930531253455900246378160669205752251412274338569159758936631801322676181396756492757620554667813211280269107964339889862903493198699454852106274097636279007673267343192265872451792590553234863805841820193418158136503568078484316673603561070653229016576089920745396807837279043405024898566632944352574278162801951486146235970554919897977244532976968344617934929921209781082462994709192795918842464213403116793256088554832149692602426489918308384476546209629035942899130525461673348082402945369555459504076945268394657406016120054489845838202134625529118286355573131034563062519287089679342231278329579217207973539163520877879121147443209727333645773998552555246160575423531568005225909149833385381811881112197414669052542872293131437654680453178397802890532077459712963822230083047123007536499384826927123901335922329039077998340153519818703319954459066625010223006439014087915350073732119173696762270722988691015197708767126301551217481993842622564864264463222021198305289913881234754419475953395494684672664229086555589738377850253537511572497308674140769653115525140723382851331768102151562114920969490069051963820054842996925924460509495492733797440103971259157455271462837295722340021199885878523429161547990203707238532730899790996775526672383871372208951452744019989821063210993950777243598857278925803535318081885697912994357624791507097577094023294136834094370307040258376251681580291834138917739653223359425027598261547436518495008036102835893234870823710565279151829611903422625176679299144904897495904638520549553479324348973600912988706180258399782579832718245254132324137172932195587727226029641219359080070747569664757654360088215474065697031671899968315873784046805164832594416921796003164775766254892111770103614991900452165094351030633107047118670424732273352637734419780079180214712500390193838482604735940530467121869223205313228188872135613107318866239242689949483256224916820275127452582805176450028829098229957104591023811652806670293597043155413660053392727286187705249185499965821236101840140925073900549969761966070504863946663236137151881987075815645640707733872727635182114788483398292374633010025114464389045250031901458719322482218334225239571008216593813355395149343879296261410725992101119246160380766855658814249819924092476130876603342895923574424127380747924240885330352753340884000283258446457627785578484199409201486807705326592520092039085188272252916023986989514597830991608666224303302595877938327061377621167195376494633932900531771935497647772918184631029195754826233156440338090738740397087575719868620675300112178157132252753611655747987187738693471167905080445662900698631304641293138290825464792960229234173050200817602542413777625335049709258533640388588084812931545948986357696226108272265112087763066434135312929541191286252960622448350501108400883776018255175285794140563072482862950943166723525793667485942661678766680312836403186015717146163037853008066579589090468082093639624252520658354123898837910879795462457655752647435320963556832674177441519198191960016906731036003691612472227245814800045956258950088416396031638473341449095727951224542779269046429250510900028200757902493066836750018440757399375389314908657174897907335846662328992538861365143850375202500557746363681927150093912712725033714100263291736176329750062847956265003898855290059011927911937377471114812036900159839310321579160203133357921941126952059982484882735062429942786764043406659645079556097282075277099253085180135932426569022303200993194821265911814171420779169580455569099586189340062778784073390859724861131017720638886770747406841988254945347345351330848126511650314443790242037665796227933094108897887930035565449320781482901374814507683854868413074679729565234855829919151749399272488645285430287532699316694417878144217595299908641026906204068389560629294573332477779660501311521731266144505818362239996508381304350112945426363279240230036155913097601944653544400444928501176230919220484809697120743740188037286056774157440076746624138765825946969308228681707157743848197218960930487882602548635394166766513656022819133669742924474643462593525456730170040390173051518720220221719193683332709245967693088087066283779816077620633468598904003049626016439312635924007265211906971372393078650199648371797888963799079101220632105451443864736712733986143094306423007425635936708014649133629867110313520705856820571025958943081566992811217188592359992851949263720843544227724527853860831192484052090159393935923644281335265925788546053134600637351495781417940020198677739524943059907031047906342744864101771291650366803828880067292848591776093101912160026118684261554467627335633490906971239410872286676514253770990124575727945331846527890737715995424542704315064178172159942859954979386214714487143417121701809419650307253195398808984525298997351866325834900728696203701421695272334224129476869064627957556870202329799743229884126613947820976482982222712100367372848130018712063560606808972136061194403259030832225855188949830138900508733123186148940434087934216789717704734727042318761656797901647637107812447457863363043803000260736818158660298554292065850826517936274130835140436177260021678281441851357000429550567120595584927260415985413542067287049909903421957215047277875912434324143345133390185275397327986016081649857221201652121974325682764509789852377196114984255743223460874547311242116896602254925832162928933029856123832186001346581994426062465326477281947198796465240775049815124670609605466161934141574315292189125473652801884859892964928989621363159760717967051835517759472283855095597074612731083551620830500838385675667385055670504558934240729580458528978785920083912437908571186195897724506564941659173545516899955173447172702951742828559925183125020447755566586722457941559849898052449712530864339879073422900926701380203092950155548485494327106772069076323768820219213897564344474042398448628190067891816419834084610313433601571382127598270022264142307951991025022133328288357380208216327246486749561763067516683861112390031476935272112562367360674653386335546100517051358624774633879059343480534199312894449027084380289169440056576606484329283694965395194714479772579016695694111614617856263896839676110787236514073151986486609257003422006349395542773219049011591717344481111993088842505967266444034160867642096134762626103830944451246434801280428813101068983662206042656419547584854607053355726937063262708226503572661649463194295669909911428247652199781656068016531311853946340024024436410638512749151181282419875873136862470217202287595597418664592275706125561451770958744014051377962047914803992551969484064873036566934670816795086670834857307021698823880876720959600619196897915677197349800230652902619284769309712976323447886529315187879575546347660335250069001271238384609105875639598805392245970288639840752101453908763523308847914956081515824769671918113389785678577835357670704155285490439723374478707601644440964594596839250783005090338981730919057196353113887814848718448536129461443535285903281604401652268579544972017094778615900852820310408753593619321816485044673437261261550860754181848467288319733481436568903928109498849640839421059665106765866393268297582040585761603485965462119009710206610191181185890331392719971681045423807824426555302445059191921914247620698172933082353070991544789629281929911150222193017138211405913568625179868501531149832787670087434593888811918206208783083753671983174308340263956977919876438199974518052672233558961134654487266697934246983423418734908155777997086453942222423245118359158896371785483796683667651142390982537799511126512460660224923411571734978463516817602968994607151421017398399006311757867722921799952517048200344296442613181978660754246801284036840096115620493318934641702026429923453424660991263985800957755440303872288594388114722319472517442419742318412730624850740228490597492401803869005095838109398754818593343402307934776902034125936606879386524732653723920290152541147724979119569915966615916055736734719566607953202290878780943964678179993170387095182047795322293086320824820256131158860065934714941683166856656029190491628986572216530208804104888330980054173509016810269701246059601227792420925620633678887664044608096850110538194036009274309088393977093184237664597686798613541528033828112079091600663344095590035730654517202973042941031091871256071698792885583246016716096737061499593424112578400415326120243414951590459451253839787764304821248013226372055129000248098683070450948073002448899533667945795341090176855445213808603783076092486707836638806141197742336101253090428898317629991686131131795795426003884835675697059806482847579137514017616175107172002781047908859409256548786204506370258736339603597880386812862166147236528719750675891195255133828014186024655260436180289678650660191057712350989366747986888489768416660892149818742630185529937873652207431048697393224112562958924946721629509465712896878162139385258095373175620010716590294596742768262831792557550171386053231586468776166024518946103187367956413378173195369825080416948196534040861573009035472739661405846447846663245534377437740956890370886795871641208567666448798485211723753019603190927631767648213843028855758328386910669759840124750380632664990374817048168001532206728562175326235670990115829210629959489497823371869301493542720712076303175830807483423755941752849124799472418345583264627062027228052211004131452281510366137379185766153724125498151345475940820880018836162666633674128713878586220250337150234427254908878752806688731353485310718334047684805006321207255156220470848640442869032277310819026518629207414293045075947830452868039151519084717105485821148104691316520525163328911079671736951157332707169255710468260651655396771438218376150590533378656230950128332883479769821054992328246305723737200017550116776342234964364490771001553558737303284888110480707783608774209807579363776555925738625217845364136820066165697688006649773084149512304716780109607691504155861126941122655299325791350392460647933821323305306406571498826995623395338430085384376585426230874825690336319722517120959352187305821794196174639607523913029940916867452088791815099700936057373746891240691849651442935426872643110471197094914804743266910339560959699428700903918904151222878011397431558138048168232274197029928259929243519570254590818855709262541834242343289248707109484517714616734646852795743160731963657222151114790159093656614737453296850634491621413781468516082210650519078591314184427380463592564614761471333476956450285825047131433971533196009690167530243537517163251517436975956389499383862695015626990068195590387363843855981266063190915406021716189869528188148227207682779375124752733510506383781605518507238325651020163410016419058021274208619417923667739792202494434449347007318859960625257506955702971057325972280323118706883083685859785211804966933616896170528398319091894020485783306333642703566921419153717898765092892790389327410624917347785948724712212665858135001097315827426602110286878984457211173854136216030776809293933611677815677900512126242021620107100914977545972301767052965127218425230530058741696149929583320183276654787445479026329709844060688169645254011094942207303971853868463365601032290518781660362471278839154407476269120359224086242627978908245145422770352620584287398845834844010000324214330526121602475859410362694744696801464344319746550504973838045993931740306595155823525234508980364133079859986339071656547994619812228545816552123284676064742375749885578750988723857666199916248751052406830560114079533722033407005825291734511454862479151445699952737105911766238498312476222215452280172225676151526465342128452572980367784527919508334121062053290149663634072827674805263749706264746667882210095360811658217279232815996160912217558227251040569074493698202812457885494129438145161160058804194557796925078635939154612813796663863338752669621071327028215458685565801356787621091348470514962976920091729950398806066476057351403469699609133544416981080965890499918435709846285640895007614118110056668191434184662905918996127354326887724093552300002689083630587617669190325189927027192896831314276894749419145861059936848341751977693142366170896082273429777720209167168262213598252036422288258745753466894655743641658814348017196858130066231247939467409581148500290077349959529990120051003641510167971780502711638129783854647798779825569197867616221010994442466367588628851698809245636755465318065502756867288018942328851255163406676854182186919410711875638376017296239715579513428675510110125933338557325794667336036119690229910282588342680446338863694885669354936587882096021832360990434169472917082631976099552175010782886943376991702048177396134655659840260318965187254090669319677324209272645313651393951443650410772997803677346996665799023639657913538085929255935352911021044160170259034019232232575730880469806783904398541376426288730542208185334833722490274387241545264091653743616243086839068963264103566452272314385941535608005961735958432931454187480339592715647568234494129079614228691427437317864876393979293483132715839502218111972041726786721091530710739545898034061368955430097819807752291459651787442147600166270539572234288357463714365952848653930731950806355257222200040456478866608425247034469625170410718013264804135693184272702977223340367180003282124343588518051549125436894520184523515257614069286108875892350371914818055003201793710105257080965861565101964852910309105928170539574094179772817367543817555363994541964135458727379164480962785318094437470686636305547946830576163723333384926744811053640215198898989502896274056077556071535376986389523474147972133689755892450012632775727659841650848962775768874572885727752779417719533566555960172465554527443438717049992605806170459958849523855514774089334202103438744064716128850160364744259176761241088181875925368480284452343543236325845782916964109428711720701700181360747753002121443497333560113713727113542577164599446731758391459125044387291748078770170359757832116532860835170695105861146883185881393449305709233597179565428038783843864706738907141794024336673115862639951131642181838105226977212468620622730975923351397854240456162404351509798514817095346586842651874410009421281177195456358835857667219100884662637396036311996461067421141059893051748711522797772511873014317669516987570331743836297340488771632918682144533293760419376076346038805895285635791038154883007776914490296047194765993170691023534801668405796478705089106695695008498581294945468144653078006965654003054034033618198093365172053108849930523519438310319301304717836806925025195540393947914132114760691092518709007754595844100951342443824313875992468470411718001346397993439924210688120388480856066895292594493527972672657680906600620763309506298468512471285488388909576674349509827507012714765614128643059441961248991482058651289731961224329021317826623464079786593787177965013772536830282699807239000111566316663561816892208911171522372446483431151438940444434126328766014736668910185331245883164732645560256109157857718758082555355566446820443752701276989190597084092225057366979998552305786168632786553684761382182523004212559450838708721019572916245172116959440605876382455389483154499342857093137163152978463426387306167062146286881295948952141575873926580558047803008883116508255272200196211271141502811063225589137712076193219398034652815333341796534931043475089233726935290158511215267418187893091717848636471632607676408015206761963986809967608268812533433462740720645325230666099554086604171837435631436588349084792670780473919834269471864720626757733832480170557554865283866190088459206308907286798115820626444927336759254903104709937202067303662815470705914129850162484197171552974687424626385291356523820223292033695002004697770969033817986475732474411186177746851969260021597882068351413629169142858716016260360804198706121236505624580582590255462258260880532376514528793099548570566315667940009319480965089831276464141923810895015290923193342286001246437669245845145466990214219848451530005352729752670844931544918960014170479205612876617371879413909094139621149374236845491892950356363327079561026914841656991225778470880353230364298761411836526529908183144381735316882672904384615109763060075230975099558347400537750623272890090080439169797771341549592673885211633702377962563552934752602413807570571475511089367223874584083634486097233497330755362405856444678312507623471786022214543107537281738215036193943704090634850362749430060133831452478386673425938089907970446414772989613595688125353240947546944412137370727638178797917680130968165349127635452588119290131323780419749583063335604636647129656877262072074458568039386086585691022329402828935761796149622165703065093832792374042891589043222195056484861475041668983760734706997883433875719852671396996721359972802039945547541083299206282910637634864857533774073014124543811670117320454616793175957635796300754502621565060265638437175610359645007394041222274081207921819494498926771736538301851653419237174891676896511102858138748600538588444318048597695604474784763775518500601388479392928408710919245909304894595785782893392814928427030653841630903427624183633230725354894501113804518844123061693038590998434640623616471354189440239936016537811867474253622011516794755917142957018715736930390380219580511892814518649862283590160632430441603722516402152969633084081949035937300705615931134380537581428313084861107643946578293357831159928253694180143206351365467235551467342412688890126927320005297337760913990002256586257433535124243747017373896822449733474220629727093906246179872224930171404643865480624959004261781422380311361637353027429380541106706727954545159760232609201249403552416188260962234722908265438515053681775221689138455796143180003532295577024564489596986229717827982426779836581253074053509171001207019999363094639359990913860293294570540575760862197983521844305095930272338434154560795210424321004295451900549628829372386453475770008434784253149045716201786835774107397005377223105144105267767983856071403488199468466519114565097065923121562374992420907199629581260028745491955250393638946531204972092610537064447964169659093668086271416160208074927466723270103531970726716710089091332907736845619887468680944850200156126851510318425185849954222712628798391378034394815663378191130508281859018484335043847370680009701794963129855517566510094307760487650496756898533547537882527824354233094624949387655060586322721637059969395910857780825209377088804916771468874400443655413845498251109561755378329075370606335842079228833962666261489747979053545124553758195754767438859860321399564449481460640316950879005187973943311986721936093804084088916298132770238100593600117031911026491524573749873776170634139834697418836858017048905550304658570590114873573980518907455144006086579487390430871984281329434585196098069182059350951968027412086725377698310753019240654064400985769162370268312906469497445272829747307426741086751396115417586704430623532716978058822851015429086266894990058179093046399895285000142557911156089364196376844857180391116606738284535125639253523729275540247472097963819132552230592930390588564954382614018571633154840055384037167056494502017808275083885575180293026904821346778060243101109936683979579834751322599180566918689289798892679371478334960518686245935570895321869977963014470658596933683073179063527532088702870839324716970491105981440348329763001229674910338762009598775102868483218924180895067658461028251175589455240410259752319001185409907665596080479475680579423105135531337961281259488965563375040065231087037487904183739973960493353296458830587727205519109445045000623854231073013520743250013278109294606334861513266747792400072089201797632968873216679004610091278612920219455319206536777129095562165695900175658630024632206617419137577252779321510267159878367732581707839222758850281769399306794271032470704283493939935363534557080863166546375305461630380134219961142250243244173590209058385948710665723738905783659824113803402536246534943807653350549645325552954515306724978632378652961294312381422898676656606373747037348245820225824819067207901550527886555913552526121146956534536281862525762675000362584524117737017340599977168779194789641341331341984187100243481005099450369731238236912499570638676456154463807739496965602442468677709864502229754918787135161090054915755780403137593344364021382675362489299080259091930455355597406704214297338868792852326413708029059322511435840080142578699933304084524021990993529664420063995119552879700844059718008359017387773136380976946511969900934316824117825914084120828791386938197844225138136596426571100103230258525673976387218256138498069297477488553254522437278213480267926924208509127751210441121875341080576428130660506248999962985182337527302048242472296941649015516741700787337806987081996639455385222725087297070978195895961668584359181611743224969696875865702622625582908333534610931566132765615587315628793173951038563487830870209708072630832395975545682422976403409918813276434540217997900645181559483236645708450723724410320575886185654022050808744908390464648271996049657096801170037872855432576729710960699669814456427173352944130195547111581547032343773799890852283675257129721394739223690392321592767970535830041992847507646704301960282817628614596820391917949980017787914423532138327958395750898551502396917109596320168059313641932018238214584561371524451399924523533301035190507488142291046644785425966748004945549422879101830566336750989481501379080382522669800541476189069291697095135368994460021292596530977802151602907876862353249933727901183405669211852746608638765100760025674910004186502607857578542240515303342836243530224171508699336459199703534478563878645369200366574487407599817144824846263551758388938872623863496813678082900244391134246686625831607526257327415486982094778288098185785686355175826000942087037826268892008403586824804565817533772633042239774463438956702666030264602638021205494446025789077766850444423557704337479291955667996031114344124226844755687898058846540531781308974805217214278563664464745655099836183533741730871930838302848101643807556042940904036180225876861154065182570141541444694238074551932778087168800956002299340338194543125373978111038719922844852980937021308103895450035263432334872192767700836392828140073995200149591275804204132024777067612981134179912724538176537116438722071499593000625953330875369881784623613770383270143298281304293966281341162732632778434383004899052616277759261178200194679042361337487209132117675887092536383049029445952193479645646256208108491900672608279502696251603126004940701319844206256747187862659024257308476324705177352359327254580746161369766606964939812286831852925500936252580033375732184243026278130905148108944009563740077989875437583024621372944264014292342592869852442164552540431622821335607957972669002048114661290193155905185592126389368124682168979879816386349658576647009922533697128467643972292599558345195683300886396247054695993385383334051478552706680087026922622421837186700948348427850339196783982559077257252229906165640498363674009881909135992318895519422726002474168805359775617412918569818662997538639396301816124108932914167453562016405912107583745183094055666823551970847101934752891293826971915918550643798718459084413724687424650634847452615676400589874040307523118806132618983492179505595714899662529014266420510395799814304321629033130724336924809433009967278482392433323530742226114312157652162331429576843942308019580525649592043374272175507989237347733901965102258096256023337751257410603422002932420131841542148905823371957634583676747492112039308775775078258511256659178369169879321217079037503533971005919116323763514184649852292492928534463319456639331120328814985579851097687209846419429549133443877366585561541965647215149368468475322870790628725011191019245308244873778290665413300701575799783559087261385093719632342665838040372034000402199298855428682993768179830293493607306362458683119662666441228713750776359986082810754088441544880911176378524814752398731815995903315132300662323318139621476228063018087814165211302446646990885066659095162282284436813727246121824232565168436739148494738542444048985538511795231790645017713740419510666912049407838444818871367860496077200300425106183847160055469962578671460229068683685184986207631762015836642290271596875841735291359783944279083168332844524431941444480002535584752741002544763633323080937638207147163350786241392715291263364244904296223840346887619350373096326668420808688650284528520106216921121456823893968245500520350307488283572334654893188334139105199070704741971605390734172009373548698503186411540401437048364962665943374191673196451278870965888913597180840712825188290956989685771178251521470932819115475124531372333914539848871756673557432561553797348173293378732345956241336493674917793134996983559352779281206342221726285656681778641894824316796721036535873159093550391806094740188690044259904719897702412036071005683949601981084023537085425203481823572875084847132562881659105448384777388272054334641691135308533841875581807940225414267056767733958322170924613803875985766244890428625803622042744789446784812734822110822911982435748590312898607989690639152119063906345785767735855093984402584892540052189165922458447764355286780136790953132690178973471978989404350369563489877956638711354663431968806239308927383075148046085142164747662343152375476451942199558794250929879468611461726754245343428334944988660329714496624678663178773986004320633087403045167201313984898268477379031274305082610376592826539648367213748035740896294027534679094095329331671906360845213614042606330447255058734960055187154309910446167866663284698355154052915975307411977471818012804666891531770861021106937329917224477295597724571217825916127399883757502688027893256865259742837692347336879609092759067849685634151348263985744837733369463990851455796421677987394448432840394201724913975479045761798871666305234764653065907651743928111397636859069102662417681289189622350368260157819167057118681244401900306990818978190289626194228053094824479333230715928504734274686467395886708454367066490420424911211306797061461592634735582550580525467666111739182117367889757385404293363850358309445079956289173993135660344704853506080933102860539826884434878644568656619395235902063052847112818416658357044272198661401587179733915246480470233783032036404111380090170043497857312430081234022877048966109713668592458390757412393865555729747626100382144862740018156305729481770153230429037331809599140298480188743474392896485764502891061993141970102136670556732986374008756049725288734579526647534961914006702352894653813801523843344698784677532413323752319659612695518005326835636052182136637600475141739804420540542484614928655748132708068775159343466966341782576511658746453590019057549258191152515911118228024489991789067315886275203097009803169813454806312074600662020394256580136034928151295353530079849218285239666781175198539059437200239921203739404359704800676226944602762013048764473896026207694106586367884461057408169529689046429881298576015835509685358741720636135251213246429580245641400983943271319214813111215987699621568248660238860960041672724407682355415762332667889870065706430973663814500176053241463026476886493449498228979838303858303117532339079440937483921784152747979223730400426573146272167743935780781191058994173887330844588745397615474622774311531911314381440859751939053750762363088219912593869797607787048386638220055942004577734637476383121063578580051010428857424495022634159556495721666832841837295623943784681893710149853725679411023598774580601727084395966791178941074657064157668185471027926327423733429966006792396237380411781681158631930047912878203260313382103947511887678637543727096062827885253101604537748809081902607212335233688797139978596190816055656718051711761634052529519275846836590576864905736522368336203657145483458016825232916909203447919467360991195354725372367367751730994928225172547508464915267901377861470797291497709771211132985494893643631375252885832581565296170252179814751778386034700275786104370202399731683771339524122107349333714516378855236235146949317114810719337615167162228433763606156611156646706374455344326745748453043377044140974685791575776429529904300901249143737707542376214595286306735350683866177649399418722104144077514684982189631484579195984743605825024563730224098348836765438349023720264324809267504791896695575409419426187582011568460427730325409678519976686128699514770926458566315096710458113580509032447356669262767688647094040893654179574967460809060751748311830178574240511917982434901749357060059817423868116836991387686273891340025918410714782927495535439128885648529121694881793309361733134200767393029539783181207056129312890197122246368384125327260047167985510542726027409140155444088137684479281109798553361104048979344855392323871275565427980993658378950732047914306895666061962549451635796003925036355736734289060474863129670902192253700444394297667868483823198731714533410296254826936554698740965449085796089743729005965558300432557883328927643581022454081167336389725492190631028999149129863965699595362285778752463617232712931043618823369703730385144567325511247190523855108802376341702265337367351977289700025901562256767336974340511750146257633438762723844874667215413913065452932557741049978270119456862553143856859365226289023857916524943155634489723526855328459986011918411338155223276997727040776952700813976842586907256329148385369496583496929564722869104083560427295848537232268937034368198196065649913074833968977202013449235011817674602544344198114019243808603918662408363287258072103721575688131142913169777372387780001560790377008178341066638777353315770210353690567338137123963272125747049344168678623469906941896963474879334779706064297554950180389351257122189630512590608083049059310985177616270835469597983050283200909204890050741682562715132754617260288429347429845216687393946735342135460176957550469811141358886188243458765579385548291783024312271565944978210064686531899805717412623745719683366899724660056044815187936572431301434404566661834058949545924355929717668374155174943562328066473944648711855757691049315825050830230380412017450468945156735866161659111752654248597583664783911704352093096033943711574491479653768036094558456904862232891885239157590785547057811149611102860045347905821691976448458884401379808596843792188776645542574637175568787775466503026629795110497496209494917395856799018649696401915685276835004124864046663478532581512912554198376036891856701852856434470227355872537937670474169367308537816175329156028271284421590739521040332271621181296900283947465610402064733546242577183795249586914953385730507506466535514156482821748022703396268255768080391619918562918704750142038895052306435647262655577429988440224112401887170566023602335901439609058172364633277985013518388267767711477350166505185321376069994182020130255682759376525272571475892048933914222520684783683789954452945099398079832847454882105343334220048144233950883290877345662796109301392141137955876449522618633804804987129356958706234213990157090102416618325576811653365009343127016134358891093358129214147970194351063766969733815883601394045637140970042429926413241121849581824767612334991134483581671936394063518767557820830506797326010513844421636137271731873617284158958678422269070755510398942091583549674038890198743113572273970788089139372138208947793346399146293118231979148554249422854792271560435076242491005656934483679806538025876031429605789129544406487579135421613290198857065086613994244119998021815000571016878806771446701034225989212379133708448104291372802520105694600645827284044498249455637774101080881683469404144184087280814921219236711774395369182984310754808383353841901760054100167492088932947121836492684245465388990466593153462777497122558861169543910618366050769071881375978123548647837893610748881112577072768136386231540572117297611267017235569407313532147535103641769818018977800850745376825268614323810711375025038473395067983403023116704675252974557001417473708835218539007865660769527280153668154584700161957226518491961329803295398551027286200919424582814624880551712435967893064458844940718954696190493602583210730006929659661545520329896989712535712698664340686169580282793887511167487088377233376959030102398892523800202818987124902865576088082661120386883477706693840007541142374205460051828083577254476983237550529290473956217294387079078473880718175641405746057594760462796161652040094445633861963822976322718816429119466540779864135151710439338940120861108986536022041616662753784636827768541132206823952380042776808060396211534999637935627640083372717310829529371147776402333574002821759339992933047745400372576154011503268193610157730796783451481812948595681854321701779367354974039464140150479565248324727873650458468844894059141666217586465714901086574176447227382581482833571280048372817668963164590811415857857024172958506154155484315559032751620549041256992713509417440306985095296430829876942356729723073119028709729746491119130501163300324064523417151972954233555685502065839106831062025646477458179766309503227333385196425260696097617175646411341822222262302841586409564778335004158479211402501049800453588904847468805426176877475278736286982284977535050504891618317031264686500275820330841356789833231016931614715428315776671432074842427476807893761774437526568715998702196573303889544905376684301727962112138067200645924953128664872139370253209939998227144437635207137166997540213117939994645088395735526841564073779617896277335832289775619863853410970721382177811497836137777126153218721531217389552545702972408256656265547228620206942191518894147694439477435451947034346271326164206678924082072025820112904555719437808559161229065203165096614520775220986098194809151931678603183715682028748621780158280821005223301052273993618811453701918158724439323391992508489707488128592611923350012471515282741531484029927089694436884071105939809938615321950009486964032393382672338928093663680889877734168042196847470079498305195230804403166954001708752054499807920889328971278478236374988811467321101279080683540434243500726737628109460002675652730321282313009749358010628150374846392654204160547244244967703373127814502728109347777005153932282315325018156373630972890525578091177380503119994020347836691832368442956499095963042744373511146417739156214606618997028484848666906549615912576340054616463895062864606710974166995994276842426734403692969436283949882549458833298893986976424253355812716495875386850651021840746098568524803268637888659753839869736168319454208467137849647269218830727607867603168704410690959584467264364159359719464084691601191638302849947757567569658778913071679964632773320468422063965341827817846839967183387281144745821227056539090563296299065392442126346414305368984071459852334197106247530612647308548804411330783664096866292630801280134129788952576311117839180424085464712883599769320218696915345046611754434666730974130630309658488809215495095662666779556871636982909982220325812616035528877240865409960505304695699329072379102501612194322931815723364064998995875968763990018519869478751978535304457063353464963778098862362247899769171209329026334351967247594411898925940769102932329492712416939783773229945962052941932618144824603343235465330560167580156232750962515152815578682584560417079899440324312949790615653092789707794574265162584978291740159421199661356552816468901524491519894094117247740979209040413393581274765654817548463037071316812345629993496224638379444464052170937397184161916224710639255763259243039831075075270114916171843353425068631500428545649672567181816947640782039878017488380778395715482373364236294755546995728651721881133918266368741904197356733046023818953437438416540373655393993767815050218843769179900709115516771279931266491585851908288894135031846580320966957026425071680032784622732489960837130328108471202217400650954395644278314881952455828356373011479371776270697972604783737654430485243557303643075385956732983691483608634079646155472615393217156633520486509870159076908978472167736938460381730197569197810960687900567431588540291401448281372445576670920911246652076912704713337315347003805950712767942758455372248587763469844944154667455707353545837711365086342715383121927593630694011217200608487169257550348599416360618639091859311037809228263654941361196617512352701776933779384183378771811024190572474092004164859351059770138363345831215331702816379469934272981211635023513884724239116453289088637609767666547845019973169969111257785840284992945004296019030172656685659373196920377188976251916026647724007869355260374376816662792486339407918500788520427554976358327158671372370613320215970089365815559707431817130031226976129914406387691196224716353541523993110330608582749654577601159379578831433124623284294569362056018941537208216687531683356304187148829142161772467743056572114081647529999813661862958904506100325379862224915114850704608472099889480205438048305485402873421093249180358348655870321066147895811073925835278091097835351818931549059013094631726167725898314634801243897388328319919881348650486876956251424126852142634147924157157564785033485835069493017539500959210311636489033964941804774667038264744553940762627612676130173228763023494606814644483897868817180409828062695076352072800380557526216101148058789537436420645153314277659283072262989052800239173486081888642419218091471536248701645734925731141926513216279981373040803484654531113081745746957588831023507992880835387382883467497119377323818472655558110543009375886885853745775326648539215475009443369839632682595774089913699923613591857923813615761326242077571070530365232202940870953405287410668516388177221982798855384098679567924790318003635476488328382515525775484256257235461874836519176307595435844447497165002104225683104792266889120293624930964492151503854124440306877739249715435387875508474220246032403000657278530527389316885859281330873755020003227658563598536924193452147114623913988329700141602428038833973650156383014199897786756896581046442390602218779776819529147326439260643143443058633040194456552093504884316926480466798952979682069301950865731204676878434437962202968520862119534376801240427751652192084836072309704967852660816179287631773006039182718480023382124574903876210108909383981570097004123606790832478147774153457183346006336131781204797587077422982739868412747255439518117160409201348089927299694687802378951903674639107410085034216318025294868166800656881059320698547150126560593372388465588402546774570626194437638310322247926725917381963829689194720845690322195076338982635830151343232788588840094446199163645265168214001537415614440502196199777362035429425324022102160298707385005720320804613732013710824099647826801566045225494135614985683627677749943341471775435439789190078276612304631397516294451800699564957863146476724271371198329595343951013689343118800239690372756057930520241930678464394263251180785149443601659764112625128473736138036763696954783518406129536765882424625587327140507243249474021222084256187018529866231390703655930225388545007218528164196732448186080350668897853309393568793437148999112183877342142971059441640047465712866366469285282244207367996004874885981799835494093500788245890327235842638141795225072946794318422349773483558845996188553308659896746404951587838928828410977740288860716294740003390850432599427553661621857831972299443291640340602112755711276913352846230181694197292988157298336213456380812602761831275813206930633571220208836043028001783276441913990041296331760463123592326093189793899262584184027426563461940514809244481218692499900575707429933217192984191820372536115466597174281712353439603621427743024830230235123067745859660413611350016592696639855222483196630451173209321465051858463850420758277763717924020046961655911108455537578377630771434999474196891155642710452391707728152751541478738645728414178869329198062391033903837695505271966959301401817474064978229122600604402301127285304833954911703273630816345897168364387901226721899500333080184420449061680414488055625450973954294842055526196132326292103414919182888686604434418786253855307108527446158987119346695495329894260714173212011662451193666715047042297923078080454347273154384651358774829413282602236251070587180912604775132068399440849765679184480310017211725559682863421747384548109260731575103371685574431227815529610481752906622073760991082731888994834126994006896388975465910727707584886848872030859493553407654234289027016529416450145146085581387925640146200854501973182076699755361552770289209390182157834813442414425410720601042458147816098158392699993499217742525931368021068899979754137361276008133270829859581859419894962103254299346458004217083607461002536449113273584025934238962369680298048321935838531292522522029083638594953878541515022103724109038809952002553179907166832765047108067741133011084688996115732639446957756671602540766255490012400332016993268300503772933365498877734630012855391878344806888297510330231791836817635861422656224092151012164051098770253257822492641607866544750508577561177185299782254540628933018420119937617839154006707642171906689780879694029571992972588612345403111875343423126795510543159482817819155059357670938949279688656583865346293641873767985154156347662118774199232785507383031693840810169371925627453830255965215318416560812795403666513297855175458033808812454335883541155915542411399154553228314178651807666398287035300890803526942837704214299956877980536952457315856780214504029887889623678499343215948537044332203984252018603293693796326517224909966378919602401478472216476897522249172305065192881404507193783193146036551727286021699344163045505224952809231109136139492487036951236427916066182551402641467365302177227845781279028429991199514479908233443746053895878615695723389485437490196957043411174330055309855174600518660843127624045415487884187597920169889759019798393341593378023784997158137315842556171365644445733756346245698138611251606809020011443043400162080184764021552779998952849706243610346438649344512011901503774254977908154829472263352424023555501907899424949571446207820314395121618047583370742797219460557763022826890625779070747505675226969557171609986081598773465145687732555216077672636639595054796249192684190740273222498392394695528051910539437838500973478508946573638660642122470913685729645835376539586184413475955243226640462136624081369100856494512865162241491885105530483640977482519295399432300131278472908151295585551797084954646110319252693735763851394372607871719208851899353824569287256797131997210136695584722156906360164312781143999849959967985954298663604854335575010300426225253594627551399617312590331036258143220458681326502096719602434128427167095953851234031142222666162447765093774272498720846418291532516116837817094612659055496820152725223309228443262807208368156232649187253454855782717539048329278831074742184780847655744633119534594272375012445232868854209355786812396014748024881125663234943674254221378245979916159667768220562585889642690977670401603712041475174203962897752400660455786622936385174369810168747171686456301522370443556986451688853809866553643709855908396091509495531853334999455412134135021655954233172937444600596490995605901836643013850346429643681619936692651536916579580081440185774049493407171009113079497758911049712515598444270482465087220125036462865706840210795260186031389289712708397420298839449048121910057852903779409368818221234366553861600593246864192876219973041791021476396985518386426771560114261925598714940900744884399245416434223925771857107184425202443180098246414498812308347692254379455551641622038936543577820094922658512267277356551440776328308113616408392736597054612194188932617039242836293542158457420196749135843789167094075398327948656679173573206103278877545276175320855675480385235825215704677048887720457907770669741536822984663571278941874846667995156679821511549044481787398534378071493488888746048250542763420212327865662503508793037556708072952486582444113834575164003196507191895579662034534117897062595280775500910862933053429133905653760346234306544546762435175131003283807330639527773580245821184279387077470553317865817002054759496924571947628931040797663509425699833485940537101418414729178115469739086409006812729893952779444757817025807168051199394227307833644533193000953880075653803806284360238911789709236984180013354395017027367033579552170980896490894493164612038570422518681372916467078619170574809142949848586956179961807379070978438029288152555576772837336752804507011003282287014914257670810171769160708687003961960021182399747872823042334868821090635561432080613078988171928137450710562758994025575449077896279090538084430792070162599830785838704927013969679027521323775524709996000313263984947320730526740259883014779899489230724602565440450049856096247487000107556797853322769923044408485907367148870355055117372111154965735972879298008524612580515979667508138480015649099511586233692464353904213571918107360698433250441193961972000997905470825348147613983000070620931864253258992829174835126942549834058411168744539252893164299412242463738425399367049700853259348741044088022350289644003861519489408887911772838432389044122034974409052103329248061038705752265619788473081375827763774544590751167335027845908993403273482396317590595600041587585769318744542726708037484385442647582671274673032586552665287489165397921894348824108636724994499778577109695246841540420862678182052429458640238196152897899271409047316220736412398675297072112509772405581131546902471765548439611311803093227197436423910182968674872568277430092516041134071387511334054524265361732267569317642844652462681455081452188227063480620610554187975968410803020272719921118829981146606291332176110967229268736991263363984186732849178697890231627120543635681800082404394935430180914758986838577230932960362784114863753709770055151136062242587310510151035929180146183324491392476377589793357362312916564699882091542066440467182314121491739124468039136286158802101335205071150493384718960569032946666496270675970160953540864134023427776971885086903851401469775740538329783821890715596610506985490079752613191134113301100921413735816084414896305027762017650617260340820802818576110463211362739362148267322654244700593054219524815731400168079218529260101512780161279446284336653209581769203233032302346956725833502036157608797094512925760293496722361892315224419789671171551698907045332737886631627215450839485777125249798853698696376391103491210890974659207486345516752857614822863881512559104901067452504851787025617251917314946115895251317713700261928790252470068314866004896370404607733894966722551867425922066192868525580172603977248715839192213706345175519147532060463545701168276351555044292831998195695820700868409884887167821323507656824819319207582758810281946850073098991511060824613227244596603297418882115603765982372458184984195699807911556146269880005513498528579042343028101808034865946634405228888229626847467341647632787535591556070520996438566326428051669869753711925268417671229876204089277402416583076245757381410748150949206627880879402516874156141639124362307273442937543693981659488468835595953458888974228514700193081210071554546484653403599920632181892767956129537985629465468931227902161068947149676067405533806346042401112809893908729247665399341822254493434149019924711707581348152474709846172648276779791912048513210869693838614916546696078069375293978528243196662258132791177492270758191256553707354234472652276000681608088217874796918146559085150716636860820423932085249449489997256618455232405389284031730676883629388503903717009226180948680973581998612083600813830214704761476857473380989882029315357995305401537081878500027830481959083676727280575092103637105854939389527992395917927773307795585827334986162025871283678489476259545513457729929663044950931804849944435691025020366842992064800172121068753614731250227180635100900188990193672418890419793060822633980667892607926163389387874620418863545932205484541412065303850989951878315453062194594300398791139543161564805805052935073039183997992154201487692133425242500103171390201048267804967465894002238341508004723537592161891339773181410960469894319706371510174361615731218603666971681311529784001120836760747863187863158811503751685905282605801961056983336269894429374326778880572982701683757595336149255907351617623784825016918439401922072383818089587841095354030019643921216113668015879028766880484831531067641298402911554849567017392013787019598101523582865851048832670318069326051047570762224311614113419483594484094649914991468762581921421713038011289571302879999258164938776810750395354042300189399369694066903767145950976895520407105164781819755489386019993804632188980773177114504382896671711737069711016598376101367454473988335684160895544759555616109336688658774056820431710605660582445304085370317385720214461743063894118471610701706447515358134863547184394551563506511880241281191783680641734974032760003082662244068848412563271485010578481934723939470477876240803865141252281579823113421441210622014614976741148194287297711998835024298838936858708674947153830645335483642397547281373414271517016797772189727561468298702472435657671653051224557421864984169904353040573397371328730635751487695330431060785039202762913023824686627598603997364885660699783385079424147047827775539029074252834921938899816484904642910295086426175146654601237276916052333919259202530989004664877597403680358038787630421288721846965868355906665752200937052193293600977784167785824996132698992845459567951272155213293222490601330189008643666397610050682218093629456468237063997542443338369258410649734402986565064293569117889550050368783905013263038811650019195099300794935132269176153748797657660802886021159296801997332082630945388846303663274745388185447260502119131969119760787131970804635377045802688776532856039080402144159039714047452106323693000308296002219784465365977113823979132703364335960923385922346778381102225442069913248904300680472970858547870621334248233725605446777373353460945153226754173328029507530989641213281522383680403045154589794740941636818619636160335883218252338567068595776648864377020050744336008200326576819300619383210794360197767890425678533507414492123365364961589957673364127269304933009976439797463657455484987598093227953960849698619741387416726216587383503344778005303456555936870681686486319216894104636611056978530010765048242273777868076657893357348494113555977838923144583700672686934236324584361636436777708494164503061917473755247406034566602899450924597559784417637577479282247697870315843151351518030383280765353539579278660285065961911362268725725174277189597496366287972783060995990582256471688954342415808581640650034250976134468793336555312076652057078837731298611011012393587120166781317676833749819863104803901087179771321149188696067701773392621853985829151386856188588590944800627543444716241735038235155521725538628194667607184204107829892633320003050864054625013772494027884649160686951281948150942228565465184374490556940051921708359142606261455754084167885904602810793281049318343118167991472143986778125502053118762917434075993141994587483204115074852166312405739091542668737037418586894081001118922749480291821014447759453230384005828791488422577337072380834585356487727997719242452740522696790515399864662298865222892279978078924750436445006589505539079609225992228362259792970586444097180798655489462230182176089199878495872698967808757012303809560388987301378624710404132060736315842320346973090059970431150942918612153388170211460288728161444677342140769223973482050230412993038199068775271251907883252368364939599968674063711941856488718653203020155830344323676920070101414668787042187663542788047457951370735096248216247689839991269941025855581611102882126577750740013195201491250876172144639778783965660734389820895347323621463161556026927975126418530135952027506360920134978946176441066209281831308459135877971136813333728492766191180573791525921674654853001568985520148696153003916977188809460487161073357857519193487128813931402817826010167721061823406464232485451556536249887777208326605497659996945928118558590970810208596600649513448108124490284344928624251921004588931242427775830570069742145651572654928529713858331493460212149852713640070625385990950263814957472873149096860707414828444393432686434056103630293695840837493980090083352947896681220139133267914894553896661028205803200945555094063745613027413548232660475202534707394316246941944145378322722753973825500275052882192748347722218588525848961238466572998590153454866204881061920799910601190218020238593131671524788505227259496597364011210417352198174647504150292718554486440577408177892629371990804535602435033680674142795289834133509319151979939067634373260617606819585220653869023104584941483506820514978358911854374781017163807531031386228317468508975644449956374007462875315661434790179992708693175951634932887115260883016463226846621604840861481854243386800515011574012962061223935762618316258649140521577588694998396980118709744695970979012024446505843358836235751398756404308612770107766117865406590301081702251470386936953586422708476309321105285408245070431765333294597247166827734818443628203652535652823876748987593187980536778873135292372521943877918390902679687158783304018422449593957967302859931912008325658437991227173362423912663131308241323366124669791312729063995513013645618236306121137894356498196648767345304811564248858711895780477195653890447808349365597798605798855483027290215031974802622743833723742681161619565830656335397669077077990386799952307746299108092989401491527565441789129072073261128312488137839315961176485030984938164617739842086667323566576902543401231179306962456939135263365533422304501180080559472320066689116886064967833207739656231657011502628758764495667568936972098351475334267223888030964668876402756772018193258250052144517475946856404193488219395093553313212479668195492630503446554674549770368195375586408385991924576069812976178602730549057427659104713453793212229732251162229910901015542404700712044519626119390137781544743430692599683424008305472644365188028920490774505560232811512468656554753474068149914220931259838634634613507199873168457218209811832378165666203594059966740568395972850854339326697981542631064091726752035692877029293738561832337326412488287266396078333850811550017764157877856018333266512809069528727002847863721851777246556227734644848713973860388094943118776430790203165529247391611613370631933018902267172981217499650919213877590090664094173151260602484774072466362214959098806550916127077274749080997459875346984026920814456322725362680892730924593867973205742191707607402064916283468764233851803359664295073622265521982221239237867748700917781035167686919579558467434016654435505907348181744208593243580393892610778981396938582011896433886470940983013018125092975457960333978901799571865035263858839898796443993535108262455830932189189139787429819511850579977422014942315314055470136977308039341949916257814208784362857932901875207236359102648297166571361958126794023422744679031070833052952844664984003197701203933455867309660497257031241353218790456976660385906896745294944826666475209710253321317956993873466699341212492118464121457742083867864671948248205831307362268343548733248019942359749091532810652236222281209039526451322340906709005729702251373078629750487927262552193021790698495605889793555255302760062782857071621421218886583378101979170957336740740174860154465611209932899894444502231194592061769236052955500455909917706521156505002069738901764426274586332644435042360493103990295414318272784082473408841488086750103190683766336915868044087655940388336781104285266888553496628728976382068578115122811338223162721953717336185589932289337499777769324696405204346935773322157382223308581842749455035247221552478198459825849042913287484001355217408615353671323757810640142244860536568234599724343328034170023995664662035393996635267160249654520594211804872203747061617745356060215372241979908173136858435392694907890065158085840339916972801611954130334716771109908649480378177405886907049364925075856774844699631422645186368204158563491226963159012759404747192649296980248243959598002440586211484768935267224106886478828689657420986530712306995689128610659566869282551443972713203161293707265014674605046539404097515389811849442935315176658152159652908512519352418185261332264725510950706315904080919416703707044164929489943321165885296687215495183027219865181246328142931023829433626560439042518038734179205229387466999929215586515965809353566386070706584985707117453249360763283792584027291164018375908119237710956706313354312752381830160335298661831359063018161380627219048147730789521409876370650895385614858882878625919209629858495316217091287944813346584624185156421002833617943698487144160646376084280742668874186259010749896556499934639201433414021217230099235868892972504582081459145192059320116431950133501822867233845450311221740398750556613866400825760760187887618570384105491520258479309570339748890612793523659804533834912489598983478825689341866387781901895697362736467867399486100665830136401121689162502829836901954372200227179088654272404263900749680184569228670674403203166912914412642372325587301640553393334841649482730550764919043704786415833835034808555054819800652650643396990406222098487709415339447469901235744194110590291841779154066239042560528993056854553160096444907514752851634730946664658880202597230841748524303099842637050786845498026316110014451282113232924958237592187224717021004223569335190644192704229082017054585829151645625072879804956325493416635411797885147881355621027468308480003420631380566108529032477440137626251071313184476125535038277535917304866607614105762369003125113435415132806176225790752562586127560850153304633242744594434853599801998161540320475428999915169174142466779480315990018595629200349963053693193096145398909493369899168090940116129802806945526408462245803921272149415610340447070700436162942695917552319582658399913486496757271202204966924608357616809051450076763900866000819749570139790282968765546067805551653933171430008241192022387779944738343374362643243096731052672513047905121625887924389703093510408075756996996561402232796946067555455690696295862909081829951970650633293218878769672934591119242736135164644009118150694558820804583665672786533754715742299613270741180624610749933112335024707288509702605405645290053067980343648615540583733447002643644167594657086896533971233865077799959748181719836424268982766229360025198973296314792824905367289583516996387567368337093612409183379565932875957283295184121618506313992285749704739772978807975947649000537575606264956925846592684744416045783879800765563819835462633282454410814681904734907198630461728787377180424013704544240525878673890855253238778670526275747668328138917627190049453115322195186830361959716593542096772177190302536763048528142229409192923398606332554614005773942424962272028523433514905371787888221130478037009049341602454976036373175123418203521513542569827808260762571029542344142789061335293723883772199139791476266797242092048966320023161871480081638183571634009144196023774218921425955546484219333795434188084520783850892348998955360183465543242106483378515944968747866893139541514699059258138646693836590819288979773739749958910649322665972014396093839447709125705410485289530317347262713595103514420207678202841881093948954964362992556207322206962721552491001863296755548603013433676054088982035711201072028133603809450825535234669911728541516364999908652384463421932061270893387105205576795541417897393389996413840908554548096015252319698076638665639522659577179313579267305436995673776683689731745721891955528253443452137009889732763653999666659872591882284353787252781553876854908512507417067198187534926873897701647212726407707216502294135087082729963164793653589269852841579436708908351240797202171360643129711378217679459187787407086783693060426928335902141284603801335707069473644406596032285769036734007854722318114106814329050560062349157299561761121386663550407771129016324992629724275269904884183101494781810208163417661732099292493814792037832710005681841423590737246306671219553332448836831988098495807819355049083043015737076621581188201628863597971663371449903167164670520498348045665025041757528782627434793129668506901751004475726720858306324331821579307163176115063567765732505445591738969089293781648205638694832300041474117693779108619376621044832445424633301804456274407618635226480909961166734262177753084043707740281894609734267376269215966596475256270447191610696803008278952483909040913533108938027090152686877751371360474942476435644994793150956103402457197920761518828022863242671552333114711488392160803271571225016800775184230304550305788966637111088016603859005040176065239439475672188969360921940174858642751117169391868357473935949140452588201800615915762882771161329751970785736588508792184290163904206142225583213004300195479414204752385460915001939900419341050089538026054902333588464900216704292576465398216951847646040232957801103951511476889507704596799753521308653470358566571791771550223275137824415007905193747947868314868760516806675830127007492052069229045093099894318841251050039238080597544675253153325025244412320282664563775382420435669582052732341682239710024397933921766320786929007410110874566152749275481173032817245566513278435041666955171393506928391591064634510952679537684966607203775308185275847741204926621970120540745772331447751042126675683038092135858907163278378533225721090111738015703737988162922310611044801642538222251148970780303752715512920422666011151760271183622083008647773283376251931043481022745210871060330402224857587469194040055991802094655212140813885607091753547464803769465739024973351974615120364896876407588890439090675780256455986280349323349664650301510651841297790862147502018654619667415159792749785178137887247497796404048073080171871349431310571340689721069392886478233266850098377991330467831233388144460137519062293393775735274981299529227006323829254992374840783610930270228028121482554146875132646238022242149194190214171064219941482976870852802851534758187458055176902139637883847838293533931198319740586178495262837004553483738030338530447564290516837530158481055983720459568181038688857295641884789859258377857181753680476085734484760947640333744866299565784134672375665189209876296374794148309420828799803607183771003645596768801498685018413185046042315011747591982908371973319402512223277722876116352762012035065750377913197943657081699139623114247163233810923959280755968446687124095921913898652930286518745210457071555305586897925455419127519327022582216667200282440789948615505093440376214923055532787269973779730725999370114582453560984459653720344074024560642005144234051713994009091276692786185912760345951289943796866458693474176161351080362405166749753783554476250051380382526576936515302166568031576133464601255048105378172657784716490162978906061679549145772237995759593532077362500399686291752892325383509104216549790454351312510331819233795255509822163163318364757863266577971022201097885468660381327123189090988230579097638519344582027879878216074192457575308384831047376081399578228675673355107609576315934025534485848167220333056681411033874575914609833570617921632644424290001395966497282495913636338739333932712844372754179516956530633558941750620223650735486886702210115224335486399776779207943293528564347445865120517599795609149590930304497158054702946749486417612157846339777393467951831595684998545551954833189059501215530315290367145442540549787592827739389659685093102171509368652080208903512577633047275389514987351144298033934950099297935860156597378703113900796132164060431928090083904224671119289885509105321595190424326140956255710110139342953202967457888128991108032528284783594042565430616250012656001419475314068950834449478500777878737293294284937750179559764279388980546101766333093822060374852613705748134979001968341399261577018329386886483828559544487809550287466700085149154809447032072823549494795634568168677063598274975348135271777976553648454698287289413757468128879168748051425356489689052621401875440622569273312995506119572579664242674817006241573775183461454551447097526681910598516623479583781632120683120638818617664142639725537115637525544367370733225469077480813143638890500825751277839046793701182537368976031918915458944088587668435638477725652668858242863442216074925661921529702350615554731513230076692462246253539942450149538040063823308305276701020920575901914945897644275052438757911323000879738985799628002884859560798341392480020225520092835594695424897204567959081287648740896474221557056844787568045930158656529614253680019920740992071223913462149096171358176426379996765446722727227873180486783419003731058631924317561049909414504024146633801719188991094089827681692803192774413845504482582173221550681176604870407459248156443016916694556651827630129329581784878158127761744260814800784781963717438364254237469215726860587851099372543542151160062875031197088467595369150006204708114035838178450094818481808360322159895330428305586312057181143824050500199589760704619903174741168927559883483007845079775733869688451164489243574293361487314153771479899364791447796705405041147133869489742299032438121329420839741606913131315272615329885243455243905205160360467614710235172410779172061391595467664269207188913178713265355186651436362520478210433854165730280341380706083445467452088352471005906606599137611553947265585650446430306164338329321003374750000099356139995515408191517447530143322013200809559582488403589683320510088151419921596685343746884760217423557737639676841417682215427454158358370100296171397019691813608469726315843084585528482165043854336509111322342843658426713362056964271129710055447099482035358576259540839250230455199706025200524322216242234409217815039202084812316176356609301889233470247345829143073518178822814299039737345493320092717194325265768255930147759696328330143622398219664614805049554508449100063409912455471825752009969398128655820986347896343213334720766294639413323870406061274286756214972154841190838351393048143036231799411556043501753884800782774935017612137841815550126857981027582546599647681722309005696715927972380600794811600067195885412716327498363439657377608139131592630905635129842008540985269783928099279975951649562717249174051402398413695177877936856438179457827197656121747397535209894722018411392276383132727643396491643320197332199429786647195802683947672617936516693348219974820774519659314153083330254024081788561004086495883103938450582002238827645745053289827809700225460575671530010094311703528731200023704696096961829516742200493267748066554859868429276724859315966656127776684774638035627180364037942584712312867281135174508009515577219148042288721319696515559598562131187051444205469505355947236009175597503077840585071240923686799030337773498125845643372717033184238326103190379400936278941111243551162087289842792923541786736696165784130726418562483279812314080342924683683375806279168824486642677144048282599943142015644964755283131755087383381920380924793151148819274731786544185154911007071531456636299349217219683965900381165348878958761899691634280234539758618557197405031923056615639422477913177188835829540600921011142331484386006529126495511562799340070727778520726717266212806193612133962097840794781277648894992177472634825691871172353822305847783872925188038136796690422593623368478127827857460880879868623630144445537519655996833846851652556561240322977870493813672441830102904580991988210018923125120948299133514957889960749688852988115793867504056532121927856108750370521652720648202061456020679889391801788695198971444290613210074342044132132993337970626088208205459750823431657098481500647587448925942197702275218651223215451373640733585682430281726115072481617431141444472912823367924203164871650080068563218692343960229926642836636231575440021730641535275233993133746125990699820691317935872732939046823040712282823446202010519041585591812185164570852739409253808113281382217759002206324008684844736070315698087399722235016778683963599276014942933961958496212712287297867030433730738607894159480824971392650068399187546164242362831692359796414580571525529914299115539723234333792847243482533236525651337976433351572467429708020606078882222843670529841081207794572034092666380196652318229302202970994356952617711009545953290999140321984946083528645134581512322705261187178306385170515533366535988463111573279237615034019300510569749182215002613237669324326243928667339967098684158464224738655882727157715227301036198659509354461756750874000519678029264455595386289514536175139379996805455661343666037386480319045389062455429251624941666650773689829009692487731454155997565094903401733367460915509082036469825096493839512141592657813061220587822539616805831665163138609811864483556367734315384240501025034507482024770955498902729959417496471673367704633303238677932979811731471355072797638717916480407300979778866126738709075395991445814994655316237232264423109430024588754627065827335791348222418540937556612413686053837858840222626396692022656134312190742109801027312132185856358638026479591738392001041389996954846760176899271523986511031701399479222244625727611034173859956162446163872800541835950419945994949084173508187141813063698270433359307355720477272969888925883440790183737259264103243914117305476253964718769802792201383728886804297453503498363194772487745499189052214195489218329682637259772222564168432994921688612264658746444722430242294500015770393108222839216204455371312491196231023093562457218659864467669967742083677152030606900636853520855901233145708758147359450059465703595104291632945225846659358075789766150909005193693174176515515932804614440364358008097951591343386470169152538334723009889396528313023725228340127591818069934213614105757456073626227124904030349717252310194786236923703801347213078615547843398668696570403291722004225253690879243094034324460630506316248781895904870080720277336025663083905062470519856907434024570138929838836712533167722568266250331768024832881926034986666712759761758293930529329148316179151266249075387417677004001870684796647352258697019060394282327380802443656864866599609163709775737347478946899433084238526839771704712511796509279091424038355704873345215441063123147069853295399715810865857551158622235526171211425706481843800736127463251080180679584013326435501496411958202235347579756264543237686470648035872077011694277978339755508909320676779381953999668089213336492664776837992102769601790689011539752034680836672306478225790208801258697715236153484912103127887003980198072792537876736613372347149396912866404956639884699074020494692373153645163814513636773737384912411643149165974415353666605978117426235200878920904576229039943233713656362064347445860160283986730718608242463631518462177591865043723146635993103848783007064833967399147012720068819415054798928722764085804685935551328802394049162521546372132214706858340681040813637116696064560604173317566177537015979776748906124274012005958340083797487770590284020156496622324351213089740274010153973862146058047085063648485192364888026736547771728461295186960202778626631218094520432644508162997514076247255424919290552654978287848054360024677288632723378597954612477149753389807955828604104214150883843129739808679783802781016827244123208224586501935296017961317113337319290508680708006098401012319571958660184866515595327015178316790741961892917487194923507091139136792479711443682923964964769144671392356103115671840154451149257348160448698217980056625330342165757263258747551924595232983681537172150813522427881076177066232720251090939648401520821905104210327943472285690482605861759841030782155334595272395324712024068961612925528249753608884674439250215489199700986545142451718846836634639075109681124826878930177640002872077665869351840895475591484661056842177324646001807159560737230214718702369349932913063207518359442473431811640581637289869076553389357780532045835467254703435336127472226133842417443812478741921981391309897747020137759998869670751030700796088836858053711242130346688567068606496317873606580551453515143102609254724519037136120574211046401812008084303947798577119856681255166318596628114529658190075865508049587047022316072947607379635785576274091064241918197100160801443505168218567368421796953111889228096469689112259056700418190227612294411846815316876568275158161716333670560568313291415510117346876454351919861683767663493098356129057685344060948281060184408624993461013149915401374462719364531852995413952058634893000892929116564255958626260706855425762223701143491152742138618874273747201381885593159488796562156144173064398088804490879290664534112592013420690245472422980685388751869347232788454393505404369006593730643371612749384713576271234328220319871458096593177519665599128729849724309866878998287244176354463382115091436647314551937134003049711784518683990904404011781041445016977305001191772918730857117006771738710225060618637111851223441524370175909221070610323775652313406116108549714942157439199422994505737841649855411792061949366558109929024588242787685663357261027404459461602330140797891089587180727186178164815721491765296608454604522348695588812344785443265329817873504301561107206694025891006800643046863357518049787932472326425739307013171150342385352991243395668801147818319884243636408749776841863606514876743485591437759415995281586895146060374589618999976653701561341299886805940900775504485658921942500587542723238654954844016408860118561260045739602242787471287108833751924243085726112087115084640733243009852067887575560535197703758981352653151068629660007625909918053073225270914066002962146823754786881646735575404305001931514024357773821685059576870811155387067222680933325686627376486261246195693347564749934898857661802250463633490435294362364498694967652091550853465605123758732774205556031844952932227456437657219853838559526851269048202465402921069886038460082003327850442807544035386735813411009475468423184928063370783369145267584616445223973939693236253118244412151555115544905051493751406862164812886209164637791428090527343381425279723492157346296602620578283921810494015106800040515485587514895091811548291742243326342752777059571267046652414126901591047233120978737569331505692649883129498921858588724192109311722595868650783632526324330337316600826742876094056598093841071516635549036597905871989074649792728553883952593890614831773710940396055302665723768912864100272595704247925685588033540559243705969500455808074312609688716366450337262183627785179476136808115292950332095754680957385051775950197617867564373615121729402227782581245254822879177577874525211600461719783964495914798639519261920644787735432874368037136062627950723421209970725180557381645581191517578452921410637870492789156201294187098511162239549629250577756755158858819577488753607072841262337484993956614778480282461572325785977274478529930649888269068273394224507504100319024807487248075270667326213561362103258091078298996144756859794799714856666538155612692522346452380016926550876906723836326100886741876001084215274801302664550473512151035197647238306673676680463385905522652731883615276805756023144787895910578675470679423035943173263366022633865249817201147948636514975974515960461747897617110766157322336210887291330968575055976493342415758222698289063975762414218367205518495851177034633552404171087824243237236241177690723735942189588879851004648734746753864880434608808010164617878179181873024123337694992475356202885304477517312570289710517489178999434519285992325229304032283616509764624360911588429624787781618276331271585214825960247855764675729830784148656398879210713759665910856755129166516845057550595432428087078618506299981032791857867927609770346448189267045767650271750780573844651294435049637602658285194811822266803616162490452259983316818416836219914126521244875668667040519419369352163278525482786259498228139975196772223430919353282277980465471113348392180008458829720431817992065757793427944443047699479604680680209036252714998650778957290440350036957517254088367072444963309418286213273333167944170212217247734140407248172986414393094623114585851467103404775604989369793555551464898080856178707445268564080797520595774362850670146942043740201840987597854120800176526883344881759713433262848126399766482089362807062438526189300930417155851291909172126897313604522718097192084797556939521665666486027356171438860607484430645838917812031027134555131589662937645249032479656978631728417394818869777669677711988857035869616099759894640425452842044330911017345989652617425051677739975599160601986848313326789810563865971944188106637060558947785388505241454741408723290453957401848156887784515922988632003866997469104858586539406311613919097384267695717921735506620672643427757839735725845725864228569410115779154926582656544372359126872789756024058187773001184545342958196493235119015206791918834494520578556789159330549345443036348898966338199760913761699643438504910031057643087377053025875527498289184888677031018040890740833771610971491550059454503590615372970178060845011616863381852718981717338774274068405735041692171901768257671673723290070147567576419095259489461767765615852713867822093547863609521547904425575780990516599560829849676551246279688340809958796808361202499302083027344897467771133655526491028853454131993164379816267545010600862686972705422731032941804033436969644189321808507834811627231009230532899684404104859104585651370775118781473057659257849141250199292692861435658806583026496586783092542397570453121917358515921332223047504864389520486225917280255303147624843404590252133565812385395216124667894282304526686241010237299141471699095364212818763248693645250804693890045367736709669434927707646186753500514124960686729529910413334057490499789656666792054207051753705730409766420719525815510550203192060394777867434072655226996990684310386337831815198632270615105372839667854968461059228004170361853018462124782227886942235472821675463945639156295553207550186462547630784836237986005878375434450814810092949748434715874797797660824334931439473332670895636537433625376665107180182935298030611338256031308191327879380014281831496453102495075978501568147058762532011925402399186321145423643892333836851420872701469679920969515880000857729985104045085400295229998654519285421549949499732242521530640973266654693961038104766504332042632119532881308795188707275453687015866985265697320325078414254576341809258735676244444555643271469103221348544164519710231981984227741890863596440893871937112849175967815886662276398223512199157580388736784634399070249482589210549837337483580635443406742343779356612277409487887902776545481766781485615774598143319100033653321944553112422179230338808450396023443841273620006573489098119561653392347173253722235369642792628578592496431351822830554890246014053824189610540553356050692203354530447140638953572261526708058549230819743549391866118001298810864288277276149240129201758765860667577398239610512681254626363100605232572480893894210753849338826453961134721305294381598841271548432492234413591706675341906540433247647560628464443903950013599018743489238553160235665280222356872462431456018834072302509037302445731233559976964414892396535814116686823804668130292275769642989325263667824881337848144446782981340620740703750785669745499107016002911438015304673775564432928134606062033391254057143138148360589654705834097851867515976714705325661819268747520036348479334871477305102834549981440155514015988970881859983977708164326745123384306421426264923863970527084706666835089235229172908242419062625173864965000439404624935882613898018253529301341351231637120880036010652546793754648028613800355284090596237863588057922661418074795180734478926471291810221415133910307602602785507307401987257779247965484906593351103008734911446832284809870410719829651590583060622649085366355849930923026213960375859140329832941491589287638916945687468493446641969929035505314777055813295711259452631856861759658794155752635490064609410707903408881213163824685758382388570551783683119011598589396833159389430123760952305662269619100609262217764343573380826093174344940781818693713872276808610513457312847731027167045272133463453478908332390693396703769501325772112096800256723561423700765922205936414488858801791467372160825278025546410664262932811937106192837719630692738835113424244034486929504732060319001357439271711380311297556915754375390919806248592326664883819446022059556498098660323102925931835288421006114085767605975323235963855702374792179670675436353405477320192978567924407552955086522377189268698903971818680957961725895065207865523217536875594519736783526682936644480228783759228177756728260979731995893035010330542406790122756159242715171264761518805528270952557710777957340855883813015153484299071851973269779934128126231267191846527232819343624789228214598169198679881065209772389579186443606905135560869016129514769732329848338516205773621384166538775610509388570826917748147236234245803879985562743868444359138563684547945225288017067299538681334435871638772740117049119560871102705242752715484262108473180641702167121998164099201406319724434853558628403394637308660055919642522582581845544463090256923294970434253914113432785298229103499454170813613862222413637506914488536358785950556425307693625706505908967311025907844503915886133519057793952606231559892890781753038631383572929288652278236137640031776467377469695250863384931130829627545724465183042324784557387649294330325720100721638338733201401486712365617417077442952334322587178675550162640535552558680464179601744663579638268929516682883787615676179222554245513690342231289830452388892057323206753794405768406946181530551980298743206933604523114111175001288787853302893164560305774138999993389169063806159258995185454467868293611075820193661896022895830226065757507908746549070682035406896505776699026116804748840261883003752200915716382228301543830377223978101091147662784686331660931652096711616643785605476154913418500170046728065121225093613016683342892143484047339100195219454051423500818903505298528869169840315260435295685651321865820938149121702198361649954707352585085831342556916339976759662679879210302734760927619335051696208675567071627140333115175489067068880782292361623852006632755665285490240319075614001099429374221248196725569298708129044256805579428574305785159108372939974354039137781066100641459435317824601705124897863936741742296399657078381286809349792524863895558008169629056662181636514308406551889210081140729829114653291402342166333519924538259075365276818129450007828324246146869824808328431655254688677233457543314151218831115472297674055019914309728061962127065858129434151615616505354870050208072274508537199630925782642501977287751394396544590943341307725865182409697330162651798137924192605577527219742474051451720024867805951815301428037394047461448591003322707766403824834438558624560279989275418773027882226060488312015502855638864613446658687619066979190226041211389831740893913149209063195713085996072002090671445340635486593973632267769560947604974775283013821358874386711079821073177897857566784235613267761745645479236693017479968359655863179259131010170144678680461636307655134042980839535429867764759201805799618060747478596666437212935490912878290232206251761726531328341644387483886114674917863778157024354701568461280259961476405043730029442888139190055026408464536436792386501960420699407871895608959530001072920092297464199786796870402361877711263560492578794548717941228724800997979938652958036445489326575021828358837935634117306787546618839794251100219721597478054976607408438253812568940777422613848220285632462674357487273368782559704188504308165039944020996380619516116231785557928518808639998250679568476111868401187976026589694740342649729285281030756189314337011945768281500321366632503846599824675886859526961291325848420474651894033685605663272413139426170525307646909984254123629735063003824063899186268786279598357366146790914266817354433209294576136293662235571818181103785990322089343190829489441125742186009802252914101373562533215470810812245065157005853961547478220565797419494426336904536384248247116590129125783484475520701759978981561701482590882935508953544629790816648568136655600417509172504324443195900955224883319557674928946062666898221963642116353847873954192698376076855906198074473030300748622409953589567289954414633484453281057708414534162863682856067124737376543972595089049243719161585742161498207466848027257549896912934938940690757672142429659574047879780051515345975810516047657916643627014084392953223562123879931730044346338074067690459268548139941062616390715447990243323895302837381906725649962664573569088652648085485462402729438905646253239579560391508594051776277298593200103072770187588224787795166018768370341811146238940589423193650540216431304668859421805193772055662114993046859895270041890904054677079009322617907847159123878755668479399697552696457111914777196050491105981174103301281527694272680621807969318034560283761265547584787587309499562029960727097202827751528250336616719859542166006855177068803631159120971367744633280033579802744997819103950414790994048653451255523494328597796906799183946120710151617320834124896873123413534643363697628258603937017227843777975786356969264055692283867233200785598402206827953569275848179952753750877674166733401805452376873831417747406823357254141762040820973660167529347105336811795298370659105912257515929018896359264396557004093819175827684238624153016364894309632606297053952448620683742339048407064505080576741109383424765431871159012462756369980169339577994081404422338571342326085273081893595931183226878120147525372022823041774995678395865783276296293742247163061629920541279596088901787675983477874772753341126057210403009779068796956431523367537740526887092867924587054611350710115987263517136535301835362527833926283899403441923769693643545662185602478421821831027589663598241367665216725628022120161241303348637949261510671253219880064680550647469414913723249568213937020659630704291876257343763140562131643645934524300181749445402140677498038859818792579495381695954094107655248186253715766045608375498783308575030124096199283216594024421064382243591092476901768073051142891583475003133436384345820700567296796786997380387896416255844331161887968815686350389875675130857105361776565014005696114678076016212789916661911561629465164089991276381800305470046832102644250069484134894450590021700568443220751214288760697409079930590195611188321743283513418830828033971661288107860483555983553502156875766981970408471866071747461177626429917513656402206086806811216921388152122113077231930652125683004490340570785118423034629586076337338028470797708129724239961659864273087216410096221812313351320972628111287009812189635943655867075644364210539986426566503564411790404327180678816046312520596767148834322618951944444772190930806062325094988027780686694209361864821749612650325501901580297128893878700341417377885735636881298392638975090199682607732438977502276925058483681043092390476508595309307005826946489887062567339271861817107615940018084126479540037618564504262339045742458093371654835955323662067163940188558687395067317343864321666319796905219012207203296496896400076649199657124796484659191313484021823110996670061198112866311560434484285702686877531871615574238631077205173909958595715545824817709748413583281012834575896552253037241836658855918956340887806053900249042458971736657200468175380348415238576642877404313195643811936406758727260504481904966332986818107514365730316113539041472433696585949269075098323608853804451907542778254286910873550128792481319989735923895443522984793725791772525804175961826982021245906723969962053021623702657227182686432111665613160326082314325230231838016768561651393946010803734971768733574278426003889418817741231799895403101378037432826311355079068854101578137467203657287295101032092436947379015025431404090330556013716526458876813839965660077937928409870713142079696259696133470053513584425057793121863867122667811209116191777881931695232405766292267017874809774922997751535952980627906308325692498541004983041959259053001485345833268217339079037282741242341282386537038165594264845579406580475620909204838401064145481168222342696880428902880456426905832479740844591367396073061768381330337683896359377649568961593498096503135759465288718497715333947553006052922405815404236564041825744998764952248081368640617910474778716571119743555361842534122905090625286432866543957279136395731993293326529661901009011350303340974958046765509295628822966740230199676472339566644724297256909460532448949291288541717850946525619476115598579271514776752982205618715260899093293297608293242864770258157238835709463425126095950035698970394972164320550549960109183364243003927231043467482303550835303194395136477255524146238533397656985142040532579355429211597638450819182677838129901136413515737078633067036501895570374849545708987513541988951653512903477621900854296756689613604075882717446683488247022203710251148954174024943519959602994657745242890053526965250723864287110507005090328231758020640298887141989092079022653986478413557170065864244811842694238944340299840414386069186751285440211969967212949142358544310807121984902480061233078311175140860729853884158614354452324663845086938640697575434595620978742198180685292408109843549985680892235518612610964105016339937504061379927537614852788395385376549005045198755967433284837111419510233970552672835596103093904312166478616219515398732527490286726392310411151376333164308059490951602272624252890688034931150702633570790225702315049919472807263373395725529636601143642529242090422163483151511748459769895734600348024591233834904026435509442527309822627871560664787525480501714007446344280802335174632666366756160484863033439172625453347679391651634491726527446713483567448649419975846275633081265681040285272011116642282230158493414967645556992904389756792476285258989425930914449912963493723073215339905404906787643549856110215491042960257828337073027051179801512459287035063133891219205599146996861457983216585515861102357632409895527546601567590134673154274957411009488864101846883618513355969672146227467855423764940374716058020771314181250263443354941526299733970408328871506413551971520561160278138211200071938103539750744430656995174555677005836870781588316202319214168851890928696661145836049296533364222700092382795148574162284891910235431253876982464416215777679939761339228749516078235038768224637691206478675450714703585465326960143394620364389064890488884177208433759144249031161171452294409961870869030668074739593824926889378564051093897541616308084524002826562908151973594520169764909974334968020924590007776673475331345165148744113247501689082730215239131705209270903550423669743094663604148589413539306780562424512531843417032940798219343138191078648615737592218572975501272544590552212452082574009678659184194577319806454985840907040371332228948465197446064993175046976826908704066107495930252069782266192599081375689891615558595678768425117493705177191529193703535118650715897283585032703183154228247794053053890503741392244007617572630744707999380078076004359119709828477067167289752789083950611234100840093512866360663141225299532592458863338120957003800802031263753998668162071879868306982798287167017575657161292290889562852346622962459723419876389954656298186469466812366624045396592516031897188828866612097084913677972275654732494014357074426783579224668711276552111652281005674985402695869700436266420872978743603080311587884374667975526501664512590433179153793276638397582405282467257775772079550659016201731333785090835404838508362646543558360370624573103387057451069986666957484238462630091732571981884920353121098904479046681200660032447960623490891870034323455758515016174768574120164502684666992022909546854307302173498730204709329266738994123011162983314416417650160817163202444586331065874485843498990729138202448855096672702596690441144811256617383256965805450261167012478328986896339953458977981592750310923023358434792682824975339720791474826327856736050922508025156133126153118975782105254996108261333994182503973134584581936563476164397387229490171327964145304873674550529205144478731406690294814672745275602675198741249419868423236189644381599369740891605789545383421114206858068652758426709972939923584045584423210326720078107015009471756984511467105558337032936827860516403556521867820543625534090102686110322829562588218075350944749800690289170065029235300977673510596615155865627948614913267151922208100195365955794284332409860128611614875457142543770494438166813006401562688958115770831840756062078499029391591737242035574630661862095727744438146047720013495374979504111487418000591171095641690780935166943733448671702781098106371831533735020872847506262582277280940995100697866130732233493290847019672542454721965685699932357860435686692231491906682655658811116193151698414466114826991536044071907558275556935901237521881960628716158691071615153643685643168626333716441869748870821438987659144457586143717213849846198147227570160139791851671253819897243768128200592082958045559224769368803990250534486761983795499142192736382034326907618038643876220536592735081397851885449597803520265933294926726006372808243586458129274603737005928153762402111183008371960494118784163869681042434407527085516975167764196386223191450441892262853425327496898477830590984787666440961412249833023894794224810922352530534518047752315111248158851138560579237192227564539833348217713691037416206955083562128571231671689852803224071241696715978405151660461722066341051927110048600417936179800461537507154320552632052017861402758961626658617090163037563099123388515710544823562992584669000571785702498851762346946535248855478406248673408030459287417009076729590801070621526116545229740872902027984519989958085172219360784783944550574814177751094089555677070286160314881840230948182707090519055502626550762632930436259138944216416366845893116624350093286094784042697197354685849977178740412206199229430568929132655046230305310006912714636502335263892615587949607742222061262636529869449873812944991789804418442285788094267930431852875260663446712822460867103225256495693705805111934723669929600359424910781921418592217247018067707142404631037063763930424868245976400655590033465478982845511834761072890505958785992843267578787080205309470323244688642337953110904249935755615200197257072115333112151746426921443823424821288807813454447216626975567716523845613501569212105300212941822280828644937878914633085103887543582187943904690962352009616800974458457658708755166242336262363410481674745551822675111330124775646559276279525212097702309372007832807894180799208562220019490290682610865356572503304859397525729450447358064515965751022267699656132645367177019233801773583482583087582020342408774729384710815406613229074902062997459768296511819351646199495395254840847945612351168604804682708417604272438417694632002615595661055912181292179505549668980732386336752963837992973402098000122123566508703588904688637352543242736851567465120938650527288061623159834433592876218241536835586014677611902232512328448257423053164310159885936010558077620769058676748832861822420373789207951368778034912976129636718630853854317722793538408967298898305519132491547395430228905531799753547786627096469622015569974740996711988296693883016203921475016774466353385258441733998085533667882139773497894999101171221169854413022722674465471163356841436923366825828603205786705414025215834865381892227183648442378290849512071669858023414196908318344482172611887441175310757911601149747005671947586460505586693538668829015039626527552081515706643021926330142326412170148342835771386503001019239554491385245946521123554575179910489183284230006293862627281945500585613004803482152991588582133277970156189995639183232877711514587870116485336793008039025240454147271531875990502073176249103955714656104430059930080223157327941059096056018163507310373964861844707424243303774634060050450242709031776897951949559961794714121402899001466092413330702377518191116337842335895871513785092756972302680140154704595065002558373522838375106013623067994307832296913200103092251305246319920070119709079226374270952314955567218721805926966279171461735701024342478970376287677296406605317627443234657661549331860139243822420401805899707507847489044923947996248100810050693247328719213267559968991431732336599018715204861092362636874592832258639236334563426873851432460930072465472414673879853172922847667740029496012794800539100097525915337256211470071079466864536844935248052448385346684043738004117073696851086904709726920850293261693893743456876585608187304507873881516202467001483002283800548200595472466435215057720612682438792392478965102622784884212284092308003249547532000815161558697440766201224632520415809483557508054136418427306647927918609528135074837570817542639510052995525342524843191308789927856274014796222082685266403974743135181613908718045778427265458871675108809395028699934370221983780098466170501583135884954570455549589734139231991406980921494111661941296063911108057419206568109472318769535472489033369059395336365769055116075461954282691445869052748390218049515718904124664194062400735756441777530873407260906073099346791564363929499932934894059711398759429639069591887567817423658490819470617309812632930616798974006911485528914333007990887907505585234358456305082544136815610745303544862414299380771273434650630213404026399613714891675054698794093630078280668112479220517026391946622894364591039468744449059295759605486182023396964383968183492363237632731104523077783285409339471773711819599698045547764858482468320083363337613773136711879291762153724538395108944592780448781310030273672750194173901036010101822207207384727315077184479287405783288896367202023023000801681876091513699448321538053330820699625223968969573029812756263692450501702894986632969316753848247799820840582895223471574616688247347594336834515051582102208658140325752599607974106580498175746850294559620863654513443285684143110073077407274668437982957101693610394158449989174536468940676884638139328251243667575209823926985618386132913261874830622829634837201896958920430558628432071198849041660346685617139581262079552551972028685164789773522701008770873148598229999867868796828550680803964755256955024230830310514824212819445423665148963032252993142754001616632045968040819835588154803427365911942544543398738287088450338057403595331506869666418372096609379766438679546372083530592876614655789238335646731315599048796690520479433363489896036432485459894955447594330521034552688196584581889012132353193985253125611591438180930616426116639527817970024978952676761621959555445291237665092364792257045917694621120229719151053058082278524543976522873766327349436621716391437119105102865989175560320332545651458607450696246740232695517354950525518653079015265553648174626495287313519978381090847784104731137557787960411158119273595458335385838493597423979178645081141583570217074594100978295555350370813448445618055184194019115541605935114255473582931792300897966691452744547858719235304605697744975605111942234318585922399774178268652708336500571586299768915499064234636132920279550203063192095100437114996949716067474343423895175027036139493862437444701042188860292713745291313198680435112481876270512264692140829889803190458913614231897038152959813330762150598832050001355194225937921429201300825936402680254528309083438413610323631085210372979788376538356953144594275995125430570444856485968742164389914689088546638974843703531596953702464443219837809063563256226096394644339024113539107900319124915716428422369445371553207553773869575381637289323555001558936569990028885595324672241405291499270186252449083409041910206538996382791159149065714144759409587553381764190849647007118175472524387986739808260730307629010239013936365748737071371318251112558073633597567392076270470600237205540494544288938727288302824215283570266310609093680757855001823180279683617290184062375547566132209748323754517921253496047107809952709826473132707784213534225517327120255873573195455156736756596407755520089491197863007072540378031191624144353835491399951824128181846835859175328419408850708646481701573712894620805299443028567298663749338226275858539447765768178138456713136943130923129567916541009729888365933450755265053129820923839265190744693078171728967172886347357114736127933146213346104248681511687557012509751560619438570115178417606829606953658883773650398374612711730605861350307320146072995975855076597484930195055444568363634915149293482319666916506782576013995857676826315701608320189628188324331292246869079906739929137810227845853894865702390219363585913915990500654326264411563050771734757528328310658804162766688448101959656852940470411225417410084761656063791132984543326179510820705566296844243856050612371365233016602850008126072181193495952228665184027008343614519743761971929562317874278415488456622644018705850720071905924111186090273024515461296096362913814897688249203772533388248761777534372937754587751387674849422972300423238719521614522085982124045281642980053225414493715675674175707350870948820499791474050365120444005024261466093605489756467056351688182627372767686709767756356861645578523306358582213547896785476792732662890254339118103311292033960946454295852322133194597825049409887181049589686276141410903347821185306361926231712873015593537729467184316346862808525150483275830045429444619709502869848970011889106389267604315894721940278607989761146005528520326183546122130471852645875041456329917497239445507264000558015738066266715235175529964485628445319686234229315523680550560293748084628981250583489148371438913511676458085549126507997749396478661491990437326521612163450452307196609433016811823551081169018761915255671456635517226384748966202757359799491251234730685921397893514970606841825509159720888509587799869011276792564861729971720805976025593919170196550776181985952406644136575099476153321827866689960905308358993580301157118061464425827555386116983254291065298899889903473034646085426099179687625171532071068074787032875489987719930855133781090679244072812847524480577357652345290699023694656946758729326239843213407609420806607656089554696635155653808955598323138553036262896932211898640140703083968902212225480277759673533136458188320064179900513451477930906834579990594317277747750155515052048415958771221996300917183026815551144171478613979167168347289362216048688161357209767308824675737885087099955692453020526413777901901550298673138623720662615186192557349344421395725678161553723729408752855126558656817914503296392543760709062626475521200336382431412974594680106024276644911061174634044346988961423427336442680891908538047674919164979313465751638929298007567788762213194576212024007080740669632911573582656376421844521353169002875577041438806139762682318440825972583454725729798018488721824124158291337171545499740265653323578535139842667331635307798005647275381158129863597301916530711213683602000242624578662279152009119173808025519279026375343216584650437318161877430171281029586951851672066970960344539566746343423871519135879465720678667120124403774006398760956125550506414260462742963698788388413379646958559135693204867765826425160604518969584384911151002662248519608861029233273481228592997946307710579700303463165144895094865613503968723719803230398428838772406427213283136699101672672333482999021629968127578280127981521635100404156013105115325120512221900694645791366176462393816569389923455686253035209744269162509315491033864797426325150861377562743148225882195792686169480434331447842750530535526538829108872178389812551518628321186104494711884653929976799022567660047057810509747985590943335651140209621817274272320396917846289641632719251492532127884663216071648516986720393556732401348199655843507564257058589448194422330081250294304815360251806745452512599998203332338947547286766344659112441423282685367373465935020998791259852260902016652142861050987789155082307274930565865537260224040927117231391443388172185195066763266847173480208731489047544276601472429272269781500601391176272036754810322771344140683534542183681962449503580729412977744831463902169336673649895310464609393191944756807795780458469577164415353655557964899614145346217497058094439249148347426449173202240134911928086182804461186771451980847760028102456778616206955508310699618992254027866241615619120748303672338660344042473712334232360859433207031121823618254636771713429848340992739516168127721118708886470822154139605526620799255196151822241996029210908000355500083814315352512267436185273505382679542303145923092404598998069905944899991680605387540838341983185944103807272365959776070050304750669951396947566354790926488132558864120289857370248022317086061491204010030455935747596653695393996310413296029591984159979672326619433904534403470262917966117548298766164600639561233832243365950463647178779950644182981698009516428054558299822586875243262922868954870888628390040661577092732703102139860555189247249995051746616815631890787276432290219582134286412136717069616852802562074577266689527699170707716494652914350115031518622070010594000758501130118923354112504002084131568807369444400168183701690134844535414801333441419359411957617170534316742684387562591039150619287079746719270917535848522072090144575013070962956293444972543287002390344960240502658058726436099069582968578639187888766545707580519180713703016451805133398813454593720204337673596208206745258505023123529962765918883032443445424312320492545552126383328098908805677037398324922697010265601950856397502164432205833114489699327605462114024146208493108525013477315863062327275153896975358316837286269829492026739749671528113208053844571224805705539603120000257526931196050612783245398204291674673860193230343349931940219159641144836374537683790735639493476424295058548776324560531214521550761864233315542846904038113457019682608752643493131979292439881925090437682109175137068573893540949610835100690853192763705458934000764150062227200320994534493246421104908017722681412790629634564084146077165304897999811585813784806734763224445351478837375636212625482240558214280541981929682519786746127012317850015432252973560167533512332768561756770366310235484203278034341316385060618533174057314191973562276772164170876501153110817564018400183412471918547681476417622105067654562357210447694645787536269955654212400953524808402447289713430263016789087254898738272776622400345797792150045070091585069163527626231108658446323633711343235072893117686752849726025109680111448171316139614179973983193830551212933861735230918945212826711793478737310411927181998563516055757018485617469570786225899050716447195064525051543638232257143103042687591523345818753718326609708223926512353202724752346810076286762855796552799266242150968727390507108470379072392435137708499159672245584803598898252256839409494406749276859423595468276110119512327416255778784409981977974490489969662944237364212724034083872157272567444564359462591666842897098659007055212920327335767900534276606570543259917482460320280752500255960262417582157064333250812836210118934431729829223934073283418673493843509778832833344376929764744032059111053713207470346789617967513465687771102478807641191677483493188698434914947855279085964184267296709175199449107181623921855363266498445760194477793363707587715843919421736373052182024211772224937318261075866398293665687956635813611586219576815284656816390801479666636716664662377620349243711417244214261613985735439926065069823790382625537879670014340299295303594953452128421570470965470707879316766359709162232721719989565574469334110825224867912382700872594238741897200447117346066772341109567463665932253205379041462077490137153212884187963713914118534110119609973315797590562474013741454824151822769454927114545429411288021355004089329261577468685215073186803265954616246050276200301087843300089627852389778472402318010911768873527878748768623269763018613249939554359658868602277304434244721254928945186623237538611985453941295450634293917702695577553944081846682926498251455659708653628810292062912091216667695638444784065414154490879355814093626272883324977457977057235349244313468276434691117357222559826502318523170897272820425786707586083575080225644662966205759349960752978049049035073065914056753729878069257878894738513066238112274905392186771383973986775669799247056142635178767862697536272381218458906798231659429750926987275694298609330819585199894120404642614479471327186058746869044847570531296911212413177519837634845803194356444797975275612053685761458427811340872438325342052901519511096859113512298835762112894029894396108669931212522331254250909893560434164209318877041009827588050307229782628255764423276618339898448207306842240068525788778335446946960299927578166443302242513378787419914013953765227415585041697656986374669316381025263410808842658978192439797146519910117057794567598337983540426850040443367507464589321696675736485760714619352160309830479659687440233566464952537550799547921139238706792741036261677431070872754844600746941949426251998390755454540701743315441338328257653543687247227659672571391879169840973334867055400788320609214138420398056379406882028153935083681192753070564255765106443832096051365065552419187606492770583174238740318015780817928281693858438340027409108870310867757054616578292764878215411518242433619388128796956493907646865135934838279851998707969559922785294261600235859088903160633353009450396556664428598575624722519796522374688505170237419339304643751147351947342795481000904947104410891390759435616924026479600568650777121347639244060883763713020243639215556542522769251188646630793574473862086825422726073595918215563471749213907302727290845148571409137826459867995185161419340507185348109258699641719300165799694686629403134972715121069914438241748669150020005315203525162265697433527818326438024254697964113803708891432857268572671201502470139064842726529313995403916256650572106039910397023801946511550984394876770699153516107398673987027126832696818167676443932469156299441654161616480782874204441775407713865701329299528956957399618726381746805995299625480629452768530421694335975905508872932728604286959609076172168061193739688935039742995914453128202650364404446800707395756314929526041569161327704537106765110224195135665814267078166235526055960393819427202024179387434039157744860582744271078361590296410171928550171941014833866326386623651171152797019096314488217893647777074831241126956764208575359574210687785057870885851694689960650607188561494868730265027974220116784194712223424851661867661199484030270372661924811023296030448010551874702670885200107494391138411629690255780853800346562002317216001087972327097638862514764977901818667690077421747421969212817055105207611239220286205368090955517493549040323946787248494853017962493603605474656857863052048482550035381898975408732718858661808149767746855489168510257581206843256008840966389576689451137471382824988102573640682945593124690298765424857412713247927281604225250023289187163965716870160956251017072816954456028300185985690164946183987673470897333115394698711938423327048115101177650666016795995549237339120000739818491085051591216497909909770670499846927994726853137244485521678160143461166315811734124011412347051775904688347594484144367478112306808815566206155457135943602699436888449724517190558631932322960583074615981458989925614026031332760327144223876376651612094083809782339393585285795157247177367893537255952734931722864039953387733617691674347396138628015856089947689963377048095756830035921598962586453208894552830460760761413958642115715738538151952744243944075013129445010943450077162661781034650317091326165431886972526241752673611978849221662487554444739674504517082616342420109555950217517490535492938981596761904247042174835473232460283803284772758733767615425945692852529151787926068595046092871090019601853441712071160821097025712878907948562112866422338541847437792912108628210453640659143992914103713668264969246973266177905389195852821140797749078798560963336330327774177371381466822330350136295751911857394226375557058681005668645749753270760539740593853212192205453868585835914982177086643463366189683532629547100491076191546905898765126181835424531816650525237248400802547902260758415674988536762409598278324965598893573461044222600084714030944776541677305760819597624965451404226648297380944666050132013322102804306075667526870462844468665467211859556049668706387229639118879708835125700811130672288062830149807363056237845141351043312289361857169528089921858996804223648652166382229523542443286102062931277246725083782376945862076675059078574017350573799996959486502621002728622002176767833853437148066548098735780002713708618711145288407482601075948966707307544299289574178878757599732283330166641258736319423933361506146312260488716262085984050604421377286315214709527215706041594508916151327572978497068346981817024180779290728485932803311239044749695969659993288045895312686239066943698458561313388183986477296838106886500436457085595999518420092274789258726637318873769806722359473672518714702619637694250546818314607614944494570813205221927142768244913930640157723545400583730403570948394598952970331897455092491283947621738960881879381568740467917725302469489940959980180358083771158977133966669143050150576642303612248889212027570178943597837253914558390813735296034099697055727659592900326308654525153773512030391274510894511614793752982824034420095152274659175387666024446624735332471921846984482820732010078113283428589586519302144661371097447854737992437167448591072387319640673614798789687524096939412020976282412016266686477646239377828831047502015871169212933920024860506335857026361241079479557985583565116042786626159712722676580767274043791445693336499046521722683525723215927765771359381353049214158403071966483074479756105987089194641266617814986119495609380532822382529812469334910968380634594111464342875839183112832135730609050187358717491801679587384224543526010605529962117591523127404951074690191166322049901783668728145658697141807155001417834003500889648561933533488786095375541965474012022339439136199723905042223789160133085809983018469081234734362414678585775479135924249771025641369601599490072679007838852318036729385485123126483324857232926185449395015457009887110723703240761135346790560547478076877836759209608925837546669982008240835118039236219809930165870998384534537714882740907553364434494526908692063445032896777495867921126797875082646464394486734291305178990403556888763530433755645871459329978340172714953810243288779914830245766568601898287661726924896788423602501950876440605847102238366167589977343834649402038749296509819175717839866702011727273767686802922029570864091066419947346655481567400209991348551376118223687514130775747432508596599743987158001089822000853395660456186050038457993154716553478592809037356946400402376783020447914033517633686910153598973762315403429671705681461828731452050983854944536338363250464832290914851634657786591815448090550712906399963901783538298466676853366257751730847487256853046910606189366065828924413540400612601351935869103326288956358197912626264716227773484284461437411774506655920711395433599288743674069629277061450561016418414002532701086171019150509097886723282264530476476483448410071695175119848384115162561590106076470052397464267947793155977727769485974085180851476680261770062612658380036026646181654716980709841284824565999335322510426349567257677356206130535350998228798584273747771310743836400959272784860566022389425624167489475489456958328006682154210911452781766192517263145806116333045303565854216567287263913630522315793016964497655863522906926395399913328391759147227561336414591699626692811135416460175617314755446597117341134657220142344080370429868294789412690423550772898232267300580426548530626165904617617671169727528340994901699401037451584034384738400452698984429213865138341050078732674664892278106471011624559298468820437173559474740887966563616451691145625555590562225311170957311623506279834064868408108795387470398119829058152515355969663929738404255745220899369181324128314467277995502640376433617372116504187742416956642284273622178803786316859954837863221433610547491385894509837529467024800262122557435294844250186153845468043163018120612145957669914286389474145440943670529576579416633533829879600721380111597215659036863172918036383485121619295813294647530407781317236499731345949770463014905770419598777701611851293644649555722896301305749093799497138263666445183983775950640634802743854684383021733206211764493745126172223352348233410003889948008527633348419945746543539042031821178206453004835286859542961982980883571610165107987508318653288766043454069530707387561446522054110485245544281851503656159094269101818898239081022722488297845596539737341108488434097176446048600533344492200653891876184749683272068001022023858876944361825597148529212861163794400575315391750586524619290736149927518561790105984561597340297825325005751326614513528687693253350328870097385368182070753025660838574367757297592967533330028928491885351138952607585689703746082822202536859409088979763552472035768160881167926418340647761277450215798514616807476043057459151184967117661095913769626408605467433345575961407228183777677159560650318794820115172516653080602286597023010424598155829174435266352934869452874402728561974164407038902472208903717566962086429786209508646656696358459503955975736613232938952930066333424065149839605535327024664131525896016156775723140263715886247646572314094730070548246285082997814417256642148212485402229469229227517715460658371953178950389436109291800185681734557447903388821174313440671667322682511228748163600822847861834641851192938030529753552214356769726837029668442205918318547715725229452397268853013745681313519397294145327493717053720594053009975134078117818432600253055137310155524304698039092690879515815803941686669070430123986744034260438369469347768345056827338113262025843749123806608152260542508785591092966444512944344268280019597066544286372231209707802915331900191849240416343619586673004684997916890399163450211480144176153030413678761995980324348509818711247755895903100057691116759378023909234818589544725973605361895156619694276906372151680126483857004146284190252648976933610645967043529806939148298750007840555748026773747870801876551709363681088443934739139743248368046760229343018658152594053708353265917257261858476680575925918135344866408655415942039533808577852125941008026430454190084109817880909742036630368495025638039626546904621606578640933598589877410549965429633589762148966580389731888305622020680923726307046692672109174052885234898160507923064567503447262355147233613025370610501828872549640498738880267499850089158687171490137742852583147258250242960080194099207370094372040345994221535961365362336570807507836498084514811044391335763603591205134200085044221947681165905809930202879945318763414208392545654040376556507200167580815840398797184925447795869111340580725193645935534602014071339386065403975664704009015448558155287687656616539189569895871927114586650230980248000105030397086719933288199541983101633495799179145803728391842824176981492484723717943735181026474745975515244428824993151536542276446533131512571078550900934332667401538609922424455265335693208280049002240167975668672694318661467186647476126060338607196122772056984238641374505328297807408101763258672977781037568994568574177411749676905433571605032693114047402172778028306591526111319582738510728293447532220328142272148716219717066311868534004613013082564107346902252305818965466687860592530476581513791060692988033478001291398518284042984844741237643583258733347981241433641669386782456657859871463178318904777724097146239363600478819884230264323673847866112085388281707416598838774523081223858383761814139000649262074219907159167438362316075928581352330673534594964641404172479195710715281665993204978521704825826244268855454202109144642906537731735083841923396109495227523464514809802827719859766258193731460515044524670211878754476221369941636571352926763523195818616308039408842837523424453766722724153260592828523211442579402751727179588874450738712167516627040776067698457779949974546540040863608221121155867047885929743175604869044350171743827009658569292545567819280035727123878042903299385247122205905248495639799892858190410576722873034952927713425343084651847898386604725256487052818493587615002930565260679095337952251599546228392685706783258021282781654181623052814550963522938272542349696714404655315234192977320743147737692297553875653724611163800078540180900642625678039590908596759166523781418066336038451399647060276384472952978120119583031377559960829576844809883528915882576640367096610009910463179447111243520843448125685295163084878299926303077166535417257656818087041377690811909938249155233164033291148424687923956472396001446852392759330904584003951798948056779978962178991172194591000781104216081950625903042454509461785942969622874651613367380793098748934263392846182275518021291955979636107457602364321574637630316743799925241726967711132739495431406232163345756827998892384111371034931981629589374266821874187681104101447238101365590140878970676972444293257602143362526583042353228865151121292365455419362335502860595048680445857886435172313008752729963023097020191303590256126283585229141181316780577166967467098292825410755472230659955998001285381005620509388703898804843337760758223049281831867582671008747204529189554940222762553390195002161710067851945101042532718023473423123877867781636660618071262382862042345020378077154337824412810686051544314135160457825468834172430276880936444026253910760848426419717726296183698590139785538983745144991877456488990630476090345967839336013491787043692814725040973013383981477898697378000190290242279192539644765898481461839350251724896670486880569117670111832987951433266722534322458768411866650668440323361837006816835014235943749493921320469356785743261206007186562280561197980282158967783632343865328221582054996272920727955844729456704416901857973783298636204722441688788624960419631520697778368669841080013225325242085609660357725318504743988339531265288394078108823741114497099467732771782363463831422930543884657307102358258295097295027931208914388910064332334254144935211692385992960773444874716420105184069312534609903743959183778433968550276498320198226017081683557860097492634857357530612642875311371166402005580796510047231559783660620000023071846110044521968481459973390693744712955563833377885594912958395724662332209663741743781267026571589047319970360334656076048438432077280045335325429921307875545868321844852230599533152124416479773446145679739675601443166955514778755112283512412017464837382167743814444163406906079867833863644169382623987986609437839479279983127779985805082952645509369496074613335378092773387320009287086016927528036524206419519695989781027075989387896983115722476877681123857233505521227413819718659960915237171261567964913390781414644738765954217135448743471373321109118370972145625707801067845133313640913423613113822077404524973449085456750853839488062694062182274781497690008730878003095985106560305809855738022087414473843953217128998838750148694712802729007628539159688287437553633931023550789814733530928591764761125849502143837793084560187583767500117813797894565725930332488859142107761274639510807158377037225552673656255553176569837791654017640431174562832993945650828738985653083817050237982246986734710070450134001292073033746890481198275632180749524106233373210733243266720561146292190765335677375832197062735558032946742933855882833233041337108818213380587651764079352698848682587417600470503592093805084447877758355590160159379280102829134741054767843453632353607430407097400552730438964761579636354289381703915978175322915036913367293612925693011278902721245123242183833880858009585310450004960666606090722559583684511494602924775843278827299823806955776753588349283159459839668983390885988173217867796998300902529010553491807189417427331602980304295509388188612282605022990795527458230803798094686678204704322315968019365544179672081608472243001430388429190057844383593127821116144018689239475020083229748086661318665530463454343407663197397074280555768348457835114125045177385917429684143690503670592274793292994729260142688881368240681454497902511368447837398204335386225611543639371465764784890191882488660186024754210156125006662155975859884851064266522456930912759739700107242840805439548218820011155759011940544662948886910922224915971121779614675585061290460844352828766695737608600630323772883929348918938826050141480397825355526215311847374983220658522474968716421839811007315636740846726710108489586483913322339937503489297711947519900225299644177465863627222877998872283627306713358799780135374828564447244079370785901982282949864273716567734191762735133127175037399292587650477501450094186000496626956751704890167959315984248747559126289654373521425683332660399241832171042764210287271045552526858604973312363198213595722793936276552352962019940832979317110034655900832787160578272151193355292588715613117009285592045683069264031442134447440927735146316762249341237473925415165691651183960568946756861352829311423149256964315525205211992372000592451377287061939760298236202449178502944076289545839655599984260030184883675353282487226945465557438796892060058217015951448802142851793675693805162674112623424532022035075967474093756882057433749974924363309212154014540677842741176633144985079540247474352018008539631860571634151174929103347982932834220591008233487190274844062759026843783442244726252551786170271292052838861556951795469095638799504708894388741615868732761672306757898488683557806523915724304118333399748522948990708585151526216329167202434443579630840030974818207122381690635038179881389329557393867206601961242987197921991295463793728515169323417458422228617406712399840863634795139235699541549664375487034958038731120363147540019411434697719578968914224039107986785360754606618963048154083411015224453308416598078719503888391323715310430766757591931583081247694714501725771230114559408106415842128917062564180482114050340388485167012622633173703547777993107363307591963172363326750786571046190244290789014410069751659949203067058919864306199515899171618072128821372293901719643708651445202235785356437460175591726249711799000651885062240297962152043157335558781655321952409616217958600246602445326594761117411631176619344003476997539452514660595823105796519252735758026780971928437984932597397505541296125939898198185593756894715553384736360010512503183732907381859839929831895460196311694945481525739558469527417265095576146786607261149114569884503981044074797011624788657302862484367421223620756685908156012843564066244509983098857550626446078054752854218475400592251227767761691659626743013625961665459802117395225500118369542448780636129504447855282484458095783088299924202662104660001517207743994209871441732615074486249221690437212804235566165049329103184851651087106645345224037610499281186163096409976408228964906022140227173914268849695958327315793485564696890447404368457721788709487067496667699877194322579980680991351171308411520013822358460885750678770771891253742818570744841411313526987391956306458882176138438792975650308447709866222075124685962927725183485432179134704044513362204734457297571094488364598727715345498523014259867928176137962046984830801091823762473556011452120582756203296176242941154319531712838780104726005354040227206149205384343324043723197600562570934554744446918742677606883643405573246268336688203139364844549129273884118398758975581191170961006684121188854234420415342893116740515736689724286002891874779842376899639160596186025548810099751972428428516884294094662337423433788816001390076851719049254075128949253265380577089714111965617862013573267640492518278345348041705441354340616059077684017096653905834999141048925832756158984719165156037752120367707563389100290883191335493086829134684329756709574260530483254018518584796018223954673070722994816871139797461964260968175039542378117048457881724308899752768864636593200003627534826112646243594423099226409703395314183089749998900905854878074445298679013072036571888937996115755221354863457655620577407714691348099828007702378790269080234251186158162117818032344144471581226554142494364350441634879563175500657377555957580919839232568749292497692378749608444723320212181902162346172099825150969879615558517181000475292411796354895878198862407383042039774278020115660228544600120346220576966259885757510099608656827495807588157792986225226702685559781309058719664961867616699761027513868878222007484826811184516067468818440476900496587691217625623859766201679396687277459609493786324722922223068141689689903005966643216991249311123676842876150737232663738948679035534502337413710416322888133861094752267719654133920031081122565446138981894900091113051967762706298542875663050164184895118245058000694207235108654950515718827306675061651243712371056267583758119404798286605611296845118232326770951840655177143248504652275657918530252533842274811494904888564009049958717572118067221641501958497502608124559409486780019907876406355661490279196371868379105283398834990730746923503647627281809071528684473526484798803187049415658380957694127035836732059400536241553960473969268894556978645411322110194605459371079113427813828924324252019993521106484928505269468843532867036258283848377047376916535933496660833384223466940999134036720586566484805142058597806777242662176285087546693692836450026966058595975325519909248073603816446313292684895135471568667139857635581821684905553102542065040755761270230680245402472211399535911033438826549069379181558881510743252791177536454250377753752573007663099606421844252965938741437271473450504091395550422632629469301038098730086293480819127097746090925471397321785148330166175533899921861088508888693880126608621626433919247792313867833328169734789916720583988439077336686052285821836557060597641806642818444313090473912572280518931515843129030960303637006537418333907034417331959673944703463918045321216767809780716347533405006284296597368146097360093221530677296829484938443731678690968995189757774369135804224810201178911274816929411058226657841981136044323984380857255396629419393185471562185840026273380534803681111816318023435721647291237327433811689341810591840913361797833913374735282480601716553567609228015926914630007360363300374436868570067281884055363019163662976893420995399463007883052331798363621897631569447397317787729121276677093394247953245765373142894108915615574212957004166874346078006684261180414802866916039290374506840912044088138563664811691010104977508369003734335705974303616153643823554506135857711408830815903500596008493058279884400740859738085713672052948103120978741559355100503286083910677763284958767543401937635413607156032498941116530414736881477821978754416483062606741446201468522414132780187602463684878520441052436728284054015773104834328679838903251690096819604411238443078954764326035991590414106256265088764291620655806522543252819844054954969562074598645073946517854546309181339088249657276188824232457803083887159916857716858331176777905926807274892996498308350226420778245817512795397885944121035095495027751794390224908206919668413434365368932566948306481192502319831655022773180630725163597502879383794007853555171043804879970366670137635612940042893111612282329450364293124483134799132847669978731007397953354501317691008425487743574923730040156156602753139807880927956574957816572049381231828856976427766469482809309434522781974165350941907647973761486476657661151145219125641619338178553205730165560083790455665752779501228935004659772689054547536922939517265311491390917632735835899006266693135674348251588346318445315623652150487495754985884233648449912850391348347056979117688357641845475715091647414649915445576235012032148670505491381783176125798189040039086480064515469810698963050226929886151086981357687940566097607843164471461311919176327503376854421910238000202706789320157492893898201572158023832364408244844413622271852536798313782537234126342108934169777239416210415242606940004323727895812212743396855104766157819203727804816991137188379915480526948230411342592591898818957463829089686205782984690553563694269112495221390164816397326321114765609065260925359468895583737929237621843776372891744622402147356177565220098570743466205918464325336080675136571121106539961963953401969377433924928836531304126570036115269433345617963029697853514462821286837316159002490586400035005817321564087912871818020054406654382611211376786662657926962670915783887814644042493811022332535045012672391778775849505494076730618760750963072792894797423259455890597915631906246038069695521647211995585687984033936210577643850397338878280440609463850010984749081417924744187120895461916876425288676044490050208952822370492753360805113873040270122638923246865784666223765246565332656780030968421348276111479934753014925872280214844566617348399175173971896968899594110891110188267684294476053798712372678688968524268783372785748163688394663562449236031602259919726083914372460310475340286445527680268818441729948036312265149168046069123602891625066083549536979238124105605349721862802739668391560929715902701569275444343341220236293663265198429139509761147523025501019607036132433530649719598917769159077910106481456681055175545463469593915837369200587676008260741071773369946625916250081019155708042014353212992974608659082048650715178371165177433606097020340939333336779147308664378551318929412913905999784709288158452894415365783562326813705936593178832603143292838165172030671199485062625999089904453206917038753457820709574630739482222881428879546934844259523887890389177279245754167797237268519509042187676384569338912764147664038364029113456975789735352238753602193711758755055368266836769969253031623805389441082266208557043552857823335456031257986446558365858307079321515477701578732312479963768787568848934295311738580491221350881659173449264197366024607959875476118137992593343152901840503878408278035367414414003892942417490138482091145176259951071087240635919316533635059192048990417341789125310678924719047765408616678505872396098427727312225769505230590429693155694863441345078044464366811862717497162732874520193689628089973213238115089037053570372023064200576016965126841559091906174846954835418573736478272296704080012708322597125044340054835051345346343144616222332175213754051799273679720468190509336301955269551958847059280110452492787706508266793635815322497903119627827555623869037951478583366907989354406804264180808379859954699112359599174325056388738944415251172303915725768461624261019098481088937920211840676482616850893427832231231423284950076443778624516475231856294681378646641428735703886202173751713916651446353129998900631533735491518767925094924493983095991481820717598469576146933709824979898702340216037408604354168133676867742070502232974219773776769202547144739059142642383827763866934542335018011727170031446289331390427493950987061117555975916902798512861127963170390137133592415134230528639139390661837459351887706814100678930083442236590431852083414920827836352129427858366174439862671555215319411846538269863275588900140367819243268211888362859367989969198853791256267885277632687945729136397232394348470633649562996079586640376570583982397326495072663381716444574018327681970685718655058295566805138371586321955612839388025914897629184265206294117007478330973955637516570184125192046462558588599624821785127719462741496665204088884953785819692542465808262978341818234245276678207623723829302675381789921054825720437439403581461131185660537856606871044162833837391048705645342280143365262077538660956695426263666427929781781279705317762703328210863568687378310806281949774907007778107735288398007797574502132449329328240533748268262653733540750540823930098022621674489724274968603886693177704037697171373754847704568944886567105572569142069023586741963988581372919601130328471712797995974263148509848889400521182874111013778383848539211381322704264361205981698452517059263749849111478304089610526576435982546546366903328493871447557609522380375558243647030150800727068773520264923648023578884243688162509975931388961740710890077714294874373631079969364798637700476056350499802800266767058812418169087315372026466784371886395366849388772894692960845187806605589791855703375367256372625375866530699096487994462701054857072440649482913021951670971739403767431116915234592648247773850364370691282580156990014654248386130019132111600081780052269881856166723132000055961029573127883997180230891684118613262161000820373822993707760214636808806630770924460787423869224731856611234058806532976406261716444551375676849360655747161913338045488039911616942965623996615149593258288050873254133337469248356774589867832646484082246464967480309529722319809700258124265451752693225697231104577029958872498440550697898039399867900349731411062700068837002708780160573571016247903515437709311474305161789125821446503685769076534222195621645748849386930244892309845535518688258413235305829363611686033510366471069825308230873417305679402894369146417683143383764664054722911253566932549721521010386972561526815347409473589043165396268981476526861786919445440816350429028330485064103946708176870623809340668221237643432895538738144172203062886853744940489471862494296720691881334947235512815611423460539163399846600644997787443487805170350550824112792476227632216485420364348863669853411563784865707320208654025212444064906239409239180296143843113292901237037292699633388412399163334934755911454953272956295322880323549817216536155236317185866639383288356180139214455101014437915192001777048598114119229660105204105119073119966747961113066861177300747203220963425748988658901042626386202106225275913866555150066678838890713915653219731381692961462778264175734045509123973921860236335211371093387002089652450964390788100265828789957595566862497300173584377498007728148268327778863675696714122116820280690494932595828709041232769993010626432438027005626774826671102300951536742621774542836584403538514177023429725504897453282394179216021164467319820195573961819909363548077206452180604501148475101597720563964693738518982622978213197526318274762325842280482364922202977108114112055957955433137437150566697447852742815693912381291749590034593073195343683569802018431709667112150304327112492893814288628567246762180144314581312315379248182169017975493964144267874834518587611330294688967144250927272347996619922619059926379881451248316742026027224138884439238950897121567828942930836592685859003974818727436810497202624859683361048406826477193148270110705844480625640250388139714599356202692813187502024870112129433952918735677918724986385871276301130544957341160387833985339982882787266350825900964187446098667889086935763055211630157576423616353746475865011953590724251078425087309122483168742190291248601465378418561741405552380697855768031159279150055732897472944635472553881541489186230365671052222538780941763355223273341168373450163955690596898911319319832145115155468929602081972615332450428290853524028768927527981491452257465237031311910956476345356408198404708430804279968218405015739296870697707100002270062977009191390211717916055161510187345696686570627769253303716178786394562147971984949693013451886493721619449399825241379364115512767967802192348387539111059623662108584513226029733449676317195079427755127852482403847461661760665622180706407567015074181209541472403933164052700835087325429303500670473195017687311718768121463063140425004276542547979053862636977320115849538773694648542602626846525798519595142419977849849077029805298953323557816662600684069400052274448659272926193187982452414886706139995620569327799981879809582811947241263000046384098023299806065134518972703815164689144127174876562008744986112901362160472177449149780266237785036850831974699904132410721484200803904271160012168010725017344774625236302548846863327809618120141212735178553365234481357433572949916363303298212831524917855978049023931818269718583106125726795829577883288591959957846492769759125324461086812851331738956568239394557769157934794315010438314925998399504247434070301740783558705248427583753092265105282443722069449256225062971984149533219713176731479636806450017649329946575042113075223804935268704194623366547080598006032709321881326745836583344073674225130520267582841038406602700041297116847966349196736726128681882865731814250441057042578603158305543373307585916300393443090116203537567494034333058040321068352582275918933628015052549163303339963368097196505533737445579516116106415869812313611519997279553295652092619656435282156815170811397552520748793130101595862631333071405275156918011474742411569712652401684371473075320813012111653254997921266612021957272472352214902190639106229702727603007973641780339502196901763027043884340930733076723503448018958771563511333023201385104769066573265575919896785865842604914098308982807689802498251768510057318132741079560155397739597836017016513341784207803847603739083237218072103545111669176800134507960678402184243171912881571184532693433592600997729233098832072728477914474385370750371233616321041681404856892721657990811421688942656137726947297222666375349425137224219887450013000369406204977133965906631274396220729946396134151996858646755421915772340557299088200790701978969070571822496515812661568359697475479277105654489284179308818061281301303783012607845723577589218882527569948081334138935174644562854620317341358953225877774685620559521072924721945599619371615172560948513601260246435238546336635661463594837834197881304114572217077264850334224734718158324561664944488537910690473332078936493963125291680012714743057968574159601322858487752773304376971686313357678478796988568893308066920975866318168722742086118081345272093189559936030937464374268580177586409424378572973061400651588351632311710951019547339367100342005106369193314990441109021899269507898129230308813316249700048034778041043501204501547461556667324367144527979543781038264135977997706164196859219239093104352283233515739972906962151388571755667173885420842129838514749602601472951894106944900605628540168256793402256382526009619040005621518844717673355140390383031340177212767020143956147173889194378156562082630367572773023819472674013348716781117153182036273529373933151300496456280303687796915973919053565501709249514855832608887141692295151868468508282927616987125354300608970735476986103389057778385772833138783043142042615512050009984683504188474340337829496396248418539193523137422753411547242216533364714821601248034264732431716779165304415608965732105692989585136722648888778351252955032724277552891286191384492307681527681848566976452645464566402493601610203638590043033796661653855363308829184755965715351414916473408402132436635773124648089309857544879628844992249830393421373312698146169811050123734811833040958699393272206430136831938889509301958432439405406977722706747014175426065174944517678725182668928635951035628589302529975254610903056937790263767913873285275290160252422212709727411790658941586496366356491968492524002007089171780597733396646934453281861560347272272324329269211285811081259653188065586223445168315977907976014691157976950415182779583822578731290024376747306645447988514365432836167667223421968346714160289292892359546528880502949616379364803250846664425746651148521101858816465185506979626415882490470880748907415037910705649010236580306825468740969508665707974137884140596408314523781081121908645930725071490954922693787751701855906830906087564234037403019338392950236709655715682151633852750894266849303753248998467637223741944709773407141052054145636788624901044186285231115219350029022918729339633973294169973251305607514673678578635578578373588897846959206613661478448253998234218113490633036991559785315212009234966562672450976602348553060456084890340803552431177475643918759663434356598752722219533458088384342184259835342482095664570415604972576146043724105299444423827084693375619736046064170709919829615031219704983867451776844867568144810182314675958546264703631906979585268536465880581665343998022078757839084181488816909293597518507182829183233248234008081436921784767628683118048603897822753306222532779064221580122343862532232682017829571899426238471093517918245179976426662764274127180937263256397931387292535451726515989842907777405955779486935608734147536673357842934566319955437294020651324621680383720482185629174767449081789628884377068774143729452584869090483842665275551127939051258205369809508082716899086565296776509451900196512827661981971591579323230753208590117266251804957679447474066115809969878338536783006854498077235147582850759134279095307650252974731484588184586457764072706439185527885784658262155929514991169160058021018655374216940927028861246436668477954154454070339287344638342219057210253422649301958823363434864020750432212265174563345249915260627386352649369538611758518261274582596941320558705552504233726596587429121703856266089651631144875576696849229924521345305967250045216574669072604009688822032199865978162099685784631720493029361221838635119149901740410561949739910711658351579367530043773341164693313419538820574828775010128660829924183071723198557825721585993405688386463830909610613676809444952742253984446696471818413692653231745146096578977961004837661121856076744883816248297534849794332381991540126243914358802601967835040190526662363399972025500832077851924673107348949932382242233188093156865121462971465380103529613784503487822190765482200772227523925930877506975793224784485606349989382604026620322616930402242440236097605951935970253873800352131348897466971564831349101217184011969213492989923657973834328452947166619919925991534028919474256813431615748923544687497348612014194868225273781438193044725376399145084720293860724661795281825814223146739442921816438141273094211265610684868220975056396629541750231747901737791538720838175516238563905086215233012700116756425846063005819948207056419341635187393249445077036509993690865533653046923224367603805595885905025317097763969554005363577900014265926593470039360206306834332911246632881783213940569700691662475018121991935013691233239086623814531245721395239726075941470330022154027241805081259400244600941514027370704357417176713499440657408748707375276010761471615940057011257141063200424597667593284141147488003603465774277611974824766862499585683322485018330376564358010649577268467474449566913112836904194901364143345052397111189239391727996338569535270534028352027564355554634672474509706544803374701273412698866716829962244328619579266079821515589242713729787341646686012240753683091899904848435440878946653708363406616278224345043634751467229432229068533720914788894874554190516211535486492415820367657357121096601632839619264790669128281211006434775922454860058880126999353878664406668824044610470750506041640900760506848325386334962906242359138612983584849863953876411283726498678225503881168361187123188889079788980856734778050057420068007407407795564154716807581499365661015193483010428469725493133282416542529716330236036753585471258130419480382263454213245291496495245911473767785219410741695961332767391156923634259385642377468142097963325754775229426605033632904290692933903274991155060109774431912457179840976775175306924109225922413938147138917705372569592019314887233227179474030796785438554080874698034793046783983195779195435702208773732257547349927901935678119043124719336261032091522985231718683649583149169465960765305358076197352611732847948410888514253206574710419446521081234549520362678422268759779493940232164060146682633170174453309538935323470340841789094915793932152106216993182030834198018460696211854220431110673262928042721999688496395923801898580492794924588456289990232482877479454248522891417887436512511256294123357677362298021374064955216213417963803054959212003091030162113883064619110945239652413160619802377031842806327923075420954737499292907305429934579069001691617119620843496766135340404658553034298705109140596680092280894272713390731817258775844752199238686440313351697999981192685042183443038836274655099081419963654542223117379616006045679307489189670054437791494112782754000686941578769445202190634123837287337735917123974626998150797936701726339482407726439037117152096649188615114029092021300344006932446187661064765156820697526412145382121989250078897571429218002872717632434021957250314861309083961638892025067917905871918854590153789239078901596428554345007928412766433105518613053054540748110229246946834828718486230582429485510432696486061958890232220916435604324440100767300467301261819945554257613515049437472941647372384208251722448214460426152720464894616559876736456625140822799574359454270507232040455800661084196750613283002651506169310170296587663647964954500885990050020537575416733856821754585878938577289977784851937053976323189125734333835849138522398095493077947127655449869121216854437283148053839264343003520812625417144726873029277804522164666390014400251695210321486829363728463756722664984133487599098293020703629683483051124630244148105036790381157380346736816768220712084774286628496207759493087728888963856231360543181472852986479941584875611525253080756278658896250880762698645590182058320672804377362504767871072680652559927529735132315682366795729605226326730015825491511913557235004850950458943995793251981193165480735793993676252301994297078734719972820855353549326132245777767602743246298068962770321619878844287679428754438582229918618624325333177617707624774614199466462277814215956762687981857877649868794724947700534148184400567773526800158802615702920819196319531689731917320410938973540187349452137136190069565720786787861439110735693660307415400822475300612453528913079966253706659060920975089632061960508421327029363590412401457282537540846721748087456059820918212377116063133233750119371245165028181801178733508464878086416842155203559147268047337710182266486277779681532659832163486396887129951765479506823240426125087399771021832281565126747786252402432903168977475047516338371716561403187509142493505145917617011306250258794627108667259180945145897194453747664360110277961290720606689454278216550678493469726154504786581273288801954360848799990163078033074540787743185383225358712917440310797740413527962932554477954333657678914323106230934264753705612055103983483992017694909875480597210583493059690397998563204528767541346562155374284171748592659638421506252212782083071587635520548629661760478740694415495540445801173807085069677033858988046394748910117867756590867836740522924922902033030908042036313383914979127067614637605302768664660064320934060143162333196007912848507607981232775015349900926229264831388979813552477299832866401275156508361454320261960860612043638086221424521859208885565657498223977264968008634945858675250241112452211179488890489241360290102683314182308762629711236080953495443241465926861179691982572417359104791396694117050867081871173908882740149354550713997004608233149269878825209436477749221555793986442859882461711105580183317647690191115858760128216760261995909026242973356500416924642096066376176877141237813874961351160336509917653183923372957369630391881320960189561797924054029446390422098969594367605560215649801481214623755930558767143191535618927344388472336999587101362830901174195899337690024342212281124734879886749647429747904504753027198322810540029137068459862066690151244398743809707428599693126735939073273475760693589607149152310322321092265319390248551410080215055902303093421537017810648231132090534791740231476881873401210856248226950545583111241518475155266403227056782299802761621939469976917621945746414117697143422903387820970898267123685459064213384376969972331127425297147815068860853755711782989729101583606915611815127113563605348116458484684655884361011935953379474665467488768435269304647410078492047542998520150837564437277301019893036114025397836173521268941964525793752962834329527042386407532732310117793705527524397373255908990237337953987424579322720248513891027460170134613080904337644334837731217632289477141519716322138741463393034501164886965695736561514162113430119871624796166051352989102273101716395880919818119206459060745446801375466798661765002064114519766689171199409872096153856086218016420104456675184547696104777522501277939324617571190134184757764815609860084111254057762466375710945806373271932656547412939628835238821089314134341257101717858517321911240973244260770886866530534264031854545677586551227502905933671894256253104697492640273758462477691367008748243795028697029691390220162252800584944044798538892721275883222705085215194445861679267571779817466315650679269856984976322555770830636641643583877204060714062274527945417905526715613347958568973985964482105807698039621657683042436853307486807532056519022627089902285778033688955553618179942232610156825666351738856580795851701693394476211940703172951165251558273743989646228267843402627330014406998455273244615410227016059338809132311612972844412427657354873500104506240389704768552523954374047348967257841843725009820109718192415229647579588148150790120121257782493631752291427070734839715964970600442349638605810501182489709262785461257914042913644997369539365682374572442440423486157242069396692034118916096357148566747814594793446498912798512937580835837436040209436930863349415114403452537853069818050982736256842070269621509138569962189356894293139216298112264727587102686592380400815137860065521392480335870755210850064047346845503815395670444976207254341458482003826312170600631531907595308425447208769876676320794458403051992989771237971480889050017815030311291169582286256644476250931729840434546954876989461779855918859838842608927365811949351722619941540796860563833123159712375838878284706673866415809078474621959286348510059819611616713549342881270726678279565585779589734739504215066137542636475073338127024236856761271719129188210931444886091916092815053724258795970324247919509842014437678391883526253651374069230034825268608310654471517117529334776287506675676727737466698136145340685416313745386473100395134019736795352084516986339625900944201387220568200679684976302586296920823342537242986415079905612455648857744816147461889470375001950292501790128290846604944785313790130271533949369864269747672759831823846178128783324801714422733663812085968871175737445543294920863150229234190056736859631318090521711303071526069797505755339464613582255293166259567713745633054964051262963631618334214465887073647982940319783951937596751194750250254038976354469363373599996879955227534008347402806399179436151734697802666264009236972697172528155959595167137396778436153878792123047380371795874917918481489564723481393188235805946903020401756892295882287063880286544534303759095322548676518588725380778522591560924528314830181571311136075933784737315712931818782220402979280444719605613843530273070252575758374387237308228615882729556757554783362913781410824227647346930771240215759158679680674699211197635987553814373375325948723520380690080637109502443354549725359132818393000062285816528303861851737444589717211371033536525875143009598813817385715168242328857913266591938134608754678403147553700714901172450656693688836834522268374966833831139262583407429369736345233135016855965677992532581562573385160919627521330027473253669997631382389561423502539240474730925027850723058158504818893599887228636627200494251000994675641350960270312787151127268017490871675724704594601910065767043644133049674916347768197981590536004182348545916427446200861525432950666785913689201708729795991501539202027780107294137767672087677287710462667075569072253114294133508734727283669590992346348042270320896153647890906421601852888945834451393896555183319323707588174291360581563922019525926932125821154643776953674145141082098264486683187052081932783196044670239279634173459170766976612559348373274333954657265639191216833764036774082996694936523637114761346883474910790653909422001790947005403084412035206933216175899644660043681677589816934592388730561946183922311077656599456623500320789083523743873492143297328903976938089797906557388291420184436021588571542572610699436804920169018506046552735766020621849146054818525003283502106613934849848965822271156474852226737371462627450335295801197323710138412963816418351664314865593512392039831547571067648249989145319462868848999019233900037502674456835622969213436262340543385870750882781774606737680027377567180693593508087045725389247030174558217921258702644141669130813305938334680182342327319550675621507376482189913632633979999072666113544504512136467914174763543274781604386135039343862445324997644507203075507405817381851106501018785517560816333801619968601252957828017756845795439488634354687142526551224355251948940191133745588484500560521317683309373179128261962754927070188079940400748537354776694266600172743758875677129133574851706833836322457973911307304520420493138039660724621561550822889051968584346353319517898023616169502901207683945209955212244714714383180566602182310904818130491780136384022828744516177817239738326470753928729405763010034358817738788976755108154161794504725017899161914294448794342840907294215581995021217785881853032475058574619389743374309767225796900254029415457285667533303220485440993211656357071201696005804660380223796848481564867457072461736625449645850939196628954990915353371065661546505642922273168710380611169623096158988071360617829159602042916117976894659475340704828385885264833528128294836892719272123130886916754060875395202369590795740315886832619630822093250772909014331727999593685059352561474765489004079528653371256319526717127725217595086630153286214265956640776334892803496298696464319634598074222750656245630802045478170253308625403541917886934407073673639371601691868012705930483718770249816447378763046750968707840183899597499433276652258198022021459237836285074162338447850240641497408455675996918368880907227069661634891598140941498401709640984120533403353723264399671156023087932497301969220715237226489444153859998095718165201111575565846353749243870810498549067062571179365751202393222170878042000306227873385266840111151274051146164037328725945180268070876177706477040099072300820266133761231635642385006715429977134379631714652380889857828214057963549965420864540196691546699960374292153600344954473160379953063546309180540125457125416529486660208208967633475511402791501200908355650209358395705670937038348855107029236123452380317735611490650118836613572588253615628653066614545747600219303961422823809905118248413616871362970478434128203359757114538584937481488046478592322928330441605490677757741848542724330197818220425964447864643732382451526232652161152238550727317533756277362999760064244564618633796178238363853831744020999787496871311171427549942227183952426318715942746328854238667677225873126449981864502175979249084258592881182705472293032555795134491842357720959801098420907576965332614975834108006514103344401599069110109389196088393798956371290377918464197565448809105913574083382857109906061887932775327945534449626014229634395026231636232521152539839815719564533928624923800966942254402289204601958919398554874561765845649318012951736757355710901921175998518290361020590735583615576803650172671569492465480483921555683636900984261378387567111654352212268417179549042868671256214286006798674362358935612339998502497859923004338872448446693635709672976067561088555009041765156827028155108274227314565653690304293530690147108154807322574232364420644682812677420617650130096224044083204103570164986844711994206363291595665957622049348448789109590656982983174878003478374805438312826029988792833902215715228183698954140114253312250509215768944916380766684880604669027632140432286159970525538150429233688615038368884239818666358392711817269221436175373268091205366997187401980611686795210352019619881708969624508950373979360782955568066045832869232263908565825950284180323449144916884418877043578721571015504337135702949126200806982975391991086238681325423659851007563286809620937190871322998243153481309084940761705129421403559397930202700792487317966653049348972080632587365964522123751410971204045606746104261581389790164967089952257141554036058771574054082372768352879698963039005609913977331188623074207018299696649616402996023860608015534210264460095741680228603067409260968733574237430128517490265250417560709985448216699600319493088288952640898662464189801927212398018745487975429511561008772130340066999670413999934374209417969194986922047872147521453732459008319162136652155708943129525484393869400638110787044804832034251224275728067070687828783637542012830982082235649287453536815189948698597431888009676690203584102341627542182320737477616835611366439114704385237060011099268810230649829107184999367067594030342695306007597944504160879793540676560941822335448503578069295599765453642363121304934662945532878041688478231124266274442670557982912249974111903193222321173902632035647067643910180903955165428626711747862216576781470923833337777442100640916101605061081910420946332827795502759424001977146106295046953685525767487868383032700041213251880895327224877680790123497667461224811189391567984571437396411135732833625454151846686159706985417969056127210175608695720647303007532320516020290898055483394265798865951990483931633934449211202598991291451162446608139397230140668515264227388205265994101452023776744748142585105470472130355668377647198594909121569153755770546711655528010534399984060621941629819216444383758440270338842205469655626351503743985608318853137115396873983266914965657523121365010754800071217473431177237413936756817485514430286019483565668900386169280160774631608441600565082395923859856318843453215792090755314629055895416493838546476440389626267826657974393742891678254685801387897012227592095030772215048672656226418255361169388953136796420778310395207251800031496999329294373506207451621803279571178412182830608705927611264431801089956980311341301522021223414009339202796556398860026978860433470165571205101462122920555210549515970597107078001132686172192805968963747584432703786764428192191838011594895222793530187754778291770700217177577092230868289898536325288104976112169917255388032913781127905570283654470229456005294653971697805804776262173819460283994606556177401426005544338046247690911231017857821980984636984768047158017234195358738361716293132209312115250362849721400077409362649769161971884608400004514611865017307561358690764142759125000460509206669857524598866848199055703993368317219088868332911412781665149168548381207664931918790091235377183759572860865537859913645272176126336951589540803760016281638543517084892832040695215804987470696553040246366260765985568618012651701245019370107144312707980210135774915003834004345778951170759668307862309523421683725045408699802259268523281346001714950300116878869372529653163976863241089820435804649542375495115846984559539931768583713965087018415983697092446998033446922663100908397852048342525872583812250923392265464032796644000809980118641586157408145642048683380476198758172945129824342086112062696819962001188736136525743303959038076523145324141374736089839205504081644741823012508160821300743403278345031724625263722075578444352465133582261175604277327945661784820961380048375240733342778002638206240704869729228933445128465110347479474871195344303003136116665044747431989394169949657109835765458477492374762072017199777154304922495478259230640235622780391817205734956824395516221419532702432507080640027078435949682699381312470288078673136490208065601722699420641779829345994919039532760088105104973192673407078807742899922227568711829653858703542885965240130986850780276693263521389011330150021099660622234922491255614506419081926991388790152054587192201842025571265765900458966157694974814254683404119384811222237015807287899205018419351757903242796954486236118848532674836582667133156915214708401694807723421968517581079242745719748498590768847409656447146757948401576143296973719525776885415110318870113356199851016987210351694825425149168451169582388203693631213085852492473057579064290808561390050879673702848513841973596487411965680705634861026355572552537787873722051428423485996580496304925378570345808598843299393238388841832820839819143414517307111959588652512515207149863645761431372116778473805996316461686197983412557187458373115799492381668823317248917907721578900780493596986758157887345736368538974495563367587694895685538987708522665942016823670836514927315969926662189729000139056972899504360872917128427896944745047866365553977812140503216536152704943002586464492813208151006756204073770289495604686748812624626048101902632835854635159893770846913169929769445571483647830459040244677104708154823490536904302015451230655128021567640963083638232952936982620042184632941292796396120781698634616892699650062390279759716869180646758144934619839538799218057110628070041095255228759535403321394112117893223255770898673913214872784719456461364489809491432399153489806578937823881204470585937685582113394051493194761440787011578173151411375418346393788191645389142673566092332445632143640053837899503093513138731862281159171167314577481211560397884236262273817217021381848858810309634244189772791484630225766102286315075505553663578641462385908163387805337482000328900602705296799983833387178358742946881753859731719517102009176979270806303133462826554716939700870511452122830407782558387609781383355242201338274313856033509843375501187006655949225396355768525093767159667584921793972651447539616294039006010834338629423548361226086245568539056305840634360582146467919116084520919068041234817692300960050126522724026100363159025433747568944913974546956665137196202892077280329325203539074431388047864253765099586200495216103611986047429349377800806957208759974498069496038131339144144271502375926005563966404656405115129590685725878782251464873331175575987090365504157311808430649018889150859905069478953207261943331287784466231689480104731969214284979432859539020119612809388088336594340733168990015109752015646177513666683147302292680726977405315288058249121145189772027440485604150009062628474785290390045963146281802759746202124114320119511291810552256414390743894485930908220437157391355581440392894784670990253082440782731344768390353532912976451012425714792624451679883134672628004541896238237041729035457660591657242775332560227664720162801727953206669507872500664025525032506608227725432982943755430736397278933765907520703869249101607853964005069198095119440904914261957939375840304399450709816379415142736031742179833456981953379798773915853884549255882976219068885811460045107279089212625348335927908869326701556640148339300848065639337875498188050314085012944663410286336653849974154021799540637721138776999628043924239998002404435357885285634543531543406737756183450306139602053144421840807271395608373144086967614726637439403092791637594597534924299571065411067150142211865376954848765174882772489527592364805465950069200783535516551878983075244097753177042860017270268280872641552692231518030036394373874436730229994877677311354657539187842181593771967387863560492918358009574039515768340606282017452282073907872207084561373659063922943181191103543712567330173473899922774238030507963527036292672250940823000179080436085338184739700626419076104033534800438706022851238120929555725961901473136161541901081158620090492502221709478782936830200161513554077610948911529539512540297499676383781423933773550837315267325384530517481116310525135598624853135256188209355263923899660516329364751769604432624505363334820757934421881759404924656186496459147501578780239940109484918197149972455278376570744940402110446107623799590844613614579804995585266262016755552881761985294311584105695623044823380827283821196867623001278861162693128041822691475034839372429630527021830862326303606258447984587207394889011046050818507413771640589652082466618438861847118057871176650494474741586148052726682164649311489619289758374010506802171770699214794474910885294286582725714353205762328891907918581425678225349787110211881501733278754506215271756728387010484180804970017898983554581165492945117571918275677983495647889366800578914988250925723279687289250833439667562666706590713540125381280513891195772837449418385639672211893646663587308406662358197057435264990094611403916151139049421850096805398947986532715812467230556808042943244369503391556888922581429993933567504945669582200105607682799363573036545562810671589725167575048374178915187992061578937342422780637426240937072314336131088873907758456920027469605565114632279543583409414501291636803060099208560175444772359612335913983526585338355855065454582950135465119884434975223415056828646965637674735533561339898361770672207769791652870468276779050080100698617895263965177472829479452927200539985954648948783888631467843218127283902785857039884715979356771212640270033314287294880347679725352919633052134605709627860555873747089586182852918135998061009250357590618546597958632118450195898920845254282810714692406600560827494958579181311709335874042056969039385586727568969110414150015935849081958986956244377910035985813154707600117989129136601038026253063060165489245650363399094833055484558854388628756870799747126149788546084721870273397268241576171501903959182736634455697699978723622504792269851702641365763174682017120572205513290647112725280107542283517216296235384644407296235819384240002514524171237685767900861286275541887139257350245103403389925204305040031188548110487401682377528051367018432426837355556968442638609081464936983737164230709953374757991838628370252704207303930995306736653211261498572617010942745715429163447395507599902929271601708046327980022754856387337880221856514424988525860928999849611543707366751871443255180811979827450265424294932040556239373252164155374970526882261806052211582518011084248905121728809824202331334349978250590298389906456240116950380888594583317666188239644838108700408167734662298563612817818774535986135060749271588185211888759265864059480902259274894446396535766296333096765847450602904917569486607981231614467915265323191517885229026725718474913735092213837359258677545049723429122872655248571014696695611317452068853842108331322188947177465858492233344277208942953378261721621198119332657575479828248982683909668685475940555569291898521370487993462043223126808805075758069807361254800918630696039505316279242632426664443659947689323750640639366585112406344462293131844517568244344675671436729225221879622020145075721694065685885281479048499815970807906984248021723264295753476115061096925216066769921275462925450808109112154085461824746726011595026139948087001817861965210474765234466983834283431447505407998230598479716253701457534354870157803960570638451704681519055044576269769414744442646233932063611947487510927358555078089474377877284100204525615355083405377597354575776668670699811842338751135653861062518363363782559575390893975775852531137080423941059512592882883511317058020734287585061594905222446889094559646703215742862768054494272099640686655709436813822330752623860910114074343169633635255500756089587113083068456969487395606906506266737590260738517701389367565841838651171572193587795088752105942182023334062925890532047877674241913224245973641991461246654341333078364481192221411467005651907430833145572478416560542356163908227241376466821227754216808672350382016001982654971553762052513687184812276402387372623124836649046986307825627340437158258929499591808425664046732405804263556724111529875804070358390739798884655748929373121803302387354910081160834062045105644787314064670103934350992261246570639079585807782743903137204216761445749174522862771654058609300962009093568160103406245052494319753445793827033699244230465896145170503508672912179823825769802281595792954783977571320356156854464472066632389934001760193416917768556773932996777586660674999131873292737723646086109647010614604460359498705804499619321840068648318003715837488307986715104091719944946912237157747349176260465822932868879575108316504055202194080496976990513334963592079456100074280059459034775722789093974700925157463362738880339789284365268295191288891815279282079482436974228228529988753808929451576723279982110640264925775837675987285298481821271030685457556196651875184210462840764986218086845937956517926016503336972839838372774009326486973820512669861394325029658138603483878082157981781794247575433752514858965315760185618685481135260933627439992321935211409592423125110272069678746190810147793546585464689848877350203782627801737121028632739068998175050016892852022323567149703254176899983480665416300740076848467608785775176711058081268623972937489412128570976538227752214925574279850720258811705865410891638186671712590519268715779395776021406070495144562352053844530684154722075754024835945918863304943771125991662332936702875330445459259411131128280618829513941267496954815006258771055349991865926500684251703221588281791780803005275755926615865698367930269311581489412057743922168554053484234106097826420830714771218697467650484236231906560446587857018813091002706046508591679043658078129356833147121576463649273710700082321103862473358560479075684037218623129737200499496798930602996193333056835371616208046913186018771087310809407560032441185517343436882508242795332898899703460770710006699370070022267734113028375475524149231992789446456608409757662330572866580070720827119046076934314636056157433098692056860148355604524693990824882052733196433949402036871202224466740675711266455426250674708174102314938796791053818661056483702196878933862424107632792064504012126602036833771673281899796616661398844942853261839330655686770272296588391608822199032180897313807974785591737083165535390792148684683321164106143291917744774223376333597868359157262260656413445053710952305093654353006710786490707152777286131051764425573620141950419277920113827904900401995104964458482846331502161223335849340945871785319602937099861860388662073338280454646186571763194461779295248175097877182969375681592383931028662982703547541811050404683307383308620661073052557234991837308477106754381395787666954993156999749893222611663549090690188377693384599896418041805836272755013110085642662094281187243092774562557586756226431281908206726948599520432338474122195033486073050873657732914262240199127844876380997377900883094524097193179021117376749776698919909884645821492166410406594710174428264452507569551626557520924544903312299805441108894648687909350200390890478843636069879341368289546440531019791857251439872487977484901988151067919957671191163660447441381385036870352358440584847889479301749183402780332767078340958018229484568786621826227816101962383291486621099549477817698026905323026975877072984049863967946773731220872966005232471573980102738996310335162505107734848268328105412510112197228324649239626892525565295793806489595526812630049343043478361552927080034338057240618023403104482073955001805016117029451991684387990972861260925238409563982724140019996376256413661522237130241757216163591070808618654896440146955767951566709107883671432460686240954989926162835447433615974483635656392650536726856958722610345332651986403318330531033698362907258680023971538161757259804178689583632878598694507683398133265258389571296170524954582306732580847038973618948315574878265822871716622679612907812562029572024488394419922511405125848645181381635995656488758710949474627646405581106107223335071768144210004769882537919871008356514495750559129020963406112048157906464274671573775641077138044294004711478748661882266295867035012125088241470544579276586531008846261999313848819646567644170092089060820959944126397355338097355953947292336425655788917974269667023781051684042726044064803627026591505187729852490296711284277920305679781828906764543892185025471621609087090751237851178075613345498136065988116599762513042939141368072965989583176550200449355496690134491402047162393627648214792983886480326168832283482113092897119672893109230734181869230259401067298345096498996622305565208940636536774837762576712484547043091289392578130010735342168196352428353260800216325638136843320911016819645480370798047436102712465134015118883119233702160484823043336261618526356163190741658507162673133764903188391641664955441412571396571886504425345916374469650634541112844633463662236729968600503277627000896919132128641945178848633187662226127609450544722733070703466765630493952105543471801707227605570795279919236758939573352011087781290397407183307398934957732756669282480604249435771974031857269128338041733182326707385409419955702665152307323891106329147635865240755869464852939200065614234177585100733801681090415009889725919235699686877123316954478264832176107892686634924198905444068886365917391555407775853882060028276517814059940729448593926156127185944896332315270769744587031428428416321950064082167927270096006742571916599407490264668405497648342275311798046992652169996154553544412698278501832002547114087238419661493590152485718657325347655549556702652084307293298153030081354471306125360630596382032573725316464575971244064293004109151890582855767950613916609377827194493794658816564081484015967152407309331116043922209304723614039491959103088664166022241773029113878210799774149643926091130886550309095761914936880946647908221396690144343879615755418393270884972707727744892186415977570867988491042993100803047000667548470420999367249222522785997085211327211027468339442582646270698660999942154355401578513711652951878887349963721803685120312997742103912851700238031170135021873447962081313147233059812672193252235618397173881407444703133331973350846022227924018395692834241152131330551211885328467477862650930598654812120915108131642806090248012792771526103009947307572539969845385408731546740995045179542810781557762649976084793994967299132581838276090291856166949878144246365038658448599423085581715193100054182217477267910699623398317247988561564408297993336383917253675501331073621624110304926699260530314592271964695840175200809525836146723347788007155050007758703393968320972893042115598478229579043414867598202695668846767368076280923975267527407597512714225179637084589112719738190280721445349492439722390765346195871261010168511576097827170223583745217765527601507417003219897125721293714510582754206229062839286927732588560866177044179140500267536219690714257031701665907611401598354213000925976953055171117263883584568135043284962522972700683268604099619384808026245851178874541427831546324987712544229733390653849684805573517180661489026204453236475092197657747519277290483138299287401285277667536299689955237511335752594988462432977602123269580945135423095986944416634257740567156025708293372919022077091328525001674534585026439448059202096809627719550407619454832875223088580291716188892161653106959278527223288142791916975082409541698095866736179823881411840804198726768236024434553684089344237694295130074677662100542021255651508386885685639723781391943670464922563282057246833279771878196370123609457112483685468126053675301400449016792960292043399971953320538138743736482545763672066272590369257214345515747453729522088050587610120881473134540947904387044657256426053057828803457060713667781104702110011075446285659201716971033899572905127465262958901267389342760133016229088929458143960104195217139109933922849767563342109178961035003605424589794970191674400758979984620508900349543547658875479680266033325514959343058856033490440896684067529354078704580637797743094183235354918974091124562353283573733172976591109905272747352644499478858554769381955007201673155786532050350882941095234049467701434552365591853884815238812614330292366759777373611935800105214732858425485418608254917186982147963070668590619793454992515687466329782373634699469498861995477312109665098945177201055561129686192591969441363741664078833313508499793486355362001797956751710002116167658172582662222925262610658746245480758181807692419087602449465546320378292117563078315239680304159988711620368795594112757792151723410533289639378682218600620255053812203170777508317857039102984136282819902181910205396131989759106492263219726852907778084638253519289931049791065322650707299062402078771679757165761967481358669607107277115875970284966668975749018645941561437594403006343426120814874500850400967182301591473179445602473751531876725684221476636305581744742582889109073116727764870611539943377217151005422140181550477478520316645062403368000381064783045402425156795194337170660553932966310272162425348739588630372568965545077966379895055463026229473045128218689331819947825001829596113676023889625001863367420086367442326330640859567565931572262937661081333156036893016988916133292222859999722235737310275301363048046460300750878910019898240757881241158783138596383794190138207785496308712754344045386215429412607985719044870989624544973022095285989519299216519660502279089375591833719163530505236530480721210842158560497634134049036710295612305136456636791342245588889382817998291265848110404821294120506728764984230044875428880108202193765269284926532648645383372290038193523340520135318126120400419359228883796863544808680564409635375182552778699753099886924437985391348782547858312320782082830868731082804310342556453034361969951634399909208534379574154337870528111216441640808006041522946763997946172770177766549533102841767175038469711609725744691611056401865623656376595163780515129017703770858014401193041367072568565986737920511917905512484345510750327913468938398986033504273891143253272105339289385805293084658538934158542635366632890578672559585072970124877833440929225589141681388762958827346301398186397937364242688098961914173435233370825101534081830155033049495742334449514180966668391085914135929645841036216786801018331803900466627930256617388266195311492834900861876355200564265767017789615987388068776244914813895409554444196924844115676505278263587719628770711533587250644517957337145113476006124043532687979328996948071413551731133770389569550912879752742389268123420880303975420371707590552322625715527415244947536329809868215038566162979884031484237817805602780652764941425642970458580473749968090902101084583017699121556593379241455430509906400321189980143205058490336568769425439947835148514367277412961061026764966298082587678235339260608457460743751774087471796206981919027392993859607255851301424121481975244944560550701851291601445509502469638935822437421478875768262513045437643705947989814322940671565530116307418462374173701078001171377516901682771850999855698341702809767527088958220039795330069011084154417019436664197893060014653458015698960861303409343191532995058100769690798118847794717665836334035782792944003376833424799593180855189593301598184876098910758965516996885081216013990976238822355669383599235368158215007334856909558921402353559180358501769325153620776254676035172593577915349446015522209067255940207900053696694257902764714338444549797269149496678338609615312311095388001687434349410569453547675527919335588137161285013908426674316644263182958936584360973499873161155411910454388849802295682968823156530069636180995955207507055062226197390054254819184860560978384579075661836261545898000516823887261555402023383836181471548893154452242626156305858540359868114353120096516361829774575377038862724463344063995704723473357811396132061812474432352140531480489743573246836722440009433614264385056905018686788655679698383325804395237123673193495423128192268067895139924932362313982186345725294870977489572269573186870398575762572657701740000654863212499916192083593121347123271535810872345351685725172237872766235802853343519534177129210937812852241478830282188487443613724722518390528929223940763135877597802520597247354656393294530121723389437870384470312800374575766528751718722222029293877229050628731466078417901382541761220881508322593687037398557071131176410016152052867838377596153303588522732280557263351868091962793432302338724643358085470924196470866868259313959689247011607237541940449507863862319964834998057312866852509989473703437018238025697824895613428299171589369166496187715918795859908594968034790541743317573478833254870737553343504538132901412166487956346749726315116613403564087673035584399335337371262293895959937887673792975652331187299495757642679801016839487233019428254707806156426507720502645466939405674582417175250368740308507348506082077294752677615247136945279205100410730530341641360353893298631469907239769082086006171617006143221798488268282317095722893360298889978572576679190570526780209333551603796265430686074213682968456292742245354196785200440460018315455131448523953604575516960045000822332735628490677171514996367290737245754712864955187582095671629730970774937541699974727108731604044378174367997270819266493723206194049750483236531031534316949386357922929376158002182862333771810508358379852707186997187754236470588823282822830399220408073900154605041527417083308074658244761288447968469831735572238378151454948748567393555344268223740860260305602601182755241063664248912235258081738564670636143276180484986064406643822635462869841653556833959414729925795673469705997216402110420146865966993656827100043006295956990793548744424724024691678830441614481712363559121138568799695924860594960391357535737580809840201710379446899013019936796500290924724206817418228493103585114324762323018145659296566305498965762593164449352346670495299318501507091144096659898191290476735233788350020663216522911882553919347662312025395774799030841350426780396256572643550800114685019922025400807838872189030633771235348020015878097352836615683990316902941205542363509358590588548777158325652812888041623882978880315375447371920868408178475385830287085119561521309167072644508198837020309798332201328084328804884335095898388681437149044686399203972566606164900114753955582024948674341857263939615690235172153517480042039773757068418921880901449292778352128816146812319023987554321360901617457971728484371697243892284255182545656365291819464741010159541038173340441411158803377097140932858156114373127610676690658583851292224185593094630632520243217859377135865538397577919832418512575817362352443022607759917375337453100353246777469637813410432468780338696253145957891669255848443469503149147089063066300049451523563539040551578186571883519204087449201361600691553486814826816275691098099168024050747249699687572628878804995093734744746597438605107859061092067736161181658869399859509585337969610752079727260443933403019279051044124846006296171887828617577147109888692886826702851202307162589332902536613320859836831826480079938456852497180212520273260355731753400546334924154509881211964177799597315456679634381458404440334881760421020461835381248758444945165844393240939432840028357977558077847919371688099747148982039495790720946506571883081915899921983817495424729322233195231104082927836079762791491340858722573004793496072822967411262114958611084898442943728004993123088071163653655466544925827575650927887848133387291454842594205815756587851599907146268368014492647077875347642476962807014122632514985853623852237449105915448684727412179070770877285985899905807438234763488249990089079133191292595669147285660487933452775555572034763978176739371211062212329575298892093191009051901307474013251881317503033645048815929201628980498926425909607582484777900949187125244258226237127270124825390055103903970960403414117326711656359700096118405704923111745597017762534038331488202291164513643349053401912492225948916883835763023105929535540393353170635675555677334221925311129395670512668355842786819312576234949935551511416409712996447959198748534814244487609136241645703965110226521034742362800442024112918692465899549664455972864547543854900348878899968443538127491813970174661448364890113935016254208145809098454793082338478976745408043243814714830276406326384800277497126327485245685318584048077627424406647396564409899750185739338968499403678816807270736718110326520255734136469300414716458276278116517220602712921073657471229922721442034726291335084473421748470925662515819496052899497905921331330786382669824342818113329267094183506648300081694164308782235006530379668245664752457452618902655483122781087343741839565877603186115224648778106021394611890408762085153927338986606143235133038875511269609096784505772523954900289500519107373603374841542110899649090681337138121068105490853916487523641973386393312222051469612235849197620127731758627396167077070339945260532077882023358205944302039507114325524842643667293689771824793638024757255717441619673417141148419519684680727232561806313895601570312286393277065930158218592632779073788094259087399810998702334814617831589961854910086138954902186924648434693254541649933618936708436615749011808630304216189855097999812122018322893653271845821508102335710742351804645719508901648457356423151503966053752370356970654894952631746959955407776518430301190937657588495623011837591103780293825627341861129050757087606500236623872462258912990899447974307910817328011865564662701627357096660547840671388723759998739296279033162870256953724986627709597780325176076113652966048194705806516515972427434642524047297281399452384313958076712526941230019651848738357531009260263899801828127033869459443546504897795704598608655327909509762446652538679866353093787429408067216944055374340351056011806778502712037329914581336561014550333196791637565816459991198429460608281682137229087339660011564649248777717722770047591288414850002559287346720843592097281525313094277041156323115786551019064560262144636592731979149107295444063695800851472305946081208165631664109066278554522874089655941464009501053573323269397944030171967154401471626058577258618500760923115578360924143755611362509677478066208118464933452168162952685753542054334455144705120139062394493441317622199522309424616638672288719525798605229021433812096521656471870473858617443162920532414542112204374754815657077632414477693613156249997182932925377082329020605553824174627112908679898506883608827277577148702661518566477628100795167574569194247562519721819872034441611194992234404604266407342338584318830265716841560112854836794119462572814450019939881881547284392603903930447458126249601314966394813748272604323710375805408709472515981223669106610521732816078945070987855436689319774634868861721973813738222589412334439717363532281316509771301072172488411529317286605387235053486055105976654317350373195212749133922579494265196854064240075084875333344698653309214920597949485567072400330088416530442504290337899029556296999957278679655053779795483834238402181015037949223145412331405844322436646718251568375692905675339299729895042255334386108343865407617614502772636892504941008641489616471149697501135928319989250733766876871864006895306813579734517862284663878259351046664378257454257217226427554570533222613797512352805262374313973227672926234685024739678986577802647540185400033470587003831535855636100889413080531154924562076154858255186880151323423145775879599612087407446302400493926213211918634787530502567534445678178164345373248692800580607620735111584422173594884874587282776711311278535244020076042923406093715573224768290929608975986968337589540413085389962430212604681581940500988310547858923135812210322760638361991787094486616543592913304149780621124826828622974577026529816514442946646286398431923303215004994708059017338655326080782094966866844870420872870698452705616512501548172030914823475305834582553525228939779504657283788093051521720110210216872348156020385838058373524925841709257559548641798539694124586504280756754872424489041200234200761067933363328898091805544562632146374977987225711097075711728620940784665118308421264306280155620829076316524950733796373034655000904414760591349687629693935322254477579019335306259921936082167559583778926628747394395583908488134655398451174693287410441042058491949802564242653215801800532465103947493575545233006409279819402181958991805482152297420005028914561582060271859765053689692328183653311910044064596358515921340319861473809312139499272276636383163330136337765948374276387894694340173204401759540465707927586250134961508423938455060932810545910093903356038110518928516872996831818707813263356293674167352825680121558379311528924997205480308558523409951682999606076891663572133869288436766219712443386416173148661333481319681550685037713871292860968512884268677507223417309966522802099804573992154018702224800002819233044911404871572885460309475706481940295964056442162922940057285704071194468002468663664548808995689423721826241856263549426843346288347580878518916590036583441524332761158944263989854158219475779026136425504232442633774253624166370703514926537975468298061684738423764568220629316258565000991098664269014523160583401176494446645351556242659525021524359124342125488671454802144153700871590380727536408748265366703751638641810231037272293827640543542915860048427719906861940327773129195925883089077711003639333703216359360342925237945909465708864330906029576136720029287496715589341403258467109796388319677380867218420896244991885884851168612858434682567094871373068082501338632798105717289444973548707507091769044768618578677121896784949890897961962273086427040808198261448669898624484868542340949891613272300148916508759257478086273017652203326117845223390897359459070450285519073978383174147857512098718497192389432186809769355105726713696689505501086052987828457843707476654174578922046743742076723817527398925228605250929847788817264235790174147587967431007192196290119166563357185386853047375730138803787813306807121634584594088885368365682064745375594308238526105577897689772611372393948550590348949925994073639254934113163804312478271103148381650457082374002031830288558807318796189962292590806510879688053294417180296136291425095950797456113177617315442530788350795059404785289262936019720293309437074715787304313008523525493334438321233649298182745725740297874451287407783428728414693044788403401438221465158549918098142905667911325649591898121291302519725700184429438162264198348506385015489172823201566903097281464348229983095713524567543297297309663524236892888436835759259956662961943202683321771458719641452169668792451341421824297024348951857819612753921752801452490373418411032408024471921842544816421697640192518433800130164977000350360036414201732854804300644507869469826643666656128647650268506560670163237057371872138189511767872192019628364698016738443267711677376006347010486590702019649200569822705562235449196423140564986486854991109381373631588490628964961941762963797606335880230783827078048296785474079967605285993028428370873300995787270502724450669875908727638541403471213835519027960871367321399686359747050915433995644352393508239378162706223885894189294022048869656803037116622898450909322023964240754227492816237883492005618939514086367060222789132694731652927050187213050798276470385822468257005047007118046697055334143017587465677656583869790504324351757358775046105778250700249301587755707699918852383706609885698819355970475095507778599198754728353089727078698003910185619602174654260455939338788848156528244399127255186938893154801963714803130831752160566174714263324674258336331571493982511111306768439350060463352207756417658339968404784816250610851455546529270399306201792512615680209578077481186381226497202263505734631412023189866905968084050512567508800494422530548140009559497999707754055808909846890231626586333677175955868321751086621549004946710151626669141991694813738987051951391456182527692773418316058562382668668195024344484609218449240995326403150236458747652444608259002565345858684171826857366411191984427295950223952724923656890005625041338567762132292512148572229491404973493787845167127344904700039881556274210842251318127549316511437086595298559209040746618519418831519900303605047105258114568914515615190037615704934070711125910956227156124094155161690125789307522790692513193852377735387818899085414111503998581656270335532181046096321576646697884386852457417704857038488424603017557249826223740775508539047251025683889783715161596388789881702708418853428048511071721970744737242878006968954765343236648055858888773523740990199241175343249546741728049455212796492465356309387990552716094891402313120094623449958141347140266245073150153618004977034050148808617733508246779507115936093316239776002007635541035391637369485330098932872165972174042476529260578887327885168273017490442559493438540700753604988080420658328123070250309963916317594962962533316295111960202961953517811248233337119984389258523897211537768580269277715435343017605033929238003528934648398526128958980080406686065233056412611850707835603301609759428877803808669723705137389100965951353597563288404492397894216704651474196408737581277010499428193574841970324904361267726156664861849499285847946488112218712772743139469443829323207674912837638321346984765828660381837560905116146433866474319216861180212139241023399086749922036504541010948485501439407048273944020125820736114733452047791725544647244199937157177031626198638969107854778013152257304305255957397533501122326239263343618905873808905604237101538993393176295978126321183067547499868379891580575285851904737017845077522836459506416774963485125088179616016456814715102153865702473745521728751322079140257861808327365180990003111295715621329723295121218169321906287819066183635503865567183736553653702584105129081450295009693019190438926775846774089602963104332147126097920208644066822326346011126087598112751118358557666409732147737349385755902755916568365873279673617571595051484841679632618800009060307213901164023068712874548424506814427000420884934571008889809707063766761288183744287308557966046539677975506976857813709467104969119752956463957603771104838748167826942195322695274631490091439006019025108828100889077127571469906561937750087154835436627572268215549569044948578347766186784180817979754872273174245858137411671972956149057763038208520072294034623502389292609880018593031471751080521548471146560693647656606652043098113818570930790286443897936873628446405249199997351279574507953635709890021319685269019071976168187380254012076933699412365436275072998609123907180684047805000197914847112414389296919896327707014146951325194058379680643175188311858020838973922534424061653891575376752055060713960494033915958266231290180747538514876337413081521461984828907183008605233323991563853181853995828472648468026327093407554221585745874939827756853565514156195112685252590007394579520107714060050743977119518323185066662636670515982118726235762393660865567464876142290722233066481500575337384664846456417110074705062002696744928270142457311472571463919045804832886040265459405467512185486746306778809734380663358320561176462170334227562260487663336255208914123277163205627421621922106502763263785033846902341661449066380766366011175911371052092965279979118869594785875500746059463767356271097648005243157373646870654895561944591387303734434175138155776602506910241632777169926759271738057736361951048451298436019231779189664035956939889604485315444005621250930194539313802013368393823517183803038039851759839330856612017047222116066891119282691518738159275329183582572111797545727615566664598714044385462030031296988966710940365362220968826554117794990648266374571697687445710755911086182502465447842012027302319220729432025613159718114772318429118847260693369236884487047185633255139565624569408507668764378048436556599763018113353220594752047159998558474641581604158027461555751101495808501341531893131447720524397934897804732004279649547746909004259472935199732736522374272099172486208016504074930152477441495601104705982061975447478392251942749328303516191514579050658620929990685895021616808436107770782721879293415045764739911123518428777550135908858652982116905472584943713415840703070416987541850543483499771774899862681657807916003581684255172860339190575475867150604767487108431418142028679389307531429467686304018481761121144096513069315953845094898194728062852755053112408583663198205608324149736923839095150583557519430064408257600641885798278628655564020583463133072627264880820611570216799703609572701287460921944632077739858980692406927567609521538531995215075755355208649259237952722726276313771278753903961154429133398067957782377738762782074274514552297192470965944976026861466624412874907386228433555285574003060407809987087753189459930510329613275466465864393782929727067864401394148199217041678416416585809948543141480074619582937360989572276643828983440525972352003750775899733785785971063084148493029304704078065543290392014613661539794509010564813706623306442166843811237387685087355999870867231860255566327417576736328302154524215530618696474279191132640584642597649725468656061949466021274833257457660087409312319911357543977845519196458322395026983764277339475151586536746447521556001390521047832209040604543262888083704089790888354542926786622240527681971995851417821774387349051343531842997302554462042901846755118780134972905344320882392050776355975696816615981699970617658053987594805972930380283257412244535131358192502270866124740601538861024558035195501480114437402095540997217689392656638923021288942386064771887288053326847377747485906943887895205765478571239509339857816059867707691557509835821533768817838237805121465250227057272043495692339306358176009378164969344809698696843173676969121389976143209874564163424641361848345917064711154029308976281841281671433323736561264044543807644975871082324508405526135927746968717053872223259569564565351452065028929770254567356705337288521170442902458049405247726061965845692052306543558473079609301470780344894438549973010220523287928638051176991228485272755943851926988541847856297797224030061338865406480115914644041711341208816684714073753292572566251089130123237016021130542202971325011299684500153902064010620196217100255740550630055121697338868118069770548725634998726079450803434049557508438412884319344231368985695108584496047765431502437122626398487915953995847667689626305399963287502584459096306153439194984878244891506853371520770130638232637082701643441827216207820874546190205415875791516643066953616271523189484602715365679305420381751721882225098954644820110019279788891702344678340957849996170522970778484314924825040702852528783068473466782481772154009238318458378090514642483316808407879119009212933669197157973744796408882077715011907738813625566418814274006349064716471856763181945884534158033035542362651622533618476178379632271573671579449836750986417132193643208839214964617254846875822709477363387649316959496909871421578421200998031568945148929066706443766576979337352065528986303018608197790528089131376721825498916792706745808180989892138357171014289841654519863213716458162203327964655887600085341217420004955289509115284749820896827305083354753270191129761246600441506030340818082875088466727269666728016407490447535587404365421036080677092353128138160977783290924441916546511317718265298038483273059527662187105739140028965846069673648963037420062803769126127287428094619812406974934488865875255185606766381210184519748799422334441151746815771352142435752184422885157485041165183717396882113596982254234038867998735525674040564303906079284428078029953913006610317501404602653983820298605605084117341276508577765750705755755029433690350524021450360601708523696322514561854857371276718820877877004562321480580771407079113414078964358323486210831183031169652360492913299661487851530628915385449128907482578206974975865748955032266819747651279249691167282672666240458725234863973388488251095677340711992513084774065405635909350631647501924211516234880220935815645535468147966263930124502832256581337039345395583983037986307490734140643461232692211702062485345582437722639005066532699983295862434915143045160054670616121269327679551428027216092358576052101568055422784338215492874855531320296731991140059636125503235126946239384873816450270466279815303280266154276779310902713860588005069114464198053418268758311351661050940931051864334396692165439995966984311566845989668691783475717585706180535270306520394099237596324274501167445377250902680933530610389092931525612347872813061912559372793161371943022864197408240956985446413182964867357642847984087877273165769630205674686339630290014755276070400296069415208030316710502492013256614670771246616229323741947994005111865326645730763907738039018158749724080498287618159386257697231857142145537942662843346285606264357616366729690536791887631047753816479475858340920897355420540021816473955084178580287913493071190880616273472536959767088915317634751440301935361781035187002724626599390631407248749638625762216739443293472136997889921207832383523495233269813069164771881211011118894586834818205723796430577732454528739637896902523007208677382106676450688099173587119939027494659406621615234080580905631351109767994255577597128000686542718668043528468551232187534905031488483912146065726110021015761156040201298254385332104477903963044491423681480935808406785590789568476733561115112054267497033454564632605188144931150031035892969543777935868420389602456991688702806843258136264560868569290602988953061331471476492178638823375166754160699540897036019361115619943462167236554863994530032877993843468035994361915714870915243647533893189168183592861782073229898353244449574394841275946036117638098180631746641446559618821082069400568014931420863635800934027163904835133285636226773289182881964777805567899328183004531691116131278670559476606387126502455090541676437064617791440562070797866595792738782923565599869705536988884740988343693439024324380780206207340118976645123130017640497314064349041214174099455056965674684981373858073571198306923044944080287880419056142201572892670991102867949550337647472534588607106026690463923562439445808407200103012987361454794949237045881582005892630499806170263258627553861529945936832734188731239523782355670448295251297463233121172411636704910916113156511291025510285774466895365288809176411128155592179719389383118490152328730686688060083210228908814523755989219612399874481955565319257084192285042887007738209052299713855559168051884063449126369844963071777703928750873672885466927126433158025975408749850936292336808586344168476706864795639225068387772381430306102883549247553479357318805880745213269882781180923698720266668427178662450558685817141897257339097604346305418585316713909839314170275962787299694621408040873703300020287847518535982522323985979945543699840298120417485923705025826592395565982121796031460949703454069274463222306632390686500451111524596918400998475990326790205324360166657713483179904282904991875501094739566449150096364853614143687886945184300377039592461431418232015876953697144181962529678226813217314204202978105976234396872195455573454989930992087365511903342605084504725246699675659624616189990449439178479760704878239308081971824009128411569630471997162511307693080747550002958994884371476153443408142576150621203616741790807115807936824547625532917673960795869440314028776814003822942715296041601152682398677501414080286163991037054643758006205727326946313326865318302683162035722961339831814070470219998460303965266116869464827585040320984390986445105129926462462142934010167360647785686669873232326225882563921290916517879093886500088835965407824398765908362956389247516527265438219584105524873708268106224158817635715315273268223718562716411118625517899209567900903690911681575560183109758882947829487857826726362206376561459284007608853310558680010832600579622728291630014542010378558210212546434808054791903245371650679690222892134257959833504766714807343735112124469686672810505788824977478346490689133193342735943566672700082147066891665235976915340587211738925639852682295060928151518833516487918806036395505006951221510942580847355290015485858380447427045484689225820745593504168954413683177730671737820290107671580613259672960463533552949200085583006675946644367822441151916471839617557287293627442595995520163663808344603182819157565426422293976617159867491248111519626078578247081104480668465614835506004260769092013704386307595053545789186905330342213945591818993304915531382091759968323804830199065581611958177461235872562270272125669542539272975122847600399855659197754878055908621339721562822864604335982815080569204568814575828093491217944339419928054603661000009307223098116470530680674890961816273684047239515592318525966848784049316365624804932085835069949384510423090063763883495314565921668124311760333071928431689369678934875919820985813235578568396322530481201062835825697337794448528978971335851079383363045054407066787439150856845438953141822952906931010584192389458175524527187904324579898959927369790496282858346243433493502213724887849396189827019420822686920659231369645008658365606076898474478927569717895461845949157696094973848057949221841524504674013738264425340028642564556638071760062760207570240957387329263781354162903413546262759095256148853745289703047543082459572536048786936518063961914101288468520791271570270822522956505186258645121441042410340642252755835129374056645285372038580130332931987100590635842898690027039455573835374104797138389151141486490835737833083557994849761538139914140330115115863960071533085693292257099610157331805492721226902000787325336211604200266567206503187487432326301019130938448529674791997958222473537930687109446639334465058846169463957028295618072134237215058268219648695323359747174714634178919002109935512596816178288879821392583543999889189287342708681776737518366374946239696037894871946472320150185760767948276587237208909306649645553625807311862275072674439364079777749162624029602687383698132822965294045975380842341836809313363112798607297193227069810747274098592727949435627523382128132260877482366464705896428753597306574670126846403680032751668895095375395890345593430745269007544172905495049970809303529126661375204828015344702049081124994432902769585745123133140960087701242263552467454289337234412030981895904340359987878519386832356247139717748461870104340723123987179379192760431494346332186791408328373148342835419191826831036393853715579003314204202698862920801650445909380018717871734100574340653637560955496769069506026925526973527997665194294903320278874446925379345322510715753975183319261593914813523784201078227711945482467569729355512942803108220378047556272238321298300826705833034197358859550733799775624438666074663989228288218394807765813709480175468574048375703197990086340340377473095256043636576616743499950867253072381991941936106788777120649550766892737596798669000847837303997206745404133861791065879382745225684985673097728583139415834591697423371413548527546016929792742768648059543125405007075618840361695853409639626709908039711462611896547985747338442873751189513587524765099604121594401090045974614718167406461090558830865383445177949072832570272607719570055075862538108050178296307819015408444301177729137667810568375522036713283374373770984996641852654546940094549232786103432298104365701962511920184578027115068357017227944896258407549669240979313873264426644168918817871318414486669110170543828547326458781441769570272257450584228692634210727581537086401237294817435545137122905491307363552302204680005370865239755993713858088913476099438487202170501943892128727662059440616157884582438142336209183627289997172321771758450247902355756915323492494971592691239012010243759219364692934704235921178555346056567867996289102849684554820776294607074631851917006448039682105398812546216193261859295609508338414051336242974800235490355312699939783742103312588865947638016051050085875986340488321252440157950400237383303989448911720245298261724144937540359916002987983317591495682619018218829693656402843153375200393941392067448181372988344065341686336691072915292859210032777488286942336273383896602348967039383553062992177689122061125327793137003186787700808779696964269982043389650170846357944376278929594511646917073326453374459313731109061896143745542017372115073290911881854989683831420503900359140263407589153194490294604716587739210123277402380901060959316674527175515231353311381415612550422839046236892094316767205304113512736603780020199706435603880078460848417339164775076112301674286362718315224262178932690656231797209069382366385925562389884007081188950714910001785793587869813093044913272384422127502685831161295076492470641818437127003463214112827127842919929162191884471793846762493916944969610961386697746434586957021902640288681975363646888132617520544455185671604046123998684194570682274991154202533804203871088854156512557803817671611389743303005078219233532172449291452875938450985042857256807412674573834708450376945494354446443066074490559002666954367148609392457790552959770104514447242666767387698404680062600131609686054402999977884937951041026459379917059562208756681927321247785429541073699692686266665549397405991824389184664016741463457773098276245883819050148388591605965587226662997768486369280230885279155505591009914423294470579454397064468208618822503185879198868457663180622754723892400306321220663628423023888834321616155145302345253722291205526721191851283776183474482881547043162619314878108605556110071143378249863647329726717610118960922533557546022382792222764469703369213973175964732766258461622669064671150677730214639980379423680268924815601390003420087327845239241164473694208216853202700484453309483092028770551598672605580176019365002723967749653910779584359083342996906624369421162922388661332131339353290362393387694579579228646586202889313646983964440587041517740373966263368227361576183221298072086854383961044701414598654900662454117193447293607678527358153183663347899446034193665343905503923808829108932763410005016847169663132678664604025689498316203591750144256295475292885386546294624503951661699010962020328578364898156749958433005933346621143531523880074115330072772718648217780591211861892408958269124285341229230816365094214151635184357534091662520090733996559965767547254439383386460481657609537796263250217300061635124941876422124046083113095010027889448797365567102725427691878258999522560682898032999106248397466103993889102312309436251006068389782709537094295461286024926896125054217510654076669452381790704672719612489515765992804389971516384142781964516081577512085663179713210868364010129328607501622172873460761040401192613689976952078840448714760720692358699253061845977672554853972364453708890715660268183899331270320593464293788182471094078974735420988179830455147439752617250706548365967868564712301152530854249495929689198885045352044953373967229617882735815032212860967631713239661252997933630188601790804887676759605415294134260282110777270024269356183076414099133135531372357428530886361708606156952635934460697560873230327928778121703787227007690199894887239027215540591233207518356746215226812051151443336541794772035549881901656634413055116106563040893043919684001764460288885141362406455677592350920710080718155204165411189245093470614173741304773935171264242660714824976895112033968541176819739973301692061373572802978447327539226563717843430365580848955070694400794151887293233297038275227089224480076476649439625453078905559601147895744690671013034681473726408590079218928618116536224064161141180201651645609563607044261222577007742369084055115867677399009219301446619268242709460420843772536041498654847336827854618930803856361937148461061973971766400995256002762605074606234831963562516325492045460067455713546721344112574530332326619854593791201514844990574532589851376267249182696169956308374778385938587032413582017782547322629203042933562422366048285738511049330651065584413181171832097845400488375442456430430302318586481531925343882678270678944312697695312931466386263650906849005077035732813811485448450926585197603713063351541449705228539046933231296178108198230478837134762545584889680229797368215510278684141939889554353330827561915172561304813892343912116228882703664740187475085337690094201616930150658494584704877682233909045975637289175604498795532890989301904819410959854432874296603200086806718053035790423073617504467802651533418581484799041538835060725205209388365511223235712787233082640921797300181128149036496612284867384962256514774756346331497424052945070493767697665759756108057589943776826718673057997665117340719188164027209259320241489605768718673534587003060322731884915451888989334276103668308110711176935911234361453948660861720038793719454650072143451866062358210253604224456977248823263396973478546280793992472760420749001742387356204130769888272125737050657731777202925947872158476297472950550254058798985913442395583958986925616704853997670130088137059155929133623885985614088450038511135683152715304045970724193758011025426560189757589584725753923077862637590283587044794724819360938888059016393033441990660326276301532781137354624717923238569437149540316984195642055160870643982417481689191282106666991126539920725045100906267077342107197183762218137981628372178412071203775452415027333228072175320434220388273069310613112099196478781378436060585637079665667512668190725146219201145233791300506245942580547761365962689133050485980411414087156232068517851412627063633357374487154208102225827003978513942067801349278164409930087774417392198117239190535916651055999598412194502649822349279197777422763585237339947185851827884581120892950888980932797732009315898913821720817472168575760037147693924584492760232073033320691963520432272317943850113276599229788781339924779870135713713679298106429804089367357444659964003674134143003808841526484302514218972181875561823226867776043982860537354471513493758738017551079690747557244087369774958079029370883146757538649252127589092431432880231391757423284262489979363974934672093715792999078350909519781814033469353227879117679627710438448068439988568651687893523984135256865843139695964784198553896696223960333502843854319922817788949849800552896774574208171283990291352216686536067332797389769754704905118465443887032677584175633605652195416375290125768488313922703031986857962730043057835508028168345231864799237045470104291071320637364205967143613977314967312195138769490669802153816958604533619484013337142697631351786283161830145392604015824268820540464236843299954191039387483960829765898212445722806639812908639122009499991934511884577084593626665482525812198031557964548056794737641973041568842966833555051570677021017949582324849527100491592947400333663636780962614671656760805021568726885482919115692010703606901880540307218593230041570635103357602449523176545463554990178432851612632754824417559959574494834702709858561276358978876461711200465643055647293617471586627044603753677114179866578807302386805327578818715406284047564891203184128222992591608662666302720497230309286149672167542759142536167130862012415930105255692905460794337379322711211394727523344408402377882162412291382508321066780905764683547710090295529508297117505302723125223606349769093084232173235523367701878238763432964157198832683455691273686876977032064064160326499027699241933862412656376115231250974914922024540068595909530989592099249054081590344563974313431080903017256077461385233703791675488439256891429775757248388096232578293664099026695251306592338344206194445918588838817128159416398464905230723701873866160048518696546695434506888185510973769982259212928968722596087833910880823237341842955453639560540490658738344935320931471062724969158278789115972159790851628914832600690932444062250047201174962262965962406940358550063194112862904840529494541533740065401419372075794766766838772686236501755476112600869089524867225245396779779367981159271049177219088930428629563122519811155204039218125745285409738816995086674724211557669808488324579893799344216366046834071310967877334946599758949031580474266084310835525838785192288357572127034763327419727501779457109305506532482405492974172916780071903945641171644462776863459594106024563745009026077865765073696074686698708211069841642762031729308364067506889815284621901812123376386409807630815470103085924018194677753046350489272923281047078892343122809934379197695805729916539638553124945709609729086308544630758147356755769583403205777679720610945453404738407139892066900522702580035543101037309689645046883814598376430784411494070708072337351939301627165214889873847692365745559520938255182583053878637254665006467832121335842755514513937802427722004604868722888213055627193759884731714169468006331679166471328918570678154619946771894802599604396448424117534157009631729544279142540036614084360518473730967360552732657445432087854102030201807221071417494328596828876525002517819100837815884607802618283567320086464679613973248450383293612520560716459235950043406151839960395146410486850247732986488236894259233479173493070789579598141940549251762365158456614280756964503150299232004433761303098158495223186715019455193732276322204104483678968378300367579228729018551176268710213781099931789830670050524086991427193220150127578874546258923345531370621368456586629231591128837417462227419005185540896546541225653536855854444498789515931956468705597352889818891675388783609706056181592117766879068401758623722242639386957483345497033279871190451102118320834069795223950553755388768929048866991373447620588143306364911951662382308463462490717738704783004554828170201078331774407152296728034482754569635097518349935450261987249410556399281624850874663091357708507215768514798593875416678945710053178773236805827283093234399927086767863513858704282028361915576110200382578969248701451512328204837750808095357188343607751052624840182746468079839769474476770452169649769408657406262258335593208487660012921262267436394237333998944085927675507583712660564326203278094482716432451300433927708015510046716918070469144673579719742553215227246843224345542067423043470470390809359867600182886043766939879183854748073833874894911667617382573047362940388111439469768900704066631078578909749836814751415907086878864936205967369552844335336773620639861672416203919436817137307379016914758156694913565640947388663947201153194219209007582977983116160462598814465726648949675792766078127547807621716050465952654409588679123063742574297056056885924921158561348811038818345603782465713820602353513382683534991919779223945310013605178030692043223230203277848019878875074398021898815769724988604101555639480688192216660467645487801870830293736211607294390195909509064613688932833982030320240067027568644776525475740729900851172762044767157739250891505479889189823728090671334291805060653641962125496457644110766624170484698584434062468273708807727982556292822801280672679441529757831418108416335717266140173125269664392637395304507062333597235444439312191746859945073428100993780695582985484811145615828053242758159019891222274586044093601495733124850828532583759183242409357611411670299262021726030092412528894027340628022267011276183088224603999770988290385653299721603709996882421281557075501288219729502974098200795895305503198964924144092341279856551742128966676166010388538067239519817652860234913481635647726110743273755091213461336124061833214335015225272574492272618600629781943968561344957256595068310194216980273243605351433558940946071340852881041268476020746226045686962764940950548419277823621864501910831309043691819962890177731677743392161528088213008489332873757199026349075701819385702799174151989591540717900189281400950727980983471175244028597031184938600311039180329491363536485679249198068174865705594977053908232891147801569840162723257251977128707430376652530360337523872900410140239846238972640883726867352376163260271989545249694163543010305538195191303459064396413637775094486930954938193792930385373086380224424292857358760751776560034452423912272359230182508175220452162984739225792631618993607556828476233427395511926853566636358261381890928743425788742612416999773567430104770199118283989576380611062957737166846728629336065669618586913270414791872220314319594893633427464271683613469920627869482200194270994008651074423746041576074755054866868492555711373965376167596971017898572953218570743852756507201224043165810847423814437896090570586279513200799356019920846946926795067690085774745815705192617008033908551177047950746709245824159421668147030483464085678121891658778045118762765722558279055331721843331078070114825127475177376990837990657883209155901537658865015719644095853642296228823534942694625530863592291734185724402964465591207517617043635756645163606438804387680101641758960899124770511623585882705244288766263319170344927622061063138430306595544883235707861577330114340301417812909287978482687738707091571074199250778986190961660780136871082305017902277265022271304769381521053820371692149232478137229821181343174196539743351868437681654426673910337097739148909651525241558831689285446810224890956605559739091755238521242341461989946144393936087022279629241786230508431173532463848792172752814083201964487794251822536108685021540447609131699232997211310935879548755949123682414135480262968109901550883938408159349448637882865096023154355719414514993776126008522229019469903638254191023433399931524539318556154777825847430678614285588597609869382127703669624849418163264786405008025216051871793409436712260525009429670124226175492840880745672039390669177108755852002353323996584459583471071160335588137486764623006941968649964334423858735923987611963264881223497058287924053227858230551975690534724901354662888880284987347957288926455674747345005050146793236800387283326882714352099317217744282337089702585335743152990289023385823758052840360248729907291102201468943728140716809818712855646727514074347490428547257289937184046221449700190369954671786056574695768673721151616516968547225045920073746146780974529531364980386230986603675836566528561033270334753959457132460420382858381974725910838352660141497298465630054779900376200287817887830114613430470704415009198469604070037475451259845524195490199824240121338560401141665091685248111360221494104677355532767616681162018913196198494436332412230724906587583031812425555416928133042798754440909139920034679621840588733481303319363567809128603201015480424894252988323638310303653229494896385050476175535019424433994797060210544124652148419533354457437671176899722337412822261628525415466650958142727302954220620497985988961573862938970613814848399104476610518385635410320555836707801276648164158072530913928003906720365893695758183926677393420960733076965163145555160763002443620734867967894518895414265196548958863591437586028664790832407153510794603731041554686200891566588523417598383755419043873327741540036788260356140813252864607295599940979924998855886940250865829427369437938390312592963091378282116245895044652786234095718164429905146084141817687437279530945864444032920482789900472236395250579141853302480323593925675480565666050507782280603520441624404934920809511019088249196036253774031020124178410870523988707582040230654250180245527857160216196636884735048829844809247545104316501279618347222710696163538510571934008867066066387344984245421630524553853299426946072342696770990299657882715844549663366740911151275729941792583607497454074517486738893584491281335605050170432969593075955116368589145286470119005065637344226369967290764290529999329221026509847972024219093996688257955003420986168425875699778914588773804132437910252480078981506374093050703762943460538104642864910445000315011807619187522683610691333292937923311036154158762996789456395864266086400823182452158444386229433130827384156072549606520190352884543477956706104234226509529587270544754084452032315975255232549607771100739322385405201535372569402120219745427718888881716266358169580798597406208408082779398254845925224663950956147289905332542572016392798465888582223537626766140468927883143392682062348537225635088501822466735917494808707589300136753510675405991496104087020147500596277000211714254002175045299344847072878191815487314888634489320370160345989890168483288667120022733099309067574232521508346811072098784108510214313765465076257901961324626458372201602647151965725345110309421472718003390967735152215515894669803705777600005712547272709398022273829677055444601898414964177075218854651633329396325165652729020334606872419984481907524587695759537124216188787138246692797245365158540476946911516670394546157689394141300652814255024206048127325616282174084153052922952648010060312314892615538010256964318891162373637485789842619159805788855453247477417746215409652729265634715021688159981562066775933682305498277959558924832129543473046179803828574124501079231603325784029099343084613170968392020010643841037817002348552636769202536565178775622699734104636740590478140730062406084887529842670692775895158951739278286114413904174213743856893764962457780733655794424173067945608372613201154320355571913662231553078091947711770889157833220602298472769594814808468537030448664611213566912502507849842162097678783547076935082870622158638937312655782684738040130023176159091932862720775439798867980367453733917247602702450594503635384592350267230227108445255030259567149619212491889479614652918433486437313114539902498174435661542124786578177278957392302162402796737458844997383236484443359315795256042205379088876937894841287698264129326477237423002862849017184701853742114492142623401099701453305700728435987203795297047090331351232049166575648930058433870282729523246584061122289169526551371210923931243794366648438401958718553278812941111869632105024267497558940056014107617817350691867921007095249598386315359176008923088704267317135352034331526856176599393832273722545328684147935563638100005061677229990528077385031471378746741977204626590547406386690651812331402642016184394707851410245197836393140253140411573168767396831812460021458518503531835431742058659952007670944761869067055804076752379510644150203572790142189657768009811494768394388997423917100326946344881628801594970247659124724659657694982177144280515508158538841247810041016554060042842038591598271921042637267093727538142455961043110289274597334844201744241415687482084913535239788649926506853112309570312910227660988514050853408945314392164050666639398461706228819943695059402760986657410436338192550896514732024743079389783650735980940040830194341833119838249127558091649189428703012173748641683942555403238173847568296503693778284910368197053899806554796591013322949314461278363431393775540058763440286048362607706822294039536945957116178250409368105724633728814553752872367833202744771296424634799146496484139854044517495739235778534771943215850354856568402807477792761647095798726478361044871187674384973222683854959211810326286247932530752273144986229496653346308261858680713865542572185619422744706552713566174261709041226017747807059836631889198725398109423301697983542564839100057211061720620769268351517089478992390246404825499566155040419524163802485045930248236981005020145040618771225516912643816408262884460686025635328299280908259045757632882871682603393681321218252404485961032885569974149455251995539210033494821671665714727511308489393876249924607870081160547661067162003546747039801282141155378454568210498236952179072424543114317572852995733595154167669977362453342808101402632121907702620148866236453816384141875572097439073903426808697364582484997141537732361194734272195282576851313045666967340708149201298116689324208592385471170678042807798803237903486843369919636933462719515324953416231680561959450066233065907706532674015156576159860316158549399915665972781133603553707389062564643426788606713133706291559570556316473135467475011080189020078260266322947312810214503851186161428727164940070783052672274972190568900076271725014594983300215139693196206925701666692047789497249394619064856753765813128269530367243359418241167894289103772290312862748042480803682806709621587389826624475437509172967726245257342294893784099275728674818421197505468686154299706124189650482059614772780296386875454492091755449143789845422777757805999385554445272802144236630119304745076550596254290298216861963053480585944050388125480892653985847190292816106357839617070975320942722618834962637597691576966136468697326375258405163412440237518174009056569472139085638926137657073963355786806266646405449919376955376469349307657449525530809449327548330150999549777480737641467340321187672801291814802990479381381319303386684216504858940396606966927420352094733135997009215451516499583614192094270759019561457953144248512193432227932605723725557371458164959496173266271735035125742934904000366146758359655422765765020378961747822210783431789158020361038561116998838683254655066953658473438521655583094812196921292308655342563056677382483806043536897475630645358583737542900636439689703512253784470529441798170613186311093348274383189308834791573454445807454237974345580724779087536567937193774166301581139032239763124300671104438671184919410059849941000295074225460791681923946250132859559717092503981517096913950026230581672970674530356388660209418551941982944708918705632891202893337844722187323786688007650478820737233156578912467250527682250980612449221821068195902722258075469067270853673184066824099593611846856818997607812931605863261388791526728290778561899512209853687919127249527857209882433400954915118270052004795016273326024813736167328911267231525165406014707703400362125830164807353076295328168940875117642606907797975696952914219173246273385693074635507856025627914053155709149349249433818936999384600097772983104596227212962329747501800781738657819632887250181348843847462808812493177951572362339967272653774907517080953416191755255644023068081759717330372726936189633687884517962407052307475409151636237514053498862031547938060581495112796585542216162537719881547523746796896026193640509891688901352610445158492579068993837363025420219866525915382159197220032540652111698821601604983686267162271946227124929036716400638313974606695434713423156863168745020983731146763334959923019802021398205742408516140418618640237229628097422595269699909910619277462945747789772536744642348827212777999787093686780233598676892488739892639623224285406235550423095944904925054886634428326369776195550185416584680218251180470720954392814880014541345341761507302412074910558435661491407842238974984080654139895567723008574920076005848186001596316908594564718086191272670107232538605356204037431862320793850282035683727579702158432053898123195515149942625263397396899829614632819805476308832331485105789241799998882010989780789474717737962590400251831766472049287162269354361884931213833697141483946006109547147722574650709821258950973483712134393964773035015244623437261378147618828372095358443693390969350651044476310441748049779831935873116868890587570461302569983177602672918802531363032232305364224645331570090949036353674676167614537137299862985818644922618635408977408641751016140960755333760687064019080638103898883737525292656792633788987305876088218177140558485882848215769662320394204989655796604386353769878339795649504985827467717138506621220908013753408361322516355523457132897179506943323484740744900554720192565025197252587633840410013870014693921103640858932272728227504498484005616659772847079061570177209052288938793927716281725036820586032731624260491631375710771375503485939713217333307358030205950881932776788349224707685811453883689841868811603834470177908151323246648769704730878105498707596144776286758308736474760961271937828640395087287212156515884834826076237787731133068930969921249288507777110652547011368815429394959841590657905555383598555098703228494811840256160804221102383179829047659680613506458354921121797279349449449527699406916426702139988167504257713679108405224007704015342629700026726921803348468081439842332237415082670504686574206478386037589990461872506991304159178278935459815941348107827553579756658849617199879264103870775113256859026230456664256083090211089843148726199305902715204245038158744187374159489765710365336517886157448818221815207488624985128277666214291436712113181124065216807763917825049083962724794997436921650823859440145895522157716300731147471201973611595080638416855234240008411612875425619100300832626482505196671761713387640935675951665793094381055633419134312117696223411350504073940722869983335811620986150681515989874014728293788417903275107271498411626435173055638325186877771388243971421606590701434171760051544394432685719511576133936966454457778705983048647211524577005679368333037472402884218091044703404583380356629315203190703943146108650281564640193412293002711395352958109416547483334702894298671958170307024591304099921857963001788353578560817982978807579466137613625948517838672471057359872147879661143612051327569439076538136743875638163838909014467263500933777675842680833859431935436032908323160594684924400753886566076508094679080580179446481193704255308561607661953730104463266802105083918698037396859351084591059108415146515058237477454504685054244098201473276823471454466165675501746588999553454634288297729258196469534548357600002786776044528488976683849278689064656139792024123745298491025108225487220481981468546877865134753666707660910569278904826177568535136116191359761257184293765169494246557136083506431678219221343397487631274928432932637690513360728367295899706790909112866760645053004808426486204604602595252207319127633327401647441019040905762601156812771596278344230339989476742028670261432486804755683334852359298114078713165516074355663512098386345407178063245037617088056406087760905330046468479129966309887080764198299270013347383181350759876275822865257668534868212539915253292682060452060713308248229971366608306186516996269726125329888990379283767972264773117086560618816373411239603816793655462939046566502963568456669698510598321489911168498405066155550428560166916141581534018036880062574826138641732274222826773364120104819496340720528509700715205255563456261342180705849264653333281526470021562174416589132897012967647939463818283174207791401178102036243596802679420020226232459590386312106664846039694488328984646180558264466299090519631446762571541130977040454539589907335916874172661569121224437659541696451580051471069084057620792385211364356252464739755750547004304329861352724111426382781559962934835580950576180746329247897016279752663462953271940422672918160099386313229561580935314269433880814675790596088544237222772155544594312584806813599310147977746358976411682564529347835362410536338279298182608136716546711316881966250104031362847282979973190989581167802906377609301915893586425749513001403116129523484190175278482254255421883672858116303565575418011004157029466098978811993396842590626666850101711825398677766215444754828973927309166382025022717632810442702139142965442635462456723854006750824111738403967288404039925961467688143232777596467248617083716633594835701961192564313974936872398472668861063911292755430207179286389624717942622297482937111673599161532439018018341932647470093851570974706504338281765225305526887803441149304523710053646800681700224863158811250306527237095992778952114788367905336951505475730876969557242208093169634292267602124257335915727263029114464667743472403369153297413112254792251146079447747966852099933990083131319057154080956356934160543375049153650297087123769398226357428856037971007730653083158378366868070839410061350837578688858269550618795160326356668647376712840859449271099528535891838922917044082256413170907051908288687976496613084407328936228933479063811757571157045078621018166238061022926633450128422052099656075604482609172591813080812721366678599977223064058316902066695748625022594825387295041263668739297757039244115899246108353815254320640526764412701877999329536965707173106900897216082619870015720505755058196817855872324798081650497896360431659755685988447951638027682354910818690460567852150998091899974831545664478982104581708088658632810444009609943349938567507546594638881050919048041705099806781129048316831792106351936487950000041581424325678708999401857599131170648303715557644826870741484864296152967659833426467366068600533584498472323188371596397666417537163824413858331199578923752902988720746772577654207488585916793132108478268505892872914749608416266804258591975950677305415140647501066743582398989273841265718185583658866175284543488431672006858347157058983587495438985288559222641708834800046303609798324054452033320083429263174062790242897551945409589142799004863660274565754170414910792140700392669332498757005401868249601342959083213606363360024607078030317819756579660707990843156897924939074920572783402235378685078913714081967198051241626251035025242315575114274580924924447764057022895652462031019508069266484507189994658800526215122444985902782988921855763382926842180696243894389652322636869721257890002408161159627937330071473341699403274201010212803425047567717780588052218650116608320765758388138182424411896450730745436173973846733403680036349427718611185647845270214501239251300829770593895567852230824230868198791111560321889185158114943950632844821278885725195197464723731464801066309301242304669497572598233712338675153874387342309307235727763591776943074967278459013891419301810515204166035637309850759975970411671235054164909958634930790659996835394118369189804808273900916080987454133844232431246538377514541514864077316848553652864609788663606374120972238368497382607527928588261997539407754870117060070925096436639988210532948590683517715720368227011643906463035501838426044927136859396982842035049233002900949967692142613674451864917057187723640889788226582827159993558210138225341905011216630128326965433065952040112185916565534504824558760814916446448378438817755452030014342266648411078169662035503855000555606848869496715390741368750381233174819554164303627112922246939870369914791183041655946407044276902911846953358914490088121863779480438504039510786010907379697425012203063586150308277935921437841074841974365518618423652678662053314022060498692131381493199846480137853293112114137073658631139552359839417505942102851868900324741209020038997827922611260122775269523445610276258674280021034304091320019501644779110167081959711176882079979785192313643617218622696597233577165871749573489588376555692524260897318640722281504070390674414098466208012744499290187760605289377294188511407944547361268323741237222224546619453044416984813949015364379449132379085092637746383308193528150559755212893357991594789586600479894568144918781422983207836613473721928512393362725724191671807323047634261598018602461336239764889675937916443641905713324488528560922742585236065323360480380262091440565611922419393789414523518193815296973819979867952526114286312304178800027049336851071119592198200101854809747164570570549028791698731677843040815654616421758486829930034347529303581768497761772748713502427120152160285983038740414239924702536402705234851009294159356837680453155298043762054457980912838037968620270490315038031406789196054386615076581934897356907197341520370324316611107091607677328582712615439244651945251240268574580328913615391462164491924491187172816994919933356746866879078697093630578093503703285288861501060447363248992019867909738385158275560141180199838649856435806780970179723327715104599564262278962451854038547976150952019651947483005233990234904008371959442549565287950402920936206693371682818099719764491906699302788176836265832556254423656854516072055390681278023531197260027635714465023178241590475952330385174419709231527868567381950539648892310300100452469300134991490659222775293566278443599316534700719653681619279553235944578162283287889263723896010789869254249889920758122011547578078652882542976265319068823718202221626733127594846065733568733983712490513903573421396343931932445237158196245252834114827943916036025037024029209875062438055980482620083694896854095208570186060092223747156898472687966023862262965285958824611068035718185380358248183360139974158057113713493404270456427559374881829374261118256706975456908838893239308074200235612288381402091928331305726546831968145348317087576436081300054450135832106170005266861961286398388860671860886196881310482163483286033413509509113408083413945464935498412950834030375173615637228580112278571946000464868974079304117228279801170171730934915834731205360546233407177482992371455778549613489021667943235012055917429501773937347914958530227575578965108291836130154904464451979025549682624617331036572431393977133477600893211142035644512557073960127474065746551840164898334625778286635318324573362133896065339670223762295335228323143444310759872954248692276630821627846892810951906878115547778186960064742893397590330088559668174726356115516750223174901898459393267448229699057989031617232270172575892285184428545619235743962203620917592480947853925687550103090951320454899203814546894947820505290183187636875731671917045870727305123474145100851577620651206083481455542937893389642363325303789181346538557814173604384872153853316365161048153991394319154568397099029879071433472228259637535157884099612532207240854321040292418281867332567250400495450558363823258000592200613781319009815921518953336488556240126649038402503334716500724866722902771526064240327594279981214539420390348346972386565238737641615965360943800368241560070424588691720137963762802427083822722998448831219169686744150449754840951839953857022166129068346779453057281175433313420354903344015727025657214356566025559633882082504323163845795304052791745484454219910710510563326656566646452530783482691618302007267514499425617291676027175542999092697026677086093385560805673419585301985793085652402360790837967121200901678174876427034495844533471763890200331939943171623165538455210416189727049807820189547431735266035254122205316848164474996139734374132152541132525898697529967768418721175378997857476259673606344791552312750668900275061401727772114589678459146565053268126880501766308437772160704178370555580624772136542244692214326675549128129594921163734335187207116454544832256002227254465595271459537816962535299768491772312180424428757177504432572074518076860086041827978443781880542189277806783100455134979981172264055506142371661990417217704816816233459997056420580632257522560037355349262818684521158290798765438864938830476582594308151770198225926839499786532906937041049551035460215864360477921916359175276648736682948106572865854404423031316948967015435947192646964719124911511760810885579242139799599826236028328818679825510913134998115244817792343163179356281434269847358323416662376627169024746381989102846170061138845714538012025051674163286787505098344219625045390144250145397511504401786231248421699744898001767564579141852120322795450591500581104477100542236843525731093301843945921550076211775127336403897743541599889919015927149169861517562275605989373362455551711692193366327648311626158821508992426795308552636265534628119872981555802058677126180723682611986461303024776930012074798414074736678584394000962305193127224623263565803086262723256690723858654358035680336369585670267718752782382211304887376641278537194505092880095611419811538414621754932527039134221056798587048782585658890990111721469990786398704136638623695805257354597213182514882359993220797191984075719240646106972536586386544682945306834624053609697018072651229164782421450879631415206026974416135419242881751288046255433565988568987462110250817482544877307818877355842769864417105112255188816519384000446357580663323462599694461845220116991771152883982312163851058753093703349461741688379946336329606819866191963959954735570606543827849777304101175274325062960170442840429848039764390828218023093573311753133338896582667812632711095180834804848075104591688977776911912526708536054090348300123622281639368800781026164223295485785241610516649208990209904419802928842935664586381091915464653878861577334729791228419625319452082769793639112372420854622925890887811138145087907371021603368573896385427742102070137291636699375099551763131275762591395521407643203881634220234220238060165857164874269424503553836377896781633432161622437786941227573615742424194502502847343926580232038436391694251545053004476493694380873735845218160942432679191464424554597247515082144309588169960077764107064434490866854819165443089716259604217072174601442934680917016626706871372499895239950175228430761436656059442393823750335062765118700341063387576309799857902663536408952888126367150712457804078545252020973331420922208385967338174072865053684061666239369464914969750509967297895191066280554840324675904800185235983739070293638558041549939376545154693873970238153351644374692448396401422493856945439515469408093812858199629737203900925787932084230516476618888593093578513097561539746627959171378858024218769002587283108055804440354470761381627251277173096823309866424675398736525227978194277501470533199064727862869012975376107421683085619849278408101986769628166656774276722083269709400355589444240562175317620161130499444905435510147845472223181192871125918905627351390453367805244231526919838154948102959659925850743406697789314928515274989425567082080513634430201496343431160336395031142717452691256621974081815261488796505646127478244279681660084327195687609043689647785160917107831160245221179185262898444545390627373666651488781500381117110452367927196136534435016339890882554296319783537937212059261895050814628376228081623313354733225807876692094546915795388534522258332359980857172605029227490435580158278701906716340021897003075106392644990127505658094842053302941741759679509427277255066905947543256411473875619862121413341947891092668915198888203091877555425984219359554472332607406959155114051908893045597016127375779652948237944259654876419261168181326882081985450633301606441719100639971262176442405815679842016726952183702094274594391039149161725385213399126032285705781761354228824555897451354323677610778828241368949451675818532269458027518924016615444369969946861022872864129655202163366174403385294734427049448870703345155166472265232337079950265203026047526014624374298983933672349989337104685906488744854968631574396331641413353692423798225330579359414304998688363244528693016136005440238899697461109603100264890400328997937360000608916956969522593233339356128532628751245824837098519386879925411242051515209951472252878470273949874699483634447577389305701077390005157278261568480124241140064478868850707303763066663566603991428290670557081465671956377156281670421096449317279415345068444970428660232661917445006110710993632678494419885916604735049556700856168023777860843645364916355223378989466096624539577333046356101563675959374940835415539058206958366385952795835904444715749118202248558008676544262116745903339154919223138480810511573289014372015940111913286335983313806075839244039368522014019778639073262857595177364814340658355099790266964241568136780087830523106617492561177016563338956678380572246370547102060226548430005799137142594666187338605068930700779308393913066356199225594854383074084908063353844443448051467298390608335960618091618814996577615531142547061970488049008424193288161981247988071263183908085975357425325527674914329922286907792502790420902722053411075969908042210592594531576664506748113584040831881472731444905542333508684984756818040328727763714727792977498611207324674991292276791434742359473770168009470090891990504988942828402216606828017310820437833222785300804686354214707670723527943448919544445156239612337523571052960647971982378138331780561840294049390645702832228434504404643518887880207716617063516650894980469064251940250411752216763073190980833181336922427281750244236366192015426146239560266986816369455438862011826236525620041451361228867869684153417665438421783381352319782067797565415497019518709548139902535247273935993556140359756787650487284710711121252229548855024340326943263618277030884733058939339392646433808988830743111497345908588992596813654690860258378612473236402748976410204984157067957813536860299539127042166221422512270957846708296996978998546632067115662682137771774114696240100929003146714119430863568403939699717980524498369447599556030573773111150063890057577982758560964505295054681839353867157458496436646970583022967655594057056418324064903401670878306519471358082889947885424254615322221926963357060853688329439813253897124427027694075892263270029163853300300615185288650863946477387311650701620455538901767158561758178630547339445763394169319167369952030456857722877881021106754239355433061155231345005266035933148887989875854193623523739959353195675428213367453161765960155112867516659508715706035107901738740077537104795448825840644667709623512496255428961480855453872118989016600233047195824450973708310762874899276976673534264754661542861320856635564312565261219137169125200233614017738546341871762334843466681677779837239516358331009888713341392914886004918277876348023635867801640729392762367011174843239549114923833882083251204821600529591165051957534061123571681558193810260226974803881074392088481193841744985382616873369708067684754723802196682141919401512818010259922468357808466909718957161721990473413065133329822151862996661047899073455966518267257649531291190102451594905959086687744254897090131310394747362152757141260635815473726093644616845556476711193387872116114148492989587157855457572672130728863905860851688963404573501800595083345335386484805045040318532441706311045516476209893187693654636004577819009468388179081465508445787015662566473151890318145380894076141592146617521533790179586473440355402003414979444179672715838441206013130623871085877695373821505138719294994095237215154279907665154571302117660995395855916516286669052209448795079556487966094971192414070606919078219909954506537561269084119067170817261528074177711161374379228754020850832741774112566225102859914568328875510695999774657587467476418341028880956772580368316177605727994647972119970137597870096276898058905981673131011713295848377498968032617980604266981577224733324638622943328390436073569028315727540019145223755652248324751913882237153813196964323785110127424057659042367563548273166909637155221743357319574241830213489438406898057633409883692175439343648921942871484629796364939514425537756797677100626780408420778431230787713321939526974653002226138122018558803718914791344129823277915529922156963923408740833785621515675080298507544884360371733959808004881410588082677697240156562606539631599418497806849382531892998211850029840516157740465129108070421998197628704516414537398209585780199763407776973597097102763670169500200098259130011117616978020894380342739766319501833695592723536414755362721700203158725848026587257146064070748029097334030515722574203106407583054544160155353011210029471213587930817436183965045215972706262247242301066594772270138940367963937379775081318592687103882085921687485926635773516830432881421151399030114465107271164211551788992175427251013979739436605315950379166116438282122360778130845161378904331804082933882648049529279718268672483179737259231504701248218026287858913383917409615744445287697041588743909924739911549087257555306858847776540160158101324744497675758600206692377893800558895515837986433331811713606065439514410285850840085735522227080100646076959424207099533983162519524900658121111939930634991540279662879762566581122633947186101955679273398144256043379844674052837082214410842856118181183172508689367491200622090451066649409487062185225470744914012721545626828151565373666060454163726337551440237162112081115688345549227865304169653850490826230951162921807420647611309799614877765840340956770918647386673847319606087794704263909060455220242933293024374704593617289979024962434877088176237655344394134776445040107999399600510455908738484774417019674478458695674710528383211218585849078880585360512952091472867331896200117935399276346490190793290394485876364243835012342639479516493796230279452129389788636323966911229030566941084460713255209514898104941922596893383918916395146256690033783093193254606768210959098378739577884738106044005610785298663749156194190909675501212277570419912371489962511616802375927087680131386854002408494266241247627605171043403187356466827247154111243525233872845507245301680032252950515972050368710347886481487267332878998639641745926521217041011654460024262726047372693871944563320508946522506278646489521213542587351141853726061085129564836748670202057690028558785566128498146839781913611486622090852668263536924722416606160461906154737772459808550504535726582944887189318540223811094135567323337641048575450172863865809285542300771125104019584365480102263468303534236749002435631599686479439148473501437832186453015337720187583005341107534501596630812148985653651360933534869201463650826298304810280498483660952633364682519939886565175475261056347830980043151281269876392101888834341876689329511566660546920904294459025352733433129121618360935161453175968849568274658368785256890101721063106420190447000056466791110896849950722499790621284976000984256130612092727634695115980482300586258705330102002436161946470850671603691326484282637368167815221167698198873551448937470754626315022423114496515839142958600185920725673163870615635094884497430474904761412790910048113967443201576671955031514244898071425922161548235269592652701028376682037872312307477582582390321900114059930940278148361142784936835534944120701122625139596154308638650111804669687230395505509596337638690299150849978475098919704843859747440875597258907205030158690974776442777452728434329071467191116192597115064869709112999471820500320924309246192913744001194244177644226117825897506780370234140028481962974211635843132416329335983741321716872520687281347590687012175627117144756189934251706867161089170017852551243977144378163439689669150006893933770746075650285748312160677645943215070589094702110038578782430613987068616454157652178128596694551153211677820259415748355292428951202207278563074922359648802134481313699548953277437845520495631662842120203698797157677521568300031168722153710986459985945373459079371238324353023407131509446743192339680686884437685124621325444370627068679112342773132371961159070939770090991137295806893233450175984174957147345869144197972985141417233840761164603606187385584242295388153363018092628428103198794927630367320984238232542353547225885862445994375228513534505952065996327421124597538339027535912378907067515975438712612097719857917382281834414376155413305979844723054948068259553145872783666874756065580468878390450826168756993013099499026491197543158803423494216118655749297130361399845195228049243307424554091477026887491117253131204932830312752834455399139335742460300517393424565413123951509037769089657806808367360621226513957035934149980242449108156080569129394650005256995417221278176846813865348565233299271558032327061661427249278497302044198606088743362721148041981877305502478700224715898422646523622914159407307100026729150716381544505674102229656523524276823390684388971527262123071185610864870990128897144900912625496089991551011107245917454699826905750947454526874003635815606241481946872264530785287294895729417987398945503241098697007373270270842734450499341691461686950940352803970445546132348586866887900331733415815201842590841850271236048833326391886826266936619036197292128197510050461821196322574013777817718710659790465794242010185192940701375085847906629974180759056055737667893913610374698370424086800062609474794183280782661631215784459207245684299225442886519872317945341093518600009745247143757829161625524074910856776693940655295370742607762684339108330686876198604418408798332557008770195356481296750375390386054936845035314946060270050876290985753684082572621639362576603759235057162600898637378893829466696684459715314751352058171751923115542926345027299422885210210150185299518967435617413726897119575020132155498770706128697878937730042988374740121482422683684869852015364317497267030328024642921945089468060693256722336338025448221850927508489459786122079981250222227313260254851968801081764027828869928296527653898020762953851443090967765848037989077663412366792147014084439229361661255403446529905869556859876127696447923689779371042150497664931505466409245624407535717096301687064652082751528110626873527942652536978598233309820031548410456404585187790757776587457006129281047116025043019079852802022180501452733873938845929844044849851596230652554059491237752223698218504373101868572223056379565582566439381296986890669022980187378374916758153861830903970335621828523113884997824750169300601061065363406269626811684759339446307688041198502877887424077267796600234726977961765704551166315398929612996662923852240413204364275342362498456737312974021377519979888987645540918070761185286214559529298619268413642197577969088640812517220506820299373917885425615050287280840986554375629895899844682326717085920395290236086256617024114103000254795787809901645876538305140167881163910001929394613936372847309983547839190694379338865871996251252950778564867560701378795011635682124687123134248297222531464055163341183278244340935223118373707351494420966727029112488062271384658361143830886402421355584377902084776588841851682174954682751143607594210130316712867417667098962884806547504360645149167614196668885928942629148845896218738981650456874399259953904784870652900470336575333436859568517148438078883974625806568481699234491342494859035079883291089971806528590762346633651770986453307606832539004670239496224330002986208688543968504675952436489474433115146136554914345446719357797709317412921438643572674170390097906162810367019173541472127662385070770214158824511005820377033617907521182921598689588823821688664241827935148843737905179474221790500799957378866114522279196879737894838302330339939023135029840334977648799196062798835764102854033370636575151171936064820609912500911560912818000846801520807638526993884320827644454131261036091609657018724728198707624981266403497955205042720132419243078791095827026909172139868684276671424596490237830907838970127451562107692288720214321478884787939862851048820316488396622559583039929627504279676899955548617002728234910186070016381114494457965441616200032177409656461912169292014708130774678035988248143020449617911295840064195055173932421069976804296604444822662045268295407544897701297233708496658973138660505138856207888673463208999998013996083618258077836539593276010816446285178081219626604337104875678128756712891513864305435057975483689508718496055703159401737702495489868068573121222956261621692105411103002748776240752122915002916300564095857509227954474823817488473979309744625417281092925235689062618442810332079776254460353617756155994612903387636280639058096294405124099039141322764550536293131104492383266850713260698343161742078742992693823004203101610077071396100423594186861923160593778863106256351424122723748607497787437194625365544470871511235551203169808131064688171106398889696092513329382291554904909463307475202160831893691111365673919745313597035473214815695376374309714465150046378355031670301254045473560395311523565354410659707527654741746559669116496500213458291248238489699237695160829282743889499683820278518933288183834886536178774048854633779786241557001214569965544979492136748576445053119949850510931148260612944113669804392069986093028516002438171394401304541351108972785038059549908944579821417070652016545724834841903645743355027522654394449265914847196274739265566380364680915372904296012125071835373641755901505128895495294162687599864228071002241312245843498417678148897924899012109329802117202869092486787355200543980242411614553289181404172786568215758127000256791611860159628453285337072688054908837563896094577185531992147412426306715303698404117492819936112793612292182127983934831863573854754478960755166159213155573967711720234589968214107173340051955408956194018988578267778183463878879884810302176941440590864129171596280338383700198313985562488859043759248076148181953338981637998000206010739243624614653742527272912293948647607508042066599918119229094625701879490415300707969151758468708750312596869192929453265327973233586169018397013793348178828161133116501082159256382454287432146362938511811444858867190610686209888805008043179479999224265307046419939208701475328493308728772003064157749885266745933177927280870667584197264430653114483699967248449605486365925709609709918180012480056612478072405440366721755742312699212569139490177805334666433611297671347026840673256009174296098814329065883495765091197246719725988069280271772384931466856328998684588033921919036800951089290395062099341197440319132662952955599914375174970933134134145468677681307504038584254389720260621103894510420409311346599275133371220342875761833432832527433181262458809964731475634776223200291158809401639947563588842840212133162428359806499801467129848104189725780620964671346579022139435500400197948155181744673175630766015388383675279724451883104540051843062070369572768133697870714438273162100484797002767513370481965913834544015816842878057769850481689840705093307212186934979675860089063035888585828481283563857377494505371088487275070449309486960621129327152144167946638860275648732738363909934820976713527721356776426062479748170035280501385619580895206512281223468245261312758664120142168915096965855363508146377719113994142808282101689645602432943797497496855177939503574664678009522278973567699232842842408891492033441113377573106690420912691365681155159099895055890587560117348908950974420827762652181661027626192086200375720167763542324549057871124997904472143180706379511067790867742689932549492564522338767270195707040780223612161600819687456311754204660631445791963201417451844898395644621996274694952584924338640372379896350434422892346787588894250817939390444596819794732370934431687527000311949012733960316551397316360593105194189530858559112966084133571599036830213318116431769403046062888312220405089038906923142939130662486226824198016655387260397255633723937758961766341275163611523074038176110997711885672320908124688791515005380843414166800437375028718874716135802316036814819917627782996489988102506781234517728204267062841001885978448918273600217167271674332134305407672774173335362995009069290362752849865535394491632537782101001530617672294174772931246998524863957984716344571329361191592575013797386804854048231787537494346742035948357039271423719366558988728871070825460793691170936259118031352655995143932735033590388667822493578203565796945958777668224403897789087122419823689385069022169584014226215866312238982357545208774450422417647918068044513630526284834614185300883436956975264682761520072234993297428437928394667544397158838204456798803996766594829276868725375538095038487873823195501802750227662397470930929673064831574606094093806945921952426238031113632172953829855079674911850655069381617984407868550350990540670887311250689382493782612157729684708607476404775955719713916466903613705838593929986455738512612524709215934286884075510663494770979537773502459930091525646878204635082502662418418596579953187949899883820752023934096373292412868630576514300866652103503589148115058524705098720678884786368859194030353024598776033096109548391929288095125003527879190069504223742681532196135454671893232285107519139390765756822851985691253096392492902049871965168975605160396466824202990583491774367586687662250988514376511133599141285695638570446314428175293361805183246822802777998432531304205650376795003009096883769420976532311729420060380154460851355243786775015438486269458304692743018025652348233528285036533522138626615991730114637197902577782736344251577377820557937932543316521492285165780068257003114233765024517498626930718646122754546315793896119561633758064900119539320008560144478692228702881712051726073145101019415233097568073679068554145612502796755326690167026024143707977663300632991527720664465537999293195913847730985258380013183205897069266771090497744981877676795449663463566111468957168061799582409871088094819120274038545869463954047096237233371701491155998899038173184733199807095083379674512399427303594308750165356962548539253395462908777661462092750979330920637257222413348192568152857924796332607641892593157685067759365883152530536880483805830961532217459177417086408377441744892417744864245578304943554347884704333477197305723557458223437901981498001967387232521069317467538176704678772304535691240529798805374997091923156023648780330567510588280633839376074512912769494800500244792248234816150334662209364434633670101009108139633714555734771680432115914765559795143606205856970683055603304803723503527546464903186678297712194686206271448435702703410616995892245744485077617763143763966524109790355809790164531072929393511137174116091166385342050452633386104290595502491862498891804204429472077092717186249318439521967069286931905359175482532249936379791609883109552535476008995858756215281994077433420066224223730058730671581982557734682184214643971101343494585886011551209840522680193744893217529316580266111578532645615324647776938427168914663208027223912091925768040223952378376274484435016839238933189598533779619003245754440929690114498259481305967195313382992061792667512020941137045890601937210469832321732864228512285688571278300993438510956913285555220046951271249980215094476532623055106504032061870390853814312445637641746851707429772075537270459389684526787416566728788859826205031215961132534454564017392351201067780034168030772640781706014583858454729524433655216437630672239103499349673271702825816563664329620752611959480953786074304430419479981959881908739836449687004303889190591936952581700252493266339808640634476816025149918111099567167016292034976246126086708036142459984249458369893076725368537287661717093248674622864231293945211992906803347207224030862270809014302937550487774721291872689076787477546724493608563987472587606918730107656326226496585794460741060812057877560218723417212795342152900425499557700499488583433448649681031908286772220426007635496333710484801412160248200979064716014571717920536846721208559107647309782867783076495545088942324461772902908154000634030778449993729285893010247841761599252668379012529856591201891618239147535112092861311196453559134292627986487800862198743795732954965501288132535970522283670475354541580074479566447825142082750015376530422023821496106769008371719044175721376247923926685839766794488578860562929979228752254552502003816749877748760134786411120284875650345779065481277183346870396259032430548000117327800717309866314313904192404983881531269676861833981311412464075709346658727551286521650151229591104365429788357107003976851789351943938216065076818676506445005658630942194035586230647900889565954557223947252679397726580380059146230152486463986017776697110048087256248055027061549015915573339006013845330368578064112262490708814202880417899944958042583623005549081613645346246551229568937847334313138385636881957000959704104705881127413959200480618531327714821256049374757920837492145118024203321182286123988714150257340556206369249990721171360818024204517755258659445923444633089721784295459636752820449378419299976944087342638043346424236238488804183302042785682345560530734456209376724718517659679831807376291547457886322330554796190037708916771103912508604321271561782550511516840610408980162411046093666627558802267291844418907087904688013949223293180005517208953796998475069997474558413383967631303127662019964806393093579193012815018950746436412624874123571165442032997483951295500670629089379573737943595675688407076018469754501866779946903732599488605197303459659869630596770678310696030451305561330074859243144323206182114723974054230164688135663235028423156970680274596768832493690353994694426634207518326090755506530377861610622073375245596066839493455618903598301671415989922497819053539522342033911547316157682591389213961271973734470509945215237587656594058133607936636400104308182922854656674945347376599786875068530514921817189368367705574819788951635563325273313955652557961016266801665581390291023106997701721445456437475586447457983439504999233758207669334939854615755929390606015180257053037188471488191800049191246427005273156296542100601612172502180082635412104601217166108500095265056209868581262354443156423329012245167973783502160899671244851503103472089601382861853287754157325534772927644898386254157568515436606366238419773761276736355194936516455868719521907286359835768932286750585652364185705272628926616335979621140044290325448873196146129881440776274323478482647199988458763394452053790790074155510606789220584990833277558111999671059390135354893732854279389976791106812288993381942386843792119330686871198436802504207408923241610323001279117529663943058243581058453613824076159872278607035424413797715111950847429234241931301432542411755430491898535019556057345721877016701015751649872135687636578451565453978885566186332348590975430359754327288161394854924017158936984777224207755617171304281874814946609640695593796479044592827174256004750155693241578694349880212047283338978193861602054509112050372880966628365614031391136329774693719755613294507765757829776900513548164771903150463433973368999487383519547419110390676984364645140709097723832582954663522737161778416138113281875036290873011427110702883642476832631296420276728399839776371391067801320081323209126842256210271096880233480445901624043617144884679895617159356088141950694401371683559179733825193073477685669305801612217255315052500617769432099167919244884997735804024871740496359881660592546324649004745662531735104794245756056576403067950920467151337186579132165668549714374814428819977881902923548277545260781676666220250952959807151048700702426879136608754974587443622450242586635492952128973445865083379965744435674138677425495062737073147693970748002809510492220344363540261909076315037824894793498854831144477186727050696263561050049168442532966288980654936882096386922786943488348951787454541820813850777996691373085120788062363845281770112548216969353707875966224199412542344371055020166085770474981355664110453702292878154141294847246833705734098602564581232926008116683062300356505300316331851588073154935456470209894029549642828456666384971316267633116114700588261209668879056059884522148258189098766534112197098360390491121358950446924759084640374704796520440463136120615419782169475353526720141797322375830506241974675215473565258273195685720481131830519958530484101143252098190360761543753630075987151088430991466723729397663517849936378306406704316976050459467970770820472601800984068807925225603413218858770279363044671153252982260483025796886255586774450575020639521329805237229227427244986464439153676458780543495277906559742405897714229037765900444289997598525031727461906110222399748880769067972914705330934900429306617809873489192297906110383700169563790548070155721160738906555196420030881592600450564926042021339901845958943790405524607532945381573968536602636160050064197137622880158594301397503874550854959978578191249418691337929812450061173563940199554562410076770447075272774961115133011864727951739673618733013255844047551761593400516118184959542367680984309185367468002329172920579862800960283821898868324510832837929136331637896630289286272667051602620866380687484563391000020800746808853985803172006563352597954935479427141327201134648109844372882341838534225567173705866268181344203552905498721621927288087663149274999042809529808987948653973688486114656798342904621469560542837626808254754804108870260865866783147231121601022295322716281708988364877688718175588682052396118504936405100457389657974160977076841497411057186205756115889231001363937933200775652220837692006431076726584986253404855028453787831677529039870767225245989014727203510224705210680807265796221236529502391264810738372697407528923403157436465112006244242546039312652125009043156773204255545757371839202821731773220414271772413307701486122638923397462182931299906248148406499268840393100228346248644724589292773130124429120470914958845550159901645395176200475365524444920673915424067244450738072168830310650862869354416493881727412791803716505261536517409679242858771438471009767811948021344168473259671622662781542174680384531794967497503222537471528771546280152949091331718026289886251568371985438539803126118870706213909937113080499348720273517333867239937768626523284202278589825777290011401796549371521410932525386735565720082062954824804403971519968837851475135987386538038368945245678476196127916443040263289691400794631940128913799499328175212857914749313472564815561094943190204747235653035265554347587513429854474976521119635016691525437076672766897971073083963250081854606365778105381132761913962583999110728774159297717236686909340581484265679035621377551775803234224647910448159600683037120807545882945566956104273499932015805786392406267043612093734683798176557740850409860567414678587938785189897935749922435071187593239381204379708804290589166098192397979270556177573616030120602344523113863389084579883830888925606258673742124678679662083621768773888516048395779456875740647132518912855270217795593024726590055636354311520112731858872647612084647608570003183260660706092174050730573808543465716731688402489515404734717413953527093287314261796762164515584274801062298221347962144144114922265576629692179731588111587980177526285921241458628813363977919549340989048779330542896498514242377438303985017056506680378179583220404033307207162982470125609730727809221517059388147357558787138636018119799013679199023435196879878001089874173687073924042243955969684658438827160084047495558177871434638156598200934207699525710687002621551630589165558853840130903328712324720631204748241000873319133738077150821690341617766509336575135415606355098564659727933062712294513195832070625215179255283552931483145664303780859686764405157812058764234080841186179908863248070811131540138875308125802309900040975850168621378010377089606445778815079756377715853958211131126883095263411095835919885965894981599467206653629387855350842858677385931311020398491086606786186248082089387301357780086853206426837612261949345234590063573727837426036654468557633897252509389007928189254888532837354453861955598367719130624667936565977883252518340040315931368165291901201972948411718427878154598031831688715199376030035943463651815450572933502243202437241688523465374440889502386976074262239285778417964652749782902340395672905029697681205171951968684814879828161177904724240334882039155761675563338961904214554273143197514723877900480773031591884751980887153331571904773967238370622726857280119245170638968953272047530966883217492626259845153806900196285506059721957037238594928620871060235859409925569651168722309946486253984086680934069674967945533929440500198349608093583781128454849876719041547348400686832587261161466641638354069816194685618190585371747503396624966525759981024750266519688437847645614842917968829527456412441537759678287129089113363743186492369565074942495483071560452245758332903635477532206653653761156162638601826343076025259486899618717059008516850949275020947375181604123073697372551808830446804178187401686844673305341900997352858534749513935033232397764440197770921830351343493992149234819439991351451191932091497354829501538130365391794790576098162449570660287044290077778466616360817595315585211423524020072790814726677331543154090920903068786948684692144230702418720639885625223650690511025065336294786642251934553691080256227997585091939688804611066518579579083726856444950838460646707275951138148866711613793042814169933103868434854031403598830092028853556118167952328703241694090227685068660213474629476031703135667656709986420464508305119528905358717410033385735983397251188251038358731995767272777404152337163315829337369116568573511633103271070339814960805849864800809693555637664950334666175259900289247628872103424735711591157720700221711761485944334449355441879923997318520208279643870884385384698296465774908274078159659771523797003036251654634750482260696111264541748311421524554799111825629282687933770051488070987963434991276722690806991194603901184558787584699372551001726569853613863260137956934568762202269907983613024890876594521589283987152729366580787616062088465825342972932347932244187348237529677619384048320486892154934655757703718145083410173703797663468709185704447180975692443998706147967978104564200211820526822981101016536593007757422259140150546590791573661356936609889196213482637648992202627118556993371291446101170749223817946199408489973866230743210817071180690586520601298772212880262399400881542832998420709929860789604744202184940178758739170361827746421467450007135475358000420088547569746767643954661164926458158018126865568011199119173693452563940995091038663478661325907779028930493443614692583880538029193555366073272904618374662909546144702150911829831514044321762882007114656222413317227531115883357403479053515738691273350196498455332316998717793902087114151552127652354086694040838461435787028416862060505284873977690337855429189929509840703709466488900499543062382920107689582673158375377888448150414914791100219152699908348279716049587269996074956584369388617808308679140733907605339027982768567039241273362662248434595882732747372690229142945525465721804275579258093457837812682114589621842819597526972420708531689584647873424308540223230171740050016545846924275504454189547853204380375046495485093397145850455035223980135120123141342059447785215876007076829354116475171558742126173031197736657675865155211593954422249011210115133213572902112327297415675467771499363499469070917883816257868908773436697395631119135993547391165171268419744974422697690470800232722757365887784250486340577722932064581034216373604399673701560758172764530548980940582463054163894621975980488871684064447669804966418216397318982702666650812709684222141088243363115520537421144881315806146135249390217241850630032407716662292029463251274497442593281744381363689696637971344286040847445479870303263918853341654705428612437918701913292849045701136002540268507659557570288538764236490601764122812552613926930414700169651982196160460205970860620102825008694807191267837708938723305508570538566289601683990525379772704805177812009838526112887081155428812572167913928538433968496205394490639357179351849338840546341081257349717857510570337006715135959776374194242126551515177196816171068363596582827869032142545470634160459279170548325535607355931595314356280065773388749326828406981962488843434465462066322797108636844168819312102101701876867611568187222122173196349640683956937770034012045084317794910307008886467090528872869420133636648847928789013450100499948579376198865576059480442133687545415279493775850277389272931275743821169796899228225860659834337319748507322837160203009034739766712064851382718644025406908093648098800395110250242306288439136936469118731522495822400419584984151783947535537090961650760348434956712860186875576412384532068884345433098069961825443496136769129758928728037522673058718013720304144627119958469698942085067127472088219266077591263134838154118047892239028809478341116698859193884230811872939824427027268139309873051406534763959104452399442157778300117669629929441898467233472108586156211451380709570937700229165195772907557115373546303794002192320516742006335126189869364897111105636856315975028467869242358569337848958837088872373384863222837899160733774598118556891414935950709787191165122047074844992823257982424576812782720371462454152709099107810258747898894762520534608681751816985189232750185109284121531759172363251703124312692344834752915721638237646500929532793043008308028468493992085548303807282830420575778663673178681408080230698397550519860204396685799471723173944568029801755751556454408020100832834147982084296478818891530239784175961661859042086729513619325318509026979537513543142195887518773852932941501857759317838785808714854776552460236464923207889759327881212407356884191443256981380146777997224540891977712347123757313687839694082143755532414208130104744171585531236206845030372785557405128549104030114857556411911350315895525061769899310208405208483611630002795231815378902299732235383707198563540405421848160986197777491178866296809571129653221373326317030036740041527035057177352615787748707338370964460492334395620776463974741789543178286536420104363193556867064277834977410106517041210088191435604192535623521456222479363753321002664534682411308603266016962061018014236973482430328349078679384171867102405123510631553639215066188627827563770089344589243498635384726405544091169348722440819649598454749713023726391257407621290139582894963254409660093541672658844256258608897926288462091245924747697586978302033237187260924013039993437961353801155956943425704362919217013183641502478253389627656284728259432454499624021288752074295673242098197568232808887695296076049240832237791767408405836213875806198960172198340582922419393985780184045722646457527239830297084317028658690981133034536932595375727068307120459132707913108312960587322950030467817244889732001491159726425967150824071103948799695171817919655574804004540569805385657585259260479449174714179579697231218794825647774519508048648325301796149015376605236730218976633168739994596535829252986232627805014392812150791524524127784887554380720583851101259002248543455608559398491883235431507528009265916806811118428142490487863793797426694849821192947331592848313459791691929144581682954227081420044799127850780420273287481581426462706384862981188410408417313406170848216927572387680016024734868670932179038155500781168903185405501528262732641667790815599955073256024941333415445103786646922884465662425048666009151505879967672031594023020873454178491363669811276661205682265235270371923722623011144463523209049110981640172864776530309667499214708478095549153616320437415357529388111711038362626562490891043643697939140231981863523811724860748491861736030052409014677934557740706130223851312331387200248275524885487165476808534724864975705560604565028893676135008186862462147450524136535536601689639579131754770955012213263733753384332720915997253157502762710447034398038556402189738381864067013593477629071332882654081095288349529483549004716273074538716521315043174597863807924373777080841505293140497949311278799334048731193713363315476873541037904062192168033708997031772834120447428862650708279415950715855338283920903627207572488213138208152474989696124609142257486388485554605341300818045775001597457497871991989968406866303688827654064161810427386004558284738487788677791045856395687946040050987557959480148876741054840855649750402178896047112846397824937540002587255042097843284286021736826056255620961379328244052656492530618113834058956169161851361822031556841932698904182169983019000851222223674234933195772738123003921649100863491415558028167446111772254841870648538745472643864198999152220239431751156499764368649459589640978889000056040182570185867480787889630369073038505163130202099424161069790318322225184772237865265628776265265237065181757076776150988784280645004705298421973381120638194607439600365699332148140908749533179146162434376603735032918871751401053155557420419859404005247337458598726653165166599958847030040073102847288747505122339445345890446497712273856827600507962033816070575958027940191811485136878817446803471521957563742649961412384028795940181132569041414894593915502652769193292431871242880334662476256637866200142905315797264878491141113020864904393934570820940211488819565170771905116389705952418121658204381559678565295422504613955428870906413427517594370244933489588968779650811110953661514261177041783772598367763906167142990102463155517982281860997262036163285454905248178826015984085581640733264141982038641240441125438496967365948476343432214215368814460055065264332495242213124302396005771289632159055280177377843207444417668871648373067729760700679757227483924647770026200443426663404857146109235320499112079495111336487909983843595309502370617088067436713195176909893410189351381642213371969555034079631091468547035492728461017455427920926115449833468656734457417604215202727876998215911879888212869161038603911300103084960113959652340376242480635557113599269550413957545112100779381036305473565750824427213900545327167287901717382290479315166442843123554876715562084977702530770267467049070491654077125352144576525187478784469630280337389817500155395538978596102000993599669503060082425752264946171495843854285843684893852998031112116475217509032452522074726892217287005968368238626028328167307469000387205906804354715463510157379710866065742663963565404698240229131932269419344350892944063991980653486615483648938365544980924827991141545294284479387212161873302821004403351919971500310858857219679378139739621364865110502828766408290227188258314188700681022835671000029137940209416881398655034074772655115127531474977385478025394858398323271822557533497672137649318469540844315878589636798068164835195292510553252218254544848651023991676443504446847388138218521442398437046722143624365142415954641850982003909819496130742566424796388479264979633960223078076100360481990203806727092543185345630559974272382999532350539480630813215770140030325709798553353033166912385039836484477640539182060979140169841414852860155463846613336340342830588856868863459791160285236977106417954228720941889594280496351460353483015103977408306293160009855570977747908179979485003568001690509602051229294258533769123958557687731595474351908609423867252522792924284810519763512784893531933052970633353254675878151867814834949877019745134144210657611930339467867744153797176146795457886404219225862885997510130218123258660077245748325505513191289653623119492719994119931973944642960709291977784274403593960642933154985246588884496304678904135554539426757466463859313147646442058050249751524892716758475173183230451730208390644397186538161329799205999367956676497063582359600224162795971322656043308325714636982566554052087497746722272177686038250299287076173120717750270530509985267681196907900595147624155720609634133624747696849270497676821238563866182930789609719593388728348732436847490391708583269343835856908993946331188848454884851710496009764891334953478954651881560806792432522083995284393402538983137439251222106436518284484662625441192077866649711811685608032921737828998326098842797756262942666390093225536401269434681811014259660994160188028258904760290265823231580004967518282843565376609443596946374893635039190024624140580903978100870449194747816974980951478069863205076559950501532703804863079236057782200313177633383875559777865407619249151493811534859341798258607113735063758844052364386862302925059352275935904843726442052595179614124683618357896985623885855465572783573080225622657042056122096924979383878641524875153011243584119475313365507029671514319486039132259663658186606630366351738933081018186216730040344172941026073178545413337541333977336369716364129531585442764517031134089293866007271150641401844243323981877046716122270643435278655640592921940169409133035399144853485312155522813447946898725525917451476013240567536228837664320440483287843536244948834742793336534031049297882420807156858980764806845859113279431059184025895615387894630070105906839273630853873562662763457678200010338983815535748358366698697581393884350711743461070336316211177736822520869995609860820093743269479156967765626241636518772017662700019733657763567398343495469215133952480062204882524800440557126346942458385731015929750284456770058486617582373715480589895501266777502347224035376694064547326343130879453074008940269530129285702083130527258725809478158398238317151888261286815736481731734028775711136902461341234125821419296664658920478517903408916979487814731010285798941011344862163549438811139174945888962328895538010874877866927014086088806424869044334373635283265819533770157000972325812521057424740483325635000594167505078551093111436122798559728425950993232128745643878058003257659533799860658035391962525832337306852746056089999770390116373781335299665102029722674297014558841957861153725491099457131085737154825955664511308308409941703312780621493355040295907139190802075901562271021801731555028662433771584466170728936597080929157310214527032440976518960069082914667761452427643345134364043020013026266951787427449814335207964713266962164957344141679502887732876250445653912510978438687211098927705854680681614818361285780297477571770342398045671418581610296795947228659375349886914328647749507633691305307981845184045769493182422405444446210045708071467376705578288572938339446458414991127907080952116006342034624244281710057645054557799375659172118779284514607987456712106183451303582517214049004202598011384460577616221451069510443450383525384070044841932970558693107629196810572284954301620536394406977368591760378433963056504523424599363556687850966327735080322077101961119985026631771141861192876043960809718807092144703832119180092126754754882242065601226165655099794943165531989370229718862086014683260056886234091194611874577448896487534170877412459996852229884065335395836454679659840906066541835726808275981149135371217649269046696045396477712760049974952029621678526213648619532235879666574772058959627362209623756297793466994608087963053134728854079453427687782177165051351933519066170293577134886802014220224445020989870645711046703932125866830939398574299003557761761472856163057905142380655525393684741349551126901295193491214230163858054083878754272018672831790128990467286262840003176763404911530175176954866478730097819215793915971894369449331501535921686280472663538770560649727584664668339493473401169235437583304389737006183612476356516807188619245047040232834097037887823120734004008827075986666570665325276619864612678048249315518926502944919372992790832308987651452981142280359606459200577766330843620282208725929906924983621649253711904676221523958057302971115867968703247150848921938166590441069268539886691816890854297464817308238491317887347844259402195625845505065932685806942673328817445340361442025965509724093865129500128431077333612471580519882228813823972289865747178806754958103842795922529958786039790846805181363122337031948260559329300301342472793702066387872610942138942175894581447903323268204240459205764094337250854611845821919316647927958956650346079587844273196804872267461013207962482361736921808273864574465198729840497609903721580222099715556678587981235906865860462061231048866333572130616923611262598057769628231898492559628694019878754890686807402442868993149291696780092460263868255330894409729533426082176095983979419467695831508141625375459462822172416002998609881646963506492448572699320445151879844021626524845078840843482082879707519551736884491946200275398402830431586158935430195840134563510303227365403518596518784744457841853858102984093312068934788570896290042246001724007473618966809396548929014600251077192925076381979540474578483803048199406803500817381148892641126900368717820995772623691725657547916188088097660949281232045588082818139993722318832487759336062690028415467040380420512100555696693737594479045654995937095678134415182137838447962371333510351409507805558143426441737120523595404829000079017357198132538526091147417820777480127904257678854627385504518457411221426052447208804102052165679213405798376987578620300984840791222873702276114380602580374799387506323232361052782146011898395163033863751554476015792300035088899687004242605723796017196790185835851051118482299266188317843937925149482315811803330142504042007012298886033748937443531303658814122036544930366204054581218411034547489253267384595270551035902829229278868012281052545673810041944719229472517638891336795414113846625608023790681894167018377931680344249374595632037269475773985031948633254565956159065404524053131671828485816745300154953872253189477890049823271295375515727736991408249854833413540974507715501594484262062783346559449433801969547091519395625271169573480511067358285596036128118059148123927630612126669870972833700328575501235187955949588759143940152833342864694795019716882670870423841081393645324729818879011438056875391115038600707158037695821383348641954347440031041122407592152003141093222710415548409111754871227850604179494143845449308182614909234291228093539214937068367251365705027252791023830578126500493510217062723420637366976189487165379558313410820911654637634167286494470588180840623538933714012837320715947342742791322666745655872829128926301829435540952930427012304734366026541407935569768000292312932092630420972295063958826709260451196453277316470444660075480117692898601148682029982200425547955402017513080702970380801392888750509770138044970429492286663788662244878463030312195611393520514776899317698647375151456082009190881986585694880611351379524206803338728197591778200874598942895173725414168947379219478799131970979028487250788518606425193562295326921003132892490064412617462654544910054568899269988386811062948746122413707197478577685111982730994524439598909517254147626753379002980202010813664182695299541322028324929667315608935721848682904285300062910820638987243458254445567318578437789859621123737002479173207787113850661400958178820291076981155438197554777779596334180799922850599980390593738033354784982690329859254708469533021129340872113347728682535313301647054283432580700012425706323997002548795940633541186032791648065291525081520831046101586436858362583182859291965486986921882402983975075717186465046025127079436630429626888268049071435146188152157524466730919227464084699668711504375749384717201864430247025369755832541739385483103912724167825832819028321355405551175242834502225534108669591637296636729262482976203017636419183706886594776271549235299779105630382945777872252827173075080556841602566500292991016675156998919894944424690310891815436264452796129082103891288025003414180786367446224781755153489035160062903514789611237840529627951852367024947544384864698180039840577235057183383751535019986998537632667790739337965958919918888997620827333551712651961721572276315164754211738718144899332058636921573253623267804699637091964689242482987853767663917353219388358499888332495709494844554666249474704214777988066064515635732616464409092705593712039865429530484224127894411408074814936361677723578370288385852243079798568492311966182638811658555037953455911986870710945586874450853774631987045228026354437908216162267061474028000802531491987146845234782566738827217821843114171245457748150961552674863611366316059822808514133757335757406184507823402760715581829408732257176485808061870579549259616987286038162859712992183601384976704187186709635137934262735758299630440321545166056085295898608845074732479270846878994194328390570965496261468718117455216726419644672960227926332851297258801219581836288902971812577345534424823596757065086387302166396787048336144917910228127679481248616049426544394697758083081777591527937521317259639301756588016076487064866394915577627144394339192842680742300643078809656731204419917693179075804388927856939906048400077071024092534437743365510667141377838158800119366589432395496243533531769307871900150347705146382594784385955351071623784824099434964785370767325217783748801644347038227374098457919089797349100322129892613277985936200299403347858242801634185130917093211680129744687379204722369017921684019953743892690659713735525168101603232467093571594385475812658336520209994757480968405532025844582607989229701649817859720566282784897110623951910410137260837017346450092225366211732634987839563685708144063281567407147039855612262579329213786878336057545626363161002636089926128469054936845631668888067424926276944580163112712589718460713051486188450479867945787236973392160505438497368882206662543580755581377899717225411768747690309641820253990332052412054847281142586004013177798000356678349593727768783833494580340966995680935902990370559981868890836956224854521965336113749602743328678975324158472202675097678490650333754470240083473757276556353661089799471477940538147292871254411375054364047322860257763831999486986736151607337095529038896559693956904953608212673389417548929208548329611853947262223440902904199790636946833946542105111058914027492253850922389280284664476009496880079099385638275812403637850329144265329537890009829649189751573769527028691585789994219392641736022594046393302476800315349181171741797118167132966616805930064342333228567121558528079768654465778159625736658268436232961057323282949883476365112608032220726988659206063900156503913824777670790476493337539813629865184476118294641242799600827980199244969829192711684411381001574620905745923745595325165517880679673763472305049167366427235082269439120064748441824672024618448808910856555260990740424761595732516471971808236519284440485385650346950891662733830849957658368095262370162172019001055333799363614243692932483751824759676740794419859810255254508648738644335702636390113721936850914277495525673434132475267727592222382503661827104877280927981055822375893987620873072590387302973106446852936547508653205106944302411040700734279219407901414487480918631845619277889538697749886434471748806323769963597926779832592845505095639967472754127222440614072389333621539309387538844081736232683916189978553653822932615988327757036641228360628803289120842368060917742634302284618675948407345903925711061746147700768748713579970975527025078768383936259907796341143495023812110158002174920284796083043559505382511971219835402581726722454855052711093446899735145341211794953959839079655050560437926020626983093341024290418705192603879824241043479971388508874656855859080411255357085193503350829621727218988026830433939142412664806294992251293440482961210686127756851910450456469961429889231252492146223749601342894479805480061145473534723672737889617514327472156977411257916497394391497392521455956411071272428330165202947913561806020689158753374690494496025008741556143953892258525302590510555047465093912448988503735319001682355429849935883842661767435748942324682341265805565254693581885843332942940235298797608090865348110829008015763879857877211961214059394570648114971224594936650327050369291609906407990022846355697232188474581891692424587671007343282415654622000644385192334475817425286063248633735100535535196323001068400987022179194372780350010949536612305211473252007323566357348859506523036534187759508689100969519782837819648135243394801099989913776649565506457435558630155777060871360304320454679674183663511211833751319940588972011565685297350000485774522552097177597740073704006935983101898206250021865600094978070960169976525544488449328439837308042149235500833723776560693949549085910646621115508829238615733624575401719439488350135922986978624913975256416679627203513152061957345578277655863798469635820117558492542996388349627515978232507407991451263471100131291850289950862798302453676517411919569166860267812899198740772485534643116279749021495711182971939762501582879850721424463403229526932593566655452113377536794316875983393936995046121427391085571432611541150427006047413810436445681427298438776578366679443570452464501689714871733128888591696529481739110947207938125772191053821089042803409690680971808874261614590169923334912773315217451587366930231550374022576637879802593120402060452623641134833355632872644276082368009658328060812562513352152488339342125240478004962638317494227875020752857411575683768505363706026277950916892753159695906777971968590090858678785888129686912869075455574660205928419737314556221842829506413635721378055915605350188735072303566204592839495362821769719852826550511665484729412143046382144310841767669280106161057286012937433993676505294169741924737559844856348320360599255909548705804684052897461321815405294066604160375256010852085419191941261113960571448031921624453405630800243381196557528503510009881755656945280935931377132748304902839699819323538025114131485544578151898072517492585830777934457507970851881565919986102052327817724991253090468420059173743250306735861804681900740573715502382364131083702274344790825874389110272896429445045244016648277187433417558656379235707568336251141715950064846525149968024532088120344831370881971299792086531588019541394088070292685082192500743362894665432469352962396273531994444105085415661216201757382949931829364544195824950123739881305994275701441482267819577186277570934791801436970353484250107644955593910905103676193296139097433686014906893096900095046035702434946366469024825322310368123835606985945585948842956508217569264708611695025111908475024276884039571585794030556004638576335431128664316644607951312414706419353040631357614459559524343042353790575495835564276018653586009294220153473105128544862388827891637897240678304975893772895471014135295043852271899500461421743895480033269140783810550323394476906737275815258279146807645708707671427587540841740609951726315915535019572276070552735734093114619956300164632071637859649910812243374620310387706832525764147887000171989888345219733182916895427143700739707629145593245621126840920521232811280346853866131601610167831960712868919163731014745200371011731412752862268420820191290423729190348977827272423925026808267750958735062560829957500096068943601357454659306908687452682161573116956228346990283866296809709947048328716803697825519430374532582398428003294809509056521578270627139592087172399001195618091497685485647291772008959788268231960681501427665916038026301912858400826130976299187713924542269056701114301376735159054939656644372432368290411359491672838920176197826960874567569938967394824382487501242171830698508782781180921301398811932803460811692826278965206555385935043917084480947683263045510141303063827329568721759499237120003288326906230860257254747044601607288489814553193240317907046804377224714743604651860113288524007741474674847321372859956320771571172291100318694662501689272581157540811196036104658636754594669143133004153125555139414131279778290268652208497123610819663672133254069120405987408779502041272373203460173907457600367050486505402595430448125049776776224124165964298614410164981247456581073770122777200800597031338053731286201968279418147152425648908955979953484731161214453006973398007794985152760481814899814446255024215659715563979714868626538086356040198205316170660892035149446208147764160143502515410558338761033797011619522572546567039815286209825118450668706859702567146370095028520933078426200324829977607758183640042542780793331078706146583701997710706626636411304233576729235926909316833702720502636154620990034510098550363639928270002972036851922325711714455866719830186771008433731069103242562904321908596280813992934312314057784019956628365831885049559439712520526147646733819088531336628682716540960354234633530861729259034183434250093710473823038932046589468765019241321210029032580211711550438597351621979499404229800793034643611993358838121569143774804696425505959970225603373444018084313202425805068617022047814553013938931989863383728232050660028483609926624939726437908811508313762604895855204127424101571394438149338822810850627353383908589299166672972457411564303789726774660923272540078037568636233486745332180575928874933637870227247005376324452902831305334111168188548892998915808729823294496525796199867346915966976264527659643717042887806362315725294859822804576997178369053874410499423002762651044234903051002947007049812466974025169699850071152271663744555724818347377046529898772345918845475954047362404615561334796802557970790139988984533669549730758232543218758882546959865255188213028440660844619387759175220421125020803901345542463430850388658274930186047430389523698584160521589699151109836381977525973371496748221254461208333777069396738410550025124382546501330447933539441077568202803343735897034386670213364048228036075017293060705699698693556601090670784851674128218369486962347679742821002933465382083353859246615370933589141787909610320190519397657812848134056533226411810247311255304279901675435057877454018101597315153126725422066029861860711918331505210148337448085307707084936244057053884257076699861404049564283280940740054692284065500763192998824155478843825663543108627224525674369755139525445892413101888808177798488435373693936412830914182113767294987167383554545029284573523395583270964791573884753056054421077387114140443052809231558115482141586487694797901303488043542610310458483044699294672296987443932745028248675415118163501370606705935719179447864654249926124162364976562819169543499488496768150061508702037416921049461958964090333250703275191251380917991972406528903699619184939972828414622546884648909575370420747009414050655885281633178330797501414402927588206478192679167516823745329928208310994394437722689142261070828595190844869150886429573369981713586962778330557537250596343278591164415053440369909581433413610346619649439422780544650216576146419494488347154997040668899880699187500680532065043756498566384607078288358717377006698061868633225407506193852987484536273019149524656575840436417965371622553112872362140517557349256601001397797062632848674997352257183873860350427758599356065842884407781863683208473665210052073386690038813022742264529461005476870140748438612794105997486920034921856631739154752486631560924205255578653489346688419251846497458832437789972026266684344663907485504276620091208312850433205821395596873892815069993714385162917200503183203839433530445144913747766755968491412156700746965137195017574475153394186399794748604361285982154060988972431713682168963022935344037714647342994394240865522853608077203216956067346691119184251726805286399163080597995924983453157248623485909344509968605123066710302720340663822870955942236830782818279357081996910507109214438521793316917074244932683431121744662164575286126823154947517440651430881032434354584069144847668476674026944601128331023539938187291966537473622982414398376420870618177804990817692127914243118621444449138909809359595754980301080069731485250500857578201223394787128435545914833112280711997348331467946487755395073606139700390536129059756606370849203347654635113580326138749249522480348411280387775373162108978288756796506158678153732279253200070492961814600399611114902360864474828338746495107340455255434425463265059958624825597830230627957343162568884583291986055955669477112044632906202338211893358862566733424679589741820102785458934783213478700945923340300879181545913744823033923776949675882315713750656574831545538721390603219733370157606470294637185537809215534469331975634253333700696353394413173586599727450693650671058161847943470131742989497911663264713764967871621277205179267959844057628380489089007863807150394351272658168896551236463511679612428576865290514530588259682518241411650876439799107713981503481615790947786039077795714657075432259750878114427964565556668661538980088997782662162337667189434797214922273291814744900435512142186234255860856979009857790483562137322858054757169690149159198339229118831994731078069745063389157921367957840560677193042935025226279250638725175205265130422628026194134794761238549828956784416260580835508049971048368044675978062039989851153324131851619173164311715806779563876831693683894559754320763509388637930987147942056291190099875065153420626699382254944457355864783561921734741566779626863097930305229372765306510895525117732058185251827122522221782226120528560048667189007335099081393608570202278055065458700168460065168679547746748727674750657572823601666248087873291116933885623439714640595936634683751088244114772574218593259352121553106384731990115739118958031830335407101524264958052513600627852632440820526532866614685622888265953338810099494036728508409104722807627591404731795867950106577812157777254740752551532755460754021466164926145578304044758660085858715386190791448329535229722045022777180503780600464636911133049956332695782853702449333156511307257740279893363074296365609086301942686100990759847098338400261759297358009488288242628687841979898616021872306175522136076864199666123664682926803076602218388048022844780467097272225825796025622554909624903699393999088446213610178549217613237094756067400992919893118967683494860805161742585120850199972531861567133494671625818479606761144155013572620468628138387879376255798557967646016179865986279667484995896674802021449491846001070914823815748455618858381683695109818098160457539967226901058025979902407543107259387456180292598832078530778170135284283983724902085107557765330524320059345655792542452751915360898418783174990857187624982814653103271278313053886265998739440387572935242081456419611677315342028785706698500669025507004364633336953412631129832548972583737523017891675732714074671447181948886484792529525490802597481741584719171071250365439412451582034125365687910113946192214917992445842841011352551736681175097131867356275835379775626517708770345536786546436262314786606578551177893775649685151547981084473724951915673672971795792900486746589735313721337837727081871577085385948621307498988505440733315114404603544202585035479674454377530340891941492053219851507880364965404172919402188948622321827616150182949027790869663567810442834748986934018227714764565387128411128323699486865232427986257934308387624885246710637830459984669689632924832745649768610777835273815946083808491716633128749587272988341026198308242891897604401216820662986169519294475308895852579918057385839207203397584342231157548303607207382226279079931162592655451762405510476260225562582851292975053182286885858546171618980975521979279158724983090125840230507095363382472185382576250381254482235261138098849558338378760206855385129354581663986853406197462546500120158516644719768807917309384061313167750720483993946252623175607483144859097598878201353518002467234372969122071362574969010928494541928601383034414231484098268062397349497338835259228338968813077457580776688835846590537352370468667408382015965816284611311303450116588051038102534340472863855892715374401817428493669496840227699272633497411643732911364722261962481935016993503411066772462719076663826946066886414561983825269243810472704330511497214019739272537069053826719487370940999855520796560195705703538988714860808118981836284208013337009761646150720276242175987561655838630571413249280817202797695449691790433786102401899618996178526617357420144916054882935814898908342195112549940036461852646628314944832015889001272081094769088364531563334876214611212206272285234176809888594423016248753549529273535567632083529563829599292270070292148693105249504125596551603110820586778098899582939392282034085270735020450030765181515456924642665734527357812055580459048822642987837267933240292926032278581341387198772647218717115203483744500903470978784253690456959536333719507252192581615623941256469560068413041252568400290012837028970713449124646015832683375386022022825681054919627361467761164119787923971396007345810759161917624935345870815416641294664968397897555865886748917592478006387171064981978958963136813024325775601558958464744864149126930547947611672008386227063831957163413960547453677601826409145639608946648854975516120746005625802539456147949059309630729799198218587166344906168339473557566409892045961155539829859714878591989366037935983812044695001495916420719599196122444800341346282541022857205124226912887398530222647246656724752381546253328736418372571450428682542222073857332214387769478775313937977453898058456387556687215786851881267681675135385358510769190369552792375415012552474422970417792418589677118118674114175182079755243043804678327905076753470212604037165643958625271264226309462025443720565370146358657412065632961516839998993934612814820319227633298753209790358266098597031671836109653354151658128701041245374130369363650206532146339372654945908531909825366073925983026754030519502694990643074002541092161342305788511942976388125760788020757586953855963764749365392736555399968878591922792372969685482952860245169857593272434769755494472865363930053453507944334306617969548440819347146804451866973473585179037154412390524184524679256518914270460296381182814598628069625603935902791456024140520960427089352384703271228527488407637702881156603042948362406377621149194827711531341072835479249327534768707259916577528223698617129782638070773689996717097886904766185437707068081086023354383471398274650173763393824132540481770934509036035341457139423171341361475373829691759275839019338410235401960930849061589859642267812952710324413934880644405643112260682932277654662947197979224887667839724544224301926888158156024731985871812220876768118808746218767076892372386580939792963318735731033767881175895764330141079223884578502220420488132894693037779314006174851545543516788462101623610315609349754695186149767970464042321782294224916896645573043311613610664412717256895335624727786286058485527745726214137819840431862137746886874588812795624823777217201742364288337460273212044092416547373270712609829109377096978158786233267622391829743031807512651925549777127304322579106338248818847414730201894312028851535124830172046755373010783015750695049116241140392820634626375980904288483282893355574128523394042871528605117483689469154014770062852167767323919751505655151793899806042138875010804750106505177300914691547454682512251835967318362637769808445544685945525714446818171473153670698210649267752972817348705747688101094460990392816543715478272786221152256896058537183199098832870146100934045729979600563350981500026789760073143089368205180444262739281097019379599484853178641626561107056611657482199656979715402592130379040285806283482125534314750486502538517449358776859758061342569141631519877448327901064142755099268136762743144635955173534233230757325614590099364857945711207238419171792849028686796291165560341780900997811638131382900807928480226059171317256542705267140109453354386173428120548939840003484455389672416084220491980937366272235777545749203429243723227748819674601421890870688991428313745216599465578435758837674547428322970205904863138577500967911303326224019282140949480758026543124947943794172116156165748736140961275638801359484262720758473604393730243981174635188123181462283046443757783095974279906214187042628107331367238824483036664307159257013033052296287902500388958474907690681767606012174592984208651124070628164452481159292570551964177626294743378509376537698096243516283661108048604517685030533235782859838849977815551839784845920424725863034855747294404049015832254589035228582747081060775417751932010020909437311324863512236211297841263369582341818881080383893920977682708476836890809143826480899651906635884891260779891082922235742033879319090001776899772383094868093173230189749622663382558259040435036640023522212786061596757278492787242205894610059324235772948520699976671726018651693949665813528784275003987540359035419677994506076157854401674418069936516554348347079906460841048767228700159010410063874734775887046045324674442124118646577472307974757735153192660185570271846837560975611285307893996099930878678443809594369805564371575384540159126797891826338851743162663129332574870015261810057012470940737649157472832252073792938807524109555532149506114679605317000401133895049666878405116939978661440941402554090510947278372641883749917932907565982307537910909674973695262588941648738366084883790500854386934250058794552078497862912966457418051907291921796185642337529581971089470238691011320159109025096743614783917675719142481981709765234366358777084964977051238091301624188442064437684879299833014216325847602739059282671462899747109505694523189759937773903447638824194290142066968316545778184253297500005192113107202052854030795756528482364765200119362182177371285805019779321927144770809291266547480961368037631174660228797798007143487500185321234628661297197716580055124406324841729739195974178245562202873990452135804559855777300551149488474161885466028721634805360393157251625288554223929414694324646651247370187175878143804615385694043842837602842733992557266988830410388760006703817089792002471805771287734008944461980103644470060685763355484875329719009304279757839703085212701485318255903324967761222606904645750133047912437950466555986137756058198260147590139653839518506670062272137479276079016626971051960684021297905458630644095644341707246057301151771841340308721578248713117020126106439917284013648756951108453222199549729424432176864602020181119540196916521121604250850501781755301719835563494810061647697122330870806391828819634925862755164986807449171017644535936422753302482367437727972877473854584953969472079832762502083790282703297470985953811508802449500576492613790225636636997543476004912527987745767382852226484085299997796511344306663668655459892301058648324462044807858217413429351128339936735896735182064589510504389724097621117858086602410499559501353689436064454848294110027428116705950507745087077484007655805331130472899955568829857184850108962448013410557490350534056261852612033768553585293577710470191861774716561987104512614092284574626869617469057265284607967906523395090971337566078026974136077845912037060029778363173911712153459658207010761626471176029639595692224361101653419122727263882377708505903470784863500048416004181220629173411729629019436606592348243186119716103093433777514080188756004651471788608125264299913016169705111325427890227750051450527774962844318858163488870153758761156857973278489288024779774462343256664104645904701833379332803108936820649942089175771084620472439976729191321904092176307431350462469441971183528758205886503580977522038768134143404558738164224211155966502489444791421557883923671617135517574777089809593383338563819982469475501655311389576188342616192598909308958694848794456301565754125810699314837231878638488630391865000945252550851531105384849718906300403517703356314896850033779202947149917568042397734861569239614111311629903558857658781524683903260553068437634953439777323045154457082366330799909612797214199720527130065444150189454813329123772509582969158071847945690626981069027276361958375842378586122385087950262859339330293008367687296230106267879625855387489796859094875818503133200419711679299629337346961277715466204651383268428115360854824323568391256227705145260333666371580742991427094993383974650372432726207964647835637284300194228277839590680816356074018282957410428293118888313976894840256815955258157231912303156184876157648469150828813009327640153129578459996082785411650281255825348484432029630412697584896497501072788296285071128514963594709447872629765498138033367794547784828656519624666427920426606751720877184432321353551437745179847725006892376640978787164394791721717323596511346894109055030328504103742384978626825793837115016122929310386465557954351284215777948586999289048132678976979195142554786847676751199957470358239847481910530227982986362589615216877623912301604565264755576931973233184142123369535534961036709213907015954638734307852690129223728406113145044655470764122787425102229128130994710660891532579649430446676949334142456729502200202277659149868918286187150234147271039250910985792090624814293905079411852988113328346562381242912426060788538327509819695470944704399207368412980041631315423623185292545432182061254248886736130345311435338977503588638610669979636777537210043991246644898358879937118471757215712966919542600669494271595262424662512666011110068104024003336732088011288643589905319020795630608356281400009386604956673855530769772493161315638355535174264404975217962537513427730550674364232264516342773930516172736980649406078094030353476483722099682566123086425609075923261939740236783944716687730873894416127264132812103706083948361905944594967477129606126141420605670702580809326953997053562696608144387358508057323087880350547507891896999678201860975790860698104052390754200984203940796055809800200284535322965226363386312012309394766703985613034354358258649356306807335569859557851870855124262982986098494676300302084470203162831911542054885948894026515604234467373313232968836577609970264601373150144838944818103974139833403004896860050060495750552763259664435574632045013258416228667697725251094002911446842805482694859377676099212821175999043233025273709933264717812842168727869869713553288999702491182183671166028223408689180577508762453627788933076549037401452373337455091302063817655662885781620927816481461282842605291679049050157064131344095194231829962953804983588855719740154560658631973152276250902098667511315058759869523697955890670393068698770052572888518214029754136859037111975969750812928488484116087841647325793882625140119472277293948294960100928212622197773117368678496334090118938490629817910422093804325045480618654429100645643999965437919663842236474970042512425470115162681522039010785978342611173984723358006965822313492262190542047729738884868163278668280413021838161026538009404794636560411446034074604568455781201500365017005222710986887236138288521616916206056709375769846620504127812199957035805783237280030176921938758486111640352296263462226441969684376376660801316713681362025257311072800606720937204798538853478611257396405849262013221780158028147493160210381830848676383163557310371530294692901059216950655027135841083840622859542732731781930143164717383302709844860932349731558646214219612690430661491091461723558383309612150570853503596518317415668628192329667339226555736614043509938403649560964060905151193271692709574715943395955680884808600680225931299979600933591446836456687761911315693816326489045460790088812577438363392534898364853863822346339494094859423692520223587599675256463374248548222206553643965772421040158441013146077114319496226086628124413882694899625069281208495287927435117389290459575442728361604263585287419950830532241572316382634230387302081364385202406011186722124484180690574203222604327000817515859033858237213713642306887022004974342334662191632112464941361667375233369730103002217629686500859289574926851994951343148111600066384845415515178762761082111914428773869547350242120996011819820062531031699035118206636744397626664094701146039962898220425409287805705401311534172624855646857198091213233016230802544026828007841135691466587235136353862708966248481584570434558252232145603051236570410241542471507868826128391502403034318656431893176523675454501691492825255871422452407019566842011409888590926677465799964719193026695527257258350812725459274312284587914964286661432125279847560195391272704017985309584445602385206491480567951139980177773008238112157624260123641186349523570730861684286711457066361507307892396496537626034782649959387798567674053876970411421950843750191392766565969776003483723346679629342873772034637091002559380236844866835232846736913487949919297929778415926974971357285973893978638788723761811033134820885314868292666495585417093374797083923543395394376490059098511689774915059721232227151443646175196425381432591794888379301375415665046079688819214515249558086088018448426524202044038696996571914764322068448218795551995011123532273072459269892275405078674862730434520490333258944452981253364908292477792672675762748680685226067972661702151762582835338885095885445918534644312724308098488893564644184352343533420770533268307454666956400778437269323514118841989861699217323423970344780339941971431391908354865433993429306409337410284287718813926598723636459209954767129686793385839589170588776800943722641960763432576238933332663920437244949703930009707281853601003583813539657141163890968062303597769697173657718905693388049470145182758484337499523848299295759188526826166399335732244293018251050870556119518201342505749543490923433863788160399329125425125537475487498607021373186814100831492074232196583519790324008902445482688820939113934899692712658829582529221772152077303997095437974320833319644904144116883903908332101610210313317884897828653621890272013052778509417155212883895734067183471634224743669656074835244151087086936446575074053529830310984323116117807612164549017153993782290168323137346769128939959296798893813550777126507465571231002363846931074086717204791132738447037533961907449188488903933875216260594919566759792082022491647296801526991273446070029581683621491850063016331042463186401741424859080236708019054640748146977889933450122352899487355184381162702175613696489570134796086659096456537000279999728359570575700566291665498769055945708977351086687936832190432275067042737063381945614087238997652462430816455487500136084901505096824655720945274051074806896729169591430895970296059711486570679012583683357435255392698822174875758698727914544899497366558477835393650558117191651302073041831190800306707553309080014093057522867204835309533082904470625972976812406181364215293332081733531513303965065805151930733542293818325645193103743772720232563724436099357381973512590408287977574366024357322859460513090646606117370625457700139660119006427607773735485755403261542530552809937640949457561929981767964948592702171216938143024771993526132663145204692057578835217564398061517305031878892334657592924082113283536995589014696163132853097758914819080280610464402761800767467988695485689692744129528035850451202675431479014635321981388394343186610791338373216877644968188935742254371668620872324097622299931833577851435630915705308968346122527265935098030561331519859441892168459498800075687308701365018020562892072049678885841785122099030554854150026506103014961047256819310071071052392961721302234754115079650086010545044382070678018132569299737507623864680629589839316927417971648482973724822378700049722511808833120391180902302800025725208727643377932475007370674818823175525173734194146693840590113857462875098266847806184460939916922345217034411532428910940882123190629477612453767096851364534959593518818934688551375837500145059994043913230648588384761838454295287324287607788125060801733032703432659135775500749006211769522563637251083946187168869258604487998659290924256015754174028913176631118261727467948718814741898638063939688933883853931771286030452276140623930293638492055910991756570393073819784154872442126471145718743681332244475921926385589395072543840390883090281501803184970638246151102781035298518424405692445181396623365631265839769754983739769632492298095142105921773634940377135374805725440788760436655953409247089981852092119862309247923139043709674300356475341266414527652110259645515766986475420327556009569973941256391672768103245218931278826629532727922951003070328682557463619147246416067860368569951293726452135697727515559368743030990654022130159717298244492679374667564035750851909254690258945380271929836809292201160003330624295093947444860823949734526919358035324367008292632344712890499740315001455089365150837843289589345463124034726787520563261060482671199561191153332722190826465063651213038647578769179891298937503371917711833383837086875649962180062457697428565812416397741345273922046198609362332525425945942757233705639698955190229870744484317870615550206471817837522563019688453253021768495748830994842461837667468246263783091516774472341270766337250490137556263646097175922075395982278593628865334842868406289765885658668643551173743429649754916507071664152432167222808377896166991229307905149647680001206847016375323306209753395731414501486644546435739514562808848109260068172446774551262804266880669613637519562946913189106124025523279758328257237845089901685112546445138316454932250679609791204864502863644523830230162780700026922286947455433001353185701560718453938133764043965394032528016876709450622214796588184856475129416632137547195184966320532993504146509717326729832422157232133757410316721564045577599079813256641288026555024273698944201900229923867393428383983824594961785789907088277734805039572955019421142357279670631880458783930498646366247378575558851227351364764416163290863069426010128417993910812444015493980104890128786108682483917146414753162890759365821993868689086767425273957423891570520009507776922437173807074788302965957113653529815744000207356581200293508487032712192342931859745603245646910081228417864318254035745857141962652563498812398655115032417194984771309902797690510427480297955757013020930798110001848057029075939828652235208753612400804560209180853905697332008599138573832827370171868534318100640971390824608268396674442316029616380129609887296059381784059443977700679093674073051148190129923285652028912190666785435271073652941123057148572815275858998576143313971321112485595005303177209062634168279853163372890210558327032901407254638674537084790448964457127766330345879889089216871811115328086729506875627762691910595231384629532212792626275494863556642637675735542742418700338436568175432792271665332185273490405952031433702941107607241852356832389884225445367114520649435990718716542681657230367267919545748551434525302822631265709799542545781881634442036929845615687691846273773622331047470520665535873261826222194828689062655129678162328222649521776808577277376059032198660846108545474178063630300909599876100980786794765661686476250102821640851482050213852998996261598547115947045392333780710675925879138432803322010250864255521827084280705503934943790073029316599261243456122529664487675690972586877370442562801182238083323789283133659695223923138080499116229918226481248778793665929276195516575054385919729398322551108956808130998418587477417818727758471658892607022976827957578061252060228778237649857941731865435658872392094603571769264966357091087632024761181880667180662677413086216882304871328973265606678732783454778493313396100939612564797431398833952125460715024353431811504606119089361660947832909908930921688418101652103039346558055594137322348196466408965829624049970074056718966625676441939701036262831174524358120735592005262862069256876969711447873161891298154113591257969939342964975706794866521070173758438101502838389897408390469041801602304210168288466750804918792095462732931103507706714199292326895617094630826110854163296874523977697798515075378193817524078226236846664570003325960155507552571792661514328635132807916078721574428880269760167341388146009706391395955469463308494126428685211673601396731340656011982677344236225640023392856613668300724622117200513550727250045291532896949221333762359678604879982482768665931719669563668382281874995736372516208734917945017193690407493487630920321322074507710630693164566369742378521116724901506887598755027485124026381911249031716836694749688725330357734013274106813976248819074995716305811725542492961254992454191576050541772074395632997366879412988810148405461626429913892209795905281561611012563978956740437190109851789839514679354805403364791888970940624347926241241243845252827975879162434535272580520801389874414254559305342030580679763812854377506449328563714175686691618004632320049560032482467848909332731879698194863618656012354014239580291340417247783409639814145161285986575767308342807292949247357238318418860024134815643552566699932571465829507130475911640347919564195675661782187812266393638554670536771520560520683075527065421834324982541836099086301322590169816737400927957238987656533072822971922016831552746822367967124335039375329472172563123489617603975489385068160193127448465934779795641820641303669982462160103135828508574977462682416369424013628435140444352196023344854527028821897822589960349634765502994072160731082483593069012034729088272707744871212270478514900241005039964573729838227093022954330000424744111536793689548696971521489917423232613485916093776612148220797939897157920240512913200574478256037437094897933247165209267445303991927421363136380810474274787504269661557445178553145518438148824275592061375289661128848248147031480151255673251198337503925752480702864864985524575438232263993412336387579398650819552469348272205935324475257553878123994227861225858360395949532851466415959021184985553546413049824951892760770768350414236073706013147189419034498844389382701330979265737764406149073664780222776902770999253186098276695128398312226561530653704304192488547269336429858365245959791865038359067342056058947351907748578206264284405477160420325231187253353120295756582136489744437804131300354336478851914804599842952704086328840331075202003307957906981866645304051722202688739631531101090236189234493333467490071613642636871731028829591363943116058415471118041392446204307994350584636428061643309820678996576533091815388447270624956183313526678639333352298084103754967138548325755291448425662101382102058052837401533738898629130411553038321706910757882702268294323465005913522074393506988000815984359788715875823958944100195038159943215014372203290764284865113439631180585645995362087790453103824369417455818868780171309320138912240555075823674356886718666186290740357769792108758093911219784770322470707487605110255547738982964772497322520137052489443658810685887229757740918597583472525917700995311789570573770968624964057387960198961039032420904854928822911919799413684629322888358591477595625007077207837084416040537406081886705964044000306276871764903028749638572911863515527633919062404665286644708872297728466214970116666974972437105104112273842089560548222609646790317051263427258825620561254481748728355017135779471535139379479950294914957613061457077035610463500362562827528083183706986315861748674170137053945711881747475362665300049797943955616194634812618208576468949589589699141657767072377192898884904390490290952548451546396770879440333220232105415437735731351650769794629964631057340833635168529650069798732786022698331184697508868734029600782460780862039061551110504983568578702965678316879998692089352487337004909498401490662892783895198848569244478488509874634778256867345416706423721559648801498669587490984653565783076337117082448928989286970057451249209916305030588050975139445022371033350397203979197262553600189215303334630527888765739592643904865152592245747141770831628244347825184615915498776334474447203450690335039594542320618490825163419482290147469561132161404455046065509744498776591437186314523777941596610383765981042609644235940130985891998338965909334670578519996789472050098864407647975717237903849633069638350922356175466507063502453079300980968274148649677099942158998582969756700565491964555549849189212344089405744010384679515741722583044874457334546617903956814427277212998153743430293808035782541882794101178479540429353920556173122606495944339283126677308523457083398976557278903158413552065914421065488463525337576704976584701179969521589414911104270166256134206065959233627538467231159922461336535704538545678227416721200165755166626236370052193076636943218065694105319229449069534335068949249916514521567495299781925182245136738757990190280748165992515265296110161509598376587580289449936137610894603697912625174537943509197580921512945329079175125230769338123891674441234016745959520832674179169725132434102679231865698747527423613995748512568161072516612663531795309744600601065051101774289196568226342611573036950245033049842078231743301177476676411624864555790554581759048480524160022497504612298686166676326015864085527050747663771999157322348333842285307306464783542457729300760741062669421815391334414950290314712778650217466990456325092536051745340304624034083207635826605385114587219462819288363682119418999557729762537943761505714507367591365391229475541284991501108060216628609008436310343727575631528036176008817681066176989987795979952088371104150618390981369965333870517525798270244003323837064698719350573131107050202604563282902261561837356000054693882787661000923094089243265098244839898772770903156833838700438959342057116451175472682000305270182829578328665119152826104645880760084064842833126753124417359274861131141683175847009409633285216259025851053657847744894661531006947449443015664440847273224208142183746598983053530952921225624041389205529528424781825523737022579402686695442327069906170947039995099254235616420188618761103632470082213928430093636775080653065818490061919578828818773462503248533692928468837478813343155296766983551901992800892747789292992461547882354118443042880499935801000224503533713145420185782755759279407446793716196026454409009047954255540135743173498044192186298868756839128075622527370653683475432239339519485658517207509601429878663302215812905577668897485595047140951007397937047159618656700217147676247087486954721929655605540162475167910900510008605710829930491339129823729993114505897418643901853935219811698033800246968657271240908484834985176875640110241467605634781764814316381518259139875317015575958032699205892805033215624739236518424817694144238382594998963814333143132118923765889641108019788626224157510540280841523257374947002375210308528070191738841265360738657714444667582170060312127880626511630814367366154817600830715573836595707501282997810295620155654969590538450163089280047942066573604654311280831132691274699479998948113925016929785419662509600343995170621639717342742255964410457195919017654679494878695614627218311551833818370762687568699139958433358005598397713052205142652391633137147044525176677733484249426347198165700158330486595470036420211540942315532499012667121159907487740296580195351712236337252276493965557656928807426583866303184706335599943713419799900548723692357206220227880821145528664279705930878913780526448751526833686679586220847891761663200344011584655516647446549824689141222764135685125836368502658204027481706115376553782353688143573459992931826864716692320108908825124793869700195172517351032552694263477351200982290233871848211020956464009841484200860069956490225481804390615515451917821508628663099742604187823735114798380025990462995730956639128759454387407733158128462033517673490062841748931779850646108762999324893887162269340951575374320438087279499803056362050181477240943437667286076977562547124330003608673841305627080518880164951181846552775460575422683877495597670417946819911539571957471630995654917281073288370244068165755046629348412874208995916024383226408306685752794240921089265399471468193197075049378056736285077621232525148420784395143657729229967008759457857726718957482686956527343165531798859204141385692031393033948145169766876996297658598193784261404092302093434886869575942363485552932432677380768310823779153534478150029233803853057075717618523632197002494719244392141834879425465559150596633266020941314886059431376924917920967825418411580245901528937717851847416281505308973919444998020874837022236286962848600529330420190765341656577985100024903939573029372484764445241441959920145378161095947590100423652243681836620418791632053658183301278511613082015577802711136858283633297414237347028736510000335424854732536452335577703753645875723718192691620901189320160295021225993992472674051471473082426655282075374424233408854660937170041699738012537909353372797685326154327272248512941341934394427902820014467505049934927857881202948029215840262438769753498889397253945148634884879922271884554034370178096208759092144506964260954071334081281815338753967909888324335885386129373251439840860273908716481321792379487641164558228465346481571548628555499633197396589368660190992332890236947217098490761191284587708253503808376984847132237787136951458048094178473432642476562488093597454252091331967236479789660242424920550983135871517248087067272219276114366013792603251447386869314176006120214841116805909771520738202525808076529613009388941900160441990347634333027192809083034132727895037822035956690773570049610930042320195530419875533915508409528841803722716399811798340800301530948214299210531787440483570280395313578835231719861094681341072000551959589529000840472241389606461886535261430824216952443307821651631407246093757850934703375074623702259092849872529923959513483618286869880215840819669658844019682542439110267323844322812112677033867854728159118198908200999089146636756634178824469141415330844349873200291696515260005111759338202943596585925499674436292903432679731091457845536318104770528054049146917686742768323068277987200357806240191362979418029226357369743692423030332145989094282053141620749092301562985533681375706104734760747550343665759556311261104783152383080481914364928450018428689222814949581571661051263198801499398768486882088095142761363283204669373514913368952827178873957333899173102194532227157609489464312230002369872930800709920866391227854735846726069579498368354883074393089961981612926938629254716110758270670663791866601181278745771487848367622284864783280133044060014124391900419408690790648349424619339334882693357086300386100247627057993741919600038028786370777623507693763138512285089810714249278620209936994263904639989584031832839364143816145445777577827383165795485633646715245744377576151002979345069784044720844698070911759972295165895598548029987529991578603453220292420447553365711198566098744224183536016207007872346569138520104126319819270990706468661529798463220735137841750695765369781180198904624485074795674225411102748038624615622850555653288338929821559452865770232520861076746154459265086006983357718886596850711792213653848420650742958662481025691467072969605901517608604092899243947485007038204168372853512424330864340588777524654703794039990347589717942965509255007325387905744515657495882057309833968761282696059030698644408358114868892950244554297503360158365520812486174265809879875277813305055037218442779857454433265226221104679403860256463757560475116715058437030208881498329998276749231224366841726552304798702533377887224897613921083028608718735796752714745710201332881185837959912238959000205094367468548433503293016700915174872826860940851038534810555187229482672495165736861650319482299740956435147771603219324906273124930411266131199732114430636620083665526075156084395812593881244536425322473175757252262343812417469903361491244620315868624698442590290959213087424891989974229405753558144794611767016471209957943560044455274889825732556872928300863381263675876253723004344427978492801729995092414776103928984892510963123713955397796920243951048271049724732726923207944524343715357558156363950310303382299599692858140955703463349412349693821743560203906302943347865306158300025439147535876465676456903485910895430230942276561115864867732113600899079632959957816490708642588792514669764141480972423606609788209781855389330892647553505894711395318638221452780722096247487179247301548073436733301069672149458159108856554270299869419904419583920680134478134889006612048460657559356196886544695710584891566462479486192437321788826093915052138828333849773151975473023114142202925634994209848217304351573695520698709091126735634541197676148012342979444595002816133008935331308507784982264430732263829688299472518712969659267210436382195725118835014055372008377659283407705571984630236623313785939221333972308939606963267010194086855372645363438481310978513897036298702675066896422446366349736728365714975680791010416153893952864811792086763009832831994660330531111818000855081932397462899638127726015959533168172088040586059953090125689582194183378024478290174591329207127984569172153032492177337676321827486663212195702580269946754969186874024432005935743964776947603137972831246429307428264646311852197410241889036237531787442128942372458077751297552252617207415506470492178789677054051704753990997315659270790294453472681360243495789514425248672632511234320124812966149093113383202948678371929990695592843887322334382673412736065541626280662364729985179327095938140785382143320787832383128182752348166669600487111438707154488847495641283721663516978719211165404059412324889953940201798671883363083217474192429640218561173213961763730228242459698178386380392438795753476516221792951796967190027504944729737756000198224994877812096304453732839655289214012986187489719475838535289130873608720753542640462845999328732420702288724833040340552438583891936755651341867996135488994637456216715984115923747333276406201708415387745506904276498153687127539473247780117439352668793582489971712405854003449853899712753882871211018546940808791839611127568615783437656014519896845841091326765741049397285356539534087198759113522187688435616793024902557456703757160725019028346651673835563114096248091137190077915916617088665524071876705645913553063710454176311313305219792547198529868817566367176350156408964171175699135454061466794324067226562488205126184177569112052383666329851848104841290419864598475564107241741669344594391074095466847554523071811456889320254963872506814527383594939304978951854410477596193093002588907461680735975930131837600823338181285980779916444450860603498357523794094066751754933292002462565809670926007142417477896407101759161741659955893716996194812448052905432488834452184211441675894467890268276541091959119224946494955095548022851719736977105768782850741929822653879280037099692417471899328558425111093376865496146754530088927055888226303098243916811525917966098833991757324998640952298082364135706054253603960399579534065099452780324549931083160893890100969136790770704902998707695437962537276027387001187146238832517474561632609756457602008410182725285036801719990151485849684174194990271130612486662857084299123978217078905464978448478412522111530997775965399665932224260853602494742508980492808093820043285112910981306254971656276482089562464263618199990239914396842290945132408464221615094054197449081971753922909983546436028174999364314016067305314189461802773569990174278951652276132348653712863207748809759145197384540111333629169596841226604639865563653323692642639741179254865615659823346947608615858033711376338330518660827575097941149896231260759028472536907292093569969024005101768585560385968072566419437520054855042652453774109684765802086274880240397749788574685209297489019258424097435983809255530000688602252488504866320783395858504966609606309875194442983036564789094532148117714173658775542271875177073234540807011218631735164530899586947739191188529132916745503593141008893687083088463032619940026057578358322126979526561791717871826929839062222630326091121358308286890941241823734189629104577614978241216041622980769049588014470288076355197084802818244919485102092746213979277538533339114960478161362165368026458186715492268266758614696480525248229226063728577558365675181177477492758212023485624680148807379497834223329449573230943230195138458289596458626295627532030131148027787100784773521315529148736692052212487384358205399145940294939833138518833625680741724578803028616914373937618976404707454601298391545536195419861952571481285424777229204323303832724157868549793084819313054006625322990260651350249588456538808043186927130467789794785295047524071906853684930487148646074315455316324990797407213214478337506340665266798603907454956619139593913446016190348828165528326911654770223632518813927637605288603743943097574068599841526013317764098802294261517059478592824967325264294329605793737942030132837317895311804694951880136642610290208670505220813355933677001887235556925576975501711045088816793891628606843442625162777735597319080274954834363876138844218139379664043036121453873701866613870473653570368331998585268976839541971199846063885015015766665249784112114360652763233283152796751695310902541343707241286087175318495049279548756703323501498741989329318641256555457512739197072980197895860785968588475987045252821675083224482748683465885858355696721727954931330279005146925196268858155786930851453950328794756170364856915609256472792467553814218185464834820085008868074594888987131297412843491438719695695150704683618583317839162317756796530717449140987740365575144460709260008438150878530309689213937674912680320234124001916240632383555091220420221294194769232390372036533117291111603278109550822255828743560200902457478623447290546676510556649646344376611716206781361480178575536258131564056008567674534994389602596713560198677947307455660608369962261279118861896198941224140642994150926915585536129688218464697406145352441584375387767113192698537861487221244403969603772203148056929085645574048072835007806946317724090181569128374966907889876184463799588418889570069538673033851846732033767500344676344362028427292632730207421671238899914490959208475020353325605277032004466155297778487192755476723035886635295586786377552179550854365996619730268207598050077805092932701610539660346208124281296203926295588190497240299532945942051170878210969483691696208698283967413714176574943520743305103787475588614058190911796349005289627665512709935201751823027747306582977601829693360574379590150513704753140552370524069622617469899769298878452885980995496988523056213487832301639903352590290432708905846101143130715096466127182032485950637821321973703474015775938965630885461650499912127988172292631865284720734686882679140781762207235094119595022580923325747594016889739849216188389094987847533306927089169567066745014454241789689238027663831990757472453820009271750165990595349435494735205204343690897636918407712355389256408119317328231902544437273668948001096817818736209033456819968714373436811120643399722790238320529368832584628595344273802997311053916302935125615963730701617714303075339985029920926966070314930777327851994534139797469087422674700384724266354564079165473015467435726119753740575116456464940914561357851009440400484943807854811674200677922836883746574158753288050356209420740756910440951449705826192333672944994276010925476204192157416779723658105256166368809152591863413670429866490453955521829242087180215133252714191277974181529263700112853031071806364985753355796206613981288770212136702893073008509768355523205884870732384253146568632179086487622622229855637115249035266631233569930961646075342689233503569474950140206017443155246963723852668079894110612023056304753162516793282907464368717325947642480320864738859818469116996164303201056263717664628712981161841997419231766442207306609862359365295298964936015000452351131967363259753121909879299717769876345529541252215845232020708804522180705249242925953643685980265683771733798649494093437743062708050213605495192966390450871407474288993136146276429808982653780859061430214099167572192387544527938255797377851206078514729699416259361655325962666628289529630978502416008892967599132796230385296943495043242834340840452343715872928188269402600926837209946992497569864904578543396154727961222429187973686000594540222842854995360529813789343943320821082497360266568221511001083938696691849417706014402347474741336428261326389315972584674780403647907626847099298983434371018204362367359418837326973453487664663880783934255788088750425793803069977263571268799808292154487171468083963274317285174566164189907142511369186264651983944978280910989703386063646481305619201317463442783587044953119223423337646014217386378429120579639888197218205883695566286934541913227578662584470282897400736693334218914643865444684972521804217581021520313431658156478192511700947010592580617842164469313496112744156784438767382472658251666303308611539682130058043664486924852858150348013797187217266022310216382645807449609911644649389798143716025273264015191637558911686711632228127124624095628226529469831781869238837040644716598182202316245109029590871472327692945260205680376003427869716498257608876927481401757767721091402332012464472069600649699638412239044481756560732274462256298716231397024472168153891461331483215787571411383900333557346938930483375304681761919626047277823769477141311364730522434741317858470183787132517237735541549252989682776977506030727542537588035281537383674527898739018221406782550849511337678372114804491438121376495340739415254179595201846397006924815568099588640752296309242074174414545340269132757367904931928450704780360940739065048667338195467558339611910840479310083126372973981237311064452601339218693342432351050733253129734867738992773098463410989082324151755165900998570179611887499637260972713745446520116248556176084767222859526977346281209151968214556904853851841339254006780319927194298265320279258663335339141469199737832740750053293932798228879006776100762892329542687285547760590656479183469658682774396913316214467369709907381817449245313241745939647695436207046090573282783959059383806274952735341893220533035362075570838676276269049216281072486224941338842361761861081181298073846468113583003028494070938809978146902587797502445369513300457160667168896596403729612954365452467543722273143001656920376625691579911972792798190811555578707643180969789354013283886005595869247054902986068552940746723908015892449401244712293551862590454343158935909803621781983036615071608586949449148528225324655710285604492072936035195715094565931862229716360199779206947654212599450975349364438465506933606431761308108653079805898352518726618888136581716641964263814357198121962247223669320434394952414068998251823428426411579924117619355795419636059208714283346757706684415199507285601717115132918655988802879139978951841768265391587090144779274938805738346219101699310795756717279374202967367602987556363299335142805893398654696688843260013216180826453243253894570941443713524881517534205626552822356396258061376126943645052001223607295777128989066286120197259679361775402236511040260842336415026228739848236296948143870821271866301471687115779790839093809205832294373998861657264420732470773386488756784819524013847609030730670038612785993138720177041525598465399759437155602150853763167216488632875300942221943573564981518981925979191335256499899134307818789048417141039594601758899982538633504885335917502113508652721432466049447350157826606480315226687221502522141081935465522379516389203645951839379364430627766166946787358615995529866648595489354530185963093049350068358209105148375512805970099005988819715703256904800021272081416052400822571628554255378129097265135683034625384845019596996809859365241321946756649263640869669128220224902617740183738564880010918597694290524556548241378106271540491829611842757877216340969531921820433698621252639469998312701134150349948086188153945941397855550640689656593044812364301422606583159381372688952481531819588827429125764512248140581576734022734109279048825486680255946959684239987996439461392224577115781627976858540671348029753551256069308939654937187318507137107747346795445955820896923505025712039921176632159920383279601679093360146473411891874109597817327971317318804123272118021373893098626371701009187261518632741050865971240816526399445210837704020782037565740577052989730027034474255600200802094675718020501455031093030727843604797066238700509875338692905267579666087362250514753365383618650489299965180356543338646249975653611718766568372444971009118944565208363952329912898949816146119502461746038018448558656846601237675425025337793138331426425995571693035078779242583485682164288831673736695304245517161645806728180108864679909540867719330554340122529369998441588461350651339887232236547578575578599733527422163997643840052555313945510756638680247418154882228695599734433552262239614251224851072210599237246047736701974180336722368606508498973888094113172287426095734867836624924504969712364684066869864707572255924190465715545879523287861097452629172846914963383269385609891545201833463915080702975258158779792509848334903347748334039831472152631670024563266458190132049370639151022220196175277224752702170687112925308590915058857015076967804296721671081659232587816385503302626702127181396289935880289679231910131498670683313527822261898574152091915333740973680093372907462572298045445928322959563183600077293988734297628934342224673813540505995233761617796863604743964526661723722282536851079690332517347513845606345601201861238748166919074635109766008852745514324036134002282319924448004614775111318399483349157034606866543705565511516773242703557394689581082086950471661125458973503863702067622921236648963955859623303322627651458233476403362720131306278520645052242775882779783603647508478176136241112673185211073898070509561369545038312753644440829138540402864686438200380531827653896067039784645063183823787964836970411955370777937110075511145920638716790917359389061831113556083945910216655574904510587144183068485305517351212868547225918359966993924007064355440283987227907792394018778914959629525819105429386790128372352875671276697495746903011241482347680452746075724038730386004896991239380838289789879213501816300663533698415970245101573943028771494415916937520805506607448853749186811369576426168745604047535248354443794561106119604032309675948351965720197988388020812440348460652405656810072404543431603425073321935849229971727538623825796863917999989630380666120965991223672878984138769701595896286288485575277463458098068942832291325859805410567622549587388426197773915877681153025836641917100665092348721624956731122342837377726486991104468667042591056513656998597123504702495283367525167967111403761367933663104748852140937128490672134152745876714976233677940699931406005341666765294161781173476226601031946229381574640465742524716585145081559551174899624364095917217882180573143084589593726951705168234185198538056099048724223718507670636866625996225575524507079145094264857973949155345441660288489132296969104444669485288038974394012027481349361767433594106324218193986953858041967828918811998852043879185880313378013557067061518754266372713641453908176670519780484272346347905138851046925544195782983601686127837794115309599017766785775247764512945222471967826748064624115188247943361544792552925572369661029751571410673279481289061986208401647933807530032273518364871358398905595908023512824183148078878664670570733045573834566296029203514325044125347445808991805058658134378322236500105316752851031229971007719551185687117751047598629439249147183825697841809641076380287872103815535012877639827572341511118119013120003953482791863558773699050115649894492244953717842548080979488076253772179302257988066157857154382503930844174443758097280495329879148314900431312815727099854999468992515538737402267929096433445489924595178203792861127266011348501673852481542103485448406186175885469672996369403947757238669747367556002682643825162438670713417238478085140963623330212335853299420660437390435736546733793966792797547105953160994484682569680062656643387217367511976524614947860575994621849498699876654132688046850186752891646269904115549221649258860982286628954498493746985639150700739623466715539249261450622298924920036734843924951336365937354735353736572503110881474849141585840189475004801740238795406244541872403767560424257475855114170235094548276333392123598576294269679092238962838912176999140555112276634899212907515704088188367836244413697116349849771301959218432705300862666088831292457353449205692493294452321584848590931934745764339111598520551522096620189774298527847952043207512672209943988985358625651364357054219890272217426521819258321774965220905004298871004184064333673027685973457579173493783956087911766279700523451486086351303493171057269736104559308106967985076004855189905905512230550808732418719817758131865747261310901310759633088302349872600994951427619182578243448993000639885363095169314712144811122677732189703248470840927898981230023946479158733187597699005835679642563387363227553003416161497139349245230617935906185406512227120803720280596886600701020568636803013995891711266762696077313641382287790236323262826636951401649714146905132656534646719394849770019958740125000798010917414535052074220428570941542233386346133508397654740260785828486135878186090621642676537538924640818153376840986118367675831539010250385063167051871459498388983426447665924939996221606510533990672140940450947821144155016313141032306521808526174983216635762333752301262569915808097272521696088010861180345145495498079660858463834837070410668173348045471473008786187388325864013783906558743550408270243835048675779700448651881569033799124415654602908543859442773514084257178944179790008890073983326823911196196586123332388156493933375582932275243279846646780980909811537423668977956479379444127912160057497664208268461726601215719490205011063840408207094271338665731083527520744619325455475993624631369999008917853486281489096953870466794106634122170714484508822305085060860010474116729009978876629147072259820686457169094378548227070268427880111051712861518539949001758496870990895806077333430623499279406352057471874307191414067389274624817197781706906973581347609754721562520578568206847800499423980605190892103471995705511338915929797348610850287847666410426499697109650651889296049282875263261898234536108804913840550182024965037692219994683510918573064407389328697643353795781333731392004787429535050634282842310279793338539366141542735141619805660903932401023124077992219034621037335190661404563133160878032630335031955407590836859375627560144920914410035799364543076667626546568645938200092706006319261694289781536727872032203868585065154769515838130119256509894331454171086313741457975407715223416454003116334896071940376867830442321124760394526741982625322723231851855138145522251527768087791074923683752265471941272437748823909486811388567167487958384645354693691597674619495880908337234256694617709065646078189601071796534654086749370090054901649067648906970653020042087188181128194777038699337178024399400842457825810496682054282754916605902972664348448243480880483907100841991689250148488009181083946255023978566370364522950299120220744027274890978641069924070261543468466620215071376627438614651601840806756090256872068263562011114856720993241436399800111423333610461179832634547015184919523748650070173847530174776541322426704946660522092909174504880485553236385719610933291697416554269420298167152939349594576603069074758765841312569559404754988181011906546101821210008044105739578629145899110757706931742460718195539647054768599230340040242023458310202362016311186265129876095429255075013820123046421780565208026936823977052207995131073538120785545337160422684714502884970972183967773069910450284997568783942242676506051328526843837218476006439368137723860003307488490972172316676398566715006531406172698661276272672054442720195770368374283609159704182125612771495033039095302229192235184716071053848382159226586826840535683863986166944265274301769421663839597140355158434293082940971643130501186022008411867512127872872868636226188483010296693504875702405851625327646664422225866927680260682110875079976067836721542578949301349501552959303891066366547220449536743287473361806536825088513882691910988966864053476948393702578967855126777398792372479280712986521185801296888216794117482700489052929255326666072030935327406949311180639021250484148511883444655204283338603008507849630112258164071611085828794888656995855772345021288303705159670291645837156075005736366267329732787849489414068112514653367443817207748107355181882125641742163402563630221266563416575032453364901837515166167836257439250829663631564880728170662025068747463403055661906701543748491193666439727673246238921166508266793161675564810267770834331498998003100497541157071452194989705581709227210368005570978166731451126569175336975240757329147874741980067410486746019645877594976378986395206667922263639638396752259423998012968315292170505057784985820468012125181510551162537681570197084594510303970494456566723790274337717061684966034362547431603407736663411619439978771892874793521992961746547196192469705673857538444795594707877636412639644702880159036264509906720156012643649910128444449257236607357731759848387331019411402879797693254979483639904959258623510078929797322582540383090259025840456122685241805859467751434228042156828730882699417793659732667024751687251763599805094305213187515104696722327632995324948195409793670824928700332031128056309937723808349834227882586177627579191428856690111827038556520607146507896889784518058072360957286028622039842401149377329578123226648555071710790346573337461055238744077745191294136239620896413169623174132203780939362198692222968171741303215168000424246025875590371512166348965269747615891543082327017162799336804770623175768018549380432869041622267502901878318781194887629998001752893160320886189210708747595578659385125111326556718949248894666529543988091683611843936378322589803691684394039983733216185496041755514535835650330248707758808681183986785955845877752215781098671021324721828347292440525851370122044180673122534313325073054493953044626398624196186100896483124386159901306265832069835300171230901586926263658930184339056641343785644672360227736488709361911420579490279216346917792709318144782728979453109985359926187040659462699545203245439584885269398195849278453068426320757693435040331475573651086497534241486371086543469734056222473661311193530755680235413574758169481465080667258710308686387600496589995884904971094896629927453387557083790958448347954486430914493737389756600259323390879479844363823871054745235926189762049943722572055981619796571664988289461232233656166769911406257305471018987915959537033370723532861218470376460535478350127168765446424903800458953428544907154881232132503922883072084655994065977557000415021104776284795543001314401348171528822993910395051955369278967272444792483288290172895336515268660801304072399565355815613318164431694134169654322647910763937714213831752199176139067567271770184409066034413761559702703101339695583235110948453676990528984507656815004379630495976337994054295269119003979018460210316310796144382824920576462185447442925664158746796219279807784736851469338635509732089332759019439673081341122193049939833629344511890528183288813870034963190520202059998957240553972213036987144997351311575338066215963843211578555100726284782971633811359401477569093181235976299113762753263198861104579107477118538386798177341239357084060438087088852413692670836088827767804172992614342266370955367141687990016558673673535868898988059792709867567808684080131941765154714212920091816141959233551995337407371601423538146810069397789096323830179303083053963859190762930629407517730767152972994251178628216417817433924716947688841949344587080587521506236762385513999318084170351786971446486557827199370947819084594069979460157724196298625313455735861461163058202383866178148826862718498232678157768127172457985493374123922165670889879602668050609010442851786364307649683750816478392020151106169703385008313917093652335764951443789107978487734629402151428393369594987466704795555710691634659370207866864859731294011690916289512801426620433699208555717175296657306111560723030837183187137625630151110340968758987466275344852190671281456215888217036133515177091540710749467367466817493959438984326409091755546327631467679259387647604013184833467439004681583556227583107810635861609795244869246099869477409786078709690656654663675834052075501139560287671624664989386203625451073373161587866000999808390660281137165871968929758036843113815022066411502298160716194749158937459468383646013175595106934686955883273469841503744073830245544655334022670196831371867600500419516708852185447880228996419068925597572126942947863634958390585278162512039541764580374936186787069764036300125909879553949684033847180840950503106452974525968407150842755204916726427645911479967483017232415527778843637674595685842041666568738266362467344688809774206152147939249662507837984410014516763958492468895661949892473915868710052394879588305272084300514001836398147713588817012870900267855013854411108769445701318274318519609111338856735790776155690547397098268114883947549111351409426776012656410217325581071812769604324932200691540070224872621753177314123163909159586657822508656736192285963928598711831809832509164471325873926412287429972104824952730246938320005037615435869693528690924295585728427059973887504094243186385653020472645313137319000485499067762196628415856616145824200491273974255578780672060758558848280310845615241540295745810795681824585261771135490337364193328934090627611742263408108508632064720493002383142413949775214928614913682108627337227243055895286262517320424457000186619441939149064556444977618322495260405399107603132624982240961639745584620731815769258757915335502465472951295753463339934347815802073703068657824565302767340138030046039841820766653492147245251249675405190280798380940167750164156841751133363419462089186097325392203228195025418734426284207482004330599737566429288311791258404875065951079097276758965017986591957015599227540609077848507334413079750856573345632244241732727391943014585998526791875840746023978183008745058822147310650886791592886431207938091535817299941324855624865415195357431447702226250522493428090992348403793600762378581977280692938905618721857226590014125095496236837009864279357671054569871959122751623295412451648289545513070716553032171758321652393867630651676110096065075348763393959324141267650416337891347623282799619523430580333242131731027664870065252365070938049556841882092808222164436853251495574752927572457207504474912869011024054401853059069643838674279868759610405158714020015008403652632721269986575378831774297973580171258408013393609419449054902106670279570346017939412758616733434859308065100670435975083732873279536546306069447697586104806595786567839127900451278408466235197809738878968142412934504073449404052125983951026191681367779958410355184156877119333698504435797820413170766638235514658047527519791824757162143930807227202562776355230815004333078818476237324304146403603631108494489863770569978529381394793771097540907891050375446917845743384117036792435321957800880020186477616430791794451755838093525204735276382721780277235473235497470847279148395643795041565200421835707054202420016210272183503370612871441613406618714434614753398522762648877409458810526634012344636583551139132504711253326876302433426015493820587896703362962238577861285892854663300673272586012940453219714693566221733219959878441593868069698446396129461804922631131936230537837496959216754394554535087388290884873879248510004256726735172226954742069938536598613754851278486810614016052520335998757631942272926807470882742639490082668307846566544857024776692424888728709043893601797105232173585993811062431816234704810377549833279286383109895789286571384421411421061756910553448776872241272261598131531286726366158858064123091553581174179379858675638071137823107564482600496233996749198013255701512945794115393474090798565475815092967538749243961878271071113303183902348834860534360850329066656105722522274397930105921927532524809922702415044111730107609024574074768764723534957841022435635755753591208816287702958079593342581197869036910028681893994840286173801090944802969338524581002118107815933644118915860208819577726779408177937802609142099020719157750814710750091217587123546928177327579279529298901169244223371843825470721405624751257943109105446217267823014726395796583491530082429269869049317039478543736532313832539162527233358132714512583619127513268747710069425800251497839794125102083577455628750826350276864276390040220900679271098231367074361344018262445575185290028875827327989979808605134261691768102224380112026004449249428749542731483422355794066060065419812645241707615450142826704438600010492306145748884727905609540983550085918016168364875722207264115737278852646464217556972700527869476221604967358142908182726316621473214283290533380961810995381790003660127774429795243995337768852156834834533502683673961648894437166441900838146167453787369776230275889359206760397692543422364251171467921124882550548618504768913582360141835223365646045287011836905636815138491162236993658182663222076107440475315218722289113049488640505188510836761259482977987816368155360138355126428046177604887266674272934732066165259847177195550551414233667932552380438881694224311521722165001785042619921733029997544791980414837246814423130361608394202533186349230924275761759617733813302216508072477647081612559560050406396291054471580651043586385150108744962282918326155614103032333075827378530601853013871978478459488315321509022783100433601567819261575749575918152849230647151073522460628545913286778852338983887132785924249462563138340199077608577745969540489898886871313817230839158441627761349005190383691874468222416321801890975005978515983693760507834240118151638790663597466864570460137699134001896504529713761834084035282618818496565737151228257677531830959123134115484031038425505817338526738798549093254779414818677536479016418590726262442908387671836639767814375472401747667994307730342444244415182659254432285280402068738249899405399845010514847245306268741242879152118374762984957392236246478393941078799553903000336890607651666474629499191923489368242601583152300352465813957345059984543303474268685986276222676099488447166801433439716276102217463411243847843103505400156097971435814003617846013908208312639400511032242448569699777753323211648552350770968846188759049823358251424824807973577688185900800213673399896066291274072802383615697354608489423863334731910871143977771930828866723670347059632268749716833019655662556159421485511366124276974748800057393489623332386515580780478785138566421527733864351364756644026157410481909201353610820184638436512578504079559582018691612974343855006681256391000506669733120742878839520239776800262871414405534832803829595058086548259765342490867982547809139394115046542581690737845231211339106062701877646904686746440899947079514281873502289338500459242970799309910686951184475673359863920776900612878688197095336124944494474257863208853606477177501685603322652487457162857011293187051689974694122178196444601230797526186100521337120627369029710889747975480537093914371942455100606499921975601529859710191355844769805047534271867475763180396826596252223933034829000873311790212756257046344989344787720261756756842494565575171626560265528773701032095919135561169429468520775467921787386329283556778991125984296379241737387566573484430030238688386115155058930841601886589883139409199638439973184751062688172286978500577630180550769477818409956077184675323174421295624374616973141478678850884109015665104617295487080446325571004820015514342784118057609201850249749583858200443690376850780927534129460234894482327613209324727973120902006469852379385955211158631739835938321906890277699834885250130210604933036275838866444151822327665224618336341154481807582974844170038590217368889588154229545595952740168302556012201248411545351116843703812574809267501418563710619955195701546718623873245979692626266343597814510111099404950311012302034470738551339346750500183020790860625977200746782891250239907455392224952056622232013639631090438097317248398903798729692346670864708448388396501540566355521989705485833249014059467465845804048409678040269923506268043089620967117525376187005451229113059944248823221722944895540648721302105668400555687855705216691089740169538122716466502123220158130143181034691145526393982526890197385380847748040016146043285362057603375178979749701247006498648352340033414673397819206596459643193143643134076502491923022678573193297721654093897240941073898538775349294027936582698379831035463974969545136026014158650400778052129478582536919557260495481868838235394282067207633552991588504936702128958422166717661588233558844293426382390182147498217667493828904820960235394835075798204208088885200537626046557795979857826432763399902153106624391314057958587820487956405830625094719427793948385162389825577244019186189350146975714446316117618124287504340484409582441926761060800859747948865464295440194022322705646560108183802486467462516665463527457350687399351550526302061422786108990447947891510268177761859876912194813689687485086275472974305240975556239299964537109746934362059625730863268987564776613081486924389846063749199095077583013545619999281583971825438723576987074412314756217331665961450128447265416143736192813822205144634711174408747832322157666936505999817155752554025598025410311926303187043820804176704511698850996024014420052027451886160951102915597699241974110369798858435141404097125646118411903398606974033326305613680849577242642971420558528649821847463917127163562528121483881597925690325744876791700475050198930308063534558647914114786316214147094386663466670716628715312042138287914052013064806105767422036483926162682284106364148403882733168046956090700907756177676405097129022283372602467903553152404163466270968598640964667552870151702345983422174147410447731776581865208835516429267228144078231628277270920420625725194081514198275688365868709294507009483267886760211913344734753117072001680652561269412363786103027717776742563011788041627307355905101169537520531972244429683922351485521498581718048659403716637311970806649639331395838227512270505059942087934544631377857905273391928221505661312765805827967496795616790207148004750485750374764567371468403431335097735460151276815948116289171247322822336199603420760140464147043669382893975777171696107296057629489338417960347248045350173916599086336526305438837326431782197762975409986782633934340863029709527926662214824674681645035414778242060872080938345401344259189472833101092211827981906684198955708067180138706917600096173652710942489776412408383895620499465509866633658417090914745753899765361409516337989471017954144609483536930126368870938740831425135035146334426813181521617036592423700844746762294228309124252337933116099250380774314923285751098612112389966692891041754832512401985375954483530137741823564293425285722771877802569334113413301658506820271321935624273121592047967446841666596848111988339931577640247405248644102184436897547198344260773781511479048956647115890083839273138838769882009362313717374975768939375130097052873846965182441481062217930467042521592006924188750703018297525992027366975027699154582407187433130647653056539948303691305442857952302367310098774393184463355452963407451201828870764806567662230982251300700471279697395681361475852187227989742352828774607600832734544087192567150815002375902504482238404594120915314669520258784878057772915345982693345205240384231111352442243669218800756079218277263334071246936851789866225139667277248544132841248256676377541521725552886959760302167054203333731549886765320669426350190115820178063459414873417678176510319277713261433427898880959536467028328835621905502444223246108517957997681630834554200090104271981435752954602252971473834335251427588150640284835252405691654216682750427041558534881554477293001417125655176077657629019075205820520121513859613767817961036420495440805797987014009037108728401008045784622989181046789036144659871502212113615160839827319752052774564315968060502916883673621295075620781731054761450137306302508638199855034331015328661071216308909052116514981501236117083819932211811992538500836880093641893156386197505762021071846920673636381670053874286256397507238964776747766079601445939167195237378034948904195360458627696924778592488501484025512357842881258663414597702579592966844271249706583770703860018881910540551203663780246331670892375107192581589310126914439604627822672797100882550267636621694880088974905158989167379830157107564313110848851583695553295747631069800649162675103851413798350267742793708868075240790513850899477584090222114201608452130491789033766721590374138152121289509042069777742739068140112012130847830368593071523477173478870449029581175523736470617315217608311423018066992853758468848298756874023271185359414212964250449703608983180810314331527217477809483662601504176405614005745277273325150103992296995905966241971310764988326107599110322391966343274461213117646765748265149647496852799648209677883071119170222942567467018742498493558239108536302605880276312678151742969638503738408173770198610818227496509481475403631414759955425114234774257920881079653592093761572358713800700453983855397725233079985862594717225877418405550026780258303738422277809739517409531512402957464330650049435013267663843778484285579208646865314459603065485876748256096020049658271379640334291669448955272720506106055557388124700360392169311343575818241705189714181619182484417983617450723601223441892974932186792291806479380519395520774371378589449270832652398481315905690122805350999950968219293240709548401265076554463170370431300785895576184085975892073562658112229154572541716556559307152661793973417594558475757226823609447605541600270505832587205339201173753604338807618264386192877931450985536323782076294020271162252589397128728034911382953791877913368721191789614954548240429079086319789843077660357385610761510216493384470348341544829504887770007130528447573569025424116932478361739614067426224995175630434686423399602696491761907065778314838388752701032594780816566613938879084084033336554143529547619304952966044843215297873546600256238768675253124254959315964827084868463141427717030453594809564655343620352993568136156564888479234401986335593102281649694974419374899158681868596673524475424682765166151624919566764261867173597271095561295165024498377789984487820678574088017094250920102670865069135655506862241657180990700700918906752703438039819033742658042645831371948258572185502986502569745504511684528562581414206912574324137804212462823925465452838626414956463324602213532077251788754831463081440757976296420564134947378722117084458085366177581597412983231285466837795359795802109869430575955279950080114787005905726615608494687089461290208806301547642438752840694461933151343110651943773204875833821312096323168030693792584788477532966553766604111318071414282849042527346616742055654412943608365506691609347680459981412523392748705110774433655961946821970561707763377889687839003665556590081635166231422978456937475844954152453717557786987686210595833755658097759447570708345268668183022665137530944588510808833181459642069226294408950377213633345361756549770012369158445790810040187773747787607312716199919391503456848992693636505019654379229488133048409108655202104817643887278188026371176387745196869386535018030998506351327052177918841223948437900428696879073850421740863050629945970173838504927425995223706590127051979609752878094579350002496328873629441133876651676189466491279133144619893226209335269090073419367650901982264327916862570291208617771400889720392312304304230197122547706890629074116129283844594375829845173768886536884047362394084823037167954820372654153614021871551376527697118893516261647354645062548998790560758708961782077597863953725122779376400474912179491989103076058271608334733992930537683374478381713412536203971505961222116456404125375736550384146030412115809373295465776565795465725217999742358748695170488659488303632900628282353152641493204023717054100648980741324427717677567645463507575979869364420285951918141910211822725472575587912175008843201353341312610370607042742621112451715422887078407737124166549724538086607880593055685397808938083284605194943279155826588914025018302357822854850647437621000471603965106496829752399049134587413620898042618467916580714616375892720028543806130520795975614703504561566796445959899419996810796752652052325599376652494238265704638830038003075742138067908564312569059307583929620317491640147805176577055818053437787508020775614669486804345767075280136552850702773361738539445719728646425320614513858629757427816698570244944006535653789651492341114100742949251798940939724640851330757770339162840383375032170203683649291096811408985597711026419217875543022202295292354915710762696641016443139300637387295438096987380629208689246983526126525897039764617941674773100487343771387369439556463069749616608530074928697594140726247039862488313945898120983664265291153019829753085319557410819335274981743547857439232958897914597526182023296656500786139201742568082721461629407739188782731183173576673980551387646843689559741368449151093461700939402070777357045247157966537132756625414790961971527134578738082124152577711603299231602350892760370362336086725655740568688027895887033481893091556829291525265575304509183882504235838998931644647357553856196064936360478834250330128074416308001841285591264112753685236196971463213289246063665418813495317226209977885545395312052902369656704596542108220733826175807478447617761816663744290295819670354666238667470819421013781840605160191320454842345781277417025814171818878334436413374546681178806542292793594767113587123965156966046631210152202560356921907380413568515427285954559554267229314567550553147183338110713599040412549416338315310764069335689827107995565924213700945417354484004578878537909167422648417998947709552998760921546408273065778921820512565313296056861797889622849088358996099736904326652104343744663723819710609528565751052880665160472495348664640971781297744331169102887748198582909505344542289576217717965191618539036087662103003368229851946787616836252786006144438926903568819576105674007964865495773599109682245415563101316092921319750604985531372099177224774478468510841022399893000246105338561949527714917559005484495544338405396790432708901621661940996189676507419472302090991554915886863773220533052699631483873527763456647422762287505691590713832436339593777637332862523877800689934502615456046489197699558007714329697858889490610343542269501316587731010994075503997645853801059679596836123812781560019009227738693427290127503122086203129850171354898863439481771009417487354623760437966602404174776337058743648920234458728448347957435949801031300785171080832955560050432799171578804293722654567804994713537386055731665966999120355622814944035408627038862252883652390537759403658732466360798959978391447065659860586533747090032374273311473499016093490415010645525217381950385542183709423934974602857248802257949489328890213749515907647650000342931299301692748691089755718993113999633338294992147355126121673007924478144966863783437902995556122227751957023265627050847616185327507843131935506728678603424653693638145032145487366815451101900638624151067167421729685975233910776036528450661541649919527366001337993628016724832940024429509953093986938969046527832279306417157247207032766152926381287138755925247620171913666535167390012843631942160770785704277284678927545740894148101480482525318833130653667819307344541885668350778191816748819745677978123239042241037197247151580881752125003887905067597573562339341696273496665022572339940684507219763300322809137800530348314465493751736664123654765345087325802824053230113922481246384189411939700935257584827891953447839473446320558162987305928660613881851083838188565453417664532738692084486492384712327857287839737304129601388657554700425354114567619781408869325989015923083842766091333374305651665118538211963758588669023916447050397264803948107209738142451192696806494631457243171324733670670649450130916959602709764851626138121452311422924863855186501503313455197292156883646613686151497916436497237340471066785702835035320146543848392764058762008286438530144658432809641577826447244574409259658396790472581599474871763404337616256768127976627468728313120211819949314409878634644738576060478028433105024069047441975819998195066798379886513544612380178812627387153331019902597003101674292651379537186402065012832849711560199488110451411634244617987081238785191591148571352225089558579244351639540374343029494293396072070894995683109259025209205231866820277954763311534759499868092154150178280385998319835947050463060814110357755637991699524298391442745863035031895687710365123533152121703888431425514805977821037979983980962731703088347727361998500784164812393685074420770438081622653618237038214017032581589194786245305434847340409444255900359201983149880279226987182124128985762793890608979261534531858302595582803544432631626676097260211986370875043623109994603493942889848595365522683367978238659572404211056824639304646250551175108454119745518402359563542055951550999696543500469447148083685332069295419032036008386795849061987794247600068620353853956084270295403535504972649203341365383153153141041564672628005774216075693022086521588179626632042703422050134989994436730381698158730128397590061167304954878862511300356475453712773015762636275766588155403341775603598255797972737980481348103894132701097823517395920954293007439172652206228245805407637372384760708325470998256489263194545446512500594821175577141494917289660193995564323011418290181739456562132897297235502110294838895665302919513292635245931448321978710717296954646436154370201042861475456414966789336969270589494334416113131150782037117932222578758666460894416116240178261855571951984372561195919199552575373603749537876577595296853086033843903011722230485902869911932702220021262176059243927883806771061752528525959369576122955926170767842481768319189799199553286865699693341399142548250672448927521301039788044279571282339322075576203433289562929184328855714295190520795847958585106900145088359230915952217082680640151749508282956661022626484912356254121946670973252932566035616568584311184621404323093400114371965741264539131410111069476226427390795275359884961311653195146999287564059813912338374305583693691491389523900676578445816874263856769389538991924421618906350655479672058723254423920131436965727103073382085845506210223785834576745965096274339972834820628964537202074638328806398248728478752711045486255311343727115317354757553624031713062627810469983105077439389961896448616002223805354252006034160177290891884467894256485396814856501591529027279658129385338760432709183346512728544173130360798700586648799468788774108410428460639571402701242952969497852312714956893197868570346709283807478617125708831353460103865943949296453356889416936417516126526863462620969664051316903334295354047536107877357939063503144463433009970008950642677344431574015243237085726903961535068982541849189111295482561448948849033753976902127097336865620470767371479217277631086679996060772537876559934735555765396880282235243571303529508876685626684160517624286623787133709302752100092300281055966394117807108541038928708729476263925091005469692528009679362145648685231390534507741157752060147037435761709126888655161900381829403409675163900021081231470756111956947955128072575747564621570478540339813673858204928750547588244490887010031793586156021195804588859191630495441525494938325411892186681553613811588823486734848012199260397333523077371880647165441213468211143006315857095867054895470369673357400363270123449247329160106453466221545178776829444792577879423172166454694457515760890454935959307368250619529242924145265076485890339690878333942948206170513565989630804881492491973982987073723546568914398818972874872170034168582569194765687236205878449541528340618121324728807223387214786904921199259456335080551086877611356477309059303902355563723784370456349934767719851226045932580544886383599641490002316424437311209362647835422332841660272479122184006066805865948789938154668744213825648514358643115077512253859451343343505537731496366379975289054844627615016944009103892935546794570349048449294972829617659750725063241418537712155698691471438636280307454873036840173820508597213396260568143760186503207891421311451539447206454544162169123688370598785297969131770091704012290357116428629372198235268240143305455862445235151832404061976837964088744542642517831855712950438857569512787234387434751197006852567120653752403901838932677451428610322537178013865020279209484754364774028815800904263628994289328961985821772408268217600537969878365075590294732732097756520190024670132051146089673925416974278688303292465965446294607443099021131320445767595927580004591398336169003757725218279863326934388665771139521963790480748255117333429039124048533395953328884610762321471964396745884484775072520264175921191834319938436786085781515145240556104469645860950881030070849248468751188579685439139765181186058376331257533380348681617573054022231295969839704618775136848391530803545961809689273522047284275305318613078969988225854400033310338584564629757070459177585113675009911571318141325835725871404520090995017052876222244516844957496936746862029271425326694100212879043729534189570732826383524274956359823214807580922130996952169755073068881963696587929972036401899674011924297686811584223002820859648151510714380323779424186390734945059588676870542695896434973720845904333513384893069664886898407095061066677482065262192275032592222415051326532542146814866709674283808573349975731385030378455881636424183207563182172517027871542160181705547060534941520702732364725454892594926274235819320414728589485515527303479550972853191979867645992269799687046717269950557874445554710330507934978643389531339404979158517694959502372528454986297548132906400777233943817132787511251238142462096266628391595289760848721138162098736933440336354052721024045446006936094813085567911902135630527309217317756671186878596899541021991440433163295718447619417190598600031906801649829123488825941646457064928866649565757049758126173625665223998381501067956350986954373273716925555983517170873674758620685620027544863219037398369375087035901397728444665309245422267046347292642592488461813815668599237403693045245774034101157477714151821875151243142722904121111634110561666381071416468924728143476760577254233645991587770825931081734049158880989763969458455370452508304723305664840565358192990152003612974661727211422157401803287097137664782279234746218991480134660258434850769040010970667570699618271558849473320826596825949097647007966159210854803327188326288793981871631402424955088481049638746193161215390167486945655857927507878365244018837612790326858910062368798007197752712231165306972868606117798019828297958159866421519553751538143528080372926207881351366508365145546854705193476294401171678059154300059943249813516889305604371977252453831030311541918266268352949826453608770796366990353324801780442398982054750378383634630228057081150616863141193947978903582312672273062001322747056033604714689903807015742892277215222121127387487613717478346786881292341291451923884705258337229942638828783413100929526461728332334108353522103562432746523590202853070208736911363761975362010008635188113501144137627884639220711816727614572759210686605193854304055675291573185088450004803598538231329196654878847619104091939380947806829196203442204805752294014036310417218448235616712399246064515747915936335167999104267703854716166992659280744246290634711323772910181867894160831154062698423929827291141067802140109187120069187248286610399979773191466999948179963087617044880875000200897817746326701759339505082335877628668967501484607903460213054658964930968294221341538174604905329666539424156835807669595697092021303589919485975933597076675360020741603981001033998899772425840949708691434755308938928347426694903381577864052024228888735851249325279281320320637267538821486981661523326584237786996918036964603099855592596036572162751121596992393516904810748354896317372938491809651780626176609932862466348551535889943602389003584063366439437211712951659931765222807528810789342359666329232396563008136692288589981334983915198684745054862387563278473017541273608338568234302544845029986428693591090829524823159006706040345995569260349239731904965280282709031563552487950744683773501882408266893496652818635686484080775831580678327084515897872165920388402504390454033597075518053530014437856789523706182915100397279806866647959388473879864779870648242561673170934402064820944066303900098833060645643525915636646462833129573455799315319485965436772475611754268788968759380495518215469626641162878127082088219612432360498171144706920536232274160499641751473900537413455007496939528495836166277874190405015760865115523478284637744852423606344964307321679674540841553257145125862205456548294783711246017294140116997529853579675194987970662642109446697623183578791768632851224653039311576366956340954375071918761331060116551605299317446830741261631427162240736960353691491680807306003515491151271842572377355019793312202371202901137277050855182508087360059054773175515644970422543216450299292144232030819409928760883102905190558897230909583119763588504287905122668722436097724574017024080527940581698002854318383546156026266113979984878735759713564865150239241814659923409948586240436000346627631461778503903755840493813284028428371303803560317401427548737491105846979233626375815605403972943193502863036921626535863494825886422024602559290988716961977827589849102707200775434572319614848691496955314270751733184998340934046722655855484057155983932677708510292211821722343635002496703577876906544901995439245525816290326617164481155146114939130087360395646688086403719443627222756498795129689016896293897325341221243071849115623033550628688461622206295399899655900483888369055772008192503236656379070384649162491456772282895155744317399807351020148884366512909095914371626264324241815977877863796300179532724076094351593907504773242844173791527074666912539658399036703606709954733674182453219372941500811126886145924106926765849846905156644421841349513384259797266313235629224469179755361284416270376860326402809108367109728233787315699192109393832938100085089868357767323775508763849079480395200287787257360435358477888819550980799320096440388424744091166148546837335888989000807022397540177955615844523948623759835179784142212220112359751044457205948774729670145675290124986974837991965718962327678345249899976353851251467399022330619375583112732941157629615337649955539771442138477288974218337952003415753049439827019839850251249606756419757999347780030689639153670307844405163074769557509085109711011803481871448117231240421259662515578570475344376393822350900334096390470505190903452200911511512180697565544200914563527775992239508716224792081308677613192028717814639558468786603138296903056274278554638394637882085108023610621027404105915642608604030278214375881112091554636928870159853741356398776799502559613099051812679505667780833662969452232926527903828494934219954185643380246632494968547181071448872603064270007860120884752133233221494475959119191869113075072974945580681548987273392153128525408421503796756458048301447240146906615918413403168867540204754616175700047850564316929603910940852221151345529739052062949247428836368960895942326997676824803250631681923228111833333857777758447808948778105602771102323876066881931942059726686302030016696325954560229739830602566253633795403567109974358098221972417673036451660825061366948389076015384629823568135543186623981465471934472770171744224078604248500843490852843370078548476119198459221823410872165839412952656570057505689098235253631281279277476790164617180297429666357817559331901988825788026233821881909059811647743346898344627582445399177066621752390289582780741800539531481390598851848872197006004371521620649645830172765461070695033524791813563533234257363391179128335956945646759952492665843844933164008321891284011842675727159662642605775848724705263351052895927601298809645044485456011900261663121310049319330505523153622115770741069589481605390568055071629330835034515506871035966673000586747479371826217783688693932522840762927837595548955838795119876190369455344001199816539064319133954969122651705897509143246996202774034855004164402114496219282500702111011907293836638291401852425766666202695294518288228084718886090768019560326770834302727516735483504116446128255471466395342582249471798238496069928282567397838061593148147794776336578768254190088508553876630978820423196378827277431127234949746697739111249085650332104169702315784452232808150727719935745659949120840882517949397785667047100299373776442056652222564492406152037504367411978940037698845466448098814297591501703573855944156808597280132125120646251006248616613573902251272701812018981316060830343189845453516974499022367057202313053248198364147815685242152077712769160552933345442016910581705355127237025725366433703024491295004639553738578608369524156167836429462982074748809197241480383667507017785340415829351708381766181883449676892127360511609181793329084167468087024121535732315141761353614749721971312176704690482766741749525212609026614263960603581265623476851825961498536037467299178825074001062413327846929315999624874021365984400865608911742690267860071566695996798221577452441903229514026045931271750170351874381303238790725911547494552597029734303737604468874734139061866584461436311273635247086204911448483175960019055119225954911395323891152996551353527857402025733129596200350553865213046092190330342617038444414260933030573093224611240368173407435564915752737998312282327864313987083620162183622508573329800480703165574895809996602082045010951175833998525632947203534532771841886070174330565509006110175190724758593884838097597322509377689928752208503995681608298747999808328572589369099554962622573794121947148773608296962279588354981816142875916855617075767727146363107608397107867769668503739057589967344079788606361605091322218339032188076909144196298589206981331025485505004817730292309036251225022062521525952995128293087121166022680771239142533375273831095483461080417889813210155444337929827602503362668325812430448925866224847568461911973472618432901330587447101568764615501194477930036292429145019607526810944712388498398487690983781893339453302200824913542546044718225412153610130019153663984513277378404607876349371081665049253133564948385092470088683054012190229114048713864306396228773506747607235933889851749743503358494652627026406272692319748457725616743137117301864888062764692633114404793724669423737088710031384735631812425957913710150376853218111503985003851702665476018867847359837244305192902461803198795472482612319310363732533914732250641207959899518037155189574384743971489206605764144866756081188441401393523375132208084912647306441133251211464320065919102521160819057950830471772025370106955327959170157782800041958378485657650138991627168483359494607607894698652549772138817290789710129412876123241909275343520136178345254531818199419490239750462142229005251682568579064244953407649058020794389400873846431973053555044887167182509530966086319459634722057599230564712586199944554344832340233773928601974973663426768090706123497466888759471568103355886006734999658349309379753515196823669111763650555535575703612306302274195649415310072852237688845375210341784371466221165867123657330111546185896408908401022111528989789593234291547862177391226850389267723019401293977846628171214308757386558739355789291959350134274093719263052068216121571457964823797453896206332229945906491508925371398696694538416495652835595893850518988210074182849877113563123934761846169007441835572775154720773279735047967094564191809346969381747752063465522906544480424864442045351714767619776850810755741917661921355908394900333089436831041313652173447885610301549903012710498673948219802002195339427925480892813458783357974748401123220962836174955720887271573758162814632103295285979796956240911182225529816106956165400354841483206778251150797295737656824438814862649502347935343111677859240923035354652211777398891822444439913224837872762285597409637511116096641522137672304210490422126867445029256683796991967535365912104288174336342060580205469744556931614455380398761151964652375744423412877014237409531526081921375950139477171466863379380059885990377660032416839914474945464383415144740623767742327505031478613002853547445883364980519005080340098433847732396407568801657783182675347774892927020098988740351288068191174887684619615421190006301610533076911002448167567476265883577918436770355519909036777105847072906032203522521772106415943044243267620427506929614582817942374575860931990331967843487649137746825275516778022297617729094918312161063377880786303666294429884846579042590856527073657175310544618976758934710708362928381081391338779696162153296345851518473660531194707323552461197642409135158929684474276645203212304189627414388741686375071093312800104690838000193356703310077713670454199305077326599028923342736261486794701065901066562546016383646125589917495099432148052947621604187139679550565614121696588663298210409025992762956715119332593688618873219395492852502761915475611521242055907802386023121727233085897567748679208132149641754266199431074879189152968585051737959337888899754568760049112147013534426534405292319521148683002525627862431375021318337253521891248629070774721435185653039877809494915151707209847304358541862679435950948556148515096716342278617451613379630493320840476739212356627259688598149343199453582576643717367858057483992993074840452007365977126874764409685303703956900299765959176188263952693306217406556393848248630137365276998431732796919988204531242574397249686502170673866240201257378117936910408290008717388380661368707885716636404150436240885328144443036718567026377509843688683748335063313985488558808142120941324805843528076320269215537692802103910422880372234112751456916338538500672647766446336667853062171818868258963897345828388597803633685519681975887629785316230132326902301938474466540805258452380012503123193338623662414641595611605468654524736219412391260045467963099752719455148203405208356740003901010201828492906330725623561446578822776966185244888064813525763579510928141300571581850765372901743766375772226138844215512750486502251919576569232758000113843167590843128364244464019240444389617397037315141870220138091539967506096842547310313328337690126366018968136979988685240667764353248236152837815061203307024405126939585873912250152281236871823027257975333129182843195130950758417273311098093048758585983948115524795077882902505060807564022992972093954934061007820562853279437226979110521072995843791021794887944586742977858053153579358002853689813940200659212379437864764824942129815787668841569114276011432788055691063437607161022165936782590813415383959277058806298238153905002866387443853398641218426628183634994530560330349664419844665007274271845029964881144873022584819431939697327895929925733657456782611569639795155251212011479683366564542884439362706946772017477334569548106551213099065171515796530712215693120761097735738637627557305420890083291624447393184413779076272564020569594036034288963616277958330331742452904495169189794198106618195344793281070568598452588675486058362907937927933107052867463315410027297057709782233203355134986243105550039423010378674652086088057071062948879514633578585864284815644145869384834124751551153138882368995711730125538927420527645766560781939497822995202810495313595338946141133413141841399212954581402110086683621300221873764185799149323845197299129278950693496722277060544265694401463560855593961767630589209139320638274172991848245594362821797133855861869226900744440546049038413034278394103781441702465405965087769553097006053401640384977008757476752700451041991302860529434918102903177358896933663939989337760854480175841087418038932812975558577239048975865248658186038768971979985038910946405952486801245064075837756252437471005930865990852162625867036257340226895706871310326230630882913361791891440515155128773740971452419633444143263636105914154837858013432977126574811149926343452738593618447866232034742538952290633451808924142273849396178655800573335360109041404389753635545566951605783993689215760095515168859530983694427751584431252137393851477431020090339323817084008647466753235250883673386862178399405315226415649863114323757430788566890698543729330218955863659597567622549691848525854834820304024949202645796859507845986533347162999774947263053133857213692164675006139102697033792468592079917306641076960818310756652205385455551740505152655080838523278199277386705400054972798311518484522682657143770768547361653398063908752915869382144599441266609558616039225372557374192988733503730320850838551099030376363462121317431019857277464864857187707857312008037132538650903189383641656417559622039898137549734234907852848802592293762697608063957087198907197581177986851896715999521495418494014868252005919933642632818286208929756594855084367291343581583885059250564759569460207050284082872893308684845069109874608486206029086050590344972039240829399068332636341000548717697974807985270593866625865463011732801092780050340559592747537359830641472357055657800912537281635692468332889579017081264265836862524945860500405657280201989253056347665563433669269202997513380910829660378182348856821650782556456127276029535940226360543368123998709807728026677827358168410119970714714291387940344144320678110175273669233456794318108301620658933020336261604573168696268809554339193933744527120115472380873973537428814545925026772845700218866085887588304067475021319784420031981994713890193043973360934014420186521065788933027089118886154851163254672164577885253683289480655523681783916065930704727987796065587643081102453368122107655727437896601048867979493622827954475477182466240838959023201523488334021955875915411238702855106807053653695954570287501924000232375842598254976157327277407782622171915287095141660007998308919866501870445881595104462902038498990417348643822501319682677043646478179344412561894555313127521453226884063632577621742998311727808599302728418976489712361747270684846864599718652295864254477276033715376702134503544970269762448534189088606913486364439423341213778161461882017060195768951283309371145238541924401526450446875335326572822820350470890402244429483560797911500874552110662479659872927991603213866250242622299765861295027418899357514135409032510892386034097525323225871680197258254433878963614490396005397726621384901561732285832131485035901336945129964960321077561123066407763972805007406689259785612398320859097772017617238577814867245645596712116286473634053308380288689276339631479695813616141688755990422543710474860029881634869775009392577642383587967308138737839007094366376364392544005047198357999957125374295861047760788630054251788878703215166911387256518847427114304257400888541537008221066512720918334645024977755815111576485137898735053963962829353481141491618597464958612510373153782520193624374436025301906224941301038006517352144897187122840008329271740751536094738338339874816834539277469616848234281634022727905808546864700435227677972186085385832759145341273931423714177840046219857107226206484032772452342749680548814633068176796272381856077704340645720296747303551135502874370229988752847145468849847158312851287102532936010443999422906579891067265357041062889302448664470249426383301751884013856433193899995927623621460626523421411113459503051151888507154581445279588782994497712785063243857963110112585613994874228905896731790421057239016945634691110170583238307596139891224206088712998395798909590454294629795815005336104341122459029370345116843767818140165838727188373580308839352021282528843116297431556005674240449044203712924961261496501175432414256823514518229024710928561934305426862530886753767139151067422678259875185081816434892941494670202708525303944452854649163342504401769089042021963122481927975652922175188780468574796098272141530449492722745424159037222125886374299685780005421156384272550832866419708416965191710016219736709667056823939173050988041282446784413435739658824353947825787149165741190696507379765641007024423778295036578953557884749947031838653298807601810653699118223589945794671828709761173624727320364585268058814660195705128232689324874459169092144423820526508161292312875412199866547443168992976713595121086332383557696055239820118716236434841947359682285089100184350309747363442024454443063490975240108274067836085459077058833190533509873911788268323233378225136460526427364536310516951248481010730883642858912518925403049132412464843078493489266352026319907999485413817342356824711621647720507356215599525226608092545847453210168124798497233075563870836957272877242422976807648149345327327789413495693816548403554315737968006576776163519643551074595838516711273015501565380015344581679445383276939402426481699444731157315163292037092314425351506432539252557979032642371119965536780276693678239277632748988948594701737272515282939101899154047145680473067094598182784029679878798843724990887014935559713340566486846704969900405954642147263384607199362946922512198815772173054798965701399046968078523668209145287691964299705945042605937255360484282908683676264523767845755582619173746231470395574487209179519483984222293377625156284531404172987994565351967790552441135690471265751316390735828229377616808181836967043844852699491665395182488521760697644059198332640222165009483470105352291798691707456892850506259320148599943393722828929344473028599859327668034160892500172348116020654222471361383474982688999826855727071098903149593149900433677576745045951532671762368722195884804871263660024059283007363246747636875303491991720673499158907939623095198936466265701544491285723684135680539247073228692971172351198587291027164443740927048046855217011611865193339817130898467735150879270234807205021644427720547777579768891560428655114936721182552801820551829007083179166120438486500624464683635938779006200832096466386713897438051137810385106306740623169428946699298882661960697931582647106207119141132617307726794692638784861244463646638730137681097469514432754370334287475647728996667672740317326096195866170677949404501813562626480901843246468824843192813091294892989993047052771102709428141205385748211138972861346569424953694582564121593508080980150973140618625358780441612227171139590735170126583709888265621162842953141343576961928918535583393303603462836676372660557124920667664585411821937216153264606838520359506143082323573369128969842887990251088085964597434012547364448312358815961526602290962213998815946345026315008504900771272157885182488300993179548148094964279913551009169504251006533156345349575124344636490153804864843340656518322284629842490999735733956523378185467778939174571798395943971623186777683671329808486899750008470973119821965791302066731540093952207568110182194604503620158621347952540559323994301289227930122563067482861217242124551542520886140688633763456083409824643523861523670877429210405828431021164509962880533631429278075597320322421008840672237921428672080406309680347825278612499176741722440363156871512977821951084530231555380748944318339576726053496493324063604566555116269708023456020473723311457601756042869091099199817095977123026938197854471645736242252075457204028113315211480534657871149995416528742027424319312020773340244116369381246555414554443632691421371013141958947473753819031266440286336407725857544680389273370725147910465118026636875261368425356155462137031436482773715554426048185382608420851350799377590328200455222806571362785027296278659013708235711205467318308431514690251224430872390346520826718677343884920863958060280892936680381196822949208092703777245182131421411902147392560980792990221291002788272391914871528568103399648874864860054793635320039057426022491038601655662658507336028853311363480903591187932439943559692797418184161599116131866715704476661780206839738740578918473599211807980989597130680963266225923966950210603319038060382864789477936732489618333017366259475786477792372575761107304564631747544224283903110770496412975466773203268190756785454061903325300279801024935414236047166684423429336885660653973490187789484095330642155772595306101156234497864207276302906423439407937604934797333056367114573882600962809108974222269493481810290052423793116313303009490310741497540985281903138594523421741177042132592186131832598462375458830074789654852464332884511069580484143568063373411697851810905259765927881321284231562170743465337207978339001920971496153810452831901291864451133121122272706733859064854563198568091661663304344124115686125735530197501570083161520117936551702821672669392245488060822587921546305585836267783885089194176450019475358230364013126284213883120226559921050267946650295091255959831193595097697180312531419048144815232121067117226603393745318579280932527103108873130483100489082736147712703858197001042956714370149537780502441195705579414163552725037126097499474858284658853547095184683284647792950204468070060988880819941847859027152640743489359960544369855932381814244982053601706863945282313042464410260311619275684837713073876189972972983014693342895381767377065159283279938625624578169777884121759066477493876437562621701238352118937910631846182147820249783208921316308531359881782198604053442760479015478518553822534711195532557530208555073393170189671350196913757344941710549768289885724880866504484397912217567130800205682648000932568605282708868553078491729095755656074428527100044724066018010578254193621550285381078173536494058929513692841614355175479337127121352521937011162115513825328481429050104615014110503234320308406281956181502587528767279087613017026562749993932747649039774589260216873954377043960776547401953015745501758390017637150745965961052207137995263876983980639415520243945884832514387185370658993275933047908316799560507702231690808302684986847614638317035115016861222138727387675596508545394784190249376380954771205332693689277487114082637332293108289831413070481811289819442688379455537121527667216778221971174725252489812995508845852723374728214476434917553522471585533712788610602236197171937549239656631947607887540882633859398912856807366399574907295402487978530686928979820255767809490785997584947077935289865118587048049482526205623973864746212665538691550257327265130985213855702521051894641670924375755277514624983437288872187813243957110930630385221403673586511610833729667261500725758301407609582183821249491767545633049904929933526769210058219300809323673446011145705840448441005090419745571816358805827225816120930541057667284839435763602987647656215489922421640888441827597118586680933546949708168483179711794093330030186243320951200259974571945566546849635761390964309749615678913028370906356570695165632775229916542055669286797301073486911598647766317736832685338106944793181558121652041088306998641572031921700103773159190722004251386796355322745298468133388422828230052170326441765059443783195366328757647419154956228839801931018466099914891845183094231074873772655028454255888380882502175779380869462688698727190474888115550422424937348911189527703987757293375395462247606185337884022516046557245528621654064734139441447642315923064038806878917540924460181157160604317456118268118187430686048735725081950048669266188741252747009316650721523140311356479088710009247606392078772843432690715703013331429516217904764713460909660615196354374733952100091204273975984554971502167568709757634929788832790213008218571025285636858805635331020183519232189802553242931594462291470596804413628846989317404991841244513132736126928596489600084952042427857981099763050332970205527898332315531874244914699801617110188813323211664759819277693699333855787750746240981984494353671521792295103698746066890050897891697265892455578994558763079100756422963099533564258700912595279491917113936498741626986044886289271584475299944940204582269621071986855392980742013225170415788766190820434076432574745055645266667247208145059248338249693642832156192957145048891469866928241532434645576854941730531343706894188195066553395021112045089377741186860944129536117117036370600915148991880032156080299546237372573324770202490244866846220535229079672566287144370451984634442910021645962651635676501662000596224318178380312975533406026424025401283949636743774855757489648456583398142518984409479851281820188608353224207418246360810238958631654434597639072904246220121309728110194802977528499899340755170464126899728195604603316368742948079564657217025505679997929678196725613703574404479113469477909604416763618430340787202843049522809624424247767475792363634542276039692688793374998885997643684233400867283991224722319852155404362823665322424774683185288998343778185154575513075913040162220027210166593188684967334590678947179950502050983599082812720600839709870053810599337559510645622872947353351672090527710697155441168876363725839646308636587727319654660829821034255982078118237881757984034064256459884741442128771227994899077139929877974778179726542430095185755164815356701868330200797432884801935216676172755901560649847425388785855262280052510198103265747681824235947831113901843172267526090118066254505185151696418935487543035109836161993953182815597972648152172319405776760647723436631852946317826458214190808433023802404842619567644659076451759644104959608302711553143027787966632429878223721872552908636364674587953966447668801689167045879231322558809959774008168571156407886125492622959688111259096711979094590489516586118292806716612078371460792336830890687782362129472184635339262359165214266469333524856594950600914750762249440652013028483833831135603843862053034179456598293361846452253466404252648880212055931296655625164792737876806417697165277805066939614513430200077861547415606873860435980717256476070694705422054889790325020099186973188776463867547590752264042853087704408365051199402893862180946007887274693541871487855911334845825850163018928703249422432627912447300728930791977702381259537479053057307504690199497098765197380149945464105842380143159095026120759789105979987755530603018310370398534893715184137604078592703285121093387685036143606080416051918990566321894229402042330752544379441410180163990118670952573195294245174812981048387449984847497117042198321977190952483372325174074786670258798687480025508908862230532587664832304589546886413921405390622829039238991143421550372866066703843549831737671452713701079080974506198019715931707097175693420472175568613624912850273932306269268856781388347704840575549183528963282979510926736588787037681885653721867557677264773304094763966108964636818632317070495147092644341427333835984876693774154729672533435184089857656129596896879042604233388862808164908066149324892381715218551419392263214071667479232282771676074220983301257718761839224504925397970275226810893886719999347965520941361870627204934509393375410222472943959528966371711767530817496624653242452285363675157130406316946924702380962517199425805913290798257194511950671280535720075544870293792880961802571079448445090794252669345094733665073939081595695924005436016083572661427284761902986015961512971124681399742655252085366301099442031642102976635243246237728343230655034116597330242209472529961084921884328231578628597803215980518081468000602291585101859342537855332975859955563232171604429194150585367002451069091385873931193925509107754588096804128190706555448681788074783704131050308635257346583129045027219705160514743754942343931676295506295640376951298807607931540423648572991670747805203634294069289433315296142445282133676397805930149505563339345636166447403280986699428017619177346443592185610061420428110741109383738113807964413222336427685425726000189235944252865915205203011353816140554954565299051079108649370308019421838291885707515219047305642322906591723463439284301540300801716222773530659739424002998362714819468642434024010314938359454704076721103962922458347106142445651655303223799123505821824085399398056152363549877975587821843359962387538188117909851787177202151801173122894082539591090843186097103843990174246602086695702595337323538528047369124847514129453299278741015026643051655453995859577185784043660553584361774881820462683434394428010115521429155268445416852475731881492204543049009034841761136908815864537911040437182109040404476487704214131131115902839075958144502248661014813891255194222937577662027852477169661276916719690239381529487447495496979770725119081748565714653920801949983777722873453457944556856383163765549209765672756247301282384593760242442473742890463874469839521365576123618258213600250582342479303231442834960526660606388444684576339669939337665553956739461533015413267612446620719738298780384644403063047963603115648682645403049480666549002580310998358943377007367599146754327801326239347803169392017377125456894937137062233703299837799906913561787874016280718095491085789072751390116797298082562796263988335182637203284438352392371768236188055937700562915847267495603204650853764833500786540281164682359120525464207335985170064546958825052662976206436584116597790288975482160246615279620972197481899467862373683874071139700079444783202805035511072221638642991270504750787568666149375026979663943769171214991606770756199294490617437556094259171176852975688598576662505961700059529665148815655116255000733717608505627686190373361610225475100071703065649653565371386493698075846811839613689651574900549747196512138804226310866972889339493338731342138560901507727906893895442858832610729653475874506712575863293864853040766156328790066639052247348154098970905245415421949496376163251747031373151563501830282663721584048577625918494668849900408148624054576410733605571867242894545306555610362181346060347218766724099104770072682071444893339469978497237205502681694737197324022579105046661776799581221203149291801434766019858265220153524038320816425716960535447520373990784917355267089783402697515755770001118419742635383443906844021069116352344591155921295989554942406739521737873394797220634756519900890985327323851215155677524542025973392528655005632351856314976591109297355326461247517565447082635486523444498139722106171646907429456474562464727709709470928716033101812329536113295265238411339316693751875986100102931598302942951356087249934221189508886629609843960379090288838158984625687430678025503547122675050221668954749494726563680498323541482092531821794702036744787207620869532185952171017132850123827515148150133471173334629172621173188031693203744211773347569293124444772078859687288160479707756131262339429744234995526601040701979117399337548965188709287580624987877204362875297581110954190728896122080348428593905037926395351250353733026776716727658681470457025072648064121156992571153061596799234295324318308094096701400870516871171357347183630105610520854999325879008917241227160373705792555476873448337719138426090648092027923177735362875301105782658856594748331291938478981417277576061681690533520219569556500412255359701456941114473504740654639532118404646740843006285065513589632879905894221345779339149278223227322407268691488257682274452418163094897906735584169471475601856719230678208383429036997744145033731962190773552527096806500229625794178514517131297590733736878075939669911212746360862667232341262899653493398431004969648512599026029348070592824200362482454987426358960285752913122399974812515996872681888308826563018310689657523676959929402398870821052127090361665142284360856961329886551373846375578025701352443145112861995206915343215411201844706481507578476054229647628704195507455359130702695352839854850524357935842136410630747237979878793433333235317343872970875997297056272709416771380542746012678952316375733084921332713774618001083191785579314975450773568586808591781787448024354587105239288755017637847031988644026345609468487632378299266844989981415219405749998999352138898705563348063684705151235528551322485049940985297614139904616234615741425894936356977110522385295907079192215840468079716324411381402656006564396502927112744625582807548490271948984472426332283914811721625033058005768708958198265514768102226347828572307260105118629657329659505741163126822373404754382670192409982652592706498018037397724707847013399744844761518749596472072808809229163817718511859398323813162638778316630988869893170484549030018633591722930693538454158484326427450388095548576206663444357629450388691621911178516881854531554822896936409161673006699385538502721270647164712365255177731466694330966407760925522078122152818693279638276169013918620423049593374356908730047024154911871999415165340021094120061626629684018051906132105407361914043369887767047490528193835378471048945604649811123467011431068894283700501618149430817844010498442681404521026201535068219934245284759679222117028416944217397716233422602561637608096838151628574959263658918299243287508273376727367095610578478538209112868558541417278287975325849415273714918530235271944926656949916672181017513369657148307782055826114086141918551550476498924301575966748271306110343974756808853554921357339545229134296666940678508778047390968957144305659085648488977591885362248546810989881246634497963166550570015891743601986036714271718518679179837951175584310889316413519299397629303196993951775774517857128829631830034199835405201293332803789654771342838819872520605662903563863654947814646158993670217037811673141061375217061013079070142473776419021629560578045632856876519239564028441647923383266367394418739464385106860752111354569195289381588246715086866014379743616710404535109145318727250880795037507045147019622291540807749812899216427741898690846128073832713482889867489409988821887434205208312724444571554718720793554487274519081979599687523319656811637440374244651977518844800834373091484982733275566973142646147942567037428741994709041980512749937217153920439747006497129864758279083326144853985509289124178322694150075510281362411640484810632422912511742040173653640071649520414960474810848914088448957564603342596994871327637040792519646390738897458358309918577493491762950354947225322487983800883700352975742992501630964411744376431198776655882487130275312635251880579213247837104526684738363862149409259660552097062107120212600570258680248213353435725825275120014915152825091357810669611892222639736783652692284131315918031758596221758087961730017569017203153159373578638289284415582689547273384522743140825336077259485428753453934154563697611723207860671449790894293503509205698344511875602143259238873423319562846458687510853643253052535992737355271559506302263802762787780487327989081056637118995060175125202787059663357722082307441979683316853639478265152333327710083070597676323933849403896508612539795486492588018094095579672919586502143115529908773213670075126368249355243566082747140856323033826603744970343581519337939743418380201552444224436528322839846976920201937057434744599967502877758286759698527269437802842882196530273857099966438391759249089066122233464178543958374747447269007335967231750887293308937276593643665678052651057422860818927698344387642067935515938589849906124130347960341212915638953899718788590990702039176296750119151444075830107357812463975721323739689216619932734953753395255445548461968637955605962887517999114801952845112162239181759659724090874997389236436780965780068312697701008482242749158306622538682145438212957403152928081811956854329496211901713825809348219908713254842901111736908445858819671744357223598554957119586047273388781453194889357434111577695109904024171775940741332052169272057177522224862503015811920817916051170219671252224856484817955581447215775601867534985362801298937174590676869746245415061291067763857282972115720720116424636606616707646123177743486409265075790096840673845516252927327644851796840209442960151548988069812051214865446266278713086884558173389442721626503452187362871315394208325740433125866577462573351863500846876044121077490573859418650811260262179608642425636707093576945014230616284126628498470630201301598517933231102786904265826120206038551213739470849975444357344828427393773913003455756137664558430359569253665781163784372565587826516154608226260714624376589977619977877903076233170760661673530735317602812842779688086366815610678367598521399597563102833803460515301917360096959645548166338129221488627883963190740810793705861914818329510216412907860512789808448290287587598079096790414323824806887068910750451894723984776846858308995508998931549656527936426986880811814878371433959877188820656792067856354286518285969817364794703035949913210194731238128436409101022950191972992722876543024849011781370829246466914315992240925058885260028484842539122985250189516689504078275017848769764637772843920483131682512730207330062587490201239354978876095744634199796965138762619351018777810929477594021384163419111177468946770619226286651676120200183825866571524871979775591552362102453955882869182446921727885379150567475330360075372168937421278675376917931842506859181787125178520198358237786223174814197068922653044304561164764719453240771550090473498360350059974055299020551169586018233726609231056432931414273616799781404748934048026285350191033895862280613019125172107865066350970820083367464674488411217686439820358048414807608319822354144235790431857209114224349372605888304641416287359247535766656752181145440017278434487176919671751707599508699923706605344248503037812679693839254166073412432314129904942405403639356336691043560039324528120041830500745356860227378394857398777870953093234858815041345763464573547254265847235475339409157007980914264699689166854915934633070003076191676889857068332773222781940743241371637698045435645893987794206813591533160062846497837268018739930294380384363230387431060662498124353235420777612064748580429065444387008063383661051278285280461617811331658293010536260325386429025194567817723601357930439030756184852031123663011649895594764338220024608403505238576235622761252933797014229203915129993699487795972428726763216905439162366087033411370697092181353749167212066169889479992274623415875399866326836395871889790224386795995113378899138239849758565586497470226803111558749203015466033398949266818409928664725549641548031451475711329301058276202055332582218167811149052267655463323899150356023910124743417511150280694550715591106325337304900632357051200285891924905539616729665924955266863371325020032256978372445831727370303671942682656877733888248694974956652061969995120606765351213346422433706910180100516574219738826003254098106156287411185991079108481327328265022872803486784611148495338128631400029952594529979511834400299193740531497495996565068370791369647127915558097126441495924664749295366496310433284892712377249043163216677924420303542193850151544014387132962629268476027376527447451427948037597566162720917509883582915424090460845929747875372102505871144442117722639160313940862182646966374058050091693062939231834651745544894310836259329898898988726228045321682971807031535872758157844638743995100988284983542495810719142712050253988737772746530366220115681350742337384676863709068376527172159846151842504634648140146227520479180932664045834365003027188837294902884734706416432276190491466608755957024245108691417673527095918845418935932006225850930377794713376594796050353810694644986519314002522233693095712155157019283136039719854990265588145106074634082535039285000459634255538180092886420566247075883237643351770685580515472034141371842036294448446826296562434035058024248435970928105595137473672668955595957423277100848112661412307294668588064377894561985795218914870523586371600055138445905116912749080001010764514246623224645781527821020092538587303584631283881348732086642295899675112896607071591678192450265507215317479227779489640977595396014469198816174651517363925775034903056076421105295816427620674444186151655112553741479790363304195528058190356607525080419476730156618566965617703554107018817592889625330912236460279651039812863568541759815068012934778291789488597959998427200711726757247335736950007839973025625894532447022484504396083124130214259119232605397152151899391188569480560218471912483094526092378127986247589045153016204451157567686130394342941945179117878278492492633683551833046522592449512793888569138245002097084398746478327508499264260532468431924273598839857410027903768394032156790901079956373627995136710750026417538193587889478181533561276862363625970072539724023498650753515085447819539271573796610528400161974939045773690523694786702020639575574568165266746741860797423784387823227228569505707820439186312398632503802684100632737943314060708851373576338108132456119761548579204783513269017038076415952469529170736240724384593970675478028739626610521767861396126907051340243201191812221643764924504145934785502521477907725454633482095764396623227957313252126613153997152362294392426500319962101260187047685135714332728266727335227746574778983775760451623703361156522970884880441796247459378316819718216056186025618991151737037739063185789136711225635663865328798948150021142828041960498866287237128034741829077011004679277293772088376701554576947686063500307239168151522809986004460898777097507034466202699721486532129207422446061740686672899461968418560378056697311232599074952561583167049078619643052146776295841161874204279363599166832780000296025820969427215557103947297709706993228471881488241727924606367441208391132059478742553225316503576182103760507380773594280157578455596889752281774676758435503187775162240835814885714096598995091126399051149767181846121247383690283859407943801508220122862541085672155798168374306875468291979809002827624036553168261606739268323601005832317281076659272347552380817882134638302510462931970369071186651201135108781215252370162829504818020203398066996503328799813157922631549543736928987655484415292250373218641451569725454952649311887957549984717266758184794173223558046277777986703235513261067515470906324948200050267428445422367388877118962765824573061287330846586625890546606925237813178124483974103241129456846126704108425615875474185406303868312007385409743832085394118539090102471182881299020572840896976302974163123392164088862350615526027336706356965656952783953663356212920512667120942161617402170578812419037504394204164502174372826688272898848419732063949749671335706996669068885767113124429177094099888138301396436344528567437752193887793508318552489401486334064057106426330367590385452780484774186597863182150248399816141512706644248897852692868723765470390675160479946273858295798605836315404854401580881320372318366130687698562038673827298768151125398509812832559618929503166400113264102550256521601812282346579142642988053469771456271181978439838240655448685223632508523301186877689064365399575837554368712181165132801068466880092236295057544265236542259420456257642856025613100216224457242834788486681647799409304584278059167499196657927643275136565349750206137486424350346838627544500331182836055156098869863321243532064874302133522637401824468597565558697036012420996803039313822194080875442233702403992083641133148968257677088412585100693930057284955770948938002041377977531161864701653777161217103387089796986605396617739357172811668321218238272197482967753672758206160312436560599173409364572695397297805417121878618093560980109531422419545586543168100851016471053483725646180965575801632528081755822883702227947550067016047751859386684754206595522836888153723348367928962142903258131664142739343471494353467122571892434642716319871642643443021087277323407265887181167540774679363538897354491357039677244067471837700231856516804979240462919082261212576501630911363251208333740321848797707012938708516152840654850812236690263680314752781427662157173383536463651405496296129562451144372757736610240528147156793601161854897353314427994386817012269671724033524142906303734905968979359976330615841137218775089028320481582246412495661594266352913910099550515885163939428056756589305886134949160533046009556520244321349197661756275705768991185959238720173975846588533440861446270193555208342177115648486076820533743751075451821834952069158136416409109231327306306987473074606429028710121266594500375387739121802428956521751759835531024621971215594150315764810123664475455930573389074751538587273787844109839450206349909829701469204165427522630727288949162641316050374907006824824599296703982720571124083683292093164717773227321706233714381066284429301465897560379597911824702332948978087102871754810470080052995606668580467374032129634426401480404414163396908410056496672467930948524674846147755255733235770936825807863389208714389021998466335528919646367797068564736773486424155184003906650422193467914286522181859849914256057793969744087532581870561035314979161388405537442094346027134659863295029079463919987700907221715347573029375638252388213038868110551388407766064019751734812346904274174227811314676852965051895749968444585789371974334588705305233734881986634745352777885694431824922378111540346314300088526072778515671788492301304399019518660625762215123521870975151888467474192147422304445204483344275751260501542041740751832286048980346563214835076520354876657062486778396160072472788743583886432441763231731545859902736353725327960048605949234587708803336714705219731683479651352833324278843177318673782951038857747352411391666172147754688084882833581248487254761336471751636987701749052601490910525491018874906011663545009890650378479822466803802246705515698305697059153991167573753094609732585947096014463016762865474857632918973660844033355201895382647452525056267275068862744525013480288648689493979105373098336537602860768209578132226066877181037802381998380276606936367568494960029090172305764559178336486482840833855644224915208353746048444263442150598920616824145641792037906643297343764340465695197963202253398069710577370760944689953312914948382061397997065017902078425162788293538877092088130704790673971685979396524271253644340423702972568554906534656821309456621241500018240645429008113333046688891951852948017843218146152309855660627471602835769125207736434294455044397090591394108091165703328387937775505857355765162812749837150158982797471466384933444388187307875389505673694583309883337647639722554951037970799886331822611528193504119304622258805909752917441682611329404497883104322557406380310411294350012349883870893916294054281006368898954083688489247215484744202187198864538154338379286978814236039252356983517027724074361105727604383864524234273214511894759512250764168136663079796173530203788616148659518373102822140900376785397692879007153660084928043084473698864214282536240989817311397509829537767116168542618917360307623951082954505504550500126948001425218672257001812874674080525178592575678244951606547184683482351791215993719294030702095899668691504908678880315208412608883365276685170545813206952088011354583611089538636656363609029963990176790297028585183393364235199754213768520860236272489593125009504981031926776718189148756625991413713338911355346049059526700155122284546047880060903614096911621274901625886433078854138614936543656635682800845633279048931514696692231029578212176405705325341507106468298982288743974790472295209507144194941259777426319268927836036300119752480724411899659357682387276939424329018181949224692364258718502860099363337741784009779396788679813978837108510792703576675555278412496184154464964348089222435384939831225012431417700532407468017725858664229597199816297852436270500574021254726095482269261745504024238991793120193459327307879579665482353226000370475785392934178570959070020820269460517113825723395751455816030370185394247392091037975883355902745654930758124794069336514691086556150101636536082365165777190816039287069216472465721193429863716862825260058510328199501405290786373969127185344396396677582079214869758606008706255259732755517839635509203070346011226397224748566442322728184309643381631723596885585253274826464846021189885803807233997364985049137153264291079879189319709015583318740116291355894162358356545167655044570136515164984594713023100004147904577390716682941982889028357299285807670118352368873665476502265138695695400993608500081169642841423003457675672055675930729271804852829761217495504355896683083337905028581756102979034520530142537226903820567786476688098691974932267847810198912673129797130863526933267986667561961015790976819557934050544426851869697277684997915222318791320920559139469167829985995281992783484992679619078390917433528462655432012393828501519300438263331340927088018408652279292724535681686826089623742232378250238361867245162420055682700341734651738712059815521933196705530963728729112112318168042242711583916987525464850896570149375843283024132304133468764585935374414692295504629113085411827208142756086537859930987146304641413487093114903937958792608209479822381263540642959448106056122654179850175648879613481486925752075444781626622527059531167910925027394003783341530251076838362673026218410291391101121750542479498817386869346712805350418466001644186735143991635967631619677046437910624245617781368602073775453609659046241335076571865056424979600678265079615372185510430639480860934198319188791056626031886955658087607486256521890388756879523585357100879649298904534301840594173707826941175597869511788767822027476617481455998975293150385457355053395758464119323873584803787541510856483096662204599811380816127232261883456855273862510059488492370338993349359225526532661746978001420954008925651694687783330756575797056915575165527923318908943223580420023129873851993524249695031833470195860635325452653176107561111391036882329547250847039443715055737939113580435707787770622249716116695381453711258410557557182193256209269593524885659430822655466642603115594413394523043510023223066141496258447762422441493286851778858105375318229806749185293559008826055120832654300786575009550875204200944104220780791142121840026890195337191925375268364998099364535179859049872270823543683356691015491430696167349795100999660654570611561731815328644851810805515489491394610019977122187508881128821707387157543456295659092910101600425520841326613987454447918397027454612842777988437510291149615221235455936730608342731132426153345079339842998687372442137445187402509328791933672699952602648551155298759125438797894712865382784487899355707187048578913783523796568634566441808016119645190502390542035358167526150749451656697800443392701419537846417002052281506850691111468958514174809833512579333550750339645493828688471275867257469472262765034266845552032836139321964201193894478893625455968435068384413579276945268307764742781837923830739359010114374080618582932382927576140439919835889792786577374606290264624863898983994645887215905121379817266391800451939343864811709974206600756258830745542086419213296901996366546877978340191192083494101716109749249667193382207721807068944585116490441169883461002354610687188435022247229674780403042977016954526991174312087083227673402783708050197761286306095591027147799051634992924552522122916060318691891594454738992445443621953010432914878590709003659042201475975816641449704927560178868128562663246623348908176139299932030131335859288146415280297422646142757876328228887740638357665248137326569676082502087188982838118655215731485878036856597809800511275994447932061395312197070909550589888912530557239533258449420104936882344432249752379470236956700379564771239615849351640170980747140991606597893876876101585314816408530848923301972111365663627955169900658763797008531027555049434933144804511339383938884958468901386701727753686458578085178537707796146748633786386284139950100650061435053262186132836999337082388349397985004713537126820963464183076118133419645386444324365646790161985307438722383802274617209519161662574071308368620951162550176803499636888206348870416441767928626791872860084821334195345905597915923466331410340066228495063307106907945878169068965782655689508791280280051269212329246541490037116716581508635027979895097020917163001740802368823056896837635621812691293018162624459785494811904871857229122195347130491580162972655877071417480295521340327188105189715935285352388192676652111711975935349417193885918703532446231568347708887366730548038314625199358606741546081417075534687604512284151941601750310037491268804793000842714274504230552933234290127085368611474505589186515586860891215413497668131491299518124448214021661224926666919325904774870389359623991309785591537646117238182679654274752979235557452363832944143819503665579080392220399213693057038675030142320174542923964554080058432204439985680075568699413005372139721759654574344087376595259808947515128489137252852954345522266272206930451883079160669980673489818023012487238506371116676558266953351034110988428434596924585910321446394508875744617310424797009453044075340777995087825524027009029099154753325074643688102613668943803332307541543290411774287007633608589520028147309724554388574970991753560355793724973025268835045434630487964943055862161271448038114825518189918096424741339494687433894713765370174970979546696775740377681786236029257307418693995501638697129565071467593395720268268897332049978755768104139073825761453620739577148804649121936388310055722814618364363574406270880948376409589422203419169326121710413490778699263096483184917091313594908599420535679813458591032214494703168754533614114409860522072587956289520728823216889935278766600278404878991091407963788280410248037111519571387378493023281420462967713274854620129215322799900649880545164001965316409729118844588054283708721255139604452029901707596542036368202255481109109922184674836646903711797936817995808592440304323171845338778606524497182022758998856952109924323365508232952538659556767507108747160915827971989692378478608353690021854322574974103079225854341811548056468590637053084784846109503111317565746862862348939783041396410775487289953235642261333665942433587141988695960066711653425432720877384912371775300946298080102760086485162469640003900875909369719558983212640882411168498046220598625016245448911524185881285735170584364870235570635683795933855550927282923589090785107835463506760417774336900412678794640326238563589758383553822458416189785224199347968015052809854770264528763222152550232448625570298218573750264211618441350518767327527694651643052651237223366222732068423072159660692370670654429857331714550805316285628016915460269048049027965916094997510302835391738178548490801100615806364636633244827462659274413376151648343839383205711965780498762788093141784603214155512388820370640955572120801169983978672626661939614502702430014791043781125328135068512401178941751385465618143357238989409289375907573733732871495987266347018791712321267085625355781107673074759000453558275016700327996911962903607692745220131844256504233828902749499698113178662894140600695857955308947840969924307682622750788877626461991120909996751022896925323087303067408369603714089619345417632201479853495295042143222612428808772126005720012370590278785173156099903037984526944356916743134407555833295162904202679173410863752477645533154177617420642778207257875474244588430603582540360581029034003463451942883826372714339749722783590852512342617918926235812339537119213568231951845952126514179502155152978589704835777566302767101109685225647987740532145470964784364310717556063169572648663741824233665487976758825301201138103366973158992969756262905075743374150484970680492805786115663632154302853151831926286334234029427042144290052874019672086433934297780060964820487902934189533100943165719501623539713336646699393327023124567260595688305687708116519498143394365887598751259696860129459251725300936378259495304556664496475202294329235325930604229930852728787280953321510135990303961539856326079666669120403531792150507629742005310142440587132945254775075931343718023947919089413489139889321015190204126492428767330665553530148852916899057927425431152293664823415686408441010558633837311416386351582690602087360903245429235328776356443318175760233379513130279880865489381628162725050723669422442371879635535097732010602653103799678937116123464088126957693549844068424627303009214144274095700008624935553164949971385274709600025325654392102987167512429216396710412925691522762599782229093826592112137561195275443598281374569348858980903899511351799791280365630137551612388975790690804094912839364304514888541364725687484837923923350490993753135677749699905903791271796071910651146098134623160543907172527318616038005802186986354267589271110573374846419368713747541489311653724229582395749394592463548066006563190634708877036115959716369362093054993040599421166836875344961899927537598611441416021982078221206333449797017309895459260939967603919019304076500925505382494906546726115787164095767367313840987177622669076406094935361367151911929895090472667257470749938030158693652789381933072600622633859418536688357449822267175094674088023056606933009974777137587834003527931020090092872228345293179649457261638810568429756223544188418334068971941287770265273291334581148647598104005654216499950080772525473565384386927002982445544496553434368943445914320890748738771391367463929868509089416014255194182132413078131623931192910377591172096219802246119247632608968607547197000316226972730239544762339868262785193871779603199802023679130858837796893993725645854479727002424885462775370852774601301062161543818153608338366234666294238288664006533692030172179765956274464251837325997243899820983887751723797996728442445500230370482308179231072460906854434810638193165763892109685525811063294581556536323050543958582307371784102019671564438213900835487527317256674724302601166296560144620335695544080389358537521033057109334932188066540178605055009375049792372230542640254935962450927894039964011427179803018600899108764749873945070142812159427312022684498128208421354958732643698514025357019913189648411232261415643487747744726030247262837505137790066456295959086864985030737627809671653129834081179177681478846045498889174000455455785178212384320199104018044997859387899220707034400205420410910229893114313390269225126641448045207151008453918280917102319842356338492594276508502135256138163480766383761435617521416293348135646685803368707378189691455199269836459831177064930233184524442262469981503177874061710381471452479383157288414305483484986218939518785397998406574662127861164753556012616267518496957116618932861496260476200641652295310649037356933222290220028914001087041376181946217335196374127542692984031621357091857171984647651042099184933595204383437182142152713466055417162924485387698075832887044620625542459924138452182203120843630360884656485974805340614290310053206103057765138738791609537955535175590349959885031003604171732680070120511685150068476102021781364760681559552333565607891725141145499928966062493569079385285783974230592829683149731628967266106345754392573899753843194457389593343331890576182910511767305016894747540205207915197832603000348677664236288636766188267715943983411086602279159708643353431090307540366429904723472031396763572122256367720039031219184318277338810951785476280186390057383252794730727035616916948834790575650639018376297587393996197151066029399361622408725973807881354930652113689537180911289905669394484871276423340476487378429653979308618521946387753340617314201142793759370878203345618368918623161585110937938840176077954258894449317204139732512121808177755512148449974997949673890410295764366348143525494903932419502567504595238839760944572492008001922425486903342015172774536553684521659734494767055371195468501483009757469007597710497163777708187265720647321565021325844834923732827422995287374177057747018195183300130139310229931149457881763216441192105844828961642592655079383465578064344316787974918605820395736173599812847984896122778081821227925847110376722849645179869204206187906367937367534533222292393965805979615400101000462240499802686685950771773815463038287147411814147640206331816402731870622593563077357374675757235870953962227214581571862336832091621775640909544142658189888503196941485082069242526574903808338281370277798154820602819478504112859514695983928931258906448912087812989713107054269120056512033043523182070543858378442593263770055073111819883311856889080715887715423315896535597749462132120965214885102867516264518034771120464509322498348822251863959249873692051125196492569195215660932022249173465703930782929427035408032531103733490497984100692553964805036820333467173969796682538594193683806989077755698342238248676962290602592665267728083742087947930446374321198381231908547419022699117687577720827674201450948158005249309412819357616532566096882629809958234783484255676404090212286597323532110591711887035616214333078790962233109226118200390176195971017919688745885934661772350550456098053670160982064613158296512157873147424207190655338641966497702871674653607030626582381079042035622469734501496620387891759829568806481004932647042695157393603748207410553123601301418735360344566263832325310136664849562785965654861550427205149252312743431214389575310008669791913033579425199335019008515683439003365478220178222663569968106734376414548905962482138062185490379458323153642592168484153813445439049766782807818343238077222230014517196000159955268400345217911798414052850034350177989156659383811118403329853960491188761892966073524765093872885681825844944479840713237412668416911400203335585581570900240718064639933973915661831937373836582070907936935493460400401100370807482138115335959253533166144384877736606477358442698744801389441907905993496527780399333848426561384624575884130577395922257824255687474603094576883459433030161769690949691610670858485357920056527281868572336562833838822092202097000006948193788383755472032894224948665669657696437293678155936995919468770827173961376562806265403877279623345217771468661129750548358481148586738750630523341574338503866188763204054702898386641675975282789006748860038718450005662390098300065937517421923035134825418114654154896787120417313997441198625396421469150268834352451164222126435237000679587749989991463696382302997480539093820920747230519955636765405000312697525887349042288521197141755780347040076166101116380233364067913804064257948427177421307872916390413877390411179931337224206673513798712985561297217332097154471620281760621937073708023166023157249748213729988469058323050341663523230734171645654721253239613084840831962614070041918039629128589362235708661005467876491892599245535806077626887081857205736119673002033803092818577024639431526255535455855331565324249006412466121470624568700557824384675086626453441957707380843443101698744009610854371623388042760386903214055757309418910634204045888648859617319771132757320086551024122337970709097682345682919072110736289733997368480995997206197031629252749006479566708299708336116147526198861743766057321355687874165483018627600810113522171208968767034164454811076136375736573752074545620882078158939529491804126961234579089644180471591606894646610743363314555973032781913674885037193063324311757008102844671188294606133040021392079484563452874887474404199529758912032192699701869096146525689987028243370703773076277897798783340658507312125346053346491341268228011678130805577873324817168731396898945956542463951670083433476733071046693697932120825334166003064507804127725873552838933718498697143160315390932895487793163152512534441399313420847043030753410551614611226774831321495492227221715187137153627251137660259210070103149127785471867947949446938540991433012625589780374114584384802074834247762095758853050650113405267099315912435243938853268187721089630491937548986705984398166480166759011572972758944170143651810081646818849808283647943005918469641048156040315187594018065750706337399634366361969779662772926704250712558106842157818676534163529005272439316540685572996768699724730703213714707968301214181254308820936136274906930379397078662545515043398250848185197089741629871673926086995336734851299880994500439850809369189504780930218192752293369583016399328788468007280665757447577645053352778715704616005506187832871668915900839892141508124934271549327513986390258867583428164266849438401021117765233651401344323354008379802785016166432078408089574220245455624146016023790145161363925821118356843978505256776138396567828826810650224344031260010081668985640652076563180680921096756195198818869365775673729476640385648946533069512073663482256905684229958290442513480655963472766379832930423885703829285619883732137752173022527449865476270303025999085017136026070996561590425803116719024478368613040889773374667655899620363630428467139752035657843283966519747173034167250858003554681196658997067775153132295239945950555562672203234528241264014633512580429384162618636276949698442755834670383180317696494135093983751995729227636861659916765876737642783628080131465261975610036721825474589201033296029375726603386032371668976212755014026852973881812899747778397457963514430845513115762223756746509316604228516901168806513713939013634407907544259054558964905785368167092265789496534361733063809365256902066851238700440523622166615054083595350844515010856710077368656653956904307160385517930412053377542308145311304241072915484299352361966601729889596811308988055092748414467600022099813012349767463678093842065877208885859608912912440453150832784590666748726670472113663686952409564871082748934176816593685279068629336108467457958620442682536748264995227318448570525439875329637223298864632272869736316578759506121855643153031800278320919626727559430638804769823759647365363013338206047921611954819864203175975145181744192641100501371412042674942165952257392988740654187604208914142944710128935576713704595202304584968495610491318261363383751624922302503303297100532296911129620029977525124707845668004726723542410940824434567174430617908153594304298609079376515157771851705619674016688888770345950721408243717365926525667678045255732439066129045671568944223831211118159189630098452364977336272692493503074907821714866335658753444266569114704676492741868651231812848037032119904218666355845679240268822838588753858973534332554746526227713251766946063966904368824610173095211138412243594129324382573733580152508719100429362650857002653321364210702947194838770412943490124969311279544923988729910874449475418542551724020341795058475529773398235534428485240062668637854042651522148723377554262803862311890083047994595073467406708046552627243494045932331683750523370400260510301903922152042205907157022260534378003042173056452982205573379475023075974586052741849996788124661869120329154247298231751979617663884781438825061134436921143418203211760882977506076559018004706861860435158644304329699649192997837685080189513071267262930326936868219503252967645472767447440337304022735956638550836294521286175495159646873783644717733257433867043399162707242070656477921731966695426438477603360424653654559736091473662990732457793043881407603606490607188374501061150129499640181665746695111962765493970356238152569489884147357276903210954145755013543526944864868945483103239380583002831942863045298784443672458801607544337786654460392992737925785798364324089163286632321771426819564422197895369911911959835244069453025636914944930800055857612932572358984950830187619239495899729013497756408969142646943543031933732137203791186856560792093046719609362806689031829643426159190742406403160427105633171381341293608368381609728891309030735981510569217919606279036102480512553944565552474919547298488814443563582287671115497505985510032417249112060924745622902739442118101846269097048849464631581348120437493999717517894876433280059136860048084109025196114125852416328430272557220222938553044431907617831800682907095696086867421676366168670168443667055398592870242918090242250772117044869687131166991700551566302516174660781571934440054188220091472780388569291302770259974661371201132858741337916548277248787352393070943177085344254611421030644510182392171965225114569287421033811806947855672167312229826816645906045019730679406591365921470751703733442115468181160640466727760419111459826094776239395792174472172480900684474853229535960279237279215658952875943528334391250962024416567144200859478147441335326924743690863212498433365025203366761553094467368123159465390071717218041001963130553296810694479207412821558418552195050030391564904018335212147750735250934051200609040556490876058001146658013135177222399102994864062855965854211968511937680657677804399461812164579889003373725410719983370297518894524058895354394743902356500444605170020385491785908368300439135117007482886612020168020159723345129369442348847969352153954714354785756960679741016637672134634591952792925518705888412731114507796273337912447530443229634254649721983609711872977850381421454364232875654557586800040188484989950249229368792565962188297793667730035524229894686927822834570061075352148632963584353617521107499257844409082567399204584522471386966646148114470482892812588854087158295128399255602066275414154156933049993563408477043239305876927163555926450756053969626842737062743384126532942051965567494558616360133595919753180527515228537325505903883157291831184226459800876596388407034468292697125650324187555266788900143121497535681792367351315490988532185092189944327724850829259318959038676806443544453917573049947711655983219422419713833198232834905263016102637659067139982525858046762828775245804325472451788739236279436441848485975707755115141025445256885166788796290101128971022766571131288006461553798815805462446061294478775347928355752292957451823292661436236000372185062332009083832099585090009847923183022384196695815772985773784224410505975034911573455122799356267354913653961008782315204139266598906689430900248988054565770217847161931858362304302567335816350204626228330689815141786292102092919272582116197534094357488747978161682352358564090750789861635489228095930857013213409108578016084748730266666217925971714844185765951034894217608254206890175149189672409132354428222988631422695210728794948519427048108983638645068305006335467830492112952546140918883661808481688146625341578989459627866510946335930855498836867578829524751299881671562013544102771677973818232081394209854081426317627406411355587014050804861929266466188683217835446230875382440527076985636604416632235380265621544458046215003855175107073994936236061898195360851387493992926598274877509241285565042407686175373367797806527197845273412023167168497642592525912826648695714690033127801731761457779369693303930454045422924197348650119285187136353618912961643535963390319560958249137027744890457885765614809819998685046354048701332554309557181387154626510113755585888512356511870720016253965895597983928006571063622617024385561346950337274531357077988822291844239940095330844564686613536333877768841775108338935221158966678814259047957903352374305520107665769504329400974784361261951712188020699829626349665689013152115520200316186202109357070634761649314230957322251413701590322252218762525726561313429056843539455052683410371851405445704043417296788045329555691614389708918483918463365530863365569069773806250723051212058523181504616339773788510064886477720952226237190728283766830407227255019179547148728287281512565610297460943500570591770138813352287971497546328670555314826306322804270452923465496048978872453567177105704399739143628582064461103815079184475938995040551777852871982423155977601874174591972096316485143884656267558737154163785572963221894702158713570466999369454885758547702149001577869573027836437271133840037054765439321335937989707012451933950226950545780611752046172073516415995885174480439834991348294936387553381993978340812578651279432928048330043356622360878112829239604864807856651290161651162496469690712892949527887066134545462954744337214600067053180958338885011726922060613255986879336795724188953390501449424576075819256439388194464387437484531855891281473784369140333755276211219855758303713059390311211954398539594942624595243140686444833489778639155134269403034822673327680570120278677603409006530288107627416131379952874239523652103528814517651638317512732002924363447104243703615740935943486489192461254602121378450263331255087840012131770808702041835384525057506937359030130225740976094099988786655764406216011004668639927425630027141569161079115514532084885113414137103079590852241221266289950527099116403819810247911168573513553812681833428399911186596034189660761626946321317122734847009103608631525012832787849584763364808127376566845156584852049784556158484993839306418227195918571881136436046680164625788851017110796053945344485098242946593876244777655765919291609760902530384631735108183688884222261200559254444877454755724092457758975402596160976264095994274827418787558590491439917412561814997353443807527355501487928854777805959328450423682490104758302763985133672362025827259218586629264113077433400337056949795379893386558898052014443515281268260684611961612419303424544022884165537407513298847424443525921995401316912988486369929362399246118069373898712717664475288293636143145952904235086021186862581724128939030521795939507793396859737006371656250866019354640459870957695064120353609743510895403357217529376091500260597417195839086027108120005047103929075901781796361703864330559367229792073373906317882897384778555645048887139615287874709869157581392928016202768466895568012535550167802038072955304465108274913798247222707627479862387465441890939680412152732966446657639177046713854187082052801621758412792878920682302853383718473777183428641283513416932826762606462432483098933474603997715645016943106190776226609040077087169297507556438814660725574261160546170831679453657377931824621887922856907860703665660760152066568073510813184970118505523451556728350916002392616432515817797471991551692844225319203119343681093179294741990078924697236870856516919834806905387546681338673976338497546453316530428679892052526901219095763037747466271384290569885999196676672803762459997061954468011495318588905354723220912842552595241576544290703487438721800673285316884267620301901135365667445469519446070532456343910819601861951436972985597767928775910358746292463941164924523624567912674336877228626967337357298626542155424281127915991129922186128156001743610206885737359025122369542229672537998135342929042963244545477073604963084512073517570865235937367487568304960750609024898004114658262376841815578133842742647427929313764088513614794486219922242021206981657241445103540234508836402119137486311222211556250243377994429854008663260034897866150897955299030170904146920896717860359470545005229065530309467026538000023669582585676869644089774672367431375226867034006804891430521062762305063646977473790742329588793930301377515475885648273410010122839385803853336558657305968935317468806481496875419276718600814854705043197535652927691532585058231596818982504180811377807628668579177882761466249564173929135784829021768661559064425618573404678709868318068128977569880497890136894568480934619887021416506874828553276750105699999380830498862299210504591796608689784327196052709163067189253610667912596733752140186131066189036700301876846152630573379111256704739643136259021568546158553647006901116195697605528332234166232467377928772097847470600047270669969694746793786226841588248190839692876228529314947095539260400845738784424818350622663317877208473834839520682618234239874759586629462192694325566343108528477566827446348691870608374978251007756417723129131652754104074510113319140812278700436036625549062384172380269251892535428143825209953212055724436661838633394095925975268375642772203371351967979867530348926220010404862965962716240114143253024540231225937159328738525450042638951270550725802700305090433634836878494048362811260017433391392791942933844433017479693854218079898338448967463479260274187448672855848113430234191568928459030706396827988647045241433496035088075552868666623453808021811790141929714165808426090438583020001274023250492612558177417899087368641143967321397281620115248485029247011910323312370491073147574396195723335029638025154125441581890589979799248300998032781908017047517962706171530239796001104070637882040780083362795795709870470815844106646403980223512229657160095193679786959302999208074387982125771832748144649359837974034060358950632273089329932748617466965214139559294396180432301699071798483922939615192633602723287686306177168330720411618308558056226805471735415654964452083039858211600175427658441592391421620594378659907768505074258465479103826655325229621951927796865334449820416847649062474712677032608046528439819270961680607608517820682137471227444064027335104463392413515213918529989523297228831930653485171749211339030823225322955223349026191030785196528895367020050757709352418959609193351445560459417138070279401806130999812821903689990150017455261430335511396993904438795869651044875659849618556492771258837927297446705799732383094886337004580761127829345938434404516372728811023136876300294523357391303625642081138188321005900826295062368085698598943534972901133620559258761476818224500074795106387511296037234339743205538731061573893920841640533927612581135328022464720193951904874860202843541606700347054419326628792873434516501056117670117548416038578055975937447478521023380182957558312582049229663098283644506654981654956833628397019399486920431422248958322179794385198829818100716512717395655349853616510848013479023127267514795226827524441847207409107009987831793245562774919881371728362282991392154445917858151027016284438273707129234718667917998862425656575501015928282543762119136157810542842857593867085774725676060741497347207390521878178713809126860013919353265774682509978087181422824384082572590258750427679585123836758433531601876813243831906645253310034285739711111521120486554585238828971630881553907878111061553902254614842736534963450848508810845846056441094239513627921850530933832563352351430036275014659800073041264145280143804171079657848923116628102524004347435610282446919193678630975474217057591464532769607099626802085586262215253644626646356458989218088824487509527173444872620209374591392903371198805459062349422507279927024422744080387908635684819767409495912392314480413489245068962127420092981969515000301789382671689454768386965703574632986674224226660887017517495000611849996081807039873339541660033263083158609389919780559365353595336164617127189387932740648724301769317939256310491554348115232151195546247122953100277785122484429372685870658862062010780310242492754689567677793502591096233011213908897240022998184511708642607668853602351878443286420986110995272040024294570024396409491725758169715574004509071388296682265623080558077190860238141844623165749168106471178637671488390427830218996009023699370275369890075618687523912378560593968727547017025262271693369920507538811442877607214138278968520148427263733645506520529786685248477779268431259367484514991637513902795326078103538671324804942165012691756408825892165720940123274768244884368861911296779886626443133367023453137952301348801800122672005336235821399153735775238166567873861421869424451010327473465585441471059913277240146682332765205372703280005755641747319554273121371398570193922339845698190542091609637127463456214695511865086003152781177710831994572133982950297215128327503512990073675253278328296631830937062374726954526719160128840370480975032607384506332090313915035574345448039217533557964973942299272472340409048695415093495947313145012526521514068519710666482904610836086633658783158909474100057861858368610518088066415804834389672084557575714746513449456061420801391148273772628609388273946765481714233405862499084798355732036521272887749314897236445246919318145050062165939235179667260910338111448913966166411329729643245020807253922370931093603419351639511034100910693832610914461803518665078159507021635551884506485629111253240747908963176143699341587069137378190913988947932540037703199998991564649439021614719515952526554491532390123135325815877127695042810498353380688789649282363996358499098622796942207141710308667716564027632889019452620889057771884942681693460508803265726337828133123786691078991449704206064310584633961036435730985046758486782625514559249238525303501233694969733043271192726576159507671502678002080747135805469793537424302592427357639282412610481558038001727128188968117932619544484233472673597158615640336281121881114213273431060170722924715214181067097511475941511680311406767521350573881620372151866971710266070283394906200759137198206715436879635290783268108493279228192636222582946237941327318695460285194130602833713215377368930213015452414565523104869807072619912214190404734986360726574208819414490549257955149940817548649154192512722029440892360956824489611574854577425392810583718075554824048685084476022648899739130953631965904364567115828973758725470808823419141988109339584273694902617117774744919727227743948062690782664321813952120259048612430113104545777546631881395714909750007698370270745522994881650642694450018006510169936249380884847952128095911114861700279807040420085662533266210649900482221610785982851190818904839313856427954782458989150408584584305951324567403685511428354164931535754266950562988650270732526579610321391965726046674724594499830648193062205691182243093910538296213961596078135214241703211028941316552301351309128081774470061736380799677538112854276570194673566534056663622232553974674339738800145344567833976698753332750386946553480059667538849066909516409549996366764289095576061573980534673546710317590673742415089250726602228095961871747955320969087779100640545053686214714211654660975431586901648875372822470452168972622379391848812003230182366578953939529976889970110540915104843169277329708101633069465989401352470305106273754963476184696114001491578866067757308082302645942012609748473336536701789511953873311632077645174776490541694491391616558591053341660585432108461678812844437354139750971025901219009490237903804291427086537606438783184770832895840542887100623508925757583673357816683743128054145642522800213166976358821005611082668567431252998154031955692052849297266218204503218524483169986644414865768775065263622174323422609449878940562581081531590945981101136508188600230124031347827274240863604890238645022205821220806084363140228688820403267872613554336383306534552406420297271451876293087204574702277483511211565056282120006763395225505706295134860093972794260959009545067917934641336051926221570969077232599441322615156325072943714884351718115609863268939773444064801575878826463097234028022196018387318436369346803637740990928623799858633405860010140221316656649763457635241424970643655106610987936859252007529791517601462016108620812941928778430774063156231225505495798694859397675758825334248241961601738400480846700303008143277365217225535115613342051991182395102369005238429227667971831474129537912439012417233136738071309774904955213408647037120533833972366495390023318266790028442667820891541104443590180839446690511563365538235477826348160553621890483971885021496488512449060726257822988889854428740610241940709504964191839957948407025129039058570198222227766806127837141548311410777169122312548111625475958211205321262666551355887569424637664402651243826496443892079384739517831643662599538223941354140015184587509271856828648445771506985534979711554824052922852476621981174887626171964654950144260778941657171030331393434676280702238759948282429622002399897786920728058108813190973547155516732494406828812061988393454993912243290390961842186366719283069687807671898882079366270606295757879115588002264284686169942590407969451577323232621973512801519438964592362671417764943036668728570721091504030982807331287724423737406811435527577187211608266944686136941475866204203351721612196807303238462980669034422203869137117000121373763341822781593199284305958743904364130852887093458896107835860270889802466169328238492248938912731629050909685827922681071389956468254484994034064034448747724329018995188933762874485965910620374288306927535462215521285488028944681800328001135459296327154792636640820069351878674518088592304773556455997542828276578930367199493724719900537355108540164391827541034808812882873381860983612310354333049994193595555813091041045068889700143581820102666892931276528675122759185325623217587054667409430103705817950208068060309343211981879905684772055411076791666242189698309699793967427058033543993820110815570217828259423381414396939397358078192556894539428211751100757160538030080350383592228738026286108505132966748351528563902007066670805546286796993437495988418412588602848714914762892207706866112907583781615307779522572179143414030656676832904202499693597994473860549049732277409074684191414359762315908753133435922021154859117424988798148145511961096512083395884338683026174906775079112178657059952643552803170750722975540292953577375241413794605018145012040490860095397404491729034943652026104441310886354859965960952002254638461521872043510763084700464661974345690920316445561006012566936748605676472875027433672450368308912436446568616999309410562626203418793365882774384165048131785004258663348446293148185883959542798044953675967618934066435453533568347414455494703799948228723524382263455299057960772846984364879332890290361366231445698780821409894816066514035702185167535781294278590914221515772986529782837132865821560604130695139081776239828570247614377441218926688717906420789342297127893229805604572289552133624742917324717679387379724575578151185973977751511341698289251789069821351443950943315624533993885066168188390963176350905604870775224107283177005443653245648915632902025673459620574405230506801222643655920662062301302305725097039596009699592555332044470484311112360040679069361773785183527864201420830251104739949960113340305550778238579628650280766538482030435022570385141137976403310572332849471532838945893418792735667467714685760541466007523281014259169137516151037749137590244099543088056729000471540123534683490422163944417682032441271535963853209550255381656558245775227805429662700884054171820390455266354823044270102192494994659604572860842833885161978032902588527089414435429251154498577573380907389074772321060521982518439459949735279610646737643995421841922011398801931469655204710172443299475178405169641037034941022436490946338830733909911334922714963168833210394410102110149800177181284337733459912353705792674708905287457641132076680784172040625939469014812778030002721611234739348091756512626647204384957659694107423282605542575766405198011296287123386814631795357374437641988612305895592988011949757850892777201956700554018086705560799692617286173972947590884938695271254192753076796999192544524373774009069083541543037525093178727541949474292793505712377589504320443536635061622942212300555366775355305458232714817483157276402950878960766251753331547845706943674108318498552338471629303469386414928244924329661913894432204957450937319736275958258310639689971171515185522913905205114601051017517117438449468171625913533447644772540024258392934832829091352768536521516819324287981508775086804610070997853976910242006838131335906810490465267344855308579680100193267920954799814823964430533736042345754493401426357431461923390455153542425026149652733308517372000843728126791941774992896252527254197440462570982930049194441042620903563603552965590672762076340218962456679670932532797039702756542076406579797036107983993400394516619426348865512870251234521520099642761132521156217246655953273264458865887087523596787193559599615559070529966503020477877553464913675049494386808151546132640732841056023719025637298106218425797602150785153876889084181366226050447851643898156400659701548305856242806862263461813821402679172165196830088940992084940247009182918550216220637306415928374362899447519066700151203041444324775413281011362048916193335935476785192476333132734421624605183499668127190261570827541368999094238030320933833882926990679669497410943918061846778477294504032748014913313622502260162485578728879127603650345207156578131613842903691459014112427813580189682683090019937221202904275410188454369928799770482624103738526207963144109928736120610849128034519690490367925718371551275348371934455414969281548590211480721648365367959255177825681507913183029811975319388943378184537992940015440401588514456345128539162983799390713171175043678720264140591932191017883608016964267311648458429329987005071240051814974009394090743323662110082487504606785611424590711178199486975292645744291109339151891240415918704142980392758166623630900114864255839711848448013634065501141951759792917868489186985978125361049206782086569048566397512845429703343611560588896295018830785681658339698028504038969680602850240923938178521143274538407487134031797188699099513964316305789511475984982354080440609138971674633125791252853935777828720277203325656128133920262665935990717743809054676641748355301551989006607068340857263193053807114623474652165502875928562378853769059408631466285031885050555351863538516349583573767930033127650992845593811330913812858279770681497555839122370867710250148863184965059069885775903139082482601487888049122293029103297673483065015534219153343100052871919156478767544629416799332792971276989257292766762621681814563871335743661618273379077607216122943979275719420004456392777881343314095463216929419800350316817267863156788585497304069496690819247595395764735431015027223856109489875170662552288489383847195787297415854517930578587297592444032225600834878887944675951349147927997654631627431017758154470634558279954678628526425769576564776972072982091911451696583241319910466263986079342512251777102668642143206659681165041980416424791127148265428695369223391552854646318497650301920089690524998998137971226071876646172163696738075283619401268955766639863503773771185757438849521838294350156316491819375299760368909901642290821257239203563863538454505019023026799239549584872374514085017425332572759631362774740529549951565433497343243596260554738816366362395511314195237380366685394769076058406193051210132026286227955309683440464938099847983697210415170601528710634015949847053740675787492316971687677748635199535276288880159218954464403700918469072347236205498147729194910726454861445205274108113994574668604684614375527891959928186580384670325893377849681044834921659141402140536042428659616128297500501864549979637744820502932997936617121410739146758088197551264046927303548142205940725296414963888120669453977751492410130105446626701915085808587998556561087778635060771824283176638171362559073082459709424127858563685460605921818033675772658252388161119652975593773778637257151494820117631478474321306876983770285914270588725668871317830162876087204578129502934365665983301754905480838532907727332250121693811919014799076770021503788977974555210858168129029205675025755573755665216743421107821583605588978603038914361695910349403300042473248558228349017491294110446051784968018034751283858548212945208709525061984518612290465739852654252687551877858511854701372351913187583113839076576897685668511728840503607308541166828490991169656207151698191406773929340212939316369414244789327212721115492944932424707292408242216971587626208237465476726417224886749522392985158122033646273815084636340184247945801258931119007397830719486687982046840261107429190160946953456112837367259488183058345319925373921604951750595180747588869296403715276750072819046254981860873124439853581332890235568032672435815187036537811525375110217000161219736392113205045440553531626856179478033133652147287164840565322752278205437960516927509930494092316701917651914778435815298716898386829605690057153686365840764488937432057047708419144705491805994850106542062529902093306923759382793485825266730954451824796229706523060102231176978510769308737100694217574540403464643840714319971858249840827779016128244863435003738992078612474215019787363977162136401958229241494328062297635088625979353812561536464849561898589700924019447975975268804393056922018684903902927727655025616181733200993134462246193601543583382845014012861906046651408820871212900830810371251995123663841684860772034513376118620666523265212663276983555490620216857951426157963062119033330750915341890010312881449003611075389891906952902157936077824527099905978996344676971118492843855712480587156283873094812709256285487645330452459687967249091687061425448911487460991433978248407840400876267528471630842644976664167002584842422545075172012862632504086878749966850610517848955507726415612425053954122325680878622494032657216221070849761765858432685823896863464933855337257684467902942944298005396772559754862998879794170066371537194458975982799254738635369170653422599145713326380223369691749178203765708677399248191943040425550212512241942604886417943763371728977631661302692985916579421105713267066681920131141503587186534640370715034459980475249329264696901688284679369042855542524694729169454314304053919781184794016055509459304473547475867337589820032515513364561187517323811808549414468457737846120482151868583655777554398940630491669746560286189439840203104129747028812651097841406383588959531998889379383737318819517382276080708338455759453048217909405362550020196094826635426227448694419898514847949912361492361872407018362374392644598750320724428027706658431729581835982079929917287244120339009807031227216738246668644782548481040211280848586011907053719336119546785469902295552825439976093629391665683434959828403742399423174116018386513801247629345909087395117815308573531781903890759383784152473312791181885997029090440195689324948097901094445158873576071060636027914424102769472750198281721830267318083826795943996806496621973096272699590993028878961002302706952500672174843881100291693571867362934101525218676105436658718546316388689366971905404850359812114779838252860086490640200571369893735942926247771259778396311752300223037235307504741644842367103413263653581963839099069506488124868882505859063487270363531985364709804165109020356462344335450277396349237374445451811961159607591698294139640624759246717799225653577524971957293876963385934847423674497233818174456514020084913908391647848787974913251741525332983490511253200277782690651393135241320205242087046439322139586948567504185869477919047608195917929501749174749758770839244469363410346814277014956232870575117865816774198533321728333571781096558947100710349247648654614652696458159765074134495080277289248380977740046162087689327672470766217835829948269487010326980716848739016837934069608249620846862409171243584395547105233241867441059002300228801373222054768282906805405287216635569606514439805856283193328410814772907745175871119015236081460204295913001041148415952672209122699771277121911956126427849447556776143084626324477919842966983388278280011969622580049993144144410557025970775780361244261235905460266960403865276784280541848849885054543750562064534812317275193989423311164292557314484343618394821715965704025665055848795532362157418422165737920721536092459511126696225289810576793233559111322977009135710986480398189458195993599247819379084982950918404166893601490750512122981091933611531634942162953461167391108116592040169853584905217717713213989167737037475552396762831227382042271730153187146868948945760094024702919439570814141450432131730566637414296271406278728392287372093350012666284893975779442229897659259501678707311058186903679955409190604651141671148862070034637248089428312025794301105475019402352644621103122973396204795701722558833333943142857496899560549168292486756831332036156340726841892185783164048653050261929338951954164967147807992479161628112204387982214190535367828897964413090576707649922337813486284733834272376005753464098504889740118337523094621156112506961934219121895356139134129185502509706614942067072215577270919435652162888888016764463216398477853069496562505912737254819628108175277648208318005156113523350623120314546886701929083852021699609460210815599685484221739937710271485930457467528827335364203702766088941497681586815086049155218378349778135082008973127764315680851720710157764918015020124166317088763461030032199391226128829069521122113845329708929047650924472380760189228702574648266121382269281256668274058902584548068855059378650552432018829548781696211201172577272740558093105508081631598670524274269413218073610749593967083737189161239769140520888600290201513455454754774124927746942217743934426087817963009909970510878119712612928477086562476622446582632581282234683552406710867646681590663655680295777012550235871617464845783851773929251904950723529686607592424556781266280260516401047177142750009580264616893188835431711383020393017872963830387091008048524837358378624078318134941700505397581521770224771749687500559922387141210583971762189467375987360264369197712926037702931762811980225205126260007085336506601429496401211141097944920418967468789933017169839332746806605189414777464178203567552316123382685529437898839646348836718379378593016136173796582319300143377254622389192030565852192260444079133716784642489411490086772112265827516636703023622877975714773381792386084056222816728759095507457807336793177364563541513701678978726534154026443363853517768013377148361555052405844827451958410636350482105828655198761267342538392670189406115786532590572598790328739453680808094619464884059156417063233032013507925586352629967315996805983165700017296450158758271289318021845293354133037740534721768379146035591580926631679237676184953247781329880159386224536949614983866879608753445492828709452752795101731146982836878315716523161005104107502727636237780042440553788213918617382817749398797405475804596208548594799522370640346916485210041732493445747201612577201244053077120671000772571961442653871618923965588666486806767608453673792747437683830238104110079302168953487895310063446402164984988094996396562997976805452545561384395023848322664773361297452059295568594282413965275599347150656230205424572483993344972876761064482892236877602097197151151401046455893261683267189851149593565121007102007470380796219858270856421529991059535275279733573412676214306011006070064986947971079811281715123229100308666026022972035100187644505033174500397011712315177512172861118476232927604690127350557543472549113970816002968124006675879871854791420766495689891309995375260180074396098087449780483556522549057017259869261216039741618571394203580814046979605315830070184623475935192519763180532478569218459288840743949923517306188928591559658074841787629020690925594537585089720293655926956931150818247536902493469106209381538059775559167474747590176426754680974592096065534479737153708381524195797898458954964328934771549751172634975416328783194758536155382714594446334571850232165643389699017519803257199209925315706041251887132500423348909661149682528314993251506262703428682722412361523982268815115657657249269795432251631643639663686667120577901854486077517187775840127979365059388542398617407572898306500105369197824915721149068118517781203249031514344379596291866551823945805343001956251886801710050102788113785688130341838945759362469110218191081308818034792964640516311928180870830047107479831792352966566182539865202991886352615668403545856071380682727005107010367190295571880832963091485267802328100079761796091545338940569903090283686765488390272829367711055282295286879666226459509218494291390149521627474529600725576510859442758451587925896764702703348436725979115138157462760152400662741751584530573788336084261197844002109676065199806624909520199757381480762607712766032549667113447921648371243939506728164365411732058507015052327833701991998997763719452286053124745481277724080845371892144866059702483692655249401672820979824810991841212200132245391117334080178242559190245784791299353007361516949693234998864195799563884722502173795446734974114659870314458532216699029745845159353602414638127021951670650936788222358765689736703769603965433107036850266021470502308289967859741779141351358919979416245027588991762184762080222748221304108076654777597275189321464171658304077184239256880621181761460075029096899454674948358929737143475365056408400027049343558737620166782044410847324076004483050136906369227205108078750021934999048773801656503463105794720479537526249410267430044626375995347615038262641282853443068972214295474366995405091508362144748495645896936288076413598671601533908757054590446472590862240517033168013784089107933278336439617542021016775379654211274536787791437438048876439002555165724539432954495568347558515398248388729147326502882591782062118586418769198014713636340883006849075175801111814092933752497097082684517799907345827493766273194765249067838263450534226056416509136266147299780272918214420250281609994100525713767342704184824252124404881811516389204431479780781008916673503501445904982375688484633008648583541489406775160527225671019559634486221324630034954120225252602520034347116518915606301766936400226202325223454819580683747840198409879571042093532257827447156360071524284102435502116399621778138602706603365418282169117825002396147652182694344298740503175964005692540466903320808373186084627176736908638046529996248916590958264202445639194200119795232053269795151273920609276972839206003567530928702080729093400236602834886873830508094575950943715737447367077473765011073951023937257804024135963277884059058526583172919189957915393974798234613852906967213804167904919425491397804168888889446097678165508651212225292577728802878008309958532660814899463323821607551315324695530634778536560854267500846354921354092289006005951801033409733616777968671690227987477875471811484258402525316730076883930105019544919550046943265927446139566417077054938401665165440693937840550175981118047413781720128237546746181215879082612960982359666695277937984054472032997151938271001603197434518928699707620304927651082843325124322833597576988887864377383540009536658329698441271936619529196861727920249792576882950916135441566463489528730445406905358437671560208159921237731373545107579736160185484971393385189970694797846652751239761563501609059735785459448761648273100878071984511330984900941264953175619716291358985412266308514759119030215134066688114081490669016124514038107661045951942994422743472570692343277239683722799045527672480883657020297047918822827719464918084392201198719837252713263298159207527184842684654696303044238412435575166082569901047288791759917098045396904802979712229404221297538119006474226516450389927549209001449080899379485312666990898273541727694611439215282176653006567597295456018229958950114245718515570652046742239095814136959341695625374236851972690524633741051792837475413036798166283280774913385296080859869245626787078451021090615626721135294579354926883527233782068246070226549185846614813680127925730648904819132337389675270919954178338971375385713062706111190580704854826846408734351654774833809702990792949784597393234203540160829144345490959075282388931136540849507165958436686377007525887455153949565685977455208433736487419155421771543709922553303176986415519585398689001836269942937267502132659581274666141641020568269357440374839041165036711110038452267409993893251623412403418669191051235856229200590715696949385174625765083598231179840684137460262387768399813004580663621116080209648148774432419563576992679402115611364990567030326570787597835204449558208823393917798229021305497154405502379624397100641841821685791025783433813708296541362624835280103130607066031725091594112102538658673393301980401674460516071376945878728365034228547035897317431373182167853898275586692957118990084462537526337503288333783469122789901429642434546864155062383553251639050570523578155319533708622703912522749556881402453361786019602780754242042772951537850375730740588454039158473771941408811389196621771984678889190452046515136544506804570695094407823018670513617986400672020715160900366874104456736163545004174401098172125900730265840084139607852003329860585664058067320658414891120934206255195632133934220611995948835898538312670532649654346897044919319691708863076069715793366024283726853613316265469664306115040305353959450274083301497415059436058255706719044678476128035978753803929598422388273050469439279890629277900157227754624151858769075560128798310519062540521956278508088771634057840649366072387692009460682164888585771791428518837504813367611969357121470136632274804843040067504249431686368017695179300788842614375844979031529519175834102684358622794099985776665412330894865982587501886478822832697773308286213014062579816275464700827060032894358099176935217292498775064037195314423637929101253892758134580861678675923610546856119991472715205886970978093701798472588432106856602011413775932574577220697220527479233481197553414646781091026215017165656281086262976683656314944697706493558060623887908264017551776164824731676285301556605185808537062323148185768104129385717316683112093585023846542602176803317108914351102187074279153523614192798999868239323865114953065600983302213010493512092538966538875431476659100604100642142772237438469217579996514912666711546014071746164467249741170379683768232732788218969299131410926782141949784019999780188564039157185034862352129624595039667253220753027095539054771158206235008732069642233289320543330582480843728369649358408706998505277270882148189857293859588839967447901326319665124193087790665037524778380679922591188665347301628039560639360096011988799103428002111548051591665974141113794352592788386998927982758792894489983311254880744309332991606383119588085943742692648839805023014249267062105441160872615954276171709656414356090269531000091604712193705186919774168421890225219439304198327048634712860587911262542678296591317876969099044615811653471567485434483692751592515443557074313997515451697184854697804403470349417830090513496193733266801257075200565931203194473079071391852502483539469391102224263016311398965541554947519239242864546261801381341994660259270490303641454302650130186675490607114442775075397865976517227291573491609263958554177935291432668635555857469099319860408559328390222232243117530940184264006388628537304426195700886415254014962100529325121710713421151122009663457663621439990226261873420120789046110524388173923789726008660404139790312409295150489745822757961757505171720820748187812020371054457097224254474112189720245968414374782085617745314320975633899104378717530565048888901414024206996933977989799898469753186694311838663233680994627899909587522396255227304634094112427172134341228311935249700527308174188012069938569636892956610515923460558597027914768680721407427048594685122809722189978167033220926847647687534165392868035464198591295205655079962167822111498485481394344306057403127681041589798627746017590751658755184602088419415973375105757771654113275368883801729320174035448273201993087857574652688739152339165292348767297045211273743032046302680806160643682524635111914947208557984982350940094332896127391967824630499548233611845264840999837040222745568933750260109674844977888531487510867220108943677253618658520897646585981717954155315491468927885100181249427018032858024669380942396348752542603268219557143506810861163523532972499904652174754805925339832371554327633523408504535414565740394855724378389277872876592238376739403405142379776482888189285849436348508240135999301464450246561636884045750789118864256058330547837290549208902573590234190876194409146273110282432011320944683868284914758638615422454243136107002601461603777211885137605326074129080805316961400372107098938011293213808671638882378447957001077826891831526287778229171831014598164055449109895297148565196488701430984569088120530683328569599088227067199287889495096716740978592486531020459138166391490241293871507853941900299553136885053768434955307720062791415400526779552320472113089809359580767716250255797171865116496738036654299938575195613635259806109806270915050169316162644983051638232815240352876768959286609712823645232416296467488317397653345329672919904705253268328934863513508620654831105487892676591821525897445176606784440896990240292496590775416350339357762644123585755958739855117994958369940637142398300062083286156072737327362855168966730491460229671780976037222756630214899004119621277049563322093834498417271483771420469642167487254233186237092570701347404861119526846229968348034273651743722844306604621969448843160525809292315027466763246509078248705465240900478560141500357495542354444573259557971676581580567302185994322738372342138923923926607887405684495123838493324362246202258667053803210215915434491380994714267746759379603635042084359600193191060610678480508986709319029074473856074662398485536632130066898245776516184832896557242477471350642506269743449473209960631406871886781621956196085025463351134653970792690078876880995203511683869425307201065272205040862534241595366797341897022038636764098359614560207555032701812946652622344432954387251553400852515446838372059346887166213041271314466604364348897646713448462310597930768110871280745941260503071820690978120129237942367644105581116986033887599107523390896042310672724655698821966677111212648427880296387902543468293722209221908187549613184351949864178354129787936590568010706744980377135529745566231322121583923684440021287414128271731227025370950122100141821819039411373006195519571612483790095715869923125741468914873078856677131718348093585608426807913133706844491164726602961087328302188640861050364803961751538330340996065610469019349871959207375793283292109157874596301943024859283841136950958648964209345485030680467399269064765446375020636748423707001968887223656166977604245792998772540996451792833674283580793134561202737529579037205732273630014305934700869281317201887792645472616568928886840260420255002879527164603050876904015805309764155990857337971764243385833438762865840385068221939421317410464400717877943121047159280295398004260378379494004122168549135794571917363512474330240865359342556341467901373224033546001274989436193024498932966173595416621439879653503480665173979307746169447560994354932819074751697963654448071593856383685831997957788009002881138280326715254106693471298661497312360816006166622260906871021655144888631950910085354970604429877126694249479553231876384447766549363411389367250978277750942742106881498382707652856937611489745264292655471835333529665160628030536614099204857031108505298089510897519553612661952644654298631655551932352824611119636945484307417714604593798962307164314207296979914035313120602762814774871268837577738709955326912013647394242420362947714099952522629100548716848554971403904375680195643588861431595080984553984977803458682580891438184876900428222296004512794632489828887914310145756940643859197455658735956446139002044036522461174980532972147888032023386092138401531470941431362806543261940879311444230297483464174237171695020978760271472670058494651143669157388352995528364274379621731849951961912046957465345740084648669126864511262589464547475008188504447635484116861238669509462753493717340171816183877877579020121610389609310066157551559122982406920036121765039273756182288424983625662369181856714114379046488058605220838646795593329494166271103566775061931220095162361365893795726425350298214363396364322607062732763065119564650088842339300556750929010693783559481019994291020192953532161512589442455013900968440643286164951047499218943504939718075375825566368779984604395646425072752042355082885571618043748277282601842738127845517940039687601064057917657712198242762122301986540030308988544501802044699903709842923866414934335766921442750121484983013478899592956297858475712382649112625174457801435712536065223989770604218771123778215140495851607029023420113527500090810962558786607919745662648264559133184679366742611741429656225441025581026549654798452146596345316085659817524266490605871058017681641987368632763889050933002583465246591086115946887334271502341742322460738465965658123674065100964852598277274903195911468130571681770355340056902393206417096443959224797393639155327657334038772672793215761703612198844968822584002783379496078033259812343671951190739697564456067783545314911843537560078946579363339693512772731753745413510214251356997442981650431842678067425492269498518430258737627169649545690556716124555711821663295038977710674189203515454437199807400971682287567595031020725627898257035277908026607129079953078504460871250091302956852537667526971489810225724813332713952306434881604344694145854528547584161396581848387776256259988557569181400183074856527137196129712826683190714993679655932893744874453802299881368913520910964968020302890999460819427483491725906908282279751396295483738485098044972804090801787532481440596059352369771227554384552732553010646883734752486587611714143841433016022806337051073438142927785375333839126350898515505361309831431151600498627186312147453832582824846290060118692811576432349905616665717390703566676863018939907262419753895823992687611723227667918003896384203757347301681178719768105991957690433776711791217225235846025322760880489345664937081069537529378733815799430322070612722779705326848770800318790437208699593816919293602695245454425422938145175038133076841146146005245711838862637932658546869754015008218533040381248239741129734407259392637607651312755907550323986384070879444816571051432052069879877586169085284731467414906948020994814347666367815512134497510547706170374199641871146648086588996139582503378210482217885878034965966675924165009603595862612823751434426860843705574509923092314467476882437695834287922323022870701421408143572956891657348755726531545689509820608818280829603258318761594658502584077235240555392006726396290212572449858194142256318126421236605925543650575374652743681079986144731073924208462852185742858899026612599060407783964602000649911542060528353030460416442722213385552155652467511289538914467217001046300249236297275578281524219175961378707565594176567924124660347764235878450309568847101146976518978493393099991849581784326560097699013757261976954423156816315102522010854303056960797946611154989646279661258215246078666774345324163795689365031149244412901180928893728874248853389046451623998664892011130915881240884558184868503252327017294019819027654390785364586437697615240762696747994548905210120041941562804267039901526037894096001085815205011793492154131628377326604330221033911638510633807712873677086979605350535217270056145826858010766990282571438697288867518235940449004514860812624879402182361755831850037812125172990516011240741271092942779781709581592005277809497036780755226470316144199664627805460020214353333351409067515515465905081261665949077117898894647411859021200926966482859002873524230094706829874633426510736807879728390439834092800951282760237317236775727121073433688278684564637434557826724128539374617908623344378441933902322643230097482798060354773081479265502613888504353637860141935424581359457127205545668072259214488409879671651432421700160870500008557031694982839655358276100694128846833334730374636452383779431355458635823208033858715147698070324408990660260168765877826209292973524585769894089384286346112737754830856479761113967656082229867810772167168711588532882486307353890970687837470262684069787395334560672132150885035717550477932628550828976296470174418175740411897175357924934133322826725241296480434380335279253976226061644211346793280412752217120333113709013937939401355320526909450432356451532582808979801998195952970069996159658992996211702849756487150091880255324663112229308161866365172349949465299901445160096337008377287471686205646096546242024480734164043367756667505957423280417487516536452512653124244076403870392366725227775685516717736110121937807436034679820972859210076590498540658742881130052136734079957672090135487239117650993660720456751070577991775699676699207441929399774850199582276064097683670625490415538063606515656467732194374183888216252466055284672367877488915742122395563641051959565583202361015357529086552675356184179775315710472456184562634405838651501861572203430024705058657122552401924727053769426447350373508459175339924328430869091441328191370225833705708080628148921915921445512688761823718138697475588723778372670108816000441885646673718465251359305872163390434698421239416978708933861581882241987071478752923241383725422627498448889826680434683890612604825615126058771836954132121391974531893717578546218136660293451678008337297027022711618782567245793206765922647499379614182906127958445590501614149039128510568958426424195758534795521478651666661143266094288145966307563306216850211481371759260623452002890530238197999415738163942096374276493102458904492843338663426594525669536241242268028349923030675271752183328219330641397572928869471938967699962739903808838538841764774396442178688204364628017219837611475456752557220445316548787685860563564497364267551921507307551530345677976715692436116140097924516338042227767164015153849632504634172349415878443308809261070536191807924672262907841318427477662296479425383153256444129317956442928227139067844134466162908660819200662085483209905383236254401883291581004751754343583958433076752736338870421976923473070098716904747820759507401355730674489850723376912466211125130035165498023777837414848103241819017747785066110729652236930692489762840500029653865626571782372580019199362598678517120477134739136077674793940910744386636609508635373601772480277091058887927452754264230838805630168483517497371656712377214729898720529787864371144914209424063169511910184035669524558789447531704226419275453236502697656835137654072086108506255863476505540967400950632737690496360945926084362219610686734105502157882534320634325238510665048684634517754366774805215640828114476441328194647837522498009474108935626144495939670495381068895983494032929230538573594444535666353236301042179299582491452403831664477768057345901950455614479188318505755719742963989109041098821767434284511017153165996669266558325333518308782975204601842297011333636973987676912183613314110511375434587682465681255873697471415137755617974835956629541109579847125936671644381800952992065562930289072899728327891517997495251258381774884445848070918052677278896548651241136725747236990932887508351559609797213353923564293859810677659440951779549200305528129192129146978440218837161430142134878603196347884600808364986106634117429974852276807135778195849033338481037767086823698971962924760629459480796155840143467442249777056428816847095453334553432419219321215657166521747238092136448305692178103623924401824925689669414377846886464489403796137180687775736666691060419368727768058733274995321455163237624166681750959085592202149132598756443696937244247370944206770968170450245297644131695694558842727621609280248377831987133313568092858280109269172193415971907702857616827558948988036604556649716047836560752452116002019750633797050412200361884965624189478118632738385763562845669860837454167949091445654844813464560720739558702810144460506295450922402823193593765465682187711269737769310873922485391567861135914135062694539682080838411513109973273614549370764432402926922035652554289301981873653171315201956973773711700506887476192895684345627740960751203939500755795771738146427656612647895080223033795092529779527954302070071716578864753866131358400777454489941147007363518051330562737492428496738972872301157465107732576494052881011378780888959153387990861411766173479653429516977241832154261667018594994944859673714565022825544123613167083505133630219095488848781772061702805931037387520516943643826589476949927012818810517948572333919937389790886450620218812239100118429028822461164583864834830203275576173274918545503051735391761058802906196871809500790670055863638217024657261132772188896458512364718849025669323588250794751015481891213638608012732458109867651829099934669139599347281749859061909715395170133383459121304576113941064815228859895762766232142317380513148783526142978271565779836453099074112001792275766027598891116671365386632376995285148192896086815350200327340698661758468968914206685570388744330562958547094498223425769503981471186494736601817551906299791955471706867910571517163413419299715523734880621885022456321101728934703212509128832044310154268784522514287331180153719327116692506924081643934921394900252785345998956858900808017461933930838719166272851449442695615954524964659163635402842230874182355550397229240925356372240933133803843321538895075166159863542689718897068569377862321022851457552020571535082777508467862692186503953280906936388736730680978402786832272203445940346405694176189308618618942827943083441776109467686148667486015525933493495340880673351423191991876915597884855652524779206020056622108057349427495170105520306629300983195755363630294025752961281709792944603723126026635834208725026688060601909710657794814297188839324054271366291134595872638103497385965298814859465280205529693221148784310201218961234049428531824612859384314236209997756524800341390773444014965431882657928872586921566166609551758894354273101397794358235702531548322403991666521448154192614409366171102402674612866436409428240670586760741834497758292458927226810861004596776223159656044178794510054347754415174811363967881180574037566549585279088403380608494391929231081950815166763849789841900894925559213075538280603021214648970019418683355639439449068404835545856105069448572288544923229592405758299140263407699250725421007227984127561801718382860388533258081349289967095314086140594525327149349620608410728280710734035025345228988226650886471879646160306688864825295697407035353076552547271787665816207964202930476428156562201547337230685356224948348703217874629622776050273400768057722883797784144617927527148591948775313417459418923139340776126226042209503751567731086961726574977062337195702941499351615116891058370240937903489031317236819452339585140009574652404360192492248614507212579253223775477212751197792644972022302535525234896896803100312785760664307448240354224493657421507109933017932194459420310682875403968206533376994732665153444335166736533587568769570076793629813742642581385643515801733744592960441891679285651281475622229372400531540047568672452270894081148959782036443644661537234841797095426962791904009945883127314337602344739752882502903294961620733043812432709633068452681751706832666910018850979788909448666653680294359500642179398688410027613395554344173473217788479000592289059563294779609753549340639210065205961153864305871611107694023813441763255128910499002599736705568619927436206209247584863479231639008320828362897341768952429661460981798243883532404423705979166738356357850686741851367801364062305067982752716788483607163641307849132591868218044691242646918350234505514893857825215778313070707847459221774565603587089802272395756709575662356879467151754877410886503698073092271112528126408018840414143330972117535154179275657916511099751777564438240283019490687142494499785573239987960476046462171111679953331889203316616735962556510045165192584426783650090506759211707213388188418003054086187186642788102160555082852293111486379618854444286914349346595831774200306742729346383513108290884938463168844749899203869676803816525304822575861989529801794561949154500704133614877073687774539238035560559722838585116469903601341175913857839508967687501001107179801096327732309282835758187482291951126918758142236317337793387553617777850216314420050207720711176573714078448477116876231365772918930967782864758509274609272706464455771859762420191008936582410858637649061876483905934125874105307074098229417793548503728691747145374852445780250046311313341373156586065341536318889449386569519989763596984361450689067725359454207855779967632104829254539230131784060955744235096786742444999689148119546940826232761001742862818944980068344162397016883845729435905905796976975905314842916083382794578951933260379208084837188968160589677761465321991561593762395858219361645339467701193710336259211806459477631511861033675430876720502003361077239690980032912959222309812938163551885396878202742314159769426012014597706435486974342064263935837231591593595573105397072431531241070124671627022210719928544086702094583740083928759368417814121652913498349375201075945393962480755122712122496267674007081369433533473525340719343431515978679632168891139993433639420409044092761211904973264306294720706497410387507725571141337753067689439964568539580374697247238253298087213999720476739402614320777291183589001135785115931927477718938125214493472968191473790117673317728982299482227914684216835151378287924466515878716932337398869449187587465852374585661135800550244316562826308266470393581409989604589422125452715250041891834155444902314583226136113949105877650774634260521039245365171941519468243394736206168130394720122158208763022898002948287066122591144580963063977370676056469864538610135192568152552409928715140374732981906575608177080305783538700316633000771311314399635821998799870549564055449955417073028329145247814575093936711615673532523153840591641891043583390876659519410242516257313840915212716018842034415011777537157246865837572394913812651104475284128421785332204764758532631054990265707920644657215048852885959926459954528508049256601430647818743784828870832694706450634019986162507639562217304538530776688877422163180019887705745039637739875626512615301414022077000253997538022225302583081307780426554008031496047132449787102778611548835283651938594908340547131019671702279653530761282713267707508493001289035775664852632649423922969956979496643956291463588113167924782901600450223745241263766455635207384652707346058636194290868797564687815980675571560790324034898342205883719991929391852736429722227133687436248679900403995576644820183028483488635343633260738020298822953030054586327905202481518425601215057149521012851583860495889944270917864644671595605128742123201132424368149589379192023230016645041783155094176283098811695866824002965457245360083641798402907042301168471360805186233143334465732626242861975328393312257737165743637032887276768712255840057422403137863082149586405500446730553201939619752389929066215669897026778689568076886828565783474635992442235058893571527264210168592251365889183241735835684675307739171987551030889131874782910622375655673221848189381526873644164271287396497601676615178649427019127934474231018689002447125637552280767702018517377416246910055261929020746739667552699563767760739217893066226618844662396735840744489423782990439617313599180045002358732291785231413249842686633171094996833499228352753833122267537550712015125959021681275758962712511999681865141002876643032943414017968854489661256507536514737477903185172034294892428583581181589981253129510842906717706753207566782736389643147360426304426187691435930442373336965994002759766086451560118249091816924018662473204769886790444361854514416270635411182833291305438033212732566677975717649922207977898373001419679751559127238209176044202385257640211813278928157438415071834459898122527057626995123064626335775843837382420390102169572541540748866358256028148342433679736283023948232215984675485415349467520968781400903477932360795281283324128156886795025428081553108800466454622811757479753894636653364995993401261785465564845033145600550617042423530072918524843980369818567872085480380261501546257325231413230643186528153390230081390809178959233433883294378771564563898982444655170415630818258659577187175797034596161489189937047591530129680859177012350087666970687080988011934730093877073869699987870945522507125921266717372842453734496485067204234149756858488506758210609169454385244280646903376660306544569990208384856565473910411490271552947414634822476925996266806750810724068533267680994599794136751425858017746130837295670724170771708623625341237185507146955347423864213046063147005432080734088383556010801612354259559233533410559973934452665487712169693107331225699311947931561698688960068590398695400374864672079386255697025927813359735562906213953091256105450026661107208768003646811506479350845275307044925039455849744823703871782410184392236714518909940114816846276235730550922425242382980175021029611913347488664780504354898411312632558505064679190204537680268272985709044046239706894260718378706460558420684211042696998970628781246925146882294588922082504091647475809059255464682268271406580958731440729792946400429548576746758141730378562836749290316514145170345930680880944197417671501097734533057117556856995820877134347953566598839426929977533815934022416620168215084289310104830007352301366678279001959463374481888076542807256919436313757456882564119698537355691031535236991239827418853411420426483238832918385196064768704817781434055151462119978639843716491052388073360446148538854471586968645119938621399773352446630460750125187524520124075270859842313061218541640424788916956095149884867168948645214933081509802250959314108382031663725260689111331999069273583734638092575694225629161427869300357301927797326073851962078938202278796186295879124866005976145666637665116138575956281905586927844447026464405353325273795659074206585635838289465546651395569597413432308294185806476625452066542359018184635383888381867419818073161588969135020247823542307211105085394148495777873463401218724175227370113262302577916441250330383432877742805063824488275284724087774178684032406453705288595899928818055258724839371601836447260270043635441436554688731095747384808523471359714567102364231679131880866655951832228632766869321829642502667184052929159405059948833885662384592864672252168923647407813907740914845914077659448354936645752233024896542180438729946860651018801144669600540478783381867171441205249169868583431973087604629750032285419789338274367524587021703441104207266587599196122869271079117030869728399638391890585336292399552199887319019424047063538140639465365514947724123705325098003755585629149347315207868038733380738932681173089961222256867497356734337126465877366847034968246514996974259427823540232714804676104218262712715504470231881787441267093316050595726639719587937416623358107437120529414417085850483299912940062760987519013933671479304737883516488322542884489545518908928779404215383717788101903404788002303373354493744587815279953186923142496880395048172660753306610483000416373673077979331234823418368213184084086966980461549632507266050504805014854021168263998288249033933575060799252287007504952030801877115450542093446477407614877300544698403809543057800478954832544912770004012516549522756827466060809423406752986911189883784576898169655395072878842880690698948788030328168671996388942903338409927625827549419368073072622296776945991031309366237773137362168412825991640297401074462012653750876394284062605246121251439195012275885980295415482836756863823766028029466458863311692583824056078056712884647979501658408010027533642828529417775361203323044635439476483257742980521886998042422808750425902220756188610478427361230165976625002407343350343631277666713749489129789813045201941214922724356318253383614308858419933461159599698235381966867844364111959287405704268899819792870206438733845101271520891152399613531500862015645595234316393939454411733855935391876632434424306413966485223070610749419136769904804239639281836975796213402204921558393496077541914780752625728668349954483178649710309826991135657133908010284715292414720749565297461814919021812430426919528873763171961366725154218351201742031226050684409666027336867352024526038515224876368253581846438293228285757005633333840223408644001693688329045498899972932687943460452179897471372593151762285554425163320026564524680488652739034023760356336388817225501259302629766718480101455818090726164169368640432925709245622498333091200271557531750381003435158897895706243459494130669165099227738933128426498470225962423393592586062340191213856188165607433153070965938324622099384383176449121332445174896138656364071980551841501760835651528684735317932841136845882780493291607525194610468401160538658214612885597389352613575401721641630731931640101096029087408624364290975305355226782238956751006795364135335296671500555702816154084484409327811997628914417963547954785626452524956740814710748054558523403399118076842739023076704380956317549403881302189943094395896294690817087639097263897970768051106942927890718640708434854463174396720666442479242048360224137013783181240312809060653091858684117255001118393747599483482699566129535118258720142538919011898863738163426639411468402975321573034777063665745966624295827734878062461042731221118869477324817783479584838154082615280996437068132566314464416041588338937580333004901039566474523928729006438564518938606751016997329098892558683940153090635817615297864698988435099315893255094301142664265938504840459360249542363303803143501046349572826131727349960165936596699989164481179723560752605970293344691248444140927691096843095360648636635707498161119503210093731250629167706940507648146731285058433993582865045404791086320373757353992661936994904612258177956938309644908061550183941002924594688210342172032345378109910521350208773224101695216260294263469797000677284357998463260120678199914582298955104409985894963887857438903853757513490233189556304032425275954033705017544558813543801650559454011333490385395380818182625471778557105332325020657853459021243746296280554401200595839159678639203805355393631081034193010544541056727630924569749897480500300841185870297172724885167006730168606727639963282697522438212117988595968798518053109538422510405124822532920822001279605777990314585131321476117932665548756790779692900148298172274566705861873499023751476679381721058031692447239887689007445932884910971324360479878605536890717177791417173834854604745537027309902946555823147520567103793568581208543977868909081270420550247990552102968460700058544171518358283158183022897887670657064815854313360444978714782324403813455861521856143434545721466188639544129990831924572683681794232675402002344705008207792722337106169752822610399784495533775255852144596448034783312923533787493324103707420734696012333413739243041336805975316643326560378394279198131280130815914860742841378986857700461147528419653692243583744569998819250261701186411394214866669823697870853566572525868573015582575055647254799648609619279827220982800219847216222954770834426234649238128939961269510332218861914411002437328639754177878119671279785263613655096217730205034245847957563241721278713238728441716495510955620032650928727612795113473218758872368896219923092015013565353923587725285115920853159485013929961259341887601294661543371706450156635209265488858096946927784906667195943858875168839264492480300999728886301432367409133205365671705014842731339318529849318079161754123517233691324601986019053951681298557097584750928051860820293199932678306261000272342507479892326835040769810157806083525084827805321965387575656024082619002946645507030139702944040548305480099276040562646211789212122586977323833099417661873668451416654325909047705651128282608416093248143696404225790836758853991398189619656684073360661578640902028266805091733784346837734426889497186475992722014766046198710803322686406915737734484823552674298321525912901753963264580649643187778603433109167038430435955767057629951200911391168167064527091503137976619146880745909126864931270475648666924746208790462074128885558854819683210587526756855791749391919337160661196530824585727215816634848410578760591341380727688897555339885713025305719186730453487491471980987360640908303534266894429908896068884643501675551983812821741086452885138591684896606101410716398900419788684821274189386115702655030730416217205002783390790730570551613487136796178722116410346403380128836369917955291562286333926388059483323065652538240862718808075821182118100411536444220648609198949903567456049208388362864361989457489404042914891328434657547693510497653105857389507558555857974635044691384950461386237650231143376616364153007832320052456021936600649608660439561882961893986133379769053138454813270545494032848929086446983551866951592517612632032876513759630312806908215104327994959958099431554474437244475452049121511315310250936018465447330902794134025484940947507133894699968678337043166058257090229451886120503754993223979859349935032614341856731871441193266092735168237834104275071573467762038214763159873356623736764379450577807751287648543374980030254064227345902216774386346919778936514941324436161228767665684839548441969961054699813945445034654367262484253796794068487986422428439651437085603152128428643938424687045990645639001983767666431060670369994208674184840145948213285997517339824494789205863571355582557997808677324436171994360765353834731558482389084260897141698429736543108616332685613429158264631119384781027416456888798366455917658038698923899386490683237366366377392594902622850945754670101419247434020078846177464906521098485740521344357036790803346687348288366415231835644605766872416659783385388451498838633330437886533387770498908971555589122174942731811488353064655529620772109036993033547164934074941327614505553808122355254166271321871451545453057452531702990973553515962914035145073351972631551786830258618920068196348676797895656989396014394062168721006652635928184887398666284068415391413365894342383702119807014781101739583203895758989095179580899380768540333617699837106234836629612959666225045567296796980187015205787520017203986732853645119443529553886567862866093999076381540301768863881244415272105806858067748139673118417109433443817841333123460117183816790674154233999958775930557692135992262117636845516391675868049558571825812402339532265731688274475643976897724809626212067301382102796297434626155540165820017487440536143054892487983423903267961315345440680595741928237524832803868577674355333952789287074585775327347435324983444720829878190014233289397441354793534761183603766429493378978202849943507151583668222356107897757293922148820480818108885839280659013191082372384720639784507704212909795160520860693627322586190357286923578050804394499410435151681361695424509361965522287166923865068304279696944380055120130236877048262142139316603079878197666360947665403675741077891720284693197284369165533989138237617825204046397429349608285276916694082962636304121384551530519522443515901329950605270280121206859496047943890142698289559331229195997869835283290144270743649251333571483905768054965994205232217526585880823140193666813611109848910481555935178417871528449093438548863976874845723911197416382849737990012311946376774564507406958464474540622439347263018485844236169710132359262448190296201250734855039138152512221851023186575039480613252742493462408405407769184565698060868364695344369621190863216378273406111718005184549271811594328756277549866828884415085784194464769461446953887655841387942792063717744880617096836871683132761263130316676228788006096330038657300898545812838347801055377293943675716328611340487636376324721901104916401271246601339289743622813685159769882368654005150725058153554619093811710322136466183423333197613812377720647616458953878336973246513825050603638922170314666635634963949318367970815696222345412114512355010416808868822151487045918061490546047753693212372155434701240197618481834044982873581742374853026683766866723688304321626529952778294466648025429227291449766844153767105671392543430289944966600181186546609069805608444722055543516882822934817379670778049978303567398546900049399532905013747900232067426093973529801994803292646339034268445746435613982769068997606008332236744077072766235805870022818618817334040637050026078564952595575350388271456036954581757996084353839160090804102395715485486371262719505906019496726961542630782731151261339621574857282720564681948726634565894991808227231496134442400361530947400350460958320634452743286037113336601660972929034085815294042053746714080803203760771082756968877652519699635624698398104463322389890684939119901368146795361144853152055179888485048861651338360867884250478763197441855089378748290431784162840010252342232064608141610396879167939534474015959927880714862920835225677377339499893238608215086246773155613128967130288001832912525710199258309230900106719100321231954840388265196868479806100884825979120285312540742494386507389444537746529069935478869687748518286068990370826603546630007523806414470083690596235211849649859862721228225793758944076389418875555212466563709410260712845215659895810715689783516969388831661882204662499835786336322845391736360545549222020439313093389958777897710718998501786031674623486242855229742092194616314685559457391264488394783210342343193889001076111940412838468079813381880553985327988677097268551827577016157206572418499934358385281482879282761083902383165456595972845136625653954346327032682154174448379319331388945172036123207969054492429303526852436886234247337214919314653160129613428061248005939149680705324197201842009969234651947493540679726869721119573844714711047304545219121167099349794445485015102765117033289959886380556997926453270249832511596556210081683376220985931815558498689946713764166688190852383376506207073403005170605381748455383679844293231463835272160728098775821032932401578066827601714746861173722980193930322270058676179010484080443398695326129408151737790106510245540094681414309341994510278483296709895523195309875099408460501931014330522523732423038635307147015768974960232293781081501991311432571034216915240139658431995455351113625016345254764385560089730088959813755373966246181007870015076526259222751126288325600975644532546306439458223316634900191694966964730412449713792865395441436062363154030760344923800056027498884673108244336118156038719630570040629744192877171175417631963885746220829465392889591465967734304682538863918619099996405303115345282250393598096759839880775288420624736264662620981852506683880815412866351729942961938629980939566087058722631777597018160484592200421301545515147722626242485508456427287553474295900340399606006126655825498430859781612916533580887174867583981978105697314741828918145296989847378019977801391958801273290398899195593654388215413735859178122639318655465220635716721460338943018849490343992605250287869245830410290245630207623016248807771839759032431628419799163272832229315778660811677538569098104102171890401583075616016458582002800446893983510607341184603644799574215050476561318258747543036938859583677115069369583936522919151559437604534754213325480742723798578980278902739301525390589311250643643494390664684412598766766726264698431808302830298092468918025732944587451579811264220502797472632652390083924490945260934068495477268622021863758497559378909936351183049042233510122987460037976441396810764588648999207507945813361383746903849911589806102342089414151251493330969823563533335759993417215634819370610136681542796568643337002733104966823869174650437455309307477144278026848907670814181087727956908302944028043098049669574338951218437039957709377841446709912458459068975369711294537022584642079567444153088329026972949484974007465595374019501619472856953683464728768311970103484709661982144322368803498361109853244091617800706035649918002554850486586890102662414246184764999432928429307998088036453553745945434572951327206295293263923835583874202651798438788943689976179008721485972146941466423212850087089846473725052334363702754592478209299766365098144390590200310803520310126964408318006804057040066267520956656353862316376107634763295649173681278372441666127595737088021018052933438929896239870101339776389024318153190018702954363562241955962668712038520125212060264101771841246048313420366945698190327309084374996864450273966025280992175041669042455100921738780387924082315924453047605754917530439029429523560975232598926625723302772463352549113372637364273019946495313317817781189059602436540695332081114039293353254161580418331249084063996368801167819239297491336273258823466488754024732484228757735374160315831440264542460007246887020939886587895863536716135117907392162526016828102595818525383649909258238525542185045096452314323760994806144799181194552637139270967701563949086449913782855729396944680257894302832267960484995412868047681396651838614952311307422911484387597855698147075849295234586186225603725928274971570850910111084060927121870244559897544683930856439990539436945387393641414349559204208287181155410014486147598979439409645951240870007540451962288707441744118735847141888834504264398768273937243855060027201308812593274726804167231877222331350863979045966528440375196161109776585825992028464931053049474372251080082109215921668869904254080253565189616216430210139807423751965261466416516555036501628286477233335553121727159985127435115860705689621713020534449511719436760597550445421335103532798253139553898085805789371821619037070990998557211681034107952706318311554173016459763653309695205400434673191407367588958007974515025846657437008182481380150827927819012922722139850484021880382873564224150173585168905260473859830137280346009375191258607700300835435378762805060701067816120230573033875766419099192721679885482694729710627441714260146444078659609569909559300463595946843553076654494288620345973072652155576356650149174183716782659240256313111082897949767459210282069602998161680022655523739862246744805133332257451689294825965916542173834552343172997102802679188484432583612713089871484001980461378825076503068467369728006532686552861619378182194037644648872550957505898977895636076287701466164858682808610717314402640688498984609101474104273298296611474131875876354107454202796611851307619793796849968256554978749762961487739722341127262504055341789408910193209652038118182724284700993435004898024520762740427504708212303611996496855319574573547505028706507308037335520825387480157521920187882220581710289598701523483075656680507936721080091241862985430898904898099858786558959016115607519727802672351054463301683334483056981970594925925510720789602104306104655284235191686172988387406999212041828155732605088862695352997452562445831378535220007752432695602059899759515156078534315828971085995165328516637803820137595539584843129090360536283491877204491339537211980344126381589743338355826351613155350417591521770944186266294827571127222693664890320531362940528219975177901340013452190454118558699267364841567300488130702938051011094759014118413677452769161899925191456753904106763751156661333254353118843283657746554995137684946750523456008917066089605841478638988135948776923234632937628876845551044745315214168384558864113231433288460737842809281870550576509462889638729106146179631022569679134000028494659624028523885156942257102398882422434654798851089528537203547047124364485422871134824537488206472886261110231657404604612354946008511800876859611158580495422815292420783951083620990567280655217860858940935031320184932585231615952290870970960635104074496516090711634987585830226428669764897188731175000113787870480186254248147111583658124675398846046384408285980236223157546009787232203669564288659285613194051483241899421425192568690026134725354294949978576567529837461629421019355388343080245643253615738296555451194614314645417971254463169688335478065200301901005388287508299996164784320240380224799214061423890679575949506041188671975678089377232765543914419329676962023856413086456649712320375104875297948690691755004198324349555756748393084415117093212390931135428765302856654420600886169725008946021979545467336297031169788354775529378484370953188947117124045969653294356022836865254536660242098263803067174156293039364962771295082838087759972251463502719930707713163017731772130170054496289716420698317244996009247511612012514729690820417281970787336558686215465107438299074623808538685152598422193449314899967032678924266506327935923170358948312576522374909225110258584672958959879499573455672199343843219481444666276621280489404460570566365027036578070324162606231396700480955324252700024782456581029769040865734681954958679580588427761710749445846367304037532592755903848879123089964304809617216589314621097042740689301909415472498631968153287456064407664745263746684880408563989360767458267894759464865238711659090903678276038920357712964689163668551012045515322892032504766819849973936249394612467547012481754304425008605578478727675276179991135153142665236885025588795032762864208910578368987523719553807732429148844292398496006698407895889638609455136708209594759114291838658111709781260033138068550404620255714569799063242344732484749925598756491176352405526751699659315207541913313641810654548124870797185279607727452306320546193397694196451276983468248683641862317420293171947253577202934662143901028329058856227740684976374936932240790963596374949986770396310026523523438952162743565362362738190631536634357515468599969677969714239062835876062621349749592612086423954996275622299774632489677705309489522590493490139163107154326361755858107492871381585635486202124504030673019672935092712441757318455112759240007632447809932331979518167211368700869368129787633541976548127621755436803852637581184805828850381985894549176648872049432949818959378251723913534541903375804367352544289708268149185562829098022724513396833065532278756605051234423769385771379812766412993432253435113970084588222540855400494748551110035529211290061011521632874741408522735542044030973129411656473291905073006827279700077411321441234082866630171273577036946962424315724824013507432592166465204721766875250262862622809051039050132246071000687400177897106849093619982031449910675608440621786072539378663491104834223302834770504974329637909079584216216530596595815839380192985734108999096683325801300352222034115604706741832122793195508248022468145062857745464374088506067494599661628594354013587436071239400200604817995398020957704667850005374876480369368984816106771956591659162309985320481098664225819203561067174314955063537528523378439090167317109202035279307144117940093251801070516244531328423150526064502479651528923918715037240200496466332964733410617009886854211783462270087678481569678380875322124934540734374217876500962732678041908926929070354216889589514579428128725700887893787280546523624357447291650957311014216970520431421781200460607457792474990455299804002473630106448536725430357331277106673335621676399596014310934509252664541995009972487465499355077927712014060243953167920545487218416232320561238843237773500275314241603354468620400659560869134498447620751209286399097283012192225050291152888196141382464014185130308550049628343505584158230373054198390752089036850673858582413350317626978894911955694274487955632608441915009609128888590743453887528112648465929921530980020645481394727302846286728832294375192887242136795311635446370398882520570231406726492277156401508227141884711269037696406837722926824746726751487749402662848545342321822091341391055829091713963700266981581860359980287007477734342457270471108666656286332879842338895843861560951485283721969712266650674433898412760853018757111942921848455494386206176585342250548642169645319470016152216715610487157064349489297706820453889767376569276034980352576690303444824197643743181034095665000878066190216525756148190018570638330017946379518895664402551958022829481138544663358878751384286503093648654738808539029380682276148637465783422710277617424260601132267520963903783851553039520315361710502115781735552475810466258669081241885260229102627191199317874038765423010242103861869402405227404205594023757520079466227378771114375543936867672550472905853788642017719182838123802438065449312859806877648080867323190171453678685636336177942515812520173729017780439339496455347501422437224318689696432204702054645031280845802042229356882842522350802525884561323239836674390552937670006941452866040713522311380206871637765298124942927067069597646004373677516607790336965828405993428278772277479725459669757563255717336200220207890875462131226046152940747231896582350922373603735083852991519479272698503209786130129943362968067536967781062229198162329219799852725861416431684820474274402971452691932781790883320142525102852182763855034581234762693297712884517333069719051372098065469129366738027022900473852823636329075609000473453600673478084270443621281430752861125605690200605718675252771127087092204160289463216531831061204698120012656102783060602728773305096246251340714766977653760879290759663213686578199025818512745234533009693079888827839252925201951608214276423164410338721061265009637931862762177750461976784262161366714178986676514505672248629298901888774981228352837868483205416075723691405846083331637259928347328902073305216629175265553062795630021799606780072189823420733970948035134097582902043448080545739537961406927231412015216832668194955348307877464792737960966413869754209907266062479117232860378207675562781021362004537871004643447453171686229246888631180907740808169133422212950927677075819649060381586647491031412789918700603672184238106590480513220283300548995802014938140898107456976366644094715375718246808670060870013582775248594231225013402736274440232782569648300099293073264321789082404735150026874422616094406543799763539390070879132228782257790719142600052290839716260504953562822599924711924318201853514522493820073621485550490888304476483925487932718870663847542304778355198283603092050573547904127774054465671681663967324025975529710882527446074676610534602216477415112846521276308351107543913602030312841893546593370607055353174106198185597678772813038957241728759545425936789038004753431096214518535028263466519075551606415021171336375581515334710749953871426095037111728577050657730175615692595652774373633745822906482415162275857059201074034000001830260534558138094169289743087957804501077153664764531404858857281263866069813525071591090980943955395349489045841821477419394891850253998358706030655530415766469842299370045224194631210927192485314706067814712015828836506001419481847913774920972639740002112216422760875781333011698118971443925754948602383355698434369808668907967135656673284943774687118646496654342367683655043727104694810238296492400925051217675212761866311997232811809797530691549206124920598083606379402755345548799876173248671474031664613314530135357456073810653443881771379103089487464442702850666010187043901751709650884105971809384456099940442026811430805015773193937629227284799099686140405989989671268313926088844249537734112119444535158522405979174904802623971123281121779034864384282590802977516327032660890401283596218678067618129227386784743310168105125185959423656612037219075634652479189852982744119032128060033136679406550155954102202227856637785276912770411979325318040774100254064887674412635742608473755336055153199730763387468705184399570431124759390149212944841884562294537535195890746315321910383281641083947335746514928734549985479560912533663657838368896691472117223623695984235402913057985108865144649977015837143087689243583482786650324933047479089100431264507150913102257618142567850419141277084621356503798947404851493768689731551006217005529043725172158679140696569119702447963265652590996570962286988253326240634808157377245549642878250016774298971711299234373228602033947818311764588467163611916868739842204458144137069146633345730219098039822292870961424576872229657296992021114409886276867501385013950200107725454931326796288668501721035946321004596601568876610847972120281045424724187054853632172451881257333910206083318780931439172644274187624954548521181405526691208718549883053304624166516923610896447555787237781810280528024333170349089368164153541237986847384404210513159763247248905028392961791576904302137657590111569359181737240840307218012584155793473766372512319686688637840041623885841396812921736401507453746463898767851633948098073478535692977620751947551464232396219945078972001682540555393509300716287916937323069296612544541969248451148950201124614202470888601421247644584790819224800503350860495894488748452607400394975966177605835982883336997006621692082280183125703799184243667686403725482579115676155710925656611763118729383929480041711063990976414466369036382807525140096262900773352801425497988939767717848801240624305255818215435597186268252277378978826774231659336587966770995807636631467465243646027532957154492915175642634598558539027723465701990924608141630436436381714202894416791552686094501392398051872956198771686845285817970135457954945006197108362677780853626768755189173099145608362941904477038702908981124684532357448371813003647439035772141531524473067735273747119167769249741709648776357273944371759562283659324530361070315899496473426858728399957547637612840742280640717551986337789369500189144957957121645902531692297507979010499031058646691463077909545924788864397153201113225712898643147652878619113502180602782400805265037256280300993899556486978686528317605902214190053734987704596934622863156660565102502010924052965021976315962743492279403975373769693935546268791534074773605436697839598179404096310242636979090614573781941608522129601568556682864759630367299703920304140433455454778727179856245041226033004874082831514003109093083045716723492160516324619428081814194570571529410717980857469176342975084974635847606331711074208448937054427415895102252615094802045216855070204246005484211742169538158802235126229091475308745078734297938287714309388119495257065201433316869520456373430986494774201494884926940675765086421745821756952793479811024328907719545630399348976378646172416424015934487849057488489365087432424940291959391889854641136800050893176378256218169076044143780952715018346245061104401964475049194313074149837961674738057520084841421293655302765230705060578105541616061547029847900074749748593736999772332789080492770318638759389249039653138215095784779628694073390089076106217376291442795523392957449147132110085022094028680566889750324319006925596724585505870033018751017736969882818496707058113161457501478482187178170068669916021026357262412337652869522504734236939103504946206791608512820250192656066275762720269529223484676140892694718242282717774533412217041173428264860671958846196711583590679039458008464266555392490280228715365247538283209864716840195385074986949038457413429160455014762358208625225918558126972347868980379257706849630188838638472216660221069432863361766190247133350934197529852779371334246781948071143731945763668310975816378850299626259695734098170347248651833215800943456834745899529163990640431340563513283278194790706059523990361649003959206597620567846104144332808667863116653977811821341639531290899593374503030740846403934900841305200835351954828982598517214306510050160665566968286098857986134246192700533315576404322886725631174054062950535564537232561469878573349565474128904019121662996541862186964416992646362441977520104856068748171569197964326088249230134978486712604771706948730635288339427825163445913023145397494314954758085040561305910862533409521856715730735669293170021847011636524521047099389299664634342906753030845900113332508255853287972424488891466330630147748269314681290650601997800888189194319004045948407728481162089827446647339462392431457398375147832151334278638283614496804197912431364246644187002651594458111186083939029171536348652802157213800128595888367438825037670012651951909270526451831808226266428186998220392785274072407750566027467288285667755163353669063326051861024843566287948360874198407175127405056557282434341992812979491209225315396650293663011083538242399882426154856794871892470205582799368314454043303546027214901560581386552500473384503681268561772323723389682740655451054567687053823006422217820841426758869087814015441784217404753656670982936385077720627032274374408337804558722333473025507589669544385297038949859599888163760227842326265888840439838021009583806523366768609631314683745113639571434437014420864897882719642849638180727769132668186207221438523429312647857504075159807073087547301516862135927081313209689768524014004107925572701205238020303413235049952281157098920524796283802282554515774264727222656050855833979045895311776637580250676478762112936617774468236492858403051254298068672505323683320085882724608183573078204316930388865584904869512346093418009666090171417345761189246186768505831390502354795932862714927512269359865790128941175021966837871228575906437643881181019284431527127714726659076169603061393533500108398327147906626425086649759212556482784718175121188309055759671257379241931256704754433716551754179659998734299135474951480815143160465688999031543404155204436891115380711430644407876876833898807166618371728269167013671960543075664970170184618042770050634115199201182320851696083769367951169322764057875598217916683997151229761516099580120618587772892504276346575752573875134280743027907991133933554726449392543766588221367380237328053946401770964304223261864094880930548218744352362517988328952364981673400401049584540171992440221764967363685682640000280033147896187658288811640665961496162928126313011848969181291872215573119313886786771131258914912986766372639090455529376769732286043694920720388287033522071591858438488716900139694656782795208556110799784662143774894488879968513305506380859276692665932837689730555262156559951870138100491135672478119935436905342851210848923359140583952719181722227203755346541272367695665706404015190089053122152176392851366294687448542678835599663279907188197692933469604365336189228698469016646357071162736732871251856942291386595626346145211080098481884349967051721368334393281314020036190174821047178635936285829594400827461750677116714187955955151354131205476439749113483318975348169894959213406741758295897805660488317316223800191391513934192035505080673770803986196103779429628001768347540060441553996130964743190922890257756345681077507363265719212768532954204010811128730220620202295213729795011381609141347486116309850277043485985010905487842911940015022237706775630892601936006653166466922344412697749890148857992660716133117428423810250961829069314496349375072699715832809056450102743536403537203831669592682889106630586417622349903643410728893718549246892359212088475869071769489805013710611657748755291110120921668186454300329166108449674339635396237994331834688438717641190889872970111186899823238724107808854060969466079541915382513943968722893310173017421798921776047624428183424426135132608780752712296082864204122438914847406322128399180330598068455181150894013414936290740997053693069376303562234619898425474574266709311551554022698712973849796441531933212667652489702713977071681326351755672310943693409333909796282116902268420402191327965179214401459471753127982465327683665316529932373673719748870618906484491412296351409193219847239389579767978584331200391119728288955549310327641673937620932219492050611059257533484998888398060507917915692469138705651373917669718925535392418579728389926284127100214866284760478139383894113490568213902960162598542224594905514350662035267502203074358527767911541478747949183844679410701482972617795330156168512741515940357251807175955547442105103527096852788544540273172225400869437811154931165659562830506010900252769398167944629416301034137307137008590393199936300271030886027705707641493257893633332064741918101448047227948913475141711368777910844262302487468986941947117431914123423055125449346271854046809271933845858284795914761410239749102431276361887227394484784703638510051205647510424492543570834830292077932646841025177714205232549515325633195608467745293218647520465382196728204347638614600635381736782015072421822989270918185393095872951810098379284497254466086053896470352627562853880087632469530229056423003982028033789692217934993335469725573206238406484925926866539472182064038778655813356160705351521834747935161200371006275704180297243327002731380009792987488707410761407138718902757866483987363243011565820780417496879692552952836724044356030235199682748455967865770983911093055032279698735451463154449288455530673717176988514909177578612445205031094347986729057548925309562673466415207280737904994871144369158460167407147963262874410212336403760057592165391468962996215599217603397540175117170614880373990892533789484706656608504516970376027647448550732509164573155682331085813768224285184905985652182357804862363644653668997028803048070670198199743135336144790622850121247317157394138620616691181206489865151697901130700599897957051813050073332220811398608053456809618038693081874867652564709035891962347883668085304077359071528936836849799040153995233536744692184281046746840499018439046562264646765720393349119519335334483923570889318118465737943714924784297445878030715623473190123688721442360339332374367281103969038835727157375188947007277399830212805951592124647600215643107467626300119460183273979414673946195122163807105464440084486177557093556376018226376167080455447042300872698987506820346491294414905210571543467021813770794192075501122129994868756328918690621992380501143056391681565960120007720638302868769980943999640973460345818102470429606960050654208352305015692298488575197762816326111086773864073890177329258141355079021650027891169917456320151951142101637347883067365577420877999690491087825115177818436846515891720349702992591693150404914763109839659471488267722214437104607047848529920082167058909739369409652135953389809678655983969571638164641017983876767031523418828739637362286921846448117644402129438930219804722174147639247343492614100773106665518980232416687380659701761372230983854597932741422474607839679035340526821760308414242016703482241762433447284450036048563692764773623880640199838619388546715056403390554583656194164652734751249635101074684610470287628246829442794718994175088732569583772724023296081261912588184557352856343456426037913061996705820977154891615842571765301720721748790812234442559375533899477511965819887113499458395992792127150261841374981647363054302337415711581233679621711908898821842431131447408018274752606533458158901415575284484623450738761347979118294353599177814522576597165991550227392934440210322217383676138685864837355732946443144302381848908908931577302050228876909682105957850500587951877106152456637456636182051373272150111224713422712669063390603092388545116883982169260775453939314122967201152819254703000326442480214140525940535719959827296724159450318814016326797663924091814248205252479897391966672946404970994754063430077230271824440211055468348742286007956777636737662135077509547721908724966406966212997971646269850490010985701153271680125172203088287331979414134948322367457138522694254898986849415399838694448089915888811732043015498247171107986086856286631091694095149086143979681550111263176046287922796891355966922623848080664094418285856003635371832564432120106827974588381327719796765717121399721358197467347076275614253003513526828317000681516307955962006891007954687897407792765808478014725204757019549056745564183008121622416656960159633680484469703697210719170370042243622153087344618854440056301089084825638308927924786401943613884059072042345478990423925515149894238314415972562571599260981286567175924975119129378765296541694580003408727076561016639384255206081158203216113432159641075469117172742282105394757836298877505762042390761980586852381371943179209753801821014512771938093894317668990609107283913955436435898541338598156938569474067477601621547798236461900778794667951327706127268522117019158447696941249259111191520443886982517113128941346333802341787621193983613872580424485425630913331695114484743427126342038751433345145336395677354631432568352195098050308688072795733168157861765592051093118083000492691349078577897331915474389749843837344423066836189890755979061911660277448145874026839887707898276252927941255274676901028960028239976361572847369471873441775451027141182464734027947715028763291286771842585729470293439892714603176843366574451415241284639258604608685991507887916143414861688717520114767401492430377841689160639874019817473483116009948171386382431815380038381376035634730895948241050234199685607267370844185029661546939267066114551038977776862978461584879752468087699726192014423866320489860736455451184866304625949807365608947562452016523574449493738937368236303711939445554810761318310734708397479238565526358600348341562322973082774288589519309661721021520012328127549449316186158560194146247481750332616964041150837848677907425667308236696248431960636929229390083560773869698145529586009758196855219476013643728980553678500287728732132667691354705763876100383765586145534980789725969727575908267826818951483782909624946051146209714530185165533922000606350224796528955754913848476003775892039630776635772157110741409990727514845589579465797059078307143126482512609091027461901803640785797273176968073498298211455794137265702494092700791139196352574865516733069076947898593941497568405363896491806365433698906859460782685981141409314885900643133598101202992359707060172152588137414511773348388141701852660367836419675947243452963473548730870834059380248154938754254038339368820646290544490588816054189226494008840528392748637031785417775342396734728807448014646185350807659270958162366407381068182737412693851022454965065942644006165579178475739875340725766444891407428708448970936371085233216718235952990712805504938960275516901032510822253005691981844474185025373252204650302252112324583028171276702770072694351412465346168745519884365437466792195246638823941551147442067362946411864188753837432076335966117184813793561545473323939732230525933526908682697697134714696262212960089692572949843997515519905054262792098847734169399513690905106868508576655938531009366075177319247549395848604029082863517144642971809911061026420132084295556481729157147309765744561232211871362829043435027167625787504123296580118174485015744560742932093972457621469851666105144776901603780288679115416414198801759481958017085336002509006569097431029686584287030974056262784741668664966694475308005975266097275896814507244871353970433945369302199868621266966462497875013386229489954942348045106927388322070483889303593050547018564276904130437973621646158893640791720037396738462593545322435127693028695252607178881739512212145993162914447884843213365619614484702175606978210632735854105123772098536235347823266338262467719761558931342723152283902884702082923349261601141450397252408038163952827839510208351925692637338066580206390437632334844696176697736888975447476276590275022453920021421700179302457028005522541542934053868355020344297514141337859819839335808252909935118124874441305737395818734654390490196495279141144032571400542199671503044768308885486728772973581362545158631301693363335183561078836248578932158064044197207768205082405650455978123018787122652744998226460993459665658651764568503239314152263415617060854876810039835806518190079962935046542157997609198297945864157725854599508766008635818239966501694125760073419664158047871919271933465654735967241599201337652365949741102412064753952109717247354497845691382948769642919731621365597899901895879909198220664405960727982761370144269670952101671696275741910837302807717414817035904926839401967098841818631511421552459368755856369283893584306810383965478639051371673190392411802425719831663234816614788098117619399834501993816678699716778677825922427709934796124609474539242473556627698354305439628010493125271543031309392481721133878558053738846024345968276649397128372746092088160164056525258995839616193440825357157456269740380740705933317297205938043515239088233733019514337193816004334795719771235791806684712614766393597425129564582984270166105308129315902785321569261334118282614131577871280496170696632668562702311140634807767633729248713059553871088400102112495841252888747411758349665509660928260994656689141044086925919721300073820018792139734485978608391690713675708514709228837287013775244886147477790697317895872668856640689025271300747813625383969161340205898848509510753713388241531214615305142624493901233669821765022360013130605105677066065980896261946234237673862501069007213083622756526954529046284429887628093371886003708766626491397893199913252511390093092150804103195147241442477056277327736923485982764653144271835651850498632311083009499288710477899319415745621230326107120579930256984217693848996701692684544715730117969466478068908413197379885348763650717320587122547003958661578445113814486036747155355966328305672071899906262282613033792716569674836509856493096404848949154943082864859181653624449921846953045906209000842025176922119657260116719342770703395172726608529305845745134105323689649154185014252530376267643376292337829048808501568307648021145417705640901898028510431891977776242711212045580573701271004070089346379977388918110759514194457692085445157037713071101430780018996561865262110309820201593307672933216156884052947347437986527409326737946104286869796051123007266756184699598184373998621847924469650901693919277919144277398300656155945746269683575648161787202507617388254150372271760793024545448338897539912851718167489765292695379716943455120686791201067629156937476983400930184107630972166804256199999770973666140339128748561329767809428418237098824093437129621135618553442033315714144767905974071623216526231534811169365015448116820675540981539581710561629334282822637112119080992845477703646577060860901977108159612970581697812336564297340568135423253628121356344397622094060493358178979485290423826145124947689659853415498574198761769438006804558322538340465492190908221069745994920936019051588189691477948459022397763946378159417888149608754432111253774851458695089445909257742799960347362946307809886449522445943771054288262061474946343642135028793744591045604723423325215826341281246962030053738317250832588122306273106810774863747046372889773626266430744956726683165592102055053170462056267891445539207068688786028726393525641334390150630802816769026382569717867940670780032710796078176589971686440267933912290343877327059326734802560616940197135732891946898265916333270453394382778697279402312996006035580745628555280180789194475968320412324245843984169500090182941632914248300020025747036597749144253963997123136827542100239397729123545926494016771571048533031961575955654666381474848099570295630819660354655745948478352730262423136447848882111938652012675190036086370298581617094200868908467911071903898146436304521309697807544273424118898459249141034168566420601397357829538194585504324089566946756070216501362444184590343313314617874298190306821187161720231410059872538321106865869137226154807210540409221073526485904238054260912151220241928866246147640385183365840155969387579971172220684627188814120859033062605018935010229658405585452710270068952232539805172794449242326839036943127393648774275591108883601584969192151443359607059897166435473879683052810828991724243618382090674890134258291451963957162566566241055197420772860985676454619763579324407089231480898627323513837270746160652537625863050380567017646840029402834031782059391200099339348786118037376060672282787240858174494277612135360249700826970195462963387520202331079592088025687465071748586353552229917148424161679940539020570390173889766919237292018041307492205593600441053318803382043413234758482291380355803291937486522530657264657868551859704755704605740954465410676322736171694483632536266631989797676856549198251701523168244052978380944686237367916936722645075184020283382000837058150827283877461913487076795250771709587977862274940235545603637619206047458093040403338333037231711296944672340099697339576999124286383409781822020329415574203892979363810651876178560690115248014014119819252517937091891262390303003443879548834328741365871127930929258306930674453904320531235926817718660281498627423836860145561980746197282549011728852156635826201943708121367863771082652451529112304095909215887023416964395469390623664131218665146527764713746335800197224382683169042105430437460989634012806563468076731108421537083914733170937358565030591864550708371865800860736041493937901271755543269412315929545717474484137396365423427709456934167539339395592167480073599437836779205254566079904883550090284768803685147610863362714337307874005060404939555133297634330848564879133965604162443730867867903960323002306765424908091997705893015058827670142029078948079048128055629727792364878423619122160894680532201632555374080148839340480442200807436093745717398562474351549083279364793024894119564584542468836567043542481969458231200041533515348751497620904055741039677904051338342598614477480675248067802946968798709230472191377748743716769467957059914731020099029654923783769131031125218362349304954085524799517522409168182831656054274031783855393808185266405317329603973064510684686141275956559674230568460061556235518876977251297971333433199123185143910874162730623664056714275725619039214340576634260355109751807220736947966298895477409145732512801012306284386414787945384951588115350187478810771079289142604860870203036026829846921803365841410529893983875522340716720595747678765611701250086359049980889125967454369578015443052329543232247039244715922374874234885388820873976643084191603394067483636434288342359744008489875666180567061093023662883789917241944092955183609677705996544927325352332839047640853455667918209340548513991522576461934884984204856138838614201395014525602761487133127477630157986299080354081803935550070169130877267596468178330625187866460511757721710513096162391236819636953374990146388015785461225038036017509495601669639562176604726896983221482714365214190659161406320083755521209870261246235897716561803971205707581269585244303745675069128786445948432143536487798350182826462797233689340662168131537293369215614693595527912326239579882217618268461308784837118224008472300402079530426833286061566856016321096229713429480083092399619054303903304145208225537587104822876255024635075299682541512770709804932531483077830951414586989042512287873710066802409026386735346587644660748363486797708241070404611634217410239567952532651853949919653377260337513206686687412120239031148494162623012925188195213421949412552832596797289283396940707582979237868738047332086295802325525388086211184154593200546400785111628022276954917865828278034543647262908452062256518005947218985239767791844804330683378140015149564254274679806743946109573424675424654284989994820801973750285930380481753232294617404058625113718358022717058720794318586001863511148453867362834819888002336946956005709887266927803080880490847367397240363539348492268823414467437128913713384112988396775637468410059808457822476765405195120850694446797964044189114114943242130840962050763832477258709180411012579465959866149234605447062281090256539453050798616653072250180998964935569304926971288308198342051602917495186326347518997262727122325834421094299872066203296783678356955712372315943643869758021371107774877769595426161494908908321851682919458791176237604129073721618600085981318426052949193437532204404766326927233500201640658433376971748087861918420841129323276343993561829264880113274210258451684388403503386245802162841485032310653922369355471385119247014505878420682947029230084988166949115908311603351609569788111220487734380496588898881143343745661506846349342676398823115012748633691491377355537844365396651516715305844524637406331311003698013304799373762029456415720068844486677379072660908536325317697239525255564923550489525329976320032636785643927679833032886431113555993935660490665558621291542798382250061122436060311810507148694185324678574010701669707681163229523396361992164369940084790212345590606399835960529376766241539705655011320161591968224554524851283505004121284001539632998780516237311379430173967920809756605872500890691647516376783299904472261527903385639289214773008830207112271305890274292602039811004752482374342937778588271798260966355668665803096693897272172460743021433227760856823323223703182127574961249589564468929482378433899801432738416769683883916188266386497732076724584145467122170677599544157004762747148717197668196918079252274083727970077932115243525317108962795336100363264847819814634149000947861229136859118805515778660263373235103756318956911037995717894365766004637407144478064178700244375669960454061438209770930972028176151957234868262980519777898670228423571808978421665333226693326022011631327690185066785751756619838691527519067768011040889541675824622969033923695118948517197712462269069189502519705924282984229459452255860638735445435190078798122842412061256751722749866197460477635115343825332196182322288769910200490778653921559478535055395795400599139771899859469126581424171841079487963584256768084778439369413015538393038679064765344228492607313594071659217350291240936886849994951259715205878083970969947946324959298642814273096728109504025065400997149738718107753977708062287679075234073700511496599809128761936994451222956232160870122402373408701741209584425928528103712873324840574855578149322992364634857869886946190214791809710471156844676718511458092131110971661847340227519820599348312698551873015063444041077367729651242662779670379881666640172488972158364964052353515611261550070779967124672883418920624693834800065177226299431956467456001085239860439881554203125749175228319306562040544184224163491128291980748672479951136565768864362121017649139388707903450234601419286046815602596862649276305035681948343879824979456957138491259257394975954826095549380547051592631464110522139349525020196256774533944211526111217056051576756046671111365684150848410303374291567950875584840033232224526014389008698251923144186473080147946743412521348709524463033910832043420076566300849807414283338821292088875256110438186297127624243017559374315343712823895845421369187999445841637113548905905173669436567511235618885706258859786568717411821085190754774924792639075139250637181646050000706153191209436044829652909080029210735648499612487483739690044725022942781249364317919698200175463914757550263398426039564604651295940522845747488362829806852389386648300253261840055358735970900794454237321652220813051476423689630494168156069186865208889959951465393547557481104728142933530184760504250941040822604300034818189845124901256223147663439928436967966987595897103297032903845925277745729456769891869145372856788378875417703700941444838417301899842894199289987392557659630535515802333696315414011444897326811462363002971992784211430107343130537342109095778128433723359199604050331666031114751260319764095427655410653950764769342719366159469969927335508730790463250989782941213693890412083975282929253217926356113261924575359232877303522116074509637800219402827220827486449097813141120884446231200926120332026278342908516416244100303837399447474366786770899775532875513589879763419628907138865218433332181448055385155252708995745750002622987650480615531571420115180702879978375041796640132196804995020909503942128897697065209293991633772901066942093905996199497482656718217218590372021344971496713792099266506618232149776303938167578932305249823930907081175366844048166940240576960450567482653167929295629299486089339191998683058439236678105876493249413856054151628594403995071655125621412017232274017141161434014843005473427162693129439673604133145409105875745726752767354913652931105375568565140815895173613201763335338330518051629498123052501531308899640584806212350525140294428173879145123395896029008195381767512660279123472817550571637659628708235178729283517302196040529554747888378401949153252381629105866507423320815310265078853919457438442094056712432689067094640745047192682241686526969419883010266641780681537091861171098553323542894083739996086451666989764382977092966859508694420182977381439141701312716092818790378455921953974055811593188834633758664988711613087320590716281506641576942799050380452882347514123939136403685602535721258389399496675094715557801869798879457427783683920023279467250019009213742948922377441095890415951659335316758108961183632616931334879000317223130575799894527220330448560893393449945050198461956906772440258470155539146726786876650411483284602471537734521076124979520018021754997736443251014695155420526000398062372736721643967165705744114905528036206999782759274919647853706237014273643174177715317080876317216791954400225744312180855426348052189321169616481988738587952273833822740115319710650969152831634011480096398700525852078529082549253036549596858815243949462053185057410536766919272084445167159456622614510680191032652200670278394359971207793173642834151580712285235301806403752462014227965933552981691085983340685881287294491839887691611984005919231007988052489506153769622000034032579769083540980555590318523019907209316795136226195022980810920350960785857176078803105749282533188546047131263158776570805319403191527740836180205149514472494984984257324687847647794279763411300491653944691802614482342448408807119748979960571074986609266985899183816489635212335115147523718279647611449434325416290979661944929596017152240810913040115788578359247138691022183872655366848454387061331441488247843933499013433082061463072084917500115772311790149630965684906895146173432701526729787445551516271276729694113505450331832358336677845055900228232852759261379035056279893805166034125795072107462212801956300489047238654788327709856941667821498548528275274024609652061716156263201539546124205385943433700763431461897194312589320980126305686555933783802616121738070895349795257390194306471981406277432408727896292066422798197605244400926877251677047743781608763061073220083269298140023730178726127604971972594771081764770348782974034737851257186979442913480665174299214075602342370710272490598325652735655139417042092629588153226220139200871314582953994605661487161185965373912543158531649253755331031931114831941776544632415984579515853949344631949100983147891038620238006271586615041303955971395317229474038231647713345587335167505378742935403379966524975513932415793825136560647199174037732924040337629656387733671830382816428804508689552702534875875594128850453082974654925961918690472987825598543246750136175768738328008038569737200949011231144085362061648886735474045170030214236011955226805176599033126606320186852143178164107244454915370582206726359442128222761599503200752720976857382978234560246233322058592780390436614760524005914224647475058665086521178989558380625268236971287682222210805339686168677843441830349268174319411674358270257573133683370503016761094513468387953856384997369399105506719572219355468576607951136570918571537136118841428526303298716257393657132108061490233648238230954122898993313494730951045266184812152212359470853086695058394157524302705087343779261920807632545784799712775050441327229790802198873212108629436206683340324260221448094957153211972027284778160752333682359883917207867602241693682299210957111998813595753787337669438020084007500668232587414514835554551498338452842511762399568848266077616090294535907590556528414212254387578182519556000525945790888673797879795880001295354353283303461056200888204507391791077615883371722168177482667331342899028332285730677243694210910728541919625660433980642651305343668259872120389073052297233668498808035987585061431045731724126918576418202255654925049013632102314250830321671319338104136387647702275955701285492003231451288936669911896515410214261593651742963535937300019900503718746216396047807453032783532210816628378136658905770792398788357086241897792823099810766128617841855020008738278813895820075920107133399520514776320725281454194427988923023796718148269218693974390401467241818675841708944202964397508736202822119792386470756567790341058253810399908974382917391725990708896140324888350135049525693827533405478736143406026655919925698125458315065901392228551499610655905716348270252163543281524686665833513799252302606615947318200707488663225031789206385909831282832485870202599705496435777872526685895282892103529761957448091505606589530050851735631409281225244854301466306281812950720055482402906901572005122294889624647397235353553734440149691817269773102731612786898407341960660275129980997639146990785694820705549014641146997498270373036054802492048887762458862252950739875364488285620243395610471785594165870711636181018450598030440348685542797914649318198366556845188730702751588328705352733073338373301773417187835136703537299338736414271934150442480865811945331125285961014610715317402694875479986594475311159217225849576424933997664964085747586618757374112871721938444455192304350507670108362129777922400539535896554383912246365693218975584194368351253678771587384723480876624753331107014554396923562620627220932393924485781417902357197025256992011202943445009584966555270582349798530503907573383262384069925477493608115105845322227029137235445106699110026906622178573332863331326324780050240724843702474156691135959784116631875137702665746823118619596008732333295712982681622388740804772331081144888730451840355706176258114808523089231040632014654741593127693682585644701854066979477693148261903540530281932776239110723103167981640642976456756969239158890092364250671193692820357092615175679064334665436456066333557363758011166888605239951819127711899387273404508101454449001843535948521674655922091048670349844107695281841091998922145648575587418861408221958542137849309441864591621696563322709599563158911427916008232389883021842571849643060275440443236908905272525559176597539964306634564544074489267812567595069953577011846267006060347216844362559759241024678959207472908911477364649774309691189104802947035094033278246229194919786266055906603858510595460805813744836994516981350710580543122585496623028120077886600501440228211379581922506358853646330893350932283639065063646765818069577719044376092337298066273885306787723675887989482950859282578428721166364589405264036982850789833304179528744380271859232564561006497501559884611083027095387516964979936347087951972261171411673880165571783067911989509056097591597461886955541054714769167672184717676035586563796684178272354171750410361683720092660277838315225591812858167295166032340412260408489531015953993155182078327281814645511117804609670242169906520062150089074567461029637219514140210856616163220627408961216510657969100180424607998457827292443833844826025377249476823638939407330829583373696399317567408488485692867500074398220288711014784563998451499455257060343768603154046063011793185999249763026476163403503379332572886545985118855863080609598249422553662379233430067527811810711578289652251591901114551665172266451644977499964496523580612413972785583109162442331764897722844081338883208659077684275054447616797265554733798268758778490363624178889058450938054097296653084807614052040486851878643970914656010723856303394972171565889362006616172934449551661708556924027915690385599293796699409399283250349152840170807550657163089452474305177251720437546932257001331990879186232690329549700365986271400649851542208863808876984463590622760249319358354866103721478365488648285531773241271640127157732659848048059103633572330809300577765792907351482072680001263924941077058284104419220779841426239250481129499640289514307970039603634998893552057107294072915636313031469433465392918309076512566695983315747736457204196045400419869492169875681690992991568770867935642890544528258576423663233320278234134228694888542267680925969060034363048352931543754789445541428519756864551008453914623498580794665327852792190331101679067785551386863842845949232549994429286156042974290937849100865425421572806420192734309139933961985924548096840715665323252743814673446582214928459453719324110364929211319010849320843161761677855439003202655879519884943322007972193420448082261286900163736937813288772160583614205194933759402977599632150738038516781121193761702380137909266627476156383305146855358765595245869711665129590106808145674088677743931520195988494618907321322063365825951989139541555057691749445411480162044762144912918660136429406563347976683312396845259753992325141933962571374355891911973742369162992821985932669165397444680058934861915318093816807391276081648684123747886447421606641918152529531217047343145279587012861906975338776000269628944920987017113684920671306834618125421578588591351024579662117718880342502917130675591156939402832035250332755430821502472643310860353824830649060653595479604922363778801254470339674064571248890707776372552785488232781748538385900367984219031689468043385292591353980865560127305497799626368700199289456400219055944308222290370957066536326285220315500161328284714769815679110002998331018839610371170780309984002402453327149005082617478956366396190224023313873496045317887557443347782779397184353734455242291936665721851446619258566335622684966329544874201956325221086310314712915505157542924675262303593346558847412491126441088234694442296386792689975416710911461933631057140042885706101711725204097999334093906885344113602456097748970203101201681386769630278320164035164044797484413878384217716457613594470335945400320491859770581157642604084944624523891010697942137005299762092630062113315610453437610660564314259291949766132480702748977373947747868720429203892691064019293944410699056270824170573786189779417509594697612674583346033179178850596360924905924279147323646669767310725663382420068761405546077140829927923520490857966945796612894841242752738299596460426954592431018331975242912860813998878435691377554353606829721564563726299048757652594480247635263495657202089138431882846509568970242191430298472996864445656623304355017850797031765075679665308547212229892483959987328516681416438105029894768608753930411899992328846312873634521515759456492504778077424919215806503583217390655373834287844087572034185005905929014064356679121678683962970638577297847502474745745039724035371246591650155393723136908200442782916979175553471006030400740538265390355552196926076712281524734004941391060690099808593494502597537021701077497701345985955788999386811615927449786089892797607523166002113421637228032805246960043770972021376458161230947424309324204010701524997829699272773438000479719849148618253326078265672807708038590947151630228868126590332519184951740229722602949134484701650448241327314525135055258210365354381642154129144419649272027008596436423854770042266003600908131180066146558972938956169150944917220941586089616035065941158298906972148392509591534174308615265529981982138689613563134541200120066229115690427513831979127782885434516674463742798869524535288879369621809200134982315330357529407853502826122589176066470897548655312451292483368009270636182428639184740579333059584684908945976554143367150505957719859424147909246773785844912265945213728518103334880284391114923447673686880079920039677753211154296441236308808473697185098027131938127333102996763191373669543664691439847551893518230267089680622405390198972709753528019815029680293771195170650873500363035979777844535249887029035713852546860284931918360415010703355059648330568545637939546097002647667475232782041624095670122095056254880801251709333279595245907295363856300747306986356708328500104443235050999352801128491243060569272405730803278605635638213511411458821602313979878252138222733593680239066550225121865562048416352639188627331816494780078404648997907345548727198445288735764738740350138702414661003570352674806598345779475249176411921574201386181538049037098823432292585400480595259388983245374909153935100158829523130230120347161128880872769424190782760410736396364356012927580197687194773569255128766182602422388145966565933447476462437538654842941707833579535115065267195371634035943045818666534401207579623055521182534655139668191153093611823740626120524951450843194700581774578792220380027015184918854939107537698883282888402360575685996096880856057161567848803959936046238532384031859115317567366524700002247085322924411542204351189845287102471063265307237228011397658938224244173991499754126211596779539973792068610095701074532055558686333755396836307370157200172792725714196585992941637853080582579926767161435290751415656098334914306280566450530213312377197014765098969907109439488117202020469709457938153490101632781934169524002997285789968448235434229766937534994618067221475962838985671509069043413375004054052935057583023439345828812611719187652553429102526802067584384466117429363466349494584722034582681272697161280128557898347022215384800983655263058139910690063829425842251417262552297951832032263174296696108157007596313916148145929869943639064386336892119809110044374867140333136536940481983165585197615323697692754594329703710155712946544318546504416649124741232785362370263810951247878676324701868035525076447316589107471005686709483138166049977528114677290918274921896768567407758574184361300728628519175946303314220784045729874893731713769078660777796316181783531248371794864832826897480244629487348786662840789776878706175233724225968448689059061678063835592079162103011514761561873132653263572573782157315638570589331036657321424008372576274715342449284269771413338279742758674467052501479960761517877884831473953422935675048860985676616537875327489948700943092203685399620392712192134650429628912694521168618553175426147704934074975440813263089366467082328806118474666841918576195513734421002750640400473021708951438423065558690153244378762319658865611348385392967162705770679434174766503109583353163840388967555688972228627664640056569104449057237993992562428361426734847013619954605587854822026192402694344724514817994267869619862851296216227943102354990952709796622436169381851602957623044298794968535694014952081509055813833719268448817524547923925783358276460099970122100484583761496075721604284957993906991944162787705338347299966519938770285849929175349591588104045452754845411271038740839012483426432704687827976882305561010483994266626476827829645831136451937678508220966925705810277700953147997866543845114927630894965777923594447221957191581571266235302589143366622288893821641846937191372510680191814964266198529883030790361920055516264232340378006325890473355167295889275040051040109646803335973042711670707506155403254021350272761515159609270846662910053755503280700295459201691585540957728151917658869875522251685884549952325851153339269242566571747829267771133511004810238736742905893598427533271993520799462920854870583346288267669819586344377383113677863904817180188010472315454376751490575053538373240218985524654724323285298492970366028488144601918604395816573509534138235982206156393569365808601713396536832799904853332831158702301749904784316015633956021408792025179033880222236291585921336171565271873946679196000255457811779498952624932455730331801098361963412978144674510935613596317299106275437172163222280775792866483335569467634738036042717714085283368783693333764666825223700650284412057722353277082242689535494630268856543887141413695270070766660474295559034877342484415960709348789654206072248066126060730390955897433234451120545519530166312387083019142565709551118592664043044976002344540604242287531310244775829769394267404121339844632079050237286272276074963405758690457705398239446819965984791528137991782196223882051084127218839838872043003762333182113972173136966534602698433746727177571635492500228127633566968387117864816962868839142580580261232920316267579721010144657916895460777350788362544061860910639721678432451195882564164647685355873849536293080476572662373509144946723687203471484902223756700706917486862963390089356258060797898135841513329029578799126483426174640243653907289628213055048604656150463627086290465266980910737020789773873233118284592905024754625603510439076514464991197734734252077500339581718267974607475142811701196308896129245103575644428211755982368076655766959780492775327714278792489544602093140970480508534711701366553981451377997063874698043257415969873760021409814257304658537717415277833587006447135640604955970991440277825960433636985377730668907708550255433104344872919505397647959340793635898916339504076528579519038616728415593445554096055629038752036561903885284880321357913851566380023935302624056912323928265704553548643521205299360868854458916728817070057454318487556285959038884317814288993362094898102603645818048889169311991461620945047087386492629519965601325271158705774169958778839072426106224183782909518639978071409358018927010838006202674674569450548612326049078885162533705791144848275061818761449590281293385439625099143090030610256614223271990833435862868536026840204077962464118771524997688451384301187191643512855646696343364460554798736641763253136884885298417863257710324187070239042008046194733753357939407622468154536542242472544433474722194164405099833545539175611623774234643343626433931773536976680460257903438854416756550866819847183622579282274705737153583362581929617865721723627160820009010994986509249203782412614742348218000820747118689716628793720830826012012463733674828167897656561327964972657054256049027964876837756653486801605077977350621662122157489186336191047770689537455054245550766479254093778997396027842653653384537248225894577801339181823294972189422784519774464752650740158639420995344992055788559819454213966983364249919526916036988050824221625431967966946367594399373674385227652335849448667758654706831900320811200542361771062748485900028563315029869516954380332077826965865178071784403763544176955229990169425661875009096227501192484068029088740718515105958976059158274292509882822323214191062783772200940399902574108267009834227461990601730747093191957616614363930170673576823351601518356573505043288965418164700313048277299287721466758015483387552416497686057859312703693908047083900445638326530316072050248707182683654429115426667928940867761399341222011579182577078360725800369081099930989858848884769105050839242528169135117843004302910942654047680967099097428619082266025837057330059998499504958299612025265201280755135948722295919245480031348201415299995796138378672083735754740020741019163993198452273944758877814836751128822137451574045540548304868314249674377517365483401078749214430536932946058201339311054185333422972465217971740016260861032179434972892075827984210179872608400261901135847990429457591372468525551890163187994803606947733502448885240945534453275312717974208344833881665164997105314512042717938367132825695129745419155335291821924471994339489584279201366865819815683527262995501126994739329337137070210154889245044821573149480026974284147410119511424501483301519198077983757480460340305163944318523307697080981749506829193895953035163117207490462282352287571941373140787701538689889815995304128527109650786737652445077821118766438904151490380728805057527951375344090434736120354624017990460468802075498387096296579515873442255438434320773875314431189769940265262008019580460608310331830808221024314616087145028953287894686354551671223187258380445799484076437575670627695737957803060338403980442701037053914132760030854542653113404439633402686756324827917206240240178991056112324838683426158700036325284308346924345559234175398616603587740460827046640500386824685285793408773444823568714148014560884752036272039267968006080859471006349192525050983166567307072839698222410644672200364988676376750993332663609070623190538910782512735740280062168125376420712557936821637277941610460723267806505995700755579640217998281479972174999273891463558374641294921037102503983165061693499746505857983723224045629665644178182147275781386728051023428069313516990198800782611787330565495164986134399659826562007254919677975730016637964397242225200060982791384656163699010027554359720100527428952512721683881905968009250716427604353344759942294437194149026406289320196331710558841752502406225840891279116798622873345599913949579375902812825037526787753516892123133421506526730658317196661765107697052570640215794951808218331504091701923173604916087339053528167644623060401845611518106612550405686516846133271269638407547246747900893846921848755288871329881538011506441881768890021414815579739418188115843406648821816187301712792012729039846501859240492104269751314974590826843157364545934530358447262430669365489764023693484091726741193864209533745825523187423681265285628441104633233345257784164063499341373774956360459092560065726947650543387704203389887598109326104913507858073018218364816417983937200848981533360182476031986011477058402518646536369841630712616055348449408666194780531591276575699797564326020002492563383435648407289753338010912731057204123216176553469089301778685745554581495926317268880373308699830272784358142707450649066355733756929275051815569743668482372215499389236102778183410238435897417716275711088937128143287985173366062171417370050688289404591432760822452994830721110043251803945189908059860704642070446647344965696062574649827258514819362979834465709568737830078708485024190938973768644017142287116188835096785642324845536228764731887354568591982271727768756988648905718474102636892433608431964226019827397756936249467323767443782835266511514873036237048788872931221375944952123654878490687751685038919156758033788206466124224469226854964245956265488972270862099896510652065029561331837258544245413665596781587965971021804520702550625854196629817638032580164766694403956906904496819519651896508232879361410197014857650206741537998171466976940138143145630664322125661138616636185269251430396701455991511504017028347321362052880084025977152640453494785717160838028305728842056544524806801662871136314470728085944902923144608436495534146262756351415042660461678447024884353435901402032578951583296642429920403599474920568783931416587532946792069746061509542115314623788115614419805841527904240514615251747220435304874848255328366795344853611869265237565108186427842777603463939242439356030864335768727926975531820778876354198351169366744784810874715314096543004145057950504387127088996180255069520417250993176501087038213060247122714340923312162102892472559894645301129145962555030028541948491522800912296531463250509806760235530563169607773103327945397070709272789317469850505732290129630785765316214292346896923029298138078245345381132609223582033203395360712556789673464051052170485822595943487443956607468780491707539179523082156660082522570448872035357798258884438898537982035794026404453539823367036654142205299502054843266881113621914633033648058319932328059203878968678260676025827997871759745330713881200892152522390518560349403277368472521365694603255232845170457813684877914938135136874877553168610518928009722752274022765697430380726310544540279093624217629101742444998061239302643256326236203730280121058216833179452253330117227862110816407464983302129183758958911408123589409403156502111443305068091956284739719141573317427993251494726427911015139911420857041015674832784903725878834875600336024829303867077526204867667541854217041784534630405568471508790283973299621905845637889907112472816201433055589510283546377682585010377493086643563760982240854655676250809541206212283761261780032823696271530475256862467117930928740481746631120931412744075894514544656797763132747725199819972864097594851511324964384900225761203552377338230560648747997578658975967740002974946439049997148287639450722215114461209609508783826347180130670671474051152578570473236739538701593555850766872725612152205280932412742670954897836401856514346470414903056268417294887524632637487483742387605905280615165445946607270100533833750019578511042274321272527789240172138208952531139596369197594917411454864329791341549244779275054998060379882907173820672780213010075664651286225648341369556396177372778530451856567323860642947861347706012174618171142690236555861753155721063691852169688872326373708942347969204820866270854781592787758625556042027391528055297407817437105526666415248322852837295112930670991122580811826640948779244445984892002303122108146443255701724262470681845256806977231279148594402368778182704562156226694337589469048268417869837179163524694991835031013574711315364176043198609730532025302297305303145664285185774826805324712996085997580645439138478987945544624029571826378840797117315620680287620203529469146364001183555652706991319771468979857801864774521502920303619724959900794869931019558040863080521625362408911218382394592005186471995523309817674443608125749617507518447109957880982578327821284469694514717491748743832423128263598996791314982167507052382431204754958482389128456082754495873764283851465864893825092375269817291305726243434439303011870984206579542106587953390917546310755840402162426657181681365396741440102739144555227650643327837603204056560724772088738119596951716106136439187018601864417439283988250738062793760775264153196534832727817078432842271784418350407686690420531275413519134006923122439208314041605510781103583627237511925328817147449761919703059037512303444720776474499518102322557373221637981699493551409638466537106479846790368814448129568066504027884800262531774544324585366722389437794079158275805504889538858873420659113922074916074306025024744674073021158964705464694409394003349645080916590817937884521354987767303871119496075181422669803627535668514013642025716166911444150096331496731434567095729227283776888003265810637342437397062877027920839522934936605208561077025829176769076263581943412429536352016694462145425908684296910339376284431146630386786786213923970265704036077277983141035743582035307915030170775468060245872927507427301842767945909511008179321902757017414195484378235121833781898042755161842184207926042601172670788058828300527698960795098305921152677575529746879740273215576516310144938034226664098562341290435377957342346273465524915459521629498318445598030488956751289216019469504425774766270272402878577666754331294052398647422074164962565283700935349180196385756079553219028150531211662158829496046861922381682746369520435067084933587570379836626354251765487558364913061319863290823313246064835899081712488640973659431747096521417811925127524696003658151124092171870112960519207274697832133149270257796522827120651923029591024534205402320366818614243185127057208433219764146609618789547159073362557007445947642475111845777148999762520424217613429159455740857639597228519517918873753982985097105370523907524183471683354109049203980641063178898807762960639383949259273395320842629988149453399638520755463846842537010638489582184193952608518398135696981071616111328211202850302705537950439687988770367099846156692071823543877143674053390305700296679687085647083174133996009985246007245805419330672004105049679631853757898654862227653063832287909218402272714037239894915891446529309522064616690502884116496884790126794863698862259165827883143143878081099165818417781755657336499502534356784007500803764834756358340039350677985519009801718440405485379837414249459428159867174803451622048752996977700968807057133864053217695844012694070660819915077688397337021303420084855830523523051927008702583949782917301707872948041995931568283331245744941180547745284663134538455423890238061727026014469759405085389923659219604770437610873052958362573319910465812516502141966065834227368967058145641806383963532370299286575481452319268887997316960495776688972344988516345844451329600915726837453124899255126487961943797515626657595509398463235671824260489594365122997581422251556662853821045365376095122818704979048043120540412757115548042224086873542350347827626433427480930796488261237163664822465777495396985427528388762950558055049586962510373814447389038001387563583918769626506276512517520701463914702044810484778718859143250218144329051792211178811327406334109939562824679123783279652845054755294498400103363645448080278663180512496444907537255930332875236385523352551088253368108919725539533741055578567498197971348070157750003465839094255137564202212379758725037097160453104261047644970072578357579032354321702117881951794968895175715241760257517081896369697301215894488215444874687532076064734093956396898759491523586977925907118476247773186536357306450662568479743802238753630416163832051582577550563271171719954654578353310508545254299156481541227171908192961425782898059803504911891070596574840622169449329227315213816866823039954943448014682033519504605133170343205703397758937670791490490347309048250978544354183349437133680849494257983478702705158845297110481704961717532970625722749043589946808767788359746272271808602894764269348739649702515464451528332791296195894848157884909766188128219147862318404687161545638201711677418650674362043111924184593640509735997409242958505438835854759515733012781026614952140469963815181747208039042979454817228878057075573912131676892109992441613291348623633513342048686782726748696432391497478592745543604022963646522710549729434135059037024976384991501880245783336003381145176178208600509023536504383096043167485849281488988139492124948283019244562723119165921081726708183154684094840109005217053588135658730048150011537319365288187699799869809516498709507443552923949709361874370673069389191694458641497047144395969650063988554805637513944866703099633348521776443646977993063195702622107364676665140784031476085510370007689373443893970563545414490705901647434586643954622304247632481083385172503288092629618560315048443788434395677630779975648672272623177262387869973283082361837696927393947342086434413285510993816513486972652109810140895533058579540919991645881354143312114722551460272412314469683125122327639361354346581198976866619051304760054218388407992011537737457904213242654743165667620825894493035447094743338994682991081333821495084600111398496939430718381278047560434455366602316529991369479766939838936168275279484694476997333358315346152709276987124449644025804185089448164671403641899232511963442034576292223193160507083238744084190774632851193978668923870705004932559211526108360301510097114393520101762215045068830802241960390228276347428471609462270382420161881720634419058416443848766343184449905767622121486625259672668643069424782170675090382274243761943369404431930437215847832135123095094991351304635564855849238462919456578350089921937535745158350482135324842086571136570050894017719720353600617194648378212739094106475754044678417748323043932752965742462532992535775993401906053136475597351367690130305431096575112990029434475132859334000487494879062729944063428016990038618595777412431150584148672052303069222437674737255386475019338310938163856234915975262262976225816568488286673720239664295985210493239677469775868884210165590440960408367378226981629582679639166537300187469076369574873474466146325888281405508827417291708387439373728817210879816005538377038445568131600180562564985024191791165597385166924930127920984563000848894775558983826591597324128794131191233641673296982323014232202165558454096476554953304741245584857462547225545838310366163164765994372303103029650388042257377727304776208846555654095852222172984922294054723803380276558387350556160300530934156556925268095940116913319150663754767235029256118089706747510862364108699519336644651164693511046949674327009449320730095303618029780167151941906548236797328460807065569066388560311129012677659506962786871935770432229822927770459907915020667473458314660502902908194094010674398379873266800204645489220323248111152013871954095718096581496090064906468367067192172989536370816877484210068593942746290060701252473670347660680066414943737423198980776448326389326922878206893248019032432797145330264268335552975012098587604314961126534227323601003995743619745533140071553493769727935044470986836781067624511591437929202785530911469095152771905380265488129398345220205141837077723591862243368448144083522952988033770419324466186744031376127561637776880114288107060211919498161424308014511923379643848028212225221489255062569822190347420611025277576817127671164847258755764721985824323406439371552488193046816306531724805896636954112546336852748998161920346414007486724221822578601728336142555220732773058705901035079694703824258808944402610964775246481595163329835673250012103917089783470113159498016208899027496318193094258960421512537230540590245178601477092897554304125466544668897656588564614356466796379098256081369897939089719544465144385446606307105417638284500300804213326275507671578957999824503902826484448753511649063657296841607717477199376510824155396079270498729882867724471079523282063939178597340396149475845326315452781978650035523577765813279779753198479113972596874098458216629787242603203235517074638228637653777148865238481533560107163341477037996540934198743836155260996021903532333358966804117064144520484451232600009705909367509585705901757722919971337003215478306049028189233573086482909585849462262988449897616793741055709932170899149008507229965537603692596240141584428407348304486525793000409243231180791579319938574377177134449757313387977151527724014100633948614211849244221275213747418312684273550768785707418812365972953042579844996566556379673907977650056437349844875345524091426347427469162996932676451978841114273097068040305026950887328260586707921178149075711475153510453648694486476689207489855354157948276356410368013957357368920879165588036469764572748248065928519099344587247472187380721042545529781053447613745203578084196315731473695721656329395020501732694519750618292683659087489096744660661138184827358626706561065747204869376958118745433943719379925337590579512121306161072658622267199742381024201383701020850819119369435656119860616614140583996170740722434518499979737898862407712999207956565805350177530253208732398143106609575991004710525549206738032349443962186284449867971102483889167502490073741193695479650071532651801528588595753719046651843144994815786184312665276340492301469369375003208335188928303125194201377132811543608732134368243963384367552669247417896103786145986014011582443303889579688633878682962686941001668066113460847540189553393452878801420643823095895913259144213498339502054137556870567956861884655534169013219236066622201180634144104285418369144113834475491313693027431188468993366222799114090725018889252827502197948934162450262220387766039994881329316835633153295614779328784209954681126249486396390115845626494914017146995192006538684077283615819024772166709953647136473394998583023674654090895434703545387641705903518164150427323849657665612480107204569096710581677534159625222219261274682903391297004729482014931045830314819063068918323258255326137036960149350747591363431673583130635662332707144301651146326212239160142078559626407959392848998987550590501421189184557107308471100498459314056493578903507445310056585856412624041684223264268531821520051796861132548061561475710144273259072463824380316668318572358846596146049622885496361072852304638477461392750200439748414190155777179953366860498011998273788538351341961210116854374135194764595420500279494555121547866323092254804331953875721410282034678154578029753702332237468599689993630828232540589182569179911778650333986910132058325016928642606684736901005529141944209120621995101791988514240715731668492466211096673080178827976832162648928230121160150370827205554985855635424544043481479635462665615156862521305977539349042327966382880779343931454837784057330267678138768385450466522693955559406674641976173324509148556466883674773977332539257478782308825871237943794325293739867594072806235607061466710952305242615058612537679672035131047479154920472123110416522021272125197572337875186733073698386467487022814953403961521477528344619698669944689939575697907227098656320319836234366957563310959050191671029342043837907531639146704640541538961393877442967215105860524890996748633606967932789071013269835328011393003522998745373382213142059788768756420874865065278858586570319397611987658408837976086983413726531372500797337139689807123036931799415109099603149928988370255591599471315617284550604785737955929826712510437710830025871631661542649216085162918947285713700935591302515903895150980612332570974608693271033933685012051259756988134662476398793064397695876374778848692162096464502680034981339341767500963131664354691229661458221142834142860282480282250077160974302857953533684878382491550513250699830916735657676890223463440316001372647690763769355833607813613412754487791565983673380620708732387868680827080042777985833747865589321282772445215778641915513707861635032863805619330204197037972093603195191339616504221457615658101395848281124692417561979649609743692306570594454183443572027347883722367208668295375197223271223163598888918422495410285357320134881632915735423727812765669412405334756825822463115901699094006545473405131533783368427691317233404875891308139882809436369934499126161362107667070527992835924913342663807862614049444881950817198157066491712180161548757196812062014913441086375959104074532907362622047598798984022199205218849232824271291961147784233242156242325610990594445358967301427465980548503847186789359652675403173065670745916388666268461748925072860525325889781782721301685763248880346365307917033176227564449069201391187421299384764470663607133767818638008164859636202005338860309847154221328215638848017164423552846384173524051121992171426422527048347680087505111907009658772402557229132763118151231882026146887294902140029721147511602065980261728776027597367424638830256769210796953170444542390153823333455979086045703448417773773069565814701115234553315079616029609141251284656826941044661821722794020983502532132069366363772612160189704589850966963733266139167595834124753149349563921187670091778960998349873173048345684943354860529691192725142265610771302295390481065784299371623089606541421432986993978698322792459638674442883442911215256627884884829890177101602425953260222155391333130561030104260022062363247895844306883956716207270798332571114971244632467621578678685900614993142038156979887205799749302773332780913587279252529629800378709639309275387767103462582572640749402547325321560388524862124527084737348446938868526488876530832156679909649260587350030791413224273810171514125695306828412960483860132472931788390423742375754765406965139477537758547133383627752276528865431085094744226850209247415575352695977402838763299056169868045381492827210513785020947363881885112196240205735549922131418632888899654515400715256785927729469170548345979934611640648200945355724426665244949846295887687645423441161919868665892012791283498592885145436949293433129219570915510611787320835339854160622917842670408593019575308062977907874956174401632715537705593367013515296193769914599422942541490473321308382870646162079090581503237598063575498876350153171166917530223334765563600053273879619534507786431823609932510918207528367517864089652611962930781050682198348611480512658093086861789026218617893965708306234075291185688656199506247556773072687843120545686351613222099837432693489725021660526314565115313020738722297271317651732336476971623712063973169685794722116062833969260942948799077790455938246625252079306841126505883246748342488738411875560448000237852217972061698582724812684970899490757517710922964381151779303548717052392302037249773302823732743927439790591310942451988528211609079657375634143378822114757536347375863488156130609159909614566780267572455494897854521535074496165530369003606107163280338324737566026864991624568828735045082505843926321862661933394352817435897016128952351514422332457670993414690594454743949432996319830549091164398956358748877725695521521630555365731939144849239847056707567933331168317500943266589085347348438590746144463995507087424338677695736377036076626780678052640134691353027069636633345144178036748681914588219836909843080749350211278723249925676508415444542001058177734331234726086047080644915401325899844276884913593817017410300224304492763897749397704261602782381827255395963740371075904135142307234229103935189554992808528696628756316196939328326696164724504216957420425593235306237248782998522817875197921999828862235216046871276736863484926930642039561834213082896897273107659528818867325140062535953872861156995673671868141397589685304128797368511679846599694383501144293756407680299503976730390327463844124903191967484318620200583103132559039468813860668089638888610273420498540609116533193906820578749231340569543930440070923998743496095447556210114288627896870165093982787071058847064118516200041150048161027883215146794911332490599675468337052679099641396852932875846304292186481375694869415617594648330842597835895152880120961891880454713101829580530842463358575296168185878861754689510367860119461407267126635476257149660577941865953514474958507977413500423226432008529572160572550323600993905780268730570110160849979033310664329756007857106963406252030553881668813184213665104315107284204872743536216199605488190462063236448470210750550278185100266052925016280164624178104145064702689253030965767505763474652535942638571074004878623239921408059981485937225664080418160849422895625401447428387177819508569968161431987605300511769499196501806713430894546869792786273162629446547082114470822765090241055668750191622166222241146595226134320286341243336537942157815875898707850902903061951518526443432494599762795311786579556624632283917816144628751188388053375507412116420220645568132834067959621811040852634530915976200828382713598160881017826358913113918959974988691481527824704148412380689138313506885691428882687344689048647129314544660021685109924998139330224395999075355211676405314115589152831777323207059956177409056543423386808642340646739742535553680356623897435350672195672458049980566736051780161076747214833472138127415655530333275204934287108230531740579061220017317232323149205451970699650829440596034346450210444738839191110860894488991280826382343606890040637728980759080485878718071362602800530244726754710997062923903692275376018471754990027257569708089723307756583993063421802988679960364106692922259636602037015482713899547298088025389643709216824747903931743792332871054197760696655712943089430246030119128035234103883863510395984645063366891816562990024378850183509739004154839880807364192560154724088364604112914956294358039767114702957077637127795477254334616086043742061492646887567029431349668763607917996060146578047668688259745017369447161263181405293582018123515837674703663936466164788384468606169678026984544701186786795606878021477337880153972842122242684473712417274348253468305316861679381145538979553568922325083938759423745349538545573190963936379766175102792000498153735500561224816261566837573544285149288151726804181557466645624112095976018591153515252210955853196105777921896046351090517431236174705850039615996858808205620181499298385380821942269988130757612304241037654448007970174020596435342335647089056844837210226366873540529271823055441071008825821364384073199083078276043939822682350512601425534757445977708145806599761360000573078388928496500719225165202121751481841109480107447479083887989295312608600940601903231023768079738819307165140846987849108806728870229094034032683285113086915397981957150596571122121216643690833751946643579746731024101032441385047651780385078444127468070197529431512419202244762641055683067322647670586505873205397485244424542001587831515484667359630793347825130988936962644787936057366796438904365177437210841344531065369647953344411239286260106085821428038647512688199263094009733787430759146323429475643693814805544498647341258821745944265857015461109077428013059694215494563270268155419532090227013974845360585545723858059205643791689792214638610429368674472273366579880772787218891221820239789327881099092628180468533375110457748021718185113233095520054905702389431803532534636984233712271374378310437886447770182855708186616503805870350458826906736272830770551200398681943815496240700206975639548199170824836515826542050913983131471887711995531942559002146524924522713631896970398055562173355972898581070519643095011968602747548763436792120911000634802861487412532479389545887123015567491074137827094772962144078055359041756675730026723868677739294453200733142158865402680626819668956009308312054681814763686272484490550022218441125785588684486783433695004356954517027535252422873702859915091008591778040325193134044991740737440927139550496925632969410106470148671445056727391330704651942694253513516616125570149578232050634957085025423226013443064062474307821859050161095908210517082666454223037436597849014711704927581946338226127115260890288590860705766003785903330080644548117727957752338057281222819242625507573647153559260412516264907033340035255352746093939700865469046437632467738587186480611826828790485122446667936581377995498590394030338566646077569150835479388587378662441112711459611611979577388453140198963329307515302366762259676618852282235745704854346158313952646044628081003267763601544418902344874153178537423873952161836220368641124230413714989395121011821890387764735375580545985968474567615219360887005139704478604292451241627058116629156733500565328097602714352292138821623737857110289007003394534992717140730134186719612724941990665946034880947375887152655752734487095674707437018504316227180435575393516258636591743206888502154749537294285874604675091924890699563220160537149089997060970452317907407498665067920406508139336135558096057470459000057678151705599602631155686654607489102407695724686603800333668136776638077294006904915534413090674761288690436843283431118449854142239750073805508565210040200227843421988504932049294643927378486889816410764897444444367424943735309685287692002902074366507668094523794293443784679769543185910944894723774802129029575487482989143133197366079719808620614148052136553201551336384503226186070602261031590773141020225429791081472485217243284689983643256718448570651379159764880707746699948916564987153615926566301447321117516863733341893448645170344407185251022048343187169350838443541133593570039414826941736100604326988745031499140770107267929935028331767897319938464120566063541785338134882428459440325494974039358920309433791963105482201921148620647608491919399726886212769877999085878041596675225622531978362847492535402235971169548010155890655800422413950746225905291428270758539096203365625679625177665351529433104921813269726025825807847778936709821484191619458879397598736811719002353769908475999976754933597571376372311394088804134207043140956655082342844234472425566213199259668246451742633334806904614326231960214415110971945835769371776066814602327117477208326133919749358779682347443538065780030597791534175962438341131429305748059653454856461970009929417071871367253581571626045679243427661261317642319726555371738871985950338348477511277704011051256840148555627569488017917965232105307074866669912309984120673544318194802672224033538612163917671211367724333702169842196066975423673978515253488297113121301308097625203892231304879040661450358546636328660522663622238085328629327894221008147402235386960702199286494260940529812806546625778369115569957440251220001853715852652122697026895431852979334195150037261278879319844143071607436123093800030553018971854752353380299936350538125608401251879735765926393726589911685934553638264629203841404753870190122113331558891249652580358067200357677841669332063167747417711939941262273125492365070377601688751986512668505582250743755581147772370309103753312691192841104983994107259894050710323377473190850930732096409247563765283412127495130932449726212513706081189362677009179548600642334538717507275451026340051897164052439130343162409154351045017114239651813899484947519851401806411086683456524999264992220719947813348929887338289203986025694184668993528182354537799437628413760532471987975805762788318579975650775428555266514528002795576547751547572937244821377595829898491777559565379980841786854377165503405898951284156206883032624455244770921029902268549169028529899545833950959707686245876989265334488702963234248142576315078075659227208127547368139196701559470931885757601384871784256171767257212177514617948921405959184733241083394338095615410828091716975235495778164103925792242774127487182113339841348932605925176217414127176820294371597352551432406151536654213136676477257290273106175063488096503283828220784709787956383604048772940374435752513083565585525494462605357451709350270723796590942254691253789316510645541790774005290839783114451909466300487207729715849675720126022335379377677565551641774924746899956087466943643390662045568109989345465463959773491265737073252415132022629267146081189351255242286815838395874757673898760061378416449808260344895309402203905229457223228974707627818847195842215714263832310186265535693602876408255189270320687533324109389712024233811072553944625417839627388070881187424102049809449301820166852139019415743304859077797486490281640182318597161369448307479763316769917064932185662229584605910165443363498761275749964546014434525698681788462289895682635890640717736431260846184466268179673113146549595650532620256102131599704891834696177671851748703809408035540362896695805412765175296364505809954712176225107450778919672010849157415479831245568163206401408438467902885517398836501845201240934298793878184846875825037379936321765033347882761137601523407937905206420978273476635687167912738098374699556091818557787471913765722429736961670590104174327059446971861487233141559974960932565515938666950059722663730345742532533149546722388718963118698952776149752231758629626443651791452936755838304268197866102872547783325041563170822740057331170774322578865329940039797101004229536858964306974775009040282970449637737010376983454968691128792328219753970706837903692988967293146115358773976194932138976387999202482368556771608548866432313667962832779607336752176597115606089025819803544141064790620995011403625972889059910183352312215007271188248710099463402874498242530257273179730338302904303446853145141727573252412928769472514456022422498535032403128634744616818498871164921113573142859266111892051435704704908463599455384156359635689127060976124198176503689834659369457245321528090097120976947307284320063849235650191565793798165408445692436115838316411284776315222548536836773922217769307745555614817322170268099924683596116944428888727243662633828340540253783775968463792322486523933656478263056058799190497837519737257811627032518868641968403471901740702251239550256905323864316383650113060617074712694197897770789042476783538176367581537560054040517468203493336641092058383148046664207823255483780091959919332515814227445238194094391049724812582289014119257151678601133190414030370522989581827986583280058357169004477830289616084246759468692505722919516378530073651939894014767016017135111670397708527170528340800321955873510222637948187042606799923800219414918109406190751366457044549131344174327410024366672909633663880315612361050869029435607142181506669516783340456175040778693771495043202189065756820425478534698526302540764023970716329859632325219114798627756460671571645553571885005431901114636242723624393354433447183035047764858805961444819994758625311517269107424210694110839076554834872321396347916227519383982302666483284059268306579146206985487307987122750741581548589354852019780617972390812522490810538601217958683454273118383305789195805523514601991540973679231101584382404694003884285751669633162970903763966615385915471723738829493701469701884295521199542979989817410111409966791342689753615721974277603302325899601809753671955931906795643570223128306796064553280039553173334730105064644582806566470697281979790691395206216137540687028502516090216307663244413784003768929784972306992316457766317611451638390294518222470784494016649525885592012973133728709725101419161307530298009509508838652876007277594945121391683328408062298014058091367362454913257300614307891604496766233741506730720711260860674285383751925209822976617564024766079881615040103603363110615108952638469051717365256624365368479449165884809858758721630148812255939361920199813393356715011365238552762043104746333342792762943118172291775179702861161929596876205416187931916881393546608208650993949703483874621209298465980522750400730139385784793641858017643741794412654547270865005711686165446071036688435386044133761452380403758421431098644604600285657352077055698827848552353715792169512761478147311506087455443560644217218705802336898263455101858148266883725143205089289202354009567213714821040802099044114570191313769002740738700143260108778110630613253168013180916730976734592216427497720491500365441107649202391469251718119590353866141914173883452194230939397243178783519699250219796344072534082010136291087523120767842349979688410349234345059920189797367140701494379069360064206700247597546644797932515003991272566005851451735544967452339154389430611842586396473524034234583221142739133825504553778776447644050658165320492316295844838349984419857750555166824196548903360495090319209144728131816618633637570089795340389768838737367619803402623911783743524657947165251129187451785719491074747506465112372971520775523081223429074025717184570305250877043294198605606832871699458138750529331633221070705075492331295220343377764244974794422944484770129740692394307426514849490315960683471454591133157050993424623655127647829545485118397243960357229229458228089571346646004934872533428001201484739786964152584907036270143061185679844630667927313610738158790142024179940665577804578969474964859222180769390820141325553865987853913444401795024406498277136155527266053562764088538462559277285887307399781773533437326022974239488689323095256484595911125728499784203773509314063290933163098142471539110365833201824933640948423980880117653368788634569000202340513823846533105988972224930662887094270683981885541763216880525744824350271479271578284542221619890262002388396500437965911666929318606949316151669385814924995617524953160008606630288197839850207953792854262485710486461744293795940831907223209018284639566826304307747661599370362543660466398506650803853545308755497857777357455181213867937085192641039836788812336650491983271220618597456413930994964095088443833029448671074226004866912402773769112019957865713519816596364995223876279545974570879772035092152321412696679876790007222208143827422724443727444537270389481197794752719460113189466851458011502085088949396549849825839801343263757665889983774183786586734788595064071919443404128462266413916972219485877797163136134397031697159426307304312171561285426737258696866590370433628105178838043088609363320541620030406972503104769412218657056246504143965500013525700363029056104106623182289594425084483131736688608383419723737825656137560492916575025173332324075677215337510934326477937217182695967879081481748627172391714869022844017886320288830882352418423807299635401497338611601092202519504304448405744139399529783192353690638148026295337871472209565388661827385479380981695545859057787399829959396578491997960435736272881127317153502904658846870645496888691676441381179053571429328449801400818068906681935438193347819793275339022623881815666945099435961972698747784542373054304038136061772545176420847441077286062082571955908401248742327899645365668422870161161111393387410074146276428820952680927506222209143819788205574505970756688174679233840947257463809058742306054982599422438049847113785774819565379619954244377460716860504436960466435713811023380819759090539043974237857094363455827421302235712727912466194202224214519526501683008685862567841137894525575457339263202131206434990908626232372442141968076199396370224771134859374750288195364901636796142439923124338245997247422110630748208166165896861705203599329061776469381468832479897910522990704191972952523333069886518523595441947212199064315968549882339094571833353438430467717688996276714405288793591571996670297956782269741671696172447863431442408618941028299150531081126908717184118848816520809465043061287864264035581678680136774361032320208961814208732793115970124414179137776265354438582818845806777516983065493053288749132757178100233719916872408191807489430331930586871417330314219082749272692241850695803680321221168130744294786033883215695899412198978182092753176878281941520470295208279191574961334648431688765307421972171016423914970904953984450033783926321806212332883762978116481736189762072185256197235616494859755154826824624464480846924629093509454588231363573318781690267922515864518328497812999118419576138932153461858226492609633899376876708153596579466439433017608644985498252989879804818249271208515528284615929097141819060047391433360404244427972035463081914299819893457710660790303506402525520968810145253940219119728957837394072046145400480985740481093257901779801323352459426186080627769851794625731820819250162711036497065064329637608971299613800716968930996828812288421149143485603607380988325675238522952140270013169215146289262965628601561531867738115924557659150146788816138761800861640126690033226707630486376177380170855555656568092467969139998815499342381098853180447081333441120642569558220788050357834859875633791565402294373464252374104752668264378850919877667332876931511305717419368376301066464833670419765897282939137469877576321046302869996945671267441547798988183536239920934461959752887091389582234647687419521297236313452324765981039730251307671943105606095192860801945670414749443800466664095070352014031437099179240919193190249697932435609980757801765053806759807464290749886868343095163243872925044150666103064035137780143787086439327171966863743342371019119207707983678649058116277767985929269514824138438602255364070979264194462147407872355308624720507046576741630144344929578047658927102205729438741617285423057049286860054913492138575561486967412442279716054511060050412502846613812455140982471121153394131215026860243572966577728562483290704191964370323958662916056152372204373147444531640820519235420177884357836509883547618331260036086006989608884526390528721847612243899613052810659631274620249637476726083066218678892961604931111852252587246532086290281215081019953128125122206737439626061097259368356646486824725050111525864883933047131574365012464044565916058475945012059135444925527419084188928878325060934164988459327258859714958005297521141014990686785616211834982396499225487321393362425522983863175574217859579093968593113223772169952063101438248049254344465618723557235474416080767969258263512778118128635707789522246749717226888290476622353230368526442142813158329196346314810915694361333473047447935247867501730588510800878125444936428634574041075859765559409913623792922955047036428374948648069574386927512995256977975377471830074295808827475656173186778591954091435140644042742228349799676916707737674275766654653736757158598897554807052647847008740148322611482252709847953895983364332867049470096060889531663875272448957246662286327344563821482196065324563430334253340342463529356187182182502708343292210617495294199623338252721365291736605373179223855646436777555818125529745494842345191903696314057101640450675449998561254944055451437144533968439070966843124008461188724320524559343586767078660141226129868793375930727640400982202759971651418868456439614085383852585943897912832109332934835444306585483654296412265853964748791931003387277842175228767936260923048929026312939647324480592889068104549819386177257460141033597839130075155908505139268194365781368475808534977774464243309463776696337017872913900390613913488299237538637589981757284318097654331032856443959295032056577651534072881709729983057274786734819829067609153210895365521869980510565522352566669520854506544875650606270722356446624006872914575812030430893381970342156976361550363141641717128804372888742059233451581048799993508848566868660587448085254850757849843583071097714484456808574303110062431866542870418473153990719609630588960256331027712693907736326825463835963497790264450740698265431796547468098987917475899644965632754564381015168974235160591533416246318009163746818353543092822983123418426203653753953427533822801798867153170812081563962986355121664232447516145685949016631619899003029223668761108467304253552046399793634746878067116188413507383326872515573217559781429845667821791298993371377371626304233143072472516425205834683886994690154180255523429402615986200000752259404312231762247317794794448799327134071495028298687126971566982192389141356703779445076408535579430810303287514671886340117081863517215300389416631432623080828630115103868174575752211142863448774765283049470243244271551229348818999741932608317970418174847652467929593712763042586855984627125142904676342408573802417375046924275269538935744793959161142278901194188490642471168507159093644278002513065413288646298214452541166985381803299455881137667628096244915832664424589586446184127696821405121041888917731482891032140777096705313212453037911162030136655125159134736565283731054138442096127110834255820212369082663959820652148611102095241675777284248561288626686060462562920999643213335897613219915038620876541932865474870523522382552813292724787808077405492580377865905713181682977221966263662263485321388663403151338391238853021031501042942402975104025837842550972932520421839958939660482079984317804781847022253024663780869101626162646964012981117648912193241096345668793919485704760618857337632455691787259154704035524359142932912983710898707913698834662307187641435391336769182610687751903877701975162791063096301183590880277351094385926844694910539591408908532970299894574225067067812330206835826634031330607992385959104477012984907594381965738847472735342042607907087768461593647963217258420168905634098992500098063368566909395471436411156308258886694055055738146804330952148969720918234419256861669202729950990914629964053031029088118884477476875497823024468447352726334731606406437000834494941058931103486954087406038637710636414766125140169181264150918181530459068944686235316709921180764495903400585703999724433228803458841930130614672286498195652321483719393883756472750137586234453994260422014307078010311925530481239010883058047804296672076831304508744288010142594574639047091370141278251093487318784723352837536537886101312890479998534873124494717314253030815940098259032429960857685326111223802574809698784774978535886018452455750655207518856510578540508724183218695373269620699828635090745376345933737521093136179397845589484509493031372508242136536586602732976115006281069767058166400710974124169053350898046593936648656884638370222974808067373839622348372509433373847873978859506404132354748455774141737582072497613051095939305499244945259165824835381659028403660006701543498457266406751901202110865303884351662456514292024126853903522302558092995477264496157925318006501563471007769321773393986272738194769567382705180054456067039924581419639217662045147154760961159771766018054458148234938144337274758753829413834311353807326753982340562430215837436307064175707990647880921670200167848396719634269666524029172655014319453253410379778557851487240294186414245147134765131776957866192748734946979066374548751215806279572583904678957098575564615663929419553842985141313239562319148452538606759770817077017246403114188319333500487117773260997605996667184225569966304155900731291760198544411763302670381666157830213089325200794165485819032280899287240800339913848916861248841509595036441836244990533164115125987238110083161988709457468586252758606946849263008328226244360692227033267628147007319918022129293666495303721080833492271829879842256508692088313046782056986599721025716806065499490038674127994026706493990540504175205353389864234577361802335803935318330540693016758679723334235792320005353871339255703582530279108620612246076607344548216644123567977288243669793903548533040145551928908326536361322486517816048023718577600810423342407508426761889211691234865012037918738079445842913711451639625773654757016840186021137277866630409736397860005400203440889261784634318026223214224519904932344723087052410090594685787846796344327673954829586550355087525288807737670886021484590028403011603965379330336846273789397954185730167086532164069669148291085366036837228110039955882346524959926293820083393416714088776737795724175505719996939736948436052181256306435241370481734750083613252450062384675771701790359353804308091573645421212849441229281433156781083709942684509304612948203739401681957874833361388416658095099965720710671421564652366281672634192592550425207057146317018015656184994323531740659194115630400391515350240857050561818868787538055259882242546003258689752859160714232270142280110330937468830972103095097284958856039953655096906396905543481778576962928518272909995796816367328479801662010325610531361923920994032792475768292617865294191356336598058142683569770677559733137433582584679244293988702367354854757230168298667354046770128317161879015816867137332524901060571280127028631755480420430102803445323427580825429370066350088530615740741054872876453847650261931675429598874980642099504956534872421546902161164156359347856188359513729272158339110769202329533513200553996525338303802155481886938981895388877815695257469408087760130059551032704628605803484732488744427697152803677613983049385556336670604733709326538111370855110160510371220543790783436913946579568470292776142563286980629748834599501409220520845119928552058490152631053873660810245762026560470114200863411072581795796249747848886027606700958904314359725221682771096053006036312529235088007226188262207876714745981049178958551842885792180894831102032095048582190651666006157088974775125785584810760012475600616227845938987053252848771261722562539724522764411208018444531669661710595806063042406755585409583591601458926039565776108003793561047182919664416151538163301629180342206986436317373505838374628307335674487978948607655030192915283706331261329362938435376346881636945535197250041128790076555161787699645663054289735410577705398849667748218006838245957519956800117613882509654394870070931550147245375699018519042039314463785367888140235884366619059686323497613442459934425151865933930857010136572459293000201078978164781234565523710714232107830160684574918100669441996162916304208024110798799374284611235214861010040585550191180510139460357447276077328625798291120262858900941427607294340892963333635399378923932941160072963768032812254071402727128701109934408814450536774260564729786273328101231617747337949364954962365626538626673906061633510311721521966205917643975522964837058141342729967530629349491510109405009854128192294572119462376952917651329441727364789318118537696018911423330302320526611534716894243709965432529431830951711750181571378521162491822820159808598004067986511819748408060650951640754176453721172649358986479376991336049956581484059926732855321048801238211434051680423061555644974400997871884381195256291812025127350871549063652147449920979862521986813549471949507744210844317692907251427710303587985536249339189163458114245972934741911605071668667579978692974997144929568053768893894445712432045117940839839591814756474918732603914067177696659557601595880466725288806788779895680383788065854853363016020556864234851282098239248119307902516320013950335317031976741458951137469362084989400804319898165415446421273579497541170500159193561178628141900654938529755608086109868170476906039878891814894562253830159847361345777263325787514238051769556942170230670856307208846870024436989956955237372227821463631797043583936158159381213611309595827303218228835211681020567470248940611939002087080209307076299060170698053005106076668392662662475824611952915330804119520290165685859688466144733013729310690732587214644882628914803565800281291837548062161206377071483313139913070975426811120901101723660762068972827977222217187066745908322393319520589736807520501008429852462817283730021501697904275801265984791349600358602652671465014390113435913098981412812377756722767076843248930035488489403131548612337962761113975880461371593975757299335136581650792047690961349696368482245398183423386939907198369814165264185040536599517851148692168995524568773020205327614674043684544632068917869247613265556709444540757945829862837423501267556335558132826715825451648115880357042530953834902658309647759452123647496731423580535989644746779401500016136627766232078777122720451705915472575697604911061024742442263589769519411689713389541683760285643836145766411579492766274578819188772497927248230500116361844250488274700268201203149320908668203857585271778877001671204759159392861012961062251370754808550539621321795144145332643107185277190733818188303279855286413577121980687748387212672215073512197918712088395143197353878848109499459314027303484735503837614652887114166539390449527446128066952757482127602951598036737108691137183931839727531142758136837732593218538254350459102247652570910258886557539817584362975158498970038932978206352414303712610151029882202674881316654008928527775190127669802681445866775623966265178559857814540258365537906542313364322718563510499005236491277262975743522089257552037994122060427503893701693632309496728692092334206797347659915657958106691175434764316080360853188669149513053582086353621320447363902883417306463157375032004846714984749081004510008723278775071575583435716571435084929228159249809633558685939978359930205073623004629293037366163554873868833298654483987971110672644753245069091026573690020950625178323024192016944411785376290409698153887767630383355809856993197658305780296186703404823087980784184783901622498492482562986580288002081320787475072517086678198199397535942426016093653588306400393683807318982603725229343188208338356082094207089476541920966596933006830437766459196268890360962222825278111373321509900685117008667254442058845090785806227129063916424070843746384809940378878117628606436921373535653743455570309417127106255973746035001770154359539969134032545706723427127307046039957400676997126734860963530706493053029583427221221392336068594811906552891452101505849391073973466713185091732406623012207536009395973484524458235231466225635102290927926046316859930884159090064989992701907244442042341957890531982541285524150606809119690579861303067522236419022768908689933106091127395150810333777893398259395787039773409371768322954213387289935794971239992437028669760299450673653049297712635762083433949626064934475089045688086063096242084663989001651128129991511701773056684564392987278373162530670255561883616288444468436949621157272625195134014776645664374974695677568331136395394434451149211337222409920290895796400549237127322832554801227402825367049907408593161355193985763649687977761682472343537597284393351704860485406824226367786022077699836113472160369513094380224606400388606345712358644446587315578891098125347538032829699329895384712862135688966582364335215295977347559273410237367522518385011549839776332026860320135006439088322675636961332130812658525813075949261357417197877680460258155480801785615812060649993848381606497793331293919573298115173100381173109217884192469187855183381043704444312685925335420408789717029307730784150230584060193719925900467194456471425944234764257567052465471090508220537811243245385451916551141789911619142833524282059864451920376551240518422112859352396938510953661149663190565136133273678077739721517132190136500933275970988139452022607622752920541022132391241472116261730343666836100456495104534381985618850428968243816725647026851591409231063636423907286710446847071618442650835540128809405440793165480422829131110464566730195781140837596150621795654831879140384794895398557589112807516932554102637115079798801882469445573696266467374735657484075111217552380494589601083747018815660360443279733373705106102720802432992376356613308514404300450474901836518585499992148819631370031513687599109544129915860925285245278010189158485918822035530350207482949724560528389449957328589648081128563336297043069052960984020516144865049061646421388656458718536276854880642094050679116971138446160673339343491545918947936434229152579633362483119020796066298746780181115204146178521806622306134781151386008936417210733142603579349841728435992559076429066761583123404426362805652884831160462552949884618823146859713011419404370952416515864421095083939185248569773072392014258183556896828702540184331423522932071081314810488478722895478123994410951195242268646952437602842672378285600259883282739876766083103015164434450508551210083632487850894276866125327295579719270853852666026821677806076419776672213852943662091802517523995673183745000495330732769263483739984189745793263440729401533236682670550968162894188174045492886087207895460333598322277092672692333538409069784880111896647941375995771155180994125828666780486100285889474127528017409859323629442896694855148452959862455185962841594340053711634921955455954991396667952979405878774396873286886611234504618280447357321784199576203400433986194568734527133523955155528712572400267188831829911807768103420279969773407890669366661586310138661711693365868508716436268081007426332168067833086210147591938515607775395169079521048475047849875695557323692802353078587752505566031458948880378663241697271003076434857442990522081289705739153045201609326090501160682029269036951949386848109686139829174962971016135801192080315175104146356923174084313146981613425475647821745488052351063854841990903991208495742606565471468314329422347975399547771109316628082181636289738513642013069684655030769573381087615254719269547615143787382316049070527967918995992409056814346143198030816579174701327256244523398871264512113934537665943877775750989491208417224288253082859743098306732419831812716124830484642846160520174971389242360055032689569117131835885937384466259195351109083030289027145832287538329553735307789011996281769045678418044511039971707261434335888211240457205637962843586528635629554901826006888711602815744108600229873935262791757792760720500140360282958705205420695283950288110923677853757261576028580421660328387415847922478796240042190055083812060294447322487110259884117180043266321457981808324936666128379200859922981735295369118659245507024739805641956988107483035242934255101396417740607823850307706246515102420372694190493123342677472188413912093403721241178886689602219101404362173017335223295424075550383557777409479604884591828114595909306938593319776764199197610587807567781237850081948012934903115956712999368656103691107143541246113974977376059179588320967918096747952242752247781057520735213211246287658511952415367582714227557133054479296149056915137975129379244405953570455365135985917291025858317460826603332633951623996311799860373681870052716154059059668533187442760942567205403534899586688565412085081547815716848948178870160413877839629618485944367560386742163133507102767201500314658298630207507566456740922434100738655616271433601234377718987630199465293917333969300303287313963322359840511776124056010275651232390460363877950093420450307351041239062202374566084277945693523526369362612131165854599571148375502652891668850041186982074083726350690752128879400891552871160619838719658802808734960054724959670214888121158846490651118261851408873180025986668439685552095997002226520692439869454507243052638746315438022695790107072865363772246051835488007672622120017148747135251052898745927787596247511304143690849458896664645896632653932704332755045543907961711118150159180538952470906072838187190127081284849980928113016620301578317232902635933958203016065097140914808935382247979003382577898751664012155256593215659150077287765003493899906402392237225144723405579570255088388520129504022743339050679116741431420843124894729555126156591842663623489627696139178229518887363159685256999055530759390709419256868336659047776721345849148613985345021445206384904556748742976142478368890321864376482836348705616892507663267262981370726291073306572777337384493712162530294344197092983061650553090008001949980667198226145519369631227097722359241548975946434822673197740715616876988794839091689263166112626416491290509756388378114391194225329425675844618444734553337291922426193128946184653292345595659540427767646066064951344300069497836008286145425427701266686961156002630840424716214664238014011379695105708613320733044474401576540171452101809063230549821543442783139921010410533903244684605050423758336159844279578989945732621675551514871567586694871316509807361069278234041853931151262371780089109274752418988127682480258632052184108821488590306359350360302204159767715711901024897162475583971388770113659820926546394712149456673111931048728628338248725759378048693525526546617721078296507715176755698333859695355122069123209235040532978925058116705527753104433896325764857979132918820933257306015625329106195187140306385039824753659217930767032797162047717854916335841708773594287537986436335817621928991740399737990048708303725073092116234506033047294186903870636717932869589435999028750614506637348928104849878636717842137674749884057275829275652301687926067239012005105411440519036854787843439721873029656923010294256270902443273698133195571358421378676363768582497123382286026950295972010028511416594411811732143575115796548475936971537770448138450042872788404200164117202702371032684761553860774671980775296826487373573180858773521668939593208401056424646901983762324351919473831389866358440288180221989546438771228003784000015137829590726954619839706633208468127159997333171193812172940180757900138914837385483490797976855630753153311034193500382527461933488627691387957024082672458962126932815403663422784885134402540816050200205057905617370843932149393000851711932307955445832590253387982147116562428314689897032161849263960824849075062084982248313911228041665813018467349879695753942143767754758040791522928782543621448267394322381464397027887043366221976346654468142722183458956450300153579399343686750550229865774509761478187157139478956619477497506270937567757453887274250537285434184387869095398718345822076830856921932884597265220044722938658155102018687085834750024915539947044778750775338306023738624824655400687622745410593790237895563449241519601371488790678742469236492943403045923812023830953910159193171229096933655911991988631780269456625244530999353028353426346116727452861189050495599153313683289301353771847631428650698917265739241746542273752988151292038936258923319285422376148077897884287506284493756537355342424197731260867500662462600865463916652584305202161771022695795388852259996454903539279823844537299438199835937853453747424321804715005815237663348515977502153815116716448141804553424631274842663533839786439782869625030257104966849563586581452715020814428811294945891803135621933814451536089838232807804332162240247374018926559793004153458346886040799614389351474215800546419716249420681302348202899065720769137901275616560659193976453582809407659436714016854223243315048180830900185210443387794129709258984163537265349040649878433591093016459487238608942323181174812087411036607195236809785604584917485505150153882240156740513192918990710273877601980883618114819333504161626363575301328191612639928610777505601371410913450357722107983121045321208240297330140077537647967301733657401143554305138984584058451318326743727196156010774098535935142921740120393529882401427636418219714709204427853488368355309742723010132653083042658337176142398175823930718629612261486288526818609333106481867478434280939448517044277519880147155569167908100089869903959779943166388169824154352916409140651881816026890126084146491867554890918339934431645141814743966533715523444374399926511764063701702659753359347071364272582979761654864265848476378382842489113421577409303644464690637623387555763542716003059333634016939170271986763252413981392687084636063972337381965429682700284160667778040378028543924040278352051231650600351236322671823238342485869531241430622299489273077590369585916435021927735501177602922483519426199565479348007347391737778976942639894092023345319617153329372416789987945614871727337534393640407922829478514435172218064104346704204185919532807194973052122394406664426971459292918793843123670484831731501774540508069225854064477815478356327869853984510971380422260564383990040175527412397505322463505604317817241863834206702797897394207354895902169692860572476179405753728864993344878413002896177367449229296256992801460764108641801898966265771590897984442235204021784222355583075219631977359836701684283395418712798504619706810603548279558003522572553130743906610217068762105959553975918192648263903619304452049131882382567226744670621735825114669045699058429676964055773250938541433243707430119642604246295164063599891080377188383174737521061470115561746671811678758369753850459437562176606005967219123893493474915548096985296178776741458983947037410914893444130077131850204471084541622441329040781211682165134347032272569718313987883424899991656172807517394561821193630608251627679337995041167470832189318942841334437818016487771989563600904507633705445186274266212444229088173238174742106443026064656805701331552286340718710894831348495913480459130221463050014220405701264588136451938540352190703891369664143031926077099013118702347104241561031277707574354749088463077066554691218279053627932405008906957768209776484733525860708141993061201437277738799794653063016114409252362925810284832743893325183784505640933838211457407944772079276072311455328216849885642263572953976247335975729780384648824664126214075482182977602627129886359690153301581540545207677535573677778636197688286760754623055236604593149757088380248177865299342400050574510120385105198047445531935392835968464760499296832988515693480853280384490380265660150596738668928390007921910849600015940816142619404745881170193752513555236428593384711170555599955921959170564280691395414942617793304358451889373067971866166910494478445682805567324502378867916259658678543588965853187320784493608212632102737633855440059522557374138489259735075422743348687200830514212613642588915413865204460711604404031842918447669198798477756306706390375758844039746229638508500109893258916154914738859798187546904902658708436889244480682137821175872501404793883759564781961595564521767948263130366360837023630772463988383677682313206179475093311741272464520254420265819807589084276226840823264118788648963250138114518246170316160759040171906283991488187776402086344708942724639860669205479904643614802556804000750293544272944519978969641340475303651469583686570301695230655249162311010505149544907173014120707749916396897177294618655610986972731834200923652149649903321031115756601743727905745414632997062832549229179376413637660889134098852377261999977650519393155709229708589962593560436260038445294594262022653849743395682291706995887229718206257254675924039495733321535741697202826664234117994877834344412385764491910712655212449457481994962203479279024869226657694941007056263405258951985342314031120467068927001647757262420163179544189150342980624688347946448580681252345684934574773035164776535175512784816242337068621841957939702098064873101249609669512314860367715532146554765891720547952451434318405470012494236726593073791180705708520892148289558499295053010435798747093095374700576627882849870998139922091958806328962567270101954367684103144697313558214510759352046638402603243114163001904947786158169305722684328429004682148548244544280131616801664960619054257394813702602307002503350689092051103234042274574775854538691205048439372736348088471585076357409210864281263909471493918396267162240776400275751265614214988121967214780658084387138799008513817360912156208178743374323277035610179433895582103188967097680961061398684464164045777448283618271743314475028377815088524855133866029085839287385773065707842766974913952034822996606340236416953626876309414444767040324559863044281668224054495697958717204224357017036673038548410717092350902799234856947220751632621521571204983297856591957897023041171753067374533728348327623325979763442186602046317453955165068778323472031174125106336675896139502918616598242323953039502105812919884482565790268459903211346849291116100342354503550511553903777304528720569454970032249181878907079804594867997326129274771894922369199520467069089721384626632218617474019114666277758214286097748928132740666167355043400786378865288416013337787956231512420403918053380272518617161054898574781041561295305044405898963634079840121278081073197597628111971597271359662964097955724155477169636532929517232656506365283553283079583948669463379030769282697596644245114468607012763735026351423608486180741347303293002633690005395041267495289491882676581090419691216326673642092586138264510923688378627831218757758368209149738062304876527556788201538055242423241323170536339687506978944880970752878718629462148044942939947496908301638355073573689914415104660300464583793009470383551044820479748655700874648148258193920808322160133466746735335391126310916769935819017500714041017723302481337653311498462986075347893281959666017838711889697239131953099889766692431678096407618484894661675300289864232134064344282367213175339380800365699032346299991659985361277452190992841941957553879010853754187954343949153479913103126690498542859013642114268463218283397646356360995416392415174759595791775174006453381594580405053338751896987255584977659434210282265766478180052814910373231218765239523911250642618912928741639220447560786889910055998378412649288651900196502503415961117406083790040864171561052511634487465082518612905277143223824636942360430587689835333689891491886840383020387652063337015491046480044221971981892347666960477847754545751750981420684197797173674289791393307505214912197511893432155723892818221297891012427953535660647682131522304163866635581980797838293159814882306499126139054237459158207299529184168709331406092212421853135340608926651588102515176887944492966862991863153619422826215163498959551451367140014376900611043613072218138922832598856196305062505796410164602648666340092186422570930340711504605488415694337298310564293073569577246591164113582823858618043142633081303011360871812050381009354145763652266718723948265826258918565902810868015644887708583418586562827033896777174827130016479404692802656097237707390049595229589817855409028029693800910747880270505047716084628648760666860199195630962066747085030000388519733631787782771602062348219358427348821764698048854028864035266459312742404261074283254278595782051609844271039512764674489664838271451507768797848829871819709565788681996025856133398697836136984643149140440276812295065091405514785451757503699904466421477270910458585023132316173440866663803242141261167703211524237854501320701018401007701044801673048836870437215981198707600979948338630898017607672117193987254047213275735482300538192736961369266651554377477480097899397702537438464634615269674415528444082541767261323140514468477833828393186270705088238821349403506847929507399849701281753747028138184714678098632123706716365018909928610367916307506816232316260643540309953133357967376707916938659155270457238250700953507582571727883938275850659587305896790947159218293788689596238743097042458296194327776316007625723198637401845422301035978511343268105200951304736123734881642834746273291060194368718208414619375257538367542110274799829853118655993269914791838566765551976125848010619283940447884812783888832201611633004418496206322262626308515438352478723007264749544305195253228156546841106312999373495125183599456306768482677268191228668226714819928376440366302356074115206863832571385931833588517030013888393952562892332876416261578208470860221640994234157988105616017381770365188758803062149873140782817204303434768010972479506172221650238607576385378650726445602994561532151346846828024884617010157820752076046867519328928106333559528577802933654139229936659240106496091334014091636410784059607235024064231541509462661813890949977312937551524549731125813492318058050612061717497617224293825250013729744012023107116027183471617354419289053391677318876513103890827034115587016735238791271381190025755507784785724704429236585610495671653747405088963084992079135002316724916988984194580214253178806350636136645736817287359967487818335698511835148197270376534738315330413316502844702841208694819812372016496470937989053234329080983517645212467944795714121142624779603100331619783371352376295259334685094411177994431387396263299273756821810968855316181476441393894970981921767532517145375911570591973481615183510958312226381193417262876191235253929442153861802315111375278312001859479297121782635080231293261067000569968603653872765780570127101034464995246627993223762087369456694645491563659268176844115169620851266173110380010514037539342276371720354330113513007630898653949227206220314757165003824688137940335690170108085086003435502983605408326841379941175279945874487437072601810882968430195253075294268879918532993871644972452904018971744543775332547853707901166990851694080083022701919034625768492822111946674125855704289638324766496169830997132060389267652583255608515045477686663653955888646802227520636223872024065578921417578449775631779541046299581915129586268717021577228885431295636548060844915237012239613593399463223437185173645063609892314779519271638623084580312760395314177461632349017259362620909836598305603986615606736545377125480645847688464948129993611547949393355312606485722285304305626717529150735192669092589952049969689089187307800114242918202685669663347205169833801297083733710004530134399378631542451323234746825808128071860493919142472402361325885806361747735102126099792175203994997263054696643864536681008330809294560467667609887400428292986677769359645768204000589117659472369943661392106106329008581823709439061377622039181559841259883862662013316814103182968353403082836867140589541916842778529229128895824653316589768316793118042656221829679847963775879758759900455697273011698825145104388868537907937296482661507867179569758469530111750857856787383108064635382641237870213479681990674389698316074553924234591998730632689842905816078981386318488967869823844199347304813675317821265588554266011232227175720117056681274258763102365672764520457493454312583013580219976369971741706321919777664128784440743149577365412205237419844427771575685877537249329074050834583892861694947999922582288025790846025168487342221651672900164282489979516222645574272000960739541771080092013242845478760812307222082608818048338431525417287124352977872459902373158314630291057923660519292604473227102555153161337539884413197655549720606920728705447919743883388969391372761453476224108198819932047274262791219056839581454900233909623742014010153366615972194228404657084436805214561997747725223384527598630509052310489169435241565158916382310782534280068600628064575318395810361206995329294170209886102881499485275684546311232979645026368481548266929196135256765342818649045955361179833134028654882564347573071408041110191698754012628555533378972552723678066526838739363476889476440580246078282811689642799014522900132214509976532328225787753197657110463116642133328919851217458061519103953915192662023052705023360063040284343440690472055789698295679911058459988767069785966097836480487827748855727142301823176420773292042714795284615190848603379962574169622349482271375068662403331939157748151504686696688292295361798846793504169945971732933167874964750397737124855479262224756793029534920210611261151703014151487623586087784198599239128326172763193647483806674947824295743585177997600834963968380788244303632446797932088299848255232286825545823022970952228973012307821812949108862039549626294326984352611431931169164531428686545966179755903737069259136276874804964166120959432006231435822987583967371580721074725137517550645600701500031739185974757243553057727126943793587151250786264378615230887280761563632823491757842849575340805931965386887607167282084898711774888090707041555495068154840526547299420069510447850318750376147745630366888641464004864675091489253182315809901126156869008833156761682370809351597540725971190743202261436981511360419770870398202291368412658520083128300589853426220646602765444371327377632883208090161704794584906953172543177053634104383500736875070535794160736833610109158416995349575815346428636425296025161932043105556003160114347457104686999748288175716267174695193513906154190172834913879420004644117786866086397811192169007805094474629092496345937234328681884639049196648099395829010341942927562745412956766206257130288490268533716581436132619390567739764701499527314172588855484416558465721773313083741155555235321882845856775834894933152681286480258092886205244867397819453213625831199192657177949080388876297164403204810655114528645153616923594903507942336023395508461935414497796605783642720986749992686025780343370064223652896437477391793832780574408901351280191350110385619999104364236941190716825986378854015299443833594162636922483471437297353417367213569450530150251540536968520322090163312024541330432748920818538462422592130963270762264022943433327078483841340605722175838580688082905475215147803490581180461407602034708422410465656993720430092619290685350583618674282105071736648965366400533187228993944565961870436436844843132247063931370134733664449412722914056306196033466775477189868429246375511018325683401501546031028111889606379924584717019397139667818946795548675539985935749638513483033036626788892823526779875447649401576227060066384335025185482332462736001708664558590821651670573559779850938074705454527231217496423871293644600380511921552384440938617086826374385069309417765715357880793326224729848160363390844522076747710988272153545578538169305323261020203460518172156250869234312467031672861736467417547378948470718328029727565187277167288348369390714050608544460442966308133189092337709492005739150355316999881601679180156814347681370780733273270233618147084647538515803640237636398820425310865730543376377910882770419414806866480547842580847796782215993426335778994438480661160436749310399548338327162200638145474769049851455451559611330246959641769412069614537439934319174909863292027031343991751538139355427185331829155072588137189983354816003446089077503050881544649669448024652183902358920098055108550914174231227114438883723015004223174339856516497933368544001294008116893620156475225771587783333176749860402931370805713134918972886009014119458925779315827135920562064969237295837621281673365918540976384272404346599905136059463851360993063459204270359659805234447068516806119114489414606239794827487567883565955828092559190477348698060684596316762541836889513490085041202019252652607058535827371297856284045379783486614980777152962119350398798353024308193952966349026493487568412474914180936918965755647297597488302204788497148512245276140593553088544426098421449777684861389385632163824145084030881070400465700331596139372628264945171780721264615465776664313268216071879603258878578578815265505710060997653920705742483563737661735999783302651977202807955903524465001011229542077342567453764309196652367281908363981496082637354173045084079212439172977679030638614948041517339233308994571375975079017864193676994162467916143869713155683521365807464660529133026221146708571892624829916769804684380009244928807631521587401727333311709684802137428108623637762848136544577614160706311701765222268565465424553647709536089366200930939785099889176069712132311124617978785781282638406063816995000783978079861873729163997304023273822579428398630810465147817376284587377651858471074873354596586819590764287028260375939699371738622599672245482047130173085813107368082148610313291972412864197382249823538800361616377156073942750017277498231649644662972409363246587040398938416953931853369133225110747219195495511945289070891886499595027790104005160636491483928655395619369379008843109111467097533018354388221942866742755061056226366713130219933184239110250772419959693532660940731778166760244596915918825767424357318433662836911005894788090279149861646954721686611181434005479529973025760982398666818920922925744020311565802405372862019262134401570526558108952952355675493494797753308852741896081144317689911235137169934125562570537026492653422006116850364886032981694471458017883678899981577314854138796611999774342015913877522746763984770135829585215174933055867318831193923272386274994470895257189756364410728890338463027819645812349925638454737008840166805349925830605312331113308545636712032837317739592906135987677594155386525655214079797516746235418053654369529167629433091255635870766396076893823477547425347448876452975224082527029021119350092698070740460778368520657635689189543194668820055869426971953472794867663430023692061077309591626712987893126091685902696125874613980526427334071577706492598666336705781993977473734275148971676464368377988280687842493635231402689082877515988339935657308785754601423532989399107147391789612608535758695882655975122245634102574268031573644881279791181505556913912036718547934094033289542830287944740728938605065788713445622630753878570004171381243452655392659306873464501988631378014355454123796529715074952127045039603485036328041037439768243793241265890774769188552775780155772852956504404951145386827470033939299172759987747366692111752045478177618274195514301205516436622489679790733575290254965720545475374104025849246951748680881159323630321500951879652659220711605945649717950735918409019449525990536685899908922997379253509921916538379095775312129043800471289807810457667230537438858396317741413086140474701823562140981508349201594676960669531084075759679348976022857950016456001381899813822897389711316972444835168602945581809149359608420132835794981713885318263639105202299738555848819602918409827430610568999464367330671748538331963796522700289964360546883537614127781336200615876824957076728851768080914492775976262811458846235154192859333157215099365451967808298915944142508189862225251743671668210518564823819433343058725277860164725548388886778830142543291085489295610247732913011370228856249453607215603808340282515627082338833045958247715290686604632651285608634557250947633729850598115377651397437549748863872039355591107927577471378539571641793928960009836600526149365279978912287332621886865462229925717460585579895376052386468942689769683541637032266134196224910729710684729214795035437203549759021793240939853574861815604242493461831881602254266007119606674949255094714698383730191965594750217392988283351653488785473811217320373159860967563633377206143131398950948217385442030260916248353969353954256191766718178183359365898015861688205813673554542491358267719618728917279771737478883775124819036557047895689826144895055705622007360815952796585203855799047451907232017028969246324792926658179187950562990527064952592251233537809468060771087340092705610501046662975024794108965945453925779148426636802919991363224134848512436006971292496026236005826642564214925665719551035567187520184607255999972706982972908402773899765307773848861823596047578174684631430431722897967940938544644986177917844830897694252868595338992868760415454850359086794749550605543840576962844318918091109575370681433248732377550272591848412278455325966017862697595587793610223372830953356197078715590147293565986142908124750043273080340260199049163389567358198789583982664285864884839468871383810727269513674372449285224707724590807339148025549217777810910520855409898088244884309926820267775155433252157517382491231357705169004044245385716337446170367930892373686004705161730114343614744624693389970264788411508814212508744911342500447763874648736498760610254949405043202548341314030667271133025123024238813778095986405861748967840912855148528638233710983267577636440729182573393485540650926126025692294423277630796842134184983348955284662389709679926442260463690108548758250086464427241058708039260838788164824479657493938896086495085738119661958924802332110803704211151472281025109581013599704355549478216614931673656521788796637914477350635375284623981683918269353566831395304816933904361304350099469895615418253737001188578470801132646575109996688088616913033859626546272241586311082204670745428096858710077306140859008629322755515225421069894993998689076760684081079360671111818684377515401521876293359247952345446877742026578169442363640124698998283081448476514632122186210040449175274736362754095981861757031917971547798884821359489037418352190931187553797474682301072407912197863277030143934526867386873460560081235706630030356225759595417755815433568700597211945291689433544296722526816902949350016981162375017362275660723674851541935329998683268679121512449896210325027919427990808792209382945969693537017949170891294850763999867693797167508669149653742503488246606157168899617469191392751209587801652127207811213363732865780143327798436027369131588018998586191987219988492352841727743818790660553799213393516378308730507006683251446476577031789026260197792484922732053169226298946774036636458411220804478187357325131262052988532177247226701036708052324995842159316285259115905457407260617106742624806353564542062370604168485979284919960754102626620777358690138355440217146463604305001783314937911822720600049113855755756742032406643794608231682343823765919561149648119716136175441912643396132153174437587575080679844163750891920046896997476197835910765040130953556185211014883662697121674032466549518996624190179009409504164252548065150930080037405748246403054403024637030302499181425356053115872495685052852266362999153861786973655054736930377038632930512910717694561828938041117447056890042290501725577060553095767873297237128372633002066289310417614067507549071770390372578379716569177678250337942821466071097973507058649665208263083154197655366571779850022950307596095976013326523228300659751395030488463216890402846332219981172888986034087306466738149190940904789898296163984384516879683683046823400396823252280110745383152990104839629383409777457178160266398514274192806479752001705241717136773421714604875489092553738773825961590514412222469044202678454237689236986382528415114047386799288236624533548631858597524982854242102355565924604540601609120782217149676257236432073810115844810592511126622728412039443224294840017686722673031609201348602402243082171737022620814160985942934770300069921430938240313970666155119055256452306869609548030008841928611622294478134433677212525747065827302477001629249670552774188232016159872972151231468286400485513267764333333752435902923354011887036172010906817557328931477683801917756987239945407649139933907014624655736349423166142945792688749431468347136697282970537002330609653054531192669347506710679002804507043874503309710742161971241056780125895456240342098164698662952991393919557668832487797349591075861343643014772344551761766691220844419015860682688184611329354932320475633596958881004001833522187148819939242598651012506696815282867792189000806325185613818090851625619131250579167888072455438763935315695063080036598383346950329267429762417654375382953316428546971435245458757560597694954248823038560283025889570976652791775824630007805517255137628063366531351240988135305343765701523152526744774616403874471043446797120650338014012655902744866036925216428528364797761902350946029109185210231740949833482203261921616766241799231528378157684407664489198877654184693795734726668697701956515476932688459602626396927136795244398271595053123826955291479093715131736516996432241082101907452151546209738599472490866437679122760723444034933620900303458380655243869149781032154289655754546370650241207638218268520120392465970080091305262441218566061699830511076717656333421616219042325378903864405770209754521748759388005692741095950876649339271769117633594675817283412495697323153986108248083235244686022226330639389495008544511885946821683501750637055428376567824735653807166824642140661568979285488203338418519999781869975684700909331379679444604425081310487418779727972678583251851285762994989323440675541544497696396330656519920349759104400481060330666883109919606878328507807366553781331178161635375883158994080856349009856598713033087535721631618583536422183503447696619405449174077931521442516875248940766418442702658407886794075809779462875797374490577566174956079811830037009057025053102973885099777017146625962281214367000280880531167435610916150611749617690627955618021022553215651184760928223815065658113608130410892671666910849829110525869562810521440441388170483933624526664626572512122272633771449981743895631912468392975887745983203843068753684551570790424761638132238915752275147814928580989515722621357070431541196378729072899952710689900877626807904599094805321768821385855708463737348581885677432024359619681649843561259191510791059956195515988115690048617167893232816735531713204790141829437772204300405267681657119272789150325639340941863883957155240969138235192778589752452447778684785174927604728028680002472262412646977194644299663078890446769040536819103628830658147161673713426964690785120281137207497178150211472863775698135173838199321854723561763120413854176659336171766038347145158161895525058290116028309395456061450088133510763807169610329799357675389933539637871181948026596478205630184527801444544517851485675794682223391343670854533342365753918393695334355756563105790616281280602595859483915308352942430265366386741738929622625416913927726062953542914442447755033087799216046461872883555887676474104639320466228595636432364044242354978309837937530494850326124966076818259722729867268666698611030010710512402757301198405399652709637158213528873609519702523248902864213024219841026928519471792251107213837587892454541719672757379536240702235737035663532254004732996445206040185600878815662904744070945275144717951888184201303258190177643207378584470188178506771385193235593389925165231939852645069083372612608749095208220014322403830347343715256261722684364927447079811740462614442510133563749663307323720810996193995752533616756967731477754003074076968406264301460521324697757548571130765770561562703764613357298304279359676120948761970611179619746238493458969306768183696070512312120353141518213775813073401943793697773195976789589548157857483266663887742791070015881159933653761973861824438220820907540416021709918653484774883360270169852715259711709068858710771826164824239665413597454512964378347770608799698884290361618738699977670946103244937314703308022580728876013436375452709780956973883314750873024292839463514371369612004034838767230415696960701152091615534381899401836525343502821383859180024210877445012171694389054028023903706573677944079617542407091799448959166987586137950403588524370555320224134038713947708679365757333267933439374196454757550331822811791525409827792173068057460941042341504934954239787896356265479618384466581784923394824813703987254278435768597213981567101420187987161126682563940861982700655994935512633791157825960883678044873898678279355780822748571250089723363173642994900163273740067427916630749895093759890393438933128502957396911192597759266256865844676960608466303301858618114641042549299985219898609828902485362231374429784174202209450516320893192656468195846334066479341895788796373631910592591253283633100659399276019088306418655553035273851138013909725119969225459780888535523782726677535217162309156104777685394587596050429053143024103691093192447239577589255439575317776952911792263456319941386306352011923090848627118224944250748547177385080087091188331718464557928349535162469630314702720543943252966136433797499152288347122360594033381680543469257733422073451709877979329358699608211167050549234348335235983033183894300432406787505036560288056429320558158616024429116812222467837431130897537287308151849381698908871855801072494910805452675335197171641495274357616000679098029298746359743896873165895778277781366641949772529189376065990576988659502072410197481637626423721629045829625850878360689025958822764920458298354586139993894851074789652311330753119698555423164795217015633056807840934099404304077051138494385840020351165442165593901414651845958847421459063887425878232892193001498978087494978267506287586725838559108985740712051319866909336305387778092744747738042278003243916320836137485100490705490824880304553499627581928740527589659607396363299719779061324944518717097160339356264851088792086457347886117486468308771907205389552649734473432884099150766444813427694847652400942404526846805983296847548724084742714488612182304289581242354403347740275146739718704487532073846013813291475480512466531249870104875420460145108682960941700602722726781725881254968122688989006870361560520706585977043390447344752826504339095369003910948610132366935159103513314196401190432976338903951568168139165439423459729445900908822641156232687822450434736433588172482171303645672993813453383538907357198602098925670032199248823999752356336764384265025615083575146854870941676031301220512457652838655674543589314382520619297725059206817976525397134965783469051866713219284530607660535636245397388144767201581929841298858089025848061395226510584549320808527156942542550640605255169479939445862163154701012417714234410027395156469986874122183998675201891394474106247067688129025072508466888490022175072324921234996878341667320763049144892811712841093081388415487218235462919000373269551398537844152909392452920827981577128439602424693370043813450665608475845524605696711321616968623748500621514878853405827174745602971618811532830875214698070326645503202368752679434074583965767996101524623795591833608469099538955123879916736895926665131313173935176133981514336818830279772469477968592012578896842130208531938586777512730037007254428130488660250334073449281652462881992474291543196989456521540319867597332928143643598195098212388374904843151616982711763043683416382387913773654867729130062031655572994766747668916019764808877401590277115447699363765515156251973494203821466029239916477551196203096538500000413191437659812849337231405434287212096812958376099866238010308082021732349142583645861082990594957597197371965763228689047157026245994139749533746755243964132090773425822402362988293241215643412098383072503048565782829194626064783426121255912910101898381333393870332770076698408623181318993391931315692110699921893674970970856333476129813837273144737642988213648092540518434092314659913770804639735265335703896185780810196486470213274767103057744768986332596560398530323435876761086143604490313671123494030050203418897728123805465397480606121363326752346200872350033506357038943918525874960546148288164686908069946023338378842438205092536228533082330286182651157838971096055523361432682082212467463749654326799728391781382540561153759003783755362589411728912631543049308014465002845570183225348372540185467628583096342164966149532518742065118178138785780354893606380453008938787431839820258221891614453546728064293504399635544318059906225150438169794575750426567529989305630506566683097553892431931053450925792123216037216637842871481322508545228643433143367877277855830153259541435784079279283089973674839342370045187727709962313389387931855951053318728309617951445852704304817939148923288854298696777438959562945910679057617661905900410792384240715119459265471361127491715037946574533895260412336027150490291475294156556574742695845460639178393736569556620316964504064227467947182440634380435991735566893876194435199984361783346548507744301908536590270231014846953006858630498026110775182039487716873365846383496558564193464866153301183634572356810286644813403976773068797404867456866663920245783306122608467414970123714246909195920727708642209985938785234311408646384624942366858691521704015203979549301416852892404922075451505184969957205888609616817980506608991125188829671908463659953083518524985850495005977460012603935225291489660906157774022014099257337324909953985134947565921830545869278606287074321341617334819785582703835071427031141482228347553625705112798233934710485645746613825178932223638366434474404249975209329699967557161853554594173727028318537403440381544242609133800356703668522636892169344115907784204542165372104115451384321092767676858526252392918352360302839097738108125678227440396523769601688881234709687663166969226105075422031691216353610569627736455537055080852228127130892854788001015097960735453285683461365370651555822399279835086442210965285701961327685871990024191303940443904217975926850258577881496686228030304173376566877017622392853378521998939036447910938019000275330267617849911427170083739059397273092989569869422810084872405086712833566804105437466472798757562483882644198192939133551785361419498044356149145666541684554549377613073988262024260540165351364381892011180335562134823143169126529717063069499279516496092151658827906779056854517974535901792955883412258334595271819849056072645814304612553629743022700618039535519445436264016411372983055937002167682241685424654705041326865714405724341603766239275037767419207417168826589018171231573028271660701524396765436759928297456244027927520206556171104146622032995501068416436888329825676192643122226234072158156040797507627230875885190439040369964653192213274589347812927552343751386721888909660998668261256695808723588070053402727287803835180038077900313635657543601767734537026464937744233197737186612289256588379367735385033375602786119273079799558768325172228956961950620631836130640154627906435859302783008637051587730848988614430348627289191202852967740992227988802159695579361165496010070921217572137381663014992685956253258125334126916330470457573975011436194157626736042282110937459972353208853956673871458441145024662071209621275846223663138347226038887779227252763154726680687552304137730992480811705049169811978323970410256607896777731829202328787577786570906595410189688915889148862140981591698020726868754395133715794444500632394461640686603063359768513859921997175177487155139195591409323180814563569751278535852425931743154338688496984830913989497849215214147207230713940491714868695172894196225575510437036980122920790480944234657684067057656505146855572316945127934129078886452163703884744958105384561254850925389449903137529917680495563300112323891824466726928106071371078278363645907607440082503934652076705171261109531365511490729590327781622217677739638178538144125425749427690400130728474705547318051713745630919263998387613885389685190352163304892893862364948020421325065345393880571532017131790703655167643216357205430293162009562348964763023002401548302438991585428317144205034845195760369761219807078516716341516977156122166767020472369042325527682735544841067912461087692205505074403992353921967032344933183966372309604976375165056054283650281955953141156500536763454180664183476345740793239772053684705608790810378881015244551152055419726925289785410277806111398654092015032975768381289328995004907762046363763729871853667432544924314414897743954260501783568549110827598569801468327992792187895681349836607378138069305807855520640078254613704116315471608106849191029695564677613730949996336238310498091636301822303213428936665319422150214219204512573832605216484515567864715496687468570783203943792367792896025283901977585233353462224699868464631546427695459963213531574289929251620595835837132982873985936079069040055997270354973733946687803061022626960750740419820041073980855478553046771875398059147991517814699255667761849734504692787089578504833999165635334473795649884324150515945125047795607468886189298721005462844285198535524116130177086348581474309012498340460485973343421574876032960912993996536649757937037680669136845656528449984157920496547318254135909710734792450238769630144797148056096231442056240431568180200796336295622623488307180794000120346685101846325065010339372410091127669699807761596185444175978137062096284005208436338841204589583504435425517764631321408724581499464118501967091305508757178067413726420275158320523860621154484001777332937323379050050150737171020395097815700088632629519978738981225448367441308282186893730647380940843876592967451829978099427313923035875813925161920801522908989728332016730128509111121078782806132475560412026414133086301776460241878166299527094440261648155564186847989045524567402996305432245109580066336511607280489966576443971996657539849035505958685587210122205535686482206863245018399199675325723217837394391400035803321031726629865131356769273341751953997297338848146394371108396345637088476049024964631581672743672385319245831811698564314462007489519699933257684992383681759011038006694495172607520511863261385251770059058348871018574459772713580937204715587028893911745110089549082051674426760731664348441938968864019840522200827892700639054314024122832576598171669068226623514000607009940655313113458140942205811248595767334293463613364882171176809316380588040214334120563888926721219611128162458271524737155152662139746566808561158656729000842666074309822320970477287477782633417124019864227819036674791103964375305334485819696220658791076521442231589446639886906993490341840373305405572552482845688602655622999178716071128420048222677592030420604654138912668724564352314826918817617028587784262866954754568350369077185296384193765640874021195436935765095471568508400487763186389252446922616418662850949412224857582343091578789883579664489285595499986382370702941272423797794927824961604115995798878249446801900148946994704835665376882767568377476555805796765456449206479585185901309529625782965666831818318093581397481607102822369779834038816468668990428252755336291535381509453057642211461164414690004949705156729215473645350988895126553366334560467785683751815928236895456096837412918143486179976819772807089980252967089168780385541955218390033098393509781968566880310689806604532078841519006365900189422242422133816690494809934022222670758344180767125405129255671118212810901130199738026999680213612737275368015928369013809259885904976116077548951555075929183488568547547957549977126990889705919221426732562935404344318720849145784102064403142841123677829753290678337218731297159599808292182432604938921890438438208640805664106632825548399011774432169857139669618063676064427425018110827010109756688830853166250188684284468623318873713199132867429977451013988183140806711782858371623815727006027225061398907210977303637212546434914459664449322716361293685288510632137068203520804119883898088384371848394986247650753276105530237731908691666267519964199768255792310897259599419002325116593060825022964215095911667914510619402314138161735824380911709024778110614156577925679418343972507503783886167061635640136476091816020801863741548348851670884853769884986355012837104419478855684500698251406944384558805362636737657357251479572426230313924531654667290936183259743500749516311794577996317034018965039070531642594879638627140481844209049142911248163669765961243135305621860970697270060385307583476541699401927656766234910776163200509829345617723794254955476537000298610166203676671788183959698123609455847092670787694053403069159202788307436652828666849122843820495575242440977154706358058873339070463402248303002279593021419050891798049670454726534471330744970803516013643402196216446102450298097543898037777513458311155129244540962494595309998606010504177743829579476652910462391691921672747650388916742790812356008197546789711106797533381617651912490869998689788923415286032380119800415977771948785946509867122139537841504707724525449482839310573855849495901218815121602960817868698307475068203458827368470530656527047785962976259475085674528304831733637603416341681488484040789038672736635408525548638817784559795757542560520572994041912642199412416596830214823320947085235624348669354291042577643448420218142740331684917883998701929369881466746571448989257305444051152392017005667250558164875569428744172192399129885264306940996065970067606382508462764891400636965229739212132722871648187666229966971450134471229774852368173604449234819010006420096743671500223920240507108522805454095675172607399779470348527493996395648919707763688655382033633126308992316349389554028663592880573963570975603239382607511511478244396885411722924950631390114695118009465823696783676063669588643214720547896768035110534890786887476975012326130185407321648425750868728866033744492656933559795006986191888316556099867649434205535685924386772250453170334833453793365171740050310342690585680691249528613121422314755523232434143583317449748115601498410599251727315036744822196173213121031791124457863313722328504192065066231574117237912702646160691915011985732692117095560538110918474245459358118226332629437638855172819948219662547504469271671355542101295268986770455831196972313471950364071134751752838195451181751877431277068257730439278615179991598803185357323002435636575515021255525769925566115664154407769769608685011561063686543711364040539569457528218428850437483269849103757987206017013221166332532355072418030764749206054467303549921015619864812806835841910129580399232545598092784915632760526079367413468125612581173798411584882188434116551591327436320252308553456207288356804808135283824135391459139863813672628817595114689332782806391619780189272728166447267492201990703081600491022929779246923567564088034252306018789346672404742520220073206006898640182064011803868446987143527214959622283625101796658533291138885807392465360659264870548885948126011674175164822628239229367136988283067215087030426131519900684918987482812065071234977976330745848170338372238633072312334125634928267974622443107444442385688348626321951925651372956269798237183112065635545358876690137010466842474086984476066841113159171993096371037112491827097523793675397961499514091905811232588241977235095016400982656752908195028731877117225393499842045342127023454066769924217560843475799167452318483146109549133254775255930924786107535448669260488528114003260858178926771589137463419618073232556039182312681576128518316577175250543275574093528975341900822875093422625485274035725900215329590082782100444765173804732653579790425409937988655262104731239520557973285623274239929136026366669477960652348851406588434275585571634759324222857397931169954721370350552877836002513066360929015046809745067571315686075562318076419254639766529651310570317367972772597166769950729194009761508356828057859392435683392644355774165384662539961568258349016086222224904970357542920968683311398853414181296556103813564053522735816037484785324029788863716544877134761490404563562297795233756490476482811096045394436090935247385273139297118802620231766154055339285756002536769327775530504939735011651506455986814256153985645413171519897752208567034550400038551240628064734760687146831264111294434742161261090587943948612743372416580181631715270095968205574084999707651174721135015071131168622594910585379010551113502617570509369658000005638964415051900007834836635721789367726909815180126749264425066167354220625395162267699552678103806278592399749186146623949547050322115156946888134245610555917130133514718065876523117412544564601556823538314875016572734150303288848910620566602226884953826403681746285183840429489349732105765595881008139286351187905026610379597123890656732303364113971576569379991871037715756811581230131267985729254903621652005657155360399132269577295411704152358942271872336506046698468455682150156528198092817449707742352568208791856401941642258276086525349234243466607174506996914202010307799426294753619425854501276359761082127854854344926314867332357293162510163731233173584701959723893857056780269946904470512187945724291444990274697610933790178132459733006792802818619654451065915539681138990558884004680492593419571702416360532282992871193996867267807201805025751553568053941240308386372642183522374250091374313116538927303024303775895014174249209575086811892169275139806774065319919653606364742785247573052164695484352283132175035374476696997301348413214494197311056287976169123404730079764166583622652179500565422214166049877168633345676507780805510648672756642824193689767616653179220437400943965362175774915128398160019499631913239438556881458372633560745290452432114910495853113602254690582508136852048667946045351483942865338260883794846683835834495092772626075065963800973959589929344330422905445189405719614878190688208057521413903051957813279277895359092210725984802635001702012340338153925417981342931607782581474516492828020688473290053508355507204185220771220102134047830861246146041151305020462219628448175700289866752014216361445232515332347439190621203691266898073027769399862774641303107689911945045755909238826225941153428092780624892176395799465718337324225257033846990040448545883697089125831513902816656954343681513613547755234689030675108230584401138230379076947763593610259059588436595340397876429333235370633606210132213935846817651544183071413748104124512183442733237701844220946880945655980902232355471569257367380713524398903252902487867933360764523577005134107706829837665004930227864593737644829014902100138453980851656069742823861894825472781546497310693426229863255619518283431144661991428477492512199040014753296122300522838275255517611760030096349359855325399992652180374174527044043118852382904708161579388104798813100484841295804186791886279684766610127909758026946975095303774635697552184076470527177083241970630963573011387361238514430168464164451660353834759008372716808697694810708876100952268895443943015541992641605688522939148420453071508947393564496639296094495737112011801806294141385298907932126918760176005581768394364725139575005169994061199174709195439735617692693145433092033152285418557452026356976894452612519269289020690433593037383493964449264751886170321965320222527975644160773894206870891887976412592984405636758508959323814426264510544471261103516071924733306473301168663837984336495363299355845054291970807236955881531746340762182591083947376654829019613325183544276810893351965749402217295585615866121273835907236051971222737148292432932789194115489351689653803044476862940262164500877450213332668436922205574643672967854422575197943867877552873357391218874352307467888420130838293616974425335574258406733420803637885992941072279843326784222967462485887432276601729166375024264501457415343048306326448450314809310165300879736300195465114560119905795035935524973823478122349250960711455990711598413763196659350646454271669814420153707567426742184934069524754731273405944160514389557122333057965445265903511828809837920260527959400058435356788125158356298346336400429898073037102772008127402898607797106367713371999581174804598591542718667083000791544653792301125996300576139839626519812927779163660722027550539333720816078355992409210157743315414930793482014009452922627494508503923629981786219750174000799273578767167238596721859571141232073170599966443993939700027121939530792572939436113337582364170805755705607648046448521565329445505500393092697725304759503299086971357381926329517885487477668491669415962747739535927224452079816073646097679842415690177300298278066957591816583917664612744870573059759774923228482936188853062886568672497252861887215582608889957542309893932735598191158210505038758529939562827061934858399822386077125089148366099668998279371380613761017400997574223577031304278680617583261890299564100234440849893095236600206551111846107181574362187715495060903209470341973230124011038466677669611240539275220109475239433562333792400891868014663903587934230719077030394348926516516601845584309126391391546907979816572971157026149164637744513744047062361111377964304743291064660902243062611728482565464001570239368743944899118796385637654129628748244923215745665510277601717440710253649774043489254623073922044974657674230576561547101375273269768045585347305674616977619167914318999613245724203650997688626152606725029105392830615571341675414245264961110165706221115289021862966050909226779885564408795165049334641835271032758156887121747886852010413775016228487995472672600139812349961951964588290185669879856190064110578200619632324172436120378235537374170053886848875433452768911798858355605360190040388073730664399297623277602812548678433905222614095671412949750424597281763073392237760724055205878614716776191373841852728054606101522688306878164724403049450161859600494913030639956946011859624505306316861760051783268942420796016281725889536012134844126659790754260826638462898622331785801225069214521027966759839821349467758897031659971828113313886707508081424221572785671918811452573523885497773152931993837593133258523839264911145776618484509124400233849493902396124584863341246065584544343928514740270620853435473102343993715160741531026602646870237389567981835708406558775930757958476589337374057365640064635347959716772485354165178804815741738508747667417933083032906134652852902768637753249213456931706378374198698002896047991989924934695640269350315283180265480094090802869569311974790003753417031234139267389505640333250261503483311164168768961641785651438535013983923435040860549249955500125111701882148356836386467940197553704885351978148968691551620747158001388302378956728672954145118563081119967456932714994481548490360718811234073163509808556366537737359077179472580572417915424012916124009431461603720309944707947387906116747488886688668463612764205574838809891961409669488398636774797699335644139948755642474134034271026860603620695114152430792797049031444783193745889271597729232012947738488919121100002184884229666769184317629850388477459286504245988367834267521601542604260886023730805282116614432377909827913582246059488991713846984460098805219427480792960259020854942651453138611269385259706545011306689977758447267170742043738541063892979427084972593886263145478170916133388775712700762586722465313219374184150910513524137056579706143351006014522067890526860768932397835701040577178718153171570824312126290067658573888004320615673712152212790868830210051588300743969030037858346411194268546987227868529270317211835561724979614368904577802277322921152407076994567879620676799008082904115897436407496190702143607584244040814601103634027576925996668654363249040375946338665072940477157799629671025934699668967041378224696485285922685490634724240226787729722268083406256297910086244665344334067833693149797631538276106561264431110741491967189701651584571590503504606202941473338716825096805393403026756137411010483217206016257839953105527166298663177316093580040803837104187132056319701206861997062616880722944505483278446049834397363462445251551700236191947068886805821428272558976507615160764527710210750399849742737881557475440728995556861624712521031812990252337952360882208175093722436761602227725244187491649872604411997800558161265962960845218302817156647865187989572870094443339911860152806140129480900356679427375847153754580836652322779055478341960222904121533022123012221400402151319076969019092489148992194517732494679304182155452667011393223562793773076592506322350904106982114407702198513905711117940236049429395864996663884407077969303927272054904356384311411549738845859690654256263505839562804725877719049676000432614856778780661836794156943612379061359079790773296133508125593507031378650838623813414945158197910809890519345304928723087017733306820604392858003903529550166326494160832725895359169220972945777602227875147365568999988922535568385447799081676736045354004601970681976974690289192880044020187092719213035199950201368696904059486331496451522441566756760607451307251732284815098142551761954846116338370588116491683291105559935108358366073804397142783909998005246300578991633362949456813981561694069028799799316655373165210694858735625540585549147462913737779499423661973360062849730135466723627277403716102373741580736123112787801692175234834914069144564264782621422962343695903666103425176698122488709500180825845490050739766515707186266252620165301310801877819018533411615429394713465002660328341169207351057591479190071181441413004553532356266491283603712992526045781542410687546214810579832330568881417690647608759207092336994912748699312714083490642809915091709334664881291889551498560333433189004160884626593138078635129188917520305488353658931856788534924239978079435823601562224523274271359588171117720465483794043111197950948941389656763943022705752667038779414174787923953297662128082309517144925837807981213247597588673155359167856529296392138601104807948170959303513236069339824776904549295021630353651523942677696692534530679382214902352484221963377814521232679498214772382085705161126675459264970470540952415214485051683344219677722048386389748829453016441016362853821324585217205571482482954723974979313479721807149074520983918854104593308609990499113284750080223834407489479310335980401954132973571227608023863844627760593641195599507668021490125150401998301260997309311905223921140818618600089080245504278649772341030331889522326521515027346218466032004932163140143344268492989181091252052927291610951836887090403677219244933872339426946325439367384833760514921701187169110682688473159013112718699215666978882814763067131995648650809694620747716474946541118504115380501294493612487287490956184628922781961270544723498247293479627648955037091744277515524359830500880697263634517093954133268897177995705955572816466679393702978085673445473647649172483959763665921869614809369061292482267339917401472024491142029363805907448155234578977771046432979767172004430279314331899270279144821955873840978840517120417831556675040437814000673889424512070534600878136802202714193523565599832247458613783207110782569855441595941402088663118012305828457043484914818844798051139678041277275879661206086805290454221272958799089810627845724122309539976691331632693725928695113203700773981882330910114954751133469966559662283256102919135425515080710534362278282413907893505946785082163302761521989104156872710515697944285766605517722119101638867807844442499636691066485099330278096929200230670416955600439700031542898022466365164834464801251085223927993416883054351417861105722317605846680233750770398326499462575520184313053226253739720191323632984017815144008938220772854590907146460843175571778952457496969967070864031927158945568686696193940082310397248676764153235797682076199405325694254450958297716495619236729852563040868904054259974692476833372099364405146502494516851793620682859130245345598941893378984951137596437309205574611635042016968391905772806107994916409070892306494425548815247948096302743743102264810409343059848848744904565441527563252764008273915600395376308165944234844942066916672953250978353417274754924907008186749525193809346297313096223278820685511949116710357949478134160542206703206892785023008462661762992507480404194665222615576729518047116700270143724505584777191992988093786199549989206761384061361579024978249340854652046389848699203074524597386021081207467184921065702250443081458408221601606717372290103783306189033174365294862938406756567422361498090856550184668054874577815772337324303660784327409151377556540636969755262511945799321001507926966792305378714629864382194946716627615074632785488696406202648735879448477123913238480147617316111361728876694590355148263972867232733702280335710155860578157433690966806860496333317956063774549877603603390931337702072617869344441903364692636359874476207268246731465761371795439307221424648214085576844546121355568122631901697720578254671173074139738081042564630260649439547563638709474828657884046750867200288998342432532131246808598634197126043866397794532876718896611721413165015778458412056663649724130653157580229023987705051743699821937082873948867972473439587960877774873863671317111825030300785549118650125146344462612622000704875385449906337262845796063275850729255308166340447135757038985190606454630737052262920942478005499863735628618110136459699400341471684996223067525229664791209466771716763527549110322711798584701904239785924506512573068563995795794707977650911285298073289529183736533369101284874913772288961902367401122616293318905223193532399762210577998113225136264951985220946400734570819680293799919013410355501739347890540232295453415649302513072262013342132762975372532717595389184580331914990499954302022531610002807729172069747963479287175744445378408840613856427105776258728752213695762137051319686206937780550901268242154565360908085793631715265116966554790700896089601826058016924041363482325083962244426087614137950291628527154969075818177224858656017097748118414796384100608604983093726836480769231343316519359543117233967869891987012801323728556484777640491857078253925782220432889151747529567682377900929036938752063714620478759081668479778757341911428500785152406719735377045488162151394125154365263721801008857737058568487046185281276463369005646759456013186357465805360233505761389089555505537542844342643173786358799700546596946116900601454370777454646619409734179104083696543437014540319630490719388389371761943585393434891948439198865817249320677052569735551876380306320084818230633033759217489749998879432065703534480011182539481206106208533479330154600089724875612467857451721337386147693788542433998267239747418387418325283712766852395213703602109850950469766700408710161514827282040514023226824924841333413980442953065155910401643653688321206468711043232224635680885541721915966517816934758288386083210293952582124101919912540408940664239799713237594883378492487425776462522356303443674805200876402654521793445089631059648746376669207313664896844269460691159015866294165944674806852556225041932994258570675484854598298598841334118540117227071063925490035943151234609002399890920328966063064552732194946574620886132858129456123778539185200454644252419365080883905223084007712780056771434234787415428291566263503566500641711027016799165574274280615887991670150819028280819095852101866102618730686790782046481730289708335807330333126162308804330966749810531133271628877972017216312239530938293603790937963402624374625916396471824657793147448001423197377965782867929652622987996920808754571770515076782701476466486606466380837243439177937970035120602519278073195864190855452426726808675565866453653611520282871138231056440028591007529519590860640549452491483552038499188047815275436612329668118681545003651263912407005408365567811167335141088011301584139936794727246367997273306951741323682016432609603021080785747902131275573333120147033004972216095882602044055213556264105732571486003998741766754467705590603003544742551659123949096330425237455502489652269460377250103895178968087673615129706421683966399558215951964389053321626848090645793536568234138265853740871535777551036372043480646645046781190818599661799126064339494277378907788413272575326316585066835780057904245528007512454521232187534513919313450197162693257085235263162853530323545541334370558184023256122804888391844463816334255266223789594957753749785350256609553697150141237613861430726163899524571351144556954480049795279587580253600219611702509779705914784888003073504310496367574145427131953335315475176848091279287883994970363892132225419269070165305464343279775889510342653902616421074534603713010389591080152865041147336909120889277007784367679773662090632534269351058637966453658936182056114225501471531990337093346687738944065718951080942977874862462694496464245400448021742949803750706221335846541607582747206848274451553105150615045059059374476294509723370003236545884170561159957566796177012018050892607327503598791678088643153032748424873443400819906405703362425017929973136993180401759169617228952767655709215459775211719257621497199144281123969599452709518563824532182257108066842743750282154186317071596052057422619013644053625804367371194870537583228000184639065724627271180216760440447338901430369815157725849500435782492347368772886272226049910953543370868745993533899692804240043553769686601540495420754715144186133347518618191007103325006881448799043510002719840976948105294760009060494479799118351392969073291462342590962118455181432623629206266829816242936050248975348506146611921724994803958243827682095381857342166437174480688126283844447193968763323292652375185975344979664970772513728702373385957234333795150223713616390482162910646399480247565308435820479137576158551822384206133781997104768387956309202297255615581467946678925829246559829458698746566258523236219126115945130039257563567827156608837902590956163826293912396572087655014275028526496576783736405494191465462069025212653855639023237721489846610245760095411395126869416354029038800707574467444946846031682560998673045355956326081118678962493441467818285720260753540524940706166066091086591443622750838653747574522559059777623963558488534440273066908189239532789614320233370645750323709978188577931475662951799642874096680302010047125574361311713010469212131481328705550079743924353324238191439177865307173249368290521516408294539136631367280513360366489358870047756028980656554400852562650605867527495838143539884326954646863361025238183845167587069947335513868540979163451136776351569677215536793568531336546331453666927991553132144793173297129067809904311440839194202050258515819025120411166087780563621255502032623729319106696612229470889775884286813040645524903739731568088163047943745555976581862922058760801539304036662492641481034365124796340248731484008111548192982424658507026447514675543686924112086269033050083554936539383584305071749094167760672739711635491236152131124868284965892362627271097301771208450687410364390401369698972857303946839337659820662381269313564206789332466622502422219468370323147557660041584224952708813333380058570536181061589495144528056776102213796930001308645899080925901259471125484700368064265247238437586383453251734520350674529647871593500310186054750782289334611436163495951219609813623107753177464625962845657904592543690077836273129821278166218106313215479765617288058551984932082334913432555495442926626586765000954052831155141115828930573195722389898266927507817354610888708473261067402982458507979588411509308598991612496657054808937638973084664287271461835358714545354136404396719847774088350850949238477230177168856040104038882278705172474274835647591854322347745224563787717611609359601291928760626043220794242131899844691805387230430792828859774880060529950643097881748748471065112260566952350648549874788193055727224422467677509338297680107618916947846845528485689222560696138654189161454827646930641169304361601290507605393909972769604060052259489968050412331374025677545182596569651707959295267686361440914465650893839216149937199677383272283252127294151689894062524597097417163894371057941136884622595516031347212930536200115972575457531260182121186089908097387884625979625863185473961207709099855790286303837248005175545171992183517822205657027288125446098502735279609068747059275588663269214551953926834162596439801305826872950231983808331606939689961511656108485789932167029909516578458272147875927943514300579439090499319460322986599328925826528503982014340758824122512625664012221636096919261608392754896469709507430453191301277883561091950623690352995282823879737056686967844978376484775237389133076037188623014518391341657577931701474072735223492744536424714800394944752103906930245299529990747147848359639999116441484342677863391685995022821693631055967825267508653185752091995830315540324467459292761822333864968940019943670142246504689515280829710041757410998400842742309020582464944233185969013127066090293078350824188805631414778528020298523955725157447867007460069697078470949412218634642791935839371774070875171501500341933223099144717641150977540017152287372081559920912364849578830340589793958547070319089254755448832645512133816683135037469955748558272361597321747358530875818963460232049274630884553382821393045003263152095689970313527315300636889936288086029310800665653314730024530470994452460991875119282157321575480546882658622543291889733525538893455327126740723936920906550656690717382272146062496344321993650999068586867290484863171415223542661428285266790076495899940482873663912965282832809043744930018775307192931731658565288877679830385694043589472467068308968453365739425178058984760952964037935827864378265942493902810387203925558571344422981628490619764325978621133836132863698087262001784719286354206946291819229319574895876615979578591315924592672389621204381747859938573108598557762562751560053159169140549698705189423660921912621084766470469281471174439730768515322166316528804956624556798015066302061368916031305513583082018283250371456979356333729975690003570357871792873509623185646888137153002720654651636792135690873358950926003311001138741078105900484816269506577385218736235736554944263470652919384531828654099548876658462176232341725445555177275028195630047312822626702646505054027680600943834196384243101980670938827665925147516660883658486459854028743538884931215989259578328876546915561173549492223477157253152844522254669011152364801989504985623018343819111158601988978710670510848248618868652779317660194645327358650834652184386865363420649306392570965052349402966666274226436310690623409829789465073715820140887366189090392121912137775655617065814175293725759529604318509299427109671133897877857741710738146491377759406408542346067746985361049942046451911796383315178819921176234065152134965562017095039386725575648122620865338811495181226226975476605688546249122445256328119069400611553924886488238011442145214575290151026448285337519795991523050187518934241146619681313184254682836600135744892467187593298946479652243150626868006513271144549644741140542033224073110805591946434623465634718388212149637174860007301334542497250562983990892268595474457816867369373950413347411312475554081687871273024408708125512514009562184735580828354773701888805814104722356974206803442973123230076936340526501733728669880177833332138416104472621588356244586632109062057013950485047599737818649846710952093098140575454571436077148198639580258420999990855989011834591726107395829458814202010619323161743669261515822372905670554917555653731566958884925398844831075733007326321583525965488945283996989163561782120457441397421202439784472287908326164414013541505560976172519575518685559552792274124028470733275869455008342795874550833025912961436093322850981406767625634166300149597863098276507496874365968081876959566180615847803865376434720984942161243072797376514586009323095499490220641766158134613957839372898852355984153915473381579833510756460423266051963032721409323753790583148457254924154548308027214238882830690017592523490042055420811318458641113813128399277150388594743160760833983862377418020748882367012108766560132345189446642544137429753005937414961074000576700108099199648846371325944833692942428623540460333894398776544899728015283224236021395934310573566369259761110019099859758723486594819370308494234108049800128672023807564710463878432922024262214590911462760238373610367727652572058792898451529287236600020819765154823672915284057515910847027928039191034183969348801434296022967087754892486567806205244268708421721068469252879046593808284565082389149189403961279661261442222639550429545145006202085529471391383844136659413527813521887168964237632780823674968741369524715746389249695540647557575259883552148518893839102799394810733817659796377233427944933845047971617845497955298155091722343993488519345885573161682322844233661476218897192346964235348041094070494591300858059216885961560330554696652676566551379602329993496467256683658029127052917425383775002309290043265213957850334111867773907947749587388670927848717770975915464433799780350671705833297564134675209230746242933549370704048849573088738528483271446984093084663370668084335488087548373154803527373277366555149815049258371305709874208872015227618475739572704977531148593317425636356453210516772340608756089289528237436130213357866268063501888179927200669607922081934775617917171119733792528804880829378354793594991653757893754338911930534483266481791981735383962503082492772186608826575721081518496628585955107859245706113125521974245882220221297334412526122912158191147655830119840664357129390787514192684022237738372757044145832900485271543778285826150665635810615782227877484040233293791318884076852653372296264917398537458143311946827030848017324974373355945691575489687217440163277435909704795275758407596399129298311909482647527753434287137714392488623801317289091239402040416700482408463927339015694060290989568477357455043928431121499685912865522509853686498795349422157216270196707714661515127682087102420459434704531653949852402810413735822898000737370592152927502823500104786269246060204357685125565513366222498242733279166989312717242105450739317004490005166722641013757700113749445230220638678038441212630786806705188604753339029387543959244801637936959066454022046910143243241004057903513156278387193648516060424338493573007409430117591510271245689141309681597567936061144684305817674513423608815915818093770504370630406915076981801558836992257162247556770549018059367417430741906276142687194806201125546152545642952131349700980113328666845682410091736601593610203965168190635087723199050550988178315903400358367762577215859862395331877271199042375905913214137750987465106273303321076083418879537163050642053355720841148985455923150928168726521144734422538049854600639373929323804777462344982842876384027843830650967981215146284406105012048020629564769680768594304583358547609899953190595174281667447353034975367007199778368789929440370417745233815840713511533358490194328699527299018622353327507935936448816292583906889789255071216366224396656651271210248195341510647814864159815703846870799073425796892511660313924666289967286540442609595766278392126020946474694418644638552397410315973910003602092381120678856582053501924799166273373360210437433377755686515747346844569278583135323929101053258355207503886584875070585610998580590475954619084907168130066745372639743269764948831637338922132726978188984055045660173762075885597737399100443767775795029598648139507784955371734474924948323373664041270763657475244506943675623369648066377826166123855205745957189806908531125235227041455924135329225608277024720798802160807354333633024712430878598790427951926788658225597339350309181437756880911938135198572546735586362304293135295764375771617320144126234980566182341636198513968810038062857281883461662481362506936190375235524777786419459994571458016828866311020935029651578359690476052345057520922488689372193518621564077146485923645720271323134363656510440068222545569362083477616372479342972957343577856728191023856866626613306147426210853882610170615352167008961809196610104404954997314791963412112561724810920663530760914953214351101844171720619018500572701838732463764757996697742767025853694484644074811234211203764243789563755236893582932255435937852111397152390520319537547638109651749005170863182849258612239067366850133783066544062470505706648951421205965042572439956925429374992059467881060421691257477756340344329479717228503627879158949080370354193057651561211956177500913657604784296414474567920204495015289800845221598555583643701275683899064860660184109245299454906966697798947938354491951108887391959430078256545725131321229490594083374808353054298999345284704939634448502326344873361626689277442353274383692245019116220500766357776431462852764672715749909127093074744952922661878499370273119995215759121794671267773257816353321082817722753438099352011768233206598096752557114776374026997183620303800395851056443376387785254176959949025939791295192945257869918668804267314798739354771367259972087365119312585117715673422144438412660419375992433276713406768711713555836151417200118718728670829129888230169958475552125489346163275658758668199453294518991631814721474058273807072125780073047110269446885784308928357288723312346245969518240104433373018926806923384888750815186054635171190393097579714406418838429067269687173047672807530458385094816907877909985921844401111867504678858180005951270585747508361503921092370943876884406141584413298603070377694078310251715209936993786302197757522724677609507465893912529204013526349449934396125616567983927065453685609602644497359123063616450595764573298645256228062141358938236010317606225461869210572369644731798069326469594837122163565621578966403191128699366726334176898862207331413867567377241399400014877347791660514034905674333537824838008634736215973548801706490230199049476571903274396431857796939192636483163166071357255536351472085102096453456457579037851479665622891917253893321958875298468280487623775703201444354095998600741839216163765674203766155397473538278854545872902976939946427105920741269672770897674285786966424188289223492592851524010036717874483905888509445242995500237496665266038460283734119933588555058352862028238674868747068617351922843065160082371035649616653381397322974715814726076850486956767382957917657763057708566359454188011858323169065026739290919023593561403455603403167224409285023839381637234446973712387816704320214022739049335425333042797968496888948798586613662506371629740891885386788882712909544469183509985327267677645115422153667230795241890529171033071065209639633993840758452917976591766828579317476477658519725439478008591266450838781244605637972532590642599275249457534218845743660578516823048109299852886356995337183232135214420615583734575386849596052190479141674692885435355643994924097495927606049459413506832488546959598030707743463828176794685986740003875900292238437933418370654218070436804233260406326544705624761567864706286159215689839204559916079294560914573749597283701132711142460434420473138352410829951116316167225885233331514077701265958918589638161610960165710296202095026224968913056101643336224127271034141753253695422724878868117472774693050929456496020061971132934373624591508676893044167660928818229067239644921575466153306051276894771118084253921959669321401874406707870193324404303391043732646888009185374376967883153387163362678475538057642399649044107939843889203518251116905837620090864407918109320565940823411324256048071707249686493560597600787728045415357392225414673480287495175415525771197777191825271661180046550747301939361588016601116436225729782196080722934604606656195366855478723017516300325689949877066280841779072050324350745793419747750012989097918821141430213619911239862117153061945500262296494764449146155223345143623329473590837805083930891004503713929546959604889741766296409875014791180617289233931154259723531271966613917586973909773248309513424114742400943388239371613015167461532274343692090054076524061083857180738672928397952609457952037186022612183892828683945808552322772707258833640019972184332802685663526304472173251801390493034815165784160439458942338192953434020912217155822097452879713500838616987383512651193855606798359129809531993378986861680655561947886229771846086907972054920432630251864647078507030660473183720477361791560724891573751632307705239774265519298473928250350823543305931483206603889694200694443058677401885966638282291145108874714020289041891497807728399552048455388398425515073698846262224811779687404579842857357743387321655270190080883618993354845905558815153000485950948876512176396813586726200882188348387226179248648465861730338122987793480746598461621188571051168903468538805322174578336681093974938101359191057634631181264337196161652317856683506966454732390360238350577653759474581144994776266941623323789971941662034712784967343812845272530390363055924516732994535210161596482805627442405300185785038968717268245878993043614669304944763765665609005117378671774694445764316419553504007805781666548095804765671847609249238345700404691902627243711850964413849151690715127475312562582872397184921253786149810390633139133758863273940524866264358640615462548285054563261543932717893316703079992614629646987671621563505630032466486769440395532416850571861038558255752381483222775882860153103453892601445456510763132847858336927419074155403135669071986723674571731971794004858485664689949596570359807636378414705690253965801531400410808358261461245855390858933441385885132773450892298272304266496747247365703776428012878020811521754075353367199754178129956770619080957853653145946079436074208563752401914598709950949626615142925449060272103605954296201128017833623422473624145092857157329742921769947593854136474726791226121313073560596093288837967112817049560763160305315644724712567119141572859297530743728847252949881547168344980142856937307320447444997020729316406083386235215549417342390525445618232252481643747919409449061498815125406845426672494256504615019523164841235859564612900271274295722940076107141814692133262122551220174377436419520544064598876924779668757880734325877820059357142831710525891626531740656656307210856529513833083432399680051987128822087337403397062570126317330158855481455264920022945416185372884018427728837227548945573966796171436564832824147868899707385102392442249667017295247269049535170713892642927511048394476373151182192925993360281935354692591413237021759658673037264483103489585127962568366724823146019781555062270351784274175273505018782969836821514846596585740564514414121520611103581934769337986243080387643165365264940117094834504573175309051238150244796873928956680816143981992742114404243147699879669767743356205564937471469864070519798320412335082331004782750926932115555721799436335481138410730624469068838766301242308694535466955947977753714948533578507421222410284930322182925524280825732064220226623269085691216393363458710831937143695374779593592586538557734903801305471857537999107838976768739866843167919685261877943733640507182634728745366212957282237806837277301814226671875500805494847457917905375147057092045851167429283042499789564263791407417119407284717529631636269573244767718371449911104124805247421813962247385000165713080425526432168172086691935547681953945908943319666392079648520830740277479762054238861207441194938919814202043914241592499625841330832437833559683658420380208884947597321236512782092035684782304402747297952699014749283260951297051848028805753001046641282789073486548123195514918938717156823123350455254511790932968727107061127657868853861314460173921228848006948580762077302638194390427850127429805617008594196183194337528467441283050729590956272715089215307661735428486770428383000676307625303365590115069615610060479413445266524719384897157574088997366511819910330222163303975553631691296341786347833808797377534747901513111985376474304790998547883024437162099018915145850117559582373412136952423660836106226584719319838405281798342579092346847923195233697634761041705681180835815302774154532081612073068244022558101120021449928036545014687268308933451456203703573603126409619005465205076305458798974730549002912048918347037198389299816522218772540534363750365744457838235028388394046483480818275123203292347269665356050068681654611482542272190423329772799007418515858368962942735456088320748755134425061333604466024974098242944670677404562868617733555609980498966195239953196228638788171138742172570642708730419307582469533953067930993384177442089065372226807393604441832975244545807500148943566254953583381712714340909204817890095563209488532470691788827092365324713446849072189344672047599671251042075788084019079915447114808114391576189799774934392793924899358181170270995380914239999458445938654870271625099001798544150143954998419132432285980291738375711473775554124044373831938617282510718252234253251604489659894903805860197527459426460630419737742646081673392192179294091722018995103785862066400964839251592873139822302755387008354989022405268765309439091488112783736304787277768708157860907803686915409436944912242833049144999264224763209862811427572351140965743521272521375799338715251376141103292515818151619689998613023813195024242276570862176281592757376037211223041935286454347525562333303083999086394596827265994601037288825099388251913620013534235833033968085065297963130555664673742983284408603421984057819910226575629847120080983727897198094811714937683578948649505131204700970165801691596031200927999962307657954510809345558628303608851262403990385029088916030472707653200337855425576129521050669445157545855238742753650151640489532857841181740036308890586611724383923871348485721723646179393463483262189989387030292052928480368317976169719726521535371554654842228005199102653603347296874399492094995874879366356645534675190403806680327096025017027094622150444637791605861660886302969968857781347960352780837426018343158616512530085112505934421062060398610716136219753377036184936381241403817498057755866139680852018510691419797740674425456111085019207289552260933374102432202336672578668918348299208185388370919197685167075616991092126777477750993013106601981565000191513035371421636933421206975794253823248148349307706640580375346833830334721998268423585313181288836532855207095327593930409562461748808124699039574894136902741322354966196958834707815302694858047461712685780291508890995036831713488477298545250342891661019807411651654681145602764373707771975037157571898802471117167196744831764172674648389356043458704424764462706393201665345147216151891530616429088597356714176483520306994618506545231928878083521374428735368196858939121734460719842686895011986643262231174086350021094444866350376474140544950876290830670334534928086522747550748636601569371270257974170842443877816403914745218155514091580942762306111024048242188126699739664544471227185873412166017025388118927562441068397667333232953961054975538236403851471134877712949009152861952907046225382392257893077943531608339737783144781118798056137328679710598030881309687573222698343828381547139303669608798991273064000321213187901871496926212897723176415003074033666431176247875874663205088775859479842574854792918339296405508150365211528561730484823186420496823423277061644773904676725545755276126132330088186108730460464945103729521974612178068573130722505113843207853791909502439445487134239021477157089674329301788338865740951227894183732924231692671235319055844023603152776581634659914708156129244674251664279573269475964200967584433980297621051535757641904730527797095091294772674010932606990388279062190337388718104192593119094400586727445844170420810109598081595413288751329234270399198591920625237280631092065001398660146828375187993134988090829563305967225242970641535370629569009879574027243719728803525219711934794569033600264538408784272785336273309874686305109494744142822715903532550016651571433403333360420159331776591927264987080600087562452823308656980056341684434633236173958433644951161549390847558828931655571996280545409982031082279821849544767390793579687464271238425764286470164751806545360917671258618986616804473192389684320167726000954287290171782774632460962412479385769217258605200225700453243904723242472697867536138735463740187831746688025509045985767223190182768523861981382589275588264797528653153018143914501302502750335562629055934225223836333199399387155126065312478675674826713961525182572827123226632444432058725202557695331128187465820233222963110708489887836984135851178225299283176996656981534660423861125604878052853669498877310471788052338908119884998912800838861625950708002775450914703109436061522715320621316802219902639312767698800003393479610881837117521424453166063731718187293313214918442681262273831072674218930901540907545908088271567999073992000170013793839189643504014551437295183598555622482894013719805828051689677657263489981963271345980493763336767631126744321999930036707964406968227627229935002301236980136438630754112004801668510074071669347233449482654762707722833938577912970901270225089453657571320709916452912925830224444152391564553609023440027227029649169780575598040305403342922533742823075339939874607523345367760443782240747060982244837208533609779045128822526625092041176082240970601020872976847731809200323930001373233330566151236160411754761041625635031126103757299494672447886981085573934268174714036148839334588144380212269639673649018097045797629425904804934537188113623936335985537843371076953624377671121525772058454182539240089505511659480169847313441418777729141149524641041931588371219474218958000923813646811274083256868163173860117077173377293664776412773646714890355181589459083741834782308083861259764387133829314440310224445437003136539473228456092604739889501219386765825250446690624758147234384707667601433396745023295494549408477948999903950690711777879042605448693709520141718840891661644374182194858773133510926936419502968088571338118939880893562570040751439644318720693287360380556098199512149042454855983585763874759617489936416015723388123597462404633909256901077120846749534369860282686661622479617022355740630988942694469771067424318862922705292582586177179651745386334210552513318192453182675383097511322931874885322669352044760980430299683259580251748422681070030668916728656743659644673740158070231042719233057419297913787225875843174612708922574832822977033235757805543178123394816433900128084065538135438059462999601205892117254265705698674140831804537376709473309101844926282085136515645890894887677240400362337871432062555793387257066637679839418057345189724291921609107682547460255182361936325635925178975049173312306334884675623301335226227162584523853868298880528748656765342000326907353306925631993538329496195868815438173303883441324342779227757930171971463819896886469187699007364504026618163004428109947662553575144449337257331481173798882763234477974827000823379978086537603610188636909870565821878947380951791699495831996390065441419428588796019033920876619467584035111851216203115982981981734895854434301785524724756015189491195360467387034612700761110006182819526009581528059307433767591501180054781680049042343293233657838891175909527020485689333587465125245509782394787345140527142688460700071840107189338948043946212294334653549574012316453562089083632700846548498366521150498578711998907073361845965770828836334513681053742350686707835709944198287174197423439410112043113107753778351951162680992966656762613740730239460821684519345185277091063676355956233077540133204634148841595845552587365579176968668169074113130714692789086533517242559324832943696027544747814686366522220412025441515348160458535492293115163610005701899203857957712115308234072053214633468388053445116695019478691452372395869275349363940147427451187463887271001945564537408528794560740307968034066630904626854233896193712589347716086503280130452029013987023691953346365707612066421339479627726944642319111145314195134360545061094994894453058777817689260506309746706374713851995619450214629552883307768348447891876935891938234518232768019561702907876858654772269543234142156103569250606892120940616341005756866500312470025018123256331333072603134611269298122377089717310115651743589976793115681842006125525821284905734014939720713657044019766743185550243196457580631679777370271506277501891534803769854753545674304408446067491407729832442566356214402240414736275632225768797813876961266489996444280856947988451849884124241052626257491187644573312972552673055057893620615930958582524048305607569974705464689523407681137851722347834626353655497197802148379185424074712006882419667797774275561418648811452218289294686082382553160498430576785712067146984039521407815213228325220330178993286309570438551312528528206636389968232748195335316869650006556396483602575384231703189770168913963269224794503988156055128286194752399549704656144504660726011904654189433994106174729462103677600523207326644655343868370849737748217064934409508341212635968875676610786368378573335266474628672578009741492640553435617300783775900024133145920802432275209059657723551912481999583574970923241071673985868419687149750021115111507066373306828882307479156470761680220958441925935560041965516397974461961380030808083001984968923195911611001058717007946075696982644366109651142055197528846664056113235354887838077642148365701257024901651682445245191965476264866442321725269488526788299159931567923601600201804720814958823997565235253335227943631044795695068476260760599770938569451465039568329066725839989856560454150922790646533370760299537071539037462074734568531422903551922281428370631624638552600784980381538294743018884160110938158896882355576726607090573503256638818415521183668009024230930868854373946182909189513663807988030030471380762502038272123730312644511642857242217491275076256901286102916942517265182683334742574983978917939263420568244518280239113540118267630648448626150166600497372313201234736097906603384176125063015912222870760267817487121454304895869688474463694942626605450651757615542555159084760666196144266087818145702617164599844700155094416150040157527206291401995386958390115269416992368684933862282817809192069991171644801324677303785126296527210663494147019361392116371099718830613452348596050568321155991582765187389808383662479474895318204706984180867854792315627535129911323913719743511965235589726216318216098582489763693742644729852521566160710768278314585035441398933474628659424345005937332697325930359533116345682500762179665910980671323703533979578499107999671398704418405152256315508758536824755804375961610733571702167781870415752925971326820672926919090754673285564830924901125077288361131695022279579189134348924963190155634350571736877179589548334854261323345500058227639075870524871627783713617093385311755430617868341731576310737056418966568747916770186269709549747339805709255028754344714229240502051633214925535201125485713319750918970420912604738784149837261477014340723701557232704367866494147025460836486973641378791373320323592784126038879012229017588703374709476058995821295843858549442663783344061231001250359595813481671033304570836123732515405042774001288300867389130879310620020438583137903571646407922216391869154392219498882154576455132955930308375325487776398539760972827704246064990075163885522423994227299179067807543170066698926775860356384979896618646445232646418658959619025274618480876073953503534236547077703034529575531915469329535744726106259334762013890458894625034072491010874807714999337807830932657995400410749748641201850101750576734124720493740872649155683043607297951274334342241987695923343506441576268259580576067404313657947435858658135029067550341301186889049903988705251944097150374179463700993781541833199939806578849964963030674152562320017158881403374579297986315197077162171276619925569840163543434100639257010150450875714188115580560748764675145918019910321262970136538487733362397775699246913059027598642325708408715690410444126946230671976229321541919987970439541132500883624052464933730464338322526014336943944094105018291319654914239395140854655926192515399719662665145119243904688388811470713172407612552617483480366868609706850170873805696556632476754375154549247822203594637099013261661599830491331407267407706505244837269420915641415137680464946498275262536278910110029849406187076315311541955544605234718881321679789128342066909413369281764866161330810158533114228527635421554608206748892147057156986649880244209185961928932231850820284083748680383690446725796767096800301802874538586377772135259967923016346855517885153018785656454435023480703710787949136767856003570796497539349652767663064485253606486964043814939858994447742738156504336570596891051057112138668294404931584214862381615462433863304192947328142067501479317616015049814743917583997638856634535164267933390917672771346620479002801212453195630831460515576242920079860028857684088323377767210648062397897076425267022863270540699224043674983101615426757313885313775107149489208576805145446925968427200954555761124124073270525425114799113238616722471715807188361368307724069541891538322888324023532363314373019362342429316018662133190118727058217068927882352229031994566937056949481052876607905037525788229438502057293171666249287029054448581839263008522601262569019348679121652743846863770923654426101057911169128892549473961914345755370054025842504907933040045856475078922266812743925742016421554145361268003152777449738885907590158872439754783079658279613448880385646837510401173898054138078944256146745081444899074559438740596046876015726536630803143920408642090312881465755266649137649798223960196779845874647574011871110537459451404787698028801632936949395166565180187033989708092444750576520256264896028367757896733261191682635793327606842201084530611508327744215675690582480374179536642823581721658502469591421406981530915284767156203187584979486379988346069610949671842681852239500774253647006844076205731470624293568793991427542767284734182856214443992158984396501837472649492034350500938337962137139773039393017648797467693498773457386251351396797819513975329508418760734220399589188409182406771917845322862083955434949447052253174867729651057691409409426630617960048297625938956982743660884831621951055641822324408285903975094014455464188134925796224167200624851857718474058237865282679254226147500487102132037349498688924512255023104388355578066153368926679480318418305351546101781494775301350368893167898546160708619468695174225965485047600123623893686903005497142080820757097988554575105010503953254039595864235544281267820538769703425983893582763249127946121535736399964062741037582065631120568131270283006051665555785980243782999633364390827191820594666397527089959690697574241314196071331538753392346932825259623031023227615497975396719467238866522538235575967556375158756114363022246587716202017661454553839737862161614080026247905632052304161256284263509673154904666250605062907146674484433813902414814956333686211287863838802694616435037177398461944745832046046560749147654178757385611099566957975625363820459708673890512259248055386169232369391251068420850686338740666985357495126729236504023870394075923268716049614797771200193551885902702994841373475508823118900501410394623796260258602925749825575849777524064079511765149624106532984496385006053044652475729374139091532395827369930665094768399756632588791229537762268528269176935224599019961037349723242155582649060516806422429925842919051343253935693051049968466064388741998870807249883362131970694144953887698706734594837304247677696349169149437120758609782486707371966513450297103130849735143755499888614793451640328062030488301510478081280748970920598945943234904108227648754296814117930943739064883088686305134451052468322823345302490031976154951423232026917682829372311328297016983007287263224688548476527685750423889293240909501712716032459611559385721331039130251297949508468467773424509053833257622466889763324661392921043762903750323424021567437851395064901020228697222453950304650942545494564791452151851293734248407877820055685822228423695396757115098831625512106931185460863098977671600323184325211741633099821340575758787729845489672987936188254155988497718571295499166965268414296962903657534891050261373533408880002656499230575525301925071142415182506428473795521063904453564694647664777064750365212971108423843928264754615058009908677564348560032312114081757361652073350176035916508277708614059302364192421430862349974539100746691076483725883914953752346197811720680998303642961297495464826661780926117159793258594160385809445867558980699258888471204542248767702660891164551372100512442476657665791082862112308154599862511023308091532740460116997913805058530311743856260614410274588364209000238271040608549573264419222624054172709298236676607369958468503154174615592699619916928673144213200441621775429116248412763025334088275357784285214930212175780183643583162897790168128112188716820972302447083928031882171530802186452094212231965343062415948708238723093319527202444453273705483790657246427348829119648266189089889199745282002082269471459691716449332060274845234009177910742509386481013262806283286112631965255591983915370509861779652114852768338857332932740238320601814701668391288623772402753012582643559945188751633015924687115191836286031627412273975940957474176843594743953325195625680858494930987599714754539423911209325948907996089982643877503765028064338838825483819920983883274296877016394374267954245989978640300513173467626515027836574091031849906692388539063973950412282037612895996893149937941329790011668986615807281812373655484942472253780857442763231270952649272024257617459296515592133312195755679448990150973964991351305666103637167687163732292358351718054768515486430819715660479498461871238930576160746852903302055097523980228031302666170127736373174513175466844692309521052319421760109311523360311972870806270978518405141636332430262971621425046265054682756649650026183142818521890935016786156152874659611695512712538417293954636663145320699020940491159918067778896498435571547039758242830781268996428722493905817298518762698576472304856225016847410137423186489413209561829000800531573810921634193721071717442624069960154668834670355662415329009095449871787396493423378515534289497158571014347628983180495246783817996544797397766893719172674704261123035098724711623457845666796915727408134111707664164538614913686446893499503529595012496793620389220370914594033739755684843683416772442823752116502583275647578374643173072128325151743990851731689519183385875126734713751760050112619324866041968752427409599031221569251296092314655518115395464217102701445777960878436145565458762075930753602482334236791915508360431252815362977725434794190716026604606503328829072378025865089295621383972488749558401372823942088659951438087158251963782276782142805125658239124218287026949437041627442625863188124139705431662411082552830079684202624175635628945332077277803838468637250762543194233332484979893379411232357611373504072579815864121467239676029115543147838291463154672363820793796989112079290146104649589675374697119530668894764190986980154282892493116866768039391590648467042303846230118662797456516081886392825101622491228222338274215636699942655874899583830878216982544659671837659118930292290526419210303846307899589972286364633258868463084652487542217421022862467126098754918198340952117613046032809134505033730498678162086790849141904310296499162083353816287765572553319819585653628396900265328890683566405468712502740823222677418711487452628712692268079730550629680723400079935609191828811872609828500411159164362272384173842568466977433408844044993278325705653407698304122408774409136640843320353026944304165168643843162030740275351625519341158026788870101272158960206277608871275793560917429605336023558014265614496963112428055070224952285270716298300342648123128333660611951923970138052440322161174310624251691648966419280088634845319394265961788981348992839099722562691904442018225452712599558577992408444493942011113795757593842331611927568956258628783503058631837221159610041785474775019799406375003253041196133457947010830965687874006051587787136619169535443158533733911124110699355674386461138607570022331546631132460559684642937320973770322774560828544591428140692315579281066566881060923631212550226234985571397637821567658715854841939146048844789218809548114690360084136962827649010754257045639968836080597361874102555390841433039641762421502520475117130266792393790345396009968077133672302600131784474577950551567200846173902594969131775512471260204177104257566670374635759600194543777178721352427929125834891299426214085092579003377677945999332080120414059378275740458297896225087980875243585684758604093346654370694286101523351765716956984874197864012044745471988589100997566675949194750907909856149715620360718479665864118792166681332825717307669844580694852110872748747175427097137544449362943215929237873126263809076461514498215077323954593217193754813366701767304957367026387760987691478424333984229594888304006291613748984453040125498111792587197886208063865141684210259818740183648081182236382538774726650368449800788048528006665388726133411525277902615785841996703338126752106557698303241611025876025201418553782799960604305348371845954912326782563419786665215167754200887660937142520227023259333179821039488044672054235700521716894755480059166034408596632878638246783330394814794772216913790824524320969126644721455936025470553600672590078970055649498669662003765950828278258075266121259270431547097665394272976495973293671455149344447136698727095175540831671910259999418822542877418524611309937984272824463544088514595257371643107478443891369626609402621313712398324220519179954762206800018523287660734302517144371482711351831710178718703575347696462538190002223477157916479814677974655308489263432379997817301715330731891713916832559159705786535042025729109795182781096306616015657898289187541567855265411824971809242315955130757106048554276714538364239167911356260963994506653527656574954516570920427482366145373334789180392962265601453859738021909569733427304587169162694265356552016020359141972435557835168100178428519129509883508559992104150912188143747105269834110052702302725253462587431082618128382847796546676350440955052176704389200046067163833634324384524962376561757980068733448440948278044010308714605673369526452597264011313522860096278224611910462471374630871968265981080678021568513706269764664404025194185707656799155595645367485345265737139511317012521662338671258850247064217875766571013572060004104249898054934446881777691160681350020468512492581636694840720595521459226113393364020516093056137078289142107478049567454761021865489942511932826368030401205692413432465012726087087936750051224370795247586769724068281067851672612469334467390032641162226439348821429142191098672590849995091730290645491922951443039742369285953722415430652917985067362076827611368989934275676384351727137869862921551114028649200490177620287253613835520061920303443813575143956657504703581024505567659637648902214027302539276552188688849150777676196099502516009110971068198862098333124159663568958077500980379378807309815205468640852038373756480537346971054963788123115946724182639069174598878960344435854659159354567538557249566034521723691079413448164015058165293647694455155167984331503507982484734275516013461182846408742400410475715310740170818398011511959625573990591297893139744479016289618170998901165165420343243233000015956873484614985299792677888228834592707590584710639461666186622815700971572437473181254185522104142792219213835339427133840358365384943931947443096127857078935246949175368198240455557578766806547515678173992376496897011294348234333777937761088638989414262922814675684345544419049660014426940587303059616953481585182164327736623774695591636818522845760775092218248901786789610612892452588626964816179246814177308689620976724018896691415525584802816934586649138087495946136503256765885527436536098097573064983056901368184650876412800689792039296611808446011941929863247530301816624901673374231735676827823294350975338296542966622198962303188491006022741975334381447450115735740947171709142745457069305444404654148944166607461119504574854805226718525484282238026061457328494630991351248260518595043264125925677630178496444325307334581514537035678342436058391221661666515470357470483974004791382385151326267723750236252636419689995727624239805051440696619524213647788650418346431790966756101238912809772881305523180476523876170905538223556871260728989339079766248209448806178781564836981892346268167455699512575135417662674774858390724423059812174440249936288618447567355741668548232292596392163941900887423332397633343201144079047651662177990028080682328480301995421104726990671698815600640119035385677003544784338400668148504457469042355140787768826614889629777668334480426465342046731775373348611144138619978925272325855040844573100883987652447268369660159176255553390684531509608389449776984594376238116859320496596430246722778823171479752950848002473922023665604767921752894960215626765739889326596733781003857440420653811537724157421505044499757690614695635961205390404762057940571905021613597110687921247504345611556716195798304230032320709908804806549360199992125055032475433131732236061740914035012027793483488353946275735141422272938572854832270793879677281031533131839206038349664680950016222239332999723781034056506094252149606190059070079362373704421710951867214871231528328565609949004251186789896909572523606865100003622270822658828711030020007146471567111490114138029064669315316032881172071412996838429539065259093113561336563505787581873805701901434242833469745258335998101064885327623837412089114807122545659432909379691463413417065948384614439148143918292126251889974328965515234263496133292335375957384277288395295336316860729434208863078733861123483982611452072384994779142974256761507349607280972018046850263089596899231197009854310230608011475260132871311781106155700506361795075393213660967471898516849757897493548065361061148455961685224142695730962444033060758138565833182705034931458680170848212195503949281047531968786377993238721845067502028126076129836731988750713852208745066032149669928371724578216539408723707126520330858756231672954901466817899781278877518667177353684339311098198597648531457697709147093109619382403965028395936486604928545519565514845379686663572355032856402799441005539445663328734488749458374435722441807665431845664813845801418276463437560073982393353122457381127289387475185659753696614427052856152929755406807769449253835603326453619955088553741436452736658891684446467703678692141189961484282370215790616733296383490364680670644664456532788002096022396437717565189929446186648360774695667231142702128730997139831811603971212624548456804687610689314852618949761944591599027536882496339393763587289868072649079151256622625556310781237797613875610498447280953612528234545995133008009281202265870583166552512006824067929132993618364296105239916534673503374501273333774918765447873210781852069147746122129665383885611986207421057976579119745658647676474473027789276145426045090981466783541476549238345381844621435186388142337173380963919316929402503330879363308762746372530988968373419398255145596330475389065319754842682291539501548630197005073988935451601986598969680877923680997228814288006477990056711557658288506493086724577093711948664326003812503705476358867252954596181949459265111832187796102545651593375261120845466683962137746631857344713561952786187552993287421392341729945019022219354183483779992182481943763064538190265298100624640683942393907086215445506983287048735221930285504884823872048593736688293075717258694930156471278448161682316710371772246595840928022554890105000837427927382731907038683238107987938754761755037927611123185647778568897326658248980810639151757632515462611319230112096084113023124921811712571883656179206923260903118545001585503246168310617924313266519907104898888275108273585896768989230863790420679065959365911628101115512345116740008563474736152919239221572572161419345844178955309896493768735523914849445133656858210712648622123172943871667354896910366378866964696184912008698582357795801838653523605993856208622486795280834881902706622203956444313176054616333832860180108316457958824165020074481857496490678431488461192264955670888981500633341579253196215119415902489299131576165942644862087769431552019165785452629567083456381384399365782812378982889922862884256570905382386024669546055581014782557442677688820832199486643085505316691241128742483091179360159426916725610111710891228165252912965815644226594807834384119068073321201562352991091590151351754524787358549309292749887188104249445519319737888352405423042294147306005605418000228847812732287887215096189571286119056664140903556237076884990200093909967697980507406504020794773520282742586404214192109533750822813515510432592411265621936664292292153638493266513517427304915813167853129172762248708516490879392259119300250451105126851377344107673498608126557410238960366014203203314083720167271846710333453242357185832195939624272374848678286205337430176479470658296939923685646319735867851331402762979266599423438395163038846807374259075101461129714887614346066990889471609235510765029700377822643028529315580103129606785953659187185330457102030825733401413611963945231408044008192520191097370608880157874843332896743057163347015923146055134281764158574799370179514241179553080608394176265722145704286865633148017856785316286506821705054348224527551728935322831232892652722253968794920510011940813188282649788970252035921215195350810868580455545319091227756087861310887672569358957956546334063098345273519582251495324228550749930748145772519980950570729380111462848450680460644799633669049822406022672837049124437593909687819801378388007048223894452464730911305779218839795817013902978639173909880198581423404484123100945258364242939655364848380191636676677442944661322920921522315870719166056319651306808356946933249127559200072811092994237376218307467580755735303877598003803625122773232356734389515456686235288614230784079101417979851139377869066040713372751988530092797549936493290765122311392536626500890316723655754650536642313674917382120072990169394067818836180744109607671124502589369206760142550081477637841216163546492499349458846208122585865044575838266736403173550745501212883424444997269195747979680034495639404198359514440382526295531025890366838472823196602275421835822245096360948916093982724296493003534093387664419179094856104552525291364284443861479953048670222252909372116559243222944167998367954649324324428438755132542043486889126629320268498609206783105261209784644891167460183605547542177133895330512603565951339827798908348316271296848047969633336859963631071690636144791819774530798551971939565400837071166531796994586417859612702216406894683128402024062263891248712741480711183613095174865732406703408020071452327636061263235886890572931907905820532942651538938047617921016442074033889081173111242962431122070885250276688480184146099601424132346543390128630458823991956782877334932696622519158011833971858299810995411749325257615846630181890975439446777571822642831188651417836260295505321258496868908042136297830910887767436644595448585631568818513661038047850232381617480351305363195914709342340864945238958612206812505213032010640566816671529609021465865664850911784147799714969674516174727757126206771449187771073493066124054118387204212203777641023735867626089892541931931998345973109074566610084435346403514151394217120490662401250345958327347115250427602552452670891082524886062449340347932370222376249597018671355391954562136255110301615634878229736441636974609469848535729527075093264039150309494858456268173524617247500643852280673469692975512078507655855839160938159599751791542150760065517038383957728924866811073616434471087074446429371939249697634119576750945618176650891422345983436226725056318225009157152559551306850977509282151327540781124292671048353156521343410708649121782155682850894666507014888331747219135573501594052882117364890531062772166844269120245057024051714438401817803418264585137389390098312408677044203510399217967941761817248213425920051442326566000546167317255055291718085612068597811366608431850125881875164528877693038643848129149851462650118421778753024381808654752206307943557151518640857128483712097300326560445198445883494653514049319532725349947146038373072487000385472784372702202599127747658360962677560440189087520840702728352465941375705392778488926601543804713814501263895117629719967853183231843883221537062277259131931301240134100957704613828467426824814407304994363416756822755706167951558046116130750306833844958226819231735803857297493531564338421669183680144402508723941765050875400375077556544047464192616175700532211726877927820208524468861309302688200393505955999351149304476686910394451502646876786935133583505327051842506283681299095412831795756307885182905512508271412170758381552482927609336576720691859163775437029373413851562837170088000845562613854672593695278184838875703630680378586591821533491207034898499183436056768086358433353320857027360232201514991596198070558738514444110855146608911798421463053506125260848823096179412874102561052337852683220307192443542226537738759819579640109031899258028713022346972871838951858061835596706796095796350618858363334321193101390215117891327075467585499931347477317044955479379936972136369658231209743280102540660640409076992232099298334550817851768531340273770101307606316764050594568319953800360087620633910377430819780766168166504292249646449274964706123292599774504562515020025574364230653570462594931541179226674339662644060763196452756966264064293797700143955202273756596734324102331365019985440587294089670727719640865011404146268307976257727719607988995047486678418029198686935872466355509635275928895177015627926030293460661504727426461017395454349625870514836396106383786968238885647886796794436295205566606979516914167461714690168781855866694697701175670403299867753355794506485340531778081812116263419643765062928857207689960669934496011403623101847620535597262216275951881637159409148758496533318055487535399780242011427862927625885313896378297064232780365087096135531583517886009422233967721046259301836713584720395651526336798521068889104906478535579497053143216926555375416696444250390578377237014450208997763969261124067133783127155506480068352623513399502540560912644449439525485754038896775799560710292259819876038723115661393618514143315960360735621339555513720710720182190090149744660020736588296315908431676511866760639631663203946933849483772570963146584666184784415231111114719500483598274978633744823335637250431173359476430072159704966920163797675023514848922243884729498127594328633392696614264598068796647946359398977640771702602844157910173064845673409148103301023160839636073643370739396441422626771996764597837236033772897185432708996454824523809416805440063270543156060728374102643960595393435148918348330541828104305948673769371811464629736725350663437818375091941984661445055130200244223292642679731183108455882601138354407056572932144979449540115568007264157894274426065815641963918934565236768625283235540395990912199224341750762288809786923401126602322496635854373342788510064620979326311806259426329126931717388918771901703594777111333476424655062274090197380414680016768633935185019445780477418604817678460230288899959091937047620504872803338967985867524882472177719004964265364212019660990639076125824585344072781130624202377477173977035817219230501099381188923370682240297482141211988346717740968810821014140133387324927166056275842112649979456227402800867605138930055694310782438598653609042467437755423716212536251307997426530949512357969760629041985717107058640114972955770381248987932075217147538098437012676946045556103982985765440896326418714383220994495630748691627873129622262968872806059361418188425326155257007942599706771744277568898640545867829694959772803125138539181283579397703826062795279356123054532899069995092632769652259212062816841466163840696953593317502832523963152135812197573061404787691000217482003075421535375233536485951341045016116056865595945699181330349937553507107189088648954724836927440880477786901362934327843311327884266628762597462346724166797225705480454367878732227768395303188510945336665590734705958226438775991250461822320345952924383682786278279285560570452328679386888661533343399839267299330196037263057749978939814519260643850877405616377677567239299904911896848916025240656304260859742979036497240829482105900390021992131720569869363326430804249952929973274606205059983418537623764841394642389593224988442247391298548142207056313015494039085998103307605906119570798883938490305725555280774650990864020128325422197185985559025253767708221954183256383033394519630093908666304483841467288004581518685199207844102264972560510772896517889305021584095846371544928863784367374315440348089671663549143504500253785299766069326645915820234792467626821089167332957180796129320129423886680401082192088463669981262783013560976406593919993911892520278293686327447923928981866557064368028052937487117352211799969148567356983113758716565282160054610815854811452103132840765591355683039320701810260594825494130402100245297164263738554958117358229775892724363632994067800257914603070516324473382939950483119527882754906777186722013848841416094935247162094563563154403722815491348347986017044166430873924452968241500199557616897705438702729082073284133897355304925491027776869749765530337623333006314685325840879754959401760015004509819724119529639337483974898631682801879498776251232694620269884797139309492941013439339484820459934551401442942427361798682736742717081093042087761867699719962695710837411076507297779971253149749839987205621675378162540836045176680132119923468061795294799956456917115241340765400715731552649680868539264710834628561040465003053036153669618463455664675184045120030953418767067491279812871830087518704977890022153047966260305365373290987195967510936570120143288036001191131386155323992872386165512491264572203757314988563640284402806368229651833900716069243136998036166393617289030616004214554548392651591245421186305470337693399328542078261019367803887887053771511536642477294529939613769961268874237511354645899808232942385074870518492238595170128327250986026238069103053420882395727059450136443207462222032385020805205099685930373830346214497053878136926929614254603419243471146893594779776354136929281025583885374510843614554868342041914921103601646289778406494585172354517208741522424661626507537929778492520514266068579924293354095704748649040752656004585090740703671775845182919353869071393616817157103695587665132828712679055298361783690256914790384461464476141305740471571935432300400411977616783033990969016833979554407909964207502141932078648973155577748643329784671252486573562870325203329849849867078244760349109105778527837001461338231982757677616591041870755877845677374871365437861314624010418519427406055610491340175860739144805014751037117752509621467115048152841261733744906579979885380207279502468591369969302796612323432565885570263167121745332734211051046619364792132006384692747616377847700806059193755734855808330100876299002193288887206669219549074781900704898005659965459868924719008360013168235552603241670872845733967514550534218252011671295792757565093894532507864232897810236698939453743756960072053206995010633839564337840820208722272572333973494914468461736680491269791354466418440755172030541244575422288175335682541226707777789884849528612360605979715262874480126239637917647460577529961210883514322575573654263916828998229414982970704894222152663085422208854421007282129760262913191714881315862386299706012696371376182609997650646976563176979159779773484867597461602627019171196848432674646660838935049041000318680749151544354293583349172717499946769001341440609904975686361243848785031848469468553059318207841067676112239687736546531026984014132292582979551684070586805090253168709403656661293844362594714775465231369389872011924653335649446721734798799910307705675072758724318700603782190864553953259627173605068953051660599847783911975789007739035924708814171112492225156706391099104491369371953468440313509428226059334605132338156484200710231843790226524811998964434655068266412937308182925311003817643308418282386070563583186958595611199915788592707729392454253650081725557412862574539397440102823030239904609332014506583605276433622674025440332484660497692382566558746762818274920831372447754320048936823312878967135700208911988271062740962414499817538102522322037839973510361553244912519619751154687990105750796100822848504614447332800596714422808056156591893278855973506256185776724271112933841461796017665461750365417184325386720830010694986763859612359242981460925713834171556078932659393679947812685089787050976615934602574388854041229872805400272739438667099254075851909776572515804754732904262481975008030305472992877112513129431447845481475570348935604237144494687252413866708907661542662308104180016895796930743199456891385714403552538863223055632514968824612857453862086797895640502962271405503647054543070169373994006129188079547654460232905208275582782759710112586030755741009042605802078119044305118259582996830434389490914058447513955126523832206990123044070502865253427388101531965566358197045079391685522135405722227146181891443213259151402200855798550799800554651900005232204941026875593399673234170244931614559009273467699588062986971391408383016703671857839306055276206684792501327593905340115296187923824922596007992671520453767483227306653767234153234929322760592212438194479200254794389782937265853201673942147826483999954362953109205262623239643591090441342500373048032836328616079804627694633109222206877223566526723654753741494499183100735017506066273010403521240817193493541405994693850654046327427955082302148785990431513996385012334180915118703246477758301558404463717821021870986626971625205457160139120088327422430716050872857596814638514646633565544648515383431012278332918188084344762249750896149669339066426712319280645689699926950277207389140024516610566962093322269468061142258155664758985314580458553021596152638739603078786134654349497734809135348064496130517818679591946575370397946169754451849760297986087517164330962272231604357496851664960984014009312717198469086285739736634563596608496828293257419455299145639924519330626298934585485382881570596172402744660738720867323201090428294174284577384786205461495141731832720576637077165103777639310704754530855938870061978319448431058408864513281374024560056827966408539617900824001923745787401557500851616921640672172488686402655396118798749173549672525885770259769413494259541910129030494705762098687019071717213554199117905248801171489589522256611586474955651209070528116512361911036852705261269585706000409106146478109371636087073766004073501990070804415003080272340430311143188986442776068561213880464027272471224178554670694534210757802374982379998712366538962391072312433989275338269470707873961476368811559128877115261396025943481388344198080547389371307509424066863529490325051751125249589046028547274899395595338884351742906573208750503590467348683488292849640871556822511643776648818975476665888994825826539039373888022503185431460060812686148653433957112640407939556816973568614361596462642021783573494485990021381738678246336862187820345126058297683110781587073329711618928357717125196517737809488168137660365807408356938239130749215091979313514518480346008162826099824386039680537921618167704119766390118805960020026431374747525959810481453968114963792293749800487903479943728039483077050680529280186096461958202581904527180870912244343865038031584455782485870827126145098160189987931592248977574751986910077490523985617593075419411419808842623280891247717634444751580897953609391700763615729854621116064744655769356071914934994257685168413709411472205929834443176354959873908302568603418322146126018804536339637513845665952663494832075674701556115229963429595741878235370067287271434801820498007546358903002818008670130981063198168358221663697753718769461670376659471406848570794970446499547053056519959223823161452647519506761337864407068545098392234070657929305870467270700435782494109204718269025463648728667890674504372010069030674587934677205963600145449360098917190413260392057430700232975922226332086870769554776787630385867464262547873397379479731683181562167403898295159226318875392938294911610288986806231651513385811822109101830318716398057215150525758557249573510421965486038880925848939951068580497607634993531630992264265402085850621663335019159405354228682321124592361114953442117983367804686499390988111127159191006869553917970508340109574871765535840394213731754046345225413573588808009491860248749922188811086779667625623866280665817583019750990566272152509247092118698745043409835113537029088175668141481412042365093040446787600899749685614711057005949397208608605239631186171641837938181651689254130632614887484632165584740466106916243148446994929571433987934726594362869868114526529761292980246365022345303221087158765847643005193654922660706219552478418297226587615160117227678404112732604177424713268454157778407449090587087521351312954823421042365277972643655142712422080145112854800379057089495893234059568325507383541339784488643131611271124541683973846224959617696079942278055961769899047748874976299964423031931855916453627476659101674153129854983748118730061091958009595261381394326525462902538644996628311015502267958591259932724923490206304565574481627728311332491445099033804592180739296720789922244692660835373447622644789180931968901720301353558832808074783926110650645010487251586470576479786710653717809827131456075060821767089271821965081455599718972988922639130430720431022925233329087091989240124123551780421934495962530548398817293159044056889440579535352905229448430003870545935492149955138129472457289995297702273049525435914280190163343182747136895304321103203846929692775314962786384655524467834871339592404970923809897677465572881247062967892341690500393439748669164461269474968738123135123900672755083131643986266869308973076518353452330082638397999170888076328544860108538300695093712120669202380703857626430762529396421356612689467990854650755325155686624649966956478935551374907147029847377052881944977358925211934772700693058192974512821432388540012929797159522619557617010516720518930611258336242272918693305775751905443286572576987864754544237420166285735883161714564385753817414408859137613703923194325169300405883252449446744116145986899337212849924892787361063055508082754960560248131954296745635917311882187398264299638650266851347467149239140116315851788585097983916284358892370584445401248517918082107511671190606628797779948709931589844203388231838885381191274116921884045114691683540585828174710285612615792427572019348232001242946611685027912592246447635877347440094231439377903250163162502401036490047346293235358566129590493546000631954411923944628997302141461868769059085865811788101320134103257975867896472300523024881199202801545399866602652562479755119845286134597708069859412354535173744031722297250245142035769779399351882078921866752832230107457535502926292460626506294884890238013163782303573874864223837995989351699009463032337434255886092601349773918796617502024838383151567256002984813052319771151672148324619404056190550663405345983515494577209885375172444220265981567563229139473532037041024058040265530472419806186640800826087708425337724102381049556526890833843239429655765094101417313298767151917525745331307493247702072672242440253709383056757941304424658865242994976524919375501447077033971855521196291649066661550509791520924117221863667372356030689175241791183331592598040282464112769611716418576086652679817992082639307716481700101271838505816261272950555476857225509874682739958502121438640087234443493568506890894240170219317739629214169467993183918161447861020668916506862078675727828633474694829871817111156446754283186353162684051021703835494195128739768928347349285086648661269040506047080551639069849534465272190667801563994756513188564996374018890296562997496448260569790348500872988841166965469853638576792220252336137703097981125594083528847963455545051486028555193531786300615419863815795759227328197928527179081261332367780413211337752259528839148309296486457834623812186787387366249805446127691692763296659873033812746893553866857725246817760023632494702394999488106709935875304143693490946635589779880544511209262315763306422785104523054910703550433013993770445081072795427358711703731240581336897796649673115496438347191574614677221885686715220274822988384355178216867867104951314940238278173768978779463086637604632195150571989540650897547961214302884788500695943631192075617343490908268058889133972529486878138613603401547790873915524473579242592438820457406470361268025433827499523075769314557530813705883540853825273648955606858386995515068045878271963235715290841816345614559105065969630620349762300988693669556390840727556080071416768755869356240482188808817852898775509700917880862917816604940703759125384226412119766272376549820811999485940148956322548457479100369075637795300158367322981856624179442712863669510773152145750863853301310493118926250934572636434058486707204343424823872755102966136186356429348854804949968599876522609751093220361144156065149076279013989337070212563347252277053760331496218109014561790679727095034008734138259592422349079711656104720657634540148654933276405381396986931911035989047418012641290700175396630441984544966822483888498215813901551098979627399610311010096312339975092757817772350018338125439231354985450180338007966237310788084942392370401908296890558155271087021650436334503041338299821632728408314271313612610372721565730199138471120870630751803554819138780798852193759997926064364250462929952430936643013024931117543846633410140672965146969854078064019978031285743001991470468296751553343478300040317418830614895984698511415670750943789435973666854953291453282749969922679073362357878170112715317404864303398687114968633094322597689845557690617407214922038304580363088995268702076625641889166000930795322262860056519506775582996199559312924602685111418049831012077507771466457136360460965824130808588454909556478506380960651127478810801325896450380657899008602226264280083237257786295088239214490233397765671681123894312838949033770154664412819376858653789625579323205263842798161112763604895871002314477862222740006395355257351518756286063075001990471394384118941650073077733129602041328113375063293246016473863352322376753315969615840973324253379217200516729355714894797363404291832655119196882679842812936877914373181607974038910568825688997894170183935152734715411722478589331954280588490740145003567366849169112612579055549122376964795853170290048447350457862591087100785212508356366411630897424290071674741129851050043854401609642016923102160099845604607965774905213872038466611403036388987217066925642293473619761822759542511162571118720047060107660467335421867110502966677948253929080244564241792197416038254405076861839060680295019653879398010471795513573642876905215554473164007979967096222436717463460186696817676076755522359259103247590305022120965986145009910178674792653050762542395263821000499678938287494515522603267111816523258461882940869873340449563844349241821138843626279007067863622194255756885401826303962066243445850959370550669276996004874725225793822190353978782153964634687369508902985130627995189716067339672685886349133325156481262193081389850988619912237972403372513041214872437328395518991583643135475341466857588010109370831401032675426021065641777935366853489694595172719756767903955346156721939424016353043766590167348957913357842615602294131505762165074048398576996157978234896352712820379368900520712066178557538626499175078314079104010403638002554059208601649983034846267519887110891586267290513726932036042652975056287595666978160838198875116863525358491763607588673849314563499268414027667522669144181522160416118255342816103960852659805429616974826022105987563994706284631440939531548899534210295171880323855194727718677427034711233938040787701204093881001202283076049179440959726830027097611145765989579374508125038725918038123077917168134016371929159917293469018056844097775668135225281547665771958528233053463314987216548202919589598841972239194406769341205002787329959216688560395571883735661413123404588567252675238495351059302979062076544060190800341922868973891545556545633418751257464061506156261090084172837444892978115055865466530167779322512706684920619107575088269957183508058300593368951049943307818707499508819868187600284070093841197911639180873255654562554957426314339620659405574521607036094218398164560331305531526756784379677810683164288625240577210470790481081600035278576346695043630626615877090415570766958835467888822251630594694765455958795923346655672657488645013969909024761051102462412172269428423743105487403189862173290215470705402298928155533013742663089149916638360172263353330994211879503179920401147939611532250867182694430550461111693832818535989156782487025115315869075145412836809983374992540250744508080978181140132241664654957955520753421457379492605135619476939920712781188951170776955030454109627083544068526011027662602551856878504599806064032449168558298915728288362697633777980343470312260122605292363559043087403024404404939385665918591557045765630237911404395379267287012438136431649235565651861085262437941418208420405808512544885724314384131706071712648567193293540533098752868865809954821232776240277346006692387105567657262059267011681449200861025230245210980132909357672721767250222424291672877642979268308416750104552828886723100904527986534597165699933510032220293550224080828927389710651409609626282447792205851587466733734060626620495015067931309013530328325927346719793954172845677324282263710891996350223565299422610692852288961033108667180919116612371897052061225341921285955916401817308018889723451303273817005340552986736345871806071225564414152558535763676583204227047328497289764786735888340797891984663847906289231034805530587114980846402011460782239603794705709717105151563778874830510405122930547363203978351807904377463429720965258237744152453719752691655341660110551980681303054658104837241327487670358273380036730775400815876453839513075954257288678609022588428949099917786386454381486592843844155734637449696792788880407388096522502782686439633783001163767398504297440933846386386626417384422681553913191855014382176038089865259353798433015185828425330328770434547297652236671941661339714707546137511234053157331103041666328846644776212723846604220761452465789365726593277422205473070203079340947482433590435257482356084768494630002843124709646066350413409427585192972745069303266182605061788273990988527407557767341737407478232562007074976545140192099772606504920765097098162914398780701088415031562483935988475366331581492749798190421286205185897711225625420147874565241753942464606128289982835555865695683069385794233080213408635858781152513457150789092402592316898279160893146781643678482743566755169205595733988933113481418250180397747344443110292258643783181529060717317556183525255763973114733095615527954891417574236635024211108901988789147539798396864218125452013692397345751979028617050648484781980557860418459728691569197806382480940950043186861414546610221291769618239912328470924699484737478746175076126585559653741108457423341690446328951535126170083187818802513830034971176908777480763528050150228250592721354671228856323580823457471596358022416586812015292143581251261446246190604391870922528471215385527880277865140413321154404489796519072634990410130142717901399921734864188846863361827789769202774095481462918152867051928592691522268347822802403274853680770272459316469842982724787073602836945443215254539758093996843728892207178085023246070809029851519877548141282614385008184519108357620904536165744512226513126686787002109260386304086137297736882900889790285919226434109526586929401665452567718396906695880999244427154402073997323129592335191754435193761481036731536743421573456072310552134954979917088177568669879704100571649778006879001840476905502055107826630740696177212707299742266137717312355719786558129173709263007875310475370441025873554805413557275024339421826749228555029890478511950166708808142088788486801106370648948393681562447261177194214410703163521529232539824835825620360971580141925523209876453160898058225156009389882935523057873051173818204555753922417210084163107295912654035279088552448621671426524095530299626492639025192545404956075676713677989862577665155048904389825251513754237699667741818352877554477106441490628590435072905372221160000830950699738375639297676103418395821955400277246436058392884163223605621893002417433009842913129873458511045179775358996041552690790878612401879733421621052248239193348134360388996387523808612411492785366259288097949286840204523025871025782254891382906057881442188311036742535565554835225915599288608593187087128368735074166311099030780700039975222398391461067275462249525907511593488890390950933883766702815318895540293387046635650471334258148556237746895645310726234342954988518386238822569014713100825021893205115624675868490251358624403292875133068634268754538676127235421307106699436371539146200865849202249403851938977356104379950213700571612161916395605034236143133629401880452900592507114233468811563039854173097515822929866067628092693571059022144571672704930513068246852165216922672041127132593194098618496422167622749296616313949559230642807774144496804831390837053201435851658682723284191214842870761072603996031644685779552162608542022322440223023798928346120849431107854865679896128202694216465356293369739613880665979365026030162801734196996128205406981329952421874719089629519872604712665679944750313030571587017098897096777743158099780946647744652053667562861908822691441376301044341768928020041058980689487204894586598405384173619243591161468856505797082191981017738628373640583013476707577196564716292557263366512616826622672852192252735517356615548440256649973692954906281989401403630223726687097656107730705613816448790817801252569109924482139794815421185798915594064485314546906901677818544783770758836280491243242254536461073451591571930673802478840475098138604837703039342608934257931633890737656124003677357128312283297346382844529518312924774863881919634222533069636182559161389145204626653493824980354628767155669327282145684447219478532770193205278112397201102358478094867651822489844918269162846481119235716204868001516189951769402751578100688345293825938137820466214094511780275054342220263524694026793585687197982327820534175052100949691683186838130445959631494146966917745436503327339020316571276931461324854005634388367017877842991551605447635333244816815057151221970124458407577183999270375577405676691556731307075220602717628027907816698163677461706073379239568711747583071561442073164632653244538643376079923602832890147164619554632755237016316714300847095500117911893701089869454701919681316406459243938427871533495170135950780263458156882706889250065941842892554832880094186125691260486612570581167023690153572828415412425681395465073845937875287973240923431155954491381351763538856342619670103335493106958347106398937957969941790863089991502454894865356281644696992500320858301080822331916488491569195921617673148311983062483320132488204795498583210011864565389633641196642033022917912294558378540264695784166843297761283920184403024280442895908898280539822279428566493901704535644006255706945233802158646800765510153153980043990865588577998790060236073701250726929994546918666720814043979260040427273756855719288351954957287609999847722770244243697779540904763451168441358026185577516188688543596954648826183962370885614799985321079403606556429384594899155910532852414448419269701700425632413078057080134384241970612154882252483937809410277226277151865624818783211014673617379548466379069999120326889593132047979686914803990286898635509878369306645845182846232244213487599932545535266599007019906874370159091239390837420808596216115949978593497161119569394854869238518997288152887959788085229072093942000729820861988186804167680281951741796960153083009186867389558380830062426506851728382055640305630122204312451130696202892023515560033388202366476137416928812262354397518327193323303731813657845104700871539259810923699063386917885729705816426130997391491285135076603957956187498904075303320986112267946338102368807410713839945384305937081791604850464612840903942625651020853068758307680343571813925199436047158566171772732740944700653731476567835501505443865488938702295847057549063608581796038844340409205633843536760754352420364487460551725996129298629283059337194924572916730222963595097686534469508507692483902731768870019603305677865770728791100968746618759721837471696764472619305229590943777350144115665978034399968039647507352225675231405544459687766937916228812504414334000025334936455735402928926287369304136925151990528146073738130551045891523769438258466241231467833299415441808589937823894724953148087372298186906641652423368433161028423347001758348769881304242769039706576366677160168347075487625403867274066331753440458067070684053576689750927121711240344234087308575081067698780195097019527655500171864527257273291041309206314072438560956140939252029002102042072390210948127586148800568491517544264429556271509686877790847091787912699372318151467999884026073669304402739289103303688089663967378667525439134152047188433846966617790399449465625204695891626472609141916480834638118625854282603867040838886402380672575389668119862075400066991463422998674068326421270368331231082633820182920253551015339696910303963937767570429829826497153647257975249638692954063759406709976124493369333315865286504614254639539949171645050569848627384735208627092571500040192842152930604259727293292624203803015756184139315490332233009951894599646264283788951543895602782365574215260087941676158744813947209512275499577644291949593617734430288650012535463750481155070085543684022496214714377935635398046430435188322564373249816130296356696636218623988241773792587268339843005691689553246886206688822785334726743469138166142001242515773848646359721464474730964909601867883683214033821891220761164649974397742185026529623801973945027961035932125073627252374302300033825733105747534265159225112556130903590053134421823917875437846804761272674825459248367564945011436972561662336634931120815279202718750220069025164236535596087822496655225323636348423160930163550486525558161496842405442727992938773647229275036692992272024266552256088417024042363338006658851399089146581931732968368500717122148775761535654650014011474281821069907995827882488865986563202127279997331562359771150410502408164705941112224209238546125097078039125394002266054747097095835356118753884608014107353974568715040963933282622906319126920215893133986767638678770259501492414270222015110110490705859604097391730217530778490341827715790665389711073879598564885083668375834338842785485385547464954578613078247727253829402609821537401789763727216064817450694481253594252481807026230632903662993717488386876399621097549377895728107052686166046444520965735604768639923804661469044904969150057571146616794753157190541645592513349841808046611601439228457564386125373532530694897843945900526349579285500783220525262936175409148531460201765948045776841458121593368049006697069107021532145713553670368625794430989443467782886310691599839833058761394201459311986672790431017074581780311335462564071279165369388646782062923116178962253796895453139896192921577674072069078004665187445879200199281814455381678226993560820739095410733817918588103083449197393710666796505238050369059307812050504446058450620932388693531125802118773353818203925286085864479053550454241726396286437548323966317980309011830919194186203804587510887201251454146660188392779667998969141818557643840449219531796101383193977099460177897121558523440726480230763966865945998423740451006600710954878535203729991310701931238049746296543093409610349884883821835161905301024808449698524490693462108949847246066217112453832056284798755870844433443675538525451790034234202423018253866406648319504957305629572254576595570029821595236132798831649193901365215102569255589788710801296684657508262370988725155206318905072904552691245867942027630151174702758643681328127507126527742077322076259110846734483674238924987046115321223527854571979768041496834992553903784051584247217333564746081677256560197121694735449248407154339562860481797799390000545511717539381270507987483950804643710788458390678150676916201797458182694743437754763205781718430383813891521295106935213611766239678725052463332302862340407823813106075602922315965623876107660254162049278583831423520466918948130233472712907723866306427363676740264822771178763894933865197612628117779853243870788296293033043313806743663830306949305826608815726161230144515416978186281229977785247632794531860218272007913084275008924549770691292390165745553123719901418544961320015519983612107307701796086593410547608319395335348773901030630456030351224874218273930831688323247260558705329320528022352816929463505573606355569008771469823977152111477935613482137332266564701386295683924984511975096762330282308993507640456447984416612358402749484833679770207047843641756750024917797905067513009515959643264578340109666580673810897704203063501392683476464512069387031224993031492293243647045416888521070178406122033789353336244149614243702981646807154441769878490483581594013510184698396797633758017913028899162106920815772346151957182284214660184197828554589198547048960453709600227866377381156053482714188120508287055933787613485962660024515729915974109627464003170511416820239867354567426160771203909902891984287293645043289735634786469494339434048664583526272430534591140117928078103930369055683530126742224234303741061167232637477793262197152210132676535346940824418654375278133326448536133461030476370464595202186717601110645982229492366079432443776849053611045337307091160266859799245183605688321249830191323692874955747846412751324157410572030402588791234647126628319510862382523322162319667918026647195415549546306899540822223190501395719858148278346414464572282863865028200161680358304445386249110052670557685251295529956889618810750935141692136184906729162082464867353116942413233906294855149049000995196833955187646969538444774555591095312156476331617622013551115570935565477238450790254262607247313244780916212258350568465774719518215494841140604862945434376559824663835153138585978249175726529982248113837859863839149700948115644488662641324338827601364847830395342033247053962199071862324627814150101919156030794372882699282057058177043004697466883773365867714459573121864105050505153107270642996987006053636021519968906965102697990154574961141280860975437477266309015064909189928502289204528793225434195687165232807207743307733961684480892960050522340045460473592186992033445332364475269978781645367577684389792416205616403377652447907620312759166104325291720957125492656639078221901364077405716915316634371652288112322371402162505380735195595032418247255172708732756363691645301026357739880440478391458921079893489362023631679420365622526180951957533712066515682246637425324993114688028200025466944578969534909192212575027278760842332215196419637662116847796008707677822000703047712094742015299695245048082544775349734417187460773724882323866564851345759256437364788273918078860598783934298620370488521549141003843034592688805447074883439221367850937045449541740877029148354650975157318539060065808552681078821316944768431958637054741295401004137153548376149964666810603518620281603073628410875299635535447284436078348804072885452902987132692481473965846445599525256631700391951715875915068880689446198158184024811597560510765512146948600489327658551085766044508531125369768230665863318036020082963812818560953790281062555738039727310678169562927584107081591082738691944344185232800289216173165873640069666590131556237237164069898515572589999939012634460853186903882147419751090170161845490303666621909317319444677353872605496402195669271348291160121976511979411108822070470017215996616624958284705098982229901652909539451713943228620812968607252497377457547646724156109800590716562323282605896937585663781531467490646083060570834010356409765732088645424095490995360614050740844611901200321470986476358547277816071346265573375014107125608443125803887177327229350354422672838594601962059343782039018191354610550569412919683184472810621396950416982501488989837758187664369811803778446860015886506414930428069469385607203947634621631094831056688779108992587923878345321083638103146859885067529771404569578006496277189389370819921752717836407099790636013389887347992420934756281503092352837171138444212266430912872428123561166436901752041565129431216063071321203911159030441032344859907432619276212977069691928425385236928837669867164705737000739610962989076856169952102650635641205181555150754553210417348486916639210331010705277657125715046505694075884051224709954391394796399334185190929693235962325283142714663112341088700980771527468257021190420638384034527107715498197692274921041520217991554365720881441850331772507167041285529994856988446450824293470393359186951981977817262506605174904748182449589686873201317574552593625009490660770717782251184228751613689787399903386381005182564381966451651146022068496724495348448576258112260329850380635814574907932982670627530270931427722637747451333543010407254595225354621416989483242875490083719658109911436747105641145736116996781479052355815082073275712704263738730170091125606776102240502304734239524862403146788506517327737576304270057303755223888657586629499458824994713321256908221505952884421910718310486094818804507889537232459042913107574165676435163141325793967494321968059850786395083851122226184273875136181562230988577389300062078507422491180343766308863250501347378293202858262479877582031158272259717448153509496534297644381072636049565526241653749871615030449052469128310775412327598684114124157157685267544459146883522215563367129957099748251325257032685361604730774138883897421790394660387186909583438113467089188645279238720216578879794486390524899841198084856122565861904094098495230129961490272369814871660662208748641173621710954932054367020410510196378174994714764026351747674132599377405467180912772793072540756370718948515686087821664885225304315412176309555391204603285640629491921089968415439700826234506033144065602586165150664923201784330606739712197659504758267606302976881326246391790101038663318259250440827685246452374281510463243926758771436487175724339463347861341945681544679214786239347025652184267394334813208341827509444030569310323150889370696570314724317194884075432522759986696811342188974911160807113582653318674500807790601691020889577897787156522299407652103153745932644316612981408628701654439553368449563319340873090845369777927393877011435614622889569206198823839451884364855242871630467333497843737134384019264585168768322266948623231886018835216597102380812245840743505906346539301538786356717536857934959904450432653120161737713753375458200655073492671081593431699169265523497419717010695735534525246602042148107778675836775626636749265822856373280104977403988785740966870674961568542185147767834224031244976878826653239598912432684189257676333655878373948997569756062373312267233903783715837943765158207531467296380354349675773897504983867760340033746411717175447434017527193341467683495967020615739237170407051373638454916632287212266553428604241028505637295272968726300083529463795757612429286763019296552441092175403548401224208406499839137793811873016129448027465466037161605378431251982577944271677139692781483189206297537390327237176315401618184007515657774938172217796232229261575811215537672748801581029265852605342812339455826549975230920986898064569354717915400713319236908114124151263881936774190231386135666902230612597854108931350826155736497287155560508827856977915671482286243375670855767069363123653211279050141976582139573650164011694217677413149022123677544671162739923289407876170602497052262647233238345401345516701539091954915654468775003587944682797985186088827190239606955712445258112520608416842677082721560615399015747399553624300700941318200769068010970741437331764832373841116079612998710281581510285231577460534467975987207611308289734303796009503143013631671535742857940831190382266013607854202198783574845845632449370016502103860705982665488212593087424083197842941196584861272868715090288422297895080090958842502357059613334333509903107281896189776920697070971781519096513967295493933203154982330418676943983019378995457522319797634352254920859261160741241944978854148287601294381232130562452269271128014095951387534683667557796606898602428699190151499081236254639218963721730032284383300179314414610945588651029646649979837738498244020243578337274008909850693490764743782563877628455893745317314840532257408508792816924089488416016110701463522319652894037286256224761014628761794385644002032172542803629349723046613972551640343158553627906397475016343178278614364838105688443773773698275401102526964276681443351821422443309663536722709130491679059623528181854002001203527743990222878649364689691599562154940573804391053119598465900504869927985117018815526191102928143680052737791204098779471994622813386207867447193727410611325340749470219241891940989659956243740443595017529548750428654583024566694065029622938805557210038421566677286003370333630724859256293517490296882496228182780710971570614719633062650949416940376693863079823488218822994319812192706340783600275881141070850854514526995160134868379753443260761775386295847354217943474952182851934553566895955791236313338305941735925086566513625307501679659816598480904060732404956907259580535960692809032684162830275932582702221415269702367718750428491456666344617906421296020369961434506234420192615602931639092822523795511539145048991267242795461716877776374333867117946039971208423803194988340904944182396762475188265731742860488792685256592133802704720333294453418343010387135140619765312191436697196184716911653031133936214059872302940318836510349382450124076057785521141789350454730602696445227840020300090567813484773575118940636054478920180952719276560069995717469479452713687530314949647661407105108588057900356659935969017541712207776637266517428475850140207660730035531346162348739217325004921690478164164650987041354844627646114563024394277637103929700228113528374043022620269721147230565499903901306449715222078619993043650157389078516963981804272548346812234600391763667397705251126430523083165520705692839498132273612722513939060716313697174584683579468153103163784863751382053928156015255229614300772132810258289188800827035505635391877947552225320779976115681314812060079125456163231319468025207166005709847300700642676060034525072474708053355736585585794313022676495548735363407649970597481476346801085692037899698530949536366563650209969650374563075144374691158116386844397040073235660960102687664509340451039909577600467755769555483069218300468553596665273314364006906402478657075734976785724201067706510341265152997981809442143776862617134299628027420355308238340469032831500513023419854881345671910962347015840325078495380151637155443872913418871759969168784776707717936392642505169149575722720697294547033575275305413311604849655608113751952830072036699994896576553014592086666776977743868794469356884507659385962860395437365748030477612549561320576126175010054894446878195200915122450496880930413090682375377121764372486007427911800013096130420671883654705120704442420136333735198606837819924978289346429023105049214201917765738241508646660195826094562568849794874853999371721211800448729355760514544699145325278306875885559498244663112440277460864051199635117945399712595839801418335127317327461824856661111310773980032701019328151899242081434914629363167468941781390821275345368552282742175132735309517362044405786959997522246146936886886660055339843262887659618285330732285016893135379022869610877894755911746587338181608515559387798753893593684746836241890189557932791216999984997163441186126638305669934866182219753700262662751832599872278188843084160263863576226837754663173872591347276482111661975428728570044909307267010806163777196023069385317442322121722898610032510634181170934107491807403198671857469792792171614609373689985259918947385328509803727383459130641882200194592802847926104491665764553803616947340070876226781368812687591769443127067612838989460325311262795662406495712338951778458564334501497338704283177244918140965934974705362716807729906736792808833826782663146122511098085434468907068902899741908280465954097126098328736475934679847297663774136065889884884203053850838721824322742192641241589687969659832797470151026162177400088426819954940644351500647272491035698568173053144119696500487923287586960017940233775420297954450372388731226882371751663669070474931943485459486244086050453037716637537567171649556474591238137704508699277398886781123856414644718713759709083877395602282308287227487758676834240607892333065590665829743716293219018836208800048560318267250657153388202282307960450247904513332222700756404306020133454309054981715362291134228496899944678101289561961019855425451078490923841765971894789030547943305259326052012782672759435925041156646798102163912427443031747061075387732845608614160470347477809184412797439888164687601191362145143438892457716666357177244930326698256248005544318860804363067269740044898576224897710513157132213570067884155437422672304177559167664401551181639467266580625545213340961417640512193606147525306102151484626286526844620402651798342091485475911344725156042288264378402791816359447547538618931260436132776956778709956439181175441917718896473108170943840037787053459767711185721714919072884149921343053517703587298886044029280510580715461171638016021165256416401397717492581515292156153133388708413551818069889716213008409924363260355608184345003472401413041592550765982959252914318646358565439385148497125248977365575188206647453484301165326893818014915891217327828010366015520339155201781532554434663853829918734673753169774663941600759882262817468919026279309526895395843571735604974605733508694104922391659387607305727162169748431104328742076571943528319975474021675161507980287757821864785329115883566375647465885359198657108588891809429205471932865081387957462870417203068177170587945364700012068330979372752741842339504794703526349592064794607319904025032477582087312143853426621711051441620102573832512227256848545380480690635600310324821083423466405578693018133093597112932603432522557770417568347672694112623847387080962771861441802174032162074150215864748014685718007407157631516302166849460696294000452393905073691730896757357673211113312244970729500574042785148016316635687132732215028321345205612080505745291852495874125215380098278020768078169640273169488990589765547278918836838978350979961860083052642318662954719135096256606552024611280087344970019953944717674707643851543847138222562004996480225558128070314302341252168772076411821329555317067421631118744550046501711204787397218543173483537103686388468459349853190756266878141576961300606757236485539081076455158449873822802256657404418605307416823818533047173029240458409545638803445335547093473012583207201390559659071462334048636552027752916283852695867094565086970135105014169694959741856207446917803150221693302722494917178278708300760893752922635504559880932293394169945952576309832820871699544890780205253548107071713600163620524738655983782581254124800062943153875815964794444990975210465696277080192318407590442209853472009128667527649773603513570178240206579781877658406372288290111238796534066603236138990782190478038382521313798912360648659837821298016418374277272811739720817868996032464082326218999553189329916262139730441814115516228031525566928156186976832989901411512756183843931265987213386760777171181264178423753557978807919415093140880838297401009312490216405904004173278566570432408749417615518013365508919130561980208369864880377043458485680264716537440588431985244917814654241311364829867326608173167894356875002496970260574870613954967097419334819418841775234789109962819350409609519421628068718973686935388723227032020565867341996244712086661658979406148688006568307127632865856563549508312100864030406777801345058424481918918864394536732063693618548828899376111942163307277606802501641570147317450718281383172784237753191725576618545364434485705848920706036047646199960252438586661646342538739162894991572259965577230802283173599301064512518528056024442852646163283222207377429575988703901835200363690351685299969100269609599729564572779454699192489730378149766949257108270103161724269385091498193077721933554019229919238531804774587223815550366276195801734387371243371901691660255065169557717574981844701309172023331646244134435303162372545605259929560316727760090307930107787392603042095002313669356356514976417994619045490717823016298106656938730603224338553127731166870210042433133556019411188241367745320785650968938810807754077290014308614007654768558380786757820203480945303668228869252344211691294181923179478782673755422231310102852389662343567246295426773114703078698465104333370639532396834064302638241616814997804773860105684670559015574536014446918715252529943390116253813756404572180361280435676581807630262869171229538714040356459917427317416671600591173709558990764304345121467710558647842928991856838280617891113798138260093648240699822519044428114411464153458302855577530298270589760962201155133129906147837127156264474871168110200583642127804356986022574359637677293379688929266360120952651849140477300540103048355912838096296114397354224076794466290960884105537930681469972100132862441781898140255534178233805356794428665795941846618344808121627861458604226384318560007653176002327344197187498770221836333135740638660415291569821064829261960950896492184199278942895385045766189671001482284342443104184919588200090531926795536707822024820360907296596045074482308856621057177046660868670302777260652932903825391679455564911216310577350682269129937976911179523630699149052538928025097652475161687231508686610360375202156276433664387874790918502267087014771524241769774956754753112934084613663323893771658657094961545333759448445966248225689421594459684543030544632115424661426437014498929513802064956707866099854206852281704068797334928967711817718393993118366733586917606168854961606701141000349120497600290739448495110514520011778210949886034698350574706758976906492265443643156090767249579787257604238615067703815391393012370582101201879516313897530289572807454819125560330527977469075714810170138779149383390663637994368129170347593650787135357156129636100183104371774005464908510896083722744175441444767738028592991711200737337984640119727901130993958900148732830264947030683292455867091722366404489796153822131264979360883286953321853202351210264067368348425409186952576192745688449685776686301991601434821080053532880029307123524903956275996880457859341872900325159923910358878662380052451462445304693250095358950493443226807455553890910083748225816489113473446802285418942222602604225626363685780970984823199426866812110042742800417320400617656700440986371142946099459397068979140074273505886344488929333646076269190572669510465934833141655831198914485936944589212367457160173025628033077992090440610213409230877488174506732252981076629504049459311360527695209115483356186023714106176133714733776788754645993111579871557023652078421245611734110140710925601296320866605208634875117578597272523800088469570611572445206682680382866615964113342789205374089100701951231771860260969312197123864672408429738009300784783004412828842251682618420603169335607179280848887269228265302654957170271833086293798554384271716826287998102908073394692044283179868848571310350039079951007475632179791202767049903897294706769963728958316763730992972957820852224934629912878944104001186599502370968555801436076487472457562632321473517361002498826481759511523058397080910967968175015980105582562463760784681395067683892480717475797700233744823128657917157615592361484057392929307548719693482735735707353641108491641039890242691618189957971983941555979672606429917876298505599209600932077646767284437113251709974049929950580768381353327603743045186305452004130297041976606629397642999769354370515559789133330738230716161429608741156388355047429230752777985618409295445018974852264705067987345712623615564841648015748144014896316500624311325957194143540286303667997661571531164621553254817921638456415621110862965360893690699822633842701182056800959506615328060222490126082281938840343524404594401072317250813186017576149586057596887978039954430528117416764773268719084834581771796592461658339217990488555626838683690366667905496948078645437040705769410596136292691406242897841626865778590356553383887120393884073437855839394972432117077370547834385778291499736140217623680153189340187998274136364960005187780122460463701221643108015695904285010816229878830947091192762391498304599599186744603980548839251373067424598881694162561088368926690208893558054995890327869584174511024128371235890633501113047635995469533972865830731194686884391169374639012335820489580258439700526080552535754887830791464203475999674678562686747929822079267264098548732259218121167438755738973038101583288165198764662173959663983845143919209595189044834950938797998137273561192357123936118499539410097065252584824169053931372351373941696824428767014925724432786243846095847236885059607298975690724192218016879842857705087398492934028357890809866089905172759860183067281468433750974253714371839590471830711180406887773072817268429774152867172176976785832247838293114362152125318961175636946189555831174952945388863435554929835883228941623011806854685717643646764663105068081459003269567155545810759839766156466316317277882041571084423448833412625553012307021866761012632639001037374588010365283472889341482316265177340029105678263995037038944283531603700415302590831977450732301343953696888580586482776575627652257643968583310847010604698853126099041162956028410851364938746211169216953639360064030776997584081397460890771396995386852252783925268182253442751690067691796711291508360285521598063033297876329184857668321003984195130327843050474918398486370423712042931187041197343690016887282378852954428352039280218742923222809503044527327511785928874029624566799570081240842000022488560750584970044792763676896751546454793576909319919506624601779133873201400112728463059622222358394399413715335921357094541708512430043528215975283730714065850180988448695831647913406777838101807152197594212196575390751843003785310038599336883157140576526188931744797840543570795646120654610545355686145979103333196902694122264106032034105022313219801291399009877315287847937100491541358998381217689260259333623949484154114284811404026443187718541876321751506856161566161854298030165659407362315835558594587233159367546619840153374305199483352271179221182567925253391996995156531422496683226995050036779626546958408169781120312856619529053978318088445716965453283139017758559433430029605969629765395939144340095190507512512562443544490378104116198261993090140744840199619414483626491473153783375567085205558333362317908448063891247551965043518182043322951737958136895543876444808474958807941296249172473368123097127920630871691524215403652438303211671325368484418802387364739250450597558305445676311647378852102193954407791148806414112371394285813869935287863780037872091732787462359810041111256179787461816415425823932191575873405225023533347748745104434824716447859123024485229531210913067182002056960403015112604481815450659714351768529524020932850405958301449169368297375538602752232922519250940150860113600076445083153225885654716873659916181289899516024310781911960250355003609654451260834022442515280881468172585327560935503857282283231612526922893495410966691710183996621984686777893041634079715489020311681312313110863333262600462623850688416150823022842237386959578441486794691268414195048303919874210220128883216125888317171131155497207270796971801271816148160752436735149577889667197350969940917423021928032119122455275795263466792896140118973699047730581660101186508752071619777505476309465482237522343802276924776142511437972444701882791410545151908461477000530799505172703294290702181278028737404748854348662043704355258241348991677483692286301271647053541676742774029655515495804841609560410025332228987144837276521885703519263877816952147626583230937311945446708904732567958351754633408903583958710417702207246178742579218199872263370613360071577845348263070379334429364611885700898325911661020934964958222900795428779310804247108067153025161093594167729097143339072407141479588141355247522310790819903040706428891251597996688676462623807862422814983958260721531626617825959361858831421079614282725355910488420579744998183834468836606805141148001682631733402820312808909315890134070610111207213798714265566441653196709674897328312166516241076686199361759655251507278237016770423201812784790838376743214798030853941246938643236624235987506879496495872962003721296951722848602737864657536175405788638014684623659523702653745737076368075544614243106308593023457828310720576719752676722746025141639101471197786434720111918813925163231863202954512211156658606391120595709601374804177998801871621638996047946818766480130336874616081545648006575585952224502267138394284401707748532795787265558247512493562547087030747805461491576872939336711589540583902169701314368983118857468244295369848462302356624390578512756087097363698782457505834679530758500604478832549815687932359234928898958364990375439076128893406692290401090345309386612024094294606921739861179999832975367118500283583350213545702949801107257733076540629428163691198764172517538039586849912720299167912873203659151960695889872252351353640809877533572459500683711842702897671499307749254646864153681646538418944528530373242421246609952281127242603446930557890272168082430637348792516655748039962216417554186243099224973221339408788872243692395419208707076300274213046744361358321843532429749376548179192423687165552835106263377662554345640130595121482657190938312014154627977305619595644234668660291769239489780440392787254672451274447157136390350886468461924931610396404180354214988873738049082553962022455473830187395660689518608526868615098543344310498128573990657203399105603354661499459084165382375707173877716232505572621981976215622445441853578544105803376287311013508434681556380358656306343029459642852906276068842637975756773153073914376047036243165353447038456538228185112638869904650666974055974927531492617098409862838894035243428970729283541101347899940153859244314185069943965764891713392955763655748462142135048439595164523963545015971186727203284154578420206201155931377835147096490181618406696345494514109797284460272901529417972239161330319053862455816088559240358485387804644673983893780706340211222841480090660279479215742677237973259366924104010937773525453517433093749797432478606121480286731007251252206512876219005025660964781762037318912001742024094791670035412870998054605413205242936261861116154328155280768482745994722833310807144779183874538370923570914319220653066726268468111756968907406171231710089204269232678518750259221977853939538375180423079441131575836310286441783263916343887336471314528628859429324226975796751265428212400286868635490367366901356171157991434793643922446545379453469117541986322782267037799937557261567383021777408865289497502758622230810186980530019979705875021671988484061765501419506233159590698083116394919338147673752962792444174984792770493166449452517042231274705494028346019075996107501822482863756128669898332601637307668164538178397895727394022973952265968973404437984208678302927061776760656180771357267346970191614491470902442684708320469923136550169531487452175935261992287364429207853188819285105807806836182816542182200223190396316657255117292219907510597708517892942093172236207850130454514168534563400872138782943820717959026378491381847126556851159237145864930434509906734821237367237303364189013257742149933208463690920927890771066117484560255340591712684652475682715825840343475844764028616456624169295071360674566422664731759223150494453384073771477863588383962831111448098351956872072451699061115950197886134813063318555946871604755223597066096182047001694784012678897365172819745830512048825005286121101618554820749687267276813354752179296155162425281378671483714744096227904646093701241431935167165761225727797141098557507509777411554610785514724206000357938092962791958573290113255184225509796672273827773152290391552513049572175768633328270990407595184301762748059124484180722075363027564732955012742939526322040465240580862226146986621871855657926284888384844799327961684479699361390078884570112564048868069835685857407905669143137180407218056494256294865976013104524529439609643260601739284685772351555701749684805137596088503854296360123836027590170266271555448971612943066612762297884264902152540366934358237491701268131833230747569080447076899687026432485291399211135037136470799631848149063570429187238416615548588260454888024576512715756760216664616631289354443577898870658797132678069835567732765454956503853354546499976810396080350888200154276120818280171962589405558186236327769764537304622373795610166696873927969851903534413565590919497658154652920200749944214707358077362380883765336880011808430355136455402850226258763414834339420724665004094964319412337905742658247495071217664755283934507803254449119106341151647870382759384160259704682964132821035145694998029358082261406770269916886220247305693617707870496477101726751763628994978925994984355599081105105495991545675185317378948967914285307119891521936383417166263436290814283363953747567092084511173971162001056433486586080913508263412113220079998645113751294374275521578017263067730417743822626593796654214375856454312220821603677454555156217896620231514506809513300313021470750489474965433887796088518318139044837360312302159225309166108052334730637243340231179108547664774588812557045681155552253348619516925151282670843578631726924099590905257455791519682253727947412275700062282812573807382418929696562461244453285665693093972757157826135285359344349546050847710888317111748057110151820261512436378537771578409177936656028122172900480763396810755634619388462491818746241839227894929678087081046122615029382193820405843170789568924288006167682680686286796739025358884411942541757898009231447199441167531280584472989264403072467804158252607934192048413204984560341939419737154164503603232092790849644925957050381441631393759079962247043269837440535571813406526649740120628437762165262847763221735060647291743527063927702700203454977571154399557635048162628542454847826247021179745078752360644019369204967699475120519183551283600550054576187646419288249836596211709762314337098102203680901474726026170956796448069822383832522317543706469946563915459799854820563617913615039662719704259097501765467226951557907436410882869303078667002956624488618442361221600795858577372464047271423691270043251968700786517433943731284167741460041701540571961788834523955156184806897629093946135190833952755925152318929762249424954060761343384942317687004439067635491475260955824617954355220035129914441287453244704214760647234467989394710874417260898094573636774556756235568787812920759779047708352989460184402592504038424837640381494170433422611768321017090863321539890180187370615523869400416060694690448579097887000845080816065561518304407132248688458163040371382720689369556833257794544395037271424340574306443320362523788366565524155714553351335007184300144471294600834718103563054445575741074725905398530120276546554349922115528971871597210983406237707836247903117908003324888301652397141260545919278311697462582958806948465269105510454469799974742388237019704663553766536141691383473109998634364210073798243591550019534206920608074847216985195178045722390762408876578795111013696264774053205368544118460028539946562265929297564859067626702080105447777660605740041585906404661080642829931147603825747093719624246014939547293491082921598535311025785972687515385097757847018331282321258436529595865376758515379008418077049715918103115966670843429912585071793795012520740304914735489720287522478971630531885394718921004026446297351926457142563922143835088792172808954615301613589051273879781203439329763138845884927089709858789980852497990681063020429889270266661277109493945846995393475967959476864915682607482148243950422899964919957433192447765777747788443443841004862148094156283542154218744016302520362714491920916854837261970513504803241106222108230431438961476143795787066679706617239762815581935238516285478265225193417356350255874320588623014143730233830950205406037442814891637419472848644175053367996359694333680155881420768502942513022127939877979485675832035258176276836767759417421953668556436332306093406481879090102399800797861980973813946604041518599815327058929339366475575108035495288139521175038059745207684294110639089449439816694704978012980938543075399737642586662461534511863430574411493440234378441289569108613697336916090581324436162946395657040071028789897978581001456026223835014702455090468117575526760528535015673799483699081209550215862365434836292663177030798548376846531567775683542361958251064552684668837675233032359129694641850130534061742041396708690634895632037458566148842579127659599139132126403345421025834148971518956600295598712011877722731840357117966666430789992432958231671804240157782029128731306301477479254140499171661718187224976513988584454910551437679869141006394491528421909451574233772502729295627448973105475688082559707298886756835708920647214833345574022020492197695945993777895908596296613279728365830444777195240972473205313075001046624129617161102074216142596570829294580775816259634756014033980938136773456119233309081910839074188156459535082440601621268566800565913367566730544839009905959609218706846665277176325854923282255645513875672915505799434552658952266344248032498579154333928565960506013080440936441022876530934599581547281055292249157259540365317104962119056622842558398730546820991593472545175789487410596994482512690654347152822726421063331866073978999502974156276976886248892318013232336246966630715609998593963065889030671158994273118255556430588992135792742016114819138549472678263194345204431137154426287821814611547102572066732752551592076736645166208232119857447614360675553581425140947517640363298293518897849472829923170427941864256396046175533363459468073749131594867288819221741916274716113786508284306729564757638745881795045444318720781484674344217118495648843747186056922519995538768167951619976800683074026008821984932214805583000114641711209772185184521888793138187898571827346317769843430600187467395377130549810357275806026746070750699495666184489716261070651616420624249680242216776458034696714840604156656100221924282728802291064949246485050586096501677773079560801129246926645487461011293552658372218333850626885578291502689509529176000859255330119228561873965826150281497710950537237233523405569224496407116953144917165058656335237100278229509351903178865867848971799267632035778330622516071095633653301880754519472500593239480923126572476696476946612925974607315065464505385545553119392619594642109937018589485984924438319571233578589034057911422912001496180851226613292286290758786004573921996252384409855432047701900376724909782175723528313034477086210668280500824274878886039521811357704292302960823159724980387513606120657007486793588950645868560342695950226065052951947362709696253488771765053038562393807782478969133529245092111921901631481229345753710977065034215709186578610412636803676956726506353751541174950972920132434278280369955901281459125883397858172131673838535194310853591237375020776380520923130914000408905225991882094445663529283673175375837141345256987381780087461337545671390783461847969207262250267450423400332039690053392066315458177294129301775410389682743134812005573741646806472970353693129370305405688858975357840614092602485108217621483902894875415091925498873136924735659657536540561948222099621475313515799398971347891399843503417578841525512682310010679097706596887974803431105706357226604768089030575017007994177175017303074548742446132287783317604565653844075779416316787574244041704340509701180562157033774614184066912777038769435584000201232429316301050777700891795111334508167621129360644143204443195983228707296450936031830813431583667517753078456066192372613818829491372050674045718072804867594942587768607169695811192482319556152904642453665266882882891375868338422822269252369364227485505787018191533252837594197974728805808526789417092678889390401924178719821165882802637465831617548688549940303543144360414180990984705795580080606882495002942486969188445067241622781340931388869112526902349461542250907481658657649785948142731317700758699194690705955441287239022788108259096072335829965104369135395557843665021274969663295020861986099723776872196722939681873272409207054533110456030680257836282924471771128371519494531660253497346028498805947892776340673934404142716440832954972093325843102333196003160476460564527637967537212290947279673402336813747639023463486294914450269348156085182299338245652549434477709030235859832263245030278196145434234384852676042910392481427391396815196617572295057122721484763590726360782535766586015031469648857997522881624983874037647461351466198423005149766228586111723755877269934007038809732247017528820411838460425737381694824476446584091738036190697876751865201131039551967398529523602286981222608784991403639491835027497963067166592880600924731148595882282256350329766234251294678004080701850711695286031114686508138795035273852954686960802631488555386648213521198197581510508542674643646353830597770579981700076713133416418813152924647574864969053334987950827913549171758768502878229529161502215565129819208838557447627149873529089774129928981100256117745368144232764580325317211317873945021389951643094737902066011189697302212660688646839493133937480304734028825549070668497888004981344360139504343251951560417730027767833805308957808573621055398240464482161612127838614853338456730366168501164058281896496572068979514746797768446577645261566558547074373940890940896306183494515510185989132349952048109424918981508995890715937660768040369860138413272401646371243783319093451683307593811702866291001150419746139788692428709167238001706236164268309797743844889059130436437577182672527844475007662677513260021925422456424283462832443495567192680067891543749884797897984707292194920338673003983317210106254358458007086042453686821328083454320399409096596650302658860813787839438038280901919311311203484126202218750251271259839130483156615003853762966994295882170788925394016981112452582307809033264647582039670363269202819456437676972403323841009408506332706222949659866845151791268388480147430978668959559511120705185535610465043108840780640526260851924207281526694662415337251011207556241115847819059373459602833742241116804702563493987691629661638839412248733208992658963564599188397290455407000405379777313215702446756577668139511733374602131987117305436666863406852359371015747502799594703988327609628017112405107569281388326118509982273989740963461180149295922156714945853004079282491369915638710205542924942457660291670243797246294185085346371747628769933940934518699561430317655211993334540036872068972475326150201428079461280737515538210773505170750579975828021788133700409138552784519046472895350226665322679722841784862209366887377486285785052918830824190085203693926327932907739656905577203818751771065678773972273777151644324498195017075062063622013607199337767304129960601060413516994012181432830793625069728311692881733889316984879873029350777073196539798685431458309824104011614462915881415770836633710906278849865264234160584610341975210014897895444222930737955268791265683777053263829054223138868311474347376394878858299759208249490066320614166481729652506310764033267220038665294195139656848156062665838440047072909254228731815742762462159942049463790270823344877103259433549718178441619555243337996295979196484599956142683861605301659660756424140701948530938221628643130949365573510563088176385842773975625440634312611193842485819113736925924387363619570694325909311960207109305787759239702669884469929248592556857516925374913628472405039685470387009539096998863600063267589203124690084287075943493611967730006245117848331879871734603536729845275091692887677726369585952888625432205150984741760040290038590540746238480016229051265179962685252433914402794828597860724698858570899907565126630284324896585145320978941031156224274066480424760951171806486427527997376016474752920315909026086774479390537572504503737511626616091365751521927713514613555156213237390832028981427872118470511614718775557337924187505913226981906617696285067185948015993682645698909069307616776614552099287736443760416638617392651878517018296732856869283666454261670762766921747221507830231827367913473616652223807264038581427971082228738279149159039972664147482119019657670896278126878699557765407113702608851223375565016832818391091862688832479975443592352977377195871956762136128507512281914644804297852717337579219768632004959068127620531589946262225801567634111102395198141684517668451362370160277222120277792620551507089172969588913930377687047158359079880403446497581595680349292178764597887265081417966369043461892128644201039204672170911624513473670795125849040215567855878716258238499469173386204825172528704317015666087157131002240319571432350011098070907425376055981962571984079650946702621047062996297642082969299707653130306647684484928489648976986594690418473963367987057416033485483973108035428187994542659272464856673504382780374773954818824060978917319491235775461949484438459059755489703409732709152407065167208184215554417775151865195795913934239171080599456588031074802313448427505962202198328401926169774171215201896845679592715214623721631901549600298105455492836536271939914454235799124451515981703239355994772937335273434504616663031259346431450086451185008486316257708612822206468492258859786668824127791979813026979647311319824702933767322304607932402393452057428958344531236775502301857946634074860254317716036523453686062057953207646409826720544718888685566594962433925137729646480076856136605916377914144765585089744089147824267991757964438124419971684005198071744689262333130976807023841381956300602778800395569769145449550392774500833607859784425350522315635612703360293542908217572938844658172142774657136857637128016746432200997327546305837472194340485811184833755052398500298373110364396578261320102144861529561161237696888831362155628905158483938321999646372268818675791441341745067533682194607796268106209774982310439196449227689506918259526956547868577073485346121253559060922255432668024069130999002962771551319050018166345366628815867947959262384511503953608464822034368933587494238442949216670682108697717783143589125423397667993412257643962328765758544344963269356729871521660234591898949569519134242665355943518323711607545266762256773260186892140651867330798896015018675476282483608409586001436763551063141706786521694458626997188666978271337063770297366391628270029711409223254838800363376322669087013290205972826969928292047527423168645866320009809309829684101245696656299530392810689267427639266896011002697666931801357390336769123431281282327238109936864406366672993391656172973858618485885915154698344835348581945839586895722240270322993792924395563049356522961766173535320109129653241249833121599228362060648846833496531221842684677768982831449133056416467486213933855260905809685004626147073138889666669901868527941906971753848700411864478587891800051126295587387124876177730934295134339088114661268290670789054854259088012071326943916390030306781395018675059668159795750520407856712169282944199346792043651917295238238857810767172321937506633845066622307865457249929591029955887674703064490226967700281396871866542416740172422252304864888264559555584125582142450686781103226029464195646740500458862656684165154467502417978771914091234843318152852564461728259371156484072869716339369719552755837914009472863971289903766639850181363697084755642316485494502513571853556322984753251808557322042598094148401636151395633575286820245597285559061222740589918775440171023779256106485963386043705246681350607824898344671210707103102660426901422530229366599009631399869998582910228505695613640256459880372355156153486655261719621014969859204460375867133155691405144149855732668568329231385398049997554258050297976428321032487038731394294771472325606620167333418275584426820367664894588141245918515967223969692822656019607604926777494025951723073464718461215650595702912226939304937001990146767053244965739651087040499444474081016165856972974648277479413872894435786147003577760240817371184362380594311361368479210266475588807071570346406662006103335445633458170859800348681363093600691237899651702099445539079202903326790523887470878121242657188759958144190136907312707337412887337873227962517139247793263800469286516277231831641432553884955030406753680478861530859010583566725629491296753188910517512325353398604326486135834481035514502600369661429704581264090257498438803306780448508754119678282544726480271424764767047422976914375678581237234731381599016585165408375514229589438563344764163089837447616543164689344598589376874003818135784170935790093911121559768199201585218116829161721496012189497783467150451247646700080593897635544935555588136487436031080722234329933527693413054481822848339932288260908073603119624537679763658501416836059452579543008755072622708783783021749417386429496765206550576208949619251621320650433010288197179442531148342430929617201559348999945126362603988738598922713005932504856452460678061686075459300589168471445651540333700422701845623133763539539198574765421478593753477584562847255391197755995657987283335167050511148429462931915855303756502296366710780394766894447915790093768324830694777816328465725981669284594314779914177326653003531224512879257675932717046387081830776848813299666788936118418372401490036175656057743830221667439623566520592159047978129965237510916104525415403253826223511785659416060932855133784824468626790534477292704602568989273045828293582619057197858411939487252876811653652194878503077429806550765084824304377934160182590152907976880791174993293405931884329204609330289609279605504808370143769347754809775007106745856198045317444306312801790847111595750991227223512803281226162849402265149731156860541976018388181578090601727800356039304572086863479480721960676383400195905768263842732896323733920127816043656267888330256630996179431404657553269469793210772928020788787475574176572042654050275397751421719997089119542345848585483644859279158341564978879078393566580899965672589224113825358187014219634951158470722260043697441214129598712430520388282774559746085532097794392550015002249597571512781993798715049765070059238393744099593578347886865357809531059150692939876515736438611937763320756093932801290720517048555575144829481854335450602823631385677683795181743176157471151749929078086222762149308391317491471844849284088547606960854273966784811553821448704745266250198223587982126728062863247448396096719409719686174244933148173117031187373779117254519886947679012351477894211452331897784076105035220898862884201609338226042870558082857524149818271179411866602544766657340777390195574525958449592705049031610935135999865121532056501832379101319309635739325366210977334267799045089113395550740667763814858544054983919410663606007811761402458208843881043621863018757215557349797219302852599466575413219685628505460040209548712266108303036788288559362562791093502547198892643155163190566808749714390289358942927673032660394776333895863829680250948931586765246489280860556437523405716400346345082678410832535113239337605965108529276168188267090307481572169706760962972953233068866747798676729197814447076534731391446570740379565082762907529609405104162141320794947007949271988674081206308732137382737298839792899106898044373437962281685253396311452798301562546680299134867503178246078642281911493473246454498056701277382504777748367680841738000120812012711787875116490516518542422487620202937074305312902715026228431057364695298366986450786677311002438620328018991943263758239437444076566676720090923246142996777548203492556606476965827794335406718540829498522579079562377878847656253223704470656911993149872560088426054250722043020152754204764878280598755639194937152345157391726804672610091536513421667881350689259713571221430159600633595780437308890097400955828478010110538499866886155974465484214968803991371917352124245023515344975731092988855274912554640653803311910492838863101339238387642609415446777197149737176599435036242977892384966150635962821136984693864318755367358143091127180097798377613130211487040547373780821981159154952134515038776218227609444674778042398125983117166017534095988102670835893997214266392815969321152125496473852609312719683984828840186377836096982307509569377315064925441677263113033453967853773453602875132668289300454580510978694469695122270629708542835790525697488325063306869527818751390227350216476516345870672057940271968984452605110520911761392457234047268887664817111211388461337676025731157871063338237484976586971936475371249307568715197666529369264992491581890260311340305448139753402610485287637045921081236503799752786958713430301703494430370306823407947530726383935997701084066546858233551690922901995813937797689068116725497872956085782123186451173047274672197351506824021788090588446885776307378523896851522922144719018419096648440907866847230342172241297732043166319192399520938073347103705223633072545198571902936548202954561128787949403418281763265353073171231443767008517882287454212108227417492414676178756417350853024424096984866887241086095054491063840377931334764127257173848339848590927164724429726600433463098143508771826484979005759792100905632879483258367836043354133492136408619041227944088356866075483023195385838138586205230753998314230258260473005588895011950356360411080237171472731496653246144120908175896970229494886581880514517859772142419810745988390820412067509834885087396654058695302720178670095396787945490216513628520139322547718733219419547269991912658357753797955925155744591390076601952834070974945574638950815516517817304652536536360658258616383271359696152727251994016420946406731696333168989309189707776335620843687174207936975690314010822775438038021888734810897799472123185025996096077787992982432134674104903792860212237861126825757768512189023432358590075166411081174556526959559483974897004056852363811947965786703510903021391486638628602613845669168000608940557161668634366397065190344735996385314898541676853288747768107842861474184242009172420198802868094933078838714889880023526185523579544683392858874583735207956509608386130306728312477937849179122616177020311179086309840556184906536910400333742676131305539546402184713522757661748428716437191812014185635478311516985674787632618473956727369872246918483453802289090888306761973123549660322927003305224193919607060335540601327460183014909957282273459271303386982691259446339681464928455562775344142499572468196453203726976006819316633664346402457384654704288938491317460796293694996607283194319817396227009763681541814834587870569916342025241820382193010559760894510768942896722002568634731176096925406957739317273170960462969954955698185810149611507694498102088669157147791612082260148192239814126189276203062226815711979120062246565907014596388624416637853308515359632592148067296257513571462290610256630367781366262287066840856941976216758936467457464546438069070418673374969597502158889745064419391844834903300589425297517997493408806791047407407057193976017844206542134344331430703706734946173064878270418524162889724173246250139489298414454533480670253916260867507502015190212602562398600950459052101583053272151063264460257556438692571715864935021082417254519705300030425310338390899308113550640916943749780184368901264457675653991446605220024147742484493593639637034710646961432681296670656000555222840049752516856102913545105222909104689729112538943849237394648535894221674726869058928896602355797613701062269607458240260293632457704277871614062932755580086994255704291760031850246033887413439310134339250089958956385313339520976594333115324658480089848318726462322083183551524707036759244871545027824197730810041344967661128881854782729012600874514341080636856157457064713360036342666649904469646357936967819325046057548191132394875344261992726600930902705440931718760772535776854932823948581852912559354074904201313862376217125514687929424184759170497205780888401139386824702211190669276339387019995137218222280399605154825349447419545678436378894441232637788956026901158070078070359796512622105160669553648459395566832192780452730870646830482906612413366037356371905931987686100229872456722725554431784381041530464744971921627959494640037032599719883896238439221862537612833957957161993671981243870490799290050830149676655381532122951986605499794396061815503179427567577073376597881744889372728667379265422042746253244216264465317119234431716286837077883993127582957715820705511994456175953277851024726572825117370396980788307742185692664217733906243223526222456634163098963881999469620548362144974158642735010441178593484498485779998040459439880655282141159051238400397363287141048555753945826304512523931534893684137761643435124604751375582952052100090060088437436319184098729234488245081480619876097208428046635845710654365235417436258022618679909085564137102417205612401967338830797259806724374797280962365149760135608659609532831478588959412949236589510049739075011778699395857787946480462312020957311542895038116643996028670258726075429373248164524723151641510048064045901715923418937618364479432705336630559984008805832061731335052363934456117557464796934103807542656640415317603025430382890804475209794887535704879407600649233275916952358624016303059037105869297436744465311711231094273503061554370949747736515167764279143539139379967043198069001719336281249591588816019390521456160581812755228895791725510265202207158040966377010516246948786363764891484293616464314629878478801470983279218049926679492024929596675429161249553439637131011390729975958630481307887653619485726320686426236767434298974527519980344120794280873204373837157881524412961770780834827433121478005668742308839182075978926101901533943173856091367935923640358851674274056788010023418230949248774351184040963526121533630290837112605312169740565183914487892250462370677933273245580652282376316648893670708572862335825250076065675869951954386974066092851279293981555406555817899261361040965405242218553369678158332369299012064969873010580363729207626828205957473069290381100159091052453574833586270934023510454616104349060218405291486295849408383563996658959308399125285481785848043596963505778802148419399381563583640157537467208592472105533727668681894188300170904657421154301613442383030273224345535767337609204337852733401544848119964231460770341982686642566307084470381477658460466053787273272122698932087090850537029141268374473423955978888996463071380762197331200649758616806417119598218373426518983165140078708172787019535093856191914141313125121021472942041518979130957268971419724289376274308224382235715153771187066442671412382025439418744885313893400867560912332453137558895799695505327315514671213536627531164388200561774442165966247054450557249353947427380416819576019099260276733347674804219397501771735354450759438449188068151824792200051551475388824659689275346728659859086803381483166791785604302841029753184601380718319516515059865074543326314445701568780892621771870035604887989636731774420765461151218134150545135182219760821421902091310978767398850859090287403760689594327737106322144135232401869997871393383990487295616072952771399652855544176623985878176354460345202108076256150855504679012654829461072335643593651203944653430878776060295323841335498442887113145728916530261839473363531366184484275335120653776866797433289946559299150423175466556406726309708445728693592494353286483136081215972554186992771540110047797834023006507872465811390010313189123412060634535918858085952106939793163352885585561990729268010578587017681531962428562197049251506559001904024652941086497779111427702163370858501421735089030805607563837296141857483112138315352835119313274832141416227260476686039752954666641238835037053481541578743797363050497280748848270383390996720281896947049869665460464148614233160028965357985793763211771399878295697551430441279874078823353155883162112358787749804613960645040718750125033411241920258350243360684330142645889935816098847821175946991727608011248674125381241069071745548065330840239500175954908740457968951932299808574800686533737829136310034376017228611965933101632647043367658853115309572598134908334476583385200928465158380882161422442156630876447385696589187564481949984814480302035491861453741364234420329540201062884669587685718998633891988050489249997661740130220158329021273159116063235560301602417175802045761960361434184074743100671523442740528912928211693832825193033823375686152899537163157811648393190106100281309884959131371737369729210236448999135347643127222935751087047555622658716299136816777127620804149740923211624991555930459594941468545820057590459383181583953512998151813500533439206919412466327033253526614040513238520963820712814022509382118948324563726803270302149091594104399947528380658858820674512620195704692893423132270783458102772727503565594740831039988496762336725649068256610546579548746630132184979948323291920351506427222373181604589203095095567102721469845786134628203701549694178572491204042113614969515515116855648678589429082194464458760302255109749300561733695131385251780267235800573784197427994950301884508851236013117491726717471611212326254374410363970318269500824586444334447914149686315887037808029975411434935703604358464507011525108414457828857512334611421927104547854782879841316091713694022949312948868445859563416468694642606318400274509738301008672966994442220134272274722962599805080764174771649937621628123363298085448564242088535471657178778208662793524079459549106681645214352318990211494420821279690718372059087091987445511077016727573571864486488806813429712512762348257968347987028764759047686146129477033678203967988891465976878357317412232735467385116952015343963167389305222874858485039240123816785822118689721535238043894457436947502181272079769565093010608826217174216500476079306907930963699232781858663771174769262623162453554206485814578122564252403307262629923902782580811730620478760396942014987673114405344752203764854865654445544345692177508705567731862688751077453682832004784934872177506883564962824924304225467600255932212542735120113578166095445011193754864075248403696207925281031448950337453110345424048354950946417909755436811470850493993765253305685387156585527956870338092851890529577607970329493715800929296088314725288740298583372723398488758181521636000754316888278684291329722292656850596360655557491621649090209740454500084013111694091956959536914414026709815433644348428105532605362899088758836672324296856050556443742824591260430721140953510708897753240211249549532179513040635833926236454715820016102962106718271845156750266579817466405147013469941488262395170599711532797783398884267390859246522749920371841162864126876134683526821004105428487987609875422635165474949815160482204734322969407995475997362215469747271244299439073868183233081034317175577917766014023112425622879211947874479252980119808945539686433647851419420667380436842272790120320337012780826066468434312896958541481078141210622733944534196663699252651073207251536190798383746402244966308411862875071046184501485658441754641563928432924753855277612816661265951243030586128537568823081624943932673793437681400165960947783504302963408164946178702593346879209227048995716492389823336309561783639056751576574609767032588276829936610467935835846490142585588681578219439758408492712311458403332093496013146692856820258702265291279533754250748098646481028067021354041816469722343573251685460094802623252246769447875200128576449127957522549108299853624760202416386315641957411795726624838164738773617362144604863908220921613786604007763193424177649399815842072622588023161848961779907023017399893833963987140311753479613550148582658387038317331406827981527831945604126447454145421234268697904235345603632241689165230008396283762664717731498225823113048823675944485664943479305080207800491870417930990155354418406589782610905231341942906717013763017434426801322267877168621522226517610595883625479869265515894061204672098296031967523059066469808036299394864036646654413402463806282375185800578162379916107181404380602230514159655286222318143094526150150287911544323828493421838401617647138140912093980967496254095091908275214450545529212346038554689244837312826280421009604335593282786138740750068353958055695569605448386848009528702356007178993997683120507869248468470428201036761262963905490710861578688194858263694942155170406479599858416032173307670052981018522277057546811243722116379180993674212015594452915503806040231230643059678880887663436789801509572793010363996908144647222485161107634491790203742074916362725442540543441046030705766955062790255859864965129860376281433681220422517130416607866869496721234809150138534812765747429859260836447839973887600269578883498615797167888099606494484423169389498417076622123011380626709355637756704384545591414235538264443290712515588938417352385028406056328972050636796195618448053131433972023351561010212737019977910624638815232464141201077969584250189931931777588455127074042197621660790665023399880659549996742716706110599218649967491769377811372501748070756617452657942665584727863587175344147410218478389972118144402729104276113377311951543027655927619268097471173889046381190697581794528366064572721140265487098146854675973257904171197665221272937526252294719733000673291409058738339132210125997548311730401673696979819798656371096769356681996415378433500053309929780863605598174103437732328617977359428475616148310275012783787806323258267435595645818884708338286929093110151007636884837626406117281672716058945745247466435736874202253084167648977902330489499928596656418691414538191529254411723725734379843771854488684583760779826664660028079999756144044243002618449630720569331655904339682581474521227955871389844391257073079953621015314226185412443507711390283732658826098645888339222381516052902027324090681374064195214713911846089374164863522209028127715104821514698854889076841078537245361158908487947614088000905186438198832597336521635610896490338468502347830242267823240662442852235021157497805733166598223447255794187014036140835735860120359994346704716818413175689653238251092691393405919917030765586327595809115000647401993976955816489731060129532377380985437858343414038125096767324426703983035204811967951708554146517983040721059921119872992445135571384875086294250017660267200976721598721229788058353531802185120264442228037356316733261761417771707187949355535270155932452476165577765520136585642030535503504055578874136259616278272644857992106442819324187866163029723091512770365912330497427126627251557875377802814022664112594194213403015192919886363124168185656955085714422272422555676393120437170906101597554267411003580785679153232781877931987430179990308298244442889346560815106441743373835541237191760496476991005441677362546842000949008935106555067667628043834644626271421680012335554094147571366537299235577644829896826323826503615524493547565983069337224486276546933565823496734749049090304682196012496184000387849576930344532467371195335130161950097299766390673964446658484516470592594924459956346298024802643348771391371281660913293838810944924624554779685786725577629947068897574571338512545842521240034111376451970271374671918223426235179008339914829924229002229361097739180883306208795810371338506631947763888316802269957365226192707370636954585699580185764091350063752544631309540124357574080649221958757478899403504696184803972300504337427729653677124405677357327792951208277477237375233143312402823583970120588681894530524991097082973727450854443338107220948609493743900032033552594764064703658274934571076993027809052497302194228484470187591115610609968126723467043023875598530259460327884539944232418108951447404628024730180271184901595025109549939504919059431751421428382590218730216835938012143916214343984815420465244443710525579676270559614106545674409433078051428620394152335749417261366677251731679748340815972381680800573053482883757423416682734988489004332871560740974725150696313560788052841550371493476127380867959970062378888411904130735394039138073588130567686780162167513010996512679223805782103428177790018105230015815609297793875712320414011910387716398115514928884480410800195470979701595473086906732727246134078882382044211731415979794079135362678312489620538639138842491654775290216721597283721390283686588353146839434173979296952912388967186893860332375274308610137116437953553056947938461635059824263590458538114394106951018622903393136465879831231989203044267943041882153866620727197762680015335935166170664083366321285688379893954831053800290111454345520948179283200097741685877479641346108092811235109498054117649244896552301636284950177332649069557082901712325012264705203343688098712725354847083450827763583546004583937696731650593583379500359089850501346628703599252311845551561461319588640662444979932373942877459089195518061030080912881655921889099596439292784453213424793411792054844779610428239311179664616674226971587030026182003856003423501119353723310011541951170249243491212364151543342384097415496900507193378171752493199729262815334288635017174856983931778764668781486005981470208027989469326801514702809788739239991191517878501435121574694286331856964867278441282701143503689732414340602254747465980487192162303515916799857214433833713230398857251210085802443353185979493734879999664808907659987139320641296537413983985201885551926374364670082530670660406717629364400357191084245913470874801843854999746719434493872377839516985977065237275653345261742521136870410049812455822970016407488224729439481999732768718767073892300392962152042922757223009641699715423066555525115407471483946170735840230701798973902926473623983881148851495405183817095160450851914436375076775232883464441747940889773961275084306853298431084866625444623416914907979242403979155400171245728762614790615733529140336287229446676125577930342594939245083015426704584753347558947992782152697917188555225173428207230433300753205938081737287808908015357115234832443771889489154624164519626211917884219942006256865569602358324552868867840114035173791094092847842577298001562605766804076123744271732972708540544423044331095081437847096609441515076681249320745642474016039693503924207908175914706475194107094774383404053011142257454483889607079959666943085630360772291431509500912695105261825873236564672090286884290085718713957500161531613909626651724094040027492989975544620850808578485488925257092798209033194183530490393980786552292716883687269124135023976537916961330785652745570890783669094802143246094622103914759694155695175783151705058859268142583651293310190286259740070519326092491979198248129165090727373252008374919589649460200613264337502754271035922200788336311378632070365462800014055619264717588681294795415880232869444304157198485700494347120085298529131546515433451179738786319772903765269687382137537019320593159399189608303771557778890060178959274161251623718603828509678081306085311026225953570690723830419893039655367556784207872356416444209972643109998916631542627558387903570351930143063770807244255113885551501736715425343258826966277726692675083124922643468289010750075019556598286269215374716781924694502345738649517188518441302558559757174459555133198284621784040365958540341681114763575642711733601772174235598210546196442868463128757634401122798133176521039408983624894154649134786472534814599549698690484654134554590949307967604188029382942682874249634753621631774207079838595906189554377013349795991538667001473644776913443926637879785426049123613148370081825209026483318196197858041563475780052132164057364960466471145972020057592129768521224896420100265939817568401490885163909661616089409846313985694343578583031202386553324213156502955196692260185228247323670139430953540472482987274348716531695375236145484047131013021666518080052826978995302174431173360510057447808477329344087676712473268679158873165608498524349975090317822835644024133286586747996451627833760555159631235982627140099884135697960992971682588998139481987458202724932986547354996886983950198005407893278563651235689096155001008110824521685676302222426022949558762259540632614955949083068495455715865729416927910499145755235754911601902009518121950779099364327319616740406573947591388714816432808112227865248632187548502286508561850266764064371966777722174469414600309743077980057854354062559019866625620401449118776962218278613560801586101654534341928986791749100958110325898893995044802545514847738333290200836228010038990558920106657406581710570936835457524397492147856007518732273019469269691220081330566984609370997367942091692203245403308203271063173002558986356059454855688487394515739357752272465477520391110844940372739690307253942240859333577946766594174037689120764713655039416047782459080731681208891723691615272999487332270405385119648296495544275258106323981038457728736412962126021371923910713319120265553985128318924217063319535699223251528164729051417175345354855171389686113395302770491992166631119668014701884790131492868795702912279662021303468018918267858891921931065836671599564835976691542602067554350263986989721317799862087349705026491663312672666220626318880840119785616909719770614885100288249920961207810324502063062235892056565863557886784290179394569622310031338889357015844585936055731771839032622039599836037222935874337809206578718174214342593438361360920913665066144543565400885173372101955278745085167332240134297889507233691217729227753043644721728616799796868843795516465523664943527301082065829239815130152570360382856972707047317448483926557785492237314219885888259689513074733517818234727288443298873311524871770498327849136041700425218962230910221653336527404660093205925181734447907526179132020697181467706564278133344660519435564457287501844340234294669049466819012274308366668927933186644805259904296542605131012586088914815749532672615491415015026828536671616186439556386280872328456103457783171780092529609217653737698106877402127516012846916855875083175065454346289871533780258341298007860067539959616111851380234908343477330589907392301377831775817410916884677615667337769094518362360155504208313712998024978806062718855580405160544146940503196571560863062786768411463232834950175411983494613754425568068900559100838539789451641934029841592800176044486145759009507147646345501607270736662842208588966904422180707239714293822110764769657820494053493238455042636851910507217331384101237380232841200762596396637076944102156988061287395600202653272932179996940014683366817844029939508075565865503967268614332876333115690997709324233468826292705743825611310834778326239324813912970404466776855507500399270323985097167381499479388846796590229396209033719973969589909796782461217491146860911841416005082343807547565396485242412997030100373232206839219543952828647307915782137979604397573463793461510838076394013573086048622503114315384097826794080496549403811558218874117359168744410874507641598253943214501569662673901384865120079737685295138321384488156362416624671328233417302858978632047527744205394285292934730556572367077321862232049250338997779931870917093195925641993805519084353457885322076341319540302039105637141285286864092974681599329845320515560895140318908752842088271628406421958682292971770848265455727672940967142509328739958359582728725920138393542825106360955238312359637731083607057038942220833386419679156142272331959650610194401841905983710040350948241779510021378162860473307849935787058905773052359018184544960621979084277553357786372749140806046599174511600146156053234975055461182783560576313717087184376307334307238175718486974158555402830812819480951230817488323970586213369265421178046334608943988199045491987096507500738840341780683967420399254885045311542942671532471531256744188129522032907157488673501274682736284508740849834683457816841576561656235092701299738513089703557094012560793782115724776215691094288955848574023783921284323582373496739532856951336192877985283426063480741718450938688040072611220475904630479350522614692531271654779268808381524028972790116195631430853284286777172759979166697696364766853033939832722945446145211740516555247830100183789872724154928729643095598288116122422130716796065659666785674711506515309261827632092930246114036820887619764136026282645311444651614519457445184306665361095051091514851840434526442642839850575081902787265793403561224287685099547399014381966435524457470952066185534143305295958087226451389634661816953383730491533524353845526622036917508778590472157781568387114052452543970542001100420303177470583715148414093987680813053435700376611945944906372461784250957508851973989603781060856948965153341925341568035442349864628976200049123993838890348713743166564880655722018304476083957209995539198483140726679554386881590599512449706506440235196317278310928644451006878836972570674761120714259065149069709743752641551387434075321752968867293602308775890883325396371550935204781372634929257248658687518882213918813078466418692020382305794732046243550249644778299479085177764359501037699885865439711016679607862852723833757684156662897081797614957219196631731396024170263828580830190431515708617280748366614239021875797198020348086236383168562797749732301998830144715410536207615493348605867951667314977127081210127905978241760503275070857921678669104021053974964836899100094186569272463730654104227556503920653976766334005133363736861676820027153736502925157472004731433784533385320924188845361887465395513555883068887791454501106321137919585957780849905938256358241101738542891756068921800581023889807258435065584322560684726998586162240122274039843827288309355690582710441241476809703744828960599533550100822766747195225200735470906124523411849677970553268942438024857817629540745659184603953978579135858468501406657738754791260133522060729419228767895976647536425461731046469947960072067564944056131180427957726646501237554321366490482749843843257395762253224440478821732278537835425648235548069658018971676639163797168847389045021101313722490210617066706428837708484454749004261580602719190690525936297153221829444961573980594521315154810042137494429668568537238675703210134452044751122112354235193233375273635868536988538235486652237030543310262682486288191976116782357636428941981158598577250459064343239070211912622257957525305094612755001908926102378817325619196983996586499536350833154661216303887422785714502192212028176064379424629167231115973790733409003393580831599728657743651520295606132020452982560980950849224315556810789159182354684875652940514262559080725378104070970021350731763311568176219345202732318436102424920663172785683234250774521639599332046887181277812864529823112066704156190166975004720629193333779476463877306338294542393138729125281815629582175052144682140675309640569714101614545601885970674440870813973841236580135831753235205637871062478366628724197579853939017650570768288440224079304136751137211216191963080291538029622709596213417273206812249021046728124519651681172837622672868072958614099701926673811047331192129944921312009488818182195109631561536122341926492742764180973003813973664774731465081573888311684664090536267302019462777235864079808337982753048122808426329034617149849856753340862832453016668970674487169610948708931898015419470435588837135698174492946793860430831262070347080890906143961503668922066539891251846943089149208577360910448328348190763152117270446294142181548927030567455576927128587297679254080169648140826765670486405553008535079842504694388638109690588732656165225666908472617986941577576378995856854770432957607096714122111981142289869916550396401384070075274428643715848554999802180482801302197245444848710842311523379256087126087679181723716548555979561027320201927926197202967542864754655731769618831182553394655062804252283233136590660230737053431413282737405838595515324080582164659905784068055323874428944318805191420804044290589202289400975454435897984048283886263788841313508376824826005855602318082168644561762826826150540373021240012060255978935357709380590275983719647293094073888349110788254806318687430441457616785934286800699563414689721107237114296777557091731359688856052094775107119198095739885618667301175778958026362654457532290155268721836972220761210048473541868828489981261967117622223585288843749805512849805123447345920405570913892566999777737144838661232507590772995352635795968544759388172069363198993609079019820944862090855244119223540226068215096087704951911838909787310529021944470802608638958840719781572503062567282141886534992531377810195687969112261935857105877400240217332272696376005942096703222279376640885620631722598139353895571756915338732305319682732345075507103714747785154282080994559348477885773610581822973772202562855632375354188924145684422997367223454160111514941951988268750280654667632937620315649630517128960899050744688033111937413533859785737976670708270074215965693771975474459755260850667470351684604582576989105354123597898900787085071522210144449447729638249117109516751750313202039865087296662506030484548128041462793603848849829463241856126106948587149433053321258500471364573841357282183835464040046210798392104895243299617862002849094454210849227947828558944874809072960813358852069570371399478848223637717990611684243021988400389946441625459713714765125924262058504427442975661119452913730845366381894909009303415852802709724914101698661681840283762004779401846881344994411335246558264730955325011218095925496228242737274976297091738678653797644897009725792592674276511384589038781654964279085456133921249714099123768380268523319470577003351165544729129486639539021356410729239013491383000154536510914386601117207281413276647886225773586558006931465817925935186808082252807501849490094988009976217964562003427625277203365709580605343183930344855011502736693164992938965143902671715605540666466246205274947173074615436726286362713660981937825455308982352790767954327717656087884798211336265922973022186763680882883210819692932102235997695371017663939301648162625677813160390488608640681043855989898834872633486484996319218131926249812715151432372624206515107662453930563606346917173407213496736416799756176524051668414385151532055646825390537251420442305500933074356096506221901511709756702477704188782638150863385249208660917880772800644164961754982269802015121912847885612251496551312001350400990769504168447966139695070082354346548186569509827463021354050823970087118982387077994654972852471610182497637525523789022332270004172939685170043967333959142273037582373240156871307949796487854986074631954928390347883693098670911856536873143676101961442561411421537782609579649652563288092539659241592943805617194187771236079716614815587740618879665903949737587217529657155504373456474842279948543081594923574496262109855285790991241406258441405191565464642112513788663417554036139339775838311715169920856700778102032214773763666848997344171663073950451647206461701015343881910849720907341238631237032229065435190936781549728046676071957211398403757847809903262848518236469989229168505832531884615713840259137176644496472293673409573622038303977790990422809751868948264566933497803269713486185204904867511626821678991512901466162692251656924073513352239755813478015594205417895547964684549284614253666454414388978343915257616384649300895419248139585757377704934716870935394194899597778871153510081521078019099816459485607123921137464736672125943542994962430627622572705786311403838038567198336331458536910909209352145667754552235010343954771258091825241460712842813277709742150226439076675891076717584536855304844489791553343172909921701806611579101297995108373939093546160336395398942048086098806368012302307732220644621898996440972486463221058122477134580877854292722603721552901972807375113206566142062630246832478488378186031248693892472588336918678771382239864102305188068233252341803603933462349028473689320344908716146522321412683834977344463133769632748511567542494361147968735729568336250378763938033082690736009881845094706592327731407367279812349914066467168131828506138656236990064366232788021145949900549308049366601728328539255984103640278377491917968747497250256230452591138345100779604497100235629842359558336625630567101754235516211706165298428334923895936559733785584867895007853246568339475404622785408607911436779502682383220933382453540470768463630951983019039662737626951124276008791203975876987634250347448570820846028307263658472252441671437633222972986064164131042239630842207607436108645718095307276581200516101450568927196844893628169204325445658718202684378045760182345756692362519710149582162339758149031084806194483917098709338199392700706091717119009324869279745036781551823914464731467320444463297424942944542216042208476764967852487921201136886674457969672604526543206681305469075070542801134347924032788347180797386311935762879974129780958804672773407351555923025686869163947408985862449862390610282068694814746823729637606720673999004247445776827998998997337479939702943124265878668999862144094095049578248053502636645689598767367938449973611383170930699708696549673014536425385521161096862321974445253232710279665559850899074186633905127873050624985020836940795509705555615899868443889915215317821372187765652628013504664005088615469425965740408740122053254790473119796742234882966428118561343000154608454893489687548818991860569412824650594970968682964984619078093660738750002587261084198799992877438364624348023447377624031947531028466777087407680128549038615225002313849894031306753801834327284325319829541450766472696994896410515667401785081937411928477593187043868125312794136357151256045524408616571214927128441382220267327137206668153549170521977750293332564084452999781941726103745772344681236915265830405026305147595565241259069879801570613195240277275758523482559154576267696033405795879226115479729668875127804098374995051757282059305527686625460184068024853352221419990495328918033526527627110309145158618958502352617203778984431934067434325999135624702379978333342148267002557469026176886311619271088164687037220683826969968750493465351955414188312108541559814949194311814117037677862256142595129143052242463097960449130728860334147387894931188072818345391323686640855740542670866981499976335771802027306152359205831996295549514776400010497922779407857660045214110237599664791635438171304872160713147091071649559479458876290198108143966145084435371449710389448201248008201724460348688737079244561618482190654616766178669985822281648916323759383194255465347356916943200517318590864858627101695177053530611041494805820028782064807996277716784392346167339168416425503953817605636738657964185913002715777665404472461239885176120447701150604747018612089394563801890589139791483621322677242412393024492396416492357861399639661920703221694511169950511327082506349238063546582964091108911929253799360838063004385244883200818576127766243993998265546042039571974471505597992788138056549107814519864036419931982363772298231444347533308504436575368422963032546697135255645659796437102697966155707719325167475702800719284972448342133509467628514301972062607910184889503745626492545282558898759417284315687964960281071028458440659669524461280618794908848126546293004307999619942829302801906096398670710755371712549971401656809273536431182254351563127730961644508470422054475920203938273964451570646180694815389185782924289810842663235873306085048278546716261237119148894574389627536761028846821849688097083542982347079937020524862616374349320477562370458454974890896030500355393468759262702939065779326605707090914278199712567441488437355108911552555409670339474347912791049024168840261625179315744850689961279260697210446497369363044346968516393093332670200027950432719238132569099457800807560353195675293349694395994416507509087847041922992485932136030745264723104536923262386882382266686429913789676106676095114292324514792478931155724147418785706645947530907118982084686682245631677068113113958844977721089774745124381494286173626933284644882123521318466311488609679710512785514824624095722108603240452879197557956919360926699009202348910112362160665426880677724796654158573759430855903707448331790639699860193175611163928051398087596051380946151263158986998964648407985110396588489411010281227577251631022586144247108098152771643618512784452449519584426639491799661120854366877376552157302533071001226795927262589504966545568652750816742452024524576616768158626932973933063171528293614984530538036252822626704553644688174163292940648607884987190753256444775970301917420035515912907486218047681576153297514638274843323613427217830580034731494043847630761418286783856842021438661356606296316321813956351808970933468463767860369795639917839062423802411187778018547467763097456627875510729030942535878652647432602701304393944296381155507298461725940420969593819176395600218337885677212766387880836152365706024929932231387664251916658767836542284966921125485934129072171956829567430521409302574143110459602382637885931599232323664467954641042394756748305056737713041259939810861099787095315560554323821238929443167151475721534175718115161314970542671460482131798733684105773884453309029169166345232043583840783863899245206218243280052273785326750033541134726649877992684607018069723357516610706002757308525117087039573750681510988758346765066298785934529568319858022641828547019363959035850919223880679685687547557343822227071594823150395342446252438419707642438386513891071029137852934762147902710298454549022325391502996870318781121105104571838643524113640146044311957163618641825722190033799599635927746496330121520858128859280222943297890246264190434899499599765300681158443178234995331982390193489388703358343082203622800006128742525319601696262540790298087779446195659995313595148648340547897960409571547825819988107944975812615220933928398592737908055201423304529995665062589734216238651565735794787899752665276636334486361903397580190079001558170481576828066115088811596895637791623724291400593581617008546731394223744019636147913694935395680065657179019116352313254071739667626054977208881860092306378194632117693346039198013940231412475677479919254332485695626361932163448564817918871649326443309507700357669138922863700438997066337439262695980298715827367044997769472853458179665116244362958953076762152969758205539911635207780462286981306243720610331813399367580548800279849838365789091568318674765641923884896402669392776404399386565641143337811987680558169778058665072893565971157180288671374940273260222854235786016730320682711029541671461491197957066212739258457153254429083820256252963123337960371880673386218447139034307035465613257398029554905380602330676983924590904042255504417197983612811471491640232970677383380722215568020392347713720910927123393857573780906418047848134548301291652665043216138338323940920266794009722503395123849151051629057557751910018160919415092697215118627547895929450439039025932999838117029502901449018876906512550454517286108515892070644994807156434042879029644237031424969396420228575345989329062770778600160806724842811917525035797635233646018112505030238300332912805499872694578522765207530789329510325657315729549670032475955229607643298106768676153370603685746339624053805219603643557736701940360197798187120317986238848033471323049619475605412960880442613117612705901625335586475928174502388423228705219395950039085162527019858282219640794414790903647306862603979083291646079442003122986360835481065167731943734211716888281484391422563638545071379912660970492464826830844684354229668845389092832074669254547882821834942767879676435580335003595422277286381266159039129627737492613241134672364916286871514292230884637940979695114553220319127731791431910925167467906729455118825413980936672129052948828844358427134806643938517935911051440228406205636663862304512647800962305295583284479193337266030714813668401236588953651720141867338301162024209348353720062836931568885217277146838279621911053663178092209634333888072455087503596994479350205993568787529538056754985975549029083728300650991943394955338373698067528021186151732334603447932987967521908605580687458394129641178681501181094313358662822467683042967578960155774820744703175816877353997515986508270077951974310905039781582220900292216850194814661867011661922437498301003694967482689204728843568981286489549109360087007951856703918303325929159403543192920628260791324261085543969886368547339161208944666500860854464694083873036532172379410445749059031043523041684226317610979939735641851200952746029062836658457237564683746903415883345589480937177338229271333927501541768975142193334694684781681705240403797958164899705093979174126280642554467414234113619639292646720429896041925075824334938170235472817224152532452724777053069663396229771665839235574186611435426326078876411942879999323311047823376213636529629402043435417428121571960761394808270614963762201234438733901432325874534221897071469980210705468642152496145653237296608530469458604129023625968341501455748617855388353214084525643067850972430714617371772044416072846908243832330873708502629328908796303334118154472688903674439574925563906005022605469786426329664351107567700000580488275094335152399083299515611161883249008247087835448367148725133577798896790387914919164533194560681456376124600389958062034154373616811567099675593869193515114952860024479243653206356956677087429155499098006828416849080645785802099693378838891034414458969424307627987585777401734656328199781958755980707877931428747604502810696713016658789309651065001190955563948606252209858028885498316475306911143128587592905529471317286146407255511474844731597188702224261283218293794735408194512453474212881614239715722071347407747318871678997885123095954549505366986892167668326788625154151287625345864542975841676969468610001017195039963500216984438905493951371585467652165535878034082434346779419508851787647325932286073874602359043891395224191587921348273773880796558401881508194495895592955716544912304370795982823475978345670434464277733551731975793793590285411406775643710876528507075688489803618961310289261075687200033214631017620527120385604754272472457351044822652493631635450817178378013912735291384668750581132882536884213025543184130680863436826450548207210292456336850225218275521312294426573477191292802717836857333532420703630533482736808540902865461562002620951491463018941946130860371910323356703892370080596945061751297979023390271417036847444704649783078601025145539806100077535415499521147171922950035466760417671846720812266891252498258876892810069789541937669744811119043394221940788235736998555897846312043920877948933390430367021773827788501596962413504996594457729305864345479762110703467301654794071984465773113570557440863639084530211148437366032771437348921348249602069399078771298754887641218039893165684513966390915722510247192698756547799604670763480661163367306516541066282852651670741832648042968166412966131592687801995810961336219099118173059002237638178973274060414585687690492480350861041403927894819196881912971791007808353525405712269555787669679744267093633483488134103631745256043232251385482725567934048768664312022100036407111404008250063594450151205798120167329067362831540962197474494448649194644850518215231287653301438806354346982659331383551704334443588299045905178817437115375592731844887141009520440911014469979410916558916729143502181507544773467062027237979470673618806391799688760849154450376257256390869916756466617916730740703382953041483374117614436469431586214016304425183268907098061743301459125538567216114012380452989536827646423908272947507833574708530220072244462749206977103501335619591933803602234299753005687793221623156931750232485567210699315137952821960489415706445364873993927021694119906882488293702451479163483049597721520941884933133870628506382912602457614949047709924813871532332616443350626523759339491235826961494839333368849527380303169291668652315542411904286904303621285404793495623486709756250489595214571857238438647366201909461742303530064472507336677766687903958909042321545207288039260833415365231825417553500268045879868317469825891098647425881008624060428896520748960143092513530844060144405002277524126872644741483551510164017408278148174080813568999618509281620194841493677842924047993270254990621691119184629507887091020561213582998771548518254447886403809170245120109532327028848028329167473353960783253938369664155469699743912253195607049137645041451717119585550486331960721698386687001653151571568573411267356795504796993138640045212514340393041888437517439360548177073874571061729525562633138519597657964969593360091516985438423075690392602759209290583773664931897637572369166634976338355617374149179999003664146056677835885811088324749519585674273848219643153928576469916364249883205359796501055882874214171069164579862712633381970187666347299777326754856294765024560905219712302805670957513468819485240672853281182501668095528663546651998499135436477149999091246770154373714678073869198735819443695977533741941433769787043824427438860191121433490087527327799208481279018696357826754540587604426235618682445602531602406890149129652758636671927642949170110863193150916534198391582777816145405132787321426181534827412495087775476818619279509767950525683291174171814551425590185476910732585215197481202033298721330517231994309053838922035288867475230956439776625376275401708520241004617958897285476717361033325030231289725116596964911365648326824606674401788702659363439459129197609701095670906254721252022012462979528324871756055857364696416868008584653463792978722752129519280243901155603521712039449229777615587008328608900633779529579740176459789228425846564220065006455839176505602149378587196868665588891266058304805070065159736711548604358513843548636370063271145201792736405133488976046187164459330163694262445731625328927523111021159138173372180255161255092449013221116596960640841876032424632331733228064215315113851799370632054317280244281232980713163308850868542161036773735422484044640406261800846180571672786489426226799429119510929836282779325900282020339701844066653191388090504833652360666519838860583469244011034669162469951298423432369546617989828527652378876488618178486395795943711144047379566869660479016233324778193059113938600036626528867956971022420629780555028297199415872944417386980764808569587268367064749283262360138065246102411343154295561879893534879725221954332618628893005574055929584350157481030569406050136957223859552174533721330697689390989495046744739890353355305531787035840622940354781356166769169307246900062106446851352357424761400829088376486639796659546604444271409077407743842905347720759871230206833239407089428407217160350064532537426903425146840257095317923562130268107349272947877714205638932439227375306788440045740009691586017972595155040567571426700936528371238888078596866239586355758670177442971869835522355669048628041051450604771824353672593743788217320410670144547583517334590228531203254338680270812943824995281891010904541163984275590131106369904341336806199061098357867682087960729632196033028873149742172845689079079830641606251627543186770589133237901647165432454556557382317326746445135008948856310603527454008901447299553146370900955851239832866399355448636774478142015629401468694950834233800515263497256326194280488593363436904719900594441868359076030313456589290804081869455890139491043745464863377693222143397653381809919603568458637216970081183409924629864628613722505947151981189767154979482654314222762928524319627293328603509324953108575973205655371496119964408671651679160255131539128950083190656997099623708695216070185872829124970354315013573365437463890535855094487827438747447189467304003265050570888891328458438475638078762778289670059993246623795904999605726952329677599926348959146459290934275655574917388151805095701235937891659676259481227236297108271228505409407904317066641476651294920118209859175060200257680192258600486179580624628085480005176812856406553075113973108528618502954372897961627195930365993030817177543979462417681871879288043356522324359898347906674623962942140167327253501765117298921789386104988165431771457167638116105611641423587311609152898319456771298284396157006103650427199067171333702102686382701987008254199254411995814745805269848537499580053425890404753035811647860001297642541178554599917305261471910143502768997891338934916361917518389995339067806206782154816023882503167138594311607203565038347541823914341384690477930111241706746348010158406906214967440063077325821794805490448541684951837958379397751510030281312176748162440676598937928623551635692464366393607263092964132862475310093162670933645655203094263900314162649116274058654294112604289948222709667840267325421885629446648191969072091205936010216114905102364537188341047672252898221497253707263846452804571042671496159325834152037961914340150620617166067578904928163164197349769627698975598170044785213249164882541614849224192159929656290942171893761856995206312394824845210975096133995612716965009458468786927704234565229610029070424355285854767169022025030055533003301301668980746479621660891134310487613945534059478626235193429958517947294673149729476648934204009738499829297484234919329510422104653187075825802133886971090069609870394157078334052151303947453787508371293025847185084625455391986074291341866306267365657319735473097437809025146091891893707117074607483110615426723897383833313141236346679194575140188480194953977178114828929357005921048083184584031368928504223901915675191377837841791485065060499355784315884656749757384829253163440392835158903321669128429467833049344623833321461448779515006025851870547234697130974822243407676323626153798076008337168192861370524427415925273479573395177012840261449283423275413690841809437139918212098964739205897665163332503800631417373990750930550929090246297996938036391762803950872809683364688791607065639863721895665045852109625071740930201620674231614289873712529376603831561999668082628886003556390654415817501342913344764792339463537046913984418899288825965610548009406268939266019146959225891246218752925697713191134678067628187977465984148295691047035517435510392508962934559570235849060300429966786136303168158633858604940725874667586362514063384225727583711870113149924070904271564708801462876534659410574807273951141050495248795919889811891652739805832717964342059170239225181645020522386169557975326025973515748885565549501888785440857459647606246177083672395108945893980731222736502597651389693589508262067664956717431093192239084014822861271775203311572135544900671821990092497085611855047464884155537557675759811474201961755392980668971910429437710755131147191671475724991559571491811887547802121738499950078292818150715381766210666697547173462345005440773565631477557702469627876156072074504876618090809445148832483239103218944572091559050903659463428782713770290177827211219160033241267296411045175945594122564190374031370213508163738949781167068543964229932919289267859969988073398476487143622049537250479149697181446886765972766622500333567372525490362862911216561282652484249208772601915458785418853554724467999734193558082082393596795247534760327849986806000687118242854016081253693789086203833877776124177197626900479760151026860428888377733422531024761131007038091240062417679559211105330623482261549855979594197377873874782586984541195952262358164432969451385645161825760718497281180920652750803768985841381133554986376311459591693825155457181200285932207958923362155580312695185395892984351676343498922624644043796756252641631240818275478957107614761572717216941164730189552904585095148448240564920776848281947870580069039413877352736675093823816403399031658686293861483012996597390595747782677453022035529469617942797154628606415832762022200192559621494817790041848789416501144324190914256917674857429971246123001305049547752258025385535759362444895919850988426208787571519446288613782499484275028178388533039057492958919847708876609501722940339625873983116396456460831227462260257467327282697816549921093337591642562541684077026204197101070821337072915502077936153434418165053311737372760144873292923105102719062917287245036293939070251944455625513501347808860187282889014509419717783751199252983972527073348884920924558167595799337294643617325784640234019893401000766855898874286158779365114893867251593858626594927963308593804679257090265896676496514954738681975536195639828009321769992708107708111989299647487848511064531718100150377514298982430921758788878556836633733730838561047265043096842578892498493362834500874342639073486755562288931806156082952786738021427914063770995834984110213289652002377348674207649253410905704537195671117329147237230876063072426516936851191318335222695463694922092738792364500836910457695190069811769520854702317655005826048193937657188215705468212356187616785196585689634445216316955057686341655040194466747356088834837519273620013545495811400000276275395051053703355949303524969083614289679131826230437946099339284485647975890694652588554199562762724094131587321926035729759131371788929923069407142191979798291097507322631390726227080086191513312047260600301980467515865832981194491008808523248437036056692905260598773283478029113853755164480491637049332800429305268422782493539094959926851684536358756933106256834178351338886831282941948677894274045157945094949071166005569798247782519557046614577477675179761872719991104549397400372376792086485863206573029173801620796894208394283566282312118347884499992972779843215340604715107154551020136290001369877156806518521147485537981979557910337740380694116899948230761654785043877742647626713805056782891557857842777989326800832624662405045036394857821761276025595918124225337541674958417400719048878846339065880707096184644389138050085745510899066623956955748319185903118603335567104475327403370440462101008734655195989051975396976814289645140091786019190886224329031368606803114664087298438082060166369104415549311348769163562718006730683269663444694392210423708929562236198883297236433729730788517857478557860400641135532023890693431059108162111754033212862173020974866909699913174292786796284732461168059128507752995448580066091729272008264709926417695581046582536325640073137158059084260592221429669807666910312894785941986618452657515834250256530652537621935872886219595349787441056720823774264386510946471172571539379060718835458497604590152690904244617946164942496396561448664767078601922142017409967172393169836343781486333441970916731096325299330348804700234367997141582938137917660483202653006667382561863204341081296377881870640806138773299847632888604612984501782376313892504192104400775736440944679140579857020170783102924741897962851049127090905197216373165344934172817606304995099804887407768132173880053772697600558173807372348667082565508457824961848005954389495930750578777249456451956479809951882424196633359007037685766885314056301370570774482468011237617637161696916525717450022224492037783208514366788022845820586652567960423624131401480990090293723005451666809785450366946020993722326255434669919233620338990126550130693302294463519842690318351576669791146298335336761213532132214877135737305964375641721047451507132511978338718532274559324960669227924878222199331775798078776489171366373893659582406678294451176248702799111414892709531016097206411129315659727269442157413721894986551938928429437896193362267097003438823792833736310584244075679034013201689795737298304385043614980558938293070509001135749328818091260558420122554613827489394782816753238195582167449884275588806695455156177458760454778213203871670307530387046934117732521593081629968718589754703693143030786462250064485581103931832160105149285043963327406433798365626425969080504183507972945145950305401578346584684645791900665334854254325090223738644209321962227778830285153441652338987595505320248103153957536065706260506532908544953694716188683136716160451076064530638185444034894333116499680165279340652311782132164543699267400521152124514372724783124701506586729387887335010357846100147974580015957431050671901970072513790404595059689331779487560825964420515882025926106169412889360215475979627076243833454422675715823970380525826352139881710453132559197824177942593590326311239193566283097209356806716924387895438664457184931034317960893237470739550334185222435144608009754702356961936365551927168078413215617722474508962173307302623149132522742050073934321517068544095671953379382678028747240344678618221924368291495075250512945516470211295741571776870848195968116160576288953289058264808570938913439760854834155819778711479468143020295956599570037654284071547540752823932501343919959347682424683960373060207340623309412502889828104280113329548916596015241781148735511966942628882228093431426175289498551106443560812139389038947344463759316494512386598637220887518184010882200066160907780822746886379656486631456861432700175414029987643399265862912315061469952512927603506830221803078637623338516519253073067697105143711600267743578387145639466109974702541673665299690436965553916263060393578915305793135239319490519587261214293634782481761643867406314401913648208382906645136208477361368773534034558409408267385656323286078281213790163168908758511263658545597631032168787115266944866428856700450441258277642055036238453744680549249572836834298146757459413428753374596770362090886950353530451072753024074009772807701085955923566994685507260133969774009268063461724354199741651822729948635847400972550259209948842004640124541485429287460996635722241653361741862544737494439418882871256206495449584769548118622456544440343773475751809195884903099385111437829841954384830170909845343902568392443081590209579042880518996033282929634963299696515142333302190083597816693291604829953119671023842918140794125497315326146805554774814134908449386731257065151628006889744224815988821883081592161837651003910619251870841637651818162012347087300586172928047476732774690193893549458112937618953781358176691679759536405770832342006447823810408382572034360625353944684107455581333678811482555985524902633686025628355771473453124386291356379083506866023303889880843925626358457206893465465069113240822789648547798903064860904395339026176380454285544606550996298796286674840609711671043182780943094069408866576096014501334532320455140883332085580956013008662503517313194858725821015092009476051032085332752786108879569296760198141488629293777547773362467122398194601808692940110646183710719502084440133013669623786016584947761014887105782627125729929942037344097941872786927473702821865036217791683874913539170191859808293735672459565796003796307868165197058420302550126968346669688000110275942460707629258309669522578224262896722484056066857119922524248960362082453146915642295816391979238582963169392630918070601137419169714929653005820728505460481932230642412890595323310430271511695304916372825371307269657793654713864777300217783119889868869188677427268640635018875197992355907981920167221939270968907263918958166087258243077420370886365277899253073325378898538779727264706173613911419272477581201718242930524921458046873145872986462598497692699836500277338062685246099142015490125610581922383883619804985226214209958193841900792859879090613696422422060848772242919778384571889416620837066107850730512930527389489582491371741254201728936418522154753687756032925743612099145543998120252272220252107582908475154186207749129404815485732409357367071238693038508251947699221332248602473407416726542718793788639814843397991638593450801172546362153331273913306880994370162814923271629176687232346365592273549387008562334332907259280939591434421706990592384482104702938585059920519398436386300972630597775777106949382513951195118191449546337760205747650002319543048315870427415014839271725490286498646917223178197223877988181125500607397884762143028317763139583921260606550348825097124121557684673899053001878946967205470586460153014018031613947359724137856301185035427054209028345565652448947468955692839722561629181230049668998214855034247756830365977756642039249349779371736924081571023874393950260787730833695804955800337545265597165879004671464438476816276305474912115466365517408908507280669919573466903257548677287481384437742231315797883190949492455130463187372193789980495099296952795228245871761200095960826556506786706942973597713590049567630590610574538004841608162738902211728297256674134794149582445949665278518013645166785989145258328318007486864562674862948307954941388836848370115097443460706923206845119740733425485639120033551488769809669270467629210299926165417745969619427251280066681597588291328347800386246481995418397215592241056102598992828739829291286432800670148433641224713454944757337644163343308344407217554766826393851531623168717127069291083879650814731517245737263475757574068415932833927957919546302648932322193519662568303007276998102047899926174798957809333609562290041477242335257852664491694970623113344627838019796990354457929648151421237597515821331975307323158303267808736970152380678973563093008459871412177194280020952751560248040596658896592995227236471233199006474318908179501742269351930531957517568104319148987435870033460435201534929315997415237345445877276979132193108283101948762605229469898855243307497934551257727728101172322027396519930151685353271111841599361103465585712557212600782458023915348886004723475838325238337825589177612241118397817598621226298307299781048125442146170169596489334739572110740230201686658291127650445160728732469291911472893121052271833861531884102973975098515855919275990752032796356676910924163081196260281188871496859402128266579380524550660980022846993355481527437223381235733461149016756720472244638169627294515234674078527798380783780184551338483376585348832438866676377773483107093911431818805967054294413087810287656204507389674881115309949150221567925286389583982829671798481686406399988037556432501254617136085968179400347848473469879773257305829865386292186732515711685327550286915414540051052586219738775085648765059120241195796832799218154342700879266070584329597312137481829145418916850995007768408330329676265351358489881193653377827925893492849114317473036428596540127380973855618745615572772912011821314484937615551724747016366976113039335635320317091214669434368940947036980079846886450504372429857944972890600437449591548608874794599850560641466261135111750394427489139493908022992502107862813933914254316981344405661854675679752561453353834336551109619125091605323035724536261185262859117263531861910935161943645341086521841908936000813335592979220045036070083729207234121648005013104524363026077765946561264960074947886171567579356561413496468350192209104318530017908990200510073779231060038861749382089690697775505427319424858655347249865112161116931587154734634255792946652522603394215585807957530180458279149594330965174745478137224340356456091097191127007817177503024101824109769427409863039556341682981707637552077161650346061784327335674973007736759701698404670741236797378508748249835973975856111623725652960464564956748320194027016881980906467488625211286912023008813688766802202041773741854727128660686793565357298554752499096802973786864893802943530201407424940985685959670778991277438581212391497803343740872263374551426813142889744370144318714097768397421496485036082616843110163382285018138998554003568050525654895728104181434961936842892153015639508587514768427638688702685572123189606366514323028971357446783128746380203065269569134245589114272267299368591964835538373645792236442880838984060798873886236361435989386171245207963752238743152951070526334060118680012450810552577063160078585733095159462891720518668382786034702328934496568581096744506623513254459815750413622711018738021609446077557536390112705203745265305099492449236080428967969210489153916054909915424270367303326962227582869539993090254594443434970621695156593579327270647418641548753444905717335089690804766358486141338477188208633025498307488654381147699514797342282347515734957088863465673084691435922156200376383272821442956744607678441818146795547429286078562704837583780794249576790731204781317010827150455675651065341728839079610273630460537733377538010915443833479375733156080565620423328161405147251387055985148218128334322740878498709714176907564602486409197935589140694243241544724580005029785009724711549787966284135527843768221387865087394884589491743328097088036065866708258052421070799412259865601461262667056393795922581241500685937149395462285380802536046735460386055774977167963056218126625102440345314448698042476384524519659503873834344788996276893492347815685651140971805699725098699533135287499561564372507082983436522085100518422813911619481595993594982967777368697278384910862119265597929045606639034540176449878503526550074909631711229125481433854248446551206197292996953583199703676974186988738727184202376426861091181473010845066976859903659558804755353619416714561623062388380561557172129394182364574866940642277945388052257246167412619482534289603011904228757336066094473797081233807880067297662484776517340797345770107228322571379675324027528042631677661460878154504247574498247641012915249411001258179338493642319155894732253440485448756669291059501491504555027908938059784266726869123471544040668483263180936996653180771509243038384987401184642775654222201280400094731418700236115899563800443480265039914085356909335521879234019859673836798589400267927470192083107744743541120514314439266795467574320830293436427649238417525151165544611951768963989884992219331427398825796793110907779619290270823025600147874154784087718520041546925066803139295521752439085195542496209216982084890689534012964748944194535886593054824496412339277213912479484379828788949187007250284883160293471767720424106500847599904187501558682354100977256460085310575888469619449430766065182423415988786738549179040257607213582156891612663890855130812618992109683207946697130118575581263103132513097384823178522925091758715784378892876811524424561868926539093763856280536129022272753046572954743660733847780953727007378506946012362051595332700691789403303510248054105727539180804594199241967775336934592327404779459486614036454080178689207951482061466937995769281664262232449041754847536555315499597911152475279021853286300653738612350151700576453640336870024614535634587951301282426204112405043666672742233951917659441350907533256469071229995307281470169992916381957010395608978109588758247684992170911069477200037625547611474087399179578481692194467291289744213171940970888631225271084476072321647149126964385264860051380675080728677649174086400927909168925025964934727409027072619812764907143438251408285741436824132378826002913368199785299372211201302245840444990422123442178752605436874087924036169647721712308441759802769814652532198398478998805730337196593959677979853737817030033164621511686748025475565946327623244777956018703421355770737536910520524313389948812923714869278433008051185530561161610533161855919585723854212289100647004987899707355057067595442666942353834163165102815694284775396952555024713289447626021066106597802431457033535002317701793005088020446010586190422253319827142858205002923507735059121650080199244311735742543202099822068698357970440032794744337750787509634745995306162071038421731063159232823637414211281789367876585555624853249510684601342761917264546248319613344821424140597688690133399126389097384677899935516028220872429466725537753196986114552181510005409410875488746570141182554689531992210433575326213267960138062538945515892940147162757600628382018760307539266799346255084504953299062312424989991312992727125545264784312125110881722179032455156679751590591264003701155317044258817315058913262550441111366669107126116475271671346597526661444063209264670521804216536500934365748797726345909221021417453917176843250311257305475274130607396808847332526457100469085380060178149681161151081074423198131287504285411131260620084937275594013651580412719653122944867757156109576307827883458239515331359768431350380317349699298806160895537054432316738622819325257038908338518853062655589213901140364182659968367454677081418570492855746341376637865924209636370357346499535337870655641887942268180546322856723565349048409227380818844348223840625155785149977263224535921999241804328100708047181660746479103191560514723771330155525305146395051280483681464053467733586826937307245837641298987847752961917596126438925882331172813219769129435213388214921687817480616960219994107178762716305770018368006273361678888234278343966289809120132206270118992896419358306196646582755349566691922364274917295524150949015417231403505523485432268720309112080554026058841532639019629251035031047587287048262187952003785674815781994441600388231361038724934172559640562683218381483312206178456310301247161481867284763784753675797222922252209489817290318826781503409989173958810051540310798836340396014837809212518057080284908493130753651717610179132474060053489276876749155693865794590554846518278822965972584234969556937117209115857455146341464662625487800820236632547047164840416751383262513154297950172907737398376922987268276161667873714654335679853158995863984681170956782384078872382009081781908970014153822314934866608894165336328086555105875338131246371964947791652087349692814876129132596852545766561858090374582365942800269742504235091416220481152404055100274574647693693793624600820588983810066031996364383498734175366909269021005605768764160396914284002294089263736800725015121292385904355180682368405593237745138973201561154093595940191554420886368252968458266230225867188885351582441720278725254125077598503833866165319946130440384317439901986143439231257446438246402426720443624231837233575018045204527753977186841038212001868426294379526898216702594509547834673211573430582246626366320202386003554684543140440072985863499176601322375040087662308907957629527017133066996114168454734159962603948033410076294583343834424966098477182117143100982045799348351853454725138037540392071342089184892171736008789424012017219323138572088990579512907669342898695828025944150267102556278083514033118848413909745847724162668413928656344943381620437001561415281414795948063688861148495700548392874447480364441880821147768672820598447817056721714297510660747371788285174713104079390645432350035191404040571373933022144003898762427354248700203077637254559754520577885429456178938213366443414009119304888330841610856901829712874465770951964411666268990085864040627133796237796477101173961276468037995150136052838421882933747969631096631734923451776078933582423170254059138867528063957429268747989411496047231161792648596271867949533433038905843071749072738341360998591045184072344249854044920554454813038748386952528231745921007540453182915617696306835049238987429989483700684916296954396882879287150159760442072903180586023842657000049911974362122767633165094707758930747643839949991573478461280812947614620026789434208825383989916878023004394022062429254386411916441891942772143938528217222633005957171396486964191335014105858809312101123796655272610501808523351793367964853356952147774440529541011374785154433817398727111576101736691775850453721283705971712241247786522407174534492510681648233237408953704354102912229365351162862638705976186592176121060992640416978861476634863309858668926289047638392015449291161875674381173927758198278928544652963065515461409659029150224013868159763265379633565236539121793367457235056061139484444875334901587649081984098487033868526430308807051726815121783892496598081754979199320271348798659919582163438986441494010314416228841709051171641501428321963651505729663499575070587203243691674380869458714090968980332405412446554156285884372115694242648852637865766873492886415891256019639118913432089330012613719134696402607050197077483607058656722473292106187982963892505725054699965636550660267476447965789580922105962583289225909880971755159554005921053380335691067156778939834567899756334178780565688141152344920411122756545556046796904152018763429063571555324025039780187253665272466970112567122740614934823188730498709169438001643908834827993981641599693558329999101895763954813464844565665056362057921437475104360526371803599405644819240774018366588696138820701635780309760928618527461655723027525704348415792337397163666365788342805169927454996866328630737618258107143420456863742554611020898093174376575650318836810550132030693505910803283407136835277823260089589821454726101183349577576325464918845354711735405731528082165433165010943657538582813878495478397169209722715705625160767094581398847679113428471777759668605826908428301788418155382627894420096725392505641338223329004879856543568880479223972894286463125847056752759820345191386251228893411152025580168558945865516574789432966937492982453019022693578743319583872729483696576239924858444000063704879068940568368004010406634404768507101400624208980000571832996777452136352619769400059655213001464773049489134736861899005230354208777612503434484835578605772631119529233812143972003975162045811384373032905433131490854665930041205466302525587060260429471874470121269660642705560163932791648849941958344979181099927960564696454768185912945571143693202389908848598696478089708591465223665357674166841912211115753785566500527216828782046240084375480185076510699664931098332703837452501917636524392931146810698820207045681895553484059169880895089711369319421566509677471582318532727747220459299083055038215177162179915754723057488459596043861573407978144967565520968524174098655655727801593905650163221363635312752113196537316933772948700050266989169281832757767529260419107820788253032114827553994335483724896601525798130870544696100389857596211706070191582868635582102259459128117835047195189095464685512899411191370427233874190844818693252834749701262655102694165686496414149270944776280709528509187291352200694603813014889117060297910024974608429815663681268179552607783155862054648013308277851011481796849041867313677306458377680876273559187869513100013759073399122172592032098079298886039801263595654547348388071250670306469497274720561401145212126451820406616967628995749170867222237128469216686229793992804267670335391949578352518941767858540884825508039621347076980493008767532663193203059529816729057860161875658365989617549682212161102619378607904505317347303030510548756689312668038364287680095697096350186358588393123393640318574822836025687671757159196504582896246547457741653833786128188367878312696372128618639868872339585772666324804563148847093105234569995747470091565851336980861546873450324764677352225612944625756760012649371495975430680145136308775618062098455578227648878944050811757991245675804822806098303145706133944206630841207297054562702622547284220504270659876271809988811734673774787926526097552635422216856444000369654058373648915722991901611719580125683750663862861257833241923673011103136862311427405699429319441019978596186651950231503873043533867567460422792899797802868537068927013717943579574332104429107032217014754957257406887522728502958587728364146952616221887938329296905201652374096020524301080591701681256355385452542816072866516865836463872343901772480386040024259219407161604621106859734771037983293514100749862605366723885826669912173121232813544458795251864567231092288965449968635538313014110142416001287004370705584330281628898217190172287593262021919928403322542980802981769048237312505295083581084850365467134861967059941832696819273554629577761983191965397046504444306829795988965302770439754080513019747445538009402267713714644975656175472774777025091028053563268911586763351093986137313378346370050687071095503908006932842175527347528470842284954079418583760407125206493663195062734281456781521997706684687767713142196303680043924749858655384366361750094435436877208935230696138858285459833544964078248704890585593387953903535534174740230372812367969668343495611761352046782091469346163103720101843890689259237462246739275216520958348620730521373967868779056673558339081104901769735451668363491187268393516062024500000268067908820588168083380609827320039648911343838894362403998942256438109058363021988642656161817827647059297255761680197290466163814107224484018961990486031960603684848521030648958574678634100768412750136085774704670172441667037413602274016112936300898927233724957785781718591344004053895361403378379185396944189801527130139501745743349923766807143222337523709612558548629875156960315839359893627493824512342450323685683363205273633808165932243240782974896354534369675857844495153400663309030586480579420855067551930558836031759411902695642796969284112790233850955541823099020152103485318490678073503308539275497398543842223415591394761930337875514727688007541939668855436783684915381863868605962236587485391071593897884922460035462320699503320153713461451154943877698219588828294115030887831834659079077844194731654570795047661151449714085119485678130036409969291710068799687293891058866295403246983703053812407293910354255216670924770139766372170525477589473422713439730411643247348256710974469660307895843963269980878113088709874014345313697838160199577721682750174976531889550824173686062286552389940422649847977087778426628941972267203040420726429617645810631041379625722919972725984653498234296442466764329611847763022725005883556105295877959330987204388331870352582017971289718045290936673092187024696078576426466781779887261242854326698811204960245731393283217390684312449374407424701152109830364999778058118802521665252723759855047237234787810909420826003664272629204806875599112099712358130410558016720285312943487285725193961212252370890634861145619473857511383246534824361503750541785868689842222167086735896530765505817158247269742407348572428366640650126570416279543510442143192695167697473009725295064650848622697420154647742866023700201305733104269925692985073493719309553715523258545256371472591210998486353355746962096420131966562439605861163378759291763316976968163776059055359790879105458427946165366904503933789525061811445044108174373417753950443492426899038730179683597591957959980852010465012093771961906180290808183720246616417447515543450188269883363304997859147953741390066121080850456189830668735863546546678064733866124280378029968972196165973764928351429588658577134795725137103381278992196735594969931325507428811973912403106640139628633942290750842819905848710926705566757156880510986976556815119642889335370189187987258341385018157140349355868707924262420616244207285230476426270567827560652303964965998027073510903904632346182240765528729450481008707201782529258900138034663455336842752641195205049394312731254456404591835441441056072265810770630566383758176166838999975543217086780554822131644376923067434337958210687701609929303401318397585961498349432641668114553785692300628466931518268747514322101593045581022867921125168771292699746834525628373877007107466649591265750170401556426013688812939084034247526261863429850368450531831800018872675863927628193301971538311156940709535506988152953999946827500577766728943077977855117971647388456697061221464088021614822320361426242875182097090842944647709440594384177956171614049522247393996850120757549344476039281473371572217156229381650180583087385051541077250062457838920749964436739002144808597601933287765949133375528222222834836429146026368931894512641400191045035305273558210765314048714419375440654706833870412696380331437845778749422585552912948074639076384059158494047756553465271467172103290827178088505215468358333078324293436966627316486457232895746550547051950600956250088055514298124703614403600677269913323303213946899215731807798516871090081032844509908887634018521997443123143442817452443759293502805660948418947200748190790401841246651500346243787803456868681260313819472382913994577483587396300949215407209116777266350191934410490461857221848831048458659939506303736875409745461004721555445690735302616211050553533348819443852094301937413847644015852343596324752599055130745352837365140855150775230098617838745621669038722756094509744593988534873508884900892220666208025309406047076988110817237632478858690242339826343714068813437443890263446213541720396480475055896657691089766570432073753331578792786781274003411820441313648543434740333111862634478492067230947940973752283411180040842892318841512841937510233186749072584543740951058829198358334517340933032018922892702435184423658627836642332480821187605709575763671880096466563488431295939873714994307822142368092177460250116102413609574917426420356560542415481478878241986537481218035074268532498666575805602433639246635379640208754340106473901747397004123074595911473975420797243407646940724026828813172742282467844930110937224990190824563092176030484994324703219330450190219600318360402889778291481320035669751433438744124933108952503894419982860771490440580216145261814374234794644050233590265772905067096088505191702444395799048467858903694145745749454920019870639099703222523830171864986394277991049418644855504779629515613494028959069308071681406286104889557287924221258654567684770708952316136595815609622704435807176979119663206857255280260708450018107868297233159236973219842299398020430807972687313901203599328892407755727281848754229031054399180158187558297311836899154452407811566574829237153382365126157934798802819279900616848818933561067101744262873106380884058669555258790453618690162006687637694187263952506445985421317949428446971036369573109364975158702282961488489328661212394894896249192533724494417747726414718330152300600360536865415223241196627211097158862260475903755002040694306518457187603289884132864203159785347671061436954670854265590219818096348191312701086164997155520864908035305102118519979209961314314418759320426492927470002421847817734110414852861026678776449305766819431840858370460795197678673405829846277289282828094104761013705789703503691366654175869119234243117925588384672364758599023654005768423023220797399004179488245266142255691781903221102095773025210472445325165637231256668982043073944592908742414122049492278202985657166639731112023217686640508764562979423637155463743635795755237568131318215604587946520473976902880021964455641858050389288477877774367134511126274861426011304834658807966586229554680740989632165297996965261939573699311733184528310339890759282670597952712721239586214013525747999722262617586497170866681161816612305737115861387430176054569439714345003630236042980990572351466975204148663380241247280039781843830043522000560921951453530349945734633494636696982853472630990667195729220152249660941644447954001917690075545362188694160408666081021779912849248207957627702693356596689662649390717085527037753676682059071132879904679905425673730470227147444127072149473252490272733107463294083944173870380081929220759507027545484203023577066523209105931583300880644498123438379225531748062851721892840239128987252320357911440917545645624284947474134098848588357806219981152150354860038226751358403286462625764754168129313102173508211119148846840447487290128017355900333806711620711919162453593838641134269005613782362698571208736343386282929844184169776356659414770133098695459798599374124061925427670597725304609273971390846203208072928830917897617089021813331498842976499640518150983818924512400498503227875974561996910207121695351243194412790603217439479227983846556035775179304500946028411280293794206206607800489095274630094784138713433997488328336368134427371860589491681170038036054650972658845178399477035302425527731611336991953547529340529246147548597684172761235837881111747251043767547574740497440027868369091747946579006346912517592497546999926517838510028350686755581450369370955947910366532300435678157575382504907321448627464014210783427243201759215585681250374388741125986723258973318503646971977018199946010069919293946189033246294727258471298737199372529311708989938815596494501657781825361979585549330078596678761767616465001071132233042344503086618542971684212244523876101413249236378302217986509131851661037077753131042749440901122583656013932063684963649637026005382808388154579099829547389935598254861172458906723513810829181496742703390402223083653765363707656553130415923771418757907120042393630370848158274065404288185769604395192127903310100637641149403722008531633274955491524170667194699632544395455061582228617555370798605991221800637596298921830095670484295565421257922197838661833011983468421861012953286761429540436911623730965935567282482469388152714405679337433863375775910319381062868482660520907930143818057844845117742470527320505698025730506696874742994840549547631892405979674825641972519891307956495734091216504243881328011573927373462873892516610110960820514630212463301668352932973259296993678725861462483196486542275161939947939453659748584234696229491568136161692164126512304012791286595535552981430564472619341354109484830848052973490370571060965565162697800081576790631098584850440754703538126724680386490046382812039006039625049169577899417805574045103463331964241858048818019361423254367386048957982498939797418373825256577962926030534214941954205007970447508393538325108345882907464049234500993435773802880969577108507733123480125820830487640484077881965711505953285911529160067947882056257510701018440869880702260956281153201513624110152400921800073023756341204733461762853834452625271562692160438770910321507986094334331512130802271511137964741767465284797923167135589360251685852080944338577863083797321005784671249494287381760345779196315804849526284369226979765211903979683164143885077360669041105057555017069724267578802241276494119569059032734103033371398197462886667759115497229336509549142371418369506892052560294954756949522073850393039225629894848083748771956201672904040549304749288032435934565578635249753604883671205856929215487792060477793904129343938037265419123596547570178019111090775216576010235563836045986689904462490792669970587635879498219581439750079533642062379832220840914442655372342182980090353070531334524988489887284273170470294631588003896194183365828249125452631177681155527393959504135248020688316294386013573247723999417152277035264953118440345327963164918813783334036931438078954637405190709855808047595154749537921284869486241854390340553213995435011563545632805368457258939053406649069005421377439843673829346073282940808914121734700511248597098766760428538434463627365373909972668111492040072140494345415806403636706645748386516977340157388036769313705374584736278689432305077966466483992846130612344756611277665093910244648244915482866134069436868677244906341203377220600184549167790220374174377422535560313190345358848809007499599971576679889355680867504803442387174594551559080973304694001068891272230687059721149681606177012618291373964954404610139342698928520027737810694196001836078237574478668515577928559098624063158857929894049513175335167207555529065372455580667551370854463477010907506016945764586385817139286117231496098431887621612770929976271627511420805869455290762724569445974220657708168917461741854686481538646846870253964292628086039787972047850117739547713127351180448007014117691832551415042921747884159839265510666588149335746410976024344102088995019256314834501865853414845556647703630265693928907420924484664378232048382908857654084774718099423850025187445994956799834055104436284426820592696820971639676613458199671577661738340181476561257353508753068198991098339071748689253351129332587643516401742362934682159541846929978097561823843172027597387122442349122952560592262094626819238104386078222257971243886495330332020639245312354590781417026467223126828238660076706775698308800772259484242755943209166888972251325915621410577308894882957406969108955495615793130012495943443365188591300471433137930502447472955157356411355476214617748466972631324229722026854436580913776141427834287603302353054871085352380436348316174157071868325515448904287255397056167868281459078588041877003742894082146609515755915322991542409682621044854794110748896727965372944860403436928226507548175733765110408766184438943274486370748250029002672664675032086322260579539460843328202811149720248333005711888081209468585823101881140249964223913112932601382792407487855814158898800881093929595660144586655088049218999991392804149923380993934058688900396812780121190840049748832202930214598257320447204828145297168905819755541531363404625609809068243381772218128933712303959964286109138738327011468895177475324504903378685040426593188571433380475470249052977096363276532658344182837237778001568605493185608962078073508763306653326062836365317868826196538515916986228351063858024001475641823715855090973786229845695210877763266784199952020292713814176240274567005615770503146071267540437340498522614610954831163759291061380756827314417980145933298281821885495929427186036514738251065650360089273318618062306291432957614281110388562244504848235196132125076262035405904314776440249915358610079893887048865300192608703601118505437394724725968993524558709396712784992175722671963388491138830270928413690881863864631975163261249984686062524349475447422934143858429429822588085785093350959348153389006601660585466698471657075551544963895816307516268749458590397503846047804338779342035241190849051734276597917808673310488466548285228475750646666974615140999546971650011972151487396966859913237187973475531187447647824289428054351593098408359194449668804915600597048565059616748593031903766349106325959792148273798259367638676675418361204025661308403603728600248445072056747675711612245355708007641692584318050763303425638476873500034225218715114259874726612073431349761233709387930274346991362524388769906218742204308825395366053787777759230773766388135372648029526939899217037083712415299987781086540708790738122750250981100040858430099216849233939602400085963040157731229847830511245835592511137830589430361909059340920496251758734287781810742965267467119055578485326144451268469474178410280444256341764916044291119987018135254880887200478992817968765591042536866523442836219613324607643802713542615652611544371820936586019063277140732273973805391600595060497600321680067203220032219233880188549121126863948598825087212256317140206618417342191250854787731239069640570944963420360304128745902983114543210139275256127574672693531377379094316332589316293258624768878633067094837900683414224001408400002621638083647046548649138326987143103998538415406593363968659077756430509820189095053451643643455362358574148141313603720209490156635715233223991939363429401442899685833531202825868213798445833244407437024836736816442207588236849097462403511816774836768851615225701850877795583503551097324636901837498775462945783200308803313466359771813445022570423565654875636467338389321359730731064442331437637308687015044849648581256155704269471531922366127214646242739027966993634490948849797890777031085164820073758447078799899089169644022535310865630755914665804686443610767180084976674720621636744197951433918595603232898619862731785738519950308644359203973699786884402401514209941163549289812043203294675714634599258152663462340212205200203964703425311323058236702045916030492457904214697796441071972711901595951336840754835931727262380852670964943170537182311246634411117321913083368634710707812467270528970578251175349295769377521884734754602639202960950262916199641606143781137921585747639829815448196661968872384253349851881245427399225796176865010187059019234138277112271587514970549551140963678446146793321777505352954387953537080188235501790273481811765596351339175682890411788436616216448065210505993459435849099840519746219654434366436338853727795621608938141111708844197225582683924995548396017681453984095874032236430793758063524757583250903340348806225173779503574463119215594434962799329692987356153711139034449392593621408889826943979201709616476255754018176483372080511159595651135733533743240407334803856639136964955365640355855205429707812653573202484821263493018346186090118092068193911890735734368122676864159937386896609622568452755154679427715811821981845716568326599179099334453609069627766734122901797844436513816693374390664779284253249225061555030891660119642599748309868485717475241809220367091634512464721026610540100091786909247679308322217077145410627886272505195517173812764871921322623629446504362772771292544196451981275742656828168086891693054355436868080357925396682717682784188613463041475595406082895172285859593495957586562952493490585035648800857621687947605620052366440730928022690574585168002111837142414822221397153870404238451529751352440981627972300616049734757209296527335179773158052760906660861692542596021603632732505344491415192064490460969414164816437249446071916050352460860740812918004206873619714634405888791913749045822219388275325047369780748634909551831716797388656316231821433191076133478950588495580448494110503929036898726434038450123041139641444126420045512045882673150223971257353472539470812809420189535131673941843111868670138197326064799068862015373314132800325001235441213784686537219024642581761208513824620606734238592295739150828324352686294310150815666756658577895430304624261612693783745131886463664133767632279181967012736112501912044738553829705303866571158803688594786818850547400146842273310319643108630506826825961369537009939771376602293078985815826709058822994639018443614710648614180465013672817838069449502172424700991122309300095812553517970724448958514265394887532369163940319317012713743177952413610279393350789031043911053303877032041606582749295769959595650046659329936112234875342240319363398011671508566087362717157430032866265574264330824851768100625781632638564090782055800286037612318124908762805464039811782297052751853378776290478833049521982704780118272118924194017411463845030180861418982883228723518743758403839218729749380022541342551699072553010366531064184238799135965791754738135690811878938025769912034502699280085986490820545084813050310284586003600289475424703787370825340927534474970565388338571671168164782200512701261649211159085854499716230521513893556335306016912121571286307232910745496970528846301360132146467114207098868527855903226862924447291255987670953220894491249627686003267387167544963566588424076744974677067796641189623767401826157320078477478212305470199535837859786695843687958385007877182723330820008172406228326804378299390959999656612109764032389568376040934911774522687677886114593957421561875660464431432694496574661229859926918053852427774474141755243608349258659119145353536913764333354153794519090456776053696923796398492798655309231247755322974080352697449725720138229717527023794651355367488624729568285658351005667926314183104176645499599266168484173482275498549240491905317973210091848519190615105541595529753070497010551936126146608834048017965384819554834050327852178436948138154606809634832588643114566200855191796652679808220736537116910204903955639704987025556967538717684805032815609511652710793768652831962010511679988669120371163864835373740887947315406263901278793772746439740795811402265772312165666349786252904715255039997522325873112571626101144061822367263004938464879149243992980481421273425007638128622800337666456600866301876507751562799683558995608777281179023279205709186066907297602889065323100357352907590696437567980172057509246760956827955756706740758736295461946921487753313746730102088774473370160004281688010941050991919786330909098612093740817358590580273241540527030130128632006649465991669559160216209541919759304014622166074328135643815721556208165624555789283161986332646785737039696752607970188903409616126720193063467434393691966630116190753168826151127505033136853433591406152329006746631108078205590831618505416174935465068944183616013697819125151745117337979966723696985716721735162217120748008871585467209119223108872303948501974994132254135876011896620352719806631634070744409337561738900539164777590295002296815809260730391627825147245306816740603891618556009528781279195295985655217737596753031759954279261425087494038957808903826955925089596146670113896902786710937078053215082114858831904131052364075779842122028636176996788234402648520154387963480046392732165227468084553885813252200443046293109959590717176309972626607782219118176591442585688148703161597678480280075977351434867035971477173368569316877175302816648113988074755822313876654044523075881501089395441378878034895337399238694842285798684448866518732130768269929837640177556073146894373017494107823679295338420691711951914825165458152768768717317460774394051813340013707297098766775457527639071684161473340727748384338531423365158820095452334139704262572251861381208802994409908660071444009985675813421827740990369338162665151733318785244886919713344297977073797089339609516990276282449968970823771347326696307954608747117443284172780437074911960304558925613416734906485738627670426922918681706014232151194307892202207036142500310905670510136564586123669580264952062018433208994457405630098691714088201061064569006856170132852646593179028328620587568803095821905282114038315832987455028355727194036117140296988882414427425259099948024061817904623615681521836139701245795442667878464127304238440358572077082879668776184442341529035111384463234748697285812895740965396373737188791202230344842222385718054449014444701086755248170461650312018078028750432936313571650515971867152952980009333740269933679174959721685214796069845845493822973910929279515053350265647222014723514735924322825983683203656686497205570534735916362442354407810358532305144421796749112849555227781891368251269426636115006957370745402963538510641985754610238146724994837419559145720231498496956374365058948419809536021902323076007408871018139310468620602046547590053508370466033743843757050750998549764200404130196352580428804099327832494618892444625560404173046359460204830205274527403823699875674225402843416216128767418982618653870186981740992895224321995625925186601581569541455354158477670773699052135164900161489312465350088839626594498276668952386552420037820712358480361397066410132523829956335151406702535041116154281262057759468015782035637537166583727721968075006006066547597247579308112657257073758015582428433389996570660527266662549451507140841643668047150749520447511158200644132099430493871150150370801003332050261613045797945845637828110396363448627895588878899366370649159666936971787376712024542434923090189812988365827237513674411693283549656224659539299081122742900661398885052935043968229886193204086322125697009231058365507125696605369213920249278104789235903717152506223913675044801472937578379690524151957752616539427942551801950415498865621838920593056067486708568725861352020936870992188218912395584727181478654595665477144409713591963552049319804624413602614325577403037399960264009582767715999757989233147092335428159591000678185659523332967437574777552414380697534347985932053355429879922241801898226812978537454898472566001823019841750216589125117157879941536121579681346825907504866039527604275947633644409698066334416544904434777248639507395596389946663845056538843336839117117309657415382730437449594115887391550177548444595388748418890175959677767417844457185997528548743570924723460563782922376674800516355651406892246947649037842783836684438469231377016624708953645663562127523675615085631475990300116938188539976344221266343911269423440889389806645332400688296919916244359340588244025486004568864692624493938218389299260129751909738693494947110688668795145438923295128307223260812771430458964881994096210854561225893994931393953257292588190863642148722075894903580346691226763758237029768358350311907863078184234755870215382060792758519515467733987680048420030268498696834273612253420282621875204814936457710654709034359182846458188968909897660209242976439097802207820423481840550385854955235421877182236700171348651611607374414445823147265460013700705833552126485701143725059096145483963995155826739220282089516660125551517719374637042112720081993304852592904175600933834137799364784187231056512258898605761289839009221585721503306945304886511520603235539535235623790001856623700214982881364514540717577201780193077012837679100425493805069951667930143512697076364878806462046515886715043477395209841754723661084822614425009078563351646896950253869696185899338072587153780820004875204396814139950598431788616888491738926584506047907301110635044984766400733571532166701435612456716754384851995034839667599010387573261217477080083866635815432797334251444223088197800510896311396524086995611696771300722300444882185772345971485942699908017430918130812147773351109809729455653518253944455197489380727276385438761809323821524718783770548809153358193784747002916401917461036648277820188486071441337918353183339494453447715570411839587085915794597665383773199021372640547856342716145836577127028882585731559324180964384312413745954396621884929499814221770047052314030823202149262032347498474525116776121989463129745566271542005101525759804665216752546191036420387700021349410323509516973673272091962372935735843193127139369501030509232953632641649513483994503457186824305985233339572270812293198684085552285614428260330978170999464946102802788223299133690342078919551437897633083286675197150844752735961678179212518875868304041304090032318187880071126877701681212423717159342721492707162831574638469374359292043693000202433687880862232502092825474899854893539628166757994563121461027753562608627304906303375800626099767140392184583574288575034263213230548572112769691994948835002153691370939609406187696959355974924915933425192991037838747709088079762142090733321945963430628430349474355567097601443308925574256936598743501430807977043500277178878996660835332685141157586025865733665260827171375186150794826770912341707111395581656373834342343679890994183971185588115439230243403645508751397279105370726156227131930128714245564619111200436054489737127851951656062173257440834457872488688818691444168310638154339906285719828736572049298478220254437766124715876692193264377480387837998341196854938981629823692201533297425817301368100168575714537527981845132775342149415845546914711699484929734313259652119251806341468472643986806199131262048752346749459578697483771239460922091412656701329491578989685066290184922142654837751444585907339888698661083845309470101087570126320417432795301884644902731854960407716548134810616146382821066099508837118930368436233700369082289983034483457713876505434405719371442383558183769767685519599689518142886367230502484359331168674227776748740368829114222945186894253151297358314633710113230446456152620641787853026171221947490937156026541722879564187797960859607427199208535640154524228559839557694505322475546777149523056888664868591185640560169088228299304966230638856535782423738130376999228039428721427377862689371281177288181083445279627005576997407641324124226468673368945499976597576029864807778097788508673461191045325526239181128563116439005576312465300007518763228130599759913005074516465730176176107608306171328372517487182607671840376842421334843241327046263128249186144255716991618871617670219241974145770033129128296830303631494418169228519663149146624056536557641000713282261569455228159308137248303402164295797871903381998866076095802580094913755701432928912842187339318742027320790457684527585757032309106954614482702365759541400896020711221480967942905787674674580932282914278792962420009796901818010758621752210752046750340583935565121254255519265723258305794351476726817688301983511279937295250492615092103447655273235060951354246970039412584748221555543384740742760870873315903040661270064099903135634633070039545656935889852573937701804333163901229016660297629816243901113142880971168820356070495599610838324497039759092205875113140303362034190522390277327039117135826610159540910465547005270964486023241031256848082782221859974580611426102454176025482634721781940728696509961942827122721695014160927098006986914205823741023262414253928131092797625951109607749977461520567436814330764618015290372609932011585298252620170954218326978304125938374880996149023608721605126119593570283392976413266525914751864936330078138333086002151472303745472519329773592700913042278884641536820730606466287308123839935349262067007305387663334698456397889463547419655769916927131789354613747502620110626945624937572279674759879581387579234366857449477063694131082461161100487786791086161967574991219415453584288213434381050141879852541508167069040577314278506639063081096939948254295748198342878401292955098424106273581698980271979772211848746688701798806453804318154740272199954316989970086095393618650644697429091856943868150118669581965978101709061085893455223772883902684516832159343833202171937412119336117605926326935485205247992380215299999088072781589694629529373464224917596696945256729727731140130999578685353875442050504035474474893769681166774591281362529260681582953532288905333892641068107043789242263287955924660207051933118230460549087519940208540940603420187353482993785308766360201384509208816166127325879525498122650978037497981837591391739428861112701815187229664421248509138524552398285266780248801386462875418185208686991607256633517085379558834929482470316039706575845469867578216279347081481037322866237585848839935689811783768437344304892082270549199849906938161614976969728082451666467151527296562327910162767627019219331384331240480281338870018685326077286862035197495778941964933785169422538786860311725203220200791515690262295950298788977731326057821179995707190228599656657107349072426589348696876832191429329240396381811970241972889969370077168202993684087548472107163277505638361416348736251204328733827320729020138421333759175818363283934553368114378355651273921823790322797701173372696305855319875204727922626581538478565212517928700809539815627807282589279871965948434172555889624914800456466954097352447513963187838274635690362285429436179216310282615775672075900568352730736103941079212635065976372353560209701833254360574042777886787055601501447801641518896000224840327530722889859751309397653611061333780046252871166321456426136616467019163177188774565590244311899058428031511305830081376786327487066404303306356475012342205464021822221130954053452206222344507824052478427783600426966806046614323057343777031562065185825602748433426209733156855666991264125018503589921419649468657036455058345440448932963113145417904561525797074564921003097945346489527908529910099482876729739431740674020177428678610152635667108943642478481747853238746802493453892650597568926411097758294529651273511112602257218041779280027408946075707168581419047851188790366387159158774156037550265174767765697824078308057741083064980427067965782184487747410540469979145328637422732630146661785955425640849544218935640601190552825057555232908477663442656544014365558908579304031290524369549683742134570857932177645158375858882127463998904497563814284908921702351237154778834718464780095520801527739647704350095621772203158712286680729825160391606257610350059988388688945741287129434529042837851279941238609860434221214889235005022425467683495764592470976003127295303764064038911190801596601945237866373210733542492681661368437819352668926891772823415184364081005454476262511791284552473717933420358110455855249768400434562860529962057613564051695061493297514340438765520927436059240302849865404447522264703289256315888354067015372108888741996427989940818633263170532763378573713286263332055252844715980503292250897680310312341740678258342038231720956307954065029472602280069649970447168584710208248530686815005193379206384176322083020792199229388100236744829513291994600435644986752527176579613965212139412920369651207745019453636742823887494939909499615665277523299741091839735466143383672732154076873113737188262678977383109386497661166854747430221850197133423364669002783126130536851043647817329705821353178673254688383968596703804546859425990028801237457420650238590238969852036272312155371368593348435626683883882147678523245133437847472807767452492483571217935492932560893380547000557150033306868055061973920720321811355630496736474998101194238286950594440201279696660528279794417027974851019072230510045695378949028108954721934344639042421751725225581394123654288649949013483262569319985808787200661780622500651870385226842595335418593114279329756915827092785931347472645267075179979222001817871351472383131224218354469035484218612699590617254067635772206961687986752752905710570586352129882835391923546291046325419376274992190523700868146499768655261678773407948377885506337958147448885574630664698265950440236874276706258874046842431283230058454844262683024942451659859516048575530926206204714026323561828771339760435680394167291920900410030816593679847821723647398277912818136336531367954634661216487346794201201977588914218244885978982374173709749995867498825132891752864362166967214103107901062102111630422008926293627344120953319898442317711190059643607962169808845005777642557252599716030572869304478719726671959889842721170140974762167112967739575460464765056703147425716830297655402884747806518584356531971530358348183750603648164212543952691359899928457550740605049845119715775009763937513894233494407784292889832498796029604320516725707726712254005511184184553281907136517960532612202556544742183766406571010961758932401626941100470615680049491190491843577296632751995274181902579047025028902061812255271317175410835627486446034621286789022703307783510553532217898656584886136697776502475155698040635711436387890674860040155052152791396130549478894494624445677727409595564503253637990363706485404548669002495680301723443323494675131654862930043105545311616575011086315461745405628617941632855633956502773805686461911862665750865407003841913035298271479262386402261317773392517349129670423516449902750085615855879077796057534809486912902261687445535815912687983122700789194126334243998653264136288323950970575821451875402916486297273286782158520980395508744571527350322781398811107903557436381275842330189987697142204939894167529012816860339413130928669046620568065916413869185600944497101172703932448379358043102229822106822723540947173175714265963158669082561328060913997720123950051559180709883221999765043027268434377439073699081616300287485816396426148418385371500395228307565969520448749184595692160574430868258608771729057486278168822940254794728984265425476643666504719987492780261581158060386264911806234888621135386778028190713548519875697368711521038834835233111944134259707942365379618290164398134663608684041400259884772562018041750866684759216785178868340016055421418998926856838503976784778605518294431395749968992312184956422742346493774554845215960985826751087605798804554342301534367736081062103354298402039610718673465760113313256768155001751591060765258115832698118848973890520941885209446787039022322110941927257023028754162726341008970268400274582596069185381005801587304386615726893265394833636188801240030529321489867568583427241823062881120493825905840690086750547332045352084480286648893786358182691483455971904294773438461696379955134638379795833636504541101403104306711810194501993563483231394056951324801824150174009929677901308593244828753530755149452528726446097369075774898333944728813126868479302763758929908223594831487766656779429706504638033718903823621002438620310146292304749724512864362955048166839465638084393263100272437949139572354869848144443622118496450891429451082747928906513480064133624575692950493164842237254493801564230848934247731143828952041564976681297039526644720585637483474255184578770964465201583261098006108473754965064722802452790454392210306364297667632345144324271086427044581766373193156073381989719737921673577039254449642106924253590556553504146039525521020646754289656118105491064921554661013162358270104545172301340495428425177367557222429415089665969028498722881046143282412360442374606370054024474087739241380863635554928149220195337515942147726147596796230012655166317849170669278064214676125598708910268451682007779079126806477441331860505197423581913105664735919599740856142514547058055240856573674971590396558663844802340639367918246977156126448379681080925695546305276576510743542882731913615739040188703092937624204515651876587841605870369568654317958022266352464098920960023893829880143859628061973223337234433698119347937820814342554229764592598915290347542720179625147714587852490449341762840532765554209917465889591543996613688578744313667739583282682473129751985975525489552410376426375799847445864573163911353104014116867169139292520508227144240989436898670605347182249783634618422497590210140560911042341858685049601951170323423979181643503906950828680631659209976176325243816504026689958233388521414691742357348571164054876493897635666191171319114339238822981889755162472717578271087473822550044915942935124336443563463551257279081598246559787519611323828089472945659330160475158456362194090407105888263729918588416642302582384340219297189550005537646908721145434500000223795134387983236609963824723096171850766500088736025657575100276036340111584485250842473279976216846567667265495037234309934037742571690338361296908724429035808344599360329806526305876854992363450060315177435513344621968669962439068357192934510063107312984420521277719245027274440407348127665778544566810850970668716889526187898317540910213981891888674622434504005168919111265702479676381921922331031648610733905473292475950963924001286522855556090874309392387568549498296383950355788087540633909188380077398614991286689434486854806994079759989042433620226564799489209693944838429487012294565647335156943115959060153620707038531801141555607176772303784723975677873183070929607804858139599467524811659422830629879196234291502226734794294844261008016625457587178079336058619002284844455222217014797650493406890102442566217125451066486109949698336619241096915565056708283826746492069517696679657934962103231488837749805021102295771067369399302258665389263761764771648061219028572018814778195490949123565212329774071187604387184047808822489123995335049365397280847526474000754746386441660603492947143860806998919759269420795378992361186979604658701676558007505871832066184419721619216390197088574588870956581559714351117866168696395895433094860716668364189173567813319792528982806064433671887422944636870920696302412137193104138513731335216536953427498446567195021731026994381229347009773531128637372722993087521355862386992526563308433686726493049167377698570915440469424857484606107000752579912829808296864620512667517686722122991018593396942743963213464367058746285434510441229649864053371738658448174143101917003044828635869990718043074498036125063604694027730070424972311510976483058749595505657762736893619326863909985231452110916667249245058556696948424259239386810934648669104149874667368145149098592904368132693401025772198034334614376238840336266460752867734658050295993479889719160391530755416003769386041611306366822264500060517426463734332422678727029649731454362562161262326400068274958689129257998912923104855454889020084298796378856154224778992550983326659873973144337716384068355052529210532142329870525021608329536246950027057112632264340194235496435538503451605895600609647658659998048146608908041212570684721912009739286365443228899353383622189558246503045582553602359336899578185929684703926668563582958844305198828948383866906594322202027053532674269331168399320788465659663746832228209963230144020267655573045057411623372464134693785303956763531440160590392733028713058516141803979320932099645571451442537801975076739540216956728627198381375721090805922054853004484334201772831212123973681732044044844236779659382277753855125696284846122327548981720179120705594455886284602583749127866771362447265278461678663174604380692109424571811775466774978296102025408027268978813816733874614407444755949543974496415397028512454326675848594997664986540482554996720697621575546655344875237381781334903767853931555136805546904561799448719150700988309860250302920039434491499643521589518316761439898805238845953286028563953318908235061866643093371266710641257154179461491270938296714576084228918889825719703570661645538617935768069085260771638563740797462331182345223268884589733747783783712253415880111955534233313175974907466006515888732394395289593465865073300303621012726221016269291460418733043492693253116592411118870973330247380468418312647730483354824398373594236315762367248752702792264372092124866146844030871472663886316127910049965619669697421747889379228570729793542886110420372583898358270930549061302648881572892009584407153849795720860531238296469701816594477614303716819586832052941761098102515447026453064762348209153784062283167366529679677638473514610454325609681452153326737311449930890377003526762971786176737147244990572553183391569005252812412834906830011055842622226149210661224435738900541903934294382992149493179526410898140816352392549198676758335797148639263039720770496793614432847634902284681527830184743068677110188846035075250187882425912110135989076287948363447675557953148894557167214855491984325373565922733606735112435939370107346401640301870061776863477090697188207217085007772483915217745430621986029536658497301610385903796636283802400760947516975231697836867299749271522724223358476162156728621338194821220653491575058294070506869049852217745994253775327621419807871450742953865574369662701079943105779771471215945571658132875329594846678742032289300191505450962168074801033252316893202047024429657727529051085593519922934551393787507011361053754417297572641544482811803848216351873138826393626825990004322673924780112112760398665877861864528805515598953126026584709883621978220868695866492603089637758412206846659142848897641941990530587111148486914165736715791881383926540573053772347235974413127871541531973935764703554545448976935804275265362340168563056087771061918050721516920586561472007321349493601873081542842627094917260661552246558530263035571693968323475253224662022036341270455768526069187990767279953059015763208583559501877697330292111168523019723975325887683904762559483461209489432812351532851550424185398027296299517363851128612906916706091492939371615310736835751613057550218138193261116705160715916809201067887543301334847980546531612505044841339216499817498992756067537972027921401734704041614874910939466802984706901382408591846983459634789178012042832379898019829802154279249044001567746792327411447641655074981669421220303832152639130646373940193778230505622824802461737281416974467861024376036834968470753337053210193004362822347674006530915322022453668794672262124998644353348890853427407791842422702491425047051052270070618959070095559565369511747377261886067971280567498832882785916034091366967400022053014386839097363541972149831427291158367419614304120874353050052193691418006218849980503153629730337747665033312296366760582262945143947880824042571089546560301044031438724512048606713152854672220735991554261000260190243646498716716913157269208796448332152192270890659097571300676877273418912714890156035310094826825196393850102559547491503306519889413812201476011765063916041067375434679089548635409011508296007342035445737705200297721401389772634402718050714669361293801712223821918053644586643196466452022391675226171474299603751345581456213222895615879038781462289817274429185841127678587047284267469549512727885042001948145853799415248252493963063167018777245849086449414247325507465745261443788418175004306932924354401992396184779606934941178031132224694803894408740996537004753758755561362653515573427132311939841890357049975585140299393400808991798057404524603558301322520968889657869209601941564460173378330940392177336218133249536789144238578434858348161380483676119304319717844384050125133203911653529052025240621726605257609682257135971352581860598106079389792230020342183452158836653471641631732717233726809853081291662485639929949995871898359491715908492032129131791872493395626601383076436296416067817622510225080217371434836110061021328817684262328371265995399423050515558832992072383681480337529161589652884622101359113092092797170068606452661048614248083690368296721689605983716464668962355907139361104671277313451101180431072967701564732523403954296633533464159583840529687975533203207198950019979114508708306540122758093786001436929630465978709472967266586025310079809989203188096610537666979612740970939180551917117681682796601173213534025113311389699663221838080759123681353618468477723843582505382267102751275727629722562350937484701252894297961539007372916856514588589442096292282664618860759748705389575234531621485790404138132342488892267450248370692857072567318575089724347610408190587284543302483518710967766318036795608751830286877742300221073674319330891578849336025937599089585547541337165505113372630805500519447744515277372297749301517312158366138022954073399936623641289962274218140471374839942071437023208576139203465906446543758625847703867004738118823853786328011729633388279716366529132356960178602389818462124814639532767435799216840507649905893257974262331297827600857719965293464945442539572164326319160542496283378245632893517529263431542296268508980567230182006060222386680088614596276293494550466126287393722205038534039866015225358293683412696199087051624371584806429814228497221926526353489933066722938157131056168775118839011272630190631370162690132006857299485435211099367635347638871880921506529792854396211307873594399935255398251726305593467426753245870429345949653498879505471009515028592186681347064217507738952637352269605882855751397260326198283693889558554265177291113222474001324191360214687835586936828738862379774542706403626653021343948788437577553089892409970256264972088008683501312582619576837392929615563510533815701467891545468352740786356844767180906027990618525604715190641075897058117768878983730842377452367892501374160222673976045276857864877120391784131504140116544940533854076531116175176415375976768407394098176994556120775104898830080901250289728162170471024841119571638815642860503521953431033321648273088495530903693328574892746529447621467274409117256344498457384769339367516336510115882237671674561069849608925393349090324009228496778153392166131594644711903390211682371174144874657713284461995096980947726247776697277589878742542937740760800182274080830528381819475500858121598712107347836392667577194497314795959842182706498717896437212744054669414214527594131136620556028366617747811979654527544552925648974751980895020395803164840647526196385347934780895796447454489448534045345524244221037029945472217863130462802292846503661329126503685694258357634350028293612526684906043946134159825059489675264694126253572200926011132582996907311737174330307443303746719209217190707692789026087666951315472946449587414802530689520706657252495413410806819128436818726126332262240520542589265652156911861019083135196852882310445727408944885278468106098955983813807981967389460360838525621453591732230404976527701796409241307878742486474217986744730952742630832038110551431975567517649824168037447820183054590968993858224557581448455561219399521985023644381197090557374673395032025425727831054880299636236184555200612694878140123547571848816535993596759766063227485998353356702501867075293934883395535355810137304390987927810307628015910214114849959444195253821999953016087845230015008963111649034364773314712944787615066745128084045584101572225463393812775486755243359084800590043591157603874814584550381399567260312688416800269104819651116637235332345849659147798488413514548028343735315881079763444839121838062516602381164821068177719680849615987087581623472803962123231582801463285272654778080581401101133935437047133354242148516401009164707399292587105381833022624586511472303354579178874683580943901726824032922500990257837359349808186892403529513267292208345031965538775889988143574795676067484934456904464700168048218565666730029777949269104105065267635934735034609580670768378766495279949177598721203547049077977855777545777792721549290434691557855973400183778690899326488822414329596321969169950217497379397615776386331183051898626632336440713472430391211515362682007771190726348196174126420303608412774726807286060128963646994350038194401889217690948203045152523763184539601735166498115058166358278062058368145453094661114888654401022018566442597178760964432420579288571436818964649065658856527928940766234353949564303593486580841923010443990014379191475234115674860117600651534125812010509517388685342083484990873985961069718676704027061823066038070150715882286890189447164388702821289189883354183291976047889882582942721384838865341261091121379208114461319568282395403978116288120983926447941334323334620011891317229900109658000369337785671155497397694408709938769482026199233181000069200743183390233999209502817117763380765452299187656156823304871954866156548383290845104341304197979583518749897135728330590447842341680204077791390740246502290591210830429801309486375922149710204843379597747788426424464457144448020719303636776146523500322385270520865876311303520965524145241328872737846451102201840058356306316105567994477333717847096158360065746468903969811609780997616269567593909924229890400036404528841028172648911527603993989594500032370399062578655863345588062567239446488750022940831384728315474962160217084930964020535564337824706732451365336497454318355747484484516316822875168820436639740190842147268892961517493722941163123012031922999510448997304130020914132936646272636354958649468152014197452561297393832234161911480233217434694785672177244072033736113018419426188083622533882089593263521971150890238075840761355448117308668369151859599451522630050779736959160487924695853750594914654784281180449118560140962223048432379971238933977007522796854275718209572758637172019162660158946175492650000451796921798907876318702407337723033174547247166780657147352475312245939087830841557513642981636826026474587327626797924002878232595742574131388376810910711243959734609833456873197696840834141378154518143550696975939158899482050058219376003765079593415848199054411475233039549495054709166345704371268110925300078904814645411595544629501643346976837797061187524491992964986189214705042967210577999479535344938497760907351838813527212399878566274262094768614081488557012383889147926909540660337479116091665782948710611344192311964005085914802380286267891600416383299642305647711811011703155762038774725474973769087515257259886663576507901800364205940055128581431890317654291798710898353365273972775843225512574511211088259325204966750934221001024213769382077638476925100303971481594283365380442769911142665638130048980074036128286141459558889759163736590425979305791423894136285430139434070527400972274381133878857658839427683631583845899752309983159658179618699474351527981549954918999451670226137072735689210377450080085697711331204185314384961011332857030067201009824682114716235531441819021453207773850230653891042220417392639985245694292157102494327203426195568516160881094938861954380714688925164959117319273782642685709771568983244003818940998685531086129630458773041916833405520327128836595853189980272835784844086891660523669980767858536286490623300110989717248271501415563136651520311787143383225523011311157880727388434838685491148503620317435840685799059785895946630366549515238109849183835158525596525150043201292847868532684069107571543155229419146673126711000154512574039790413306925315151576045727504457386559180191204427799196724376529800729643564705976309618653649373655370814790540906719284494727911768162589595428340320533812715967497393042006658069599564313776512422376516403165936798449176838526237922103646660603609418916805333754671385025385436915172683700155882712654801317777889357692946191803952806190427490716413708548131688078723967726872190753987828961900406383889069238115066426846116965041657496219677681288851172634070317379121544673198560773449920474413471187255441204918962554487787909963643677736385341364781519267199781104569209780487636852930752850460210282551784318560045599531283763422631644453408372668660910767397547529156523226696616253486135698859206997174044593167508602375917621119407098725868240774924918164562247047081422615066407423026901821687042042025586479765363325375476837776277055289559519514736653693728558523380067125969239742757277623255173110660342537808118671133589032101656245398806339922754703363973395137154271199423782085699708301414508597447286990870311665128240472880559218947014023920668059019826432270957793958664598061899639440456777110868513720532332333596624922142616582305467809313723046560083541979390107878655376865612410508876057048126032119935455998845137581128542841349694205729328606680429004189887868592517024941302184310260119568333732029509927470611378877421067412948596640259517543754284901687031078337113610954136527975349696368220236200065620930545055971235403403388212516933226692120974944258689289346419881747982904084362705720009890338764035804590872000764851115862723662025703550459976322918840503882576860907927758835134111102183122995917375420210428830288449767426290137494634117425959006724579552497429600572689218785197912688302102981653633896621236036805405279232591481792762426953233483161118008001123638474958635741760612383179125181017840654358972861007773741680519123800458608176446679626381501615939535661270987054422977930875691833601418508422508598620735336762723216206571748977772085480908401734365744260551120229084751610843795842780559862202541369841756510109022142991267979184970520861256700907026866679774428084784066368448419346365097661838792667246589961139849262539015874513663491941120159013041151743530817714933259796588303474762791796451497280272151500919022334953125760987010808754967653678326324060677470899965534585679468357903697353669024435274181310037249516370924187835194016672893102503146393690165004755972333425824284591261849020322325044954952515886178556978593509739290218680612350489788789561823870069241888512738717475849619439383277475039865353248570189355613111147800519558484828346545586163911443326647908353715365274212629353675233959216148579720390999110659939731169754031090524025944368675876226695410647693411728669367494628369642394612355321351014256276100348814512567466626125569757490728629552945299948486651079244283264633182021893560768099902577568458354488551104958542365369558498632752384949390313497865577109717106770492870754364533190727659942218156657490117288959181259067505670015259210352986788957013926099731514028721224034653843255405560238507528040519434920832964575868471465067340488977591932286365320310088507584370541308899462734969893484775779616791139398768488780474222751337676435334299511473023266934335027362083234153172235983929306741350631652021385637085770892904297608059648984688906310546293290401201439551123137719826391697366960974447614042191655048790363455260502701968613860533383344516895799647247785968407316649051632502240581483078056468830407504011088139429446383707075765462760133069623696351902051320833720111307676472054180309187761460339108930154614054174245605342505596459627770019481063193308196570907427448447387431232884348643936209590212244483932136120008432433885616300604211036315627172056713500732538754488816011649970962362936874206390071894569672985275899319171052419570527807824335790085153174351691870483877142960996067620303717276362793992803457522802721013819521145503205929237848225987928387865593953360958199213818246785295162254010904772222011726429628856439844526792207094515670579976040007050226497917992040005269818958620513127135490310639322874704091563305228688742358764054079622037101423490934017084962575749246963645747993700284546685286213318824406867662569255338837585932335501259271824741855706312623937367192624049910189075859099677623942576394920704774381472136691616031904302267884300516953713679558363738621233638175124716871983414704892808522575105638818412245518136159066349764343082100008890322768229903820445737716854038485155033778814143629839894193176095409492286911713798830292508373886657539751004854159016071804256004589574960828468553205441155081315384809962201547763396796539814843092545935546897429283512934780288324846031856877846882845103054012057979425562958961459586334485132753022398021953128842851377556484719399648764163692183442035200900783966648854799376227041591957479016727325373107415459643755032828180364181129263412688512392814715063627298889748943105562861588311628306640512628185916548255026248261181531623913452053334854605406704428641108824001214793698296121284253032782128975140390199759185509385160010652806326327910382579598707788687551041162429752913499279652480563522988567661152233528215068097790843009769437552775771848901255778746688694915221906934714115465011763593948045431391444402298768412678603644148970925770275912017162421212681778341742702479175407796889771187471303859885945169494197062865351507707407224895644967058498090223054405929824925144716208275298795676820666055592784426320684648961572202849059540777981371608727540731661870306499583343020093569659620172804457992530522752776224185733812130862911099325480282948049663854924929880082342316800829908210295072907784821392039427465262385557486846133685193798818034082150489392618627961993509375418125676321794653512562527253609426539669513937693903347067936069099485705027117990197647025266391622589395963510600052059771934120219808734122010867087437497177488323519350147711016348872681170077504415182016372078919092717147214173775698644741214675262188594287408803463088337417268560002829606373853764939589136901416133063775629125056968577635852305999678742096048425072870069179901740990179883455042749142358156319767766801204747917349108508627909680272612299244509641898688836272305483819829621464361506357517752075304644988244727679316556250731790901223655368151896759708845344995004828702740721339023948297725138670135924276238538614336997052887634414914196687745629886287936865074297314954795180329992178718943331105919356625283396246797965575590127688685042731264974486266949175047502139804979990254248491313138164599129133077406031611198082348179758424109916486279857223072517637473352218601311237815019033343753299966535575548203401657303690611497441075892264712288597404527301827990494443644042891859998440297372765735736670080517273943270070207274281257113475792604298837251869855793163548983757626039232314922444992329595786813338545809452787251611569696923628550998036356578362937425908719330101965712010046612908163132851906270312977180284002694699903743733286324818016640291321539846285920270918022706721192489953033952584857880978190891950300754668727128915159604306499177258047386483080683980215414488811904279750937463452130526682594476674685988878323335582846785295933908116190101658611800806625332355143726909649355581622214126724860606979384989766114236179401273365696723274281031968926546759612018820983169529578913113681836185914517412664149376922092646761990949307662076946145717055336937451472251520335963684994266906989907377669493282086655186724797087503805551792147420584506066661636328839219388361568381061223305662469907697766678309614437924007792168189092691387899383623668640056917129903386904137352835502587635873717105699381854415140636489268469863051745824821116922233038698443392644261547076653334747770241870221182922360393407999708890674768483119549220494515487175258592116500499388151065748619463773798763480149696933305192186503216347586682353079931193323273179555752711045634302290235382527288637493286430847891946353554283962838640070031363799004907681999746331126207510309469778705529637980887657654981631740067492517784734907682619535962714368288129701925064482667014595887335173305085768694458627432411081569657410588810797575600113779876612623474358451375424389184156467403914367579974734751072910351771962266796459185923550092976852046651245174596370493820316543331753971229727139284537356982962093142496585064612570438108387624324710382531612153861604471344096048559687327085812444802772850028528440910599017509565029619741703232850865677283993912610533397075514380427481745280248721523734061281454357909414828401783527055284080684299037539409206917315190385358189919213242749838137473513296621054007589021000794902836895018067143679044072097834280173892532433990766291350047750022614962169971145789979502333690132934707342267901309587269716730061635262173599346817996544333707059597715288321569586323057308165609660115308892468012114552200322592297767229281673545160867532106624436200633474841423590189750680876692681688838131176027758991978760067977244483487998240435198405486848967365340754502730963339734775257623277539742506242425107183326461409869754362175278397785152370838902551744905848324129433795998155954661756295390533197645768145446439138614743801149581084444581887508736691941657834606121571748397341701098461914758940404836519805406120083343291186589992455404409584759914235812971738977537476152966823912323335366777030802939962486112850413887174171266839227340457594941273587731158258935306670798621400628601238237018591522626875741727588929402239600643030410909613832290562818358950665950520340317616075844120576735467265821844987465603939249160319083882653221625211735655135859245634552804535092050132740250152769421145645615222429620736534463371359013520699314266419195081573155891955406216545717067689580782426293537807932803868635650384663426572491747209234494459740407102035139282805261259924815057737763048710799123333917151800394937627952647957892023943674024269005966865268294806789812924074816523339086412259084164915742532472182624302938182669056730290743234752682019229233131595951835982195185736931326582613885169007639919710814252630861901096547077452740947072582082282052853972176654609859360637611818968454001254561315368493132143983735378910957313551109499384939358421695418268597132919471807047814631613246390543496816828393860761282704242424853047679893831040794883545015147803590972814351182036788010627791163108936480592099601091601707862094431800825179817710097126733263060129717596073412964179947441490185945225468095005060430636558202700728505053154168375804203191834538921726042598923277126604335872790872018725597319255037544617590184654135827139961315244058286571107832362930516270303484509992264190412072515206300917618308972727767635416140237257160596416955031078322631478039548239016100813998047905748258012728583665921445618711845215193356819228783849454776230759522951400489043590903262000509922255511377224787197572127801583255576928639869449276418251685964879661619568645920605589074219438836435763721222492334128286254092664092536543505631212243134281419481390675176734796877058999988707828843815422200542919906572571580214325965749114349438683909308077701083142150699006487412744599849044631012299025476785216295214506930570914265965310042386970961336437665775595172008228459609101466919001421727333932922922446645624641259182104803011696483409846943667601899354268559110281500517272843172896677793004433761636180699590645182616142988027431096020211898916891595445042818236169492095874194071826629717895095959170218781130173570213327475700837925666007565850314008878177778318369398323514964333473104014629837340199750288841821748711672308122073672500584697881054944931895414098047674195126295693057862365925206777594144912054577967912904076363292709675627778730400486606579977603935817937087772561534198166845235581883958821825847743624316728435793865001056764329651242963165010158167068814658663400770655480165524292126986676980379397510137942021974961678695783862643030370312284502120443694406524860420914951161854131407995793263194692951226069320595747352123654191824480735066747893873162191892619327076676279094231143719726596934853018823344258010056651595385935693365190706829759142460781265458239029571446220938298241772842740516174612693326671967007813990890744882568388943246277786933995341720580284726549169643253157490141221690875696056329018374175519468818688354264932616518590217808724323703830808422277488248972535456039933434935432532732972687543435379427230279483363279665201124034097951278467828421979944476255938489761066285778194158846429023821920260756294780808289223420615249834605835472394876662542958649638822232155238360896719694859875722240879552251802076301422960583249057214793181134819270365561596137692099473759496229116957240348517536235746176225519265219777486014765514513209832209778583775910921827138304636802763284933899291406413655034207436357462759908218228621678272671210603686295873494217699154136118916681524713668385749632524100974611524366751210246459548735979072946287804886316184970094300466204859433099235819416835562150445995856263389536213583187625456831111335037958824681843268376817994242960818697241652724887355797283342895656494806272816023866825937482999779495374968071249457460397846364097713181885520682843011943486024847906999055454112635424442315583217389887683957200075571868418610550526124516033716628026185991328956801405726868618735906802749299319426785214403524069943019514205587354952905980235376447894716933459534611261388466061231705191431863608406982049021255969453788266354226852288571292341228970832895920344598113790766968276049076213080439859869727783560270377942481111694532847057468628840851969623128310090113823369348106915374821862535661079786495637323539647920595768293040763705447388333837260646679703841334877907013148040280767061144657330540502557710833689844379941103746386640563642324880823115635613790391264985243451340641757802281621340970266966612729885848667118380108408566000627954963503442064254460726546566151971298449774601331201949491214705812771646531587686585916608382428727938476980172711333242768831457334386778572172315738784552898079782816758751867571284967841888111892463432984476551274348594323900394129799199239657125970390862065649656683444907406878804775768685398576833752403379879326042881158040071404941571106658766998750809528808325041636388718904447931949644107439881273187613970214956541258798805433667992428850158913959003070501593800413614507185876707823978195470297789997647891874309424988893536078047912195875895576040521063349216962074421198970666412940234527036775284703014381361170961875067413888733740283304678191070246153294661520399212252118127597164207904524441866862280339628759253716945743357898815830061655532465583014729186551504276723196046160752886565083348253154775358254711710127042898774411993317415313582900218079905782753992165513777191580729540373776647043055177610611763816330781000167147030176236308112858697813619606708927543750450774731730737421876742668832749805273624990885210919924103050358085465183326986937836197947217437880718686763696028898772252857850818227989446339094128822417243203584361174073133220480968078353499644791925712395842856327197949209900128638311051416529131326127382626348258680934818380639954845002270558485376740554636345159947912791982982226284039553121920775766625291344374803158684366592324905069432569593504895314036526167851734362777502608986089973139680732503629507933960476151420274445570321964796989199547631571849092221763199391922930630020499963549214450311490471837076540447923493185267638668665978306864261101671653945709050679707892604315052229139572618072108956016696825940828543262638112449624621661462295018290370326793977823479306758570705609057531539628636948412974499365086194378033989549660476930575980894954642355854948525182871926738336430525625151598361790964377917083767518253764438141138367776276779622644826675181733108334355960227187988888850390177962658461530567533839297603570140006755768705880472346118085032595657576990664516912128573655004860410038031248214462375154531347658090881502500380889445049130237294910154340790393366263337466518282935385943535490979384126883920636298632882825077353430050422708226647051806044970469680772176868286351853178763151329700022580210771338188753588203168502633007239594629764773230859008501187892610345780407728983472744940485746841115108332046681776175996851953308457731334480853468522646265430350906437128320785228553759538866655796410566370973772042754545263226712847933768328956727078115828852640272591332130241408502022577133932939844141353034024340235346056631460905695979131388730181264971284699550004150494514716071578698843389170454393265562427840224672428457238899114676488963580872032222864161011975219497920833476527852436472242278590111950298134346532282791938471123250064857816570255645969227877417050949899340086120717232703253135058442205672838478594428016914073932756199449595427728203286254935210442798114453341899953645545767975679124571694965631974311178033049991427318654457081847048744524743122770892009461643702061972373207579453630919469810392145938316606616790423454508728575527139202604424878379606338956295185195914805019746531736790500184699197485169250780795003312779421025488884575250260138895594330399782710637368754326514862152937800458660175613450486239275149075333288252610117132679619622000191468980705286217669774388525578957902880404941557120012951518764262876878203787713699296463415551173732705928561948812031291162513876531505205056487137350836420669770499447955795745364276647246531181194694315186593660670178465783297084738104650924376324228440401643435535199215858938286578595737054173411202025206519717965613139349356108549800525171051669868311056179425825186023200069287593584411522911567908456171722262717137987146357597981657153039206971112128224732211393316795929148065455506206350477830133865337748875302322236847047872715179271924278124671448707866943589672041226261950517742398682578562448912609091810568864193361800909684025234369354266755767754274730780766047809712271720101877950198053328215591066904986992459230408163559623550253491175215466194473490255563384136071587425237654481397670964382320769061144017415973717282539309582828700954805208991728146053784218857779280788001311910375973780989152049430018917621595195684716986203205030754494605764286586871500505257787622995162101250155672266302713414431464116240108131877587287919349063929952885455388145372778281182499184729995944865333258735606311730487091057567403247589253151820073217419525628280918854834828997509549402965488476472767705586500313486947335556815799043089047359695357791252060891621274790627239996749062788620407546684784581915292484630888504374953263485023465530207351728104972295909042162934427105962575484642009352659097612838173710951041310497821741166834151199326554737751114192333297810941941652543331136993796503252910273378168574503351179812370286284402919662233577648852191184370889000260245192487658967799867553624192223523242756533459107194518130035914770175737916645341254311915874344953283825501788078249737192444432512533216058153147296626694246071411845843683971205437980405267470221636300392301365634403188285950235162433699266724513123545507247455698952034772637208949837994827872779384400411735283781418757691850267343884004350279150733894428908484506782893895657970224955920971653381671834325535947655522818381924060676166948133452022540358461408973698133207868941654401618508716789729922140300089990538249713083162344338141792921745979655284967997387600209145902865109400822690910466225475730445537271915374244986781454144180754009559427581277877474459588522476398866655984707584248984629417518660306538516168144779379527021188652168634120453365088446061618199057063600097227509242586501641527646005150025289545058795014888909792077658472075223283356476832983014343988672548252638504466264265836364518593679393193796371292808319816798665379565535125285039108916194503820710263902432694845322605321712001753894842917016937765847002214141770238433351325257053655628134264353412301026135638788695364171869513936512658282951443106337673441637127012044747570188575147492756316324059927313114199511901299046987118501635465584932716477233228044027961161842451939231456891839496924877804140562648587046776672971550061856484151222337175342209167303253193252856251047134172578616485728275962163305063656817542834198892078349240668433510725904771899002813856069438093272965885048212578322977074734722402126217449263391417524818241493959738576982725043091087583657181929950009134411354993900091149967870064997395806762263895394345979380342554826439980494785190025909942087214864138166385613852737467770371525865382024253733746731888894526579471890963183638000572235125098700277947260619632334972671469345800176546906606826720012476768987941155084602401653853142813941430492710881566824288356513163235423156991288903482849167825666151640179703649677553139533059368246035994775461395812690533170336524884167951471221111084194987093176569226199686142328806263602686064669174635096779559863052658661394185054318935186364986355091463863355794574111297807986383402276339927180780431851822439293246062321038186803723528413405849831569570958937130797472040702946639858196809879879029653521610049492137539172029515521515149018182556484861489290648228049855321517672268973827509646075500388219871962111949420856215442953926306883399058914043719777226257076953395069588305932067918913344617299470011708344917597930745285923535730316791605539495630840699682357949276315204028619783497575947074427021616060812758357652913741904407479340628359769041203586423399935680462228625474643966302883338781261281536059624606064511996196153268314007936727240470306375657012244697603849694933286940196193172077354562073385789916545116793464229237094818175954835843403018239776530001637460512982643944165722897533910283514947404555631754064394481735263504331189658623796018153910804589565587279581176698292310996870904959143872543490257133713262929447061626151605530328423534128762509895834477089350750761628555647687291514277617042300921170852677831559483629121932871119639958103915164383711558868622284403885835826256610151904462477210855150519854853420376865743167449062042526293816911196834765585650398602822300385784399794547811216434518801903639442990955440660308279479800701327578798791472289799303232730420382311164102620746308612038885020651638738457982385573978097549710737438096173004572122542573164287330499323813169846039096513764398415790469455837567839409760329134878040228984941138782168876831094047680021068708584468851082919205289573532854482872348834657696200415979113289246583199474196460064892415873833882498260218796915418969385443410778283562308424135159254456197374382035134694314271896587391480361356791284962552440366920168909910033198050397741893328769896470446083627315227085385626090767037021382186686329858345138357790001123516905376879765176976678928490979767619763572604268026758772626932142581764976472204606408219872988354295979675594272922632553101892923224257279690858469138622608963651764031457361251129683171519882577263920657620136247842552174156075399656671677188996519804984188609851943676694348239086084536676477775148544165467328214116470005045897305822602601998453409644823326582322167249228957836286387561834542868095156152417107037067482132693078611979908430069187760937538107065662688953217607345952030292891701579993355908318440213733049715030151049363020608592467851383888874464520779220389576320920402086077107062486457421111062508487350755173914540962566033780287815377239053769820288794042424302220082108642874355998341005282127528204429000282268223748130028309571067259234459611059204140113420205014523345287924710105383944400282980545692213711153549553622651756389113236725111038205457728049415056316852233184483547965995646364570374439764008521263874495155841270823485213255212319899407707919454699808670064617491045567081182473720474845672968165589201805281155294984992304448548779863066077515977761116106372235335858358120068010672487926881663705913777722522247052730980826061076840887327581375637134743200215697421489149529089468461369969186582893298567352261503881080252937642600598400821889799607956948659075445405874282951796341520410173741135798370907982513817460256487285110414891386087679891173201570977460135054596110491069985193604355885063544416213425772041651581373515245720185361218076927673878901914317642551284306457889404766604618643471246554062931539314710601527517736456837268572136200114475498616497196336608049527276928503029388723759952478232999974415755706904548186182317185081931332806393106083586311596479261707431379082351760992983083667319607914638360253844569145547992324617692595288605095596374177183860105419452574073396801487593778444357651126092084153958945594529174866345230000600139232450647263860474423541514722233050312997986276009428048781772761660686750151235626061749736129288249307439539109035282070995988026399137254087698902141575245172316007155033132365531133430367453550685375722498093440527236599212227817893698515023931507394125101812506507410279609398657860899624617512893200968250539429217265929782811039641354083370223699976734257470686697943716727116584888775122719298095562094380639329572856121207813986451401075050880570023459178269250291064338587617727314424763652546308938673111810437287113569080972006573205950081419954190263242819842983297411396043660090371647732789181466323061743027719176455660671023203467435960636229816842717152404791247906133589830825518800760636084915688620390751890415704596788263676067538087878529350696523560306939007913507992318806661220545779295008872423034306079949422543774084553900997063018685408496896135886621835916954186512667219897797047623035051706182343285306313709008937014744853196957906437128555242172292100751263840558234856012451091237849564966911790451283013440397636282142380689042484837644658464078284116058570823571179384109756268428887150871108046707198197202573688777505024542835076542304927657621173700384736428362016111883350560201121434026111513445457002192653749842788612600191448064026844100773545010977996001389259850322810745149478360510047842428071170880886282457844280271567337296585547002450655153858363293595940464909314704097986722496783912213746016716177931730799338445498629834266633013916986442061947050848268022686512497616446585662912422569658671580395367613911388869175489554051846698574583008407418591333353824830403480256204607059428845445292464116164107946783943627849322538533991073526689378382477286678271928470937833842608727476954035038722453979121555048036339351105803458517664012581552422843717396003099595433479621748892830655845113584698450205792588219159167400696669158390254134522654180409887471411904403719049616770847004131580540240275749474314824474974481648810828420232764763277277130966932473449519039701875858915600051409010840900530807252805150077955868186011644852668405395648842450885955045347376102452915109393310369427865077149463151405471075688441713789349381070336710272790112697449929961818719287745395857936871344406370971793810479981523263119927862301979307382396387321363051359579259698605054603874132553910155019978529494487924115418605713593498755642990526504329908701369704485898286702848801123603013417801476137907497858964897322610874208718387955125447937088806138719794648687497055746662349867602198709841829864123809300182222972698502974573761945026081305239324812598126807193713193974296333082816019184900743976768615287509654013143877448868680821878103202784479735521454600109796221277610908980372324636455360452424269769472932214171304940993099320530929858397410221666717417994627459252560285660411469360334182352984840503747374732846048448754366104335993348264959964908285684307607999883908737501254381439305836672572137073789164040850080673345307336312399576203490281642643515711113951150283139434679454297928137249111473668135498164493283808197468281481509257493291404199815766374623633476735697878264831502311621777427148077182243950307678142350796003864583527532735098971160960732573070516520610903443267632107886063558166974896599240339007267836537860738735385876315306482553476515424613325743911313044619775414657227827049401922691387476543620756098920156547994710394206443638942272621835710745848714098148597311879813619119181150032377387319421571533808237137805033054638528132287775692907031617093964920786943816968779049287467420689638198117905738003222591518770980340609408560260975611458185046943717113577036856134868227595077257835569755429619977561213909362248010885374807146707164135863737336169778386450432749483602132594805871299920161270404824880241947992762283768648706855313507430817299406664227494306846687598496961058813828475797285592134521455838503121721453177060399075275696907489605370315333803747274342907071006730437175168232604249309895816996430770556151535361341011904087375725241066572812748319622182101691105349441135407918496225323367388734591213584122044110338221622104140289573552045852844198538375494254043066190633413864776131864568590432014984055199455176041464580789296179432409145393618736335308069442470983186789818744632005763132613123614111401569945916227643637597364545432664930808185961230417745638690676502632654079538103818621362411992795651898535411248433716999681900021169518715335071673806766665539053557178491290793073471029403765662335817151711231782172182559875571699947799434500390675848962455498739855691903669728826221713447091361119719708670674674213685878671366057781260452558377931069675427087732970112912855843454959026718031907692426960023774392215664134163462721859824058021326774512762923897656106734717704299320695644260698993079324855276275898683379944560791115663268032240423240262798394936827839682137479306722874974713297344797513367726751008978650160849475159900002165821118214457598577231625686323803722387828210785999909465737111001387051489164302362882473065401172968527052624205809293383965819411853537681831072290563671414782221161170722191696035334255239190294458462748864423247053340415285515876320608382570252660342896872017307296474642842941736556911120842679104273194774407434277155731712760689024018831147787324609149320239153905890372264477976580341339633411806107729051837547913887287039246210914624480708480670337790739178058945568140281284248351096606629926766098726555145515855921709691612952756985535617367709381300708790829711344806706856434155661808402956073175051872368306323111995037947016068109683661467540816019198413576122055392582203098172517328777547855111677359069983908116032058950801294205029878361778282418299130814268330080610726007979133016824289287670866515533024515978145644053695564709455433922551212116707090757953842573298383489633698887659930872827723637239655161323542176044111109619361225926674571247677355929206333012836988164949643764015032819144011057717736403049558278098576983464707177055282226652686898422655619694020997108801379170717068022914061889728597204577559301811907583063656562921264796649278168479044539880290525129990954213809824654596860814371957907441136449726493642843242778178386517025983201792604690134223991379021450151855802952985704781595037286270318229979726529255987239202071895023409211880749693696072381158121420770279648021881149163687364368691962210014892688784720828741660375342867433841301000313181548753437158188047344827773362980465246575544226577561980475181401636507538330537817758011005524450061514442076263344772529714988494160182965255608012392350526224046041684405006085645952109106289174231745071270063356091701762140077753167842829898274103948532200967556697557139868348238066181934885503892641991026993552519290199768307944884879667506658862810777513324869167371133819398267754657402998135521438702512974631224246910365562947363822072185990093997580528447345999887099479173771362040054434154343861923595968809532563975520759108880810275888393118550787258789265412791189347533440110667813694368589413372785504290902816840025371710975436358883296075928397129915183400898905048525295546711882819440685528908393781064815325570910342568114073124316702258214287941925342533906813667072217560364991925271749258584843361696187642598512130696206455744949089020987916151925973592566623549573884617323673785233731694019515733407382479740204025746053223933436507875003734109382836756753745264126219256575009241121472976378024910090158889696594619524588739426694928251002395218298677648605894835877677528982286455542394509412309747145513401990962444641612291746160239866959010220551640287662718712861930386196536874764928203056741489726519847061115178597890675330680672002765796098919626830798370848454322748084619595057935202245282379249755691770539517696240213077795165704143197842599592184877493009356051831434304390495381787047834171646537616790198523815817576438983643225505604946906938092227907887851262390050887986210685486866281175912396541025866380278772725461457508518648439825437457072121911252559667286821199640403567607111646386936383432386882949462277100230022171787065722463130995114757226158804888242951488612956009513943578196425047190237649520484620681959952317754322840053796411566212153367065542034350204305088529581684756317217096885428744161208035929211511016300255674006132950863562050376457629035162927817068724183828976562584459847198559129381365176280267342010669969977552776398333334035145391689920475095024224924496429638304713761625888639822289298764956851568028071246501939613316705056190242091662255575888141721308977618143418875387830500121831081702340604055112561360745084906481635162203738589536265932844209837856953670199325299655883194797527812745677500780817361124994930594237002537934862097319141908285468594464439868257409862024433010062459310917340805881629338080880122559837088580845308525186850668338807656581382808910438075738174823604048381578148080695222960011606461949495930729115881637219357163268793486000151113494798035697393126811120834274955952365226102319047718784249052446664929563091533913152870223855081325555076483038008157864556772626257004571934836136529977326534729062777098820949071506860554854552360403978632941992873920758708978101423828527231512277514009948091771562329730791850900498127905952917985345338839253054583762786454034944822919095296260364202224634979370041257481427772248926776542898099086292925590129429071055431099296459225477323957360259346429509501406797954095015546989929649908842228295449981697295136476974585793985053544054983558567033877920103477391026069098815140334050351177403347393360488101736076833787249732499625526511216999107984581339279672735330572699128126774851899542748027686137139062608759576654305584555012803033547564441387243876247247654330189778502139758506363648960559018267750881110688732335182395077346758231965741236090877525760524046172923783244153767078822007872141079018643517938547642365628686017905313970095333421358202761982754413741565684324451315780972814202329614050840857828050595091995774836880239235820894231872430938653632730742167311359008925705083763272378234243788320108373591478160906100020016845409148254453293590452591319772677148806592291946156460990459153383145323290085957888604738015903381560654529761263944326155382632796197615923945169833534230785931767167840448178039942787031181687198171158483430907255127110123682767500677709557231816741600236521391131370592113847811844960860692471159068629257756967212694352082942791819059841993917652706192262642069415426172840525397657788342793668535911250436218868270031322602063659996059609381998540580148043544512127370577419207377422081619128397191564807703795337354265752913374888058826019706080587178780198757160936653136117802134708740514331958621968413291185924507665516618409431373990032183994112435367109899957672195727835417969716459426870535649331086665395364028059971911542982615831251781887215620528950566779247874254997279663644886126749189390896266346155373327304687427629624374573002373567006367175596895559944869412279351170005063638793457850422622160354596449895296644310071740309236110762460222507392287905211081082501607016455539800126510457365974445153287320934362670684949409229049144185983616125836901644226814046283277555336827497937806238969268106587542834840963918719490083128254246010824035972606272633987095652816023601689122579308787706612446457100550332443910743810542680944874587991376708832195704708618039848697972669732581267424323190750437497978529497934545646310252655513044994391888206809628466043705842793207649992223969553445894501516657481303076485971292398629876685444759742131420277510701525857937371212516300314664985221590420955774782981172824845361729563532337566358331216365357413554075881932658664136254685327271937235124909132314701602015935972146720417183419806217937929556480096041991125819823568964740893353336569195376337112647428415081491547699708630032490895181916597369730090492510406246787064533103453938169427498099742818308206765138654904134297133315747438527249812238649696853925958773012781181651748797660874516947000050036465027034833475796485490018597270396452946171206085873500301913068224658181285624051484152205481831623218291476466508578077336438210558930846115679883640179551150839034198022071591982011701850231104348852702788936671630087918612785438967978437428822634693442000604929477948338969015932153927459675685342247819864292428189513833705578804240596062455912950323677220086041803289841368811203009374332432476810867706099038080702281624146819832666789072463765983090762862764059447338457012118004627530281963848608393088550376669413180470857573010893996786349213828736118595634390223923518328035752018458644715444333452525623423652034857587753823875825748130170436625761909499205564582822331651422494709071312252967312881753248337413067663141448804495115840175791749523735546195805527489251938599735475953545139513829807503863795893706032738340297352691574762034413099456204507451635498192000297954141442161747731085686993209580795870587818953066928038661925311225763539974770391735649500177943228233016887413864920639764193455373055099336939537300075305664563774582203424603881831131479062031950601129839288382463868427914973664912652510248817906356463717275249173749658321994608516561055200441649560204168777458083218985571231708615617424007616619599175463831947016047895275591108497764984448728362836090772391367840962382367559158611505245283339594128904538241887903100526438901475020814703543277471575359634947883382077725956992352325706825515292908917132900729464714165010871593171848531172776150262740173262946476768358697443641427956129953700481785094832468674500135713455992238317011545603750242925024033420958440158989209224568694408433454253374024844312638266949485835957938559178357994594493686957690542645140538048884163468366623718678785298664510161464780784012406576134081010470549714275073468207695278472359667902480335066380778690523630709868168334655356316502409988177273328122352556289707669097002390346778639098007955129462464548149421803470717961083609477694938176362492700130002247709889917131971698607500963584961342524108982050877301998622289960304960907658652668047262222352092635158183561692038169006697567037806522542503724133675086717071338753469058024038041613293407897427307359369724041923431163264806384982777645112313826802482142360369658415010091530406441236626712160771537192829461131774637355544303691350186816820479654480444369048632604730077377002252288382777119217383769627219025568313195498524210303610135241964079774858123758419928034888611163452515803459319645265983178940871978824163584479115868406255480085590815877108831526497250839363227639597622979487847416714542930640494694983669578055986333730215215831414983432486332917458755803486443410907085414291377009604181806263039272761812248919394054973112016837324297460415999675700638317574898440948301814572662428909380392831787105972550902829736912608542885747071318294941726639564338572144903398346010808567509568240967517246668300878800140500321909434178541787884226237277552378698912633089082548678125858427768363632476125123489172990861972841616398720717016654683832617414771600091826883007254988119860958166179650264099358944415380292216014619838334436105924304302414174649227714949300547359372861951706592490229044926363537429827981407625616019833762396995050680175929786257935625021655400609675833041555469482236200709961539492294352796399225684313893588973613092715117693044809460137712440666697162653117739556885743551520094324080605409278449432170467103254507779934378114697601158044967111858570600441085712438824979875509924364302377701365441833501386987642393978106297409039913465302187827501487437488890159084928302930303168925862927002126671055122656669153849420444180293279624386584666356237629583421238428366496009494908460663076852902999608990266604975311030510211742856994521927737225234308561205658920111701009953476319644958332758681321548025661473783784129070120259538190009232393965222290382425828485536002246738639886064319414288768911160672907323433857905871946005222946471502557575574427501661511802967130149452948968452894287040532170780276129601477614720057668206038115833510184676852943618841806337872902325377291555761866817041558164093334595042309685445916661425526360949549734359324668911708936536108812034127310523722947102857200812856830265916216446916735946403954164612473045441023206653632749540425610459747540343616303656392845625781996739443960532708385250729919941460884401106923368454622636670563230050663192824469196312142495771423263401326428464371729409972057850916718102963690760305582619289627271739632267957533981787922383370902747115783621425705525417052981949827511171027666882672548713002227359750253088340236788670939012333767134306360644074350861043983024047039632232052498095898495471767957763786732392612906944569152407921193274814526901931439318570232421873675966634322432118279826127528320881352315570124537698702031076759537539476296791357962184596545963399053590548119101571632161862983455495173838158572669457927790538694727247105217541439255486863166603011985861326108401587825230627436110234154229151777157371438550038498756507330264521227584847506540497038256349402380598392233226652505910552659733626442013174926115279382710030326462585659199366423561790131429608331390717291229527117357703712686578897650612568412909650421808505425679317566617763594444749487027153908669071256218416083926287441956313773456137819797120112488435412732832164179183648403657437300376635320333193510468887989502334218087237506411728936068156303855924737340798839031795202602407413485722102227957981473944752979558198771135618173182311423396822935065438348257794110525634597210566548900387809840277291607492355353926482100430004918999479871221074946257610953937259017982035179244002855657464562283470277000076069311838603055478020391725444619141148484933928433965070180812927519614244730316823230246124050994854860865840510931896110004499166510100829276623917818852379367140662994311748214886676768567120648576156114147158197014391677687734139239422806089878086719080190730905021223037107385097768081440639366640332816988819852661413174467155066554572356256371573628197414124741875647442244763598592731342731287474708020232345685178019136620351020219772453441216407802241307243701957010507036401960177281897459694493613922093655044333403644328929746039666698401228929163760884001855327176193051865283803273870879600962599302819002737417903175906666068746535548322207258899806897268001837461826248632480909195240195259890067348953601137825874958469168626755166789947378798608444531519792658494994463666905345900518052583284731475404525341720659476467003237836859054403685424981307929492273799397407991556867300309214617502576822239445793849050426974248750733753218081972836927539925788369909097119048576442488726822369372467664290288379049211585502952555410519216314438572066865633921902758434636372801381308558098026046230890599042264852151492043815715684084439959904839113429793497209800368276252883652906070877219219991419036666749197242909944055990345771030103489363250420440062063818907372757018735626968914756374796839974010175363638956311719171857617452855250819108879019128253394211295635369208350582235052415137357646030192210800589237969468394137109007826390219258229446713959831713580483667198560379834998863658549254214974592828743297519058879580354107942304510916480167203490632941601063954991953700948515418968926722025463169914898459142469734674754112065247050691694502909696400400349252618528969449699119750003287204051256349925313105152233358521395665492835209003338321150737110432575928097815955315015435346635127324499038738522390545293168260653373158546786100473706694563133724429213896457577351566647342627479681879297040256840817981647001639941141851130163637643075013789024258154854124354301846041524086544482816811137839794250918819522310152571731288485494788940865871805760849928900574392771584265095383278622185274007859999780645231506916527051321278390622706894404217227040717609304319209389260492794909223705986146235194517368264899230390299625888163316158658357278559321637405258635061735485913004246907323702887832926232664629291609034120803244781700495154095936126220702600626615900630620555017227848459749145958788588749374382720181882149818586692585134427490099783192504785410019365261795693377853274016174724621782440665017492169371517479578007823138434187382413710441296877085974099483557354516957999400441972018382188908863362521054311399800235032674793934038813732845611408754004431509526193956535404963774349225842223036528883401530857808498783042788961090167147082960947260477359841548345049025823436476924799343934893934728592338040965876011329369478573925967803313238502590241972219088069186434106882157737154695681816856980167764810807071246773891900693921945880840702257063801439174742216275022444293383539683868118025956607000998455993515578601327955049396751337384991444162086738214834325566810638100824167809182914797473204807247882934829160523149217737160003413771734803633075803498283135856497009082797580126270508810860221154827953656150624398653796436899662425665428435721350572038778902590140656267483678919357271821819603555584565663597462632820698384090207719309883227354390293891216743171377376978035045850673749612279732854375437444185053642959636604191063121070040223452420987249521550926433647333289882264535655510447079700385333027181246615289882374907149730499072308176539779580203227234847012141101600688334080678086282336985846825718815443691252879506054693573292013603237556755366181144858686190768362099551382232680838765946631189477649876654482296235399607484435177466740710145213312490914518517479612383570997069964306981687301930458241723790987894615802341972094681503855365317906972575519312232121847891871138378886368971665098929903812885049121596827867943642057749415080161219419102225715306295607327716175868158970304942375046120862073807289043035625275631013592489613363050121259875220788653494944339038223146069798711932113304202930817634103159683085918345430758859889868096919452250750662846680967885424548156024114254192993002831906589689022062226427958209168528726062396950418333364095148336433981669566468096912847154564039269052810251229960118161249601870000209574644476031715426182103619202671428030939789749967818797061415835200896808651664674348810648097062930561862108438704879222320576253926186852529065736656522167676343895663708287600136806366362021072466821220756427470488866184121953418646279450491116931250938020855493943699210046819302842896893986780225547794859168276796579563952342380164610499034761281645114247153839173080879878961166955888377386188518068285355483232963435352899854356073913819216311445658128362641936636949565936224372453036736386339077728977041163823489953222162175221585521908379535312320316433300234867498463548391206644668694511964830595399014808361388874144381364273569716708252414799923183848461728677291200721961628856703613885602817119543660096856046373333479143121332084629704720791329387134507011293713042477700259231718738451598219389384980457886564351189377911450680981605812224123848999035644411103101550718464590809375814055336407662189366052706558869207953480208587934258351450865536140509644423143192677022097401960957355140056608265211263406039267255783419491466807880802163935966252030245667497037012066575068361791733661337708779296004888001309551617367137899985130079249891110117951465120025436067006997475827688458466538276098202857668816374325268083558500975838583231733327273366823469917027669676505466420913317337969532733877918020709671865417828436675112005413235749881745530613555584094106550118033396313335830406525075973261420807957627923165566238245548225207244077583623447751309653307274420999238080999971875032612462236942172535755416930439408300469956415695748862435305532419051665613544168902075968812110224668200623078414608957780411748368124237419291637359713236017160964984620585731100388482016653245156079825638709411097118864239153310707748316201093892222177850387617078671553042402007618826798756075785861342988480348860630761019294239977308510801836833864798836129376793558143208850945715030648023341269617297829344089759168541555260597478834995320021438795320458329107978774067059222350027830283052937545990440836080514662665212481626684591508865222414759088637726882064719809912739049702751155256616290208159525054495410203054276210824729551803292073813933989544133204765226022762294251814647712973446042493063527560224438939873363621169540043679119912726881846837206277536869898580031684537968977375127026782363969412020775556755559456065380094054128818243964166619828137549681374551373961594412591902169150438928548369947198471740786660488873238951096789088291346249555217433782045087680292378403954859164020103424641428545890730599160583562265377191556603691593527152392657595343275903388290577397858802809621953394665642105412123334981375132976327131779611479841452538818594787985376811798776219640195949024773837389095800292677139537582207237863198680361152411021496384630401056642969010820452601497566410500390324023714392895194768951551921079167273945745093182356639599719963488080610787262982141767227392801346798005762843067002403939024250943275803518785326032969056307756043417438746739537020303270466670490216587736639164617310333470086785468370936417408161620999262902615492353152538288793587453364620715429188302414268839976712093540204787883831940789881194218444135292640971525974640101097247636502641416632635192120040144579177389497471274575172387555788455397525690980668214094131530097997565681417225665488826893345742123770988201537157481344379327162384085776705356577750772366442032218617838787404482753175028589630329792080744264992268887551366196965946210666781441785020539220563525623113528396063582557560281511924828143627769415841539659580882474386029045439728582545985608177770019116072284495195334016372124190600786498153549482128454756095612349794260238810096955810990351751606868019767683874295899070772923488596981482775545531759430235004758490319124763018170937053582218856149720391770994203535655290809045549073411077360516680313154213257739859811006496909323772650308099131217561238187567014521533725458696381175778713233916259493584467263593616999506562543846707562501307987556525373470480447348791223057352650715746209133164370203905408897120094540186090961037813047337371134526341829433727694500072098744076196565520070787730041834390750672862963364008849981023968545444871039740503318217250449961097848098728081738000166078271944226454215649549131705814820347808000796046930507353216849194110320486517290262390864864957253140138254338105489994790965164581785271648138459111276396361694769205070562552498055258677586354423722814043210910018138284779648704154349048007613530019062094853586331947714037200659124398772580628425524303284968565022690193797107069165542137777211306167220207429930985693825827895468216577522483806914740039761829431530780217498149934405958246783286675690153392492426136262607711213867186132775890591743023888064486705101781034295631906822830712706881084515095214408774487184376111871802191508543415792947956591950453396677696174111600836641363730875366577664645893995616254785729459069689717487005840436827838140336853492075327717808038865897488514805316731150661626813806513416120454515529181098097385227706923884876044399886038836218081347217745995295973142795472605737446854790574280053946502427809295586525308665689154804436508873421591530137966258275416361370692819627900959260357898917421016657128343700218691385714967122129329434559537949374993736318020665214125269831722761124951823459401167166656743413156213618410312114006275527134534117061567144582809847083364031419471456712416252575558734353015565414156043064908936600666564037685351620744657518507114387554731345059077103692854308728218716684972886692673594514375073532931921227198938070133818735881534953358147499692191638086375594853607274861115925406262419805497489223667284555897322992505594984676778418085723728677635319491408164551559792196023983696382185710219531997500557435167850323248786687444316527540100547505875441673234475766362178020929693341879752354079332560408863271587691832514656966867518110169864641536687382613193251206545853187353337954796971883238696243568192721739590981446183462539892272707919393462809593195772579804298925192559170833062194716282982812982556544691841181389153221277690854853303490365874222875184243025220092125017370376795657545187293993529841194299578676092293154839829948757995013190488538777789225819365011926636089876359062451695447160448871611357516516525640466104358287538228585915167208467817000175452173588726291743672057375726916279375833065982827372228134352692974570119198447780635860877705741196330934915385964812147188764314685262800184922134414853246929048168824106150573436446832174499286739374085902120558772330410248324637287254075969950217205378903170622919799650779623173191856928765904730630818856971955427580865033573812181479925210641886660081231827241571113746522485934647576189296696972541295514883161540204195517587747541846539038934542286716661280852451098718631598384033573337107595960392140758131982645695642177778476878450846931973791184649183641107334203401182954550474824367333347563674109104796325624326578364552927077001268676760779828072826510576331086354429601957770795853464874231184628309550584151554680511286936332998559541433455586343498303160084660377993127024060326958617175205551872146078931758498878146257805199222098431942854106648298302221760214647470168107398533865239805982916783564280761461395841924479192798671661841425030552646456409878477633321621325627197197650477989845506618087308545381015070102551712930399407353107447485433170487351308615280439757234888207191701273858293481493952017245512311773805936884286077491846071565821767587167207450350540571961378620743176188233976331569265063166538030468421070457169923067557724004080535168917083769243128058116043221108672028305410842348916027941630931622283240817161776054320609448944482629739521548716005927403128144383095831427854042288117800093455903156423138884616685515627325933363649042995253729826973170257769499275326463503555415873711519175115772006042433736269779989220097626194721374245590949611166010836505543485225756778781207244471388850640305315849445361373150416955554732345106393143112048078886521895305268247625509475257938287985792745141226161779071056253385257415819458829332868389430145270153907539340171708612538770183926678296189496312355209299191758220795974590681263054795148733986909800322824290978244856461972937264212376209573829174886627550752406984995829649644203082318544928775057433996195841658977811055457862744692131356386353931488026887469481359548646000133600594246028527151088793456833040447689760974232302246599588536007747657661112122875468036395212354242265582314368066734093112807697976425515770598762092388163805188113137883934499712151377978955624617312475120229348228564710661607772895258544236222776391787923803267515342086538662156866324371832018322493878180141765835849166280831817382575186417647948138908634649403272911537709618725388360384113683507565600464915612757974074750992905057481456298239187383989244952009185942484300831512266452130938287703728065698977640906673457789810575022922223315066288651068301295154981816580690517575337676568801522980207922690267696438902513114162790733365608337968926023938696616957755060657057316584246624945854673395008658267043714198074676682535793948937456946213217647848109984335050887561610835349477756905273582554823611528595592510683778504240521208628676709469921866551964224850093905020656003832523389498806662555763890968113929970288610595198567049418862034621712732984565291354971512328268911214228750707265892348902039055197990807510876791277184454806215169830163194823950739937592635800517106764558906517102875700679693597919390333627258946953008288938902606541228069685840147360464404390654531342717799171782349427842159164477193367525388650618209341108252724013793128780888770220857390396286529402614268307873514791325997883662744533613315421970346013687581748379801559618293197462689783625499010461596135070693306910640688531162293021150340498983488535179160886465723095488978070138879454025414865488937497634550404661207120013747730434394677334853377378043255458375202175937170994536445565338164830778961001459235515105667392557084066310383359034631482530590273794584767925755249294042742028069853198465443311094803636800377982649780696333644932888175403595302431293219844777721876161446199847196811636689217782197249788449885239210449581902335228679177776744882298668310290134417221559544477748270621125332827127847290220625434443041422282117984569363288451733042452456739299810316650080151702426252628060204775527177115288196088846281909198950917180513978773978933820658721973746942782323102819862407524470574597265467575063619084396231489551571315647685364158724727881500412900778017078352378948306363287416929272980222822970581642157942086553605193949519470207010666148369079610358486606058309915548899130498617045274711257074755735160427282621006129263750162143359364738891283015166062957336348378401065836111499955754627016611599087083117208382602175760725524662027963158279322400339131932018448625008596040957789506065387822882368593038820806390982042367332602444768156373469027926790794684595774968243759146690185131616754389244656969178056812182919617914960683850557679577401052188739402924175776460146560806636724370526176878833162016114564787124801545894717853137333282007743601704768498626605585723005938270244882919378028190891815867395317122035300055924945498684897607651537233862257554448264940700663752432391710578189653467348226594815011985055680200885693158802437981202721354134279154057167790626967131325787418969499229235050770505943414664841154769116673968003492373966206096938503480605758692793912771675213541632597811770826667114768747897201238889389191919862809227384567685249862811521704145295278190639911101275181265995777936079857290462745291511373404737524669416480014384050204879605177400475359438100510353178119632788300029409870651316307891269445544888363574518251803452040830210245736420599185299599220891406808409988062461119607082317904167945222174760888079798258758651291979287449914431614153472126430571907952095868515347051939519292126297574915361455979229098933885073594006434368639701904846702285665569277352786684445413588002391872160230978110499307978800816596139198520910004231647147270539659130462827093592481887480041984781432985440930087844742394266903595645755702738462602747326842850103315077360030245948269012895898461193854325231807358544492933871056620186159548049160745285478248004193325090799520675188308644822584127021653123037228734891749119593952571199249726796744476948354931727565434438244808114989777724514053755720915343675296118938393262245484757272358506662254816431496805577647543312523017052735601341246005734914465749409822294363804879414053175420641313837498745400246298082985517617404523470376157777414364052737426394110219471733710027759946014842146047416192713830357580315901690139908050885342531772037137900306598176666062330785607134716232435115456234860022042118413907774229737352255631520135688973634555571937777928174782102076952849368676921507650136363821695491654581348006914011235109747901416117252819545231280586208303592964380395967994370177033063169465366557710321320047686037455145960724426372880131839754436706060797419877476000905519468509138145471944168181363515598308874248838372002495331194970581180511698399519751936574591722025105245883451351223430300971275082598749959089835546112291593909062413931668479180949580894838225301756427424171552284851841608850852856923766459762740638486360009203243076295432277272415979015790703936805059127584958901982178869915876294155209279206883051466213694729475345554620888707128172836937772837966543140906598238145449573529994513695906713894177994425283244809287218112077174273267307997233150807740218419048605959067507511766267869154403127266504491377602238387852142653848383414523275439421755937340348247000533796745516923031036839905152189675317217918410231150372150056314502826924730843221516105689176513345371851212402923128546159566628408772582999342491526306510945727814268102434910114334428845977404765010945232752670457576847628399020549156333438481270720231576576221448657463062918436098595132079518741163576452599908804937768184528378623330925915663900761912081706163374037957584328604066335071027371200299799637328649523234698908506572566823118461125699449835730165761299772463878943411072793722116165399174660456840888539790745055270865008279909524484233610624441844561501265673321819176750031809887621878557702075321209184731971022812457253995494521297779526766001272382360217467861816627238621287443771032312920090139274703337544891177017361886235588295975875273164453757147553110679644492804418207708747140045394800623812224358498773539916570818674195772626435219679394809044036953465150511262906686902619371810151971689938903281503182824165293611758318829946585474500242198333581720763074442396300376867990939724533710270527181446404352727526232264832706109152725921819808161947786325822534458791067613821952745460343987626284530041641381534767891175231598305041989954601707236375626628084806356934569339282709520583576225282953324677331752756561330912669079187226874060329991548729863403969356275415446001675094058198995946066199385369768792302494331618054902800559681199415117083491678035768508830069624458059733258559539487410638528119167491533378068747133371683649891870945312079552651295816433014666891842880066334617576372561536568259626858779795206264133992723810906388143542728640744931449344675048611247666931969856350707176966906240985275137810292130772949873776230168412354193533222891301003228585607450144358171928139502096975079498221394622615771306749453760411072111917817533480266685369070322502525798711319588653311487406329670071856288578031958558478984275083192393035632620605110139500856835095009924831252554171409019092685432223975776520295463219661809905312835386887723192450102002723144999773478971437189248736184309562554790070296397297495372133628985512319577126658784544310912868094283638600945367994207425503117757432020345542657819720935191577151335172144945665679054536237656041299231605904398826906466188831254591382832035686786630326602706082394231129187006483269862002386269989821988488485545826243091966419533674149051807376070621789684577442153022487981328454877040993309451999270487522294085964047507120716052052262772831232243366254272993749892247001977201798887266205883821774324347589412796642434451273938795297947248936381001960661154846041047590659163943325271521843442768094448338652910500018688508822844542660303755212413700104069852541104909510081938723600186112392252958529899858840204300934766888961038198000536182597615753301784484112089106547677017717448833516463522201215056775455164155687981939979310041602983227331757378337898008837758025415738358906831871760961589499734483334647246067369121840052420424745624490801298108673507987754523086962629899015339509828370418017094817530873607012205068044606963429578107955211048961693843262852752093885000439871087920056847807095977425466256681442181268961624894545581512696523497423201721899641309549239596764308635219618030007034174712597793510114348510244304710247346140568488583936380455262345975591323312603329217989392678963342585901916890795080714422777898201073941898220752767100914304416907412211502523515762938307715693207955092674229052746030244395450304418787372115566076665452186190364525442516070079477518650675226233287305525143939055661418451200097982375052326409597371110775569295905989569927366126352909766975362176564590393772665476214178187360823228688967149429069031343162728881036195491136388770600129780982271655065130805919659835302810420540509434020444458956200336952792424596837855885014681092967998651567410653263484494189962049057619231076564883206403576068457600367434272737827687526316330626925862284948069301546660868886444177215550863340121407304660889804765409798900935609004182704575343465704903573562761133717176085392528186068543332476408851169357166052411878581601731887716530358528048406859904421268898076842715700649771267907188011892986170791174638041222476185970843204325784576717756285964820308211146563558375844215632456107950798282140867374251404189730925220924599382809074410264365789134599583212720940752767879211398839723436143246627676726319810507112444628826255983292418697153008208785472938650655224766057355942350259029263102395232745834226696211107102416008919814621969925175278824595788853257925482045674272675010644184600935853914053738710308118839726008111147898119129651819310166635329784609901329409891687221829198108881773150746928853569147548787454829499418181363891964834751631859668868479006233002442130038593315159881645424524407710668188792745551868854976988869491374247529433842576568926859332792135496850950634475305128972291196109354344965972147350529768841938818317581761024912642184930502006272895348888516161197004803388409725520355468752433541192895731807841467461693708450656353491257105933131926899658549932531761358991607019926231621945824003786477157942177248044261005509845776006564760666488287411450509427092179495269051069828169089479687213434458450451284964287892508892175670161518420726417669948304306340276878259675241232323355938095946111389444216019521693641236518971755799727818760075336897758866286521380898698199764078764439455413458060600407154159184424196761756351623654538868971916796038658123502296615662965863615391086259289211887495543427118867953551197955940407608152243147216920372500692044999426315623270618099548987322642459452061888247246847834419909571577641761018004354476761694627796362799527445222899913495009870069811373339750929628513207549077329468268547075679189073955601464672409420192197413014249988484948693543465139451090425801190134765381024033389941990917385586596157989019463989768418471363075556089981016512935688452247930736775080803371780033833805975516034888783129357354056212558178139647270600621613556281060280531677638054782932244598022341676852004768696528426058498276280595797935063269254435004876348533243277863080086274934640051300582508855830430146638149135648700673372792115170900726329935142687773477019258953115921117937746666786244053354638887891681470276026932488362951666774544933662210794961441569057451267847958956972165015301058384841541440095583382800906290818332816613138531264106329526402687501887673169700449866374784016831753087881109294158284385408117193286258988463935776862359652586873348524073884614183482975453750024799022944383025281947548817432992671809810902978964010302936203063992600882982335414560513143277352351643032685617288563693453862300076949979939367814899101549243785328311370335720038294315612928397768377121950691074947317756053801088055403162400152132691745484930017729250771966387661158734299798528710433417965925702611635429713007525066783093693973883478930309816330902491276137571526887658329246069740680842223076571812185544365279878466449652307495808950913767144109396580585148923555189255062694812008582218315973400427961419331087140064715956093884656758379193961096747698966294002552588168004315140854994206441467846598978618417067065818997715834083294334652962778974222756984953072445669636700061759493317667846042373496100424759510192404550684622708499839621186981769228576271712931253659110620571432369802659239201097483162687676782587991961955225240672171630358121328603582715732752892093157881672833301899106319885909360406774502375141694384327970578747153868527538918592563399659846652338538325215053816462994310772802599079103669393178948673178431704899507173912251255549864482100374214581396687544503756766545368406698043142694522432511650467191388993686902698201928448140622608109491271951413831306987886982414709074343011477207487475023621574557415090508288359890044998621554447014555246088575725869578425809069104797058618961028177969527793951326180422469891926047511352668087286463601256117649566184859776437250163764907565184190667309494761028864057678946348935393129049505993152609154975298790512119666877253770350243342344733655051705651275264895512479186180002935974714250729583921063453939163229038286399216358096721259966846724847186796818750728168651180829786114792728210892588272162869811570848096508833089717578837685099552073900813251361627704661074456562096455141406027383354158998965075104639706392310189148481471142978772174378031876507754909099067650608419341387443392714606276714939594884414435343626510673322063447399367735732870151632228410648306534643585253029528759169947985705968931250500132750818516239549634256299052248916823013751517992944259194828680585071822836407391406616749118841306008310060976972365767204605251159250472302188856575472169019019232512078805939977276868257606755293872284762325476728478588964993984263204033589739095340063991752710044103954998404914059960000284560129041467864376115364124807515380157793198595910052771136274940517529796577733642793003164131194417470014855331272906401575093843708600326244843881872353303532804373494048608858525070880336671237322741888756198480812519003688277051963841296474328858448286669491513033022831071001491113121404056934724994281166932956485092581200108948665331102278719376306762223083355101565684193293995950737160425685454366250250975067496388457780287574628578957282863042381218273061552597968425074999802353974006691256128397353373326152494488896699800351353828690542482019534492355019593806695289423236958474521385728402141596971078776196531185277788003406522674920452104201256566118025285423771535438735397076496013913084497181726233264625333539181816412444117316232515690393288698935939130719214810297546308481288904177170239324769014084913614337019930818847060509525486493936444857685216450129552517979947516401502086055436528170842966979268983993234404050253995256685346553309899037674805959494400312916526619194850261177502665938752505684465145512931333230052443152860805169390936760237200736155954579580133799118626192033100280305865595612574940581313200778170639076639964648840518498997429705244462940797768069913205223792271570874990447815458136655149958243061890362283083057758843968349111654119462635279489613466742451208648389856548778031364407181821598289736052630704497506125259332908710414181328128914371054677164758826531106817069927130380298562997590542668265648685315535827651651025079217608582462265391474659479323081696311467456537690158271199155785950986294754303137178540634519245136093358597621751887105885915390051434992252311189348925545602013719093941785681954917560925913911236959842411207913441981465390274982741341810383685276497031008756104334684238920732701084954322024121404409951877238510155364060101848260286795380964284837545408413375094345208566949716087679375161391273053200672123084169776815488591168180794155285936165776920427589655763805890763858829925121525143709632161236952050344452352869648890516251766763179747423962063317148331730766016198142982376640974603481561637633998930387351939266485268635662356393192951184705933083979888953965533030493451880648919949156936227669825001787414058897345891320170104075558492398629551427293640270808524116801731690611227511100201881308845602246423788623746369935734233533912385576799474217457973720332992061313658048726914102547670726480975455741988221521383981125656810718370593034912129597050581630460779131843822363630062180136111201171650071224124573206075092435152222171841010846369936095507539924137856375360266892027181630560373152596470900806377499571543575825201809676565594385273772725935969873127064877345433542464672237487413222655939830819722812963013584940254946759811788121457699141991420548105275071964890115541027022404296038632865459471162222331678420783002005521000666605713518251989310624678882453839579672622750805686683112162071011182572220397257948824599645815210306221301568434632759345357132709621746024640145387900176075231515603955423903928034552127219535460103328895581920085990771474812588542768199136452756955260884538314513539284927547496604426462291723988919938678302650964999080943223690888141550462925547988314066053349382062173945024224576419954542444730675893508708679843926739202920089229345105480329961914179079095617365948783135856279946636739886499374544014205999420261261155107803604072509137508717254288229912606932698453596092895013198735151834257885543768001403601079607597135618578673680783349627833229676938787796835236504359729948089892848008137696109837017542786132349576324961212983261327982342217554040880150147090140843981480547342549068322120723214726896148106735964778708218044824749831377534337392501204103071586622115327394774311936359813719923396972310179685583943678957143109101981549536410173308373047206905262733661846258133351063507409355207512122208198357797806470952624541110870515842863871024611911975433960516717227072548772180923108808460940189282721095217693060987902918498468140375761868714126084150787167937772388987270409115566366388504939217709285973087779501749221356062450928294035352623371766800911301809325541687975342476687493296926469134535662008277066690264481001750642262737757343164982886571179322527902073412236923740544066604474586288390510074405488949122699761328259245827035062964097806687371129134633205547238735123412723616099853440779289361740517743317518277854935386637736233021454163785144565420726881151450462798040385980200640634133813095349057091422626330472016473877437219124016461549105077725975830634097553812469198529321710359493167285928994304888698565811834044674679920760770287164755404197983171291466437054896923873604107383061155537681494864957723215583024721334394380708279967584346104479652442954935545084879043573101561812654452278048289051241409129760314275505898231763525924801870018018941518308318648743416176175298321680032407739895003828131567688278264293499261875067797349502942214462405166162095684859305800009985189129138157113720609693247760781104768621203961314322128987565676173637914069637898546869835063110895197748350417482585599203462049430678928104188379043489815832585942388680943109071108583885849522189857672183919873085230499433795405592983486786676435520033712825099244249819696880897758971563867584946174743094329663786296227408527658428348731736062198011842340526222550085472848648882714603046631585518714877897378401761139612517912155590493984617017985686063563319236278291251395224132444399324244349752392037162318405794438901118094511812858246289173825842527181953508645266396244302829672265032997589993909242730911745265776674098555261167644290734208267311627944171007302303009134750664593314955218485941305720168599078627079795230020278024950344733320256259866325287028634114327525115363153243615776566920613114086689017213737458116669459295738041192256806249858176362151837462651991011644573560438010866750902207907429322838808998316373424533068778010203956339729084396110010012315098970149062311227017898676503061208930814580645870482129391854506359751416682800778730924007344410802195439690784359799371177792714294226742257888041490997034632109662568356122279442210939949401727808889207439828568229750920594763453636597867714783680037777063489394911612922921929029459915344607624376229189838906548492650060285565321712800965459418086621071087507683513541735104701666885705789195014294143189671665971854726478109477766346316982267132519710017794720529514796928791177204449513419188603327213322338571739669345356770499793188990104553977839079696208720122111484891189590032093837017813808559653823735352066857423686055474177972733117726068459848679611863934321071714472934245009740195591215059401484869102669356223162175844966389908970682641161161944005560457988720042513885511449870251612511387583447709054005475047060624131661617076089361441993627029131736941356760718250272366379597694540450367344358023663956606782021606905203481182266244379810915943873997293612851519744066626820281973699614129554812958703825840279448362473847107069101759536231119009527338489399700516207131029201037991980342007726070658176154236692018560014189223559484261540096105674596879768607346234754554554364145898920279965410792168993012677297225518276137399233268325202843859296080942774665978194155151859187544520956691323721815871485183359030671504943457463198241393623755341394145792598036065216497591668399046126551617336584122286447904431733759961842620119148285954531996697703740812055181702098598938658814523138168946212207706795032076349250176841623454709052421144397414351941079687583917597492536756032979969341149524904630964180870655208069077343549917064214231605457146843034956181041849602946062430193308265840152620310236586251368100866822195704739993369765256350826848271364030358655165509520614232652425889407515027798911337734484551482684956452504388271411946122554232639048101279093546294159105892095996852091756215164516837301668164556263504179326925601247486942422729569314872524558943264006937821202364786619701002896460143314688198554301329712914333448017819885504350272979829888741493016172771595820385353441483495525293675451502983828381833079984050389408297408252987386223247945614139021017206615009091117251583842007426144677190747623775166025709567054977056284775875169011651212722016121455769145962871264929446191134431067515439206397336593389200220297432434210932748624974460109823927318232623181550631904041897506478755240778513835302462391714211770578387896302638443023154598002929149601049692852252633822304912966770265791034463944891139776912261237473551988805146954922902406652432545798741917941210109332831728483266125908633299133477800249414064635382685863910543251655287452159139114923491116003116576441498414901227021460666638140246875074321102342760820189159383698868287671100572682947366799541746427746600147998907804585383100016958293522491873522921956047502813886261613595748211061128996975434836711540152889788013966790798129779906622353277435603625189535087828549395811974443951531748553602337396534613810043869276878328861706831707733623083269653842022015031749999929733705759248797091582949604447212274105789344938611190793428523933201821723177337768163963217498728311674240339657045647626055157768713735362479961249107153641420574073675284513431223410048704806778310439788412374183774206569018110431920442561811810651622251575292365496452371550528397464585810693428660101984799208479265044568440953881917808160751196920449034745459431735988296941094782699594213447408914905242090013129972262620747456411825790071726425199210351412279543446779394957646312185085086386055702404563727719175486396769338029128488728953686623575095504784016947461887590724989023623031414105449250228102425753882746583106192589216748765450888873942386690972229255864500376318123236121124826387059057106196728253105977248419616442141955653558241386664623914601035119459088459252452041338466899574804356170958042761300547159898485311979405478266211142417239114675278984976712506858395323930193598688519654644685709160274244613935328904672637071144241932872404691600481644016366774077269453182723873227154410472617615171491970895452716480215770311576098100568832058628482008956825926069382130042408061970744809326328609903665761562843123657925011890088470559626856675056657364940817966230844540049259990110973733706710250400266502064943608340568919188615170485004177138732937935935964058124926686663852329291579014729165575667049337146526332220605887987266581458843794489538634477854447726315060645478034599141152947443630500784680227294170027145906022995907564311814138648255639887107459491524928146032779388363905330766467258196243030201831637246905354913099167822532048489352448109754343581885700036512799624400167793623437528354402353958544356595339346466187309503570887192263770835810464208244329508134008616977254237900260899286020475972199049474534431351653023910996677453765473935294073468117086242866835168575007665745563726954434171940363574260193311013921535008197346626005512754938752588441936227517837037919756338609162974865686520503527793881809042234193970060625798775640302881901291679864544098092297732641766895903289854946566982321885338849957409822062530705098625045163245372791188512308191587159085784095281779956231931315541803576328742103703826032266810413657266258116676449177820588940454444642056790934836446069993762680063126715587665546132368225740026672234102167558445506163875000005223795846940383444460172274315008853466623599766245865405848492645238380419695886410895980428059045768676368559211291280036035133263911569129675381859238704571761305953765925273380476501824872248712005124535081263929302518855256946831620486106656094845360725323409095162216013731252457710829185338706404113187440115048339511575819581916494917901567855215106171903522527042125732330053566480332484564397781952059430489028435907152705546139249902418170683260924227534978230455452923758514633929805858852284742388622508197469709658320632403504398423454812601403871842670356249337403844936792744964331393047733499139017710621650907528310847158446071757477510105015026476655254124666724505318214302783773948016730422845400882694853929354369591811795293287630337121503593247726197826344266431773574989836429762356269739611717374229984093759765745305372180823914084908740945663627150922726448759971480672125032811474049765537654313787621714729738063295679408340221481682622563081337695446754071441484260943464687784206784213179327429338498115576290662215552913975730983287488856489669965879602613326274347663666803839330481092927735863002630555943707364151090439747375710262065269057410120162337228389274456360386441108100230159995182624523105332571033460050867125050598211312113708193550786072622626615606077447931522568467576443442083052834864363021570453143542531275015359504688748009284021226417830969725658856521552210352623657378196365879195048933240065433436243322132724158150461803050373456435333054730047716411825709749673005075946236531503827547210991142512052177468587535223477475490727078352537305539675972082475113949301444576633005403030013217373241390971117852466208727734802168282647333488101803158258373952074903440616746342999110191586757984211005704858641710227588326119792542302104186480577101319630459523732967800507788123011996875533481115855273728419344060193315351686239291644337750094849179210221875901713673031950640267330266034683316700056836562215685781784415424259062260737940085482310135681026412160416596479084846812094011772853399305581418161165020277122854024765374562012294401617482918904390181786843410608602030853108292405670509028485658928585416757683144938912220964983535165078710620545108191933579197305840114850069687954414862296598555713792347523247685970746280263255904725514199382721716515405392109056349394604596092018015996031062418007905285414139189399625613894104294824906142390299342412366010967444614279685708098147177483819493079226802162488578401297123297797982280327621100080660389975005574605039957061210862894768641032579157740055911441351660104225290661175703072982690680095448404454507134354310946796130553675658153458445577001421589600274248108946906432673718894086447785944322593008607023053442950458947623256095656873979847607280410965194989113969860301175418971877251645097546926454905939184113127213349634742979910751320730491720407373060957545416043962809884661561426569575644843180967452965222287714470453065509895759719984416586699494848184001697828668855155659193077824376864677416132722803092359216287818512651653892559235891811457462463442536225277964858071290249327321692954640173897325067787464559262473909080858330734549640897331507413237105531694519665552676188670460422196049980229804623171379233690160752924714672609911504351897493381954925939231219925088650028190770011644619000970483382858576404818111937500071343982405001792486304010439204671345814637071665404293986241738507846610043719315598245610590374537741207509679783003357294410603925324874357351243652320736839784322908662205549413506776663897592701616977214204260447661328450557087583482802000412293829132457866147126819049915073818231883315401583240459946275338791892337783291607796732520532613350822560790538182902176936994463155434740255206005556497097659617455121758268845161316576034078208521144027995274107887879023676429815855135672863309617765924124223892082426754485336656924018701140315503707587358584177029524339513770603074229924674568188963172289675381378041833650614168906431237249208455310537854450403526246585811288037275553390395531214446157653302737420511010715494331170883880040000403716276980386194933536755926488921818432042263235845956592262494525844300663922792122552496452464649093981783673921900089769798636499931773868344152952536319600348217429980918336436924310950552022617626854816092933641218213967945797626830237145669834582481510908829045092199562291943512348300664920504678029508360746196062517283476330053888789772923793903183838798311319731756638365096362615822378095019238402513378797466406056086381460811556878794817572051606859812239665536837376177424747568648964693293954232322393002824090869455099575184642979141947052988161777114765391710222848178655025565789902208027701329734019979080680106700216692909130143098695789517680089901174752190653700555507179042088127651855628694517811363293967240305600891805503830892446926642224770398116152798439726191818536908141960083657147682245681549172777833472283097554734377630323690315549338293354423416928686538961211685763771101427222027272083626075308678106418213415740641321137187236678815273690698367997391275438225258190952552009137420489183130199149536835941288641413189421631175863942736051757738468506255626152615218291709365055966664411559452537826512690829521392139756831842430338089545240055529717855705477219743010536681641325079021710867843825956229507281202806023749800413040704044153284205918479505317864697841493448961625836049534141136749414259974430697572186276617005325499349519314892259585685879894367610307702933645980547069609485391356191667869375857778459800183323531190472464740774139908780629788021816397922616905159796445824287070177119956493335321156243719721542689608184819141746991073313534153338609947262298842980980088465517077709654867615001485586355824241661943808890072609897724871268226159986904507350873944896565563381457276132685656435320603251262856492835505016804923486887637792943622951613047149816899678206112345445420817584018882143696634018097856099134647122336376343168661243001246079339149036974142689864458608311359333910913289003610881107256106739805223032666570803076491449589653219781021919087614690370478242512439083276143866829425216411983504209317964901798851092938379447987413811161872157045798937762540923849136634473811838220836841500810112403241241060034334004698181240495800894543977004990893414890590851410277170998169922749940917290400032816352179725131562659504511850075078613261354656336299211486014069982847389692423649665969848777511094714916018220454917122809771649666196801840187579175143797831826768719364781089775941406147867961454508720855768195374960288920919672018153251555259977106989969556203026042755091102014549526262150831688325226626848428311883212520084032486157078168200116179647760833225313892573517758679715433522111406428071143918547243843746414110372173782595233411810003068541672626737670180468251067731690868690259220888212745873704184501172891162183350613714029990364310346175596786680576901767773655758311641767052477151702823481918823073599223339010521586964960236668368578761936348802304980116294007054408472412684288396589221376359782497232576673799246161890151157413050060424416894748503217618934035750033722566672368541234255523630652604847706894942093144490908060936587829150261464018055393256111651274060252024859153920619523751403788748283139567845087976076498635327153561458109616109596183033428378523004148301970692862924017090970621217942089010210679235941039981890018392823949192229548873396403499508088304615269915783377048647025370577786635782427636996065316845331951037657979885863261807441156329159055297167417416073920118573984012641040023720756104442294733967579308741959378973968242104220430740327935349608526228888808251557296078308339040464742301615465319628141358441147405493256262105101007010546788837036995872285830334730356327063884941511515000845849149208268298976017731464303322448428476806451279644966011694759075795053000783952302565089240575973419772119863099235773882214305257770621245975436875811641163265240590436295727944066048183858313166032910222463313740537574705399493886958685863425836674300160984638573945373993237304326544925289680431591439551308563581443950317687357462230020697471452121600265685163789221467700204286971928532043605617388661364549814886051740549743046403078033523124886971845165592804576047284632973380301550865061867240399349085587131654290272075009826594059919024994591684445092067107262366603321138403934043761304629770052095928421870374561483438388501812993662169521400049166080954325527264874898056862031700354223302134756482308923981495143976610409492224956489334793995295263222093761616151758032420952606907528480080517163749123925643133590797486251401735094782390192734781662555624060778788421038978933675261327801294480490714930245589663729070810227230157099283061280345498418610329795331796896010680219914655700088899413921221425273581676818233890779484703206777917630323726759866700850580964346721348146459020635360275476822434260952305898551775200113290983788599593185790459322895768885544883264067475530132176862211103613514740047056895371771400191226866556235686286693552851768072933650621084617263955515336711589192449876123489124884304242342859661354832574317671348781793954960777890915105127234497105537297938278730241500922732272542073218453006751663464366930185983634145325444121808122615987114924071422151578739759517438340020932392868731741591943864511207622809502548651850565256678562200337172679935762327542657564030448909175687106060650285082395444433351237629952065460843210257367423638753613678379929248657262656372544379329242924510237479626810356472245951714583571763212344823913451440496145938151799370450995824585004657776179625269275454948150125287014875900405833355469142360944225362378123029800069433191467940285932488931117340859498348198213579656679178929299627063758290537824349737905668636619648006704388926587421703834154049488043083666327338011294558756747796980451720880138645921218530282779607396834551439990416038982541529003198754591148253398662531707819287986246780525080921669046657848617536127350046975778003385602115629187917196285107544062841055276733902983537877928221064338144759338320464850608985833322634506398090300854167544053270302531655412028438531263390880580949522654177774857315567816310572523436429965528115321840655754162886422630439178547320898237359307534428826030260696500115754176062493073152582586278409096502407604953502622691475953984132003127660612008570367351136752555836124135261340041512628829472812886641071695695832699766151290396066211770701713656816895861467059806418883028387138766455419682292886055156949978488835440205369390182263012887670839298773181883004702841838806408900455888860240824558697064103153731135043271196302964349630182421945632033421482275709317087837772498063052159279463193126910569312821550690270260095646424691813301287033130674482498204345236502306166465289701028813455758836917837428758052170052379499122922722267890617558640382497713281278749407069730507599229009544497355528067192024719870533763633745452431165068929201630393464990695415667292982485888296384989092252077633705365682062339567366732477970051995196579287214813700273116089007719647197655031443839237053055749393155452966853191699417980403491913131996490018480609137512351698413360356341332322762226631802054739971621725877225645068235566565067955122256829540040024845416137976451525388338219048245947136746015101155086210657435867680306030461335788257800514100208830163484462241682833673480078116090918146362003193707263604977024933519760298982927799282489344179746413550672290788653419768637140155090577050038980423454768144765910608066583744909226091814789632933614786615601968913239317937560901736611514988755754617465337081041950184164543416376575309546236456546063421198666384376927287162496194227320829644400132349023059522564103630381625847309640251016516330409020483959417003564185222045930744907761878680352818262602931736402552797923443095364883924527286733203802469646619818155349069291058025893811264077884878342352632888608253594616847557080198970686846404857813338815555243059915946269341710395529462314767000717213175108627381058788351534000917073429175049224228534267708879719410223745182090600807119394923567846749302450195447947551870922487353597963875535064884435460227196602969906931300110783998908934108895746006315522765166951789442539060234717524611155956993211400601143317186416769233906466680672911534492135824364507736617297816126633242978394181516090103162118647814436575554554879070050415812716240512142403104849189085126788548544424285798102716556614569754667696914008965135600775543085516900282865411108829102131563741787607802440045141801151356587343038160156313524191264585433225208038469956207616325344441570418028209906466154605237481589854958895366263487465205487016596923419781432747743277387809911580265198430954431152317142735028081179047404418396277746036906009846590006219791065107291195482938005229017468144060351356696740941271531777745554951611529864910937822075494501069648473520532080783099090855094485464024630789484568153045021805833416294973381601207062353064073949116547036627282748426827168711975805882891065951222563616945606791993302640481181414494624489682094914396154241462452562512024605575117562632986998158087296087541152404338179759663271186392201375171005318043634389386472225970006070959583893206094046821232412724345765691570805603112704291741345973806090274715904929236852943383283345507228904138622432459908317102076984316638588426918722536247537091928942241022867224298258208265662717822658622984795843003978173567244511338849928033958624663473810029238314857256377154280935743399936912422710135895332618458908293164800320070821782719275041856242303376712000862309833085612976380996803925466933117239124905287860628156474394505869143992382427574130040654536835200808781782888510065603024900131151109864386393908152603438313722912370823589261498050124411481262506258844152228509134934882053920942143763133397523408604584853532878985250524498989886723940633295985016171281609904934680507718240120331522381169075424104987863314369135814749392456956387433040636352698125284511863236553316100701366386387850042095160486733912054449175818229671784979337521691778161009744069170153552589817395338536369135188389883081463369548685488122561173475186425868825734612969396015735099060281240401576158971139425389373651944074295614370854397413927714902997737110471501178457961404604076446790059992472514646842460421805418235828495518421740729546053166698291536799763442154161151549655948154776151713320579240588386454630388055432774256161589736852416841044056192127667712235808457736899329411924921162636280902033549334922129445884442417516400800767989605495379874328365836023483197660363230733964471500571180415276365125862798677744288569320852741705622423759257795536116572857715090920516754307420171287148545812933284256142432111852147319891168208146299417575130088940444707919848051322140110852407146541526296417631918156369416391517366976180612001272263875965427270850066378772154349366816271991110164143149610627047611228812116957185504575002613512360130422485713469416982718996556060809598427686619165289254193617406453749763120064724220286692433596737083822290626236778629774382570969418977871474612293720462264329593506595580252379460890669629476941950722058160605497014574677765877530244978476569882117963820352134441218860805575109154712811129147733899517108045531539694019541424851727412886343080864576620106795617709796818599858831502666631997360083007364588222228495446167040676340536802459964341358345223624416033471569094136427703385192687500693073636507546371935730103447093436742697689009647007549770571326036735782225886970585444698237026753233787472320096605014410589832853367867400395221135123516599065574229213734688270491276815046382648776042781713095559736128566272044693571728304493984746658496879323676368973941765675350311008339070887560629313625759715338130315027118123130944396089399500263341423383764205818857800375037753243130740805898424535637288626314709945519648489795145126979444533940970129437207380299704134448964349690715682645120439702032950488480999293664622963486446597346782425802598629818339649863515763206560747627639814064485736413372556241355722647059223268365492886733815838371814588185059565678991500733511112340326831905581200048381809990855855430023691459615282316446433591597553369737305029035884789186303113320263819341988496303908048510931989993934494561661220810480335710640889341307731220282370877369037192661200180359477597652858262846903414437213190146099174403172359415640907879355893234402652612248438945325240618320043126127687522653377812564414939165972523682668919623158310222304276451730465614703568871663899336234903694080324106558797566184298544350347282464801391069378518307048706414381232564461956367720301387115787870551797736130588878447927549799328533072387483350643863581235319131610217002386751823527563702117893820962509906369557918663568619956106837228582637762173353690618238158728581365429679414584577283905752832704123148990424151700316566938274577057923880221553288638503564660813166600669907360128924954217364748433234550165005063209281591238140751973915286685967345564445617517608552500744430596302725133171540609656927634283173739876773994533649352196004146207744359851779022562880073620515592639586786063524892408981067710074277549821605166601967417753921124979826842805952474122869216496388739440899627221090457217805907076068633029209107367291615319171944842169979184624769158838498885018097728954865595755033267639815953586626598554705576611459513738775550398192035346753050384440317884985297720649069652888779834831299068471243944379938082574082020204254953799488100053434490906797187241248621287066503146032327155611297921618696417712317447178134389557498285464292046228508739737095444136060431269045001625474490829460544325015514011187731450362679598083764061677752072798669859679071986952707610204476621607788729840458927706520935675519142417732351639900942461754632507161360584853836890368445926349859888559275794588881633134878157752598785795031108831437707188737554656730464244262515796095584529825289324624766920313362264636355634544475608851847156523361130204206908438587607608304934304723912534805719258657733688766639611426887311350596943750007018733098462052573594782420096886638762117587539342807482765138854790064612057477893717181687637887921039119206605045598270230606954619468627570699909964857607719452505745287245795230092968318466869237720644307942325828550202355683193743139081925006270594111291324251606711592657885795282322427542294018424347971497902498991283294516592902661847790557817178788854282398311394725061571643057683257488833168924434852357880491058770051924240864676726591969970313307530341912434199172731857632536297708435201972201113588123501515143377374771790601231411382010363336237493110520994804432409400968437768125660088498894035412847224694523488155508363347620596986519165919077143960036558970337783096425264707216804292964434885261456118371468019481245620847647132512912754161275056873050917493713716013538096390826760925968957992071641033396437994060644067454741467584307086400735794857857820550592316491105089639618790346571176157202422256353791750294793993525947807768701576360570951004372823675778740329680372143201821239258619721424004230619512214610749045134309546692955257352084796641192781495595498610423501614359490985586578172844110392654655570642301870536981404709865073511928203242720507237266139068976175157438831443119182199247245910371793762638253093644514775061254029845865192800077733996699330368557714329455923904225611187722864460537768885289855500875428929181132609260795558168653888799967631431529192317797076642036048830921009815069818849979279928338012266829608545345550744459036227703662045301528925269741141176012487180882271483845867117806019147464264976613712078976846705210919994042327326854947601171371991144700697398915888610581681649024421132956009093619484289074144950207399963720804282008019439823347035719005205232426741500959184969047421176200096999616659397900277387478985323335087414110974705000870822295857911594106605288539812857480951110533608592018508885282483145977594168195706793463301701823808519692040958729096296239602341625990392120323360758984999965069720813674060685465593912253413734663818246403115154542416323939715758159979496803527134433377127489708175346378453390158523415306726874515101381564630436968350958784018974518868341605114420836403579594158792416090908769653495048669307372795243257965378413978132400962333317013081929497138221463148146001492279967654953205331443921236250043564097955364091418294739601608773552549719457984828704358281175260280475253971728579600279260537765399711034666622057784018819231785623166798672401949789440756394539012838958810134293212324806817708680014265779821946370791024270568171836278847718752012314023460896112343493805744753567838671690528329329721474964723105649416822981218630298137045630668508694855228308060247061191683309102594479916242008127923940150992113682453057848006445924493137950692323943878506125630985287129051006922350315926710265698623094266105477829376785754379252453944712004786343321431916470282044335179757672792352793006968591743889182141000990768925708251732786018383884948878125091218926835364236826522512963347452767667263061399205954116646673548741289622473479378741593841748027901916271826962596580578822675598419536549570141062818709196474241788039144081674025734554935108379366546654018053457766751914138342775986812601121554538075017278952676841633407777330114311470908956366461126922354487923595854552953781649869828407097816669315898299666814163838569981981822306876154379324371899423342809076950755215613225074225994016007866302892964761384931732309304265649066725007515736705652993850205227524073238510655499966286651498923167912759713962879177827407060333091111131467269162507182925838748402712379888001837219189143572562863502409823165967273846088697351487960781146913616666651820605261583560259994235306791495973523439303101840227445765154677397155658602175504004947754351288429467783025696488197966906654588998664048804455313709130898208304137338616243022969905727053031989273287592681505453490272686198631564961416335614625361430856278737118235028631600300515627331799331044151439242798532806032535822374813731056650815977346604732112569470872074926267922843561540379411288081920112939173049102561919296877354613119056902151655855421806895351462287657659661377565521567250223973184835364082557977324287955854570179464951564385690250285495483285824714643475179230197798388077013561624390687983403810591997871306458309464740384955926379905192446435080392277757492503044767739679706456006744945241984767583807781722870130475136991255722640150776047837611205060265014071811560912060676085638077628088369359096208007010649024965964906018719441678685045891136946155279792503533200165062747427441531963943663083859672467151396087240931763459930239859612289677293199606969500804587289412083682173735617104305218565234666032695124746935330230590435500144144595923620382954507469287308340043425789841999985607674039997112470497498139344565791796928780909649520835316572674293966734130974274173432126938265277290111451913100271276970163967394235551267334505394937854163266783176230550906774040533877020551581306976855414461154498125959978127828068876211325023406813847724636304981044677515331802370331671857872316730918470164357314553278106929366128429537471779585269691712599663095783991607435052846538620857274261614008760633433079263417264729892212428258313695096351921486398660046919345236196876079784033530885583771663578153570698998928590982287156914888132493957188377984559239068624227425481738427405927868587387591578601047288845922919095997110384321854340210254777922701515682621445965394659281235357125948476442226495745308688732172718474622632241977404818625940147990232656936272777872540115115036502324586307730063387471946409289194460496291708952351873637399228320354692138385621967245763670766099659218760792158882978836264522848058191687697868318903614437598775763543580756220744054523576739176402618355721021322055391637905332696913040599082141355313017875529497880229653369864227010533468382583129703875837369523520967158765474387418154185032046452398442711157352167319815417402740359500761718971386601735175439459979741917672572509911555895812433153775374428595392347102556088980118091158929913833048289672333066531788153817558642865015682519904890146602892916066471536786525043863039147225979375810714418583799523752092602455518933841913373777548227832808266055131738091016039328207531120780303632041678562372671033505675535927049244696742698914989133086617357902363099353832745046529105216237455921046678410167779219684802194793771032281570659802943366081449773950518855194471634107130364307254892767062628179799977211666713548408573801084247778316482205392959993152912651578315029326245109966525259909089493372624999820324627631304508981251375292818331629045440503782840862146827201833801682566021958243657045067435708476023146818320727568199239326537464491885103571139737071053074430254361948727410519825315640120665231231272530662121514620806397684387196572208576173673953210977903289250577730375168039647875282740515175576091711454881832330141905367179398590186447963721945169331040169179330078555112541678263842289194209756219638269342169940685156052114221057891245130333930972933983075447181760087570998299734963235273794582528938882905192258610635000452155872235268997284802547519797588067001751954810367578467800385124274993993130762368892810004549376255601130584385879418874093415968442969189117813135432879647241691074724476252518600123821839855905003759877266598709927496493844037492844550868283201186504091328367330759310656100380842997783114413036149895951881576676768735656814471555342276099265337331455931062762392455105080569042872259434855984483092031374527258738826965999271238752936660856111887935551775294987461301910381566275962502544477034915959202944911639177927914871907743513275225778636927797264119680643229162729864559241851123410628660128169429248709044294513517896907059704667095162393230731133088213614241624816962933715383925931131330153163663333861654653957864567073810442217591053092710019914790385300106810599282559969570327568132536507306950197131735093641791665275125923388633896589356435861479976267554945125286200800086397851467554448788183444746116808235956577066647421012537952004005186503935910277355724302872044781829219574503045737213042556255041862840398657706067272753818737887677973800084083750120669287652934844813602780644832449432608043506812923873864425218891029117205089280640149517305877272818775809531282672354345117685678552258990149096986888133195042068340619428388130138947135820529659251258738974068571471827065006734835185042982009740470023620315083228876486162334425586974163974955936287245143029349382514595662119387543616052317345499730780092905902685690735776003185055472591999697517267838344746586929356717173651542315271117832137229899520788542607815023468890137538404596750245261243692789306919190939741431452170159742721614797050882654603997893346130388121538402635288074451310249722040735424052276939054644455632026809384854088190641921920839405821952010937020512966675008792034479459473398548285327594926540593704168157588931815482953898154520660360440198805978642638850673997326195066859672020793498052743024677376538554229868018115669233814533038522743906161091862340565312643292937960774878658595223812520909188240585883806082749136895278250788064269736893865240890443138342228373496196650358556267912348402506648454785470244703616144650364829147271494114058963918449314326709072983546795289862204694273283661649297957591891358785539441414990806639835983764131962736635919830148467669490703702454732042497000799607351169901046577417532503585177824755987659100641695291008025401779115863060018162906987623709831996333442983182946312041507591213201141167705949222453902722369026582891692054817350849307515864871333584205266593234547690770507608576212631709607405195614381060695484116331324497277616767577779076474551275477672600740177599739609573085191066315284533699891654052481897868675411590997006561215431324235836016141299312331115280448459105579724048904907257477551570616070945848357744729639720676734846110546536813499979311789237772374444731856648527318628631709582247132211243754055683158189603837662860774402468333399388686832198892632723524961367647504307829522384673893436396241400191345109518063831950222497233958502916738376284723386356220284653278136615609691857273379908918009723094416595138824668332668929764224555939625636241927781016876783856636324256088432226178650479017848459216904589872457868817587795544075556284466340657183049060090510666601903918916085576691508070904467354739250848480410593152946045023924210204791864469224466908475354368153609333353967272222195380315872171153909572120630705264186413818494031436345407624904512093734563601529711625738920358340278533751755605646559598649663947609836140404414217883771792277671846968943637953847809256580148073135504109743504878730968026740626296275223426693009462459371479566775560023287165294315637309325874355232476032330462472350991453126368106576587298529986636054794501994899728303388557541145206660786896812142903643681142290562630035750223620756970726026731321710353903184767138374911411290439747586682842826716942560993754903377299909710463256534705940033784253133966238488227299789712894859901593257869445270638945316319195475053462293755498941157506983861637212613897552097516208223632799857328014883435863804035364833158402559593814235038290692391586713493592324555241621764605733570353385391613996337522241364232739265047455159189358334841179909393986485351310487064207792752258533687366202647458279928340023909796500132469559102545427964882248869704724705483314093663694020594300271153910453817888526996042532000929509648154866012566914306635827659485714022170950807215177807685310879277785029969290945657002169852893972184337097334693305555680146758048333094987929898280217824762410502790656786236669715962180582284000554100737635175392384646628066478702700504379351927812978271127219542348231887475791416253614145326463486864729788834015873087062157558040112838814896754067597121677209112092911575620952076672658077861009319478482790873162908895591730812539761345357841520893022164313850770334420621218100502116179237009284696834787415207645607553188643331304415772170407209534282702967311765605112864976178945887715053598302478260625004340755719135926888450963619128910175375602979064338820843906288785151528966442803272705627887233401610824728328866711182208729980856046068318753387663065432809632658854287867246659836497223002958649222974198462245429547670160837959312260211815987796458341961410271633331001884892822341202864050690718568004215180878673887188077727840099371547682584895231990175467222629002900502046369821322915048384093061353552069979226467977699506967378822630890970941366443858334238073510511319102764284217126492892209210442148127511771032804795468773552789021658268379868781169068416540419296118867041868723700312138855062789951430133442523056261848400359789843413623782435203882568890969696092778887969518267038868933768128120850343680269968232676740100094854510076445343907725623450824872738416611160601191176753648478684522553346657801302771654324436676300659408552936527289528393236513915991535262463326157017217370087006534728839283761049223603031053065092709935741845580753836947281052326347026549299583438576520696840595052436778516490691950525288318748354637831294437354469609783295447799167340789250755477946764318245297950841620129225554698562789737273401397689843670860286474263192288486363961370811453654540847330685850269588798708761372178037161846534766048309304569433402745818194528179128937678549867010031577205611029981962362843325569083468548776310886974179556309976546824920825964920934336284008570538598314239066921628576063192923564068030154463372358189682030788922462122069874749180529072144521174088139479149277390995433305651642017191978789168478484242968632743528588867537542294719021311854380094664233627078183529654649480336703356847537800106925441516243690771940029392704373528778882532984926060735125908955684028687060822167718147313922411982504598643693816933509983849283074808350463073234897273240477723091752984659065640741949240012960736332781158054034418441348426168202505118716830662146554593517294830189180596115061748824386322515685162186713540312550312626234693198941494183634576868922146474808771597198705095963384536872411609865007526440916747178238674943960526709988538012954863166073866515005606965090384430203117433019341934794203738025248014669294058555739651028731647753941875501279706343547130629404139724771439991573026849637770413634503804868532978281503304061417010285101727768171834283330475291927221110002640598765835953925519509983707853232766509122078148505676346651105319945695576266846546740978371017796405817643828123372862134986224054957419799971026264910881746329117264291934740339622944883889139304744067922663849994693036481142909009037553816299548993640330559508503669380514011756329180237716119083009345500384435941616382748703597803807305826337602224754721206580977597931376174511780706089264745186553298135216835754508696180475080442973158675901686412563670878982394221857631816641121385099672034384522001127683539372087800740757129898106074929450724903523474788295460176906723927788782446672144170902670465052925805104855101077797413220400764127144803228154562802969025100571288954457687728422841530511150013660097822854368342718119835898646717562324502181554923031104564684350681989711702600153996628729480554939357840291293503717360779657113714808495624684350084687493755435936875035377252497568974446358088441090542678226568872606142429825986640320326816774412962498474224941593294840886578279800593604264428056252188587940309123469450609822431965787803623701066232102835960450481705807169018080771340882583777625597020026292792262995357735045638869220208411480114463424737776230775069220733044680756046087777381954496513348405709096510336219385173400198520186283532691827995834700351469393062911134422267730358762814853765253850098457918796232349710396540120463277838239386621461780525476803963828876373725008768992846522093914098068118087514593618437837005263693047625426094643494012028366210786618419739993270672968887410959004533655375511137066828905220296096157351396540717221445620854655827260693299290276540397123497199669441856510659972858372988652636434804178593165761527079364811325796236260169365848151151666386827696315963144864599590242182647467019225081854776236040999711512977966620799169823675554893334797478408932703127383605181836879942678567027072902389306980225025637064562761716766363457871758756485711431008486541945345730912546985015450779289710103299183854299433022615208475659437479137659852395640768905311159525892092010492135463233639901185557295793864082105376810592368644420439806027019998945296666416817994121082688414291711284911994445482566079426540212214489566325546926897412007502534170120155154973347131723391777671261831998677498357079393985319782214144486038159019317273383388660353891948524837489817039043142140875194440925958232244865340670315689517440574205358689511320200002203597861069281782892010891212472629433527556787974273935948862617599573510527384693429266119309830086873571559210453877292285897916313626426050075255797787886854818430113600095723882285059267941279721392995328312184226813278842271957590278303547168776847535525406089407899336504286430060592124554364009976984950982095157455854846212093799853216147095803208951627685851141579095431690508574869465077856462973832929973321938100489755654979575887797041519498017797799725516962043806486989103170046470874613579807124764783064760352803701211229323744922431803344102747388560777515537388639238196646132589960162597235746531128643244635135338507697835904098129024699085205761044930187874852194774012121171619293487417578438297505608402706029613844864093107950756586688026003258276684340248701947952147341890820045202473755032985668491718622699377795075498586667521098306999135783914064389028468964627657694689111325061735300294384000757345319915790811820574398205881817279719996979743583851118588423372878229675491943302111913754757706014007721104210651176181916524491066430670215928749382786403678535040067881452528796816778234858626471583407019328847169352276826421340162171291197009130200911801254050523216703604702979205241945793029617772778303764384167100788390794848201747504879100372400099579059734905777869545395503627278810294222813321586536960024862554273395083803891187198940501223220342918268735870225734009785348380061242487028374606411361489238492745051996215748565658343176678448244118592711441985777954673142622111705177536445591679928411407700077759077742606449550840258727677761360123276544787966184824598517305625569197094930692218511194250075300779204697819966614920943794304467239165521777322926011659765370693950600254543530433271655677015151262371721473301002214717691771862276732089634377744326500296356378072798229647135383486301926037514169868609913642514656863476962744281585522030084155606069066653989268576552337333525165609225216460649402940193345957968797932323814940619002423568200107026767848878400184312530774309672189748949251048659972840805346811412344231909284217109273598732863224483659566799868056341553810575598085300935328899885573451030706878619671865100897184719122884633591943374881166508378511914777373991799841097306739775410032211037208966161629644888582776176415417829905025465788384939477503188848721243138032237858164751657251311485631590336170158818531765464893052087132422414079941177885471330750434764511385777412488822996616598220907780378759660784509134624216741657513821532107041340851875762285335784349085951186161317605357118863138525250854716238572256611717622128549690802775463567430115363614314927068458510014832492764373317184865664151663896502072441643592749586312532588337807990436482648906253065632713586243450776409820861831127048084962545899834547216189304354749046872688195686818839752345872903384086013773707824961916775238322430649271001071968205000649706377067589188942035884920481712145266548725092763641742991102990037043956099034389299638512307745461551644534762505216790892039157217366487247742887519526278653812327206262076841054682632084723215590487512662928430039592872430764333226401280785403249761096002345974449395114425638067976785610316816223776786668040857938894261758979464421065469741111510731233970511305686607436347532644215173185801654032983900840524019217922660210226581801719352791780947039486759443365491160217248924031237641618993809026612160832298779986157758908164224983049149362659663952643107377945837422650736541177094297025942156035030582666351483345375272599444694469364599999403936902016092126936368812389660180825077509520622725434625149945249832919708196906959979580294399986512179638971715900679477628323089968873808339420193919321290906792514173259564493131984095531089863552198191285227212217019211587360949313223221039021970830029350209415308598140842250683978786549719433968220899219805293263916651372786794434979791833761312818481403925963306775917168705306864351107215272159157691869088296524783802192336909749340003631207662381139222374238243822116314878170797341160952779967184579670646210167201064094894974161348170537614523629199306759753588565496343120220862797227810164932358996065188603536044369569876913490877409389849882379125278895007501390853454025487428506696456424153437619273549485544626736543556522877178581467388269003830023037508061187521821127305923109168113333654459920231693112583229730270161434465083726837940706645041347821645352262250579158933985474161699534652148982586685112302302319535935880433218946381423080355532843659303884817455935192906593617891817144610350831937882985899336473140870025100258137086603143904246942391836430080496755810229712574734900565452709266061501329288121323292731097076249676418089165258248798366368012240975513814262631527870567741119666924846557105281372163027963488474695264514561454868291702445554131009805701278423531492288585668792505052929728336769424692481754225957230099480114957930119842836419443659228036727727739784783390803329844291833714125964632151145139832533305507354571172134612905276521929260290477162533212955625015024830115203400982791909647662543654389374826989217277347120882277129166096695422463542451756562144065303582959813062881801459373542585236541042640145870682420794068308103270850237428616567423181655498249004851056393513652638628597931564115953898871434390956801476759662192444947442733873440526117674891520249609688610825208247004225321033368023316581730098222965413940602218927558810872517127082520496376499564291145175248299433453271571939852105727822910352306619555753233389661929637509039591856436281530443330808659674537043726833803446948916741306932642599147508019249611128132497791630050223632279868460587455250323834558823191253380950858050924588945956355220932605000918730919033265496131820025709369100371504564866852259938855976457493532347964927537165877141650500954264685292829000279991752940819073766698414304630594179039897754905058719712412371360572463596143060639063691008348850705199131843180175079361709414978943549874877568878691028670288615771857779111432939739532156746687018956024197976925474697299603538889417088425667724727121182659701132635677608966512437744366974528122146225346102317185701240003120055158823307349484701585349234579202604180549405618978769446010989094355287989293104567111038175561741636309402604319355863454323452191134181525947084222666692076852688758176643458686722743412062785844573013270703150718755434662226416136901968180862926590725248967493084370635792329874061467809082704765887843585515468230139797987925928374616620498307390258666513427680868230180840266048310089957858242262544131631047206348062063979061449140034557731435406774903412363858172440651942010177203066433057282094642510313606203359606065662058428122065538698486316039622052062502662853716388960855086894858304411438277849604557523654422251531408208363652485768088513872433488166661625395611407937486981772620162441235430391624395146771828979752353543631579750920778644184573323378516025214157944701072659307536064467176423146615965149914137730766966273774250567767602993571034706806010788550908812734408451576571778035827772963302248992401533181992494018595947081263161900674736443877313307260980778425181449153466568322239857954172227937070803436284904278956115484403293111565917402630065477955705924879243174537695048480368063851141785836229938471033170372905255738397345722211917624427512481158903180096426794147182220374266168539198433338908329651884671515007271397628786215906897493090074655822115320625136586724314942809402931740558481742275172592374588974117126384720378012887939860197995987910136459750533844803144009687887699698059087402871584112533730476631156264217321010270100472272105961194562066068538126408318802221281512329917990807814305749953768522531467773267892104102149472033917389718356539203998911502493698366536951260192160868072959388951456680858676964021501400633893076068739322270194196905868579455721863859523194867884130619770390581602493073735667391372147264560538345318917285817741635328616629448169214168859247888996371285762287318167575060090864571427755754499208117028906947195556842801792975517486881113873632563131054014810546439002009727199657591333312174616121979583089432699915191590508673968038313397941179419054938056828632255883103320528133414809339316581517127500743170235336408120435939992291985066327278525933028010029480179075328652229918381516714967641724750204592242558453086049393625005861813138515274921555317449353496788597305606637103899074627460360082044850307061281612031459411127296760829033007566178465125205496573098225834452753771620719026095915171756110740624619392952465383008944657272402034813398810483958571649559735312720963442241017452159975010658847217869552587626971570569738037811242844267543189893887038423580806427416716106467469796091325992931684056412849416348258677375105587438864750506885236824002079356878450680205094479544537946960605420365759836180918576002444621683015677686159366786918280852611257655707664309483725112320722346495275487699890920426021515092587551063410670930233919733020987732918838354500385255127066434471926221666145452183938371851654548572844268905599985744679336571173555601273109427527325369485885680050817971881643044952504987163431176439037270256283252249755506079763807647659736581879655906895683214552159016715901846147325442175320062287114005891345122366237793569548807549912100141219854585674778338796162542987098276084320168965389060505593091595058750162095481984325503930127560961391809513739975124683718928632272956389402882924053972588697849448018642590272963169424153408060743815798725757467307198932669851865890211761068959573072018688511769837147070721931830372170384286931049545167859917779653681178914636419183095829194461039446930912860058000789332143300332837691968062633812171542445378693640568871251682352805317832597632427055959330674448338278274950764815094919688694796998001031311695319697983739987035849661435149380754015808856977317191759134246450344878257968616805798697549000041690464404481411260581469326790410954148298327375770717220516164367678753597752543276008962803975671690484854020196915318986553919655362741946182930615035869411045701376153575195965932148637262654723410816735038280798394090660247103880984125472950964674462963237013801751582803321089353349088741294964907982484386696851594675615795974194927413220885630245390906197326519787534547248086004669754559100243215673072095974444561124021230815705059184498313130468030386854719640301726522359887459483446164330668664199313022238028159428947121527223157480953143284821547550400387437843831880820661877445755512037218381119705579688171343925337770510670900601175750220540329974109474440356210219506722019515545205688549005813361737162134421021593428487816302150427723821372244767366824307412695306262525362420496624337456693911706319017520214639837513842645873648925592740084286187790952859347695187356263130754143388611149026578358062605044055171686100251392734007628780947402990370174509850632163063580366801065283343735499260643904879344951915696857314505909845354074004521999849428335708595008026154204345452924315200464630925970170288185413472009147840452344720475491260719930706347504185425308433728004157417802770391074652077371467987000627293767882973562647614508547494042488971618545373029443760843586678234238995754358208954859417698084520932171578129096990043908830927131939205256565815107158533245675288291258592521385365154386578256294434520772018236994136728244829776022937248129238135995290918435256904612672563064691042955542370883618410075854108560637631227287630532867214805088549801016108904617255379433380607715249987900723041056891627891181468027911888208404661299033284941054914032984654978790770200944760120936558804936632397210291323036559451500030848989196569212212733385687648310829979191583102957170557763148222558344195398480860732397027214585913101167791152631451488653708581923922505350734329942098598685591814353726961081565033540660384100619661935192514147656458924605709238920507249529878037123850467164124302640284206739010784616314849469170402720873533937050856469638139120725598246882320973164849404814517248769390300670578834719665395246999160983640546405840635189524405805011944749747744245566424694025045141840015832318396285694407202475626936983882429048577979629601049338077711625499848584851949828039163528171394692802905805704155773185629595711061481843642251882830540487214783358876581394899598456224825715250025153527944405053630653006113152391977148998403233709814419587295839800038044011830920297280249316203448750742235015120524579574798468066949067384022944625941835445760575844485121878320815178269295136720960488865343561419779319835765576817422847730857043034502939102306873221343597050069537485331043969182544694743469173597231578142060395841031039489893163419078539079485101337668518900408512826894941369738665296480618166342051221760323764052337756195133720232195798022867296443475020337327611077125734899389087809088847095164438635971964055333477885911148650397916092857875866048706720676689106543940527853453800243616853661180073985342181047463872693624821821191376691326533665132621559114394966678887515452107884924688048388656424071742143245195253227044591982379717076658597733504733634783285816458049273879203593410655331549301318141940614095102226859469563051338511281012268597193641726859335462766150517863180626881966741763293018706786610036174724803152835547153187120583123051919206374340873088730223131341603168980745987037849554635569769830324216339857165954411273858907046751203011924951589159850793260042515359198060347363479344314934778139466027369294978890928674439449230556691703167692228914144639169515137143274690945472167722759490961300058923923298630450483542198413544001115945718637704501795218730371489863087105326248144680556824539384071828123999011831826081481015521122670083988713255509226858366706565776738118946759330895300860550348061800576069643832856451581227571162571078516707805956780385136806166837391934776624622149841852833092211061215609935210185980512972242922534475586040561320846758560441103313770554769318119295183929029018860625200245426675524119221550894960054061319095651514098845492730259994065046396934336431298017355016710338896274819553145428964446627291150030428457409212659864017998602339653405483682749547584281679927560167997380376568301998474094074561590088473344013389834523711053434109550901027292994011913254084077135735885548740575980692347643707581364547018755517735768436451267302970429557657522719582386477229487590492896875834875119200849631527258572598993746561518501793373562169840786962762452339252317816565015144817858212408979995105454617784845345252016830537263400707958457039563746831612385911416041096342699510734387871140841579609838672597479483023964864973326074001855949673289713619374410085853461012289120928013595645825708940128766421735473566475780249741415450955023883136581152087896077471069483392641867886787125111614098444590690620028746658533817100206505113029756937337480403056651298972704026845962893086338977117828194176797539406075989732059800888521136308081600758161690132997515668576144793574289415324108217590852194966729969478685121173163355748711199033306589729882043079362641646811485895387259322881142208875687445554966298980614100017737879689895571925580963589698849797650377078180181567038229179523281830103057932794907903252298761808811772496480142436610000344520882343382192506272548081318233348440323078973981338545964605330348120742589609550293601238285157153874437893488557194762967409128635513219070103224545074138946098200939583939589835038338157478096355995669827729055762818698686164376390398623035945936029608137217658062527095660400400723599154393000779870776898646393964951370793008123411573389346256005552698208366162550653293269834276972190509165273786764512152681289553374049761371808409513324897702276092106399680496761207942494766336546853649373769939254287362563573992931707761102928086425736353816597551202875232157139192228931306243029244054524624601913843101991028975428068225767808893842901199477971032143055697729800191373913341593398537187086398473397187439043348446049114703792833106438533753731652474528929077460571766683426758028551181928242828794953767172302145048685904445239772069569564450110501671003353556860571124177839315199934498416134687567560082868892814401676891696755680187792835418237658268946516191672669913008803471187964707883074573729829837017434927831392478514563034763156837439006404050213800736425327320843898729845780007958898104322714725431996462376631395693151771049484382284118920283798486326274619491601441673003804672138699068548467481785497844719248174337795607862154343734678364681897114979773123908692954978523918677040259010199429058391990787721837664791778421038794263742147767977079757429890152965751239377604001321580130691480163323231027470433789931550688610392787399382208154685302184421022818718161915609651341758780141309470781521979710893530296272427806389467922449233045748829479680767777644297339387184628065008057700618495301515262603767986758175010311502274148427090252387822108045444080474560024333220478224811751906919738106152851706418473852959524910113136075719462584840646731819764068584769665600747125290447309463335100950255427515444966427228747140254877154135566517353665926348563755463211659198456516226091463195859831939799709733569855974886230687973669521537598794087251169290494166444392856394996787450177977701301882232222824820957653692311430254414951015205148389867174189877760208487549554953476369125129390396304312735389679316775632013336807474200050069261001284011054248825441444902254820191366983416882369173265565780556123197644692973946962981494183876367735546032379205958019831228963293537791770170240022772760484183156917800321991361261347288923003991149430571348460712266523006201733130471528505353113755581465892644779600713793724948529891527484682533749606749173992663378583485923115497276388527813926053716301316769339318297989351195126448358520313759175358219898470049993484358173814447172431062259574817377758891381032597390967558417754553278616884459356838543086908831820520106065191510607405315501627185368944081434250993474771221857709292592312341920040117668972702578399565436409691867038588790450064789545866703905684370221857173334195323744400602749748411292970936846428490753282975938283901889919670338927901119685781590610588609148060087278148136322214723859731508691735415920095054828684670921020507273602112077582735154700479031701294343467942725191747531387403794656925814258168104043399627337444544162508036294352424205197828938085908814017017074708990027290034774449533339487579080829084699244779941535562255018904045794234507307868864350880413510500985473536625868314119992065697222501758569987879154261442330832688979537930806090906172741088876229626198361438593717262058801291307794314706824397568259426857713552826430661564767116771253987956426278755723691386810791173872827219638852953584970326775328509062925825869095055588910881278310553444104391092127495245530110552127480630233627231580891047522475230380145850050606560884896722060270538241476264494662592232655777871958176759956819716325176118710445029348003506810557443674273087345973419524104398463847182234254914899215598206136881282653680370115579499728818144737493052924156767103689691917927100544978798649895532041466550127340853851839229086013238016923513126134226565275181465831643992579087279103420428012926436941801224204655344221955714852343344572895123707182789526263006651819065894017530964534676752705031223198378685344086939150544732481873887809707489650424462598049458697038428289543530808570029261740001217237681866105865847788037799761808393760318089570275852963592174163461136817975939390679285514453964637034396671466720603127731226628917430094621767284768888807430238597651272158849189639858618773343272919575061930058230040354612716440207343680737747306226241100413322365034145960565409586780384342644921885479320530197245128262877729361184454371912993844658089904821132657454245929205072537376537829733061838194994846602356114337082900522512794225243058690853346109362977761075142911959821584758995729595785911857385624103055724749706464245898101582541821053259988071482818475953126855435457583047336115853513753968351685657326510053828988648436155785338980799088882948952079762720756668922619276234562669786742140350610286763336595894415801502454756320792576478232257373987476123702235709951032144489952992404884421072522354537147984078177542351858699629398709964230123802365772371324189390182356808725440477266842232329876312971272857575601530571419116222146633576406373784783113771311515109788755375273667757609420920093704442768194626994094254166803833337095255441407171713519393997869143422576337344906419200744076060677137639102087569398436542006232013150855096478925786515695696884695677356631656833006524354958969405452052479078166656620661954383739991837210522545644325411755708727552935710605128350162995877516399203390929855108781671946332217585154212925484500290103361726527753572120585561730370603961960087040437450149972424757489893979634142312096384310642963994799291936268662157339303917543953589697873312090999198909307108732465784878999544727475559314757535523035506982391178882070442771700149949845909029831972459790490028003676959603240470532192611339856551837281355042397078102477871084660213847859224121033345532316085840162045536159094010409887840962595956480600843429360985240357844429960963250854232893215882124949081536173129148000248412365754626944021118439699244306353735938639863700345272402039263113630829876460649275888892454624977759157466879733655180842086775887704916582212936956075152797601870949992888732459229188091227747454115499430572145678577867134083297679506577825319726151961302984584713875842867205971161977743191566091700287596594065614914985531513793455885840316182083436044921300456430772338803096927964476942537193726112725554057873115736473705600936518245015325451471427372241467701069544636060684014806107518624061850744064281160265319893520818002601200800985443860595937413802958270985221856086713155296900547707350237994295974992054290486827998889394952462387934149701642276102810430787510849406694660302432871417581393397846707208689886574468814051560304650651862237124485610490352846984271580978066684636020326494648214772402528054134604703492910789787483559318494250665844681202203072713428187210034944098020788888935609441235631842398314315819730380608212412792013342461277442455087418551503306091137050050914678466006690048625406260988329826061418502494610457301129755107260310642132266216536808144935166029124840606710654868281083540675505190489713356919789328742934725107834650218912927023276961464568273455096714029803593461894615226881579350664965971318018430179078636685359134893402199531580637653074238591843622047447388837544957413121775416736875698364159058215540018276674027341186854115310957924848221133645355941920375119200138022853690711074461077661532203713500162759939918073684628993783902880407658148261644922060989812293833206485477890730852516406325083560387458111101244340679964192086800373537114251646756397066449796789597753403930591741142744181401292313348298425752832857881640492075788222663350310354941003045199264418128167884908438953538727145768299582646289056447203104505909462066669256856639110697921432640377588421079538687755986699346633438682750463026482429995368276581232484810196840159781223269724222106204817075402927568550955032123050358086865845695515607163465664193275964238235432792425672930998303413170086757146044240968630345371471881584601807034236924892134243603047240026371399690681318037241700602021305977653228091279605208919439435654759446428187486591777055146255436590939286304062149112280071178564523306725161143550980001680836455910309815741664558836583977780705060432649623534295631489702597027029565100160840977697729068605435502184360224423875177047260841474985711402909436943554247134362269536590568580187663775648387443647584442763787702885881550420466821901068974003324432593573050186498461990168341061279938957714383412297780105161067308067606148961355231746105631771717267366250561607661378654585238740028185346122104603279977040493657656937471508551176160995617811429394260052484365177586700815885736418706138958397257543797231157823861487738353085725619999373614320822537757921391776261563666619712278287922181499133082884446150520863095204603779397795276590933687909353842170899203818742479140090995383715870614605346281208217164729502763032463811817802571977192658252939306752991225842268176234487259764672327686876128818021287474869788944657556109180826446165157869463206637457314977280101136824317239625395020938992447280372939962788606531983830325641781775749484053822818770745203215474428355912124029901955285725847500351841852235268624596344802670341119640846505319358199806412589348660750508846004372833712786418187702139795794901545227663716170220858783131954613976540336309299660863479618238395141492004091422002863092377103665844333174127162568902436519917190599214379212091587852884866835726903970802116183032806280775609776179727529419921119563219281508161952221842856803949516080755946396888802349224486813871255942260719511378429311288286741711199025610171651431750087010493167034041089985509370863830191766245762511243645363343254858132146231533130264166194734932180899104392913139415532328408543189312400394334133608384980113867374323490294498392304286010980727121627025396866885806985316386968664959534885573353725193654754950011224349251307309018738711077942390151956955929790099716006935311860618279130422017388526377714493110993231215920948003433820576107688309015399769180088189802438225089311171209539866750943688616819591742164310361309570481621056872164342186555675636005355391529905355777091634555894825723692882971991354249834882693979759681158652937969621803700193834345660435009842239996798914417515145904066605747784166580668230493166999965827474714369662499863754674966887939052228513566229157546999470011707696196664475706658268934913689203292200091476137239685891428383228822132623498995218805936495395160752901284607325933846469032720017956408268229147884072765137950052066082689742183026787510878070446608356768852445561864220085334962283873153701104500395953856698397956996405657102261068906479565568616304893757221556599268119252144482302404152896401398883428228512605234083724497471750989099210510842318529833211210903152442000471239923593529509580333872305579884236742640248300133307342512164243196870036979689606888014513719184984073585890638870994672398930033099973638448553999666850939009110033421951113237364355777787641067368410116981310670465786779135929718194245141270830368487465903638696883996598217140900858924030573586939193572287730534774346248746237105385449472066399955879561415921832538458461601490161203285159258039684914056032289354187353952778776536881493269266307778577190494207833061813101140422564053218608828061636258033433406750994181764354640711212439765103352303448254962080444527929570218845212442680297286020035470401756993591045956102674903139547141431913035636613289768369185642504647876829861441946842559765610639263843618580761913493657582416859280057451876372643692550426522878920118525215243852618320834163246995032027904183995259187650301975910679187729143424557768391956781389469415749663989132517815841939860814561063431982530964994132088041719718822617234870810786691841825097583938989488299308699380870389087649794175907041846269092666670885845432391581747962460309639568909767447594814795029689635782601103403494247442976826934404581581456323506041499333617732034474292919916482533045301000393911412401679666465558148900662337507772386121038637300418246043158065823658706287384135469364133500836942464936522616267427842648984855641113802864254608715194944925427797425362082761275045765603481723382359822960555693987901692523702699682821960805265345987856667836264995244475451642371940774414258511578273202471002304775814642096754523701018083409229619150434996510645395784576020153486751909400768092298387019403956519820486649891631009652037955879805477403325218269654317212006748016247639628100045910801775602931044205976132095578159679736217345882367433658646281396143087425059577978667083201181627926970710277293483238832382308834346981237648023114201782084479313023288113876529528652256615975916252214896297365966154082058499585194594056562457720160806335400164656337509793078454065774900223347658860367670301889305375253496867505997246438079794673982624016973409000691697912010300480768984495929712328875003964348268661463601327618981039919688529059562373888289333689321155103060469507375897702796825006676186380484406998460058609163727517197218185119312179373635831770371549230128902700607672767982803039433120640133395208020522660219277149586660528988603695137540398292527008176967167079901619951115494846667567979472837580823951902397629017862944718431146273009218883306297422374514785806497216910873949791012059161287389130044436697459890518418530853162074291423992039446613779637137337435791467213834960354660674628019620963653503331758107030879906163811719443948009814204699705277867754648814653730956414025141886366967344710074618797182075468365350787392968617914447098251403065267061862893597788280681470294958944965413963554263608373618293094300675312531218664350223779542026618978471080646862644909526867694845702280640012480061508412208577829992738015747225458421394615644322931422966172281731190111873155448909619317074532127959460984517125757297213209212817502026462718576188151661226512751955305590808056338088876035379131939623830559197721178591289485624549270652501361797763547543988461378016771970379662129721953453148396987556976663219952087511961438748934457530128715699740970033597565918506029109626672670627557304653602795431905443922727088978771833462829908645260763497477263244444608723208296885315380815260483280381282500124366309324092001088316386037703912010060014720091383176047040273666516823394199773797888828078486393700899146853145443900842120026307113744060785992582171450631208300683139177499120013761367721912161687976238385820970267871816798941599123014345744291487286419490013763026931744120142507759051668032585641136859915653258016149716846524284694995441023301459518535491698305915724458191849597825993188153657770028463117259583811060414387640343638572415058796420055368307288164727166923097749279850654920165030417159757254676212280620357201485519262327887860072084807766725905920310890937498061652549460228908826182910513612659002104714210054052861576256825385988617532664418057183193639289659119770055217550543389798159177691995147451628169448177985471626381949252226488992194709716279327802852230824692411252382092246245909404545511407677168643542609409682810834732049763520914247674490924719982964752522827335864797144043612078167625625999883397737914983040342754786213535819386741021028620534957566423282337067905657612230909306124798902643628940875801033415508892129204887561585224846867607809241537359721719372369367941754842174085361765437388245635308478866565096045804684929960698467206086784832568833671612096356434472195444400827359422723480703481445602867118009476246740768965861183667545871311512991709041396628282328665705984772246504225608736273443086724689845336706591234798455419846445937247821155522777729377950225473688437543179149932331712883802818180918082684631839978415398616472912022707824895442159353501176036850553705573218480945538793044328920905053455140104685900656203621370911459512307656843032516658973152416985381241294774026608703266727642328690882317239139857252004070789054658082905089402992639801129923718365450698534412317349989053798854203778759091037657767202675759776229815704913113840032143431638155342585561029468576813050536807167643231381958741936726636073387610885975863480340093509512946691749874578192036092761224112689851055617050999107095243233859396839452395076320535418380978180359059098325864231436577848310268459740469782196654984106439454043596559649949038405516888991316650963161525243070663242481513787591735265144442007927384440176064288152422312895039888954608589391711185419960255696961515086734541073804216707788471776215182405062308365832210660006752736630473822036881070783234877360853130715422166551309449641913121853288363991648391107593455326149568443243173332832152893337002813799794016294827192674952995916619629858704308560277543819471326332164295599824099082741180872429561215485431226393178665811227524249342703581757318587201975277194034534782951121111949826159791728922864653361747569600065463290163595315498565107708773281405554374543232520344366994824986474980482059329477805907081129305824395299838083171656590635955063542634246966443298708109404650590730755180362388186681724456458701777707761687123930673061566964209048840452971168836014531894415397662624934478980841377770341512464574578930261266260390956157885058972366915240971003269971853783233447448266352152406482198252931199818018614629061837392201290516655005095256219274651402919355946907622195151944763736505122216061736247463106258166399100463045716801347803618908333460501765823961169447543664567463408848308240598402701983488924300553134450668913655445576114779881795398908633753143136443047525644282092803989907783302086338830464569056299643360398029552972845081225822448006301325677409406712172385332559251398707649810801323024908715211286331671541300886923475552399799406731005345180771357080944126031479007012076416191026159988973728225944636647900243767261242420412419275434600079998380445165994579160990421338669020153827856359038367266898181959673997565214194584472278129632659669593860552698791739405666449513897355934432722738308372090171459037532934651721401794273753915243681855801415397202439293506694147405718429382114368084711750427285496567194426769245420251503066450861479015241264546791329441982699688462236151013390905075451165136370477327617432803113946044145385716473464019873860464819244036400360036492992971533833849320086736300216926829371468501340403444925984447245446117061645457481972660584928108552238903823435404162224310350246689575412358176883590481538031802932655524218410663387469292798028694401679143539545144863130251497254112603574884780320223190004620453214154134534034393938889133374456669638626490429975415741904511326456320592328112515318987112078533245973828365640648853652625402035087009202225499880340435734433825361106825603358305900587753392238653296497363552225514495141174522205099597543054760542661083775393288376962794797191995719580126895698945672286156692927945331885421517632180536581424485518217744825842579296971023629740577862928679535184659247313985801956001912842616717264203634836632399242653036656877837879864520357113101985634909416021272268429064993398585651503535982637628522261004425896396515281064059849032957388545279401636492777652809703153525680837764683102843951189389188656757772865584892639468290972838010164835663003313574072247318222685095874664112631816972756523983254775304245734942989737435358507169391046824688660816312904863251630866451973094881355275581561279920429136779649403934110685980588471412308967587584746468123742795577380764456647920493521114803587956786810270901103613055545889805070785889270197065174649223385709162578660270369912249756662908610095705607956783788976992499788459035953038072467097784876046803984878722922733660051831328222473226319110919878684278678809386264403937573189325688238775996863813340246202144576814309294427849806807004813003420495873705090170691844631082213304944496675909362275145800011616487558930106203435403015432341931561491473582442993930647761973969576528626219759477579091872905770482281673154108572154612502160278046429920168033671433354413438268148364558975984475736603808641702084622579974156768764680473686519753537926488310062507063319558500830699044612165124200439610310591612054002338239797142073107785755196622177205253283252720005844308350330611753393435043468563441081632455136146617208786507543043078716930962026009640999441630554781023428182968919280334617362994205122773886796148894740434564851543179637154413793500406423842678775077244816434187377046026113932161808451690652188656892851299833524575487998661562044528579141641618092831824926035479627471592619809719092377483612628186787535371068471610902619014000924536927962162701262539041405187442208252886212688781699581288847326762907723913030336299795565105759794420609123873931143052804715985723989914285236234170215332661859064837298228616587942741226273967418445557240809343618682036720814795760061663713701021518106460953649536250597678113524118921686899793145242398381024114799895207937359214813903747977514830861797384082263309765926185278434787303523541601028428202379581977604841648761236692355277171311896564937536666892601891792274447524957127288408055702520958037785086227589767590643653503068297970330544770170383982034736736114521881100275858861004197315511247727514897467262232749153765343739500115600971892629443114425642522850573005151156731378599967085637677014157297376761121441933393035025042750453551391199172129880607029849910439953311052005675884531176116743106045971643741007478752864209488278409669230267398527789551969399371745524718996250139214768835173995467492512131607005162512818473422421370167616414906433750147509695079408740476192283490762202724208719985697452213304285804573111890059818072481455228885191259569508419295330975455165073838134471050155733460794075123442605865979515763068772154586902587669200159094607246342415527361766942610248924273896770554780643982559788949387265412673010098518761865660670291904359528141382829294379332606982758606011831542538889675367621230036960862221418753773609474867864136560213357873531001901397115442485168604866454742036317748215248575218842238617782792298635905863549586664116305263980345518787701891403804295242652893016315715793967075599304918339507129455715650451470845460913229394641548299061350442572283024984822788398504105528775230746435332978657920339874434312805189339373207776543324198580018937383125564545630314484700872727485622995437081963252521227388511108008588406433165021670896254373165916617711543044540121586395202115121285741900391687076711517152137907719433250112414694568163398890240539004845094322958031208090735406765562247440103802410929644075820823867188672930619640422765019645028309492330435714963189154588968287144229562647624668060851735583824387750299884677754905848993889581673210942328895259943965183279288042710424130756222852032296476996760159005325757919348503570863991676995681073403149930094560391383970853378306272809343409479645634551167382716597552213466481340227319854222543385273073099631300923469907625855261627920191504314507111267922397255980510880593309005665123190265267788005561277594550016307642636147649173575660969570207669806164091274273165640593826512294702210521445403461305309306396028070323673581214662247084923983597535069115320668848050879011793793273776034380865978046571281660512249114637853044883667860108936764681716735408907010738767293378364837756021010417748885913336582014680919845683489345392033891175251772063479812254022736160723411048063825224417539357552495847818012533355589801484754485570884023046260099306653981532638449724035376567055880260280338430107759874213413582713514527892165517802586827336217826461220542281665023623669975103675352409995406090665637656809430140374850087020601830309485383474148557225447017156542373810093726022580258987028557036873495030827705711452132375921960261340867858983554623905491326352115829238016877795011228568888286862722629506864361000106286447708548897698103972004634108042717604331429768682183087098318743899158423782615783150560608316123210735407802744389017806391061340577340696668399264885684736124877722515744881232534890375677280166327790478378071546692431820160842769275684035535357958913294049166819931731515791072157250021341585242118852297916120331995798424230915925353910683094950048931816273032466413081808949378564117901808782493153222267159968452848306830417968193856033626964716289775055990668425428750397580035611133034298893857819840323379214522174550886985781952462864972638129918783420393483858998789095529663250274937202439063084158320184823433955021667092002603922456108513559725872352143261217368085759216986665744455891678118926055891794847556733183571599085698008519078172862462387388565748628397954117628159432484069136258881800212945383812292630139011880763095094721733310521453710785868886179197982746115345405379554989546621997877331892846425345341301541384498224281163014023032247178329864877183351111929706275157364774015298582179431808083967803823491752144251318443877551844956716758158233331449549227331327605477114324490445666023014465579702136528334105912791891774320372305000429396035353572609311779861300959375097901585644307053525500638419703999584083045981986349178342422815351560812093519998014431952389684213275844194118525727684635751817276339272112109178333032578866347393311910155048435429350141155502895966137991535408208309555836737628325707687479957034382953662456967180687819873062170597853843669812197612132219059445954926239098275358159525459260968417914669019277858511044805843566552730593612520902906373491078437484416114208915671614001417128584951600556190944761301919109765297806397643046825750724492535572703417256699159477517317163706569908568834205402473646765643417568145449645720956336107808563104007732088491397956073343714105349916572359621043794999391676366421275251448720787445762065356774713044928437573512786734295136145909072061849939836417447947877422507434781537624923788518731772763348383048614967946911003644850081195122094059333407875252238375715750648711343939533168287172747767910606531417179910900765535386205237111040117240337574759779212517471894077553092290131292419061864068034516598951670259772517808480570918827522671637153118023226315353204561508608305661157793877755261114823276393578667371410926641073452950402263715372806703111696673956742738939994077522718045841254475402379156736799601678749438794775377158915571403360095401514582520918545858495587629922710203105398415185676374792716384615573048435824592464253654209644590299082918643043136952743202320664384452943698056270080755254651920544665406717651075264619373156830827656359475796008399878864719855393095305012182265019451606011884178926885437759769382926111146524024369293672939566841533975205694378734977921867684468460339289881689801876196943538343721073613116454569192878042181337158989244384369122900508308860083390860448896361685343821622556673340989977401886562876207710248473553018632295470381818429712637702951408617061810183728922706067072854954732729323218791942757523997298320485063381811157453432351077821051983820094433310301811159870478166735537863675315754492397370979952387870281244459458789154994652223868504668356474837898289634203361510622936327352337032513887225523345350326501750461747270468331643317065905355735813946571470464442933578250241199005942357932570185999387178483239814896316728133374022707901957375890480210240950257372197229605704182797606054176090249930186013437335544124984320605616009370889244541369962520446675069358348126458803328635217036481227453667676182011500855766245649629653505151262369439587736895155432914751616864193408692550352261019435011212903122920352778741495953920894333368224686316213587196998282697399648473708626579035830174223711629623735853596948867698639139218086052086167957273532656723112313984756142972033722563316177009035448148998597158334862030430530657552225609948479846563869680590977513508749992926798178109633676815217819351706389352022025248314259540608768267273005201818002162321498038664923029896702284390666164448314682579163659420224397440536682382524046839604402613054157663660018848172686189426252180814265625786358788485625934984791727192174913237294092687135519570119501205810584794317429987399396277877364810387438328237055169244390689049993528846477652624464494679561126402823947898126968725689016465500540862181229740842334205958711123876694622204131039640474921512804132119434428986525191441900446792052001046563766739711380617360903954364431905174295599296394528227235504727837256619505144290723396699620581374782272716395476042843126370515699877297731367309919604895795493089198423905475645876714230596498994442024392607791379133480349892928588887573848872750967558720783593873407663490851732231343618701600654851957680337824187602050801430195257211992794774070895542586495166358216232060945710365132287652108904989148441249215164029214944706288912903973847122825893878599303417862363216832465928901370274506347009697401957350756276648232425086570854101219276538968356973578395674481900203800284595800735249505098497934306775840616059977652645026555864146632156349497434101005964960135666869672871541483660558709872101603012018974211649660812938629963079808396522143908621728718855119949998558289437876837283426647461752125739623594057146332622338191479096615411764903114845817680320068219419900517721312744989575408010542703160544974052404125424606121216654434466864402588789290134176299907234683888120112484103306925049649287952848012773375980199202961170747508902226445254501948775927202110485117507421720435866244827204892722933942223848804767217361963134201354321949347616037281181353191138007818240604452007048957110075385464776977140878417658342709522599701699631408833382305852248611958832356796865026647301251650232373265998810416105419343377604065978487228947646100732763266409804157054590774904732335772154256320729089245018992765128946799955548288920645210641242524917183592934357176530010106188373725994932007021039813763921591109526425714155688557644946205609550659018625435318758308810755997516514629999647651788240012240808870570704975850420834373438063964871672775708241725685808493024269359794793565079572939024405639957958526108123563336359756200591055962663530580727100675841155454402458919650804104617381708470005779088396071843611723908706125690132211664309772759685898064308683434576347201355590667286487835005091557166414158564174505298703536466629715793266113721418043186536451320294168875149324062971203788411928136603765388709438660310620850614626702341039337583020719407934684453906635437307372244870892548055246885206656942480407767547423227724998476279882525492558415123322612888583772685097397301621476455619740421449207663479358539811625744577188675391657407017604089252997262153622134097015502424108688134417895293374666553283532523038841252381601634190209608839831580961806843917499317152613394325356890745711583558718799761769339102915311041210840891046489993865324822645121578650887898055951020646759173393955626132302434489639864422131791314061757736433331203300337602316036665732376447520241693921219081732987803717273840246481369732873057144950441146514425943391760546943144076933438007373213578549075013115683423569152077838136432150274659212667267358431547796783444215750470888086530775590301443101092406533842378271317865784946496663350557648261735742812785690820956974573022085502314438123069303875599264437437510690060286904495023274041110251069726090819769843355242739690744484141510612124734742816968623271398003635751509371900470412731690978364996128013226080109827722541190442113521573025758846480290437582973467087670783941746501598012342333342407209959100429310038443792481370257718905977096337167337888081955915106615072689395142472472149121623321533961616911452985659806415599544605114554464089456071920254747728235101512143531031636997053395768059568658304594617788419217050411379544069637358249991012799139168169895783789276149579172212350147735978169150105545166692721049873388334426551604059448389483418538582481755912332192773206394359860461848701954521500639576690577536799221971088611955545311978482385170312854143862215049467281020859478116150522376412166045695135263276646767588038011810588628511563135773273023749208155686592237003942786040574023014554190057851112737134341680418687404756841155970102463934910572378825549432208364600911256695908876269112613419807642536698588378879064767173273257581306366064814178833880894082829681516036675969506267613214313650752396583432566511468887092172761594925310002263368947611369092016567420749239151614475522276288221638488184413169970913993459284907609805714144204510817784660897705963706452043362102431348158473595301410098490125157699002980479949713130762965599202561132738644639966180765536139946262080787780955052560126117227043361556241566420560434744133833233925313152349494122273732801004854354563768292472500969528397569638512724699001557622041131923772633798730236345207544931192480423419398156254150427263702236822865660253476828988150327015327840395022041305122136669716102771018856511088019036426112418229815357925585416886714118774930435264230947862671760103234527422143568714385491627951385079332098888235189268035161170440980712529214814831412256303504238065301184041655046793184085529438242679494382081180622159549061094379917501519660784342347937211159942350202605464554961074122611674817060980617110343771818994512614438284163626030592450288230092896352216570233845033184459814151535422766113794928567848329196518777255630471517906956082183474943632019036036059184739085906362585345486845108371071287815788211540840643796885118299517419742195314810741816404718043002389916796202133597202122122054244511135072089449057190453745809107423122237816773646434447190570845915365298259163788311536975414311998648728890210634999868284187713846952926137533617591551160961264607482765347913751842858781912090405754962140921793042010139240748950781635612749208877486983917039389583837037685707908746604978548347586438091267142764947023510045086186846651521801143776497443438742025718407353929513282209971345208532613083709815699849792207703705169643018849985612248686584477340864169172469129490027185090089722473378148939549935846579733113867548403949120350278024065282205511757135268420971945676858304751322058126737034332166670859555259778054032900079502361401631133061774604500386270211193631840400877943445961291548891376501410190644133880236362663592382814404743892957714673840507457937315633965145343004937828635685064951166401783571176899915096066600184570588193626512565826607078489157999699838619917862741579503654169508193439292289156910300729225564911344701776710195182031931881998974735912454085557031815867064341872882340930055953354362648195629093525540931920036024647496153974772120222096832768916530623842419348830098453523828481972102061881847078980047026188603588719891900911100781925614348311846651824685921504570547730344768793243420687855725767791535519354153003988393119448522811821430680452995781018490599840321633730362075355996076875175573766995487048479061291604187636284124390662547385052002693153085344853454587945715821155010113094860882674206221828396035483916275203041283764751257003991016383295503508289589339232812412737370832036020059375893816232353436462706306211916175168635020882609163642916985098071673890284599632731219482177138409460794808759814677982730364089194655629520880622249938585233447482275959267888329550190734885347893891509355728255344544326369539789944938903914678149377147049821911584448908057373740713360261318750883862205775484547142582078170797056445342965845487330609348889529575797883016429584549406655133214240808397149651406959110383375604901050264990296484881873399129598188877935264013053715275970411977975709738948356999521857564058836081482964157085722558260751176746311383353320049277759767981957641884498627755058448577199460009893280609771521737895430254458448472636189714040597504330752905976515096329810938529509068568170809410309890327693487963491874494752899559997857363231357100815189129594676037157449028019674380567892074050326966652031788614285597248436731798896635451804105212027268131062993900817682488867627602450231061835169233840910928254032670836809038274196691850095469828362195155573138314811416224469440107219556616858598328046997384667779566748067484853617473984835708419531705741868296043921469396894540251920340094534246991083185514447384977954709076430287591597413512407905612639456618571700440207795509422110708804533726707225318741686575745674939858132485763119232196126938692824197838502753092030647206167770547182401014139033572311074655836338752301240377223958249685413447673731519950098426742283882128191531687366308636343561977580148920321134815160371323338761458692915720175417773928795467276842006984978270526635498006040784951978384830414970544646771493756734982011892955791432294541279506166047630395378347761645452149811312966308831037331273442222790127431501934864040702047048079363291533851569827852423683250621251921917192176628065792216451545604953689230464283023155623483567593400613122812032648209763530215004199653186480602122553223901430058118495045112358690874756220063583971850986798000042084855773969013278404118814880596786570483368299809270104430157052135496298153879180974181335881757369386006076638505439274507343704522027007267890574654060912968928388843226868399420366994115509445978391928692027794479270641526520331966714013177243665931374364238175710056270364361713564657921375008347437507707599416429660153959626344702147209142460116380145586284252187972141918520980020243991603100446160031432451684043162967998623083437370531086950906257561182213659677945751525950062338424023239090108875477568083253771726093696687703057153039178362123216509449386831251253302391380247913414927498247070905140705487913746110888426866612868557533279039318701870946058782640386934864741109405675738624248830831982048429259872981363863982887351393594889927161573115541838437367089246490904409834505027299764126691937688034487060729035974351881632413749901247219933873862259753462096111493721964873355896042892578349927814677766258148341185730803255747605634324178660402654852145820239245867414597108820838579677405572586567398283619461850305390588894885921133995310349614584197859680841953661628253062018664517704831671991319322749689425349649705490516176751117578820316891061166469807833600386486708241166053750459799876939757206772330842090538810869697195482143477154186839807132684560495221168554097546601717107218502027310525761363681505640233813191057429512322212114532542581741732577433355796035465705111509742562969701966801182803441696408983748774087666995996373308539168799703273952294296590354291985296371561288666164780098962383221032574886415795412579214258566426884250971781610940277887267384104538769771315437308016195093993398183012604404451315025348781480035122692864028725853279534008190001245521484000055504721123024012098031508674998526833199464541900778262607044275229689770650073395829912411191215486200693693425182224179026346391183637773878407799629253650950654381611687409357908874840375623304729880832092263013308294412871173205429925342712363047508963816635711107190996589944643775718437721323275662792348168725801226271769564643337653420373945217350693159584919879197373901459432965909019742326733551496670637933112434069936732311924216574420381525770801530511973512132280344244902982200509399259886557597890987109641201406395705338980331836120954802335667372271202976159240862366268437836460433633578871679868195662631179202245935179413665785254158503014474958546978826347723206945510311820168178767344371304850711522856939278236908547470063840202899901097808692901630399414024034505455751123286023321774869942626055188887099491131659571093304780189199847603400590222474907888469383374994098437286318380778508556344063130723501648859907790942738221869502820318611656994535808246160678639092688921038299277375165212980858834073762194816839391574559493111271693622133201306103032787630593070480686252120553036552888049598396185267324077942229402359084352426192295817583699551439418086390730940711926244860245303701377316213797512125803892457098847821606584418652593535909610115529220248028600637816158130768743289593872417509236639546659346361058529786552705900266508094960659060000541819172453558167152802354271486084467269527266114595926818764119741208476731763789479994795795046189604874859595599715820479909596063756031554961012836799059407696224739432577976089883493375714052053536485801194083575677758044846467449677636463166451677437579070171428146050201585291926226779114447254643233618248275403303858999017677451341148189335156407733026453847468143880333063655493471101216788492559204533859269619833404485262719001552535901137942947096845153209302575534461017541053964181736487856790746165529895680161756303692633081894301891489548918237022584239672323446630327816581826619278648900757379539791911044412344133402177764992701685761125933001270702911574234522862501715287974068139068936832982085033451612696698667796819827903866296251963770619576816407229691217314027864516465871701269373742899897286707313745842121053520979178368561225344919822542757003287557424599191982611639425629616923834289717358741037627789348503948696714347638813862394903669518565961984647143463696784148334940502132477684779683623983328530011888708500489531407108850769565000889145359138917342166623274828149727043079725848531893471355303408259893600741706571824000744433222114924914058513791713759829067062786054716561715720167364652457621173735031259298425693746360080702833818548143068373852639730833071844808894366752500165133698486072035689432217367154314843410823881290216939077396685614740558140599770251129566071747387915244192278875161512462274569769293040660477193659417665236154874532730753077715686716943960098047903474086899628520653522700038225814577337314253729644589644622246558207005184559361191445393229136453828382355295000349926568554635413781016060190835164564608330626580925445536190081585581835058444624219980628251746026721000856855455207874074648806518895588095813735011013573651462961382251047809486968400711192223791245187935626001224115773155900429853890637081394804660836827781392802406886435118135097628872882841173107607530949079775362090657465834129995596348795279378633545824577879933781837936962116934431726498565804304993586256853085109097074817159360390700486895416224387301512451404955862213741933382275518096476831030372251803050376495573368078490107811615717427335940320565148914044864750118065370471362024336668127560968088583689921697482552061631284035787134286555077939697247877345150166706910360826487527211838417471617119642846528927464861347402074994731403510443124284657165072147154935060316034761210936357394298717747187712663516363112113627403148420875469819505072075743934424821084259007484533652558408387320699688236095137200320861858057211188185485421644504488978739275689939239635658963644574878095304065763945631821901196380501191839023484368980117042002387633376299717895821866125597726127326015673239617101477337272358109475895632891495102898268135757744570788430885986178555429816647291113848645829344375492229717065035340822236955127600193783829101353280603732590873804472729830827410213583816086028965654602114074366110250188730117819311605714106959501692367324707530204841198935468674709376485375973790364875328704775393675436093480486026700716962555747673014979300203944136520052025656953289286989393394720806594016993467503437721544035194509800971853645854492521378082084468807341589402534295101328571310375985464569016958075061715958140243325575457077244718805588640864735808692202273000600744831620615867174370339979058718547826573633241117186756758438137371334203595102854442321837378436654344043106037642482278962706169295240930962695915473141340750836471575301434611523220627138036929577553298447495052747528469388682232883747655913446611456436582245698860520578299584515650413179275763325701669444475593450266683111472005999693131442439894953339983500676760620235651495737565418677660246653407795774288308177842886929498624500380028623323956175195297005770212356635280372377714065277987018769546869974915119988636170553984254711339991507226799845087024494787962531402058550738939653752734974663921710084090464889132965813948144198282233009033967086239375753620936104150211482260018856035476437577810310321774103464713948268704159579410904007364665545654181735651297748172232083716301816124398632115222892817949518591451893095249603379749671679811235943283825198257089980479284829118810541653032753843789427770249007842210143768946095052751372820099873426863737186057870487759201470585976408539630388910319370908200893857422773858188042756144187876722257696321264774854338090230724326942747725679962397623778692795634600684036402253591753209773132062368910370387889971051596039166072335753908885187781892584515791502789183111028973099165966632078095111847008984612420786040531224852129823681058308903474841659565242588913775896974579614779019403815657772108716488866651915553622698671011287131203798295641356749370907785952956596959194090598388728882424913577126477768966297103135899459612528105075611886806081407972256417988115255582775769603151307927150355329099756809334098520532842512454071024196277973411039477209630782300372242885574720498803266206402858901762532969684901537197969555996737819901909078444854623916442386086228766406069092246029455994488069166588660860205036687569736214949666557612842590361319510339664121186560890023154575877961981272832575665532164592760130659851802677365249994324595557413014897002743674034575277331453796584218092878331328270142539350370261377646394161947053536761244635023842553505457290106818446900062978597032062845030988980460490492984582630093415443098098911591888476601767788758351804699966493332791695434395777984971406869323277384119453462108303567798344519893874252774777824882207707840785664747882492506599747237436594588296563793613685851868695639620798332513364450782335073793213073503937578108255908181144275013053534240198891136920322003549997337925119363667504750211114652006151840313643535325740265620494377500845660923374586179517062967551317194317557044387907289536047350128752913614504834116054982751415600527430813006585066204702510480392234330629038889748311254568439220576558634941411297519980369949344428012197101517054325836218451903294500091241401778809205477255806772343775350928019327811185289101383795778649118226785107288125425307339821347173316774665223979600026985908840387741952006109281436064321255655740860753766946628609642649541085224989060611053351942742274611046835169622791271706656433378727904165379381142799972234750355678084442097297563298365171392839411959233842809721763450808968589599618578864005938087397103604204706522720899017457482666319506438192018068811189989459294276302070819830256736366500732402447898059439014018544296187043443315298254426261593179862472494858243070907447690462156895695231391854404949856797941245150799742070678230981208162389223037569160831653276391095946309140997347213514163446686716201134954055183217570541651750896805956946400093556832296236574006748223568440182440204424780119377071716881333770806297651423163766881173053745441358819055593265654185172413894859241416604480022842595919098124464425521751574656366214138439918620524084335374950229906738685554264329592520180268823642164103368473791569333183368526641078428672456900626868294394881025600217850098075321795459205993337420737224575070564389161302669643432894289052152319593955270989187770245168660858774633211375617635291645443273887582413236358948830764598920297679739888586113399103818441106432085879634685448088680268961694275498025535599871707169724974406303301670363502508773997088932365011561538552224632173947035619736974458834442608819675231473016873147112072157357573214543246424403279485393790577016064766651435519612755772443158992931544341389011625607734795373171970130462581804027022059946454981541371444033621817047825517244540607752939856473088889175553680436318065026620779018590915059658939348372177939770177365743744470217016290821683582295120515238959062258513041904663032954981584240501016536602230427261476922643425411426876024537937587083520268149552037715084570278139965983509182234038207986218965810346066534811585970853171191369071115472967478576296593467098512648812610562702766960487568991716739569790622533987203051040998056543789933021802934675778217660601539414388222620882468802446924611374027218563379830594242432596857909588235591615915533236441189977111719525953415784240571319635129574240506669839238611954181099826022894314376225124681126050411826970253701443608891328556492350956285724560679999782340919280468589221425676781399630371061685504543232030028590815528183393141030752009557063065875097332042720086370510835879791241383579374986742668716263496230197044164054996988750474342947410297968585496513822059890016920686676466261526171667983424666178097693690004210270869212816356572544661282637312339783721361829504265344639534603185667321037049020440992776103898014289204162617130379662619813706457047035591450508764244469100064150259013883237018570661068862088922734388898178272767265996981986699059163148335185241511117857630927468893939864237991718230210688532256770656998687020396097409438263087925485636967102174899431113469905796586426170064822823424963176837687214371880487880681794825904595935055705778422392367549742584005925876373913732830314648344748343267332746656031678728015071147908184472213525182656088897024831582137699068328712568462091977458048121260998045623348498588092450500667044560121829564575386721957845407826323387888660044231555339260832969361167276836395542733211076054533663196323582747490937264212902587254410529184319643794762044620941484193800205042941933212898937212924689098405480167493838435183193388730794401874893045639789824390148867800020729067441325061572574119642672631461574457668624979037508624390937171621651561830046024932480300049639985367004114914103980239900209289540093102274249633358224113960067643838232970431734155481519581122829432049669346611783008659994751847376220652793902871345543899182635304083533608957243613449815916028607649563093079268638482376907003386111680728822712673814043177417717034523283259905189560225031447396074703084077022486391600201627463859204978394354890431774015060604008514572746772444523922464107825977183358263263285064991882317024675979883506359762394258434394023717701194331415964861451416647850627795027272439055900249250851943166015186505152299565244622696923940327188585127839014511664565253201104046332291601592957586487074953250888162816239709492778486964114153745798983952222519657310026275562722929322166179107686292469971437330708258892193159770447472702625312309807883351798293235849236706190831923605285081433112322837774562374331881676974314264383176166521331379555510786865552068374733164369900672944314032194794756160083840421584009927850322323750644827853098078667551527003173777638121294057821391819514912839387051229716496947187085404844049475148141982235397809579797767398605494756521550432761128306435807133693459971187343066623579195297073844376509347193794095821628176394317411090834204547611432540413142111965952628067383544117155300937276775744288872852634099638958863243986011205982712303957077872726212344665854901235672482300416022155586093353611926876717621832869550175839992625714997841722842679609581490602147267713006342037585205270263580084506033621208837997909358921704259515897144933257208075983311408703778543381414604470304928226052082217498638085499513411424600621326323085709514788931169509078029099735214642157492606630464032406554082151822081287458996403911069725430819408882196357218463516423927723477948350244182134080469458965417952593392622937589826381186219539255396165210279898614447333849699796666890389554437666382249012103060105780331629448378848944127795739744948994991605507820675370252270433403027192773989590754843046236468119635700875601884403503454428880064280642034682881700303517697133376969369754428364555709595109592876554907626993385504501297289857590398371370874807698741250224673517523860966404272215921278734233794851571263493318682108887889806006596750014528768090895428073690062733083816163537874456758496857109631383827583965413898201559703344031929381547090588301342634440067489526656717585519382046352870144565587234912216267292100982556515292318071882778731075439046326781160111236230924744980866862096148541529888343883285497893089777801962928975251481118152668461172890082866523220491536872310414308597123267113267744508108980750012544169522632693036318921753970885776990826267762063057048277096464131828214297507051231480581036445934764740418900374264962723511766287502426404111751415317608457165409972725501995516921538315430359993268187098059522507542259028333311569697841279457728776367053621460301721847793759106061272377435670438578297102131915665415673940506882186225875694281986101393974200695545493098873867599328161512974556510594942475526872597260399204418670452365755852243910129686302002411035100120222461374488240616557086537620742649164204849839401143194934617382042714851394631970712100692262481807555804794530495199065329746559782199417566661685210297951213524542510777155555384311750868285171205871040921168195147265240689344930946708819851462450768043720665014971441716208111922492752616974365864185658872159822953468746939952391005827645951995619612530438334381352002034775584117256574817635961464929406289751055605481137177268603446915645963329942667563095380671452295736277790334580068004626435265705782040740634291679567272841529467574012859609681413750717852510369947077895571192600189833671517024972883807519315172792682784506686888462102259993803836326033207679772122849235374213156313496643897617025573400942268790468665750380927732370035258252484116862004867980527477466766630472941264484945335794403729684138530175721065424152940785217177696545754825628628350510981087376257144850911662898471677039585846858374593796765050788595833720934546167640751855408803120291289816662656860029851749557600101674652277011813329289486234210248139773120773109799663213765308051611509056541693498681632232973134249217914983748738503583074593030944686958010091090236124691333585104411343810833999625223479742950323563867654438116932033109924361779152110813790140901558362381363764061954861111126659066384251150890803360184119880421942885770677205029879785110610405178239421721042648239739985656725838320255564599385142224015339472190254114504526792050046596321599262894938146829376852440395049605562484684257922651099980852044720796114514806088817137058317463578181018098273454734417111860799165703461239306859559194781213979564133036405481645946859545140097967518887171571753172209795409710798762941245960157900195190670991102845259795865142961446336927102073596427060516452040099677129099853168249430120326159542983960579585649607286814878213429530967580524056595819202112330501316987609732113967677617922011408173577794574084882837683229257695268409221323176799023899125081381055029963122714364598699748885745214997613448531664049287820655822790631507697673192416288537810974073024323236695450297654212779237810148073190886120128167248696395451428217683734377619366315326075421156394902233480489369970574888620433995329807099816535204998431737917120570480704785806204025239843585251127483392656123409395912135039735715243902236182659683063868747988004045885501805255036574853302863462021576579711292925089205268886936039723777806218790157693846901075211682439161202829596573855147694259816594643655685087948602199392060544590396953135529791107666049516381800221978278140877514139024004099795180845514591778046813661717147992591195563320931490788379693862502011599734322960838336648150980711138820616544358720382466914195762965690068573456677378983619481653189022646463836455170044367425170587640451946848390839844073511243179848275588337141421545345214777140684172861669433902465342838997140414391611445724555683394979570238192775390287581525960368472108646937187166083428705272623998918141103181794624947663095193187773912794706215379591636305430274605689970657146562860011441092769536054039632528258934126314812910087948923820086038235709581738887535828688738461222026055532970600473090864881723624546401262152485038984476131434259754572099023738436472286908836361450745587217516832361734063873930805205171744988729342799616447097620637507994954807015194544687915392510294952104913290894315630615325193206571484242939715785798129275740780519632736347657888385696119214141876035012513689857879448554709447434765385193482666429170861215317317746526074667887718195874751637513019491896313414521284753732591077328916241850374285664047898007103952790850623401049580493935044783719655148424567718037800117186808350106256117982189445138164139200348928701681184950538015118022138851894896123014660061229374387768871809217746548795677697002428130297458483502629970924704330045427203533125200180255280869080504942460160137299883442816752149701169724085345233501602289003003830799701768485854175313349098118596916483361503488638349147737323266087590119704611254494584660657711372438898387382222280699180658081310045320036779233960005951946745591077077880406228936925626459273865550959564494922548983104451183255975773469954841844517130971867442634183370005305707107033998984661006181853278143892762026981098012643938243592514719819343806532225993181634052647653049816943924786359289215495692589176818230976450822328596438094559316355700843764025471116055241598413799878176922956605759570072249697105819813596223410148889082973633108870994134447094402188450404925011549032848830085475162153536358802407159741717983229398807502753260918997435455025782014648328331597776002960056190715320189796202239170394526633322700703678633048416167358207101776867658380798435706238993840410125113381440783451732087340113064691496525116905001291841547778545975466948325578017323071068333621419931549117895754599563778534200919422345929522130481021078381886881268227444791249069785298547832346140361287305161065600036005689017278534321179561754617328287021009077292451198188435211871102571321676954313722945355039778560003352758741393169653452704834389308482801366148066254114434041352108155978759782201184916134496181146053523449903942268998569303566956493685968031678231144442817858923346433830854899484518387540651055146764674746354369276590820336486897274468568230757285735723709645120735383617033319086612003524326720083636131526258990690251022443061033312170155140955618727818819921175888924390756837471262897057448599523410709439477980589699605373457382712390100170591057084721087642590196983164743776069862750921330722808619451640895492935021913852600442168858705916089152038681764731887867582542558825120111438453920112300573384043911939668784044183711487232146446633789289198911615511220545366605659751490687944661398081679434106173029696042712998364061041686385277998441460377196647890418481107000295837692375912831204482431064513516561006432371806321158258696915311431577516238346593928468148264549061601642626480566705514529005451374024027797992612479740608669600423610004247495964247365174610669544182093091453133178193791089982342640869719190435063224823942095064937631340005854975014367971844305700309709898529273162198028836328501456591877529042519640352860574685109365626886018263487137492601406907807722563913816816661460852984776798128949049950050973747035689663758321574487248608380993083435481750712762463476317603259123617322783914431024422565150097744472428989917545658029943001658824034465557384381676381931632533789396570065485856683167685950685532005885255801686060054614227623906180425524518629694172269196036303169543545543148291136578371162351230048659229969888519533048739733890934725755170227214533941449188906073317994907419683872624839326282295790997831671385871920108437508727166001515432067664753185857049128153954569943972894408500833781410905539498996333883445441623314706599612939678939456282284753211227826058264794245094130817090367720421278416286479832985021384523401394725572358806920984597091717007747860097580971246373250253823563476643390225930940363916668251498429025934017480823612497327011256343844473730638076617218141984904774625481937395939094654168998927507186966850382669543279160552814726694731652048711813842003095054425900198759441947049252344699506427066931109141382724460086440552744880863579644087667682578488255503245390991793491313556461710041970294338582077130845965858426122008951730035002120331674523138797144865535312017994361384317099856623420112000397831732331997433480253008495769834045975470558827521828016460847921655206556796269075681394509525967021127190220114592511018592817383454785742698707851451392488799761985195865929926938274008123239657674036797783346270287746720604985892000153047561835064571376441608511697733219174726632580476099022531167251833988718224794300087176433921396209191874714867885338216915331444707489496614010968927566659260322829520408735892089058884886033041815487514636071066160844699579537672148661387749090699787053443908982322952282714404036728351946411821490419554497273421677972929616426909169445023209437851022458667116593196069985854206776148582910332293361434294050218781711981621172827224073442747741112033543862345187720661900768883733608195341762376818125264826085370037176153278148169451477835658749231267357655364701820606211519217812472135332505178545280657721436821658862495094625088081670724601607193082944472390472626095235738917624122854883449212785794952568475560601801288620055978051273052082597085563444574460347128024918368388131873741266483294737668828610552828726803895184986997091106967020555476749300159533839958882199644531462853313616825263541867207477863478940302944619046381388264737277781096696364630645805025115415670239022027888347408722269961106299440853514345196031107886720194559216933513458099742492489954803233574537485402073845658414547178909701665362314196424721910863119268728630518190535880256045676816200906435643209266984467535365233773809894896318224766312542551412029270912384051125299392804996855833235058576753868579478115655484869806454652797786360502698929311936465384592517096404994963547665633434956008490014366586760269106311087194293033940281127903750622501695277541980131957981760865395010754933711106275436954688781362163430647735158031578014164868825952300939247689041345263230383034124669739363999431970279136452922916175565713679627817613855275808552503217365536671755206583520792601273466319459478801503830959053900101707785978979457888763812433610743284932621513947259576204816982036330414518202262285439340426154199261665281884105926592265335981887254018157127928890557256118105119775461627041860525668435353154669167380502462440658349116275054960549120905955481908926909824481070289741291511634103321027511355965843261297908184858711814114234508947522182990170407967654185916864274710452421769797057552794730722600836201361465553907134311556144288393653299826944658080241529186254584401420798695194544601207093913479931299155591076422891582710781915818630894481532923970352218267339432625746666468840598374831990371727940512325394133231185758972771256104208235057848458120283619581708409028037980516673925660734620659586002496544944229755236743284824507935454210796066536942143543759527542801437330010582899447881511383094927448189670006984169380123908467020129466094679084656462355668842327494608791007203417495408084318086140064130938984301562943677588519174062755498949718350474237466019164271604928903600071701380438165443317451942596298620386088361755638616422958814432335734537561337430982590421053214046728641403586321424586445937755626996289367201234716299172953208575002750452376976091676732043430580777211830217291152079431625116213056899255073779527716097018697296572530353563995690748934842397754719890747435787010190120218420260793969276920416152195411213176912392792771342451890102277603181167411513399421678790685467808454503441410384933869919772004029930358518827855367134822777162561459163140331756224345622867969537521803545356344655552399107215016464850878145574271384867206245723643865832756539236056351748196244737725202561272242886674886026140580524943703357524025300033110502455782883749870546847763617067220810554252463075459275720419612872294911609574974416351361491402670260265967653454412705983431432743155016105095091132780785444700267114448548726525816890506702986157382641800111852710172904195394932822994529146902504640666407558570981131060659382951435792659719214977058384575298076733665073909050433237192543066495542076619544459921314601269306758632668555632232270590446649742845911332045221289817188518590964220719024300452726548154775986880922468204162827070297442046465341516483491083685357643919965672466380854635872959744034814203524903509645650539688424561681994139507922890755685752607478997583150581868122873086456921580823577748314294208057338334919246184785548415587993429644367077794099981541118507756164750238825207045669735893862864509877847409505780927798645678492758147964518521368179100527485975548060883544315952797228991543592120380205363869658357127940120512412235341479813411810486624807605259104558953741474275487537855818450745772354013651006182631195419122148850873451546111919116186131510528599029381168877282699599200037094719688290720488685379567859045091012983634607200642177212249596139961318919689159351813189342103407576395202506275055004390043760369794431712188233463385541280759346168141828851039932513996987550160720857377266394651675026505296664502742860659814510145354425698056727201934674485091177312690256777239073538891786986685432219910658857521368566101538512705867786492294709977414357030686488432268158390821047757914743230529658654831066334803139690451743235902378636405801476521970020309563477829495319168479280079093146920394371839388022138079144218469409099976438443471839639187713761849377770283977240764390652936443128098868475644094820870693769065194899063201949796452778067812183844146362929848960076546905170425423926747145456539917595225575404504357965600393817905584432263676971989764198576215444852666805985540622147587528149001914168334385904161087056351651015144672549463921117339012160484861933293683081689979565880464115327634302584603948018237220151700213768335521109021366928786207397595008845484570196919455895481496979013284908172751642973831648216199169763699843130832508743014548417227261991654128760681594619883710800683857069386868770951858530896181510987085764249477975780960432686450685163139254779945659546605908020664614075606633357011426470028288631767667950524956449454486607929610903960719516078929216630321492537621132452203700441717900565473390214205549338935234821467239051724827437987552355775831835311425202560220157300526540146391177791090027840259217519503912521060098512913947335008204594433568973261739808065518934044014261483347048240470874779383878880687031899571301522548027307774278060008162953208973833236951732017250763344340487545356342746149609024708619569212672980349309965242798223367489428973823977843948770103123830133100380234371370929815796008739900304285625055434160243887498544472111433441115123083285178646860974291814032302239024207954496038804628534788869835540574855680369738169718094500976882785148282761084699220798646646997323155004838406035848932285034794314998556467025142017908002427771150441817276806604297457527787606772014396983325811209361579432022158211777196101810161214122629093658180374155611964111290558433333211788704118677406711769639462707374358794373837185474576318768376132075278587065279024699137725310063131793431508786947580529296834284154901340478516858674070272079982487997026162364877390875783751142266759473432811758394557452067619784516768871403050332434043796045365364732762802990868525232447293798596159853104071340453222254822756289154933838829399877500087559905761914998775989656390741977132997775400950011028907599707760123287197632658357152686985296959562904176164874358430568901486805162085046997023742702974838430231403088749051813102457270385930022381136936927679917608679591742684462163906573005863562776016486959900428565676885419630054267303894403752600026009902091339322693945825975392404274363118082084786425710772093676469177344156759820030159071279914499422586220219723065393135728457679986870006134671083636443377741335058378886117428608352170953172510266408538790551734232180151057482664343071906676269531774769405477273994242993035870201246993244285243208007888516496078840817801593272720995875408534001366678238954681974306922759447785030570532473362891905029338618141545656337371798982746691649369584265535167889836721033916531118239210712810973977705259917180388993705284786642065115705954046304179715478140917811715581000997788694355736153863918328653072491378256077129405274329869046636090946321037246692629691489271406514475311694521122854961599592001475375121820760712789462928248547422933112174564549496471585060905045954682337578844807531055718058481935739749557363544083801526833791178933628555514990749962326543096742051281391215741895934224436584213886793785738713364399733603155386329540749433812610171707115105732287586413387053300365011978213145071080455691863341291370038561673819202035410380754972174917136720264942851119574130219644803607861021221934105139693605604645611503643441097856686415483244825551544043040619723536778111720308946065028694634935096754204584133706945705409999814979741902127236658533413541295351746237615986019907964821188785330523699400374625232843568483903342379328868399667566958537769156559113529590484532415593957677493964833060772138933089786922570287140935753499266398651586198225449529207344715139259404632881548177689977814017175423588550391202428384145014081747570114076136944088861676717382809824935937262372884801892874619459187370253538163855642847896040389713481023752933597243526472231708553179302687559170272608372046434943721186305626728136517504418865594963691302849196911020939541398205114095717853938597837021420581339790070435857407919732224941084917936522453941107583442778765355513612410467112112223452670566717645397664326054842490283396680229042528136557730424326129168995533595261999418966056999136869865968500373748358332699532364458161371939632657640849861315964054095529165969676848629142395185092011188882903913019056737303285017453819345716741392105786106270442018089840197651165732381529708245284605914112921139943260076647241204409114923144134991564209292673954668674919795168814250864271084844655722071628527047486751258211113158686206511241152334992127022787244732908466812551886117970307672932139642435081312050686834237711344174135332708697823438155793427830670610784917350458114805314237695203833143273635790625877090035302016079605928083013061198215677854720782571399811052008109643570486114629813116199150751326712979705059903400566031855667717203819836465303894323334574559365009575236190704064485698870902179046518324734191769737213530654128162215020476482261139915123708894494050136971536804191053311044282386284333085831414807571928995937587059135244466100882956827656932064963414170054225721572258314941307772099370446014604766539122559065118810148995781848771503949578521312857854326807017091066734385823442005676755532507311797378919312798052599572061619718820345728664347292448081742832690764454890237171537457858557247715495886293012428809787025759270769601318813431609547698049091545720305696952787379088903682396847776946166814354988354392349027939370261413504948139980574070272818209586861657919050737728872591745618851123258824024510828634007019495699329477961989716312264031881047689953026804079379009552199292717855577939669502157666323249932449264999950713595503083902352241987945058290923065814545683517263446777030830858821960497608098710748436185350663645019979653664022292766478972287646680666286795045879011013354162601587331342693284014312538350417634537132301418587711517606138297303381884933121225464001082951902475349729474130770911432478955352639081907308397155287580299783545569080346357381070486060337650322522287233233086065774648833072109277788756437621266032432808273365873345839342093841804421075999333472461066594708945392878161382942625992605556522809407990940721336043422933675061995391446284421443274909458100137346179194904782128709162691703892790131376751116830129900245879772172512137585359652509065595886555517504669284256999814997725665642167738260509294373514511930456315516826913760763006525590852629253200860708630723973348884604960665662773457540337644695670932111462346380663156839431217796243551017942319257270379122930677450204897291783959510370372347314443108461535190693005949714404538722410773656999922918933923396800900582338374386530082002303654075731470199165484524767556250748341262838706107136159654639604485397108025414362042525584152114022831591541267434959318798182554844184100473796421494525409570432774365998718655214501061428228475344641859017521925409934180942141665133819342516120685460235729871171825593477994823259339577959731253090884951690007524792760759801830726082498057990853408943879438952350962687769025945520896055103033614869834068516396669586254842573299866458388197966230475793083228345752355779793081771614244062335818385294917231788468159675923321444556492358779821261796213737852829644676057420151154561084882114490516984976847789843346182719474410985033904108383806576754311294829277047838278667773416835224097402876707554332784798072672654186025608211298290908747723487318632397007089465651178529339896076343990151083093315056248745942834572965366895820386744299953848446238165059360976622877597341882371714532926441077712579637902755299106623250178234135240197247127684777898036155259644858493604394772583371417981369602669841532522618768015912322970247062976147008205048447558575626694116190837696525342006147900874538943306751358554602145321997923042090813392066984476257718835898201484202745510994261773987707154805220164374841971105217778511700368624864959850614672813016119927018716798818399274045466141647377498772016883096358334395827267344359164383801265158657697740221915334566033619917211138762040429575759110889357643951184948752010299760847602194356214651420122807882996036632619518527569041294479601852143018214123169648816360773593223077409032077153619740650237204336617557317257681350798182677491446126027074830573196648735794594302293617241876481031779187926417653171115090597670070325616407830727252424815222046389860481092235751805671061630949142083098353638001657421630711267081624613445220126902992969557702315493182976952542611128556662633065789804151743033599939915715449361632868736134573636558909587210174738817018585083555658076197785682860252178801096607260938056517016966071661378244941507489051929130758320122598248602120375341624348059109435285828351607849134817432950000105077381356361914774696574436567382138981110170212395646160639236015673736668239409670058234356680105713055151406643493025713454350354006415301863601038079017439856837378244237143237728161221841855289770616313062552316814322539961097350325614114336581534418340870198656775619187628776211232416646928195730802320770110979649987813858725111083479172113062579357633219432639220851870198787794200912632179096809341272775682838075861495402605080314305508693584552944052561931737995728464715587547738455427418752973542237600675713101104886381980375167088408905208388679694050092761819749776395953372567026330964837698944237392746257546472296141384602690119233783062204920698569635567556586136367760854751781578824469890491955262940722723593609707903209761557715001276780016883716784121949329421960485304853298519032884563123612560043837879498531154103697038378221353281357652991226585853414460593103522875816955958045921145993214726194035713873532439374358911719835137679835895085692098191396511567820906274018629783903009173819797286771600227202675542445691030927684765005721282515628879481107889144541636939620799455597640253296109560984675299723342288495103944540747969316792130280227599082028085889996271210147438097118362796974558694136711279191652237048971708800423820863976638427979983683835447393971786771915464327731112835383805374565158891362590463427309414589497989074377143073271560184880951834357139246776082854715750020112144235839544097772502880301876163978824442392788953145478788481766284135005270534540138126254687665365469948773246013698710349397998694518645888145002989706972583276231920353751278434352823247735859905364306037549275276444445240261829128302271148732682302072414236132171823226827240135464059856688316415909720507846168347898107353957597435544421687722901756177696975196505317317164639164480477123989262888506297811487573833423638501458240614515648426249703328492601416333048479577367396107496476274355298147176917884214299244943938017175825166851221852190065916573914574442938034061883544424024842906760884093543458170025062121640064410090520932899046963724387087663131211074335581291809911603359929006081432490458764707639378594479630889850282843956325383963980670798041297024636918554896089528303473366563975524218281955628027769337028120896704339057613306062680375467189072367113978946796015344298495003710019936609927308303541090950211794169347556741279025747147643111328418358336422284572254820386074263230030608246054904757267290834732721489838423259995564826498355712110565284538821545146306154048413833469591688986032264587745072210782417261019715542774798524833834780689730500059107857580914993825393423081989965161721837437128506640511756833055496779830609738684838979525106020506145884904165850072398375760175073071065031388222490489823783288319603250725205067660951805161465715781451837129001174221720957266207432621442787093539588197262528573421229564079400026172842843091334241125641070213849310991233694988016119663521532225277421348201794621722540206756036846680649338944449419090708329839046418902552655053747921225451774720151766046861673239082567554186077894178283107351226413939384779689451254136199308750801669882215057691588114799957540758902420628546713786943531228317857931972695728030218788961663510781984565932301248525781480543534784052370168484611957483210966857150231613338973193178349906474377754962746826955941598490467425575470822052315220834788993904262052810696172037480063140579061723129094194657755145035040594273415481387810677576813777364170566278680194977505849043683959277522368190324123319891462402034667937662881302444866743133941192067478762859055096060724778935091086389492448945167670065251433381698507034055813317019627655309724539764848749693198636881746806654326236818856353481706569797451028604464472517143687214156854631377019188125620866948437086063146319196056191701864529406033553074718871487287158183423287336097563891053291951193534845259666123493908113155849942054761237059456248099462561490333199431921675646571305889832012766537352685089170659535276123406402807476015272078440686006265793015705349335323109537176886463407498980055783711422667341231404045087144068828477182731544754464300702553485033347549309043734722713940046403980723857783624746885349990435478041235833312966043066068799382682956126166707477121428877992536689424629716873824576889130707730732205305910934131987908578907284966541617814919836861066631086838367871981261964527557546853755773156515170248777262167367772433520741840445847310631376754824451389684159428098440741215399426182618080674211506899581653218850752750163859513416847713717727588056852516940826907701757961469910183009757796828602711626616441177927950579666741615270919137225848062955511905417433257845234251155646497153510735793270549603979772362587920945806614957734255369453975328451485874517891510831832118256090864673392398902360646078332733819028670500925128043750304652436970754600457286369369789645348284092098731180622109863655584540237153325859540958292891857120196216986433395443920549597654052842526802147608784472733106598666287215762396750752768596503811523139352988134700034719017502032263436858981196595078211025593776661464508600576221246106538794587486587473031168986497970468132115576339830610633073117142972487428298095119117857230590690928348040769736063580857752764979235793706581069740254749650534939515683873727795538991215042010857561320694838592244459481584368927917204313157150100007519639258135873411559199013552335266223022900434245882978239239891652380555379017355938337474624866274358230069822626722925373250247306590771201747127399685956460100343850476615987551778058342975205813744888104666880895899741024683853117868745010150805375010468997166057424710405037562540174936210325863525901686395416133909330629919008487852295314432484234791220735442959026292529424553701359957215309288707343331536851818995292386373865451283305127829988624419615554607003349380764167651372685544649891724652786311165049280294433374475895411966893211381091811064274801226653732223176704617270876108326654309005051434607541415831799717820774247279473608821677980360608858891604642705929261798769760861220479079637522200788691076170982882055232015535271928309931155498736566196925697275665194992965032373069349859457653076222273636633095776769875937012575256520291323432164994892054068117651405768131507670729753959966790631323589621899358958314646328464647780106055256785978415602084468802335013602030632419408112167717547173942796362136458590011960846892319552942073981785843625532759202687454233616438477847756286012821172856796984073136851602921498466521948459035501613957388502632260119891123778835213387388913726036559702882977603065365647019307142612880728899636219416987447260706116497773412905278475506081084683489743138223253014023677164100641033282994277388964104669014517237550126773885062307992316437338042034489619189298436338958142007530368008818808536859108711600270363038535780421884821992410879989852704401937935763726366703294236655303036468683912824010393397668641069129731805670984959366750128522678486814973056724194271963953247902656695459116708607591205568198779823247063527398459469542902682535593315177849946954717539386850098234084957237850945161117669590331165842905836972682197847668947170074718743733914521155720832487119925611776715393703389707113531405499487214391689504710760871915148833494466161361400312604972728650665489783050825404512163678024949251400556303130245361963378584985594959353697173548992809363080227000060634032453117375232106803041029179957476498922745765709132708634534834900345035197190397792620676880899666517711411434864167259487379268085718577167202296956819689252093278142373998717232629584169447862265187931139855878954051592958096597845567972663096247850573114706991809684280648100896982340615355584479012902772410910846105093295556857774702158346968958440031306851940608046549807484075289804982517119236041779344231923080143505991737734737924181146387894935051218658630039025404178267393118278694887101136506801261765444899184642012972508956832817461041011259941080885269265428918465311443617700449129566239021573567444396885373922357601399942652471955699151247074558106709210936260078188330154279593596740557765653855084481294133447219966539711803675070047865993688465988347808629042237307464111234025458469056730376853247222486818207161765623494730369315924049502199791546476906196129286789949784844414290196920638134701398642139234929343496543960720665850748016265493225716746041658376384586130545691088603611333661860571937057291660832832156251424809964069572996254751860366146592558258813885712997423914521096876362940434145099334579584160574763209617792681165383421040784577133684717086230598632552902766183370172956144294064623981433837360458583727727021605364221468806236378644150862986060503086842944184904215280766217289539195648359856571885303494600690225081049376548724776918694988957429243237426696283515207283230107712608432084438335109635272438922462372662756617784803827909987145965208600117772204991865687120929467101670359407274026200522898664810987597262955122993574211702221555316273893301193016625810714054292236450403377886877556756107758467756982800614089340701877742416604339096863462172014029988387397209476969429590807702402770631179181131336687076564717906696053465247735260024418783736663422610297400281769932559247707080906602753002088533929380833886917367253063455752209081759236717837478905413432672355562193629599878493088191923410171350040533147421266846977202376640063939428869257842249645289080380835243006658466189130622154794404268176896183424712775218868737670095154899316745621436105139398016956854624210350638328300992533557565554096905174618573994846367784841403006302766904859877932352780000338777512149579839348612771422419332287533624109116294738187282653340209995504873080451431357412023361913093772475830488675447447199438513303342832850947469962933658376094539427275787856920124331951189758365949922053543692951941543754275590546364785948678168422862536162099231958803437601215578166447588927728467857004713061552886934652602894578083632161656265164547947665071065045595959985055770453185656706819338273484606060915921398401919835748575203384479514666587184642798768068684661422786797876264395755510716679887868879629297974736864548604529181074039856308241663986721606134120603750621706415925377505742668191242387229236900013755937397898821920184597722948589052912072400635724626925626405705440809805838223266744917548653690373163793030235035453090447914471916280450867599015319831372391790430457993944354795652521513135770520243161032278281244082352014890523641409650010531579770300857948384426131601505590001746392569771937216419791419272756311710516568375913585891606243439656653116624076844558946650512828543352738478978588404146384900754432715571531091957914642822379702689571528183796431203531430202034287868054332219416796739498424400601053260784885753276781363987509713414419986917271079404255992580704557119571624469372141726764671686847326838347025342600424787288334344744749565500703090504335457117592409977863781978728786734790514339354645807156194032578183614033738856238358682719962823038337876868966249376999413718659156175128627748254694875417767642033523207744468708152316741258985222654212953298598548364663935897211751898413537890522765412206598833615840587052237287223626389288430256665002535913640187857767251029794832320187826908246038508122304067296807240074412219932955021781920560520246509452556606264516162453664995487203076555465212778668317643288880930514604552571987183964005803500763955991514376850663825706738405189092843952326838496375284233741801835904697604315061930563665953186523677970209164337405589822043968549811958073468279648584939767890509498646279762403222080628182740137852175678151893414694736727400046612468317904574760795912419491585064828225129655898343029483874999394441923957980600268444229278924581458229646358861801856816214126448847594070149624570253819118964853078654216675789107088041995394253688777404378973163318159807600760866799658477474190934471961675034415470981209615867310845479623410104601845586319676375136791667036683198831758362083190077339442885512874800091376885445303871363378885001715185227203977953765123602681911834941635995755918421230782491603929449800746625130880426161566298889168317760732922130872724909733448366295868228564305039456613008930442879062197645633393060104063795477326864141136502621251960819488199446893029788270642798812298866902356800960310153201899641215811711494790279419437840492425026314452720823987162751309140361294552282088842148929284696795353506165632348916184523053233230351066967090362839771654902643713620663946732328247901394812171221468812236443675755170468539989700600435038493466972022573094031913252395309069353984154283570193141346437833296168263418475681159006531536024797150012126959312983556840396624072852133441313266603935596501124368420487419628071646702056489733306126952740725305415357385257212793461637939550443984755137057074218289929956319946934881508500880456578879712345351238473366763874889475154502145659842075368571284399012667931924491546828390830440073365501051993881972290545559591355729526131760516099107611132352358665036684575474503825451788350621878999799376959948711649334907447323041450685060617649452902990066213091002855904996297912985359873719275780245195385350976511810437586962992235466475762617344720899364528506122617701269207395351120189325752905763352159827183605208019340764105285711387421670783137631144728702518506991039873366687917190912630895842085301226807678939043553279555075693696550904962656617492336446057235261730189097348162049323394905048133793367368875878233802453799037087313852479759139008615167988880736258123169775579409403723921242877560980873426005989993229313554779077670129268597523718661687535995672805328376097954649342713450012044210273482064575377523224757794947301427107746465298023436105036945232094687955887563307245094087497191879024404774708376990632928214431540570361741482104320173744618572975589082742381019927818975027580977866489215211069096229589745473369904532599910051227977959146358872979215936508239908778931773612435211968941440877833475980312660621301113587735881036827054957317553216981899432709065876384797790945836863009660956720048184656900591458167163160540262065006760435951112976846610031121721311442186263527558782075253960146277849067215164783784495986119381470591169354085578843660743599876737246570079070969461320660297951294154946726139275702598583700712945925793671837363513579247058073819569169185795052710484739078506193615257486597922181233022280409131937878718112032821288407519260555378265742935686844609415439878025006709651866246688361328944102543649304597077674974845509015114818316805326900808354569393662944381065131731781447875652885293478502052639459584074764919655814235147709650824817035267997948150794335815615097176584726017358707954253915891244706930679313738155101722421858582281913102301221771064520184399940824946759476330709923210651082101048990171209880613001054747560184628379222394827106335820588099591730739937699048164281861771290643285955041142855892368559284298256015199216012849695026123718035446929698077838309226104134112469707932981433002742581462301298012713491141826120921228499415435556814538080900758455679694130274845385300558088305063048976150745391300968751482582545621440665458062233129151355201570386596711490799555109056504839599845297162363982498128582728749242234528629778280806456293843921804227203385360091823213037695582275924035304260190052284128715918975126800895042075207276873067111012368347489473779686946290570502995189815193110168088136092969900749972351240124213749352932424441948213027985620990077688925837513198577416584344346074261240295845595433223726309376589731567552458517311659654429824015500253103412070963803612791815245500953638894247840994732428241145234049690833531868806065712817586444938528430205958539103865413995917273842278151048070804136335821749534863332524368900871943863611774889172409939206323430167292624081323798430921390697208771282873786576440838881196078572964039361579684193219683096963530003104482208195492372792534459916098447554780803248396280065569307085856454316585506811295255618049452850856872594942085006794025038824736634921624256712695130174240449899708434950979303822092250550542284961834438037733238055209578361156649198877318839354530588594392552615607111230523467169469233983901622338321058804964519837766479624470720227834229330019923348267601637802149479805216957317322398135399250404300722726782660750818685816787741183748657115324655871913612371838130182316429638497346985659507223418323183470579784801484729701728460814190877044255925371510904705112419260447527007534909781681067354968081091918142868336531865366761616295677279548071121792469384406212900852721054249449747724498251430970219527825013608089957089154687810237677502839267865013105820065702377806990607657265608941450058824150049135973462518110024186163316548612257875237889203082123471518057706042588306757218925178878897436633312186986960543280591956602132882055098645538156112784761301677562759363004631493266617695396669573985193149897619579635737815483690735545506742979534040141707545204494179805473554527188389052921707540861704551130556441621210236278380734992854990614387219500698603437982433032227368385679122745083543444876185158504286925010954207240062337505867571012016346022867370034158406533217738578469156960474316049099538655581366532121455303650569338653556763356634651215599297893576853836496054106173031764718159883128228921935337923348787053441046172402620332992652328355089440799657997494070728441994170320262680728375257222466695712719663625345740138073918747583941836700923793985158996408659993607425097882913716505113272819453661559562039200019932678168873266453552461093155510916592182760144666977977790710393584906117743627669735751073088556728015659931674063834787246153779438631274474819673127160666021606719366442519169457712345353038572029483287773687454518131332474340062272127800337293749679680013048999287673726972260582824310896759619459760314107552865700537151696989154329622249016869046114774004860935006682297753590397676005992335872110098751946283812155485626581899990480751323496186331728653587413305020973381378473161540614059243306712541306536157572081400966340934596238798216986013172208992029255297574952875999551583394894556476314260689123145300555617874227535123626926705175781694030186789359393883809953154795223954542966596764497080748726905984053215230770961886613521454808544753213849755601090802242529163527005430785868222626360157625703119866627237709148531868582721266481494016791496519056424221329221019549374711330099923025237657509547750219815050983279601219454147846771325255703439575435582915644994947009249468106768944682887421674392240437144517141486382681085724993620045590919677508929113011530312958962814802695437455329970950351141545996382712275589104978452646214633512939051985584509173297074236438482418047015444030118128228947186396813218075924072952390250434975069515528324680108147104588314528104610385766315394442041575338032481535555843121802760587889289065644105085445856316891572948713243426224081558918723707151284665086465903815785766303166970588776816752274586497698809809237373789348320441214211321928012943464878206915203861091590875732779831943931528347193625091895996535391985251045379820254239276446235053839342216339674598701386499049937467349906903654129995513624146722968113906139890048821350393763754725316482657978522739174484485523704506839331553981355610517612684643044790417056348621842806676017101410998206350213183710882970136346764505216459697291201976207111322701102024384820046206529972826759822675723147034432425019384011586093203633641631191832651137671935386102846952734907397852775996338917943701595728481832251469397509299382809772214691096713469211926520860749713365037923864427157500443826731596831128116021180605258645736115831031786193026610993486244774527612380293831129192421127737839534049757600637906585589787058584102127447389433030463073384462236489369088810823397827306528613880776661274868433869125643211278363277581707025255152845955964387580961496099647593465142044547779988980855078068638227701325290452906652172361048818393504724537578755964022900981829594405360740501177551498218201374453982160510003963172033886402435004660753268815529611382287088287409275797784360841068263018689310312772946420534563127306963202805453696579906703394362518418386088890746101635958029198209385665048928317513830816729081808135094139680650073354025466081700377633584969541525911236848584272232316901202416348326848140485709692406375811299464270664733914639264463140750934691585029987268386458027582322268612550252883176665516631911293795145942367449243725266861727779527098941880289097594557801294577013258457551097429597634321767621734038844565995636842525866999845457180148828309543928069114684751873194646710740530591134233743186696145084226708668217656763496207111156732165306597057305231096200817740356469313822441015040615824817995485280609917113938317633030711633288372833871096655825476769298341481590483623120621756589781373477820977893041408866872941606204703403564562418492264462595576264783967417644400886134247496420784790222295015115054708569599441370907990476029020842867501349080187025435859246320464840458980642544410742066161640844564456529812862855479431227303113646158561608735983809709569369120640116631866761763111525581105309686512936692937998640001033871370178469490791242856800484614959953376618389243418612566906115098380841550153282170602683056411049992026149214022303310900090151459423494829943934444235806263087255195236805094584923769332283575388895706999611067198310877776278373051199041445399214817956741955932061424876062052923919714346222816509338874489469379781860118025919276981676275642722589054546169455624772014459004603845756969796630366052449820800745431466734321482846222963415036930889651398998040559766344527851343426437970361902089901821529219376628670938319648115816258692023722562219017347114704063762518305552838117827480684925341131525866839558557630513765416175147117666209017736636262169007643457168444335926829780115597216310804742967355681767173945297163308975422898530583426174094183638778910944752395304489676945222689261597048842752576797266899326613134855507582571381637658256713870705659613409766250902344537026425356394699522033168571057679696209400919144730594111752218321302182969467547079136428443906518853098211151853730465053886288400346119293624535802635791756641462147648996715169109746994256677038181495824032051545920941839134892925676269357915004438967191820862623725658687755350744629290695439248689347740433761131207906943862915304475612912258630743548846263823370796163060184930718593135307974668464414729980616957296339489742429301086992821452857515402298565416741224324925367073321757129747676903888298408915059157741425120595809207037729953644683590847470842690045111014403212288338677882246711819463145254004232896108632342183240145491938286502366954324622170403841573133483947330256811651595119188007851412238910015841119175261037740012388020236024537421734306008271301706339676741349264028974435315442837138023549083839212575544050874343156446218684361257102599398454308974889548135191299490431929870863319222697139356315559740940943925055451541944966763301570892743032770090431701158719846478731666427071010773743611613482604394154653461672925109766501673235865986451524387637909513924465806698162090194241808583758757631105705499296296180693135724355290688029567016500382426288068454705108549262878467954813129696346625232794062345181048724016589280368878865796322236181443493796933652934387112667020570664673204842216553082051880561688826103969723962475684098173886523738015197750346453105315554903017659764275831021245465540499050356432779503540347041328820639544997406168169817632916003728322668600015151371370472240225605851225536469718347657127128680909157601440024305770823184449487702801958259274753754178607392497078682978415606240535937641426603941393990211928038581803904720746921327638095038394766439737560459343903357411534678132136981396463574452308314628409557856123790728374941353395750840316018735233053100501566859134625855249523084732773137188821302469201232351948172112866874532316979790789475106493874698613878952758107992493701424673547700602603277991348927635843493724775052982488049068000701401797767940783384999486399701062765009917717267071434338235425088537924627924992076529638810832771866073148755356565181533132575836563683629702337537477227494305203787170689078704803917685865106257009485582574062245058745024307565108501754063359240020107706439472846769472056215896710631580866389328387342335914616828018918026783726951459301400050501364289442096634666905064147991129683958450569300165352705854885945573142605204105342147622720558288329462402748654117861119177486577903615246413049877576221903196191775977100740513286963778090842191202904715552667820597673202008603793633236934338036414485815468701301942335301667171095994584094174141569425829854136231208085850640252597448908256405411938969689965180068145783768825577469257712709974290652273794852654946099975384454500177798357327688287716491927144647719359561424490614225758536796639910385049900042374013684902710085239311160355670204665054174914753724459000569049202966827717504712859745948205108421196409518736764621869787196054260998174368766415070878785555524681297939268354246424169687208318162269110262427420724450098262327129309547247948706508381542237752058823643982215949117812375516479524743022399765521910195485024089165886057595145790462373327490569304251301866497131251155815624759146512256667570080184667728947634452602790591021025614298158486657908362425211560963042275463736296197914114682997952403625689909174645065153164613924524011411622534734670585950283530898534999904866498126828086821045198180340873251549033537429017928811275082286471040761709025777967017806174776466378545925508099035413044482755632838784489003220311479249168998231358782916311553086448089509753793103151973355391626545203114133733284764249028868008068821159226060596137831362321387425302625127366324581376155633066966071457445958403006419312743300491977407636617646924728067926421645916272451100488127480765786963898491805490809778635107970897335386699558264531558382486531433776875427394332684798983016101662922587192382435928330798347865717895540173424938422394127527845650793084952278619517352891579485689731420629131844676726717548148644109161314418755056496127658528264605588668567288973448413609772664766281583529194757462334690537738621083731773942014463854079563754782830313791481586642015105131052255482853698871762589546662539487329357191646007334129821982938065331456342290402371123442379474225266697515603559300743069520063868627901554933465684355990077999320058568331161406002379368542879234617186931790514654178576864066316641179866211021179730858002419669822049961070496379178965272774510971529054167896373563191079238399687297296682401954399521391707561043456239829195121399544283030951474239483203382587610112637470485291060073572070986812237239763143248213686242500018531258674077036449491552427145955326990019563127540598176609722103038594571288028134935028201018237910471272558699468358033211439520801973348816704568082082968548424318504826325748756842307432108763836732411134120724507177743382111235954268381783985192096503894141862184017977272805935388439767337028849688478839010140987772766852008954221027773191900650960763736456403364637099716424573103895849445833794484580994262506535568656764238048558991681996492420989194095884615280576018918510735305475127102492398988839145670423963448161477824942327243424497122502638773705040184830082596748952033787828875154008629250824351766408079557207110994698429364272312717483769485833031559044551321442880167761187706368368039268575397017900275079410006127137513122318499456180409314865380270489299076820582606260954252777095780996919323639952209431861905714866625830588946177119942054770870843994969732127896149232372714955500707053422458755984218307407663184540234372985256789586445128574941901798339407568357989415772954808072164138811406557265568046323409661749936647774198727261330119893433686107308133746665668851661693521776538298540679040073152309619218174092108092554639759507091392559165590077980085283411885189471132778667684605703711177349721703669167178419253726196164704622164702611495228638492341681247380599922958466128543880905096866559843473002559019391785780779882908554042683253602508889960497787223531099831509098540682461451301306438277874988211810677976699510573476513699156657384374172895131167183780923508630036324785918684383710590990064585006822213975082574449222063972136450611857029253488744417232961056631102121613608728900841399326687399779705648152307612806730264056172690711117251957082061843568711858206589938646136328478629589849865493861398783429943822658388370257573494116857340546779522610116378162082565400011836816819313789995912439850601693604310541573394076430774392145940789333181867995599631360618809133733800381623021353373143199799971554055464873391789204865239381780129635850866862192105383186546899463414097455524621942058837032412003798014418518989646851170853085929203031604494750553780376063549905893400209777240085571074956584345497681458308305194175736551897244051281954451094855917228416161798281333517540988881796062909733141500679547592983848457250412432286766137803221497097877456506395129230744548637518215864088919356240704000806806265998335257616680627534736229558050135301347766776242662017628808045187556346769111326975188026488395355695550365851484820997281806687365695582857122120410785045679509733694951486485227008669072207686565080029305087006498112154270578017889312118354734776227042370056472054993242773305286793409733443170789017075468235953812201365553801714156001537115400659468774795314920931260560951102440704146941740101275921843756904598414403645159248113581030388128013906903212822168852611630369416030104508146277246045698492378296344327355489321179734611168989927533697542941192423146624305597643150737868411671431826353610615052887215375394571162191055122085624687617563797865673980077910484896735707413914581235535480559973497695382492739280813638004454156848876680351571877490712176843602030371848754328772309248588887704475899821068249847413696552035134067641524149583989222487690226220291511027325901702667194171903165958780983263639879409793119853573080582026892801913780409145545100313591617259657412851689551750700487470807241432595946341066714611997459952191502231002708589123469011211417026809852746299793064845499760316504010564741539884612260379461851582502142065387197969237631313307534807362212309601932959918378985942518669542825123797119952405667117563032036112974846987296687695244987077403394625241558371558211542370037826373871046839765953534585380631163322220499515914764212242927925081665662430180502685728227520251492937068394144795323036985745270134788742652659961008351937801782019077393351682964523961485620095859261707224425780920399035861026855791552335716300442545033734791463598601563550947865393015245763252382333939613744597376709662007357281332170141781899184715213005179832209614342290778157785986680771286130087220363494085503443088443426134778952896764176936763950057638986955617030574963169456612877483389100012133932158674169914549838607998851677771209449299035794821329773112141370152694640323531194520762818912573168649121520085416636693539288022765869667625703915051495390124333195301932225152208296539666955841694228754435450408229285285328101569436589020048185064707719365532196881201769289429815967100016036137622440604893365014666387856133788126073920183443708369589588534795118440608352395309911803878029404469284346533743809148106958768097372099637126760613869960849913777003285172197140732401357809626406141248600960976035310192119316789611239770085255751590860300655628757909493437078672317521491362108642448007065972618719737824939567678526537023114754855394526335308817827657945073216462418718366055115542774316378794760730715308407296261088958142325727166872262506809570055840974290933939233083030184270989484760454456047522038211918568942603929462477768745225751514375940129534578930118490743938923247691743794695318569025187954066060626523620215425336835360809637838326591685384351625298874265139872262324042020825331985122407253467637859621987207919330658869391885165635109192970653247424830709445930225804298090426627357783215648278184199552014052902895250837898136265954559852376108631452729511266410738794438273644950300032522200130523081974794365311367208855479950774424452262162453252678886137323318691580619193973618442092860871833036024245174674224728432551955378945630280619643685035952160900390987312263000998681782460428438242988574269357485838235121715254419844407421554885308207365255280395116987020051200230996300958010727879642107941167485990657904768387454666438925357548930742033286300616423993789977036642198390321331313061820837529038629499462803978710758723288851734051136936574706367416124820706759640857428840670353587540027953833330132243069550286274883780320939463248632566130008997460868903487938506692413857495706888557929705804378843799359377923734648792663671777657343046418143552447816288364908833288461937103028748846029112935047976482637819650794486636467565881376011428981981893478912927934150236477337847749458287268963015087375102352535858013958978846218043762884098715044328978702628765414511955329959406705178684907816180159074337911525236948615378529404488044453830297592342616004976183849477058066051912586053651882024733288407262840096704212548253198515621000769835811991087041953186136327296433191271827939078318432016682105129222054758229864921166743290867942585426478687341714955087525128724887608778852660348326608695823939169024594993289860293529826990623940753489598129176135930143757154851263441047368632612231340164686408345882227204616114973451002863811302634913116910166264942593835332623834768684682165863477393169998880986595767704818739859088390507907092551414341830170652841070959239469952905764378819611566831597801723379337051372123941190916607409200007914261341101078369464745517281992432519620716628141738098997989384544910296746903356209842795380146294671295315805364323960165170245240485817699134710408594218631745070939604523658653151846520944383757008424844034912321049941558720782926594714544368179916427531224001594182788046635677234801691941984307789914675392632079523031006937559676100094417889057060651912644408758501068406231098860838075699270936196399923780018984867682970423240361341153609460906102284723240373505743130143528690921725478221958935320689782856923184508113781226630489599231755159758831142207539049945591497828937793822085977751244278274007532683219775288434516306762367728731091930728187644662163519352216753139271839525488189935910970464245273724873266719879267694878252412081878492834347730615317453007352761495592309104335929081228399284702220499343132076685104089333053939989953786582251590929799735520649518299448668498265422243281652460956531298895020290891786033019966637110818929592583767332983216531568997766261262428093945146233674345037293907738320608994411938733702707346253708950920687874413229264354136113571643486434862012121093340725212083560837726136593246719931338746426252396976501938781303218923598042225629335683571229147461078290713834311302918835360796109394704816037839407563844131474672093439946238893718859679258052821734350088487016421840467437231673281315879525459204559429210428088187223385933488206913922641590672329889447578890054130898410172155348764289762008746465548725812541837907499158375687022510806399273568757249998521983594986067031934610073220991094295846391980971963893301222954895997095051715959611559461447957754195185929602521654580110359100224274338721874668782221811137593299742330138222960995275697623062690150904252194099061967161593151148160694096157755358557554134570197737301322800440165599995127889882342968430658875123371570550400499562057044687805983541254658704796659092439831810860416932179177762033518695993418523127552840708377795992645768001880162030914913499062275347251721139214206209795994725519173777504280693084120982526135020709342312137136935519304810564418408744350053689349147863478235280392688551686417357151847891601391095459555246120124900658568150473867332854223743632467379934766476519940869915320654665002055270794802584471282189505432737772226807208639142321022443642551726826771684578418687028774380881493815409751631067782749843536748347398766006381896294562460155049141409285124185374238295689308899159192179591311288704103817347469222971933868833094003814271149677831620250352792266939042545755232130859118184302814520801190071198308866635439154048488608886399002384305781042672280597583928434778396971020801330645215095314641034654637830457887150616303985938430219021716089555199203733387081533522076248157312815069102966765837363250475956962649083220723393717478564691356941069101973226552551053821482597536497682383940984717288135623742985364106451596046525323695126271654410628456902840705002608813188001682693356852826428105597427399750792172766346361636338588917595564953273455763606031279851806162986664181153771428586318246712992219791092178655316203118323803296942962304940949482734476707045548030041074637280857188533320442608102543884633743347800018219454388454822061073975731759584232330125392383070575446242237353376370050626975012840689994082109958081598119998293528433102088434465366580320774430705124052212471926598172022731149678588569024957628840169464627041375767069489742893774642355624538298663603801414331354830798155030872586161651019670196747657125235954269849837671571893844395146252455047225428421272648695828431243858268855345589016701485364204664629817012602249443125366747277673654750613359215197817730263804816742921641835035794413539045071344854424525789739333694050201021728668296372814255797595149217291743887756474487194038484889003937103453730786266500726693355901624847199331083047956950487359168270103488402067325103463590434339719629225517556120355488887474269683735881585797105918108924710548451128994805306610236386728447560550871488850835741494091259043390129519148218635413354002284173955165357232187443556236441746230724895328080431713095758034739683119233857057547178217016479865133450813539034323703760768576958714556917313687061363363831933556513316434784338222097876925230181845506561031625920109267945797475702161976061932549458958769571564928018040934602373271132205388698732177109038710103059096254357732051941541754364176815693813201176193733878445572495958852287577193670022586201079341956356768743375808098157354099729170587570978746203484681993971664354514649027818400507703850336476298592673057201977845033186599370537115979133343820490372859016540854929466480076083638582999735194483697280311119693337512575572461773919885539469860215818444520397075820867034327621682601522330503367656223807574059961441132691992528758540268491486181788060182855306238308202570814185661593246538945230399091628383297563745930166334029249797930988089708735882738192052452426851912655576280260675379231682056597801721079533878577314057277407073939890640486102397592934576728483742431204874178450031894865205324003290145310934259560038350880232112696573108185584930486444617089316796454125556131691254653045534765220904319119548291422641471364924322660559967713819397767015758327153859044448521088365489523131444803072134121486946624183010391778902231465870652424109077729562543560620158635763106483082026091822715541440805457258022004288542656953876563212141477383739580710489474027269872043182150032112554238530607270831592927403089659498911395743664163547111231312117655305338671071029340800290590438546686435521518934766582904005910539443790148117364209514514104467638009762485816086994987584515465858893674905873529190702038042941109679292992310666086349167171658367143552636015670103937240479086307786649673927355148354511902029947828848566913542370776226537528073779069330310684679997997317849716865883786295041449037796537063478285628385446962941642009457082882759887496683442519061503027651321040889650336527630506385549201690696165864898684868168923760187147464556835525675788866504312379605825646886778933734271274816221321772452568389469685066872234420659687618745817961470625694556483027168363184350616222046628600935640275520099042964706283382534466819685804039672777785078518144091333400661839948405883173956158049458569731091907225969583897914552990011798210514591002253250876097273111850419413675116904099665228399307780687359226188483512978736769120095933104497479648988688187598063223313756216421648518513742474817746485554261738235515791411288172726007766875117021064118261619971261901569216053927976919424895780565974548102456006031369642588722752759608555011595965727518788607637367976367348376633433668968373190778190060740058697466058146390832217828310762996586793422879686987665005858066739940729519842994888965102456802543007038739507895208146259986253309441170959450096152507315146388469150288607983886227438582778487145256991250791012188495821155483404269524026930698908201585746217650792262493665764554327489297871770909773608829836742233968699847382476546724467084028582582087003108584164191596121502366751666004329631442739818856914732236555273742757592513065070773870644725935759443187630108991285310635569776483235104837280114236818550799301209933003862940630766704116746298544073739578239784655651239706482855889586037089183467531874285394740212499616520448546846096249301146181716136203578258622525205240471454512731864619401784774266436626511194508101798597811232729787174245177005197875066273011949014603355186663153827917791521856820631183151801044860274540988877527317455558955105473732688487950527509262961188900177308010869070929811131657839554873583944918172156698442019094009221625912237923728282012635207077163836338927806001646981988527562166581878547536229126806814629815238096801230583883137347018108584025641408904715404685435930271966243414776174798100869971154419967444743179381937554875842024859027911867887902483332918284610812931610215202819825426055836005669723503000571372787150354828593570648047983372205459731939531945067758003933312983768598682626536086987609114574554670659830796417716281161774078568369008732698234910019995827501549273314455332574161759312862693474056049735636146086618582000235638472431268595661589222909556650263001149573764873099764291641510185256195794274498480475632939576071800897522609111468926687345628778029389377385632191169005420841458049792160292007918400587764917856982250836075603503736418394833068872343771204354119899319158513376570479683624490103889196691008665616303256099710441839639888078396934181307700041268143715994457007867753532135818911979494113572003040088271892761371764973454008248919810051045091794253833176075505214516930699974431974136348221526509117371066131632902526286955590930055972339307846616117978611628777242828920359172609618972544356911543317395357719303685318626741338805944230423078394912121919727761325138246765810253410902389577388613807095653203161490254487798202993287081507987493638840223885114193919537053349671614860304845479380042693435366201279338397702567533183578608484643702435183684285103607925013130570735660891585900246239478863097237522207220464294895987718244307045272453772336062859850024504301072200267159330288872038507258278541483909230738832197946426880919257632101615905490665966414589674137689239594329327526279868134132201775481979307884691995334766824604665058638796779144892368037303085292039360640800215916994192904571379106977337742403736116513220392941762278572501119557393747262201872391993064066647057544074445588234366983308244972641851657585843401750479326172146465657402573394900009636696040612256588748327411767358414635082588145902422679722823332128643504885764153397760611499884175926130894377463250346662529976032912667107934127798675965782875634791562505554315323802105407422647411381836073075530107622781187363825035692021552421347621194458751189462990657279789418272779377854647257850562420501186734413656849958531685443797196962562621098680734046674698804435609059061043459110122621160505931724798589697188918941436780643967042432941515585488656057304786836597365765162341436603907919808216076397961006841654864648969077075756757744348161622614478137369029274371421993310754282148870263859187976807084057369837071516817853871892721647003130915940049333674850183410640906685687739070838769614636945312574953286770952988935205749268109764065658679584435179045907309402829341434422645914643962683849302990453608494402817597819053388052546889644550156577775968113487315308115698642494473583926412777115370738469166966861658863986038242259657181135044852150796649607244497681337360232794906515618793517600697700720103939249999876023762057383402458081590127597011820449725987360688216989024349977962198103755226848786106939416834904909276321936737938887317055601467272424772239929977430631135815141770427371598075166274663019214707752764128993389529319271535086288495945821646877523694782139611183272671098989085773178764226365871428580558792535221509448667005019161281715960021465877849449465337220836857112223084791149426359163913493733174577994885847740143544455348257339025669177061500422930152337734555888644500577993733113202892780684304509664053655245830766293745327719226659174635976260905988149655057487142402037874327780287466365439845166197120670148373087535458304176624700079631879444764080519591501957614637753954231492052301186869475463295941886499971841128188075502255559696856114572481729485747406483335297858725442294415680817046047365254342789608919898021559451972890610162735396682815880164394925762872434959093538898130164479818498343739680424361644256595471774279759404320485683374581015095183972152320653493847197278555549196108779343765729613184424130744423350484585671454649866645567404451060841489255976053206916569426327145383339471208321202961474933691079547876173607864952854527380190717626426285171548208118359801029545032516831416744619430154787251456958493691360481545048230239868034875984340699461345035575833031982981942153920720975642871890400748496143733977284729578948980819418330242039213596735416166763784074397331920044890667326523122673629429417343103112030879567830680341460560107680435467088622312011089778868567856427135491213536415842247052279849942347982328963186805070401876324514058760548704917528394443595213370201314912040268286124312949364215392077600302169256559355975667040116964246616444793705071507189737496643567274335670659171867238224331896082862307991809718457656579766958283249299301249975682586496831417125304525011967832778900513370328590488890147873939963891533968336591586541085164248582976679413432541714740941719550391896137285024855221096657727908225149636917455431665610650607478635362470804226258703910321169640332019436667872701858877032049724277913591311383497252299536809859352669434874339955282395700272013735359314446247370269030297729662531242312999983241543696557980099323804868741577262305476291753789545707270144668865196842064131230331724010240675116834978729900082026762283905517801225580636951741605094188435602478731706527745349222368530351180485854062675297903179079692947203172722247321111989385909495240848592050847071671299972315898129662800801533199558360406018126137561029610469200121495958663785453514390659605831790287052648754387531962381550959743563307043174545517707379066616876913346344234865326385036201293804615325618073332431128345984398046528846377598797955439236081977148755535910288947907274639857095652062346430805502967183952688690964990864297411798172270510960952549135086306788973146415762168717712403100308295099676206362420888185725673107010218377033610804937558355184352145145135221517327500152520635006063607386046974924755883615937163689737742699290240153882419150270332384543813902099954301162425897875706474446671619366605060734856777499585654045862831594295204326054781935193294949842192199011393769759211472396227226384881478948126427816307682971096263433509566074824104897548674449486929874742447123633711118679959376583835083349754150850503857229043265252553701297559501095976065561507768261691296334901356164882090779347111651081592601713677334827755375795895767752781155086394871485634493864835541096522458249978978030042682737661130305738490895302894098248617299570508266004380175417658318641038448886525028018087974664356168706125330159271681099110107626201233074075139150167478584079944272902637947690810033047299863439530377952589915591619955161577658250952543768983218562020740087119482570307679133001963642307576999924188339370077021045330777164945488001469532394094040553708374060279894688709019650901196609302777717910675749028121291290851790158284523580631808255502699905871539667383347972193678291395280090273538399555530560245248223118756529653326716227736472167245305705984620772675795085751161116445384796128773274375183366607682349730118551592177418943423672967249848219570221720458668746055428320039385840661704122667242421234696835393304903710667230016229768789471905173513960815871250857305977423441722268347750312986395662666957909440578611886242635533270584514761450583263558068836142280294541718918522700131139410460517513441936069875278760636910641524436486296393059682020506267925881804661683778111421421934062440919305258009561145250223859554308422170686974489363207872964890153982400174212058389862347275625323172538958016741535924378166447327275137797256385211629522253990515241199824053778584146286307678761775486576059508936531538474668270192588060980862431401026893566971718268229820954506118046671795015434302511204892218973537492953758001235195596012822281735484968318313576987799852948338674618755276066205423265537340633469958166451443517053075960004713123539851681076840089449856303912517211543481801817010554039178708685044667518329247955703643500074924282891646392760931604028848911215033331366225322217921779381432363433183468146521981825214646216500600620454659383579987350449415092662303858557427102397182614614627349502333883062413880409773914203233197745592467665044760607685870056685942725728842993182214507602952605287207464803570086924239683480189340813150134353388394125731863014130484485705155121248160362213344680535774820288954138623356662807880534094248981932931849875759800719476679807078298944699148006463953179427972676010613716999749438989715962177011719074904216630542014661229816088316762657885408268146811570658287177267351632143662588305607915998071987682582099101661102603773614276442208587099051655377366434797647913011719092503136930482598572844349756629721428957793450086987540321909841801512591386218019730698329237573317528081416263115027930764690236491113062130869297685127265616349695629749695475239973833976669186841495514533750251582955505275585866465128399504974012006023713520741733769769152614043510646434585139855477692313350983222441974323468383241582894943360212032599439122507627632584046303575240748705030125004253261994842746931474384755647796433747069119348304873017161465722780068389779546278380630402680009354508595480042369863863105103663470564656713622284510455344709591135662530152225058695036045168134471685753022417149697308834758531816096363336157153030753933594163596158961948282293704717686062182070355430647606894239539372435865316227021441204004193928336545321485855013920657192821119940397775873715630114303667256086562524456504139915306539861618217731524680818037480418219065487754593219527174730317404845592840276206470713731573884222052270626135812263082988745804494750979223349056168568409630710413196554158494836040307704017782653243542319693171069037550486422552039973914327451912030817826718633792124296704782367946335943860282011007212083803646486720921452236567584209210160207288572698471883073547808441097405645220099840302304786260793009315247410375258182375552518026006963340665449657328385510585720286556013912454790299614491169443832575709386835088413401555958114026934113951498056313114067619288916465643088988166034162406417098855705545489910657445558867249692301673430390000451139654286588580187419677466786480988171962643094615345333659243000039173871805274528913658455519319124898082149195635212364032919972768668290045015844933660237341373480797368960396643664505238714164288345928040010670052149096621780090064486343524090185957065846093257301176564540187664303925213662907999531980963945868317920204831882296906621594987495289204074504246778750246266349515056279722887659061818270971449238743561983560160626349877189427599365001674288496185170487601224956594724505554370831039278617906902689588732902569426385067593318148794755632609350442390456484715083991832422338061178570114523006302471004387357612365317834536515879716468983481113128839222331142111766176993423843708869248660252221280350133583229120731661354643588958104565762290657623306756716696726341051256603584124081453978915102828401743000428315968668118903352613625816024779232391636908976449574050063543468617545826212211760918660540139143883787164779893736268301926872810633019645456845143086956385632669470598363541423349702651298074137896790883784451748350284014651931460935900845823221176169709343274179338669767909368195469286444165849331163046076646928511379860827316874993992494879855137514371065135010534250785763048261696281795628734288790617936262557809906530641466441986777196049541498044169934624031882743527924248396225059549223668643024048662182110944446503923696926566850964396103640820579059548161589434259154520292117778086614362454462057752311348378677028537193521389842613958850201067887392328658181451022365337693508625766902189198805326722258885597827510808976371530566768327785986844445076780037570448322265856115959045581720861039169079856652413677387470522284131626526415635693043704235001002887285224233297854453510211430695946775769334232415318704894786617250166615425318378286755714054732943614193136388331303658736167159567328120493662654800674575689998477951980657592665421352986736525949878159501114452284149867479320815698177276317157438101085919970268398106068928186080377793163259366836633204241588171215730673465346086139841807013448947185119022879143321424911528876159253522702503119318801714182395000359359872612272376680819417543652794207169418014532729375349335517934402295412744952158101059941615977335211340886659070704855512155621329373043533595487819657387434957259870312606188052765614543057222887000006414641402961486627080268433071419462707757946534817014501356071164978323809337701149088827531024892114337081360974436337955065619633118874757900028567837969555731805644294038440230264746187140514873812776492853217902846068853914024859624486065430927888830675085483135321784277853466025473323452655036412111654709775883897556785829689432137875592482738560938688749141841124249597388052959787133140364086203953829346908352442422795663142337337651263181106924839264265960679929813128647411274160740124221101826179747289024024913298266056839891476923239228080851182037346370612441660578081268762177535231784287756092146408770532601511460483240971494878035671841648780708079451971477277834759624711657015615408633757713686075829596633540236077021920382816680999607635883179362272047033327064655866844293475004714919842831547099848018950514594435540464880346117796458203877975877587049295261143849552846564113780996661592657896494508762111117959019899061755538797126932651180315118490975208418506545142813753995339270991901704117956436402544961830014294655672276123898001464686233120409470979195483420712071311945624485842049011419768427940493795709214558065850509029642112073791879758270908778114344427526027547015907702039719066939910726855865513242776506623150476698704574896948487463874788489380876226540839223715287653279611969845659165535762300640660275291109667253327613703925675215376873468369859625518988927151884858923359284302818805900510105213632938919226345637243617273348810622680014653914432691486270837258706796174036164150406717272808278919496795246869122182305292471435637931310030254654105776797205358869447447855634836139021779813063016216586885211848670067990169719456538429334868955955013169096275632746118031503338495003339940641930795515437906893710919434819558333136408474344191899117087269188453722050630727009478917307713692987222077798727856003423027788741687486486970486226486064727595268454842767741157690200351191535961032340326732424328159592822755062591307722080818881725875777437282930882234316396584202181045188998598778501736549498121202768238923118332137037625543704671799000114033959151329742679024253420564503021949942144406256619024455732023567398297044546379996576425707270660395065266040741069495679089116504350507852941942179387295201523962772156938373909318611453122309296746458709791195944754976226425948692793360332306051979027713611703254163825604573176884843408320089523688435017935282724858769544758551010748090422497367576948372733409077725515510989765980917740172083304103029437782541470298954390125651091590200402048713034157547562944334702480259001454682838132829635160347093419356435636093878964471736246728907179254640861618410175322332684984833085057750736259341044887316435631741020466324981674612461824821042916728089634967232695428436124639076095571786251374397279890142154738944868818329631027061441501317265287419893242195783870203212248144053983767507865669457772537928086256719657734220642057710559824917863205058891284928803300715200316797110413272706051155058649136042491482165545482788955778650229763729224383939449514682155458155850181008257636479264135865033297906311560477871731084994448669549388718317788103525739424746668584043194169014738220704463599016451627292098873824165332327315687661933847369651575683623729285781237656158203890155505809600052391701253939415201654243786377902804764416934398174024568390252981307215987679037375291897327461658036003164439866310012885910985496647177080458336977711830782507417830879569787307110056874076854903132108313900659189191454240453185095916735605369823144826512891328013079127711300382400856859484170774694281044406174439583279335869622632464269258130469476570726519894986545533036792187842682773330474034483169764395456414349574441783498209816614285373601078621144772625532965851549104505420547527672042073716854917799853243866699091479529106060470366489020666992462181050028363608060630025502442154640751044420302295319159778883291173801281035265110174975912771686202128503859496154968229746279074972882851506744497786043204738421647396418651197536652802649568154315005119107306188276091255891815050226590701456680952625971742021204897776698980998182340588195219357575451345674760988252530938604832364522597572003088261182565852142728822762433091179040127593332206200250673810982720209583639624986932803415341558473362922736605148305508439940458948705733850615422369246721071798973004137138207618975518693529858979398014041577726468815436956823217726644928092629348314365773533497547801343893075882075090699324264763562662529899147619729517750761135708906043521308448758836293185035580464860250706634847064314460421594402485211139214606041507479253987425605499673056686336822886341587611808739472390761267216182756307421135489407656376306769276555720069375638274131291746070640702103747293268516736695051472038069569606700954600680367178792445540407650490648546883407434408796024273379836468358245736732104170025483647570710199683694597916899110740651098545670946942241602484436935300446534102459250732487014139702726752701565809141838324395616605819315561688361728874316308271277645483386213670305785699594544585980826416420744887992068336531321082846470148027990720861048507344606103415365097203453045334324303494030020894542474093061151375225312735532619089888642028998104265527141594045846374777827490177599020044298747794127588850906675476302995343093928403183762085128886327518693705676574395494566743006071189464102850773648191368722946745111964220301052441021862925054868801064188789881495406113261268578441504717158854910536719922360546311638652659403180248774623449409066413233000425708043440966305655690283660274113336372827438569249011013838005617255664639265244543461719449943880178858454866563057852226050396822398203988921421656707780651370472732047955061861715333910629765677034324574865458594058543708729339057506630299738044058410516550349990363581195735165422647016748005075588616970474780647468197511157858671958770614093583363669828589455236598225709173208081334898742234747757238330878317824205208867628968920204888947750773103395551742447444687868845902666813061764322086690378565281473567555710525880178610485395545558291062910301569913085021257544461337008144836244108349106088523831389839149292309239694220163744107344290770897811794302706188162298604513488706821196270758737149318070363193557119708846695455444516285816452816996631637709840530588032417836210108924053700250699875685565774849571707023308674271409932177976989737545289932697760130672194760180295087912723608106959744319900163173632668182102129576710094211576126940142154294838270388140154448836129742077782888690717746650920680661759871704601853546797642929004091778926419189083468395186250443900437727812372421743243194362258074295505352816320687473116420344223290248952028086674053062363319482858100700720063490902376835377877875896299777408327129201710957589123313739607606512426610080272906158448024563295535029507807228288687215536994415054144539319482302735293338360330279112468047744873894791558314017037821201202479346613864960426774838208561135904090221675319026983522848449245400056305672174193358206155959245051795163032289345344450381347636119103867664740587658828608805124425505317407604383117544070663390070761486975998418479888325650327326350163729956725744164609676507052323427219385149106590100625645348090992641946978361525149161594481314152195381941525825924517108804670008858122713778276658613971233968744266815777046430782742372810322314348367354264301253565763988116237285344766493884621310368963920092310163055484226528923772457156298573466401280741879168000907324350033964547231847904084343560865444361695861076179257232867777993083141893176149076852772039062764563406649973960183604448519083424553023367164816480363735530458046343322326163831711822414399689508454880115241350371437942081521555776651533608858725649749645496740813379840863833629696233454555549685070247896581216714541451640930999062599829352312207949082438799427650637728664963403712771898399527240752959564886094994459207444960223192625000950553839647222374622343686725551192714307577035275065515379119676378303419948666446808969408692527788599677253462982840589925625742865877525133128675370257429860477794784744899804350007788288213243646371044822794954602875232782488553724832234329637794375587155658880451683508575219078023865623198127539137014656959477571969878441860103627175739637778056932175288912399258139467896273302972322860062957245245070888112849361730317550183592183846379750757256603356986305657919055555042909269564149701622853471874283105698675505702695209249531830392421784298319323217779774908892307149246285101343596294215371564063168058668099943991675995061660972338131826550140581033072511225648367680888174686253730227171939743388354212708127369467962348006322787307223339998194406579645812406945673235211808223399860482649979318941393856707014731813364687978358074796701267288670103381552549625699204712744170040374068956254790315890158296364863229469978412632344763981485529372430399562599354713106186183629536883512674946030623127276710780924081660010580751104485700552003370730004107413344988905521908547522452576728872315093929227653880202700865055762732822016448667822965829377172273606385840517107625600024918385051156600179195103912288496687154949124622226749246690059596194289073133590224868784262770432747283389444213736145099637785449722796726060615871335421414182150161620619311755484452431613759394671643839390931232549426160609044944077005905422774991433536443567938958039181103952798423933183183040303422114490664755581560898656417827007668089637401805818121463845805833805896348417651569366418825693402533026747792460932136416519667014482364969208405895784980720935300378609750413357759247762934724208069867706261800468961610459579345550782612336640190646127345348732151908528974559581156465204692803464441732947503431141626206633460065574423850915233159498783911095905912872978961301978858103677104053352951661847674636059115412597985816662310097802687486139597375936177527369704003715251201548236731941826357477921144759942954497113105111616620666122535998548467832419057606962008814338032813808765438613941515162185139324175754310700182287696566966553411523582966476939890082926016189910510112288746429690726210214035031660889034281651548649337017032060308749149886097400089118302038551187326975194639958482662754963019072828235536667902254842009953488998283085074693863496507332446059057364043480416998214262228673405313698544392105888284496361322811039325050458438519077837600204627128586340810236733958540348986749331753040930399863119403712868103766455543076634129966201378182133795565181609146619914972972137174150518292948430819791599005732396716693737966294504688376274405814325725440637028072947029446694781976400206664598923160053265463569849090784582702820223295553137382059046819390238000022937753928209144673408014319095690009707729057875964916978334081656681914124870391175282906668708242666388299829589840602863380433794211702321659818037944933847495031254332968054770791862014571767854295813239996452716727152713325335091837072159135788882435106223688855044895072141977160000000062412567370843903326166180868739485333770561061530038984449003147939027817420613381699582944064906538194834006137002521623909640728517425051450280036974478758891008627235753042917073361820956498740793952488988278096144363170250207886044818652323974401088924816417892024458314378712257896519743046193875110446075836375803793205633956591403959117022512617571322449670854816720958622592917094011382917593966371374492198660531424690024701672379231554425734922539030916324993755076267530256489390329192343247829060281076334726959434514804439333089267614853676419963123316919860807648191449317986445815703375586316180595355996093189700381868707939655810825748812456484374903909265148873572096922742906054874366527886282674121818807972062554341789398922723880700982034444714917690639615417330468366699214400041868138414741011879358189786479241617809727970814790325091066696879698468352431923977628593094782934730122248448911076820813208180485585659735562402739870348653584375204319319386874369426527944730610516322877138246293518388223638775349455798587700342302903844410070408331141880293441382045218758814939626387391009449403553594241085502847243856748032984362661107865101749627957428652347557457023532966501172541897488180093710153952435587211351749391165083661107771679986443609836988808343165674947561646677018026274130668399564138296848831874242070990486987646361384169150014431060261214965768962854346540140421720387319696893245225002602320845517710063015268509979722606684981669753839912794579101325015737183824255688765379532578940018684697215285714456596817588149887274511198615983020875761845155908680570201072078495661837674324485067204032414746137621314823088102976083903662136856397399463813643457387927324701564634464375992196892851140852463976336737241981030518575943069976428796740131092715972908523234770363145845289212583610760109669953175619284055607206696117462702670152137123439166920859946333234051896617393762887370294215244845321316389954612056961747719334648141289472094347206009042953142916393628358913242389079432281640589353577141869651235316975177191034594565386352272028629787703959581279364924689786800246119873713381168896446862101185244845070485246297156534472910527265298050167294097533481720837222835808896181292484093178592886673171574967061794108344127601040654316321992408281559693750389021608405664551632505645224289427400862099062012350606845776588459526443565504319404527272831153620068192152996475938605819909873172545311512600843780208121529494012539511299985548829219121614417592895398259750680069472006682773751242638962244934210852322637706149250967586657270395936036374354217656765269485323017780155451526017862972586268970385366957418011783761937236471356679806355960699476453224305105309507664182888044104479499710383639082342491055299098203402514356764186590783309363257066881503920731055754757030693423436270678146298402159241322467588109478934533546821975514116753336824875148998302907109232915451225116026037007464198566989497068925110798655400822348310884058442440243133788474661334778472032767114650289718270855739345197579067773304892819652859233881302148972491442014697981711043222395822969572506939004002820593644026292855506144127965911123167976356118311224463670364314660523384626265558359538160530116480316917959776188997141000692724165619530482264220981850275266007021824055451775967648926630564870237451299382892323252667453448029676766546598997228349169622081658525219814266565316069356595982799257782740893810163631841190846224023593913185045609930020789830427379450767344566195384024899801306367181796871191636241766308451539229201633721323107706436814041779664891705268133272404458723798540263609275751122804804135724987446751963704562832581411694451282868878134838458781604533636448064586723360718637539248450177202452577890809483740650100385443805572464549117687691106059074645933499246773169581988907247479286752694965062886164494448677467573340052996392011499890202193011463195833928201487138614149555895704361617480188020929993957600281353223566750706306793604828258047478506510773231552022995212613370046571224826536053991396245997452661943686822287159930620235274419514387338330672204243850744626052160707530276566883880964439562029159391522743069973176642889638757067081598021945224956841859213075590457623172025135143049996780970187253041220372290318749752040425752365634610287873106690570458547224952291798148441053574652983220546645059481329067987915181576314565543293036609986104054758248344473956977182985846447184137186796479492271874730201838008971412511639207808448998110644081674046117579462785286088849381850070192834557959100903621140522756760217062801867143847142586324417819810165892907913200393482947631341673635028270165733586519269099661189388491737643688897435838949271440461713704502119353073685661081201184650272977994594766900583327455546123251966071003492529251196909984219083221468373194925980877726398432907405427601641663388621186486094412049622419506259152475791350882826642566717485593575075890903136532222611965421596274540166104722125773691620618179838833479695860196802224914576121728719846408892481899979371699051298976650634237717166361754103615703396632953925471779977266175683605645046293855567043796936140728302790551503879284072755988200157123004272150081653098197928846565610924320089461407649707712892750018884211104189402933377872063900967587001124760513160492097336318871102673790505797461242540317020583013449337352105242576547069692291538619246350230845674408604513312060194192866234551267899578624635125713351147570515390446712660538332939214702110684451990109583492392959217849081107882566498576260804797016940159165621863913761597538786177683121019879430349059862094466659518816357056548327572370601682492017142930069464229813633052325502667811321081359124703853465852017334500756592844597068334288993094476086029885048931403616996882829350583076335528689631557812357322547709405078297339908030427059646476003516291692648689463300279778834916062022133462187375637089652500926782495923918557603540845850418918346835531930467818892133868938076651366047382832620449645486775097860688743983935269434776732366413076561237060852960159068217329896709218297855215661131856187738036378544712146065423764574536939421807346532840518044624699746219312438909753778700151721124100081717225112662607362837616149547370811255128213781448860826494160041926388171477632498274917191691414278679116397764924000719902941639350464277188558895059606775918707166972493228111868198311340234315495966188903644407955316691374864728683935297801932688910697124190150105894886923472899451418631297023414805501478210418428116673900057560940264372882815623322345097097008866128216667840054034290611833935983185345095823474994246499602302299408633414822943245776477872441131104659474875296296366505057275873968647607406266306948952965708932519889379067833593828416876014240696697767489587334267575479609976614860464854220965254925162175173888087459287196406056112290963045528428553563526115715986216246553881578545974755748523878697978324470463208606815835117035437460255480166405916405337915550224465917062040344351283999722701655412490641675056839135664683372070969408839885260564568314471758042200392791523921727785345074946599981498368867627721876917360792659848889712503682694158753729945278569505774060531057556591624549862745905604098383177769097478134956655198566814664311167854798971395135065757550569096525484602663649036135479203738659165359798622632265651343736161544008464545379174446283189680638790391663492457089541295334067419822124744760696262218363936558623874649396512503758401899103232910250528353533204501104602865614411531489722605217811577793470784020185383245547007408145605599522655110673338576297667713294101480421088356618309801619932341875459347514145390284700031353398016288876571590420959372704895781058592539223736070057318967495011663340423933673098229209819061671011208659125941859554569299184326705941676805777285493196383664744299242729259560449216456122698971126333632319957690014619943793802093267977134254773949312779799052390935159557458369139853251163368550067456945249065199375064902634420900475350439442125909542094769605366209502938302529839316477000798974336033653922011757168841994841826808315562827355489547569894555079708960080177489693213759076618718455799088550867036472505426341400633315762640818814881289308335442844425925278734518173635257126124520221123379073355252284979407669695380698648220437241244960713409210615361138888805307277592817222060881630911010355800276177737036526712569465449049478995431712973384905433614247336709216234805921309109900526812655059592838882104459829292939753805803344614609969129674305235598088545837733792257894772538184565146114083477498944730890579858602415736978666054732781558688458446266599426346412876488103837043237620869309544328192036743057138757865517688245741770849600206149421093134197854044878890594986232481518695241669323004382400245651336296406602866815489990074130943737088015905985197203625322848043627498556865476919050022050425705917174895969494166992612999035587063939674616460604215060512289330636657386699547357378434290298015802069001152759765320729010487749655771610960993955013684039366322670266266179973055265494908341677966630593863910185006691038540800682385769667937944338454356851559966449708171382101229195440255786550781060262320999148746615365691955591702363627525671588800420245244791617290114717497191438270969366155970213888058694237737597857442635156134206617716783898528830666039432477011882241955200341201689648011222621208634769297879761821102161787086132160631510129797566340493388709831037731288078859843762409321585840473822478221487716916650773907829691238605044493823516047131111386873966930749534255247613230155190655000173213718652386216289681959899333239586171910129687274817293142693995372719930771841719410747056653949128277979627858064242490254261245028314328245822895442215974795334893415615099540231366379960998089576897058009880676442495259056340593118011890810278279531791117406671900244119675804394974038040085333941245451262554608513675233458821627879323974961490181466567198423388779248294274693428415030968549170277343356662784358432051093258024607910956877580707150286054344976527411382420776602657361059305424301617298802887304782395962566065260772453057555059490656920483352324180770222807196890923939812150600198789748366965483844813938478135144226175384205965699732370400945538100569227335603218082455025941281760021435299533741587269098006103921381302735517500649260874658514828485744854522870655566402747516892133132034188758942662899523291648924436576574378987219654530435820268840093407979768831092088112597398002198152562216126849849707849432248234119750721054624888526135423135913296772104843890774672321209430006235810351710186210351215302848594931567477172552056187297489045127679860293761059578605713134713668959761855638895022475285435887612195825405994002810577381332158376038036696131758659903880925650401334737359184123733634201553690241477444928949578509041785535371291454479877716868063053068515262184279522853608296697813838237375789300684027527787610519630851844000497279129178865806034552100976402822403077497954394424274949100231143269115968446669804053184797758583884448882443790643413700587314122935947379164333342964129423251708360844317163727983277560066616548866580284699121242252978714319424028651838376442644777986878729220519644697504569005887485564517967822849652916813161520511596968396467826357540727941136540497686949663708860064956209236752282251611956421610127521062606385095320368959462145841276419884765623954770047815023873883217497305590801007748213013090488508774909498322700249902268025029269452656529216003738183265011119708826072331031516840565454883091427186167760021750434603858546665877881788661603963934032549565403541214537529144300632540378691796472449287035619602538082767226319343169557660334345492157415991625885922217886355194928951941388295557751698494872345547767619365724586070698808687043771123390306156452746731998523836226291936792475366768987526644187392640077696400752714503634707936081279747777598835714853678531058568461384365511384864691514587333545188863628256586077566322692021419622860794998420687611059926100114638990766430507261958614926606327977821815451476965474697997330808513298700607282853667563254367044552173146571153519356912338765310166245368058327879356189300463238701968424764267099152977669342129329616623126330592389191925571168781991899673692250300814184047779597068872509699753797923240430833600510991553615694539116347614278794755041540034560614417568254389704028867191363058484772031862639888226758428572944673244031681493183165659474962500025081130931070611897838919682753160633014835015500701769730783266864040619424682340481527768852026404312637170039817904848052959833901212435096300731659339680535210902125403635837017594274672645439497494537270246008641321391373706899489154403169147499087231862075867074927320529543661649108926746636933932906006799007374526628426520248047833745407829538817332819080448822208256940825412142273646802690513254813734929625801930919759279462490808379753673720336141740055042719426046861592952228927641743510627745210531237301239904380717807484046503085786605833192500416410150801144525924141997967407060983207101033319358035688729466207641023422615289180245818257141237250359146823434497399898271128057400494356556811404373196345885615648990338274612716942073443853035872658413249255828204113858802134109234107471710650105981323049926593669532871227504233469765426219537169624946129189211234025776143165757824046664782378125162863577944129428985039498487135578936272688208894761281764202741928388435536555948845757531668626227824148370334253631488815935709690482470282840407578693558159451913748532566068192089226683240427114495565821063242693913800094036047944100013102074316571262627075052737682446055979304752066293527861087125625436365069391999434863813516326096175588682459668084201896445821575673202369920011390002483954276118374957179526826343041480703761682202817503444348395307067933695331114723594658720639106266550835439325758222901208483704197965252988944539317902170106560715887441005899533724566732518813180906617048046652460227951752576946830799938627321715113403187600426197889178100966141260044224459334346344598543112579721580890654583693043569358975306938869013973643599081899034550765955618891925819970265262859032252201438071063217486428841499753942900198732643047190905546715368950348609399104824151270425612105649692501068268787913516546802724392479075975998873894911312361309051135745668584165211199295776231339842677295652223934045833715774444971165883479370955482124419529771015522726167937036866143382439899541056801371158525757141926849805416878528326712623134654460483924809671515615086737715815345154034549361562333004753168054608731531569500210645851309415317643250576946636754380918531290727365972394895911803230099489502791580101319961585711655536325090215833609432933052744321649147245591381426216062836401613496960309734444417384844250804077856299290910662293287417974258630835085901112196827980473332565887525863210870873927807833056184785492460914338235545094538590551575454140838612119786637900552852236615485760231850528437380342530291854811816097722494007906501006494055815279856358708450980412302915191405172242900401106394511652741928587712341784813607856425853897222843497119769621354944535770333767632284536522612587960630539135812255187693273613768059780041486763993827125554655218885478524305913037935995430150925228540693803273709315236142825467705811806347379142465157446647615380923078511292775258384201628773297016171394965381018121967192538402763938997537283069660934876266404613865057335302989901279628250893750546576010574134979628039404583837232346366435712008614842281951264944243054880105288216968179724914431882885473285410482414635452779388122235323735739703935319815449349393476000139282849355267079750454623059473556367653103792037603994144577037648745227678041874475975946645999497214043812318604508009769987532929207684034751770437924748441782570901059411080566759085706785873239164178397736201132862803209134301706209928648008907111794531745981822016660132454994438717846224615984787935030417325788487492955231705927115808250296734956005242286830655202303663322006118074256386396629783571429220740357751113948439770405195795674389858003046445601056861842163102217185088110584245444991223178262639284983282617507218841392394803601950483966989997849439862333235739079456751345456017746339908711847828785663338241371423531118390690936142037202945114824858449764653127124542114397152036188551659020946548659005166179843754373834643226127081187553774041755716474821688301800979881465966562427754627702208004562049285126476526128733873634528433337263908452432231153673000654031092326611832329888610999447022365529686519730139905120326583756505896078868443985235916490768248131254586111141620567013546345203070580491966029047253840648139034925693948985844893073024663132745002884143567663339900133958195090228181076657602757033402747563333661615172530422708671093634626386661221421340218038153523114134187097963719919229685417826433298145271314705810442503258048855072119884138096657108014946934905179797447167813503838777939061758819323380239340084448348062782936108428989455850037479977631215229532551218566044454957825223628606455010466609488055654909289180801768784900645356055688896167780566334946545688111304298072197153555445597864261209555811802583980858182191586503703887984534006821781530326175621402796635487187398541092130967837749485757664994930102426202844496511459973347021088817461878882837121011528202571767990800317832454826480359277615459098369326086611886287293222540760069972211342388148281039568578776937183025973191529047480113513073547047479689850788860445639813583993035924286536266635258533445125724285669358887986091388169401166291924261176808611437408553560178338949180166320017541155577227156302721465986127003645895013257150455126990713254446375056939140884341036253543678609224477240603131774080929007630052851488859282251338683985158327256399190391475423740635666447303982060287004138994497876630846650700319496266515281973642469013926343808084532437182111545458810016162477297969517724121808086772904946453912069881832564097214475475543511549259890998182733223001306743306589714874309898662832199896491257298725266614381678169575483111023233243704423276425204446623046647405175396094465174280761187986710193086098756452771925325678107431757879579280841561237099963573316235522822118690849076925515993504582748997558584506089614895752758335055933776908153233216272587318073442338598702948332558552408726559703712737860611713767018263424294566379371199428755567820686539161388962001924013283386846311168975010622441474083015983070845093827699126810886804088425719230898818835034943408960264394704539418909574797473103471313549632668445275778910269800597861723120702774193098149013176115202698534126344120947766756742841978286035335390337311860441451176443693767400165001441847127314618524174507281350203662072122298946786011457046298644041881225347778453776531434794410442724657656389958125219498593127824574522811433674233494504306023411144835065236820502387577783597629151941232199247454181274174803141051392007559140550593265981704298569836246025425115627596884421617626724399144858929688853276445032938724687043705663382046081274655649884196117397128812771268872773754540015106678148802211840407393957315419924896782696706624111043444726112741330313742778257790082996659487985811441386256751486452917467041394968700855884039828970787620892571881232536258757726746085126448775308886769348185980218585923206981032447918036074741479677042853641667458244089756197697358520998084949733613607025576930162919389534492534691126240548039240521250025709563029966582081770203917588951850258375633673271400071837340100246354787563112868431405026422056090729981232086517088997019272333942421219459283367534801958129169824733539113666414071179227139787590751657906253582896337830422547357400178554286316782052041028277379579419601919767943459651097790932725534577990581980517717682047550623089491602679909244300014443540573607970299220886028058221684095384529571202246407687623710843935588882713342874192826424079160320513688955553881192799847723993754930124512796481611677222198230852760396470779938560593008046552020277197878259895458243681849824236641062953638592667699730952068504006766515013086823823809883447255566336652118118732056806061886636062809617347039359057845320026135529351217258009580406295566006925834455256209835199259714414407331794625403700370112286175660710046750808810418302701970077180939408892566355378077305961892658850391569228894516303269668992504362082475919102747775280982271002750841042217224604853549367653294304953487791655544002245462107193621905122457355573265050933448265641025052883350661184987870171227004742394944914473582149458776126180279833055075523688911284269221434923633166857802684498416887866582313212663032120288111398211901427187360511140690657959142320558526685948618328355529339779303734846909203900079550057984569068424435661905097402475351422220218316321477861308117186749554042753861609873186079565530319012538327940021051148022380646117649173066674519110818203749188303375348773768364593246738206844074966964186743864525480190299253876353756985746577231421112914343193029450681836435855050766459578352157521553852969233667575172546448171127594113775197213494869916528720254937682027195135883708718555832794879705230832000015218036491680257947058161510706690131302456009235064809223772653898579620517826231087869467054478633252354463982847952778662957862574149750830529889742520556784026118270929219582919987992321278513180322969108003451885531536711641186882871073421540884969543679273964557876024627925911417488499411668578229284549739250926249744280127890736969306957834791915183661400175691197447234585859402108227836456369893205018825313584378339260090176846816489703305392003124199619088622028307733239691139705965330500760519177084973310698659616330532650737775720265883265015964723191849902961056523697316416834179964997597513209975901646464457403276075048367046859573735754709583560594007200171235363035644655495189185268576145663316107569109490765069630340828384388449100521078891816183845582417182954083307625588050207682459367315298817872004785191118538621118820205925918111418958124917689946209924302701218595932210403625461479295827018894974110431855501894621682907929196894380347637959344808053602611697935528125846773240115803215985812871806882191969187777836163872340826928573526471532718463424649027771610868984010671665400052061767411118813043811380053625131494406347048973216018382537900076851075871185297998803380693868054908550746549174213560589383591628645886743342410932580606078105662777936627902277101812444370425484950165359699647770170403304507358549332396116871261367082484003478720734551835806094717022550195194419251660759039317313401970208891778005051339346833201881245525799375337196560684964578990666972866883704811564035200260403606938822835755229330806701736538208017579576771829586145996830951065112317433008666159248743279332925037767386894998464799713363654752706456423742752591232789238326693191899941955520366381530618414675735779028843986793214460522713670793444790158689792701242843010469928789437457608442172832033641358768463047924049584602686195098520514074473769771963437945944062693326473629294181918174326933655667923036426011291251023226772915253147016542461532969537743501524246099852264459104584274008898896853604977430429676308196468832179963805319525207229959580333432734800585521321242575909387718780344847435726284216577870253642046343207600101467502558668334070313819818984374446152283593054967623915712103981903617733920826311832185562721871350597664811673291751403713561712820855997312151818396073845226467542799632934142674248438032957817544377041664273501351148443303538083113720582436868295149047106125959679216664315421725668734108487625231077505923441199270892574509754399209555178974585575180655470308405953755640515874687099810191800683097827801120819584268485184174144781506611612971429735089584695207079751960595580781154306232067404521540554749897310753623362317484550390693047198550508786026066127646280381213371973586039002998838626367430032222308138522635332675778680751697395810526130708677192373297672012928862577120225768495710805900721420926470563427730644103270418537303493327556550967181242956326048864246643191054290212496501840282607600146478931249762145886968008243884996626980538588298273557088920907987214393792529285450793389094732360941280145056163316151307420765669846215494094603977180435341415121341457327988731727484612954787926219709915727414672401939326854845500067268859699138223771241139067155298332052698664368358959961277359035648391201825200987150394671505902988890248273091337636619824501963815480844220247062944646488799719699762684298035254073531297133986764659526800881998857080143698435249869961868443282706401457509605242731616853616573194910685406260205520225040537371608313086436989506996609920275704326299852116804015301680721984221631637117676482201149705295593683571270927782221662318943964283822540346354650822582470534774741784372633122429843464797265878901998631892070924626010802499598107437137050322632420714685330041284318459613675057021741507735808144732878188798350733610973102077865358803736336050607853419937891615832143468885838159282279761044970525933164311699774653109028586847817720545375204916515479703607971672338792766941195610405325421787636718209072330097002356696181049856922642732504766613699305487963296487080934787000876896193200620000150925474244434676831763254850876256447848156896458812197116256891946658171606983350091536199237825736381931134155311998976077643854843865861508001873650492314379676621195471555417922856503305892722410728672135364320082066060114590619825272841892701379389365900686212222002830653793373977268325530586453209916691685263277241597011899412210224257235630602773072569571004055276554198747284283208729694094915036110283334209047731649168189354597726168258675501663676480023967970776329373279770642970089076121043730562292334333729459657228960004719611589441003751101072703296552786794798753819197679471178720557142561931729290777322135658761208337126188494648358057415768859621342194157633896771561362865777097923202451128672361554433406305468140437695577630123530265939917489287681856150911831632962168150284101890750471246774789348332286098836569925187126772382586738998063079415293341387454374849194959959280774404561952337904865187302888555585479992884798856910568851420228214123753784316744677024221096600726914223480315340238586625278768286398407619758952333094602444086099918185382343261177085995878798083045023840672203393967898523411957436522168134578218275098786653756413425782469588387703479368873470258755174820011449590993020456769108060189951656191909063333984023992865994040903673195204445640789739510390891446105249876151145761657743101862823995167204405750157172822334684092530685050933674562347706874857973208381906349421637786158299174072648814374742412374349987637094642766661815648800217558422850605579045821173269742713600146333033415320165529820577837711432070909907947229635863484292974521500349033201581408204303057412242838618243818917516389875102240818860428242402554134284636165852827431817004267118748715639836996657879245009015255547564036625782513730392471822325126582495709342285285341588326008071640312343019657588190056561543457342689506559215087585987775541731245806708526495264472356503512643846131280491506871427991771596336906741453478580475967421808873112251148502490550554605619955065690024978895268603572183008102414712151395987737382739335823570608733323072412546108760359929801414456445022969542910515017471217807114718778779811439321190249608837263585000806315911593516221229366890020722157087091388152476593227415045988185628792030067793864409087764297724461620960082199688867780544419436177351678734703999251867260099750451276900569308404194170366640271915395051240532290099376158651233633949274526192384704823531846864236283929684811524688895433867048472702821500059640577583039713012073642984579003415004658713620515655218093155445269506050523476166105406336409270271972447845097332928000645905012623200496505013190880330190110568847282428229471176506686786639371987990867157965753062167932650633188734139825097704602318148032172688196499059048753442791648643249387344102810197824634199081607961940705190426827552369876035740058718522654886435122630082856097712468521836940924741684885436068369843846854797631297871042390835020814894938715344117851535919896282715163019538323599392772157647776244436967530421073305405017256505588763047467762860262846618043762960533665634993287748622098941726315870761594981791723471158077053855463475521790050999735876809903125908099873643087670007764202152404233706981377322909658562459584811640907229803845325122323096099502581366535007893507754100481048328627474985912637357521459737744014756628853600186517269283185609217267530443138012037305328864658622656407474052419307926546665074017011578447379518027747348273765852104458464608626877195927760118705678558577784678558596362781022252992029246437552689475877823695707071692435400794580311435810846275721259048639643892888873981574729612353699181474009593544053353401266202063580460667042568694467664624543960949990679015680685143224958189654895062911604772837972094034508453136282051435546546351197296807012056376526657839865910566454771113406319130958641943559292247431149840482758288435532189677711233841796574783334494868423443372274756235938310523513840615827509094402395186916932574233114348517079089228167934588378531005643646274978770465441628842569234721197810374700704359806759841580315096266042724989672556815540622787696312174023964151434863740418280452807801236252813196566606994791321129241367543186500856396702670662360453286171173270575213680659819668964705732006877099072233188999472148024116860956357426171747592073776946717318331239035615326626370867730531826736938589453300214044386565760168381217510634907462317084980845621411614274898844301974402298706696056165022271034192233490633722192347117670731847692357679151078025675903259541092793553358875537542560897187248924936959860125934800704739772158326233141432524913665363909368806386604846299295159770713800736969102964384413193057754968914604490967339314084408461825945848249575225555933483101147161929520621286424024553395315966388185033120330195311212383630379424463296223730066540017707212681223647439235166623679610325192938946237696278948989433382514933831450187687294932316500870265185857794720083910265358751790434741300837766627008121254534933126021946795662336936774863286449199512189254536342138215382634342686377923749413430990868603159625066876237621436857275410077945582324938471867216581503490214315902871921057703785292399285090451170011859767923153433831073297094645458178930963946427419312913665177565763777710632670599790851229576186117153816682305104917043195829363812659601336101627819053164457578174015861965574332079736015244403560114297520084241318760090226706875307346256151940619757465780777307855758518884973723339454780031091551475114706375726282116196951093502908377391979928751682635986878246660741558654073218488672429574308835444507594559214726674035186996828414468597402379168129764279278843875126168218770755424779735238841080065512390608633804248617719700354224843361881211723193921264286107938590853518534813091296947030490228067236352581594002532080859373505320977498957696010898863211126197574031159857199334610936688636056546664065497918333607326211300619233762424246794677597737343081236212608971719423848298560660209232358276075397313711087389782606097808759305278448236171566629058626450651050086462613774196806583742559646678624031046531459357408360115182664492162159908711837589933213246567350992712675541875742685783138938844232291575319790203278660816318422775269602849673496888528129605137204992533168746403972454073825603161512964446477516278329362973588873777778264787246542636291152227381742019837166387667701025581639227802626462682944752290236911603514721010029135258338232934928618731960595260615979160063762268294344752094697184276052913810862594443876496598348902236518806877000782108395265507725345115472238655606445190122785373026777526173094252590372641196749641235160958200294096673918416028679979756595363330522572000172547312729527171612104423729946640676227890487873932595958535085080400997972099148121868368622897027633487030451237349045862076579281024132575963779088115110443482556271059013001066447884844563061358777310398879654705063467618944290224926755901490582005763337903212310231553596197353547070082889361186014593475120068316213250123097784434189741909993287133008779537636512367561620539120678178029610476850199716237389409455060467037485466568279731087355634316503114708712590979721083720501393827805926523256689214552693838837719665453305459335977381137517469709813093086898179011220021712245188790618922849040971456937759620307929330258213990358159247562538144441989195495142243986683275126852819213178398642107597368382669956789152080258132555684493423810620664459069346475990700465872303403888071507405033850190475146450501378661272765061980982208085217945885167802101683077132101062652762126366412335028464806151611210729810618494907144918723217116329030804527444070784006003807193410867314520803794844865781368066973056410064986870733187690138729330071708404688689927715684787799702515142918843407683567577024942427661671725244157584485697844321307340944991429287954551817982758394371357251549110801815417482405646242113113079990780807135022124730116458779799924967434203462368880701876053459779266646216148737072753297495898846382633671597914185160445859762520145138745584679167726503589977016686887822215870363190255504270627246998995967778124474909262062880755754418910862887627582242098912305995622071575474280505841496731919943769810680523441679860911252666653233696267102155241104214431524686274399902538460956226054871108387191778546332319609730713892132422382966739296392283039749721760283197876666765324460987925430691058875432707266860945198588346333518273118330643845549310791271806436493387210068162683838081508091072369874170927584169273216382014028674389940219986251220011345268299762742235582449580254407257200932604404883901307999150700602900701232038343899869979610428135044080530217563129562545044932354614011351460816513799492672643108280113145484500421522490766662093924984143125751126771171392850499702541242962920137217838619133338556163536277627327973553864672401993500835837967033460268914560457480644554633806847911041405171092454602430349054608917633314336839050058690050884983117508273321446975917112763430834277564322379022745852210842101761446845977635273146859377829427535072205891961721276428397537583887204078956426041755833800437114334662207643872333970043519315674350192781692949384034814333133673142278818145476143655481715574025205154035753176573355677458127342388227979216745836173617153042481214910096536167230652876826044796515968159739022131148708929908628248648893602010610180895895653626280369188188369870490290104341872505453591057220362624111456261238591341162466508231282623506779765019157115286269475463120207546715564425808849683679615430475845683200681797780881208106540125292166794620047962505809063582021334998543563745686895933382490379498261739677747821587065068629206150084012605480540939251880322315297684926840765391365026563226388510333397791060528061639293257851303971810102723149262973732681267015545594755534500831409133487580822400223901173405243408915279019215463706154055692615284061310275635494288625640454122362178246024767434312024214403975292561698899208846868819108570542958660459411171589988056941056012302201986349422334798377186096215854228888130256777575267937631226342261500067686005617915979566668004528076448156089853099348920218972326305430840522841955018680990756315421217143845952576679714469672677098612964220251514130700470619971404453380931097827187818333103352626266303722480313949903205108066582971127965648176027385602777154345677479167495257345298161769337269456825037432919568577374425010354452065398262887558465107507712409290582827774613865002113656530329894332308535157019108031180410752935757079641065929420554324205133932740014212775581045925163358374384754712803627770240490178666662025728032212309773471811300186430113070631207194973858805864940365618537195305533839368389469112442898130014224231950946568452024972758680357471895781925738018253055325647407860367643083798497617337786756326852149349158690093594820331459740186571531405061267266400617709141344335760648768071166750961577120689726422071691886027224707874194183323305944363818872338399455631754450244241388962114195618515240325657942439890858251160555023940682025356716949528633383355472991350622729898605424161348351546641134391627999802513318196659916378071547083703133329202486433517071485775115403880046304432372294619252554320592169220170186776980783314330112340071700608793986103570736971110598044191577089399880608580706484724056873336907607706254272580762222301837176963382139441239289426249606467743799880794519044557591289532869431991598205445661582316893557835493520386492304891016776887305806069781028156779799299639576437663132154525754898111303681695407447900128130234354401351692812779549661021342692200363089043144733843187160614564417390757575448630717149583530868792855057466080500472598166598324337743325845237393206246136579512847087224372231798393100774543808120033293267294431050514697971590253366105017514158498585794278434642834502688037237007686382823780231543870438404719226971420156451138607571846489387370198572588637874452164885699928117868670835591397475092878228584510166163825969301768823194488713348420907628135085020163655094617327253619450255890026538078103542518010217838169619714814821290121069976016395435816858997345395990880715930126231212962274796713703132572316302781062685124477276915705511582416654917812207494768823573785138924010301598327245849348377712095227218291592555882095598902004554956181234581303942765836223904497237996303353922820139753819312873311695936698976346039875086020430277804633901623605511680773851039644100327727112318979584822098172804583161123968169247823459705818965679266845159212237397595278200211021551324529627812977743511436832731331011789008012291798526367160111975121482102581823112162122608679787140757461754775952476142569210222717667561948819198208177407732106039418528373508430264764609772161446781018857480226003024196167304086378068517402541884197588853948401632142144767373490369331258846204428035754706661468111140942531345960647428148900574653619259346881714486055454984854057710488258033635497364666940067513951253440918686139682123179360181156254971449308008856918692509156424271007815404335704260947147561583486184501191892817368871707664887510051703124070660476885527536031282838570466374118771805554837523104852450856663441666672752019616649742303689930997309671077295801680399057535479687535690947073603538901171055282599457215133184066353504427340566650632017521879791859504629282699472470831682961517495024118065476486780233520593775456423545240551778949828740982264827571857931650329246253541088349013927707749489375569602277760426866174699029888803751903715364006534684756330421273718016535501303632173012900936593063715337525609528982352200637156608154495903088753638759440650605493210291164478060826213943274343525252414752266636477407824082128610402026536159269339483319085033492988482112679549019922456525533432424917764167693102459165999504600549168334736618182703638705590642846087574793479551515433854238076006304510399413090544093637387173344471894923412025441859266929454604039171524041099046243405133261616093919654415810277466827979351423584204000973785024431181306483969011726555095643720393863353942441239859837556911628190305458895675817661948158395441028443284992448888290879272429938896144988322951354284713682932156539815916245392832970928362155468532061528309736288296992739440387584174467014233745906597448020295688692211880771304247028482906947854051181042895399436079067750951007025840264141942727564428004497469978557398319274484566972094835725756273912309523211517928535661901103794708490082006270960928661980943814761558808082415778999691266446088575861063104320953762941244803610572882578976464731406137309838000022373922674693085379046220046382061050572901078377980707963369855773080162109123933611631576275063767533851593975294223816557284379642686037929277147612331779797222535618111501730645435476315257472641167236297528338086363016652064044160407998137174913685298749321501754563462195558316434888842710389760462875125962213864875340785880148120146373414235158590393695561025461560313260304394410397338727366997642468483341649978342741756850638324735157155387764159686426990664507524639342796403578574092641299518603615817938728162961793597899943838792056306854545925609670319215651537319540338848943991771745830127570381871373378020177450408817389465906624456241159041598328063435572502101718748405295792020435851740742109146699169025652295067238061362742447925604090578722975135271741261558937704512915201524555462833901567534375949584697319782075104616716923416311955397160843183650153239649831822824716811035435293032558185148796146974282478398304559900522238249041550719544137105763294909154773515681147493125011145076417173098098237575368245726349206938527882314064779666919977481048083570123273318234947281971279410377706551488967873421997317052974988024699323426208683884186358304864577750403641904494077366072391564489121436411660655860934304305069752153730648449607142164388984560680968752985958236667439656407806470761419059532636325844046229892449053074837306073352403558937889247551372461966279583341286543638468357015419936602139504462080744651246449842721230007983326813783924325455177907541235631366463465742936804548310180860459373110348398236560971807527887611245167815579360521760633893637815139368312561333326806318577316315491105527930763758027156946403830117874590966305834405650460240738867384008313141846911911482689625576126235296350161491672749077090757269192481842903447414898936443024573775524940484221259056617303680467522853804648532020117941857536933271379561230921371516388851953879525740716583312100762089670909835652376857522927023546299807813717988691880464605700803451174627348818942626966887776765650586539435878785479777624051756678784922940282933877990993747064238326102204876550843557538241996742401012088256317702859473806735700077394654873493722335082400051555707325538205938222782211837447840994489896576219428760157027665686619223093626742940945332497651752424522704757135982636336005434352553506138531582349631901407640599118279605693811261239275455228596723600601335414655797130776722201840223183302282359010937040429401057422567360410873497658264950702064505174326970520244709076439650168791370484454021455627381181135395314723521063976018709313382864645686101816258742875292604289591738814457925276750790106914703373802090145113662008587911295627688459687556689856058274618515652728838949716158267804260938427768733642827839625709669810413321963581454143543459535261433843206718775799845858334139863392171301543470318874585270461094165505753148022768934991108409503220990217737986474435951666081730329404875425309589983419986399557074865160424809084857136340598718120572963729191606144455574602084801147396719693715839072908852257070984099319262117828503659324473750183594826754748640241450168676702946514468689207247761032575723916007665642369788494738305539172717704935585197116788533891480112207424270261067592337622247066749272830115310047714409305393838706639307213049381336923108535203714949318867115909261504344847391042050465566367558034422266995389381851460402889166466723217555479268114391209097985258846105635216712613253446082022676362946429882489010361226160153336182793070920741446029353747940269490515094295324258385319056514446662534825728592935738902955118882060363501036409578679545913618305690658691744984550469875661638547308680892137995864860912774832313884593309241247293301207059717554028313842357379276277681363937288797378427256397160217612830573265303078752260869287917612170810870081407297672600062835461517328421098406027869902975517161167115359503256253563789264831437469686023872778332203523914494357586820039246949051329585527759536399906884836045711696289243102295889261249693817049857238809901557880505786065674171879172275870812380747052837506003627769317185844632812711944155199943622507714884305241389417176556452512299084908454591785798357814849345359782179107645043658352476967195217728348931847016088329343604936836415665701972518916720047949812443849212370427976612672402628331904968646788910700294767325705194718391138176992691572305516069016227168868183653277845087270991946488286692357211580664055235152264923916615864900344045466513187948918219802668540418421031843897764251858815573782794378232434184463005165996048508749164010286002472397055400716317789312563964481092217561207693905227710738272454386737662930474684058243214726826398297891235271475113036170850790684413416391134685954250833962332247032497981097004862674477607494748374357716118272126750769583526604548318379712307536236992290765823249797218619718966973714261944495288696960988963528856962608815291306129176494578128317370905489455869703311657731894821701011454301199996968427589626040478181109206449033763829442707114888063251173527213735268890097532202040043709435757972586305461993377071876876359963827105412470245372958922784574499863060958615713572721208480716956612556800658415561644834336365071812649388472535252290801019945713642535499281015823831324620094715874432307959279431535578330675830715881284913993699242291525763101403375273503024412589458546165567631649901235371855231832897003610194147710340503666004329391642759758128703287932347523551759913412064726428302867525258168550811230189523781202865468565335639295952812261610239920372956591040995127364329089958174250779662543810671763902948931978525084669666035245189725016763888713674590878380123280097326376142506852449680917950388989145180396985922953476777081698116959817978669909933135947725524535129320527394242825264987007036452166151456949293868100082451605034317738929605798031216822913558269092902699488442527420242086951855527219865878390020602483392118808769417647723441406898417492790263533415916365881485158985075032242877162069644448838263542708843650751965542299966868343625743905265606885143583356174544988063419594941094065609368214608690588801627949006397651759929730128548141790750739997850775476441776819356126143281946037440403304342305599776276425654896216463536973607633688489368776625425001399933132410983281417931984234444716782465020708314743070095315320374018318482203029547698586676160191340979322345215121043195662666450552273812343245792580748665378462499351898240721339710305185913214927887501007732754503736471551530840983911052160686184025607280957757633456779513280823102026930098251893409479018896656231072622415158561845431634513861219588385641702774181187675843359369437632778023740592834310452059292734271010829442339761825510996383083895731105777677819682831724603961192424515562191447627334965844513055802514413223148851130035100568361218487216187953171162930204822580477289067572763062663838195715494090110461382590164116787015880602533616014136238781177831371657538180763031396753061618975823087658256774080912372110243519146238065517669858141872164194063888803796504280330550908454725125110875229551736409234673008944444559489474710536201607380800663180570952297216231074538152094829903455649206194060632262811114108216102861730035516003370884456101682531279602212026955122179632253946699052821443665439485989985278789950633307656448113323104080131424573489094546129799454315988730076420757184655622285479093771495752048203674684397777482513253848195307027041757481683421936281293915169070640079845402901627535005959514531768447419361206654383444406017887114424583980402136538881442509720107671998122344704027174961570240104041342824780171743502812116505953517684439958216865899397876332113620315251318784437597742015415942796126662344605176382965738925505461137619717611238898848379864589065922020657690149434813214115194772149105456798608496360651109849440701744439226006192981544820806181863401370910334515407826733986115326839256250417624162481603925195360822369049700332591479266369111932347663205534045835968731733574704216689770315400776851053237549565423200817881144705820358633832576953876156215127043012018737701175096758651947607145681860393457287595898610195697157437813065603930050909997237155022724276294990804747510026248073939374426516970434926719476041872926260322398366745920196713041108705399134598422760095535806921516046851898002159503439219706442722294709869926385314683809547542508172973995723693352492329819856873331724120907398734285645761132843875653462124105893358407973715985077052029975713903485548811665214017631333251693312510763433896710097386851990746227879733132469910152187366293815400842347967784445074174726455730289095428575457122975107640808138708684011079354531240868066596779440107737729917535896865564632557675855751569877542694583431734797889817725015521409277624197272478997323533861144703607938381463675554666967151504211198324989883147285227195525340883487472305343148594114195693666717733243403654847375178478298239314392879301709935174358621115384074192622212352051420680311419375454160540628560609805139387891647208128927788956975948184728121097865236421782684976066280421745297643539480177576754206834099833968461035674869087602051808048590962733264133874318952113610345797860345036789531479309031960269359615967283887286622762427719321802799541243590886559743523767346709273860305322548077381938318431865797134876911116776917009699967236004067521533043349227891676408840412207534794597679671602885471359419094561234905030989657819420393129104355322205535227301889847782220953273399835400724704191379952119306941661339594434195617748023771688756542965171756994893511919957889558682358835687536715005193664219325898617425923056230581454421212834134372874967776412655249700357532793261923569177864935213702394560120053976670063813050596212913875957110292935672170994462288372255727368028354651163949851672384236901682369451364423039396452031870487984727874909493889086498392917772787636876261202434545791879634424501110760387825683144713265940848689980143258338590071566632093736865059685858451002721448181294358729378509920983717089835756029965630955577213112917223457031571870227654887374032106692341411167140703668615298209143897210158354287199553419254173978721023626053246712913580861017324335155985628850223004101270877371287951911684120562120743789967709164330640480559396811739042694250091914112539402494924303769588383067596747002422381047391111269089211167530500102333501418899023635486403179891503466875804883474952537948983052032387714356126617486025502417336902214699657058903544852548808921827563510057308308709684944459618606241626904188614656289149373109800499522581240493275296288396521599522929024678623490020955719753513361956078883017727390876312763480482013897735524658951520880856461232459982615805323171662709604972324542663049268409338044683871082735027225026684928167860211679230867937588880051899318326606416991480367695398849496560147141835672750437420235041035872950010818287963854854208808334461442367415539942007426784891764902674890043924616270328466625341494425919176706134905756395116780529648056635872182603113462146017530860470621751539572545860962464054177662737633722262393855885026728473200132517946823545954583799824678006446376085667086687107462058923703725413453438288529222592616747893285055728308168417314858299214277478219504663705953225306859125845958218607096156150336816165250041040387853270923307334820137306197936607875469393986544762620642408584980322882103707938305790068837935732075461184432765565260365270764236005311081698927863092111389865497936202620551993626147509133122423687779033764273894482206925618620420862874486477964956684945158897205698068956534299002575538410444603975504796931104114812243581188482711686536151985175374658483234151970996696965123597761302375315493196182785292064256316042319268551093865896543476712128178262499383445613160731312595550634908056388946452359746843056813090144093949334026498817857666768062163231536109768722213190810607709665743302756230991628674586351129398555020331797094756761991382576407989341546478979363815489865740218662202029322948579168663674143396791137434566551578802253224772072866651270945292208778903257357108809743275087212365638832695792877256398341455795545105615269317983811403577024223763659283425508775593095808402458233720802009795424755918764566195119819586421732231722593921528596788343280981017299742993425495515206362262298610657014292322710836654199552699385387815115071830723775571827927344385670020562869326040666729458477787955072830274898369123433808431303415099699020803302726279015798835553280321880418636602267983286622931774726906650858825218178288106502451866937968410703406503324313093246578845188180822738026868460888721884215463517193733073792118448348323100978798446081708545672107555007359707106799347990296826093575264196274125973874289000431662078860770786311211697547512170764063357774154686067666821239344613466307377329554741701771936437047112357763005255567850225074965587454191244581847262762999468350829334461891171018432184614028438225391933601423191793271386991700521787728750928581513082261098648075980782349183620537008333710669990603385641510825401538176214749796039743725901806371187062107124308169357760748378917975409407300006077357988758652162030268899857087934684534559622910225456128547298579222820345781847918808629725119902760585973273099277808189067184435681610172978454061929471566546036600531614889352755447837278042235905326148242550853122545627488482059764168419085746281026566399153503398666120011995322136182763215871381740992010158869307022697602918748768430131147011254163132796095603213974476284309849307248401425434058937470131818657466793007927931069322736863701846520755420842101013191269332111694473757966117628542383212780915295522638051649052595523821215814156614505852411812508681246531528388528629424721291476689956234583968372831105048244664482772621513846869842020961709629517637429109194658965994372165458877284195665999719887364314460006406358085891598727962090064117140032889269195104235293740172057599817489742208491586424318765711381247193709780667957550129739826171602923176352749524943237499041606325245458548472674960725403442734416033152622749099703380987732974367142686954948453633887906289759514820198918310270673939713671804204573418698832594248705799115740224269265447173694358107578139227191957935266570456234160581306571149314014532157306886865380267479062008365802784799446713501153291490874097630868537858312704431321212752065483937943523550973260263668438817569261406889937262975345616053639232433408657079259295322857867408560269595193579959961184792345092309602862284195932781642885398015012178565496859433395142237855728660121872705211786237091413091228792592827467624212397846334165617376868159715104960814154768167564435274767092730645873839230811263173391488536848782716911878365676236963703452985649613783003981587384768966286627192573638710976054347893427839069393433333825347172409446199539192914108790462316256566062937187883343499004670799726485334157472818678418004687849712202690236012469844585443512816743839614649738177561782448572347321972244404633553231780054787037244265559812973556437862955328350841564203291029464537528196655504457514355892071352615308084220478158142331404091792287626304354979053204619151028300416111078509071737252867160542063718768831288541311797823660642156063708700772180129347712081414318452155437992630658074208897948606641278027236465980744839152535915041745544050387732080393883890099243414859833339038290011971433868206003868771859659669609417058216900227180466721026268571447349076944670092456193708038149014189541441076018103993762733243030899949162796242634592330003363703269712671224753486811835081932298359808148010191861519785769932722278526991339211110979492499315964632935303972523640312709929795012375061942344889320989382951420818617352000256054813013500159320871240740161855789179120356101015589208970840251484170295518995581061967507989420122020790077085799500515683830180037949133925015152429088563254250470533720694901203538312446476243526403474111873186142654219365777387167398521769880272919484410044513301611632401827116024546092823844599849631817275999827935225997904060440110554455559146237102751842288428142079536917902472926037269365005847439528314657211376625719740911756908318817389494842395756530015317634856492397713405183396511510096933554988668841600752226063415265009615379616937453699597606797890130499312655923833370229335841751869766736129595070868967908280935072287380990100677349846421406343120258543570486640490827861060390766323139911412800558463452515763275736404339057853103307599570176028145478230052460973812377725115881857778660396735285562319448142280625681633351223983911671875738872140338665406938298981466696946061320406858785250978408599961902528413821972403159630370895994144697167137624938214748388167995153845880102234422026092172997546113103507525409081338983857408986096696096071888375446076079921824230679514185859713967680872368554401559788682346346282479510948030524309447801874323365117755998815745828135457697082768373289175592244426357442676019971954157288268192879305640916815238188529974556786491903303146755102566624906088433295336750981581092187213639874970994966921068888075752388198425483436240292132286885795700409163184158873601670472231408793311410852469976602424540577736357378642117411188311855747395817196481579584510347256937844969752312125598979512703509557474663344200274914873419616244456754302673542318960857240147322471217265283613496663495434494149894869355778988468062468305907295101168326440158705705105811261965849699849552392934070340161135478915057020711537640206209996183446865045931820937378619456266387722828643443989247812789187143186654212964614831576684448241674654652802547479449595999090814001307945655612106047576745544193114605928635266490545361900615856482570554463845490878427699545277393648462468279527759732026470441365296198623864916386361515451305273592862556230385251758415404529257947997397833143779411334610203398473916682487794087079409214909977678523933596565331874317508721739821637613050456833293337765342510037588794824468472938504266296118353646996067486286623576111019779501109280311273548975001373376656264850430729867336740732167952877322664266860777253778892801564115747184952043817781051844301487132985674455073927961743062487144913676143874200327435746266553665199673257859969216683751239590047358697485826385936771689389202397178194548730868192866110095121915144543354639479134274101605054660215487670880727691559667907282902375063236250019713382614481237615500431878168006028869190160935556997060070757881036290859685181107194441166853442619225088007320854123454054823853318135161311540908685017141835971116861747242695528257156900508118366883907088904816396452976290762518426100125454799295409159657839839835318876445466821436919374605262563730150666199341546547761412919047985623720372376996331204039964773776553429866779312976222963206895365867989420766477184532315221599361141699210229041038547112675033713601206188174627927489294497143833723678968922853452254508641963433030897288631081060502737344064555534859478724492362064799319923879114723797233597184209142536439220723263072391938687805453076519188441907422460304252804153754440353190822978850206203844792611772011790314250525405186074797870073895514689333318635733860977507450382837044465396047979719526404391732104353027282620127251806059515519011178118806347451202098406660251856009757599163011444771430060479834336329122336745215655924329593662694224654022895411897660350089534740720260732095044650006845194390901284349351219779924051398849679964648764631303189210765154886832074720862006059579034568242518835078108596663568927710487715293283946880624270378910897990032517955966339811976135696946986502102442036638384436261015231691193133379493311775940426672234204656819427974033835955473824315701993051820733953758103136773121798430828632528734976458845265779198591741804268622914280957355786155805076213968889195968433523260093106790771553578064205984067574351902379958918226407857432013011055815900358182824360889555979477112224553787553824606044848392848742606978178094302450782996970898811432007379889769659068055753203041798692485506222847241424547133173413801256120551691646767846032223517862682374554127033515276002102585025291774970446096153244540494379624221394543453151295022945589697734387004871507468906634539899974782354057838053159310284399131978240667485947426090483454974079084483205421263524596235402995937261944881227426975083520973847228725917252435989170992742719981329152897570237702317288684825814899271310967875188324043753055083733024097387067215736058650275180781071539745102791665814557941345348949574172722129017049709072461396046474066712538683297617888152353920111563065618071283717573402824538022470832690094590857219060119541879504701914097942004801725986151121107697674385154719277019262971810941236934091049754346020415852289480213995675741193781791680098796682360436940037434405272931194367339356733485240655387031987437747461389751904528313532854876883060925313313495493256045559231742448182498157615288361434609280612925127013565782273349035050751153569695330292865448011092330142169144521322923553959572290972314150603554921512203539897289615747573172886864761057454061752474334850340678805966280264195502847936390581988644175283927561063326877949431981852907183103074691162691184824164884025697254682947535977724583432102232989527082290106354814414804337544892351268619410209145468073566547902438772636675282079211176514388626569305349817347620640327382833430031122140015133828510201941945536110166286221447158688453157372412984623565868235365079746996461536567269184919930992198819779803162518409915388810481911587035383111826113580160906292195527138643072482858910791799410799904680619553213311524052541964515472632493441208053826656944659107818527848446320494107805452840414522794326763775801148684004115337778300783948814395006601372007751272611734869704417986679980166688816151999738081001705426450081117265856684923795681717708347808589308149773335828539571124232832624475492066611905898585554181506688117437467527299345969747075603025943974825964343266543211797697655036169035776881321457501372190145610259580435466859896558182899764382858824171969822284876869438305263537944896916329709783952051913909333120448622012218396536149464752820629435102964170620205544794328501184325250785012723220943063160998865513839112013488722541754342571214328895574128632635561931001163931695161685428571276704502566543477138853947002384973805514872479779799368281520206037721566590529551639941933401429200880256156864726549743039773400567020114439790884382558481146962764046358955311220470125532984067745080529813022842062969258675279033097352869853939136082302885489321309555440188551560577880160521528165468215646991939993530002976145330249914686571474544769079100726817728042331767594638104564123093870500182703408173251011287218304669750054449039837330972860362890514975225208791606602439416567751571049333314738683288753748588453497336170366802749733843578718937978455741439969444476652609643621972817188162665425061811321518759133652048088377103623525081449674883162158467360586863268689758506090626029562535767170230778872246203515843619205788057307877536339271238964638029568465719180051998227426085056004724062594825591997183876251769400696901571212997042472805269503929577389410132124730980533231022882014518428380539642219631359559829347557618265979646481724418625606211407385837561390760159668626565454758856663403876049987559928991689334311387187699838103891173510713514670572491005218194825977111255305769717503817941640128282949507026622701053992681311436761544286774176550337046941852242283453013960184447922175947055743114614415080506322050651971807591931156965435248511473027250166903178979663249902512957635839190852399708673473462886059579872509187860894954078335999955132059519945099299948454963979708705769908782872267992105497175615920337286605522091743406717200993004771895575658998085547438836216936943476635531949558134638145007684349103650751411025879340437427008150525343062400188952814421143898519115513853509119149905279821301751678558189921421697549092669355526140673128564535255486062212579712778425556999938107973902892424105175698299967996370394703841351206580957656501301767979058271925578137173815946434850472273834939034977870533390857580313465843861998689318041162891631132158306952353753525504866894327251744066007060874673124629908604150299462733460470655267541201154733379205930373118226918857165529564894386876660816173768130656060306338145985111338342123053200442378756852723741874289316492887892851583641466015104463956186330171030817200507117089143085199537703387739084360505422987270076423041674119149898999279049488923565781299401374083499502760045247473564241970545222986332428015274028750809130166596112990325029541137403684081995244422060518612259064138077733270323042343688658943080564167857500022640281191112534822145239804525212978354528785903633615960802199127708479795946428844771339997162606552520612689513099080043155351459280103286197031594365079349419110628080918622906962697229280729660932296757508889380619553301103389115544571590275673756918315518405291229800483097354343553512169329420242884762493531223941920771147287369102951335846678830227868941361676445386012668939992270374072257000115159573628732811736375819146185443481992321353034719550420834787387765321701992963593755739815210205775166264938517166150456801483139191128394873874712383836786295800968962243764573540050656871982018852866245987023713144046459865765706913635709883202520492402564001989309265183122315964729431708926141006803298154964925831858334889084939229789725103101865724828667822693584478813183111884463335790930106503867540662859137389356749143071586357419704446062639117422497489721918600601283396334965554115970098493666391297375696235934629748820516907059008504023325571335604407290475733614539249420624761660420817682472499095036812983480640056738367433785240490909691732991417749791968239385909639330359411413418554887227151256234545241413718425984340308079585925336485332876258984001506469663253786339058155834325784234017173211819463490188291879974866552677481862539326895010714208211043356460249031334384693931899079722000987898874468484889675176990876849343449262108299417982626899084673538196186952579978246807234592573355633300405051926597540588060876578774892774817875075211703345592806283592055301694234502879274700145347776404044109613152515898402325881264938003446241507059562911945283725861057912705759853446211882415143237979297585524791410266651395790262885080584006695152437432606706438029139912562538164889167711630852512361704591698322167235156689056333710179652169403334115285036814871631332359252169303461130001303378012577940934606234388837072619588683853212899131810428100036667495815615050640170008522123617907975222171387922926989336351160983286141550663986238911459741793476099787934287713885238839719980142504681474151849107413872261044668211251589604860269690662391490395667654176693658529067986769927863773717298652434285895061830553162939667189632806079488316551393194985860443242572243446538478131199573114911402426710510821606288997233749717960517077149313424861164522946773785275471009682511468590089468437604353052657214089925848818306838571108494539995474864330555620266224167843226103903914379135023349398164123646339996167187594411631743555674240789348062532905176125903249320835112788215708867440191727842520666520924893789306358460614371672915879207706713927422400513758993440007384786628883831595993040861520381978223798869491568513210103093556426081283554801464269314155089406069245650484893317546478818605278886125287456598166103232794627759331582375698323994003068620510364764410265773998133827844365463159973713935024018269562510306232045687435337143539871798729956014086043982198801851232465446929553936454450851117847110538113758367839481728283699752401491149858881060482434398362908954039125324066508701194555975951446673269683791118707948669548459666688046347286265447218353203123256362910757323502887782455655012812182605804021896993633280800389138952263967191557968243345025216269109803992550094880608359655289129097442550734800191637442490270969728667658441229882708107763389253278693342778898669490982633108828127039987196497084378718741100861112869739058070717649236417516615464036196764232271389196202827640484900496933542309141856814120218231851146276578346048077517045980153791005359267358359507786563783545050127830257456136539501638748311999027180914707511842272713642431572500555251489497174907916914339227172020692682753283747240681783429478983441334941543247279105579942654359265632848901471715420611756022516331061253236970213321046540107730671222885070247944593891624844370339078163340044472395460627046823412627928748945846596451036297557071577163211901353308330473229746561620017960860247801628510802995478292720876319937984788717337005548040539591863551430700720812126083810602420533541161382703304142274234376108104126866065318885621737199632859626137027683510352188515430025225245210322447345092113587019838556397733656625493847694621411879128587666990750931342343672474534161005478608561848395796385494254687472781067878728914767729607909570481698838465581622879264092692768756844964750000327025596077911482976179416832596274672416617885094331043107301849033068357138012957425838406472125263498628824055837955878265080495779124046302734262606469574539016494697798321105555139069213900421486804959409139216743673813905675128659332153464222393868668762536899041848479156441044422954412468777846528583179685655435785995616671176406778000938717100505181528301227405917841344289671103482824875228914869896487196128500736985220504515147100764102660776340017168785415910220765978610510797540446525697038920563552550902853487868991605327145146435121731965194018068405042397510407958166415799220309388211282166701481710832554540056610719159135102452240592180243548711623419510646701026467824765345700527477484410193957619523557879630241756555931689534049117934528518241384286150996397977377183468775457326969403990082644053276999127518419209936320219121807428977465723640669913474131685197551309814056255939359899021783464862588252422652014074869404884436942704369579993033504121218737333686425061158192336514894045261453373089862998726422166536629132730403905336713878319150184458903110886303404589597958958312330081028236729386988883054001872709444645225377380490357236813172734458538562781352514213344820803144750892700185690470637146108998117996398502757941307770552156445346337093205206378122445184218060485812496633870665349853577060918901189213952721536829158548598091240505830703057695234976941212936882586487483503437772053922091960916385041481144325203227512532385915864704584136737021765842970870390229738354161914382638361998821469445526875784428131919907553552119926348182526883329535410137646452349351180544174366925525581543857840374025050637348047909042401897065924450331462343467980597787820746195686101153940405534894965775952165105652926120934463341278014461433235163776788971780345394602448293611095704325266280492931829972451574359607200202735815964892753176465007716053769925569843113682237559717973916502705125424662880205605005403568918181915860031265145936425285429307664754786643619157527768607842540577660248606292532216977275591406132438910273529280120601622749128281795457624310927637677377519259016554848804489528944378773831664642230298120853203541403091846984056370268127067695785169253669222253167587924034012487753309243476340403569504881054589850306930854578899745050988613331778496686334266501787631235313771332247292411392875638067670515959050744469551559909802091367775088683698523762680104765555073394277035278365635498203592482156974298144376543634435678967319379079891657687057785204893305882619779063895495945693123551453448400603065473626868335368100666892834073554118669165979586712624494383258230209144457796039775104528694317534938063858392540405588332878981022125468006047620894683300806870279757044708340004385744336221157532980883655722639541063075317188477400971080730978154269977768263151745623486227590410096303687093971698353787581684469969314622529228159752124658032007425637518443372636608041146800676509267529278832904098427017648129876430845859366625952126099223497319099761112771066126975209415236821435956032720844944862159795121970766288916285481404948519761567830142192432929382106082082536572785538301900065654033741419196571955494738040330996127195424388874957829418162635474690315664774176806584120587588218204358255959236974982239386435644987183940783722906293065337889020365412404616974616728008751754817294762228336092817583733851316516030909175190231678711867510967129566266469483956977812567939599757041143141666254923755702536709313803988600582852220528821494889159374005001913255545209523273400941068191670045512050987250193194553177959381454264740396405539739915557676269212783707035814380275105207482338197589086071652197926809422171144545747522156157848756594893541035044390772460452374804131091441111902551275511125136593284253896729198960361253125801348098982364387435542411726264888423802533968034130594466674525061222994015840620822969405392306496468970275415452285932691130898163035589687689205278855191447776800559698016096251948472876993096229578119535095039173871599903528612184130707258726760010557651811496244119733141097619209933084467567479550883953998215864725244193332486498535522521257095152678440162072562325791385292198783703768826494481278710879005952426476869763307586936899813277372299642899329087649134124163838578859473353223079856652152370169890766452148759017075681747550917358597243080741014492889879334873212158608821897425808643920781494157510844605446905711653366486775024833446793336944957150216164887988565724717206686236681368075327313206175974195069074722178324591886234703157937244070781490872859581149945879178487282207892619258095159181266082620612180714001587435670714330259193636834750692558592396911459603126703469053363882565959699099383555060705559514312218296462920801428527244938075709014952084081742585222408648338833399632708466225325573633459419744223272658185429950228842379087540053432406586864033986544235587183605027968863610982599681546407130220268970669089278971921291815682557726141362209247887466479423460664313939068379575965914017340984735495694300903266964958386100576391053130642460392266253198858166389834126394359961748634715881259685502550061775776105740032860918192556186270581895301348363503436340389796900688034809579006825123691480566163981887621571342668371035823516717583869540091175186036182371321121646166439703118730750525102054927071840265288496409639706863867584406980257246849552649502478335804203328410582025268644208468525656326202780653977967063547198223160241833561755696868751726487053242460349326067487994464897316757758425158523570707178037492034234322262870778439611427188429231025254119211607956802702536160042289299971644601049566513241193216862827677776273892391813829057136191666243507468950654806328635714848474605717182217540156963982360267125015373452014020246908648624843051876011354177015376351538659443834189467235101597971516549906034593429682055266331974076487769484395686410877695228279282328596803638894725863000328834859378401144631367274220949580538868239166983232109956710622488057504708412301877304418421323821072365164849600655008457744799316618869722119438095964386601154852177324564084073711568411831047483010036231198181468226184203384719376532405114934168787041399338001057163056081822937636190782304107415624216641287700490230944780154225743606888589473519902145509162458516568902537399807704171432856062937181675383842524770152242174941906197378184338245131678752417163771876907751852514117521693571052150302216239690716407023035424633799601103405265605284906920799229077656868201858629161201699217867879590672658426317981688260866941539845687061039737983751542493914577487260580694723498384281508999298051104956957786021246705604401472703944013938512590434107281294849736850573796732495962125080261721561697158690232853406066956609798698094248762436430506230107886215445019115882588111048072539041168350571052519585921635902325168579822299764881795919819607286112097147242015285542389623434369601178299865220945738591442574363268465624828963211676995464153673321499996717993332401490764586591556366729601339100988883410675469479228617756265692929413154878521644537597920142492722465428084546048248363306512547208753420142224584375701383159929544774629339289472677485801794371734975361860860715887877291931479303160759220436654940786518637468710093927341915721695008510162645406349713177649281592450981388214666340779666074837760085237644508460284326533531730664833319917152906365383831037875136003628042327288640847207775147702034934703040110418239822971358714258169919903889554794785768393615301922137599692114609280530585301433070992521192486124234018761527242114002162072269301899659695533105883440358559019546955912306843163453229572855819045126745574279742506674857593012985807648823537842136311912317802738069974142187634598412566385691155001072336719656456770964032564342141197064707018131767670719096112403680801461321141119884932232493628872221782318864070082217641234191236717307552841870396939395257344024888530027472871403470641567560990891274552693245361895688183508708618238776252688594456283329490496810193447837862564338417626553052337384943837354644703063039565822468026198858333173321477022479975774963561479481097770675671197208867202281621662077985939418613502995008201053418480052845791656746374145981320693321025648218344075502240365515862411633764205669906952600901175014904859449716391013688935219816891558617019114106821430041015688666756146805588974084311997302592161910518604136580577784361573153877466620937842089348959551813713328168621048668475300266739364979833752483240360436666506770160531844170925553586364089989428640587611013746092397973215500281583245611873246358357145658978451867645844844171210838952574616550878954938517815105679861473210489816798136675417864794405116914858549186327641957875793359589316727072313236687242094334902552047675924504174481157033661652257281203878670758775006851518604196316643747057925012338049255325335318770711082526696207627140587159596647102709545217374632364973601649159607160740222501396975895278036903945522066865329171290295661747084719932741614612912597138936385376129710148793925575414239500938738546968276361686350847822497642471127848959197400840621598699392955463839340554708722858368619347440713126610751518726541717842307616690538059002894762659458815760285400758074615052157510307088749781212239344669519898018336334920458511151486405530996175175744075175432889906755034498818794612826317919043671445464473671287970597437558423883058001503552767679141859376212545799695222954290283668839502075568306149020440256911195357653230644741490653546645514104882075166283516177757778322304997315925313522446819729622686084134762831626938896991175431358437400130575226704843169843304590734114410569370230370518730825115972894388608938748521707405090498610442521602379450649422003324438254081400572546301448287859195822615797654630544003303074420541278948895013485304629542840064827159444225411286604534785693081267509826710543717786844931250088440947993473275382614692683392381813940504773953636658458515362877267218520084263560304146245707093355951040850074701965662697174698549603604075118083647719354120090224283024976696953310601694860644175663999496372730720856831712559486701455638084669841452802119590547374025159351141218812131278827193790334062582123823328784180222641805983911182041566539910416628422041265138481607237721935405361822439449143037112270209702693493987061418519610242036558612573911375146403979149930066891702756521686252802990194018749791970186463873591619168819644193740099252897125214756599614916558952174649762365864955132624740468327724650155216223906953724410493923316059759159993155192809676029196724389335293574010443584710304711953249294075782302625482360274839914185899018617820660005734402369733230392625573034602524039261483809162700031909215172713270989633765974360762473112686026457663917786120798966849603618681730935946546049266988847111980261242819633048477094904955404489750820896197737220875171878632784790096812018434173653695717716081442063853611558826098016101423179147258258444896346430389606323401570074660879211250116872918658300637440194644358220885843606309070664672503728641272609354179036758793143745329676233609047129253715728566696482068505366846623224775180032725950444583377358268901907683007116792996219121417579598543924648898787644146108323605687094282115060529068707021834001372163941422032824458026967096361966558960962558141990514376406997304181479758798437977328067743137972891212712351097186322537002578018977554432431070001717037587746041836927022730048396432310384478171922056461622617396211976662807078890622070032548981071180754181221345773289313226156595332589347056969581391380411182938381119995521966681684141105467651140297236287862655416489333770027053067159774807130496767980908606421672755283635333381812319727816642499040868275132792016429214629074847158470926023643083187594010307077728054448221528682780820528966074755052563814098439973795966575238696814122654080268475096277099496009162665539956055224122187318071627310915180132050681144152469788211772528605455575599779215055650718139225446909965396141245911429487675715739793208832183519807955276376405171681104105596740808238925376555659964811025542102584454746163316951491506216267904050277896039010332957326986081232845897954298133608048898365872536933909967701800162772975838476024580099067534398451276749189881605688237327100289016080087329589522696618291061317246581250681497828909750823377816629890674389196092086732167533800080486877569556135463602707546166970842587972681801436321123047669096464676434497036959494065831843681507532100816976991605430271629183423306783781525118694990944274518178065171354841976192547354678219588308463185706417032664499914241983899424889016801146960831417049246803860673923202976441101377972806139741802057626875405858584538935160977915472226518287535560130956829138826469076609614940495536258748457136767083272284542032266480819881833958524100692796490403418090149620533841913726425114987086010164827265304149855468940138722533710365318772665806315412600306665505193653658701544889701411304356346219947522162219920622880061573553021148227757307613539440193483431569188775379314415045852704244557601091291626578132840636484228124493323218788952695053958677431258057731773200735701343855946610938504810949607107712532750142540666388872913583743146903100257006184481050469385032189886605793977365107537309947171359802676741740905814848409121007407400638174501243672364908058210878827322886302888783167535323182493610585236768814455773411855278961907393645710225341234325774925279767466571742509919988898483606448799469862339004749132836462778991932742836292582847441635337998150744361550822868953810898570141987857139656679550406999546376646747025613563084428419751877341327630933545786733392078155395803688292195314425133260738673389491928866835678939682465071766320485966226877530997655483561127006502976328347028811946717461306610041055072594404259630578907012522640277652996224456507226169024134955040152418566111898654210905093659412482330473385027924423044420475503633262609375214300013198016508546641019683282620891853770093043727323300653750858661719717704176014540182886277441811002785007444741131580493508675391099178043863416849170024317836237256706371013091777201287418353514788443269274515139829016578107053891210794618501839576957585778482853252183027248224578304310833892799189572913780665208157869734088259147599802628742350060203739272047142416942198533696217047143114553082952847221561233059893567442534492740242646981717564178014347468322510996860648727787944534383649452208168415760300445473627123765756304225139417055386177575825285193253669725613444049413988282980932283636036822286444573805431116107209369442178635046330022055883979982123702538152607401448757714972174285096991281062667058421647536664276993200876988098093201367490967429845158759717510761154842848159172706412537573004657084462309975256816653209823226304693833023046355437474701419629961301931300400478210300906524282776418108151598787549728422398606179328629468113911281388087555746217710030855994261810117883558196753027893953852067143074431995721895837576735796339877162925978115338980552071321869156120408937947601101029185369761624285209449207279321935905740075611365348313915404533241838078935204947201997134355644778542877307056288792349608596048016901080545494203328975413030134814991374770527692038975337409682953650710361491282625749357157084645117323424451174469555063306088165827025878697488031825931687891435525192406073820352400894776537138776179967087486841591253508415582671029326010375253925148115776047808113831643894179148491983512961151582333580297068513215376544375990233015073371226474099998125677283891916371934050037987919076522589850756860775788814366283533778125682531193798176647221531887956875894017289781411248479785102638285047494408161977834313630036603266685741081809854206622931541411246484021150325212506354931452040002377018676149248384313731633302644009400713839813894602721388460844024539523341360204072904813082161823354001705771410701727314770420691858104951295281966484939835724818607225373761065499466017536828312886901738436643943972670563588230053191918165738827936172579605926157985853152930475461543871226171226841102085215714965730404082674779320790913062465536087950370092514181972469934329114044831224295162710591341791568088250160165516761717871287563970722305513321729793448417727763834704378527766274659399050144875828857644613103790487431965786371897250005289363145653562005600180342398990449281822445768299731849718773137471139408226660531598271017555966909296639587925617333534146264659955818977159652018405796549366675734022953034134378644960776956150539423053246234018914601133103668930016244976860597417360520320466136744679444845364618924706656606226480982458525864910701426094866323770722418180196047802929735215805624608566164226335724718884561567642254370420756538488471270573662771368411004326882820064563744546817633169317894665561039852373296594580874254449709899332680524307125844638518815641295631803104080660707886167332991134689023545813027048927828714140250130667195523611716737146396847776730950815136834171945241810113670019577164093775786225749836729379160063625721441009046574077568858171349259258536114324505892716816217427028283770202146979212380358258784841735434045402085501687301531511967137554152592642772619170727661847700736129312462557362041449020772705959767063458487242866354488022167487119074123089963218292881505039548266882847371559122248737226212576981180249391748403079604571207611158562697768173166157731903881884070704344948327074035791153084639782085828627631004311429012924732931401272457143415048364727097158048520507662691247442925332510129781219422934435411051782970159063603420193000823283722807001109277648174869619526677951149415954752703371479102358832177027285200959623897963993437351392341760124580748962853123393245008659428313487034285906415181856347687203782142375091873534428018821698040236760138823805017182526461846925656043719957649268063961748082214475297906683208905675277456689568230026782066929371600384611819325957985546657789620929106071560360002392596014982630496633183218076423838019918638342139467456653388060808982206987101561000061514738709066741711554617609516724259277087391867076026317899623448256439828040218203922085001155303376619631520740091206227857786792574008719439002869373377313431912497755571283521755747537288418931389584292981467831371173025358682808181663987620696996430855250516352315281262496334891123597597095630539788644290673863056669926219889193494773960352671819641714541804074848937255500783352886283886546682295846548332674485842644202802616764580424530840743374633484465975989271332201302533145168329066388779296659766862002625035215142061844033400120291360419834483368428695667839331277279952845608473338303838056965382242169651765830109213662326661066021161932442979828343820583584104270503600349824231719014902429846641611903089401733963235157936732163571740800939442853139498743104767514995942412609952811347470359678756606151503850997451791884148953334803744272489404815247255946615074640273286860500332243487190908507115676551419419923855899877927694746832853326351378492193700461958220971231940055075007107084989347285165718679782917990755774391002121670045768118025692660274835827371524013444430212091681129225095920058276979354669371433614583974902463774647579761207133703686688098211812824096208026566859187142561628911959195528815084058516368923908236849475117768302650716071383415391044179557560110081757822059211045139032458909450198885229343202120121135923702621274559876845414392558481912456820394715047680651405375445252442497948519090211233855599464130622404385226773890664720212025489639491935242431472098234223447992861169945061056987911224870600300601657960276625934369271168122966356218303577518442845922768648922366970984193883393094857090381226100857680160214044504948365168542816126389866807128570594865762059443898611446386929406319701248246705951015036955730216319732835516783673331785549906488229071798749013331982110066416024992391632068816141524233710454377801730334275688643336659996085773649504143539065834851088898220339306775373380175977109523348519510678477534998832921260645760906501159212110003371173858573289219774151276341106843848013046655794916393926592660987353693202178751056002876980617978576434098923697366379677304323105363801616092066018511627440040679913106878642600218898636337444527946874414683959708273981275280278152885745948743505990311047818205855832147236746101535933662989088440653239428656240751205938626896616939364860939013648011664139116417732745499023690175450849912741475118627053385425354914783291091011259349767724652192497191571688843128950526358846350023271833147286183921008498028591546698521866119393989963125628711805299746311997224461159801301939302792419147801517437670643584447086616643722244058617338986899405517214785942296197678803938736860829171809025162889162839632060948373139768854026430002167106241556539538220467118661633895735897949483597625448435289037912433446174158748016276929526050804974994437194553381216741761754092397254457135679903458710903785925706531978276493560373955102248837180985703154860872511814584160227725676305294765302556957245527193668939898836427823476700729649699275991355587876135423571767993203241420093111503503964478610421933982875416388038347455672235676609289138611899824839050649759739347689690315048258268391222343961496734841751995527803225862432480138096597874585923613626136021251374364487400658369984548180338429847955413723402259891354367601964124825295942677572159698914490611987181512915981571563262836181803468982278127464921944244065972159837030678171012184601218153426480397571794308087219500413537136730012193093796342840567911314906240157676087637776931409469492321311579948794405474410135822770245833016035813388110554131946199277739900460846046769232054656903953751669651826314379985408608359012531287495941534035679123610960912510626458903091112217207520295877053571597903700669634869744625679561901331516335364629786953555785654911098873911765370880056063973789670052637241966941549654410899473362573840135416284407995800306442758880568286995168863349395926346488126847396317350002121949139599166572496891630562119222266876992256874038152509792591844166958437769776480552262390484421920220149998057588982603982299904786914983840061096828088388481310121023948373723477990799397132511477876097634596869278215029454821874830442778686980189791738593208602451877216870706607596408901826268274338239859980282366258459969453012466050467962779885217392977477395457263920974082951974766453752288824354066801023135828158597434975210096883613402959853139272928245905843725720431655533982320099141580891482074432684057603843821448445588005641009595232480913224110906594808287340916282286851912985728339689912774888276036637092971546713798262343430627326747587006593515699169119602111924033310821375911632750511027164340230828150483020877883634838842539721413581239494735763157298328102345914520760084157260154378153822868085415777936271249808382756466656400175266586228756275386447158799441206317598491541343527695078555096747420792908582704313472483553305825419265790304704503244986672261265544984476813769547711509019424070619290220125609012843282833032581284756708991156155094213536602968049200023154643587634533559507645531030558057595088159809405612692895094557178824587713617928043660091805589599320916523529851716879364287409332620565306689448363044497454895663293924522763165995574773757404558559066818220376302327121310289279019182065529649584882284155070823777359502797005559512848226046655195689097853690330708343264815684012134054099738267164698439093546657315999687429552286226321019659110582439028271725065723681208518331926415392323407021597981221024842240029449220599909086115392295875975419258342787146639014631659022116818232037368048226251413774177534282985227786208975429535112454271996779313448252426433927052674489582050626489399939761097241414668890256820745687468452658256581238327047728668652880276524969820340955262875789336121344502168384989043098874623571664935899648493305601017709561746062041892761748797152912060638973745081446245564474319355836175591200776021426293787220191933065675447383368194157600464789990376214371272195863936952695523753228279872988938263683360521682915991678580028811418599588014761237578873203013483124516789868500632528268803378038052334106207224642865798516115727214610014959424919051269808448429133230718901747030529743981395951509899256972465625344199346265021560957553417692716717567367398851162286555204281976952485943194229866107656989552655565951696432741614678929853988859226541120515088929049495204571923934938296968488758499175003204837122506884908361644853676347716045950080294848781612623779018505237674542419521093567766772237640196318947113181901851265089342449487309419077074733163025389070007831073535338978859001535883215686185583689954020914329534102942221520022408372901583822940008268180799319206492251462162980055899230785364058375591136878483286136179464546128690690011483129894746921704145073158710524571858689252914429420656734840969057848983131604735556652069029936931357738525158580769598621881040092155063095384834698297848802884834623832366426237611521190703721397206447321072511879757820429278354353892945026596810041122333106961586514701289163603875386322616134261246632112265156835691652618934440260485099222284190027429806092850168630869238052981269266074869484617048798554179652894352919663377967329971009711852651972537710581925045899557804162612205097812164876318710541429782248192985856953626179640969251358475215471953678828856564288896052027179622082983687318319860608668593182040234837282102559504956260424512607693783307570391455725795726866321521832679402361108545049516199624695527583905784077049281186004710035071560124388871061166042534390903044729299926134676282033439854532016904974373351811484330626016055237525824648414698906896611114163916968016481437365183633013586622275437673351535753519734515787148481998025776451098582288418829524149889012677013501032840197366631979137947032602041570617487600631425549281277153842525937270993254487432195633979753866495659328236393495929223112903897356501929883148807290477694641847176435934780765752962058642761648794106451049251855616105839797474475051042613590559613607627223587697579483640154779987825536261015616170794978767210740700940972440736921917204473234205588907448242089414998204989055393739030961050009503591662542534419456189202763569885067528545556643701327340795193505552713752152238064858735056072245149161027583538819331784025732317482526961590588361202180665684714975101439688200002154149658107603424041870947936737904270672601269529364799050373526253537118902577318778942810662460003073213130922386134093452796004083067177403025157189994534893434426503802345883347252108645344578643346198204621697206279514723420141924281066103686350778146193156580353475050763221149815823516560776903761121256513643356592061963244304459115192606910930553152254077709083529231996252373886851264710972703280645938589266880083189902679482345213051597170348660252738902939589903137751794339960777402452385628039964319179201644919070379851591051920616832929450195596612235418017558481773359818663654788218611862304162666782408057357467933848926808911587145151794765591861248290909405006775270943769327821460987782713812804506045082931910580706128557961210599606663074785747385537348662757449785744835759206701993848464139575875334656676220637373713411591272427850997182927280371261354592267259164476909908621521868616953036354384809802112326017241628429920774639235791600719101394950086311409492647893306708964357615811494382341688014981684077775434255182541565815068497612498054047186983218206937876694313600115775640043837068448251558116594766840742941423033703996738746295998761950901752153420439334495442141061490583843278911506225376869148279308487128858093307523436855398279841683496745823645054752452692840972149289521498902763184668123048499985762375996010808415559580756472292289693404365248274701792825103110099189134659839161561297730965378030021467590778609878873762184130339265364190339010349077686797228538866984534661520036864293486570164680383098740755224356496391665612876587889526004016885312563369200773904028463350375198581666768407050470967104805021734339134054773139826182881076789341640251435270608149053554561345952064112358405574167046254548028268547501113905555326176627708719105644663648355771734665790702032705491122309759688570031676900972937208975055792215777438105553660203084751323376923002404223143900186351318874695571126724166850692560684920123170002138079487198767374938249930904783747613401969221581430314671809487105170563738140024519996755162017302642967077370929115534803805390472236988912225199037646707674112722271139440969338568853242705347762680825341651830134833340792035191311449495134217595869791737193193345510873791786601768173085681363507875338984251436259349041288808663472533680512220723569196190959669164581015615899357016227877341330296478456219055401825253532869310732233587413801501254973381366126234074661424754287349873672735240597866790988070879411960633979403258698945311193678979563423092385003110053340309457949687508329392617155764464959291609140414994629254684727133361151190032485546306433608275133519917480529844839588443500226786805565636047881672795162661661394264928848832926795267868415487786605991040059592034945663230368114599765250350328436639897807721555118973577739486422541101370462758219987552219537274923970145585584360249941297118397180312985250747281229105868515883723748013788489923343913628530007643751291109369019782171752651535293860765678484355728688183455492950369081699654550899217401157300204577968890447757081980635972607906810180899179127532130595915427535852756272920108204960481920192390496797085019350491822897089435647956553153244311865931346394182786496291138911918501586771913941366870830752437270247160707708193064142763299361443901467099161579780547864734528823020787237808695848785882687692938576833937312711689314804020177671970385079473023026383065899226240091794342817332047662409999290421470506704464628831196771576212871423655865421468575419077263076191023634228331535633541699367121987291575467641275003533228408310400414017017289257313076349213760118628313578688592229562022116113511471725967071119399266834688059873323241850144080002378499609737372454097941374570150531251602045679128157784771090350243822701497558170692498150873205763018802597543884135401468956348087815043219874374735151982512349965047003920333472496893412990878370150280840211109154399859116102816339917086656815372626376858684669842647220571032207363924517485440225747189821137544860993341593339595380132297403190217189206942911041522882865049907781577457881375549926563755545077141117893759715473527890192114214176748454681051413626832962885305659912314157574368244887153921942035682365036262578030443191688093964164342183750842515430487375862650267908097814706391419671933913650922669831227566452623476170957647042559446329583327435146108927827515908184450747796182488839085468324471654043349356332961508001966013489532419328724831027208881034546395632327241598068654784096111473255738449996172470661494913191239491426607541250874048426477392356459515900244269179261359000912442882945087600732990836697439500021037260867950346743416768421499626388144469645104079040851929488268425086437112129339706761934440702177188252081721268100260649949405218165139660554827138972184855626055688370293340552161851907927294094556500264057228161969198348266675003829501579074227182313978823984198485746814991618663826962931474421201245366834721337689847558451606750870071663872524203381323560339905680124770002604921394706191149817242446024264771886699825769364829880822376414285813932213616477179836941670707951887581746374350680943177604556549708091036043481354929749274355168872763428619993379541234278986333286338569958751253880088474261906375986881042204581086273792220845369821655966917329619053018621259887652036126814259539700263671896568430114677194369725796762174574966831961627717265984344819178122529792249987330158605124882833390137759732817768896892690883554853227706659683188677639567997322218554869061329552492206303117429535499716860700423746509036792249840574202265130753866171591917678152863183798525895105066409233363351829842406718068137111307500705405310811510565734055316834278913155440279299728322617632646487714617240178681682645053734969949023872996157558025233671960212379841020649805327211665352836243470706548421349127041687829446879151548592459443882028366683144997448549452225558228760771008762585693815296385404183123917121367401649584959383224626781520746482348818597323272145866582442905236810638564704925824927480725982311503661534419402927338896867106512289538112893205201166000610558069223756420617943253443806601021201667187153977484776126350640428624994016852408857314415382923403208336638821620245586753071833355074522941904406208890497879016287474303343621086049339721645964870992733629469329531232855668529709654155407302928062502888240569295953902935701719414950119575165786402370164735495141439798366759177714048014684592144243104721586177510506510772670802386056588991731311365714869109859286211296838343754699088735302637558428262231497822996086325324128226342773045692307422345088737374313448761225867760779075847351891068784412576528094759509761442811456167907231732724645122725770000200913683907222859971045561411112115467021777349178202707483550332058407413424557641459324784752504109397926600075417697073694538947339437695965075955908483782335985854277430750510215150289221508768629481473653023085866651717948589660510212375816264695247525936711482306710066185689710216240919874770214715188285648729599158049289513441068032602246764922655601081576734714914885551496193915911101378569162356486658498854587098833168204735034579550270148041383879004629435885709997233761892653480091119103175204868485264783879564258525040116279646018377042200131849292758123039053571121047608100422209884654424632313649864978524761173820363151923355300824476424497962754476744346436606235382637168955546221256686153104887283361517629543077195310688564755376181883107421300940347569065121793132690310889123322857140271565210032491565327626184022672462364978504692885435105192597292629665699010969152380799467734901288788980005421780221315472938390992678427174433733017191497167235617795656645450115291138314371203903235926948994062844948534812656411867462208698081572013780231463131796318387797136372882007336557278468325667933717743030597221828820067255546317614989230497186778854181453032354017026194063872023099130433657439620733460977191819752986876054689421983265522443744869518753600209064963913868331715395355858449717928528587167061656269466106914155660649530197863079654546674547900242105422030112530291031695827103521067411352208730547688878573853570742767580060691544776370535769843069301331788796580114179581328730068287915715654372926017591121598668497793296569159106069961713103315890320237088400141404863311198234698410608525995942223979449267700486172446737350462946726044858408298650513300345104877953407918498439544875795302528435433246535362957578536901961347343604616408692234449525894216306346312110867248049572957496203255697802676378344455763927654593012274487430021914493934628185875405228189409736585684297116850821993801379398983072698585789004861844894097145184143471877525229212470134524269203246936486435979211414751791756352734281937160753860873652842644555080217329659943870227025340861260038383465810515890849968513577337898750782087239941074801794981240703282281782550376726148972215223513599657779706855427330584694720880951988060000622249630018944343885332492168839121402804499082330316574284562107085428027763170362974260204340511832557584423505620012595644877021277909997871781164588911551209685723913477508716093763930193247348852636695066588630958956100043604043484236926636077042452859016985707226184215394628233090608419059512287684609487575018470014428948016681295713149393602318413101379917027979969940656841431744856959432334740869657317085268711814088744711646261745547043008378769489022083694460893489939057707690051807572238470689236627762703571617835772235159303009420556201582625945892448037318771650647437791315752709787712954404330877612494841223464683005013099242691287186013581214672944968803049373534383893209366089076676648104910382039233793683597506012718745683498668391441905943301421127881033348174959759387560785482647052635633785713442585970572572730965478293760750475587718252062781832501619325396943495974159569303950771591743776639180719511765102615158671172877198988481411607660618972597356326604016183486499047313084691314579177427101858548362471010125509744386814939929086686459493415937577064906830066493934142892376086318231176567147847563070114841894647981381159677535207569357930173688144570405063457416821008578405687767535893650228132095476187960336399954999900574127479769363151545456740404594224281407573761050475422499316255071216766478048847648260742251440650194075203920469163981272661418870674034753248595447073508361856233325096769665625192926062020947354143123022178587965238684258457711455614968271326452128797420313750779809904544203605158557746928499103051499519308095139780026550861334116570719182441538240432772320180752714723730293867973671086687814084987466203522505131324038584197699007888079482435485851933895416802493347701309886117370664840566994616501343698290490783270435844758311661489075667715429239301341251312134204445391873564944720382656616975385676122322179678124554694003812746568417367341428266711637488033210883519043792791839230834665886807635808775472693968664780368213640931646361833452350357232956766401525746582381674496195819663946559076110234122760172880994230079475164475734223425035109121513224580339689334820810315416700933477338120179826537924110316563046972166813712762926101111434763015083942847323037213188490942638813808095789808863945674159465964345133501228731520578581381611883951973279985809710481422658116594844726713469411210407166096252125564153490583472501196845423458038502306705742979321093402638592058486045912250929798680455058263558934026562724494017937315004241867345012842692304655123875683388372495246389822016196033013957932445128624434067936753677400596707884876964281389086410908127347575397627069936030639160466645326455557138650627955380388062549831534481185855437581090497347718308170624552689618310117070513618884673340445336194459001253492188758438678722806332483455236332550940015935337582778771505011077463647297456300771488419464358132855361506056432702454071285869751139410717008914268368332432870327279817988643987720020604898585642148030448664991322195162605970526602683006790620205159550782819204393105919975980358430326793279828904559107077262541135708488221894136007619237225768141378642868784298891974361458860639988086746166513960601697789682016745529561335619953881221889151521838833833335633162016747342949318949138489195386551214742384165939846349101770448978429758023941263827387811671535667441199982549469714834258555600004977358863812727790188288273605288479136858569403462515128372846355365514853780030032547657015661266861546468520103329358083847151485938352399266447515857703497603733808975524456776749968888036432769187033863352968413938922231322655343080450905880882659987073690230090836504643562476945823072845761840773823435257911707887843955822800830100727002440512641245486783536894602395319070987263801234553825527285999195128758858173947727017260711646189533603647632863970674852428426552207253166793500855519719986963804543599571445112035342175652615144275143672043860028237618337569506168759525042157768101126397733558682840801942082600454264537846104715141072463932189487572244814532894055640569619966439006840108526879317928433450477251525067794658602395030397932745142319819474761439961422984697175850873737328490260054065826975936837269636718251918005990083276038147729777209753877906341398460396381408681374895736625631001949843346881280009695399366484619947953487626576363642737577166446471687110678488212101856641693680007799793447095950245380753059615295571202875497177882672175461231057152620449075700968124963000283487187479194384833723131478359352681768549181558153118092903354965156604346735527965201633872485329555943515562373970776740677740292726605264071979337608642253123599194688741197056424956200201456972573833935081965901086608709583418235002294890928588636989424221802086347061449547367381661783128261763121712876287638276885236051395993052362875578960127178002764746619891688681181399853676340778455013158205106869154946703464943240647406831513946155781782990908161432374020568689703427552547917848378892372299354797986766252087631145363521460430373014051223630783399791936292467770617889652785748905480367617421854861296917506073531234869839838350378022432809448992912991337248869110334579982990767060042901909049797831058446494207521172342722195584244204080997768195262276037304624291719319010385321455640792105709926569118042438712391604798637669908508110313395490586346928702616704886061520831006959132107427678591152165593302335211300337642590903102668207263375223582805895047474693485309036118107077435892369522064566376667862064262777141070612142643503548043829558890564488425614553600858797795202472311231371910197651709305931383193279531888875974750056912470866456782737092611514979654293987245424735010704145804552469957307495405683944740976171418869129340387697239476120977495922575725486664293733548369465588634918751272327857404804249608537277387382513225515715319508805263222971099433620684550367256748679622980545191565436917854705703586473518579039816008809097534241191550996661416994806511101786378227261971661173043420757376533548868753711023113276940749487940020645087252582834381002255986045698515341190961998831479686996847519353443358925594433143369239974891822717322302251590137047988161692516870582684496126349346786133203437147867750059001868013583360647568757020284194323944883234142774402215427678580478443524708537983617889714902341156885371321097458148690795869151470942446011854340046655140260102235777389588110223752114921611990077493460548513847937462551082936055370119197035640167425061026430027141363641320909748020444717533436640361803875830130660953408239771306797321450827291786413279529524726963745128426187364715244000882617054139407207240788433008862674716694056467040708877154460544211788835419276495027875486393711313650129140503050765741055852608096638688279531182925642747742046716000879855165853374317557815245151396211920612694079745296156780132904321898293553366587574942234801379184781257089331858282906263811349085886313102028394286073768821683980447744935308366989240014551620979195435462296417412213914451904707621317211704199039749441237472891121827135908496114583451903615381624957514635320634347704918257351412227060244457769165231197634546892964921531185186662256880779193964507981832428450086107585388110655415979055438578322215305826984290773739629970883891227743246686417255286193410287996934103489335772757690660810160101357439007040232513397272595986804539771887508312911158512002576709782311029379301916367925167189666523626689312768977276820382286477019130479415282096614042880557378422155878689551780870281162147791750289040262385953589527331526931993535566425538721570044964009211707919765684506258564266909775884468690855141610519006926514483388642376977482790043865243392023919902375501515201578149626370011889681964048630570992840014585823839000662398457856801173664511055265657245599560916237972007243174509146368488853960398052296592260122122860909571981870837371316131694534870087813223686442482811459499364749564948471632328477927560964558148179722676537184863852948405255392881500401123156330277477026278288499708678951477814751047638648077459567953291256653046931659002967327741788300135092483335184246477658326173857550037029810571440136130581843710751569975307339758535974259495012157771351199362378472318827894844203719406759517400180696591708997166888274277637633194140809317224644977947980670422573575903953630706050639596315562179765470602716045784945213230587242552316604289664245194242626189513789591910573170231511999924317638361509819458933268077405994406079535822247154757741278881272420195041562330896387828118358293143275660444865117851769152195506525356485136328850418434268023131123221579046459459160580252433716701634015141956864426746081664271075479982455787673307331611531334920076341305418549821496303934526580546469583879161976567628102739047723593738597230582643159228884283060127628708801705623807765930356381267532785243439326757208281415222715357252631462627066610307035389657696835780511717692538292024651609726963092808444089883004556698506520546161141772933627593412497772092630524311937029123049642066981848831174413197574616033680158113067141003069148561972959849131407468349382032891258528445048711089570637027114788041189179112328199925981718801002496483684572414649007845947363538050539940961882383545639034061245306808405666619082875697488444761197735105162252866259957767039242881160961593707459120941003876363491020378563618676436719124954182402614157482084710803945123407280401083108946713604369231791169237696515268217442485278593580218440564985682038879511269125960520874649587214632653445255365826513105261869416644416369168495481864296995533011013098182823282812820834571262725692142369417534151288408561606784263809973957614594213920802117756565396429207354559836332996617209655639491829356547948617511060938458392768131193022677083342282501881607255661456716059963249642799608871297093846628441779499030468643958767344432660509960120611210297911658961419005974416884755057452182507126011956486106451960760462307216191930823006227765726164249213122266437156711987694530890804388663856553665799164454303401129701777245554751607806532660766393666987939731484113046675791760246878047126704204957915351028529876436027960228807997184731944836062422050002327340336797048612379954928137283630589744046443585709872783964619027951639582086692419498830118371310554765262335565865614459857641513325782659283046047001769487859925014600473983762019322928355873703386958795992374040812375726150650388246295435333790320201628338747472659481006018522142329235796729327410372941931566323249525190515813659938585052233519531392120389367520065133881531249303986748321345386000014140416289820445090564109419618921552713697626133648969302232202855596725195070676573266539491785752626738956945010979232131342851919185269618412274844916811978640576865444149689925694870344871960018401161710966941450108476742682392056244407074566941198768072957978643359411163643236363009277167767940914352797498707007531881440351086135448478677216564536433567521878977871054309541022910883153384371335231666280353714791575064335936570370653322858964593182108904626541067144886109917205778353988952628830231256968093608508121449369680365678858478345839143531874231093509212757463446931768612843512374553719290476239126251793012652681305763556818351264283137069156607912053053986479107458640529356821148535018745483648566995382315540820655007293081091257899515831358675438257338338465911947260895830198228687318607939044604635069980654515768955609102286867632917294009990644943072187408963178165886493674594058520505652494756754059851743137166894063526681205766032964479614230134913544063562374284702830407011503561174848786296214972661101745543647577765462326524012520567872565745529846707688969399985308836688532245589010219808987708271602545015545115084543762325421776386725974987840810264864122859056781456392786233770002014088676566640873081664346876173020507780774372834812133211782187701671293747717046086164979223822324091046995927555385003038562200028523291725682491496908719320893816209115402751483648214942763028598855671839430117315966840003990128919382648154963685618765870391049197789801472747928599899388145858723787818150723012788457307493062606750442451489887657392040851250097944317613531883625851379868019918250585351761980417951445389093980749711598949247704916990787747039666484075726482045965032698187745436278564302468130809259935781408354130789880687259054484197038681558813947183092943982122290645342030422656258450113005690059144546512113321657325837742804426199249120602048412196282321399692861653751693981585935368226721498413818257786361650927857932931547857321640857358955948611707682267392879634182714168272837845276273945728254508126439094871676143332440623419616392066258597381707319737036756855253656302621228495769425094601569062994130142308108732241920721611967259259372210648487783694822585938117126373757965425920065345335403218165143927175981685383064344622423036546496616773820394389798831519095310124180958069537242400022021995734927692202304707192007892004684276892342509338147575512826976354721226726842223868649832541010414727605581018984171095383320595333762414871563137395300204405574376576031221501812364184320333356771178550913236772824827688674929775972149049121630414784355706118212884840776726870335677353179267600636072052605280998798955447306723894869106201271547278490762869191369807254557629580705775626327146342477448736710549907317180401542079728661462560671746062568836677735434739283950221925437871712534288043220199472706488105129270256577439526162611670174406042986452033407804733903671673396233882117263508585463015507893298179200905835608910969437796788555220826111488975720386675384952487123056231672586332596587838104445369845967171965185024331516977405811330978998374767982923075025688244270757698197813700606048656706753925623928137150298243709509606392526943807956153298294764632193022848083735542969521420502471878336508754275382017227307575212241258846919434753470443831299637826843331446540397655739966219295129112421881515957529886419824321150727696827985240499578346398164415610801092630318819792462438328559688061459003715928500397582881257740222202380418416975508966039894033097102115410387750260614669949583504130798530554721485410697566521276709686816428784380541848892927143020669400880347366055188619016814481762224515359080335781621511925364844501626890664025332031285887435637153096246417112120635643628672642441347063652229442070043018705440827952060848867985242482398265241371644913296570477792371251683224278245084280574425948127206942645472253196805138441047889758357581306929796298055198830320486629777654624849230129538857525774709264868365919523012657844577414448317282849024553839329945020093469220544481422096372781410781856487701155302525758378311258083954694032016050770498912281222368283868567075068219948425247124205012098474748079740626877637864321485022384697966441551772865992418727377053849524458468362071243306691478246061941709894624763066257890242320820125262416143420268374383590553080183541475645246749590775718195368920122291942255126970361010992726129492068872884827604525094269858382701653357910239536530093173647969699444283118250302114447173802189687172781486637777217054429817119667654966853873567262812046438948882338775576656374066598480347494499689772560056497607971821837667856174015427414163775181552089338043946449772341641970615901693562064199965846743607807162431750387471346545546405322298547621509445002081287341286408086167268363264593996917381215002104789373102584410310626167273644085942609971934720960218762747217298439975814563397898961680484281660389482790573013180353346608325394869222010937913900707069947097880317212692361542541962948967379913096886848298484724286101406863237956677363171782127416187898764024367313807965424493936426576868943271849361832738169558514849912748943120760934018623331955159672426507356017950100537236293825471583527731266449931302707950103801663548906654032956448477075441152583299152126494102100648644170257089996447729419678228746854484785104743956061217510556201592995822123031921677500321337819234532385527668595814820357948404344652875401402120163760016652725227339845403174390518983709741449788189562467177327291044184341004744307220378170802782766098471065152419245538917011910835458764966788173004184535823451550086233289115340183950582772783389764398615942446565772458479048461153817745819091297923364894454749097259027510275469163191300469021574133357677778314616682754204540025545556282538322621564408960557591422420853561976848744135379055970616678484898676185637576281188922118935708023358409824442366486780852015687444959171301240567076716436075790619031858337900098541228917558450355632902890413684543172194692876263693037497251190028285534422281491208331624021498415620684351828720070270230236568180791586381123758614424378778462613481448377391804395546692103794303105463613792294526515729907105376355166618455489726726307624221014071504306153539970481505599451660421611282743927810907783302617937569000696368237244935813144194999328014065875116724215331006987211161198857099051110669143286038470238337876598162188706790101327915790467337632088279077842132435115886138146263532083338618370430969325281473173126723229833265796582728940415313853075499808137445349527518818785887443186428073919442548385105365063828871557121967736727203133244998480623173602330358243823578776354811163107568266223343258911695860125814956447357916930986336072601568685137446532439841971979242809578695411569066271957651495508157528618631388494208154352735080199149755061034683877810131275966134897461867933128671014411877521668773913007047767439003472073575180408332349929444397987276081426954312785068632184309534495008497508084860699455176646031746147473990135962143583932338537427093767198579769837845660939489823367185107903299835857423615541335248261045456934607871659037362512646476576950807066934713971562058185532783693607195675727399872620807930713166291050769949201799096573138283586544371958656696645782562265709884698145010456955037896393999393108054616665893678119660999614441951003058856798679194448291003823004203350274430271193142695965237844918315033597925953730119447337916535784002313693636940376304031800327208599706348011168334396231286737089946645933061816136241452333936611799309033954326134928758035795171700841683381113804336735371386819497550051196347159319400705476134341766351389386675718532461911778058907098937974504901025445840233873568925189475881945245647443036294347661483262380758582026848290276978659694833525724104326903930014981514493991402296883350543376032061561272172387248511715705896009705223770578190321730155611810499451539957528525579864017617416299933439680790518398532827855220477620058673120367513214536155769232477457770607507652476623483490534408823821534864520146452234680872743319433784362404075765157920678029345589402355593945727661857861150668373518085309094802354466087352319756402865282468951767047246522979011679094722693798424243543032885412530070088341289156394923295361604255491794911761060058681573858152219937371800033556410054907196716781230519395028401478465592484051181793151189701190726095882397338848662720377198862478567075695696577376415655412911966161702934908916256657339722604397956162754651502639288816545890800503929827339885164040087057398369336448172959510596471781900347099470378575944478984706034199828978156181270509338805209716454283097202044591514642090598352280457793512508054194939751661337305224560527868537113270454208773145273796068419139295115110474248547350201522027607080036216992686618666777021669423425971823892619425876818834928298874876206424918995014459346176579048217664173309152147820021974423252172547595308832524850109898026649014588919673968663173544710404216358240055649233020995441412585764259010807111083821299976918610744961696077363861044968600208792160592302735420103859551599401452294877259641350858583408541450224913409462789347914845238949719658499006554666203682629662528113907988699177706164207866032737535434221179547881894293142854494467216254225638265293729313347574876936040237272988533335112477872828767141874633288790264639561698563482000830240217939301642738132106839107626666108653541393321774422407854115557288637066487568314892765733057502125270035531954415068933873746188866545983133281172775208008229574012676271896593662227333273184825899416757862923299393502987702985553027471089864119895727171258653825297454497323008121310670308938658860944082504245660038671816353755320243249520552657889485067916198236720170937705784890217337820957839190915999508069702184344324875155110837340552284250765732651972711510415535252129483583072771753309735248033704548055395739053991248527632412238290680318394725009853457862941788028703938091467663028789708240027061203297308764748180350980934703409800465818444525166863012790921991980759375627127284892001007669540333060373977187250427042224337146275152807242945632646043617610357251767148151803040654755239664420018381397661229132787669650287178455563458408256031316740357978098137835202411689496282812257078596474443208886732146893131053744067484072396059078753470112009616367767792752490746442996852309786460206640058990229022006044713705007175752439590228463694521483479337366163696062062447966541770937495617439161861369292522471510816617157963420543770703111254667628273736848953167791604723590913812263032886003777181694608034768958934614773512561710816328230318799545796003298005852230478964143371511126483232097152385757516552418975204009649601388529856011318913683570509971828574779507986049344559296296345833516967818434860101707244048053399398690005676450156575649258268523268706979614840670756934101039242049314700082373815993459950316302266421374242274340364668444134434290329393229519269707668486985970136366461253909770688579433505787084121978207176637901099114293419539343459754072185738491918860871972135789142834483179762172579657453312066789981300825056115013430556698985451502344899479970045740631275986208406224855951540268047634462522788551883928452959439719715316622839876542630073975663977101568291792280351834397507619377411092057806904200088193464084806967578933984351105970399735311138858148044918965649649099871639954797967711491738288864470028295638533891286175337378923748740404811045272992648290512844823564785733730465349680507020501902863385120729134602186373085741758942974301108645561762785416992130367426683369302467067897432502940036111190085936455462240189506627949220711796162310536221570153949641883040449448377525129083533848660496921956249111863245899713888339397140081029554151982903247269277531453230359612406126117291799939045832290992874789349609844623742883011053759818836377387095908725262849839673230549437809956960982527368877092713555698462269453551282265639947324836110774080559769197704947739870873633412706743782006558748156815852556001511306710905694972275677091258000828385826459714456259238900344790322256815230262266849240004495671381581340921396637763899109416087083273147298067695992122257229607853836312200544603581364726315982432007027684155417143299441177399039583127923434501394048133925134977498847360436258081075792051537872329869514930650079825222297881777489395353960700739765722527839834935257881631095586911000674204117387068760836820909556033492769966955408334812299158515072658924072662206839655266032832628372632448199534240013140949158687262543900078193566264884988235541803708793109343997348482656048965884443530200464415353284776348360213426538817086853295672021404974307059589331670095266104395755483473524915378495148901416760806723435482780053209438773933554970371171560249817738240632813652141957334215075751896369912672826561057425284912928022481114984913752508482787915708352606261690898216879142108616745682434187901134887013716460286777611217184910272424876243664055001608893764537907186607764180064859060982515755937879138226543540143765978233855097300504588568862207844599095742477860430817817068318772330137590170092277961789575736523526612598293125882867047026500057432936969421170061066799281023950775684879134994074790885835699844223626283912397956457170537264185501061841552357732525441499216967584872687772012169210711049141013553857239466755888913809404701472613291866922166353813261441473029130682660247290824073914987760070459318276406136600915984991589256421703629716062156666461361578153094708748057663378905166024958823749099060883181507589743714592391077203296769028235800784221695027063133351710982658398852259962935019636112787847314639584190465132847287209950707693231153807664417845644689817608368416549926235035763803224373155900113845293458393783184487891544139825184454645093930529152299986942661748568550892211941257269660920570213334228849506263628151613016567336427795338537598471651896302858664697892562142916536639603589313316885846538668424283685609224593760917797764659188489395470004724233286774457735968014605243523566236601078494912960321974754172648168715400076265793027452053918849367281571514619930590568301520137385691061798027180800355590845159254869378609733547781955468804801301166636099848839677990473508228722773280896554658313987079116371177098726497860730497253301430720388520407895266379550942303399277708632370309242867692482838687348949004818786018817112014120058634053873844650351222802532149538072961316283558445790849435809049127218494102863814916976703913025366934461580248519809622483902455827730969245706816890405757410396684565290009877849878747394776709494088064964267012783760560143828836659743484814883634277680723293617644975297515413855670959250126017906063599428558391113993827278384973919231168172104678001464789418380214707660614926364108602493096042363892552630025767109152196638364844862320185208548588465050899621379703847340794759261767633235339156495869259508101167150841739717859810917214561882421723481359407713568156810621044699106003057542944220796474729312878884075041790971350825831603416572250969782558829544641295941059401936869203605148144502527137525323792356514208364024913748940068985578852368697996779381047841595491505222101912058928177161943927187950417809698328854579153863526682032220421205453406888210421743566269101163365587448960526932634047117151260080009342889328640634496050468256563561468400092037820935404196764388413630627243729686307405881053917533547594563402891663617014168441709460070101334593802414184273371040979439927316693653834189662455633924085034209492714009466243900927240200853818159421869819778393742992409847898408292363738742523703467041313605470742370026589590114521411921853037717000900167346163881139027077529683865863694336646464978143802941021911001661394626609200569899659224494632059404149756861449031673221964969519322122458218531786038389707814195335117821303662713224905968077434390792933440904576095336076118871157493251909921412493280579976627115187932983696471239577671855058800507554200762926503341778017338666318027417063249652998792466780346636232665822123662970672886788878694345816556491163323081457349864902862884845939011538590353097678878289031399505411389800998126386389931048142073433980271292434260726303038348612581863972043062322028994677392200373307194084954232331199556861717101500961818644374345360545568730862384438064547946876698127757817580686934439759812373293903028087460173408845568860678578443801355931142817239517634799092921558401408598776226934290789266691764621294518946133097247706878862636130439889727770188031867512701838601774692687576891181374152800138302052317222603478862381504296733702069791978435121192721508471822936202262123886995094833255309498459202043638125890227586842216048655320967540841812686326776628077062200327626356187522820379950196339692832769571939371391225607772751320577529083900087855128366438237015683154767545879781348657939002895834137178460919307847074257114731066105033369893813104793047732164718994959457085728715405905021383835814552050345087770978760331284544729112622135001715051469659255530716227176461859211339823691513642327792068818098362640875755850176742776158945739233470331521287779616478646600594358063560326213999966779573701406928375799457679166557531193171758072485856492113071774612658427879016062845346124494923421327325511282812108692558677261746244379399321025437102658594286730503050511621655252718773014217212676324513576882240535098874005753315880777166635892912530958232731058395026244912578726486976246751592093391043239718878673440887149593995426030275492415233872687202229560816733387842604335386208391338037581973491973113832900616960288817481331874061244143758627439536133806967861264132130106279968283938117163374553768144383634233567587679659100653875605304332451135320923417554708289654381670878901321922168270822723213233858543869703343873274107523892904730251939176440597237897914637136411690774507400290033255430718768924569415196282752449077295298410593331537344539630176508535892835645165180938319261994569995333231067335830413964477444606604956174642064620910336239050666161957342494539451402498592765837206111901913865906658003968342449474584770094036643177717994114822586028469726453609671629503759225045596328899017597335092495707468142202080096674512410766862598698672166889212695004199982077563356069638696814698660988375913861472443691415746956408898184768059286335612092540985627648260722743444725671382739820564442700532581050198272916141595510950587371161949677827050019815295392310600885310365589588240724292932918129193735213492994359506608911322028631004494780757372544484959316476996156451601252433477394011521635457652826803452998610876761292927808089297894730632851581699888967982912250806921711217577818051234260736506574341195875369069508885584694669776420943932735362837171287550938786145318278365902022182583939039497480683956592085502361086080168850209105369524411166078566428339518954318415637040379243120059892664211385920464770026333802837722808985207778788019272584767257608006372976217040892828671119319999840456655367302249538240479663722761011301285274373170792339474918113003675150102364309798067933548313138467058176951202950297551249532839854756851318924148752957407929163946750005098607686599989341452721768100659955229911961707418487790323475665499604582255325490055455471127742919331408122931327132203416850890022669991100451380513070231375031073884163819654543659529493655912459355733984665761225087528421501607413552193933058279881316137559342366336885493749664868660178023344019349842968135548897410505388479295919905293293366307085273789645670628818088431212921455713584023208905154806317086927818720186654844652729180801090343825892050738796619410231442517403633878989528905801294722471436227483636680839051073663559068205644960958333566091290599546971490463700275127465855422838892873030495744405778783085528062313953640730881656138035683515139619737938973298106208258966921207772385306996102137065204659321081723023099835683591274296507787252123056442405900387450365115695611904585836299562704101629495196549479855101117651046609097688838972365788132157360056582581765968936354161331110289136157226425428027109108769807719624731842466534847888381980925604999729329214915833516015408352302212497300318684694973398328936244780833050748501185121392751952857598834599008297340049433982508592290413570182484545433801293977265568481618134807482112395290179201957767535253173518377407464474249034672674320302100750354730926101862860949370505169695192408250430121031709955456735716218858467710083569756387291721647641050071244273534489631898149074383638687841683394837055724085450130360868187850662186216282123974746357934371191444285648761823625108397186210382775668974947305844360134693063600356276861479699258803043497564525358840729002058109057484731929846501795234846566986595838496624998873836912245349867758996813320955763957508955770155585233680671169911110553348713429963658961048137770727355349160679125451724540778894988877877406285259491082410995341563644555863908294711562755251771855664361710901152811750763471605884981699157256306644862608110998089676614117269567703574528561883618244158904508737302707609141381185135481180207306045610449158141602215201581967818049663719679250220629856292930101752914418517750391182494920127253211892960681673521224717015883397625102062563889936678254300857341606553921926589837012325318425826012319003973999653390286692250754841008838469759518889595231491698755367786369250347790387471127134693429392521761374777774056773778029849712053340717934372373845956548441302056471982678697054890202202241134082656568365968346100290425742787521121340655767162545106765569680782663303005629085404974553489393341396794409448977279822874739248895131364215309311441083349305566751921686337766459526237662844610245423272911795725800211468854091279429481170116496568886350758858132500955372327655192136820785390723945324211762853429058347153924123265011261759394389071227608808082290648362161064658630613396080963708692339931105450889296561882584454121764589588920595429395724981453174618824531569760449304739429664913518958802772551877359847180288064352162397771933157121325748424817172845654381715820492195600019271906101111305273660838979306348459584382650158838948095192400180468260646210791024430500016319553083294531626471242213826438282975680373807659383947899149990543892050387764600550990887378856844887012029543621347383191648795603759677144359372496151667104210398384383924985194763402316050001994360963515218557326833451292282413741998509387362654803276517997104285560743202526987056086423705058593487076148553089058294702806634982208608355916771534117329762652779805069063798174321220497498612679496277396461675203712895726072133114430234456718090166879437915845314124870995510560970256323523893999817148171815293652358599173055084769026273978474481286992169829439725767743830090145366876010262533014525779806883768700982921722807581309638264532610882951433776218369341605228189280091804466498565116422450537566218230234733341981592269210225313110522141782625930045673037619237014777831911092103613853177167824392711498914829997492119332640647134434709463249427387370062405129206482005831140000892733618760720869370327605523550636881004685100147444973003486785746771061716937033905724298328256009940444780892395296139480709645604777862013798020824626659705392147217843482226311288613167897419070633102868637311683917354666143066827551633360891151940483416545626059236131769054059245459330211742190913614379272588130260062541205756918992116434946264687245581748572184755177545369587256857479971349779566105197504283317826141836215820107268780792276024379782312579324383466912895721272804596024482677239576008326679526193375177716103649949069928555639906331306287680393610979866194720085844175064814810788080231548853623386713445495282337436229323313651912968733335223454805822255918586365651221869788283145083323942035452652468148718008825064889471501598872429086582920265404827023412263467074536263465433785418631145126089438902285692345912447888807742084896507100650850299970638580541926774921599737533481561299638906043302408373663257205657192043963687282077716995626729078709783441206986213100215922248678387849110578238286128173185799343021120151222977568402359601041274031007671514221910631659616226270326594426588437398841732315454319829817671903303313530644710061877921276840494874816466132245461141120857632185504926050623902835556247210905671098774380124740876191485802420533691026368105245088293102302261721107873066902513795426311105461576376576533959786031641834244802170167783165325004822799380393078426076105223307202748110811958950441991616277214937155718341660361962384916794198839192336181498207653068303743324504845758382183289782450069366061211919183165443103553062712636205817466858723002847600937224658066546585334907763853071241339159578986065652368152247925225274543238019927383382351274571551771316228127530682871221141362638613923603249731867599532568850337097671024552713621226509305239460330903661397147367620647514735522357876501907239311687998825840854300996507161970505146497068796789898971567610651268035593692309732362409162690408344100829781401982353921367861980397666591069362922771390927914097000932307851529093875852416217188884858089894879108014296927088507715991006616612586175349046581329273159425656981497562725205704358660608793373878408437666606309061149393703639273448497064963022028272146636813088454289901072371456931863287302390553316386493781235809762713917425374725178264467627989696782295739039517762963174767336246131318044662806019919610473393446015391081828224729939868312827198963549329985660135297494682907930296071274655325136253219555308697025503842380490594147009898702697396126318610420125855085541402157062178949389481615152350996317445178565570610598044760404841686577289625722661972879030852952091986516638152625471788564233636048794519848136476551729483002778488864023028053792415114849549939583401456685554511440117485861117530671802325328161580662420276393382563134714245172817562963734913776608548293828166629182252724466157994425665738080487007424582233362239274441205599651768999961307349830543276691674117880151405920904626112323846809575565813807809974629206645966615552816664292854724117407408754838034044728119956741650686089305270074915314766144722244959077936415696624173626664578179294576985044639877751223606065278539401405885009648962545412700319654346011343066902070580381407339241930940327161998250098458421041768294423558006350250167363421393022288959069455939008582116656783327605089258281890267405825203303320641780504068898246870355104720906661685390836513598048536811723744386957345343356659787003836606166094779488449677692733276124814325826983632302675300024258047163437202388168452301638329202282023334094253044865572851360017864496962823116143089122444024475837299112516174621572189770103522776080156887008783503919244545724586076031363043225990305885475450817283076930043566681959976301829834055529321930312310650115059075162699419392962763038638807346036006263321626478675414423409639667135553317743294933734658778029470473951213499450846423558070605441529443702909346005712086612923945874810387203252421404862367600009446699348446469554673779348178165283082043678215290560214016121480439508625214077005634887441158508138079362715053738235707326662385674235236876967120717016566741825009309240822526150442529764410622682543642070927585283221692071148219265902614129474317797367785781716476317751709292310799825155719321256775148248832859115438178844908503171329406993997755325040264116230946197883709555570595133762356374497860950533823115739050873821529042370890928530038883710510766610719505911638057254681092729660764021746224521339208688199425906079608804346071218895824707853472436416521063890104782448039338512469628107999918492005448434213595956531690510265686556195607107274866419877555769868561754850334196067514191910330235710997705752781474703400394500674714013016084536796057154429261192566977142317935626659904423892313077375458712310013512229643039701402323655244203974597557387465466323306529142849409933699426731341396771623078828511226778239922494605168438352148854295109433178915536115504521405732070238876125518913832990798677636176422991835895971048831311704863157704618979956865140350549586812244318322378696642656580771573340898161131063967405900864395659171542510953082652438196271663076563857370370251826918113590831750457929212493083768352494566446854212740781467148475170846014403046925856040108831225463310363164066873381779891887684012862541921208900485189439151851188802208094602889369299930145220920551256652057169117734378511298207418312396237511619522962293989832076582982960594337072417999267477766383915963424483807416269247440145321199243571640052154317600746454621722901423818968220143175682758500225931292162337175510031779612664496264507553645779011008541422695304606663298844072453457507560381463497995721289504823967031579895618276603563228501062887446191830558989832060151399190097702956437931800802157038967192001248758469102447084897601057000156003675082643033160662728552974305015176324170136055614951590458367895281703831211206442016610947601102205451327340299947268240626848715455908129764240526186574021327515470757352016474807866408774522791018556881750963961172761545790172471110526231686753505982372103056035849890069797497912501441306073340794333801731961817757997845542332080862463172864222248961316001775622427605296932731504697132836560235062376251532330860707879741960367099698623354911167672127912185891264985319233058248480762716695279890290158654104911362477272801128125499134121158233228053151414452357854220253450659106559660179188609930223761565956562395478996904061438259831425247105920039663115405856317998795131214986639688558107419141976439241667566608417489864034678107825875341009482256945377064700883661833662929720959526008865797829581866967238986114254045986847732486105751140867183273600870105620142280155187930968154849471726239135831768841278122706367594776819520048159170739017582871868146562019007891506742483556007928619878406813853195531762384349462136355046034299936258840118008061548398224429483853451732043232057221788232610351771094407094584314706678579847261813944837020397065116086428785538692302786224990199963153987976847781190022126536410242196848940584309633901688043928959796430705725904697581909166935394804282290582174879454600497479247887133275926628317254536373593546468798449245637093194413249454283702849799623646438283306838681141817627135029617666389553014227537689276701704423139586213063504105055433888983683338785171954250376185632641609841733609274747178704610145998300399949273308868334888757312740360123157291394149829268497892447556000362110968930369351501516316471818703101559549375285477085962426314091035754361534160083790121539912647262633869470269512912571273978364225256550515266330692308122192478473051520257406793425765318319472868706813323942262116142612526557093109972063157916725346363346048708691304393474431844732151986672921003090018119851338948495495885693199765496926303546143069774434056476712080024054959224706072228406682558405865792888791278538277463020644349683296373155008121075133873900451035087789277300413597422550319264026389156910009942096241693831573035387085895921094027213961315260820114914442776157419330995279754374363411247937252508349162411939597715651541790471784509475323130040896762146907171362096323209481120983848164224292643646843289717566193630318503417904301270047616904349444288449882718685473341531701475413112264832928226509580362787470100355048841088889388613370788264690633966152206399011332984164149215466257262723345634901704022997378594136992798612249886605145946498154666292806286153317237532654200704376084624277878178154635401288522063832195452690225557126178063347365226019039031107938659442256681010468002769051744596654024583847993921668188647970332706805012517755769943436706469692966878107231543785138125379496392749315922383476025748676261248111405695560146458149558555100354399372858888684067124549455731327349291470260258163345093629988163136060509783254654866572166147014958851826573884449665846357598192445013287549652636154311560304923189901489318680612400965946020543968236947811561896130713273549885105530954040138374343555126523391382686608230395141529784621283470289612735938506666201671122562586545835370289781589181805754242477948250504998281870064160353183809386478238969634216818836591044050749061507875450279181648734913385356623914293686988874029465355445952011867641990186910757746979598139031177317034333209448576523431150625002252728346215028785018109259575400559560530179254418831163670049773754535810590504970622221887667442599779639378839048782734943457186237743134629200091309503006744770634562051734921312179619004533020323041405843688057365429580082154338882358801995537124046408556121931885177147613666624511485661316913676283464042376712680855882496417903597523549246076487241514799946496768527347250783639545899048685576636062815583111571306475282599967166244603509983725573443891730824040247590133739538866411773152708870441618507843012492519355026685634695682220123940597645246826953673607354283114724700179526171661492357886792066029622812813342227694727527173588742226488974757819345036488223345883392292143901096161004802059287285413922691160166930556754082595303918009106108206425418166943125560898718314709697871130736670047203116910969396646946188478907068545205497959799604003436631394935206862239071830642826717402103404506458064393111598375437032985998244342652273529797757739633384409228478215041564532203751642812887692272568398251908003011033944521425285150689623759946159216492978074969990294560634705811360394561701264221274434130893437299414964384523768553500299330735978755666525186452903516863712362134014453815436517324446566342065856812104607100293304003263637107444419613758242619495440369329863188361751248042695215316506296914408716892967371002975680125761598874840591135858998603825210896173140254078597338350514855210184951247598545427857787535797268981253992079278527417205773749997702967334410508173484715255798708081394771762024944124353687735595011266604236960832988645971371391792374941517007714143440072297636826814770031481851442415002240852654224405818697414061059876922456077057568200246919921450973393060663204797346976244685793176802953031380705688927374485645041734138138560102151994787554691432125933480282585624730876832576704659108608191643541931407118340959275917554533920606457691002447774193943512119647728874228724343286877671179175650118982803807960798240608861115476944428299817139458208826606462294195104786111198406209982131211874151379404711487277739020738650812586617485450807862381649306884866224685896016786439591546061000251807967877909740464647414269283546461981896493028317310356239639672662015430531289319518427024800067666292742926278646975412469882569398985309833828701254846588079105585755031735437580804355160319080151081977652639281907584344602757022846677331700986533314196025242157224747902867701922137000464922786113971828983584249923666005357884766433653826898292696815474475169933693187732074262876546965095428702270158686159935571952303062296161769743987245865341548044962258049328770727127343413231735045652103794191927729834951973042745702638358826389078912730440910866836908850051690423374120654147374024550493145809037250187831945306486177846931692598384921710988910306125578364409583434574628473898243425986820893068836265395627388138106695826785938157343586999763913882856837329059610105693404529771518360001987792901134183973970692772975465986754876069151039224055219272337760701107999749763904917347446359052483254348320493914587702936449275833977244543678223200422002211096487768191965969420922970563298287913781653385962748119736122761180170237176503649840569706540986317784211328287214384254542152839955890721692096765249069826030045346262299021005926358229552058153825328879509350782994412491496539954119612533503954011383096225125615042522877170188790985208425600540277054446241289901613907063802411474361586894776307552588658234189854639448201876685727865230095909659393313543261533246381004975430011759567444086023361163115500933773175038251076822795663484075263364898849385805655444645769546784396700421257070947136019641600706668279795508338879924052121780339662023636162485837191502970146445974548734494568363030799171654660166202814625258737866380969573976283162401000773082400808853429990608658348508794405104171435714472484418701683832186463088427133550673411423016425322403980257092528564404923994064452653788037748146599613809156849383292456271492120182249245156272866806642119172387939208402588067168453026331621196050763940994453174626677884399516900902367363949083600694594940440448435618724396507221680758483042139454977310196149139053046775855085794569488018324474129184225768924382159101644122682242682584979621545270293989405486942708782968988016728498629388295860305293742146143147786942849685713651763859858729267577936744627840042431030501991324584964752518477005405484017113459697446840987719608931079565381933232831278705919946637440826551901622202169989947498808687131238486336202103598424463748623978827679981962226843830952843780344160323728715997287377585858741859915577194746504143700682170681221170315461868073537338177259407665445529802387576506884279379992039962078133004418892918999773391452422793154686073509136202409536110448057710664677282629489767567240153624098972754004146882774858286554606507750636399526140156297757018175981369092514733142897780103550726879671597823576239805268313362944456103204649322459931586538691868783390188804670062424828937725876594432395355061566166198544234908236188641252713777684674778925234077535127524015531276936255147881534852058905572760774815541325759189583756624246811929435189984057967390066662951040060498631917338754288934645475883191976654411526066589297575294887058919485050319692845951360679922426593192754342600163912972544099743037225189783926555610815053589421612424292674797883183949802247619836252733113478429489254358399812496665116535333886698687721732957338121276586098864715966812933366289203331343549318786456421152880112356298256139200522462460358277262347243110834088511394927691220041892742365811724339734998047658741396928972791775590081099457778804098158597062515128667387121077595776841089251148157911360670865841397122877993269551479615099086084074918523296822484500980991032691419484745656113250478970287139355194983689989784032253300278209290923990793574794730387923438032942043357215904744170883508273021582973600672776677507672191035333318505917292173039416553720463646422748955666286945225333061452226296601896581050943689696446107000848442719315112247304474646178744198266091923164053753953186540868488901894091513114344101607692682828069578962536087236356987439269487599005391843924946243455460952288926553910045422815653346235220792253436652781468864141849191532917388461774761813551231364627195195567926296442839498607924636826305474325633053473715317487496957874014494717426372644224097870640815081675450411654256668906824702530366838150380461002404945229617782178782022066528330174375200165603127871808806853558255067780863408986448052809108313535512353301220262145665664720442733385704621336763263545526513002442302358491630952742500916663100031190482493929307208979126141647224078233098851847849947968258180649123157657718235054669720855399207378298384437190861754656237407062491201623415756729487667976124008043828433222397428455589107944169445458352259184565791726536718671714184570927429038176666231301914187530560353082376118753144529439068869927390495168098957184960411867159830065676098611794157422216945267561618814009589632335560163070427316545101660149750053372996381880758460160295291575837840688281560566068462322905092206956964818382584784646244457108415667146297243260335923099897370877428893263411106890601825555968873795093807009755286864593716335464085134655730114712508826751683628368601954990446644587180758884295207094538811326580478667104766527710224040135191399558777089003948763909218537289086769130860160558160456039247107293652358055604077762678959324947824941010898562575696330194063341338541780656545686138175668081347620891544619405154213181474357748342001619263013922684378459946939793425844643920576859092686875329606066263089955892275054554183756914705555839723658655479725038764781285041062498078594990166958235177839160007660656939503913568271102008438530543179685859204094438541876441084381694252035238112167703954339169125034530812006460494155825870323964423604858301109639318531551080412393746576095482008695790223470373134628387526056715644164810996369787735395106271344022016835413241626662156359372508346132924773604284934746363402842555790178093019561469601799812460107272645066717406204256532228589292491423405751405423549339766511638316728706168527902133239601354786208150502236767667652372061983718415010373985893793751866900233257624623362957108724650647057482112019063829647025492547230375681560502156121360743175441357193246115790997401000812168275567957856121218086336028191276344325828950924521799018279408020416213267712393309906036393257780831555019375689897206338079556279586947093981865972264307289397132648696860199278319890280710691405966862986338260949892190511248399082579914622310803798620220728538243852404080295375842944938369744744817720746724058949369276891955861607316164009826521742848874302126535509081497402865924968369922117900940571089837953352713822832768123000449208460253306623679926627553205421072117352508855415130753738948339305182577467630615961393462323198993150494727925607436763325704024925614250131404934256079347698386599386141044079743511082714870602194942931590740675006539732344459315961335960856917366091224153774010928420909001581064776862218343137223048110119546087381895090077974376333964764404414774682134407173181677552812103522323035332701381101573590663518736142455482816346569954771731260675912557929662108647860142746779988188907181028702685698443458020810556105854786508913205612594148299911462135892876569671707166620581527221524190235698882416389307496797736540414019192112238004958766060105006515173149072991900095169676755197676721331376511313957100978248655845034431813543667535599548819123860447891257623899929658719587313173605099137899828014488058658880298646883331403385972735316543531176093339139189869651425104952464266096270160507621963086270782255000308802851744304030660241435059700806854497451128686765706033172432195532202440658038635633542065415306251929224002667314518979094185001895868275754429805471677350343935888855030878101895380351593664945597852838773383892446514965578040359738705267327687420711807498774578961918032047427760736036152992985762387303444467410536159148441527195964716368658706347333131069978367937970407425572738986924147294649290774882895314889430297832107561073153745092381719904688283475569140476742359209150357878516320065402498905585929859500760799171964013788195754044805193608277423246073657770772311844538585075184872312072212634549348265311410245350793096708898154004123215445251675807909624997094895689361286499525077719902465671107001238423327629331211388521557772798397622494883348767089401430295490661885023041020432671520221639214466514570165900572849517181360527147440329308297749061317424947052891643209200724122345855817860058282554618720507946157720734427951127338417152294756952401731065456941068396628692549165877966099287705483513542164189329634618197302885890105979003504908528025158150897074281986680490074267182014737083947581176698448131526049689865483059250800042982307686250339049772109778996153127659337377685549656115010343830909781910009379848570012009012576594404911545583251671061317493065504234012952338224189024155471717341303698944176758198313663547700812196722412774388512722490428736406349419542582687011423831359422077352207815731301181069522078696770114315567862033610634260279050825207745972785922540964062781375105928095978705553862388586139872995917005799847115078203715345122035274183615510992713907596501474527339549456924215858534162429953063118635567826519957345014934987456863141877782108164175992405172829615945065468530816359978391986106965397662952526885225846010699945303990238922253583969778297139261945482801827200642511521985697895496846656837466573816583265278844219587271062500007269166318474915786578669975767635502796749354051806121504341399060407682725657465737373135624836037472599051803244752478900395787659019004253419627027831020012066632967691197013562881076235839840962132274969639504614370996323094267400299918811921380125609802183432199703173905603705412112692552785312646131786907142651260739915851470835803310970774440652659421300926616661177351569764899827590803252356319069322188062598556963901627352168747595111922200823113952218914867673726718274537177790366228243600307803468626690854940158969967297664638914658892839449532904885156678263851862401432395447466438876067911898935096119595389054006467626240487809706733643219530927891906308284346980088672384937710407588735327124992141996307269960753671413383474262977161024385249957847331060862276929780211100592568934637488790072314953606553563942241014141912366153761225988478276550748731776881762276023123339383525771922615830600475138322378464955282646255255369390235272091953581025233725852671789466230922898491218728359883970974492825477552804140994719062464069225320465216214773357110773851710651601240900749774326630131468337514195483586048672473451039010627034771770666637053055910459934811979770513744898278906787461490411429424875549938588727336724968221376388880568142918974380668108244352855046527852065327360362778622529797248587804406694886123732975813401450697679074267761612612359711486323089778259598545912614307400244938924387719712534481724888782948159833128955570461487817366913447486610729299050859703082258335865434865875701270885458608643972085842383711674197769548464915216175135189681620700228859555648754924631559411730258350099235390781082006878154570578838531666605283040615979692962848343070503886715335698708833875732800928676022948827326772411499435106667952832392044457274084482289551576372938976849872098791611598092289217747471901276333850662593845735389422119016623082971403315031496568288338767185203878865671528406954954472758127304212242495907003177530231375459627336130569526496665914438630610952196497500220693016171692416807214470176372495126169040915414920254446992560053836905641908166589045422969257977125889065513587812263318227369219212329069349092847811011092632034509705051082072254457093417328124897692531639365230769596707549501834057504703317495443684690806465580945123627555443611814410961336700699483571924559718790040867687508512202360348069698284866007252109918584839907098654687135399363798681768135634846257889114755541354637685771297261377275305250842445427028434662927899598829658946568025410211632281601007865355365188302776594584864726720392260187265297196661657980513466590032672657088886249901293564043921410040873048844414843564437358530139958919828436360984219319956038910523356608371939078004879707356219290453895889528972091869409493459348396792382650481162094764922769183130138742711160715797083475021646935705437037113833911335779013591621621981800716164925797769962082320627698958303748873100513427254311527017815607240622343778647633007359051456562120202724557253018632949922228090653545865184719688689204868794226300904605975448696401004806337120898848378308357715815734259306208947609808752624225727782425736337952214042786476772843232648711255419339202657995481995946616486432917789576983710359876563243096406887782444977307417430086001669030201978493270438169954915970625812045782080893176266454915667507223403729417631524982491397703252001085347022428653879403414909937085202787141672355866202655045672708599703535815579713377089521808802377589745222712189719390498300601685477080863971046221904712844442754101791334394608974079035242242662579207195411644589641099447518634125093471112512888330713492000847990129477417975981773680014411323847870045591014989935028350681360259111609902084695383087224082391413422824124209503172004423024813019736120228899139259456319939725803338882041948860162849023421668355613616817752879630203310272640407116518316026788408368288635860145300966847203311027994615177035987572641594688583077887604144606951286045981157117545270938379848554407878703883499612896892818898575221997780276501928961950480894124640128425743269595122651971560941005261817068655295842433392855935074993193662385938015670913471716544481286437843027906296911325241622325504779609022346101621545922814936087468259068596438821356230573012199389751457601743086916421138693287358557510947787211849775105171876130561744456896952566348185206243773432751651261914076974815023593757276449639231683535772770127505376043381251352944815120307016451365236980475655740028629120193894671301882829256369552505621490569900594979031783955780904328481458034404126411422522600779612606342932026927184228113052613363005859662302471011572545882889810834759447420553628490668102409398608880212195850674029562740967488050170816184429852608170377155159436921669241951163031626584218232627079006492468329621450389830126731453597668406787670389365024509303939103280129010408611046900859964848895602752356657892945537648052116880523422959167139898763380076422464393221630611199664095253135767459278385566401266528639628132428391831672643997584913130086631465441033201530425963020167881525875888324891712317392266934320018341505216617873874464335129143392663960540414371662874121017586549226244843530199326732033335986461731603218588542826625765588020903329069142000740118008030595780917101497607896667872261265565738237265921535429547656319899425172176058401916016000265994790816582099971584611586603875796621502334197896558703658804212569116814155741740754847707162867325108311133389287888670955574962355072076113583185937853346475611660884604907632991234661697927340500436968434648854856382249965993873285908774584834760243178993694465170302886736348698613722599065561562718697886816179981534705268704393786335134911429716445761405396373026677955461034538621706186254034489404151330849809220210645622790270683739173615258238188674643444383606103554345216426144808889576420727175689381116334192061487909863779002274465231545237450621325737045123503999391829468942658765894432973011534124944658183663906615204934037719545005921283468175379250167477041043632161679640140225809244424637054787820978905948602834663216311083808904512584893540075601579645027419782606605737195523624657213120149164212473615911633248439584256649752923435912837649167950454517517581974205736295609503295257132105316459171855632893540612734688812457290824528550023079308451861131411018278438694230841891470183931706172719799329657733491641585310786102201366629352584383577624351828129331669298421407546449961118140021143938128153985773929732295566986498438225602526882930731486611720029488377976170458155885888386106753103161396069728006849703156055574944350980314209815192464531660914550926125441747109801302621397602724177383884294186048873180655342283241145536927911021713961562411073802770442522010813869629447278811230721185391900289662485139271253464401734053832114444579715194734099936431054928696786543980013443212775169541926665124967198576507167725059359376812688928991813862079707499780039456580792946497350096119156022767009271140422906908355036470176988331960178120733244610103030303254161859964485854623026620754580359314465588358609970372793872934189677353668921854770017687594199613929720699812913438600912591807900341279078084348847203124757969215801048218382668210048299317954836647404781612479597925610244242926285250580400554104576531116718968233027410263992529856604699003266326649030653635140345430152877541249279195965008524124228094909470753016649332014171863260460039677309228672292526436016140775173753185009135877830529303059366931630711519365366867507734842670069947664764720775416568970466520965294603994329004515268429884509388609817400657994511454808880365206306958241992734584621604545332044080776183516533130389893041347543635565733476588386477234573998441183140408464199926877954172866031237804455928085774953159085158822382697498290377736946595975182619831452832891719561622684831023672737426502647110507898873313463366950946977123808628707926211592943027701591773849129304908899319905695174339396720925919082110369275780579067588927548461758629743953517184718805794234868187714038203494012099678281247095788777474706846917440715613323461029649223357607655411562646551052443782338279429103363377591437962254831766583035429883062182739817666236347107217638542007580168956876154662616103255355067608832790073935287936989469910118490796711150859751415808709254182516924807137874766498518082557078819877647415660736633991835403894326629694139471786637564948237655887816206628971787745844471560662695159131587177457980280321768760008892453944034121501289737242332340907222549121092130534481987053861818451443196286397363766048366860050535967750324471075699959700214290458669465162161672149915938005207171507680488093385383069151078537074566473058713491916848565655456234535442103707098984395651264417158630131484338552272954580944424196228687849395171097019640313776936311313982743091945893845619193813765237904121258732046548774096001662336192017026387487576135497845350889161733639925014341518691973532274633690243825570230148612517180890445704420126531363223541318350665773643435241787820000848494579344223989865684152076584679576905758412370846214087618429563392922809761115950626469607287757276263588045551506748954151090452151977850838626188248475260800428041283127138613421208251465657147615484880125945998252209052906213036532652061866007179981513933844895672822182835555290707992826152920186234232019616629035969279694548052946057407767244679248836228471803918973619619839656390953971583878114419283133079575642890554131388973641606554487604042943177526895443064509323961752717560029027487209641414889181446745823518542836409171035149590978967313705969074361162599628304759995087645659607360351679214170465375129385322421508781923183512198819967158167896075484328450424757304556763749194462438323765456980692719318192823986266098313071766450079188664913009162594120030406347898979496962136298471751659877485178337981339269471520756551700876325407339157910577128725042677127360498025649629176723410068341970106368531211978625805781274463943392185299852610059686331913144092853764506567009909228189115929630903530104158537119784433563264949020443886168118522661521980818663866206565393624360742801548745624333941634115021485075936043276892930180280421681214466997906751333539821437738976269187163525387765898822297310395178866844284066470229777118904317848442297907174051965530897684463768754100463558407582361686883864099700450201724077165020601704772500771412705053226559711428517935001187913078365986945456198655205284666996752435560788333928863015551325149308983800947598873114390733670261758667666518125678892707634043187230646075000144586140250620987140273982433840791310428065673518314965375311186336286129178029985349476499552107420921538158748912163811261958787846854404452507973810552001111886933327445632808364044179327077742912828391600676328738738465676476265820657604904352723816197848559245932389528041490683656714932494822756182297577950444368819455299165650242797161928283390081062456745244906777181271053574637325464919823854154032954088461062495175517381052661750786526079260745998133355229840643307778120643714427351479216238749652101721217829676378339932377509968636202279884502844100542089723111870283620835126580305831416377821009962503951491318550563616275601393058376012268537932769391792107180009285161153597998616405030417459874649758963079933447658454341606071298146177083707164800108528433756563075301127400554196458852852239382513510022094834576675777680873333623411220920037276656862821385526656004880810214394036194297318717611202705493918839534624380455617025110582756259058548985316307043753702740753569366559366492267730706483443533543883235767830697518689796798184827035055826261879607622100063504146278336381319556105830956304431518395634124755681025268917422371793066924462217558184372739629144340868647616907697933797367184616400528734399376957216784416304877085023244603553810276193253553861570035133601765378009919060349495712268821385315480738331042421037259603171117578984664663119399286890103562419914271368408239567379289274142242457477476460886591401626925388504836511476484992091483280233075747772362889467285753955257888523346791685214872570211738364479784019892911972312079297471025626820456112660440467833264990858895264804897491112901748109129337503843278818086093354025016582569404790357836335813164804677145922447076781808249049785794233593490674242757403171765916996919190693885961373006837732867904977369946296590143023415538108923110322371944948343430124950494398920005781659344142679868099716550735326536128166142313747884807575293042616445139673546816921892559754649352620616937578003760509173967907193052506661624264318752463578228526427301823472292872055641743039265318154546142580714098438264851852212059490464201765439983721435916312147022967845242632974614579837189024987234993382857550342457239982608006319891599589755136236958403072485499945199234786237560959356397498658206111822231688370461330745263931474654853477132154188121437430639176330977206295402114714424393054810002576447884453290358052525388874500659869325989779694399635874501173275399625545001416245408931022216506357672227479396009586639110486664171031982616338037941511831183831425865478847195334892169283991568268162915330362024554170911040864559927214681110413972850205863991663009921224285412081284043681237253048170910753124285796933210605916210511111964743814843738888475899587329201351161023963894789505182294070548539706487678679243868702089050366094630491143995417567412659952346618014970825370788876771450904214836667972176852699455689359460477081108657240551774059294523485943331383609566827899755557092443942975288007481320912206086531498015120453645903008602015510984967789610868242370127258583178428322840547645557219049613213708915570190199198907629616873476060132462867021212773550817888686285350206859589745629131001174472116362661423710902027846763503608002653115541946460281470858964575997567778378918819982218996738610263966234924894753850201245232794752812139916547612914293017005775885262951731481963053333271566178355803467626352565390570011583034244690741262187353298986219714100502649037971847750466964730178907586561420829683462126530316640968581723851147718937877285339064574426939215135415018815344086278179434589687659578287833503246078551053777251406332785272348077575015524584109712946102402396133726615458650695015868746032320520173569710902556708092740110667290719647161930642183780745997217244392889479233884373284289487059478453242311328398669522827567149027518076794522581897305056137196537552973890360924544198567864318365365524249334983444128969612171239004808749393898418083871948128369802417026649694406453574782539303090882383740375051146033979303208165168910824854818703784971075944301441238374454841409508647493395615715062119123928980829467816531416016826721146250542910198689639656499135770679350324048987713803824359839376209562295229410508312173204952023919806741041822347835636869775428767327930814912316537778461808023142877474565467511911724383536417521017406103203712504394095266109173412209215416136877784341743035458206137219720230813922146696415924034739463636861236804581540813584205985102436716916691878054348390690912874150211760701040050746333903960190346293280443357092572426014350880959410086231807351703971545763310015299032302307005832009161443352160275939052119794149645248296476421021184589238215644472768723315976340935156326134155234438352249442767812636504947945796209656425724997782788193704737016295871874082675914303388772097514675741570109531443707934678167744977098242014080767089468109909784801515828130320378972134924123829581428026936054506747822266694703269914175147010406827190672256627826330233907032488104313578562495585946589831873781485856126549521829062796542696245497779642240096901180987605021866857723284723057800104511608317576001415192940437988257609690127729962665310978335354703891719157258839234450578284882202877823733351885938359648342997631164513301096949109602991686761058816370764535599170488182628090759557380101765894361301597348716115387382652841110407539124740396565384885446195085088297996845683998509763297377099950836030566991531858578919709122705837213442526595069679656158345673055018594700563971143828103394330087266475965156567429980633713749813303954346203639468084620075347253820983471054191931760167402523550112237127262049925617356177054665995901072232839248407817044086981383474085988092942117388052981031981366641209188120275343256096224101802815101629995472915259725045522564045378337751881505659122016103314928677297250009043871935616089962774214996663578969147336149421610861315493699758733347249368940613560774453081712061847308271700747068191669443837017172345191744582944446281941554299854645896137155502865490700180150360215739626397044142309440250548638770507627684031491795248832612476293032081574197474966021671896935034448041341242519438495051440395973865328855705508326815192191789159291279825707973395803628726378650547619680406107602644491599806272996369722816179926000017632455233639649142224835857058643038274266947955008914147776639183265828146676727444253680177509563527927170160787196130613052610671352030127031207799085871030132928438841322965417330066163759452591876322084055110459791100946933787066229017915627757099841270411667078037634260242087869506303962307741531948601290783311460356929033423436085691509337074091840196847070941797809408398160272903697962767927727934639323667228015191273290360410802773483701938077962933490691736975959513392119433253236713895895940544885734111406803930220613322109541141800061903516238679192227559043601913188630349136786601328338354964939951067002887127993373086937339655023347658915319269040627764432188967087926241291575098637714834100996963041208508309867255512710591009788015697065772367155295765196861179112144050177766835883263454884105357337259683485424285110683580145016004877098416234538191934526963536999641718380744942334632063470100248717184773784962990956531818273650575373804038969613236467522903642442136691477411769184538997311848335015658815624691804016109839303538143837756047810804478691604048920367673832989879913754091360903956764963897634748116227874433644192453066541125489166749508452956817086172642295270198108558189539609896913622057030157169508441436406797776152302967575144284735637938833553375997504817024136203846911516861449705566684341288724475234821902288168817894085589903115509282733616644397415760792844339570587266890595026960429981562803798481744977468965717627575136371584300145478722306932589596811821735698237608042556809889987417872340975515504854799445951661785535777738644043828586257097210212295976205771063886930733046927987406029120536706582595641653228238280420568303186189966159351400467845431953148774165217036403540381302999805765974466786265000246142189276064472178132718715106299965501876798689027346123846608751110855426202968443136510326559743425175119789037841080214905555414482992133301970923130059047215370326222868902695522256450908704676104424889334245679347884906562136886248496345241536279655040012977583337131348477555056532582695016239239000956483483762732419508720749228990824862972490865588025331004633767431523940615034214415772856345608660964326768087403428573051443264877165451125206297900956547184523713229486999279811209457969091305226029638099205822715386061110807854265507098286528420997132563856858950602121626803540536215649414238876008207772499984343176238986917318000504683550866476998149368628190423782053865603816432477036559217218813822202945062936608662532402814533355143334098622079370691233932551320880575691052602944993189103611367742273097301117510297414780195383061997440806327633239225723147311027500093067517095363745761451587576558873931774138343366452531961557209663420743741654867107374631336105261683536652927969489639342474670137496170008934481801032386272415278123286039940899364196734547420445873218492724272484517413384213196113257752315221865525849543913749716512565098683363543551717400554930744895524195403674363502382373485087953472689641289615203592225298334802779847484845176733065249344093402318448695254078037650829816049381786595996391429410906277655489327130774347757140461891734812193848446940353899253069743225957972703168107370109757264321239847714302581387281507553572339089579427386066202074254455574683849105045925009302740852811850198432002795914532674466786254285619419604420754974429820017722473174937373937122438728927142463822858942849255369187871189893989617960098316740965558628882853057338776617029075884435461498698436157656703009451457839086648446629995772883294201731640866819757108623261400440152385841733502603610762530322279051868417970205726397011208391118768445242696086075695089561490861964047346012528214197514449385702490257201638325080696669408078361698754283657596850982617100283203404276183775909227568301143403014637020927298230094152617643283357616786442839377467495976240627498943128778138216986374753819798909390181709330511971955175462040060263708580123843124183217032818489613360190441263372257477758906656051900809693555378630072017166208201443752193610821452366939115330410116175367664434339747299725785632984732904140026392226034437130620587296816488946438107880161723990645427497391045681824802773347022087262820702152326659642671192348574578469154662739506871069455758485289780716075467569244615517443384244597357305163115624669109095200838564919049978942479706649812016115287876556635861982580374087897641061792372731519471805377424690362473732270548052598852590812609703038643503987928195384774559060119518790140412959036216936238349439408478961332213895290988267703406967070641507968538613941271536763337502029641769307427952837243623339061793216491775353878845216078806563332891904173860931741440928904785355612778759401901545601252727751269863361706237761594603659361826078845054596653917016772496468403555580931711334776312510969950412874105261476317409363600010207175516119781430221373545037088556856496338487761766244205219613057947890255474365902368776621870356824158711640699898192492608852773373068322881794004488467537975002816906679512192528457597429503236594942153382508138268775540952775095233765915930900298729038502502828286631477794368992791382148179930158573415196624551050830303431404350345471556825804652285687902196009261277653956489294298043837542747558316074566530436781440050980485270045064202075964453298885631438029660774863327437559624744302882380670789753259321418252161028918892182997074947393533340054366545224583589200177954649260996557021506994563636906206517263416533887639104305042167731140427515521021559970794384138959490590136788293707984886744830102533320025887119166305914195504995918645513938017629018128785186405237353654144063341132315317462109689201193604546037924222748724334060059047137883278533413397263937702716409631596967601455970826697477800235097970113074306330082550097046370463310916371042147053471444378376412541104572781644563612069297033390022824659912674770934582402176011560961107536242775462553989968726617680019829588111306234528090398150203004571467775178590165134346239990584066749966385701269632958622675591259441070214403906558244752618845657148570344677295664198025297214311115866113743565680361934379602964394963014981957404185429023699595767055878428027850443888433650166269363236328432053144417905289510562148772239520329521151859781955884924810843328538308899190144732741998188924392284450977283667659037146610644297672265202526036277005038722666555872237112541044467574973717400664236802819506948641301254497290756164838152128023715946473044916418649732950321368666921064327626106846541727516676012232041080948248312350283547047771625288829886553803652026765530027856948100855493295844065804651426814047827526149311417208357033360652114885046776845337981405676892851075421257988376885212683477959042517466982763256704875191828466842312719008845903185041435093765386989802872916746168008434657470846935032206173430988156897924564593239106489270469075407694342545042656564192632983449770397083632656019990321955404254839758534514034802394722572232228466567772152217024720629877642249490276172425658892066233053447740479606122694149474759169060042421170011974140174479925971904273473934893779270384547951076680125404650745747046383593497794481145955898883330988928856867319801425310453665033633522284902134892897071299828350869697928938411628256710059962773412602007205143213933061922116628764011800535694539820123818931099523878108187196712982273456862708027157786265681514865547030096032394205593505526842617739170505971930055282376278216773187247292050090780243869469706019292850444634296125721034401682752197199014066039060827277559295821496648322746415466173812040431424352417888156215200575662521647709138858300061458724720098514516325699615019263005933571261874511351058548200778897191416316173889444466304235410553191484258717220668606440980270323565514435312603882635801943024322753729745992028889084789944106655186451629781672065989888043710142147226892996371276512046281987411119319059545696529615401158400006288786167605578770594556615994855846069192528219096608444886653710385571280502382656362969211765620124094623657283670693683646032533490654428379540445748754961895527689831204701052751253450125471646116388055438063085055790032954447427245249380413593324050853152443996689435118916096759052326112147602775747594274053923024002984822331098165405731250818556648436797253092825441123685055802301254705078765139058290750979165602513966064409083644577346692927880332946583876199899413777679343160076368432018434914332673491009064541801383903976244465242639586771934862742000993981321383491313556325024630608968355790322247511820292402757559560543396828910072227930468514028466755049650023016271960454999477543794825254079726814502072508304993147410596373255321741040581603345269631717870560202968137967179908953769885251964724136790119740036530073726140240294162773955745583124599241129099064401872595570588206524213422917169217114984603525675714161834703763805114065565441126070098864954567965706994138223165363609679297669662705056562157647576844582342138161705499358678068590668012360911294523625757011530937557606405932209186266474996705479812875207774074055060634034362949259177107159299318051743643585198981321543741829671319494045295651292899600500007173757882433229523753836712083190843393040948623888338470618293275458456817866273675016240790630979674678116195880735603347135140886053756544718467584682505732876833916895556965949819435768023305297354170585647938235043732064382644726982365228445147327184784385971938587574739996653840442801334132196387967868689982087001926519706145100832384765952600509007988903422606354111725607816235219736951318885792845705822039846014441557467885494907418949652640823866336585517389893543865853259508738201553528097616860041269917721817389630077175166515188390497359770533721821184929185592423549832700613309106511641485573908968445571351363294540499089025476442169907096070635459725904772041322748599376514624124381065749130321992400292277181469505347581266290861632203668736231591473479034160684560099350471885365674595303967448974888542469685289333986463561851856460291077145771111555761479939216391728475388648441934131382566420151672575265195858880511914195196136772766777155537910457447301110378606933971436520757894811977831362831866322174841919393768324421409598101544827328015855008760051469768528334302352558132673427338967781552349603931792897076829967014365733706254904192955014175846100382704655496270528313997668176517740160710581514777049711006182786239705258681577902110262688538607181974906052445318868662531681480622700452725952157119225552387833654108545983293620775821773296313755970848298319160745622678956486632611198238841017962775409774498470626661812224235456673314246696114052906317036377285637133401452177283756426454802571654077668122861171954700243282248283059066090602536331770519599607087167684658499585108742235299069422261070275034916651371109148386885564530698720079899266017722429971737795513937526290779514942448057205333158961378207206321576375105457343749407638586524073741131336487235092305982253840924483723969234331739417902907938604344149108076018684156467497868620943905343023611494987376610524605944557331234637761016604275171281213158394191513991414971072819777323734154816084543207247623170221196384608977782278278469755017648908132574149606055865589135221601062068424251009542895284716251391714621074490728715410501355528727888408665423375867474679816329216981531983558657412885037241266987446467001768302968678410233976179545486682984452790893114643171506625356963978813499633543462139058545613339504476658901706292676363304643283610689415846678852143834513986334966427261772693991731178963668365857044924871722113826126221686460375288805124855391479403587929551506479436444167959901578801797706650312812078603829832446080816428115226306825566462728425356984713293435730607764550947326733841004489262765878885435565318184560294048849973420072253931160642187945322601024812211266300474857324547852214405040217714859993506280291935371452485640194073163788707801550040333849399708677422234177433183902116548799316890805359209591576124704366365752001663914733033515531998976426698185504879206302941714446300628844438187816731825765105116229059856894884309384274999235005964477702640201907691475280554429837113660290674270980180303741019677324421784477723848472162776205898513012637389783834500592310581060264339570720304017896712096425287833789783090042198453740239729705335646724257598057051364589140706382299872363153203309707105197103612361290131565207446164009553680150982476504604383750074119109515752407027810619957425402377873894593833449725007086738891452894923545624085068512677021380003502440616953379430665318283484570530623229386593908109080326466465821542177495347738938760008317494359255932912515947294740490571079943700072020287023393181721610141882907446975074019739954431128566795454702281567129746536255682282951729942800400655994390474582242486168516070192416090880498371254823840170466757783388456016770152686217391700781292053251357759979050798613851452135271515689815525894108019615886480197869870442127123942913149925280198714781947071955303848017614096158957227438629116760797889844643698662124257194288723851877886303955199199034213059252754088456979190804518996868049829497848430580188246595153290079457162746551117755175423128379648241019005287892683987145725307608092667466863999599703002658321553502293943353792744931295560586794504115030895743646701473738933485526774536074425491303780333983345834515344663435884845389618422708980617702166189315786629717505065988453076477182900570355001171507719950851539820523142418247649460513618047079362777838851692098829720397926163372801308923973570691147397644478401373616909527436651412913327411661643881545224510110691514110945261444385948643586748784940088844673292495857734140578127237021087891055881346657728182167617644806865212958411615299140390269468531110261226228012721909308390838005059694201045365575555128870140048307873231778498799453656868087990971418394179814630805036190032563716624839152194658150703541728585613051812389838077357498601953151530630634841147064272081331131689298569154069889557287763232964470530282403752448477327263224636822813130296070440950329852522399390557500161141023869278930131979719162782008018714125014045622538950248484367701519268643149615172684329686967304592848831714600689526039860368611804217283240855669805717072285032397456439630421704832999945929336184546892649308673503151091334883643180899417327201784404456844600888015926754247251966895271246480606703707086467717842455736277978392528181556682296173902460497068166739157175855703088252387482435576559879823954791205805509186698090951128322182818889359947310320439302370468779890581513799456450976202133962868109505751436548269444161598191569816786357689700425843258041524315531817768951134695140053782604358575140336569872074886440202088107404379098074229565800966048144166103136397748825487369024135752409819628553873309772291066502715565486886340216752238689359896379061613035130858377250605257972398074322541043884591066829714912686690612677612006206945221974804319959007295819160570910537005031263303963154478991065622260400917869347332789366603817522520703716162567881583923165945479306893036075718459302098671984942617828686953168299287800541307071540752608424073173348349397578461897848875596061317012465839380915186809786288866937550827909098749752547347902952379097529251742558206419228629690751846822684369131210859733195485071117867672558766929584091878214707493374342914580099292709240725819335405908410538449006490385166005831457916260874154358479107330258173370053521869983763116353210603282426883220992341969702754967180038674679001732432893784949075910849200060678462476268344182783656442779445816862620269022439072417448358772283725797400679478345420594704192648758370447695578827427301301505406454426591217259860965874910928746911967167444814359058904833577260996358105005283067350948956906141404025482409736643179939587085585796895909194174046712396501933575630674947389559654581125623150219653400046056776324596505008482090084634062995970091319560056101405520345062090724917928990351810074520440952442174629180708990360117653258561204497758503950395531596173505860769094580662101177993341097601612678742279057994759042871069387063465310195415024046067432463436177415531085807275797219712529559721796310814328799840142677952457609683760568872347409589356290793380434427384081368214888700803893003538819147743168496655170665498273986525480440009048214865430343364680728729711287787784179841088548328993373771030631348944877359578717653266021799026220366140607866770843349788825045088344756628308511569904628523983136337929531664913429340613217858554039022752728683961661762534182323594810045438247197078565194724055282905724726536279700293897723181439611545518617813484576718416234932299498012050165205477901332055309300925169778905686884388357187327107405892505110658215258836755006175871035503532468465456502613150841908926754128577736617073404995320920187066830769798890840074470156529224560485616133663329513877086327381987641322452084405749981243352021232288776298936236594903369428890437866764623552742161439242055198561880533467975733973327292760514309084972520963517955698387061984427709766292976023068978842398144277300371848682895410707302316854365471681523299688342360170991786805970505436056314887376292305494291083444342203063428325954071665339176480441306283558779179385070109163468627464757423481168791465563734415435424838397640343964050554321783820050959622791722246944226397176715158327168118246216185907496001536667806627410723520234362712310649386125050809670073016618507044118044451211406206351038661729399667856413523531217003226121480733785634603055912647387728587513263278382318031213937551751281508148830005045381534913854126396726722057437807213787607110501389158609458193498313085261264419192601374306600028064384321784510438409275828441614971476574970766684668389542503304652123113907335570811474224391306056702745169251587015527656401290371303589587411259182933337259846105541704905037646926115870611373422311699269082817135641867191237463965799904597803388323108066775698319372656998108156548874558876908333695180499039931613629665850791665010494641285689690310399944679789538817542203629900776251749401548698501552468999873658033607108855693982613140136608422889492246459392881037259016995861494080692006488299651524884909142829896879287842470610575157983682757382065136150886191921300495054280149724777601676291034253623902933002754566504515919663254710309760550693383643460306389302529256087710673161189803761518390194353666834149631570661323352678804850639795954816828363035321038858213298222600619975608325784588599049295142610247010886974386170030513997430531978759948173607431874385664501206947376474521397187811833562026212932904483748394421109005219645011209794600091897668013231083987894895444855379265905461974820933607573072015755488152640621158127078926885694928016437711273442612269329600416405058547615655338329108119996217513074953371331526093717619951273607410726949435837678631569446500215134749786243153259184805560815629081004444259305787660943986629937733847403613515158415582127138663625607606386773027770581948204135737451953642432464898287852216782201318509891122594506997421122236977704089075856329367735533957664587825884106344466041383334886502790898756064810432733182057026295730351715236725721292733125503831952619715798679163508592304852243361975443055592904323574824259021608087809037917820213674323993551793503561811850755046930287893096690765744349842276138921467773037670809124005409207610504328856362329480381256387353859972559670821109777045263440904887265030524307485784994414020531845522954329061910722334430393459853346177439887458515049775377194660194479473821585085509580262105439886034235356670442372278269628540610881448028861097773539293397285702464175633523748011934376934216506560625738326607685724716732213194559996220956178298108454039138326978411468692586142985717487093466929539214017934823295430234147255590854178661449999883975185064881162257768132872277216331212921070785888512632012362478760462114194462555815126098912848487190263882161324028554805457406048396929830238604794166262751090301832587118249733499965106470902571832827825757616020046791492580234346153707249302395052402144112854971985108007715908911686137669042784350740608244622263081700825533181054165207852365822655594612738286486814589921982153628413071358304975410331006673538192926717635210798659310088153541167474958156450525664530488738681021737723489883580082643322831764788413543283240534391928009430738297924892594972212771994563958333166909585976134514706493180971117306006045123948223706776154219122861552970679651360946278440314477487358934913275254291205656199019698539705881985034767559283132276647876696845307548339014432211319128544912954503401213936126363276015248925057045952412433258857851397657738876566460852784055464207780770041869225988571473615069309422143318442117018905781864005614076227726108154435753631369075193180006996556340326901675649922128125796780792365553181666894827540604921387596489360121288371415015225253203442558184818115139129474581846705375675428250546811764561724344575764061785012634903340175394720503429141900055952282972628207744520784962478292921875960690272014586652002392903251847308673641464848490699306337941055572190348677048502023950807078988627434132235432720447267986628804105121368376475297345684065829515665434435755520323084384133806047468543968072210876126367601608926525436656408522286805393649152858494256818014492077298492150542154621936766248408700858090394100055443473395914238526167713625327217136300999774595524937212840649546119249366773805537923156644534746251207279925209271620158003226630985068423941475921612638920146770474377814556441179608109922436676139667827878133429727130207441567405216316221976211983400653240178551102530605426164510124537569474209498869064803602370336998247302527801357733851142882250998651135107730444455744850170488295018852235625713378076764418753753905510072279145746315580434264026086138649490689136191072912034303390570087857147838598783822206261755802233454079718123759304763834643737333081540047700106201112967321440133982511585131360022849474203363847210095986027145229725823359767312418158622714313380187851486020761205377967123395468948825868900104637259434483437250855476469433451626770394733639466204430761900128426529782611012855389937429387648553220733652744567860565681119824325338019405640321935951850857716503231985406272022320061723598345908933005839103382891372626632047695156776656144482769291448688527198213406242112564434732619390329228258586481930787928083922341178476058341116814096608936111842507331748887594127742745999595365457023504710900361156189372257790439731462503388164135786340475069809071972925707491729914566611172505389970564706084816411926638715662266154552700487256252492117971979319424509689464774699644811269726732165944305026820096580809501766756609588228456106325809931869004093638465281058100402829787521242648870289400388813032247431049158517053199747251738666846669800095847687646456064523158443535058655991182115650903617766562931247272286966883807799486671549425795844682291918077071902591421574845541368599888975009284488197446059390696637267874923298614916616839830972073516382185232554955675886793265013223418583888767159565357961970889982180522071049426041667116049379507416815964443310011073703107923997746650350422417434160731147581504364657573935376798213505645947929999492039115094696923843953554173289642603851547665343709639722789584315875626229110795663949208992957205197080521469386236717155995071615847007329089363023048157778373279490702597676434508766455758811457440874348143288603098575700568563223860313210519244039037865444978180080577168423603301548320020474587930374266149874607923029866708485828008219115846921767931481711532075759617044629501713257202650336020917226053837753033418475842606107837955336393451919940610544770651627219544791385814827465749825096460466077700191104277830992643767218700817258176452328312693911927717745475131610147723957605588471178182626764421568978773944026742680993663733716739963660084579862394725406338791638459954991778504379353600571600377086300937458442961398393360168173944212470944614459204454403893098334266874818105715980943155066237694756282472366295258367090191240649937104226201528919464156430529525549861318897255454777769555889825963464554530683812924475883045573544418129345043170970874189011992437517314231384280246231699664611495874172872731616272602059471970521818928651347262046103270508256602189525284463486060582282604734071633657460106930814899298226885348810798867504594786554658278740049542554250626762430334412634336021664656953996281443225335486955009633230481552642005377741283121638861093979962065615077005365822094021259014870795128052628819669117527400977608123449773999367967020877949939631776832058018488585452457281600141181513682407516477241292114683141988826933149543240806840857164012248041647070465323950171576402766310190719820370652965463409477491085751451109682719669837232338791723143482601697777820113242057699425709656647456412123691664796654342259696343402542814967165066932742135868197291358132089459143857091766578944509345518075408963501849846532458787803460087023905724966548481792698267710997687998454274178345449570376119814507523284708884878273977010577499147173937004591391820358577112342601396387561638098991041131278721608008099705376523697301120252881142334218792672002129805321733597947721174694159172111186060291900542648048544804714656382104081175368411647920956125304108149299101185763973548713459813534680939580148395518711845970747348911708902629966606732663527256206151383837687872803194384008580549720332869365775479540107143517227974665463677563327899592252509974504039612006424150518559658544027669186267361286381103174012703156252558222101561655801453495854756502002915842160114841622575341505907535043060827480489365295665992957060224908521684787945324814279580926733103725048710271492639155204646792122083392937383899507909219121376769650746416134992680310552532888717443333631917821729028112702074082791709223835213429393956067991739408830495141984150947048474059151685437571234448448930409267677820850598969102494925126682760376877801776049860285095011159880481910059958546650720076446637732395996225359264679386545563854246126630271985465313276710321334171172838500676186671651353832887331383239417180043970762926778478353222884691623609410466521725969514726762492536912141287775038894994077361037652604009708931312597690252451577243395044679302389183054005357199405581837233550393733394771638580569630201728360216872025009761448941095920958388163721603928877962430410572275182749870366183542974970408174877651733214530763815976146077379435529046395317972229573433545793745728393271008364450397800398082333327694384660827001867070549039667578470433041561206049546474818939971596565245758734310763464441324590303898685162554276741858315524583389754260902303038934953757388309919947820304940980181202926014078231968233310614832341192609142586349324206366081412865465816659637431387075492747606230814064311991507467426261269215971471195315523512636867600730579301963170575441214486144281881334199808373808473813839110526185969014785825936536267816107031572023896890083255168658844348556211051800404007103514680696447637596685905932020802600189685226793687739251258079241707599219910296723960486184644924064733088347837023072327512747154184044724450692153747833945955053542437443283873866729293863537803410344335333804187131806356598887222742099754203225660795958507119770341977732785924042456236574224604525127525059437365780330065186073942773810561894797025604305876659981243963954397127694852169959689679099813032707760544585052656027662002695249223139551430123936301275491316825533149266578441954745672979680062005786636452255367946556514247627496445893335011522047656862501464053224636110750150298937943199943039533604248822838075568916634564454830390577010437491846227174517745702981151259627360008448860384521802947985447224340394414582503888579973458975843268088619039179359933525085512404619500357542297215015764320482333317717818703404510996533618592722054814671121795154392991356740283821862817183721239808502701934417930554398947159057153252588290044906500704858980145855022340981144746210949576620037430152238228843627837292332095156567758723087334373413190498120871955360277662218115981176943074661376036975409368477080834752734674888167503635446784882684063815789190975519069858609208783616872230942054436132979283780567139313990776344320303729133513220690646165384744047801719830963746888851686871786387462929152116022577217743791736578210299928196067854656976316076469269613394062215292751899260506375858280358944741451115641157021765750175080638207199091015439798313368092518749834185731119379446869595773935415593198826989218768476659484749030362272901080773196760409378894483996804218573918332943232034952100414279584000987977167841595505258303664476360954880590867302977560164276294310336004314264199608813312467150972626598527505150688915071180569416984953370528832143765320847376605077777873147048472655816954953983233737353993408765203152465952244353897311551032480972850040765900719462000998586562330185407302578358527606297352349374714966358774477600542978532753402094111230201452770808704281760806852174369513327560490721936872484597814389396246720285714006480889792281835156951036176319435575239045022857381939067986932276584132801149219382906595477057724912092929173832227596414188229610304286795951082078629660127091111698097412606879064972312232161502591345217434137930512790926149022858806928044517313905985019429184433987504203608547231858855189172898616689135536504039329259054905843519977947415102375144791363974304827533870825544123972858940486990730227945150369700548580411582350337378218188058444171432892470466139002815026949432179749737136263922273487270725949069981531247705106688871381656680237761818853860181152706316567204908342398335748287073544706867211590600243280087104059708520063320234269791671920415393614180323176610939459422972544456526624296680099264498456359818666053068331129421421640497506365583557380173788460664829924012536177641443188037566585387986689448252596985142025866549056449190353365714138441863560419623224570260308958627153669429067576425946676415012073043228241394505693990154268407942818534926620283713761620455234831696450314415070527897039634421347338436962892829376632664178923266699273475017027501040424431713955288598078959302544196509438264827799081797067422279091060906379565338104044867420714234891732067741063008440697593249307422308907067429611722556374735828177483111040029126334447823843459390914536175265638173865644263954004573651549821978360184682818845748116744589884131961994774876357605769637578910928943748215110130521752205323313825268703615267794340636114210489088374865590726197823788457819964377679915454189703759785932700494911921946896444705866058166435605522847255818098292706910279912334880470228364272143190239368530714580399505200549508542268109733342707149582074119651795203890594406588761491299702143878546453007659001224038156267254348966963972962328638340523586928615497891427157221243139944804039725232010016800029397134120282253669544266440435123102119559158496723631722058725749180454264088187508235907866388576324368480103165932521501885387041716055163413750977554829286432223975650865569440135294320952878488872859849818233770530819056163757583181351226600022448142972000814901174144076138588620834767101593249158845194379377022312604794530737046337374151842183851383769613528222223284683054122730129939959541395690147413250017346673898847395867028064750988782675166661855549913270509329603475722071545602452531142995449953117836522687573759022145409913946632737725695371255998595029758238478733519314963932331918306834228814012865781946354475846116893480865736942521505132679102762045771404990729060785196708815296183338593214928635358432933677373523866544402154359892480801207922989928046617712236988710652196086012174441878359663707445054220810546776065933528984297673923832526021745241542968093788838458253368595614130915046195321227674477362293119711081281888761615371906465258050416412658476838801972651970455163883711487988691580035293276643903019479103220507532113803814834053943657969649725496410237911613259644909911178136352923621831470149445545391342357142523522736737811489164883916652384380199358781986270377128304298925246688639667569811984357733238895959951118581501944158358432513968619452026825511586231692787233144324500539137755411305343097785281388029122584037319880978838450036132989424360047050025345013405315280141577326283470046077426930448695638117012225698166724551249418270306005288435783449770885134254925603177219737098530639061512793114516057177951221673035164434963127188259714179673530067491043012512776483404257228193139742553666961313170196038309764924219074172907029572797799317189667607254590464755047406230263524430426649306039608040335995418570298795431831997760973044058994267075689982682426746496986001109191538709057754819669419264250147822672158411349077603124777637909242374618293210379106694564047941145384239171249896362530588138270828653067155537886615146863979829436871996496385371395708309769103049352278828966257637814720630800095252045749173670240185760896560752200799713726331621196230881918002381320528259999578482224073645267931306582837087360724491994871240641739342620958505084773824474680803508471898656904187334071860115292522863796193514834804374900542731671546336918873038075253804202340418229174340194438341137986734185134135731173743491668967039435310076573589506611765111475730275486195404479242608440906131939630449724955654706765462982951270984807405539877190444114588836824171093641433090308632845714847097126696703661022003520211921878710482335998263362536753301800280857012842803286639734515003518294550411663602524815746727269384763974518349311883421293042636394954337675040868470698017772759099960050691585519085094077904193686966965996980867206731730539124908025208592932787166142416216921854501376335737605685126102060434001911388317878691057189611252193042742086910329370083039663243369402957845382214152052540990080633631151244972144798712411032361976955620723093125784144810298295448541634816188723419812232683623552409533267716820058714317515240082534302014261984007946204316506152341497574043847466270626494265846293206263827270201810211505920261774411117876302058111877919552719047432879488602166500086359881266018184732564705369449870742287500922843354709229833168773365193153885471086469596269575378050048347871231071394136539602732910971628233971961801799848519883018516784009619776294119152029380430233756647985556573123296674440562898977301551492780547852708919837496989625811241468698843669840205903244711625067755594084119588638350446027570393974830276447582062281281720902509798300302553211159672616665160602607952560516038595953970665332839478332007098353160488135318641936101928868419948371393412843396035760148228353184781891728401300241932636178163763587064364366069571478809658362803228868017913782470229757091347964651211840071282729413141836609801139620416400420061833241727130942406976709417343120636726029088572472117455697748258521987642406443078118436905884773396560732413574477083922812370353815329536946709954464213075987143807592715095519333184216348175719114852964765443652420364042006022120213157843936569719680025086554789954227775312677305173656745901478185124480890892925470447675055575300535306014322979196190651539614927810023520970451868415024613609992015058215532340564403955646857051776147898384653894937639691103956635228442959090356960540679005142024632333508549950271706812510230433873025192002631784270387428532698454314985608334247432850729641370383640599652702164566481845900204143049112475868624717035480902116925378232499735779330157167320439637523139283841241225454892914958169985359449053648640863528559949096256996760121551601836230677539560710813153898984496677418062596925933380115627986624839094748192197965358208411352137205144626120881382977506995853535961824202809442579405112724356567602770535651243853349488201439316185581161609036399550530071566318614063063836465821431507044641359127006198090722811080204405799012678661113407872682296741453133709040671847132321916067895556520619813397202697492594629338259642987965772290559433070182641471703115021707310041353233059259714348031511843761386431777732175209760704460397878127816352850590607136490831100513804789967327304788615539169431780957735167627970300050573486337728502986606422871724879823773514187961641011904440485876837454123338379313186675875791582652131288231768917299306283435705433271495952975851608190223517705773654566779009455875324853429111198940310602519277324453107326085625694170235238732210076212444527772669410455065721717226619831626961142761136045839382739615594906807889271112363584088152550431995429663097620830930303348853754380554129344241440645598901340011899064121553217463591117752727921808312772380880934769682940885655961996931862772962891293127599185761106094058217048243080030614609468976515580229577834769722132624947611994512526279390058075491471831705372171267946342219952872718281513841653610627000362887166619826053454660861922459748134447215756424627576294832412202159242721007589303800711126665391315537245448682147316024719760463796089054055411007705227231521953952293671874606696013869396683977460737062903288684819417452748611140893547941557530871236197476363947249279702494446521430106558803237487329925951990614649133472121935347757337435678455749517944001318662976313541212387214684836722895335479419671183593997708637299031893174208659162598915135936159190782115952797817542190216474956785824036475008953027394180080619760471899305058706066254315433609536055825887602884998878080449933352284929360534218933522366769708797043289936478455434912935330294087996998251092607735809458407525141926164880155391667078885803541884190174573805670717283896497806032657968361018912538562088054816332429825253875233978374929940934108671250160835143044754794044646670793139102131156769050755605805953403741653527868517404598105406315949250654863165573470251581397136698591885879742802863801035916262365874774639701827899502880898807524121673800275083323860456730822994892440343863226207984084191213145082430392193279844667787187010439753657612988686463163414748051744496954349006315504507908575184040568157439480162468688380292419308865315281217793230304754130114304414271502810768021269350191291932849261597177478897031721877987129222653638476599266448572877145089080857517958552966838915270539989180139686320026306478809723738684336737849076686750061614540453581041476199371012913557975691037735396850509660839433761445446713260429131102686468949878325880216092041096375310469797345747393699655822234467141016728978359063887671955226446031504356016839261335197597303380798680754721611981435292663864305579714511497099273613728825970011857857921008421147051331593598873967039668067920867763837362693871258492857811243932637724441743431513548220784697641605452642580681415543477684298942787015531629597623162267228762543410556230199653824063260643572666189689726642344771050287512598359722427296743533141787099548362805288375775780426138184211263416286224890746288886272005665559172889054415846954335100933326909266212374048787290726808975729242414699745543076582854137116483143997798508166535554213343816768115650093278623823159754847381875026913253416042498012257453174519153522283185209648889930748587069339422890683054104753715815733190015869417621162989178004761887432517919894560458765871237586992154118900121866252026312454892016505247935964283128564878892599483640692245359957783385658231538245547369498970232956216158309303193618351243997905166127680528838019704761518427900759985879557169311695229402589831384655820239604278727368125594058045977721011561959799643612001251800264184517376155953403634201410543154274395379662676251261418593581188177052552534696733160159506249007531535847070245150957896392529507221863401716685977746138881657863388016956168293417004853148504334324363998499207295925734636516373667776883225822357003627000876032408921695706841799883563063426793642956029526805202666566397447771044310968065150455044424316525256341968927872437219333222953834758191788112413536726517905850464669145216413133852942839759082418802888515848962198047579632906498004541039324869736889837607841271245681906123419305170179804758060891541747810776314447869064364017395431136706284856907323218256439770629294132252292608425046191749087604320454188014519420852098548833861176354568657453055906315335742909701584046522290423158179451505363495186715746220294648826655199540144213726771171251396149298735185397752208790601099850143239479841467941766373221204735456921501379433925334423320905936301840344027442820129898514367292878820185682193987868540504432843639038003223887413167171945353818235199148636127525386004691525207111959743303791354094239960255608961317784020862272609686775425412200487544207972927389855576678127405239058606790077481058076946462365767685882774337544525890754717582936495850417818778517351828228071761897203731510190117828320659435814374142312849127876228948060380534207552069566411854355193773765000817085098144193588846356215889591496500714920317131291497722653260474472509077912614079418981281695956964558469006156896140594733011196421592847839825405424467077433838017894106718125117894676949713237038136008925963657844100134112155124359585805217179489944193335174153374772268927141072108757707472218442214180434948786662578575846650084913440920723780683246300157693140999734992423701832814885232634834132879117012225870693957659445612302232669803159815589097095974324394487375807185014877963284825176458526627421086965200628503230718104443853791673260866906146508547981007443011429364070162937768326522857839646226839607249430832800521497963179411429038071855031872795362660353242430269791025798232911502483447890023127546043273833569330573530122399639924158716461792145873407738299516766131701896278707071549551222751056050733687398475304569137959531105764223291426950372192493334310850706164441883606008582835493538118444345218104546554641820787016322748945024375553948700819333363363012162916079994233282509256773226082808647286868754169968026335867689978169806659355028907161217659737335418059172145731431104232048922339692857931227862985649477023901871595161793340674988439657391661097899480043772182615362593166483958903655925604763562666396233216088394961205092624063363063841416024322416477139771015937953677031737602305022242450481975149899379313409780211440409279570587349952361137384619637793315248938198543403208022524043055183460895322168596232459629115217254859477358495041148813687353757149176525106018620066002098473682071272768715339916803553034349621914161946523036080951339109998559385850086912354592594640205009627191117837213853906948287343130728124921831324339624563937389516007383774613444857377177610303377410658469820859446236905594475492366004484954453343684871699018713039018135784900880073135409924460629912458342853328298077776221308917690448054028872363621569687518351164188892453186861740228973818869917090415995341248908355467410539568300002499841745965862336632568245849111225770925840026437642891626166332461648008542634451162144373973943326747521835628621676672472586356297132477656846637439872890208676640520569945920449951821566319281684149305897928941771218630999444810244444620224420924545241263925839285346879702512811363482794862927666637351288982880304768286661110234868166265266838042530538650917313093495645415584893058141862314959179057400404994272947734930706339269128072663385973615915781577186774211319510098379413137803714231414836246801801608300745113492872776449475354975142871411273986408802756536314125741150182392687905129049033048843034507508237001774841365567768475605586399755543012055565580144451564973294200807870649515966162661372032731497486353095128150383779135673846018124214231192225399264944140062557608419695884470793221313676249230840804618515293052039027403913241038655212799463144442358501216116260378674428920105671297781934444772968299923033996606402544238736474048544807233373898422847250143016006914875965589377854744701094463071059518974508626919805910058267393335900048866142237623894649221919519025095469317172630487980662496727420934521156197495897259467425113058160911841770030533966350658491154824130163028979958516930394652500936932177284670052007627991494218020003189574351737979055334272704326927190191450989330363058522841350715123184139617529448951519925798969685594664184981097364985968688695927726072783651878055330852224347332584389785941411030115252598746125852432464484306419671822724469379082453717503549896334026687561310338761108366803302655390375729736504094254613276483123826950252428447397327362272695347223845939236341546612921400166742556390928889336689919013019336996601553534553620937331409374984776809405194319191878116996766570049004165862827116497142495611691794661778319529578307020145324101797863704228374345774733715788240064411837877977685411715871821938776740266593470009374317195128352547088382103853466505103132122693096579802267270731639844714746696005347993743689120556789138032866167046544913404423231103984652473731822094656310658211064469266676130346272342912857456878827086516930520733226860081365619942866277716747923194091750789267560702331902587486444940023930717261078424510354455699262832265196303026618573061833567988376354045384604223975240999780873582259755466279892442785049063932075689870179345226295480040845111581632135159246799916490263681812993364177248905680585754337827508247500327343528787590662694273668567114927065111963831850967796142500212743078275982691345912534526293699891874844940141278061900001473264455118024391295780746486838152293214463153079193738834455650818402302094317884117499450285547962958305195814539938979697281011602704630701178984927134450367634750158681715278795093962306688145397118835745363107799458101549031031559436796937217557731882580354432188076733593790108209402577682336055989015690240841866959071966269771726439248700442047862863988748950807353697895450146582207898953163808728991924045679666137792797596184373095735326967223815454359472014062436952632541419562648955636584570257104318332411811937314474255295920035597688914083206619575678260791969286754735074158240908785436965500365528629015012029873116606823731036194016569816592395561342242898299499411002698461552391982749283994251604401734386591790922465313302419781125782156162409618869463525327340591376089252774369530567035398267519804849672389572818531895331313883084038947815512480241182633284130810305521706551327531808500966762245181450233034474190301061912476872178096907380857203939396439940666758896143092460567606636718652982901661929509943264713741986874064972053042978257213854979378477493358006197351430015907719569077696511406398609170839458803230059842114278613139172387626492771141920495767554810089274292005942635976124072828134784764765333998636583586412759009444673747604515663875679971695543027693215741363993699297242607263769753185280522852313498097170707161641577103055086379361780985292605248607374163504703414634771105885085902710811681099294314214918234894142165715480356649856591049814718726716668521325987855785748032381957910729332508690273332213599837168250556638104113541836712760102297463117202999284849177620007991945050787110130520803173762262176459149852595767848526656534089397124088739499682768351531499592311882244132069321307140456311359023031920266136497018004486383819182659291061192430058214173613895445462635497840811281001370777996130107415124717092118265346712596780999897516138806802758428994712752415176930417125293026359511633509808885151592442129732403197744957351986300885444590073144552577506516015172874706265552389727679337691270573813913488216616817826814131928245910187207301250104652036485181591023165036309669957863143978005542588475037792469492622630453953850714380346986753779678824341700049327080481837664624207332963725031135968133336004209777409899304745781430935463919315584866022708464922664716744039436908304513808212840156205208294701234304817689029993292138760213632029559278041048859014083232801645818468674538887680215430434024324741665613733860292443414797044752265405695974681555881204026946709243643739121978608358348936268484751879380646732481428697013094020818976170759020534668700720161094854683729258306357086894250891556781654907817395495863876640639835885375930312787481936026760603962377436786399669405375139977540802782711853436413739072935833353770130033794150684832138604191222450472282120373911008411131276218531920826112612412708327629558768202513162197974924403049022191572536447854983754296454589947750464301737610362638009130297992944923029254830975457158838945153283629348988339839895628648063238093248273577108087938365770180190155754578599865313104243008634402752772500958522313152171844595613092157353985128018579345258127600643003559605379246176495751492130994267867882673414264603144729229520569301486407430826849344693173839311298847926204350544836165692056550528326518449724430187356676804859842574181564202651944911575879142145298848612119652486376855544387179924217491174426981911283274516925006629468169476496245267526336723136343373267068156843318110435109547127992427526046108774860965787621844573938785008178001816590387326337437508090480218089561195566450479225035322974208370358725816551631636851139408679819726098207482189180502729325076022865585710250842422871271182686456621208813762848451139304386043453327550724108749554649488243251280939500253605867631423461162672182417786519451884472125515522395284321713324083546486719628227135851942536840426444853023215895744393104603497465547771219719418424600562442641877586226018834034353203507098291281421681263369729219685384557502928799477209193370365019655869431647829930770433786747855913680933357922759699551540804343294073576516180693530353082722809413418164407423474475059825756188355743945333460368232548428228976403841190047757054639047751798079197291955137392503990230674623488443751637592168001830723610529518958790251778806111894102277992243801306373459548507248847091468525628192678310960001945550866563263759620877151789749717847133035606033044668224501608186343949951124380569720540795767513328636796162883483397827345081424839655722193064209540549686971796127638744236762179863112224910718883586534019461301059655662373894631786111439576550081767840280674227545547971432912343070425286471563579843696528537705884663855883884924603630812754854415597661142585819343983782238244149247360009439979560136373714816968724941167492852105719686197879279247391990258255218124125134195042122345851031900011147943090326734592029909309426791831122624313491941638151137795777142943438704766238596220497475204505821457753631838071864573826960506731976369815437881671989269644725933191013078400364465780696088742556598607288705806316711131517396844105900842377259805570778706231573369347176411179815249784337537517333810605239160498198819458366768572164016038595748077415635641184941149935997465628156231969989815508975340718189244336039082173149194577744195909231564722286896296720132247024510290593617652273825348527648582508281086839198308866907951656280317788962463203725175707084404071374174985943464735650632271027020653123922550033926275584646522183101419477689300415297370519241509946053431648428341167421746419753570868507154043022271094222041222521517365488936131034748731291916785112338881291672426877479514908264588382310444739486897814329136228399954369663162339112160622174610457097745781042308257692557132098461823490057865199983560948704883844129065287780257286259972602442633005981430041534545595734894791043511858231445056606856782013563486083043147601133248178942833821368792502580422028250509172997850653695096516306726077618794091463420216926639752266594904631103607870713490764756787776585321002824938376636949723584873899271400994350133985140998211747429426874554548380029844877662049670500674105767841931719781749815310819832499056947746838318128758529733529086452251840060244401660439228583875739684673199673218233776698761054007276572594646782130509517381967541534427933604211328301645018113849409611983797439117714773827050032119618841201452573260368667067402922324563545561079471859294065404766949003267506555563718043247950145117306034754837853606360484233434685951236420455688885459668752260189809771949270766133922412067033488237968156320769230302773357846107162778321706703256038864608332699375950103389069486192272616962836110098477204083821274541458258981431721305186229463656242441621477931293493663877832115071124512138206477245870159072060610677147434784175345264767781319066247081739076127224942833246216331558021343650023236903473670887687428149967554413607918957851067597101676348302309720887311880518265215469918836572628486919606541085552067369821070102894625822475578790697352239917596458822637231719559127087385855912827268327898962138157960227887745404781802290723418850715176636170860565864173324456802145636078240616980909873144574777212119824206641600991032783674532122422108384203918963004182757624579334260244176434559208431745930787365590474733293183331966277384387825898114574542907486195409841240663950331989308389559567811508447816841525118212221155908605565903927104510180958852999397606337972165582296855031908013998753825560607383275973464498485114762343600749357581845953933857817043327110297347506247118781756525492316696186695369984542118254741823667400307267794831878167024425487353332404530546619230195534869022884772975131965076455632130542430266405754694310582972699386119789034172096567210532822207849474557779425795971271948380999686741772041080156853214880649207089652498458547743010917410078100961865653865197844251968670264819361595024386615239106579849188086603299308430436417124289350922057828469454983209802951806126553237925689453317913682284224846040070468405634766911171424998336345397977407601914825299106411065054451978531387341052561100694053559314553420895239498163682538476736655135928480840442482541925471937336203234926335494395895619548967434825926918053800049592923244324209175506245100808954741435604065403444791846842907025463854014144709797905382258894005035290680765810467098596666241576057778483186769847622398135389910940917099554899801122035854654274722683771903289207025664818362129195035298126065985498354218844232729258061048204208728049813926193193154910672195196507984891851120972716729033189809972089576081889945128514681471173175503816962622153414254533672673335727729424236537278997725189979852491281422139805332719371535443107249573793912210507046619598075080718701601138719829251861053045904604953805114492650156845965985224047730514621795743040001090288989574108750275397538055019540180036301170879006495075734775052367975293041175182743600067063240752511278802006174608980111171695035593440474619905079032538334338342020792474289666779330647790434408884824748385842322448152644578516473446338460107411647453763053167385588040660824521026650419872633279822669262049105644442995302472525828599038749569485511750641732659220816772557417795626083173055743756579875784652422071893169095822838747296584893403719015532396742050584770801343076555243808503229699524820669858783496356142705666344581984735943327930993558148858797748233289197005966139189206082432697181356087905027905613598636412490319811190361713839370842272910091081919591447208164417289462398580147454354929021815861318859604799875584978996210808742672962093996965699962862464336424708265989442022843403605815323515391893678777364179636443193348180038988239075028077850858611922355093037980748207156941761551776825404642453267501282174773956336559000423459192290930888061533251573350111170226988169540905200149437287465475833463173346690391681926086404585490679410355098047303660664633065849681497360011167121758747307965810525143401589476650064330479221507340907599077059127356460464272588453666516149053167653007742491825913794270435449718910541962149018559499963737300902420840272605340392910036921249209545756120363501752348218695472484800679874744939431521059911679411359489556960660671328522597248971481379449588667322697177311156759039716399572885787403668061569763238274568900302909868156964361906488052792308756906403294833256387470433131489600608518360420346584409136869120152442742556489653872656414795601506283549439341741300154680591296437402807795407497253946797849763913160132365800799050731727992598978837336200237045865593734877488719243139746481229700566069332925059927897029260228565785981878896511727045961766728821287889698248274376780251058149720103713516761424249065640017344365945317909378812057674593543038243199000624793902844811782757491994739902623909739103284280071169671467068450720241191614141830408872521920947292909908633666541228971383481540412993435513087078389944920134383838335534995612775182640406223512594772911909168769163473420977621326404486033573562725903549821916157390654755553785165337582023365048991671107362698582286643183237504592124168501594698453277918667856443463040741790001045817407751934744689630376321396835433059674359968616884976945554102686296686482624648729203399464034826553959148887611518997602420054417336832581357901396492104208304425873270671762863369403083835393655298482250518363839909880900682980007104290340850115715773190981882079051172757232872343856127612276657692693988189667807740242895501660025798888759439867786438692226280368031126969152874828975548646952275678878376659745813534626839582886794599608515494596481938628391933021918006413610860328523588542750517947131853702467211596258250122631600231462368782233353669445155107444137538568858851530168064961501669860059498942583704418221741121654695742233112079900694782976678792691235203812573431564262198059932397900763971894156453168083797422405978861991546855716961513218032472409418568072300244470933752251722684193041659445908987453419349736018016491043479061876657143718930169796353729771831142421416957530781269165528718672023856575724723104862484644933112904442205870411516284369894225276345670512667086344233782581400124540845851254700090958678061152891694665864271377290680210580110272259911998702754791894228888989560582810526133255767838918347353114407446209911926076866519317132582977376357654901949825144583958878764894012832231973556657785125925674146959892337956537475708982361046982334063094571570490706476057987832516007755130746333168771042308447082929791969308685647943179747092436699311384195229631419863249808942036815417408862758432869816151323498034642061230330388123643868843355333791622373142221737613843478500810749446908845120151002655870410560380553109594538839525155726131064788058046640670476748204300822833705791366599887660909459831302027143726419462043750945084862250300222937087855252368416990662955782864861236390950991216032639408825862856390242202608836500893851025183634809155054051507947510128252556464890384979972134036458120542567994667390779312283049575139049977882033777308889891999126291182814927029336360419038396143089112240155187699512044591083731085041168264831593174269616537835063297543749063590783893797689573891640929465117791227164536949218084702918886115510600755036126930436040809239852358311139130836633840483135347003593203403557302422365288807900275129206935844843720221645703499750837597923017217981462908415929943921983719033841686405026928713944162591732474839177063451894054918589066702725400107076984433471631619575030146917675491790862690962798751949901642150881663204845560157587239459407456695620118750033702499398166842739011052972665040999949551071421914858666616347503813131894569631843259542068461324876403637579570055675359218042323763062083080391670420766571912248654181716426074928024773036395585636379466879760106518306192100059299848283433726866970620712763949943546612334727838719679705526327685775230934937196173710602220461601665177965066290744739402057439073565716878155136613673371068131685001431061262905524482585056273585334961088179468435486680212490117614871217276634728522153796335993614445147755448494889567351455439958620996070989665895976390168198799089625625964458554302248292377408342462026470716563361602097340095574287484122135913179820416617272712614618981583265126019878350455152273159589773284318696472247457058464843552206031213251405844362829509850649487400119259698191176289432523079740637868781800427020491942137903005435974460581470054766993914954995545216075623401406504311607237996978725900510537327208239774531081225607449711517429240550051248766694176937944899803643461923544554951201713547102457109190486902764385506987814192862133268707019114860970979469696709900348336198277845256022952360841031819412331174502801679337147455980644201222844252914726935374157048449663288422970238195423906508538261344000957128106087801110607229111725957515426126909449619181820511111700538060800032371954143590306469824963550956789640532161380860687878473876605929529454380821210710925370566802511695908383343720586086900574919662642374401690323937934668231095728667083714336961854318511331052457892894454288026164896844297808372355297623505593212505726023686426809867175802233887959886126704506955771882515079334659791252353087832634428408577504626365493267815501053641880596967456349157864334751799781654602192121860402259518283204783522080248252875948753230142847140469099084581932947338499536196081849999627291724693805499158554383892105984218075668009842555515365328439195866147090639018427665029634970435611514164092113547468163837839325296516163035604684843338780440939742261136009584540374822510814445576365737477260596905639364086252226570429877119207914094637970129808950170442290142134969943338390051842773270098427061157447636042256646793418015789997213021689043200343841237350594295411666250776135574863283040425471942871938864842995878200612536264038478331601074362038897253503940401074727732374517536048282746880143666747425514043608023685129979668629794661618833745744590898173681364067921424628696741978110206199595782605691800585810698554665343264433904718065930285050080820623114376648483689184023749593259135271075929135013038425361105786084079060644439145834077442908565745237627063765904301366892876511205575824634941986818138649981176067895702074157317232886908474371392495194093453647647925470488830834014785482408170646984775806029924154622909897177629671257799821836789956114242960864035950606725926088755569265948486397048011512672135730684307917645220361059137877510432440130203221032432075139747454949969227415868690929749753964222122294531181527111584336623238144655325550528948789839820351156554616573763529458072312484422257186803117501991540982389993584649787403561215210586269950195283768207985677808426359656249884677887938766141833752136722669433920102964820550209819867668332573000533295708920522184912081796926636667847653734418964226266809539698307406387625369485888703503425464314028831763948735980954380063412691793194693989726810998700641212959545826141497357546463601002721275246071161661089970685681489055013165255905261351479894279336931110573656010460804197527447507753644161465824744736738704669326123854602349809483442330991730327993132537507110449365077758233374259252594804546170457449735809514395964964663913404442396828209231087239926530481183025420652947982166817713779971585520854926095389881392693656331357576316837756496885903854828019422179193080939944086676584048613247951991778078069539430076969383428937291160848469110602567340255439644425930765111994684279007966760323519441043431162661115651029420920485483935402613785103003669513306444729422403120066971886524269051103685429296565276597966220302635906666207653944180446101852190525671739965924977196717676590856223757446155540933884188782347757715894717930616575419332108945399475274347927908220892236398988035984819071149828414179296161276942902361872299146165951164410603522709538358083886209271003215867132135380634941578005395511691416446753074692439732462611148309478232524069124873019332785483225464441286671682340100528851590666464180565873074627412446623377759000076908969655257373329648017939597907347170172831115109789938143346295391208257770425339178445664850874838802466443386900640718189887757055716827081803314138139177046855229069206666125337010861501030796126059739544670805940730692377616702252363285458083572268601222728892499595330144580373919086707877269741812651980106570729331651357113787990544780580856261971902912300529609998040389551110035848892927214885176066644506269650656138957357929637850166857710736835916038748836444640242193715878962137185377082624606174130205627846005142558819426795910900404398566554480283789113127681437635732878769956028598158125135995470178757135736863437924626009221797072413578501827988233581611841525828350671390220110580399688152079101590132984641801069436008637982753410805232216919134497013299641507351652395360539851732214539785013532461200775881371969984154818685544897932521387117675240178679332224904311985762553940294034332200854038612257223786181722514504135028898973030314945242734371517661274101834781641482501702542393993405350022162771434949231184881863940273758592253724254803268045394286005231221729517663880490138205898739748752559354339213825575493847051145340448650964188407270114389517003253459068965470340136988322721181770439349793311035332601070716720100995471281279653439542026926782998410084387224481187182676269325440656970438447144453998136935839278349562604193917384656257792389682745721678853530402468778417877337549480803530765311864131204605597979388928788375873094198545111767650128153374249778991783776837120800307348812374788586619062298601637431928812853020343384767656861483011754221158186133910781420279255148576282690265269865784362075763091209107406765915454827916881435156181875799677308174782955655625763458568728107805422635157520094947333471074012450532224229121989180568601176922036092599624202256114834887306905769350974757880338634660557153813715917313103902169306834005235370813377438218719587611051878306959819506570126047992872444230345746316255715296886796486146789432547645929484708381672161652241604905099672885328166438541415990112646877540576865444868243973275109613500478223504757792079435006817829585151101457628547550026680881399354862170566597808581100841425255855583570973540672180742726058070463573906807072820356887793245988862026827377633758962603150095195190935398451945026762508578902218422783543988899987963597048199895946121650627854943792060699276844476285056628977432856687476346324457764702931718231231718216478911639716873192348157589272298127199310824705696392648257898553919749628198575427072166305023949379598339181158584084511540239923358730888762053070913147314628742736270553182596654072108881503219989203223287422545870598601047795960432968505740124822144144371880932707195401806981518567061483389934549550788317304725363148768380961326015838424101320661614288365315557709949610999208582328524802768243197666670710267808106046915721363127714504230315294470970652865869951119856940359615353489814273365424266077792073835049469783215776281410356100730086448607322014851209700814292649482196534335961825736637203187797099882744615211113256598500576231672702089819787113757474766360274995338021612484138252177363382899566125241463773855304853099860256660737509960699454420934386018428658083995185208354144169109074755961757586570750025060586535815534184630407755146446914697702187394637309115272591879253910894257013314503776263035658204279706848754198709697418226255107171160930149611487710974773966517146244019702036108256992855063455252811355950945985898926379751855082583830813062596274826357763796742146701664606097612364719321297932383780973316901292748434853334982632564209895655392581186967297955398531392250432154726486324107738506102705312665354874929379604819104304163313361699312693802944840419639999306002509841153866147670395087540668495611052503839792001900989399736334440473445205571670680863149237330463822349349785033062149451105850797554657280799116516387769133270659511439438604043864652758889048943999543042767174660151118815585292520637423465302638921746301240328114964982469699562783280342359637384522575610627325856599847697324518293381663925304386590052724426573723262013050833172625506267713844502958742446690135471000364313458872670395498174893467483892568007101399576247251844580155122172903933862292843802475980590842381586783801516244032845809148315805486620347187489780849755138662310024246512451464820975319209248753516471025594832542248352991998315607212376265363775621473597728163382195380977793130422366544405242876378664473204555083876639082803989824096554890038697842302051290770447032681847953858918876506687166671421963785022673028775971403401427064497718196919716737840152073941740306460280181600155374826239542563763486469797764677437664271247039323735465992391608374096697612673443035786165239070985842003358025673823924944480771863917288617943447658092648316414339536521987364080902200373305396246957363746122880376268171047061124198690469041407591865457625440063431701394383195337918867766198324635781305409575610114954341121855285407926125308732688001563611054711496905196236969495188993987342665177223466554331492844987220991291455819034162290951684186322044369183623307362443729464198353088986838063288290496156106463103489475634645063757746056985390377146804781620507063380223432121882787985949949641571999126146673930234328705800157620051659547242455480857323906762252919189193528779925459059757556553032448531847425702717733031020828123202713304468784259214023945405398531144240577589668798168790014017972935526506628258830584416675073658425905480755219942218983013851006422841929670940832313793665284727563490204142715813625165812542653886278582723503588490438123726494476504456033585492118663802708579362792281666397147535192169695598963581904662990628529058756119930345586330331765536729443909628888195567598055265885232994517792465618283051669777035986859523015199447892253462809490537401261458472939541749626679190122895806127614480808038252931630812923316615830940447269618242723178571138192230914376280955822793090067063369443154864134645238634147084596392425460211093218678468409606560670288110819414643843235079562007574001739217776170719801157433072612836270900413295306427888123471624827505200528016193483312234973359093003088037374197301912220622178382564895747307593799102605326181179066414867077188975719169375851859154238429094303385132618250621653124335568616712482664286158020142895337539577061276138955610825287562332787995711606707646753431152862347905235063440931246150029957583758361989205601398471461507822449313738263058630761124945158779687141948704636584422633346640530297656327086135549569206404804075144859300048722570319072796325373512647967999368558722778235666704003289862305330309918236441304859789555952798867970527464262891600403157206051606228580480254012756059018477236252263516294309014045480276646634216146173730211016159276410799617129505876629007353250704229809540827020711952994979508356461721215735114920526308150177192040303787701768367109047957336836367609506545551766974589364763430301867762021661602908788540490903188931702785788005279258382014995657910064309564088160745537437948317288874730312820459940596096884072686851374027960220217761081591438122146539069495135070836856198276102249466427199657170957426508349495501650909156821979226979662520594192027034133865430038247454579590858472767072878892936015996758540672236414509074744643201541393310246044969909782043068126238853113446565692188347849633106703344072460782876671034128580301384627198156670147038408029213906758814898057972793268916891879102643468799532191986641569640796159000288974840354468964764475710841961924032671456924054896520778301367095722340746653165854211390847233038754541409485412702215972204524387120217552526574817727592153569469109878043432887381727064421257574822572993578839175230324479631848813289684998695350558692785885263305746027024007858125842364241180602765285309209463207603335087888162343079056338004305693602724997569654978224590133212936223794054248103585088524120911827701530540219202680324104729183836898067333069153672204795739872626679205535444799281603845257182336093366367908281417326372840602111818192005496135575059811827575412437132057260982394295576353730505881730459640184654337846748316906690949070642542185817901320562758370659084646587694448256449206228048403233164047786306695948200874626263854645591191905859359577533316353299979311345341152655856233396045874289101292643817008320873475369907264578299104966219005219935100342258393299916828312344342985270378190468032522135833434684070191659266516757162674329917915012584619656643798241932256088014803609169153847007458406848879814200352210342313063085750470979248881002842633322593421149562975521633284189168334460926986743151970001707453435236976882075664367605982974020674318601066746030189613520827963664506114199114193560435465254752704727474603995655498389828495574392974684211888831741314224589088391660116527680397240559512019468143254027962020132786124029657565434007330401748538632859440121557720207948923318024567912504796984603893791725340465064833869676334560140888394402315254552534352495495479800118021878794054337356107870262509927812409801493384465026655148021122742442301652748065161839809000422546420465421611047100588708834475913723007717229582540534551805975096461866425306437736420003499849542271666498642297063844187678445929148408249678381342075412852505264576675539225009648636393514871555064305749814972411526366295922924484512961463337374049779155479133901081963565399447629724528833955892672787696866874706407177596114691716457701657828789988674837742420756914015507733662165237947942189377591029876052611165400598170891283182180503791238829082916651786644850113139625348266923696475425644805029967866446442214553269514112419630986225493285940822598270833688298384656844238113521700171733045248020239076618262690156972828064144171726274501471451981186414330622690818680392684406492687925605392796407074242475758703523590531027828528606113654532470385922290236982417266497033202535567506480405615008450792438161667194338348401399324391417258435041293267560213998848956773850128581864238470026958516718106055946268783223444965365143049127765225290098988443401498225852454290094418641284361415135734020815420789850345707836427026136481108960724186299161047959503846159288713054521991236272215870291388717335335230770748672524804293810529937374302765492034498057877667743229047227507533823415318552243622041581879729568394971459269085470723197947480980580944773763370745500397563059785671259238823498835196600917339455278579352342843138449250744094302839086698349564270906653567334409275267004848250977081034532932764607232403464760608133751273001023105903231641071440995630955240199348698970544159961037285144477730284166709014996732346372489424881283447296179736731838829664628481614156455116658011841269091189211111001601864391697933010293599558060421177369069751750838784582707207262103948120419375285130592446306705950869103318621849409429303553163797549570941226979215239174986736438668186635874620739694999209893014680370299776291848366024824318772993349139746982842973332455256125588511416432644996565595538593093048009624706039203811520528873511269259338024062924677196057729555717330547530351151025354347943327826958707319171683679660226917057980934356860789584190323501743064582113241525675639764560528344588652144024661620106917657668653429662333242127323801212782158397952838084679603217472965405370910910285520184628919482041982528298825107756656792582488226157396278776070015266271846172387516974725974637993061244592378879168662963790614620141290511807045608703992759150998092701122799680683605799086342239176634806500298558259539872660247026830168053935161153678217798961397201480937340402961226546678262881631414429712829961503449570624477024726804830775225900105919598772374255335459718238744534248464633694734719244604056362250491073526430614690579748750457610933653836253988414774278251620651444083989742347334487975660014243391061788464064122006750494722174318091252090833396201714276525338464517145278098563439754027895449947190804114985226213072935079852746868166042134860160678211122938458817322973271884857153841329684961764597462632580936639800940838018353332307468758259190953438515489261100575919750095164082332035495704986029396327732034678431680951194772381500924947232878479698274099746825813457792273214116885216643877142100473923980436511874725228503472695784949899705694271106189581571684030605077522250938969695413859066219943444127631303849258375690130273877509246252878879628057752477615706958668258464698563872750177301047056727995044227700820340282026176412976487474248318623729249538602389646515624188725546121223217099703436557781810106956364979850943371260351417463056782510016723459364475905996072114515647696288095179202922764485430040874874782678651797616237757553038154814252944059568973026352425228584327235939995234817305677750740715650182787672343032126468989141720566204643091577419691772857588219583944997163918655417259500738478602120084478923992955181463889675610644713339913314463719724280380391391490018872141095628136209206708229289673093152921303529930273296395858275469454524690325097186222941755793457214523000545318051800550837821370790514885311932975444753450850150550279176118838349381638687367261260106767665388577972393620511595983345780625352981568514108985458819223864877754359261354019716284017620504766842665433068727841041437118767357298973193080397545952505375812929746084366578731992208205328678385347591036691231251925948124128929330195330605464724178974271101743979371858659152589310650571090112308396802578064430676877197819165902670670738117071517825203174436005936968355672058081919540100497477165239219669644763824184628940008350531054765628503709305884939814195818541054011787393937849596698953525322554640765761394594121567223359748985118760163216011593878836452474638748612147256304218942294628503586520899272372552482917418098731172916715333855635152905944974432017749682532063921133084179785008615619367450105267873223634855083457186691801859149833037876809914269380055051564547546092002674902839555076867521223115062842171026180406854710709449132431728378043764827725930360430777063269070575342797034633757304129504348781302345081674922010458906005205348977978634479092756299363936683677678800776886155503703686921875385482586669703618991570265610129206917166991650043064910402385830677584268889245897980730729074932651254344720779746763355018031999982800492636519007902681008367306069450882174035014439324055264889075042930455093471965671865981375210778178124706345075415204293263199391779778769318761882148070584158044795894032333977725414922903478996094443070404497423555643846703156238092734371744531010388332010949071833329234208023656249425733941380385507077040414742748461629251838015740009373766682178820472650701222223811851230247671846528962081004162482529469603081268774745632696441950306572321207079791592918121610887947731628477629650776257435212327959603693096706694219822745429820066039483276612338823407578416410199170922386895988211138216333576357289909014873486601639292002077311831668772956231185060415951288504225999971064425289376739462483653736909200357646451534811949170146178972406116576595826076900494427044612805598681350593583325447907398433119130681689422704399623525054546101824842467355823233238208360199553872429591055949049175091890731497176724075416030907754725418319484753498893950513041539480201540386207099219625673242105539995415454498396052885863678474071754676457044643024338306600794706174768666173652633713062233038216463888934249667714234649644484732568226711941715845071004682607273812753310694591300049338623789282548082589415310049655912231196628981356625043184967002772915501563035936510688677087853953691340503451558974312999526669287505294407845540052243891864050621711062385147086993389180532531864798859440835509906829317985682338321880820696376809112022577219488542611804612499198333858577967749870985200356861672696118340009748284003005017422638041497406230272783781540622719115808635813249585438763775532454725942096092487891645398858341328641047513146234635978466967507407053719734942777511160678265699289907290679290543199447866853518888166973960988948862774159367711248068467325355150268985293991070568256929252811942608769797882101700869736148025040168205602995170080898992443194421732529246007400685520660834300728362556950753791688555254727078741647565119119513275506376189634075721953265952704169946700540892387331977031881522279570004212381573274857628723651705997692865585582401936487137623694348452729543249553964798840788964837877811085090729137072197600325357535752997452180825446978794841200108367544185014569735049233670170479808423097705201056780875868008971565269123198799957984195034625656361941554728760669499624980033660187622313170701304828769993933402388112868976638542892006956836422728454944326286228730002779031155516090833952574207276826714744742519096070491133776521472881457667967892763519433731586456930584101572732087712052223289536121775817428167934151247595905618728931545938567156559097101466904500086936208058593141996908335278374322922523081257745935703281305158926652714512132761392290287452907491105151183499171095934596944044056741931827847804025850845684501748330852750493324881146222453770249378265559169843237807364180854263878175699141154535540900619756292285382601540009329352875528467284632377687953264848613293275786120205188637443262363363201906524948135274551037127518909973923102242163525296758512702925342552283603786919918119348377935974698212472072635207978944345662463435371388461724468040257681548560214096031526314173542860527304685587650381110628611022260327721968002365289222668915386125181608660700363750660087341642077349501266049586247889936488874172106524256357695230020367309270192260901919331266461666600289435718369575361872521452566848037657309494014732489810827741319571148858277536695286767565368844809112788775242954693196607343100907734648621539226365187557382709556415673484171110467607594390607906268518316933430607969127251576263951104374202512347277289300435147819280132941436254605239835601252554904629819597018222845327597152238866287416632930369831373670971339783086471787360872800202625505436647920627623137598709540364741416928790747543498582584749017421605015967789688635930378286699485981763148231554938267206893264229138721196848168916020087314416038668811365719281847656356702390412438586482301203762374042141186199032493631504957088635050408735955317735119004526982351298686193725237764991620168842353055206586070643234628629279470547122470977882037672844946011302493190110242720611999523359705452211159610143852379420653469842968137561443636227471057631186235192253947806020433558686029935506718388530111415472024024538421532396967966288582855955325914378380851841977234442157928427130502489518488666190991040984269616280777302754350828316374986977583916865833947601434935385206630554045070578787301196276491284056209677813785624881525452452278319328117285746771134394220026316682514750545379971659167733890098043579502667513810372626685336529009982373272724024533373362809914279601194056897940669775783351418542276608653743306487820880249749084762631721464303779236201239877196743168450063126834275643461587668340927679067708812366208355142884360056691102442649286931995017659095919985096075065026085518169635701881909562225820318880613781724583066080514953082931664749828415408451091170900963756043534290580335352195824880961653608186402232494297319303719099660349317630574643145240459203658063413189124922393675900427679375751404136983281376629392812025600902974037962521825703233026291318537934353874101886229207387077585817531289053250370222251265295524456433130045601611945737150414149457397188954211384890732471957355455686349418461976063906648529281327534530881609124387829419874128695287326083414260438806334795676480658943658286298799012180496555002326494723949654410808294682589102058331581828410248706669208396830571040856011604042052161395537570664846681062640644372730359720448653333242414348620119414022511889345360455264062431042431242192283965404880097230708140916570308253933264133708323526373927812449916370024898204901520046885575389328832896198738091663136614699185158489435821385413222763817846925915120906343707427398168893433761594707198054288013696594542218003662819465003078863182732485156532143298445288377017947051736102217047468704688768883330838980744804545355934351811157131826362206392017402094132806079014495206248182241261875359334254530410668778436361724103162465632442082085262167492035019368210137641246042556578640347533571122430981886287156485082499264913714423470388104039296192976552724926250849161513890697782960888306623541278912375224352671099961358385015369945321293214824057792881455137203125041018032753985001342886947176791303563438942811412060028191201278243217719051172461787570490426836026745294578189396704881715873058147612056972597559095194211684688649641027982012102293384500267495735384329831700614848160021200780410261849800965377560053296640131866578191108504018119849487867265720764126117491906061385789963030808063120276059946352380352170542658384939872090416718444941404411428097327256805588996328480651054216921919416364255601203247885185244150687916047738019899205991892373891845119847115554264553706214246338630094444821128214339571561567157022688525317195595519967997962812966207323494241412167971237910173673212911924188947631311297667517579126842272469182982710942198331797802281392820693194278785804483819964430631892688249559846354699461390798918643900531347861027757036701043446217790966841178068933292434363075539256591296908342284374926542948256007421956145080048004492191767483662496212007631985224276956504607701832945777455828517936739435029516708545043019486261789099979985400227765166034575837831476412647925484307114419625875663170939928423933263206115272077123098230939149148959211888033168720094333876835519483847735090026267510561316703076617044960053813679077583819824011807073342495146690408534848201802661175055128452874051887701346775620761690423094660770479785412711956414003103731753761481514319312632933679647735974914299454223663874342192826901682812827314838525673927216279416210724979970831798394338750014641716299605318314553735861792230930147097525509498324334657082789688984776358373563975830356440301468276409137825838439496281378018280138828614952466378381795899282460049162535345999705720101363568189726809004436670441414932344278953418753625766542573374860832341242364925415541925029695942709480573924684713552685850085363856607950059684897069194021956208808905885407309919347553904288302121855342248801377271994797106836247921856444220387292444313351623749723301310899525319502492761365916928391911870367284104433740319138581416186076194118605755332038477427374100699387003665637207850662420714285290753109641102954048375975380912120619256757195818473378580712575354129123738926363902126784411806255743326096016492867118604986850141283651455689841789145763138274097016355490243191215972509082442950697165806052123193300664473268706165292747588669663920361709128636181947202011671574541085939949506147532361154302658014598153164592163876631558699585927754868018010151941060821792054308954111958629143023074719064488546561065886019651513952712208622276824027516479596468665931099765407346625969758559528055747159003240943123489244590761041349452088535965954270836887602400285249385879358334961639368043707202704113949603119710180090906839960794087639942413861673467418942506131162340001408991779110387631975294267062849741188153450375037741126129775342218855485745923474357327152938544822402352936676741609477486647643084508656127174248184356587809078610970783927453589070954335624536032937535142288117918004738612727795643236288484672245434172807461443548201314196234319710928881500125169550422886775799413823945985152450111073860265430323783749881992518079387406505373742365545291161029967297614358762497313720306275279813784570814074341709466821999336971783521612514067393803184423390718742346648926481611147883890964413766159557487056248659465760691779139966972768028021705103692599346994271227939306047415034290199396930347174888578795193328445059777331384410822741301619387782817027744350991886590034861666393370273115694912748590513444571382049354227348719830487427885645916545511182727052982424054193533534082986460050659867080069608811799754782990104310838060769060856531497717854825051208469295089794795883993401821345453249804838907588814117585317768290415801710818366521400760838438760333275380392393873865709803744205395380323305957908955528535900204458712716204090435233361850184643954829459690445594183991622669543008420983351842691768861767498497723930037505185060583718762299687859831359331615496481122413347115960526624437455636105889560990298240265425614606867661153096532056893077537041475488738150826467755983001562407079993836903896110080693037179690196790008085509046210318108798270994072583258678493612703689409246992828003882626087989813065288263511271432606042289850156247583734049009271530782482016158144319325874223868476570895030525537026227697336358022672288482323478758386240212503507429489100583742317577707641226684428210750276408717658648769153348026780777394335477914106578419352545747155484755520062102847782620918759499323965501515608236542530249300259246402320113867710935866038364662185124655086764452151811798885751207718153827657642383376527835678763616567287833724973909490442518633498374376745961346082443553575201016776428856828881668367616299520813771108752516063947465160115250364555343326830790061650294445528905321706952607092005083432416029828758036311887848216049859994783100932953598832732825631826354656959328094442965038822279289627578973768337909446421888452407910893390517638152823302344348696959197998460805383554395771405157768103315443851735337206221601086635568762094185106377400552998455591735906508320309868168053226346090659349211120439878279551156292375583447487446796788432574149321301278504868574730728244598717616604946708164799874523830981893600893982052529551152638218717293736180598089872073046586928368375641919857051300290827109667401930555526660139888912028270309417478243910345271618526110536782803836332857708469966949625245926168437212030110796297397208383882814588105979978113059877280478664231065303028082818678783659413876319509279330545978910383294734487291205033586275511811655484080276163510581303305329165340548254600784709138794743961475741053205165284863570971866313608395573327730465979030887947559775239374373704105406592540643101354878248802004390390796771651203473018206149209299346472720144677782580686257613773978350331212756007659239990103617900776592635641661504687273078683496726836283907707820387934855897484190348436722190599221004320005596878001393010259279684001752076030292210605370758372506672087163439436559562409575407817967794584881994339655562485829417329356811633334710674480475383025962684841240077242310116520867590818366713994731210234411216445496459010904326121627057278592611754867974436275526074984664299564913120865749881326269043019736397692626346849151134250852154841470096800311801124686685161942431894004538158637174752838009509908799142110436386615355256556637329603047492200488981198240106869414597590443276780693341302453022521475416460266673224443921725909506553233078015970803074460519226938196602853356323303012311618430906125941926660233339847784666383043295350896640340796509409222643134762748561950061759588394447070758890931851737929769496820301021037718647342344177016962441224478787208178296602669077079188931964490983466978448291264591694457948559557673161725657346347601466222870561586625784787793109097529243225064788154878872754673356492617714831977396279497132918653544876552126862258846185485413539942679087835855696474500832848736889119772261080007630395310027099594090022903699907369043333067181419296697529555302565725066817409488533512731484626528817673800258300141461173597507696245663175729672751537961347007720118542194024967391421827294309174216613438730399673087795413570044555247392864983087237043267852309624630888259771004855286509719114071036478371113443974882359366807051630708257035660178983358265680909291887699230668473114613063625901221012510520150694348279188469137546472521554352485339098264926256758775511993201830464822982064839164681830325710033560142782050012865389088859122815310129670258963302363556112578414977087335760556010623338713013017571870863965975216068117358173534711665422722081321765445253863147276073287401550285124981927314697001411859043353485223356983599546456440446039440003101928990676664076727642649022236702386933984293998737319465561409761513695615677921918018503483964723337317888173029225249924004378650545131230067470436636158817518915786393346208045431046915484175625333779327308293479199162658818424245517263809527850087661212542500635002861172019186800411189140499065382514349718241214847104455091670895397539080589264424652928650769792086450467555124140540085465751951314761693854322436822562530963178308285873776907678138490116306381809924060057465627896220287615188746777924245161901053482757639291637068334935352885956150968161943771184798965716974409675273899857598607642252778358054041560919378013865893145371439748299222540948609862043859950474700965953408759185424244078538385448478642383218548432068751656080659387928033573864411106333944499129330069098830109714115912613741545723026348430514635438359320108287254743106582600895162222825022643506686123364104869316181276984700903007824047222152742409356749854440367030562858427626980573459032941626129379007318633519645586076917446891792741552462409478075636828053547969720349320059240306211105438591692664104756460569567598648674933607086088117566979538303693210599668893426541297075195502611935450132065200793208468818504361154426121313537519484899984713269958588516823309265298016202885367363072755669973554762379720604279090375273305193256149312148224214497212134713946950721754389293084238751763715668351005586849274874479737633943228172130830932495785309802291589141320913328845622203780508844449545449810650365184482560496071775440680112346143255239438836264706786909924101629265638289359373778822817715046944723991785109695727969467681132449117304564836950138359154250037598057102106573684941980263688221019281645694664679491109849394785460931624803283264543001809908692143433722254276907014115789387540125973831497553605964079633209093918706769530977267361835973171508652573024103866000123698000369800190286906916626046430445724138804856314598833940855236930236031764001434040880362741669012804170881937631629917266243451440427205238542529451533208770304672418284746690189313106030789263921758064581512927888589070704168025049194433271970285784152217640151357518482472618303356582803825279286167323284101998044144277366573269306963227758913253727998180361631682452024423850553117598120491256591383978519422979957755601342940526268635437700261438765147806110822525560197063380386742230571658337896474060569488057519238103767413951168363130109067552528767108333014918077642961819800867453005448866047186777823844481183564488434463309499269469224652146559728010984338522764836163577718247944136878421056406334966645700045649515138056622185340878724512942539255966337983063332342875840168302664983660889064962985350912504391150037816311036197071385591754842512734344036825590848023922865620811039538377750698726183060314763027729396424969898506404441235402207421403735890178031844858272421949073405668424033949158369681690218216723661827836662999393904838982006887092876819212030689064223175198373721491593148622864995885917999927709059193562591724762569969140583729631455727731318105826966879629501980485311277164869033329572610712126102527857766168277875563749239739295854553980926932449453412026938288011066025454990526318044312229405244231457183525736020749353640418864830242543979706893901882537674199969770155052907289491963199626234729916470023722037414197530603042678957381289555125880840409941577701008196070723817793033031246915984642592784050288090472758634830531941421620194233040887804347802781124671411722868060544954425393267967785246695102266398556417886609530802107625308943509619288373806413775063336215398942668496100704854792472437025279007423225568605156529540405351507089197209762440381625047914217127622786262074094509548438545921876921704296136092441567937044046928709234461865574666818258535070133025882376553216200584800221852482809202619914917435202378056814111386290946582621339173114365419935563596899379710538487120380264263047520938198552824844258972905868744915889623098131158301853347269289295110693877293884033001893699724443103559616314559334846884518564352960292557676349124125260610541162623713583167783752774681582901755460180819413431367496179576499021362381122136337268924374754520748231804277943471841306096198003228957977595265171266904621291366095280101243774854335520801023070649292884013400382968345801939469170800703035220186568724277013134085909949994021563069230455085075006096679704521968803617873081857735418297429802016612926216716597451245966354579908838495613679504821452117706118189358256885420135453751446602702338006978664311633157370343596179176790769481394744727065599685517106879814795372542176327895425697565943053318258599959706550609486600172006830563460710166176754883986522937651444767624956520459610524192262003921181591473016657245091147497091872713185820416038622171517179623372656469991378914732624870717855288139490144482536991448113579004535480225564521002628391925320738894865416784251189644641400568750197047585236034918744203119373176003333269372878021184868920225154427957165365659072162885067334911751060263228768932263984888400528539492633869275791452949911131911550496259250712284231475150360799760020488556248104799952729634198074105106452185326524567511452729226969510655693086262833911459449924715718739986555850549279415017232654750924969368614251959020957829664882690955219065707717711585239163122972753669044699232637654801447087994149305167150723343865789386623300149735971999975280212646619918174079017915869386213744566970411430947159033640362724391243074052180131347860179374644948630740011438324508187330016995357136743170838218402968321226195807711694572022369393429393608580141605039155918422683747433138508610674236865487542681657783712892137121347159924438341155537707535923997710962461763038946036722353073716126794472299902862546002481338372985537909412642389906551003456752246648646113683176173092971324634735449560619724877299936342441739663868724401604967800409621267115736202996288512850804743195881152716572821705676742661660656967937435487214804965324002669144550855458500739484270062588818237897997817375165279515338927609064839250661653179168451831494358937934091341638882263183910338255497431179934921556243297339280900749337883710079588433141641115263698429724138674034873729597417920781557587560727521230586061504871641032804918282684965216342508795229997020592202135499847770895459338898106956195287894976470497721871977505224029355580999250207378671969151752834087009838697878038845534438638403772184680235677624068461074985003443924031502964034345270894090583770595857191366307566317195905894558532702442731566869433580817118719832192644615247489867068989666762939194602131278718547060145512926044668390022059428595048902796500140043652559222099817496780813581855651948842678562362721920251751005992101410588483231168161688166716004410970747784797783510598002085407455995692613028887833141033923895476949121311090114948939459814659953729003430568811683339941692099542788510964775733822591547868300221892899856967308432830543631402933802961262478475028715701527949921262024973171952089203817745495327040061834974645326359765757241888463476005572399163757537798657815237516326620500969035041147574758182419617580998243945681982893991435245658156935817106000925003118432810023625054098680941218139857764232819448146281506139688227470438002967181414109509560819142118390511994924614236774348370257281349799427367688283207290271743469159686419844709167071460859046375513320651094612173362212796277873921472188892111825953841592054867353254836769061892978757846523777059545378434428631126461429406472988992087976864769890090772347280903878551147058652910913789534014328527928950517272301984700239047396964930519478589270057397582487152983419080063950527748070832422596730380404241627537912435663810848952368533616080378250911788608003019517174441300787786641483304640365944572380817487112704805565147359350867973262907046566679563671993070273708016405922161096230206425467999550124467093655393574477239090783289252325069199031669914606126957491081688424499950896593632324624558825311857547911755036973967376686283555952836585532717782271539902052581959193034594844616723015011688220504185141273663929855262141563863874309994955770259198485364934215293047258650283442322561635898420110525943979902019270638665096099471498574680528407058296385022035724683181876208830027328538918950254402613982045093283149534468664636227960307000293930235692158419580473707166295840586712583821434502955921737678050733302207481223132424185142422172516104102948605978151863896953684744310686105081576665990285657874469581599911236610359554083382885833466560050910439378418958985766080538835948736044101524989335190622569520743762692553047520164250988625788305603250245130142531633000352880973255664674063812366098202842580963708292768873304149845151045242747765923491918059654779516075296488221073321543679210812006779510167075604682116023551177801074847597203106732642937433028679869674223460719146381386089354074140475321102053865013667205453800849573682281854138744190657244395962408828755167267134939859446593561935072747836385424119988223905010027998344241603045107734902730881013589291765557897921496929896076153631512806177628803143613090120854132689910571139621908397472704383719468134749481840506556304518744567308497073602073351974272441709945280537355086604588095805298361843233157944827789953517800474012277195926220498423114938950357182530454935690941251534116042281713573532179027817917588827104501813528339062635906303491315912128115414886405597075986702802455827158053131178448909655775606489690903899841185938462506307799759651561326188696804028832761146519453553825973350369191077045308057673722586547355965956236395880456216115010336423938901119998614665757525427113160986654088101186532354138527013309560258562811183427802127691854084512221181200411176736257028390270898452533383412814845159891881326859934241690071960113875064335034228438583961122225653495373537028336107156276401172071792870314722589535008037064965492864712661400912827518786624678589330721222279498320554875652281284157687149875125524290338845829768653364641180913735797922085946939405014151978742858228616963565489319231030806418216903213353794912586432744488041540761547651366967721255191536444848408460437304456182879963065999906797662822501059998017649115031657006578723194175284605610059352144313211330421612966539066077055987780064033545893087353179652596633686616341830086466817755848468521745184076181352710580135932429934356506419443471720486202037178408656054253922867689892164924622279960648905844859399756384074693396100070156352151197681075456216638145009463557695731712875044157970003279934622613383760631651109652734938366404354040545670175919148610109863525566662378970921819996552017154110877467853495787152775675109641785523975895986169952404350726476346524085160860547965100818179129815775910063333918884088904178614476830277312990223406834964025939077648567465435879928117200255684465106756771502387048872404904910726770958292688115359574908436458247937317065264522369257463173848398650624695921170117934273213869969881758573323460752741148943921646306900549918067071577883447981971675420346575088568873608960543128046088990308960207810238565789133401668912285309328211981993911036207509545031429925064413609370564833565211080743187387848614728572090122069139462086575634983896416052818912372113267828464525461229128674359353615773437212761590115366725018994686007082519344139973362178791014168141966170278684006563137601165131635996757239181113960979982417611069684155008637238560142741743446002595379304408989359025025154514667654305607281941873897069875445189397778936879092080490505039121686037398273325828269129892218000374213284903785441242140989547806214800849265922664874197110743634010322131626043155956178351866358704894343367465732882878549520994915850861656765843597312326709831376009351817076743898186678006301743508343282510801799824254810014465637327875599893005572458750183149319418758767000795029216801842689632008161210526001945323370452790106569354609450758897090846527844362897303955105844246810925829353287287658368329521195041389704006203422376028183946961304980586647440079761305590657145951442653006839345796259512675361696922174316965718103565483996402291055086841675616592798976369654688028615201343058760047320899789674775241302166207315493698158430580637737909135692293564433846765738681514850827212879652108388602170035973903834068472343892107626134205946583305175517245481668198802248199845031453456508665941143336802026400554783399070222384123155672425328887341618990016096230373748178411545650240554344552246492242179397327558901070667427523231356608521494283645875646818882291718409919540097564416295473346657130579614325273264731204419037682024554307346951634817813144906754949707626942192279949622567505354192615401453124187898800819902308022868665941470770502971527306135103578737754134163776799880797975090303667722626506864512567780019945948140530117753267352142872297578500425346839577218907335188746103019403730582909983093357772634493812073706542683231940549924476781884043433413621188306183009725420885646696937701246786818751403069674457189345127267887225851473334670791214304239170727027452117312939469091460047081402238596187207921522628346358630510015921073023753677538167444990879019361863373588121573768930902150672956402907887549344617876925001174264471943473945032008821138560492824531544414265405059638008898733464896902674694404471464276779339851898397560351408038119590159609499700678711722876419694571402000407852312768705758562126328988997864919280878482489922653372592824755074361914435962676648195367562002232987203311439560398778189202964086915323126656706954553495090359524169170901225000287427762348990052651347660022518397051779980327184547798218186205716139983455730118260057745786881610053882161298782208782335305401854572508349677488086960405158741583835156327977313855439885466032291284593739312298529990158938834100475821932183035551463343355454165189941571233890651815083838564524999700197376226624594643779806219201050053691741506484813422873554084719249913212001450912693121846700529372116882875507053329417964019771161865499993367764991005619122158269535567371300461600544841540772815644798727601153258375062784358313955772095914822032925591269208358569791606212496362020963247727078672408686931820372632152587408777248402433695325213100545291849089257840067933969569889283693261333642562434346695197858303779958834332490204926518437318948526140735118475763518300362881173021787564264461805169263185084101114226571861119391310501289834524202510783472226495182899994727642388651462238975701824429831570729309861078733760404718820051353106524883817624399675701157127956601939306243318348534913643643484914377748272978968699182626721036586273745657713475285699080840903832333418354602734671088840860537077270798915216917657221624798341929052060744380996882561590358630762489630704957903410985313300059656987648488404497772349144517749551640104228990932873757094700840929498239593018649564948239893692110095856156398661651190832765216647455238653654443800231183177659475625665214406826122637431961183007377562379559816577296347926120849278120939812556746409963783342503360695174306202259829895290933185767995317163231566404833093406030321241834670082623035936275390690968620696509821460312814923248096691982581706378207138749244544114762741607796039049559208977639435939046049796074408006612396818581971558250706983106011000547430586613424339448637169318095340451640082467112559639714421333147626874656034870215503147296797948616867338265303117089751343551026927783683892052781198085344227765787071240706250259897731844055730507356115296479982438124682974214791039781971956431476217010809578427753684217880419197763784369439300818796418829002007310149092205327598993847718859277844153516442534171185868515226927336211824987245177683421201567326592575500499819233313043735777900069244212473860032227369070474211260041411207572404006513444430472589927609801646238544837762435279872855801306192569928082889578053416698732331327380663385227795999695404503491308799471062765135670011805395434415085022934588519063232584931606093291292159786008571909418188572191972817544597648910724937594970641331167652663792046210280456887653449267883959319780778589150229395810879897116977710729543411704278119160515337148227688093544140142582371900515066305828285051729796802681064113469810532673051356864048835975533102071276759764131819291136696544275032504300434569753368561151246762386076051993363597698382973356078012522934685674504462548160088727524291954753553014605798492872516150892069167789670967601934515502244246813889594596835340689556557408507487003946712093386448253679683929058627659635045855588286084591368944541805741496422683309475753365765382483851566725238656061314302600791806351477851421004453103607355793369672969012771850959324817663241418600826142150773936148505706830140140591390595520477895712325872981298002978665676450245946914161782129151697164574903741242586305063063259123647021001858574755198978309316035794481767681013453292930051368059525738882989321651189995649577574348023108736047744728509155526043077779124656032486971202791848210759229951092081657194116805273985451793459885727098136015022535031689730780256924756470428500481164491500489770669434224701197680980280905324165164971791516878006004257725240399840926593452610688813745860249697806630805544431881527588797220748385881477410930534903605956469508853452288795730585404510346848459090427428578674252932982078708738243097949999172187263819890397539274222482431159487441993126549840663837875931422746701043748629915008880445615882337710208217999065089829757192272891379225630640041701122611725477847415180514484911704776653341051706542453632942643531831842201834067038553795207987434304444017290688178154360401716597217556412881541641689928577751742213928863220845757174941506890054603363639262595853895293332567964565768766518787062164693964156132340552749278365865600324241979902478762289237841232245138020695744054368247522297849113686841365529699149224036045318591273031460961756814737438503963967677076278093986392852899753514345001457142751021669913758625673351564170616849943212555287536736331649400409611799929345037041627893883029341750713373396674489327591543485151215224384527494774512635082196375986789396319324273243616611641252488037650409590756332535302136683903163554306813439073649988000203484010353607040698668242365529769883480468794233220284539579245168413212098131134465365652998015136493830005502756603296313914554739134254003474074707932927202124889188400369754370277555477433063726129038257611863174522391480853255890065073860004940113287243848814236271476221187296367447634868619559985551951220687319716577426769521616159240310998433757610755953050564101481428800265313085125823312581452639031410082711816481763701885208156283299976334877647822450274875227589299460126278388773051063490760261316492416836583343524349134862076778705099434727788916485061364972343895606745913191424779923116997663673846427586084099093040063774893146703899489790412801550646705602085824161969707883138842498658317591860235810446786214203064609966528530299505122338334270470067153750056945264107669482742507936474791980329996336211777559866815447748333897931205010146774653219180098434368590429872335302384987145209172874661408213837006078880650125152922103378771245308983303191835214821431896408217671360353255944326358858659691785162003842080960956826181107242459165182148762613264971617866700680823804650329960111885607415709572056030064116433930955475752686710830731320012237048836704089199387479564345579308011803287373147062484025527833379467298035599406805013299971723498434244163664692848278753013268916266014603452999926757472227862895877447465377025029550009619425202615258492169539495769417932315334842975818633558397847523516926127682490640186551271899400575060915372769904407556289461297916393925053927313258542214906813218189824277052157223450668825488240431725154683919798856311445078329248847841679184205253413305306746313510621185895921663193356818811878867130331312995031645969401998721038634034987840145820931295206684254071221279241486682656176007055217656587817603714098651803647407596078013363667144636429515553870100010303825695963978488380048300268087151386091343742643492192332912647303454139866879757956823398199322061753106727478634898095289195327263330438179882971409355778568336461770784666052904357367981331814402331528287533797318546481598052873627077827119265172814746760039594941901246341332844325080071959980146306777967282718654467869550296434104050522420005092855190079372839474689606173999437175429615870242789873528984057706688283548574765334505642277795854308576521584565065655404904316655775436802449401775511307650692543179341002938395397990923514386915526589807268763740350782117385198680216413336533112881848755779321635654770698443029330087446953430661660610150068697238746014915107643854846540594011074039453923530088743596280704116491080015618435700913497177440071688661065577181997188783820386020783259783411706166698744380680836313233409618533873735595856630363604077076439535369073857722572813678859469790411341197452962046692536365082028906468700984886447920323933210064571901300384412758151933282790000675190558818210137865191107363562188071251682856967157113690684171336474225136619493973012131294554125251481814014103832586982984994962332857185816968920897388232075231655644484322601780635592180576504002319678650244586917106647050998794361702086078785300384410383547398418682653002549142047215809911118871866307601041848791398760638138890880275256535301358326776051461486749469877504504175179330964954895445569860763602541920542719090689701461374184130552230113241599732294396460128115180827175829342475389647534574666140544909846304984641658050317528072948229071715629014213990893173127479320664545260913752351231879917489343355684132570279804352539610597127156373952329931041426564762948427726920356100557338599310032271171120774861338900611642261199533109155368546042551362232891480870734617877071711784287239061557880320559928938577776188699364878027633609384221639204662434990565296494709485233187887120194180418729077531024444878253444777842368207878331349005007241992630046804526929109162208962695769541586296506522499829246419921845633040532676094756080461724113228836306174395814302686897287081151137897823838212588959705855876317978229836017215843856998989541095251668800539142485916925602536469211045504138240448064523693417491729832435868838414227188716816860754961343218932254743127145173673312973889799266126659700901490747260799453463417730682273977603069454041177673001793102156040291680777133452176327104558531194614906353676400757887647859878020416497727779937464903238304738505974355258588828060283942137036705581254173291729732668357658462734477211811221909858548533333675842507208476022036567274141945750788056806526096448734556661708636682576298402648830470058607696380418759612862573871593274152881280401616899334842006648047013659810057640797288717959913994757704108819106735480199964308122622064338679242578154294295328170124701370522134757570387942787698250108196476424241160331735434998605339731823153272898183648453307506638601479804905684814660058790615835031946542212639528526576876634558371535994675774253825137681346597736328214683992649573414681278422179256798399542018759811879637045599679207462486308340126725457690969594376817661246010385799275464693660230048624127298496777338913752959528099287778813623854862498874792148712272597369786090250282384732371801182180758602676737382118403009528171710495692717847236392156810857560926889340565806128960800975654963838668653060426754910253756997650382054136979981322503154566961462912532151766062623573814224306590620887729422816789351798010219505421958860681517509335947468906364597285800980407672682566272104150360116231744080082940388272219258611309319665836685108225132219712608051345599093073887725678734412470233819938496735176471402036351967657157196128110726583057257301953292049771289919486155437349124609223543651643385769621296465117499215270700757833672793504095132517491273554894462453084685322389504313633758135841383328211457000056161421316719431987671998841256992447821386065732517073988576162572447985869231503307011162663414889906618465828064640188145943566967341393052427840138650715077689385841751571208691125439818545042365490705716231764758177099326598436473969688745866609246397948468719159609020065839287203860700838270122608114049159171745820817597428397749938565430198379522276276630296111146214861596005114038079530800025806543793617501947955121690492292040001609855988101435242378156276474040620914655703259271867759571694480744414991599714544581621421882500504484892285217184657435183604672408417039568918866727497076202685183840887864031403446664195660626364898904118975848575103256515580984247794598984025497250678334135979517301960744695937764249829846967149636174288832874175235125873706965683140265538216091332107705338781117232571452404871443394603101514732151028119725351633129366842916250698604815780515613275741704983202434565619041450634427318774304589747222960782850898230518178678754511693605664211493175707427665877917760686850792685375831357679093668005030262880605333783608498056573039587990854352622462729071263359421801358054144586767293538216231863882921566245433830689853993935081456907705584973296336344105153535993684737056054471669982577600521354521475242572094874067372077931503676327029221802601933577817237166130800532260675822225674952434883009470289596388505504323323097786322773727869419697922847428809041255685429400025367694719537110457795110363453824803244026012373593761958404364623102258217543409921931885708004978525209803797271638457853578519678199166090944199251524725443908873635923440690338152088957778229270169969544853481943569560647414794129262899045094305124849194539744253492026526776663442981582032868251996713102887813238627061998408685254918504589331131206539454082079888640802104930233590777315079416310206520446229975960403554532087821609907192741942561059366256580848757322279108286370450971967715247780806029374628665867096140426195213117154740946314051079431949897243621825859813460580420436907870460829236056132579662162580659257350221759335445918718218365114781809705495161523070855641384266681746932583440197934530487444889467433816736902175697520632810704365241197209371575068111024989564704073767713513519474171732427505816689517968345190231455732207616530523320360817783015163165225202174019829314488658414831612423769853870447046955322367797471337727771186604413568150744716350496357809459817795875490080851885721160792134878405399868141953174898033140058938438827042441932746904277453050647413707642747112210309368772698594581483898806448809117129213715302551889856943927599947006284143417037517613871529930008678847313723761953815888457329595834377790170388846786959336089334564463213105225610807479836209483716589579942558331275163884045560068301732739934021527035738452759939467506031020581591579106722518310584803587101288413675663165705777790925249610459282204640560570469781155341515483763118973204800281274757130870197512740919232126855178171414111125564106269737938004926132840070314868856940501395484925581660547598933675457705042653864415736851028556054521901307936334548532548489426477874968617729857733694194276951186830908508803735179415081566613521124307315039129935366674677734448976577115525705157624831144909647934476869462171625783144975857448311034878907273434641444469884568698274380251278624879418300259474032638402239684014014304810920388974988635536424169553790393933874346805531462324692464563217692078476231554542703514699261756317748590244810681124806376207407931922443452253596716410237986324555342091825149048605888060560139452245992539488604117373681576265305314995066088363764453562233348205871797147473560153560273682318920851936664731725562686200360110707119504610497259786819411478304417439865169938403572395919735888073359714161062929709222136243762340776374189505353501673448682921843599104455855629346126587860995536524546293836823889698915305640287691783008613310117477631204796307712409603619411615414723632604161135606711189963794175396447854283614042885367879107856978522683005033735865686851885869294788200184277082070246524029240564417591577193079529604764969377767569283073983540802066310022100017540477164676249665283727615760760468474751287747796859980413121734313820529985896879052158840882449093118671892589626778356076055389329117803725299831757557876919737142090236778685201019743619477918348557991046578764461157978463182905067791334970705113010535539426048384968268606704150530048368651496650381866083415730146747050381808715286461098299103291683723381260474981508334349242450023047048050224447508100195081390904958061974928985382048137090312929517900551431900121921928853089013297071236466650359575826344329393114042530627111293827891040348123391189428187564585832360224114888384724553780900006730031981684868883031639584923927040737568499522527245889900847883191791272808445542321241070219843652800808785822063855636051627526029993036110501866027516519638724150510700709448052367073981311029861796649932817480721730453372000407098983482708270150694045634031237037130017860004221422835941576998558562849580040051679643070122195966907140681034905443538831687978924265830826427465546447175126007204532308896108545934239656776507938002740801760711820960728572111136549837782605933239246923991278125049354547860679884839454683676409127237039044892643347995509618001302959432846292790734596488160841753308304588256507953249422727838320893027309696526503892696348614267353169568581904189961011100312712634861237989943888974784766112521728474945051620921249032005251958225144497360575354935686759423127868269255751670083379019665577639900699320515883076701435142160618520516880901059573704362801557061227969855899971009079157685928969127254762519294848951719958878728886095270325651593490517995671434782981239028742304333482808142155242377344605527347844388195089756914294555393272867322773602425723099635971730363442524730279702693278308270864314164365873652979174779191042538327267998651813599009448281294797507924461812168835801045702132791323845448742354768199546792568925489583898955045984336657932953797467724649236867880945786649797367014890483599860267351227549032378945383912841748894504306414528246478030499493451197809851930229932945880550965344472932780640299448033284200313811306240693741353826434130194874667550553837214985868825247481323145124961308815085136916212510316816845652661713151616402977571567692045524509234422859770829716746334748381646717225456019847792946004682631278507466709946116864497553048777480721626244085452980444932759099174533878111903479794635543277018542382609118235469145902758217003570925675067503343458992848832648916744619567998884832318715459866093727685272045891554015030284356415886817430402283509221776889765455696909940116257224591595034987717090092629020324003615923637140158990028776751936917672653820453665322614516246024417804142828420446253996470237144968385926139106724884109894357699642996268244045038785536205525096224294420677322787162110203421606286902571884946900580432897511054479875091008548134230829993995505154356254897314002228021973363108116311602207379286209443735680324080961913199789035224870895295887357548299052177066522813186527211979319528599944102620960605287979971427652308788882803847442342785859820981866679779801563357328078308106756526097514779332851878015792876168791632872958442807662607237061409793896058797387423230179254240532890002173221841472225627653231980534291932515539437541897254225416463031051229356191338182952919106368197310158444112414000084946628231621098669367917448909157048338863483510061546951508901532539048156101859072007510272298857164051170264988845148822081941910409032951788616832129258350684158896565102173556632625939757791174883934354045543838157316525609582510420024323096680855356170902121013070334745672165131304150371880321601922865303699550896431721271590180648114105352141726293268805507207421466129347900098025664157829147711369722444240187900998990329911032755406009764344179720669436794803783729390948266352208799588747883239481977033091497760941860078538993653862779656563893090156184256273927988712165629730108967448673384486973178224104310504425677606199413896880430727081226638680543594061218031255918711686216846207546542935477549514851325281127602337662858362738317483904274428696839285391192160859014789196174116727424359822030414765698914431734626578995832002639929988848848155789956411911192212741643128874731747232862227230574291884019532769142557181697305445169221956477668579612308863773245039615469000428332627552327793358780471339173034090448113755270854243418714679584810991348393471980432733539767751030632318639325020247205143049959012263414537057756839672222193838787894819646186557389018770962562210719969526208705329468238387409102169303285267946565475572627780398395835055409889047043599779600159905828417946035281706467565584980882450820958111832441318421583630842156101269122067687817564441832697839521424927691736897230318678303464397013540830158090353188436316286795113716907672962404642174159038031658404241219559767570100152506871023303367746475401600273623674309299202040289781535194094971343215251656988746579606997682903478670871662892963766019503438352949760456472876877893613511452335332995169764788090947804604839073446922770406662978582686505692135096407370833804086503243097922315443684416043554245976356141149380978759594858800125319353884363034778741944941101074487389213477211661962788336513678718261384795371002543414047145389235653298223631453015052115834982429048640117362205318793140972247692364901520076987228489824867615313827852397736450193626797422988642382911871480435546360235267001206059704443621618513986655806596338050531980250690051343939634035510240740533752636536937202192477672504006821138502848508377668759104120480636969130046621282139861643015183049124138969441352909940784575516676014512785886121993634797179320838200511098054194259054697539937318531527430454576657438021042738098973016633799384668172088949026385522101785749279072072877555722010130218962386892465421395225860922758152974377456988842940122702963716215302023028198848606659344958519832716270945603587801065768911784721226990630548378916340200822815878722055936488911256828040113275959847804226707367668684177842575336759050694945163964500462286124593202909498006262144105880230065717514235642638626399115793468175322276471971232133986367470720189842922522838515440787066381921675617680362052160519404413138762491456291623154680483115870750553985299173232348822112779682649550106682750939343323375186927203846839307574838558660412222395928753468704478920946695713468785691852858132401006920033071983047647353933398616596952802993470651184319861422405139567555661109876768453870692580430446874350720382509764905759647472320532064128103640991661137067553607988323308855705143172164808861594691562320088768240336206290863579310506284156863785262577103846435016382623350225098110139261435400524717997030136587842018525203843265429199458067669764502611972452082669960251866146454642135814549795094433435452420380450635430684760060833911254258377897632429331152520859777190312010691652202113904888895322432738040133517026693365217075837065259771962181645344704425727147138967732040887654097960941868024729594490221462335862293781229577780320395544815698833436486182946173116854692374611480308912590139874244735131321770396199167325804595126792853545732895156794592988929954334827193560815908860837880888933094407866782782598922405693866720358228677489638691827646602191133620360420561612528171339491754049404140950537079908736202887279277491797578964959253883333218849876121390089859786742184303157246181796335415852039759992418497133039524086812373371168023787075520132041377904730584910523562157896146390027633175825306582319861737537123785221004146623665888325554094170519597221933866667308475488842443766664684385990209528344300591403770942323830563798539496806708851725126171902352994686610788591230255370261725482149660366928683933391911169983808853414267586270573990176365561278023876322433482043207445688738101830647984588138802646468582397642315832019437682780698549668111369563228140071877952192468068942103187886717368918955816450250819310883335201411637890126357995193260912105092733924497117908656443814088331641073339408137280577961289337402238113286274930764712507619603336636958742002743292755755280479809043318028781551976628914126803341461438873766377039882290841671339707962857208124218301113566883964412973984516886409548741817566895031678419031701427425994359741063547101809741253320810069421931134554387778247880489949082749394692652833041115352327477969627831307466568085359796952573342585219410217390814007111360215341160440565347742916732926099723657528753516518414718678899707235824003111016958528074745204206725062318061396904628769529678542331533743190280398712603192278350912942987611922867926192798485292307856534261568963509612754399957499747793669734937110086457677140280999846124900594995519651438955667748414327933210643418203671090296558471525462298860337097809866017054934913605022426607345912851230694782437574174831130725829720212565854263741174447586682752611591956878974098257272330628232371095423500277479434942852225792412571361181512589830333561325456482569207226100418839146859075032478152353159286140484133831193587382222580556621363223004052248182527055915639030256499999683138935619517345058692551699606033126750822154050505816163128490785207658554017439961480819323931021855144409451085835788075762324592367165705083519798208516652734091565909733359436904290816155969125812661012555000872033043340871770516788287550846630807189147626921102134798189566769377939528165900085612037346959233341289426255817051235999865842966570764364819695791168151889634230194265883837135512607511110873808477259629254161261366659176329414083934867723352680915740419183018242192575686531861508753674421249545675425102514655467940150555573891523838856040261970846970650340872555903872244411202965802788686514134263152030829371513197974113071496736410595046815715734914350977639488003931952243875171406835975441048815154081645723545775691713992137422014309475402145094618967770418656741047180582293006315254938737872656761356915407726335528027261176803635483949061098726436216498141127077466857052839360331276506511200786757539789820080135783326433839701500877023412717417949769758002039616215233019879544143746209771633769037908017288281625672468592975681306918877909608698902077963437868729554828967144061975064471556494157967680159326295597083789064979221897589935816697867484758128006367255425847653601753361916586625549106876357439833465859983147346261728059235313569323309330549491352279372278624216860601764789614422469860725244421648480602069726008321530867640535421996689604473597609596370835334143754527417805017377176938975951011343799196967421764313249881434571872942171915372406863062474500428017629478184793926906490572515129419903183804789323426735133579196334420608263781005318262436203484566432722903920464260150985847756179808294886235066358765249222676319187726031126581973831054556222217649508178681395322600012881332889376389645726222151016902506116367266963694344904525688010600597083104015120599491933663015480227256518604355244586748565666410090837553650145413676199446290345069195296772647986822558651382177131374260721205066846852067112384103222056853148096466960015196431741102103259400889507665025878411036852710087540122170602043395492410005323550821418026630296327789788955455368237916495111324583539630119369790291112646303214605077082168852317687137672033732610596321361246589230519472341648613865634407586013767336871664771370878644723977217302340824028801127471349897303516690417945676468493011351039288581402699196922241659144962712666858100868203647849835317081807348180709676967184118448001958801387828206534781630440732719950569617330951273982126420909743352871106166342751384227662816707851226075158619384326633782022771202990065550632822936016224560862821754586267772113605253449891667654509789776239882809691618734088897002421630082554679761792172202505117995986248120315105309014529490752229022897476846793782655756130492135582686402157878182022633920935946771309063237459567504491300373112362164537831164888959401898552415720868377656813353546561001299760069648574245141533910931458760816619194113163866696881828051606370712447642792750403288932887824141501995699063894835179478583646035561575011483541059207502413929449493008991835086052639106161602498137280727361466894522185196488297169483587394595603213156335537606256649728649548116894696408089074513614182786097968075004358493051965795256195963949895885980061456770822937294620648974363578094220060074981920982634174547803966985382178005612293265070922800478549261287684174386869804510741751752151270807495030129472449954113315840943024901808799804196044986433475804792854911971327719173258213224745206377277939893782578914117959976828165185481736370021812807485210719563171022051867764843418232539214459271712028040382267655974972651278471546832057488828921239073773579811497531040210819029335829509261651637879099166128168040986621145866928000595698560757370643630935393864264558486263533130800185497314792743808993389230183061489389202615290990021088911862597297654088267998032212698676775935977490183699765480672213089412200229712121441517746441958876568102368516267464132456732481900097592122973583319764849771184371379976581032728433465923971026382083444026466681943363659305779555172755692399891569901941451463250013579516832540942752770069194581474723186906297524902359372383455168445403143095884795903444015396809736506920858928706523155064487925993565490760002104321695192963778943621675191706981468225044394560226115320961748864157514694543903001247314077001105051006986755331382279591970436461830161131342374247333044382839958685267395100659743146861639468289584450448094965317909609056546008436343602410351967455561761698274274878466722580368756597790977317675459284081416014153946737853378243721835477478137783181663987949427722567068710911491436453106154533277187784013843367190940821496054477947031809436246826230368118319485289673162502666922130161854173085036626904387331716247108022554516690570763767978170925467843855246967311890213925983004821167576766763541110619914934406749904865019761951649947916964550358180166903648878589256452533747791278264641532558949625099785339974871995100384355762651599156643924764366496703390456407712812071862941348731183064639817120088890047069780243567781894631236164601520716515211731012319002004233329636133657692691495150809740524465801776591705920535949887229300015904624806975526096480078706299094481591203660651423750674674200775261864467104388496391262045073125646804231066660394534135153767158191629940285423872709159872765042812042494822821409182965531465140508031968689503296871863247112259583205315389410677709903223474487857232427959344497961641949179286520763425684832385200903418395566256027736236419956057169252426658590272290815735519692873551068448227468849422068325409141407142182203037538620481952844452510367771542297057177024793874648827499100878377725752879787035961199217135062378527268885484575319674722145781182711765044894434594671839826643468500716693327492297759142048562751256152647825602464078788144884916092591838265090113338964591129592219580005450053226462209090219260490112728329406919715417733056724676075491929910026128933053013432276137151713375367296083634534519198382453102022886892819410668545342891339555975603926972859329557683283018435758229840302152265631493995297290547862179425528310295571745720746706882414335054818854986855156024274161070503162869643954673070198955532971801719759024585342981549796370614529649102188460707238204283681182865225713831905212798353511709392321784090790417814182233726849714235334720849493768428748418430681690943435889728694330489416303762794466676291152127395100626964947986640696402534688631435301485032823669677773440910460467110908971439570319953768804976132537522082705803265465331635931544943579406250816401302253329410074578215726085491002042243715442755884502693779101260227665091310284356811359511246291212958292376093068273732922583426870904801891761867388448337344104144106715015169266365644388860030808177839204460975130422350902589075503423414648025061707531293140494287277890390916267168986066739290801657375606176589677161969073663577308053727630772820630406931443265574546464326335628900493179018875315976810126351274103337662537452541535052541890693132295338271244879494421474051719498326883508324441098406787219706038764437119419848813185805950083294878224235277695818075700029233769263272517725238831810202505321358140209720655394569391980068067619924711526229268807821414576774815889626586764950628409154512439227070929580191327261765166959432365287921830130046970438258467209891529922771922964191820276594687412466183794420933146410325440950204860349604169272326768137369279731243175738797030276735197539305872035917072430967106106144501088614898252899053669263677239932381840086487260195935296494348891993068796119472058955343628775884377979399183414331389798111295946638186403398868069968005688717498062287212682813190401874184203954899917416194518788256992136301690868367743728120759690318972401069757855148399297436458215860275397473121455283141634746636702178446660216234668596398016952175431298497240037014044540080318224856124062651988939529219018118877843181839674579076145137321402983395016510775306790049626775422432826552642003767749905940490450504970359786810257403407553888206262896712249665120164129400657553764487876388651719881435064346951415407338132474647022461313893222870558137447406456171045377914973192105311493836040369820348937499192322035004885998553248195843754729654581336561484516857863062646675530937707160633771045572421420529522076650952536156480029611533244167513408054716884814590225729417959890305503160398606372993635613212559970246008257801381271101595890333032830297544178661082822677156465955359728483071147411756642927651290974394061460000251902965865602607988261038957559764840482853745078640416372256860477079437226614891252322830260961430411480179344825929420781992731617063618158409230530154005335164959057009004837430719373838173287021729256476172729623360109647416191447483671860105594173964481379628508791555821537468842174889756709447142340369038297412878902065573934960435007398568195630435854697220054437357494642247538676573053633783163766122263685231837941071670296821457963631882966971142368987535955136433388479012790574359029568623984840791915347937925302707489605132019163269712006115486864408533498523355202364984517970340228446141609921021801222756669199021582456104307658048034830152221090928334967659487467553354229756288399768361172569219183256296792901041710505969361050213244846406658533677879176419768832010797073435589944021976962000272382275073052203093110664799007134906870091228333744065331279533842846977786458626938864369409881622472226640775477383093171521680903745568919971819309296961435776503940641762926757394784461652285001723474961752801321200239777726159409966187120075503461465292489863661331278207586162725589168205155318200785732621819137044843182597593826102375284916155256207595621678165848315412050717137261919566311087733947078957127546773470428261316357562992454620354772234967888196841832907981548698262454879746028095829741331874283975586805584773011567713081923717989723428767205885373960426745686461029757206763437590576889397554048087100348806528263702438449317467072235585733908224750645051168207255871826969457734847136554319073953863195996138116894542712242886140840612997553271728981079578731921767577062660267947251919122037859663213477513614607060131628820659629926679894428640924128342252009554135050200108450916133074400337756412271877785460954519030399653575141382276432543678984683247632910079079430615210013759019874668479704441405875734331000813639867085882464699919455333496774472197046080851237861516773888990540525936139074692539412995983703610578395545162002163981860524881921012319398188769583997470375192418378890987419239813208589439992492947153362983123127033802759722439384770221142938416357620781060135253974043860203690206474860152504390789496571296440004783879523957748456415816324088209384087423851317406704810332367066535616167842410998983765977489493830463713892373291829701518161919850875541830794329001714125420159953218903908678579807018539769753853982724326045979594766525855538430657420324292267015186747426839696457979284359347778861778667482322774147135973871890536659485705352221877137229009122167288203327182859720384419527784170358646414175954555134661702724825768266784490641991455770760228941772355107286783788349229657139131662586888373510411854162725276532936846659038607639867724009716452958074309733065871879655634738737587965518334958772601391712894745876212396461885308001922831893849588769464538604836147344449516549207084199311636957248413554577801369872921840930425738542211272213330661361507174585404078843636200125930297264827060588901425619887884084508851012475836825414549361550848875917872170902262231936177343620003286995579233821024901645993418258798670729044887398786136248305311887426541364447190260560086041162538466859410861009021911517309588608204285835450574733439291721217028224988032472944574770676229086505191836628640940237340584059609531994334114566782204187867942177407721478946052657040940960626541228848363093412606213998308984500131416790990038601857092324129213387019823748522701175100673592872318205261396551792504652436736256849417996889299654663405332288248596220618218461593886537747923037854325787259236332461970873792207720671597796944199387638172199445886779018830498020459372302656761182439724078756799385513358432709865686798267573170994114104091658950356572207261300885944122874180664853532242547026390619455877155903835297402742356979235796857398711450285428581166192341786096273075319915489631843347050586085085069468984791982106752653972330366770628746924007724638295582401550658915548251909579221108202936469763619080176207081759840778978437560020106034298507856980572154842649324198641339962166201331127424721142519971555933654771099236629403958031980792210111692594697828376762818551805422580069956842225169038559852599669932506230324411638942790328725772615776012678830883217808820938404671485941483799733701828595167059275387945219693649744458011226506495026104279664651035918788137386394185399430637090960920474224123393708047293403854804118518598807222630731374982067204268807177897134674830478360594351958071837204962487066934439086823356643957029704449948479722611034133741033372809423168845279631058622174317382155553705607062083466663082975817865409061141568508645803780180850472376435511773504216713991909686718930075228509047571248984292432235672301049765202151253432148121935474224705022548276036980923023370737131054447183356430025876709015217648152802338149195349947041208922733804049931629322353706747846902992620333674380766842646088930544466914210814986776934420544068054755726691661230954824465389753083100987763241902073155858511642085725751286793028092509687892421221006767183487384649079187539283054621601269923569858223984627201664569309160387469094883107495550662167788574094635144230041480843222552568223422784413913862958695035916094020592651279028309915619541803814192911643118516569798364743592806026585762792366595240655620674548444904944272880209160348311648371743803923060663132744205785583355846319227449829920377212955953022572464186898941286852581217806856679025205969910910567733151652681829384882807762099635523933078350363210349296304393989858165201645620593416954096495320904911451582835140070081929551091649823384760339503672518705526113041486715087800123771912874065056963080310073296988904298470474857684432632363385220826912756135495094976573837196786115360154723217697519071507727692199521143522743309967502871261101616453642623787669141280380507224521660780118700032569227895584058006967795984749550897989603075406863115564635721390352078377160787113546862383907286494038788615238639481228828065614149703900561702201359120342772707630447302195579500519995653225760553802901481030422653748721471239849493261968905779140409213270873541612775090458610880093937392896739993129407110864059348882297609308312559071288981286050865355846760617905883893994785375689698167114029279940229338203411791043876868377077915329765904023851836696432330284863596763945826005534738076811892344527884615053376022146730224861550978104027823892770264931887467406078606694083249343020553351662423512048669035490139415767625116516242918421646927017865207200640604385306474258198481098287034175216544862051493679679183859968027146529305770040336356476972689492235711456972455690751809912652038967873055951661513278737386530735636396625736209394987948692450996420677325661283919927853407034493393677414667290785563861550947938970096285951276007472469599959347923448158847824350009991039572296717317195974171223634263204858172036534195182096634689106397220937484338794496108927880116404045913895958747235393906313162347106735067386040881959747094941609746849299850401613477458150424900609825177932590132258256044902738570636791625589735473170677597749043474196359315726827472146851871832269881709315050382518358925546761703985034598059898035516912141593967429959544548358701807386312772728929661117311585965031256572015007515439618284665600438462717345813381148235441485149084342762019528634933170610959306021234383862186212619408917013639861427627844818044304720434162131207434816601611039034841908169688133565579922972219061976512705305088998882401571848810498648233159154156368419589304877827290941462440662175726355034044790474932879700847387988318475263572146866444660667690343281915269762751271484986998420618639473524293540951525822202810965542506732880844081086378388821095451027564697960441048936502183543031898970171996015326980899111448885464511080232051509633673058898601395508245887404706796781885483627187324926940732462150625312693436138901611080560397017710800968851349972319625110905878559363262229735779695227398450705629168845934260316615173846269031193621732357607737256372502239924573548921732648864000584297229169181829595254003697803273489735342335040174717021027830013460694496880393826661687483261973053409326969862972770752796748228546978224185682300831073832400740790582394466687610032853630289543641109911890790838776286592494837195544243473711612399113611999199327267130475734121663877516217475896170486639899816264301470471004329611011982539644059718629769966021042952595172112094589468501589344779314656880181296979696949524636820928105837202076032346563042019741824926391801470742582244727180984001422297936081843424134535037897461747962019653645824314263105874068772547777238841653027650892052512032612405279450005644013093058521004638588701850873505534508280110545151133682815788872670261480475037152848527763844825293259677527412213323932042586450249918729460525486155288073165547285319684028734894953624189446743228193776956143810185560594384398920897999189584190416853712015965046112057276803516420852393808014381551754086086172061359948874084224770086490010279605598106260179617900332512374424604027214224646544061410382324931387194939963457906417266125999370348663593755067731344112151935184239575173612322005226167658269851354168012350236349929310615206990990884320018120554729656353130452006288349379395649948841597908998888540846067898322943524297014353565198510166617863987390364055702663470332087800256637739382742000819446390759021119195443019218129980089336573755561643806368319121445113492538179279254060054391884090794538546102299020510215137697894661075114065753209967107755016003639824289873480614991202316632015531943123491145192092554502476640574902548825222694399511924948920207037084991091390282702952411732332093290725196809587659730970067148228061694015751179899606511874712199530585186924100845693360059188042381982189609860552450821010466180755451575995187594473219236890752787318525163103408684561352547931048845330228503932174567945341100934916760615873919690663754942869996538326851841859247935706315169748630060976739105130367153490967767717068479196700113410799835855174528089297394078652630937546140069572868543135864940275810028552670294347648589720550483945414915306871702194515204967854100030779277601114995065943672893779316353095510789965031209390810339315770918693335413478337283333681048378174581827441707811527231896893752906246878315196054763395549899843889973760235022510732038800133501849641891250661225257822231909239825383384347227521026988718447181752578316055187758883781068505464410438821191261026268124448513119752800770951422844405359104593392326720796657501184784286102289873221830245017811336157459358904340907244241064284807756550471821658293755169438936396093365210033027184721505946543779300108808458814050670872688853099455825300957375530567107820735976402606668291283935475208801755387098131494662156426248993740195807421316717243684722947938728696462256229299922874313564294328646854703809794117307541726335546872162924817875329577605043114794180965341051350190713043424774426651980220126013679218917779727686818211211032709405653337084787176726854717140781610653215868454059716225741459677103609990331140548322377117104002522918558941992500048940595223139598888094676254307016982677628436131527687854302744775766132423469754029149497211736453520581875349310777313960922671329194848582525482131121562205402898524135223744651626065414021350978860596457456293169009904413645687075644405110203228961999937385734506728130958718895795618461345187139502922439807586918199087850023702933138373076603132139930256825950636273635858280315423719658691168065940380220957704143872561400498296910493241098083784854186780826736182911099244033590924041830352516463739612149739960585684709835840445355885531027390016242327213368423516948081556534716858981054167417058273072053034359144731595283387048845949776635614014239635348063412940198867173248885972990806219109013452256070953004255353740441135557713247459713634602947751173368870844869038491160629079920272098076287197726231157539923747804057777100553927898593458604888574679562905987613242284296572221484483676059072371665852572326595136691865982062531529134987514923089923076206523717747152000349212986852211608486416768872154988676383164803837110411092760921917264215776526421461215675900536982079661370200238063423809497566479897521569425410478764748401369892442933874750702473888027131702882145636554775926773207209077650949188010305730977782076145043998101641358460331746206211342476639825055427232678544608701136443658477329488042474355982799488008992031633310364018699821060701713906640670277199414141970167865585370669553512717583636857840164211132083749862465372226700079494675944073938216563335919865617281554722719592803020793648099024768693047860647656198865255678403284048258218697197810239185147028411734783386049890089431214323739627719783973992071644243886531536776297444614647818404746558143444779827496755134547055808437056992652845651517876060075490553333276565308245917521049796168992532207893672567508362105323987970265864022929544924329345799135444486560405044368779397167292385614406730537908319905991130193863406522741357438296945844103501873296554204274299379939739302654887546901516406055991996022351499728325787010995221041382957784231301977223179115439842931859453351830626770616035408581261886265913715692709308056547045456893400591557940998138265882990755205450927996633893571670176914372255417091650923715785036329405360810271193049334432019139001249274605007680481459275143448778704292912863647031856741013467722322720018708338983285152089812838286196744944129401883261123165501964915385748848985270563355223340820984066570994868933347695096054337975672987560991461729744656994495340783515426455578147220129910146490427918752098160843726439011257552578791197471433602359203046752539237871504386704843181482130920623121255611079512007195240498194052771884438149137403188963649503535713112492930817887590096322650401336649597607466235322309368349013335073328574522230492260791629954956660360038379928709724032195877313245645069917241762781267133415041954517086263338311844363712261206936700438470132259778580850073908165737360436622869139709682078624369922973855464903244805093157092187990497204742626863678210661956052271395305798251952947229992026536195521366466924231273284328892898766333133836144573702436689666004434760841784805171344587562566185805782360232462969751360005806613312696790598300080649746151930609973903432915132229856541165427016365664840679910544366218377644465071277885029580907055383783792956906263298145819949895712750767187510154846331816856298815077944112438828134635729128586681554869017028358921746299945041688149335476144877729820499797685995266761367479704556612998414870253061545819148928830711970091482642819583894946926586661922240702137540302487905488487638583494379898945011302016812041998399253642226322774475217130436619150123016316064996331243962642928608886996029875967121033491541853675726603352221535782978034749845995462757153645164778269213367858845698671190353287119977585604923757177439821571764004406696322559293326674658092086393968987019845337292034532265754600055739030150866457106480891151493638640425570103274161695869111830633581150131504637443267763201180695079589739800594186528525071062345597271605797050766937160368732202547096689185039216318963884480169391457020353484305187158580893502337112787350671434106925861019052921799052198719529844794983868352455126638601286158155232659274450668827661757985174420964729543787949865634911462478960332269956425926249073908579309058516549242687139450491802755460267897142445452091823417908650554143434196998329760046197250012674475300034872147277062211363642897793970239268611800519310329329439057588153368789422479183287309456916927196866300699925901078901202664589063953011320442231111402443910758513171326854559494965941669442696002769290263949330747133890502087155485488399314610509295246465516306393132296100478789064440122808573153695907038889646518781560901256038242940675689332825692787731648488494432861722185608420699081145901025421138915930588963802435012099306909351341754321659895229621440925621312315209286587521372993586539285191158835630325212002243391035463723072036585604563269312157597219995017533635494250405768403023997510915802433241365940662193392575165263348023698004481704720305134376555854888233223016024056090403552738704404055120958538779969387275686680496105124111620334690608377920104119968466097373159718842807648339436548530179781232915701106789637165172301837074965748637229956411849984044941467222671807076488979146529620750516032787291282682471830065742343544039378470484311299630341358613574960602588346404920869338376045836193876858846233122021581012796206426328387560070598071531392649252277750653967888080562301988872730576963690603506404143029243511833199820448688388045392406340284808791822428074214793029876326196110616378950692522629076425925998751048542228757962657936470338200133382039098160899968224511159385933182612561012494526826683658127493467760931079635715858993725832149152261380786724110374407837620838906623957202325542864370486016164226765313225690640415571251527452494299476758545116493062282606967134165689401991823405873164279224551773095645884705179666492449221031083052078584598189680758404270729712391781071172640279269869519894703524139825643732212237902373604588953096899889418820674310042966989013832714182482167978636869088928128914989909298607565830432137059171205477960301798756591186241474896410331940966507051771820864027546533550315833574117366936648212210009925573814175011745753028434759620356737244513885669773203883751406053815361244210767174150209115571223062025419134148282257752386120139915329361114859301552766212972430040179296897086654114253630359273941462996045690515981201576991847331507667408299221720683772995170745926053640269389370164260416962374764467202284341562614063430544566336107792559019595624937931329102264561547366491317753241759932885176570264605928705134345434022768989011519304791786027555326392853595645734911557054494422519101472378364377039297929311795024337868220431098518759684079713653658918487920859851184176209546438445967385944792130852162788671738528806627692866896957457054336063312275291772652755879144682256318521457337649381176870750586038656370598998342399687351268440785367761577089616410224101818814336242792787687379584148263465704241444978739238448886027248330462576433194895391155202742414224181883443632645252814583288328262725217505215130376173151446097754663604420980227607472709296460082778114350842346131036529959661709448373411200113781711251494722922734417635264282421451265340232554550373098468916793475924383317860893459419191192750675692969745164975128951945137142215663822699648109300335049638764588986801635012875228318227912029637889661482219937347560271038928459499594433450996376625479803094398287508418680607235078469723995844856951442720074457273952851224557129521920732568497298696174784082215121414171303647005444075740118347732168194978069734969826113992654909152518191530675052832564361137501053143308588874344292324444447154497241928040243867797916934616791712242866127958107151184910152798371273867678269634847736671071671560048423316820966172915196101005417895632799657844213900526482959552242797054923861520049955406991836119940950821882156839880375636499356924362093319262847199298082854316869856618652440150309127217302645456851547136715030490505712776263579654589592405351527558714580536439376867928570329762992231548042765875653631349101690440431445325918373688541344309619019776835162579285043537715666696805010424011428290462273542688372483703882860127061429042212690043622706095199121914126680395002337463534825690150055314841101217548542483601422209844267018769750324531961117159196868224569194690349667825764227342898383346774815258279971141516631012233116886452417510549835080130215775433077865217680766119831575450617486666465013172797388797290571016006177428750310332141602423324690755855799132359084366621418893194381123065892623927889720707169981609316066881601747923657731169215727373377044237359224722413529531776021735014140584122892191472253817040567463236115289956445529156944285966985173222119263406310081988465083468541884376042450901029881369982035135342042289150277709029094447311709157460198147558461310115836718907481797006706037745546852475909564489253489902375246088608270187270235043039056940931166425675122443988429797726929667450188660027034095710716184502786682109148836308226954564603073763340354698579026273468070504667659844207771912119837981321200059211056357043353079878877740855801859514896016058630920303873455831259117212031844563344720649995047607727219460368171588192034892986473387432158179145836057268146117699003661319974689750336405687354916813006322753119838931223368115295572656772203208660729420731126878648531388406567539920152775985587259056284682833910787170593937385848027173527231544340549432289056104628937115435560912180250922816310864647319577175750484952052593237747395448531327848804869837355243981003613447767101724242167740915061819704409346038270505302716173121399452348596541388786071743894542949941321857907537721142262467520675536136017777259692778111604456891031662111682522195671366712986512993567808248479693446391912342671653195415099454777447474849731645385235467354051666480725718155280744870121220204353275647625726231038501204248029982137049405138652710856058543025178160621545917754496703137188571595255446814842122638178719155608920278100167389439394994058460183081517780406291888023130241915793234934777670124916043088325836364662376308124445599750367093838676783962523122345051107353875265904057910595934660718334483715440145256301093908016491794412667742155195695761178570551574279933159696833167409050764860453170613867539634598402708956787147518488836660587931873297326052300976809543442967158296171070667348026919947201150129605062538445161371534602476108229185408245475836868414345238884778650822217848500160011204086516644231122390901779167500454580152364338521963194568073818653907826593470526435376657077707235618232332528511474878258203613624615825538233919529974459319904507301326981202326015453209006265675034934640889377802105588637495035898534284328009698945560876212025544713467012202131169113120633692808217973100426144420924531110428610002882538539560964973656950757038268423036965240328858213952891942599636609646349623378766094299623038676917730602339863698006225507898338362319213932888964406969199412273981950628085440177646913846390143707569190637884682331993339850357258717575844854574600812804989258553946866911400056930599752838307790200538906065471580922977740898122238691913850026578822654035539375190920564559568711926459439711614607869296110211774191362887927341588184181220252720723796405891720546052703081387659141093809361255251388151233166296057572561095773930785074162134091553626945262152105342643436322334749467808537125254317839470403096430546882325033381046800412729227973629121178560541865080582423265833811791804516256749688756440559251873776737483432258341121151363599422227468892989886850549207426948782517405833051677222927794807950216617642368168716768229793378908131530194063394591318566327143916554324237896973496907445708712146121842461500058717250154615750346143274728831078246202865109145186732503565893696093918232084752821105392642924127483963409296753720100793835189536168340174122787013895500264207327566250420372179050681913361609883795718862049717498312021219789888294202130292630640460183936522707227961207256374785371413495028603950161231443591426700095477663458634597735623874142399307042981124698900159795082611485217303513886038516906501738228750540053355013230915535837359968789484924234057346674443267485580823170424932976623843944620940778210796233563300858573850036765012249576784452055263030318977273233716796143767728283382465795645548276450642978348220173026704128616681508557316770649218683845826528688527360945071132625714955818488258763544518871534041041374571823572200187179576924004817175882701540095303261356850377567737958651409486145318755939639913447292476817753562191623704599233766733602875391330179308678068254063850277602026163728464937137404192725464281004576377984117787489263440896284879645950232880353567312411263836658658352659986271318872566489999304124558997305855654120842707546968942764351319915557460520781189970936258752968999378673683248107437451490921893912856297695365629358415495653366346065499630030835313749994617297248445189911578628113347111565002985118662204405994447716275708211164694127588375342873651046515220703045977237220422677085220746378200975216123551412525089390316132294091242296948749437536126171854879394747341052008938513713895682781095631614567309368253670248280087367720122838090902896078848248833804043429245200277947913220771849333463729976798075403827196654785257365190285492968358903311768990862276965263458045627077260830446650253650906364643257044135207781194177900715802733840172979370154327880929118564318529747492064005091742087139214018118865801689796071437020107864167675472777783856877661314380823331857752465917975955794472119719610099599948642460400366080206346001839956304804016403786543205933696971823099660034487775804818973905453759438225337760290364913789035967655049714164827690956372088862077642667630341007539024987527180256762712052196442714832019875587602577924343746263555964160315976087655690773804701652697881467955853364266064261658571313622167455033805363341397470499459138004425120020545715700616771572701153504117412903380990451126063277850431494289243910420852260126566213933030353884233774508864230589355731389153358062682218868067938681219966441362507519216822989762420519937370822501637694679162997526238594186392875907796586477118099659045463724329462919936068687042989321018362394893396432342030971736357313047117789484781193577876539728701166542014831571191005534300257672625157867994816497117190808359553446842752318694319575592342721993975754669002866992415704146429859725910888768350457005814453361019141708840891316830511988087505929351867775510700698143008068015548946558937895661064842194845945389154373925865866463683362273108592413652581402305305590393293798207095921743265262254254243372083055920674082036401371672449575221845462530950053077886297398838439723874292517799594723339758895987914702537572673998668976659293487054804831644327982576578846232497964789610491345970809736183225707336134492304811867470071265601508585842821512383827126190709882500695355919033640225732677696623080990591069562644787877693349385796121391652937521846476249142211576796600775027087147040951305602915385697525779713346703562389068012530566608761873431987070525199941854448283896876208521129558340227301932578057180082232158370833221707330463078475474131848709651072974119231382878501606248033047313172939177835260771254093964587124713375222231970026546749441369026937968579493097623254848097742167165053619679621780529983560753544719964710752417609870931269758404530986910632373592167410410422514166919660828118354425792633390162492585204882514157370724209748635699390959444854306875992393236036315263342284899707594889285903904948348121864282872587731570272079292788419313918090835172607614317331747643258968820582849847074647038423122985895497778127149927398579489326906551220735253000498810798573463084512137274238435474422730198591144870545244041837921245578064669995359846400155522573474995027162782055771757071302612099233832869716424794680808056268296853688200408732668765757219071610082736703229007080893941840838610064215707692901085795551985530727531813802203436914399712734569005549065178162314609804190839216961858919877900557636779797763545021492472309542554583919687304168127678274993625053564554058043854692064415813000622332931809636915678497852492147757985493220018204636155573715005887920772408266992276850985309638528661108602100917818577770907720050506044899972078709940032058332224513977007784065413014902725448202677983685852361245318901614153991951022712859264034240351551471688720126196620275203982857258908264328502532821404792506908367197405451883160019201738525657113436995000278286816039364920886080758204503261700890645168873156924177900849806650090110988130829314297604106920821689791773247886799952238202550039966780636570778759621184909209800507867793046960069463873076024692306059531626209430001896085288202866795641899962444025065153500241138547752946683485996854925548055537107425612196955367539756928550509316255924563265932877074459385721016353641301856129788460037973610911053878708347509154676373060757075697971162090353077552657355063339214176224036951187046076188266358580167460542964008552838305625182632516844965312501153640463422204893086360999004144065015889612578542776890156931574340911019718091736998055014600480395822747201645320377433335065370688858206981925339110748978361513140338344796550678327572805018450047496640654244736705191101102324559122661957317267018787634656613911353656569534286101752454421843469595374358154859850301370014851238610031891821974550971636459606018616776498025588813716878702861760788153778394205864556661764734914856278753396820690886361337926440402517232212925676639719132516747815810079250452401151473473960009332418738849684014741895088433812031461893299838190885998110640434777761481877014531177332559818639342727305224181790125093060379487766781018424535582643186378773364646890372636387694362687728110693539773114723124512799775889350982495827688406592047962370118152221032574119597911778700674254268415533652023218206118381900266485698351737080922998402200996027890065861156463177873703023360007763465177656587443595572341889029660870185359338312175484572497345502005967526807738961244656653232540564265765258138286380262475945486885940934911763784794697970398528801457329054087123793199629288891389179450098577450932131069651484741694323221323226877005860560844527621245577669200260062608527898854728189000187277120588817245489951041057989420493589869217610089415919711059818529848306842993763329328568050053223691636121340220275422357030612455628035315401397141481494749562575276612747370984487630985399102230242798669040163959207021434917755806474085667989510267774140497296105699753175450839663722744993381349650951089920491558870880329635796393678203094945271999679429385458096662878543650453266969394414278258100319951613512031087418152313508778105015429344746651671060027857810487041592327177159973245463020633650557202488230760447293961829209942164146162429142982582656677922071408506204014619164220159823993443905869037652268088831898766413043383290353246337866165306731231925801288921078977114211985881038255671432585160513262774518431143339714447923400236374443566152710003818242180595282563603668890022576133215809327491077752975616337734795437258767058406229674459410483617809941195832492576870128269677821574726416464956678191442982738705416108249134938593414723618474994618650431702289873907136815257963405075531889130429709191390595591661573791678913872925294692372512176670787588508177015277831393561422948960276564308816439289793084038065332895474343917237212336497831954696436714454560374517765163067903738881643465987324975305492848955058271900529827469052471081819198933056044999080773896032551522092395141390474012153630719260529873001341774375208710984478278196788459545634517392547071523909089065240915521634951658273829827439142185052024498076392694618626647155530579932781200898555467865552795650785278680792925638880789095411066961021877892809541619321400843321113981204545270574798956552302435678654264486153200813121249411660734579824116339946621442237489808186329908560506145556315116737085838727053549949946793565404988397610196836368922963858237449174002368667169020437378574531284820218083229111844567836426912296377485747340931600679738001853586247640102824754333156260667320020707243583055606141952973537640599418184003981726186943186038765031401270383323228701113541371267109629001679685090803564823843279708097646494474103288807826140054794657648054264437503038418544718648804506089130226069010871942949593514019896678022043056373003094229499220475196342411558611168050221887774836023537777410264795155309684418004493492354962330839562386275122618392106970688002261177978462277230814866242548640174754589164844870687302336413543796453592710501658370484289521480534477845313848104523258401800059972712820282688585110630663998831829804920669022052098651169033634797345547660353596111295021642900680048519270514401326096743678548290031209029615235095017371796319354773073519874214529445496013318377421393779926522262949104815102082169149168463761723198219225459021591967323156246342876695097105302642094255776305825864764060651635045066457873331219709116247655427961982822805340883349890022040964355013630832763896364853569532319043319549288317763700356894626337721610822707646020742878728315098022934914835899150551922024142553511051812519835831989872144316731361913945897041599482873600456309688243817581072077626695099295183505249698674985867698741023130408758941229148609222327663704106482286005436373012760455125784603580815593413830612169240904129338979081291909263853040353740860819001120252879132829092847064187520561031329306603965185824391358096627289217630094036898091001989421679766925299683894775443383447320952362170548310874532756863486007747566329967044489338959746695120905079770663637943343290316439356813549861534623364702158104962786076723397066981756090980001425180366667197964057403536556559716562829751431556831704920515022546476714869278840772322578314894583533111553899175914785043763047140192157994021214176295079030308944157979423959524667428981695606188228973251822232591153990939044091969945534544676483901801446565497046482444830595621563378629819567897003809183793689189171204255257278413945649025933104040917097179150565301685190954988098125113603757976096363518825396686909654477565402705048435999389979379907090462054519541564808458797371910722035865964099334052629231286186842152586673623836543466211175290744998440372782080900029557542246964069712715097643786495079774041365770282259601016738406699523278391072076046658343490046248062594478072699313117297605431837888626093870090172512265264515382107243011063557485522276512388103636928213676738350908919571695726427055426161822168798957765996163292284279535436692035120716865193074998352916472062339315433330123574823970010338458874398872272315253431132781607869340209742588499146409393107885853009238266957380732409890259285498824774666900967550312956631867696949944569933327988864466734708104713528767216666274791973840888645215979125489862130263799795211244299832729280270440609562733328925950874189403382853682133143549243636784647417728649348584825088526015715977383000153576347030056250074863883793959276638247611423996380037603348840009679746634678656134767243468508524185733443962107068174004918467585524066344292553827086612613329612197628214354971260759783852054375345639053884267171334314142235850466464081283615448555331674872569869439795385809331277075038330915951679574350432419006807132024514450651154405617647732459201280853285089936327028947671361629090926824609940678793371493366413229497240622951448196675823342682320793381247623459248339796494692496336751991483834685434238589155679967607369917068325334396673748656774023398124404259423228571977236337473857442143888852034008317412994954852460769579338636757698119005578800184696540986360634766690860517454804742415691450417408297340124642477819731371378120599860434831885826287726530527516414050304122869025583872009589219608786286180546189610348239533893723325821004740849252232969210141740310154477721685936436612005913826368155808414865413029910334950812290457647585969318877826867862157996574033344659947522585469287816004180390718378991146461740826662453477860610905433927719414218127460628761028309292764283436779570418677396852968610940223482514500955427646345448953526337235873318042449752745317114953238862102108293707359211110311184234634743579761405913987307527531557789580455932628094746042256730513259384931052326008345484716776225679055189450685051867817355792024632330563347184764164612468215512950302235352815915042510418743174613546048491469524219027871864188465667149033477292956453692005763339888596578271406252819264813272975318446212544787837839565325382685362747747328199316006400093238119241833637710147737459528908813149520878140002982959570591748071465057530921410169730606279001800694511999164386328707942374258648223408367143249159968257998421612731194742382155183197785934609205714291785478936707563081081998259559676686949535346986157349965668929901830084764245167073797835193874114201557187367459940629203399813169750754890919896054333062549284563115685748781163656767608767998018907976718218461201540114809118705532057811578792563657109072836382663000658721533563589920610193613501202539860276565111548287297981826640191270202958960008114149378890600207571515242052588374717007558968775181411867600782393641130673686981851486076525260810583816880878571162705938142863752304642777773910485698061261468978322978392625052689518931991429930821957266469156395579048846958855465033157457658950983509552856283922669097452905283570172322528317994634821287192330221954300892719637955183805582363863741572633076934499061035851127389801522306231136247590008483563751455769011514808133100310626482707368852268485302915602687914254906361168657984922449679234720248497059779826852450073384514525217377692813956859135743652512433748326869295022184035272192832345283301602276111328261302251934214540744224488538401079336166664360497745256105422085444198391676728572697648389521564829401204293146852998208346458997649304542289526855068449837281046935980447028764676944971965619801293937771388220351193219540943015296472444533921344932183698329823127982668086493719844579219094888726894235089477388483747231221427257430359346301439692248166423419747986198789910521766833352426431780761939642066811965828508382646697936649121863927374632324868535573888369332594681316519473950451353479292300132305137709330990058719796616020609152133218213084123798938743072339366954793087863142599537597550070988047997576847924474860809960869226863370925247141403707669583778074437816953996361990622667367019331510466932837863042944642134437848504151654112056713080027929321007930994733615089788913296438207056643215844944470755472870112122465724633168096879593204889278755340120822280188992221167462398317016756285258737145819642602543828329776714748235037630235007255467721659107358689064093545537063039306165168238434500772113101843410688527097920013405454687314660670068826867914681507711237889402760431828412768754910575011400512037382647841578643215290575291110308096506072058581349254723231982469396950115007643929494561565252976559194044246657498320997296567150353357893499943007326662405508085032683969694038677509000651837621052417222430700130168131158978506708173953434249271990364469998085663293085029491070477348833175548643519884393646927781906941925000209292386284062041966667602511831057657075844345158052413011769526653700139529518971360004451527530597483131378825334026469003188043964349879324797830639191098830939834584245805478243931459198619778402041071623661547488050653226878103382059270277486795658643843662861146428105366179290537038579990501534463889431870503299707030535146391390252503631235776202404833539806664601706608668477470093988309032782602113549839322657634743560819390913162760356156692270903210153433192051454017021689526974564487094314103099039013431627591641377582558700434181065505909362065789513440141384632159911891536859960371486061571729120756854648564838067849867419802913664687859443644817794561687544712944292338527438562796491368426877030107671285175397558929357134939409308345918250844866908185336660575927413706197247020890798905498085094053960024051433617408667657176497866575202696466699581684345083793243219590695932568729365728993278086351154502332919333621331391484056959212197149151759798859378744413065159536021597690786810385646668056380713666545157921630932824697647098222749194695644423847188477706863873568656409347980566448947859903544475881738143519659816907379305832753028300536305361241903627412027521060016772680413412976893063972061592930542553048599658889369922877886335491365771827074378601221847577271430907250777584524453130969597781721564795270452917765238525751924389211290270909872085224326839726083675156636308195906442521351063597738293507141816583945887321875809290656294990899639193865329562612073261891488683484865212578128266242967520467290852646785225921059195316500410169004835789132619533305752691503080648676619514138782843346614022396366119157707477104563890403431133562296916902483294838301235942159470573391948621234142715789871341922584767258704446892137414831700138818911304842986429602482013121142247534116053302285874212414195090303916202399259284756380395821807163626041123439903611019365055842415077606548900545237409562716508255931299274028379541257184768515073183043932316658837141218336722199335555852739970009996642445932836389585628035047294219606990510711847415790100950145711082085791189850837209074514521953319688046006788429753722761641485394157508081490709839037280648482649291449889213350124996312220568358815573049580926413601302642111223572803115326424136888393034243692984664475233067421446306305102239420801549476634025865412086740675391062441658918877628932425732369988581992420730532721907166403486041447359810539748677504339861878881268558432087331216980500418213621915344762333008416585223011106640889422439879608545188029087442253670342481444426267569190267304190293745949112114417252605235774826500094446944010961694136391845465576987886021176216041818036597082356087954169004311433276374027721256195663988966174203557864320735872879604438613978384232399278902003487091771820194722985720156014773609274536189272659813633604257202440934250965483376507448664967686333606098688431888160706163316251674658122145754761766328329826783064859618029834323067237109761890983520576028147465694809288092628747354143312342196205522277483354984310183558846588959420455629159786158349172401349198046653056072391780876999289330820574873754586142171133807275012908878717664335370946798366493585676997939171654707868282252201962695692493246098175923364360464967863979130922866862372295375515550402097471015844316650278628852866437936561369506124039471285364406412430487936850677935552533941451334828623865001358769536374137900470167274993167540570097502659970442906644700487056627054412104951135501500005090187027186204703757414376325688097574500355484687185493051054544281452451446745914601571786239320706192906947763752871743718852135531812841383319855885502416311708563149287740608138194073878530206795997262033478975298596747636216400218367250623396706670661224449452725942272934592654776357093995018158088859840738706080824903461296832537254085869999517896946542113946387419073686420673655382488523181274130489431359628511075294863564398265332071972232711588448904433291986498773309615764743211420162471973898315589596844488644699598195128051861456491404412183280508005208514858737962611262109462057203146719514283730205376879829595179396978626221111686837206997219527799503630972248048795933805958935757551293099523033557883116674634428420570542723094726857618142760222834080806711010642907045503962894179591600561140381322725960217025970296989337642239786399900604720568003223745376860917771093376532848599960599267380521004812874446841570232497459035292089553209258130258525285720631941945209825669025536918773628729229297739321389209599370870459775412363322299261871444006034064274570166398906203257279306360911776657794918706010562545152010365563759004587497168407908601622562246542633478472441305154414975489890255607089515284220163407973491247405213934797586468657538431449313613219079672491489942637867288298153234566024718116648452597818829105057628571669409427317331201862808053571325098589472041130287814706490559947390615470049716965662282906314211149465515403071867731513845993830606962521067030982752494226777538745409970175070993896273693534799478476293906763942227496333929640783225970792391356672909354980385272840870370435882384640014756292798246493294883661957228443716228595496674533242232361115549953539191435604270788604443475843837062876762173438563892679091921173440827251157690521959461142138890530402648841268201443585111870394721835156954488066273238392773169697697039683737681624046386352399841202723999378226715747901558043803973986355433376494362247348320017622011504189791503900193016486885972823745172280720268660501840974400179111457722033209529780002477072122039629132028828144693438185348928337306073588381972125179873706637228411009315524539846132055635148777473233491352892823516804940556935382105916932376289361849551628090724280943781985513353824770110024812920465003930369974025099342268268795166223955597897723346971653655664431146082292379756487575406948287458156070147144493011725322368236994295754057415463933813343647970092299672577751225118373666384603498098636872363038935843603092769845802740299380271799691281689691295248729532447035499085361890772302840571541913355852400955973985243326113972841690163837500508290635527203572013093746225394832698131480543228009569861310573018526054825510460032938817874111963108553308476795773746133864148707435040949731988665233573862813966139583224531876293936867956650973861692611995306772613666152697703808279310123807144818949418428790408955492628650801199022969583385677850394485713793423005345067098004875306458791734385788389360788201402967927432630608808447983736078516917790934833910274532276369492234644734409591275817522030052494490898087879562434022901345040224301874647553995005070213123120336225145511438459889939880642445627783741542304718054315556076429995367459352905738109395439476880110944364234701559038956931464825712348355901079436191315434096802122043084176961315208732877533717131206409785581357417670256363688226936697753773601629297850179366344181179965688593637414454858747449741047100578122938552170640834191584889594582242162248470702446009376381888804394030170540608700578885184359303964976275997820710382241670800864217694624758088457466498958366652323661335873603443685031892805828176211763536671184355021109435346513848063501111782912586930841200970124994205078442011791611264188530700448518848320600281738835165977039783505200863248524123702872625600845635829620195902443197777743418833609490407367281202305649117006238610391464256726231807093956788350733698719638647466023629201658228756513101024321064790817952797422936629002028559682337705971821645505676151687544353652227225160923856494570126844779926001644195037588322161887460025540581590214049092405937925835611419903588795716522496887279215358599839883695627354858845702820194090055913584496933714575366612067328911849691343779167475507066324681206323898342881078344899173867161451371935441496794964266394868978125724048656001540304192229709425270063330499055704589754072128888504646685183475583887916166103102341890515903024533303024600238737157672869289881313018457168137654215316092322061834382458296197794251111650453495860747012991202165246645630902941927816243905409304733651249839469048129823282322104152449018880688571039637942459621750303994822015075076749908527417347630532240745638552683917094915275597807080769401956307902211948875781406411268893653546022618642107407246423554151514863237203339799362854015033261057537254878028534554779117043745364497204671670767309207445687627572232430489904046717297011973226031625278755910035511553051009215824366652512987057822683974895267066307576707668166383598968731531645379240818503256081532756294651327883088530283238137773750073929180580805539282849694078371158785812012199766837299257400144526574886373834047043371780513882768178769605720811231498704517255885978589550395524403074138647690106744374342683888913673421797597299025839327900186886655474065711998666755203110161343275668498433096502982100913718352647050526915024893499045816404248264664704584947855784670018411243106348222750912850523274483415042911169456259890828460136417290559627281102152946044300384012302226181615860106126912050747528077940632661885383138263193315689809648185043531812496934908057191366656142034107736854997884150209320114737957453084657100929440221595033908662216818057763348309858473763899001527888414664285369648039704024618808183627506078196452896978165552378655600581011517773246989677781625779423731064716895383257850463887266704063158840395728305270511833605123663324824430381134679668519343210811906311957556208088502024795225158433944781298068557989428652665067110206946172759710630570985793269457031393309213980258551124887364313800741471122835577085564439517687113448422548356386515586478309051543822974746230759480141757900548335549258538352097086016061311878826932061887317287878002239472231908966668532984941392345439463778982991043186850296484951527196663418359521762328401076876815872309536984653720764381686156795928272621632224285844138610467621506752172819696476419240622458416206290063506442769599341751193575612029541356426056474322583508139438767082974557111371270995846705463736916443663367203261985355270596897648132809407432341969827218174058394299927743833900939196565730920085599981401339247682016196843060834607820310011908352873406888473871047847836658526186149285291212723685688388062814309161944043097716633839339887936493700730754368558067056577669735234785070266006863257160613773058608636321084061539334947946878447151914471659881589267914757133242338519762732154353974808521065653770655105540403599283737396648022230916892932690496142703104320627447641544074086266037802898841813144303617885971427284743264710353216797510370911934649836409955070663558351590920157838653267252410842907025806145351299101219738656525541594830579130272790029295793560762598337250038291873844469196136436525254891261559901297172936014133545569011022299715108275181819808677455780826353884668856486758656067728443254224794265354691813954918009952492540294274061686618583809399818543232964027450983899381686434179094758383871257892058556956354084652714748719799275117811517104090922572278717277405414657113562559265263477361949959228468922480974925993788138529033985497322909995401623558306856646266339956273338790523959891249403451326808075621640301108309869003104375078915854505079447375439610074367732741417634848330001639157476061430336518115533010837362472128612840136942993216717830438841713832227908369336173964491043250184838873841094208409873869075286078129766337068822385147614259063719225260494652520501990951813884405042223004790807835156440077653167191752652328334168590570195208050133288922102905471314748728694143493746246128910232602416780137359582582164970747477110088827383460920610717062395898389462615660915856328790163598412391046863697543247022024120273491621895135312508897464611359378462332473860351347714325918353724326880553909682265797062680555717155557131114959159451988041235637141665121869032552426983294974595694910469794937727167654757845029683646404646503400300298884224027893967089729733562921681013507589128500543235809765190751404450674278097366116112111063025577366097342644813372633014621780859818921485588343796279603238042084641103327052080256667810531086550935616430547549477394839529256106591149254703448711639758237678612821825723199812526926939331137680186780246966558057697775285917069273571817867900684662993797912512194413698187637148412434780833714064934815395515298081147676922091447728143990452086324419087446062970088227650311078425118848746915123249453336587464593075581296456605556815129085731572409266537597514261804139360755812131332821680318717912763851671300018012897395168639693073022293773341175217593485235055393182770081450318345523609771214647555014016662950911732186545867953407477680461337575688259337741269172297551874739594508669232442894765963801797952624020247124718141577770279081078770758023049453390757876628663649071881528510403050492817918851505329911367857438150163022580569905602178010405636147024131778469904619176792409696840423457531439459216522929584854070435458308694337234779383573420922718665965318176370076014165711397886243136131749226946203233718724342112731249691899492796149296380833151797963706657188438490462437096299832721521766846354609340146336090448474337875008156561442860808326660799466763426064800427199159004254567883841175184720283284724438073634397563290043411931236869920202677757127032372104970567048387474150472435149405234184305316094719328372311316933630733892211883065547819017881907718343717716980535467308603549249150444936576060178784048849847559102325712266851093754340787045381726399181950580322209211716103298388180549411244749401897255223511246553782471734286254411999763237914116560922479284419674887608876834308444026931007538236334355843972486120229999303592660663742213669154753095758368585799221192972413851838013726286509823274444553333631439919866585120471646124946780988901832543528213212868846619364790676479470265789576199846203321956629396271836628691860269829571975207063548663337392390900227202302030222789261588293801517021121992095804999682368738822925400028015464363271263795852210140928578896827319479133510375026510226261264129890038797463032019356788192254517805802091767515701304291042143838626533018354408082955873071069527222267084699959073287334976680144426486414747164070853468991099796468853165967879599916440744753535937156880953571675463104270649930091283564469645356004609147947736980155731957573082073991426837900361078312850422584571904928628254500080003306244724242750498621444689567696181348916060616234504501069348877494765583553313087408590833455783450265259380964293034028956246300362251570376141107835731308945005010888007391400462025717648552102906380337094204460145113650131397087714519940893776816431569855890932271257214224305551204229761798373687157024634414753633314727639249728711370631026217623315457296124673611430106163352803410548288238726149136695913658291759443772837547089980798306231327333569945432150436626996873716939950484821850073816376136490484632503274086323606896935404438923333647479347408988760746964405446759969471709559587075497854017381741875897619648482515787416106449880857920333667724161568772475314517430673674572351861200549101636176686598375851079337730036716372775445858560901249523334258390258603610811349944208393498092637196428745102936082589149905189472017145616337814860322209265192982748913512675808461995591696957154508324902580797295898775897684034706590816093505800054255246904355044679764672289099957063176241931500932955398323152845809055709238202502710550030083906807191843833741910258891418146749488566244591392998017189050802323411559986250137903043906474644853995953553121694447020700733081163266157115033365699324139698595257902921519633327558298390131286744798212314672984724315883397006625356508008790699263679544681304251594833524069420111375030848935308556848742122047602801464967363938100077191271341346535790587075762660922763771641254253716844416041243524696397239130251381219117825654909349068207549794582496647997781532553606207850350278372223669268521339697618810579136259230070385298901952688638338139690402727621028427830351260118299547724126267470598078559511231211725901551872030812452820893477349620174451324913027742633060157985857859608867513894363164125759335737500272503654427613280517983719384318835153488856376008087222263686064123807808984469645165302946848584903429601916497371247669152720914112586674471535092091873571300044624637449205103711495560498381424742326651777205518907419134676566441281480066988276554669730414983642640776886594834097485035420963309509011942670813922388953549019659711391978392785334406160816975577308992302390405561100581589421907089772304955293863153135335473196730436497215407401781001029479086213799855492035358711737036545932585480904500411903607650344953171022261466329691183108638650862788198784989016887574241950012133795483134132991529723447442545786445561510138292157789110788654108348705467957600309129503150026315300676192623768471592292355162019707823834171779172610775160012278362182605720422979201838626528621034822329320408835053457232268106763512663013112235182601871039857080266908316521486803242537667343633988625029095238593855206341295292226377993942589041570262362646642576149765406338939088660101603453716510388607192737765989936198898354960492542700270369227863774924427632118843176367673646972608638035343345873653655517712665144199766583118040135193145833914201922598141396139446923614422833934384402983037476582111768146231121313583548430363261870656360355551031405709593202260447302142737531306676834027786832690373575103651884038519758742285208087560523464892543732871325472318137028629341937033067248946804012605838280338056923417681634827159143378312647810983763878889656999798671365236815353464481239761891970278162753436936675856074783788045218817304253664534404020517815530055235175760429250546417026849615245317770590419632171925077259116175855279050124893847380163985131315065228556941858350654926782407034065651684351685388877679348352076228315997732163451171319282590701687605401098903316858559835260093369490158074302395874512392165582793572601256952832162771554232723275233030087398643893161341047171083440043627380179180623490737166886283818564552157426461202442643684215760958543169023702901855611808052429213220471619514586602700414618189581248792831785716703915179056740295807654726147531041140013753731073532728883896870717651747275084357620318441024296905345465331768719646720961213007554906505315652439821647007457942073147221713222851920515378820349783332587087509617014305233086286669787331156025262198613897335665519812560894881757544107965971802242094770211918888637656206029435180848784999091728325037938205659016857673716057750997386526497231312532384665442335372270063501964483974641862299587730731434819244194212840243275305192500384774918523224854359088572599129446532744993495133389288211360874582607738836573603669502630507590271933874749739496954591237925322237711707662956105671820794638081669996574389674539226601203687809882695720334101424279203599455792745572068182519013157319144056216003093737354635522765380815178013694786896257010261876450301738036303352515315979506867726209496420722057844202272464071744567001756138479771091046791132055524686127584047747575726259389839313735786058005837567303323770518951917466303539755405915812800088828600636110017194964295453171403903123706075535984821575772787715292563692297333371347008744369820275517953480112747469143647864320929110245955560977627888586268458124440686361685850371112109304303259643091456159645017277946644263952594565696343544654164536095317713641993815593396647162449279775904147008874823163033230844521746500683232996139059846265869080629588364905388731498565983322393907758685119108829610985448036736893314667870039389769620697594829895870701870141900646672047698544954516412211929935122777098429765393054177978878668272213401086510133106823530061548813488241163380719789516386913110288830437236930434747307223162799701246572834145495709038879314034319872016757062169624083800496973609697204952578546066309417512836210139008693505122300180058927403681985102656456591683955663327285913298501504273268538140275667503577176424203829417204703574232762728153516369808697584803535798341173513932520393619570982429116052176580274786153898870855377927496689295725371562073553822535929755508576022850495488436342201601041607736957466557566824157003953144078453653414823953749217079934623309530782581523474877714088917910893879982797256119391886142609430636197837550297501050595655859998046624089663490833897501098308626582901396961591508893135352522848803398132356428180909385144794791203541955201924875214355197051191908749470826425262081167681481820755552733623014950272858233703218361255180431881826268262820190589803533715233902655475156679051850941527250870290893881909018693656159436435720107166304121413943006467266332138922836983194770494108364941628769679160423825027808617981464054793063249508174694994291285188380087140185204666115910121760833082842278030977956179596739381813892013918293924931991320582541346034788623382859164469747934577273432663125988281939838036187894289089287504611203102903154761140652742965835647451503222746261282986666448918580379301233625933399025272026907964013854888740118854086161409865666312948687319518590395365341288030814450955228838283840683347874413629094197789267702657845020839720932905525347454482335685035797251078907197792780486940327018668591836214673603013235047617895067965607185851790309193204955203923563760142203162830821480648154511852675457445232949210859898354149110979077389481329976711438005488233062675790317103870320045895498907163832795026753666751123350205094585299909164604673838421807619583837641566755764824546071712437223190808203301964977531163794695811361332099713987308824338089822863877110869133443112451185302662472059184696447603305729099477617944068260606278856034479525020557120365015255518213255781504473342449298074444810433843116012097446135264115199701752704256778363345399709220189920966880877135211392203656251556764847303812933443068905119477430419268651225796186195910577192984754059605523660247139984827038376465469855280796619157648273162327817459857066877110906339858259913784990397390107205073825158388337007256078363466514213378652327170274568457276582219031336530468675240218065503818895520255562171479481764323938387223066213897538081788345223494919240233030385519371869112897272479272289124694551307485289125587365060345707182919056825464091325048538662839920311140254419096405978362863877762106851037895794590823653997412220468295755104436260120262845176113128596077788071247654173235272970038407987142070063054522312075183288679527676452456485684700427245049002094279564618689663501555253433473692940070523651068597073311797543082358810764813096673859284930051588031982903202594331156966613895430257448652620827831841059485563040862413972813740170612918057059791344350419598065234895903545917727550369038382221141367111941816960641443891360121457948000260980227698406470455345040742532257163333929937185982709408558303298075745422664891520851269793824981611249593253774611556812654514918093676493899515466785667680067511399131673781202584472986232169232218129284859393929401248522396076530216078062373430305111693577659996521998613272714677819916848671642907554679789880843075096229350200255762026516307293183462235566069405102301003913350705637138449828673196750074895186964677757067974402476175017405437166667940173601122554298178972495770325151311386273781968928756420555464402081769182625845419848245619477338907455960777300940932793224388722144633723762160642598114781302101202543485034014490024339169886751530856893763934869161578981419188714599432075589848079516872621137951687300982543637369764962506058602222655437995844393055863702750121494980597464011514685015178242708342212885603697011404548603589701974946368310552024643555099205308374175852937698501266932676942244422227595710277314177085884633371982687585460561505951973093691254860626436694741550347829457840120038094810463344261294629874362781719913275201398372547915279594739267461135530116083008912113039088973220247477230429395845847448275621370919456686433087465888068573611005745698257872963416486357558741898892618089156460951421811204131972570783115802860276622587673687891713468986438860521088971710363742771358051550322377540118313741051284856800126669019846963149339740544061634601751659252226498856147900359911480267495929537378241828608191866579761784794012132824879993993864492204368343676904802316937922773428268946780311976610150965860693534916693116412813355568236155698067979283480823418691741811891745233274769034658334282280510111998831284902531996146861699476028342751292741260185546610972050782466903232984600921397161244237410182064526023565702696422623834844478625582458558987607111422435944775911291527983539754730159934835479465465027660743434118095738866320071334306677151172026516178903576584584845563798000874018276415291852360311487465122813301595252426350445020133130739531174836549447619686446313896045426743551237003963070006019282603624648361130391440335117213209437429691057859973186575082810294564507253408307619987714487363215384873801508766911518318993910998418357127356673394523750248118439266677424709287200326951510187806274298320371505408614830015437629266874199623356360647448813656697463011591418405246536793861162796259719970133779816699534715217405271128984743871841236758319857480572352441274857677934018312077218897087853174707972073822543326274074508606807554791079461785096152243119909035415567853164475768987930935467994563178420919697424184608533139116767122242841786041963525044347122242962365383679955477670285000611163323292320808342676860259923572471326783971404025018055778008906905443989875698715163986823349567827611392736840649124663950723340335426526112419885059955180337810776422587686889914903219175111812374409123826448144651391210139120015696298552083699795249734876565730775032122928132180371781281090665695382744209007843641474426036999231056617310063544910693483739148182968632456683725754723364466665729173541118530429985292086792268978783230784462555334560627845450803931339858742302681653372919154004779437484201702593883937144321326494414118621611395730793412913111078832397723014603416252889009701455831036274444547223573255070879827414625395162928678533744487975241048915433941133100518460720626175438343176646017923210295286515192996080322981928618094685360777894941729168794829562027005021151881688762107588974647675295599502759993270070980887555278425315483997752248465763217472068657341738937811557716086986013207434960807095205147974588523449076344396528615870585256605579501196133474741933087309414423196191830924379779225142610284761390665031591061255566234201516372459578169114539735294611198216464802929533626878539259828506422392454784668286919661706092393365459870045657817721249422800016544143295038815105704541673218919792157188431032365574573670461913546085714020650480796015512947886427456165680879919357299523336548770173493322878708224422070506502302515844197597881939027657856373322873621681611736946632093203828157150193875831138838375204357203688102909343826886603296233415483128293291661507732005267779390144471834241885343974600062716363176863960051610595096058881809219772733650466850824144000182493799639408992312246338198394430206633568518794749836119741134643269163183343325095831942074534101184178260945910680849223893276269809236328480039537244104297353661664818999762799221378412221242335108471341432255749474622339234351435481794981267950713082217157536187043626824201423629739786152178399423948967719415659561697697320361500750572355439657655580713204263717850102954532485563604952612283063305104200617446090555577522997859218296224974778277568856952661768376155844252774739472374958316021328928531838077639950090158222154988708132273817109027466720433054001969018720005153138272368502421725317224088853279202549707719672901571013301431675747998957494079932432995212863864063720858292461437450706080543526509487324546197681283320674348921307278451966554373877826043919011145235054228717358479528115133566229153823046055165646057758216422398171549285824846700273722435685265344058360426307083209258131039462107470171930624334153787125828861236122659884020205744056018181235573422947140575055342410736323003560437136873265464634242791177334053668923711103488915347501912003539453232118441085620745486477671182066073010950746232790795935982125092700314242659750233198447671916976911402230485934843318699152487042418792876318337717371455959191120992774229863585606541229208382857985440434858755084089082859890603070043804802327768389465042420181993095515453300696287748705710569116568102268642990376822367658085058720802512579728623464493503289554459186284897804384088585784757626021591276474320706939562031632201443718081687075896547661659220525686149396804567970690534964189639171624389031583778080060463782988491477125854553105317432365378245215550038041951138733727393958714263882042000922114690879049768117510556545190507091116933707790994199707168245275487205140371722530733182492185057861796749003392604236306212518423521249701066195159409735369594974310436847815095645964519401620565007850370091590735909981362626443951180690116568490968692585345674541484541842704579236572046220784396127874706706556429238711923969422829611459680615281168931660767625220408272068927702987272850063491031838879971065918595383317770039457254577853183648960139334052397873421415384173736198718479737385440880927261637703450546412752607122382210200271205471241292795547994971962186430136827082119662199478001007523780537387356634555097127722547011173257535876992707988431361785634986465074098627573419100873353861901869196164168896058663996491967345140005893341645248512491740098249659907915021240641525344290453138518634422079045427434732706782923389061710058458767848066903348876412796086506360350938968669671410881960588831506519338048002253718709651978384989399563607948718466851319343314598950282272092352618724299537872939246321081388413742197860525624437043697067980559746830722598466098528500565600079953221293786121138789228094013857252239692992210093438093602092849398595462055204918225338234108956355440617466288300964952660852628198747663778937557317669989907106184880953415234981391623591162753209938920069371363146872652043917785465999225540264300355747107485961786787772135806330865260319929847315327570232264682073807592052076240026564784394412776887370773941753950171986804757834570247004923863676220816470576693743364039935024171591234313311444616860728144428449805995091557218447406073991238185209635756261936904112595551234898288249671450788260212247081053068463021729327471405294196109117988851644364811192608859606028860844270539756388076358312016433673062203104893763578981968846392198171439476008275985452459796459146361902089638522676866131794535566261192749962022062857684940985535944388725640695624646015830982575680009329345707375479876967061774306660199340185721442793288067740362731329755368677436720153148277929726235531846194148217241555116832693054217707359074488454584257250827570946507645235387877027828699563645301353664378171691708102437263641139187971905507285959110399931129844428313288130608373614862158932180788475747206950786007257035397545344995264193264674551743269377446926841937864365376240904393174710175968266689580048751575816436694838453315354105971745947168306674879507264179362101550790526543675865386607532554638080171723756925951745164570555639869467811670743039755023878509792103345745879021648768933629728956338493074005508707614478696635608168839327724761454185128751531975952916307327705134338327063505145486189773918593433250545787724086721348810038502201550066338030501892251144841077337125903360667451454574284697694444701486668287417495785315293720568289078123058930829767579230698723169268862316310917372981680953901901973998917426030317471464475052547630529268191324371782468663421600621389681472567319508682074622384153118996983112896197950228187223242291670302986662221787840345541310307437283584822604259839643860692693370140405736264732925492737826138754703909359574471105030996627591390391673988592015253077155933127621133082127213468598454183209695797951672124349906926144018990352587962078288391393488990860177804214939686361509256812949088585029221470087255084461370866966953504247063058743368254559826887391080934600302477568837599210412817609142078918438469495696588472166540189492387770856812648439461835317918654502553247657503072036517170441773497009063170621257635088289010822111716035281605179994786672083982996223570423808777787080861720182013834306187803231400878774017117624917397462305544615535353533711860417167510951087542112300357638595342811811494393539041557789259065532407223455191592366534776785339443472983818852606167017818325677295942550810816266282265108156717030364948030291140403918634924137903905015584479104089939552644068130380096940926307743014129406373480541717621795838384781174864202065904286820621647287094474294501695563902354168282587177926791230688207452529760220789211570162390200787013009646816041584685546296817460002555920156507443268598217173300345842800047254108231288763657285203279916942213126962692287873081636134224409225284323236362966487579139618753782844892009307505310052183743434344921104727215758235185007405555604288754559589798166411770519491167038060887942488199711124191375715881365757814648776652509750071235918996500295967492249514097767102108985112092943403928333771555984104516770925793387841810657426161593958534756153301443231223238650227928437425945349997693244674320362534345095210515549202104216263335684707226800697902481056964323046715754266017541830896722515083025443429764190361520052547595324452751771338819273417244408437418790601297885144723104458052794296988033179410382142009364796299073001602324790227914987278764962985745339332406897458481945627813864069453461588015895111019071570511302631875172144784825359213646788782577754300156771013044135912786679968150575035299239278037891493975226611446407368467889787300028438193727683101409048390358757026163695467115057705806216489006036617629661522775435943147023805072934774757293071701623608570957990234882016635085473549030287562811831047241656226252419455932592989897963076511565048499677078886670441943986719739524269540241725797113850650322408281400905361125525394502636951792423702424768191211238121146784669162790230415287401574906536478411860159974781406974335296256422313595352056282142532394793182436260121232858982107931642617280419097981019831512277503193200803837161768169327971393306791870509206202962630060563979231033782250268998453976040583825342083500792296171973232994589840793891463176637619840300172828065109025556314213031125586300662878749811136202498885274681205884178750301502304816953374800395750212522278167296235018798849935662819545213589507222005269259892226522583785807080881897028365932756072794778134560500681279804477785960770394593875630837928331122047076629259387597355371941876169966871314807736958568250280262675839603574640076306301203510687397762726219164082230951106932444929511347376793656094199237730765818265978316323312923600936250493722337178411250983736565144200511917820533977383267421361122078412916403516450320002237760325151847663488973610532804014226158106997424336388162177536918857862626879121033573725499424521802505616845412115364726786510837384816961277763163776298874203802036325202776820908501682763690620746000010952437743262249127571550527325207850884909274465561113337251229924813158519463841197108411110887249006121508168152723398317429838517673299804376641158348109738044855099066047335673909857862979318357787740054987399385240624050805286332196968880518503614116762175074015131252824820053822001002313445856996038049390458050861689371284711908300601800705446502728957141143979755541900056650844915686400017355340224354843590518278874485214799145242940582466777080339003609319910504902559119615246599656269219919628963068302082537141590734330603737213511405982357322442193096197387528172053296078300337693945500796581736379119966118703436716002514048282673565440817196218549418608027113801095182726036634192293793828476664700937091664696570602470297875460028074726408830778908867795701165975620197370862280764451613389048572235476700098434310542083150708630825108389794939697715682754774378097261602974067076591127567877348072703811133959343374782855651773646292646228919882219087386655767450050346986641923538859340883257258224037189114513832821109107910785607266644291220809121743471163224438884538003024543322436941038800727535402859334064617499365482995987182919814771270907573365876420189519196541657918221844595242980766793904798907514424310384918877502553458723085606190576413301085244593022564087410013995073420564064718912661812223867066657957769545587084042759087454216119628848932729820431667413720827960810587901647661736573965975622555860001967207919878474286813427067912608307388734643489099058813940557217771912884332713903951754844634081641343409063857771768996477441774704208574047455166726733484859183363220283694949773364095058772135117773711518139073754736707797768823855648681179739867438557792842484978906479749145529165492309856764000410810851536427362977903709031377829956746207921391915881101564226062053771610976316635085123899077236480444456863192155325260466364587255789790746312426070564162729294341379263196221483848304635754526284041117540389673658292726789361539594099755404549967209207971437625867651860381105301197469334630569493514914753464563222987714617320329618112828343661955599796305534645117797773093197003581159910077483729864490481320172959118041511929597703870493987822530434604091747237054996330748679982348273680256157307343581731109187852837541575524651270297630692856142130270927977582517694637267809955810560969452278996463880512671443981433464272485468306156949795628064006502441451356922097120621785520777283587866983258711647245251720487666129311661897499079221649117599928160339709472864846682135936287375417346729557799294218277843887166900387154640139399529526818129969669780788940034816098163500998207184078566215658692797169017877633100006306509575821404674838305766311411494947985995297126506679634665146694531145822716503916372908510132334237984724979742281104029938396903368898419924447477838240981051226827492985663701816799228926100558843555449090773643336257079187070398151726356951562201847419562570763047140827994626245961226596381351334519070550818837489519697814655127807421429549563768236650011321441384686839127930063092218744580857776937862494176005032645455297991951816247019973339401697972457500583824146824713422990495569831128119724241322196043332394856580064798406931775977992339430153417205862024490857983434764815342913885864687140434744450902054644474299927524565885425893853105095966758588603414333818943270500767734251729314859218970307032112080955226234731477439669130784790563350388156201609502540436489815798743834804435138261685311599644707726316753774137927757650708176803569253296917620929946635905280771870748239272060921796497356066231393306887491385175728922999454225389841201928918254452223531196704994617421512363210594103274672428013450170152817235636527451773709782194983073214041772412322621723649854276051587471995171819988770527269616381510380648838036852318266139539552587899723245369523835204443940584453962637071866615864670628545204468831381319819324366330362287261112791347153224838714836640929904711302547680459206722394661197826432156929807412492987310334249279031333153010226270801859565130465789883883502990497361215040880879425632208424426680226321450006652079686508578270813865385061171155371423133806680955439489448363856142879675911607511800112286369571039890243037068072965921382042122494968514415968250798256709477432079225904221004014936526657647599847231781740517285603933436484651633220948418219200756581023738587638274153423846624471033681679879981758614975742387346455464774676687999330560149317680458307912365044244296244295447653224548998049605071844427026349042569442355675399126174898742007288418349730169019562514060834928960479182183648470901257055280594765232443478317828204461235272634742132767871202809002269024971784415385292302027682104054007714402230629989474492503210704528692187693755145320253410703086711817689272587453910949451415449595381543244457575884402966498668134459132938215997335426753027227459207229618603165911113095917554007584625914934668136266888957327106544365266138040418180004186671581977618532949152603073976507695720972832680864112107808048752204354004170982408082313906430174275116434455828854625481860744082009096679235275711471855402469132839255088161397259886981452666623964445977858022519664198258826707899011618325370934391619319372919473380594062018124026528702611886191820722256554501634107881109768057128203619573587654796385398823255692230191381950463545718274236310640297180681836530780598158785107860706454551306461418363231720856268550337291297246968679815848478389412379997932442361803710739449973340849229667687137872794205122468034280417067182009237236725658122213585622811266911118424298689853252761569612316833611278637354172047954142251717430501620027027502321403732718615083378609056413045939899096652472563339412892262661448199432206411908009274638012549744969943806469999966264395197682101593749876622478686185582108814132023227037838308165244112758380678834687553152375480818407225401150780466141755565410244129134388719839528146598542146597283111736291435164860088887926878237154096788246745208267872561906265493911812711647082955905971970159775033472155742808628678595042864635364090445024735996768558992709554044376005389063565694427107642367302400745733187422052210689975960224936689623863010689123563303300223162548820122692223752180286573077131259391493486547981982918661911219122409889206393412319273795379174900127412460690601669282920417131396951678234387984766583371202720579853995608792723902377571317740073963156426903064132787599661339236624748337614809006718623935518691512556294148269655871078004486075958675120169143459944188363330079048337757605241587260172775746378447999233302436067899971603185131075604812076439973440651788787822869130255534340548499489032632513904852816949601068545251619633207568114057486611448216725141549190235373333364667021492778432526693484596578901501850394450907162666789606313120196250897995116965564083983018233912727499461475586741766225390403638284129010588182631890776582316447080478664598183734158643492780278423579369917074073978729418361868573147005257428247252666447824351320455607862283642232378923343850166441487359926198886208712582011939922023607328813324849942236976373727140405911599914452131866108670603857980363679347797635815709741684934833140992478404928605478694966083367455990708876564918542052621337418658880556859599092456807016863690030389323874321305842154505786334551356977287333046352033982856477140582492245579713251213048858933653365749206357311909257600954529285505886546075355021483470331150002724718515193835195986473779075691020305546367678313977624506144881212762136892210694283180897929364965048434636986689352304016151534555626642762044139494004481331775368336184201158795188866685923920742774527038228959828328474200771357349388817020253804735060978603692924007064950104432338077032798145216817826507991883751980375559060939269049435246153547413679034894270709905599841330686022096740355667561728099556251303494397301570094235704315431261650678071713713101507002862059428158315065177653757792375563223357548599599502745913296685417463362450773541360863995645873708820079991878727759964359220772501647303976947461849176606687539548328685726249802834712866916114769373464991023656189861607840751169415526985523405841817476344445669444533830656456648580578901777284249412339627332524220600622705936111985324959252404766543759129093651323319028675806398265936169680013387404942509352578222590090928819661576364325039554850255090846156270944977925982289179505995732911621697306390008412184458900846600654233715349545007386860599953712270842142529088982402423439526810779285121641622950016532793076011091910706189877246166761528495142420910326121579610061277762889488995644650879115358804954711654038620870667421218756357906544761116580922948809503411587685886722272519671421097610171656695913634092136086760395653534637887739717082765306869167491022332283236701977858058698658669890820104648280921233271561095987234652555492077091495900352497388508816474919940764581218941427010743986653938199422011218826951300008511017463676846714858783630775116039813843455791944307810488041884500260695175344942567849918554427445875748728473024356685981680820600567147816637489850228052718979996014706223257163541265725159849945137889372183705928667973565572026686400318428873770332633806513943189497702743630507702400625951930061377035700148705688724155298847883052011327077276469885978924122509440056119011163933110553483885346996581015899358411191455750952090979719933082774680054698329094067093352776096174126208446923268264495347504801271213090842945717366463687086632104709607669730276215143423313829432052295205514515469054779980169046349004426106338692748371202069218642989403252815455485904135316980515052648059460127771543288726546705846234408066619284487079901157379804146600239104581382150803218564956947015122217689148945364068180097395676212011589501633209382296125602563813778674315964354668172151187552722972337867214758301345401341794209978359987710168158963166304558000417700495031537242332573795920036190771713008862839934471471559107651851814563342053001301147854759882909828548796746622078469262307769762880571444454921871566850893081201332968027702916508048165874937700128599983696546284110564151212063039330326299334479815779605665593002088721388262762003310975145192526564581294307091173409660930520794648674078356766699572781039915492215376489481433867477816169321842311823003248345552976183992184971044021538858798481849923237813447493054308353878607591615892430870043332390193564042736508258449216478868445809120100509110009240469870533304361687891330999452034045741804458730405564694677501865718938704213840720977405383396085407424006308970587034351169455166831060118554558074496071091046372742180435156847812526232765168995893140800843333868159678329499061675409661489904385608437232580804719123231333190494136047784114721886410214982330402909663640656428474656077440493753690760627115796301377114496833865796353631318865318766306907981929586886694331048129988625969106578393925671536512089671471150243166038581027005783067114872388238646782599402879482809033833946545226211364812071718469591846172692536921474245186420365761368889700108488973698846567093593996252359272481945598315057445854176794245354188707579387484233072058288932943605029573626971369402539429344541972200207588526153709398489193008074343723168160750699023888297234402012842370901034421940261921705255495956938914612031998446081905019546698359216532728506587957225243117844055995404859118943292513433413309811703461324867664775697965841301407478626280930552472433099935705415196504789235867125361949508169680352499049436231641493632016269881205929963303584049780746665374168031213063271620947899627642724094974436640008273784314459480939819697006128551017719507672647503136457910009734023566095990458378255127045625182424392945555914638167088752821118928423582097176776118756718140101703582970330569009558314708653515006337519458904060179532578707703412420561611997842853219436629469897508286943403561332205704576633841928144268470715134441536540975847685244133487670378020786650703525195042780768316500678834124787419138065085057621648798747043156483798382180947805919850866634451191453913224305622001492272696707826714052863013295712227707372599590475633864871205584778922818530075041280736145861443922118280647712940945007870216229869431803129455621294406754993126527528812562257346510823608016995122500510713366128439800051741586580827348922875366171551295688090722789296272919740388078906953463867409833705396291660913681694002027738570013318148267605079699277936906549954739447052744103335116656788333461228944573768705663350283158285241326835291596191588117318618821044871806781629400179847947697898628086071092267225390708786506005184572255166433682921075722453063622328310676027697562921049672953671961024745441838904662190879651555491167193240481812687211696995686225954084004469958889560603185484095379440761115750847570161675442307728897592465771730725336865020878949498616439232826841590342604149267835446252532410114889170336081361642683230133641678139426019945976011081313270852645678396032192856282177588311784666693478774372010405270163580357157659141676397207956260499069311764063593757528628191927942899501289873405127366080504257463124000560443454999733489955320131339826777200358945085006714474327003938090015701081739969102266217694518258395136247698599248072124074034576173977638381115007540876988979563883772768646300947036018136972301171560205087436672351211911373414142665906132375126532856069270151145617278055438661554835702473834820718351814870047732124626074171333461930574418518670509467190334918054447647920204815935598166549279412232441097016428586043044528980265391214800158849992374793950259664731926929732767201864800235566780275280788898525430196169398981163523248410723245335128340829105828007689332096951786203380696342868843863784347451677482454308101449867852401580364773022470391050384657263437905936249285526106786156669066851852237690918345550359320502626485838822550628637269757464727648181870657466533156450679563218253710435053370626462499197724323037629733075035695231127185950181885461133265569619359422500073507413774184385369187309606853088873779836455167028070096704594762820350834249592052542442727631433746885621659009212248530204661673772811321197677747128396736353527414998519478169047022472552378615519658251992789747470750122008595326392426341324099509820478097147460498300037825822879640508433978360876546965933666156541841010917421815567576968147774407876106665054393331644475416801005631620957115315953694234887205620571291680714758107547355138578484927711587517967890373386989855073554520904877604275539145591335728312588917265674092357208823488126031720772212959562549552474350765332585242887287337314935593152565128290505971963592180961127589390078173962571073281177230129067571829619523317806833692799853694590308738412165631218125673516756141118009547041463491085880692646553379250750790954753455633717996641338696918313506734460369545119727933048250118209479492362155567568053154083744749594789634558320450980088789549226046351327371959745935991678999280963651895157740272103783781873302246345515910407013236620961969131856608462656274888218433397023226096265567459905318638183683930200470294261508613573210560858664697566487752545614708727572698311005853919389204755100800275294872937191641892642192795056404556982607714461711426751066367181501596856080763607424433284043566022952232283574146404432464956771537605165349594236629871451566191407880155603694334755783447589436563905589726891305938576470505029901726041218611128658124387775366348539645937954888912732660955499120916878760535387181124030042535685436819560125704657346110804753336011422975569206076476105833833688991131349731992886658479847140379044260750911104597022189199559619990029809629553653359930507799760398838269471848910912995158452509220724439449799662256544252221436919865334174284385383008136007410248691743414827534542472538878834708876387025727888888675817240556750419128097758806265586390271842598361639127852197921283552650769128886921854892857884755529330611720706299053517181133189956019684042618534287822124332540057856327344777956266068732700749155211272288467789403218124569739271893336090780726841724754936632526846120020869090872758021732038260381399215682396875441321020433329469174381503243052299427457044255640367189286481069873022491678471396664097091537210391822086726126154221698053754861432029512349101845584159757711290091767372037733001128809774816912178390746380484575034518194604809854838185969226900964437030544871210051739278473785936890947304860477689119262998443255441851826994524026428432350902938122841978426031080809570452393297666873466561255260073283379069303550631146077203648716537774218731855423811482900234023719895441583506995977071756775841613950711024166038299220688535601199328030600537256244967140467555610180250735959490286686309910607824467241963460145638157576592757172336088854005494038971216093056673115559830794974907832196561814829970559808527115681077005652719582755978581506060992410120085707381798259299699791639221037059314483699079129054506457944240131262134190874810148301610190719455532488585375397057249578543480976229163333374599757816913726919635811378592362616746971224774027892886708112147450637851593907298222885511409783368972223084351503001660739685009344636431964937650952488143688421147718443371412870877898945851441375955267936782787930263244724420377117273036871958516846719960414579632668885357176096369243002054897297805393050093001724854047272687153056634560780271929613887337655067088080563656379289211060462213668325478048165865844716268215675615700170764977298129510268892391304491186276087651459219082266584627304043197955089416946469387478491832423937832254776689904865026928403558946537379943084314939451055989333945906502148689430874243838411890036539033409995027403293251683560382172775924560097781055771936771809239578624806804142641395993190620438269355031483621558762610765632568347882270686917692070571056519179356828737732675762753683826008156321058043348313052730735594503608751642224242005882093175383421383397893549901547839320481846159661054637743048684840877715555859487739694377858008168387582935331991492473985296667416522062964485058675325380300395491439149693794294104745462403548302826895896438246410758054685866929526977226685493574419632064588167065173742963701733820201144737205456349385586196830666308637421295966654636917927366437300892777037134884418807710704807258586018433471746802689508115668592965268705271205987004229134897421565182109769274193511316923784731338012976323263878928265626975545785003354436403376946462805413173278495278398436492121384664557630416899687007665364897117306131960360305538201990205836478598687082827289003813096427091716788799009532356437550008582620471135373181344795062852822695544206989584058568515271344851626282160698842533252126585048060619690541126942598826362843851920372950580774127444737742531897686713645813590689345218297608191063556018012048566061504540350695751090071481028940875554849875341565248429305579086435051077777003290745468575826901772707738677976229227653980033005843914345896248624717038055215020288148516506067291443127040127388224806971201236548503305305261921134467047331279842534920538050856366955802161545858776538118371160574690669025988773795891275387789938731169616447960715426454397120073846494934674108367935456391277805000014951588136030104388937729626244021939206125075624006618272223645566608450540880168461563010255216458156324626165386088911955112538508846921956945098684608829365226349805268334836754633798089192865297698015885748245129337749440844417429418559274277678438721584694525472271901065597975610573459250561832174356920825600098821226366874158255944441986238173022094029099518560608342277304258231082733907819624687871970384373183340066812055484356472619227656968333894788223587560553072798334147851388203712790511134068790584364460762686119883407110621036928147122902217957162802350847754163677211390040848337250143729600106493910555770423517658028891072429173701138673681545091662164382131977600755943660923881690512349077808917298860880727185243453213624926277294426777265495632057232815133290727651051171335435220239267826628446363596334911056537672452612628204070659462427313867666641874103138288447725627064225581076605228638045779411744141418318108966152483103216787788995159221609024565222678457127240866065398747101558107650996048342831137473036302718387620375767572126021635553969275939183447567552757532214482957112292909156190151739052691757929058175537041328756513801322312870110909573926542781684320441564687236786852165067559983169970269417632053943597546218781638805481064298024167858166662807840956629613319766919229021801284577850891819179049060705741298346354194521893980075848779560964823503780163290402024691865234989486856311176361844799880175320125771056636561422494422531288887264359983336731137823116682187971095058241047782977698258352818196626320373154322008559754299396992005423951232922409911313335653660048737573887485835141243537106290022939413208820625253478236499940757281603683767971538970511414958548785231219161153157572417488572012114160707381472481967933060228589014808235533451869313060558926030051974473202416965137317270695866621891234485830814022709794226294629456977032138611831375424918128358691562340018149893368245700905852433580704128909620140370187586382428140345512460216527378863291000575914504315364433636105848027824475230615369292922301868954603011894960825325096423106304515565892257188530758698015871918285511890335213804889405473990128802749297186270245545894986833838443651252196675898150210516692090915269092996329229068263476372941305634372696889960847690744586340787233775657707218621618379230006663885807867627255285522501508910876865491830285845913174807925622786426996860895665701908934402613400927841972873969058739175619709042354805156080262316955648572115253149020675988809182709516093504519166377504570594047512386202738678030638374072237256388604967431122474910094865750110808761160113567342769289028529918392585884788497436949984042432395102578051692000109550067614058640451910910543363386378318484740541857106968891253954967103163736362949425458672372486254841888565672771288427995561687475569315657957979875796959495236919048944331504842461466385076797183702128740360717750355534503822084077852739788272185326565271221320172409535482326286761580181856442876009316295724967442702957922131942306957230642045249742443932074717276644551211548997433947512862283856849761073362426605541185337265008230740238452967259775182355288704566905957975662830163629269111893458871821695186147006645493254727297400283884009692811784218478807792670312242690806729474651918592889280294976987466060923757216899094593735220982388195497415440265380399935723706108231294710165761313948944963082497205377569888172316127853424106295687904686311562266371596538455135479875487079438150616955874400639678563128643908214459819989072595474566438865813193964931366760218574654014545336921756646830686045981629600814743660746124576697499796961740935143059881913945342480718447084813500596066177834684936063177769207951505309697343911868856894992327300205709574847574203456349570036532563665055765603616801267303862409513682699165218461235239984317059146296638370735255126476612693994015730824291484928979696310725620217846836505456216669482959457483860564729481972765825927891609445508289738188807276912503896766402145536207844955846215260353267130026974698420795966894698518322674155311517742298125473662977546902546177706890250195037311764724940756803253864259850120748068655925338479159448012327433226833394211589709241238803814759777342848940949843832757394311941027597928374931979821115636379904058512963378182027370831394883153123936109813330076201229269680251024659637050608467323123117240813498421582092098377689474156059856423131030557413776655106032045016536333295827191748723335113352472022343088770052189300047192241846532187140423293880398053109807957308655869112404757252291286326198914662923775491176163619664560857186127142380740768832657827415252262830481007532337197000809432605735056279480586052182175919883827375499462651805223949665457837707845998292186882694396534556708894982168693051649221841585544054187744694432403694821948911311335746811708800484700835573872503393336037756324868109289340481816386216514374536765878830555134334635824405483290386643297128425690115887246434577896259059164007452041157988405262373896699763219544973186805288866283927328902922525604464149983494442593812979731570652231325724234312280018520118065457784037371720061170834624138652256796378485212210435071408241844516011512413071997852065445701108858962971688987484014040892378657920903797566456710678509200516936406751810546966979092049937168280080353175661335881347403289503090042117002136685028548652039632884257345795718927112803160993743526071668829149070105042510605570117460034773193840588678306248287484203647717607614042191981547676067521843471604607970240580002924765759485940014078182288249784552294341399147570571989831465400227699974736883744489418246888619559397182326953643717895252472368823291810785551408892922240144852969127521616908909319129944139551340774007291500241894324204145554823438527662948322728003817363987923682828718621374203850238304656255882057727194202707001150177131809347386279595016941124142768158200908828664626953294978065567859788043025352793637330341423633411793861978862659852869945470222900132686442315096399742105433082944923323090730914157735535096188853408221652894645092176064253709602560560918463153375129999183032941629839968396684910223673210784215479823538159720834012474294025519117779483022453133419185541281200166135052516087511734934641260763442322413055795820188911587598369281545632125943609769833841130682150977964514172241425541971894708593452206420407757566327252372958938358731335285810239009431749661667112672992796280775692039200805243808269247493409912120512673564904283548803710626590966176501149614364334583542757450530870436967865875206372030580829720065213669853703365265026286967235439502897837093638992307799165921669688978637816005588173379023239639193040139283191198543057370195255868388350919579989614034833339729981314765029098133024057360917734282154172277512549251368771012819717262556607277505751716035307062125599045213895013916956199090568965364208905787365806962904298160706441971168733348284729488594526769671908898485900539465251700449761320554197316952480320398108452005954086307186923564031577703478232525626073452806519089388188986434870388635108215524474977431726262201719823936921488389178043496840241031571729679940815495821084275087212828908026254824567400984231242916385375841534800876300503462410814347239935365321091135323470648463898833967858797483573813295439610175681307119816109579968435638977118205600785205398763683439616710608075650998371944286268100550238868000672883543696986040201799267695963959512663932080887330496911732344187828650587830163519039816109241673395165041350428117558424758627561039305563947484613708711979729005476074720731409021934954769490239882924973924787066439438248058749809529304439421940472444804382261076576707594688314630303557486275029624413827650807016730843056898394103062688408205010740523359932482389040488061899478067837373282269710075972823000215749462017672940696070292181430264594267837775201741096530119595391130881541485531303304700680656581905303767576013184225449427955503895785262737803502722988222891931497549401269242297783537032617886310752750892176336031138634458914623424948748777653272313277250220331436551553724547307971610887605875466317009240528295534003323935518993134053742343884872353098843753795566340864598003014727224270582728943300186083631570989012140792498190670948251624011124001847355161418820580442242573991619472980657965981153760679035020244381613263791356429075944219351919956178496962903908162978949872874047917191825475315593893219384979975447473579697463407833440341160772662609425714283309811517502264294748744632368521650586933789483255213620008339139517067614368220478336740299433015667112830490437424607866076783775110403289416949264977883349305698688002260003327483589319616763822195970943522905091531597634914619663284182032430286843690763245591631185582069381765288706747386077230780503589775818249265214381464282706484487195278439080544806785244710417928849722086673462570604970143801468518760829798861438990246032317353168613506651887687396612043366324318326068680626217805752965691451924416174433038515031516111954489765017251165755430240391156190875184429633458534206433900127720599714283638246318418737978115933547405372442771637708472507969328445888270677758590498157879915760479670566489952132036602307829149909577401833397937124337356571745209679622881899945233650127976289142781507461367595305261065308296751391513111672127975236096790403963986798709358467621788480713452406384937182208144252837736653981794071021068689573682875719253952845989311273129393947681305067146841428739349591082694233549619129827448446174017404166524509041645053208195649020918513519671056781971211848371673903315982536191075076517631875513873257841491946125694158292625569401461349299965667217661634273165489001767682779038132913777119930241903518279888987805877329458649805027580302200554293544266909812142062318619298049707077364757961304988355437775047867496896378951503413371917925614136797387861785255473418075275969006377211863295068052633358749284551004560364888723233899108628933901929748734171449537371985663854366196714940805709271718379402512940930430539536855074036488264105456595418674379498859740213297160404256526807938321352472966825763739411256222277497873088641143075982537592861246861181822061328126935754208510946484200085740476610684668473456605246939570538574109880795835942365043840120274088563665723561167589084570651577115658157715184396209320905615815658723683090658796153331328530875024483492845569917257258044097131304354288548961075908985838094618702986077293303026616024536735733479734434125638319262127437630569610806727175984759051202980869378724386523655681703856461711749246488461431540218212284498151729103221587014954567603145372608595910707962499653192417932495263124486797539240916889841706710339379427257550554628380165632227104503581094391545943258175417127541270696100877655065271898905897412727793563922148196358062178941535665875846133414716221805751367853926082550286915639888599537353342205255668299390665125721168366680748869370009497649799912008940750452943722827040401554602334869947969506977568558039371058899819092487611942719167101238171525755870801410858031237937951724212034760695111421024430613117239756999998880769277751142016905894918084501826095163702951239896696799617076086719030932315829785050937106931981385956969383440812887888299381998624168649971470867621244385689152810955628929080775112769673013056882424705033939088929774481148967469252497783895374648048702790930091760261385217534593605089754614430833141809455745260360125622834870779912777158416119847041622622045996673695200691796222507844952771455935437841003842883267410247866431063829966847932446681153477312862413017218313309863456730468053098418529555125959701415054546296729211185541651247665643591539692544471830094005700295810194500668248631316939961578250054148994893149929146187000164478389261138022688279833167020664014015967444393324282571799523753505605851672638340090978391773230711672676231279322358066371239534112112118466819380084414661004887861535480051327196550683266254519751132586167410356432744194304536327736003428311879296377620834350353842062363902688097785223522523989343527791240364713676181507328700080515299223819476763919546906178160282683404904875793188704139686531961160973172452971545626192625011570594673654292951301072375763936677732567414178319988424593570358615079232222586523300184030143079810251996889240483591285900331544605588635262510781630682303553182359979079693560253148932130043403590362683059335744900730388327337049035384285884093012559062216114166413487885727920526346937839103739488144456975920216137753767806649653098774442747929923277918844009940747882098407959093059828128601240508456645639985909484599818607323654640422701902012404267138297343510249793875100778651588160871586506821404520139669633411851446717490334006601032647958071316435050479585090196554555672415731000929511576510938422236003779584422921650049869117680932423505630079979519184634873409917760598142358299768156866945736932402171985222173484326652238342979497591198224336218772012244286171384022943351694696765533528585247807349337554986456195469960074881381474255355385011595459658983952703901254978840656584101371002066622471667636022848261761153603786153879985773451112851008523546406176754680752151221032699076553209693179273497555566625500628686900317122456854205420246801352977734008647540235611490851813185824886770449592514735400983408369162975311324503812465893192606088856422621168273005227248038237711219854192291869077254705206612492381097669519911098094478589987586568994034180575229224206951282617949862717058528129314907577493008891862870741960875644745463589677123888641673890172058162264296211987243013834142507710388702189044803826202171335675188004464910616198688764726816337562075601629309125225940315794031925260506842387298226668056254365933758085858720644049222485501230167834200227471706982505513899276327883505592548108360599276402160523562309874429111689626902933135884013209207973362890312373812947813499346891964267960124597229244936962578817178155289738879068127983004869774404619650139188978995811777096699760897640837102886850710148770340353920213627057145538553884362707366070818676207998932161846632360899458042985708833385327145221196528814723760641014445336499604144805955073771652591214630459299430870498760565886290601140553865928719831970865036789621089326558867355172122533153888301009742019340553924110998060132005434496903898783962854719915839026236258932795587973832613277925108118731352580783585998525039114295448323403818713166979416696519968806766040724590480235418905074138996563211100442705969742811084989166746602127445835325357559316860154998501786604472631027434417335185226806205050187438413151206809851012787919169172420418330074251492023423399957831564062779969997054115456033039407894560443296940276622113640383093856114556562228485397255543187799355819911654829536617753168942193996326617428251904793055620127872474569511772797795359238826747215105163718655464152209148634970979753051848156675527981715067355626315847704082438273193609318106192633701652140605204306358816374844168375944889170524488657689501131248774990274655031950117886500215099868103229534582356848890724294850879965949529935239048600278250399493971532593239220072407342778119681037628524112390452380287791809984180460645917611216586717696775290943381575193180869747911101315408492755532567833475444393009214235902417297372016699497168009640009711134499760943763625120986887175338623047400310209404827325311598612867300050721813875325001007690999899694313276171503020769988846223520787974013216913996751262417230329781033100423080338852003916502385722674676551724727021141597127551772402154864212020478914869102339052513261323819021252564954511163822637477950915253942434291817802316603988748191227960400800330163945335776118831789440730510996064553199132608837156211380470713411609862209082061902149945456128265902137836316131464087080898718006996972849062134222962801190174269326865814395114227010943747148114466792460795493723332982469702156886941147066059284147616641812540473841253099173988700928710443167552732635379079649121416988523265377801361890927575991591694871141533639566296551466785171073592880989323267928174879849802636317898696431516813338605721754415619132037785956423327889176748489479277752385529435015688872843838785933650260662114453013295815675599441305607307368603834148886498340158128220999520457700058021894835517005058232703351735234481445133213226211690927448008424227162670252074209414069558189374554636820738804547828271648655048925222949487525173700910434454569148372450689034277094213693554530943672201072603993021164212159039498464925883467051945402338733425858066530799549908075222864639706590501593019613572548377883061609962359094904737109543605589871415741858065736936500509918511648214150178883904862835825373875591145689534988891711538506306300255317971633273870394045176489518043865056271011781114371713034287144220355926825636819699628432692777882157113077634715209098475206814213629168185153922039185784997487689808982829165313529399082697380558161874749988016426167471629221953455228403794530692558080836414509015482072763828000065302573056848677403703621941159471099182709675990061295266276404573636744466285656142503962324262235240411509638595083630173468211838556987722672972798439395860212325948002120499839932211713169414396055387155560119537942307570657937365042376600340347602396038945738868782659016531816800045627289463218138944077090328906533763360764139088931768108438029479248952878534694117690799416333695384678167781062294703485339513393489520014712298729796497823469143919520803061029355747717848281181545755906600386510493019128581659328391534676592474253559318705790592804667706660751962771537616535253554301634739476842705271016987215458660112319067179840279043920420216021838068869932714792329784613689508026001656775840073389187457335312159674626057388272203845256330803569754370855974403583711237412271993925898876849174842209960727373971386970819575050648218919844729284811069324074428542255093112736281259074501067330642910696185547365325046144817619030243178993318499166307540221428585842659935526220555139524330967164143607215572912338677280175773116685252459033171830020838825094935418042370841915616332997529271057956592105005873938000139666798950453411840133538363100546547405586043605314838318115105310576976043124788601727896358276893049487604878803206087758378263120523251413481702573545234686326466575104489684733179928924719828734056674867054505987471045919854128162240134141971887827107786546372128498358201465262338158565614890564098750855769741361646522886390641072243323168775888856129822768843814681303859634956044931166249114243460677804720327782097139759712739977207349631647698343553162209815970197660963145807759326788534506412903922441239715952645010927692196777509098048539401848796235656351504089662263738230287139925773267712414500754786935387583307193838323534951836251023676895003528167261699701505332124064330633819518024380930162599277103528915546614397045625339752615177200487845717183323448799050513365430312351573753972599623272119844487535499937195057062269205254078983082032297058381250180181505567272844016875723750977211549851646793092610139581232002511822230873439447027096585168746014877857866561918691679491605697190585276505677026665463436581432872743893446431477116369709650387878059224507211418715867270843918578906030362836076393074661089860954028536659319875594564647625257864692840546693958685743110035682459361524474077628181422561058022697094951677943279191420961218824281365657821699774572271090583742764339807181094358671957533872496790337631201384189960409718648492711508065086036287119876431216611773715711238386198295337952624883077771894500770039685054121249301298600738677702239411872972844331854758931273456595822781598915282223714156468366276624435605944707568360765363083572077930382701161346564941069125653773261757296062862966814251012294993386139806593451382849022611368236223097248247718209785994469366739972921736279289593801092779773628888231072942064224096694522544257844032473710765341653897354053561081944602913464065666623456480588423920988328661055179006756167169816773114260649527977891319741651248235658534983520760425052120618565737803083599513756485957291552346615742379094151239753421603327527729451259940072703852950665493243626645146631612245005807327317990249657474341423655243111887847168916288338732109104894150190227921582307278967816805967316878259113326809726414362317654709659760409685276696306642274805765772906044834205933029529085119627125928784400391737903949789778461797355608976824905605070888203908139178251028416677632793888346297645188244104102626741191656038843027934891521792762359847201236601643509950803743327984154282122008192675270196790690099948821673058272936470861883305122300362031439117645569112273029374513119912859201980748596850280333496264546036381468204745615388312182950090531127171670162963574437429469899403962926824476719432506255116648799915582417475906840887474562471370157946360039338064439813141213639827667292450650932044579575854392646347841539327535609516874039548108960302520992911958049779950906698869139324772357475471648189937946470555756253163908523549604255054782544837425716728969724933384360248502264935379658132932902490821911890912907190050123280060255965190437308871192567084221483073808624758422491675514292876786033648347446314445045555054123120651560391890068875015358756325868079037223232985072147536147662763496206541673264001927477980557872621328066632493889988084368638961855232232033913052532459612282177569820813542785272308345077403050319486369446486944333610373649796495873810348830450430918391165620726851629611696341449230526074674605599922705621601900406154215746108694762536037361805304079541212960100069909723083291288033753060130915698094428737339992762366141211228927594222147712380811516492585067777477972113221077474082067766544049126297001534581136765624856274785276482542310134727235814240363195196737795634573112734223859440365298459104566032526298667816078311465880162112837341525935908590588730044777950108174122711725070481216628475285946248743987278270120413586323220617473648927395505474440466813877364606760536076100708403730979554379333795424167617001631955362551599227576019661633749231530396219013588569542162070245037146366369702913508405584551982531009906803503758289169235801345889665606693428807468866204869504125958323023679739821747640815789829171826477898492155166601107404673481585474032327452798294181692986004393739599810584028011933190315131584050732075484230947949902371814832111467033729410426716297950961679027021746582091644298322414186831648658149418606625899012178880522704665725770649212761650073217888726709857228318177998422019172887126989777044608886861884712752709286067853061092775433310422008516194860645495181903845841015646280718883691836138446640325450871681323058575918844420569918799242729275515074737398755356893245610185821394103054066168511975216708557233610053893541840467207375548823113998649903739356607414806024720872791700802866771546065997175284144380456111307515494322172365337858562555069358898492001283285799283023156725549659222720087621744826000477526012803673104405095062280072548662230186948793000223684000181660315747020426590205857183847756407935347829298908352000061810353852504098410946189095915682852312134870873439389259160283257729304585905323936469214902329858014808934146959143087147109030412229732534929436505102292372966450143462490457936970502271969513957714952670123859707838911792281408952578025069868788290320882778038501777921154821497587096335258005924590363425638971254376237928985529784588693179768878572347953761281736569560418569800102657325334184709017961118451874042969038773410855983388837531435520527058782760231787265742741134923352426887835908450909196660343477676003050941526159867479969902956084333530180861741615123120519950665480761938033064423926143329602161542397201603571972238654602226165742109093293550060213723250521186744671518729777739674476473326943086613249695361141851186699556618180791193811351371104477806464979609119041655778471793378974750763602870065583655110811959577714342552418377320682275460435983070078167555643120766514034835640006814164677741259573664698914861109760832124726986449286267127866305353757828509876235143738409687985879306649601950727798027225867520040472612531575403174178436990579210775134642813230215500341615387324188413088514619909715918153867750895950640554617417762271641957592401348210558450609302083341884442580803320427321785813525013527298376211602227392979315663324718344535737671522813429942389376921746295608402408169389305416274311713670574610704446596728926087448183625060269082955934530228146256341590317304398434036728959427631456467644498578742106480081698843791766287896103174292947828187621701484470876852774331126025585407671924559351676246889777621096279106051501784245854270185498855778823215360449350997942525478371056203021302485969659660436848083011644059308840849476384301986955437615537910782864809656211523921611851536114666440123607327003209472367106744656572981358951880806856440718731565278250600000295986593740527178343418454420619095200558658781331978469582526070139005831208369909788632663103692691569990905385775876399269687186023009074193628158774457157419924754144681670047500243827344006507361148962855958204899827852347220799417907704543414089932359862513752837835553792765666081832743552492033811946531009510544509260277168981295266275050788441359340256822876883328772074796160350821891942499920391368649850092679195862997281169226336271532903435878031293951875571810689627367448521898897922202976224270824765796659197890524624424820812971019692491014086105890656969947558703396739338810664840350257671904726028421538523199003886348222095961051361618903132822788183795417952390903297775459753768482607149691020487135700398202700950882349052775655360349506936726018236750936691082085436046010243618212021724331295816885944672656453856575722832004233616656183327579691763556404926980736843660289794674991597323573934711817451952949877294784741447622546602994237655453685778907376150272918334179088129600046807269513653823479953530452515292864482206969481693500820339895603390490693967787443441529980498294578105382918259347646875417913077821965572416396602958880287458849823085046876356589053867048289880195814855015749927225831448696411328733996647385185448227219764714250608401735759332764958426371861662725839942796339918318526359235729491693266514932588501071935957407221372999256040973759210553208699902678297145086740840000469503680204465196666933762514619565210468684894941965495475297656273691682131875075504304122245318706838188867007179943775594659233881814165998309234897221386388174783083681643926208340571423353526940373138096923387242994832227820468868905359787140574210659322904640183298381883797221953155944594470422754364959376014900408187034077363436940488017161607606978158993940308911251351470200409811117702017766137130298363458913286922991175460344406346586006403703834875602286640196924177142742311484745798016650115345526894599086178614851612351720818611244070911348175266295083679045596933583774026538275600542792411960307094663398283295313041708872359347155244664894758228242542631719782990988321093723415044624604124901483208303122930100209531105030044978582596689587913597353002837711743450847892741207517953781246543450194769104490905040570004563174839561165322516960317496272917168255473220041709697914194788817040247432502274757585636472035209266958853643192741166894392539036304066982159153511807828309007715361089179139752459793531949405324979915416022669860541382058673410420457447584473855497051532659286333535966210912475318273839283794332156543916115153712398919162904248867373006468713614477189437116428843569112114970007718192924683148509311272329967673982650680270704281877243757597101069726038424152829237533658191847768666776900827496007742021224246359493848141683165083475869729742931349884318899492788733481619309127288295336170018214811197611055873552787466864889761960242416132528996857227482152418149428109826259855503652720511963987942361976078076111506928616624867851973378263167668847615507919220093652352144466972601434967157000944714468506003490885247026322000936349440654965567769191287853741638072914178114584865369217296777469635213936938185086625815161220924217776766359087579313023347172286682019972547003670604921419355115528605256086451738677851355954267879370003095228782612126759349940629301050196129684986445690776459046273378894287287142712617853460231229327502657702750409650744152722774496358419536310551783592947747495726572063660833594317147457335064395002831448223481587924446737492120753801390610338386647679247873796567124419883963005185682840741532854253717732824887464642321770026010600562112905165617450111234695894887015558093746614118493966098912327955038813871916065868112098432577464729299395186450354675795059989580068963298987277373948547527186704418389107700512400775336270751911627070376500194516748197664567865741060987389233611415509798617586996320363500632329943984136115181516563205404012859701684983820802332081000809690620099485620963437084031699032401414855201317844374520533005943312500849186813668874427613558550398929080962244653819761739049599380150811918938595197132201293405076666865808694542337037443502482895182771360554901051490444507333516804973389885787319994211784225078475893284890920405414881826816461634971105208191939012496381524948271633448563600182163246994846041327223739390773818112888708428201004622544203891054404999484784957174602849552087474409789898728289063027690113153352015946166189250410685624404752189437623605603797208839606670309471992103959047409622991386305553405567767090691458252948120595812762655891177210219605458343778642911542236715070796295737413823348833318978757472506674577492984261692540312024031477800629300834020401854943740408746737412111048990645047683255290512451425447222315743292627272006641943586768481169635363508359413474258279193719614671055788865012216802750473531863662383629108325056732588359534051200344666409773017595378480485390984428463951179632115018554735163183854656121667942568807978974924960684262611582122431047900532537985997234100589653176522788261834028525178321982357429249726306092990619377374726554402729836479654661875771073812080990012510092333928391833902986115034147381157894116451311478166607906438100997190023497762340054579042672201324850498411683171837403968157562758861301993785684755194646076810355511008633142126118067924210407612660689404030176020936272659266823976791928766512333482533640221569035147120054092966987422373118322129148003075509763425245293213418292804895324544055809845598277847624236177651458166691135218545499803231101748612215403679734598949447823922467097077061257518331449546302421120222765571633857779297712441064689565212361946538377486576169935012223489307421149357501072777814557803705017818577656630562704776340464504299200995337154478975859740583272146127044260148670794257004710994259397964389311356246939165051034811715521508932330374208921199773577706828629772541594066876098159753078985756339962398867255063072524512121157885295930274510337264347014931806162005336413970205657527933089139148315800119598207787340465893938398120092713776649171086349815695285230809421942375735852160322445328882254572426703001592552208074583530718636461909552091625673197492712158173080429427875095306975119257650389543713714626431126837974928779300755517809972080089503978784937622949742570102978372113351480238838061734380970543645658420373961909532783322203150659908981863364605909150788811544480595673597772825807474488340982280062954905644507039858466076686925547044893400569057969880626088001372578967937494031511083484533612931883766976453640237008020362994685804668099139420481687225460140066248428496346079845699241163157892221550063653604109404137427322251906319834952509375368009272069343085520382145866918566717343873124811140058556895643946044148245930463192615691279610043620663870847491883146890021170867739451867849485577985839397673881486706170787940237198686977652776743993582570763342899284606369408302948346889568320360764256766895676265392574127654954797610977171663079159733572532174563677171084289684942565362464034441373155272068022354101048269753104133313341621375198842891456019125320080518330038012264525024129575747858938164246511612806957594763053868727489830500026899105009115518250895320139450683805214824151875162703866074590541689520158473605257960720976232940786326665074712936982333286403697140466300824811621668992957790856612665652251761899861292843718135639632464636478310276007199522582396394330748621921145169470145616430175348972269045850658477783848469274677346712638890676436907639302368280999470741467335127241732095665726346332775669668885421625748603937477187516051390121886313157008032660783162900666809443204783548401346690656549311397995805344428954896616304243266061271764218755937596516800015231009507114992851083201800398997928130798763868777147106056107378714655571055464749976444283866073346374447350702407072001584826513282932769400039964056369857342192703658696581019699766661470860346735447248327231714635370088401397635990148412418254759283583029449361656544908271942024716422808600813090265872840410617803735960360358123466378475216226158880795581086711009805433724613366366654690181310289646873150206259939311823158083039203884289500329587457890080921076811831228982744736926601259099558266039815489659184390227623293478717269087350371112038482993292196300222449337707306574105113186026692746352081861985025527848648813099074500112153011923155186196766858859452966289360714341299285097276713616038673270594539622536224781022699628349010497238239330634819284022514930515567400434774259442176995275880257854410010622447280749642463584873545831462352919060331287874637515910135561241025360065869723532837684078459985094334818833810076925516501661557559926284113217695895375347542558228927556785963954469915781977239132812957979978113538402711294300162687386001645026191220703692309313524150285582164601298932019378847777759658926765414431173314715199359553663191619471037294090924588868729115977769337333522821211685416415247244177071173001270772820355865262861988063714809798677271264720527123539399670180542274828384371750514615526006174567183379200042348986141998699295729069717428554003047022773833312025060144760416272329834220483767270626449817294661038485987213270330483228306816166844505119315896613084331806017631228031614914511147932262078728392966133093090613663865771019293700402581276169199818744727320112950589409365665345569179182065724050265354764976900047496096403548838654344198739780174239630524574423371208273975309914670617626671764899230504895689598031169125922961942682423325296540309656064533604878685861555036540921682673033035954118910202269450365877550097871861969599448809062718037854933299617364265907579261863107724337850499777753264268479051580137846718967130447115387258784677184769807692609014937396371902445409518881147407782976492814115034016581701565747532406033643009727751692516746800184929751189222623062981780647525387840398781582659866525124515276795724389620555695186163526458355079939671719119785807708267776994691502367241208269343809860261304372417249575239746579312781864630172507632169656885738420218101703431717465681192355974391136758278172627327486780834492883285737219851128457891331772211260689653639216109352872352110196539875453841028131586162960134470704116033741803318287183284713825263805801811834808182229979903633256654251554525179342237676203151916978951046895942149380033023856203475766867965876802775888464743939016275009123542606291289985564699624850126216954140843557832035684003184825268120795700302816901136615742526026397891114060939289397233999911410471014596057506972559548248704103946527060538616640463333424009286785087332003173552673604991000300804467867105570641860167849749157055198125666552944567858754301332037460670698464968227142696190259948376703432348283258417640429123165177302786030061694821029892495278965260341143887599941240601155535951448346527205484617941589414659880319171769833469991081888997109149571099638621960094840423452925059209649595583744564046947230626111077139438877924029510276263924961057036314709456213373601093313593681461488507595846670867064073783396043743411666057271384018782225116118301269103223297692594911253341376474189744996324112110565842432148100238818301313567330747998957298382077359158057044898787854390019192150832770193944523931664395295208956407563068196180186680625566234765789840490031124052809431059811825357259180825729713727116391859553192272359004593199764467040144660614860520389750540643911189752797693354355879201030645646940271626223620162862069489664381828559711527431965428498546169991291856911581276651633515356948773910179503129938905240966254209565115497338381470540966985688399389213504632133242692260880734663635032315823066745801739287381304048871031536396960960559944851714024702200462443052047772130447948376865413130368595584792401440346461063006959766133570491403937603965659749624409307469487075056873429412247369976082476052415819632337677812220140409070179483991953727253384894834027949130692903402751864434394896867031498757308528094812371337635825420926516928600117859728739708858076933610616771391271332207061602367905978267430903318555458007070306849349937490540069747273109414715578003929987226749980702090611620032826644299257163282576446122287314156215401261481831381716324213328696850987933382885673140043880142575574890337082830955702005767053249034997368694803692104964245213178208542486622383498921395438454160913756349796821119187274952266623516477316088399511491232332474668836313916452407863956792558022668206592499435173684724874564452301177870304552291547580353923211485665658181231757490781737001215598125718130179542413691288002267195378444614358179448855604080778805801291236083884445178401870513029878569327801771912027731200891856829652432746428327751219891279536422317123125939230547966012036822333670618663177252160537023893656655937681400431252315916485864862935623341241647828618924061968271361824656336872388760055821918014487036823054494991528275851506786878498432308442257267996505604518957438312343878597811760565089013085725276957598483245986426561820314968308178622520307694501524497528438520802398448258073520415577756318168089124868164418452296291274320439426341361997670903104733249699889064676677659947295693499675110071825799507907795110914611372569514698868505760771330482541760239481348144262713220201120402944312847058870371072559600783445469774276887027082241740201202656347287605732851791476002424812681403885271076624469746619172116847765884686571333273644018576416899749744498667185555581942276465526494502009745006320785845772756823612747499216094920973456341815560786395426702926432422038954128300669458586887371992960680276948643769202540959056735054551942240165517563966345503179686642902339131094204805593758084289652119927340286765472131601124082197118499114521276951891582464745414820192249316886529163666958929692673957653980386486146935529442969502636554645733025867136470229805236075554530163530384980208950318058077675024291511580103326170994236860454929754768747481701758211756921336912779534975570658082494240369925775432320085457938441182541961913382643628418139349381898621841328316276605652355083694221066715957502447662787420126590461826182340049997075490262632184619473985044456006598444868734943292476617982209035263344533193630560962046574977466063774402632235323285996145841099287909503482108675846592280503902650686309541044656733890156963251223829368159739786133815341334837028800230403914627599552767516961057814632038501210472157927358155502819121561387110704405353438952749024564589746942382323652710017091235793180700825999315457112830867793185741990161665246659765371486252203724901468883369186779039412165043911255806147348345465540078298344908105653621088300310458320349771800869489980927116939453391199577762508201235087692168176075321326541135728958802790382223100374921465591468797071842253137090749103623686678723589087624879139024896217553058690609029287287808132915901291409955390592764329120308944173278343523186113631195837697925732084315363836695313241533062096555523189534461278726560847173773907138187586403594177082306956090336189899812204686240127260393927624294530830062167455240403531841297197109185850877361895382337636977042740271184738100725248364923462788951419049162223499347476268677956106281070697600744501330503278806663181275681146732234442999434072766263504665633296182096200857646404148632720145911384215761124922591459459093298100670994660998724547461269889719756876031584575098379392480976339089530176494272086892254864863806162212704857960592968450985561938770161071301426123221593123014055464607183082292195592049312393521634343154700647641783428704478742833038823134067680269591638918926300757470525665133299629865268492847957361776090383027025769791841674906194877516893858790325902166767428248110103326193467593691221337831117406628982507730503815910592228662468851290778594696649409056876123279229200750340529962787354766394409308297697680677751611872862130894888798831656789530048991337013453974128929132248931659615268205696089622838069995225320618133748989812340338701962823748886880058884450486368351658660166464642253931064402490239385426912116196928793434381275828285337740301773851563248184488640052303821057886146302385914275142923506082022494487439472339688021078197129217726065962984557360005655990996720500186079357946109219467327446935351269813526723657120054441783369571117130653504427805702784859307437573946361786919810129090670692936550819643925146728825153646378389954895318474526184445296571208473003084040526445161881181776994046590770089398604689957865894529898466553357373181671407818096424541555464624679523920777654681765722651067085290497944098368017057015812743886710266026669159250693778914573923778862051831644368298105953725443155876193388209601523738025230859334512342074444501755027437473800751318852153821148771775337582487142973945891729607948459634717308658478882989654792233303783393827258376670956499719411020465781689828412282126197993023701076074441971772156972308545983294023520975670767823435127985791828110695564861187027781856415682038655647212485003602001220647951336189623496219475222599836024188018377652914380775306316720438979448596741781263338318884887292055071191492481610202721066564602766150152879562830030854608773707505591699727493473634813146207626975146029357457268456234154421667453652185428357490272634381671327998784082013583915156337432598047585096158539472097569338957623122041133471548979103775253285709449857180320678347044875076086177442758753898874671133305516988565763218008168895311907684519938566904395738216457381376985158942175814385153507934901156691698898056808839343821077160088537369150223984171180446902796466353135710825653824262237542355255560438066603493180864206284819088176123982736982171135742072446623128309526479329050618901383447113323921589744165047092978041374118389682470283984937970271756418441216363993345640111846340386720447126583110436624827659454244084818335090393503612124961434285903700948592879710573295547833711648628248879005328521467011880941237610679924593303098670315190630522555541715675993443000106153173289433654518672364018236505754351573171067887958263208277098042068797568942403225021284822877049307652642744998549110347365735637834772122821252625232019427068434648493339376996942549099093087943879443748444966657390643664709496152173756547694424107087095725677065506706548094443162745464521640423011863029432275922264185080934478026648793521038068105691678284224061134963986007470871227387811351073671778899148895473595752414018700000573048911675597830189647727704146241748675630919010128340315956213490879896194021619294182785394757830164064503847969235586604742972325715251131350727599825186583752343909145563385004340570322651343246987963139533464950892858919291129398000265079609073456241947929531299268027611080492194910737645608407628355149086688236786400127268140166810810291891659813553579622628768240279772991070832084187566319155986688952188832617985363226422573091947418275798873285901583844982735357299695208801313525965990825411258891680805369647355916062484694866683199271162440201337310375885502348801584720316978122007205315684995561302872903197749351699940300586338547948818195350143997208048270247487004669707062556316293254019187541782980242898244294518581644216987297286693818745500455898566516825170081315991864510825849656467641569842912873950314183605045540555120672536198790816212188691347437687078833549398274262427983044315046857999129514020594828526149650466508884447532248970151867208609058817954269431725403454703472411828737332528153593204710485689726094196580311272000045392611561171806332487227843865264240502661047881806259635400473502326711441887916834504540139501351514275320414539263750283941334456400230292798265116960936695347139756397998823923468307225743063369475668186129219692406560746096540382061913131487447093253442752476461681476396996299696517945354777458461048110738523368469455296268332389630364677279477141290320988385114116429628357104010604491216817161310437661664824313022039031506243428570888907403062897488340562025837735088351436394426608102277840554525381269861187812083651960842786923748467106503111816956004048254885948924088740417150214172444737536994778166405851834034613511469890533807867997171187779806098079585728028777486251654892110665664589312236264913301801695240024338165860656257976812834946235401376894827776981848757500091849466991499344716381667724110736924822931219516515938331747167299688023519503363188515369906696730379629326192169860066486768714344815328249252451663459601180998846475803265246985156321583755785715906048737854524486084017241962670855574096483562199587387510872968515622898040122280327079448590314102049373484922150469394511434618366172418091799862197698802037347982235223103878296493072648379615044961049704064167172456179389388465281842894943573534410981875292054187627928820971698901629335432828445646212964256902966038881456040268001595981200744779719139781738467016005577602391217112562422735843013891640739941803013821375401856994683055981967547812896599979082537167042206703733448592381830020742135225640898952943869738701428678449407727384223784282541472559697772151348552634125277049676532660728626509152412401931757253392090511098239741308843472399759914621916237096006020172811707685011996213397659492273212132183675233708045201693146498920752311325085731702885375605543624076247353037234320941465356147319757788201260879993879790641217556483292747895919860806419920498530506291720632450211440155947315351730715804395893893745470294118083361236015289745005992757577497835592942896324140420714501702140313278229513540796171879550828670038959042624318298470334997032882245158136038698926589189023311860670982428882626405079825825163961818274374709416826936193123895171747959414595782682888187508265152338559642087873647402921047828339888635018641996548410387868640972395183622192326322367954375117176060152752141886463295298476210326440436495547608560771986466206220876620798552402362169933005579265205169028489246980060337189372132880900667572314632898678412902587767486354400787359266824252387672882985114123394409494968410771060320932014217998109213680697804974106736021660056524062488188616423199285881084955370247983362967426251448390533771409957704995463963785731867286676331013259089730197638314346421373153410735962594072102943904048459827245118781345054809480157824687354683727907499644843854958426833427345249216791465297136396055918522864121576805164240997101456532480478284795110471339797148662658884958218827288186410407239681981028901931197626070887246256522570317033994214559517089584632830842400047537754298354677295743254238100190127610693757312477893419760267741002684582601210077505782173884850581407765085355686956318364096401958847751057083999659827759026956162116687319419096026056285008595606648458850942651962439648248907906774761696764066510429713471112256457800152363657987228857666472584359550318284767524165984554487718049402651509853590998391033168621313624799721596278718407218888272898063864959713730656331549299907593116555681609938555894658676581826176335633756148665576830039430887086082119571189466539439419677755723448233532753239315199783074244548717801116878796546355173680459000944605895727064627310558941071547974537380949618464275229877976137975844693965169873249329515449542797429924170136808829824419679968972082006403512696107445073775091760813402020671514118560058742765754773792046535933666712315730238137644586265313667942852037651589799691764339815961260889889666005665539360844243805407915308966619088983420503233094369462821076148227587320493828219369061297207572062832331882256996600691886006956363084983591434926398540760853741582886842912075766920116347593368014867098973951873116762440178637306323232960205521348707561877136226245571163293097665623849428179115238842899867703628864702823203192470123627100299368841398939739585305327456383284911594320917602706763364304074604695944014909018579231075756512901508627663919020781781187904065541587328876971715793300203548396949225231735644590980911487292427456283310260388028579615630710365744465563481012955224183198417246447486997107085421854454583540939761584747707460470011203551947058124106389739889046714891513457442492373728910141431693217410546774708401497617595194816351930458132276064916852836721183937662727932386749027899095874606931565398317324252299952644426668613778938634056321775205454859683503573373754040787568372236588286868783555267721297186637186489263970014670265753122120541103084061306709301822876833224748850379834386205656561934805815087515846055220687268339124619738442831459108905724070501828024354855000947345171095161439347980077947244749868241654981125118319855209088095148929511964804613866545961260319098672642715765646438971000849521668388283615729252068823116738744560012731096080095696393650648443514578779402955493639757227021414346873002675760989838139460389533039182399581232477505243821261122180849400213057865843860509973892604931535804046700059299858421803006013873862487958421862925765867279928567217483290316960049416218122629399653068652881108454422286525470232792343955999900826901913468417089123887378153713019096990060487187124282781915198835962054974671658712790174034851106633451677781509896130780556731396842240325854073095542482486240262710496133543983478334959251920157339136136098139915559127666725169156299425599547580058616557034740506494544648635401124615873330825992578309870305405708352728231647663860685933432723467548725072437980659046285839132941401854602269449898125696776058567408636263215057471812689660982064042010016312666269212547241401831452201074864699785334714584488723214127662053285566943058553808706368115817468668641854282811766549218756514740466601304525802837451274316178739601701651394972376143465636985889006390334891030656785096399327307407777752828758218079414601312617088159282214069776371747323232908232798252245298718039544702284587607155258197820440119917763479791162645665921049729100664974613558304717639735568335876803897306276952734429095703872667595563580945621817513232015837159930188027892618713564879886545813930875272087237084146338494273966530462233039083538157527879901267270817571941198741613363223368878720036318463250115690574987344919056275581832308661644651286788190561450133845260614122477519554140440259143726470607389226441740652816530932011323491476719170790161865387226270324763509071517749525663433110783378943497898742406929308243207380886183402429544429090265570983918316274106442091050903080581921734213224068784573765162343069619719776963470905789291475372925042361911500338809944598071164895903236398247383968034858580364314517305706552988406278056649152040881356507559320256382019983813560977365033355094683474158955878040682232795890081716762122677775274535690286478506394755319476547205552079144233227727945795034912787325691482476798973340766556145630261171206214909063062979720145631406524350314952992418406335488561522278243068194254296104853601802254930771204114827514946763078595956591149484122977987020488713342756132825755674544039581793320863606564623391623761340730123229248160465680554932610596872338405392104438075611958825512583946242466551797741156457840735002936645222801951945231373618922718526489207666912112675805360291714123712116992533084063636506513539082471361647665708736422768896771690435070182155552016320354730457528952356942839718536498332112831020530558862585819015484973531135594452070386221227712117815884413142289376266354231942422309412907937235821273748663065523623643184011915947969896375508387285282164858120894847335093885854173739123099411696763118173168874017965207852367522604921812469870409546188824944176091901286551944970620900502732505774437233055944685297689497270689707391946913768752542455100561056882679098324306945624427894338360398518574468514647126413467804200659651006875777298435273708870531291876585085338336827241712856850119631217294582039576721985032259894286180005422833285426515465318391183968875970836750209866815668590975074808541789097649810805929418582487553592006369661151204910364153961263378095274080172196202465482365317635875609151991876823907407720136858043058355967428928706500269434949085989203094119375640059910205428580330444991164754373818389936629375072833924099145213536768642149972582097878912671121659408710011981730562849603853172504186786354686324930115008980626164460605178373280786436746550968518578474463973667403543341410823329928345962877029397368385316348112053867218074156219186958620776035090698684507523104524042358841849991145007404566341241609150496829118092563758024497641322510511395713248187270115465077562642164807651861661641033677874792653169825349515074783196148050126701845723753830156368093936702493020938791314174859143997781702098296511859466755148142755352264725836067223063174640315242941823339138492117442883232605394701573588524324254005491655031488898481433330438125551076255404562634246065294204767670800706490577677877461136203598622438959355293650770461035971467925311228797796684149501031869489258268879941902465065203998265166033918336728331653607677531839074061965923351803526293245942062518415161368929366635957229529304986165783548499748493557572527023534708902189069348660889423996995564210452103534279134969671638791311107160063996543091711870841865934153199694377242583818578900819523387237599847726400610838623045926946091765790060681943037694213656276800975976782599358277261233135251679338141500358827583448861037828691928534521153304876477546556048381014734353832871805591501257255066695020822912638807022622848927427545520673311522269213047951829772380200882741199319694144143909690637576080916586265247354171812667611626080696499912650684185864197982631745870568530315980932167794882768227237748806266631748190732513836472924589538251009174385689425679510555299690033268501710094595091251375895197417588034554433308397560967608355190036620059022634505652112082586119313769743966187435404594783852842113952722103408062862207857366368411377628307863587429211240938572341716156989246348290521477716979553176728707046684780149871627601931279496378841930454941237536243609570747594544319619922281002321316349888344140583370426541603692974591497139661342808564879095665620939524350824677110514306594160824853666569147326583421506498605238519523133013056339096583845639957088078946296839154817176396316780453907243728232055889956224310072639718951327209796040988605437715587646801050623556722042670249986158643097143985813995159966781099917357364796960847211374269942600509633235983186972462278800825670502552030207022336731475476353913443414004137285475721389817519025779842653893162088355679617950235384299316370149674976262064445517854761391587701164507729087970801450322399590439819518300975684287494636961239113174124123497902166818758054909860516741661941014115773855314503272263300185498071385834539387592283933733679495632892397481319468144160887604688100792346219759781637196437580566055794532072607636044614825844477221482881985595635535973789437133582774106974808185811887842153633047992085630021972245087430640443539604259877944940354675637619222199676629407184480658467028556644858637964830672120898065934763259552300605952301110938596829417177524604121785029239162249550533813831990735184291756261325765885367723682337850121312857145717347480563954089305781108427936894314816848061830207942483738435807685769892413221905489555845476705555339229877733630911055244526906888943184101717243082243511330819548994485187686373467060127249949157902353329889021335942569641562426604914313593267170206634081440510290049220982401500540176697978490552323458556592630696787292625934963216809478220656065967553457396087490409278411521296510259381207554011081514204571783027981639321066115895958791542463921501809560048659183301047963034317230549118811900550201398970394931662917187472074127330451598486115624725131619945283881169324939251852967030921148125243748318939375856937112054967313233149640628333658315015561659384698295214702014688402438475749856000298149535680311725105525505275239832548918778761915656285543420780773226125106613419843956476362777229890716273663247218806129621175708852930048629183383145361044143223898278492800590890508877236075412377039230543339274785997734862163186145622307063463808830995731515479791610314912442217448218364193883983676821102917389430380916018105608055156084724327074871890256645227919021822435960200573208890306580333037626244372791496943960199981584626422824840885830778212922810902065061360980149249101721092832090215338467027931405653234951933399374706290449843048306248285529940779237705737839865492878245183795047717919844410935178451099241818895444782935004861740663902835925246181952859251486192464151291568463889832133414680911396770557234270551675330782054121897375765893143506060106548258907260706025887885603494524228930011754167861903560239905056673221112590774714818903928818538219012036421806521222955662880316336310092001432850496035132750095015336371245849269379973396847252913069640079979141066196246410451457994213470162075845277824326700013748251478084612573474927521476788591338577462375422132935869879283378780467242934145672519330287381898025308481218305572672944900759924402942239788044364903267303025281857748256377408737304582881064858082685869285381647530216906500557804056955001238656669043811833517000051973961140036216579332080088510816489586766069079373376295112355359254421822192391860074191801191480707764193796044924847636100395696612009655290593441131446258796002670835008806525098619853569740307817955412934555327569569687038425205471617521754401498178058397574818739856750951996481785847186348036792444194592846561395963562751135294339386301009775777677676844799729708188497348270314604766049298523309590513521373306884129042306568570535795470233650555749357021075634649307042150594630845309230525851776250916782620456440111488407281939767574473302713964370203272920885535134822078372088274954910294920414126516435257378586750480202187297800117762625331297875424607836386039937163134704018880503562960155909870130462629383393939789273363333496290618219323974067919749839012594097751547958400563789697319564978570746411653536945315018124218449296319840227974506072735652098764843702018478181411741245654876420890140226071407605116724774774821942923040273577033249160169606262433568258191606827227669186049436038934210856053515581425646724157348606884274834360206483981232895012752177447085625353614426648349417307439318812645670102874782424004466652094259701040540232674899472874969677452264999404511561377710564314973703558954888372950221910576821255340083552671493226719768384648970315918072805497967744740555351268859407081146163340649210931549219895009045940237548344519631354269004756855944488515776078155938184242455598836478660843915138460002347496232987909126662208065965190321751087751682444053694433170004868864210062097299135418992981112152829467787429236181451464374441349775551542749369792676747805495427240701115711070143172963239138539194961301514698108320355251004605613717925178076017968326151204916211456386776865638072843960308958898508053770133484725152913320640046222786680411800111042322161940146775286247228689491295793790028551726289247022229431785812320223274946612850572171497936115963622308077003826354850799615650346993099021667772712626420927135447136051327464576982543414996823709542305216335379469668048441537378121302143938291505755594764654485797570663298194821724236452514738375295218502640580147038528818571618701599735811960980746085983014446859699829298167463715316456089610799789747836262404124815711610010198611863491238849481892569761640363952014239275840140281820772644650011776349072835948635096072714889083209154905476215728318033220737078590386175831877423153002899099802518100508310163780991081369730258816626130215944956552998196531879940958098733409039996070503789310073264470770071338445216600065055762389299579996607823822003714449374849583216289100665522781882835094068794588379155191675644948116788909541225590678097889739646339337068301655869247659948023850289458356618789898800116154332287255449433328011487782311713884820189581435620579805500243097445978923789414791398733737224570435719991510530629245637140314924620987425279902855725335193729876080984756336644810209155117001676359507025261830157517003853735488371638642656991651511935589194844728601718370378980662744694824857453413708729953665844326896472477133609700962060099507007946138339552241506705209181936403083264332145130485822038614379961329613382817108412048257668811324517842909108802343360013890695524807801699762845358577327363453017638466540713603796606392352213073355965685324313800931943657015779697742899548673919201338319938170818365104820184786846559192788805386464167766984288375119007510707001894820640504358149118075994986541446532023583955877141111198027535306233087306630619006945712372911225950186159615023186194701936342400179241868968505144334798703503940227538416946032199716022352906617003110643419576358530938928445415884865323988284277935845251569645675781449235039312450349896517899971138411332869911539252077265243754697504506904855250580123682415846412946833311615870251732419768569616523289860764451475081763442686053216702875040023190257232465695933633927062672959140105305281009500813386798001735759499176138649650428126794713847884767877017912576427515617662202041914540856915612728104644583099775267278985745749946514578049773553583105090447294576401034310372615685654579707729007086408171490289680342434489143818454032499808606293170968142939376263200180838328516929981461925385971894937615335887290190197090277585839922528654155717246373764055501841040630601804776327199617906748171963374851321747464072245236714940121705282718684402951720876482010882795056544253233714913359914503028650914559216725268132818565844857208912911457186995456877690387140446169404156161815373068269366900677946324654427120022297016597428606891215115042807162720124872749758484871829646362365940395710458520650105249150985263821947909492676007865314901282962813711184260264910089160546210914296530455398157499591564456690325756143103680025918554036298836231212119296607673533601695988799039085803679277026672849197292685383300488929458796771410942571022975609114902442522997143636606661758624742367713471590555012047706422383392421000046160370934318959395737644846328005736293624180683474208464847236308203412871378745393034491665843617495462808535427919006957127740598469747474551816948989964119400896384628992638195818962962790789914154684894105352825117907357124202493837034495095413664783708128029035247579189406938259460960721402530457927846838896722854014708270070223943606724389818133086624436543019611677991698421426239933919807949284757906088308186954270911384417885273441581849136021332972051102107959793883511992715805861814296319994989877185113215523345798832615148486486226001894566742855853441840330179319220580721894393719067424546851316120720069243616230700213330074721287871256853902362665855345224459576104045612048712691601993855474009442939544751029384104699228789134669204451525437602951656290073517325551584268563757818040894242263884626204353931011289239146808736344229955788981558080474838238179247002806198700539682763834511890036659536145639972271278933120005494028164650921874434457716633204975175549655827319325347301246956806698954679316583521775466564961336027831299971645909287856898191760665863487759779883734495896990098575203130642649346610787803415807546411701837077994628481266783072106854045297633838264970197876923678215238513127270204292531178791029754433189447550200436060134597039381108034471306870276821012919741888794037315050260613430314268081551632766486913175387936142906158842461595300334418104955119433155532324449744789210958172237350150498961503769365784858878846361804911507288776314427542499950123374404764375130524340710556956682104087455859202282647113284061118846154834081286436681006154605472575657013350663660593941193297306935147944879193360075238354565937085067836908437157692881154479215990120893480733281365003836857242044964516245029036335486839894968116681092616861342166405964799322846432280091864148873379337334318885721256855510018491936653379093921577717984053949697836456043263616724319164682881659536329166514689316521384745460993103735807894548145736048502463775350947145086273653730364411934616274280192786177629438993056304773744287321530183207499903343486740404035265182990697702375578561721124367952022012079578298804106326230708489740703547236224108073376218419944717030559849896910853508001039899045730844434096872197138983311569615999648128508389559495273565303519251652944683734069455558432056685732903599309632164909326719714720652856938182485369457442169354187723078984146126132394272656442284703458546487057116220339306658882509904685208247783296346280476801291332946202665878785316379465448000863713107261962975818251910084849707404255013933263600744829377742960818498708550740340565581073111738659458423014210760508712464899749754319955589081393771042341756540294854083964715986964951032700195616108961054272454001348834717733921946435728320166567171052641952681871018561021420142816995873516994635669839486983340979766918661505783894009053100728359014995148488972609298523196173262002396223429525683579119014162474715414926232789834271459095554268031349753832792088084399554496050356457805044878905683603579364464666742556376992535080378446539871848097739334176957299626036085361588949865199709674622296776806917268895330585776448263688351970906922513808085496222962264152245981223163257468228951247835455638251137261487660065813853017219683973618135924904944556957776221572415349105008165636326742401275920742718618437982895040407776885997848013040041068684901792901453099208803886753330910352141464125001686922574818324905708931023349004206878290658362241830505974285458036724961858955370364325475834453031922175784074119074082229443863938643789425999428037816609763343869894446475119813381508759858355887111147647312318889355773440287180894643082623995014037059119134717329576842493411146403511527537460248533420004673324819206272693726216967173352324318179770797928587814262460971856074030273122069879842612589571378757868171530308903183616785148237886217159360602248283148987766404235042064702178939728408895491898601606104173255838281660336616386310553756444366132879537933055029000456937767787154517179167663241900412196773581845247872796940301454981208903113518425787905369726013742076852364839599343869716634869427532942744417309661398044113521401079160603977880572784313898231303183143812053269889065842801392222682628357680435204694416516847662839429602171662307751282123336445041919534129340838363216595969139202345310602906967152603817531226558796393452586585144003994824734532396203772578585944661704368716737553391207975513262364110775433525467902113092820425976273395578712043836303966111484878547667509435119648954358332509304994517156843176272391794354969233067299525379689832399680317518218482807051540312066191140940078620873741411331567260300094983364808282939166900361652183219593983315747327794467870160282163123457275828414519899219906882195357385375528264110160745171492155595554462807530096104542811868889026217970672468063650238001840808682903462357565889334044582503172543371067721244292283939517017823733465327213202535451146630098122112155519783134721709909445480208920095424210125634022877482850346627847063723230836229443303049479014769707527027735894996554916472111577126619322116769517533316569510623725131326673931980267652802170703687369624952595555419347053430695589951208542428300527819071222215894488968033392633800298319044051657931341789814873252907762450126861042601747640104435043943790309140808153227021581167859650761884155858733605169627680677845981154311186434327762365917809225161327784055467932200879959468845199548792372599410683060200666381736142416767752852723329191260982629247431849581513306397914732309681006226624601929473741148552581930558221373852094962323910500602299446321590722958851317392375187187687514401583542730496593166780050348710571784760146109248996919829464364610734524249443056341938693405160054637977014875684707780454420751594340943416986475177197586744150345355099207134244794217690245923406542583552175788306249739922945307967430551730835694999334411511969026222646181463059062458699029697020907303656650290099753534554810666699647758559741052565311948030153292547484697005542625393509937401972328124603929216822522338604033943671520565948848766671174574095780683910709699840059477438526818206330735129040804652319604044852663748555308758867252557921457306818849246246172888035944469450310670355934956335212947329460859126814290244758703427139409957578400753935488962606112232587213306100824919840683671840795366860899687920240659205907323799887351371543261423230076977730425620075464891524544064894166084436610805806531162411760728657494896814573940407323340044776074837849853340724089766533275531464418062369310520147708407862293544962530305562923367110219199343939230352250183615922671115113227848575827475726496167512625991742424158276572464973551411623165347856942720006780510668116115860817583474215030633806871222397584200732014223863087699727254130813062671495708513133177195096386534314201210707498755641559406629012373850762447594824873346210530083815144708639166980759403934480278337650505221818861335083915551795988489354244913290133353605204093749534855358130901134618892049654186727974427995464732075513228701757982526733753732285807982399673337777073040065940815340031086320259219638343130266199804922360335453960097090455678734702227736952585195670334207616144906772193482496897875787609564236555765371997321790784038312883057078653232339387230230624071810260864089573897113824650450508705944887092623379608479130007758213589167157129865395983643286619585622845632432760040251687126023859633811258213097131909364384777741032250131757885286770031006236227509801585596306828395468418915965854748150683256053093399683884820273176956572876018633525202030261968675853155481839162699762563053636537821208359519551912381719398634450129138920688244106697372995115574846415818264575508585216531713364231959561577718817372861875380023915178946777087264092891696252473410975343770116813139466457702151625112731953430713135938819255002762067118830847356136494033404595407622297373036044383543583011656919185159571473066523129428381628411054140441272946359114573773259730115105844803609003426932792819956948762693884039840527075975195346197328994513674019880843118249272187927157726704170189766826431186100824142837106955488987664576357090709976042787436208185868882240555484501306515324500451819473983079394794212594381501105266813983413461188613998375292746358528168157329627905287939491660642575960460828327618943331700088608570928649847978351546435893801388670596489100716890008941689661456171376729364720137793232296998814076423909099040234275298511111581132014403747616256310944269400724275556858181745557132500275939185050522179779100398480191512324615774135839648261621596636729153188972439928867411780668949942575572450810150447973389607674478908993152350266179275313358932778872612201623967695731443644405588397411053951034582221310878386086436004521871545079450376157167968994190708083396784140843755228515665291185131000593164644344187786480720926943419019058780734563141163642124864906251554363352836739786589335774760492964456077786390946069632298634962898609244342117775442725528206186263541315885651630171245419320967630442822922171723255251986321901859012560066911117909391609095976811836127729209688763153685891847220719294687687337448430770454430678505379813334626396155841048314247624938049912003795045854037188309097524034726501633874632853298475423535223863654725890000321497133909190393559034314516708826368671718745591476243253776017002477959205796351025366418318105074555929872148867827593965217116891919977928617059155215247930849051295126111195448228514826102056757251977888321812089485497557143286055485616891774929522256567884890591728143137556179613763413798981751363304368458168005518619150005273597335079264107770329064670195091421519588949780880445568984800887409723703905303075890854824695907423341713415068112754185258444494575561479122738751658339965325187468708229431453428856458913127828405915616321660831880804854703679278992141477835981317044999915728417174283959103725154568834491536162863667533299420940942738981839780243962195191622844254573592163035555880501066325052186142209281246396064051059639827992683144098369670208445051687963617783532542899075780979465016680533786315295900163368382394589551909793028799327500383120233237808294398772281609560834436747392620446730495263844161728542160257049003936609099802082341701968347975462188029189196975027247330103947855190293597512997459382443396112232273550691513255847716129657407335106977757102013357387408818374187259373782307116677191580685157426671437388186615530719266369577807201574377262706681235269596715663107894957609919405619567296873524208298469914680509533659124345466321565496321415683461006864009510248615158009109190096886894058409810021474121985655541335114424667842787808029012338044621322483256607274943855079095966375562755347928844786347121515787348303338437460316982058346770605884671533851227276669426067419536766152446452704037657308292386874750211958942330309658830035743642468272601881782371211524987296968935595413850253310243272809973854668892292962635493573601008153029142521085039161396626757637266495846334397502569684363673681913181862420865219789315673299447317459935882419879738097580044838808171557184779784690208064386248661450674710732682876375972998445331590045045936178397681600207886155629635468599142316306704467200110022857241532889373218325252013079364835462760505985673663959581746251091476809425619582794932797630727074538093900297470282128427318740546713655605145838080015897434666370415004573154989541992551102414329737839444950340155340994716246525653780440380167284612814219591245760106681304974656413466383634890399476627222737469568577686207130432479553962901618067191572722255373005842123986007981732669915517748568674120475257612423577603106087432023854464070737368933812917184777113812417465957229780535311980738705213676861723138771150630670037793591181483213742309462644893059829522520538400825447289037580341762638495166507176111818222991945008793082557917073962024342604339470192087627941433746384694730801539466209241318708406929918286399148118039266875457925760693302959243569599612335794430552319147039838005388814238149014448008559854384700425274802256856684019913391904579050953337976139220283727651533288849272485692988056376802904038145420298777615756699483000709839953129003427001973204999764147274099461469073854417097592453610042130135701792182965014500166194265580101806213744319685802237084431325522638666077915119371129354171810242928812653821527540303403574645133242367720229080244042509467461003158961369312685020861395126213017275601740264523315148362626986879895050883644773259743372418962052832006589734177126281850411437702383346138324901576814003005682842058658029635656541051363387783094610722497266713337764880256883771277410503084613660080529611689713005248095538488348676479924922318501285480569920464445009500633704331290418725533135325889889151471018457089047421992233119487239430952874665960230470028415749999173378040028643952930546533548977944447781288044590414671709976893472315741335386567257996593884265875194255575520544501419676633783586566607026934910587473225634862360042813566176332370616399695812036952226418674202026282811483930256380169171837511088535458991027572410704652645359214971811062163056094501113430055641420718465191491435062989564266149328257764253014564680365384573254931124591287169919688996071239359006808823782051238157633132770396825353884654915298892221909099466014819843370659730847240905726133232628832498589256574942928579040402463478432444697352476900082799804245441819842900916685544380935608178792977854521325408039539758337731265115059066996207540264024428318724129289003850924425335790005590804119906355816595898502416801690108911225845553736147607280931105305002225325930432417215824472312950013712056359244967360162127337774351179731871489990527485066903049202881506587039362444313557076284293844188448908522996273530677848277023602972218296091015695656572842939601665886334858465624561536117123783939903500849404592595931922464621972293822095959967204065559229993383156739232350180327709455268213609910692088425211599329697348895672899817424947650157238512867434359839292876220559463949052391436117638375824540878990807975240196127320669701117828260054698821116144062958164842207843299932568897623487839387057757271734603283394524749115618151199418130775747160315623443667172131409200433782750426377604446033615696374479424443133335182589971861973586599597061308124913951775136439336108386464800285163749588412682105611485268653925692900490644447214633495835808112784987152891449369980443639605722757338674403940625537347113839853396885722903724398800264726597653053703460244605948234398406846989304490724363731539189758766520287768887819912338711068439342123095805717921787144524567641703370555762447780948518114091851363277735317437502103568467338299560129717240890346325055489675235275693309304550720958826003194695501952376970945830084675251586493158993983600186894578303314497194215582186535881360840358676180273646950489064518320046229361141642762676750989784642648085562964297330830219271918605093164878840170330016851022304023099518336662042965280692359999406118079581833438623846703542873024952878900879798297742140065640254058804531109136449433850313817187891182673202436447425270263466325731988127618094806285449578258407594619128955984702459933017573127137504539270175125194350650065754402572175176228189176504188507401084549236720310624342697837409915400423417697526748151538449079969762398753986084268846476716344939676283998438388246424655853472288674443919360990282861157449520466678506528138383473753986869990116440804759648987179161995865126197715872033464101879120240122143696885403467770570581143912360894064377730674348048403217436174861373911335245556971618136457002522642490533649041940515276393369760109790764351335452135735162710791787602894393145787825710236477028836698424901204348108273485736744312355490913510494510948934913914674100924272108134532643186804977463144746665234355932407653999839702237393844254094529459512475116501294362072494008515139678605072686146535038211954543393617277866023350816155493755911268843152813165764818622768084967482844895508869892869380193662005922740946143079271967163656414236800116968956184257263182285676413672078322338711778626375334764376667192789448041749700860885536066826496387289895362454072945266073230317272250528044851377838569210750636710430437570599896034801597809107360854581077405673544004876428232703560155502690589088630980721565361873732468207866757535994920490044004336583071185132397121861019264447087683958823638237489040316416181581621383404406146010572402546650177851968241307965426449840969681108635116564107321063367530703905686159314533814962625547991677579207022912675945119704609704997157549714535090391485556690852386863103402819343687591862818024377448382150612676958775456378776199702663584385899429933540592741359190035179801425983572418365038115859911745550588689685204782479958388817183101508452155350467055517582396159022781431320783257104843795158556126758063070666168609115609516057483857872232099755337769582013575785351139044383403398923503549503401498340223618632629387962505779048522890345857702893121612480948398051070344404693411685135152130681307976598769544553990218152853445847118419902099144278870100719832494430024750444563903594780969798007133140247223598882160133418077422321023832078582946396969441039773149717145281284545916786921825070406179328331113789097315192168854171458761143509085103021845716591330028023484069090306784030406524342191517446690033288500529417914535327717287568665425634447710659234260681514635069053597806613166608086607408879989629545154141892588991782202523072601909026646440591072107591715280024288583416905524043913930258996926216043682301161818362220557825620694189633406633385260363769869978679062771563806211783806154327088776860309442249276920331356008017726209560628697294657125815125126859781044759281011402688692644026917301790805675591386876715723919270272643948946606578656429279365014286287755702321647006323548809953502780367078753403769806912488721509057023333681037279398726720225081332492818229607118089952789360844985112076508795539878017034051762831647799885948292483497843764711298731582388856880474988376842881912363240629730688466339118748783461461702458231368399217460419661976001120412217341774416597979742129193673104082794324795830399044200268929443370694212458946993800173861828843199225711346054176880635700785366543788116093027195565681017471838356211832255261756005121571874004130977809310376458377993049701834037804015057459396646198603322696649270380556756806596582886571635453177797951749996558445969470834059062019886942957833253041378011255017180602882389458172078333598035558165696062900326411825782729636916468485139417591408700405402736853867231667750567945228608072198116594667506821607880855103949141095993237468888649990678422101134974917308678252353988393382335347930814658921838463792066437430885150169323333994663987276553507675865193651032941957146681990501281215743636257864698501630906579205515304025572188112841289521311612998857180632966325770323001626583699329537901901185964976038297791004762260415013143747203193809148486477172067135532553561179722616721924082895025964207181757721235717671204474295076007931763586785179115685501075545914726441791647429827156594703588731099394347653918850470853771147185477497290649548606411335693930635482603639174609446925191604460074865445806884306359369137930742134358982606649222145087296082651351804841765847020996805778144810937619395263297333472108013793410092927788280814988492631016127897106577144789791640846097387854671713875849859470653835880862950603295364590388961463886363323705065759825459359346419323239712832597339677869302263225356362236481805798891282619092341569357354078530711996101378797821666757408206442575470697922986791314898843588145036915432525477579086316248882289820758478625023903346000251612038953719974822931453832979307909580039717474687923967938478487122726592075664485141466688869333929200017541667399754986497275317232683859705703131895177280122623570641470693039036394274672790689940880507235794235286285769009246083291127909737872803693648718880561114631271592121371188054836803271951492645167238264108436093241522266712203210418595961541451565052614230177050981371938583890499038876357479574857296384819467021609462208903827490297069257276756303307861222798698288768696824175490984931774540059218383278639231974284358216976287637461396943036706603687398063756171401190299230574137877361174330180216381537857963910526538093656312119599925489630910229210269969904788415031055010647256434754987383403000623465028782854883738259054201470216663764381208354774012479718479948617761085762158206202107737057727132271270204301391910649232998506242110690235043402100029329957723633213479138996097557228468797553029090356572517078432800434234681473575197888702599619307921644507123851637403589264747404804257301626818201671967714798860741582825748975374998218203717764788477872724070892247141794602144782190855077516317378131963140892604169619032137908968354162377162174839369021403339445060558935288734756320288723449364364405560785293817446187472570693798174205494669672999551930513487293252622941776537459816723377167062251807667646961606411121057200758316966418737057270016791670968142107285492582934525858767107983849509736853374340396977259353353296879275936872540286809375762053526958490804859461008269738497228540753618642639237120957642657048838569570645721013861145429404197471182755724845814959414491114158946625828633508091328141321264734608020104457395320178149927682841704948045213309626140950471129269966722071985495723829301315967837102444985838032516655659739175819580682687494023135852740643224322395293851219233065333988331974619894594425683096082031142965616383553665428983813800873345067388004226616933194405816191508851874653647118065604874614947640676929894021227788418029170328612140854831217850547287491547220763257330213645099269035404190868680783616507547469312097885007271036746064883847863705973565706513000146170278608970110670842164503264160186866620341400365240657213420705649081976433535771456104365606044790004756089938804973379440634681341910126909524423096709922231706889200784716205715211989370134415024637118349692994412659448597716846899014724224893649582352069964972321153676688030120979663570200896074021209170097723001602122463878608550343826063402054780204010848676151583753600235785266335079238426930746665760910876927581387899507242584281763371503389512949337190507855300401114681271384373089370915214558537539560025516728899837976335601108642635440336602142884074825221171882843584159319630404670324211879981023511529231353075719055001490541858947000699320688340455996125523148125295124746768191148525287532454543617296595773836776547416147314001520341000060348982972796320587545187981491813790263001146454143724933134357130836655053246461203151483185975837629240924838572156047160664761954051286719546301792661119204182387350399429810546151409232529269399505954016838276716371908944414133526411698737566592330439837442009444552490220763912805227121146183660889985771432526075590549706386124693685028717446834314042659015621667829772271701034148082256157833228789981371177261222103622075174434575723188514171104542052326927620366350054531439398176492855428096727960223321882938569161378192744166924948051852199737014814140927219745507958245138829103242157946839245203407922027059755808305667268881843170393539669392957436324701414534821808201899686403829108931571038372418527475979002944067751039496258375694731771258588823364981196062184242826429559013582724653890137004929275320782856267073936612804894173514838558240633162677331092627074065175389168423560382268795154836167651566283811026573042554886413916523140878794467532948840500333301249151003269862799430350503122182046058017521552531398206631067805645582747020520172893030152765966369652004567066961058346623561815584038377884966931775486461148292975194921733208024549360048316029204205717443627252237892958983841706306269798707819773984166855026421126547995644925898813660964788547373467485671003059051139882158173032908482478896240912796665224010845067050237504723470014155105433588418271838390404250758298722794655081573377487586697034637539638327613717983225031120937332696399133360336680502762431659486960334018124557211817230340021381387880877805032495038453977237069801348960636697376502525118099949771981186235421344844854833957148923901509674063440614562833495512774131464959722591325254083057423008883297367935435834732153057242139830998989750558417388105863527556273171642322506476783711941374292310042770627215316715198617501156033069632756228228391799432360754202148070804539625331767762929896695992489899716422373323684895032077471212230496097430094584257136544392579194790020939721379931717080116259355983289070158665655723005750476928337379238107047730180505179978363334562567457147305768195485972325679778849357239340207062611129702536277169945355046874619468475780083810148525975970753243028716850793198992654187755513229685905538796141006062137444533477708363577807356231238367157205751427157658414746274609008916741174163135830161323234922555772238959344518403910746993196732169421100691222780657931622370852400083008818449555325119409447661259287644563446854698498433214726300359900520327529211627649611182363800670302061908171306536090823432391376231992859281156716110855169796545059220203496003647697964857079244277899360473354143529738538133476353448445476174295896638355053898708547578670787486911738771004936898385347311671939931569942785388649308961449967637299712490512475193114962249918968519047687891874656872807149581552661297163858300724667937463436851286323904782780770890055240870851159331368912803234847507838725020343079457716125200930321969095108080132742563930857998047136936348837849305223106522053410861975759366633827872733613632382555723530926993006130102855598673424468289760291180643013323546058701672849614710003955732716456993321792469776296818605767274995773884217736977326935051463831329204517541408162639234775636887143134615737179045023140112627516032969189632867532801478691205370579732240446392356198940668641204787143824201111680296861201645733429631543910954215578720145293184828772746675490552280642999733831153656370680446447262885625263103183747022266188840704678139173083389195677589636114160736349448049293510993026632350173642258511264621719362764743752284349176951776626475750686929057100642048309377290781486462547306266591579681075034495515782563870124166934346881655752438329083295907698528846182658585433248909189448178127135982447207571204643428762466255741313428876558606696180202047029708937777966744974653101687667627098235838378773572905329677883126205099120305634937346883275295394192009298572715518597088160757977935867121941283460810655752047314335555971365207679688812402204291213279911860482506222999887750347936113038485655043866442688510060655571813438755559382407753437323872958242381942742966451557721674930795295557992612237266873293849554009752138553644250538654858260704495666235111429237729861208481388225373687699954667620501648262792625250102904152171876836959445897308148651648366733061402607652009287227438676966576374675010481281843066595516737047092221969831185625225792838920960438155946556532049510164057677616107284978660232072556875567652001284020276375540658797413734715618800322349172274264077486055327950230491681539610978122453368219461008710520598460842891353224486768098771120923897384838037170494166146175724016946635898552444600768275444495352860659203771495022624466812661762847733384673088850720395716086542221740311012199587533059823786264391812581484941593967610112160450867549136870424953641920000558078626929318480908304040443549615178161476367074133982482449214576239613033291565720934869863330491462925615192080784796825837910479340122460985226052737645931312285973854379678516257238278761921546549341731644826255943705679290912115745695387187179672408027616517853170500518252582610152193642001042302679213315565285417777514471344919027034955392496572301756173535940205360886457558609411115118495528039005142777422489818665135828638168073341372673156659339813909486157755900280910932938359652696708559678196933954640545888964446196326693291798857839928346260243012936996042654680989090019964703985395594272009758352836902514872267723026114172060298888312119138589485890162017957108037776611127439979048296222227588615619553187983322059798603917890518817146830889643458953385104623308436954518682557094791360086095642843821358098933420583856681086156993229898217616758083696478087293644222028009339084446505138065334030287370721042337127172886034265093283964048097721781490342764128239788161427186890151001120065188373390908685214061025874065975182466476654711752847400799155584235939732674971608358586492163883064953677367778658783371805457194534906932695502244084752145528133578516271893915286691188246056609496497161811902010626397367596649887731910513400516099277950294502203826518309390859709880983761620467422314862473897253737140633696616235843153598836091933539961423515106990817378487196679149070629780181983840107812866831445438136172833254150497565926895763163851868696268846435267124463211843238545644753129919029627858226574155391564894860602624976090363980534855532546584480533773852870113770388020126579145649486560087719127209321744502175925702667437833907492988462563520534487777898436991549953686156178945092044872049572055730912843124198537166456554421939773525384189231267815935844166931388297801929244037818178985781822165949250293428871426452915964154646357891324907726525394403732168151783434298973978549238001153698484717037594336838242271082702659462785495267573198540965641668217006182561348302792820276388783018269553613521578849782679639074366556011438688458004831666571260803867881153943125974673362507600729326472098952037803293255174670500819765970393291874291408309774205810163826824092997749841662387015524850128301592658459152390603059491528991431215909205879881850957361905252154175227658261527714682108731563655295805329862628279720571552376046095945005318574202438255027497355408907974698983601781243287901643953055420075320517672001971511571005344538961895392350036418408856808457246171242153649530783959673200853614022964794714275950317373090604768256296998521627418865226987305800627916139463332301428306442368212588202371557305211378076329678839859374446904455155334002030076039296176123021064685810053379465525541022649030636370816424266715094363894873247603102335423570362745087464955159919585998894155755902974834691339858266867020494171643728517958491614083574468606879362190423410892419018465989661184893602061611098626600623105919766353178230406642041093314561771575564636447254166023702489342962358025972351649579375664257927568371853062604921574462312018931982751379021636481247821315695038437709587397625256280085485711900561382026194427897358232331387210065739727247502272548547011402717821622467263531618069373257398928576561539856847073517595383244139170752205394436723533652584678700636443777219650627803398563291446507339481741252616463561772192331510785513280580028588342554675358675352289307611403057823658030073182964173355213802192836702337113859450881842338432599458156414962390642544197635184312204197005980033003104242297792580388786141227651753250380089638689176734371780269075365194661552409654192378247957825792465083284677386220541211638137723250048896043425153392224782776000380207831739809319220534638866509128360358407569605971870158932338469575370488177819522471050821010503687331873006279030853391586020669464179526632315366675396205453053635332967548509337426228176301304333140277260030307958925961162439920922879846049634994716723209029807877306959440019575155447220905994565021196380302671676984207243155620372216889427435311178633871555220344246375080197414437078151726523409973733143194819364379187137829068525334430271871286541544303044464747590022286318361778401053442454874270626418913069529186812238740867917968764768767296137297929643642678375569017488783474596238040560811275107311276289459866513556034813659220322764401533504680968514928598800346726498938861694455768664944590386958189146456945152247556567528705550927256895628966290029939193392878302585798506003621328371816937305925790073176627407579332997835214070408653889320272665772757076852674002461715130927246818547793351661442209993027329827127281785386513638374673803132838504551417917872738657196424970938566661866635009579819827469854436492247577690316692791803635933359520479289371774076248591706612800210225456587227207049643385291271367585333127604993737637724377642920967115163694693933418756728416714343155707046884287616965378611223874167154892570893289139156124972517876460485354606988273147991117084623166485228308502729894461237647345161177048435368295736106574301930676932899068816849936691838976350291055235990889723821843991243219655801789298901753463326507272913753089954998800916026467493183497623818136734658544948036817235159511969210373478608053019001608284337105698819741045321107721331957249115651819315677099170461874292874266850243768353404521337406960186506661312314313927685067120984406954095530076456560169671786599381310027374146551395430047321277486106518394091646072139860459832799781398589343790338644362165788682039169746372739783614466008922617402601020306960656434546698481953309654917840044586496749554299417413567743710213765094605536750389192857072785462054371556027079079798089384152029457938265059853179532250374777835916861627551894003560076104122606230258875332526149451872045322075791037177488439293953290870765433891031278950242944944368935201971623115297085274488552688708993660142438277792180603927806748527400847892298670454426980929376501329805620293175570886069324153017794483570787924159994083643137092171331822466020158784729640833219930133352091430081123710424361455128062873535232839783780262790210860895569067591452120232803023804717701432154754958268930688702707964335452349403970517598427442224650691439751085759714774774304515021868054534617389620709980999346200600901443937059649355258890972748655171076362047890992622609294451974061746850538554554402231222072246768140528111787167308804438461860361833580193586045584039957557427465935136541865339869917241372250892774098795923760208913787077019236583803945222598642873856833080964060449021440721673320976305014393742832955827279235869420867756288158009533626807504231652434620558809578187677680452233504321745905625566708330213915117851252953402285401289716346671581619919075878789678761027729990956629210812666599385232122911032187272686253676036461618255434709271403021513837745245579264196079616064826569439661010805760848591257428672931806123498349811851980629832722041745434416745405629754526533429339792082723691079305217316285057607706502589948967809318014356108530148726118712021596066778220581189820481649085851992873775177012597593301473324479817100500081372658928450447262303271765287457870213060035211634084753902905797447372109138173641536206940983358905973740044764586814323928619419573242820937902330558534458702880104943395120841109202940991724415455487760948285571395640364542991977641728228613256600563059527014171182555323948947924123789075302919504849723654567330486994103029104150922429174333085838809712940979119637924087308128607362988517542865404607637099651752978176867019009131217995175585168318038964753639534835673317160617518940095498640695271371683628574958877577675771413470081209824249381628891548078855716938877158542561488896831957207280046644617406400331958208717465928983514414457993043863106210160312193224140581353761364442166807288190196276705114268717582103709056224069126502899574953178144601854295651617276031093775951709474647030364528733690237367098685423599062609055361825313134656695483109314447561057967226347757675714626002938845537567078033187667436347149539663873182587401867850826328134206434863545968759255700436082686778160306581607085066844928535531930394533042585449176734414997870284347412471169458128607974971640158475723200636420043105058291484553171638037958656246873991676293708447718475296507112420189298319096910471522925409339266353419574632734001345326093795401070886415258385516166611337234601708948196311216591543144568662294417048930445305112362220416456706737227410084875365702313562351333596271671865391146420463190974917362899490096315739262117639463386838874069210445756930331434686724289693498252779518006742469540629357386839365123615233708558565770478856210012961700862662854470558223395044524889159792652701700706793918453507405871120750119592353365595306746739136496498530837523767813426971531457931840930140060395993574252346517710174975403321259617137268725423403429417567441899609205235440345098229049323391080083988324492701550713110510265825129286786144527555692155357123326045543362962836602560966097918014450485392175880027780613425479796482481975448263401149715300027153197279566076416256260353294076872308923993658174777922278292712375048587026789533689325549657997008820219730377768279025128315237133197053954709719642477217803637334108540463263755927268553871377901715340513563963321546412479923094409177234981769734188353167580075264122264963861510380555015440350633144557728358696778309907486562603600703106782965924631776867457330209924021138319710933668333484855560731665162979232932699852778090815299401038411194152204490177139418687865809158169279282550840501644741514215776417250963891214471891122550062777986756895153015552506136124280478509016704560491186858993730429633047692340437750341715939213250389683819452068309438749318692947662215751251304647154122635533186182973965153308056522365821904095764108692151111948421366454959471795224282688741141715735683316563341798869214414917683939213269500048947282877035944404942107912499668321360748816568797660441398434032719393375803943010737994621475433656964347287264103205481243558628473343841394665078029354544397620118586782534793433377891283333920013876193918307554482404832821085453928090647305045308720973332597956707164143100235549778205785581445335709028140357916075862978358863492905033398578166219960383994416776998059278443049589613506672652519374964476909219681536826962933680571038864102644135389278242346294015727336469624082136381544292115975220609166742739404523071594130167422381415014176309634081400674973687008329593630450792597866123193429337701631095153918257497052007782164253540748298962420240167136625832312776962768658065028440357527469883733510386530474006292593504749297930683777589012862404256188723063761891692334097896966948872490227466312255830022250307527972962747443875902831646183320060130789955615569517482375730799219777993655358017313948989976021092569573066101172072399913066024779971994720935375470778651529892602045843471328210758969575791868382680978655404618372022289965363705575876705074410933001651628108995381362186012312724021828067467502339227721927954832808377774936386924541680899038014839998032989652646254897529233406085732514397439564563640990589553590444068215420291498522693078120724162257766358082807510468166077827387707801116180960065755829890614859745119781269299023944223171066470205594305386718352005939985089544383584808030399433961831391562500370129335238011224503849087361791984374605088117142113317708315165540053982186012001882668984044433183767222469068964468318158234318627327709609323162815471256794082675835086444309837338729940057970494112773334503743239788902731623683439705356414389606532106997339669487442758111830876198357919393015950306040603062234056138489201342468635161140868822773277720065575065052887748017023897856543728465008691483724077807624425874313683028714751040558468804692437083589695566464829547520999510748743442780803327679003868066193947636473691385738362623124684573565186238019670469956489537311090486100171050552704104231633514633464628397289679600575261030621666153967624524950799764390484024781285051227199029807611911278239629627467248035808778795696707162093026039890209068045108309456932088193195508397624384329379744181473315352159226923785570006647620798436555801230604528722365358202771078715327570851030802514244816368211168000281997445781008205907266359668765417557086537369134824226072350448400282882107822518006066208003811703705899418083083907651398333332389932147329850770466070160554914676958231771257523831672672832520109768197867569299765079928929156837070545979246661989308254939245980410162747764699257109055361778551302357135662970407653833263593480181347886765058422415094257270872260711217878529964567452142496414256128815795265474588767896014478963620702760433198092785310735389690697892905216299072692625149364105735834896975947133582680302497324374016605018906471529210133538398406980248268856932610119311819742198346253685450866554853070618315527381816198803259312944927913330639639586278059932308027035965378546081689526635080705410574501473401360495578983037629075970567717527895118004141543828569117916387632171645967373716688368885011587870058239974165129874072168430673429076263280664980755385170208854408062742031138343348748398036938838381371154096556704447956269455806895006801954675731877418969064817090993816478773738152844542519851346510775773113964078224538184906961297164359311700375154121538674622708620053335708687684394231327591043058126471384745822883280168811638365759594394839746014988295177466928961507624198088528938222894578831654199610939889132167153812270379103795540637300919907147190726949258391868417530161330378038483159297251490838632325654072018217195049390086402295016721822457460242836994074170926686622310978907399993136354063380120920318612037871761145685384121766274808241468710104596820092248092795641783299562864776531908975690115872655535216878647808121190561427140205779428086124318795230148598921096302644182679875943470819200457431637025470792170852329939412918255820763984704989091107602062179231355482578399297718883545698440983008474600279831208325604385067883297178986963783612455824022322174625617764744057877854874557010388410961030088755885040037801062584049507433673664508912185440597737597621983823888160606663588254253979204297984411600313361941189066527546165956342541029370995463912456151228985362473174258450008357475478821515077072449499540716221723121102618941532363210083896917847451286429397944151122751422264859597363203629852375660902166848906034999105159798423349937974428593904243391807935237157636494473604702521547636721295758337131299905172796459815557123528898101984816662831906743003546605841373137463160233881418830685525599417733490475954437026399512910529315481666242455619395655198910464294095503373572897285526188038934515294350848850490643583249142960075964812817364490896808856361660331608870902690289246791588115672744968976907524019631292685380667399494913126057060086800763125235514894858493904687135535725134543798597915583018040898209477562887864241757365939977872108050827237441539265670284202632215087931712964473865676414974081214138140049027640696977181859219896558124428132009456858618991119675099897187761601002893485553359786911447037210357590866177830425373940604173115258919749882289541407595562694713604458522318278413123651470516565370811713615501268552488472521563367020826108432871817556116343815805490548972772745260999452986570185889276806884730863147500495169831105101784653436613339571459649731866465240328163074564253785854680035786259536386932468611207354579442074077877475085394776027514977922350223271823461608113688447237020635634749203186225585551562059616672757798352179154020822870194313276722548436550824560262003811529323770195799540952896469424374222258775878070955637939969470231157415849269363767787279359386991248892879330943012979786190556074742724584011007329385119174215856624669824032469880606976174361995558506075737349503465082699356851206445214184093778971733585901740435419397671908355182455850186147214319854353587182329738327459316053168507738225985982850494584980567673901254419157799874586139402202835395223289698802618862163997528063138170562788265207156009731662032277654410109275391109346392746328298868688464747757937450675747732690221809405430647430558003848727912314485994579313186250654651431591235745077535971225000695665997335529878782983028869876624538273365970911626192655381653742300169247075607872902502692911725500542863991845618240921034867616910392433302115977781865462077323834863074668632280776333869715902567779863818669421050220042087615436931565559166601463857562157619645077760960519525592122258091099392262073320780334840263686440740793788537281161068230315506200238315265886007935345500015061957757727740973262898512895268500120767305776280982427777184468762091516062891946633679185870202345943615110314862504145281602697410237379772616220449051792993215179107186511425021801269836245926352004636509525929650724136369781248001220954650199223419301358900352026663801261451248785663221787505359678628161553977640145476396789990502078909760789521106545568315819669601866122378449055154994218182871863695228437341278446583321255110360078903370905147871295571626643692976658690571741257632852764151033132676772805065639080135819424365514757566093946967014608997617266713278204337827567564534350222605583678205924857184414462105309837855920394059483003680910402226491268393118623300440428989598782390092098369362251654362240083449467430866380295977978012761401336188499625670971138106444545281719279756287564228086068260231987403783105667043735326972667587439278449277937295288528985533740095359994167440773123301465703792536884232970903856905848738842590930119813289660283874377590264791806301112818686307862097834733211834086326300694301272346827342014708995851667324275525872801674618372456123312050169657093768006779595175333653986809070821032340019781090815612915997981682934691711849685159241677276052143789155015958768313740570774872909126689722130392286654850604586077580631945919173335357247525956234268668847123087006130230757959992729101966636180728226015162671750566753084798483559376408823150271126952958096754921389793692280861418522636504268534093433982558716492766327556889318295243608258560586071459695357888596987700770183855595716224986429755056449412970476889488434404279673627143592307342313330497355341210485670960504909632060691955090544490822942908263141450070485557886639780117117642404392925963169474672368281924105328566984691945904397502383951765254345121914210110145149931362068572652684141200360594912055072781811629632360098247457355852346932469416107164381417998401829234349399240596685175134373138597146266405343010805002269280194412251012194075142291593782418321286044497094162193467713750467888892219831537399345272597690012326294398990643461464159658162553849461077206042561914822582174379544915316560590507791482614728466484568728851899186464588453752141539615594888373891432956891628079109549922543335049697287787937244307283487103572109385613218340492525800236587862828786689260672872918012809168474798245099344406941541689223010984089033099617143434485328929604456100684988015385153119905899321863601908710404522507071070441472687650273034196465523995877809803140298183976776267611896833610013145031123407988490854155891106167835781812825472989155399038380144577722266495775333504364024028985011681525921783942096182885930777014794874874945042853721565338794672332072805918164482960619004254771660963862649477883630295724480872902901180027835202896693076763845923834824806683206441617360181956232847131752857033738930849367115628441636260406882873724072722683875074441000362133190983059057823879080210023958661095984869670606750984881577516672881621305140594265029173324564253013634424840432329407714120312811824987391407936908343594715121756350321743207775470291733722177448677879662165116462751174512372312882878458718877070840858004762407072612027125286197570417767363963234549602830118164989608945340545917159858428208048284104067343364525906840409579601910647962073425924262983076374770918675095534215887785348262235449754702206917349734932211883873782230179033533559926600039329389119879267789174759527165805207062740848796479875128728964261021968390105097353235574694671174232005455697582580845510789246557800360368635074633904353988369416448250604818338467841091776224229888519900805112245695788330848489414267569584937423615338362081419538483056585725791364038058760570377304785939203520280414254308409708607708368920349222659562783210115171315649663508434436107639496705226004884619840053025247327828721553654508042462488780964133040218219570293690138390859595722506701025312180312925981374301261164559695029337084562597548426508119170391143667870837856849459535586856686809668362214167843812177334578951274857813655543765558022671816185368648921416116594792265308764362555781167667051944470747417068830892912029651391984258218378181852179288097335568268825601041034412340430547104653910630536172930611092635083833337532767743758858729320435583751222062700979556117112250188227243875202067934200837217268606420120346961259400169351329398116391871067541547808774270725313484301957936511246788438757955567113130228063444743535737892913799251054940159567675868174399718322556644269082140196357777337704265818998981198747854754754650651637008570445272304677624898180967576342966056119376819992083014022631499756790944480415884051899202070002758045174210755111735284296392181753852828814030015450723281177893915822278998820674711156403953804540865256808317279832904025444531416641204567030878104768437832628275191107779324800896465669630112047922552922176902450190462723694328080613380684634109635224740682135174973527990845739082548462363751072078009723285417563638867540668962810935259461031053154516582586473839430106436816905484133608261971248819245416200649442564526116117160539397692813834013867338663279561427342102722093118760183084381650345055798874914429966292014118144893912772924393866365110808693875344520871923879747095910360257712170824578535475381424917355971856641745619877898621616954508306047953126487632689760531280746785517771948008285648095099249496900690362224065905375296480293625138336041036994587500946132298157110487559413807969282200392452329939567063484991198623268682033042293315005540445793685204710825829210714160744925770605976599088947064887382961532369663959224145782063081200972043838140279660013862072624832244200971622867244401021844116763268273071096624084269433962783453777038689571177253223248092105217539429024683115172535164532858773562272469621020108544870921254809189396904861506132012990113441140735104676803250355256742064710679147771450803904878031877153160551900246191949966732338782718448278216116460396517686076704395315831367911162668383749196624601887700595630189910677056425972492888080494852074033790857831867823132523895525445893451992473569918452633026563895198704077767293632354677011004977875180576959861307259388917968024309002421626981265115609035617614379190350297492600521364973880531957838548277926570887989860783265041044065261491656952439285316239043056059592234490758473391553221583164296858828986007943455408050395066436862536221110894881374170889135707991258161498506741804043966547963681346661929430530841695873625363688327774952224460839618136377478740680413487969895560751082509911307988521604901903936201572116345767801752709742211374431901390384949288197357580958080894994473243686125041969813016647270231411689100363307673239383986469443992590347195054902051758722341424297240978055562330235143627750484704394552602243348562407628517072449249529203859725097273510234956556156774399645072406519743576098006536331229754732668862974105551644001694242474184898838508485599132577132983543494115075429452844288897379719218937916099925146573074355047012229213118116196784897229240295696176986803492796413841027282811845264544634643386453405303341663940469726429171573021427656174358667288582639681731996116478772820704420037591045473213105639746183091328672042437182286151719123588797590435125745808240434048359100706494949201186367431661549333941931880790434378978331355215967524497976655024829779453071162280300707538610698297572524794250783467280095559322503858251414362138537634027703088737783293621827416978201472524513618966174995481702384143753647634867620450754316142507727129445229699995618277922413563886152474555338674460584163435636684474506264223631079275413399028810997879834697177266838913940584364466164843161657966702103313743976444609574346261889984590556629875424544968741726120206499835530566328288291387409952093722524534613877179891574539648599591695057435195551871918719807309819971217723484397172052258391854921620662138670777874942833908415736355894132197265881104857405529531730868007510354493715722893243931530403819057455109804972041369900727667096596240277707851964800573039126263669701623648097661384833706586842754587913836563072693010468140604536902069863914891688727903721229118285457462232729481201068985712439378568866013319321739751407663745309389736775784187369623030918022605214304207432866102870671309745122350889725058622369456032512479571800322729788931801745761785984461838661507037870252550647940728541501272117304313917888360883895408215394064839174821211734572624126928333067782258940239542055448920685678716458720843267789430408503992882895814032312779185030925786133573938398063989365394990265860818052850088796012882916449335195403407016333208658896210871866076771763750201429461364238518118852117571964136002699894172635715793349862757012122175551664564771371979760968478313072772182589494742828302791096026327521063634383393687563895073728044361402201492964803546314784953377783165105598247131589698466780815024770612509713370936211914475244727286320011124188318336295516563158605875429226648861561120514047288766405622485538596240817074877837212769115872796970110878479084212142749367705859211061822993892027993209732098195213672086514462683527374219654576233385030067933360104464753527851492684893886433507621825601038761453662727075476922202631520378799439237079710385558482850527712079200519163881776554073992653952277712056076708812478922426226313480177492022790642276158863119315606581209785426147192791963428087105774196167259033559408712717326651347465204979580835201220789332193908450189710113919585997466492709277698953059762277982525352833740015752965929731718774362810570734445641928937225756426954523462029941172414349330700267108493802871091154386051458783315890018921998567329820273936119591687053556937975202993067098140489160287115632886238138488913244207310267456173030135516124615631238672335812192025913202895234700572680828202915165118300337587166870355045696875242661072872681428363175395879613174119725463246491887696857500728976912626165244773935455836320652918785941190742398207060793813335113425796483262406390732967214965943247842676850611368618559613625008859834169010830761769776825844816956906668351988055351877202730014940556204636148955067623187135261337210977804070148797325492603933409195289524854150071319971282017447795737543914758429156095438571797195520936100982633840035113749481775527012080235865639171062896645394554563031451029515242107157888304315054323891559352510201664914102973056351338989423662961373468790610956519451007101180659722725113473491118471154685367651985024624322068008287388777432398820553937062418822785618912796711528746353249354508373934205856429442087130612308737671002246736654587213179826453447324672779809737666325985107302935410886230826891041585752939886760180607831169192873496985926478359872232237384631341765079991906799690504465681639012027679438494374734788282613317814121205901757947896888288506960772176304348011634612042826908947708318525403200760645813222409686199965283867816552557307174372605550736791158131018526320846189350583482673009706311010574965150702717822018353130718453380573851010292658459093543409319457691088532691069566199793869867474922521355176878362635698620136870206313843571593869904525414544676872105640844163524886312550401163633803757252270686131868431164515893678257695353847432780997307578652359768487780196769571357711889290312285159072330377608697324948355914511366732558747284552074774235584701459172998047176734401917279553419983744234588772560217965681395762579100679398568012871610856359364916114225812958299798766401205079651587206699236879055512343647767654856447760742011406850479535960989978734946053513540755898107763683111231569114173479990849272768424018888954880477011968353604985317055431320948973758858510440206117523209596939698204646509026606216331476061169112183518060484374840660027703925052659381247952513338146636618158927411844253677734941484254585323136121339980342818363720817274770117456100219673785634315176200746689059671929262231688646310193294093547167443724966563114126857833558346110715278858319319733719845235688669640737283981094304921009644784232389638927501404872914760589854217440254091773629668507244952030492404963022282765982309996313134312173331414421241235142182402647523487607632024021515871092080153179890847420772732219941422709562901728846114324328695592884937320708299860204829507396458378230399618860500553466930083369803075248103469829717259731340456996877281892456759591946100120452052894206470926766262803764437048070726078387168701216717704041854682302090987356273227500312442088785588542965941673932556121421986091121799369397625205458810344679783771177920211023285275068650123843913149692445143239901108377965021177599751896620862974931568380472931680804757034700442905235175084879122726057992576432590500809171525852710687338084586915843141859904166717108680919719212008413037985706127059057293950096830647173800148001885733397363065489212276260256206975096516182743427975633382618387042856794950718057753867404544174300528184995650307957273903030043728233009239256190230594361346841938950245277384942098988582023153943020631738921868163360923970388943457406697875681680529522493550198267344176703986853603964241817535501453745024482766733624320712912574768753981806656624100830639257894630257023062728954629085014353727460943709382650209373455456310459650949224380704127559772429560161771932913753301786735490054783037440492392859077150151699573877889860221945346952640121942411677180429966747191347401535506744893090758551374247239649991633343573015520963279149502975318626656829300847195137962777562391680775891611813937554006650820260968016844956444225260671396191368114123739039055728928572666595060488557647253978136875288267279795428148502646065139722448900448964245992936555416349414174862510951677752351171074649059041653378158028450749750779344107968210297416419541340089927640718231938976626069830382978495531398171859672841991244996221853288831455238905995211332384037254588527686281806886427553646109888559424097046788051547179414632397110524167428395121505162344682769914078610771644355390708007781499409885772646556494223240927848825905449076712574966365873903519372441609152538849215896219202347978939320020782494477971994144851044849594728152343698118262094254186026082975502352044924525698432992993696204025787312940307133715458093355455063310346796051904814597739506000130579325889686786511742682660712880230132253462309233906897266940488405685884411474811394278737034447327504244165673640590566202938957246367031567781846981276530108233938024772099789759601132134113312226828338944858971635580631990689016281186008694557228622862783307605017261557675536300408867789428445747910556651383353279151017788499418974742136697265863998713444966265587300354553721637810265556902217636945268928486908436818838721590084881174734408767735941027859244599656424975658292993602203499908790543989358995414138060103330551749749510951047120036976501709440046525194579339235819258404917840244440531918621768538814302499907229574317303607149595343163548566969856757609642740901141632465712608705831938472787500518083853752918191669631841836621118934282378798502221023226810527842481507182988611024937501920158797149778871521614175076347246125348960799502962068287232264449585349427812866105381982140668028352295085553566081621018106080439292463371511607408275836852163475724022930428153283088184739262005573745314855119678794358962653410586092997733183361652232384414916976308648468675747069034898500299539293905305136748239589548180175052329836222415176316900357451281703634161245541377002854613822773872451979733127449803673780574904664025902633392465240638212016797317763409563558964252928949130044119644591167053378400124006418987822383986504278058805257670492979888102174414528335544901530258865323298251767329367151392307453436800749542624162528701306887105095434132730186639418404770020734471386538537113243753092374927598528666623330206175717995210943131278958470599151157834768057923280111223386448710218136202236972261618159269042272252046501369335876896361099199565903935244684460676963318981926337008866107923495699865042688345005070342755772820907781998246948655280864088595114860202853022367312835890108457896896994333963595424734814007501268452848169887890310894789148272519085939942611818651868222384585254100546269193001955699957413254626538165764014191243488581992166377855043094110648907390309791630456391535657715918370009065018072759044026899755720706843082983631240788242171182789182380183331268759200383564898448831461038500881377426488587612098114138232444926634255868342373145348132808089184671343494921197413637466098910596351140068410053905740073902788855425291433038703783180763313360600348972684124614661786797121038250334912109106448808319563146442339073570533230201481006165075196266312940202737327526493682867678074828455369666112667414561416194599083486249629718301180170154877929392704822410810860488625565900473573482420061581083891398482861832351530570213360857754756047764578169721272961250592265927905499382464673495675235994104888024913873111781956992391761639279359335221814275356631798409450944971263906710356522232026706182037304767208991818386687098454539155192208002826442006686124652770006848899087764080126864572429476637295540975332488619243517452074626817593883185399816009046087691609595383888384171787955342938617755194287698817145163739362746218385240753310523030658962241382105686133315149353549762552849371449133657542031512581959658033443206607890961086128486145674850178314794269321841879428640245081438679576778425788966251752555232923928180764616013482748256499129496157829962312936076931353816409340666157793454391176289728406592707146170028025425768967060721621667001317406674381424427667297703076937649700963045325283152259703443311145587403349021610999406041669751537199662506084532832171730777036295378978011029082396515160589653815168838724348933688340557118150028918686640245895248094315213737715331211595513722367284664262551020106209557896634099975860859881537513565550023780520252015541949018466562982785828869926771695653861031385151945422910418682414880700475523204537214096052870346504984368375972688084483609995727357818229101282190644954044922964568750834200500373517905849270995753314437611239772299852667318526117818368857506295564622406202164170117171973917431816707349379694891996275508581827010339799671271712469912975963855944388050395734058072110942972739577481206321700387364304749894444673800977247325893398241061772844780990165817590430719824176251852767638276106681121789980796789736537307034646852303979160899189063592949471248229719495022252178542314399523848630598473915143868457905143817599063745899042213940747304371026459998240199744683764909410349340463892559832839190904428629981626972067591930070907980468702857612109772355808025691451827237665197025306563257287812330047688812819474280453417058788882753608996272887342089388837417042129992918041179541959428038998462399985820221825358813091817913873096488725853945622215364095615228485128245861364310571037502703020575519296097295730692407870920280957519282410419389462723799604547707874088337741835084393980879501355443609045203921827031085823924486683484110300146954299622855777899031251704099621718832943058121962093859164206459393306549739328305756261670260933034172368562049229618318409620547486076648880686176649410345492169149467538712610568716600751800504005249716050777650066416374013869593688814156504330955528515042081451774872153493058879774932881472476572283851358653354366928040875722455448958648928761415616054281172458920022295531446658607164890000294808123685502053098328845400712154362071655155193994647715797057358946560430612928712823132716498795285906824271823411515279050211737470487460356391426178171715807124791586825561032693627696670456559202464687828055757806161389162728995402794826290764775184104923400907518966619973186342667376672820632177614877828168819606273226669296473942439607388413471652256843840372818710884163948382796404059393111732706254486161382754800605559941053067407064256064540017837168853122077808711887535501735500738914976312592815954499305418247957023833437290602194169135335234223750203322160701629126554649957668337911705950091380519398990865647762017794989518621244808525950635157337491709667097100186111767324944905254291913430744147314960968023888461806047104019016054482506748517626400545963867807008772028915212528914652354787653024169147759331010623208464977780125081299382488007596015535252791081772748981571200798573100110237569711719569106926297682224847314791830147733261290412114308420212724938319190661981507933944605254392317367153243184191708468480817428528871444537857833127607677133118300336088392002513892968300409453471357042114162162443372139113685127446113429913977203571900794480997589834311136666877880103060649479340441638166426466124331419954833565645406652056316731317892986318767271035342004305644446862624727583916158601574559992020516321907789401629185428148343386722325749497822837007438135016451608579794355426367377194204791534958321399336239097418995788163449992327873306067672871564006140524392933848535018451478836420891058078494149667730138677143794618191641496028481196296220916153281243184567860969547877819401765092187213206086669996822596871654057890250898301656857215364246232467799009076728551586062612003215483031080991648984177383547757747132312125838277142183295462362166545234229262957196108049274900231157817213569734624611311901459216966799603833814357858145799250897303411374638376255641958623492579191933402070987339928014693380909852836061169072731815019719819135033376167126269031335768516876382522046449772345409475365272194344102796132574870182900913986463598584388817957654384520232744618856788490758114158299624558139440904571558984848943508365158270096495718803882292025224455873324539306946214893811938605872229085738922221021462269370557612778428672262513622512249531767586330547008661627081779483734881045720214644162668715115030580614302286620447197118151633296992111959815966949841405310181761769968855540210458082086468231465817999461958017623941780807498834072822677749562272677615480856369955558789156148980590915102001931381904034678770377155105637064349887462068417613636313458707658155547412805070617222703894439010482225675003124582388322092732451433446612585674096189463392365672661207484574225110005728750766145680684052162567736778131129560881749867142322062744228611989418888103731515286166727327158237610586474957359096630002350829003135794699577197769964635196985446702482120881803103080954672471220376821815338888020454061643373351255576591667597606446676501928062908175333112862133960061851071309678901345791673633006268026978066669072145604423349938613406557117280483863261430742623859360139719990744852187211915465304435885889274784086639666582642910162209243483926222114337099695631241299188440506118528371841872703386438605819040543826343347826470491200780642097782444091868839776297885381300385300602206584971445785837581035528648449907850319560758619217276808408280694538692315930627463741884869626304508219625520798484412232100384018858374419069784357146414035013880371375772591325888009928122730420121107245115651380535777471238864239415279614685760606564293317951133258547940314546337173301066651443248311523119911205572102189250019357478313667382045619676015740100373577119989571589090697041788879778716261346627123141498258230831435822487526514347880692922133363836173219003211438104470800364352925913355688459558071180068409675019222026131195645932594437287634897293537094733116642729931286895510962264668931836854153764973612000497248545865172546606329175881642837096989172426479477366993114338534073019843299230101388604377294179397693362549144574108726946978539755293952955087522620012601967926921030483655584050491156368814428439393523766210353182401080772428893767242231709356344697648372162761696743546941083780755531486280825067613828675925305696619572703809799084127701408728192356084364836900425418273753351563398023911259526139953508317330744780349971788730179810863760160647956563852558243066941296070944922926532961879365138457170656468360278672897862221832634151746848338959638013351119447884030434651528640927184323103935987493114615467549901614665843658519831829521903883402951389737251164884931016736269178594959592698242710290273802977110517430793593589966313234404582905717657861165956279398051638129176720249657205185286535642321779905385776941276864227247026459259933766955564279778039005704622860640901083618848909302153784978060463681179989154923224287483906525745502866122188721447303477094154142398377982350219584631873930206266408519430082785422115163700687043914456734209855196780440734240041677730048608804334589176127767408139898819976444512028052681614084154006998655095471038889457732855493546474698306026662875047135697068175044783697396769675450655257180046268287590110598792722511669396665158938106260818938811165407304548254812263105376145058533541140102948436675609998271740129585095139034408288733382566098503299032214345179758551740379913136117821246844435299741898261585565884536719243374187578832952389073499841086280345338342290277889935076599213063853493063603563918873177341582190036433058147520221264110627126149509366981449254853674355103872767607981625844255262480178471445375182529249031905963461386399935655901810263167622070000977919325299890265430698743329217964125166833374862424830101330598749464924122669927329896074658072100124068621558849219333829333680574562897786007566415479470959887251954242446517660806601354511899968095774514111314152682900538259218885909186806266404854420599915693392975122637605646855370031608608260117425602241796602022179226739682830528751896622067690262017609133489947367831670095459096274414628023606874458345760334550640817478939788470882895827144202239579510718195355532275679088722642063053082631960307751019833432447370033303623651585214957267721120687960704705432864270897442977580998478862549158307887204674564715314520094555080339199300989399061532175222597302501178051151848796286179312687901040221094656149136104553910170147480214451672919486471104424230222817614527063368012920482969906679938233010736657388239936718291917338783161990329089977100043817749880307295913461531642885150668313813443191517666927738030381748776841661113662771410568642052330906326993655445767035543325139526629836744423629167132663372599137955168556050042929836035853946127876196422329862651188695928475111885115014940199643887392458157307444143809588767996256241156002179951623281768826394081623152736124347308045915671668830628971766296423089603945727885337891847486913984048270070860807886172279574277448122434883617478819071041984586949283435432205123953312311894584387066357264892912444998099854493506387634948969685609548150529703518842043086682841696010515718771157275939753695477843595540163146270106159128884251373266928538685414161047750620569077452657539587908917641977611862070006141558797543635864735378603276531867597240232543526799103752465911112754123964109085352276997286791721035040634931773840296458298589356419215863385075121692334352363208173249912784677157364836182602462566903120008874220083223986162493733324455899312839240784624940292419584338267643781499692366464217677085809958809037990887554987542448034338488372750456559160322952551086533364206572244991955770077898509430439281650825380226972315605683955037252751800620977670782387110418485178437934248029043742579465788773270772679298555084998963121284200949563040080164620111380403347479106309589118186629310249621644205994986366293629091207398048840983879975240248726056246691793814783380678274972756120819387271609144144125995753373674983095358779833930879555791927393725909233877468200206260336393982997317820086619605134598609672146211337250902685168061702866305540058356021115929593760314590896565751259983522889968471068412946906596859317214366687368946484638633746155234792897964164548223415067501940671348035572129572471409877236563868620254569423083381245480324685193323635983250865414655734371275158083265155259069792895602615827397589765539119934262383423346056565225715488337457771148859756350514815249356279156471788952976604454402073757515563540299409521024716290859955843712012188338234623750619126405449021501584510059865070267891010798285297386166809700975569556124804634230054653254851112121157723869533225546849443366053276017856182518176937330652078586026253747826263209587238221063001026595270776264901798009042541293215365952509947181925142956054215213707326992047993471162446231156192619033997679155401084976939211657085930537529475151569746151366415108860915876490697238130952393547378066332129053414980472175619742431105763302331944096303576368861030760918365148543672909771487396648451112478294396056904469309606402433876249527599298044299933309774879863953736826308751623352040263730131212163533016514457565067311238540263848683545748215396732861469176008700349849659929998415817807482189033095428166060606620437448527543001208460558357035209349964788412227659038299506389914548978134672467970338673466018321006290330642412702343761779479655746348294801585872070020906656973556029954389400036244047105695778832440304155469815247259446785045250991269407878542863594965328457866052852368994718090718387125737727841909748205385017554259208044368409825187274083704451658950538948105655168084951292439850214748770423274147963735676918153174891087438811236989388363522661929905636745793708721398297896502733100484117799421557968782164818116347902597587319062687703488706455022830143064224161488109755937142220186655730748383696495899515267724764798673600033742958688716908198075459664332276890791473963185394164056781177634554632626225081858178375056217281557187918564152133457868022377517246606220670467346145168108071615875960666946548479067248457168512560637311907200246744472260679618818887121646560659334054060641169043431295641448590148180269076604905234214882588990202797949689331007251950271483585365101791652941897722761649651554073988032710296965859692560245565123332629933461947021800913673070498811739539615201422270553759851847164175557424317504409593920301076936180160363960580461362541357629639137983642075280399806435339932522814722775993035987386825051674659960854531793083147084756119518167362281750866360049615236087431768943468958219806084483666310237554012764711326112082764932276250969573144021801790155201517736573410293861158216435078324860531140764081895943638537618992543054552871311134908787677214088143390487240034271426281438620589408782511956593392500953598992857205287056166709042959590985310379661861407776690821742324125721121384306618444547853649262417258352838684150010902998254147393652783845743267308537711141668257054624936654280557200506893892580102417385835423886115756737028475623612739975539358104073189517881759514471016286338496105074776442954837551749974704283315015376673770455264050573885249737314784664999787864285351877222059992281895030158041548694449877065468149660669610014466798143644196317881564437370635269389718368117742233209727512282357074068868491884968482887220998262675603111263066221475967616646410487176699572024851840423293961350884721024576669929228192969119971342790918983879518162263635020299546637034833854714322206759510140622620108699856317672557168727392097198129029660311902814596361468663322181845740942877672672922891104134926297150315864697459416177121289080771545600127023221803624286019921523070176389771211816901621513411968089529433854110180514382333879983903434053603039349003847354727394908465578535953782469379983567040473708391911007137532242589885304230635140309944602827573715618422698232471519289641782248042786453871465788494188354453186583423178729062236648094563360917917819879102450838966606229350740093576024130713635807271182363280870539262100771224900175217801368455302794978862898519231532879414076801312260447513652199360405310315613354731976467061325174229081216915119771421482762773957558291999947423781437096295864660238897605984008560974748000162531717482981814118214746039968218750059558944392516264979924667674222937510102812329628482819238997066981846748725987947213056471616736079147304005201277777912441137219886588767618863479983439007899030483159603093837958915436282335752876391099742325358841975312265991267652407240432983805287639936703811235879188441412093803560721029597811312032975575290495195466957426524544244833887397260192201761999186594489559903136765924729199050165065553046380462554942191059215159359623435947654111517202397847780762069161585037888527712426881836935691071295575537502416365774344319438333766192059955575097106814361833047100127053720565375516907304817368049555981840563402605420237576713415044948220756183266392935782285754755452234684497953496114803555756328748313606595200213373791069351127109778531491838904289802389384832096960315047065570161465659480716236524550022010375325846429431861535250865204732789044153537611528067838216535938796657727381129306292883883118851825856721079024514467743212923257594296522313134103164031473773261223860415155278939392130632499040293777060457360709916578154785932473915163343730414266967800722451509455067320914070206889924116169128898959251079219990842297252609019237653295990610247473253626308682268628111740082186869749424737501359362439639663171493108262028297203031421141065754764142560448286345331137086724779957345341244751104068825551894577221138200654635935360806442676684224030640448966279558354500505857409608314599113868612037590044381011657350713311977362183065903023848763233346559897340085803852899280521982994407211115132338544838155739127278062163767884652020224945988947244129790943854167305893707299246391964278246069031845835606060248454680190200042320599516699988379559571176710832913441422942106101377157600229111794036726461863207883141209795917606289641515645339233160380531779846409411229880261119959779991120560000072515989068099458531594635668834117986911300682224836087912771760573787673665191185664878173482064724146540177567662933564866296478904054582955088104365015226645588839066543186583213133520746817061995286597551023733774254459237009166597219793322995015138275862719316971818868456653032786985934115915614743368509999493848795743422943776809129233697433421781072019712710252065808953749031889644349527466009591561558129376887859061273408303184830027642433797512288756466320590895262140333985269116134508170729474712559502947800551587072804819234324255269310927815319650369166647750172671478810012164686893890562482403894670684119813513136971356218639318497296826179079313124288555862878832108698165393245334708833728408452476109691865050241929037862232404810171996884375557974476908991557205714638720892186927371041063366762339369772620842540077157947632782275653690860243251075753672284033528437629754167470581917956587747880405345871354246622156817190579328120719502085674690235970498487470428134151485837509701782685761064594392616887860407699389961698707055695259342337801302431430999058733280643838334153154341237775105532674116431286207439248573184847021742677490104654367357909600559190292625942991370628252204194097479275002556655152044191267066036435617253161664578042955586990705265084073230459404765750659602847096389524079309717319824344011238524007205927491497982246982736701757137422914895385852644324874106886846653054500624295315348305193909957541546858837957347439697818260602461111880212215771190242321107471828325865390209591246793959587706726514768216842239518820156433503121854466157488773458445602301174876003237463957228085804473018536057379985539739354735249506356236431089880871799744541864768714899757178233814994352531081227504019955660367829505161259682069444845404672241993862887003126224294515170784961605421129195399676602196753776023305166347965009606011815081575132027897805214879205438922743681785823071979589556645345494265015524994275388891740576463202253939571029912016527505403851656219705141550459149944435184265417684077412796809581512422874585338279918294666949401420997942518824686044167639013349421069344415583391505977243965990784159009926395741917252575734023140004552989175757747066184684856446097518301445328769484788948794115971112441948723429985163224656437646755942168561048021768153988095616103777178958325874214351558359173857791210390599611253063822218443452406569782769757266004866374310168800970233645548029229275160130499968163799017332973777793051143618413102650115697746552762164338550293442141307914653337675015046296138875753486336946368516724946416553813349449509499495278606035158174570855024973780997657917692856411174312259412719171933540531828235490942600626922998069981810101754108376709388221241894716803187380120964084862019031624350233476663624638924546492733845804007558685288449380276757599551946022035108163878395844579780070347958975298031424308702867902505472766868057590721411373373859621290511056122619853569797500825416488584304596321214438786321182646878863453988529978558362934550501662312949499890351336257288362932417287917754597190790378658429945490925809740319066579572837050304448439166577414330019801809581762492942071095531423262817389146464170649673049003910835143502578482674778655810373360847903160566180000191947870039015009813756532781653121500327762888649885582475106199071395977640399927047385367899396772745574731184823400858919755845365191416046436053659742354368646585838231181381641196180192909756243048591718820873297537328015435799568461415183247135889136862768710011643522597253264674785102315382677696672646255637088115001494622028298015477459831140336807090049513738286222007039321751719009162538162875495540750247553682285744367037559698485743930634996830944587756395697544738133130248191310075140663171060215459582737305065032052489973136077409775386400345828831019704634187171148151784820415710145230062921115965160767995738449004038465257058121330042043980910794313793179922421362615100579701847658265506244368521003650581936554736236562169945513467493558194683745795620901241195292674015109502266106881265149264298111525823677024163304340111659867212367275968836052982295879965076082599527808758051261343033102726873313441456117692968215271124346422150144940467828408421140857984355752901230025943645930254210975206378386645493742763360793944833988013040412164389216365768940912387957553870468213432318152473836707794527585371047748567245183648967297833368367067164714140085688430472891733373965485920782359961703188125483414547794696695334110752340290536150042374972380985987290505057537676388133403795375277896676972159373174162773889951114149077366168150242971688396852643992139294811860433302781136502588861494807706499517651151933124761245249450838767211748198908016699836483160822599140424015224547366421785549360669323568045723056795383416398023831083478930871994941235439118297038615236136060843168846001144921967521481673675768357810601714591686379716747411101753631834612679414878926567769336357091382650396158908636509397039131068485123443756027821142003702841029240283693806124490828110409248698405819885085234496043238205912116977337861643083108616886640670149706398520895152096408494678593652870734835029393108993883978174723769146666615691582807904219702888867991288107363591520078082239431930056335354034532174543127895913427824593347799814231820597260221199901455493606067370514402453079498378351822486544960505254720922622835055392250203585473856783232582891316658732476766182964637374020382809482652508075505049608143891323377495159101814694426352209978509638530653126720164974817531508005561898756922623262729756977617831322742199404698210662449602410720146358887480245915986597152938751170100219099302684547000340820653049075731012963194736805767847615307148506325006474105079886263698676430960310115152346175836766891538602144487960962881002084225662844620329984042620834294784844140430797596982326895974431535059614521344617537109688650560070034632857637282332912686251278503175573926883294392881836640359329228903479298036191089738166990800748522995052852751062047040158642817075506145303612999011274131163697938477889159914902873842059115986123323195042614869104081297338117360210785774937487992980615234840120175361708807133339566679460797253524637774918573874222125921297781858916619855949101489483780383762184050807616690595239884838624752157462117486426629220793694279504743199952701877896393740834493678957584090176279668294513107943382155548770102478013708474095592280253489773667534107922599451060498863485641191369403636657926640778191602707215567843493063572732631141055778348733831241244805698732413228575579202046010995157207078955507211322076073683941804898605631480408535350845264425866876023243237332454865709655068956521345929043570958038743396485963863187496558340184202886968903195860757987836312866930540366857838939586044134216826019576137959613927950751057928183404205763844658838826135065151107254261212650017487110707407380819631156092382774532277847246536662918802785473195643185119338993960711541396192526660631782488611663260963239456654202419774546279303208170473476697306007499381841591141440983645240065850115140902069389137006175347074476522548454466457399288568374384658257431156470815909396713134284282613034801036534392139666780959414723927838619065561810109665778493979772578989270331802969162032983845271573331941160239089417611694759243248706462070571006163373291873830937533270277322283912053871482011147044182309694011686675725828510577162694519477925637180755026455012032384067277946451183787049870592501838328658389540697886086455149506201081794923647812092497184269637654748957746196400342845285206081426610307454923478940259488387994318570744071916327851176859957571990549363861314071366371149979191673254709624427625010072953469818964489411468831169725372380508830197725272021170950885871793298121017092309042013104854124829868408097659976692556194661651307054351556379765390311213333101303290606145158249927811292168995418317263404462253313435028744038732031047771299968472214574892398544459795450227618698135763272142207039314335713492859445709441874785223946475726489612134817600544071728292232995588682676322167466102577209207396789584376698532785122170768463313591814743760274953914100572623787495485949886075705778483701447402828641160458051398439426986754666798603212656965803163529721061061245782246912106665436581691969768465942824561219501256954172541578633891253110353148177098866330327842303077012840194870518376831153555697857469949016018697599904689385528071739592010879691799085829762785782001714270876696127827300129621623365389340253043488353203842732380990295217736847725376879597104174501425634355784612064443710678556803174446845489931917168792177650038462693661110870787961890328521982285804766610896190424729265769293003004255160060241958547920576113729375495436674318804893552470846931408938004841681647036278462723917393193651674184048080717225426460843111903633526126032492008752717383746477603366694564006085802410404051224920320884035746065741455360560492898547620382036794735101625129865683540459349099405593510248142496286145139529846338562706933887642430429109290833525420543218507480488194122182626352516483101003158223356216872703132995841780779837247222822684039315975786646588340246230195621820631506279288341944120781259154145274883467733681296602033428963740549796024820971674792952980560720872982761222849198847986161522014940419093489402478812160902825105214008795202492156642985978523451891423215783023586480241593697549169308111499342634551572503250772078926914376200508738627061510615845293154868600275090197244037171705156863584631573215067852874995236607992253176544295878993971835073340906979195987712479069298998785497375213762021245651298307606291919095276320079059503266731756729504574373644434576027808503884072853154221295040839622032448411807659453427667038627075751959728070091115618760390842784305447084112654213987935773804235730753516509320807913183529672342668669265287547578632696130024514865853249655311987822941793283057157096412448599027540472569736824584268460936196748158671643960768355010417911682457516636810204664176858227032450529778768717683641667624004478976629633326900544542654259052336436634473690732475325000822208300796999864769353025049618946511252066127716292311917558753832785013896520729462396325900117464514879144057730154389789013755558832282061891125111235808998501853805183608374461065090191006620458594373801169555208816840996210514236650563733839112147063726189472225077040633495254663518106123110198310503876018955144440806623579231980728275372745592862987102941466467204236304288073235601276913438027254765641437986920435165286751702622338924425811449288100291071441771128409489982585858156256143199645017012182190938628990545125411896824274342935659736690632382289717679983477778590900783344050556632645313295285337218330730696247127106682071523209075945770973987532827621145941489585523545347735032072771292383716827363204256224887556993735417045700391540155945159024391128619360623018688202634650469448167723856863886804198889608013606294803422617615217391121504847776923173472486755947530573345997352217770162011837726548206783567190255570350617863886092719702631369166430721598809281368264389922301424074431246082824763551793973799853649453826042720934921237108778549437578955651965117432991807025242237303343632133488969206450238279088979857413095192851878125716611790369777441465564884956778156964350947599689254020874440981101918263100872606727792894287681890600230398037762942519785401428207918911846791304258760337451745457052345706460319462584857689729231263757306876362257377564110860652730176935185210512457683272132945945538178500515252209054491852648459399254014391018063005955163644805355113757093855405673914248729416317314140259461154088502841958075388388771395610275886193092144936057013590521321939306363587398730874770839576732507589173713610881628375578298131947926973863816528839486891089998559652242627576463321158446979607842839346997422219842496951745389526033888465180662730992335756487638856538734224266751900922950557576014398655585117655225879153667724663882810753939663433628613113926949178819768938585702117115069770045542730897239110036339184165138868612556918181621392286636277089031780158136108295954594193709229366372079545686350959914450454424972368083045787424621508931403428656539564120565394846299847257558912241313265175409110339073510055879695845256099118823118784301303393607388030060684489582087613681746591542892291969567961027489240311453996335204903030233508983979632838651177827877569732571941310971874411375754352141506700692251707638145447908123678755339065167131921850164942215487042209981054638883193797514383138332797418674935031953500195661177284323259060198005477356916786850670948020700619652037728621822030746028660685738889050663460786576517036273576782826311566269855102008439164598763583340007348652738808605696905173009364798068610783276525731941631339467286829639255318021112535317209119168169172233650161235831505448553156359651383187152333913879730102711950987847227817447160735795895576118545705429214472200643276274902784767495458334139232606277428405918512864032112468031278523436378727759391154727025324987255903675404017157901150803442375999335550088345868232623776275615238142766343711524635603918245515873617396735955255582316694870874382155322970842932741302449029076727884094754466645309857722876441209527407654172027901505651879790078088008110855611456332743410710722861814608059979109511307895554570995118063136749421347371107982038833898871245272337759623821113396331462149857955169773406824723221484069530667449323618972713070679357281447777430440197831572691231942582164262654259716821500250895980920844231665814872480865396005818480139552795672917457572770863487634749820333874036863822199397564587047487304125518353261373273801724743043102954504210444048493110278721529144448484003082518654216885941828372116731414573649056385446594230255524092388923166758426932217230995164913513597968991842207401452810744750156418093719320464094031567705519897232298737025689236773208108893221200311165103692666131093075222421739746589691186548950448897750360572832098793975423198191849618014701904797582238029758759400743150643944383459276942040617004554157609316848752733418309729244867324457186137632619748744525159710475758690046517593272651189136514854000142854077262007886539722279027827456094782088966641370821890514641764263415502266378407176976234445726282051170105736200978732009248145731665728914842449775532742463550114675330085174310961437463264289571371914902653558283176430678195279160700341680510137640757731750746117421555095160051617216599920733227917107820163127480135399890193719388360599549934752492533358566399413207055340918043225941097329708817569905996719030281629477123876264210927155883330219175804918644987945770224533132520332079832785759576048842189515184025782140004162628100531813893625313628291488710911798062967825150630397972340627792516489072443396821528242692579564083188044845484967922596888399544553623137865678428864311998326736386477121935348344194704597052531338921136506455296132723002336623328607242639321363231622896233545328555709000856305689796484515186279718172229566128555365064105404022876369071275349161699756939844433964995682338021974964073980032020391839898056774725367691730104756571287421470985656062452871133091659359125868556509916783679472120968781247156094561623033565559799540589933511570384855533619060673514869905742358013301521359416455532408931644476592014531743738469059694556738910474198354848923972973675658195926195944965585553439853483716114213018029344072413525515768676649189601354505163269915110517670956839392463583524802151416283458465254991690902757015908751218907061327874710688559051380951441438012168259182354670269381462835200036216304859714885353246616319658291745044793373592659828240551253382857908105073541338821900460867205573015579824444359031247194341685427770093198656110947680975090988318267729981658925507295238473558065801899352119786358167519095512725209767091996767111968218798381182096189888584582263324498300382774202267167083485347223360985951787381754537205569493612651344298194715210690686347779290731637902711114787978804566789976444801192117751889055355283685768190940781222012234682343457182664310799949141900610144732934043688637747751042883381190625144101798746591291545576271629321479996307125655295248515481719326815053080910101934056679337514196648729529911032128308418422853169881484806650511724180963589114762453989074334304901617309889527769892099175897920591110774403318241307411912647608462246192496629349173060782586929109991297677867256447119189920568861960466111069814881408160020317735535711581177720031531700494649925999992766634350937267303151421539390196616165837195888859314265137935102510151180759517857302295555113610770262058010608559947290663200700201264406908246620840276268171819645382681098194258377474673122677154302327806248484143523836739435270208064318171927622553881432905522102432674751260651748857098475839807838096285596522741140896200689352455591665544968649782892895961277076756010237777796272485703645692066336089568819144527098685781936106680179767217289245145484494184736945665302963377279480849365401894262932537456859965297429182121580863663649137980224757124445933060205088687603517591251615087897348791845184944426789101002101087308003189044597303084584482166926107633360243046355968432766330912572447251779644514655102711232603771927437519396351751975417804891289395291802927258259434539374494672794065066889840969898005696575870827698156456509293839458405728922833433084629905082803704395913118695068199700727111545703683341042770149930700588473104968440639154187550733162304360520122216412580006713562236633903626517002986096102825500767097211503890502075853390034981977570705349981003525945100848572184081135128595104858827401978606752886724454677276187986875453191693587473492289739500743617471989434063087249087809022240695036266836668830724864578183569032089375703819650194684506446830084898752578440538416370634076695278336514637061729150600431096479895404801634691289259032454456303023436250759864167885565167675465803805062981209114018489644635364132966230727913585885062469137501506168702624574032741173201346132071019876812154880263753259193868544899076431691140015851807854769027740283060595063595003669348800589483051416754926544742569310562646064222110157359306133026735288330451706814751547714582194465611331941681389053589937367019224953335709334574642056694158765012929339293839594478019605767211989043206175175421411876382009299484329326940889417479241949278428744919685711800722127958117299072795950241737843149043275627414300800020135433298763142891348876466824569501914132440987162984998016570054776878046694362346517015255799090182024837863223133894326028413141061578951797506998996158209125611910782254245221649014051056350776116300997633222216849848657329341400614142698667068092724935335439976069146371393947214056319577384875139343804784233103220588503274582246666951381040789917913933678669917766958968236673737724165515369555155990824257612490137542939890246014821357735550108278490461229708438836685909813037666419286199393717884336808448081164004988732144264312188975285182289754312842108928430289919958912656459193566721452586739526594288290821150762705825509738163984365000000065390775061588789084843831203429240554407458059575640649785312156930903509699237104846776674257170903455157882188329836662266921048877964394872330852782576161277425404368301779294463283307071680456049543359238258012659617131100508390794486202507311987749480155546497047849237131281122016396916806408778471636130561504481101037795377736295943737460862850450119068631888235746148673089526014445308231257851636161535590139733427336574858678065875497226977497482618593909612116721942364486270626997068193880499219433387134454375930851316559990064773511273445361997087573547733671719656875818432284282392512296608793257830596083219501016940304609496016316612485168013531261561071387827095496846619394526279228661686124480975745587444210522496800513460559538284191625948967187670831362296307641280722006963497576111181480927295157210344141685665191169612025185121392049763839352384514682379709205957393105398168644249313511905609883264510718981442472315605955158067633232697152629920029113654624550214904099400053525107332992488355032531024451162370255468781819286854812264598749496051170567960617730127521259582522031481849118263574179001428313792356351069095833252165436117944804493721225402737386403821000979152264846529302921825656552605896410557391939115569405083152709392180984580782980234816687999568860553536504770549205619773608028861135882968919237220593192895040465851367612834367249600061955558524543520350886811672519877917842059654983645202518533567129310333392011412114327096017300207198994868769681828786996602755444517586503021740337437969003989141221058085720112512904362296079774025866385210294510544962560023296403883681392112745341007500281928836873648806737232543431827030252096526617494043810733387306850828015672197537543764047819312204472551903239392764791003201298814163490644263638238114488058709135326018443013659576124815187221718020158457891523780927481473883922047755394061882086775606341329631078374742395805846218303880030255728817787081130564332401092217862941720975043874740856945205291273766703465653825531762511338938305602330556210889312273270088546834384682626665812892395381128343333680602741881021856543049978761119461276444908774242755677536732394706895536635535803094615368892688439009539213333854107293524380573417883107004107013830141754336624721475472833638443357581197515211231551067097630582790325287220169478353808275345321018134417614669718444456368523217565850559788753831168932401817288548431868717681222757402706332583245937611948876899828940959739835445567698053427027545235680447926052358471287606837247098781263396510285232293845356023447548594878393703987543742729979308099226474641536347272397907584287035754127503316344307807519291335298225630848316045545708478043815194913011935884118157875305878345630134397628244312385482696772841696275383781389255991796570981385104865005998046584307260779401833269071523731472717962928863904290396260668977444664020982939848050948738777185893021539096424295799404791637905030065933518572115132785662117622981604866428356335520917093254205452527234375256167900055923673258137155872524647258909764835239554527391507337309097034567752243238626489205720089546225640554818457550439466350730620557624064808766035279702109916933321737733828839941165194904955054384838854782235633423835820821266612034075856230563858556056550805657852206991943693123619987378190084622501679601352018351475936823297663319098439964000817417817667332434203743128119492461435617128374979854339364930504158824859549164270777428070781881009539704843235567163468949758500761772245892412909997736091778240248775067136573851396506282101991373894191447459715513709945448313983461879876147996116976772007553179759650946357173558040879196043940159253781316265506148986165180248393956813848490934435213665256792713333701918238608340052303154561775245422231784829747736479338996359537629205087302098440793116526872710927864160786717226408987412819057652535692932934430997861041302343318107306663798189696788543750866122203688300580946410109097929920252870957325183630584818149400945111711955912336245159842934013296739668103051670754227662865049523240715484238840278618272479702403769140415386640230669531240854421914429494929101784326620006073011135472316048834336843456243214816015150716974509230041800919164647449144915937072726625756740677147496330003575347554881116541218917884087994073298945187937083472764006597696173600539697288723087694326588829582899314223297336561981623629501414276585330379525049483500633768049130519378832008159653784953758956661821260497417612646013788846063959544782101571698588212237808168129290508533367976983523353312960678209460937821796421147921591854219709643297010686373388812601718213651649636767909935561901763615505674512943750034019643555310618192560979608416266286948573069630527420141578689246710662634645647256592339916709972669888592526486055265074795790964939518922174368940461398165226986325646923196150736964268943405242040033270843854684285469333610748143254308839523355898083234422797035932497591589042406494002757910544610158568528442286024445722136176060564816070242095817811901098327155606206534633035340242687434672807144735519579914290258073464088423962996575235721751220647652083972146192762295315436968972321396267618904740908197130675661846567588889703074549228209848395047250714512291463339581189650912494731507481856624627127554471342554697234612863584028017193306928383123708729168188313894248357655770942713300491337491399413996693825023145147476748994604403399491376078980850463913723411944278323152909652944123610350576697574724623181661201084594434172389299808477385324854653384393395488707437170539077457152655363566923656725276881532207540787837017318510990487381121413190450159126816071562693428788138253367210203414504191866073927103316621556047258053585573237810582362801585763554381075368853419394076246720546636342892382756823380119041885491790847160049000952700475271601516574088548772649647767965487106577129554040803966088359536977653549721207556308426437569709554836618641187107753266723590670356857735553567481873882544324735720597164197874702701483517380209164357439308897461277532042321284946574178155810763480575640705487869202439881124668869515588417235769033874140264690498944756507074515635283013909129387515831346131893399485392883673655944680972368230375020545089959780797224486605002112330806260775986604755832206252065451470449785928731184655460766881016516873820193054120290066630821576723000377025173060680279476138690220056047390974368702098835523944556213238982398525821376795811489748085764875011756886243529264943692388028549323159166475686828596983295568843091542423060710310156459941968230955704401888409711737432952924206621531845236278935661112669103387180127392457886634317146556015556148044286075728153043205422090676239279345926117165551790834101937734273729228597876525199735228599391888746416490029506800961574915659108700225715530735211738412894463642724818241696371628995048465284348722320385549174034542761426512644075835408343930643360516548472420697888198859371024776544157828623313389637048529985043623568165524962103513729920398995852424028347763288837052480889290835949240693013889152805913915879806765981229131789354511521548584268658557568005702885428680494977767688934880343829598273098524071320537024341434212393047473946181671629791223093891464800690961377984976528365446868219690498473135699404965810899884430194886282466411720255292475888900148357812520130674104758457547949465629926858303202911004006681746412701262081123475468501375128611577465596859766306634833227070465013012992683575049837790023871595988300873057438815668508802725911619684955406326661036202116792045406327568455271864778398573187566566313386132132372130697634256674396074807247783611007839604795284928562244443327987410187428108482403186420569090770274108772749241443766617183510692908014185771029980932951665576148725189911671221012084155978030953456972299461874236818596135361921312837402498278498993368892538098008877600511226325677143062536107339551040337955700602079975658536482260886628070419009328534268358295980165742134027429807883064920987670886850044845452043193824028202812209065426087341279426985002519929333817253746832078710247397846633487008562371282840313858617461280740829205440774451068622534714327798190326731072695043638605212124469363813341517050459212981487191580590648257756886874724932949746314423868683564710415119346159264841200695422106360220949687987606392695749937248662647524224915062970875728871253139453142456352930154129680979738858437555828709373053731576222880085461494415155394313761538801772935445663162824000577150176993262583190765056053279508787391410252945051694450130307587965727749628877376643687108677441292921101597660646003725927146038772954052431268879425723596307208298236651668502153513548252456658730527935183284497537638260140432087181798007182326824608903043215292748752586601386886441266886352492426739899897008349960389078670453110975145355487319994289707123761111307996308210121183809367379285900784606812439422249296944293769730581546730786315791843797623703699386846205199240594746442834893672053462188542962674861173832560762988690446135378833493275812944380704625793549854502448803867160960911946138417746008709739221427478819228052035462073466363804637788600526758623423249914267870757533919015375362996119756585720226930311685456065078541823688386123131873534462210559853718128951500682582232709570942950779914807840345570436422256474509993161528148440823105113574118286466205213200459004472059627126544547464910576849965433259637887608763141671099573152204046560556521368733405207840142968390370850499550470405331865027219766478398926556826123585085673515155761387064795282733095160324321407404779584046254696539109845693905852042306236723358045531631521463479327545355847334878342496645714464757375742961329993646178994895553852813464812541457965902213019956220795006190028339108311007430508644548859695159465922409713621467747769265002575232655763660354591358536195032065036960302849502143871316152544470830686557453459550751759189969753793852385092966382781628531958770778850616516908006602642471438063340160695296254480433317192728493029475688659885598143480319262619233328405931935713937833682569293287226133555912723800973251503967988783462142208893717277874750104063835101193992522969455442868641960065749755809661398471594621047560127144357922678944575301291506539266418073987334052854032649153748320163348559328767766718664880934108418314006606466744298343306412938364349326641976562681139772131993637086759437193934001407410197212447624814421031118570141891451054528541826618440346357865698455888205053240865732928955669434233887540064856791867994018391412065313313479702906112773061907789844542725807380503026183470681043138710797227158198247877589188248001543850043889278371408699937444467285415709089413274013599605851764857067309770182144205309104462965803995622711960630228574249056073647202655692421810420678010537923555836219860040863872687083298060907092186244698073789751819729259551517320544435821557530539464534091639713249253134327930038764887294813255225405619537979468488089825380115817677054203506252412795179617468710182893542077562908952084009689486222723445482331817637313385757730326994713183673691930069819331535369960237747026168616658620598901463065391362952192018697192197148616624049017502842753098068830721216651508472295652550179195400098876874648638352778835778639471236099201800864309303012259468786939735020340865356974596127853975442939599998239648525731669657715067774799778644183378818905345245853250227571554475335294145559739377288580035729677401595103941831893409866700201316547150202659475482207904264656639191698059978343091061312222728518378277452629343917671329880954800119480572841722663062055267362279716246763220376692058696321233455991819348631924870693654531593863873112668074460560723566259277761663830162102028222798254534664848303411485685922924209990420269520564871397293783052900844875157403466891865282646074328455958367648294712401915301513598476783210859558020581915495977381415726988947350929167345805545315044837105924854102160634827766044071775788377652543459172248520592656791054846342114550948555546203534428337172402932521380131681613500554589272760686845358175439605996081574656623537968695985447459648159937688140047666651835208891687545019342689363137160884529523682379047074291218192594248502843594586897750733940724204292664355274876068919222277210385138275557123655022106888125161220023611329973342872439038093270555736667798493627567988457238038782508863479971189944588755654642353260610530861651924199076244423054040729285123892264596343226695948920942999181597082530388910950186689310471192502261058393018463256846997686258790638229396324554534532877354157182281072296277830697076350537409013410036042452060516329560155725735046840707283205039638296862576681802540549283244002943243706384375761865884297430401866910183618186422892065563160536141767582117635290978477708700887493510335347667965551358681191282910624251522718335995929939349960665886784836585950502921202626946551699445085847679183852369486009035168123261515061230375388075971715023741280011412380447443772407416871290496432668343234071387062749407674873970648516240014809034947180626160180188540371623615916561682897086884721016195960779620709878257583969888321632679533232913313376837874215935131208372680884902123537885761968831459096656055346443566838477422242938597839065978400665885104138518529065822560356582785845228380257264014440780242792877094778588516027072909125411029990208260222663535948675368192318045955713044981524939091660367624415707807699381025315137262895840770451970499158154894373628920997509073256733352783988236186447182294821960929970080375035959807633927558840239732613204021173598247720005014320012449680313114601724807616186331728381389133215184915410120431978289770387391142790114916767400582650601140958709000992307478800651478723631960171902871570615329885720578642555500581474711526336743680712076187069400948515273875516898563379178004239551026407632061666977394128552953531717618986941499920431352110456820733491227785963183255768813698987661171091958955192154827762656432911580324037507550916694789650132609445298203858541469855427998866953455689267966453447611639898819746849477811032655202727970321469680519067208787046569717526666635645169668283404445194914035861752576517937127527579603180512821049432988547150548604846406716774413331241484202363327256100659559177065833958306668582010193032127156318302924920406554992559601006346806841107970645428563856918424620189272530430433077343326836974004824423820234043090577861831948021426674933874871480435040081804431690100756614712505863636650498411740691548178002953630444576398659492026407715232170295717912844345189739920398050752001181875802089732264754026591400393606417497994519954216277917109023338528280196194053927240707235538332201559475902079018845817540197226686125919778197184933705017987982398189269406661615618738117232588810096086776264767825004344220449872404819474271230632160485846726187411512731210513021006772076471860583899170476885492544479474119572844926825685771584486588466682839718114414319828084603953965305548913130509525089571474075811296773054306878719403904300944495309067628271435787044048014887258747802835896703338954088806424837955729268021731474954176688350251457233107426917057443786036236790119244225126586715132781295518170360549350346363424864621336103616017670696680340297841597730428128949586474436441703723899081186834431436533138501317110148525064957494771320817213271594296781081245444886873288255004559427136461745193692751598036111645087219281726434248444560030872717965015201188269362918915824272544978847476496448019178240275696406507753376004270017413023429787377792001071665939715463243575497573665174307255984945618347166885839087314903631937305985193980109796849241704128414767873792525751266004682182463828507749948173670625982622338992812602314370375915917812636372648008757890658019987214138243751682497249197990221337414491446495707232046706095739515934794837214363725297171575390201668186401444623181213240565095840603546632141488484506924869055563684985458217455235727419010219534891290890963680330944313744026288019433161727614801394074235048336288160895979579147740312376009375733306480659042342370554325356540393329599854692664994162646257754336452402673285271328343988092619855478531232986570964356298704085640302690889487572626816193975672104751220800294509075253349256731965320099415985907323277021839229078631559812142142387330203298542191848071672335498435629276006268133917240965949581500789961128706325583172600093071284025632385188095917304443792293351575232966690863277661859256719137901366644560361662224688525657848084721223742437743437590389827438144194863084486128414595540935018914636470405512299191100311857191394281553000018511821372524749502006419897782047310068144294813284342904362110782706831267902913688184158140399670572890393569338427575314266735265837813953836624127702681542028044937138049139183411591698422787837894905926688226497780706617452300901425784994981542819079867492668485429479634542421974885136779886745560689305457813135565234137300849351981386477916763956187459637016602798927008868241104958683949450492965213918118059009398451794719761579305927942397530989950918025454090908697883969108887058193588125614186364195074332928435344628701965691414763246802182407776994557809824290918664716609292789998047882059141161531586422876987510175849905766599387689766440811248942246975465861203073682627578269645191314448800403996553276338371319042188052718795720275274959045819501482569711807279932826973298660952536021376965130682700479308697919055074319478998791655265701773309109244154501015814275213596715527279803258697172924715910073740153985948237412200981970057824268926647753804185152349193253587309618573420914218918153278836044887358319743946901512607114354588649965047846186375152021239289630497166269911394040309284935181578722249504097158851516058622349880101175608372982027554694376080879119386246266801165762107325983351239577699978717057410123070083343322347771392293472852882507386294642558217377453242218327534567926865290349180150422171609397135018963806240175217709036671222321722997191569529469164319595771909124900830202450138253279611376512779494165297834329996937820137401606300720742767938959804529287657180679070561988186593704474765053663554667302853718422860448889069085114280119807834979242992030894191539184050523589733835006921258730806627327986579134091260437823866916974811213483291008846716224058424578098212978763565347552651461079695953098962973895662456738373604324746600192382862088095478462772483266995870342628271428022650786374703940591038207033036050840698765240599870486446592712460300788922645081345181712987540941544920327761252487707138687672685772922827571486143902311657836816592085278336379417163605141434217981861642098814495178949549566053555855423568676064525788196196466279080580872387429558679464405412623290863374756722861712486626331067604274716205438624869001113569885262457610582652036092258832377915668464696452705388608602636021767356057598969230927491503005001785036592167585710425952306221867698742750763341499161760319088858614299105730925734993744692016331246227972803679944926918293078554276535873215839056795387272993283423661931187676133760761081142216928888092283855436481222454607025892673568377533260174704992576524025670835035155493117177483107462413999478939885859970203788754965360571886446080096687774205235204009533767443439255188556429297092707635748047608510892409477448468349651078147925470228623480585334143364382557045224272477708407134161328381718512985184094135695403320002513457001412817805757341993951676883627717089420594987996286569874650092272242774758514898265805035203697751266516358251451873642533413428312258412630974842257289006297954664391071115906987306932257456676818943798753108058306344266213104933677926489300553361342741618629604344904644547640947281223336486621374369939580632015571844920912897887773078205076217048605850566706830093761207555059351973879502702042481856500505671293854740122860706524249495977614576974795324990795398019455634966135938133689866005282959638157888216557778027259795863028239268890992269213516343183371017464766060455364577555447369334979175190577448506655505359243543254716087818648360905008732328590027363906547308964766858224485494359185552400502701074728949954139431413791261819623151680711063549547461304055641249318766755252095027215827731674812383915028867995434244107865473981244004399906267274131344673175448907396023630107091580483498373537687062351857286337867424763836085008766736077683260330293325392458464772442059031422151213856060175142482953463629442174791025412115326890252698132168395152385876591752628425400993188808169505901108762684561719922647655739088814757342627097220164624653356162704521713027900302192064327470905965486233198685607902051289600469204981501649803586466815943627783566003048220118717428293834682697019467499473958494520079681357748568433076277720100385505214981004715909208403509546763378861462667215245002774437151447050027501989027543699664158228076671723194170804164101464303216924818667863882131236880523055188147069138028539721767056755204570452125105067487529491734536865747464449201469956321055483428078144282500542904589674392355313898675715861436692189982270501334077717943813376482899907244555398461935976256848833520700379001719730679864644031683351647976103248304583121693879832828597837212680706045857952731792518010343458674269556353480482447643257863917942609601235873793015113720966584493139364610935437748888241521857374128105193526290559400749022624080927124705455403804520245230495967244825924983878296538569045311549122497121122734659749643049049500061482963233838541519651044295001751216338570623677812127211107212945728066341560476964836420430333313395083678727017593241625297890099074677739227419328986879184502764183505584746029889053056861891439354195945430904216453447204111315303845233103023858233522111298567129530600797776852832095579768408172062660919620803514127734924304431580648484994198234002909793904146541031458582668065286609766930910855703499217240411879886535874312950278648735006363789869944356872461587008360225117425619891043443229615303093501304434195494450427861015699145146634265904813273994246534769460951460272968711932744258704383609222745837544575409066959138208624315076718497546341902727042983507327949055991621940249580040867958691358094296255067942750559769499154803294921950092673425471551069022634066665021443215089206301679398211521128519778508464294767307043001673263362991360980306473110040804126989789005261032457276354547606711770953839211851663632360287549506888116770804738655704363467614274402287842163487790253696724183167143203241777230382248249058437223794799402938623084393432826214816502123979354633066904310060449723956353982777796738583325769559261295210373073341363295474369428089746172049979721713615425262197571807654376104044809525871123026255043037163705301728632731685127462392688287042047192669350631696863901520408042884888886121352645989643696789578988350402256771198325410663593415991670483202349327517330764468610967997619012098686938394159329656093376784248418661417079777354454593635854519173091898611915166843651704347504147826633615554972556813024236705880100240774186127889091445476406982056786223409374442527556632631582189319020333932245119552772584219574234157229232798692343567869867422383946041958981803744651220211018597797424704960599345588318574357926690926237875752493349746821551998435397675656576568873335833282685019168192638366666353648437955832210164393691789426275126599833351929509517877413719007733898662560942096325430477672023048015286358402577822767761722513058093380596352864231837194990636663989239090300916217502556541549316975927116353895402489122098075029671887926679676897145105140906561636803696807405880281418580968555310247158448593235714930243576601184092291416481403647839198126724314391101168328885449080203947247634771597466067372489618538675617187169572435510717306550464543109698586108951615350972875726905191440536542232263348023148172722614840086497955138098954310877493455874010654312551151170372063650618263681568528984029602671681628380746194343720886434755573656111376745612939714675106270395412231698556009183415526224820795443773098187727151917325566799820705813696576022981700463053858150109780216125177664344834435833451195085959675525663494038572561988357401477189321637232850988171699643551227717990537196595408752635123160695233099819652045927184695703643426299524958163845764613957479407467199009073954156629850779292089564636437005457768555889770748187909309576988483151713515449125983328761957385491359776535400642298581080533143623856911369292299877391564445626513481879474091004071977610536433468139801019695360941216624339347428348246351243757535698830119983006564660642041485700487852262408303294628453497019157349227639207664855448728144999643252889492294983078453064878616751960607560186905770148614359595574265447848896714666464791727476239016287266143120159307866195262445548550917485914334011524133955359610426670435922963521706467691984265211493302880192585251317773545826661248560146553672426807377367250382984302040803021853178291626457774648943081601279026404425387930427185811969312498319000990684528337959128594386051688758935359244261194385404265357521617871774865087033791675628024835530920768879438863898193208136166562957689266451712747105390807266004782291984629367344839184339839954552844906131036687752088962675293065310532058715418417550132691494011694417393260183025526737625427732857064791459837997622168901326051648321434804977491863027560536306104158139805836761396368508941151629090991024467572456624747574968365052223874490203094810575969554697146156952921520928818846318743383141626407518512946084319427623702843029493272301638261422705995931839446230047343918450048259169161239934399052726235521080170504192427050709125255173969693349400732365994121337747620195534350560540083654982399381376750482125168613017842507010826672360062680230615306248565388874319631767655737876804416211348037174174025609260455395294993726008155117799414403778018232798142333900881842263493556493928791932510157274664505391407266753200769006573146972350998314928684916656684591930729241849276855670633359968361192500415047325890551548357964838560670952901529440962029853358286200121133443218713986527411309239898891545299621351013671902318083971533540988551225850143302495643558682157685442957438893642476372946703588136457837018398232320187740689550833443578110607260172334451936484646887504127709540668150125827389809431114621763400476904501709017118591687605997383403681484013374647469834342186381476022262503916255123943767209830433753486749753135243748183273924686774824005114177690717642504551455661442397270220858899473932918190648270115214438868361388640633846727051490690440537386531628508266918764379765202278632999386172922252872821135737221756861819646275017889696530693842843800016891228722714918447552946200212839941060474308612148383205120833854535279019740142928447394892470418024448453444150853453706432924909114759706605310034073783767365559548589268848638668039536535188849692353955880906085594231096205215486369263684251147450410928173913996934756103504619524392159025026005177416387396597889523551334288833439916515544148470233667695902868279424726423842696717701493387742141943082970332555792703333255756888618311150540339417417817944796396727754316441156005781097694345571021802876613299211617188598280427448021176633832276083933539156644564662785924538475255428229310560845335305503290471696387529969075358959613265788474893749762454590094981155067863564714828524159578275409338536107678502786942659754434007675362989434369340920050903999296672571659416426964728141543319888810470189568037990225911914146956662024184149052927991616393015129412861294657674088697716852159151530833766283347030437731778770503759115480283263281063290287774627313773157288296244886249890647405001030737929338550030696751962329821756984995785087515131071404435174546433830332587320276113964336202755719655794057475131704239250274098062052019834062495162963374355557065466744297254914584316897386638790285368391509951552921874034168392835149691587572813535873214999594563232453157226963600497721549084484480726692287280954522857223668668406800232483116741191451227366346156957984665057454033230248059025029434002297164418574511391404168337482862633924454910856862131727466798135910662888817693099418420554477741904892575825391793887671361770843397093912369384572554785670618359882012025435345984674992425142504749373129338596987733881749384621754252152622469445704923846964461367888290982017514016572474418215675992386576654372528064573493716212180732273419753485766027024896398615554118271105478613967538778857303844109636165297346981298963831729339919617493502072700817266098570254943316057514780366553710883894198283302512084198135945715633300327708916355337487898311197855449987606167213463774851210405749162404192823179647248526716603665881897561862376905420423157890488583169127885578584986327576514925852075332796755738448593176069330080527596365594109992699726901304463165699389461615997145751708954944476034125165914110028700700024254296343616807152426545206918986677782397036180949114243777952539209882162938941824536178362908859196712351001989362444379181217619259651188200445355227059614175148964878302961896741720072410707967056590222621809462428193522909622912384494102843105144228706929093300293173230763336573401436405334383976674736716454435136779993323727203949150159832811452135619390241613379108434915020914975396409801484457442351422118967712364455537972941333318731673341061976117960384901388418582782695311795021061223494966431357534188058344324910338623063317485855004974397033627583296950993613845539245092908381672492927624249350944558379856986943084121079603037466966524143480352542358814951563123633805728950260296363080936833725615134619979110779888116759303524293852049180794352123308581780521775800057049245522913858023283640138074512984047001600588398524427689670840781682588197346647886134188499601867467183300862087825921006361131385659067527431051635087333353608614394600261036799097166443238171875441859227176870725277511092820697832820175765510304246940858802053488303021834322563722851996530896831184483666874022921501521103209681429343030500344796458831167549571921524655127391641727457292215819152789475307385010705391337387933251604913735597446857450817430516018553690684196512341674714032768330336081257454452382239447253651510149791367628936237919344022282910053292726335661238027060360492771551808825440060378064717364257961977165029990481087145743273647141254757196869651415963746356869336010982045564955193650091672405512716876841817451531353562142685455931839105782752806063701761251529794297614993548278905931716468286447437975975005828749514272376575620983634111142720195102014931628592944492077624396127853522851923102929691688320245124754289543223872516155371610353322420694756298541342940950536589398874417359587765966897433141571562668112903890071458060455252938040707219941551469461852216760255982561800067474723982292793037497410683959875384677645278228761704017233096237987476311600778283822916382750228575340238265365686649270139786946113080875951288465427414037747430377250759436570724583775923740199960716902687842525072227947397241694611852151995900978033991725742617425215494531583910689618031825416052428068542839096592756363658411990286384845310291007231115067836501494508682532614208397023645129380105032692139322002773011051693970645543150257695344202025812515893906899996456500030281743909124809620315366103901822766959377393151991915611678861388391961645057819558247668830025544581626887709256880373824215382023355516597631182482793303610633495898835677654286175252800482478769421243062499266743917334391030583934276554500271188590800308863789874036108277959655185403650469824463682945152158543817082978824215247056619454111839192117527300292681577112086701452334592575768327818876664809018487378239463863871004669128894506383555307707890833456411180966894968939488045385292846997640322224703108690238152842114456378953806458172236401446918940586111473696843753467042913654412169120175909941606852994086687190342516381379070359396047417690690185115241152177816059141575030101250016813317397809568284213945332802093399617634556686799651478704456582689375857906923765891844788257101019366999551514271921808986771876836210711433211002980535769563116308270424435570372098882736441751619935176962759475072466084651871848527783324954722346710664226798632062132180234949069218490707753018331096949998292568026321631320664914229098432415158236270804884188175197752988858293033114341629915170977540037070845231519635994213468233430604701874021562697467326204867212057250339220267988260296931339812878983940420994958727833924938171520248433869785062118025027948792216425258136018855548023642252318776800823682593158920942204804063882957507314240977008765837277242462691132726044444797464600991656004933822271230366295693642458747821453159167955948738182555691808586770468645756629442886768809344966405414994609791266989854072780663689777669386028485708401404322207649940129881135970959405099613363864479775200172712154598489118618327385112854602288842933209456723167787290335006183287473537320079543438535549021855046819656186867404042324902650946464158213395693039355731016066457531884504332360307074942927400273944208175946234453287315093276738550970470923364797559428912212999536957997215912574767035623822708314568176239321802012910641034082958565512254296799930575290787862547785725392981325807183248370714323179395331201876215030046653092467518764164537782350991363070105542768753853912263113667946508933472763853074199813676202420995035213643919870911104770869389467686431541325851319403461716035677780072411990079659100890884676671161320099948975907112819832084329284760426101960800203529086052304776042574198488295554427540628475295098735418270464291906739142114656131044751156225804106431777248281544962903668855520875576057990383282347330598368458727416465201675942983558678729985289100963592279684062070257144928581145349470570802097755484232948599823092815748903273554153526696317967082597086360261724568838285120161619055355795918690768432382641390186907427616025501819036573391417381728712739601380594255268996641100679338864715469227225215353234850349742183197829838054365367520011274992138297833239348830289338195140108234268037644189556315259781330331166938365445328717499764053238550458721932742624903239574946867722402329699302246333483792274632192077596425660275559184724404750846170481951697345200565761506974056742700939592160084649056029087844130973217640172923374111766758253366240524000082733746281134967949404867098111571707166847946546326870648269053608496664767373458950500565615546598882450050726264118868910185388033480082863354678992025751288709250833829150968558590287462463156829693732079463396603553098085651524967012573719169545205860885011766593149547489906961277573738818698461280211337488342346332879973785165202309650866320720013002731955944717445829723323776064467574774962981927401041651776452389329884459910175202656535969361215103007078051396950230559743589753727201890938325713294575362450737235197182139435080436909491778179991335732434496542265179208652353732666809014484649264640354373060884689144497432628729513119677924839775697991963132220181546695002423128343964905041519977419786561461356049696000670780183295114607103810433694634728635103177247418537040558664241685054521358732961494506387549516551927267979127987979587545721173732008774794592612264435033333203053362968222798636626585635699548269114882577090455042728332588643473247828300305958354366267181881804272857510319099056448252991175271198977956576629191615734002346951167293656550652143102766013173902867041212782908541365408217449055120415767065341955727911236074222863144300595038895575712272889339030738967100009090541213827268659058860749463615196714877829279529680200567668091415846219462403672344806436254203235991749488791844832894037731187180140752048437667052101477765611561607146890148477237695902966305581454396793543311947941610539200497077209571127348746238055376946394759076939176116118587088234944011000280328508356040369033137710793526484249131189936675429405408810276004102759020045700746204755217199005769814791070978284159420286069913911932096573476285143552338503076878259563813062253027009686741847852593982035861952435690418091676893541678477556301935651096898869333135484685846909151802603675448004408692756732808334686708384542462417868486547659003079268414909529136236966653525109455072168970482332125604248169629821735210539753791087223902571117983172513741918814343805851417479108496531501596394694357269201651750827107310793085226719603368791034288914513875588041817993394657018564030670910290550831251505497480921183519107466062051883085949123159835916544037043271152361775861607479108585555618521556032801692767377504900152830822922177653700058192402991607878996264091833506844665377599192014940741610918367629488610001479549844499797154634372608539960869782853923915913486513136829166534525054095283988150932608730422183714281106711865794616016390329091957866598399593697139868090262324137865703139131775985837949991554664040873469597620288056130857594594203609206085563976603750409757538936755018259168118193308471183057937014693426765363297139193479716302352764652777732024143486745848235012425002502998035127616691025361401470274449717460656097872309577326016569850591895077462943650311840653385953607420575725748940580939102463473157794403095713475589480833478799741602352247868446339000926706723235073298419225806158992622466557406537782472226673903384295231323224659942524749763649125388396615197741914369613162874908334180138377039299220800974714365911622269763656069444777155522930320930552839507939988611124900651100998828938371759225878681524081934556110494763749644571960516813743166051431705827683088843171404827748355942312187098950144346816610354334741899342877228770433013533264677445792118109924285018712102348783896343088093270138518605804092144098236762057915738910090235751002785203069060101464469540109715311907664198492339439170568102268094660764589912216549085657525876967199692207900932708718476601806897151918064540205137980938172592644227558143805901778718702470494109362252292111600408042597388337434271137596283054777613332526987777421846345160217641258494930515880313328530733970864125769329524495588922281320176747576714450939877089584784414090430957466741563494602531297000294991364941053231458121550284358584671696710063903328803175098212423195933052798317560456199676807113616370959781886865923994261579867652686724485804754847200549812106294648996307073313923265001631509428405543023132754198057013657053946472823946518673505774835616588149891067203160059343574302479070029583487809683649985012144254911621045298054104097459655537191614130441897516284224749323271526485053466852673617135865142831507560106439625648577389732288861163448321266291522187387125103018867353810295403238586865080047190588387678454458790719739363863189648750590878779515362417958142182571742844146530476012349417089418155464444882137515036141440766760162774675876862673710647241612441760055924913687199847870947193008360354478720771705989784274321779656940028843271857708476083052420490062180285868204525060386873657824818211233097592691772034572316688502391175354568979691075821856759417172713342148073917766127855618523656544877297462909884056680053760994038904884135362023288068423374538106202304925773158291393396702884904467992674681942970535313248158029689203164064346638883724063351594256284855700343347236885344638093804073048633064532878172857841986320749494337420286453052093753745951170925526044149952268702416123812036342910138667072780291599730508574270928674219704040853569866584214682767032531691414591790985873049264180544625707627589621005372519901558403494615987053050365221268899177942225070491824882581387456630499758594224871887370308163719957745095039986976441199081580277071839747639709787817495230485579393828871263630940789115208724936180035576254671332603973269111595121778265100743491039347538009132001746769465964576880184670815174756280008105591026990934540452044724664934871649529530419944257663051416184663626546048452189414315984340891497515870417793881198847635024284583401508121531053519457081407640650448424743045934848682881293495808978843478916419925646812433497512583263239438484675031303057726847276380946014235721796715177140776469787372512257107446558429242962475510982237771433217727151511345938092058502603806421421020005578114275398400241657785028892527042687124080663659560094512469937744257148668959689693789092997878271638116211708063390859874808600152854763776140220835489816507320130042280847762352067135873991678014508963057216854829349315629628272937176063358265968232712718936968447824642611090961625068626053301240363059557723710353235457927595221579243908395200699303717944948175025395649742890746163580526107347765152110954747554042860711229770565687305406706106423473306510645743963671812472935820223029977586366541460518809074001343755259343975288717772223244807409210059680871734885038713748808280066990529263246207176778605680878112471977678933863819292348616619925160101492710173693187708033411939859249661361226371652854767242379073563788094819458329025477057396000118247021987892416968864467423530293370921876200137633754182448281988588438405866489899687861612351019688259197723158843351140233942762138248526342670991267481014086526713159340799996131934001348845440254609847542533654578809545693159305457637351367908347442346766534407482551204610297964930564021512518897995025872100799387223432005685595359940876783737731399166952732396367215100974925780506377314702752891928294274035760621292649685169557446519944010392200552839332028307816416512765286069875165522395528730819101239152491794983386319365078328035266997506609537555229836819631169978461729265160115881647651614890340566226212105767546370921934150291098952573575697617604478564550847812249092546035498050755632069016438226981981066949026691431182472906326243255510022492160539629387889256705796304989730784244006510732159386053577093851859715051872219523467552403783909719322659122482909802620922228794407882581371346064157103296438770066697372269414918202344861693309443121867456506976864140929047993561162609228650012241991563421304494138377853371998859539211332627652106909388871290018021022981227974740096248373109229376482397663940044439216997330850052180109579913358372092501626072212563322786537653290876766043180175138046792560951661001937114280538625946055204892228844151663755551161402662370678825738440253245195678504378953831310961060364550792171774366173875142654295555383583530339428151923708275840070197998956765532920344493257233104326058848986793402558501591877609157717326461015129508151321198240911443261128530163388680269675315219657070218744383411649743338076644657139654337686483005048013231321531739619957760540405731450003215802297361842595749643558585576177683690637821836905775335602428031824603246757223243432892187157439054489508300902101757354404584464108140502596126622262073664053407076240624659943777222002637452785884020633835383785431698234746408258412191010841518094721929508454680118870521232817700590250482549300488950405263183704975779602976122878614512931923084244214942766086512664247266704657748994435519211806549093854309522006708690305307599742442039083129590567239339771246124612210858693169652789751364997873366368222208273559154249655084761396026615160546530885430091874047836920508193548758869493314774597309484574351422383418920966181664925684049364338183990769060592222665762176402109860750152229077396474264825128025767801761255173696022095568018847982595056409568155102402268246933136756711547967403964794895905031936253025414639020219779407680564080538483772791275533899617770987162764414868087740842656396728314663820997823020414655036951795984700767704727907138259133660382741621484802728219841782369861643150338863210784369967106093633906781133968671969945795660174446198450768112286316598478715943103312616168554696914519248194113239895954822110842051692652208649221073694886288211570281159466855880898861152446412288561973430033893413922909511237187652298328186660809577288950091396799742370984492939765553330945227677523174124026625744828680142074070634958990084931919221931662072619721556111987715293426105487337145776291597337623397067185252743996782431691985279957618458819558449075525022969496863023265365935032616532099656389798643697002732643415902064658858684996989038397107801150885996764042055270607394262963942940450815775928621481797702836833022533803059680250613943337447270389298932290631367784185024846077832743183394961175983711913447053620334721499787658867485239229858424763850698658487011642126737086878418675239948784807721435820737951046934230935794339554920240730194928136022480434320839725315624399194963676826793595888971815854644675418088895624058793211248394081084981898061243991109515168757533625557205394907936677792477590446402639824200731059156064285360583143278807680998921164979876870894339921636869155301069543077109974070394472649976148784989790325918166887811947534891579675809243138746149826021754057506471519824432817292935909306568718233703964046242533796784945492714769754010972322144025977723345621185820552005754389942610972591774177428602947884825514017910949250483513519825942950611300621511683026215812954701850639397229272997572755075838408226782807289686618796299257487974382985109379375935405589891740930436602705805767840876757521632559503992072178616456293463239823249313349265137679521029771300013829745470406497687046227755046522830973498952125365423521968315906682393921197841534953350559401779154997255621654966059804991865717999092906856568912863920459863785784183569852653223767838419730947560586638618038143182887553482490840965083509710055677762433891827057018343374712065325325706859246983959236862639356429046299210621014837851154446296419484962835712615295379190530920945270809806310267615429007905861936306693906781872685031763463140700504796285371277924287607426925264664836875542732463062233993010876042713998864060243913640914841353480565609650848298349502025097861297702865361256831506905292256239188938844596956834293030436305317979960843272419086167298856272194565983217420471588033904756424394068769113313308964931842065311814929218828164811847944948999367130315929235292009909569675106865650239241227043264163003322434038403369870058984543114787469609461499203675474974002993866716268388752709514291568284268076575935696084324874320286788166927425732864874427835503250688069977421665094316887500855444709136498064361373116489147227933421940170447869503646292260021734727198982901974096098209222081024479839525978527951520068208989420331148437880533812859978044656874182140063134511901502307016439449235431867665957625002787016398030231995785022314011029920185787132051868875745845382433635592982057741444237445428876742147635655344035494040507042615980106094131113673344737701596207388397795190158544211405271056106869377665847115822452785908644535509687777595177718085469175258122838935677064205681621910022154251011950737256830392420943092417466798844703022211591452440822447173420758542693091833430624991530577600536583805187922552603740647858733020871028069952699395215411600384379961646436456969862367555482889310419980402092067376110192712200649783462273341224467955189770036465707713016844199558381034538926856391796306821615138199323924030998109112433022854626709773139018110645945127695143077561658067539714473011928749088481530091320859387323737180420489144313905254204497596941286083668846862433871152643062368175768115911190290356990414974727868658839518668534588746147108051333727966815391306668975627206404123401604780801493808887003469135459160112121111697985570994347821628205513870750885663551797668011540097081996947787449718681742383574635778660077416397695123352468941490827159695112860720589816370566093567332914009877410193894607347612759369926364486380156303903925029643455230151104067165931185446578757262958591203237288212164857604121401409161025519207121973671722648135912207728916852443297104177364304246253511418566924602315504787729802383132110980484544212048680513049676813332370877635912301147115011268379106422337998477311991533276305294168276800363539600814921120083698422582402071644879698605940198296991808479999473115837874233517426315046509914645475756376643154118225822243737324318238633250280852468669651781019260355111511850398189481440960396280857124718122585478100106135500575250728361785787003312215949023839945891742822543218451918889826265246019975272149977182656927876181020847760846490893483984499207173806882936828960966508215284493624983490777129329501960708863961694857438090944069136108111212435292436606027248184779578860791483465633601382201794565849837973798394128627667825782386305961161357076494508277539441973361801276406785397235244712420360397380013067890262108251793851332179093610709658433207214814632399599648228435566028616114856459795727395849881208837551627244820314728346320796409930519592526648202429665043988550788821625930880993057658722261528919385657831475034929966996917720610610833973116882901621939142511852466220267192715268205095472101840760535552344989351948769578074277844316455343775930283999192108876933388633047973992644173963493819187001004530873878827819600722666627315056515975698595146840536688956321698051026830804825619254759916909487054291706810449030203631714800092401888642284023119967474438223339418937211294430728688688147592184230202934394384758534794418807425561031115900167929043953506359386120353142453893380825923362517273523236593838942986682128017256183826985150399532105660452014565063631710223769700316406312539128218037689619298048446039118789270580700748605794283382173323085999323894440142092906351393061713986054885512860201142717325368050525146305167067868055512899905196433612832632686135556276644797676215523842243326960018125193255315474791754355677992792705317121801647389424767861895290103214653216843603639291809215515533561891153028832857046843477443736327409466577041884054923178684946694163131402240178835108225922106616217963218666241791941223968443887114687263553522979311078081134410547776185818156259970780589445971861825484829361973459874680532803686711251516290290622077883785478001232679489999045568821144541494352851665073742321470417020676552570373573319421780727733736280633698143488931025870199717014581627421698081530415692560292618992965533983530935055838000682616076907689367107154591479429232601898469831755755812969327038265200268798376000899284494964325725508078311186942027189851658195965638313024346983033282594229402869679712721182715430273347886928713495242627645462215476411540272745492568995475992774588081038453586834567180508309746145533660281945787110890952996292019969881051435694021556666586821046808985746868090147228503795173573142157792773987247263906832594465591925974686101338092763043217397313863197606092080998054746628877822456988817789332024841189403504139721737712122496410928697701253991235669594594886285814143325891668190002244995712228928489461626037369903849379560651477022650672484469618108209474324780520793175491324752881986847817551042541385138031903388709710712616240940454209351770330093780435796855742578456560371894607978415943118358394332851142961714028628741795404312156998808997873023127999643209866903092646008611887468362392720974215712789923588584055500830091293440511638363481369977768557078112797388404800159684973645267580520234011518737547122021263930971176059309899554411571932208338556945164240293218245168343849648511794158665020212573068352629481542074267791122245273556644656134207736934350434709969076330690991579942623292824777612696214093296491651961203079542122065626959592858029226410594547007548061982572495621735961929254689062752797307177101762674959129225076756645669826551228727988669854675919946964322991307908384921236565376500710392389868752709499755503193562385879848312504659194774664758900196485915333000301820064827447657202851616627692020774902229847110381172204846321527574920001714408556122386431611150405120619772010904721750741694416774713403818292965439378794372958920286709139985401104924222166914845885099255454874286475078981320048614144905545497104082507098028723938444559586816314937028051795086102542717028422358725142722572406934594203941742226503830528403929957571509100953682194203839416626092679278570513868648458664778157654068996242029937853381227944577671019358223133997336098270069411913669917891839051695730434644927200911698559800317128375359222336815226348930477317071152596297798691727905346150537660923724897491966571264895706748277052230661447786214049406940969519506415744883375044339216739601848833048717640478321540587465476941290892578071958682167632865878353019382012386716869473236360251119262389964853157010495796670603088026524511523587669790066995533161217609328306265780550438979850667552459377440732029761736296972573928631275476592040695441119644366788884768173621318902547228450938020382098901234688377235373024219198816374280940761038370336880112897437121381613262332684438855751705170485544939233157589290144676641608332720627490166111132352424480618538015008594735656067611700304388127125777598521364505918606753887274348251072215819101716101819913896974036716519017431219267523567137643273181729205076567223681921149301690523366725074684329888926362989659755560450722901013784872074550389285939832712966934441697741922225449462570553481667249253751191966688570970359503106127282723330485995244947963512473923952847700925513939786948293927515594812628048383558438252092331535941763462777667302758461340617712335394377066894561831524764366734692192195660824059215566869614067278019109703432518523018899834240665962061942920789351414323877812430631355793083586717965263774241209345902624578834459349351670989189780076633274631145431416840872396440091663310170652299172307704840786540810775210950838926686109845482372641264578449982017588243947248558428219831319265688362711816353970990520547740519771356734637389694282696526964858056799545616891973514686129610581949011749059946608013276361984601359362313903494218259496781204263755241977968923649263558291152127958492973024985351527829133915044257837790160742532497967186768203906209176759148562859501468358891914911911530469867066455049753165556690453392292668980698210389728763169949230118030978031063821709683825829302274409787403260027756737338413037604117276889112628910413109446230131997009206419470052874559669229258962719275459860321158367419008388367099012262850582096738764840670454731553437281090526605849999840389435363047058250087098389056925768323949644450952166215567417724705428081160207550055790614534268772827826111938628635928379339699189855389228210738828848041531083269877084809766864034628843038100475840410255422884097976546612399041320371294497880999457979536854933272257762069942223543085138390926428957238644649880216247324458471685893719499980263161476976872940563334583740970240988508598944782741732098328237561802361607872761152137947744922318587940762937448328717428557920859948033573750389371550946198362016867551923689427926245849771060560499036264046148833496685042966157497772825401417310356461767084639385517657241184107836436108810303316177617783939348793673248051779944431890893430564119300885816468269765202528861831049671819448693834234922834678993354361406453148658240176016636258199494587309010374938312463846503719557183767925718502864359144953477801695311704478981525528798075719035288326927119105341474554444334736469541132142733401292746844259072387868702689036506532243099960830722899233903009723221193354714826041634171436057264604477987226550554848497556591130595660528799002357766702161793940549786424367182437188260368488745576983545944273038250634396017784323629286983890831562677163382590983871241546799556442137627884090977836353319678603553475697836244400614379975263188918399272611193282824235534486070159955664114799021973411808197042077352450098415837418886375722543593678594572588356516746029986895790588111507446858116960824295472177348980233181515588647092803371126733816893912697885714411558056287314319097128113557803770908718773407907543977173060562865148316767555102036634953406185498988819549857016718540985022507816039606317052868489434128480910384187881924835318090891702139332587017947681305649482608045353229464835926413687093712533904091423550501842442689964562019771676115871223404204318929017778038061689045690840725236770033652622966567229713129382515500146580192638641845745146864786992202431181934594544551479553696067963763442385893252858118006458512781251387439764282712776313717242749741852034630928208192792774301191493525244984880690854939924215070877362421831343143378014683375290685242736686684643326239155334928978131259805953125874846910205656884391295672080831562196884580880557648055968008164575784164195170827889370398879237578276512884532252434350598099844745395532116710590803913731689943760570305723004775215631828180637773506876169435554426994149336314049283170563044085708033215617526409843529847152474304454912011904286582113527420137991214999533633526126764258751748601838430639838982944892175564731866808565656912676532746021295491018272710261886908315286655890380867531026263300523334858458345143124888122440435350292632994402429409931546671833392985012316242937864517586797061001161840757211452354884344648842389078599395667492738367830289963451618804646021291382202323683670240072332600804354323285553762262858221584207855303742270445965920033654651721137253912271060687161110059336958178435109410181444010042847928993338860921091618050249858529241352289833364941581262551881394645041674496562806144183903955474272404235756139172703303024004099351231101740261427675092848978028923849764421628291826094643596737359905781369185007840742105246917373385072023835613218587862254296309915638189113786546768983653308130212877320043991531703453890861720147417129101197848665794243254517953522381404658997488852687611309030120110651550399809828571005199539669695674503179658218099298622909573900904296249014591601614674568482055144751953843193743148258937481687094198488448085095554311552364978989577195113431113853866201260041860924595121765961520231106562949554542675100456944411523272434898727743177516616811398786578489333636758793642835626945063976106625494889903165277739923752930901228611556117300661768567764895530053765208786353415636530635166214911222761842553896662106959374680311652417142433032924525619668746547347782835627414445491146647799196770704652382155836161048640753786495297729804647833348716384443566307845398672346215027058015986355508271592156350431941289462870193514830726669711203912275558171115058805870995096170061767015065053634237127764007678043385244066785721065578152296266409030591726236055109561534995454734850567764344155693791556962748874147612734718374401731487157032550496394071298983208136611965547669462540079479397043832315879675350799900446357179900779733956567022061669927649803563291498739356568632764748853676783434870473521541029958825806846095881600955966752874680808132346638172089832621075007698965581314676407208054285882113152338362308510359799586614946191735510717888974601127902221145130843795415748172399723541167578832863206260838259438014184930118090965273485753113573821506669574580519935497370370941682440617011092704013164353878103398250580978525153055768305834068815080128982579967073146921877414275044865708446973689643950190436516272546164853363346243166518690435257729932669560100676069596450575331039006806197874956054296588018055976736652785790092102341492390468120487595868631753441085419186876194244882655341486245227833337721788645291092578355266771281378557092982787684457068785597191693369898100376032226835267477818258253329919628397406101918029900147668935858094161184061063289531033938563362554347767506599966178764988074558272109053435258750888303446795724007243531630781944391493345127308648993350230211967318881546945461152807474731317609901030899934382826212027825932429427641735232837088548350933044789494603785043751619551821620137925623947859198686568526807995214672686354859037794222637743264831208489089413260151199633227177648570441057715965444105876466299639863755211411387635604495498905461747214002983605300707510710362351914600820353520124099554642419161677106665081103639451522064457038133782837731084797727350840122943197918331586580304042401593040837600053482398649829551160363204131126079751412493899829355359395069059415352027684451571433337760989621463069832284421436650430539163156368456309156919281687222943765054618690434805542501513486809085222138821885509671772522618550647463328459745669289183126915828909587004533587028663896178918083448455065823512429020393093176925763663671256723631544161432671059643216461254856666437978028726006308293491921629950313252315297206106707425031349456336416482867372767849183587009165430187743614248348980803609899499684794609565301721136233849566942596304341561498295471415720348223788389671178280616190659850921254046599509390150720712212079881524925169776305484151009977177714188962024474053050527982184698876733228499971364589016977303505279551423231324170873269725309698166178637841486390617791494666580457603750827738780532741518580657959274568736611372687388988596978088905106890633781079356048023994545354259178499705919837316700877764007157321174385082924471417076071647425763782921457702359047067483669630231222261138037388714783145680306470845046894899699145666603359367863832253265257381196536912785517316676392652242677853762718022477883334976927430200578931352630307167154045273189772611159482205210911239870135345081588733186964918925882874907739028498019176219694352122213321339391984476627668986206655386941377723963465733230466147403476079887570840616244331710950240769032807314107612631672237411823815738430276209219200920919989335137645512387899724420023292099271755634546207151817864218836697037814823562995357328396268507030868045063833798631484987464015842848954815957041899268888686358765045136083333775669033241641748411034235738230374646719074052604574921648116662856162738257195359761246151957572809864490515755521331848347554117298285644945365855900774585890069990436516805583187936583687017553737614138519346268109721605294603814244688224979853214539969347896779009275766302249238979772791017087384386876147849484115499046806643025426393992381781255088751185236278783615315204374940439239751133056710998484284564041681211749309160008268997771922117171682452127829565877806201459469541016709219348546834340259819138671049922851846737584214042612409742101822325722895973038017894178312982244241478408994935570872648121937409604998078953994828601400757931092658192456100325654531277045136903315368265366508522842188415595548772937508763483190186428965641069544390627231618738196533112722538876454222387186453576681309503708190816583795974537167284591997727803148439468108827774208971833699934796118993301190493469000874360510659017181267696696735593017204907794798968039618450788844439012709402862182201743295937113387085265426180656445758753423222082467731692270881469243326318169175405215319190419146947406256947676126705148957611295853772055232974013299870574260970831782091941959148073143763118557894096891220220699340495409356489465779891679467926087164111784505564038694877727798770477449378420987409311955020908706276497761945687804792173153070343684301371874751419706313693022067834166903618642761367827286269177810187456072393430798117888630408651902173679658025631924158492711458314059501070901793589602501560998994948291416017823055041569178882756426245283512063689981977641972808837282290152761742157780152868502174577386718436347217968076896147309145726471455599935179760843292705193904834084294043549793060668616348400392739658933246479821808385945384907783591267708063637150446846228255581020569966154257084288455998811459760074029082187738870832094714427964131852913469192881308280741854030866394299942705721873662957462152188370634211553632628405791504373130114084065674164900133779590368004332798511888465677384400078648113644417610308457538701399051810218775656163962116023417088069059570352696246750717119221499110576719857377687694090354692665968762025959132774614625960367086266511055382048036041563527266602801526493598321473045629454161629863862544151938305562748672900199168824128293395713125420621784277571845850885125751469140700243341214469473033909304658206016575720482822850698994896722379182274171503220093160304640384747870083088637187208737843748232254705826788747507168782117825144017661805234217028546768015489045568688448384510521396244819623932897050303283373230558289729566353534652113938233119076169778693015478260116414737169334074625937217585664153531225631213917580263002669870678940674824802094295492961440748122075115282357378950792365106564424920940865364673989735114448998706768916558432865095353947865442390470561324307874663527725673900751423090550702839811023755740673205807019775028670064701870257266598881461772067577974451787652840318298837872599708197674932596857096596870489871256023713126867104996563553415263939904853187727599567820887535447543891886870269690803033594577848801572203461247691505482228016721925348577607404850912012595255394006754561693620548366304180141309079471002247886077369199126728083479758780428608181119641002985610008285456799590922501404838573103353906738122718734698334357806474940776099233547707393899252987431158916602692564161948181185569306422496137725302446845601655696766173786610337622171811155783830382272048614233109464388425119502638744949012609620178031577623966525881798719367366464066634440489831571723734950540949396426564300337590906860214085404117935543103903170488510528657727072435834454393223639073332476120639988425839291623158067096665861953651008289004409967688186738913217314396345021322329549315395099465826465159039699606318634385523986432550068811761242515722811743101953930995958197817480927359546198176409535710042344096585256585048689353195498712485422191093944357507818056059068747624370207951797233744453502155955304099745272583781865690644639834301204586099407445864510862277007360993387138090501846965109497384053242798872778798926891663849636926931914945100183097608978141782888614353377821322341855874191267153324553811785221937357172659168938322007354796677850822036627294496314976692751342905658293485584762723792242756417383593083303231080239997447245197981219156171866407087564375836384372789062347717212031861893778503661149685490587700061736916310412237689741114828294833726893933094572473444750996943494033351068529037187497967339335039820808616790597260913132118926702587408708584800051024956273674219710291804109698992049933371217696383465042258920175459526970729011820619198530074344855793507000632091322863898932809484604937958242317999012514603339721643616048883196130431130247204464945118097420823127913085996740866061625730520844097587866767172603096922772522672064578862709128304855775702528408895892796730554661038328720122717569189543053041965997810292581338981018781786430183778700580409135629669460647644173534132742832318586264702233009237792557625050244864989689549116085366075463527138294599104061789104927619396449877956902332898128673052751587358468120534531980092391984527789212497679574251598986909939204001299124796079849120688427719244107205470684070223301491769064357076871715503838531375712413174140696985693500067830373369147724667910568860114885328029176515326796817096102146507959353677169166104887351482058040184883023858204040446845333135428547828930461472735523629844208901912227913165088575327319546336509655662406825642739160619654432532742816612816088475386364023836968885420383954338872670255638768104050019215304884411382526606877427813634394436984587488008002998451575825550225166950975012069276997283879529034064930521637063859893876630135201664942143600952574416792697909139364221639486069468367118748215167507515645198391321465831297662081839227755825174891943967149148712081330044820857849744744226552448024959449570888390021985506574535167206996198203975417082854996327351091592415678565266025495730333119126747868991427423740384945437110219597214852555039537729212769500191423067802684755490296348179242988747129590125857599838292757504459514763941438195635510489426930859757028127360818821175683699009930616525311683730526032994642827191538439382676990271950393848912754013266660661697320027148903110017457945665019247781366764391765849260902008330792622711333516850044670546325157439555564577693240145769376557945917378438759351369163220498464226430672962829138057722767055091579006131863255604239130769295226377914601141397534081151210109059796421674367756914342796490474412524285901576492969768018284954386752549366001220688937963720898684533821615846854246121586197320954920865911167479251288746878640569426322101359503183835379557366990442145936249384542519666039594148459039145288205832703589714529393521260199628738100782737535346810431499316564312974360632007954742974451396249486137980021892921436568384476848306484491847541850817149978301273904348499752488131487566776716416041343064037607318168538142226831191966978431585904934212825000111698520932101301901120118530695278888260634811501010037086783593819256166340712968098611428823290928957909475492968646076547505646753954868441170713850428383494314397832184665231376765079052756443546177196513183769315686765606089249230024424168429306046524626702118213893978999476036983259386994224092950636004933958291474031180747560095072084141900417307136730733987278410734646730303525633180559697296600042712328797294734081902940984625974111009016856945856430280465409533760759813220479756216358681891226344262537108267657129392380926358186524843503050903461428476374507908189300146607794368095800170590613630996938710891958514055582344694235447743367032910795933991715189479506056482003794508127088526504767495411976241347278273221438762158218701147922194339575059958357082334551241206870992662540175070378088075360093673281149152941762250211887370401399784558458203218780133577855997537026809720112167979679164956890507005537773590267875464318587280231498787240341776663937170674341940055229554634157869579922009733151173227523561731612171659268707993763731994231639992296873078415072039015754569743262094713260739141789098340978239375148174103130141052613807540147946692889089348389643351520390260796043103914540992199152041076403098775360982255476281094320292558516089072097014469740117438293837282014706670401421810939369386709954618707131498420379015776102543447477451131804618934257482699648645407213798462472690592464462996506743011481210199834306403914506526038475370938725417358232700519451758121042357073708420824982872491248710916960740408114757190455818406424238862645405607245713640719325783234159418983481741925330862546358482723362347809872443418777687224830760185727022830443628603934476458515793637341558428825866314481200987787377586660198571144412594072165095003802865520262621416920442832866718775886594170878656803498130049679842156718452316289570456173692053906684116845669739374942429191543887946251323880808382961558990863009840390082346450054897135416539419031083058770999543541990765816772965846412346430523863367899562003563973432563610810978159434668784015059817744230936271561758047476780120769734038377441742187365778899509877133277165327016017871817215897555533589817647537002592949535184967053236210975375693818615313030403389985508781381091687795089357862592664051257598592198402699171036392398514085348100643285797968319250669723936452740421458431406586430137654011641723341644794522671991672376929407515887592261119516230814033108318257479607351251404047450929947056362078090540878298606614853086634583581546364579602598585841883912804148281924694917499440626755199927858874498782202469308240645166045404958866971831221655427022888344022354293111539815003059212490399651469080325708001164576349760054015638951567430571144113446488700217859262120890361507510238506542810884597128819803743318946078954937998960719996464567490290546260234279217408177181945575588000475048710759527328636216866434847725328333480124352436184504440220992439949533912543858363006771297778972414013318910230330662857270166526771902933785927473312730583443159082499780147469202004049243534334988981646909802248130623683186272182182539703624995398741064571246421139557629963861611809755144063963688211455810536043237790465390225564226179484589167003927389447679930437922093831799260901334533885997170495508268757624468847536855033367304151667622770440144880064593217145743177505570548383542144847900681956339024461021280921317047497432988150733055249253440963334459483915006012477964868322115579345307572498367598526345091999370622281636709021859569651774014185915865935384935757542122986652293534981892899962143596302088383628698123287460209804370558040047274484972623207418236640147368496330058298620568659696383194190289381395480444578651456362383651646974312246615098643676078980899810541175881350540855180978675741488036349139699011997889461257248529046357263878277833720429610377148031557945920277188919018398044728100134530825384794908521313973878794345093462888044566576487650198475933060752245720027116191273378505209955661789937448700222570126451039452986196228979446929242148448578705489059864486111524784737239431453681141804400623114677857001926787719755986661997034837838218149480016430401561951722050133667625505975265325515633867689944141184973336187584301309060089718143425806997349156662986458542211676435438550772627452117785330548414793678369332681162886295400220839413272521572725236610416351090123239859699186839680741506312731401573577563751917134565572333706339066893338430932502211323184116763425865703235956278456409932404778589265278618843881199817118167845372926298809141770302264500629532105684886424915396456986437043458064835525990706445034366337192807318970793246538738786122507637226601908650211989067162167706760830761329753140692758441615431152574587743531662222994454520035338990635120493511998218700946360145469381584024820486630822994851569587696426736671520468783345773180210236338598353295554187136940729042342844381696792275897091486395955193218878968016404996879982652839985568888041140096357653185479957513995000476688121626127654011001599201626674364285581272992268885479625039920169130958131608123203147704282999632487400456123634478616716749936103933072096103473999956264849676782082979666972584917908593145100739763788996660585599413302457513311580955752139055398507552711090714854219066048502218172038677985651547445155086588252021593697041186278173163481592201675316766373310121669936914940254449751082846805902178182329993582772649225588498090911120099441120551242557029625835122222991139981428236503433449340674716251393086921606842923550724426904787788028915110817456130399022916395400973359642805098426138665886579371126346815442585016588381587813237364355676788027863071572552069021973039816547006888119345109438276117305176561281850037239208586505220835778736083217060441869635197461535540512527911508098915845405619877912654889836713933548070619748292971984535910152438927156853173677066294622253729963695023650169608466195676899248965826688373657574337263567435920269408163339337019136501889341505792889691592574130289480887256005365478875463968211473788112627143034046450561020939357549017862972310611033826336999591447222819080695799107831212331583128246127648270205832347488907305272452766300711172477339846000341320409002407007243951273518573797790258344877658583027457823977621296003400176727263241453419283951714796475233928141313013154173718999617246458992963471703788199585277830550449064531656311358164210790878294833634604850266076102859527345183740042888077113390721579794152708273871322078531760190567023852982770788248621619004239930769055527893882587074284085897126401775253780316325957142495976980584224605693543001612251334149056944607342428757375612004366284547987447196672060275335351359868450789007303384769739846003439954027731594503431385291082016155407808867000846066330081542974574078741974821519634328758329102892442212236636288805270172648257263589719793905909822727036236667675836528893453064409313072377623682770021259047014260037385889428668320126919295727629235771770984797480570887158837648636698888286569338870559035472204904043283866831277156196603411387726599542201819349618567041331909292096034913609220693118987724140446040685945460441639133873623937595815273080513966828257834013790032496265593927033723132494019380838468273188386288794043333066546829347975588252861090668406578133848477028399854362546259642587425699707693829971137245117646726885567206031597437399746295533374274588619527054582256470256672955298251035536160224459518260877712519523147266922275123399502905460146815366260661958807074115265349285626962196142020596887044670756644943544348646223103442686000622555587806276853704263755519914062482785993197075062603144719364728408231714966146782563643239040248889097016132870383891024430167936899987792738834305198314715779826648654226954581412329346332144711015201900455719658540981584483370232274124183498190554779262794735017533566519183865441082728584457105368130070499236727107502263375494276439565864758615295190011671977439011934802880974952564245431346836319126858361196498357257616556085438326313949304059505457430124284112795649685943681616845875666151781120769472575404377518973504141696948377603999014852009196561403785312993011219402437378907490729961127157507788311978420683695964831478954857153463762801795511170923569825081296872613324722378898145832882486881235394525775344576247149845858031106624231580207109855015836745780256985241656661451734383470241909597316778751405291711175700237860798369783069769633154309073491376152384542729424278692085463795019026913245178157322278068334617193416107227780753897256651647224333049639973160325719690861230889598641202169627932329745794063152165822906983254044795303435895853621648579472113387541790145458553502360629663775081758193198088949720147520741281250225729164750444242641427049766670592725426265834033917014354911337314856240565864255747998559890430640898761238542534986293286182361185449170048376137223563426398375520698442709900677471162101137405001020406921749789667933993157138767355410446937875109272886543111501382603836723746859321250513115730383854635243264094176721666317562765622669315958800692707952306573563932870665926025267963295577711508428785271924686656369801673937391499653143959900528043669978051659225341286538343759119222517857220608007560427755201291746659574584559609084781813465491508089073820894183584920937029364832529467469407773293664967398954068491820277507691728678207494663765100979554796234876626896136128150633242241653745639761715333780520959084568247725320703544581136750584911072944187245712647742703794150751598684815201343410614907504855151984202375056484170500167706770756149851563321739368096177191173756191903591153130227915963444407103310728099290794838455017836335863626084831567374828883102115687010580717936410585547905993095306838310700785497462261435038390418040785570816365447068681934598318681712669915935695660730575297910867850514646248581238655986483538237412322630768043739905438038674599125524572377616685417168132816794697069116214399826989935068287733995189612707528449307471184267413465855078009912521440924408303620869770959899163771003683137222106435114143599524739778606928796768495480741562093294221787489529834854150511083821927136775299717166068963394453309063565690488837861308339983513328952817987293539389568594028857274932113758590246233241679902426499915496863972273229411297747912507121003066050437545426478883266487553447347353848841227188752536648207025546130938514124653152694527568933560697012265456477048437807214295385603213423676328784067558598954800356996240749410800913318823529461209055323586731034639491089124265770082237632431720383976334752582236524183174216279678959409318459793821245511197085326086699881752846446786284743238131748064570577738445380993983532336939315071041319045667328895239791995647347614036751955230134108052601950391315206531781234414003611985352039012654171250681023395318904393574334525700789389723987793893739657503572362436281609298966512542826832624527282528023532269032046176920629493399066697404518985622917575989023112437232779143908396257285566087114028203702530139145123409907480954249069990803828132133058215598035546774496170905288726150648095848721769988251264369283488240003810928158686150606945424568212228523530802968714042207777825601577325540501312980396457408234558225003071103627350143011337371215623330110526486396825260619203863614432870727815328855415272209326082617011440719184368357482417291573444801473928330289812853224256138062737682041744984061106815192795043842305743118442751263336804489568538385005628415988971926657639032883144994711595766801388662885184342307080795045549872397935812899786022286362940743832099278329528110986100223515487846543057660997838068497787094202087462694136475994515305355097038900992934195184595656744811027850052702834749386206382595826411113072310283138882091564787366782273189885449262712613174384772012368919385690428149907973009329108874861876479726416286594692216335947136473223190273809901105558985812030342956452899022767962665331583923189228169348749492252176019971684205801817537777178032826076312311739562562400856508667253033477859923366531735448917552716753608295421702107571164515567805878345879652457872053212417710537044270706583131099069253924855486964286126216090118371829566934378850018677245718365868676674390269220186666718779303481597103226696381062990847653905587995888331469221058695712112108116409585544331420142848172957095516735808222748937352639569011572635458481300191497696556833245441114849350994022649321086149938500984459482616794677217602206237979584537752223383582208101372278300526758285131637257625230014382542740732394800674201990797335416544245456593752025780548517113852317482133458641645951191493536870016913829195984272150464908532765770493470842716547852232876316398034381461725991012340986854963142027862101181592175719038412641203806644261768613569146233038423017585727298663576635351709373470644160257012004438322245872393221761523458119774260512262230818551959731412792455816023330815227930804443716879924268041972738941968111626521116083265479023927210977632436430283433633994200906822262688817428731833899270763194251094403935215145484696130289070294665380417176239641541483501533507537179337329681392871013351624402901194950080124989505987671992718778780903690432608182886921568207022255074290617997378418074752845724180318569948941915279927466744132626083151517551472192672668566153069101788476539751739117957094165218256500762352013265454696603119347421245564916620761674265803517149431547625893848543553542559065360036627864699023693912529749228099688307087447952630769042309131270772000357999250450076165558890465574806162403181648929075372388266098481762119745132326735212753729930392418706117658963532178809351505341169434507603497046925541860485473267360556553099883191571781883595515859415887779032847932678395887088874802807314812424151460769915180110010196729765474931892165567150679169616008009940562484416148812278906770148392790708866758237077910555911781213741286407949785469060351735033490836553124177348813716446357528809279873817193258251100289217773229177416354953259758235835973127246581899117339363501789338506519145165782464392679189987739147017493012595247990922253762628637854573949979924019331974230598955428216655168318394361042894457697242155827172321887774140978313415494371680745779130882806193210308082218553378297536472449016759846885939020508181761666330041643345970475352124428838437743032923622671529757613778884176750228960014600401129770522708308562506530242429210927792093580742161747501928155090580561648138346453434884052761318672171496755287398819864972532937467398627214423734573753517465110322504554930821917683475914846450028148650004321734462759424455773129498175871877472983894178525236721358784935626388185556142265630882575810915081368673782901283489304433824341008427533279282892626003837159764659095509094333922015478465071299769580708098829829822605402988249254168922344211155872985567757640061726287736352231958784956078036768511127026273264237349975453222134019958548537108916413956348696805148176924442879414810184755997125918249280293742643097153445564121660524002323519940798823043265446946215993664675880033021019920782918489176695548594437971343062021335380943436508109205026303501098615063195175026462376635458665038263049897848488581750883749138941293945410533179070914353711913454111663511377356176754824656975818715722802845297739696505135888683249408013399364436765131055047262604946684220992066372987402023140686398578549797968556286158997583164146315837340500697585497684028573120841431307530581598607622647652409346117718570810727351325205716049010500291543955136048355007582563574804896183860543820123730501702462560907371234838889423811850425787676473074558356838902800928571506740876346340496137776427346549509298772653420471745003505833336630166672683038295957603369316673207869531319798816144495259813700201121381329313284970243431622818981830120549539546169024510972232397294459878835744679125121140910814200151094381237164238250846872077815399366353399519968042336635527663819387750387341752468751625460513316365948827262040309044004642703420131349420877483059954930361178536282221311798919387592456909011115276031221782996405774944068988696897128031680700090127872228851021081203099155005927147430325800747548957778209682167055644381259628221466158873735564573846654130842029038904925672431333737627453190511951380963839807757064838672634179900557029793976028088547090582984316373205008129414226186297872251671317601811547067308454576015982585920561497483839672538152189219445520434008514816376697512991589707042841043298084652980580811051600394690619943275266930656206148636317322730404873365135248968131097375488230474754443180311121638554055790476316814444698975654131721998678991602606046053923589983272965975925477523640000040135577759200519657620836147391544790751612787880703086362260874190437443653362868903254856279437733974052122215167267032721413623559757587255568292942095711801995603558192662205719693547630831595752309034013109146394734266575080163570225661992093089902763130309727146185259036085815786300561169116592599120412873231784069673744244229987168575927492418694400457053168013536362276330010266754655993169943742622876910699598391619978665287850987999225713500267732967266539651141264368331768069861620331469475374888273323043847686751578614634266844682407506992159863742983762588247651224545497538915989605546181495291851566824146195697463312516595373036264249239620266866967209430667602617191240734081529582263487775774570250462629719581604207971930380102494498246308546530370621076148828988630807201520316790384248425278473397314634055621360417646461512446410599502459973249551359707818470461470621315821633057976179567425748076000669856471128038069008370565832113718824752690833837070675928578637576153587663854813239886173908569792280531210067234546808353276180012892081565121080592620598980360962132622231813509720018193754165955636678637645744797711954551710992929303586428671118602742778216602725898686206452553277446437886033455971221890736509491837684405466002180998062981854282121113561037934160287973735161696951312062162515001450366954111513753442240833251731278465021392842082951135797703383882158293471057727299211882089804825088062991127332567973281500897843526810341439325716442823387286440181535818019541704173362932271133412395858967560248033132111716820484136119032242072399581155474957711916243973708475009421988059811032205651283612887655621673803373804267075943761132112600808804869054036054930358771277564492922145698506573177660829376316808230150008657704963190277437997920727202939042318648312184949509307480051970365784973011972044199173664120658094758089199332601010183668019034353687223563120206249183648766473290189773421248642946457264514857910206352726891671009772658567866887133177239870027973093044618851943264312277868008805859053179023646240661062076920421227628894347650658856570459568282566808725829889134880101692913234215829435162764394183419200065735887203878709839869806943918010213808725647776418064048509995490970027712508027599488168476841472565904508877016504117345205938232328253479753439132487654078076050270669802941088521238564744918436682963139790721553361447072288904885550483735933695235649838297538749303815347948156877865264099013440481621285572602693185916267535160336592341279783540257484091435119479130590176728606847374574579442264807700009414690705831165358363868753978556523006234140386189697101028889537095339732434670197563358020038587354187321988353225308687322745648105207892039843770542829053449592716565731294957058910834783926324801476644935910222497605987922634264297404762111435996873366145757861533214840870433621960557941777696508589390277616159556155908923632844444212847528686771940604339355728848412075769131717040290088043532238571883825044298622031832588612709431639448564199006812658951949764453006452158922228623824854557969635213186229990638271420100526324435604946989979350919550332759189257709664789229010908819457292742633562202574734660659120853949948453605198608633792536478936251974910107066692201919855333172141658801629901042753575819595404510687115843779174317603755372360439384228016911497965426421390237638531865762315750652772212236822219076067125976901413609020408511346852863343998182198724067853510286604075590646875387389609392082515290400689821616078095103201738737059595082805521794667261560495044059365270337021826378744882587165092825740855645229922161115388630975642962301064584097404979891491396399532013038867413521823690248349544517600984175846442622233759719305062103016777997018574194947283458461559922160157011087980505439236752664204408894965204805967638623116037227143344280386300781250399473825492949900061972742110259891813653439966169170200148770116567108909255253225842884834166897793022890601742121274845329354936660280560681125674949331997469830845675415030983908067726791139319019571574319592896783407704830924612667387493126461016441953244650672543804480171874774516605009495005122224295915941282981684118437032359644901740500885562767430030865459211843574107244393113250460760189999324212425567344226740453766753700238390314280137199944919660621673689078929805599402843694147556312339701688938776825077401152612910847829052853032677001938739991050831613797309477427314281776438017969005007061855452610674915920392046156367217931963334706142707972780696350415450831615362218370715019614015556648782937813712696269288113434213571399027297092582568974846501573353132218055130052047433775537070139095402727117232777087544157606248852418764883589753201904913613390651635106963971375145423953610074942295108156298308633751795553615852931097882343517148342823823192435158719240930638834985430409760837290233726459045250863297622224741172162258116705082529852667487413251924011916406344743436426105166109957427651392781869992614712359515339902639995811638196689898312383977327973428621233455589294420590865021909096824000114564896099945112371207586760894305039710561453795289745918005960069742210293139381430206725212857951082916959491976580547992817934119649390722629727806507207635548411072955331659185378260732612424627955119483824355578018611086195891565957653576116837794413893777229120583928618535047643443348022611283279849408665198579092373390879819959921558813840427627275073485834958379368920253864280163965706210565764613823147081364260419998383880361062241138503658901916209111515605607558969835189993762977430675104443105078378513109121702773415297799749057758328684641366565940118436722062653560194959392305148169352934667850234234632893044354813317092685751037506621861866104950203998600572916492205938311026153507237515410072254436113436694529971847195926634737786937477667184046734918643425029877981776180945011773677355469644185262817668611434536402461758605431424416739609384302772645612734928261719060347866306493787528411663523963934955114013351041933345409661720825312638274670056535998387316766196864244733468627481045331001644796152319125200245594716705176569531374559924522203022765156540278637628192516022211794493012812019151439825505419648157582782919881818250758854424587914730209078978558619371967084091582374330776851024878089945405120919072920259380101298763663441255213245529853895576442323388754916121695578123123971922462834267609917470367035268785856118354095409259909242580849332562189899308098427150693264849490969091206398362979442246315329736148858831440078001299661906202690618237096942997253114384886127461172974452433511100860817552965483055461071022414858992253631077013370256149071022639877801050464103984230847985278666501452218786535728410243759236851494915378416359121011865060986302634588024057345321723375754386589198998402027131656981201978897851658891402205426418553166088168153436162192277075694960415294889234604451652027036833187541240788654231008321037260113768615895773024010527100210737996007483939655943215654529044553092798965050105583431796095985863979715591652468176845183184454122194134233954986994275867736621415880073414862370679773473844843587498132949227726900762144390651628739455726945869215583077881406325390207241211532667238666191983564411411437059551111170710193600764939090410902028659460863877133151210092495554322830844706252748352314273848611115787405485554795069323425996436157939894007778690209701876226875787012722316356491276681825897692732022320463476291579821263857012242483808638809116062439035129969607694188010237445920421157997260988304510280995957120247033564944007913615599907349074766168424786056011223689267902002108492583376194904267223544428311427514884452754555200063636364742735613457608016679187671642309041516181431423252257283540226680143176295393873765310253970299543084470197132165389468030984988137761463988538510930036179623716574088336448445101224903159873203143894737441460733826731778117827162511067758213672828254447124788933707415819736701784714759429798526605356301734147187185997814961938203381098737547072201621500479287333585982488197527880081832327066378487339155375949056205686706596336728412612605069446883617462597676516416040281437117912915732220734970282052451820969169052728888915753848269561101506787625124524401521355904527527803906735264893376769752834998852031053294556343109860677436464165977676879715785102482705717044443894023685410435914156757414865493294919096674734244070586290837158070210612938209328628445430807839551608765845278853982416242069892568999750473577734969872503426364553851011032759573804312691541652650579005126252208068222218675777031824788641603456408811211642591742683150927161747543145894259002977205219751547294275587005950579428526107388268669636529805117438532665498948283336902578696269657350921471474502557794775111985266629106391126840157393716535564122754209744251020681862936521577115168012193386627477125740843334101738116865287323451356777824058748761534495644661985500099894827542601941951098697255720061352314360041481585775664105389643197046370638691705797173128840069951129339679433380803495644465114562385766750768837567635564920134303741805257321784083610391169317396733898395662758732098701786517520716136713282680242900487385771549790089902956296270486953951230624855769639274658212234733227325476643149719843639148891498596438321522616694677037412520339112365641688151744028476107656393287829092984955203328526709530733703263689688895613308918284162762205623684244153055363218747817188576646517206057317790389967803499560247907885327956343197974488337705749698652390067447659683218408969265531426742868655722229684193308367881843614436189055802233434338687080704341685563936965822168356193563604837344066830284141642134439797712513312893525042978273958085750178093388247104317000292379128950745249396337117115162249899729654348620294566614416994589721490492615098157780733754496899972788260400124405842879048628293381169933432240336478761820792612242732517773680825999369553371303049376013490298757443948188668847317806022598921374534458268884665793879155573269717169449856920735007192412867093479949570534942784451021823785757884388677675375090919688301134129010290396337447364267116610781505484010032158410642956792118063879951234471986756373967934539344811252732030612504469685586324255946282040152865162543601143937982622411508886709980171702361825073272080335043851349833148227623813416525202983812776965139275220487486021189060486161250955825817614688363629352330784125087058575148384327941150620624729837496875073550105738850482551815126489056605259327740336915155553797380101510595000152315162269706238562435558171739326880478046096596590802157939739776701121566445680798465156000143083215610921369266093395374250437144696155878458273641937269102530447007736204308061636322237440714814474915939975866729002822257343165995324776208805199155909428999225849225790561083849163573323078229095483764219710335632344854063673592322430227757810534332001196485400867243978916492897528631471101162469443138511424601478906817544440101503355222696314162074842803225097178466359344891660158626906440677999553140972292357841306591764090354105491378063441771225561958517221214629241354609778645844536807729383938426461575395549388627993980195277000822445912551213854834566972195828066795017828477709511729626404017295820135825712586466143669917518455955352964403492649311876502760684743493501117428718406683805859713969236819863211555778571182398647249369845632540324485009006561167696516304203202130661659623208453634282478970845466532479665687076408429727228785279256218539194846476043763165773219794265128075887015219608367125088252112232645564556778644473667745639108463563325699126947066715018357261356672702215558754723885314295290939721272742777259897411180929145467304998150955861693302667641884083960507818179998524018346797020146848554549555368180505600397862170614703022292012581368258859401318058764275118137418924864008292715799289127546125709687689297086187966408340520414208847110662972479298322777882958231569011318872075205475148565309547668621919413884349339072416234148174954653656378346674858649724090516425235928581283662330943634319005114045824267186907066612137477060136601698954313567184582103048656393384403361226978850020393552309191850308236623830781407818205836076696062306172903629181107677778854547663173672318852688217650344544074463814266519529890272330164167321137964900432333993300139549991608180475767479608465697443972965738818955098134672926851190896714166849202835681692887165765244494839776594913058951222110662058076920320031078199876411942080394636487961693587760219411366571502100669658819059002049476886796430451756786530059227274935859604708488880044126076328517235477916310732023254855104656532748625814689684686999312900814090635487687973209851529784677994951960429669666624520986201151775033358302659287826466946826382888809079163440555579258126512571554795371564464753026249014341632115299573244774482336337209025812065866555843436364604499823797697732335980331730166932786450211215905202817536980361934773243265060539165333414418643352169765155220312369880218391291027425041196699401586059221209051844381056066069763215532520666045839068566547526365764287075003385367396299787437950160598913753120207585839852333202117306447433871055150645715044596853417757835461310515270195828229710699546742617577674640513524847565773718716131995704180157854444750426471306304626094992256097535904681080099023098600164918595661412606296331657935406694403988086695913540801287489787380679739970978078847499322199430454882533344865828209944120237258826658996232974422303293275043903364825424855384680938398329742268750913864699579087297145667537141564038212317899191164328776915147413705028798789241590207342254193006910264136558325135493035422846683862336541059742448918675243936713578662714043490045755335796512071185967347264720423520408277012433803858669071838741875211252700286205101008402881853842806975735406542735584742582908202458700677701036530620409728782546846934426349186917249918374749432122302832497338667145555916690037464857239300602590199400178717748918229391227078802310755692143239589529157423305402703325450749627964758455151456189743120200416405938429469564968865021694812676856595801809485706419284079163350741536792609023210698720806841848459985243262261811499957321678460401999684684512707994707198658848860190107577759424487311204598088077257243354422332324864893581984363584703303748238063583165913450737336577047074040776785524684161740233510396594219826221594248749077086570378087276833555536111884004761101640833794108633898572247161852956732104974446398472282863552611893630629022071113469727561529030523912314108269722999212586372703031958106341326302968508739710354739320546822332308145456612135801343569055735140453413067258077410206362907842075655171786853522260421517620761596717198635762505556252264437384124785248320263319099725713490011714241135381186172558385429408887092602635262000930672883658701833680574607232565887764590460941335865609566889733321664162151683325197221892588246087029434305722057112383130578844405187890768369420201035623746396020607859698624951733359459108823634679514950084465616026488060738144546356807606140144297125555750106771519201306012073384913746241120836901148533119428887148205617997168581795008685315554921688489309270697941848701870186078045787893991728379938628745932173351865353671873946050982250374764179771916346703038681594900320686812319597385719220965826222153898756645897062784273531277508219934431517798143566752703881277913374738349311496210247786794577298080585063511117518284728061921834435868209161197516331162562735737899548666181480189036490484985535962539206215417103829953708976284286793277897816162138713157165347711308067936494661975061078232723966207871573373149352257096197126428931374763125843686713673489797241053785000662028041909477175210216081139753989281728817469078822295926711244735917039947306455227129241673638746471146364501621275848259495097238001735653791434231868835532680722269407250170121825666890680865738966830044018289704772358465510518751902460817732009791346380035594541406264566718861199848917689387350424165734577023830635584844609492906774111678333254823282932677926634048234594558910209687409728534905037001782441577821331616706865567618758020152080713809542584385338530897414474212253228517943994322665237013478880641569706295964095843395744021872425137327076398581669222112891026725770437687059441505330325584195605181633630364369314169292523344220489612306940067755908071481357881487996906900887989978678546411677267947887555355422909341493296224062245327212606837716526992872702408147261334399948569356492051101674910801588968867622054572285752154450071660231202537108566382155435910958863762169863972455722852569849867243598325627155006589402945896963671174568058750979972288266971026527268934537413883957866709191384851043990961129634120346819692867900196090345104156024715522058147332071798420045282332837775467936206475666168432339638939039007818415169793956418428802322441905882353800530385383663547967127992376354317455382894512234884005945947875681384513625261833948688613851634968849135313282800432412758182870736144789341003321306151663435919597547215214228424228113022494071678875935590804822732670804382645262924553278396770089200319204985278954748271532697522862105101685642185134432105552722350286686876489116085107068225858296995454503384177843121324972109086398878469475189471713149198064311273906362824960322804261507732163548636262072737076657615706289053462084648020023907141344991896379904619778191280519518290383035651044098922224676923149768428000776325075040447143427534765881590862633965538457209640612224399232586384886636084725396909375480948559073608170783514734534129719693422350714013700193913254273973782251144835566457910949368499108176793519782203534590611847161927297717257672784172594835920848976444348134909554187448360463739933525458246592226849680078913830584077131746551198366155109915196057224227059946083660225656322231349054534229906804554577458780424709888637017110149182163436537352949612115714533159104531452572073230512778303154829064766863113690795009943909492282249633117581448373096031819908545468474378842835280018492345833131560613378301331275524451530852638265253600772151557880676766238302082165064512784363382376715614207959225054515158744149584476664290791448894948045116226779726592651328838229134024357024218497729095042062932349753146977332558113866122270254274429919095194229910667682352209399446099745724493698636486890152966861027793988922781812120643480818813083286187830207775335811241643899107082073426360221555106372789720831033339365364765233441532333601465121844001512855137237381966484633860926942514652019280136520902050080585417939419679769504123661920726420790041704429320052897759738030895463776239288582267781062055979141860414209937298661585670741202620525802451906378937509416721186280034092501662623488330104317202882917348456910408416302357255219265924730587891440963045974227310023618958268566042931316529786680523194113172924478181691069731147013626352093919058050348877474405434533020180430524617307680294883294703346341953694357881381155363064628117333877445241902249478821030907063160169336137917508277325806132502379957434232482050649247865467056681388439149123740175316140249990065252468338605649822006020805568786450370786376626284692584091416028485951491753330777633807104301764943959347143807880997885365435319870974567617781894831657746132934436849571736870788847620176167043181418248373677415330615616949319655677652598245583249832681579074884927078296855176510950198559587962407437248358693205579704639217085971093623819882826532011517583386526002212444432333863584110184030509393043151135479263598606390409536044987975103368011171141030813456435321682426606579585972463162625990335813541675169978642692399096345849143036227386164656545853262689664546057505426583922758437847554983538417458906774634050914087714061652008914785979560543326271432949737469460835190102112764407272003827994295018726986421092521151602194349450099160169395070627277004706253232942945457672974931153982073191613858135747365193843300820704393718594546974955217304731633626532718776085900509145092630438933260348186353225176908610329515547398620056363852454444643851115439852836771067845454431405468832818590920789518300571438970176682289161810631522748983207935104916397044463485492454014098398712389873515532367398289307411906425191756415187793793921267111594899968051099751953896258437792070061771706784544453022240682556643530802690393556178312161669951704911675304980512430949923605928718968146420005145777516086313832348578474901456076369291317326414081185848097397836333926764841986977381380493866842091560269310354997505044199095650096626581840898342706542429089454409982074523236121784677621360685874107889022062245723667954488170112144360929646628799316330858188494461134567929807251433381044814206316927987135108228914449716079051246034438569948354838137111043516457994584025556433488570584809796960503246513398970582381831340540002790032051123875335906102158943842488152502522902405853661800430980103945608606577812168233175694243160112102647098818092646668114165923094440480629599046733764956743306939323798824879661642657146081645223785434386045004687067881928408411321981947350384638236680633458320337234910571122411991765519521805310460324052257673366926334463863763134818960577868444067010825709468737711206361983487338196345023735801922327471125714735536665030498286747483725623137512888193569638145834891243625288666729504234839350924677260925081959121851146306974066765207885267063754428036036542966450194241383545946234066558343311416181386327715550022598689559309368457187885481122869184543346962765884433982641940394018569527941801423299458261882269861400913748558824052111295807060409139856795886259643596089875171083222399261161402889170240513132417851334085868974191689918547402138670979713741187793666392814404586224027817414274770955589560321093498523316431104406443366840900153250157729877330630888708881054689054456955130396456717969691899707234732033184757244059578233449706843654070588439001291443603266877762731975140880246395930705069169229852963426636987065456461018059235525108905786612184928407677218874446076100562778329506074041477568877303814280910157905399688951430035162833203570684361697035030535102980878593028593501656728255019450038307013170252940868472658818856493593607116643436894989206067603409993584825190566877193739157581447236745129067562830436024203135759596975249322828547453449062278399026633269353453531621008093436843446089131601471437066274877462752066373807016974076762646936072642428949670725099774818607026428706481766353044114145060467571502790285784630278131648723145894476627132305353373019290679718646912659653700341072820307180217181975980937825997151893921776189658649452480317256555251858928373920203603313867907897272236644154001620785590329213692607206157893087605833543384124878124662026813994036865182224044936039425070218288620366233782759912830175305108423492763361232109933086405645115420820959600855040288754118648477696267395654500637369500464243536645641085549465407722829514382821763464812695115624542015673550530207035266640616373332829504074871729609977816966176126261122830500169922729768044946534554813216583877450204354525129583608035452802786731660852149375201390723592039896186272510995049299169554756519225818611899383479900593080892318955661300570219262809775782883404632758786339453375714744117050384054293335981401041383522461348539403200798758396247860225792172711124104598937910077610220042062982664993474191928036819034083586443390906787153340556839759126133886038946866956708273906336181439772206838580871118915248081159363718706568465176096515054794352629153270188734635533395131781612212593693963522000627253687528499197896113126479116482461469955368386100101004661670245824889571770520193491445378904292935236145277742587901435288873396603541322521378832749208352668317938532044725615374708628793693697811560346930566800955556437885828469922592953348792829256741679571018648823613755006326997402490389995269327201463887019151001430085512764207916826309986707692453185072302553680330338178207027770938154819586987739964301204090216872753340181045944079590010166525080783328043671062391046525701588113555113436782511069175109943011374361414515224265124539425025224893707237704162455084721073163537247381218789504822218905398553345047496671837243593869186916515839465207320419438398436244102280671179896321081540419627945101124050428267223624191507098508573396850764245274258242673909137241175353714352081866425917865162759081885482054311859553646741440201164561601353194622642449457075722199468283213863907914125857448164400131253214911898270114404447029350643077398946671551517219140015035373668467862167148572010291161536106888967920606118938783330188570621421298856023753007466453517186026615580236950002122337577611493859573809965679679364117872942299082044842799346799083473072606432737521446482297413150392725854419609631667387944842739795242543362676841328402336406295187860728438086170165063565561598487213983167155469537396050836244018527872414632270612591422842459868675676610612034272124214434082122606563910348670104478150181014959252991641502298119181753860476332552564534927480819679157243281333935486048891824543970086672512272416995785834906359940743032894144845646860696779510739068022386319313074857143703315094051688314181077258770224677425188641109311090465223657148292581983674857169273412611166250218823511293631947437564806797363818538888021605391756029599449189436470085079666368878511605876003239920250620135658536591010223998888176583730113046509104945880720699890641605997096370456218736295659489151146417911248514179937295212603660077973099512055638002181430326831753994094317217090116110987936228164232221962115138468826241082352599221999637420816410939678870004303695435550855030462275913862157974029423488291337913760844983215430916117799964564504060411603711534440107067607757867315780042979563052510553166560362929742630683208882156600624504490286623242946355255493155349119504661825836985638111988813593901556124872670628185912798738618944140534284225094596862114916170126161777128451105415590872863306846855351113009940687496481774586425981320653094444483346843891550729514505948031389063584336919253859977819203546250426799228894793291889461838445937547421679589007635204903120582676413957158264653550868085027691050679846482248230338248274142023837039932284951294538506478175031453253126462440022541734363371489109384411443758463513095392711249762244178457080620804671937844712425070652005933920006306302737027663085864923874040133486136990093069714774400088910724320878470916207179301083344211176979352073442491746439935307401561408168802879098334334222878777331437274337651732330477742745228216419599985712527257416619519405594538937041477912774316701634540582825586475886808726218370486616200338167994929023711842888208393056278854498824009124376585148832087837991557583190904576097388197746699571704891253777004610973415021496994077533027547924417637063430785182825530145832292142438361137417525363076921505994878340883957849218603190833154071438721948711046470993752514647157292327743383778150343312660104615828163374933805123312532681018653159896630343020677405317411026731342223432729805541880314736750620556659129871227291462093394134826167594996030287417023737539411139697210143510898324911591724743623233923049413190750887300209082005443605184985673578285388077943016122537149370890927253878252214339799561596240289898181586937237988791626828938144765338763535913212087542582438832315047875739003888351444233764872710246422338409238721576274659888994063398883620995373645444192880146385504536435748443729929491280510403837060396203144581480135180635468890125267332401869154319060645392202711421977209292138094835673925130495899903352140418275084537968594559075163725422690435508000785450099874246767533721522671872192908932462788792198182691128728477246236491430009605704679664771941642511551317121309776581842528306437865911809752938876038744729821713477866869104907925447691474393031770540573768532343386537774950747141072108687848694126740918969466170290724589991553464365858222628223614873566056976544885929988516312221522197350105440675558588974474362887901209392425111165468113704774664164509728521821276607956369262306561120497001253314700070228144073381896503829931957644906400817552894035687792200255962957742776112257447358689245888583924404929655418553945959831866646469044488519002414735762301560187549059233928012873918674014820415190167199057607240957636008231398486122077281578613818780875116701729665243935521921220010609696216009745862536482772448337309157629347956822907990896876378376822809280816072609548090765752021776551689391818175170484305449908499785522822244108536614727756561581655711181309165630533967928059231214137577319958466856252635207454624538835031175669801200049901509417905249756677425253503979229812665670523342057738182376224558237600189599306725867833475433079846816736446193728918944672854849060540614941742786601617281862601142560863088908183831611668723384069171897181533126607228507879949748248564495896263718132362994464391607433233242943804215521403248556764084746672763421107702984910371545098643280167830228820168633869303673000724016756697304780006401493116652803328663181372442089600891106805436250678485019363896286054095062396329609837140041514857469731964302489087166895380740895901058459696711912175725930609488596801692721349896109778660369179458695427187273608133108919276974777133722052419162847100413715356311907160693251017864165417976088479565728044907668734245592757013593339691217910972808297577850882226995289590483085597494710588923401333189662436465828310550766890624672722705523886342149641100603908101517493189507379187154876724962941469404792836744014705788441292846891814332139510330335260694517851153886663833249368500034897598341613126122625013970336962036467092524821268456055389827054850811810961238408552235935120171395587080062691135394098011654160977487603841519732744832363315965465942705522035969977291950686277278585726066749428953993263970797458207049643021345143854799687792413426456457297645984979532223003029904550244072330405950442991582372137417467774734535131072593296589886100104610106974943977803447135322015497891786772216418715128408515510636586067687623088147638094848894415410556622609637055358161130956141879485557905747211457202679416854057642893366241944422268566901800915782571182011397075900778639275020827181148393421320114363899940469094371622631391764228674921111397052246416435159068170628017658632841224198500236072862059915398049739219193838770964181383846809955774129077252373549443849752625341825133229472296858062174410373049229202596361966196975468899409799694201090721410238988977811570639245244569729092541251963869035795285490499402300928873074278392549654949766852762956299614456431967763477964325997280991342203919548586866483588411718737902047966058712001078626173723822627113513382356747830534768171860469655954654312268138167018126101982091674009787835456529292319285103415516524975916734281023720083719855097149371640326073415703407320114697409108378630315776107195066814145936970389403255204046649723111284026230090472340206180850886585023100812794311434970502599653890828930293770040386548360557399807124165589075781557598392423344451044493491117911581744652498727253880218610107975528555979396214702427233401071062814081537001351100158744076533318230194713073088472608537029025799091391193875683123083937262156204404449763499405750133871648925094083356998237662096473037340381967646034837556455450744077618825499208161365747707904999538071676665515546847582774226409896563843516045822793866866016365769825304566995099575791412594724305649929997242798322866149272036710394616293902394096514550943122339449358326867604226707446698406985089002103357346764998837776634058833215048047395331611468697737855547220138781674071507574422838826081837665632747281956332639845122381171102703026122817649025572254429026445789303132733912035435033287065359840751489383023560412568343165251554614386778665336845454335761919257186851941855334509692809342126303613072868135712754773325873729199576877651635603869475375311076132753558011038232609324364128887099778809488623586273051785417123639050774498042694329208247443910682917908323580001665103000534617780722498609542364389948340205351598872976079849097392747530364982127202718523103203843697210245200611551416141027143973232292638520780781413746779097849677630078168644382402466166270062110557481979559835368590730936959819768429769400837610874617808079275101423201045739823326860092523450359971748879810012731115203187928081154011601437216787999616113882879759255448545279072874746706989361044006456547972857143691271315942238334288974377177331084218382976833372254714739876826101230318570203519357426431121375041390419753237779977358739011731483227787903381287713817862791474998843517039805073321709248974963414571910782830877948492455491862653505899853178967771724700035616965794240913824233785855926426035080347042122560860997869028637379700434173276465993101713223911447337799715269364444400988203518409326880645950201770815741949506581732137620715898094942625739095048666819997536111302215864980021450504702756357304288278067046756540656538567711735357493597872818912932480133170539709985199958866226901259778378684868383511752096781053157591824401489448168275551754251875577760550711510061495717843271093323727200666106651778054854659653892983933750179430075973540216695224687348148731911232051328473236879426943272818914234811645753888945280772193783197546611793729365221043918032243605322014821674283736253480980912858936276022532913226688432105089150557885972853381269364387265497979674569222970353743169427088993624146795363134664522474426751429328814737264128903202888479228964686921812248800239494010616796533457664947813130816837826464991156838542568396578804028600909902979588375663078608592251921959298318581337188247912082845312490030052097084444650656316027343334640496581177262469990502260111480596395509051373964159007633680146189736644625907645674025249297248872631704541691245177395831215932484157833554279254160466148129142409964249449045165395263151726724331243031619146026655506261272048582304947425242301199942141351428673990634397602903587306215416769235732863025767875663664913785968620313903318788975868484397211279797674777429503845927697843434470666113495984046645391380534888518413106477165116322215236689539269770369170186281850365097188541043054101534270855722760860538778752579942449505609734312616882963806307756393131221863650420621366865810548139330506288612717407850355546097680991122873618272131786904292024442972841131478240873359695156027813842518488067883957276039409945217250164035198107245665961876029303240865181216588180116063233069098669475176900020626091313718082715776125997558198995783962382076285348312677006817184752141094593810930166790792992264951596049298449760480588939125997920035613654962912452139328240249071965819023760798145719021239318509870897973255816603394612003714733297178930311496378631828973622620429982055964080462960441299902669710632962348418963393549669226024598810873056769723228699973172453547234824234158040867655701583850220165402723559087299343094436838890883482436679670436165306309121009179773516329940973249195757348959733941645765562755333830920822444084326975842697695409585110508115351767941075166617760173045316640617185529638029493231894498674766518100962380075368396915852863340161385499704430496463731517384438410896624361997291824184043883535745229729147144907123087002355411346467429255775519003424831934877295112164516715521673990675845400890137856050295562607657210865604655163740204405853455228112779737865164043268528419363308697818304707050635179096309738582759995058348395714390227589316527672435767538414056004575485581622248657801172559657070178767003161507246646473641700607929763095820057408691837584881192373442675088225709159605680315485300052430934477381560485724073590225608580883463202531283572405638219023439858801763151540109188476029314874585861089220616292387324684640038198846734311872505815592943909496962304916511472790703319110945796187317118777746001783955525886700885650841925113812957253734530893946638986179957713175641159155379614924540521548828574516821288869447054939566012762900541333875654408504971517351440831103860753797813464253967678878386078439766725162819771866502049493092919898479224267058436905341806596161674699572022098098075917512886754091157792504703766752892092688175805956351557772480940799365903745984284654021556657895461337446560995438176170316874392898616650607451011526967082615644344733794897449677073603050123534298305907409024073269344269945202683173970982657518184324591858112954632810830385699128336508730997406221519697084582791544874026212181003863919836497369031488998717072315052329637954546693110930533023236441399057146832414854417451765858346902793795973224316344892048414185239854298966904814044885990599578607080894239981779143061651085614357422323264227382531434926431334618120692345085809798094393338787311035296501960162534652480096109045574317280072995163917885694983382714478855368982597496144834441854319677557936288451740124846974501077008882529995242154968621802170932294314359651226597024381024804904366690647046311191525623445266766477839088574069087662485568957512522584866442865807210141811443468707064602343925071250995125459820768420014324900820747371958650407981703228385360699313579452705022387010614125129519550262677893859131173825952830964932211760160737076808744053183453864448830395623627334746823656885398952890661659833412012732277876821543671339562119371599422436144166915199244581746670873775160849771137621302631877349969376509571164056022721545312060415063436332252999574777980485525842671581641123964363444315885747236632506277632636264498571775125649591647366402250872479544484551732151345284262442795862363526958726242651089309502830778228867261434676275216236831981856374174925829855354236672399295580432294300244118837012301182591874843772675700480058360014087130440405864796598304269611346386826321703210870189962619891374588015963138948703612481205550542969994555495175945611764891736990758971093753391153545026561660596686320287579241281272929791798169644988616079722485011514274949839110442198518085392494760723111443515131848548923984747887977923548685021509765773877291512569253169811396799269155426289958663403308267856406946822438835062072500658387192631245435300062134206997469592619525624059143961105949908820134528849900640642122846979768128828227046640166426987281328862721715980801022057367352016874459933420868758795359285811224656396637371653218813619704945293219003676155943731355978456423552019125357304651324934308270348239740088953342462089902124767455114579657015989930928861911791909038324629659984531221335148093194371768589533711026483576606964566542754694480806327571551248223397496706912937106146752435629041166654305847660575834568326451464554980790288292516465215931170910753661562951203826160339854424866545647326543673946923818936575210580502700405441858221110799040013740216426174969574635599152951852287747025378588736003231104725054695354117913337538212814764883194259365624228014796195107347226430232482408252604473750900596007019782647380509343208155785620554757351436728419371109220896958091867125137787229643542457081084634327140236191783295690116363640653546486778909788461263473431526408464134520306297303551756228606535646825582054229447929521655256515132360262631129274762562422879846111861418872276924382374414661708226928974599122114173186910987616883258888829851634426938993003868672882337519054916442584541660024349851398769338203460686197380475899544607270808697380982588903736751577705696904052899009825483753061600656890490006262270326414207457732807563950695944177202331275471274569749047845992622895816472637744198188735829371496267037720133797270050279053840843153936675496499836761183673931595871569969824311666696591013986197432468196550075857009459091664236565535280933614116049919754168344853876826923221769284758498686351585404902131834282871497804952689403444001804093257539629930941007173816478002653644501574494682996266270651548843477419386679847045297246058332430771246825900913701150203151048504522294020735791833284784286037559588698815888817015516866223926434397062585277343078612583650623353975230537062055600146415537988108861711550461737205606027202730791510618753887543726611118623628684858173544740002761675869186798567237200713040963422149154136414915346758662118631409699484256417186037629527221709295726277514187410870148903130477805088085630574203107994499332813148435508159895678988842985122879507619343125103198643249948229609993112842414890845902109758422852384231462098059369844144236264475435841573561325621524626556106641707027378674485164158628534779676910973344558823073545269464288379727826092975257048367314797324600365515318854686447318962712918226094960617119315474238462425999819780501469968520049687798296416325653503347756776860194456500372471687792685944732200724429821725043746824016753680558690001506575997176272661191750895947186584705164201490967403485729264901607005269040137682353904814164618569646857648952125346166509372017725828162127644167224425947819668676500226825872530501361724238237103804928667682421983011804156692053925891974758523691115713059019069526690218608653285110417451482863379185342332480414790652665809144504831540420118903815127767567420652943731247308279726526195476396864864425561782005312561548400541265737081737054282211652000720264293023802167608321659916135343680330482199722278727930060946220943825254637434118287752382625491785712600776213354639137871453097246739505406397798273815671056116490346954067578987976498386147841738612568109513048491126948251704483119803878635422580342894283652316941847170299214020959088459670227424004078163357193690846134195361384964212528344376447522833349276850323602263514448738290463355853586037512855051861267074560327141000392285397282243776189094965715001417721298439129959491154759003103772295676930678812497679268786389455076320452612994013461972973554927594744199392254655673903352664658414775646998990096156565184284360630042466210837879629974088777618913479373021196950539404736241530464774218653085108634774308304103924986842177177593638805365207570315613279659268684656977738061988236391699512560386390355833591746998809398721243470767431749965470062845462963248780842005798722997237071238634130311266146856325144289279797349089112647690773711914943080648248772846097210323213346525545791290256357220383101731096239418430045396757704003119905672288261590326128337652159643381616977817288371119307125419291859193814336982139987599775062071672536901414774353665532020707887012813897064045752451046562702146029106917909091731193705893517239298524671250832273405394535598327965063927761639833970825818697987253528794165746588556892048550619556533967066576853682421689363184399284823920206946925029706565905065532189081086817632063480379287276529008927375586541055379297098032559141152969022743369333061061706299643433618879952837217912535726689055480778436798768018768671174524576116054052746418441516969230138111300199812410759615673726531429723256111525744355752833719352790219825544929499403835709121115381630564423600769108780588770662903025381039040579493281400898645999748128991919045094912348484802927332565354520065809518121552057350293056186183522305538678841118449036800373477466172722933558934449077198652451870182686100096578409711053112693447229966692517000664195318335595917530979044191973025249144815200514329475232478155033801706507569310314125034717855972085581787933185731836024004646919911528270253275476972655603559126522062349352375510994098352205278460798058608922512415644018212086747384564099604510613753625236109283190485246694492544105810940170274936809164664217585363935155707152768935512532426686336203047263263941769881805690427565261951268051720768485299060551396911151353199485788899850847094331089633977340608406405188196426390118003449118439579849726692295909998622724588791009145644047140517276210785637515704855002027087075909805736877964483757504358731141813475410509979110131506575989564941566730574493025003686830924925776492154406948164830493339915853617051183452622194888160279595776779204718456518116804295779198299142154301865768419542264387326192741936690792440006336594220670137589451940572445276961850662893380745616062803809943803350392777058909384356041995846074963229542639079868535187337489117064976521670191083176133482151847134478151629302923953805647128731278528101755682992591445042680829669082276538610240859121823430464962526969623805177249321440615139256207811931269034252902207673614847853852224972406911590442031901443707667173219770013294519571464145666593735219144347648749586303421881899425466939559629708614791050325490054129153768917406878666006919724545744470575918330450894587181378256531951274373080323385048743728442845997464967913129979377211951639204926049322716194642731214464090712066072534870190902768208186929092647164538785506124364902477293117664264389219793724091014013455210511287916607524760700735010877964942376232285835201902939969949811061226622678685269825691460705991841980246003391270362636535343639535395749689550966432475718556388794444283056315641166470732380949516216823354122488049734728371811857510639460256034743729872567277394556135167773604845359724182459388702375380350120052031695961773503701860670921277218718652473415016698733635654341415186843045511752995055609008436707964218204561777387506869583134371665662232214579626269229564257327999474039186134543370235751460753238511697597802160134719167166388424613101110557451206520080967332170214061934036235660421430408936113984677303215271176864334886601305151779961081368521114770559595625141188530188392069388128290210658897075531622510777032289554684208299416831553732607991267285947176049265519772976131449602111221079251805726914465979045564147476855620137054055696477677518870871193554791656917858547305620455354111476982671867446063448344244477514085517882508844150426549820546370208256998472447487795328905985289053725856120334845696123515464005150947272595812525155598450880462552087613903014710907938615324247061545585641055702447351174590949485507515001340929313752851991325098428901481178794215522846887907614379099530436457587257725755040539389621683586065820235444308671496533761262426524583699348502168803238079200908576246762096707259080074870933721086291966800143857665682076041970297916608708120265473254381470656806814741706079902501854871214259641125698372032979195169533578856124565073048033856810821576110583679020344497325751872520131409953057096916868451467069940915495599918495704983431131296276388100970417924413796157938437792161236234060057236515473731676976331379854382518117800391304418058729638340383767968429681186140423961731983026459175494157034963954048182348121897046352656702750511223580635163669931514077378525096823579806719765288028167103258327689741938722576677096325527395782944374204445762440352878009837518655790362199082566702648342000374716170501983555383875608895156606144383616649062417600060183177080014822571855858023024352839657183491836278070570676318205630039144064423679472911590040012514393184214521392817138478650844350756647390551524884451233708583435885328711803381856162704460762697547251856605732450838503626153845127190379734254489329075111649891757285368840308719590310520432770341426631506957892118349850203456004677801966037546139691781821230744223609740641682822032625121580855559820914138160286088778140459619884653514418744126211970856193542413944352550161324606872524235991613602921461729592063368435746881722414551176432445974005302829005844613853221733191721347700783340672028058837680364911093612106328759149781850769518829286002709077575246499743367781229923301779820362865842267975726452513985874244566098660125518017907563763142082176145844960156079608293098602726487646799555552440225308116851063632155277322275374993253019740474943879764577121447257836853655091858755657925479100939237643365157067450859853167846265894559808920763039628720015015135137644366346892338224074610232676291258749587436360585591183436345490306550462629888857519440586735982137040708078172446838278467193361250617702575045288931384998759540556874912669725624646505674994093948649682148393183721935110899445089391582436009202868361267066972125868716651102977396692482998944919545557327339545183305358822548894191674248477139447411875669255197506243294919892931557759713489940358815784708293392571665179847677833628020493738713781346659358022772141840498890138578552902183938585557165167186475987082062507681921848352759860911555743346216779324076511156722390798038167395936546707939382227076886449979663791177159025443815864355844438021983868274856998704984084576993123346428253265425094777038080284378339289144119256950877023194087429643260226062628965616675920664120752605839480723143207702895274277452966859463922833575447744356607254926602576034091544216036624619403019693042644132394876370826745355405563173556777969136142199201435544943365649366076588837669929770996799732914813307888853890558281168502683239135773828531377796198272491458683152543829370302856179663958962162621803463780932908932805492798469446223993085681219617723596985532445224877051971057888108846394215110038348921609908757618565885976949591381916520393759045732532235541803487825103388431203661208336800580126861089550699014411013568855874752307331580845213628297264148575975193107108243107865735897293734471782523153876035888399703642907790549640926799261962287482163330993475784532116284144847341772860913529916052530502697968673716064599207608305779936216276932608145046781888058784168750399238899737992626608930151156034496010179029383914887751421479260795209527945082871250224098084855509894767748103528420159197923854798158370544289959042281257542882100816983761175292375844378051419358843164762519274825643758070581064636418843653207538026142490405519816000406022990259249156793170684076054492603524117989528734848685341026758015704219578523322820803448167880196241522294807051052857595693830169043928367452964225239502642309068621004193283396511358311472765622484845456070919765920372598208505075331020317571841812911887990508094048538140476843879767567650695368769430641212436008497438461818271042019604682772127852763567227448069220831747782577216968979116370373093696660003084564113085768539426460095549338297307965339023201887657859380873960082729815216950720081653782865389865184109271370278192300846809272976409745417785593441916469952229112893809252159000749955810772095293590484037463871276138944534253231280911117602540496998404315383133453297685360495844903601688374861098308707616085632885343064517420828879357949600109990162126896685898767797060351307790776748889638951245092703725315109302374823397159394281017971224249148648812407798680317002048340984926889930618203448619148278161861708414324343221295498445969117591747213085876253538235170263929651163162261466924478718654235348269418009762606799118028571323460334043983194836109494665790857203939977860288333295399284726720847536403012722061719237707772786548889315454439883637024785331679121696147258906379784978794470564316040827208183240528617989580253320309532469827079000528459697140230699704086610066215001358920767644955155531207920790240392736486399775981515310153379469423203254492152017665915244504625090048689760384331647805254801417153760620731895915707151269876795643864796093281529854550663007977459079128112080132051281681325683716563014753239672650839827519114920123826122457225251662063525885778302427638790187468487581580816915063307698804330351345273219148423000300490117990349156344566665621444824620531130890704981947230963031631411464451312715564844567967701030543656152660383768871153502435488732079763589555519473825750324913575613660713082180297759675970439521096570356037529030969978127102887453648975911713134700553831019191004468292265301783074956756284325842866661486003029728585738495746081485420052081924089857392341181425763901453275043131212068803878837064449800423663290841970590659559791012428338320433661831164801227367787558938351188020938438668382083387085214651336019616727898340667221461410960767130825866259611155259294829337963721475591992082930883809875865653637877348870228512793457920435285029902756984661264969483405507031324529428171282576914686643328169020169345173105245649767796673374436648965309662371134076977778018210368159964466438811089769035606380264406377416761384439876687979702400329426598472727915624272388170250886995654498125941371214008082069310658657336229481505536174831697223089296813176823995543989337321611503911903831268623966680438243254648801443221009886479364770722412780571335860901701800820929367831640863367878916502956403117872289988369404590774679745022637923040818116711570032938554822056572031733089722707636622840375619751302113633663074330291725636134806511872067325013824003872603898844089173609399133854694711602939154714062736878477233869368351136408431830843431343727951842166974377136230265196613777911715808870112311793178527732780569290025020860204490633820074626948609741230952738146046135114340080299354424600838553874394413263555164316138160933778715097355723115794871908076532916163204341098145972185053788730706783726935515699389872367362203674331234766524377212650387779549595026849253899792638318799624145468051363979035134023330452468946659747293275325750319874799329138028399422634398761004211904336236987675580266652633442315722448773286056271263725926494259172300172658565240779734399575750372596648033659506222963317283897295300504331871441149364917025889901297592274397628905575624681092810274517510482432797196712455714111888279737243288612602845566816279548509453344732769079036742378333321681354746594658902311299485052782245389233062412390844066755304614668552436661479437440347669088272008989994148718522387662281541869520341221422321931953264335716812568529766847791449018038930167426089612290224222131333885375905141555442869711864575652432524080880350154381712614495669147242930629924434711891222090861928528049058943451281451606779469073386278546161580841231459897627288776200136265221075817731296419862418960333884631642314320869452247046644285257930840628031712398096089320036858827369185741164512289891123834902969115270538824059372498133791245735865713776474938941062910705849901286656038836816422775877137668454792265264379733426913770565045460782424517096560771708524021264371736602002242794295123408224560862523507715094391936903350752106176129076529347656388776084676470461174955251960724319656074590389072963878858841199331448958162855900221215027494671492310917593393408821162358601465619416741536806895642626431408416457085050240442524723044091106113722096643494811729889956462464035554989152304922484072522448328630802804589638817258423327644702159714680430320764971735480245390842987264966917822911235219809160678805552640917006862549302479544324297753348440183517294596009767183347948283865175803007478208252140342744859380233817452221715552307728115128372157930057515027619209303015163288496763682501686044199586373812747288991124773823652630948530253275938228427888303119686792111395080122664104437122414152783410548021966559092757437710750773661183444796768678309852376749597065866215234983120092689794195719102116383251231039380550502552503935225953174694802120516622737474344332179966245677382562333468913038805429002317345650688394546866271069823484331595003490582325304616023375116151604119157256742179306796932293204593193305736332048776612140662081844474062731824292786561832933087503306808483316614816371447802515245037897846051646821935821574967644849172566404946160914731775227330160005925793997185386214320756381528139878473184352378198972803147193396197792618485591804189792833464863669352885612527004739027512310547251122586862668623473097255326817905029315451148052452550814125433664246028475536712121859548819307277685004490913727358053952264478232867946128317207230394114478889400581989514597213027565980859019204626213316585857581239486690920368420137105678622839067166358483468204913137067702876090499694571409934617219185929412299002932842768853991421619546808878582386660656756038186198285390958541248077078471676785161840808186601289353773223081035521740972767526376283890823926130860967301028030021091371508275309920054817392691899342924335409188100222063002429047019487593222596523931294519543888958965578867875530191803349865027485612531292620145302132469832201854092155958643259282871411863387660955498872459453994918814096710560712527957939141412912890202048734505762726169853845572468188343612339238816376363645439189945873408321461103566969877139564973342679185870554068378203914790853040130763274367460275512508028755975879292636039089424085936630919430332863515385333262003011738246753391681899269845609996983725498056224237738631436259297971997310469260632536862475309008714672119158973331965385786126115503386628529556833911546559843903526110246161132868692003058436986379564175227268364914521657156764006028569093762640497504334695845290473016461252711663872425062465652102662937585526798318399620455491663718230261443169813398992444654263440642308513447151703271032219150847431313967982082293260869278195006349507183678596644486516144463050360989285322569542469599157044788437429716188627268246165389049856620856673449558337949961990426127223928429451289332867736071775305942284833590795857721159592393673767475474513011417250712572212182261250373171216560401640046374046670929676829851528202029312911194741592736749928025156046317072088942117963404426988742043671303655355415794525500550435413905217485900415880002071113414645962491567419709866886279545802447924989851450209463527519639397837461613910475303640029398160835503210774816597745032015982726114558925705360481103921761404257473049789061968402384804927964718593874962856089540349260397845856463981348117915679138469286594688011459722583175261255989561642256069775762777532186572613706356505490018516243065279017183249819398077566866992656635362573487130634762995330092513339871162768597346332838361079289787777260974322274218562797239213368113958616059818291215447085238461391265007755565458151841348404398584288343996861836151916977954668613910718722592275619719438247620641810198388784258833870922059759215208424753249948847265666044590680420434431934900524197720257196272130034911826056488867882591340891973298555946725476173026679742292551044922542279554129204606693523456650366688549846659796749563274682492370706081285850785086646056252875179947606576504802272682053410537402949311885765383423628353149937119670062491061411130793386846160996904808636463880618644856204216538254186639179913997259841027462148501691667905333360926346390383104356972697972137189781751316645143205037422771464059598809184341812074701881038500460273310818761407986860746592533100265399710594980774306032534214393144860811732937762684758866723254692187247032286429408270191715207174048570412634235324689453931481552059211500058223730113334045144046468344165112340214416702754632481745491847737859242320754184208822822934250413743571651047387987056827122531583079751262353873060486468092306129951992047771880494307529538096377975094560194247780161961351977060554452143228275314478523440677420564800334550024021784136923517301953828352375254244051991694489670484094549409348572033838913800779837874876983561549915805188447029184079955783897492179069679161728472880608963140986462226474933671955649158452736405527560134900794478797583305354049211438247151425828622080073723138682664216364937166042991045804187268522931134570069427438110787247128965162011576182452238683687615861332594653225006271570738543198980000078935420727446694955937452814775679203050789201269522345686360498314963557393137847375377496405501720291122910467985090931186026955831781112170556371657106950871593339888741093078432621745300844664470764443113676811564524588185590406973374527316037589705516924231715092130321120592412826099833465386743536043357578170338280175771619064748205372744629107384491025325293604076053268636617114235868983006392088669492972169686359732614088596943306474878245918228130272623936345854422940731847293204368988826907402354867664553894931133718705031138787503778595147755566392141107988467163214828736979616613898773780159421666465189178201852398156672929638248018243547240833902587577147989205536479120244502308378093514486132022182509550596614558289200112341648783253112775672023374773790385461240901727330017171595314219136755107759705510538091288609183553596212489517983983858663992859471659199582577673092409229595711460785197898923598858579664642650899613312296862420353675160448147522472435860075807677447731018676842012159532686712594480582909415836671838589579871674613599989132521519600180311859854547698726708966073484069144914340050316638785394519498354151668467061173641036753845223427759544515820423694745742369261509644366992200915800123819505729593132662510085809025780941918219894338321026310799591159034016775317555399639417336784760594301440619460817021657524100042801787739079576444796050258535926198562441630381217564048731870332802112233007804068964866893989331779265669835028899306104511859886684988521549150673552790016288243369934161301342903404817334014998089603544873885021130968336966333888634012493040384280562683433066630210454124441223932190959277621111102223581939017415320883885210781430002159359025539559609632201740562636871104235573759641201742850939077924159181684184156378663423933581587261840244122866574993996207841764676047320056877311046792410857258115258445115728844308162991315127977784047713140941995741634715434913739570530874574553423067265455774675546196882410903799732014196186844024413141471703150916025043080710507525464303546022223007325976119149071748367483971729402944513397562864477711905721208970865972876884775271458391804906388085162316201707130076865565911833173058438291167397849081728793956315485532926625749328647958550328193600390984613719109578432968264125918281321741343539450120445541186375180475191363060426236899991029252058303741872712424902549445222529978457939623333471187997683350211441079251295914466145745911092377883650538585071657389959206530530523485420833409489182288332092391624269428062026692200796651977622835273711022512777612647400465856760456541190514431416639919608897077805146267718533799446925988364548990880869581371614238581804754050977114745659012824991299531427293927079156177494794240926891606743145962241042089366365555158492167163419411275841922354946761431742591598756400011432084594918618103331663358825855782562755907990861230405354158282288198959921445943872940616812518345350887524509980436242865441083554898271285893823297950228565097525201665465916314332100440013128958128123516239869327083590247719842557465119499322627588584313829933175055107663166448119113388038807033068610143893441951555591137029982999656316598925264058899674235024283371574143345236188371851708455662417018738573423923928747827654656227585863979315002214949796832317025849628577438866023033504171152008290465074821429880749915169223737673806969100142995348366090562891203365580480447623992621123354696340406257815823321588160156708143829556696165204592723482709626664499441553711307857903224617017339774320096689443125392130476456642288359973917534467940199105039408214621517968213778889837992028823993009308828599786044048992335623961644438119048179475312990761427697609916874722536946987483575390132151995940281149710992204370624472359220285964742355507282068075367700959914161852234833203102154815745315093635398433895166282302028817656137824191353758536044087046174186203673234304611529131136859489204036518161203628823750577507075654424612228586563646987984388128447934640785069912697184525865197731592892784299378209108056346021379822935493175725931870710577241143180906336461229137464666518139586480417941723173895749276544936546120053931626550399539026512285676485656317667730328854985855620442118478937533342525519186648724204795091582094875118581588544844942826671376552517708522613085447661171679530679539033281907452271374258519388119120300708445359314416597342461969536271560045857078728335192558425119779406373113176128672871413850686661869837715813711764278426099059313810619431560756165171729593629004855321996512199027742799353146158582855408088513427341366940020077471896354653530896476487881094671221650963467186298760506977019808099977229300239181255703034152907216390964951072165100787328971471201643778080731735590827003189586098221434123922229483537614235371187270796299767494822924069088594446259212793836927191651751255794949661635072665148566378179229519225391184111994794265944576219861314394167403585123299507985528567117597365310661365789298395396609402452495572532283524329226359654550468740789308436291875211941981400896768072875226649984222668623896173160214410598442727582517393338773868904598221701983833143115695921630629545745127274161100789713427109654131391354489295023295293319043797483270497137852603887033845253328003633438025045758852876210282549893453600343229930493618272608588679644637649286885183173548416907742591672754287507163917245787714796996302691502413037017148556134666008447920995709230489676044792876322848931961375916534085656161025556315903301430509901792469335434880141863000638799258385394620145809639488197067329284929318780216503627164687154185064095846277155045807416325171796989953688700473926275580908305915459860501135447090024107956590192036461045785903352617805326459780238935186983180921993745119962767549560679356628857656850450822732083381615398547689349897193981899507913903988901442370289929520885035544670105214946821840997911175153612834823831467843069225749222450041971592603833065320858990078286431592977804975483385832983686812409151570757192625438268126498060344797405402240632779259865714183184319035653221739443580621300737837837688145784482298120885551477522000939126914688949791608179362041634540833997479116922353673363778486019940865395394977309054698955699257783026083412094856347885522098180006211792145124657682349996070542399945568204000884202440825379024496784760457073898936105401329489710337269695843157696895449989768770083382006429121617130523885561523924496039404971277697103305420442928599632213710147772380585176561732007477106533840479870196135091110569287051614120685591458292861457645471229317287078375262137560984323161739005337133573053918453477568264455259183135922984321233932776725868471996238899286472809994084909901005920876393139125134158856348372845350760155205505902114665925056818112890830773725081125765327919233716420227475044762185884318738475923895450392053977837113249630844459093392072485017796324561651450772625455342596417473826456460267325740691726582149714117942015315427074726219012787580106126629908326304146771972893611798557733069125001352106082667120362229956342733820153242155750143547862085643588319406126494665488792765130234742560262028045841359549695917544567532098555282993137317070479502887812076339554044807790617471153429041504897303724307248870095944158785100406464763931427956660263865122300818218617283734725713701984531839427227234276463269355789658908597203702196011814346813060341641082696929710269583103797469984119879909597909629344103386310663033728485008399989613575035914089536494536653893167702122383748487904581038572837954115574265541843211993630994926307638477607061792126567299025107337103111375724949426561334107342910128949394674735235693753293779778207367919022495617405695578678462787434688928562940698681536415421304819831018281102970419903080481981299927882377170530227182372704845408825105850198975176458577783190391789314249631460597026187768758696946330138780790159049935510296162496166565605731126808634100363658025951428497116041768147069855011282932854594269069081456046283468991936204532379527753119653239927828418630204599072404249947461358967029500249460950236783046119177211453785504011972300442515218122527759189914460411156471292729669607624324142437993188116958548822175678141885327080167231878863105272880213240805522570509464221606352223339572483575269004440437612763138795716652812292865792094852547299748504859660614547600665505751370290295843047914625160708434492911777567955026064018163242639322805105414829839329146427065310218058766204840927316744825694691273428124261201767681118637691404175303073721465987663991747792521191351040977406932799517627496570942632263421193303567875849427083153225758116174620200365906429056555776484681077821251708293851841343169252365544020046909655409804489969536590927713800971989062043102514124836170227547528554880371559165155329340623394197022389390712808164671199291658080439231252579910000939504722071997024239535153634505722462982781224206529835553635306452971673966596792180437169359446782028094989014163660818443213878753576254326800044377735586754090737794499981227136266056441734455428182807136478441948003859878932921984209454953678391253292431879363655519433614841355950540603495872032951681961533783601956677211799792128090738381885973100816123286527036789516474688895755648783000109868334915575805936081657329803402214250991046653648761021109237425325878904088037709867086325392953966680666083664634956464854254722789819687622069796438165371982755575570228861318801003774992081694258758838367991026108225652282825094744543842792923364879627190761743425966706946516370206026729329006796910051745096008688527780684740584074689253069286560762648876039740526670412825236971381643294440921628172001836203496048321931578364497639107014396717893634868317810307402748852178923860075417723874517751974270050731493392982872461214672405234506793766442772859332693437888417606697381253768920408033764721476981567812773878540985233601077763963190133746319513302130337171734328254239252003459236519013005343606115644216900151809602787876965289706215749883315051672718662552649892345951057249031685738990470592866409319826827697641256362360240759366790095996302138489564579026553908283328357533074916571950752329204367018589244573710376825196743520213141942275227727006325054505552692375102537318534602149136716916590590818061241013168068685719191430288827536583530813576791636500417268328303965694027958402949197520832435671044775338613826267835643298561851048983161811560823634715980439555040510995039217924109096833404117555048015012066834411050785888336416963273048996742101030788459788633004133266030082493360444102783044035095237129266099766959953012338071898759251914425285035655974986568855712158349733733506775028713218942445263522070623248053097349259736130498340543546073946231018974072530037764829524314591385694434128791832793873856893466382561761957369693579290333706246594661308066627016287497003938074056712772639050882043927275909982323459777399298124314419733077139231444117980407899196296187784019785416006733162137926238395951472515309097718902266632114622792256184113654534534348970913473420611418004697758254718443418103782536353357628102372083937135150160017208097998312746293111749778551151279878389476376436287368157856509812201508420285543824951825897166759793206700146155542620013991790498672663163928686461189893880450061282463196556245769470325718005933722288244815427860106630058116135819218437701766098464290985089673333631066451048956406317318972462551873696411580708852375353712871390914454596829154822677518538486523861219068405778847391013023230532037101187049327935395266756636615025983967048388575440359657374786383829231445961887505185309006770219171125935615361901000936461401636402205547933963070980897359194148100028636647112152398593077779988071290347501683905196052290001678068721639055221124175090862180879299085030303837289849014402355680746717544369630911694424576251842291936634266657612822567231827198679052829189697585239964328496591779104593618062241506617943315473022296987773649389784261992750505648190976738924204732495619295762905349919495659143466284731999226707182838212983548248504615339971578489960321729160477185581853216848945070586547139742698172737377021292074466146901873407452139325779220739175945595527787244403241678258408708136221434091769376243935638418422313934960147765485999839315880408021605066299183744511308696748696911031966701908543673900217109244737791143777773825498951173720347295719789191264016652769451811579003304503135982147073640543763284466019964694805708283050984477778540318944427924513829019344761444087340093874495711412626294614705161885855428703280388091363567167199921625401823258867504736755121612130598537008755184011983330150447980861036673169943149084196583037370708053739072443097615382140937343200616417836238352943163305800743536997723015429604634190115469801468206086178746853130347439803681662130942481753079057747046349427095438858737328342578687868291247884025055693564608171825140134586612936449936472215039710860358928207868706294249381455136916260096191832368306409389996053676977361417822516139493729930878659422567606233991367428577960728343002895102062574795321930213021750285438776807662895298015325322168298844724565086142950547416509464513971008185617404159097474001294316708744121217527206246753946445941135984763592304579523439275075306446843317386105355485446891605758738564277574352936531222743430604969862930171013242134658437631103868067040119670104608906361261483529287715226776948888711433772267303321336145771868331817584511592611748192379864728956993198828362446538537711366341129399213952398322811877059051517379754853990389022583877355858607050284373888024180063190472197782147294373856605731367977895735693125258478664504341786636955790588936107433629991500275836266329377274611668924998255568920495102300514290414326677474783187760551746815162125805048760667757541737071163384287536467027178353370846700438597008335683637211935992822416398802808441625751926257500406353674187554507189757708551882767291915692128849232674527774556583489851674141446277942665016425235676723375172400064984706457681312520896432931990857330990020187849305123566642272567959469295166485428089011887781699820476886141059063462895186503687369075196748443867893981541631370160366228743126483485365849415017052526612677549001523027791165998200889737488278037298571184965773380448046685958112103365759266501664579747480868452637242422488939504840556149721645195486343825144301820312535033105803313219104725735107806093961885002405823413238986920191555899347350164859956511119711034082672290680420346997075930526945661964203890210094203819102629837943764897428294003662803990014002088859433553075764413870134774497178882726637315958761238552834116500662967609894226365301005327574035084860342292535089842325447327661531173051848219172182148871550431998574034142175798501644475233904158048122225925555099377005009816242531421971527824180351822923141691557624005699183220642312618689307101814818151980110511058014135775483962791087455554339492778420597990959055009606996914644730960663336858908029119713100278666853291776838310467371949529183214586377121471448321346037800136800702065659304417872352892673398942311110677885215514865320561336011872086629597959296873023521818213755558541981168973703491700657985259330485385270506273662239594686829105813180327377488109190858695926287570665397185979234084376309511541852467529775973900727727883931278074363906683225964702241999566265541094513669324799137066708740310100907106664366544641231172344695639612007437421222357477104158057062960262842057854571461360615881400744871199557048246976556135714748341764988493533299086720576209589687635290574361486624381386630262429993739599757064608394510229453031773729098794216974931726534385654044951799346001661485687032061323114033924422464867608751364945470736565738339743855095147806028922415523786943004177085414040075260183142879228093717531154101342371625693513339438190464737744706748045255606886437409351081790948714617106649800175957259335917016925450122448605688756586097342910646048900554226045912325513905803045847421484766370078985307985929756947830584441568099624186476485953602680493929612743336725771437608734660043681605068268061995906335479999265159520068607078742947168154180126431011180136041858045934245898693215793187185479704205616092342673114191761742077726277224455467840448836452067589755718619017873645698767458192011705724298428023141331400023208884596463033742126206527595225760816209632936580621599429520920992395003876351084176056769746871648695320891331805755008252957168528038021661874198898724506166632205571556240739296918108352660416829677687893023598056997119697309095855358212297225715701840206424545553014297057775162195490810106537239446105950572422582663288957174792643080961553311955602436944529742368090707015949624746154973990435613940514901374756802724049132241659727560352499029413913370378643284090211979844703402633143472220200684793328502173566064712822776192156380982681417099576936339798772732516845467729546906335433044133452172564090941708750700230811751955611332306899166712291067992339746110077335940673481549200365114773300660638143287044375489492008805544540311467723063168911711521513842453871064550652944526855235470011522430013847265157519535244890933586125518321656814707382281178973891780692913911778702617461244944524612467360715284266721817394277523729099292299128026184188391348048205666310156423821477052851850053133208840391050632726767474056897970203462448650941969986620629992598119940004624980545362716109490932612327433000018122753615836639625653945932188240295620158259207673912028020241988966167226356945244552492559832661486449558846876477429233023441608976942670880995705259053282992167871582816637521105709436196448396639615422126771555871884175698637447098869012199883039975416826055863077326852670147829408328412625355615479585361652131313446340778039475992793723331564487526674090087025738855312227066132125949354599702194781016539464597965882443920887119851001831130788901293918960075392035673926305684206683684334208042491293566108619678029999629262565205185139332690649257364385761967330670295772203706024668749583932192011799484647514351307093463400857870136995167975614910092903236295579490516328366242356556321109636314867617522719976078732711241597321286214730452701941767607628286904269521777536568668971629536042348416959278571855635706303069207292579394309892352511622809880746270782938221795689388907372587159436165313747147825234849391370038396717698644008852082605781461295772419762970355337208893914377415517747861369155700894791333907272002595624592406261537172401977577964034387338907985973786192826855052091014722034735811080929933594106850717757288342577690428606235708880961953065967617678390437347675544449482669642125905386338182539839216778660068414850985954748841710948952844544453227592122233796186052474711659008121518662025771199049347650633548013642219901748335396938424394620895159059036916795656193683805756369484220013302624706497818468705609596630877634942644788819185704448548245852753727158787483113977756960458393932796134691628875699539318943736289281093196608297870822396503090212386454259850133925709316896458854678813441311638352705598267647771771071695212132655683592669176174216564685821102675468708014448816392348554465627491232497544568904518612615607904771287310519670977545246105742670870529846512166251808613324820845062734901311951163417793218135261340038737000129979160600005383079745332117152838633973137727223219539814318832484142471854071171507165908460344244829064183604253508813476467772299842936200513544178346515233915682909858416466844585205470465680851529345867527607870478534763461400414826904737961487130175228057248010188407179882116440813027806551757285865706620495515049916831406009581949303139072163427966880349035638776895625812013637032627732153154813628777654946962530735435013330877786209179574960217559784600681403573131687900559777711844103123003976902367359196233663660313803635489403519707804830523202650468912605988627596749790358279307972287401791232889733323927103422852304831179833953105856642355899791119476978766062961370068604788175948186478932620753038807912064220648217576328360807824460010494121161540028237885553187275424713704160975330723433391479113074141562145232591045178288435467538249513971889023982424635448049437843319967035925732394513201578122719644079111392528739129048095392053947156358540879601772471084516900487980205969084191077290522579566933237964336460086522067424760638370486659816134935376979949915916373602980170874056264085030498109607293341809370093453633123521045208130044980107782313292377320086041515188747159168973759903276613596914463589632287213692953603014108270764261737088441716450950584481664341549961608924081807193130267884172743260799615530617412125548792750012073814435687052740296045105448782430395521327352932549657845374128167160314904617204695900334728988069942067875229588365183606590341570225773173755178490466893894604247534278216861041227629322298691769062743596958564900006060672982918293329620445170068941423085215719299824873447439721638747987961277102407228246372437408564199480290996392250072494433381778227222868208693331649561269638661881382565675435751989267557557039716722892478174168485958814778838840076874385716932611354244035162496782590554411297857288729716416175719315420423523700845391270581070293070946563348123726069546742465019324787756104353124707609963661259897088888421370132337543183310712294568263533387807201171161726224395379147525363820257438871725282992877711224791560065698949662728592557977253059828114870043527664140881782716150515622062579310192483658843787688951195748409225586678861328177058941874358929387602703875415049014031689393519109938868444478821147831854648583350720695072975499736596472991449648202619183392801853513274937390521702866983986619251018403214444944562574230540457903988552926086370655336316937429840569715841926773067193405973562319594174980997720833937086222166424436945223095803636533805651316797920035173517787392643690003331906723788773097705169896612522309781518082925269212731799516813250894240312876989891753442102069678885681915744267076975459602236321464899719750031135876928844673690275924625718375141526134013630698384208665845592622396544105842042606157913996028335308357029131324865764503621599188491543138850089878872948195167026866787256971778781215974916793965159427741548482081355290396732361397364456955768757813052164081023429547296533049046475268837783004503739816525202352291426997289185488873022514113569889434740195646147680042011635597761664942889455957278871803675405060030624269181760404551469522937970479477027307786906547688173955636359581629852205797126683629075602935233667313154759226459919342709333404217864177324224024765227033188444883620710174843220079038212272468244958555266362679172101150893367607397768063580912755221143318626094535894622891199813251412304814291056503573696802860301143998891554138854210337905227435784962036656247504884910444228250356334017296568398396248745496634417973851753041118263120558275841916129789051787397769408081888322592139227154492514896669706673482254469780945579468763586348637759013846650890802342293673734996267339745972765212864790924334473282157847094812361917835023656652078351785877604087420869748701708514047470189056727827043153619651700678282416728707246194630698809554526602178396627798244374811014214655291190988701777825401968803859892096829384974454344333211878162003664368978458928034711836941883231745516865634917103585220794599602504785126107393455605551665461180965016877388416146914891803316990596213605647303084897599000050339678190843584288309970749977411799584132628850680772320519250442545930152309176291042253018624634191610791290356191265734564554908607163831448026983816128894458156899832205421347345100370125885855119693680262378400189490142593733535410884462889324768276560559226704539230905413502074538506077140726669773356618382036256709965151743226583993784371514595139716609158320015644528641517804926213675790989926126882892462897458610806704977963595452054775866604966322034162244915240164276689416800140358849286241294807600190006664722261288984316408894311422092169920411784367273621785213357948593074568834544731990289147098613412381412714976155505628745146609782257624035349206324055135235421701592501308238336284246263282649144803551356898495046089903146291048288762950454959527762930392944406098087927883084533970120466220126799591967220095885539319572556297114502471814636700996101373987672012341408694902551182508654275808677420654264768704317480219786961962147018065069235172895150925684683519380548349763183245307100184298656942638243493774438442197723850242433735688286659276677042736036143743165881908553283878957704649804831290760729342763113075253916564288589104039828970723775537242573866507973346055632627153393018055436859076540327940972316898728001849401272222209954054056244668732275169151677610252832861775023894882755672311698359767059315734277689970690015242212608480023409231289399130126399354766048884069692992435857328986237321548135603768381920039678520449720471714643893698406503877234485603922204242953315512307244375764215216739657451757938555590440189802653552045718773939597326164729048593311239047459206756608582637722868945268248852319627747839481758214654502494668974025445499317950719357360216994612621107678254861489417684370718534612814853914004823392235715694646975400474523544610157489424406111353246362763116187167938424215998062998937384345637091079033248163536241468165271126806705079393879876208224203218126234163728532254051346924661472303399716388597878250094651177052740148177343822869348525001009870459341330428306517957858772079831294639143492250114032354347530802423894796791268910219237401213923289236569693435328653592521386771641388127202573264548874090714681095992452191255501777320241960576043473218033586863297093567324481189545706356382193743045242836108492401959542713812937205141725343147520069504103703067529359275679564960652463440347524338529106493587848653526870637913096915045140268319426399057969927015293805359037339380339489431358809877722072446020414988575473492636930225447278963802035352777792307838702184433451144611964894041011175232807482178381393739337390759771026018099669984612046796128072011482351515396962796062931676715599344977593381713049185501308222289028212764397994546522877066799808325738229854111998794351899334333798271385118824318441945856082739734493796383240808159539284098232740678242552196504794561092381990846095610814964016244699803563203727722162658490395346295271949768247255912017376452082536666841108885987180499733137354228380100702492479898642684675074858829958182193256162390610543872044882720586892636946016581805929516511887111121709000654041022990886366917712252630652108619568030657448504099996435997586996424365757250281562728735913105180986384075526548873381860085424384537267936963670721384317624391176233049778993881100871662572231757633165518281302862161277309979093966762518007590533542918505650690418895543298371994938914798937041954425272013979145414465932981494272911735768168828236270343327947242244548556189878376928173616449988731599212349946267194087933670068440460825930120590995519406720939050158159901835788502562866489855284000887902925554377908902350150203724131750757374965795671542282179201445011698799638855969282464946848984842462624489305783510483596037049401742497501237865567287271220747431652218241466760556473616592479724344161895864766607791211994180705435589421970824616560659472892845380562412830319131614864744921275040758043703997358145852763686477498746445277806869843013683726918981144222158534440063396737203155250063163434544750003885330211350441693053643877596882798829049574306286025867985022304458922740918853105712294056043686702272870453479860032151136470909043039974349104338730723033712824216123260528202170428665588901984803402994356394281143747322216783956634439044418980316315499385550952094257215892639321117533577120585598943287187474579178201823012437900757386633356142169929836915099988660935331905381039493799644767183193805516947843818891262611629670403370341935621601293960620842163347452876988475363742387044361866985320576974183685421337318303275745603377896953423750253554127049707664068587316079494085498204071620894455972655333532799950955041299041336757920033173083614515476528087145977465311100743382414303040172452353603325099716548897954071784817938207136468323770115530952186698330287517604237669172915006886196855079684810596822947083732361878074122957496380040795489281239672592194722945657339690110374574026351404001249957078538839544964673132136629125128032364943528416539507422773643620203320013071033974483772625948988414433254810359581029978880550272110264947018732967046161414434541485254122058577018862567340959221876106907355202241917428930481534306380512305757444342561500742071460829222253617278188923468877437206215343289052763472296931169683786375024514984669127377386575439534209360270594632810152601372375720765028663289971278727240967156867837558502854290741491248282008971252276030275015312795322597366761762685429062722010845276177410485766723799611475115255012412060851714686391537965881643580806265962676113073231524336035295090198275176847285727303073763162942734336179616625473548081609541885391090354081192768833061501271697547397841590213947423198305136111169372488538207479124097551498922179150851380128035766682676251046249215038205936518409308889626949240029517107313007621076525446516104959500694272721823364971967496598231147989556437531092108607043213846767592863525065134796125805899963943483453280949025668252270310399182907770566767257101054562846276404752953338776322107774385022207519008272647282849788918442134806664776394589018220056865805050120406283670898127872958426663772120048805004110360781803711922482526188396193509561459106347983925406960806454795578791706275246483859030805138892160441841746954020989174162567096334491244288472340072589112743995479703787686718870182281122393023434777523816819158939015441924779551259487607624229775389266376397726998086661023648832289982678527880693347384987763174990492148095790605279878315063204473183199114794853334617710884517537769386359567683824825645056523209773156321891810271667215126915791539013048707418636693173188493701591148690770107889201090027397222347193104405015499022913624681204306900027880066835420386389040538740283079570250462043564386049964718077040537206285417330965703411465551656745538953942238812761245353856111902132089660238415569133944609327567990009372456935485376920629814945388378936315555374858386305330695411717855871499119611255725540502982538730552371822895046439507238913055939375164419274244538693156653118317740683842971102037606624577341479524818965810442318092425347533959167979321055067512733529065100071116486493257394349301064439644288826020068874333355075314690999196614566353242726877037518562192317840762621018991904800370695119285265573880250935859779764897528816844400245999793337509871689179127894667525976875929103145166099841608528527562417876212920948175029461823988873919338753683393524029833841079931844294807210450020073555546923535729562119967532521970940245943178013459093751963292716116218507646295860844374839299377075015063954908113551461510101968122763671945452689256782623688146078364256724670357577762392079710488968036536892731354541219487503293803343670938755189058048191417510915970713772168744573332115577211169934019652528470387786091856144806018119591193988273511809217427327126045561940611520485182549716410323003752571641517294523678941886154411614299174276335858316247085285449271403562683428116226091893236433862623254798650885290868831841545127862194549260407801707739164877827069950599668091588883349099054153326712862752354293073084712708026176113575600179216299086948937622789640719772393357086072125282814594865785934442398438348554372649335261485543246629257175969490124012203251663981773062764920884873147198877430423231914128504608532222692402530389299040944116423989656789558143900004565156709117808223041867725198740101640623800665752406396442185140568999564601535819976472079346530916292822131043560534812395957338872683600847873229517154277173063194006887199672091387364658194550572846522265630471980882945843356408718492593015558901321261664291086352999166845845206158448861283376943987207907284017023371143096587584647426886896048101585977490920599363294524200779577135129475730134175717923166948366132050987758981657549508946952448137801551463383299610056205118514682578141211215887729289512607098927352445263152429382168718950395874459537605631750416000893943910432068244808363901383268933019267366486798539514564801294939212305433783127678253364821701092778390849204328277598661807204640596095542326098505979527871819074333900022237901866910992749280575293883088358871104823146137690437428088199747218562213898519839398443246029037017800896944478052166671269618083051909651879088456104086126586454340966084952871744255816749535857544126866252155062753070784029931299886695024463804000041397708306441691560137899459598100300941331713916293981644695689358061307614072419170131780947852327151256912255770669436362046372818171736534193500487840106865810500128862780207016260806298028527070325414612290969096189205809073040390716996150221988721886880280363068226001553591801480122438592726119974189663185537806352665025227122396034177228411751990795615804003185904759280725710341251161135406339826786194747247518245932425570761144292392876382242493874818066081645788078351402946781176764924239614760824484492227918339166909234787503908366417531251136882591406569389927719004241170843735013311214451983943431682376764267299529160567667837644114637076057835795211251110587489420007307085580272301611021792167738503458107673089126595478629689797390449357030130577064368523043334743358585601452016829666692427618273951958938745519679991543410174767731777942908405278569364163844399088450662855853554062150923870238270967592646123274739824000394643000201957614477609579025718005842692485470846765560165597198186569174156584919519355294415523676824119644762554181441260535099510833253955295395934365172711980253185041578298062281085560999445045006962268279534988377675143036734152902944341609610350334068660773768711194055798042297164862802811258553964615084515405324324333137437317305850124459888270779452550526310229277505799839606384373769949570074302732070315409951661256261060528991753298511125579075034105700955843204219374189779691286909499725042076397688423111650592209663652549968571667447119758868589030114642940093692760351632320921251598257836144930953761970059435467172164047567200834885875094317545394823005034938841983660090329384492003463118300751065344335149008927706023052900338415987340218929253997181294973293813508959045437021764979663423598211798139422020069041686579566307977272355675366214618744538220513541453175646995470099420818140326878222842898399080195401466261265749480013507584952923812349433526528921717577331283983802970447192913686013070105701750785715397450740035047335886821978760083111778690434822573843960040930510710249792581120135763573318714678390239358830333882401810626688249577309647802846920809839665474474611228600847914786244480225845454912783441398855142778511765477112073308387283670422429796848114657538585880387560800989349763715866668191825652868740004651740711470880647477551271985276930910824770410234095489717346948434418572181038959593812839200568740185275963242477939154781102953293139616380566256424243416514279458620439388407540533827723013224227535367194655987059708097744774053053290538065350893238475404231776509651948796854288287508999227163641769238284686649532199729488994118233412753879633164967864418653994518281543700226715035444983229720548520377847996196347007299481447518949536178311130457449897645663314458699439511764810019277365143523094676228289176526488237767985717008475021932409414849828143070504140667680496027881600990323296760332711104490408514250048145766273267935016106793055525901900806689614224088075324479338396212037694640174123340098105492726936754507542697840335214242808708041053226633107915920469598407706456509634622683626715930368879647028086043451491538276319061040918010797335234021256444600708892379979677610938290460526405476243675779090971365130860295107833892719907100622781358817436695720527920558996695700757534594831523663102903469026149768375268513450912736862323680766102979437203110304833789356122820637784339626671173716369304834072922882995381106647638712232820755574391423723675044139830361230606363010680867781126719367485624906981811502961800536407855126615809242294816387739140478540606395009896179427543765477118805096693652410736409343801727193537379632850050295456668997093866612949342378602105150382785524143320934482198256217569769752846043569595758829726405424698503001601686372562489211352088871880550106796878648091154690164085901536797392443650631487304965168726251532990843939038065631620316770574002066104146865126578671210531953475288782819721495559419065893753859754957833502972456807527058889241228678108446209335627197228070581451565941099473765251289697434020967900039214326949458349561938232468907261223294504444544245877989873373491134603670910099917725318358383493522315756107676918743986143028773321067273175813785175547758567693720830472000122092174604632695049034672806680721038599211926065352465370616941993424732970333382529856409351446955863007893422734889110810077901065627961569889628254289343119520477607055507642540074721621105693673657604361523815035331346303118022047725684584836840258505152996283417955359385935747270481286870918737358516802656998190740677012090891410373011012515108071403155178915447145318364906472959037948307002013976605030370361034145942667615681294611079930954843978227367345828295112318275228397877545209675438540551390440506365055767923896418813745615537060208622431087859321164038975464151924732166202973756100061311986591831686408612740374656068067335129034981982998644172085925564050007349291184427291044086073365513031637994461891029954945043358171792702079145519849435946292441432825335189489697160818311595762722412037595544950762517313495406388682300196007607071103913920659029270989659130570685154092753756137583213467947846633872686405288308646900325817420592239991908890407856284035819803281147643637528402860642951717439833951246759188255489415747862680609732904538412109937891629559663473005027552937735851202252470475541446116011528446970527861715340419363112700278015917737410273484896780036056420300914563054518817442951975539490338339828192179391459154741321126175352423466866380411328267389200670244561864875808320259464851121601235809805995525213596103245571710801509019718818071922222848466549108751380023091584321798747627626411315828482088432498038632136740756945693072855651943830457968928526707284603478932276003607249728854047177838192705483443571601650390922926500259517298603665413221753219245759691944351537489495715306162545737864879830074458125635894932965586911383798245498366338501292736066864100136310206733633392703375963434662264497440570633593737450926622688216332409024187046884044550766269321950677621096445416840584303012748975426498629525997358689727327445014915848647066776746514644497046522305185351946310957437424534194460397110974920069638932064350094068858834746179755390227978379320653082732828831474955086702828653491340039671723802898924230230919346227428270668998888864288511062166303926109926423345980077796568772401798477184979152369316588988339172553412506719332602476039295587695572087685610566864144447581913215847854462589494330557495720810204170099682563432179152967249425028547713129802271698876206673683138262448923507326748650195362699043035087144913905153779131259540231106771495515953831988001024612447192463485822448816784343360649313359926953309305599782614782278294682628280224482301852123456011236890214204155069540288218651276742246693929874624184441111126618202721639878807352288928116931647751243903683259494764572816465005831465757680547595933939852716263793390522117118346323144542378947903273274699903092948016103844379374724209327715836524620026729564028881590152328078917548905693973208740731641726216024486411020779327808962530569366797195437401096316156533734727660912656208741596791306656305522085030841558208502324445431778229225455436879433755015921507672871238486316046394993145577283656403011801620826799373279320274233414410792404379122694281789888712211543531049684324577215935794620659293734146091288253067387913177397824176676415795664299796680414526144707517774538181421311226201678883588835719456149397310865468364377475616654006735345267871113786049638821164441615624044028257476645609152953111949863316350510636598100949681654031790677126436995118103106779407967969997070720285914773693768857473547365201469780065990718985576926378434530509198256739869629835745527791268312819317452860032681260942544686814357112369860363028242390572283733207540017441380256000273762677405386220114970682579215669499195462687440711152535773026679279888999550287567379958893164704497050706905911945490426002674118186804838066513273573428107139400917149535692828420367997989848570056113941286798067624205497776784855109601049924621081414919302270067124629809171503689825748992876486692418742783101688613600974646269975460089191255631911497725491844717068394623395705909635925716077282718581975161892202820949328897875287040615907205416187503396256555202946779239968289013774867228790936185221718283313312104156493404166539296584886850468731294033515509988574478355052039342112026700168440853483266121287386638192492084802636528080253056543489507116092989388411868780592942615981524264214808736937333310801139975430669457362885671649314706656647671514622082974331443994485901131269413949178578065870571223898425094397262429773590154093701290605269785363686741592269654945653076540377662991906625981232534252019020088514968938825701956506891606960546330916337886549500687043661988929608298744358901367753054315505901156865631003258711667332990219240404535463679152221085005682398927043674139438693190321619909803795319729806874851725588110060131591100993866829719539405830245503457577313436280274338337688974507381482048630349723751323669567595393849448297618841777397506049504994832597336791538461989823249816789428525675480409770821855831872450646819155462463616607818181369663670800812222601621844691524269133684023100096206172551473198656347518329763813869826442096917021557705861848987019717733076324639561041750319862290621886951671336479273989346688609603703387579179515744611179195414955883924034967956225960618818676077081664070561018534269329151363766889507332481160321272478262442197466168589300337328515808714955763187195147380987262066720341563565885598895707857308785973943025572926689285056935682891824084090280729263790417134333911853794337107297900332860983612077320729348584190281221777306973502075304664024189566034241131457826850822783074731551009144881573361762653163179736878670949539655671127532011794342947661555503693153284697506024694411131636840814616708248579107576130231084858523868599585580292121697373703433163355146929026945529984865351140737101961992177317581232317872842117402047817077304921269802689065654956583397221647180538769222081047429090429565962221085071830252068852560790133261322662513814330665037241117232172516025441341375929071690796846030151485292870167105366106535667833680231161940854649347266334755080382358336448982906842412302524316883548736443216020103478832706368701552479142682351327216947503805295469655871415810301958954645356059245426798972469209698167415909392548184639433481509832257675249778434455364712510778611284286773586008483340525349089041507960175571345486849690093348990495066530507012109886915500093228242418747530372554597690464771580273951348976124104624677567076344243931329767553150359452402479916104646297971372799302054713477308452451258324859142619676952162722319647476744529112920038073377504590971505828297553282580983410716183156154543528341991136313448865131586288381046305278075608114302804519157025021459416629932908062501974735122719449708103333679447447340777127711194922179775840088230721384279766148543292755037023423715688352483761003515214925569133205390395952975060026257082901918729450925820720044313853745072912276383572122180614026204577164884507353518564841690834770477825302354005844360512647089444759745465993261055028473700621572077645998396348937010191307005964931259657706772613531703015281580381502486945878762266696533527789322692071301272103571617426514167487699920088555630021808615451464130867971284126203691423978858628339550729770388902111479685873477693743398928774885274567149876616714982897800631433565428630139234099920328675516431770563598676191940438419599182646223231347989237738435259747605693397909253077486165219744513218517551611197703663289389232759108298406216332511455314270864946262120595509662754823908605403659009867535856668176125567061740494681173100675817363435597686772669151117418405027705846603722988981854529989993598149623956776220913192231597585876735668471514540586850710963903325492882851291711964966314871917466381768643752768752472894001895837994668287884459368831690119985778573497690192122293363862353376613216714841021013713906784870642053351175655874287940822045504478270755093522487491098053484204292243967033576198498526116441176551031420139768406867144592908840973558099755655849766594852000033126326655203634394038143476727189237563222748085757533577685296814328527819868764803513427346160549825014498589805423629005669507635680187477288110681819024602079609195436774514857170086504746920886802211886781384562804973762317431888826400127554016558290670177953914904383453245975954841974755866706524589114463774540349990951712799195471342480855200980895991316249430943201856507606874110947649242311600062357442550363649456591801778480220856257331154545107416212539985929990509949564691929351126266817667534186034587648620099645993422677567687559429629585565412438852235822131200173042229607553740422605952476313162535075960207174776390662109954788724876482365054461497830454249827094565201045823206469281314963730197356758536981066787899870915324852003989370024729103012675516181699254047350656739880691541437091128736504771250265844711104732751695823205217869308175247931470574790076522360444624042398087499921105705669767414115659456515546825268502836990722426455682649929497648930745431042639472680223653487544027417209675711151548487285129994952273610740732456302604378600319601259121474628880863660380439968333991610182931623608961288937742104426558613964934346345428453917242658168317758597248602913804832300226569984723899505093977274149414678271603192103174856862993264306089584830708671982299516070677121219677267847170437043154819636328990926576496921290457277458314941124242309287941489272901419868747235300611548890075435305874699513746113941383668037076435351017840203147007984735039411760159179354421977652914902950733118044332004343260370441005148159807132404839659202516966903631079850653778017339383770988622381516156784937281401481994986299332874887399977085006651810566722232333065321641260062884672764267556993787860819907705102580777414176050003291137826417523938958321163092223609283661813043858158648109269076824893510472668686328120518797612570957766809393674202827426610679287457305092784774521231972534848569935034618095198561549956255326000270842350161368570376520279354779737277983330612872999206106034808352822470792837893950315700745439192509999433842412447482116834315957104850298977810361509659754246547808565180431403450525917562676578320776124933470975791399730648853114758892410628543394259505714668763963320088393952101123679626560085312397384743786378938727526185895849028576155090952332323947373935765840136687119153742973906448160926769028193699327294367750759303997402747579043531055125555106847540889470523254221505370469335191287015873184427709423098937365419545334366514206404634389605554135580690080960783610889980903591578940538917411850722686811534120196498222337188891130031384602385866979446411376508539475444924767019558820905893141395204237855002658253568500817797376256545197292447302952017877049553848215058315415075914080380963538406292132164703731846244348596975059875727002523658900647049607979986214740572572537926308713283745202372886650229959681708981664529807974585761771775134063846503707843176043383876317198529235750033025736269950006015244983409855209919461007508063795991913223677353539038886506832290902840506124526623113524226394689608548542485394240797015541287860595803306070019810892267469388584347859035838375068979752015601240734196159903771320941099841066358708510550828461629192670489247163823527377004274222900312956828197970691927581697212844695394599163821394810381965733945170006236823072074088293084563690180397756585269572056873265233333278368946255781178906422912425726541895276577652455218046599129964955781515505486500318143255974915403960562943985821188269715772263320704109568659002886765116266321598747199029828482751781078324869143373313170509663360823483364434152597502389772757986428545729541089449151017424282171562353622996081776801218332794980206165683614825720613847934933954787730421518318422697538565153885279007672140833820817765379347625388579305665000418023625501404070612723055712066689424777697939791967369773007540109381614888164468231145843768569989601600153351013762914239291304710736922401535726775822507377012267253226338798533102882470505523984111278834560967213555717292858907821886630655647800876663810847182219347583704596986157578894358693452857241336130432927552839625119903871045541803521075705333954994420424212041181953933749187116917230221777814732139577646591674273923013100534650033998933575999056427913425360179171708207663218649744304786282230451661618925377561409572438626827627152020407521283448165515455835176277948612249450597133563290179306694639717530194961637259600827743209379099673076578372870822358195730194105253346305191510871274656817331108547469191237799746457174679729801382655835860952006888953651308877374478773928058060257687447357618337853397838828997411508674095080292578320566588083139627444857908795869806347613603100899963341264365670796344623073137128982660210793598024867220145933514711929211870348565169467142289202445183310595184284234347541270891291330482377613955320875478842494368815516246124984222445391612941756558179597358487665378468273881466770121964853184867164334551304062570418358407075566200693642853791579608274141820283834594143204722013044312970594191556223050590208390317645343241333793273174289544714852865176182698425827075710280195507169917118622881285020769250872089788148220210182117080813451998109988818576336200873738511475135604103583324454547167423735000964320339377206489736020200928253671517121773065945668668992963769427462815836938421107946441614255810139272374574655974012035678059941605824650664527309190479126321783305571120728163066220240383311687243109681761089189500847926920597782600789354290180468368332976817139148628766080161431404857857591592362909680814987922124552267853982234229854327590568679956817759333114528308383155080475341871362662976739808248253066797510243300416213007143342467534859283081061217555904230839422249708090037286172587703856350792981829829622866968330545327817948029788046867201111553944809841892918986568483441224588274666180445803720482575708902903427646964993811942771326893005935068567556501052178090350775294419598767431542775620969922400032561075567185544197093391790315179992311070998014429731154387855320773421548623138924361564441297246757313664395600921254251415149443871818303216865927277409727628751306949912480422046478577254453919255774298185379681665126210413507113913736009939654963582401049991069345230807644045404248072277648556524230318435320216409130671933440818265111596602108527098634648559238275900702803857508403570940121579752810599348077925761994283687823692816710084131518829145591002002765141192969132783991113098911535867831420997531465633510187649699796946846542628243889809404526100357502771387183419563112921397210196645366936111326808662757670042397220535236641509627036817452394130196936299982156372783258965887867739925068393672384221929552686807120834119484369389202341514857440425540988456898038411490522628364565273368223909454505156573758745702783130720088916519150881736262813299926731296492977495006615176025420838333679813001637852702816641172899252715714171215628459130984927420529483340291141720120560609195963066889071553585818955457451801317657786418938383405130694473743103360677395039595707170600701398496493054276665843519756079286612147403198073678152052185998785876871363381839792475966691578846320825361017001769107330969668609188198577964236052807583710152388137342470908512783083055186034434757872796748646517805266205407917445978360501326942931677622951089221440333250060678482508073587509999217389087775359444073701430142592591155328479296602139530878542457857779556028718273671577982706726048249262529990649940992480315361832721971556850922954521558017431241761358084126096478232318282080907657608863988503148163650086748525985409975279775251474160079210657557740046006529990522634299379404677630408100555871974735303192851175436746782417132501795581842331345836557665594009611525599567657538526438554566186279955624940252176697196863994646440146747586697035333761671612915602975146115247485189635461998570684683806541094791752771462423908751180025884234542930349526833356050363783694424391328152844501374277667081008750602515507418675505270336436813222630205001883152145230203156219325296612193901636099976204828822989375502407435291073959882079281310959037478826587142399483324823971251848870286893783170732976969042480986995767296456730931167583106476786280612759873547792225055235365582835877554592198985386192838180006319629784316224335183825654942742456252919051048654067129752688868239993701658478736461308492565186815327791761794748741548934053843782280858301235427867518516638435164179209419579182954390577446427763038073584195254842469128892419834642333013356267383794428290507521283954561762430466161241226295082056205188775463900853331331728060759720068101020431647665258913661533065906607078738580872523932916125203760786799638734832703521502770906268109653880579182051267361538696321338916239730329246550387372462801333915739549796064470678910380828915386720509583833820509262679266424023557361706387639966363533233570681861603213185859805467913163517748688521917335441213641425075196453832201709378597660039898057108967198873007090017120273473757275287302095897256068607329062033899653235695789501498453370545760883747046170706317839856436804270803756127101764573695158886850065220308488313700706369002626995754349895100225686448805869175733737629065089983879335682228337934304348235761811559017811400439142282432169300300182724818090427777859744090630662812945407182493120908484547182156821706051302141764565131165690220364923387861680874431728562330016245129171433870478984209415472363080414692000680616546114249630310444366239157536003464258955758782035602429105803709292638514949185765558494797860732949002138276131194189429134062890485493057374353541365008458935173293423974804117672882250372578752182085975474533645484719665893770916675212117290664480465603826594787253572836463102968511442183324511062410738108038279231970386334806164673460609767309697227336296680831831232537404583021477174616169528488564484347316089832923824716246552361020163130371267821109991764621457922062350898415476021791438574138411495942096611693111021730666308972445523919168154439281942800194840280684177377806724105541141374098357489010179703290368793287389636484530192936674285429409613282278232733824988518639726265621776317977114500335296555231889259799099268895075170840659048466545683560284075867204542562721227580245799112830737458528672934394377259451893665472577928996104365018001400702811411591344392285404772609902143688588084388132703500633650889385842955952476791650281293606984186525640735344135489636971805709129490303284494190890407797445903773796481325869026572627948518041970807551329161119766128189808168283842257858834304180609109586719509243559507205631010175486357798691977750741613205364214074312047597216722173034210828760902032040018596916085489073345763255803420519148228351683364462890972631027433000830482753993327749328964007300031422864660754366713366529356686814291543892195101232610992128751756936243391366372067879119599275320558908273927626407311341803510786913093396525780972178018270749246624177295081666920955990942579760741313863005230587083629736086298050085360102532482786921085082836263934433342453254519065105506850377948676624798432326102560678853138546289739693303965450149153372171156482917468207322765406221484458516922132635879654664527072384104897057770067895495805066172021190762881992318913381914749763604188596027438088470931050592941800640348814637787752576488083786769382454910916080345264542747136998185377124863591046222610118839786582844697965829608341134796960651530942831309099319549334221879951771957495506094841900175502913797082296040524616786100907447312986943569912699588649348380605173407586629124367476047490697923936023623544613721123821525939745466580169786905581730084133095147882963719786530214185881526326960036532403020770681302477220544657556314478571094941106861105622244798531519251019267241216845073923536065973741060557559517428632714637143309282070237898937245936665066189792799281922389601368852098746992603318052309243078965096360663161497140726919265535760816486475296858386353598320775250453024866138446712794337168298609298844413120626333745426731149906092268361469600006552379581533886001164671466210968079113686453446576164048031772133916043875764486506632990917817406827064017342363954046042119790884983822005851466626432995179943473961295138785205131465680610829265930164520305528825821360071690798847041726682465876807776240046987058196406171964983123424394924548728596575476051694982911729692233387278003691187365740290470878607979809917787819663319245736557824962761094173400075946545513405753577947022861760706127704741401455240868974957485133243701397953814598232991739673206488520450377679123136049399216543557191024577845717524179364929096324989270189156597029022678785178605081532010563260771694041558503028273506429550921693643961675720525025947115821866477180506220131060580107336466495377092438802534747307296101020513248325021162425666269738639299944766840302002451640229666027358622226932259704935341188100523674427181519765898514182048433602806785447330481497826260604771702197901596306171406550054840048996122391684179733090036136911758668464315708055237477554873275139439794261940518658911277167146560716534311327737519545237779665011294888553046245136870409870500220996969948312988879240865146904998062398689013431002541276105231131856245014651585585300366492395001688320938413597962849622004261736410888783572026121911422063280012893475890197008035425315404900740638197591989496859334960420125168202672028573064039409872435253683382377666882369516366004686546382443172901605786064879088236685598786072856428811995666113193544493463083961172725806614725852469184189396106922272497348605435368521174657522751381415850338439142091433822592874988757459956741636891571845490363341919240140992741954931576521897859611177887997068900540030775229999619192434392150080936264996818761940747732393493473007449744706838741920611339543744497423419190799540537705079547769549717965321762093388986248986605485199724404149882738005037411941523117010281221088271722597396352377261339985564255025578390586566719507500831245609192861734008245776301185655425117397945567754633204394872799711817776720815070344268748304044787986369246525073605024606388263848046516760701191957471848381487924041778635768995599711329491973813187630884357812301991714585163357142309041109687912410972128147614963269939702310046798871674126427057968016473770671960158053302705259564855127038750389815014353790340603215536654854986289933137666849028624891317814807317902488824239526621240619866268047780000283969209841036635191060718771779084880166786428218264444244869674487472154894700034221744350489966599802675279387473236905569789874420032326431255354152439406756851025574044321469028398242124391229736405430229724826169763755278056373404450655598700749759208771584881991766105002909408551000938989170335757686906491329109994971276547455592644940775897206642320215505320444809977161975398993675659672147411584748568988632147880356447134165098841334377254955274090259268454824561545463237039656849278705862932296206688801204552724323795129751919745178302418045322137925443019028623165195944252452852029671471945068008795895222519562843685179193068657760171478638251718630989917758493400357852049234101381228595665409489166764208886153367169518229956987194858636504246079301919039126573567969178090358489508475187578389920868552041503804840162517714529615142254103988924925314809344308694096956184278455708640596000051518827721737046875080100657758613697792100776022237794267864566726168659718336742828231570544356082574189605857200250635698404904458399320959702538780057128510463301132931931898676028786193265427743567108017835604223531585669215865909472539401795715362369641885024975893779903042723668217870625293530444626350142924006571714841736120686387420981872772739274096638069247785044889884690406019365732609370768946403608429838750527867689722929444870281410409225908109911708845373585997100246777679865894313608805209986408010822924126488307758742653923473053125138284899636659743654888911225587222484449377030935426646393192852031122273313767538031419213608132116918996217876753011133419417572864065805428867926100091615905287869794256942749658643615445576739329511525613660258035295875701374146333481988846774360479066189721891819011143005888104649944020997556841255921608799459499968083489274834315827753998985679205505402308510315653628942473712319633592761842869797986863634383837090421642246497240700070569842833883863426189409147494244563429746003807139322145072776353027083378769444018308699356185105241837804017179358202642651885879441390721977886943173584605521087539190691934521426817103720992663950078223780707331594606590006142919719323383468481701475727871081831847616936777897737972913024524800422637587837101557826266152988027852337531445170295689084967552591955533420352581084122770071491199934465873410927595000121870460888420821895364870061799401809605216325177148884097200296091395958629062149946129485490426568694097726968260870417651198989404854130978528594278263747193252094975734043728591947635660479934986838552170376181113627108445290382824384480635646095281071295648302720237759275974301613922326303548452101966901617215745817162184043977033635209831521329543677269128161401109179705649660029136159663731444169058367515244218589402918278077941615292026711224802273956876935066948208007486316517549248317177627550953753838368408136908864680077784381815387884519570760318338643365892321154561253954064307922648644515655287569796100052662128651844155595540420668737982348560631529526316306006674389555784055952781359668206346707417859180547337885464022585382397162869773045937152321934481143304562788163265151765959278428112120726296206487824916986670607336403919787938104433257074608463602910828603495763402040613884153992627659033802477445721256605146803186726268145054572739424390072348237882981661684813880317039556318106944462801978962115526210812343138854906893854523320297514602694633805420765775386708056060128251163043835204272377868550297319801391699671432470836137062053685536958157759230907246165365203395745633093952728158204178251993997862266309109519503291983755625605430533068955301802239848750777764471596629039695865964267200891137762509672691719710224797068238936362475755205845541032128033767034560163620676516967231192640085533729309437395106537823118388557341662200604796846632516411036563277599111807189315344877933159721795179901519071589354052138927999257364683109456580108824314474641233663916698409195745768109420751302526206647577222687464058818756755576145647477948031214149189742596971796057381484066734158987687197056076889825368146816458228275861649817111406736159889803394240030117094553938023019379851150042831445125587681779435688330398119820647189094648354034996202159046701078424970743994200101245569468039368079596127209937345302560364522253501485743613099809820329530259775128236297013287504041150346195372299185116679703292179153328439028417142819189695836668691366706160446389451733517788646754326454987018914616173136259577148831156698872235087512025735653158983478714408700243778043403072835461395023755292196955943367727431687950857043697773917434337908495496572065585954658912105606721150430848163549145000598468801176134875161257281558653350289597285168379887928920534694422901617285478900236436108542965079794912725030427868881740447362914534600081958468524395036310603053364495486299819150127239513304272932186235427224339248352381154796729954981045254328765915125816251102919585979942472064193979877412468456742748492062054581656959689491379447343526003741918986068438028843449573587880535594674835902876911744762501260754979099547717280950555387993536416731215946403629960733955076626689647405747499531250949581163266392334225441511613084912264274764860179850826780247720363446921103842090196162541715924889953291775977924070346596017201636518526440170462263952900688122733885709340630014531203440902490379604361297807739087991238569869718241178519262282698572716302146182005957710994617323737725349694177659908763303960031251116356697114022048492398323652298278877080095224948195880152151865942222449822054188173251731489980394284130404622223411348841665133331055849413941496729599304460427125889415778605729692503607767619445627282479401723633853790056803441792577111071961971129281888282353629318379123348193093709312158088371272531371020136501806615186753424608386026449051447204673558122400555113252721158304263843008802336627508282936694027784719621062180696391161711819634856435225666121627186524300251025844789137118091560053684711618857443685376005360700252985662891893961357055161722223388109705889612209732903607872726971699089140615374572156555362251480951492783303683028561643270267033189123681729500295264991538612420083824163028119822150241745322199266375899699383798802687883936141104619701441914744321661594267225583752615352176010304719657321056467508182079419043446617053756240446962605577777263694235135840483568454852926550802365698940989188604232580597619451882608633490101804465884923815058335629995812681052391623564839318597805259269199403718373009335351798949587692146575412303155780917625139446683372352723707376327672306705582362396846180303490353488301284010127489283864869095435450083169408663301065591065644784495171463246206766123377629186628160628438409372506637350255626367236973115529484745585754556669884937257040881685219739848573979086581822607969267256177635295421587009123848768839984599594856178970817241385587565331755237099948143063123446020071784949163886683865234054311763114291727485310132741384493608560723084700063661588178337008621586782221569295577354855789383527021735900918797300784556062277659084927089625986332084186920846337024685079630401583090830602989293582688189731519975902690688088965483113062931297199563942377531312103409424923621492427704396516414875126638660034348961152533326419555582385273158900189165424424393548565425890426951900367102402669179183117831176168013596123334766587952987020772372375363859370837814262280263855612575958109797502267867736520849805777224381218201958582311552268467363033393182894105557270000507090260134743597938054697034280529913002926439518272328950936801237484345095435100420099094145398229259598490481742543677932015378504639393832751326031753141999116787208776419068741151659412289973359039744249629039605447994466805834030329135736279115947699924173897002713740264101451789626788165099886701271810697216992159603126451253370062307534087796494541560622904773003634386554435047495204670581973893643527427904803714465379098265222050899770373456044857460227032010234651796234343778427711873111435188527658915148886072751333949273804501917417071603319153361265686212917877024502904303037230901860364649804577408089695517727260830931389333538072859456810079475832133638318092878022574656329881590828427345413242899161442418559857434026604413587715468413877169532559524915920506604919273160541493443020587879844445032196865532852577248172720023198836542273977301157755129263325393710414977951125931786536529257139808058089453448746540812819694227783375875496010634705832448857487068711813218322602223446263879480162973249914380181503953171268112457770461231906024950322689997989808572870101876394956670418865269519691761411046228900939073367380127356239991758435934082719107980130983268699148783864013110783697016973167536413624364767652465481021337737470248955068600643869393165052040268513199069955551861304027464775575441787851147209453347750753711162655890426216364028243905214205956880353776505185209452598054127534736307690428723168770101055948272264970969982949696206077209938044529632418583324427997561867744368711271212896937199503044598324421841238613415948418265160561662701301858548726308205131588224944906297530692241320213169336788694302428876988844701131599435344116102398644398340730967488001129675589285849868989719939224513961525651167344803839990101016472988226701980291362768050208699073412891770203241880517459391522814016901279598209842594228743876895746356368376857632994472721757100592328318820612086756747826642763626702866324607510535726630450186799608392630038550463312345003331739375640443452311268030541061006435824471196879582492043904481299637485670439271766297664390242728052495924613398173141455859665635604973664728367006065569445440603512037226524425394706697086278637153606156162993753584053378092452816301893164481022845188409874905851582629839037993906582669929502610446702697511276772574265312141947828022436744503069762135819469116141331117545023865644284405837294274321791277541074272409268011073200216017369609380431094152106852475012111250036554312790079486333605018885353528897559171760424344081440361846870773899193687489506594684975374922445436397724208846676581027882500858887263489859009188757198246695712950602569628038636370963902803275886241349261027581832610537148243876504406368956047554550828428443038315391691494558765942317609017776477245734872731378293109536078960756217570415849997709214886300552873470726718101715490912676888699667785401007902414897347921569856059235881463191288543885758446774491739371922553610346564932133612657196981797824757514699829740278915616340588602030491415715700867332930517771026722793938524812932737663797678479007794835061506323695701998034569568209367051380602778014488396075219355833388644591618463179437878280806393544311333994201781855016149430277429452828390090176812596705415823483390212198325053159338129529033080451083492779816327399182224965745619010258133975798086476699775065670587589011694730472010456254661542390368925563010347788860665065154602982870095356508444005625149521921599113070557331347955111837210744829810471530568057232378468833144915883780599602573255051865521819682396292197704614257127068963782771757561689728388706423156477818428337354299020643121985925557462509404737272638063217012915300583920452189033857814300041675605076540150351028637754014997195450822219561953496914363796682174210409432141675365799514498180024795126081563712735637338523773650826613175242281032828501742027988482664762362763080510339051016894439152446035466425781717968673208896365066799508642014439352082779675443067008464529545280117680339357427297643328610209733123311327751129799441970368125755331735606894470932923107007681193922713379108553517718178890362498280747249901732501813543553697978662157685834876647941873037637724239363408791436313782856802003647355401080588168272798037214891749209272479469201501581666163059418399034108015492457171627236245414141034994836935339616263243267893441710836870808072132206527094871674465388978529798182214159659683577832107581115567083996083983088541124069967945807390099296327758712587717145587834515579019097885953891062728495796166126715752506743785061849554926508328517336636303205805975284245683128950819083130630670332804086587234114634058555284921698066919772485798437017854601881200533601967198195959371157870627774228460034120671580139270960003468939074289941671670109520965725682822218690483678333207679477991854842617578859076162291326975240194404168640098776655314288670492296232198033604150266705087276598439737287112132550714200296840830272175990433562887888915992730373341176817842578345293723042369466052258023844862428507989038131877516941163709919609521766590195630238497719760261397548041463650744028562002290618686392152017659825146701780669532120607847613744542073161589849471357702968706641070427189388266356595734013280442571628803594287021625619470514417764447065880357125524443675274193609083151317136236735495716283828175124425457923562297940963942733833859329463927266050152109079438437671503363591399661028219029831976277278284584980970795615144119583177303763318144816463421770283163149851274490096137928693811432940737994216126730972430048251533204922588472877464909498737362347901500930539086144993229873813391556017522420430124434905005351557787733075277920721201912573339846651907775535643979926766559384365015700492286800692826844865190391847737971352851846435844778794072852201301471589211551716225979494454114363935628082579382358376169446428751152743972260796195109896850457403620005534162157404264712632494582985144609476152799083258353259916375672357842476243600839897600024498157041913609594407452598890578401842567605623392312149512502970603771750252988758125360172755694137491525130926727196132631805828983039184414783387238538343725855315267344684486231283296987109674663394170810909267267043956208906740781890331171642831202669081860206514292502945763046452125779371469588418010442592592917284774038207789644759948469537127497152553133393217878870890705738628925811944291462433073133981440822872565714538147741050770679939126329052228016234636254728486669566207822987607821553496257354878821404678985704307609680701247739222361990442545843467424905158485462621821022068485362102517125362743197167617161819352194227211525706667439130853910572600604977592807129133157264482485435726097041411936452057371755252201570247130494479066738471938555274475621534986920052502096396231841232671645181958660174027823310795690521657077849667084505035051426055832597236047922601959786118347283034596796840578029951957170817076261347034832059032841771264143853377756174482575659496158637420209559252901942174970373156394644377216422110697679776452581249759796394224013299882496692131223721790116929029638822290204850943446420408051451745736678978356619558306437298725493932807728288525332009950390912290986150903963301672702546716766460563721696605756250419603033694040083154809127357323285555685017422218783626957328098499815782806738657095567916537748649640419557434493275016207872473581225627901338077572151145034627977443908352891110377501714321692155063834963770955950233668766428208396441307546649774375394956568448020000933809599813271749155309903864686946348928964340955988430851726266375106211268669929645401243093055249036864882096184639461070867688355665919130012934059574807483674588265521437014882495113975949818630921974554915209833871354650617452473653812724845639303622186120025240287927580980774524330488590618937041880929746245597637602759583550925026211005524819309320016307576213682872153878222467669096683415556010099752267869100791614408262430122929971360704956399024706780353208169336080912641655997132015492613540019092408587102092957826543696888079578107857220712480026065091928059754165553494624022085470432282826556664360019998304776813747884954017163183826175471664873147791723972977414510837790992045098701351430894549102077885921022339066442952979428565911748765708365587833384667810230808797797813015032974644295491561689662736564378580744640041548645940577304007730503269861129055431503498763966633098727964620829644883705008307886491642819424248366766979777158088209732325437379339867501561755274582434129060068923200672233063462645169512404812359282442554451723998711379678114283828784638540193354480866081822832723732023884564237318905545203556511651756164532149514201159282789360412576589394435165196244187138395126169778000836011962540365026043270441988250771708677056615504349943714606974730105594278196571166836512699222798260505002965410935804918901624322789018015628346915087653060021997581206607595708702984265216768447365101838121320289435933654612339041248171509545856483061419592321699661122591137403109468593138550318859081365395428760440719879725359464739119155383126394170296859502214296802708158218570953318609881329824404917193798356031215974881988304016014195019687687574265561061921553292078396949956509553397356096449282653434374305208200687450541005500383856256765053645069975060089452399842028220426266243106947277279413441242897012893923330629920992417166122632828731006279731841679075935266287693157723806345714201938879900970532704102110626735300486124013340585566761538423775527806624338038918627332474819090578426463480922156233574986450644682696986356164713661561623086886999400381737402392072658259275939194800583941711497164510332923091118945856769053869093513345542405873591218030474482195272725458152578300873011916025387450095107871532109902393320882092024306928148063783240089921529642777496082144096457604465881571822823652348532187035065334812705704940724743993900274184850397175229981146773217976042106531156911016285129176433497159434496073654965655098060839222317730218994818471517632655255146802927795879111076248417107797919892589049166654522133049448290744908634906928647166761634515191435809744322897905617938601419891822983091131818443995887129253698816383978961478727503430253244073174574913561066593393244764366892016666088740776137260927686318433366435251024950200124613165362693170144532926337764117372830880126820143253862779331396481392746293568793596347426936235512283988591236924790998189942597424635208682727548897750184391991608329028920650525136345973367467466552831200339561895159943583894597415779345365287053042693211849081960420322755831902994684633130238161668384717678204481379144060573482298916193153427951461544899921486956877143358226831139643292694542545334067375666555089165546073994945811876652946346206743933283396699099721479039407032082844269256400890746365709604067978249470605850412982625011489017222764548948100951882204415010160578944029065237736271449285340532375324100478345222672797652858085050060274087202668586295022880423967815000316395614625194583372000019793582338860681378670795071281455106226956683791067906440645745725461690157601305529368187736873007800773310302226439871109691187394718911615946970424618472147562617858577470742546913221135359858781741532275470485893928623825154082412274581666305277144199189403619541927926828604632936106124230337772240946286630220022928127925739098844425263062599234170398943815994457975514447127773213432444519310326670268861195935460866270651410919259592870145766825268818119889229544386579757270010391097131959339701612567294068262038517141647114335511137557750048637299007177538986956686253406160922821073951570782520143692812665872148046884728987856643088391213473053995870462306688789559205998794680167484169029671743532196398004833323417023833115992349415074233838636227503356807666928575406513695421035646296560575517607840199990208311369040762450046362199774748477879855882410925862118891816085707152863853565020867994730768685524883377192521800236780032887756583765636875573860128742711690903461718632092209605511869199128613686362865346686378232911482206439335888943158659986737475202847531229929971669542478591909837553347431903068183954992582384530045991557677351054887203667130071998160009801950333265458876408858407667321000696479290213820601735478815151759528572915220744399860813652323670195327886761898303619900744694437608610746006365908616165694725380910445565282348670145732857811193231809644284059647572747446121187418450761634234275586108882003772511640635636436151424597617144518218035397441944497398581542755229662524181429999975214528671714849366157873488448983751510913731278175049303807893586584110208879815229040571627101731694187843896310318185068428759259355307101128852963850313673595200174357983238842597147888698089368568889527252434311846745492498395058158557488706622272180137973544161501633951651148220150701870155644764291618297764223429990594418773180956605569979305142661670506677929742045904365182428617988433618530113002740863745614909136285597786481944688300379576480976735084797226426047682649681676006010571606129224593477488300696330319535647647286246894834689849486835007290460977147560842528367746181367819222505843830425009284134523460916932487903661791974166053370996994478512875712680057879772516228096319204473951626787872649185430636888217969592671407756855785450652252381408765921163737274226017961204484598066883236678898409095369266492178819598705285630582543232561864071932242693519944457998800223909586468611272406409982109191389656785420174473490989697578332479712659598422852337219807450138004931160680546174314178311546978227541375062791354987745709572389079480373826096149497929094225204271770285838798993589065122204184987755207297678387035948230434217967907162448774215599438933828874051800692487478821147438331058088263948820600344594428249610996780009308860667787942004351884703102383999529697815902500565606611802839849768840013255589412761981558464962160877908363811434459235742140870852240353017179838273695210156555906538727354148087322911478590422179631855514153948537193086767399346063034942487560769369330645939683851265476160894917571716533163442918116024531942307790308381980598409150968329643562616244475757784369041562174124364216965474723037945908413682648810938363826345831563072268644952085527943298679438910429539811253950795898606010498271741494207137526322228607400874741930266127694919842050987763834531243704154218231725387764790591701631098888452872092230677777179767851979361861977986452313342343033638148707224094213341354050729727834684001025524072854963018398814101195742413768468617958381456192443561640943904923316381552418399557856122733863542896053843153606608657808498793089743279605290218307761812423053181372632575764304339715016924028148114131934356209513504754101373956745883234502692176855210404462903257789438716144785785953096423247498246729082590694496294354673310682733043944759727179821466955398231889412075954644109276517988005788157056807220444787322129481054234381266800923775313054151056251534358402395953076478902985285137882506199363987377514695745441927234553828793704022316879052828976887940620464980261685306096729544574302333522514709878813679948371592242972945108297758213725307639353776900622029532235091035493062663008685529961874519694908280997601259554058492830286764541589438177742687331923116285075481126105668507623837354654070781468518587874799162650460408742150250240963236901394339022874726674674812750757342718338455070385608857553029280962254599713120990424863890762378971115362817007148631831184905752734772301042398132617133898167080304592058646286385254368063741886062710941026634155589713758433931220586273000772334786071637780584886626745992739487750099063127395237573659374266582225600766173136499370798762188457256061546902012438631585675084118110471369636280029838690922674316875120546252469433108495645959007091832165251721039080737808170131616139948962543339215038636828280389168005532106774435810807185140061446656014635471551610881753111454742855758975190414762453609716693586576403454073311803751553340497784215731970710403705351782253908745266147992018157965796647292996004386074846754310096957377578439487978987409216079410375466943230521192876762631152277477284740532616775022340343724454362208588408172999973943493874369247380305050609880922826724872601788993296012984306819177605321430492076054304705351816845945545852952012519107894452377960493257895045604131361564237398228463193275405666012390102529197194686838013187558794195224462868773575609714421126785332225079472373072871661216409366332004104959721463240577345704062351317824271281977591027365797347498533158331914210611319329825710273706651382559333015224948960320106518137070188249653998857300725971338638937127632102763675512364943743996707965902188964359533919423069174569123313833777030535591792715254359552740037652268774200701843288696319820157752901836581885221089116603122663187533885295083270031838908451743469415551959811231346271823169773239862321899304970211747907803858208812429367994497157646397624046666240300610806857383665395833699079252018312664751416103437259796250055361525486919561491845995892122707434683465871863761122358932631789967299537145713995629069912319365428297756841637042602142659330425292503628170662448214657411571507786253324854348887375808038766337808707118980360667819754728323852483052253822390604977042233959342207983982314618412868436997240947172860547982235961778045618372242801892037167607269756894188529880171099254749781863680720622793786148149735335670539624698438899047806318024528820669513893750960740005594188202963442952434198180125678346675304468382533602879150804157125612759252519538786968269019378269402816856231699753300603883537899021452851322464993680263876695325185589700453548979782134672597437399248077094974036654613073956565329936181024736579753538363889283737260234898851474327488944978721812009925556017585732874277475485617486946256125546749070239655380054956858816754891166517295070060335025094887732768751514779508618510082589169451285402619235634286283487965807589219347472034136655149487498207934233799934522310160723739541344478022098881056985661300816528850496385298635016750616603437907571703700789484724563610632001785075058013417096952623493130911970268446814875781048175478589997592185531066793247961701189494476021731174603912386871898129275517510796711923726820381704563479969112538089931741640709627608828722825293539151864673430035531773418218518772140233373552519742639096037655420982891736628315562704228878509020220445396049287005507408455177949084512496600960269420834143158341248225345793700941093188465960758447757311861818954152363533832808115425933001192996450465471493669806311244169928628297944515208915068023307439864097749041249247288117876011107466451323472922966178892914270488741828298190167546106069392407313495509807035132303393162078819057704667898762478616776893997735992623594366609357218791398666489003522205745972404094108099876154579367401377004812003578960536263637870173887628367551694257742920063190877467024506220661413807162077025129954107434691739105084030892040312151947766760775566362128429470509097395361426822894657469398300097329978924312404078080353403781284536791959867834294373414628339686394209263334020964058993560180838032037584585363592925013785976104520167789977976807543018793440103046443218944286768292068158985003031191061425149810955529170785350580173486949489179629320149581196957196821604217968589304890093313584509809298529511869808661838909475161531471510660251943958153656006913012287058581218807569947637326626583198096987222070531009780335476821664906586308286823550762799735058251725332177165063144694379651973952338912192513458623168583442128419912779364552819136856624606918486454034148183130423775787519649584517574341602634151173994759263316273279266691152326035681061077608839638553461969621091231776167096480183721150743383283804557868079824345386182469968590180122659938093940056617570731280803304062340855751020235516225085094184578006307203774128979437900427302779946556452270985883729938433480842687081545738925602123209038407552807666168449596283274540773643493939357250180116713942702384608006445025398433801875593523390297769168430615973582826569271251355878895090221386288890795828383946656784419341094024904937179589512076057911275300005040847597336888515773938552914610266898223748954667428045601702924940562938285033631800982599933134639779968542255501435555063802472012736220481699820583419567318649569042974324070483587826804884997740798926530314057200667859865822839854355372741669862604822446936170849984943640219882983788209883618766244104853817733355108822498708556369010245741114574287516878343831820845607508629737770549737718913068809192223424740222902736185254140150832936307077702929297149345220140063015551009233480400322265992697940288706642715700514715765923018172768032401945342190818407493520387604146516242979101121004911507091047081473626974061945076044286582379785398738667800421408042328590511671355429209325505932505589736968554568856987833414423481261666846728918837984553351782352349307675739132739435922270931960747624691192511403818278574510137913513797076963162360988872825150680102204558388008451798953502235230863172935792780199416146124162162540336843240085324052048836017968221370589592471766448318801122412690151994617872303086104590903393485454263567208066536845162244119819959329015258932354737072671012210767724964139150377714814191992879928594924825065168652401833175593432836732965907704356123297926182158150446584495281067997796174329067881987412065287876607271461102396727297957016090225485849962667421989171492411252422625429073854718603778651391627205783591639720599704814907561287347531963443525583314860958899081139974662722344314321781516652164656720463778107064296126906267211243841047360753039988076876592635868017950715660258803057175680442254262429528732256855505029577282656890119995646519481076445682208207170867486618224768821340936551755403168586835709973987668975696644798318941743588939280284975134243091938789660098131575008028548429059837688422617150028530392964277401816399356941302443830800935108795856405554427446566446015775887892981583002725838963116874146638992120187554765681915862123631148760050038387054651746153507254841925881810605570943581915497189551512627287078641126589296533915752593146515552806776471970926508836823691488354273371321480365882763408052797850136774039933135246753248745227379290035424107538060278242197678904918709331056097063048337479998953652609722590300593862712069039401750432548448195584341971486644735249009724495358056387689496071760458021319002090065174276238730463074308561756229656832291834416667281214396659252147591703777206175297652180862377812594665567394806657638926077450747707692487419584851752262615181580031679001643787286087822105050141979001630340873320253673044881751570095646981340678282010067763337192437079404731494069139967593161916488054908431277428575244608093192422355169251487706562059532483727431308742638819408875318614325909875285034948358560829111074306216318914467084013635949902632753086663411265407999950553962161724450113077934838127096928590621453208101493584445578934015620790051718904614773893829436523320373286829679670717366722448286618551968504418808505806545453988925751512676902141195635988223287990295933608334490848284664714422530937856192102176532550068052670004006602520398817424476659587249590040969170775409822178133459592059672553170949082395916836397249269541683743068610200326324774714008718921632039978350020939579475015401904916294653405794044666534161032192767413333216433090976864823833269910147824012665102423741511423310039531435797355423149241631568260747823296695779421945552955533152657350608970713205584600862463759210368716733266960876081630216211845358169156654043433117975134462198674260918880387928912682953338454061146401765066298059736705863635974683489479259352675822555777012151593679430112522097116177196343318705037524445757737893644399709607281632456706250396849270915707186778401912464273319419172502735775983579952730233703416063211383286246966904035330317226891493294974492137602011590697827301512464616555404274316001870531887015319858154629959157982542536262280512782609761271744599456070624205950411161279169346943196327059921168647532632685151227442315034044143236006258657245776214731510835642491415191012173499081402492230994423958554703415316249183356297274978531949030276602395816953382892154508614127356550313753189940020975751281648564525144723296128261975035212653382724241555413368682746752475281450904510830379209083027251134994387889616713325388297493824116004654401634070092415594784677111579681442583695825105989962847129362485768631727842457207187943443290525992224162771900342831225244825231270132221087026996382153624578452589416340838310559875222101455952112691605963225401283582746961135704479974933679172476545797140113848133800885757477083387517001804559900469707428943265652037569574412091659145983999734002190399155768858943619435561768997569752104160758595912533085038042333463699322852149920668312545026521575679895964755722348891002243120041567570614626097841969243951992283638415538437151671940237354127599192854352506873157871160575210576921488067791198485128912227379685241494833599027153132727353986621902474149448563511265406339689604215992946127261406237349446059517651807451618154280055397638136831998876229520225848255169716649221935815228459665692628472098345035175578805555034715478570821669393551976780418540776482537999009535763307515460386306515589699800815875988699402398638494101812483598216517783149789186230212157903460085275614806519430493353425706662018694560808243033947503084053231930722309228640979300830385106915556496945296951901380540562310862332562120585730923184899922707218510206683254282095266220677183897956082935685312577763221244641429726471638439548555270749159748034170472068373459061710540781575847303485959950307630850369419344765994908372812615476943708213528688292603544408757013513969795205490425141951165846755259577875712468659256167067732381616506546403968772352149250297298106395773309572638776627111597007166075788389392120948182150636673885638627305108486439428532241195542193672218291624031437601864903347443965732173350798846408715492261184135368948553737821308580352291008475010706989950292450638086169510786334357043487931685755978414513933010429763865663783080189075750443798767569444758762327981425192898571070167490046959134181590219153346490325969856503915039002407286417455045058789900593033977556830755551806806389400628072233199516150079241926904832690406136280122837284878473461886074037094508088523547337799365260092133516542402910100773155588922243584810206935981417502673275397254797718557760381801753906407090788134538429347337530709848776624488005366964520178529605621289772470884722564666161664880037065976859340072227681249963370073988453440992370420222191306999099278644204814872161858442607406577514700543120278877274699344031950325944598308761278234822307729569524269029353700694427631429153127863022176218295135329659819427573231386004124407061652335713388783703858120025348304982021401546908158346934114365719370655709824328675467279388173348211534907876740291484711542644777613145712914166917772470592639047225608940533528034956511912041981528293952953651184088047096361871869940244159203486813832216283473982566494899910532510445328141147155797168742864664628060180370633426985003781336436215662360275743976321278138901361265110179715512646924770418018366976108088453770032901959832239165064084983762510188492582872573226791134075088026632149316352231221154668898872889087954757947527786889845034243249890600136196841901137344820705353362111699443081425840063564584989335018083590109069374719580593058985707309478083666631729316533334906918601449811708612013288373069861845060312072036365259103035504559481170585533150492062626661116195338696486281562160540595206848304331153890043720014653410952723015759464572968951827185892766553337046029073331027157382911547686323503418285459545576174847843446506060182416502243555594533508450003697283819404542293358038786369964622293684194760270754184879506826372749220486347636133674517383678147224343286429350574602639942664189256943808388546366114180485082166961270922261069046416154068927362639867084771909747874949259245802336778265353892020051720411824793343437514825472956874623687319959667995342908540958520573687147090563092981629432766343795975829928988291225312358381316203163931191071764175821867999803780456917689499864361274852051386727306079121520561536340161271583287472167912354859918032906164182492763383407229085340239426334648958599120461403491310060001199540253033345125601140204271819881054521301541345976104226214627673823110683132832359666729990716260570406214972615490285706233221792411030154193800543702233889464681339603138167251454674336833640725835413057799967076753351331590695938736549098675910994950272057166353302985188036109459404174436550151195324425442034980451362400334747701303690615702854535299428791589157102726693207509716378456046138220027666936320901451964767595305401929014962953363642493810221736510796569613673796084681494205082622328153901091243939641102503616135429672299849830779447578972685813242884819328631276179317190675570395233317631408824865263004068323532957678114093982309098480498952120762785027813497637181744891435591952155505087103532898081447273983522798431629293111600454779065766204094074236680915711548227491896729530805977178769304383536856969381194401457928710118156620778421569705162203267769449789425300550689094200151726646890389304846330270301661533432260757508810656326350999108414445315024383866591610013607811411000608655016512833199984446973892530951495356460407117726091585605913446125718498722172397679482225516429687327029084525036830013143814863477623457732059181148313985655837696983952799247512076714501763762909872807992950735967413796463006252872348803760376226978482963837855003342043321314948224051685372200388741285888922013063870430549991133704924289896300726202185753596728233298611941892364759846543490297654621554100978282154250173976507166550246766758404131088123337621015083552888781802232666930869456484100267712134260707531343404844475612345028366340261315942177099920771777957281620554987697026330894201298552953060544065208563470584281699187974694720989640574591047210530026256570094088100862029431092695666571851640664374833110008942276558250492500772490546661492992843501934918818345589458967115792908803005948091348114018063519676383786283658571722187247235942476572666968255073944119224646775819138263094032434981383080550511721070668776511307410386867185117428960097327209013792571973826973406976151510042054260758186209438293151918029396223047213944206398044113703582638080584427255510764100018030398607153138313742910059075538158339553000195452230281191253956730594308085245820982256286665533370454011753619715661041147744382705497525242266080566091466748397171789027358199742599833994486928900925960602414407239006355464839085555287716851421501561748676029086805382128400552662340075990536338405213031628636474716428428647116441177560414439368796906369085381464776522445066947428673879634660443438479664191079776332951568750619478676600344880353542251573821128439794604261914701217221356691585557867872690911557066474561500087695085571427849063843726459104901088938869512166840321710637421948736974527554891637278998400640765190010952886371701671361337461164383031831553271447473850534048588215866417621968184037988420737063420876692132901936839043065915561392818479308900341219080585431639138445955492613775218714640632979567831638066829617782043660290989471646680417267421569773964124473674978351005519124275306960733585146500252850698165979221428442144789044208151156137830500194993440159664163859832719538557116260922782698721724464046066301529676712551345109219251258362915778313603262976212473178232004993252894754849339688563311383084012660890075200497355626328168655852250130947367077883350491488923055990524614994964728743718255371798093668818107326896439559108766153621575751762929759516857718696426559122164368594686551391418901657707603808794015983576770555137456660040499472513734449799151155990486708896473134438996157925467357160043552235560842295960335032642830325124953594410731969361785852242262610845407126758403113828953471276401239473342651009834153476759025814045679717623012693393338301101450773263497512124221719571509228375551493674445103649588827444850692927908216196963549316680269676772145084940121667043498500052905777665193291229432547753852121700697394233594529659501742240540313542933982424445195299453258807186936652692607570343479859894995582815593071010406215278826292181831938331353140504269176848844651811439428398899360753155235641533408920397744044584530455011548302380175103640084143181886034734294653275251543836585018389407796527458738149053211026854546509080970544232808567283605382343435510230894598490367485423121844351133351829948764744971763592372319435815755850228917673180709377801544208944834087462379110289668566611278418794862220328975470007641580126020332340666365579460351407781996411400730182916660461227861451514601477051234756321162086443992282164668948953132113432729392444883532198978799410570866632996362929646935658221307741596692540312929012400013935465600058486135007673174292995667486349642343703673523095015264286354754255413207393316657174088171031572080267013253213921175421071586133387675165363465539493046488929635209766755454310420359661813469950888257546312297525693019069274047012171649172219743200969746726792294734639222734212444556011902339897701966028540782225357254836194548387565895480700607572395558400025038876534870696064252449434345046986173062584411524304476483677227271631272962164275626920148209779827378244319823348640542984550462861614986269563743994721751904524189001293079244306541543900367290726506640099810482618894936066578641619978251547262838554343801485025393672406388281291425857851732633151962729551762939856120614535238751098790143846463762728284739701877930921769924168233521761302682312144983874897062535694637441293335314161756108076684989142042113928192288087702498320430940924109639930265204092331726778633439811103947997430257453037721367130440293280873714071724353399228321384098344305582806423484809839774301660909787606341669457355519301824885439414072139549992999348508776887458131307305231922016296662496289991917539901769752985787302508313168329311741600348629021356664900067270572443062166743736629742558293136669529144983009389646835901071311433183533213320103942005227995538384197489127528174060926441171030839941509306982884329902188879561076741945775447681163021959084799422896590619602187453834938514276218865451482805061085497547430800359743402203916626866973329626431137104111018635501171513546260901426913669837811684957289714746688609698832294731380634691173894642376915994754000247360008369020699301494108182371880720648304886223239846531122973383505554877546728957580122935980673140065821691026487757678720594050610904913031281713435868333830716912819600066307288603901481594573601568238049672359959461820557998440659702500545657225266694788956830593070896232596793376842420717591794262907401271902157709372043057916352353999722733284760456439469589244616290067723129838388316543332035930809002493231518121327734017857490512672275262989807072639254566738869618688451338716919384156125758365989345189499142912771204875124483273200458036299319565343136117858302153052748583094777833677412177334676736965180233861342408683381274341562898419065336455408056243797209018063288705051097102776917181302500253859206405010855691671623998762618435375577503765683228099685714148626558790815008280502730110482179146648608049669285041901311064074149837558976818631030941524781292449386954119922940882028475432742999590374236681019648860094240301413408557662900688798895453085785682819886458645795038433440412825037056988759168323799408698026627377201445246549707437480634512233400223126591747333457704380631769785687950833693448422268447472557129105980103771157211230388647770994299567658954698020716806298497985086301041936860838648604647687337172148447994718350830010007114396730516111727813703259700100422009877542175490785842693876949227715032142980196567402778903379900476880655266856204374755152500988369800898567288812337522675534149526069990654739235717288449757346775671932841281881546444954619507321952222888313293554650661890914242719715603417493061873767468993220358318030539976112844969047275168978054031698334313744199440015730937462678563700227733630940433381681686609556350229833227540615643407217836655211647314992753119000780525243714828394495074106018726150262221429019877012226638650396853518528481859255159258828518630233602738775956543072132325396485337447798443300679568717225968862558993582244065262222586295228120083669749799866117752660290449649937068673586337298819615181404756970060218100294883298373872345153289786532637421616374015049121990649988892362135675270447900753999464670513147671628146233084341977044103740452684684578223785979143002452500242131393119935290986402200381628753095789330477840962327116581288639164899363809251699950048516709508524147752945400479072665158432040813499751738036119347687397705724057716736609535265752049606398095434387505158029364106860141574723287094954205393051205471162322302759754557787133274396647872039882471630405460220559625233827232456952289001748827685176482258274150877831526251178625001662317285811106138688999407311442526886692146320865472023464614432336824720144641482921271386042482112536164464778289027882654572252151268314715256564523220802801498529512878682315693417739517834989710515005912267407157683066138516805934187292739496008327003213799117824247119506612686522253357380876761675374090191762930200192386916874456451820641979552435080515315111611499517230279029732404800577127008528490431935836223603443115684477998408589631134863048820557779580879075109640487590457694823630432806944977014661118775681366449836973819299395340272171565063287239662348755578410533207809032596418231268409878174007004111027256901446302703458964505186914705084909217471890066458331871358542127308876719257660110803584794910894576051035555313728701499340910520573982515440847338122806562516675487569282067551247636194628061669681005239922800834930487538796048171379298874428694170375792136762705551832015309703951964111157973062227538415992984826245524526247337245820254792278326626821764322432634347447627839543984506923918074779200204686986348751400202054280430235139853141967042537770414656000370697104373327852323146780925127835910738662922307476951824566741742739790168877180421356390118753713399097334635628111818062930647532227712242448730638248863288347001367517553244531807803031552992831882063938589392080758699478653401036048925513648849617178931736596811860508160577442350934202012803138474739703051903263399510206978288287985669851176911945849731619693616511959630710464902743320049911096144818621305900567388617529815636723372814898580251045786764011574119890072045034075088392878760216505220112597328246340155619959040553983582244736094694097592982383262064423740176333400423747062132422899699254758653261512381884693034078736751396581819477122582930055191513379241819972552520107637698412417281582849074083290378096194797976388964373284672652740474193716701611652978989516862528057221712913339934726625715293091450807384789533220545891996008224256767711365818485451028186474154426546411034653790759146042379841202893359860400428680681979085483741039370340302772648146738299148016852890548095298228825225392818805810714425958806368578019541862201504875385000202235295467376697758824639207224266505489817558067646968659207576346224806433638242748912017507216213742785652412886907482706056730301792187803875689059521870969503495794441485248002515335132460672387586411419564218942459506709775143167538776839880906715896526885777082995093820696978317388200598306828948334930585714276697561974084641597339705097052587806942138753731275496813270837232622168707822657237676902423160910754604199207730641394855882119714089595478778161725823231393577285795413597389330381943057507058206210824754103666508908714165572955950812715153195138834724093706555822108249603898925718651729607213139633493452913525715380066598161866999533176873295228127740801351797245512325976072739639603767087674780423372004872484218403361598883690737824326721936598881503283658554113195336598887164404300661182816856872472730835323972322263915804378925805957568820299434628379161683378149579762691614475665701077314653231014647820862475627087800796449772306583958294046694736702894780167588646518149606419028245954330129196565767018256667389822600066963840523258290133551121120200134481369167556842681954606897020499091927332265371787401411238495635215908177864223303242462915963658226284943931805278445308975681983169450414346003447421070100162203327426980065106825447355073074045286101542832818024477459199656707037864352626156669304551492763243239740716167120074976033096749513103564490415376578308616659364379055320430054419981843612065450045967344823096040188795629203722438061940468001907035392584410150043982676376340297377581382732696965726955262301708238534088867354797272625780537139423437398546840217800644686757805052826781759127962596082876035827816874483335540070989762460196720081176213630242007617905802288290501367768874501466888962816545986616124034745198378206446663917458941891319024113975952929936920428627976559403407351671201920455321328797155915895867185233916920008475187645644438492751155176546144922562906203616079359725079226463776340656540370393454043528287908966156516887512789931234904331381105270911487979471427506915802997294201688862235632571799273448472830941284618405580261084250964603918346039841088676018202405792709717856187583777981065470004247467041871786107184469257832101040201693963443158840938880062182763309719020235702214351050123065491617131677120045224231869218093205320015146121418099010569036786058042889198608467072241319915389344165760321257340689861637721644586844874301564609743255071683630497964244365130994250007735911008804703424863223260378021364016765797809946158240921988537614535783110559201155821966681517835131749862033316134951682736161639891565354136806133601984929404333845307103619559384070692975878424889505419350789898947116963793443687312224012910477850301543563418973648631292275806085295003795280714278202068808454738676585554917710762889371218230556254812160175865857062072789634750708463606245074479608923899709090905054116823694711419920896769347748125235357457477330153244496990935343541438045947682655673502166309830754393671638764586851503830963708612297324056801456777214094853109354827627176929981897190786955904614076413490857203745729392458593519623642668109979827859935519576826165846897223382268607254465857811333059486310591200397373069268834301741112557216222420488819440627102267490548893990192297598190269838943791933640351037583025912016029011059201967584502374492346003239017899016987614120117676811593459467701088033029212165076846583507305054458778296471852376730695938096834039310502866663421529396592318988436767686528179324681442321110887782042902945590759201078436984454044925163814222416512650636863171689479235370938243735379219020094029019973400812176531987262524757245526429942132384557913407982544947488361902597886494113290848801168487095577697332292742176481637823777889313062922400438473588813214621327910540441568057766500830582701456021929721487359240164056441726748796078247786925707427037904464620849134630745376395751021216809701872765360828090914467686734264623765693194210432801193379610612933497303945786657568026463233181090433050458796546492043298090618145129370490850746775431708366847314334078669570244894275491192227773840282780876678620050863481918910099399025228986525271902289520613308839804441762309489715193096663403465679229076490287294310293067896692206194935894211554565419686264370761199046915041717460599949548338027710276567094104034019197980280200461178224906997408213130259265194364834198939007527534292743118341571139470855019604721101672121901042073683477373906105918929717078323647962891643698630605077913033836545963128184924556900210352817081471448380984591523023146021601185707983367587375976779346417568306780336141863336408696849676957576051872182196304044367777922640265726536734401347418659046450023180320075507759986539524291350597197204857893571650908343251026166011446981051323267288952021871717963943118274971050887146435165379586030066281372453750405917386397080742124397512283761489940105102314717123661759171724917613485677431689994733540056471232134891631480292252852169282014254387391485883701036471506801867839662065968636230410832945980619295650173250791694765055443769693262812320938985318398185245202309898502523445737696823502584447307553890229001227795099494558206930977962982207213170782563902150071133762233069754872450969521885455618084614191106994113748875581459596635078238560013374323745906267879822415409449262950059258692645287542279365354731538896535387562288323595349767850624508656791685459765281931493252795765572698356931916515504115112633872403115758936417187455301543473825892439121382604587927539486218528044309191616672232332108689054191076974743029527258366105854108392326534913695617556638892315476846670546554936498158394183216759595195849660563938212961608485870591561914545805756249903821612492315040279877438510058466074978637446595854953129672334196463842058320285416711520047836822849337359103204042797039070256648232735627160878585298887114007518156464187801100056874546271059576902898539387593277409831406022323005199292946933192934620265222703138337596083220282737588454114511576250147602116868602556061726839646472573163359376498306079639446380849428292983691269634411001619604559692962608870433348988010021798221339095865092404009352879508894441740653789668062173688399012829988785856316881573635774513268043925949597553497427302470047768705176280589297285893678641411831548759471464110695433112147952814856315134196648510751951277507994365350009282966324236899659218390664231128363181693051956899408240129568794091884711239902442081708864027996620498403055783069397238369309679144813269823909755578085726028222558092503234758888408435192925647759337365019105621988516905320564527941019833354770009473387133917277305108155574978126783045178347659246590725996297395683540308557105136038520608580179996493426961387301666289034014969354493675518096648036465213554331693772138789873340872506497375877715662897757705757914242712385592959338677897002817644273051063492003077926140755337492234521039209674739805312300494895492147800807407348695037743601850755791748141160967040825050190361802746493114305525091384706305849532645813443613146102303828475242280185969416729273296130921580097418181108789973637370928159539501136635731998481349952356503540015055317364354500472983276351162283441999225595706940980243501750171073848552219911224419213667657702961076788860028135545493538557787526277375749845732614860921323908919371703056866530736504619075262754415263414936668857631292673836362082505263109801535010093688142563644571946669915081904597051900631987555552869862777737308958242266839560412634601908955547411148049244215235734450729261634368765434335868155148485737946077770580523050551100777934198048448870132626899336946084272829985151120698731290032543756401264849583173971445493415816451605821955490485930124482730412777427305710127571658630929434467502680721181796710723435790682273992908958224871397402360957642333009421985283272010173543045419903740522213337786797035539166046211811634745434643759004733290068113344075977046551179680168333151301633843527371082340740756116756429287437948827948670201175630426754522807557130612956934132318158743075667128193719212649706656701864049752239298816661946682162498025801390813782901176905528948387076581575379254632718233524916377919014962388826105276375089002809070718609603241493539426092196483991079657965437939269758394301279820983402543385356729021546263658272847832361160304077621409449338138784297843352050358279122768950594328486094983574323119911034914853223792527524211757166040062127470175469934551830194754121669260217083275419360862305174673988587380630335694349049799571837884913810549123382301220785776404117081433039620288519947809503387697715137125038750454059282201097679756466349568489673746163654098887152716246226522171188452040285994769353768425615683372352523533897049811941322342266826438643627623322386108396825122938660952487075644597620521538823976188357345762020590411514701963939992272691082045822644974987568033643699205998090532117978194807534900150075381245292876672164384611930816429627391357818836911629662873812636788308500065370170660392897611934647243990137221226487084738406855465348913994441636089265346815952246396665235431413643846897011639046711332451909851789852283719846585199133144461457789515570355448371200664222219593077190201251218635312941595578989663570247785036347439220130151316320083495766556581468858792732693329126376286251392791777359610413308715496186460334900762994876101598638267025160854781733915791158359680085770446953799757661234508981704431545662052901366080563075953329682686650873987582028056866104279590032334125233724016261243740742798717721741829741277601618507159101450920280302479835536253246127529701348198023870182237151992639619020481793377689403610063715266776352503260011874023255775183757727972511141641073858544255019825581619188822109394081529403575010094549311327347228897375248341258899715506247472183524354516728928062667559922472305154825979816862339410593593910172690699070704421248806971936029289318502086817331581449000539595401518400343316769367351272271932755365221704766949332953032423025762466969750374191747594569164867346910816851801163581215529370084917568954639029501889161132889267169012914897781240210227268395021246409941752642952654220995882056273286864603092461132565293217337127084268121060791525575189178458472922505049019829051435487853711882617901710816960170164484633476655050782150185448011726766220564593423166233278521125633062447130203443620023689258274311492144504757209978411634234963458554075962882595590966641030444133426202125786915239697020246451119397873220803139096052086930050571302859151221699103550455622433871551441073694421849084894717094285558752172237735590260470973893561029084480724797533124064850287440865960245567182442917869580043212780306839624977319569437380894683889800180114491829862734007701771043981381916830905160981793356373519478007204947079439125298094777352495044951645285465168553584325793817629965108757357960888865767287286286120244872102894410576437027210694215176977353314296679273320178409722317463422639300398619822734389153127770659533298328434773262930389561769411165581579545667496608360677169369130002997202712597033600458387105392033792659441920249887970968681549522824697794765948542537139279597213099785891204002848328065517524175114536673595754961496070110827877487126824433150749608676944035632503281253572145725279539398435899415818192695557130823613652828509623139791121876646840529966557956858866842397010778283542608518622774314242385204957518331458076933071482990783617805003309042335905466834151982930527074027768680060311132936414313384134311074061547944825247517662454591052603358757557119636259536916480399005709999239127019323457057269102046892284801652538164550038977358544138453459671778912802134575943643732194068727223677626574590730363341343685374749765433640101467364509553481383127174471993173551829161764367418573553989226055546392559050368099732269784224906021190566037784853253628924075623118594434793651131040832558606842037631884085854247730881647188452488378662187938397593327415089862470110538480445782949778056985331167151624767120705889106296889127689402006734683294607237178038989643986015267822449309010491397090044740760857867407441341053334425568695539817315745666115774606901839076542322999149060739900321356809685856684879222455240425723852089645496109842298865712096908704687829727789057160548487414121006794024191325960988414521501849764811379042200410745991593262059012220643711968818803856766138555123967471915187543058083298065169502133599583373090653483110803171592168940103581776470654788890197911442686932578855145321650735504603424982654415236281696169273658427118062022387400030090672753386306100458783666000542457091819241399563299220703847207798543842027217505324280134449709069781793228050564329382147677219572212313850241119637813318555556308492461864603415222030997917551221192363382722382238861721711250427027230721883776029676493152939819825548706448835494281467558683214674288344430195427634997230347188216619697791109265993663085190740614199019333406318994598103364469518867908643828063085503237997737125445303423002384085142582947949953998638413930323113506853258000583520230183769569724067238890742568681242744799039724067254003553040116679126192695915553735058557724731504475270472402522656697099097087494927040620421383668194701506462666455442228921147283570272381066843598616685124463984104241845406808522428343265338390918642586815330019515516399506023466814339841664982975276721635644291901139708308209465193299727953098037930797059701469862719744994619930062111583912305620124771253528490111429761872599046285093532241174828134344064797271606415619101897716231255113709606920128813398516662856077488396093996636127111077030991698993414441963196565257269210204749637090425498881899941890086414025424231780316658149534405042453603339828626591173373204918315934377316992470496078652613164743689542235954494507461266217645250794088981629512151227040925726510996477332170824684395228088375092531955041809383854482091321323335379606111607500388866546622785737599648431865075595930364390198661425299208054939792319546958309712007747123037511299481644198149666720790481719930726605305874919843142257461336515386607335964173858834295474091265582476960029408549772427817056221055073048416758404795953849154725412561158788051383952130323274874511310781042633645539429489534106640922948427267785215395717022940143171460723161235867158906400595649441644483384951567800583084217018066701458991081429593418188153309659981040593638608774646997812489684150615853450222745156628867417706849086004176191859348503006020539967055596392943626414370167999985030696149096639586585617245446070966046247189206651210632566274806339362572476741598995264416124855100689008699849434404740459504756017615461653646924671946371551265294284663461284984857875793586035685551449552322303017217201272228669982167076581431217960456716758885409003450693660116140600360801588713282167827455442231136359973329172208901559835589545585540429560120861656093060234871452141055687594467959353060794420892260160438481067047154568204469609250994200422920207543038720148816222352944740348864858334806765948858276281182708040043453887417525371193182755453383529843462154705825326741658807432974213110061128926360683960950627357910077519981677997429386454743007499388005347442197522344178678529213619267932661203693032821773369558877137821325491996006122149241839453065929624305687527884496883954515202259929615559361508048464506943219565180764991110494724004143409916920759163905867526013710243796479361655108675209767258778036536515283711342816458632821540373777641942611918035154514559083788066034392429297400343841643635439796624159921015763814811972813391920998536440981416392453168029201206793669612196499175696420945929885059577429265175108406358865990004726504468859810725196203611799239605805913894541318371173780144961496334420692175086570716565089585758474759441968396034029691448989131228864163891515361081857497164285706619694632638154244849422890782715840314527088102504310253941673846901140460954779464928237677305409922564818256541960256419747201937331161008612257166746091788170691373668702674685968933529301722792984173176913828396933713298382872752506890438805147638829452639998351269011384790118914262845747699069088409428676191576852315087885032020739451108344959912893632905510068961178238132829572018230964277011598613662432753980849916621574454650349189109066805579609403781043059881618555613114156121213654170059986040829557540200446683782492696215484006633508806520546296501345000342239798231657246444767725520605236894002961004504119662275852158615613543941514330726253773369770036454777560506203363848947516493429167545267397182851892238051735994809360568237304837147961112981239595096831572908245896494842204894870836330689679924647650346496027363505775621168896752977769815049413666591105922339206652406504243102898601340989000288356428034795811228860054401524885534073001881402698829701011778359685964614956796270741969545475450499984792628100249437469821592185797523006847014722782474919504019355765548170015043375407133014058434855054238234784555989182562866871401281396242143596420468895369690634984380600260524079741007644106321291947572001758322612080239241177777847650855147980276076017515152960147362666471291659709356461524424215326781104906280413469921143247870975516174704106368905107065871462534248070215831036990781665674719188848339791667088012558279155011433640131513507951544717118047653301644378460285258661098925196650928936463369069016774306780083354096608290791621198222605771913244035444675491595670142835051798602402220016785028574148145088932306432839227941988697750964761225495390152530446984324187607653555861973206100841428589184344305573249476110064822995750279824709570763131643061996714997655060382985968632771356068831148513307534113719777622562898893091990856960169138516242572445255360527662995096669954541920367629164682883703569425863304519712292800587924820758528741618328239739663899021972265179214708293937609124678791977475263893555481116362729290932410546870549876618127144977018484253171897670007453430474514776619980885464659181933244178657449583483572792443387677265975135873155229088601535720590242002763336302199257434843589930317555519144211620992470102011473620422981527562871607316889415441178067865210709121246751205530041597147272428189325739871836220986058872608658268705546361885210896513241305487989914844284682706595800588737389237940477146494889950954060685190100271708310003746723264107922067133976171642628493020525092218292892108169797152734156340662085515989362923759224451377533287633339633810444240654491697057407756822031391933477401724310358377670297838093748896686142950133590563420923502146376145258740323831634831455590915126227541818905193354481016704463444382088999162621346693919208634370144062413855197759321107426940603296887815169515825857708927187670757107680772699993140757061887179296271470647844304946169675310209221222034963945969920257550764147633502477089869169679284206806657570736152756296394658168451886435791195269745869286390046619545323658891003310918700075164369229395110162604584784273783747112816424816492411117577984326796147025743284658000088452974692264190176859995987773094218683688981440543322864899171522290463579536374205747944833145905871818791458038642353607582815655658624282705215733840690947413673061195497097464070599135910528096311213011240365916879673813831446167720661495538947336120247651866859301704569350856999765334741510814291062497441249242990604992839402301893684179975852169097873217927994838756756911679737009562767714420270018426537793515176808810056094108773815651287283768955242417615018981869102747894503194068304250674471675062556074998714326422483206944618092121157175103114817151743822202075689031376548867207667003107867835615032419497621344337649986947799658627328296298850502577509909978164125551145419967195883674616418942265357446540155272065333821286366987249828893229978430745632875812059024868546265683785294091964872631411037214564653806831392756549932486613926953876933376195417197134641724081782269330020331116176052982800026288599432312712580496881807468782987335678519657555696000383707840368378248164602881489921734457914060364126816888474681521567015472018335183520784072745544990024528212143242024687916612706473795054034894741455929188356154593780038100596849584318570105616924696419276043342368426196824744646906780422252967435052429903288499035752555468822623450403682342093311648152240074661999797843873710829765141158506994434465797050321578001127245819240320711808549645816534350790477414526754344825697271178389343798093770694739774038290325588816965257894489013784518348791757498616916062675211044574049094517064649469956861432603800597605996675780498855011002122163791743440484942462491259950449802370691552425832437213203647624014464024977364612489042604856030876193477217485491874826060084822924134933648981689447098850733255608887447260103580717327326485045508021252230690755845327668406439788414003672518848317576906085877580833748220102412421356479903454356907626290827442559061518534412539901737852506109317326477584509254784616891984360391456586931095636400667262195809777143670928999620123958714571949148413409943523101954871586498569430365852509215814278631707880918623122996982000197442160395468595410093995700356037871399867564326507929950159499184773417101355968790411641785760240908915912551290973392945954878964023357339904011578274407169407067711895138457170654269795946094103143086063663800209436292585055253889701655384685743681485456761806518638055202558409482958968925945483049778077026768885068027452622995501253176772266530844826098811725731123351600830868994893752027322088570776634694025533863936844239063937815557910784474336564316579718771234127038679894131975690941724305580363546700439413251140770256367485103286260738870431167660372829360915215922470564953660140696833360498436813149040880101932393736736973897258168145916051648014829563966058110728448774436123486542031811752735500728769771209428654302098953274375167914632808577270348161346363636069553540680654410719179265984156905493590341584358813397886460432401934996557928321063554656842785629494177874691905518074335584493041796797593763747565759761936334686296147478834027567153905421843582956435031628728860220197870646935047833546238685990190305615187407356919834898700346697900993098309943507118416028964107135976175873343751255236313771582795762486336875412946300896944042725846446334757223844537720964350457663309048313994547015613457404519072497487630801613397847021798852859473723550834600750519028632009297942932000595219078997751026655427107577103647988765688402509157925069920586401538456307491939207089435591478617066368700483418905313924479037401410033097855671233271134367454292181394650100249540267921919151591258308365056055104697955189235927465391061305603002837770117018159406959118259164409919102137748486662921113997819218070052768689335889093776290509310680667517996956429775976201515020070786122563657794628162726143613857225200968583751686372123039244614755970270453487435402317426839786572185931134482374678343162849290897908990186832065611682005517171458835846059030419686635963197639645160840501006337221421596891565207975522560205457323981211357603740799428190613363571321070743521379059044622504691374180008875264597005176734346126746824576479969460812649802623302767632382434325476944349478470054090681292457521883719394659351376048729908735076751089966589976994168175211251582182048094644886085916057081469806799033051093333822338876388586439332128880110617077885369910846709779729156889571233048453530996500906003037770396860003576022679976575854722631529622619669899115424642849993032962057600035351939245202804528976813157358479064933791328210715065933879092625104642941124753824688757789036082395235989050053694101364912060228329863616700429197026548296591185231736393552370922056966074810422224603263359188369765703598482483385832403301316780574349610161847353904087557787207144753068987261960879164182734610243405323613328481623838256729760521547171826219084772383833339890886593653410717364714245045558625222656900974523709969775354278912248893513993540141156495130674206811434099409362091435384001802665090418966563652135958810275097145312698623354965566188845124761738454597426323995853731736628527958398611744473419325446867040677422876475028896714758918566857126945842130768796422888142759054838526661369539381663868993276578071358430113783445979982024234916772170049831643335510401519673120805615970605448357439194732354831482889673843333932982334645874283413633514745602095682101423221758574667283024811514663323158093026077082746251578708656668976282866769361430517537625351299172803307421448478331153774449172933315394412733966421105690818837726556511603504814978790416704214245158262013539418719852710736220516208740719622629559576281739922247440307542224203324283889234032149370589393962519453411276114591064350319663144358660056441259712212299484982469777418795367063713576398468576988489887533129057564134908248117499101699420797468719847301037057599626132011574232528306824958967848807100711135219374014377321601791044175700445651472599413726744364909697633605028318722416424405339877084764980030017962532337962120810418679635757719905756397263858129624522043207019311249345031932306180525997542374227438670346334517466496604247443742882625179223116744641673211691511743471554093590301852571850334742376903084035754211814517898131370748942186017480416449059707728825610973927930450669725220120753099283577444454794596286827353151965665486776411107963148236537351345221997128630163243005375192788511319614932679469977972514336080126219104730555026964363738716297395102719468567850134369410203776996499409026368963116000453269008638305586328406073820755212060176514158027543220952628038577668866046988164023725969045442632355591863796483337720285234287157856486242645044839356892218994023541098097146613459565825324797635177774807837868203149626242696706509584021122462207362232360819870833618125733169421697871634607623365478853963484435154972370769194835161513298669856984394406670702472384997266394899714256511597790582820728431005119949468711373206882533639279153572296927096414558256952046088354513255525077150321433314885563280802180329010120440983758119301712428397698863323329846299876066873841609697370459752002685391687345195242472649711342929692716200231713023982249413544560150961236827769244409427292496980258441130889513903431069911058609204654924892147593830220946152948683979647343057125460317491853153531501237156357078185937765519782447618556849952526639640260237373105767761662178643721349585053058316369310190789927539471519848247316348782125532359984191758379914345459866593315048200618221652566166621704918346488807246160317479287643378765311388284586765797430009641361953805184429282739271782178222680377285406724853735633262659997582144144485353496966157798350885671350183056286399965366322679698950963796736129457938953439835718760608631551251472989633591794334131120680804138542050424314320559477464708282281940444967552079524982584026644940599875064969477623704626962925942363155949380426116052778923623648373600329316197435661447599276654712288659041464712348445867257165869259885826919291869787885543049726223859731649862730808746386119447728701909089294445375689246140550080792601975111846564039998850931199645267481930698607801919431694544539008735341318409610045715053813339309131098892086858801220185964619700543578911525541582969846583592472248759819928460461053059574683087576725076288328877567496966468528921129983072192182518739909723428265142140105240077715336522479265355734576086649166179224698259130774774752425025573049999695850843064666467806118772349759194923040321707626274939414289678018128119654828345457880242508239663356855023668795390995055337085128277120574201830809002632392776409753721225779909500067342965901256480413230070869225857435000998700341848489259911314614826081605921097230013349185852232496761783234728448987370201958743851156972979924709706924808567698085063509586695762271428115048686951472130964978919504324406877980592598842642329503749811447250789047867167396395994931648506928425808612804485872548277845785346134229151450885312256684136051119959872325011022876355297534672863012482143504749240091455567201705225736297041808577501433501203536695224941481055596649837691509470900708324236649072216333911591426563796980329875340293651423561072469364626960285526737981413646037544270241763289363936876337892661566717410623573401861971766775617686631012545620516515511365034831819441944126901285101951421373479255992960959764058116002558583743396664103997971075300113387427871886087048300915661965864282532270048977224533508816660598586545179326571903080142855231377952149220120361419438622532452789609895709911035067947816277276982223424695193325868828560387962608928001294085965865478634959329359193136362350913616487563292695822111492823472847825749701278607589637633652728517446408221850688955258046967106577267764652449468822638636557061153772092061187752165486190065635137262497630775205381903860661638880941170913026654838041838118835503916655935097751979697429406409965643151505270565228063038528847902109561068020650181681207304379906540956147635382668489504079122883283983221122118213863168291923844290479347351676129254733266411512758808635764541695813680627315756537334898225495618570734240804959177009630362072329875843605815761362423707682342713592661627813387784358511871520812837516650432679991487675578298511823063301063566322146634274208701272116950735722182777618771334953282279219782688698164224425712122852030635043307279705054552306644314570993076901261559832338906214841114380230009550892750768022380736664546899985626878613923667743005032599233797475098631831297898735879614077366814311902458261153692713638903108594015197505726564086669923817964210509995570020390510071511699704041037913574621712866235171455000068362991645746288747604309386853296056805706245732303592343457338040939866671194266010045703799483703320716795917797870038419664931949093129887621110676098860830244159366351699719978926714246121562271700977171410448393431792403104537598951219254317465722145100028856504417066888654916775253320636418950642751705790586726261869286687552698037334066649371010615214062753971561194319977155740736605826505425127626170472179108146283600934270818367192760615396745444904311236621537394971508743095569963255402111186193644897347974541260754892022060232644469417151139635776154437339147986525344932260314712278282591412737903703520022773426438986847791338983626166771938198399742102892441225958558468357995347123021164212108582994506065296557066760565373997241733799050541747079486285470807243611248757502766843532361488933826728688257052174669263840483292436614098492659319488715823618659743337759362182833298964331800125510335515333882598754291671369023532229778895918281641353806803399009453362062086585587018125178439657904034200505851404595470899652097909890991441848150337632690622226435795054072348960844813196652812012493067999835149638100444693951613194394870565333579280088998690512608108222138542135701988877208280201832872121267985796365622825731867480761342425810000814654276489214194228965725357727072037533925149099771675339633091488325924314731388912911188834530521138251097232733654379610626246762137863314665427764156870670557755152145563494618261195151947408382708741677411113456323027866648745762117894359771339784303475576907280096133695823121906734473715558284794917672616998098895809250745785416204846891752326981217846200215367719022150986855636917138937551429801697439057042283557754467399236932485377657974928154402588099820265542493702960529360510189938890604502123745790693944231745991086033651758043709784616867106774859212830529168143625855380241503004834210099762614629969573119683945142658788823702503317931225706814619425970328201349914000894366488976091152724109266764783827139167054400657232790577130801316886247023640087707456841464023601807145106290860449615416388827161050939042301088441648497297962861531844226224962177979878995856169416295561987459631217421797930666840317410428294900107334908877577790333653045090348033928006974184237175688167693850460460442123963713949608200790015134019102812138403230343535443466807544087860379302906234809915498847263123448843624680682436511567545877678188147622603689648864047747201140647371692012675190365195888702187856949619549206736911819791900538317452569141378999211763795165531536145650885267640221326210441540058140244204565841978774309691025214560810588474572703196728953204274383575717528649443194325161961395788713202955334797030670184962841743907002392130200985463417551793319006785940527408362165498983635702878034116537477865279473540344003255506528760806407402444252047678022985419376379530880764082612777880055722248993885292940165304956814947414680427078236506440954321135448341499626594621471361253406414267761837483915246524368390042950096925647757754293214702668845556633756971815719277337297619996159167978261012198137302305306308353093680254807548547138380396177759002845195770149434337637764124374339651811843273030898489671963759733590489669729719247760486498312864233354684948033679294660751913563460783256775439293769883988158545184639057626647475774380819199326545737767385038965892644727736487295022215163317533919665599262764424745883453289886800567593513484786589184279642746610281145498717441116544107144469557711786891536142739372593865945379316229609250033575654271532399743019651166635125621543726600391956416386191050740376570541439022232898112745293347865397322220274800854180639854188100092989355953641456787583473941801210712872320356165748563600514428619656899388419474168366772991374334336492308806736357328999981693562122868557266896927995456249588655891168071223980389511321137924521393140312831824927258129603387849413315322273360862904422532195608739815840495830805257893380037857574446493623706885573343841704584376948364199685421493213248684128048705830329636235744862317370840427181194695791095783477938852981466613277259912481566135526366996947751721103211622962368162431359921327027172972004723983337173088659443194285077636556637862422001199178083965119579862050222767927552629848566660262189563282306444241276770220488450617170932312272574865190295242565497454573195131460859151145564465390678387311463044688244527072297912092646013167119311662466684639547064876640043194008992493696217899622874717193773708010537189709695442404863723328783785827303269908250378003512439046370762725438504645890699140080244649200591439754638053658131383079319051561355573619722683201225323629388706898957614049620518267127766418635589312924053316573977820361184488219458644868183735500333790308475416861357849932126697450269501453563367392630677793854973087533549703440278479021045584036466473737518162169929582193007974523932009765711628972742937538510905644634944723108859844373430927052671952558008668778017657215662594977264250186929679397275856791197007126175552737467729564167160550377307766073880492956125116145587268838741720280023124196918917414955867620453006746744528856247545175520480812666451617842190426450216422057423973157963710921330226064311936776145776907127214755353020855630906802436162839497533003759297996839469781102807708662806939386381188779530928750583924924769715811691737804034314925499862021357049348997417678543678446415783670993356934791571194511109123890912805254749405171315774869631128509398592176674353937758193845318635677530267473000302642446022611001879344682415859700981590053869239744246544589696543846711348284813043886123671754007757836014328820344234856414899614431490151602606145259157806993694836187248904493104382991251316319579105567357321968643988574884880860688494741009748557687127769719006685473936212412508197529008428793816987983679851461354838166175979167997439573475888256552605688674873511132938929231038804804247454715853983120509944446269996612485823872478951234994783312754223495839119686498141979508006638943025982936793372253149108685448369795461577415125326262297632161008191729907605283583990529976102803050039884935518410919366355780154450554831809668942649226153704353645874238545778262537974955460132154783799896452950324100439267944534412147806952126806136687324584718620132105322295264973200498385084925614258131553958647589722904688561854150295749157944588410712760683629168177626821324889948131607710234638067556034283772353529231671899983413538044718036910040211841100310923575336059388705702387686921905442533469256873097332238824232341365272057563327866407040934753936844921943501405165011124353906645335366672951874099167040005446316501334095392927908763826893530950681200051358950006843831325609252111236111188616178677157159530794103962338424851595595770087437192310594162401585580765758518831709516793751395518378435643274167136050658280470951570080040725884957247562776917910393163756333200028083995589117213147027688817511730210884118029775632016977124585991916879694179271814239836698866868938268199007635729036161067401858809696506424505989584625647782912233499002815303564367329422357090041148114455950693986696747749604108224891090486941126454617844369847609916862672548176278316590908555094240461229622594496203637134384803779852103420704516869350778193803690281467090284485774651620274162575887045472599714859482004312746295956340036006793322562875112428721873225655937472443168246498114756412481753110770113672572871788107326252691921791745089275717231007752809648786248851769174463496438516516664165339013373175652041558502932204324813394046248009275452446158939673892345084824985293107385203062067053470993328234306953078670656962449038448169550789537560396533129740043678074463742389804873874892902580841293993923629940953832209780617296564360808323644805043152282774771301307916351828999706183739266597598572927680768498967821436888644461067361033527044916613427080785227920593161916394476401600374844548815824123575954422908505264651621852495717411564259560925213758924319998481829266154632364992686130390163652066256035037854666103991729890499375801042452254460860867518649479189928293686936550167442511296719493718093396254206548871812433989591441394391576951238048190929950588520557274994071497408236984198367472138421630731020351202267751682876374986758623206310386975816070504113026600452224133495122394609983658398774399798274749122419580146780896327251623201306048209011994637201611393369721767360409612157120504615838878187389538590792245151640203830418592727072624807429420947075619755836478430989017471636036799664984843320811009064181829684004516266404716070298695075118930942738613228297118604871639815847821010806278926773876052618850248962833644356670895981699383282136520073828924097444053981987629589168369477479901380853179841708908112721576743043564389228384236016277776059849604658581422717871549333025441105052579745734202805301300374640346472875876362179640077530538360958904398964766361132827841603004523610610813439874328626126092301257402057521651001496974356856855443394226751773958071935876267484693718207996594264131001832752630496518945823078680589155361048790623460258817504759218723392422566938361318523042187417133019175982808255503319412390579157361214454472035566388036046801318133871128799314103291579062764551046601104456614549025815663694152743048762617790610009594983139392798771383412604757380970883745886323033573413754715813678110129529390220970654533725254455022623332617218340310848905180417247909907165850317579379922881376023093373123255205259961199147661907692916706078178726968047482370425291351323344235091435289069623948496057316352982828850270609939571048362167202651898145266226964175818104796046195552904199475453674379187831105479624710244626671391668829811981604229646586472399214754551491205341766833818096415249297626998815650261355361473143262087902709955853167462173583307053828414341067498993291415645617428317501235686427822876349275508372924214751385516572234914881171108750113396233931928119681727934489591469495855286188913060494958141095159707631116213845646977369422764472989093689038154028858702054372908596922560228979512415205552045621288690950507238529309196069053229479640199268540807318737480463806830262380818310862730227604980827662674821789333165068962755213917709741037213458148443820442822800461622729504362431001008036659601318220499871017558406099192276145272260325898687290832520871311830824153335342027172404037306107841092726209807741845159235595594091968046124491783301804066175452723651844500361644197755568235598254249316287400728906195108603087418540478681058611694163958358739542549232905698684354333018883390416310558710613524186439855814186381000218835307582494764839086789275178878355153191494553907004768200583890516371854606346918471919066456277742976813521962614568864503786908744684036283872328599485003338172832657161364557356319577742262253581509466970055329747429013555054277191472138839166312874846253137034779228332973338164476530651450089135810029589702805070079417024939719984383665960506055013950949651534399894730019070255735691745809018579369865033676115121066472231751194138234407113850691888832203527251107748106866941231366953781745271591155906173551990132971249229334435655314168173955362041520916610991035700473608143571925775634462002767298015942751588266063237004918395959781614222346810909393644174593091933629784392612501431985350674486593057316756929309152201524118646641955100687128478298794834054943772516931867193166031254485236548016951591549568134521798276469946114235370995739012228004762736146095262638253470826136810798305873091686102220868068774995972353453962073148577523288442485701134592886538451866804535496272733314097922142040933332612746535543163565416144710936131304689708165117471229484564764652283237835175819250016616019452676412532633370560519911758136147850485078510857992861074921420588490437019624461395316540965352321015097267811623489326930760709007987386451421430066390670462094645565351561770947747557284575569794892411117104981988673859838076432622700742253606723381293797953541630550293895699973271403022709796522242341353968885010747208519021395714581158641581906704947729965014449747431593513606473936513382586244942351268060646832395153327644169111157387519859126875394154889621897465785489892550832040077683774522186966231886465165008177261197520805995218068494726982183706710933741791065325945093118563888551861749404677488764054112908668506858283619533809351063637467717946416941108999440105894418284741626028858598456224388741276181710030394268396947322657451291305521435874784463773784881279282156051143023221993999438125675799093723398941445671790802375003882100852575805466740156083022610950265624660692106878594001727207731600445793754027604658392812519093061167746417270268502227182889019030584098758187498210506075983337515608330829157107948582097560663627336701737307465044011827761673827307716235160611522168737238612051948188521901560522822537901946273398400176023003072299578372942501162766610313185378143375661346836760316860642543578358311068028743758055670981405163267910025307635446241626995197461025914946841033377159799759355316255924034825182552345971146328040278161660542110973554295975324213893848055224171832315079972355216466417624107015594043497709488499871347776737780955740307327743817962254245667849153827290197576507196044278052076286368277836109173554964372572749418992939620535536292311736488204067168037434574367159418723938863119988266221015056238630505353367288236369952294385632262146060539216425643892208210843903102452587270415590859078936464308543119840588728458262424508837104614581646892625052063243555491484776999852682333172246634629454013165469677627078786512018217496744645573779217671136799582538223989702009339114798924665028049457920480188888180300758877773449675865251839132541202345871990617456999943503043926915826688341267267910754164609616187867528134550485074245759536424573846396611618539761930947092206566163863397021320647353806662652949787700802727176204411735090199626511513461352647294970128367721308812712058182022541802730356077058808249559570017426870027883312386558118596208680227411592767652842615488310712321016953249508595361966852879515346861727049472031018527133533070151912789917793247177445491407426290993534539941144051719696697778626172994943484270954426044209270026671518411025089983094882812756635826211690044317436168675881101135373476621087692652557775277818532530783249258823972959593204629949170400083046940141042266114358790852110127853903767269416321431573086391852742211264209160618037138990068386450410972172356006767136907899487607582104646014261286413662005970485626545895913261068218219550585885944866625067873449226057354626787269340655477242458469980511077272917399845319150199336682765285431220697910829914193018453470095162369080527636549026002998994450911852991147914635134218844661589695090119899922721075104747448920398859648067166982379154484506402819222221773216618975976460152144116404073054888195357403484384966086109567621447685360780390316451988571179803648832914534066317477483177989135040382911209232281891575743671429712327917753516466422382758342996079423368045183521280933848002674375870929705202272051843419079165365947788510413332618260355022067793214194242322145351181954541816447987683387531561529073677821531224530410731992231887508778284160899567088080795638751138907633291313121969327120877523829011942911561309039179512072171554277093654060047750664880663321707641708311865360397227019645133804060019406391135690713381056087090109254845547869118770346502999912504448793600704449935703858790137589665804465273903545369570806320468781031431884928149675903131087314170635731138237238132952050544459639325897973111426174656063885367891029383602768810595429724255519787633135573491551013070166600349614883878997395700769423471260843193882697054245786681611949751814946119958442582414892715036222914212395333578470826829492761525407071808414205510593380624224904343600324541032741703148107032186151414147700161467293608753435285859352281939310072619724774675594563015830492801096796952494482384430695716052420234048639306972364076696625513055960651270737916691654809540223525628406468546721264348559697124068892844246330844337949200281046325085343189447319838594483765993493958493533778113280866355801558579191064753842766817803482836133287516712652737598595560575840018505595294829874504827938728397221674199288607939123451500134385613275808187137208789368685137926444005925827191667171611732226528630443875396067908344675791486842913037974420649497014424169811898116912459924216500481464636850965994633913963425393220102547350647437809174419588371304327163667995127024269283402840247532609997459434776578717154883401162400315340997940897262820510180722483231852537170034290992927674423340353881693880236785924458214583425912385800029537459038957288397687778858667554264283881502447919965867437856155086884153657922413468884168770591323188160823512158692590367755218350788969001226973870565168402441775125805608086930193314668962193691658277528836548859147997231739527215368391381237803351938312885227412550241081346204498556035590015577917810711797523462493786727971444100856760092207317988375722316698523084646198792642803451861819136153294013107884203407423271048828110903331604075625441460185727087736878380193049540974509954098515621124494799482907471340174407678737030731594555434241519469331081447016067817844691692770256862007921044515094901770368449882455582065502366353060999740334374397589930554314494550145626671347035585611150483191938860554763991966358799683723387760034078436939675427651561765454519770128762335955069259886463046242567675184191895428938712258684087687962927220020464143282733946004672921564962094653520026657973840879892916530516103190073376931948052791239128120210484538405912709623799785048067272426928125588884497724843901234205846804510156219794857603574007888458125867837419190912134371068105236731696512538772054728069635301818835443588006547278562107138612854064852419125878847122063781956086797904476886261828264801268640075338854529181445006911162971598669081016571601418402088149516833386470332101037840241378284769260635810323443536464905068062605881749454285367647069287627277514146832842216257235421592115981562082596437190846141312205612377523305889931967025573071420756170302054207476788525896633798401378872885955275841291305667078917056784172549517406342863033270797866039099066226755612651573961541243296606121766280256994046462962637327363027935009392999198000568763912012516862938333872439233781504104783799152665131422417505088676802772240515509838172738623550636292406831730417051886992731270427484790713257152793833577233139590052118813148946379973600905288356100526018150492677161142124156568224043647176932323067814121928497915987362005310011366178470401180807824336741450637517924761938784976911849782168425599288997207144567287326958855359175235583366944324485144129382607808170491888140023106776169664247563580568955498486431567379104018486166388742558059620472957753709204408458622045187768018480534578588413853107200684003561248676031736958833456387324613569861840999564657076778078311254657851584886902276116171523880374285222439081846666910113936683248263156339002969884090588632080396244576819069047791358011973359016361639831980224717877361414889731395578022045549873462787023412041938307381342261565614125883537358182056393795378988998283985311565584256743410692968150949107479062662892436634457343890330317426397012971337107649322053827704782755616864811964904522362815358683561258140239533374556436421948976527494977874468654323831950511909581410036159039642063892434421531652652553248066710280674060014793466807248417205991734212003491916730181166226718207033863504404358941206226095765247382930971502014067699326202815260166091438856735697041182691436166309759890868474414719213981116248386320413177882726239697178916723319270303859281724460896810861823623108863297940600286129056979382544025982883112471748574559829377307005477084839773750443269024833807857177345909221438003346796195168013086821222490689808762735261775145304194979510397862250816551678491384025535712170311621641398149114321414378836148257551793236826478130517634486217119012272075246162930273840236834398787207609751923700550187924736431211250566144625661010211026552318340751157822072561062808965846677955320100956501356983028196675881328123298141633524121356952692983505587709332826225886973833798551642815097977271046096217021358743448430083984168955322210089996319187275218541629029655504370561689745576323027347004102947378894399524135098137132210353570156823647137012410618245421441281010301111608083109688443327665624434178041346420519107243825545251690609464938372042350064628958580754022345372307061240676675643654875751518820819539333094651695815145240251101388093329195725690096322834140623714215733401683070686984827531053522259305099666155576401231768467681126107833925976360775130265706788515806491910796647149761428220241035790813154730710854301592515616156587641788652566340629281850954644568265081887563063930406560041666884099929182695870973827082490785500720960091993065433625016361289468462103852209168300330682483006443232629028020377075623907598556377430440439001482076929723964450680729879341664300844717607942511087498953231929529408361473037165734488820085057000974527212346865513488687956732728835147046740843888582135086600766397334062937385679970719739306887299555594478386160039802541392319418278147132171974274540675789062022264377874594308727490710631035117788283624419635281159902089054832838695428104430672932262130685542001610370740958708239063177939940952479481315029755523652687689729346277822582201542243012108757658479358470916480127923090276748445739693312573266357684443300253484945197502498005888385182788258230285017571326939919515808985667142369776512948651502561120301743267470416059768535192369284886886574667472496227528487382930334704150880003989526257292960036417116159719706216736638793560414389856501404525208235125938057153160181805933224579658522995760961449321960770783806614443501678846412733694508761720800362941979084062042312855746619975378385169615281792683826836260961323258444149403753936562844826539150082674702343177359856964452665506984641304012666938823451581752647308197673131114299004865156655932680869488136418520486654781249863756834157137963998682422935289321727747188235571433309969188803492765628268631685312528411769613327317784456347776025362057329750267336353408178429977445398426879645994362642635880226702961552807972220920210777700116399611493560862470163369465839089533182199710755881046036378795348355280187435502698744152880368222319252936204885016402671071559981683534039469065630347757043778153176873135216822320698546221627251644118273847913806459238985261242537112590160363383139100076006154198719956950312030525986490340255978701599644674906698130020899397405070436089857777547422997724312335678868013944301158418657741500319670855559502704659065652897965086942805694276585518182596458205317483796057734352082359099838473312119211178601635671772681002444444970040885777526045446068349716010946147661115051187296077841760391051174629224518882610298819498824118477052962934901395086704257899279606017894736148095678435205282505219366046779182695731282153152990318575931592107112334486693502552413821178060309380727012120080673427503045833269997669617718707762715569950891440202203481840581565953116662435626066555299139596236214280354887266748234400784327846942768074866367484414228230089405739804674605285153512843244177588235898881323130570170844867315723219029697867511224967726281460392426547694050522198157146763403679444465099712200737987306961975030387272376553455007077889975236013627641970239191658537881747014726305512880145909380028744666439301846825521500446970367195716732125177548396170634750686012689120486039120721228087290096414134723236430925884053885634345809477006004855179918792839555523691151089152040698644166139784984207760290504540650932815889457126727690802289490636034278411051148488747219051050404029934895124740701519852291615178836429040907522993143846695523167040871503080276852929529558784844743747327848141052580654350382300914552811412819197644593509460061086377289382198625134661477636910191751346733428058081768345762054711479691170528256546881732320442746359675986629435167184091449128483780407451718655319378768781865501793796850597238372735702210892339570292527477957483464374993520008525560451976510280259511020563988520033648352859091876139193419019386795479112757026752644517247874698833303067705133141385567870883340253038180267340830030865799643021665767479956092385325754456758115346379028163728261006159308057440029427422441424969037233843073896488398310995077547138478982098928473317282031688725839087938523688963785924486765772370094053444977599844256443606949995835258915390464083932507313021324557531380232500958865386951607721717370656991846462901291763903197163276994700697871789940599495605820190147219058298755218331147607918219197235622050858060426263186718639185585970134739864764525432221141239331014343928394493752719056078809114871489187664947079321859228179273344265853218556779049436285135419830780803668402406865385887639356485754194625035323322216713243995498080526967518102219005925539466340062495120002915991662609291992132107685971876109072391751428437552665899195663750875619422341204415746600128939088793008724951665959401459814938337278725579854568241316687487111355303666437238726376657234843537093532383309544033242456074546466629384534439251556717288828848156304023232055897090727453714154328886248109163039774176402689854778153490036264807505778011655776154391387267702093925604683254243982560761065538984483143621604462104408608880273589443306669729862094891141350984806385552738912989170307814478850014862292916304772970841932435979030875580614344998903666638979501656497163312935655610468339508439361970231090598697109507765820131497787931108964486024480076156723354808065879814741418463295662878738244462751312082044799495826927588375112022349928907872664548642418850556578516038022535090642432892358420030588652968327146293003008268849843769824132462618478507846827853293110304782206994588652238646742003255484002775766422972724796384733751781035143301978408221352607098256211762172414503355479374926433160844544263640158742002758570640709043458842032847592792553134683757827462303406641440606454013028287281815422222031444108164253238641932346613471987455146682239797148584242100081462755400070644909920888424011033309099820854552196994906655023040063183144965407043651537778794830258038740282607570694301587960745654843312211582382577684788771324497213316016023353122024069824209286482433234812925200441845957556265975464947913367385020349265890558863265596949405916398206990840628143470937720076224345717922231444265107809249403203016311209897171419753654358942774445622615690324826437288322051038317381044868412678234698505770148099894487082185791990579402893989975898032575595556508261831117999129329922454905161679525918560728302137624251199777483628019316786665511890162477045406085361860629156574906613534323713525877526801940600543856422783138200541578992359377684970056567287705684338789938245220151274591981468401163322586197147038276721434388393789724085467836656356525119547710480723599472760822241334917082875284822095059707569981179841538772405390758530112961812100181017358886764754144296024918539195332030777545628448947245720315630081041211492049440840155598763998070165566112182917998051650218519352440857480857525645412394107627167073908015449585447433651999334620210900271017823495470856726010817741996320617176594039277380990984632605590439307079500305167325110558935190825232948495362119507010957637124909080935480087070634130852404987089238813413710304203562977056893132029609317970264523865734345280532128863610513404028854930969033710568113898020404791819223736692571631281462748815726094645336588459940257794787543759071722515440532022701975914746827501660381828023906072251110923924930865076162486477734619956352486221691582750523600077726615890749647693013453989083976469307664348484421728876119868764024326517357255032425052644018627626565682684642873903271041160479952849130491619229181203893188427778595402956856410151458718748163643547900347784441631831943915175928742682417173979135408003130089929448321563614338425992654016130448916958732141072028973485339059631001950462387851180774244486576275800943496490601464961478440829305727833103117849520943492386011263036469250113929299856492935734321346341105118584562757363501002380403558766801072041908471255391217460591661700129424834462722904821896746992477556668325398781418907466765766131324697358681089712769600567489207389120761626777458089058139512305006328854142588975533744395485371155095853202473388092767037317249589315781284011877344196435430699211139891336642725977905477967016600733090187351667785600472785322543433832148027578562320191827544878772015551616703713073443047093308873972015276099122721562389312401469801724769986731420356753145069404150080725509674062887861277418699488696048910731488931507890875156808143353464291474111862182244826412780789328407560781187551407358635797149191073738735966232245722701407887558518908658808921713698560703778479494272014372656445564342742832691925318802920735643449299829481773673293460057319303399693770517957890055150403892393259736123747881721565715767707002639670287654292700877444215855668675883301621683972062919776323306838351480773543752508399515596025077707455796374403825994251907547691328896965836538605203424207234872429103460030920283004082232040896174203267201967260279274581089706690054025090984053970210910143189463467754554315217007230531370840373160977278586328915952695750313613243218740733347629447343963633431233057964139955198601326297683650731040614323547587652286184841142840808845879427148545613376393703042809940410560352369064402302016894438375834929349934833233665911661179485269335924131870917573248969318886750300464083146482127694546336398727993045749291424717849196949869577107753014052899264277457723728898537642400878662343514250934470637475103611687197108514868819683088304397577156146142450990061551500048972878343710505925295027091913843973483866109000582852223638660517797657532149689468032567133153051314141669002612098733725801585360986224591249982797101534034174386676301269729140275212335067568880457853107417816235019539749640935577313690241386750581047698418839358118018541457913671069666711487567241353822894810739695382414493178303634057576139633851181599691448671097709623066489201561672294389880619470078448290669757793339412473913309188236268524640392526259692170660755599474611489972991366050469769122655883047120797997592426116941305622142783254838787008327954006238785150823621947064540305521436525097698653810927656703280628679197515918940881325740705868060776159529639711901298698277877186113711784472434867500765995548677076400364107392530499720041136959246072702334916098008980337579713460888390851227690925741482955405466866799365103585424888294277981676124911781955180973566410822774500498353835982636318587462070651058132175450836279806954619138923519099210721515472921191707348036692091437521608213405747701734747761177694692153500185497736494820987746041510007209876261609315709648423075649820857811863825100557379722542369809114931406721664063625111918006468297003092440114851959533702443801457749408739349139205764975992602885409527264618991919084992836424429912227766171930411881365231518213836866117493948804895280516947675644842296847172311600442782534369589897996303683425413331838475611286631128403393618547089845657990362612388090331301226003282994687540455089569023239698255382246972991859538132849083438425937411177697730784279305318378231941035382206430580913422459801840292494537981001463658528519004922392988114245393241156752668873473287929094982020125236112461471345874731111803722228892818068002533022639326069318466923670055395975438162305215889638659038284508368128053379013689434194544767377922754583486605612764692292248275348958124933040603312640408929106233162386886866832670161811591204590483327119728412113237747577240633847052321784547906552684371623980550545704964602316009205899095656571706426218609183013109556108438272913760864738565954577030704988993682330299671289681781920927013267440815249849114535495058586226826160565668591856229320024991110725781140752441258614893066992201291741658671352351618759544612046976519297898242787862330385667833024145076177063381583939094648744342544260855733943114290897233467144813370262498203265336060752955077371717126138270734740680783246361877323189266743857793444321720006230101870130486634026587200329223106962386628750774536625492474927076549366362444425922586267629966344443307059928465294317174891362310238031111710402435540390235490265039233723730959681852033058658797535868466084217420898663496546469027664847814792530360138907404299060277419358455193628449007726414526655820408624879789682525587351235475888588430440322379750295899083154707841592321854873940245177192350620985012276592012242822422434468193630886988153807488948478475998225566206093131276380004583079444464901606523951774129804041945068408537314320127490826112666275878291519694851223063938255222405840420142942569340969963301465442416178361095536050784695692303466193431922971860147717814529221861012127031409320614544918733402741230256738409190718423804779167844024503195583995095030841915097536002312263072729577380714753568716986894280822283171855552704816678600674933924402158705745234128509913626753536051619320283663388235565573713272783777353043146376850879712320348098990949645298120419824106565127934195283394549670619848615054976222447728171954484931966624736092203735062641080873076416646736613496974866722961623984522265605681057532169449545823635422821001779119776819884802217095066543113138958887713906872067026570483123388652461543923869779484384812569783294886448869527917538058640843760065511026503993063907482028286976907383674457218712639060369166048662409840413653357261580900744935278501130537156365439259870352428402869634485415672807745533229795373509269265191951876361293153508189872269473784363021413348223097324874451876505638724054617272236060898506589269405158637985745791191394574479719869332386650221838959205779014114634173515465192694229841068445698017601722777194329793921498153983103070117215607251773109554938308834026527462529812593132455040947046914658505032132227038732722992755945782074877163426755904195504873140053722668652626146684129590804290878435540427234078301927247404634732197543482791836272178224173539317722616333646039099143276695962368638326284341989543039186102312192063330486505834700021377989709398432052294850142745999047077695781794916100733427640172292356146007634503987150788255675645852178090326326586992916779906955878522414756240152724955092623049426717694227578537414748991453231295686120299304553822464525318640671388153252901035573732104392537040503118539954579582597485788048917829293463669829863689632141463782079870314077809487282451318300158602486150558921554456791469279629123761473337689832262113601777727031147107042045030593042904157179160724199481894499290699715596887456136134000654298399757281218344752318776767484532020083839229618757561371427954512019933107212096814622271876361542884835183489087792779088839756725783197820666386383422328895943773765454886213773265193896279556181767554814788097380444904607307371044021854482016485869290118968263449793697682395516908937685416880123262488529721308166382461296031070670048457695935306668832730486553994290328280288550548220744754837127528902020667561494766665311914624807145229403674636797170300518705913546846985458003830616042831709026621035612896868283328102599241003680659595747062956471513045652384815907542389341984788735673784922945140912552638288316488433281515200398588452386086463451274507781498547818988225366522530932591206097285459934552549168701042418361719940148914213178119440853869758329359690730859876087106633685242693464247126318102661650624916087115800788074275783328732451985601477485827666387296879739904796729286685748775297212065526373499386906235556051482542228596557476438813444075026457983443574539238757994566075465099029598457319161318073941676486559149842159486268133475377095059722421645747856249360219085156898090908490080490797336753691015866726673942695835506317830444037844135990132976446079921543044878516961761410780855058668902415634718375500156685969036135945465339801970803212024428452632796573315008407473032848910907225677637054580050159617787637553736607098118000135968443235277932129385828298430864604233264302032786381563500426482556686505805880122390766304836151422043865785992686888060803158871273238448224700146169327547430000488730902193408650804299981523468218806236267776894097949628875881418629580010117001379499238371053474006992135121319055245231673943866051971011998094616343686092799448762625511605704209492560353529393141535959911183830899010651600023772676205421729969514065125574704290815858480641611423778071348948593123476150997662146695197683059741942284326289217753827465989212205029641525351215229687127651560774907677005866736713724421532912710006129750310608238900078476586662437201157768001623563431486977502032440758577036752712148620437023687745583740711858653069434987437126656654440696009730478547001225671995306375659880466264008672739800851005625300335768737448865593800042966341171579572853627174469046777781432240767436537682495944127016986113578672382204603920972079502794560501007667001844696877849847589607421406713963180503503171244502485734626177793783083025809062336202842445623171991028939952966179766952823770179565659671564647737090105827116415251975750317348890583363754287874125647041249315448835955593347953823684053750838937670786066340009851522323371165489268966228788751444000725837368460283739501077758278198415621346730781212263817938823866076178263868812067062503112070241055174481042986347954148933576751713397993985326970011290052280013063271461939849101437333705497400809458852137862724257281858435200523831459721183669563677195290910739730312790914025116889138222812946270852818427395551324254506190837502253776892416468681217732034075201458444376360331574215441828910085520251511033304269217193580461448380320511873536997015971704175519021051652742970471385057500216367182083681249339487131373166800738638267827709089321417572207612005609308430191530273113931257660437639046263865939757935849966791309731757027411370411632622982048033422364212735734149857682578714120165789670325999553536990949483489058550947065583565935013789364093771321327667775447550395750632585880445735636807769827730330597281219272092995943155269101248792633064313833832589027340567875534391089447338551638036411360920890972417046888310936908049733723499160765051657307692183338207379363498269550179122766116020793779568241114843667740267463575514960671948002747284309402742758920967298045560168824216926423001156696264716891400261088869664665463396780473949663812900716515655140096046678798160487859281753759075857339249621091608172506803668286675727342199104591249939699990687658585839291597378850001021194434188632314755287313544226913229286274982071372299332483536973089468130545690605103273114514510752298994128308286337019768915088669746460089042529264204310793817099081982028518438985405986364333780952885223986651775654843953913849084514025173569185637017828718107119197980325829087682711428929120501201068086625950494589993531654942348787539469248487071295178202799569772042638128377018843883425764004461805529281472580236359323107373635294714027466736273848261102218872340189586752513333406003225211793398963978874149353459070105153944787291004777736429373610303037004556633854802450028693860153202755424669625483637750655272029412538947416285186474711049832724807088889978766986693336162615059314279506846460518221818704607604458735319516934966598326172960693697266629471403292241655889212688144192722652188849148614182660398146242474719232399798598222680821302956267120426925979613324764666612583707308540119870809122079365575582284130712249561917322077015259919389449502136558565372665536306791535781247260212664331962140689681586928579434411215173360951991742974251167310772908990245404515717857490866660415717670516308028938134830859384004175478681317656542236611480973567582993069441820605155737071450131036176005441823021673153215633617075658549725787922063368884748281256585396343258963023596253190292364345924455358564003984543856504049661752363826756919354780905734668709932658299520468931473300341229716606955246120856708600743254410964001952431014248284937690078762670646369115194491230852054597897697809510953261721614606890850042180643992558792809972237301834895656205584657498343268964815897286748620917674113797351115967467156700154987643626344328563274825624638920163967575164816684079179264066923590086978894275933553013012124427065060777623405067489225976095794642853547953810403696940453314082631149300390598103210102287316398500713858712942146006899579293154686095560835158269508618733414114524663592957742504743255989998292214771951679979723528627638616128255317761213382565492215680900625972382214470857163719259961872802857831770916071719864252515265364457604347592778318979452022505339496328251110585171128704923017833250091577461924745342453499248010740899594533347597401671489317068590247920030045266738279968130629937324823410062357611252567305734205739956724756167149636388395017576186934176261810186919512948075004398040002312149456944176459235132964938271877501958783182273803752496920962282578794561613547582258145447222031432303878745422036544811413095058024723644145894760619205089592269465456439453863010380503835001670059181183976446158743203356270405125030774373570966591360512604450019122315630440462511782379591365924162981255288002311056700019916856508834661056477702401900533586327694765252386724572376521797986847691774528802653151369938776903820889584130476068531727039545109407939308029831010628478880541917991393463599332750481030728752854499276971624169262037790376863059022608963953661753654958158385877745424737938999164236533662332077520007149442547859061148401416788814999279640347075552923803790232297708212510966380232829074356863995923588903372621307230563543146626030438443999250598921527944810572491335235213293295106581211639569325413261391201857295890878535407618222467924682660721112021284290595985842047225736637994692602546761582356880479117393780334742769024935059018138035071418932714757975748803795967798927634202619345032383009696332750900440434982607117441574195928757470318450616269589951524359685411431344605853120312007090291787372626271595754249429148095129539669995610567250182866375509672437828248893519723771123724830331976721268614167196434806892647321798310837148112245807443582806011954779672926070022682476776016946428872562938252824635587635847738161919265013718301757690719981178761003846041066708806785365502123812446658371283082411327314051397270200664930157959228141322763783245030850288111081276945796058983892394801014466055191448270360112990259196475049233660114849459429942276237519086744316873699538872310778507124687350336676016072081060576718762288621729028995435402266407046239479836253793467210359261912669579392331818616654399583423119153442349122009002378984226909843331984251622603139115037024922485204476739213020044164801578898901772750110906538744025169900233752072018332767992007278304013836896229128104733786947079145642558942501475206927954487969290122363826823378852537742640070819799639132432749140682193718817447541429851737653902302994445880938275291452216991966698247547174362775643314213665662840882066144573414222141874195185650900497047211840699653703416865657219504297532278396994557830984041113255748881329199179450643653231617286915520372371016299014518496163389131114156938684585804136600396532439136466941102078393769481117509871431192236951301974348635988655440119288661639341014528277445253892002734344268413133813374964928774267314761420028180595502116614441333090913248054788625069096021899249266654996150861440263936771163155453333573943840569488458814715704046723007226108096717343070138073152976467366180082783273533449181714571457621159747094424379091108280007551816437869296580737258113894763636733665330412450627331937916904262126923283246205365989573979958269172135636708350889832640160951309804541939690856914599728334532223746843896622832181262720697543117579224000031028360163610814968189844962738656316702047458380807732853904943043400029953421872346203539499486449445715716056633592322030494321860199782838336522809103892566700111685656387618699261719663071339273666526313426570704493398901823196159619348251703285565818565000897282431017531498113549561151339553286250019253726398338603421459745933028547566838410561556645410285587891217847134699513075947034814404306998628755924641757274966013001421104686789053542811372818466550898476002975160583617969869430088079586695651059262169258868480407400966938846770796985251021035453030602933947873689408917994076319568266601497601856582586506273628491410038994779144501109183863113226974812399421702946298858374500841275109198353227574661538735629562757302030612421238025344910488210463405249483323058362042358163093880978874064784154260870960989946479012815768152190062780233844788042939801890626842793916267547599302035462508450470233257761254246530483411850989951213036945267636201006154193019949193782019895963450168295702983041083776978645602515261171058661988258467092233334472814315894384549006760998175816049700419493443897444300253018190720907312467138462456449453970949589640531586382353017451103731343168216966691003192294958899441186951910765329472511794880196181835542210441319312388616449690682351922383460570970947859319269555099701834791023847101807588820063967271779706293037597880986236652021328584728282226230314373305227440879620161185037279081461106882488921341765044708751844511445079911798836772104070253539767217131500409225791300956522288343844783981068211336215422373698263267490054954640474692651397167180730118573379896268270450909880356538404936387216400352952254137585333150077250572557387943221492321678000366349412750006812168558510553482557163190396635611479954344936442652141564988517045226967142095354983550497937244480819894850483506495443437585756544332776003053697970527618488621913610414934338658607010278651134252918587679105274423299128883943717932527176366396972362749500339083186633280717701274407901778503718058860483078133615587403772883332032582391501779459294732997914679431038464837221500045366701270355432997650100572459300112636564093037503547087932851181481917907243882437487897547186431368436146919242324714069420849725557375658802668618784151602650480947461723124664757277624615795616541341533550689505692269876210805204984862708928886625450550774428261755573683622407131924335495630067172559681259363638660717391823207410187758756404876452981743418516939597083579659786386760384767062861861896355268590340303227387236335006014426196935889531105244195546071525181584435513403226998242841907657102778489723811858298589908378581444122539685653256170612698392475778393557133169115390231882715098118543809739434933568556982215548666684893621983921622374876198998484456760902531882942060974668075971239868715776513006294216645188225599872874779758271022290220107642966714173092528166822267277171359733238872958521019640185289144397230748421214174291285829453480688161990583773254370712129319075524169732228727524449313561971334316683187300874546498058620706980450354086013357114225104541436940800212229426755358064784540271032704291184047346607647691242232213941162237843765725705454803152669619036672285081979812725196676755022825377384941469069833063408340961794715259532844419728774700317490307227132104410197228119035121860097426487815060894349456856996933682031590601272902572615364179912109228746548919293202298693965224629157000785615302349942391724839319968944074889827501415381352003700489909114012570804319203625859131931055326506447785179814284811225787054321199061955128988219324069136085517126707408807739079950469817118213397559531671766646716601844366579064176813981216208764086334938665430831878518886675796125508041564084641374083116497603984481993703587749089224110711472388501424406490538360825748000181246270638221965376719776852969411549086500685627623051511210333849347621126495345508271286808034336638375881994174303961915913093335678691236644059518752507947017982668370835747252128989979801261530095665829156900241760593752847974276383102170093532218775127974347232237104255524345263115111212282521057496226589195226557019087629582783948178860231719466403283688334070362947118195943028939318127002332486446161560204336484797229312104478961510040711368269372465503345488496245889756777020727777291815904799580537296363817135520623095747284872699237154651901970301514688864296529234937143626592499540545274734244185102386959082761460036276306671759444249358051510432062526208650262637781002083577255245008052479909220314211664641890857361445381452132897494094657932588933954227589533804390805756861271842163487733634538625745439671575604667931392996070898970889372076307789030519355629492671492792667010014720230235467054710316106541221319419580009657600648027482689687489313495736275472010639460966509477214811614942831802834659421700181477468219577931570384463390065920385836107142579589903723971387731588707000902451361980251999478252446502713027932844597891211421830898663849280364909828459353225620297837704248198708778890005764854738709503812111567964449624855907740685208747373969333932976451477905690724820240062437070643375494506463043803875713611471752796223699413487606113658352667644177239597721365980773603358884699781453253470947170984610962153533381149755590712899906999435504548259338657074884498539155479412467279339543974747439244371048735859407681109462146609797902505660327169422097800423897355478931540265292905535365286454101833534598883287767087389227900304096984599412890788232123473992225095723900206093314514567153616468248237166720832869934773448146294924293140189114734182420846331942205920868474185436817603558796842008869865534521040720380505235530295497610044652820952099827822113419351766614841127060870804041357683170385634576500357266963622092648831631587853953886010294034600361981345806223810789035205519917284124314223821092262196263630906838561289520622349319328823446332160187891800656294645096177098138370689260273266523998147471175930823864463876126124773242989820539256344265002060140770052859392276044541686031596616919381815809852413687581615130805222485771418499567325448561375407226880378942665338979442943439277859332048562080251532758006830938493575862444274605845399188343566744134235810227900699107347089210918720929736378963605015467467338897295333093256371410725577988171905417028146522813022219864217959767817780930426246259269069777155412733295972251597029181000462147367307279399722468479146731971610934264713766612742795201895179438556298342857768013531006075734235814148912303908535421195319975766006388374646132029427912171903335449964637696820714646991380782320600622487406079100958165296593253937133995576945601763564895840974546525495736689789722783458916933790130054467391405433464261914798314817056068391486140607993233790082828039579430193917213651276467956428687277005068859893106979448274984713023898951634298403822577705161712709813431325503616974875393213582172618383638203475382947522793125993538126822609396809118899988070465085058501594832894630480765679082290228106846522141541488248517797572601073731423576718785633318645795325297342027225393193493387962852199412053504031519226080562791464105723867904973668485298148860011092886226172542459962391390395827609179839303053812943066075567270583167835504716051470903284814189830710616746181409839456051661671444891879710525484041469232981713918797940053305755250886279102239978207213036919558983712510734527368910383827313463327295191928037688683566225138170120881708866379029050035994693581151092442582222980565207103990717372180789128348637479511482989195124987728231016980573789218305338100717783528664419786841272937918731175529177222541021693818566421943568170793960099436953945641181026624359492613168737702235527788617934326465267021746236029000107198845154741779613087555686806846871375147531983192337846915184012468707212032808664269291902522677109658209155377476286178089472339397753829111347916870074632962763588520028197297177134266954790220109821361734510366217644010136776764948467148727158815558932009364591093630002231456493791484646943081450329465187361394305522314126514339390775771058528736641213007856902445699306043007847410276646880808324448899249575514058899110665058408305506421257822093622308633221545370604080891340968014505079381507038682667728163889631361043265076483126268085546455074457333681238856493922987695695928088204620911538666497089973579776313793502824826305533258641979554689286530171809364751784982551530160187204814674323173556304394210459522825090366089939751543829258541353724819687689060017390663885101164213908441521241217925383344214616194281930211449267305459719365655721254454607855050503331443833015361444444182440057300793156733483802989308080293617144861691259982548100996166517480509924027141825584250121799211714281642885782065175105006850269756953015209902980785052459568205798283169745232505324184717322951345765655479407320616011024033679300098815961138693704273436182766865205610426013694151427425467267522377231172342443312558016688658525224921906776768652671335154406644992669561495174218502320099486560953349162520232653645296425762052836387209438040201865987111083429038927041476698380541650931631422758614761435433906200495078448255794884235688692993926065530815481100245508517982785008236073290685729001865332231759217364862036072606565258948264960326390682904418393474028948158932123986195815059537929096828983464344972327272235269482504708177515811036242819399299473982149481451425285791577704007987319261750621371645300124512702414278086441102441096590327243370131256986508468951401789022820820683348767257132706559469247547467311265835491331785021226716104035455649272945651599525598669556153703341259462274500804604044090253075292366187543565689727458865799397079166710874648166172021085043236103904997120808728229135039277284771027737840673903509738980996580714121550949880706101306127654233009340510490881159126384618600166020504655837110237306528360256709199421313740591585200467281627652282332701581475408247290333065483873418652090821860628772559499570957768991515628534250172976606181083049751832770915786033569865475330719974005070338350263331791165285956354261349770580575258086454716607007663488885499395688368837337428391991128441107854655923894328089728580991295582938665734785251699339891511076524376599470815510992184172579670757394861913795822765325171676984563117841984969633905948589127896017657826419205862716798549612511631759474749042209164968246054161144937327791681907746302206696607865300265497115964376948361015145414749692382377515033659278262815370221615107938947809353824583541327337812849111310457150389497311940588240637529948553427753391676487691269037695921464612520311868327760196806742056131527959392764069233336512172639934914822479533099539801142368818026462097723217925451894930926909842969426229080308478197536010824945779190561943774935603414785180093434976644041352708376020836715892235498449177326592983018477026752440286683328406643279389623006602995232931542655038022537448073861685227345028895642475507184015476545768998313712888210196838245532979088989160662894004261564559778552339183586392445696871274539782851542652481617636678539497151857953170117074867674879809313283485245264074717714471447455685341478337056306892540735399796904788753191802205404310575444960609830630124831144003951102285216445275116112426449344244062369741114880557966232417998632666885204923126669944789214824582763804332856508773395689562778641659763035716108966076572342035966588810991446217746481506898763115568448251980285961682853442741528959588177590720313524686642559863951516292462680776803026016393237583213637576709570339085244977952094457876026782815346707535243639385270108499097159155634372944287608039895295672614373903486878363083872962384064286537355350290290685459498048150966289085699859586990897993177557445678680412520642499529674240343019059775612691500073825205319369873910810100061755844152439845538573082394558498101438854058236976788078889768021692568684692641464703176125245268128238650346757539706025116988929771160652289417706569645503649944705412798779461039214447464710919710694876478660882470016518274291240133288167005875086570734282235935827637730330611122655603391661999661949228081719606381711625395894538848637194165286273432346735723908762428262006049441815618946158357575845473132743983724796554277797131313582518274252974514529188535650953831634422690562991848637863481244449193245160049232752049086338694771734355896639172194157096510912584558922762786087223275262510695846761146784987685587760498827471142635972984785643813928912825363084985547086745859766805832256431102074730771224502485166377786233671515416903901409807282601005585673118726382055409574067422423891821516716131688038823240894465183877809236589192823723633664182893053580208464277181752771518222782009035631669736483988036091637806119055468716007821270520410242854186099062918664790326874242724649532897723189221048343481346815029046268942746730146365712150742310083994230769296638812108932777371889054329445239155845285033536863272640800362541116683676211721592566363544204055500841994397498498388516384389659037749067861444425019517331459033362660584204733793009378153194850393962781673193171851283824820274878717869873732108518150837720346877811266085514933785342941989316304996060793272552096739190735207708857207340030013672293686982122479274258472037126693421896892325141540358476107275355323573017869393201622241232602836759147023114044419241864039614251850813741535812756078964059191098477147421927724648131474706051180607083531784184239575466578727329474489111723631094471879111938416575604645720562351699840115548146037239391728534278235580314366597012416887082079080398590933323130498987717023130558217307123815078456035108286372699519157359795751447185968077719351709034585018493417817120913882552964348454104668752586276918326144788352181118418894924315971672898091825157445600973728788476556638931006030033098966597828192241529954690427868895293191218611893815109121613278908448199364318875043939663987507513391738076764877741602299272950731942134367222614761535347009538211800769293605472770346503928854193063770754562016469469801793778755594806773086665057439915895298020768669591135026439317227969273228326459817407683243386048231876045179767918313695324888600215113621587836766463140824738698466915144450686860738282800113386995094425662435647449314008796835986555383844128281996076107826066514181740496440536657602431399770009622673516158527942627695584750466084227612355542512042936972129350016372577899703617410622236296352484310510715955503429618076646996305772877393559482408458766853279483080359972406039558205596246995861668189774586467323900025751904088462615216958242558760804073251126692121539774739401061558623964422574176573156568225298758357304333122483011169516981096269998297007907888643722430450105872111188290656007554303076590870443353297890206404376923841443878441648818781851995554602279097330375533381196091806310838032357424411024256650474326843355046486071318673592489942120276177449513712703705977522621900772686683621251916542107258793882372356360915161637906820789004979788713553901575618382272376065699790268710128493458651750544058649178066054723839606275631434922361030101134521822208335217015382592856673140102965776169479726586016686575390532129951842478657426719988998546086318076804455970474042427648321897704898964301719199967856941148294701332841648735158526871611562256197051433571233282626537613930516175335399468495667796011428406785992195648831092560022249133869870407337460557612078133567811845350777104521800529410497642224082764440793508385920788822707572621955538186630493852083703381773790507820234679095941096968396977285643305721200802470498493612245743370070165633102440327393252986467099820295337037325725585445242563036628003315196255845609278589349740413668372134434009679597831656775372533561125233273282211215178994795428146956120555026963269878285479684438933130510589015642494669970497670565135241298337911528764745815402963402282898612403769433783098239380978623116775426851570518471603611277889416444004610534264960057851777778234796733153369276796129059532472271821713634397850403039155219433680966381980353999558350845129533613450636719133964497186454777993801211039249896638474347798054923173299250251248115238999450114294044180021371398893562867919629993388331629612516183280263680317016049771554573942326365751025081091642255860995853832471784154008763186017139007798478782329606307365827830841236867729975755404716147282360072630845082737574863981856369923002202094531372098114452567995511249341613064725992366439529254948767823905358185598257873520227631499638048375531054191388027864813168194511052603443806857161945659478208414962703844715717092189199796797936238779626118828632632894103982736761212226389430494563682838498064574607868793383613203692065455133735117445854121209217850898030113573166593619618791617302555992283804710926912558724690962978549522017782839991341090174682382415144702413489028183519792275133697125158596080239419589401814581639968890604460318571822157399562809474819818762727556494329545456318037266822488588449882490356069358546861897941459461078175593853356436064237199927672572646088489772433828447155630691254715241269863608682915756199996514483556303570672596361014292287633330569768662025164650347323293418718648374848515887336533306476132265722883255124552835620296546170433440050871712877936173591115745184570969425238635957195870248036215431932859653066102389846643639712269836049716464965747021883749090773385275811209281261017969517441425906768503014373380663104034266599419359652935255267566433221632018869933031321520711674977312978933798648674272800110159641547578390547587278746811679559577160277795269385143044860244378775643628146459989861345850085477029483451711676769458968000568550314026918897882034097227442593384093716821398164843048984842980644698335421699145045215330665019284224722007021594561648892610572772289220228123230609581979567097318241052235070878682329497692356894192422990249025308058683391204832743339052643113713977215570335757355038844146076857108118090010630932626528866929263939699324786542462950395098969585581866141649942145593941144564285959612812522766064603973687430329886899015251747036025373228363472067562963446588883543507397710843948471935308192245106350917005798478078899428390859663963266717613376164784707466400069610426110358135501133533042454280330508716043916724455735306406825288304427752420928218485176543465547775220823400091579885547330872438237800709647987072781329878281721453217103416944591188159229955421171623659993950295911930212713633355437948458857678821345777547606653842182730343151235669050100028935854699317807789237828501339732948293984788335354465133139394089974773275501753569679242191731106544620565831090247443759613622603583184141124363661818769251345944406408747228170699223510400570101771163550880288633033989236924497823276909084745056442500338052999959865683012287297951218162324041231455311043695011481259414928906521901713416532576388640839661991991002024000631839444468190733075139425511778650539744820151012445800834210503825716163650555248768381889861278016856994534273514273706981803183492294671712145782054687933080611033697507852532038701535635932557398252160685125967451090313697158641694562248507164730125613834300406471415105949789170715804329955440102940570486947051321059050163608680886424201987362032378226206020032097950230455757783985636737778406090519841093633774744412892246215516414853383909187992013069238380432975802894677665200900491368217987274677111736140956999373014403251981645097525600409391020699985417110267829610595975363954032821907586500784123562806605423475919626778762276352621902432026715866279017284793518632993232204881810862850782177024811075912893005336585996523518798588126323731613992366883161058033732141379034881170164860065119262669154889709235358215566164658825615071287682501500832367644945775641706901086392535327346090725784526308024274400078881332694331344342374044013417680074636563084941496976132028804897671221801955589775657035715190419094288631448990377757320473069144267543143063388933856208114278833966932125255751993859268650836061073519165138043567381858296555245810885313201300409055891945108548555396879300970363802595303162078160821643319518442805420786853989189650362018167354219283866463728037296892200660981461411852771706090727970512722271504128354987417184052370349409305108251809019432537806708642788209016515595328293211647744982882315635432221456038250295475080235359158168154489861505159957784198833636287586053141085297189984175048186191427561696472907212872063972639078068312943108197855613512403506658581183238692535678533973590352786497356167848535539125139689312312982258733077646374565515442523052915233806101774379299742162185042324599619444904169502258516075064892998707644256214673428117208084438702931422798532769290620276535699341235102234716539897772035339067271488922940695276475176284811057475606975800054678244583374887095298793777252291490378645934574258720322825495761188218614980509417203593802521855042691975201795787061179541314384602101248162122344636105197418867419236585921306188027257762263153459694323974801955067917755610707661365463081814848335969628032799998283086116226811367471295121082545677814900648170576832088654351883457687350663682753604672638588512208262580362904444272112317416636843508089381668450378842900301931739165157278922926904071143417083100508560527689939198469417528655145701407724562173375239790283465630230002587308888649128770577523344567896628249452249455258846971772987240289409822581531180630957338181032789773301404573635415831389914588287801745046092088640337397994952859522488060820910918624522221621125813027139672691654703757195926292585788533270979543559159919256573932759551100310192456530306437966644157624247705055526114231487868567775270884080300997334092598563841687501942753759834779558315857057040813127403529580661658297500814760516733035801043320757934229253873164400357577465049295074987398723805574898752617160651353839575302192824044833006290682370963101506314077052466079387589434274418618950903040271282003407164878911554438661762614351643312905790673832354861851492809673755114735607646937230534035300536603629239347620494029448151622707935172444136357905713843108906992504807335275903689670735947160507810547516884724586346783848935830140755172592985259338072347534759330696292168549943588351802000842364313769889004147359937305638258334455660512532242907963981310637031129909288527268094022462433591744739688406594413829762282802132234218337094408558194389631672170369305701289785461604079072478927582705422531006605151036378161374995838849650176403359094197074594138419717580944526509361152012770436710128896663934471327293540116935064322078376621684548152357973986207981152865461441223886630833638593595162801635474911811222536616699566037611253648291736964095483141911147659527393811688344861103571548860327120979008665003966368771794704388682666808283801398526013444817519359937586872385299869033028954929829382585780690070571753002504005917201242284821453736532906253920341063631389709340011834208267135084997641025841187858751694582641924622465367534956212392457520811463322160273026019830583489677639299593213682177620421924705133309741255071208716641299250411309540778043818342000186100947989763849489274012484335183761842639280748853191562425474568329585911759267378948729737106972060890869762133402483461301602442134594814353944779848922548302207673512039694790563445185314454887847570092842617210608847164822260264952007385261568858006124191833802194853322446554827127285127313768940257844961529957659415718000149749508219812785216433146376395254420070219161032352637362126048367759216218225336075829752423643298922189199354593603885373810775356261102001875300650316819923616812827126690106442053627801273506432674183197839977088663040699259310734747938162250536104591753650480663926941475940978202666440987719642923779280945358237894501036966682389954054805023833757800563061683131415985903442484341041735682066302011247846693500476732712527284712586238912492897445834547866025080597170755338124480752700035035833625439293404605638396118309954742637660898635119326912385494065083006244984809612280731783715120481426447934237931081179131680240299590368945641756880324167902964612001281552673252332521771525870724558937177558703304459621269614864657666133550891887318956905994703523140994367878710701009256129788581741294257745556477008993656623070096726522585336604932091256281177374679588633602808112741327806189298206352631365678418978864916698580927818114681589335872928418808022658821083922934637625445199045602728287037187982098089932900347542754424155867259246710643679487539201827549690643539834821592655345500117520403591955015465673727474849953048435525414117813784697661446761003736223695256056193970562115783208014258254776318390127019224231924440944795698945712958227218840143772931618404705467025882892084614864101860186277560868745606536672396375361904648520672422556893746352807209726117464704769895882185160476772884651621298706680234735520965662060617202842695719096957051886763366737572931309919000609789854804993563305605584922143644253540348566364737285576970299702677450891636509474575450817639503602603889995048792843089828398828103809104123603115209389101717214853998017973179065191486252345827177903676050323870777640144683917303368093971226716454593893478379720727848142992093031741076823863334143135857966997791214582194199448441168580542635721954630340568496226259360748985316930067292124566374549715803005726153727789707914011430460325262831118463202956555928812406539320473622816006068954422612903743871270967370819688221143241283469789702422845578047811922812001667459619438429744348076195840903714747025507362308273800207289482460611344796343759403032895974359287254683704294047743936117782084911784458539840705197987480111718125602654998040189786875872783220433904420799751070229022627310157356435168064163596918373000672194755138038564077800527402288552002704648830709110963197129074309098888288389414632494758117028849255051606682912871059001218898628552187644359792767317509935911663154708440561465582932962735186820600001149920175832311637303399006642561547754951836272876029054435206449325302051544929982642720961707279198310724856667380300376325002377020975760333582078270009141728770605744984278105136924162271992444931447563603017634336468927465266888847257903566854623026615923723732919860127444913100098089630881306392827188860205767350324953484023426451254203508318193935424245271927163716563984741599002010875972845779614494376263302948889808665310551954855675683078676643193513931558632017664128319191799928751156519820107756425314703369807476764286324738224481611623571166173173330313618575120077974215856065157202429464480566529062218189158674415078554504259187727708684810812168436455659842797439264462649098511455754379310514244714203560068994989691476986321646667165408226609570019804895028918424494585420050460636722251961755994705999356131488150202389098202212386552145231008235376882689951382282386177914704095393170147046858749974574105177132848880217349334116651967467392800925961843503098180850331245788582582409590557914397560821461124976271622896831202056040047086189226184813609783224981396672536744991198850265570357354480958552246594635714408181863232272537166693805749353630109771612588339865889612720558092764347682319951578636745350794117480078511888323380853762780584639321638239364160669327661105353658038159009052356223043227313075247108894885510948884877572772760152581337282267690549265982146072581953050259496957747589332655701674974785689825758619954661675712065003747349933921467325365955184830090264899989289472246257540732747989047596790381877287727637316086857431305996812679966567870456154065811784685733447836259987201846942687978491704489319165499317438623603489051662175263200448172650445350302669618441984524228442965644921231692127921430385530199254399858423368557675409953161102717942864574628495993795733605521861676890389998347465178300539967094706822114004333100322589028124555583881726293774002059721869013603045457161197379850988503429890199233791024157778943051226404747037734484220577402702021979003003600350433648470314752920897309370064658179920523788009846136960161755682817481454835926206738469727017368251054616016268391646305375675785126012012469095171465235420680842213973374200662976618719423443697162590605780151794358209807190645041110610351114269362169378144909244227798130916764170519086579529703119692659845111742406049505030087092164962862783974251554294916899511446947006208482275134749758890232559902291898640685225883572813629311248327398299434858336069043679909387994922016571412796846345750130447171343516821178282063210097420410754085907813984192212060995525183398371890197807188545893546441681566069006849664378078553931641285459033608090906732546055527829365718564305766732508443195531052553271281461589467334166389190010706673588037790432443483435851040261592826779858209562525764419258170310036721880280265949333072621060170099574503752835937955073155250974744805679091113503831758602099905082025973172719382300924908267462961732100567979902848390783428252100197985156965457423937322902327769901992113267762032840347128191709653643815057042920634326863107633611238498880969156734106707095769807051803590809109461561411732762945861102264151939980939642534060417322849360190845680507704582588057313178194370691112530482677397524801203665162649915602402768874467892333569251886767183501530533048485283686123004902446866174698340199085372367482113548163342446505198839602909011020593181975680740121556731454770235462331546744444849783646934739853696189519495287747809051336114935539324870703053780399319313488294522366189158011055278866346658342392432013787803029386184097950744464318172167417957094969110847725813520461721301146392956707906959628107880200094519787146176643445214350198662766300348116693685854308761729486810316685326383509256804053830219160948130333195312180275470036646327659543888938009638828855866018251357886151301934189300692416755327162086092068968634447477665757450620858941183438684072919567909402371853642350574349789985948062354981326208044750511949306648971544560910737437913499471320941426229345597260723662949711243545982612959131185165464019873858396933148950390234069619467822424633619389173717417916914675759682360083379694455539225640230275286303953952369449160521598915593014215989298190289670337692978959074767353003195187524622431323154677054338203245770894017512644761415116225580435920823442173513271964227723119784130336999739512255575643816280652268706250247928315321374064860385397998573652100236365177810973267348131613333159584228837752152907288992499752502742602465518752637022136305212064681949503806943497265916392216599607859528215421391519193848497693669909652261341320036924207227658943160881441897052325932706857946904068935574904686809286915034522283680146536821240627448042543902608416256342325291909769261416041498212782435167522131222380354124752962594288542105562172300603322726316952925692791456109185367810579416917516118134571457128291230305326294415773718585353384578692960291950928265206778223949673096833254777798048195538610066685152415090103932149498274983289067467823775284151703682750999716225623511293058594702779271476634393763972847793177305422762824682174458310129343322047910933346940193381938321408051324867586516992016474654933083066009353312764311538995642964553439700400356236052652330425546155428598646615076631202357762724510288594996672584374431654182541689589315251162082283425380693683210626232946392855525104643938778004414732756187840679434945843133158047445372624051204601825529287155783418213974418918287426594296796208610815495400378565020953830152052728963409955652545139120713601916148471290675175779140107541611486213111859920803231975962857756813721708967908577370514207363253098592554721089774015991278507481696688291801957535380770273435511074388830961418485774332093139688189871416841320473495613662464334114255054274285203620300955921240196056264358315102292730441926615324449418899253037448051234359762783589428389452368880122769560517964313064709763664554981108721433039673633561530397333708902848606609705465926657069832848851389860657217274383156517517175754740349464093447006587458362558951444059049401780875686868913215672580272420444937223371123422268638933094615863127851535441060255606610615277209038975771951861544497873248112073552686512589869128208523942791648829455073978329125194541074307572259874214254270884576528234965758301324647296867554916600459109400374196049444277837132960822822240312828032265662397486717486257757158648456425447950799820722749724071804052811742766123005976975902825603642795640400973578916551730687713807663002710040588322627582796066676576805643787682185033309831887130903051843351036503113531938338009344250951857001800958790767193765437696792527536999589262243968058177120328389945654798046810453573584757935919488827666853725731673137244954887240915280236644050206029036894481571019785632817940046691054444469466052543390796661089492459915423815864019681808147736090147953207779431509142373695067653267169283152921560259941574515048727793407768123900941852088710709347634090040557737772306900656997887325531494643198929323540318593361186283494286247394715376237149056292835498570032722942864090470471457965391903410347145034570040342107314120853135824077228785849852594749653586281148666833088574105812073391294114618858466597550728414871718854365743039167736014285474111292051190726412417991640607894546632261163176991711497602132273754327748136800868755265511242869182116802834743374875129687429696040741085083970438119028828674643235920945988031864503701704303765629582585190986838742834110517818646606210142125472813542395619824981127476873403766412304733879792519858031965904864518243840943528758088944534207566541379910023730194422494247870268214252902357991092745644082802111923935776377824046231780125347853764685987952891273883203045989612337931051591212545321569245530626674913399164219642370040268564428861192259965962469043826188505582487574458257087079406108675022569652901252656654562188241705592442659220786678648326612080629673493215915247343665682298608300369916132162045388984682539535344673293362604477064512175687649335525475873208988951854017753079259979269247234925061109192362900877288206063602028279631893908941935924951756848565126600440321233306654956416509161925244475941971432899166437907495912046707886028141658850104090899974779580301151171820692491534665423352399790571750480176059899373000881209075989846646211344482680689381561065690978819452005364042972914980187945615006741712673407865162498260946824603458197089142198748806765104234697458735867055324579576337070684244308837571583319945339188355898810656077910894230815377635971429096869694639838319019160613005282671101936941708575874808659642230223594638486857963306547196554837242891902333485165590832165026991068632131895521638845445678192308292748085405776126161984513141815181979952009986545679718651898519851698316208651736668293931702347327262658503593175548938643044563691113514408555258640762125973280181373766254206083801994621471293196223782621029086981768328148315755097811920663653644232891571191001354572209387826802414607688426567869144000417827704242518951554514295968795841709860818899497842083185087210968347006012150423566383801648306986490632579661060978547541909050847607183281703320592744295955988999473915901826647308602029501874625425609929819798038379859425577161467924155910734403748653345936200540838860922543674457073799712772429949006255993320363786426986249575734622442731060171247399950807362259947899868722763889465066317405029144787705988976215860753859219207069591996735865347648388540467166586229765713685704566480337607706790660359191965573102479890978786429711486232184995353479774771259870513324893202006522626396421936764885663765653758148376344054257425433550220250858333569805751508224318301992757511999087732330691343414158029465451345558786359220660544860682391998852256604002586342596339064224440815635495359783113584098729681388981191831807181120335207409634202880779454400912570929610675913199803905156129112593048821904123880056467310467899468053207313511509128793373331677731288134347535017040199270419830225701442100248876946271630535934864843841020631995693916710556387363609872416257558319414417453785963541661885495814220555305926085238712375625937012096632409891974036266029110648037381236199497530183166038341261618607481344936906587276847516632070225417224955353421188264591867160265894023796830681998892931917841885211409299939911665149221364894247427280342172836994341562341631886803952284389755695559016657292604932042064721411332840193608444357304018664129298184471087702988660764732945892436763353879122195082271351920222790382047248252130097583711685613674584659735861585701878644400905326249230151066946087370518763369143131812799357719958581855488457713668459129858605176603930521578901376688208768183847245280372832869206167285123908504157621942182356562926511305781294903375797442207906571294612983377887390352683168682073674245637838104570777601035581815912459327013190840763876672000125600720080595400817814018159464946166901725070623723504576042242193718179522988634258097994183621303389040233184979419017748990335235705494145124797236641375283674289831709737183508564098427322036998026924314888490756563113307294698015535031284768924797549240854013467440713734658358111872716930023155060651717718642751673944102565538162655385510461542624367914972828632749895765225281250897990440733730971434400799997555096433158878229560689873942739396371759260550037261754699374878869117082786756302887579039574551766337762098537463458339264761338980823279323242568464455096971216257984681827279083919324266444999826990046890541980757211034481884034560472901614485161481273602157631261942388103633919971814003657380532902694955634678985005298570508342542991534119056788852162319581490898583066267908594968044219413557317429909290641117720636206963592658959033892098953206447806519244413360967108536753180594292034745589942234442270572517846349303307197160350996762851608137626296171413007577329967608830863608443795168128984971786003662491419555065029138832275755713678576864882383504419895390116040572343098295491340002273572660788581564061801060163962313708761636584464474903660208306177655767392417968988979997168548911054404504504688148743817761195415743254756069279077959464209484072519083404627737616278192715384684020827866756431124069403580903204428958692733198988234038027859765568529735558998226667870676375948381318041467747013926974292228847085722247503169260303691457438668015860104120553817410835598885250373735690996355555490464105908613564738659036748495126516547717375860337768775336745975393943182796522161267657333001898312701280306823998556847043489630168555991748045258759285346725182167867013692910617237673171715703239036695474007699868503685671484104113216546508517326652381130862535564443439143186632474861896199094361338042090758732915961089670247078230200207179951074224528879851617764292891039528113598742115223795667653354672879722621281650715794991189249375625856550490135507913977330105364652502958377993231822163901935579066676440051528268315858586922417115872611379883906584300776621369369873625158057138000788610299731309497828115579538730401044880635274303534153661684696530447947147621285751720148935859395540208379390272289578262484926951555702250176938376807330969667480480475671003935933296790946274038500482916595256910725297986182923311758196119182591097101865665320931349623047269128483855679905741406064931639181710105121199691639053850389375392709558889117572447910615650756484113031116806489810451091184177243090216953755619115247888015596605233277513170930852880345048105386827074334557261883720540399532476144517538370040882737796041696662771241769302245809844329086317876449001548735039171678807267468233217331545550400660607353942484078937766911879668589886266964151972775221976280636322505041439445894969427547008309972085122157923480298280147174888948218493457163180379172265117515881381147311271634249744974404775668195348355692538826374654476682268391889721692422147186310057088730099683706759139982814227759797844719803744963849326836957823461408134951085413842229526172743643119029166293217031471168249635470930296160481043518228353829801698041474797755921971173603865060483222611333047537715084437230295008815224993489862742391366990861910857171292918745401159784013269522112631860832842810665580446712032424391709481026165733678943541296202570339368903790874674635065397426032558467305814955731355455258975302208913000437067468864046961484214829386279348627602080461556014694625159153397572483603000211442534974016001562442163077144290957993923421736646707502117521903895036284515263663939714935127604913696073235439091202980600147285867216186183807853609007550703564197468926848930654411345565780228083360076210814532469830388240476364209309872754465156715412307067469206502835343993758524310512782321510119396956412414839801788031566310698890916414075569174611469012215814928864227978229087193475185238411521991909171649183082218889209065366178351618492468222208909947282439174654200587718436795021752672224771852378446561285713018504501510110270890753708409922015697843008998421995358786755747227322168323020771916965044669953693843853450020342794275756971434283496823433753902652732237593992834160323616210563664068965977753083219080997770865649780061792256135200464637219308405037721458453553980904153283638069269162070310342853684343931361857053672144307800110671338962005697107175376021561438595630042896189122810377866461386899287057825327718471647072964077994780944089566667220294929608447677808998320789261361692433753250385841601127424204898219948002660133735754388352153613856569752166523088141813056730614987388392334273269795146900727941004335617566851693090401262554120634639062619375516468803451232475021109225002055518635992358165412294667967050505927494537237762477932895638660276079489712578590694342591350792096021862408133165649464077984498442782130225687407685381068949081202741527432333719797989126283931096448233434965278546703365041345668068395660938709722324234231770566868252530919219798680036392044696930853164066121286283948335610190091664448538753212361519276376084610818361331342111093620586509434167457864929891335773978817351909384343421817808328027923741776327183358637935080772386119908747372450275503014294259531143253624445192639549718193872859685045861059809443284014030041696211557837502139325641888359645778472794262196606570890497060004928703617688236357785537653568621534398162623881869129539214155545536271610221172595524617190312354807473797931070226042107957437962150975645694213277810358208766487157544337176773878129579589803906967754018013542830423601867603068465914759441755835013233356397888265322053160579264648834420835058026635999638043219740059225744128121185433507387058985184564263544300380638273040504627258430795138268284188185553163483584557728571330511126118299162098364797267184152349489408944255131389751831446138712492901800429436833978562543240939339396188440343083680111968248919091201975220505763645317070001445908351841256086817089339779425347000601155128099855459294981182801765475792106258920399328540341001513908574385390787419515195183626497491046456435268526064965717015783876715506957437521892859082069988844975669466503426629024797138802098016906035908290939449370275535940054836721874220695581554265832227573827555850065674343472610802334458885461569161631966150555915177176976452671772866689238736123768087818679067322413218416024222295110044606119944670935221773468927177574829069641392832868211648749305257804872439810455525225901654606121854046264245600626452395803424531491734720508995738324534779804335088043326534882284923804892090123704629563330316273288793524360057432839251032225225568655912241160234760564983315325338370397911652465441150438941437969103856955141238020552591955197588951438769837038443852799701567405146482982439573195743085968110017024037178979299593755711672690181973127063518810486523905248457011113039298501526235546936530890184446823985873018988153791145942486092279783816963215868253257433375394562134624382480327472635396287491687213114692967940853095068982593461230105092733573997561473840427425644956133141160066179340152185572781845907633556953207328752610510539512200447525781974710213964603207151527445788061354130372350114698420354678290318026839969177202887692349723930716430261961849106090909918370901504384316972293616278663947033601148449518945126050897738569145876211793263965253452830729866518574929789404050053721891842492206600849415295272721097590899536393257066599471117965022352016768892615594518239826117598711601724625803171153740756183620864085706289405981001891048425939850797389716089382618170476246139386333148761932197093963885104915610789767818730576595643028871300637916359395842061287268811209477098732453164726833608777033070128120341392534789419447572483873560258760894529008123844569337331389741049784343459729764933361642501312463160934743008238831172730117045606745176185429993624272784869411755735105793610959604095545007348493342526758263797372957145246479352193289022603037916486621020329312378490332391374058948758203748045967413953442577989810262925076909865662815489108312202293768874523209682072851307267890148056874946810489114385016848280713532595681215367073728731857897330600875624763072059923833693302206154352295861541489204313105643717479843483700768225269563912906227042655901077997138380754300803406557442468019940287132561794001763458226862666759682443556982213533412730708413326456064806697880349403074467564658564876493770452407827871755686017504252407220692184236473192283950283684999270703307276178477360608625052425981728729067247503438947235263293299705984065059918533096279871747094485245873808505697984085385986361701709769431729364504156451625991513008407046519179190283210218583710929876399211848920769396843391043198575610353566443262772429673202498556005221267271408343226730481090713110562135842688639036628322085909146658557345656700908463578521335010679653510635482498151514082236507654212638275167373106823349130590275579886724213072651986893800993072276749470111056068102982449947855598746095852120438228018224198520528829492853677697864023311598251768298470921376167589430147550717920298522334562292222599939441146293101037455742273155852023875321043559359694991489146287195172433597105448359943015420967367687840749623138721529771127464724923787354644634651300079592462925044371956218821391219116476879087024554325814048537421112109033605370052566979577229349613935855980526564842384544034764195313783281425754195810251405956338258213048797422830381144394889576785700494941584335203633164180741935993109513014834779563997030243111786400586881118366463766373619058796317527143953388490566488335047128091529815564686640786535847954772265385962415910661082803649891631616641957051962250136476960045152475207368965524290273589430199834086817289078633010080612944799495163991965163592409941620136543129564321362595849021656089875668992717138323067914700355402760630625732643478173667598037298558118016821335416415422738343377684644474275462515711381621351099713782608506093048390587641162293040303765647952637676843427968780320447321840286633460520471518264844613130859191967032378067700349179048009828244231712338995090518035928872611070909008423934720191989985167294552122407849898094113708311967596187490487816470149784907995684016176438043132882091617242660552090004472649024371544484543333178430970577112938123181985075517209414238895659431593272878800340839042531113194411449608619393825263719403666796129343836256112733229649824178488044549014628601054504010703999581628903399622806072347941799559445192146162808273467250714722525777144246090618867479504268967653793565119048050052363525836706058061214953601371144832830953075952488789370808804930919089268870083185751767793339268561056992079266789782121639373431318073893173522648695543847810849371633671081946387515634984727349514007586965159551827015750684040725048233798953324426692844374531279430173064000288374984478803278565681874320816548461814435283917344136273396836592733980942462288582914735609023243364501792867489286576136894509440630099713166022675161132858413982355885712163844128427613967811537240918287807675588916325081808631454613247353471972918685969532353154876708144732401894625098445435104622369036010304504044992029725044739171062196551216430964191566904238974040698377214956410654488695881966201177007678535385505474819550872843472247246072941609784793957454805609709035645112376869006574886683795425916583172118242826643545420526206722202628786495558820173193909614968226086687325552771290035338260974219155839094213227551195036608079105103106607357818704540858274675804894100776219261921654078588127928785606795607605421398955645326799694105748381591123033329287976863699287480652432406767000642843862810135781746228234720666535006787982058175495872857111520558880013764419840270041075503598046485143402367015727723440023477086625801515691424277244082975549069109902467290885319851371317058547290091488688261277443148714943832725575429484728844762568881246173661116228956736552926821071309283251855727520524311823643247716407641123018975683529346463475857002746425852267404571301190913173436828637085852376807739198179427144401080227477522751415192179451027481616728158466530836602578017705478294953920745888913278943955585684676208685247800963966994076337990515276821575582419222137169148175546338578359190652268024597124622903879063403381580529671681548741915958181995430786424614523307868824984296549163321565669963750161345864934159030364272385309438223940765364290609645767542058054480059976540876054961414045484002087288237087758499352252210098771583880405468950283649651049430174246429785111662328653180358762589370640799342240161641159372649042262259735208578127768158115384797334570653340879299139962542670771175510365186226492314987217547018022492770875481252181380778041492648428607094066295020766201484787012535864376157299893786417336052974745076208864612193224889558664403432764522813640664416023841984093100314018301863962346079770137351691852683035987341755254996672365520066991884300657251456940748007779706137660480082696239086453094268386898448455037247289141764501847700786205792791542298001090084880848056166461793172274804209117897959356234857588143668955552140596054780262434776896311471098119628922056508011752147905316430414261184390789986501270880482012912607034262834045316079446509362534493389832564448181817183706566539392738910541622434040449768734287048865162404089666733930804786340054381488391514205904579133052869200387065499302029997071488546416208109087815854863499995937685493605102269545755345093350750951105498810604406625283905231566714281458338696062961205946511260623700679262702022347020001618140451163991183153825385299817872859220805354135708680069378961524121220905964731028637687463765101101919401457662173282413089235643930363512989732122394831433798157137436029778298473556654233512009005159639072935450960101044181895633500397141824352206557458045899834785802736889616569730580175195639717882204507095249607662792905671973755723649483654009929026608025320755164016903605225733913807750265923969308622342372845953858823249127326537893549260193891963695975338601887368695742706336405300835898247497475843702845773042284782541091932403129360714129159488849198316305815418215075382040905426652845223136180964369896965070665868429148756804373598946750638661285372126296436568956420114616359623775580397881714475470186431287037717270341146881901444549962061296202658761076055621431954292108431905870778046325344650375736096748716759218916264242578176340200292013193349322278343315241027153310630197480631381590191845919706550490763845404379406098585005478711020512409677583412614160934299294234111756157754942115047290817744930549910779544209412778396824729195198445881548607823542347239386455947823234717956121869137162212352925463069578690226165195735244259813268405367012897247010355719278079533777319200296787511403943090701699442473330089328801277687952801184096742111303036472790983569284778031768464272013600845302056563924820710340910655411135722716364716757803598225026032299587305699210446919739773697484335982609557115796894140572422332355690197860080864941404898427202919936118799433453835434317050729334582407751755284726010349196371966720093300418451053016548160246382679493694235522048858560431842662242190224404878139881807437321553888999616472206479747322893468251891723209889892773909356424403375478193132704453442174315573542083253272042057279998327683835060640380401192495330976870581991614181065001987815978104736701558001934508140720252812497771740987848693756555970911802904536453904949260914067898969725764518550000913036447083452943147789417706616901791431029487497998230493034904593727048022429162893418569664722933823448536860229643197641987822617236756248791114952214611690827430393961327990047962527340283257059257006030581672472503349953379703418360052210531449115382641350850421137642570619952984482617192032942263063706523423553486751013923262793213248114334244577194280072081302672013285885664252328352058504939390243954128722557294699937857868761796364059282940706238616250788427834638170529397534976798272339322224603219816915064386853023950611905643264007366111717535456008345878599173388294160256459747524620216449891883948262494425182714513990749716734678337413956416579686118062340627619656330078055371639054253426766389234479438736177470000895131464673766164274024578745937963336415191472927165965641891974150576269907526300498248424612347960201021980949005741643832835957010707373037146356495335549550015548601791785135856704965355589486552752438421654004749234346894162163525326063917536995047095993295200931986415878930390094974932393166537983394542920776371023140122594426611881796052130115418925092799866944480755595849488038508186979636773263747665846391493817793869174264605463015472528088525696749866915833842273346946133422839597651432578583516791178669077901648944986488586879787188894553110225295406553709391645064248549444320772592195239434538635627223915492395864673925997696573109405904440560048384441802843636606581608057471231833462079656192525045830833970474756530128321127258825197058957706010231781565661042225693141912960250141419169980661083592216929438677864225617051843677794543405772188916604397266800866032401011453241726319447692499375670646101342468516509615742119152594493839441215077377677381072933761332737599060186111406052689834355355930726090418529404409433824571324507671081499063320392182585699711352113606902399346582896865616255507744769970616993413991271121899125220029004246264272246940382946694223542832010177571917255445791340339930067803632985275331205626072341795279145916716108608443001224219767946565939268267581469756771366205104991836330074373744689983700600658995907958492942270680758376294599776131238890744015397230625925239096441357606907385520232356096256141910041061311946588266086478929422924394625948297440301283214388421191576547501756778495239811189470629472321202262230045107399564222290328843839648381828840729793970728673260438513614945740332761363837193628955603947236776090696888996514384877765314318638377279436526222473177569555940278940519533640315655308836893690611860418718673544600760588252933817627019429125217330356406958296989995314626594322911315611455162744748817576669234264784886464321264086984769949680471505089501285998869996839560467447294573903538011748387662097520621888417158249367570296742068186673958910422982016613137073748189778153200396046703270735048191406446961923172336809528803335705579936564756460081470514514901617127479843576665563574271359553007624892203793516853500315577931885469141805274256750452628246694627744128906443927677316106793291772769144575245593638653015844041057697486476348387921467749720968238439237098281131125077373117554082992606133190832436431598003103723070956945917080665403073048621608553538169371384909287951406359035807982377413909972291666945159548119841940360634581542000249869791486936799541281984572800358935866846991868703025126361876487269760190523373823051032667951288532759422791817388653550011392686700516657799459431453578152417528752849280459827032947838801485153569563790690214066891766050040373070671421705844222309458663112111590184635659945117639075248734998320914197960681063445892778745315225668252730655253900648381176230340896736980498726431575976848692426288370576732856065925547542041507414148865482848807272610574923820717606352726219199555137826858256323191583111698438224555082978492612504513205611003490799056242498878059665265994291351036773258427813605047122624430554648987655485951966801666930384859232998019885933919975361122635181100426584681975785184948206260114232032507539167248224134308549663715345131757150172409137903520606987858021540893643209396015677643112862610380600781897233601403957659795391401699388854729203194909416125181138600108213357931585329126784614405946204445337952667571901453491313200817688523352041445872560064868641320800776037109966541603008027513776767904885375616928208544727582319357579654231807959267286910619065678512518855503624020481295094998801849061734396488203871918604607212823259431991039160406225217379895606189505965851578560311864285627915631880936123264662443837011482003309844630921544190512630250137443040522118489531844357772336075176817997153661921346501338061234097777969670503973798742089558898689296376454164824352517257421806606541539351916634720524072342703411885649682712163281889879518398831907513146602978359215175738014916333351082198682459542323233732329471918810304921290065802383232902138265645178576908832699074384392237009716593350998922658152331213879208447006820210310282019629530280821121013100250657572580111726456305971209857954307421743949115620781835117881491125604551282268172979493682210234173434668134476762114494101286235589608875060637539453649836240038488897794829639118610489805882058085584843733803818076357065620521842072294541338979422026860421530352425207853035234846833213484591990537406451266092657407100948409280654113057598378951050570226994528125283387025540324223150579677592388302826246963362623099498152650966814334657057672427081859549170980840772067020925014051095371020407329147882211926070869996915542004493015964541377716157166060685430913655551490708687837504758007685964281381590815315569172422347608900318281508516368105010965149356724267849259027411383967836106045770194966047172838116297828980677097349017923509066036002530778936209101444709844911075129849957812686834385660191924150242410116220720592065634161960597440588368500549391719862604086857809763883126467978118061873573172114738309260717855428091025702211650748021917502368641990769173828190423625465204136297502080025767630853326752458639156264243008267142908171199362684785371365839543504123279888983251618453958598816517924965338323426051738313928276260613518616172345651753449579732427224989464518094944265107081121166228284722867088167454058512290980489590443056727903895446392509995655653823920173756291360465627173007802158906687561039467828779871504544438787891312404450560875613702240797093582765384758110623604527049687759323653023003043839040794603737814024898409047486399904072778633091598258225177028795140664801219411828629271539142148137815617049619253158676248970889411462977547360540208641095067539109515766734982230988681774616049120573019800809087897612850495430037502804813734829806485928946620990304747221017618694594531048150266555045544344398176090602080249330444446784516662426295155757401740873030537991151128039197665641113982554570385231490529346700971703529134391085274909335355632102201780479517919364660705383442821501393661746292467965083235421009872562243012854627925552885730776108540836289386504145971532965519902184100035178942672094840410318662209130153578122957221905528060711109331027222602663238737084369754280784194723666517570757691062957255767427092877923774016066072422084112948170562638776644988064227145120229481061040867439306972483820559930325069062613007247202372815989511607111415423754937236978562670731920092103170779311111335321638029267404631219714908294589572194558856692965354807025596577593285492966939199474014601016915551746798084985272853328490999232870092147403553593614506326069691279434407524190638182787698504517805344528645059177929284415446481399169471306101664140752293241729122304307508740405891904536437223650991373607951143691196675114318377594738737787166963122208417923972497022559722956398289520444407073823090976473792492951720733263168552905805939044229684325950432204219293501106623609785842160329303204422379115657735041195602681492339141997975392666458623480646538023595334376294040018790716237157921480691126902364436281447390359724099070515088069012493617820726660977107835021341820623255333710246356164009660619068653623143773493624770401385445893306746978363112888620474332076244672673850268632071503058513577240533037499295667771818156754300876955613663536241871641003329220160052485761507793004684338066417898282809426412582361484501536667330985494927798973082652640256208921358005662378450706844181256512357968377879227650882136713602658639912952069481464127163694990554225489863818617456402512552368525995733125660296019788140300367434625488625453702543970680937051479078811438824315767344427422152826752036097193975445274915013348892688914137390741113110097382335976241351211249557727110189111788846847411857314102867845770803478898951787682728143714851169507907341759643089357322514724016921810067801311251125533705775548634288795489493583988357400265009254467125584606927228511832080600499075614066035707843734757257120628675642574340344180546692615927464432556355219226256208866873892457347901163473103280326783673709770446179214673096154860690767902567310610332894938367745467918513992636822450198492352098372084293903244785260242250336568842759331819045420352808492681645280818257542729363433194773454441349402292698251397247055569513282544499696835028494462140243455299405587904990312517219136438636244617350868702650896834129093802883389949314703558179971626407394880793746329414008147353085458399920563538930842494037360717097105130552762017587561200832831634019079734726519308322696081643894379319901662840438640743743815252181875516670202014462089107125322839976879482693219188099533356074559883182859250088819037859908421004928721695693937045638613426519121323193597621537959650420468815982053444420958665414769246579418030701285375753413750940851643492676062638824213834905352708394795531824029667311546655111369007715769234217978412663826941362021111097918607688468595825996603880169180050043699935943777357711859717750143129805254199843514811216221582949554718795624818468571851932219304135364355303100354750979473409385421376731383384091830356194996956018290400431374054617674387344767658575597608072505529294572334594908624366012673831530791805944835436868764990270634193692760803986715960506187792581072263056006763331221802464280269430992089718716779354968010314711510162661685707844525528635047143803220304917819137069832284905477891102723948831345475521172492352292442289372262634260640523228236820103469865884838735333742668875979322200743948332902974576424220129230294846730961178344329814404664252321277957585474262108390075141006983909628812568279998003272167732831651056183936063978197692996401217581947869369898784604226219397882757615482887720130545872341231029710993003411724621904984087309820152818651081377857543800706825920730443808773531508749185301524945164644474882632713825842953303705818156130406755010191416892534606071624374535663219329760899471371185412818452836608040921649828871287032288193784765777794710235716728675823554800608407723866785316741062508745756477589416957391047471927427038682254715011162354344877548663505907910853070364706737013484100504947955022778539589058290321237948579881633285124456610232441105470790074152066929253330917486795911077240298240850991983464954221544898900064894558833703192864279207160215351143912263188212468680172833165596188009088189923915778610458899391431594135348872997505163945115621985222284499329561932187811507730124734813324683909795245655640730277419860733047883396109016198747100685661510164469800343367481361711364158703960807514447907115937276064832147509885637773193131509161674891176500815134905214042032654747472908489058364833857894211870838096613820145092788827023116924739070083870973693797265970006963735990358883118610957357746169747940331775099388692231363543691359387203777114911490105372775671138833728831660573872009628815443401807581029008127535292534448293452184206975918855940142527194491438217705647100991463414015393303130566706151794250058705160280229072541149630695191721200650950111363132433092679490699035307716179893529385738633037726427870542007430658854970064685225059777057967181185621973038935102783688222548666168765563665795075288302996680064282649292339498273633910333151721621787888835918470536108076337401550792262670082300099322351160964513966186022888601875879398300440494674887075341572763617172432398905363527542615605295587682911268832027420937892205651652817177432910129036848930714057942297852232728108291879355894763377292609994258913037200268927521401920950647056255060427997250628761420429163377322463618822277388743292156612966746193386110142932869024101897616929315845546522380806787101296938090807483313128624007502412609042899544367590637952084007683791278744392775347596586212920859881016146568271082670871292343583855812685238197848802331219125975473374817665102047571033172183804379667943222739032032433952191885292632171816629411053990120426068829380465282143305060147333322392952513761950735370234010089418029437675049565650079732673555527313340167135549387848963117349594475157040035187705645259097234276771790059166338973303618186316495958017084828931989859521926322431249788723571469123776655255539861878903981985632863298445566042289004484899806462591383875230782842700166183237326693232562674623847407770281411419610350086035052376207192983400155355932381652858963606502803083684056442776397132427041885724571015706924229424380421536119736769691214640851175411527208696836705690740392161311019579558539713353028856782004132944394666945256353254505658670222282166431704297889517435726222629778280018652450849831718732906522631556127724484290276129409745940427980772372604089849083701809064555132213028855927139572431368758023629353339016677294828879185146737076584521775012255165154855311573834077952707641421411085559487736412901995567975190165599228325801983589851257240580884547233686268947920205828870962147712895839927913141361056088094210842376979799236099751635296232810616718071490254931053388103305410547104498124298333241343394488841066874763784025541051970250010352965557364606066671541080163623832545962572643827193509419360315876627907749286897427994316091427215240887205281340265155894926576664625537331293234103752698250322962194602157422209204284292769001644163359245473397160357882026648012558561127198948966879953943066257779050172693768444002831470448003961855188306533982447477107900625865654810510478735567461755289605676407908248468078672793185249592788291817009239711455511691434938171609484879946647926014430945078984068435251079305876142087770069435237231462307278315385076562333883571747404155851631450176675094440719073229120646083619371299132535027812112006310215239010382044608077760405705948027403904405694578772274478589170346602534716501034415835198343663190011792330195462866495128468536788692561270044404231326627253068016360834586122099913680292545894283947887704622759636800873036690828473507051647473963449537689033274098185130787940530639944568189885710559344385211532108550758800681388174202240631393221863360329260741449416904859317471419183469152773021614740234371035704968155987423776142286626854149370552271724249950992339637281826042307898130927948923396728254428315097082628419297817728414118731532290126850462853719344290098362591239194402538207358211632362896512227647035264417052793587367384250285588100887916046449431281280833804523039131214662733314252731598751943995156998050989522599040654720917271087084679922980568815742205840112639341080212873877744113538473412450808800182890400011449232534501156306769097475658040288044835868627995402442895208201658910457180751549940217091738260044613393524660635670143262410310772816740763588662897846064960405266819850529938683745728460630432784697757963919747203441770639718493574517885252003163505200812869181149261484551583812408962069145255719018140076476086033842825583556804872220395554428627485754851591019876257331126585577904222924339150081220226569323865189734216580253973403497014814752888826426323603523544776935928751268876916486843613288840705298798512882422874884855807760627101974430102101076728940204844841823937965534967998334846207120372059809126373732104734149304980515061692438597755296717108720641886097010042679560395035452258139758193814948444324071444213970165192240181857848607264597079421857155586912099762831978932467722166376292395894797306939008036537702467244725806519077921382491557613144880724054278857951852333603939058737901646930468809153127121632734351287919635964066150817932891669407603950504427127976877265441835889242797609497627528997769446354855560559654023060295883056641514212329665072662992910033475623326440016137986794048175486415459413410865343375425174885163573181797964993303653636071638602767585991135712242018570338202998895068612394394734752060383611115511671101309618018971834783994606489523413663641802810277694726121815517473782667909148922483595898586422722005010987601064999349955463625438284719684601140434625453657776174067271561093048384173959326958352468628180836559333376649637811382090947337470817357717738240196568260036776348529274717074678959438574944658628682071921222775259780387617351821296828663465631979663956732308786782538950770306289737564333733231223441705737515867038705084930358748470003833637648832035227692666775780136177856003636527793883949085754906923647179870704341048731973976901133197565295051666950783342178548413936008106430044583293806594575583635200464573307784064407640433907333029839194519785040499149759823474080376469322120725488876983800752531902090311672448273059603300422154934698330986522298481367313916761756358592710073011170079324196727282918780024937781779717738114048819694413269135468765369178352409326983782435731030777874894757569665683953285963148359257127483108376515294555933012600920121521654243806924005691599917952016778018086734637448648859328316188692090110656330661056667120442358546006408080249710605728278007276505535891763469706295968767683429929427581288200488074103975588704602749952478763118787561390870255857878526842389426740527899367645147193485052687973884247395136743136161337600475783393291075584278627975546324621594706270449231172695471041105151245353251995815779511857695062455645363851826842316498398643700546640475533791809026600067962093790507508568424005590905963320904667782300910050152522279071402097575827629793216891689173118271708060633588378516373677396918068773780243126324989207224722610796268034577442838182059900405226195773222247709070177598443834983700689501228558071107151622870846629290935191613420717907232731641598208151711213365830071625008353722690305330910567189595108669020972877416122861537978024781445357247603133344228431391016563905545628196707609037274256717851658354638192415436410688291581097617212028378321318338717858533550173271673646955074816791335062279380484967273193918765649971232251859025225655120496235959516893281006395462980109322694132641209833737851972092701166307588462848452962067959287440304673166861113702751357546151286729211892222992130998624174953815638733541467135310337543842932140780418229580436060111704776133252446972245086537188399595035480151866822622333913431164323327119404643677260996776612392374730555356582071345182095488526891339766657093167515247940131619674071965367261985864072029129241204941406389648698348997246270430298534454078491217779416783195996010168337785228467675827370678668286442641547042169897079114377483981351793048367991671760860336127583431839732888648166522827869050358036663515386610714552366375827850385320091331991021343332361056406431927823972877040712033947815634865085127989032724038389281498427924071304438820490782254648141459588274938010178139196281497006016067485428617458411974783496623822436277975529739738902153627590513977919663370527364795853901278782635099120848905661849145681781679479190294851236722767554276449516553924507142433412216456344690198003598545824357711167391818025318789148340824020418525535685640637379980650607714818753648892341617314814697325842529934620750763014443139768644622861172257363761313608256618184791195141897757404389254044863375023046973462853878179587289845807560142329653547893420668052886391500083293278561813465395926860541725579514016176726268559142458246061963416903269499474744041046350050508874774800298665867513766630799665878706240240562891036210356724092184035507200573614380412538641482904681262874455611676069463831028304242158265806049598389113899323285524964124401817781462416356643144300688549809717377970403173527434425312889485270855955251620196699810748873052527405006827693318348994316425779805718672264453006703073483412298071001677982089643091758626238421201598825240931413113218815846152944523272895197213499304825053200972628190887869713890526394077190529490525813487296173934825221728672682069625669506564016191410572545378994363381441569145328501710080596061268597497841258501675433565395003962940785299283638926896870939690969390555342926833146351957061899301093169916835465300987823022917022472515373773642860806982807628301903203247676862126511492868922514916699367175645069345748451737095949454154645357686622943966984213094192914823944332668306433307527934025851231129087077711312111503659080823804883173205271545922418259844543362221104543048804544307030732894985422220466035251628430734241139835008502456795278797415387259594661803871413222888413590323172171578866282418597220320985379454689617462065185344939090432449522395380986320729452588000981207673950610414735982955862570958806217139423470048249196606717090714347518728527621283573165343211667579806651694082181184404494444276349154245316098072689045342322021005732875443841110399201637289072318481951880164381959035432329281554327085824477949370152051639018381445974723014644550186465392601052891971653463973405427757103950751850407452769138683255676687542717280145672745549737070296778115742587772845522820123898280248863876021034524925952682154237786671233957195253776815121117343327201152419322068711330623128930131242823842606879656204867519260965958276808033217176495646591262371975383875379371347150240211448104326470656656788219821599692056432065022856596356147567257510449101371051000481201478081123295754993229608430751213622875660498396189460556037655617541136197928617025416333678504450351401210909840318092538266341419831596488097607877619291187902391154265684555259177715486384468092347220649185025516266523261968262619906303537619845048617644907339723416801205958528944382543070615082165801597402019508794054565478014696687282186578759771596763753323974730608531315175814950024387427626804656763585354546967137286093785117929296645065293873315504300361113732004431067539327452649304152627814135496767347078794724425860051138755639369880317608509565916787773202814352450924185726094705495830610137621357002230977707133371892932649591084782276646900207215074221621930698568404820461982542430188772184243968216343273355848815266593473426386064088919781324825103783314477132170758087969465999926310460935567882274907589748972586708344765350800869031030909504713326339813366881741296729279876893633965790030269044024706940611301469604480512041573445661522323046734074786481956847337205942452080828045556642453643198894379786891651846865166777526411105584497132475144032421859767142877654057022670981312316896266613135374718711538092637287823724805946939050982895124144206857323756963699070488504721966707588797563193807732522480492002501859352700369620632855870620958793103165828469999329990317163286086989897175057315678403294177492093600638175342984083671787906406377931627424794119902584574583358599373313253446500414951098769258823133310810934282598426731541962033420464470284903688706413433907214796381192400125789144866729501803649338718655108299807266818156669134012834669733687028063541799369964453447304650268883133241701075586090240749818140466289106710042294564746664611296831130920573998888290413865752000227777764877255677561658695125652562541558958092360230561563448653642456338520393528434922694459171897613199994744703400557504824426723580102349540647327676078525090847735737581440190999738172859996683673207297614105760782592302202072321422195577411774121302058968276958153435459231271533679010259925523256753140130110033141954999737547906267085788226663707113978951437203740378312065660565355191500630856502722384614144702526868050575570770163184817586316117246135744659458935782489225481831374224923557936585110680980389945767975019567655849720341762892102350692382541594977679860102149994844270521880139136420138756000956828687234504625784419169797586114240520006691157911953524349290946055072422778475894985887074694325749640042032209877258023510574457447097262777637179310994910494268003452757765081898397037237286081670138641011165195233103990808231859006429081448269360517946781165326391322925256489851587284961041138398443927608731164467844089724826605671754833951228047418491929455083447826319587024282169601044624698500006447961572154482987929962476577705253901697731246414478367363401715379250521092382344887193527425525737284160671238957225478768674606834044569293846396521192766149022041909735202020101545516017983544653876595994802451825803167141618858722495357489044833607971915133095170363710526921578161275151418509703168960797038724137917335668040554409789197699041636999423272829346143994594123996544457891226794917021876784877208626765878554677039880139054076762685891331803551734916724835399440536926132672588250290156930589271409534407582775921444190527855741256879225361527395753622470685924317086044684550483501500370280908457073149181722017865314840410969321147275530645637279826031668911708435813757499829815131640812768237904576881101329918838573324948495126513918496585201846933919130816029592624165513131351033944465820790704860736254331009337400662964736445196256600868770576053245627676294251168980618965525059318571670396275730488727274065337879913840298803928244801006418836645947912917383025521351203291817845564923911933034388934667951386219189310854965194541470632674969401820020318263765603943373274096708698098245176769611952103956250224112749510712939245111484018876858196153426023474324798126452233038448209035596465283919787259118706943308851484954310117572845508397785891405639512310396216535928024533814718434047514537880590310116284028579131959508146112397170855088986944910230456803338919459842033840470147842800630879520820456868155065335318457121951031215364352206330682625399468820420217542292884421074029756527652515352404824124840366585684907939546530077956894095686447885989850109319500174889933489595126479930162388094443538487360304490408464913199174914996205602540490966956351023555848776100558487347783169304718444319574147284973145235313403885351823874504788291493809873636744120996992249949876998959162300081140260096143160238864688773142229592651664584591399681016676521344176559869936467457521684214086852389704960132617716368419404045905581488665499898189117606022326137976193325770086007276438051937738082601954247803502542923853388882554673729517773468468703924640957381222833557223158992270883265937886442949301893167676423417488049988312177830139626224300849862438532706915220990636832348303498056701599901577537726581753521550068858982211734866497049367731072071624970131899199132495792166681292619158138589506146257340669482807731446448414912074271153188411644525146540773340213940018735359884056288079762608023085045810601616005281914305331490734978071342614410037516616896154987993117926037607598240866833574333171082529614476643978134259930975751021728268497810297455293277278022079069232530482798469643581669474824095288984367625974612392620193464463218709625136387506538825366461053598453115272187638816488950065712424204217781501584946364499749938456785417330811062717942729921695793190233637029758849549985756078401163476742359405178115095833555945747485150259351322105202383087422609685550265540712071249086351281590467771741922725675694183797461626574708019216680335959896295521256414029130921689702448272634011002837210509014895371617133230697836181157015985619083628466005428683770535574099544502003805639915930926582997120491495971684490413582605749436931756354363197792112988351136386683090472851744222957459276361477518760730119685524215091089865690500643515480749915356036663063640484368364854373446602546664724721421845349974293741183199632513379957269244649237885159913212338361868531060541776031650470002569142294035988485168669408300549484487862738355919404899520310692101374719840128117692543643643085793719690333174591452475180733797443428308891056121241170483643154897431640649240198569211193558971390333171145326991206420723925127319463332250151153173755717698535809100599519910799599767225082021402561818562399086979390711292933038978398641666094056396906503245871193481359667926471662542368695115960290381115533846266373436554385504899127389281803338770638959701178250348951486952101650973171674400863483339040048651005652157764550661646610554649194675887958805707249013818641970111879997589535254887634414028319695713043059273417695780779841898375966762417819211192283248522673021453922839562885774022955824151472871765809075324899559027838565255008470602536798483149081487893141314281315042695416754353938329467243545685371678213515555457285903062123049045813785654400212720852738037125146116024594332999843008703620060765345229699198881664228188213439445643990699762961874087843656433091473773669714722652775001301111113614911880968673244411611033719870714893637023622930937417407942740151067119558289826870894902934604844877475258446943893131626016888213334347126972782484779547433243610330232682860937730067097904803912572511417286039182577391296219093356865475409059826221896393920013304612004376873440379863413396627937623391558331844196616675102215701720315888215001343468096739975125788683444866533741629468296434174626945008861174117020823193723505106855357257347529286846321385054341817938437783993017347938281026325576916489634016547317186834500093101486093404782779839349724958884710098462125168898432873684704806635527341576460871708929098486893043255080291253078124733659831777745435812802692446253275758931942263020634259763811092614253898126092185036942003333951509636454426142461436140032612477259078557652796245119501535101761162612933005582525512306986431199970752069947415207095606458515834942558470817804023843983340187898314970037999651576761001085231641670147499656145819851136779970056425439923387437442931565052669923787884370925306704223584023006553938715109085033160586495477744183273448667465778681384722620446062345095735975914609648549692181641926374338057704480496667119033927898193208395067172808844642552487112182591076580265838423749694336573060393305555383347336250375298927077663774170365105277096590047500077508477417496168432637008449222893017604161982625426891541155536965279041691601332015017251854264414964458231768022068945044832070977309810759577502191441493065389655809506297135387195592226779126727076269657792906351973025288788615498161912765178006825391618357005136939353082930707831737753387347073120796055057461425743397614399066997269109996263531836531443134270424461938324144904663914327651839635453208543725328322947308826217611176223747222963652909701936582183422417297213283085315608290138807276645333702380779602748214265193721146691844207022021093553577189637081447480370135727348625503762347074247594374174241701843576707855149690026410155860986194923063724517543345522656058135460827373929873710960326535517469242900125142580853722966306941669656395958997427383178308281622485136604171039311772929919600844405032458269020862782102394226730077195131021148524995458624972590869459175263673674184491183841719759537159662361528812396613065057776083022406341811400635488515546418010176006133762406788967035691181709898474158480080475505323462773544429330765909601986305194208693943309999716816335293420594906094211657642691429413986404946358931553203135948382900805722925138345809228314534313653354438736409590261711663651739503743388529615995761304540171252211851151640557920823315599949159516966437967057834850183149887523370777990353264988701835293190236707981071109267217191788822261365073211779999527721258162807870654057960046011795009374892945612220666458700242412039033034028117517115083825699162664182776501767497835844781313470007915755582799166209382285191730150295095919346386420353716002127714666730440398327656017283942975522797587133184376057111938199144282975193331422188263602837157413461964412831419807561261638120062984468637104655008895236237630448322606608093510097347070262533809610460308645451501874235346763070024586964986641591118508634721651249528715088797676308452398667666461042134589211194629367672974371310531257917334801968268967236931935867707106277847797873956796963382783998731360149659260981911184624526582546943135010741843348163667774139455469520730483916754715362976539948973253142589916458491674263469763767051555827445645118125497227942729555301380078727239232971494984375510526703144032582995091689790697470917921074109854538979373052815946698905374046466334998485868117482404587194686011976620606399181518911050999885441719574796803183522267228055333692892237652304812925431900204452030142424938016853882933318318670046013116537415536449596076468496486380174369762616270016379708360270978804000405271409204932954887914190776816068015721428981563037486193233533564952026821193844093002404107147196417230695803669731597652693045303570509019951849400495489412573944101884006247630198103520498304691645201563931294887713889691106207305600742475349442538238351544954123477656755762602543414288542010342401038490205818933718250740809446569084279413907231994633096385598805523823995639343126855184433115789476072889413295565717408617756888772259203677848427867974638604282964445639087583711193062735506929503204776427347381687911355691756647319592457721903332659643973254274157856527179332790209747441409235860745730060370815132468578478528344549212253915333105425667839978386702910131329888201487576530616119415052865039234561662461348719192106856629128020876575749511926180544967295528146515793116442634643292208632030677824780063727887392090717655324039234593318593068724649126924505062048407908205736252903089775154320015309811350915968250227081089040818504164407960784608670485272073594173007800458041898707303340082237175340539563382341330415780787057236374879009102308335448085159791244517450316089585569567227226667979861951218003226208594585232485266738080517115202611098237457333757232659213952001351017006747346728156161255515678663541293248045872115958190812706826935730506341576326214253678911677692941869057316589528970150174027980892546464123404931561631230104072576504082876330818959374380094922354214510574097720404716851100440356265130823789575150167794740081751504030648251586550710056639719294458009783673013995476796522548704545373457480405227360651168338545654029335153087265574363579071323588246661486691222077275846408376185127547017119509700168582181916623130535604586336057951086959816101942921656746993184239149338420930889993069374757853246462499081907549687141203851294296920795989202460219587793146145352382974501538322314144352783269428080635783372659393389042904931306130417419908981769151861831710104021903094371059906915171397956178199158316334369819376016820582474915480522366106740025595951685220738404860797298456986572416237749984372096789513692458092676280340895829725987900781819834542003156951696911554265900040335743254223609557573352478448181415914475275102111795334516820018957552484464707618177004254220446523653011080121042686856913097371207333688909009271288619975390317638009528929236095313146175548757108731370473769430733143761998125501170891966389221595831619415639918784232992254277119303001115753823724609676628807969638942166770930738413739460589701018368883216836725027007393276185951371863117122345546456618259067162860609135083669346756992549829752163364818663426864295895605028950769082253063991660114749161726108665426081152423624028972493002146377844542676727613474797704919437665533086774438477179805282079307754525058576230898738381470713383424846723570351743154575532171725970570358581263930158466459709789695660231429894925364983262674838779614116372483922472908176510635148277711142130295071657532986160470482893608760129807109779289612251286251917023864989666605919154224769205888453376100762681702850006016196787295206191408305614035216341440038429983626004356622282572286358770322679036743055985666129566403531193757480763748304880221837083418381772732167982536590157978084515388050406755512235760697232304664985751887017979368095587332402162023639335535596774758853178565219444169700480055798213076690367447855840006539927953487931144055477881746463644289183182383459816375087265616080346578784017677642572240076048706686513398150811124483885227726168974842617920492735627689802800121988346578372144949811130651668537732960436972759977994761486796298595399260377917225427868766412787827108710760571787640341782425347016140538488191309951038298053327433811501112571202674672084416020902374308587674731796408593622328644927709337736001729954537002348735056857288935991354905349203682203363499719273228693491704835436080261992823683528771427343415123699152427388908280388100998561642067583108541561145568081973763733537917873554602638367946544502544031356111883991038245514446542531245755779025656269230995827896812507821262007859357753305823856359594928644478754139079786508919563330204852287755282994576884160225036620410604931436729540469837360705695702211590685491655646899911110336919107988607458196492308857927533869929338443718123374681226210100505366505941820666066787650761258870644962901336138837209792700950565180564370697284658449900118085484554377872885856094281715277841929588586092170259285738950062468618854611280838206123143339200318265875741933683264219762908935678473148081304313005045721116211088312174193427683964851100413271157459108380835079929121530498045979769898754258518920769651557108778669554913187124424612687677343742611062201552705775543444949195231399915847114739149165735718375974280926405045629620067521306961819496203964193075934968659140861739537263519584840339106145264120238525136484531833857010077676630239025472563204033638287247609066194828852703025177439083494583621854229008991816227638604031648134650646659638420051186639462517489471482390049365644530825112052186608720975343117306959395623640775353783749477870010753631571214157309733169694671983208222072089745499979850474023011526566754946146024229716481529972644594026452754293622106186537511761243709236250924869380342670547059680460788178030441932695225763156575700483778724631587488374304346181663679928328442275173998210338678018905523159628794155774058757625317102016015592484388809312677009283531625699939762832204566481037045953619161858621424288089933521899668841758358778129817427195335429048388640940330431519906377914959156694226276391046164234237091596953824276954120861615429629771775257775449894200470426500714599029614652157857607472524021641828719813230887492794160702090258708012123317760201707131302734094368469309235749558060603005519834130558796565204899608825037195616626017038468006466134743053439656098135909342632968723870505652662947289071183284600985898544478501837445904869702868756333924596511335435388738869275000605751826561369409524872612235883901248469559657021665629131063090078709592771805297554188599223581147644341525216937865021956625567536006642295571672363103147661692009944012682654755990674215593876507501968722204750549088357636324809216629339758539830507228116494596658062062994121919664960884563878570989794405942949199371251989205040602351437468080357423509775149419724321647392429825023807378136695382629278241717322023711102159041002297235744442679841373230152417190286524515225450194255039146057067304591725580694285623679391497654293628790163919100355413769541030600307990265082994600606841280015671938175685332862498321808215466008645671630572797959703703862274615700873978500337855880297744313087628310347702305189019689404630538391382546314585275665687810584521126339115888860882113755467706006415049264698759963760753893662917163346465814103106068702144278081259884841737494209679005548461318113561619400660139186994102605806625591612436728168792853566900699665358411556641115252818664444644804131054603684678928987130225804856976434065837027762180002074101487949448429883635302002530195411831275295395557498159537366816172769144876519053787813718477083601207511793972511973465522109120080065015481073791999564887870095149643439620989519254583082928579411481261341004138514619372911430884569176046779638587866296643275989057771116714362837786418490348313112778684775914811668359029101258372106758930749338395685256721847297850919118401172237698576032025581744340003538182305270460238902503354976877313757081936336817743830541317005166440505989564777170594697808744463420647158482312468063341270669961958431807477735144652803238625365329557198870638290477041354110137818687361301067723141918117436534628080973598801068487417175770008611720016143772180827712819993234441069743658995359206329089213619201646744310888645309548897196402826301939701443493102203227419941235431219846627586547142904102905444784939833461249012056634135285049825003010932031574588755521619139830602155132833614794370390245319571437571275342189442146715584445313058708025749449663742057926852524772306818354691231564521230692959776645775861507809075608097592740498479800317191691968580870934516676164332126329213069297795213864573034150617561033795872436165637096912100914767996552148787105848362820313981581168005345439022785146263363830341409177850395586189599867567626349155515948996895817902770841628013220577191006545299042874215021524982312786411241922124220689402781502545239650414522154222973385439282303972132577275731195652768826526810138141900610977346911544125600186859012073626224993768051092912358915024781674950369042908093876451949792558445768067663183892910708652736745431179891443219564969005226884107983761972098778886894108702334782681077967163635773764590027888086845074943493512595381063977597614279680188520814261419128754887898816843457015882346304792962912307355753815273868395547534308725143554775016586455139747237164020005451021526270433330709297946190098298496895059419483205396147038291561306559506500211910379115125580464141645984426695801218279680439297289159942744213722084354612421965262901849244158629778662946629647544031820360845796136890700535463882070169111393685460066636359757643366317707920237324742595653823707969990281237078888582623904385309706341046675158730333737127667054587660840185059199215108147374591692208381408771722482339282985418661062863838187610186252413807127950616102383282772430471231795241497862571950102615792006248708230574681376114252232328476421139306783726890532855623824242661349771067658688708205698155999836132857781016011305827274955275174139810679060648425858389317528267101540571153295844951146645834128357037578478794939507261151244982476074211761600191567791580220264459330026476269800369216303187265418212317448332038535682445460520379542894071618320018811512049093034339099789599760838779147209294815110533821341337804858500288347755617104712855388216375596521169892624690488861789267839805071566994074042223278173670412943665871779571555692077742557083751519264379577417820434950141589283810534170073947227399948090962199351081737301908693626115713973443410350942067244491857378624121773404055941154158045620659283958992603719012651303137122519311065793546426972870606114931367270418829065328006363205805437421501826345078312459647104860593021968017481878040396820592754716088234762511813320937834976498499485031328142227618569547211600472563946807911139572914529287991356315053612275667389932740328063830888231653715021188199927508239031516721517975127750318982325767995873330101414626993309189933025054925376308981670172749608084578109842578068374146079273858337378952458028053835564963775154387612775916150159318816601442017588294380508347356089099397404814221363299096501584322358474132069363283985621648920959586262425961837584200874200509942482911618858478112933582599967036954621579965617633317603813461808115516534735952280847070568696646664960304235640647784844711857034145433483127553882027805798293945039090380173036667621447112015531321626845932966818609943962688854664163474129035421743905763251984671425984263830736958672227107087141527284713037870116953544672829011118416247314013025514933515930936651045479580759845336278598936095590036749953199849222808688229096179012862826538826055301323843232790106065193423436288895981095236842884066473823002842813720286791718141802049595327030238765168514009675512057820268385301244783687950522985097114597761535458022989253287687678318668095817781822494712518415977239572837888735068324179491391834290238668651501521350529510120381449688067556474561428159608422911142848279755765258993437536791647024349876494700332947207163336366820863530511585340265049572692983938783072427697967622584361368976528883016339263392648777521061427588382692276812863092748784004087714429433977765132973507326496083567968150158641016951976387962294121999420633075070733129868231401744132293198527554671582921455476739781057236622718179267921024084406232879111826826297852247606653910529955826113458659312073106431971933239481562703596778886563479126796578745961934951811836749480645315987520984345612185859290716595724304334362523644377172026812735376798697445307330847519808897219076050522561892516954005919115610520575946168397812237403235113333456523558098852687137198982385402607225422483762917395077205979362355409536598545898381224768044846049998212359265245982865583603896495253245327682745274279869148160805696470051886539865377670095014368296982827652756976306028811433642012671649977703917960276057362936666896115726827187610950752630065742347077826585026330848418274203878885534019467153329431468623109596040453719183474456514910393795586661335025307874210323956712420422464660432338891820018025150464974512261610239088781654107916636340904046101017459795748862528704992712672858241360674684862028456862101717261429353846613865103017220910358339888164647940330471452921680287301644438345952371223406615609615188845188428596820337111081070106524809337127498204123476877295361896338907616657478293205227062316921284241473445306151241031277965726934938291211772183575829602215562641608041824714879621561045248774257548411201929753674167719623351277786490845903840657273195581530088115853308795226622813682373307447856532078985005640176222411428755991195757198894753606320665942079555693025061776205859605003815360075216747191890517927403688703560563117295142387019409068739569622620449638336727592804831966491847921112162265182941736687279496684150885607559620805503698923915723702410779135906596979399396509083224630967614017941435311988762433512295954943263120228547891631337366393432296081224165974501802367273276243492266832611462372411209196169020169565898787593328988502964208188410422692181747164383487514027837339689737712377463019273401363276698479879893616576842381866009855609104235682296668855864889695352386798806221729232838679990710121228161190279740404238390546305058568831711272248798994141871566724287721655796923973822022455082011832807812548468896424581190654304750527616125086986849890820711553974508390747563802636654230376359838822425534564355828012801084549363920161840870794157803911326146597049287942269563334912180892320916284993903437333458307503900222244618194286230744239717975563643436788271259052498345563681085870443451157042788117251644116651596431880867227366528445686525323635354350912032434533371495101430915166396817674053158152261143735705527215513281637990279390149493591659379204094734022923861488105842406060481387733759812388114042604315252921556070105170061242937665121463391594129818178479945386219374268386914660347004414447206349569889354201728475421768672864714114264092257764413695063863758277615512060462459785821931507669069143057559023522402991751857061774923567858041638563674503470245968275141853256184386469775279101259636593545689963856492582467188148284538807769721492582720022074477426100155017313647968881438243045272847214821808709785491767991935266124075887088110647082846088823740504140877253035871426527204734115782602701864687383036355399303659870962794901586070094062290674945370633867601072499639850493057830540969573521660109643037027231571473161088803394421112815491477996771969539840707552228776469092706448627116887711549955141494334225084173170290028600719312448747291480612673596321718289490427283961866623439848886657223919918038275186747409796554901521188682590732503437265675446888028861298958235587974292299070391040399860292572499851875899774140128981382147547878774562427543982832339039247231589126145749554095760005501890569889082422789525394233363373690143285661533202565206077873054397612554326062101345803079791974104822198888773073440213542605616640598849816291831363713493236430506895268171892537794102223155158871050939513666446404090179491786158159027815103637194010183431295333325675992718231296900779496510749311500994810001680798703216609525033619344483704097120372216284717909457748568107311408541685879944289659977121505545898959061419693871292276937044436565175052963553810786821956722378498883116061065945518954107004420123680911361791930555470677165039780549137149991495076601746942834381187775402984408605039135378447989677194313085294108902734764694679127412466676165069613640674241826624875522640224149540300713336347612394723898610769454988486933222147236694722295680183366393810561836769105678477776190888181479079546943039951183095303415662137255580665302591482051869489142190361289999179632202287701301277656462170691944156049604515534983172424711436231675198503926177015119695429367954089638774201607708039947294213540658404107015820210238217822042415445294009502327355970835041963350992677526469027491235530698864213088790354059518871527887158785913774037982765996959455774726899644910886458747783845584636680933683180837206584183215451995839109370314764555877149564027897030463397201409796286548039886693865417197468717651186327555783145800008818669524224171134714774761571334913333114379197648803280808662015402283690852562443207454751979953270094576781595761863190035568148935289648647495843806921708028476794953774657133289223135220488637877832868152013176776096125340219173542239976370673412705500764678184591895383619336818418621098990258647548770016598320665144310204956860970318074120136245443622858107108196194278923896808905956325316299939963125749871873870597173544561231902022203601009717126526352840700742843500896427080206133490372291518020894340420798206468452458229275916334052523164150092423392599023630520914254470233378554649647596795828764169273051668477368009322495069534304190928522979186420817060998808286485047177063945735487712215807512436170110364406469603765906436921904698020034917458577518378314990686135539957416447832700453449766703965605840613267539522731825664522932462161167973012997947880958321662086585524725517724502489857112655694667900282621795808000319990464364019578514335584019726360560713773939412876682343033506871402236967608306411274555154168260640214141248974395534390212248756533167979518379800534386372269335835019483115923340655507412300856490153538515265450035822271598430956260113201519948983130437797016971097314986028252109160604105908876670771102617511487007043817517121410601899308191938027980713659427162806237584710326927117404693111273756722582705754404003974365603122334275685953758354652019782806210369343360725716287167361267401818021127159685589472653857025994556347276237437426770738815579553715526103003768517241690227416253445032036076776112812811058055728548798863039499443701185029417902758032423383613934428070612946441988210388559355875871119578861835846155876414245181248500713261271661087685535493742115314997247664365117033835571341481945748448520491956122845596383106053861000523419816907550537777019212444802475908659473287040459450792394656675090891586202716561652949230812291329114294459974915459128353196176255023618740825131336824984451045591344426727469828189296089807668936234212331935879821223247950159982413734731827438910029749808802559147741378712730512083199366512343825254740376703669547292968140730926109148804597966018609516576867288820381877994344576398283175725741378401211894771472716212766419298657521744057243694084346966314480926729349801447117440824543438347038926179934620503408925687876116528655830491714271349007306147014913218230398454616447458320800621970999604002150534056824167859384364948111762175388633076957239253564544826982815649791795449825439552817403724880792873701597322911750212169283155129746321644093430363702918332555390708792686304588998434421104637635145876839986133490735039955573899457152308704310130906665543547759790420761644682898866013249033279757349640126380301111416487550883249257975410852589457693509381992713820313036847718534789848795581050763911324142691928841780989255358246606127686543445617545881683805685826897708755308061036764432539316486839288314638380804363941275538008778867274307971208890895216185772942362657712754976373501704776604100261247053649123979333146432691596072695375098975635035256964988778269112251486737006645225028510556610743069969148030780210108533388153824332467076225538742187548821442492017137122012891866481011139237955428285854286313813310100085468406593869189061997848225409881227706895154183080402820069584297184272031994445291703388540263892881141363714296881332675078924638229126684702661768498109100939910335726640388744298013415584563443052393585719378130807884470046971482846861037264562135183788997934918638866741965440931922437657663659553270021785476977316208653850622840594863077735277461947566814436947262811382705982313386110841186539295734858995344375564562951291136869759186911082533594467328048306330328544388954658502640710466787872402412866691111805514377198073139106737445471481861299594520062727430928758015130975445572383846327313486375191036427227114411110476314674436508537331819874783167236450755413020936100333185984978795757873338608985836280349686916499278741281773537738826333794896802247383741774465540204899065963313950826490539640731912034288959117635711634439319479042224989118147864356536873313088405853222199845896805903448360634822659763389490523675119646352241083070154421182662287731907782662245595771513089602383037268397344717052315719909584247005991417999486182336028747132402692593960386808093456757113037615546598231436254012880209314163423202826276166409734332377067537639813625119714710366930780486538051692678176166301655685377373448408409280751677625709709830688326464464467082853321050840328573185304955492735414221616061951653700165536722588897850889262213901753734748903533949828954507985693781611782981195277026224007352984973950872119498430730313884596643571130689399347118374334679615624609707438541929594897339560852467827649035549960957339028825275572768917254132202681014275265415766073025650674534002294793036752159613765592697461501083634897124656157621445131902502696997555981893100657880855162376053608605842552406447979883866901855411714048249004240497967068997977684301088943332278885531316650944945739788056056127656934740036779001248935778186983406848889949281665813972421527963270955104089267440448642025460664082787848181639156186004525093560752021459426968985271357923711036525831636357660418196974806064160213180828292368491892863626170013741405212327761552200370219853428339812881027108328932035904387092406700406992975816508891061561000754565960696220062366293529869292864051662258029706424808138274939107587271956031713321142104405948158642797083249284034250541470567912543615858191585847008631791857428112781152957704041431533311000406148349435384612290987021254458916603023450706758033938702310501908605050595790486661404964179817523858756070707484563989997152541529553728603473906490811972657432115274965255567732335659433339119616087654761647836935922547017871154080948761255097507760013818284464541251953717975969587094892647805694679695160242655875290041809719142086683566129695808049116770476721268182407402289894133261252744968475822282204412393036602479283102780612561303623805198909098121498575543587670026141720878255742437861098642620145304708853759114164349552576005189803291485454705636773111696137274029223706719615865471550794368993078170847493405858140451618704888422365776661036275357328768093470384965179888827076848699681395780000620265725532664837591258921688964840653500777915519406012734095006302255969888526523381787529124890251952816127577997745295821742424790676205964919999299110185159328439636459523412179288755916538992541621047685158698353166594176997701559136074989329044012043055476884646764116088671998418505571028540673625756806361308291986120571273497843411971434595754335504308606210488357413348312176480466249212217197726491414383296115048653277227719195595981439010198181072779512758791859846486608444643839944279079517712775222281237703570801597330149482715219010025428293914546306549537959901666668056666575051890258191264634103112916126233548621509180117969258490090290163845888345872131369584053091150583615155915109196141334371341348930698520964818172849979856657820638345741444229867498389325363631446001047891194382764881105007138757934055382972153692237067970492230777910630146658212992872160830276919827085448553823860754065990013130467360369363213362753915767956800493664135759704271484560860064584704589896243932997917411557732067192381493145449844154493501563783862386065459535531109740179872039731160483682123996063590626037917851579127372906259527559263536878205428775273462906531140923074968275867347828457240396723572047551131395982221636022761664521821512708691175209177767840553776208597927978263991157266962876469512360309364529341191808467201122665652671639528583152105579389782659223556563619488327022565126574676427381954760201921421228079735164788943295796023066890884908617092473578200936367481676841785561136897258261807527728750104414658697263182416886878094988513059083253957305432092265177034262957263366086050580590660377455173990750023191966119631186103646284535500293292648345729376115854764520336529520645513890820008097026488286405609590840971768498218136485982064545632456791000633508882840113855964382721522850062529161816606541098031189341846404010410862133667792135906498783542699403090157089142981573929940462268736467027711186216274800618976463828349209881426430602943141823251486803115823167918920305201341356097113276258336953944543604298021018719428841164207468778700708603180476727077099767120201321218485207154537846198933156033009891321561337670580407190899159669179721719551221844999564997977614270795051833114204625062032448633694200547644429405445236268266529743442043043546864799543756689843094805304769907678800405610511725205583613319463348108121527015470440008214522261980369980185622670207334465151314608019169463459079600612085141192820657986755594922197359576299304752625030031241583483321241211296432327974090389172088617009954054842702598873693978601593222428902639736812998696613008324590049689951781651140922740060222117429701143044508618506651558133135411882796199283997366582164674917890474327538870865379000497098961745935127859818043645418142198196437482052988684374249547137809733698674877019141073824406227971139762116081786272785739053912410481643983328161128203925394968519250679839540841074853993604464009421889192039103143993976713083062861125505438753801071738780180007547048002283849000834062216042175846668390609956304612660648787748702807399022905629930305411715692844618963011686762929867064779646565268124265500079090324064194119532417968935227924549332785420528098367077539972936158571793727430010530581260598356125114386762928331999855799763397749897757419003940193613038287690275296820758861534310254336573216329735721813638987633278225275276116014004498462129304702024743887072978429263481238768801733939141972593596988805539238559352833310455548559017856812789259743502003363010000658832318570211143318537090920090703854730201555638970178226516560196607407535127624023941618024117106376957848071136229770334566056681815810038090818407651657868722180840081140073436164191256820315786630105525831946366729196338558172453797335182912543701834595091935876285361246416765175821697418442543341081175528517370113959804524177674450946233328776718133120943202554784900119024957032725391157023970719643986244774237660210769535039254961881523976081284819109769351265145712298662623778124322668182620675958677319073359605955930346555936023046016186426822296551045468501830297889710657189516862825713644106597463426477928998838285962659455247844051572451023381870829475966887164821708666309744614267435676375514082021015119463136268048575000176700489666242931520000725713940941091003801068669280400882159126125435953693390456028075725220791304645621394339663380868873315218732483341835933738629346583642864642356867185342551154541068163263878588419088988770941299709579411544557166817587737976662726811385386052254317500371124640545401399589813918313596096090515704066832617189247606064398114593348977679294473700888664178365987350458382397042428486649430473950957591299147471040951252465009825352726676329731832852836279938335993764764280204289448929787186720521594231743913559598268913510767219947822133722300925727016782398170155602215187769334956097164183633517960404909199624737926514818654236080527637307256656607260915321766296337598986701994716576923112833042177367926053463955560865125481264646294844662913452868886346932883951250533012989443675202698023487423426397265761073015403392509221152815252521593723806354538618763714130602018672434293501129474701006647700826795588642717414747640098256306756176467167637005605980042375707409033980747705818369178044141235528349783065163655785325079770618488986477126004977069697099136207665575023525230165986682604860038283554575530134631071310877311893953442510000483375657745100002316599324907932025698995142432773398871744000475218290673154582593373453484144595982034383086620324195680774576411235412592072924006394921420536097121035618062127400008325113366916037314654224308149352256603782025123893919381709188580857550454338031542923078753185232005036808197395791204356061166994829919321162900719258232448148507709193416452518178726249691289070827570764302948821055413044897070398191194969546003685606715657793606093197365287276593125026747766668413598156249000918094589017437887743956645590118072035108612473297478385865770986457243509290783187531480380860965352238295590835265559830557982357336182732160688195532203857835615396176142578736934849991594066898722836842044092951075222506559643960770063726325945156908875684224269438200005101821045606510139178242054002498580606120917488598865045742941065738563383789631915333073205523147409991159332772312354818005139252128798926870030246972175823450182239606483744649495414194990660304873669676054473550447046208181755083217176953894828507824726855525665774752369633010022966097047660756670113672414202691552755575887974802557197890843233551511902657978655547902381324376349970869497725211657567784044814578562638125128192405658440720730610046666750309695428903833304113838259822237804206859375523476242721067765956967810603899028003132638835415372832755521122550884822176627116191617250611845463520380685932648437149410988995594784979696342130223402969129390450700659359711208256405993275230092579502396795675685943487021044667146928752268454707058966811986558712697135321095481782897814823394121750890673662608588241310339380524208004927210871890165317996938499233208096277112162057724388609592504542351641041300602100579589498266998872059827469406163892846842755038221785943253896899024155808302856817183757502738523805986054389638699889862928921721727068862936073674271643061352943273746986612130071608127667263946349752656544118595881650297109991965072592378915370217631134775841611184836091358866530560536278147676680867192797189546274984607323381313973182704728962322876981140422521794718085722466275930993396886322810030346620497600592255555355036817012672022886969006701443696777631334391895305919504002074819122380747280035230959785773322778484377539457251077629274793734651839723548965038777110886235571744321678391124051339614613562605901485862911741843439098914045104293673459502337097408024699423977929174753711070321089110820376561606972938661769174654156775706624970118396860793965618199074922836463459847617253417717920673689474166523370436034476076035929103658155268223291978455239971673957938019344180869221954855237264514453118739140634470470520598089829372604985980124021418483315403710103896270563912065416128662610460465861653252667454998911752211893153654120664495837520174703148208855114197442308376558507713319555793113433775288809799494550508980331587615259328435044383659292048397321595691963069511941472786142070318197440550349914889823939067330902165820096646699901027691916730626179323411578404137405948935672308578764417243024314620809272639169819250838255233294558561108595373447986351883329175232879371455734384150809782525795083991028761172931465981537036343457652414881690298653445275351204527175513654466662338592231364549637879253158333983429986645802056664547683336482109865591250224060168190853707723526211136633050446684776114011945011521348826521383695506817631376911144634800600918858055858996106928377515215787513610544970820706476218810169168361004912238462860017462465990539493612299027489511685695886904992519127227211254004271209199800491368763937349802072588831443601460415335495231629156621254466655761063486349537347032556067259285033592886655082158049315763040544498427111233862748656010841042403224387798856294733546070698492380666525693833956505616985674191660204408295755846644293714695843140631530802102690192465618967460668097893856336074671046005098124049494289091664505579445589109350735755635870589449813114189939356847163153079597836854774975395625598381073735517407305471085230087386352084548710682248732491967485252991548460022647667122513927092821395882125511061410433424168274224936403072745694552045413510862624806301176257712009203047234763432638492683794700797927716895951958641785410308465900430951614745842212786330027606261327509916780527957069771743075002265591058669063163838422098307262689092790369928855383973017463788700121123778712616127957404309697800798574616986527387927163761509635553107325430543035781924100862070720276743036328560540843437302216100056512238834220215729373530248875924718810897672827949948692608855248664187728968697947163181521931630818486020454593786613361336057572056895391756148556946366442787079831032905774375754884001630355835922287664977755842868252639530633669778250239271758594111321745592993324620845049728881034108229044977436218488499826846674912518065184994521043470817939461441305052256515832703082012485501662620523048112717374156463657857947914173588397130875587248722189105594908310299916972326280210370810336224747055018587834646297240190298436935585018525679206699038357578859884959031696777948361123406631033987869280894452123536188828111887863671656936976608295164184832509182279936174427930334873225977914952712756572148536687873198354762347454779394327595192565275686560479173989573308785864136107605807105059234495061295254839854107516513922933821382060231710154987690653302266226035719905798824035738533826675611678624801579618335693977856352021025238393285319110994146971921957006236399744656055822576438345434405299641785610432989047057412996985950653345394190985282457369673927012739139246300598563039973640236240464318490200060482943143247594602385917452927416971392479740364851374684839439909230922806347115078146690211007522902832959484924408142542538546320357399470125923586313382276509966021811229067264352093673852346193137120273146000368915438558669836714542276031994009762251703146473577512036847323435390641873898686824494403027163661566358585085907084697239343219430303170002787667540016182619574619245723048591251667977273586948703679415225987248502708328693885089192889418189224757707839179112171665069559565138174557228457632860958156728584465440582794381548598974652490791345891467149420568262590078802966322962642612809854306467374354713446501734349788755613086312861694750871960726788003907730524637415045889904731575329754847889669747080253180884901682599979449077466830667498963396995395719541178125412592803592638855505230722837941752877998719951739865266546481949377377839851580994012091628602354511146968837282461337755511421314895005166855482798141982867039022823751638100533653340188757929776794423319653114026002367956096825400494321338873533686441923518351040652326742464476763239159799423389133514256237382663491128555217833781073288339841045928947923192535942680144480393814724341830658012327776150324017402178045187982181407157355267690482511336682581211890152648845285981510653956192115221590360503511854358743312819139272537907175372436617747882808938173494068982665634779348561004765854586659828126838195943258850507709403856241538595460675669159385972641833598365933480151101496805932833867001932244973894779945050893094973411345354318559095112776074672545067930731305955015791792797754597976500708263472815568952915204499019773275735888732840183292943664550160329292052750303177443652525303653882586949656681889874896388997247139192611703376939765310577272688883871328854159265440303762691592569241816441313550496541991587124733385945504092859398503061155405681433325688424050552665346171067361578182533339037497609675518220294262631990897311231679071362610968123258758875081369689087928153039738586537183213323642534932899322566353747066983692695452366265264678116391264816142734136539037916593486239493754478059981383253100120802465509836282520620588348060210872828526905853605682420762955107632467147205304492084573499450261874964976632399450672857740271416286890502953774782900215870329244258760594659246731348406622952925575407331228083265000264795111651972546028159235307908869982618665078082354080113540332202929055422205549425690270062984159410658372466375779765836748074600162346381382276218841246928853842092985425713912693286727043563065884019494659055219794160493191186227110246995562296765062608812816113596244502267112274123615865256773951097379453574372093057253283193279491066970505062970909341196783537991106666545489961982723365059097518414027022614504406110931725971478963923942861806687769754720402800256831305534103547850818522890404175595145475021037702589843469613433273597046136986625661322527004900514555935390602064040083385268837381892252324123882321309930197782611254357156797949542889101255624447256800164549270554828906104873712254096515890935980493782451217996737307157198474235733698023877572012787315446875299013415768230050942436561793197432918429854760761781267795827615842659437934081696631483593992908295493402798781360683986231736518654805377624334326261874705897206236660611173150392911884015703757706830966696310596091662462127648894861226805331045229541340056255437693810918012063536052283948954599360746549697891744621775415717636349228673879188724971949270829863049647401732626288475982119105039127085464795744609133134399656492776467232782447319267153720438074567087645438011342673286409595153052234974360044156116874698610467873231449507967971851719776652189525276396514713276969950650836069735604080054406688524559696515654101821253218140750212432352920611167817557703094554346302949894572892377899900090228244615093044707486139868741678669148458279147824850926845734555336361804590518480888186659559528786901581775375251134767518540995541447006160994245641348719311044345240977587421542191716081975314145017095713713642822898259080274141788318861283849515689982548925745845616877755520656301844074977030299029768468078732560181034051697025351168622714575055934318970579055165183399813488022319656822546717077539765755154159379099477870546685286099712791840100565156716567792166713644536102295770996578338668598399509862116177099108745492973894723839299755984873543942464123800532684812489834398916633743943847169776531355039817041993799757957594313334813180895010060060576482072692567918244482361147906834446165216391532674712103145794824312835271144009013353594056808637771404233540560082380138536386208710132607593044960220301769680849468630117155009679985417143042865298889146243965174261675217913287725368757816944852770836545669724773903634068423914119091092780622811118979036940879959038613997756424975479858857094284350262496128213942196645610747238029960925079122195782152414652612557920348401412904683675585008165218520735494127144914492439461716320016152188077663852719829231445853708130611475717278580486022519813634659969258620000443041014512848407106354663680655035117795327418951489251741641378837671573274650602922674096257615328742198068486192270031261743663434208976517003259028737532320221263050998489227244287336641046227014527629409460881193572535470775624653974343732312305222951257310021049572623053061912044836429280443081592910348360226726717658181265332222487659312046391437855814074743085417445159340110358700455173130902931506922698339360719475580991002368535328215699629344253606139703233422105121645544641450290097374706396090682026053769514873705808184129516085933695534133934502475154973599630808757779475101765362196826718770687835747592999438082161736913300653859988524813739164729746275378420286919248759862523451966177129845438875596547902697837473573120318285423956259070236984922729188661679739218371657706608993031128292167465376478934872471831719328336685392799564696159536813070381053169970965740119711595492013301078021793486162133404869379669682002481892702330821791456942898234995130049623708113075572331552779807948319831214048029970410229805591507029173910942045901963607521726203952158225413579474643871651386101170896426364136246765785087974606411810517028934119640261317704413456333165101567791649853419962711648770565437444593118534066689417572275863167295447664577942976558685327390267732070142266008935471297627515461312623195317199826096461608860180231195329657747174501980645763078833301623896564992844575437682760048319847548912646883318070801734960955807604784420338203694929397171221025955379638915323561286711600770312041792112908785204667496717533154723055431955716961422651619366040102613495791053079393876605693865349206710357814164917508514220395782297214493725618533361171240891929487453870177452872763030088752035035351463654031087552084771540940750446718219706814654070391228111486340921836732105824345846774214824535385703409501347922750378083832077372314652071096319892013335732891109079069948942019135197094048874494569796021989340827287809779348679973846176820225253813282163240965294479506680785696226782671988525196623906861806415317369649309523329467277979185347307990253007533781025565667736544225850753142922560992616121853892858732286321139130952417392442695585978610102642225014406891309587419083537363177956413210550416346486118651343494436958894763035227106747970131166987241728041841850736031490140116151038049444431453819140722753155202571585293950237308118839043724267099071802857851699718766765003301878638532961975559121746082802536760844110686015402013733606586396470594755832695589794247019763238610296449845884012557631061845102719241941690775055558924952935482576498144605128131674286074435500539321186951085138948519037390385246975412694840159202425295887644304585291961767321732207229943427320170949217454550463116292018735914347301820136058218951355393322339307020116709279655935472569656154141788860492872503064006314215334220460176807444838174717466900106288945373345327836335452842105105562101567124657977965601541248262386951502542026272483144706362576132409405492707608564595564467744294037975133255519416785612857945155572584846011540218964645533086975958633026383187229518903921407031662096227660657321056037357360898081827636234363295864535281136324137806463215585792608058460698049985299324729558149750062020553242850147277723571249573282913454886095627100645060357735762407563712699263407074637457277884683196199078793396470447501769054155889387174866402516726431711471199538847406725367037633760963724689999219548391487863632877181579744370610825876592976176210224903290573298671210706127152863110975899969452431148941191629134128406436364908755209076387096771017251970536484564045080446402593866023463869310517700807156305492553496314788983621256486873093310405579470755565794103767267182564241665204234757885701435944905919251614552413773371714723513380044338166441990917604918867534733494256475896222621488953227412054604695828051309535066739422158708124142740325218024781799791251323905734747523470230536793140066632736768049044217061462357884115305971900872260498241932985781602991643238575667474883456455585699963526686725002056770732613840677991767125524855421157288604402964152913098186372468862923266406931196900450174370729546795076925771895107264331622911898898107109997392527904016773863113404187801285709753372091059947163378379931641118239873335807483532694366335333385325924404051838396835713775142380243809776324391154004925567069487420562574535833302733936684519100120854507669949345704478117601691124432781794277397082037160297405596076153340551494572494541802865794106600106612885350892328354019568381113551614164151282517893504913961166625908827705300573753959144425972032425078791904859171697672160682364569197230514582437271866888474505027951955704939533083386254452731822778813231889958602249374530031709978252235098744829065015562551365827486892811177388792284026718805179264719502436091072373915922339897927256199906871519090815371696117682179953830864562558264038478235990721702277506422292130871310406115728441172775691961083540327193874749034998855299576776716823181666431150932539336429406327751472822523307212150144148274769854382206867877435212981105399018608972384033783280102738259682903587410109326987881344915073787684886318026883950573961796470922768205512628290881214367025727318524994029348208184759499735997635749101667622903216660352816084957924459342471003130533797266882817510832261448326641026552166098521887642640264739456491949704830889088677007931440143156219593112012166723471433555915594260461876590894912034283590122662222128997455175097196866412888496150705073043227004838582695041202136636625185528411339815811005738518375955875273115297115720437513945360177977809304076493338143212733723809236080692392489042978791146876468930465715789608089645772672619378402002041453706998401947136548959505712366893880121416034409439882471625560045307992924193188803262363899561609095336982527366051791181606461422436481732824667219041875576841751923303936769429351862036584089359241212010973210622244366943647277234563303507482807351145743520638905584353974867533769117326597293475154654816126799250426226877963006927305009691657932326416184921623677550043679156899436571913952787131924349028552746403613023428484446544745833771310861570159000419108200800975757307415460050519179698939223087520834064827674711348306560942623391616987875167239169855516949624766526125943480400807738556792948748911605979182360585548762423982608934343601597004087034890360317617439077521094581995707368443129983628099736666491405463118577491370006782995976876121587301549803345733788340521590286343818639996737631373785983638115387703352649906180210889061424295296122726766670280233285214355445083445652843522893285025027855163862695203829468276471579221212786787815107715517957561338902582517674052706824706984848012144441265457564673124259157439226704614870421533214001634680984786727838083906148670919196928434368050089836412271041953536786053622931981738188261109532360986771713848198742916565402096947633626078869254314066145151373217214757018097490285368218336884980791983256905710015868100418894409080129332989663628798921492956105080047391075341465868421906047106513176077008381329965339412212836988124323119779751446853441814279414785278539771374192950365578770341734421351468615037983105194508430735654429670067095912320785125545882069505534139294567644448226785882598918091171571372854204441110111635974463940910409154413435330599107078535560609088146719710610692080529369918609143202514196534830105795675600139323250927447291255485719341198958141815107454957744848374479506527769326427057862556728071185706768133558533475180580665023337432030656288885573167839845564143347465192678709645267546958847739971753653652577467191357418092769317231938114650842557701284023671209272881498774988694374354214189120158718039899496737115928531076564372400335347213554267250187136374958242932196062965484754498097118718974186748621813579871828481355446765377329311977393314763262838767992627813582650868716300578501611378553538799730987273054689671948503751318086398639988762380407751990775771239129798126487835645479601482695379281337161665694684931979161866368854641721513767516608407912915290849010079176651282709835779651234154557097926137594392098566787028136660890999743364978094050508747394286685701608731990195672265651062556112807090825708012248518697719330641891231504485294699180829219015802251526024346655050684175374021232830116108101111019365767404526375802479519107564751868809662497328421002906845626501723290009284548188042635244149117719875077655533320240050870025272801655172820526617040392813509762263754170226980396988347298916001499882278720524032263831371801769583271172975504811730368729531864575594297488219276384958481183604894231304595798600019073138368923754498091587385757108727284305022626984299349424253878801995595923177306745743337567690877740330177843097712969907457033502427090520774863383166494058540653437373110293996057353370032574804060379492985297923769104429223871649706875475398950213908000040113508517764424233416031262777275051423025107214461434463645768312829098510537936691979784706353660690113803366579511352148396374019663611010987993864289762664825230259085635576648749216106844853351438125412595618624738848584057327665652573809370379845738393767791882757164177121034422394681881687511432211146723277412681780820749767741302433483779686279778504198153696000611211946434529606315454652914379919757219878513349091383181264954004120200764473605971094787864258578077343321642657394304243656406817133571406571038208094395723283904534910491122723513409202513604211305455353604478019852781980321079652164844523308044818889355933922529189742362265487607373042788487296831800575287811771931627119873583141870897909643290341692626433853438235751123217117356095913445955761597442571102808679788728328264715477143805699305480696678181517313606599271761177446665150108505757035709529143070480937841617007204123643583635741929175897305634933941291225631004271704151655155095048232187158892189639461152190014512278057343999651989828899695508532855856669891430111587824477450801317301610748396200750840922599489851902675762034840502660543652904089636763555866019809543111214162187527752669247506572957169886010324689314946941624735515032572379252359629626428467843132058468442756718124994972370351944353767677520728501516599698665877118866851157531659184748566067410484699800617085473389837009323750053351582214555860641443186951090984606232831654273310374847595255378882311373195986228444582592938110823034561072110718147489997201055033323909555078360760149296180164734715491730612474900049623644478528343946618656689009152445143918080903356896202560645703176519603125885948795108770252421441635820149698988782286970859034888524243892068635519832572149971177465406896363318965483695528918400007934762878890718040434661840238281500742557267133888735079162839189380354543888511326779141367041008965436067233828317412868554552117984800809696494563304393941514719310857284109355798777724738898057330791552166687106606949140264337387543670183919336617400514458359531444610748408185333296410022506183424517413007097859935145857069620784581629833977767842122144000948722410663309453474933376743269580217022936642002741811180042706596086496648280222775427535304452936188533358748655755738059646372624181428139749751000293507011904628527457559100687443354312044513918112189967494437754858344802049099223207024039875371368422705730697017887858448806798506063582911095589352693862876428942764801273750617450466740735271737481179695913430420720341487170195590595505851327334867155361037918855645047958537198598143821739415715967596986600098832885572013096360330775169126126894410130306645368137572052377713252425513029703286381049839240605171132917275156604626895509239484475207109888024450955456882730529429526740632095976493825853607306092128895886693339434760120646834864208319899271753532915507485064157961857584116206953404474016254283166827179003204994357264087410386947875877578915495813513461588437557765761008513714940635261900466128052419772928638689079056978950666446451898727461463337594732369232850609149470188436942712955334930926766682771069413791587596971418478057236866057079891440811945276782225313433637508801807345482697856918787525968031516064160319351861817753512935007690198328182291942948299102114958331690796317868589067188190747334689024177512705427345104811983605784846925072575000038323463419714386053793316434509425432375658903013262338234226590274580989094279440255682431957533872665344643033566830290779526290864951580076661934485719222807715945876482582643819956675711986944475645554001870832503398288545284115598404796567693446040146807972250070846378752802675394754604714789539784410255243723407672595422038697714867787050082730843990510605154611662845276591261919793819869681624613597031353818178632660045473009675111345740530096720956001251978964841758274230291790315410682621243577556706583200476046606380133191188481776415366167037002126486721825574858164829860070276450303314359536836220803511396754311551702195574660832981339379071666872488927102123375280039018889523978632896964542642453442179648137740009025159982350676986518551604355136216036882756029765497900330178498361666544941670970310176734068677474436915745039027464963345189023682032012917067255941846861042207336387218491424360318096477489792943882365862027450482733810186320638239398680205435871306669930858183590245018338320165267352045198894796058315327482051180788314352738745046165421019689281308323107541635947769876145304419692645422669498276254896144524124471672491757118647382180359056109019831451121246545189055525308727073982980727951559820271590092902534955047705854078771459700984146590567419620460700246312199039684190189317430874599772817455654569063413524321020234905857793463735605662731259556819722836572807083350936322971801316202689655760704792347122068179308932928747280677206888178585431439092054360151968043351751607825782411709714990935704791031478989159505146566874860468375384533144230793461368016534412509592660194309581569507230721128238131239739780094848268529365961918690855947736409065015000615681644458554062944908533499953753425332513681767248736065927613287130025868627378616717589231890319665648272344072795784117313937905581413890049759791609544165398572890408559893323416041854232258821416233146127053205816201690151603439799659314157018154657060116445233922646995022533538932126915282322592539855767391800517025538700914711977310950593247337500586324681533132892114847067344246183593192522811452993995767259749860609917749749079147107198787872419891240992330370038682348690166692952142191239735190972317334958976026202760124974426247269178262387593236372250557012522454457411023129065029974471116725236158424438567025504859645644186731496213203411451162878432765527994317425387274029715173142485661712515525442857437568678283481454489379742813292841656480821478584929561107173295758939746440914421132606202333746523912418254124472818697005796637840542468284460192129193912553188520492583448299760521057566406242238907928770384164355432223913872383555400521336834313871662145425965477559712974486350739546576815068276407366418637003126624257874880620120897339851557706960251352924796910364477674866426310389437949035484666646068662688505530796624020843481457022242053063529203487505498275863356567323264199476238319657535867764137110149187606720042868586506534096859673168618209692945572065652295946915525839134347771887926599252968247438867806557118925175464128116326700450382244856186941791596522200989975911096750660050259735702738555570039152855917198173498994694152327514099544772150982427633115138636150000825869688058178205756072208998911133212362168189161379512457549600762605496548318344097228747471676550133890171833959462722809417894625023261133767592158344586877653061062528602854779912063595734313690586058349926347343711447471450425611653265581584198679811198903128540124846973319779783515399047437929930914530037935384576916671214742175706264709436541313139417288532369032950667333551757042627742310663293505880528630078234204438158543273895248508606830380563063838388279836763238234271491206268629757387107402951512350576803730015422620862624200765829638726263500815410051571207642291176009288904498811748399231634478567170258598451090533717614945933864610230326357957655677556706200871712235098261951054038783317677242496968540592666825269795338228044596520128661630522919537504269063613021079496414815188888247874955229065859666555368212550502186751518330233329980347435977525905475722779249504430054974686221930765288840022769932904213268011390503987511355747948410870657355394310484506039289537169364960651630599860454709546802695330153121468841608823152911305087215118476832860183526608268112288226594936925463873815722496040423883810079215869984944119997634339725265482581177000411440090513433541834799365060380491566972209645032116636321631102525635733765523384988732480367718652270573674512018502088765747082697775043201214543656021925804989835746774303155691536333119355734555162395774199132237163645778871213457127481750699350803501582192220687759613978416608510808338424243874546511773043605858275979076886668856045259718707816359295637567469253045034909022886879802163362720951958842355616371224705031482304724714471051440522698909115146010027638960912511816002416739616009438767353270716973983718697455261047918409529871267055299147041026581076841065575088576653197268352495000143576196572040493835857656563099904266878417164806693907168296144648724944886457919943103250037073746643282846419813396635046712258736736512583155241352296789891635818194519894981790074936536716785354275430767524204080292974464584746927964435356467359145478355447099129788916218065906772298671916142105484974796214889136312321587779074660075288821529726846826845684633700674384306293807843871299489928491047589710428066291791651305343332232706577953232381952495920984993104718943272802401980359215684339231282293888952406885349963964267246964499418325253457703456130067288105200487188475333231655841554050065472777793078478338322490031967493446291569114692589657388441040829347503462224869897677950620049543946070564110543027158003566539632235275124767896796286728026339585608535753000599972656807763352068806486304083068807063045399450093576579955463238105670758400813143876215023773841334434177591020251896162266646137546377759321088647721475615470517697230120963704025929665514178969480471364798393665138195322444855172564329079149014376781556576283991216316051515429347623170882873001816240843582869898238306706100188910509618860597548643738785550173445521369220433436978899615774156284866841764455103674811666681178372784436622975337060449007096743702715284316161736127890453382831747148260200960746357126375892703202626489039520780194755096256321757464250032866857443930511694493148356773793333398507288954737764979785544506181720200594095783521964247266760137379756807806904004174885674034650950059067853157625485853756216882274921473355455194001859420204761620652325189129700424134784706649442748466230882344611336254488304649761999697934753682832641551676561048563307391508393256596817309881534205422999207459637632853012785672419715674927142086127884309485590681948665054030177121588530377649982987129685863221208645578982401770161039247115225187987748182869942014389612409321567691005621306870118100074148986594595216699164692995637548419194781216633381039070226087264173305509098100332455751007018106860062903613800118882652188290401926706197509307497453913863378677115997506999578650564024371781026838700817216862127701309693538301434320943471189054429184050948505248867154910804053491140516742948233160026059106150922031369708089764462072191474568890159475176055880460588968607469975019112531389374717171435746778012077591120804881870728477033666669832584035337292104354329825420099897194156145045177040929057704766795995151420341861843581958164408828827261524443560690903534768753338587455420049867717024420269005341649704533123371347361222226532602714409514213838506585649549137222722252380819231216047758762935115678880612584517216873193930037346588096507560855072164094935816478816692949294599458774862738053414482166116878947584230351815882296677742057418832504274259921163553919155484357077285350770936742240091779271504519330392183953002641505834901568695615488346649877685036406177082757972103528249079986837014457655090496704670174790015413023265350258666834552710221444935901275506868604071873560941066030419644655449713952860072299437702784044802472789355620372854499363536094280817340345293707811981736279371363344869970064259972870396076010492504844555254545190878023771433144916532822926860475424196316062510326930490341406030394632158007767405341959586855711424947059495282814630186947178918691738684803754871878096270205416367734038130107937186334906021796641946729872457012400987691572389062814286047480365999610654369614843569062293850567243738531692431996854061674738562245927072098429365081184212106153810104866888174538640365677085219185409282699113924297736461027093116109239290954110273993788855006492740175398738483841838674769605970588582354787759634208345983794415362245802092102187919999367590757741524070064933694243477148556508112722427687216359614453281640287754415884615937840884746480151027938245642612283836794726937313468008767548747657522536377004060103310333402573897572791083405928559363905229503374120443161548037372937502353983006558518163325155349574159732514597853663089368556912644108890643663111129102965497301159698034556302371640085517089291947419682699517295577999565547925850004155580764595503743066491931598575943514724300851207721091549415955637416766527811995444384856332880372482106953923423855087575627937153184929689377021217383913749233875392419703848217178494952347907268803231538577442118906316822261606628605599788872028097724396504830572715983507083374675309111690180894789537080352532133029897515658909335912729003211327723472483872408835843236712834405266729819380803693405094789150191147521914058735840668142127336519818765234255557453712695494359521024439868889271253789620513990427601309627681266998180544601621494354155158587312137769216339720087259631350807959322927914013419039495273142548359166452499098172719861408457182807333192182316221273439684971145490645750336320651957915362556363454866184418357116282735925123114010620816155020030439580800863644238901967968779853752054139679019382173149063884988043295313798918018310348927957465101603105809376220212190699078542573014779250337599451823600819367180482483044841096442925482624575678360062977824688738393696196062113221321699749158036882694187790620970018747775245048174434768243505757847657352300156409739176879066527506540371916744524429520972858503439147850579577248927342680336885927386801562110261956317293483403156260709573339267208217289813161519173046583353812920754470585350403043440093736911628113907938087869400052941740349610665660088530491672012515952704893329202901466413420250010944341906528583110589838076386203892006038772618631140620594108230393867983444482376600101069422395667964649305077510305501075960739574978028990743130077738094217433138086222385498869647177916671934066270023690452422072537344328011635922086905038191820839320288883374806990857013305247291150487443345804959010019591357017666084601371613437706120225144695615471429059093615460370111079306757446732467127505490182626380806077677924975416978424831031413821385539461621396892526585455541250551785939935217741822524204032459531716347583743098412025193695000431090345208534255868888536750612019505350309348018954613636913930746531422041706596576336391499424692541793042135086819127011011185042472091021149712674377230046014940276101683282216520686426288908175107428627336992391976649691499980442870275806190255986462237905988930087243062612118630098183609808035748547402810204670677849921660317871178595089537045330597143656929111505491988358395271363121368584606802169752191654625127633804460071180173950046023260343666599766120098467326874348355171252819799175411455869435172401353313868177624796719192901770726527868936427740589851807017354307572243828460904085214748730501405380216975507081696566782481959251765529377600299704661760462710621051375221699819627313623144846741975107720344864159226676674905712175418810474303376498544075296166975833886148693194155946037491681046582370905485379815801530050442324572938615559849170093713744524012607096437165617878623515850583205605180699239537450300515214464045197138072297770504863764957243778583615798271188550497776452516346530144852384913639530745069995020414619631553165591952420026014945323768403945694867173500658198888233420363312416260338741334757298326615369349164452436594127465317734200999599259661865108420733206311380957840870071111508516756328553054210222069347043859314589961360319160055960139721888809951454125391860388496973586540453561221132976831409726362189516740805002553083284774282020112579009584932263060415229806172996423776041483841439793402525680234907461080808643443104804977061229469547389175059734938882367464325785650595714962849736617244730087468894923525602756466382884219148393283645262096319024526958877343234402090998926290866413228862021025880284597858609537427112155058764268004218172515041326323580001704614793600226899589329519907601264031814923486464197029546216619971322892755802490060216235292570977323424870680566315537960390196681513544760485996914768466237667752654306694407760515202544197459548178767689467302036220937052847759819729238419805804412625432535539339640762547804809679726227527639696191344300300139124016753317518289293209893425251243746940319311410159960203069644269658018734914835476616633104733949483944194435346786507519352857532566997788099534041182428071114850699523883205367933643857638205809416394606905619584066615057959504044667302520565532339494451928979865253301670886099727058203478618334533563245576188872556511091133354091366773911718740816874800990865726121971063765091296888534589239885915759778646680264049634333281839806615266004527756487443515516345966385106337689312175024214986658936329958120641027700508640976968130437535246411654672557076813995046266553186571228931793946199249299244263175336826476780907520791420086716043123141274953696389361350992442705161348319746339973054649735536696896332495588000625511873188428018578349002975390127699642924215456399922116076034083594076083589247415844534686897135954923249811559170120821018608486415164605256597468474079214768083864343242108237593444056083777663287614937050301224273291734608512041925153586875997619417018925188486356989772820256117064417536229041727370899517979108020728772462960201362185906392140165065642899062664329371771136808649312580770995457117806284468078150336001406885508186176591833051944713033521653646488656344998133051850856571937119500596920297015027202640611653298187623877581702372881899503158485381947576000693716123764538104307063329022559649792772033331609321321722510002653432978695117895677528091813288919380539962594796314567718591454948130399617531896212688065006437447762763456459076749853125378691450177192557128122365518669587854523282335551044190512346905713799435556117467939469641970741351930759482504328346678931274500115098523526134949915392760130542815868364062511963283297621811062899068050697330761913687729637888373054215236141335031819696865399940451849305677275085802305407367301053848691883721602053249688061643345585814103762589656095514509026258677620513848004454060073042796343530010296225600446616857495566290487466866594401323063675542236401785083406319066223535582334466127048683468169929438321278036164326551125829296586420462899438151776881509761666770101750530428928693457409101479470438737341549081775301812810170658152019204889347076325138939684827324025763229601934275259936986797135119986070594599765918171142040314567372469299535499112470037692026793301513182913795485499404999769184327223570039013789446542421268342444210341054718789069325405705545701492112261060445419344712025275977285535756671142581958421624966062834871365801769206014083821628011581944248215960479999749578206324525775872779173745307633963178921758925898524093299585677796591914379150663829888189992081792942594828988917221843985434141413469596986646862926064201586605342406097854801259761276174227320379161367600156447731458951316184615927842716709878276630656045704145458936998857859617418390156670041939340807290812108282739594478359672605305894811852834382188506443477534127004881365024366056099853312326720549653928494887922549017924944863096690838275847823807843957454047722866292809780223352295503086174805295082822196430417992214260954583558080626749359652758639817576989698056218179393704867144609414026995560299918340070299333104632467998403293049361043782436301499834128747038329683991142885773350435202719355842884098465179104260686259260028821370296601736171984451492841568397895684234284319336879591298901172572114355041918939334670297011495929829235721409488165881049019991322878940329308831785281337210059376567086384445717083781206794393693419163045739578574499433020865890462224700720145520972393075561865601178385677307044646712973919470889795612829219375101294336980872425185642537089069772743589841592514734861625859782540176576218316373686991345552726617808855542733855243812252544656265687307618666973597542999776536772212248974488750270645612622951729902112055949731398752006254248452727762556113012359440032094828430206379610648905044836450908790059668831452454792103608844884083750550556142751643556662177194200390570758856956360177169964919012388104649868402193832008185800620975325493768633365979134809231869333059706093744059223364433837042160586581763872107967291234976121312304132459375739625285975483692235715264153478624402775557315995116887694649408349384442672565547095048223392533993901390206693641575052932231295244690071238611329883403153584270753989435392387396480669344600414697954036878216850029481814443681782810412949254705614243679237760047645605169688588251009157793608565200003230354359209614171328748001814889289722617966431145346377894616790970917332447186069456936774729075313390055867788226435772416991999977417956108704212155011240515641042253693367538728789728393324543029752136413878815764830015447722677592661076171993677199907621033736605629430984940327781491843331182314340750922778833919893145809251019543789756650048752526251869367167504860628814307847644106259034127568599557012696670780034051177549029908405609903331684097333363275597291772743561434114261220808618452863248504359693762916380920156777943154194016296227280210629046460355356275649607087399574057069662238994869600750065125260543116501846146446377874030548228633542366605239744802196934424669327406280625511366961576841466656570735384720209388454458868449282231754806320356358985711496752012979721951035097920120092501705695664455480631708067116513906041427466808475867190637976927990836543114494191738625030774233789814079546669973905911182087994683791897802522106968457853799154537657914597540232152732418705290044323251267797499310673167035940885032566075551814522353494850799587070051958962123924517668675968729840331937312303245315384679575671561089479612130196141585673692054012351968386814891690406921707280547264753157217944221969809165693658074695736963768325250743798850024154847389483728994981976680645386325776116392226388459579967391903003418917409536938855501592881660535571081909610689552774554422462930286705237861539965915050742848117939331443426341307121964375670838060021823383405109126070999060870587938895967265738253114947562259284180025723059832572657145244933360335407412852950326145321522064835818799243180528465074246704113410096038475648263035089167761593817153381654598277592958475539349343642655703171856749347542946837805447640693279301436154364530765709541427249240347950166781026522051493035137011438355753387051215108662159649689876612260440055333882950805707009687027973400810132367387028222824872486313675822744555563246844954620433359723873437177626752192058946898193768079433924183536814498367555231875696841244667787432153860978374087140782343008157851555165177697042336789317989819347605167590980233847190809985656111790059929298345572306322227980405229722632691645528343978584004446423012128842348355091489285603577540102520360897597874084499041442862177241266830463547124250713912317001056825878098980977712470126895623948680578343689760782121126515409934130703437768034319932271539458333111405560294344788786382970844039256383003626704870305764262832988958566291411930762604838421358787168844641163704954770318390992176488766986302156977188392380840681822877805775798091196681059800668840504901135470761138251981147811112362566156978973315056622356898243386617875626211023677364286996233520003705955539156914509618057266452600331339867131234682320943530263020679705842345073327329582285876786491011097933738330824689593863972772209748361066972489672507121336951259762233912248852441519335789368559137271283905017319631785066470448792758243560034550010138237316221925892041783601456319322229304341173878365500253881484170739134221236550043765352934881188456457751117821006457144010585373020322554415130620767286706570954953231771291322018196246371292335560859359672497127333875987695223093586890619774593714079364602878767330244989597793486713368796672322609255740424512580235499557984336654028171394219671506188635909007135801813380814697122487628316407353008119556682301577160299385267278857671441278668697230842769317069350083167445032074679672329747174606355293015976019154629283026391724037275433617290491844783995404584986969264011768397083233448789451127342699330271621419004980230684035859820349315569371483209074571357846344949698139513556716520665217927392445468331346524473543504211191711659499185620916692198238925883956734741770558876678603766510513705748066108552224856876093944473762395375583320524219409586056208360416260970994850252081248397975433615208462626011883517845769848565806610810815920371965400560123239997699950904906299294314288268397925877016702691119842052088057348263319283780632293729868368370772225780008590236586600985861841969835786211814583439426295799414830062267883169232492618176126259481100444930600251284406260426654371949081377049608813714321172529210076137801877557603717313566781340498589626296387144818414150328633879892323590796596937623804371886752337542297951180283976634618575192765709461911278505428296811729057475654840675666556381751950157238770090204453529557620713152440144187865545790924873289947263996128128459831399747610850832627068597677945998887175532530051523110740422630451997312855197728979417967474344423545851883932983494177670234593343137181710358042789608316627669211043843694236050950890596454588300780708789924945426901811955496708165049662972781242108745896849584611921368785496485992954523127204938026941638432876317953089709013117541109193369182213308630131427662578024735400632605360956538756598745848630391764927421361558758629696467525633293506384841409868254628377197161137074261742708778658112192574148648547949770270513642833118606201743228372129740129806248695083626199812259968947554280626191155939382851455517594666276511991918348827035191404484972562793710013992035673494573813091236958692050507509965499166017440709387739684121645012427397990270692819297321689134600615951750822566553060839053195646207826911965502378090156548532771233619472250395023723114272528168227180879569517597723432150689964311497232681880393398321915611335520833814598473443434123057273149032705747378795529705788311138120421171330494344077166536687475942879825760445236190201207904635753980878812036799929629370818702265095881863335640867581795866596275145509155334545513532742919353419368301763765899887371324428289113222168340894450157027924881621683900056401778357192645573310816518012617740878632180395259460123433333940236620067943295637385934014955492077732474390933205959006628721352145504037006997815545670404208703408242019282838962624557739933875394149122926368901192416811084268781960954421213127669927381193504614320825487350681395638105775974771413718932396331663729702246524043158963885206372563682453872310810670706956359647071301354350636776372764786185850291301735655638053229538690695230717401193986692558731711377654920186636614300918443598626820184781886095545561002155392912867876640098992091477053828153199574468750013047935425739291050586621082723923335623817967028917329451285388649159906879072312598262209321742808831951576665279646780128632471469161906685230445837328769686467491051327722014497078004238213437040479549077402014592309263722068446914964663678491949843445183170919337215835364520732210827804651328566531396384202072772490419120185513550318453238482260247143752636236338776645143954979012250478842709807632948539595803671489142456516133606182501007278331222364656288839179351696770633147674527284653327332702987159437029161527942079732804027041907198721811728170711557516204136582758567729495832694566470482642908155953794783159476880806196165547718777932623986006168155148685642126283892292340332576591280423966944553927323379899825140508295193795203395640860699998633231067124500725853358153257675292760220995554872849671168408394992242445590769966588711795439486502675940227544682562947294984250303138210523186796366632923850602070674720062822536748544607218708798212984646678939418962398452940325591407763216870318031214591824155379107615572645275489319009220299328385382506419302095037714550484620173103627564774051125468531888271570114522728180713305764390183453256174756837102003432842995857982725540358682409973534895151276332862177685209395594524415804960477048314575100676717683781372142759333318728201881024360502292277057414545481924596139108896308387244887446642926539267053264187748182236258031152002308754900688178827471440115909979521629609405884792205867583032458375690888321546075736069635100436828122452581951606001981841549490969748499388202527997142438797828154522347726449223796559901067216081249505544835239733762933885787907836158175858580752148830351630747416928183949244798247196473343643209300507797325176266319554897402774328968771166123663972367502124264462006435631816035876872551365829299979071894795312731156796323303956307867539676164556148898149116817219544921868477376533075936627233819167587957580534356668042066051608800596620655623311226007109301338840700359914161348226698030963350128931095420701770508207469958720084510428834576595945440073521407542253285529681987926950529363677364232701757248367519325516132909435204751307434996220127857818987902377206122335488328117516081699746712311466966717173963458683003777707319746088871360820181090515099655530529518404879344586196095141566104730344339523696057840247769125680169120271906504569027993445139966327226915449965728705877536950112389625166267695935325444296353606456875707566422467699924274878720156386090217096985005917133272267350233350471524662227984171396001782116561079092791180066782477469455375430861572575612825798955974481125039845029265288604018798179191182842148023016825378634554315134064193969919805917942732817540351119333103765008106664567890959764164529969804982177704107221357120766535873393644018203118176047361400809979616248077842197030190225130530192898702688169937594942583406316296507570370180927591671835108271049650507674194613781645063782863313038751649809481352923502720342174416368924978912989857707805703364406221602904677639278539332410758556588500126980448825259918380618581614471039721288592526795119566856627348338883465973113966091287293282790728931325960143625264519444728056284441466231579543228420287101174562295006112483917009849850872425551869057318510309649743618607427964554385127279630291462075558162905012321159593662992147153404952728004162889883722438527187108519434397191958740329199732338632107114574434106587516486554018225375172122539486768158394585748549920390279837799092906925434778598540804447342817302169330707854328202245181587582847097776815079993412882883287488956755754452082663453645619566994553911566045576210204224499763355549602110249067268659692258134662522866012540769365828293051457980489551778002801112413807848200712047298777400012320553380401426860388403088100760620195203876129800869377605082548747192514557258244199623848984083804969954227554442312056108587499598118281808725760941250143492398115631526567574728754144679101044741245371469313706951142265987295560000059933819916904107872828073685354442224615290114948698649657262068901189233655807868473838704447700596043055745884163900317562167510210471223708136756134179463262765950224780016978894208003762232569114692516662533749890302754519488157947347879782952713864003698276385208594928019988408625179075340521784930074608633792337785952653528478499727537393300392647861992707084435772153366383434454785209437555234742623565690206956597665119435919590331503693489287535329925541827163035492196087400522001077048024994411077191746553971918176214773000232727706821375435253861414811726429536185420683128729321449982367576721223941046965302131521576493635056716452976809165040032637529172059534685329626744006098765899674011597157347727147454639236334072844272512742592555273445729202782978471064117348328451687465331537252406203154132117582329122393956793462742769415071826304824571042663606448115353197031246046232886443522939371538147349870111788975549229372353193258444107050757677910180749885600633092257816565622479384909543778175064575148904210036664497035550890139987806107338656368650934717546152481670933688096722613132427298980944071357689373394359114335512708476640710129132133418512802549065707907057663912151330153198674766271812151479451957425252900696531869206677127624552712910346472274500972519833433927523024976953975717355402761754859654032965184130922811954344227016384669323953402925011348195585643682793690818408438637122910830073596417997646087535232992971679352983064013387190455199377063707745033021140637851394282340636990568239932915252861159252014962238562217409188052247484526196784815046037275698340122990428960556429622625952320507475282735272797335642582817689647887068411530359364032176338407601114919488725922094205155395328851203123992513799381796814890748902034626523094567967484007498246067270369487721590515067399639285835117324201361651471297267274295984462780954240161801999358758600188646451836688234367051115138678844338444918204782433189019887510834365296426274013761834820944306211461898099044025582723131067732921197408668311977291622184527763963098465812255010597998398732633785171828364104378818522820655334001162403684914813112452144847037986132727873983798719482752599234761800210163225256105191199685841920107365261909726681261178779279604981857701026232840600830422636336245508504771773457575257677789597132185549979958026841886179089720005415101817255170976432672624105088229735975628837944333827524709027139444751373017467937877557477482048399083797083697337339612623582002908928685033534829547143115729144346421586589340040407860111282309730909403321410166187973125379083297855596191776281494472976409390535854378801670743692308445838324474415753335404761747514319195036608601989786780937987598384722493613452558972900979100312088545709192000720421517254417429575305558299128339040534498981929165974541071030172280307033051337115915563358552739192553652373015865350253239487475164542462520126218700666222394590138744731350487624353660477457779023138972547531532217867567745782686406404714186056806772602493457456248440411911199506462485559660393903548233377256656196897939159649419021300796102069019526312352012822249514326281798748651651290596487651456987612047194304801349900885973766597027036357486603286235934829021821514832295861603769839388161613362732726834046263027360336937131101980418968803790945888588117793127419524724967498949710780775877088812031543257404641614302547154123120155684095083199258378363845017173560285308249466885914209124975181196328624717814982727610931210453406519795381517502124300759118514893068277327724477507342151521215717773670299508204088336650279100317141535401920452601450353058885784590335256932100172731708666483435454829484132488708434994015577621439794729467495113415953269606430040451656290522863446197241756805317262510512505668403320988465934510699735135987252002163906118510982121444250253152526549861757780035323352372607259349360699976346762303126524434264777772131603509395955951924236286970387921059837644620457521910469806469522198651197103773382670650050256623737807053802442841557620606929132773715105866488153455414051395689003169240040610700054909319699075896164726657668826111187362612017225549309543261872975396832154633427544789207013127008295141605769567327186907123080552517050791952662928336650009028943883508926514717110835210776171922447702404482047297516798860602909136552728626705173133559677018654691454836851697815639505148157936705123468795534457283532031019564514943146270409295166003745273784414346647331733563189008963994116208689345357500031261958368644807350431497809947046865572614626399357118034434171182893405446924348266526214958160808162245467563954394453303389229123292980827709034461715384313621920804115068281119853130279797986998311642278904165254235661786606140733907798502935993548510137794147303891989404835715179898551749425171884964362786841850817472367965335163093741646896343703814166464464155711271266449927371610444845178656545250965893694112878778877024942636541454503537856530015091542833841182934459720394404068675622032881275317870414858149994693548554652496134515436593419005622804695237479275588750515561961063876579270237869306651075953411796983401744645146435336784418569760869852259816072057800614430324334799080055874883597111974239342091099742504583650989576953249964591037497913116543581822865366342228381588459912810188902232618988375378307670602408775051133285475210822228520929193055199322540031394439697741218034380725637410702265305153046282192035674337992225171207499189733949115055293777872694573724805385123920800485427419221599876393208714948338172058521281982272440480202461037675590007840807946962615450577735340568505740811448374491491337522702184836860869671113332725006334244022854753130999758517527128505516404602733190695903896442693501677515307036164849106020072804332994375865005848652885477457923640837006973850318418002566800257186082362774322300342478255878959922635061978105010346958859841520950137861087613853448118103108932632433029436173946296319781878867939615802436718366759260965775031998441776124594743781201427593751997406592628652468779560301830088937522020625718087928089312873279173408090130756310806296988489192325674605764907759684670551969269233323179238103608646359784462791031823318312026381203743035606531097583512477379949945031683086137184875749677605157464722797957992311221510857774457256327996575223210942975275313530138453496582126943732923380933664902674621866391679186380453845747583587501140359311845035096742455970545022173513548604589700669877667734016734882061371919204999656041394798690756173285116200335537641051135734320307349775528834212680566297836900380511537779573432089582586508715931584940751713937346897085338832887738616955947253390802532953400568134175605983482940009341000418770021184240015948014853482501088890431747663684854186331886642834047382540299680604911952930513483116413049819683675176083131184352642626252842564959101044036870704493235080642211538633240527864507580148342711951513953292734852392958345805497132101470050183771812529647065164844086537402779815512251445046046450099776319638194675400745065232890011206061386330362985612687555329802568780014379040499426815829507705121038837306331207680257826697812427255608343010262718184387210931272646029376460036750494468396771471335532125439560069497589787243716472599427066099432728650998957574807657712174678986946798457486012504212092340099206779950828055465070936579966640081134481881041053838922526540706310006726223165346639136520343840370324811811540489061581636866619188240403400521383159293169626506847720951354633589064465553232269717309885416672909014630288764603116967240481036894746276838361553211767320452202762070051820113269259401280439329108515022620903708481243121923724406034585974509455011465757088675173277665023051927320751282292566870149210087003247534414443509326467384976944311596567023029272626875712576487236969405989276747612608977927495436030445426674773333457668285941608801793085098357637873904437667497105438884363409163794694994967339499608857991011259031612703954617837914598871714954565987480496619414905996562566553062596691101615532242091974431751993710041465906307122268190200139709473432482009001185795596984074098989296575089423120219710457771335711688507964421023077184535001245436342708020217362646378964584633152298716368617796651507348365339668214979851991760359622067144243469002028352923392564791682926404525782333257353600784185251259980933068431823042575673074861578709642991765753596088688859126151550649071361492966773834809743562094097576673077119055019390159975601410480945062328017502266659779189169617110214292973913280373784556103837662745356927132331387682831335987740781723659911612751453934809217128840647729584466918469661340446724493405061453591573482560231733064486957698566632156038396474486912725249584786624854958354310876454085181564603848689687532021466867862054394780284633718432060673884688873951221783894681963848870144433637229796063090821033145693883491066306094040705804862619057829983775148593313709018033533929251078313560172506704621995447870764812272961011775991206098035771548972755734058519973753145573417094059066313561060067066485706957247454280465032554522793866125922105681273755537624579038099617457181022292945052528283490608392511659054586812930720555592230518398176610241136728223333809263531121683141996033807746376537564598189643470339297373194029390985848103283657848582638176458977882729115570921797183977567340859010894490156296239645284978467069198745203556798273984368527682414178343076827284379053698469726665394017594101044997712478289643240969151722438598336578860383665632135430620297044863521869034067723304358093142445182298882971727199305921647271544336861310503472457188968664167916531394374672107165678498407364886065180485896093659146616008606264740659281327944494517025208372580902907947889068517496559044232062434488884649852646704248562074968486561340350252109622045700087416640708535704871627908325077719273702392773659933643910850696887173160884899867820187371062224197235944398462446584566636566178814706813037677947319253110952635516926210109630300193368185409912723521892731713492578671336873489602616407864667026791085737043818735528717235527339289894952872004667390485825017427417615804001215216431163279711632947561558981491797095411724993889527456915356291243539736249045028911323569136893664789114253050472234372956610341984597461028209445385304295624330371606953882909850259632088819142475057112799476544930829839951254678408802296300487777229491543394026371385647654039866044948440713928841034450046888040093243895662300472368197508493021995003134099559985769751917949936633703120530181051010515298000520036616585754962578025686846195440880011726156401139368125158003010525714591877383418761099985797672772187779511043610998530225279380849416019416967261218426919645420484595771332637243623449980977535074958333621077300728368196437467745576465840594363051688129104927462993326568597128593655469124608954920158855053391857150530622202088232066098687667695848649152225534073160095353011942751994469402832177665368115168270858204679069273722704349563664948664756060428461825314726340043430089391652346892963633046411467230080939089269079687065344012219177816336044733096168378062652416619096003337008177392110138513975587243738946223023249047206335169556377519944126694476099062832486502089604895015624781584370555012256335851273470607845910052775828927761201402757093036499748624058917569975657537900790198838254192907608234538039056945045028778452722312878422134952622500015928492262519517173866476070573439364812560185898290337698161863109267535339278541021177739215830466436057879046395094486607305431093972384861616075917587939212294038424718623010686333994199945954919365524920953109416513880438913312217046438455327895228899284827088265502950449850458411232233371216140962123089907684711658113463690852233236586188902753031824693199948011534434459124739038625612512591511990789802208290441887529685391307309752481040018163060454356266916902320149485479378361608183776824318797306157829681932506054624473277597838277140328190243108715281372856523889976575089762936397229362726448106661203162102798681066042594797983859198477347998012027352948587917343786628489766058356207033578913695034679920559415452741741971473795301542283876050517070536342726603245116775259297775607232357397552750990633804590778210101211580815202532185259054191016893989130602987636611260236492875565649184929545392495818161139875609927419519851885009174732654354568572902475849174662934828546669990452812375726895484315924060519007333764625649415396197854133585572031258883585183406161059868082012687718964692919105684350489666051936099002468176495924452705762196349229919820056210485806812398498761861521802608897245728081117808979997546408415814024785488048112089157440141443989148548528516321649836208727316483638000198000709413105322968669806118694152213236036435840088381518151575605865395077701276881158351544225623440706991937936970206971255020344906050987763248284968966316508763302676973258830079560763969647991952088266329296191750653090104977518283232338470960544817242609819829572657367735654200584855421068643620127143981523701870724827268326188340941533670845730569960591308191521133236613877855993901180563516107673702374915716145955735481518539582098107597983330416835161584829940200773691514188667064307631904429690300830642097370973341180372806278306083348985175580419968261039313620490801790893987712451677489090574944523705447881680130966807166183048213181737167979266011758672804288717817888983748695973471950547169712463764157120239645773290919348877132413926170639732248951369343675339884987697936241624842291717840741354925583683155185660924895915852648716538433215186678031695475693081457746963439741358891419774880330754016697372738103750524136733981442139439320097401919666463254898917157000491567809265458327491576522332127452280409312031707311773700266355269993388617489107338467255407997814983279000638810579479650097543321781505233159815444436339649873357034260568615371734712398587918504641205572725703275051775979908555503047319669318798207087658485844329980949315651121050807582151618800152289129829450909572865534639369517576756635385853305239858559406697135783268598745931800436236700014053502618581609457940093108292751103094817063389716017574968625983446316583710885489069374310881434066754064040958028122583898088610923581749641605835287308440423192594873360460055684679496503504385444401452042702082098111471517560823135284636836373240839002993553941332774619581638258876054403699904535546097730379382095234644452316838467590033613295005114713576485737995926801777681581873701542959674998842982073453777579658339773906966793699426360388629770393467777539724486135200915044305002715921820608561091210639416023188085343435689579070034940768946152396884027546675235040605522834422816258677212940791663625144105260766440361249464788182932393673541014224855109065526534460758001753883032274195185834693440797871927526694889574829711501126395385981822611482604895584877969844221793194674197149599940557802445004257103780782303635637093465429844207922909415504337923467777673603005996576911745502077298638391772143425710725230381364223970822668521794688392465004267687609610110308240835770506284030116102691402997616409313890644419360622133389963624511799745383241229696386413953102330218600333516405943460553423541549017607444431261948488974227589127324113466571420250867975021571272801511790376517714254547039931168283385330370563668721078251935059006169476782748676807930241874123795080491194890085146468160405288887827659072058662274592522303701730395978402386437977220249207554135728731168875851640451142189458566953560870530111491306613230989684680141013902459521933778551623143785108031270599613579058084237117042712515617462521111443298353852883873363088826560050716911665782961417966701074763234122746477868205016205388120307087820311076050326069538988387479249315513736418187841039554002233581652583272124548698723890745078781786335238556303454200784494814641610155173880498597336981376179656585448992672043336846145971684288787607977568043982278569317904781875255801038237119335596209032850789414289624887553102996598631492699433255383254219040412545102832319227367779241486210564983260815056569121594372590508530402694476842692388233339600827830636490125338207297003929891338033833155765253431887729153380424478753603169176215283992333198280378511445436244967103913866788470330875382180457786454833225173700560953142252056053881280704816449378181929242628728176080546467456883876976748413495352800292254488268160941713535240435557478181296689275602519204132277714781809686096855018429997603574087488143644292006168619484981561918155039001422353444018295463853696779459290828514000009760087273649199367114202985479165042765334007285308167117056753924150127504469915561381563434717322099888992261165122237454024689117383265606914063042440766399257006514695048227891616652266685849735370443690601017814872659621131142988583335484506988426167689495408902905455843496324093005343221601048967495765378026023697592258187928187083289849004373402490782651643902526675657815657514750563724553517786348032643936979492551748569989246636950012622761026049251139342334956501414548211827474697212225358133564518442637098694763096176027625657982980869605915923445261241861251476606777826604708012064936573242592729664172376128472395019000815204800420013239799033041003768468676313988355687931154286536212034938836906878818128163683563533626141034286973117815257119928006869892668197221378695752100348412719747959554734142570724019665175883799719000621289616437842818495736777222600332148604602661549424165011028753161489683120038223724077371531618117985401703910685978724744531831296758843665876558152046484896465109715032098083481776306555967771043126169928096072148743358173542023850471602219298050981059083288819860740920724006088525843683405518880580985902886904848486445418513888318147928869506707732627949046726027079176468593916163800656241312748445076530601251543224516746481433823230487291599758853658560626747347836452272307975318424541446456862646875081806976264702319919262797398751715350472874770862330343414300916184352630524226627768810111917377873818810503555450157280552198474284690022094537282727494339811596900611309305332693033327405312227578890487049869763077281201241518593151644272589516098848854124487910032222334330440891590705579989531991870003305249650623953064602296695146784001104113930198444434882586376897316029018569777094935582309113613308045491407704187519221939481036247648579285888057377335598531173646918058488061370776001135113446060545450867025257279627969541000510180524113485960700569787543148025272644975462192965657466473699369116983984219700851583002247404493055945411426682567684932483722834881878180125682920443139938617812133223897633878321823362716925549559208774715390095290647889276402623403337228490246098525955845102083597928799427738821045044919885398933497048660414684764719725000472186534266860027129814668824544274869754997039548812454185000235092274600786978218191266017948864227692288904335286927867851305721915502226555683244712981544897203745792495187860014567361788785528230475923085481225793677625595164886863171849010946667030947716553992369473264719675913756074169842778499553917407179239225720161448636489182438474512695037371229742773088616416841213506295142701091670429070663477334581459500019787742604397883286168824906672637460146056561307206990251879344230183394927783856586112339306500214749326359399795222395194005660066154337005469319106846101089605205884558750574801284254821693952986681503545290395024331450960177412104581266501113620922479347408995851175749431824313765353233415271487263369033080583583856814898131440299148154196354003321174592156609202975078246182111487100223544770357902509700841563561939493344984093594625812300596673350512264324978657213609051212738017558707003946747738913774810272341359052072199415247783772679580317352335111929922863466945824720158265443131248564307021778611844050211255015266793328235409618384270770707159478407423542622329751507567226707009313175947106890678441228593234510751645112994297877321035561570563929909220830999421310577785189468939483404535181280772852679087571134798887281169069879103691479277673021754142248570904776405986563378617074441628115086657703239762412018264410407148486031090161353397944807299455897389267806431020808007340870776399028253455755445673094183339516423266711344038014957218682816924509065974599234306335001184738532998308781053572197611045118718372663773200331077366563448231615153677187669831931332650839098644285091173793464040375146752717114620643215364390903170954645513252222049036475331247359341416308852002340786478049801314667153506052909504133767150228821371997610818347759277136443659827257790965871430768416767908880566057526773621072545171801732355531256651906340964453662244099444892388674927020870781861840498434144662965026820834408149503618001201317670148063613044535080540652221434605062441207763064969518375434266338247468064105521052953178031134813449824249338939089545472100506752050010737599725404820557577742146022358986462992500024198243640035929861922338780466711108875747312325722940272943146575493054845008435003863547737607272105987587970590782543591533058144712084841281656122002054014338933643966864220260585889567083746880318702018571557782960723217230398987710750764407814262339528133391511440313359256944678489700399828556065203917025851488139519871939717330372479110596668191948556063729318740317681057669935712633697627596995375019675920081908891608833402034220985726376302398413800159590022546980729609689885200807244929032165116293379218017004059872953958661864913039813136311333974164159567071713039841703231567881685829169735125567482215323787116936510413358203056845750659849216345900258140879937654427734285657849854109367820531559955117418536274351915726327423497125850462249447402392544561268601167431998722923070614092897944794008288872282898551229164100577518380696884419059355179065196892641804143571159470044084963487072706638102867736569869054058133907305613122429852759009997714360894745038088830513340061948007048490141167615594054919137882809922042631356662301100615765286878452468643719640174254866420737354237941784719471628831786515911150510451758108970777603433181738993541099327393820546081253300242238164865887548122885314863173865206359070400798323319221517893541481598812886033821275591424410704856730194348616490932297539348282207255113663185394132983293412587815329077623747537171184297417135655297856719644661511542764397009371533329331412605171486927168495520874042003665943531733342731814083780081254936612198000815522716860911348827581381719492563129263549689864750116647632358820258321685927312656261868339366417239870880509636375122033150005010332313895455392285738812978122066326349974344969061048272259155272084479466328523234832269739444967025739808295018797768490052790254896739326446240842742852955127255619898164294845580690515333275944753654131551870980289904578223303220506202582304794528204576771014004043957038171747351822756410366946939738981410239660094126362148625686763822824119147095084914913071003240819490109829514121557421448275270529036727844635769568393532976974689680057062469114011564684854943413965805779462129508678621641924256015639228099063411176604006640890763098709248823788357324588834527210070509507608719011241695519846993522070955219032806862348147557570962810995690323444433232676336230705492826603386117389353270510181048177408014209393982167743848464970257628784822064528983923360558381058399395813062631546181173706722041074874386429849984635762915970404569164297479429136153239883955337486729828970704187212527549799313452956183073111315802404043308817384252706963958179983654048321419990970987935189250573092284694106237083204531972254754539666904462507959052597793069590350746058707500895965514861495728027943968553739836252277108285282637838522033240059655554018853306170138296715250628436044488406364691044376565228106725333935456145347090598702451432776118606838370765090083252924628876888427120289397317980431662116981987954459157132751106977856866186056601188709185115533627696660282291371295259848578338351215560232149061604136314174900109286312732658445410537747311175860913532975079967753745376106604322279818928582372240204582988230679500762538265620928430238923462166082124977961611393708715054542146133507694860962789068903633893723518731495891435023387334439234401424059092027377374112496357524566649075013488092141545412682139315179377450802107122800898622578052137329091946371054040072132595857015861932458001663971872333762843226226911053850596917764094061650385291005411035453955033058908753810350706343176982202202543902757207295976418446316879083425292553965510578912185903224760986426088979350319242977315994150872231564532976985362265357919436635314785323869492216742489054303540964561092419140689894773020643586811173465004555348695799096264786741663832166117326843101666606165441021664168339938713665754458907961224103905596272401210672895044146806935711484343419290171748602784733281108613077548674249721791777404419603692034734066634913029402933874686147273039523181789933447384956200633757927888055903675520016457124513933228211467655567841240704015937772498811238107480379888204189005978561250918253875226330183288090271167697426623142842172720895554956725440902246113953955665796312742958228272214471794704036324203347112931930631622714598748482224285888324387247487670718041265846728283563619729451434532975296337915118106798381763775707306389639540837185994974832508453066600997546600189605221523994974762852839536822916278991380646122958319355822788840887203312352288876242708807526855516981478456138777094342202885350219530079334062476077785501925674938805438077009550464611717000258187836636706128000601898410929159397412856712606421013067943174465018422719999599625400231193231539179039428339924190946845373819443239168807326668081306308534856895817336076289287940510039165490183082994195952246302707204963532989013360723230776151954932461879763472964883576978667491085145803428424667773570218586722941267930724945435916804862131844233441870022177614657598803496404932296103208374081467258627401209758183603314013616383020251497164138673540607481756318482093310228268959085770748756926504667481001609806546006841352007907103591218660462237423252493901567943611170954277745824381403304597317785434307035801722029647425629938695713868898336288618938616618733147490959903717158633921155477621991076251518840557002901636542898733333949022091128766556272699287020145985394097575837869473806787403101145441029257054568660565260350026919162414055400060334451566203600559178002321156794283664374625981932319309211853779860792647013453411499936655740363643844711841098220100910534128499812900388713545540661152152645788529477087726898822308066657739645732757715946454849759473175191732717454249455366766892709683476781420408179386071845328473228918491027909806531013785501782035757538014063524952726672550923033216211152028937408239375695586979832122427695996419698739745979101920915298560273016946245716945560304823854002525379934229353733288072932353903364414217100608530294095440156093870432707152839812913983936704847689610351210478875091860081917258377579662985281258202562934269853170341937434222656882631646791264541060533258560396400966490267233959604085688665812133529740623468951313932419449892959425812615365359032882128892575408092169393297091270754392308902953802001752162818743386050510229908606482938461595720358808184872610991738838176074151674426959650191840589509762277564020603733303784843537067472497519964258713868656696692609733086785386891988970688867084071580957234506768344107316010972452249628681370430668970458685283440879226621024071521300613472552893040795295893778892905018172301732524753409051671156339053759464271835688954330091577634857546311061725622924761815783442408410643364615101633305307305830423910971233477634921483805641354804711003679114374052407795432093317112046258949264245759596200766457964126802500262265441021502518144564636776688114745264443941415989604924725404094140742879068770004398247978023694844374827435600228815456875287941555671795524364012811306227983851465737873966867318805946628217533232539720219337472219810069574934347377757315076977274469194239796501076026250758435218927297636708085461764437764780999941502036192622860861269009140495242651122275736391977740775239782421061651305070445314729504918346566146327919152494181562096761746216459142772111441179293976521775603031653085425873823483479695184164649189896732365938705885549303559274975111047428373603754716723368685644005417226809637599596779046160422755144401482746244722099180727640284305243317039280150136384838609750446545468836090228410286828838375305193837319882245165219934318809655839888204507555594157743385841295128189863286690793535879825568890352884232111450040353483448923235440604535481605213740529424778535143925197047844928324062694650711129082310010265544732548045306894968501316731262632551786287083093912708698240126545335527604296047012328540104696647668037330602724062619193903096473235361302838211496965033684934755757832380764897047969175903337134434558736753497400440842999422684257756280399961930985619825124068474222870196457603002374791456246995935107405777722379139278404082040076414196599223857926423784388799304474526281809536439648029276524461223280034994215080649557046197607145370058320161456884390898302246304444297782300791450787139935629733708760504324559089432274915181767010396146127689740838669156470946365018982474256149205105124449432226939602482581842513276817050013775644745695744396339335457855084533308986089700020123719599908558519805059401706375711511528271830954827608578549417257028636744049971704833828193544289112809462072225256262203527000132423845667140940632775079866214165040132984167675888253557558664962800275447179562285273426549740477211027045627222375295111450805019386419525348603686848058247527576319443135350771657756171584002541897459390458290113307298285538570102153219837166756379139469081614681654089355161841972248780353344876500681988732624541398588759397705018877101072721544176241207402880642367752194439709094551243262358960794133479484728334162960312258058599482931481357246875852363732286118233579221457344615746558167788283502730147417721285261813778459765360584930307450876038029307388656755474686391431758764965283708279156863105935076752779222218823762280881874028036279279891586607890227087148532592690289624880474789541789368076343277557271534986992302684875263647092746763783563490252984604976760897488576759442140023273081120506508154194816663610296389076748758268066099402867823886495533399188906396075698553682347134551748589197152239156495161737262902286357302081190567607275448277572973936786779994298019203949160842642033142101598738894862530825658681446072833059828804306380044454367590714594221582543691114152731747502076432471483500355199025571062347047151266437077897259224700360610563503679522517732291418510597092502776715408352014377212898406488220637393468176646041848724619782378154856310394948335975697295249199262297028265069941706557850148794770264983087489494603915453779002543895441129893279109222674076521360021245472324830507595850385107473398925434666136935631795367744046944556387404757341300603212539805769743640638913227488933267833820305339383163604670546615194073822461137644973783077829459170430640388322929907158794231490737177587186486360669465082989938562848992807593202352473543122770510082238039252223518808210687361976821785233210752156024439707719516458644518257012413670084902605582034342047657783765832894388992388614324174877432318424104356971603476266834405843455862332696018613125504250252214214069958859280932692491836321682103472886607746927430825906193227710666773816678187703303622431925883836684698787394277987553247184306182375408319156415630465049685012739251675817895089024274072561620649658508913488129952700959813171881696559781563817369726592520898053245333584337274670938942848229182344624976170921946592098676190252136022230506516155224366815338188863970170157817836298339856597446679654742440889656329661041709856576595814261315936784668210817757558097408517580038677290472830135316399663999649589668427616171007860159184054250772065431309106346132332495417481773599795154452697020757880368777401020866395455885552575655339632687885791909298190819085185593900967560297322643949360772844265070418431813807738120541310159070693208227935958818605501052260500784457413730408236361055026542514528690516548196255170314479994687569217494845290309739613221180498094866787898073589218467079457609208485700933224834996296534570918391755048493008711720868139038466062490581351456006654294695230928925606997236757703082545258742384418893766917901577331989238278901515915053593911579099717843662169928919515947947212923059612794749267111641570658942899126484862641014579020381001396346670914512618064111291006035251553851088000832393039786827345272611151279979950105896635249200833488618445938839151886400522597722555119870705613883410349332697198216975964502898378193672304974139750729186678557314748067443350088123975232527539678171843252153095513149330383961919326598498382041930705019826005766187894047161519263203192386281706604322541154133997324756193092111776693417980174594939104391810532389255840520180778712792138399953360339971315970654868076957255592150422675504810176070931137645391142416502602073342415159445269461584106504054626278561545210666159528540280117192632214744597709691636110250721229691496858014602859858768812713191515768940280253499552565316057589085243323736167992247771497365038417445984612671693548868000138098952482322098641491104423149579614472449212522370220664544092487109785463605895567466433459003299044380670355824950363291209966179987808174042921836150855676002786327564636262461672835885316888136021910543604316854923965518643418997227588303972082386594665765664072831566557208599352420651224485545346715078732742435234534306154598143019634636654187744553063235432645391420602077524655553485937349788755824204271695672690670325374529911640289216448510367044961693563815831105630328471053939146348171828327092626764918455316251006111659621433225611433464565952304528524887822938087197618139273711578532815128417178327558509343846040028671631373401833505258193395234691173397474168143531290184917789547109694570595827526608069624466120220903835648857668116817681190796308087245284802705795634030339385733923057038355987086827125211106692995032683394763585373999715719736836298067745882037397061841046582839905384294592355034187753573587851601268937466122751990389140666256370084420356077951891130027511476462534557107755209400088169222997898165004161952535278384442868223553360273666278664626602485557834017041130980572832420823371293982226566842116400135170266058714903288974278652658600160490038375392909058434824116306337481626382223263039283391990573261498091992776973456736728302369589770182514211048473444005118626273764157216890155559920002220867791752306093456779286965425492458412553301918953558933600079193246049588627732525824853362269645391370549088808042967946585654652577028773558303075112383183499175855937500725289172597135191322818768863352220949209866189649259173408541292099931431894372608853680854671718425202502878017366817286959665483555025227022569735681518472055037408104281477032979376711102000787043372455985322710126726666303754005072903755140558830842282613942692107403279122963848873076769882197814001672068369956165208617012669909717712835365117036599089133866288023344990131100496879927096475216229092764480261162269440065470466850115975126017263900574705667415331961386348098572498375727350888770634813353112365720130562786968988544088983904938205696791100624222261525443775290858739704889144821693996294012255317617232910325377150647514921767355967673900685459384365173777099757358468654077925285727791341905918372646526748890658208283918255943914589278588752635548324073648155772297875327856254447832507223158431489892513844519032864121858229566431654604407943572756129265603843952092615943172132147734275614818382181198667327438885899679492877262395805378221045681994442983418776375915854027852368081215877999439956266955483451395926345434230262333139963641233693979743748279878258766147683955037104746260469807878942160970492143097535800371086109292938736183914993145238421753495759988131838543777364609124458742616567154699043043021237910384343146103856110451830463014325393876566176151609598262876829603334167803780464975417566640346738028608001120631167068307926829195392088937930498644293693782242122275585101344477619519480294917652668952133015414990340795508076257394317600594315973220303815301846330400960851812760073226013974787318700690734523871263574666733929042515526753201547774961700019336882030242824162611676193288649729267839568759897882276512689450776514220931043809764679072482813043916195277229024014215324317582969437869700473117360018073398218898978940387508981009339325584904556006432172880513313931822469884955036599704169137657711384721523700410385058175651566709720076483424564271997928634190269360526952423048846153293115806298969861988208724243872432144439833172145582791983816802421995396985178714896435549346523342145938451249795368542542437613146897564400829297310956420509842379243598058677419937908104541491116250843507610750583454158141096918396303079125327141803250853717224635839717916738144038659733300950918684096134778189655953342493027264967970725382115812116274180473049106252765537431053177511383040398972350222877320057081448745494194745781567711063873172139034703173956208705367313434680270158591740343764548970737896937484802984700137608066358731168342654884283220901194100611123719866172017586693621482934816900686750116582573503250867614481473816314463740822545158428139783967584981464397251069211895501038338189907199677872641854306336742349484288807038563713627372198850921971458377802360187597822429053920508201238360025487799031633715289750225960561339282682735322481454154983816934692928732517970341435278759715255144526366450194979022218691591576182679421123357174230794089972442473873609999419116839978219172038327023135842244137251209980819736606824299614893472493456670193305073394789864409615194894399203796842168741376670784626099987616632337035651188034838327614242100379695206999347547686522311834055481880948869118078653026032200222741471798122094752084416738284506336492794693541287627978398896691276560597837464712682021274177990336619737285160534752055721389337518688348286360493727057844545891108938555022569788081245987494545575257669634697988395410678705166637243100462535852324765482044339841960777883356009382547460265101472805976443516382930015602198092122856365293928463680343576168796591782178270412789440841181946860464143628108488298475727972963259652825017188788222894312837513149473936073123858312165225562669535298658412510787056092588453650684080337631390581808790651284219834806450309111103521661867204032466503597008049797988571738556290781517952441459294638983421425210542813420210301091865579393711322964692212439050482261140475378557182389615279914820536241153811175858828692160388906493359214805000237490623998447427922368053508241185779319259034289643603804222155079326793227945540208613119961971555420667957280647735620046491682009080216624657030524485457847296925652125955337219202711704068685992354953342321524588998065160985727614141766950625806504810775179342139362157820334806208280253897003823232103179991365912449218337749702582847142403718466018537507139438312144637630109921932242553722255775938510625042147209516367697784129255992529328636929602559144865074850185191785570012454137957492750951536227252571414868241671535988230174571478873436202750613143482578823199201445622907223798067534590941386642425417001770719815498416642120683605375626148523297449062708194997755879942481808730134547973435315343133014514860589516654863602684767942854466974293522463852056950777834269692994438628599122502954763331009173841174675935284397505468687597552973665407590335144265072259954616412042686713015080719784670865689164772288477395871139072477625554166354208913383226913799422412490873822253980568416138341783777851305017171616328139196053865859594970095999608305463090756234618251847221439969302812098862570053051424779538669743408995100345086563439077677447695058683904367156753209448547844380620477548693118313329691013901041799654418003134505768451759173566627262789446338854583146443979548450488573370186851251573701155807268135453831944660788336444358601319124084306924255774192328802391569804152364962455549893981505181536073002432745794853576836558288697124002557280062157267153893686871733292612806537166586007397057922174124976957351581441501321427020908406690798701953429517360030305482730522361703863846624080288975965693971106641345021557913469540713350376824326887932203140037062857208263903510930569643616963086816142713939105270197679559884462708802534554123610578910005611068872299094051433493640806541136330600781409215495601223788302316406899309174497962740705933260400747620804094003454438129792277396679407444293265961052777087073946171111709288855252270159869992118790293863378896528958020328936077503846481635487848376633534424169308212786088395500535231796644426617776751161843478531490226876211449997224642511437917957062835914375108148773118675790092238477974121408012003899012990014213067632418024354503916604208994218884493907619708314678994549653968144313677616331862035807595113111301483420008898013598788355884698170412726670169867631799279570172378687535430473632034450057682597182078714147254095388200015677561848323842490710302915070635847233031018237982177087845050892019649160565269019094722520765597503071447871993312537346264086738260499909000041935223217727348766243745593786127773106841914777071672305588685074657170559389485052440272444256952676483306247615058481228908631284129538861914101992388902234425049416621669596901504572731540752706276299260572980836658898406549855044570906097249581411058585432074768741705872564972210900397807611338927374928185608735259343083741080006608871976286532091233801214016721621134992341488111644653279439966395327832781994790022393834329915689791557167847381802747801510620069419977203740638288981606375746461335164200645241510388497760411133971398983631378616052532009073584460788175049515614731169134396883348732020270655198822205474809240685087648600581309573456819432248742672566304273026970868494959697549700092489625135358229869932088267452045918747699809319668212207532015949343028536287068074685022556199260635094980877240018449951269009324953211179435682070366076989349146000296609191088852861534568733678279341415605567738383790227133973331154001804480766084125657434004914834292757513344104725232739053737535421006400679563893648829384940142671990624304561735872513755485102540273957656593213421196783180296194136561888746511456156761566353542162706629390362957649617561449757602310739636231160845721897468654897348341210215180994233713699388279123401023039376693395978651828758784252788817728702849240348231182167564598637543762723461032516360533990942990708983094920611911196736811470519220000598640264846184732407978503405915738524513370939310630381448623199476638040519530148057142992278466763405074322305897966609503544740797723552690705638996874050586877493874583112744197035469669121141203593782620834354803217041942759471110592668508552369597820745354281912102017292097769157905601895081053237191090560653931147315677367512755355160160190780568571635599784816662958769843813849443974828718260809379593509021262514145444578698597421543444409069301151885180153207913806893861340027661416750050271340100625784449930014343177922355503592221670011309012410625075966577486616131949107385005336928714092820008050707003181003089897262324138623934200969349915645690690591897139527375419864143161368268329740363414612698240500172387013877321365617593129830308172322269623394185324947333683337958862907660559381219582114705718196950383350372826602769058136192868594683600065934841580668627560377610435879689870169975456026073938197776662341225066944336202124805886012843844364941224425123542278645424855335031182048177268634843277531412111641710518179818867575533697619095141118211481720779116047100509101407528559539285361917077950607693228393968745290840066203194374480561777803338435933303001978105330109946117874767904912523666254486524354809887943368193740692480202752224639678696133382850528643531557784770518431475873181408431914916439726937115004490378627069973350418990001280393628388961262525017580226911041214696030504141287270948210189098967241041550623664644647580764092673580830915802887383576852553216236479687859418608936200579637715095043633357856369963817888159463700684545930932033142791662630751241844552844303041083270355404581789753248087514951818958984658737185756908306109909402268902280969765378373168665338750077951965285974331629018611985135760805535864357438364865728307263901493466117108649173651420285165266901859170603691703732504597281015139377298028794277337795045853052886364215929058062242051241298276648948539341661479570994582716302898822608971162899852537721993382508343523768238405934582864389636685584946273570847141545800648490787503093050288136468730340666009464552783774650931968300867160670748495577888594978126151270446913680315716878550980330596709123801233791508293803933986429490906363067743999434439241954128161053988271489437129914085367371140114089131149076604929233980859295516934430947590444832824964987266835203390354370587581205427002757144890315911938036504845174014764965879781519806577889579154904056766049945653592633800410601089262379514116909882574232414739245028392328223786373150605144832943108678004037399877045109400850559251815712028184200871485832214534193492352988219306237626139001833470652708736806196288149278948581464049212866255996103081516662496127868809131963821039072376103357570408730335769964276765643271656415935789852850623264323797047673425492639364674094925190829877409809529310504598776136118634176958041168843011923840835653599935422807004278686233885712507855084043595165186196097083460109184680743870842350215489435172297163310782214775527141952729120257832663890963746185123903162248470993739978928230152714868792275724171567795171242834711015358621983853006141055461265397876504013754074022556754210382108273299154014939536024600391123208275161805081920678402608638090421301220463436344254258949095289845833202315640473212995953700775925326760854590483887369451641525187435192883627502148502678966663992711410966608455294593899160766888518177242903210811956753887774335833823886810707738406315963979325995023635906795911950288673385584893528244392306625512160094845503301369758683432617475370755665136480855629182331830127294400157674131937938938017317450200580847403252674213527630740008661436822062002830045247124150532010587467369900141107654003166223063536566046383896323723185426780443304752729831245542013263424996428392109860851970398041896962018568555086972221227534402017354005851136538378696749243052098338179287206034169477114483957482773776460717615968205993109640031912199444288899112329340762937332813806718813213850877335512732934986655906496892505881080880626449795992634775254277738263069357957809169633904516688880059133805490504503813452245684341612470973305383842942095621083681466745332447889071533296893644497252454994793943014504729680247949411158945301096543628265462488289001655377445904716375681596752723155306251737335049274484232974717097400959219960523029115207966749012368474914087047686949816402572477649077567286252631216469978059239570482555112618687523626840227221626936130025370022225347616261225776012901193093414540898241648035265927995099833098818960664469873007468239357015410128251239971325704938506060994602919180647914744350765122620624200514529537787957700490946795402891409894217690503949599860546122709464507710501959436563155101642233976354429315937562702874132834904891567708698577666887391193036263884111486109292157380139325585241839937627069514148644451529217027607419683851107323380941106464079590119351836150340953548145032222167254196083079657169502305900260311308294008733995973213734562407940869341776788909038724831975776107198368802260838973651502247024708859642206965205396098815519356796550142236910368563853684238456438802877597877331995485183680149151858565503639641616910850009235513651290690611258975444600873937095723585008629961880456894914057889096398923660730422182745261284605147094773851077550523484955588591934610645748819786498912161390023843598580519158851033887653007865894562653073246919253055278433978288790934600481709685405268818405600293994555717841077762469133809388732959999743540127556832436296402653072022970568105643253280341309196109475695945543470619445906450894354500349171395872113019117884467179236884617902673113029761553525387485706684327460522228941038095752621599470918147771691141594920226192609561299583112867677048032528569045331141863894785820293251442928874419265558630986372672193032828916593562710582192438014635545075807581404086576203314905110906427769991002614869693772550352200724545887412434644315778899133417007872472641583171828011371735974885042377415492545645314765253886014465609467441415572739590768882950474409839853391394590742476173738429323307232372528533752955924749426290316037038495909287261368795871882210565983638826038363165924265909608060220374670921016460500146265106193518179710715834385485279786151991150529669922228701531304602276873358514407681363847602949758567893849051792930666813011297717033921787550390143489638710067867808639220040149455244061235913348353864474478457026519337265849509348620200362408125729793132092826500915596982224634163114545905340336116826553604287508505414981404047485302800729155875492698080666055237662928991394686732873539135069566479281904815940410160017134953906725588225410237693994846249406579665570817858653834042496573999771452969436307469817133091998314739966370067495170301263597574305512646150365046182711318000614411836332559984265347411296547169024319887456511715187046559748379207201146979108624374549510007772338961507070579661036895233203574983081194945528056365701247294382050164753149348230562817730118818352197725741716112703216148721000081932714494779881866868438564495567329876980765818754934588797794278290851796509057579719785222907407540549024529425706246688881147984584670214956832937696108595558564905999232862987167058762880232992632893370918139204811525535387406942204551399078326627653079656840596625189648195917249094764993010521033618276913012593209504145980557257315367538095322282166055837936603792263414588066508361634338668881679858136166359785366723759400074698436902710377307517581699717624595227281243158444344018622863526636532349048442565259334178228296042201303584774275151605512683593309230858245378204162102995748142579526372161293649790924585870758108226210906740786602205661417178354759211163542632447906472926629018689076192439058147365965658011943450372943178493438739386573270837558198525835784345798884809793641400043424784232699155042508034331903428804137741065299316884780371934600926250873016589114066593743571684242017443557797989663570561632865912766331645971766620216878609496032810454496307139700633852836085232691687057801083120304903363538926936865325674396943600855141803652079444694684506743090259860519812209462889330394717679201399000244037044888582534388378179854698604123684708969114282913680197125628905375898739487739662229596838971584200017066118014629801100839164240544929474437523763921107648223717402961554173955816376709856309227225380386262602155743192008051221082168078557030142904567262259845006799892519867995519074092873404324865196132394144005750192181798729014122199817124559272703697549820893469612384527515412991511971918573790770703918643400632094768533917674879269583146863184987730736673112130556299814679825646250803182389039308329502200216214505089613811543785236753680298622192332461658468972931596276435106326742951380582342405460889073183603114006705979538814848853946145513280149519511043723490006747911318349293407136627278136203473364083395202474242782947855632278834533429173891329163033394866624026451415994922544336291074642495308045084914626777519298181550612569994744909661955768255459484660951780798881808514087485100629576858270993094476009373911414662213405198434819932993562750142973079406033343746485773582806925367672566003401461335118073102559376975963125125564413776936178309267932361698685430563696405220530107834984962515539915769110419944985184458222272669306584260463221673618709545304180219911105906741020836900970531330970705541894502769083032438179571642445580621224177681553647826801770895357345162730927713056442423759200397074287926656267936766706868035546426811805284989262854534330258792433203158495172500810392043236034961183565694174117986493693254311518747104431532758357128121975427898707750523138162650588230845547842574886527984909011682654194665365119348244805836535528543962570954764194968875380968141622766672295772383057038207013071339920443555981706283019297802671261644027174020247501306119851305154469718996521351868821413273436981480498640867655845958111574131291779625435301089990092431176013337091859945419773139532286667078805395710301491866886907875829516837623975774227716268303742234419215576740255392435414194773151519936546729021107655451795438050344651120093504575691796762517015769455089479044511688519972906705729216067356191717371861226903777306805295747131799637313068197043708050094262958727253757238790515527044046463784521531705339442522085149890922031543492406641623558220445979294679438473393234055949371172520635593403969010369900598080644039961245071201659649303493671243932368407171015498126945433866023459783015851965299505012093845482042736196706780529827478576034589853295422742964839382516696800679253811714100245785553109446943494013998190584315487357719871917953920172504286401129562771948432641752225869719531764984283145488714030685107575504666019934404766459207515826670908735038554017925518262952979494668553094278815752817685228046086799873967794477495778188662722339394800071601452557632380816035056180927993783153629632983210407834192768532811768784350127012339968939756841938787560103220074104265319591205559315367619403967799469371534244305563857506720287608083074160231296983662373074433386528671166356494529586738302254768627910886005662790987099661927179000214121566436290418810455913269955085449306638265911965586363732624098848361530161443326018579240423525052419132036477078477664834543028321936154100022756941614810889023460980701740090284404317963937362378194732607070820803471979601906555241704935109176660537232800421020291441626569750033026934790261686758608132615597407626362154728989950534406290685589649774604478166492890452214824480050719681005112199458393840915002450812590763433309851749502469175264335117598364695169755968367330943960105776715219688907419526378727527486090597487245612603208940104788628838754286450736342857661407772627543282677385338637999507095581356244340094538204372045210988046605055494263122769701082250324406529578352913553985979432800830155351759834005027638307867970169089324512231869348546890616154325169526487624807188159901672130426906805346690768243936176234425155261898424633545914041009071982968161076948290594512429555980755355314488261401482415314591426741037196162683091407672421719635074518556892333342117149667692297599410876815201963452093800014663699950164580152307225285068516768063961924569521414120848567110981806539569732129083795737020010232139395792173714780349008738893357859019131143215973017453628685842318961862524427057795600133611414643322650001282759492864334568118172827277920633783610858194114469086427316443368121160544273313369414330584896775166726877752739263533309403990430639143125026767404934972725825652321588223731618753224874271552791269026983833737882627520694198109738746966269532509662080491730891619613552185286628346686951604220243297064043672091534569619325504537168523788892666651581556673176636407502137628589111118130797635906838567649624371524560853596379918913175907116123683469201151243987280865947312645799159400273389630360910164567638114809453130384991650343547552189680133719537007405598693484012507099916863742727458200013699280743938598540417970235374396024548440886793257681973302857509803374238355606878919009437631121828392426995024624792139373087422932109046321658876169234905908803731845046425290621535772027525776953810395826784952132721785585632285879005006473097261301897035716421439616664612878441966348817726214151832852649709717289652908169849974293297408460334422901771008507474055089611214516155761477564181873595248703972774455003880221349986891508884060202614572193741957664220923640944528899238245188863959729724904357960716052892334407218501374400590123900112857919885762424200274154588394027643214850200171068555226323321829742808727431619622999746683423816792791023122021009131846211206389306344172109580477869173244850851490248465566482560543479584513934107937678593282977186587422831259540680453244407687547725964700644000323761123229742997350498630956236634716960575156282527109651844561810200893154880640573165929992197191243850083384585606206217655064196821561486289964217209853667877623609767254009794814746674904200881715945744190325284880655440400462057732586845643326103171164872869000413502340506769412649626576490338415816558445690506175997057140355105753681765765388853230014184320980975310281103204279969118359839210650013926823161244142384539163069695885994288369264127036593770043585252659113693551384604516735909556670466455489157892329439583685534343819119758721773179843822946491056409606279404534212297878798550847502671381821208518996662256701815472826242535712948682862562345241004203923249124156076918319921701223228894586160021434267984356251379209936384398850120869930852245035974219362479805812524213493758635381062728484983595383832221396731927010511261493803964428567904099824203600854378979928289536504815123608478881206805219635885560589645114648324980312592028847119552519934278459927676190212557785543549210209851641993904065292464339508698329592325940208352557572167499986514126357624270390965417258220016834235843451960169524603228867127423520219535175831753805763580021620349841343851472474227478739671207754282250794357389997588873446180085989396669110227819159405154383193319121680871610427488416638907356950217574363372959123493525805130737932184476816569329738611320842656695563046298204275643949305437465024034028260846823116455752605770446522470267369757055040556161231359575222909210606061377929620628737908594237343262369174394595843219423209747920139035869927780176649441709727677686046474915689669752813130619032655074772308919737747252293193031410939464522725120583863185645474258625113541879997111706126206380164971980646815926197257771191308360647847197456222203363516670251790758041406369125062197383413846019563690362736863206104950943830504870766478955717502654637348008547366367300568045375344723199172485707337200915174541514220073994628194156385710638035679516818855866794641309212681343432992712803430617804320042727434548810145754302874649342287593230571903559438680515196226753544588063704387050110454558872135817850029135370580345050193378220950818001500168880121043796279614011855290426288896256560288441557272043915194588643739916133209214887903902182124557715984097191146932512798001384859295172062785765631365649326763627674527912356876780330307289206708106139829900558877925391053931165731895656009512392325892658407244513105306007132357337314013730045127522277115966328083110863823348836392594166313400363462170814605621814792549501516012165152497678297921159767239349436901640394043201817127469615147431772867990352409108748820888912652370160184621337895949988820277546690285798005801231408217989870170525556567955869052201043810019820563306702214395730089724685067026879882370112684972278803252288453131280362945374637288328994731166612148955338599590516046129242078162282378637746344911656261948851700858588693223367016273699784833077194333624076345539668725001367885716105508968351226388135929770423806011549748205691590367505472642664396385687759209444937606209841486574133282614697189836235821113720510954088532954099932221562691308591460160312012292947069018911184563483759824689861530214743913126165589946981038218535359402195742772004753953133452009005124331477615545973271248487111600686719078757874519207063691335304584976275710757364248375193135133019995869880692391462096446964621604167284397002789090277738742399944870951409850422746362045431385846975795498032084405502221397744968169106407575247352009157357477195751173353229158967220507981271375748980488103671819346747299444946289755303610389936484067996235807325632839013359899404378212435033903494259783967614481278255219949192491934142547930983844832603732724800613455481212009792150921072385295685808210522331881125423514755682856414000262544156027080379844176482412736513504275194328777121621926539164576364359278278937935664985385240086900325053685446592414159781877226490039661001651497178848361005989506265956351593951932776807615582691217205683155095271599513222639151309901341112791828869594077250972055870748672929205688472516367001179573586124494928643758278185968641120061357579282875227113510118203733097521303426486660617043128633709214170115545833438802091629115334376027748341476173498370072850991621955594676921250654942580508025863620645719123778525234713825383330991376591519715722061715181313627948829275598247903916105172953831845023121161550243342124367031141502925410578750790895032824180013372047494479007752258626157646372099488107181350304338337447845098584116176575671440581505578481088378885964901031280083671473521565281068403561722175300508413814265191067584680619220726023944968601339277547311875600810904018749942416596906726295568322950905272281442306763916908350629700485335934171359644784416455895453135915489163675509034395756140040240630624366660970349136320085715053656232315857425309796810609486655808930166557389651957280021434864033753440483410907387949899045066687349098368116730601031927036560629605896161446852912257806312662567030749569662931862603125092674391770830475536746018156130751002006930113836582757599563725572746817136248254451992098630216817090344204752055764722056368299835436732236589971039844739123869345198761640264359438716914615975906584878204110737242224473297719702593920646342241104022202289046452118755841567980836035630050649996907163283724860369564069817338512680696478862234825607484446610185251434153702566822482656455736720755829021420900870162448101382878132172494108274996643186853327204708709518122022779543022366304759775020407731810035939322709236070356977751334923434827698132783323566328398762199420419308576302438056870533973920861958626457794063021073280553455241345366558612062794826728487154652638209016644267853347765238540459524208649938468871390019398292929404056989729550709226364937133889073418784458841879142815858237598445821613727955130095109516923903971075439416635727913543107910640824703001231052757349169256096147489194425246499259982053016848941152820708094170229399475520410491652544096716497889756142346539336981272409315984115738773361084192664108454716585895419612125124920974687518947124748688973426372592462882236483714742289773291856532041303196110789065891032269554603477532405615871733486847035592233753122711623527810354445242291290294391314227321013870050103436988241296899094843426914435527936751219085382536089970302485526925285205974471085833811884694895945871521442575036109801968901063354914638931298580091879549283873222173921687694815643674577374405411073608417339675352285223966932257811294576316730386548654964310751303104810458462344070410769189529131333796833466168860821466699686441531555271761504352946720194157088789511628994229601657110976261560174873561393298314828661376616600992040593138403414439924718534836128247356625470976769968960959704138576538201300177692067352043415537069967789051980126754742752282815983124193209461027686840379274259824436478222531084703963955159286487368631573501531421590225422654801922859472812846234120157980035937663852635396570198870535751780841697798792598417456354730893397417996343493042098460202515845846073435424044315992620526452659236445895426644160904616105532336091551533348830052891279923726355716360859414249210767942082229794622778894340613185754396736476028452175624595542913826702112679836295752004221624919428834893015783859803608541069054749402983966551936098608640045996567096143591712559957592633845024495784968403856126273011880312506430611044264795834629201884963095986241230530861071101648913338614014195053956448199668968013253655670115117101863120800227743959039068774071510448988566326950296846715128215814927384868800690940443556206141529960271912691697411445288944593530430937144589588047955491373593164064091255142950115352957607926873226789512708537792209250371662012851926753779052470535426453174195599805174881116708470459294071465715102112427174726488829325523308988492507969359404945592054250586068210573267723103117813711266724559207747198879145259753935663789473784994871155151511196113888621932522163940313900738798496666917226199645454995725322736891492038079528377794866032521215348377128216557209282879370280910467254545226009965514262889817954685945448865789444199051661863478705381146448736517796854361049121929591522174421844443596062241651616930041126365424112523351255728940588180283182393070063128908895773996100428334989073750650875461012694006877052161159536622904120126622628659788445978075416375641247389412183172328073111362289010771527685591220761735315194133740522944023165813843307574111805819497826522720670785002619751365214528793165802209736747234912852300242345003764870772310296443537563027874653301323046671735655832402587854481850674023066756857189855467337759880297180656773849977826855092319166747654812496726275067133752456170924434182367419974285854494247499906186535865870618271037132917461943699346208737144703470751566841931973410070908474589342269012612548751563738918960802532117097213816724426846616892550091598780280203869974860960499024884793248310110885378181984805956361793748481791384480103873378126014214713131605477876092743605166021876495118125611857771274782519609818225561428422816490589267428997004573273437966587490837045261569998663400154659259046367168095739586211311511203138197384245300504160134041697845516840640051678638081105760302350261207105108631769386282600740329138161526397536938463269399133867624984004551701202281517648812368560359268762752409876954432216685057228666369336716014841822864708791448307822663879484627514333916530594121581784644095970419701322629380956689128376939781768491644185533222995725987585058485073336852827907361763554771318376069742992718779679376493929239926095095896427143390252613994103869886947868748768066331045820690716545082366642376769591753846609634897898109398025305605819942634041915379092289041995987538443426271851560874182365223485459435256337294134640786495923280139048899529773514089723060308110823071562041972556378944951479302259786240614821116521104990722591882881369970675031417945038501756597522330535652916944331833769475140305376699897196620847509500372892959879494552482127358848006801595131841754992121218140341505307159758356708339789862245690104597416770262900146942497927528566169727419794071054182334796158843195790705514186616969108120892935344966192539576123448406716045040885924241601241319449916955896833945154907052691078835307305513047231478274128430596382763111115350844171441862782703694732461285777105132549555921372210012120433652541397593464613550640589524621647599070151333419291753142832824717603488281321286257198560623010410891223866042159791206111771575723776635632746408409474170833554808619078983051401435430565945423066397068476249626497979904978385438766129167166488016957249779591684062679860247272131993388448184346109753753766128968744843299908463523216494245816842288445361234951056724353465983913763735950332985001628750149143720709751899240607041882025140602578050619645631624533152824901627927287904849705411756564570172712734557371844222149726406386462018322953572854423647861015331396755650762829580098876832505525767844658234981457527914133002113453978594112140922657804096341976283533890846055479578046132428624909672589819762115598569740879245675403495223262302602475013006250655456535158887425877294089632493516278633694139170893592300174046778944819473623967536370813943435580401177025941032333546979698686598820963009902133936944057035555415194569913303055816268989446439321411851314372244683564838511344473120038413557403466507392482036824341748122139290197204739164582261733037397647152282165686632710036597274552074625729752233984262567438971130385126769113692310167693680593846495150449634297371562358788309585522306844796820836124576769286359251480085946125097900877668172930677458424905678251687050699111182201409430643900239446235106867166601336872003113573272520613644741772158135349975241800568217931009077335897085001593592800306486022699671673712553730274722425832098256211534344843003107781898678127969147072136199284228725363725375203613726048058119874269830112641777341188541013638789354742366887210815004711992032449521159217788164181607825939318437442894472862932246358959758243337706957250098431414093018665024426906995233782869132920554261167953757862267277539941220722172284084559329061101819775322042445332136496261619719979320557016516665062272835392452960512151448561287539135497873311087267500124551510428577262223324341070016813864292791364995384124824124092078270363693221695575061667112417575085310596934229954154695482934790325239973807253526999278855248172332537369213719764860466178161242689608493196605778034695989795546447696325850480829678767510020851247506464878922532053799924155144346235530163368573868682852319322835399476010653441589749572839334410002399384289314970245392226914203150745274622544869338553040647454801397060766030919145223750772103126002126048994324613813554571891894343013417308041350935114597781750469508410617754189103908543615740549781717981729851399293933548197674782652248232534513784860062906641723440439546775334698014319268678144968425517245574819576557138539274012005142310897631373888779735596270103458845857221783006373923811795381326133070480627969704117432626574929132960701065037090131038268037690024302372179759507388289820255029138485724894575284017242060391025389595060864620698404821308564114563778734721886613138528667858603355210776200961366873740266924590698038333421635703154516096266211353612066757919927879143730488592266215699499177755763594956321727559658863256411554090873125135382479493149183663669978164359913442960345968603229287535011674771518778131279819381571520920656589565038047096270240108707423695832963631882931007109989329400601598987114032112390156049716774880177624326786139971375758178934916154596181098942682058797542658917955912431902871359288819938539693142726844066425749676141721079973941633505973163094579332174010240598823307138191088161618391788455028261239692013552236388147382752206075168778354546064391518575189311327407008382369186767980186701214365231343853116779561478501811818427642474910336749315861584225368269661591556388800658788028708279609769073888476279652950403910893132207737342914446098953860276059264058896550893397230970580427715025317342026091427570874970392749275928484678377572523456006813843971016804359584556904759212942715623865368521096266127391140837060360232645181092339849975588963846420792962379143912218614385207294287545670654169519132015625507298430266412244338015154393997756350202144812686284202588071614348167249735493888905211359144538639325963509925690091803279273897852315632949760518183747143298747953645565503139061778858015298897531511030665474992043701484832327835494062693910784016546856184854689809762316350946145977521679481247112473651114828021018629218455391430930421984855233493856724371828417188395866190049317542726593517613378845165273625749878199177192290690013801960182316346583573405162341529808873618882667852634759761715053368696795763659332590596687352706119855482576073686400384633408312896342794728656678508096627882235591133186959837430057144609889183723968755538045746143837934822397566032568425666849651539732291924010018003438177913297250954128146570973432075180384479955693625902994491581187295183683408646060601523016752490568702636737678985870794424569046324315931861967225780248593382224071808658187631523143979941754398355832257484829500591833175841951586418619304017516569967925776247144302829027599296342425938097045052351868840102895924827173233560212229209846974070430633452627543832090340309864734754017016482550486077531273565595920460946478016978809174175235690188643745869563537790633683792932955581071241951444557582510514123012314378794536526864627350428721982322561358275653672238259139445629151696836728311603685921745487298823928446013310938910808054204970992304141687181306902581873514598228231641016517145163383689094899790667126290715655004307913160686825455592691219930362735590177879907462816420466435203949882122592409493361789432568540617685518837551858374353356124119202173850099805419750002694735980107134216151840630857301472562430754582543164411154533758484932238408640202563946116725483823232838934967601570875573093902905975315187402286258169840294199970050482522675944589009738326731157794666207467551654175712122077442750282410352742498549868086642700816515749397713133319185834440082699822919676384849808256563107015371062500600061065449457828163425316824651419127774512168998338432375314553891770559588903226225369115406213780271657286155837067670565012688281687691017144639139396173279200823910693134523334136583683626136751950907579763578816807424181834961846765254916002752672553569805031718143317321066768061563803501803590623724048244986766131890076053620743648265801168811172623957856213409367725176964495879625388939668721759733918722259396780410124550102883616915966609852250320918762560648135495730112280287832482101155561886529294771389364679051854370901059871944403345400832617214089953037070545360039717033648725182982253523177528108802985769561673530656933941581895585292080727619637858607716596615436234313065122207090883854400074650112299291288467475309413525622556268089364363652866878922895311182151416178059023717428478661443137841010353948235984793191908532551525924319079743248143616178741638426615085604090805010504625675826517482556545464806875495348497257356199836252600740474918964947976977526079059855938413372336665062624484688501528340876752710036847902889334915337349045476897730665931487100043915384456655328207394792848025775795304677838859988173910567229883247682341026546493376795623248879125212283454576858184305244139246253413246582160913714071036088031835822702781461328194972366129455172092867039814837483724574814906382573333062011673593332777407825348103270516879162436205950834875207267118687296223285225083039877892459282180800145229201401462482459475605692402280975593513890279921078399690243593232485883233114912605486983611795106797850994943507650722857220240100233438286271462087293719180622336351050760156279948178465663435929768405525550808416221131186270187607520116176931809529671394842562914509288220376070307527826778350540702704178918828384506606974671337456148012288831683050842420791010784893990382439655116965814889269206061050977890880906574449498766349945030131552149078231671831651229918907608654211006131307537336237591835499482158770477261184840789979055502579101716435659552033398369254853373889591481862816116094374198217269405680799171597193279232581637761480840541186855236708740411799279744790011116008455432083128347598804576348008129172795291113352981417093233748258059712188900296329102864927892738887549904389980537332296553861667934065690738706561222026435643790368915460330972793750837843665029194423605708119729589455163687546788572057110266792276505366692407398792375071638758015654947018317606619602537367185714447262695427755760810814340194420093795968782272863488499296490976422565791917709489971065930563079742570100637193333120749994340481437289715417451065403195758962524515170399097620023572108567053002369274334600054181254822986951677697282591246015255876194540527424369666906183635910930961435672644007848730380455152783100588705293522522718617954240384164879184651764601532966752258811960150015813417651063049464334948711604224806523485494340929558757841680271930875343036259187972083870865903868609576337476385063506795688996448109466779214133641171643645619424052042730347556724932614804861102326380384921572573123533709077183425274406064918046220171744138911871622092151574175184539229201376428071972811988432899371046543415793908740981281477834587939480062349069311525111067021792447675025648590511126232517288412081570901551855249415359385321150957782546356239364984987372580820277595378080068625928866210839513044484268507550339675660285238130020522325472781709481738219937196093046481079073433220959029179830323395003128982775758835196535410510052679802486823654704390967348133997134309926498162635534631505649818594575932911839172067344149228026409156606722867477503136790756196411857364237676909702511397055843718709313414374560965511549181274628925200363447431516114676480098821646040671306835678943872029421040911010453798728201782502446372738477931173707241152587097127721637781893725959004722766951274956644703838722689945285139039285464232101427213919502189625944191605679541724541596025933511516744436939647373257806293857771140762027003688530659006503643052391397057801992171882855887936633571579915893656654213045086675847112789917843048961529614889822054868625572005720339704401478259246155499358021369189080301141000366218701615362172055396583795827434009960597452148015705385149592932205311715324084871933153685226118738124679731854359945499542301806271134610846628108242163681543293282097053921458872230600363198327562673082924100487775774365598285390031624778373065769467337512331910558802263010404554613600376099547518290562641142472342519160751039256606380717312358808460442069434689392255950653933167649349498237127937218812135498780296827976908943125613708013724159000127752680916043431462180886869536959487263019293962103271915307531973789853729656632042049455617998960716871931441957458076011165208454236053118929643487962042977681718262556119576976489589451502588501972994521781432204246704943248895733308818015740996697294888868264762466158602861931969571576257576598859560226665094616334054095826403845331738721831812316292359377561140944960592425383921540658139099857563197072336380997906942520619428652705796347030944497544108547723686484853709130920912285279272780231937230201179522290257924037516660609880049103319171091914533576734901953860100987069262240461019971511531787216914192783198616728734329568884291024974939014346601892567586042506779927266011926292784698208039861940159180413812129957372071469062546206845059513732360663624010155480741655072753563861181907694740896499590947280602902844270898949218142550571080321660371282137440747593432619360793814466626821105746061359038652491335324451205020214165591440382772462816972871705393978350740015330230198950868307877368714551092717777233796066203654265357753671981371996408570248242531672834521865372838979955486077633493891058364864218809789196633225384082589202094613038452688730325879847052234472967026217077834982118489167725699541227131055204082993008799184667408016216960230927423216431666861969457290195303020476843226277662349119228568957821018805423681177336099150120068521951503455474337825846299359100084693649305057076956930984607405783337439555984992577501419881423677452426527358874814693539501156533345691640890591429111891772649953655297402001797372030567849885645984485449055998511802886256878204488665226739040009548190862970147599592480725107095137938657274737409023726297715866647648898237285874072638671403803372356070762704399205864001690169976121538818062193093787336405726620287354570193793029034975949711082380886172214309161275056520880637013316817555601602181794450028890136728890412238345427559055139165363866437346893631473437099390213503566372783967981280508990683499552455378486298743011881260619544935634430390864608026296417478786118580143594847595066154157106156705119756135905154343344908189931356700187808614268270643896145684624480386207878370452982632958205214876223371610714629091401523716151065066528895751713220239846536418331738185410945794447871078871729174520452353284233685983007363505374082326243105866751785052660193021612054575912768394212559924181434548105160899374298785433502376713458366294907769436754383539567906178388894681581052285438978249957563545728107194784788991890775571035116969683725932118412171426274435165036531977206901748564240268900129979368951963425022762282315722281561428184574900979628516874799558568321275456991066354984665280427376444490882069736211455924687822193545717592087792319004909939262108887239058531051784372845903274351761869362200077600231972410623821512701214536725402431988074763248306426164815923363222166970636229742078361734896217985904377504707559154547571051164808277417219631610766961214032287881234141295324631467083109993902286447925166600446998478147775563289851825854190268028345658169551284029810853421205717853049630025108341773283116512116274628269560022942572180116862850102274731194002997774642951533272432294966694337466637381763643445646153839869243687713333726345730444597652076495194763963874068105054465400303792832169636203118698432264531738771060983592492195011928184754057795536063079828088115514176629487204967674909733850458913994552030835566501963194810838306752457937392175378993813213323369411341549668167843525825367666668688931954050497957949512497563923003094086568650554254133531773663574968874894987909732333034181204422370309549254392586066954371529595424117292681915983086971105335961139154967536461835206265612008337570561063743413686668309120051470070637347687483507356367215980844988091507833911484010230264409960834355383114982704252425629052905932167834956258657654298200973665199617794585224684961739325915858941157218238011131620514255217515693614848671737312125213504152768572923893054086796933890164746008905816328476705983695808091822822267360177804195881288401636239288108801432445730688141181745021222244675449591509860969603171857784892067721383595198622921208949723233354509540725213890711001199535501666608842394407308258021038090278006746010010885748203736410243653359044769103066596874533771549094976131090642243295342030045085934843639908086558744954335615166254439340879937434701253938077690489044865195495476494289874745409604631555175325391718237659422537338564605337151810574003718915348678009931880986573771213302065316905054243193955919115473349950654748715544087977147287718684676842669110585505558966707270817449993071273852612343029215525007495393645131029579520594511458681918828810207435990072803775683745554377609722761893222189456185024481150724345700276727252048815227225169349313142526461161163017088262834528551031203648164797055912675638132104322909309516317550726687808907875897794841490167122082534907705708878871002575280387495696732129395425547652054545746995242784598256473762994757498429781543739483846633666579817979049514976798498461949336557081982061641303829722118379252442298758527760983571263338818884301051735359176332247293687516813408867936684281754673880375206367805190835711724821730469234882356324907352317740089074617012609614147662339213889939903087376485229802737735803361896103469784673571808154079944153702673646672750543044257436917785656510751367511230806937186496277677073472348628637678925611510166528317901904592441937234458436034462656927430493603868095071043692504293950188817625627225907779577361827523424232373292491453339096133084236045206024987221474924088612657490760353260892740041472705848474878876845710767504342754953308471800695802444650704291026917146926776763797079827104473069793542774414493805326743715225865026788636509349119518648133842850755452316224732305800679132639881472652888652492833542290280573474169423599528312923859597746663609818032458249999580319123474209375991165954524766069502931157509373218050030942826586666914733183653528772165637633628278996196992465373592407507238574860676133595492031984365176102500294550175005729158321745138285946878798122717153990753483094868605104303030502739938731902086341177077136205014919617158374654183705299513991998956929988774108670300110947743616800153060010511904496672310409544381802389827312642088669676061838214777425705771149404055243801941907358468037901768073885391095292782123752719938189598577340163853242861057367907620573053597317003141921485872237451318320187454899940674161366349855956230233852727622605268336087261484172368787140978280396618622900897481182177539507813773189449977603735057711442459807456805424506396291114026229264357424933358118680286530961171771037755899610217412049472066285767104862401161848182640077928379240779092681395595547566821806609663434041167934579188380262847458958013226218893040182360500315554332667643357631122886160658339707993842505052421334191474249533636443987414126442127948855355226331479103492429209238209990616668659595811087366790008973698662590116928118083292108745605694555946945710591532300548443637625769297142621207271083688517457544155770266191814530597373939129824683138820684672177940309665223500081353963994577421834753506145019511597768950598163422859079826504402426795031501490410297576240174579098582669770512064929399018181799768681714861311287494540375232783809672627646661132803035857107855997942410275379101975811632415797661150062272382538641337107018739871402063140680060821829491586460527046061164633552005688448984563865812964463450464294205452620191207011665944689340047468609587870707312375712747960309787851945757175768139508969556122276408067876879991222105466933219148899477915721275336750470122390254654035005832576414945204086736625984626317339320253475502988781737909271985388016011211007082848303285363585017346090005328239042878163015352143325587104225128009843254138087659911209017860726516621922699175843105637686173801573502238037943548917880678186376228661805390859045426874433229241396519771521774520382803990929815362618013696226603488785670171655906242199684495247770005939038394818837993371298541562831040514601873424901871156871677734040386861915948266352934546473757470657845416067073024200938290714567783189161672757497783887524667657865665382587245642717480633502018033896499552415756519713750480956879256947554762598129676042741182002066625384464159629815517514981788710498608169337884341355330057003003835590103607849070334033917499341454760789960356455764305003154398110492536351306719111284066916342122354290139728998671146884209572117309435675649223171970505800305782069006181033197590710864201379693411164470022693381049867328293949655815076895244016481542134318541300292783360551841419695610314787986403257280395357632641929166566983173257421035485963513888564171237853852088127049494177755514745915212231523912775150148019831890293696767467054057853007776447874169777805620750809867904658288089352692008879393544879717748432193248190100653654395817418820856181656450675642790889932214044153882190270608821980843274084100731029774525205973501935587066699279294624709021701345217766670112445963833078863535530018792076778788832592022244530717067970420424935699280794589844185354084131334480208580286516063287101828722204669129401948606592724513977919445459987092071496448395122830464072373260704671227274675239091545490036119527131063838430284690503463593320342042041368034289866288400366100913036979531624748161207667889379933087441315107606823074173945645497746955390028384984636487305775009795190471442359199182207912217998898946445493575652190442221721833628623475314037918513115188232015326508905544988583681581619285918614591741663164512099911272916641270597257633955737628816566772150750836370622909033593564166729248390744963364782282301608579355818079292707001610559875023678984651350836459028673600577228287265441906613730620938497811338864290099661524525630877665213551987150341345569615200953630369993724555306227836325326210877207981848884116656245280456093047752291267008394706487132743281758805361309624201527973196918306482953053356734823064819471925420450769405682651772167463594308946469155977209797440595578065415021935638878101410137678376923321473909753636723479691806858135474923665938336577099865024176224120916774757615902962215925163324448973588627811937815126187919532441657081121159668130319771556961270695556651739202690087501416515313587482320319509917692593893165130591900785007949555205474350334007742224472253736422044785606466977454030976630988876415719137569994930579666017918830962787623027288583708963326157782273840794293569323997067488458301694214680976942737412995631792878456426036316558721554092238227643806713590867990523353641407992118500712549276454255435465460330595972723508069156325994092963699936636961635552875892682368519070031616697174562712985496301124654925587302196852148944422462204773576468662573725831089401635407797926881909333576953148302083848319356020224373349408116227635135855688770747306557542211787628803535350119259595682118979876821633423496672094080112860926631109349822755642269771806509276805325151658016993068546692940681383140494317665289690501728733440350484744921140743154737608467290197083650126620699987796369255575442969397579106643279209498690774907886522752820791334182654968955592181079726802849257489318330664428180634818369652907147259624876307459246603870986837204214476936291151111207701951871597122755772947124436057459228592746852873009438722873025947352762651421777872510003177584233828102186651462893542002225168297146167034121668700112682536780029770920264419270682035942084971941590027049637159588308667287968745759226602856279697298013699534963709879084740736551098423251335995280150777225253684210475601557057943196572648717716942698017158380149826129317884304411579491662132777098005066073504293154397002665100894384410624932843540573525088605056393363871499318910459374615385505926512640251659311347480873257249718183642138388786681296487345230610952204905259681244370302049447218415043567434899756153739045507317950664096318997487948860187032117930679946355525295720265823624947389144264577470930064738406494949086657877585044268481733685926769774369647202430603582632490245165620546096319243759999245886858853211495994500897582922742778608081961724022831167127343943166531430161223992544641258826372004047287897149502853977256375443649697219958044349447607700081405242590384449753177947339564620712260097308439588936097927434386310166246209657338615061114591674344448228736641114681943117730648221638628386612780955303753070170939561357865285693657619683412917633642452907688925428045747918601829796755667039961187202626016490887988542028622465036313213904295503726674012700545881417375523218561087592510461476062771859777453686436871076366149686608993466595519429550424673172747201048623843356681682870394561394974300033030844124965392705092028456211910564174245391451770991935431830112988688652853472541327526290432558389834124425769709465355680229920978480427530346570528495273469834356311662230752295390940039215849500128906360234272750653408817031208269625643656519678092669421013635294969660009062537098330003294644676145072352838440446386942234289646609788088241780095444341823786501818242302214704352022823624881468126460747279736217623731835783338117739221263741381066203309639165497796658746549737864675622413425575073555129875200287276850097228690667519659556061796644351156716344727730316318649508132204132243874360177115972930708609420660472559443545776393439387868448386678595161026202107418347128352499895343092594884214560333843085444934892808818554790236010675455848802879229909082814849591291819776510572158556055042925734565887600921767223529926480792811102477102219846365798426534129728610245503558626703438202808998662898724557916712843539623794622240082393896192414224247612295747141464539137246968433712363692999017757101409148138545375275269399245479390990291738614763748617733901823023744501686064040830658331597935852954255172658752988167456848379556496402785314215331965314066331563436610998591744220431251644629531724385744451791841174872984940943140566582057215779860354391950915402658942544678216320906850203396444274010754053379449160735178957713495720612013019476131632605595706915282855733374354072281063304503857319199139887707662384381502226527091948356550768865734660328452957229720207369768468690741534664998050096186493004985908478564126609832549241750096046595627715538841925105462161671581891645673396479402088860896352514936638191355570034681158671966147600921488759344974482312205418671781041221093249107716101568523665222761288216727843767782351314979705753995847662446524004204566365192188257733826092668962897139914996457204926096840343980098407237939621544199092156017455294843876409131845009888601101953696154325336237976924049520576108188260934993720466242075410776816188820230605336260167935761096976061469682230364508657114218011875137566024712002149724647805462200050302693539823412032172970626978812701721853326563714221443492180625269863681942755679255491273192094069865122798427556798221505438373330399640527689879216225557533391512319687752128955449028095516452877189980137699102627702901278309261314610519020614165508257831982908012402195193026961227535091577593111381102012712900084704320938547427961146317170365550456295884552400753492892337119389627402223950791372037203752208191910673867615588826770289511411450539559346791107115716281797744461806432002851851970854838592597853298152460892820459139257351069604010508773371467688035212755242501557569908612253443605861200420466233314696555519455862336913494150572831920988959074853267184296331267631111059448884970639374642082251318043721574510039566943077603566020885950804164539684107638493128193344584886856700438489827164651724236389376122009476874565959907005382616473806742836607513484743823920373337176946268501283278885169454360605111438852873916445496489535041051592418927151210667003202661474710140930654217942566749214097108437311422767758696164088173706860153710856604337730658018174434024600386935372846537582561062902081879069163397979271138791207646082550760183287859122007237851743928894921953150274153284998638420831782190143719401159705467018984394315566650388921849858338038209499018515951822298290371960253708343053384624942507169453770140532144239811206953791615571676438155028488736803635976490010421448609090330026860145024466434181803520475154791043312740373071292650689053094093205728107583404183227558678456270474007464692434100334060542311068713942222477451914498396621557531288815532535404027118254363099333548288799053484693143899352182830858802852536156127108454369063950981773064343204376519270661440968451873454235789648553946541168077994363823730187328713613487945086166626891314755386878461865344884443686542528849596358530663489147693034192984602207270390793073152581753123630482122897295143328222297764382463281875350288002499534074291574220861708586090279460013134644187487934939339896276307949528671090368170761382932977980758979319281399943509409743802636199121998730286240341776053298561888936588962769829087502684291369955017481440773558108356725219857122392229065311174345916119896544456359563986605747992952517012080715890908768819044181428638689574089493825129927265722204418222354850954223849313810856639353629349003301123852416197216216878409360340893175065455288660432430779515422712616157719758922400238875627506468908079609783800413019966771210482805004238466680930612076809090945420068959069720637424101228522877191796863394492210062887324330272643340007332244395191409130117125371399768822235448316674177654340084304710821668395357495936798773987761757428894658758139958286827053710135412022816263875453437419707048363729786117989341671245575897321146589219294281642582895714618533967641286422328038310639071034749139256522682389527218393986558868680432201797750164556857531158770767239743249806693845079681134954825219060966121568091704233429418461370973175673286040922878716320877821216133598684262122423650837562027252805228599004388033558698273425619894970602884691182448728053070635412596520605177662658810427749969880828960672746929910084447263715271280522561714137325147562821678595322820055884614938288325894130212968302577164201994997285441546936596533082240708636444190690139768753042858476004544677056391691955673763460312504993612376624890752438102321609792630236291236109180865394049239769575466306985728818351369967314464466368647217629114262199536077658872703176127314440191732887093765935621866204754288436839597304055294131281079132178379509853476914878727157135435975109886987073893526087446543257697380000971658634973119601012616207581012245273809888378866583564252332053202591923586685410267214399672723080048908480400840591233581890358885127989870300555723657262600338538982141309158163044999698592733260997944782971557524202148027631039716481420758792986874186230278720628389917862346885337281450645982022667428154516753969811123849287050097501028071363671011462789733888855311472316409651395716450792760379101852076751794527666332582229369480764558479637514099938047971157663188171595708245834163675213920167941841434830783172479591121442682643622263589002004425372772843024945411338609518768874203889833857619316458528246030419234362147311016825199581476747751232598259238184242803237853450768963241563950148894594330397605541284052873490066710073574554442268992557196183158084987697155689450562653784173355327901478491218763648049411941282140505642355559048072427305659894976715788460725905388588246341594656416233814988915865547826014426717184963524326665638106275845077445275852381117040344797766540554521017176276669639056646160035165297807534408840164441834356439952963761902179367650672249907514741975887125729214084553338939097689014614932739319654041779829557136026693673471978670365887742571435757017198488429670538880508658253132324036348576200334227176296526548153868328530781261154825460383914782898395391930674025345692900076708699111718665434677648662158110021901534213797155729882067525685425333117481679176276680928522663990524053461717141418347519970231149485429944126898071872571826654913177518525620542179232867570018266198754336932177158720785183282010838492807016578774544370327200070640312825518572932716763243120542448427215804880038762375595170085138124885098632035687514473420789126287138108330529079040987209374410079514848846051835971773669926945535197049855144483306964985010526059019275976288858080896164434542217353448756601872791689152788104806736986066053596030881685590907783026370529098725589237673064969443966182933010659812920797414107839368955333330727259305330786167310407203261200063173417825483510279922452772682054708085658840533910102056926121442500266230276933824629377021224308147211319220121904237393027328356314889364771880107876626558328786718006173421087333706697853279190434104951937411431520217776777627175762907278740811715506595457513656312625322068631026107524995435675287213403115322087260004639954756074685754602279545084285007141090781321728851876983874852594250805318302605291046904312036853765375037651716589816673295577143408781910370947039746600272028684230697613285316394319158467334705828295536174706279441540817981333164264208670865090202630242267494684847143511703095333316503786251284679553254438858788878694636494083616116303497191262401972648361173403246500021377659603789729905046618053647824622323228868991667616080758326093229475332324779820412505700997710105091903243734849590101129018229710969047935600592582456849761403023385728101106857134193908303762806335450907820553052859155969127446108910237124031758648413215258466702541326682785846609085092231812588910327858096790318374999259795455281582986109323428581609140067703090192717035721918019231508147540280642253689100286246183393641654433236852790686584982109165776433170726998840976093382880695003226495173031572438134483156860790190913094072233834789719348105060985025036697382490276266464789017506450722312291982784569623090241315986214610725047683766065376709569321586751855024483689976276671268932106858182394195842466499753254998342047210632842093964057784267045038278539065701148127923930071818645156102978311916341655732768960241417714014599573325901790578833478320907756970154937725009586870985780261826405792041144054619265333578570672790706569784038687402807939543967463718848480019893431121415709410961803591465325794310369316899117142240703287357496248847779896560713493778495852551553846656577323958637304672969686092293800090708765657894048468972234008383635117009981094367514614735867361214149126129430619087991004407491012990356013963992101226132090727493687820017098920455841059610711220025945920223990032587715729035983376432322744349918196022175841172026926096639906864755099277492101810580568634116320760211990841195891660744894465460249192561330162397446806214467619183344748373589568502228320186098695339683701621424555359833649398752688068280981680066572591613661066896628713126189867787892397491437690133348900635844591038059165116247088466070368774919876408424640782952013390386857371508629292438920540981736463875199764191435188212660584667994449775290790616761279578290543468577865325221349018805489157391963860160211165497781113275175229685063633359827141932213819474451587862622355036610869731730829661718154875834149756194163368139444773630903072659386904002382409216226125076814124228213325281590253745371772526113808629185450041052744280287583373639147567350709551234902469557478957867713901737934814811826627362005840818507853539952754120473931004057739072437554611931842536539189779441244251793260720507976254630988080954836931888200687181396596781041986464717885280759669853536237720661988236397735670853907248061588352753382765703606157854064628684202130855243942671356030961115906559428309126013862836705871367649407581750798153470678138707413047647869126815855944636287110329139554314659021502746683183547107806751210830626022371843846814099608544130709514123075426527350937945912740865014323552105835538663825799497541615854158298686622056866884396158106528766960570878571200074210366836339198261026061073019071192227340789435772136325460145649485339126286913724675851308864839818819788127418028967905884535662066594505173573103520100896045587627223977181312930541230186523574708638207302752220170936557194537788913516208885902377233244118730674634509383676159262625280364583105933189564830631585052610218444170229646991604374093275209454111221094801224990448403121216401165124257370364947322662288887665743466434220171757688502448540721180099107008828770654744967662813035245793549539978971524764059455044643692506649379724027530696557357715207915943262828804233378509814177894570980090569830213319774219742200038780992476401898857683286052363255167024608130855404812688027862380643664990655178652441858560711303672928250061957174253306410078008291595997124796152273664483024216518365062501681073274981649133581055285667302893161406386082000619485073723460006136207305302226118606176802332120279142749735118264765644445139711651706278138708775570180653942536120678228041168763386891248693983834322290530829702165143179348633963529920478495483337318268306628007075370146452842125360075717388236945584170314227411183997429768432219945319171800970730287954722241840368346393242060399978291146528883486342126159461395664093502834936127118572422045747563228305816786618544135113136671951707819851515485571177214044209928315598273707214809300634304129438618393207413125381094850473942986463514415501906120621203331096588048035671719017342585028601684915818726402493791956808941649839069229816158322992853613920231306088381330228097012386867352426506657861235003160471885732786674203887557926138798941797294229739884243550792820627450404074676720320665907561083192648605703805966848593175648958772509585719350150437769075149476143960415141571439997638880447905979550964851745517724797281549262069413086712771145253337045627510296376127702830136206897798440847658407718804322509692680239900888352747879857930266138135353961371019112684115227728871454968918516892288432817224923149647209417426720182126271011933651944864243025807654745665018828760980569334082108076004951244049786451385900648520442430889077532695405967035823975736565001748500232711588497047246620652500338619332732620908333524113770141183169578921620258460984796524597673206660067789836481476228122941206799830472082777332441882510122890408832867767230854377312344682192483896834196915181401005282966698562869246777794990589316166373137553790332286413831488185150278302866336522946580263797682208595454190009616913568244954887959925664604544686885315386937704228411478215328505419551597389973587123710961126039624483628161662945805357436383816639617353115916580090594510130194569427425776281977435733409094653421270272158787767138521320676013860382589064461949906766215613911383658538507262471094026058495090514776481927671816169720154729567858920846257751402175488984536286359309975760137908521845506522790783194843681614155773706451654709892879019298457352320573807458481980755797460789536568707406465011771994040725113046361503521970622184844512078021339331308274915537227357335693530577199243137926652844074370410177493081690309830796284663309923843110418192887357292677117142965536634420284609693244082175705506952704646900658802785157291758144214306472166865078642004436519558781334160576027334558346160264291539308905958745298942375170539161826449673316050936283606101210204246195131484054861038252452451806542017003800726051318409864709321639017045666446191040966109365018724029918591222569022043566804930311884743286338109849236616170557034855709713414364503868388837063831779776001877055287229788094618305389667399191176070379724345906342558744264480872228743090767676613095336703926416150618418924904454299119464139582313077927266085083465212780213254329813399356953111463120380921499541197267516699105846243307739830180341524380289004894851474808847030239354174753399866052658069207190466545765116539386136577167988586133920690625592411129685808435535240265866502507303903539058499156285541879832191054007809747779362023324810951512970982593015410492018526901318010470388691291439713981205303269253180092264818212989276250726834341486243053110079353004447123710409389574803581072165591693118735980896103749156351823641713461773633032069216571867095134708432028778599208393789020369324507816631384316841345884695744835369779000704632062246790525571401541802133371746791859356489931672880065934246852418462196678149870899977799584032779436065204164905212824732993021695610254626336074330723789605476224919329477428583374047314378224771223282672331872309781360741536618017505321581966475352860959529700923340916909113929577801006721575175298878617871811799763218594928641422387027621048170272300855851368502737426054460776459692865940558911875625649650661671763775819856636322240938941906178125081014856691014120867338833843446297485086141178131261007875310238137444988053902151205250926778624632021640567997636165357246088134841144837155425104668810022468047430679745445859415580897936747098259917846845831438044275102700925005054891727680327950950457365320639853070266190172216231193231662565767727655739177667535704014545209065846508725800645423748787186284230774492982109303719208485771630361536894330501563185556797675677153770160936770255063921306440047206999171368840220995964099545787135204419561046106546756466791180037600945951149266303879938584358619533829125527675770316118201761386366200770235779815483190643228317372484647951141557066730517209494552109753282420657284344388969585523504076230644491690949717261729927002877073196877497914084780931458759413347599253410629969856175006650779845207705318378423423950972769273936070539606921525189051444003158480393326961291315496658723283768906285132229383163492755655922317898928509389724032860660653179280243001301092644648537353201078325366465105819738357262729913578962365160785652823917170186220140395401247428954715619187818904566324171104856529694227892047913914304207692509795287105588041796469785670777122040233149455971611473122652033710937266353460271008693509834359605486416626319085003769426412875503803150184735138615029850942139100396502526455728470496623468317494309844052571167076745906754645846497704106556189206840845347149446620270628050950459542901839103018539368203441140592805112453868935282771619805653313054430730172667990458301186947284163615061687760386749086582627910806793474517273115308229764439891660294857072231454243979937043859281046934160346635731948077354672165031089251583479300365092003667724051737266732603054782237809775117488764627340478650527987875127657100869311364521332179671298260598803143185243641493801763692791672253838582998017614507610089611326562388320585573875831812617010503494818900049705257943804046350243299499733966334602015348646419223106837507495889160886847090308357837921011875177942944762420600729152285098107845252769959623690274630847869242429554597356143063557820320926024229834189009663335498417710171074728713065225610791782747324932380220427223831668794401566238496395273958090331545538135890918752185977379159642989652262729479152209694579198259199594389919751272672334696594965151602545332800567362616662020788750468359899056925691172251365437900166777332248610978658146878349511528530204729394492613814733456783506299566435461080723965844943973926240009995669529801598651236258324134992589859512201148994676009404587096805471238913154594896661730096389905511144381474959915890175903348367846891431188286956080703136397527080400605449328842697650013158399119777628351100797217057409749403992896162419185930156051660418150314286431239522745968782634379284867265476941856107034158063253830834630039754585004173658182574148105662572697950632781923343988553838969424344501894704462688040922691196581230917846938906680970098057503969688907834806751487213091122398639737673788376456454836676086604966626278668128686686657175158730398958068990420405862696792226007365762355158024437718471424511953980429878555430377283143167222161032553677901203486733049489939198816593212664508837229780787221005313402270377086104817381946745190891292563438224719272589913783674183140580312951154729007765954440427816887120365332526018944987523274176356309964153594539252408187656070102868861440841218443190221211606932393486431563466099583564819682086197574950195304401434491671491282344291835617313368658817923475418746844756544133729213136312196352009251631929427801731446301180316642960513456839460706957113823230828983516793953783197175697685792454920627742302124499548962033270509807448292546697375375763810371203080072429267003711768211991682279090678956056130032550335950392026050374430574090016906924027242723231992765924817006058567326602009692154092708532489491448794253040211527910860108980475910058273841905528368387915181669606113933344104582968568160708036063408117928414327348577807453944044520766398411184146830197479099753749302463828045218200180361063344829205337629171808871714425563870168821555011401153734368163250908852945623882241256780208473865660393121233243112459089691047084348221761449133077876556374083080288090759621825386164102427300692099264707622533858070103146435458530735545081768102149619202689780070190603483899589874413886226016104214049252444238855738470663217924396851524679751208952698839336432201823694018646592701687396526823188210776652227528299714591844879945478757610322298124159657575833823700302915881852955572305361324665426210513970445109218196135757933037203097725520692715186381668749423806566278858998473778362147389173406397742883057117879198377792323133442004271786738327756294318591375653307336533115751561374889860552056831263821236774944602855526173407389942858675951717863542731785778068994931249487988970966240582646007143079283332427420824139500359673262227625668796526795008207861144507926629043229537522389022747040288624342206216186783032483970596078117753264082071035908824108967853681342872976985344925294016659477390541377779235740715398807689054238316615853385994472522912495644074204711062891845206553712162100117983985717459018239804422283006638476577039329917704891617213430311316147877320768976458807421462069063364649170877050098699291684349697905509554916542639201126342010229807928420733869269437285741602607219426509024697985657218074372425922256378840577066877795793884609540967043778645896311243680107588505894180510552000951736528287466589358847616176381809944015484111201732113576463660179487568597521562624668166018370114358220719734673814006992449631940031806399031084543361358019707518788450181277210736058221606042586520950404258161311055605247000648596332395387944884336107026250668923997767052875093194303621204649184095173465987654994180141468279337817898142258253164695832351137556333822960686338621169450856309225084613070218807256298509177190607532934569829619915595488043562511235576691802922487260811096077281062311803293429663784550170695576011795396165800538764612948092855659209773299278990794922802373001192623980965854832970351596929966183353369220701909660269666734178934811685954576861987987746977677989728725329819396435667858014323260186231031215358107165396294849201532934785252406940930761912189989575152752984904330047644821354890678674574287394575999558723844965705980492902429614287200554993733761844092685465084743282853272760960778989535396626959102845125796641020897207326434731075950661291903311805764769952675879618169694072196448140595639359764370467066150654328917405110831271768533370503609984436634795696660211843060690791169868777660090254630889030508335240700757940248347709237896953896127203732324868658695397312441188675992254208974824865213575746760766323519563014893731552736355453447025262353542287302453795132755654325844261524343246620009720122089192491191413300521640411046321108928065723167422361969573801515488826438948269194261779869642299193950998822741397026584601119721498238859482478953879495933146889643056355019558305500613685079555319950691164675157745081360044808441059277030564104276608897942807793993467135269143100594234236735434314544706065179004733466476288445993433119357908917072372198745750834667267869356167307580389738571085384413150731272102321579681985708625012889391734347178218829790082424911829480556878466027537643259133026950068500888333178082632947230279420284834236240431554274569205715437485454890066390406651575034682780025577037193905795823251618684240237719284235502689569955668856673024015930935196125944007499209903200327634378254321736993416796300492022813398008171079387815002748452696667107353855095872008146012439361747969854551890969903280168474433848596296267036243283065871731567785951934870076477542954757828739014873423457761593319426390699951314992918611344901004827635352303821782125427449626414820113420891158548072188072521502685994525093587592405804480771192542243021788571456941067669601350678341071552452373566761704903556698691327380824235988301232924013864700356846497729078899468880308314137238179421926448132826699896435166808273475576692673312912012443305911388616904772071287999716908928201392762896375322675076251897544674016874302210968608156035512138917743486541833266610482507528500618293723365086149856093477964188058139893756267740899728378425495448598485019988781289005801559186315064097506178677783112172123676933830608162051875156089658909729970642269970857471116319003958968402496760406903089834646612829652852528692735506319728849416605327104720371407942387444162094127218535255863132375924631548066418209673383526247758119359379198134990888499688254631094526918765345190703996612148801739891026360732810104198955592440042101448982284378235401571296294793324405724478488943325296642357793136287099815431502662770566797222994344546412324477441874269305702654596717350059976630448017488197605910611013946118703494146381631928888251173410884790777685091994360440774071195936930891938192398682139922221991406507339240908430652972292407785646385722979358069577689326273838535998133023162956899141692702182108085103573152599905876698456706084293960404661313082799093608597228834430841228786319271410972265086699738009435812253824871269402260816894018242254309017932385376155696945434293305358791379642358704049411196775669124176464301205393570727405823161338518049240645479885705435554235284691028704100397598798495555024829052385542732692408314391684414680810803434999299416473782737861062547680875389468620355543437173807287779194158807427670364609903473017489559340670882847711542968683019967486522662307297232911688830314602973135327568130046718103615698382010181541121628193368070121908104788714051557378477316143978420946935444432176713418283137028870797619619046277903737430435155329603641203167126573440134114831001454965729373528666778438829683827246386402166478380736576595341624231188409996705023057624770214203856122079103067754283249400035901359100478114187954736582229439585409281616916155708542778667209785011554399484849688727566196180736294483437394463791574204695320010249005302711969848694580856185669183169038990137824260823943536701609203890588548746050950873787641132745696132902206520766851595074268561252169238092126158224812842913967885163400774446579440959117182856467888120735326577349855741036865536919496413169428268204714176299106253764223985031808839387017519587675909353539180716385282843909014602839548168262852272901896440637064856929069277686431938312279438885052749310683038248900094284684923025440661182832956577328052178852357474391699196250618117705467093708090715168394141478545681332077950206040714729359454077266880941455379381829774500534611225384181808792340117357280291582734795244861137129857453261490774435764697069899036221508149617404695053241126797773391765540698658587436858796342310550245402285308096557352940999221721051807289236820799988321115939388905230428143958258345262317517325327766020081463369903927603371719301140362962750620773389572062814926693730691579876971525382978364239864790940779454976186771721927786960759450302197813390821799830072861042882810515231822485478279651545472893482472519978899960165021452521343311318900510688492371156783182317830278229414938030260484225306264004864743072549664879560816853303865546631041817928668873415383421322551922899669511947478839405954511091370169971204759484268556422882287632847401556628074665014002492115873848985482930907233384341443086733353851271164841791540971360693896497734953018855934273039230819721384341751853401040545725127214131048858001771329831565278585607458708175248495427736104174475813677808345078283546667528866045342247911902980034528765789246095593995058468130565809630111251950099705570532640483739345154670770996260192853820834807381207871097636646548301032823169025913368581015282608702985166816509642472236512322753594502412470246364548502722314954749637255923039200748613289251760956604923842167800001305818821251906306282385598247500102432922529975251013355528815013569735557486595005849904656127915980222418045653649831798801670291254032622973351209530471548711984743192835887183357345857788760103175763477842828460522203960223611715725535038789865575994348271706053357360794021393635468953347245873218251948921991159835288860944520130493747635234337846155537245009850996038163404895170334396201348267158163383886422277135774179263486588956455512449256174747051635004315543505230474338397618920000311327667593800423460749353950805760779383634095573753712066818514476812349924230265007246103887166318700951178583275240845159379802049383771571025653181096700904527085678723401755145623468472912319642400060698197828292648990934185660743857778662870053725484276571363218099987448182125113354775698354476538765983991540885865284647444496885814210591879786594377039454021370767616346702901445791533010626544700595202045810685707927525479157067178088631010445748628381816867730080502815414728482552448873512454445422508265548072583303937433974771324951280380858490212757311236792712149375560446029976570300514204503670945940290530153885115633962624318280843620645454478922995634833291322095645680416766747977884864069509550978928062822749536054015739384541548148076616326242300983586275614461248871963049184232333175630140198198703926518614421991547035416966560149855077221119233120509213060828968594415706726461377001510459532996630497863012816364827327051962249803917261572395115676738035218345291117823322034029452864366236308039303249316554579248095938848499924216424245109280317710508366352781321078807181281719353457488061437944206416824332252037301515728035241344637829647677025885977150431864248389396418092383317882909403650444042463968519052472667000924547203031387860991052057972668229258013120892564389006129201124582194040606751666532376642382318529058507169231641504605846800662152803283177466761166598304752307033849667084300633689207521466958798393242078449094063526849980239228908869229683758452836581909248982594606776942187944932075807265093640392624714665442810461118278727871073837951043336297833823898013838427252662760743848463592710581948815942774800582241636509810481819586707861169203020418237604504713937836323990831644718139196644129394765721344879788896215700009179794863855682429676086290575466051498244496845714611702372889475713408890061279039735273016989507903529702638613082884301675968334202370702900949829649089814098629763195216530835325370061798139746755066234109153744235409098811913706530070535321869617312960902504216478582078158904617630561205533852221679596098569011188578503895804421144569813790548214604158344834906124216440479808131317740913567137309634836166284577485487387085884098384686026946344225396076369190128893524763452192003393994749989339680993866731312187947301420364076064563819340759328871312290668033135211686494614800193930906065834913885003439575323377694799622339242183263968928749505149519810791811775977402080784283629625349347918106209767051929413791832081290123394146924478887522968152775634017665805716507015385779185986704042323497978952251466894303570809369223377264898653192802580813598796578950985466517538728275210541805499813258148302576788238962427975484766820468969126812758460533424731353136721767114661367887844245677058463585857217808756540620329747429293242229059651211866303932216479426311194616973127343228362634617152407823564044291676314848533115940329279194441106845816885441341841107675364970275942406395582268258082089230617385411753298518192134591890528357086401749768875761219712708860858610848211539704276961380333483872066467168918814650165074747884496493184389138520454786428448552565242569377976670196318588783023257586453554844676599984492560883689227990558206115528333855678070789201001304199512536235443239462221893400160906037396575760171213075021002691235208628337857930782239052893775129121496381370114618125492528357434115383636838648814396400711606028733092601927745613731700377243879341725772238247942242185995742383996097325833732969236511394910892560552961109601269848484218450395574556888717884664145932345304325501833012830293467909711100424071023743187560511468462358571199216110508396295174253942716446381506696450362204262089049492916136046685659571598980967695886710158547765696835254159165208318647682689629383581176117879682867513222890532212477064098299697803734508854283296540124486780093193907960283015775181204922711645372551825704799521801446705577637427163318960954316140431644654442512427201000475473376760273722952229077928560117064833617623301017082332684783323622210109060061987309498131254132977967351220010278489467166893300193186604164231474386205715379756465327047020652094977660479504559118606906390757278057948894742763146604327884487731240981965013296541925863249750157564806676236946794135071898740879100597709606378864008069254521556939560645525159353254978355514469075212598128569881200992119058188660870532374134941552306703027131052175734333479871863979015503086503540399933246769807416066985381966282744749186784661204952799503749231234666776332910803870565082914001481011396674671783613369184105967912645872782352378099185008903525520372315677258115839439493750994376594483566009180377636089738621365265633840839678300732925043138664444434793828110472518273231844462525003357544336513924919024195062131252433336405789232337699604395420965759249471887275740168153496220147951473787712624684990203756266693133285789416039799271419613229373036199789353951398679476679158407729415836943952115439445009901589931276000623385413038546854214932536123762849405165144785979724310031577983434655670092258768508554832111270808489634104809974656671236394576979347875219993388254951020207242024259037811020044896050996991829889957707859948540603185694001438904355705519750622614861018463727220593473965310832815631015186240566382338564437453680418005862423321936100794034842329719690409597261888007533424468270929023289239666194758523278250135784313053135149068079822451061825206521628319308940036277550612406970146326318983827815799358652682285104081510542936139261004548998775618576054671657199088083085578210768669047181663067886690791675827289270601860613731073589043366114694498838362545692194108996688100491650009936428959478843407820596181574387861800684349089110326501358350676480764054920096848250469440384490734477559331077237980307222656691365310287782572626728050249491049377298327208174024877475014958238143964170207948019821848893326029518587676562340067674992288755731046353136736054082079407751677890571218331291889115976013246292850748446507522720447238277640767253085205776473079474065784872003701041267395824355477469405230084082108593931550304394430170227371916740937334120843612573464385242486191648051795238959162601976338101795017269213533195898334962245436932058556889384469829326302492751427479699315772263344211276680452893641125541995870999540723731451403911983053272913767243687680895444085940945914051771789642947096759220908203527112269730173771407659497313120398642139202045185143265989496438753279377943734883849278556681776358757885451335232902737117890187242871147329340841839977235157278309841042994462064145966943286513574516270587380765198617897419411962034671802305737676599944203865957914140446527461763640760817342098623101796231176797480674964250754413013825612879638872939342359957608756046259015341981658605851435746842584465988923710092195067917211460119325459678321517634239870349975414690991715852435671091182470221698021565242698077979262411264246176089241519057126824162330930781128357916607628891828411052271365086526504577889624403230501718795495789117053252948153229835296030220042485493060269606615723799825835104521163140003250489420173616928767373338357516514798750212215562108965160713141141695124130234374295491537685340363351001421360298770455546110770497017114234767704167154032496047594031026604080220385263158077541222461709141130099774359162028776671664466828245534491864636202007173289748174887944712479428823806087051612659941722106622384722042255587993528711771079769244610614181716189946304546959063720936311861138807337080255013894894470086431949134933847745814414916487918650045964864882375558662718760044535290785353166855758878149042283438557862652598141171787000917736573982950172586143197503787728542172606109760729378213032844095623556171449464979266068126831260426669334643683026046766637924225595896724718177670714252687283484719249414028647939053033366190897036412360031557254231035469467715487768570372246332126064161356217976901958248831861102272008480958877455578149117160087156184675907895835643709742931410622265745803771514820174950354253179936280225402119976659025956642605220191408611283228187845211740526500661985784249870567218282073532984620622781641197019585200554847432302192497144999236462210238344382609710011006851011884261974150777662208179149739981577120809481455558522375626698863134611365108824578632192345252788149921791968642317511615877325167620051377134880928413840173969389888923609743126090249575445769031875013996178263982358189995046506067762800164247335427384435731236889469107663512424627030567380636629424959713292448848286131179141210939989741749826641089222536784253221895937495536431653172756783886480545620470013434386050887238053466256737126745035061355235205154972378127403771262311075438859983123127783448545827152554480948287351091639367782441052284384227846466237696201476426731239169350277140171929315034862778272723367650165340399211738025927950518153304905825517026219181629333014030950955912917298493239953899512957288748484755564869602415673234820930303805168588232524921491935291846901243599179962044084755472666545344308323716191289484847179379102688994033348319843543554439190602946340977022070701969214911079976253141545373783205211295591865260841380349525989740033614426960635810751440557219565136420213116711427541468532194585896728755519026860432348699675641613435755627633939614975759017247188353396202600435603973062021379386768999546524264097400436046630566927005712458403930468634167100012429457843719730905514064350837800054891969670497979208632811291038243999906325031886727799376794997927230065576592319445521693759329907553084341620823285112710876056720292085788012618620866791824976231960996763748307753858435566902388277202274631364334360617463120138504260749186875753973799590018699559607580238159174766820892046156736720626424509452657358302865558387396300318507808077574305550513449546905820208268748828742028858914242010819721138640893033474700566238667980205162564404563390808323007201334557145743479084479164770097127368453869225056293854545986994071865696426883722770615470291899020823016014433626118092177813102707787056350533300921132636494704861054014799059839101864799918217145353172409570235270697773048843392739109057142179673146734956093384816176222707419498267941687434688474016924604959809345040045714892074835072267276383439857789551789832136104846568897009685737288950335165257886188475237042908773990413655963258818381503247270629848861155789174375080966833056218035114278943791092430821309527664435285536804924387933487340244853039249439220213988457355628426188002199078677255520293605246309288964850686117939528407767327750584455294546744795263161707929345883786429624730212637746190758521057310763575254589651760305103431198197006292807434391946831672298735014955664197113803979119739476132200862361550919597613940890998177946099698956741320528551079463871842090203634223891337730758682602654300686471316708897312212445089922444307718100048706502974637637075511036246752202385591933495167791762217481473663765347874595726039997845337585686535710740039196094688314753030634572976274899565333552812451246878364973764806939966537219293436520302936506856908664607035093096022085011341655091568088348950843438770523184568524018095676655878555234832220587919630986002501015362462629509519908019225582888045467351800431552383824354745452078732661827527399082660437745855051811679145737322630076456392655191013565111148496659122362045960054679323058119476146246706246876967810983622882411667242016050094643423504826924573220091160807860110283888213670010683119651181285221594360520235389860803065054569323883233743639825231697296966260665401472632970134563277057184949794291295165584015546659818746857666144721411173915472543387616486649024348580491243619274124562187777201675742675606083156841765306280969224714704677821544484817528000045112923752680416687760841746634415074372115027671965534922212491789175393475102227598249378858438213149078715219244430552249930927793723373175488576612866608375922860721911311925213222493010422553863406543839488401536963127613175289526029404543631568057160504178284295678031569898170970881425174017246831206344805941437310115824052316608948425049636285652175646984817524186030903335721120457167197896631066216528945945194596948762953835175905930192205882838207726158165008051709133024043618849971279631954003223778678554489738373140342761580841026632001734176768861698617193639882243845994306267920874608788478328107359238865030390358756844316268209530218629697084095462081695996095641732471242410381948055171515626519323022443520018674637821648683669418058937245437928995755289075465782133074844987215234252939257565518510731972427898942093950161290460562380798629273401989768964744781612079399285051910022778048947700216301801098926604593246920670928465358953004309155665230079214169051125017642085661788487559815262943492626399065024750452611242888915304161286389971849315787174461709268866500587335138327871181350066949161346936594648948706673085107017927141616105441648903350093340001597573794176398391454681073694579689353406953103207671279029330057007301924529737474699616551164992821908228847557617451802720210297775284592710858581416257458783746613917650327355849063924613768911112520420595570674606105718064776897483536213656572937773801398951951841547953138800590906642388875023483045136404932792413168839203214958321907507648840129877757103815040157408383725782357439759175981067592136846932046216390838856840061084882895389090944047949358353849520726370896601125100228964272773397784017409358973761446675016440708869152744045575711014908521586519136749662447515455799132597829557924628914710288554364218481028295142931140463820515508079704543148821690329908485674189233915202632683494900941480841855853007816006952971024202737756209841262954570035811691655372219353612802209343564012095161961107103867761110300588505024762236969311429194909726982125136482703596151006684220061847160828377380881298622294496427876580069276323057602079885417966597101516755196717793925191440806641358264147606053770301596529339932918447663024266179566463463100515211731355557649272215644402779852789283540451796412394112337359043815739801110939988502749801402090619980989525322628930934682437639964772639056864195837094983614560804981817314885860808369591608046270789753704959412301687034910019610494963873491014367511948949995146410143257756714142119490597764181582519626978181323110154094116889686072749306637186680369118849679121180723780920027752336633541069124083906452329685565541574181213889276085040275128764347391687721704696905140137969581273195904062687281488417296881905932598750341101257347363292558964242365527357163212996270628095902624530411260175801263682887370045644158612554171584079888649825035649294276109915015920410127222723170118072452686442698537486181753429650852733617997191065973709796716674566722156050876704692348187936488264669589339835774748845120704874371352699667943300951912009737140834388183439477864877771417374530006706496579136502741095137503170877321278086287424399945656203279547302411030485428706174763011540725435340460740382152130961081255071600738926572329745925171657264568566674269896008856936778163599372155839372980422894100201127361179673769408931920484303055636542381129768733132662094371985408725915943559620270513755144875425836171606643854246638768062539417070324852444151796153900106019654794289719985525751325793684224088918100582464403699525045464470873997485166591546238051079328386477375980317900443042364028903985542549602449259308815582749297679422684492266219225172487692227882466817825157430858780421605428509769204884204798189749059737811752752801723738364349526789034904588167839471704589164545367914728109048945900082418498813114698358680292523037861678335884161601722103086888981550393618631946562663184906907798614633391287323105780253739880273383424536054462916520567788117323743579249872945678845104540026540266676082123218877268525088206061904968031781002784116608596166191306611658992715830206193240454909925291568441738885045649714019463095422610029788722142020045974933239910852477420519723181249632651681634256273759253365002343135902215211371378139314682336061536443510683223838507249639471979143837515878212978183046742492146809228182925895076127666446647550701607609123479005951054311220123892831670066855195293721876134209256931533681918433416111601116117906607182411333732020259894888742944932318946996285846011749773757910866137329261419574673128282639637637267474867044680457240413644301290260096146443924159110916468843511173013662104226936154994729777985203007875935195603336549842476540406301225349735297791373439602021285498531805279407227046938306527271514027928963193966883113497699566522002176545366684145018062245740601900519643071394611503408203252971630811555656737532032173511162059798045047568511474956910404921865144887916147766343228135109915323946325152421772893954883841371952857959043848230094990677825496257389783803947313022830796115014474137795157399041180189259598086513010357060853450940905176330026610524961525009362783573597581506454553141926191974135727812637918422287345071037393454375767214413118454430885461251644901006826253436486651547209866584951879458634089130102163698769775743001993123191174565959668914067912733735844292655414361683455564841958139573273885287981674743553880495761767750062272652437087269027373054836768580126954233477306623617841868033040165079387799755661318865995842388047799329626212198056945139199637630119974573825656122296519874953143509385906277915202862408506158391466659522219348048977830887382476990312949965664837677911143203129994595563329347774034464840218103881447944739437114825396052571819430048910786768173210378314068795394882615693664380870176921760275785946909052076291981982754800054140837703055493694061655722756544504059716724870163536011780199559649268964814547054894426574490039680734730448060819875181735898233796772553057053681315978636364793644446965459034380133651882003989795045009819492905599069460143086817761382482965959043292435203374447073496599451634269930965332833404575141165328057442811666385583364223952578375715693687191589607726539413387067531270593175909740211471656872077504541361316567296108785986501991952118696973349165640572630185262617270388944282013168006490730116620338872298139005898695978482711194678474340336254685783363257382655447681717243914818124892089997993377102194813930979697307196505753438421194660360938516375811051011170227260559593128256422160374801368323479573121284271648865041284966964123480599007470140753075379532183349751357514459687922379864077136479104887049363231323422712458869424692399957673347193752723310747388109981647499018988953464704609309002175136573408121486021729065464988672655761376764947764419456842221648472645199810457927994807326045684089601510671605013150857467465264310211181030250915934579546014418955059834646892234795259526988731395108882878419915655286409190798805297718157132421600684928232151453682433682436790124512566242085225526150151515571672542921370846203704599817056935330815820732151474099525316687470748452781025426007898953632941660600130533964337142114232066922639898913789601412546602054961041773029031333992199529938571902579877022189838463689393093489252396759983013986863408588230397049008900816042618712845116623950270099057485860308703128915554370109884938845698232775590554569702627225986576826502769600618869390982351754950328821090054786644380782234874339780826201283594393552631064472572617142366793694563205022872787594072147924827190732111601810966020003000147072932433152443041942178982113784823462069288671785434244871593980842067247540945397799308734608910790551690485217249526598812539410423154695609163054690895339015266827205148795909711400721781045970777658166789833444443233241902739116118422559651572579205189018741560378806998908021754693107264334581685905392697356958561630921860905339513211770245414407120030187940073080004828619411504897977039076130814305155663558877261195639386890873900107749309379498256176196891459889759887999642378971448100097088589538468140087130132897701495547403481125323547299788839131459014922385680673723005333715056132704090960847880881388249533663149252129635993084473765488190377697626870431586371211133616530306491217462024441070509562139006068237525992870050893419651329647573605886003072628881855601544994692093406186949127337916469565550262470564322590065788260618107147234530259728691648890989955428642500407700741751293750268109732518372415812688539393722715544961592730777708980865636479269159922434025990113199288551979520420689959344209867733251757210807202931244087677119878665847060449859844870396938789482174021999899225610754945014062137432878963069822137951261839023349999459815686947512629057459750624365398257413945613611532283847511511357497733877689486482719025378351447751690864819017841099132026053561541618891075255759663170341449043745600077646253071325252776793464911176938572784931872547919695493880842353198524977694776494866821820471070916351991185718533836263391596214439851415572339571057728911973256675763739217070276203602437593350423197599197431000925500922682825188546660400938190093392674183557896242189267374857211613733663746913344635105219199513292103172217336386796005206173235431397776314283309541251361731167713614522493436510556074240001543184471104595918766194194959899385294760820801392476389579223514211110305356162691669267368137288444690939793647318162640374656035260668709994253539241820223039012071497878858565565238239674638362204634658421260612657103171166690580730409656354616841257691035574517234239992113043492952505725785939379454234456272865069038884640993778990045949973275401551799656163649510334944790808263416228643643025401096068986796013679567717566852107173425453305067310310960899776993961713738025411424441059059076929893465072828590589773758086770562347745362130112212603041702045890664500438365801110266396752950419444893701871666864133808888437110019251643253303512602780462886846648651469166332234043538987968368433890867079016921732281137551016707821546568892492671139415344151803981250502880923577206458406732675656630933718927003658047909424321211187062854292236307276002261010599052452241628130900474285363964480525904566924240734408265567760609152296569734168415674585504692035916155729670283526336210553116246171193330961476155884475871103512503233452773206077725047805517217915779887665778202229507243904125564607305491232093367715993931707961682820966762502815507025104089287289348645953425135036234710041650283143153827350078032488395353601812457673554112345687980140143495774366799448948455658903705374093364987977904630553619918933571689672414090196185863992309768524358223178973950116432189395489399822519419741199095547190006539792848793458846826501848425499285037040488735635706723110221616612229012526131355605622064843071020250122852809177394173965396078123479966146837270765726671692792864885410496165905704043041517492056560739617693335941068403985966383144695554851133987998009987719328323073724165203225375963819777791374398814537577382880117389899267167213874742427070326264611138082533802802784310774231218141200744397598701175258623178934618846110474485521599085454744081210376933682021083103099349652755907780929113385934060379030337634533896092379614256658653478263020490079396213973616032067772720029553193161316712008552070672700056752356773566299330833836438730913063128439610034431851009336197575401861816674786113951477063157720565715019597597880687892922865435319886387282388905268770261779871356237087558933350003931093315799274966464523772554185325348976471104864766399957925366800952988892510923206791630461680278326441769458136962250977488688975331298395189286935338231784766528787613246261232148996013809734471334579002655538424974297190957683313331469640757445366627641084832996188985908524822094884167824301604317556029813730350014405650057743554469303616316150660587009900579956511875632565610752271657768672236540324640760768065794299318922301516272684936623803893688124827379573058400562673095943924164323546810291967982350769863169531640758532217393451837402672159478421792624459256781867193656129549529781226572150514006596650358438404019506029695565058743708143319030575198670817669600656591136359502768040836979837734659713678132367487283206859532035521048605900399797476785807334354685973073663029506632510539248768760501267905533283898540813984932797885919086972179022377082701199575662974824044145466962262788895364387283695500543182614574719621039741448361209375496953142676158232424210376006776689073568514200210707375308225484702441519961706820965368442609339058324228219624805060926192640037726189984130496760168757248822996078668692255914667359092891157488296257623156550958360995991098517511529327122171807009073950507077350950086916123613377520554219105729248267812264220488128416366629013655686496592329867050091911137948481696708785592217418633260496225632890743727130305321050684386895164017544692084787946619926291085490766590933718410319475218416280790757543051389544607061406062125786157952709596832509180502848092173906389615695290916147796338213556492477610650179194551831509960141261282220700692171646359659921211699599920368006071152162508342695815157666330918063179050415293710172362304559501786259769117592798463351809993759969523394420703884024525090682072801079476081367968140220537683014244511650839542101276482509951020316161630350252683524675653710658685383522328656216047960271297413099487293612278390915713834315189837657873468738861705789445633815264336056731850805341518128490245783127235153945843010917120539983290941857495638475532438527393232341978317435780767318639210552689934244071507339679638072114783835330885314573793387296179186083862320469986271695533258184641143181792134780481651641401152311062984643273061630720079594436958802226964816419922738140622169536022161682697429809554487703074157833742032571364808401187437856415445869096570231200746848242344371596325609612418957578619161577545490190138369261491571500077258987366326025547273134319893206147289401676955037114817934285949566495311163290620090773913518614547720941320020908016044087688158872731359386090307543668604589316463138694610485560326493590306042819718770429885320008128563580089830596276238727446851013499057554403577822031704710848605617099845714027453667623838800216884772781245719270952827702587265634943531782306340762462170957969405942252692923506013383206090926385481533110558272915828267979590850314244318877721077434933365987710034109010228179679283410661615889769337918564856721055753807753188711443482480368769833207652081244518328869236771577200949461061352376829843525570122729493563353600627073122648857294404174796735089899315866743478279403745121137035696667498165834831482513686185439355865776184104576292167790435314460024681184094062495950235149458286588770148546708237030904224317295239980859779541931858201969665740630933777269102851165387292429762339478843829519568902730668873289627998767546193431158190542535390926282438245570706027396896005698219512854365804549528495638149745553050546591849312862669861439135746466373996037730546233299862595930800631170652134496631518980147991746406744597555397432078522357206176795717505055339645119900866066346148289753746463082577613383314261242017594638536973289310667675241087343419554865327055015789048072942694065540903264297967730773012851661070112919249400006597672234413431612489064860086941428921360208524624930362434637727813626046817570818601053054399582603778688540236051007575973251520607172399178014402934740587078811615982349752513083794787940939987090537971711005639162556972694869372199282611617064532405349784705571976482191796998980808435151516847471773617159762413305356056488947620959129364022101149863200794078195347616541686340613833525036187371803365395217017155335652994096073182349460268521323648815934491721489239431819915626125226863427727045964877531931621065600649648558883070864931775480886979434210585642519363993075521778485453665426701431272273629521746308155395002831878999350074678488369094537212084858834968361308455837360372036420648397942421337315257513710473595527705390448189359269680822499207157397396279023706198466363245789370310614910376076896874401361710487097649209797667840983383234458504443546150817674695420429635065504242101049814187799258258709964590422402167244576533049029491709699404343708222001105136801774150683894586464196642853032542361001492708055850458685926644585752307848158921232168440489504035519707967121920261668464614210103077248373616350070315125334395009051952950594834244912867510768373530331688768590155952831147163044251480318746476874598952907989886574061869615214912223351203601034850599547804982516183272836884577495308020813457340146237790288663315396362420554834130753955268858958682867024976713714803933690734408917126752530989935852036142058467608067609032814425085137467598001511440731450560868074563732478378657684190467449339470422698027048096345507068046395752186065035406634177916962157064351497980079447193189347870145981978068432982316874198262641445762590534462293935016067484803614670221947876416460776333769546029145501714123124822348514119234349394050467342064924999854524541041215516751961807781823072969962759324103327161967866611135356970718075704333038360494832715521797817942030607342264022235441292118481720011314040213333188389931935309884773459232472668911649455916227481138092050953112694870959492059019751755296202757380760501635892036287116500698433793320988966705007731460456940867681559759153623617510978647637107726382493181067379757527012468594186465918635498408552931493559032780245909713456301415460297872792942621513062148787188363511826865179011440701218337825197929132829801523513235466215621580800666562530338560634696342731421632923572118602328144808022093375182392446087559707253102194467259804205943733736362713728811788173869777642628582161262011236069667208954308047299720485814107676914797630691746044206064652328163850688879622674605226951473295020540943143675885016055703395473253728211495003989963418703584260873713684654854766527987152282379760430243718793959428631855940148680556760412833879989280462300980409946524882418216642703435573013883290350135616317395526338864001747128312460556897373924705132943811964520193153204034497533553029804135651533741061362133684305713605339652586407841451523362446117045090212748252365182971204202862425434882708047714683567793663317058155894257227020872918653518952477561115146874156259986853747728750052526429627366963037931060357578710270339805429148813743056268025130687144505479200956445672754479681220085878150363586521714952504031001572484409322923397533456624586515137529700417749220313901576159400536162935327550064650752673564816083978866823349591991090355095710765487586049273456771370745521877837766151692531449265852281764252759145601177488559845088976274835588840182674602817760399003353794727075237005094518368155964730315829184305497592221293929686408580917734809500970190142591857604170192600033385491940066405938390571891810614265933163461289704088297988391738243570374590187007454025018082844508866965621263825829251039137173481827787860463060014897881702617006425205243041348752677056100219463344680147872218911054480937362211586554923026142403308824349555854609542597364582582284448736559776758472689373631781824545554031362890785747492714947336576408084704102698840217165975714858797094893300690035425762863831625242153776528057482768822792901929367026562641321194090020589082466148291065655591438803895714311844994539058471936899459967854587435016977881259911076948545273703948929491963240749244685314427193170110531198985218663699345958111313428581313541213885327493767667152045414911617973399349752061054857730108881227498580793812784017545025222650126173938187528352770296901271872802338866511205420984791398894080283122095057890611076492545178455324333056458929894812846185301713007677640238589288341246285146286398987463368829460583758897080481198496110081639863193565949305145204779723218520775669430314665163026578788351443692513778710072566096100997676702486109908715100846203587158898181308274682351022940012883844840328894412846996950471160122914136022302652742496413044977399670130935487682801089239877752517461918015649871316157148369691694375727814990996283166379683523197543680078520407079220253315597286058670864648955734799587100583130506946611280795821611556463693715934545542073852264061733543595495631416815924677961186118922535225070383052577686836631578483238257178299021489224456840164545213468281788126882926023059686643672489399430652801697786109085015369929375492138583876019096424828744821769601196134892230250793373696664783433911757912904916996765067273871887234038021492138520210341123690173493687114351338156798005234893491365992755334633181184625554375820936285671816747527496233077636046934601817994214138886084246249802487228554097550994795093520485981266792994738662505045877277458830328562683345723574444793870568819303525024024677279474749582780532376943884803525601022650675166901904824388777224349166872489597758794978398405685721692420620953820242128031878644192235182184488535369955837042095462085133746334505768166573644308693567981274875142061952118878942273299747536238916343162596041173099410583982548383447553461343722768783818050609093320003364077008674762195869023920196794757542780499779573009871202215946869120956559511105717107285491437125420110548916217998761056288541728763816214038658869443102639098367893307763112038429822256412164880243197513321316365165177592882131714045723612266456290761062299905224414170274021595006658385292073006074439548216953152157488896762203065382902233824765324560466410940062906286102808580984058243669165066460747758070590548438812917794488663673330777141359982757089980917910661673593910072374737748600747494449420643317550009380309320303252616375420451398991737437110115621248946398705939166889281718157232908253657470780224541348021796809215673006760512926266141564491876033021056363897796083583857174137282896049993897355920529030395048092989850714580358514233302496302886803479815337278751026143615729764406371396859816093394068174858971422338791544533631750456867032005605163345012554850119580048065477910136466642906477533911806387251135699972185478655277982100752962610913007381502118783970420840239757278898712701815462453446404101510804100661719757761629914683043466546320591314539754192631496722024568038863157490413578515859649438056681709347107966589545676872147629876730328750310170277724512970941607326610085008341574538419890307421949651830938022034679574256169631461376576979146869400519581478493014324576136498362564037509108996299465798292257057108150956871594202086147916045545317818609689986210041914795145905686709059624392241802932402426795913038470270235104262177503928664719739565814105222075563644856983031051072967385085615193509122623431085602999550096357608932153681419880703807725931184341379762046416451838668749193433738138049221057670214052782595387307608907005476132524792480199613437280101978613759956538843774566774025374817852449506886006584283049562224646031148592122722601991473742977396108018817716135132716594374200212428690124272304982991054641558561629684359892426461870953776459029371062056841333316663594181352133934765062990624888986342667356318626368703896406226497681170609182291639238350674454369659176453029861139255526117957200723388361751823660735316749731660390865287349303617817883125217203494874378457955812696524173743894106079801813962878842066186142691316492580829256820515498900612250183433780279984849692576920560805794551973049147516432733579380279461746593392074427110845905455541129243390953939874002988744323040107931591025117086311665001715360877872199047978437751802764947173411020036860042691894123433589107737949964084282828322672319909001577387301162086113529587911978202312455434966647104287720384180758493589689675077555791230673186577982242740007273049658631141810309231845193570931682423585909138669077915237918886818448588781077948728420459959855370192137202516397124711313483741823724237238825522954800671040003770790959028607148332071537099941801265741186580135652607271564784587603350457185762861398708316909852989552265195264397152293481541827726197863113762280537317588109783080354123096144384399031937694224403654206769904772558085139736876676402556191481427751635023993856675305916821990038431733104676420865840226066771859565978153735519936564906717493019754934369689974466759410453141248057447268789312240855811787487414563305992818833865558497640377176977866764488121146759214162045076424092480717896887052004958445198948666897702603193588909685574097805484044633774726765501342944200645836381974036897848273875169126129276424753742091761317971929203858421831209128203499488824946711823009717645945697789237605516971884189639607055931389991180541542894923292233936516890282088200637825404793566424037551908335086106577609624278295571317365359751752988385106878373815712029539735497558398012143761431718839993706044096635521347294137695042775403896005843033720688426546270103637152246449663842154747095451007749489224023628356442763901204358224567446998680672945200488484955799751068944569234766078730479894519566824846437362914927102450696305056898808550368794212939776329593190041986351290391417703026507103717421159958299849597745938933582978491476258039894379451504221122453266061399348785320691029289500586946332149822519265999698041980589966032280847754364877019638785862771138475669041554812794190035468908606032129980021388294323764203911140485490711087439455083467370049185538827536937529283652612820429493062033712083501120340024035236458722155647640652347578933946864966327093566673046650128089941183686396009571165242079685665034808455086349018591436384065661584253524925794731628106811593784993126790783158787734442221720834031814196127678977959182239685341031219537627025848891697670142383367157925141960640825621210261980795383044514439569862485532879765417321907834601804679229577464890473108456334847249622791950771868359015770171272559970558303780022278726963280505576520318336334224622716839425622352260814557284123544841715905459932537862821013696622931218825177323150664090295613634792462199117715291934198866536360247355930161422736808075555618971084270522753654013171933440059123040673680642822937443505765506229970381805387955159527446840257621328833398566553433905902378065813662181296418415321495947280820073058136010222958769922461886070621826007574837003301215872203724365259153190255430207308663892177306121268992614713040702462902948185993021838929981184860903977269554441662313343377261651689814984601304782489450919147467452128599103547326634399229931580831977340522376687647698223678405137105192171610160469653372681521371055325000163358206897278765072882052860244527088905118236322896196168326819606056792813701185695333067129164955370776650023440896140426473852523071405573089455402918247712675136080081852318209220326544281734158784274443570042072209381794272723280388231168191806911063182118042594070790950617208206623979463411601040657171250412590407890008147697264691678073556487387513073995224510545586484726443192092727948618418787762796104029033597984963086914532116929708344084589012308969164704237518694486815363995396419556919164672657400040129669657076024657428111737680833378637758146031649568581716034173535172395120921267013554803532343692171968409207559211955678382263030189176568834271668979221095200290397391465567530551561785938207354221955553604371323943515865553157610121563127348663079801969805240871074006648656401106691892989770934717600977570168570871659961834457212796664053622016386570507811904185778143027214296499086969828405703115098456105382648399854596108295663038112035449370473020916153071434747838397617586327712154529160172262264786422258176903745397415890542317921578433555789085866565651717572835477731511001265110931482821478056343622520913307898542105055544301013619740791642775692129579925401152075331057272085762260864092850971440805359132763313535257076755696388886039078836401644273849371044053118126572436282267163779639352080938148833263403924983681824531133028317588850724377751245750934578742097735613571061708490624809118211939474221412810169829981690958724030746933544191832993870811326280208499542886329645455081021834179678424562957079730609371745797988356846354447481254836290174512968329070145138476371729153907951537496642225670310111412489799658042523755123240863754860178641106829658927829790134610693261556468986057505058908140292159641156298538646416310652018868850591570234466790091002881211473789532430249173941515489653280011214184131497598693397172210618301865630701349193393448421295970901410724355303016369041551652853178830863895289841449857378266487374650384430337344005724772309394357617937978195121140313651468107806988901319465877049566451120052668898746909605591191896975933301111153987494255786813362196007991216591965287665783507257342067583249624455751091374974261459031614647138470659721132834733637659794388054114124043696702291866009197125045513945980413448241308771076684377364362503450102289983891328734515920260986160693303812198496989073119300342034961432313392330026874327261588267318113670758668750913385971214309591561183815031833347366649700614470593485537869184464426034953831482416775436395392612070333619605983927932209241949282536102065573690363094150413425596246379417947897304703745153209405397324564579332417676654422401769956399402868807607697950196312381141348954884099178400250098089659042277590392676504178323313542159978253732217447876461661560641193472489977494621805070717825620898400650695964518699035630631951391843931724317971920178295322386940004040357569681092486020155614149245906646949437962765062249861056917953168668443498979533762104547154890432788809398715552989859756520132312716144726555628678905280331829602649310131142599570249268407035898206071199301441156471303510138694872683503310048070979252444860539693602044065183109463029590460021389131922299209645996894166934071994397982558768361969838155652379774087663105876730362717500785382495379659655343583480886689538563506458119684189062677052134140730027566726462582453821441987421480239379024894777615537752881319878658024421040924548543093745605308982057104996038858843409126632130034145021976314785429812450168654494198005335776307270334712987825869657953201892038492895900516425098730242009687285468021265199346209270393961001991321951592356013302199073435323930663736296318612892535186160153120825541505784605182355899022948729533108883075249315280764416145817499532701374450271298601441310144911287110013555268676327628063827176736611608736714701787644931650013534378412222279143766420070181562921711669013904489570354463138310927405227096384138015327686126011863408060471178695555318965539071199136488194941537411552543541950420875708849700553666446928238125654212777481058577879443880661156442664402879995350944415297747426898416793089500514431532349503024953307291662193200645207958389076366485102315783284274471094634786359983321478745014742169394599370560233915401989030354830607095336761968280981556289831619718463391854246995714756031880307774295729574716840255288168758898202215791613471832630410827704830179061064032809094383889520456854871488501450763605625632887633657219021918075715788380843103498307714849698341691014591086987290034058933133289499908157607139285774079275214487669100368011383392227132165138846565447177311543296056995522213732770123211894509726083595372467798634270531688880954448390370860628204594239969194953482330927326317564055915065699339492496758215121705868339812179477636285819695477572579328340039179167215928022481418336953761571422678715376747219344474656608451936528685784980635701234827734224206620578916407138655464595194911262105765243836897725217250155485284643666380727545849247589986771663853747673322608906420836206086703751476958142515522561584431886994309064151518653803092470778459349389894950510899359667905967434143905142135317788143761243636293211509721631613519476846271406906101922884494254885455095416373554294987992806107262385316843689343093765990170758408888536312280912820435007078490924523119280837947637795304461493454203966828229633808689225305237635290997235676538741817537534409571410388529120307972225735481694917391961862148592530911619757777637376605160307370544086913646593330656920373215026386630040544519565392599653176811732346616279186059189727706006031682227036859323804203938260339286065334920021242063377580711182343566990002135430255558415733701596273873477576660268292522309912719450511360206734589181266154796743608019419839141618608327237329544818887413962277439568412184044218190036363409493573743538169369906064356081043928135638075386282191563786787818064597182092405407886647995719947281517379282322912448419973068760264899417122367417653944155811608808840223972055767984049709687291280654382047801576781986574342932432640644596837197385438819068118046281497157872029926961562053592560521311647952301095259204293386250665847971733850435344573016119628076134972677824858314377533110805531323461331162486247113587918608892769629535069696619235153028288626723950325395331246692512209803335245743063729504736387943969625336104634228402535921188304194046829663578377639807825844498960027380832554961198506929503566195627110988412967834730972718093540373614414213565643740326044002983976063283279818310700603305287852276020080118919381914382849870810384708092694003431144736615750644819913876707756768518554143018016420285451891444910524158311968417125043031892570123577695555395138161653939456906544420735757156071510379845067382647597745536336458274110067082796400552966373381768787460198986299716974869509032174272771655177490865252809498956020484108378681302932131554933390780005624246341270108698488416794064295266060933768365089271158688882073397758388703448607652594370964146775225425014122688981313697658566350702810066285389890600035385626599490475408458294813821841937321841519151836918065701325851795260033608232774856758012459476592617182903788767337322549347093275217785858818648669363717792602822643149212329183285818101214418795175346628083521549447698838286393121694653719431191622681191552991062243615003138267349187561232346862769991195989207387183228510745495391011247868396467691869992865863225641440470449549393786150512413816935283836135289029781303490655129849762585656114329066524513988586947749304618434148414588851224188953296872884976823191888021662082738924342499145934396682901758478285101242602554027967356244781421240087411195118359062163370444651763179561416742947610436658799749475196096725721628317456857045586098434390032185027582330719027221424851135690623149437402664591459419905440465721139978111516061336089832801530991231770970345309933754011677813990013249980021604110246748424370528048375900685118676937558981034028588039685269375973275079269305842609436127227561233028663288848149191987421777908076206908061010578517855870991204634508235062319396219528769365489379811821352960558649597373055671341253823210308192526042080734432068887439874974222609906575657534589100724228282537386433649840469221385014320209481489890749149943756977598398944880282739202657766054261675703907518106173348637780412728097534229047173090273351120166003484684621814098083254361451129737601796766897766234848486870207107712095706574292172369498787506665555553843794083713071012485363934275908501394938293334028011081770247126738913412215595988783159038090545090726864570396194328897647409514155991119224400526937685698000797905631414890138293405931878073925567791139062902766418056707341693168370779171894828765851243181365193719210549905994907977879971685411933534980279942511143258259506000123504424576139698388988144165533442882930846696226440116975030078091383007419328423083379074277419423122553392220076227862628454998594498864404825123828145275991023295466204321029978275566683204548504008354728894398219343905232147281066882015227892485589655473784223588636462911886133930947395103624875071977453869242861703217986657233698835429330893029457750146519006442067078347167686716660726102162421891442686667689928401133704173189035536302665743901749379530085269801811140859850847949476422172650916780198863351905993109912130119970369663129390702185081121199435853479836322378326877788076480239785038792707604163163688119514638391016581043406865696327877514627854085310721522912539113185274012941595073392568227988088417109822099208758995484129219235180579242842176970674178508113455132870661132635576957775171732738494764155109453324221528739385732779749939599377709321778322949128317227410903540203031171253722965293141962128781446973685803695715340447043627029824343648548146342418207737689960666244516167870208035399529340754624361321391241168935392152349775314122148711755774570725572669387545572085117227161483204382568082632828153367350234110405861198204132231011997622312583723946872404916588857682189157483920825343940634201024641736432044793903205846876394966554842473378936662895071787438686597273361787040468019924675339997938362260645791000602103170043622052768520741973739477786086370801928205290389703110532428561054837100573616423607412264443638630180218406547100667398314778126836588442142594074389852975374197046914847246671772481437617213689341772939679454207260365132623057714112324878381120983442841242044378042725224832446532944361454568994265515607030654984968237752861601890560549823801876205936328472418075581022097230856659509400885087393948534838751330725719630415875924970421851870167168918114356228447244154142097263729450757865174139092483245193192761321192187436823087649456511724347854690150182964205070526615168651618975197468618288651664282069855604051606517313910015455707956322580181337190115863521018194834817784441157308805056063416545341079475661896772886525929090228838586968313284408408799568926298058468825309680281731069919330234555890257296602208668420507653864771788083270539893375411931542162106837432177484879042003389432045056709312441990662094001515544756045916948858043132562026315711325332660708829588359350348326912885766952581729919131905004197767422602743876708871594869676316102451472138810706775480987450680236098894196104313353920423725833312051423715289584019022826939783559350479142767209254815901812266104019300853160019967923453149247118257440165803816836668208578243294154816931652639681524943276842051867569467626256752699620097570754458039571152309332377733419122368164648055781894853017166073409396025764364346545310235137843291310488474321828770733362856230712518519493072685932413807084338269800374398120012738041498449949170049864550969011823856271606685172051931688073448141174777997857590292685911592633874088105172222112257564625200642367309105924938078695387724686328885985723020993066693544573057460996167440426893863111909603854523786619550759082689895069693854050814828634634887887009248960126150872202987412015565590494691746471168866082288292561425973116568966931007852075778402783177051399145469940782279835041905226375810312895583548033454816633782772191872100577165142372421412814604165519234500318063445038931746225402828356767314015948381558061648440735898389733190021209372142908359425197696668210670491581966329744729861856031736521355684614197410491758210850961938023157882357636511058687944984680233307870775436591452403730788577957093749735721662528438414979407711344464883009148912760207495614445337888741495218025661173248361206729614610829569676208002206685652553187594704815124699077915543669614258171057723659487457275496589816938768033808619099406364561756507558801418100747769408428566014646303392225370796869309442886169965397861452691237282487241471834952567266703562988936425127446258044809986158661686023702405022707268317494911726544923145528821364548646156720281062715177894666195134584396290427928033406065223331734941726467789923065771613105580645214244955828905838206730871627944475963561546838721799186458894216036530393735155412698613163891323633312873983698692724352844032067205678236923121187015538987814523069555229086083698392835222115354827362025289173284773981315723704549653938907219211035071398766680433991404146868022110241798218035872855109815013197536334734685686762044789760664284344459133703868227657274014762308531728371552391856225496850319646296606950104485531617007051309007057457982799389047370864713967465926878904455891658490490853091859425072725293063060957489390778727246246853829031630741614763148187321958327257759010913134248120722224511700722767233982887224740700814808990863844197001905571769777458454334494985658409328263043568104607139969404746046531943882614209481303298154599280041735113863809000004712527729154200126516661905995760936413999944730474921406202958873311077791570237533370662687891351959865819331990429360818785977012142254296459698723893914269078719045846254411330626260699363995939816310407395525820121107278104293875698821853960575606340228604064516031214557544473037237511587966551014524207696829604685136408993817504428355559953039910334708698819089836223399301829822928309803812872377703914136721455500251867755905951992298656507691176210457091052483554735694134854245959955409418537759801417764229732345102181926125337437265229721039076236336104555049921205004258909509892430484248916889276293901875133178570633940711934993321911803937438045331919294352040515883534182069164602780322456520743515204498825785091000253552908704116868486758924555833154850274642053690464398015638917914039832593211410894796772270492366963573000794771119206943914479942611550246739873632366094415568467110234949001513618255550211952375044966671477717357951832240332890144596315863861195465344388988905717931640639426400291579913942133041274629670708483845115173921463156599678281875194240474749701800579497881354513617608475865590407350406076031598047831187852900610232415132094786652280110174817985847915893030975586273034229824867381323893835423152072251267035261001947114009347717152817012728217762332429872005303451747521030828308030529640218611535847556360935515848188050920585069838126136894568642071513917615788006253151755190809546231763731635167389742255431688814886542742898393869658343667533881700728225111598918497791897178841703163526643400310537403650972940549257949379819738432595547874723735952610067669070336547176619956162618925562529988287006563967654678938073786924565214985134284303546763240757352091662415670525235957332894235231251121776687774290827250460048127743756554366960576601859037267050383147047745355570498540656021573351208035238436836945093788043934749990740421514638615162734427787268981653676484915010596536581783348092949467256277626376431257449761314975927943548369169857051535813342972189998397829474388873511448562199460913068393497692911929207055732885857902554958002530914647957060984810675201697373686845496932865156305317926172643936846336035864467433748961424355527003318952301944545208000322617674865509522950977221815385325461131805477778858422872929525031420734534630461291141105681674594616816791980944963334901074933230534601437681725861246024156308548994996256983282994638576126824320873538022993239379141408807560175752213018070457248780825078486391332852348892152260741127922664575563798474698366320838699350493680022261514485292433187176152108482391636058962099768876321229028898556714741520316486802101408258427947008905283796639145146573647304992079929939194827616128522352625376845610552487638316556474264457637825985376957373584911943548974322964876899100780065313130647214364856924587928128438962994879489203608526339620147083170547702951815868038656160044267057605392983277935125298426078899079313195294919778456002545227428398568814644867445200620066086342127508631094477355360473215135694425387319523670831748395739604474357016692175820533509534964669415195502551750851880534074940358420224101493818855003069580260764097212553271320559321445271552383918114653336783160388290736589228660125130150533508091213503531403350630675639575634389135619819462658910865266107881152072790525909767895952004871396448477444969819092310752730936625640249524427669879517505393733160486893177774563636099788301824907617847938873587423893762836156151999326494415252837499961945804144155529968282444637238036823688275134654510310788616717572301171385595555196155210602360292958924102562017983902754036280394746794791988338387041242619784530840192201405169149826642848041010076598215065936806646842905752578464357286192257416042562592241571955015585997826961975387933997087750782706898970765638964055319901594776772807770624422897633454190943840035400046533155572489030185997010889405962947307138728460145037754243165892609936391631399563845823796633475122405936055126685780321617623599769322415848773975242901689452521108376587907677727687950144244671495274166390195889404636023222006034217818644631038654323924236739731479264695730592201794071951592776604546296528632857328736142728911190770992257215865413708592702365814746979431638919183599957153995368288826361819670536305136915066958118643585977005029408343002966344587640628066224547407344640925457194572188388087685469804679444787731188966511505442408180860869266249282807903267309871765900000962082581126333355863735640625698999844220291506130198522322696761853278491023397649298334747867499035531097720286084165628825704085038931535696467511959892227873662411744343473404943232472446831543671576267774499013474050486581067040439608035908267768441242906573879990199398526110840450848694992176976503689153758889879329657144237019489708152133014619020240738402040082370096933421192762266548689228826628962595632831676113642824261586362219174597656998517678889047646372332877557726146663018728552105134251013658363078404478147512805238093810759851400868844317471302654878799080235573951371664401411942149763149712272087550276150421976913233672064100405315768278504420176110257381502352647473395151741589608587380050934976741864648356123989703649434297897837595733725817269261872194549691665687513575841502958264233461636327179200770422963748508821880419099499556708820701762313686145407688482317736937151946594419264262839590245616850150116172467361472186867498341487805363439107028403868911962016987645036432750514194991317051787007947290273850968213703051762499374159378136324255862891076938584604432620682527793100729273399154813658388797792854554456742311447919349373236794414192440728281273156576733074048657374098056205430726103952632337767957445530975201269304639813375817681598090782614103264010012618913871139242395287903721143625525689110978231300249581777540520383048830280246734451892265122945847712655072135578199307481774813118073961883115503520179295128977437024114811012994119019265626411347535563834730474608347169690625534607722521985826972743707813209504551525866814766214757247011986982002699226285519925520110589700626864848520833483542179438595353114917422297929383865071508244991477532203652542944252782379993204918886065209096262509817705239214981090862561967198002216187172049844370091015791211091690181632059995220081666859411217821828911607192497068656625134146066058252788035994920269434316837796330926307405268329510995895035989538026176275685064650999821994758731434583940219005866328915278661374635907130336546663905638300284693202860871100476836502644086208614210795524790399324926101391221945450719553223858468459756301023247218191407404516551600876401512598151078986586201989179506820342675029315941328241181412262427741390579718945226816933238570307445034533707144956766184207409356073918453631189841649242310266565421849707449992747155327449526633444288133857186699696842363769894852144482382368101055083535409524794606084082157366675143120376670013901312491092534255291788142556151575093690989305879337616243773568973749852765980252188016163452673593623998931980743002618300390494207458453338669362670422050808961348334474300909627114482324631913847671156767885557347883658066188392363549361396435853808674358459176607566208077687451076053990091096983049424323431310251871447610502834313151366366051763786956928942297029254828152172949035247313357251776592580252374135829593422046156103739892087778457953174725450175693556533214227914224895532651040359534594721064437531596763902007216280582131249569384674462979364603746615838695456985669530514582579201433636641191610879991898183131342307234609829974479597299115636714614347181003751057852231802274045485698998262066155453659049354113398133938212596366814180414913320694981109677700977232110557061974224100496473848227251086179506010294448214292104537666369540344408718024039403824072164725234382114655429028456132705104763770203117537524952142202710366617365073237218305684376114681603207969894785551933152244606943591528471683380466384235438375918777086182752935750165679241429708257809964939184598155988371685283874730575785716689515829623535730942119507240955291334126097885508019937719416348098275130933021772858274999767286398126367928621359687091346335269199912986334837696890424632665376020572880524963451893858828439306196133973242260796198484138248975015928474340486426120178213189703815179067548788776142955190701623324534448389860315464586827404841571311117908166435628491139523020363119594010159535766260527910280470650406261289010349776987411847324302831123408382141341659438410069171558178660372386630736691003517239524046175146046433490209702500541613320477738522460688402286021907176572268357262543639628009155256318704201369642860319411586358249752276687936742921790852980111357855097044345096275778875014941751087709493585806788258555092250066067781298208078424609018905318876433072137929924091489155549803639191637274016908135266988988885426273668428420341139981555599819997244718775060056355988146406538874465466091112674104931783900384550001064407940070788747743138744414424441856924453081069168719828506949525554402236053378703905243242442379772865528857652020594884951335577937470198193537406730541586515296989330216508577651727285835657693702925165871503616244837554119314458273339050699984850889379447576600085608108811830677361918009425124751376405152499893477380899303750921141468529806237980861010957829804287541561398153948082397769035397444228400781826379643145717099451409072100893772934524739943403182388622617453017622210825942534512922280376427648444875645821648776937842767738985871650328648799575174069964041128545753888703583377518431247118226868122695858274871800592031664645121672468928234449297616140522136720259129834304959110833712655465001297601554016124650866417970486476091888437596070469010216429172842405190613526927069494716307093408248028554468305603976094253681976078453848217013215026956791442117841808954211510159054890289816624940688681361485543567100615777607039506091188969838015325704030332873233856367303565741479294004525032497372209354940751979234840059240202055794774853685031439379807423349115439841247349585278458044573570175035180511059859206129117998773761875509347798103186208790878323191586420009753567821269332543425180928861044505586212770348046364213695667399992677602905548000911749973809377676315432988653804626834306510774571501610711564939087106781967488387254929499512577197376946126775036557800426974255822861472552212990472024500614680377087433616033450221057891326619773529282818603974796457041696695725106576142450808934886465427761946318830472066027867851464454869436340727381533483160310760007292386909878469741169840701878552956811093296903560861472774619162812659967455588688847675637799902717436456369429760201839083921463827953542672118270360805809396758314043507968680426330161320589561545449343574880967785387712796296510654827447921227793039176020671999727869294284230550655607900388731079370419862081860144119561522572603068630604759233882510288996945951363087521002746768997586282456073885050231377669501638494965714705853528800822399018493639822790305453685724120091652796476519388426588989855252204293159545117950577233769480206938478065779461135893747569210637464254648734649009486415877249442167973915624709493291989279007042596031037310617597633077141557640355551775857651923823760984389006134574228105422208315240963935210751196984356991912906138701938702139269564129136519040385522763252161193796623499261283199484771080353208663133685998454755559263264124646894015451630090810361440483468928208322410625756159431784292814769544638349071477631570029233689813484186373674808434469250803420605778797107463370658944985592542368216093593707428358184543347193427681546361367845836357313636640396679726076709347196861258149628957733578038829289822151499101928975656401613193477023329728411054049645335265072762087626753136614841201835744544717830535896618700011281257180926207067422892125490063105946543763996264394405495971276377420386975660687299386240729958630090954681514873258880865814671809738783723880814784672612856602293053530095990229704204301323390766632299010910346216052097540400412341638006318672197540749719123795474966826019638747353103239894633176307247026219646377323262434500349139829188649192503972664802274185530837520119762328130166754894439661570782981759790557015465543923251240916058743225457132491578380223556836185987041647065453879105622582341209620824338773149344725296380094376239482230440725114107717730828197174448834764942125354697158073237000686717675483042076199504039277944976818586754448467388573468359000389523038340623060761540062640982253811066676371270308147735648374732103993036338337001813089636781666026191227690883688359554603760253731887918885241101160296246880930051588138105628428665101285542894806130745433059366357683383808947734333491388750714464899754956120844451563943831289874975629105706668538980508471248709688065995850659667979923503604177562552903787248870933242025297255427417817078155263077345763530481885138374782377428023075516803762445838077887312395472188660810555435165157770345278287283784291852577357902143902983730616265410529995686515996165869226271197554662507782644189967832181731328580178864900277828778569393275565116406192361343353797662806304312520691252113650740379532836413544465439491656225603553594583755397462663603073985647283943218683427878708256655295517033762604510697584668012892256790027357253002873043937798995119575459600636792013383558652139829277772248742701589252631265225517168784706347108712355282248038754042746504652844446211028272344273074165447816119993439956527082103667095883295041386405950695779917671440687157330184052555312878639969332004544217652152381864984013465543799692044646429289030699603299124669501246659708871505015149706527400938704953158688373226689830241784627422334474332735050002960951092744031561170682544402801778602142951099657152692914519665939949342055285395613639324226289852494115055725562139975221042239235682488459888499952757789243784086313916814884731342579086154904403243440930609011394584842458683979216015338607938456017946203021687628672063825890901702551915735421446385523620455361192344112563113151031016443517718691676081683603440955735843514922362242490764515306878877365861653235457272987029518488045513834522748518590283190573217531265413047310737885627471299053272090282149709309079857891381334230533602275942892328328002518129478075890154864671440072634304728044680997443459551668323533473189757218153198911337096484766565701245450460363417291564091819577013225080654638962326042982128311130475984373619904784451531546321140856734413518636892118654429657390978170441275595257670396511338566342369876203912316165162876032320574363252180938223525052736101169195858407168660392147638390999869905345965948811257402503939048643703629938777472687010306281101094179125126256001674963876882318743324557098178217802777962028831550887930943717888338759068404152362342647391602695628879389516530747632821019119401721899044989866751788425659472526032405351610409665541113977742095838256472000634600401971979719321724752279933555837457983673619586072394249471537995225890955193194197689422901578948708790750191664995342764074700432847570945878798100208007424746683181701311322522697056910029756267873619256380820444743909729236948000684626502596225699382893954366507629851293559277117748470224192864729252216299882636427694661064096769843769489414837641038618018783509291634198599861981916567328832423403778922971295598025750784751102294139330800421402168358192287268764339823419672164484811738896023129722276661763132892856696413427445010923601870119544554961430545377981765363556394505115291601962431029730192183102957381719957877982308751048044448393188939187532943042599346643798244303094388841444094426283141357224049801151537818315294072941488278140587874146842097252817509305371679571598650790220440060621879232332049621284698359309107420489546076967967214463209658201251397853523417829201946387402528547413986953997566962206675499852724899373192546349589168010624886109054813388070639431224854972294915799644235721470258764909615870723892964544372807303899543862441270924919909617970417607812523860279735606838821579595136754857983152065309560039248464931224244536700326715950991359163810235215114866138382501406918748159286861391672294524077538752914168571200333780435406826398475177553994343468148711891460731202417551739183739986820079062548619727315545572578961653741902632846312228715158754216609225118336608977091830876929149468348801985453173659119809056303329342608276339219943108403469725181758433423807197687835732962663071558180817300320221542107219404886726995733777612079748945571763556500328182310605166028346639578695894110827680248718929239498856821444923183929094856752597193090115950745091368857792670239936674370274339947474380822354559946813991127776358554468194550823579299148923275781164443569539301933408175567925589686222932051755141894246246886376653642367109458824772382321387110185157814477309985837410517270239152434910166848174422866849151941613489531038121620300331786269585252694816315654010548957097227162081076075459210936938249827092588833788815913203639180795755789749777621837578471813204540155185158957422759216899371429963929427286821563378060734547425059105475228740372882629659074700774288695247709716152002729139872937835631171269122959339407275340969888639924524199881517345683999933403502168648803291637473257731988161878825675869829220358816908691188727907064056412719544862922709574942819812607063972662888135352672243347489974595401630528411591634772280044669092597749567917113751399243496472644566283355585445136955751390081080404355819197538933629113930029269928647906321106744575211082299959041074412815546493482378025367731994642376127275180314582808601670815235487628968892408294301742588437790202111746708271850207125104946262361720151354918755081942776822915238747068086245789293420133854729618631004430313355545766628052752472026915222057158938778787193584691849935560920617160141508999248853446590084172216692044787020547537343842958059957799411807971650128053149371546328360299794449124604850413147478678877452876292587636915179447282807548661926442525627896184032222435538734330409873825876359089522297457641965306748008024813845719609217239114260005515685079299196561530447758103998757840557554828413210398937136257284024208605651983804816612288693614223558358463297570134802048243704403353059407186458383269436140621290973868456138784627592676580163427607381073883651183556753246481170310755319063041961187999155435985714120219173422527652175957980066919242849605634151357169978467845419499479984200825009395041952534028772593352058285368569118405990527597516923077046824756069905370256270311109760748774287884427945885631258217636362335499638183805315221831684635180368477039909298695896179752403505207056856242439379360741609337399421383575403149724144985683563694389726748671228718447706966730293266874844858956951194864457131749730696703649812644501544578181745455318892555470660162931285699000221619432537439597233092836513038298660206308791492858097526602150343242491028896096985103031664513563174338865268641497884144300376602838455194150193164026805361222762860667370236585737440728639965744070666436622144310327156358392298508668250452455572932788688814454217419920885554460238371587551393359629550484721038579989709561199304996230719244628027062316211558947907029050742027736897702944321875009849975495931052829283262361310891056521473299990788356548252535734848385497272864640304175428780385849920196003202141307335049378741518958842898178245573592570329539061032475557578884996907150207601092277246313797493838919977840732679055396547683013877967898907677136536742734139153287894729954109567641699283498525869305800484972895515748633833102977709500599968488892368732956395101839984424184925956811343951144430574266434009659944320760775013280222089424462919238239120571047092196155022934123537083319687649986259399236692696994713720721855992414974359719983361433937904497699817232149185973522059718132475916553849383323400642179195374817079578791276403477697799914132509604311268965310591918419503558698114481549342403984716732608869923340072796908507010076351061434547088072537250683595547454693471423219256683270888297368633764599258373545596457464582777961551089207904547292873482380675671451171460700326089608603330655459200135912175056658828773973753271955277429178146502260605983968006401054101642516598977242170449878237587941379645621633683946483716086402326987128460835091821021953901510850622113817362344138642875397584652206283009825722302605383544118644589544930731301692435072716282923671817198856406379347913235219024065162564980538387830438000075355112860140503355824306605923353160768110026065999560037726138485429151107702101335061941925034886765175309213266264510998560627669319684211409476232381135056802385171025105173713276836366300698679841996279747205317049508000594275268068066434014104374479163425927242577728734319513225499154968912829251766193646609899548165627052828462085467057364082411551063102152504863136576843456746527707542904876076593751661218847585962822992290966712653293128504093025681032622328684294006017475733818329431537344381256395826607232273431949043915979261483344905745914000281106543757211135212395836004885219589176328648583700736114312196433079226999057283186907077985003599810592526358086153324911296182657728507599654920278863284927681223801129472600134305566083661966785848174672565525803182004685549247152934891083219320509596424837026785599305876029389677319930543120752328952531906354307260984738567447893387666519567339957991530893887209955616015478850671681367284645070241113995970286185007209170018670975451057434263075596185618327393257306917750647282527838194908894462510468649369040172160157535848574759128067007169626906992923711202788264693830601379552745761343983094135374387717862350105318806641242032932718614604382881009704356025619452228857275556654547543781146826036822176936503972417303819032187907309578003077202728058697748386303598689819754399046299130137427773438614198158639152315971416908664983048338642699025777024861964404423479011841106627703211032224467847761896997580467834567424178486084939925155439281463586212955767107475069483398816120285293591682405473123629717895796655413072090088655781989884966486244895984723701335557821025269543601791764748397079785907345159763751718309479554242929000124762257239815711005359328321261877225455783380921100215735736483539508725617253422968606518477576408193854570368201138168611290504710665262276034601316864321230694277994664841068550769501662537835552132285264281496990219806094416490990335036557743450436290791713816454125369374154391799906438942892930682878819298822439542871407671224099737434424481679300336336290568438949230743347208883146588509786273858531745939962448129774515279481967970665304141772662559920042021267130871912565287395752267736031561029989432854980764616594099883941749603333458070340654527210106774105554941636011061845421291077783344066489248916859275105782423348873595348590154441190572728249721659535712330065784505048666600510900593884550945267585722742354298025231959288302375603349658839895915217469993477122642121892764336843632349340835276038382238908635479300619061849002490655761037521025825352414094994493250388741965221084180162071085493411980403594176702343335756001673636089853899240558246388252518818241433918118754787427224949558127262960527402929677039448625897451212023404330671864670553142843153199077360381542754767732017920910660105126569950981205449370912755975527840935181581003198426376462353384468217816609842447635224172699028827676921946696172029756110037132891170940890663004769494253389471850302304366789308101105892863903069116330141569811161866502820100346732321221029781408377009548840421163110594100944957410990941498541999784925381217972365619660504789880312164812216477353053027189899718662639927782183016385590267204477859923965457450500617274683477816389491059276384109774321562468671463258895323675906983609985695271067202676501069890314210915503358917569592974622875097982863246120915364278512529586951630893269062633402490471583693684273447264225589016452821460996480795878226533732336027940044282543260364349179766198717692522441057615031079082985673455342767052030136532585028473986716794561514644045480418064437725898406137838646947739691309444915427358842004143302550114446083014545268370305014024844745267762472931540028790452244038261155514812255899523955718300431623576166158864500185661910891353896460520911862997659198762868528662103330775490649375165960650015619343774077007868458596390670369632319554460423272484760686150290707461938008952281517408435399831568892943757402866916406762957050630962122021518915800441135708903347937114236776629325770576833376216201850209852499681088142701350066220989528032741321100512444861267226697243544256451020808432718993617871029191680123327232342781816804769685803606624088360260800151630895765660634710375173518406702289858025039266257787971611159593223811374356151399204834208465249100841117884675067380436525886729124006255356166961979161346391508890547635450634615242795841164276093212060121834198581639712894613258621649338297837184919973533282521164801031601162214096157436477471888670075467230168429556425068958457526816619589451699633718315516273855498054557149499451888325564101128625487069947537960303799859733197534614408191560224343585558318916804762659507192936269823248051024879884071384152227304915698861733114547507649655476947759298328456704988853954050430748456058901772998156009580192765844491181420768842609066078624800045318262772644913717600112186146957685920247679236236016020492883664417629512678874289556590197750527830831103020415737821322177639892443203978528272478551836388158655862295821590774341192395125889687875151004029995204613630257655599041380694886898726035007012462606854222432320971192066889534797657602948047045494799406463626563877516923289048231117919571344100747194287774527847806341997130047317081555353858143244660003152084616346119897830170719206200551968810664141617707794777682775462733793547193187231441267523758651544627317746700541440894170769285901851878723356340505664192132140226271001331334761015129925756134151156223309910809894903654630028388938575133592688251252251572119588409643927183675740922395713874334533330733981475951855468510962038308303440684048482162717778697858936438157669076812168182420209425194371218872130611915326665406162824454291818039684930582544673039025522063043429977889025714868369949511576105636687961755935375611857230772615801693319058247642712873991200939281248080818405006115721593573167555317047236566825519664440399046213743179204353213623665060826381183749154312666764236709061465632200269960910082028681792784602718200048818529064194159377830128689475589067706289842822966313241618308205630322037156654330367062334665146012791925143650436900887985607440100779032374031398963979195125681663253079130448310636286097915685832096375461588340931070752526731362009902180737450782130978062059001866396440845060621664731795839987100707688492883041971232685742482329841497359740197487871809553681163486833601324562170534328935652456093895213280221203796142964387375607361148319970734488370466386023821721161932619044922734955672285130560267416871552057968708077549102361642956574862591511329786936725444550161574071895355059598561792866109010852336802628937495116364752894785677296985423350455682472210061269495426583948171599881893791296486331127903627421856178787966065404614798409735543686753453844500775330612090127790649986253661291651105310894163066601552012304877826641441323886565580568275098633435987634709347910651054856386582981273131092673034707411175575935503697341720213709339580420166679803871110649063359034338910752957747775792199975255745114598682060363758726783801498026101106682834893336910468057851976921937057194288799073002782022430674175414072542869772384854211646744774322467976742692568537884312862693852857340942223700596249656512298172198020552602726268244096901721573708495271400028543497348682923713980348867095823087790692074230644447708330597460796971308391700618804010580651109308581235682514031812124997247889272746654957405667336116314205796998153201712323719824341604896514368990947996032171526504394649763349322032912173900670987347580615115208690951814575510072498892103086393324211757723231753705785446825700250920525855217166772885514313479778578910870270985182123574831941445716667919268664842452660078601481598736219709181133169334238072085366848232651749241365825413148490886120418703324289271954118315304304623472982919597055327520694390792455397788602806161690271793832281168047490099481413696801017182223759055275974118125889067715254413528309897956563085449412978315337572493351924380830378963338786334979324064283651265006715089054823346625827091107930290431660692400796927437708757980643812353530314247170862260411498308917342431323811359594234862812340872712047495906154274028971534777855362256620131451238898345196320346256912139364184941470548136786375315469803484042660830757440797962584944421361557991745306071615193355267802806680603657945304579557460845410248028395623212500058336927057556754127146029710380924813933861548711809923604547711678646480532056179815389051430021428715953401261323056830138731952275115572188505749185298296377259798104845160889648995574938175310050958898165355028794753661700479992970476280111716572960216941802520753603734310202534840084943803965865437863265946724803653784317293536741738219666441535130920323049543520894789948831423186070478530692370473464671310926385239451348682231179200902870457219217519105544274943046903222053603891476680243771428329842253665014031018476347842357536511626893515076035988875781881948803080444198604111527856734697794721218098463408362621146599568095751052654455039799401268821357164549992803675604065087458422308708854980715118802400110021922111823410484899896908142358114239816015773783334031762937512010520025423692458084067193778760474706950809675395199071412488399591224186328193471267022765802870577322359724840905040440088243554023391747931352572779952539940614456059566474100938489233073570629125434723758319660417323912983702504918358080012966126620838363052239517637413266459018457551325715019125846068308833491084772124003195396201912778173694614680367792923447093282733526494204884261503510698361172632990639861550121641249233831959671978804062032142169349952866529732266701865540970284127222804659275395518918925452956802116534103286206271769133848250670871046007572029934930650251748730154053361171516208286305840559098655087346667364327458966610584962932906600778208434300698840104284099374275264779611186605343330095540091553098376818956668963292116695872540373121503284043987731768774522653387174454542447840588052395802057454101835525714735019538204374117927378188631418695033484043583214141306196461881384465984262786720499455476241606772986630751474515619650159866609602232953075515949438445172390714350152060158645663202524905991801688560321077444923602648637266619117567864656729249086220118048294383304811686492851731993024944532301595043391761663234274236132009424045848127929431161176677621902244935619004108948587491075061533583883594353051274768214133521741113340634337535985298847223653918555993524139818336164824807899823285346530781753098263460250660178701016860098890894694977993044240356532514700659444988225625086292951202593163102903168161417194811611767211557317775381493629159177862285546585845683858959956702014055908697695931161581742410642052559752064894458780468796286243033996028207231502871928193715445239976032276482028898356303228830817126871233378926244723740045976356772009389295650651086813714732016252233402474370983324607262465649032403012861181636584224041560987670420449372696721869604658100618218103633474237461695180905273784428904287487423553616895367382510465360462506044391260099179175547143050299574932705028552052139822501676661749908477746024885480682322030689313445307313444440842181227180541417760110596611814815756508394549547880237172314904264769761262010580164876397469994416131735130001240358031664863071078013843747477913210574457061672742895175266120218290419130625644852523411238502496723940211330413731337412874214080929475941497545563435643124956176557327509023537124159336251886387563006522123560273004081641856922681606111255119481685248342008263088006102622292083390903465345203942269398597246830521440030820408430615539179892941371995461319916801301964199086483924722275130791512179441377201655778396008746028020132007598115702943914289142340858078782985127414349375784455264881204300074654150632638519677921978025920430682088814472139132661760270070338930047954047451925954276877748763584714152845776204374083641550036935639602868590240098467790531161059560616064648634353040683257284874236638397801065174084267086232525429904994760295066131354649316575371522132441889026409082385759545492985896069887498701223912395894505671765757372966187278294986141410138039454182263911172005188089201786181130136651669858115017601438325308254604481571773993274070717261383456529756750747834205453963882639907492113941366339678229667220692754546314092092703764954940196607838148105959783876038507934491477443503904639288899511572972655571159862363537973163599013784120455308838205252400564324011911313321790237335092584220461669166040696770543201117689424915920223177658030250272066217336884949683034453633832880198456832591404157974225992673334509913351845424591113026472419151114805100376787784009554704086629060731017504996197599339275999039407384516944203319627530457751823358049506214859838354189087221663963299734063706775956470734168248257425013505113405151440519741039133818729034367153548691671334680800588488350987653342905734901068311274911774371378954905709194326430635238988637739421045624912806767163658775022234903614663869316496077465287398045256538119585403831025572025518771109345006213238895229676006412875533698537446543544805562038385174534933703219448462012272981909583232304235859609519986700574500668281234675687966181014846541870478333464867610220455324585961764397091144214052166111323349741103734926768636646517473377455720698534442547058911451169895937087466603965184321797362032377876353109352377614677530438302772030982215837192205453368758595924656954394146311842510535638413303109393698772841821823748730941120589250212351297519416435113889672604979014614853563628033448215369454743039100247047366921491604199743633821045760708735967350689928871233643712721200260967880720297533942963247769970476654393829220478416919772367820566425943912922763205762931873074840769284567421105584366842419643610668783215096670171211113506668903230234605190376002507091024095531814079915722147808101656961464885292409255154541845908965066638626624207604524153698564411915527950954623348380855067764842143733905215560489974017408392322165694993412093641285635962468852760086706018425754018844564935405515395700566832696491380307584094195526761351741363898027814605600316665884531372702710316043338128253264699158573514400927862359170908771008026984355327247758377411451706286914753397420611731383025784233476529993046127746117501346481988786661093519211421015447218802045245499062704420748081260037629195171530427477882006618213905269418337625546848474537182481798530984130967164221699087073594279519528510238520694282981141001194112919786642437811178962970691574302312983691679754425071302215465755282661900399451046044173431308351179964490706351716631469916975132304990372294922894650378063654201936976677240546771035289860233044584286728454384586658377213654359748487724433822723106118733428605068401486667809124267346306010052966066002122066685009467627088497687370651897626076270049838997465012619545794666849551000455414242554172139778268281289398216906835753824590868368844197748062914952288638650933060356663614139410855339885273518720306604689135264258847752572306640078570028913015976131217541234837047916142378290003207549274062938953300761688056096716459583283195684877398283245607768541672726037697494472209205201509295622319962471639183922064372493916275992531607216208394093748075626685995301691729583125476884773493591561049370142782490217074314052745768662783342138637333910577786348259037834344019261734104766507300693097118161807249872575369304536462816087196497529327642042854931676841218297126655601886274610221663405009739388530840238830805935540054387005793923728722134796011507813104815231071567855119002477356968745103629308576468483123236668274505828247140935630239039156926791044184330416745403692232275853527034704201000728050875465976263523632694230656373787625868754934898554136997163405298066839792082954420550008946701370929282054691351467374228874521801868456229088486382848869761350641830684791966357615772483612784568159346061547230469166668288472789490080384506098474667370049759175705335284179224096336888253677717176679146140820038994819629524303481147078763360885684266548134565854724918210768868333035114772140830123099018730381290791117792612288799652270362363316678335719643496698449683087071941553588161822772763806725432751756097000551169405935291238641009493860212603865499022838546481438165492766455338181261350422645240310050295053637201838425365833017224865779586346187009139935618108121080984716565639763786707975851917153259518827120182039423216601706769986344077567477811735182765335483201417647695664082722011408509147208392409819585468859603845744537122732490934427451681557473231777134777195255234108048786956600994405332747866437630355851223192729649703858200599596210830611400926094996497372688313368087206529152094695899689515070180867954220283105066300021117531351766111101747979672107342139471860485329845265751612343704335884349706961035267198540085860285318055518625954486236137527643204460807886785528416922113093108987000740190098429200459579431195707998125236305309301968709126848335518406131638753521741029698924653014366697074335094751308525813160350028818222929734522611743357684260127628007664765378156173242808192401299990329220162258525210009918550442663737256469377290697471257909896685536979886361877121969414164634393321816367369693497061414442198249615598461009333346180598480711549263789923553987597532469654886806092835487347981430751409593690306925814478090267787578361381344675345432557729482420049097938279530208811746561538907954051550218768219265326400312349223645508063464151301343394776866953884248630400567427449223718665051467145779264950220588580381757596873430382803699665239801323707763161925684495178527292048069515893027963308574803476109137788781827210493247883674767853297948300068002124173082600349077285835689980347358613424508984551696457040244485700067913935047781473313569816226884954573791733219014423182269226405691173656633056346194316430589255784695953017711209312262426470098466750699134582972010885578378240898222260750264282713790866645736962090322855990028787758113404678888755164079187582935238666027893422743969439128068813141103488767149321324402989078343095808043055825201766403548622199379412513634935464000477061773911403559262637044839651131156029668693957075331579931148133874043325667176231861670150982229147383858661073122518879264932043095847177171041418802013570673512098946373313046159548681327802506521264786707523391823404038831056871466114703102532934107144720574513281078479116701961505339953575905247593713923778643243809597647923916866403722656660976023796095672315284209347523263069194700578889012162610662039636943013732137350301894327261537297918372469263900318592172702631100544146424005125906976260666195605757749884349144960295158430844626625363101542912720706769381354772093741847639295648631472870033036013309452542328778483642114920399992968135046876284419562468815301797257756209509081125411373616791329134660439567117886368158949438587741350621220365858429037453364728990208732064119125560206864232908854769829195231765066433233843752816970316775979922504200704169049547089583183080914266690485488675794140149712805277161578253879703953129240374753298435228340930586051929473312266917784319459651318965154519901053115148245432815760830951063585370885119254843115928587168816104592049973093513220404207230400225976513911356829501153953995009757970414315641913972904526693081998709584669687667816978659197763914577744492035055904642690321913933162019724443956682625660228473300994100154929327962389982089509099820803774446529308676146746340298584378250271962186725888775701603126235416585118672113342093860881189836796258803670402394872420809948491945753344335328285240291033858572379315010111059771388065811793782678423401362684863998944431922597098012334542522742936613118317314044467887436282230113622069627598463571311788287378096998517684841249999458524662937331788359000632545217730230433713916992507079200525241976004648161774684068329127518130959356645020027061049940417363428345712984856248222718834537473376253308740141542131627621676171289640070372653436404272316419405662561234957904100493786422832194758714679486759536222357118750900498586679927783809202912318222988719525757034508645974093958953473699984828369985534808687716352313219626371957355169175247416076207565262653812838595837123560545052140884637407662690047163859440582631416090823063653153808876746709528153966250892918406879332395770210619938659282063788932505240526215317372329653913459580404853510758999634877699466692712444721857067543203345594159702767337968887945477411640474064917180401309988880619860494002401675212747616941889337157560387140199867929574526166526503753553359726143251592862473396950436317813808596716880743077414248996965416391004283482947479927654842807508952073501847904345880069150370221427810978904904500093719490733231269442124626859867775084767789944225266974623296621752493981788617125578133999310423087765325321048326616313176717878915063603343327705458514631171932448701847546600707637283743420005716955503896034025198199351313590809662470880514046981092133427973350460442481522456618474497056506069700843553101589293117068945815496038787818479834987978495233990025300312796465715081418863743072492587234449706950793417601909068378823509708486911561789602907102717132834987333323288484589216792151054429878280537956960106509411217580597947355539809269880779106690569484850186389517699426169185642783461913020558451986644409548979215800380821186764997402880421684324806304360205083464012125021890060720817167795785861337712157109891570477598651535967793441182507227680108669237790241447620937866618156988127407591361935550075124816167922998056072169194244968553934252066209218833518241532356208911450966623357649085369826478383183645494941066196003764839928813607243057081182502498688037370258894579308252310982293644717350286667765927460949683979278778674166072808158831623313514360128852087168880018173974868077121739523851800421856172840312616885785271321428803306579087917256623618220592657893145016896041923663629216436625329385544581530413562933298335876902654980023289228181469087561289328026006058774453499372650898447364542975500830325252038853754925619600505727756194854589174283364189567599640920179391997076159481064465712721774715950219363811309943793423333879539488845056379757556811885856901929328686211560377873304237182290590927072322650532941220652610067489055612808785210358961064893319144245691566109550732644091157800371764351528858262491090544067575454663404925547904720576959803826165360473162151366052637971972997220935544449059798117521369179637008235999355500994214066802709496491181067242511462714869673140243694829465640141766159722657523548509691752075343398449486645342703824226945275950513170667822410591562236163099014959795431425544243726366804885601484561083895969415326296563827305309984714823109728693357367917745641845964642083001805645759213728076503646754600272335792008900271904924628815819778551754108599439264230985773190262511276679518516548677110985103035015505846028556669639544060531253394319598896931436004902983466362704597348356943441302618483284632148352379917328226077474457570544554431096069607913879438536983895405009544336079913913943594072983056835223457303204302189595121433231130322205671415692848428810722201520252366353129856752135524897057469427297083101540075681354075652528062972990869487984527460559237526688987473621897190096490654394493167129535146437259308343577476618554669095535893565499654604490602921486122362622151663165999441242702789352533580813710243986389781076057232207032191903408792704265822677973590500486937069095846909598807492922624871685903935525276044725396128970211516049660650087325183863252876594804593880653676086203942738331733910377669693811932142170929596477487894664919560197954041850081488551199742910663732789236798357484587093157691232221415860197270078291954928143055278642931087102753871968936379938547360313441517390980235925053324637877340962574028978186764815933934376433891797381546639836146458551885591449479078463584023637973652928727642280942739352703314654367344801088912492807402279241395039605742811815093002367570238924760404068833706114776407731940611429705501692553095130893477784241175761752666602118683959132149949969342416868735466772153037973545574216308278230367335339412780064033951186867590520766971711187337426830990623955804574204198363656520931629912256211040259858905042793805185093764502085938807113984417136673127603184878052598807641042175731792793393129902182190113473933662005278085122493377805080543327106647874376941274833150209938555981827987420562651741547711624432810845221188728957564493558725856994692610485588158047898162380311971397817241652113074780703585147709920179479518410496452410237538844704249278620615649913579275634945921819612776342001020125549864520861754964211931750362491688931847031313136278990199691953652817510118745282084882499907245933559424018260904415032245602730124659583106096057564089258625350474960514490308430146424644730800895705170734015971805583394776100755363267513676754517505555360624107837608410220014468075359097966370737660645595173919420826521605049598587223808177425206019559755123883174816173724306066102252279202872897822513746781825469303251382220204713823940477694846045237631991421535879672804149731009764230570805562132312723702049210360524168227249091742420289438999427168540109792239111174226812234643781246663533275147648974549722130234461781498397591417618881866086408503376757631632905945038102534942461324913553496897212124423953030617539279233240671229181455716160694637922413140555101128383809424700187122130212215283594598924641225096130138441357189134059170359341193927535338359890680892301559345422070162622860703207442026887143444661937599308804352294419990756664441837451999389970937978449165930076340104489771127703594389249244009461010334432747238841384136041105411064081031388545795687987876848000013569240210806536546174889484786250463875957355579490189953552487335711834143269015616725192732226180999378462619548620568742769671900313006238383173814239026519061657585430292829769065003604951619384778941295124097577620854314357472882453888609448743198274291823244544256520428943083180399151611043367216700711812334968812514168698113634020694528356958434687426177775118644270943644459533853874299527680125925038561515253768202386148154098018020683525392434121342988639521926766077460469885813870953070869076898436334251247131751370224503780304391787018711901422408913601207171927292518006472639629553058122377126758512839562302964685644525571763814685755520885867404622917967867660869550339774861249434045741435048365692554506778964580098310943750746504768031338962493641090037660983849321154057734244145160776654746125821346822860055960382449422396324741775278817759009635902770763967810697394450552433912402100036240809748574685355089330802017240368581427950732907498185557265005466905289827467694248439175774315223118929159709750951227833295137622184378639022902062203945727498120981885972777117995350115656729012910415787482365318570396888722555274233161705605846626149045744047734291842949225780494990791511671849525636417131593485942621686388186831931586578136833295599984806386032569097099875904404052731933328828173833276060583149945244495128288365758547838955671067733352891985591525030352134235604598006058205726122768150447052177395602506270055593718179523710650233246237435226046111446094208859145625854811273361796382616758462003232063902886822084393818694440499195030094949084999310105324306374221837941895680364207598393995279042923346009930388645946613703767215199080320599654975345238172442567922316704451015604816979651498021113683511385665567030005124013768864748107873027713937792972563695152138202607572545993891670141409463992554208942783730599526740692024309461037850025876331492256635014528765755805942622205432354913681649506111372100473997064315617695254879934530677864203514236029393968668014608143455197407352008963478720369990643413608450407943725220262195998236401373249431064877164062863763267228814462748464557144375048914976795446941600057953801697469949150287480082239011320337000316180080791378391888551157188896958304112072567585684301861624005410868816376297933334751777911126806477421847638449712725701539719258997095292959407280565204295671350804747769682991480378200639938194476613118394032965423991966708486105245977315249251780146650611451568349579428643508973183605627820723225672322693543110372794770299877056008521204843832933754215480343270475964575608626503066017894279824712163653231971605938598895249045027603200868937731721630563925539828721392439425328966759870028428478565452017885430597263203093895764983359213788939222254898493117888251237204413282135701919807032584028626252562447780226182209227545789582362295605979329487083550720047231871647791201860789349739200361250012282064573176479873807136893796579482967172974119655089266442361692037038140346065356860472762396410054105768546966260973460753395778432835884532087151076304994246372495058916660980570549886324065972133367153838500057959522481366808511412406295615596478307850394865731684385987595610580969962892119982517254498668754442621698603203462783045451446175839244053645865962706983381303248768921370934772174181595294877147745659784325374962484658492909188730018848504774709502018501905466862985237086330521047115219727098258214914061700915139532551498666918433048935839386746214684472209983211106535650083805008343031051932888231866903852309852204524572892878621259368186450127457033228535532369731312193152980469323713661437254008045543694960536707980732619554296229329327706620412648416555005006708503166729381833472066337240617820508560425585182064359039556398523053444107802156574300158419462770591463380680556135121535597050787179103728567191117342146401058934520908712367069802845925993690785374788824226760207686089961756484331471326244197201800585463211917484183786275680742146877820501034605420848512712444379741005713113734628644130141499145743398309469254418528361862050183896114704694972629129667985740922479357539828688088392927793675126640259931602598585113804865524197071684820190539939561535549238327217302829308750545005427977684162356196414523513017405866955619301870875462819129748336249367396944142221422079274803161558785651206417095059742061157594755476605907284350776861661317882249388605308342086540217871328638732681364291724275588939647849102897879887157386945223168056353153157008842436012040727869583650261433025999683916149689974592847330979163020739136926505684949379116025345262807677479114484370278749440944438892418894244332914140598464265708585965458845671558714355503266575460515079735607475059870511651963878971968357313253673123529175521820773725543809243227459563614367889125155473677402516146410232943529809320943917771615137353733789416503442022467635154832465838333183819210184789000419267445787112825094068778290116298124859055675368971651637795208600347113945750182003153238337753033107113077230130932379788300904895840601152300671018259608297522298580251629572518653737727366853524262585024387876547209978985377905173351366039490827772376787131023254016969059603962897618008047601074367080726753983846337190389082793427318360631163109850318697711075061572848398530147433046998901856738414939952429607152066734692537079751066683686313898447936882771701655123306087308228372782954438818873459369673384125657640161847883843166976624231633847181851675245544412816544763009385475195770978089740871508231239708038534569496625577337140722359903164494418213487132185073440044822093095980837468102995094011824123591138907385430199194860575080734638899112674541764845615503392383028775457564803772032992161390359570277257917228650409975215930557455090485897323589916960506330214111920441944657481695086881186539791541892489920746947230043725556168923634959969656807659059282884776454966129964836198790634197036442210642512671005023523725661788549128194236966706549247389620031796524717288941054498382359173784504629761157115586056175934857030054203143725820899451860374775223701976087966640066732236841173471328095475075389928609010003569213136086208148643680312954847801055966209913930090135977350264783768745969294044652199718954314294283076478345633416224610567491425048744575766676074669567431710620772295079290784191473450798511376972041742849042140902308675522443408190667979321681085624919735790425068042877063648382217208980606800282543957593394821863703820945422342763122685832385238937397683725438758925125150903683054591222109871439295415964299621838112001329474317305056065376858662899498774086005019003560531425197004766603161339222715750949255124240911451243964332780625495554787220168723395095479608621713779282465353130439116632701603955925599001326678660965355175227537783607071433719715258865357980747849801922660237063838208794661706236971507788562223860397110117135938289218458362279621243193520980348735939569769231077880236533208954718440212987895451814011889978499757366975345684547073389577186298158445228060918486691229408421688933340475142270040098053973752529717152820575425313990007644933409331396544417018944411176335042399456953010329253694124492285387941716649077531192454621145919010107570641022139199595014986750845835375071547177602173475048797781024478676776532017072567451649532363570725768113942089494812989764640786148913985266688289689720080689482128053602533692303887195576094459793747366397926978953675028319747161224933311918951556963188603709283916341598153543613051168811527496734585797932614962688096000543916280167735872019243125821213062452734556948987698301198517782912391563731665026408955573807025327062506890273895855759722538373494210240299564460172205984752335647927181866197907385601646106521377494746302096731661704740451342652715620143130537878336823723327762642564458320474621662488156243342581182882401813039985676242967210134889693640463962797386314885148790612503782900595957251810358923864420039527762682992227510135262577055197893230308191788251028568066720983696072871872630024723290728114305020968519584584132718273253451036565337305075135779350611534517776895455736062859156694442637868934813746075141081219591403250860729644887230383963965692553144037088061305251600043465449743225776269571805578233975644246373229488625203261892042892676784941598034203741918179251027486283513958857200289922259222340939159330907615698700297747304673993630012522420704231238232601262237646635032024746229308142465107154911717583691540940244089284825753626666179412454760937129078270941124051243674735436072066044485118688383999387809423335681845792242958547789968652547234857807139256813931589803641383047393666205125775194398061927437869674987282286327666995321220751836253073725695948365364468828418745841021323440153208125040236061016233706034278331754803548501759554814021453464694128119587779600094691421324551886071767207262437929595799133651414502546936966565139700255163851657437349389762543877402560286493087468654768112482548017117811741737434770408848494730613843558093702971176127624968053904114137347205381958294157163227874803542839660351970375663704249559100583975920707984972854433186227185438841181967709708677267860066703589173871539664208099760998615192166707611505874271794513791265247165834849530145330288616747264261611464823149315660740124672200606271646766940718820950102289320017634644520730733219911136244171703303516025564415776715858505479127778204594551982801793298694496153866689575886316633426476413924108687117657539204072969377328720157306447796177793591567047044884082002003057612099115921873076568550998621230741526521519974878808614509353685885342007704696865783873871796807824853547578495041897127115993499816752821693845969586854574753703619194996669803617383814112336513562240281000790475689215517077320894747405606914813752232474451412805764686383666980685236948197959124655519548541498366708761977544313444471428759863395952780950857309389817974965978344998864846875836605756106526532039169136095454167476610201761829972169047661440346872921628922650327995260353334072439200332480247038808593766237588253400634624517570922412991327692880067277687046300924896553885904205910419710346007852506591054585235443250730164797243837709537644531903896990923312580425831185294918882028334643967969243389895481501647617578132621528985618186887518045269362301583084710584503029973003068934050726861847866383445211362521367455861669099947155520510596551418254972792150651003120816352896117390704587637368912997227090494793010588460493546527886512397601084207909304405212978730360465032772548502285608225391187899420853125066000850565135428176404437350535570786479539757346034132340747689585303940614256056439115522311368031850588739724398320490938139157577015889116347376821747960959139221355407994548327025250106062796163052704179504192796614089059704602562321523768606391073599650277406820722650507946274318218201538571066197708899269935045109998567563138949577232272992037450224636435582065221354877286294950672764019073445690502461945290071286524289490266823658175557484072891773717236869311388617524959327104887082232429609518927177324278818426063075976849952589153308375103533925767283818704708937300139767648937645669618389898247405360729010939199964940935805369545057393366897968290986949821583998932934269372979816536780947849532207337032056576465058531932241023684298887230167248746027921694134684589771511358600431368479023724722649264717611484635198095944347076569788570120439681845753019608390026435440045841428915402465974765954977460291250847723126938290116939858778339788073403324576188078709033370690405902507804234431462858676565967787385266445236100710514019679028578475419814889209147027193339122785325762423617026442220094314171168672121752870293705998920659318666138553225645532571022977350615850735072972625063952218296421824552128630728752374547177198654787380977698019368845591085029367915982522038644252345325359321967315037234136531425772153353620253437971577926071867999191787769012938455495582911504512204666749156901514023101670674307879521586202054156064683483460262324366590134738396484532023782165033083216069251869912833452401656440054918162045740052510664095196583759813798181647654471549031006957323361705548476186716454796502050117419225388611609017287597310315782341051587805338615616530520073875845149647700442400929166398765153474483193106598827363407451761513127376434020843508387912729153053970654757967961141412609673555928082160374349381736467770184516177453676664792353781801795702979814934659892453872359955351088498801829914225686961489316822822782240281898397541106527597649656937020048744309365303657178623450154659742769191342360176242561273373722190125797347675989859836402389033602819271717755168392821801172700687335209008915625073161922726477862035159327978803311627794075887556414651344682610697585108313630035442063629439677716992748944108545702466636618253102108550410840055438214896757205292253739587479227945607611665945424939656364966845666062066873616161467460684332213272533010171094552508826336583602375692659541327221791940087995665662899932939411774706429926832679020872560986274641746848974537935268273398002931616299983271867241604561480478671336050098284250547753890953500030975960224835299437553048688125710355266977909897921846882693015128143041077824082578779464683307480160714221586733429358656631016914251261410691482686078511154135055587927495103233906839618974384268913867535310172740965714499832375018218189451057159911337066142090278624963210822609090974062242644948983834309350225170969952888015291272037222504203982479822847429386916575614404101927702903307937529388790813633042385387822462329979871857929351723947616584056255637673337763810180202804889491973668753049491988576926850349193475051209713947626816269297603663988101129837140407785119552495876578189087219673965738993898939758359916679484645250189217830250771329308536890394787490537735565794588282737690397481675016976292307243520959954932222030611980544470135157103628860818074281672416281959925518560481362592528164084370112328163396450748401888093561978181115070946618066604957546372043115213082412573126282521662839026924833210196403063550392503627032725948878536270890024927881709272751165247901316850778165765890659343437844646164930845084738209195192627773217900796546142786436516064582167418766789289214571028915797029063654318506489961697834543475035449022150768690522507507245361657174758330616211414595941720932108786659932530726752661746065151553816190709696649651502701247208947925540889517616097583017965423415582223718861844226355991273157858232583543469333665818234963078963330777491174274689199654496955852158341854908314152201611706074436907881312132804414629392152749085196998059916067602340465555858483750901242070216062766334804606388582128765387532472001399520988729750757834108015348617993551173628056415091887685565872459345180604231484037287494684663831267223492577134738756585333200698106635957525393314905821028608441629137676805976492443082533151100633650192660992372400622763461171264284689397155454398851090036201267370468949773020354196336500999231386926540858849857852010249024646047307223732252782291897665489264412457894841671276562220820137453262081408657640418588075398973949000232842704277363857376066881405656930334646447803153487818478566140426196137610183703017429497355692671184153264584260956658802947064313284899590561795661129210920974877303437943003480911720533656206882305898924245719308459459351618519018551119911312557500374822151681757537334275973551235909822935599484519615318632216204531930411752163813274641400802310387477785229854245211320513020567963124684051463576694628593842878407950553716690975727477582241307903146967672986281999533094936164603270913684039110324672902272109962603576602712087147527919259026490210576332482760661770499983397220606297260909357059625717226656387473522256999936629882343463855572356031343111774965275005907694334484823110680995693609396076790660716572712738222562825793888196869085023768175339275265298412408173171570891470918885933178326314091821985610901205287339232068646995398013779146360955661676476444659111288257271016184489158522820308982957876962599745358794738621300765837714532111778306545716460430436665184832512302288090620868582474983116920672756683818281694214766485071698276003460925533318552366594386110564789781401588704391231279562250822550113900741659022514415539277443813924784010244401096676196890452866104193057499520670161098907354843027156094779384372407781116795289393536601479994198514017705816993243862096650920086389649668568110082688477211434960352140680308773668706319007908968494885121232240201206244930408225431745738959919486198376120320914033474594770901942364212995879267530886701032619434673491705153674521851006377664671641311940581200061486959432284589106583967370276015550117024639360445791172239253897757886944616909132240161173746817616376668970367054801498641171838774930553773215455158209267511036856684215510249689655340634156997393835583011236375647885413655582567815047272786238766656470163824820620404501355388042362141789277352690684841895326356626390555321897058516715331379013370585552582874241785116884266163825342861434945017193127227988820078492457883471017377248536691256281994288109091756842532297689407523999086112549353541631893427261382042131692061391076112844269075503216390068440943113692483887422274702969961978204516414569918784103233993127941817005730077488827663487820552774083050223088067148717986860824388879732964267279057773453379090942266377100645106415785178010764708297310815574753176281962885874229614995987509204799008913986143682329868212107387966060982145965911620243589202093849065525544625000176137574690997141170913324728136554792199949576431872022387070564132001279770248759941105889713722514606041291868822429032654990997023050675470912357165042262389048772451178933746295265568807727089708177425110782869519644176503002527758803367336164624009229323596213250240354546322602074198611682284505187738017865509102241452442916996545744709328471116939084815430324885039102871442701291217480158002664548492003688929690854910035403962854446309272335259999086073420909884072194470613486523090531760436341019168559274388895816520577791793092845129268179706848478463468335403287604086788482104976727987537851119326192464139233193277239106319113082354398115101572971793170040643667713293842970526295880572173714504702026698181997290429570580344645534820160448997255735556865057664462785987518336735137537682739814083318815080998619280255341742901974788686693617305769948424248804982213264426674393247431632557944820205203757547172776434604858598692445416303031792484596781697209827399916848163154038788151530569954170509949644465360590047441991549548541604635311292973491946914918824502339808393455321749365985487685778800579933772421195136405070879449085952705119012416027420442032503748403790737400185665924709933240574055391687361961113558343016391390047327043846723153778953002573432929524282135672646229640811707636127679360595316090558433441235947900549232846898053352018553736689372448738129309596860326072474856345289436547383469889510297339202230910841564162846093642014001628859718316846703375306897508490923286560606813568416636832355457525717054061875661151309821852075091381319590194974027415376985673956570266943011640046127488384480335784643971775083298143543013437574814389599437749809320246116666888542869995034974112258356277978032803218083285320943158642888647392811934373108688834394085009990424678029578349951111615721815987120042211885422529164951244539400245853562118058246357718227534424128969691365418248007431581025117108965537113156603517492880340941575142231542779667183516669446248014391730331936079272406893825216019733654704446802131127016557790627696060002187382039028953805734632488419410688719118229385492210856385577193107364768028917163782533177351108014541739951100751723285594828795328268760542352955060295522756923079183614521314677615569705164184611384331184117957388548405946312489506896549795322640438413669426663875254062588222576409533992579089839123126290524208954316086613910161790211740418606266190034641920130414640933146041215417576971569230063345031586102651852520401949234887699239438553123702776674710045552266757243758856737453855640663062930157194413762275042594091817386336442609966652958609984339982956640575981944903190049532487772712791599973847518653222352579719545794340130693973289588625258686001683615412041266472014290310812606577720435348266826268639387479019335964013033728876869958073362638015999149464261440171943190452356004760168887305402741655885893261723812429754829698142407780392240582421812546808985078574971282995120086319515031592752293179818609204724671165220979988797768814004002849825715760575843606600770500246315576741330833605003401299617744281581664323882614647580291469847014220652117502841501928866393499235987483057778494345874243837709246385030762383056096622233607658328604994674975557653198433168703597222705388501411970256572830658570440340464880279530306300686201917683044221765546739154005329705901801066246833862054919879562617339916969981241682485228747272087626684678977226759500301694399620362507653430991804638477270009791864603084545539397914879528633153462515932440410028457234590311628914925225207992060705831529700777347516235340667311231206087150030784515756709345188162315548216602579919929127815549891291907065327200200780947680178723033760101059435729057257871530403474972260414189426032267900978897652057670128541932620651740000538374244853380760104602953897719657785261416946218085241326696139334397130071804809957594820117621910008954033336679114102756939313403910905007835553836935984671344197098040739211190918573948363221447439457045596222623631919985381554561320942998249681189593948322241132541177540544770437945381205428072778986505583996472504081701023502807389843819987020889014735873891525710955017585240590461294395635334772404993642386074500104479856964830383120250349920376927328275584272471302578936735724834225498799909643411802863722340535003625822850437016990886599228334666444513945832274052280845973292650171272068307619496488850171795024383226061368993501437575527064193729438524544628706472158093663077562180918201765690932730617159827481053113670745075645512817536433652433280706588594776552498107726588993967812000137745493376543013783467573674433708973636823267891987937312970252940369588629069143445867557907440330921232790603552701621933141982779258225295286486616299201849458252330154409740493496843793564347102470555459166132405889336695641281865530438611658069414670353890539776699295153783435958528596606374542274322301907490604023700319277353414190361684988343778538578106109328614435755063871748685289786051474125563195520973016437318378781134968668607740872365394702705924325103523993752302326833192000659480214857139905590259815722369908965004730693516715595547844634669782006428455542371302302622910458530644548618239366003968519923503381560862071499259711917646345366132327562577601337743821128553060419629826622218490424541340681320326972873721543048538415481022863663723746431649788622622414927208420221179763308830058906917226796161702143357153894590713334058111006029546101046857703098885351589864665970836896452117972204439856466529893173693240122659910221508759584074092559672079258348667647192245792292393927339424191907510306607260649675128853680089875281045131541285505767069833006476724664342386612598322077818187802723252830382175041113282259989587429217403829489941456252909570966541506684354176962983199224409216772636020551088387505498871014003184459075932037117955966830987120428641476847764638640286733399045801268933290458494325530445179548363354521698387314947931171874482119742477586109696983375248626554712186724534438653264557209735204284256909938788660617498885209056564231878746937672575057730158004847014745319161629539990138266803326491892710341873325766883345325562350427733888587950554589838473840655855117541079200658011528091489587935709824389762375536449283553512433630202288939535368239024332835439087345222127675823953831644847663242611483046829748513642259661418327207395105945796155503410349447792590183697094477590917425337304153526352025735452896809966733523618279786795296783683077913985424722963164017622447471570164267515426761060263033781135391537979915713946394090661236886515699171833325073733320036408665739199109587102078128470508876913664146199617486583609165530415006749120425451005255613843548208882624104712025509696573294677364026238518302496923241651757358048191169837502923013736468423347313220875095687897112590408359203194221670344612553774977525107204691320374246732273346961088030126469514716196475336830350439788067033268904127525563307448185751208048821039070838302405986031403870141201417279547671610761260652317953587300806886779776776988569765021020245752263521736003984729410725299323645008541702259341584256045039119936586562767716529241565679819342216950219468185578303249229386402310848988525524560609221839995494095494928855748944354765049350633419363292269952954225689966833681747295753227760457901380207843781778660576573360503569975153046617702519200057809603984831143186176486103662284358626152278811630909793925416353153745870525413541372027330986689504367226885946015314665464424916398742504481726158205088098673048782274667807310425617646190967105159065639168950547194627301597967613359685287465127341038546543523784894567578678914536887053180783429011218392381743257675305415406191524766592393110232079518739246427635892940218883426252264203149645679919417406575312899657428883391451404297467952072527143847999723758506403110254022250434998741374927734954062465844977732971539965121957000956485546998366778378553376669206341863004572031093516917087193597515309401866970908456166905927840957629808597779231977197750213446488026201673093782983996828596111292947362158071404869974878541191743802725421858055382652845609578961011405466227418918782330016004538349650575975825985603392215487348068939753188366394738368481682708536433070062943480334130898374746697060434340995082756424571195038225032964364403460662941137765333158842649246380418212842793846315954152006460227395816574635167165772407861255875109559476093958988413466346353134234109967823034449511003826376676456271330237959920861732973279232065169905685264407189575556141990914976274798981787755701611989169321490563532384811746409300279658140383948976500770762284148501011712321466234030312143334688624824588820638455147993781065130764337821532782009032521449633841862254107429029479002659425901316997139294162007791885050900406683470656639123462382879636205264390964369748928316180471092767887646708748341021611787781558358346588813538251444650387261888056785025668693404545429373116235830498827808059368052329927745565171550585899959716859422922675008946536671201811689568204994286341498394960656872729676872711712239581943122373574529891398085288608347397901514064960904716606709024680554772483224965180086395041796602953473962032704226661273253081985009568630621326945637147921206443156083457156899382246898382424953755810459973008289276899060913426714110191641886283395830054716886043680792761236873713216972894690253428145348265700213220533061650245117606045120944254229762257048138562899747705847647869639297410925177933086585556219386940833177322877429877081747689573178721634052429258576523194676927379843454329630107071947417989716086225311928774570043916855052802734659669161323188253761819018774358137683291613138401161072201103028259865943430665036240060150981841376188399414007177005007909523739812302967847995498678360710213958937547058742741673730388887392199241989658677542458870713593974013499551300085842149204137590202503901257974093253327977531931477173826487788925437078549583907501919370774904767731942186706423799394522669070887226292475041705409737144815859308097084642285958680065690703479183328751115016701937418349494827956086926211210016317299541983114396226031747177464010589128090237638004027300260611658869783474787864738395072605073580679296673643758791709804488910712189507538079131832485696672305279300785260674928044023825535526110670700549690308778591845993057261349762397278013259995319952036172326255106247956068178502860803082869873270574763282817078256581647946448967548603626399244567357387727767376815483626616368575390155867842160570468416848709449773232734521207930629166950140129490580575972952175481204242253136587245092326892628511845556347949716587261027365190707384906334276991327740404537357253432226880051394266138443109301823218395526728374982767623944189316329897989723405791445457993509995759868066260154711712823362594199802098354466404895074980022818799389016047723626755339768788977643715399592312723362303105385484292472730428652130400606023738749308945512968825496770175795382601574345328517579698394262131045944407481176321173299899189239557563271492854091744656888622723049155821658777808750443356140294444721802760857240228098849601038774350013056352334124497164664015732959871691363805975225003407726512261575656631458461359764731522975717525066674593268275399399084732503339440904690879771345835698598640386223701378807228169711826073099377063544072501667351362417855455779425097744647482552016309698525901454297217203662881334056441272835596500945558847718420512010269591023741823758721472892588953524494503537832522825942765328523959082848054358469752097406466621766420279415377433469576140504982098910837883909830341182891251000073245874063684413159941542300773673245448234628395098427617558743497258166492163139968729731855722086408398409727974863297330731744201213804185247063665769578795834621173212902686345499649781889449824066647374003164725364855354534664061306653085138119442733563467789098951382028865257314396300227047612668864584101094430531821702636062141301155473678918628758956916782447133891288042666151513247729923920043680825108928487461868371536838666217902473571581345703294963558400918547496938174894239349739514860809649891983669839860959777534361509529303129365923308932564742588813088838680405750815167964368946311073024029628910756362327794033922135995914977191512547014025917792856809148999236765728558165265015638565738471581448683946188933791740270690914147502818097280641432563525855960460311678961503706541426702904508221154879866234787936176707083512412944091773704282174453575840539488577598957952070314873889357795330905823864411887430567406935957235919397140675403309671962936886085750238618545381194132158690971909402010002578303917919490263163104671045888428243633446182655226969970972985717395163327591646526546198899208210347265025615239507967790472577311543273149983844679084121818645920547304067025632590278502494660743258395801646589780933452144483520279652257073710306106612411941556317243277124939740990037523078437193558285998461753857741168715726356436187676932228818977167888164562311472904077277792922765075924701862813726589438087293297611565040554600823711532346603095116914855937000696317386015687059275662012432949591729349947771487846186559967566332256258819758289492153248319103369599390893820664359616196773920928361013530226444297426764592567263725935812914863265488769956316277986697841992805422439914335762860778578671738734845477199148883541139307499808038778077297133925080411948405716386353400727043411877048326034612055941793368454998723098667625498015962078164602735237649051255684815200453140444149192947376725812625580488400061107468892253015907589606238152485791696012841993761021601285969230644795099085336493091453232440795665194952211980793750170453937290620112009170920731102110648537946747473860441302835229413231132241955229826984636989153667973741479145336906984259426076743671791833261964645313337152959066186768934297748143400902219602126520945204696469801912428257655905358486344691573897684236781003972696071191577945094768300583017226048839323940482674200658614864811958301225689398405923419554209864969252427956162378109803858447645577069510833633225981709627541595508072442434459046181696223849233984683069580173643116213492052139821825914410292985117148713015567111205267941463810855204613010665497175851775225505563170827950847096698339578525604956401524133893547578055236373106635695347937902438254151910249582276836457790873164321709443227577010727478605923142626802472428810847539489726011301150970430527743150510667943812162055716637917025169429203487955568677041805682943963017315974456554372756262178754493495040432720808077293021172582496216357587279402170000206947137271095613534297440878497750866932584765577461759606579184122029688251726743838537419293135553235144918121581778323885674876121813208207197305882447323195981295685150805070830428961962931617849135617063052536731692728189494435317124726923188672346463455997799474158209776078205083276921347248358788575304482854834718649631325558829616223699636305191905757951520858808413051696241154679382038592158505538610411689914016797066213000656847591732195103826701475754092241712538183965962938072288126397321233985351708268086607951690503435849887673573979758511830512635855742475263434198035647567087565641775566177837870409813773334271681966975255634617487245293445449491547769612414427164420239834670590685138397614574299289690299408547781214221746367841600011627603802997613574309802507018510047986853242656763479453988120563175872249356523878261654524148670573933028150682289947795163403860555085717409265459052340642928857368255643974266617009833928311062571102756724411852528084227405459395323247403583109488500848567547861103319944966439324855566798821181598889734574596179905595971584341056849543821846056891209233915656704352608750588794509540265618681794260067009002306451679606165103982851179988570664976773317366190043705929552578005919658598984374436398525430386451094104536327296233650617915235059885025164934895504893263430427530769193929377352777792109949126909122897666516781039316360579065974102581947759968515106023536826241159084887294101518946902072760991348176586107972924495903460773856211882360561597424919584457430485263661392606921603228692746802827853798782109516942050493192859456348436735988715580212401681545911241879949440199241816521490621744420946944168044265019436994139035933683669623408581324476235369175775380965359646278870535354192998293231081284534286017963626419265162788840138234305009917402054562442880660482455354496327664058053042126970046942586121030699004173713500815026063813316308346710335136035535804171402758879157595032558250447649021916008193609339840486815949557988191892186443831104152045135773474374698755369624036538243682882594706783071643438141231201009070409115929520065322108104265899188145682706096534960446404271257840993759894522834441657901362812311634167214191928827667046319233842962636259715775485677556949835210013785573019006469698030378523938989557605368186337723998043626567281945065669661270389637072251200391745927411376098370267163929998953132335166055199802088517462724785802602415036131855559120871562303846670863763592130111619914144428595179182650376122302410062956100075788126467159590844131169485763105783881106314165885710317497385656180425279905750477120314758720572605708212532627035167234544180710741457585449170561357828399895255564742940173665115605950876971212235916414683598132406788488790326279771199858544733282199899874489815777066247591488647010941303729069943870289587443628494083377284182766328553522501216419634908106860638346706460961209262721233589110449972697131333711560345897499320951273177451120057351153980951514117107804827289041473707056379509200959998797263106734504166601579860815751470188640790301394624232845361085145469233793333500356421316279750369503971332894693228836227959840862590676581133662049661120572460587052783088896387674626384898026285376970622924567897626818883110965909401394211602042627830787861699938554722855932748562473349316741764351781734069165231537098676751726022925798815388463783516646770017544044096151039034677717932230949676825990481422201510302981466775788023779603519415077684550052850455300734310845681251867024289146133347280712965092316669264753233074805955746555744675114724405252825575283370751543261589005506136448686992551051351079706736688866189198253354729290756799881755021903513378385121073612092442858172264318281329070481420465844872890222290324084796333591265353811469518197678110102145926499896552811643229853021214302516105468040061379099860419582049960211689940629359815160941459637306139908903076016475933490983431248124667625140791092352315585369128239643810431002520168902025361048783882851203048959901209884878882783401938836730343122039558164573359286811398400725331580764342317957964859339970348216723841504782791434240518517089269468994389611316616068178528652904274878598535688574544817274083817460454653392451602186334688019649761344060166765641729939656711147874739276383173428928598757745941995545121877245547539754180540035108763461970482079032426840509400757480848176623579732623818298617320362852989428059164479986505846997613399939773937133609347583976291336361801404049595411832263386162517801638059961522111507039197936973214903649100099625700539031630097381164719954547292561335099043970076601224130309427754850869598963012018358757667808906045719360007660969874987427426433207182392700596172568658344627040557062439866660041099926718119975113232410884107771571620704041541530623288469003699590357853568807529279729825944824640597326856879286005283621793661872419454226225739773025337876266159030552645444829353126596233113156767747163400072275943071152829201746865093811498483246650249469058444002811231596964862485203460655739866028479905043146411558888095906277733250955322556771823948087921672491260815861785755315078890321918948566727299859329025292104006301263851258654228443926113331144124324779191356392990578143383029077610205382688838708978515939683178076083132077978335074812410883720124823398954624846129374812452016045914356160528237415400650719516474770497248031638547510595869809136541079646303809685227436627836836530760609202805835895875214502735162819427060853972861016950720771455229283131216033192035564741756377516778471376788113326891962998315562393601808068841913824657250741536871466143710501604956070527977484845058476040578781350943575279117055454986735676733157883092356026988625321027003089778348140775642669031292554048334443790102073243065478877425019660488107545697985109884849764742712487041140840920123125832301941447141749055271347056419692403070425719566128666089151158597547270377317423819584437494618501221444701804527724579465137860153078691746397919997514441044196885657185591008578825240810978609492667776408945029891676903399006353403553093257992949769356819212411170410161721757439168578882483989297657252433087892106401712214196833101417285005993935728448228647769562284139589929656207314062214284732688562740414209840331968269027490840867935439023175783443801829389587833788473203002881724736658468959827008206841841453536432214593442438656261138343467691009888364506683299414797509593849844074633326274201051172444702035170360407651816557876994451400917418788392803930126717344545867827854068692107664273169804644005040713352055036200741995618660479141875413176177074952370568660173039948831945901797796679982042210431613762043884720957212852067997302656282008844780710347215000819082200400020786116474182219817889127119172849972768207013532019490674607398145070525177643220850635031344465941457057268243836404534886781479572978198314843638537738782745130305746636464283083937367413585637503791899139047632717260600093568055941752055829729059281969823364924287735481504302295791325114351759902380243700000587740712638947439611275961901740902324306163617227774192729566734192607286948629033699685231032552242612705889735870058383965906038499977288788988754463237597032894373713548178482681387697107003860429264398196778224895318931497955625325535094660433828814439022785478519373145213210860474629091384728935599349260741992193597340100327055673884584384590067619510943342984999177743190511309441972659102629994563189010429175765795748101087992191073965355395000104174987750446900546829008658662099443762362733828727494677151350630280864233157606366179638960175228239082938599080133815895307995273070424165320883651261031556412573690335411347456699854891724332347493294790646067020177902992116937591544403021244447307186604593413439537516330360174289116186278547241957745793365850898874855635619231720483247171585873467005003262203195864072013181867161945728332133123067561213287582863233383583609675181202663288333379804951754491277197331885987486755123119708326278597624942389898181922892680011508251585510560369144514761062377002285062374403019229832047436999540775063996117795347544582742872348793468739275601088574976996228611113096121589893809550950279554265734392528366980364310975917969323912937249528288861359731378591076460032199047889793239671923218876737570387928993962099307369737458643882929078746243131803822502281720868892161266362949023137487636786567487597893396225508072986671268566793398481738476542236863120134565343931044980448880806182509385677077032788984003910534654509695752702580473502015941034616344842989947060040771271930411809420719199066814264141202627047766219847557450501773827294020454410242361344105434149940717324350159974694155333462336751694958490268290862107055121983028314102698931094961898389238415246612303461806324330710670091486003445801875792548740235253670970858682586520773722539279832461805153265812064189072648156634545156582297697532528612273216311101386424532678995016881367302729235002004834711033964917490887078331176743676290899019238215382786277966700260699278634589111303326620960248292562872675831834016884740403766088918052306481893235779453890330871880541767802962737681207247748501105875984989076622892263771826956036840204783485571431481758790909916788660707532914918512598396042865783632316620090671241286694471468234047716493966391668770662245098961761022787164292255451108600498985766197902953905360482001881577585601141383733083538543713028504752200759856019256004778794702246352111373250522960033246288407162573464975764783436850251027958882402316581188348253128976315050911378034298239781707346613676448857561600684686698980199121196273564750734406591930849440575759183150851796394772304111390002330525492569635411863581081194698295516189821788502774235933461755730722897850238521125369042109735336225186074933691114453414904245769959158368126532395821805142864346840780492285861654864034144372612580272762760749182845399462170312923912572956706556931049061174081063054445019893807007562002129019928119860820020247946640141460862536865705415197119192314519387026696302514466117898402620888271601134232405601426345012684682030800130400139448026918073393709850052301025844932966140582582015050754967215873208738732356510911213930003827283977754199134341090495631315189371399482008509159233993938753655694463636714337902645872440608724157436277982652233966427821175140567425406099668960443781563087820529344024770641432666638973646569099458408050447794633655223758322828505257497883633893553989403193355802812527613739425728224695491488731095716906071096933036161965427760979541398635906685761079287206644730496650294075451725895449028062016705563100984633541893212642466661774948185679505022773769017726890519368818126466156790842935058988128937818923460833038565777431411505174963318333604375624957049203883021064578873334721049332141377587598870197195927951330359308227037259459991327154023107669756433147809955755607276176473697992500257734568252894920924170275539499851487080133076305878547072279327022006893847827685576346977592824179258665826329771597123509220634221469525008954252776486554495330032153603254004830747282727190259639075983663110699432114561767827816014486229892061819685079788175650780748020523140543911680614304141422930224534891056766211307895279799296193688189804439597106417749303165493799616860892012458186197475682926627756158002330263172691598202733048018012342908223682458880674320455284853513275677830928096846897225030870132702781119493890957391504127278776981771438529527526065091318411807787273742003388281639445071793948259265667992291773274063721815461664372861423878958675195875564663495310577238081173543874912688877460825530230598843047038438648543675241800329803717746242684368642329169160501951616755659702224865960748600275097395747657502335437986609193455046019693050452205241674652298737753575029204112925935223373764833476264529655674544793422540994827445638926289356992161371069577291958015733823205325859984186949749975605047505852021113315165867508176503697397127406519145517755029549685105725713727926620786730084506615517696904644333322628575719504866961827853250644530066221163344448050783952137317915837171644147905479019011463028115098879439265452205965845092231722684068893082710971978839772467289582247320900284601376123254337942857165276372809199508193068748600600094424439225943995330600186667920046818920412863029075007872387937263605797194847780385438701270342915237736715845301213470071966341133045855649604743821218534590863751879152227793749880237273782842787809176286106899962067903016397852917593676293671210461289581510127912050539017164975078219436231949633335142017334114335535507575346069345811045489725987181964411227421112270434115383181462110575122149470839266272815968315990497045748209615638986110859582534158839831884629353896476662622077129054305817559858553827569281751454956034009112798929079500257389278020194765180162732315090542529439214244789033958712585534648411254894600231815473043176515899294141456860945554154708197078185785370454624109075644334781219157501684430842098939945995042497044072491143094821827411745260408572990208242664946617256650644328964420781871206375492170082154508342521103067518988511347387845027692354760891016678600348099923348367694231768438316214111226499065181204227363645656062093553605257357672688090950845826432151561199217948508952307900323641898623582328401492718869876567621831777714299166292188430871368206510965625362140806631857833901026290314388124389790365112711788259032325552515526588756472044349961213598151562897057242545118175531200591447843292043116252775187457599374414712504620287926772638363631295269293295878241455398629846287297648851762660818922364147837015038043307814242608301908941879207850842145832451673473560484638958177651131432175052033897558314404748524469852359009405698129298079675027477600271922328951105333462168570685325343749026095611783164689727956856300273163772963788007363059093129781076459477614515505719405563007395371763827134374268126569857392195215436874537854179560434398897890046035793137996131181983646429538725421060580407315485390679027560126802434401439605706616203396140170295480868304215716241426305257466502029478574261624299531832619247470908642222386870488924372039673579895739495905663420600054053280048225480800308897451238510786955512227943570868131949771130877927321737006682848272330980168649218972646063767445890326324838486645571348155999085081623931014749353664667107401446277352601825051613975094391705818394943154848835539265732425958353316147752196754551830201854104124719377439215229963269881111016999793559521556406718515953716195089637376412022771116769354097540043220534576756272458010771333303004155308579532486049514930751849833786281925716753395650468245359656280353261221715045286026358787814491951745687487285462065735168521875664975548342727192652398616946747712297759133904246605805347446869837192976040487700646572962053747989053978608837816884862783460144210137456259296294614618197275212941673537323031717284836319418341939672349554575527631135110636513375858912023177391480658975052568649575377710083823985583620933857255479487303901988798758937976610130570845380859390248433511213111132409607434230370134792248519416156542914720710112543405673802406200033150494475275199043712363030042970032289170379196104482657536103165260209861202046219866521723946349910890044606715223342198120195222479434695544788027916334459829766481808995557345510996281348356809776656639253328322904778691632689581071770743289868013616769075583850680885783912943207561535678947176846761451573607849962113466430091591348818528167361093721097828427344792187131986231480273532141291089718397788064413707270477840620700341036679430585445342294581986681993933557862081658510255278137680378831879664225035958557011213944146714008641195750196098795206973652908786330884768280455773857572838749700072169842634229715107149497911218938445054508062425538392809468205341763271456437063750075457752639162941490509016323577238309895610270569834505663997334367739351387309859388730410738200828764138650878052150283069021029285936957756414650134765198799610671609667183219812315456132670292414560727106569866154618235760358560363270687135113294706427120995915066597394647451681770755037660288912084513757352292880356993190293619237869191714807659198037083492124558890736664141670895129786565887757340234676134344444666157591244841787747837156845088506519969994831223113916010471498766933846024750137481635874674249804629231956786457009733168851665979152733123020102867212130240027197861015575812457212017755845895546886246793879791370036390739847075645735755801996452144099150738369829513252055281446933917566702402170061279375403855325945275230223532657887474425221202688116024464376561917586798594384688559874707815123730412541135335959140138118187588139519272567070734530245576030416931100787311532158602909886851514291034518985818797252244012162427336212705922662440081606516045704606903514230679767590192923919885529364221658278743747737315954906626495125959424632637149237152688940740624630042702549454495495414442627870169985525968888908210764109095828022889713659947616233884866084807193506816687698829783048979713514900953844996060590582428759724482764740812216423208500236512515855097259517050270581108193759945578335927341070485794601821327981471217221954228012508009770510776062528300561142376892327837826955031111885551197942233017622288563366580866992633087234564172676021013177881731852244368905029623442116629387220404080197612260527065560142600641885181771565645700752623045600300406229417561418520793384267442598984859031422313105584966258232943710384788330668528510545850773486099862960592163022773482700220676650301445164457015841462964503255841660052210661705029317073449740784048716237030583210426707266932142599112506742266338614519494852674390727851843371241261858707951378203396800143186727275490962922275770861657989350989029450925841704196049015639160126898417582607492293091618128097946423267467447167910357456499721730785114464823623308946591143078433762302268132679281449112984611434762520317700603803704312267431554610411163661780399773287369393167596354921744602296558828392253998972879218976880676775815732176429388308389538590786997443715415991652973451874788564793216585287301844719181669817862762360387201332266853266014792399274552728855730749201766565523528418086481817496455166724590098757211774229031637544454985567519110748258387972346885623374332234074739219415588199571754315925571069416963633921511104855043186026552425581353458478171480938875004434186253537797017497348278770953139919150319418841269194810043211058416418115531475885712195523067001152402035479005916977083705967358638440325343197975488884740252661951393424257843966650836033256274812322707419336240622031116610023131667103653196455548111203008100260937908993256505409126209024528330687652818692485919852417733399991610837973774532068132365836040814962024245789276213610186623354363346278525700533380004211664986836062972135655862760000352942846089328835141000164380988490889717938252416177591150460650232606191564707454618237896306539202300961330704014118762038675792192557314210376161042104054025937824658005303384698782328544699753005107295958727371110021542112896126762114437844510630812977327621276751253107872459275425394668789041784360192760658295482651743418708451911076146006008977124786623659328446868880690288370222420245316000483386905583578957733161798498767023628806562528141177075645862024829889686862691743529400355627065709638201114627201681132867279017291082834388957187030774629237940800135647237914679539888742397170729365514592676540880985216468002599171610845489884716094339396853596751023594046383597449263219312760394803556352742805608712373899445898356321772875985312463085528436037430432104972582899390528587303607959209951019519420890113056695950781009057192385360555887540439524885503251399993539183938800352034880132309312214637002712351120300482331793488560032557150106048076613925469639657199215504638899872881184503074950961178507840281635093386535216615850367384499976032074361553720304252998401672688949270267010385252289997490091149401553224267863272755700876002155199819200266693429535819396705218361182608110644892649378388310811304930227443456164761614567097054330969379169957395428964406101320419216369887950031862855556779748531106364080015638252002566419924565709430935484304390703361527824272405648060524095855006237147063262704829640060258381299390323732340044122795838342884691367039297578368802762410299607750761488363475892435615019347876137515835985207747915201505204289340532641397963622329427455034346356037129464820318401263243639754520228860515099897550394049188349631164305515494002028867066710793091390973776906478425959642507607987663341846108218252935640179502383834828166090974329842903776555686741287462990458847958829615429333466022999926426151276456958527743381683240647305019033262207701331062518896716642214626084777742829306255546894638538841239194913478159236224811558170902473150274596041999625262291140417587195638263068317328019593694188369161201089715852352384377019665551822515879877542617347671648021430731197466456017697250599584682797464708531010342402356990104370216756230998972446668934394251534981609387247864976058654418569546846809002271575845647205332040066981535074797993544520598974288783195428046936229191176737312998668792431431196861700504869059324881670399407300697030213399022277284193300324206486569389029564857890012820032800961157466506457590158046892710295481432395508379220659703040470732784401716097414128718755732310612716119632129604571171960724713920754002253303684342302690006234045847451875721157625509480991862735942186648050019136382774617143138852073421972491840352364215377023547883611160851217113610104404625378559877338649109070343844548651311799313922614600173136717525293738047379604932311307526089422372077780062945266484947115637845734077189374431561684559397903566450646008072922349071392570953630237600907496453881580372433131915885928853729142787948820152629204583464855066166300700290194906791052861713926188659780004550882274758650234859873935139522205858672539148232111181193167349961717958865583117401469802419194359935845475470292924622565785230387954520249197841321715252339424500461306679181433502122513474315212556935197967085248494111856634252683367770407644965506842752845354171337534770099095283687649277392489205423289856277223071562161357868339108073665566122788454908622317882122808626694128106177641305297154944258994401372208917528337795474299809814700781758572134232645776764761742960181055821548400754764170224167358241674407285092136855385980122835675304459595410064658037752015651221187605648754851299602933249628216085306322761516877631710526228314021255539432298126910932024739965426338122402213056726618996897912291314495578548615803628487185602560251480393730907560242178192602637779549244851135206473659114884224321421087154643417853606646782715813521943117039678263396437483371250555699998469372383935552640677897004342203705292508832070230722521713525015297959175911312590381355124291879481907472337888299347371464106575633605700774985273422106752943632791264596265434886174284259463089526042437789775735569460907508007696443869559442106450953836551575699021854594717987959080412979731769476773704542666208601459278119571684647906075030951901706954439647142284782807009568127960180856988954561024510203487446275208741272314005210320079081665960485873382349753166601871956298866504077020940239885040832884066869389217750481005133597667785998426726591789508081074367514203591222279334963968028813378712985166203592636603481516941421338426360550668497784903120975330415028963893633486952760845829053170187276891910405807033726923447405900846712244109306468300073282052973091705613029158333736512068031615478405210502522744437923881339148162584245236197297065557011324774102979047047042658838523564770011614037185464642094162299395293559935379962215531928093543007719904457448652297004454536325153126195518456681415393390451218889166431838820114077674221821202388959889742423848469465071641043200142687777649525071881884624309069154467839823270047434622489566291669536315262463857643072977607401398230413477218031515062632749435486030786903236893391671648653466394687138824682126206092432280424054123066070972169191580462913416194202034443058468971977850084597465256112967981672565450185404434647078573497287493699678574890353045924495884736678403375238016718681750798090278197774101087365430127314548663647511981256517627581487371756163180011946443534274257176898811633242488089476309494137479667446043399932763548391130513981713458973689051933267086729955171794157514360591773612050476986892236955455962295835822201579198531485171967407825831530117472147484842671609327642893301223183259082694031848608973768074958098899541462491655000701180070864930457122773038699884229775532229290676484850003605443428940468892969905038712456366923689867256663915181297568206258164343653838822458573144212194465893524703160349431560568145360672194811075363123915468756192740720572018064557933305992004517966038318573936199564253063720969533503796810461738648693906729434713978559262404004662492150473588283673782681911874319854094127918059482503788221237542551480981343284749405184328590298553358533007645830814181643643366335101391521644746418230924419536083210133248368791353152873315646148280282313754916509087775635090041481517011569465744291653519040654983040377506330892292572892023992322305464180097103503468876734618114394079562371100003163190033169985605981855318323005460982301062613425824651175439667600069655958288517185411491525146524013100538464535743178528243645842313870557469415086154359260550833075248943847703720970594158234976554706967298512063617090811383343375432965977526085163693878494536709043906850982945255775810385743345836164819187592056947253886533159674661932991927483839163211807879470904490379533522357477304892181830096557713063253630017790442447948917232409985696924181917336691373453640025553211692970152766554765906046939617746605438539879511312764075201141115224122338079823626769805382199038306658069364962756005128629891457189737001323644650291393348900212590382569415011899071337121388598625192283789364456493604859232800008751956746589718943871705493532950476770629873448995020198534636656973459916781770311513656886575856898466246334077544893948159049652324486250821289719756740404547000956144524290305015768477502589626571449999258567744123331622719775150376546783182180888036168055822624604832608277168157650962161634609453645001561831698773160741118073203370732940304194220175780396754527894411314353741969786939859394162774587088077578381071910742969270065736665022218446531829323997614383893241866722059613237187983209419211170021331447644413304710000005263203622214298761645341677082894264738185628733283754203803542388893019456479689070954218592930216405107506946845026351309770087409592439277755405830375293610698222085302328670506105948553344544941879033668349187321051902078256639819984023475700928345847389551812419218917465808446829399455986782490202000048614415108379313556437119691181104068852800987879976058323196225334866173217076335612386314101035693913017886475457556356012919608501033738712438132574300306373629928654331153255080452644054664565702041708127883709027739955139159537236209310989651909907772966033315869084595540850766907359264607207063729805193274678474361492503720325489883077328561285602366567790621625511260785853419651852229741097571880376319352937174433046192808112786377384526970458905417653936811218298486497343318529567159234169590009989633285518799009628407305225161977762363634780145035692393911753888172437787003838816091892674617270126961090100212879931631870962791260565931731967787949228245110164167596703574557052947358898986726573285350887550201066518473856228158933176848527958275627047034927129592402425768281173094403097003215951682970110726796511214543307162917918446836477843125566065532044163543243764015098492115019969958340624633472668259313990403277401614221272331173201102534656219412296876011126642932335684671018407949224431670070768153000524315200360128977649403065275909360780854208428681918262131227789407000840302750804532485792622055868334454943544832622757139343990346671370579608064289671227713733759374176633394464249840161122558157286723313312681806605870946301282216222084266408555208201747795106468205593146236458940098387588746382235903233491178469988402257227908899902575590068071089786187192228705089462344699634416253619016443035247672315356562345154976573373935976464502881528741939758753004649289715205362803185595179959604495102486287025526022823125306843642769847236946805510689065582047047479620611334970109058590656372518835735686584518335519742033057067233430094663477266240631571157981856159872228004797660273193296108531142456985820126589250318874545499432670027405159223694006345884359295944714769466036952656248334103855866396786111162796054930045212778627080548668369011078973767383515738713689040814780798409394166817125511535158142025010228791970464112798302566111765719985928129975534696603334060467092459901627739623995612020719499892933451348670450098236058779915823412174229261921443797253653705496085611830940315157394101318748605159725934465437094632379683508322997306538951075463183770329383355828575683926585295457729954404408284339494344325752550983390174900428756218749447853644728524058166343317177664579405595698818861664115790220449262086541093994396849286930209874490909004321832059280391758449835242074723549545139037686790285301242200420269004126402497533683753622490926429076125440105235000428525120080389929135179642424126860695691478772080262998056771589068143651852044905492127843181561537560415763427953728881089346144545644951507353512027589155943383403805442491925721612131050124949827464156613445726541569174461293061727288780571301768097353633651448300069391904763928565535764683774344173456270320302490689271872596546814128686177498077357859201499408448451912860614218376521576227258710195152388280366678088798626220516837401818342556064416252903988118360131913757067937264037526663191409263919092645525853222809806608703447091105014162505273949144712390935338390360830879834788562423431008279150555908642710895687001948730127986430652370291050527519201580763747098313410840435144934656210500558511898851303586104554815370445871874743744951915343508455162657103118701924817993324732001500203629956062608758649105041301319827786894465049198259925186364353117162618623140843533417877928110898979645325771355450803805132720507722273946217283351585116180814778504034072816265820356763705176606168431653773115041140048346014133118995636015089652558082020910496324952012084720083083559461604503826509702727412661346834384748584243231322428917576015180673165189591871360490895775600387569183839792736557036724538709314430618817651417049361006824438153530421168431967774655536981986943431445325073739691669393173846421640058338609810011135679601639602077477382144256871076665482522716015436890960881654298994299487560099408324625247211273404950118632333772272614931965549622933184965215918085040417194551451278142932408224479726825686391023897704877103119946850231626827878878496124670847257551817611347496161718636037313107873637077729756341388454544786102662921678770269319621171453967049725009762794511904214570239654563753049967008575430668005534235593939035317069242580308493632528249405531536200434441135087781709283835617620519007287498278410870108577498987377951777338728305724727653252840245506189931803769343666074919369928413639592332493198584759377565330431225238110449672003429629111900021449209242131954792813450579149134392900278744744577548210396580395028938279245462630348530166402685682561359694588558092948520989146868675880595749695777518971798090852010123697072586675403766424122805242520269517503537534952630714150357529440324158180978832177741057437946527390711382818715524112859416266904001656742864744037600089325674974950485695727257531273494379342891698794940011549849430690513686004622365545666146541403042718225840061496759663845633607425080533588047236201666064736766365314837083861425804699372177735866654558095830120439971361375809653252105972775647848629283548202100039912347551890234414985691870057619306108586463447493535187355269995274459869919736518054953688214294291134832357806976183651726893234331317894794253109709618285582285042117351646503985005786632165731723530083697131026377218440953604073514410546724152607400585498727662404710708754008777971582155961803195588460087518903722935605954675264457159982374413898318848987345646874537409122850706569941010865396471738094032634931351337613122753686790024820738136203374975249333742169762513407156375690150465958956821728314570619741287725455459636946571524340106405890985373975225808531786557543774112904502206140696594504347611823236743047493333284864256766622730546693709724947263103082526987742263642452832567044562491898588861698074164022877357795029079285784293448237188600474674254197768821987727405208497535163286312754471647931657333389167757916063712994951013252747123913076082191488287942116102164846068273151575159271559187303291333035136358361652593871626479915693922387351760350910257194030330594467338253265744169336187987346411182993496116974211132401552344126344770522924700395667885461198733644841808664370309711558711391956789004739326317681455145356149246024454860772904612062624598904113679693814562551115139326916370896221439879278220032468290629765918810668570272020482553747375946828073602940631553668272680042529064867178920006310394872032271929476074317136969646087793349737361003038839618540792711697977025946277356811941656971471047561863039711224978876133657592568279961694234404274764825187508668291306758147388878667455588494125489915412197836830869341883089171459792329092375497123305404972745183541602207671230144288063205933406488502335236272282533181435875053786199465962686859830096063646062739893529608634714650469106021983338134691916868536748901756520838285977202050227440874048453987730427481093535889775525572546662398888081444156290874995784018263399578068003433601691549756964041065823360543503194609948153718519430864317392159603983601604160692623592623369039821905696513087260390423258173766842748988163476385131685039484611262371360539178687351180564159097111887413595758349688540802986837525214159507005925044107858419748585559398410539025919723682692287788769454715296410848695894852626261352185994351341370750936966972557087114618142019224386652616067375927478022328252939784485986270063009693008569277696078393851350067032257720126867197775230889426977554117918258722357105686649092144084971326350812478993011103823184249274667794294769512832422085058790580400242512031683459864728627046623882321103899516585789957432027237036401360409358688042435598075288472416381690787246675432963755091516098474546719450353427258231433679972148969945048476710283071472249473796131606710957938783854516968397844351263887995752555830570990275942522280756178052045685965024968761463788882178833948198104753312093298346618251326463961482690637465634760994801227904669451827983400172995590730724097540493002134357051129055481044657564015397472196069437713994446296138279796785098082295113896280739097505051473190113915361974016715556682456651122750163612717932940025890318059733846751645675861533633214681563372355611973836940144112331629275531214033187804231171011906969517088467405535293408683301656368660060797537422481618185757986714984264422949923463106878494345755386609457338799829289389416427849207842538655953940785253635607684626617170508920906224216263704387240573951874019716583533410835809770272933145770037307607813181357739372114588356730076267586913131371749472400303684140113926992317578408563434669790424527284434629893998930392983844456010520168303132974845490217531418406574949840244755827983683507189345732849642760219873351492982247635667262653796515857308798996078071172636720878650444920031989936451823300416846942558567081273227783265742432444511098738844256116273511551995089773631388085050953821809702471659870774197311693325664196721626080109036224478840967799021323796971397468706368272890456797231475113673991626946808346065526821319138358846679668012411540698896941742987629465530126272262449163480516459444756155355308628379990344202991191353802984250417674709784605111363950977559626285714029644656297698274345268952210834733795269384835461445181146584982129800003973042860427067837288021366636542952689084482956530639763161495242335762309296627209023080384704480159423186729127241080134645867944527401450576859925923337559780728311879572205699468375897837615606494226434506746557408108328623355849492297625519625930121366995731592302230297622696902813905066004518356148116820795657174038774610794425367295406882577307445564698049800664473557869776023232271200635733463834176654459147825235524480153498317917977298308476453027294727652327115355429541018182893429973080045887539760459200434713013420274724822702390962190376493330709131952081476323794812097996817142640007779084200904858109043089118495678090169734051975002781489185585920707522725934505773802374668494473731460902406238257863904431841355514684008574996145611812444837448203070281201196666650086226753343557608092614845297602639761466638620128378168746400311347813000790962156436236024349784305095985445184727757755116768319831508393866096960492759212306199326559182566552504325209654199159851627510946821415188759254752324795531718604474665301339007984235512767844779238063258612567726109780758639336991746046971080278879242610361573243273324706852091432345561895987426862500692930671884504048173612874420769210181109712818742356867989432017035486243190193316710457611134150584399705885807646185416027454198070196459348476100390991112507808442173140800998538788189786911167382890235161227596401579873130467227024703043932578865628017148321404518933707262031439466847150805710180631427325448727459051254192629154250588084859275690107326440244837045968616256040587231156622559485858631268300802147725725441122834598650178523335421455800454345351161903956245847821332511851486943858023861956051216445310311997565468677946183032552736665304430528796768354615423834485665679116600883958727854617620758416954380948638233422016993544405146016726779087157429295427006377829948803169738174797585239215995398551210199188244446182605460148919332200386004026720197903526060240546146657042182287302629548776216690575502489406748610461938833374790310711549032617331421973539787292143714871651378886964176807096114143984054983862847155903285477129785928515430785281966666306120298482299621307787647726117902235270220215545419431160981650440578859174637902071543240872444234057040976655482830168690134494480572860133787858132087182593018764299467454856479516293445015500512338837967845434025913026208096408435724380160378573212639475944991995086709963044877506076312409201557815608051866763318161266309066601786035590495997249037930910932523292766994997225226480392931640967921983677095301387179331424407766347188959552518582823005620876817353917856841670465233066448741029118207986937613594270828006279247210850167991848665534305235756391259637730494864799061373567567144768630843644782747217096217502802132183941068759070520310352448758536477879329768961287556524542271921483694977746685887137901589040870577674457870673947197062520666885558557987826425535059201401812916630495481800709968154884333490874180044218352861004683920563972633000006906452107719150933245096791304765482525582853548891442632242115211946100745191314108378150494187359701111727067435142419231085206238210298204860246570830427151558146344765093231716507016783404988918444620983690462068675647073998693301803288164105466745670079990121948650582314378046238161074058351885128884239692858110284085220753483563877158209338820548621066211999561717813111509882635207233922686360376811522445226694185946469033814928530594281924095040454888794345852735842220316370626593418987972097364545918585901450828171540715072877502707618919559605151194116410023339691598829634417744777457397374197007925308516809909238120187863403019755745978488686160401099840319249785725156019988806713326745747434248687221057774685409205710942939059618473291918700805025871322775897376838911306071174378965954021160604378206105144963019259682093629174651372008009262913972227852907734841752578172610135269580644496159888520967668990600022459818919956880626852005219720764607037265915577788844011261698411612835458655278737298984723671743895989882083723674276152741813802642496492121488402754797031764470839192587604446308227257523890658046373143156522246393502917134847627578983793376117232042060215146875882188340716028384995164361263059395753218083727584941711208610068001319973075911113920788873378265276952128737440605139865529170115253528538168809218094102843789028569098924033489976495200503712988017883365658689705878014087669726122061982492237054613341339225571991410241941033720444991665819020967744810620577035106924878164612305567123036593320977970865185435116353052136136369532092363303986118175175173093189387192835433671916028327638779087464600226362587749833011736290407652371215054475133429555318925572174708262401336154017568758848916817400328380012273430032128943768291980044586598481207843359300700223702928177305207979811936190780648517268452048255349415990833732153059586410572562449631852843107880689634298343066143210060927519435508877055203654183913210655713767922431854592255880076273641674811339718210002474373154572129177091855405344662344227218982439805808521908923077754280919536758713078266818456443760450371562184778088018263444554795938235232277767897079903763849781162119929042911549196082208963544961791768173788212158162602967652846864494410947413786623338494537870521554142500558439623169527044634712273537218694826130293721405070186839355469551918104216308549592461620815117818329259171146582942408323736491646388115848414513248268343306044843658646051179523689396840106194715700904376364410331164838118165477322216927375253219816580263859710944375624055088184447777228331350824046886736462240443414175634484514978421970742216982365397398975946616606205321367985667266899040825648183843045567505043601062676721992116118712364781652483626321557859918782936086403549502053234102109016140295299895464401501099961193730746701836214790519620460281918649826439687107861403367303810788707934661682257480096271408908901524684997418465861733210079585782312609372701171506097930807755850062678039364636282225869544788580594301947614663702398655953949716229592842167437420262510420430644984564734442075483313897940868700792471048063285026570750309425236270552919856794911421096703187167812656221889386925747985272174427018152539218043349070205905534364344405075711828539293875669082261417813035866323188092218952755507115819905156364935851896711986238109208633050024015505041341959122404012270974814153621591956062403981738285053417923138575851237400314190680231154790714426528584510194652244104154486130361528465726365512179860818246768742723718755496684309748772422269388895434660460689448629778037309788025161485134236793768528405213850835103199282547549356781187425962853319050483741298078725266260268706278167477709057984015804130110521411346816546895790341480600609889353901352336779907747910569914824769214469429598174119334811097491263152833164103568772169803771355555836590424323759615897008146466355417069603950900582998138448585047813856341285693016331746064671997870863496405940703315697314446586856052714978175619012625380206399178690816332383798434110485655277958969655989305872655914175561644472156938305690402446540998708203160165523480618093244053744806120906522422690525788322284241392807321806775362673885621746551297908395809843714444838984687751911133531323299469111194144980397962771121939756757642521707559028275401900168700227750332771784708131739220706137482952046918761259572054957009550673414203243388606176048230676054145867629370192720931568809148335340007408704052153010521249074996748530344345451041442923190205570827397161091165260405187287625511240739839720048387463646465806453245478754964654448843989103011798000251547873903077307227597096955593292360289224835806505790537871974144411816755062542668787611960967623476254503883379429413220601151023604710404853502619915163996071961120668901561560333854969459815349038838411287582686628376738593912783260635589895506057161408048808917371737107852371257004865050512268715947783366396539886447310708475599782634252190944658784101785481759460340556426565094550943738195926042749400295840081415937891139090736975206719342634063663538095869361310831800372230906538255142055673189436209054572872360614141379891912284271009737383286534210582648586021088103727633442502997813181271410977753634456288850110596155219573437101929140908277475507484710248448396798552862915887917542957405561104569596056579623303210929563389808836960381457426137688907157850144478742160675432138097004635660729958085741022003368069623170476591588074761779560141070571119017905806850380195235968293814020798693174646520995073568621896159153424724325854880863234259252148413666194509913292486066847905769600158099099400276215680612154594278349204367480610329222270520661376302870732580741193685494214475212172100416358629869486031080159273953418055747472880975321985516081686958011133578697534424770922344553318781273561123264899784650356701680208682858270731443517616659127412191264841306467058182216028186039659368232229780516878578926590237217392714670567345823043674654517980851068660753247352816506940754564184888959354542711629210676096063864459743619674046576194243045112287840742195173866005271801787369933376154233189028568744067250677172784290000865469420500382706122213274549663620116304457317428472583744755796190143637090254710645740809991068803559038654686006932881920578886399675708259902593822531896475644390666589359210541854319675696197428603471154840465144217023074592720162059049268882927777036822801117784113533435040773221973599344897242078091051663023204526342846177011334471648829301326427682212373031114987866047690744228072832098494427367725783346091892812555323273009353901640051031339759237191622259293738834280900378604394366402489332969580293773076699921207073269809686368998678668813846133612021669247768578909622546980751393279575229107089255318164457090747796190387648367720521404916184450021874475515854706851255400779003974207210877593637342773433465214771343849327616264599718837154544912539523795930880968332200753355433834459662376138567075495692429533241229642195681712605508414215085991455765636920424169214884791176953019847548841979837930280491742745855101618844098789075442169314269694227158700179642855172706692480585226831067764979622841217954674800657485840828414456034795519932029358452976373556012829656100128682486210590301041516001286705641411163718573986530132244289253302018591664852346491567546463636215974924773839621759913018100958594170327449448555953022579973450322968875898400085676300625304145256674844293022151109597415803514301059362068152147168227881811018929434742915422968505915589108394809433618973533975084843778744466144233881785535343349868557381806049957509561307406181917703885574416379385271334901511553451302733870565181619515636528463308789619113960432513587566378617146251051647831671766556375712008466165729301770772507547464064448882632884989684048633804795276160383170589114594556249826787193361207673039860450091242605572198569593645507838619907978681513556221159279462797056206715262972046254937182999532931081309933233732348384689784849249655903981733551566737161357362057680117766397353488346995729923186499822376564155262230058503447761349872560819227797770222482393922725621515703258269878241723358023200029527467151311897858463755392073693841961882752480896870960333104394166445688325415207227522105027170700131666774717440716582389605575596927527599762974313183196539691262861320280715022745144235768361404993879073170639269921669387887379212469971485969836237844298800865522681994184278119489679058959624530662376711534418820211573121169174883615780196373430296225239580878870561403692312984101579875817256635827815620518842575912589019681655731437013468677761559513446282405763761133632631482695933017902283255128879127152719327965599124256547114626517546927329617208484839506571827515141800792172890832689183259401860093429154287183738627736349939427747125280965759811402772994239710867303113545261990601775462335792165232582929173410462971133498372462374470983483435591832864290877944211698873076489046985547511632811684610401102624133148930935947086746516146427968603742720231287875669830872957280290475694006873821995162800245143601011532182756389654893668913987981895160569421957722937015862856109790937235604054534329825540025808306388470547542277760984780067797781656363501141808799197754996028178306263387531128628376770462937144641564610315018701713489597217671142646682727898641748639341343227172599390256468261614387925956527686787970406180297798134133250274406076839559396732883598106043061368590990327929686108037339014887730844427451866580847834264567726638436654753317513908662411071578247350012621147486804524447607661353627009517732368454347644052957582318755252809492928873991210360755607438540183609390104197801710283246327610566174978813011894357365556322982083534694848826020651342857338042554039245334394683846604340106967133091814311011352350050714798557357789280059061159821117601471872913410342463152937319791404348283217969211945481994206467808321456422406706920597870853986067499802657882059509995255370830667377723164925671626073712951862196936676212236674299504488911889515464896606280040707631624874416641034813990673566327817790869074624563538431471330768109321622247869782101278559667224227721259268525630072427920298594083941281263528191287312771388438948999443410129905562093340307497300876239417330717044989248938419063032246202339600285981395940252904511260093890980374702540789126953398522298515460711564264728728251543227895457399902808440968642606616276120569177211039157456693550119217011446449924830670584315274114579180056994396407298029833601770852042779118397786900783222254754105758300827236132339478828987928533150006085664197207063321248724925445470838362421822495710955328087285543542622511525240661330892064507463395211486748262041174857131825151002179405097674903456205256235776017559115123406754579785041580134586993938408602320842832891362572023932364234930325867921509843524732858609904648004939632128669706186873535347890087845110920473278970299265456538647060750926578522326222995782160489479989137782290851037385317485609076718508735901793489237752337295772654879912971552866849843043874518543635033008235312579244983992121666189167684866220025570899779569289560161857813258594106544661013072784559451757713968369712791650140906404939278857825107349807228467323140222432417435150508811524886581295454669129195095288618834460548385293041326448045370484708359127124791733714019115491941552663059599348463845357093138821588899394106626345364640912267992891705258787787008463141302793159236460185486716356940116957741568521880821745793244058876364803227906108894387675644223205984306718395794485817206853982225755833665225219014832550263095835510194193084799323293784456952409343883663323146770449992941863799677668748028787840350796621369849920454627717244233311391272027152954376861994024365091757568738227642932619748444291410566891435772348416630421225110816632874075785655243294464534027325738441705422612713343921271237026748590883047512768606145698086683132157704971272041627956617809032708108131972797309739814297773271296012008442495098703627417004343090819978838677363010941774026171845003881922114879440422919317586158240763484872237066028540122946079125679405567944678515064983425904759076146549060623246721857186235994923025991164828355349993872429490785703430733584814277141007736532583881229416606154619110689946579272810751288082562555650100901518654275670870475137855620297918083799989017873268431763915727513138615886760805161735989961879869062588492133619291729135181488662255628281863427798145990447497953954822350038408568422012935337445664644113026034112891149403830153221174532424324506936495273890696023379521994300112262006802674131628344953708249538971561906378085360703810742065684928988316272595720378797817877309431923242185996380081744059991825621713723468049062283217281871788466964969754131514420302250619566467084259682574195592949965424597698390892718849875856440554298824949572699947332843334921002501094774685286525042697463045151289131221541351102795920519071922873449475692607694380809463784491802489151552906581078668757072027732940706286459258529890008978327425579374952606867871339894629400387671474436600177444533903813431550477792207571165285127551038601591918418632393608375593430427040369075447498459583355108002846919541812865668889564758852368759621871170461781972711350938123819542078236409505597492867015268754963891842723917019253024248152061681316809574188500631934016123143153631095084582206231920640316658984843426797312125708444616012263986088732031487910001137895701308904952077905323503310800163837091479959207148727002619407066749039063715274009858647482906761494740661390154624048970348564272202500780732149162893122479818350037810731688531012815785549239572795369254755517802523949251760235340005917522884722182616543352464076467146525914259361659015343855850327450185877762253591932079942571984438622581513910142397801779827832803022392985517227231423648905974092350689217461431929309954975207104478741938747755146203752679037571192713251462540926832606334971136761299225852765295443798917959483668869587131751470459779408490570031317789751271236610360073164951372925365286249249435295466639378570838979814849328298017748654917371060424799166590710115860800596066042475545218585581839325588954454557494182585499414024694451640464943186992037352550355919526353136232120234762811577093808910983304507404148858292624370165805115735606828058325061193449799490522083029801711019883140860551195811146568923381428127868025345547222591583373134052586664551188368290169035180337594718714031240970367579924547547599348692597580899561183924967095658900514725476253121636025473607721539494398921669251289596512163656051404628871177510731610279991403660709864333688320948383128182579088771918992422317844524506049329325612907246678561222668115851904585511214338589956164851206141258480040123060421734747305025693704084254500585531444968936810215848217739613704251685497479872654742178607279921773336770973155177219496948983617636532381263579417828527312551667143909650178228108112090829802328013715471917566507247391557523335203871291181975512634404789514191814993796535586796075450463535535921404213170433829226016987349759792236404625947496418547130568366849653135068089734672604771556677284186385437640967749225180233693289515046788755720809403707107046453184748687300561777333339560916639966350867295714611265440055154961686745434484449194323453551785455606966451350613150776272082940748448731057370953241281274674085026724731934280059901991453704122870846937532243611412422646503009690945534017981035802635239833629815581609023079390934352444306724018059814445767004523961654620705211598389131652562512761935600561406794770453528792104523244426207824230961171845470217427247818880864850384692952414240298212812308961221959147171704229150166165544054002536626556228880320388444556525337161124735673989742468868483626381249345098248614672076128242709067905922370338957338518729571964459533152968794481568671577020210337169235885609245867091094934502987143229620367839904329531453117336378026037300872993149721274235227153938238373156872373403123312927774367909030101863199906460703510589072169273121193205830870777303667636672092181685931552579115799585722062093320695457096741221239704968827332096658301964015185438862976024232406221155095075298425792651832935468538838812666343839167444189577306981820944012694755926410225311981531770784555617863802880440403268446571481261141492776804641930295381144656522311269783839227852512260792162571451304732188932739605580242921724616350813261476962813292104844397358905327777685966223253097586813198301020935120647178444585529177480848290730603499610553653143296354922872626604394053697475032373383382937393074663514156999549189693105535745386364857444066120115618362993522993945068163293295595847043407217211023406382745120783865942700354623278291020011244382611809663606721504052225543442840778665657377624774251786044790654231179227016443558776991452157299263325621100119477953537125783320870772787370277442120806110947224628009475815712178164584929800711301847751616120240089534599097057930986312928890133082537612481930567057047710114016043978457259431077449005587789954098834332619399118965760779801237643033892177768542396605709227388429891527006405671310578821221633693981611845552154948581647946941888299537307826651997303089028948081516980500227083010305214805425451624943589724109308088092895660346060733250548214693376875129180474910416030706154951154941558955194853397717531852249950627858875303670930478594264399788961076386641938592575641306199291682740184828956149414684176333736568814558892623471330685484101880095464384033212025470398276563323303270176692033246557475521836499088164245852992737363154694167482205789070760872717804233657599822511117916502480426047523958297984857465893601222899315003200125275489191741094579377957026784437423018707793428703106647556186662041850246160595979121471316877708141068842585183232295895939119040414942896437777695398520747658889166409038586116397047923772165703537233832196003678175832990268453262370333450921993856544579798488611720483359160535937436683828059731623998373335290560123588243534630236797841071284266887230528424214595431467551155642075243314170668159708649764508927242193253174786619093848261197649287442046763343789157655587494451363265869480823130439314913588426167692293646091582542155183783017114833627873967811058430416560616477152508880074768888852795671994975497386300630922517663994075657035828769629196719672075524115324315127802717831479155728232887378931343414586390520921581771072785906165249730546975511825922647144560848311810871300774200594960348989941112454950208993456114375353620862494257232093567923786389881146041676108322286881725664696777403705616003962232413878886184141344966376514308784539820730746405000705904299577189893277766148443239355180181794677172872402917294690699431465179380394986485725008458115451555791023884550678905281984329260805227521802548186030635091284255726485736580247517515624376195700085807619576584211354801920006995760412374749425300983303751161539420427980396780961920005426954054115298339617144411184989379874237898752119550191484591940397818824754574183532498703613300668750988028125835044425223881263637856525451926229899521489149431274500589165973527842890557869119222861533764858512613773522056521618667413243794627812769868650731579174866406249609574377269347833678503969660657600408941003582399810058995893650110696470839548483776342032005948439881523371105480296070532487770970656917378288968924366949941429381162762419203018437332601589742185047808052343852997864307782676771525697975478741248157051925253610572725559751726785254111991940029214684428404638007951311230916059795857984506779452991045410213045472174436430374620319974230596732820627464467946466031312125079837458404032603815165665659443041168026148240674710686502656459347809860323639024840080599754419453632148627703322167830494525882076881800285172812460209759728419004772812085721121909078440173521971259620526659237626831791562219807717279625900366048195681767406813326891421550962403084572539546816353814404387776361553968455905679172393393132995427325924483752343727938175341463658971596368150741681182078581322610536332123950404493968000783037107835777750826513559422269537989591853608133541704684349329152318770571673266224746778364104512423416514774623102765206845337521413163751927957114411805681151445008106464871077066191674857424554262424931940753214623975924979851653612248660518274272631629765164946997622493538734288181029390840289747279423089132811214349940629333876321774426039016266974826438992078330256396394874722830546016597513724866591715643817979243466766474574730840878177152442138883814976565825148554816793493626488325394723439565533079832284749061027697696696720818438023281949626288573209094915224663493060239655832594494102103979712313512405018554556744410067932185054572473734522883758583635479112065131032135577099500503440550326401229978282461312949711182149316276999849567993874436069515626148679602354566813982631885914100021150643462777120229292853427486206249621747753234566922812588990247334353685603360431676811206635358185982532874091914586947575644089618724239526584924141797652389237880046538197401852772622858478741062329877794991118963703821564594195791335672364529487167550777576795003621255167636955642444693330704998211942383226964427601188958584591042901405278695784626925017938914474207385900756951627832642608899895674269440445640385962293337780559494923648341756264069350851550856684463580644701105145903732223623886742835968859115138423250111494847096748730336418971229731659910253691506504513050129557413829259237886722133911493260783243588496891864796414377573250283334079283770797448068850814570636828544247089760074116828697274640589012676757093999307398020425339318885090046740908616382921668812654477012922266697695488345219160946899845253147560355066482007593628483231214302515493441414514500186111798196286940328337333918219449283917350638797290271219157633851354707045910406659792009208906601890370572338231321290795167586371434003571727630416489919623998729188082357367563008574372303528547278738671945394498834569027999999279838967195898061825876221018436518745881546436515048513810769561975276334288014057538918826319697697136902288010982568482743145714243269711569927864214939705410503760544969453785651128687843494838886219803891313430181393339870298077727593750340303994893627952906552478919855214269647690464520830010910849011637170588407922826734532080122918095528778288389584853534276158868431957816457607070147888914010561971383631993339892110749695380403179977594640807778656395551532736737630014950235218779752282233531137704530576256704182346388206012885588172602703120782306236718547856561628135336045333383792801038379449550513632273907724418685422953426660115886390127293245760300306291073685999857253095041848657313390731628955259393251047914652505675784097604832020340801182279933022971554339841927139782456982298291234505909775526115399104370178065420603774026578818240423760774849582124829763024260560494721933760353994561290354514530148217967299619173974448213670597486582516528070972084715920865774692932699425649493102315743662715563313458493936014982157047252063560465484152343628820330825806114264039159458765583557251782850822894413598152192448064863152788391840047020499672837677366998907466985101490856251326801363110667547343531047960055835785303343152530732347840835201009952805079035740607660975876015010757709093776214460220226409011183848098885085653735622856657126169031538609189837212498429394024408733733791352297736524659587328824343713595449237251705184743809216754037173288377616865709097728051271663994582584782093263483583103520450155326894827140910783489745985319831620950981099327473604643139011851845101918173707067217253689204343047709779414205650932052216812409246110573326641936781377111922098469180908287266697700179721379359729334941144424610164341860094881996877700910416769061218697417706260356131789687316678579719460712838989575144597275839418704836895217589717798520921705467247996950790067741658979290310708229328154456652404517336964270867756515747843733461731150133722585980061396605557218657621273386962430753599825070385197373285671900782751195432995964878853303923733068995147804496709298684733644014677797572178346397085316173833411578283716144218912463435448791958139988229074163537356504165680058055757895748349953548696738601238687300020724795505272430110793012003470038558806970922104097007224928840666863890892088094335775428318801674673201201220639627149872724042337107226521140805115316932873243786078595665308642157354862852535320981696242863310337705305733938857571948240662020954968244952682714446192979285007912410053175720288767417318866464867058366963385798192498481537393392175993766033230898497526444768478323568074556894869462974601204523132943239570031836275192886395426448553806545353086638913629932519197128612275404978879441282450125904403472921647456869483847107629549949251650116350579421955452864795362162330151300276287637756871235045749990973323784185015256350853067021803676901637839362592123225070601000468669755675743894740519567577242946372329320491886878089959434980165859938906208926141757733638445624902751164480044754498960816191207711055750672537434651041620059819065157468559536149089597169346062691301020560569583617194951321555556746982722106498803958162772439527401172282261225838854786391107676593933383457196842705883262320089874956634262693204126626686682805318074687106629399654557007524502579144321870534004910022073223242150093223914913631770299929797265007364540477120561611365422100502162638467873197888656514740619579042466096811443322577594167327481993097070624824432823044119141790291468808316070253032802973650758929863340912812649591525071382134272022879963509023348116011751622752568380203993680527300857394129972976685626773740617914977703207667341024684463992098300184260040407217733629300158116469823104908913203776100573321865381444884046323705952805405481942713277382761075185769096075033729241262935034401485628248701344059954880837285686129565027366944059811469367002027670167378456088342132254396194071355570408068215755986727994031121767980159992749532854973521372870678602144117165472702590634254755088950536452051856263973921244848520519096570877821492604961588561396677832844028358951818342390986982135795519546642779386530193251566008482961139980808618027702798616524121901784882582839819678678049589514130466055661793550307923268935451032604090325317252017139952026322473261381993789028534438785177819147248606815904477250950936460447406716338400674693190097789555792301054470717951958680184861190899251527927817539953186462314158607013807001794184327300591247157923034428382832631785907287343670401009220133508041555478411380133129823103398841709078579879763608576309248731600439057150687819894313748689889707893246692266126626475865832369356383959734840069093338747895318012511213486729611135963203953856141108846174909540759266011239604378483792919099014544894002634226081661542039545503123549016876948940175510590313607821899885700716737879614551065601257827961884637253683891444298104905163499076893613727897306084604718085279106607288692100277733304571687129328917321203599452529125634896713853438553774545982467668507847207609218259685328674546590958243209815091059347817935353149766676240622008734536780284594765519688037529196220460104608011307813293374725366783716586988102072153456527813118886750899227384058078695860109151589246904647741070000913591584921203211510789721186546222983740493753553950694030157433077223849819582588845912114515593329744542856481050198107801072674765318280226470346656194514782153454528568756971683104547155923405647478505234211075523388484485026894008251339077606810018760967616472611664373243723584327783258207340478847933660876659791967377384408591276333081725111645289306312625624166103207419799777032298291157751112866172179715855261554525228278563805302920002275973027730556337524897743936738794775858531110364039879772132637858326474747791861399847432846092300134396569066282592973070687977791854944182442363437816846323176278401515905158988839910528784797008846538480672329026940846604875763330677003416326642185954449474038838042252384675552134210862603439911246542670301745833413893508597174324008836284261617224027854686698291969902436350333775372209430469093433391968884253866257367475206877645067831088740240718296867930437043879895105923167611275434939360977605241840340048003580243590985020105019673436483689242663689476206959885500555950018665671421952119605142563364572587456128369561113840542062085441790566077282759652859885130882673950913469875537131581784838313049663808867258655992187130492828477918046521850735502110324496094611931409536021366400083183575332905845318259688959613356687496633170758582919695108031696259469302649543846718556082662608893594849030760445925013473581423767405102551953745902915928461649542510659530396166925527029705523061000457072457068356542278897321993007448400620724683709369757828729411789345007941075708596085163506806988289455452019000376639316445767336949776604476652743414247026815640927964705547796693446189248317489607470626332544655811138101905657456674086088703942654673143990601148441669135332674570969200088774022452449255895285743951644676195536590039131505328395011763901616707548315634624462563105194846310602684437283019809483421018089771822931567895273229771717153214397756474415689628356861403117080026045929510236467017222626909309186846186894505366368222503545929679556142067108495854763138183669089015179849872532592568154316588700791473305198524121425819572989615179974902909802523229916060981642324022597779642255506212620811505727750890810965876688927425788571026428410202597003151724076465475994222599458282073855087428214033718303808608112718877292158396407952290752277627896323821928713540757857841006057533572802465387573356927000036898382122395094634578356229282449421727568900739609520819520254914017394938860788857633280060509002900875054994851794046307075368060564672442336619114974181696307892764786996906039752835437178657263925501327180565382549387431111203604237047032923833479258533920470658539791022849306820321100502486708622125808690776847149197896379388958734363895509472271746577721133484889746621006822928270086646677068835895654310975322014307921182768640089984462577115443440773812608687000168254086930546639197002617650804383222380832626157749094782653738899476574577438743113899232320168997349380293319230517779316660546246094502440866239223467830500558194285966928839315640197099429685378992546523721739909261838576851599550497706357094906364301322706912057558500674724899225695737409604434709942117830162355673843717792519165639758787035023453041257360395159121039600404221452512404276695977496450681990735228968896689766420749948028857206853256675511363620882331552610962239008215148954537458145325463724486472754039500489398424587005218782876328044584410315805723117569643031847800890394685542392394800342206011857065667736154288088936483357276915689800119385554385665060261987938997276893095158424372243509537518036497390114825093228574880050704270476260060224213279676337713581536836041060271721388345792512992109773385262627579743371884122187294979270381988983753808929080166904470956428879520759123267286775388241459466898268428299472133679597560785870295045210048957788336648738609292670506060564793111500473633445381145717621780967822629260475256021150167934833282377781304845221723684523463305129216532692561706982799543687821027702516833123512893560302333483930663950156713507368686792405896368570322612084627932838302946657346165325159415262576342588440968372559367717883048110620440270728186529818211690003306336194495103103923362421984473168447695982299794133684993114087493259464874357698775731301498468744829480853468652230425569923496605183859757740205447652216503873721388424164974895706789156472147514120339701408997067169183840676920698365399674348106639469376657532203677940763911318205966714813273731762681310506445789973495191919825160173650009531030689545664472159056303805494647232610557425635317179932449131880332077620375012303638344137504047418588068358328592709592510584442103378967753269541461493807190393756647920946793984511391814916136360430138096562494453129084235103594343268308820214179024016349304400977744352540320726414599010946667145841015796113874606860571929178969088532902284576245568176589577270547607120283035242924942072788295131215552719625444309017018155513068388086057207450166225695955284288089142357994206194275857197095852432896695117428907860208683018526314667873245254808698661152308294829747361114324625338688798062166374108647903476365509176009825626760652899645760639771385274814290686749742795222692548965053256707837245964179935155429643828952141359029985001688344502186072949686382647993850194806801414664488053902621909114196952310592410083921349338157964397521039841558154681427512326158590789602608310874742968928024808991566360588065120813132749291160391867582514155714030104576001779397962080105569938424141663096334835307556198367385677615132444783142757635758239604584759757367439216479826296580618679486210905584865718152433071999009686855277038813965901046941211678718471875543285991171897717500562880054092015569263544223925484746513963894866166710641567129318102717141582448849199085103763260886986952382630460230083547772212765699414045956532080274594637475082888461991126051322688291921610019185756514805909426105130873607743116064169479273632232536643385194255132224353487031333591820850782777861745030617477230338147308608401392206392524757002619776712450454675143662350315223272250969669782113808949000861154030376195901942168939381120878343936695242438667806705352376622014371623821192481553603006399186576088751035571852382931292502714290373878916249764161642059443361845653732860517422904286672909470332949352588325436412820591183715183586083811614673355345520151757365265980513026101661928715148960905270818026786421652071864392402430284457622056071936668544324929579352594458669314264679375116893091235360661633504463107550399885975106029854943154796610057550026656248051411723569640393447641264411692969048981691654450593465018995291678629969398450407033422653314267328688724647298236584200958481168494636144451928969821230040346870184227003910455179935563107582141319655397818250005037191221373101330790021288888000203600995660197009779306448062450584254743782222805875037030585661725533072082732589414996582627935931398497186055823893352068416909355508694994484973778859020630112441416397311687053896702474472484730885398443499114927623075152098808445861806206046426201998727339553183948867798248863089730629026285875630837901328754593034839742203461297917363622123430883261992605145155540167260507758485940624908066554902814109407885163727358062347611008883504484439460613081988102664287450649239016240679050647882237114429813100587940660144805639811211205054910903446278022779325150396604909055098172547025554621872000701016911152271091626983993432041439566879987291498240193772221888005978295686521741463236432817977191097848717702947313610294048600598849382000690537330238406496440229046498076072282238983769252061031366535653468930626181558548026597750639553329244666114372259318572180661483593452879337404639126012531834125948380666644256383026891247537670490495721141790312058997895457085402675475582256381680391899902336926479576321035153227733055435480891500273091273861747907514211914213985477768730564595666542878396921780656025074273109168210536100151225188772601636191847493721086286795206667233661109985888413866786358232540445786425287029792286301657543083637468426010410888004521220546404557804962412640133837837699967253180249710435622813177213111813098891892364049243952854007154709784890596124605388176551240332058713861912570666104658721936912343371067800970387579241529394676270808507680446482181387898643183533094200821749658978883537865314122127732763077679721110470368172624088888990502989807566294490461341340287001986072179561367597684502303819886518479182347872230549563713925161993600546716758042451881163943178651330268195423385816465591677188541435075853327056724544078593198811366836618096445886768301864145188005300343856172556474050169027916683972596625085649592291451143518587401612474730999950123977993080245803855156252972615681434225706249677882543092871364605991267373840477636709369178767819998981419150040367378588616542232593019984818650074168473774712719642828136575377927408141783522409564117955579003625251323007111587831387415411353467918195050180864392924271231265498561726808373325135929120021864537889551183943959440207398372237253676595654064170151473159883957585915975350826582362852118626126232215162507235644497029699264988897818940669626712895804066110960046743554512704194339298727283124212698500703060375916095044498959341766003429796122036059295591613404834345418698595015354321740757163785105373672252388459148286235140977333685135264774363841337063965615067063224278058944437454290175647421424800812531534452322238962666760752931188681075301800515934803818620714373323668926815663229721800396081404179811480967401138943958144097217038148309095697635325923880651512984806529827271572325909812852654684138291622357560902853271982975911670092044614486906927346901500608104619106458749190434369682815894040683795499111067516187050732486531358560083132090691365526760576812751329007590323242080574658735638150635710917887582375522380041785223221714324848398686560485107164912715534777714510498495745465883394779784692452810773144509783904809626086441023573226927655609426868065400331373870235141920701431647434990226775610479147840832129017268980175588797578661003823628731211547497211842146758238697594859651481777825016149478321922778345233553821635483930479438934732810281226306252102130498417769733446054279622345300065370382272930083586027375891798680413233816906912539780694709717673049012655321856033494663096920726701856889263625330614457339007281695250873110945495679826711916808559347608288780935647296776523036689301616799549763387059107838927903697893544838138770729544990344493481277591950798509002700985792603842043649036108176661300906940703032403062217723386318843474313479447197250098981036780512368192868544889846929954398876340611487983170474115729774625800858705069300340244163900281476630957104363152984419503669403526607167454017767967583945926575430978677668284199691644035252930960264660155335011453317201666192848375989874312092537757093900555413035835870782965438544619639152803392435609840117688878523884588560055344430113569063256042661576271807079278322172137642977393523562546243195071650231714043901731418295243167832799662103892593845925227915571824942533319090656937621288873226656515637075777857191672342647266035610482582707825880849683916466222342870097301472511725869953442877678900552376370995152887020096511230786894276522317621644589058401679239812838241067039508330690309092944729126558113425032821727909624305587130471193043146396112207129419334647680675636477320495504713505123759742519100502938785674087387419345097784175094224735629198111543324396537461411021215170654593195652395760095994675984932210846695167752700354793389385731223366632853634364271076601367403723700245041728526867261143202287068425069144913812142761824964026514516060406229431955056412064135763934143907057941020472655224738168384162326123879121596503294003799256356676978281218846179915771333988231724062810379997631866929689205020535231474292867866298656885188571687936008667949026907693537903359201757095627791374729432209436751070887410486709359664990278524777117171581030176269078356771189168925298415093084681705011148181815315582853927397649325214781464349535354713732789802792940534036298332961958003935072699309893204591582450722324317496173144443630447053561718627290994238843880329780144409303819692221954530145443080012988603143771121395280343855721293915571304128742710958069773671668398107261194943370425273530210138342164089616945321468711628267445112319327507150684163803364879779906328200107123240630216061298873072536652904510733936170558598702740180439775991454922070582619830834405041481429036178822809814301158360642777519724355149696017157409360797477073111392722559991359383538844316615506995739596316457044450308987457965477063839119387827222435604401168422081334854865817059989708897333738598109366828396403221478744705931798318181905878227805953465888775223980730807927217421544046106854206247324972156233093325358942145863261944978348398970801969471201713483892792597998715067617176289844603140825882513874986896277626660913616080241665231123599897378667403601260231108592051911458605518949002166761568083515693174229396142327183558026677928836286263961555436241725922338967118444765895403916129266288468103086323605980242142011874280510820471478599301195206960821638995500339580453128601222212055303979141117898387708528416368006978152818278249761710389496499950727200782371394572214562868432353157316474158042603389969622353246328795395879743856548378171911638783925942054095260176926522965779352648360505717420931364687841746383252122340615553174677557434645981784767388063409165327352322814945116624326426549819291701458088875431400483469186669889649843291552086270216125796482801455589549141342047006582711009715964211839876956848041692475529418130459137065810308697257046775329397080396935682751909309407742629976460239423429417953815071774653574391641594111651852364320165002124595526419064673902710326949228385227232365844521473627465221758927859827261128828872892057262630805017150374524253918251636075120148005679740914325101494508996422548794106744164892128118656430214310873706265944523539581532178986559457938296779555197818123935802356298812312599831708516267248213171751237584573698012358250844958378414785587241160196412872948409720299014194915300621123635956167127324041161228850193873048339531288256863910567649545784731834949128566931333300389567240554132759215136597825781418344768970799407010519400154005755132228861047223549114401561091424209565263048812386418044370342075645194745889129374277633769636621781034118794495863760362495892608334614110516141546393494657625052831710443876285837209246118977577452234331461327973581497532382519456287212856132301874070291075977948522597595159626801484085791330946741270199776949490742016415806823282075564187682970733506876516536858708902461685448904694998463441335977607816795168683441063256063211255438665732248126871282101182141457167377999637983450988758253302686641517023244406430477256560118403611524050923823204426243810894734005133229713940741339802380488490372808964275150620286215052244853609745868769139631848954265892779916821122681612093132917718625745493618906580503005445699583088111924836061020032166567527684953104308920410065255660844572621932485658227866933261964556086288626813548007982653382918107726495375357952009830004915543945695836412497560253725094808140993395627313206653733046010790002310584350001079415256012483611471790238938947369390619964400711972284358405221068924408435546596138478174583728716907384869609567905009133302160567353871089013511701228058722827459266523441546770605451031999255528005032930721882095728717050469985754820672773288633711254217278562004967824643356119101039640379555285980695767164526220453456490555065118293937903677746757652345946046684028410975239601022985675938366275032420707308187715425136109556714232773758849900011110630519620536469820234778280142040189209691174597870855261025965420390084763697319225703886585368055157807886574946405624906133887339484918455026672517018766303675545638630486274258617395385680014199686635703200412513759846785534178485981026707372111904069277344759773396194748054055990984900850627771697529342093708993201071580394174852761783533083595265362035744515623620105615749264726691038471053141933590336026709725780643557335208383482146775999578790923120736527000174680894274290947486737136921772915238111124645439712670590663423494695042417739855419362512878536523214320239558786326206475644542000725352988297953653587024875425766079767805080986707035593011199333966392902950360489924545671442356854427394831275744060819747172477040521999355731584843589619162650302029445732849973350855854193895088169947185171623747494723268797932354896655734773145158279363804241136309730819083865839016517100986991634637927120633185129320267560164185247195244550136856615528816473501777100332912854965203968469065746773166017204727936252185004889084891571375650847363101371671848619773974104041988372538325268744763285867397726086321972505233502039122650948218052439835815674414545114590872267982392911888569300656619695850689936523968169286438589216104003168086307755591779188897526184753192791819473557406882089134606886609901304358625674444234879434301443743010102777352538244129545905276253982925542970616585440916139580799036163544802881265290772420251087219110029529258454361723692863785412026600549611143934551325243042584432333039897923797982114250319480103362446775352178125346734215719581746561754864054162924495354568929945195803069256404528125818895936903013138498307267779976947424446759568425068763869483197943204413473549683719117896858542007724338500049177446344625974604022376217856469683304391674033368560974766613472462406860596508158087331528061319977040025721634838642503810654167102249194391173442410031891506575645699037609469002262431879908872305500461810523625762459243828835672621453758709398169168084354481162246536468439355248494881371931929415116794760673764644305273790565508043309829621250690777431873471741731719664384140352552583115475350747899719748783501600756056689810302479542714261262004019134665053091864455693571189334693301847977636159398209880738857102634622293984109689104089723804445401709446412536396783684714583723786881648257640710465024289303000982496968158838716215757833262219078990984136823217349886820823731709165134714954258879023288068760605181661100403178324525496750311851210738694680629157516205870952121456132072104208655802134676542764138833627986479368676678709746702744326467416163639723627258913999051103659945531921915119326816226901394426641843653721903202113552527170350014696694701168559492253788791272726164220408588026770802682052946421745381561191962342988714982065483576639988174090659603886750963689170146835920592011985038112921702674604071149914455703153004317906821430571394726981386128569657624966084235831116700933236982234065221852620850827019553998484363526956449702587022806101071441901693718400446599583048448391012831667287736280870287849782261845423102920300827783845227975859105741998174218345635638040447227170281353215947285716222753361011420902205611252938689420968416102810715074458582441704881333726259734234260673922545461158185387527744755430091820474216346226416180772740814705454567139490369693041233252764591318976236670646796460400847489865995991114094327176598908763967723703518189788300777704396887667706089284349710359356002815593317281666411945459041060603656883495075491449675778010886644532970635491411040276948021956000460444611513903236297231817311275625473645289771517869972856569290243386068841172064139991559501369541039318851695556721058653522515629688999615710525883066879435480477093435000293976482154413995198738022708333375052092305628354122791446621117638111208550800176130030587383166922052042978313969850126881879790043290089803690110598550794611902882543869046322958609989701633563658044750292326327924149599563881139524845041724983330252778502567416756876618322412911472396029247607481279976508582105393396766356246625579387786292308579545210636927804548762194111711449986273414607791091791098736412560634420312234890469601813369095150770422880375196430234675390205195827040551076504551006900658909542785199482483691801464623544940054349852052547552475147945818511957596316893383931326246491799911076659917493622087254877383871101676618051007157308752734126462050662454491931668835821172559213981605043965356342516606757224498400627571024539988992791319444484883468949347391118494635394758398023195691836070779878335272805757944324828052807958040101237024516207961040293296884964500462442241900857844466169870560535069085005749503684038166713170131488979717852488920075799740741676836787333390620313864973720554645084046399365067647956694262019595768968235861981086779502337731674622270832337052500187330239249482140139467908372374417857492845377462278701395549347199231652809372735164918142833302238485641304609524804138165124070894526534206200249712834830465702235321716680098650970773599105610939228539139733975706191406182245296254544336025211094365576208411703496910969990013538591204311333115433852886057105949051196299108394460141891052802989167960471963854402407621324134263314134200745819720703968456063528364413293896183602631863692973463913964333567663144333138470788258226189599861677266399367946060966247419201095107789435082689461950050982827535537294952447787499065638931037648100366421943406794011886115870333199907075306032147981941987613190645113881234474077081179430867352551698524029674879524294959939049479519496583542339455277694962266878405507776861309052671795807734910191695638162214081480305803211913596316213157020682227920056110705706650037378450965252974869189086392502376969550825115260851902995964782051940810053842243342235235642972783507602541778623352399462806994114548796515494210122932222884360136464069409370120442173800304620165059013842527755016034270487090935138074656369899320707575911044027375260951003964903719550543459797258783724134333341927612385888712017311846134692604357505410299713490683974423148995196605296020943773959057563343572392962240691089737842667230166453777984622771552574733707859056039243128634073899157078923638175056344635528598344116980619567097605984984302299412988680844420795642170384647851453502857524804783977617124889383064273321962454435545803567261359833013056501198864710554072554812473940395988164945947021850953936139852010722697522652633740269196092099450612021074080984844846695823595597822319512855710001444337936210842439553072060650877553632378505724289748524507468050684954076401553836138109357282675711238481938658137016288948276673746624433164980187845978642579247092156050562594205287035538001218301336418927409389102737964487125131366979711124798117125525855902401024450592075838881993433036600024192299240724630175242849556940392616984321118438620032423841804520474237042896219196585061461109962670328078492429716831411050328391734441118363926796935268971502285688392747049765925950332666931275077212719407997168500955205430285539280367791845528176072925572189919081396131038659673834676991636853628562842793087825170379469393970170032936681720647899717850101380429136352741684379332040470588111515470934743167362308913694083184000884318851320818337879198993647529318481052227515969434699435887623664834003394368557905826302022742019339110906935488948749424424036729734228397203445652433543764937024183545462884404834405463962977056610268911142647624920872050534298688058428651479269641095117103672588404580769841336143295208510321880557031315713896913371223617827901826030450567782203023689051759239808211848807330502557908970399681412901555546357214231123932162837261638486892998374400380345722579321475681414516134304251308757930910149057852364201976913513391699432820425159658490672535002499873617697319462715618185391493272606276476090215917644887307029157704423769169281468562533876074985437763853218468799148995371900378775160865955211624680358457581378226826956845658071153071341897764567925416875621671230938721106126294049176232694041133599115479695560755908110141000266767065032136070040121330630389356178265579817042379801690415125992588229042491022490698790288342029145972322970447537583815728434602547534652578687040129149631439408655821786726421746473792844770676747101154486179736008702776021274847395674388768689212882759121766266792413676678144774785098999151322545354469220382637701677259868279506634288313629485801716320432619880224705377669859511061024913291549807015349155863241304472381519681038529293188492895584964879709412421498022357055746170847890556486176583562213954472107218765326834501916237737772650804504571283914125750480785611501470601878029722395874013305276527821428196960030520668073166914191079620126944451662191471908643694889734585332823118579748236549336108774452782955947762008215519618104449513732308494575594478272010914529686833629364203761631044048091492807356153476656275538754276064971348929705208326857079149211305000286492514547659894788128837690374320037827668353599936249095152533331353319481387463905048064168986626412934055651068882371126825224851817855158769680177503482400353999969805291534219574257683521380524290676634211082203176540522100579447819486272578436470802294035270413309151847356972403791839186318614820041984992626432818689512121718391096065119900166212855831739377410356267511378891781054933239100733099611475501195100123663518691306710853495455403172997053057896369985496943687781797490374529224907206111688456839261464337119774897311532680723403559728193682985052265216179727018903653819288969735793495905588602656422214268803344214742803003021414659186680741981470766824621143447849098787021856581480317871182248118678816600660927412520424401953265682268045017919204052655411718387080268510293614577039792114775620669642810910091101310694491069768051038984916412651212395338110998885037793479453480443215852845536158454689278182758276732091691382829852177408944047371607311521007049806246710021383099911210049421376587286027769003849110976355774754079831008024057543311001505416771951191468825385667825864775380371476490388730082821446557620578858477430213853749060989084283806051359003165699868843780573686761125262208041250373635205704590521699399439886358175293470299930715709629774548625067775912881005556951115165097176392044673705887882746305550550691204997588114176362936529678819252149250697998408254889669280917072467198986976621874755536098917795279150921959739525926308146852413431820686093384005049885767456905228699286660719671476941551729424018801791956573532113423569178814997175696232777719178507241519384386697251816250597223325419999131871476697836706464444776974706820900030346767061536062177826280076593995213534665185659421274241152324591164268529143157999022835214582098922229857877543832462977855911310358293184180991170753511831062681931392627253600121658133478776149710813231684735799240136549080764445372743813588799718271943997310030315173607701849361461585112519349334696328478883277059571117254915560752022014368470305551782383415955898356057287185962253131791265048998962364258379680103499541279190499043484215024290027075583733293643741634027723066297447566088545244382315283149896083114089111764035843630737545087631427654944248161652401876915065297513033185757727897943984186580573591045103061304087896817745014951022208613754288476669733428355207965591427500589486398012031992317559831312444493411332831730177067001644498835304722347183988438288687965025948494824731959732903945089422425364636402093059433223759441174404902708697945124178973393448027794444487891053735470719911115216789371723803736822822818781355245097533155203472515616638138181318456569004093329062631532921672790062984122847556803586328083263306161524963090285063752849093591431940334298501883963970308856648500101817937246691915005623878971490676118374235306370087241615894887984142230968248643616618979621681426616629989172861127545945723164567398217831057850623193352360642355954919362075092161774101414192003168835336662077133585981541200788163325385629308935412410672238200254057793714977229961571769765551873408030686683902726323889888055318755432988648240894696526801449400470837349428519679226244461674201412476710224754447324214385140702885236654706486848895830241378989208056945315013312472791685704419139719292430263094207115872259881202597799344874356666610655307050246146924008605234758432779172518500526353994961800950137561156032173178372222427664325704746646672419209096912095596487854451463320889500663651418348410327658446542481488692756732021953951284152110027252389453744286296310355729983195974525359643133695722554545773194999863117119876854084150136327165719538286022756089837990565500101098602992456471270201682834566207810744359448812546407541352033135184332383334816067218654295849723912155061323314872157849807281736852474305249827578342828703040740587989683385889113785310214625119199110022837232315261723656680829487505047544658514698621176747988829644005841864538365832635472571920853494823997199067011749264529688815531484122257769713754294334782623390916328399603469749810010004683730874756064083025647030449502089171561156804464420907310442600699155381470251799378461832690006507701278402266351604865544954352072207761585225542378013623605609234648791965122661547817377893795908962561769879982138297740560575933967919094144649330498784066399675649151022970395554495258045613962923853024888457720973839991003159149054901224644572673167246925581699851862518741475464395874346633694302620486609250261526145856514249961920351396695423642495453610072047919178827145156027209957553393535050646260887147059007917776528402937311399290519435668809848422598320715277966512901691984454800419416518113145043306107144760725054916576786797047705424413626676468981485430852698598485850005675595538806450551421458381429147985067294505264916969971015909993388159554098011570156046929226734104629796956525864178161814316888573888572918960467902361413991449679320843701891260987918834957083527367261446183540484224131678959045392820854858344864921804422313587904771967932396463451666879270576931034505459908217285224142407312245430942767298694979985204838688537182319534630204155270112184026941614891048804969680754495398893573192950246489163035831417416617343515967700069436866129405218412650374317470216407733965732767887288042705903062202087123740399816742829305840824723039372880714837256249816063610056083322287825677436803557385332472548708032947712810673499203849004755514794257505830494358651379785128947592322609829031041744598544272351142066224180586007903645583119362761734880289452007510765437591361512766725142866485523491806354341492957675148666335757622328711973397241000022277437991630469533523187986031019937607076178465364674168991244949302902146742574560040263233314485889252094211725786841746880111066253492299736742335509822622466119632308903595229661700169508726705279925394727854119121959998769046852181159234055409375933987635010548095691702844483143968856819586212403641269053670714816812094108786854666552911795750831443651123934858933577038264861368860024397950396489939888321192779202640720066028155350015003484590721924579843927181618891630996811966639796406913758539714614384366867144444504847502566894458595484546283977794116032713798342493855687793133530417289248659405999491295982838262664212743814248329805778339795498369621359492184526246586943588059945203224573156655871838120348657700073122364811976478705745040916718017606926999033138855842376784245381790308682285536642005264402684283329544224252339446323143479465621021462243156017717044999282492427170047721018467166476262336375070507228419501064904649263847724166653021782257470088392280215622393988836181562893042966220186029608037797414634527605374410809492436262641831383643031771734653216551964833884724899751285012679758685775542620641459363571419930177455561861423980114687837599378820918306715524401247530887259678765650576171189512652819014743197008961293568355683802741388354357173755683950777205460443522341473178608349996298285987906132970300084481624758384982655169032441122301440753008864038526479470796577333279689999160774786280234303484385025655554472589180994174635682680799514495629152172381759320312996693992019224094881114801323303340777664158638422395704312322039383392436880979134120250321287841254437099176210011130660474635824363416324688819127038566574906967464873507214284294966416533708465846063425923956692181923374515900822186371572204537375927424235169512436648725652123446451970463965499863703627296070664984581682142410489745041620966152455759704752922262799755780256345843879686940154015565681808265614924603173440317740571875602457282087694019375947923702436071119184856894410407906043697807631440018715084191669434489741066452835847481982391518356585999810791125405873164812371360046044287253694732828816700566664818618033386333848042416186213120833119179502309746639305438349474847952740198268205291907069290183246692458369499310811375712016763140471954275197736101929798734006045834090480437830777658238143080865147021496099439298891645228496629510074349519043061489865031818840488140201551915540893228739526929858301114220148924650197322479056902878645602487671819835665736544847734735926119794445653151829458758834764084514477377312389987805219126526507141959301013981639885458063621987352880710864090248350141762985005202930046634871899309282568180702009564492149128529741118551301268012572843582732548251757113699082516576461803100770616768271997898045126286096382988940677541678131210115487169899062385142839982314039412950067861217307591063785308935287255758423866881224777878504752822346454761560174832498944805528370865046739995272216820151020802486784163667880383346869017258496361280438723093603647576257123673203794561044391880926645399674491747377125070794621469602128335333824362193949928384635688628072042088744247512052751941354819706696289912360697460551792789645052229267753096089003841865999771592188807276166229877752871877484361808616186801808186618022182421711600363213119506707824346907050109036357700673803422095881463839314734267139329040701281835976917154129116786339649467307047167174447361974432703115550366262019303399925207392076592885898310572674991196302736902098229615006107663313422238732094100162394631243946632471814236711892354016570030197183195123947769096778281365433867212353189326974908973676215218983225847396104100729763172902530011290435298780703239831342354699578794922249154307024525080180422579589963139707467712897329021527317241493469228770814629214631894497701228994037020390712834341696480237375872123881199771469235595247201102699767405512296758388352707173344960068734412428827763468509516259117268619437358765150084794927707658062007249281930641399445288196846865314923886814151270791644752493966585955622735878027544611237338712121996440505502483806271792930310792763125478625817353131228260697139178626578505768197400851484477509190534548240355746389194360588890496458488197633367370194840658690022663103154664117665170129844626538801821482824001991773586614425349475872067462140386666040994878159760792834220724149216436576722620620238382724978691543792245373840844560002083425014468590034661558133179312454904989913568504792012296224692852443610789271373378219394975608157123712079948596011905216915891328133046379469476831133755833806307073178752158847413248348061250061487831376734027098161050249206230911452080315592828285232553374218717147843626555304043102459222229055489793184345348115129968273531687783226462134591553180041517241452508624290674131730761853759056475581039926878893629401359141092975868863453570235199156933691137321609537326101469148458937613596057182204001963439700407254760976281392095465822558494886995525246790100882068748368156879099350810002001640549176648687883955097966612877761401569323757129346212546365931957118687295907735757376888099448329215531873932588198957686743188662652233230089756484318726163799001609463681781139334148478012715729733926661494345988517623905192174124095294931989620956803321216439598865167053512656279143050375061964508503510329473789237277808253440213152979689397110154353416905725400795878512521949015684060834335710438016398258777035201146313513815306220329878808993337165284964958579220603170656435026933818781770084013176112692290913392647997639069816846770018433737250504437894631301098087132716672746376693736342101317374079278159140731301006609415202870970594670066712781681999867400001270666547622263502420796020895948703377116003019545165492877418245221754486865436758912368541812770072646528587510567469380385908255095593874245373150111817619171541994507438013364727776153532097524585071600047369636572050330863448612324539397516289746176691791328856089294516912374714362709900760858649900287750780946313637521544617219231062124538365797280656885228750386917582495202717448425252666602453483757563434128697327369188034898306553934222764043948272043115482145232808089803323219092327781239850486512280105778595279384953184602779796084486084316849562966576303679325168371335151825554637561199091989603162989663897736903911952696615594012505980035484721148882923863688569602292047920344928001941629300323106912517782777567506166778738193246144596236464201593530201086088853360306551796794148180324212375289031134226144632551116152367851323669061654248624069160210243640774334053686071922255566372065806589820784198061855008842196617174126534209960180219359692288482610933315542166258521693610232792325704487595259259802698825643174252660269353131478785106550016675364153453980503752158136478113157998302783419709349362756773985880197718735141085781488507324820759793008305687280081482563407961470897086101234206234044260515495958682531837932625356674805266131705150811008393944022954930117718247106531373427123693021154528480737504166637980068806301318424067247745764438394246417032645976207395391343763970089013494118393724416328780486030936377414518312037781137723410734213236088427227450476506323280530521909684021180343728420522513415584259782197071443232406667329084690590658383645767203474671065623333849838979634545082951964284489640521755281507874101097983695571733344532099716823272066094126023008007275102562246273886183127285257090991089008202695750271407032092075598400422015838606832046602195679437592310999061731072521593137538232591549995107054441930733502748804516405922342070982104399057752459212665479507963454383036983627636656221499359083095506787243493568645818787537229342335124627390936974199199170411416425046428192309541724314623454338920474171227803719752012352475110887830763660358832911321596260434063024145533044402409638205273249042646732286136491364978312180254848257943198401638745213896270491553977554999595611142463022111677677976387198000102120928404716449189013590791715539375764797124203721756120973894810267342736739598460276870694812437354439961259963014064197123833380671572834035678740791881206177714223676826056556423929166517467332674643733950151917063679722158708333147968528565327759618276448024230685544323844763484957916980709724983430174148791416018408952642062906100907460969664580110305846769120462605486598128617937781963961549129766545731662130439373383452916978708519463180515017370028362007365235932259798915054879255767008833481435823628208020340970671658505553848298587686960671003775679327432282024067403753936420563568585090592107566040284778057360866568564960822490833646361852882277412675706135221832134134552074681737429424137837267550096781932748545264509928644359042110066210329754347238558008136742996720195158313942428274596540078150723118402325403722997760502330808158590243738671716423056700792205737101537033548573607508467999503092835183276722026430411788144508300566741013470582828565743271807167586940202919512752128783377785114666165154040155574124869063781845647074951947248587053426145631359388720904607161216536329652683076283445982766543534831660025141169199876526282554196809846960401995942281921243495548712643420496729772494220647206284675056008812940023437225521439839472391841808111205632835007026013836969531649092335857365024438817944131692117276081992787701967290566461743090014973780813563016779375714584318800344019179392792132897151541623870697454840791795491331945470212964077966136831323150484250517041726014727908283493339536421442830935846672741927052648281354478342313890682111737516993192721432045884001681435583035955522887894035673938563328674285484822708335705879726246978260619778719364090573444004902007303654724892055384160412538714327649012670998727200689223764722722675887685397721449492185395492558640855468642875615301657824962254766649516439696518744809542980813638495016925465842155004199716621224028645810183960402914433741204615075448799987819505780197634303647120009805973150865062238905015599440652644167517445982341413533909969114954681534789154057895771741770009216688797472430669976607500248520172602561825060428353079685498137214487454699384957084904984437659122246138476826551671508973402252966038476452748724787186835887659568287693820239007877958242823429918725603921975449343825564864072588738345801638333728403976040276023769999879808751418574365251450400464306418510347427086609097530500365301588761883422599333609014392134851742306029861677954108236778905229210182432177520371473710449357954721414687203294818026698715161420294779901589255543046616073628834094901305045387775573281782839196574816955402406292852632981570853324127436514049060263806652986314769204375986585499559073133719717748621284406531110531807882494297264635267704812907698954629963493598051124516274126225541546614119421431787517534169854122702784979230136212527154625482417926113276546671896800224887879682934798665091179756797837627408161196295137689938284438360436848895284058740687450463698120352517397142654946331149804582147420132529757766631334933794806017740471753352906502311755506210141506583389042772886735166722597148190816572276384880835160482081820702383418971323393651283351449334146876196967785668109970149138565717867609388980398128234078955557565298286303066711893364535160861581840339536903639511852035488667453838199473164398389117519118575987317260420617247563224581607406669857514635519343777595463278248835370881075120332605847043487275518897816575247497637652661540356824430995286213077134572905418100298185610172690971295362696432369996096347227302353970585421224281046129987019424635653707751686854313393556435694746935661669996214301640392445151640580480657985996080445957215816749278978568306580521197265143770676913286112876030526822778667672163126128589280873934983516691892952156308019893346709785823154390840418220073460915695894936838085836989968548907803141504929883506753904850889179716921568575644990556260916143031646027526084949607558712738496999975026949996337126816475252469073803948854591935577431921588052156772308434411521205822173959756679505596254448372056332707550790632302854155228745726842546494820890681177612061785800413721675823138030148409462925805635171637738096990458708111598021073726335398827118604502646068447870037618199702658964076362469178443738977069792893891842481531361623307749679764304225007175047065665210478913339128618028619909191290650621424411519853932180326222803006915302025005440114776507107301468638872190470194075504787542814165478894685590591637273022523173588311268992183452119947108238474737979799799202184931026476847752304445235244886996918066414384644770597682299801316183474140379967875689563806503017615057373026222962546049795552395095830866575856054382167091384908243253317790488723649043270370332921040505157319896514551690468505894727437011728063445400903848598084314536999078193117319377274688425747219339965547462140677846655421625874740983101410452375767269143168518261019313826423828839664043124678066251036264311493267089682581286300815131377826159811227297550309108237594902011633892431923508105675418033527081439585794510124633297064288276919835866606525779996909620327357663708857470429034203891560780115995315286063862065723688094068543207811964056076970456880500878012937448008181284607642320570737098971921715975630083674865280469177409078851924804270937788665080705218413123270880785227782286354761288135612350169959888009503106311299001186697464845253046599181929640000575287323906074882673993339188392652502467631607277410031662477102389118651138262089096993524198833371069988372495378759118968686941059859746509996462655267358854437915777698837999917342757433510361712130326892456876631084574819975607249397562239347848007514992993501678598624809460228801298267780109147051625491584833624483763762985658037569057294067994636728008745410059241040470495715009522451359141789440152446018193719758763107033309069314487674323478145902359952868274114248185606895313980565673614848838188912007487468890910092866595196649112082980048907151916799396022466345998985119481657004235450150472057781724048301153100565831655874403961469396709969780703494851162380476465325236342703326546250128958258294514966541810577093571566882718417829504957684325931901568610365629170186379724948243086283004847582822705871136807438267541125240888177156693498261825871576576233537575280565609210711716051805001769113738163475414112860395945828271791284896309327847713768166184223899653816369172849492923478551411209755492881126151555045446254828787111730963742682106520530478272961057133023663028632777480319019046578735157254063479144124025678065770911301214191579713654817310320049430753075042525614625350183591459935098344994636115239491321367655239130697259140851722255965476505011986167880893762163484836479769559510880944169644832642492691228052386919482295614853366774335126539900008133921661682614591091777249538195889759814533575373214842823235391810584723383950392443591045593425864484133040779719806828918777044894910525432342307598187804553659645293977844553867993630729153427700772235081681380439868120995327306955340878954246726638901079896366053348575906048488577183413346569000915307365319077827972491665917345273607793569822359405657347244066820233139463350901957186861922760037503386092602901587401692139159549353872850653587372366352027019178408508961098852008546214484791738962902846402270614579080350315829182376228279948806688707816699707831866609530190353038764994886284856761633238062402188223006047369837498778989598685417539853402163291994166370222668856768191265418205656402277379168201778155024626538998715917577648388856512801543258140159741546234960042426993986639026997858831493951879828688273616799567076714478432484002072230098479531909427094916206755533672455044269821157855944080047406919706010470005080964852696729664599235889266377396177206299092122490252643656827309799539701114367998223862683502680449353892438385975070460610641120462672915888520470720827992266714464395244543494748353157274718149853008487906631222775927912613688004085242518795874868537385180718528576997114543849885093603724028235932713758692271519586112442384347807893776293957311448251794031781454826305294822386854289880320256697584707345531734843884091526849795364384500386997843429882119846929308264392556015868012133109913069754468318030666235247564201353870216771059061137296219118579786695158058552505161426542954043085255048487316147021926677147761701326514268796416338872903411136504163514074344009356692270937029123854551752247983447702353692113045321679693679016133304518876075278429869665605414858311072729030616754194557129576042774204551789089876163534434756718398109841716058962537701450527774112978475387344855387086684831900479307407208553402366194215789526896184438699718094984559007175785271210594708083233712246136349632367355281851169554787726783201590991070926843074579744002751886240438788515246490764332914893938122763834850937884816695129772151743844284320892683551676579435643940596603862423010842683233061990809229033331054618282643498639211811604660506454782368003085771464893158082648598314507370107975195828577646966588491339586339678703896364400298813825943438364506367709610759024953311716985057333925374675790921756093295379275759668180026551903388605486111844844757869654303372697036213092031332512590389475511212881928576349977380105017555825760035599452371784242256420611788733353390640051635167075483705197803547089052879693120571578066116679815323428864524733121269085705001230723450031685920379429634554081970491126760744791029179839035774038313556220084500594860969199779217180831319239440391048354934469637840227296562089595572408993270722084267667170792836482243270494292699829381524219246644343033958451311339371949837244318286303498844595802790654308291419164451177367158093552571183656577334044402808762586152366991631511428945995455048437113335243569193349237447620767117257801400451475357923955465110668781461170842985661569090353132811543234021317168692444817273052387931521344289842962190765451078993212046592849793828859865697579085329666289207206685162735103444450533274419767755918056001115535376458274878214689413478390032876031678163993437785675127946048701922831763792329143277966223200246160270912623856590922172561219900059743939100535584610590227283079984567037522605620829008859301369298902335230550721556402823667738319862325840382525048606310613093221316815927319991995956008345581782677359073259957563763481467002974372410960677534324042793626539200697237874886606110655583401192435955124188480486718839370820719985121395647076078864580443751058790383800309259182542460946018237829552935852815172552178331386591326105968511099356551330042810538112407136670893854221404259560089188251487454049144618151439907704952632888528741397325223763634040294604487171395561235906365064063092418584076927718999070967887239570599987288336563200818734142224456863345808037458888365841487787792841313040719250684945575721574026950774654379345276577842373331278036281023048914173284437938208460822590966506452053539094440759246565654046988200030760968263915796890375689491836078172605636311572248785380799731509849962076626608039342454190976241062987327121964172034044767539456970334487471648096082759606956136388569883660653334648496395131478326067177426265873909764157927571972586320821544337312636184434717483109915783822615909947137477450800001351016435251485874213991841721728901390062458522041465570715452300517855203625637821230736998848226344816205261434594131205305827765056851013051565035774987370471063156970310877290481170115469778737556642212132892363685813501323478613952018674223606049421319858014413965391592194931711524133249861456010547405199603726825147199552604476823540422466305425344020025619007103218247837727939411163277883438791800346847718999271643847456733579069090634520099223014928222559475738134246886963559864602003364173593574392952719963701570340204487896906705134564399051185819480101152512245766966705578599700846753638271752837718476462990207149394062077678208860186368610621744102797750718043131843957204624077321235515022828938087642887980576695181010971737811250332124226997642030166016283069053513656766808854261138687140506614554932128023356249673202514649415698706198431682036131750344946893222295449928243526344469014425814453389216051659783094488633361498685877529561269367197200664635776485477789041099986113149106008639911512203210730152013214344514532973133767483304067453230899251758187373759784364779113329907087320470460591359237874423727747694664861797846933215261513946725725367777681446482755293335478764694951353418965616501360844421516261103224316610540179377159685813525354540225651652585155726695280701270360905204549957841125980821284969430393532920992720035076501674916534348365120352499920855371020357535683692972727550065618661808273300982012263648951519801108250216333709953707720122410656371138173297558254074933399038709210333017244756925154557442788188201704622547746312470638978871144205576418243459143400739001175307712933582742621870695425745720460605319019796357004280687379277929784614091668060976143337481828644833274356662677758391763767644164215648240154951056269026507843623478652141679355561584066724561844602004516075567732217733258779986561600644263956515078837248109333953513975925115686713816016951568919005106120717339497331709484028481957166238512170657575889428609020545337494766533867325361009061432525561922120742790990736366719439164475198059658701225004816016638818844764115902803115528362575558738446832381018370409579170262446789800460012159814863081761781936095836250999118584390373148575362245715769068328322588017543535793096349387131300231307509490220463945804294435662994645868206960624133076360546829556753241635279835264443004054734455693834741190407191646976315452807639253057970697766233761463132751775665548081263325523769315106855943475508302397425505626681424020666706441305140034892043227511658050137500916619574498857221399838831121958331886068585279917270294054007642881855569981217515051201028411860275747630153906462649588289188377711119232244674241343992186652695791713607600114337138743471747882922897488926179666175393121955577717414145181596066377277452881468745959431147032508659378006629297948138226536495883789413399619310734796025702445117165559764519864158474668888304673401176334971317502754976388070068861594048869148226540926596839395466648588527577050062537274380099253669669632967349731413752230394170826160443808790961337572074052166459339330200461670308011240103304024531337781950236434433494539642183771335793093657680676519016969096760747346997142852304794279567435485687872512460720165762486151052818658931450376360460534741225693035862889265442354469077590785175688494999872770427324449186017746685801134348005593728879113112781397107723221641406876468219573036256779186107036577898568759121985497407430470202061053063900329808224320760261626191497285294899413756005156398289350548344714924218245526809747746367278421632950984934221607432294870014958491816191637260326983193635506641278208363721027047788346408465041515773191421745866052554413099729570497582592738766002575274720980014536728838547410162907048411702486919485408513211553663957661540029409079463557266109903953753309623552119252314712962450168586684095110264733001000574146783966339813949892693449370510456887537200122988661649495552732874390304353454502124390945945924066125347136395969972434042088851410444468808914946910242897665946150663692230331721296689042263500239532622445628921603174570499592709543569763753569062251395083780132929339610807168658641127982473709635085065954552926425660675685762941086111461919072160393692577041448498694459325865175907590576236515542766290589248499171921985523487221985528349922497125498256671226558644905483215589403282163283647751860593271438974437028292214183693851806627760727241191915367428414915483390468314006673513252198609162566394355172518429531919880177511419880445257656680883355402737000268579541083385474982442296415397533201433636348459116105869685424611977380561652671103449026339622279922110345013096827867182844605693019937136213480483284934439903537493022567786224565952729141677740155030580775441351971582727523559755425404279391299648422008891624692114447371278351979251315047367734861928362831613596252687452163387461789925089920579312311319658715661826961240653123751471753016958117722782724681647114763729425749338243605966594251618627023262848098184409415172542996624381766452454668798330289338087073164430199832929354014975518224341242097835844926136815915206510368588785423116260721874178006174904253479638880554762318590597173060185523513641241641043288785644403178243837546143294791595022246859478037229262819025110032561337654538335346835695328110638812541713295440829672878557403997006088267163066539634301547960525684924471636288055844459477741801831474412659142510985361746497463696944198715085172322504394604519684824638791477960033720753419155565702272630053094085916263684536130146584219414932407969462271254035940690046594678922388620874705809219227030552130512605969843245420894512026743652002873687865115525994743415624491331312302914885239609719290120051778675675524015383138996130706724914832384915958016168883923850925225488617725242457878900050174291139177067306084517113294355418416471228634081133897556098744642655435906122421019780054391553290204054955257311185748699263291045934734016013254823002630094369707161241670449107160700429896774009848236389866271863479005539462570028406582521777587919634995604166066393849045752752480555624964156186668763684896791061642073941147992025659311251748158627549611658385840052999133483439460561575638134846433332221019513658470343073066429963295634492036180179946151093608693578129688922930099429413227878705951129099407551205833997611257006919706389482069254670675349963829374415043859111959715470385850829110930347633859737279902505851259352413184532919652661840159849118056321512414800908758540797774773835070626822857130079756343533875049089062615963900427586227924330793380364099892037544502757846770380049731116162411289778882120663907078780988343412610059993374368577229235150901694454963067672742247967701514903527417260753785488501958747768497577544065732384567506265186397638260956498369969368661133716655112170171513766857723104132045410824414239904286401641893956635116319142233288882469084780404244452998136724617821952117938360377287990136266927657355332966558848567751905879523451358425922155022512991515269290782109506714404247729006309247889303482744611994187570018405456261893820751400478654764546511734686874467670842189847670110606834638982953846388044746262442716877902537771030565713014589981421801859760252041035258233185058573080464153546720412270032724103166802915319838017786253556859544745244346440274467906892890960294557339353378449914237131822532325335808807333366266046132891610405184722719505740587575643128600391185736640911212890131886060439111366653192142462021935739866548878276869176369274890789633435097259710910990837484414966753520322909964029165836606991090547616949129353178073716792985024423939308169752662292867187471364415700590526364053922217159635971970576919243883143883259112782869951887290306249075351586821171494271045477939398504720344461238717696080095471485218263505662598661404360779703327359350688261642709499586239945697746323433405553722684912691744014212722924992486774506531844297448101303409136910662311089886833697772385508698004860132147491948835356165940648073658315012785833228709486930657558313868419419683881668166060516020078152321651482173803995694480751644398014673626779486592202634230693579989232640848031108534729541046383618592906437959302350257218338533988701437302806715619313616986673426354613512489038494446472647505754802478743119104330371166712345160276723089637225034702134436973276622376727825824040867402642332423884051096397992199297361296803155399387317541483285825495107583979618668375317015387332079722309617554920302222521777794520581965274664487417347335447535368073991053057629581067062590363652522173108946079232993202589821860873209070782168443598819437461587149976304405437968748381927620544115690133933436570163941664990786113441414277305458758401813908479875541385897232605532897513591216268015008724335535852109137528986215117099882340172709380286747081858253052322991686898840914186467673127706705903664586076412785169381955699660278252771973251652203710692298483588453239102640221202260522678975195166514428922745762634888048392817183662550545149589951088484861870836598673681563757278819360393589267025145475269787532968018262129263609446973462631102635620237841918005964141522300317880867604418651614160704908320423600318766204501278565485704178625154150730308005576426111706756241553163868090572656439388891767281545656714305427965364637324806946840937868290267990831018934582593131862846774889000508203439930472899684536888621318518633206452342781978970831242262968812585212654232127896155143012447698666857636447786917591898701056952395938360201972933237645964756778943312851003058544484176234263346320292512860560173486283464836192121751802900479204486570277507424878346310174350889296504324468807813505423776515456787638956846354222814315600192780018328559334039651581584686318121108941990971240881698455681299301354728009204886398752629197732109630127907923899977682652212234951461218296147628467160296701665807156775714220153663521635585507170877675053322610035732116202381636430821953040108116954164948372788560395042527007459583746108379060992173649182464349178176784890908009508157023200838068954582158331131478380025663100465575690788176541130755529454299958402687411710096361905569076849259221110847742186832056329662450731745740410402850783069620665478513504909566109584232922712360682684374022791226321675127233989666920765497483866949750258034248518618575360214844302416886290918574945700715041247463139114963740492624011917816654995131056685613354938103583203946258767965881059001319047972597669192928334224060845096351269655736381782354814365619745544626131923970338111731799262062756384426435698365092857577341286872752903901038999775591010307766498837379418748539260806691454415419179026727151602971054740609965358050197318617317296790768879012744207778391840456095217924338923260264181116825902492153899898768711454620455098712816894540390210933782264918109598370268632607328638619034243471524351804977170822956420859356843751563841759706856939033828243897830785699170912139971258328983697603790489338861446890905708354050790494624832353838524332760393409209325321897162565882492821908801706576347991579350249541940576857043572869553741651240242861348722197059636207476819826172045160158121993944027076722054541477056836068019046064810955428718324738460054534303654038693943191083680973268588338714912459518712748379033949757309456628166821678733176530036280755546037762310208531967385119743367963260743783718723342368484233519044317633911162115747483907845765853006905464048753240318080660532863026181973832407078555031743918522242158954988715902311877424410302425742393433078201189823656941520352482116363001266303824932123197880667214805601614829123292402941242278288394803834256376134159310666221166743235603050828385780513632825696839194751182628805845077412227908916472051055534809963708049074383603130978725072897288743563008948902201263403482792823593860915362295614072417835205413790175669677458105486618566400552065435385630828554042084992075842168425119121878013155686795906506034770710653468250399750213046773614086202389766278331437829227435079223855304441441272810773029989629282541550153411869458648994265222565178440045273028034253016028802877555674913671435818376450934095995485464128117217361819400020248045513142388953466767375130089670675864843059967979012796508960726621235998711780867589119487194798476077008343494666294236141155588044990692954236253611857678076187041802947547238434558857818289933245703594346402672456853745592632625309102715350213848687640885187021830108161330044987380442554555157780830180802004874040776514649592217754944586779462332160823175242256795178208736545130955524647761047105558884852100706687635261776101629176392330419031154070947451979822370139550808550701351302667249737570591481774946755630960048875514676232013736522061966484201010841550373031819021573176558790833612731921394001390550971208959917875382307052093548518985737578576527735849677492722531547611240942548581877668817120479331567660127230624833125484059596198085231268982895504147303160108813881788628834804013226970710733356104943419871701804758583585816484002552575040737158289328317272232251586455180375402548149535343711257870734156504002229330986983028735009808917198039446723322262125371570349169722130866730165138873038188172938239060007795644996205004683386487474290640873996400771227144006782786168577077098928233095192259511304497630400023395648836121861537286021595138621589832280409175794742559666527106226606339026145480456014349428720529906278232285356703283764227295449411193822097551408308546942971095333555620197009654858456817478975037774723528107054830670162087952566486974402933259141379367546784834610250399164064250666296624383561679176388589591398691330632723712159685139010704980563219116095245424764783360866670753070060864554921346785922162114722984222030758747598543776992258109668168934475301793085258288290824465515455102411594989943865713544595504477931150336726249788732501888616878452507224285116555757056597927143401161198646373341247014107941611716886402791493242057484272889615154998975130641070816452399912173368546501738788647872687047038822653267653115251030226073540505182559677092279588738288957408796195087962967238965067607218556181088934252893494689987251020139711364706252881913051909007745499119757421515603439975738108251350068836420073043341555749571223028150097418878922628811556085491624143399532709969423934663208259413456855260502556624282127262960970483542666045215793145679703329402685586782649700035308990326075193994927282261660601170664913489567727091743973723525098877283177003521771834886931685668035809934973363147845929713999449333032299494120429817554799244688591000800861219395500917256322612263497758485133819286199523182127416105591539383178916589178903877786214247006755028553122542839563830369431414624519816292936933730632247687570359702659661733817734888803243762592322435454309582211969589739640198606434377881453989696794691199034113631508113644419686916292688375274708415271363600016367944891355682994350220195832955259183846499079092160398373021446465430703189670514979223766292602431889719973866057286700533844243930973069166776370848892200195735121242965602244628154995143499414851969585740311582203454948583865313934726997845790645854520839552144259390300663403288515684110265986461990922460733436878538108806880815579718586599407088361830021519554369584064771054772726265266696697162227297443463199394918848852225644577284645750665672580381728570560523016233641347111737632552096504098683671576248015659964724377685969551262745822650201554331588136198090624037311919213656106965067362131985577183749033352123722501801408400659905919434224945839405671701109111055005963035564628065009635860769611949842855059191041272077002383711890437966885771358639584380756368430610130683633706616069527297617969092841614800115461201762574756003151887322702054464276169880225831719941556228240804521171237208221915442445614707250104603918077779661872769397297462965044522770406687871596915526972101303109804554034899183610905025085030845380520656283513808148292053169610323254234482239622269980255786871262726791275045634087587621813276123052788300487224582958132622857820575684807159783624207112773457661335875135081448952697440177854307933979035471943224157347960201665814412159515043621390543417004880027525261404185251493458120073957050523603581898109362497401113238061980134150249700577117493910338417997353949350915948820431719271205441116030758878997353659332697592766956063798765269260508096566543914527999766165295545314964542026335960432251977118836685504561627748017251825896165967072128012358133539571996237825944001279952174685321582526943765712568563547516049214000900370862521335864272381675001408326232338064104253319582798761944337760987518150881422084204809277310478963350302600140050575835410565426431288265338918233114004456792316082907169237076632887134974863393595881603796648943623024689972347848105154459685838050458454392446675482216310373507676226039298487255212500855429408977890116606154231280809688316073225173731155598655898518887055361872627749727674607486834819403172936608137387645799998922648622052879184396183181780507431369483601248886933466264376229179248828556257192220291401335410462558464561379939324796955958185808439981168860572334481784644273785712661992594726590244045691287720907815771502909877758560345071070190879737617596038718190811180109652511397488381500477617575552598217488425649118240246920393721254665143958971164737301401817375075811252033201340390663411605311364249746306121397595446782244332602191337026325884704662850380042687308466457087515784146339850883542516321126108466212697152242888276316059033499117650214510660228157137408438663761752377013013301328069357026917525675546056176830660344133647034133144071896641077696449918796424821817441545229622446200480277516460743274750491662696948871841149174951880635034225398938465266184872598397471871384581106376556279230458711900081897186144112489271718978556996333590750865118591678909725685473857717401597126857750258876192475958774355301200065211479673229727847391930123054049052201654770583939795596148310701666995909607528868719242989308633524674161244287030901896091571167096599092887725375230818315799302730736277563069464697455983981769652006541568532542928294084349220429973160301599337298094526992430486757925924463619931386199082517270112265061416383834124360412547755277416925508581053940960140645849845582844015049510305861071992110820858053947535969614074287437507961031220201601264300314124570317135321389656071302821737600311647100111012216344948918821824179018079747082640897115275996359256680309777777389512104532533012060644606683744017548075115617883530070922939957081606450162540248722066049120058547419385405274752728748822105832290025674522959434489409668796427636860641060277379240436655996052741089949683238808215958015899024551124820499359112899693496074463308350657256795268306699412324186502826115317323441840611339281863186432369225433470194611462331772751519698303205226801968399374938308915353168407008778131667909639417071475718997426285612694691633687942534027654988530619077273436896895279214710912507164155769319847481964871818526823091093218362563916377926726456100987407573034672442503359201021753801902921052560865353254537116728290103772367264294583804290122690155072974967009319624577685300705601805704982910123341866366987759720953089467039019586820487930948531518887061003243362828844216870050746898775064467329275040902297855966515516795433785104102896037321943491240243220990760643651328590835818801171099212248144717600270618250465920918909594034671894015565302114676900432971099095115865528013190186681992298153793217585737048955816957634404245209955892819387689590328015782767544243069582759309513239513243180384479140949652975599088611210274789895133541389740947500908439970195509011897062590933397971109701310699213022451708670240741265258712461858660743383825766649237203439791046277226676178422770788744566466758968903284013601741037130998538966864943372042730925010136481045554883200257652456406837571589122339059000863516982649261693554888051150416951248436227966169336393452926108819102346802744152844127023884424499960022012907479603462226578890433645878560695689312183187942982014156263372292834934802936806692873295282701716399068579733120589522411167998848816676337408102301702754141009617921159207294655988802626020204524917385324373139524329741109637004719031523644680885143416676007202393770022907553287417595510173152124113086666017738087608614742188202223183965045461171321049202448182134358947465647446206518776902504453722235164373885716216013245538599594248389305363099150828258257847933230773438135884403733951298802114623613636588353332118198309391426304355575679422800812607943052788219486677972676062402548699268878674688216550136930797317999736182965531970846874877166318302357476816127694513666907406164273784126301583325867461397981743530698163182535376031866171097608026109140807479275255108545294348316429638334565066452921075661011601219455601013196436794539342076984848217129611892721377481600027173302869081215558815165752853640250103801069359948209044240785442307402642126212399984324301469078800547321936796713343805400295317789758269331434342000729241485988436443820137112323652555848459433514261213544925583835571452383157658436363041217255674285714300106210706520695803993993753962233424457292054640307221323168727228199636485887308310742749938346434918312359038600522354131931865505209451296546213492296157112564757412169226802020266821526510419229470037746929340364283453869247940844673240147667006372515730363649258571280878649272508353602679749732825420037983686094971559873544471524728205122045577921069670552705103660129388192453633673111454860796942970978929572789663543743667516294733098949390538523376566301143737660217647472157735939723636172630953685849296894302538486206861447188733416398904271433546395501100313570683939952398407398534633204260484938643765351455601589999817619851664050140719373518465076414847031263015397864196131628487537737082568147580606779771685005442771502709282013874241889518876379179576173220013463060765636092768907740033900360683815659795753802005814367610690545033441733549514652311419833813346073960837934383643409260701188674817759825622583021376607681865438838932773194743584447518993582598510952690183923978863964819733157074019818436720536258914050951488653950636870989248850356541017654853682601580968402035730432494425194448466050250337464567862244994397784892030708137578165165396663670776012721682483275087733079444650516875066785611801759735526087572315723190338291678354326132671203049070644019245371716806299213679532176211274056289566343250053789298288561869112824641798025984930688189466783611400068775110543821407603618909751284888043907705490369598376657526237365675845381606936995133652766602763161491686963446433530152031558716249791829330790343702208943518926005710568353466794366260811091670754355652467001249533400654133004384053906890730657715176219325404647316892446207673132451155569431001352524926592052336061291987845972776616574127555022219469702980246174917894566901762168914746831081527506081077983231418635788747354137543206657630221535716993769069691705215001160635870851178028655610244908144644221184543134128806974554306777416861629220278330690999751249514582908050067861225650321873351631956941098056763987444970190881275225877907157007591937968131282309683616181237179362225479663947473843619218847395990438720096748704916384630281533450496638998771661673191591262575690571913831153646882279606936220183796272735135547090729321051161789262162000689018182873557221250767470767287130042137805725119063144591913487128888730142563665259305522099736097064719547888886036925087485940169908917001749375979533549341738784838589684234213000056384875666772173218930129802223525275706047465701353251766617821828526375110180955762965895042977397350465182420438063252880508438292033458317247038915494973265744819274909183724361133136915780080194899134058331014914449188572708393534335062639449479913882071922743589472304087177267505088687866035803748022006755483231129817855718646573734127262243970833089390792475137926289880010887222786292118772500685080638962010400936849615494999715991813287690805101019657945329735492503584428092217159599178254227945804541876001216140410881676512924092347345503588144222002248547339352993372251157899486391244728566466187563446191734964517150132423641800132269074091018170440902570099656229798483851710885678032892816909534553511135519292672373753961010284943611205907067580759542029042316127223073621022087741187065517976714100436321639128702244270427617885206368960282175443181514560144758952754198826692635279698784301916446657784789454327740599543972851562699827904438959862862860822545886731004642800231714293919679230793457788737408600002307093343201888439249668280845251542353306966187387112861862752406333349365466107830576895128979828494653158078183284046142826628557126837120549432700313426404729450688590762112320626403445212972443958143884605536692819981509587382501575813500264227056081897740621645702955362630194260606718981622450906602837521681136844903333258423190107323365120870319645796746767713838831547105899094725292299996361092994932280298543843833894247111340494278503209437765842691784032711976903051312803678015098978178685003522117562610791931587719387367632416972063221273978850224512317481313567427275071299551694012248310427323488633668372543304963681831624474117023010912096430690001629426432810687708378679782330253152253011343002618841819657607830216123966236971363037169198051561578491712208736467641244704828400063662688258372188507448092821616019051408346571770014278507103183858103931672650366008244834721175846892040655571731893441566378459335353749308109363077114009755750007280635737380508803751832276140629535527956647154857676348013031182389121483191108853584037430167497305914999918868290951038807550191350068360440656581617183999883316116564599861285662934432511987090076715247107003604841925993259385087602562775447262867957361699434045990727615366636991517942752878142809955744979775869291433077986647174677375640321581421216786156985845184979598327571496028668836147352201055108245668823127713967267250483389893776667486864449643757154059208056854320029675858062095185924394703512333459758254303325372229866522518791858560586055378864651385356789743380297246505803696302138641182569142510145107722617208757823758970080826631396998512335325749590956269405101694357877483679712920664047890184520282564994558033599314204234767691726928347471159274348076983726714203077481272974522927827627839138297839362348821597329017976003368159834152328526943583510018849841456241996257568394539125787814525670411169109351835453454559313848318211440021903981310842472441776959027972570214520334303421497797417573332437587974884598155907366658124688806474377641483497670448714287210536014067476813048030721719416115626579881966504981265874910427875432029503929038693176232257873064462070090454738334790067511660254828131602778984425505515922784544961102125199014293790437538631334956873456258244265756648551855309314825391999659004512424487159192092508311674097993009904412471667215268233622101889917887302372505873234581209904819852285647712866489148430515622320295090784505198250241247551559451161835159117263913541585272245693220016889710497896447258166057013659358810776840342863226011224133158083569362493069780419965225535495653335129837390088316672407107069251279753212357046007303475768716938045355853324759334019761793336977643361903452525382464921083079658048399227787585694954423640644160488178885176544293424659595138548695666500782117590580752541782866921143257894644042126345382097169517360474771620927880888477493998109206055321072973699462432159743560361686510220648913878323028222870311806206253767821461852373499591786697175631913646053528453646143212660344118985760125333307863609723605925585204105592132707510067795523390592396281641119456105491724451794821883124936667824813092098572564720331442956689659743403996044929068112580617047304068729501341406272935220140800972635925594596936845206008630936386918577036911631697753912383701658707524412087700426452423865602148586597135134234295850166043855794403907456324147939292831024154854520411694781499920781322363266937681542442992075463405252278143369273526002048144141455719900240187295713710255125925938318928241112315172496777067913313276092909295353653929595853480089586399881759169223692072499000494273370332232071789879160220628997262942276147500602796704636457153221781479094129104908857557200221339303222375604815845787550824170206124770530167548488607609305241708609785352790441930292169377487610288517176933291618529724639926628182906860392698007340040421096598816264074237156334559024777054946199359359588527775614088775091713115577683786905061576800722452607454481078879236788628883086040148717157888515369999580000173121896361152436389663538839565313210395083843737689903764128640850644821026233996249477644102651184253526173552729776542854466106978961904969829695755503593500724799858370458562481295205966238300122569343265961408042297810689505546729119854292008718320189626246840121943574703716164638898720870975444291577045603016380872924390933043764523250193587422958660883372737114901841350762656416650854681517017075849178755841027011684593649723994897849113929102639077463263366545745177709377334198982209550606178982065782292350383165138636691258690372160517496092468403728333973588878320155804713226642589928672728411259919108099049862046545847678434327664484309819561393882400471852739103050938521478616980503102592372477467212234686583293796820127723165714101117785348564693398240043815390497755385402302829410758456310614394086084126700132244903690044880730173209298900814023034056608737049790342048748766815072979104906984412547122457864812648043107210862918010013592208449828538222709158948178336845503212575116575132685543721465585052135576991355189396405203242990237236133025885984193786725414733311029510592447856718951749748269239195773032472037664134261082972652214147847786032117791195662101841070680327757579724363616345446964505751392871523852621622282086281612703845456444263071834786630849520849155430598658896803410182232795936788718144509807971821352378566626681890089039576865847263857903880030883152758727569107348884690643113565342488828964067672154616455599055720894833154708151717644902112344480187818395826250493892248329964484908609466323124644476585031906694380181043847596313555871402791929744898571791617033784137556800017124890301212605477582244054894162457685491665799855559480496598218119054376459027904546716763601424952043625921680352791646239181000532365310484708208347269231266646032954164859102891085695084297790045477906862638598245866622390453996205973732835673447601914966051852156961954330584362277892957096873135128706275274349146147438191738311358626316662722871153923857391174721595745614310988208296777249638723605049051924257356377355700620429967279400533876230009519124109128110718709563366341843299524382636426422038456178308276619521573582095711846941097839252915517985514085710371621401043220485033508085015040052546018318137840464971250043767027393137581404399058563571193401499358204037846419672525352071464390319837355038132307194677534050585964514743751157882707778620427061767749255423404682446355330565957132959235437558906102719890704316419576654762685247925309971478082373087045768324774517142579301889072934902302565324283115732808890301053477711387643809468596844085599594782191734863722876527334268875534234447253275170228937885319107548003877514908356725786076344147727156258255412027875524297970940919525596122975335698272908810583765134542758652222821029689708586581735534225401118675157573373401721197867718277287616917742783772879953580393571445247192015763086856989317883000221728346290178829775785284134732238947568534739715104778529663788340223808578943770198601102310072977124777690600096767034119916526898342125843079551359991860028042541388277794809294580364021317146917424859497980769291579605749221989331782196076156841138256528080419197541875275712473672330429193400323741871509765052230015867723050508491246266924374356898477979580610060494594554624336168189469681779365453363031020272453563867952364939784830951493545984015318363925598304232214864543558396869733735126914156002419686672668049705452847422499005452691677383544951493187995455968044117326185532195875781161345203905414837668817158081144113223844079026531459250868839716044446429613528470380729184084472140713471365586771818051957500338026153264688303902090433000684912193019042943889285465476705827196982694645200249020021002092594966135316120451126481671632328781296757974193321766189054054360517638448681393742200594613749502636373820159218246852425227403414134516495038954510055891114617890325417042069234915827110852677398318937861552552892346438319171512708058007932231269467330706686623499887728087027682798715056204644675771397418760064092559338068453411647934127310825824778164381523433614435155519412489223464033763433640160504160535677592521355886083405941648804242569665300134130133422849819450501387258913062132801875080605497158992738608639653502396041534002501739375406602575876771747096101824952564782600351533202665625966683517784638076637771636184908256395881241898884858241014483739458952392675002935971808069637778785974763432392781613909031872959033070911820636697503009682636586685283367300411303446567917530810569108193698924002793278209220958647035295757862058682579320955666575796353518182759040464787532544257031346584006682193044808848280717240390422974144589278648534244639532445396384961546824114685003406050870285038156280313760078425584180101356082307156791697354149231263204847202658423101042589818933966261718419360166846701514364334826093285412527943657478769981391832169053643511233038486862070123343273762250804885279970254013847393447510585623371900714072543752298383756484797994843514520804507409241832609707682317143008618388564540171143475052366255127314148105241679803187922653091659681139571494561761811596214009018049108388087378482058737202520177150913529416375387461185357818619590042946744126327682432645577024087169886355353243361518897128864798985899641329817553158528382810027541810255917811196316871810909421837685304208267735357749353947255988547608367938987016246692158948068122419317746033972799127704192887042594585054470008690812915180849116514276466985935472412694713131913506433486050784298725735345564316311409730700149177963856759906447873749676355842525975120836139104247792752323335025710545759134551374333824283654986841127275724769767701905752418833998481974410831584334802166221556295767779409249957378291199185599598406643437859447344417265419284289742590420309093448656198670043399723301197543511050273857263374588286016527025447148764578538144120585561552210380446605816400277822675400480861391255531590058434880311900928302456934253665675687389948015411465723124975211531528327062558959062471019298311777147416503232818957550397009107843365710334902259517419796702415199469635184646605834527104998517259419772860841418015946698952836263527297883687872397342350080377509533270643477112430076534801818051526704765959785125375240207288168511056412828299976611331599472353862330231733425925526379197216776136097801099822102945913744865457482424918287374261254656182604272738059813587614870391041057673507221015396096767745167680990657515834625746265583114721545118132433263862537987576260207283164744634671253438602582118436090315757049615477299663761346078311337644605551725944928118967025255907726838161757891369039162129880723735378611624411438916535627422086838589459474087935350623127924223640766514660497749199157627701305274047976314925839216628886359406335026038783016365671476932047834993225329775761557494055731375001601845939831008614864227441078122120713774873026870324621557546249802263157266818396246695040421739811398034930541342703862624808579756717609286657647698168306200949292420945735135718415449257820598415748967399066459590080128162934833094451948556007661784123391217476050118021293568881749352748296257084068871716276457231021956874305793362639838804871990511262171476013026628449646072587743176037367429590828774617232590415884935384815097944470612812827366313817557168716813449252166604886976731526738171659648101046585055414063206335741902198897240653850654227142903415826500530812989372069837462854029624787860616498746153213998188861576911829352003716011586229101494893348234061790619832898273103407128347513141145972464677870054032441938927662017348757048991277985949856266845443463422921274402697124546433624721454948086354099248837685157770863378916475206003966687552800005789402283137256342608173358842977734624261687843203835298287225525370106530162999357634710707906016089061434437393629588858069212724862123118458333196637406510801287495028368411637686506226702632191038875725873761249560855521634295429840109199627307783981986992249648742717634017699031161347604949560907296118393284016237205663823542504912728096457555873704044282231480264741455325439620858939291738146738985635239371045395028365266060442659338141498179094236471725297692484432050183963399099036731137177560581682323109572948432309264814119275725214372560474608928167894304981224840962200934751455622723741593804469806512649416613002331660830904793512676266887560641476265376862373868441114876360633991937681772779407002764783627232874598482869498120736859380988360856895474499343200282485551818130272818269198789275627195769267166641985306221379366498525447660222570093436245198902692473757127602252144115990080988808543344043691015389175597263083710008005527971932897519938570345027278937770743787432104257090874134426271277682082347826592796184355550674283640656557838402982608353281954117104508533634338405254129176353634191565709627765460155207688783591126208768985114548471859132211655219845653264989133704672315891677357780618877631945072928485237673203600036751979616748726045609727488392384210209807265420925770576438667745163631498181103382291621673771092738764165737081676576170746744274389462078371852803927800743862692993168519977771123254928766653154391453770241329796360197798788795848515158926953455815106771762263192564038386653036139935422344133908089318900803972261246380605218068073505841169445805834820938063417061741119112528800988436299273053800782388731644555377110857155418037015923362154879739730665997478417228874523964165106064123176727501497586417484223525583464884441212153777637191359018381302678924633054616636665770206200596782073563067367797083495977196238030595506863746545227250242363906682015894603691571300990768507073814565689038080164037769516457453760262285350821433774183043610531383326537961769929240903126719442627104636301672866014893515557066317070103234108559716689399748395667437302725364500975083970381037671717469238013944791619201374800867196633183742802234082596902141786690304007409301252309082349579270206583003045171027165793656442626999493090029383417345523778325831402909112496203823153483411266486290123528158594770727357336770898186578531702419868553202891960069924232965645011520321473018464605486124353586540965743796208523115392587219607978801139854451660286953306194031448567471985952054361835182804289883958190861111789585839841447940669779114717929652165068663429276241753324793295496702835610984461119160383762075130989663272617182985321347804435177214395256144360447323621984302400966260783930437895734180240796412454114900211586760719815847223863211573603454167363177773941762608167142242772101523472750013758231947660786376415433909321986852709453532142208128626444574384993828413105566028224378110420553400685949062780552668538534059400041749295308066981649400750461411749507259492330773111958995326311275888544588870727791845370572213406817420528263747089435472614852348975686099766113386449142005899101191668420859564244918029534468424722326778837576848005972746440425014872231207596508489386410716794886762192038445390582644458292584981134846299234590580434113225164369740738933342477847363930835674072187999966531573160827054171727405295584073191025849910091523368701358010523637541286613263523377219304669082055641413697795341995813216020479737688051515559553584035072711108137684018109750453433174843004645513701483673209216934362746929699705192827066922077487384417468884218595627622270518406759578602350590052722489807950005435170475607204013993022892375470102045795269175908347960217453110780304990610667103622207527619735774495756461180784365664865750016528716103786045019141465393685832388860384035882500360164063470700868744992817947771239480119447142050181978951623670760459542792583148480054763480056385476201768558743077486314362470494674899559651165116193376961673047461690191716295313345338343927356785749738509036361016222695335639306911863686042939066338459477659989962313030142382169274713203580669602011522368256293695541645094848542904434866542187384306186608996304261114702299192881506513594862113049842899403084518464995900709292245902168925254482104343651338130650592536470629742906149582042478084803906959800567195835443108945943797904989208559303789424522421145974052488554183046669887402522143887429686448554651826526947056006660058090666958359937717081872347812126575163564732712713371139155733306175790579983025108534170833517252762812742588938944839659751807153455815516895930503838134919140354640933465459924247712227517956864734081335034975168420632575868905896775499809750056840504126486628884160029361309035239775374313423644339271551599573606163212441235547525872128908709035548249448758158445963506124029396709385773764039744158721734781635566883472859110620840091870563525921717914197045388037579260440491859968408684904461832053411290471969732273597982288308280773944569789405816694340530522979133734242945613307813864950753795734863260196116541940298317626129237425050072005196035094251416047781697051884768877595898803801309357900701481251723319105678252368373617517927256504353806481836501531835199714722608546812001816088223966588014795592705473276963990527769880573514353624261977808879439179063194834866524090139465258223704673021822212789777030739559297265619300483595458550836212760049298608787997648705943099962354495568544934662371851962632677708850213078132977896186661037760091424671657379640800801564467809724266997135811918265964642855639727866649083943493118053775934075166895004033127557717177981650899478859192849601721135375544005339310727514195983442002163885834688181633449936757033171102937031722211497627960990936094150635396284154004977181891478293804970617882790995022826226973253676059950703620416911289030469726386074680689385938741048772210487849794557165161156245877166918710231911147072348722148355409469564250540018678455138526347335211003884899163384792893829875127249498201780925583111971392962687576588773356423691019934627933196410342596384748070273325834905767517531039289752767535325887246332266633686499204948025303613265907146529010896624602537634204603815759552085970876238319041552879399203021024191023453443404509657033033340181496336924629786819851600177146219464286814028993146673735558332301021574844663722277813368277208188877734756330329384234910780435110644761792991295660012049231034875989333133356072108747028762194111546634315911484296816150320287323564559941685105382172844401139486182003462505324559312031350696335030314447410638077777398102994763065994660882748984715676063615328497004107686013972433940910957694723973496224969018389597223455096286160869558793341751828116410091583929687782122652291698788241334539774617905357854638022787233056317735553443641550109758371980168590531063618922133434024722555429876504289914388934614176698730755787470398150710447890611602431543970478466109986019248535383546335662945505731036293818295407807596633203020176625199907487070794483754881388353723958864384619125308862664373651041279860607589400084386194507993691568759270928296012799470869113042936355109447752626719750555385359481102876210597368471855915831623312122531454383047727330796479535167300464396275210573914820850679565860819849037515557017723418517657315111660835339491839340480807729885858776001496217102927065430393087960445060554468664466339312072794530749750918948833633299507048273857226301055882061050280484725816237503818793534356429935607843743024314905801693563884557752818073537600815043382083735818115723737686178166268995398843030478555267362815262049188819454984970538888816189528695502431554740607721205935020974233110003800552951332340109901638430306193792265726736739456269441941178355647795918116596571343327764401542330155672319002422681963924262306852164111051799621794063007938639558137606685182502437255756246774847147571354088002158189919182247179417016156760176145609286700031680328143603437567972837559804393924435233302537555628450210409557121342466273123659179790613162785111582548128184931702039816514603594407332491681317295599282530533925307894305753830195176427887576396316400585297813556246864461522895783522746031762932382572020610613411060923990270042642728756242780898257980555754985998336063083159610126831278420252800391154950506789242905670154318083474796122217432537598710587413671723735837113615419534437978406398267902577688802355108002200685803565719671726277789566399376207678440204423088484718184559625427712847851789549259967990576951646199552994723570011114712585891505410319564720657686901461544405468242743708975946305601685372009828834218149223090735800382910710100878333971608821965136717681773891193715078321720545383949551534703629090462262177425021945299425935566713972357327523656384248267262249450042616900368752152697713445733727236135603920008707318433141193141211115805277649051595546122929864270660746080004129739613287307549098426556583672262307939837080514757551098058480830225311974372339789052086110879440549598316417013963173808671645003897971668726716879700801904594239465739358300816062590420401274201596460904205216846077865419946067043213972545907058268858329710066239654543967075721420978228244929811372918709052417600306713637701870832955833725860822228499309478587237704317616464345953507307490300419267262823447691339837974421266116934879345566909692639293851508042764117642767986028560366023455774678076408514421629620287840925607844293756650308279863531218557332926471446906918776984996834145041426791408568097562747781405695121622232059614016318666768347512320183754711626760694204892454945765442371825166767479730054241410361827061562159493256978847805858163327723233230080843533332469180522058695491709265749755296925063300534152103667098377563019532717540144505075142593624544150998316121302308580963504138354637975490444074635263155728981025912278119607822808167103297787267812771166232059937527118589878639747846376603164575780239918496228836666811544868931823517270420464029123348712934820127651622727298834381457930937572584485015675578061977494025223268886880059113871587592626482225962753446280046168744278637313087310683464765449967792643860649122629539882924346071324391569195905976397017644232354904948734382216301906372256844364920057546091733620506833590674077982027096596239188786108833281993834594904276997166249626116007702280005465495579952223377026105341544056687755706559151849715707619225188765481628985232829941706085084696902272180432577103703181339910360280813712970329508291663193401246010403071008660912424179762946226730734561423358976293285285595857419208228783049076977251255642939972764087247116956011877716191335824121139939876271972742102801002881383488557699384464373959625472277367313762782861377115573034009751449430468782990609362259580849406602359271659349006271949264145688817746960855078524279569251423105463217762193865430714723625599126977815471413206879581367260464726018405381406369923560624731500567901589968493986726268829368113182273843094903589323547782901446840338974014488103331352394498656143203793410025153661786187939092437873976009393501508460510800428690054995548405608450287198564470830697615702772339346195266999091229770911637998071251259563978518810533156209431372189191534090107161041177562729391513537155823941186095065330685344213332619277382464806725283140629715222607741342422331591463315161275428687635943811716819721502470035845755264013252934152380828518407672780475504963789247282775837803245950049708858831780026328936512241637923323791129955278963802370173429963590025529892954313407008756124007607027545808323675427349927049336772932701794184175260546364718732049669027765053682261820760424627895004947390969800449263888706323120079232135947327898745011759816983458007204795927438904931344901206330652204986949696215541559479294215075378720352554104630218509229994989709258341538629626747581327553240291929803933443434787996404973073680918227092007439518333581711774965313326809330939743024201658497810510781080978387651946139022896066931648029342676670101223306188924246934466695160022447848815778367888927098915691623019203117426495285233819716305469329793663521859873901411657414039898499612557631949692514118173513124689000148635022305589834778029008156388700793204815382077412838912993778554971184921337319900890775401970133643491597829681733901729965952185883922876397939816940550654208960903255880183648376179655274706253438490333690019621354533224019666864951359777001284568267477935883697593999982680300532019542169529099207985785250982983526131929447091235621406306058760598401476590214843966650563089001362799205954330565105326803925464183768391208923118278028948577712699570587531129681713494171157401420180930671931057529471478315406216642851517195701010344579130094821450656086721990810763487104258888756803050539651606099295158316936478724077413712999235795700021117079988269457268352236933021722220927586615592912155656391892380585116466386404371916765366771703600421794471552725399679048446048040704068281097403466799152795445735697677173515303927406249873044700517219157143060165872667506474312833690524185019533807150238095333484205965507929322857597233625851921855408216803971624983158593194227070894961820650512703699856122346728613657475772003657321915393478070904689337828330065826187818475433501391501067017031098128142077829850744301874606837431794058207497556408329286347208685377890767557313000817403802516966568630291387058558105198478575324468826853364527750829423068413635928600604985774930216908255271862811401578530776551612916687105528547259488492640870978149471605690628749775568078704798194159584007846974760603928699558774016213624831967316615937294502052398722203963092454102419272221748403154551977619149911357219975153136633990114559981917775995082008698328014229556569906915937994153027666938844054394215496038384753595920594222177068571747362845274425968011881805291791393568958956514345653376956486202302388184613197158958230936209768926330408817263266761398387894597026502067487642507162688663741309064875873127917707865512839023718708473032332444032465238966060129096900756411528572403175187141813675362363828723768522787851160753595069132013790857630612840545415688963629368293429894109532543787631414942029759787808878605621606565733525754415334428684458475682459695606497894807407987370667784909295240768819941300317113214774128720505586150696857143799209597053829844170732032374886443729418551595282246128138669707962078719227973367491385991158643239456277381687183504215931081987168857247581143219683929149875768981130563657396380957262757650442385153297704259278346257040964995034509240467564256896959074726930839490987562135442235962698634707558343998349770371916799235586983907611200271955432453644008695427519142131352178693999323022481966048905120556415099909399143038112596823766121026401605633786327242609061430958525461734581006384511907652865161899157112357946316694311102047629869202057423362493724216449097346046882793541104205005493899623230028925399925662832275513080034139615618238407182737577413544310842136838060071564038524553429467742290883221308330485636750476291539015126307936938184505948417394436823789307815816341321686913349654252059500709031714649851404786397943616205593284726503277770426693700085191312865536151354534247805954419934563253473922744283652426689601481839923412170129454274583050756620997063534469641932673230446398449931586854990148526837887013460649787359940974491148557015587266738180721179625538267760488975671928411496595715408870948408900142591004793147282078153468678555030170250623078052723620328055074101206991859386032234993454028894199552245843136541023270491130788075141000185408216783488188650587286461997304854194917778304456951250105780964061146908121747163413765413103542898137883747088266026910747236910536476216627940050141294926941311932763507152562290184172613487498210658857979847244181673150362091490507877006050263110269427447387641661214658847147053662156989923968505842197424222161034905383063072707214046451509382226916586574016487580168029209886236413998284909486615410346934531220545877144100786425623529133867301248457994888696005459484182735355758001443255660884749463644924337773065518589520570788580181447193819135866948361971749683891240243599538323976636033326551657544509252093397006280124087184071101806317893854592110706885163175826124401698972842103727292943058796729011501753522751439720067914365784214545153249210305379863800426422520292272590810853325402502324528882017242882980310422223482410605742786736154850590621970799510999791931928530385321370123829606562070771643314785684071904785376577242401346210229186522053678976766985073692151574644713016180150741582382558415949433751855757095535871170219255449211514741223996547387493583463877492156415533287726566490459369938156302024528224675257124375410044055009159459101732699511952770636100110418882130566178786469483419780388944163401894205887318881850111971641831693672093141232604891904688090296398552861214551686762271229297585445133980107897518161706222785002457926770216956520245928225630581726728902040289241198671671954702523279587971038538983760677453024673850691379345229982962847058643831304721711730143883012518949288982357435548304745651825090604972957269596754052731200781026186175058901892524361115966211507576983138906965715729248070935190341974968767225581471369472341626356488396169684130947981328401717600392654992189989343924461232582595591156739283213265047846021600682156753090315066825821187555415991373083079698965936307466111515443684214189555800248348298581745604021910694939122858036609963859464655656385927006325829406103533875318552239868880152344229768269063945996109362633579700049194092706173470252708520480182889083077680244787603323286168504291050624975969875721428109095925376340760712672803823813413633606635928588439916356641951820350031833468480088896178274814415709775814072691229104081547192813023116455340631528042241818870333486863906346129736129417280851777167871258864346970408275659522180615230836601471419893437686773007276850394759529534470721130531351312543364157635960078965151371479755188987636914470592045082132938688966316748561284767194312684767684684185757860239572196918605841448370862841833954869359935168537940816957930374361459047305267585388105515097785607590972042980923811716662227326004652845323737810752430314729572250953968559250022615214931375482811987565876833780804692012557546368889664666561309044161528681497026978459826721023941852236944410122220724448928304730734118746876250778937459441652017179389790693834811437529606822498196654435130170335214502942631796065095208664677156223101489287090422501005012909031870949011610806781342615288398820791776784044062300835433456273131944913023610201903375201034506161733411087665562646282139026835049827694556592208251343392541038224064582606896026459986531982220944937011207714861730758904567750468806573310993471799147709547043835071585762480416820695619217720277805623615143663656408251554018711107163502442343856962204271900076717648357456471559440735172724105917811360392022006609194926466096420978457305336801458985142360722169264202099202899048011920113527198919764911789258625560551942650035373502283765313286991185122446968748439521745259334258969743313678576951387423286550883749622165323256859360595586967005095785015745775519656153330979064733268976334795319665030479231373757768719730471568911900710088049141022941883999110302477690355378813307023158361940596178838750883928386729602089416409760167452011564047912332773397746480625943350147159723796318955935782963174359333962264056346913783357938328532849685368580698830921390694062890203491691021436060607299479234563012632651331651301523407187303865265345732157691525077811043396836280180757755755374344396748424991523821219274749739109158876708494385644316345441240747336047580734700694249366940153559908083261361525427076249542698931021878603869530261818677180457604996464879987231996766735162385569642355766395228136595217941366556210333934133541522823093508220716239616841959574324925682218831780031606772961807788914548018173038354240281032701454958091522130370904124818805106102949662706172835295422305391279726384503999554811262669829980594197059247190487852048980935213580022188675670656266051804508976683026860769885924057852707597698233801118673364654991841925065083094202494582511644582319744326430174443483759546913296708117012061984959738375100842671439545730405853417123818190099136142751622708104275422132795063367847057813014878128233739501498503640517250518621150462256493986362271093314298938097203648542203724205699053398736113803711401257209938511752151460517987481677935558370966088335165755125327268981363841196191500800318407340045068374743176616877230347290106451793905573151804307937402438996595472726681520021156995672368675523886847709791696357204671355060419981002152708128572757876413034317532852768932138792883255787761286262112586437278195753185120711420632053225604040038640362779742347574354612536162348787804765007814493727270508318555839817012889463916655825451717222020032476818837683730228145197441160391656312073150504360503441863900504048075971227585228158869754689089343674752027222280074449055998952810325311661531872101689824396591165734485055709454846394709092743971639770122050628012724912293380538966114856336245191547096424544349939686584382595390996101348115573175130628699587927745726621231118368548904675124400789070558654542610351017314433116028249073627470540491607961575635863438577573374438674504465200020501582443086171007447068234322496732328832652214102590437511505643049118830518989356439688931515812796704551340806067054686138491162209907798473597680776363525891705258683812738291723704719938975888056528256175947523812435387941191804934457508655458485168934388491803267394959543533965866960089364378414232914191223882115810704752287799637702086157597170894874131969424242570347882279799767371338664437074817717476613765412211866798488635079267539451317855502778640151761176305747519642193634937919164877922362768323739472089535040217467947368717923333307319430700628424279827456464391324921745133265878463527870235612367583047950806421765553801225864316089263492457451653548155795430453766099127600385988973027618332748814998978631262185090825023654322677063761500989505632406967428345410847370944875914748150421572970244302876311995062870970013279043167078304507790302641558722331342294074373393901891817937787988336424495452626720365171419062653000182017452017524023200291491950793078327668550045372565395141412168127169973849171383318050628178257486185637131955274011904220277589337794178026470064131472500127784702489033377137328591828351060289227822064346302704141883031551399694851361133938801408514497150885544627487524770643337671039211477247511185388469799667022401775013421060209550098581987173038388219852231613505353410131751753340193769256243840285114263548320183056732094887493957563034998946493786964924389923908066877391652527881561151077680783600079516116007719203213317685051342773496946062845296557778037541468423325176903337724202422996258045174334510832210822440536356945674917800531730307406440634654533426265230212033494519159062612061850830508136907926878771623789544366036131514748398398763957200748188710764013859671624915609360909076684939691534856743328971125229923655108071099686208477673070401999568630630050804829335613943299831349626370966793465871603027215018800254177075690277786899132251295319466042092068454519037934479812009166732878250579857721608311342065019294770089081927863652867254048404941904786927366753552723467683419581800079938713391440536506330585589721925562425556948532479715453975414872199658935281729945499905880187594753007369739743565588202171600012442274361421129602170199220103888105672015013894683813783502507264418884602524237173612417175131959875992825794572008344120155885185020599219093674990315220160696840141366830130731688530481916662683358480152715620914593661516411121887158560760171159070500386073904191131239871412242485070980619813841810240511614244363879033926989570092843399520281387418117601246537836241803069822660631814457716049229238777487634409294694724002050436059279188179798845061625625007281078338491620074032693031802966979558487353109578078090261830541274960175562161790500308418360697758411076505576020107847594342263732347641483775267964874884183665207628870808022023150293217221372934754765739990895139503887016525117720145874962532032367003350841241797053703907584051776836592377319437452694538394031922116255494444230049956825846054512118324019092935181907503732269930837740166873352743915356452290440535028671277940497458811733806679783630528011185637165497646465116057802415270405724507034769809689930739383511207786105207968417103624529404848496210647300931229467486949979412904067998087835415970533053434259133634361442842986300643162984697296190096910998532094688880696628830208862804875219886459541559566872298656325340411264102290981468517236569161830183689886205655404663362614405181538214045185654945923908074033917329140256705377962292050666828116319676944278440671522949012879944169057663357209665176360983432512227180863962316975036496262817311615134685542267724175455743925292279008993765778919306302897761847377934997020409343849722672385392508358413996694293561609936363421615883439576074653436386944523326095365783067499301812597753579253128481335296805227426661010043850988823952136695898473096106279177654575591280783986760961458003539845396513299443412097640196006582069417493580579453568670174571494620820923845060684115030948349840452013550141092095960665306335003535937496566802402564726121759118001752414460909280586310521381707473722914217410546581782323036392915456568776408019950672352809244653570093689641901637524636887072190970692390470459135368195286910587153814977574726259957208016497980338949426665235471718251209309003678540691266533937564934322434518870372120865300382994297285401061699826325551809030667514152967441155692932776454867061692454188289990566418736211826494315092305840895591066620121878202225168278922963527281792823183022824386840765527134065389055002263679551245665169373725180680440864402362675473378341743914374802943371058222499116517774545301901840210604299357591561412143435802955142034956809951019282905252669185219389070131991145258098909595160928916534161400589774102111850350599997433033832404788500517573587085749069561810654693923740211709865237881787354805361167676807438471039784080923775584875364124505040897460628321246123213724253899540348029335350650179436692250615814862260882150718849589448810559358492838044847746624672306418545792798753594986319330566959408020540845327266937718583981715323668933704911661683836385696352787091201811011287047052875487745164951873141306480745334220150337677621739371564574992178989402094324498177907061177834864267908331213338663697222589866678035382030561247396353641086105964966889426401429286974075384961976660157989328782112184897001428152981985510983726137800654916962658244182787688725210371111014517081196668465932031820231711211828331225022226745323357308617149834590307229633120821244402237497958198733329966027371280390494743153270107160219923210903087808643883479423963092158185149503621821399642411459688745433951549148038706992468936056244362355200862537407322810636398680437758107774820753186577536932630005257209043157551425239849543981187374778192134746918105945094857221604882567939188742605288522444718655234935818269874999389659677181003898463756393019291621581477035199518147532841031658071510420203950106982601711905470449923646242895872552197188135443619136774901548661362085817847098501607767330110529673119394241432762242225506348574976260468387332266330627078863093050810751171661064576392150812150956287025430323572751975693042752727709051938573565656222804258860886996815175787176587562614929253489323492761135243521879615810262324769605707911501376239503604709051387173375245174616336882748985509203000754988995693782504944078116402758293519627386438222691453609564717185249829000869955874498600133502871311908326462780376812099822130249408208143489296364951520190358440453639044361807653103795664004649227003859751995531326770765457197270216383941449420557182073575167346610900603002725911814860283827148462558889909469755015345220387235460158731324886982032315404189381392392141414818204892146978472356963183832312287210883109965936463385227597871483374644153261149930490632080761478473455089013459967600825169062831014225510003198769629452865940423782243099354403891547338797955712160427958913190612288541063086732428297843331769997677516738439363132456124708768131177640935829571077980500823474639731833477861583460917117826980960751984165996873196177568506157895998549318665297528993035749672244866148409153250810202707673719822331289610515335632425338086574109106772322556471392351696389729175252317293273929969177945697767071982968593221823695750172270516907484682277306117735423076281032338872274226968228032393007661352360658605272533507786442148807576137718263117177813385940916824766482741145507334797423536151468675675110071122226287957365266349546958923056443637069352130159993258689529068103788826913783759041268626876077760035353595065402357676548010906412020240555977527137193604281486120673992765367406287041075999455216609417552986566776991828557087759574528728751947493986750434043518610346866404608557392430515489811545802608560426355927279796719896057196231140778254180370461493535846473126102243800933094995903908061252134158458816171484755911367730817861851065699517641828392011044644974502259493838163481075171859802600977538592725634725469671148163574970398196448326684070854479499594477568371564306874842067503934100825008774743214639478053033920701457964304865492834516560258381727220272938684387921266303006850884460949400504073682509849780425333624904428105540874401322812812178778432255733884167081408386176876098473854352379454406233450070039149563469245652962725064991984326271272055395157486629139031565972291293288404736007072696648568359975913863899920356526642129585476738382107379765137084091521441965179125040999534375554750661373497450679259385047870541350690920303920021818075419597095415192903863076667389412066958173413579333523132464023418455028441945808029136148829358029977272396559407430499612325100059106906161358302549926386737572358214929730158099586526152348599797930251008696678892359135064540568893415447128285962747451593240357553455063738642678157020255257119295815392758960483813974597608983706146781532673862197405083956556742591914385441634917225687506771231757491569438787853584769272459572303074922964954883050046642964625778403844034494985499889497280232753736945006367234958364856213949525785755675554828381781681907886014909804433900974175679611754267577957426528386500726614821924290418318656964248318568841404471974749562202887824516742796875756116124551508315605224724817544305423174557646599070362792546633793316248977607538277804955273233307456951716813512886503937875515855855401003687790655755666809625258812690810231164456412988899347639503696540054280721356982874247376708936527161206494463931802766230993320569689366177319453274651306271205424296617192017895257989133289749208963886718323269422261852083361141930417275499466113794687787003870190550492554676888292166475368258349795445338277064351612972836673695136692674215590840926611025083587383095001156752928641763931510898778110014515429345730742894129649294628213187368424385276623514618257585890862174275752467177670085999452267917138792757736503409593572306349092322477437770128566779933449067273672365964763005082918172283332170976195179125374957287152713517502811704445465272468185583907616550692259147343355544657510693181791824094977144794094317438366660922354373774116689071969796641759935818091759255327975233679786264258435494245380040544346250243515722267805076370854484020578117103350802500497621471867376600155357395809653990655695265808247659666985369238434137969323726418488066805251847853402410475108778794088096985773151669267131583964190915381580579946375522248947377923729560804157254615823496572547078874730176928915194755666785614541744451148624171729294713179276162974755021765723871507845092984287205965559600796133725313503366861599231020479714648063846110661665389317561575047472909963359966289027973547070285662042052803334650297047420910066965039084955395040782753109210264861608790253453398321902347922228395881595345025706706931862942733884234523468518685591199936997953792815241643219510428078749031199050427497983766984110787861827430753575249691215200576933171199163116429995368616929948065404794878037098301286667488270962565872221229579726528835472449501205528376683528490973278107543301900124535029344855939147911581617077545659960559948233140876845055540559099499708048165852234807250152748259141680592965151692436760942181247301129257721785421278327603819403490492659694768545638578776791567663865093955758158856515285004632812850775091405678525484405983413883648181747949137590813361574667829688209778250269032108751181917799342136830908505455597723214793533485975980425630210483728208166055164326139543192204695525169284480311610991756693394571751768849310748989814841681900213210745675848296807904892865168156917592151294969623563460318389745366198581179765211551865742322151993156215705578084833812688540107421374318115714639769180454593973022969167927877848371384716281737836244391230021769640450318005799029335425520542834936937743269189187368288980023135941025343995279982261332460514022973111116517946952980240104723280694547851061943315982518835823651584734357968888035617099711148225302308520593631397998084593566030705126552467363578366240386914147653337923227933486169640623541585331482281358084587312692023519335137877775073596418945688017516905105594779949176898353373798908544870122678600587644786422355346202505571338349214195151664046931108849494838317755627393751949921309765498307689426827162866761649950268140091069453278592520450861796386711813660883090734823754425514139998821317762255607195913150405393656933348067142329837361676368472134190302271183086887576397551010494030693098521560066435852628144743795052805471638185280122654045596097839924919210400384869846556713034297865684023646397084485372711654697695071352379365024171065571621275258656781580067344861460095459600862895663330946313128321020464316614847496580790833450353312077467345007207561052615303723543146632851749579102969703411447148534931760351449509077689537161249350554792325004016058254300389466971462731265455949584901778191202676447483067298780340622731330178506013147460050527531003380415059098084504012177573393490378982750298599080533945686449307181854201816191245743536773850676995440656804369156221780655464720427249871949506515410942907474018533615071636549660929447214425291631001479565727343471642352343929080465513251493367458639822585503815514728608308882507155213094171739786482592971029319850469117013969132035633914132053377127367096008354305633520830758280349270599526000079597069734614296501759327318350677232861725454705765418004705696274935159129336805408699984580126434394904618302022413865978896740715623956417036520083782283895712561117489986603561625068493988645634289504541223645286169179495832886076552773695220367432563377833382803609445997090300632127867924302451597857378198113922768762401059662699494848980029973112654215326026543334003429682322700183742619611120110536230860452016984629080255806536848958544060791375064066379153328784644062303180890138087656564374745765308886972449599989621925768652422792970770857331965759919879094717664500740926015960843171333688099395668394577269561466150232672288124681417190813453527063352081860753307315616714373548456867176001431287156472950108839104652132116463865760268548081599716812280818143293515588469950139473675855143809587296152505390725323850605881253097189215716861088286006199921706140276836206950916252112160822061200555988141449069186393516569367547483761389625016740379163309969318778815894993984818059230903116785807831474562548347644208755372287490523519087600222506071712063416847917696481417035971112547266660086872066710088999252843855228219039880158140270556821110791491037381474768337166475293865585867486467985313226367779078766313889844021246350618499792794158731509422777123457635233201617011898356053912761970691179967451977607486838727002021140016412058019816072500587144591783420517507470736236362570037808965036688853347921547178510381266461446368013446305877922859839379148048314370816074566206154466796710041103825479964481324519450722456359372222650644102287304138848482345987983019098695857359248507109224935856202099406844302153896614476809093611613586995505219838311843969556640810001854816875726763817126334919685423501504784493108651793253732008071366248118413794182690755612813397854712646555576537092455946380466918005654456636977090453457235736497500182671609677398477729978214491073967444773471119502344417169724461027457247079354255658376705875759183713465088795259652286492747235587412831349813807355066552639061663577596491775784130705757764666414232414931260607102567639005201518233399542379784616791909221231949032366031812158140889964636788555987844220209529809908852470911230412017072130171451762732001186286831280120046489985973924774423552552194148490094031610008652511058991375807436821852373331747499243019447728907641027282357402631372851136266087559251410486303297648503942715980961708460465927494338524827373651448603703310110470280336542192924112407324811654762927228984071509726541171351877377438387432031010459206050893057803339706525386480531617662312344575436836846433074209312726225114291556959098241684739845587860994925095860177116825862741147728031935576509454632901229317522648630280633924002627525247127837530794179846989536920874026012302372278165288060618993843238929293625040054851585993595123137008156975240667567317348026928346173617376715015406077721662501670655094940605226105253628345325961873334189788515844205718112410705692118314821348803256178024137036338764535727686791352639987941290131923924420327470973194697254095682419012462593240780467211530522457971160171201167445535732145833782655281274705200415864274804384506223925006783888194612088375336721185970393182321442676602156516284702222325138827150376557378322586696603332381638592821187315063522386358070893018957437531345507760061485266352484442136632865713821456278850494546573551604396499896548316418798266428807066395412009974974686890542133481477935768781171476576171571635585584966346665058841678387550870788741821007276995391471043193710958819527517553738982119897254988647302434212659032942875970204915422965340682155921271503570024055400699096868264479117351584561513067998530983776996151860106206910219263406799920913120531509805501464183548122186655304938811139074887768336582093164747230271148151496867665705712958147324486739312091646533785790677198254617354862880301398241961913662105120876237506722715845662946839117177288554985041171991456189336361728763984505918227394202985526182550544479947066550664385877210603704776809854857414896019577049307981957554399739774601253731055285339865775324549800319240232862205980053749220338263809274211121683247944961349060497584723290688328701172392947349312113133466468354113596713384588418185830688308731251004879303869252627569527766475043178420052976642964779056746525077742805504038863068082254572577545576432307610342277224704538472111214871825958436424416553838038343973794321825514827847679461847248463143116466094800584886697956701664718223301447817275108199370832457232981475956545623890460498619520412477656050045328706550796255842043946071971972193045159073418501507155951649490579984012190649133563785468414738835802804992013039946508519982637987511497348654038679202917152251387194963130634048047053080943972849197710577448109811994379119052824858479303779354619274859598172405206258841989477192231088756041123989634141840204530260570384087059619227190912582825993414693307331261098164318440833648322884016892180526688151050459880142712325577160789470445679831674668368778968830494167366887026156037092616944374295261241335551691483774435500081739604921061041507673098219864742078134972431197632114755110144069866656817623005858315690940805649389696208560485107915631986533546601465964062998359039396653669459432547266812543502511299277608625267917917041851306227709221816776118140507292949149511088188738146128166268537701844444642401907867097156623057069243208322632496013292932377784586261884838172630049279221926811863409100248120609382694080615763405597710399657439054342848362146252415151538214564847207792894123212380233949864770876076682326517682209347693533397727049269233874838766597302269390306006864557945835497750104482613918124044611869261746476592498569895022865340340570840892613951329058732565545530690657338480873976642129488994964352487701570637962685842204216497220486575451493081470386358460364140972713101184293891806869069349046612660982499648696657586497579108632342442816767524627019731451512380642314200342243450189830945342390494074741212531808640783520348647726430693311782974970356063617199163826929537923919854212924053797446934570926626504400032435348909903524337496444362959699649465085731036364605628692828384615285026010284490696362346080598666627154695199528817918574297727140874474583833775123691289399543164941729856392731500973406392246687072936290643451855029506185254259911369227478266843274623931263462610976127260367590147126039396175399774475297919685747180798185206786716393395760802524585612074855174537308378745535658905233373603246502801941604415188434644086069178749174962776069657920821320916767333593693167076072003757019114700728324739315077113337274704734804443370493735341203326781871012854526319928492649154867723691078595614268017164835423336778847208139051061046605793688028781177617886203651842209732505080295212343429305807559994213822541255651510697917695189390621398624953102059020940535933984731164259987237164981152790389668832786823976386029355924481041558153287795184120992347355111958009460713837594857655244887072833149546952309816849305607735262918247773177744520972639956868456941895119953175849867378481781693830210283181245769999619195242009975191315887272760570411154666325535695582496694675105786755182074811675892527149753762054034589696530672060992962504325659485352431287738012267925603419887440076280372544080365004469029687131566495658764852810312408203867239879814327369722118993586052452182281575855628684690734604998915052873308797036017587590350424908513390357977221866365365337140504500817479931354464807460217245030637234776901482458098752120835101536268457781868103725616657116627052425348334785559994547203003782143911243016657940378692227627617452989344785148617644548860003853675439157351334884897038801548376410873829701606914437824670948051179160916660949738617211439135636468913534595429149926989917465543462691293384882959811761847878911071032083813265772183149930693193551574501572514862503977836034095673960254524611967850692913959800810877444712569156193395695046881291708408681499472766950236781873138035321647197993524764429462317937640910597458298698093311335742182794688693108269783994132904761756209731336851352806345586475658631415800458566274251143863890520506954161514424239439543465602580261177749291962877507466371215054809936628260564089989360334942226858698741960825430660482506167522596400653419766728607928846604062084586524838198263176398849653887665356936317844281101174726800239537192847810318850162716383699832721713768722857035352461919287632442643551821575686785983943789635307703423850812114512320024429052729004493026185688843040909060836040069982305766477546330071111035934186679113960907336548640730117956925131151692910261410621639237898780531433960951943377108463671626844645674815318709081206234533814104513140460021815248571751101597151744351902509557005725836457851781534275063872525176669444725569994370630177571056759290432614105626447884373098341463461276779659142926457955559379588095413633976021903827042517683226770562454857641495153577189395278750562633888603313225910337001108076833380723882502017056250522208475374206820095071354229342007889383309792212806566371278100259743070945480827659498764155822445272669261377481590388693567891735236151178446008359345944390391700748935775504184979451778367707343178902269879319375731761810108851449675067381390694406574771130121188522258962181455353462520676852380821771401698951327515848785642656099461738706407582517540208373652063333313831178614262352619860534252767815217463825312196239853216583217082423446233918806058636410241025430199573214434197116243824017786233223281793988378438182537413243692512958672316193923676143056133495224929407174789323045210409827432756225865156435091571281027582703917560583293212764281369373772799114771139036546326760705946613600669697521630830422049249575788658355744958391010231841940607655939591136878776887794417254816762998656596601068608384095059383217577653843119944629177005484874622117532160089586180648246239048493198298732944164739687474132675131945118247379085616018809747532730696377026508637979731506083733001157294718777777364684992146093948839608727351085892253754810313678586132251237080626292624616007592843877893614465257785608076700050621778963281106579192481228800717047596084476505910844622195249856849832007927034773847829620069335565722153517536555621444029602213573340191530719083422494505651888079712526429604466488463792677415965840256683168007600965478670300625488840206435555293978330654651653226294600673116512073915712874085704378829405100748124896518577320381482145632320327777055971734393740533596016328357159588234341717028252263818097411768711973984920376775588311466303552010306025095640116563285342310946827584226762585155461226297294943953204547639192196397576377721265057317090007857239060734399030751769661880319105924495203803748270717119477969349449219072999901994492487403399221782337390805048938323987328498182661253951579327984721354208946422794342859900672079792422653002555498996660542104535799845517953316000293560080742584246062804297512724516368256579729316241058163802799936285150142797112232121685861980031385201678150280907765993958281246161407618861825471532734338513911850137092605439171649943535660634563729677365777204085935410602822169061305086986386927734573168538563495842570653539103064083347381603595697105099391761917988507644717312604882851008996189332814525683760212849513503837258451302207139241120784528545004254551891385427792777854111800515755042819900001026656447795460305816885424836029904531041454933978833749253863918495666452311681892476778452152822570712809156857900247639431074091039283916859480004697655670329513676877718874118222783825041234113113450634615816268263263362005828839310407030659104980492887107246951252731056793082301212460426619111004408827919038805452891916635684804935249753005185215159258088533580376875710645986839122479686844619829681882162200517991830425575283893631434333319462636347533857868249663871037763119639730015238497291550928765174410745060272962888282920092975069463294325906005925155859746971971004671461055923031403319782371653591086856216637658304643142839403868640008650280393009950028432929168138247282768877545989884749823520804487264638409003399862081452165356247064960001271850566385383872809231987119613868198390862585237411291327152580132156558437825005346414920172769071852645396317589815409501166328773045570792910704307924745212741897878606737611784333479752005637238158111685069605579040414532598266139569766225306458934601690182490316583664090986964328071244824029838280695058592229368955559320254849641930403579926871380406114309498287099210136593532178914564386622961446361325120461422048523492363877346182558076889239966757480667558191140185004860787743386254285767519991157194399665716811552417730831425182331253266623016843397631331383293862922098757540943730157611848157698286076033900732135601333367057169255660611917048720366443300462456739934571859496054223394721494217452156606842459361655565459104723553323630284948379029206235828097919477431038862586865719876251439749870139392824171925781047303646303274459706290645468070303665428746021664105369779811485131555132342012027729877656364615476099307365870794815594358310822170660857081457777345938808674587876929113107462971110980068495866453937608015584997245359228016599676989308633417771429708921139850156897986643856905272205920317706526740386368489548513443730372097951483058379313940968019298182220665601518017666354924845424154915605432423000866595272315587927638694347024600818745655598641858787770546485402868827213913823776161665205181726885788317555740429745064414171308015550872030886902223302065170672856089496165260453994841000724795892015864105420785132043899220262708901355925656447676591953161311658655369811068929331852055369653302009237498368516706193710067862741238373619521760848127453399033696357027687930767812343015475805485453394471416647497888820721977240891377902367017604704963818152701764117481411064045347101370999935768262283382380063663499150474740498129926097288154024321957329784790906624301118945059924419308336889882619149688935697441650827723960827994586272094242438067372559913195059789221062621004693596841107194820398380159769759357356034122501294242071308613280400844354285853057827554856576261541227552829087808219106273521134626722801734444615204295166220139499983822402005993885677647675260381400500696370562144864860005371158803451938641573520960182146281433107550403891521437469016635789498545621670471127933522965841313267012380592304522182449708965604446797347322838537248785820166222249885575977494523266468564695156621059997411355905120374542319573109078032734659279406669098446998187795650344673986271475229726929786632645196816804276179922018720147969313465975137698580922247987477884713183896333341986904404846615632096524005540014651687044289951004404518760327044425765998476220722828506095032357924248368538719577712171629937467441650761892105739528778006637191434949897065764580458215997154855615489644082651342876971025112216199926389998408357744740993070530831200718478675442555762080824500864213412897150878040548081121763708621699013328866757151031296771986421011125082771449866174099700597873845480299525499567630827920186571756954777392827339405221099141432089822298816669756759846485175072375089150277846086371511473559549936973286157718939708372614048468718144647516198291046662418076817720418726657128134390770686183784844548968267679007185188177072643229713796565165630663492347560208374443978309613060266311174828685806784224485733627381420071642851065364092057801310795432496500866516290196432245226267360962883437655635976309993785733580434982298864561633289816502408985218695294124792267486497980745930555135458202550249009667092384166415133357704784735667803335837253132563043455338236798630164456689854398530696286403204350420326417440297567147523360416420926458048408301969136473812138295890971655696491233693806900602250806895580678512458416079415445916572216268559248954603595308439641373129154934293691759707221624133162580106818304229648087054108311898425208886737391696306687338538868547876598927008563420429033544031722108923047403687778214645477166791396802288170263429450841237494011527397470473313457294972243383306113627976632086583373331910913662028733157227656359685211836460278464953741771819157751297990747646461188774743566435477772021257856406795791472355786973160429582707798699497061914030476091244102288770491311462020161554198307133449852057561820193166491731800663015918321518001688305778185294376498957303599428207644594117915467414178118181936292117288270098258292413837560954515952896564388082717593790286913784356454960129147782471482345832782353433547939879002172135604232870048537059162477057707633744930024728328475173299485272649069920859986720960458161425086973119111573367135211793269589780284237275710681777288761539456199001416036933034515259559247885747690414205929565365936668143182759090743973063819874524322411878857077717919386335296186270155726892704724113644099569080934887771193903703172485109193865047841746308111236886689051187874342539353751294542341165231635172236227535780067593597488024080212320664740410751832312021396226854603890982101147801438477439468733999933591080496025519288719974865862468274416579698400716151836690391672576732962709677600623279327234951983607682232704511755464430854430871994688401668864784192056048103094492503018494207011538714608954725165824184007788763208187937335724676251134327731459683502951020140881794296790992049301172422007256766650047224883114645562261251820645835663477021630064658475211664946211722760651048199148709073988540799019720842617593980165931623820217976962527298943011603272169837532543469598126415412880075548804285514898741787881407187837662782520490718189850093459475689082648489182376389870076031700142189389688687563860426303727587707117279513968853961927388089060750265610725630125134543841947889330385047812698943737232426127836454287540246133055824613300581533062422445446519812751260082947003702686932139548095140796290830926990949281762847042381947353484397151194202922242864834922939825090131857104703429854515960182468952627925901697178405172611313481138112999214886942781027241176303313397117591816176781027328821076165570180372369023026818058696723531980512089458146945631104521838737250045535476298820238116695549898062263633443618009938912601459308313918193302289449942424632890381867609272757432915504722540257583108890432808962141125692323751309949970915648683633580923815753476752298829713468808949650238761415988439324495387748180039894893669497665132183630679226923620557094061620394266502795194378748070318200392248729219350280400506154096075203516622173106221322072072123055602620769205418196817640398014421439706385829815155115111349185382503995569587464345191150566009570568496146792061429864925018920438354032318405933450325746725021798109094124378991582944420851047673986835542788256341231499159545023114180529595587169132694060384724703573612290463050923682237204433800469341876942356714068796650022769459262983470954419776945340977599272316358570761823514917463744670001283318389320920893814788399231120092409244459805517579440674933965864476728408720095513412440625689626493988834935698429967843824669680958023367932813855044138555348262113597887626503682410831316542105222119601248953076314070486843975931400635915569661039188660710149458289862995844681875057617503786527852104773452028679359942740081265217642203566142315267122172045482427127585621521883523992152016219547868508336159095839839313680644496703549472570993407002835066856225497641144265653666408163304795057427998333698160056234504178168191037948923337551648633778278348305560201531780600782899704191974645051967472383022898422461118809096408200102282238721313485049040601343331979808311676199655284580982791781462853903789509302739920593512165652106811282160814429026745359194428255721950194380864507371078080012277037325777141035013203706375854541540394274864587858876934056349072022143524723036346169438654378427650958579585932315671284983518984849979648641333050456734129573360157597603582259544980858937721011847885931086989641398936458202453504042479635571228628805109010322269670713838890890058517851510683016555110574321512020584910992281349265148409986683488860215927081981431480982798083636522273465720744246717345595123238478225960347676851426203216279652531505514212307685818566624242262360477215927625646069116079325023973146733892972298232243671387981481941753350508474655896873880205206988264211025300340546572860695833625961529706933472039453281644808549413288255184014071242891603855627292653218696424775219709493864065450369461353801983932357550013119045149842008298846239005977849060596052801560787365471964788442714809365094456781215161463842423375871630727199548236012088738929964145536140755556647238856052461728269633403353925366646616428051370643744159038548237363402772111751557015667715633550439088331400489264957719132365326000331060596387890322340897186277164806354390615469145119031629761952407365810857032683124593641906505419860612349107052052405908064618711735126425900832471778222027182012959979762161994129584585058729561453452559620425377388796788602545258012376710988590562585853140821973013596760118765074394069170168836187721419328087734648641486886392937656177273167847435411569410533947074651673366615371610101943854874644523964737675100932611718051874860992530910171634283886283862722363563643033247753825204293919928007840614987496891697091690851704291692749190793368661326493370179107617130811323721973603275269902574088219219962906010531578481937469388529240707359260685817701423896690383887849171954456080238976169895722726008182787927736604965880683205572037508169521600194928335906814970692136768612719946118166113768276877845947556596908385661526819720897200507834268794651812612653137676993226722340310541457832956960843510083376463590921925810868283437506023953693581648289825935346246481034694772137490509208780869728552132287735412563415613932953249699212760661610370687794986205346816944726096546255484989640350397173622370603139775929389056968997458894382803778769561885877376105249696037602160486443590828885864257097827349658175103443225562007729482124304893868972235902096554095278929507516875366331330827649854690287998729769946154823260460744249724073945909177969475893298661403696880485754898037063415198312647514186125591776559629822043188400039268252023214326271434893275365617211257168396060691270936100408767060881415288210318215681870676382178772812068687933023082818897766116734538713819269595390222586592375321551427933044177222435709083167848256258112716381964033485855214481561188902221246228491799871179781174390193334341646953238369070265870865081272612194524180209438726528599724766728904811783941009604717409975263192362917861100266020140089170269393229161959828782698673063463333170703651301310890062596818643312274974987490083664690210186298030499436996162120626942685025911025637788354012710100129247976589468894943322061522846191822621012431097188605163780436516500939616805140179347875041842668112162505469039856789495962608183167744781355599334659991461137059650332409718350475226531702101058182545244877277210957817214974758640724769028633577174323182316347878802603601683191311840937913587344245222817505049902764326877851436734615142407506304136530477970203637753618335753865554905277894279972239717362207895025058190828517450918846565368768078966212358512377239569436929176807033057828930078832498915401827083002924941165760760254678337433950817030654922212710131391869108010989605959696289759890395216868969776966090403497407623967346884834572770021436834263580204093300033029109161686504029888961984945014303234499623699637863355993414865835264955455715345573760923437692658638764185711854522665677928952332070023458511547109611650401527620758897668500659214503893577616331767653977905391543161106502800747546894011452124893629169084868745981579992355691211801927728467893725273936266652367343351811767645439335392239034574789397321863551391420912196297997147498204882415467529948977602999035311883572775105090522932344064228468112214126526702480234661979121188426082429378899797097129145338993747853032402674569584269684856860816947602065931154285700675589276874340118375879542387585695245715186575345755785811003207767554833243066975622597191356840506322447779587780592047133069208514750381815210574982576714965789090530772353294947551145639583924852220345000482522672736155138163819896099963489747193963248129660277675154632543627743064475517582366345786601487821132006883167241778474219847796090636945115046491455883361868794285985352318748541943361601398122340954137014244318906431648179547453236433273742734985786913695261707215612877599001325476537884935839108811673497189027735969176098043332895551656263596936216900683937354692980107851033967200028654591846617095483813639146165581424661447354061229622183394707612485428897150179332447703245281738178889207004300458020824806391901232271982635644776354068792037927781559825164721276491141158545277189633577315903519687756604290381747222825390679695513722271035616383789747568881497908269873982286662673892182476984539456593031420466453025724430444501495895584680723034666821460443108555614225862971813369388128137787588466176878248532274344185958807375604120720572023754319329057951551227550076465812328362441153408046503504856106904827227079558835774707739987246561782815140755021096989170993914656198918184435566706753609859406936431526790050499668114518286404882730275431155222521670655897245247042236854265237314695131838552751462092340586943813682089608811369417272484044417679567761820506377576125126263804432604663878716401383864218132463704502706391938093608644152380135494117841916689010527385909704891160627295820397875711314508243486314609232044962251386053779066546989994391828827297068889552587239802650471504486325227311634017271136243380843729563884271150518630998899119120698472395635644272010272126851637691599740204878241843575125369569826445656782583790981700199346719333055156188094965322772992779984462106768446897690230349172987962635333199412169446019613067569742657761675864784796632282786541024161997615963944586913598068276470785198552205905505470278734343386056075537252205461993768156480283152771021984423881052953178041788825353479760238159469061456853213534872582903477795851060773173030727766128520143284341135012275070187591846982401721246421037695011325645297028167424807686666721311918273502895702855986293965272463709981371427852911142302829283456076121739784337289659206754309948596755212878157663598083448764425774661100773130839639367988325127413729899284669224035352417919023826631034186410294569060779080137290172647450032548491706909691909103027385263501857613399866300457793206024441403795434589345620391149849121200311190414633684991098912411095060823455959523550109489989753790441006661715842249265878543687432932122492310742919438188463625258067398900939243121000450068394867098007551872634954929045926070361417813726520192177947726654533279894839576573567748641525364612366192580203446955452906840149299967213748197461006530632206775420007711491227545407805700415574039179093722966775968390311051546833556018883803404829066679802021801551963614752680996364294280121380656857513301153350598261110292249048964348937148455235754429328629354408527990440382154278861166357192746950696689257519827937974842128273923029784313703019103741220475710635996089668283984770633393867448763439722993084280344418519399791674344967616308640626734064908010559098523846297228416216584439374489682368826454066911342388089938744211990959768419687998744272156350265804777872396566853855706366445271758916298449086565167309292007792936887345983357388740874388286241759311002641385805624936051029880154194130597495898359310839311394672073712031871574069399101181802069173928448214705271380832301912381423191782599994974253847022276893064418323448050972009150808679654125554868296017747853366768972717029606410591168783718298229698801907299462679953502086011031393178843727740800917128391464514800129205827919622596594830861844976162205175935398778760455576335622430855747482594563250298554255749186679554308204519807759760623841801841791342653208240652929524058807465975204849518476181241204692068677475215288614428060798987754172146482927590268781589226532843488776976855436542545183896416749650020253022013327186821066349741701166164466130441877075366808099222855965242726845514715639072303762690195977908994591514335248600794521792129473322241019020454451960589031441136454387373513531654797526902723353984903111269656664658114912830650818821531856651418061426791700678186587118660751335071854765623857363957559553393445894614617473982615803770202510777767041633352925562317275854984562185185527020631575294989779143157760333339362099105908651840852047051309181827266800599743221333740096510117770693519221954598482218872834897680572003531490530452922398608633811930443999824340276338311189638431027836130695119734131729410904722107393613810476280675585832789715250897452416923965364100861479633697088214422669148584834961546415027438035559320181725452644097782439579553799170539766595649375748061068213689531594922560679980688754226126752094893086189970666518787950779765356915803308999372041609948381982604030915786047817732970941613077853152897812700001254668982413055976406715323863505174890144202944780663366087441559775448475243750045556416649909846778913454227595236775137644366237392957321019774617223170761594040686084403429698190956436470996920194852302412312462011019086041700299351515611743099341701418978085445733786661764974274186182247373116225002463301752304729668355939053613492906452758076960956074130962947209378120922007230833953573219928101668268355683011460595501024309010654728159055822693011538862659706538511985225777090763785900842707432487596339374287118121265850362532776559250142600837654142590649668815831036378765074928114437378544376741738886676301569663469914097907777723936122803770440954833882736903580466929252944443730837884994464233105645090166562280663002739868804958125890147066358546929448373012672770844163501688014287430743130104739923637856317697719914038421823872705211567112900243914002637647243880414877820699322061990555762244366609102012414648214078714084746905708867470506514484325483929594179330058942026362734619864537170303232051218411394083905837327809447193149274304252020229634260604181286643589646862028343892246293772015366213619084464298324655968753662163716852285268748251582222833572138124791839604067804340486049517313390900600579215119307278626724523570076293996944883094437824284871064208135908963757915472598812909382809906867046421535093002972759003841581890480649916285396145032915429497940814514658181926543397004837820092687339934564344513987217161302239143699507503212354523035948603757813464220452051919554610008232775514082540838151046844583327464576378269437947974818151143460210499005951716029298711654989836952425886735609942177458918375162226343905109605196094934113139082830941128107311462536027548522918460824196291553919600218540263472689355415484850844098365136395396509507100685453618189511450307732239353107346234460514066156986702224875382878148347883091136758123962690938933504426351183921981411905971224501810598404780914613044830541909142439830889217045575891173013460927827883753833522546953423177405989406239830142766002948889445193890196473190314098939637097522736601364829104350532889351282421462665674208995575656318526379027317157504882163135610183089151382910211911874098758795134931673358971082813549646477529127577895067340270644516483084983557104766017625332437591948790194184246430199428375462305000235562391188400484912453804903599153351708590965759526973034682618455063596024708904952174110260464039881642473092325080855714109135588480713019599734032915918053794530102245831553283037318270215957371580433129347350321947862848807693583490956468538558243575190907567308561319784553458010993028704280986477547643177046326098719537389513678225900043889194342829699899546413374356818563411920668986827641338124793400268001637088292499976130314527808603599738035438613436333618528157798072115729807225107016363493970552743799033571559262612533472401577119801660182079533247428944064331036693668172511304169217439946713131891566412190547906664680755553601270220375894895939850060412689299380329645233202702468342995802305365386352387379166571033172089366215706685427430666955388829405277059040951097871909068213785215080069560685403153537300790431786341240519995437058723895823173415194484979888781064166688794560207168241657641025779640514816659101191436353489109188194295496202751436098017540047806319954777096217119556119869373255797826997305415560044943028211604606067787415405007574373745046360278115095182431271233507129777279346755619219288472634364520000884170820213414846527907509288265633846771176836417179978348769753315789210519671169881600389524086853067556231876175207865842946381039138305766461070614841060686777516980336811557414939973139782543407507854758545173502448613578249045417291714277875074828076117697680110893678791429432610404002919698461294084152014454337404059289505701977653680027705608195677176395567194267101600335983164562909400382101963447768783434421335193467484152263727962283947602310232373069147805736448002540205057439526030865209845767104901095144404128806363379888147084056075615933319666878023956778077830671229832878062898395489544798655329460921701927707374047942110506382101876891979703868177672896749653882205143659351396872162523077216782405800817893880302835638031793614312733570813616098205954035143299800769433618237605382013010053011955256105304258016040625452827065595069348471747745110197165183844869304360407499824370843479146957011931634997773713870282502614241223671939784776853417593821593278667143724305422243256723025063668199527189944214279194091571018147194033200393807984906124677662893923365460843128854953503624482569332245255726631593828605531594494748058498015236123605982142424642946856409687265023308668722703799996494585318427560607747168792494338266185562049116329077340094593258884500251190972665516925311560708154458049236054209651456307828065303974784809527615947973059503027803948448585805176476466379538646026311743059450439506235147524255606380441319366739669286478400784207489414354422107732539588097191158157997459993080732725132472033059187054103196908564101344947255756365235014336046606945331137693294871322215503554973914731519013617909168114462841528493464525865149089505131433332130504899164547603980512645508899722382291655754609775811306687453112010874464205730535222176084552827889082905713799783722181813271782655800416142765138949619277365289907139857360204301368448355876922336723410340064404198011025963372081891783702562588092201182246506995024861212076485535611327389869136341418136468381311826644284086262923203209586443372170701143733803940654145026989635564269056900901423609375686010306608572946702988360868273075048894953530293070441473492765178891188867511448638510193203504102343592460903447008781495524298865986062709354838947134457802712221031995587671621579122542603484274099621391494568166741328905349740731663495268690290109415678721210009048498629181174172108433127322459041604120090928739121973406425760692517671382175589352904704538571078553695202554380712904061494202711631359528702933431433361091523508628915080535232893468126146444996267307160183580789835473929127592897778223586076490707194373264501420760268563677741481929651352217657683760120622217876304490583119864905992382707553501698571466046120000963007067292381778468979278050978778658629355834521970974555702248446713641419519192607616910153348447646638837067608571922931948386406059305944709158444889111971237942864004525888933453459307797533215981281816196145247278621185992412047448623844823776296685138904414906307291837789716208826243910781027714833636794939297871913582795258848587176612884987331627897202968232214434035631292487039616365315085593030234987963597906266237882961162529915716569264505042333847318831878348761055804743599627050040160694735217153732315201525903825324708790823015374071429191683973238698414725913751515517583266061686133871264991491846375985066843999227645591617856434870980502149450823550498324201520850856083404129653680598489876962433747072301069212871122872951135427263773047995029425728239653872188382722001402649846508137277327941537300962534670227298922824718556306601445215056136889187421706713806168380591624640563406528912947717727255194648660179920570396642785919656927711809290309462318658251221097560982814569989209727876763557485409495475574315474927055153745282684500635668609646488595770126275009014726889321552855437339383321639411037341623588971877797857806576349004296322223866609236646156587403030975328916306629046173664288574739794609596505697148066369518306268100976840180445205307811674068536602003381453449053911480872405179588147199824611142146741175067692113360444198761990516763983644001258784574994458617781451310133185705053297830462471998301398874538419844982249408934186764892953797501006011568820161823844735140856522359478294667892848669709166450823859403028852878569701528540748013072423664236254601213217728989817613099474434709358118027847235575609393548931642045348947112512343918916550745202094798935554975376308416757885384060809323466895989256873782446166668357079411138905658813342996778501672510464587497064949462768190280784116760030557264447738847191469814751747893869199411020421329383141766955282497943274778245117496834129315071277283764913072429306965326881432104546040394508684019383084601267906605305139393826162818339661001038378961510095052096904562199752287142630341167389544910790244292376180209653012634061356071169328646828334463946213790827561043151649399841355244006850181282907115238906952802194211883837893400118545207474901888550594822853358188469437815004885904551266073179222862242357517090156240843121416084840298253810576566594183609705050795110310716749521381555814308676662582531739519009019249648364021115811272083023209572817807401724743211526258433334485832299963518682784996842057486308558279013795203783852170323530011837919880299525107948635990853940318612045511301142000987015302949879248993754003042043773113122935192024565473385428229249959254190035584874605088196548518686466357875388727299196746975280039721182869103583435823011325619517441621349201725014240877099914340743768075154618628985244129163691101488733246127934553423972562226126729442917495400842240206564402297671896318443488281628148705859663613119057559362217205030712725637609769584899305444934695597234759811199724871230957100485677357777666034774711232525636147705701255549448019501288998523406903198883389449097771134125860332710148418206483303849226623107745908126786451269436353528795973834363402934356807970538312613140472748492205856361349906224339866366006944908558133030903301037818999380474983714327067337818516856199939890444425894732416497105591149003933035702733792536872626625776814374857415978632336086334871287875234112238789046945241916706584275445162394393493600969014041667904197923695110543571597950965263593172726692150103760277777606131790817883659577387630309702065158672411525022652145503865023340515960283543526228421160869199834901595659481303805425475094795419277089190520737913029894382912644869200112458547717042516426691442775594220450449579125202670143775165438855927761833323638771463088642841018367999458324732545627800909955070345178663381370870539867404771350577570085017694499993391649174309952174980020163955103848250996094630411451958674293870963931375454034279590247691216597789362430273546342414288531941410349009982473780786234868734399501801692183097379727681063019121436521997484023685087102420147875848366104403040449892611391862744505111604313320465508692726402026771531454764038487752820309062679018069976370415831000835002924198173839378919284133740749250923154509063122667865204921013212539315184878638117552760682413831486707514415081199439406443380684197704816654975376873890523477583259898245242791223921498551790280467969260245832733770945657754744495362028480931189531319044317214807850707037487002164480864378239866654468632144688590196607347943102545442174128433760387039709250797769334151980659583212040688817421437677424244781922726429007186825177811787440232332982218329421926792975071018386520536806757458998370602638898937703623292679956091732509205064558166492503602362176489755273030121435384385472813875454647475521758993812554637921341499411247128050023861817338414557078836118184852864079126935800146973801946228041535115323039523783201547968512254949689591646959920515226415057079505379075002971743706423481999994862876096749546732647034454912010646452775018851527369898077840082079128565128768507173946324648198587446626580402623997709462333660218606790388492274892284293376969497116232422223661600554500479726129576917172704949835929225018664704658209623743361462279430596862090753416540551817503121075155334971483806381459287796432061053026130550997269977667383995833533385250452261946878527784763538967068922803307087780491351240858085732888139459164452499346267806722118539983236842977534855961694976714258134948975756105041850317472633298266985055993093813916323261926358103830418384180162653691389514068803672399847354982623395388654940826009853685015128755243564308818840754199812477112960103998454972972319429648463120365413019374335767436897741750940489958113465970981522178337424439831150961850749979952642051696180009400362280566268611331872708814629063839316657670084356879646973174805044412705090865143594034730291073099225300678543928135989070310272798935318955070704265123561836055535451503647516682454858731991289653470563977429185792044410853878622877245897417863049440689764615038713704461562794640839072592541823292329059536963904017973558259051523674364621807537062189178446972576051073685159319872946898665619364996644138704944759290346911962783288257554946367758200547922404615826800828776941522659165227516047733378088532475745224396976693919983964154199539674219183877910895377085743587097753967534422326085200145471445048242394827171389106654435709357048257505359636935480512654199087429216214234477102436442729642115754027020760153290879339105558399366011039325210488818188701188708928238467500548019921786369677362257853055498620571150221910090517565392140720394510881993223284453627052348168981564672462729988346505624974058757983596506627581552421436796689098488140599039385465224334908425369630521604355324771606936834961559051716131514529096922909243733668290493240275923072773591519249372624403028386349308008732735771517031086271372091872525680111561237580504753497335848238166617767669536235482206947354243373918767424726583377333714797525839652164049440743180639402206464365871361559791673729192242480291450655066036836270415068430880373091238809000145516954992697932692161791544777224261308349662331129218685151381999141812780765381832234782866592996909804060858684395469345365239218901390476634038839177449795932613377518390132947042475175865827630191785736681608556408104895426045175830249144315998657604619779848801231869982120340501292529516176413643869314276920996405375668590321578051094508849591393332184763592209518412374548570134152623155098664776968902081353617881322596609736833109579243722042982543248480081298937120793044402884030349919547484569689061996894803861117948092488922099543456515645483169955655717442204607389935008810466964068137195446975146269632134559927303231566199375918219306659144643278935212088309001587363150719505084480746414147735664980471847924838287458586228404397450948969948210539354540747230694953944920880414305480703449339763554324459118779498698373638614254507826409037657662819410354029006902407695377755776023802684117257136730131955961901808441841858513521147063654699240632302505724659889275294243022639324690095055032719531420593093962281375704400172836793969687740839689236884119967264013721978896654207132546099340432961302654893877829193642074693033627226799685216613268083828556870845904887663131624890794797140145249272473353603948626158319354215405386137727360615701220998501226991230092917533077379986772044925730196283649521920178930217160222737536230397722550590933427105289761531247522500023796502633452640633442838019342329109046815844293880182841146754078885028897011346672019039389881473664945594192921438221836787945278602849182127389869376319816868243071372055634132244987282492051313180265504875739324718111080437025109379529287625735005939417354021259100556030597113263144220648751092567841737362851597645590767745574419979249758905761386265131286740395874228704568150293831121079634388137765577422614345561573928581397259744637098086916645719333217421606430960754329343316191773238395306817432821553613343478981493459146694457592388012480551273469966064700567441155682623012208817327683554097120168954689045350048557206521903387586143010454230836709689308809910292348244585882803376833798395781955254573067594728078393303323993957580650990906476959485376056478926268949468562703719781378979058137308902537781211777370421166047503612779496274074805341422546496564572977638164239200882710826888924595048674562974163109515814736477564946960753571528776437291736731977792418258984354169524348987279467471829991465570555287816725023586333429092128477284291775538565323019354989326362908541247147085665366265821107008898679850736515055261966852563300411040298124939935940584262726128313589457659468107303414250883846836409370647361954994703500142663853509997774440209880724575024758223527187402053954246057354473680498946671488843719776152953678286775806929169570425920413702732762465435111137878172447129874686590748185586223784562864441530178478060955665654026380190767857290121563530342155325181627887653195942150811665141121315004773543646594596382325825961685703178580636994602399502730996459096496730750796021961621948150088487055068889349602745194827671090642920684165844865702597642585499698528959987088472004846921923983298753864285345689744407916078473349264994701071107710944289182494874925376290236319645899015684584022694303695397384425563448361479211799520439392704463806430196845631810928922847776006253564208214070193986021303246649974761209849209463950603905443682111114630780130614021446234293020141945101710614223223525055936981735118586848649203386771569641520954432557457086473276510280744029153510564914923549729487589596709358748587920008682109507812728799591339027021076694503790386301560209420194227185439844721934636702000160510597786229839730233493246774081918363843985187896539742938046395151687923968399939714016668382972450421481108798568271363954483121190373206536787143502584311392289715501550882160857563294842108024970975950276891761338832778748724083244293942892765486067995380538542855383647107169788778793962511733671001160466528519515742999582130970831417327608502959824374735401258583141753194098647844757046732291634607511924934538684722435757799425614413992345551853463567391598350943982462670672522951654323019813867919438515592547367409036993213884780416606389253698319673814558254478059175558342895756534284425596616477680305419657509053924139827036852591404899429774285189668963521523262594526037721517998494510003118691525574111276571023416854578311010358963834048367323709920444966243975063427291989544071760770334534283752100406195238958416338173435094555111156571626942107735546256932365237182581834953403399667463435439952510744974645399614186374797810021013881444171289900388199580923089780037928118442316996160609958669442966534281101283665708150196170519784948476214885293524879104474999125871830018827858654305990876638810728223058349452489562346542530794115700818074018835154906625269021518760999793600918302471807579211041523489060720808298927362712517851316260551878683397743139170877878552908509958565944620389436741040684786256994693685221327301944986342715492764264166982895973840746204763004143241458389512256010196343660813475967496257607863833293709380514019639985610043604280586308440158714248218108017709179095975481614277164376706752827301615889457767693179118403369294958673676810934901795273624467091850845834447645678847442842343803614773915179600144627308953104787597054225026203487055473310429242616299270751621996283490554795987075085629693343207514598021650169910074374445109469975490564713222024290014010320797110938690851027632716996254564182356056200369028814304058555920655670608070634067659446286383014311017549843953966583097435408640890200476265629363154874843175341701579477136306563964011322107357942674151528593603480807931763924701343166169465295236151543152934003070249587775793728110161953080042084387451096001097886364646727417075208349396637484574878056977385858354703839981432240545651243405685219944232881133725026549313729850176880595276914438588050738915248010382674186625017156184712817067601349295928674869068275248322062599227810923986432985365535171494890934640771631096808322124615653771401067279993437494405115742452034698855316693590440952784664908713511487277111835437529552508126830043262245403538343063609672466537079072307673158254334534999788898582766195436362957844882232065870625398330751578828744802752874526058157975951493234211264074804383343237105650519185269331195566869262194814171405800994684533787265427357691599038257346456385385376140730081662277904441169961608296189847527812579309606728433736478125374181211951439243312992885781164721683095858997478148741653507418596150255997840232454588768521164225705263491787266358193196031194699186138191419394281243117938626737350092194983206425460984433369179875667304952643549247561674097381956529880803072627649167748348145045607447939485386082869787758749873428644213482509576357056895807281899883538887809797590438056453527195684062047048476512029529818377827357589883746518049316077337892579398731184463472229226397694258185279792390080458669295182063257510820971878590404754070297148650864934869129355676544134303597948198601072117934136417634044930474022536983553744007115206475959584254481326224135150849980247078050893633129726438108326075757140797368954836996345394439801941097359843288106317027541936387070452071490115211153072857439403130346881517730978865320879905622877551174496882433306171584711548189304789089514399098375894879152101454884528396789667853664623276359784136847608622415934763285168209977084045978799724442841287895281591119216443908826681000198237330875361968603545835752848592772493605207129902282064315400480225001907351384542927951371395842400884662109130757132354494824776813026362288126014390112456712778137954491698933535698917562247132408136267386229372092910132976348213427001423835324973000458409849863175978479285979930330400654786407004332831562957008647284703663337628253564070415113101021191493302727393789131154012269610620899439198611316862208828333735677366061124793781069502543908109907904681381092361338890231173170825163588864178798779524965502598377247745454384481166316264887076439807884731793273625615979638086596277746088296279305799524376926834952081713510084835001558786202982902436198678887592063011003375853749143904263853765617202711261294609929768117199808759075686405516156931953729324698996898032855510303261559896981557808257839036683118563979061053485310825471268864286104673541748779552057153853045853957114586971848556518883147812796177500259779922246589580057319113460309762605226793554959901882083260499489804711772460152066016382810552080162972340191671549755413125644741081327697645515754673228123326147832378075695603148825539040352513475901716885090470676465378251315053160852200179293347182484571705649914504994612968440170684030592508728806392938801547194930612978631116738054155573844029557062944555860432281513953983287227858918734148156492080224560207662383549799966629363860607183131896596251899086078473667045647212399475700712300603530528144898521333102468250219992975730289320929785137189820392119633845200937949121134660738603133452140626169200779901621303317287230302267140104589892018201595279547071633545766569445224814737874660766616192114974250521865754125644168559270769007087253640107899404492378475648981758929327848525079852456832239703942018269626720084016865819639565161604644099000170378368044974030608335995272167894176161025802857971277566334639508733385247151588505866085890980385489685924085446120176375697568465193766675328279028602598622757515517899239227474696917289164096561100708730199825242828132641262775369632569905636721746993286894064544594561055183737820976520076379836820877270605697460388475735967371415855723923806869071606865771856159753347650854298272203818109825666193408074674903695768863774691475796108132395275541237990336307227529017880737893686403369990250275155199865767548121728339803376079537814841801679392990510113556860462642886668789430886095284934485589991315767770414097463492946390442192391356658166366635522216987600656983695255578814797425689932970670469251476840384512412689932290214295600672928845500071953134491795934003271009695188187077457213273194580978868907862671971118481980944847581881771686493265514692359867525235188806368486801465613541089389683312298243610973618463941648452323166004848623905548324745188984858671040798400812409087545008882405237573211126027827593962757064764778356693813228537536338648634084806559290656387224333748284363147968846985520744740483597622758498775048140787119968279298479684573996452557136866116840882499188973526221017130120343744921103825669392177803753334915707332246847741160910901099568316424446191280915193124258887458591616987478556390332633971036469366572789326015181863901188636255576948861371591943456229861660133170190017163563725483029588666379026014432469174993111646929041710705755722990307702423362189969534588103013129911239743482898535166364908894484319528077772154580354850034847608315314641355057398001841926222167331926512311296888309880438916001898331456729341494842874318582809935819584504571474257192609195357720708153202837999080721656037977651578574878332050581553376537606933272089163445725244081439731537540922681994702114341929239455764593844543529575906745802928887034031802930035761366990574041229433546872615069724733056501446121521486258789916773634696681948472241788147104614180813727960723446114765879378056713417826574146242722802959762573291246457554364921115480477653064941694356537997156593282581062468613994582164004694260669273417017211138715889678438062397420376973096781034057878797848088270069489097052978260907713140299196985529207728552352632618853301941772798646697837352899267583305204749373158890452249541286588706945399528898008149153242274327643436338523543016503706731161021484843460319365546824677594629875228222717813605328542715759212071403606717288345965510792997100631506360157816432426877715386050140747234637367750569594903516582393507735828731100854378733084438667393157150729942437743650928811023728134615390092055656920244086485471909191808772960662280969246618933076574580142394288742836758259077411664809609315109966024205887255562659438821840215731261187137658399130602648203595262534190669080883770092834859763523881076493837851748565912175116431883811932260509211139015595139039184608180140260513227553324966865897808740603460592929897324747624949958209203319553857976258314994768490773264560698763884288250195622965647413411599859177873428842508083055977649345709344126781474782716628170177431817457472054988202750437463673761365441971997121572235437377215168990267588929729515481942947259014082670866854493917393213398946084974200469300471078763175221617738049526145366543759759519298070984639313809334207899528070041462888163574407638274544322064120728353352690071428831273512654481931258286053432924087862963889140461438642654133310703228784771990627700766909202189693732528946956465293842362864155468788968398104963143339340449092732204928817639628067650152133719797206610183951627246327236388460875576562869351046143479970910316001222753252847209187149682140146959218737273816465196315685650385839354266130775475020706295230689394455611402981341989434514804217900947761744535396985744408942814148188375418001853287841146274557385437669655441458971693869038286935828518604036788368627242552933742919784083213909170325139523344678867701824372703678902778638545005262622678038639939591802375049190479695118910004706557995213604906432172997812197515293205195336229405786586448211815994320680896321118609251605976081287138469299777593856743015655490039464307967029305930921740778780849873325749693688577736154112634903902764732271717329525196537831667077339033359380243520266063062510936006344254778747143911742140852500812747250108909843315703455154256411909500056494315119088562867378389197318527750293897398703867470001982241904973165089496943287609502714986455119889799384961703515287803486572139527029334510338289762407971840634344483214390566117986717403889822539968301256433978380923120786117001293882150261398092567723738808941854463086854076401526475132719122321545306515908975600157139428690002333535853532947232615666042124147357116032044886357281568994626616179666382007967429084169481812227833056969543568221826662070629307513695358759509308036130985019228812979387707858767260668549847724760934206733642800024356837536403821216540426508350487534978801517179029047182572796609260695506644447735015547445459099149022559215602657910012998020810324862276774318975422073544764819277532195956000326697149345820411518521098801640760447739476835169970166619378776029473315106132886707240038175298011526659037785573891343777347686963025767153172127259398674911717883367360369744824754992821717111844152799877411581548201033611248208440829413639963796234519143408116956469618298446248292434654754084175185730927845510592046136584947038111266129140645525761218787151354870363411909498862653991839042994265722872951393824224815649665083469320939161449998676912595659388306034792309905349963966126751343920889577239729279851825716594091447605522005714938066603239183416894653589375970645434458856568506263977732539520013936402906733283360964934215989800651229494433250602856666771465060075310906952167454424986573195591481613014124261542105679243290880011287697465918244946777833706580372436840989985581895533620747303410082244016377500306020002312511124666875105417191182403632414320377936344886677364879602010176903873928243464855785587422229189980899253146147968197238352667234549432752723680576908011943414462097084028601299569641217408321529652102905231341795620435444142485901892377404696713357405755370106320747918780699571625029647844602657667809596847350915918700320814108373437280943523529587857978316200959212791011854266319842274618369898226499522893370950315346830401573750315420216885039777582441223388793936919382373542808183289453376055626522837690346476125491422004514572516146989174302830672632718586176152753866883160017536387303750001694609002089493803781200528002356168712147191696835312526807203328820829090140156002273273675847740834145838287668308606574982640442272518348419188182654915360067333293413816699986993472048648435043353809018934143140225019388006499847429362986655105892365421706732696646934673213507085786940261514959444314173066151553784797957792487082969985134560963141875682103775748821007885176944130977678181814348537234137924331703640518276795838900377476122116638693971609595612656461870964516187573455812183930605493710534426085357563513051614304643595996834382523465972523304775435802557412750851016026144371639281743232095663641251252151763303759890242056334113458662535368680465789889876047253131767346433823646935971444061495182986682259184258419117863455485955900164430976281179890099955790717547080353891153281302967466548914700189649190010287242497975689164333048268298196108835680531584344170922858592700116637619334658069272781526083782266744634015804576611923590162038481335262275166175683513928648195963908786797455244684702237368041374673919827593435610046416233671049694957815266861753075507605526612077044339564412955543733543883125881520839148812443841167502049749883381771668276923347013904283726041285324718052383719916189629427141185130100155323026801846609166341411401898431647084890888064169739523010279639256707999432864281244634680837226927778214384501853493625332795776391918783187596560575117432824215048858212982172748080997808869080176326686396976924777537580879308827494064526846254308210325886222544466846320221698278896384895089457710245885138432866723245229594734667815508942020960067694290473681532678133477316655324454077908403805780320413950406141893625705541867812100384144889420971005469403437070694718118687583697033584739164653434142459123450652663370296217602114057378102414908643050794670334235244912333554644018458676466283953024161703151431134242675783803137157164074113352884297539686196698402190141188347104079583505577414999949107977438226343723508328101842579824250542268684948343724588980188076763274220287757701675553455467993418696249581827762003108248360520354426903050153260599234469124735535279225099841484412090815135180911832262191804341551721675795927047312501469144089314818059353974807047734089773954169916315512449217036465020298719489275827167599922995439789968134036360970265207133551692771494330528737859377336393426356914664329153918591622186690569481719075538856257977465734826623377423855537540230179445798458723991615690606923934009256355948197953761169067688561620550873455185847289685907722504811722976635747863694535926216741932870935112249594484374271857182258599986119399313917358470508265185553868168843133652046800542175577474328996476169845023879871145033619122061482125660744953517526695094539133760681717539197712905508727935211601641112869426035851336104540655728438331120877994392399576576172020276299906213456171945268603400263146872041099297959475568296889583855534813852696410910448468313562586560071628510639687191478796164864535225920235989162912721942077165178111116933786278975526665696798514045010146493039610004114447582642813303012143147585024745370462239857015598303289295468796062380060057451491087987908228853268209541378580936739503471654259696005553623324470723528848155943581177005576877807963501675659688764304057749680600936857027474681519111078050853938848383404666750023671118777100992818349376108351932057278197895477281972103446570359069571974400994484563466824883892015133430976355499718938806974932073033990964878158831336179407213400888086167264042258136760685323507001050360394858899358845630242489554100151462366194283151282846438116903984171290804117022947996079038639649414449425323597933448554839708308598743817297610739833734799217430571852024821442971908968503995111810007143990136059558397688003220394640642661397323425501728947058287810158675853200044341017025424649640581561673482793146070105071784541695347756360921279394158948606322428073059148653367076653348817302123523728262854744287514503158589405491262988217932293159585974144900675765839417501839915851018618078927344862642609571103182567100569528726711844474272855284860700262267844943108002790335307721650393157737905437311397249924172753955730446768511896203139219032084602852001479125909362897755460790863007692182767692122491109195360017508345381559705727823184808957247971419819242070236099215059050982760806626937606226218383182060028353962671993425817215735983749295056704722303650056830889519229391933707092224034155779905884505887607372184079657424749952340079957489986765778962257782787496180491947084994372416634024708112606790947218967308128184186303213688085955800379489523761480375981772319800960870871540559685177022648256227831097401558887956323027506409044955946105076403939660227440797740582282537690205731159577461383832141854508397726254791659968926682332656027296641552186254616404632288060949955862380662121804299406763024974358381129771000656949699861597782966678736809246979947439471709861892271788581535666508140101599824540910726859479717687974693331709174198926387751380706720483713338599496297367030372042853506106726303776019889154484179011851068151814107097358912823964206447729847462510962223808245231553553717257903042888194630563833036617557460692658968204768327816677510463131562427698211175504305901245326875780799967951219514191319092274150053012542944592092081305081807008253113053177958346959982221357133613136826501689840685272767566453017924362991647325924721944439478632835655039002027535542283436901893912250859476962579388749363502982647061385101111320373178995017903029327819674752772811481792115760930564552147489070569374761842474977418690907943436791062035859823111824261533209660555874330790585492946123012776699876196728000959007608630617001471386100954207603631024592817161545457134996297610770636939198130954457695030376615155380479698626589435264789618966513287680736965346873160827635141622143908651647052450596389491056442319031979134685944784174145846637068379161613851797786166174747629219331791119165299820502197281264478563499611718053465294915564606015026102150425979191274732041339432115454022246247270162794544230567251260555293191502604631637809818175656601092032677127661636527040978266198455970046698814357196363012771957743664105098533008873235461758802722663157168789843103802328691177310848017700703171335968472015830714444630816217178502968656495344605103579806930033118317767891322456382146354854786593425814328454101677993858875362336199808702608108457081707782939045559595523781075843474164445333748635450640930257825759804836061839105558313221158404433496863080634725397284887538536853381184750784964727433726369024403376144650197079508288097559598501295836009157512824062984969063822335705347099724646085760419861715888461736232792986536442880018181701337042599381057445371968589031849460752983734222508837942486240998913982344781248533880794501355648722858051532704408638389719472702512242307651096260469667839602435053219679919902113499712952521451835521995532209638154115795577117325834820483119280970385742099257021470816829774516532792765912622019689307477243055517088005086296468086995912709416399539065817343865410272290067096298558526471905093540919478059273599730545404819013626559152226935357845508548610908428586609985893965345219206896815724016399079813668053653084856263250667962601912368119635629681788870035361020976462866625586350224404371744995662025381263855655230190817694658509000418640386341549289808609463545383910518935810087152436979368486940514415461091515173617298182416827512664605183246721159168415527460375373321637496051538631103355963164706230920294930200644280262437593077205241212237972809170996784424470715958351273324780154310374299742680671052637238249746451189339811026969174639201592095074399736177078114353472899425381049256775526053835641412684204584894068591773635836414799139147274480365110566826848672305870802501615314915925431730332545444401627782539469925324321492094276289099668233471473148872554344456453705538352249498799899994847755018365849863855525767907504487732384700411497603595221055844575480838800691294001784081131275014948239167017817244654840076585514528437528382041743048306987671009738745743867620885630273583101578100247572255291731684256524347532962529144955781388959809582149216237332214160783275587412963182265961117690239129279876329001992776332657603407752694390381452890950646839624191301469280713780260783596545386321957542244426986263723918987370987303018621212503706812451617285538533288167953027452689701233727861236463789376199365441717353314399015731836062561197554941424538880170844942692050710814740767966413313103858893332400046738045183730290044804630025596894611498075654665448969912903249491956651594152444765254264734675497735110866379903724762275230954395451377095802708637883389320333803583558708912294871449352323978021967576760848058963626640860708681033708451407228331213615839654424676704940875192788368839936144406908227709425085988703786708485115354357030274286846554855356818084738339866076502151875167419888452596579321651241493113760450342085619897210638106205738090104514245739286850311721437002646874999365725334789092602771170219665498396707191197643864576563535162931148908667340544970415596560631241470346318308198687761321496198268674086007018843737842805703490282901064157353538778204921525896126791275223446858599801535182405957294798157347245957530317690782909637367584716707872513297440202692330345552666615483810112494594953404524634599927443845483391220961925908188778029690642453148911031337204109776735334020995221608156563575320393215972596919128774330777448713152181514311051609125888331294726517410448126223907200512947049684460968673096383468138185219792773786165954542121721449696269025448045410265939211331306418363161354471804328636409562915008021312802065249229849004765617395936075457925595205828928152238372773536828228477373619237652006915001232755927532023335806590327588044820847527297876471189136732129373999771193236975842615296497476808721657077256231758110669383600635377201499588598746922867212559224948051325471877324684544148473773541081174685981535110679954409032337442775361692533983261912923791230349735794807174681172166947961886947931729484774228758927708222025795746664305271187655313988506944921007416422240681737625089208253535181725631453072566625002046291903679258106067536420648022046520988874080968116366165910496418597786278868111174101217095030515590309437700051294084246596983432331803001024976226258015066868643732016090514356683764629505040289210448700303330613946533575553370942286227244701766273631859735869100419516021780654093201838975210539068744812622667276464006983446398351954515074122957171719642177293526807983777988691498563852994112320602043231136742606543774966838360741381750095306762169409593896619289698947148845956772853551994621733969262170056819752540407119039865039047942889207292381399991661066046860824768417319381996176774809065713530621186436678884452298934170090435833842397230041797496378762140823956478000203076525779594327346426476642543083535727770984107066273825236124189867708041139426808207362756943858326074302305639318851602496054280709264469503628889211418018756604655361600283041084994163494739434474563869849808794063612090137296560156727331586093497752058669672742636319364232031250436858023573792456275136750942883300417383183070616264990132582810831073991313122890631640263105631753003398452452270487449331132608653298562112555240573671150858345418833796076175283576914810891501629308314098314585261012410004201594565269643541145332166358218431802508640008530570019972497012435743142316074017431263190530396726888345788121150448869646940995630293604183677172882478921237037476436698902635157443495299091933356660489239279237811575017260806302991390945384539460764407279106397627215762696412283184780674666350122238235935822754667671868068607649446951821970351811345016732739188271534438749841928400688249606222203433595455641068176591660116341546496068630827640057906091185475477689905075000612754146751940582399231016974356155406242185133811512430076770193262273790032652134952792787451063870942379243472426027067519398091546635878526774072189103125326903198577777531766039852203359098543448868165420101100802456726527146940129680190667258530141537506776775498423268633229797643211733294701019746117979323498617841557775043844774246390473283778909247244267106041482004377153038175115702395374086016800571696976213428244284865570998724136075224522115439724466646146566150124881572392834135135900946331273721808439794431793694748957612298094509360338179517114934417872075485748620357185816974189618978727868781291394851762558807772800133320920849055914458524307654892614313908999350822447121267411523423100740351624129863127800079130337526804996644774057217364358749524104442896877478471211092546286314235877854735463939806736164432767641770475759175449346388403651787398299487935072320179557716312399255744135344838190415261994706192303857703460058100648195775859821588549255908092075717551824138121226880386172315984297606874887439560472470686811353727231984788376539604724635418156811676533070228633353112908674918260994604064233837227670476080928139730317797836845557498645938885502103363449671317123191742959037233961902273082027489791968725595396706092892350576958145199162382522523049032784275955721385584106974738327058358789822490174109083704643193984137292326619932061331240867901774025934436758562571708402038808313541571836139567858583240688269708674515556365516309746780136279151133030379307797521407398045520132658443580940633914812670632134469438655146529086580853997146756289389481049688673287784977009758994750736262862638419415817523523842763843837121348946978642834437635427353734707975912040274705028743589767231733283015256235532710039305720228656285521247182658291933938754551913011713052805930879552451644844304113032979521252875342953718459285739515734381043609885604266750438969833372627544648960979753391910000955868426042283223353171463073838043212745350732970557582560338547484061133698157723133389346269168644698332056832970200704521424762834481164172289403443796402702987996782417587364462021959050186432928271487498759389983453439957232019635171133451549217978757508624942410691314396265010057639209643335597581051776194458990438267147150066333193701233936438151568366310362097529389868479295975882345935030667059474728202737274307611540360701633744717341292292716268924452003885260225818874013872700625136626988448893256540967686827812978645013136835468589689109631012091371346957160412746520652672823881489506245948129744874451713324859654470672115520556679217106603744351683487813699028251509324731840586082623965164601239169029014056028164271836415031869239493286583121834826166785135873452580348652711699677429689250194382911739824964815270471004270536629148387402327700916446587872952254159647418466854974729794062009946335790431512627935278797832275110760399281742331308144905337189216977826762413996395073561593165293188416170744116369995268268638679935706295354712663583361253432358991918441827323585827002073787982392905822987914131587317530226621569124051117901258801204004909609215349657378284008722483308889370343168211389020435268622171686593886291607194592554462202021578127170207115684958735127503163522326382857873907300437451206326211156883566962313966941651150890092970696539612163083512489140683524305034937232262606253625735699713413240803638290812234293439744750579113965527914286856072991117018700140461213900105133592783441058607940982382386441359590985825948805115886750593007685161604403793036527962281191861812324626937330712117887359317342068214674134013683725262605782035176160398750910264273205730358844659659735281553402936469936191563392436361088338354440955679021775278483803144273001118965944038275882369520767063798310244639746229538602163378250473935025134518853285679286571907299645449064506099766140154172966941085635479976759378352121727109009390366062536622462699730858909677118794512924751249957708242041626202991857028859236295442884599801743337876671273561234796607330264428507234636105834016288120917752814497742053188176190646152906015782234324993465506961293535873776406559218378998954029336327223748986673150448903262710913548451197090664898337566656778738863683730841023536616043861244178053181586650488528065036464522723601373111011848712047967693628532468228502666171456853133982436671135349153658562899700202280168403020295085732168323857591757198971197934945415459288128482249107211939017207568805860320290263092764769152519161308272454390903637095556678781367198005155114632346153530060558299074725634412434896626295463680359035033151400306506815377209318849435570359374778791956168328613017518349632489509042494137807392071760513881645771137917146968957880500962824991427958084669490936070981757941487453733326572356215423666696120060344598233979166995499606625318432834928578528716787399364505198412234309269076998227375629842529407039298634624869172190663230924938309470366179248259530100581150225459224536145198954609230576076668446176635177010534533623568257569715131523646522196505462575032619168370520953254226411777151179236371262674097062063776867759789997778699584581562289187433654240156242774107709311567781663733938405537587658972267249274554942728789489169936602842921471773221535009411405886650330545364571026582641821487746328493537760445024848690948636258802733003027119203242549994212760627630162028659600151883717335376269288929752533167918834105247446323886147671006956479904096340462621045900426091068149879477393076881828258353367148024088787013981462343040335958538873942406671730725518544548288967451609715487391062136735644505019280371233275353253640395923451661420973598024283178701914776983767607263207398680267801330587385967488129953656461251222979213681354260559865858534988019940188708466860485739052464851322836106296928089746526709070802131897678483393190730830325654886520109250919611122991210705849759236162367863430529466342597008552899305729022948391476969798554750863951663229383062988257516993194708393463643506139605217990573521774640201484987276280248418345308034185593366082533373762083690907664187336971098543495692414872428107133640537778988920507098780049299207818809481920343045046069956459791122825981337242778119200405705700975235686755284116999862240738345679498476386330484061314931411190724240313791676494100628548048178882007913457870155249482368837843747898033055943930129234468437363002891247016081642609778391972154034277994617651292842677054483376468789002009229823528364582115952734174033825455881438275816045460769761762117334394407202853452873378449800578310173354317414229395154390058580393538067513698049803833116067570520273240548109887973503226860328275318017216298540087852330861145548921171273852617069727266605438571091852239730597709582903945758707748447000581947892225766541820323899294892118158106451243705054685690147178866523951087022057318088925888216267307866960937145023587899273572467292899385840125268258208668894378218118115725075122356390700960402677390646872624051768331074404852005416455501715689313278669433345188696093938872207570777818206462644711207373779832481383993855471540953155555804972874971602153571184427970967974287551476516134679477225940722889038293534708414542135970387828356005710984951557508637397453499116050865480552429405550926369279996451538237584759324904365849667798993317135289392886899859670426776565831835653490740536696070127819145394018847967467563978629398117723610525615130995178305387744812574478852922169871659441933978168911699818808087855661396327427642452344160993967710681498768418616963295139571918754044772464843653989847454462106919862094193379119615232230097532062711472828567114612051836452480402145568277169272444618207199094072372524238765194299032154923280660556313607659858960212491664223805288822776297195404440434879635463192985473239018215238436322772639301413476059715043479186636505857281155695606701848930494512095187360916208193515975844192653156282689868050638274630948943382060872530183314545081991407003224397855104452275344794218010241771297055350809228784159428694883684203332166393538571156819245405207834090151889525383522841611231005722514481871828075788391901002695358949380361199523996562526106343738165186892546286068589135901827550455616092339512777466440272268917304838037223474377253262456392906883327561097038555643386921691432540041464129133599310407283043895150694023265365439484721966767687601828135990638177629504300509986295534189145974818760357275443314645211140109598346613764259662366377466240378501454521167174751204172398895573262568966936356841572549560094264161441118252272325345732671705990074878577759615710909152838720123497339652146618200058233472974562985089275540041924584002540439837129793496758510815432080848168570430914116353911316804458233944853891260243873789872362801262211117563765103808193829475963196591869082863032482402042552830066617132414934703047115706209529428982652202714562416843081582905199112913329416822241447625949408196471469372906275384692319717670988056266619749585928599177202986069443213392785337931608007989974084238685755204434582953791421444529485498429112160464479080555515736287793433735746550431961667658674474424395703793558860140147949933056440470288882351097666045316702266834532621089242018320267865555034131585810252733583164538140462642490315733633042238686528075152009189654346525808676705233917007985572394816804163030714576424505994009348456176533826175092285033706814453112759681763251713604922414146396246609472007443857757289410975725119791074107004124836860574337715908572946142467859943642295937321932210449271055936612359263526024159884348684273552331322629020378899159416507127749768859747465661705838434583681772930810233556559083303276285887771071873485262371128181560194282361128096840684957696841452657536398661695874248214269146996048122158642893647024052569193709899614800646233456919256392710879570061600477452108042440414997887749607089933598537959920298572415069494896399114413011801887428227477117440770499871817442547460264591209986259371653747945656954330970369702149273083338447378313423542864203634307374403897775614633109988637145519270137618581840769922683293557398549783418624341069260141099665640784594302398003592165745664732165619981992141476668584967402914842747366525114705552849349863830994143588700830445203450502594675478567816849194209139236022733257406765004022929756996135335087294585740589769271833713021841091967078651072183468980341308502999306028580780333785297902453265115244015042062890702026675187186633958512157868140146801300681498020718309690020406105079938583439161216955378812818303193158982899823996558988240595159935429157791899968518939653380828082818912239244582228521256059609162667170758075584750840525444527298997820519404201581227686460081062092383391487171009642406727320055066276830297025909408961880874648314284031069489363159479752934851516074909892374677264505913564631366919227938427948102341841359493790931402914826740830570675648566439882638914675246162204181015695865766257824667980607905980533459103658106464327672868505892147846296138842747007969593572003290579840415711266666827799514300037856949310706918882586138630657730151705309988770947885324949758749840969797106366878794038090615120632103516032837504704372354936943524311054612078559300948870503623379341604939689871355510234753452951942785400409165166465715400183718834202858551292797829005653372433222589397847488226790944652417169161525316026976921703529985458953745399951332357052315942130120946395448647357039965329144834040550038885520629686267355275414310201506549541766727082229833906853844134323590156336505997259224069676839297420954035054939404772207883044338868268829971418010266061401127997342751626772173572360775621421845379652035892306405668377037397698377835774688617413483694366948596106506978174212971004709868281399202247811340217782374345106626657351677304819994686399173215411350419540364053723885670903575335706076507079896354881912325565834246698009095376380935478966547537144159340556483284302385077436739617313165432950503158258998172684856520864822969254537378521187621745444727137491736521566317358404351795876394734788479421391638417970097226677082144432992182108656168487828947034225942459572941281886774490494279014847085254316540435463448250695348186441842082942484135796152256976324590834873819340601337013283780076225044354584060619761763371169001745820062166622905339069521457595299519905683377517477579354324021139759741513033478835484556460607708401796318823799261759267450657494551665575749759297763127840938098216290410996957971814056796661902513911333872579185372104119857157708577848610199683141501168672962477839909377224001488063629549934394748351328996519866112363085594958976707741775723471660393903107068073388861268527462464635402044374722864450764882548829535095175199793185576214050091590345382864527651071967804077706055822751422908188049478001997538609118000664262112209790659759363695297036464748457177232618821415251204925012491878532578161742398273721235257210200658276856499581199945021765477446068189483807988163622069687378117940320731769578523244972449919759077446088363774873693783892140038350972283300098721705624412351900376619038823345332866943174228818285341680230367429716394873688164973596672238123069834785738848235549576272858369318039790213382167032563859799990307272116924386780894311757545645682555809177933361162447959862881582598243614375255164269403987970821226431800497602441604772310702895325008057708574249064751000627541840409260028239781013923343877758840409159380296916450796979064126390504309889186320298275207557039054321487309715903940122666913367620727680898440669554687370767058094293758779613013020261912321258646099860582057676914385472348260194548605313828831780307966894539073622444787298739104348582188005788864722225961334958119897703125307331643166979937086603406039553828668325853825558000697120570476237776104303610711351541902463323779251369431189677640664950338518459698474466529802265397212827413806164211908537917090976796452914489271993815966611445297659670311766987187748782919504875099638068531409015895932624256965279009695494365235355209747881337456331443956717578611829980998727958961326950298399443782858648224676252791444327666648076371818825722461537253927853113842635734261831699481313645385479285873467599389456977965438784700518321687468300034520040715457232261196256238552625768920191377304609111293370131846924457055728984937340704828119029381694995403705105391761710905756690492969811894484715562074891807896107684311496726845987565233000337036856096927753135383224392361069903483464916480329475942411261094241123376984417480196795344981430579821302869390095874292557648651184535012503160517032556483203499502175464070006995956036373921583506691636117306161649079267475595507113078287112588104312239337473865824530453630620286455061558275652520175065899439506929195555198462074244105472461245827478411295312051667970685874696904508250499827649080727055418966889410946766412103067923334407342902585047881308147080082213794287747239532795792578618958300332497923444873058713092659668384468102370744945084316638077471114858861019992154868132726283878679573680627554158569614262493671341193808129493293349674570211619066178652229334987208129471436483708452368091210478705265698378670863203860098178894957597342832293843149317112479259347488268981450957098168970468081552594963812793007053018277821230314863192314075780436146623260358103883826870381050679317329260246974682942789773287795829292108481355163293140318693810121378853261001801060985284473193108107033628572980079716422045677439974112323135647899673235894129547731857215034105903701796033281885151415264608748564804189496088172413335644808589090552586069181963900577623273687142630889574363003558640134068090601144279331517776244585797626516691948504047902292310639187854592769166940777996476659073255408223027321941997468495621308500712733441822909783166883579783722258583951365561511900793633271561815221150921284205382026843831346678908106660383253389068074635659374884575754588329559765126861688207064428881534545107599577090802329122272955878779406034137897587956512513916101432802910764937562294403502571698163454497047062016959238437407937830539514413953985904182714805088049219869894411837617341729512134237161325179081202946830294446118063267489277999764149279580373391305693055078054027183102866468263601492603600164331620059925058969362510401198845641109774371815370668868206230030917495736511012928953737549156070542646974757817793549424716750640465099186549765258351403929917046578267097017434086761810202003940782581034849505064894595295541001189405561805913258731840922934606414387147160375809572574842567332714730492788766073299371601752984073199192578192172878739922621393112352852860932432298643756375914962694530468975651845381911739979879974259001250900619096685908211401587507194445213388205660853994224103486581905335022244511160186566242935217561532784455008489839171431496685894590721513419533202474745048594861137644448209369778065842082303077021447972789912547057080024291627712740564679301773784091235773349793815264548273426864851960346344672440000768910554699039015979329953993633737095347263218257555719315376590424208473800120321502770585916139607195253858246887600510115644076481064740837924202871484973894008938388160880424070685664136029364487668860644159553950447742466541953450070381428616831934139646384347803271773482431008979650704569555004761797753648102030901046417326882484464340873150729707979866316016402496240732512044023476740976229775629566475255079200844339279974210895331232803927387271552217096039629619599173531827577185418763007852446533113592543894311680765430245625368759097071589479804770553350742228448328417291109923298832824829224863629683585385462493976935393425146176823945224017394950951451838934293537932985012562540231392568764570122928838767744799370130974843767300793028543448119812318082920035048581100183034594967193265776947075679545502493009629039412166266272313495736651031849619453451336909216268759945718926594166480005222725380237604810178888405874552117090640646467364577620437126562685261979948833801129038287317212159609485443163935304722906405701719341133019525568923769219584839752439645040450988275084894877150807459912587013634437113468909238313961854549193390298295096844940117189539920564023548449336062269073049047605589136963014342635896707210295537436017324678683831985372156054900010520237288060533362621564099733063571549269805833066633645372918341198626726726086306586270535472116130056998605894798505474157267332415302586091839984508983732816778648815995911810720081319345916727231022347053596482839194714807972005343113873753247879186347541192210394701894123272189691478574454334581814891664458531332210218858942146116067189409728929385128754345308390750530444314257110268311653485429187725331616055049384604147146645613319971825325407788736462541749405559796279390674735757495724811680725362533044913910714264664630920793830522328834551997665418540439533687033085051682843365533584910000629924859978699266258883514375105335090531240885842280624574247318224393025311536745288836469698139754121138288500745889413521772026613387691293839390185825542835614762699969236604441160271330370104021895362085922550820613774887574708284319117471896981191230956490959047858696449633386528451574793488150271450573857171954576384547940474092817968933105975443307815878819225732238028758761702045906664137454147548882394057007421507999119354297820129672273641728157110097057445015615094672267116880321177414160960516748748344228491277899422337703318913977321560994324757115544982731673713283844482572951630649089403167245763128292480677617293611689347838974592630960658383418612200136702441227484426556551257351611078278709037743213571835082254302976466158168582839934923274317299256692611455892803008883068675417491479121414834786775458051255611173722882731542712504347413133301509713691020472314480134302429390316988694457838281026768745157930082020078224601234405620559972829636604227346846269326156630775605425151884282394253104755310206308625498555450590213110782474291722349489045035028689647854469950456437472925819479468244347910660647620650084675915303263492009274501539613068496397782881196080364628807334534309381509591625353833867309554683323816327088258222090811563969715267723612088910829533955540041611666784853468506330982540858312998065241377471706088256175714230933691160057711980605065755514409696339862826939658343984207821385220200854740313705854408388869028422749888880308706814208256757761552115379495531197188006864654641969048293213676687062064992319862407670343495962779759196737454003416626219156534197439517500982770329425785285052433231680534867807911673468808803313744489517206393956027179073254265675762656926939278230118275993109186437099575788782766457472158721732141122375253229040467657459485217779223472141636804155183099260057666558928104640837227858419120772764464447942556386070591622852337207932284967460255902582408819993503646394018860457213154592032083014996488460123746197403947784611741041742469367242534486160249460624937579338171614305167861412360653280463090996642011993695646884908115168662647908143660775962649734907303188230546339412399224783886696121035931304275317883075351053304064508142856022951193374665395709987468715782022047624127061569479384871716852275790267791978520722447657099288607893588418915034704944814503242448164732207787003049918003612885288643707577038977803564261659219051461165627967325010872384985619281186909417669302365022063499337410905275674942434757768140131867358146907207675122655136335297159940020722964234574099397070910741717939600316268396446568142539618303708355598085851165598706911883463280989734830234366377711319183853957072758642413634945747375540553128067639310457216331642967040237748345130901351914833667766590989374659158708547937935233648266930400444530347624021266412214181165197104561149924769825993904491713340725665318475082201884974494710287656641930823208061211212151394499576735278255484152292829023258559900228940097723119150498878891669457160040856771368472722619200596820930468751849223290699058614394827665335728317854498162839859392552111758550516508767847139436001163201136457757355393038331433365273745981559470910597764203982111367338703870046829620999587596783081994956714735875369324905140290843891995928983636650138882866149181475206979762709131197894318876149883478294726803959449337690463238958595020978231414422052093436448267823751031227017320916944784850426360463772253156471058550427909113437380604209354826135247132340727289329199095075840827614818480442588458261765178853089801463966313656179911936544895203411658039205564178062360476058499384754150638848606776201716045048823387299172082403973103978012165691885539551576777493133451456501746872436752094624339116640742459901177794059793798611653524026424655578377346099506253319897683773454289636784614481389378517284429340347547721451652313874855154054888981053177294766164238271992549551031977962627924642250471789058356585130126950360739816427923568751277715636014232734556742545963965383322674532908015015539614366692871445874358738508686479016519295436139526066731634405401950867814936772553460199023479686387994188903876688781997436780747162564880157265012092950020592223496723630964481808769357246192005394013935951809495605546400644815930637397280222423517651997049423070125815167057495301972391437216575656880341668927644300287575302243355292614337997424684722674145970016603672066444968217411170021572926159037883566643961268640424904386350584607269289875292350631153762340935107294561197047943791546548224649519766841564523768345183066891388808532654075201398991570258960413956385818332705006758496461710426850951736960816932731506962793649946536462183349701819947524500340194727530585525222757658369686648465222643402317206048615034127800980436764409550381771423372566400123113024625739557788943589527889393551511394469699921866604952978508576236949493981913607933818300472062937249020095554631294253556314491890220634278395482986993602144263326453657413143197243077423041565155754066973788161592668021674015271100388657165100011807676319999743343131365636513437199611065271479213549339385425723860529570959368218026601795251231955556793790793643655259332973836660230156234808570295425824781161060732442128720004114767686882155372580940464813065672371923518448602235824389821299004602722501941962422756369461541792214475417364927625508643670456803857819187937655262186140067643402957878211714154033914362214546730627458711845460418920116820396110629167782147651795848009162811398716842037562125588802390236139888455023943551392473358695125908257013865774832303274018970199175425978946060441716412685290250561613733337706343204300261972277078061041117156805341881442699208644863435209280198815888818472549224710347399065841058680789749999861073269695270552269486354504353705875056146612281747516095455009538350259791721028616261139006396234188368576789453216956499209241947176750167264662169080006729737937316412911486767974062027024949604572931178347040577885319950567804342580988859004762455327463587397611575415430830167821076348875747942370867660523716112943961629435649449212880161313171614185792633778629687094569203653215580549034199481509564618845451682215518057889206222802934214265843193390058515848819625477862933223628483167395971938658648125219035226209773849448481124695386305079511568396632893510814327237430502147810500444239167912853672988092768823809588303567153320935442660545410339148931089857250257561904544499205514175718681560081113242023374245980956905357727514360815798767985188863517491546716088387699581298827750860498157036844738271488058825146087851853847309241441787457773288359633263477544003695052091445381807626850699098197288010880244133627776106375350100997643575338036737602585423375215115114249052652236651571081000746383300230749780744608334753307789542223172194194440587040312578164207984936843124017015059138701377998254655360538416547034974463904693273030803150124502969234229025165659312351888264185363075183930132972701655403514354892053122129125696755067595904334096269950737779195008452426369100995883920844682668285331997100868824995016126921520800716101179792018047622279321031696554891056495045126793245749285323324986880167462016594166349766300685994462402059225173179962487797454426470236852342139187577843455094082554077275886315454207546590730464691543033793635298834934442371142179836294570557828872601630809951460894488575118979598007124894979761413212198185788769521951092440097225577180979351033023536998928039671261444418849924446701932725800753937399368596899627814647300336804574179710103173392072056113049981085637642398550579559277690149934319481003032225971036738423345265011376300182398927195507158753427855411108531287254135712368729658555455144543942112338146522626496858350634040397587180366941434509626242357786667811303188033582633745880075871467721704682462658330420371749190084614881582205748423710456054614728111527419405098691985684081674561148874913137685956521303327242636269696035231785832876884200459824008140538224136832398620718590952517243047525688214310898556563987372610660115407868360094277716095540156035871217233821699945707932542210597720968569636569318665411739579149249949687156573643078419454594325440880480731397421834204334440381283645377591067722967439060456273215373814809202864334789706704975021454079215737304512982425526224565363051630102925522659238702542856882967262470235171435252749389300038661055034633329333684450385707642797901200273021989068394573312031888362436965578242962022832069222810724098738609950950909276571042375285634399729180846439494294315932864555910773093373723590279125131296857758246058455503478626259325240703203082730171130700302866713809138845653432539507227321499011050623220646496943785806442090127484186872065407553444754484923500561702846737598850732102754734422811106499985999029801988494883024098651637674395247751994004864221646553296623025829120959055764061377416119888869853396217503621888242086278113607124823656834592510871655805605815071041917755122562965926390672994580545235362253725432679818765642055021397588642330101277219081605819017740693768476285629288213825449668240233614034441028733395412260770282989281600013969916020708463855161768352487373738168200843130631891742702445529489126284214155937763314104793864388039563604599096985249267139655164973754899266938748857287327543686384504086664422927568142707464576850014851522186060953054355709888042160158292484649202997617992587839144719797363445946016736705241170393829798268542793829308045306704216643457139641525697649925468116489605273822438499695590167707130984954114220978875358147448247218874385355347294450023014426806956481106139710472388859173761421266252935022951985562135358554657502407871847545145835026899814515112731758871293856699656114330917913585464950019443679107807807433673158690448959079128119451939263103049980384324806403045595189869608541125977324563786679178945676413427477749904934679689394963224313854366819429807033049103628313996406274790864941914776040580736793508595119962076777562904277347550713764501045059380588258985360513772075546409166019013802966786990569272930963127804956147861444967073456772899278359599019386905321971967664320430359147926208139310049171725479975822854654141360015778650753410379478999112932498312530332718799086880109404833349135673486454012382903176883264623557882543780081906936874423222327792395000488385669677149258773201241266128544519834395563565205110991087572699147617096172443026411610857614299669249656131544516127664052160875449307065807066199652061491185018926921838474291990362707283760171849225549554454548856563651082435660185095061468243344010657979331055121364275831349072824646944414894509743217819566109970772345446429397156094541382868895010805194401494357055071179927134329218026028699737623925669789425432519241289478639908251299775348150255839919272756568625584660105118070926753007429378779486832498896845019085873734908180444294805543923790726588580417034574109921678159896448320779613402270351529956364737819678405404912812824825557837540991467865279141814853058099166821273327836948881668511204326516236253900804406144516754453325932195867312389909143678825586217725901754618149645719201495598838757696046740148376975620131435664286123025025258472516435975294277410868500256751473341506421199712471224543763324370932179368367300105260168075610851589293061860237792883357297001266574616592485399549518720074810480659117574888313920898254830641067176093143266703404786219967190755986318707601052665290016868889807059652293815970560650721866682975358278009005893577987114667567032689964704250895418199867792891703776843116602156217157040917803340887199849112067851561629842033118184700545357373545699132831018792093192675343902860931812529383251112857427922404393722770714668010830611652702608774441843231823307619427413349825726203672536856948069474597589453073315968425844569444812339657832181623127309143170996000924465361988069588923527348453892353312631008932792162167240082295041147387432655042500848629559613114425969105928664467885611390266363023368898740434766114069719017714189914595240203613705611966336466908113610066753495529600128001250440036973808453601332789492995101620185968684691019494043520145256727429463210689184710292763742909179595435052947369663150669600907873996080783074045436030254406456061190636959655224303904030761103315607247430711245968567543250768935783784094156773646019287440062879694854113648518124970046397044443217958530773298771454238105378997407642275799701177807357712662976875539336777043815461094887468035844464239985347665755247890339339478278624587369886455399492024116299550119376101958322561516155237357135219782511795897006884377068407210094348267038316808606245441515413723280309997224435704750578961839135545140888965712245774479287064930232371338464562270496127885341693947638808975024343844109554701903641982463851697193877222446342373518597381118042815830904889857917660324268185381209783827916623550155340963382872776268936428360491836565499344907774697493629742000409113113475887185065160668198381597021849415294300593655154722307468254689801429588926567672566919306560507732593865853209186211527667791572988062370861950882861360625605310124629154762983662805038727336157249833427733940433430574692967986996951680758255425560706966304629475438338474119289553410614080238583635450936305981328497425906410638504750840735822058486359025963673613377074418060236248009801904176685959505325079791056511622802596690983847772055955917511545114461377958623593264521370442847072600467466272438061005762465821724355753124795086153873933697900650288154852549132262042268837162516429286465002277814489879051184329477416684040876593413540062013182354660160766628065378619293969234180528220262937712792311453748808718974773335012720774395364182433371802248934188141969903456334602993852865851688997848618923366239949660495932555811302306342097132073022226020531914445909280624924783965143591348058743148529697734685881394810114429644562969590945054321725019115518200410190026291704790310776999805855518276217562760200187886365683016781352081922774919930673778354167100393745473536489786579340531890569324853160407291655713770556758044034502391144932801380817683770096226580498321295986406151953974756592920841976754991383996300541086361736065498583200168563001984875566058138914939685794845312858683429545858977282756859377753208076195559989013693895424134298164416539846634803117166081914172276464691768255358648468955442526931394125312788923588516881735959027801183243194803474913252765049705819933899777972045938612777527706238061371987473948542786232105471177736544906724781814727831733407453107135546590018503871016442887578783678927780913112859166688546148686466876470961432612308443711584100441292065414009459162947419631002058039227192351846508105219938237151584680309352181222945093232907836953896695970383669898859780346120699773641137076091158130005333247009068695511423947782548636659420669789214942498174652754750911764026312801470586224229190058439067033010901963272477800471769813454922571545212687941175145235436195488905910150613402296634692707595505667186245528744990483992033795301692893287383074424651999219005722693400525279725537272901511319522008819802464165329038344950043518126969808293768533305711694600595180351887112583422103471376803899167628728439116997129026241404698219450131971482638383309364291218119836196500679910264775710899290674346394671116340340649147852134417825870165659596106381513193103068894478741367961456456533343402556014656696362487803686924171317504447506010878635898261233993958646991935606335696726867487752210570960259374649119774535360312161233022977988236578189520371670757080177476641020028827158927525953350424631865765342318522729046136700129215131472448516291269964574748668672746720805799256642707190022076658323019891669505778912288152943591396199331153116329146972559248568373146742214273625685588759198018447788730582947352631921102213015196519899321201622829098686477264392283195503392813562775639935240263816664213215599731488602157853559294300223398610075275574958890759809044011000490560122176315550341798582496114448110054681806011849499175526972900303301287744882068653592674210843163401188705661160579960856785600090321344614020396457763043027198750929080868962516817515062908643403227867643104433163499598972053172828742954708149425836298923410349050932423481879799067325823725476201040412584184163339167735575452937263923483140589179946438928014361992306503726511628783760577282136480581587629764416501370951333771587727606038376201067272493038449424419258457120413084041942692992167286263712832819542525979113568136344503762049175620406946758868251999677354562797086078268034918077102286632573754989035409582017668950649254100747622196099092197991645414553103014911180109039910050899076017475340325350502797578106402822590270342107702951738345879342165483081109199122135324362927592450550307965197895224068443790617069070571849866270018769964963219196953709652455743525736337774768982908729759914335398590916989655785667668815380403916041849118085439626274732608372596819105524842027155256963153520476180762273623812573887172339638808121046972934166728632000025782018401773344747153931654129302320826543960714489464718753429763654216643987574687504927979474265875505528555910083221047465267308321621574440294846964127690184279822841967137159193243866238762846788317647863283241469630975953050923449966109771235122296970544931903128872133733950443468558324871106051031262489051077849155889275930444047922685027911642821862017535393701272666864372205388952390307287055881314974375154706019672349083442465571582086776181673594695788051441186701227087982762888917910428702485236940207860522748207644134098304876346974040848180904490167986543617822060546358994235052325263854596764420404162103981262152204822315142816708425418608299208886330290705339088629481291493617409839036233343463564147345362026511283725893273598291544207967699444482878786460932164483737292816137941493801073501097030730426997768783570985594434508927331704376586960436237850962076301610021323658576508102214746116738741970359846836944558424681781677704602687488460811325863269213455980611164048539697165323516884188530485145223810612065250694083778840532055138576075777078314810961934903001895996784936874146473303390888886665553812677027066294145436340844533413130184361668449045052640682765031320264676673417322511302451552347127096876440430259258976233863823024381702873918231237347671722308543773455527971420462934240309317318311807446575640634955842767884108205325292597583308783323841702582464975440720924847114726759470620854919738248479727401758942661423050375144984878113886590085013313784021891254729271401021723425328390592266101423812774751637222856970397419959367713615567567944924787077638719913419378049641861356498446274531116228543200120903851732713013643281989781843979638427433746030193286268769338522759272223373819126524970011766516862726337015197398440369641537162920534776263448896744056878614020616267568670932357442431888562800914830165276868588901878343119483937244325175725234975042082059983014249252027349141411892501111995364575736990839868318316840793967470277290667262198845054439846207837477488985380811940890469538998287226507262093143878826491410542639661486931367090732484173904549558335556612897777383341527047656623705435009220519591955959879365583913535979078018311905002423170665098846215334977752903790719873835852802441275908137789823183036698834178317182415978558809664456301026707489982177035543155964620447424299086500506806354741987277034794713107095162765382566191694313079446296897723740983571896858465974030971866228453929728044994338907586683658448494374145619214102437878085163611662823662026661324006746251458350164975318663552551860176695387581567974459629113991644335571695705148311317086604786454263826623022154423640048162265576821102176432900277266234942581019864843243121927636253753999100179572659858638401088641765182486842387706309592037375839065829685998984457365303190015994487741046381659567186773061795490508371425590712591446178194993699465176175151560566903606398057742334565114580017853374459687296816639689256608453598404971556423573766574454231276359767115834939016112759966624422192612667483004567347034592298387379411582707307746987912111171942587248097532759296988270142471004325327691443253808427129647948457977388887504692159948327020598365115683976800771533070699166498326739633205830175516784539916914574892980965120809644020669741525034045258300677076119168746960294055460476252471184314399837926192256014131369825570958262526672795342512902960555648111083584360239845439820372339895395441994414483503212871094498154175222471473677242724008753859188131308943862575249413134426137292981476799616385705552632976615365503857820437700335699699120832118865912238285767094941001028087100404376381307895459499460649562802738009348347325563974211859427617436190779830079156487345770878829718839103265620074933459084156888397089852092810670300304661788516485526851955447162521619754433333786749931913464870929902915814847874498018073799011058886076984922912106914730248202463226237099702735465385675152054376469239131835633756813968877436608747079596171414006053575386010558449626235918952408501827089801542353330462788253157209333735186543959735820552966571203423271888716499877578542235479288801695076600687800041583990132760902743257770410797783169851952719915107074684247269893230734269001400322163469267844617282016453953234171878007604655869324188704552906902717799533668000990124301112419578222774194526972963585746917497256443558914987452530606414004354421141325175367618893811913678523123822602968242979994422897070545430205792440239036013719039391003736160941368994430489137195986439670559435003031929933997778530066267544400617244899624840608624352425289916670466065424306590642877854399094926789255982434175105135817779353581984611122580565205019299194081169503431593199815632261596315111068796147987874851860730639713900517044759895422979597656916264359898623013532593653760742934309271586903784742202477844777515559167381528181857948166874576345007731770905754375239131101883073020615591189873889433759289899572657020387941228985151646457710702034508639417456257106347220339231804346546731098542933520007188005821693179019917713073145338146875450523126237085597773827609509655424088582334393388503620782678143855305572876238024191668465080584960510903779145838322259183542911775124331611761385803680416495088522866601576123612953049170019699759101061519936521259598857325785506697779686534031728535489530964338514510598817590552890860404349184809975509024161743807013986269914011642532895764553862892899517351121737122880700225872765713454492255184180104480604062842613192435072022764182157328295502829077527836494959615668667091311943120473585566192277275456199457005142983223685116147200078673975301971172023522101060612385656177014884297997248983779417128186587681051153398842413390884446393263948323994469875364582235330905217217199244193173715894726310309257279655101737995553622074441278290761760480217512003726002651968531224003282831727242072673153983333645695242205150644182528560114371681841433418033518297853156178679673024474921737040400116464926667374777872530599031599574249515348479020026235052452439152206641125745988822738142916788277458952230795670404276661673969300633994978878091451357983842386630778659361383287806135138032607671541139918012742247603612115953889845815128385526477108010091078074453361095034608987723059529764284391880377883355854667408479794643216589678654500581179602417434664470864401519171277172641586624035447827037411051472334884731986149986655291458171793229260809798010881061946834273136192851849352303233415747371512245440361809664674832677916822380930421466372572564285581640305072565933763668627063071382472736058197339783920341441570908226566711857112788634559645730046329060787270447356510531077133786710159660782598318365533055437383455320657612639893097856357966208421753202924483946313033659168778498197964638021534022621247649575783575037943165403671699368071884433319083668907277790461644909585785080889415265448818183847215795708813007843914774349494414634762235484312165219918987106150227532714035935410172668047699712044096884445390230719878051786931920675724240519273589874586163125265875163331655066502648225222602206200557886295170875324687132557660356399483993397885369785191363124997018130779375039683754951205807464950528332877132387182501192318969508176243979436266056957284280109467986530473977612916529222879841789570604909631019235457373989251562080060814712430406170257814329774998828454799619339813963339313459734855203535662262771721798024802784307296698099781401774605906019477038160620878788191189156944039723627274839545574533582527339834683409681920662827513161310392181228462791999424323586325185624768796848739957503554058339686070518825059288883285404427474751460626372115631699520209964204642726384905075059634319236289696200200329375298147100997610284033748179399977080520571079457882492679679469895710760594343406992162812907404051625644032623744847155734314150169228594105889508216623673893111748032901439230291888860280578754163326176424727370539554099124134440191142030599767501365069365735341397197699796774524279362827585905195712974158106675268698579296344572619261991477764246808934099114344495400013900190336474087636746308087929941532057499059807920730704135049682413382454067845318320152399580198555773077132552926285370055657257404968660840668470428389194148491790451137054233738275099037621462452918017867926157408855580853489708963940908084826773331331447440597698064372091415578812851599562871301683056564139051145046809195058715223824877672522679238959461771737499668896914676993710187930166147039765754550723420473734792420867766537083498793566848611008420113642743910426880840320293039883616184741640180650556350624815197931591511347105523496513213504801404728523823698680861757942689943334564547421326324110790155718240936581085385635991198556203755194404523847673457578908517643984362990756011214204233757305782305042204175782210918682309688569800120536861496438610876460561957122269818349798256174646862923601731026193927995144833485895431795562353220591179970525205008415509376276837866226571260848409321937907520207484397986740662942000624469635564475126243122189934108852608461001321581038256531325511857164862072843011920761194007446589847396915434930135459217225770222899205355589486670593017720525630739639289985883689637827139664417001166274781531096462097800892155799301219281713080969612085347265411347904861302387798037048332788173045801210258156788228231665063209596723112422461758214222960522962143375706577118169616256538252613571344081743911241291272905008184100960275077183535790237621205005892242540987326148462134254285842745571457079617619177522842171721899806478570606835274961294934916920175136681246412976435382850700371005298041900802568668216869674095577040348257612799091948511275494912979026394865498417163019823655529884569605744133111616836909750458017588747461955802344132157816229691828675320522214701434424595174393786852940021207444525191766364598070880686557503645298278185001487518925178365461725763210966591041734970048123216826552263939563413635186278611724609094895656161638756136625691860995980127951877194822221973145099692440486014114794169728184949144119273709967046376462642270454711544854265800261092237553078611821360674061876502697025114821864073933858477713556344045986266590165546567270317248219820269480536865711105665096713800346495821389317097339546325431642331537471781563598442989079386765355801982140445713147002353075060624456816115550228058414491712009646364345932339856267925299625263669411876683394302014285488144482757386137627150229738917229371696592045641382660918479246585620194588476406303229185774527321321988760067323630582958602451935424945926883379272410003804020833096058794674177613973393278271229739621289209556465008075147504031874903766202174454975388040010896490496205055494302854195280532158680323489672239578598977418407664422959944555531621612206276658890692763265154132101566129592679205876284371693677303395361610707385801605879672954818362891193415149544058355729436463385862252728524905896701288611341500927905603795541983360524372099207339657112577749966291339765754647731154598547697425562248484504479939858320513477053832274927524591746374650647920274275458796431742900792645748992410142061127585558068791953554710813359971370997723549179010257913566123739994165484209556080868821678033049932279660118751991180453236882005586164882662238052642788046047410422018550282746382650369444736795767034397863295283056412638204100733746182281201466388338088407076888070965282813272199413580822837774229648298992184943570141452664313204044521988415720281916526199283418878818669169057149795389458762265700881674402371897393110436599370120041425096506169913180472086346765907233684234538630103753800843785459697365138729415455939176078457277983918259009565267855775424526995040511993433075126012880976225459474641185383188707721936717785462742680897800018106673820288265018791233481389756936226941220199166933459927198986160226890235120532244219881708714859891960310974976438546809947331242407949769066039201972699772605666923245366488141653147130606413417255749704315637398593680447272862166613570058776433531851300034847110175258941390116436222741685399794480386929185134086991771408978501120863459228235602156789719085189645433745257994454995189434431336293408086231384111589633586066553251415761882164975832845463426790381917679586624246949661479222382991243760586091493233968652998869135804918726273451071572723059297006625507690796283816230818102288265040984447188644480205964380954574695548813953214915641184592713150824232154329893401285655980639689203403894498898894431978286179293626616348896430815074646164642711668486041771591165555425057579740269973200069198506881369290723397184133265550836978836044973034367572930953906885777534426691407474463230011984081716946351595835509045098991701407442351495269483593302366173571203684555578648426897392266925643585134750434861177658729240705491199979090051745235710186178981299979331219827138738052938304107723264631203053889244040176806461729418766489347798326270496473190890169914038706895099839185718728793311292682149221803766601584928856243361039680109885753406563554538787985177679736031254900237904645171384684194431492877249979418106061923304768047924355137259517860490676320125994663369176285430249234572191626374419445873823903863884123253642014077042973742609133999605968712237667852939487455379215714428226487454039617733440424960829590859431692005544508508328211527260388555976706542676162435178042408923093839117691218374105596330056912423261277996181712461581647454178241207915574068080898275201155201214869833384764379071918097101119557539380020190244972543975440415829408696827555097218211183776620378514164326790479647491681133801110468137728701961639551442387000127731310425605314849036279238401646391174041905380100002604316342779805311356511381778104679255250903384618490894109285302752441208773500626291701696778564981487532412442691937475206176718919955987220707650647883641543230266700753582327114622011495256950638845107654420943313152393939069415134637434156188996750163390200477172105908315801060301335901043783093792799670569273078966366190605810114620430925613871735533440285129087077396687413139098652178462249307023628555993043733379878688279625305261960313083478103601905848993420516685270392582470763757556412847892521483925024717591500394763710025858596075028536187552302638553617865992814756222783954021024869469109963907784981298945978545490841263997332162436960271124706208091722648563631872288141285752536179616385912031710105764723625570529310472727419629375280952344432559311981155990767503552433410661783118735292011327879808959087351899235820990016514958231468034315141799466644363905783001710870462984150081202893513305207471570002174192848553260896772261401666432271341382384018394880811833389619128837217393196644196070455560422891572972442816109167647673833822698138641893965007625619150918297205700297196650670789431248956029998070999637916158448704851095561306472273533743613853047211256060737586180862538955699259883436945012249209009836483802337742872396047806787263346340225970454534743060420288647501448960140332562995689737415022432741714688908990091356448561234841179749179174499335298263416080954365600677984667337012841145980975362468909448472390679088905240375550847373393031063243381984139768462250449151868878844694071980034563997399125999383121808186633454753081749941896719736061919166713974985799021797298060903649359672150788834006968457009709573625791101587226743692765863015871247814180085680134021818298231744035367860733742301837404150702492757800932596345232434457909134904869963833297701897770199596551528124585867850468346814397751093504767857280926213765119629481234586868489190828470015235611039223214525537284692363427478397611397663977666061194645210463930487072322931921228608266630051516983492471437741408760815207040173777558200407723707308072907363057585635034348371334591950985740882560674340159768765973716859535617005523611945283464467805776151524680838879021976277081293222459266017474804291540786215655968417858026382398162580526756517977609747086827588940240385507386178132799590823084636284935097441103832301098866094889578886105779841794182642713443363212265200240295686477488880622596786070550620835858069078286043719441924837358855318660011967163406185298360286092794558959091295171187949315693838721066382769766634435490236045103761866907818443677521189300434007400072268560928052848766215301458415452989273580005228377196192619522050547076675533408741305428369557496403007449154482242358387045314051618092512977516991306003961513810364427135695166919466235420037074366573056592410637321338925105162444399372640094335449279755874702289553499859151714956710755439794260340601064239489716771999504216952865626603957559555793796790540396360822953253501887379689789201020287538450325300568552844459625059659187485474078010612816020180552949614929962145066563182080447916276089324014903311086806121127556415021522518896133229860662392872557098732373129198168619533894220443569582593905327156308356879287464896815339630942460920357194666853786994351788006671702920900871071689857200001725176522150532105597458680093533580184582169877213688615355444991762366296694166849002492135431694669535938356974913323880854377484047039585205273241850129430056764098114443045776328346042313313927086735445838670206758289270664926024101022338090415785283704823995171684904170234180680077588791460332741711219726874019436695432975640548847022794621768916489288737017235869436493357340644800979295049541161341314721283936569153928382336738436165819345239164527057837951850657640485485503066050198839306605647699269969971391471444367957500444625142755097554434515069308503244308340223776476595766260474368041068336487966208983689911350064654754122442138795774999049500382490251103258936693940779394212805783675412321071410527807576048015122716631674021609083088827060144251023969674866077921437079045795103915295562862087736508386734775032124148762081054570462188799568129325202744664973067503162550703077955439421248922039227737688794745401306394207755546095005987681648992664302953938760884188619426978457981844182486930175914018991622782059492624670891138138584187457845161708746564707475595447674011160113087441149648174034132561931650900159672807219875656475309044268617927938591105587192808994227606058273573817002524772248466768654441162651036817996633785258779966637365933742431571874381372951874032750592655039676390989024195114865561656255642212835812085175581863135885488541733593478965901739027897072770124292192864064791169163342333870334694449679964214872932535087263494350863377839357478804042091351337889901047664534224031227503478541145577038209878742097683301589204053193397227585564874837965358871613110295920656600763930106724652317317482127290745620444237227359517594413960403456289254119342612939765888539900226686624835342506439395813280800123002268914361071751717304175554204105065251207840659839527622094330379502403114577357974756089022788757972248949980844578084179914962561687959698612745580716555374170916342264219323747553633685989211474590670189994048738594223064805667350006117841738305849477080701493991831118194952763006586102629153106690383622586745551975787210547971567643261941065796387966717183112174302517150060011001099640031447768816213775970470258334328508187893190497731827406777138808880270271969774325798927389454615534147142844256928923007229053113026793608937601446060295316436713679246400106526944790414944087274973498981072831711388454164307406085501177775557391455611281592378865514693115603891029982591942498386742504150702045707443083414487803690955636994212746813350692192307140068351677483137253392759072313825861344447727080558974232892251900254130366432913727199653597062788991803974820895850434872128051565855725368633511328084733841043756564205289685086733420953897728777644813946970363630014390146357439580396526841437987547483181513697331622802458298390566059040652427838409522714802721078978841649586974493037642253362579519037212161221758598814043797922359704680832263430677861417516694687658177421853308914171101564756090988411063337258866338219703873404745550116579930811009733256453597751928278681414637547279998220264907538088222352226182654196824462755364700042712321998848232885599995402502910416088354455417212100525719463150298222320903267222181855847140116825977250856991421280821446598684968884920900681031788232393547175102223826003034727404085737456948522695916720720477465422148780931544528633669834866155400874680354880630265423510795604824264795793452182449854298276608518679708661049208224837446211596172579274060355828690808960225752732027728327053617128003083555952145420687302176960978658105521865089046912256464757170815870677656779286354075991214089848967694328390678017142268595991039052767434457469098347984188408299755134939085346912760390580274516528296601670412393794359140041612411720447754276686395425882912428848924292872932709834274782520448238768844466169608925075070666959888727730637196897966294535287151006507977917276264906917218195861262193150991019540310703340181544326049394379926672065205260010926602872712855000169343627628349825030526263142426648471583730369936513545273160266071735812458717790882449637124599688652299807786250738635748609865602566219142676528139485414499906876431441556302093998632909469945208405299443590612336001891898086451783802322403700600726919071968630146353278909270284336657234354140600256846755626784794853972666068896061194789754153083267633274422256256906205364769391231514205212103899103443709143363379232983852372797310786027031515092396479719551951689165024378178210937386310846452505566255559805334874979062677307760562229290302350577371133832334736812837418164636584498781760727606567533159405005067670418526827559151098766876924674547988069340277927092369669007462688632013807118532265331220833473910843469170119877356627477294480946448710811912017834440458157882203811646226587802271832873863940479020985607295639979359447443067438320726190722380864658865938644147629510918713277777680237343476415521713601856295515454066213944488793101021281039071974599829389886516317518100264044385291579633238726765632240711916864068058109028374858528196952873575006510850697329693358988767756342486485911773723224284058367282102553568825307830471533365493650264112232970120249562519457565588852015686334874879138635203701153811319770917485129644632259766685720211983025528571960129261381501026732805655123799974388251005909171285011034298170361786379277079801900273657417867166942897142040800615644176692143359308215158916308428702198078750828298208520893601875487873431731894620598860870988299621466347269959897290547610427794792434497860642337111921246399677475532083246090783314898123535632998063765280140794121417475677081430242464122600766910314327423321474288860543654607643574654055440663822190085571661464663961929023377822512518568753608550218688181337232602681411120701647778321382170002356153414373467891617332801867202847422808425601512171737801903066558725268672553749694669073616695599618318145853914872298622925117227230627223152316362592262053647605846963615446129498203766941061729397686235292216979081144370798544180128862702258831993336200698304181692568387436966712498573314544838825576439630312958864465772315372994088550056995749832085537353709259562427326595056555291225709765432967530520538651105947746469831888694969184605967568251604659176009437068005229973877540767420870505277610451925420505081408090194177733241973080799151038143298725514682798859073419228275974672614832990969352362820012528988573651242313166281174647370696755369017861999402766447016463981893837088410477951516197806597047697772841496500507637509734796935111688598460181013088240810383877466086272440017183651214390761621903970315658558622850394536935708846003109270115186503507261079542444456185726017259486009124086008557034908872395794364572737358899495678444818274874708048252937098760684753454835400568829044295383208622883765717237497352887455996971244582138684164714371808692600957186840821405994553865613176709707503748045953147920105013071224631233840747329428851078405449908347081211374608798903985957750353993966793198449781715790546988816623847351184249175881474095157218497995247259741019831370523352445639042647737046155220336334013013075986491587980645020118649982851190524966896723797253770250212131053279467047012596227630768655402699924901450435353278299487297842505134336882368985450618541229534875851894547963434015836445065892059392612508828688863324635152830524735219591104521081923663842181179957655929013492686456590974629173188554983784673070944288272792989415538104958329561128171345698127150958096492738282360242601460494909754133630909769538723274609598569268817975870025361631349273624373325993279168613543600769976324037438684782994153388944004283947983742226406703417484635863326695509099553912452755252819372449127335139178945820958793542214200879512946697982184764139306696143995260232687434003688049545093989504892228368691384935873834020114657727635239118302529878596422425757350330853601061695815298095003392477432855251870747070255546525273591079938754154964549874908173360061561826488110498578479097409543256983426532019555899067327032993318169801820887436023742760963879072048167345031251402137241251035110381008747221810004918911877893645382632414272550667171879578520139471673768258737555657037011991159584881293981389419727014327169480719009874243352435632713779213377425710922055543546301690512988468474673695851985221748989314337077249562072379115887739117547545407862248392478880286947998737284872808895505775002164910970583106282790444115071407388857826224720566508440724223036458931462338799775490092973088107467909779805196692688399259357176639043082240840202277617963100924983258301144445017645614290269875532682123164663706743672792967084165311122545247133493961817649338858136054923999471408669968278889621408048383963641131495650692884078379636213387298972166878539600644076024010571683816667253452171428992962154401836752246546415165151822836223980745002316674159748968391534450295123956581315093033680669653266475783491362776922943066623683732669093352474428748446901213254451193249246373076679487456671525977605610822656330237095740673857800175239372449463372296099206943569310580695883146113633466223527875022149584497736566811683904150427915449965479493266490155510635643100404759762556977407210407905945711028562022779403932033755040843837893897375436030473125122521225914314568028714773333972767702296485474912085277471748945901497837235975653588156151006341704011673379023841483365904269662352338914361149519593977096254655623571321892330521852829043782478391961487480069068015115431222472559933101506625906530364391909599715555557296442772262502203480849596417576542027797477174787633704087829095956283141876615239194620869890759167921262995831418376242680254828051339494872428204348002721029084697798741501204654778691213643163917478563699431333646896550615639644237896349546860573239529521084895074808456383944601801387262523988301456822867873970035524789455043774429687966613759127287447895292745229214856906388664082922661181232278059061626382235334014282145659061233006048828542279098972733282822552897174202183721003503583292217850474081906621120607052217326116397741992001357714019914397556546593510833143622243887466353733174022454775431158237399494062522201294355924595798734681684254412234156258603810197602303897520271934043118779611768928454690600841169447956866282297811449033257724698131789143407318139299820369359451002639615716111804517906117679530687830941500175598748363667189624612523784506102625350325376976314283089616199659224830064057697523067358474416911656913900004642698011673595117198358599753377282229623067080594468205041938728211559080236959094384948875277611745046076700569430258238248862129132032156192878053557912217873935719708223915626262784226612115692032849431068702073308893569066707007207639617830397584746417738240614296615627176340301244543628365090719204575425689787329720659733554597348491775773544145882139593917727191464016194799287118936847311229448655441353702779893252353726789455143141878031988524791722966438080538697900048808006725504649235862464823227655073621460580403094388242877326409233566196280127731343893070424835682007116576934918238880576183261553766896840881476414759486341355981262642163529550962151564695436492762003734636319730614199216081625240089526879636747014272978775510831309954843635666539123863759673527333853596574929015076972637760413759245063314377188147682503744192539055733322827354272266628478951960247991439909329190268983940705264451219487955123725450598914042534372588776366271107757853003159011847029751929221202574252115133182147654252745705413821880576128495587850816956531174797123205393510186855385965150057099609219663699501248106640905050540515010184543162393661444596800548455689059853444909195233919008942052755042159602766705132265736750807294125733590158741300978796360378233969673184946274328244727867731128080208715649318669364004252530013710373024273879787371597343577476793754119188818837099355132330213883017478597831195054505551678842829075407038173495376926860403834412378146749919025388290851557680790163648146570218035418334708858827407735925342283921759637259883993016393264380288124676625815347916528480251616107892552835546053779622756926214731986731544541026257889160452767033748061715114171602279474116569899094497663283579316916042371273202904756162704105102091601504500109632206747091007447084963611288693372142372361547808769790946264464844070724070259415294195756541498458599474682534870916256079261122613506221504774563651364652104892116743728446239925383804108365791446766917734287385810877014714817752765990717954684897375170305285555347897854968647197609224266073095396972062177936604707736478827036487869371021212606973115672203834126774102997086514584276359366410597686250194142494608231127664039618262471263475281851093230866007205892211816681435983989471990686882484077292618723125740278370633189854442415120303457063365802559306148331771083451482022631556164932095301061153361249804477233007233588650379670948066621700722342928542688274307030871589610519867489301110602100420342062608372322836007802324059490432474603585654022381363379002397121355181259175462146994091772633605953528776925671166386399736651382312773202825611029531160760381667476501098617157585048229207599524726091351589627269281959037747847039786181935318552734222607045642656132199564193265720089592841307141886493119274214775750028598906221699346377857364095122270280708452014578133029936495634194126678119924422048017935794546549888036773751047211779332388499004014139098894825091417198276405536543723282053113646602853361287402391288021657409852574552824071400185354614303693171344932655069700416869665615437166396926459556522406722953701329736751708423401516502634519011893356016245755729462123179844205111584043409265350016436844753157434402738491943886094197106520069930737518282646021813481661895087375381143518922805673838295704836720244095148951300500228367003522229306871290020901953323783678428783086221392336379851322459631636243540754429989235900793126958648580060867677505848619420925124507613933225848513723751197822287521883347451108888138047273872403158969526906122070229865895989109351647619920596835966048726097105306208134143703995936325761459419669744900370919999120965797860379230422590957038633358402503994671614296510112419729012101197306969320913403024547837670975699324406914681562312039555621507498615672518441100005366299591409985665215650177932227643155950017533660312427605906967089701416100776935110535108797823629759578688172418351463484184203647154705004285695292173125803508339952114962828092047172753268894527987646074957634087797227201199409525716993074281466477445640196068803767379824843588680553242564728378057728362529270614126952822587670092491928226074021675465323863889326822922770222249149993548159828136758051234192567365085858617920332174430169180203739875063023920004679174316152584079061682689198321628497781976403142449429860104657400928472796325351370896899593495455552792082396296818994157795563045484226743998848402024481114361478270555978751235264260950289418434009805249914390874517573809589167355449207366924562794224555891692985910341612419368572937787406333186604955664555510973110447101345497573174478292715868390577369133394436571386182209388967413297088899952151070485625180812089435891369563201284284229622383244442399797546312183186572503165025005156080033202029010873283729883880831867712051772874433901233680780885763638924452431659839404463150008777958828201279639242112745693959930489746050054852735524618606111822878107113114250599942309200957715091649627182054700574387376168180578164899824773345649926953615231843808078769739270845528329423797452680723830602795555787133743027590281540007198572357898406434832037170186784679378151792162234693945800929612507219214733802272903183233631923221771607811256487896050153523246026045411284540696201145397040153116363639606721393168289910086128486756657258782201008223336920100053535310323103228590998713871985913414823179223844032689191189158523803878995014138653001425935252475992540969916568311168186555567257786452440338460960859588544860545454589042982189035625837847227624943238206192878458588809530791049169317518958643120770923501082581501301561675681002940642892073507650410173334509204378466448790696249091441819690798300365131325117253274991321170340509460505331682172387813771795998940534531118082697181820543575923718994394077350478093386789264927840025029269282268509386143130232155107839197071188935395590099760511031293522004449573036204795699516420131759692803353128807601750100814347989673577964066619575999247415365680926830571809604127769090579785180862530936635365230878903334551677989322292835725737889333063376840130125170550820857097853241839745783739140046983745751006865461964224488174134117279719881185670284873061762649329849087362040856076459500224422356167946422999868319924237242379485733032149373996040090023618064670622039080014722160414348545771774394572137209320078741644365347592911304757087842829332773842784777538904445220992643743187655437738119413252600692362682412450838798954677434610828568619125870476655860369965214225047228719328812588011872579540526797052390064095763305124244967509003641338093866255258622308830609544595150962614732102534765048265414841613866580627110423178775797471000023878694211243044334871262603121106381425294401357475090780788744288579042497683886520566862320171059834739338966720226247513948776930616483036251006148050929871023893310982673507040549250042094176603217302721561558256729300815522231338330562226655590172000278816459601339841596409246953437104627864045346448031839704541126693245373806934141463777860462141158176735451931334600863962819365073948525371021643870093222985392933684017511238681137334343738757120226519903462096346318638379981860195787115078163219128364321548566810198222875157253813497096221761389327037572594978106561387149811474073594372829591940024241336130317133036922774517388195595275864704817985541846672221980987466168523063603557367501215952428468253719974677809791491592078416682897475948843399936188349158697705267917240455864789111869395647306461364239376288885026238928462514370445728371102011405202569511936361707403123799685449807455244782706158279160432069586537036956025371034816583904972979630553954179067960610689837564188244230230388104536076652219332519299926230156566529541429117021595184896011335646357847306184839901018664347960428193134141901991461420776557246839730082435364023971865616271819169239044798667981601713406554859570708029505411021261864368938294540974196033517529306355662205555731526545606593468649351695088888536847585861913736347136390522231334970071391397896069173879795376605318603605345434494148240023989417855115299508275790137561387128955122851563541169452199020602096319011209873841822176925675569427807201132114037946652546858868223872305422225907840081276368270045077718272944981900289596804526279897938183480221452425762511912349003798582690218076702289668715179808028218142436243828615744490842042995395146937558955685113202057889992632653907483085567465173633669464156470871760730449117365492816222073723529192714016533377903052554803805080773991166781350906228147577849015680839628043560737158404599026287328068752937615262949716728250654300024603475926467339802461153189167975346268584032812032365905879645714203252564557319319956503415533767301024730714357080422657684568652142914367549057452540661555058372516814299655938539530639951798472405807385438553275912750616926751205731637889827511375988685834738782048706762933144969655034975677116183926299012239460794962832602275601839625876343313791670177659858470692303600336242159930447421463426200649573184426785031082485953174524092235451707724556564084162666207443434364999156693710722522587203454349499944651523756943883376711421755656559384231379106348911037760932687403583918854869641100531668602536748311827738934174560143288141585136458252354899200764530758914016902206497469476873618453239646986888565910910487932740270056572441791110270934678922479997709095603983680042956625861812303586966340275826287606726953127313425860736064267683650857929085058046429285520854065543825213777489174065670128746630397004567881855804101401762898896480530856956949057322397440808960031868277455540932146759112448692451198099568888449243243831595973722241801124866686176492054962607499183986771723200625652981520014782216726712902469380674418499611718634142735957625798502214459239686046346728491083260133154391297996742024715536426873687333427402930069500114257089261574645732438523505257290382448989963972883395146789898627705311360858277243749042188711218123230684595672716115118906828764993898450864732366385870356940042949551955241163470291522513072617630197172917702976823538247257756726241293275305258310548356198150778654537291824362118468987184116965648145695732636866402345088668505166690551627640861526578746342933367453221939930606100328508640493748232040983509208096215283081961618500333378526368456586021827043672749306180426752374015747561385542180311417682773567050198115009012111799459079564624222020550366008253822487797614547227231591401722465628065396317404530354694887342084384678713382987130644549807114590615798191056074585853895774006226488464171075103363931555499208350101828288265259449944810570721160902458919789240574128810163911910252545006558112693879139151546165700719821953249502219212671565478752283351506653795512366046699133970097189542871962484152482524030322926450124425079051208117373530238276268545361449848436586603113384021102501960916842911730810781048681532656199369933403643482682459411576687817426684756539151070166925571985947294153612975544526286034165273145448202097593091879125273950237434200519190119760633419099532235864003501327742017188019593161027514013558901555566775537361097500819349174640583493061608116183504213312958639812740337894466500431857665555368590885493986796738497554383776160396407691688930564542836125553740964937402029690689608184197315193489491493551540047155534526309692205824650928057077799870500962829202246158890766488874263422959269878801497448167953947214396657780097070186799331655333526752345272184264219291951510635753444374653686414981301708226238888984226704887748764925190863739200918542062054497600450123722749954728063742063854219046952136553413745010463234857132109099795370882770015434794199041254080397425217037888687084693590656477664803435978014183741881641302467600564475748243857134924787231939708923713294034359740467317436261074501670496164420004306394021610448232147792372329215621236669811935275516210733633827393403389208118219924818027810987183922775804365510358547383159440360237138237510531689976507063143111415124378902290129929291700772195200036525337734058263184536010370668033093808835133913916706436029298115410285097960590622431727265512188241955738541047613927369789512603518708539989183605934464842831594119843712863859435047032301636588843343100239622732200384497292114133915309462976309383032088481363819279321937271781535384006802472210890151866953848015462967738201601612907345647961091978516620820365664842007417611685953729148345953396725290841013260015187097605420311464328948250918188414205937148628051555058152544867389260278823675834700813239828305756527864581674153003712083078379340100947276894107827088234893224337438190800481294373864919713721914374572972975878979768609823843798930358047814588822557380544314095481485935337526430558071587324209961021455540477076841114233023355127645678742894286034935142235952804734903480157410928088271788892751140538051730459173019502825191536319537989103588168573917443638368568045033458951499918523038426751357081016395472211175377097426370151825669916616643478016036028900353628378651818668764341251981927263868038219406594144969352402206006619132357171331733317923386244343696910880146259560063744932117432501959008215907168060415954202736786645374537410349231516408513487480357324386555761442904377144459095998613881376290637881964351604047481633219536211437097904604447511478004551858889633427625004973001942393353955032687892141077890075241174448710462259188213459489320438465241545069433213887709896886188553817119420789273026374567396556597176178781072091309600107287460208416288034012051146363306727211059805996221127462541815552968649845094218651902586704623992705245921121064750404914161496109637542141543425359932881569445659897269266370468084672884382071738742248389040964295853688639366966346465582675388962966863612300744581673978817450048316930067146599179941464271759183817126738457951226611366670182852490237495716878504208717622762950806741648955632255519990893784793028135104083984047369187683154990851356679909166926914616571531826602186172670257230210658217161346270998977670066644010105025058204728105350339002973314430711913647581941556896873657557599827577575598380626743838234025562017856429336038218177188712608859245376771048734127748154021177250535053887501461894063945158040034747066890233479688615790345241822325391979958549525886341982132532778061418596620213686316155074805937740906015793266191333225028276586185374842155312640465101340291366141736260077528081954726262438569850270362683788687356508503501743056654304058444997897684473631898425752188874975653455167174334976752831142291074585337207134783776892811196722379728355977396749001615707092707841329953673205641724371023082542641011114051151032930096929205229202339148500033844453707003508964226612065145045599379452419119883405526554887225117217797780209699201370790441081488865405608873488073667900793058148243387937370646118667826842435193342214449473537932843671228907235675652902868821949404697017100994484198255560573514478802510554438440130903886372351989998862547446657839538372335519332350694173574874613872906523603957625305317730183290850616441723320124576349348508874663080192870242762755228865677126494723232852330173961327714518881777138889729313898973388498533091073504527130610194202964999081791057754410050577682678162874009907196016601384735133384793244678839745880211272717422901787145611819872064702133198595518814861529454072662572158028706883285542823332774489023129118542838818914835392203774924596640238670240152131178799700463930525834540694271285716280625441450498138576885385277536893053472562755726093397913226505570326136105663678799235920627209442114537999979720929360795301399402872142903279902364010146302348135623164638345584928476058300370048167858612880066417314608929134045626906871748836681977948103142010537537880686449476103425359080708068211738061088377357356054881887081358602650441079328405355731662212134674955137908147357662563468590129085576351366935911015866797768942166581457561889397660883890995018135662131729946824475527267668187952673480371554010836548416864338576115489275813569183967004897787937741357241891199873054359976407537329583470163007923288863082862000930677993146049484916742973556552886194238657740682670303792477345509952010152923361853582195094863239384738416534584757559599205050564481918932764916483452278302718201798237496982970690076697029743972788523002701004661564787544023959069510125278970160413428903432073062314522201746498482534821367630678633472958646537011085531908323392841856974306263394359546737577516538382174346727198268590859509725774915635945536983427008754050994043601238573221932717406110068999375435270105999921667472175677072022355844867007922758476906112966371880862842079823698662201792450209905712108257245776126548374003395532534855492043049267492363888547647813584233524845870308920700587073918993570970215503418976573824280604069818279612446865108756391823255522018517928549695574611464372199744750976544169898769662744390651885655774590738025825047236674688102693644268360529729657627391560930736061392587150721364273821769319780109512259578983315179969354005457912533237498467648546693096300094441339274661626208219530484405484387277587280419236685041228810632638073560024838253611521791532834957491496008146316553037487614635551450710835798644338322975199243033648463227011818358869191169599199419813935404298818904261598923829936218822051216084501650207634065104259964757192866860690549032956164398783011866636750476030638529344422933792227556068810421483594595117442972669169545949844238405787618823642760759288590750140022352881419833759310980758574183572422476839651405294542457010868521319040981738502258875523888971412161391740999067078902152659199728784279998333289823939849611155251112058378158923391529761599126312560133129835258929973121328048585866398866671738462404298356244798428149427571959607235577170292182631497816848789241408143309606676648410874499742206581407545333686311949961467868099009164500713743675208149412682603188047067351639522722071317075363533313138474952581119389451419531695979722692720819508534144673510954654131855777803671970508257701002493001837891981314055083794621400554051083123964083610239654622291465104481694556788675757030053766943025733046821876134092356549764162772372579588236630968789824114492584600418920542529468963282191910689838513837182984082081322403536722974601161571175855258152445178280892727998433733118459893940467869154736112799837422803444082926753551067745463674310824075540286622437149349004049061113297791359498012962485060809355528166576124615814650009050597785063942364373738328463040437250220018848228721561780672876341844689177038695867043366227772857871499114128698416056674501872890410605641691896211130620730691617321309348116459604643776622129145064335712665815006565394037851699764898509609733921068114713940728808197138190589204278917962300429403178111267678944319085924474176999408704730014884470221370735618942483288188440685548262469246545295905667736378291225795115910230302472102029067820461111494886048469587117167288346588331840855943295510612380250183152058745439708471111663017964398941641251525840608362922677651282442138137037376170728304632845491145081761270380801474678782105488061459313180792784299464609836629361914323224461768295484688986261321515233831943265960136354926295360463015380393186779799766832967971857609548964786656150933209160800474407489520496960939092640573892240574701892767812254225867468837044356408659674744611165524681839323695381566057044249928931976586452908524544763958111929945556008215052903985848024849595588759585186969960065983412142974395608411002187794404310780470766008364241146261186976655280295965031270948527261933690903947280909577281414596726305028989606701900014791176265442110079951618351489854620143376443485832875972775726366131716543600332542444651374895886517593068856670730563004900362359470684125291072185901757897382901098269690372528757648896073901010120685461922210399960712449014816658187529516374320645277894904205853017104998391931988270844270869233790762060199422214820868089157868466143034354601698996699737670633844477108729965035970785103058300147049944376853536242497014909734355090302450601594999070796544757913344328906543605490459453749218393703470442552966378440399449819709499483704095225509859677649742654889898204501121418430437489220439794008912360202076704778647142876715648159695067902425378568331368869531316423246327687548747152223025656936776965081627353342822818142848631071668142313354449286062489499840048664344471777438870498594189319676495656385508684070584673509511995647678717437641578343900564733791433973077633064433015220419834348654498068603732968558282785181154022444557417177984573129847756740731352332919840247371704188260512210961026877031820609914112341802265350300560263714494489292808498056482297236426007069604311115800759892790612631341333441256269958952310436755007803292230945841040378188331114731215176908683860846573890268593930582860740828970096805230618488804049403876610578671707292262760585379705186513220672239983028992337009020655511628981536256156266101520460849321314553502810493230336226961055644526460052883442320041833266446100542522191008811969983522254192660334191800191278367280833510011701048940064750437919804753038009460218632638031391815053312252680047934671591655624883365599520203518327790188057940170227446577139991692615267926914439020279681643979151925233902547311693019229711295598928400619020192361226553116034690217798435222684055997830945358118843178359959510507941708351385426730369332795849232440673108869188681685524125176474142560411751443240893781841408426521504625595804467700278274984258131155562964513833213083779387439475746515920964984593732384902655231842462103157113496111956640268293650826587805416780028456165056997676916400373063115635355385288671418989983918277999720168004470187637383995871744998899770048259312283625734849020300610339519473237775318065564387720523853274940403918209689691589471790659056607401953678600865720634603211242882619005825456656115152715487682758903288925240213067240317380246863453305338352634752935241960717504050721874914643670821200730961465893076508427136540295369341580249759540338452506202369524406214011209447130734498625711447836598317048840773019169845051926697719091256667580352238350627041651195642391361678031972128066865262732916053833973103857715354371759376058789838014086092721820551024127929157293720874516258585010976811336029299139802921707424602215691294217183408373732523838014909509466168278930785114750196975959395289583611065779520209919777875827487631399025341353765386960630814122105829980293998344698387815443112582221631142617488549285315558877340320486593133473607804540185706782056222624634552045203225011069482037894771764628611486792336139093154024088845631473424835571385557200074538768130790890188279160746446816838851150300078787767397903670369715717191398941273070628354667805751165187779121605770193259557422633387354812638856396989580490542286749035220724822161687446179384348684276192648485308513423843559452501126066325581964406085498537141965399845832336793960542092642597207445849344516007696751589214686826401559748675827827176513791731127776403973693210971323310209810757750989886509558932836638015885606707586685704482548872898507987119620461299126410839329223434311045631166742030121376293822976917296118046805389538629866312341669261593149311961448858097645817526019395430486458605675022431977045045010720012035694728348129436849617982803232089120032367703802657792666542739131313031714513460193959279134821028673893902129412834959491673220536100436355160213998522547936032268327052103403448665458071888540548665104533856301161053440758193321560311613886504254029818508608465661843070528103371678262104652928539416597332027413963839811975186709542714754718575176263977375389554402117571201263064762029712775971167344137825054321331823733379936041516489471264953009283401139552537663651627063427023010462969733379805787511691175805930863000648210067007485224534540225133228107766962941270403491086657764260815870945705678024547992063272406767338741607287385623550241163534245723828474382298897335891124228951261766838497275787722739579268277770462388587798253002504307323010453650437109553255391878754155650594392757843854498880549458150925687311040063609355803346673455419750318755617502401962413786902196868314230144899518202014058123257272447535424039380720307582766107990472847152463185928724722744866691433931584204406814105307538614709921960545765247646982120865136664811486508546187293393595827586902036778283728160681698411206799459040120018855776312729446587912088320349776255928608190487314132536845960030934453164574644238308343477537776732018238688597820136885673126720329403799265246226894831674530900324822950236184121387598014208870357752094915344896541977136693294886840206477468447675800267949906624821318461180793512205583103387259243327971401054920890567086452356473712210231204548980006092387028057384475948010014202218409217723109999131335552794333902713763779492402166775855725995235680055262080184670164092854470390165553607616618761161268527721284403596901479673747770133561361346752123610538738783147930809416897605758457986999872393519422208085060142612508201908512589089986407919736101860938488936531414019919347967005866449455307457940985025128645536449365933357247434936416933637050194104769215864587251952210006363148968829183145185601418881531867191095327575699098332756126584221962273309007544803494279816803276633650073667074208676592271920429932754516081004000184783725080851661742354073054889035862760296944559931272902493626914951033514832837371443504392816593883384212160823694346942820123192910080492472709995102651415063181215008405463021016598171548765902803821047353168153949247419725388271489994436355455851789029667856185187601750638073633212555156612867835980014778859778601968995936496036814196178001797163931493891654492217288019227812736476531618000266931813974345306978340582296850381850164590074856736536063522352237503116049128715025887191538823398416532470105691743730716872482031753697760636022419793746246857291180351185824288635728868349400212562615379114048589140710627741620069013750189527664048472616048741017806022133969725577182570946399603054044296981466507300868587238816753425740066744402404354748743328963320606754795871487802099696789223089713335579206418551308599340664823264681567124977743655076306642483141779647722643659409571596067550548386862755758721969071265412790547744701588973743799373327495009549828620627461408168884263880198374066193519818933559397064761403394874464174395894535784251536881096933458767217068464813221162103422755429025017398351385272683522876311256025198102133455373752919593977085952084230837274389454094622546986368338959496923107398975103148793165312689045763312090742288379778401218466494864062261006723783510993905038037915466341971341321624182873394798176808191541566119176339023260115174037239908080168461085749885879142686683368856257886064394000817970556301574865170914886225459990115668496573188563737474231273227415748081432437447771727855548469255374722361489198541097968479912618098954431532864977268111651583210777038501107337924010096302678267269358581836407830906212181787380219409033472647240089451320318980288014488204018427908888834023772315736081113806593058109219919322322457459167601733880227268352205327252134885696989727808730306879737831308184754584648614535216447779320385922840512217735978229048582677178819556936556959739071013173511901247431521798386246531961093536529511340745270449038893797648320337650983698069210472914126678860705826939768158486173465077959840214804959526325752535217326509192951583588652872499758505412279526593882550100979767723335498762679342336515807064840539106644646841961045942462774586480186524560950417689849988156103521328051459189627449612297206401682068895206762409514189335895574555486424003770821011669045884641819281839490013213531769035844176969202255877603293559845263006467731622943493257248334595057044537155664514937530135739211247298735200275169495355325959516658701890559695449866931030819872823823195799664955882800152420894242596389895597860949285167764423639682711777693600782772035175273788555067324245679133468598168942622960159862919949195447802970962924460883911897195025706796414173887462713718107748611596169841914866683645892571767665831355587288029891705904233797391168644998934570202193018571849434199288522864884716861641739803259630703410680316315908154498177180757158424499953231010852291421415536542500264207246324845680951585575537814667933957133282143050814324239146843384608981361418588628479364187302787868632474016208527643220109487133435088461249392486107545280738856573178688276980454516820490110382928859088529795165942882225645959924861557883240001865389171884238867069922935126215669008598474413012060137475158515495474629452757527343761847714638988416922776490440526920669420089317534241409460244038775091348355578673217339463645926522320149406910931860252021981767900620610435455916834136416693708960007931079057744089815357200810610150303200263271456259651486997479115815543901380018660323829562652547863743393342740327556287909239975032292935250398412912553054062809709790623050166094426751798671241412585004371157521040347400765789049411725428162402068800036152508242393847094842866979894111658827194112687149425013745719220919744416208743734341895254318283655728805043029332432660652655742096304941214261294654776045290510579426802451927750756867595472428386454263259835332237737089497127602349088482552261196672169859525012030052245470049748533444278533396435456817152761346845760120528402754165294916164586412957076840521141111416166992587617284436637933936733644338168541302480633139904512467332458843981896823412544890574433023878080656732019546876965660403793614594022310936608724812761931571734940269491306974416488560384064580104906765351965843187052863090066940628431349773766906897199233077107108680690932187581471954930610463818103734643771214221963710640730766664366550936164082089400016162394794847332040614912880452371306761973104860154904788161454094179301767390188421395849128689742847077411468250886596275141358824879038290005697022425720553274512809428837198217939594857902277551056084332370859652474676469160976281235464702801840140193013474591665837798273434392430599406750269269962026163743266124703005260657073687950210982916626862946376318787035647297555643657612659931161671354004016909077315196762941071618540378894099959927865303331551757704368595386946218604594093097412197578788575363021231859508479129598493831598872832184750323550987467586030799983278124218362817348338138241964203495319953614860944539393991247418086182772350181764097075142276891197487003995094597770939921908832286085321408882846152228094429487912562665398277568722494137071279963892727023811588219677099614123401037611499360647983566617212710484353638178339406508131637473368269412438038605246219990218448080195366680362511782113066548163431993071772477699697513982960222575919007362435902087702497942356670836269837912250606625518134535590547129349357883834614980948369411006706986460287288626409114806707600853800306691244271576136780265267240854423268265634678636412930983382953112243404440507639457095566868582993960717503287527786663546166706179462778667012703773479156998705996441473336201124565240650150561033283334948283650987221259460092351768668828843966124002659716897369056467741122509293711991019001886846794522982907119967355254137447555408620641693771625472964660193283988153821466777674150116064925584570672958346474100884855237882266686626121640548915056465014872313879907178187431997516755592089658614547386015988522079469499931093971861624473085392402619463627016537317035080133353040716814362581468367123123710054046614436264659262514110508667438658745815774535351670577451036079902721111554592717826596262306244774701306601083554484006642518674651134227639501790061741702063046478944521354275880928104907638067638778901309906638253145827863319265778091494525166933802588472038014878583182398402451073181700136482366131826825155956731181501386184703035284430235510490513108145358040572615555845517620366030853691425398855935200565129706697753149197945293348748305213521969708407207700199753701032933620803848236972618994634175426305525568501291027799249650993623886935165846056917376099506076099385204076172741643133319333005430528631926830726484476629396500296883613503214442505972756671290559887236763583006388302966190193531249755798226417445759936254641929590505834638620921762227946389019851785653396370484798978821991560960697417080108506897649427554740259504591889952135159236159665981355521010922462867876056665991090080411074922365899108330157565583735480101676279401520775545418573985371960211900431201536621890076297074567826514745432957370964384946150336255629192796126387224837010744713128942766197906649892735994590577658285778098463972854660677451853800576340779386776931108743141940043737750212394058280790163273172294798220886467599861368432459285153023494753872889043765064334632881484184587871857054286533468374583704327094845174425396690382960162745728578218715869984229719061177786323124540985708489556671920676938055535545412438686149300634837711861510505010798897602800808387311824675484115871189511309593079068449353374481793656879134464029031412857862900859335770375002717528652437033674176223126610142934053764611499399149291222402160822103037613504408428644764878739156523632243971470617413707606740081898808707102569325125737755066854994350521666333298399298596632684809122541885834626981594959026337754174131013580526707766891565372224276174662707845390349479936088954678812711247819502356177644944924533709242452616553339505575362796374348909899024498476506883580793548379681078461540449409684682430456259010123658548131596561287168061148300501840247037159329589317806580896660425128191617679490556295857395092428019373368970131733646476703876323782130763536071157038637805579756747175413146158683263515848450825197615720882112313071565766201835903370409878894965340704152362853415919578384958148604105567955712950695452398571190697409877531158709256969318306632223282256577326697525615806910537494939314254970797253044954618413847623749698968547234915709218116946534590884420229319587665513940550036391188078718419495840195233994562528128559612621224495897330376591131865886025811518394644066151256694024990950477577245317505953732001889603532910548706057685619717830553311325494704390706303128924914552375989129905326588948804558930119723585326699610885278586451676443110780759055610285808551884880522730721442303446392061606305502152690093593402245439859555779707191684467655862225882303936233207309608466739053760340505923435543876559780212466833671589824787543938305819404057973496062776411805411358577553674984399972649417200803417618561175439959202378168972834808282515745014920617555820499242123993275756537154232948741536232953996854291637900276670387829682212237218416227153758410675003530811256762165055692669136306447228696765788671617851586902548249534132935775495606782999039350834307858695844788629527975805126205499252657243507324687230354749095018697654084941960171455332918060214910352716092166421309475558075294802512451206471476809768446655166462382957268630244300060858366123680120513694906812964283498974698963758389860942934591600918568465175041342902540080788887744163367414858032747192117827788222288366811525191855640940622161949145704433786690374506477418012295920454382302860871879991081112934132698156991439217918811082377882792137638350246521486001677014346603740201751319315685036609624010018584006060441215717804951843955712647688233055039007487436405338780830249717313742727174306632838274180769340001376300870737885499420703625317771943847416795041523900399704265900147730629843644141764923779631203448969776039640923218749371541096839162804041813680646449070857559665945416922644538360169943924628501327449950529073504368437433298526536691644614380328795844341614031489645077467025981073792695649066987997829948945950093538909594668683274894285092750078413429096134502833431317334246458750707377912319585025442053144511653440199098999861277776749853297673135254966186733954053942304494076270225928227984927650269323583302599857192543683125906948760454369671048760502281220904548677220032140692085555338313781457054159999303630322331373141421857365712727370457124068840809620554207392471117595583187187720606607103342361674050889442414018099984047160131580002119980030699325218212221679899535941589295563556662932746516427310856925354805551261535846508948454347299308110667276462776030191134213711207789367660241697968739491473163665906761814256751529617265638474411035136560555010367146329539384577466303761738299440381236667694410870532001662436682291573569946092524049099604487225413502399199304267941746097242065861648846044879752040974367952010103742684105843983506279401155379435224744741426538111673836201747261529430662455357542454784652278819700761204110420820957012234399657860271786570749836636951415971138420102585505467201866413288716809279683004468802638861988148897603412631486405071946959664665366721203888382170734184387893322746210322454055332272955645524471063187650258194599730638586294001531299102854205905270249058833948384021598050321541928657644272065751918651282670393217532450971276221953919024560418796174198930740330987801569122569518757796117258550654951433033624223986166561299419981517705318716050297390066596381995799393730631208168064549141917374784717752455850775330198983784286350959684920556430376557696949806017942005415679781805763416338873270871513766130997864077259913069556855934697184017488072136452942315395857292938431544781764009655524695994337544804962143568303902082888091631518422810696513713956355996037054154195493567314898548815307759771087171176688942701347024686028388160438955834009589726058727482847931939880849680378833232999086947982154767512581688965370032205249919185872453443320875102770168484695661720698877995825319590924590064758568120355549018129668403811010786246523890323410161651154841492954265518635366261522790368930409697233975747543355690189793511932309430799999820594725907740250568256496436191811843220170133430702763260855840008694907099701484586238244237655593040080300366606348961789112925286696951770496764811412981600781687199149923893469954698508305336898946202218738068965211410116807361413314954540056903141450842812120085497319934146178850460461308236578425289703736798712850054325588061666299517922182161024216361490008195446010544195245807359109489841592172116595333411463542935126790064023463663222140989786285356330423123294810489079303410111318820145998770629881128912541619406935659971743220611048902071722964366516584005112203868488743796608548622103881814480932689377077691058041639529295969292585965567363472797255787315914490891155750982909729775280423468133005614378498430228942369665317725546987397080655126328287535806420663412290418632529628964001879306755357617932011178383614129711597543157357919131381666191865746415216157166008451736730921696070681263894843247083301162074957215825288988128291862688472350013417673241650038784901170879556943559961457972873439282124755462631596715111228676614862603367151555733303718425810678378097318251126984219368665919919480989190649923769101765663461207384656703986420847085385457478398301645163847262022344262137546724132469487881324420565648247028635305108849485641352780363939402786567194921306084621239552492699084507812008706933203566606866601611258232191491514582150046269099373551393939242534702210670966428150793832134902176642409161861063558317377574718997483855527735581988056348388128465774326492648820376246507890464938260396263939704309872710417843205779014550598885826549825161172543883078956586692605950412063350300657327172078008292000471043162709009483639918562874868083392257378504745478160059976873005252124493984153811851237280707487345768885495706538697424383812268306725343565415316062484304347399427032567052396690419538600246819898941830891494706703947533962595774008461036959333729202555813682319213765198311048370717940499911725349546871492394587992429979159284510842128278537327882311722195768409711047748618417380820285982675488467136157842148450275103323344443469624430037202188897663313322810459073952208871671832566684083384688200000832599213953028318035315017560483147333680934077564637188186444527133548372501329043997113840377408303315702249922384846788244605077570315953830983449777315368402169572559311492407495752268976983079751160585100715378096265970061625684712755325925270146417343933993296261389633745144417148622465602319072548947552916132107792935914779679460648916999317151358798272134520504607511170133077737896432555674528705396276755599333956476928137198465444075963602931528866852468301522102968082652621270603374693049849641626776746429324577755975161053521229438523268115839595002223979992652671121233623239096061412019246443549306775073275901193468885744927141105245123596243472750825998040433860339412979233792071863590434113967396361670556455775895123550101157941755520323239378670877059477526210133355267643421096501934139034914382174766565655648283005605506569239792977315307945539638984475423661205267335903404681813622351399558676887644579365694259252918466928753779628867492830725053445372314844537789845258902965327963482253607040100535813001804243111271582085105612797639945860272146036205432602276618518135870469004138686951576956741559150374096108209511234651082980859887367634949807293683550475505091635380728841856685025773958424826536139888686840093523966846518476516474522988774326743239021391213104034422608518651040079293608591137027543652605255006529622447835365738392918909615236543046967994363868817368028536536603876618943712958074136366005857990898969376418134137809165976741450635401094405181316927773221745665867152890186549946131834350010080129830881328451920181061121276402046736060189047734593839454230759362598857415442928813343467848455739286030766243956468038349880190525732444749458471635217224268292035097102913289662931372453673772940302383260292329479126646015664195316266118979586331302738023846689045115310894524301163924969293804156946979486134484788655961533836998766422537562397216129671161258111209921031900191247488373816675348464455483267374637037396114511338590440260346538252076341031589472580704276856890511677050285286076149745959718144388420620083338697788532123137406585902233256414601609643941998831266819341867385255740580779793863491480192316652295094794408217370819420252753780068668591870721316780072326289256919054800035311489973832061411706809059823758069642061748539823083726328070631985974618570327240073419106963075075617697843091776709713159223424874800727643643583371736173857922848878801213843049917339777804719137185145669074862439380066528141772410092004857510619125566525211831124748781511772785782493129916536585868611265960182610313966433299042683951825913993243047295756935979391845184802061617386814892548477257935558307216504291959116220894406188805962214738393486898216543740503000224937407911323812477978696243724730555045944283850661333311298245133465856796092271776119746607270950931924316034454063357830265257472833467187107709771954519737064121179675017658629628770089020725880267456290959558512807866782246806127954661947468160199115852643340325216572523130565610906485285146064998121042243879561172662240566284312544060421708172216728887443624288124140675179725108819921472915171310205308968361794996316332202294118631182841550784405591592864984379693434644397108131780018442902830801329175557761316737977220354053794282404127968929929366933595315802804146252574134221494738218354239842733436678006452086270034515291158713780582880033165968990406930970257391054682798761795516347159606096060900458806107725317863979617227822994766899689602706898951898924995614925750635781233334404848636080087886589624226945685494401547361635004092995889527638154906692307699163601294637951870017843021856398342334859248951593586091255589492222788481416392972674479953128859441657494932494840571495011538205378112282741807574658429391701961597305317342904095174353061659837408267100397473105912694362857204783605874039299432884610690877365934682545400047164745628412794518177512321678094202920550347441286109859299219038172696461363712003605875968794249346483464130818362677086410122406684604139241802663250201334830346003839923195825534279181646680399437584776529393020424242466565040531961573467149403212377105037553674662176608377444704185393808231711618122630014376270836270738964257969541597257558409614740309979791606843442955095338672922422529330765898964100330190197819736531793890841286468687301670511696622703200767996767418610290923050491500335715890158183053137116334052137629699444342368445461990577878314501976011544677587778812238805761859966997727733780385544399627233640971472894117060110338440886860684167707155917387108417781921269793084230088296012095299569715268770030165758540272627062614595144969945854712996905253856858443005781483616292335911834255293397876455083434151967876488561362579650375763086866167555549031334787166769576949806943043529946454716399413426394389662159473218883633247893509912026626618870960530495729448903931796886330840368620300335110491064284528726123783961767003605129428278097360899872792544665243892411366078507063077147569822218811449461518462325255276742899411627309383388799971226801139706303063993665096110364039429738617674933835210923862297894586329777493772689384952384486644317341925616852757795097451980412402538325141335197446736385353697157376065101077263784868907591347226494423420924811622967857777461391478288145948050418861935445192737143655349661809479307393107588771607914203254867378929690331019298880792407133516098814883667509984753131743025304615402625222125193392939481221273153185902323371409725675263998833354800409603816269246887856587876430515657070000123538182287688715310232326201922950939553097415353373765813331833435395438505220782192296647104529077093202328990941260487480001595839471818813251579591543073042954778342447405237798805082298113264912383298282923592241039977848175996590742578890802729579345635165935258784997427150917644016189343314120341656954762643072166053685090373263517344914042972375329657056834103546892909442619286983745397395196806448023306953331747644272930164249918289592734847141026214184855851002556464900100076201777786204087337453724915680892170678670458844236609361822006926324657876362651925924901600500972117106862618915233464442873522088006000430320107005245538580853971493665752920254331116976613704266557151393995481508320046607686926135655222110465881963517648142581215934354298048251954909096923407537259942504020827692308471260373880193556855639996676613395448834352617116932407847045853883702096417576396539954488188753782382315668914751763620711725407549894047962002416764722012728425562973345185037416076617675869415559799215533238467122607266895049622242364399259836151562811435364128683367962268569238547236558084469454029750266233246552849438362769252320438897679101698420695324001417112601703686428843482604537756015602355717097907033659099311591493750622265228362787779386862875658978170468345942654315074785536738930274125208690043926299246549371697644673467298414099523084993229257885250478447978091057952052562615441055800786836924875250457809087791240730395876941957123888796101623006163718385015461765546602010321354042316011149170997811320002040805551271364260156897734722035019554407253092085477525522513776146428349028598721764348026670681554024188361092375599552334398400626506323407030480357172489934732234174500975625427404998806759537770623331862341590302688251712505225726306672834136948615851548072612201795361681367194556917247487245706477182610311784569150955422823830393934942185828950075975172940609971970462684565667222212482726161687088209604015576958939828559620654968121072645318051740187965916336314827548608400526218043627405237474799610896908596896781184742670385257412930812440952532368696632586962269543606298341414155741366758382993437141173875893592364270583547301384012521798275609415450938360386579907836698832383404008746720355147752691252355001007770827843208966476989304554376413483824324980949099363503285249399551422722735027160215942644592968330611553713864138473170950070272876711790231749189791931885747957429446964225919595316555911731834711049690369822733629531375214972713430352071648789266630258418090061333778879206125556554571077130403041212397822488465276532271180424133639103069094950097206379093946737529039336173134044572070270438953152288462972793802634697233112367348469956271058612448122690779752719188432685611869840027166889471897347620349743943974940161231676956648857654029901297227356497143137482416949988388033682836199233482855573991341274404753807047695491293975520473149886250245525012841545558605121758976026022545752684566231924089973563514357541453291376428681932999632382516923828846171224112198350558416217699040416108974583994885880602903940374851816467725896470030646707679929762963999028394526941090097169263509789339508220210568149924990904318584213955478906590640810633962938136813981809649828375554398016288919243817214799728556806144189396350383977924566289129911052921570268990547459104335842293609316441960022373522056754943244762326212376550694611104952700845903833235781108914529303144840788050587374265333266217224100658646970276707335034279938514059429028258782001075388799668359775509227361979834231968758169772076286552253341551247160017184194243961663759529645073400515008727332066649193451973762898067194760509196447511482437170859654120055577168476731246692134236969109380436299952325603993681480072071874568652451815528649676154124014875121112484565096943548797031317147165477476323067647381225440112431835339486824889857814148156648313160887695822773203471093343784380937098286809883355243392653867237698696499604854307986155196370094147718070335827514268830555053246416927118960592948891117203564863935741881769107128228348370345885847028035048857952140169037290538655042206271676299819087032215879990862870177795586909521967874013548974348256447523162548411096795448929463229146697625108111334244915382085318804249058227067156750273289184799090296378704881098325007897009809709101336432310945363784404819052367012500615864572211497838597290193340795956730555232318892281332582032521852686865683340875378809408019144012340662148402709921442139309142198590392331255703555370358020051908966204551944549845908335191920916288589075929367355751760490852878459745574094635201014877650825838634252607364108534955984637503428503414020927987134436229082237339872906752184771864582673668496873070515031013113824383656459277793966974998036241147039453095789329568097755047699184965503142701788231847619422772477606475201791733712337568324891875645472755636030006785844160194671687753153158246947356558636353146649094273959180827161179386857181206306551295239083796578254306810847866256812948086994977077111455749372825308501115031556019150504595917964780126011297682147250862411077808950757655507472739155335667531741771064630473131388601872057030518394640529441258056858407667373373221003878777042159132098902460676159359388057846815371702605277419654299609006336414946351270400085570545391418170971245549409141725992046967789724910009297273206189738632943963649640173665735136445823514297429177186408880561131753344424303146585567071540709421557167207537812514395254296881057512076275190290303214799542055676127950373849019045377186617239205543549186570203220900279940785185614074389575879987230684304154136666409341310031942642449761901307522103616025036947926867850462011773698693081360844781618489616374185070942418779612387847479775658880212664275177666380972650527947069931416828850950882547075380005946667004334029445346481085951415601486894469646283129767415468729509238202244403970266499919394244229141986030097222600629446448006905435442048506409514521474418920989090457657729482761342770373311534750181237956356005601074835481160433081777898116366332656733372541483956922152302887516825177221866736736596972901864129086574332654111967269889950956729518026121388138577519764245213996494311654006498365328614955502523243094539625669386587582826975088177506860305489743954164737581810109133406597684304501808581404449913036399631164714489527669995970454606354352432178684450791724866518152058605142824054357877583449565695233595033239291974560546125056800793149130650080087837242366728611896439924911893937975269833847382910280293227826146368106864685303969067096299975401037209519338892387337300230860994003938585979050633570063852120368929524106918553948231371630331723884923255116162225502894301186973234354818717555043492242206439865713493876390172238038445303432282638438426271991204290712092059480042308443223365857855833632458776047159230692927754131662368975994777439896994436619853179739267142868862683758666701037087402245178113393710517891647591115041269323205213508649219145300242752307972276459752459355133803278959499395587540690278223255623123128219772401866845101885289456934843860240555845922733227201813269134676090846641030699270574824834730547168327789746055414806811993333707171379161567115158404021863828757789818216129600735243758484780113259204170100775341533385612791952658133481976918471852386977051013164757600554246573771469620227269180626646063606551879365662842775410924784245238444821196700124679160656582103691937701278230244383732214488149658448607238613883890654443193825391432128784299456908595100204152184619129985173028172556897070856121766774678779393944266603170628955531117525461616719844892172884053965962388713373409535277434583680193102792980498805770326892975820864278380429773376257915732128367925397455855368926921743319650376260957117405207259798251151189808046160042152387768657283720598514203056471634007939023766054671133524261431818310060189875758481610043142131476452953780630138042838428421815646161483393530384420461681845757880103979364163526997462643922889117644990351859858583062890720397548947515837339917761771975212859978327717762602731599812606082372668268996566498944408838685894364356073186528169115096501140682048711122311276023556703176284018502579834784281830244847197175628469214284051279152497104372343154284906851894376483463309452415584071901069097112084434255967182997160176047011510075426917748804617484333299758839621571407557350315371149672277389550729680685622628005663017509785312062161732254721522711440914269832409570750650664762802012809459098847731949145551522501609906616756268081303296139103367719167447380098559862304712987762452420001671650826372304245617398571142170510613918731655818730849456340857802937925181602394164748351037836152236768425578786042401501485363334077876163173598560934751805067906051161155245770903063980240976166676815011691748870397371279195705866545106778167045290468193353869163905463108403536999712500916296233059844642048863127322177649479568883887497631845516707894866134698778754414168752731036980687899080376765531423181932375894642419443701836759847548110690976306747759230886199523084846057562036819215022761509523423338608523295571055673613245040153903226865321697656891030019351530826085624645536100952094338438000824346895365325388754700521137870102047174770547533116007470423700655868105828062515014914835236620791998009054517384987478253570062305500783046980574625547888471706357141983771562928458923386828359687730547508804559379353778943899174926703820773847211462919097452806383411512118429469841331620041343326392058611995940119489588940976206155150961168697398536697430999200871545139001004324431813925633938873756234390744606022426242642138516030866705960024194759565149167913899493929667349985412478735855512455483150697386448980743633905330095010521660797588784430449273803640520891025488957639883308977914258789387681137112921583184911214858465318911803551649840626881219243021610241930306505047105525752726139999637880923805403696011542096421748834741148728213027846072581000077975103335951946151692588368476935459216047460345422926442903982930296092639816097009683024984261291278449392093026979216008830988609776445658390900517491732312715352822155249566953318492045364404276519226929596329913781964283043917188202683988576340614836023508589004339868136959586077433368132406812825457792151764108689106189433281923111575997334244199267762783729780682796497637845044043310135014538867091373372810312166471245830994885580501065188728775085793342357315040753201025825551892141616808353102579687481368788768210601894122877864979166185201821628629669993517291672471911235618924105725754166125828951020545478365120240439499698029428514850371147877030202424936420152822526792074163291081505749143055825761764452594333007225972681874582718576704115313039595720725765806164511671716457325450009311646264700464754769833340828466432404349700549225730069504001620260510652300859829762630638170575579184804741987067124029898371580632998068926973789642673823007137993704733431931109014974336370280005738450899207145490444978135221507144653595629284642568480837999733985126704527507859787704452509201088337052964571595998839265636869615598925604504487155798857389732096422730356132645476062237662843188012427447328840576074996090880226133819438723653528533053315153628501367330514541996264509867105692183684346052969136075121820400326092038329098606252601167488084088173939624399142588433512084896490950755199626717977485632678160120506176365245088823452939596416599522508502138739890691331671117736691362957282590448182933130860232869503080093902126975429750459525320928107701915631528651937281485050060813416269964454993591303244370914122343392510846645046564657734180383079269569214233839379420346664004887785499660742073807574427146707055881650862796575358022758688359678731547077515724988995352531489114360543676734822174443309551910549263507662052192252174736885368471681935548696117558940054777939748692902162259070272172549722062141746556807982000880683306381904683768956550263338138014091391603608813898904782303634724161284385678980772441590280614100784663205891868819921136899697185833050242480132512088113272940100723527228747469516493141183568338489283453609177586333668229356614882410306261289632832700770370572414864735250736707363883629938655922482365414656855286767250591357870828756967841200700986980833133770194838221948466015235761248397663146109578094981583758098018230277449633319449322697083070253524678205365595496507827099684256033621036102356711655005307026008131750269865214840626967873883006021226357352057369909694633518167976135110862896150728821052853709591248755550325401950013403776895252677962964707686721156692373427991144287288637936610843317715603983463972044555859855998796201330509445834837093372044215748200347751726694196923883963470816196383292900799438439015180449445951234144402016307117926684982407529287698169171087065687912380316757653373393477745923016835438306433058655040245464111874012166275732882115537355582098075771718063285963695089756136815608050892814667493310787560193210045048243188178630958227231332694794354660109296471363832332528006707407451243918097225068310197769991985851628071864893586477391521127807973536698732745709947030574588404410997100084912411080639079858947933769563171897774261002656702445755611398184023485912649053107931243468840606829635516447509051552133600835453351079379443954360944812617152124006105321859272491286254819127670049641095210679691340431571211725981770168696839673277657672690932138856091068256419694030213487390644761116866399452639009056555980417662403127563885750496655364334596535333202881853560290565884604311707571005402503070363041851934427207218390820356564998580199471464821584694360864156192424473988103231085301036351803457046622030540093101858954681924139818581800206481966431571934593016617911121797202958540218849648736110389513918061168685576366594587689881413406290694348100120539152835188420145260146336263796467632935785324528775058063153755439104050337601532123322114272045309322843911460742976269418806459547629388055464943041125250225650260165264341147933464838830677221876067937488286702693141183502988605452645681936175971712451909164071663043698679754876435351940397508494365514704477387039444455612748867537704801420546439026574377275945859104092538751121283484286211491065419706088871642510505229718444867560763946948395013202744310906226123553434588851497717249565998437243119040433579656316420402319249527907664686967787741002312653596695893147223888573105275361254600551039981547571655989948492861026338569806744293150959404614583298942543927042496468201716841898995310773331551566038694407775084616994341379258662613818096330488490187145144405901055071502895120589813301894048345554547749396968619180690093722620831302834731972686219197869394518366344023230867333212839881693850316510754674279737034235172755433448665438180919198484359615959208299624101456719932513769747498862631902173947480060986523547559014763341403426677583506801462359547876761246835931851137587770141072370428483452468513402210522867729707689365588037925763962569002252909714355533530998185629090194613337993066825567762705690008297666088003326107285246803218459191802504888176562787511015744701606303379873064014113137275811921500060780290332360071779006986019685050218744098455552284149365828263284837048306473874306587351196424093028832965076612852560031707635288228593575385144094312469168568715396323319898626085434021603228026307025845588218003049359132819435875200114053347907208286084602886164579380165750964201581227869606826926140492514948656554312386771001455609050956505621326600775137221771688175041757372346400473868412881493913564610118661469001694563816828433265005684083797137847101525872938343145975202460991452166899568608998122115515990762619750881765643609282902977648523744980465241215868249822819043918668425568186455927666589848204999308982873716731778247533414291661613283247071514808598233303398359718444208531881195025947190784801355747334449330758173474725682438605284504694030807172952796590065873453562473626886114247135451757315381755826608141445639299142942367410010755058664847439291427454686780672672576570880740082190423280136501997604355489567979279846667240738094285670721787532405360562725918763165084494000084414760805532844423453896786177166144386453581244089369293371329167472017539282866359677922486499513572711462581220790285412238733156441890487079802836787167872169502408152713982333796281035775617534824077411550956482188190188661951435841401975517593890217798178211412844562966119357808264623989062209307988309085465609602794686177454770473139235578255748013507946707396532538177923212672558477653982831724877363186504035740529597351655186833314450110760473340722772431889672326152766033687043823904713022124572045894482132032301304123921979367172450859424452904434708204222187977886739380445206271379050268766381728864087479757650261183693274465758194423115557987369640522580521010787623351560341108121416676027324442492886599585594584587983564768406518495015697247038184838732129882164717179711936765612094437979000079133887349164061151514234566044466721660500188551306072531054206504026503332883401498303272490003456559782497361107471806912737711713635763204965020999418028532548679694516993944231675409996951003149755433767574581180202482899842306844285504144275901388083559812134926047148318994053987678918584210850856005109805784460073978423607052942302664073984646625157847668841363297111232178577594750058018629036630847452886190064037799838597005208401972438724376171245171417682341973464465998141731591262719099873321747939324242344516911271911953767401410187830206952320309324091105966796621532691013310419102128043531431006603784355947910776788382786890681255856535708986946324055010490597142049979722741804069396159279349844185236334545597681068361449865562471518555666538447612710186299622872996625599648406353575458661673556997401055814961851092990462286834907585615897348862903683022442993448148875427035862606474065946562025285040006390003626873483441964084957747037229439845640407980501399466840920900138403542825764329267597768634753497124887357287209426395472702952763392453382882141186948573706774996134896921569014709188318286102777478279718677307708293033244832031874145095117028519030263999371955247528275111207912908262354088400874649261329230055386333249424717429423675730963675644412248780675406904057434880870387890210993459423685988296706646296995417371114818974294908092122349656262909674262986609860574414655921950694288027375593329580622949935714579173992654410244155400915949592921008764606938360152889170754766518657345339863713663785653466199197543140762399377907010684049239563160936866769499169945022576411690991002246937957344326084041022331908528457601218556000329630447773173676950791596803462393389309196074216879080591567438641293066256589935555222345290508397107763241516894783840733524516612440668688411559502987343083252082556775381489568452960018815429781476121216496644288988592834715496257506136405678024550013100456711357805843925750100403108331775788817978220358693090364135431199660095172212614196179696009023343954651154867215037531809613614787363064335684570690780402363856642663365151947277621892609873423018164343905843321452768020715924445998444470661031233079544707801581979533729623016528817278905604786016918708325362444342019696694290752297536997874118361141666738506044193241947319637987187894575821313381422961324277313738768038507278786542282695757382227485585243253079829443609071450692259886998651722476392255404621558214215613272367966724573150801340120766071087268845832670424448758612109567563439785640833534265414762528526414119154103405832653445231717590232352179838915417127330658291744133297001757814285173667783177686500162561354012487642088399145883209365544590956571200300471574544037640947426820467828771455600471714138484446460741941532606944711933908808472980655529313312155531123473817028750312257857261183721622746157250199735565598355609345644929522619939518370210163900820541232190632393217274581424386863845274011938470881235937326111912478727004500965974132745959287788074196412711184791422385441752578863653275008515203409866980286111380440557766800600762556610941743279604894687332754037273385726495519015437996509846262749744302575267766570865590422326959681726298080550979110559571888335157893753388327345211484629851463445728341614186896242004027843352954079704575338669989971091083867811837351020206268208680865904752765162010894169412321687083939966696442092038411873118096375556169743249607334577609166958510082557250294702984209683737749799932876152406059246701691113248349095257339898421077496577545824614381930620914967364154269340426020402429529689890019038229313392125738790978925119771345640204588796308064684183807290681330174552443092355279020575176796204937690849766595534782737821426245397793948490009014908300840583079157930280890188071795076820957824284436472016656964646489172102409953113218792239413498758711537002723714810816416362273454046924847719067704865004990424152333642727905141243650612104258711358696070514661325777399406208821041794594854340023618832656781160141328914031782269182260946938523036034975795299619909032177833194919120169004974965509290597358829638711196167004659425149561281093640493712371610232696265879063004732211791397436088284557009107495167285089992783207376761624201684248205847533210838195116119353094262476509607113738003352351906250722195484712721134862777778832910758322347041095989775992337017909967444120283973880786106134528153053441802987637404263779642376148942650813295463241214992420079791670935493471638138928951584899101304875496025591493510850604629019844113077471862310421544361215852286158076307029446759883676279401880983090271699446266132170525757272626053311012781195704842372107052832367783182636119806250846604121927880852095216034867233470042988176195570308990485606682013664805217712941883528332262825646640156918746995303424483057418628944577417325231141203525177383897614677436604221584295506945358242005060398551735717314149025644096963624984491905014704074625062002374867104259219547048849329352994580811767515738575943871553434607933081795595682339107902007562302268660844660143055246189172421168628303702747555828090812680137392422199200222084497299368381799895559273974224291173987932013344146645906018903236839664839635385768091473594378473167219722649486338602787706361676216412813116255358929889923798879347361097742845512195943352791388305525729659786792575822844912854369071023435957437473429444182656893922200263985376404034174992887654817147044137023732026831330286846805244536784928599344403244719435870953856132405615340248093310353981327020244821439348178996072467002201148216612975709264607719458452486580922281855921848385030255339132988760693901168902067026184713864267856411919806423968432801040428539368136792190009446440853494761473977763396274342573030542495445294369696332967419140639723535576913683493148104161371309985346879213580949902736676320512056351847723900958518949363968266803535503252642279904192276489211700224063174835574747339486575662796315157532377406740642104763326074643085607631548851122515019453888810889436924689812572147366201372123845607283941655212869822710615735116309235326069473698874753909360650693850210629020346037162100448003100709945905360085562134776005065934562559727746418196542797994160356428080541086116128286104903776432988895594929692617172140914505966118719838850463861994509257119679088512218290205958376411287310660432378700130995891850786603766879266346299145524344476583263708891088487488668377681115998851697564828973922346332149806551890205164129202815026404265379058352679392702021255678987136160603269340217003160776757364274435337000354232254127784980950225502918316556786439414223828778065834704961340653523611857584133688962103400538581253927518191119745092862930924883651907862129389918884840460094973241362789139922382185695098823156898489759190223361313685360064067533009642681692997817814739937396193929066701378522941868654494591247233212928383023047128987718568914390862319641373643163427286074845153796949880206653792637272379279221570327123668523593781330849486791519655985521458824731927042534021696457575043265790211970467392255307614682655339008678154593369740673424605541081209426615045117837114926015366246139881675336515764166624853841553071637520784009576799852964387383359011656470097451888188859759586850770466264597444909173770607721866878424369641527993999116728903724461031194217733581711680751567117225391867118094779090381927700513683480160076101976294880004878678199974534989854057647940892159048249534084724750513013897701274599972335434021093733437184790237253004344148071747906450192991570996018890763485212318131904225600830754390062302063262857964527256702406830500103324194762293578042467719307273909776829598263181763446040803519681667986703564101643884019339962254691893902216788163945873173635940751203835847382319899136056913862530372556502409219756159681674480192452941624592230650682169808510654261537372136610448271611030939395942994664564815754097225636673382288723702270329049169506370343854694710202468158494107918707646142350917210193449800497806227695267447903380564101223693690322254984228617619788647272391361274792913720494230014176355295090708117123004886833163885577953745269803610280043729024030569344378237135753902467350055621390832800451584887580962725061721183259840222383820430521343142977606805713331391305644525701113809437004751086795722696339054071101188545457329445078493750112525676796861757533475607572191179978228733942636727465720661424485498171605530517533354667165063173468302436526687710691829714217284187312439757319518027282415070777879204583314083625587746144975253900756931960216055209269200293825520074017077568322275273192421565814020407692144903969171381444829450468169060762124929083455118958235866746606305395286026083981250049094368228607600444614977415380579711354207167871534477987000081706092106452784691064618743234454366635539215978332593876536265984326093569646196797099107533781137814788734751453001301191119509001818050382373710922509397518685655099926433601832659562270762382426588813888083768975150230897371153305890874778685501327723403169146821571017939130181929549738947377479671417195428742288372970907447287038232880912133264352377765360531671570686726499286572513237291430145342983121997795197053851958587688524036798494460947039562462310535315727267650701282807843740503421650948949289549314947166897629716732970047681360274413889117523780533786720591244539252681508832184788525781885859041105004054655831013956977227591092377568613095128574950268477986351717111150386904803284219033034973704092324059491745856898652135862092735696399329522891770493677880638612527140383678008441795757150340468676090006334932511596500751937193995011281296236416861253473003108401649172792221379550720873631986628081265252379053438008840061570219763399551884622235945989924246631750694367598582879201766077645162466126522920701567250687321002417698829647774456920535029731717561205268161210435525540422870950419249598701462043427062800530807433968838730980459990841494174355269631390365327944757014762901828210946018984626845994217316845841461540507093842469692156477746647374372496973779229856741694194493856844454479679812400172096919886645594126671365494540567312084430300647863742145911845576789198630071376721137561256350416978892416553893489318266549949419323147329919203535401210739281327137891810608333445644731990589670530482147254073335974240318767845253442175123793934219038736419741569586487561061847420958712167292312594474247958345616604046016373316298794660367028004165637920873113910832997913004696647070619634579963127199441921137471155357955476976409250242582941629238491086611163611735334217671804780383653891485164725864325580022263642220453419261948661598896358116064752645573038092565868292003286593587722560699011634257147384285372979272959423189739370665284955784079661407438637745089577488722052222068644983709620650452007173868067265388465465039837866018929949724336627549444577591269595726312646970952488050636779720180296400320952591069960216407729217441533231697551105489919137834441951473329326041919066433922942880001264088913717935323057402886253440877230873215832422834945261831841446165824443719179236329123494881526493613090529100372156232555529892113318406192729275221907797899721537423430693720901091664912289324363856315782446079987596854072785039380302463443811757768548782719659706706699717442282587793351180092057733134112699987957239599990304140319351781928169101763201984249248915849078844052762196050762651937040715212977991883507960845120766182828181539189144438306011978431280467511882842060625767827364643957583812333416244056325968133396711293507401332064405438661026861409492971437044554904896054022958713372403484645245200567312997387485509688206415130322232338756975346160830537489378502546943176833112556557997097235685726371781456558015514194225885717282659988429485431179781499300460493891873156780741829982846945493816076237588565865054134435073711845766796919738002917618795159687209782345502707746567046991141907756229231228530058710610840285028186909258792400205163265587535225686546882872236147051653216295843996175401023550477831001538350464895789621786547509398960167007939414255208183431235774587642714648819705885269686447184381247061871111429744685009814396903278281383092629470805621810976602043596511333489648600792874538724879969765774063965956875961435756514979930891957658900284031181568260854343088588364993725208714962641669903739454149466876493549903354492260283827878724692404461370391571474267221506862760575891649008092710029290892292962082765604284793022652891694895368903127738968177135606438450541585781706869801615783346109262015709351068889871299565515290460513208832088331008168300503709466582543190931071101403220033696835993713044587071214670643379080585005277217837474316057921021130651275212710083673969529321210107307763171562260876149469846647605531884253051609818148173374985138673430707798124041757285697216214732090144269924036897106823944138867304424182553857616274100652724555374456712188965831854091896620476770286614606727933325639916556873801458213325318534941256388197542761282195915306841275680968326129734834897642336776893593038724611356907883757593952001206077796280566769028632658552845662892541861429024711514042267045890076504168307573208754995403102099487628553968722205392680282273041148795041195284048037548796403498743566650341357460146546583883925859565141963402926336686140507579689581030289978364575353588435675190128758565000998508508279542923707432739301892989769948023781390002478309408950006493306636989547349626394226524481382174722877941888388725175307368029320752268580126950777135183543412890037900535276467785139509972393970053929615761482230000395356721471225792459525238429469946309934587379892118467929964289035183614263966088552231876917898582970039256431348479440384890804138871748472831872071945172665670482861428098733521182371977447990023890592593263525464098111628885022744149787751510216368756095826080517322292292384564056416572263228191559207287599866467974102375804328633761606278405325310229783408071113655983622478579954078537228493811733594249074990385864969223866921007819848885993698182193299034389869467438679790994057716388573791399934972103287805372071724160287675242220235973632417292596744436763068113077597555666436890629423040895463514865790809368610031952326784220983770782184847358960860949526387532666650588206671099749716571144693019904718745496700741924593048591747187302880670652849763447741084715294060732673819833975638093103182822342333512569482731536374255139893674651253815887444877002833773064645690542188211953915461279013483359626762067136040770295232205530391710404455771055467852344636399835605424169988870668797880211644420534519388918971768390059941455680294647103832569720035596979876989291534010736398771448560344044647426428580666426676309872899674395659805346017243664992444185704392644930601041203592111582052878636437518047356350403963760604339858876856043113139288086037933723183593972137607024274000380495070031357775542211165373242667877390971043079211589851961453727982736280125467280107615661805894894504361363221020907232934454187660665822804318793813638758508902971539275053702092215389010555504450642418808868979786001666742139963130697889076642595999872961335895083644949125576883452443853516911507693256803695866006796486380434698000990503429657683735205072594980249878732863154130981315869876767250667659508914678438766643959510347338303846444473811688157866988351163504290023370531617081530077128786490865405051503603941550537521847222759131735732293686791811328820483867606769092108871381503033398889156212765331892082685203550934033963535637844125981487049896130454401735049662218023586116940692450499848273282832630334843013375216824409352207359534443176271032058360406031615369763220519366954762766761898622970430125246379675137127665798605378654611206474184916182936998465152379478328423662825304080659007268417256274719473643746380495241308628495362746572006270767909636407199724213388125388008134865327901692043495727521421963385846584947581678499002584806686863935462916246008270369613803725629333127637270846744661476759737368289817809654644562803149553725121884842609384240480983048408838645722583928097220789409952696390871691144863567513054779034116473546428268815045262850808046722398850944060119456342422309505895238649042614280131672607589333215068237560215280351918787401713230857776978215626635343177450647090928399006381266961716149754896027741673591654546898388184820624213977935784106023571864704663363064936160656595991382272244163755263736426238575410245550695144780803396518298094271089643214341515836247295164663818785443074760578228378752052253923729781754465265510381943016928952934304370192730004463109613268640595079629424393206365063592423090168316285469793609149959167489670571351809082446625618550329589745440437653610691138927835545686613303409649949976951693634187927929985208164602183499266699783656410699984700560206736480264612308856205303362344351136277399887517463016134915856845655482925689812096159097261360967488857218484483353392885646448704412698590443329376537429792843175851358264195317066760136304151574986999369782186775070610625632942580317260052763287174794280443568946579811873885279535224590335247766254014221627358547833608082635915088869499095272612419974610819295558862609828523327095589488227446491833471312044597807847161829771680926550648910988409738887845685107593910202839481829655951111907822926777602193886467632576521179475266249810184206898087837183556366549095431610808157189865357017084354714118506763253447369085993091710003453406348441112624180134886556180315221761892063238049711524899273909416543453811797342053854791774373781387466748056622583552233808189659270684539143133793168816079465050997545038458333370333147189776295103182848255402234005511514778686136465655275216040155578299045406261144877077166335746606181568614151135627799896526937333378416788547009065940342937633337393989515404178799838038742039535872048902883923286511190793002671264685247655483621993235622691111846983389071088418934859188358418402706043282980729502388610166651458401707761891963114230624210092803118339936089976159617169129397829080513679191148090582927480711153137432714368871151168025187026667605379795315140457348437306663363314892862970734140063136211254621178727867819904069619167137001076808694698409686798058782831063419811512891440764816348573122234609202804118485014628612880876343007662002518636704740122436487610175040911533921060035685826639383952128997369939753377609104630828376296451502259314874613672920957494468581063722779929762026976234113748625541394582466401768990406650074854509058696963054262684353046384657617397384456271480390531487839603662682994579898969138304637160467799431136145279927799152493040454320502644027184688035654171251530291426218206305989204479920012042756764123510976448651024202636630461450146811233606187692186344302768739531699743118049046145261675065029649852589306115850902162726523701130268341741718588762489177997019050109003521825601573688807601635382321103790819120173496243158229605546654620014573155564107470733334994089922991477431839954632157321972866598519648318462836882009540707833664267305017980533161738372964004577992529194955642951409851575328665259372292884066617968665451898377913131297421056949653777594108339353205163033227420909064444862558952099702055077777291165083653725768033881305683149537605425527876775806713891532477750478820077812988317300736540838328447092084151377336431659429430861023659598412721290123424447970515271787708666102275040643177543735283098553277471058043589246459345242775768031755472678182971665077680318869448906110455100411573767956138201150691138437606918036729498469430250208330352923725821109496385308295863077235999022217292095704676845259066374028876416786723767390766832172149671946008084868386328116766722533073476855208345619211017395850854439701759583419796205803773850618597415664120422729989150991880692265622493277155940196665248172255484180799871463019370417054038092649165874099974904711807089416658264146150671484075721664572585909203248069904736993285598076571047234142889028414567391009700192541544377351268742990440967433085983503295113382291173139183289675790583543777825653190615210205244634969142921794434585056156062716487534925697437425240797591386838466234240255033447893763512742708253051380139588581027829239811897765255468208678029040587301338101693941168453691407800742586910000002007683217702274031811132633291267886909370190535915766445565237272370955716276219290713361341294680886265487337308648197210986005578575497575707204746743358791013069904005481340542143755541443048438776066657586925746353725087728448098778648726860234396628597235844482060361744045892635218902228660735465275649603395231903251001141518551436189032296112607341395967012741215559466179436472077175406764621888712038111832792561163404071850033252390295563495328292362857233876520672410134900641315653590150787880447039278519341490993880019643582685137691625043628463723558971777730616272281284291227851211411768603272294407416874174993251145028787322719108402676851476104609513006686598755593447830793234223295388664586276401722807216698115080007277488546887202526696674136549061184563799828576349014326701056538191531358597830530277379237378206669793114174763016309265894588502519932071480640718759015039096975377081339705709667480883392606772384946275618804017028146966705617945136030822791965627211987408158054423131401442848408128236634550000849711234913668597787783397919489614180393713373305558318557632341739004937038915890550625701806586719550478009391638012076453617665589799013825085698837991050104562916908162415908594508441168188044757336077116716500305810636842508405962244557010308844489688432011900491352379685142345207687462777770408102736204295204715422133474031430338456417472954985248839595198189533222338377997525626317296902854995297642112886247811986929781644119990022159912281342515000343603191207593320693654386295104776543723016806473494258047944554421858485057362528117781110958031297422617975427960916733724364749024565955245982602766519743028909418282844708411853501032028696267011760101705880574281556698910718606054342580190968959378328922087421995401346419456077630786767384353092047639500556902245486504836792581237919093990961679655436438879430930986382073362240766319011617959478131863093613013456190664663248365606422643126515621230209340040187151136465501796264005873694773174980094047152099170665902065057180885388284154217053388583140431090399847424720309647207801559658581525786217055460430150804447100607339512814357730319072879676586946342714893571796681083235129018798318617129606179467292308838888693708209916334540236998715629170512808377311644675179830503650121956040418064717406227014680922056642675477278323079372399475038211064826247823729636350919969203613228334196026507646374494099810728805565906675595731066451481617158387691362199032634795307222475207279229077287974081182149655853616910977439374032240457360040498706633283405204144325610174406353435358674643991303399225605105660555751604769288875878423378288956617863614544098322882508523540773826307191385401163490016756224128798103714315087420927240019538151500608831944740569785413884359878294078937920521574901742358902291490596800005820816429004276945891605583163596974897164852322162808535266100930875883681583135503280507092051328268363948281057298233155665257082506223965652302554606747333845903433730508190924013201384040730888598156555772623536500825916112678453830649348676210604681613515104223327101277906552329056970199277920906805249461512652559044038133566743772294561426986291347038615329896381071022850119286592115925464420350894903983145614624186255706054229109958053779504192768025412561289347391916079741132710988974973449482523066941328422989932527383113466413245284446066342754152554578928214497048244397175160126208911665639995133035679455598311474131028575593413445472612451511065262193625176746783826344060519118596229876521514632646895600960374457807756886407619631009029155305650085723229432845871904795680885877547206480853309018615632828871166841559891377734644604171322288337712433238255844326853248530906269889712000894711448426841453145595758767060314223457513409094695690803610652337415056963878301472476011067172735387103960916661231494721553872862113712232595564259600032600785777699713204085915855574193060604558978642434210774203879489971412696246945255361359304541189057117837364116659925361077901257876047160608361239678953972818533295391064230738480989687260344180184135338547514742178539303489887752980074991585430607270822611166090683658465741889096765169237741942235765593942380850641106993118886356599805716803729214253321448596541953715961737584438247441012103115834430560513079755179677819725675159051575827883268609863050264288482279458881407222133925006402567709160591356151166537350459666917946923994808634514406275753975289280063729265463473097754588062756508215113901589391649764118631622864347340190731763350321640425027389613171508667745641067993145341939846665096594999488086981899891135474653250260329607583080290566066805021151582530528473246381655333687168023318297672145719338404401238244241965937647018844378121169380961291071313716113017412459267276993210135122297063684344297513972863662014370258380084733411014321161659299809091603882762418432715859961094870991288083574841648473925868882216262431018368270516526319408229297957432873368990057403180301944435582516878818339181575136190080640874585851181760215779122569399265904820743435548439819867909809223317181160856036432364409098165012665082723271866299265456209732349371231321598010114878921160036461522989551743309989573901736981003531592849544890792674715116949024386149950191718705650925205382442290362321880543364008695482979975596680998702239672148866761906537241873662953034414685193906492764800555329661186315185121715473350294845830692843955189732378617986457741274532698195970868976394746539908398870919634149163762816560418902866811220373179502994096168071202204431381225257308246714504300677120312199925549470964330860147198055728297067130981297691646318905874154202848920816440802060286772696164061132493294951764171072904576136981824262780576750009687029007834248299524276921068475657099833905755449600967525327610388801660496876717259510910201488366290426190696807380959996440366106952411735982243789331145248223908123555799927028115738826582725840762598884868215888153527155660631910689715243020055332947910911429305249259030842018284893288513244976195447912652424464259724011894994235494743937643773515183867769366166589114986591607095209029368281628411523005428293864538068148987295940725423567694968337235463237559687435523245134773856588673994941789797042318429928108907617731437843958804835572496027700038908027608540086039598645822967672801716919682763201672861417702709749436110402166143085004060530617361434414175524875707633764885928507343603175955875176747565030192454873602354979174153136325753157834805271473473187771993597180962847342830134104305040890507878570632464508903620997020310668784170733018902625788470097061637744132139511881291435122976516682475588217902602791081687491183416881211183732883883397448548266765596196360683779620763995604012230528289277590926122558686661216010148307610416199093774612911889489219065768858936970077377784849446017453361795495508829461628920913581284928620057513973409914508240157924085728075115432718420439554821661537183956823826838265815024143714810461512233614657037878923574075173894894260257428929184195409604031684846951422258543462520155894943514175825109567869510322378884482089556997141758615981954002123015618192378053207613719685127901362099340411941344580565877177947328621330698244600892842348135767096546650389979538178457687713990762325659885911812433489109129079990507107731237216305054617164506955237966276404239156986515752319361549128885058851445336653370840984232959943591852077050536209532881443793984228637869471283523174563025558393797994203119219096665835732651650162493205792295296010646448349636350361236945575168908825198823538288354049854891234627085437171627717333400808795998880692502367307189512433717726836518775346066048498452847991992243748867171903475627000462671081509494783391307896171074462319963608662116393098519427861493855041321336082851234500234810174743833412614242635044654801307405819809944201740552857255451536174234377742286714179314280943887053093500317731681220090142509326033629663094429495619150095511661980489835655055776198609307090916943208341670184737366374157444211112337100911225887251984994848749798223813130641335804179748061066786021359421095126250824893468023710732470606232593475685838390736592586327948916577783706310465668775249407092493302114991274059407960487012750917672686732639808473186108032974043784349929983243954840623044866173629616127307618541893920422294500507855211859111703389875291665528400752131809441207706516134670702287124624192802828473572017637572655617321758507872727994505901532064107816152294272210434232450517614036783750982639206057719180434143209826136773124446665995589967415802093168473526751516864813345469804223852663379758989371911867010754153257414173219656160990955330767164726555905554209914309716526343023267468049192243003141301038126655065405696672700116825647090651516802911927507065327892758351537832930084262577178449345876181474503048853367462058829008300229807951341293877041184251959986810212905305459289887155671478480707402286140982860467085662724209278509957206892055644642028210048177762371253981783000605624034285099914294588117449551988937245087837968761536969559014041812089980605249143777749853250644777253016125518171748936169041406840485239591621479000599303362147482968009205124177429520315723858485231719994877791109471176809365038048305626296645877758633385962257457800747265694077548000720095274599414665080273631231378644084999715467689595529415724032915702026411499397360890691686890283649071714990037762686333931615145938667629887400355042677618121223652727525904984026645731422726685847749826437336870773675497174403209976898045179913140654112419799768680514743360335505878889055180066741949874529208491034210117334163781085612029325170446363888508797858054320989717030684271553120199657484183401517296934320705256042188222217759033709026366125852722715985319586995072275338588082094092293191032813754844958549895478237902166856066979379695954001173366649701642664370712045773726857900735900038814444037690565624006055555849433252600532754138292383139932592167468060157717307046053715857116923616341331265339256186897893561030009611252381289607218617004878635805582747078853837091220982062427601967892341866593907707787159542988309573385255400143078146397967036704741130574034399362691613479140933161699711108875963685450106612517908640668861182879590736251381681739046618896152029276448841320423408299394648342171355096128404649958408708426526245613851474933060154348983384441726417091510556519371903719523346668643392139659070215468997798828566038410274896328756995031556181746061810173235917129740437597228061761408746820813126300572079813531505558140794165554573976103186107818342738625573708854803469629403662520650150811272387812720843696595310968399187178459565264313285682099733563038634973223887066556485601294446880822355190617176816862972036628988567056967485104173402529337234781037457489971952313385542560387024907244149978845368658556901835022249818794504175727059829666212526673815543737338631806018532923767358321688085539345324902127037808385323245036569134587081919275220528890810452392778244496089302832520089238945508991247440547684743956694697676157545478907824356197025824693465157376611879655363844541824292003091076633473942059892657237326763737726076279668495017324760319815182953192652332960664157223480046548106678487883136945417775996014497724609372769848712196442654657135142490316634335853191419775534739224196370214398998142635343301660707399497465745330184732042724604626208996035807609605032268407468026469896731574756015991338499056154199321170498419546406162569123482519522511004462658889743596087016593735175961479949648262100607894981580987347788371865601306480895035757976747770768455561666874533943154466914471893122087015016038913558510432910590180937622390247381975661663714845604788720493639611783755221111038724817201161705488832261129183893157921758426543636075105645341880434653362427916355302255953971367698438099013773474043105736171330822820593757116750352038710604359430569259984415230134815424646846174332805528149894384544540509700370263321433572137844005141111096077598377054665961946749244974527191324477531590709943605301335745153093649746024251842024536953571781984870833634357939985229963743505148582177510385104307681462187235062223579998910730252839042331347375397057961430642782685338824769101993282437274027846035711154789134577220912481227402941124002610668908943454281914988305493531001390245987890325267365071777828758722234827622135845983451589374629839686607956073991604849281978145270044213827842585110642150786747528973225640978289196495538615739472492215778105073026890588899755428327196094469397769645088323026748576967570531335205453216205613366039650745285909842514837708151026457428363071302207977104520904193214012959642324882758620962664427500743038562536223165182462138063446047308281859512872485267347847818675212401724985604140323227707834001926564548094537437505397246631018988818231905248857574476217825117967829142136457244768751273735629277979684936846786197391266298977662035986888745827376541136232701907789917294523813642051703365552656213347636223414197211968808764542608935837280684073539195417187205530754325599695504136786097995613657514900686788866582797683728853188794875378581409752492417625981187720005942168019684302194996902204536896881529925626949944790273273031664170566447814817347228404436023041457078163684876774538663733232891136660841645711450857438213276914054299397695278590185598090636563536196672526059344497228862418174280500141426694880012661516174750542628348949006616619931489138371204234783508005145596857604922104348391790530694589105161329185172768999537565093365730141469241921509659766498130114280374288012124005459111729933235475625788188188536932874994398451886493839555912111496546398336259912474020263291634090693655468357323863604921556242783611695207903656668127587974468628361473202397320317460982060782000494026352396143357500957819578380719503987385002794849136691001394022366125514874143667355588163509790361442131482970802544465225168931491606761090692175011132102053064748646305963943092827234589170733065255582638452417129307239747124571649804896870877250827251731149044290328719128955066952192528985041756897296724960225541633013765022125517674342380947632031056582617815616246245734654861859540450189961841843245465707692328647756869804137481047763736276430838509574439817150377591464634081945830132500776872634498968830638544671402527908803651447428995893310431302213498574808458066501603639445609730308731944775849374423183656958735886725597701785970320978416156193633802117059375986383576427005120854303918251771478699654443600284571977912542616342202036335244992903097653745328598826272166951125528462418682679513914399430718950990888964288996629773095198632156112936682004711800320831233123926691529657829377937066291732960910134851062649631019769390111782866281661087746661253592584791617124452614676046110255894980525229020919511003490186231048138351208036201460256394983503122301866794488621168286496151047246411830493186831668469688237655613888913345166529995065731585533124886484996150055676963057175887091219461894565734449473073483234495006532284768536309571429847731811125050456877894864889036591528089636297457932348786957965653726088426534585377143374527018760102191915210871145994276800995576811403630860481358632777555787194753299355002069372802537544886466076280122006723342827694429056271954800893230519759574585923587240586702748947481755953520546375131495651822006617287340312521924094499348738962951247112608005900330249941945189344432667129464416491682026188802624545936890109134005250054223625570455294475130576296842687483888336021877631850796832078742795595303964251277456733507264175447426685798615655432777515619835497971982317377689426229398731684344521717840262357146859859242150721274818470937774406474367538452555470032227179755542342751533416363864769385450978249619155776351113391978054360954811865094857030875061249953426241292840269587483702518694787654023427324001695253968988544334478896415327033024100725321387080141650814273695715752666797866756624633802854989829937080895084684152495798102175490697693474977196734587742434080943309257307739893729163021847167270200634452958775457497518165764546553370190677689459108058763213247169962727809474549129690210419679965386344694818827850515649249009806213434416064569719781723955788899019958383563171464769337212429429769891190822428078626104432748176959668326739584196843461938335474280795714396538010752735601468439045134363873318190311516220441676890059078307119820838148996244061113562177797348349934169908779463004225873167255252771867478652892489700222439584105647250515319599495601605319485746306584092248365669158461674870624008161630600670643940911279161488659996544989765178645986085091357944128872542372300557593466115267418237133865261059113227889827933913647398251238258032651370173503765672244293821269662401832504316083524939888238029119195190306709447220848875137746175125276520560316056094633525683343986839067930392507960499517679803178423879280571525564172630272438137844697521990844589768386792133892749053098038439578776127365346567506685013859722276025915508405328730211467535907718016460712395851993940683993534125232338763014349451563468074872478665758412176527016645314170013690795343174568944483492667130854074194699489969145462629258954194113412108505618239497904035130990122957096428615574846012196421295142305946765551808841188524899892797625513070365002012053852670076747191318791384274388797568330539830344919835587713313815989788767272484810197064247002652255887689254254682028494838266316609932767108773655440298979772179900338070456710815197867609346091033116854052418761302739173031658702558882955076376061727751985112527191535247075419334292644600445805523112932934643851671834056781778629965374775398324859962418082926897527508248000866932999504909058393695909318310835773082270822506873644069255205234269826509181870260453244968766808905521606793714302962435663390840326698513376964872056732300072737905013080608913094903033343953154866695204313305666576805160872658537541553408042801908095911393511599392812134128421693356754699190158403571561987324388349776522001549310704803217722054162574271567427562137783971330527231865480818491951003476361544702774251608313130622083956319198982241836988145069398598156489760804602149650547887147452073847774013663918001481552570804135186487920150435664370824983159099654643383465167652324495938414174098333027753265264925819135129775871029819756593804016493614675815713484028183035868405211229495282500141535681897010066149464033195790757579281268420957636798284070609604923577828374095565088284091641262113366921087938840897629290290040385769451588393650889898236008133169082901876429314167884826298505143447004958519252540117630046434097584738720803494282942850546065460276943207982951633160857550642040920549283433396022462135711416592447628429398294599277061679893440293790714082828497828753015636289522534465924840426148423105681752591173775336959922874150756776232182876875895357859657253695827537645403145292026517362203020210165788176642379581519571248978730486744108046981134784988703379794413981354582422935258225998552245697997765682390634375446985060128988396249175947271115187762942252045010291600138131750098429972345630362032105744744301516808045305759947284805115271229082330046337048575598470501976603889266977984175439022985975827436095580734382871758236349572026819820825339641497954080751827916479023961076543844307598570259343509318411509368091776236313227769941812228289661835491094163564530651845942130684949585306174635839896751457107276785352894670952557071155038079769723569254986337905704198034825932395237094810678012828711723083566680085036912379632860398353624607850163399156738360763763394884726371749039468164988819706080241810006590721457629468625622077194095821877470862958457441918845783722560524532681633944262145410669393270805068057247249530873986487618188436818622366758876142673528017880011489209417851656651210660129762098475059509495495760654619878861542649319256593959777162081720336173966781997307131476056210532366957566260643692263896915797663370492280214203593336477329908438544034903137450127375075485186697451681816388356091109315970445078007329276766331972676719522763878126616364919681215977429921257223826521096013981454018787663239453170995634146693185047767378855170996663461201167530672318262671568614593467060909420682327249282366768034951372293820230902785777043065098136068288055415969111761914870342298915287323972931634020264471922335253451376615914828970556124379383590518085921438552687403678929624809831182444020999201293537555804227019923461277959143953104905289180303216060102021737432829440285415441830928963518256560246834535394604257601704408357051175057222074410527566876172439498585723678802436877748035199129120080851195877038252884982381461511740708010910934779858291892233464783838632630418145258331910039398805453279744957447914183451726019100287691348790312752129925256077904866773757185388432240767494955184918946108145018408412650855223552999445114217925441233544790938581262742052230612290782885840393018926011250425805839888051048632017821851533105269512176365437254315407926665708075783773097712756251044310157570708663047899581045649734382902826995944238117662168255566008460720643072563248068566738380292016090978917902535013459731386299776739744346286979408078700041502930665635728030362785417870924206183674804917444200475834168010840121982638626075725775967387196132393105749481007059991362473087815923941915475919744067579129456662889709576880668408620337856331978206715877865176281687448144025506795640866693463748456522413265489802821761455948077957712435286492155743348936891214688535228532506297128917082839486925098861439330078573010362383109826778497083885489512348182659452271103049778137253018558000211944717102281644730000488459878419887389801344872028210307913191088293409842932169594988389539587419949863485617724988569170371977333149977392589660754541616681199386668492797473535763441847205996531087687472276499638058310963696908603100157548779149428012127424876190787578405237766021316042899296740352645733389625401411749761927107864507988995914207307016520149419214952182594628953565366803093503820165588319161952015603008003470006248133889875464845400038584609724063231664879380053177054901605526674579412898449454059104042768516617742472498865801379729577914231260847726316449585931479676924148762343432652606613077186148578148623961687954181457603650285442005541818633077519895369958283659143846376740542623477250629916992843942202597434354912484678411431752375320155250597182611380521930391611300050779441873728892921556781629631875105727544746511375828431068270235911642502824452492557595201829810309951954821070199349494878789063255242673784452727082215576608973158248889358009476896069115419673276720263269799659143486605491025396958395430797096688930975323703660333293778578181165188594548135417667987277680426238200204498187646783016520407859494336620888324760494540746066386985553771168045152029269746742123683393095424137980906930122197561380050086626785867015659644651490292448402557281378811696288014249427495158564568691601335778151835349678879017819603829220247441985455762679151871451051114144647413409238358722321487629946510806967510296075278059471992604346932829471654281216523030768709026339872705180832997619488123828525266278891430724787204183943026576593029800966202047193485892824349640472011300270156248117212732518850506443963062308065198814951874910784826997591718506422896784232632757044680859559658789356527434943374827683436435930047415053951403779321709252046282259264284526884700399410119167135737110317432050033490473537407887686319512320681965993802951385419608617639995459803969306368096401855044782655725270728603844949869317663189779900717868067962944214117041788552320796146877629943478913098549549027384471794933373848350092718630206296872929545475536060642734438037607590315218785004763123629429363374644905435580377159413640369440491767313605626619553139003747737713128808049938389124281541285904091317322554318284601748358776701701574840449181094755836200773607026847721420870839479149715143553940472751011885720266250425927350525563775684028516222145852918483729773635593483857452823367553817196234737383885540996470862009969567046749686489913942707879700829579866252486535584062092078758960290139795849047878512785301028071096452180740895103088447986654469387850375381760003824617646245889531571589095039726241225036483188586388751585960430275449443957123299196844454595559137540882019467647690925620358999744774386017193752600232307997921469934104398902188392669700394965276959130005067454004794765623419898795345091922947049006386235846355100486712689821606851889595285702284258170034434730958543055792965069050081910618091407858491987004380997766781021747714064333658482052979060380860617597946395811634877536407127931061448388627767546076467705464531554032363577644070006938245370362062636040933424757171081857653452778798409199298517370129851929886724949841051508328659992240272944254923253529017692916197256586783571369720775177062995762647108283028571958530949568531184973927557535098285294058761834826520517431282489155064541549919726103688534030515214909382228884316913200001926378966941854883295627592611068058739905580808329304413801455047138803447705087380555557733584402555634633233124047225593451795420944643992490611469756545205971526257835898128832150729843079061772562914389234156704701368251779602504256291983910907741179027933078332615769447420986479026983287212437520050101474049889601592649892702319795019923086017009308562173273493850204584277948821355948178591245676202016531883982055777976378001280079866604165634484654950065790571562873535331618839602860248476914329640430211482339896881156512890653882870968075323542568733696602148860936379121557136107207735217183272940093875117698502992738825464521798951964537432630655476765415503840083978358083639661272313054933472111382921853967511039888476130146076091610014494134054071158887102753777764148699935273962084230218819898186789800239109845306895010504484941723601264224353845729637543105342784441018115813861603281703590963699881588348276111983077753421402533750875143442841548862360050369560014443545754098154930835268836837653442238581979362168433065351512218633445715213402623361435601965414429092744673076789256684742532958755811472370157235546636871768487172685378507723391481977722430605895266687569216510276270538060795272148175401052580411450805710984324787435295641281425815444311909890578639245540985772845839355182903716391128663121717254156466029904036194425297709229882131522676283236921818721614334676945904454692694145787162892552507873366575920389330699972204360007725387626733626691877080309080722177424032565758606005402681037230757810311569029909448244675619441886384912945358867021317158338269174575470540617040891342508361469053394791371720731758179859406730118075728729730058834199284705036960118992034190898554869012744212249506819624223894023737342980141341184726288566161558979443796073631958946074840139523386108723470467736935739447332008437968304923783358185448781807050676354585035742864523498609261608704646679524898962995105801642151041954891610024315811880251974970169949801061941546518896267080154564888296471264571642232823792265402209850442020822219961252896051674322928281701739610271970291612855303879986531015515676475244832283279516110576797192285567461657081366720609037823194325728643345476316549513958620470298558196573045614381073706719817592906439470102671500898020637914661661313507267580409486813922383505048751538955363934153889595280374175361850193928377680976284364745348268127197039089422543574445719862646778505268096066396109587088942200539782756577479174635673507902927306882184342241663014417231654804537332122646677832384280401515781011295589402840564275034613928686315129835564129440574432390068367649639338426531035663312491885248794521614369139907323264904451780756159937805964460006531927563091909250914946211319011317610669566120937433744858217762420895410012009089939880481961529844872272872460004529111295483906576471126868295852488165537184427944788535103094845032946623902184123908701747438990241660665283106608899991702447885874351513823209305767160092070055054059788919538402768000111130653496415476422976599515300944753976736017133803337601134678069296004002554169707907564273007027955512751774738964269390231438706406662228946622052601320123529145501308850956037659747384832339817885013454103786279979593883858961094418183249985665966556793217724681996037733498301899858514552623466882102437582272330878005851405332292436760753478252580341717535226574599924562875120928991279661146869521436442249032318333338304331115376656613061973445096984569678530800482185638606579685538565415616072028813580587279626406917355655605342756812324479195696989090644293145592690729433566060558651067458427122247160710040461799795756492427404116260642141276125510821735390406838762537281871067472718111179766473422213976596790116838264434192624396409960230406988638730757657340239724055773474448036480409886530830704558191712146645284130629494033124921473468456021666269159531244600879248351939611758837551704941310674956035090417057811425306112171424048936284380962021090564800152651056622988156838131294299216337800664403615181556056083862282931775243245136743131015226731173568965623323925038024733818493357267012401388944229418959338044963408855510339532108041920909004307587541571617257749917865035888295552668645293624251097224610591617216275267317412658637335618474790537889919127198395109158278144524689671537327604869943469562345299028181268762313704378383908810921061263405984184178844709206840066311396317626220186259672213630260214994370160522321945590904941331897542674093312672073931364840718616647826217453104566929936440109354193295735024786005426204382907020478321400274597154613100900811871595582220132918505408451558954787034688193758012335830514657262385328771186033407328351762742767938072765320155603618730132270396796114881665308265359250882508805653290902101365029193556546137742212212211521864719835263896701317147469337111258531369494197495474190122603800764578530508849937323345502080471391867783226759936906509603284519498074569258916556167875578534476742433059325447017874035282563223160313201556707457711435815868235732881121096483746443889590483938751948420327000726890625234395620992262398152441725792759396079234991672778200602049645070844036623829752835105090874086722880153387586438547587774817078188985976849680613763827575384746783885963106740125664463101090507319810352444532095030151934395111410640069732514038254701566693304060389732554812882830073343451447636095444990163305109923872896652452394883983834987052977830299204550964547510791321398022465168915038816997583439066159793336349596689931065487133866284492204513147230207458107472460704816659054278218623257214925186784765000276256324360440567772230489117327670752981961940910515748583591419291387749646752931425638413786925794887752035016283788285644716390101390344797380068852441676988027816690300669388433485801229133719314690065896243823667851869406816256907449968979835212755198030155301546709412161718057095740551830088572062213760056300637465423920738994455470286793527071457943840573274022354273062214729788798247350074950666479259970309881889381937428262601416831380026623207811943352078629096194090215332515800531580344852872704133067030978156685398703048364814939451115553004960668732577115679467595228483019695174006721613978192055932385344370601356615059180220500131766018499152803815881482138164203112223601206787680796667720932187377004950074231138027517131136258205652064897378215716810353124173663185843272919496493884719010220121485175492120621821819041638603623808307437518226483925353286146892430503952947283354071209862969406279396491471471044023284966270101015323431692906796023792072229310605856428487811007327380719638479710699186465879168581824334832752963115124596688418116620548548506689810034098210375839292723406116525877692386544528600910865913445454828583890037812036783451649125123472957598841874348021604922807787135464391212389644009417944081590206058156578821485557838393735443698608488524743950787739841110826001057774064912699872998587904856264473733216355753726168352994184320643322550955218269814505490448115167483269614416914294567166796822313123490894097668483398690001290372469416435731089615037228713185735270211000783860496453346867944831550552997713372295392202028753532891863761030404847213007156456528988329043302071787710735235279995878969653311829599790287066509548244073034287574505227127162527365232375628441688012051774659709487637433823289743601500558608908113386031555826831292128789524691539317386211060975418274610838706534014078426159995469757775831479592592906942253428622074987082932328969183689433104578007175769285337409388481923562323180708030377806553649611583679403144815718171501637685880869114186081335333086796935168412651791111192532346665354189281146477355157107175965349019449863595679270012849016276843654680333434047657911935667198985927460552945386007471198701864598933708970734427506904415143091964915837605534453295207296388710870812700098603053436266772210361527210868504686692338326940681542389332679650398006207568108774265497924106981996524379557740966663467733740832028902897943306692137709214041745798424475419976356305499121028233257441987174594274796127553346695650118590125835879850116575445807476345535573952329168012223482659467710181532627385574633712473438399834057366511435055562283881962033176494607824626185647074497863102380255809796725520165289181528967061026783872171944130141654859551409686744163159976009977320661766675497289357482259970140742997696963670662826027140515081210624216331001630259375687299029327927929637166686978952952243028170900238922720834338611185538354992338743012891673225230553496962797859122019831039888847091738737350433797473816185922479514467317495325696052544899257844300595173190379458141051936080495841039014223310332950616715139236901094056019316986957336643568940059798524849341302007250753630042993342218664043407053141262958074879465125503546569759990113921400707823122219262693779198263222338023722812197491053996934147168581764358858485323591789832718143883937176435752125464344745405190031084272259020090993588480324837719493534419725534152323914220823659157093437629051524117501329645164311782919773954081109801996451642312530207452904962632307485294579553188301544512378507661823647078372493557911486724263486794116970481908600099896028086405485219298588233876533535126397003822545342361884998718803491137075065220962286642344311724668188969116741615524457132704636072770551967094000445868661923814427967288457199219017154950977146471860202539794878491140773949973129773346516206032207688127560714245156479086680122849800825220629311335140996877947065535326543489825409997541271082639199112436937403048089217768370292899846896833463388640507671465957597024103995127597804485407788990460522477503279974672069548522560429686656293345328250042367064869217433235190803872074848550630289499061039321852146764800335065874995138717245150316335620746677772958046469720823978558816221085733572335558990749652611784160776257227315353774130731284992510780092993073981869947932646190567005066042782317286441027446814912679765742252190161546765928463392408394172350895244227730315377473069393963095015869684049204052215796593818443626059041453482474264174022408601292240329591496456362412692117865312302470435720293623596931620098678361451896732206024322553283831600769676453102618361201722243081430525186779525044255738215312838315059313204773927511087124719177287872784081676255115129961885566127231060153914169343576630108730496635909799372105742634316372988518898975639644971374519341762886421773196043258318428620608640896189889337750039245260963507131987619650863091204441944779152168295338005830860773019571386174351504740161567944954478805122542756235187933133880274808577221883189547826281198009996435920961182954935100035937725764839423399621829340320638258505931292475610269743626931326312410430039762453476454873718734864284781645859570749734299879898206973253528893199355495087074291708915309548995719144942835643764454890252755137837398394729128693693653268825548776025934917145093125573280923675823332324515069616243260039110606188860021600126666615939201296044098145869954953057358239373251765839936647307985232632059239852866524932703806902631350142957603944116602932640093057701290754087357918757907713231075883083233680097579562374571341866127797992191236186905076674204656639551270720869768169661267384302660018667761783008178015763366297357930062763315554190728224971161852160365465531364722288635020740036153676553774564504564751492721884868397628600771389953057574535523449919032369461814377758805726258533151792410703347154868543840434798836396417286454205703055596934459121626612603146276328201967261230610472648821918078645137242482986090295031157969565237925561501820095926224083241913408120681862836638055292147057620207354400955354145072860735624687990618333534000372556988425817657830843442049881087322618447592620662089398378374664915644699841189102108003421111753487312738270790950784834469925606149561533436488437199665054635279065580205645382615659573563421831751750366043152186440242381078965972639124053249809907313606394825469989192688589604238832263154412055779498619132130875784624333267255214754359524156337859165902190184328389260479554342300931966879779268772838773692504387664964510740347432912966410349406398817169921210560884869266943950571039453850578406740765329595246570056358810515550990086437832891579408743126135124260725945731225848593701172224523277054801023251339442703350017711001615306556880695793527663436540824657584202133143392769223775042631986411326762652648252207127240062235325434164647486218341107781901894043371465688402818336382850535791905402269379508397984284597242002108163649487261993962705481213625741665797993186177370708656629448075213672765524530418855554929966627046186960700584983547606380777453014615128025526915942545741315995593422406132551317443544661823614247911287245453679756167387533800865249435239449858076820193924337012737535509224677327857951096345017859473525757695282721268574753761049893322344315998266213070727804081946236369780413258205505105525257048936454658100446703301625686203927928237768949614445749242592784136579326209549612589463298695591501419626997786696986725351167608394798320611628236667265638377517370718313805448922822037416551841343059261338125215488236295710774331404420337232793026067257509848438792460821462240884295073411499833217540500435635174860721993360420498357046523011981209856505513836787462484960588330842857533514703825058820914967467501018007003817683114932854689207563397464061890513946206716996770524727958002404246121198169528692975792223247241075054991164604543182141226619645446848106067564221573932149468441166750842973097381853336989053902177366801522469389643422520237229726220019335009629534561356264684267529163126124776140657206252184058527647983809461253980500698228221150731041767519878241572778722917475766814545037762289517825676251676744847755548641982745352599147265553230465416724342223440916707983374649710854847228959711887583510735242867262322786034454520181733605260718717561255859631701761929656616825082477863964371478055472552957474276487974880654601204217793847072958246204461497946885591514065666148386640396596019394170755514201064876713948523741533594611793864270946731885408367807134027631230756687437735203023157705559093467223648229917506304280453326456271600004452400588594512124939957640952148020362426670540256337605007222153462612146469640966301898921473390070238935447354932781633015008086180348273272144107176495537321757858736247490630259909643466701249941294981101965817823768571706777746495811453012263788425659206287861335423439153071993096442067172677431261994368917177243923509635019043102343109526468834383056191977464318457283421100246968324622821834571783268209931863506515925650362725798950949333826417930611593222553785902083493816080210104063204069733395803373359806756930412502724212263609599714632999294234951182331259043679465489961513318671443585799110054061925488225574672602206993163527606961310896089248048721230684049833001216244230252987322165760538273375185626032957586267376054915014516057611810141605592472279350268324960865479064967952329158544287330201272633129612237189028318837443405187590795659265342036460572525621919566651166040429767749644613095042398693311290233461567770574264461452808337925115725044236867435278004924306463599593546371594835675381058299087041197200908449589259159350262690382096976970104013886008885531265520117345345852676588583899776016588362691931149545640232594618271389698117249940488956144188596011798947761615524238200096233156651533631407530087269574590010501720208714396232245956258269869626639941851444128053779376873914050822744995238120256754591953849329935051828082169054845101815282810167568968417619946127372469706315932578530314847962509615205004470675344855437741309845512076334631843175509464156033724646787551040750482123468061035775282677375491058046911642154484521704535533854827816375802991398306309114400587581998542951743082127766666778305588341946964404143266318474641669710326199183111392246141502022335306584540929168467488111213445121719035128010427275642819381942698915644197771188704503453922377033354251801277268735868693774941904924767556830571713271820300126526111497700819905477456975621473164428389558658180207243800087134668192800553779519824351457808024821116591625478205743030221774064837293017698040217650749275498599365210812158360228375189914949453443438686723635312827594288252196029753710008334996324996340270674180465511435056981879301932475663612529114750950299755524344492045674571034744553289239889724786293186068000965002892153444129823145175243130348225273045091490294473959947773156297246045001454687099096250330126917527855131911019363087865607978968274244754736074477100449478712553186829554900203427521240138173524926581644308423276834044877736907122053857894179737306871891784771345769380822655634443150466701125347185767882651562338327911366381491425675457939950785068746341477102670714985669392037557328036148768081024684338838894930826299445743502996585625817051628162891409480454256798540893224547936171415916458454645922683030514565162489424591305153221273335795396328363209839162040822847988868450775589055010916735124221967930221082013876248032966094222073510472837016686087617366207700654189341021088558345163602217227796445181153263445998645694622696445768018732472579036219668331791002627071166804105010268282444941141023310460485126867727562144604487612307727023138589299948166963434089423444245510613596231681314282048869046145621689050527897271393775961153679163504691756018412547392934618543037760296789620289694572112717134948918251690483764851597187721462859623470971155434860334627849442138683976174236550039964119943101480637363272678278933513863147413803153852666569939052159118865202557327887150138272357153410700932165477687973587181586413820249830496507971423131717177670087343017842192707896819649230925460273745716201965007406961720365267164389635354347449541912081841788671139418466554882027442211911952531831962640764291316075561843267228943820191218712945539395900465505995420468744845645576751326385285305637691036514089820416666929216669582683328080164329964317593159987191411766037466535412845356037604534826090752661610095333881634443863765851463384493837016373156253393839592469659404643742928632879091454002726535536914746685073281073384817969807105054103656316602189530563588329568220362429739963120009412124349839639416403478252940479447487631518446397012984376393643955005203413557018882178476232599750626356162562965477165356686467337268146408985158726236019866602120461979475158017988660768472635476987622818881212971383459127376316996422897998071972992645379915926167366813309702828938577810760938202056699544139699812078620610444988446951713466510561268502769271561540765933003584634710674390739531567171836705273330130644782164750736585125987791902827864853717278473395814309934247890832973485168741483817757054470343833576010114536519484318328488396636100177703205442519680070404438302206625865793551082335617864959982174752983328539774313370619414653254047146604137637424332122818134322117564808395829386178414905223303336416578805203246804451261270360933661017975437746015592963750195136202617706590912861611520079119200825326759986178698291008952632198040205115422263250099178659519035876586067983533959315351301444715790208623143030247986205532792984197502245676606430822435191669806326509309805915710062773616226427602172171482946965187673786242571773435054072211820083929884775717765440160008359088660405313814754627524383579033484182625663857847685477577149432103426429688347637536514295886564803236636419591775111800994273646046729924338466402398973781695627698053974035734204173035364634463881757173257676360013812647085798381018260459442602460771339829696690384357231503747221274549011785388594126940954802749289122756537186499298905264638019924175363163962584929496993226366616337068747680610900583589373357854824217339718570355420157745958552596642930180073872633194778212127944239522909239624341948970342487615204504731025142148563437524344266372077571337714632259360200107227103748523703876480327609741063857924504213234657285988506029670266955664475908360873109488073189966670013845933408567836206508032836473416595664659239595411393769542530650945812808894271931386827359057821740326928172746790903609127121297327619297729615534212315929089994624456952960772913442138010597330765667440430378676142356087047865941826133215809156608687412567754487573959628563699607454765147307086207425972451382285330704698460338421775490628885938345432876262475267043903157022966288574275078202052248945933031004767049294557563110334467980549109341840420480886217945808269188417400262503316446761999763257158811160023295975606907543061918341321549808227489182287040291876276554761782829501686072680923620704147286432428974020605057756159542134971427260947789272555653524151508319478511085262620220638543699133703774303484125278714206626512035761469502235595356567063290755115767250684138030063855908077334099237825110420191802724218404923343605831050454736280895550217528680477017868236558343389295337462370275376369307251367313434093975010230904262736351064599537888538355165544183882701303503089000244596132985003087481369170958551970503063124774362290426473505698590625567505829952920599866101189397236904127300443743793619088224653431898817437721714483734366624260521325374153917594232515747039634433504944996384129339728587832301069527583781935971058131642111627473305929984909861455768402478098665386149872171660315401679525594201442215623899407476990610407492172153404149633123689641830383219546560322371235778416450199252974254158333763442576238910572674232356742818103081635416399552027761190013683109959624962969425669700132953745842979418177323044413779990393244643114233408238961320063138376901116325715871259407127547972698175576758009296576038801094588642126538594300843220066205362932595089774366081151051084382591852578287408703703155001434368515043058006495443996094505891523403680567702762371224645985013991510970693278107680282232842665617227424590100043744795406507020498735157355736977298325616172419959433107096950521542619596722790843976989917176249962531995092728139321472205289040249124590860013762834004490507991361778864454066850159827279357489466082404311712034918412896367893337535803755135860454595589698742937711555882887419890802606973765852414996065454854814092930381320834654553239685331059613146870749579755897033292836759801328579296489270129090504725822507957769117515922590587907292513725115480249281749171464634235861447274442543585910124390307958122014821120964174786787787730429066797780536602198412292700910895361095207602719838799602443857238714916018080497809760998328300380491455289685411173093272908409746632355912150184992993370020919304917012007897559653865514159603361651173412196158574571462805917562516333604187204210347129077420637254791203265088520518478901453212058555744390608899365580143023566037470045427969935313757652595778242011349723831092459135306078342733956676367703118094496704827547491469515050580303489560972770523342767634102072009735648878098360344346044099924377109870941625937105020511527553949677971924592189441886574088347345342477651643427351109101960697954507058622180456960352587686398161937661650013324390722277552439110035528781926555191809114744906197329214776722155184221057934393523524084626001258101957377211555729929811049675502347412994983085757408108218912501852745766140006971107351271395371172839367469099174599600201834645924032696792054432057108952735207020846379464356315081305173658351177209308643185027356403688145274439880672137747196845057715310325628366507416691987277651932408343952403609343943758863120939953700444705577884020640130358612538807495260038082976267657275550417818662258406031968764402773760974757469546521832119798353437075471607807563255225350436584243411169902769404617012906681649651760156353915282049653896780971886753637378361089490258383051631682973423291452861194700483629974677049685158339870263242617134668901976796311773532278064914135144832474574865940798050645649325371975273334410470677065919463111301707581324254608357779599585210188025905910034722718381678881023200913307327953906813278688242101598509361443113711782372938608329746889374483773202089502720943844624797830281649605421341961981753636128622252296408709308107952294018124608716925560915687770753404316811353637625540003519562702012213636036430089309499278879785773637516523649042174156637769831587678568078920297276138892993016720376405605674726107043219789216820448999331953415730969099926063975091322270170415889548244437939735285730137584890114244749375089217355943627796515145367150012043615188956468671618811503363482662567649961396025334867171537765009392426752104471046254247349686227990699659688016201545098181349888185828830093008394751018147333804846321016328789703128886986243034567458012086890231759920324976722982992657498422682254171345755752503782536320447460208385559142325688097336722756763722248515954693369555826188267770572788587745040148186654872415794720624365012795242390282342945427615011396951366237215303761585043764528574294130080781301303065210632014954530810616617882319213210991268309284436177631875710412190712066256438976482146804389721021723634226757463605819516427033437200227909918171155564400763989400034464360185291425119748418930820877048074905318999513905874775371101450068077420959597530638131108357277524663936469338170449073779451067599865061982437976649743060427250759797826159708417891227751435797892012839210539834924021041109776511877470674916382792119636723977924186168230569252672101732269168704822288241016700367744032797574607771872089212499195469793926453360665016010835182906950442283711808918409216564959255967240260520994707274336304048987495328912700501389303112960345011194728006573961823517812610456802834568529141238178488644081048298187747273053180640941644479425774102732890090586998488433729196587045132281199820862634435335789234802736157014685629677656762221164205357744154662767716930067494844381357003827145639644781107365360148644891203167386061057856392859430671854315252330972020385434776557178531794796471848049075541513045619941909405047380422370298538929593408895068715468108574857463785985267566915063153422767193083748453851172018627325922343899855430917444828604369678731046173006186771321739517876140055993583601565515368726672035169194249893409545530890611068165552104172654453049071486918068306459184715198991301946262103806954928928541089460674978654551546137179728560788458904939201915868336521075819589535830231976406904054712926399159603825485753839525395434055102579659992926037617419166350615999500384385638102829392801659219122145914648814596496316340134546770568531559838732691403651592953758967323703113861179004096548256240223943626657765338196837829982421330744303060921335267838610875376098666107332736573988874845301708979495966747784537698920787577480399137011375774040735183748066672429521696399468196376117356202402923072624414056861511061217704653124416446710763389399780425820006780893758919660422049668018306921514985739335117239340124088821986366244739427234393450145189199294587754986296074556603587487321482891046652480080051312184037420269463046397031831992154635016828053722858785794592995249972271430050654011424711754672838558408200315626315938876541523045369497757606899836184590311248951520725069187296800773014220234260370805160733320507395508797230074251492131706568941547294981259062866615117919151378577120231341747594643568129695343193428660240456419232106670513718861053349056646453860427947588360774082350378357638763520198986096147057816447294286981249316973061565745585101118294867895258400147769023589560181720561411618361751882604116236435842843619259100285713427083241399968041214839255780058826322188725147471645108369177050833872028860815249067769176427857974478266672702498789908009991593646674593979920175677461870786401912280951560107723790869356045733245521429819767648971013504555159415046764118193053500862118935835819909780881555186073049333627522093239642626382518580346759998854394625750573700541362461543212692369853516779892886010633861196029031155072066970894117889237045827767523553721651181114425686035369104622463154953782209669110623644934997006781305417031404906577632257167144014035187446645064905485954410862148199679634014352500708159945101485742071504904753284292615924083766313803516248959322651895898066056368755469436699867909321469884065561327871944708110517772483005500234210199230736695358692168050690852202597156723354530067748279247263079976628203833186016780533810316563335167990455483186872323419063912203994543392330515576173090617463751612367510166213016396254574301684894328564259156381058392936143903243538870237980188147391678392217528849005966825497818668790864960564265278482274539338365238179981350132299890700836076710514020351697378923714654852185245648613792753922387392199398428410490640734008753257446631715695571288574307091228862927938921268918871598599343095713866745235565109824920267543316618146536113646456885233648490248259094510398190785245649386230107196616225101235829577024291425028880678843003598003176956648580743300554660866638655978038748196365627092899904739344412529008128513660380765337112199995486206576845889122148481896930062041548135920012296293745627595538333586373885355009175520130036402547881286907957231495621319391860645435872665577798018742843655073841872760568484846228583802028545581562983537120457913792545439199108224553029148597792900958479580752867756664180670520362596469725862883194144043351044050206137219781577540648157884034449256317384571513628698126286546915328321569377578016157221668559343866638291535315007673103520284416535689145975170101371573670089860703091865363237385306334054610367226109278213613052964296515606105967846806362111459618212278390393477988202380719177440200990561743075073839537238618140472988567676713287240275148544262850044672213160302599822073963774525728629145788981128375620930981897077121069838127027447484645133551873807615859757645574034768452549101683000441135301957360181077352411934995494970120125977080153600198551471454299764153345432297241310992865116469130346812989686825654068078937241445277213020519354036222580498045750249924119100885541342355942759117854328872824303055133546408147298733445338079093350059724635417075415071906610860556059796671353392678195854812849327563340788232648524617446022904925261349816148438187853880957824579981459321507692515643610798136373627851553213372754624291722905373966466874640212697514105184056936439274725477130378345739880099959334415434658543910862893775892918223831814531485769173386246453948601594386296102786915788232400685731281702954058650380715676174016073173259443982347638668575957450434742572930995204346829846237084964920106857065630003208397740107851568941965054823592828634248677637142452174845293864299806224778860740511460514315975862371370163852201461270881867657611904248448488179683845818409678771504392400984116240437114608433974033832297168176594772199392405594479713944774161070280815542487228772148456768248050598340820408892532927422844527734980082408362830956862417620193814776965880600378949034613048361732488151258211753006332357649413949579668381196731582040821882981628432543026972766881590935124514083551277910485779772474202466751822164054721500075609143155789299970541261804477728243769848279480750761561626819961624652562524089210306306990023868558955921491280092797750146298338484674438070883148281821011714304491102576958075292906496795404563928694930606842670228243386452983459750108839615335583098549783727400634214922170708108037704546223209494988171232579863439506517365435550153203665004462330470310353189085388228462486776532546100048983545163862198254285758474155312322406323434445094815487276939755468592629516702792115612848388477189270315686941068804864727723285297304588640464009785232199672798845330093923376698657634090930541651626783076862941270789565735213775634467492813550989777342034254421675694510617341909296262509077281732173867796936864440059795980935964852285688061290027033090988325007429099775378266203380102738993694765712333142647057180120468374144167950642344722230337820959467479646200510698585623368866758086827004272517411813186597948919393856857411221831647193740953404131985486360267174421544015156811921494719706520294530197504701620094843374404972629453138965811885161682949969573515177678939178941702272032013797020030785790386289036543434937645166930971623590540060947323926895774266483748488262556753256012163787356534039241733175715303969848374592583397669844667017857676585015914865172089452625095096614586563471604376151222672346522345496691832610658432992324688115515906530789336056178669665556562090746841566821132005545923871101119968038928803860551284691467421825326770450950839730797983866087445919172939196080835767893213414529274493225042137860364491068826161613087092213036887013358877169696982757245312760073055324527693343707639408506640458951059791358642660397125406183019883297600289712853516936659022987152936448863428335707200176076577693985392679692118327154901827226607061479791397235038124659297664491612042388949593620897934553022088696350314170818599279701283825611780460892091865846980779805799134662357915775721803087856670013466695854546431427270470472141670597288417127123807784633788252057533165666009031407596987017443949291234550096680990945562842791780804753333032140486941402207614509935514731416974093372170278999568966402454996359906588669196100650799861069366198410747008184667944037508246154266420893913799743716224741312704018077807623152683860988946703370931434264799067716162890579561028892997497453029997383072073552184310301689426582639661325255574328262947858890344108058458245901533713635878506405668965275034486185631423860288306226485667285123958015604375753816467649469829045794359461024712299018604481798395212585332231434598838391988224860930496345660561173533193149103381290261367987612117031091867156523285165976927890886425005708034738662463226112883384840292878225554243584806347614047812095524043449639071831311997089653078083053468682856036180726235724268711252217250233060646510149367138801827495126199236030717026213491744051141008949440552964752651301308269300577618200936517528492785685358782457947731465765039055972053561438280262229480592167693648824752642633111705700283431613259932309700472968462563751668064484699102597547672107243723224321522675733600785442685461730541582948634058687084307760617771045284953916780520302460452818716652745477887876944550544543133979416131684937706657855674638294909250797958996841941592317335282595423151464587831727679827467045385083847261291187835474870915825795501933597522182413380691395253016146940635670177139132057217822320787667840931979127039513710504885758525595705230939685940103509510484410995696994893320807838146365093670346039124831431866548675595896094727962264688427336274082484460715410347799950591899822755676493227069664520760025699829878627699351660186113872600474177714229683308803362499144188984225753318374592740089373912228335241644075064043929869865071057315937276947164962000405463253401350649476904342117959039073523926957604114403989142479075849076937833681125465803678792871317662148249157207506348402023067448928344742770954613458646620778772507302296397020322864860037963427544942314207358319589546690915848067050418032735581786086543609611834659006652841675437790508586026436515251589578079536689058664468363378802598491406493203929346845670099854673721712741862203061442294425217375833037914379061248844464198792098767459439425384814380842136966652878203582108530259533280057040330660725485637627669160500431223328146493761724408686456723167546621028400787331120236827630692594039771438790099498385981385749973464269621989981785040894725043385221461581863717741602357186897894666390040784653384948946138288019032796026931117642990914126574728493348659943165958412092894336442274803578534700940327736855141521210535868813595672047286302066462489776672791367364824592004737464670173349643405564082609420525108075416363578204671621910055799648821471613423702370229341533006758435755399600636294297768680128539345287689911085554067335742696972091666966091439363561289552786715762621732503971675940039947300049946629613811638443070611430419035070296695964371354941160201169429007655473662578856669251695330933605664163290135421279728348114471512562250558102908228175976032019843456950517099295184959370009861570077966109646914433406758791910181228954605402410233845676114028630555492485476747629361326774772644636145405843049584370261950001518828137886411443549454982658936670790532047677670151954629033439715196566648369820111526742358304293376943165798183820402121517334841240435520188992142815981349076289504118814536817852933166117271326806478910526665904275373679344460785813651612107872002283656467337567366596980589283572396194645713899660276738034300066451442163958922952219062064126490260732940259768704661713954396554467287978493890479480856170812453057591186368639403110108956652145013351908095873470784271369024274155930571776622351534200571939690369699677033166885938234095042701740777866534065787229173227039515836323764190888484125305795995014133200631680620850330557421511938878354307825709951925180889313662149855172634424836353626640029361818500702545251461322242301093997694374989552048422897649226458874912994305669675501303209766470341358423644498609491496004797013066917806551558961871612432839207191912647242646476728620767772119177662208764816007516671874568665468646931406921880290165365945513474426479206366378280011046563257430412004826012688865304902841182718266683441342874497969357279631188401068377418481986054765122518708537349948444797099999911612571204169923553273449618142381488311230304104516116362282650039730494406536194461711312594143348325499905014429949854832998776283354939451326128614186567105115453183164035870983412135915827622962195150322933072766968291951578175008404162901077224475700841395775633184531306231272246573197495224953569069137984849486262726977198082273731115901261830021607412596549142323633686189715295641360773340282164911904424107958380547687142410531608333071489950233014975522786642987673111262775159035028747007169704758827672611997734696735870918784359098277320232822258911469406507394551589857235069043044300222836357082935524294201714158816114748432692560013935319310274577817005740394951311904777028098804192744427835979458235306629344390570733427917879415371663784690284206075120665648178095074938633786048847766157067173187095898681736303819514491919834471133620829792247537515860758244377948989541114071613106007249757079444564591562126616954351744638697064199107468741485109242422645790080525270736723033885358354068193141404539011964304275973872645390580328158474153357108336305861243241291227287417219571642881367860215099483788606586564375186668205846584042675309361438687684674751467177269655638011429294754688257615359073557307377902044628935468375102265151993790266688175070211501308214789807222750284180705419557564045631801941860379907070766157219694841233170463063431903029430983564815208824597954915466875828383083925970725078774747607752223587644211842105801283477037251466496708134859350228459157320297193684683274930932911382513218633717802132268570954731305725020725627212424074029317979669006772204560438255010895717420402025873633475296272150389366081787596473339856259273129880672885497110933400236567098444847758232194949699824241391336755447889647959375716785232466146596487189329509221829643242042554286639838946520651034837883099353947450747627598283336374855206048539409943870942434443896269218809333050436884131064386395918811288729457696756432060784955211651378245677010921854272766725525780659234040171044085173013158346589678203766880038754241331331393194268368351012657287439887493261665875294165943175319143372773214459370268111178124002532590022011983788604440817873209465758625652700576806692623611680464303740199340176890294880490681511384153549602536295537175712001543237484357787429401054499974797619762267826667698336262156395046343108745877034326547784616661686285122840344196403044290545164236584410967399974009575608866025473562299914788976281979937070261472608544981665398939385823737368897405091982935416596950800451077441276404930515943536362350210151273029057032392772303934569592211955444273275711388556838624939858119503377793862380955828241490629203536092652334836780351779145474809413873165628906759197188718755700752118076350110997236688092090052659878218578115507448073831984821923417546510025081299072254053320491840695323216517822832757345029317990790144254084737565541694173243309469709479235635512561084532010216700106666931369615552437888321771879737690919570039383196265042567630459660046588174408925459340429731406157567173532322368876973567643078093659297660714659729756935913445658727067482162197134684494353032650770190849408330569161440638917561297225220272091707191126813543163480712769295957004809862950296160065381928780732600148210920557094727009417511577836022698947760884907495448356700571081753386211247760223529931855504437654148046376330755074610540539846312617292717128503558466134464825460315858323781932819288998078531295363064923413415945114686240588474402442049801499655230227119232093212951107788470285378353960245464666493182019442192607446047131846441151889169827612609877920339066566506078789019640072497666240727868373913503924787921623726474927399892701095376843344679481750811168806606441232229241594382991662479120438285605888573819189138676288975901581747845365405588765835203657049255537891192192305583507993357544946458684645285603451510494374567245150434202216875287929981003307142881486460477875593572299353406069718877781588438614693463568514653654559709016371105839888053431601362880437048084843860216159533681387568590589006230695594201708690996094073462681170666345064326960687661306438868403094515348240923158207032757736048018418537094782183629736133466834715696303423182180603653321100096654194248855049560768291360890439579964612170646530694080456327744038485773563210287669112442749456193733105582331618882534761638832652168738720317914307983703497469668520197540348467752917770315352796606648858679239349807088563521305062374179722719547552442871375477009488010300271113328395710309734592404335715853480276782112653173173252889697160943721987230521890873303659808420604354949481944607656225787828809087949918206991147667441850337645066743654491900672075872786974477139577127722827300544359807404651565453284921536063515267007415940765345229666018794870855682764041138803934495247488773242274142001996066231837111424577379235113022130033490520458353572583094325976429219813126805741503698314852059654976095059738563116023970635093143101439909048357768232395413127673662414693925213142004767614737420451481743586778568794315905923782913343874325501591516810858160377227165018397095883585128126679960060436982744447169647280262022409118676655764942354043904696893504145020643972515484853766788874686757802115676484833692792085440210318180832061816737490887245973569342458438846221027451190921147215814709319037823821972906172441543936513956480739901821893888521653287193116147770759856208247440783483894422998446278232650920146742280351554268406959552824318698798689224019548189135284633268842381631772068150414507766464562429097564308091421805169407106557251216864600557395510408963856772246380271183391185284774305260378983603147235413662323748294493275936514567238143777199686641979829093602885851728377527837810400461854751437027403601126960353987790102316268001341572962068581891879891624159655645010892375902367635431781069642674324452615398217471418808248140099950379938640992914259113269237347684752733774784306891925657367310970937439513221087020675675340661527636069231738721793570190730923238568027609407774600341613192095868777372701860465519802699391529125427314958893616840062597353592825957506941542192931308285765475761491576834642553459771246803835750113572517769126393538867403236204868330681788678101065081842117067546595138650341543020222274552880021717890326721845117793171769025827433328383873856202287507335890159245444593217108437848350240065927782545668447451183757393904546466198613509632776006526149147834030217159926602115513596720775072165797890016915182176626920737223482895788990312719770027715662997212737841436342859866086147855995633894659607555617829092026109939923266048738294434987335634752609742017471302123289759027051351235981858268965779138127450206791002574231527941600856522869928127838791135661074373919624230073455613608840101267485384479430690049836856640956145413610798625176054857919102261579826065037521768426116438493610825116451736862645676078707490870314354743665978392941426847112390622832824018804870416909586681871774192682879262892814360276837893712638325293279951880174102146545462720611340889372305309237992758046134516968552755074514736202443090292625272623546612211516243799675890797801485645506674571311073267693888233220582433063169115019511837699566801565274013494755994297306384298109305298208100751409340789476899177096043480740849151864270896555123663497620521398863661926251129541591528143738650414692019245197342203325382072118687298908493570456006845108315757047366561194886936490864015091228199426707084606089749135575221032326002002049308462411589592822513866509014860380641096079358577553538257680714269193617268443387495816772844986426048523483039884971625012402057807298792726850318684150270888284340208036089535481577576117310423089712403245750539549671958602337242406564309246737607279884413547965656526136247357388460143171287510665824581677067136466209790723056272473434973728046572284014658568684560666532267047938334345002995258780727507914493127201195185562385899248461440894684826813265686586871583941714287852683386117214136860730461168913929483318040670093335446692474747089410082074189706959930824792458541833774522519072467701583479969056609350648285671658301776697068610150132261869149007747642528604114764746895395444999105254172240379208388113537946917501300562183461953124304436811823992006672746249109561328106157677612501339952797332382042511689769663168537753145969081813430934408482697312597881843922992427892662060480204546765348693742839034538667297778078450807327611360981553884436302354398947780162403627067164259773668768226345069799160647805866631190164385014608786742431011373423136985527501247523408641625402206861641814557412838927057750880244846944766965949949888524911954132930314774592014240593704958660338345124884031157135425465630383936539411724059161769285512582996325674656727973525202662996816672707066525145194182666007925019458211120097873155074542395653184037380363029617162836191164848927649442207701679584916879727393918827110451030697109027175691803345984766391228996046212543453598598991485924702667359283860840646354577163830181152581435939333856256133324040654304540864306830856248940946157856562641279340465339759300441826123020208352737954717755527125082238180777734057043749498282141637974865038319369409270751650343564542674488447664179605893357497474224432763588151046488553881124532793065037866413095306805995844904756618981673432635434000754968670435821723832255985641110137706417078496193328449567439067980529555043694264742255190453549498106784936152482472555100968002014658718197597094726521028424846651892421981047963108059411728081765766953756303165016169114330701704412028016108478450027937453171000651114680906908176408975549957418027834887741727907185640211023548219885709325946385119283473195463036621766512899513552211056086249064454702950710908393760963412987424375383022047166210909597093584801592507978529576515404495111958669767527223491702744150863287662966100537679868579747744538125740033846303300823620856952910431207440383282089016099975382415140324462409255073642256414374034546480355695440205299247032580713371882551096923657941507290931269324059813676100963560165645683925028098715660959364667382758753008191351595492228285040417667748099884650648010144968269932236469554648994028935587023552284743327678964105323354261302535868901312599169206700411883793408528143343394531571037563664572010993698716590371592161089738237318463285485636087753373286381895896580367940929144777977135164606923001991541473831516723258305079426886732147427889643774775945113747749779594596255365290344456976359292885801099096863163885559468142109141548065827162277146380565979848365997489682796682870096566088069663853389569116809595386192529705342317754253866264656956489394788991222808343303009681856611389293960248977599041440852945397522411733751379182035765409640981120370689677717184519782782174303388119434641746891270133539339135978421814777683743802664992536183419298227295609508007318492317117288591719395991107614187629873483776392183674977234627550452640818355902332555213469919385076828892300021855855719030214074947055399000810083721835877249777297536123931692094996081757103310955030747470437518339729290218176213085529638809618396000877563428689481760283823944492221935618678904912528882427669566915936327981845210087831051828897497798684207762389426086005851410819434706991767994969010569144804024886471023713026836741025492462800841817066738488934339838658295816226221134643898640416522527968736204112290063600935946061390226273583861031358150010997704837940542675351887527012789050335892745770392993535960196760251027721114237272316079788795761376163031568581243195314095088395256781024318010838964865935462353737228393115586149572150077459184067792087131754077450483698117432019235770802899086794213377847060156929464753407574891662297201555325562831103056460615984304817442113718631037747131202143505699594613463643846530963068958113771391192258281186937047062767531519024406433869242321852570337952946775689628028450985022927733091304103935514512163740775017516518760312371514074552271203876124275954311577528380615580578290344250396601181007755862343403612729040070701331455895720992452275351164429129315939562790079267917755459970994995057537994535708176006290691683302916977437305473937314848441169793385772292442759049667085144531400178075940364025963412295152213575351769704776670855557431757484768208008790606587026166383701084554655598339613365828913161263381326405572916604975391194542625834029301544235696849276090203263195067306133794733670136914495073517794127308494676403270043395404995290390492324707283129759482001456645729284059673043162870793565371092393737259734384064028909044270989229119229269278023084479144834888272777044565527047735773402520090421197333260611741630285427581520692872414293599939347041601922739085959085996512530547305394906247485657832162579286876576839992609188832302687295492400129685338122115876816637536934484411996186982505920416398165336685706118441825028718802253492152388313188429127647861910073323707779866174266637814180950143559928944971021165009506742351725450835425187407630837679161507419227939673209785251262122889993237915694612792396175245720628040977717384094655146789487621268276279742110009540941283219618116844097923133218590440981395888475204029547454307287393837905140288689600834619308460446062907094694822061083347719984850726307350234125984738885389031209511586947248104482491404162706974687116158345730877877670429022679487605387304619990622627498632871619268993020395436808287999785066319458111351622001835692094579017041033364469943823661675865923523130700440474066010621302284202595916436513894220275995535863886844704367085019927827047428979416213254604898274740196271022700375120457128078851075561474647614418119402954439294492079339198014490611760081722900865449980910504832981611096138788896510106519804690433028790654838789222633886646608594120147001916663934863486266101793325086654978661520070200001637714760404084100207365764446940269475872923937190027828827858884064331413107643985710415022943168923542393746509341809249848261004608162372309181258342972314343876127561352099411273016373983327734585415567426618555210584515440645851198478723530285453594168659685878106088536071142668224311351369744493577874149334242268030476783506347201506686549284058073771969281396401174096115244742873598441151568659735211981605839775276264071102274122746818594705032340966513997748917215835867230133359409933562814156174756231362784076863004934846156549748560502162950615980031490909549803072153404979676052467079516275128881784045047650575685304211334663690489291092852436517544034549204397054476435716512596912965584809219193338036318323853907694440416375831485312824927959084455294797515090933244933238812261622452244232995415106193536546967924465430113519431441248024690886484369947869165370775998517156816197749795276935455323389676453744039429975537438081679033711795217932923939628305704696799696274898683510665713151997492380103595456985225108964838735694439508562444620633028570329644558781962233125938160614190868179831033448206420483408805440774279619295807288650256292992654947120880820592924955488054178642721549682132294775128748501759380248872884573380583252120156164669442144645112863293273021647201709764570977496901914244124385054642489588191842848930633077435003366767367540236665907318190140152619393966258561276194658642197541146773735308698042151925356356091004922809555963964118665223609022594665536854313703604264541207042509826007082988026455539706770507853604893270109463322001082691659307056092124703132695336765031610072919495326853358102244765851203166708408983726458418601278935677476670975411058429446858678469460715922990262073587358142080434351368032925116189690487199684776008067288212189289199906730288221404691233585341830267439405437634995200236907511356253790781244995299183720306475123844526829586280968016679827189497692420992640987241873721447709253674537368153089276140292082780052214288492018427413815719853199017499086299043497640792956030565095496344073108657187436966211121257911936661167888215590099932854189173375185420505813682834826322218392733009849483642185870166370741776464932623756981777745571577994568121976114456544912654222299371380487842291864593193751356319826365332732176903974296574864540903947084949769415065087090782889546891783403596251162538668457880298330167902722759263942499803572629146074710168893525179777526979662351242730636725555199473512906044729244020226293391351966778473150685101032769843143831703904944853554512404426626767169797423520501302405007794429560720154434761531663045404753342359455915684714740323285450110826335820107851269539845644998482359318217104659919505569309536391333580869528385026801970364191994842984677930264136818592852240987014916111797566707006488034378290778414328868884814086892691649862761570412879838566828544159375043065808882632140809534384628335121997127849162179299556420862769017889626582530066531993285344896486691458378793648559919576103520477309706411490528525368801164568600382017192473618892380784476698744274558619852579827823376448462373774721249490772178980743718286988348906894846478627514790420972882554793940677397306859356140337901293058627470070563507451048286274953044138069641509178998986614862377143225576505166106409684163647227698149126921752194630539440026586079076447269446782637495630799517014420573591415448549090948585187603253715435213767300940594319241130693647639458156187055212850801700459363673685086134927320230689310546702650177348712121851856631740786323379241621515407273250483530274698693846248179805705593332565542828566341770881620090040265430715066444748245196268101887816245630199169425821666011872660983711480211149153168090273885200977407585565923941500870265655560405286317440878828528401366823427010773460096196268914614211934207934372045372057571271267666097334220183570314430109520643686417455683273708389451472896651089249334001844287350349072189396333282636283179866012012568815497243840196934527808989331461290947235240202585242574584299862630107723841414337554429318575580660186227870129338823355900462914829186538613984170348717408119500687659182652531057934261309711917396773843650433034968457866512267342805908549301946434202726989533448099050505964758617447744553031896829785090368164206331580983573806936486802102284056883406622418703826035513607077591112515041328383626080512589572224475314223691585479336416521047453179412468129159334651279906673747487094839709369098862853732389082722703996597642529888788501420683568852704289167260525749917479459381815312060018546070960457696561016975438879195170368769113477229783562069465021869397856424860068053939384703562813957678214849717003889090986505381965375693156584881025293548323667173540430736754530996989852144589032536533528877194536713385978670380583861523135427055560668942030788999129980344500070797485268996154979954688353397057261676798858875798840897519974404304250460317186152367614440241305367317038291481289734081157907527250907830441638666071368385955314554611503279805238835330660724365059243790087214283524853358772846082912630180269941425736703353056805966048882972904220588897722260210885991665587768550272286098296621241956391193911072084332708889654184940995667938394105387852882868940330914820925546878560713687473798972607538207242380452792298871591019939875346058076634178848157151140086485219505611701100147699632256603607832126905529268925736487628194883419701918855291257872021857095010382562683842052489617604789791545370244078881941365051065090898375293180064077735238885290493488273458719949693436573842095265755147437135484831808569964392760732843082381498541793469027925671323370042607746444346283572308300867320332834141099534081610635974786643603940511503857885789342954174835860500777519612176806644862810469166903590492159647462796966118420521110200749064418335557351446493666740929373407035905453218072495634093909052983451614040843529485671701797355998615234622068407573105439820463145663296331675791598189488904314396599769001575021359205284787026133471953085640432882530563550878695639518807740343104346719457660565249576941277142677876644459765611038307546128910104707392264945157985164302471974377137773903766535945722008253668029013391307673866204989494472552605163362725060496236552714016482931455500504048027789434279958616818751013247915001681962014193695193786421128101276044384977409681809694262561913107479166022798638423393707781070216561530814435944149908827394233170873512827763677456501199622941227138812269084266958522197908419815436477143315134509470255186929586645333321808637657877453284450557911234618036541778496763351178407155889476552392264388004533965294160207923555032278350608729960915982277481204674634451677799726049768167096883096218189209878620329768832863576354563608089299366919313251129551897264830491761510958191582752347402008760184379506403428133897518712528550991428602277160760322371493821363524074407790383247820588264963514981221661637069418628537399266890545383517063046762763054834684002455938686797277127573940638716898330516823253371368823741621427065195914538541675906386442019038945326727496821557150394672624432921857863817656016053957807603070943735772535226018922554845941419712968429136423034426574694661925810091161752697504923162947871606247805783450573245115540069031060466273620751347388825338027920613468401275949505959317051918258996300010259012320472453481119577045327858508610074177928281396201270842014841379667337106459209422255368001350424819069899083067456134912102150442488216326153423952234934433527280104225738786809538876040913193682561690859673932230426208676609731507123015804396026458779612770476707658050481633267035560622968913345418743755081991647076249200153286140557037532098351134809916215270617462389058298911329292856135288844020578610106431560155408651503305128189037294845548033175204745449128064433175724780028719330239652734177704408692974660415071923461334556809182795022489752166243439923586570811359000753299920688026640827676354080842626689129639478986465074568197623289558174812568440581176595986061591665219473089625455379025697529640759543957659962222510271454899958370436134661313024903178863890076896532540758955355038516969758657444655597571737644673031151162975633558304249646303022127318659442242052751425826822863936536553993018069654099386782742759195958830310896161758328410890866839468375663105416814376345245397915348129021532399055431091488248440434580503039060999415148130161765500208075529227929431883369162831162957278295682957546614895657321413920163668513249151732015991998861891951967663424416811735880544324651762842256440930079365405628909721269978419710381020975576056345077610973275161123299880816999650939509021081453046344586731016105916003930486825364303639114333716809831252499210212358595411778953188599040133479436480744554947495414001063604905522270722115468502737507882401933376655340344890469220219540019824864303336409307112091315114943857898630721529751950877343127801046800947033442496198418853823667047417693429737555059359932957208841553971980016537155026116111614410680067024902625452244513562809660837456683159373244337903021952630523286107752063074811033706342594642563693930902237671065526605517765550280565074456577366818897560689322913052685671235697868458206437534943062806053372912113155707291267951735595225228712349301029541091020949249817222520891552363395471193495906514730029955486694081407573328619739851039936846158699726225284209161178371238314986217871001324999695665122034558380084909351811684680888798574492136293310130431061293855173844451089829904096407435041965615980821483892822430663705205589994676068628375988697315745506749278013465162089985288569183243400081087787212654822866661518961159843871645560973939605524579999165569754075941427208949260519213064560489641976941086992932724259008690673668581102367321491893375088424733683895189357830338890817990889141525493387939794602724846499713218652366675576629309953005756097215353322933839735295333766423758021632750471085429120848791563356900317684054853962308165117168554653812259387347079355110793889894334269599802446263560093706883973541509002676656195680998739610520536261071443921097418005978650956491476529786368627021589807595029723108322926876464942605855096437000737859143138069784915825015335100907558063161770295222190713530793994802471049918084195557494752515537179556380700210661266057452743158493704530971518770094501812663353838200421363103248538768788931729762248254115105045919828371655064920280838933460414063217499919685803529805667029354113707583555356782001239186043995790560728401832101711879885918772547688547655374770313369652009134062850019299610759450313646277274948395312731875771008258199849701844462744834823560507379325120507676081437405134024118220567690847498483605583775458105416629988714218140832027425186388611065615405558937558302281795601517920761662510246586731422303329674838277140754499301841757840523419510887530510744883155492799959182016605905754627930829545787814813023072958650264221615944694921691127284716209100939015868196845466540198019928401940618251473835408754314883134090962875641790938131724924071922307758514978167313126733490391007993930521182473923184963714648431228733212289423676814143901816623534912779256270995110891819386700903189724297273116157106264561602248556807066345922017142827498977264496754332230866653410823412431450338906215384380114006117509216309801494914629035853946589525983314654433864558161701926732082893340077321049410806720002207774915098179494456648147043828340461237764218925099063046243987552475162419415552209101399822760803853489493631285707111407993559671959408481535958470577366017153175024075577488649042710263476002933258319765275979556666198980137562163296689876303118686171598389886162054748439948085241808101605649773619015415333858175877313915496329290284322081008326446867358288624034131078468528070975314927785414989930579548973334186271164854650461909807507101759075771928028259134576861566700271675598667428245845097658696545849788784069808912633355010996548491269938763153265023473829568876695525639319523888472927648187318724903221732309912603574838274616333348522346593333509194394805388790856802954825572764802215387103474564067671331168149487320746165657060608726811258692992560395937294571022299181448115801902652307991159967786690295409649877597131056530127209753101001740867955524555974559727042524263500328624191270172075523694963111861624936201842611466324012619392035149900217432053803039794137194870481127311585299850883945680492288804450872761956933116426010139236523382821246810801275312926970026622983909742744698130315493026633439040634653833839528284123157279822454575109704911948363448545279228571195806713023721879725461784796546412700370278526736788536093725939557357580364061939527983509276683661006684052007854739084114197470668547391465988485542254874294021034995022890525401607733284981494298595776050348743073112091361566106988993098920374635038083484519038115366419926856018189729890251665023601908327317607896729222683331099234275506032923033114087869797225189907787844796609832000698093367835543322407466954303560542044748894034701254664067577063785521057619608630074937375153062133218110691711933166661742653833317764568329040290359423450610075630663530218046794909133033033280829132756741649063599515058201322493508133683401701472453806583435687679378256540002968770695416406095961569916405274312142450847471329396088268654376580382290916593475552429480812444894789580661150013352502207080188476239778233860202426798532031607672509587278238583520770976929038724902886075487637787571159497657518346559331370359053700485348767631208197773104388587002956414070326679059640075803353729431724548614904557857329551782305059428562063558846834156176715346999644776886298158711238533201739805570473517443284209771165597838542200782553191495136230632888102270390607165362543185764144809400097364405324419222248041817534369301609405865184664810084340547280411969023389516471246811308284626854087325816704310150978983114381998512197779821522189355086984819246311697554155894574289772309367783907312730625891360368207434130727824532518960612163904678190452464672457638963046373802560280821561189994418823370544620866571940364181552059095315550415689656532346287066028810148786470593853940686775122132189192275421286717148020122326297959051690091625090575500990830085096564078816581409453327613014264395464795449746296801592891259151697167950809036527665230390157947336034423993611197021215525306520562055271702218852669581862064106140601192621066585608592213110784234746967466728639103621795156907964534260048177498039516526391345655978618035891240641406967501344425755381808216356221274550504993308463342660687199166179767358257602366130613375035171403875626510463836725770235215591335282518002098870031252303110956658626369230467320540648986344425748689750431259705497166389916192770325259632946647366576451045575710566287740639469354481706270708505526050078299707555692227813428699305752922688172342326134073234395308064911148853835208726439953021482883296022493010519293915320380101415427117394364574106801208099184969376670199623854659985455051085051906381035548954077938568193402779030373761244857800555258568040712518309209112111037996223012884550276373864303463420800060760493761048232901519058468050856875648939335564832667717046248499725545005540218056690513033079765746450156258134937339204424769592899500865000314260193450078873609143645388834417403707810925638783369450759136197056070740814307999307081224985242056157156313538969992734529916003033723780611740337906347074976098287570208641933217638278219080068707865709343278076716276836327535059620719420891347203931063794690545711542217871858481526490153900143475263210595678361800024977716878251421224045189069248270027063320914690464332024452954782087541564064930462756958097963496208928081243744659581439234824735608896260791289939642015208378969814501205289848269458551948927585514958109624217116445920347608120367542151956804342198788504132017502959490144176199551003401969733829783595850982613781771516604617929418292087145732646749776111063420786714824076604739986120285095775796192193387653170682223598002378654902263569295579542342645214265456866560168374472615095408293222313066814266173037760600229823806315075554680324459674684901397939711036336425415238219510881030419141390852056345131604684466221882167052167935089376701560840412985195114420493198507313053484998526694931605215688149956513505268607935482385650191103904956767753568977056769115377104709108337103453324819720787847609641163227238115003981056251344171136364904092252147002652456967677911416879230181122310358070609681315925403932837610980353767787359422688276086095152240107351824124347907610345754979619910167352526324551064280005304121928990681349827015875328696736121851944517708239549885235911111231927368582840682769564510550362468990709156094606137504100872496727643389848589644901405419391054435256201495767265577598227033527192625778603659534984783555815800401974490894935879825162385601562267081308862677760792030953660993062557145360530746361769825460134768520082155942270971867036016091083483029032952451374760750216068537967638037080846403717648765646128154265264366869566698197778259501842997692043472470019680878608257700683832169440455472523223063165676594833686985807121433103748712341125329737362332823220709809429634390621727546664252293952567880475588875613775876361654616813041864321823903996671440409083313520740997213467269809337811104289814404231844262196351459707652821506047258870398799474525224299622577734656467779576186454182312279284729535244312023121009413199119071747699914531458251823294306544390400685142457030829984492267384986974982740754176342449602173039664003323589904485761544391806158329152276455074425368456189036233054223332233088076219605688317526840892151240937711567400867683088585335940904376227920484553876862760434205724456076757836601131981860169798693186260998975854693558826438606550308061640414037553188896178955707492586873110414971782197346685287221549619173907618184099604538014051176325125221407037250407152128619968740024799988828384728935234380702753499730747926750788786309506770957897292076341838341467037654950236208761547291120056570331385468734347394033994121181756747680395550319732190715890894091943881457319341595232786032234618504539378777818317246081551702716583142851833656064114091886184317083545807837127170742398803728353965422737533924949265512311771305316629593654472160477464349653701892227984435228386837906762473523269364672911623774603877480646934905786503220950715098440490852210601220484441130868913893891477990002818711719147092229572151600675646411676955090031185443611849361083316242902634374984351573610186861732874547349541506247361608401111199242781570989543249157710056928777093589721653787392895067164406647685214504966066559799100775801385779715635295273458570036081286687621923333487747492147846525765581274500392708496468292692091497492654961085022557120852956427369274950031729578807383789399021975642001037382521783723302183209298350637488504628058719027334238054913074680629752224163235914909967890993927588578278498119734677179935507450275251001026458556212150407282190111735208448807953923315580778217952387911568783897753652465908700796012121004402940341570799740897995763342673284499064056826126575035616212876362832755146468972515241380538905244537527741890533819041013883618673994790027107954738263003916270710717827342287795935487884521865839466018104254016775361289752683226559162893023737711626691276103007534368959595139106327915525887722444548772807960669606431639827547523046725421082496174985326129430850011714145261375040402681026473058170411329964674023277151244913809824581819400867215013445554746321975045112843305503769147483019205937749081077527882009750662621999631210155690734356251287687878883935091805111851821803632107349332468226014403153853503362740681802371452438818779094918777517931926558082392703928701132700473265662904470856755198054321733491755589000382644825593451941988381170455471141252924327121309581317031475012841470557283980297851941078168298050550205898671579687339121520265267796023610669667937299562908020477744498951113921100708611676036380972617710329349207777448361998042511132151549802618827255041557503740444437749130803614507766074869686673087056128326768626511489691691456504869881987362461155289090430172958702432899788365752431560098483955045985793008316999697547046689325147718437804966876394728180998022869622812250414164979975119144212909785628967605156805894411687527489841826693273085040840092805024941315607898583931358650788598327163641391520260828187236943646087866627637233960384543970320214258320256559374963134598338123552658481811642451649282394785882869450687606632455168026995200429838364147147871046666260875193034061556959078551219614683846510427222315390121738022598170509941175641567612312076901065312697463664418560474127689859468814309448796400399116743999273646921651362130999150051063292481829267950568766083533731774957134544995406251436103496075349802811333071426822691568888661781697251508510992482656837223921080786618039830951821687685946117213383416041260491629986049285765505000133927782029214432542031401266777868638094954382351027367199174760057208329938156327879201748922412908117751024635627290443857599520828744771473203477469002103348009354019174343873535449963126092784876842306650139777837055479457583986721118267962222846589981813749678952377653471345611451940504507130160294142554076964152187588141751313226719817786360710167890483526711127903392429207456634376126785690250204944209570042692946322459177464603352086560025756933725476065774153330940707087997808053243372122851161088259246787885330427974810216385227783991459173755199212129139530323660063310474716189374957592369217919023816211239004918964998860157199316551799022560232187445805638525104483895790446147576286313820484293760970284757677858766672958334563142363625115439661955491977495162324315893248631035693172741477171008443032474408532434479637297621097115186044684341690555819643450068274882451196418283374293548646108533632729303293351835044079691889902581112125180550337190914548235464722116285866708508550398827559383734804423012345158745519193386944694693356766107606441379531613022815655893194205783614824970885476285863458752092656866212030582419181750600830351364269385555150842734602089471350836043599670964607971838610718728191448898562176893124327585090194360288053121097656913069632888739589229756252788364690862037932427394749522743154278958502890617965184643419400799112537628870767191911781519705301172360211449694387608872091506776191627195301531041362798316404520689006479932416278858433614594196471584345972721884172419900361549619778407671398249269081131587996121299118979767452861540683335144158064096895167907600419110071085587589462336294687218655944186208352140864893820720472263871976467839222154391244000575118549504414738287483605998293120991351312333325142910228670537177777165421274644012544914694248042307095020618463841778194694295143270045518842544384061451065947040861818909750062645604187527803399424059544216357216523004575795173925283936513248965925796329309723381464338149873671592910928059777417707135246812357549830680625862070571880383154543294232182022111148235175742652067070754124887836382378008547648409040075038056924636059208706246101086700488760983709036105771031591023747064807567654818640559223410194245004432113543176106617255482071884512385155158518307920318887728474280820218510739717307003296175988837766700742362550390783874798105780656715571431154502993215095866684356452438563285835129058950907547888142131211457101277728615512958140515417329137532562960868765066789968678003081833055789597318788556610735764473491400579299601615212452254692487383573596045632388877574280750526808335975277848591070448472580692053409673754679869463247357440163253791813072397763495982430066817721798150463307969596452350396798379464840345195951719559400819704918161262130951515106087852856400241933709875208734619373015452601455317913884641771709547174693041754815609632933637023315214530633805616601839422517100665908663116619470416311045958804072473663801225762508079786758794054715943170622717038279722553457376520763639068268582062911727587565801829866836106848125919017718545111827747667996734749060264026703048765123197376198013128908077007599748085397501784734517088357262832256653509047750213288078876585616273184300771502071159196649425376252278256040161856245957925134964220543218314000227917155971658843486000996577140956382504991413732891796759560465623543537390057620804482289118522838004356327330977516728830870189227193141869150553055959452130136170577772658562001204524681813952939873968382364896216038306084714478442511852418231272456956797356582522416973757633413031508643041787644644271699365006602816657132623477655030414832034033010931187786932105593005953724848032872643608793327196441812209862280087262078044495167927094818329087021416263792217516661029795800471792256541896265567699757030203598069321762724221336389601552399107207133319521197766344576795324112332315839535677907231538175498775571867472820874422779044730435182330310817781718673397416409902706810108145047260315521483511908698207138789298823001081085117330437925146232832523148718713584538814161269427384281862875779332697906516744139207900345573512036148969307275162546098941452489623755958839682882515707783997569679777723982215548101564984816592805823540957019790274018507740087176533601682773331826715341618375914957505873266227054694693319324835337928344956291287882221683936186835487374694556525965228525948408825303613633696360083911511920061968895991273328813158534090536421322995761532848599063199026085729818386523351100209606919884563756570934426501821295236680147986681677070459238736016440199260433480308026582535800190494695488735704532385228836864279019324577550223560410132253342955806498266542093333630366958995707484810293246676265928536242894860747521360998565743076931760506676642909406630612003723846239998148256709627825187031981318942352018941620722045056942298266633442105070686515586719754247901054577447188549513943629712029612590605463568336222025013805117008146227900148997904234824658999479774458044573990474182300555076527897525794018353410507340330959052207578180168499862763473024976847531302457998728386497282889370129962118515163304172609361739742199013682667392476178804328368058089418053058408117263205344430899372415660647503870636808842098828459033268252267904536023314022060670588477234076838441414235179780002176583317108052237413813767203106123985958071367604039042872191268988762866885551276971161405818562121675780871363685387789634903165670180845563406389413670013451846134680092192100259180068454277992868379729854204042868334275516009835706547414298968354034276841553315440362821538328157119064442388307153507208593017214062351397470845056066271678282116792239955438814813152788371508302021476215906877382503504454924974720935121849102994212671479564549041117458928422081990799818574403384315861508687240115041087873955875826243010383203513935392918411964491226994113636180326641103341149680103509885962441873431526394669343700074192223858778745479359983638892279601300149213637983811032808179087624485965628355786859074846306861544734308553979790472552136779863056149675906638702038882163263102105296771826767249584222608978843306507305617024575167473662646317643538922532612370804911152907983585821331154917146750566545534478034391126500024050552261766342207013641864906144983995845669703780043164521682962279592516839249374864565735865741472097323161553058879357677943833031434181239470405525187908740432035346723033614142685849206499889459839184489197974976144600074742373495769134382287022919780103066731567498672875994409393656738295301643104898310465618852175877952500436910418822995055053303910562478594308477528875455318982317815262461735257483772833379077932413667404783482643738424593407808450412823710758239172902521681433148427617293242335066947694999524879169368190115036439366736173982406954055470055853700748754996538277903272870178347282951559694412139419339689341577210777135672655456794902068959794407673627095241476734744553478040911584165449801678684503124555496257682832738017204470969326120718871869506984233353093704488432709981228653938748037887070127506472071114938085644171145438000702046992455596813286997587393632034893311573743481015384606216921802230402533108780756898616787804998243637714341059440267799392728866390795190025223285916103208640173146952778491126776755928027840055726918829587873811809832207290047292658632396365675624756242529649790380797565720770174173541780371765370133428755335656354076349620479917732836419545682227630643084325856772833273004477213746264122344226711182811759799845298577005234566605945150699956669417722207427899210119124630839557582692376529664158858743933287222437045356101587544711436199866031800941167449094959177584893968370793920838197241871407326272665056999682586717005002846167034494485783883543070290725735198402686825715844541292270276227307328692413977815300659077235856057819734708773199106025451894630352552359327146770364150800877001781886971519024752791522338666436116523625803476009023161719362771655507348231452229008335662147257233169249071128469187882230577451209173512153773000583769408564275352966526218011296182199614320350763840408644652138376576415652039816678007990018050228884752505580432522542373568735811264878731128373222407780234128471238178666249742016877688878491799584118707959685493425831241941800117023075752977723058453996925475402615277010945784898768104732518719529986607635696300579411754570488754271788117886519845077229607990225895768575562750498958112243270158131487117580925926012712690568373532374429043029432842271363521359924550432586264489774338954713132487062726488916312014179385732136792499856288995248897839614683707854892243078246013990491518454805582933325333772167007027707111475940442466078156121418318226509321455976175880774772041813615850177561145503952765926847495443942393002659758343700526075339237217164584779467938571670895297539876876665318884221203999319797452442771192252652176714326323745080365608611251488037918340692653726180357968832954880094167679313573681434523877270453639864862148781528138335544978931549319944088381266509387226529953674825343553590989470179899571729714348069759895945568030253231900674909916408094390125066795644999286659884735334585593568571127313052831893059068187380958400356514419592552137975554510272771263580126090086064122307458659976698799227919637788556812569499599373959541319809407890789616926307833144947881527496032018553074426307647314937801565420473041099800168023994703055880088240742338736265806736890519842144237558853812872535366648643177767534891842507708992344891754008333843288081090250772945158817050634938476025729696400595003151817602191026668650475594563370113283618195422947460993531283439210931592506827177445263810852366049863085042691765892455112536583149061869834415960652206708674981764182930621158000538932667023598066929950480716198555681348840509089495948917439053714144242910621745990519540476488290826999682533725636418598598813273621347610570045789919976219643132808243081656358500637822240965261679015547543205256526156823747584304149474427612391007521475901350934952944083856033113656962960377521546690483710227529439500813833289291533450745205678786435251058080326490562505959365637933571129968012082976515720671721545283226737685908778500956186616390467785700825376056495647673179811697863216743084484438371644349372333789739279905341783626939047912630420789891367553180990059660510789665094163780123271626991339170587739361553077256602432653317842387151963977067328122782085979025652472894837823857353338515656548681073138838655042702792411500406090174154851836897356620572964640531812801222327935293596637890020536365817760087994209811306963296180899454247057312450960165247002579496001572441900417026713995121377141305980960850627574410878456329376861800085169408182446946746182885385599336159947075643271971734947469339132881180613096834058855044444539481183411806336570801011708580719954712818634825072772157485220947645662298915788607432047912206139352910412443662018810245043620495139279609005190262081921161357285750564583442830578881148949512188262381679372198941881740459097368168900814156714723079004823410336128557586013009193536863690905722262502598717695371757743270779625315715918263329431116194284347086172470481559715354005419359830389993316223626583291526420864514392700364618449117698323866884925010380634382481283309682781674366609998927373471397311069202116671512479471970003323823802440706005859063426933909668045060192646437549258553026568614583819111831989302779911627878647952235380444162719557685585402046792943440413248674752273392746894944056764252206581571569871945363008243997102218298808743829838459745556512333927131618820786784063940950735740852874163535858785959274766656423663842528817540340036280913295836421040061808213545670443206048252950248937424664301418761961227317799313975539318375794898059525614984147658143049721072847117596213047455612589932685675320298305312689925810575747107630911868775255820039646292132590932698614958479927323237254883291933368683587686120083250864379763225142160260204319048786740629227143142329063283312770626317048771823385026358367355025198843214243760404138870637269780856389302014108375442236390485981528839883701276693717911425789174262475242267747299363009398911821151960245804482524146235337027222996272229231204192933402768241067099985198345020057711665945333861510492873140971819491745460635125422073127009512884011166895938583207067747663101678525189454830816199048888862953304373424066608186239872401721393991398128282890802425435505961531352161482655734371450427171757857943487172155727243830119008790018543011651854827237299044656840649238928051544966854156446620713349321410363276551055264712868739576861717771580971806239851703210026848608217390550423830138803664354720022455697384345315524469043712643447868391350521432307232143815875398022359059922639624748670532491424636167156709411693680660654556286822650496839214384944228891830013500643530935153968050651647039659519046588412665599883594911177121940847910524962944321721298268612262215644020524748381763290178022806294450490642775520829166241404152582706871266299740828546735230742835578056486532829795665589350044306538385298264872445525984594076441613380817974738689360416472445246122778149825284186512101800760009410055244597006456308441360717162891352341196779666193018988560268028184758282718631450755253033140879839807372058600591044806192548835350755319425386039150969079414100172096209924938319621546843715293310991360497566850330829137724970654776594828056628896506849567892687972998217953006857982506187288344945186274830245258989166204870186292106052509160328245045921188288176982389115001160012633469455098684278157315881473727274681266386596839122224131582415250497853319562367966756126608260951726644417806136904000554572940798554920342727739664686406147905762030909469703860097449000206951828336972823611025397134420713195375528812903225409170751718988196044605536589828636792568345020486293468313152872707771138560526253556362911545126388022623680709624111431280785587942089136007302935803754553760587925623926332054336752750631491403045373356426939521603993319946468681091490387929672078291286394881312477071000585262975717563770174467664732430617519590669166452252838564169166326298703407252761774494420749811589141119180809262580662301552998810958496990901222399280103120705954893468554975151593458401085525668181170028751900558442407104110911815313510214011370375483113791767705278730251556996874805260775745296530233489366416682964303171349497727592527542090812887590253419591023001512551783984140983237233310883662250080929667013976416325620533435405023248927828702107386818525670127174691324172956685785394545632821525828881231678031573882710871810229567002395933511712582483245780775977940932364899433399821200205084905746166105701979669643491350652320383144592050824580898853751394216130218015469584201324810479618008623910454721144286065781129643154956217094750257404855805821240461857874677902584767756065947829193239376528869094457730416412833469693877112369136563820744138336629046116511129449082984140653623278832096882974641455851051286996545203194850778280007426893711353514522557686801015808935866280603153891182098162341368782665957667546132882794349199443421411093381526357590600156607300353482130639730163657853895877483023320485205262330084706083277630852759965864242995175236324035702895283277062313932975589150392977295004795896702947147458102826811754726977209122200527421703711963291755017867399810231207457637355008343341641665568611415027983857512143221479286370615259609501353550614737527478193271858986496534186863638168191205094758072120454753559636672847492734806027262769682716168083331652067064973788373254848538576254738158782483056369983531789202380379463166485738426310625345347608452015247355083414143951305643472742907822211383106547912797939137605433431870741702589361868330086152737255040472947598760243758748094866318069686520771001177427753498840945618403227026395208504068347322279339403102971291370469540899719069088502777447104717181888826750514578373920254236372586212344310063508600297933259994204580414453438316818081355240479343238739518184887998433098493085300541412817963015096492277944542916385279001703403963485425880323888880731418588428435403904310301910566901166320394982693055971811124253584401492797823511297686227936051559572554370536210335348229341754259743962359171499572098716927697662192451615030235654276539725936658099099363643136868566582876163210340770394510821108888574829266034689962244774416897756523821092491415613972783417649833578329724992736733350608168673948063397314691553353932724991489523972614089147077892031813977564360693966769512137550382819822551912536109745836664468366089055441504557901396963187174919045630764821107557487384590214680809478400042727005950926390276846121301290619842714371135344622305801085885909564630932215431166514883461315154255938105141696673244764928369823302011649138669575771140592017909653596904909235828910207202975608270530132683749691473405351757936678344490406614457067403174680809861258606605813690829078897968304352111691848626438262803140251412651301725865364174468632575057204893275080898309106054077121315856436300332918421359169118900910316718389288907467308861792491368675970251455385764287225862959942851916877100049293972568685829774665814741557432630974304011512964086865359253501767721178747333762413432908141944198205002843316648034464463094882064723375341228460803573342084655667836473246523661336373627707543838586877136963234728098521906033865858452322906106947988755218224520628280409006738229000376641871238721976661361230752884546419574108797518433154244382950696881037060722982858271228041845521201082688495115789122352510801143530000726417570673796263773548174742413378554590007852151487242847406356339629079973234213526917753869523775642843053912515461321817784234372539937312335017871094511874396773897589239983255680907970641319059190369946872482004797408472387344968941629001704253553467590075188343965273863701052133087342255737105373224125670983080909127902764253432834115864301676889140716846600959291388301430813397235354442844591104484911711386065226037495490048636433867780014684069353371659032128251576021125891567707829056541820550157810761220933073063168658771606384750422155480817599893895907891345184113926424817084636464549172876941766782439556920306798962445991127682260927944144978456371770563237421506315917245604569307402196076589079364702689706817109436691435581530050690106492841152998198169695520624748641458982603704979418100881979634066765007415733759145889178104645245640215601507248162757803944260555614564687510648736076672119383214555481293368864311726514607143667354194389752371649561488479359037699617534624384943650383467905473469399471709637478539074456569729726734918343419256708177541318411811895717896581084417626886073978037103401104697194214908840093301568600190736699967849297002123664542948884929854734353315190576642584296716027220339043787316953087267783203319306765075830344772045384221345680087602123302473471237689008331095534925662126763160031166195280749676373930398673869438552155856526016923664526551032901267025229551940696831808140634239471058972726799267332751858015944126367769429820801390601066688777502946660105620363664163213560705710219305957724852249347260801049230890098653724020399151907934716391395074937856151051843817137300444286733995485944407285952153632602315513741271559087446615040917966962880148171051191447761114730868638202834452389576917163010710126694394874459948912323179163939601093522027655922473280493462879473588213282453908956399649982665422311745857219695253286444470267846552677161329595134178684657827126905787151812605101358798330376055143190740839449617666027994166609377511075086297153870561730856441688810946773905448883584013780962556626471961982056560553455788636795898210272886430335463116699260506694517228215555129729705518366585497395805948362066436543123858373154408592012534008819183123222547355404367241654932013348906215053316009151090691043030120263800476234056532467264774652090004240887268348294642297752037776200490542742511638600346027972378457343738888957694604542610447727207495051661537599093296813127054015757330264917704313309050436413236581869048517772791962348407968374870243969513551063161616094278200610557716258170309753413495845043534016297469454280599986646917146562396121579136487550749488939120886979305556346815803661972235219329825333605328838408921008341351611842202837619332669802200658927672225478912472603650423434788124399724545666380869528114604194205259370710272543892264805557408584115476193431428959119483471297602281967613972047411243110767450427519470438557166247524583825197193132868292732012393573615447259333983596889892956168538712446128574680538225266736973000091356130448126114408526375249289319214307083904607226528888107650353353747957273600985285987946460908262398094854683132929208993206482010555226189042823159529190193494598824255266278000434043307067094336219355885605087012962361138692592871702012223363626754919809218642279177196942632613181132849428762829272360859092295571258608090228354308298887182468366286701822422011464448480111624013390727312640886138847788024510463504346097775695219621505009851075565543925224633483593226468884501245590861316617806030762328396768787436449407616217031626300817463216535746823610653394595215042602340790304045233818089482568469306009026545638117390899744893438926470383014649393275064389047018624145899196006839939435502908424093756104385459166127951883996494096153937644572688723142170718090505113143472797333992204647715055220492950512844660928649050533210775137931757722150329347184902976684036111494303192047693838384627468227509658537107967299207763889208740024560497290555734899741562358617497750511703566094413358709786015025613880452536654419240034566686256845756316941451904963053881208228399587965187116927117988208614311314855052794887691042304536514621676099731540487066484028301717268567357325598740051861879497598753373349994587255404579471945010221153843663237653513146973844944048389707393071163698911269904313514004784018268788445460229302963061251795301498355594129244424156147661316323201312214413787385049711541870448365010854774513601349080306648426362593071581827309789722337811110785149101554769924429152249929854915219207736520026968870980225423509926771631927602809760431192666784300181557016936509922593223797506336075593854424867840275853800831505939576963679196777070092181048920547471726849724592166347042216554175570687626025980498208273904903099506364428168198882614839572131316305757790703127839452011569086476145520653145652570187041012756120017934963679365618813482910043950758576966958774083287272576599554339177485307946622996668332838304271010011674601623299389059795938937994587427386981619047564032521638894294414773420730969229143603349750571027077140295674797596675291112301928457817754097281067314838443992740427485189542156296865495197814973888806418466315537708622591268119001094918796280712426843727400758861058419142808407022321102454668385008728422392440199586828736318520582175949110109501498987346450296430848994499557174365969848696629015730492152864254396335405796636226567523563548189355788057196584153980909576798658314334216831286198615242026830365794052780085017753568300759022649358096853793874770529785354885952504607010788803295874024600691717919020203555635343792411751969930821445396476484053344046197214478938726327044053190635404129867820049495875666474754563954203179720767379752067397863736739817082780829090544970656706570590668900305950902670877432086170492392875160153232534380015891624226375666891523482685191841506902354303503417835112100039918297348706053591120168814951144484131552174638624955748366918488388251601764922431763797645742764162223231059908235922856686557191830097487109673181945955085153386303336637875111075892306034048513427175639275182200181411275876950883932177069287612751739983059900837683310890876124618551345382438089614365610613392350776087969932338239589892862646192848499889694381926941833410260649881341421402677697956751274382884235994002677134926773710764341920005785529525827949287517228219417946945150094286145816355999624690433306629106122378685354031023677789313745664081913136080117983876669462925524344407033328625058932217381645189342049377959814429101742514151440266365026266718251679254077264737982004997093193773496221622374466035617486512043430817583512216015277697719457093659050390635524817899077786441990530930943059298577914831551596860671694703730947825766046601295438600171405307149517608761554217904967406350695052281384575154302198726974058915554461777273800772587131213715748146640731056830819826408304285763254611227476337911590311547687186117916330286501213179664392443578904472159449150912880881108903643265079809865115502052633428773151972757582942833967567129169175832499470520185412930979148903539481694918777484503498549210228036922118274222699923024540483553940662956524422910760389560952590000375347301210060272255185129811764976218907736013728729322857455530410072160466726594367585141274632184335221583368247730098459973433907588586708797044200297189467624167494785797169100235806377892445010040277178914464604879862861324663460268151824991374083496969493746111067878164023271379532868300866131304102161620501666740401472118349473895898105523464882913909247318698743906409665847257602098508374704652266687389077790813375809485730180396609019902085324174766026266015029123933935844196529482415181252895152773527762778219883212621800278468852670199614710721131122057346676219913304423485006454985178338614184755818853620073296667077545571337831099672900388934637377021598370620564015395034330966534647807696044745244273184196067120258730280659770773659841147057550678276583097592987205580463182265967118798592096271373010178329092350198352857192499875921600431329664312392426385086168501874759421521516323318193583605971775155675501130875699631135682733346036234930268646719603109662735487593874201642345759976486768107752592426685101365623100336786566365582430225751458277451757447418480009741997755384766332963053698298776152262967700569194355438176957715637148542126105724172451470021574619147902277312542786231588998693456522880784094229703150539669753156835395613534306812573553972502993240946285908749620338275168866884236792345964060430343443180170936882325808945020358846858103690713020129767219822535011377651155590687210465871245994116226785719387754352217049105413194605338579162576790246830075545004270719207213180273518229205272967886016241659047484579433713032534797066268278823492002654618905640720479731405699804708384412263861522771127873025297212032168520058941971330482304413931610844706971981578878541523541367853738831785855279202566874833129350786149824009389984721162717081221980877519816564022770406273727318508044108275753601837267338711611823057322150206093595252850983337127241902947798969692944511773438900043451452713529364419685916903306393313332187889040888274840432680385387366557304174802013796930292795798494546844130933450734632163403833935476377592566668953669760370514909976114163369829783582320941986845351341381437067145535514008697553268281678781431678637784740267868641041398388340283623595026144965186117668010684242759425517474920757758752867575599473900502226730937696603918816811051760473240735781559718635196088285548646116976748598332944351712388297771485102133474066267211626691955330926982839214814696474608776600550950915718326222206533907881977103527738327049449348280923292626287751743368112005601473288674876806095112998581897444560660652244632381418266903017163542885702279833373866367669493708503988935721986169552373788422511762054466344428065453450885659876398910105540072682884921672090364647641910867084465075816207127180977513330929551324202548708433168611638975858763180273550978364559076914282227706225879837399891302859300148697779607076871933309205719926741237164288655141148997220781694268086741330336683756408901638486252176424205841053944820771270303082982864489468871625509663811019890435843874259378528293751475512422798749390664911475409344778110898906649843059627237934114126638040260109696219031504555380237085621172035878803789736137140117722101306798789080356263653523057531077422040078892393959304593987834740294536658261900578963802161686828933901986655260658964904835461724527221724751845047095844851276208934546057905136431723923133080128953033508655266783995319477627886697288910399541926490856022030499988424878842838639683251196007238216632642560099135829563837122287592475093143139473358586610242276481116344348330034684673367514653042969628131467628102808513523319297200966173328361433174113498171462122233987393733181360409225705094669125290801495423101986938690058178385725154950742156411703483027110142824713752517778076205523912663630551129020382565213230746800011443998742233105436375685593287975495293347985244430723612847579086353706256162738132075075787476448806578458619505727711806360914202949970304813154437150677896718961552081995236936940485218128035471314016200473483002570987806034559820581978047055046950536784324456203893259616025098449847507845736591045165485429875098165322712634537373562787500408268348883563334109164392634151395602062538856567659015529104070932719982741260437665884523140702306532829941566250168142511467664641608132562520367273966785173134612344954610626910909200384713627597758595565812363081180191082455376561145943476429734241983681836916065271833271469436339365457255459328481014943355392598844444456155402230543357927425408991211250196844760374307272554100425274351882598812750889020686287487276314196762480083021382892460576841571170533573268288165164771859102659411005138374039752729029882136869063960440596394548640952266367096844944993535821855242764218979161696878499995725761820867687856597907059985739468338958506147171128421130755952717967348211395875786962425081113418280382477611848762365143236308897134383626823094144085323247402886062580496640452127711988018388021099962691449719524096712760307739904770385037880553747390675711140877256796271537106440830814056235180653733713562201960382570770449614181569642020582271248996667054956095103866968512217485254955931614356688133476837225609076272702231048709670765582048790816811258307444978533964838073137176502075453516399502124123520607973257943446770038326224374280771456597089393019425211398262320721844155651252259437673194079283845548482307200134612777802118011010899002948738791364646288717293958896046081054041434565804989563051096856493365833771284052004162372009004804364265824129528316302717733308043716681427056316636046785997509044481058467841607305873935403604653107167105156776853506823179274851994717730418582046440307909086913695228854416022849924497561282945611792279644551709036650366281131459723253558733064328845045522970252571789924404032014439471523239142872191332684881348150582692595924745586958703716095492617240440120751512018802187341962961869829529365159509982568638408087424755540606702853445060677512646491523876359555979937815797057311565599607905113862736577386361536536197198637948319277095960110716320792382273916668710015456922025948141451756284985192529896767680904161437460563692941307488107724903457161875988775156557548832473934466121491798571982251759255211626779043133895150937639087056416323322850363005353026449981689371709623418039919227941412290269677133291440068954686060087027847187461315761467102798775475446907335962066483367675140227259259202871846181023666505552816531938288579788912655232016982299722546449117151914355306673911586090214138512276614981162046234806831397217706284737900225847458332600591717809833510539450366467350479865092899909884451091463942963054102441375939045062819581531863098330698057957767827353357410535641350085395276660174118011987883114178939259483094894221920824058987642971443154742904173057859562406738702115462609349745010820004846792789121496939930416835990856816824215439494314271998528198430876731062360581062073504159986720716987537152749868253812421257265808494442029441076478144132193947093051707880419773626502531756847671280378228791267558782686530351640787291738607610640725518163400277013242339522993034396467578731817471638102215421532139736160657190865373817719211614432813410996685167732425550652839726489786578850880597058656319519067723246622629434459099299634552192548890136442677413499351799588896635690480373157963386361754059213775139784045240771465979984455105442593582011649586689284676465587649787633060845048631316181498929390243962966906987919590325666004614374725207034089096866738594574617284686758632086707409544503429792751520177789927408888177376717933915925902029875141453151380446958312301789327253604480008989467851881955598799213910654970654076664189420632206215076225269066067026248879763444743080113369927423982821138055479764840728897073941016876492203700483738648970671306461651279236331274586353198915552840967318697906729711053011599622949511974734841495376180532481297858693932388321878393972928832715654729619789964461602597781485344015589290933436761720483049988735024980035985652747810102836852701483960180087742903977684483037974842242885172080108148571684192004742074046686574511195891459713257077200025194753978319632728628831341158768490857305638157056737407580106818910476269655500580761154638306567871954621964056876730201467650293218965978030426509846895923387858528932644271685891065496724297786976005547062645747826735883614413568008888740870492556773651695681207458085905758671261660569703027803428302018451478851716522038065515644361857989660441070877658276503068747161688423294786761306398197583841220286460086151363712167560430513705030408787455848748258777413196299759341418253737820771184696282783440521488633032064669397823466975335538341268853378496679027020814948064201715688809175840049325554643398533127313417088113772283577932865872949065168227522417815328409427426432927484912349342488884892056853621172466805882416146484545604994712005024017194652227714492871978137812590856275992533490497442910685528747300988457014179339425684781388622849892066607565150473855964991962751403606710843539593082050986228167927528188814688353500672747014166070701376809399367373450452646729633218887178214657880312725932768637745054881803520659194107014123777303872577267420192802659220188925374078276322688576553392374150352990887227730000455158123657799946919776705761969315143372973292395939269044599184403573495757646954007231917802859630673907212583162108505035148878410682106146085427598981515641155080566133773759403881731180181412073601193236316927641280409603018719989050097622461742601725974124870674440849064051152840090357495524182883662751073453336553778281609829118574550596252321841691016700116190497451461761610266601487111215970838311460104908025763757459379068716764993920956579685092047187961829763273735530490915514768707755596378890560266310780534498243427735336340030775289073295235645301377165563122220444644564793139131767936143141445479871731421565789322748325038761001220323420062316754583060289979903436339439364461696708122691431347066163650708359080280100643648947451333081633593986322653440874150275260060845379413792096984947780580569527387542924372307488116253912896578958220128743867419525489937810192073104805665204772292436314771480288766055672399852628054903920188292048903551056159379286340393619456535216819108339054578217240437627477313149515783129874849823364666681877347704931462992488439115121811083846465636651572470864160639740818396756538896236176374186562528579791420178730053831048733790248137896358063233052455292052761039593195212993650656464468286522564155666334790504460543939467175359523277158933443949839724896832648100034871956238319374566698409524104117360324029253613995517723901168120195644068502896478463593141485179818707324979422855887713975474058693285866342399209628572141070065563730561799236870219369944071692346130163401962623464007487314887736598010043969634169915743972481456036586889569824261067888886615219896609221612450489300513649293207565947961715080957936085636982358567541753597933680451350848697454880545241812300912086859314113676990402197954712084777389747402965885316377725581219712296551804524920216288950097177015563761803409204735475091232528035409507531876591460909071589618371032288372319606888606443743528626007469992047802163590242759640456146478479573584277331637223178097805087490393497470027163572099780485933858379970208701679092287417327583189682357458979594123481274130195874402582808219040919430768556571389122276382414770451068853454553863108552435601343772052576908280617720660789140148431161765422999174287443675331707739524776436906010249732814927292160887842339993100918207326417795171253579171000612208625322914533544266917907166019726751885010069442665366488253773699648650974286981385790189397315030831986181897215361273041496625412789439228149380086383597109636597255967033365543108331861779704533799031811558986134134436714385543843534276605525259347905929246842378797057326186217223929508400886566790381716562792619972759044978737901153494676105995127768840395042977364512333332381165143171919742489274904573203085381653319156456258718619251728860809366621347790552570945136771725115956737185913945567512528738862406821421348122298478577251106598569451107952078421674732358699681736210801873085336736108848307483499144592568473213144461225057426460397086107724117667360722648077538249893611366253750641220686718295773840443533300712528600706284282649594690064976094676518491116916956097882156219325078523243550344443200048180275286155987346737434156764862809931241428191573568542144686988383626796909887780698994090185681251415778440544895595383520028034921178476468657187753775854280065119694069631941220517654674886439862983955076860202709315890732369720361659560161517917872297900941269554145541407690304690237288902580578483547120725724466506978263722670398260542755920071476370656890943342376301965317115917967139948387368772423331590640422999565772670916381015047081256016298373892305217129848139956492419228950148258781354714593522727580502874963114355205450548080812085489237919908383054046132668016022931216151603733061285367721516289808806559239376555682102761360173141070432249315841739175894382071870746508906265258969806228670914544606507678292112950362635921727911094645801639728432968241056454201671334198059033834858264986112755657991950278491740889856465977779234773163702763144304165181141808466647398089287974661593230031700001904672874921668227201654455380644559387436887994064792932926973594885786759468057687870755067135566303726072421630360073571157835393913994935175119004700916268923116919981509061471598013688942249104135967634965320762652686592155985613458040942395780177677067843938513351944569504561946830431811438451396633958238976899287177560783272339140858211406450894241418707636903085056069676637298943715067451852689403898021442409238002151702862222673271162175997949306913730186140410900011868472325134868952788480571544154085945732699700468116409520734759737166962971790511845943833670008466008761736831763246703542501618183143982793885576204126709872889844338721001256715697162508086129451193995801585962899554836670555295289617592042596650856451788132205759174493158546135533593271409744941529685585233944895429139097192187517200816906579011339102062189090569141342226207514229026793533293328893936788824804844386885226013059614068971530551859744433927221018909820846382102578300163294980625216256346148324380796468268473708952177030539701118252811370056709889684649215013799752269209386166613179653487312794702687808427734442636728252190492917374004266231972192057324849306954156714619827983519799751996140904496917475496315187388621416583815551740400793052198632235244348334917403014538179979820905871147346073780468253089123241886953307678181123190701254993834876313143965851010209913223948751490019100236956627094513627787407755424013592233139094773938709363632645574227618760424049369572573599331030859211132534685671915316754811132785300652537165724106108696753306139981183136029155387976511233348268438326884887255177277793600032823465906446005143532730954369642793611668922976500446097683349169070042491195294260122436251024666430152711162227098804820980414054573338421214736909159449424866413568404723322719353863220201657551992988785021399913656742542681264828717249253936947540496606584940552353408333248859256621642550925770865024491241015503734002892150625230037764733857140914703076292885183756448156354691865232493004189643242787357446937171329253641695590288091916344957262644281714035648916137237943389417258542677997688583379595424092605237649884591101386520668357774584493719418324667191455368742426546534829166253980547182369392983913191179247842587797200964653091495327432257157676592147335404662860882503116609185598515485028429109626094445750241047562611570405056286343318697580843118512318521343905841965492044196878189637548062194502952228313240930850897955120615101239591677396434657564101132968164641410069716849221038145498347208427131804499550293754153019015954420186649441665709056281188665698838569437857209127967703139501090370644429765097066554013331368813501013887432194073169969314079750532197966477789192555188398489929165066318418791918794376184764264271223611391710158335321109737408911491438978199142596969442521852495906084219899290178685764793224651711327109906678151645538508155585751526842953128198093283253523511104821190559932071860263485823690676579070792847859846728633737635826651464225354548544976026276307110162948112359718115044318630915495678833631393691636713424589876389913504138712872670895120401410266991280110953489259563200050448342629401019434269788871747797142344574726650648030675043845816649617623579323666086783227955015964776287016683583891509160177966982949088444424701910285192642509492858819032297810150938143739364344556412579537766262367168295868266946751868031796329404932500417209202565728055416132438326713925358578168522146351959575954981395981287827203614432344394317802609732182989398820177428082668433359988051430633279614363849895677558536136636560397157993964606384777296174262878968069197336324630031413401441384829757252729058277661492671295960381679882382379779898705405016159192904905817100552030252576486248914556071554419513206580494537159973265221234441578030235675349090205945868262955985116732004739374473754964388006516747582992069698601076982273790585742146604124500334733653243874010789555485145741307669613185200636068642908056936888113607540038743407324107753209483718210851956867731114927346942201411860524252950034212929965438810819818028252866709134112470330817139464220122475174476351609195108468505266562790996125064184398583397009286856065635685940384069966218496267181797863814197498659710389715705038896207146316882309462967684554024351892565847354077845438205680009334493704915544432975772033159472775800691279785672445349886996548439327988682177018450043658161341883392646126344687334973284028309913205370653896925121916473327859785184314222496907560112758067584553587323143364639956456802672867888087917713445609657044291351867194352338143282295273801949145461590041898194571345418872503625693143221269511104453840968033809969051781726790039577005605538300127185365616630645889629096431533964824743732115406107795733260656958317272806579996780126281689013985203314618018626109164892733135739166556536793101144709600964554594443087437308264387496937827590837551581627883883077467624822613122388459224532544235837469948173625499358861714506783421585407759587073183865699530459764636236144963351533633231346197966475675207418050283904215065856329849102315049932644814800197550322989400524206259045236811787680615950170685009757271272330987763870657864446577261879107913752657781431031303266206081203156980231370077577303999346680207230086321371190493796304872984224224951643778265537879144912654648256546223123853540617241190209612672272612029859201402603372278290643890186128420170309265697156401583892223084513018886336204179546364194571104510248109952889527708512433755085932022289970510916210196201147380852609538166973800003839083822961041904300463311351633688826146978783940140112012292891109204151569553886010298961186977191957637307694552261371650501445852723206828002652761434295038761734272834334252880276625687032673184642779024360723334091085188418349632134977603393168409439857877861018064472893902478846237900683387122663313763598231649543833076008288699962139822472821223898689807222477317685256526348214925245517986561725468861887949371789277584733710371317048923173705569103252232902967920313752389258219371047732151885116044854927521965750982555159652147536885734759405943672959680744528859011125216562968883362178508491618558319801477483136657617114999824500908983952311179260881861321543685914321522754983996857414894826099496092686919660880914116137224009619015875088480023145983462438837697607191352635308643498003861742988586771483321530371182544028990456320297964054511300917218730186447725447165539233097136399959993070707513019046102592119618358243721496940003326699631831849265546129389982691765205167920074451847861562952585560717092789318595063231257734576452172251985365805426026875317332363536395608224302814978047401676981023629764431821442961078199395635462268140284300040604652340214431429022049950389682823001883205001228871359327758749024524308966141045411532112755030641622128296637415193661053347572242251274615735725576202569169364418213655737864703474500240661800666002622725043557165165099658825000925921654845359112837556782259714085425178472848126570820737726239053604360197348629759049674864494789210572217029655091697065370974346535604977340767550660892212984144933346678985832013925506146448553207866750937816242535274315304930223769235588962469767028456554740038407698670149470066309252474168919568151203771321161578981727038532957575282868184842135611270134219055575410686353136800749828698017818066143111335126683874178794884536928580031545469164726397371904737613843491695883417902761138534374691928331900293029405981415447514843455471142164429349906358931739822596738566039091709179677822439335011656040920357815803939618128051547662828476483544258622291807615609937598062503286671607411276353588031215798257337228775585392543960014993559090767854910677786476925229160490699527999046723123807595992386516257656452209349943132938731834146660671985390463848050321722067832494583916164279840776303622063072355972787455973229145802092200434353792667640874191822819338924151390729555290042153064948042063850017607219365361792367036506829332121809936175335191778235073567753591722555625347723094374141627055084830397082239078397377728619188091788908245568168742479360301397415045119919924385511368505951274956034104832677093730862426762559929307190815002717044154540497094093999166894367009154630184626921384125038252250389727542669180108696500066367755354142191630409849840287556104013954565302959791906613512380405616634651103589907905562039597685225479215099532280061479833307263366968715913396936248673163150383541598690201023707948115460558268669277391393917131420982219083200159855439996612228996499792080109906828144074169954997416098351390278512100901933502258725317905971427882122823013633071139232618860894502139728075696311874758696185237947104731349046231384928671458330355678472577730610443103625946555543164002845355132086440209357148748527188679492095443114526393836661123274844468430958894105155176613823519807870639579191651777045277515879239871985590855945806516813253562631013294181287406897852027550414390953983549988637936458052306322700879561286200974790004559957075885183987030061395852430438927112639728219147153184545994590192238634416983189629080483558038214926642589962028690980411016408283420901442506662537332427773436717915594021417215124360064732413681938834125618029218922248493970809958385525187174598224062705604994639931279234883974627526396575537892909287686446726825576759781192029938987832632438154819589736908423616801905878919784881060290097653353764270559334035521824169214302522342073940638561396377973183848375636927623757862554261290121986823302449740186040664129256798547174678495685896903397911517771016203028945945946193393936899450571482676399870267184173848463649760683618561469727525779539275006006857481165630435687568125611116022763607359484452847373836815110199867630628492052433167766835060113541713430156633212584727523517865035884308531639868384719289519903133803485152450879827408051361806418604094004758916200545528060665514558385817049975728291868877520048869567593762002935208970874081860182492127695444630805969587328679604296678628558477245782110054332493219034356010555641396816919679717107225883169565968979761703953225924715008426035163539253252083710889886386454784850475775826680819190320087537172115450339643074055474854534705483947798962359641171691437650675468594417394450507048409383256872597308440336524896590842548811413215703981050501316860447380405384944289877169026077630364825578600647129097122636189593976009160457483199946335098022981874460628306943334680809426644812889310969890639706052202458515774306519593067142374787827308130530549364658392770588966560993751568374623839835258242057445596169438333305808135253699854507761326674175698541938727968570462689020251063695209706398561095723122384753754626333417148905031887714143390875548539732790644404320736183211805208245197837966267543625966008239580349596013689219857880231364079150438337917361422445686784919539954915256336388412875988915547892339844493323179079053175086544270042347751497142166838529096258259124012789835225871769994365031205179494265872432602088064319797598274292278358520295932361021083250481766204460996310400009208427028008111906680246129420364410289594865036022688868556974505695956133883916489734890154836280649771590683965842660779448534953285607914722071082872256972110953224696336136287547306639236149781227291105048812624033677246274071282084788971127954595581732627704809641739127993097038991731629254721933134835415308026304164892483531617113916479684629759154849623940916652570154370371368667889294429240973146780856224585664463452795286657391918434857339091270540096394421768180245357697674733763944747109432451160159075947540003587702887700975751710909562301935787257887472525924210891728961825225116621996586732580569090348767893372802632196160328121939041715064184631115641493038574840886919497170899076198271913888012307539399702910829705128600669674741925637279128564318439334152357194097634412222361651053103526797176583912741896024385457628405634072754820420098153612592685978877018020037382833473161762434843619163986381911458431352527901558177447462302853273698587982369475838574397928440067039469331090972781551910063676996830999466550534958581967505795508978996084979954713774109418613505276724763691735984092388699243380461889823778510882191762231739194356638224045592956839500389517004893953307970419100930310814566524800218449033303689025369057229218848879356895337297556216208657403181310680728225832964838441811355323784875681857195066854803966406391921542195795311249378135611874859451159217957854715731622225962213064300242064572461771711101534837446697291343564830486840210582916852481048027353523288663665506098298619856561443098027286333403711426689313302778121103227739392788743288073398451768699899475670973343857611980469820738412369185399427888373324059815753825390385560555598252304176326947145425947769957362041283924448428119706238987367493914363664729374550974087570537380318687284130184856740387561103023220058318300903003695903490013732582654972335677812009584914244966603293266605666396548004185207842055376160353682874061586562129310761186171218732672402275070645877646089576001452999638815344294432081514587859003408263047314537153276318908237883504816210405069199937192152791391925743897385704638369760265702723882369993642140583368388435336653295713229183143304258371880378887370071620865719488318441036469425257629667392742069449567576949363124077971330941879575523358132505749950961679726087744907862382301601946941243612601847068150744235227267435623499809855308789818343741849775072311185888144626831927852713711324374547694665345572216268936785310243812041368445353507182849038033289701664541012102949527829558876460292335647735060923625741506324461379673030614502526986401030631954617747253177315911784378343284795246907384464020408353277317686341815651853154012948799162748314970161041080307155769166853834879126695128765081009248185594006697549120187149806178491658862984562091473914260373704784356309814283016692988235505365435477299601460029290232526474101169000535235910779817735037492470249674074049880631087438883905564981905618593639430210233057920043603811277577877541684928643917187151547694989585739739954359079467546317631648198151929555057339385480946985267447304515694925960128516124724155147441350019372768861447740130143561931161287260987673867007700755069225824390415221250109533355438346890980435661184186419415673957066020256056933620328980097479216038524193801556602967240381908672847248969660298013244623489966829231947273470863803824484172796264748994991182108727764344104574260370780739624251885392119225942154583977284351532471082967928449684725767360937585407314031506233790189010692456357325248282549071700962252050905077027614945616338532038381644386302351521547962187802043153925937118206094363323715735526494739329411732745202946603090021281420986588586692782210597913854840457065270483493072100545153711409087164477143333555424634162816596866240793012174679499016124965222618580743536904901989503731111152760550196778890294248282006621411912335815365491082631978089929283561313174176574408553395391265762110268269663406758632202373836170639825159112834785659789624803142642606439094276227866175025265530972407319310426784405207776848707888104577644966681666066488569797525831886666990593603358401591660757359609022178888430141828094921650722639169777862105859466586474157738055674451619774463869763480394776357226250021533913830715811405301168564442267526552345930484747080052698190722440404364581701056278168670048090700483400508657633842224996811060308386066442051528958504206604003657700576452618556620282930329452685568353765617628706084567764886800040590091638061585530397441218171546223002452310206441821427584739666131310619018797946992219497813602995135581076443084173433570740924859660327568516401315714705118901177970876822532414423809420756265266262015149052071997453042660668075885505656358942345107012001175133134580736423032186551884360349642933882816854318091750127843073042098841676030111664391255072067291869980427091906941339987112953616720752801427471651532012043611896602896180172682513458373831500019799308412190919870692905650129424176980249306331234001180550170567292235443226041460615967598464988190863667181288355304946557039508168262707066079691781964128998084071692323860695695181851177736092600341209897368294148807196269445234510220698132276330416629852730026313352153576606725440906431890145630346895001619906734084843130317696345840646111846345844796507588328912590947733439884323209267802412203968511779108912665885230284658484385229449327271252396234563349200082024251040371834411462209502306147288496312974699793515631922279434753095909263558806039731844797531278069060551513980646215260178581831390594665099793217540771261550000342510830173493986055797112206756493011937571152742784303691034133178079256042921645619595227960256592517183570409579786519278429462487189036549363234332402227110299133681539081316896109378475191158749507571517713457794170609157944910484493292501155179354057683828939273281642074079826059108507076881038404135482904653235996579180986800947918427931490763116260535472417876396309366356300081280474004036795081834811869571631062168678880019693252255937244018806809234751802734933423629439570036293257524610862025317074964126626762943419633016095111623555464354786331468100196772510869444620657728438953839249053372368608050815871531655707631362690739046210917510580544425211020764039429981061028973843802072590831719547855070834528747552938424585576894813187981540043067955060819789601747639453293112022976995191712229042852421792045494815604364487767752973137124368389301119550155965852769439925356292475567169720236103675134999986609841300720718915036435351273374284487783833347783750683071881472694360461881139475639324152117196228500245162864446881414287455511500249791287480555799296729295934349821707000644076158546451506864283882155775382443567225522535568203932638957259700353026270037782456212101805988552168206067964651789353209819898278412240791435407648661661460405401319571427677456146498098862141302186562357245863102142342516853051831405901055204091799597970713104475215097637255615850936099932588790592370794223540125127580625110018035322247692927026184162548038702247826254247306535026272990699304211876641084709437358383976622621438772233683476477388611801638081093234410740103841372462524619887405951866193176827348916096839528202501866693960362894008049710919489638433321232521293925087423339123885511562616346019123759679526175646542736875751093980662720422252721788812018589474289907419692980151820385405738067066033567977121340545700705062492457805891619728233009895465600137088845739330652459943595096318898878874763102272806126924617298716543391405179127473143976970448058605691629088783318102304536119166831626099966799649344359670214377949648191222616721768829028492948822411381769639617867072172220170995405328394554188141548003713260342475806403021977470995805738346777651561644192939808230578607758109076391838542708359055517403083354489430792324792751508213254140360302013356381729752859437434676827501815305900200923378344572681947363166833184401839621325404737735917623517199419368915406928148655945590568202487924305911120280257883474724462878412847237688590528148083669480279890604682045224239619204305335306718686912973961323502143751869835550108665211968077764112491926573953342080041557929583346562035832377791555796312300113180360442629526031364752585244402559376608980477924728652257727116440662616677744872058186327716744746024596093190902640639228275573119611366549047661662253535294916144768963284891129367206279869848700838959653339316526707297087890696227683181486366859377228201616994224542811600306696505977415370677742360793618524273292764447929651393565483858183148955282260889263510529421055156502685885266282698961722459787459134944147211190439714451904663119692575763671220539078061497442675230220816145163057543786941162759424757107013195795023226438010008421077503487443739497978341265841060270919505265757705139710384261997311714537696270595091360062988489320548306351687425153727352395893848133869100174356156949182982099468648123608645775420777983184197706380485403735776937268626329818537114224618073205059256678448883201882188564970213114615120780829079486797589611493064266063811796067462382233211266392607757397640533644336395616862135236899782600717237037564732493006514450412042617850342253885822520782598171695207329155524567120918110777626597311895252226538815206078952524580085519375630379694811970113568484023145014449180887915583385910024895941152113167494764926176608666215680229762028784197527643444591063877550962572234744305535688265227397410629102431565034718871790375250751619334117967417248379511861052497731650864914169426948848268005232090018444861937177361926928832768891200556248925557665902751594116438967166804173471980763634924662173064983407376807872178326640896078488034686118451383111961857763083783847473678287817542572275174225181415019752750552808830834227711409624282986612631094153437295870748067969234497676409083919224326546210097012942182810101554981375006403078755813115088789493279534667551379113404914473279770826127332220995164931443444120726775267514269307236332708365716737720667166385801109906905671227707033212837720076318435948153920528119175245091553804727734619492112829284040655932378751901090248987905761560207403183208282173534990081343072836532307848825401398378025399865576477574181880872426194646135928572883086516776312617482231985622112240381731259091067833754462130633495165574939491772140767274595063037901992005757486575954801847703768907099200741119800099584669472556922510489293492691504356007203496841955385143978296052360293241966064335582790659283054799322030489318664583570665919364568588491023237242546945087991436121048124681560038620219872203304434451695800256739808638786746654205937368582974406572453940051277651493149499795291901155718609019358393569109617094899239557763568376398571674488695279231337531030137010843238116198640303072441100436436702555479377306119191672352708846057590942391018297615528954013148651480666753685084382357299067912413234276839422002525068325327397606441693618804604726048893868135821791450776937428418548208805776340901112831274768285976400732717629250562174275556646399559690288310382045281255294726255456109967281131939977142396392536995298057360914527510728082161786545187072658340496741746566961540858424818036668119089090228114653091889126096146964366507632893810818344176705671759956892879760437615661892168494533450462437331719655043077891408511225506855627059963773892820775252522792997488792100784434172574204603313544894515767874708806531883753117147239400101811110049275971044478449975147157879746900631212900320578095205486344297413047860854416446156064292525492962083929872070146356282807314684736282539978467552159411382528360890912429514365876634919645718265895390395200286616080425692949031964287974569849071838547871197131098425747897958511262555476859062879040359866751786866904791085766337431372415019009061150780092629921054468149535061382050043422015422837312448165788617188339697403192275491334109592401587379593528561043485626780005810108336490396429967323310424563967633623656909585869981494752575357440457858926313756831348504816150540174275268125061548847100471141184792532434096190449464933186097488690171117421316922811538575227552435715690768025373310461585286656351491525666238446623558184425160761872824746814723333114216328362027696451180227243364046053814380795175137734404097794806003031159155921481407402575473035036743060678782212938048163321416873731934151842346773096574319104890476395188936457641373725234020716830819636678071394552920074861936579088709800859909787135888956004678605267741659653545317372108127274278682247679925030494417487170769338856959576372334485539257511822936962956799045207845195713411474640816496576714267239480463927717353305770681953281870533053039819821107882812665900298800956590196827414718234835415415828601083838222079535527777327673979170220068236865996190907130735110408338168535086978147900068914964447142061688944985810649531985965799831387158918603576819117116758997193559275968360126825939354036699224754062499541972483609518722564371228910834455150404486590010298263186983886284552896154235275013332396267547067931586534801772575781420828593084554605742393478369382126160934264261434392024125478132235321745579455542643607891360489125505809664088616982642489164118380645748525256052626690119747871163760982367838233567016684808865872703614168981640670356323147484847129050724695713483474223989081551695847874125996595387792567764969808144586826266020824295432679339489293708876604158082814042967494385755740924653498340747282335409343623729789997597803533790002156849553065438067721344059469756712951345866393807572440924354676148956689478999455877218179701671346602368054145971313895625120973883275695500246983835415419740898578915436623948494850744563125274338037430659477395057005155429936540434277301066183278205609310251285080907299109855824719708361884841286329945081104575409593469991898389969657061288498140899653049558178158184947966066148679517364612216938692217784779989391129737177232896919773340146636571744295470493091719078340541989519577567296532624755724628272986175098419502393281846447632421287346807723877298328862440800805785078691674211903033746254573212103489619854610503008445847280426009332485635257033468856435422963848667245769555815544634456515394826648799932921214863574720433787147235766623569731116435777875627378533341636146104266583708584275633474577533181287929377532219035685905683197717146506910625287089889932643174072131891066288510130849157198771815573916378623280835717117081749372573253144018794934209090080684365642682643829772503372758708601568760046292958771971453381362640165724694868543159421160692070614966091200095183180022496024133563392947798260530277701424422769416692473590585688403591977932064838430428296863759027704096374032925773344004180165546252851196545726645084836697920273554863407464625224192582409584039265825282895563795745865022089549282758667620301387165313118105346650681766674750103829487735093457145673387228780444990045453355921687731804720145970353380428370462892659307913097932835179414076649813634914150719825395071586090287059975745266290982181683860141840171231862694000115910544992903062434857312971085639935838454067779559307388676315061035624357381046706618735502863561961352404868785945187508520117315695296627644789869649323313502203350358276972308594504284725488928582233699715319044376475116730449108626092264580790652494695654703894390839133330072737745056123250404099301693852716862998397122383525983895895287447162291940776120698016611435343075652903262912448879327989237944502103913694732059618617700195549682496412461234483457886498552933315187764954557282131627518788297207335114679551831664688422096035908029331639177827053847516676439569360195797739814109522281945321443253709543470368369081158361855123099707853069631795946296501469032920414107645732443841798149857150639460987689226104249058472907999162248625023102704553323056326774648351205944376646290508454872487019311392327037231802960059179788344905119361861500377751970070905391394918398244761728360198738732514400246859191757182431105863903058742544952406917289249999069390634812904352130899929868302479615847769179068280298392372823819561733840686644814733916989689245386945067539191599034677248150919149799326304816769400450293200491855158274201043367069550465090724139927331386602850736460520496153472165169208535017135681824169725597365866523233921049432470987727089004398763026410818016823862615465742906231633932490560805702302195348486450275043092054277307169542857553243400586910029510913931010811375091039883360457788027967600246691652609144364792464994346622881814277894115659042858463061917017200563675210136083371383374133909477308488920073566319813484733972549182640385517216088194677705122753208489172152351295575147419102434966969092271966404161958534288079795253316912212405947280047880535292842349273234456824196456458740514680408631899393943181410740437790928824593837738492032327136303128067027334652713967334936005842770295758289006915689411755928994711120154222305209161739704329128760902038663239519538255720457566129204770683520576557454379346661674866487768357058008003337829564989252915020715226036994031315370184409465619309918499906794857863528754196262620273709283258715890712021531406058733860520256106419135424463028194953859636474495740546524297709213021946358416658768587117962367135397670569286035105243782979676060936546987275234481484817500502381862101326226871983775223776979834196181892957087227700972352747225506208429718910878058250935379027903032011511488158463193770718134183370587911144702918126428660197611640599483358072147139982478796547672851539918178606310997412713890168366398064523732231593857500537024289712882446749972101524714803207364114984463146814947106569136232978127849987317428112329705815717937860812541621406466005025651605953946400696013058935633365142599180812647597650059264057128876466946312283598545261133632119736202705836524554589465909952971750151132700145761068591098151700012841930426218141293863311737913654776793081840175180387424534836097001050323421774226034814688914578044583913560016095216502542634590412029580721563960061128499292191872502786010433078631422377606231394708318837152216209658567789284544878743485197811642005991894646615495855974588170283644619477045735161256602194133437111784611425431483371511487741726973813269734095767386117569566028906890006943780958739925296815810756214630622630710649151085161450526133071302867493618976816523522425590281541127829697387059027734640244048203466319014218294097901241352898933939671015832511061708899912154905214917796559029535775404043442126147373347691336502666270224935916162163850048356536123421089900842244987756717771522036561850792981792227531537898766492117524790018042622030646577708332596224327273251091638842428352270648745166605535176273834311751396170080020200661404374070967963144312132721235778756344337929237704738595116342265414708326073346959418161840177365062503790400069731632136890319804029669294024841186614386269548609152209305485813301608619937274845984677599115124858095154117652627963329618989360992544372310323156596067769427950079945515700083114823373009603486224605701282701983722394300901143835850614366290667791970725609774089551286114381290252657924207036467225722447146835683123459913041836493556097107548144263893310733645094886088292843609145234188446064866222075746647924425060113146218910590713148630569665104673252798681887334208508458655574399799371129428176362950220204821616582552978802545064274029495436470875208901994160323763701584574274415058016573009340206936345731253874175625119477195550128034813394747600508519117093624478791187318591374588582684541493806058036202753441726875868627548531548568783779452597565653650520691394656848632585111864634722405374665938752475884529058705634477931637496068982574538479026194004320169229355412742671293228521228549361868330290990469094816601816804165114173921320236727797389503081499256515800814498153502762926375918211971922588970048955068141909015934885176999810049409966872248469167567728621131964556156739895718879430969198084116828600654212323933616469853030867139273960700752922572935355676383559955972463241073851379084810290854200343272632815478177774663079708183479489444986400899432840291742275810497681341468745953940219515606556245697351104010500630645295472954289334365442606851343224825545084605617509148196927843713398577130080537112921049508892763474674040094305438387341217844647990967915886284826221905902322461312781580401771870008677420752275146459971628522574836223342117949747152749236517484876571783640435064375081056971952167640883467408014141572373297896282070426115941160062138096852889376970767615893128568054390772671197254034894115090665391339322794429940744084888182177436572855011989695571216536971249111347059167216500224242792573292497799464202440918065792098735469661918849242442869159737023947321938511813848221125165086306889193431658176766113751371855647236914926508648560304719265362527386898222137814346685924825736787968281388866096605286862380804348938964996480524507195281416903358025050307934858823522978557420376900568902324614022310232343358572517331766248028603025356036305007339988133903472872687715646775964932466444303245135632641782801013716944724009359642758280170637745278518457772808766172437921483439963604898825896273320307288377512344496367925792554159808631679373700723627600340577344168551055749395193502860719372696101600139604183381820929147116403036246362712930652961070459885211844276438761781790018288680253278824492726171156717781586447119354213697639355394121387629222903466339418111007070835280987801482504689395363452468965247556407711967159881546919655997573402723343910088059572167835744641084573981567117996933697909931633800315827278789937488511367884085004625817983819279756634917722890031481588332500204385410027971601728449119497210555667269541085894778243763973509471833892984270684262985528672317747293782694163107233246505820087464025645691295461653585324018864169868262347088612745747738177979412422495405910290772432923565140624394709438302957385905775192204423358624031014018405143105810394057189837637587434518360510318624853837009028644833306669916047010087157423777490438906419160586333450682418804024225583403177000644009069556426943187945617107465690212913102037400623451996268783339801307758513037586032307042109198898206828566562751510934925407278003813291684160490527818519214741353380305857872629171851868316956155280935670848258750279461530306452071054503713033042715729700395411697233545032143354318659262330694414648476903055110966358248034053184343600482548342030134455005708949248333210064876559999605038740700181993435491045071793481813905088208431132784161201060327829932834176637503040857469025707375784646949412222169909466061353415570328472515371889660798503021170054822934853114326222011808198130259508177204771063124729009123084522686650420010123936475277184537352693329206089895750427107990369013547621644300771541482758394968501434089465250907640727033614124562587744864790370798549627136863044720613127304007226747477246791595696408487343439304883148726376373928492825751848584657945306976736899236324417295727958579595932474178407174773014793335301669049023232829791454393072741828868444773906949277453560975397009936170977966405635721110668983025739088292809596657448715970639226853931424176294157401986580663997343336684298058035073183519882984244915688705137564111071424198649589604504401159072168108132833258892151736447679199523457454829426941238822980828690099315824379506205817074672583399237240928401477199465867014604389593859711177238275392554833482331019419748236249319498935693624458497316400548615087141445473102150273167748284664278125186340132742596644645153006695838713024080540751929685542869308446895890548078307894933622045101899806732315598033777853046064882118908765973414119599418258808109895221280034845358812464381659044323372109547784974109381191473407816736940334005147451989941827365853781427521115489048258177960890768162665252694274786155118442159380691961169910932232759595381850289534447937477375461602210053880641730220678021717665354075831166726011469283142484232210617251514206920180324685350782723554632827047509475651644272815229735007284622044713348350023228836447668968385568926684113960407057964028780866695118522790844327158229389672853464354061787694017119530668113723584440934113206312721637687996227569021451546222678557695830406943692706638180103257854552365267653861938425506315437999867396936692572935084700674138176671913996982219572093645975577476492729464124113777922436820006715971798211835005146942916577145816973040855880000793076664356361625409971810713958966925264647324241045596030379728797532972303099741972391468953565589337606718435040257593208920350600074877974150604062930973684416003914402649086020892618083757356884111721250409334040024103494859328959208040780977523375732854197781720889464686293135515079505268151469819103507851830687928480443794812605728557231452954228399401147768032354768275239445617750404491705845502600104737801034352191535760239762995023400628924720087600402873642674006330398189453815130720096892062411187112026672745128269408823830105557360518104965604057192708649112103445921193521604517821551842746134422734855482072370417358548429129559049352246297948702613655343576902759541278050608910024365121806574616514053911924653828779463886163044517669906184225635105346839424004289877501078009764831229955920629869941747090578595452380871809365958026381679271030525542363259592654809932025700273908400553391691447446110711716856785208129546053137991544837793770515636993355340402753596583094563560418811119596746733700564781252228804975788983610465677184764577896733443173682225532964687317963275661953087258693468466585920417600304857431985196789916125069043403090894217390924562800724746986341636613697282417905760857765682951998449414796216393127239986769782308735203894709072649990932853553957901933719378480869351155378118866974340981448514877880139782415390325495075421323032142788244452805322324495825230494920449995224390134793460284018019955925298765502188708118154943474295523297054017593713808058581468041813146672862623795221923355424503838339974337908307435507511879844187654833014438378190350151340403535902078657183313123279850315954404517157321690509453850335835235506094340375513120839623366580942387607774878331046874920011301125028173485495450543915548754738752335116017514663357963143353512855637674615877280490279947415927898400331302643040854766988499240257949213707615132043555187295265791096654507776108764245921037379616632103078281228991034167204868596637279951776105767203209240264282717624966855170783009646098475410727795086011483335716704526117320487659087599856335783798557948121304372775663203373284808569306457791787403872141626403014953447375107731596724900935655893380627852529422175441344694095673556053212621188444889294283320585365628892395975985817731025273253624915788319189007754553830867088717678634637090553104808980040594694322656637418432581634255016687846582702924540625382947927901888360926802330486964019555388575445113511720048141360522036880064711388204352610548980526704893424635605900075081658600393039843624283294171613661799669987531501281836839088640005693941033571305117634959627465929976994122588159847774843079814734354322170791112039709755923108372512340933645594968971703284509919971691431664203572011422173249119716942493815417574764833510014783727300294266995292361350542923323306081668915248424782352015858609975787130211051780001121588212762756000498538721259978690728271413591501643720858080666742821512989100134190366728770228864360159473024283376804628726827845380730981621011088625210117553387274986497891077505315108068745806611391434265970724256232570804224940109940486320637640337224603597182237469071695839031257775193200849647165898622208742403935002179463959971005137590057559446919107110795376955942535805909709453253667575284184131558601548032063559804068803303215299540785775727242303973607229426692634445905705206292281004137511155621005300903297604958364944632964668320234275350108518519390904131271305136975815812576350008011467412176697288013212561722993031210901770250305926146903747539695677553388955194595261242460118223416964048098808443261132770917017669496572127997075942592806352514182861160932424695496989181388026574989806011752960856121680885634158131277933229970903391316531259265872711863096258252052512973137365235930719520875398639438654628642601329571173816583727074290887926982027206286991372205675032948470556721891703623717802398459860115414819967943682444772832950964238873203139416871140257069410969755266872058968729330637530529098512800846441684492930121471455567000475756138613405401374241162956433605353497763168460794859074498434763929855476356682597593435018857296850602916017735673535029694870206586511708643909448299540462683156821322527623497469796811738981560013710900404520394160877696600418059343099779982319478530098289723734811561680933572060092109979564802701963598492203350320380834347364901284292297407944440209747817193295872186819876944932630325617718956824209764901701307755320662593909073434132442412929993719305140527642032410287694916638463521011460129437551415589283628603389050507941872052053322842117756323399156834289338377516822664872118531821478032104556049390493177483821709743227666525473559797774466101876949264753796176279662856367204860656280671709423450119526582449856981823604206659211521622010922247839001520301729346769028681175604174215034008316567903179979822214180859111504987096976754887415108028229005056014765878571290534171411937309104847374719488228899693950268363891218800736328861098300437183689437469444722637310481198863752291715001102983665878114143419522477508417452238356565411803826808087521729907068361910604696458024314266840793495128893692627850026123952603207107551947372710204560478646788740149501817322613219165530277348189343398598859757619951920947180493481701433460873860834013544865420796718524165236804269759835147894624299261866392342857398206028740870536821388571936946165316583367053689534122009104787370737157180838440137922890885908746642232712824850577833655014574802561822297513381801722709376995703929171490334048306727589935417928722216675667936482997907150164328160255709055574908220552948345370152625674211295141141645024896403236697854510452018579018425784270213008940095988136417315312773871181619953933028826984135850786122767954832682090148827659581537325753320685000724858734630173830536530663218993874407963504196303323916829939846423946599816391922908030651480109489803624498804595963001420887966636580550342147853372248159018791114882224008275963595480731075266505071587420537461032971116094024893348456621995384086199058644533253283532103867578351056612771332358809947563049881948523408467836190400942162753126491286839241173189321082336654195030381027973680412868100453017626660605703897089346473152177608719814508115299151598307485776392567516877437440268678828245131976367605050555127663133027826880356874787885831646630488984064282711811878196264706446339879437268488308083939582594551606192801978968102413898029507573850672131581744979332842936481435455621979991598098889189920827741380808448324029327008382567929853544969755931086681474009227964728896421390487755960925860876879212226348487662623177637803436496032822268163668618162567227671057267206374329603570978311996662574237578702079547250080275767044889320232375555265635296602925700833409790604508305531383187289175182324435781269689002930176949216411153943105853545620261442131385992297709290864261466546938175458115748420035411262725558861318747762953682216404809449805634546394622936806867999909582415757170283401047211713440813736270414501973143332643409596712785651830663259374030800404233131578279142590963156362257088530946985224512923710774724142759800093364705358755477595309844031290818046775036923297072268679560473876453280240023759356244508991295801141680297176749606410636183582892194525645504952257662479712120315064143572412520480918350011030967023922069901247007438964554899874969625976893360566927626691552468997141493271042260675410421059630259583964680002872004976118278944194786694347626206645215716158927814456854946080761032318867207411193947543738402077984094722712087058026727410969929652738035134319738149962927168500014352151397937740019485663887439757419063817436221914835934396516259025651484031441193744956685233306080287338306272406449320942388168544266377790925858152682692402386545114356184774423705036100358920038347303077656370938563808125714588020334042819496121418399219786940553831990921429212188169733044275723817253664456995100731577304447282706647705064228923377954691315084834411182611454624278093545565261507180867205220002059006936423702856016026287856359377812754039035469922492047313896527830234107292442493336120747936631300304486576981772651617843124792669909646470588708456763940614776116386446367151805493917904443886535842971309875538267790776473463959940259006954546346727692750921240563271549589747271479244079667651613291687526660336768232252363792611742874925608354179643982577334245263631956190210678768983674960939666060674710295048232629134904276345589376524611304539526331509988011704569658789600579789056462016938514299827723331087078435377942717192141338217804785587224669012128218567947856622909237368907651656919617826136635503940244937663352120603575714790712337247996356090558695615935934910328865308797677891410251433437976071154899695825141341739518458871634121606895733788682743902421413223222990549910466073491314439932130049920020872078764274150804450487633604822919308010425731152062551273636305754658441114672753898657355025951261171372733836334755122225458523746646187365646481594906933913115878989056524000293688710765761856244154102829010535674892554618962672473322162479031628357969390562962937330205156305854303363421789655807337052394550685885394238479794233409198263290497603294242139463227746879156406921850307047547310634041757062212426678177140330362313650373487514899562927016577573385086701719240391947641957490335738322790465948315873282217359681639349065155141371281307454984059269509029603120179978753122059259555537711821276952504198550423492619213334373380067644749618755509354198685156020230790428744240515446813760145408247130367288858452496914331538238201760129816185724483156800688010219878546042071997498602654065913778217375493963531245783104332865500585619921248180486856618872222790640896592402719386994147309985333950267501476310781168841400529854443239463573890680394639422270751371200363965934230319389526917544553843982151004654193969925181902936148200748916398464747827133384476379617455956038689516483457744631735640631279570582444527534182320525696743668075971873193189378439414577689464033374891481019432397135969104530644254916289850933581179187832118478994239841820004568757994444151810532320836251517814065689783281359708363231302265268358665785374800633682131849414190625373943366311347479522830585731760228818085937388904900897997850007106256370059064040063930268110317687156903208365910079074541251676625408952865564930926477098946397498332494535848502562854779573162517442575140479069781876002269304738482276854093167745460808452140507635160941742728766172901424407320765833073855853587394543072169946773587674387889347557031158662912281741954852593829308973042157125946351500218118115803698598157181436946030667439076765971069852260467938806580542020681365942654689039099946992949215479611082314704303667567811769757112852105077344595416430537577139815427293696347911925095472614958633753393046238725214297325901232999891175407288554163795432149349957586850492288945219957998914744768371272486033099300391423401398032508526501752599847239575454796104758724758885672725072218540233683675462872200898356037120444540592169559767438222853995505844273615583707245488111030680284379655022963962486722158168447154159887945303043348166832911868443346033444460441425890136270830630801552410203937654010023687639040155454213585268307217890379215142512179622063922520322784934715971258322444193294682465970775121552266307649819085516856526791959882117333483715283006896108077900378572296840260743573741204817853609994170847810085966099971803982480373109474633781064210273962770770426026700615989034157623432512170310976815412668948764200414927823573843557921731855947601219911885215037213081354526857569215337153214241048056074824021025280964863330112240819872665965429358473804903477978747139097663405839435295162025357105108050502586820463997689022516352081761918227317147623622931101721659723603352685004602040431895593867186094600991560915672493281750453493273596739885632529280529645996386808105661875572391145762262934913146209597334516867931050927715369078645876456707206146121205777635151515091361089811853225761496933513869921284390235348511281517928537366807217366106296694577745308385692042861711964275170585972680207611514269514162485685006910388826407072171404620642222968463539107115159303464749153830900454773912603929664236166678420500753298985463637158719712343652750804198151387448067874772339192368102318053667236051529875355425447963589875429553528888708856196912061229189203801294830890886662913674273500516827070924667065639532705842651355843830201071166772133834963060242613812651063103098625194796237359448194666221494756917366868052756864336668829660430392921237400654501561916270103330879365687221736430619922282365375206484232138259772973929036407909051153830495064912391979786185533182877317814786291092837416253934949753476795909412857341598545101637124083583686309724773361023730865269558122630746420279356553695110454100387911359865888031814027986507464715551887893109485417031018061876571328154113210601046683416816426231338978601022875946551039158522186605552769014611831350626732960234381739141263368417225775113441268770153965575387083952697039269251958273590459003424834781467910642532740333006040970539726409963159398894008412664539866298596402759659827494958552057111683274012170842103646970860963587857861050103869969096285578923893489008325501541596530499571210337303877570863369847285755885701149955842810141537634822918147630270641420980094181415797316460624379122816347593529320338596009268705298310871887887369635192842573954675587339415693718049414069316838545668251277340101445555258635412650882764874981695542983113510802674373197546363650818359031726438367325195574108157504695275880001685110347350648616502756258841755910188804924164940445270437860322715373529977271050084763524233419577646555669573770857668977546104217111434505969040689688758572866499298299226792734709170205668759425971646662741921967471319494901856492590905424820168309065659262474512561367794710980375546343936662235964019533860910222154412459936216086650035941584719040672156178770955591156308647118393983694150382275419749895900030939807283988642061263310550172440046018133033899046864865390650871737350104278852797843990612061500967092286719095981757527848333962615209681017590185732415912070570014051678564064424324373760318284823923169247391075240259501210595481026968668605010759752819717750559054741805469015952742066492344776900654028848004385927446412372994655511145049896034757629485743534646901975346422731589842553557250148402357309866176856382597461891850045292823397378030493069905262328578993753654780023060986237417079965554012424075258362812734245049825986633712031496310317620729906309847159705273569980718829166814058882401335805117021062647074179732506723281882957720739378148920661951143473494571446836399714000985609663095616733418592515990995215664905681295163873813371851433260590520298712095474694502585276192529128751840216364683179936339623876862727468518106480016388002881135439470125766538057013201920833952503007328581914084677628444753501477998258107230641204025376097121085210624443133879339540099444614728223732374156844104142501050668437988910485046567759921056613333329286995938739684169151974826922156020823063235271445756966389904418851831046801541569524472237312626585338334030561080897054631375971821987177427138301323973596437667436189244271394788979306031014191460880897002998476635387368451809459514612889315936039341841246456358227808406707850471468289804771826651701108112782838865002137837557328210269029576019556036702469344407905542330134529785634784398050994203342282513575060215516974199100566616135517993144409665499281582112489549664811940111324481365657517596444905954152368516471803233389451131478989170090803847483527538051935878840638390171422373259481588269701146860895072160606677573993933926774187014411167896885297799483878590845346367123487851643640783356754483868796415959212652410085903038055518337254940218888552515421198682185705869377804314841260268005598730879477676503225419953436674149930990797077149065189819934700515386178365583454343459700335081405610721443423587983212125378827301597071330094529350281916100128161298107105528300624375541513583667139035780286979192554136009002962665472432773810215725612241910569360474044163836525504416369624840152195826871652160919734025955945973180371668333389195564700747535633061559937512139050215122892777377108220320861482558053096956621922161303758085439451277718948729521035060845263270111737113019116914454148789206177377612514067950154833994698396405219562083758939607578342752054033653886643921227838882369327423620523677332825430675203918002724310104502594731338221474394095844714021726324661726974802543519052482883613511788008609036199628697108604695304445596120411389580494827565224344611253250181301215129810194092385196896732799383416563975142973695690811263662666394235704222994605602802638735621444028907304762465161073093221078737377647302444352496474613101029237033987196461503217499561985627382992477443578813063175675206688328609755843179384271833208086360564892429367276121396349097292185345885346552187093745524908431783995785433640359407087847753447078536249950976602872226720802074608042288762323984300141897232210923353083361899134809229574578622679091110081658562361620626053915687145364639138539381607106533215073954531752819355891196199574098357973800503977106767516119657237725533876683467990227295018996030781397729490842171809758482790099121960526928654005525766959277796365763618245937953437667974883424456700256804998383686294518571637336521696821052757334758601655566251602878512093303237823797305124267566429699070508733398085314218867616675055430320287185943979316179057769647436169318092547616526684626612376362222187000420242716530918273158111032602769932568118104243676652064506839389034232912129964982992455246993587887435628215766865434816932516506805080340962715093620786927389347257884017366906280311820482703828681696054451431137595402385824096617801949191755435478410219391536151450393017988079412902965504626247851185714605513227413229983423587870254709437595718236811677400797228991743693531165649803120947484169026635715933052807887022892528459678730842815589100504861350143373600846349668289342120987823839644481624713426111265641305931004977403241839242659787995563903085504953740830375948398562497201531166805829485104903226647058300938566324216750826353167285475111275432564755970178355691701263051999561775109198373789076051467101870050394363777811255796965689096503773398476299357086260528478070602756499659930742009166553313057729914312482495279691578586018217974252808439433195567111434024204593868422670638189668327359492065308743992889338160458533967236056949332065724797640383307962735833280548469186165578130558756280094452841832497614741547543266083704908727354560243149039248494578964697816195837719187207488874407251539228117126594020022987788951705389583789574184133831300021435004153510557969817855628829630013272891817001404501808756332304001357848345790954222735556024329689601575345314334891461049552343503623577984107001031709665653270467929813312048008538786888444840809876757503847452747439300324875845077161112687297338681263854826630727252088321129774407105823380142735220197998083075824214319566887372094113114952241527572745092662493907910633011650538426080972749747425468590749281837270448707600274753678533259530659660114922134804107206149353989751428503911226585897920208730006755565140436041463008480149621401858008114190377223768842179576101792423028823469282276535191818630850827947469833941665925308630868581867871403272299729378572898657513970122575502600787339090673051099437471919614177961166307374623733227989637659559711552795394288977065059480401921062103669499530868613048034661533910582815650148780641658432671593241508220567084652401417755942550410383841042032434123741742341807107900871691476597972102520941861094567611912617778142027844707943513431014273143569651789887441332002702003313776766896902111135391048094167149917811394140540012064070972540309989654201342654976145175036649542299897382667756326011091815207577815806981913305642240366597792643169511563073324989500682206673492680888695917618422782703556519708260076628398832681539331195409644250371886380834362738770394841369815463374220432406039166635491903566877068133068155153791808565863916654525898182789765085853871752044736193553933974391473360595516442437526580968352200503866288065097269050111221145640219816587579285855424355738077307153031314895131262203504938243544837028470405547675770621738640767540114895599505779097936228568719185794771609949381514794063808111172398248386752170050428818480428032798572130662887137886873727535123341216006503347844402581328309775921715207933529922316044432762976200024626372034112529857074702098172657978166642865072077972796643415746660375165458607769997796813599765178957462798331484931192291492809035570697811631457234794133424362507304887705549156096550818866022783397778638608050351992276648500180028329542180485184763595379564234625319617649907689960407301460684199172830047945035526597923391989977653942489786434045786052992865697944169833910238890432226726976216631668252257852238483922852731972686366761706944018097696922205818952377923701061294076243524545469883136506808356495568637426408834105176540445248990528725394373247278479904542496199734330968508651948755224325417096364504565145458475502852504950630727344230245382851608362644010783526459390797214039405144963933000353067935621524063348023884385834384773194432856284612993568816432711496378676483795132592700657065499224898507229550897217166245336156026488646617195467352885587433199070180597270797060838497379279865204519397584966554855065553768997307470603919529387904759350695888806148950614844616686709236671098091641621709266611876970026860699790057775127410863795897745101129855917884260088217393693990568709404165810977075455231235071639956364527717016771565798558701363552309782640098543418330171188068468839153479936342632520661553091642176005473664017655816738648620735843455827808769045323455624918224441672712523108582843489768808184634349773018100379742046296533675144440561950763243144821602831420182912748107927769402711872774755179623426298850015304660409555820054075225734874080003899131931993527346877447560449216425878220122883985297554142397810613738023442409414739063046993485571308001398506628088074189252791374774659437359965274960552383322225510244452847796495865537246888211182988394552135696527607132681780093836925706325656216390470430222253434311592832598207080567994775486825612841123965034085308599912766459289525219025667513311241453102818041140655569036285358968591735950874499862495821487701812350985033716208388200710211664285257896670774056641036920433173814384379664442205261004895846320920539033066111964549991821113549667685087519015719637949733169492989822604030728823064794200427483789292941086782190576142998287513121945853385181683164809719870926872524609928055318850411802422734310584331354531840538805409184610532026870476959392444870660379947699908907286650201527992989202859463001350549812966425718620753685544570424898896242848695190298964137362618828418784179943303183142197484982370033740670911573147828643044752773660253195702229493374615363126654714941775174368891520698437822526868939900038949000915249314559334837357365500556987067034051548859661589114725785023899554559662356171651648820821377774291909659258514308290443151654631635724376444490234971248599310237790637072124135872515517308795235117204650764622945206660487541816169135934198514692182259984548582629233545205066297774433960455833800415878289260497472857240847539941015661396149772860756612542544256443424352656333165783807148954949860155482129775863875580061633735578958312310863607836444810833036137125076939767660177165380710729510165588703331180967662746337532010316233644135404792509639928729406914987625944746627498055506291459249665077565181368510524233663914916335463418591866015383407441679313728890887125781573851805895867242363745491661904993870861222708808880146597900726028304927192380205651449366557981717360451854824871773502416978474408097365674412717733173120353245039340870330760551672341011111782584087070358963657043303955027069283558569536925215420448100238486377678489123773344243211398401066750425697398477347883682079329601329706020286491100336515686411016405214045497191440321607525130366863257543687142740485647504368768163730040861533895642313134740954308920876201550648824467748778893497895706337994514810836078099073296488784489438183532292805428133679625110748112521942612672686744728339186370410641688873002419133877156727045646884384280196109742969423602355034069810854556676277716048247297313583755845281269349858430512889692665137387963466382013775509633782422784984019712645646345965561949864811092247345039882602755542194779305616651494357520309732487604734241830652568309388773593807277663437955095334945120395112450924137437908869926057552451763529442433283002838095280967702358378598565978820369067828014734628288323100097479228242944804635616624032006523086990816115562714367960146544912941917300186020012005845769360352077086038254823432024143774539137560876124877168557342727290461183133507712925109293393443124620649842810230513627853284291919865588058603700241214305515305942593813478974280747928592731842900828342418635992875387699771657677627016388686670035091498239524753035570031282519969425008441206488378473667060623453421191110970581458442971848076517103091288159430965888853610137926775302022402558648171770612289432927322154814822842868133330997915340062304007824628912456383116702006639353868321165261182427423147396368505834278219624328220053815037434791025446505388782368465200543491961415402673840372620325652375465892150584257663755690758705312192188678842316626598766000808819594000487638151172900682228417167964434042759327951968049775742602677103930461441310593393656553279658633897202947709445847684076000439535788863651317302319069848217505764195317488413378757029003408711308327989343757348475880892655969304655320875957008444331627119288142872342802355052468216727540450478516476448033944490145470116858158619822442193513549060142632419421935747589789114259429027708456388826686244690153391180108556881370781465811815252206624709307310089732040878090054670023629073382638009180080745517073898610909595586370536194565681186181444180585442854683563918073601263019060939675908360938074970098113204558142537183546893550909948785909248067088940656385087359868351527124153590155165673018058362162679619455915468615655298742764415370621906881790538342671466381949933887249601195913239833724784621362877702154589811410890468606399802757865011300549507245532232094549456501236055903200082504218988821018439920060501115998800601280756974106247468100432907378947412997233453333900863824690050883184993796643568424363513087955800695453189396460664668761839595027954281908457131903951430482534781293833716459619466364122786161634193030583671769884596181295675014143900161498345838483660427055223009366189898450304502186469883733089266939722572886889961096594498296304528835862593138566349837170131941898989478265308739857447870178437350015084042737623684229329854355089289700570246065963081881935563247326448124050605445873676616482029309731489957681459393768398440202722157098937960042509035023793589258296036852461358936720888235550731648839658151033361153963661084633455627498195257384105889335611750011073021498021877234669992140554782022558734216568032216530639982753619074151226252329758927591356738897859168714341661113304017844901429896629283269866391248911564862788777968846734828153191829885129005851906149566644185315208769370531964878336495135575227510363326296559644384732136760267785444741285082089921603547527946204173770732636414403835456755132706145877247276019681297663379621666461625467478503065202082609630436091569278753695031674973827857348929595599705902590507737052410278665176577478266808636595331091671499416559065480782321986743729030119724768774005513685910921400904429543253467863477212831337264148243304351810222136772662054182329906806016269541909334518990845587148122080857843941901935780408029308788898476973108168478616136391812819521266663828923335560165345147774112204602483814408424779835721992168084153800335060304975848461845539112847436754549313019606199708509038074535950977416709656983428553381691473326359079605897623206486481666453436442819543680295810026286084195251202704362979191451004940778317445541420700218679062991235757281152495351715763562877618366464267114735134533262976285727590129592550516257974040318377541973920936374658608312118171565946204340470084276604378346797845709564403213981071568469968710470181988989174733261215546743859813503795967421379339365824055710166571653657952030001166182820042340429135986985220903568538966600321298548054684556099433418431374884600390311816747515033171051112875460396086741643602139784716841220366174679387997458819873613675336607401232446109084882296553918939697825080714254013936169582212110400805441930506498015168281251296976539415520987225993742910749886812498726069456826047062333232584127282336883672171225561668908096758424031748121702058863521508471120981326741359925885274314740103892330859317286818258157608925881623813943647675771032442640862261194817525545862738599426267040518931828293817414793819377179561306927968679334729457617669814999893761908218134053523367632550847957116582025045875179862943271440596600645708708803688222603048788754582219641632762047210549022578040146812696434759504446935919732932061364843979177576234865312176548875418129814598113330379843400181911569425469275455861906122342205002592486596913910659183335589234438004406407347488961390986524557096915648002470740351634427967949791036047566596326085500371600360768750775746737916910150359921622458941783611380304728081048949333567132190674067913039722224085603748532284997785479547888405093084017240573762179057111740005648589725393693118578089943653795963681056586188302633735640052512712784626476241141874929950441625306029439080832303982191441786393260774981838121599137761379040293052629963864083874905471882245331489741729654539822185303573603854470212453609974599363342301184116489068128890314708337497679682122742845997714098958028657270659992363451073726342137379215841882768275167248921891280017825929421279465457442707517812482511321937947385769838792792658135707074605918761774282363718211037939841462580806144950476274009484309112032270908221955661128523977430871904235814225152907215366323477935972071972024474929574908714825406958716468120170079438762554515892239260143136171923647915053380044139940852398667767010174651659678745177540875415572679863327324599564665131660744297245785810521569297314470001454372059013219314013355289575552834489393635913327808094011239288647288643325650538648260895873847133856385488867724309778204019705838135495430828339693928024711613357018412131747425114537714558651744501743871631343694481944302618084716582560608583969793734320844116363301143833139161392396245286027230631280746311505936617702975520922843495970159590971753874260024977301670246093586660588226019456881491940259322358817166219040971943944419485562141108692840584888210689902358005421315852839914037881549194356994808278768362902952245839842924537215125225675001139317246311735265751807535071847949106477976618877086744019020086179096179372675886202668866010645462698201969312340509014519860572257533469165724238112529143186550179151131860155388996472106287373014349524794542127237030752956579250097008963484629071030064364260237042918288619953492351172242740110289603824841058274865230308167780717078419788613583261176132739499580937050232540531525414231783328296792681459933035107438691178220032221175444871497082901962669095673221601740949042710125416913204196502438277210600899960130328469407190157100082458462159978749410658065029713875768774518346798996077173815749491480708730018002364365122941793468048894023767681050036733010424997595069151263433197617755319334301862312491358338025591562996298623221272942441422296957602770729851866569007253475546973885151322444133194153741588953047632838040133633165732793268004607376873762108356269844617125528822296055657594411116387095120886364850689349382955644639485623550959337579064829931714155488968841438771635027069141004237421786727031263928910641363543037327559347561196208776224872846676855372668165550118206639796745223907677116342253036929059804080268973408957614142583421087276598460502833155405215542575634870385931285441634032737111996120475658551662384519795587929727395627739560718866033274488049652306527077957094639176921344211124754916225521887420081045034696440443488617776828412301151468193429927405795266890083764133086397262964141907046180657745752427220891626570642936144775399158232292626888797803861511105352282734101176623450723618775601382799683003917723963674470709690129206710255453151645907773233759630415201733335014034290325938148552627929414190661745268058883513050624677738776756900455238041351959022697493730303760396168193368383356353606005919731760468424325934588514337221434006117877182474328128439098528380418438430239826434939765096299193979482870936145634660026820391084848473141652252518257296291485646949261516258420844662195066720539187335534616295379954724639816356303456182042658600299986292995292726196986609021478030502725499760798082756466555002195111269528277174892234888566983544318671535856236647478661759501466157891231169130676841550678596284880179715489761510024237592666361279412865220648964833006883576592492182769791675127697955945825408914203199102250039485912946436982504498316688548135370964459216289101817445171379503923269977085240112554156216734750481328788753702146314351609665583213479267288373512810218561072767091109605544916040288235552431653963409814228653516515202449755736969936640334901909962499974589478836073309199418194913648188641750851615499461864885651654664950495199848149490106049550635233288646703731009187538883663372001022989919712744639080288970388881464027451214034799103626987673022200418887709449616467063163849562165089707863826660921293028280546509105884966747174675870772719132399014056677131576459136761179444492725291081174778045506349074470842568560394167149243513213749200847377144701201589703956395441780183771273679511885083154683097304018464092419930709926199291067806232414859015636853762883742324871282778543337297351253201660573332494481743273959237375613304148341363624972951330227548931155028969087478677080484336115915618459183550372704796489959560623380342859555779923047119789227269552814545961321858676398362313752729620386408929957142200321705637401263589630908668741184866935753952034609847231582590943623043843062710093361076141845657515597709089858121763251180385199402145313716434710433928401343274861650127294351694882652434874657553569726116515802628299793835080882015997946864068730857339432277056518197429085792272603744856259811200896126813634148865201759574026008599665162571537764036452272468821691730149955775719906940716637169993825981477062771437400914644345101428371706550377509059398345888508220891565754491249727591884938628516322977694197451273620716046785004245023026219049946586810347409417846888658970069325263896206162856010854328979505931750813916078699391297784353157237674698422284571118747305348660292917454573046869324646401184813426532014702068283154379765496217695918200135555576489345554361723325412484350404826121302744107685826387993158669587435614459994980774059143078903762635693458418508600727818917260987651075774509435525531857903039053303173532696568821998138103572701051597251443332100688877876370352302980144056859435357856669171163866764164657772020721221007470245277271027455733296287831942098294028908348300676616283008893284926774710682689282644228421287613549341138176247643989402517149461352186364537906058356995012857992169618898360274574108372380959364734824465221937719416979149793845888765227157293475815306413132428966643512887719736605337191709197254108200560775938900100098254895913392265141401395581067191706817525262001221806233072857297702442129816200018730183320797319613482962494806404906649034996749221734940892680083296492711445719815912224225472393651429647319484028514085487944271131914635561924985429498215875349805004282438107363150209040395567377999986817067163851433165849395584949332065589598442496654404580911704013720680095802766018048907416367989502882217429302419504334501118356488308358623142109190931428938156631771257773071774458115717572428690135318832618874199833281114757455722637020532905896100354769059846956372754321637314776439101100864132175310156490025256406515779356368666086284777147724939633726251215788101942298131567000575316997501744502042258506293415604366205331594701943261738488455656216275297676379805522286942550295869154321652766911388617438115977080207085506118958466308477361008092261380205773843974090034219248387799219632252898587516044185834615903346413199633881264875077010226001498978909521993055137884369254299698430726501561846049132321368204896947840823426912722753884130822199909488201114137720613634895534775656564107564062330664801642730308418490797619104373642289377756876190481012172293508834690169992512256419375071967787971411058683122296530388469637616218361892708805972292438924380171485314074032475647469016933863298940624366437879474033367955477510968000620485073199696007526699651651501053301487935137908561511013167891009867591945220387923152882184377766255001531836961015786094316264154733337177221498663779499032534716081353852332629915661623439760809819150029448062824787464159966868613150381308261895221152597601804598890290431371022756217866756678832911508070041974888719555916636153790971368664062106248562017914668557824860248401490154285178937734632017192509250001215681837011371226836561813509623618363046262452512166430474754687647607501767431917855630019758625760042811813763872836399182488027327699866803787853836866593108219409862679100007662010919327945117639860033312208956247291068144572310427768514795843065146232455697457608074486820162814064062340595445416494722028865827170730443694033950745803924369155034274735927364786210378048469886168084775853509819667399745638196906344203027169805885476367549296648424133277415474976199671319518401678778094746149636225003272073373755687812989980109050648458035177768248746443095624498541044596977534622117159588252816769953870829858648043346226201866382650930966194921426926925395360549405247320933493068268015322747467208872380084103107123390235240423987565423632852514782471001259560938771389157383456968265364089193397046072720457792746634585466360357859522320421019063376568491577683573092828050957798359323198021736783068049258629819765888237987236735823400210768726250877003308349060887863673804804761459435148582850222015612550409667879494836859821453428791659101930109956802218709408501069544650367414631602509814288625705663368980080070879503209947053598895504602935046845923563347477790892800832778015665722091743542404166964111312826968401312356775273593985082015387943188146602676803210894009291407501735544556459551787088126280899999137616190544524213173825561911391986580154849031305497627516341823843757348824908606920785464350819105437999272863048673508655651657972919677042179454164064851756919168999226960543662260423092676006014324117489841844784396114081072488003661278374099082526755987683233777059917063873648756686708512965524889680964673679765959017689216777930567648611606068863904031322195581128603362238618330866830972473677536636853327112058453878959456097328153782670697740759724947508527272596206084803149690529614766113860753033640448148862313380872687824839608733799573048386241971485138121861341990935795891646708077300347582234104380218336318962933958822526266934065859860165948920847628850688917465555330570762837839211734661544618569585585056257618209640403600653943909290962834153195219972913337916911279471978718814925383924219827744921807058306464119412355221384508817335841746445715566808517403529201639046920203092406809982852294159848841958886334132335028685652615131462900741072059697880706785489096856296194898630764136444602294043769129169627146034570965789930412112031127839057067214364022851975327704137580269080643145049945461945296359585504225266923779767577223771571092395202397328867910033599523215735741961356016879005518488103768484778133599954237975680897825418967409352703468522804388371901427360740139347645960369176816452257804746335651273770897587544767877485331387558846763888662536063671537841668849490427228350711703604067543232351448984595158902316939661427297153589968293249967105319538702945294799563823253242451381243582542845163316423095014040630965852086765120599009577947765966096507683573764128114148738897270579261489691838693548991837433016530820486769838490655509557891959266251950530148825449757873680938138088259437684189214828494447660378295792200953324600096442312270033670758702225196051677959737191613310565452565266768250703877339975543744219151594810515571772177896199425006653070347532697781478490937412629502348000026994270051946279995610720050661071098868131761515925894795271408207216026537557782921303685217057424099790936763557681058400131317751541124279676652010704819409401353058271829455623827031500298022041155624762675202237604915783224187943490605064669183054677965646925450246141353139862765713698981503417491954218132612574651618257768532660622619411910644953732766269821987618212678866303553254683803390220113983621792870997042001026821315294165188086353974157558367471779845798763632786881576718971653148380790487574917537863159414707687583960159024192374040864890929383456339722184860573210874940854266771643024726270446325447124795328745157632024152817852871517988441057938982931409642644799093172826315820582771202143723550804320344365351306515746111022351449458718355740966825019547872963407349444173350341617669424826454302276997606308971390942189526842443397532888233583878275393809559869187178168241892700013394406702822721994565207995497007211592223090747239828234951281936389372208444552129536651294680527123711102448899805399153907583115431041531186997775412341028187025151691963044188956365034334638593901205525983036087552194876469463024845905998177314913194681500369469789990031286854982607555448692178152715258437119219798049455851307660072098681372885880095289335640220319236533343611430502487486151953675185913193709489823539894906424332839954934588033435871815672731764366387206568192342698333201647232580484136504888394548315399261333901919148939419106841120992238453938252565508506844692720886723877939639363258060571266274360669123757573383359101723597641873168126728696435210868002306559765084689496227014586466182959923089111331875366393626250549209400926734302932069513606264267395065090957210053725718986548171575081131736538109753967215008562896630402015918875551971426833953175920807954071949484453811084325554551576982741584393639778118850644738034245643507502110957205972674451765045174957482561253616265072657407757913242802888250028724871774347575432217360806229993810261674173730456244757142101092379381042975339326837659367618759403096577737027141947506961336228574353521562143278938929041186667411056975539230201516555932819029836641167076588213522826793598866609321273445356488938594693265204239581506231418365608653953312110851995009418571808213843098519359703920907189986051112335761900475561836673482981927142076452188703877027725090442439368621044837368249826922457387844964540454902645838702602140137121146315336221648365659882746080026095255153140543820012578578181609374934205113894205036072013713689561756469630713603358000667125998800324445712296178376761645522354038220342412426923029631822251051662928000001607233088707940394491384653601753749728227174420598574115186585575973110392396864394890984882050539118905134514373705193759073489723214566398612520917181189899653101861546990014601818559914445681325768593530118365828495743114825460853242902473164043589738406560188595720239663859520058523171652459550690108738183330919640342889835390758421048051490368458810626929587090938620744719686207821786577201397232260830947381176320052536141724159849482259273153264361063330838965267719691838844861417470065659863292477658789681391503891341191521223043267005561044731824726923815180307840578676388754684187454140202143327830603710544940736384339385884208029571273495278441750374267343906961449122068648322391357478984265517946419833135589100129854499201966343422511794406141178638198853855225047112457437007543814610817624154700774653738064071322024990074133763527930886405724979704195452284576690568065454284454372441738667033244992667068205385997522861175135750346489769166518543331942051247053356965810038167224432020832457756185894657858222390375769839501753437574958862891037020845493631273869193630370742082287650743620162905717814286433038776326019780397857967151303660743957607825519915762512887400775176024457081662927535142286265572103808717843766264942551870499653003622965486582452404891167858628563191369658412129556661420336692827147938518573968807126501859940906411556882177624667215809231263804083573591855272829670958451248186701306862408368349886561784916451541357508824336736597618103829876074377820648964383698812984118078524710954913855568992525796151945898011358399222965424460384609685704909537655788390309746937382319984055716000455607107895437988530210490456822595439349690955158427102002971314456411474516764565104694246186112279914491779782640331758713714453239141544945856918814121798394080076803222263934755571052463734706917963579862821962577609851843113030576512675169409573538124798348230178562989552001533871048330958299136110497748649406077919228719600159831184961846434842521548944356497751519004786461987277269192233686602049665139987853903160899133517422631989787286858081533678027461343699742182397940574144385514096799215784174716936381149087406531028800802991995259215068255299031214772918576396456380636820904691828497514494120762421945785802345221627619075688053228999025382158258062928338819398140832378428169515830052715779106276300406655522482975486848651920917204710997391329601515864762945594668396057146260441904454675052166569467797959028491882365696305268119665976804288692789085009236624446710049249926168168880347444656283071984025985862773891765262887014600309435803718065499108945763231509330096721213847015544015378810184582153658505607715843405268630074047752496363905185936559905987028078344916596563469088504005617898103132937300231131013036405338870957378293841296502106103765254603166685626821825285736381233717648341516080754073197818837209347298525040262891115773240434323269887105853784584213097886504582748089434025654450740911574152416469618903507434212900236359664253977570444444614409932715392119759863374120803000211692878584988306881697824872907172759360275932508224369128358644562352682807377252456982516180937005615336652010064970918012737191680829579427525679372531825754576081862964504898065947150736746413423593015906153774413706969050082632778519577455787816513710810750065421683387547896459191695585348545101599108163987325478385973867934541316357710839722640809944906851805941270801686091220554781980701757606810121597370697250250836377525055742824893540585778866037341564183264578023509078669725520407800920224003300524003464919928428365580472824175526911679823897866854138755901028347334732517028339267706384594364579007776867604485347712620082589445875951003856767171571263867826362317588840618168169610553596352276650316709253467011638513838173541317527129513297623733583854722225097672738699477872503213533926307646276202436988604354379269010230743277025563250841195905153917677422213348163724055651111733687811892691330503592748585485849316022303499685016907518258962091336389454410987072926326614024426255889922133571680872936119264241138383110608220323396802819451774032056821451570972539446061792133671405719119035152651992299464961006264427377034706653589786294376782239428793184296081899382976510621000152407538002377132061915203672283953740725682488212499637216041349426579414544095484329875706769165260064031688487417360814349283160539451829358211632754782846659117921560568349262625079446760909074308415126123101387889440764707545996606178723582464410879729680599907259259632967423718416700624025384963050171971846637377475832915975893859300145789255757931509085949204884568923108734193464889279040988458354168243759863921586366824451659218142019630331003077783452550197068173524691619972454499673433523527768505634578372584363486869700615593186029734039417800653437621769953843839996789913296350052525242517931861751341285852579396172864705469911149374527512700460524587858805450968823343534493851772520968779187272082004091794944676915661511155933666714749666660634036717065179169161785367197123260812300492943200966137118461394055326879597283004081182658701396595811457627763844403202457173657173713526288402232096964090606193461710521390188909589126480227199330809660449580454862902685767735834962799380466303274060885878311714698593063380523593051266308103976519115774103920064261299305330316959692052992296942997279741216218756381253349514758353779014335728155654286035649475688615437512721025347396595607824830799006272818912673778042384001098996106958580168152374892359239499996017825182262061759660201242321191379996930656051167670522493841726495391280670618306258512753626825298926664861756386970634713264578073044226647299140025359506631078614595749424415178571092756697125690776687333126820038726823914877582285533275572257416946131460928198861896728447399046406832460042430067289981504955855170222281805619725070927631232456129282047085759758758815031044283302237093441656257565051686781813756017523199028556760755849173832079119439374038382658283648696016608568913770294349873571031511669691201423345776622509515109388162766540302994241756768364199559231664228216776730917945550868874781914041505452215528157038174831631902890153686318739209621781926439460056987350849189673607044978651415500363264656613003198523721887565432216034928797718136750104819734344391732672939159377905412235536408201294504961939560835943882605151391487696001455951625324315557876315797964550317382969026115140504685501122381620426376513752017142377270540277059879484070098936296301681053677162263166363062709567148939364154824637087239412500858867807540112691846394066621915171550522413235356625972551711106726487213206769006298830839849283796783819189494019928417253825185812049884118451372396005342350659010062779196784444317757033121834083166523251370207350217840351235590070650692037117329608975643989870646525149924620189365869405286690872869270099409617295234303756439610312426313363815892077395912539858905706448666139532442899941028756871184825254116631613057521845328190855914952305878223534320502695926176603104947232225808059813379553291616525879492091575373485311143657627990131187629403109496335357868654080429291092625578936025355546179044581308425266106452544942667675765190735219623172997036522483947589992555518588845384959163591711482689165350590081725854104033422155805528605667022816192777393901589219158778957710982660584521116680346454197546956091826217409149694122547411209427144152462762539708553675233749835637480087212307301063402992338562361027333175090375838897842498105837434163249637215613578632492287626850127054680925979231837739018100313436939538437545046207428826563063211932068788849834354499888017757033482271054038032549729948373129655994750726267795238336479837590440890312093039222393620975339289881325033616340824026020290793377679305571059689934214705005201787049057779381689994726299954482843015254728135714940110941299504498035805997193502696820442845437305430824912437024708227903015163738421061209863364526939484875888855343470991884463909721856874805581333148649841544378906169594470678918634498113308582850536967503441153108965724058304566241929641639213474188975691698626176956175910759378775007658499137094264383595837060424216288671172327479428890547086437706083133763308185511352590522790733212291592817578938536139245363525102098160765445788266414265547541687208600667228211269320325828221229423334667392006283230427809286143639081607302148367005183338125977537975477535214488245656214575419850254162030112412544786566590255430238376517304014935569480031059871323555875764168022688635543085120257926376094784340807169580336126315644372538596020063409517609039304695401978009369180698694179239751720786034809456272933405247903143092621781049890917384935885214309740463678770192300161417156644216955307578024958909043612404206499551897755313549766821678548226091025599244666178431316888501657204753972858265610022835948431958027381087109647400225413949162950464545599688663665391121249656322297930449249831084397910052440473800606599783070453382363022386275537637263775822195551387073146192075707626046762885178135547604052359949339837695384187255637333020231264046101866119080513397753615470463833411005167177443331892826932358849428391675357695754908748377952767151735563667402199856404058606286315411018415341023668835957752316694686578068610703684328819402535186155166271231738272493128254941524049106883031446911018343368143714049384944932182847596022271681990499973141753573166077269992715210339322567698957647519096579071179584600083602458718704984906251563965262609158222834381666971656750174161274360840833368685969842450713051768422950022546419696610919877515423158771409362897995806600016410221407896071265259098082094074764732010372381274398743964398139017806094921683109035420455243215007131292264245518329799055410262347812472439396963204621246702055892028515691869592350969449540523254027191855151721164320150624094463607762094333935474611542554067512976258585063680667796345930663501939726583095466562482434760603800101933136802610319959077654825230861543328359772845922637136588482006395502164281985337227650806641999065625906047498864593930190542372955550697255464198331398702494500942029901683653299138820600939611203787109431116666935416292397946758804999422429791894174428318719149570351410470700467160704990498221472988775247586177202282516972223343128857894295340741308768323325185724753178861817533106834772939829935070515582107868179145662895824985363050718569511045452506089161116045605295258528286448144688273774285080614612277789732604528981950583763407541969779173264065429539295239578361654417038318624240287292669060142091713253875253302137503605166672563971136852636234696002384557541084689049453637563552451216956335807307374783745707791579874045531814563039738943520836924733646709900614907293749505186504639316538005699993180437271656302194915967081371328086313556928901896314435947511659906602382301952323949979118220153306141124580505028608010512985483640502854446866370102577273265703034841480153545692599179933438516969963138172864101495003932144669291118900336386842746289231721286816077316689909875306362469519399506702726090032846279081754911703966410524520260222263297352636716873761394048299691260150680900272209240477879302677848192297529007227283531516962342491056846466816958916749139350485052347818745583152114580597356599995319856374544255736477133542214057259694256380529024785803158574141979937017187521906364918833593183942936500026390170839471315654819509328006030479983360220278182504668276727205406672326302919063395662015467693548848658528272586226343732951882380597554980931226652397779441839036753795212836528901997940232077495929267854562958856825953208778439769520313981875045986225238387025119548156583130527764936704055355045249818441910357506880045789943828703438298629812826460707097138670077222184440749829885794471996383677641958961167699166143669485358118905415031038427548618910762288463877877166525197223594683166064922220398422481159828793758965284189817869599349903132054038273086726389172207003510682633565484222295658648706161088081483827864852973985450606730847091052943063863819310804627633418696668565377390542350092235038398407842188332244328868237204433146006687536512312261398963646725904030308124905885467973601588064640454869885128595528441739345768735011994229120322952688092387893639318782074390054545555767780124454743471635133097021663059321755225279472487957191669507604853850976344126777655749486694576995459042981796191327905844602878182702506219515008517641060798773866797177768036545152533949917395423756480612963354667578580884589711740881266525828261078161094139430854692640767883455354590501364024983512456518425876517266590825649964096284097471120386364308816239760013921847268622774896075590694695209797401771831166391453323784904261108366625338693126124745030621919938563685985831291414751244853618838099025383733835205916328537817074742603059631147511908577646376815401939145962206643517358337138765703892237528767925188652094924375913977755763272428421158150399217255959929189480283999014015580489879251807202710618245658140110371302581041598595329947644266546467109348610482094739698206577504859792881821008125842930587389678123211248647955371680163374102091756432285527794152668662144458658713542535108995706601084046607262861026289474182429444976773804800524440003845711147055616805331352663907406616229896576079053693969711512378429252830318587871738468174963405787242231256439047457146351498597878331431967658796864936879436892167144631707067083283742091973366129430937928446246124393068350145029466369154843955063045206899398758222240392999433448093345681699882783786525941239329553364033656406172662755341028250616525041614816440903974033782130762637902293265489247880135155092090288889424168899356225221070149945391352588217143877452377864312421078017868859775750060718281904084568948889405556169555526886474103933378303316462983369847107026253277105130258166878114449105681703364914372054477472292917973534088850484716053350593032972143079325470849708363027058754234583217913997843701008449234862033157852700544428319831111558998377240155643213392173887248988286890020101567650561418156135520259418707284722454895710196730661644665527935754485298805859017389517359711686399409593117835407335216663253892418102741167733231183017033997010780844419128715459510417711323265662489620231349088387463965772825845229885643655788028778043491865521630330518849277346237889071446257000529552338356194863976281632809791547549752112868181343918657136683449586757103782970845389650995806641014837018670998216620419256704202518860810635476588250767017632746387660147943904265231085825494771602932751565028164894139652716039151680805809896294566226758651296718603266783387109022176525059146569964133378089162881179072271594524695454456821055493290084640878374783456178115734283848332214224469106524040565134045734068712940916834652131874100348584200645681145176473171261484658759284541842575880563583636974270045965383654351992006941600832977210101684150787300464548252048127958404502768758027611144126451143841223464295729288761438242016237275878276833446786365286879110976237694339751557101995113678018089626883706715386882701870100608119924800805722726569399147431815101580912218919870345796991897328155728593970918533508393400304042894254319993365914378643094746011430782205506993954408160409970888574598394476923760161831619625271933431223138808714653548313445150109791633391325538130481517467322659580521818312546199545400398844672452748132791293356490475289526904611254409235029599522864043966332749308030286115019927484366275903093058210502669662570918556989472192653405388978824105530953755996040766255384143703004949540639927909334912085817245228930967800286938873352139560558262462862581646367720533938069445215012694686941271530731967434699914771508342253256485928188953517522534581232637382798816217568593143561893481100708449509057654779199050810054309801016733315570128215126174281885322516004824704022600129152098209391011907870866651548712804873556871835675589862747816416902175710006768516363959330803522120734754645372326154778843445809194864295079863011386692039385098534948957000377319537245418548400249626970777334608099131127413743064656805178807885977722393426908361058284760656775521983235491284789528677582670449704889267955370716840344381310938756025984177717784759434588158678544712982057108677929720483054067407733296226427457260007290040614122238345142797894142268955100513831080909962172826417299599732292719924085807561795737690013014535312540829222418024804932574445315459764649814355891599986480351070744375394190323113865643316715078291599703912013629226968080037657990880771117242458882521506320249399807403589080921854430846178152713156713581531958150157517736293261935337756640880927322611497933953184039288121070518865909795669144616136469519911775593578084935252407598538214618619467526272412788619131940973409471271404700671870992772681783542926094296927114320107024730556564715219629067595672686755158139805033929319865527312546905831566262582560511395297044347088841832972615214239079771462742772743129822570511230066562290477786902292125131119744011609673681631827897777041617685054291439052958431872744004984929105475923107738357953808951496321111515784475185341058459906765694151067373946583107202818839093084557035856696434230918001026661500869494537264705819439778053276108034939605857874029193218744451774273920142673906016318021772624232538145147690104840289694178653135448689536517667517032974337858311727951673035484820971502174824230817547343631861419434732871957732012117337036902672091896028170968931254872680996887925239422992343291746576497117695712296113927647737245221159581397061492871984414486931833753221793394277202674496538155984860609356733347065323653086431099671855123485068168546219828650345009111177471821789963897030434222069596775737199321915103325004147827570040672930305913303087468982613445822186821965354574782801779688431638338091505587253173784908328332034958857588436211920825499914549710441550555034865007306690563531270744697020969874334932427592829653144518627621069265222167137378347656058827468193668424565512059873420126994150785519185010155264876584929810825906133653844168627442969776140655072399571652765293037786761137280711738360528865042566767161422918201494977529926137628154443948563933657582935955915070956611890885494350670847326285428715423402046678812988925851399228628881871321471617963416480607607651354863824434907844319122483119035984025911568665043895743190131287500225801182568667316795197340260939923802328967691403049592587966198120174559163571539799687398917352533620050962792979565109083691407947470491878671048533298659857932494057407708810087963597109114150544427435074171542821250492478091768950485282154058722888233220555334341983959193551508257948589725220956312898828102489224959512906249211554590043694325840668940778887076984076745367183210826742385883310076552507384392944498725456158631904488662714657935507415274778256735578806425826291370473146188566567016006256511318237072950654729072335520793253037246712442724452656687286941123485696750762740912322993623806295679896250307802588760597095649811325967941559452399402828615025035479244936972989705904359741794928326066379899399903962901822464479446608672199753751167067057324425760121704009798196957374085025476320359560611316590549938510114832063174871873941732978694921772655878698176389870271723408206713255064708684639781760616087448768222938724404462409568711254824779633524113369073671814793001635617699500616654333485024200993639994628007985085725141601844171780904159440891301072983331823768537095973815124908851138031738573550781581254771860753814306281613484957859197015705413495447206263559326113288815402736341840408837790676652846354832532738651117776999654951918447644282405072243255336602304974958616992946694779557928085339330640995996004973240136237709617755291714622196854601952870096181804763915914829636195008537610444341502161835786259144700968306598945626041161168163987765005400190231414391423594321946495757264118496525148157727775380024605008208561629119759385426011623353779200525056081864996074397148403010735546310729141906528557636786109686449373032873795307803816421702812417853047795486275438263838481533455468800035459906349750746505849967034931967416526013876885180144197544763350610041358207921152431872920637695978126700272371433408805744902515255249880941501348993609089104874142422453239800366553143173580520401857726778759907683833122488971820719755953741111713255798230576746751575384416210168840032012964903155209377372210294525902951889475877612514866193197082695671924061700661168652450280890624488591288180903503812004923319488239760181432223010795100388769454886449396516592161152358001677466334967923876258250028923947235160725170950135637307808438711290434448518380691531505077722500226867412004359837198846135882979853922302502769340847533318258877515799194617589180061603270517664176891492926323022627129000850862658745446863208659060090492717597467217340287164469730396287894115574396213905551841202611148455945097491665815987080732791472050887360047510137361945671060238046716855398296136649157014627659097588961005974694152068813034174263766468866291470550156682794809668507594802069727928502108918832980984448789027627801952539342678615502102364927863409104033729857929188905876952133552792475463309894879747214265129908296635780163172559253251509965719159637542237005554052719823277922214883426406482285893375865963738312669809164871860593452306674972043444277398360584790258458855223652836497048980387340913630798357566312943341824485134643172668562649522526060311473578604265393222699094000698867069713597744561182726939876285335404500156969610026037753597441698835554566549816056414545786105448498820645468237631765164251330890317372998457793835543554169010576332677141785808772664911475187684291217036037043690407899560955609720304333475985356241129585858583587439583718165505547814186915959183416480236737447095313937824588434995988101227566705670816457288428399013877618558811909722576962513678531981157743066229293381165325354800850090530804028173602275847839116314352013448090197261969678680651649539630997542567467041416363059148436210858390186655564137915391838262502112127939261046297965974968911837748167314979049977259253991000391080508183397608327981016897168062018493977322549051731738411975462307297856770998372887438917443670558249321702435649080165128947732941088135350751702669146181719033905461549842819751364162001372640272181478358645797270968518702678468617142930151736937128244293206052450395072994219021753056154962206540854420906469683411155555183117331992115881773556614364241308780868621696534585461358623237930119007862604323320912947467921086808810729962460805331524540563063702608991058999614642131100457865461037319040775921862174550307077899737097577869722190553566912727550432896463177363010803591106263306960594995754317413088100517039242856629765398925416297012771985316200799589753049010076832556155595678338201944330676490282684840982690283864864275673331538823755371450292156991877892000641235896918936005957979735655613249950346168684323725361647904482279351582127872687670400741269144253076631297764763605099107869645552688654458772240673835913833875777974290996899284867603950628409947237114988697906474288786545994009337216963161651491616808469543677289935619740207294815082703075037962218464176730492809398063325079338325692380051626043837171854138797432465386217314114053655828063079906435897159562761597364941814801041261937113700595551356051288497406615213145211031627322830919381333975642429045226901430652674377666448138142120449337030253761750056944707140870179601621786713360487243612939196048689482075697656018769292092941955641963768812850879236765098985468402885056100922126156819805371284867214403685727872965679341332019164925269541352175574549033431287260500649154325407630397504407761682828034065058001688054688553613132649419342244787401997845812187347349606107164470236343286149251667758092646246472000195592439711827348612314750479206571445350641512586731578065308662642741921895808422219978633599670670864269696876709703008447641453469813741304135300607484820575171459316209499628496455803699140862572566484646738374551223989294515778214471098948865050043681353043053697716011908022174693225165934019349112676403982321458425473455260678913896044553602824614771207986583926426821328091335494474196163191406359669655528426277327240889444878699827550938806959857205918077441846252765461460008727706838123605020347744545905196756928553924422752157854570615608149141521326429539660754835748050347437458317700544459058265069277754020650391879993778033655984451834366135212286860722570291253621166911746757127243324197014877282402853625552729238643112941710667621977181529920467653073458711494698072538226101060470851843199083363513933647316202042224781493505381299479435525714263665316781808727480242052536461731197647532604960848474238495718535176773691838254705784140304850249692452480695771573080005853538143288996565715922473917207596974344653203080328098113351337352897110613081458275542950824849266978245990362465202914506280954307796502627316283840655185902090984449544167124377286807812341470462086536587203056541698682256415224642807404269510513038623224997781364060892223663108834786046132978904372467471391854595935173024659616267793068695470842385030570209515070227095020390559918719235921297937204373578540612627523892923259871332677520863599530407874871294635271317150015024943669511139557797846585824501018835433709805175448831971821904163291201870571950903187297929027874270123794999259252723205751575703687118223178532588282491276092226172113340996374109516290078235285658102852368277383519865305381514192370969215980108560717632444314987411156180766711751689932964567837613398492446319102614924563768512695744003795202041862090140206133333445458096408177965049201694493580807227021637160828216702742472022748777228045371377358088404649241571700700815103070083031037761860435691427338783247784250508641304953224699793652076289209230648796216956121185808431205023467742305612716838186227423307671689920738640444185724196445736198783646900576391426446785726782118377695686137103772297263577659267107747555987929298151062569372298802334825420122104601333416097319219146539407819360521332907223330223718147132955691720931969381039767117457956327731504372106968950425221635631415274421226909399688594459392476455978336727532563186457521042635956281504552202233307050738982422486346356062540424971308241780205445735572985178339113017334113030076851539691132599275004223663066812647624401530229752861016107515416836315215603456592712057095670191525401874194872808267494869398307033209235744090719756051073453692211929052873540365160405385088750024642652732530564106258534931081625577613468937325032099411482720419448470420275948769155204350561839831848360383009617210121637993774176900740396269418613903498205517825303816975484075153750470173071418870201611767301308431703650985192251569208223086333233051774500616277702329939656324862818339106145524256622123772785480950071428032401544355576521893235823335924048570568762255993592491925428388757569697239013693542176487812765569512604258262345251551080803230275681513591168978669151912935039004567671812107766984998455455372986606811449972756164604998449163090251667318491799296054311378103553944250696202210827208507781252315806397627229609768906723013733370562731938630001823184265125908930229085203711807248852069351795258050892250977617745636887646155374010819025672984142013662427243825946974884852189102893352945942655518121061063007390602721320766251882933519095715439504531877343774275679616042225491522086992703295170078457330651896653165165119054196654632670464352806492451114506935368671228812263720298637163191475122001592826938984138193557661063510463264457783014774886529214603009506202892159817899830355124370153988865461120310465677809431338695421258432172700189430112189873420971573785368984132280136792469025339025232483502031838354125523295271834096917262443936284420454490316890969855949021438729272957901688266866514452196401506707054436224338993568414345253152772592772042053073517206249722396593596680480381466322434268804275369876731837654546702256996500332809089504373319327891609889681227575026460949127064210954557582132854448052419782384598155590044738110638540710673939696438299291996203073648966452984927497093721184060290608916151396265824388804898855612356318372056213693592635376251123763263601715497552753126877265215193009242891820621359483440181704067335840518940265808804057276140090948718168466803455324303791233239260404612248392589108039166342449445804205155632414688891367906902462201804925192717914303290533217999752658643024843556046630414378490537251703082699526681676282817991799345070932730933956451859832320934554668696637117270734107354520496874318509844002537659561086927424592194083274045766829384238039460058537958632757393234904493846483402366243720438985419059204443757895440617589387180463126087843637482198254381954392122925273510887389426275382736663084850490336227805136013218671849641712739504904669762048900687039918899037292218278163471140138124172935935975733545902897756415846180577265125842332308383399711589219145489892473688204030346408447321191318411485272387694936328917448007424179512040775500837488708853941999122291023082703264913363178020637112202037268472267918698054199733480913664189907806834597372645834474989593317991948917817589674182814733260474707090695023782144714852417298473267947330245288325712369448037227502886255800353332013786312882199467151684818361363907898911452233720255770731626832818262643319598425914409941701380671415830979450879714698224740557483496169512744737693216122389340067571448569151387732905007688668833474380908545889427594453987068377659663495799312452259935303026784011872198428867113321773850951612563951778089136672070725370400270189885532108014355918622720411889432893532341055915912435748876391433755040007382763294531739561109623220310436024425503562826316085000203806408994426051857918942417337393058418061305438619452579826185059570896758776846281163484636534922004218640680984901994032477916349677479606535219586784648630513342504170926828499509387435620920921230255146588523534867383959247803636982131106437067129294278084289555273509139670438383182393517670610065983693576133815909380362884709442678354721326766198267648029149752860560805466487975665081117724332070667935123356188794649764268743560622542185704951639376047423169706931145985353936785897034302261610962365942821487502669914814214085588018010117391406685721333112721979268233766138149399113649673765890875788782294447555745437455566578904599793311256703142938368752635056286030908531374713479590055275431034415857490602570718308701434851013458509172838990812001618537649840618709379764881233739350389474506832039936994126989461030659322490700555363487655989844735086922553635550998541457779725524523900889737656354473558045238669895199617731075249986849499415411320064916307807133839140193174500845997469748219509937981239593014159752433710043599442960189054215375604317883496904288406013298979962570622984674875366110852330488738749203891467896734695093342537250692667451679518685485685856413540900064733485589045855311161964000305117617244942332771643011102326197506468019496743699538756282125310892909808874716935160259039652382574540878880609627072624639286290511739349224670084466832491190743356621971403677098891696608920640797400738606456038043864362962657585878295992465321551636326820536826945524648984534509567105070211731318255975472847568743057207679896926086703633978791812302533937531945306469250668216548835413650964962320784449567461834568365743466944598626583928069728652441594255248975931853007148376778719715875430171802492160389237033749244560628799088203711321218115521469271311129659810886232329513482411043258022390586804903604760597061673693885653453367804519274138494799944502987230070272910561987227827373474840102653222637708029557399670351555807485782819598266624080956989631026256562857439041675885237997619816344925037501471260846500831155063148945096405693354233083664092385893112738230098093289887479610294907733141794678940782153447208415164015025207242139124588697337981262386587449090158101773161006993374946528529735494533022121582188108044029035049501141958486806336628862631381624567605695280063168034964960117695498688825838018558249554927117403975206276692066459253746514243947772634873410281690594544991690305159178879800883649327028816656142791992780344704862688205947718199976614360338286700090475457972503010886362648617989131862676027609669906340680361564747047010227026916397455150240133876897783380088737083028228016596859978496400329344867377865089228410796432876299069398611315667663882944157043225614865599236366387407815143128703910898088403130883449544724658068253508504693624933433393121162655988675857453895377588063673782301622147310158448778720961555504061562698946308865148237754896295788335750986778421023253781673739484916932665986990371811240552382374049151761532979729729667244131298296313877893593076736564678258574469710234273867197201737935471789750198827059464433143088322097859397764058340888235474493983097491445423827772199697559135788859592139051483466036877307527630605775948533294914868321837169447977864925276444096744784841576322921717586534475374623435272126409158350660513449737558787545385325279071818783660050092530790776359608054656586062087986441674053327789153157669926216388191975107187743762705114739526647450635841951638050177205338164656927849623955019732996446878089863144436507746470035883659817627701438287824838677445189771673643545214845429686954962708620334041188841667814002456455258467646026145949843696963648841827795302051486470331057400908433120410887344770070525507606329770319699230216044799266427998173235985547390902483336696110628667360199298348727466879088141992360929625098721942713438372557552752888480801147962767090047312337043263791367869779138287592419969767603604636622069002706831086757757520612458455029418405125496102593299776152182287253211768264587294106593539326494027228794147360017040355994173680191509883429837016075651611567510887588725009598796937555422616255124084280949317195703080918702937885531389101752052141202153085266036982181348461084043026223902201139007448483752724597064033329199330739410876301267196009189809507522323768503337244116554944594222197473921427771486519133509305493698904595359872060978844981528106470552613540119257071540585726455053205957081327327596893072716048566910857541448322457010425489654038288938612593485295764466483412861279712325906089458492341047934163727493002321267274291328755062263207927057767793190933329632363641042076176168951904152181510525623077092407207521394179866779779390930420890228986177199246508159686837978224094261439800769846286475492048912180729421516384798267107517039806552155981789398427444666407322675462270866472406046849810166961268024829055349670615907232750849880213129115873980324565629935250802906064738912468945501172406311514573508987758776526799473200651797133644470716003618721058154754035732269761204067832544257487936671322616564630610304580131346321880334535497206721556263893450647577759828785080927050062927067855916307633232592289555639312945689434286948187024214014752728768223575768722882380627932296992330287409350657122047683742760502772113695585854824413584926583721053931752286822134474399593493873535474411743606939133715315283530776178495217538464342586880951777929217851556212374252732748091310199101174090313310637923246409520055773520169115941378460551876910787314707451365176076010859854532619417070236442888722789964311345665419600281185234900848524789924635666680836420787795333091918646654357643040965011180422194003932819144812845788051391103535477207833422331598224329676323966441259438969557212333519082373650111744049933632760168152731229889459820291128303739909457134317608711949996525637331420555271133856103566725120891905146471899343872948154499749966019614780265148811042587875608460757928930817722649602854902572459559605992095429524060447823123720645533125092074397629195916348878558307750686472740597926321749144617300514892760147808531816678308522588120151614447133638810165682375414386116790112816789847458224792005604586502899963933443668585112729512181762030809928107356632276715820617346917260295547975682086853831531592874591047380660065674360613655677259685984753558238008914830122793420296517944403647997161962126643116508850790845971612575752805980708712618664024322153816726174863242270049231582657630036226188234844997409953929975827333788308797841228321095356474615798809489003610764318076489876974996490866690700922203526168871948798057653987504989768203434604883402732266535029800275928200675113623826055495626158639418886892391223427952051293811208085283362054923600140623357588750338263137209816780793235079400641504169925334332065767108533687756867474371698692008988490648481243851058939307815447139124638143046645068842082502410881951767832405084059929669461953428490162835144504549570027285237198434283575415786629019618569057955121848568007236236583090956644781927498833992349975897051423319813106128287852160530926970283833797967954621857966359235380631858229895630043382902664229957747264478578860371999249944348359417936918788260526920426499657500179845913352179604174540124926302945666709693890156830022717397012943403639506158576963702697820512393220054506769991507411490661579380968593579687280989881002756509528039414774153289413483747634872340832929593110356508176625970378992374767438258899355659086137546005379161712532559838235360025953970720436037526577845280820512980963928984317543911978581028480975737635819905216458602126825776687752414590035881992455411714593584270239558229668934008872599534303699004980714640252725677526689786832815082406735424830337266980128292796618700157658046258340761661875678321478164127146996781204202117342104236778416916903346499756278446323285759752022971009285609897065308567506704116096278844428357586747321172820958746987787390113543825648844567634067934613114364653304776850349827919592856702930400314914909872462608580643529247406840686961737757048718160844040152841959120259180057908835975438783480256855493333079581757541328795991817287450903392895038057639572054117584673480724897104207560760248520452382300064732386424232298744913770995748752019884353845525692973650581307548140168580046090338165801320814197790895547376433283560277016895840101236517089290118164053503192167419334800204239110140366513185836757448950288919264994511084752041984301215877171110082344244588058323285460269147140356420082485057290196247223301866798114011021810398335917823028980581468725947528245699591481414967938209504114061052063334311575791478638241776326910390146269366112611498329691460529149658877533225049984364447413529062093209308558882606909114062602492929006074562403192277247533201865970584442650842505718240168716053473615726841093114268779497751751344529203715230015660174267366509266480708558832845402152088410334150151553298976879626394605906751198360633866912104070494341049147673478691975240107201120823871433289217580250593278257474479111774461237449174425307641839864464781913104435928877816048597269272890642336235874023646564262826302897555289838349658225923887213760828775663090839944815028058964743124873154842244384299847594082228853577820528615573914778174436608207423679078170875271682565033553784713984670225840569396816306367772120943781764866279003897951870339947076190108134766827065404334075999878313801228983063420355123823066256922785247112513223812892988469918614870066891878196980891029688822131469810687718253976945951929632520158234734322749393732730028475843004317330673873737365824472326988198882444247370321578983935838462485750967203660956895060092600903028577827383568778632842783957995959526257628232259759517718126208670210839541113969863246608030190882886302360475840740538572109141351195164858487831163626201410374496740161758605935892714171825142558447267884561474988615667259390229594357127767494499710239530880807358631284931326234171274945377812391570840900651353293731035992739472817029783751367885481071714882687201462165766075505915727093981234324763596387609901956263403141296593778900721619293444040737102470768963529810299247541136129880095814389680023638055151082805276025672920413947617317158685073948562260132457476083423461162575525076738450408730852605871954505772639643267044160942303998012246390244401660501464400281724160814309095719688130114439331323245717972984407050075826827537118890251742644618513248695754963872156586121120362720041833828310596542546500716235315831921063404219346206421674781177138538398395397474702309745820755860934106754084451586644054684388104926733990818968512291829008075820973090128346562757251897771063534917914790919851292557578970085729199208498210550913536163705021178936828342485916238550058899881711800211596368305666182757278649487089774134640566517511065159052847906087316190542302505216182566867114787633965889250028716605202784611151639599582760412673363055411733281649664432954412062126991268134487583840590545679531488356534249646197540830213333745274900329359160584252190691518152056132172803105533335357781336830822881163018503865704244086981482985264995666754476542618667749616551408611611092313041354375054205815513500048006846065715365798920456015993163855332918355963219981402708593980386467229832335937033955893588045158304629651605568451508147246942133274135743475275230590842211590583502562739895913502951435293948426593117512010930079252378415805826291938009760713510281148535102420036371254429143014900358870054989751787145303369681559858516504282445180666487064823961717481723693183085841896035025098833244198737313124722638377866559806353051413078417368259719160944760036360286973942973275999514581668402568144103591646227556093654102053652758070900031726997946620812619707869860125959647148417102134863171419325700897494822586514438666403056600671928761437505169481460283424408011263216772450410613982856202856302447163465221561285354996460653113276243611879097638748637358217677635075912080375211141699750326857822537599618310613775392910239795870054234188745891264597048447679903156587111262287727002761602369175166806908157496453091089746613622268715940736320957020477608555470480084706940906212683489675638753172450885568234644665941494821150105605272950416037985114319577106466530310449296989763513511974105089886458980381643826548627581658479420587854788762445163398349992576708900569607877033823685064174858587215228384532090710527219274796679955866520273535141405260688806228567267602647147959867367823888372125870290099932047449961331874442305153298634682324787108877877310439393471364579265489288551698232198409290529381991433774803110343937587086987061392713375579686978671475550987110530397944899771492187058212843923849104640597225775263918909993306785098848112627857302285877541521635040097086980671011042698474639720584670387423017427314144231553493235279598329186987481942628424968247550361362119930765225524471339693436912493360637780381515339618616833788103998614934981525527022103804761332821626724815875705956593977385042326770033010345293798493987570705302254247234629616941480910212895445273212780971980481436898038778863812545713030545698555526524996303583685770870413770109936229049666138105155985401813695947807935003661681360592250319021425548311616474667458634149631656991591562698446532670917940648845035986216362786639982776901095780069319448618394472211373856239275337932846166820778909053821682439731257001469094102424878328650212287604673384988551752207079267095799237934499519948606699537105295618819552498872753234628412434445150339335700182462955079736945456479512843654388909145568979610121455556827266217713826289850856720037573793630168656888009251406527498842292239355735019394615210683955186591544854028026653950158098798548174726052703797229172907750420878065785723224879914420122665447015663461751396039856376032622088400643763830401986692887964834693011869340917922581675759714414189786075371026806739682985347705060003307314870589542514175747821078451166473725205844838992851836824310361123181576491424511074726184287234591891390641737678243073903293269314696032275001487325572234884725183734329882830898571411071491970990672217507729587754719742523158542214293086446446743765084791248530751982988835393624626358259748216973759223563125705637542401441108315014169677939341499466480659395505363581998380077351966150748555500398219714140424378746451099143525283098271378093616485241938075432375538386240506329088244821360643805352468153351370112648027018508484287396568322328071154216023777214210413394599022136670014645258383926539563427241781244578612112502770564684697301335700777585137443074539722234357864928058756361237326858944675304798371733494626764612732882761486730374002546676613746237804032057337511370513023589958545377272534288161288926410976435006790562909471897465552957567384419466880687981127114613677862622680416176107903260280005093708266101487606099159498432088048703705466719319129084363981792102358064247642415666712720283086709336171320065021163388389016935835883166001875447165491031778079120987169892499445139575473375640618700275440934054298631804382397633049620183226554039110397785504779449848685145631170027612724900065244918019235355297476995295092820987439857789326732175472359055406551735952670693898819897859050963304105446188177485877913791930723922592355607532518723870541585459400680191560132912497278986577609234947449208696613510578947203134005369143110376833746906304805584430576221418865150156041382168608910164997613899556345466049779758078979693337543482633482506373519601791628966746867724189063640700359010541246077747612259763357174403566858153709908816832578934841397554743854026392283888073609509128780184130995764307483978932100541980761191279322531153287522480821234898008863535063729958117164717869985166789757752496876036677824574280715397867036538040569041718174061315510284747160359521711365118770638962966138167074285972503778635125136831363774327319078119481713567940005607273557393792269402797062642079094110978202970219772974471318609846699371734213067311878373028185702424968231597652702603762560342992475008333230387401080638042876312129993553247294804797320977993697938754108636817408387508383967482698686950385862219224067184266161602204284325151828213326971391485459884446646070043183395791702177311451052042912299139720857501076117791373000909729458817443465060875843657397451219988061112271200902171500588109940169607078456487319048280671570321091478000914485936634252858879452460890047057798514011137117833602177385696773979164316874822365246364591827061372295907618702471260589472517935697837015282804994756005965645603527203431514260519604085961377898878414052106980090789233312218752336594223279935626077535617979478882911943031800766032083340781166158130469354565311243550757581400479260272173890732172238817402005234812871720934348475997045037684731780300266970035380375799999209211815624818241388855573652569147270664148685650516116683417776228432088493758797432179120383631798726607565975856604242882364584461023140601713366320441078259565999012942693014037343754657160199381999867439999414456541944425845703078202967292711167997374643767770716873813490754021825415013807176950320502028562738356394038059492160930716320103096605479860420131614649951125467496303658125573617145343531845412557072347055266065552434045059812005981799558605494386842299337067752426327104395461771592310525926653987083884653415475404178825549832501951520512571261709124340569841940881440163731918241998929935357896800028130130942718960521625341423790125477810660064665672155992090928677237945952363813193409472043080575833097149741692638072216509768188989204077779887220587833531043212846316398865792381672516218962003600719161915398417318553894784765029910395224116268655629578716740311071910739389058465293820191028208959718403295076555177930362147463865835232956495892069859481979954021397411373660567910606147806351148487198391065860868312425382293931305147075740547322023631418717802233977631308176156930436747417780444146164086782573762466622238577063212958428660204234491373706505149559599648414848942160486783103191818098539257972963160286240271907399400342186898436592991575043765499069689243168873659897417590265778910123419810846034342486145038862831470524189282649290073011782426620259712156230820357271707949860011836424350706182477189289157228737580556903139723932656206596126137632499322402624708691213888871425923881080859949207270473874526819464088978655786670305720177486382897437830496944638821073794339617613706309132062805027595040946549277436660980632517631538558842863326197907153993878367943955312281748082954648729579070328988777389326465989604421079863583270635765308618046491561170868529025195959845600890748321843842540080649346729135217124617194128720543111081949312200750917976072563578573461935693464499227445159511015242372014873952458118373110540232140948000909759999954218106176271974519408622573736109679440903361477241594197762696803029660560479392750144192537030508035547610500558937505562080747693040022378428414979110721654598042575816603086949818367149573261757435210533563521682565088754200092507820286450330111070834743533824356844249178354228913976214173798853948849074683723965898966058725075441495903287019022411996314211881941643882538999096629590433085074243520853454509710366649857987196178547221845050686651690199751288386924542904506120947627971899149647736217052428746843034988189470404455830199897746752567266703344378589652552930991856504240290708473643498818816055749362022485576594284410174319163142572022703281318433296101402456090864645388463465469587134337645090525618441889976546511040414041128462020867520459161448470817579505903335108372481763238423824376347453332490518912755235273256073216501421903703997994842497202312278390594544846495307189074149377098777754985326685760179211019442589779925795358808447426689125102135420371360690843891790292393832787464696721798632912895171444972856986564609539781093089939623731175687005856908131407661007992598833526006356134512583454491725501987634085720164012634710481644843863502902505142231962541514282276407016690685363117324769011005904710760232040359533396514062417438754718678092992094067401858156622456472045670447689935306434796917279417332195806349721656767058897541113252829504810129447320288752522655633367145883062500113496640484402014641988044517784721829821175917828933854171747426287483793303394892378631224359956220853434048813258117200684894500138151215850042023982160244521997500646153748970100236867982964847087559803723591282118573404525592360682298109176645394729259670144238628041042461300419712554323361737944713311458325432247693935025613990907976311827877974844216896522687479998979202178125562311200502771093297997595745838434969830671423985092042857142659324089732242966321523585407598927115146280546071035795850673813406557775705212410381215636761858964390935356158433876640297031212032595964303190477778913238047239656199696021398618781002613246309950946236907420458739686145995048810766485645280146617884756496013853188001085375723127630836253679022575816018792023647537622987811552034664466025990061997349792705140783336722536407645351968951378836426548300853079922118725464150448451687804828315164570078105432178069138492624578969553641623466731166212905538812912782757236947816427536796768087823958574048995818664961163509770945996182406208896300359066492657747068621878645336601300605228676361041212305804408384626653847179773791775185914750952116842703158609213091252958795612377002513557809691010559900046333184494966754273659967355973627326374909812663045244934650523447644974575272780548012257103699825091740871521444663868292894518872301398306031471953842657411396485800516034362508913148727814312684485141537669524159152302738370823024824532749731365874890354951971963243647239850344964795410411186590129375218834744090471693277544037070057668761941387636003691312690387933188736561669375839371126589400790817136608557592040623502413840344377377007889434584197816628005797936455231248476630476259856122006287374563606242299728370339103554315231786774586798268761865762771513034012674846334751357743717514353257666226570363470305589231450376001161584368823073207377239011119593212039694022511281299353270459277812262676096395441463384260045044571901396765872155359827741319327520011106615074515919802198900560256894090030601777784922967199253174325616819197874355765717922334939085368282084374411271692055836849477932462992036793397935690844168098586658686362247684213650425406119375492430606173228221938635473136940573334170750626051810742920157067494741397543488927482975385543605823340810353266547859663670436684307868491798053064192197573884578143138368835053786236697618267405553944077812469196257518785765684584718803838747364707079181936702045835737069483679698614011913385583416611242850734370736363288583514769829098245662476815905671296271503859055258957223920893598508458805384007871626211059473084840590205197498206419444800895981487881021431912778157031577460452186214378679081058110261158713505467858307444142611831451105407828229394905360545351295332649919575723016626953337961821193401459848163126636508097097183281043223350165684985632637436824772537470432888885598846716623326705578816976828833726646233736900089323346815418910894887116592484814917759586772832945215297176028143442671956925446322350788317741213808066949511004097093023458616385677039775286826671298292870141593594660275366351224909149238707792245024986651538476827562599583637092186924785388631640689248521106732625367877368620902166926170917306788034901353903671893256135661032655973707475520094825958134173095099631653719839557570318235301840219025660031489224135145961342973633358011735798030679150301967511540346701384315549185574013053859343589905352982357197982742270951790130817000789614853021902105602726611155002404696044226228213088969670800746528761209689389403612582148928176073489361789935126310461748545792674241040327426638771715192562618311615131369222113128093382097305784938565768742816856040941532503197815734089494119177282840096423613195868853241006035240780735806702326525758321576038938395982505464323326828676684192849398049319427754660729828450992164025777769676265696599048370349759706746443239288483209103284749425824296475478223301275480747520016967179384454577727631719406911773739213299819105866737155859895314395311132700680591861160419627145808389668937225855615241355416277822362074432558889863935282535543765835974523880850459364784642185569527280611268496992823912739029371604612469669017748482800914938096280891391336978267536265039466422669219819921234559798622359494999739687901976025588823743367865436355048622901367186742705937913857827395108540128647678736813400431669874859880674920888779948592924112512937779744669224799695466290285307708183858299117289053416657904192088713863517457989224998009807828748391697709151115580890247496823358074522549720959859837016180376279775230579477922430179401095473556787812460404504996719957128236893584308543728762968089624330896206656863768224285623897880586094469281397060073407931460395273455095598238927842454520588355781991926107615267896266741431268788516516291783469273270046103631517106558437695448278177998379456631056677381652536949255346908288225684122580729073167310600530058025209969594728719932867009848526234158568948950537654495474122276177525148988857012072477705757009663587405313318172188846258909418337563194004087558281484226302232697291971862360804090223917858286994639715606724643053173387689327386207248585557531574745170951073465073977889260671505362394550575400631150414660024092366096642651640145114188008466188858148089655105010905081440754271677156482991529650305583803508861983876925003179885822945730442713428224799533220675297106327754073028100585528719392514260107695703873925610548772470532232779927671163834251993507882833145516942250182540096882500981194936397199138888672285080965946352263799820175798519108015041114949615404115482363124462209163323090824268732640687082666066244912358653046518626990292625751829831626135185816691694463687928583499815476999502937173413776375360097346128509662422132358982214943250930678663822347925962712978616830447572360711372661439262867815357540834453798964137725728256650200214366217879379555335725277578387615419894235037749818546110351321593658205575617884710806481341881850647312243054865844979453587624448340748657307821620909940756659807055799877751416105990965750503134095875909159612849704957101968253062566221357331658838046967107590924134908175788177305771817598536616821431522469874477956273318877065702229984569352105191212054652860422132845957316670100740288651784292749675542993450210009275500596320705425055415651836573994105537471771784512330109349051364770619893932142435758194810935270946837757817785324631630045999378776744779273121054566441171597141487576875429579125567065365831811751640528734014684113644309919755148532538668111147839275608171684533079529515366867403286839640160559276566938856387133804731998758634972339734657709786585084156054672488054165789913767695883405801681350274807512101692536230411567487735004178831616845224637197158433277216658100602007214597755270076847346636471321909455937826302575084347360403064379039620475982468465421927391005568794389832216647242911090869218427655174692509778001713195057746246471616510116436130350139874945960652945934431632734131456478931702847954984840092621877333261649546009161591441166307810168436993700028336131918512926883883131404194803903109010197050638469643739978554247239246641813265442768366141113654967977378039623531316614456283075110221675863608864836513950083782155963055751110888715548453254499371174778830631895729213441716922396986820780090679816329800976397180051584102600462102719639735649349157506084648468270363098147451080848357929371591219028933087464923482074876915996636907227017670176036178198582229298746148256761542203137287926444011023649316287361183841564971765114320134854463703032663524762263004403901426695606920815082728934306968222098007863489983326899897449290011804430043405901620270687316440802892599725572277040370060931162013692883587917839096392379200870159664725425737974322198541778117705965086450310431974188839416973348964658731456040177221091419249155275537854051332877181160862769026411702119902634445779901593356753733726350621042450972372066658508458970614093701426040442321521237201493899070512534376472822725388480411611536399283425014981656289799823350631941221623804280326885462373682802569255375487659695155480431473905447746060226003380597648281643403823647475703334364535991069881839953905695037076726128657855705541544698019061245408118419725221664055764529917084703774394650998169972128129267305735185987871838579531274993484619101992580500363871420634242775581747645919140504355825135163252940109844068378098711546005447679726330260551816137312915542874496150873093582467533066261533442300290984209229170835444321791678224599548716011918483408824676189203339055891104135112575570007867570289196041153616516993629093383413709004380101073033093880747272743240843963245459352142798055838829128385326907860180406715463864135231185136323760290707186447875004520146072531765284852650132809835251568963104126278257383173291827674033762556701301444227943931362569346310392076270403599388087413000457125052928990894051365657784171708318991833022910059234200364425750936185825064724705480378667166929660964861135353263509405849715356629100074368222614070934051156377434007624820004609464334863561056191786322940221857373936936565947540968708248645369937844465491896684204012136652391241875583257026805281654558963247572370184627905929864818377680431100073677072475840042731870102061466333799519552892289605570564537622587296564642779357459686071388656669975973209089642288576521194574946548704906827781828159680774444128844479268822469188913272426714369673041461097285166022327917433467540982898712085204244960210083931800964854301026398306864783145004023339611243698758729879765864371445949249640261224140703660194480421526877937182925021106612669518174607166856220385063126381821300672249535621071187888258106883150845109390725564693953355315499964403237371941453234807190029168270881668820416148942571755859649162395365546652356087406311007980256032438635209318221811266613707784719054884554508522896002294610214975213863125303006972269097190538167332046222388009178401417429343899254275443181081174396194411073708370609602755054078391547081299974631373589122293585574050120313167903246571499550162115548690068949615985855164232601745017153176930705838437203864418435932677550100209965848880063024782933303486905871419318066849263492509025156834905909055463801205977287595853431438343846155238394630528987680138103396226953324876383991233438737997177860325517653373299786976599300883350898967212669739000731214923709607387217526674992239180018911250113154200493352263698093804180482192785709652730814540493659581344876871605029016284224573757459076345017021649088488007068042596833066488478980243875318252520986915188469663513018902450823154984854842062528546372502856185271954118296347933417425244930716929666150508895312213311711521154199667613701820845473335865542754310477872055756897169932062824104256178317527923187227576058221024453404723353121771402677737723738618390222530567112125366751596659979837957059449284462286600556592876156539579387786576678429542634680499483974838981857362145203185343688445170031835579331759034203123786845814711472345273869376478147859591860790646810879055571411730915000790911272418748244987275270586511689746305306616185797760063874710114385440621872178379302728470047383761979997048727543762800539695365310096371148759232908630814966664372783368521946722948391859542133738042151057040398340475760631339677470706307133413384338986970499731576627383365515938370216262139270172422439289716776664614015562735120831834936166684987090794294626036472032027051660222977701880657770711180197856894292164339656428769663016027876172680371311978669815007735260400617725714988887808607822689770159389204072969436895951477900896342906775990985114334140221172329174077063321283151362599794309244529793292352568866501986844593110911309223859514306855305411048776427162738457228149014669397237997428937148371845357430203649584273812398167436434368262530930293969525105437678638611093782131563612615831702282334131413075060792747415379904885130446103938105797198659069303400789883297397918109145936777989919050167701712460194142649663267851890680011103390192896310016344740558321194032294956460753836285200625254015912077632256636775398048076271804189307387477580455804040715221086121935774388108441335585761836391965335894634977019708457959025401071591353068986366425611789114737231240256436436463436566266244547808665481620385215790985022085569796859910726655578181808751095526029175899578077060927278287073289435739867540549736367941589147072283735195147809323492842850374077188619485537220682575392341804225911745413584227535822987568185633207599675290632589992972031848606530958500361634503729315122143094020908335153307568680030683066610111204781787057886002062645093335956864671782829230346744593109751428112953874513044720766223352016310351261500985156376800274575310108235541815143022799033728028371651972061319191581774814033289689285411715476237072698484262506019502713090107192162653347064959595013352398922246799039792918292822836503797282650938450356196603609094336465699272430468834081204801208850536232857540926095792703152870078901165117245512197819059362069595053331065632444694190094281406158307400332131382746369585976611222953102084710247907237222591531755732230322405918891966439876852221066650183775563839574530051000462074760025274144484466030438587672964422861020610012777009455894258823180661510126322827504345141039094529208664721253593161847598512583182075625182765226086360138355083626461883750497069347530462132923253508646874326263078133502546751527729340113121355494577170890984404687950168190869637163008848673930155351842785285411490839424032498322846166398804688519691681896660818586720753587358970630586330447943213464149185708246530564112847255342719840416299788481005506478449755429515462316441297531925489764870598981148831007069427945534948358750539200808909835162737924565710679455662943119315709110215388107076094680612135991494845938820824322262177705438882858584563984527064482241131139009241154558285521914205814449674607840284601716831601040377154284875573429613003986380961269459968189757474507497105734416727151009305322191752163688403485216225840640545384431902326089468821782869841675746888827180679187517451038136429577952732047117007873166246404339311834237602765559419651220029239159964346189418246963689649989553014781345304052604644677231641618687701054085286226083268053915446921303947104808869681276484034216099581531115648082579579649299583984361413010314180972275822513251512397014317560364307167054897525062850130776314933143259473409407494238569067012296422610316151736366468226075168537241361793162242669380536929756906824424150185829057200609671931769928671431979233242772121784173675372056157099106577330639915134677689029546910613082726304913954445791569063851940046684727662311573613860227117528641293067612922144086387614978760270283436684171234604693312136304395746130639373671986522958882308180714464863151066067999052908630384584339532748891219182190177443700451515752285198378972750732246613333327234963126295408718892951140034625026826111430894772587609286383486617787341156074812998280520800782405449983736823707562068244788298745703010763411673219850530855567500193513299461396191093906139429563484565741879837776287178511287395252055240654848447078015397881629788805650433327463681447628079739803129293241762004828486219921895277064752465832004341466736869678403104278620788372093286792406055734281916384647648097995408073859823251110645412026725632583283781134990472221748698546016103692559994390490126889895476820873049974323161926542939583641729527415534309877096565537734666075145416217401226554859768813945896658555941023308736035690212008836651449576734337613779467658573361151133129441074956610694994963301753049858262190623797309619059028386646022241938984938061000835325714558937307904119032269694318457931456857942718865987911904752877936904513928667229682187367424622022692537191921717822084880250832614285206049852442401617850091415346791615507105676310120714504275804049176114928819639482927327152741002804356198451063838151151091434788562784364611477491108100710368460346665438878714405905616221695013941847439650248935703758915859599686798189272558998921502754535450033000375762673914147663433650374158334780661989890657010712591298424734804702262828546660379626346007215851836397409031613702346438631566773401114772363283611336423357172619866103615241337769448434654280800790924124212241637437521849302485136800769429946225227459806515756603392979530231555250045374591346940462873500988186600399045861293504343517561512209289315517184504223522920627929307306123659297663883602373066876726255060607005138477598315992039347036107690580820392119656673730782325679804557917717213181381207170262250314666779125342377167674868639540822019344099591796645530289634841387699866365728202485822671208095103040552427651589122056950351127028356569073822063339127342129735644344413248413206706925109572893866405070107451186222866545008314655127674541525795942590073764935144556929837001061287317279652137405452340987644888801449246665566773760608978197567821298510499734067891686370431559897450762301274815249729379272073918415107217958177852880074615864370575520343242208474806720213237831220972493420282368413471779010919380443799224670405677353118857746772480514250095313057129437624633299511151865149304905592763131199760793508534573567689227039838826603179391244818877593623012132145298132474749642089285763081317139456385932654213333520839791498915522916906359615063290582150554244022713044170896759661534671796577682130056875238694375473472583836254020317051532729874642333541405859655662597870572652628069333590313397926331178372411285339502685097395655105707933537872788061011858420781852017607264548393571621629978547047290058097771979458455656041347069446658969252182104315229711378200264040470648726405103238912519793287880818540402231506530976722963119444135496198519800584359897610287893671593925659573802037493702098305217185115397443263184567855453394371246507949568089442042667346708080337866917124189886142069328901641613366736829690614822686758203634200768826087440610041060330453199144919923437703168041245840690952943204057111936283595799103159100406888475934328723891574907719569282029967050768225803249554227763527638958320803338372428350246185154808305428280175179353040132462821320336188108493487312085115182247488481590423410910459368240771106276405063071644458915070923571819692258176705209001827555808438947092014100302295562497891696069342355560143494528472853231022466898323007678988210305791357303866945279196128375610621741183266435071983440140825870963577248458381301193409230558349803858348822962141088547194753895480198009773672448297769344251121928102479718015380124773760759462268917786837193960730080244352869854108010323894269413093602788708214866340303568722408673188480090853792932508575154231522413207563085205086917280641135452458372756774808122502075687262321881334354086113993876644408870546884224493475291381910518438734754937286877082832219070119575021003842333252202748886638271846465121168090787966756456837527971634002735010843868102473915849850417340706562296858008287560071380065860551175015239740033080381814536159393557216896751486698057883727460535341509026997463075472714966833960995210234061605692190972970415728050991640396962510744564007352628001898235119490231531613110606627622285368189529796418507808992510906662149148499747936662015223474673865016024796368267589050312109800563035363362581552722679611726859892431245709083658458575292607934349600423056666793177534244291744889474626079475648686700074953065049711116746717074048976754993141411226301742739937790679771759588720414693472297272051356203282185690071327210258933228410474294858594603045481090916781453409008325699701755302588668723368560166182148937375047973392560986330841054814431112547811107386535373495921615983102265815620646779145580836149625714915478542246417247040835771003832498453270478194222249294171848663220539660604733089473650959524519644917944903857819084973959099146434200151911776399860829854818181091742721480056097139503574544753205718097407872145664881422742920209766688957974358466775259919457258819655186158332157056754341663827943926451587637313381528546129056252501824670660345107736462648141247100144878758109930918760418810802044432704815430104105906246843225302641798120138060825111696140804228063944373936216056991301754878769330871930258183271852296000916896239922993983797144528986946588997873447957948182820837590254326718516740974081801936774505728177903245736862594992561490951829041797911620938766507873076782045338479264272248445948771119373335092599959018944648920982502943476015733727158396597750591035304780542223953642004403866563674494086655769227161077649185989369085273125777054121407591028859101130679310341564376944055039055075303354237369420689872048555163185168072989673063625934131378746185765827727066458659129403695946707513786722577644034454179944883338373406577599872291715320690805497815821365357818289886339927472598948377024147595677293627657054247712478750436735261380428088255074468411318363975737552722035136098089367880922637365266679874854237601804093983291680872230441637914901208384297924673186006606222087534420383848271761782034673026159129285248185025724873010995077715480044018096131337986035103118964084325451918932144412097617591744444136360738029495985178339641177436745797876466096632037961755921030938830532355026874925318733803817973365189355398526270254479247188324639358989965951697825068712598760838816548903569154540607391364559710005819848353364913756442406192908891847617959936306169848974535012222329479652748759169739638433671501543780579034784582129013611093012450661591717465794052282403142439459606664078407493296311416641489064914396235941580919069441705213621265737063916495879921736068737618857874005256094300503501947387759020727664440921153920431237648598246132109325889778461374131909589092874333487525996303399185269105399986471275916567833936240200178239795562619131165373112776025771026259817061293896931672066528424687064831464311983737759071516116643903938507419635189177100046556107823561357817307910385293834675765490915680436284247298191797271604100819828092494936842324259888264397856718861450338628830957113529985558785741486075833043996827118542619594006028486187318713641777494432467126246632540784647135249265642242783055222332057212000248197537005429313502178342694659363866467428405008778629662989484025931459091783043564221028958153768543040359412218304604852560219226315771231494596056684569653004579191969384176085099930206648355064344079078162968888414254984784357338845687878167409804403131445987314432121825759433443271157845869310736254674207292468436582121047956021230779942273931784580275353743556064610037829000614190764218699038340532431313748290038795412199399077774519106898030563650816585866616977625364855624169454929615416712404011991236589781031296966156002517812044814938082745119661574299039334436072185452736819637965923369516289171601464320457861642433158140908059728353800398142657023379455121930493822818968934216699429767726677258665686123663210783596411588671857923030331205813002148985525515698222422211718321174060705702352346373467685788687284063467940364559476905161934442297215213926862906397657354734470048086539385285748783588546369318784338710473259153828730467104109177092951407102476889012130929314585965175631570351539791208786075476343265184547040923341706766483727836646466765167850045103048318807953595990937684725950807793977499390577177650263354149447250012915143138380105865976818428361759310941395215783004464568368813646524295490889600213519436524448077479292738366394724424440957666596488144206261114486333277918944883489822855744664324657376549486223854420130268606483458651232019000735292178119953171023320777703913041202252917469688272573775148949284883761614026658783277148590751086799170277332094522059672968096823790595221125690543584986637511588720650568623535099626420095303603246747416689077293901559770615660390866858282698055906482914315270816840422302292401387209099137910753867450197140468189371478585996403521504213298051960644377324528044930221823372940606271629381166419518160737525827253273731728644439770142690282177257990602882071598822755360097170989238853302525198902498464784889715329535375727460960851959633660568957734244437322582574209866396211071826958236964708740833045864377643900994764385321701634913499921453055202997554029234452773314146928642922385869947278025481204302993664287108917804262104111720641170787897312996723169194107615255719663528542826202363872482682700563948500977687653454523932131482634752271220269598703291508631527571559212856496246165978403507964277136055279246292848976478522817762602163736397555183159048268127838984679175923041982474687281921558409503193508095412106368501010091564193742193617353510203618641644856308368841944962823936389585632039358390985783730020038447148081170541529906995712373603089739629624232324581540315617057979136425845061800095185116782786110940960733656530056494561051041033884520188666509093796895392406766081363951605572010802073285157374392422890195284869226121560763959389960453743115905105342360724703473049795522179829238087180532615279888756643600087339132101849646657888432636887771514996504570561548872631068937118305755709332812602920523730381588311999390591171002919192134401674244475865862427236202943132922472251644592964291521971740242370599104673256008268091177494866398726197045005624631502134723113374788386980961064578057066764559344021085492067122787461372586095987702186057868311265226768419321610997759656201579732389265536367106737733203746165992602457192557903303352960271675417320197237470407050380915835330772389083021634993735558811143183416043994928352782558780297213870924442775016874724304230360794137644211688072430499221703014726285819374434387418341674080802224269071408103049666318143455492546461846618483827451543655248715799213650620592286386201207012494820515790646580469279070155443874966125853403545261674170951309911155220776667476164512525443795617216311012914400872401462539104444946729772427406657596777742904833452635412751477348236710890352523887625293401577901802143968025278081782906565623111765249209736205433444377210880108572265455100631942286346627666279573962862753756672798598203337241306681780982238501028956058827297985890095416337248281294969528757571489112603947846410687447039088590915552896409055084382396704753042538123687662058322532904065091485757010302824645955552818152033044130467802707389991430422974966034724231210589997822954407893473445625992496962805169107653708190328276008777369777998831095294355385278076943168955177813359993839652540305786202309910355777312323730129852610472495865344784575788902865322276308014261949715451788665671723017828152761477983233486451994846805920588189721734560304271188116364037661029228773314502411334785735687064829496088879389036050205059689933495222840720157642392344136366474554730029568978821017836125694412833664691729944212767344991221901951668084579529530727341792491972042210109811320997041143548094698374292249718220193530662212476310051180233283729852591477817496826753929958358086384149179746441114651347963927880716545360978270165959655941056938149740516964292558984393826888995079664492267728636645467221594750328896247634717995901342971831287401894236319789335682381060549576303115294477912802381570507268274308221606759579168527552580019598152612260789575949284813342416283256168561665816834067823466427120105048689524020614688230456187059918075162149062126198834321511458808654722687010156926214395359160093109677943649933991110053169585213122090711469489214910562332652566573625775536476369739731479730054082507366633747909237995554057373385988024499317704373451210940862201220497145106182087661362047647492124941493877316925322680260075841436641105841401809331735889872036167717498751856616870371888280322002875382260068257073202608122761705247368856035211923559420886866301889584819441867486030032970545189303377027681997122468122074761752134725688791934298363411051375473577797984228781573491717434921156921564149704630493450356471254585418010659282893487679465194829642856726588427416964747980061008723218908267286617558920939552060411582347516520801914934568768742798527045240698322337149389102171315557980127532759472926821450791570763215187079717462316919661550466754420695238917372753110617348454101343860084596037712949256035755607598765057910488127775869885830614107386174625504864068404847445007152572334558103986071483828417027891477611396312986927748262210640293261571401216600651962851208154070300841477428910788544460541878364614846463783593499482554106903231649979649835718486489227229176634070227560124226701200094295509449002035845037747518561908346433538670163544878061724587239369555529247871640768461498448103766605720709875963478707394366794106382929977442697045105644075390252091592428542224525138879889658891336609274458907941752702948356295960564180478938733280826542677739173630784955186381060201403425639575359767589356832831930347888518319079145930155789421542089632692620480683024361461965775961628439584409150232723329406744325300899114324640878270677330371538983322733157533189807851856510911640712157798360804864836989555043382970670009075550301260926122418754314377015166791404165541929534483667963159209761395015624243644083087339438441808957868433969660927133352300737913636335403281945963143537034947548595468754720604781169251339309659418420672342127981941144261740215544124100669815817786015372861038141714336092357277309195572638320195329826653418715289589846668352946841825098543743235615355249487143764094179359637612053236186567755572580232824807619855982724231602632907078218771233891661883383063250136775480506599694212875074126798610423384893032389383370045459111764132345797573897493343003712432975718822852102999592088308615857367105356417969490932000895987146578000286051945608123011635930856623141943701213018605651303555584028743592502934082391176773502936628851498637460116967480719252929929544236786388848385025316262988825905221608004661681594324510048592608253921463000266399161600880363852770697507545033337712026079912705107962637408178613167997500360394620728617076251394116013995631080992138480974603546661356262010709388581258828604844226664101195813872560539414405426100450759762371005866002451066931864987318694027357227284293452436761708971078811935266886493539606105951152550608346493121222214624612184999852515938320616580748551359292228207490812928800671754111532187733418506738999498132533379498205345135835445181394075840254998761452927572197974002169739369497288556449693619616226049593959122383636718486716155280879475257711160465791981605901809005642163872160306048572901270608039612004134272927635013240977476565675149144173534668245311329184445941084971226901727600367823752716458285657709328438182962684212529583271352522644366119436524662172361016126157605286994422224600083326972700520131896899374951623954144625967056993710378858249664333056642214319393012344902298119986639094635196098836241633161130688204820472852221581471614743419358305500372749122321018449575728345324097355949999732633434327282917723184269041210102856525951100526844217586287123229312393033546954867879185496526176561229841293513344759584802813275591024926037089362605306443671510710182875644127894230117939792501583075789618757168985942185607516018559835967341187702171158985820557518578875761659758253629228469930372913285373092415544233265406652429748541707322478633350557935603477341907602560892709907390757652040796938516334688991875254383923684189587057524961176649638042462290897259237397339925241456785980953457954770326232782025519326924761493233132842956734273527426805137236328081502026719860867313188227900459404918245557141841919795045353551643465325875065627637874454108120775169595005246267963446383516120076223971130166757958161344844692637871815570840728401080117941037969749667037476413604372545936426823826235941335273238030531611545589327087472066052879355761169338128112023772287250983981202305585380651734791338717519128677183400864849380007182205715344020417971132325286385579054956578590292949621171014563091448825658923700731386122924211008977424559147989638543351112475272574176855129167967288602138944366309756953976929580034796109913012434482884858449652307785344494018063905839625311660270379316917864687284302999097487709827403540908328056241385235118835435001266982888474877689100057713379987480611861765997686600928867782454417194660487854459074204149363279906859232386957969841366733662733263666767469460633224445040832802318171240337544110474090009691529950678919915683345725954931742102322621687954783263246942773035899729128602808785575167312836090618266448778309937357643268944503627415789029653534655693687919230144825025429733624929714810919624374907965558360625977080270819022397511498816615204896772768346674600963345055312030272116948889962312622715574318377566995889986563817426167777830957986632157472010439903224453110202097338735748229283531176587658444187618010566257871012703845044504271975732899068823031986632801021002273036759256674567365495586368041579198147890835878070648516206557471399644313396029214584887261780011856076018417387353850926308616612125623865241778297558465024876648469691612067014280578971941014991087775171268292682244411016717639273914498610306647340476884326764274342752708047491925374182752200091486258866826133552393499996342787845508244084300813481617276170646011790717930307712633031489011631867139802043748741360295344622043601906037693866222425534193200324981791535792710361083005276819288422729422797603846146527598584379832368188044200510685388074012413130700928505354622473129266873776958462679752645313630761894262184414404559037604148150125990956770954503545561631139816595226023636332254178047632093004861600349824816952722005714096300641224239020067628055702981616582861591077919196982930828577664795074804933273816933033704993891900553760517997519009676825696329503493247359994786548560576002392768559141046206376223131059097516961135221005873965988547638313749943651132677425406978500289259811698316203207999827608476625158805757687386263071079787029320203826609612457022907946772372806766658613944016783451587833628448883358143087559653847605902193442350851522111478327557474473157889549497754415894889560158543523771259423876314740153784829364045521965083240841449282246198137300175849564272531318252335637464190335754197470268507006137281036132961505703582395383529244745074259855182775631035372810491057318987033419891092682378140399868110718747622411524053066043704103970727930691029109010196102522887697659311359272102727485211239876751052253105714055003768275345911869191164546268848651183191924116981740865816182927319316569913820310692146224099430708164856026367241632309655865402844912423752535760514909712110493831993099393475354180347709811145687805458739179855986110893707247291637191685480180636373648686661264571515304216204890089136960994009088066036658582391928806630819635723458459671911241610849469411807632675420035491151484964394505957440776586862436100722242974006576419864689901333174015898331744249527247643116140167004329050200534962142009443822657797381457003962968868285548376724213892720095016487608214421039208248106896376108062698700070936974183775050088094474225744115949724773121396523900792287248574763961270487090117130084729570712957152606108624388716240144101973661787858633418007099129847148547623225045477089132939217297101861670517694225214707125794094937285712911978455169520197513393449194539690885738361612968377019493871611728550534368731866118248489016762512179283194554494854896894662476366671649462815050579133262320478111203888832688618810560668328117340179368298357921324443294142887571775527457983110040978121927668697339168934808401006201992215711874860530906170521958294543118330061575907065696090802794391742526541953276176339721373120312474214176978106627294775683143408049121102346338486660620378679417862528976329893269893592022832434158099482241333762877210068025400949554469642950027368226364639169527844361674920547659677797084548825415954742041625631013134257994903456571381003692730458570794112456064040393827912797868812998175064178124244585818671022514498057011635743470418736398719922646869881113252546952673624923658503368037915387592992017660661604956976186359071155550702390263561235180722632448996101631358021382315740174456926881779870385732861621087058259214883158595764888357304605435311119725190385457888880294186004730181713827100289054133369299075480275444940522550403248646158915143131830403270053299653903220453656783264421396070970133218911761682524234562876886070178899837102780247630641842649742653776982155762214006332289060441436391440304833759084769508941301093976225168885650640677580054957846324483719364657044793779071953893522360613204002710237945151994129137175442303505429822612665951355234853190411736512823174454639387335456645872691870415141536892540749306245344452572529757489152853482070544305444465597001410323586272549053332348971388854249247308522770897315379096631109117284658803845531377393252602239791262210487446066785346200895323968780544059685048668115475068868496536903562034610818324762181841402045228271196625336344207316829504429389874571363493598044698519274501435191015941893879219052317530396251082768726904716433519358629196059398254576756992689873565138555827436898959320591732949367538641957151767677138581731006799846232395458432017545692849557309321253915133299857394310318784405441416754936840359743226872991832862258617998016317718687822151997545487104162831127868995062079768951394755027096768137730612326731228228576067123646686646580388178093647979728873393492943965001380597729905331380335980507464216924189748010509959668916295344489479293656057048598090003894032875925324908403472596708293220043013071722423944097984271387613545742326089029739801499524090497563396694074316656332713481310720774708137900428836639689408020260219167858121278056305247524718995343740784770399852624312369490358226571340325557922296768262339600745356434616411702696297087509348620665074428127129279547427049035607292343524656308733056211011558918259735947599265170343910545721273754359920294326038938300211324726937238798795745800430187977074480357967644016171490503676055193607145180514217770307907656629970957034519297574904564649726291527672667111992475002402296580623130877410604987176919982433788408533451971685904600972364860896591755031204455658744102482923297984353546452603463362116195424900498430896854332893728508329313333786417841797106574001862222777646506997540213533076827619407003211184499557357373707646557812674712691325325259588796853513656271083004194671014222193990913876684196345176344412091278123866521255332536425569614566003027295312194163222951094850985713880321992665799789463540077703299992793889712940635624996557073316542031101822458566156923471555070540981034584741569850715160315331216836209014992204591373260960994368071555638640159361553789206160323017015811070293608773691200504140570402763259999643956751576515956271256660437185555375438085211339484988106778269042347200644596277145288602259268324953059199806976805378405400827833924358872312166066854665872199100478697192999227140715624517024307874258673408436262806268832819355763273831144614764874243397547335842036448957223278473629578642423352878959496830715332250007134748648124976237441779807073053510825434546053428223893589376284743911371052183070384615450527301921891440936164501715834509891210505758763847557198126377314823868550659745657625549372595875649661546463976790500740981469881753472323875444136621477635062522304053297903853175354455171540314057797830614197366145929884124982251495517812823986547055704460441178206061846171929788168679474045224965652490101352188849464740668959397809623140710120046881914060477532521493912135482432164157170482926994860772285909341049111290671000702189541990770851687966220566917603662877872777743583789013911298396742751814950757109452049015613784156799109420388294522460518070450190507428929151942551557264981519510575254568123853445883259051302273316075286088936459062153696381312075854604587789242252478396511167039669372185898470423302756650226514464201026777445202166038008276365337102092049086529941210862661513899165521441411325971064445383729194988120261887628970639660961099385321382268793741796738793002566978092166092701622752434441397259765530959295431140213549146069528862007822034801509411866340973845777694245592912045495613153128281790641261866715711944812910219761096863417434753814391290481162426805846360359508571113785007672982319296339004488801760650041312275534518450626327938954161486140896509608800234588788799401242356155929187933243623749304790146445244757193483829033222976792586999716395419155747084639093311193825499681419934834879675662605083918372899600186153058682482327016747574398401235902737953854898731844846048020376375956911751365571504056451887759223832355426609376437486732078120718775508352501478168724200393028934528362547431063042622330623703526249154102158687979002818388367353083342451732187888199876274648718599002855678410504658879766221430780325931745641902919491161849919077136428536777787336324838608569557243546430203268456066904707606691725922034454105918007173320196775130143706884720394631000397656265079231729972734131334914564183402151080005634279520640684924819360359219977649687829571056707656741983222927856298296330671352112784284368046636822009604955966080582949163473088857318266730154690644218586935074936048266059201439335946659007851426599829764051391707735398582111876476097531544192554490654249701117694059348999619015019047708246103932007999081280230251529218358594321370415904232751020484347923381141298219199917619956411276039676316299732168787748239817903130899338270736488391139978530128409259228155462172529361720794814610316377113030210093337421288382635670209351695220747110841694282926806538567787144227881577588490387882387464988555039609060284626292985471099491619004113904623474261114452393999145459288733998113615180858085407996196027021665540760701011371403142689972197590506303787689440897284997228187810915984894842961313804062298798938633684262454885337024865714101852904691153196930052214438994528801612308488351721446523872756408438871235772890937413687830354179729604380638249263963170832453828752071828206247140374911292912329342930271348930634577551323778267627154501706877759878707748042097142696669944540856808336807493586658149134647584418447511243268066268471029246357228153449299268087266215935868073105773859319807995894462921361697502814793382879100352399406985448921818550805991622717065354437779186745114216801828248898299465996194658096083900938824387758122484824336254006962837608442177747204637931110025066822488424896820123875495845005155388967915574503373414382499811402674228310596223491918129667811536516489803812304749695541523197367285037806443099430937526539250707100446107368902936354205826604602185300971547796969977150260248485836859112395163641631323382905619357186655222710358751159643526077731664772497152811981662709843929789808468826435289617605429984479722418174556367306909551427053000339355644191273448286192209207943759876894062010165002499329839330113133345451772179488381108693010346689841627999175590532419235913238723000301287586117921749084956315291879821392783147167151872769980911966514531579175524035122370620255041106233645601052725473314160794335801333228902610494228980245571659299216631147942475200197531432949325535141660237485513570460985124159238362995325797092305975922272102265609760937746634565521189271207278435817920388887916170483049341353442921421002973972436572838495320547439731543010198372935112677140057938756285765886080750564067565565959443971425472609969715283244352649659614336181827712132393922208591564954490232266027837205042176839746163865097702086799543129832498399261602675781330982421593285819454832054909017924133097108041147936366490217252380376208282045389914253938946252993024172503283684856607843332489420199431771252868599971810665902094480180692907200512609098862326033925476162744002701526861349669159959791168035681322352599398331183083993197235810250317826828605305301521755179916124365443090123949881899670351577068109815651453020066553721296664998165871035102087655306475752358714850539528282074207403662698284720188528740440341756335327924979657180648208170023170181178147672495724641218199657726206313477848939965277096336684388101001305367394438097974245831876287356619997698432082661668860926108370359204891034328715592123870324687041550805488045167551392014573032304656864680529952805374645670238015790701570492563564435292189709929765678240121801148543102933770378318271920320863029990575071750040666684634581826415284918786860804094901500589808464264062362401898418232926594279108628947921469738143881126407160076232828080593682733170012414081968175952949669607220527384544741449576907575495499326766395227352888890324521009344928833301527963822052086836966613834327599173331352921281148239014248651444963952125564447920532806640096481675299282187300358584682978870868672595396686234318217338900138148198608585784973252676817661148544525112447108441761996918018281452372273015889642201344303332630847159732225013360061763294211807452254342129727412121902692715731761436066855895321572578686425212791326537340850273619835452779327422956609074198662610694392653575165994665569548071374741380448558377008225336080823911234173059747651692627851987872472879357097091388251297477151571729263820393221998274422690996044759222074773193693768200099530291953437830914613886240530176396515362949569961782222839147733138795210790833864099282244580717473622844459341589977238404121704932724523936333316141779298117483667692268169049549400932086496525813111427368169115169426128110391030675221314161964566661443966531946469953767504930841671225442878614757142042684883022745978317394194145855338206884343305801236498761245213098085312438016877161801075828039890984219434868192017672659867068406152835562859858037981389872067792296065833992143383284382410459092284064724772100436166040717011320325296389901386677262906542022396713964733558228173967894194822278532271167873858080403239751878988196350535810836389190288103340926665500464356763606142385503334406515059462037066328112826764449740347345442884539345727326710825413658706844173799206062099902337079026574740253704721990517274751293447236070258137595583876982292242072446436781954954579034519596589452816469339301584216903297536252836827797376082930593105373191093903121334190818095088888825843135194325299141277329863802993887688598103978745232831902087705113486877237833869781902843315611164440260469663968956495903113771703303038719630977979933364565037573651102957126901012068228762556282099415000810595409620897766156380695422872116516803697350222352256547731432669777501010908986131007022218190191635068544546540871105739556232172423973334436435025563154534873866588892017485554487083665554673370969551629488934880628937901785555560215729445378203386043177159956880475091521238820528742065948695091292079531375355762420134773303304168367471547484090875286082913784859655620917955182506072873575714927026325737966684073552960109967349846452852031453727578377484912384052753692517008281228927703523691194737292263432695674941656120562194775076549884753434026046367389073049621411534604063056371327239910589774795958690343661463778730509782691198756077507236989746793569818382128801534870338872253234636096454845036168145094815216446015967236114803464817787889636459149163702207809033452308415176072591461792754733261628118892762260212691515964379317320149549049064241758207934910782964666226886884627092595658727053748449561259989706459193429970907032250173035183879658087894017080780254684477944592471803179983491753080695972434031974681253727941327446829846349363263945819781955646132644035171310441104844509455177793551462814802715749003202722976866586318187349959723238162210750872565689689176134174070724753041157684013505070407807435845100560398288500019980656357414082314320534932076758430606963110010997189006079643215417143305389071151855875801830642393981122656430013179540456771145802722587412784680117777542115410258222567376833356264492438395158849236915133648930130201400706254796434018548933894134705235992835166100023735542258108917872885718410622828735171654976278461370334597961407199727656190400312017101065849047574541137816641357065498252475396661161817370517951363756903068818728930340377154097557901939435396576204875576460640848429621994956530058294627536805620375561106931895114994114108109370599114178215322599707890570742940600630910117339122540851438207512688766858089252702110315187067050605509172807420940828538403000450779968071893336516117322373486804757588204438906455542060724366918227862450303077044385239768213284492097879759511986703324492437088347953020717679249768152193386143918623066582506883999440967516018762524705302332742695261685490668525297663403800034114260992982731661130397312145574807939406775388849268339844159450712999540674574911190557250905107033867957629561373728733259969841421883330866557786097743976161398423576760422131924287646480353637832502929310232118821040429318261092886050913710500611936243809496718699688354888974412397169199606654050655873852438537524421058008636843847079292569017784376502777725519433160036972008727046529512216170450527902443954263765919033740346303603775952410593398797603589428671120501992366716772339245430071601977116222197071180791843998619841102765983348596244113344235474027508389360061721691077852619078127700222621985130096994025369286301699197457221534019130902997224055891128799587572558029156594037841821977605733151735196330091663729901565401470226632386286352620752373659242622492253225212687225323314174942642511959344030947418961291659649363260605968583634400013231719260909368523905666336211681447594008700422378035977826431224159814868547796294596466777428857016973557773885060812378761722222973866178353985811145461135571219995163606742910206836215212864016493656755983704970556384989995401823882379639520350474561336783008254965537720849510978721007228565077659942506584855357855312274260443324774471241627151062265317555108241384407394489890473847514144419198248196674914397698000982572107603268653074923864103809457067819039385252768318286722224954139200002474561853739780644321669586855009146478640009578818108934679211082920070014825516180146869483345138621195542547336468188383759087590246057984906710068037828877379118071525081780330830299954152889217260593989345997441162535448953245647747625793172759938708573533585970009538456678215513345569479330802602560956936430707007056650908698932751921622775979371380887428377857660280103496362054316518230848735194465085308798750841472075429163176589549338627710000732406794401712746910918030878430386317658021154598054575809676450845224971264701042723042925830713662107439448743804358841336466135078959822324064741459924394100846690669461892189479632849029954738303736483178000943458540654014994668142396344265418878505088354217047964317297643298569777701064257147311724555734580067767522593040286820593605560031872403902356503340605347246906794628321904147991414870449413737819640721493708189787700334811635626447207129328358619095638526058491328792565211889083692391708443849542924973142608347167628250375167222802227674080141996696839450687772324032368798595482005471475354119614591488374937188380080259188346545406474334777845560678324787677964158706596147387991694515083141676720303013758484362601403253112124017985389306351806871901731606286553898284385923100635475925200462824687019040876778097614900300046395215112605172504933817592980299524938940602233824641159400537169495627115733589183476270299056747571459008377594020779246936114163981388777818795154053775406716806970562649863563085560875940155201927099738263563061353085109037480652022740714236320366043767149481066963298920892874942294025570661607440079570502895507478996667323351555071142548643301530692884830761086871896172181105104287512417282962008075795823159851279764360216697102996175006862319749600536361414526054627848773404338408531484424131281862565520103539334077212256341997083607003688260415319078819991804173361203759019953728492005006853733234824272225026193085836989925312669808660060301148763262911639133421048138757324651183892176751810678938124378780508528840571491878409728310853346030498779598844810802766796534278731719431072883408802248123137275013782194076527532445722451843479785866005265718673708992756427806596072947837384908172114268570628063421603351811170040569325590923223215953797751384627459815121268712760126201652691051554189982172856749909066479673133007895063094568085776898808212462160797607858959248248846433816304473469821491852375973503529393902643117539276235497207560493272148082509800002144392807110097210334406209462338595455003040467937914968176460619101733447454640460813376212949340650524923265863186673284514970264256862328044957035796041051954502973326489209167573633641753107488279792294963623626725060798340981487837536081905940925508636938566611807765930220414351352123338512519400498668942140244365900003591645456429895754930507690101638351161919318601898376968693339298310033583932157611693421985747905954902250363438733330179075601822869457121206970247936883363611063151934193136441552891748553568222646376427794203422306466400623465970886087166471796362969578501893199804383511340998986692194951936127626006676213329419739438792860965848536349854153931532549590588149794820649031472884847274882230013305905098148264697712554337339596126148597436718379869096008998428631326972171079454213092437145402561145477165855974328955225475804288112096813374520961580729949797712524166037042079421996913854832487367312353273166551910065232207779214329160844036684832629748273912267822949167158847534237628231077129889232812566083014503263741131969049241922257547289705548730010888214543192860327341652080881000026865450517501754249652877891424025618987344797954193165667908122581354386343700350093913188100684785459836596494931845038906811631458357673965125117233832012453941796853134611673767232626275915711809764307272142194677889680899684599954004448534895108975658973188567380601821687248924230208700837292975698942380034021405840490191138562575384511977190445343180781498658973159563841000015795108561860008310946584927446877785904148860222525195731503762712082699415773338154205043128857026632538887636544547376870380517007580721625669992823664087116205393075275924066647554011664379015422564933339739227059273641672504272671769868925954521661464274612100814089543666460501475584809139768281871691202174129155154742528408025239683367397855734116448991079619536478064735127562875201811180636439855499237874572449145748637365531621317973971814078105856161555901959977948485203308080694699874735166822005875504578159149862620946238448311875739225988192452617278396198625438754563079801256985935752661966073619049347438507893135000258458394976499085159616225494440648332850253101750451966980706775299000819495133418280699743371997813439914172190622537913320026572645335040160384107748153989406577922964737101384422933888686364177646817011623108291560469020103740645682703103082125780837086044122094862462690232206700760650191526835054255656331021414974861077803794573433149090694794485544697706142221807686736719528261833949930623387540456772833164572745462498632740804020370226895232010524429563412057678409317206318761913472907656630516390701563149237057238741779092341346233763517748516700096290471649698478810003107644329101525451803323938397156746962564105116111610402447238926355917829930221568577447652024509595294667531870506906035947053757241085970307482783132397803801936445311313893576135898691449493342107584083688357084315636119945323488532731024651971408454090209345034730847434863615466801487160802212210517968805577533158362506703558479934922629475655041987960609109688452754440837174359102619943450334130680615873967406752766304243942364265003140594138118949961597772466000140423597761922410862510995069198102694829971281107642709548463132862845588246483584379763254780345094015761030761700755609690880821974335568758008737837267988303630853410877013523940241061091713077461402985350539753289359954570594094107752625511742130330895699417175499616396811314760421500648430815070254628020316376788762747734314557820450434755237943260858689347475044311877852540146849989350617895707342626610600550650644928065344267666529479729530371798629851213321405411263626465279373052239342314504007647943036623150038852799613244882433834025865553678515749680798188444991948453936560439892794170902530146446687668554244681263467452548652827735643355468833131811414334438755179613084215467014057912609388240182383158040962049997773533068021460965171865153874465750375281890677586162408446460342690436545613513019890893577395474924371284517343641435692565140794432013484840326390467313825511416910473085567109778283812703273510776738373546908583273666483686983443918291534270935544636694519788628574311807661069152860594466720759677364654923235192917360592044721079260336782315874415973400415640495741203226979920599146185751173023395612100355067019962995495934437574851325284955438770090034862250579685557467674740539176361729026856138701706613245967702405239615324522420925822227534055790621162023962412739445574143430096240936621769625662720513225454529636329530920587188213851762769214392228365886164257768168209929934339925540414506949406084727732009921385713143149353653567587302452426936392610125634476102007330679430874515280923144215816632864232470062182032238710371301756086703826204533242699641161779846632269819819726942814778056385734629456129926089879326798233497754435558882016435718096605096420120512555056280065213215522889107952923671019350739077977948407068269297349805931426445618697476369527332506342254351997270844796076322662876774608482138683807467506003548586645274466589554437630893037523368072813616083830679792108585854000162295302339676090718662236725661621949208070369837761855555265566286568717250170504762491406716609636344520811941920495642544344766414382422659031203912854583536136898565986957748912145829123755624473074180447805695011579097405170390983975606765973165308707851407231870248806339677182335228381299908658454711835855119762384537838083692251785843762653710984694114081626778764555565497232751653908690978445851856000512191888044981851294382061785460406907220408014593774523664971167719818344841929147507171633648694872805771334346312302094236285717190222734192227695552540168723038690916224769514965637687272592720722479273154997601430768027684755015409673757010958433209784872103701503523191853514977110262639422077858098468293367888063955456095454045159015036808542942715257466234123777947627684886892323153905004623217924605350218256822988098746016721011421814959171510296988281326088407281802949838797670382598849275503427062882929686870597021295774146941366767731151980240046685206209641760675174516774391735683148462368508350682778740956487941591351542888336184263794738861727648315093342071559394939127121846295996310882039831279376812416328178942138697051784629934025070765584041923297912033863717089236291464273533196631905922276215156735431198100352476666313468141221536750514203457633802802669651015373916362528975462321873624305572702525639231223003754347378322395780723320724286738839175308186491554514104110579204626871195566538440836471142965035017723311924171487884299798438470142046660002501945446099723594672850739681406163292797756186946715661653639970715200989565571787723102651483426763555297400568512930039265710351410411892772562979291248005785266818224165720230450644539210067914380380245438322796730393823673053778618470033237511225923396102534887875247843252392183653237852430763870993400312493863871936044220307694902210324042181773088852778806716210514574661624169515862799971602051281154986474350010408000061465873239654228147443346583200712065040452172780553263725731310374381965850773681713329221506013516910594927068543068031794717919476158132901209505997615526819671402325040475055403451527138061640516912788465468874757216212703006305626864338406456902171272330896075344448945619007464109047090978765387298510277660445986349811497006286592600824373893716180812983788948850783788376122241128588210172121279642882671139223913536490963016281918635246426415594704092635199414760506731312204532146796150191770367393793507903467378308128474152131581983705899308207745613687936602173783029596071583380248396423120524431258627358448399958669308233925229329160826245727562648386384299724756335018865641291149007086657462782667268603668336440859083265749439148349017377369577519697505866510963026848066179531417238314760907244276826146278161310479254928131906604397173304582794927643634763598605233818394895540055599452798740215896084336743989695347176792571929698241571366073800491456506447459871380430308308388441424239245095722479996474024672331313279353960646424273845208840968269662368422308698277950709713194792486873702938635376372516744289876659633556705683204570613922440360111149062109740986199291969143225792691708497617345003325423500203280557152677784017038097837062106477218149648251896919606705281018355340440877587979988447376076133479896676862711853404178267323682289047076526014721142867189863207404419900398658014156613288223598476935897098419186511686314590875820474512062910792799099234116460986124040393688385661737612195185729952397035149188298286397762436988700583080597552510188081604880013704247145271498603681037120143070951447366040300003409678807386598664653568169749340065886342141929853743822717241138868190174049910350012955299912645626908475934346942021615311886063362584510117066321044203245464032739685193687020775863069025753275004577134721406889426669195860131798035502530313237036476639798098895065064785532195682986847154725143973904449206376901480327484177708432309920754250787360791334163419636510552912668247259319243366574129592136033996493162134057633247768846736904211364406175397627645391462168095177968844984919709862774169024848467676433512340681390305799741477229493516156115902136272861143747631068750284840494123121009116063189893139754138549085835342299248521094654497412502727196931719466811118031355702517558698830303423284595174778847722405677062937449582941451896177308185749544754617566588128008697167403271071446870186657418933248565877126268444320878148394110911956539976680936872936418847005267217513405041698162254780842721152468514364237573589381882182352754758045802636587879748974866170266538524842256783774589773899065262259552331148024713338523788562141089868428442304042401849546650333951717564202434750231167658863109424713310421818182659969664765346290570285425739830055292177041385848694580981324025197957083445013327990835126666580764569484607417197477019957044445126574245572110374514439636981988563318707936790247464692181295654014840917259884340109860787093594942416172280281561623366483472690564578059995655898285770668807243756291948794723156890245173258409364490083760649419260066737190981735261123602560428751624871014289624307687484902596472296720794460704562191641138928069885125265989070174812380465328771603094585968168279284351731384740345632807286252753617637603209895349546662304910307956548852170897610233626470177103810923437853173486865704905412398288593471741965708873751270699709716904922704540719389245341300094314035400027671928379211376113668387813961204571931080273076570014148520922703171905082171530898287660275577223084785960231465508378796755036406916073382799207699244345236606409646890432554445867836546212993600701065731247309072839737062170084504081002111986017345629276731897931006699318989612315164339326934532864311768032812804206486263498737242156261419786603324442096716349610979224620677902779269653410024290676357363830219599674122234695886450827927233373193682613976526689134466493306672643363315615613954811437781906919733522966741305295781372544439015603672715113812680489117680477398701352681440179562060086505037863715820866777915252495242582781256280873607888545545071799346696353145747687830644816366824089727635869991820051405785920546340091321486069803148750884674540624921788259504642031292414830056835995108421267206992879439243200024931730123156941510551934249775605905487338298336231140698729183643476866091946858460975198465087862978549642999841674548735728627135300094390045032256203957745980959844234313611407609298525449286154300148492830489096069857196459999222896835173792955671511786070931489959210960202807120659754711687067840660865782013970281390216561413640925934723623721394896898722259917231111251682383490406815769529023699316384427731263686504438953679622314420720688547686629336859803532034436882676371630939050058942140959306398615426850746280203600938195667840919815620551307902612142249113220086787280598405989985640687058469414715078541360840303471078800707148399470736037150965279099335946983646080764097440644288818759775767108067881849735228008378185683209912059277412042683390302964131233929906229300148327495005448880453539808841945706411948334170495521704812594250109127736317735968754232701005795426853893853560991232911261678158590567811445001554988922103087759367863302026607316621883001045187234019438228871072950038163414602459074102903627207539901838889772094962539968814377116439595972769891645099668030488493840893024641750946906953344535277299071969126750874269124231620587987162421524807816501133507679415677888975787056116975567426745968805480081271176576558417457567479297140270216778620090083435295674929105901505155438103127048738275089591388972162048954833721384960270325164400196441594094242561103898134046042743844416321465079749675429859113192821009153415215577375366341152239759100885158735026989258559460409318694443675110110609119602713904543173048536210567671221753750173130548323717347184934984932388742428410261711223024338263119660220854025756160800450032072550853502291285256793348933645301466761858533471418730777423677340077372324646050989979670172003662751764478224446625876635202448672952941203071780221499142746769777870066296396419575717147848337253573205375662582746429631571045147864045178898738268274945884625988643106888231315089616956833560689829134291482780383000086656473225397365897162322790005848221276517831795237621885608278570165846089440995539799310094097726092985004291692185717388395836551305291642317455825735585150901255214851246193818424950121218372019575242554541801505405150317665638027840093517504269709658276361633624113830477431035155906611474841716707018039286593479887194041375618778904825105253342346121789189609629115826753141137651148163507741427036557936559608127494145791137204761570894682376872275342607265525000933649006436984620548719203900615099674379731292758019133048533133264609176243219850279354500952669427114860826342315038778644032631895261341148271019331324280489267714163481309470504936777987521149318081219929074950937371128296300812731086162989053571650280026811233453535951486092681536924367140722744980951823038676659212418700241059131659707903177687357341387255330624955042283980598907973956698074696774602667124381554002088966939395446346598806243107574126290887109402549908661458886061017332915422037516973621117855590294227078867039558231382691350246919306527372156790317279674682994771784252148044741628942994905646991104942352742703790254259283253486910262390490399864676853427529078868607537367847293412815670648292871447397539201853692532448340237862528844864419872791343148713223441197448575252422351218152419571205056577333178292784094519740961099987288515868134130378700530587592634369302309503999235139495952507380226106999280629295457308895419007744370519025365963427794053794954219975168539248729975442758862745598989645196299196054407725561261838434874355366496477030813460657051919406596419614383251952202986375505901394707565717493982174968442748549537209918332233242432413079873766849442891432346051213782448483532844968327865399048144222899665109161720163408718848585735297625057791255655741322642894399892052633155655895657543931553276836024885534746945049574817350326233289556042129420264310974560118752602242548531873254390308482516844191295268692662354653900350989546316329728122235565258948465903126134110121831112540775736819284361417967724379832588318856555548914395752158833719994231847664591643804358177333447095645317139806942657084363465857307143855079014416310116220399834974052424010326902105927817049149972120532917474851687150820441307736722045592980539252512271503381559908278948399524393938047912598810718165292711549952415338271905995589969292073910193577143502432174805106708667797842320851056927604928315937912101607627962499056138200075057406066142001119785148945434209202590432289475288054258189540413627439838883177065824749795614461551917798258356834076895514096059269909793926203574930081864019036654834970230921876520372509411634589037902775451307918092344248465658432874552831454459679144833371816529399412728062749141276860563071013750586500350856856852567731943558716431083991133041734465760014757790568944347759217813628420742468665364454292925658697386593079420499280512208324870441981467822213932349799670809511728601867938074926827326876471307660923138039412903739323310262816736351675425654243422374756683577284498380140735292993308472981301210191152488986996928172546983779063765977639225838886159312690459575958788329729261278554859816172826525328164342897546299165519273444441358622143919387018495632249736375799237498659539201799863368415524439473726189258153139150430239115527762880777772210083877089095037868398188161317872143363170004451037543929615491418389662071734516288182363265242862786181973529722563289809398648487180154810593891376649143821716390957482940298002839164106874073208920041834741104759585401206512271611597819987644941591524042304432691226059652145783506719667199200213498955724087726482543766857978879020778494662214001734542753204479118875559223466928288177919132155624919864698945184941409665151920748738448648586551476333910229003924248919556063270758068810562374416652384708748913666559311558819777595746651208083533534873866595575506434528937200196192252317635107887168429074582399008090065938533714146932821243636954874459573565799628021532360669005233391017995415145193619711581786371175626478863361651145847371095438597445140532592809963083551827408779464629791458992959030289975295029034713324460764498417933576162640016713252244778116842713715006889086296013857801759163101171176806930570917053390295170226834151220500204616298770018741908833882228647161237980703693352602095973888389997801113046852762927015632641439881597552547369847380398379416802078841629698478565315532728247342405271383442310722926114431086287596270195463991328537918328262613775609186851327890680786190941857754532335707784201789720010117343588531578513011731084126683440218428217788449229321896972654672544339946895516877011272380272906315066414389353151151983488880874965522527762426005869723473587289912006996171615387985980947332541062229693246689371099441006277174699789068482585960106347814617504386210049016711116337010256960900394387042702228756370236633020820601338344994783937440588991142213747608921387516907590439809678394135174826929064008978974219790355892706208334284208158021676879469949542444075755817939780970528169578001349832961179481215373841007671761210800127789516875091332990919607414494574828090898629642927292091931361457397234789738379506772883752488914359655857687847908787597676831949583018063571895251017376963852463087572451497323964697871813367653400153817457092461303727889864878097982870168207495366631773255777774557403406832824898892451313185471959482312603196200546229316638450622023098841115797182913897809956105649972948365386635991959132495835700841223550189182926794774406569315204493665515968063795890833078909948167790294571841099727683173682279436900312074373785681780159388586106140677535000540405901895976813317097584651908668941222479699157740056710430377609897837073522642484153896666732583109450264180498339703958170859521418224219673508634360759548719156924838307748980172392267142106154198786549897409677368343405844898077204728251081660152725149915978092012790112964421905480744211381080952064230968460432507354011372974751475769604650545216101390156707691226972368735679160863456466127763514813427911894780108595044346801788851888247965995357300262553362139955270813137767686253813893470034721381989834402536965750129856547857555222599261987423550265258504340013995573095205622844595944797924132234607353483275750111968672276757791674397025995784835087373624228585956323283093094639232304885223472444235174458034380039026762420516551203984184284663817111310588949962728739682218538601984181492344213049750148873821642235236546339351139528436921999288423613267151624771533192157754616053736614752830539380077035693005877106684191311371284400049967332271341946197187197494757236550853132112014424058841821588288209821346583606138516518366794987982377288313065930415694073534878778892828640456132180095331774251683154842741371364754975198680710147110763674453690173278771401413572372583424666952553633833834930818165881030157504605814717011416467264250860787994868441863675247250933643238673545539159559397687880621981141934433536947000877887911266497925345799863955295707302252565096112585842690188412045494227501450208864647849881780680672270847361631334903262551935952392540683062379678008961927348576251082823692884935355229721218422964731919522910605166368091977910484452859397707425647090100400368614962870006534465190603389434954435443258939343166778482169726323486262109829725120336963776285062227982415638329816396422890144758842165119754463625333534536580340070353045700088398593962969069240896587319153084432594707278698489263676596783732851419404778109902135874721610582534432087858119651071908780163286488234699850074670435297027538370564812490152641202205390836283251626691160601810636331486786091808048737457334405398710290417967151809181199911177755608176463959442468732309359122372025767322363631739865101627716356419495971079231565856682596654598836811005367569365628196839409320697100494735652516085887473309579071853181929503641554879773959788231972170124048765537029574547850711848576735280482013003050978411001605811811523602426710206959367657938851415799723593169311038282135978662468133826200444043165760298828780555102115769493466111622967796209995905916659155842383487112433372457838462890573810152289552356707188576126117570626608859019866239765528155907783800095394964919653716142578041436553471863995963975641469556127172658312385838521234856515518802375984472040527460268588832735314925322336582086803658164325479834581483406244369708748336970151534087296042943364688408064070300900123285784284933931159870353268551742639264052635306685479908636993123798934430867915191105210131489980082351934879769729473152898593112045112142782096548829199343344277942491838356853173791633928298206977708958089320734237871168090272915486048127713808942465710079416588866791037869975526719917568602391069512015474424740787781800563987073075268571733822389270251454406565577588843415310491475561557640166001066355373111911754921785152002461402397858559720670829205307602115384276987431036226164956534819556183273412920698074513447559423215033174088720417905786376264034523300435751968035898551653070406656193815210412807712194369118461281615948334451747640491652950696552833154597903953895148742548470258853095269055008999735100227057997465435896000249720868604517044752630581741275969745917488365553522908697007427501723233940518513598847392637196448956403742420507345416583602748712238471615952549207092526001564934721149796755187992400518936669073786223217632874119878583363198842191740145119949294355888194846323376127257861534923053854488428348852783339563319082798896245341790453045968357425286869169167737376896170077887715522970299814283593311077542383368484520118350450468667564914963281391086305513939874097911384214598884565558566559368538673297234943792149763461502426719987005645104634010963128825855931884901665481747005053512786505657083773060881831138549746208120982691184727754819298464913316687512131740561310923646683117006491685081860193141599326576532502844157583734940094060064822700382089628965761223354466275644307900617493221554347983331265686204862822612843784353464196236365624202214597094694132534033098574159811387799354523740741149437837824794870811716098871037408011307441345921120774401399923932389274486917825486504417860499882602589375024062244039197882228998932418988161049456099498350322825855533145408102834932386299138433731876678538397338083343841676859995509161567112546030703754208093709302778232249722896474665119037295224890660930876215341784822325817722237746525072698240767480464497235714529701954096247736443218860983927383891567157072703378450151727898747584904426055756818687057679585740006694215489509599069920405529082714054319074265134676766297794323443126716667176439585609100770392393378830568607176399663179024508712089802221619209064485674667873137217903861809189869518412427457056697234558237176028626053307620085043390446999649529504309767654825745294931680349088837921431784732313899038372779482069375429319999960012841812313463548510288187076455695285086266026860295920468849218081775402621411961206590957869903741534795857445365171321999202743383241714316118156016442814564900528367998969646067775955598967055609189694913625022769458839272214562482813237259257612856418523569242429918516078023256040270974262326037301617672722959367147247685729540492007009478084352422385399431856526567121034253814193676859154192385653612239363789590643180920050851962512030947290302414719791421947614314444527387557089403684903063176125446705414277627698485124850246953743750612405316077231904772618109245902621913753353475452350526895421385671497323115416263872600188733015822334979331319519217596793325496336922586306008958529175537091153241864731417264519083396966009160280300147888750749849325047596236595829056972040745410728919927977128818419630511482644803936675866322400401138486832176471790597113703823451332119148510412931665854346362352792560210176913522189515668197237830045887416534535916326461831082521717575545408686465581697903092264447570721274828603503373189442760045295484024665125995981196360191510192665400687999926732443810285601248661005971109585854982471618343385045516078819991546816353999563118616904858731542170089981527683494818875641546641278140261671295911192702488892907021997309551959483396618133940034022129681635197475962197243860306561910030308050515058630025371121375259920922350540711773964195133926536497424430003876514420313401185307499007489861983131809040702942600790825756641379753317004125747631067416812572579587001798904150914462601512073527231930109407503010430505383665094548046074391101680158724929683314845080483956784166241200314284460074775798610170772304834794253856942609686103807158841909713804214792199029037177334479940647412406872368048311267193249839538912636020211701821108738626828100706543318148717886751515654511352567244367270302314584417573200818132917832637046869634346267376104086699243931975436918370308883498640265457134072461719341463860813778491022650290734368220852610441818090925079921064945853212424899737939330365931013333304854680523276743679482026522433964723600148586757186742651466698677491386312918104672760637724571824630629768787406168429956682815875021675977580158249076867721871798793154188706742598553967257748228743398191450289944520611882223338059797471334118875340525342474865495062424549809249665183209169232871688029495683756870495759798482888145980017875692758193817600881625648780278477305560262320481058430026612137438030931729897144822467603111087301183710360722794747982811285798942640607919328334615603922095449502436155561530030154646392604322963120900564842517891327013234577521532377429780519844091652682702367128896849411074722234493942389160824284068720296291297588834851967471928180945940683839438903915984850673118032395542768368503057346115550715522838831271089443448116822775279662218823260683039049360537609260504306634993878558520382344518904572012971831297367498951586169601469353009890260302453072947324081905653897117859091871502625334375897383260221774972001821082356200155114448415583264411787711347107576247339068509901876007790745042342209747899318960774686269494630682149291484359215640747645960143798702257599489383610197364432686309471513630991939355460494265342205897311977474433075882657255416760837767456022432284547646488572561099170035756249614687352872134078844672200131783751855773365514191085101642847766769403780267987271347018606883933163770840232227770339256886695684340610578180689614341430854026792962204342009338146630569768733767729924478233705585874903468038124750591746423106845423201419619925966938545290555272111710713249613699425091650492497859466894912541763656072409150725622628376685567774868132590989026524707524048726490888307090243472739281191486213674211946903937059216399084419238807750302253146841505290163912553432755046403769503571636084424497083277624879318079203354458470509054396675349458006056994410849989028890536305895804648787594789957117638654779348513622041305325023452884331278407279542059397675490789296842997293787549907758501633392944281576226774291121797436277116540527882463511229841973409821107882778412986357621516953388654334366176052625968999663160531860143843532674767394755895593363899026488766711560040577493452156757239218320087338605624668021780087680454240691042598469803365675219296553960136535522776013899176593024343297155458928390657536372621565621213202823266968223632620344232779867329766954918679301659061065301429531573688084596023723563024319430656569210986538577900381892651884653184794595140683919399539080002233887926523807254739913786433327819713231341620704096413357908095687703937297422543965374514702967665711412977626930828005049853553436788170113459893143798103389948602904971223115457979681336520679699012037558668481958377864344873678839156738287726024264501708167067589031961723997894841194645350900307895973878533509185783275269561666827707845947785560518494677584778513420652688541685543173753559070955006554392569289899595304380755909030749553410640472684288482696288430478010220407833570415656730481465744061935692547369374015051721947142052415254407127886424209837268719616987635965197321621599598951771320969884131703931822370517632839319885166445080058828418820046530853599733520679094304707653838772297068324814691797079692643283348046607831971251377978954962112814174660238530137769748633099063915390779886295196539408353984344632449145936914538660572326582607313264403116721562488676040842628315946012342279094830131501143732650373338996014501680343754530429312870687379454372821989120010814779526814970595913638984670097891720470297332205032334271485573923374561598572274077506030108200230992515786163093622095013938774259473397590895321102168052116272604329950658882600657992048220595987604796365796734009034779020784404602926277924567417149490156520012984596815083155518902418842178594924650652559468620683329288216958095777874239211971179706204385933428584486399224848128921631141588014461281486781844505402257434287860352380581221585843374556075471760998184650291864938026213103909930978819289001237025105005472934211967147938934068779042752714702482533618919582176774581666752579584826715940662565828101690514433753296121648705987862840224158358035372280125706060460874658201024144174504605098132123855013505281296638011376629778241934860415413023191781043938864754526679223389715665553920223597472586848445032786710345321185310135978178619773368454442598385549986012129833890191577198542946235018989683603885725669978151714298307095132773239081850298711585188627384392000924340306186232870645944520184381219873849254377956567659980155355668795863273605971743575951443412827126725785431201174388321480800629213102923348357948367264990680351648553024588060325982128102884363970028483043260334428556488679640257272608169539985709093748131731922381655423277696342651681785300020878129180979174587320793387160597611507039635872360520464997707628335891105715963438267878768560635656059934145938156141993809400485812660014115789733064683225093800424140510252864110575781358329202089139037018450834767096189492700462943064602995242003411503305313462721165553529101271341058665917635277483810019510554151469276078959448746290824986233136554740829742691224380211405967742327128367739022946847234676980992931137677837936115346232562413361823591638733995140013374418904486589862599589454101224880731054506012899283390677193747619692340631199348388333412268301792948911953932517127088844334683494358404402497149266227750856397693220971650381557402321403814696692059633069311973042019084852540744456718352845749290208253046297984019820130854724741619782328776739772973309323051232175025565356925730608578774169026993861627203848668413836216119906142533366939694891042172739114863165815212537631423984029941988168972567461478699111955958078398666293428510108707526387746656201559808134034576712468647463475353018558286725046326471263515488876091026028029695786641190791468445108741500093058618753482484792385249425556892633725868796786663029353930617717476773137805851321324016646384414495866086952178708697209879491861296832445707930904028393927754903218840730731480497601180582883674198691562311445828251027307757314880501528529700174610645440630687039248777801968841976266110748380417351368471234863075715242063807898211373020843390258339434047565037608955131006539348274473869971824518202303274134441072607430419387548517244748528856252150956911487836677808270347991361820950785966079571093148957885641311807714378058624347787344106936836582437346243111969070080549667628174813900385924563791292702861000369920263180309249225483581869222137558677088946533383757170593501211866390782292125110387676075399974662372314752490001463725660966775062151302287009301661495842022820942910381343784231142274027625915900637527967365235742723789298264745079716705680708275132800927475702206368309434736986732674544859471217269625715749661631306375249247270219004277060820879933948242172851748325391828336488264230637621862385416731054567285551005513394209055718530762873658541772097440472436820716420334455742979057990743313965111359539264463586827176934551978285588747493494244326108574090242963517091116706416821000727077700186141041114958203329318583911054999494312580993670995063888731980172117474125530487590875734109986045182293575093028505612221571755942698374674579468562936796128436168662756429168900545259262328587811459771733000375237082753876025074282144815400562779157959677588851368894274135823067239553483130691132799253359941543504905977972123888265519808817283531842521987552634286598482961619694461267837175946417441084876932534115432986405735232091946957628345284210885071105256813433219813917838790391414143089586197100785248953498561700585785112286195993802077494348541720027176752261041246333528169928810928533446994355132368320675575354818036188715622983032572113221139051744188413912955561260288955102952400852007286829663207438154194410293167295530092987018833971354649561863729754177231250398990789580205955762757749185398023450892193163830414448439449065076255676084736614158511819316077821940646887180070679469898941440081737345384854991834249398548194705953702809552712314610566110320245033824875560576814113276671703012347567161844780076418791153187873867460495758346883147777924159407766862454084623498851677467842206176105610100906872312459358735717403369130409529558097181046303461489908279809787733291943285783872157578588066314105031243787699420671844035136367208135687714751433504421278648425452575569495429228273829680489198068987791122583656214300726928857625644693003475869829607455893691836190040950490830679070647413199550363683711690729610600522678491187120587127743529747127835089464607510183580093211556099656756992639477759486448136544026704231845498418229174530445468301883044560187740663120310367781663105448396617116816512050937226102893860995001037532101216353051948744469427102571099002927818088315869187380572164166262249412065034463435378132020629319906416254371897742051190825054513692338146264083099090847735307337432875380390650719587559364933759490952578711337630688333238961185604297205902016151002749616407697803681548363659312735585333037549383135273846032658624902557667027453684948176351442128628334215107929830276634703943991574734238437076136010803617984570525650731571153333577483624048963857331109349246480236393102960248080855799081561224524776231211197747937481352381327460192581335044379760508484021873727479498981776605794726526165837094616163903085132243213595477981710844840551503692916201226369073364786373666633254563593086576635454831728059052913899300700860685303197085899002019309634288482142426374073344154720009624074976858044846890829049119070508671893779790000310874175969343678688838538161999261312306491544483383055182955593646582287087425471601850941567640650962127722438908318035802784927300040394335621521518737828294527406492020693900487417901545659145930771176772668727697250648081879966874647336198971724921225265107119838988142528322028277687424097429364697558346554313494807333633807554354713366960448228466980045601481460181827203091277257486695753869747330375799512424043297539907378289677195131277261622633138514277074907843183116498496109251847970032619643619905403916053448188932101415512207686239551411011706515881711909228847202427418160926462394527208370395121483263439056723804243764404481854570465204666400871434142377062124902227686217068524348578816695617169366653865723825119101417774329203974683383847005597011322474716196256085778830049272853930056646419776058835374455059218652359151345300612565056406029578379964457124971326025632184731909890212382202930560106801954818267597957669514525131790341077927109888931482590129701911179621061812421709646642644225002640554370980069861720096753485527326634912857298947057471909437208719914243959020087949503027518629225131158939278689295663927027971548435895448899988908560476310284406861000877214305297046393234875737941112336436263634984736858044335262767896138220874083056988324885763143289893399408117781212692459215007620557435500359861140663188524570692872807837191146797578277800591253691245308452448206103656389997433034917111960260071387055324535757110759441885619194104299007682274012122655925559684854654029276521242267976151871209435853385892150165989179149121050312355707447478434855500980178229334035915751841585951796257632024834366891681871862683656459860193643693985709380363217933701227329526031494307335632862622674628398409974547297202823734690092004649474032357447100664891976978867857389976184060913680870615951152446958915570253472724567451430694304314770728999825018757605761300806677503752863707158194610177550142537015889071971336395823176941926023589779507213133415759156361973016761456769701152846465587368414339886191745379071692350691466296490711043407930703236609868792145826029709775776720940722580283996492555054221663982688095856910964391372535849028345827454593209080331471969794224655653068912198355146322940029875892228585113619768442790146258943357176413075934647802703959681591821076917680019949138418581163648893136868951042511886981776672489364975351995858324608401374092729993382458557368429820830794546147593817864841436141846466078355428277740277051809634764157509003353485208461104776256570392044126175674790538731072289913097173806708152306832400849292094582116792607999971253889370471900909807961596172032006535161837786212885652152398172031272526101121094654326782155386986279626144109345381858644899654449049505393422026232048062526632736558722384706515380963603606054074530504760654857392226186748354379433655096260838064322092871611790228583462239145990017433912673748944926940001741897771569024584332172855067969298907559602762093785021285438850207183160656705032826491884950282583163318819486283140993130071754834940532901860359254119728340323670565441492101534215090151771144144860083568716768606801785837736105296937154203581976785347793137452561138200147122028327816747196412748907360094246388189839998644829528154989306141619621024098835803910951366949561204100333583991952746962184504908954423224141500197939351507422581652515196058862701528807824351401368806252760798660115029797069988262057630322994937804937834693855758901815172019507375209575012440799150573321902235699914999487291824963349109032656798053423857396705027111574392522787769249258433270869908898432320969296637747814960065915903474234864622646876929911018019810352023949369873013609981927645053196251283974304238996344515403185062276891795386290507529001273171858924484384118650127380381675211223000310295281752759740141415033662210374960870648512300686241280040196940977320519498525516680243394774870501200854795586577887127097138601526448414227216883122229072832267008197837370583689489804721876204373657158169120310741704228387866645104082493015821841921754434519238926079279297096815917694622639449799205785785586205831555552418970299894467073451381003718411563289653952775534701484348334622314459364424292064427143899081590983553870251332736089481349080129151138260810658705298951585586856093176193132239132053252020276792687786752080516439625073486964692642569543975713022296743062742848865126758835581537425252678010042322749610974448196903927479724294154082547202116028936641218782461099925509880877700625704970717149359376696207363152541214950768468966512701594183754130022639978414265625701632743720723263523410530906345057428820766828099156989796558228766226716477232781875769292645483055122199396887219897794397464611558467379267900948935670881246890720346036539040552191841834420170415521143336061219413312111992573152610585490224539206641113488300087665130471129210501890570163827285889211166067676004034394437422787363537103498025337254937403056127621999377335612174638146630952097481181699738592369360451788106385333802124999094653671405969228001569270254679551922815893155695510922992627747226678255010460529105210587860524909191020540933255244664309262762146633326145431274562077714623536713988910954933060522460797365824567769986840850275784954199594609482765631076490186488189675010725034482830618333365208309597735491176274820570036694219047209276592467851051416250040049119494667984346506849024218450956815362216202176521855746166126174792437015658946848497948631037643659697982688058532030370813444969497621989652246170136064565250294995834250974499785376491638627926647445425655345296422766209889510251636962657767272689854495935963411178645975184633012886090411001898551390991019877870250181613459979951360459437770669035475349108430334674124975690710121423344239438279176020017781378397256017771017852134512262679712838847437435941139081706301975710415904976922592437357877706949427960734314821532154739883268113286210295951468322216520252978035568051166262624612830800488431853744783022146408961535206570638429783834187926182857528813716589169859698474180076626658530781665439232109405751058561216794468859463763641281422112414757317726752078802689549336530440880648731627443929757301256614525353064535703354564829216541436934939609661830721759119080224579286028892907073147065467801465519236462506233804615443224031918355252483644767124129380378398562886606757340494064786793491479400301360493448733560338595560880258274533637728325837952417051225745700401096617673233491437148025597536996083430146800840957959823709872404799899819565985556297821406483346112538259545629169821626289220745085746922073934305092569156171473065371568813066345423095749290885457007957752520121101895204144027529954118806636175916115471850598301502296812179921549905843505170442382646392539111053151806121565851964492150071341734929352506279475696470995115913356747823687527013698853823297055293456734440638969928680066559086523555693487083479395123842560098744301930070481386842894041881742908281913418508779903831695688688344368873227502942648570325434586095441766466580430946439635628923369869032733176175778921922062424628757368410738308777417521214827252432170725194671009122581916986205875090313184085289054975832286857558963458263627493561638515379958024302327171470307243398427136594337419914660952087363990432842787145536744153080945831000286196021885486644694830743391794644467584989576861093477050930340323307530906731246980774644323839931870947332761197637581148883255320542024834777995457947602411039124815138168661397542543904175481265713904887100530778060219248659900361270974057618147177122565237387871226398520077399851046951358771437839884080445014762079035540513423453382588422890190791606414726429619951196295894134676542775579261225611617600755220327801945500736848393012568273104662779314702680359083308639685408310314675840798872141254219979182509254552888355406697121611066217580590197259032715105865146650194050282554660411098067639588298626723721239771533259058974889020195910287201280326994917162081633168851105171859599437216267937081914937604595663350282017600819231082210821145311602573551757480261442681167634247511371539064830555660194711364880159656857783282790975922597482174848185970493739865789535984988761806499397033050704132277441427401623132511495327068381608299400044194487063440525996206449559134189983759967914457834249028921386348264334311060947446377970272067615545283639968663854842936969547733596301902195099502571951191462217386963308035788140351101483365764852407006105357286380671277094464430782679214191280845904878995249193475872154234822350113603859391297118247448917845512938349182100753126097840998572787640332311287173807532002542166728362378571524425928041819344349405596575984066277667242192314036452290901261941912265433910200746349821420689058726227350684417289846501466142203076255682610831886917620899075080212151692976339175343352909073904193687441263831678754334697988350151789089271868503116691343967974160788873411391255955533985321277466561614988503012035115360272734230216151442113299746524966328678043482216763025997263345422610799032646203923063456422272128381018115809629202094113563266970813373232292450452520945312853596831696715463094002937347289527722337488909767111054279803812531650561162417402715587999801760644402654361629319474459912291846204682049188995255409632247782207074801191833245070996910880452759323535212213108248424802930883258678282748763387090125807899218839602220517773079069028022982629759923100413253406967366329277216960521247186197580445074682770594050803028494428749777357291987221245310064391530719819481076980176251851676992192789307222039051798766176618111901695330633641293839450078585135481212510769023578808526954554843165808048434555401335909599738207034130682739564326502999252933738121524416911322574667719315520441588711103981964468375485452198153414637048984228144811430381939791825525175865712194569819689332826853587410513058146228994291469318804674714981793033182898652032847274378820932206935384992211022638249085782897026701618763275689246949409157901691964876514484590362142814609931079722917539538409102367481283855179649949311868175206294336436774299187996006825292977348098716265121470306383889760369374663623340111413386873491110091196663531897001242807348433074999455749974715949612295951316243274423979292916106691604176905928531030776016693721284791553466271976108404184134707074945850739803164485525280013716591078165365112209379405781345860247595001831353227859882942322507722473410050404973937240990328565042164874807184440435390589787343539185490851566357023680343126567915487287450246482860473245459213500617634123246789316312660979377835065883406286190709602345237925796658378137531069048418047205024292581766387158956393624013325528103090726255537570679309773424029181113286111483308643905228291656534834777671592064701000585672829435002418994897963151928975797184966957337198366537699571925350435992596568996685274153832921303297759976933588572525669181568580969266676859313736899500079882675462921562160085055131470992982344480066376840741318473531626201504060567746955414676839375641489974730772501506917133542009873471636069645669176706708732367426125313331920823880589076494089264998325658682300998396022372238197387617706849168341861979893326832560108222769955558894923929618225433246077987876096699894667027112364233001166079960406553870286237006349180845429519208398844144929683651365144829271167524903606711845054097474470652841584639251462245335486138541608894442916137506667997625560552081822765923444738824500453014218261285366550408840921725155914126915944292255714240208830792307013848930330302519133897388597396035682913873675099829655335509749783745564227318743221975992261653174131889628114523640829861479002632121415124748343070776822046336592908813388238324941034192002423766865172166890538646502427066245613096582165443318420855932758516135207761397538454728512286047476261933899287901891847862638085928524719282970130209024860059569902299002766158629107263381448176029957490017584108797441035863129493122524491252465898479872368681918298495340696429015722299195908645577425884277261345042204842301788676843209324082530525916691555950419838551169463598474019901197236439051426483542725659770928785452503470940114954235339435470388313357704331395078198680835092736387642397215764512396365175367690924610741372199079890498923725843609176949164154201438088021988986029303951366239540903643779546307096278519753052253801152947257310252766354171203931558309986840670456255539317800758340614536372684462334480908458132406801944797057551987789863201393763797668038928658278007997564349516800576473086083181226119193637454830549147839438677486350276312747494781005339220472496257261884009627172233444717817418127408084314535589146063283693217245824981058981814125357250776475257246709152560501636657345479029574157251167405648187594737896123755872625257597154627676123767295451638156757271844701808586694232648716048987933351584784400584674185311852047181361525822383081423199648672867777637852225678987236686163305153798982427790265060485667471702917937200751904644609930500468424410938885390270223481173106028736131802010028544510763766873343889287548680313477160634353364240704531684968508951149585379539425705413555030764135906749620565181617949279879141873341828962576979156019609068269532963202078336022471410880503421915632778534954245786678103497739885436303428956953128683413945776039250292260120575504130602058061905177131763175319547041054122741962927624843621352690883356592873898287588330291014955127624147551498930171338228809993224984805513297249707488360177452735791538433150024595036878708467227897712101520399511709499737061425772230734301532216785854910566396702881929233677063390974211101057116651116638940942215593594004691335583302927142193256577543035024143359270303899619907122943698714481301165018603071264020721742961967186882537988415375296086693988435018442638957045697819782849426897057270331559104421133116550266453449315099870023714884846606258012813460882709128911109216716833578440917765882233788788660069805793553011285834005734945066167937850195863252182922917472289643804631383172122516793653311431774832180584225000399827059515161218123841526491305443070570987762684564709234654068882096621690613600350044757418358735332920651914129311482154048235309066784183440858960236463257985291779422170229398642365571563970854354107508901204050154729844831113691847485132246212714432676522860502052368247969736770856722569190879710208932810675480926376418096034030606655408153263037670287042868239221544021060181066559850872001132147155058613693053596160365290962148990975342190527501326965313760822422508066940523561554319533561247536159295083771028284556730284559957870318545783402644358947350904686209868159718419876792357555072152939910515619586663663720620086955446398646316661418954219527947637083025195368652918753281475852820130759660679424016456737998002881743243426357421269909156473856955383411570076624565394559077514295715982074348651967566546498495453923249540151023349412761697011771285780668975754420334004419119791327874738657363529503988176536850865936950012807258220638649722985363979134012423607898668662119880125852941665937324162373634979263104003587470849878440241142233231882858027036376124862156867143015139091133365188221084973579111701371678740437626610398396951847030339599823506320030980199649792175011272018126724681512996633093045966712078426127554203200448614776012205613452651206883209613468655380336635766582797407286374391464195908226861943596350174640842904067385012663084888292556045187214427344507379837282449779833248286333609011600695109801048841569715579734762591452208545396033524333128570191060771766928898328971462985886663518109906587971354144554624493025234708040996622230966078585842915017023091704168402180345325602476471820116896198429420209501247072189336995158111454275813261776439837155425600786716483098166549131272922933134141775802858967118428037189397230890588257987702146522123217701303140125137619166004893412306271892413093471298942650375752607638186376182794120204821332635541457687320252780454530282256239350202065472119915123964571238874339099538885698150990236515904267791371217923283107181693543891316931157022562932567882088250976572719954784329545370659152066103003544409025977455495802244344530847428887563037189761335323153601856064979306407107488441775429858141413379633923083339766803514556145694226462487139738599656681374275289224369604611067761928780312512596968293025295778083904486645234040107982303740732360773582530382113859360319062507919932353303532634430126676716146451678530507913653490819744104495156711976906038795582504349465605520784713176889397181473162366977966933277986855210403624681523721913755878138509486570270592083265710021667540966379812528181716231067836178066860155645744528110852731330372479278372122254937503148585098321129797965843177422673539670765466910869543724605604916486661387281260607391732302137198780214042974476286248541737170560435209498503997664227571158231889867386641531141500075800783980955698816371200829564745661006519048635391660163223949983292400717241024532261219311618292535140741825553693819943209164474963566902405780749941695756538165224305480464730001257973956335454109748012186676409039286074084558451344381148653044663878374871609441279390140959042846179799835163896412708284369544717887219891290677572998685545032586134181207825254533603653259852245415567131885966544955251467826013725671204644425549159640756152831212840109668198137320335569692063713862048019584315933156019772368265483233268614315784466946597153716463241129448124802458556912391917486727718633224096679789886195338846605788185473690855189171804664196187060053656398003482092920773812082551498689729383296650020289918563168924638030592679523899999184601611491205456599597270896186520905817013343479349703249983398152565954395108180319040385172159491465776345838262928978310104063995187141096668837466925451863808285391233222048143310051715089160420016894455864220860675364954580467490902757344890404299586642310557538087229763897367819512617159708788134207998232788599915131126923145814310746523040621888762397979312896507029752255943700904245785680544141487718599830283117454902954729592070758352706603980010627760041878227431957414827241817319610077553550599883135841078092089090382696434009660951788977629240383634023608581652740210047903223475058058385196560961617847754512700517796890323891301887634690775530864257046875508447014222163640085974295063486363073085495561618277204787335308225978115380594024221679481147791202090055616485041644825452384821307923581392916813250704151316498850517002887238619119518226658873560894260991152121215060968223727148568434120701007892556979683270558015678055921522595455228724246829265844439208755551264116830329455379521755319685344033405729208863484429174836555536699686040905840092947890726651509876472457082636902979976109560928074045315947430449240474404462666917505120812463712237602476271812998656065780606475771973496662601719969148819117956252137287747088803419648813900648448751331534003711694333422290362587693352062339412516350078242604680612873265654908004407064095974372338040201643092521591008290944887860495269714440672411868755014952540641838542162622215928760740727723203115414570844510674116700182750567526427180500535886791699310280325788692028882537228929247548257182622827328851679181273497643468627849321031293901072803470399611419066998222019913802470608163549452709740590187341652966289332008344561572017786184699623497651653351564615401171308568969676506489402667507734935772370591211485644155722064467189760033977889102258358894238106637058413979531591592454269307001966301146943970051808701939585334025658196491463481477636576045603618358382914047965648024661725244527910936799195746312718344727987765135352664449591806575555482198279131615860596425278035549739368807835414587701977599742730184778115961305966250902863080858424363109612650623393580670342298397270938353265173091725165175936095400770136532449021065724535402854720761127486666802902469209062606523132837463521868531179159863982394633204137455789859495367497655723993876083347894888184531662563363046256423142373012920419182059454882747719908153352999172233538511258179895239988168449806771082648713528029054767941423770804144850477505173907341364379310679142392402527109652224579000562275845051591735447631704970795179889455587084722705804182523035191767211665714031636207892160726647262370158326908178430065165554597826703252644714223922857399785043757986055288751834398177693718907250320094031758014251139727483090554254067887995181236184444746061320580158465882592319276435234911897064066845858455687368152279613014817910766591702423701298707509178774919836152294834263379416291836350208149707356976494587039065511939814982875131204819753941403213269399277527838307219379328054300001903162804970080987961559711556826693901192543996493982032584101291783723259953380276067694788704390571475104597046296997690590224424647730825210185179891652163616607649508180551114147687392497797785518153823837448383346618383098307238605879017919049252798821356528665359531532347360094414099401494977981367059981045934674567467881017682237026895935165779582399589171582924256490473698006452070920651553181118788564550799494411384812963027351034385150936020809353538448880838258330645837438913719110959910540832846146138572491141440238820692827604880929139592351307009687294818741705628393006362208930038651960816535623297528205988055527537810074590232573331133752241141150196484409652885254492388203691257020003154841135635318913105433169086988695962171197083232908745573296812367442749260102274501153060611530905996360931228421941285966313102847926734282467062333507879315972036408141979750139284473186690878606297306766436318912328267687287992258914296521054149144052549945948080945594194084815325987475777540210280074159486653826581829088028433065886877597968205800403703752415288337544598870884835563045445333761535024806231692602922197851214564116899133149446211095592961316238796689845991627271433989668936893325099603419388945572951730653196766018710568837821755360781043727751482856544992886397303069288524442043451261597535043732027694808448494746928109426509904974064758599964579016640105381790177760744429653342888870289541607693156274746604429278566748001177499009406818309159215985371887985249494952313368111864852152393785253516124055067149169491172062748163396786128892751091740543425585223847620755913155813541590195070771858927712441210031849772722025036419808858514802061596297945225177643326269540155047144168392232136533386056738445980165567448539074075251016504581994885328035039309413716291214048821005227415850577847964790260570890535263401798258873090445775295604795007367888086538870942665435499877262788566216304359992483971766781303433816750093425516723855392867782613724534083823559938295291166587311162377566639808925091801027997969633782871775559530769253542670366776569364984256538341471226504388286873992917169214967347545642906731180148072970774289389514293168209257470841034680606363615419406355099470540733404973962354561086020784477403056227540434474231014197957757608326401918516064839479018557957880451918633974879617955319430098280663932012936928649324309677736264937821104395025351357415410053870385908081159385010277207640063228775972689804627991300972319219252241608192458289062783796864578210922381894392029179191692344470114819240872097526494518509222500985235364140168364318838303333555074986418699434208968953836196604157038974512975913712975071245554249245091431991690650689692331561864095353155280748036303406433180614499613924574916112679267577749593501998169969179173753959837776783961810452388679077615778497393337604441003356473413660615159664701727291483740758010673133131913676565763075062846744398697016438594688216479696706656265660729603466838437347885823554773053799800395604394157153508681318004954257190598927127334779509698155154785399813237958827205034406947728610621162624216315935675254981702776131397870954229701995595476499261737888803034759930364481760492504282072048703495257270543309773181488202981234881963450172927264666036600936121426885845360778262196535684936885990654924429520524659001418986150615492051825051949865298266169984671075448498153292353015214315320280921977197762234708792585429786853047985813028391062749300697901803167988775261652751902120880166151066429240895825563959704865910469292433245952587756380629291559779774783017646195043346696335170015925663609749340078309882375161359915202629713066871854597969100477215518452324906315764082789635423789324605707077637353706006604190999584580871593190053703559957550887122500053081429269020819939447556497519337495549243333556037295188099808683620952928336702907226698996638677051983037830428144083479839932568116905141572149814716322109838282326125403251612785235252500473470489796934904340324318006254752414901008187693453837891935621924269514357109709388448516272297898312455188201805808389597034213326890904942091227794152504142155969532741416607130179981000978146271106712561508056185500165799289675375002358533226103424266049381655346007922742957230766797030939106917042630974422645488611140973451394388240098105930618474192409892710635640222848161666257128679795685457955800697459191126316076358518157912425193497400966648764412973641872412232512960385247971396467220537920924095991682002505367563280704563896248071558383574725913988839247904121533615616434997298759307621824556890871627215776314909087812168377435414621894682437466559116149363056885135410998405992388479584040960578743143545406917092019573875358115276409049944614841647393007502351435479197191995754031215594583624202043220355946027252405894155883471862051678151458965842839002494540516444635159285201316457609543115469686518480276323610034127725171733543809311024372194315560880579025165596665463831078294824113820944103626811950841239938447526188239879103781726561448097751355480518887060947416810713634494600511513330188137679307733070531286602025188072403336580242733561323564657175428400847141065466369886533822628148583081979339226575210252031330527141362698960861264979035146886697951892245457810750649212931313289024335892489259193321847060008803132830463104886676705620349098509511229067898371276685494552119298869498167666134834409764965231400164469486320149455760927013441041356493053535378189226599102090011995499572237909484445709128559312862087475579942011701133122699521084723846550522346239205334696097914392429842393226928814253143251097972696513270983494631363866450232711128000647154714085306069685554966353336841328506558444624399230980464253874437295258824013383722894122086979023979382561592186562381341561574718431556266314704331647930538186889240544370818989517641838120401801999359857131102084235398653883183665900331380893166311586580180103007350086880977406595485399015899193090475968377297737553646802898819680126266547485761587502264880661661293905909876721228912040615821507958706917996051745344272921123461463555040637492019292552618250236631782851706380919561473349543060654210433893907924506360312618769814541873484430344231113138910471849548210204958000412175876344213818690591204119323968285011805010603960243896942211630203485522793752597837946938546812329665119350479781469456678599321050710609068479926272725502053663856246265167981675468817672904607026727189289486931992415273093281263123407543315656279613004992839675204702389225123585551171634837694713152928228924481488970359233621287553928615312907956824543136467711166857576325029107470553510195481560543159595526680168240446091033824530319982333711603915928401348133918115000422481393784890620411147024163758483740861690877656836175228997051717095649348262381430150651045490932902053331305390263996982005371589524899504408451738321413051253336404638407820288305548114890206107637225704041547648301734494102846259618677971302873753639481806084625733644929053851607576852480675221378555123031376177312005154460459493396454865076308172192478664980038141101095468213450596496169973759190986500843098403007461421995089351006103615315414322947028299968840223505538206377897426374555116881828245502971890043035412958456215891915508998820034229459553184446304618598595774365036924289671560768016050733420852695267189621774136704707327143964702147677935550329135534619072954001835693414369603612182115697513353161823846833390800319990094713017885144298333872741398502861097912292768750793930718422679916241138784318227581212749067464517581849677909764601111049576198205410970297703159261098359821720954790576530107154008292689415776410759163340955235877741323596600613468001285523002226950962903909365148513998876962885508001979834137119715836295326585372092355940362408064423166842910550355076975260490390924717193935508216341229133357694738070308041985275095977509314796694376329614577174458318190044650647562360525627152161109885655978140714873507022083705453150906175714570533858323842138350416953530593733632354985795736562240123045893399856842170953599684883864268737966237893861616890515394917665294480742687412396497342605041612254607090351842984599819672663512451339813981442504468504659200822162362929719689386817845935415720082051788379247587314910094574415979539042819340039382047968642109487494194991037647326018832756465260012054485481329434323558378847424346780378238954907173591208403862513765801894036436115018889858961337370705434640975135335630483893554879826176464018159579905060629707045554494558302301598795692601394589101353987661784453842245830503832395340243169519890572736606050690373467492353649260141324577421458703045376853566408651138189533387370369340980413316300452614652447084379077726425724238579331623840555138148738520019318132736153509452938774182857494673614177490716766031463895331556304855232166869236751684502851619013296330658096735798690073764293987456779085543073361704810766557974592978836412906536605991716420607666473524724303197914391544102112555810289148349320909465492472062097208655299394944367290881660537878461071289706946510339213533077638624779540207585471221364010832519583044191984910459268610146109794209110769463125293800847777229651817381548246040654793068029591240214485258427292508642406772962320476866638210768936109046056417293446566362503475960587826731970034366889184529903729560387068625564265739008770367449652507593722658695366192982853751236669570942685789836629534890400320149036857703496016365000569518596291606878893112414273367122625100699623332732522135974336766460804096778618723636602961839995387367945843450041771495144483493899220870202081438854986675041196008423887236439091807577512763698892261138985018241678512047603321695800512539836996029401981221351629937333703094477710975777148203897442821544511416255795820516157134987737619291897380518670763272744477004509554436814609203763317358772886253892448102356898850769599585897355909320776588664038186621136242364782160246869013151452337170855613626424312111918047514019000685325792909638881749501071279273460742521917217359545539285454669219773913094285203895943868138831449754670586159439342969544292499935632076398667910545580594725316905814301421003421924818632605523159090181297447130333967358388311198046726805182791863731241037324571250583951698067135956624423727065745937723604877401971743960756147153305930285233706040281923396951462619914331479555108095933813543483231483470722049253676675251883810935039754318667238982006391037569147841245228268048129373379212443959935765282486101420113453079678627896130571088943144409733144155755700676061077529586113884286463334866607015713958705201401520739479817157911923298995915546689860303536109987919654176823462468731257904557736288965862306565327739310353811667287705161599745713598374661308963719008435509372064786363472553097685665216587790892585967457819420615978433931322333259728158110602292416941478247295471487114445636477303345194951674560975040774888025694899355711194165012367238583191945379015958498868243392366936193616398203427448050344511696210485252371577013950907238386519411780057112025280269972212604587192575862701416262311145897146745261154815086757385951238963152374974849309429217178911797753504600958876496257546669963312357231924000454438716624917927890138767688050448408077947559560899705421221743125381426238087038932227889837289510134243573339227993684787238492593169687719966790516667199596786518495501044637593536528179437075867480948274646381157154988190603257589145293148770827992137049119005696795587629224501250261825507378927542388625953568988554058358261088326263014776585744038809061594539612055502340526794346314305727076893343520682876969042917956030558084139784850724157645725602604530199461365492948884140381340158934335382644362287816427668065020604563187451111256910427087727996859309347060108403075415026016123241231839969636743492531773303755551704695649316484988277095115773750465736624437393234780974658043177761731963367528125865639860781894084086635931872136283452141083025704763436899989971938695490130354805650936129030818086269210651442826148890404787709829353864725525864651974560825009029946075262282215705495998024296044195837321030405953737846807581122269322204068221858033556813268688639471674851320624179934545840752567355637504783741432312080706212590375660729067260053358429919534652591968456476846700244112233063987017820905750938999423363338493533164055745003831594334124436911268377790003530760167063212376247369461468855599835094757105601392145766961485499120243087176479761905911488684267591575723950167126773001237808242722684044050747374814264894019935129673179398384589716743903069131522778196412928924441203764244236743084852951067717819939339556524430395738749758141647244228133707478656928350387615685441229121859240593334225026296111382861960578381155919252895534006671374853940563834560535181745764789930021505418016143086805658502251326924914959453318490419368789868686864265822500416671089272436496667805245024987062752479129320336969750348429871061987480878244686376460717228134452228233086020337306186028138960954299953678227418887469616046545967072927811978248884570154732748320706512231657543467368484213261774095860810398403829350701639128476878982565722734815408790583066567262820224521828823620470041973352917080665777198961536856836955419217983556332712614734718783725431336148644589676897039908875693699463584435802593724487154676464284369899295272942829345882913770401945891281083911393589718647446597359518121229511139406283810209309699002691864771637761923692980714943067148576777825682127635257073553381322497336283894737319721630126937227928820823191669040624777325926409410178082595247999061251464592958965870870824079505990213484545028343111857172185387417490952416118669723141251557667366618285228700199924510270760129731926411938896368069646326286452120966738853520047795631823979463887528964613816271570489867143331698047735321957402225062161760647916880655754461241213108270309928376260475722740154300015742818869925696006850909961112213920835561466596760154276814857494611492656212597827744423932603594688714689590118340935152957447555168799998095567302981088442875121261606606832859543625415415976008937510131107546962067187457096873210539155312406493456645713165209647089617000490746967101059218649842436171027393317044043983888567664342693257395012176736846089857804902376310128300424733662083105166973046482788117336902246863601174620927033973928166983002095945546347000138426732856746517392994498009150443953067673025955199380635416926335377073677981670917575549015857075884893202292291065939621366627567107681983685718088749951112047103658366084162618896911126567279163799639612988087247989299400058577196348963972763471160714465779402181847300648079835880013920648473411815018706865452444488504432264820984979899109155840844764445301230899897732025799472986150997395039958867751146035984315989797105141268417921952097447437721514209662952783618516936415345513110880161825832054015552110199113216019471016928147207732288845051685924085351209368746019941675116173576215920063530251212255144890253759339197872485854367481174410373953626668013014792560639753596557774183093789808156585069525884472523095725442177944617333646233455516505654420387832573595450679569616340564809217541919229328827099586077953405622964086991997744468648078704908943895429709907335824808617686316817664278398817303738163142085899855120239445635763660141549158884715942326378312302655903809030435051832835081654462510151013556272413811910251237211501999555477195554818397520573386657498364039487199873119470882073266421825013695169169881416179058374631606827022358672192452700532454638990022058017421732612180429492945084831143194378168107706170920207186434131519820962197518114081858447550579385917088141818537767685240614855938645962450132054516400011539975286914605377794042020268952966864687210028495358314880309868647117135118840982924307930580039405438312838995466330693001117472620349180396023110520397877415943045935478344241790290788703117984569872310472224918018987275424242417835652209799330077329678760241165291635967421696134213043879927352962179102687264559635089245061685469168471778802651287962036893559788701302650840748756759273796187829370919283914167048715982357118659806812740990114703415103143575455781915906422169900563123262948895996947583514577076845951623614997423008051158546281279641750889584469287529823350993300134413869055131668746751134792472246654014905300725220527359351039310369659369871605174740386318856526561647728724864282650645663953047975521190309987751828837505409101147525084390037600990085593559676047564969418717624333992651821891769848566417014082688075620384579318774932966382173910140428203345864453095520722695921521336070218556819082067269172566109703791639768300188260220152614532438697122345760947150462408246583461913117411138694496933743227981052168602031402836945027031077470377417359115832759934099428497090509881008427827397334662414017813200624012760901577277295389461089235681369267302204855577656473703913109969920713171939139071191996997796098437327776011587774980201678931925275281859658235334695976068102610170741540953317355219024085547451414679754672849409989460703175496643419296455796181132203213469781784451257171643831337332311087973611658213461497470813540034346416736802844521113217582841328866229355149371146729689836025139801635529164164850590487602737390483882780307500453374428826890803311781657719543715632606932073360126584022068840265309297538325239523883467340666323912974068551651466361106058923857945350171563343790369875944221481342811449377416315927514787358154199949979795912930286519952246165801332918392144289325609810493798502178093172076317059967682269485208285569856785808004584681721080397747760223239767494490544749054546478894673819728977630621257043166200614617217478284745356642267441841939710643599731369644571714009086209717953556891349750873686518533893815998794082439118050171418538122517383844671920379501971125595441582290781992467571138232920157628505974150926976994369527208922879720709485593538291228017956025664058625336470427376836122122324980011238995918622354516115211646472937186566433602734470960683659122259845613325856271577458461339189363150313228921182793715560493510768235114575682997731215962125628151653019524087291425170347711335298059839314540473862187087344791897094332980506346865495013071765800796711061561826066927020471053810349865097893639084293588409553875040112135300230670873874281978131551148995376757561877662951491637536526111094849576519215335455097854531872920450200030303347069839290645689005911559237340138098430411112584088687680513876031734433120564789263035091817642985430407175558955732726735001164201470596698164254696132738264817660958504664499097244804197216530166450534603648396072043771962147764456063892614452081390729577768948776747536656718103893961115560566739491506614172555957046508448755614584326494408756500453397381117011936107043041948585312998078839508273700102828914009083334012630319644147183508719288483301778777877509459942695925308074975225294851519445256267876661823104351438447220733698937895412389729458298798913925885770909607057654754996046896448341432642195191676760001643133674057942625901930594219724040847578873289579949937254253838999020758976838459761477669880702310636640911564753536726109618054748356141097676521832240011441390717476199748060150765111919819810292945491764684972368859138948581275589887266663931840520092250580488740954977215972805834869256416879303249779278321705001248528737243368171833401926066925433746852670519447187543271706864831631118715932471256569135786639107477243184980991855925551173435998944796081740054443196013426313000929906311390013548360419236427459452770612063150595291889813929627845215678803344577133834439489837324474804957565352364611182418078512033502976662305124897896109214042275377849270921367523118821487587686584093666606673845114286250437158249231372129346361339566399577692592997815945278488408945751083826638641107401710369704770753132470841340209448282447030197651516214022653753228290540639600109221581164839767074740862726997160540846342308983060951605581588922797881993929249146557177504501962360193576470513801727449384630469578387853736465132539143013500568437320434275518999187858536328517698735521444435874350577506580386670015628466466616752350749851371103577184833201617438659455570890732063907874232416937655558222111860351227225338836774088312851445244734700818486318423904443635529512467946511407582939270550028288839668800295740993150501264244723906292366219001860218466177422989414898233308294744932205940109669432544687238408499195129511559229737797649303147599753001779584587638017491111726536746313656116263562009653011254456145885287829242005078606692050196986134646160039093329116904675130636043021298024871411675162763491043262251607063878154645583847630701933988540957994972222569947490016530958516949530193809652055413435068944733628503778297423917985266351184485672847941620978475965281500941244761125646292665014629228955680130301975906673732533945334864791485908575465079610407913474043881974027938418296110955996733560401623974724762826340539397178673731751971931912002943555959030721117099866499147461234652559414142782275593245011134583731013381197343820764829507693065365069280129579693301497344364235043353967453437459549786829144632199227527211039624986818130408673465544231333214217815099983271258281382911239746636510638013600784923738038317388828573784935443549593291188380466905110017790869491111918906801882326765617775478669297741904046550280358057600892096152503954566929652678398970210364025235011124487975197565324372580895568964671705626140705787658486794519171160825228289224077465543006389255964657252645413454407898656963231705730440702249575042040973842121173149324509128198536473050439350495781058067871293545161443569778810460041237284887773474690171505128781106157380160098907157996023915701725890296336678003287691996911294866321964798819326113876594891672368480432614530637267514421209587599884132033651125988394637946025466957639494402061265865528146872235840849577964796396965591169537855465473216668746271010388747012177271397437663076392603143766927251473786802297973230251404070046953146977135631252652812753107061449090275896709234293419135150700904380004767958036282497646579426148293074369236475759023713643353853918042281602248066612833675400961156187856559496484340233073135173739736652225189140735839239519196418634400926950757845242790445529797544438182124403192907459075752629726402452462954260418797226411372646976816738021059213441058078761011749615742408105818469395692925596548714119832834908104764186215858191008116309878944509307456093899246816013853009902485039638830996276052193049521896509434493389304834099162210696315460869659917634189753336950012043582044323395903323032797467576807512707571833690189525353958872702677574787325038597996299611549781418081215473362332567757845071566696367352011546307543633498737384914455363202328312739788457879814594354074363166998841780821824705521139104843205243269830412709823883962013405948089628223926123049049151159946212640698972293192530936240139426249253583089254376794713744835822520700840136577047217643688777324840462669954935030031536645415707072588832332385267149743994046296819377020740949005365017822642691284490940682923955925759190115175523102072079034320216984317106455547699025489049239773630483174339070345487487239679705349027996011436931767384147426933856195314234255884677565168163568434539624011517615972664851960573483593433184859415709453976955918620964497923155372667247801164798961035607865933336644220991116427758794534776401283221451228758067175396261253664199962301078339838766070918600574018509856878200220330177743912173166059657664631173319328741303213878050745052605766241190119561356583677652561105160630448707692279352977187039499678798780110789068053543888145160542225649518927146589676307962888599565868716912971905800521816135838181278152943703619202038787626293714206136694706127683915282972662518481863636152548708595373450783355078200599956398169318568873536704184764586775767062221290803194565647791383434052216914193180118628917277448127667649737915582967628714749915172675764306640479639456312960599606554984470196365655038465391259557540529902184003255696293275006310789671945641607538085563011934480799701278533701478822208741663168401181304046808880940877541950263188401936160144522890170533902858132070879410016389656541525371151121925598938840281410106716119250684901166836908616878856312091530104902807498509614984120282665731507642505987023037088302346603880532995500693566424145181362009117161647567939632504904498197679176513346831095072691091099262021039324450935806632070953322412599048978635322536942078104355632425228062378802715236363822219171974993129689193450776639268729907362515069744190656950236781787530470363268838769130721035189165321510160601167674786662764888557815488728503807456040667287936924899373281048048898938245541356302306080711458155545213456384786344528441321401398206092085056235034408971322583288707793047177590095252482435851625619889251577057929562058028388834794966737444319278210165252549106960621105092172083730183058687827665593424105732707704934799288505900014816238699609422514858904308392008043083606124989946748337407831915646612281851409865299122724587073512194387928104675344593808225585663657865226480564366740520817447811360468498045263636771880371291130667236708601534428962829618398444650183927117717604590795829101328724273214660287570352587884568224086719481785712489634776921509822403381913405442530111164957313002960278149764143561090979117055975489346139371413709066243894166841246282725740279895054771391220395421031732014409845491192757001530088380262847421358706371081885547742968769081236327761014175081091146766466337348742919039283119205621645790595596987898026931467214315516066869499054581387422803462304964926934684335047866061296555787451795061979735837487775957919284019526174206355608207153721512877203650568995298505915926739790621842292551372927381199398060007587516363000491841509616335502149618752902570538644788024851494065103396343276554262214446190445583485232615638128934055269204210396604537833093939445445128190733720310727252712031254135336687357019049262576494754001305600498855478513579136189238366058763609209943227537626163753371149866781493253501594082162439733864462993848450104781067754243966934086958254779042448601284766202929375506703086673049418948184734637493266226394581028230978161564455299936412617143972803496144200772250963343873357237206806652099754494944566405563175420725441498908068811213912347812735907520409942029553020651951817833250627206440773568470248525042893314455369168279606831164832306017915360421053404728370344086827970665729622595243199782459526682578049962624906331405722080063680022109057744021258966141404053984871485490555002281025347804669336012385214418183643626038175816371541280579266256671343287957968440956556477338920012936495410551480002771746319680321732298871875513075754565380769292469735366194192260404974347692122204474844237945091622687427334679289087345648045694343505353122501473832982447817741910616487241868621236058272822854333189034554037594776378610010042325187122760547455192868492050955907326848425929872216635756634840813474635147823904427833973930240618956012061958385140996310905539551966273972858498601011200887429857644107386962751730416862165197633288635525526722410778112766461553720071910282162748244414198017405495787797215643578145465134392654272478400608631160897186499920195950328063604887279890850952185247187955606059128368985385022276714869949571469128942611403105496651194983725977213176085132710265848047023781638519952807438678834295399258903253741767180809513159147798817303594257616480687854420781933504527595049308672936780903871002281608965276495291917380816686143942267485285215651467232357597795408836611725427157863456953805092868719835820675292089601058140616907588154890567416706246487210086672701544448532743618409635122563841826947841688647333833332148285644958426735649518214254652679763402939458507615665816182588153433954065684786496930576525894064239734566158095342784569323845971647152813810184958633645771478110741852282853739218190081169704431546032652103690672458190529107550256826750179881869041068859766952819986789547904497105561002072904825741163601303078380172380197888017623503012890790177977379941609686029519171722298918386751937303589562610103301848776851121949892533736001910683808276775178926970904138964101488343319438966180291252685135022728328951028628272402537247890787843584739857433290334882787218543524028995125681722616056302839284604539478658607145298886114770647504503660295148691599786231099995483916487851382904028321648662367283662618334972732891388851771311331732909395598408157814585868488113461344237203398916152163586719871298272973368345970773432267718890775288707674400763492608931760037501028757917706594670522967782395109286892663660438152985505905466052848196643329283443665832188182828718425451975702600839309801276983512853830635282099636225406318432874427090877388973854778132027644551881115859148078940737450748270727894497216101705252097636716866651226865363787596447269267726201491269959151323452263218110021776351953282990695527260086588837077172112391589919929598049369389566228895541203811701646642844104164447589879792170242177466471809727175294748374963878493681097566082309584168486771480734621340107418585401978873145899549851178889106749872617624710989059977146290212114620050711515657424637783639590362357138036381607489861329951405852183990544455024640460225832527526123174251782502727235281167130683385963405115289349873551806205244437892041252190695179665419169154112368047462588269055791906494157194752312855052399853934192442190315921940120233031952082222282952518096388013248705101927900868671233128340049876893284871130138938435430969273253794052617091206805802345167288401149801638743258845986719698176457097053912749126091278368066426798298996919242229511084812981330813416809828915850184264143406128199537311270714786767069066935434135921341409693541146934850564022665499563787463815284552860512757254193198043058117468152467094162421152867636004186971939754491798489593105425760260502132229054655382033513918486873208355344072033717170062848209161315103048619934915179425629950090161530341467878834927670224404695432394839299884475939841520332332211049231383279963359872161424632627204924523844040944606954477700512479634568239696486590276732020321964943145156079562095475740582097109875808844920267939040796885464120745142600460941356802078766144552743832148269924928943892404546091947243099315946459479893912178102487578990619999619860881548242657322472110806478269267523191625811424044510955864678522403655941840411198004246549618425516448123158116463759711986223760814125049030300338118456925433206971776704603891177868219910140019193831344853090929836394715605017631936806233623546122510981667089479566477521502770253994542611543836020999730406687247817098168769074283764933256815705268403037343665809415963817169138699046379607745279362575746847446822990866134292286999728714856299708274094332626971966750011880696851767980661222480508623751789488478494078630918890490126554154133881931828006973766033270261746889605744532416321577902030099805395063541271972002015991860767334432968821676756799906388574072539562581888115041790145441261821153894297733705813159028766115927347172580121164583865701780195396078855529156056963382360794197268360788815074213919133328690886576736041726110915611040971564424195415923421869325093093425388298578154188329758957577100955941246510864357139557731633328707881702894995893133473060691551907453871309298973024742734831571314770702635733872315112003648854561547285628164240682632107710955369608176189520998607345248472497855377930685035414306131477589269799590767126570064968297324871524348630901365598680436510304721958004168730185022917794080593526249482716723011277983136532843183119560817513254051164446907076635920762095608216430437171125484654110495794223680910519654351953590968456654017924976948733436081483561552090514868177010321933366914473192274150037732507707677982554956014352120196031687225468033668163214007576802066155796883298063291220505478956541870986239463614062669576225517513068143419560021116971287765090501742592045380970420123547495200010395449840121122918889597422441271495016602055516692033884776923881368047701273470368623200105473370509130803599087865253286889208146292122449817210465634692757670475097702864917354155188043526971955066955939354938609019762423523951042875111569223430052829807374410104047376450539605634361268716000740626575535984894284858013749661829006202121656587983897566916154460543980825937964117801318038194886744050593338385901222670629326540583649345336945547523641833292418994151473778945265967390248271953022399499271138621007642810277662132415184946689313044584449043307165880907119430074806211456971501961391791026834231790788814828541841397698885031509435335276224580028254873055558056308315782869011803150590185425271076237255694294195623277344477576493001863820292145558511873121855921195942321549458798627301782974703916177037179882114791608547201681162123575450648705938851146112015966776798177606874173756143995073501862314622277656258990855437900812259603491123856362446617453978649977365212970783418799565794767844893024871959659570393451942821197516483974708809743141391031890752459757262469914301751078363800870252253690479378557742665295035729769645145319099132192103290938634253533602440735561334291118978318252558743554342212731820765104659982309292935624182117878591527289237711287334398977663546224647306837911186320497909110274368886777882503511584235074004572781395809622189488010083761494951883114147094146083063461810247388684146254403107923227736785794593041806990017431017271817531793552897831765233103189880768128798146927660786845538037667575949809448197436021458965116003064600298275389223238023797670021295935750445350293636376127199092576741171523455275715511559618550844277423371188447723063143281055795385664693128342879128547564062552981783435163818340607321284351218539569434943486394256206411777712731951393729724586112201688876825277988005231875955496104776540331765885526820936666906604235207805671870907027018687239052851171811001978783853711816930675473764192820446987823193385515011431480640348131859100225768216419399758881836732984306790966598825839527809311319459038861343899768877607072110619170209937257617921611079712184289215664700184554183794337360339818429431845159435692912748274288023445584248653847583880859869969672269401944353842831776113306782995409288730906430591368784556289709857944414724388501769564715490175710204636612785357094714980105249818468738097637352380555985201558939772737008154843626176300168957335637893917862437652375735173838174259648229492971773874317151542747977730235762673943538680463064741628809023342525282784320863790365470412472073477318058595948981666649076148934465443728380493115176467775203237795802601379378784071216493942023318439058620812949091329203351288960128588522562322456230217329850690295746298027416907787779962570240534921015806359636103702077430881065338074918101251811102009955854714550770771139575763327976749034067773502526564601645634948332071590530183786095638756825168369924413853177051602897329545311721455942005656797155306989481697916609057714692669807267906961397522251124392168677054010627476444562427483250167103435006313723483630633578033605115143026742426915732794372959955579995728008695804072503891808640361730879416194321870433359623056730404527260872902669888344203807143344397620003280621757833035575195823655844850185193947534086376432629518382230011164474371197811080222403196097069157487048901561908607361242128593308178425809819685643502782426591402700335311568182268528879470763888149363857173209256893683554955895927279383555104414396188997419694148443140991978353724247284282776292350025636002861517398083643120549707387455067009808440192028163029693130216004008075667972307279193193841547919135898939272587223268399244357231517395982958166497023694489690988422351001707161930434394500026714811219806199237698989871782290661453057369515200723601500587240951608904998672685859412828898446518668908993628266289021081211294462119363363786277604344221877741396929265698784066549125562466822640067068889263797826597819644907982306939693660045093202882905477901736509095556101667002360410677368968796723138219357869557412367659911773658013301149147202400140132779454959301390384651822774098497507586889303636463782641132527528406466202456686855077951374743758262080584451433475417500505411441246843356650674883594586115935303101629542414405522916477840591492299904739263396444043484522603515725520744840238981786079058500272244756644060591110940864044647352661793006233565500818831917923291718719491186630527850642221108289158789761022444842485437776225777199410732722496389871175073937028302658969463660344108620586377816138937958115883042707905111772583541644640242585434197138895721989591765031125810867139095052381001992718559988600265532684147002898282676628705215119428595889183841914401609491006685561733947158259856103980900448310703744760766496170757695109528708284289612613362865822592795511383845056719379873021590690387040486544719703843002959623898412521828581862273399927867021990028468010438124175576370230039935147022806949471655426026091727506713341797392653119471577321687534024456203168296645029710152789998196862171575105422711014959632866491659133887644818944815693001701617730992857489031873416454685218699414754379126237520549334727733528751522944599486577583981941739486411178114528168142145834416008327404768213577910072177856001764794109334062906291578141997327895169100099586484275859817664729452079110388105754099637323679543935564348629697562214215655864642497712968233215080503944934273834411279885206494461175945511901100979492139758145469288548106038330906571070293202433707420083461716508074736947329068224534680643293334128226222420070035168717572307832344416047591179162638947228073268500652539921307150184424248105597743225574939933448030724528232382984900100903495491251686134232880425810637315479048591349893372176151103858258667273081532090622882251347953280619251189561423776790602256851341236113434188736190739261427617649154395917635663869752321564911222222738604883852919613170224475633691472074085283743114024254194382114126281592834582944377013446937448511174178951340194030334740743953737363649422298025759381774078448916151845010817471281613029540739952966597749270179754414414181601826978287050086197777297710000235566515617991778829592235891696088314299475384682018086537807502718519938027907066204794384968323595965569586314025593428970623962244861026524836234039059713440067286533678492099258545342341235816974601137627256102521724926667192601512010538679066899554664538964003476722439823744167888194105455493553542346495301486507141040166454273890221795151439919592778843705223617805508582185292810132339122167751965201522976647095728067790155950543556097667280873507215180519651622204956982173417927073359252664000235748686756646916705856082087440556707143847346516716359052371229456634950997151377061699010494058917261914248265012066528239018131456535123139697682189211417255461824674265068619312459550013416224581792459489081022222091604433774871402340743793662601453186070328716049848066321554623204708991073826198682654457533593245835492331570037778582060878250275485575559083713086822351058736195892487675316605167376435302582043260738301525649773247408481715201801814100274710076348663467641824293757125795298166830167219512651562431271031847492313386227421967291265781941909131854325155320087546622084272054160311155147712919792943147607232805845074481339730771651560245515763475992612312304460904179550929302139915180053215497296034991618848501211072585154943517673167621752811838441476786110582723742856490503785295333772364068996336763789005790566646943009854974840837281760594155544911446899673189625807872109000250963460739327985273516698023719232776246595362191875917187191394889443756556990441897065401903599534494103910678302463400308087208573461097697567620910271918794456842317944732535126425258357336017159282631839101270370033724592351679064373278178191056820783827166304226088773672784090936574275254904279183636262840031338964585190775727304791761526337943257788200155181395196760718890332776383113137825741262999225637051530032897782386941604343356074172033365615139717165627745648525679524524363046523960339645517009485448765237915669106411387861225734277826725776484101747273248318050722116955788712028817214953990319336705869998753540603111369958325519079489420745320560666083496856199126736649222223357787846221969056272103167102538818457813277135918705481766802266305146947440780724324569344385683116041785440386084597488210185106327581579125336289273840323961484419465777216704654657632609857154803014843579491861027897080232056488200538381966767838166389760561698527177888195993551562612749517256450923130241974944661980134823437805550443598205422376731870122224576378034714192009892510804487638362625640465030524655652971871202050434309930767284090144889289282349571840811046836417701412489200814351022913390494638987217352181933836799645934678572041906232866804957179936302615129076355791900058817423008717040513842940455220223942134291909879287094170979269320096776726650777406901783997087632001150444465302109732518032718897290379674560894334732879018249910846111917392912028934497603048565420269726234124974324354413634676513951618782593035428760617074716072980300660493290442714046234657737294012183848354354576739670849911528831204297646166048733667146883789634844082599911313397990648550260076998346735999961985623661730927107046492227846421967996235942819979235852701434390891019839392948033776388041325159144917736020195092924230460744324766575555546245390028476575414411067502233876677269820395907762516698977772611324342406136274730143902557088452451533128774970746794620546834993135053720234766262936238677215038487622969738297850814303977325138274543448295366638034127236795102090121862913328564296371790015292068108629216927140828100218153165642415144848841928577989859896209431997484768942848578050571788684033345471934860275760995362854307085296081516465232616051202024337606208710538947398855709912790240095672680639770459916985115755199505473515080430120465342836520595480707864516340413222458227785630043124856690232893559297289774552559048149999584072978906302750673977904916532017654625092475490661579542034374402802232586889644175445353105916049782596330531967625855450470904951360623622610975580890085875344395864823506238282662769358949595084072019615160699952681482923689986522455360837351147158418511200582537826144815295406225001912857330369067040085667400109587123248204402692398659483689690155367381300754354877049137642433497810368205085156790948499041519608991139279913769270428806157754399731768247489776054466048115840726442164981849103066520975989553284667984104865482519163679812884071702143267935041240209037515598946945104559274571627492931711133675363207061661002423300319802384258422897661051859731212524003878186431272486065958148030366383286946445098722977400920409721046993290860705955113908260425171495764973445974787975494284404400730387280176333462258947763758484662562952805385337580773038330817975137754925097201439561365336928252187874430191471447103762509213773082776525096518735327760374997506209368603681947690996740661712537696347357865175143447187470612616981709166722576753353363391831525864783602018470886636259651157447136670569945910325552198978225329518953361202372998689474832592180027029319864290291535942937097362381273352989427228055597605145619510832468231879372435871414315978855732784358709632459470719153216988376991108653271211619748975574534163184666286191970630856222786853318359813042126498454291387522102392436941464460474553219657340284776281892151388091412790446687179423948509293123068807036262379484941953475748723937886997199665749847641902974112427447589179958049034944880663502499644955264048896323468533678597097859106200340568768280562344156010405496740050900271269411212712210267022405785717835741474089621280326605987985650148651871643591333661237173355433238957880587848358839676896201685569801050499129996474816064242526187951529924865171792892739547669868590590263657647919350975697619911959823598636584174119226526321467644135987465702571013152937696200437495201663899761057504684257504262649370797190376050659501466975097744726943970274748952575116586890336347012178333645170556807655366644511951669258682227691756152394755249762513520467581597527784964549230242857662551402870005790200135246538671116006860293147463897614873750164006201120268914793789390435927968780583215134676833324974165731682656978712194677278554092467681944687092751638586333160094632881134107045954432468819761813500493021258443484390439031344779720159529436910685108029602739522392034738867813366499726164704035429589929310906768458906921526502882373211340235395837522419148405077928915159948654926628726613475001602938991171506374546704891833309190838635580433332509200588602155074303032518370044230837875225236889122846921908374879024994169570225174000636819187713478283171258709556724846677366509895186557459677402242899812817399412720169659304590136392007794574034929902087764020694679733702833745661498517887025688161701912910262988503785641530383857090203827697550551798868123520205530473816029080871629629363251082650502487349982470393631487922218661090998580539333942161209061573596951653910793902111234139235964635716684838057083722318925344547481657930092394922651197207072960854931675617754457483617515459335803515127838942097826289749226574336791014642886103295993770346791027229876064702128230952060781889033452641991132763803345625659463101634827963020139896617218646772296178085469608571759304672873627004684010873190658697125421935366600871563020756123957704004502019916452338799864191881749621127676882877847129419503198801685384899824814860798976917355924295475710483352940722818474060645601190696799050438111336733494193572149179874108427288312527346796025572859051318013728305303391007004809170692208833122586418287839532030983770425911770099886839864689466840326599911257045694410606693887713197893392533960550858048257925983928196677460409109805542241748197235156679814837005391411267003598770194866237268319807313019128328626909821847852418617260330645756212528491304461513679256774097939153158421291585776498484267531146331532433522478531060794380725010360585370124859542858268717070184860883400422515787334618471025981545930766717639114316860110177482997915584688976585236943066271134229116617300014013177967214580709354615299349638285184198235847702542239056090735175066067185324915088590264184008150819311979130928266591179450046441570611446405243376629946811947899587326732225975955531950283587378383422425949548058725045494577076430419551965627862372111876102570470817472818391345161016691476114420248652530523502238519279429244875961470776439582015453868391060921072628557042543098911358938945824876022028537280276038281249614013338828206612446162270874897835453489113738588621651289547050570962641691728282035713450701751257442488755996490029945729677358188890102006671562459146898042046833268006589374899848962032532109291944011128602277339346906003633582956068634769643077432907273163849895659760928897889197109235817287728501010388442878429029331714198812663121245117767024278030313740481253563425956743088248118283088518954683897691132664877000512649235903591675609538319872813013278609283064077455884513253259073210571029282786947523777627503644155111219466495801640488591688312494798852730643451273018119487123008721049053851960543621870441208576593471532628418141361894351795007861177236224443010679938361525486676355898914948701860243629194406175221567799312861553984432050752984049047731151376059691540266320723083355920800279627358027997937696152497255026923760698191033916843499621671839127567987231412595203951164623376046084139599643141527212758477543308927765060769474213359293977436841669597187919999844385332984115856919680256039420536508185103342287368574412846836845160785511260499914610650173381041745023886687266075258756071297506942368537404794808890246530802088449068829997265775467443715922752627400486762086325515481795614600038692921050873070226295908575500405994870452535680170321404230701692301241657089889364697669636574480482664919327775444340213524627645831723570252883255488305630666797321019035125174902112547778562079641749765993130840101881909409263279272602770997664334273849769621381940934851023701289834217874945289195434009318694993254966318033788841157331867200426488760534898580403635803812860648171826187041714004607081907260990810143674764900403710748641876819979947952728794761639874823082801997962699874637760067302676052838697224812618783717074814130687225875429983380349255026207115959528639482625174809747666622691296555468749787002361111323957214525426566525819716551904160874100433618281178173802089434689840416140525342227486843276240367001337965216650883649462334821087474714312690299690674952409319731113254680394365419126561568142885432461030938727620271474214837040197884356573785392659903785230362084544128642191116193384104519952553601410460673794705272550505082733760130982159019856346744582330032625841778420443150518212491569815418390611825466035508678553479245513895721163124609903316301601339225166713301619552601645715993726728428816720812226546068080905190918757774352956329485882372120250816462154173289699805787902509258341182731016946857767700618031030081624106473909668282125453735740192666490504436218630187406736319212836104888079475163307041782473479388195877941772383847080609622139506120491110226648300666179455246747458701055669049575900860108038466085732588414945847400991352997264782292434255260954395752511713117637090804012777333708177462573974529930861703652691957101178415414701123182795997236398382586957880015129724076953599260481147352425355525871076529616186575150038388344535225301348145906686716795036210325818758487344789053651570276254906475134322822051468026001151066282904450614681581254972334715208788636873607082112857436859778214087903945674496654349114025049529655160053604720174402789833817161227045097710527439025925701499869829486584676972820620424933465508361256921948026541591548544344264187529645528768773949645187870755411050105987370922601943336578776756936648273101739505075894986819437243104207886540235891023918943816926554949458195939001261942955805802629468812216778343294097052286838975592810344821031195061369221238712572442260983952068763798068927824490582690076539902216451293538454685328734775677398661963128759087343548735584211933321686322231684805920549994529923550387845378981933886553073154037146212414027544231404889583801441442165167896309255027878549695256557750664048889070352932707506812462188235954473481999321184245527390241014673956960719711070271283309810760937388655879217246958731461874110581153549578958104808780887952729468223066723821732541447986005932233841599690582276871298937509342475177590589399573056886211399604135067786926714982133851015056990954242714090238504686909420301936324226827385277624341501047439182672503723304558058114817259908884767029989923377716367995905813232747895341334993558944466163856097201108535630896622218795083553697681954140065296547007329963496104695608044158029544574591841109227618572238414743639718952960077231838249192115925046055742108869057217581435173816526854524112683823367366784385227713923469511872659097230567956001831267343525794514787377126609194534061271494361569488764230668110633768860186170396466220713681053648553079652272977443889509712710031630159029746640153170470904096347433199291025406644978570324313253835701919391131831781045149338321705394575505071139066786121592413132609637086488864537717308881100044431390326688782370049234196428496218217857801230948648979086749247612183465555607645074933171077873238735616930534534548123516167116817993750670561691406886737037718051169314040826334524070353725373037051277782145259562360479500384237923787897782659398449917393055154565074851967711853627388414733694958248200506859195126770850101552277812433844467841942869747719913313941156469998664323161218073767362613146471488629428652214407714458843824057115458992769289904208314474900728815357297881065915506080453123914204033398346821183756934995060457807441665732970004550503045718542297752695276259257009730385332944911254465771561355280117597106353460256606516270284859408428056410008293484666401565217791664221338572494446537873142438175587785033776568408106773955237306266217519316787553975271817316863480906077448897687059339519716749015587124881471539178046160186225563822534699099415714542627880359153846795418736594740855292183546936526230775795064698662912192605887381279810239870090349130449236621419169424040594717971947327697477844058088384585376989657596307111488309230473324220876484493913839533814572971978201191897794134746379199051507090996426588702328628358190643463976773011547993514924893605664180931598092612454767605632443156564924810422766477171545560743531308919711956703878383626233041558506423469848899823787889583460695093170798143280622187789304217305191818794865730956866265105578073500086470605166234359153122769741377926099434875201877283622256640689582712207592664397433325318185336991373431143884535936380735619075728302373875291515830796048224722419096330529732641947919818351809060138787565711034753483448799655453175401643365150759963521686607138068572891476872757451277134573654686021037116116125206339864639727648236268154350855406700077923275838649009098392695396585422736393549229528273738727172126689506705294978944071029856358049433638614048177272167043925780354415816393150872518853499125943186877809492621182169977377661845559974747357072528615540223919389524416817955184283067227063155036470030055682462285894108111956745488599807752790257339946166698626434877535066013284798507424793364532958739356212670492487889118381651410744828101062517219028338860137020008647863185504698065818508738500394231899023310189119420969723303017585201869237485927891802156940232708221653333976898837670311166959376352378304198747451711722589490728989166798742597400616823182029191904215580517923930610533181162496783235137152269415187591580711591786270474671802328231117242418342935218184689709271349559499217473956362079511101831203514571911156330991934572051732715593653873261616594385022557907850296057434684854218610163154993010028994256256109051683309314188083977809058502781367047490156500131960836577691723846118503639845849392826227432621277998740443275429293413239099210848787724131999018941387364853641579355201287458861666923293883772142373484696212169452180129860117481217591132469633918654680305570716029077508672980128918561258922272670122186224839891177330029981632586029438105227615558964510515754697980939780984433348710023614292623698775393877404024372654863355835095019462592804382464355344743576297385672939983357386103961901672767881105701045537348110595465282553397481222221786046781104721255388338364657454867385217504100982992675509059718776356330776939357510593612570241528957538210390842290134413434929962483301429946672358810753304522658360065288629207683240391765965645102017903875124663042979666513748243717393497118317074793721650887294726421761643045983960700468039287960817637881541470870994566121400294540999217923701392250931359770749013283688738438941278203941873902930283277927513487734632373596500848934359162892161819454608064891632682804348444235732133583362986890318698434636033968469492155433060861425941561870405281906772301625705627770486795641300234816780400563654476139283684337620039802129983081642845479963774522030128671611451725905648292687778766912568766650339788515889075009822574266349854226356507651794221552357104220869126657476250628726800332713218232987500358049266331950046024239982575510804881983810978834625799859789622497379911503147216876660666779953872877208763723559240294890035675821640058650416368521026095169735149239857018544356790479609095394056067884387999096034038438310923230353307382655111091275767952568634777168475600789773317456066740083939961292741589478060063670302736382147201825482672115265807508845300364133942714162018392073558638022353250858990289062649266615295377485449127782240216823585713855287602566371185964416550162994417819778223922291668690103601830685095272336861022590967492629387848298724899930898402806923023241476285578630354614069377120204033689429725502130093154555671420166508024440264135853007595910231914003608555007703179546516529704571282024325917195125703815620179462010453260934132420802685115233535928627062749315816753171341176759919718846083359859409940175678387188398628028595262223304270499274245665132654638908064256219867703156964465820864042633301745728337069823214579903046709890493745473497065759739608014811611687161724693665977478167343632576967944677253391842501575954143032482049517373685741954794594083320583091023378135761506577506532589819667829050823595694448056763318657950574194955708229275205301293808125605961262070770394426054238501466628842626252111307135104624259959135789022693745134944061547189873390366759193307829232476805462267075944884856801880745584403555234637214269711363627744767073203308233981744196840206919641130142094885905729053640792910364161470428487264745939006705243720918240328382029653143335448869851612676630860649085261243451113384044672802591341068233327448289152001727604078044773487486891487454758481112360483787445084692181546985681137234636309844768057926789283504665032323912243435584126964288684393009608078374821644468364713123944945950725899590009249819934276984546818970057453564741123361470464888872911909989465741405995635820123156607925007308665809398030710790830242281373063692527251527928750535077415557473627982382603794345777733365281429516354510440601563427435938884031541600466747217357812675558568001692507537073060390922585758153725825403173857901773063382025401282447887973353732479842191531653544201128809344070169455730577176796002602046352478523432921755599001609173983871226705589886171405786866884795063166703857072009811738047109814431143958425715123261361144695133111786516257667351859459515112267204300273166733809955005859080365662479616526514139576897751447948741168902204249969363625431986140652636830715891752765117616642234193516596387321932935411453320935003981304755120759673565023515575833927834663245328040920846137808482849837057116434983826177816432524465660902089298198691966337896760089235666449738492997225665808588091824461192010402620692877504319181332475815990940011911071372104716751319309512817320678132376203161448065241268954403857373974982522791641200784459875446433650329041777642724016814768933563147166567899901099434758169499354671085411254712177941406280188753447165765365089500024171590340139404090302304540808446890773848825100802752161070898130569856856892919283921099365887851931080964128881972294492920384664555467335109471585178028047669948469424478967861836320928520877029803081414223351530120109583287496717104740287741358304762990820706692887508130443068017603414447808653250119545695577258442948768052889190572144244927372535347742870497148883928580146958462148816051409181065537036227081309979656018714848942759352666757211344184427439059846016911165964171846030933166018731367087785946448007554180831144559814785970176811502352849957614452019436476032503092454553171802404942804041089654213129747044223884131705995954804032321299800023203938554882213647620595313660617008566270684218078718619112595021651001441514112717402886153772413796777206975930173428546343862152895160047849022389904312325253652719638825150465800115337738160935950683329548306048383922294272537433145216712435572117177868469495400695892287799911906496936651157260847218707048816481955043188837103903375170314146542537474501442785224449891479059316244793510225984353286802153604181899565957797953040702217114249198166640082253917495063800554317909454080845088467770393131047715928347189765111855142186070692680550581654898397678367953061632960378425534035049172480031982433430570952135301067188173315305460202302216183285831214254117924395254458450992967966120751322475927853226042943087678145141608520453038291895791528304473796701470873852839473157320566274736055889292811653295289119332678515185129187725539035610727896661768038474801131901783252605422054259086636962335563240475323601515079694262115283107359445262862850310232310134860209776501638881947203787997628298767829341511219219943476193925805400224189429555527276977029592789019578890402655224003849212686615559211148299412664082825485151607965838693526747651583916150733788441976127757681869950361362088358994777114027998912399599577916845562614523662429325899692619567865564676010860076037462876364650720785823948761830125782603160377359609514719442184502263677141675718960906472990571582584595473840749846495606628854526534719487190961466240658805790243451552278985742821825833753811515944117214255425641466083183539914685042213275367688874769823024518002885403951410781762163061757229867690024205351241851486244363367847143250071832049973380543232707844771320068503249459458610029519810166326031522400201728771942576029968698447207149939435234491085639033720621553722811245049226182901231459259158307052363880237356438761726536106514221588942624416837638659115618742374049511540686967248807254053584698119778286223450315617768015730192890722842594865940583795814164526830575842579283197624542102241198582353440454553258055537228609240767520409149753984564115210373652092958253444405437515499023063584494210629153408985525869359292118402765706108907116587855860801721048870251195932511503904839931569939900735845204095445765544358425374327507599553484513630778304423636112943320106519105106019024476818033431793967479259319276720865292381720335015434840482264462800109272293980282393095546317833584792207673034476726298491303166904595273734720393433214459848651520186990453792673991893015202298032997255173842617918076657959708936385206195833722994029270901271052436517973367839435193107920254399971087564603137025616378281406545694947119882492462430703986337017337406002869783215128988551008738847520870002194971010478914755061566033268029042656111234593698995874934622087086637727851883822425436506042331459698468651046545406606389358985840359407622907092752855995175041255083921978488957556281689481938295955026687755591262975754820625049809308995513023395815664016948085765401034894095220819372799229963896505147865145949297556928406165542379930514919609319609438858203635371920725842363578788104359143500794031442425934606733986397604417471824263878230427252730848197686346182093386946718776806406091564037868387991215440360020406007685196599089295890907934166433783706403615925733355176990250110778284802365977529939742788505366808302100903197010261025528902378548789756522214389754330489132215632319750236065458758650526310795470851771329703344522467797520769397152943288017410390603544515852097477241418901393312726422369684988227995743974402112375330624158620305741299535596095456012659135864861909781119688732157794654107532903328635754742557330988629534831791948822645662579692572141298817888615761301177032831149837634174737703920747419602960313537242702956563357502393137116241006650133414964409717942797509443198348078447006340178211770303301681855765485210802353314108553508387913405731597785084624069372644773279512067744262141438645178818118808701381680426591945174217870491427207163315429838527266656461681890169666305465522727147969601584629886874135284567522913299534864286627534803750404614435092345052596860296359764569071384712209576477441101624606144177168955620860246763909212154847739272738114058679378449149621817031537080297357217719093523091876395617035753463741856481692340298108362850616396510982189784585497405487745591370865893612381449449886319630531158904772888195461601996147520019705030516511763076787498986098761524466974517861257941104915223818312524760017997144410593789895856262187555362457103442095671120707318198658340918918408112735143533254544809948292185463547825149116965631195660552579281395050992230957533671437932273281837323993627379364615611646221219083424234317468475994542974155333664179792558359844587350154639401629101915328798381769811098286787517116251211338689898489070821374894491220891536380777050458618586319722812492640945680404553698250026523519284840063261281555702691124863257490524381781947999921750443247507624228590068498725199774730157478715573591350485093286870072533942738938485372100623120685383752907429045898071032500064870233396000802363300226645197710622696330500729754757418154296948592929599874201805534131962970716530084975748470838801145200346117760895606746911678409257869067729951542318479677984965358628106922090509874586236905973159422759547969574055085422185461324232967635445604947014953809545164711491616891091815591885926442225799293370830360982530675572026372692260151346898205186297892942331213755921266655247549139715069512664886567664738004366602647695728416029946013653659887497896725228981581681708629719836253936522796853440564807522454553672275554308592623164308249564477298734231761160552889621704414888501378802188894910988426594225064057423004460638706740721291413458967197856491632467123877058976299491507528901639842526933436679743288359960388644659987472732579517396283383671016501585958096980905308847400059927662384525407740358028333829894457334941245458854089985307988649991285131057276863767839496123837490350613692410173313813623702084518546443726098558608899097919659577112921568592050486958230598884456368602747705045329443260066900155362871061976783148158678953089422797118356886010380186524285432142756989495263266357600098395646603404758005389960735504626622313428575577854923022370482940385356390437488380348111594042379452944777855110690267795667114835757199547553320108123828485441448386832141182442216646477328724962859004127157566528584319800740353602295311698367516490659061160569392817160946199440604375616103895527717168776999986355148376345257860174537244573196605203853372505155436428528807634009801981700899851010640149916525399690479275387831180952786051074029957082685435464726174916582486902586216167419688264107616459653092300705467008377620319237055393810017469572217397241608392758648312244146188553278116927263507470371578718779012784607421990049764806424479773279579307322065318240721657832291050175645786712483712468153306630533809161097302133548559080544692805398442289218428289306652350671192436613190717560321795759376293244105994451656034336300243951015813106776012031946533752417963438332586310463450053928495657745834428370784327950218838936388417187376075709496584496635628280915044615783706128429074312542607601387018919309110618699427152767730253375623655498962106564913329309111339915153178082980926311986858936640454856883789256922325865047239942132073343157970261913343973981928774095557802392656195379059586676151214579832752578620590582338382355881981713363243382700916693458224989086428877009280168526844985985582258647612265445066828668442738643155389164600527110678227883609670254841485587346451520271218929572096042336559600092372612273934739231301768540232638693221425813094985758425257363089970793428471615004670181616579691217771836887446076247285842917679903069673441331495485014279626941019251390148182144668203724714244478001586361159175341328397330585953940919080497279016754852185168828170856351706002125217837544936154293526655964071852085957894655016082840844847140614567127530549007929572186435975940725655776798991446700382556276009911864051297004328659884605230817981950740918929601615306487910455285089868396509742284994452612244249212100557689432660585745645486933821213285859728936426971312552546060531430068990243747117922111951127511042558752788582527020814621193108663944386195767283225843561826695451865872751604856266160217556750276342147217748386248982997341176545758344642311485063434981618226578429533477730760859746301103510167928045397429094758922259001758816479980432588041598143065338105086458737620874519258984935576836535860035707152374821187973101745336388160507109804130328296466129609419246608644832909573313510039148744082188443241182189351886587922015032484009608071069679493477631476822694379955660741742321336314497721300109828241925415617558318972749962198046797761216110059422798305632487541973652415694086974785488966136092501113440653383876138403242560654344266519907882900340792545414079454006299383817639491363344263980625825679193787116269504111965944910923899726020224347718413383251327104834738162513912342713692092428460307650467140578822049071240109657591821952302367441170423769477060668942161193314394499539276134188949175465470478435414298160609224438640770546892922978992463093449810350604765199757595552059555162247797103066549956455041951070411227975064889712920586044762261983210986997701095204552831479786881523664613478007053779701801250326367854465151077708364425240963754896236059092585828313259938338192605994754071398929872518558979098561533024822379993477627811193880521483425673305569960587287892043750045381531935269058279829476644109663192997979163670983129980163357384840659649776222449711390814557880055170260152453364881701277813482908777530476874496670875277043463581305844960377987839710001353351764503656899323999683275279005098206732719622645816315116862570818226991039511589315384150200921233098071191124034750402285863335183406087442826743304237429972938778402254239621788531707748868461729242157972991146009694049433163232258507802654629442657933519314318408208059512693993985628886668279246353314615605247665156556555275926838864147099132632045712435286323183816811285897168433494788497284530850364243996041746760561847726480364676978460193369323057325603736893004100168998242525797166174179340154301972884411417873785998507803266055940101243571798603040346137601469401090291653973312279253524204374530683802653632371245612819634556488979958924409909170199671580376736373636071273221258447286874757365740671039633177016923592470740702449498102371672740782683145547775900694963671319033468722949081291483863262946859605900110310732536417023582035979561181354726138194290419025573981103271285881565381941643304066608666333310256558849159973094506499059273250978959219319816701049461531313715232878216443575612062738085289195956742792635687628956858047534436421564644649941694119865072292287938009304934211396495898415938442342470488483176344431652155973241704910281442486674191967134324525888601123961064891302965790978583855710251265226596948747464153590502930247368320684335181000956697347886981739193295787817695328060640688927466823387940612066844556952518359119912071723660833456519361811132658304506094345453936774538479661428720670121646713064960659453483707186649355809014373776626513757675275786529034013818210546181630310250764011455195940551639130713904418506973279576801521122543765386156374446021647823504413298539349498470112691443441837979391127764737280682533254299077064494312887406267414613241813037689716460419405644992026648560352654777630708936467645239323718681483991170626752178458639230420465461959521910878170693955242797488371453785067311658911104641430685042027988164015822117942862722006018492867983548707099699493163890530451162188478570120091549447437193061200585451050523959333305560832999266073918517242739804924297747098831413971283905749742716593793986905535954674126901038327576964490099013864071727858016880979616964110806439515509051341943514110642929080262414623674190716848216159310835596491038488488143242425078694224209427163007457125460572694381159932172094886298689752654078489941324554861594080642846690652620335745763115841678159133741260853046306140413323902752070455815704135115536286954429712711467479618323918502374776530676040275722453345777959302072065137629650250741251202620228275998983594123892044721308706182160394567055881485796148217110672298901777490878434830475024741738733485225275835931069797562191787506964582852852256000215740182515035761902538214555880622696923860740403605979876390793361824600234937614285123301200295142858293632192967783519562661494713140293400093089398949413853531630041539845469409080212621551843144969162793457051643097581456231217043129885796068974827193304548110454064851920231548163446710484742156640501775517679602772599823337414994236387555551036611025076045961627086382785456712869391701788346155987175590543657508637048320678653510766416941431639144390097961942280010786801579851468347508668745685311940159114370087967853771087233632033622565003425672754541599033034995018331251024198742066979888522700268799955718562126692904459033886402727009261167687492353087591855778606827366060869629998560256318791305814751349904260186577194350598994793545340259793540465537324619562729562995490236861739392370328171293992548178841358891290116996113802707949639776283880578663802000753518426418879858275671530318492862577030711283974725207335519813658013303482329210585590774283517234216057726717669251436930943526758268059170059966053436520534889088595747055770796860441364423473673247123021356512697741155780222256329362123372999034868647208772826238795361713634456958997085794427078046976786610621584732664742979236481685429593019777078213394586014794073282710322191563060422564765326548383746056785222474464391221193712935753960385863387835495070579502212584357431819969947315626090892613375116282031999790774087364950429925460379633694462931678917016626384444791949814460423640909387642205338847107876177046297275523625836666129503959093190403056995081848171838202204977604294746405899098864526221168068277896998239207221802469116912472146562117357117193248021202025415333079625797449920691854373360647412238840600122263372868394756321223959717512366889732975896218301486030468491673925935871573609775272800020057955077968241709641700354051107969121055881000864514168167065580732773773641091978721937065668631087328122403663146184726998963176016038111888073114286223735149834693131910414713841753917187327263635773907028079496426637922314779846245783563786576046022811143083449906543670526845377588276486401321489855716875658200163465182130668761937586858061224885921159276739349395567990190258189063717046078745890306861892956598491799826683152502659628355858005704254173177574091627637131315743169841838022698963739667714037173324378522914256030151124365654197217728538659772666495769775794459669024626902141775494050555597959620054410949620750105506446871043633114526272775535216770544023955403252764686363059329899607381692341795467180059607521921620744929248945268188726290270343279403026641500089608742090569279424132696836437928407985466093082613696354559791239801751988608044457180751909059550012610018754859842849227432070603849468604717140006831029959262627744690936303964426828841110280583146961476879792150307871122912923822821409869962291248530001956997277700857584184861161145767871626276688459945927486279249007982714803191437817720399202180011750638359287142142682220576419523629966652373064010182806487119014264501597268193181948698110624925594965145285619451746246608934235569297599348335232855561823270247610754040773390315032928335557784895003616028409072314532399271601325840188370119601639858586236386478054560533413208708741690473783573887467087464559540203459683658831345642642355138670585256529884316922153238469833291286010867380685748714883895572499974425564977769201952334737855111036579694602891253497320732932141119670666734565736694543917466507746952516825146888703202739475558882502651071309664184775345688466861940514650852979879628590191641886262451651467195234026988839937863164069385756817769340797386390280891346681224036417891729900365665093952676983871917163752427891925125229470940828462491657134803035859739713675188688196527895348387719845355922703939743638158423513142231525729884686068151012586213343003028924082233746741066551586415731741374903852870423638904956041039962110846762482494185779855186452865051124888356241751617866142127437994592483349808179398789869942769435348699786737940767517961459088616298854688351136405688113444468981041106309474293604143308384899732811120419244985553383184298828462631250171186537840735878820766988433406215841875811491368341797743793204475588531625434140026342402069693951762971765015765778583704536321305769486152453000339523956741585374859146270299211987150976601413966597052480454649210693795522051656809629476581867075566370252559749678607897102972976089099645676761255464835492095934536786384708213728371473245722034328774283637049774065925498757573821201687601336721622631323728777071914432609115871169917111410857252792338376529099098462338984302813092887093726291632503568507643888733918244046636233452771483323111256492335596920617771619091204299844079746649363124523178744163077822051248497692285456776441487419846103699718523218568720952782302510247553644670322714859188445997858500085967372436115726728759505771848934276135179430229292974735560568147863504335000677778607494609028344179196615020004181319415390469883597918566906697556140963772472618048039979741156085514190774090275586978613899618318861030861751192947059446873747226163281093659654859219122560518952754269461644485468250034835933209127970048782555088332347104885626475602645118894567989315192593118602116120041921098002661699231989702491864261079646452493683631955096812083592298985082172966618932940729256761940289421571245210416650776881814011191009234800437959518882303693735243493697899657071702080245805247647996630193290458102213044290710236492002990223968857037872215848506148091584000108291252065484355023076558746726812952182301240350510490279636217030025631433155080104629656274455712870033790018224466246503511876475175396696695797272885995998883362859217005617983854271084621320653449946703308314410411218925863994289300592621864615040956470544793397232350859852390320406550157913071320814521191300369989106576752015528908176766757310934724739270369671971963521884931653206988211177255669681560113985746520336845429953513394634902211723134627217047574405592553973038072293475169789769161353644518013255983928222551958095519844992155669673192687852621612565679254665900161022509966635324308773550934040479818681345679712583359920295344350801691532826219860229774185449270394352873900349419088717592797911164198568592201573629546822001701314560617034694735558533436130165600919021329432561780773933152968206435941762118560647204941463809391677623079261590978058441699980034768498025241510653950621251453600392964546502407551338246598386835954508492414313429173069118768043552390003320886204488348092516293879439601584953717119082714689496335369108820039091293492227824157379467095060869485944798375126873136097454473546176976825515834297199487505034905791283771883973664245851768555141251003800537044065350011146004765581096591355195753560434954928807943664704349848291538541624522240406332787099273127910570566007877579681531218996032415187489624818409490294779851772281393854078656029959735711315159948743124968611056807519898755346114177499986591152458383576187602225335234469732813545505944086842852669291647745099261923033916188378624531778159480366894115610047895713389165362889649233877251032074321568352103810961699630401427714233615740470559634387484211659974511936021202486949392924345286981271147870330387058612036146815721479287819975696624632860417898569029793720612468329442147645592795940233908062350459475013146596993600380833724940310922006558824508143546002732980602288723809371396716462365031653303617075143110011993930046484852438511683361350997022102020889656890274336141544282476708832844752067167484865358182199668123680510907573256952284669674581252763897074265665723187855751239028066589628646785432279090507330783196486224027684242326069594087752501883863473993500574241093046327550447520268806124209562298639185703094890747147766845078672647473918887175620519402660704578111859620728602304165517585288458738976334790013052926039202816444055721280536501126325070447297293568184577392357121542022417159633793263742424611802318744128445226449808874154438277857757393473483654378783679948144843655928334968148899252881177992421473613417137751103642877492873872858491793282710132855908308629068549238394519271151696909925465047514179335158247228204537541511204090646723003468369311564907148550760177416651028763391721782572698245531295616273695916150013037919096644648246648791928359675196745759533859783475539931512967968781576217152496147030091492100208722520819566630904468651603978528841968069449100155046232737609278330965192791498006023233277531088027360956240961229954368966262167245315413791821665792867686471833617367022611188673219606491135847854782644284973078922299832744149105853130412056140384899046670660548621447855080077397210535949021947639182637448849226221560705715602864190754132251091574266177916427946603388609206869217938776669679941697255504815196650857203085796185616673829207156895168271729362581954438248565902236219298774798787731083095254210640339557635825234055249956904291148030699355017903565564571079744868495129329669019228210381287219195436271321944172152126860214581562845650168161085475022270612561108515831337744874160658012385702405458868336187846013765678547618612132569528581838988909468170622858600906480346783093680804807414982567714491805537576912106184171778660661554722340631080616032434694018837053637387291395093271103786852159122056256899928248597476816626448284725134532384544455580098108673711806971457428407387269771035289242390090966512690366173958361642148882852149502670255443484582285501120872149500875793167062609252174594974362833136448644286568082574140193059888667405961041239911872052151334518752904211408923585672412014110430467791510931742633993092867708051077474103521420000953910659693216191102196649389654992763064755447910748601280215061559919594032339378287592372923684610583867764767853907714667046946973236626244059683297748585011954839761872220527865171725879796574662829255090729204773712259779029370672435243525262465610578119733921742085724008542035429122966799863559735812976601457378657453059437736155987171824587068172013286720375698528619183927858567662595140543780296473132181791900563628962331454771000506354977530949704377726166375402708039598136396791295077236279035202461183350115849660419010190207545955974150287278732613007639151506669436140319566855305420211478091320218471583261026245144552666566122685100304673411051305333266867827236734053479403681320509578184622230961097350515369205949590309701916688722774095357159662464407886898231896243311723208532543271564447200142625094242516497621821535710772029700871650489995792813285380855658849346377731210129445574170921435914248293226064217953456683175803853122062731891387359336232728607587213528658859668357976520903961284643024690508463563434793491521350152522943793097892948084651150419871211791977495773558776110315099705121135922610653184141424997594104106411888867498475333830418722052569111039527350338717879303103029641181989785402336751428588742345692419539968595125004302704922040297541041583866554018348682368576054018913515060303510059675382179237189656980959545197876738724549920341416712566109163625930625632995413579276201986343002386167660103477993583565976603578105239408651972413113060910430137701297037398384417749898913985978106047529725680141059246466821958160138437027484399285788094191532680208646720807439309704754521889759153209743425051139834389294058635809376359238672640979354495062053566485961642218675826144234086127216414671390808993031237685025490510566182315097094402782759858683930837443365518537306863821400626315219903124937350742441910748312807351128505383517023527845480232730467860261240513399266571469759494747233146757300894587129821955917675389277960646068915535535367476601694979533085774225593431617557260708545140840288143922634894898079999121515879371399429462628516131186284098264594238078715738701870664934167182207745921919121699292208783947386490925763324330544784717379905219067345565163438310127850220671964827862132777439224089192861248386513716189097976608985767783452546670085980076256209949624367454625434740902165278017824279193170299489356001425796112048994833266816802635545620370019746645685542471987106811570426225958513222315812108768946698495538811972522752469395616957786133457151646689087026098580931297246142629626325303646013917157192882423582848775996715361678250932372828463297945555443868411125437691892216920406149039348095405447033076783790663706222133237750341960815438892484232523644622308763388543349569011397880660444072585830488437702352125341007502923643138549561118563208912734488705175479738965778356599931248775934537524770788105527993690506645027658466234040949477366184319999517463074491037815240274939307912032661077467162526481702683975470172451818878278455667533349040319696932211114798999968162826822689225497034696945531451306804215964020271989350576549407380980125942570176728970037206348824203330374556289596692175912270458849370476462665910463917326682133629590693412546225682771000022501199838115397341542711186268805091924568614024714427713699751910700173709459083798019646153240801039799408403991613349753954260077892676982963798957335217049493119519068505340806496524084482254729750742671723450736770121535371697947867172610898104653642965944829697100644266850091416363595925951545157806402734663175625486850602190877117538334500358668489663594137953394155615922610460946938548916492138357722577745599584560635590017693552881580063664244744913047413133955407675651861990434991920912517593558765077398395735858909486482579443434161948706746284405977792126364687178464545286641072176186104789165715839518756080318730814035250826914267695247472267549978784795770297969210679307146785333521132965891811035488002379367938298908201213629261911873577282818825903004407040019508286771439308171623394556520508851359842892195368144783728632429149682120599092505121962616921942626623442489245796527494152976557791751594529471034231124917291610312376242918210318787161738117166038970463529340126456211053013121302830150948995038421920274192001518182067542963116642532384367320014511881551874185963111715343404772398741533232356863059455969772954515087435021183439221797185061136616426360805529016262401614147994982885173153990161268334618484522910728328000920707631358600868470290552811670753821084874202858056084627825939726225010081548749595445022971398848562978243907884300572097792370376797102731676777870111537311774405922972749639577556422021559936166576560421458750326574503920616693327862802183473727621057439893594746461376347249386735544642708319500035503688723992127963029076083521595173055997481433388318003174999052794999946004573978598302740274603947399173125240437862506336069339381390124949829799163265831194406259528025266707545428464973846097649202302096702415943891598103096579482412705434178683711567852455557308469654645376793574516948326245980244782159372548476751070747559249699528963873565810557235061435796173238169472779976206576908745157812398393671675023071223151008206408936196546168928924069319172222460992459898386937924938187724792337857159041269012613069096706857130458789583848866695699736936637592293748702854340876953307371632146950903243080391541979182282040747748860300663623906186849522711936848976640998119898649957002354522684393698187304936281031703950387232962271179730545687920335240049749705817360562787837745166372976647821581847623756734219375431327973945499185984175779724037149020746707153141482273224802123271215669730163174194636002474044785129686344533153506806632969937033549993697238634663479549979353893788578402786719687971401950130138107281737304538674190064600742596004627779887251946785748369096649452426570792913288622920904063774956723281303841551295428577938305282720541090764390935445756209389396407607733295783697092761878917452047670239529655973978251233106534415926845587064511128129639745878818435503098544655734615018287419030438394811468606737994413752084481838622940985806558813842723994848354794994086449168670646035602462846854006673408490806701445389732168894156102753433030260028962020687166233788566955118218195451732701176597016039821782709374644562331791341763330987830682398474091826772914852111151394057179738307467629145317382072683908523792434079050816965750562467923060979704343339629107577058988691896105573009469295208856413275849476454958669861975675286721309383410737006903735137522432321909690303296440831313637282792994107232180867309513491650034983595658531767972494339253039973141365728708828361564894819718895181771233538963212124689596536338059476554300409370081881568890087037074952937299200635905812997419712678953944442560132118991412843956044846037420047674160899975869829448201208454466577294319105630679127166486635721940156316771771693449792078307932807024586849382590354905733376047716478548221340938727230593188458700640431249621393071450342537195533544068462148882955753651048479408121458981289515813828483575564624525159365009039369198908409244901402480938099810420000801967385952094249592062059858975160364306278294121368675016076104959650215741289146486006805043808290449727686705172334526863159288940897280423045575191342870266725335485423263983065201727924148974468694022132271519993241769978970032583016754341754969801902281084841765808260378463674766976553694885600161148435991434392547588358009350764249950472678452357229860876245696098895551217210442225636647080543050647708571664868461377185866144855556896044490990817759326060021833658431502914297285569177617660147548419386193586866173601255557838312858727959370868627456277009911344767709675130402150310252224039695890041510168420957199528116158661586249907419590519026085565176078145079407244316616421685854631517254142202397835333843380949955161640639109902049111033396769730986547471949143491561281745180665116971050371969024877586363040632162919056352275528646349706411855751555144264412577778791767774836614678483468026339305979506456233996498392178150634035741641048852628321242353911686057045728760553546677475454000266293866620930368735790396353101671076735928343809095282099120543547061687159225321082959441384530042202505440386620603395797391959925191704474235239567463663639079582385316701251104935691157123714878046898797915733559443749083149119096352814970572854883494610483372471164581516421862910240692255181050035795177026476106875486220057135696529570663686920248860878784668608025349059505948820222659069849115848471335335464482512400978177821056841677660792401093686763758886227166444489338843498055262067161529336671497908365564106533926506529164705534356051098590419661471501784922845923824622371432153890969719700883447102594653523872217582338285268606262773493881335123064239408635880589124477530199664884069190080696891256523628679268016079625140672003295431418974461116944346731486001321461148289164953268585677065181475573320400297239083006938419772044329436502973352968835100114109659542120548383014430699323282514591707932863560163081273734419498243085903825091648509438414753521331011086031135196736455599150728638297581551534998669668412129521855636935576575692236974283523459197762731810493511762295725269912909164172909242283311999188176444273610708138344691925776554253916615790857042515411562367662924695181805993627377296084559301511368477052592618987991041314641527696507996375064327881676566221946554307898261727465198658575172815807965963665860479247462133427435637059233656836388706236209805478440582158718093601429273052246702640938400154622988051125078449505838180654973625907632137318550388924262635430658054122029670214934040759490817732970710214061773680495008315498601971726696476131960941460368890777607638676960164128953874046274500038063819904246503570237725270515274562550961281638197255960910271160445011638249391436692315090858307110362401967538082162658180396187242646179867050463489664622342744764852814078552156596036207081627415556034269497946222881483941735096435757668885972117663067028038110661121056951894364539059406818279526920032857259849950675970745029538429108822648121249272110404467027581533228214319335692289309833027523754242370407706089574141669048959485151794440164852970580384935281496721904563950998053304972627214003077308273800249045792383802493925184198148550623015808128994671335811031595931106661620941348791275598224007571713148877114850663788394618405916655786475548924688010111955843706262147304533347584615102593604869765735237215613639423261673803612522052350830259422150814679154675412195823444931349415174364587640417363484445066424098902719811142088238344404216857877123309132331211338760701894817150714168865018409268101874378665510103350731521566787442714893181192003060267816637473121872027104625021682169886233113207597945154914271837049307303302467598820436169850719846459794455588267753946342325244906691025738063887822036965154993807331419233200613919685270638047245987922290563838414996811456152286189192444898933748081731150050575236200204667660483896848985162119460851919920629365026810773704914268249102205580017563725934318115325073957842481558921881700677576332231728468900900245777908558079771226984072702906279795634902143723310684997515310525008876144115334520500093774250607923997594702573926496315500421034064485904958700073603985546484772791230641130773242113902796636481183502038877811530646660373920870969857558366715826627750507312892633130313911972939231835523358820532783327169144958767137645724216481162929973351139139963182811239681805333780107070248201217750544356020746008129245260687491472931474452552263414881962805557382613693620229467929824984718343855512605589513182146342747073037332926178469925041509047684567214878161456660150997823147908011199482130855716671079229244167376522570165792942616900782894701777801043975402206283144426750594089830731786404304841003792643584737371114928168179713369966042890340847370821929660897406952596176758403022362069490305121341045905295754407503532774624916835423649939707596571133945389910645398131685420192671774105185425580543772911532343084664264869709392856549024422841980696976916822470285051367158426966853793038441251734412353117745435586349940276460353055292043008666931710677136750723702268735368214866007118259339898589601730766789102061879957900040434309186722894250638496272430811751265926478155376048912517077132544933739930450225639387141988378679302077415899436284452364756649722948874836191351798476916422390520137589378012884914137425652486939320806704641892868721901926216153802199933847685182498812421783078822217618815857615831259388537946465165395669797559879983804776768592610637116354578759182013840675617039336139705106079772841282059183092846743970368615641032153224107561254599312634816917757561289318920530526568834128505716639522356566059496236634483830329983389416403010901697877013452254080324617865917691810121658582445973445642824751874823892641956424809842035484864076604175998038808463491161385969251143437821053424306094040507825522876438038361186381763587426054600730741195200629333947813396214043042549515349837764871770388018865360715357099879268402189550251443201558202935484188557154249647055717604362550696481916663627577928523847572697308654788651252764551107491353759904080727983731886158188564803218984827320454346263869401530529247778980348749466784038751896211310206900589239104743763268575227625159103509996300163165586672233582507569758837449024870371054828545087521868250490931528372744383139058365581637601881472771437496198849860195812407892690201625092550955653912208284787196942645951586719514575882515383031904371072251474201127278183618428128039296700411177853965531908434263174958270190815479671743382401319865068714830496366686064502323618504630061812177753849682287423936477345921645751362033801105222515697572671507387689803224265816743548116712029526806149361699688858753103397662270335094874842092119683949670534880028007546102509794021570252127797499544642738875925878671223305312013781974256452758931179066608719563810303415478096803080102302055094468225093769649161802739776794881128083523191377887289791101033804343999260583267683407810892350863520315028715019225087277736052033353038779399596127201598776685294395598231522763616369248417477867321843914395584920282530365536242081077368540943436422927300644741743713881717422693590570817613637307652499006161418639286027779511515155667364610469276419042079296645685421166085858959080480316736504580355824385734303698160292054497806564838063922461463602343359824248064653533502730457377942022947084792822350862255940632928459748562532736598980740049390991976403289382770004923371959948786342579800528503916446247954546425363128279053177272091050549896652152391034489407630485180266687921933799891334761160721323599465820183027069599970194219637072506956038278638161081204407793946486188672116686036155083515502662082310424663205701824320673218808214815702854475931828781535493142285252879008685870277503573455654466239254489162788910821486164459061265595320468649938183314802857805404869072706887687677244084772094079042971351087533738983844159719302987079439810611416412765742610726936101199878824652804928779919734262421976002452195257990311927113983147272437716737817451678031075913195211831990011534831686786389014572003836056070106319911999852017467310125979932376449324210998123813084977894175033769845149066183958231289803198451382761444202715993493829709837017340490069778098917598954820875260538846845404266767957954847349029823098513742032201724120761053335154470773191997745813983282869004485581087355846221953143464791268018217771865912351750436553137961722566228527504627226435092055370200557425120450326566977001813920307103354959251675198097966478780564639708792053679208552710811756275569200388657111897103189763082791859635220104270450460690082513137818151167588992877192890436156698485392081971416200069559673824473457584130044085237716986251295350151455080824112269898308224392893459259970827135580148484957892882552166542696933222910815695718026743202547088381380980705752858472861010063923994182347216011104798012747478361784389931180392936919646191671863902955243295802281373646605584020894376463140368870029003536096000938295998065896443352667635756688637480815402952272535684713455093795057280742734043923988778416067929164528474518903105587506034382849933901096219123214456143087632902133044792088929560508738538407844486414227443616439290692881078067728108376664535624108840478107527339628700130090685921398605855423947314997287244208098327003101959361793147351948905902707141685134716313259103818952891313088541201176482776139442753607885569831679752166578547516195348968739967010230063476356378466069969422146628414186021647816219915001387995073534741500943362985952744035763711689400347974929852156152650214275055541822259916899446181240768585429021261069372729527593234219197413525521187479244588285802220615283549112067488599872981945160382269202287499300749018866486418700219508686767714843195692854640616939076226530277192758446967972933262758372418987770105867703398412421222098258351209999300137542075903586552494296101712175397694981734703995810104180630604828741511379434592614822358661887363918457955507754616935871128322991427914906190888651973760888796541120650099375714546575474842115813094599284705159865373969334881167963030409290147634154777213136875814954476717341866482427215507517615376118663724952153209780371294539668072511367806480014851058829047966710355513450677560634759318199993445080710049866987767281562774863472666166350227703041395899954002175378388379404327655136971447868216869080285453732937225048524295186613813065190459977328644297173634270384718264221507038311233357638986555851834278093235723802053936590824965874880803171951769600499934492515115870956339676243927292774796097480074870448482767931866623101514396571005054874880093057223260304669260351704793613916204538059859074563109437247313511702504961880352563590636001233378724520825199965697459380120558749616174618843189628501821796714721252075259462758421303438548730473807523921353110047969532758406503545086540109108244346452814309082208048381744634248450719428148068707376787660943129866232914404636076194826661670748700819090194445118534170199696459904032094471762178242143246044678202453682919022283856877361609382027531238502782793369123627394298969098761930869582354106555878029222312187233349970652599204310196068253809280023207822347480564790671097661662136770833231265493984629397014410895463421356817133103170794644019563156174479569467906097795860894262088113224241567961001660194804182362243468442317272474323205143187929661495837821975340073443981981478780049852248497953320636595939519583548717191455503046437198466361248137872161879061002402719387952446531501355423160028769674572762804826251144231685593070428531331049098620985429125182278750589907020493630427865058515263425869176590307447052426025654678320115333459774358595786198418575622583018226501596767163155891659986847301287113524019257770446988605636048986144059107716876840034666766366459178732340111587938339427644371897818569834486582113938315913698764002655183106144063027091181765540379440957365785010277629843105075790463145543299475332519223309575174841375678660068116278009233787232286565316216641815485843042339424140257209894411795009205997515091484205522473260369026779107236757722251918491196993293226938300607129168115864765750100830093650442291128809040117347581836922911155978436329141107815347546768271131786961732227778421581481134852693857107403050401155763247063440362695192451704525921296397591397337325764919016231940496526595145693046634066000087423143137902094899638659244730947860706976920255985510013281125392879225429560881631616981619769344494153176469557486692669152499121040094395423962639803399302287460101437327984009882367704936107233538612705869807231052645843640940392867365362399591399229156029102208705717010393034585611698110118670793634714181099655063200165929729462053240250518253270031935099974729104502270828812321555271434100356992118665308314324594400428551567608000020296454883952981180010827368509723413364942821746495147669727053005140836819185457063931845203610107185893157986462823105813321391558948148908215540800309749026141212494621974739851119635100856884740419059615511945806669410244732594459914138690717124717540117352357144122435755093128045291105394020310472566501777380796413721147312592871584509411335403722237695544528223449357169382829842368631875104225944915120371895127282076453568769925472201910161456368583447479874188893893493157891636819370618487227478115020559818634395030179130200878599599318790281673143151922904539627235379583592045878419062492788933049923481830397431355827705708291181138195039235008814143460124164583871035173604436086936403556483941446473936153911036544865037724042472299526695787546892256997686300805575772313899082584049019836621749887943907667484427715491371949829088596375690632506973291431372134899671490821806888744077242997119884563178288193619778194383322678744111039429496603781379624954845070681086782961863964645197530193480680086118991274397713711697081236350835830689639794618654110226992923618238469551383085860575935931811586650774506220515412129202145933909247236112546295048261978172330930669111300153633196988046204300189109946103927939880835734118161485975504891800880857323948971605289670119691898969672408621376096952871436248039959403505074672067982075375039920005375770824644759439708225913551165210610675570976646674033766007245519694405813765650977155607124513716794591637290781214987673090916476393891106775534444738459292169815718687493826991997294320628187676225343097242066040210725215048980125189772790894399706916068177254989726657703178291916672569512470897185138396562353749602105485587654194828604417652782621209427005033150671863090268533066005441714757078174367131000550708562656481549855106345959960876533911804687490850647256994524939362030829152469986576421245404342606642459489842871822634560863991693393183208306309618644718371868577281748180076507659787510285400247409275991743787327043502656096453078155513540007291555583768645097266381529231430901298446701819356675121998762283877098592373406231479671500776535721940352978008864493636353827864005257520039701365819912001976578303310766256228869749572384503750304631698106380776100077349576562378512011805040532695402017525823082515680161989433902431100592411324359683756003665137101296812113580647026826749264108556523551901369317576358715805224799302234901173755906498249440870381721874938399268974934877441204679343539582563127295620196237448219395924449734492486909015926939492097952857002144373463684883996173232467703804437513413436112129118858883502865317725998799343539648733168697354040640197103353330245505163531988772939444892717576595331338401962090396608732402640825361797706607590311655537565190648598621077452872716382177951736605201313025043528067806094201338541076654426399552884095669291784030991624520675051658510318399117383728308370307723818543450177834600770038563229889977124128112937815399843491306887250883476840625811243865280543802165051372227316172613516772810436490994232804732620607166387189979054188291376668957900764627336801214000218507338862565406755524882909535639902688236509804442069911071855058596801620613733376824573080189772259495615560112971979689781691907394914046601261184183730227221104996852928723932933504067181885649754092779288717175519332431283687980708889778359692709095095094636979397574971419713220865353410289830236724550048981361151298915087794439533933974058421074807475345907415413675864071676540122776847401926836262641548655919354708153263573564509594348422665084228296557321414801444614929446927868254993370130574021343562083064913318730410204071715282203562217538819951407108730342981453649471147392741759468178546933902112320392238997586962067368720353915088331205044707337834346316969947742732000319599101526961954137250973705809227050925541351210914567950951417198829154139113181730957933234563765476424565452152106628477496701802067530938732873881023732869894979711562468127443156397583440092374248562470578592529207484873065316532713437621327582602389734363155506088469648615737071708240333970638056073474739766969600937068300656178467355830367155638984052938834367280082969978188581191002466574137935340642313807024815420326679079334436300418260507614545921355967867163030628742203373891329002612567569938121887741886202755325313410248733694543629346028711558334926816048565039106214937402181731802176053524600313385856658792181851555744529662458903880802481483229752373940689710541106207391670067269504355859213153143044593024193449134629173445581277619029254903349364928363546360580568789665514834891843687189488949384982569612401012444601665220282116960996001314846000028555839433472235312459374110056953524103335516567476786735907495302931919674515400196416949786470522115919918730171920572202277421495154582802563089141631379353586685992825425921503058829180722252448943553649140427711439394377213219570420433574598364744919120654373007638755107196410716828776482451194467446724309385411529140595953933903328091645086529750255350306708115822042816404142078356097845378337961579622867401942170790160890247182140384988466011147787558358911348980440635547002229348975098717909061610500416521527212576262985862185292570502951122007900990416863931925294380575204824073934825610514371013169595780746088278559139970994029929095493438635657939847899724180119160172145590263140951549604301451708395992449214522250147338731827159033879174080761824351962465828973202746425186876220404373633060029848624049547626207678245760876873777725375667027671351189930451176133518828388966736933640550487188786032413462240878155578098225372285987868408365453124249872361360138233342882981423439149067895305292587879354554851581410562148173553209439992942147374711822851923114803544417534678412542791877140248259796842795924908349602979588667927948210939916621758491390579852020437922116359267924901268418005835136295930665151284492737430550660392106468678521576231015659511178204652784982255968798000458095725471514838091761665459860597296956131189366289451960342052824540180890111435778501693066912127538036893503236232200391503127885582049634387359797320407295713145796246313269107292752848528403220912182849197067551630989571799751104433700232619698542621746336227537730777865309068452719634433335297379168533152314034873114112516687664740636071967076850778758878878899978122827105443006957716115088639661149146912404730153789976881878583539956799241925930336868209741410806108135691786075869386846503451803619878474670754179733428225558685822930252253930617282993123590920633331751036417953597200763133523957881289830259966564746777035423341801768353962507568126802343509958892608885648614526065090530011874878527107214109924104305924222551581405201611209615667288632340943057638698189503777372319430611591066085738207477175180114458366052287139631380574674387070720481323371801594929394944127428751274761529756411639505228331494469472747123827440799323976201274096474770468804921506876689974569368584287887948279731418726119320513460764334156087745484032718200659556374381410945446599975674186294321691258504665320086003474449377297578450866023789347325251488505501385312784721509969354403141004472477727671010075591204285276166669774148958547476500192999850280571871933101189314683193418388495846223762761659626510664492810250590490039725348730200358287201201193655253645536756553850184937167295555839640759407837401133023983221138913579202837445069858959241324081126815285704982161025328290308190972561719206586716256951342036472941847166601707583978394540536729548840023614311278037217553508392867335717223771746991585255055219483861611071943533374813531850134716386314904672500342205860062505567190901927424863911847769526586769576996617000392199914547406097024240110201661890217197042354936699022775020252799830723600714552239176927890769167078051623194801196176792515250978996734991267017537279038078193404538118578846744078822514737056731370900979757859938240603487348477087252046753481109509981817660726586112882348632606600244864261300216763000011308244475052247868324612605485319995826601383415753991167311798392902123198194547701857762161833582158150646340941726777237399425645939604214575679013743003874588664232329896027181284485978956554946036140820835041473286307402027701453214270773387625844117315978618333376118342629112658921945543291434064360891288490844792255052134823618592540890978634078971962393298960549352213694224095576243242179480965992567069188975089143097376441082336019347735479839904571034196679256471987906513667243608350013751692713503669031231934860801754231842699437421414558500859430134307257826130741714575087807666336376767578132614828579129942542721617899128811182820963797136474634873306980750603207263368330037918991981466076964126571037185431841673177617599454137153908805855530633193615863217796068474704799757184435455207555537228260644020772854467810104657252492803671717475957566151703708250281499744554061878698505876778276066028015055575009122365909286017951642047064840725318823461863771308524892995672298782238536018113322058977276447377418885708853084960783106685031136718924146734598796895369008979531972275488340368814531324867917948582961983542331000208391518114521564725265226663375511824998121997649431664764764106632258776212096766559694196273181408438801115120362265588930299750170882727326311286343904302425377266403020606143011189680352860542649306171922413346867609522800000904953753353539822985508203624230387871082036012735520891086273923234854112331355334589616393491862654007103971776550906963015255061773194142206142748535731024387852860687456176608536304058657787752983920060214180238887443147492627938613090193433829485989999264136541183666933646219765624395439196365304889816230264169857473179801579513153816776754720803535487330288418132348270034008106138929095593896361252598309278339407699826189838935734489596393975783131355883114783181364359525856014380910539909631219440984054302541802321232307399182815757492609826217387611978942383760442250733709298794918447264688714640311337598899775194858007451225335632253186349003192715438675317543968525331972440243559518761190748596915333208780927570569031585967657186729036769913914344753269974906388335893601269467561813127132279510369963876333197355491634144097821930815796487739432941562405098127522729213393834347849639673175543402353428496731959642730446203926894773284031545394499628931971205397813467345658319377750310153844869937063590302200037534559555989298292627069106317410720010133704972428491426733254769349043220221867923406875845995042554527622354925881278657290914001516331055503615549029084594244522406174903160601798300231387229301155720349974294882744268185707353398121310404584329339899028514745526556077085035239315879669381571760226236302470731617582030247429815774382698801627722190490230107161748637131535764699428257570658293578822391171805348853433822793426669705638079141659508925635550167785470521513634305579592504037927192042666927937013596018155855436783535183632116139096639753787171412951552492591209822409293803183662117826528032411340291490941349480380529650287589675776519598385749695494404621414827128423252655661532020098849536440417225811833975919331078425931017150725777688969878692855954582889450427535771920918824103041901017684826592744533516200699649468788483997457084125137019455486370378347186056046839956889939614968256325110513556791434074002164724692216586047459983352175009055872053206882974361522401764433947265937902769360922176373520252352784814193138937836454169836228115821113058897195736630854601126417532053544522529829165793875874711429484176286437052365179586432972006307361072831370280146048845953168009861988343061137724780582631489265112760740692738338535589237379997521241679790637437403784502666551814465049001545119814987116699168860894672939056663102312472902923072409261861624343094068682751691969547599735240947954017497983665231384957970833231093971297313143409738538769465848161675297745356086340336475193741532951192407088097641245637634350205627007102254126291252826559852633562568057512688624842071068715140999395842281161688021916694169357349918849965286818903616744525528898116839529974034425112934239596455805273194692800204768076290300415912103353191143600038279792329949704364765349233361470810581759222852672195490179985466458625851836802934940066592316421940622593253644628972360793433938407768581002458364478045040655946152082300053280173987181823961754182268850699859923546726812118404936187758724539171383695774118088175917499763010043450937645468162989550631714128035475508398507185024551692955772179217824699934004359680406039548763311957319891557196670208609433740891355278607379753883701242786770485765708636644301586851668560662955606131327777554279685247602749659724253135565442973055462875843263231996814765917388369175994496149980665205127960663121051698552759292876557650735656607205869300569287325589073291160962475176691756905239689956023042507248718931250081854645123669755199391928156456256050289209407706245068777041923735207086851402652636439041906507616569479436845378619802739629882568936098214584152693992042123715334337773172083332288638267680646634439209961258897669834543588268630324173466641800825925220532890437239135588313386430765334061861228860585417778070211552042385004353520331992829934949981286429825049737744665430453720644667871898887922842667886719532793304859967143141224421586072513598966983679378443479832665539580730621142564056776106725392045080299116471483928742827252325653279059805905683931892567497589727468509588601416798215805472379126621642443329082341655075805509277096046935977878074711146333164581224793046800588370707526873659659468630837050318329373041186459580289257895409423207242274873777514224173613247643045064104468547408591418885474148963932628057752863805703505669919073431570093926768148876741524760374914366730937382817462726023834577888345540939393208342213500618935613995555292430523258195221024950480350521331093241456271468842646886888315907452969504108632484704836069139986534077153455647939004121771658171672889587861869594356519995189017600549983720169537336625161326555949870611437816286494964330053230893298801905205198166883376195710397044022109442012909283027719047062477138985932540723431858034701278543980540009761939682673714934267108178396550240560155672131913843090340109116490270869419163764960558296230616252257363401185258148101291641881044555640646083212517736303722640738955510406816767788672954764912966530104098480266276006714167391883307011308122457587405899150839012936148430699521505532813958200950415166546910606965261894059611236817312342184724396790676047253656349081983289920424094313898530207814067898769880324512900694857469909177184088963621253935307540290270885357059445766405155841004732094771762344055399267145021889758599567130484796044114156329413376480932143992050341759616073425895769855057862948037122966601356881019376610876967140124318181938046235421723904042991743070928780377307696723527385415161050710010445126787193315033217246013461622851695050935661236547635274984972938274030632841950390087246471810718982543190201323826250202164404147810915239715471434796530829523348402066043007439097330059941214587253672977455699575955723622611821453365569700409146870940645703186527097001212090771215896296030230550815885543499339136543841939247740366350903939422141145848516121986238245519977820085834996231554510904495822825347715998136711024736664409454474748709699788875168799176929875850707363785020253167706449804022629740415002451417027640632537610791882636001533100861177685470568684176158949529831784438529718474139510719596617384154430681933139275832440331234188832347867057004892892337651479349466229549535341335048875314170055955671314239956989615691020310444615891710248427730023351076224993908660782946648859194018480543447840106858012756911853181335392137836983529010460685299684403235161449973142622035552054587784772497828443851386991260268332318943547558480595522603972696108294883840637284044905088978091594520407375994226102097635953376706376144455028674501547820329999930815969725872483702447515833064645297756715178413503087150566508423175204145462857135271903646135973984838496681438212807316616606616933708412182108208400245930383606969079942428488647366711401622462072134188188979659249965715401754820394301378784452465833132261503353453493036420689703278959191667452945109093002768978915850645948437895676742989359701594459055252771021764153763221137306995912491856219069697194834843874922944832380581525166610264906900687786608469998232624229545473488834267550304160484599111881943712973976628742709913237085078198856696388872408922300861943258934079734471421201928633858048398138821314431126508083021613707294956556153328325076812739452363884304897147099722555196282050665313748425231174381012066778432700514965939769313749885292226763604442458902996910654119532654193737923326473019510722219031484452960578088309143004113080014376913949922738270873336368276114281193506412800366484549061345483877322618157133566937174243507053859909482993506652385401994638243807416772868368499556562819994358188689929962865617336389515545530582388344761518276744071192256690567578282088665505568515300116310965993433878346879972935516854109368152739311570337300262445317484135722718345572824741756739823680873375808854799980111178924474743045406366805485295029921869572244160475794731763171840222297731920848637980073076336083302415399784697273533285665074356825738632821187255079756023322922311459646100681061418039010010572447587227397200055243469158169670432354474678922574616913650680399521921326932916149340999361647733807844868462624046438512216235695691824635990388733493071522035041658522966893768541825286464559687759004558253107351741373053057404893838334023441677578111965994954398303435500508671138989022147019525922637979991756559739287590658749593084944576404696351201493817641936432576485681427031537084401322067779017181239625949230695475562185103059837523818079076061521931266686702230245628210538799105377421349180505510320924423873588795131524218978257922386906789450307969931839595534737193751815751940051831223827549315147622836699424022284920416988657374777556714516697438320653630199054366003630799822112416150346183712663181415743931669931329279888570502696273270536735095228674713966033412047256056081268573325884945715316910244134307048332740045055825890171315164240860740510281985570771760872089055709002705535719857432901336271532704914087469054955773533854284345312028003073655969726769435634161236438671370109812851815737349906591670527460357416255538762739011148181701873925842970416919413795090031565342556772646589603766239946110134769862637939812902333258908678184595970454207425672428716039989822499231226009922516048457743885999784751415094034589084219911439874949040822967233321663735924248110733875376097463512748486499401367861115208666077926458298831272874857537391579406683197561473341492565421024188314587177142685543633862153800285880366215027893292788566644296938819906323640749277606351807182552123362897413244775315273070064651249626239814051323676532010475019630347156173049544618550122359148931494466167310757723625961634809760953677169883058382864609225184519333960762009912493407495674963006350463705436295220526459070781579011206042148111802753297910088132459225794452124978469156764425891122211981539646490800947717147624874314482653577325399920187602472288117316623337263373343476500909588185977609153641761348302291550455770877513642078329548026179611069498933838529165275201030661527412203907093812387589386257798243388765268592613431620569279694274530822321070220275218116814559529033201549721138882917218533337824717263029005071580605085925784318154254436575044912718442254274082911809653904948648846720742870171367531681665516546074364080354936005964191534925317876542857684710970483969781054523462376947649072361149632772568678092212476597268471453303622339941693211642357764852607421487803259677448149448980665960637873660421667192599697239416845540026122778531753355162589823059194786054972145543355827811095847444676694005857911087160924747673155624749263226647726489971768217929836201405455015850578886716396882718915792599618253751251113741557715982254850307943598264780771937679382112712835078214889253455886626583876624610593059675820828611624021787046537683875864389302748648956626860440779114580087801521499708495683026119426030342674399291604789590790483333417268132222430709886736425672009329318177919125097260556911661592815627386957123113254366190781137573416675223454610244452311728466728654226927509192964315698664425615422774036925979885585142054775366060298861800989979915027664261446866790743927615491284024092422165529918927263385151612155595528113883128317951652569110095725898758459318981321779852997285786984110900078759938410881713197302292600694193979424054578284733107251679671284844379668321967369527897692471800562278542974046375002507416692041751560524497381370885416529117116057964469728752965535244383371838018971715289295160337176242642311730221537774939843994097530340638163258004899224934158579036611168079934553151421135230814536790520107146630771437771299979504876491139753568147891658721739589278618943960727622503855382323895540765603455953242290847588758891495482769529357364501232523379155268556695088997901370764102898873380180456244077772533153779618117285625598437760605086119271944517842672133729290393770887114487971022997955357217051271862277653157695879167961858894517752245659261685185300470375066393967570683790672313567148302519065825707813206704765115510314243344381405521450568074818456240571735589547888201850107938787370929468968305814918610317424285982907836987444728739940196330736622547618809371868776294641333438903403881959155731833426805795337660284780978436915951652735347631441153341931065740195393291634174450539445314231362030341940294018914845733928096880605834406460170030841966325578461817881908205761749730642802016880332623645772233501275879027365277286914197073933532137272552821754074923157686567511253438177598448938132444888337968133833254405680628622260588472079271599063835327460699999728158674556281540570560679222146311730073222980907506790942780888112556074704499161150442786047443036287486441963416126251850923990530006729136115611668979955618180714161873242227690760443181750598717286487895370500393083086074563752749141565987648574127335111478982610258068725208443221751574024973612168332241295775122848608746859968482903686838810790223705268949035307709510945635511790332879533326145960245665546562992893497694572250608780543007100016847896761545861571195304971611616816131449459142020257157691918296415331598055279403259758921827014948132307686050822865506359207284056911100263876755333285631202473496715491862626295870748394604520058475778574758812592137470791820069117939864307108769973102398640216283564287078333798657086819155984179301480516615730547891483540946619314669813773972236162789705992352045108170412985352262967925064670366926642048462142653756087037265353818534426029225452095544736994666217515970678381725723885070870024367603578213113915789593071610056344577829344205654989410814926682265004721169391865726841470829572488944398016817176359941093741376758941659740011796106115846777628872731981949612173792302813389093171576649505759305042403851752635878092721705671879106357596344050175420029466042540509991513240319718210700808690583545575464906094876368409301219487598345458526311227840456157299342319956516314665919271510720672773655086749281861210569252253871738731887391215067372287337747963103690130902734097879282589485152660624495617474474763220121941258867869228256643931575383415777806020095571933844161833685499538741560377302756896687497007590882130319703697419309918296488217466300493079907807530984886822211765481114187774117197455902445154595449107428842228310900729817185397621405437603880357751028933079422830859151865091814037835129466482104852793175499544027266758341166210260807372155522332468216410296151347668163463099300731804494256274050275598102204679881239574217460971094649869662418127761764691571649425302968523241973349397739074918068653449250285604207992947088386031919155630683641209759416389299918996301922566413165706706754686936611079607011957235543883195353352791457844665410032912419124263407478614862827132186834589548974093493547230127101825512994621573190508796360910727305196958804821313371980980638282437874579482909399845320531992559962533440933271747016358035219546722956874741116086129878664414344384730146606540251010566807397615331336365861968904983799141724150555302165445970943885102733014435743692104748519367645167464423502231481594859329719035321037069711186275293865066900870237247203260560865573836355681160403002151532219733423857766775577604330316833298468434610082134616275622313788195345813694829980947405603076966227391780583024161446760473349378982277608697400331556753367885150212699501783514564100824333892633923126501035725645121705729466647134467619172735523124998818466016396298055650461162502747214741468618960117581396137542957304768359198052655338997854500074268825422415824011512226015371368909884914423413307024875382778529505174262037790118129787444245234322729372250034045730919561274778338858383750763697250111063846991899778972481555802533525546549077716836858903928535136445659196922785174973515946589705083658577886261812649058238181226783068291203020263803645031595897818653703117816249054894080573376722166020851126435256165595849502304733505553830318602927802665722972164616833829159040860165552625875639512327639376788194632454691828336636539407278081418806891086318657160241269933795819845897122124435968605890383245919011903127454817926229537266061760232144501717845478695849172256373765813358216117767849549142623343059521087003934869711212259694775365074996917586411874407248361610732777335228855453400144957271837074592817053226178359978766368059106012433605702431055980439707220415756456005369254760133188577852921157673128270503473287208854916769413397959139818192750126168735869167902521784207142191752642619695019843406841455436595740031327207939914860581900869475188516955319214155941625200058021680492144508514575122716217782928473913378313311923100182821712687908247160354448241173730098228044131237460420501518997188376795781948518518515560735080606849707505427491839115591877638224383841043479419147289325167885986395961211778165423165108177244955406969121615157997603117342796121583761025089786514868409554827671638024032808155384053549344444931552436685411175013773523890667873075139763738788609106315171716629334544207357487010866753127829626329496338511838361547968726314253364690388376538182722411341479011468451477724027971080332243246578601910692116612902062709360582320704120257281610154278588891490092534989805562133044956510028268363918571212348434496819430105766398200472319098744971232950472824838193724466646872646980140975403664628812858647614726987083896344954799628129448358247249939274458900483757742454499681897666121795495713468246865272630159145532742530642037558636835939313465616369215422092545284648873573458176485355261142004271491310147656072868449552946585571224556879896612110207590913495749548949064132453211901345555320534349770629750448812510552145743223369561844228346973165027729912948902046227842377887494088116451990707176865757833979800042839519823082822902223837396575064403482901751789192512799895407385459101840658046846028707403999165169045963112125702879361599454392307862442748533798828865938743195049247144720265529216008935417435809408541552383983163218446339814115717890441633313109336438762018011661280490044243769702350731359692879395727636279105060166803485874110974369966496166095124927956603341417558392852109427106504067251026661723243473519909799320137383749210184518357599758879906145030588178248372213624721480167369207963346353741370302856409168220212134195392207991486297501260629065184077778771941265435978887656443579640962722466263688853259853046675629346224752171104285068119602798655681650222193288621194771582032962625679168004987101858159445760770869868417226796138283458951486981302503725407672866998703182683668075563379382459044957280733807674797145255011682293672431434363093225707791164475124462605648349533483479860102828107657924552113990775971306743528068509961390677535130346373384585815771844777615390542052076536351930911503859160530795289267540343816028556939582791055407976376124312118561716406986210725009904840742269733361541931777170983864621001189391600187698854282299566465958691470707893169651963512158609165898893507015276867896749885892883471449948158341584528524662079250397985462920915533222569642899295688578361804231998125003797802952282159324066091170534583261860116698622664624998119805225835512095224551879184472188878508049774118889033451416369167944885673012893177357851569782207542841490666599802141326085332702770692377615458667057611763394677013161310173694462278916464429723672092035100079560769280208283974615257918341752565426705563340107028259504507138062497890118109732598800070096098610465069290505120604604971421849704787601188794106528320842368813344698366276907015683356239065525553596056609190896644147684694653772837812232043314917265836729103736378097457367658247071373622324761966068176146236352767493134488074120818690635864977608568427654489867640468749303394240058644293819694160445747331145909041899522038968396608012687231867730647167713994013250053584788064487209405510997027890383569967804003849620182367305291178532680155327267744103344894429657607150070012386534648731123734136204793761847654654559873405526818511470945060834054599519111507427273999335153927199134147882946359656715953612495500321488844785471186629525682894127947717200860222653833798728359062116794195205480689385985713475149758899332713713706802233126795347479984881911713603393928746924925707780543236511837763923383041304461194367160225904299100584680066992619899209235992699030330460718853153632875351917122436519246799617614771058611377472088327854488990792961849603147728557633917149426057708662496199404529508365776230143409780836600806124108222724071672637612373854102039165776488192974321747754893307406982420237109153399932035612177660125309290727558746597728413231977384508037034873038093886648617607098740078548225650574521711258678971803574286906596069356474875522050259894191331081354214990558978383863624229883207837179774660515362644392418053804468745011843752990842290572384402242476585158409146779121923736357645625759197547225534468045982948138700135444686007859881886169860620669509900644922022476717366115207449689461685405894052021060278605655821318103947683209534877244233887729267865787434412556991735067571122950628123361726245486304526175945019005391722157369418684853223056403469452341930020797534308099044036807557784856019767037443410468297966723240960825258404833099682380815914873675309937053359642925905803302822498968956131122100273138050083631542457456245047620396816989430676192075292410090538071525934134812041473293901416804388233206826023978435337768698020037795833386483283971922053511842814147491568200696880313181965547487471264150749264735147880781952089598260964181832244128547507915614187865588465181137168349993427988460466003976224534213832411009562985212024948861844610405420188934359356156651431781804816571008355454248361752673893490139497911850778914840516398196508842720159210775644314321690994958860076280288177701710988305293078166732778033428773013627760142671985565444827724992030221180327557142659063111322488682369279591166841547511012265170577321929664038018356703377571639159608353942020562852180410580735653293876883166988921698167887849668752446649173485316338362803796370101662774374278876658118640985639659950532766601282826138318736218211595178431227473617536078857358655448663643486513102965461098687960265763218023846433091114390644435502105036166347762936312919752966451633887413868565151028469431993915510990570868450258839068102656557137520621370380595142866438282296604599524089007666411901669378739524815208484198581184427930916115201581296385904487825322878356118040991613017456387400905053088400853808436705023601289184076549743239010015205842626889681962876583339810802950705770000286030769556341667321765752454147428546582701250424350321930064998682719583491871396827283383358162515597944834367663793803575639447898946645735433513685029383100369327594940557164502089908094119524774831837298189369140803060804011405980720692608722068782560203126941636891949128252470298272130966693916173906605820941112146611539799652944439970486054827252597653277283276323867118268300531615354391050387304386881683172640213549288119387785494065373405539276133889454573454762000062596885404683634946082918643941450091702168887845681633052976101411474210414660615154175283345671988960344505844731668533821530975684501859974051913236883957965837501163370837074871459933637179651542417632200605338435842572436389381058357978353923295033814676006356681526638982656455646330040655703635540573096417767151446698669488695881809170653233885909963285101203264913479190897180543547541229574878941146750259155402764617171951552048412412819523328255997857833079277009053743253571499415949503426481147922039771381569873373937494866795466587412543484870290657899175880823218377938596342310059015725229614223750592708661351850118385795441584942922147502624956762218560298678073039675216164280455548852875680694048015009727098356868377065716131383748876340029655870447469379021031583178046045698710838043755736796841644558467870146421727821573037402573489547911894229593550229834665321319911189077163079938427991566483405271295308516374585635345520838973289798636987949570118431437085617971902022679523677645433052153470984161671200872118947864161875831699403425508842991912139628381255155082733001446175824838830940724943655738051766348987795062596428488788717033773494633041096093522820402324705246896887040668409796859503238654664599505589048600248564417760350902038307619913500120993795216845075506878259049421275592461916937149149740785477820166740090969016721287624798817176452246328526448622059607131168971570384229998880062497652260532692428557133201570636802224288296500782809971433892199465398079756095509874777503957503866998174863660386310670470609087202351825998654688858943292936850489427510397681770278149000916866120134000915941774017664711151588666601584237784498119644785716863282783146951607495477313279326359841446094907480500442020377154253187361544421674626451731462632094969838786118931508219952058754688406809171437422058228108920225538603466043398006991165102613658189157930120721085706356073836095222719502381846449565039443594002682368150491935223770413388738860768291622555108033930576640830345783421525330451449711915440930053928015875869337779718521487455550324876391110699290056496837274421757048726672658940332279630628862693968961773806208205874138380965636488779506620160412370927393056228196299537374064762651781981976065271704993056604301048550013181019882309368018025721661907173569131747697672893486896229937856901884981837226407164130128923786270499854582682986663972514585082081854889624827217898085145155049674952874718225879483605662969206199441117045705585840678345384269267718298138305206507715398546662160889877081600212018535211386314729746325955514969668031460325392317827073948844988525629002686913287672622190648417741473063198241577690224034332702289234088607338117801736722057043806076524517439738360084068354556907550876836195516189445115450661025054143557505351572039625632685333154732476020599744242758471291600088880960813735835899992528927545493641891538689615035740594803140654917707281504746035631972327684699079836710707361968716317551591481357481660403898747894781298178410317439925628914753508528638312597616823597516605431235226486593525616117628689285629977698160976591371046364407365324548889234402330184442066220258239072846803577934670119116459795028883892624667254683096037371511754274802344374076023911936782043260022398007758872372594427665410423322987343156936262474320458037820563390163696099020545461092346898473213578605265121716271262160228070952201240743865875997513689130199828814897286131179279152492850178216054461073024569294305901065079304729333001092592606812422050124467056288760736743375979602758455023200138373945218643234611196109573641650701754132371474926918009594777750071200547357810760583102369789492063125060916556940795866191713416363035592205303530794643781005595558057957247326897212502157963060454999963594433623476411216823679373205503528196139793186902603151760161324171235165521740455379445135926773836656847481663422134534192145458720477508183288188775792805532333978865014038113425099194620384720749240000469011121393847254779439730670013431261096803393283026881914698537456351916380150450772194467478323042394255907933968674270584546356679400825551243277787155771043042340752741666876380772393766399082835059688967274340546189486469854046006978193435645525230713233039541948231838616520827552676667899069079688053491719975375046144054331929223144716219510451700590782983815698197916645473974970881070438671982677574997448866956345328499072784912400866651865114267710647964464830024753126155555083280743157590666828703908781099137042968992253810445952367612688349104423174829725048518536174071685303171017621350601182255488349517785753455546281430298601451198515752235924522207549940150286288762130321599542627283276292601048855144434405628789852775850094304144007033776553884443788589998170743859178157547956286646425789135594913752176606035233290332356356305514995779402727781137356061912000644673417801365467909339652064938786172219976608815430932786898763609097501778503716270805127333183077091163444366002564296928791970039032548471976500911087525195993542368967171307922565302963167313251758908067648886797476623866593554736302931737785658304816625368517395741339262360380623215089819665022773774860406847506181110196556911664300757831934164957602399136759468207112483147018088321970142414382567437522873516451130582233516240116518677628879468506347611160109626974412721041484821523284755850708747252393827473940015608984053089159670872862577055047857756540225876031441842832061786188889743754008161098616912933412124542311968863684275877681032579304639127372810304982020459712275288595277054778475622841131780190455984289291281925430419106246785524611410309813100767185419339330193720734709356113233105667483173105247093860375103106775761305708166120262028478856460381399928525798657250905373291183367187343460619057629953018321838855360337045433107275616648665461653010508136437558888788290210291607753134978064556455722785389821926731072588355739657971099885088907001632348007693308280738811754296567776952243208898630219392157755359834407887735731719639297213457999722668194004413421432946816029918920586091144022015084782804952058753633916429104553945268595154909628228438693763870762914567554155025958966555096503469793123500541620346468031519171471381172729753457435557803919615883266401603965554776754553177063484683071128852474851548666040737877032910823306019875587936192428006910910206812410284648854851872957184437517786304785480082128491601021612226344571361160657835242405080619831533271926577684284281314231313069583173110414056038395992753572172519362476496686714992964935398162206417277403457526037208975356047799348501517284093359999512140239575618653241641235311419575636316731684386835471658741743507747450970946388566419761794608088250383554007873237460627575382276104611906728406454196569619120710406170275307077779201933734044471615807602884569981000247724332084609939683815459269149991089483908906382744145626946894931556371901481562510105164362498458532837361113358865613870909818194193658511730506854539856721413566537390809321364386300122541277043158175386879313939901670021935874629129657777083146580454726270779220922912912959083968492316320131415674456286157835444875830229568682513319522208773784546408514522329900661448675419388850194674214514490633404928986913500799692164676449204376228252039399862090903346115406672299671843154378133470168442151592047734961337816112422256372795825164388139263539242434324610588979121243070449549803572432010703404039338973128999562899170290470175979388194895998674406865938031355685523466042834759168616783911628538635761539206603208271067426145990543103280756008401674752870655531082388667228694464904528651168757658106045929219994700919990332265442757830580469515562604040892739131652711875928771938359157965340806265635733175486301395129588536022640961398357472781309844606412161118995154326240545887070219666987017299609232181300674773253266579601478830133735330941380950682976381398598018138135748222430309900904922528423911834875332560264202810080799047677286374509133367095321722338510768291457043390729223341321021967602796761145326070577913775028469194401306951289166662088502516661581094144756236515859126764722803171293895427198171966320013768335251001292901004815129625019924980071130390294428161316327752678509187661832341430080985250209245585734496102477410329784533512956620101116289491186320518119006429493365123884038305759711281126980613394546990863332509993925536944912996366025041491440730070883418255354692730538815759291727887160468292833238845879972490589820793232304925220908451197626236471859665035294155590724747486079119521068288825480751101284851238009925144062661684452737509741924547762839454553635815751065794728504193202705304611800863826152899051673815687069434717581956787224361392850297610214674314675550468129199018083347063021762642605645971390072711612181729082302579949465452076318351015320526805734854730716097542125877074303801627258362062609539179974070731764967957611336781556036171466293002744626493637129919564310366165742838481119634843924237493207383126912606326952375657098782380205695332950664191998265862638639709108835435045018339069660134848038179689940871873919459513323994584159428402648712988561579930977495510779438837790005375967151995472347262422276197961428748979987153694712196005688388965358087359545650885585108847033765431366964043588785242592330525425252380869679829445217932992684895521732527072118145941304266664553055226772530481875921415786535753210058182260992393391176098772820073973904218245172354521075469434247272493221068556010232228324361675622791581144473889185347044281010241897676266041526912462246276764578042259013401213015851477837099885163059354116684632112109829281176925129097145864327433322223287546095953791502995630213570641658678342643830049408301829882636742102928049831318900607609260585385198070555065524358306874723634093838302118239836185865530762587918671069584392624304927234365442200879833032548846435764427967142014355223745598612207205021884045138001595783272651492346480294078897839459178885608050022100086345492145603647638632659755397974431940926855251292271636959240852285698717856338755227061324561911711532645243417774869536535665775123202901774610617576666801849593599706975599955690374718548738828903359545175033207405311295445956886142474531621509745106172470735578002480548134057465144864364661113743742978537609837389174449191905737145833440694169655681508017843745366140314761965751254157517849956244901774928791135161631125913158961885064036755682483109607084153798871929700226589332989588477361361244926303009679004624182668071848788425702791431825640352739228509487801315322560726241188979558370874426707372747356765119462041666874998260783956944487006332160627543397754238023157392243369095503648854100320223844998147220558843564647747457788245879485558818907397925981365603608824136812626530003518216592519975192562051680782499437999096069476081303161239995087899931862949913481649402109971726245533541443465817901755168238895499378107517510148070811291084883719951970739518626577517713148291391433101207814371905259370431921954995478511116689633399040552905367853973040163653196069098374280576212427141473524408954390051044912593873967500345079707391054518235593829441811843881194719810427736905779595940089748770739923981875498029292492487850346805527277092277490196304617249454192133993739374066563380198055591567569159617831307106692036706301543435494564763570853393051637594300461763786915373704122211652642514236512143122493878858392219190476117106809721238070625555185964480501483497095066007224655906338951282662024593842421126683165453347211554041093591445040021110503022453575650522925781269442325956747330552021695026648674262115657326966906826073104562678957343338809592551477322902842883643087486951043653858275925276393274266042157966752167804491500672421172361383736463439629827057239816977830287687920859328143122597132264055624339395566444470542889258803362531365726108894495969975374393565855937195055134233444686913531051151067442163082521123340897660147882156921370443848631843620532595119282317984929223091991760147613773117310223066873388075561637015610894275556458681059526235888678420027722655959044968318589488766276837843601644588274639939827777460757967881593186229261576241582871993863882384176733437711778204797936459854406786270242178678092138666339171761218070855450448808661569190017993378388588996422044273943777819623297988941471453669317783593881318430493919245557252201539220462545950591953401797055218486369738378294636990410183984805939761966077730262562980458604028654189004663661158037644053770506844513468351649047578379362862678989917710784972581283210854532672237998240850243459442997509530570474346967907623594201060370338701289978546577601245980057832808033718485659232593636277781921523789707533946403268326824005133307326810444456911561257256200378656457079261478715222603228897884814318669150937970374643790176016855297631572989798500611137279888394640301450014424582298322456947934222771013785876235898573229697926231507422364911027722307614444063789829886000636744870312712362185694005560390717342345633943868916572460418752013304788918924791356727280085813206950786356264614485585158923402823169270306721520671888577328149321052747852703053600126095437577820439544271054054238933021478029156967547330054499619005709830646260999115958431100220871868564435494267173506559510489723125662880441450484165816088153574492651200730378004311678026566336798545405110806321363457297519908234087707458260294462430375029513594416961641106652296247671301035898071969641147311984225632634651595906409843207401623166474037854016298629745017861259561370283593558466145085242255122642973026593551568397020361663634622963177563966157724910192184170965684515384687346506618954234334103651250561516805437320682143440190139320669284736174415013304412344820843391048712170905769182280776733141896272665296782713664440241891654963377545871670077357928157360310435572811710054565634060961143118208240909748551651991567059720127921104634186523495368032112202457871124065532942893500358595123619196100764297396272341580276998286254650267970233736663265602535981680642861303675919629894550998206557913871363886318174684892955016234577605068768956985783976248335222802751177341369599014020060889476393585278950837255619465306686841698277276123959798145718587958176223859421898541681249257102766339247618520717343423863058190670900328470041506371106508819840167429663523260681343065432407743430876754267671149598051019733665995278007207563678132734794456154696727041461134703717382292859185175660021222795180442537643950669896144352187790821662287131885520332707790903049228320750289096178437710685031240655760796727649013945258871625892421525616088714405565197700665648522217993780166189736502312286256469737700151396347441914795778614561842117828092077368512446506871991939719565932552594715444122383505993083416568273469947721658037023453043454454147387166781978159177072060567449457293591013896471772834262677335306639264425179705244341623015806075505487439137548285751257478595114765522472057489981566327554695454127026727366283282261882958825464323345395647077759446703288627320345681009611082376121529055970546796367212237855489626908212068752370950559177072527242210450832114486490058378012373082089867388799628738378537115994492171749133073964853363779349487248013140354821501000433349070897862684393528083620192861913117737933127674960916087287555923767109938015006315540219689013876163550976546155912671573281507084470923764264705297938586201290961982249517672346596082877879308763380523087396818289148447924395272587124953316521654909583822701406588204503897128724486546156602810221013610173672049603254362934231769552164951460734525847456666547369803228493026100760636799164609086490684879743636739483177506330205488549072585108431469440543040737534952315776599984450961389991412622773410317830927388413318297007899966210897961183110393305312039071830823163999521603699335124430885294992880731063634306913854586585437252735927771057317518048425961765692382295984676527748813401134556737104295485466720694764496449347046770934717294665016881434483548212318055978516763932421457662222316958966720065475999250872744230848244930017608414257302397796981720942869338830768516079939423490289213203847756812787060836470627158740351464741846068754183044993697256392640083638209276085962648758392679723486163747812871272650193289040995492613253643807817733639667929250718399491929907280626745743392854475914327577505451964739329012486033270908435698183427459579716981488314973017142459494737316970149791876134667418669637820676006680022001298525128148584006438424262154539365933763287595322584106619375148649965562514349870371373233619323764839887466194008676945019387936162619805545989746330485215156315612526789512907189657358679311182558317788914796331378873775750499824978503171622955068643366450700292518763199918760695115228670718755230709068197083555380570765711253218979509849253694891976992377135881352461137679865645170832475026501670254401862193758402223241815638306345656574415228912561428951006540428415867795787484453385535620751556063474827088774645997952066123278878338913458146695850121496647708786696801577372719832942676177959976455875097364804829391723789284456194443266673759562978159412645005787281652994528042622782939199836624914750455254669119809987099167601810587503927368922317754292888042835615642391013753087192191874992392131150070905806817434827922160948384214119390997875712573791326285922705633075260198369326336074062454989008860470559365309057245213429834266245167780142368301720180861838304328568965175213346770766401033363890291816424186508243032389418492823105111701838010921490795443880044321288905397256497282095891588862026398438079999357268119716684417310938433309039379068547107505952843478391973342939457294975284289836712559237388249923199609041819951249160135278769083300573578938388751171803000870279503935060646889859849339583649301123343263077889775547982055353620490325172662310049968798771595357372950151881159016340405542513902208590198007051040770034936508629447871275343334554107768512099421222020860734524836094883095812662715607159543921332585333687266043808818988552308513409319900572682299277240554269927041086037571716535846624562629193830686696791206423283603475945838845358416840593651802911979599370631590364861293650106563160723950738985314203258536557885973974223716773669423796042243340284419350653646132839201233050483040262247986328454192180095735974924470461210883210775472511554119445842761512306058444671135516782579195851064009213052631527791548600931753008515950944516490076800090938296412503447533850673075925155148648966276613838136668522392776966715488493833261616399571934868479994552855770211656248434529342376533757377876342566352838194147748119101919117206890613717329915126991689104655208446723285101897008727383078391434604025330180442004227174856977199497325291022486073186874571097144833854845307273734229665618300716934338085149999994472698157103824282521062942221561248426709758228628132040676195083816249470283142856893514372906254746128318431107039174913708646696400035263718758127130096392459349072801834867149443429693960404179255152711357762563105730528572800086880441433700590345244769813802010179818632985673971482073487476791956573462381393007338664144364503119380389955062808301668968731291293870438921870335411798968994838855967787514266805868186379638614808874767952747742854158740190932861273636094228197269178781623736965150024433876927783504377527628591726356496425271980774305470295693450829555629781506557329371899441497243885363584688261892014063054657144394095543221885547104181153677684894499396297000087226022869106829816502075043456789876026644679849268667374085278789669787967827008422506738185413301582468925611763973708414432035299613638364076893040317805742055819208390839915900704370538389075621310971870967642731086746321573462447087935353305755517251922818118134292005918100542476931267358027610528679080108027473113210982297618997401167086563203608650298499421839177126642327731387992404107939781142907984577660036458049640007510900850147308406835624785175977886832202490276645736126208180557881420286219562387948982940722364741060574763636795208139633614669215438964927807205447100439572334689816967683931209391229562891696521796206684733967107149899601943943609551815353114113047736774212005624016225479569779325102957383540972181350981168286637988704748134673082964080155047083343260548128708835748893191566878244906598333773274129995524163898690863323018413855690363615702117235883734052664018632919627283567406023367584945371167678484258254148770374518748803702158107893979566424675852141203354941683617987116582686087365775312034481449029031321618891649252051807646440214457503844184348404167859979521924005772348123967846016239922219647002961156202413843685772577845376267745984866608749972924551409980904910199754009094776257224650993247727843005364912669309808307900119687450327081900968671508949812666669193141862613330068424300079321060263996257216756409254186852170471058206473976629706472177540572963067679589246811791220531446496456472553685543583284964347989501118804467576288636733977196041246211906040340727390600948037228444893571286836877535775250814582675348731875185375453510985798617185945250532526747762594562261962346842482505145488405512605789742501898516962712018940609913495279405992163794752699320544221884333829454027711074043176202067801693708668188237976000852362082714805704330401255142943689416562851724288446007010980817498594214243833432740313473269814380074305262300794948015729024646532577377820428163295819611240803411571803274261987018218373522096323808579293584380047500620399988727564920934594020872765296812678163188494874036402530263049489405226083686704944227529382521057748390237059942134801494655984650000901925796070558783912807663869586756622106364357779418503542428883718341676011060494741658969953481514670172609283033234166289517224461286058171929027688238248786562364854279108852220747397235835691821651960809846211908104156479802690797918030304021157841183027042234004897284388039465993516689750084798735322707912427546805281495949603957579723520763521183018760544992203733759142666613495985671598987279265984758800065538314060701707514263888047384086476124000822361363319400443527207869207068191231021873290648131409394957456651189551048145959676786902478788884128529640625535680140937036152257388271271191230303250547010875098712916880325994961429686517753555324875246734560226136982316989801960622367263063042242073762264704036493651405738935435743377217095510120505440949538427214268782703338870041793494068219851147578039934686749955821380953899232983307157784129914805931564985708758547143803872379465710575440264388881479637576480199714683119736058065118268912634488936131417348936810857250560589377217494600104422404358326612942290133959320047951079199258562836201886095518726975579738333511109222467985660567080815203088135105327421152063721667977296739116409236700181838335682093435015793088354637240937390335369244373519657879655759305776644816875300505122651569988646979304000452086318943105005627401072981977062717541786852890928876209291012246929012278970777957168098484118311656190272224740899070419338149289891395401515773962797811421808444021747559165209575920773471706514342924070384656833755162114710909834253556229448400231855807984424316468399011686852348944901225476745799639274291181235173916185988498457555226145298123806348012280457474638467707640922876218310782678953354943718040782699835463106022010222279920101947212164902929336103041092015599654999315648630153046650535874219327278274648972265237694112104158273702093449146178970509557505171402267669979960302691875291925642385704641112523507944443618426634737646452770328868092675458560458276827877267196721210229831869976361100604241687268996275990148942266992326278474774541369818162445126696529485199891576927471042793280986778542955175639624112868638857545252995782978784558902362683057137216424457952013208620758470584954044760620297072766034796848816777951896428836690908476309085788258701511696123099107219965662546057090480834252636229057800388669089557612496022947403677005754449205971784119213813742647469579719573249755645826554220036225099057322820352051428766212068736013274434552096908427313466530561850564230449563455737108121654476584765293257870562611979537491272231067532736096994822932148583604326468008892125509134638225176569375232362255698511296896344970931432479001821091902469774019646921452720274429958960033698631274320629144162834152735244895841911252346185031810250970427710221303888751813044454378586121806627910151596113586185669263560288689559832525241679799215653888453619038704868879910727370143224093147257044538429215755125259503303427270302614531480137963187361125749271160944302459852385972330598476864876540110267408514326255865684458792097619331899477221668786742539645507568598499652236607816250598673000574775953327962387316993733162379913574816785139368376815430999172992354724152701044826419879007149795245243108825267068178466554908795711963831067224480158103121155643567923019154188817768172360026004687361294019041898039675462394200065168745803789579363132375043671695036231400996518908133661688238908210854070705956415100224109869276255556884671272647795637250995999965262288649789382192332233187905589407533420503522129895558383136493879537519255000217637472277961986414324252552180792268062809061517412171552259327964972719138068391607834203326315368262014720890086135699408787012568931666530509211900419754216051138149074467845594464958301533049828846645870811512246605016598039605108578071533202269680838203530497358039219111238212485640822500504448924751121427627727669946807063707456972119366465638703061573486372866337931878656438595275162495653721016956720902958734350412823853696770949232201567060851713431261869891719686005996755273315155210957965623582780100706086097817069920886882221438357074480329142663957158989407863211878283798949737419874300473604996833029809949804100078433680398147988332347742046245079759096347145348408741196723161538019706802584473955454037349255596911582558644726491360057688345654035513300611581496926950949844033852356838970415514828002656335625665649807302083776824912620046621245717085507155997211651047123619650969999788074593275020718010992485907705962181162654457598495367078087091344778878955342421708485945721792152477162304633258288774337436884043846959529836651836367978319913064655484572875618364729020116507166095940358264099690044396590271687372482633186310394461399672633585818157079945792993894805290049626852838041195339684754456801909978720437866088315099684757721871558992530970078367688936623211144829292062700105423809880391036912461307930462269778421518403705200572552196562254785054269261001207311962274281930536104513273018129705202058668686318906020796499936769734616811266319055802012226191220096870876823217364212130840584158857742509779852658944120839572156304527716405748524367668284914343735659893912277714120397672027227494477149990049499843002085927907398216413336613562786667025702245375970950421684668857697341804877911922224467927626529451703133295873510657889778360564009025411409026337437229403428694005569817458418549242963914283851032643030294795237467905044262744464770374048783737262413197352247373243596995462402521022533984899330761519266769493072723325857771768312908409616381666464857508935089441558865091221301013957944497164846964129230034489728958102795742825477450995736262454105415763239218940536063687422500856890142195892831650827409255936547628666664801999935699658132286808593158513081845766004265594137549112665584352331659064802184491987020798844216614344341613224815754208050998162013554830639170052519194927174426209214610443430625350514123228432812380723008091975213855235814986953356054354028525301111095066641466526130341888994587990102662653241366998369415308934717560784270917975522270630641665918785801315002055900926256319627393576235145468983505767143303964652048338986233246617279662003507315217763074701757234016690922580198440462055770112795303470664362523035411378627135906610528866050274617721482806166008748105066244648521017016494966302437900424135921421341713349780499276480939642626026881666710993787570851033991259159431324871993936234204129056168326216017455061077316753578211444807538942760606171310870124125498129606162858899602379504747711037418915200197459143206693322260777636655708167515804287566106858618996459028661104924551068818052760076681955827188077227703828254441116845038502820680259620795928538551991012389070603457281492948015982352015853496834560252119021321585866923165536443045059410089440039918118531577203321916450196658394994041747629451619279319867872374468345867229485665034095846742114880449385018772648733288403783856837504587753621221080258637520732830446364675831576796960467107612536646709001750454493286510066296104373742334600733592792832884683191551184623039196070949052393180322840287052733839661007312003377718103837121483761559217920560347089910768294555767356028423538899852225513436306918301138081862447675474338380475602505382579984939930682949713164810886476831967478757156791989672913097310056070497343145514807408096131426667040473301847619645797770085371658101411819429082043696679336611272046645189795556047048867445653941046261073704077977090999669956098811411582760069236243989407989278929511725700819639255409571627219403349178628582089206793645720610478872572181921991979665196873569009768971420937437757372952250534446401768970503000181227062034263073306642871456512645597265232240276933307269506214918203268806777354038992141498412958945913249261210429055062865990109325608228300244513015786521644730804225782980734595997425780795552483022565980036033342245433345318102300522738071146414572414742099885563584855684659407319588591795554260002607484346264004272198343935660387334778731268748919122989299070040976445051737982671173256655318961050904253029940422625607760159975108545138658316252877426847100133889949228113878990507996175126269575625280351670544868360413859547279949208290938381642876834396094884742766150265207551306164457752395818910198040103524354025335368603245813106886446941530199826899236421294323809152379504356143369484279786267154117011726937856371469107374595549580507732667605515636688558792253924214435441812413746530558086830454607674665107030568301620083272181496435316354466078653102181211153704901331351688393730996976293928044844409357854939248144299398132820813064367318718270926249666639168073602936335232829182435286676753140565707677798605234919813341097966838430019365388007341854414208299825785209818218909959397653759432430471746717094674044581970151098099631170041230549171872680159503335475125911279701118875732364674987387593701537075515429275837496214316719911789098431154878936108943608618331340911365340805663825509233821277621941541407853586637659838614059482590025900129466184128381690668102323544609489702273354332723589017974197580622141753509160858609926648122673150324120986112846537226904340028834811564488188421756048647309292692364804612336493833776157873044711425011466828545560312499147515988738539776524609914861107202048204154071213047380288500736416877103947398409494027055210997522849469845545856324902162805462706913954088446310095171886324715978263694812912317649043388765074855706164962773361077053906488679035846102471601880230334770095745851183335677664159304864551091800782916178706978965735604199742121231261220029969321802299436855552103606251653215402731913982090223311747728439169253825865438495850518362612467986857232370914689437715122902257310872328956698042268068290129223070436361971562770248921022073132195984327372913580802786434393081173515640590983039565132304357113377022794618177664708177630767244273074549830872794222116167331563649274939958345283202223675463268692050181426053018942801275907563582229666729383799649217574417838516101707231330561895881102853510452555939184743169400010708274010172353560819205644665046429238834612033874049164166564567665970588614453124490481719310770532854537112860641709752438800050136884597254220516784568589189887383220930441492153169748839224081100928124715810778925693976722944741776680095095800173399642329867156535983671967292824943175045838155305001953740943245769685025125231263873693976241378158905733568916204453592928668653550229037613775339095234662737318549255931361317723370952547731839956876692911274175807790930231159706594871136823647316935864347293165820682011123271562811198722707282528127875801434883233241238954488919407813481521104668735585085377574672794026829259809478715709903092424057539711182999225042169897643560868525472818211071312898576413173943938144898374159856094258817536045478799121759773931495586691684256874047444843032383178952429039471253620694804767296365749250791429882358136474725980553115788045226119296682582177238268722840446411333436192879992131567302758114554570101245963735239802819783072583708547347781613236713489009677772127985964174291499790986984902845620438193296593341576330818662985273041405030752549960853057133024827587962410050949849234737859020919214800552053119569941565030456047147835293565151130469556556236873470314808047707349486124755407002981927652516318573120067371873386284750208462513188427163820261439800555510148178076738356813617908369724159061221182336735724468546158353207281427839186482774300304586943898871916089150937518292733334251890083741334347230537452571712078043792146845605576690873587796535707475907909098834317355184024235423835999830349288635664759610727789242594500299572929916647862550907138766421910855995328682893197014371540369928680764267147433539984757356444293557857592108795788917217713021106892754012747646753305969363663775169174505931888573601642512215768661325523046763522296573417268560939113990494774846934373396843502553991098347734863737653803451714183565551052776512819224011008205895599770495457780006626082037178851905867125671726538302368339487885741698312527030641631967084152239842234724708670476694015590773550868586063862964098612803658833364629566095082616188342271655153580521028106739995497485390074957637870017645380934215617255386923097978921369552444441498467378889379502456918423875587791839273032060915730850935123381615090633732521596757754915984999798903607693383796645246776396925469879205134822477629107706275043893495945703679355072646836731683612181715659860344160338963887565558749211611394752065214543004880244564457072552063120262938534048580503257363879850596153201886100354277651134282685030988451028320905498854917566550930041839379191433660476023868701627526670584194925557979209581222294460432698909195706033304326746229559232688111632655754927039618212738787208251757386551520290387382903592883702344269388673477841002993287753560262556118994742815178607378326912230101911779887216523050555556257280393840927210408153993383705673617477283994486124772167618781942962419373975792194852165889260766643772290384850228041390656314852346875770031261671178394717501518026155852791924737475804797419887895944681806021299365246495276236955200786986365841041571997601745526065935507922976568376749470579481610142834887909210148199125265518791958211131905313662632234524012484895162330088229735970032161201525529981130910802216940189649016403209624072686969569981597549877949370171321699177115437567580903062447745681058193251850714459850865065634877319015891458363751108300613742712862143530053378273818683702243864349590476134782978284781469445716986865763509906058768969592468616606984834166436851585191721473818599253225174621815923353069881703591876552838705187579506892721902649187835396178471240726707910898022133210970627129448095627729170213014792337031025675242865431604802282487332070343075179041046798164715459055411415824023625871802528917575476283842603765143804059467300307974635540304535619066026147505286450035260042089991070064341141001303650826581572034930794721907696031526606825165091733663032736448058663466121226921158940752678998450020079249115998738144845641758005366964680517483245941375938746498599893285097598634217476805172848877622714474246350306550374377920792398131359094854232192049076403580290163373821310297135028484567451852273733491086643520654504863996451122970443859847987869052020357145939824217226985216158988426228077239408759018883918905689581236302419969240356311917991166984095269486092289166668113301641193618612070030618595728665073067479863752240982405007584585635810986768361810771368191268260997264203737813009314175804685216650774840793336934681036127870080579726903667408333864237632761651563707220819466224606333347450859585615601662777168188761456702178664508553832107017107174124075867149094370670635679076363846747563879551574502401392848010092539963089134097802547356577174988663281418233013353756110852421662690840408373882924644148126702663287395881499815788548114237599972166186063053407590060828067795781205485593530208540396447201964218427894533998646474336637191213742381817925040271904804679538954791078719205745440411254636452523546330229978230501687543214650519994401856852497246981684398620435394308721361611728604807449189634852245043585620228233958956433802209254150575987992467826819906431113154775297862213509897641588308435379491317150888560316613443515552854765753826180599868535739415561709908643607060373042447424622418270934778971980679913429338013096960980737950294976468877013460889544871064198446610075637706208881076941543537257081299696675242480429833907979411264938445229219231105330790424701290834702949431797237288040912972668258892277569646026334165217695955964423106414603908616476744388937357077200270505332202406880336366073532750442037393244582982349145249846366317755402918178618901635218901246321691991865130832081995422398791944618774958040786310612091219047889690888786940977142301112409187360080252799600901521893730414188597747747037931567166709377943288866268082734239798442668414986352406441244148275368209942892111299473686523779132962981599689725402297820574230362858997236869446620746865546496935627028773056587529453434137212725101786200990836516615596715027316386763660948065674780061946551922821910837827194938259492053631501176002341256149890070335588553378888948231902424560560390790280101296972334270277913375099436705043337565496465998991360903449991916846559899379387361524933571337453129620490641266422322520759206244627772420381948285286205247530554109266018798561265676662801630825685715934815029978361049546702477829410194805433938769540596944279307934743289541187164636278569280149417169746470275955820176134640894331580959832229790889198623241185756043190482206606946499705609590910463363674313947286671919964756455657363999827220098025159531254008100074116647134475679093091984730943659727073494294716023938728508692481243072420259121525765377285215838659948513185210447718134977807020800017267502541334339702225277519487784959799852646215249867571438098663355374223189446387477918918372721579188285449935487316363596828101016429590973320740160508334069540349334016305920563515564544533466214649173253313603697799888132747413604856146738728405507636896990068494948140599174352690238089068464663839010339855791930894330730885501639023581178106548598509119317380978879104666041609126957194047408925606849352030960751270187867636604063248710535550076628909293254810746642531746638510776869313783259220599311405593844914628026792902781976998604727588137898401966817479875051883799243993931184950048774708197536002214158623714440794343541376744048538486122674740332592583491808005827633058084096307981464498154820677808765289128901853496919772265991333072481587324756260507367475144889037749208230650980849080170705557073289107101876120348388098430231200994880604174278032457582359115091698798558787333959173689319556749841543442617620451762297610872144973319466478539745417429769874491187630400383515361683510437279336815934504279046076744156988863272232930108294412592469018284783499483524283395979835539354000087255084215043086842737743427392651651134519690512765786103307634562197612615812969161152003931100820723072129403205760352600242443790183789696389537244812141191765060824332490982750255910370676143021089304157600917151032832141693560251003201301996869097856835182025838604794140732861266556114914014383774580119067751011091954642842721094593787308803887976388586181759388510520890878686633460264391519395340976264719974174115847958892884855573548341087464226206882344774737137292153707867104057949677292628865506010699114727490122784005456442159238713554050802195925510408391466634753648982188709967926009584293144094363694960286422280185454845479236115372159242125927057330850602244218804953734411286782139698144991600593959233548791657930249180539050447099421005897646382228917968735755780789958683875428727362057152681296264528086963992831270535148173688696186599603180133754531493578340414925356200578022095051035743019568825062571438376699358619216625897340872801660371913334051594563263618117184280165545705416326582856480403201344991353567975857203450224061620333681379417499300468626852404340019766507723705302194311428917444162958724843128589669862339232005908425444533296847625335698139728274931649167725073410280958701071078866455936764563608793071436726506260113428007391101271442979479594838324757249549740912745548340245410282006171715005314897997168231178223274542300800503334158342967912672837953622869132284854551735294481606994745190515374582757623046707415528006405354425589506899844657664648777663849828505110032358100688669436464113608939832822344300206727821417471616710568780689465190383313393531957366239441346607797275148588682465473792964778953606185266864965233081266633086727553784059577721846826410597026314280202347936382740192162024781503565656862365111790227364120430591759259504514032162480349989987631863881287875157415357548523713540878112931383468417483346093382775352511163818643391683375266186659503433656517395467589122714447121653685217760902668657282784695665666094429905218066969521038699285604021546689223684717029756431742620428157429647665930077266182888934594560454997624446494175897900669001910771334118339392540947484561365500906333438233858012537462396034351707373977528167698630235998162535755001915865301060088612992303361025128489572388771478402840643630327582442977457528847878302697142521422037317748610072315850115725640935036228066088033469481915375913692818273626700292900497404953940443327748613276181824826110720172910802984242738786172866800121888105693298240848389395314983569935883168141895471778033561403664665469212368721947316615560807706455117575200369002400074938578560351310869310242765450062111851206933122428275438181287616762999975974858594277838406234424578716630165841645131967175376523529712700542858446426457563832952984071685003129345051911002894931129306788914594969339715103535389165342927655269859039937854828432124180008270763397607036181948173817405126254477538021056434871197857457656788279853475791713713120200604359623001136292721732422662727767909660616744665315538779372027949430438599907429004992307240303720294278141116113101052101740263700195594412351697013193119864599941194688333145551284818897866047525548008771854989751928489343802629838911943861555312143678632600530886880254576065760834769664157292696677695674126955015631264185647551940219572661998682231228642014819036277945665977603523765615081238185527737827684540702845124903893566499812400962303481902170378687204315467281449169488992309650133988454773435945448003022465965015172629316139448556320097981860750820486413161855447881017427265362292019966331298304173149863058593745578818632478637468827706630373582219909444818125011146231685380023830772856305448253162456907849679196421838827230333002078684156365489497859816519291581713213127852661366199703358041086634671575183794944941671714121903267156178035519752161426233144851969003470027082191075065502449124230179280704747264625620395328387746843764036084910473822211378260536888097019066816445267490712440873586757644101986264190237445422366314051004824494262319693491338492575728762959842859805271342268735546474530704498777339058669221279784504182388369674722550133673147933834473675860403232835134877774643301966133699467775141734105494271016758518696128361141890595354303640159887644686838511054141064560402322094183832727921694089507580912277204001225565007998022139855835829273715218348736020938555968018249655505612894931657056117288440642094085592362240614444298975811396175508699815099597390232755820851982604421320146272380699880272814991123606454149071715251740839213830080827645360503360963521281813053770662577540079128403239625063807645503874066001956243499794598387900652451764166921410077119426975276864860298293336669039747770493321348302724334585528291821024623866895600945755036543558623908202164053295806144028068991315842711544717539310763136966821452911578273142272887214847813905754615821299392007336566083412202699815335906176669328718668144008782772577723532983177813469922643083420924258997804404563342344914914978015477537134929652508780705368059974305954657468070364155994295928317001907532097823203370466332713686488516576454212988509757048151879972028889172605891486768619113940155163458040811144289858553718854182697092123812133859782933115399323741287362807966178256144860992455971806101160338652987128356988787574225769451939034122512782744440693494747747156943484347060168105767934809474785223154279760093337322716477884739645821791593868123799942048442983612143915725675738916551440575480314999682140404003600944985985102547944465982142519501202143693204718836388250993515452763041725600796221907994044686552992580194652927638447641324920149899101621200348106939865834551256994406930936464263246714040718523955702863039167614835754986915813284914660030327892972495384104821126697294005786445272045389727423917289780452506850263184596774717581258901257078699814962517963717934644756304994183852019282736722497796504939677686883666245173521051703592432986387679490149877602992683681224141044464275475153807544923719566240294671941338113443119330746325149495694504009821275294240528262235862227083735653893911079931972814021335804054751682189420585881365866603604887054947838516465893181579668133399295545046630078301570845150696715486374269556577375808837801852320728334578085053034282760597733836681721234125221519034719486492028306850397822670778636085234049773833122654464364363359591630266482296922724622748078900932341390230665769038412313703862017081665351963596691145233850681784126468972204474269375077115194127270295873650764808196614492524492620930615271155455600728697554240214659031679084022172356265725791910214834596042024830948621385821144571404995415377526126086535435745836923212139597356364735289047931358078557754041971553476016080924777409974056460569783089225824780963705833446968561233979907039301122681680644488496072640146123311964274931622444662722926122502367654650993858148995304185507019265598259180133925164311169578196384575492550614489184655344838837774714044007842287779806334951480376966850133247110704476802262221379212666409695327861981421247957572248068810793987439248185118699657892266354845837154671245318087012563812462953784230934143980737408159981099037925797722000411484921441161717578053141796730801689420051951854691617573014613737388370970251164306054253796470225993915192292544231997320243097643494459933443082633783732513619119081293937586296203856075288657197454634074857470718285864402378378609574512039276076413134443208377054482564217205854128887634461270809834113592651060304624377572371576005572176441250942682723416477011619517808370918719605775422313496614898434120180714218006404740123315361567632294477824460776251760944291333717268410626619013872460881189863910179421437413691004061397534492166650924851492837251785918832817514691276635547712443375204346067952840758065525034886789248150808902383577254230047897166597695955965069939843647869743762154732411117057001131516678639970868802912772690058136004819364069384131589026592206298690619250467944060232769664471110000329595765974755626451204773507624843070288186415357717581397949405856236680883076056275849050800008252826163432413477905633585428534810771584239303538492071801368976932404341807447300798951210653277791940500893249675340058434381314886218181394609234693715451588548450610992611756587866010554966537575628864020212659142718055925682195702187407999404973607640162103106002900684732486529023298790342497319865315180158345319298116820593389861112473044841962579354482399622081430567724174722683800322125451042557102570759448867214751125144168848501266729189631397289809645472455602022534557131974653582981424757995847599339287825888676740014554328649272001560247595724894494232113754129759439442664947771718931785824036102709577877223035082168889507969390864988939234290731332598861177490907574529040942093503174958363849743422974440321221122987066158244191390397420700185448800255460125649318866716573809516310101085102233819679896861661599080507346846220180356600694185037556983671309742987296628567748500363255032753475011972691436353529378911090401533779808278584193322199990421275268417448209954458274007423248192115942497725234514000369645221987092564952597501460838209570005441059688300225087535861554729987209557559113465763824774905443277057219791561720099861704259530925770091535053390326133325458309733859422014421979577217997002733515552224123818262900119439815079359865100100095986352725494726625314657447822089701431933000565940347985616648819627110880247835755827568124414917940175027447937186474645705687471232540034399484421603854922501496259786574818503938363162290652394318018148579802479481145487611078304701978411339262259693112460015343292486880176608477637299215174944793871505465337468232299649281003761038711649016111973312706670575598293732188758531734097188620853534917760676637940644281733501183779798029105192966462835881092755495821639172941162905973057084075995817921654154700300576154177037478764179783423635155164563261006889240272769911466892042643673687081496229566315465754112004850543222403920968088826194866962589367659866203825899621104931482030628309087426186541085250279844230970647243347409787053965465357923559379101785185802438342511120594009178506090698137139497803641145577077093725035056976895948647829519004972843308157844820677220678998702149840806791624391030086359690772706312786531052698931064070889447979089450055718479130767324635171357917613360483884494804319409039176438607182094868025608115060889453674272130770161019705032579468603807143377059227992812237726089419681951571182841691931299775441341443917888765497240000423834044596316385046205025317842394976268603886405864208752442868044843099293961209209927025818678369361865250793494188541324265221604868847047961816823055739037975325514197075021315815858338307354852780902341703401467413959817794601786357548760205921933572974652355501595418547375178857539047578385590382357974260122656247763515803443635765925679196734019927486609557147182629271481497993919759981576467280386938516651860983087079973718272078370643665094616837550240464101915003882231775645516221893280001536616603182160831490447910301097809848561613964309394276656398357769950801785121818511951164908776755759996121056784761145215585619238548997942708343517910559711699093398667097726288951875357212951325398667942493406108925923438945607841690289536384887307346740626087007647257714206029945667802160242595776566820058325230071779126909276118685616032736410692733950286184208997193427967456038071902408939835742745028478212089269002240858358507861809687169328913730475411626407311895889057093204886209972947459287052501088431358761500089350682886590489246087390367287434790766123305372829006268169079822706076956306223708397648031502201251661341811155546709329274533892195942688533298348307284099384212036919564100567319295361281520229407036689643993430640626817840570999069121206609898225005383964043649480575816014264454445135093401058211467221665627044300643380101319043499698932464811961955870336781929238211519191079398430850008032886989193600169525183518580549170431813585715312958488841314071318610249055436043381456795200412259882293467695721603873022742621830392186758709302924161228504339967919662395433219468685866777145450558692318758416191436557111042562268102140267587083716864240910007983320548454491485912616019711530986770749858052550268317170912659989269691942621108212456286192461360865929686312460899847509595158771316063548888194550728358099750967686160224163038326125824461250479044688669236148945394665090851418759792140955447465527111871701815250270516632537149635013807737210256889325783318717571628569528114790898876180686710640499148527354637615534095492230099554008984500128058137897196173122734728955406988301441964353138107730809968335842361458462203021400298840934343005038485439314953970768760406394098769699150592472699795975361693851789914382703056499982292326159706532493183074191973965207240753294585963927732061920547990350118976308371431542006321979810743495204772054336291115811921652802781686239432475216367987615703917479505318263832015195678899024477771225535986598167800746062981053840828248612764944385401456124581392614743709521185035184108249510577681588833024603445912144097665907011420006585678720978510584751499504264782244617937134416396792902231019960776961969648384170529356858915218271066924692487391943240012196407521472252462800697297728024085708720037319312153241552342312259547361963324133170176355044800836553969486439213099366528463537207756611966042943564291085672614533813510659634803789497734203584115478741972745490218714936809753276643186976668020364155414848047562482560989720249239274437767208339377698716711878596545227097890297729378421348202332808882135409496237495887158595677878815958292134163470210548837785250571431108260027770338399980475247837564852805697910678167490560006532979472843126256220302872339083961541283967813702370022920963762665167347105402294835913377366003234915362687834978933064429024233267780468852261155646227638569592263613760949517505796828814157360399165415876287063919140450872388663796879270876588735577101192880270526672759305622161785231820613730712813689373554254380352966892316927741811258409339845266814982767691407199165018671186472249474760991104527170496020088737373657733959728665898640365793221387067208789098464604790235926562184755445062245004868219760533837463707803162519632454825113205400122967365182468164111763028248063502939443887784675509393585257391354751389166704206781096689133483527013312166084235405177221472358112215566051956272720982059990913940566527294470430399169093759757434977792473138466801240685210955938226656630309182418764924969641290388820820419033936683524590138495324350896049471365732709024583888332412542963414156483438637824678817654991622854246014631273018832846104189982086167660269405555254475366175326207318258682139191528507694881320773184488574358395426521022561348528157715296593668049237149333893173755338606727320896487830150373608237261397629189300012096164389765510677547141392279542023338930271353142989252371956217160876920213889581672297141802838490960796970916959353004746389637640826845326009590397690308739419543854278654321694778361664118672955535390752014429657495101364266267614318851092403744633951070457578703245819675431876489448311386464255272174004374086617622550413441480231251784626437365639670458335624626473315062395612963429715300984868516353751665185273412733185037672471428436537635154677680175504212154401402699710006823529893391323609281018743979053216492536735638242422586119433214497153778753300638670038907008450886380752104941092628118559298434049839892434431351741320464003468274419047021316850678066849505604379227503004218191785008261162903643896034391885424290821604395087783342881087142473869843844354439981168193616985743430454535729178216415817047142026491419722704299742413570361245789070676132450380548250185818592259681496732171661048675725096173912231218839452118433675364961415486697679928464253264703191352415492726506030298322375600040887843251196641369478585566956477324689365004232574366535000439750061642080484243451888819267632732352342435972654915128927500948702848623279062753394033544480004331479006898804422769674026475890743624203371376387901913834202554971371629820850912967573655413295041699033667700244993872620289030755546643413672269414022740267375871960261027706016725750714210364787286439085748889501758007797751347107147521074974659598162136512797229758403884827169747193837639516114203049687308286821861909364415173125926270323949553297671351665487840666540548348289626131654304501064147346321752846441351887661437719158131789181682742340154344611547471994234903235572575010245642831793728926942002858127783181754858404651920847907717698010822370636107180708680669561257853226722683361056344188764910386008738296085368235359690867045647375769098837217714827068143772840217632432932852351046504226608074037726704380680729668090402674838648240612663324729505360223303637766894095148135982111473944769691968921197463604500700815715256750742135547579089769730655122475123303241631338715297736272725515121598326612241621265427815602275485582274009211186659976152381003987497220092222897228103972923522667274490666611951427409990651715849892788750848356051246791958556393439129849440531753823682234254126138020999470277280137430876353292005304577544915656863275746627109803060037966137432616600372257420286106670115929542539317601415686528313127942537949143007561253467745950535341206839788657012099178030716368586089304353074715434314325919393043071639074389058153815964497548983922460468537131706686012573402874412492450973057576477218649872781086034169488984005152142570811665047077369355303717371524964817332626552360753580648695207012047177368496268698605837504952988405207826077148442760379921708426578773006725674860169546305851858313058412793696325400080952445579895466384702947342390026100421175440157393099946527184158084409626452549425715062487837936723291886165539231386275792837655945311170476307655303937411903480488646620531863042550364332704172676651486051692259324927374408948632375839553053068591110448821055050144067935845206389959053600551916999214649877763161161205287632572677106271821695579644097339734838955559818446813022667701306657541042660681768930309362205040011368942175343673753933423841605371493149977985804208267880119282474285371524506199381309973184064801637755148622613252353197968787543121491107825750058098491433345010152838517772270526655135411567240454655971135942838215432865312246644528754039479732322188682163497973362623546611990570816091901084792267859382253231079715665625577091003238513701519346477082352324892212046696559335984027379504396900711964509056090100552815107370784375821327372382181629826405621581791653454573093609710238461935704919955574180624131681674226769265977336454624326883145111839035758011904404968046643676664149249274599428671623723709338926296470008154953009580202925621512829464954687451820468869400905456291997139910320006433580309848024099415841350444835807067695475253794746464801267645616616279062312403524150838346051204999902792510350845083898643623206183691180673399444756349061308499945109485678407024048045346230564035844832840581502658358725134817728740296527173104535976242494058567597994452486805058060087062580283525747567431687443757966915456991032423245205813892348720591959666587790133820935245265268769048832333064117388964832713330260003846106823798416353330684667152740298156484008283709141153267033055521419849520978864373777551011737885909171351904252892257344824941347949196573035336163907483783293996149740437992441838842667794250031685815845005244027456529926411233091518736365750256927337876811280633966985024168046264556865092345874959411848531634835297486619873639300248719205570478611409611556721543051447591045066702991607956254063886307058490099463423699384110627732660723410277883131127228979990442068690087587830674687578241403440054991084782589240264150748113259221641502459082694511970711123586743113040395923716351450485031569662898327477330871294411651247119786816998088369324430897288016340309530664217222331388434202632612608018282288914874025435356991800711350001858690192975789972535666881593794146601531657532217818625528238965765029382817733922487856309077459011924551132386579705735423193913372665613099243658956982161793859768343516418758593675965545934898275496859017911014538057970034549036299116318841815140477519742383579890590826880279128543235094498922755934609595319057603217192136954680382648176603803286271984245889626399105838202134909096172778603396784970605880944747727983913239155840212250396843197985643640173993356395034789372847687023818108438094346684173522301593828209007882269761463910728851998659935985850064057880348309389084301133866921339223999145910267399013461178733111203897631565074806993597971038296263196735526333978494998403048866296374009505204373472955296943246055692832568168106639149878505337555352370892252917831971264245198092958039246571057448872523381353655378003170449376232521408753127083679320513145907611192815501657436548928552998334743577416309054914170641487711423185716383371597719464322495036457826894497076488741473127411954505113991818391541936085396869432418503276106453628496026534204221401656016937834165520930695239164226680288797014646832254256053360224310024628777318832009374032736836484721615100619162993243670108042708118823814829927064206342581652494454808191285118911372302686020040457855388125158134896559518251122891699720278153858280702598793163003438733293158485893800123333785725760081195006984524817685063971093758125750354687599271684300140519872183369266000104163107473133348116103735528862113836607042593714569573938122205129883505690295900679264710351564567860579895748828486018606996412560706682015624127558768737721798358418637928083824443850718409770377177971649027547234764718671214046216211030068676271501014995123652525341023894121154650340061912100712298603941790264422890629148938807277187376357536294758523442537600239400727357921542849824609916996816844625433732407614968642970896951655104413634464847491216235598765370587515499748575062596344119045244840854935683434932315788483590208658938678310863024087952488018381872454525118594547290423755130519511579853279906597749281807668580918582878214602891537044397218956660441942059533381012811039754926765958385476574127279866846050021734799687270483469326819733322126610738163703781053221411500549341610851773228260638839477019328963776051535876348043665755170515270534151891561786767180231464154123141628414477467687218434253467696135751902489638686465214481720238989710727217537030861291970912865545305046232053558310088555509935516018152095758526997424569566855071971438703290160992208114527972239680098076692392208418424914994387719326842315075121040718299270808032554250346451131291175580087879942466316089951613685997352505172408228171268438891444451496481312353969800068582512122278478463640557810910773109026536412408191837129795069878639358334209168470691527303809571987966561857024804152970824195012324334919062819103478135134356546343765031401787390259304213119199599719181668241170943041801113671419606405675824434604125502117396740946436614890946063330689919374454904348518755038842472616948875797847646901775713345643058445101427562356477742974830124679320174197543661897713353214614493773932523272006075807798562623951383692670320278221552747226835702903641844942901851998336139103007521410045127959625000979690150182055265558523235445120785656200976602738743193256014143874296792128946421155582113826153439086636446058980241994458754641168678354908443943988406487434276399301672620022492133374068560764720095578119396547261554880364592023887803077721025440757189016280750808617344417203057241055697329615331508989486474399314416778161585702586377164804482506285197827630838336002436749132873783963386484994706556278294169594081546267227537285085201959007994254658191113001943837142987740278040338656937964758472929837587383680280741612068165295391618265523761760277298233157952652787659803050782336101390522947490890907929294291900728315365585970522819320310363225291993801178050030870756805994592728133487773987636352004598131621589230171942859389515397393201456733719043721199706467333192460700280176929772531647941454494723967414878255364687902408965220734308087057949542879277065248277349038688005868557797472995361093920939935132894356795634054512559478037376391107776911779322923222097262719896351561381701141772942559429828075880507303018003376239386359251473478915663468665811621954198306251115123827042293980579751143437160101138833046771202312152371242410765405731098492254020548853982817246619560774558915490437258022182697840844874493284285237243031990951276888355080861408058734166822568074312576219425897398789412726977606016528355289544337391010762859080374252289769123403923833522395468225274149970547839183601472036223741596108012281524225113449196763092052524750118083260901477586240725322934149022093859628424422871887117870760576407355614367892112228334671578965087695053800741582631594320089983469645106615794229884335969726235351252081839696600989409316141658368303998465209951014386276288946031107702475060949126889043210823609302140519342692471592137663643489641965115654084336562434350832208205688541135680812557530875372191724825494970715370707562965045745792218979482071298190339376519241812325488907684274346180142009054125918424418947292196199493263598191853729903975541730770040897874718190207373415033590768421696447038210502728704152372739009338969022959232047654374824862712420828292284069627988785681220339766691917069704591944347551401151347282672082003630980049197379478367959063361497031820828629496874980859920037385895013985346611136484725870837169066452402067591605165032393073718742167214900253955825803372992943966392632634992118979523980415172577045171559372821672876048824132899194108357724026148747493150255104137817298108164833296006659828122595050958223010168432074805710600632761373952992755591891823943111322100817731756928552543494017515028591786671491984212762875927434656959661652864699737489523291182941082799391534751494701857333317044308738860870368774832610349374075363409386360152599309709080673273269898982940385015430963395032873510186267390077274846297152334263669168400981080021393971457834868861976456769728709564644415321916853733923221185392952653064252868824190930955039620094198647323409780206331311248114956393201072201611183757186989962170017145310167847805901132598043489981223379128654262434565377335553683288398157592418486949874386413588171751090755042463563477468632808058717926432905042559316910615474430850633047539408210782724573338170793808084331343240316472854874963282827868531724976760686405868303072594197336970928821613648024318315328698340462772823860729508637223996430829799961200453285165727700078182205477919760616077905904554852433555849531228665754881493898763457375100740500773248168368116180182855226865610665155248434251634586937347340774283294079384097919660705773479973467929724870958035585581132603399191871254935892094866744628031225024225650056424620239857086330276450734348034066008916052253264629269253799436361945819211430246557582751651030011590567710213869059962064958327502675247852678345340064314069648456201725033750405830497156472037673857169875785942614924470891534280599327724983442837311137913930652967307189768237960557780202717653672300612863911107357135650858346833693005963201138029544872558237586302543362696230163463776505946716195525788230120138055486962783392202407809298925429943296258075197563725993306988327011904783739253850649203843690468480653664658675101098904420394279903060702426113602120182141192494809716802890422582282757353135444326452093917432408202302630295930695107185328673100605397513519754556887842913539374453888477204286807958356889490881670721779884576684844961184255192473765154746272823193278221615679042108794337025218221139660227621359118187693120367965643184195764811406391199485665118196475603798101993844104703911186970176365845946841340207225504179076766100626129589664573574097586313332357172202895341962260282517956784599506537066861270533361724954133320190130538159316092711200550180880773251745270744213228965797975121998978032313660001082676532101923147363949651083564886190587412223226949977083079650770026157652619810285785338811440622484909345199802023903330076865577874137699496039871460383297016358515677461140613828347577470075321637181059858574182274015682634145484320173970584783474905803007439628562281263152193607809405473911118912219704721471893240556960214014649100757219809130676988994078629405688959062325643887104586281998444694931835147996372414710410833701379996794995624719642258719477539008786676504395114857655925951355634992610371132235911920288404275212968253034579282425497363118588481877193170420620916968284297044852755518639083783906040611101154008134684268413608219711194693628689579467036012560590071397330021494173850015099321210683688011397127975444261697730820565824643345911692228321258455503132110363794784291584399131891638978553007074339739191691946438523404720745170819671477324620520371561121341036011215348011968949411262025327580995777192966372339253602989614523648825942013734532413029029953416295553377755276417412517729246521991110502147181940641755146110257130756841147001211861753793407252824645610541244266634885261265788871291278912445696641105976068435150410491852198377090685425623527583732876651269575516203690271382603115781512012192328832324458763488046380831501504523669561260485691746647066492138994837430825990242347780504538166782355755152778903392052871276276553229647207771396183179356745770297480980372250019780841151395239875036556379010050818094465465449842033013054467811002366389477880620253356576437689954444902753296392118368592171448035289958530865975443265314059417348751938498239600963750446050195713202939322820279419695069442791973975564000830949185193849854543017290109949982414948699228231263939560979911553063185083582757342891723107922423216511334281486604518863812699529385476893799719314663466532438351786743432441857578191450476226607020422449549023931004367643546076551465859705013392232167707700655524052752385275363856128196852829059269321782264499521312233074961783629973272760804741761255686738314609156309806386375967237807918747610684909788626371337213483300261536834168691213355701409212699123106183337311278423337147182900522103102546906100454725180186136013455035563343387417125768060579670142935844935648319163114055263764752941629535485202073583571291913853186050918728584187999316680073985782232833250322523364778137289274667243161943215860864636857268517204246143389058649920324436865005748834886919470595932820129793785189150352188985134693932808256320387476097774991105158790689785244055285082780409124567658892141458211925171800961728496353351231823319133603627495685408982928190415117212136984639792843106968695931144343757520749232779717712304703934915479819795800703943374505433167606900979255622297679883402154745249486798945678295595270759486240910555015969109529886320242326328101871514477738785068189761703965840506776905716140091659054160404519528485734111100219585479925727718273771437454552056668682128784202824578144061311771007996070395935209833389503575924336394961749626926173502533474643480695017005067062912019817441483515060376879438018704963127142705334184186313380719263257586311046586544076550139565178719616673589681801502753641036952504218325074072034552106386174928557690261970032731524290072762719882239972949667871209800042890207479296204740558262973696880126463327777887213407448202993358436411369956516627947367046405215404031081489693447996077796626877749582695672583534023169711065156958703804639823540341612013234233470093166016107046113365152328759241611859348118643033902200559935797709618646576051009968806664749987322193111631765721297918382502967391495519980671255368297201449691788940836806742673150632633889366713026363270752866582998915561444234062771511384279910694584797088546678449539914193251978280694109107728830214351194626318805877818851411991583079668903222040251994742046894075849949210958117152987436627169604735465002241194881947674264558292921313743616735718535098317763650971249386806747977175962241558428250395715960748682612580890481121845003965522921368585611694506000330875993598686337845555543427906520037340635951825684870783834122026572923723626748633475269241388368178376312278621113343771305402105941521305962439098543101736413314244652151293327322209210410564650395063606115739911221787439465931550636419858956702866637784903469252143859569339839746467355903682746791367111595043950163202612355651441299450200550106312880862446184589934797351677576154072983543325909186500166279076842263704975954760381371421368319621284812574945937150416075717889576517006286623263682842734748867022382090008832696621939942961348476371052172263681877718227252288116046868285873868246543777640683697549646041281479774937269147454184294775015230770680648809000049282820902118185972879673535016561613972910063092112236113562136151394639580058905744052005712237309137028464577555726974518443233642704929760477665319197360891715742831554002676264702471712958655450970591687388029488638386751226894267788267056761564960328752277153939465801778792672158241957953640767516884055171449579961932083316157889556618335605688760735514552671052580754849162406924385601569941388601304180449191673691195326877079112882327790625080233295152894718608650689690191293773124769183013981139186899182523281653177176278055884587657931360779644206110853215759867650574545995304037071919422497788579796165842866728630757607193498417207433941113153575422147006086954291380059586702161410652372656697370730880339081364760104656003215571087074440135382756842677069346196593815743123646954267607317912075176605734568468226487330227784145660573498821427739684737048585773187356948993516911927090406668453191275729365193585618536410022435408447325703151020874330328121101634098399009595937358453765341099202633931858942138224983213310539525086732552359812584186481377184370144365291376908189845601036909302314090550053649336985332122859550476664839418333474135712528050950498620097762968737834830511643631485518198325854212503722798040622385860931899948631068070237581747825737268574876411181100593405389999847421860677532233053065448399929423407625716133375429891472403951475350440012814290161214391722351808099640211598613045668614927793736369844042705818070883495747174606378822326802668574764912941068676278922185448748050976029465456160177732700022399281340620653088691926777198274628706707946765716133145419401265746239421349756924313230044876719828643581786439754107729203958567417740463545140227058803985899234939885751032137782271968546716148263958163499827164104452188059226389249215776472877342855897664690601398392868366878849531565202398671194437318035249314068457509738453988271391853274616267568622006593287829424021434956645611606099835691900975992332072873727891291333873513101977899451072691607826023916468780159232878317786165176096685803061387345915869214151160131823465280147394493513171981811274045866757595675722800761136868404431709614049466559860829694785108700218807023764552460535928228569917878141460973460120746649137639253510222133020452984076032875000612786219958283033302318334868979802551867774814981631946467341318071769546659729591575880214113085774570530984603723875998376162780839769266250210570958768948418645209637924388582867184731478279473780986130526433126301183463313439635868188800623702097507242985065271573888697257513785164522419934777915614424657820485818714215712341516212919918420051061072563500098982332651347044120267678655141955094269393375279211419882147917206491980507030999751259666642089955292183308165572262054756517587247534126454516772027143158515771474332792504486924460415075113059513621579056970694279658481796800367426672860215599745666645754083084980676608414359907838964043053344552370956670998344152184202974484962414600657830955265277272736639331178305297605863715256479097999790137328125263112098399820642617516933656015888317356968900629063346339338726791820155335766235430049080948351616089342677119863950766783525575061355116443354224658077407958275892036596735207457243602582458490336307066133068645657530393342881177791514386439867155702142056743464848446237873941357563619110954244572848254151130572073928434055359751550470270816587420052592943977855456003936187332902758424017182594741701160532339950277620630605855049007363868729060230774747950513131149637485474907971240205564178847817642090709848138392939299091507805816194210718384975474796524566077554920749509864859484087470194624800425163975129710486409284307604366070374649338298735214874451604298129981616775705481512612233461134916329469204313498120009997961262783676851937993872753817172214441610729450367334965460656118306050434157316633694544478757663424005896307246648352418978998420573976116191942602129463178427568902558136889115024296671575358179597356442342163070278394140403710087817884943564089450395983675264156883322605159566627732095843441864749520276773840151192042449056078082396835831052282662626723509821305715685980603093939290929261666115772756579840856822550302052284323038367431511396894617544021462401811971543475335360773870504655128071711272680924129211571745033956996892768353899067783249828933258953049473472653053927635996838758801354523876022638050770134931703176451987661803631938713046308944138414104607511966991291742480806533753024331639809652320080799347333091376153444221582019637095588218124588345348928117512175173003579789826477800861506397499629201758988611166597062702855664997276340620978253048110433328959959803553612122310444049899515686780431940386736642786183892560093931165026753879655443157425822123382494767818852178828287792233585325949757716826975367219850419488589714452827454756547531870658132061797548841076324825793975070969827710333040328692998317504679850800706090515959299762040975068512909683294772996423071497418501704381985112491649064574087229525844390409022653189093541912832958096875527738824067089335017232393703168635719526813863743199864862379211457147559044998141623543793970261957941110195710853234176980484812449389461101555554772418547611259159765667821415171818817260836836164974103443705122691096840207709997768067153457689240108153108644049336541247190015413321140657889037885019320080996286438554387517497563753819268638635444128279763897157807923388084341791401594015956705744315820044467237667205622331125233305696253210494411392928359542708429821911889635486958491697725142150332068043603544745237443301883515932685022581591200501022008700072007080275842461305897801953648181980196513370158789861646429180449770193314058139990198774134615409650902187527041302140893641150929913020234908335882772563327002978644258580864157981307780746029687687735632383822457134134523723398538591358299364062617118483170075833983691185816817015522433031957917285968194106992714003572718118860987060050015826141601424896682339061164386944715191396135927741827186490029072641765115346832299041456398566751092356344485132073157453429224146387098299592736699273250190912919496708904421664223905179284134571549438479163451286173902930824188952536195971640371299295173645739528028871405990438397069455803807963223662492673372376592537134150795544100196310717510098662612109616938412790963459645129435045526612980530564402055210264589076830754293139543288825192567995273420272532063963931767568845274133797601693892867476694663111683861143215927244882329828300494506879252858806623348096089173798612685757375570720690331547690523602738402256149314707627587865856399348543417041469031777115009407438937938420347695901462092300350338092009559421920243050531351595492609303068699381969478752647305229705387303614847320709399477524758894548966727122912214085629846002207328545957998055688554544860791783287326541347352516443562519740868791490256699313283209085889942745354915589165343261230156713911344293247415954301946796159176525455367901671638914687823650913448401613325538494654993019829659570047675303657479698780335242919937298293485970697290683887278122153578085454363505885570904318672981872593834560847367328898340372316847009808253005459034995240318962040575683093812886589692646259076207009225039116195286526530743512388415839262469338892616239391723334662606085132423295151530127445055939958957333181610303339561670575539127083871127723832618382187362437414578710685141393507575870007010236488789721536569476244956360409928041455735313908056104466347558677520258642720896603005013873155147288089651445795719365836239300287993228657941112460052988288834976799912203567421637140397974032540712371153395913107787805312194033238117393403341747859466616539278084264173009548729809825120026702443672183054762477511441307579214019962013963970648654020566266433039807346309035938792661453602612117875733584064626704414097296464549274703984859571508693803744366507682648670113228890180197868594111236975628306893431294954179824293872834080073224155644118088987509829438711669567252311944162669208521378706550575687345939968228933216823177173650191885576387323571936266938972034282267224533446688792863479550819968304415476962320688495104262986269067700442580500459778873449673451978703020867063978229452849176201943770480033266159213728844270490216554678606519337534343082398813630440881657516717732216388708748354264756296425719626183656197944609856394620962460214451425665082680491086793653720521703677168970217067455282752298572412126881261025187294613332892746278600954623655223050370048557178312409863658752053456374866706731682311730804234493697707689031154966013732251893172804260349392051533483579648869965107581413463471326452666757812418074323191439694462249880445106679350924838521335645565310791268386144209241565145808537834415528209603612201754593918172430328112631142408144530497130276813902514499516665568011652844553325624076049438808733240961449777403208242030654675250738467739756069025218507496973382856701911785136240429663670441950420950574730978082953031025306037987852879271605481772223843519249573402055251156309485378318978926460698866255237559396358393125092244578015069290283928623080767484322461957245458112106016829905596007798525531265095143142250024303099487497611624427360999909548834740010248626885060029487155937487671888876747344672140468852952647369866971869964451678910112192054415297331753547353421570764317253788703578134621516404168208102725031429085387336893859309440106306814504582968934352950910989512006460003792519998036414400963976159776940728140748015527690215340302477034719498748908697812056660527973285397710114137729731463001913156948315939404839913950254982637269925242264999141226494695202678074899263163375768492742055435502168681314245047833124110315373836398885179025954621099017762890578372242340313783942147162615186580582585889349000175959217364777232776668712990623115293620998245557617108804877765643354252521823930918267437911869230626981424830679526431525790934829873608528096371267136906623008888644170875349364077654485942632215206464849566897044132566152185587374121843375651343515950240232097031420180247254863271642388927988331260223350543420753979241771666589505852357312914975157143634456661475113578458248837337578084358393208312736196166597539840235371511611086563531629542826908878764681952863225306062893170676563612970896623108404766613695220630541018503202472781297038269617984091140532885447851746348145213504404549637892990817653813507593800056036016128290333778542091190228257083405154442101577760671428692452499393413295376516364429396502176277955501102474713602137644490272816002115042627376268633757666017860244789127707211228749810476714938217829082057651989309783181670117717214127816356463628414932747556586013704666536039564345817030652020936644067467887712911445131523978300223861889922384525480503377703215658145028664866191398944775635336515191802666815657622378660034209101928916272365625357064677214928131282484495848994474628839061854744072743756331382311329830849778674293568380661089733970416756977095098215113210074722492181661879009496257192410378919154889207098294632679382394088155311581295853860247314478670837713054111850009856146699218700137336999727015301578200806851804572364513569790979191488841639878505135815701458885075070946588041693153656087512700845663523090809748878221451681137061791008912849138215886405858790939007372478301789595255122523123461463701798156608218421162965235630356413788231726756953580237357125671241961803951256371297966783163838417169708517812398583294661598996724460016657539678498912943430567808363506046613787872857261166992455452787590648073571061948691318709014235724590648948009045219250026935334339527740085400256720116795332859578322437521903165881660038637014937981935195581293534952462765669114623400875105286147961530372958559668626135095542252875657998135143588812673702048476596152405539184067361775176267668455330126780458727783139117408485309388003601706713144748006198870550325739882436953232243117004224523206823201134442637573690940914396209439589790934766659193974061677196245752555175746874539014849643536495197043706867299427599083853279239117000662213415935822891945136487374689125720745206724202944029498598835188054025176234648551870070838122243004586348566544290874674760607582625577206568276449847525285136782181653198371404155603317574532188108125604361016027677487329985002808245355990103707605286283124494947096519402219427883667977197220586422506578713659154397868698880760395004553148678624592059662179629513253688703732129154062686907084693985866254535633116850373964580986823284879888616040273223968881925703318184990381476090106213143426789764643219891223709342629140945390313173521290888879315704301455823924467436206301661829867084535050338722658436129271883907584389505945674547770648195526417703167525351112582777396859506643735469223629624652676541919131388093058094807375497674673738098585299455807699622243832211604419630696956313923765565030743200978192782621970543486377214303823841093556770261170990438863572119458905567566143956747934748266331942919465898957034955026665082774013290862922624002573459274862467057588207177124046482509817698974752943128179655350645416063460225018655808325528164794678667093149273154908672507821054523315471640579091413369231221431345721247333104738471958919598192354701775386968011011046732364477936465523462298913746620601490395305643825984254394920935682071803112622534009000904485177135381152708688129449573454651804680452545544282264505618651836607236719882096668645733053365970588332162235450649200620255982933752581607894890641929598485619788097125094735751518578893973088460976003958310324735763173568228461187711304361730705798076574841140152648586598788413340983293242590484030347770281336147507522080052223849030021396631899830788744685405849305938321535647680630525848140088695500627336896881510351053764283303017484935538640316142144956207880551634322431640500857563131990366360468012266424303020014272737711378641763538981499065872426864926760936733738458532687056933288121673818647569232198162560219132267667976243715135259694149550038812412499381045263733955460069079429984139949104891398142404911352522218417462689671867811105476164399031878924993940191974597544368013266403271255480184831913942115238290353172035408982649583348734997892874354511990964306119629043252915100074466822214652817092069424309693765185034014513790578874595652063716213263124358863421497669553939892586004499283473396778108908677164831828060659493978226297005820179642890727903843905122144010269640680668880935541844532268782919248847905207226561066772331245795842117567243459867427980296897170738658259410320831256703098250745264711756156128704473597191289957343569187053504849396184646050525434651456583765875605520900248595435211178097552767017291227434085181139329619918736863914807438381926612584420470932158581256855474524051440069091316826445428947563811336019347358667538593567448486812593872367171376735965685930112524722352383781026542480369492181474873094875919817945822677033839418248365445761889108127978831965493688221316983306782364783983737284728486266045313049354993631725472257696448845496446410280142500811390360208583468526198410408198264043945248177090809553892167893951649747526604876315448459403684002853607229847185626695942542048428305615920243507514800974455580279138532993286490500368708272504016597395374570618602025853151564839621034429379953605349315741614321497932266201143551187250359412817503492012801673329003257408239296086772409897869626351898297326926276030527072592944736508097175021018906091268765822588437155381978427649544553457976544038908142972504807021900498762937510867270906587087134427650825274250578490897796087172408325377314618220520574619990715348429354874043094381111076585726614236369192348707170914592312204809800265226265235024159701933219874106752914040019263796294649276255187940971378618443577588351328479622022599686305624092845650061221552582368314971871238670509964388863855032918015925499273622660864105297646254910932799297248770698602523593463119396455596468755095513190109319468426286749121285206781617139127663503329580065143257803920086705840874812900923598305398592407425815785693243124405884458028345706220357748292105924959838536811289204980847575577960337322026324266468134023444943518810630747300892530875750934004994803497873595493440790948185862627837504991844036467585214525271593346943728232371288486723740211221376289857185688023154214885037630198508324426160510993518280521836824578502625015234548096382036022314106492539216992825896220461850721057590445575125919440774842379100383761925022936820971756396964264846062747310325602496633900856216192088910884250022649439731114403736318542019082382611337331033473287740522581682893201934169547525245669703036156887043032293985516678926516772394663317348184693943433696682175773197930144737463705391304039314667742836893473392068997443391884108440716807169787911258299986531125791337328885803587927632946331822079024295937849998782295051197064982772262043331364055191848691592623883303083392062282509894972866496778919470556571007179559789547211151289929335989610211515251045201537246371091213396734909747083089624851224441091663518902725896124743000847887056875336306894752785260640519940533997289710718882400804193159593151384803479124803976526048909381318182051559494486493526843963640899135440253123926174884449782988958656647764212494602836797478713982716524654811356030718778911734369086863084083443159381642274196970969219597455836231453716906759450457048327439337110861321198626069797897359576463942527468311130117565893098571842343803773083196416546429071300399047339120367655583339598774265180052958529835897767168438220324530719453921430374814119461560623503783823675725889823322836358469584475285368691354697787519512444496311228002579159873315016152520582049979447923157369788823947712206983420800972392759156335464652154823094992845893062357227784114176595942471192973587809475803178509260261314357003205429963581235490902557676593870648664148220359189140636982013314315674767891371950849010910126641925701207926217708345600977195465640771021792310645282244457406376771194286161358410151393547313554698525275458887996494237564994400411140101097235576403194888518106134450415736118074098501315303862250326260193900029234135193802279570154237763267259788905657556615913498136335664835440560424714884439613713283674462099535504856907682593677155132016728552599300455557016503300430307742915273084892047296368679722461925348391065112356529780959355686570848237361612175706608836216150094791386843422131335052903175596624388415832858992244536187402543500629059521592709643108979478873618444895971604904012963791483702713888747038367924233766564328360263410154370261601162426138784557928920113884686169014637999338783472954119752607974913681583253963206822380791399684427459826879830094375901870278863743252233520377703949210997461888517397927162205133919676805269443822696634853701894232079040865487678310364881026037712294598479086594144650463857889764534099221162535757958202194081269070193611877299541616941270901678542881338222040957824932172538152049178252765250560784952905896515391112948429392760020865502694288917948590279392078737564881091841151472750724705460959273681217766075747934605583436657064265900483429272646633261773926959315812029450251691763999954752266215736112292202269530422800676733193401453312651204101290250415665087183300900123253393187665965653535238932189584121208895507461693467352781988735504187376442692249249814399292707173964364627549282600060487496737401167698401661651921561525910832362039761804933342315338192506921695395248263285384646940945874349688085490431103951434119129159429763871975584376536951756986521179332643363722249129706844426770020211419712200540513012677561127990706947123064350972400533682677379472197679901170259440665875849521966488073485533109810191301507914504204843815588456237930655357354924214214766282483119241182180791816200220243942686137653635475203609009734581885348320489579290454375161240682151000358849938801782462289437227590301596229371044685732753414830063377125242743734223611907753531350333142360147373413113254384590974542827959300798907336232489000505366592736341993882607762010953476498053454654160758670484484503535488284761598242600950292234291974790680065164644729192673991815847291582874333293373243144247575005293465940801864663543381925230231519381001545975314098825479474422268749034058738248394878554282571233835636107848739149704512334878296484727321338041920851320512428602894026910930478171458555709745444442826667466533497697007180979889134558366893401003526582627147704373018385302845341036743958422369214597453407794145377973701638144346516052979092415220976405392875140434645595615679756951598505449430355674287037372097579236151039055774180909025413518179466532940573735645012781932023887009959281209034414029638343505824920480865299560373301781500009651282107282395878091460791306295019172552276397356060436692282769151337629124540129483604210407140937936705222674033793999071244917901921241571143285776616296272845727880124224373863422787902317330724629418798308748020197870975495622484917820944249375557571957880995048405066552007340142413923126098744522229132728059404164652347908626005104093911657999016448805312687591715014195580632726994992063933078975233014386605072821459356993574483366046444427544707765995378542758603541151046691842305873217091345612818684090756332195940159698665875690994135648319527291386538742143470338183060319040988585890254819764491731110268356982309837213228756631893364017363213479695133031739649989752727707399867645350532105028578681807058668303227560028449680771618090835955089208598934529874259874118507193971235012242782606496571429769186212451633807709094696059970754011655353918615005529374210290135700312588537853660538953802977679454131693427425108409974022956017938551087443284176765718875576262498529913640737571182358434892964338130350364273052177893059357682727761543791278190468710845645583854747252615685060330406727261895740089713221625633358581184482720722238930616856234920231497699859375310714297713764042905464250487432718959292991068599750728291744235977558101222726495223726371032367932614702528006133035314686179610341484699394399757213347683204840820347640646206869046472232300347600451457522439933823774899579379812625618632661956794538604083027008417840015750366263167079669141988632251259275525651973685251964560950081400800230021948208307094667569731751939810252681783447368356778807865942426964062483773860102591923124930329062364481124159026327373838162013903612501324240301854550400469633954008431183867590670293172404927197643686996284937986001967422519892418194391384072875164015080839227594543599154802844473261472805722349185350366118883722936450347360882931238483578228076690323690024852970758667220653586788916466825586945706996095791290979991492514317081987415020042856225107408213215101168204714276359959798048211200735146507142227266323695547128312950633732755880540149408302505969803316136574208573259120276519047927442591030714999746224972351917290049798933624050132295555339209031371370023139406224749232487332458076930916849057087708102041224475531714807978744517650509569034925179418941318421194676912055393331148018339525556616429626233506932401089298577050868209170258500803134458689395741482822220809811776045797134247111002404893777502838554017203552803002621315965134569487408364546499847747681353530144374463631001427456634529724924151135085709789729594114827822610359873275482574684918891299651847952570349056115064474225607636005793446029872992263964370803391540202844134902319274388872160464103419024883746245490637467999446306135303235633424519018654110077819468201865759771072362661983076681695833046132463820593954384478100137836037274910704291381666504056861887396707601318835876559558090403264962635068638262903514068780001595385588201294031356851185429509211704516531579221776390156126031487476993053667059461092393395084282714836425449870288587103899012798728664436697712655093918977421164369023482014903323594902486296969503163739071965120612929569742737268468461259598943600985935334650848783092503948168905609327453078607710388352053349702787026389022643968099099383502925286536819675761564843636564840497141056285293088436132036589403929815407440184660289876113668487638944612681984637090730124647139243205222761647444751354655202232592499880709676169453099507956456313395701933875894323105022138135083116292386544003557148210262780956345050539848421668258628095692590105039672708718973338517343986038088847337437970673460738000448165272399927070790405523837317616031300370320725818389038946910729478918573147746666194124798975568700751252688515182799609542218192507735474354287113597392299876317580870602939287993834205593916558604255755173024807852515672176345082605768629880711221483485104859689743843341443645234620966307370454156215397437130460999769080270920312002565433852256520994913862764924762455947043774472030658266505097446901975843010554947986039434944819477827725708154599700641244094508506712542652336926067237152367405522891068906660620551863321436354451522204058554390757402466324568191007861751590784583464480338744737744190849476703063544053759732970129291247044592580748192994982873302039254158767563093962477644773000736358112134458569421520207728785676339020731678956905390832427568063954247682837280902285564827414704729449220050330574455523801833750248730404059399368846350435878783467788526104954135413238961967470272504771183525274724149103659826105556789059047743205706324127490109698580430390791532592104921431004433885453301118820537951854126607799657424107736637553257326551848538957389592368943169722699447288186372276331671989308612320036137717098928703750458264628930257330212362986610737078235715401417883533768238175614561703337448645355412206071220777988731551191032989432692420708025731815449866771211326788380632551212219711974520109663296383031427457961032879476466917326315934006010882935418109064034683726154117547730174239118770415919159007755350069536633179708374911752774085629032248827712065827891001852104859099204869577252243168166415328057306223611320578914055892730386049881048986328845859401358718843870157666707957138822359917377226651154276466157091400522042060348669362483846875328828186747048892548554454848744096120009438647447785724962839295882530340506853044000868963301672496500783449409772389626821159184631253091654504580903624702293806398426253168650714413228922547164438915625094048275870981012035115371124804359794588065989560359426427757691311256043243326874120161638165477434912159438214882229498541611577711555470808540569277746741208484081654003007754755418041243633721639160053951615205624089761561302365835070860530041021612546319359476601875383725442499543067136813706521910120395033139977822123333474496437967181764493673784612722968507401956211104011193033319299592577625746065993217672205906313822606329141806215031605499018036166854951461596585819936089933746437852356116571805095829495346502052291570750064244822121086291202716519600742781340191606031137314684864416064285807286877455907265408544721753409132290778412416733761698243615739315744398542201507821286468155244781296276764602177940154756395619745632960316237356188709845619946024796831200977235613392903282476722705244125579442139054930936350005401171788106530073378306128216096803883480626982868663848947433752755378335018909870024984148322948032666729120672304741903044452275626159330916240365794014344263548980076401344069705340030617862780297959217245067048989613205339860652255694619022841525365306139969628339313494689645461732166615027215676482727506141324763371775515923025866847636576267276604387326071523347516831425680349885630276275208754298116204145202337607560726501215983765331566807486089531210584416568969807003040109716171251310189122159051555714131213276035427447219393166151330637296369390797786988078047559531371318946571930395251012542928953136584720028346472635418384393815188196893197753142724244978533077453428479981683776958446806371779880357534906252371679699518470260537337649601910817072777590030505528407622838963002874633780655001191438859111099971303642057066042445672719139170252955133767149926701160034144257050236995921868971999460132425983988693883505143516628105559396058174671391212621610675769478235578844516514800461060156631897813800248548342078515212857453610891385335004350164961571014069587880481172597334697326698652093290234390960652690725473201855612346727229825431845833070208658859751752588959252776400996186886577044717618296350683744841366094865420265648305241413520185034020155971564954471944064703737933599976631423912055446141905481749741013298700760466256442437415464874079986576897907520883309431299223678707682606964827147971291241730172122061697796280806767931489742205896780842462852003277448863034957243659701350743745843092202559530143416026949635434757497862970841033295792604031838546670035752783219871133685001955175252568803953711112158281767814708386798960473949648233388688462887043658354124283823822400689913185062562409983565246332613206314290388150454486352226405258607985446238404553127524276632661930504095089600607923017427855136390130908501775841816396461968882422464993707475486865201691814904919323332058341072716933762731053463955037975802209441746813627136051897491065507380918155460845187180519997443867389223537117661833553494251965037957568788276613805380709174442396455485697574126343832264311010030539438107143154751540008349885642298026785029420054075821291953138426201865724551463740558595614307798589579671608515486313492008355133442827941390974097468536438087861376430280179662516566876043900835942128963602638153223686548489430042301140361864893661831129587830386080863405788342388224613620567069286786028361122364796504972142224180617531336265524548363535122524543426959785177740240871706120662647475643483324484266995070672948827821121894053928873361510288220731534882553034102829196919002629438632967844744784111623348748450135126408138915396205438246454850318877756911618377313524734105616479566520748955189630675431833066740066301835029105199947178792681538673171460632701953102149091240985178301551043592554098556114253699805204704705664521449132489407573196096756977303495991713055591232290599246242824472893034055464059343686232400942394840719906984414025353587340030672468493261032092690222774977696257230386207137477836693544355715596591791645123103720636069775139751116395772510949033000422986272436220800579250050017921941073094269044238090217614936841598015516746053859255948235207230383749851135241423457600684569632529520555112568379759811819043132176381792186139904715635729548979652179524557043220118969200011491992739046218504653984565513465741490113835967175305026732724719986772567084298380810182688850515995572921049357790262524082331903818099061297447982074736393440767347161527240912568797546250839675821669509326397533035736552688574282181667756697954675945992917763112638106943709704060212781819984350855612302772116058371952783009682821994578514697410522561101846562642186610659526968446004955626986867540211647211678635267203179863200547646126710812341625365737486028669014374068873709773081057885032043829773450937607359232236771155755769946444397644123519290001709995063698307926102241328291027920588642503376913810313779830331213683616610539811858178507752150935668066346231976776359812154965033124569861772865689125800534115388908723339713741858974132833132808928661244915926268247051190716977676143971762814667301326678378249895139629671728960377973424375816771219583481973833817016724457133169361610169673926482155387040719103237082722006378800547115978747848571632291686284635481909489320783230215618524208138019560978410718468534696564907020995132384369616356785675434033221888467482822505620852568116377535258196773070895621557321211002457210443584936654668365301052958536146375478929279847636139589557699635984460740336004096942424770304845526206571400775010750557756629737936936025088479599858218369559902520162638263794999567130288799713429584607926795352314903263342041496623281867896983384941997158904655409590929166380476985745935822295510469402008086478613734269853325700203205699104476244937444816427780630892319076572764565060500255234959969046981191336982471139065583534424740040452717564946480442187101036572566009778402780983456924436952472755040774816817099352205717031569642205870470162148965345730465817496968914982246029110396349435543155379484915661034885392642205354867309189468985952350185439904280269180966575033613062846203251956460970567591322849842776847044659690852613850456827757879615951299865986699015260727128854922630738061815459106515556387001848795048852082568148405325118627773743372691209292078669300821445598609995983979372988929832959041777452291898897321880725872417475608931651017344435977413394913083468325181014745269598443099422973466632541617480215538143305865890640541327291470333241877561497150155777915185210534615591606492080712818981699292088970916031513375021924702772518327453475959454941710285821774021893088380472656428102908253453058765151390527274778475349281128984667824706425900093200217761042916754156540957528131894164983481403801968813671562236674464627055023699324195947232890143248883512015104019194930056478957499417922298710364916288406677657046695762624969289679543350845521409141728980470471902760718362164398180975796320289951294495984983104027093244861033882419527258977656702841207069892467389123790002698557296475692630512448741555248787828681321679382177070440921187528726976310076687688025011430570078420921665417760218062083973697453751998805402496510366574822395406590295970516645897828132620955708253653259780854750110229197723375011789198282763303548974535027778817115992355306705370221624559992570496553351914057626751823252313665828644175451407777201736588465060821571693995771699247685852475685327134074128341371870257265976746518504408198904138406992705518977145938446288845481951314651638211621583954249885214180587173290079852241327655383877160239930029165343359542102844278132913025514558299918064087283061930578138546684535353021406231175169465677288643309857553608889407573680505255441121401223859137324429230584346121008405064005717720093364999808361942281389751477290340947879323365970555162433838174558986318530540890275516727985927218896299348881538718564166434426350026484448830116207334745135133842282122623229660861263256523864881862025319786076125884444359054156155639545358273198479241557644777035430372195768428661348032005511418504092168512912336805133224639665968703697369861692228436113436854921823206232026364693099376520756651003168543984046420294601307947388863557211952921263223710756319765627675987375945699725127612337519396687509823911472097557286743281251969951895961056915621981649062117227992354236565090595198731549297686123354275866269323145386861814507099265768240990316282600627093301631169006053327766528091649713694565544210535928272525511621277024000473807185499439833269415715382610855906447705454483753780508512472905568313934432573061433648101009977569887498433245266621137999179194476977905937377878253348476032157443803732279347934149031985166084364528953599031206052963649083516295906554769208818815832610221130419248233307482180071205232256853875053599366973101160062391928435612266066614890771432140371885105119347133236939952445403342856208041145359184529963076756301482687402343324709615695615075306214333504017286977258453470769299664562643886282021875336504824074275648375848473526410390338741507908915868170006668733212408158090821189483926418538354692023624726837200335080338032985740198602858667882454866264354271818242362819956927415961155500850614085076390993085931330523713722773040356756685206396350781113727824128011043177392082754269963052153212622644720421723478214048267781250186431078898374094045842703222193881913084489353768904313767647303946300148534865615535928877634946392212725157091682475159759541603905309446601199155621922311923432661802639703815529882054506579154829643596744681711288080597191598191710967736668515476374892564788915921462306807394961204138624953109224313395192936756052406622983198748300452215501692933078898273880045507829182061638479843772028028864761766835607962271531694255081979488307434035806262724778472761455493398851801811325608057647278472400511160583745165920495695410307317021976052607336885289262764575155359441642150950027841709441450582571800065626610334524796253809191437541296332802664136164181661973179654068142867249073378786875570946373650971854943372733857721021312860637315502669472981081777424553476803727262128154652097377804400752843391262221864135943996749491944941075072966863938383064438639537213624094545163073205067872163756777146035420707082202887282394661811135694090786226427395083842327612938770229996502216292439280069336490306602581222574695461860527468682586395269505885339893104942139718693275204321111131428733097404450078392923374155855278399547865336366170829568540386652133383398728970951070042570026782050303532856350201862301231131218266463026328311568507594153714093262632893115021691810141429796960787720110569415567764872054623046942499703822409498877467599882686439346982135661247090266829460614145048135718082030356548343521339856005692677141686872593233842908418568514409496289749556246058023086575419477407202299940659201096357187380914422002770716623341759948158345724854823243246806141782272751715360204861281223737093533503089029299916003694303763170883809687134333102402615023279993724427040517555625429926602440059968993161114518271211080535148924371072071566141526627994565617992059580988857237111293914963495711023049020064198927409011638224298011336215605627638043451933609349669510411625705305852438019700296073742450931127270869232582138263796599872926174161084182634588701367018351638253305823635711076508745172122782336982974344208428253876158654498174165388779629924580358627747438072660688545270804483428820432291842292671445820414488431473785660942394881049306003997173537613731580885542587673553202667846043723344450987018349443839770481500216447110876334298142173838999382038804766047701088614642500376831659286035771570333036043266514624190277433148329465475156856944392994799544005719686154686136574336509885038808089026667407623280763365164402321831657387932158765276909664587271967285134987208553265152632032392936900345059308586269241570338809360303004704744812510438881850821327970410213003585294135051586513648710717085244273327647187039374798153950746263352046318289771393288530469687033555931621887255214290265884867854675247502947377453118843276378287530231908870168937065963107156087803159293442344459264460882613785420509225689921688015542490669205079529971556987805157705612900493618479605093347326560212701939160199032759861852182209928022198778327312153081577319870440625267555408592895246901623029703619505040569711844677876902380793242462826646150066680039330903077912585652117422820064549779332194881201445393124662456328043291963181059099859826924043023351316120348343348162860938035087543451703493796372748436091719431736639558384341423150133643665938699021004696012762590346170644349178731175736647314829277316273155217547402951832224891556790887889685080671317311104532042107696310509336377726083790673373202078743435132746435651067841438364389309313905480313962977519866559819607123394113251863040669641493698040279565089175313778684436705068213102737884589363796347086227238731844869345182980230822083805282919049605353157883304601619939008713282973682952090038531643799258806475208706614629313510987103169436773255969500941579441285105113907191756522876882197497615642105073529151498718116415594877371023525593818584791511958866591548176421121744258529252523783695166482678512033834881105348546902546605974601181726878967431108513678616844478817007168492284884437364440251446829747132942717423521285539708133465016465035473805305572748775806326825543355723976726758207178792757378477722954692784898280569589124203339343571450267968300939442834375328117138167926510956293085451631558064473087305397800436522731274820030670644584708519180116738329171594190817171916959620478162369834911279173917648156063749356640511930948081444693761145229317022575867784715070025843728550321951751583414023208296925343580806350759247688413112466047382823482017770334939932123581487885316152451679076819621058940385975535040118316122524246657128469201891324548407733101212760658787654870272344947065053926134068096886580132242730976406766482711268103257960381844130866242941255041065415510230051350975987450374004411675229972866990584473021624936637688583526699727524779712286748463901870625527310304631142256279374086808243467267416021530018314855808588224985170766195505953039813393893999407905804907867799632157946654025713639972605915403524739895050788556464331503131267119379572585096387562008281180582477679943797004661853331460873762058663084544710074801338654442150254327609804658155507683565136299016671646881666623014302913463083716622507155985877456858918507967356608691580633753527964660718641729433725579533882684893596874048665306667540899702680306943528950593996745367179917843268149080075737024664863034122155014158748313456969423793980541872686066221282007299414738784282664921837450027667267011407973629228185676813837301983866926591158698868120933112775547353302154893412446599933018884339204631571210478594866755658613235123013879426897446460357252615641836949371932310773390177028796780423945356743577288650692919453339397372055997389357534569484986470230995485513268334294036340266436882997857589041917574815453556878375424813811224756285372066764147165831007943893808097003492054388136457532665691306890145256393323388742146221990687351913140603614628623227795438599942167677063120270535423635052797379023065877202447225283671341814888799553741769085766443109870839812766332411728516193330047163609210921076126031525230667407877417082136500253544339650835151517367764551039440644846908351758478513223059424824474739910918866590877843190297739496026132071198645118876901667919404562957772718416676210126473512238520092233515541477742972035247567576106567308491603866773584031874157601351751190972729290173648399746196046886762950776686155441286867671269128096188628939003115259021224416969289225289795466994378374926869455777880470285586237771251737449735804456987524076894397345715032682508035827488057227094219031331560081218221964193043979884935394619616240281213197494554329915223475734336097708206537996294060109956170544158373537756397133013965541964444547375653039479716300919126842527087149755568925308690285932275303335894034209276383090637656847359093318144131155426030965202544151826487683303043993887026322948844025625530510994990875070197357911310053349235187993432078844031448146336629470902368671562973623551522944363882642796725098065983413203715085286527168020797957631856772486156661039623302360502412482116489661448143263170561461538783780207480498063425277876410948662965890035661916854774142503594243215542721069455310913373024883103834054237986100134094643493369334926088707862053419345754574492699205971459992568178976192212992358402484839561779960124841179843074894242664875926853450163721981300264654085314801711826609842244039054259104799958610268006409936545944571052224319632842891674625447145661203302695842390773252946401160764674992075772456668121044824635706022532437830313789385457226745417817016244650923424725299092355035135893926904665258443794573724816872306103154846981564290707736989120434454134027262660782201058272812723354907232760212228407443061525891332989381986207965722291150694250044760901430901927695999375574818875353122549343395043220049941750689356615283647860324277604095175500644765208008733561253323689668101600444483271534277534163671541674020124096392392696655392811642358703937306181223632891626971302660952945927841772186129085157353752978894244013044939166098394346965369167245535756321649628563571453581234072373683850297019302482017808008428414344772023720969647082223817616822796795254758513822907086159693221596507005812504776695135867576430744606765877273651695979685434550627896330467509205436053377653874410660346004320232027429283822866406002913203457122918228187708975653430818903157237370738775010075058673272500903982850222771454561041316900007284538346701227120540857262560203969225937825398534201168044611616371376434485295145608240937711347520665610394613492565443888556747894532394876079189424791347978227794206728663808358405602755409287325221420762866512918130290034583008501005501145744388154078162948528885659568961130332762761154679154526237110858652463180668013248448533825627191966700246602795720243275621721007906126056069856820735385804032582269740745421586928009461156373505043022158306201480981974502311582419658863740115806632400130611608830347471075953299457256621747603209915902420951251845045934176671358416609470920880730675509270474943748594871423929409544064240192841138824051865469588390232545824151553415323487420369810921331292425376417965313351251469509674716699341218712797885164291338980147956653093349435650666973770227196017880664594103646133341430838414506012056853682937318959371389633408844216362011529910812771671357535377553877320581702365906213543425431330574933683034346317113814791206369611864992915222901035428390658898345768220857728767637332569162148180334511321834797166548474478796475888157892135703336355221830010225665418250402658370519707318236680302441132301730017347387791342411656662022534533680822492141808461648597137836941336778155604469169250742481284830775843933165456099224460295593730876199505731077265349207427609978088100027820896168744567417716237179516264415574337454411878197072965835146737209801177323369119848879275612633103359347137398948477656533416233986263120379397161636859474808088853630783958867238442791940079593966649011928144986440957212723917469756001297344476564667527312812538387296204386490961209935565920407321965888604414485100311229533665548454116788792056469213405529892397255575918192800054343303348511870604478863523554310103030161293508530341209481374788604628957403397630032923438585802001784038177140106766471998115623087611529468653055538265794806991653819528678405489046268885471786627634329872721096637233936952298420788552661284372505079710352586472652419413256687943931438777517103577941465891170402696994506219019156033328765899911025723704642022754787112334271462496105982039731469602046417622594948094225568516839864421625490006665648443050407617203465446454056951456051874581218191848098879833978895530440062621355012565831933306529248384656889289939734750239688505349845420504146884046731981302179124586806088769122879202544139441519695555138429547352257549471109171802558070330849864237658593144396084039966558317688188779950096620257635331742550439643619173399859714052240635986679415156687201134741058881409560401305820533880524067238866590850997956705016637405622525841589436099451001055145083145828257983774180025257812629545143620255907847940939829483068946117621997720122463059805538547487531983206998058356025609146944446713095636208888740712498953327018057941274588743085702326329727913735409139096293797715480297755601798924266335158651770171235751143087618870495329984153808614799578643451125960564170391687908307440653590649954557800991327360889282926311331120594745722488030400291317495477277396221183911990368750830004278104094028936685802841508530098970978227728428820759172894399387321796292192297268874954860422911121837849675779002971564016136787300290475605376715152540311601516196000574566159599653028364627035392061704660404397734742864532920419371119133246865739538733120716992548595459632044361572481420315159053797013196706049054146232976958091054160184387524263118307461230719693948080728861226382670583409916251786264047966099370514206468628154671097192214053354765650738702243407699265573641292775983237807392516647608089971794754672723175244889845253119326875442606260325257958150284914996359416537770342054737916137393205967379201724829169960651811460002377026481703463056504839942027603800539753618388304313325904573820954505294777572860321461194929571275645449031601132894642604363886702602107589863041508625040093918524521784408649552537373257004592816668178752655734636126682361232685423421116714167500645515118245547893580964715801236658101496379043844193300206094373479458734715423815974468081346373339787336899225519736460792380910195893846999891630376161282439589625418729669768095878833794997967548429938976583704013074358543411797944509947158587682746809065046750802406327990724328368475717838199028786739002826322170356855688437989950253899021487518812431152097038531822583686859067134791158108211415291198085973212902918417600611416652195926934798901081194394998760932966697579232251241203654957794663228878924758052094129023243507951991262477894198387374649947017901300150093672742445337737077423730973422322480148872743755727563971214368558228417328797568885582522695687186139398526970612372648777990015277783226983283662011082611335872998323855774576973832812023074141319015446573324817070365401380081833739910577911181393675451388865815287021499304044046828723673448671327002269206975909459299492969168843427472440465886092297695362237131501205588936962222802326799897484465182782467328469008693788350053082971203451867524228580656949402799809501685081327417850610329195044283693547008214626908131906455197916675990076055275189456278341380049818763347564382994009853282480735009256453866233295283448251858089065724049948215864061648282128883731388679426582799453473028786248988273375554398956996627783298312551589834591443575767342205284936732257703022143439984722912598606635033505021024941082007751554313980788170887920854666014705685057988192361117275751014666412756739167775731678914759053422108988838496319806315899495462986807690245200661996296191478329828504165134087464278944406306784186681377213817436852094390282875634001156957727418253668505513596975945280619801914042060627408872030216821657435434803087751269797852701318433460224040469013992892668120851859706422121120920503523369450071387329239732986928452328363131950231062026384881962104037324475948458929973810232237507120273112865137617331316027017379224543065343535863284609330979720601691341179833362190106347364947412065605982938891262743511479379567653278555309672801106391802224345385164715645017985569305669401981744324484293881493051649592054769076655162801431257795684965710163812208964975526390379184400601719604593047617378419347303316811710640296529786913652641566697498368671190175181437542321892123738500275712070486461936693405954565681952266783928327914270824909694676069883723980758005060457002677954583044601680090469976734310693455249365969413001796627342849813829450010712687590944350014268874645826740464908858422123765528268217833979351621549945482695239625453955978128486803639427847786372232783304220913413784726516890063411970383638710006979843195196052365531687733854765348493060990353983333781511199972757088425294388014633153545410404317888730995946699937159872523236156401412396095805026651968073597973760505985735364498633707854298722722137194908280347926860406010173139229350441879952977576072529725061219485835994743822714345038443462513245335102662011455169207137703511350649918861374453859965172173303580420324850276347203650975086242859661443176610890277351429704148656308638460921051195215770523372020082157183217175234102518784159365563721143600302595906971661609255201659434734734328200922179153136095562930912919228724487306229198067537995239739573327847439668886333038214861468543289682354959978921980256113821383807217189395108456175741792599250443657206324110838519410330663857887713168069546611748896236264295432274867805387406983791796597562105700554302346823107434592852898314043585891346705279582747173028059221082219973318698815268042416037403500379882646883227505982964395350314445086828986871147900209863871568668232772511464149577122814946596721065985758914635802595107415532500072395987806606666928295313241607279632665349483341758264016966039476936015887742549340389974882404970319262040110442954770708041382754893716713696383281691310351653190609108782980271142786585322083471143336351716718783201603232109314633734327693196686781927488001415323833028854674143926598349418130760077165473736365538044666849277526533978036673221383145873120612271245861725229626107818335197507943227693706221331547622117210782207769029847292785368247424749312258132066868353104177904366391600989541632077743181071985014474227066302201948993544911140567541290978642626482306843480926212912119974991465645253223808495270941397540234278020820686731544770268147897557616034655330087666106835553619944659837096465351936827856317608953183123432019809175009169217772098142670672307321634038684345837348200467226098055484038812455420692790565835832756588434749515765928914559615282937158721047851402018021364028160673427473631470323215649181992054714847203274623354615152379449033785658667793620686461856345396134556442535548382845684334871149171371988718081826940920817031794050952449682212862005936371326346396620708154587318830484375203990484697599905804036121401157426971632503125362485086267343955146445346139696132487898118295291793213103294710063043730973511015610945175541076924845465784572845828669843732351494093039670573792531574650907332561348545581885758898278609440578748265003752175945117990726907326294427343362947172351703990264577989883353388221912754350174310248634150182829449860955560788940438372799664725183642292394967030502806644244939763601361370999286608391015983962175696821253334533368832710534727807687964884077236767696825269186498000480075051501361849296966214507055298586434533592547781122909525830646242393929506330719854760315520809210789625756917792326953261194475651649435610452122475469180393165492690133299995561878901201644492298321074229293665294724495088223418694498853275220164277364340025732611775148473275813908238368203551826055410371223860984972684500402343790770193144781969852599944026642344716267310470552557785939658017729756188725518558807993134615641880600536936864993904090128819521823927969241682336490747631765011008643235714229053785884637916973345396475340845056814972236056823943289793830582919103603015743417133884074257714251619022076903685373160686887432770665283902654737405467118441191530463227899825167206630731622478671969176540984240417262504326230989962841054621930620121977549484641927362651099686744521268010501210617911392706062640299231648103892062208889080855625514906429147038651332995872357148980014282965383277048094393477032435722624824057460088404834627634920958970607463776668590069444169118436267261532791342962388539687056702930139766518029277894700011498326478523201725312800971163711801423480865237717903921657251231301837185204392082795704926711498073184940666950824030836807040237393803532566338060340206173808386062355955184158454478915756915177528564949629981981821813289343698909980040911043447642314289987103276599601090162338135726411670962268842021373010963406704043213614071527386470289209449767430071208731186051769021728900272076366490159384737515832199425077445825691297465053574871705386437955719085656412508933348563212652038764954553331778069002788754623429007208201905580167440021649277462216474425592109631865295332531088467868713440436276101080341480322976310803017568929956764801432075239657493507629060641045688059038616600887390648539528359012924427185975366816346677721579522641600247089174922590689330308772033859008607890859881345685878164373390257654210463996962489467325123622002695959025513615364825691730421776170565792499453600299817750980606335343118466428452771894245059545421218449208964773759605270514657250112448893241906823779967029258576178616311126720042358706970531078926094306873713030817478063134512981298027521220235141181852240415926351567569199526015109118610132499105190874226723440319023542607007518821563090245441381142957225947034257340671819852216925758126836375047263983505029457197600976580644636976765268471551724384826032195093934074118724543062587171922484729979898553814531350151611170928912319913243056489994777217648303416290991284268526654725060241576867411275122846986655246916809381421477510888956393639696485067466527556147243798794508215391405402959275341971609173948682871964263454020999963588722381770954819942612355746720954100138468783954433733306238553785968141231731655043548937465676004410916041511499911533593153903621786375551296893835447774690291572898658182448047314539803821240899624122264595621861344908875283588540291587401174650717516048507622257541218801742338870650833196693769375600883672925148860664410850351352989343404437329361742323003295330196161606256194686367713138305530184142544309675649790672559698998953436082259996533197729153089949028314448537395448247759660608469234268285206221212728492719528587507256033466480549660353232572733463919546425370914240602092463055613854529436424132230497977029370330679781701057525139909403472701407133891470668157921267887250515628303790372277687296839554573524236042555298804116895011369150597574065820532241008463749477516553295640908501881856770674692871937298093245954720114640727441484268945264388307099371583056039869343406186883089267381750361062759635997075848149689197620144720162949670720234850683541387000396397827790394371918028208997161044357483483306821041236539990882886073542054965116371721372239105372698866358767140489346892367768581021674360400772071934930232519514256204128771960548278007971953262550948369545167249371244653941081408982512272943155692176758105941879369509033324605788208878052023471487769734266018283471480097792156235746712050495550117964443779608346672411695518622106251139437296921604596224064607012963020319617271094860496508495368547369997123835741192636267617196984558277171512196082564110603159346882280855026930689044130000627865444239020402531306613476026676317135814016885443031141260777380227193760292811082666921502997651290673699695511255023250657101095017544250909441155697017565820467397874082843264310544941599330011935150465249168144536836478744371131863881529132509885764173102477330495151323451892949410519379050222799978403664146114895518381926429720437768793966739243133223824177233737624917236832632376327173702208608540735031103448066223184474249549028993688597829257531475738141264077131232436495501149221344104010509208653463177070242252027855966279484879393653779744245803603338068239935524585992386135125283176349169380683832742379788590028592130155485403233552117583542555869792821826455813546199720905962518726898846600520346822046999496514637231861193340706787591689732699187098818502614428150918693542307121194625736152106442339261063989146056443076336503973029624762869038816415730966912745761696395181595680198631230432690072473394074440682768115951749177096903089211298615950152366876524756820290510426178205856193723193112431722892037988830469107849814909935943081277736109998630940010283308150625400301945909039143444311226175350559138344571866011675065246191574977757002563915431472723602220251485571640114289706062515659319053820103318073413231397502990662336441225809874569627847620063143556379123018568933938518343931327261164469216977832914767137157241287906233283552179624943911648375155396627663196936723853240829741983344149422876084387941215439777365482481318896323219942808583604413890406866431641199794579563806934104718345292826019365876751135046037004611583872786941753299086252922250443475541085305270480022213148564894448823535441761579143385212357810258159414084863853443281724763076069070237314646765758508411085583264626341097669067453600996012517578869066400452064225015603544029588081582154825268815781157186297718496711688866496773789839812640086602598730195464809583006293688558459904420977556607919392672938577241725872279900635796605520824007200731591749250541624889915180943075959524030527075636857039503398661538984670883589334448176483345399656266578372574362188386566904769106428334878997081339542254175066000178985168278282678851508936169218263034901765622544844033520822952330364980440401000170445447670233274051420926826653322919182342295367913556960558944242847137630704964987983483618203894120709459387612333467740414455502916059617956511048496797047805521863168875963619540532339126240057884100474931201754335162470512497867379289086982297181546968162274933970534554524110065069196924723842282678501008583674599741950517183588731316089081941954407321596881735489694185654518464060844428250451431553538361042480213955230657923635876145631774078316015953081645320375737055824727276048542601957096611133802398629137720043401334434714055716438483611126038909387636129672676416642974684113244922272557162694346523770729752760780587187843807732318875432137621140550303460911244309446779759789613458784883060574176570247627597031419286993108432059026371506038982653038046499244624600639531265186974343150739005113799528117585753485682636170303280341311107126372751297906440439143204704627152472333205592484107371603950828150339087223585215021713345990999079001873541899176470048304277669367325351825133703561380100270612010224981484732437579933978046252369188040536767758287528207080925709755100374153603625845701670844900061231030365611279544357822137656011663556667038937040321730483603854464995536499633494615291009791694037775211203614002969115039503016933672548020967236412943683929051484157780520501994169444412324384970929204313279702216196234878088236285127236714797470252012024841450311021753183113538751435854105513317096674389825057456899065035310959543601031701257843210966978011590982819181488671068397677213202247842509866587400229238690610219985658070317504746453236179820023621569126750096973969286260572592821898683235069363074621773910026600696040002753966937319339179131786033874252382561796653747578308976006362046652009793965584174416159447943931309079567228017155480405618792609262358643595920051157117154095900098214844452691752022786088461223084027654692045876724204958794925930718668232497199430633420633480202913100201755100542430006001814460771691404753972713434242942951208699131590039481095275519633744370239889671006324205428917497785241599151701160686188311733355498360368192216698369470946425573546126662098352806451487889187986921694635445413221121389426381083694712187276850404573467018103883141298820032276167268428332461313131823081975402494594524711936313088004059947535771071280693156737524893693496854057178505534211419428422843286041628184767800880265753232727279552084868414252417884111408671690976784547303041648432517476430165551473840471745712847780752140153890653978172831660469796118363341407785424899876421872756432297052741332083344482416396382216133319917241812536168035408856169343186679754204781031474458002545536298678822253313522174186713418364324665531283102467305822577833169036945563606723345341205275861730512944468388389939641785911984900696941642817267097033620181641352064416223954597218860040109464352643551760067555428953245109616480152648385969483902782620643111404984005862684003459473379110312499030075706766821737682570680334209560242838668040793249481769352563194428050806777891405180281704666551688979955539001904089547341811627297901498471086962098803431097739188547135379391384210422182316913223175914232217540207031380186970374567600875928285545067689840092368098893217035623960328697353199861093406167441623282885792745011667599813707613337050858383290301153496083145387439142686384474427379842335948381216353747804655628119124011090760553050558880688395958691192508756149243731752908989405009644421212818588605306820752697774492993259877052880017285676885684982225853669338636214050313133214198451159692773826757884409441771782600256735555708380319592406445642471497371612923256195277824422996750067025458725577376433374370014878568123173432061458490520232048708249861219418870199466183371692982594668346435480897626356216006344254256844416995391452343858016149879894544578038846156435945141674530400583635532019346799673429491308797067970352389527242042721771272879785995781815821543540202013757949643727013990421199002788463773978664339826923943676654977792794421658365765382175617431054804652992512631331054362915558486286438269374396910786289204828369579074496449724498024578467767912722831610908851491058082675031075314208197755465338917487912810403191227954027839689575846991569614120067491119924458493566057295777511392682932485282177493285262999778883313916522023457122224085997500129919089289751444497705729459733055874901910944039580410835444050138282415654102196491223512625734222312554338401605062056965576058494864475885303853475520604762818293304169344832692158220724013771628410859255289456483563113498175506065897303203706679246750015583199981748578916019275588577870005299570505072344396242110826696257893578114584635039083000101006838544384076942120426286046678642939527282350942045784315639747510132059616534820535204553199096113020042804238411566827507352234548061181728651835090695874395490395835725254186316035938792854854127763798938856310279182181049407265628792880537246282960932590790244382142055584284550003140342988518923458394805352354351280131091502973492831254084051393069094777977117685694660674241196198128295708098115304892744640965519388361614165412503933806035551045408011502509968168290009138319913526256565505620972076020895732566047273160939778280444672736254401167556468526114958433998317916081114143011525811574911099448164966594277618093613308351068748855313540544921387668246285206567346478837762608240293470193795628609562602234243462587661455045219226263243511215444656449838563801448792786612029532697484065214946452332701771245812996443233648782714711111399909565218953425307006984352642086397797307342570428158462104954693514517866929143827680508692505201940229923264270800586213825324660491669660483694623460314078553333868602173582260678205362239246084737069647385971682981593501753261172011212860744559397054706053860446131274853857040264382996681547553512212338702711878928159666219386241525051493379743800928170388918581961759417315354166813903965418702588700997218187539600638560145126450913509092536229686573911433667082120182967215062671700927472693778858138166770275608954432136018760416348246658940526951777431833005334835171615447142126849498654165299533097511275702715440351241986419148447660151650372325866806940237510857603088262705094382088250547175621890011060767156598033288393876661654047971485755052129649146530812469066439028550973151284388270834989780943433122384942281400361358793301317976719404992014471606668005432650913413333569542016394518360159757362069297894904369044617395636658390694476096200004399934270508660616738168318476500829826437813640053689005482695938499058750963889930752144378340564143847010084515721356288028602903940576184050010936920172791005389481007307418771180167402517372583009599662000214388653198642654256432088788016760772761805119772597553233669670022423449225451517951308589679653151674202014551093635375815005944262467321947356033896369915715640810002661476256181468447627293903097830954792045911678970422208663716161644004853754273184011569495157395987571501074381093243430783558384767893491279028940174354194439155521074676502375820979560546624789440252631276971692585786462865360675111676250038266011340479888057367591969670310511075807980856842649054267557804792388509382991698572345960216453512132301069562770653962660773901052347416983273512827415326803344988000122696213994182528890772893075370514271989145118007565878907313134954167863306089425482110099501303346838695071482237409768393966778090274903593764650251840605584360353896846521491153120238268471477927357114096956397381330901584014971974822496202143014367249742561860278678709950670108792077592314395325046495151223426617635800256631902977916529948013234506785357191396245381328347611126282781724337749194505823376233277405393586925942812762286546433537185565148514318377519836869152766055317789496674884608126336232518829296047941794758529995568582854039144869475862478819740948516423704374801626371811480183444924273586690053841868840923058457609520809450756184605121044179265404664332380002591160251035852461215294903852613428408937591322856346706754926714062251502140395629685095744671679817414313262246700124673381160591906850287379668218616512910918098691603420709614851538651123115113904570019969994758606942198771025438731020418959024531083984447062904552325621789919772203376375808096209559739209357491810340356141512361216659617712329168486436785611243382579415500475618769215475672875863767079145168162305472831500488459103696573507770596858569709342802081716057196513139775972587376157004501717658259558158227192332489807869733244327509743045823351591990796098188995443409503562876381904391935401017879181604375666896427254756447823678659460098614146019841309623129640942612598830850043743807002699389528003649596983626336054751258151503287778263973247707127568639863031615217080252182620397722482402409070815069343077944910818022068230839223720892585484635809564335514541185803899670750283799592895303641983177545724567606382412614498289867342772436030218903645278786680135586111633904357667002625767357382685160502725419927232600921178375838890444051462836260434133548483917295411045517029966507702230649455937037565135166971205878665522264641070849243801303348827591121362724544848565120972408944463325994316771689233436757249920841987057289446344755245906396490553217678651754835016722369182429752652197181435396897889191547717771295700125525780624878945119520070514618695986652162622082005449644117572466578521137707412561623959624005539675421379477248387267271891214345005107487960656398365332512135678351939411438219279184676312117973054015749625497761335073958183941685869718297254363193431911180013664536135596850421900807382102882705093802923220288591666301286936861950046999361912415052374294298857282124729074671834922681372865767035466464000268179124086448640737742876969690943881949460421666767260275707845481754472641489334503069188858265036864764992975997263441349252530023931798109410737081656123520516491707367934062762016105858171652227425310423698507696189767934989444036903564922789612262870144494340708835304463854451402836377326596834503036136411702650227770989798917981367440446640080905037532292684221539824369209256058448320646967431474218947907045094692100113176704053476109518360327564538626624252809487658021050331573753097041101702950760280027150365717084797933313355017618946902014132741200901059967775367017199393414495949691137835574835179493887631985754782111983539487695641370255488051920540663352147355186784315474850299467167686957470894738499724970299479323559225278149585085759440651649878863723748174629002869189117168907627991412375552678306602321233408057600281518170323169336544723256082330321274173505357642650775584440211278091943841290730641356326654706947634378377185408569427450410449583153146862588691494834712351407753090119816321057436726762869678143956840709776580229458831483064094482902188477177721632597010400036702085770890787458425245985562627279240045283764951497552571048184007916396680996840543165873037178151183976064749097862540688900789794932312253138792507657415572226681387060809878429455152454648531574310603687222431000503345139462267552139070142113684827375813125585299509873529691987757555025879696136554547653125252725872867039242730883908095801324377031794828625559679857038426671675716719026390154545293614784798735818759588469429360653353515627505426727415398510582906478640528243597879033832350826662973570161913695105422603348081060535359352128370959974936221342814066021683875534929989804302681538121405779000776948845166508312561934097750279183822198401998818838767825396520450013144277566982305673351875870288224635567485476189070720257349796589431892294333564442124699190501137087766537459388412807410529712316407369766404334763390033001008127126453833317090775821590106484334225793882599691815838912609471268887323914516188148632026501893189989377827943434865320549793812080922702809854496118144535853000207861204207082717349147518305270918112106149716103104021608679726858545099850638827198723306087453113127962063825502413962789082518195633623436010466365585452610795181760915909466059461867137060334657990696365459669580818028676411726960199632574189963409719763504092995740603671765283069661380896627253760843915278524987051157858719867804032944716617727640506141589716184320426031059022648652050594466832162065616630062378762912896416105709130366793333024106750322872138593506600290571760771354059140136331678264287025514890109094101345312181501314395437415540811931653210418924462062665018134283097597209830606682142307485339235638043015144514013492748327285861477331225557040929338741731238596205191960834110172246915090329556141537952551059552871472208504974489967548498396698573282798791320889019051420811413538233707984888476071294626476686088078886029499695319097774694448939047194475017421869604494654217511429285336815318017467215954788669124768243895917977779681536364947595191332349823784981292252106897541465095447531707977158166526958063452044313330711550450561750267069095593468339225391461268400856430981703050281672089014856563710402479215302736590641179034298212060795148971283014431419937235172491758849796592925595169117856377821634880793766234684512109975820541476915351982173635882689007071048539281460408422761261724436704301996904515960825995192713939463091770487199057984289398399756688346831559265297380741417753726566752856337769540983124210930280089664719113544491206439466600506157412180187058804751443527631975176062801318460010058380845793098599400088117937250287574679773108134304163128237614244785770956034487553817987903294758270636315371197115295221209082175393466762935439414061913974486907477356780565735727288357868054792329647223645557084928089184531279146644086552430445430479683676067429613489631178300615222930868826294378698146558429634998773159462138257802169428204683946178619805083192497012311190273635553259107279803493327024816439553317932679537079527253226308225738527866066244016282713530417947083066275546471489290097507135999580885182785564830014421770067480168018796230580112669106557213826803746212823260910208059242910296185211063679040242308845143966032043480625284578305402730682680853110337028449059607224993908929972901272040639403835268921247563122507413733173465440623588910644907797316759189549726960567187021281048711018567110927242160614000328462851315110870300493684294987918151243112358088175476382304721686177099148533276158625382031861820765723650134567311261224053547072894009007369638157219136091966782446016391961076055113324004489574706163233003137872039943960841965110958990071489219798673636493874226895139881936840890876515955251213471959091869531810222392595425433000854424286610279084293921714578230950750973623823268717426639994168680562884586052947717934985345106486547214431736673228657896566460829843205480336617004098986675830152724278506601514497323537039455258518082675687723269559111492158008157314842509810580820909116817411639047098964446044282878857784967388723217242921007898063281021631142357276705795511559915062213846907698249132570422013976037534684924361335592024689879566603472169509663685988222724618886050812914040882827273667176375223582459725811551895706762746301999197218303438305531444126029534853433340923540645634352027180232956666355519771334303654899683988761569757908329812435100126713665234850615296050582560994498222810879185531122159962733769005778983414973834781926724842605304568733186563719404217342084649295220596033456347555015009914959591167900155151116984011081556163078764589718850400783552114423724353694305650499394343576877549598369413873217863034520635651515384932939888541014775010403995406313622873770014044951727207472105532756793729343657615076447541000708001783457820873438809751673330361277335771857025264959661644186210232206285354925115576926078350154427571597477734677463326214868395224640205786314866656204557177901711407673540469795078271816487782909768416514523056367749017626672897289879149192426174362612911127374926944141376690586535026270165916485298308701621314826485842891060133866875369061569702400036479436098244606325089119019197459323987879169203488870673529027978987054583844488272719056945115190968053972878776371294644481608330731532454000676624085258841010344824024906688623781277995713246843596955084947178484599036380203228442023411191256184964479769024088966323343881252678581120156872500170250287180184440984100261175790052131655602753772981580004693750493327241467549716781489463915448444015105002771511979427216996636248943983242042362893312863490260903759860280739152461624758630120431280689387639948481486607723473744138298404445808686912597670213104623582020465451564562027588299550294595781738472442829905014227490052377851223701057752576671197051294711272910942231920503689005249204139337127708787697578987649444139754853113043349914103026103642852346386671586642985035547904160966926955361980820801874628856660359620981250628464658615525872034037351112747768562621185486011313673754575302600466300492727756815812638750204810631727089748352005234845279053835022798183341357184293912169022186826359847901903653070117380808903778489488693127614008356330887342580092357891751637443509779255571068289579075940302262405676580572893428087401069589643398054855720061588235686616406125607717123050480983357226993670208432274566600204229981507400855379122569774641578209940461534180096300343454598296746878387403779730808873970952477449112446763848164454748525177392606729014174194240551180918088213856568630315310501800721285048849496737875252028277910017340287837917552026458434347931349988946527467031858371638956480975186011874715025802814298699129711502904537212879787528400646338894547965923254814371711697944767873550919371697389307052131732374955838908111831358230593253730636564739585826240491575223340807616431740343315110178868128360127463634884614704116699412260662863332768730370926980027008511741757614823259718440260662468245752919359247696197159130235840275255552008533712288742301092331478377329643749279637820779960122459023531969990487709852362931701579308640965322622833440572312840879364913191272484794771732798694841045012669639099151910908016185252682380763473685043758111468786742630772081855124042235982216357632728692435803466762996229653419319458484422159932702739296090936224126605320826430612905156692619444390060424089127819893327774734104703428802604428478650687308175870301006548404065064813986068351298265118069073414342789902819869006582269715885103286435043509234425802962006700498590172746782693369315742608733077675857098599200258759252457488121210594363874825783182869648716382013406126303072956464965871704008652518763197780813974235022473279141550391538288218515740967013597307546011018333509826124925555820849360047663690376338923417684543744000539375077126903576748169442964979143246655280646269981371231224663264165366948417779929131726522911267867590993454117485100366604996827881736211619825268813466088549539824592303225608210971901122559281549843686792893993192411840574814445398180344285644574418774197043723915892118575750650361982253971008578414037448347507301302725118785089366885383318985549108923792340339068662314232645527355702560790701874899207411153638928200486833643472314750843114734617086182039229492095417787113595819458959789768664338252598520553736313619117047841010856151619443275680243465531045749084780136332655522769848264298802935423207202718847441024108440694629495260505960928941665676280988206828565070887004213418035369069442749999994731630663603361659090721307282205269103402397054205430116229943817213260295224463113180158226795701071701661753058085293673210891738347938638104062221736088970493956221925425160565620832025923348092638768446961544972655535240063942768685686663095908026079790754706910049754894838214966262444425455050848151582766667636138159061700043531915138274317324135149026875509570325224589340458036161481942721296969536505720292327026336205612987775517864841918739463702364318457520100667454844764865694670435905153740467952549151093092872022694367624284732713928291972553420393357796978864587257188851117780859039187539387208409116076389668612519601453343453475944475786304769856414903057782000991639683392705771099799036869370502114575117267424124760389351898246340564207074996089132668639427587157790126149683871107191198597829764189590883749441878485141087182953033074835232083426440032157996420548796667722761606618682397209432625539263489073110013636391301724154872318721328406521687932564467460622721261994845991030125191687305664610904633779890175502597372392197491558289631121860725437136437305345122383895280169902707060544926598555854270243692661712200434963708464979557855421428434606843876553769369597202985888587260655162249503135618920058273176758184659876682704991405198785630601699032845101576619649082566868557859897753080333614593934930084729134722822907297170616038467048848570565183588757011608613653825222567302409291360988518645905714814448124746324633419440979861275094550745679587001801680893349787854862589204371102787166396104176518856119025506123518482782139250801792570741698942962625286805196183506625473544175671996863569138291171214385309865369777548143558799445427323173659527968890617660995232063527860377235921509295778184954057590020960573771076484198303358180479282573021386781085421195201008124607848207682076908996532282014720096840346475387335978508113151965751167603145984206050491944739018258897494117002690643902882560497727559028918450082445667186747292986960000862999073751171290824562276134571818195362476739593739988864791619334488369374293679550299862947131295978036167934428225047459188535422358001735746645430886666828307777789460618755509339744617735813917713538752320063116925014933960607543542356825166407271406748789866103780887330605390106767339201491194108720639172309540575259475785574965023044219814068463001716038716516055617030518518089822343722775778569951241755832801603218668336105351187695170353865188987737550008732477765248325508969602584934840062649458251731311736066749001545916587196307087747849910058180340863030583515636801483459418604345463058976712427256720403208748988884292931629619176670828216761830796888911461680758095383005919828781055973066770921922317783655540570408261230930270513435617871987087653661237151910047959669713423287449617372829343375487332448353919856702563755681351465785831824512039547014486365430144531213327132315094387101477394779106282342963565945943410465014079348256415865587697002320496370432926721170169361486420483981600589646916230852668587384724835385125735378058560902383866926632130805711208728761948502931989841949033596436037119612928066443061234455180697855221361662702053023362718421313833293269922166040817281459565076580182018677667995681621936488903845167958487174601397779022312398638651980228089945945287276143531987853846514736573217997204573925150449319231774369787240067181565021107564596443138996700429706909416025525923730442253736753756878299727019288413258643161312109040757471445528594187358416478150931841882154585368956018184714207204406244018389643040227821557746833282150163042981736801392957489389312387855319047817073458344025466449512924605203986379696569646113080132400646944635967757785169272992962941952546781460208795535271274769924586561769018977889443320406244011482127207595587562297734088178590145827013823104304577954282842954979035475598779177196569625065281892571843456044213556836653178147050905810429543409165586895277082651258619002031012536955085742739580552883811884238713100616439553009430354419193836155640174950599141069797198127242548601771130790491010709242914016822681985550754879622887871738353332885089352944147608714653328458152235401099766885981648807397369974809245937496798782307385184935093302743245355227940801894193876644592075311669168639448936418898160654818431550016343176502330056367774745500372887826824037747105308971925730161369771737601275301536395997830692620732649976733328485453594740487853248088942370443104623004994044804507122515519127942901928188510328638652375841799959018283400962920303404636020462802610048962079964334437508616865870920587823761233422963221942743680845747335062270940103708366179634782088624347889256840708505886608852165198194111754255134277680848489939705081480005789070222841530670567693616189388947072439524783700729427042298483659565101906000226542089485645580396651440330310848757818750767555572000157823579730348666587116552099589676266092745660102897453017045004151251360109715225129176616769818063288627052851294441145531552412879351438114725278630485030751224629691405718266720599635683494676634334335928230988315732747232405611819260167085231730237273777663324429309690036379748778087542594462557681180345160371186056787759856857888345163048234176999055770171870172482444476303956449134525857194968047932518771919939742694065692947511887084682489860933067501096759645915512668162250992750594112779928255041618719205925667528436313246392755805219593444883696983453126733167811414211033602088572338897082464017747224517588776293261872198630469636062556618166294029136181130802531383879164236720422705482400139637150487572121470354316993567542802439301153945734365890564913396827402360326690117310497707210952967539208563089742008854566481761451996086436206135484594853771831020692927028138713847907611011859207115016141866046489112857785095406981037749098392047453321755560543379733821176234143701234994662230341070931307109744050574583215533517588366080549741711251159295670876547243532889813916154940715285764188640063734309336640986757556440773013335848056604823658545518657506943379985716727496218672242111166368289748866997159573523176077582707318338789423262685729719798677078595266319943119505897973526989953786163250367413320601689697472764511715314706849137532232322899553871782295732037211644011207749607396671506216075922446137832334514409293502749171008927513791369315575947197093130288636974373561047387919035447159391553337994928082598057580500471763428244850698684773306162209397841923626700150741515139610523613950307265535593684417053648530093408549864790332502950622985185707431654819037012546325253592267231595975386123793480219918058703719151854103985474223911082041386808777285027754585628080959359086100225317727002706776705737055088109826991724606238967558797933011399743715009740835369432785780806282142015381827860670723514207026243507933890175320651463814709231652897432593175483462941517155622378435461855737470343428207733527543517848499799849695490630053972906264566864055873077321403476145304788678230983391999885592239795532196391725914607342988544894467087316424438431565222195088212170695216691638757056097522258460055392728539903095012409271336669867176662304344773281080550991444865876032151215840149868869496823326734193002704408107780020177457303637392634972589267720228633424534874476413630010446129918504371880560104887309078580286115651933194717860504878650148054895006988504740105816207559740429550375812305924349281838152011252224433782868828514749876178776647502160022881579982847880485424428887522550279055740761465622600959555456640734056776277382740012957432211029615117487617526740446023643113312146706853194788494836206302594179499081227090050120140029706896411543578044420557263069709944745667605973014503929711751449412544545159314705994523712105274455580223142871802850287290703594442801714817846111079266642892167432727286595244514601766016182259396695080818160020088280525985159086386129746014771325950020728913823668986178259368618366670628391236708237520068192415844978724028055476374311761127284892214195817461680162011561954799680959688601654242558045325293608606747200165742083846569242315745478995749795094766789949721017864853270572692271568309914820708825308833465790465634584464868243969130250113403223515103968445288073927523034577553018810917798769772642889052491992203496586101396526208071241109229416570923813539862609536152875801638798797473073204341842753682311579432691659353785232475552072918640604072490605943886052474284255724708893573247606407618826298084109730079256994154506769877259628517411396233683259450802061732113001852141175345911780617546416225394667442209966955146036819934954769721307997603111350744452123541664016045918535074882397333715808252723496622007601942065132774119911687674936511986918441527657279794684286124235052892565584641657933453280460853137599807682671510422122673729202703570096952516102173940199550922276975805358684725495596422311280336590909366215331946339554442225628005219399290614823519725174765302600865751375626107151735666331782586672139981357941981903286826275683584477792221356458432438289666613367401571716772131122583929217138232399350262469059060764170726318872688777520412528562325839913824320900296022102458169945517751533145079541520223940808815667025778486952392169715785544917771794135285569746680777084350179780234905570177512459913638612851309528020412261385039494766234444935257971417483300685383338785259539269704201989383782692164096903539059723952609397788218985558669835537462968953480246693306896992180334684120700776710141693963515660815042063296600639607318701041163684264509336022955041774992406131706072923197320684560360429120602196450911678018678377107126575706886943322847163624802358573251195442942521806326716505216714004582050759218309384548706087558209927061970882304885241138262114846228930918476607698824334583148578399168024123279446579212904172486819794570283520653823270601961127757189382274588251779627650042726088779504688600292816542263207410767638423321629029674033973750925954501368026557263865871139384639772045493974404013662688256941880841545357101094204033033142903922535767868916226711708931807166411475389370865336609034584989131463110441252967406375071224555038298942062986442816267304400063730502588438113117184675864352256591281059776326476776654375027083575312938585528661468253584206981777844214360109088215926900317323114384690434205120167815820879678423194448555197469852093286114437099745016958985948873765935095897547677538104430254069253575299921692711397556807918536053986345493290920934225222541860048628487051354380763351629849383930395793152310296443758011720835322404407730560716842078931335132289248699040117259555549438020517158044309693979956989583918513945071980948070298295152519424353544334206756642822173644290590039784582846586167689095013189827013956707259896928713131498917335301244025446592106477158565262243449039023036469161874547157478965076054187921557314362721735571667915332019202685152721082664891536092739814082896826797739516498391488471666843741192123817183629509696117696457476776734496402435024936604156914997797360271975358257072033412968315977176763571493316686274461304891450308856811924854714198617311145180865502759946917622925510133582870958586432107050020235920229570255650693399703877829853965997131501435714375786603667475178063777950082508647154311755432158510795881971433938797560210909200892852292955135920118770074800826456000478549486707021017650050367809115162405255089110666567748109967776309437969054851552776591137322153242439993097947805671439636456037815767668484703296298828168541395185052445173553786174331292066796720061262788651211164825172801213686211916682115636360627212114288459812746176675274214829222673111159597248554801621678650785118580857810188964140250179284369587545830143910874861490630888067038231065656135449650575430725280967282366030420224225455626627816628668471971857432139376296634073184432642303349069974028891944810439816057841196416733904928691796435400861493828343447784997210348812052041220863594571914164843306651276961889200735808252873849551255140281336301963954836407024129397102520641688136038293776585449831933387383690064840395722388200771673653385568374576197468223159451415252405611357371918673412329763354349422710737856566118865149480950026989411784461292421851797845229133909922915254432357585116522080634387140455258563058878973254811585255490097919471039208966334582605058965340230449003969073676064107265082913942001399264715011178975098305875748364142230200438341109471900973636321300080652092240886676467268352867912707069825367304292943455418268229977457770188438627064206883991066885012043623350417225458093369995102463305533533861725227959764206779585896585778803829711620708316295949855500385809145960739987500512338915456866914257194092768645982396592449533277563922729756379811145948079161875158121328429007527718488637166421931839268410462802267183581781519516905006394027207710319111979022844695212965042058816565460273871374282533031644759032318004015961615339082201238564031738136163337110206472955074782548289861404985940776614850730354544972923168066399277752441326630299454678789442598923954063477875287034011631061818376308646315134413929257916505147261789379106850378901978489043924089055862125887032118290322869180825560611418102204435075290807510037871735847120295586939047538649930258351942023436842004475265504487323473089094434030074885231172762871252238379319201914189556209549122735835183548125651690046969507753832347436044243100176824682751588300886201806495764497881730110511057668486209685531106254912401792388775433545742514725074486326711982969210573232598961272734718339006684336195761355435110013511201890464557022956263485104137368456053395714635961501579271938745944715816103378021619842591709386915509652536163831926742603148498038266690770397036015104195476258550267624822718808079205170906338765875897376719364430909934947315210223891548031734193277986534176083769963135661244258569856896908712215130370098628194630603548684520755372469825598953083055380097815267238356781396586134720222105585400166691985657155132513654099763573832038755407809232331355777555366479756112822117037827987952120650894178059720896398280727910531994623849079607752359393252505131602667224400305612385708059482781622565972442928766111228804460885052917170515421620705389387361646491240185949883307861568905187465724778671530429531217039998871115370324147984203038144181424623331692121188847577401260766475770503579898031882018136888237935463987430919861029339951790906609687019947424325146585388816083953471565685485285779400803924123298360940491022250320692487851214845709877693748772629574413368800525158607802787092316134069091126044334677431788783216049406259671134329934596359961716988309857036150235068355105441593450526664098593484180154596844744276632013976092338249597634558780117845306711580832874718680796678951507874618226768808699323398797489193903572956561353741061085075043699135130803772960617213898147858876578917282204613352061938043541824265333982384343637011585495599065644269434056260802737922614907755579739632501740590549026570086419402981824376561016365623647466121338887216117181419776608482094425952950548605796633105631587051632865694165417770981492270981175200623800124965870651227080372291715373046728942730924607835905535183387304596891864183787027488844359696307979885051868095652114074899140335526042726227105193070431254866968250147900256638401695680723600551682632050201191330361298047744100730453244071811322420484532492108997105470014055776310118100070731943851315911168845050393870763159191846701602607299353984919014758323114675470885557502889597594926403011617913915104266410928496167537692804802716183264842027911251111233627227812066428878286218363004700781896044343816025138142099209294617629923149224970822160959667260200446844634930358827118130812025557714433565459022855479690899398288100553507362685431905696368611995947055650067972795888244467985316865880386441342593907922033288646601076922532132906560652899737040746041772555932837489103335233890139839303461154472595957209885849142568898348641885162155335441584210042714508639765156256236423067222885993992565443883650315080589699160362496973547699883898663319883150318576992006394633581027030454922679894819310169310399113000767661245172965266893794595115320161114169923469383697236959724967487020656902392872880470788000835723071905748165785906439689725538708745091755478379067369735702147295353879319536612888680998329104873784168530631024621464324274620584225622817682785524886207185412632219404879025961607964701397019237750791764577700856637643506107615948150924304768957328956414792618783853964152436132194164729377747371978107477168207179264118680885116170177554453827261116925505298276790217667503645042882541705898317890284959799186961834240665000768831360904055850663091061410519927965982051669867999162714795353133375167246248370024020391165586361976579288934208445963747487078625608439804072221470804732242999058376942901475054527276656831246730620557236114790707493541697565549644372389082972274925482357257635371714307257140962255132278550617763969886650920830364178412255705670517179179868337064668875176550331438750690509606044680322563538018651095015281229713301367480735456390028120143658438177587403217130117933340099576296952004617748490346639921837748958065412322906782019801617745334465151497727607606093657762433786482810676612621245254652320734015153296316595994536435762982023920646301019348167357759221677587578414331819855596725607250241321308193319288948012957315055433208900731129161808704459918745646221805441027879354058227801178269152977535057399266333233641502236346331502917457894825685150356709204638798405146733588685258797404959228306266561059974317691184685751926713388176196190212191800366584294667265569239123316636777495018193570383598123371310532555613869543831996950677149093867310179795500918180476968360351537083784823774422228825794636082304043105031961155190656500667188321991868435711570125211868333161229306848585456593441154382230153909058421602219215885942678165952045309597842095140585138862169022613884883116962716254572184781775798755084993815077805844977454055919355544684607932483735099850361008970208669962950017426404087565098558374264595340293919979764204341359217113973715125740544881753129153457309092652791050456382540323642224283805711079003855519909932851840443610444874888964652533396414356474434034078320697818485916268792011893920814171828920432093808806260176099560693548350752250868978401072300074064125217530471378433795155533539909258352476286868083027948045166840421726263457501284394008911010056828976688423957625620913495000269520817233919408166177066806263821593033538492179127519827845045060261128433906033065088270162841373770358351446061336557942208004513560924522176743933044596804909960150749273777254579104913682171508005065984047091373637387251488494927553930073238322125210523303839977723248377917048014081208050220634853204029389983866044900263355418643649271587133261496400111955751840439992640771168399451963675998477755423744475922733032061344021700493607918126140940087824429658170351284939416711882951003219642582278612581941173874349651337212604215519707854911892668378560201881011425529313865850243860578335453086250374050143076546975505795511547979562873610443047787966397287183916425060937590412804449719188262538178436635124674572325345906092362895830275265152161406625441782754558481745739016969368347468453238157426416088271290225808457724226301282957606892790470985580593180185585993229315148549328340021101266791711227475118692789319021028624571709669160918990269666920407739570446952518262488376043869313155095537522879468379622098292404185213168738986923560472529070749802389701386573757406971254844562469700059052138621380766418982063565528269286014216363332605045060580021845573291107261319013268517134138767549780021357506766257553383072615451166372656677775333395432651394169769166109432417823336123856865948577353228490743159029110915248418873039800729367332113803521612158989792897037821890167097472391921811794075735255634146643638517890799086324870633555298748658228339322535132195625793172168083919451650555962927855929876624094282038092279621926242488931942697672960204103245995639382799775257647677151247130211895963898372532964265541254110558608711136565589197425275112918828332383021679564239729197369873330405097604823700717530708194440451448835366203365689314340830885405700349320299091151082523456468333301558078804034436954580056518532250417174115499543581422481229051348779752058142805711228240458811374405561312732035651104316889930022361434203831950965054804276430490497225896736497511308887790068082745068491159467791412294724897285790920961547856736613161874923398067049628251339879233248842410416627253993045739835914930960286493419217598122959211456321948491783880278346499869937389609423055056030116227017882172352590187483096448024912285501852199148923831463893690917002737615439884851988141768683966055920385279677644340492347872976966468678284833086580436971243901859771841140972027602905309813844458405458431643892453885146746940109709529556043801844190897775161044656500250416437220907416944096357957439418367165385781041560081672264624108249301431871705971420232511485175005600815873716799804908131068055582074252147606302986703783335452692734579500723794603237098592048105169983913972440217802226749181071470942452021184911836188444687206341974075797746575883982753067774484167097359545210818632477405905559101810932228476066498312154832702822403467703321304631885269926385311779276965018069675374920794417961712965685934430315996522167485033195296990244977098981243440214128918250503549099678977485902133450078305037362690751743888832924281459345398824786527022466957701663530935829376338110292539712452224738602579193043099300286716648561290840916862068285549828156377761278127428748885479098665581494961801744273220609246783759339305355409775012559613238529762802430885149806356439198642573643645627733582569916434158615430224078529536722655836865020948615877939610897007331085165492396724957329539664790914570257815098803120595696206471233862781204746045938459442376760785248318476834700736526055568381556570532923565912432655182646457122487718637339249155064386048734804141679831194462606909738783376422336365257931262139540572450722656907478707690781990030683196245445893547853362128197933435307661218784112298766697148010937069839795430391206716721295013186676223732187112184556438646950906566004031370670406407762045584699380369857710489206499247763999266332391791989286339967835709712026188042179303157123372167011248135913282174181352100966288095617428690727457998354010270606802723527931471808140199038985576188006333003857231339874698749578555834522814085605115957883036783169419540904967155936955218206421556580301806379216634593267080667734677948292473406209362385345785755244637628219450408442941823849970989216232907826970677956370940331262955657065321177914537504977018074124024633824642992016036473824596239200530481910273565565209800730421881958580752352435548695210360117907930378177578901558444361637021498309068541012614445138458890224006223191909281789163027468879987107360243601416437819249260435662246048260174421247322672677801048253146503855894449028920722109094395995563733875011446946434018525649619739807047800221603474155739384889893077920545829128491153720885080192391010856862955714376279456524391162202376085569794489994009589809543201169052177042672145156890179274912878096974636999899579970280297299716708669894104140891253808186199005355048653505061430089714816342097789179054834771913902299415867415126670452866754545799886208004633278867090337905509795301520972325670426706834526000156441023821488368686101552501425594685302860706577789016481395299986457203818941665201217083911500807688813600845802695127298536951048347137082335587703210038143855670918844316316858747883318041478748479303287060118409092498985530764540697245493474478455740327561784931137805460398142159226879138289405381722611703489393298184322195100187463912901622099095958991099102024544729617858554895385994351293074208985804056306510142154827172389409124325950168139870339972381840741652571801558607255320953744921960287121867671082867672566539134136508855726397881914890308076908469989527857099756118344223008627296306308385617238017163958585391900782228401460867276467181453609630334156440180218651960135654642812203167293198234126156703414463797982013164722846210321055692603890515829134984310132122070079997540589104149536741768984838700616164461069565607924342106755762105018497181866827083762099886616642688627752157122625130927627293071261412078270008719722774056818031424167060435680795347799777976667172957844785774040001243095141292934223781828104833637257079722256089975505752700136424255249353822186899580040476522906315603423083070934363638422500592470031918768949816825617928380253329976604017341590683341295672373265090657410262259397809583640171178634320433759454965589709729463988132902723824738753528842659159402252932206554648743935577811252651944848228209320829594699120318057931793577974044748023531302836428977111132117490547674668406366352012443685171640302194784184559386141349780876419302037263010325689772960474356833149840442913805575362228598955142539826962833754153036852538660666591005683144183294174048141607708159622653547640853362629809250354374145342701389982075813378505042829387026885484872491668724323566910969938905627229356661696115670319022289123033758856720252223438289075601862594977003336252878574341644246891731905733976236098942843557079819369519075673452699662146179740795127595681931319692582562773008862093782851150075799803674983103230526444870598381548407935919028661786751647719100830452571436465777645647788972946678051895867949929237742024248302961499894134865517538944813439171928570100260211113551663309252638631688925729677675230738384057311307135330842022819970918276041860737959645221280259036103788933133729044824047106799545097738632259023263070926305832966174844149822535571754256891258458550211902937948326173045366528530005263842009527271056429408144982730940294949224057464219754630160326729586281289994266139995160187977226439310549105362288150871019530306251404028805900427207518704521182985603992324763383574111546001918771574736726756395831533120857869850744805787893095366299255604666038814961529007055480158152293028337785486798953772720784487267852315772409791417662389698653696943767675649549089878705118872020740464299651796851259866432957431711581630076681459116830574532625116110337738417090928234290659087667341616584385115935308455098719125639799788329293665602042392285221390138796847678356234066100988906275534130843313604561639303882857153401929162028792853144258636554737139487010066694735422894620131591447199890730643392120472883810025099556868137856091257675716293270960748095887846616645897571339242686440488365312363004180739839336615867411816030804054939533913259919432162553698515534817464597310718935816212098991475307044433902143729380858878325697332025154830810661813578524092528100468126437169631849452362137801777364626125098657584033803126159305198220782662560843029613944211403657503697697569980452362761083290468636975875354301047874266690620252007323541704306242006440377029459851348909588324802853217036941011412128639722366648946506117683181998624228380412901911917167359830528675251957173205284705333655885103570265295382877778313344189635580396742977349159561443862281743437518492716800794796991438454637777535214838501151046226647229629933537078540408458279241064344394238586738479398103208588183882383680173179546629201290952609793266783328244452083808086511854977958088071538899009295487667025300607530614471093910812247234925130663676010081932289381586173292291005271681697019881666790543579979488782133350314691850384760214297894519079226896237284591529852152871765837332877777169344012690109350388761131568229336458022718819504761903034883049971278534668285428378499292829836515241242314230088880518478629122594731901905963438622240450911781396451635040450805983401691498155289394893259673421170973410014776883448302903218242783367113127646795012644216626775327896683880953996137027050907723422141362638144503533167649355528704520544488008352420972385074883966075990623759949160740365492974741285646006673573171714313031743597083422907226279034173377287418573791143314248688576361554244497569091333487830178398686264556662638491637166156405451099550440484198647074344808275236868156233208101864016608214651299940801593667695658258123620632846442252361929016646886726304596885626025091521914194181090470234905565521930423560936324087413347766960407970028608685508868604938897170446490647325816505305445325499847592686720267886180207627157022289246511088885894064903873314727687411797832068527227127774853545030786951133956376061277986930047374379170331899046062884875369500035206384852769108519821432121620625607296656655397101389883649510030233403190647198901402843278373282608084225219960866081454773135490782970947683009462796750788508993511245870772738880722428658479057534603480380347325772131204739576461868560712355807878244635626870804046487692352196504677443007580424916308525858032169076002231589111737880061858722193873902739622112979992060416950286189030332191625743706199686508099621499493594616168064589331001959532431763768198015096180906783740845262673549385499632532917104602000694773575631793575766690545049642016260558673407467684710364191726088386999359589865308593186639296082276016500716553750840731239926011913551753057985023937087273842063276270388823577796088753937158866675143400843929613536843859046920939164905439444008468010644538605262666327227690278048124885346593453863088257893200143829369046549211039788712109009245439001391762906846843876821966386894818807359437344826307402584669002564777395706410096235758407582468133988016022451927492698517024226116775957309162978358852138181396458856693554404409320973791888512480168245654570992820503963830421532483403654248971859325485113140061182854637541686208537015983172866391768380016605460536687617990520801327462496302154712252565091920777964209442301747452308897204485071211627808513640106233406286941864239569492816156283378399902435842423508191644244734652747349810208522830982534790553721869266752824687013093182432414325843015471986485518344366654090591845801338213789727820179260797548437939544907851585917826795999901873182719298510995243429678584739107046274921090587958330166840944593836236676468012863120645478951461269199068773818032063326779923592849606624213686177760405246965375603053658775339903868689082433725668463367706370925042111881410013486773056955156237949194072478530031201864321435171493806276115740668529760069162151338257295996950730268367426030471413292024910055796777564432375047590193976873840347082203371048459542986135482629136035279697996353569364766246082069144171471025206220365885214553512884118638127661173200018223918019269833472794472512570204884306327327725921600327950371278199814720085319543961919040264235846871143157276560623965850271137455689742785611831555763942429628122140987530811226135670480830335524758440006713466494387044498801850832860598597152328010189567615915086809951710611770828041193309195995908602220709240014020975873379941977294098373607945113739179185794113153029802359683229971476686508869027927504333479060498925403545617037671281080807373175040815209061302285120817071191022640863577253229563326875812370628886274848062676943037669655358272453382111342238820588534013332947015681793437081053189554049954699527985199080396341908235916310634724481754766970084154272714581135709110372891089950663428303653863061096507796855862959942322328444349416183699191876930783858675759252939360997915530634813031173744765075265606311975629358331394522530622002670359222508373226321108429055287019999947071020137789273534657586371627568370467686170094200189576774200688537059751465430146916053046112290036077075800935766769358088935650370090520045217103149805791290953715551347332739114144378259381486735414438785914683623673701211296751960781950922858692418360832096691600793484252482338786279903647208190237647623149470494899804674762900811117853010584895997460939986508040653505865460780590342452903167341016268519020054695911361812764078391870267374190506086330755238033180510428423969548474483745062771313312454367045402024709247995826821868990165830008900283918593662425379001636523376173195475391341527413317206426617382802792518192183402424620037868315405729239870736744255281145972498584393550580390837905104597509630466877723375101186489630382565068328871691480831425848163564584432183289292500316907875290959178857656694784818904649210441317379921982319520172654972631747356231931766581858534150743294856630118517349523155784846019072644248213129667908974612696764295557530297723107803583942288110898865768255972299011395337533454913643943570948929367037269086423232997959384600193138389488736064087904324550483456151253223981603889696802531172496444891139085289106327078534948652594878249781793357745158173810727215868875553884522081282611565107950887672337122471400352360768561168319502529762198116452968376335586224938600141038367217510917691122431691078960580967635155843890322161025264980714630421112902287073583298141371275688642432007683091717399351071710639170343487554924501109400882349146721815315939375050792225627971331783725662968825690913975839017233772424786080270998088147321601646460869488104129223693102083203528995864803799520905201045045958995350418595850049061124397756236218107724504121667822824215889307351922834178595416033353741299204118946313423459280269993637882388533810951054422694010106469745928984791412459198339578270286709758070382949763331771819668448666952120444225091740791670402407071151667771097089546313682189941086792002786682106357408144217947442498082849455690620477387011455090344550389545159339104010588560924441979803041841157637842125442630125663168958790965416020784092376129944444684857833565064866710401230990049882316612432141599703718253327943991899540884779600268098063981206671161178897831119975335112222469886538906145435762561360710050781510768189900224484399488422704772605737038177112214214343696612017640675963429627642218058453605503338571508954486951580085393316676191737226439702456171070593992208025063815031454293760653417041906686553346314467063172704679267756934841357592930561447480212287292822473852013565138070190227486675495071558191766443917418960461806247521440949779404502635202123379607089913357695916615786803661106877688249976261822186594694273368337459452219396800234259655193611041046150329883624725351643055518992728734433362700275169774902811025297172200233896647271786025968022976513928356206139187145985903104455973272672720042841573459243844490339550581506445557568514740254966603448660471592587582511941904256235554657439757451331343604601103403493736218573865237139026370975037299866571365117706917146411339528144229104042487050500825788554956596675231988992544496767022735533366044989024485102268770680620085866800774411449275659650426047704266275026223029001771434821958601957513895079832320503603697231632524560073262783513149680475923679792591411744530335268767505631475406365016973528559569211714066770156432101033809013487000731514091576686087231208098100749339301850682254734980900898629287753892890532714489207618632056657264068642548802158163452936723449135958314137589871076970051774837535169527822463622614487806801335711699123438804640707604248493935794543831929902467272927045717687312436929222509253219177029226423360332813655213130929475601196453736882899416252628759329435177354490787878048396468879089289632055599736151556448957159148277233247395213112759345423166258596983249762508175924471360995743554437651405995581180152658475513844678886997957755163574840664406604893022010270801665709628153419929471948897988301048268599590935024109537613470571676761606848322573825644306737882802501325711276633763732017095579195125984846538798373744693178366140842596744064374180885051546982046459638909060001736183622445290110378630670585913307904190485247170915869280568177149729715687917514869715215995440769796502482467213927907108907191933124092774082352314710875848210157381329010467851563640828621630789058670149896379361748818388231390065814945072618600939338475880514981418544251230150701875800008797377180670343794060846188698250684744849293472808136612561089917606845172779821763413240176210913128016147978846373090896965844780195054968384430639876608782869022406026097418763646059273949863698599898351141943091844802390633038131784484620171725411185797389296691414490675355900266345768278376301674813235799319190943068618243611270127392228686430768576366100300894733041236989256021082891745277136082058874550180980116556921770556650366724031527929835358516716471553700089371336360900123081056348997615809330778604858554021113721712061710060717878547850677890570941175111976027073700989537183040757916340341835429526714593264933897289757645385026017051294089692601922472294557800534619370945281907102574413479003155885349643539773867809719018878069017741095377559023250049772041480357122831834203087504787188664312242495652373526958996998821933317610668395156041725679105354265043876083402862576390050473680667029912597458337760998541740651884091833350851003189121775418214821920383425547587469196507238845228250800307169860962882789478307299310315279830064709018385128614826944707853069266071272329791886268828951222462428705094407268797335105896393813467350490146253818101878905141336534905675418503452905076615664007957908738548284983097916674957756225757434616977834687610151440355219339255827166678873433687049964030122843547813571795584535545730664664126129663454071427590514064371321614964123927780572139313370172580816403610819875154878470251409834054979994113281801874374984321321950754405419014991811510176386278505046507991006835620671767943471559052514930058855426871866510718164455409028475736818392544174501841740149695273518929870606582858537884707255249325027442772736553653657596281448463298135419769164906062582975480501197560776471634168259040994276261711490874896747918226899947413466487648061746051545845838187632707623415625395802437785156637878405868253413396970074148941842794449622045242229647876173019711526371625632293629348528684114647119712472199828745103774291583437559713029141348124771733658796136633791582075063035630123141731100842542664854671063261830603222021267694186223912002741114251347583892981098460505251586238663441274836132137715010238295187243252300398242888696831560542005652860443668998425215536012784523045806145944127060091007378542633835001676675436686638731035204098887128494462279974488839884449769429812949947272123549391971798767617704403008898921977780506060041664026586882991203190467646031615229463516159626652467432636985381930045309693453816488799639341087423824768509829170250726680008530015439956896752391460786983654307775709416414718184322674056742288588633285806292190413694342447579057277192307101682610130257621327277950280577584487855469934671430965513434407107538379833356570496113841278851921602258920232882189752857030212117955220192965264482251716961055277982327960140415631935777516573553541878388282058157890227464440542026114495466519634760286037798427631491363466971405123803378829658915116300333448264056648730210041381697385349505815439144623241921590195015169355630494791649322630205716633036429367952424754891607099024121476142356878313669572891183135105986869286242746479106304648803331733246665506784122257118536824367140694277893147659408018799390872641506804444407172489732822914212423193843355969514697910233790622042358670160809326796179329217077618802444096805955293163638737708823284116412343953212575437716960658213364484256347178161562248074384424974434277466141009985168270153328121385307027738839652650964168505106407132458051137224126906053703423602038310485608318232243937335580952190180868059207209385653107490274456294869349205504802018065802716772054969170449500796755615602109770673869398946271706472690672636712391446691714798354454867855536319187722659740087102470794375921939956393891167631007038826003830495966235141729168711990455385974916031850264694868413431486682872505467989038818342542258734556122828263850187791214869386137431014968532406454660060522137432574628104223729677911619880967071157939512374200253857327108347420490877807599599512977427240158078674487321312664047076475248050753794369530264578462515906462772389394822583946724908245400050953516437751187044810516837866577644627060054253442245629626014696700948586838655605267849352756126280469454392034764652418644721645967921616823093566919511163443803401190744790340589950174421108270685312496291465143558379056894720870465349460227250214225219540346662268376146569774420836494070468673961993206165493631223730740143712197607995907116127142827100955492197409140046258796719163393839917217350440283832903000798490794885681113817001996296661314126243397707993696623531682713295631945933259010832612435388219338250909335089978292190239628869862866701235414390648633830876380114772937694166610819695540674186456075033447033330774519770480305521297852449484722316348474080855092373046969183638638858066361321391551057687091410562592344481629268365108406138245333237415953570516017361172452946950510587916371873866695547882785418628440570424040955218372726956993584338978384200247465644060999747987768106145028330997827767874446152212452797181115261272820437870619666774995486619069300912877929822072118556797941715548853061216849436391596759629649285149456824528104713746466613751251670725512998747083441752536454833581115357864346114897795917425231469376109775208980776071531067411440670905662605706019651729123815602686614780438938243861299962930779517908692258209983589616328598608204742534153828332400154574723305306963061221586255231382624128357488935087674269455494726482086105601539313435522658144519716548182961005729210743614044775029356035265587628464807213710324267120964091245043073294137325543967278612933280933735627087415713311633013453637819386497280269173072681561153098951512826793644439542058785667708841019316605200096830750277501174107301054553020880402512421509552503214921780950260235596284126381784594484244674947698996793707614561535372300218891530540876911672057281328780886147954362014631087323342917985502257568410691219571362555480669006790508334332963643865523561775578648468163446077914988295947274166861229078008634201512193008309187467993625854305482369568656345142160230076393378881152666765641132217835023684872064674559606296562022507220937032363508362038960481891444307338526767863358615863185429755305695068996239231678131937699389619727739636823891721696588552102984015387653299812164199949289946015552468774116882197674600613255923959364155483571194902330483424666251769438397024956422153875862785044624420031175613957171916253072967245959293384136885688623675771099184557387142172787032874396907674281144037843398762566373663533651420780947480801419618432760927687998305961279911835368934689418869217028780340578373210249550501881744123433159935153813635562672588012376780179816234453101961393844595884019140896185474217385245246096914023458250963675172610216302426149655070264473127071444680659486428378437280039819989843211846809536134024806545291888817294084931253919930125898795729811161780872553991019588777432982404200912434965453146833594707740077907150963898230442033455416491657715760974964765550721501795851405245396328792339429123923206930617839744030442245728775875084232110434254276944999121688529508925581951828957869991366304577334052402071407142149900060521877090473633171855296769562333941402324721367162077010048189536824008709708961159959130258353077873701831863513392149353946425837700658033329879434690803566782087440597450720620857525102822069980357697862498281019781242350844183885555232536967467092981095318274465125231650387406045758508992149544355549843345256955413727986284491314975566237033569338428680328165599718848696374135523410274855638217037640153860054714794760095495662405842249918774487361384174186729573920200009127323833748335829513313039299220812424032320807850317630765054278323354185043365871554970085834608910717322652723334391476181639855004033280506568968664936026316306488200600704940153926711610034102886096699032240703017598693188386889041454287764641226324765281121506284558498134679973976637343763300939281514787949392289371414760986120323302671210472663283570659577123372830049030008223086387422594509272972925740033900055956306238003096057497599584571349489835200128262098850964975437341354065320467774182351104150220556569299393664391923077520539628996084583247550875240705426673208189083123001070552537939067112578249475451899438245288824629531161295018321407550495894707758135622169528394761832466793751477021855667961559297668842346644905705994146124192648859724483261524305247713798102457947157758591277125690525471802724931685925105485331319190118339742097484503149786851149667510381711348536454569938271869889190890270455677627880295532974808641428650938319191207209792709558020967081903006661859574804249484371889488160178595163418118975862980415116261574433752844630158237119015734050887065876322463567687167565226688645585059710759205544278717189585796219562418356938165068314382431611049669793832646578102708220198653077084732554933820326950116587216345480814742728021111124694239055787994195249782207375731718914721777547151889574012232009212600847848605905038391970889225768004376162664340315470535730583819964172662825476301697134943503996382673351378808473153272557048329744273685655303789329636045455149826488326450480894813846926472169741291807571448880865434789263138377930482524592212169221062828044468427742802774605555019687838060501762730558658630190668265669360636314797411176215421979083266617726297807064671254028328260867119676186969089776302822874263140219598589419783714682227423229496317667964990914055496157712026536610812888437812014861100946889580078333538406851702586979389141775395597717874748712284456232573477456369584459896643272061431861217773280608789386081461802881393640849656039659011708502992318003682085599928851213742520730967305943037160948312463001895363431440797496514800712765090415676727514536670407685194845822916597835973515176060502119102915010965192637737090631576647060969341367534922279181950662382036216217860895419558673127624363751823568275234013509684885377198361206833813314862110848586421725451127408083435733223946947078858925803500831106873808653045152457284862632106525628648485602612860693964721071567824406896994463505940645461879313686183893014080524338066240924557591376539375932042741366600124651790441786145520862654234625449126500792347057575836891182585110793018869168690873027282077375868042381206178884108543253585125614330919346794217590534323074102340572538571049440330207539189565222405127820927824355565032158591702903273516734744740949658803970924822531223881701913316377203365980507418107472160307075176270839499465852602667582967124903109142504988176192289914945809165764383284924283126669227068207247371170096020443217471579077438083773317558581428720496629561252449702626519703641655831208190534254489003154097261355571656424972708476498846747122109366150005006782174790136777373680817677864353923671453930223721954296191827418874386560041229767205048061591634234519331824576216608008600516428523308067572092721042435623400149391134502845995793362277389781677781571302318794333855218128577933802767923005590661907743659508450447433557285878223733745659114433084499307595546805158365456990100454252044427564021828289692168840249566618808438732503891692605139109587308119331905333869326321813092855716219786272137096995904521622531850049560524550030565974235494793836349647777457802669617286921263048501521730261962992741104131722452831501307092408555387167820661424916341607922816341849825911191812131336399115851399855767437126000915434388218697875216787170560093893860832232406828545491578253768716008675846056721146808439360476748173134656034693024072654562517054033338023408989347751971610010927174512411222445717876044637306872483925683918490799858397996476570069136499780380999025987035643982271084828907712749654888691076171086923104044703152157659689899135255145475010315815395033732110161965963019827003898067716100189747801269510368385420632100928158308699481106703917012609114546227431555015244327766001018925297681404016984339909246575935342746361703324726003689896113434951150928732971950510945539173964727607705913791211438562060175868366399988910850647913304320227774160742965208631891697921321889775229807681115061446982444499241416139336556864012712908812589158720545967098237876356115894819545425788073659404822257024807494351246171483081097101533378902099006667732285054012327711995623143239763344708363586779315994928555362923573277683979944287544674335628582029174611233404403025835183114692915662014626109835294757772611761383000781880272286994398762433602386226499972595602735643786538657460279048507354792697101845383114172415038762380349047066638246668277231538566819108860815021060279817500596632793254941764797035057870370496818488483910368734823118456435287221994499745889178330462747052826941084865139937784772418517971402531666411555208454515005802694627469114058048397720253031015618330268879209493913463233143607582258758053700768170090974647257799354235163790560741294963229650909977915161478011856169373257054221984189118737133275583722615297291680303492352136361848941784812818373068893869440906397830674857433508763230699424802243081455980610821850599583405254098531801245486341340961351485809318416429466290991039097574789447367236103800507994424758449392822790363913531528464692286391751668399717455625919213648944791198622478772161639431097660043085521262496258713623200589684212410038294807438910751221555505708179640072973865513061599581661870325489534146845839855046795809674748267280103671251520390451768635935775231319310890333572189113912739885312075691775953790236852822168873998616658982082446720473571887314062410814080170179988854258511807594394185241430765365710457125455990664338821094836443400431314761122460467220722663743583579117295098156434396900505342377414478631602796698764017571924601361769397183107292247336149559352869173310877715628514894721070766431527809066424449187533219486175605162604506447632615661504750423095483607007470916175468863820998812844320137593704569941827015486845242304204825109741394928173558148565514945655367626474234413278345413507547627034586366789932395239308164524607906997005145020745084291759196614305689745256847663718707934451857642747234816045319423602899553324544884551128821333194273415459698053013143980397406102836143892229817285942559596556755454347203914064026937071347540928561069905763648364560537896555572068068100649624780477398037889316436237224789446128534584848704924840249857494620014211001967839431110326808471506841406221764611577990360399108834028726578430330023567345148958749244537261078590971046780215856197713443622615469812156467046630350789499741269081561289962489099445668386484951745967851433793976435321129880339100157779280044009634135599367455200291915394147094934460211478717028897091391078317962731215054398795087203301333566315417004770284359928421961689160396013526513252263472616091538934008276559691142749202582004679020896147060953578186057477128856834517855752574717243202213716100494697679696656055849650260100528316287826851111063576093878546671296354220170372815731066300223209089109193997814535091514899328039436751294853894687362998564249299755793369026742317209876271426228904783035753065367096448669051555299723599879648539300036973519361660787778708915396436933744673310099051025981678611133079407098553175160248053924743718123497819215568506930314307906860241148573600118297643108222109060829341663841600642682114248107044114675427203060343418608142756081593981086212257289902837580145606484602554273788516524882384654439431795801082046349317108603301141002318495066326937888737451903033821787410571438141303111351328204845462789595380262389267791013869980264469132769647540503012723245007076406881915932906354855480011801414239916025072142678913004199483069627487752587990628905439384341821846516277885343258053860238595301808332002538934107980901141642549901845409543199726832393599428800628751303588626539536320644394018575248642218315846360209168302540716535039282107339363181392266940454761327050590743075457519451221332667090586982261865567833938530867542439222932259844911877433940826923700707674109578371009900110527460047674981362202975054574240561007931888870613596923419124016960085280088322078882506558217934867790615659158726304651180975242286164969404755325252161558275629709716448358917430075355858932942716468710432750603545142909595935814802071784508777924048298259320102112425110918007209477218966242460740516251288126694860277013636270217680928156334881284755574838755269677623769778104990882223478287894112104679588022396485990953880400881564558324464715552021359166401588593643056577173985699558953835595120489295981718939570742247477640850305260765133711157851954167454811293994874396755099910325470978361019767871638382590417791969070371548374497916794549459588603271880047450846108204132279001906646717762301940951911165920085623687494135097134656679589995214609168408016752915124365121055284902309381451891026418933284529907586639264415970487979466868294642278718737743300642206275180885607792450540649300429728626244858264575473236038322966467649055962779137275815886096808087725891157410548358432628001615920411245788032037521644886677376102913784648681241767538632898307848078501059705182803611709991585280707688222751775409844667302507150868391028462062877820921940644097841993287201844815537290236416018207230002608271939654899539739875754721555038129146065423453869449508333140759677203976204535788389172036661727753254259685849408414516843709061325630347022833302461745676084159581358493211255063962494716133041687332623075251353383160138529801290432123732114370334586897443461584802855281775883147580562806631220124477590686911346773220204161237448254553935352061756004039475819910698051575093404089412268494732621520420168305201453263907505687933525307229095772713474021808331241570332804285841893923499483465763087490648645400643876063358288028031893044299630149113826843513462741729992492103835944162684719320451270431772418447960340486938147554153421933816656349255318373909848287887705969351918282693379289425365763945938402876662799257660425260577594359989154053730738101725247299579883146620798671600830622008245289125159556740535781375641019179205351151919002872016764088317186259500887738908862904289494545003416643877850457919080786329524645083411324830218561770149525463907125001195011363212489125483430020111704185363584444664393893959603987199906155483997703289728338738567130376932293191362211082154047149245597415098500185315756676963497247554828328187426302458183996536796582803761169005316904173658803314760666810011682865107135605581848767812744269269302299144794259180391646241371246788368906119271596968906088166586687850911237272271058347824522289792955533683423998942470573456493762153602795432597679908070023430666654839885694824651098896910355385259912129878371793492941161684890623595345548756067376289254913233110635280529042544348461180165406697128595759003950414182106689957961849236874716099033188471605026348234522009954062033912117147420575030244936216803365319360031070784373215333207920187957817624808381034407895183689439305313673267064504536109431562115135277917911875233372215339536108364625068356872402378673072397785973272323461674225522816703039451910876957647218079622627863882765644460177416500415884529089778141201965214575872928965939993119564527012574568987247002774045162780283746234497368374917073683984598459496089940168133837285514053793970919661368565690538334050775163426778904332347096691066394180254617859514075311252675510608694975502746049845119230949004182517357440701603569458557303869411447138418496973381324400715532739972842974886943313196167561485258581310509837038003857895740091651147611064598951852017218637649233029007282190942078292462738907642798237399594033193668071764235001289047014005540407348084443161179248408128933605976798918542303638576731766693520835622885462198937619742012417856086108276165710068968765691273994260400104659521474287033769260074297718061617849875690515029096159820375810158160675038972996889109084186447086655024060632345536944338885040891132340444156751131729695701302051596581544778162730185496091355998786697948422853730901853160380039004314994068962598155572968572804599115274626351358885769470802583743053677616529518560941870739894155372625029418914049938631428808148942529599222366133172980227527321606058798476695154559405201553034093261478216990495569494497130631423952170521475871031732789078428244507011096631839521942919446931757173643515419564210955410785817063276256533162231421558873558788799586345786706869163314974341450015549601997331781693507687583321928299345901923198384090620217075826807763596702241277268810161494160348010583396281479612983715307697729996595011989599001282123438301486653965497350150314402842936912821764947486772125550383842343246539423496406267065990232255134806996719982884197802033206643093448423229920493933466028644392437098439713647479050026277980202936651985511923233148625508055077004740106376759309969159853002392277558461283335821941796471642208660062693201541867988587589696189902416954708849488858862305408278101310707877488359079804694820002914004360982674904001723214531714844889564985793120232760948755469666645180701225377155980624395144159406278639643862990453527874582740892350192743414730995568119963361415289268442784521825299027582051754576755454171070118952338870723912283992479180118066083253355000413800640877433176145147586882593092761555633425544884746041081718235007571146231466847690068720472592978809384980065878545333039139701221269665164396788077415505249111030708388205999059951518461666975998413999262827171309996180459349689290084422761339318752592293752279905674600494922285259786797086508102612779230236865273373177170800683237490712184797778916129659917111918949766545213508372665829184024729088804358092457921653976464969303650243710834850639098746589965811845800706420041556399122318152758650367689808414265431967000467510209075865686334339602109767557907085989896139363128969392983570605790690277400335070673109112873768298729515097552828048643868535161347094172956551068914017365294520945234753410190097934252051172795668653381771811978611510978874471529365039431873658193404700529416090589913116110928515305459012263356251555730854049077142283178487240969263855632646637085954168699056145901170533122754438572975644506168471277881786811555201692190380638862036956973745833481372513340216391641014504469004717269088258354554274579333991014737060279812118762142135783213504429912188597847281564214776156955861606543654827958055872849132985718945155949629088819806667237600067891020905613888174773908121561271668276270513193564724141586703927651380083573984848342264730653691582691437701057104321667030817740229837036558105476303909905635359883514679725433826744131353474718339389602785837099464972403305291518698775514303353350382920871293885757834068686632743735486046980935362013636842617600246915338749154444334092917428437578327912127023323893374506801420591307112608688295302379601851824059119748629576057801357923060010941075314281564987936963700277240638686662131229296322629872991058082739098221901008088718959384504015828118152659203548705389484098129162141288314950035219293114601027781791416440838331225577478612597460229609955130226866453678393042050469931884405954006668725179178378050120178356993852563070549562845570227804484781345490793351222354493541703492707021107582655598468082840958847058804671180752181670325570408893228383096404729297648513803005448761899822473115526601889191322331440057395783340167709464724469149391430631360067349995868251815109840272487884775617171750117965233073974609543863727934555362569928164073724606324747948902978048161566571412292915872445937712631029794459605903387632666710156245129562083194160455800330209956530125431881180098705190347122620714330715605894054502981015322607441753212286028576664319985977348845521161800826374026429511775353668792259211378388608874853613994086068894283571360886138161855536662248460256137623120745879317154312744938020926509006228851839509406495709475021947081078430272657652071307657080336043711461485203894769581742217742499986587851627733974630645486655296681980681545537504694220232608976130573125160658830658956818424768683473011166100711665668063077019687632490497993614195345758943477069422772743550743280390558790688493900827890137995322895969076203009006340564106215116525081471575663329734418869348840680371887300551168059623618011763093748110981643016222586659276490998147771617442256756972413811837313927601512896758074678821256078832867239495149520151009101766547641899494322383905237229099872706768086256747283129787592599968993980048543378907543368014422613857462820461545189572873119830003182390093036400258363274354059691143472212406625484515387050426000826485271568946681382569104640988228621525217816384968640623327090585568926544435511314571975593669961150379313937001469337646065489178089106859732005536399036067911504638462534539346881016864236619962686644128560501495494332369376031179356381528376985734839521919771184532764647943671136808143431198183959162719418468057392050261040133054853968628789484671106589859798593423438506366635337219946305986794595764873454146763557073933201536117425956098899014908149348785180123477766840211931994720738200904418069391413914684479586746469332662262948349933791488335032111082213181174373765498746280872738599315470819309963515351910928653229959636759454088624114869733880914194913448454384665822634917932437346711053956526401152065313814384487887775668581913494874850765309893760099357222131823729325707083627709168824718659045462773890942506729513582696946298793659228476112171311890969021104248304984101758223639476080994503172576725145334171011291342295825459440180756320318333827114426205377412243737916738395863799106229046926695023840023042105573122883532750472987122503374549692750412715952584212361715577681196942632967726802868181158690148433764625034568332057959129994244271513922881859045533608313418051364507579770182994110921543038538623873594975796145370578595946875346018348069742436835154191218212387046864254692093476982533513458955894628585972255455968966946643752637297287656263033088755536249332490572101964109120053688906659608000928063824244734267710655605177795497213766849578772895479675715400040619673462550031716154960004956567224201388268963106689362340059460884656699080649288504103137433672533502680305847851000336016783415523919256232068134927392671227346009467913646238160739460257513002354553930648157087614783805325731047201327815467839223948358663828033972269878873065027803637038692500902490505884562428463698062274798913007234924467774226148078247831893208325150868304232923484389481740053493705397973103265526196649009419878049278180069211614734168217488322968246254688450801498018710671243022201822272269995876673120952668367975290392450487302736586423730672558992333454252946610396086527826741212594725719869802783606137046253408554134042824681648127445667396054733834197679679781912995503886403234858833615004712492542454156488782511670871699402472878189858684463181454644298072657435261255435654988550136410316104305737577059001828951764225093835224002242298990494003786641857610548962122680214775185854685651854671306468152068728512494133756253801020414741215231860342839174331029738077337391244874660889708019984458691741828773830455533747264255650221226594823725778555907625189527732574234711257390507161285360968103276026101428887174897205323277630264855868712930908136604921551077955565361458368268351012212225285018055703935080395328765123282151346904625078936153756652077585406751629601557952804108074780014077529907470664835855989999513495112811705552240372583934342829692059174533801562115516497468585426372774960174256754216032052292928796273674820157450610916089077798438049723945459007699243937273878713210107957860976343637892932672969743399104687389731059022698386608116452458414513177570150422135828735969576040578199188823285297617877883129781811725225805066452827204037898779113329474353458042105677957166977497303572802638657609197695175244093589872031284036116916864852376502182023785747145678336312692269260943154994285421095515834479596922312920532106856969582100969315607680432177407784404283867661948801574839484397601074370163072361724997627729969405445694119397867760584705456717508868703337146732279221190764562680400713962911158488335479942257811579671386048917564794510531024664331846739151838616959573572034130322471081431368679749055147775156621633256857475775208731645211619356113362593033646517863233992251518835198866199342459198180453777707367072730367344081374937756134251178784345087892423758567680659052038264431608962491411446889206294006986342632351455133399869648853782321337116075375778051461745321650527672469684166011742099612145860449612564977616707571939000263157896119586406350120548321565363596143767177069991590913840186742333151358048109074813195952504120055281374257815062200335310126645976659406577055530956217817423130868823745464565562847445664220129818981368107535014514215058649437971756361603763328434289103950968454945610442748594694652252466378463843417878415454803276941471953544429412327106127010895951611574289093995658547935744059558939310854368799634351379764050232811485670318993197047541910393999046479025860453215360738881937397034926467938153356048162114784298676610456920452015373007729317871496704883887423322358342520626219621193855974743165598594127805186675325953852370625345952611786197969808048186886526137932743140803123289381490174097425884346382000784090976215868016103972556505323064179783831823278006696039292243489899753699821128199693005399564776327281676486029729597234336076804736300955285740829276718294105738583518375122669819405769311540003158662597534045806207385935826561998625016686942031760678734257170020007996452012314063804847861140302786027788832578650453133278036789615938320061934948515198371607739375524912654252069011107061942507748964278699918565562290351744145179295921064593559233768248174297714648144077256867684223836896795038963774412184823348277071222108073188428767267997830765306369295405128938061247616535620862450621978889038566289248419601371651401261757312456180357251916106996570915005580572688563984560770879581316334971171800318496013817909431114662586655549882020759520800787847747728248813066128331388312527168093261765577861577275080394953188745572997215465337028324949022528735633896218393339170871339962749081629650174381829154270463539142852450530883359833179906576546813492057952357163534058188851547724129083123787887365558399591773609452193174919721007172758786189301375196419336425654661457500032288411740797927512112449764027619429527750853873498907931925029969654426112214893828231816572647535146576744909672348583003724208395177089940866681945414813388257750073300310353558717701776642394371911962493465968549921130646602377350319557930143185551955155868108206789162032294100556882763529454066206485695199823775706107070063186213834328430609252326844326488543700175356881800513836814192615919116921476163301215262343169047482720855142822466782473706919733190231305883501542414027652192721999085945592142101675150151330474727395241811646571942138078592325353142648800294296152784623679268933217046368080756469349677274405060597903414347118723570454487890688436605175401793502271070268451172187494195208382925946675968617317327165344834203478406012332335142018160231472608335987308726783138373275977693331682959617531316182051302912836228274181493823565589665122271562769564590988481893178474805489469551855330258282201381109639792695907573072190222310013493902569850723111828822430333983002993382415728966358817148789436261612703230491796940000694200519236943297027550854195209990384009728377650087714615075415792242201652574982222902492361103580190650981741696015529091311985629459616034394006724431824123000555813164415166850221028320985705364698709832454987240255336978366247293088501671860493810282664338393856041070091769107716600429969072712314383464789664251815736981363681446292071801114797686955152079906989974483457718720217901149323394847988525045723689868968543363726164314545636537488039123034635378105945475826937844435612860868598253560124843056160242667554587656870144147709302091914312392428072266088646999181320329213368738700437846248343260120550998303696545135219049924666800480277103868329080285084818058523641554802157195105475161232453851458348747122574741248477822104038437611833226804135307925898663928674062104213257191282258250890002937298756942417551400045911359021634755478063714568788812525827364575369611858668190058169245109140944570371903988943692634098731270565029335162505252940493646568966063660631322224715748320988703572196775440024754066603179157608312603685776663267002584208683345842249758943579102902483014490897518633336763958668381097487311588317060083811223614468275498877241416729642146958356194721596193173070665972335017777658843678221546483321327805082292196921520540350124769635590886638813117899732850953217188275628798387567070825488582068623922973025609957270438213518756041602355720627404199047944557866741244646266168230265182698133173555205714099610238882320096431827305440844762014463185605787050548088580653397272659004053998509704702967240882754268846804565296844403734911973002903962168922338287944971564160865778643136172155273446220870422452974864137176854579767769901299436773850796782499936110917706716475839263057828472078500311298958948773579365017314674822136109811061569987510308642763727028969002514855847083693882772709252765939884352956152171790485550921222599040908130520467070542168543795135055200379416222178519822314038821048065329519373267373075713538897977914095948940362719750861199189558416002157992056968211047600337994516878581512727722478323152030716184162466568041219830461800482091008299067460675536662596438163195182792285075572418372455362771865284077801700179439997375147048858886980435169077972862938650747173491153989004261613799639936337800105161447072738378997016127234299137117039741945345175539429083518015800872666250226276948606317384259608083853036478986108398940355992440732042353790258871107959421604119297945428767954211419736687559599514150846366573146438793896350893663748534596626359427448743629597064521446823772613493825873492838863970011858714231544662351913721470120484428485350397784065272550789187071860750396932679006551704854879286189127494732648693236191692390718217978639207412687816613601133018451684891649712702640265334721242668018112271012354895122116069075550953224918066003251142688977649835064303772291250726712005953610621508172867940305456176819568925092737020590877240549763853656160862354148707920981005093465649687517602552922867699371260064833339816661983975505659696725311665992096096998062394096255395322786922766081565490963757067747074402527011143129389513848140024118442700596193400884009076447219775069904246809830620684804998135878675305060279299289245395418026420522061238659317676080463078460513535613059718064511020223654163293900509649875988104073530344103017137031643109249568953512655135580286408318943458232870869986922959187976487275883595144416564685846665603146386278840254343121854492037951221215096535658746263643875910417000629012084008908356293454076696913240655831253866217025237916650789054484199216296583760821039754665376856917638417788313053861142071476243302715473347645928010150213670184157972818113007844189926021681196111774332796548076999510493174431001360985625516575837571458318657417939192498876692980281255124065741025503759703682367785920833693209563009192170213665144849886306810618757874647210153746729374325247160706874262221963534124876623869744243682604640994453956431088896319553951547509884703379239160075379900728748425717133527249145402157850613754703398763226630614083931554015009306023624093669717120388025654694932540073302024052905890993282391882725263821126541219510904889563123068234583590002600649637672575028518652725810871794419527183022763090338421761803939190774454394035706446280142141515340482904382460823479669662222627573217658095125106072326104817292102430224165203878159705065709585267378142330816789032471891839440037241308898700376956788674322245996385497601382031268375500486632168276999906321813897875580360373845826809636125614867706279680835766564404522010066265478536777746070422001888531232767835837561506414183140535897230694563536940734626583030525884470535687165583263549039763011079975794987985273941162102428556324448439205584349489321668979293257614313687174521311242549488353190659959312722081972514434486355716463869868141808200588916988489500076747075440312266541059034731258190340584046577067730024813188826731737211875537820203587266640206064610536369872284176463596808232215216013357940815279015545082441045377074548731972002682309242655670168397668182015117006148874138381062648327696331172605700347643843375148741561818852443896479205258427814069090058509610596484757224909222598101471798117089877889870855975531544749801677596510620603229116999656911984484778355053191386822083189321958493692599042876294408283480178145248911888009760957233687422125626814028955112649644462065768097592923672671395009138254015408805123344570659340436009621363076302039869061466702728558240010964252260291304025291988463801224479696676633345793454534605193907878778566381549009117752774329590048022634721126703060402996501927176052858373027476163326084459523327852106500301232712329618317465578812514028377904736920125784342876920899391134958929933638152968391858350598056958887559869794856685519323654860054981580813308854665789221710507625779914126352220509365763391069548428391071399872524757804725438087092141618236210110026655319359171270657027692812359555372396401626574797381972916361225180860130794913407774302683637248802546582455611489553895740975176463260755568848478650781775646683718578257301966771868055062401525208959382120969664255431043239314654885590155384974848387349039382412176015603547788095741115103472782834999498186744152811958279257139264989822684978710175555842361173447703950505321783557463400626006084565603367559273974484165468196264342386520789391416115721356147970138808761170626978736568086127030151965073268187696221899726691855845799359170032430184214051966216287897762165831441316598300614825604090345068739493072550552558124864281618637945990179079689069357883716077463268558135381995580671491463782188290212879403780396848548856542967695201518019305878806801466219698389848552492133963935250618268435598479737055306385579239442393101157622391214797029332004410845291153115866208745188977969836387797614122590051245173765301308270014578093466149891637772944359143671061105792075177732992930874147287897074817503276013033680878600699008981234096175864408571579572121082737616778142069067296549639250074008193262101585325058232236819556852155266167570666693785226901676731119480715299378589604080180518204407625051605863272046640184841174145409596785809894516859542471960079539485267622913817151906581063568667401068071357538776532928382563844121928131896530624437173904218166844119807407836708546527129722215416453555495907139672010508928300080615237704801008094724136800681722716964855304326654271676638430124051497268608413490410883093420889366151666372048228056383866685965700224449143176447345125568823912292481185295641212395260234991252786205500684508226971684991730395438288486009358943112587539947245359313514192365579598139486639404531966935620951747584026904394776202310478616132651371521730565990848106311275558317452706710303503886882584934363830911996307332198701752978596002555017003621209116121403935428354396437480088955553462338929006253006563024312506202629948464596294729665475283123819969907327232873993254878147028138946268512637322899606049613718896616253639040231936749421454479373198470378743362845490927548716402094225456472617543837033985025246072780705751029029640370139954306579136103172548009656368762227466179321237844435123402526986598362494717792828046103103423264016704514424264906026685999037546810503459671800141858414052587225219906920500356059738732701796545033190098203456437011632966600380151407540988854278170035863653743496154469725012300206904312722993107316519267512025628471959033308246700360418014466877374839668247241962264000292622205868463297149235091370605104286239373200388157102911170217765678594568265963796730546901966152649729435121374969231749480536405129363031600867775118789972428642654658493175032371452827865318772945277722419393135190628710794749393820671079198418059973282864089428146770694183427065490911147371474038574860123777367124123874472304021961560393037877023037774627149708240542520724899056284994916201085653500645019476738744810747600504332608472343034114315497191601414285165056819152079579050233646366433498046339834081529024349949606467294210470380124539973224814789588436848045134898983067863582336286782474654105999441097498409403739347982773150226290046534344806893613000734130459198059467356660513052654013189222707014476302840826898046129438141246593298927096589291282384500075145954362047772620027502925026012707375245372167920622026695351602771997873396181694520066679707554207551760028610671012106713312377909945588545456895007823732995025620675820832950596966856405781580707702839002384426492098885467800523607837674864773237743925605737030057863156547876968977819819417218909058440811719344161589665472749423008780998602942325376241566039512585425669633257136188670331080102299679977004712492178303204260788496290007183530465841951746357869715176053414467568947113546527664460404577314595030096693281693222768970227720073672545839730191984890510668518919582629889564980804495833416919734524778814470743558199010774075034140882974698871561174432086271600567276723054944051190212369677428901229932538600920507952382918241210171167018042459009431481136665517476109818035730288196951064826899891112232254920998236975612072057841949170570111896937823474324322353357379415667113774175961655878490736197416452479696905002574382839197821491237312447407951855085638995824797451331640188048619302935983499783521612396186974141917295169410232618456651181720970203044625335225920418180666158767649941410260687369724004154733540561498754425669545531521619831232620030231022420527982262858295018207893381619057475912054434909079600016519515410204996285948140940082324090177614472481646305728176670275478958414618802134970219682871860410500385810416660733576641643051333255902529485381534728543017552199534640424620807078314665917397256466069505792000616033825220923818590840057263352501942101012902307903179502509704331407009788089951383076610365471532700334821597103191135505738593570967809319460054954047630469791573775334585744307614183926291754628018317210923004128503854230145601858341787634265507678654286266523717262980969534596947278294864575687160760388040170330527569306992036919532177724558433294606166211388918631358462850006013325155363281089920260998046768969581745277670588290890676216886634519794304281374304360736128105660034370333951238786252950086248448887509160085574881832133521983847938660775228261641664094452103001423842880303969027127921539482950578733324313527618504660335906593106762393971762501223214214617431979799482648827859901009903200490278278684795243755336529982928843169085330822564159677635320736056441493065291302508126457613723924214237477078925562122386809598724706106406694122089864591753652370088362700819412481570510971812400524155484939575388560649403429082718806562863694997409433944703452175108635376140459566275772672521585211846439920097429838904298925339613448630228857580837859313344808809623746255305639156614889052335164533186483526064513763175710432795996831279978895286665961526379590949769672376767169190448201072051341034062122473350366438882883839851887694450409341120995042850082170233780382904156207949296779787664026777202396807220091067886078509903109010699342383955556550939547619437452969416189157739681342869997452084859188547432445012131178097786973933602766986451046327763878583615955173529972197028934674692857463186794831157014579548990289212406342328270006205328819196729946711106401975697689788049789248504846021788184908742376846368621679451014967913218902150379456623649699110347676596802302238127828407565740322646135808912569509849514553908935556541047054465172963302960191130395399272686164227759798198541468403043836549884218322260878888253967316309625457751929634623027882921275406828745047045105405438466888119662980864996871878614151859024445933090800495986578041116570822304722489767573235344786230271355372263708231384304007901031147735571707843194124762212458884158954663560700466453760585981611491259162886096393712775182017014243026871316844320629454566439797766265897519995604281687547099427602309353740540286191343389866688218734490504353392834921831106139947120461188282736224290176198021192515043962945757937730815859644937082156310788948810681051762844220870773768494112410549389953519988425434509970606119763334783465255790175678750676349466084239191690009260873992157077643510987867035147207623555650340741307859916237742625984800264146123270764793460747516718376708709417278807078765047570372903600928369810695515798342254898213743359292134966671773493387196717918343654886661912988789147928343268889718301266494330385410776951719414042140922710791067256000086726138041480141354482605321044137737031484477483394796656170269913690566100358448396752059734582039427428665356787472885953923965169233151555509896937400592774939609290164033965789967775564775129687241514283699483533298440264247067326502093391672283579668336766226563172771802118888943685153469763014565681145383956429480555652537274369391281456407986027162790314279648745728987531552910958734826051812368010322744222224608242921373183939932082460474641419291106048345483607604158087593615884178803368564024964103848739026800777097655349746540414025833618575005053705471112788034185893547474529593406446509824764974295539560755401008079670025290789230452643754629200292991302389302255009651471512262748868824885759037517610040187355316780909188034897483102945592590784813373488676494532600457225951650766167608204943700421515942761717879529694176098863035462768229686369519174031782506378846976419177808908856864639692616847088098556434107405780009542434733578643281065286520045213637671874606125341993979738755303716815170382213819657864932303175988845185782648624987926587061384448768775290737298239221423536503560103346902541453557717509998205343755589085203107634101165514552851160748855751203547391174147270586950015182676824993820645180669935834705043156821925303482396064683148603980117086268125544959030513963606958778717245763196541100290001989457875842712564765754450829678043497550668033622279403715904676708425245484582117103105057337521062597252663735494088418538285226628813113933817609318263417644667558931939031186181171659431935661448906718121966260522345209914623018197639893110631498460589931886401682529359087480641935225363547594079382129470017704222919158758972000951295768871619505656133019362407102838316059175417907408413168918796086786277403928765079538828596454849614881867530912476374270726357737896062443329674425580502523424320132200289716964525502905181324185098883434255961716013702980318523738074603791165079019120275545526107621931339490027452331757534023816550620965959607286520399503616362816220053174478912585605880662027712542933658861385344499790010116016592970857766139054802042086163829377139858368451865198590567785274636348363725629222344990404713729731375091812409562665407422890615145816733788824104812293674772947426086917587628516103000262646173545888914076188065541032742453198680026112156109032727126108286548529632023824145022319782315225994550171463388452986771117398796765735572400673728837767028842869544810553573876445692627573866484599962817720479939652537977034054931936008993354272581458039281242428263841237951867126603029542181812964904727007330604339965662778533839241287147366373713439781277221508230520048312003720356459080345142561727588325286024509410121589629452407422491094807269731454229358746354817405977979931238382631429937580834200069234833104167286149809766318752517090832970326745781908658092954778303557187080443833126644096359968513336073178985990381458739085482478139489149815383544265188221725904483579581208405442871597871167087726038868776388433886917822052820886966470177623512511831970317959407808115647346877962366440520800693190885400419495827777784002635593636588971071140361061370293078321735820446397765164838246772182163073045444969539684207949039611033571371254361433461634857792810029345012723463506172306621099950978007259876483991670302237649426279195568526717391750338766524687667263066343401919932339193210580092792879962754274817568966810801520017241867760162925002098766119102778193750813030467150228604554168503410131105622149800788437195763154522550819100757717264102034759220692374543265836488550238475589019074010009748718411716979520762953876878707053864484089741553644944489866284127700139789553923306085110058144386868976743544891827521110457915466357596779397116402471701336192600293923432744833844182551927299784894794710567488070741209697848092069148812047936872932157453652848089631018283453672382075176751534825640979762589443126430209418290607259133096100408033070248336896936457898694571597006115581038847825068953335390448031178397695228554264054132874271285376998314676324443563066280053575971287998807844773367992190698189379582056004061505861175928202966760636802944984319992587018315462179321018202116172674014503912145200259533372918299556680733788081583309721889724171160358730992622546217212812678032553753656419708093566397688710941325545378305156092386910657636315113051753348446826006323886899606797619226879557788842600552220013448762386957174069761562192729666885995697566516118719785742238068460718977933905890545122037954233238233507147040944966833567924968126002914655949051794251470886498437956291893740638830895223476960479153084205711524826963005934463164697619184551776892879451179633107483341767441362673592665876467060453202878148289614297620912912454805625111135972395712478032494185257890660868464039584316982896966979995786521109898759439741187077156188605503238069078205887860926554068071285489140584213280220585401151662907738191117132951057298830903370920936305538072868809160140865019552481013038670890047320367301123457149165328256370928642591893163920884076923733334805303763432321658104292778395045966314303267697843259925338789480809865783604480717190057598623727607311142363704582038937517524958656733314100941372842066633666729030745301570616450260572104222893299496727696839530907318943524339842743431387222766458277040852915302946246650827947263881405167403582216048476846099334275023572816829828138330486418415365808980696706944273366452587491968025074244349993043508327567077491396713275705752420742507103526728769021402263878202577215230797216011619228556817407548442899892391512774614949341950974174505096773197419495520046947764491238698865329448386114916140594415841256835687913411628887694754316915025974251917381495405312830820333482583672598769857011943872256576288242387553794629084923416339516814136341244278228157855412696442822050799284816860729524854121810487965717783808080327501604453408264121516017651831420179037514867989707291241726535427048109316499358124148091052237280985168925352416239724824591577489453588458112068509497710018772347135666120599256198018299584646168755636086726454619881297220228416866965564450407073284852370101135621981636197303924763865422429276299723354327199374674776623910000783169866840211161138580264711980215836553849857532271827964044989567472133996912173937426304939184914466436766610718294794461882794287640760331959984221748840348712338855605141964408235552375587969683969553377669186202018924011963036844871762585256316942827221863740849678682540268194619142374113402545995372357223989231803267504885657218750107784052252924323670365939735829465923751811248675973483366060366113984329795526476204745778554910049261012749074199157773943022048034266342073035282967997485026918563510469889119705426211898174627535804357010081241623449055460505821115019519230689529327074548603293965886521251969652939815876267388985452876896010453434180888067483756485569608368437238272905654390532701604692460016420003445342755938531383336683534797951441156671837006481456023969592337454161109813193847536460635971979140350119900416070246262680617706840778686079580700252712792477646561983853555803718742628202025801560519582504433911226431537574261653806085751274824272847314012499687198013150356529341473765238647635719930494166455406362931131976582405830064907223767844633793958547820493956807773659116329784081318431902861976870165694421672079370920967571367361006518272315569731521492249928387582666298373763573323502774502884345207122864829436846544555499398092706228802776631756588633320475688797562005663691831401613441040709243127529581039538195175686665229438377122993208798909544278536068821451315969716285968692411076347763859608550417864070600491081373820289803196177076173632465790025538036761858800394298035236460171862824092028561428406322430498798573124393057377619622964764714670498086215628003424885707244358582679880239748980445529468021805870847646838325924306362606066604420032542742471350006466098458800256457612362310291668418250648163463785169048308120998506376995371565289148651350111660900668227175954096347017554000333266219606724753482209384965537708748067567910864317454460447029805415024761234190219874382993550856166333278174952063847956036920698437120121822063758351666050970564241260345336456655167432742438525676898382830481686311571193740375273818153777506844408155953052903868750306762308863007211880891035149938469666715470125651379192170746959226096285985152907132534740930704298298281721472483444876418946172773990147611194432723388606215893924037876498250426177908984779569487914699328637921434040074251895333056787827587223786926731009294487087456803727866040506785692366525937901838053486413890544296242757593047162308000305419775243600429827677478734162842078579821847658405841071481094703425008142877555419056259166857302929715509150438183853706775781325431539550877854963019927307005915087817412186567205789259817319503914225300756923308232071114268222021389903779244347469392519855630519085348939251336224440259677988016398544606142510899677333519973047076465641686872775867635425212569610445864951531592396570464022701275148759896956154078671252769890005311241059027910805618485476038711593909939370420818177042287930986914833344064442324888489963803631686299833215091922691084990294934085665382174269010040264449573788857079782667117477370983205654232507562598954438534442523078542271030453383413728539400833491368620224139804339029463679376346510473971255351396094845054562412082310805353878654327092049090416741551054844559904688784159435232785347971385863449684556849024108754764955530318791251899435020868830638641705459292468262082047419593226141124991071274345799479265034634380752816874919786811131953976900842223475911576978668514455172495383414486654473013584316001787897803255412071839025999144396561850928193123174086420766589258640713336137937098908617941835847695105118995996848289631206770173204122918140878428456336266725318349164371962814553498352070968469046511084911404268822208532896552235286227217615266260021991724815876400387122547153764099617526218582037573505238314924738691560805864395610044270680789223827211556622757492745913000367152956745133149152365818703518275643159260297790440538033198658097680623925515043312797343187631266718279555642449632927977257521801068369298718805458659410429344443941931981233995352928316267103245392033241780051989422515600488673685717830253798131720073837212503115433513230774606297332902737041027402240998972344108982467891030405671221943880495974726053390633729401149298688152057744545283926492494124743538572321790856266397994761704034359343590750786566947354879289351223612113664723419602855041620573866103960943097220063848819401666930827952676532496592517971389165509487558718884286431669656583581235753453634557083043250773125192956944567830813307356981462614670462639448384746679822199707105437460342720837391471284700502860237073233602245274281434038992654603446314351809695038896852986507395503540025914313205964649432011653504372488993215733605865135298519385858420248285636071319026986097369252369687081340041875281741111198719368110659653524418365990401149698123369239814415383074638682808407500816484196020739314862030759813793244736815762925340561364221508758061408282911855783488328779580602953000687843046369127809423006356649697594801823934004499944843106433617830036276527824658964631633970358489412014559510860550309094152467471836239701250446841996352062099972528978160678816665276120698661376900011620697362256871614764882763694803187663521227664136146311995347599298089190175023524177083970290248982323530652947556773071439353147462924609549127949906642134815213423812409795239330348367914832818756714953902463033256745687784064840493444754893027532718770042176445680446675116188264163815056248493440684535978103309658290356864502771229432395541842135707378662509214454959595667395085678988322519139964475770695405109641140939566750526767155178141417259021397304076462608578993439903114306785180550286221779405812792920288103798059651453749818330030496813724438855219648896549944388334331494485128943712190306401225368668039359586354690660982243393475964634598046291190355734979079642556047922857643261360173863945576152878747545804500877979073885298047766664927559141831294788168645128136077352211025211261788239530463226258166832068730850428238288318346391379028633036767853777008761572550746807694204285774283386914382866268221003643406236814606237226710828973987327829691153396479825351831592193899871286998082347507105604106371327875020813585322329438572801380895657411311388292325313941500049955128677420067304699907740896059564309657383308974174733489431399886018971023605115601009027423419448272308852993201492228138192401443408379558619396271980365544906959021734066524926882565398401393791479738239497970086533073638554658644646219141432185292472343647416077206491834059634543265878550000036133765381892578221540714615562700822919422476466944121783466691450786850711899608050586715029024331532610772718989284283908125336744637782947839412072712277532620153160354063999617807441483326932523347245264146870706168482239218903812651460695358912929593393412723048991950509039144436316938320644223512480098249070623436897911724209866440878949250025364539404401524720972175470759814707777218345173049074390725883005636177416409404900167711500763209031720389612702463222943114550704150032603582719019183816614947545011669825309593767440036003554348292074324746552177286448168633449098911942500620427269667184427096428520454734478059553447079744982737369279948656838162915088798557756758794909066047864770714028790896243859108692119614319965606092942649644214237054132042562052597421542037364345016628039830730378434196941570331203706963379574098049549560505676243649981446342238385712482681969804896086805275686407379151150189523161883225343551195960150618069613994823500897513679595566381640286643109917721036137278898187206743666338808272523427793292586256847939737440994757595648605637171406254712414218629967857707620111826913904821786532585839631675449337970386287441941105235633773064631600006725159502537357822929593964196483857412251384995688717597427298812838306338967613391138827709206227937974701125391300450304012205305222306011610867476325156917848075831485512957828841236293670080444450885286040911460827725670753913700893167821320442269995581615925932419624498342002330273291286850153809023859966150378171234623969293929199198687474082154935922574426136926018360006314409774990382980834706872789374381430201126537341884624949344242215918289465190606950234058624670998826231958163328389350481970544476065789423713854190540145360431061848574017298619680978396713605261584255481741156016723245099713086260996528693015925709725499831295971844821266391903169325910152025055187857029888026548426403194216621798461606786088950318389130366446501950080059635446871297687040257185948470646064320002667269749292000444946827359571290846132800357253525162160113614427440278758334681783380814335276519106286302180072953384798521220032329855653008185621038893001597260837597796620445571004550578277795375413211804344861120910512741220173955386186443914854126176806365097529614341193923192941974883767474811914569910849922215253829201861809773205941068048994997364103864745825425434953785268407687725554912316141408073313846286735900162031988070400477232512899646942590598464686303272146302966759648816408310853538368029823610831838833177830375759132502022182916070381164866103540623888532010703367671665367724822035535733180190072099796644382496283874116988063964187557648110345585755294770871055101973595452037665412154378276069236343391907777723188324708673033864487459648507867243238203175261374112771583407670190075738962296098352336815151970123788379875199616988400239596853314086581737723796005285442403134619750208629379557430732967182692180315596777787872977194833942476726197548782591663758521927922385521783967964647836528327192975649791624868955044372446859002238112035137828694989840054209469516975618924320841370692143374882895498821392323964683778233751235091860675708123375654283337326554858289563604253606448632633516921679900856974158588255472963466922942025181838042249040561438419244304377536475058751258288708225882004757069706367480870929360154298843247379172048168853708225961598455057407233505381175850994435051751811808167709684139016013799782141644430833060229726102212473616252099089034418630896965730675037973388862580861928951803356291706586291795063420444112452773286859962654040246885867294748460506475696404886130128916245966494388105702707480760870430225874319548087840802948408761993565485937439319641288872251422319716987027098597197328085879744827148792493719230842354548348346611481154526456842758600537725270311472345973468349634597689915701496037981369274579176661797291215609805480712007793932021738627135090651227806482122189395690732342033631497876364319388388804406586043670424796403872740726204050393748734811140919138234166764551035866837716546421372672789647031225142853927958142897947168676696874069991995026627595116326977395638641807590848523887506250006970873066694534726654156374013312886850166741968831026253422609233197007770059160200171047752663795350698771557068800195903269645849150704775672942472251139234686690591733165960985532084253520508131018025987436777885935123355975840806189485303259015790394726770526219687751643653891243369513335636876934209265650216181549185180078155119067972195047070574729526767444810791927616042407315477784778171611905157190777673357882722493876552499846154219486403071028503881668908077151876835145851640959694807764224823220080734042272263038269079350370247836203591208936216933402638662269112878115907581575595355551641694449376050703340134331351343798475465934696200526761103982440329548947715586515277664650328541122878131056130716274805738693081794875813794796875102278618833638440193664884925583836873950670096707848793442977715660466935880228702438924945898306958123126887997657802752353950562723628674168939177199378423646730165190890572241207935487921306743720474044390246444221682565794341909719876985448099680487354827521845261218435126799541002659031516341107877261758779425637808933780135728372878633878861350143118735281878217290483139048619020083328117188930388301282195604073718281106511575672673911451614921763604616281773135526303760451751196512387885165779201293722520995665554676052576967482776154977827151733093693535029709153851679405961637768021647993850089926167288774832538343671044681677891662307334411211615697686943277118849555633680895908940296789395716409365256039062685518468877827404279086915474728835206518665151221153490791167366893796836656079516772385093613662184403730892904830616828448285264958900421165492061472438438418046715966837155194179475245101813589897066853984194377636998823440561178203085699811187326026716102823842688782291293795732137622167145169679397862463565280897899654166531939885615391588955696218870304068793764972588201528050937638368651285644514972519617026707092325044692094382115590945074933523692658386540085563562862675179384310666313434817450648851657642001203849445858042253317325930193414232984074982969056792576591597724356407857381723256087989975674343249156726350655423797159472980155205796875180125978580294266937644041108540902592665407739106578487435089343992667975908684924551862240716346224679366813728297013585373174087556923266355878225607536189651685353419599417627444997739412135295529296062117995398611949733561892268376322036339026603455390824186497914291369535650907200442386738249307482979998500830999192573213537310789693959511140177213912803455135320745939601635366901830946853284440001848740438548613116708965420714026712125933167001448211805778757836914719778908204362956940928359050896321625441606691603396921165437943727235736387819432410394403850539638196835541450966143190120889346916268970747284549797909581024900781982428451367177074668027141863265381487932660886228031579830051289066096831395207065171683406609853835882854571227401026748292385126980112750026489854766879394181976597373818363274158761724912719802964958170901846366382501890307129089100987377085335908056574246426865213575514847484039610493753018333913153293092624817368559961024284762161143802233276531720481148801582942855150781438699262139139652701871793045425481150792590968785018361139183921675022938052289784123338920291346304887397758948196830671283666486470721317186060990818671107738294771934660538266872719524789000513573332037017378593412837733142445618801536462989439616489252366958752999668268356568483262420917069844261736798321716228425025993729197330388547697089741571757091197132356877035253954427180745562388147080549651168783284068180404491624211702068511206358446122574588798038028573285169830468062083584483843635220152710889741560972644267705942354653563277829539867700752133678051537043602442859739051289172135409568566991920379662477027929535162511027155402726889872739764651075231970935196188837307365206459974033630492220035637962408418671785534283379624522161454145769019479621612130641670104250079953976600974646502819015353199043996235471459877033453691574636174712653927648128224311634129701733550395326282294797701223621372363874186409108914812973872814358898435815618059901449357394885189933522843727343106898093506330663086070821413560704769073352939949930161592758666060071839861103925415300976287538745785361271838862932822493627403703796706866723152765864267119834382530535895473036537750466687172120573493447355676907176214638041321637828049048249790480607326554238404086295622968430164050734698546138540258859605185701374669113996272683941424391240476529345755439899462612262821471755683697401733277330605401163553454780540460763280693454655564691262110687234932574813382453488095021639483976039558610145450017237186670229671806922569957377743553535758087676240413494653678218733206222840859034998053978842794596397872068054030473831523092802885554832521060918041984443325438213781964773435703628330243856737372320862745709797771781219709631338799909012837529594925339665926763363645824144756608568303573194410191315761868488422608022388713126322714368151522369078574737734162490658758832709470830291523413685007822456050581573503835306830080324022757634147194201594661439119699383442752918726698982727349203876584933646683236989773282809127440412984338458036732862559115002685822429466135662555704630006615182615259006628299841590693200439477272911809240878494739393701381506385053697241503144338041712366094655354675663937730146206146948557352234416465502146559666634958583516374835054595825547522327197119058558963532358562423299154458100602384945540448182125766469597912502454128744711904959875852221193294182465283020514751406465128807485541904109802515575666013891326601844293444660706670137211842442205130383593274346049514223524503645808281077045755048536853068195429335496349676158802857318444066258880234432696566406170592020317074653881192118733102732335402340836045333844252457656318520541546200957040636257571559877894140859999054435330943403752461736784481347876010702178453178368319742804925649866003558074978481569615548575772885125618310167688007766847810099118512341849389154969808391574524888332777535477803293006447793966576683868377084522006401652857390674340509355702806125049875157394986111048853498220673255378490442912391700075610655045247057580464115108813316098385667504505461530489847868923967820166510974657104443015111599457173647752027018565565196062842059294410659250283158145787429866146369571949022096918099924384450417294630024041415808966289899089134411350579199084352748326235096502642715453535289268767639130442901772157328326731513567791932466689890946438264558364977402833035588974897116889987810427562287335632277382619475649532069953104449401935656956123147965276992609221491796577930450647358473664158104123104874256285051434279067500391708665448106714301888955744733455677612193378093734273843857823068160371500340748824728676250228559229115139737644238724778971518840656618929166699622792962723363874175643529669140263126636262457985558357058895855378055828382516606743837215929634279496608988123985453005861245407351015207781773619641346805573197114453032945965596915703686502825758489381994389761722371161576907504826694383761322608806854963561599947933056507770396784567919858889045093699585378386912279344708396717819108595521269768782012057059996060795549817084573614692327897756395401809363311969728769422921256134953312205258704490975122450458024060075560110357459560096991453038600712877129058630952917517600391878722904474019702240922575238119303526982127575041361110483379287182325353736617453299170508076788795624702337565840958695167506763802689091914913176910497480523849005626472947858679374210582225363702161424792126499763342825956134021787510099271618637883148505467260672905957021166323060770309775459153871511248758203949224491560582219763811459605905040710573251849034205331823318365401700583714612643982510599123576932251543843195049889282709155233078171555438034841450271659991806647488603172193561750396421552509364042200748442628036484631477944048908236039721018204761629547483440492258347403096060021275319914860374331319491706261588334419092152573208705329074278848747447622697463335091413884077665388144694637690055688449241039941082872433082069606254076245611472781169416684965651376910545631309056230211257305193971210670452220699228164928085409462584172812483204601560087798955899519260586869786850870662464948162307018745925220246385469786406698161266341336343598021392506443223215644455027320537133434679231607378658965774356391988192925645604207627503654526948538268329491124097445208606517922693132149171013063232189448946677276786430870489670213107580013083356803561030810039009956193111498632922375724945021427126893843187843095795983291823510965449299439620262021832885489285026399610252354283557896770578274280128567658799560724228287071086200788553775229967327474822809993865234176682900187653694268800529942000946237009357213893045746431607049286285001096882576788880055648915080554503909822298518278616280385084851471263637577902062227613500505283968393643042317610237194932854123948602070512975739186742758021143065304295776778614529810805321169961028208135726402416294097779440089787490373490163023191783550667024521401712204564830836198438512331323948821324336711276724266166008179358389313434581131425400158257344927280223961357120756481313502364158021717893768022516291087862476123570659384444469767067782903081542998435961727971438524007788303238173249536912804322768988126647462006931489245097338483899129706056912673270123474082046650890542768103663918843159307621630772876753252481920711968021844108840534513812737453190974831827053662491055482613342794564896755655205817049225603670754133475264558610257722607716174993120741745546859089483253196077360200135743733869806554073019751312675647465282014678425484522049248948189171617859685408449724161636872417395907570110466759733191691484985347469033201155662885039132014471892760590547951345627596383424660081011521000918962653078714700679536128794620719281899476547680573314760577140197043677753586178703422178756228052270643283847853755710957098779112288022878528393353092472374623649217465363061853694526972711113697430759180411569946387858451663906100983920732532073852731872955517066731077393746914874949317676902957044164371308463607569097581299189526769829831989627489652776777071517059841020137566306295805744175701300445616853105979557697371766443085603702309654281140847759153069074228760613986905865114415223544170246104223433751147891378825692924264059198868658559181864618373767585359319019059947425888373490278320669679362900020664532269927460767635848824175113030005611038798472697667034192662012622973467399861892246610076954302195668287388397784338281549310136701363633834095748182410564473504885193278209857425558692852438480476005601188856796977164028313037063218877459816251790011748482644574939579478432582035735241765602144145878665824602353244005064367243798862615127000385150792967234817300232915238606990474933254109099727507927933819172137964340299756161076654199502886617631468027798526022263575348619193014487916373755313807637966571226727158629134659807746450867415613287336954782111197735015948318207114286989841540597992389593249767267861770267827860364229210534949468922657510897508758677199880126371210797965520332496860623117886094401528475131524101099557325716348157143867667276561642037431559902328957573282432574572600878075245536182969771803124090060868980027029917438260866257811163703674603408472192932380541439146232198992924289350366507541874610134602837644954063646935943981603367084087492372261031209315044779991168102609436162653897361279138744191208726571253951053255127308103599572272851983620959769673980165053853906398399771267801052643544875832866906368729332613150898096589817953047082845489161041312131355220019775393692841495075456290108290730273717502203510946016533767661813631371567855618494911078164262259401505502228830101317372057115225935230409016096890676532201092934061682730697397174125304856403420084573073448336328318835930088811288725891787541930961032175391043475222916350761129151472126417665323106534837581013043135747429853890530297167297813163113494077251940517574239425154566876529860178696061354288284606733813234063984968896853786593620427500586086920975316541429828848927856094432583500723448058364663168724128928490039900933765439654408819044395808367802878537998086431304597490942367232460983007307208642722813372592050919481269413771911811587915030863522504558541637383234434625050905618015229801721488480471006638903671907319410379786012417283709763239403773607475444730420322034476953195580953891406028941686796871961525868816959296852345658637488382220399482126354901479078584894202854099901916067921947801497779479774684625134635396405821776411889065576222937333315883796092186003564610276596840397739560843536362014399483036423441597650640412464045529067015312689872007067623617393691583881931846190576647288691440478536563273912506664686805084104352821561287348256505806497137153274834932082225298126340624853559120913902303636325407868253594515191281665812366349592348107736985725355366160517437738010441976449640719389193879789351096499432482278303085383490980463071573485213312429122725237257776761575223556453802301103699681892370931410616108863611205943910280895022071342401836383727317325589021774337078392094308793749831958619605238680199484124870864106645374918873285189253683920639838029240109760624056406028439713072663449575920029164559525596509701470136285091137639069997406225027990289439884117348703178424101139253469142448185803132765292804608609797338804799064105297008152176398006823301210788068497165629248191112613036151849888842363341869192494654809998168346048726696870298266049547665961070575338175623090992915158256978582304346909533761131294724395428452650264002799580135113208459428556735946271569623792206015551327805021064919465930811805701328951952727791538606384308404544126525876977672836157986143313650119648929316965816953163138316916071253814553270748810663020200272455777313198210299706100085190148223877851429528972978310734417763507451672312335558075860210435971633138305107927991897992387164971729223316207619592370018896505549904233367682523606691388772687888976049887785064441638967906854928830534010879496738546516842903468788375884162242239137921456748793897444503800011533849332916748702012432180162587255853950229711204452886383631172350736169986339594085318375622257140616733773258174913803168864507857966748550366974908916035971680298317457009367720085612241187587750720042557575459086888014730658884545194761761030942388438106607137263466152989650566912974643392852065547247567676773091512124395401340396761290195337807707913644395078659843178220265751629715404262848205608529782043985789767626788359137290059664043603580891853697380612808961892778621039506274334422482285368614817393275600989077599870585569023265174242861365854240049423919859621641571910028410655872669477795954422491325342765243040672246584211740114715668543341201699300656571162728604165621623009597584030406296728282970483682547039120286115844100727836048064526908377678907595777462760282741578855113775833035749933032651836770798490731126485841456266070582021162548770970064763271247744618328013311171988432596966736840232547873140381690035693017549941946036485954131588945958490490784172289390311635007019890711209052066168692492293888848919616603097437936599512293884970479277967248673863179916162304278666803382339016370412283342243414666080368208558365400926257417913742706303593555300851656914900460846692987740200708265436786589062763897549737635367994281628944404608417254547875791138240852534251997639138555967086712303298581580542965432710145358795645853983800017611029675321099846553004941051653038491034171762785217233992532645012528007952281574203120625546834267611974135580689631253034672547266933426989082067197534937490006384622290097938858947958484360496153383939101077407857671883916238628423669473765693440642429671724229368047801438737796797981937799073035474225186836752987581111765073755011494039679151385667656884941161797183464482840837754269923138411010325171725799502178091307657393212401999465766915016756270882932259330140249755455651813861950596418460224974338068429514206772367535642778716980884656737364162672923466657698340485881912936796894823427085190814608209768885311167649613150572132836258604240670588341355915001497176779710144959682474600260593260555552436954830529062148162270242828838802451714427553454081291967767258022253781330445535053334707855623325347541503709533302690684206793052966049344097585894357688605168633330170027242170014362212207021736050786310804262934897752948433812227376632456887042413292997685317243730847260539440295865106248108163362947529055289466511036297353250726738053487499525330608144484203174766523554805742074125333334823944419853047937557789575735393397913602468118549471173378980012343729997204815205553878345586789686815163861172031528815806116291531502671819795097952746655894301044809731493687683652762732893070988928552714476293813645943899875627250788125605168419862212333750345992599389964826295951774220751610730526364900718065491113055224665492960794190652333480590210407893188184399983509883664877762704041983964156616672588098910578299578077006476667262394838539869910983027515201763076064827934632192971754182458754786808178377561596576111576273564845191667688166374290906917537151100256495418824503288743721298817048303212548340176847276420856336241079147481587267791984682240187617356655270091920362258797297342344361084997207204518527000109582823916444522999178810299533391396114256821569057522335568591759072278565425158155028698070669862603660882484809319607434790026604364847986396729402099509099114980034945961059766170596200432463435293386226880555744838715353105057021473859767361495199800852756645377657596131857659558601642739983870904635036605602712411701165813565506706579521860274186951530704506198702813586367179708167623212047578691419650790108048587730011044773750583546667693932329376718098959249617434644043435553422423341609451483468937879481410184618682633204457470107135482441316179242935233568900549065472031598697125369994320763226332786804281680935192731637746641761797897926604824416132509159411742412491315537290898060818419140343857933733869095447008015255652960541946481700854552674310867538309524346939460662977370878027343594283996414957865886645666451128501985805347251962552997954962498924420763284611782736053069243381268997513991070203567042599474463227511997370694114509706313858307385791597846393197760772679253836711425871312068175010243081385453454377790304346692752409364565721733395369278479325108394812548950573891930572904427620811653229547792286839780244734727044092968755675808502908260539274249870505601265050497423345470409544191228184544734887342128376177272333416769240453933163102682353244190110742604883424643667723957551816797810685747733573785602301032077316033587565523679077646264373820422096007109550901885194302859545857469439588451066275239476439113366809495139144406058853832485324709389842316326608399482391060084405346645742328513966358758131264950901879578112738584429585446523791151432146167480574159336311649760894791351940294438806222807624108372780229552674830347355562894403967250396572349791784140356467298072938916004129796718200638354959484301190122704922310920039875628515859395658208631737520356381655893430054518583104215227871193010670578663674418041308634614849033124767344853021331473911134507121466321700138681405024566754241840224079382169808033307572061076621788520293741295679099744327517666224517758918178846210819423072612799086831098711962163618702683248181675795081249836205239950518866736815184343881334400130409669407413910577120445281078806173213950340491401810423818244979716894788135128103174761554287286416402393495765359989182402966279133185624368901126995152900263860414954965361305641193671371765809908603734162683002531132493667506778326849699249852864506379692826923896094011730037984694491411078153792566482221925882875806841833925615477470716500375510352733275196653427830808566594380425915466636975451176049067520968183247386513093650817912572785195752179119064742031135087123014886849058817944453799492247170481956230216393278172856683221910502893823126166163150628677117661238646034688053552208178265279972534625208084676186580244090342401260435817693615114313672513459427120479627241179559218220275813422433595357080099072901674707020385924018771831138245094175942365351839266627032279000481946130561441405836676441453533936930367099221673890110365292065994146425869302764467093839409584641855458203986695521021703647656944812606611436923686210059024346403124589740469519722899466826025420221835538246437496118625771024728338800026938017914769104226908222845082215907839986013316995561636021332400162106868284271825587364295654276886675289066998579804241319434390725798597914347732141333304375319949390519652359672339435850304210517005345926479604428569648445488592538995534829127574640069309061598441904925690045408111475769831911292113288752448861903140108818034264382824480540667424928841044599059900714533537652076255963277240256765302860679567029957668007770606591084413864292139720106299561436093728442133210326191070129488208388548592596091631087772703851914395051314786125048965910625934919421847459475526079728554775725127109471876566193426552581794164899686518811516412921817407249074128798243781393645376284607583364517989912209826504304875906476999097252880384783269165625988978840603470786390418133187373719225399854339429764082147552388400397175060845710698427601798031826573785289283261771065701779353971779385589072458796648951547144642292506779906485565180521355106746635235645462505787316656693465894710847166155865447437493901877022137370204404971730504616764969292688074160477657172997656878867410765543106734063875628857262816811336854621097404752916226736237566062645688556501214772283582011569846527657016610337359354040704217709196246935810784172926413374665146891575706816380596644604618430984015299748806217959650492142883281753271482936504138974433747095310795234354669518879873866107968575061208488726780166366837666633204280722828941743822472417668911100522657440671335379813326623121845542146946322743543021241961072233787973588736591405150548553313517266000519770675223511543425531077487597849449038376987064070763321217112946749159984980286326738814933299686141832301660217814117247177664912691606916076033385254190226793593815168110380735563428876365752919853661638931309636923509048247107390665367638039656280344960196374049576998926039857639319331024541143327422462241074039819936418252976164195974724581540478002231423461033057322947399555907714482146678100372019236004699217713150509008047528049233513207241860395581152064927027897722454079278013577706608839964596690832160292395746523108203165994118379371919974457404069789349525248971660454887345820358469875630774004934500312741903726966051483211072957654247697320224669979797878296439477976861181975186841111629217952387429346530041347176270261488172176599187635908432833899175562201715254479164190351351999656077805563867234772203031049283092378988076852875448130799292368194164049508962893358091390058368402783657615457618601607341279826331245804168257493165654471780667096818069837544317546740592639359767370889158790055085050383028114771197940563356299345866301530455960574654856385425611153361186041141797698716365127473183221680221745276164330531814477746797460760558363028528192324292626686070999815904490449324629264439478339253145412768383782129942566913884610444048079680544725299391419495698657076505871290014645875065490322917311146534756466643659709622789165634363782065937694093037178027469154414304830650913380680845198405281046740887660233708504247510562828934333176735364263839559995078362559434381228240574412197675113870081294225514635281484331642768789340496730347123499644783344716590970920547970788313561052291765444225586735071889590237311265403157865740966715893657801425336352974682511360778608533565846012783711084214898187369373454467829328925344911816422469239307588194853556210445675463471203954345306443562858324375220702177976351063711115252629297178707811883856900387639740302971481428531640143478069444474534814132091973924194386553199850641639843734708719700535298085968697835175264785034699654692434504597783798047712496899496878756459065458031781483897247392123069777160191602047864335335566610494369319740166328063521645526175902324268315318588387943519324777309355130363393643476450232315187298193546146203231238940760616979650470331990507674762638351867261219202880917392428002261856177954786960067161852987675995018056257340680541632583916215081816383563754194439078969818274675728799204724165591735701501483793990469336337002744026019284710317209132769323532108309178089264415882446149172000003102995519802397316180680645192500680101594462397278126507534604936797130122985033856957469297396190599309747702741353449524271309381389383681818960368653699885507333258141853867849135260540590404317091279092609777967741135391327535415938297981733600433171062334782424793594989144561447625494711267178760253564857283642515317688106596218781276188626390445695482333534580772413678617155991250877886270887260381123176752655353625789351061960112054978324180721113196558179323122886567151883599780982642156766814951513551203479121363302449428909400391547394599736179380991359852636177934687534908455415971690337917599508835345994780819705191053553707711656020977999932564652580580959714066009003415017507143835460803320153247437678252330430254974887222587717708670660843735033909960488729115210107263054058208626515588550226253984665864892093892555563629112045586448914362354652735087335296108302845463860895729782413107298584292663112946810557977052179461956120705366934423845003838302648869773981528987292629784020921185057501892851475832916458132560773674169760599573644900626509116852193127899131858436709366816928689745166169938042322607229304474143057354977470880186420867615457903097699932548666885824133557309672129276652055281827080485015430626196527169187930748297641154002232947161184576029845422658376153810305335903290707763031354451012215086449543723375353210544361455720287708807042753185388226971799267137445561940285081838263819497562125591758725920692955088095308226086011137609293181233060746405925117218970404706192251534596795978151109300657561828776257087962423459139353406091008353580411322789262730928506472751542103945325824826069898717777278939792878582207458987916020223993761146534209086228772254556802173616108373103189518321117804425793977476052151100650134769363980420955306383535840156627700289457059174151577646497145203491086317777845192585783464339710079503307217211165569623489313937305279657450275761531389937051091190633965375819073769261249356949849786708903779043219288947509450096668755397919396555213604897486229703587397319784524854397631449050887484616012168120949729691619614756663010168655426655315816106221197327711967442360770919480464484198619582327923109409831271691713958515074550042788389582797576022814922251337817764939774953094329963134806449210890683550633096573286642726988508597413239619228981290132442480182080466216354438962309086055185154181662040534871277261765679701200965561068303263059341704120586884309496961113255870015274625329257055124762189441530262595491763092080623561225084452169795273533983824286340015979590530377773087502860394083674789853113989281772119024562983337496694738059508501111731974944995704250153752295254704454926963093314406566258216071448223277669490481079128412613159303682976292310752833345666453425567751619323267008687923101804871016862724707185148939507375291956183106589412221043757386871822958285326932978133828692287572823309805004938986005190482484247618889801247159253699073037157074171270150717017745731796003484772188349958256919271169081796015027643722802942925291033634841535096161013935051333284836908002498306541270520340061360795570167355981992859624853890843187319076037677582611009249303217580792749343845000106937792967332626138584713621387047989195206240695544344747930498604200753548882941950101688856788811991333266873579192504388523242563094598252571009287769723778098239953857288164915939218142341875342171639777437534214014177530037317622012738079848947268053368446314399566099414551755293976184140032200632896972980067002045184356463377520421359952531629931766043957383743690149870913067220002608777542796191913759735177326262105314744250232891397958629437765369474386895291228966791331041199290793203392073571916179393278572917068250976809136353510514693177432758986795518899118611961115401147379499042914277816421883533725738151053907697799043590926488781696541796666079763811335681596264647926682999239215698865763098065194464539117856423512103238480790385933209864713703755439109905661818704020828014974966470875233998729121025547825024096670797563874652191628838900811771677378344880366682903108184648435990632241107565945377968000128181892833566165488438505560831677814190496692291774974973466832254520479400784114104617764504830871785074500373916318945881305599293098326174710392307036028190271640975294778782902869545739149263905087495316598840711138254624694598336614273105564550330227031905225608195381868823414392934658655202699855269767855705743914840165891824983247700775821753773687212217722025401640387660222083474135209324502358950316219472699157991332079125757381842656907745785493666262488111985353782289703457223019943163716232578409025449193395549102048189438782147259491091576180193093003436635804054723053599710318556542813113831052001948879391090288016678219303991302627798139524668672923967410949246585318829627842676851861761962147105312817752013228374462255891886638656331934820642155459174978316838722257087875203788961633673402283108896352775061645676423456880102715356934010256170887445303796403520867042160833358492574066729596188885835636688543617201595974312681054184024787433593874671561469220360892318277942589374528687315315315262672009416733468026317036122735739653787279356759176490755346693272075088624521850822765167192626431832786602939144674767566832293679812914711547069293894194814707545366746780205970876574519709906100989966039636873513891943290002654406638652352948611031445519286824977696738232673389448780274658697736529275049785778091492914725990978890888345886957951106215349606945396809594936929209519452837033202305319602286266234128226467406700472928026329203533615267968241832424743862364070598639671940406357395320817827138281111470431496760356538981350207236305867300222995573254327586306834973862216138105510016371013410425319691427637430308743575430404211294726406002973279842638421440766535801697797152331889715014192574082209744389085507184226112934554115717247603541625746071766473215578305971179547382530184790007830089225744684639486227490860904022708565971329278425965149358910939863642526108654937006099312895069306496567221320791071181476798658005892593270405087685353755292508518071838647437473482546176626538089246049760046507790903034445416792883162427082559012999183620886436358914842233296889637569666672765257604564285365077766535791669933960272004876674134130802898538601989463375296115572098081600525166997981092365671393015999739945374726474372315851276038357683213722509581813597055340014121451728721340899732799296909405111486428654812365286512884114932296240579273565891655437442620031910050704888182408270709796530605267367813811704088018176429833410983794197061170724053458328527607416053609587191203564568001322660761870859124536231345343719265203233228080715661214334305077594040276984264089506450559553909662045113602417078788683152069575122592995269642401999585637774136049463191930553159473480402354104997713198640707786141955851652987099443176568525625937276614455588491695951584536350057352255142077742824520482593188358452293986054093728743022164974647166289529046785082679782391844009192571274167838974426462082660831067915816093604645143842305346807816267429952262306945389534489553437907020225126799244170040078743583943028095738779307409552965156623070345881316014134203443150497338224743385501632840206714985134732819281059439663874275136010950465579432725348463391811505686492989210744068500618422401598099334852987763525279964096562263559161248550995469466102785670425900220469015854700349944753982837936926903341464781935596828820008000640269045840360880596532537941197748590224080239920515326660455908656418588430556272548604756256723091827308606396862119994613978593492564105441871860307482066759107694367647909486613888484371532045820173919255157966695885043037433874017183909302448753070820936298526355572085831668482136141196825901245970188495169717398671193891614066750088353575669914730577661908167129536404456239888918001529981356195901888889489330123384297390949788204125344476651485458398405169994587617506967653964800257186263284064320960133841792407459074961781138000765867185255099584086361933267051694525923692092286047257048600805093341666786187213060669396176273153345657913507626916653778017797448268517499562869107267401146466332813129107042219292459185354056409406823669018571320662882550628271117382441122911729826905048765740335841409530965891535914179914085174221673644194635962725286999760406300241382040560505535109141924474540042371683881268552693558889797652310395607212805020190027231500531200404367154418048012554430806082971048814251773719004719873261217016326643325606078901094135515124919973573441048759444163107925439177663065633048638750922098413766348842063441514649625586987171620915110313856886750790535559551223789939902611418264425121859173866653031892807144881031972458028877605745644025654769993281307370250039025554326701421132059862294909003723096480163270231472158338339670304743457719404755673924027082353422485792352963110770566071581953982235781118791060542294140346618824720643553377861133746149449510763920815116133286827900932275811785534631832170213695476776405679626916941717366848694473973412003860362131806151517954190203575577563571002119142835754810519907337983086147868780477871599347119535085492294506017714318480454964269127084395234762142792613783830902524823888324788999433811157773927949972168464328842333757445368295452564069275528925406089499212788179256315901810360540226599132197985371676906052235232425541519738533602555153065090947351824643051205137858613746902473829829794666924080697670445383980723769391830483892707969017147312531293881032680318019784216061762401995116349590302880346539372292079993697781079417278181709049545251177557201819235559826057906627843985453944372286824784660796315150856164352950994831015263022647522476703729036283985201397186551892774058345734781156758409788753338400314698466783298711797366965726385595070284446884890512007819618364910424495123192092758874715081814425090054672413720246079789109079210959994878025485866760607024686270370508949633590316872861692976671213141079145834934961164734824022531661449821431302900457494154880088002249153066305720753282490122587725006605230420322070622113752853452818563474787263178285992026607357663695784640197339659989462515263371716340619859768113167828967126752730924568994416610164270314262117249860719703718223736238591780622466435449700404589565347171151008068256049594074035836685175483945636941420351491270953877011150305790667903902092550167711488882383520152454495180444714686941176923988563325305854763933918467953269093379040549974605911735544035256180108136344576850392444249213549530014047801445897930746655126479591123031823660468019519876924447890701908446647934612117808260147764466524617972463155764605599077483668655138066669913054096159593825624508138666994063732458403281180912179919140633191731743675212283138071962610036108515789082860456406986808525247616886207249159727677374126745075572164273681276791567343108089441315798932379048427965168550647893860641533956510156800624733447520417747306073867530358630022985218708632780303835938696241434039861089310386480339408192644680800116345411387616197767075490034493896633586541918868821857844220492098565083809682228943143129691868171960939609839213807462123679236502029483651442378367979841945901971344817654388877501226976308754656074162934735353860199886178819839749803305410546988995191628710699120183023028426518976216730832635939210485319509988658391150266018988672214299027817644859036360567631546914092669340604086907209610003972114899217708977793312794758797251134279082212147395754576769873324942316537456337051656865600928315822992764302444026436425864485065613381756087594932750266153818284292857342840732952020855973728435012709980734808929660171353793047403532623698169034092250521524124315127305276698440689026871310731046351629031060021703556608851471226340805840659675956092050065923998063349467728375741056711399469303565065942918024749394756805483551961428555479953177158405023920249510948036474224538363519643735781094889428639067137161987262770392536974462718404873714803433849534067009224114907041496775958743760021977120580103004953986432565017425077653805328534423251936450816260168850584294041321724989592287107465369136511424159850623033934143158160373449625354770933950854045991254928797550640964057613530518867010712467135329247477824568083304289573464718410894871568159908784839942749202482091592930893009060366203908965319338178094615904888175488971743127654334903249828130961862350965716238175520308227975374286001533379411930322926991301617869592619242349710600502870701420007340355173611673783281259192622623819919374549276336099015996127441003104878704875211523523736828088373275429522811028592504657034767349188432106949249208189064123903642002461771311484075121729414875578520005820449011681724254711628211371357817435782526900993606379334941158935057851316378195611816946879758687853891942769266950407090866574654296854570292937991044196805351899675569629581704157450067407718474999586238638456796180657344599623991665044056999158227167763890033570477595140689355073539341828016020630355935866063428449487698642123024967934273237324752311791145728919896350676853813929939278654247324769918791012116099293028742330432367993673059105825467276863134030410572411278669067516447162887914793527129786964227584943561605366821277356078345649546197729873382502966723148551617127211529060800588930173179241803913069009880408318851629462449395732491640868588993021998672707512084306022188012268324752308667985516632539779493077407318015165030568808868135205685120805245868441591860203949498102849040747441215690520421868743518788919918889519403495838519667434666518163344783091960600308803539884632968919431372580239725070202560799367068795037970910598353186620841179209092196574637170926966712201115122440910270588548521705378356882913021050672673835647241971699774047951958407841699417663421125582093919784640134816770413905851410559387880212440778402612623183665592340299131857322234444656841648040879187158036573870615138600288865588238955331435444482612122406493906492102852325558599856421784088465021764197312323392986788365884200043826471771873094605628282859530000734501435403484123371450644571796731887866412329266656521555743865372588519002411661351381512725462900142833481285752582430282679248801474369200587131920319598947984310892428820799703286479701818620011678305173012037620220587270527822936917263342573943271614669339056732835851718519574533579149305608296727848112913605837771538564295511520435671092792253122774844470286953719014781362411176393071205547726109994958517500705892064803141738507380062646340089097090785791783825394707478314349285694198023800461251960910958038503980273449189725132985377371188066029066014553601977369136530387118231093795826733719132016823056910051135231393730281198803691637593958454197253329023424019190507280186506098170068825343426617770124591826781691560178273626675477150567137304091764007177626901163092958364916581970692989622303928280190974965982408734444951663054185076693901339763441360645337390249959621193839439675468143997135667853959124590735448374572329188811608805068750921541905303702950335545714860171167914445928826102596805180483748843965005343524396124905910071591710292016132007276493789959415221244468470539998040809942977624421994611802892704178655753530592880254996942326780825003331806794217829084762047053703167203611845774877600899667250053428493964348525020890911759290532823457601077331247572211763569831232566231156668377378963950862849417875395477316482788549243124612986190294028670840783576339872531989070471038111868397611777912529412682061194482195739685917728379156369746161585294084534379866342725159971649042658892267202741310603568861802858164178889241257439735847593333237254004897264704284332477773114333864000068594874846034867340016565247153732438022639750354916789354939300713228590007778885595580620109109904602702412576136171195053442601478835284836081339803239336353873214763187950584709970212542893080476704350624394555274499764100303985276327150010478159544882262622715275173561493078022860112751646203044531081086089885459200776657656692073700755463968132302298830049689202549939404572223228477839530958051684036473433535451082372653404356019882688292233378569601347214072707808697252268621397343978874664282283591450397856811589074104727182883746057390164048715811079849886981033368479414606135032656175821127035504023389132787203410190684949287272426040465101144085433814604851967751684284657941640578996605347869922688201677968760765490876248537871357465074457892931223168713427474305699164343867540185700299638049499148260818904004347333882246256815522038831712206227351509032753930841517014430925963559332349846973471075241256813210466017475136437437300059375473907882877534603712934882877873186487689296557981975220650763723422960025367720575474511760384682592719514647458265526504690800238149520570247360893409486792073725325902923531392801681228917489140963210071123426213601383024773332370879495970394539141832006902484983665011187857250647155659734994281327400563053305711475829827174692057184469990107647528655974542566197232786380827564205345814795979637638008106264391828428357431206785575685007714397667308329681787540042681895683156954095072679969394524238824605421014328821139017344563939225336828685205768879940087833658609367169538065990376074206367556958938375474372131364916723736968386060415747608161705046432946245405799376007918836093217074502187501035013030546084807775343987978824906576303430320581010927173931740914687649303435751613835149174018858078969166831747268069361023673875587382894976446141021098117328961878339527659108420865566315444931287535304912764931289024407156956805794809530479068666603798479052343915246057021148778558649656095342344978581037658590216458575767892126286237852730196320225548641172749533792384261339937388002851410245986593552457663829629697017958261436517848053464043436563677958498099995287675143335543411931999232248472447018748445669055248783589509515183596425886738124077087134596017676117134236472029213138876879550825817210188312784176670135556826630830011929534461197101764073259505491224663952236454201232043853558629866755280013513255629819957108787183800512766075117046589307769048168136144210183947482291207172679325093512733022520391330933225940550063290354825694761907950741045154717403587173226586251002439600428136429430707677294827162150452299926423658349529773193554521194890519481325434402378722768966822617379995658926299033900837284773274280128233149527492741881753006715391171727950733676900200870175085349632206223053706905794802833457594427682430311471754848704865195359448483348885841051945885812420360728347566225452988288231742835898737968689616722473586615692071507849325991840140316709706903156836261586176736164889482249970685229842332713670368469923952138808128179570769845314851491506736246797723576438110085755116897244171568311514811557579180583197082659720927817767555469747500728587195553211387376375402610724319844322285109538743090191867006172962928202887438435680354409607472301611713318049635991636235338515237052826473041858475376505081420838166655169877566480540602379169790600351376387544084243061873180410046800286920074347791187279285684365308056890406544217097690313396247237956129512494681100279441757529281077486123405951745304994396768644700854673277958873208011870279656577248786726930291157877080163035837207214168863282736037436457768368259533907372732363413052935705869155408925286293690755741858690004134592095674784239104773424046985253879764479422694791815324673485315971456976635643666839596184018987348572938906451857817650965758068125902860791793617613899684445818032852374790769297173839310787413539433778666166304195815455516975627285667549220841965710815762478799431789736171243830598079478342836181282562053885411008159792101983737514573052240417497864342703090102721169398419135291902879384472909331615093534759174081885717203156679426844065954033117052057760208921624402085066669643931459535875751011431788736691295605088158057527333130292742289274768783382091170330620992552952594226927422005121540954105408135325042795163752775897138471057051684677846035474277804350333413998409482244906899667154430396339733836261186395281254812881875561518419150607196951779580794414039432606627274262316784814260603729379526721984517628212232959108594226493273288064350203564864367192111995881932109800767606717142347548848530839815244004354532116463465259302198174599329731052549392659733345883256898820998624294490603444203246008204828370738796921390883013090313300170480649066169736812947235079372567739441414839840417273856030356257843850337654901332695107212382926994683863140158327939539485850592857281743242458372657305162165670192691201964965077245910578763347763473842856521017695809831926113999305750972967632003672112280228727600779548830641761685802418604110655942584115628549583228254277539927880470634360953168492037540430487838224686685025474555401526235862841788814433040947772932049100594210954022303746579709727464705471715400002976570924668698945484281755132984041685711183893662897103634337262161655517803337105176779119565148740773575169593433158971169559351028136401433060795241642749988111439359641988334535238401492164432364122093267685433997608563838332936099926012204219225830956133869067978109444356901891819498804003318694192389212680811768413884988269153599421494820072407300184533662482803792803667466349136325285606690883178979672454536705003467159104932545665960837008091266733166850170360231542552178485136815950736497725125159883364202153133842869251864255787209502884452311899139083590144064258172959824198173822641441052389262108713115506552343244954423174999081492151311106058695266766260768802777335069858899135674647852965274505846113400178606287324930337349523487260181871074575635840755161484889468895750067857615558146271867356477106865562630298186321499352647268018959010137595679853268631025746613733863285953003623941980931793836443377481450479865883196248916188989775922904442363069914997144932053295469353507871934180779690432043352944633416457976081444630702968490406315813365763301933639740819782300850773485189120568501425035294533864451214584493198484162286975037139281886266232802907345492089398809523783715182739431397168813921779124375174980175445682111269608634562560251511975608576893605158791374366582836996065202092358618729735203594811789989978252257320835631305413825918506824456486139185565467631804350384415856208286796439753280713518600470796787969191892896924309129551839430387807163914489080980605594002345101425359373008477030957353504413208483018893877770110923016088847780369421208729497439321181286226643846924177965065649257291889564707471384182700448987757483426914192922787562802650620621603347327973231888318175980351529581418095733058641525706911323719373350325263339190173098540958145430769378107702161588637815169573632181602019389388203051906122665932279210539926297874222153776093111473302507293147659215713617024490568183824841973523226123972011090135871061289132313131612475651237551497347807462604527225979307917317466606591038139330724526646774543099982301969726838424560236709872994107127053864705344893979156213589461433389707393656616973656710418681679236029637749659144942999810728994162181587714468214357356573895475888964587757570414390969920781878058911867266190965836178000245696083110388750143061348201372529116715957356491555635440385640272532150544353117356111034424312686394194747137443806065462160385874138248050044798697680022523605779398027904347614245886984167065431133667730975911029163172967966042358415952475278090174316520164553802388377722694343550019892889738346350537381248797793085798490718945905365698608455364734106195326147980036590698622646660411710273790171756773907436926646948282713239713626621998406255060713678152599128471505078022694762595785734149426697542200879386555576312630067409666150371422366114597203645275408170113423595605953937736683649491828604802856564217708831716794866026747285015072732939433077964628988726510456440592251647579789295980276142226809264705834908851299778854407856423328835337639661002841528892253318080394473866395605786322172149503872834672863628640575190623305099680123583054759370428433342068843870917227881548822200552949612759722393864618917564868888875480288400174413002178923081158233712092518310535332548052667472298330470588990188415316469177539994992523585488673731541958298776485819826802587290045350303158321790591356781058408594537564237688774264148024640964688620170619283818538852974841048437928783533714913617228252864734924197011950036293755963109086603393617890093841525698876673485335620632362826160125646460128041209892729805855392995517266116641812449320050325828959849954187660784755363723873288863221087392700489640804131034319367909917802414699163489351042869603345478027463528431041016815603870180380613068474150664597621645108644907754726841610505735644735243373418879557556718660455550504283980604400182248658752702314440512667198198430312071295896752024839455923548315009943277499586034747617518882556154690662211648356694327695610566297077385023845315709602668625330207949305602608361579844272179566704783556484938541184731617253497694332039208704369208866890712997071049486705799768469436377235427150760014907679988601672267459385674337620332541434942330471239599926169711965113465578756426703707571493834806614311012181759477238394954280396687449730065604042046931801026968724491020940048720646405764817576374942926801001471279153106931835880927875447276603762369952923642968789470933138479875203701241486211824059799158471783515134279771727450829152653409143076143905983563324657257891807042743307107705118422122819560580632086271902103211261225611088807325799115724840262306141001636529245904072397205764446385895248461342162553916153165302627934464994198812525648116229071255952251253986348327588062210525622962232542609721088719093428298176496069732733139996227522844908068451318018091868114649699640666216146003119432170704499116829494232155757728382984671430853300776592017099269696274261413979777760671289167501777698289486522676507935078717816436580086938089304916241186340048548799750993305936080947386300203456609581100942326866641694225633027577504202270806701745152867909485465028288441358598800843301928462852350497740640177850674299656970424251525198109387850839096101356793447313194625869312854925409142374179926185559593287097957898684866496086019902909926225846279000889816069869504197070951896450218794698431031946419139827362651152673023432739781836828460331270681573473173092064947355202346174973846179397890535807655752474220394280802095257625124642532141027150708975585263162104413008228161030344342535001678940753810054232834347102860439139156180459633636545386114232425411034305425877228334303631128743085920458853683881867512088775681809328637377711728224918506750301874457378251457113452789053382114510936812838378233343543475793540610888955603435312532499090200246543750656911456765120657059821604432727775137221154930469739375030473795414552422375112000436778091432529365111905324031402368064441102337295688877298917628216201133423180484638528075111178800175976348439590221500940679959974897052210049030916312514350455670259297856855551747369761975107058494252436730842571016518644506896694241131555586855538304557858455935037318969490939224476821579358524743693272216097803758785804882192643380806356830924387744053390335250697919750293064334889524036792698401763600406112135305584922550173073881985380962137982839838796697078994490974009101539693013743926807025621326162164461418257040799520516927735699359114077306297579549112410576699640779406482398477575850114742805168130040456371364132301562674620059823807882466000315389239865337621780994795770740927130562574452422607299612492992881344110373092863425613916172450742584007646881036263054152715644554391523273032831595731221188283618757204385819505204805283477619983605934981409430619624550144779857784485353425781234718034790891463487476754226229800192563115855537117020523716636932440641092138433397275828098946914764375439436248245708768220882174588675973522656255685526909723788856008764216537548152956596828213704269707608998855332477839164585460138084203857730453542215754659155515503644418676845488444015694343664806017877422313234948676209409453251523617009460590576425023885776518457455406515380456892810805105181005870983802995951476350650194435731104827107094261283485970106356971008359559060654123174200486982228814106441362342932081570084077326191964566685724482921249453272416797785161827035518325032802068876515355809249078111787186029116302625743391691987509381683004992549346407877523900915526228426865405010661750814952574478999155172232610810529388309707425470118834525001746521618219121732766271385584549990010592777819035489855766235077197037336645020239593708222945579259410840179404064063456474762163421084994455284909382349369956152328178141103061544581785000078502099264979192746956709685311495929757409062472667204977039331983191282584864443877577720565864524296362263451476855027165061411638343523166639371556051013161691916658269696900597297107929442875434141491256606252523462388482748342012374693555669390092237939480373466591641469819668534766488599074969058788388897021162989430254693556698302592933001210177007608981831531418002807382350347218042611416664628726165838666791059239011539525125952743558996992514941558785406734887460731774150358517331891034236659371166477339149136669218318556570202105449688678499033587043081618921539886990666853981910902188279668453179589727264292688640471453216203469400983286228306467801655112585533444252267796231121208342834196838701144755052798939556589267406486194789706877229674849067478298984410430158685061446741147669348303279963624246936813099729753683356234393624835076581452047751029563442292988954180331475894371996466480317615750333172036109319286273410944099278219807834549611938487854842406507130053063023488045381608775756167853166944838365473612981812332316982352178919883949003766879551915762981556254568664375680306186263525322848769359169775506886601255224216751540063553878852495078863808171512620048552711380097594342085028164330028479664281250616283768694100227230073389354441378156001525054175057784000225904029990169257376847648630096692807898918654045339820240357005554356819345533465807774470583302176352474893541790604205582657845887713082031524635948792943435091847960462824927350666888401612932986891411318581199944568789454676908730155223575608366494787035744383909055618240105910239193478861813189605211245849172260017347459445604227206427737082283206263679214274860255430714999865933173804971311978001451403507596465359324908938513380266200285217979874228744201769648975286833389575635252167973583538258551730525873619049854320510396648367973051694774884920400174880502453188717995404639091619332943128689585043692025986373217894643902055351205871085255192917515574461722666907125616605484751257227512955212223597278397374372138253765922902894178697203921546706008403018993382503322068935907396148733529174541391255302893840594889661083705255021943156618527312470018609127115020784880331223428153790794155572038394158532304657776523653481583997656783868639873036498656410105329665803883375074296989724129422164377644668237181052152729133571166490625634494206953952781139121111089100746290243060974243338369915497372611174702677534271495040650629488237799179482120115294123878263857891286693213007656684359061017964795393321585277877071196485894129496353803867180512418308670312576355881460443236580005892600578398254767352334548298047294508364031283256611002197026298673543710468598687858046813687369137722719562250704598617618868621448061199158415160151242025317640961060693905847321580684005457918667164856598284455700748871868378769830600205442837625528625389856437041451988247346879430133209624238250902916946710445714589864540222395162580801725328397915265093853844145901478977903418250387291796894739234516840428869162868818463032984508289634918923962093876075766276505966506288422293783921785274558714490939850363111447691195364186635154764229689812704465111870957943029939362395185482791427292294829361078326182826684014901885005514040034043214119804910914496442964815141824776277607461263032782979220648796192680408750021541428232745875217656101737885558013642429940112320620169761118292736803375049380206947828329538797375930555132981730477823795838135205442822352819540828907156085028246984968052593378048652786625142434699807163417000608617454538396487128130294612932009534518445406206846796493226931253503995927624714271073568450586073665437667831847460401559231658983360717092185731350762257755304438663901264107184827939305657254881744763801935017191863469633834859988741008510329567983535407981307813156920052805267867809155641916914618745171952475153886538394767018242021223982704624501689382818076691157093128216939106759648911795565234582991630501572559883434343229283033321319733301301571624825359868096500570269373187392337369213983368980744761242516598760525269990901399973579041675386361841938945584582983021499331816549180201175486509212264265039108833167080742324014432271694992866385907523887493381746490444964899146106330705718452021253707873978762848690862719524904563867683214382508301061633916361786359466055035846832702197545689439355111837905238761608928902314162385767010567470378106191009222080415311304080033704241907164521086172241492025398366834449878635336529337146748458550885623326277794901069874176018620188751716674077480596689510600854594746268604553215240667549519171328678037539364277457059614574782602570526727633127203209537993348743057024325711319617277287807623006546886555025866280064979866793195554926554768880256634678069635997473186723387995813811810488358170446567191317236067818370163159034977402543542025598241371760896299796418056473281501442846691562338688687235906028815912503931005982894157910937597438994299507793351684703037946234460291539475798076790889820255758177349978173473985637143575636391715928095063448844611373297336217982267087480195503971265072581609465777722230372157401822703061060209071855813961172353329061776802859585703750650255424095355400437067634070831904420433870913794243226614785253875029522728151551298773304865952743941889642583167718758730373554239809951789300842614384982506515661460895487487943628043310845693664257044886078476387330891032357471255109965300768867338848440968627784063193173262121392678514763249972195969157674038889850748831535752814662824971675878984532455796296033570752102182822893080550720102842579047713372589170023378929703381942502546213874740106523402974861025462991140112060128749820188425342973798714571039193250275918702425184639793994318905097810019709539478773526582277864919660263619099872114116124042845075289604502121851723833352183170456859999184425448500644187876533256557756160052130249726486738257996611137687536322661559786402878882399799324127322625175508559944723520218162990592711440014048833324336185983643709582424915480455217125444795567611227095074211491879979560582422850141229019348889743856622666321479526256429839417998969816512521884978398545830914019215379661787581590974256797870387299179817644843871015673914331278829269520156207467199192563408071287306757366789207420812340833261550134810703262126904194842756459130452160661509762021933539220588447089640147580381709129479746797303361905343476523293487203596002417976092505782163277044605151213619418207227864353677720772404881106016118065883990974226129708758319048356905657919235496144086069357366542247537684303502505522373778065465309751747512642971995282601454262466651198139903658831964418645796883546662066339338976667046457375989745150679087255085545357991949726304774171578020340359909545076722004044833686092437762020909905939207997457091133762747733837343065818085405265097514125397092235161540054270511148820619427575197058579917882004257321200122037033685250572047723651463667523133814247948218726404387922832228312523703152589826687629176525683895983865605348741203036517902263778232134929732996074687540076707477865354538136605933743606187348355506266214014021450466287572990747810190648058511908153608772397389056526382397833735914127751289205717125271111850127579408437287806265794994010660886078409003048652213004251330231975032966855539985179257797813162625763704002145067290717511840483060451791520418531415133637745269801142967318041355984501799635892272503261390338898803918374905119106380059692722013652054183364712243938229992293535312660802570833333884142037269162058585023492855604935223994106614482122916621948050967285891692441644626695478531145478954426280063749304942022479553492380914030508533293911246429267448370716886241206956441683547385664427379619225757532211314865073468529242914483499487878494507052889764616410253636630197894239782749291129026191079989963131774791312618383718795751722997522011046764951652168786699493947636907438375041787772439977029310896932811438958208194249053414929100266943400887134615249139565965917959426420450233633278746327405882470005943214226724526533964922789963063785407004348192198020166363592757124541517368099276030625152620805999144290805123919260012850806194064272176738922453852383930828947719624259105032752540130918010201852454811198548218005317484356411840554645154467473842860889658041709366609032818385673745905046560305008008411398355939592054528749724662014267245754969795878940103259151117593080751705071749071990665174439069160622500861565621017245607387200885429755333901696554173823045198854435095953193558091589647545450694662190826251725624216786429246856908692373836986075562681317844427359822968589820943970538608006119115030658804701018236465920941787921520749412931823438256841699996047442431329774098425352228214977452996505383156634452180075900035416009167509389769017633556559794160094535951993121424336874669888965539528625271688141901813007333938600039142681163581485975942663103829529844867065494055982693302528676005504015885140423011311916056210525284241504644288221179591765637767687123569638746626903490197653396740190057231373004083370408462840473770689997827928465659069136610010891311285400123401264812093241631931419049849718570602249653921289194326968132437811753641992803390232751961259013780650157339945371942075184788615346597899182702884935185392592338560128942542862013596170819673104928550769677478646250315084673144149735736384676579502624138423291642000803348668436541385612579043574102698939008191978594725694303719344028584611896714706269516229687112623520089668582223644128416885056801514403128368562108309497201492541589554212954031603515958048995206427200507044028493882466405090872838269309586841937439748159254252504698830889121279894464894205139744221805095271589516346870267134744994260621399328213152526073846707181615032313641104179323752007091614277307692476086457925881454738178901993249426036412417306676034490416272705069739767339724066591006513872850439119498225614343158093937937611587186700203967470661561695881474088284439150033070752951744966517879493521537376256402645463868540539590626219173837125175576882518242623272407933829821987150519589363341515570200941157542941029655983443559371467745575496327298306490032136319195632518716316881688681840980372103402460697240519838322319373722715868491482561699197605935073704398557397167953316727333317859445057262441913449761660418250117063347564721480791301154706054156223401838751829184177708475886591282582816169806400728489736465749662114312812102730634881831933108652134710796525845174517055249111273786963703197546311972298233006377242586749526916294619888444474797846180796294289420677862015065568370434331466763501895636377330109343515909901870979277189504701764671295468599895552606215669711352907636897050422874822565810132241511423544633764813014254014632249996169844579712827168309894814721339680408740670924254295217481106012219607296727556599784374256993439511323338858280855556592724951276430835869901768248538138009770054108031179027094343619784436926302876081689383809570468610594924840768219848805668805621477787498363933995236633719732802362047424003059826910010196664230378889706071003008888868859983179658329342307694365750585736240932589242974365539352553074203762354618860624373380546270277879609681953036967193035909945013729808700192992844195701873322401382116229018930977083126337481501019989405359987401319115875912856357394008899788700315424465177005890971530865176944440297865497102721926408278799475107602468865288660231751886814068088629647799272704518473394400969652899422333643185641716151583909992943610000979865443342758162988270266418943759942102922053450720711678711204762839293042654278103659695054813563820288236317574145057749713402213973069078096428020414710501090043762942738329406508697172021872489123202696919254172791908435588157796760273051991046557147788959944744660213181088260404370375845351960954479041503267093955996647267742631114372753431435323956990960331655113711642879116291631910310604609364167309110243066807048225604546523840053814263675559519833905942207806862270796649424451220807983665611396585453047943888429828334232082333472218125033007228843569941871317683905476095525082403432999714510588146749944392006501621256979703202931845754950881281041661489988955734569878421910626607941306259267447967541607876282420676420239986033203256642347232298303706166921677373968365158085139582074160194623920343227835867565482180473756499575354926747809241710025605435828413172465022409100891140194122287755507982610641483867816495333810368536794796674574118065704665264186537841515911431366651491821422411068797688615296705039954219866281235809897139954230092051662236989781253421214325973252134036125492201372173305211166513922905732549643917121969226341432345004112641323408777363491299090813808313322441777723372266486684946065776757495720510271598490200737020901155439340985756817687975864949286941211144739369996962381107858704769020536815342441517896632838244087704940459196252975258123800225838573894616489771514681042699781592650565704050239451491518883054584769631799417079025615873660236323239906266672947709300124233971710101520637591124863448149902676844002369748978280492579579542312630882311817206585047211628626987005318502282723197187921794235969945813714522929138572633512340535974202778302594613791558337907147909055458036384940793790684000282497420543232132213743114548430657100164741759664446722950088163022862694467060563482515899633213211759832201060700958075354786236182580274389895221113341136193198118276370607111508927707653322104295692073541337036006429758215778474258663172037023188150614944330150346183090864206331672194417666849408158100789041533211493454838497340955881219629895279323465023435531433072906624262840329032777687819371925895349675276818768919445485222522882988034603030517856584674483644045431690908339452811120438463936485035104439422863199750804764130753704348441180164634177557303295200985715829797262312119473578923881732636843353070446901928859047669412711336700315707611528116890453750680268698146219909326958176207984346889885064509042868865858368318481472475963761267693608768494419701272288209041103123884340855522498271826758500547611981333490343313920226842305997685826465432649285039209219845090859371717372414836743689432725545479218938990029519573920866306063129896339919953530126386483263650545605206328054794303334062117436418764262039709330740639970470893620766993773701509323513127941740982429344595284621485307063186704242561302231342388863444300414604596003438109614639599133054631974454280880228764092410414596516097511573174044403575796108122047958718601703753367411114379174186893776043654200310773446817013887113986573308872590716258271764677947978316994831680751558851805473612441304111078488485570691822607455780062723258068173948578168528845368382711816544272158765325622906856492779926270806657384107245997057598375360047822856012816326216471637380818631856043164230035184333940945127056326775657999707277241701536026555195179109435389455053478675038998063963799184370342203511335736913739448012911608276144118646903382813120847391490737290562550973342247959979214533818671255211891597163748680892682972795678020953663737121764685820004446903327076918722807178121182384348922496132354166357169304039130599090576797195609314381024138577232555221842560033043407019568464757977726482166426107172964721436206690581167248723570637915140920898617739802672525752609204133591068832424016815484097063538181899854038404488978792430111859243748853517456369726411842265344638193280562496630395634092755809808872478219970256251327479550200945107054646497816720015489981254505375148802590499485567071358427365248050759277065675465218821721719430890944499552033658553877796153628639460504786462793301830362778072014516820086092443369175361121990923248016472975858249310253551796566722497307014773733950018692421143161643043817355423537721910799184220460143028989854993741250053154222567814451269290179215610805337733928169041937992067678957607405398776951414733697430911055897132912066366652998248296983208165096726363499004949382189933237058527878209876835977769256573989658934468278674415880131037710737220843757559292455993034904610519118783923745245541510936694741340817127490117963278124326394701349033194873191509547647268633895019020041636391237092900420353616892035583993800422655429672105707361404640553914237374232017416865219324878317244708032200673496022016254576209546222014689078566189424406392618518791478119188732526374003668363796795442588752745241778740230688194223288927923073245278449921672183568074853167212764558535764111111363401290760906428362196235165934763654385231937924973099306449325565492783815456657264389368596009097568162869229965591641733025164922704680782421406977230849243756318353123284075388936656781410838347761694532080885864795957776259294431081195187939493435136504601588670486592579799446331862458402850910834705310704819355862608309749689235871206078498668180554259549852052155961124326552945207517388396562819908515326778661718291323525565859047362806010262758330198495037657225394406676472547978173275414811724055033982214288444908715610093781520245062742054670272787899583133880964956582183860865993788541457873151153924597013869439369036598882053655366295935453921442289912991874115456782190648471736823939043148489389731440876117185402443856654148859208332290910192241305981303039749145343226489094119586684202038792380698088826933658785689869070474085795552109323344070811299430033535979317778349295890413877001546154513874628523538745812564259283168858337487315433097607014237680244042514359931049149059073988729873435434179301397109930810990944718301877589820417885121115593917953242466507201498795703232174691174307929271578078037358289396950540158249832147340173632924057903205567288177266143287779238167373169007012584933364119644384864112001459285634757097945218074423329954028985983256609261013360274340235082630082037753997201540904818536315857120541640429642869553285756661360279655702442981028138900872029117123534045467913596354829112521480903618142488129203282680021513567841612581047887796947578001289409175084903061915648616023505512964980487805152821260890790311338618515430200676478628713264450359264982657947418643527418197248473151031661715092182458472269430168360145937585454867405320019744959108680288180560346066471487881529740736057938583484539811150139157691391699649756847291269438505554371446828691789631878046291377751856545984669438301747025544040773584331873018535106860656691399904964347487109425958453885947726165997740487406040027795952565141422751090572273439940018919577841493978226242902109855634912758954487432367512384298847268198760603135007142199994118041698380276411109538306081347379249057097915957366270352866791168237090784671646913126484881439727628133424117939254573479542462500650737386325560186582188993870583920691747179317881692097469499125649502188563379074148623489479114965456148497262057364016156035120593185256805103564326452258793707199390471166665749321359200512957330232941698136476016769550887716536861147205245832757836042950905956347334205523046492280849992226973435681103312137649869020178485811099686010056474106886199076657579535589746851934648343074413941274073759837526384809484810352230561754280147954264004009850031472148478185924337311743229867507140241523438137706706188933736495289067486868945581440202730991076258610282799795426054956445072220957945580143296030733189847253489075864457742745722688940859960092005601443500157249290029175428255211819091445618614018042129409998275234736167050748455157076373304974130197365368429659324721903457815560826973256112820642644122963181304967996192604571943180064017505871002533875175472994387577477922559783390949604542867282812028653199985971752886187985408155587001444126300550529740131694042629376342557117330504396896851716193817570588666981193855154429647480620801436860479505162991232802145110858391295042471410964590702001647116842469080910669202148744131884401493623055743842208487105874838014775342680937015975367675937514066869220183867109056853435295217920452558773000995671393751583998491677522623512259278720335068031592508841885671632223347923777030654228084036707415382346240838492460035092051633717324093100648711400431886820539771200213487271853131872467646251803460780003729009749511304249102179885318845807592313598031531748398547655600746513869267947081206478495940463356208045830959667531239275554548676435613910083216636151265905416741988328478824058129222418483640167725465132503428148909256042321863508312906815570331996923150126150833156017888856086007791547024151747338644397617519600157892930538411112380247492162287200907203278274064570441913472097602728166532393087488289260543550655923978172919692621161994122087841201466793506761020214499773239115991931857246859589527887168115098214883888937137764026551478158362979569759436851803029078276425642765625717612358484817679534730673655022518002951610173365826812974748757776421318166239951575118174162975431876517687100455821029429507249409624452999027872883515484821412760693157161490187097797950186804259833262571278216401127061930172624337146415065853584307882399983591856294898268500020566281039665000482926712291544505803923085048439840121360299305039128149994265611703470093844131407139013065423262103123010853081161385728849335539713724230090604579856586309464585748973134147046973321398401354145306522103178811302368162546070768426236409595611213560823233033165932747983689297033969418039348003250476208193670795464733644649909753752101849191576947418116501038560325530034197591337012057056563599689808374950730734867821704142754809325251194753377161907700590895959498091541498706422531979752945954195497060193184911455494373031195753495270098726011772864663900156749899360921173139420027448434785682599568135914080905918095096292817387960762063976320078583027241566586916694601400250330753988070115938063439041592863152089571744873668864309537121417656444348108060497147243974241418985576266718324451418994873666274503645438215254258839865035622245321570958140549736285268434647747022025988718456583914090738222424111455935264740990643306123869692996879841754060169539755670016388217198429935560371156192547783400636387797332935055451609565924203565803455924680564711102457940514728882015115361942221921633155888710515250973472722934351827317252251663660726607188431993361104119778902276816915170716882452375492557488107148722695474326184692373198590343110873952945190823509038623405721295777080964013149737105142474614103790867372234743937342344858454063987682134666936149670139864548348215152116347136448738290745313819721376028134388099218436796522388974484786018531183131761693162613869615201317610832306408402701390694343185843952446045070133713567367883548726277948386487830214383566414116505201783752371726136384346757273058186736783687265597305300056806422251294886803631185775184807458252061698432296734339908096495201793369564181333920708285528940628983167006226438143874896942817378494506625706262069812242695462545940435806382310128287343517264222850747031352919540491143780293480640487416926688819506189033090760967118796436809015331445274722806527284731922207661334934226414280456966330855386044674150920965339814222581546104222347869399089266864603381590860695480274896760675819699636071110949866740586150906836362992454239638250892841781646995278939056926476450086225483665679435669575014025888650590634592962621201821484325969996456071213792301746630115538757830328998183104471823424889879615570247633985229029285344758299606178925141717998167405839550009392131504246832304160442866635997592554881326747533060079876971991598179645198612594851179981198365666593220632766969971885123203006740919206785563520320147777753340554188786481669776761906151872555262876171257458037743019086196734652872551930975707739658803298205863990049389147812557162602626857739272476652321432202766761645001623112691273420629740010803836718270271409755377520377818629380969966084858251930031494534348449921068547781050841804075745854643610332167243254210797986667665002400860558064112999073331749646668582652564393719742101690285316638781846950293094010991966047382977828698121066116277349635144818991765762887383231022047311126038920442868699180933026252335147044695786232709507002051600879081889806645412437620240022432485689808937304299271528374057933280062685729450683304247732797833717793896969354981141740123979151165908328250201101302281847442414625542678725241089022705261682247434843852800442231948780394615256402972041873635983921937048960499722494195675936117345329011167690606490196413001915963685803996604255573028209124008654063528354834603618288436382582993567252041339884772362305035015992402515356498856199605326139540693788354716723477419290352423528438532837693759034859614606882136337108357359218878254794784635613076795348159456376835482862573309240319792493878539325448515782772671198624631435470563296407447608453936901063703816256867418443513084208857516836626928327977456490841094623271904455576669501000492256679953615647425072028597393651752309466053096565258588173087304524408192143361856301655807338206820170971253895628949918393876452499095973363676904978726245280107591282773421017954841131881806662389989536011357823447791445161365226141865970690385085894901797453184887477148672757423162360640849291494122216059627338582148374149003202940790818452720373313552813547074769320798789891646715364781107689928693674505122371815278054461860766924890246087476851922913564869025635134816549227668542340275728262255304525562342654533871214465226982961962893926116080477544727687955999328157970422136332625016058401596173979521023427269282424485551336820296902134207197384356577992065026249049499773256773709720308598018071723171536309593817867792767093395246658856616785893491240408093418084739083621008811892353220526407424869690838936685532978004810775561578508499271273406485692103468257436518849714996954487799202901065257659570481202753748386758844819583765942138530515932823907717569174692563358637284909922781889467446728230874483754547604333689157782709657486190075143447004767226569567460691380602243603924542535110383221875972555297219680405116025389973029666517981463319259845611323676411344280167466837505716128011341011741805496951886231993514930682937472996728533608667593227269479606784358196614341336283582043783424683664490862196197903883331864685641506094987046814456160580135199200415109620090474013664320640825208461602386749979139437177996479011189141008219947718707561417931678957286266353155408332972620331830308177454311293212400097023400003067942829271386822858929364220994301240560071201420726859379594866141969743882704440810656465320796276651979110927414153063770293981200320559217348546302355603257232714901981785288172424379845289395045413077633272203217743912727837500864750786427348936119126155008606631771618095182278605172178360577319716455699444704980659324011569312976642728516993997285318244605223966425876022174292447431584937756445175282391811831118667895737796580521328317096186748541652217002076188249323231682069239023303105962538898258875361136760758171571756781515408760106930779831438150973182512413807082217926041662794790826549666506696805303233520493243466655330667414210716429940270752089225309182096962578658626565672145131459152042427337356876175326445720304985972959902754126728320698554867805355556142388864048159675373287227241055365385522008880633776298022470943424756090425217228563721018264915737312702146992142616970492671739798552564712047831762888447943179110056115489009081541567888621938644850440504784099907907226218304868868195958104970139765904275322162037510054072020485811649758015956301463216414741010893968553227471174315033288956521977825466102539624453006229070427620543797119710674734040130702784211580031760762270765713769147663727021098478096450725704202125009034670649661571017530281494299992909095442581908394174620617324234771619965159147519022644575987863893526439731774583657083294121697958064974175772435026169250746953627825261669429530709680287157919253087274513729922432730535257286895492118368158450008943986574435277039637795033758439393909987492078710043391223181350793665180033524543467696372861644238549646153824809112614644562110481291463626065319946828440729480073420407499638347210604825685398421292078195611454211513083469802102254929584689312021489685816253604993636980876594861796119236723997179554733715654100199102580249177645455143101661306120668942657502847109503344378008131832201555310307222478602482812973806850671338852209251547515072231500138484585564388794337166016380101945327549537576341226460522662780449121867219071412918975269736445568722506555261568099379755392113472067113287750630882698824713389471449941840142132844897672431678105562910500704807963559856184303464065106922282141994182501888916137554120165002434365625026292809021113160079979405712867938697166654634055236496196707068720029431837671253729843787908055927065174212929025930932275492751724581950661593807205633986107184632160976135493866207655864864867643491315502902423034217676930574188877606202240982632863675069721531864595144835269772035751385207067938747814655368786951699406008497261184801455078652569692304892033497555300800292822945703337172113996912971246183942168790970116565331762750631210017662798072286188278531510591832753861084829372750692021309058533916017080342865804127181575476152809025792920823366379883252472076918075069378422594849421455607631092273309335607566750491358432535838430373460487062688226419696978838803217377346006394439634058000952279334108853607604142185304816164555279162480045179868967619912667461971518490492452508422698970834977426197226148976188778808446103034512222020153511258470439652919322896329769899774113942775737005710975954152060113383602199718138972872970290497782263448612863820088418076449273482978120402466564440542537221302214199113029731560384796311924591937507717678187965436648540415624252032301612388786547432197910189256211529982003619403605299163077868842322683292675160413356645279601484661531540855432740079011811628526373229063440443060727294154550087435440504463680927526568318575847455930614322314116758675956205679729595636058907670895929006537435640613591764423191125568119664218912064397744270116254620499043425842630802961548405649390329849959632940721099463958393232154744170448929187109894657668952234398926119641014975494228862360167188704221871907837428574615540379355677716873917023893316660348571389067319323898945388300719807422443488897155064042260753536307187133704092126183317214753246539511960385298009277220798864802111270660203334865170422045284598165250598176882456603126802565049548353605335488602069684187948620771797145266787215415560902192081866448265228086575541081208739226741290427514359424350751830630545497712982089982486311866035555854833571083067316290837410962539636127525265297943656297231679378320041143757137745522898778681586742895219453448070084016548290048248784278660809805727156010689343589643020814284095797989807224406349523495822297085084318895321605525094189771014278692505853882785953280444939212239585449035433168499745084808938885615230974214828379652276847671314354972536397114388190213851400131562687660886146817224302084951390831799428439558005781105369047122634636088717657438122917713463561146957035739272143039250995774399937319972896392614276431040407301130023986006178463982357717738028551070499595835041073250327106637698224613309077010770011950614871294801065424538762887759497255779795249900277683994214300348709227728892210704319757927734248589311674965756653639224155886980521675532700069875454530688748372120705275056511211878802278381665963827941502254446723833334790969047438929514247731300086588355382689069291855898878663618020245775960687240377271883009094578475839795310625587772007289647832088646178835636122124408507035377234757557366455771964118569849029896820460661146917069649129325772159694134843329099330869458212366349218622475947560980767354603868268102276209049828956858880359925132571110002886965404681150337561374496311152095325974658410419644208653883914194990620670876617146061836802561007330566458225816410146104632322201091034599287458795027498235298732293741463674608954709021589205619046883184350278192764003108701322208721675847973550178960792986714027604524146252559169135516629451984475732120638535913828820090497639962638595740362228620686987282932903701962208949724115949634861609781177291162999219942687695414606936431234871630982553587499738825510387154724724558374276799500121373695545179276304683108219037939581647410167838463839704367974574674631242704286380395179377513377705468833478014658125044156531898585235832241798950570021326345761510978778634265520723747147577195983718030034652790963537845980864211760887249415423632166126059725554676002358477424213555445607774081443861591893879651153304742303560323738494718819741084890167985713889625914484410103073247222069035505624134841560544578191488792568560236937213818574068000438792166053671367565897736831403222945133414545939845571911540711345778620155161371132798682043540214201646418837844819025165350456648530365765389957739477843798697269587842871529788014979546247535609325217353937041745613988009411963666797673404388644206942922132988815116034074631478912895010207074273455474477387753860113939580159496093806335679877019108114984870120850802669236615988599515791330208440155042865945574698524486152282915932520482040889134183019523062227325503006810978374473660693777542428098467159979344300317368073033162357410475198056895065878221656217362240888712784270949753130550556310568599180475308624544643683680138646551313489189768534522710469047509317008440165056644997715327652983827266124168552929731852026596583860986018566740303579959661087648328733013431523744583304718550875049657004345105253916546155750596839068811877046283082033183774286878711803879797066823114116078426398614869351109857449756184524629134839399697150634855335592191527537941247518610284272046521756286284111311096503265064560673671048134716493376102444078446498782884889859725185235311339078231100142563918596329867800114303949760993057122702782086693718457216151994800291417187351470900354465640917834484723584173141765004114746144989058829075928224983113614152223274344224202177823657768501874510899906644122388869037035813546584204988323879620776457676194769365941028004758887066295214174495872999668758232027930960142108853647370822990721220305850301882107854191101027019580359914249827781954036024787762561042400984773093280576341228144034764105276527830496742885544232338462649856112768493971557510144043771250569658290472928073599898618282314538781443026450033790390601849422251563405568724779073573227391314731528217527958313926588235031779290247804660250867277119627395501700185319095400677493613087384979037631778633023101909254166941014456625110078959137249393658233155637586772456299264505872649898638902375312817293497728924285458416960815072974072075899333652996083321241015584277157205255741045219116761593313918941052025038872432266417397095472239967438623140726660934268603806701634266074341652128921502886724312173541055822403855507234272460776137922610902947040459018919211721926635990424394183902096861758541660662816790417757626852144869301613337601113648889188641635139086693958061855219726044728684027447674180539913573228675743262849615215368283578710740086719258183321700357413041826144409346830931881583217847624916155737082188175801722778131370552838141575302829468463184208515423990409409471483629313683923718010070197978881742305697121133682896465825882093084981404678018395235311067691507145016954924709157066754772996568450045604824920492024273048101458456655576343937558345979295963846764519517801832918238804205138302062188927984599110567766623209822911178274325403601383783975974466796064359525113011269859804875351365518411271535847107923566849352453848470262553853804913660740891973090805711011823851747436874622029724681226496089774879756062431911736873065840949755274474947346370081681537704885851932321229815409619197654110398876010496815153035256444541018687249784022109517974456496579470147174669884780261982263907429336707982165210773970496163373063142319622487140560066318777726497435445853433588311995229369797754634088803166410831598521072289167278066279550318991041606420278957321704014389311544317013444073626769881858187666013535835581760453782074396350372861883184855118034642126896988600204943855113391704501577333599546008317864348649319331106562659130220525820812466548882979772736085388093412023759682025745511096636532028341027028629619441914010888310080800182726814498904405503680225660252713477841413211626586381483693771971183859492083816254156507731034274367120312523069296687423514905573032435633446117774102812629746255364278814935187715338207027857800362877986141931626536137209284340629836681043859789165263849770379295537240932086313739196912321310669733940920005309539852954009735088242735180974967981866046183393453596753596096048575537288224113883744266501163927655268370534497993473696111679569664857672699287423632110687918959110676246090987027134653837654165018098595521595000853439392685005424350727668966615052753632221624269956226154218813218770633459686152849215290759780755745047179546877189243000279916375114181266075622517362129753784774651689850458009041008436779135525334485206518958398474183277187517249236262140983852350057515193170533300964269035372659899839868370553488806166918437053087493113378704603423588527146237256256625917783278882873413828125272077377233940294506118063115397239512220782093369244253181177495553799926630699823972110895907641799444583153378647861359183321805880830133246547533230249573418852350647726159456444344607410254350702781328290369465074102293846369682972277707991277145306723606629019746835686539611174451442353333748439502424167087564535006249211907615311448258413430400053187199748994605598978766009988853742336854030905964977419317492721167357544605043986738743358735147723739503212719483363221660547038875053186605819563258302283135846701932207661703597002436101195456019324607579869218157309883729624195603315237079801613612800658641241300798758676790310717265406164679949713027966229649159217181434603440782671350794805479973600465110612558258879980509373585297344769193796567541767883608188080498980558184901211901503363774573169695616424026573617337752041861055088274359585158322431566397132010306734504949799011916468251248186526980121814136184805415929827133915512141421929628759721649211744456662061248491538182696944795287671290227686963246954189408076092858471745679476414776642602309829092156735650353892172880987029683932881530175352145812840953640366026592908034472462252595685734736517356977784921380486526618947433476208856088754659381175863472070468643308872737446201344852480915081563584955219606809941391227589608656475283538571754906540166737585645882028859109380298577018268435080972101502055944372045991192462245191299970046662292329215438496849206368745695479540571637152579315922158369117880255568840409370989761797151823668343018537903058730665861389425577011732378075281349804327353690330379856775563510349908377866516249632267678797973933132580172620503357363685009138132437413545228626967557119487971259040411567679310322132317692085098715067027995595849349116277208367006563946616627475023603881803321061706018043701331405120498071675573462174279742649248301836023900129692162647153353164033853870739271187526530939888902974530575104643589142841973297022063903270372751070520912320325149258926611506250596203684177740039206361890060838073439152163595181166265326694098617580314820820890138268832210790856559059970284086067643303487768780354836519191757284441687104098644409064272822754507698030848889306626889158871884322333304695758266744519321154198933696616369932795683873764438713353902854112304250763631867166733279194864359176247418755848161576926963508054927679424666743291840593965766668021605154933514438612025447969876876916694938930600289382228519687116940361066475713364493132688047103182724075048377342195019127342232207764970830701212365875200584137012948576046395642540668966597062128744640624955262717952390032209003250401569942286240703807071480294265156106748958839827416572272166595699656219980004898506418049356554437779176913780970203063298953685612521074577440093817271285185509672177148273840497759376535413492601021020216914131367024425305350060563705448545994429159863571059394676106558991738145688840085114134740986588401103534484060786263342575637069037660790525918840116932010895986852300212105400374161148233266435551172751645880645134909909795893120093579458016143684237227614236357487952321264209339916886641800866965422239912293799832351811745776510406854305382422602056368561301595023934566943775294738213285086089839253042826000028138207087220204698874849155037154304910237416480586925669808324815815507769435435363313588896767314590787882967140315166547005178198220470885548312832588715566152120232048181495246345698905273754935635265229775513580067619564933407362061075461520411651317968478445463688769961281239946313763693645953230467119144035026151653611309666055018392957461659351886859297950195121840318809230472777241280172786553645725574557180559338681647127552831358059809366051856167605068013908241471480433548749931213274566713346840441850384405337755870431837045600051566498022208880065198579563185581197177636976103677943891026238529822835427559524836427664615591380454456237604254518274480224130026503658638187387329781411514488239014606041891363220773289373959657147980751737241389032898109986296177613984204590501444493394604991943214589907595776523275852593828670041117794439220817269720341327984935810653635293597477999801823516581653107653904236333259692706045997035732837288852717083048679068601928533837101647707106619998125284142724770748630978739516020498854749807538808303089821116469398266238290730662756996648718104580759077789742065779371212703225492165176726777211419313782140608672217182426332268351007468895384908208587646824146363297621234015983168729797004337189022324467254185002914682075969719722049875642440157658767748522273349826287259325707177270474927973960669960978823843399853654740062110103725503044191529490504008156604557181005793061487551003287404154354188659650722174900569180689522935494948783882600587844074353735951178619797709291806447481350029185183029003259163319452665709716540242640985430033171007295094163112056801984276117059596657322521174151084419692793428298386804931722150228849214554357433838292283386489533866798835539506044960331214125198102208325208631705335342917490201745195111474215251788947375787448275301442432447954414808665842690113193553765953155609933810289056362534520054765598084785615812330034495155465533136895666472495003728483448189780851297088736771809712782722263805587798452653900093045951862654473177942250763296950357551410053273244438027697456199022877386013036867966436243795861622519530796736145198889234732708825002959829598176111948364349802468820877361396803886558288887297389768573215751487172145647068947009181990911611326260873076547662787423925994529649813657421195114987566157118707122795006807160949758338454429818615894110753364831110117715957543750594447719739150394718328442143229469384850078332962061002177417763347712223871710752680480758540112954291346269477699418704319744149878663718634196270771683952575501797162648788870991332289126468894692131429026225273501011917786408633653609631096310985338404454779800646242397200822330318826404614391201870626884560362175753821161893532584950041391063030579942720633471627594132866213607943490880242415739720833108825104278899202443349877682050890261517586823440317619693001867573567901119177010883477120149456137484346194090561985290832329242541723700339748449439268970596222436163198108857221458462323934306089217037149628322194889380302184744163707681764487234083229372564493344244863878128987665924407319583028482135953701738050596698380481751067304781240196719427960269433335318563225757521734053941781961271560063112179557327582781732774983512690217971618682440629554338722228360923286840747204868457900625603981557176562822694467325887117053844662596940668611966854927283194989513603662449710670232463464628185585209138027216638309584164247189109716178498697535585956300617592242845117350329342701964121053149687945086329881233418490678294655107724028937318351604090931238983389321340853650942194693472017176778760345873390272824106389947433976151433329392407100307136365572237251900882507578253456482863734251589218219645043283624646478487253562297430617869019500202427871110951292387324967050354176472491456668859933586913585190389977217626315407235752409153358059419741680290477175609257082454688017078994042762992110920836881731843815890382649359201783168194435687266374304830661426567527763343153849774785352171187125559918733913845773694322667372351753314682650969560494675534058380212903077882076140798227216592059053850393205969697922032191811866050345856082594829940479090548374615819306542672538108938307037629330731019524024088499624984327015337793980713513196286428900171978588073271895570240254278995815537266358981428919248611803742274202618696744649230505126868086475215036967268434278348210748727237025460987841859030407664715192568962793093753456254593653790500068648710301178636290447543015204839915792665093424339989967966794043702163949991210521528233877551854654118277356669912946379959244600851252489769791834618662894674716488792464564365303344940660279019739815434126008325136319629947047439656254225239379856517089836812507680420695283116193564271035395820558650023526997978633888865912100694916528766616323902846233776036783375405273560424377761410741636060067913827455800708948705937605985212284543753839191277356503298709496323891270737699438952967433260671149439392648953281729486815487878636707660522534391663567392579588467108642391280053877536868528824338975239532675495848840362697911710797753842010986493890832791604681334961099356039091826315580535615347723081714127691139120438378917518767474697102334482613882440655547601783106958513203388816153835284641693532652340039737107030319535259611516920558876023296382585592477796581064799616414680709383492017513502622057419321969291837496021242769398267766159056817858579219356301396630664962832705331098838193890770504035604465567675397484563488049742565869434532887179832515006913735539985192061834829661485599657262161375361405381326748015498835526704381343867890281267294764577561113805360879137734699379703472394949620781375676160491052616770193642401746232516968485089612733763909118320786542068582983142856051075534664976818024281790823473548747639853331106427037882422446303180961983906771992698322332828601647266249645899789188801848455857135864631000309652069765327442862934433244488223385493869883158180338464677658537174649995618568637106462682328847568070201877869150936276785964235721555556373349821125441816540938278313541360515136447308950966031931406767223234552795591539196327326638470118111730398765033828541038016264877710338560517238484386863953517275893314610250866416528778795760132290022457571309445499717160893874260806948324768178500245380005177849399267053950390665416664369238963472698807330911472492721215303510865171888478797722549180755434400713411104433388748585739491528222801731657442489158988672998723371952034453585470800093632258716300047385598508636702977477082685227986304965147312346844676583877297208413950701691075218269475014682573980570999491297734519470904802093569998657707844824424466318074534490172186131050019353692042071100132137263630177595362361014964582128899441535813193377696876062695280066015118205601018171129778814859562921814218685201130199404582339783383043490073195470937619377658065018919425481741786331877691083763434638383650797225340921583432409984278161942599588747518377306365142572737910301427981494013003184612997482185648553045002429325662310052456078122197262158170331269912084398664112826932945270679346298509999391684133532522973010670156566047778482076507808876255723903733977514594476944906515495454143390694740573667120616240602126909555257640501619738077749902034193530250920728219737725137031933087265104281217854217512365006260243484961851766480146828045009746868774288010993659649428328014356819077017241591205374840497628955209849652505717907434168101517800299431944163188151269034902470820094704167298200084235548213232821607012843737508614261479047624460442122006236995851793751392022892655055288783216486184217656427825697035711203615472867819169416284887912900325853370290723214548855837599051751496321999176754574775963834610712245773862170385145759501835845889540857544603108989227573032886698269175371446335577113838921129300114595492965223262398636135938872455588916482649183169200897719180679217209490295680942831316552709700219241245022786438709598728256852704497496867049219607140597748380528043803634044082836439206989202609954870255154515939437580287945406225217711642054559875549816357286984748764910805201707037040247374031133296238422985197407200491780128420560257643867724442144572962947071555424584872412032879886238325181713504134457907571284847725859135148872325993411565825028840428304915130785383797442886328837839013879062768272371164195796760627134894147834163676623437481392926676847701665913103545688085955553183936990880573251574059770095130187720591028084751488350325520516731635907592318958851371216068257815959020286552453685330981365519872437487534041770772637476463558090987515954815571332610628418297158513348722968353160808818508595711857462710211610728995252650366196634173181202432324620382643032104200717215146569497103287235486073157821537636605130649986289074092975065906209020645475456181033123109180209961771416251203968409472205870854193403383989862546370671580125600271769064186679627463112757954951574512653162813068014819726035082406333802773367931160213958513104484186818520986740989139858547762917852453555512311694744161007996075074566390172004401844135719341023193012230465728463875193312166646426912923733065144834154421949723697617353755191097630349498311800564079633366662195401268508105513812727260703297288674020803439250838131007627695333229174128968548407057679388508446254890783007783805543110604111510226120857398379771313366922447188486788479463485846391197061026770666096202914419928705675177171327228114213803334687845668541618900121320671221880324920233878903193533243352977220331421271740193427673869796046800336607369656666048731043684158744227401144332679673204746474266331119589589414644651345859098656251680731862350182487427865170108810995771269289524375016079664640534344228311603020867653637512512015951021771820763493525405576344142580435756747568331809526210179663781623839209273992138783418897815171332413164342061809102572348845543880367297729061881818036188080771508103135944854085180398801923939060528655223436079720885198486055438758487841020017881015666363814364607163408574317204906178092978549244048517734087238485698425980394337431571189222180526064656025736384831317913761359379125671452885855271119643417109859705623856025784308507722975860330558083098507953467874952279983678420861097716584508647221174052215437820305060446430304264797304021196866919756806203798425689327657156160812152218351079378446584845422011093702071764573138141659680609490933663890067364088599649411828172215617866422943006397696099315625033464396272701618259848307678278762178213384252900381350257068229038641144846393604310226911525346102221340312216720574314025213699268406799501228019305728123262890588048070979075693956054819655577050130036473765865716518805248316223286670624192846868507436295490947436936642004413127760629864747458594020068905565905547057815098430139373450416709238639263146267568993908669607755123841350803490228617150393561736073241227479823482803007017611021086860292312464489315086241684317470976814257188328514882469960607688856875110373554444940828834360899560339427383763819158363155408345605393539801880465247343813933733241515354840891151431633205701908477659414321824795206859455719411291746049132404265343110673026525318084570320620474655614799234048911140854857821546731255710598576869199425854315441503706465179534494952545507155552546938054606314071191816146569438429157060599002288380577301243701653685198996564350218396097917863709114339100920974739441408880739053391489537950920905759602178551030314472564000973306232314338485712533178270775592451260995792967435672114746164446901858440789715080341927564000845632780272659632420705813781336226307901353133007827001664696753457418682484183723766534034833263785636374140884050628963975553867670194116682478985081428673297527481644073023930136984363614477133411968030668989317503249050587085809398373707695822198618476876862668670801444570485897043961934186636017948324781625737705793977462933035119191164254470230601740623777251058414982784806307879513221426802119422351389437581620820802672697114537272646111399897513204458591462182027206955765654845907082979311307838883932663111490353518006878499055647256230862617078700112145505774209237590595744000028264935238818907895869622766475197991333216020655811224392551137306332033990124842112759109245880311977084470891662219281400001986745588013706080512991613347979871980741973877956689170714629170136718675969489874522000115509931481073252353637387474123190395763144105341894170678803123316866528975835003498683931002599791644090289367856939856675030494840058013405117859568981996651319315963596762291514994016046687047023679144411798573241092834216657185556989257230310501706644917094851292860453208648315277337631538778166994774955724345925370248239495144003025955706613383492890258313587506369187239419161156452620392322537374942109134897133798939200484364753996351858865012859937855069794504737716195065692608007851862038065846703564135019473839128791391683474656291731570329737988679448643487664520551839999950136252240230676070842556446624206409596270849273799155527996348791055058276113700592618419925469610554688972860642116389270512120684006271608437772325713213577322905455673246185836351785186233696129111779569528543303744142760782365231605409806005956362453694187320690160694659377590623211174419435014158796556868630124137692910517530774220257466312934976944571943214958289610060083741459767817260111118200781772536437876560640881606061068131910852616693113179627815049834490231353660601172819997697530959404941355078966094243157615027760116293183175048074408043832197341869524754345569689597457824397016191680090717086266841235153679669059698784923666906417911604993914184293241079232484869910453249954102713435452664648166413587490196985525824740586140409926950645684918202802945342232945304290803969487338412547323130781790489555552516677559875694312117363963767518533689146044039683903070409875574136610900472021134512911702759527717502920866201403949953705019419726800294534359047115523754085961030287753804248978846358235624181138580969212221620964974661275016393757818518965791991113090189572750238860179557219164350649411082193718163564686074839393569919368603763310760225997363714507604652978614585679407939393436745767170144907613276012724699884245035156822069268913210808268228658301889000762265183056364199053498347553324211809578231723196622207093241081366763044104477478389336084156010094251486115729405452870640937262556812784164606872061010570864878256085864776215667113041316257196491385160061430527246449992586789050089802650311352825162071139206175804495326668175362835157008683183688124014894665926110542783900314930953971025014907566563240657558892850740294225530318482627880408997226229288761496534210365531734842379837844470734929249151972639505594232361282554565510194232893750948143586841579400370561435427529846073432279766754086137690013849761273256101892191789663657188168653044356567023249559698826689309315568473475088860713928974416062785250053728310267617597236053613144715323275920282020743306415396604854462731784779134786359099377552254198489246032032491422168368284488318886580608438688981190319427285842411701608590853416796067546795918473129940220172569634551473043263771475297249194955255271969612115381277045181345182328282292712361076331218721296904853401087933443775733154887786516814664510629658553609438616327783869367652850056600585139604333622685765756561346631915782772177125308821559806253615841155883042979096425828483178555740091108922805391708217951257303557582612769839561446890005832590612087823246202300997364719895804383454747012138988859687825211272880786037415695399090437696951293306822139685473612419118317196218248043161918645085559963123267972044061952602690180890526601480712517882435616329831798306775527707222334996852853520012574558435304713588611524779254430253410102587179628914287499902231693354506145976901956604799779787401550172393304299564889649102245543708965525294107623523801259091823944311148465252222178735113978624503835279747783239341041362699418906890437220626687743637263817152321877480819527194124286020359185006075087082264987447480088067629085247830736599307478109637190830221412394428792912600346083619651727033899807597599439090347111017671032929437091857768588726110555722742308415796549595694326904713393586064770242739230674709726319521069729036194295699416960041684845732149212865760215543678063950426264491507485766842365607421934614233177370976652945133541005440218546141468678235341957971537026818703958602640091773308437429888847840711474691603156194206472707875362779004584264449019100650975334582841321388009655150436350267829785362271011749547926341463036274385014889576789104286359869528371310225701875334187472905682788734367041534666710948920702741614770890844472501807154849361260739251795614336440873070861160829768188386703570432301757587171880565617092489430060801545449193900647817912423752861825010662698938911065602863832635322041605457358492021842446121333119018792055540622657194046815313686249734035759002701420681905771533665158451405052629214067913278157886145722447635282715276896591266884238498613689406981069970323497332575556278083920716532673520981158591172980225814309838213804998878228972911410249167319371017915151886008768049789352009937715894794419653193685900758025793494661594698961885099317964663945155054449961206377460260442795629051846061713729305526117103263196733120689698135592409715286160574519838653548539457828106908313607540862863497234812235071153143751536190386757514978107046225948564511115907136120045629847062493963184542864557639907711026951628809350934360140982129930610352369904367970853382380927240742843424269603828025020120741496511572596759675162035573446491488348225140553746002084404151582624308164570548960091931412161572918761823810711542005574766925905655556163938799022617138814286499313499494672445025006864268503561166436223783809576801516898580352263889875027802848192571725941892768405158171702925449393719989976696748673538563654072874588725193995305090821435231641214016696528438072344410897268420839120650899055710716848472142964507808580852285517614530745453754431541209741587800577656663512077533118622435902423462753111016608752148133964845350763034365086291345033375909147213183577096716767609401451520236411353903565295390333721984973561478825226814654881184652320157075588451646238941114816745618533181097281537086354539169981069996577900750144442566727037316205288907653298568498454409598813569617593927335128462470254272111139407827726855786578429512653662959281753842275787930024055158344269412229976571895525211096488158130196711579921957696728663487254986826517360062714668420975533971210287846388473744471176989888507557237664458971332959664809673282806562185112862618027970055538939806597359033886066576928114853065824274917703512932256481037486983050771686287555819449759555509983835157358301202314709803526455018057482077324943145063534399508411158765672690267188963998266952204396422379255892190873562834918577695828074020008308294452224366241721022580116159138143177257915876256245992514846130992229281965198943653234361491581414760248146482853768787915988208279597583604823059206187969890611521195628639442089110172243069053092260294445710066984058288461352913312649977416626556426479471252487290285717030951800411791675135239066869142040202473054256445440860046284165692403350309532116303206788880221422573768349407707289802194697972466293834950808882839785799628499237581253232163757244592593810381359614066673151664031721887488202619478667228798715569303283775307680837599226901495484129969773406922444396126273759670123398345997914083120937407086053040572996315469313358587585528608768386464945514648738172589348298423275631760631612314068306621021115544255987839394530184577464648768036409935941104418033268432421789937186748137107007041175784665900567554194629269434955795126990810708116354557072109501625833397708038843705480989285101830121484668194383110644463569283972677596029366878891409905591304990960440028261695231790003671317126835500571268559365478969147050550620921190185090031493864997781407278328600829311879904644816562166558977103973419968970271244192862913534235252769826001866158591788242237285832519897366091586681573375196077705264197081606142308629589890204599828490612280934731536738035940041286517986983524715720697742516204840928198165656676838181595401618798151651927045145474110712225021241423312126945190357468955294882379443168404272208097975243179891938470530570961411468537397301598396778722077151880343924136715169189127997537467074788529675332250644704016641703279600887445366943074477892081373123141153776285678949532246778389284983733843530628856331758737689714259039810836861845332644311721209861368977817345830568204430590781030385492387652097690939419955042960557264498053822008179432671149511909150592203328233346745380009085136923840255511511385738716831908391717060841486246017290738468616921190452539762583906704526262332124014399136407611841470780277425211742685873213150180450092818232475084969920990711331638402757679161801860023456939854600555848674880637847587020691054986105708819212020038960211810187145734400635573940633056465635982467932186651850217191967132472404794929665624035838287676233766710071502818493172002776329660604094807497786247189819315791732686286467592479760794388834110600687895490198252138483391431822111496519014770693812596884744851413337401735868654643986999347011149144913829807630834284056509078744411428920892782339870166247822585071417946056747162217153308405038596248759079849761072888577216750428220161272526588002291792272822109954759554418600802730998245622537129013325963805670042025421436816966682639672619905172040901045355560240991520978150339954411181291113084522718021462447029322646194541504940639638254658345933061523108414443723925505982123470702885203206455471676409901020530945214359659289842970205668501897944257976051226686544125270007840656217165101611422453333811669938809074656932291688469079910949443006484786116713396781334031160890128373081782399154960331969185260986931451291647788430969549610110886808690331744509123812082471747711746341379399557728298036230878606036448349526724721907719451094446619809891430467325232386944063472814596387503705361922716298226544310219502507663402283440509405046462406849686564253322992392514982529027844981634872775145097658858162268835263634451307469971499487472789322404923398803126949664576611937888724799652186010784816089187970222901220683867795677405244799318603073950809165624146721393958814296511261034975238153437361098495207105764319184357736237209302404150449204363257989361588156261425716780591408509678365323044016392114414708808428841287686171794168868547388895817125037684350476248197557961071768422058199418781512199199896380107811165270223241249874029283495276845915765778032058014768753724884722579266122188512206280736150655471459949815209533062080527113451265620311411664675874986941619345914007339879189202214635876961600035208886586167874614725642865406036962689688865760258021855820847056486699846702054232118289528391520015185289430111414019626173171456949983124749640131051874101437865575938847399757501300988961344963348812955470513399700403611927900435985823620188107130261900395968878861364569357688328591183579462426675754124614343725823878979252030162972680837467479240116032045952142847813275897863491572845159171579558764101706407512159711953373074571064444883230001870198213190095890076155142991907115303976766245050828725175330967301168416463594197807803373779700690116943828331252875721640716435811364417415097208137243891527670955726616326368548627020733284425500868352819127376709120190874565033125146678965003571686884482267741150267139195250613080181147468729388909670246736612218611176941635707443743033706521559326796256190789889420575266258002779306776457063538669362052410189120735646533705305293811531963509443701531141919527093023181371398788803876596299490076859625666368177790626539823629972304309930466628079732273199113110709421274226670778462469854365210479581855255049552802677065379121381349268263451670602112091634280300600778411119899551495354405857255799182253565519235160921318109480336405501759486918285913004044051126985944699023902349308854413686694788238035414175218058721717824586888153574292073010233081992628158285041073060077793653142034883205612170581092476010107333174162895361468663885362744762299466812874182739519475735123570063106979073951586752018227873703634907451719587991546592589391541003739988181656308696614454035847613780519515118410886766666933458989262524588845566149956598552078808529271247098390530039309172325858083681404930969948441346744640585328020690039147509959538479142182785772461863339159442402760151536103752992023684033799445099044713836406081116538628376209418303773550665785882593078923483472162747502611788981477941096256613699079882076439350800078411243372935256802648236272253935698375314111778988390079496021197639424007739030808179075700728149217024635909187479295756198149841919779739516378918000643698742938059775429468337183890534915707781873008075198231742929626220891226144592218564213516959829024434365257559810836420162293418412215497624503438649582551924413680530355067076433673792320413543952621921852210558119523272510846958411957712521106590229076746965170492824913124338229216430861002361176226233615324601642136459522893353508687518381910079691239180041733669301008316996273606990454810014066675179051189683511409451513668474243099272337354498778384560695341590378511972983821701991118933795502752660588777187840223843309614073106606205837710870932488300472869578077180877501208733728379398263406504144980256567309415895320930596507489869582047418987532409918914887650426017907396783353866362851449141981991192313567117276287493643340820670206297626317716539693542648014487913429202243051345754607052485153880605431227963773851161249189330381193078456323240563842580090609141289583081436610842706023935861164440171199723437550308424264796824625589256867448475610198480037950320942041752925937032868346438131155029576013232492983484804504239478957256688048256211752961256426693742625087216028300544886152999058547738075046487581196995019121257774525535886275941752383110293519249464484125541767940553515973780518392846737361532698913701940865517654292332523529231155070046368573045298414997957630504195238151533492854304671370301747508914055133864907658387631106745623069925261831263318716382811370680561082064841871892064255550202969383359002068855950569159373411412519685271580558290639627892649740002148068297033089774819347892163527672332922612611335473650930711338345954165061401070051615331028149312820917396172363584708434124469980434628433958685409819516122738734058495638800852593431969790583818376203802159104327808478108367489709962730167715772351651854437798798410046957267344521962811538484640928371114862156736987183060665605514920742944031131202109178445700409934271699332174030518491099962650541362080081128449557386817093901860556393968719794858556372727366819841554817652174851731814036877957420302158221603410916748029002558687143365064560404435503028794808436240438725613834062161204016696160128872464648806917855087738767769375335839790549450864919017477074825803646457248575490311369663689861942013681583039695877020962252536200995406492641800382973436161354785698055984037217852449816975365699991075495760903462355179304338693291256193848920325459238832926656684764327017862143561330885451243324583560662257551927428363196035798486635628450343006512564869817103720239723122266411238870578867142162071782377602252078422281524096525632255686822616846966392433168985535227915769812851463292198141378342816288490028601093760483517099464087813687340891276116274471753598228998563332709399034950302557910181366193190876290141255026713351256228284655785381211974146985147494786756766579721503814208298243184481777907524499853662950985069245149536460573110076130360501399858652121160658121023349891949826119652022369484842064433289446963242168103488957357077294143514195136705324053072252394132311448407987284050589080477255681351229028471324264728809891569793958471381219103289583164411037961454955705250021253711501692102391582040172340703478223706639108731081057442343922496162687250407910018648899085361668246677638621243726750134256360260236230940757686141246786221161080056679591595309050845899003914230237791548085334213634492105378099790974820128344386781089060442837121824127662606853783574094445570844501342166508469350575315113851086665047502123633488579778659802061852139548654580382225808173122160240600085001597137463679011950961791108297104261447664371566652667721785371954194665745334408521276833024428795743471067560867499502943969926684289061418581936226580750426576139646321791831024700894453703812991561556307551774041472018755236529450244225056402449387050366997749142612468369961978100985263616955412646788467523837034539090842489920532294279290312130873056965469069395241979587563689527018194326734685018438808197775101446430065523785546320555509867970233489514249288619299650692069453203163012898840332553975592749088774714163440204343200021074511697180661912527463416257993495859141413527235902304825087157241964135029321201159155050086308845462404296907886389989104318365072473877431159100431530661928101158572151728175457647235589831463945960536087608515547603181752258591720371534774721740533265830228181745074680402838292045546781205324215580311336076831065665139655658569408761852717743210371560176690110090857012576544193940030503906897324570693314735734771038092776286092993328057102729789627270788322566066538285121460090382477809797903019153265434552587974654394409098682936520742900020773193427069673760055046867742126498939223919928824090151273373547681811972323677018248557716719683863223054768187511362669694906707384264496955676081880473163522166699626963669124147975479584804656803702159261154678064321173253334958271194316055191661816828078970285656703603845307617260191653364024960868051413407028958629817150771231134243535710830733314622809760117830061865139462237762120937571285111034945219522364931606492129877975858484711646031687035682622365277621371141677450546074103452974893510328642295375960290186385404713876429400256199437227928379289902891389936341069087910155471131316968386199924069756794167807953971434156520576486474240537051873310532293897166619264847064969414529172466011749764265999308337036056600872440068700549554886439608257528784866773787918427060594769195262060980660433594996539786417396353269161723919918452170401708362387930852872795351153167698587082693729077304323261148791342585716700098026197261616089474318422260221405536894219816344514604632522914568184266818240392944891471812568718991368686170960325682471743604869860901366748982649574032643885768692671534055294723661274005748917284008277694471114096157965562067297134253257147201961017678179892974573507575040821831170139905701477697907228650643997661669038421325382566990293454491210916476665202386899148719168102861550166994612843489629026624977268358075524798748290303927732388943085077255173558493450920702274784180780325610221136417887793654864295461406230252537300012940339011525702131175407431221396807293118446497712679720862169290674164376275772588600516396597545244268313437732897465229965516841244593731544431299776797764400786339730111565578767687445111067729563544981646255927472410502970557511613004894268693095485248893989608296802078257682086096015729002429442907005452564408506165284053930565645858622088810950286214187619624455355599616607070665813478099182512823389364868540842082528193287036866538008458697804568596333532880131966753185388206949135786827857033828771186668826402599557103402822289430466780718067803423166712890873382976446838720499109740591844190039001486045362093251545531078420672921489160409505688780280844746612458168532097712561275677549713731044444144918213133187890007493041501643266804700399648618889986987867418507063079753926239641021906368374221761283222113373447645073221691585152742998494052085137468776352715355259075803541989760960452051331950555197836188561945136291435253426122337155393741351883134681555010962492547441782480503940269630417455166326376237500325504902617188586806443978418338364226625970735064812115963494977541484513382977118823525452678228507603857688588467796183952248921972969937436158539461563778611485910301771625170967539469195515713771388780626696031298059024889058948901267473342815748332197786282184144076436261575378965129350479017259257711645365395637266049262597557187457352189878574441230088635865610633532804100645880577418209642637274719444255777366258145786455739469755213759046444693028236460845865029401680599502893105308600934479597021483483885536129960875464477477695502768697711469716662355803821211221134283865439445244468868637741610848351344437032320482936067247774984714872880616456168802996108249328824538746267759106391869364608288648867197562760617047414997448916433703222455947552661018362151519836554036326330535464500906221760304993465010503247621964686595948328313389964527153042086055315110732136167405093484318874801088106613749401900066470652278769011244880051279902358094023947610661150289719527671227665435437904573492589465547237900431348250321220393763637093873357240089313814428024841722606577391855023976928013137148646866731437683426058155028539245193569569440815980754017875405156830195136024834756067915514916143049753293359376016526300714204224752730337196418184511585916849821223755215371631172620791809237850043631255172857460996827351729737748211260077259667457881536275842639114928983771685736300805233328627324661620957556098477412417730872797149933976621562371997325659699919887948906860038452263904371156020359666008051485481319411508109173464421541652537862663358864263768944163370691601245309453757156918986596512860220850781321807733771346624036486971016719035341128216589691165582823280285068986295621821682236451451747515573225894137240620454410269621497903883902980350825152131672148792750881411739784746304812747947485470938952731285623517074933050175006239393442919652013144246756374943421497280039376414571693898354875336880788738675367709856422288152530463051629065086378156082051352003329737242272235627425789102086362636369642305987791245654726700330200657658648918272829070366192682298688513034281583323819507057361014580510659667163853847053893729540600561345777425254683057109238206989963047801581293614229209390727072806981999198727187282317377788985541150944766003415923065123283542885502306617013623167134324998655646932030078986287764199697849231228683871978770028184236067952030260413847730240748941446974845802176475223578868627796724421975969711590298082734646658693649169193557562933503707151894446066383751827902113322209051783014100933264000791591734534826132148645686180495980259809645830805971891993678231948087420280527283548763304364953069083149149230006451650891666196318787663974058695409515103643315145207377570121384127730152682352427585010930165896569006310669956017917770886349088950340314783145411758588535288743650971367508613452249002380351004284999389019729006591456314623230318847523234962598001239723107743018030952634843057553667200699075010742475604152477713631543412380681607343168866153976140282139474939408484365311882896801088776458533655211615748623153616536663171393962942327204982836166660881752306054481295068514168292527057736529672496193198842338513079376916405521631871889652309830064851106655810077963961098131704113113997741282844790853883353016005563680974365709870403844243427598743017255304299802142124967544309727610229454628117010323914773885480903786278894145820766436566417822124944295112853391542346287332024499793300679112186999621108079694299904026138484950910965252623215908668824661849147980176225483631380781986602284505971019643048222104875747245328242910479465274640449997018414409823881510037642497708170680410590745801798259027519702666883518697694682717213309905341341449951173224817950237912296195493228584009582299573625352686432919984794808728122504085831470870256620132259934510689863993009243789774029583530122748272811483508130101050561795580155412271896363463616856553108774972850593465938752007053421700711274717376571984894435358667877750127446160415568833238445551056743939668147121728014772124855534203001845475625183964746280191260006851210126785052988656580054562571296667272226260951065271082063120311158900384385135597006838729733725621773152421882548023872059088878178028965939129894415413349329157863852374713522651287657996725555873103967081236418372347285368097355939079896704141929257732089829201478190086090329863533597394638512031800124082813670383689611177666064763568484147545732789607708608287621245950381714196960506378253633435483514205187588861903254909595465028909646126167963471952762554777112005953425408649180903534257721101292881404251899841334936468778706797825806849673703370965663473250816847923980369265404437428294765962428514761197651835288312867184281208742816532719203830649980534588000663482394487517176590655050612142649497566548167405561584118547699795672399422383634020691308804032993154775457434635335995131595786116112015398413455007156102759921914144723650159259185652084001368420711207556064810311348333891600130996077305424848087603871749823282792155352202963559651378745374551465054694680718685097228664316412083641991449221856983822222604145049490817053226670388996892857268692644141693169444548864625864896646175023414213167668696685170940231076599598985143142392413267545659188947661756079023798344996855133094848669170564794135684146274918623882534389020296177206958370627791833355157137141157271573087284781644923395236746307885273369838102305724636535941988233775468680902818533746946674381833090493684009424847200929463512703228070496301718108596649390309635432026910256267264388252015155370715050992990233259275940259919745420712958684468361080884473544973122432964048382053522084949882498968319101289510774689895244876753257509263483971711125246283639824987088709371954981871473978963773248064080894773799318254804696333312550011900379009386586613558785256383115236743464493378258246835093399427872393158707893032161960195402547292161844391857551526249031169747139767930967805756093489295331642510678418920879356559962972081787395950522570762648371973399051532068673538290598923991513020933091022709620869839105276029456113185665609866221017998304064078591132191204588417579848537484544676444699555580332734628262790515137290613748550604049106060586628278708454508799543159868871206537562322719948869020159335834180918341631576655884702666652343170317800039735647253034088765554790670128550750083212640150506695927250074016115392584788268827349835129143107754101925463355929055267660442072306972513919830995107569864288515845247114511158356289957967784454984471221658877563606625376750147353103798901310026216663524459628094657400531734939983718814348761371693744777907983511845381862756952303162467747333736546614481793392842995744203475673833793606870955489457190067649432050132765786217804118574360385520449443056326591250605121027778068734443589569085477585290069989556842611232752473594513770864023838734226980003832280573276127399826585484817387095364054277606948497712533175493434680925433634407724798691229523602503994731649823005339401066999947081881813848816353187382311613367232728128097330874510580318812135642573739872549585472155470180249054929044207356562332024275731545103415607438357491487092310429880008045811579435523150744184581864735508190478277814218426007134833627513975099694609837116155659650897244358777220304733755210113258385801692021976660656024957505998183451573253725733212667928245949963800256343299429727108390910319837337131235601711152842918425688911520481534075532197771578469360447592437238666994075507405076663795410963996524664041039040874364324077508074825684029649020698576053073059868643156397867996076703554703712785894909337024380902890054344885324388889728022729952484532322949395619521260605711872375071886531301116664513711839209588242163317848858093028363378690452017970048616582630152516309209156577036252173936790729096369241590609258529976641050640562362813377479055102040317091026776404935669858818021644857041144494720152481672129369014086127057988412764828058390937510072093823925607913372683376744688511177499660389424590657177111674228491339888247615337050918610508867406735791558502156336452869331981790964230591296539925125696293606730174619473741076496808351757720679045369470518695491706742000008899920744316255840162794760937263734202667005514703841045806472351327901999597867279241622741908082308305535557286703522112557260436494132416162376304063798582857667972268373126296016413180426350565815170372515550288510881321540564444225786235044214636212575139375222013705955561896419927474730895081989463688556065510061130095581664292476608844218695461495798085857534139847746679836876899499810252527294256493401306397835971064972459046964713689714801146261655689922208181900289441077083012902161223363248706443013964417700558405545028640889841081172133092729603880311821407375013233273793839336018111048615290904738904922851143599192848910738483876506949794893774407385188708767325855689784808100498918230619196148909604200998729544897890476595632854362506251084645444099020500959498957292600502114472912875579084267608819236812137423658185551270912773495807564457931109459304878947632316358098452065743054213812400605400770734871224977634022292847292124854319689317181746406908727829897647394057813436720695592926018227415398742194772593282737637155191842447475222925459018449219068450793733168982445346778862351963986332626738018585656192159085260964258748921860917588852888047687869650397345018448947728102042758045837520252696860330793961462933851608241452804752524469821571911329451331625631423565460835962331250310642347187894396586654658342482612583083023393611796377353925478999254535528180772276178561607786834647508608084414024508615775940803870559795971319718783972910434610233741243217722835598234449112291395964263080816058069163608337557944694149791126133763364302476576474533976250645744809940788860119809928540847467942610877459798893027915617977551130088603798502069474233977517969588835287979128505276799089733979808471290055778212433547989328374537351915785084881165140017506203578938112771528693577989164216689214619776051046377671436330554556581050999028672235586243125238015743046044542348416955226471668945256000095686123868716283399286352001630537871767785494270847892551359520992807352974229248236932846295711759258261892345897733562864740818719017762072072263349699982380722847682031725702301752719285929876226172401318725609615353722150610292664199743564121718471144914843100234542983233271579631160942269426573044661195913746126279346159497326497179709448919843149758221270863284976389957175760303892882366335144613592571977276998109499371819440252176300201093266627667007973178308251739463081984364960753265144934906268456890842798925238833379150555726660768052894364493275630237785836561001816210161315581769965805795099764137725462781909348279011149231164543494763000162664963203131928282849208965722936263940214379190752777251960465076075017061491212344867323608328194657855468698965464619314674165748051112665777396813008399075161140812907057782241435246638129804027870669508122137965251021229912893210673443862690859988051415825505109750108937389942441027206926077797252112247718309784949881239000300715540097761088221484820463376313554440440578351204411861128969385210540749947300479001299180245479228491567871543805221675995550029430884037828850185195458571629410440294090673249823816156146201566796206611511361283775441702495921326244382254437473444539810516618026590463394572099308579492180619686826001169513596723404864876020296694482923952471601810571815844463271345944098578882736893969487113916130814576709085102247634177270954401630193793433536434217499542708031087547233171674286792310361342879271139788816396166631289327115464222102810809656042026569821884115088393911084758539302295070104302199314012154745917181114455361455922122642460978522198628816894356291150454130693669677703692528317259000037461310540331864707656296723796717733559073209910291206538342320679226117064263924339300466508268249326589876176944598269970877174957094491980182998503329837312204531592352659980718297527284484745477741185761513184209059788517313769003322686844073004506252293466732480044794754974580670519585118558308541161332585830225137877419099712512255985226426547554949153775331587340887882485558434002384981605078735500602497141254180231370758719146894297060589519379922964527648044027013603301627710491668446737764778778909525767657993157945474182929707770050368211444130995684510848198269472591949026184959918492909070491995819771335786805829654808717090423224758046085941488863829536195486409725037136106965611133390848949708181789257467896078526105334777850610448590043245422874120657198029211103430822205475856815610595976045993909638078027116563275513422001733579730046668463428696713249433909042442558418356837481591814339568777641437206390984698001563668079292666929792484095555068246368932823866988017553733392971591815061627170990761028327463353248674855982721855080917020917911523593789606715060934278446486424929753355647589079033410788794973070714662297774504466164297256470766705037918717747157212476699768026850033112313312041626282798590108322554838131552293023192229187821025779749159165304677612799951151191499418108211694348457340596766583417283156655243620525594698269430276876726602415594564713043214116396754351935126442850021966924023257743484381666627270610364767539669674798426177836753439578384433785720252015001027082241913186920358006891195564344320007724265763898221191598713533094337078996364571840600224171038092619368946360985288609731816204114759220528029135882232939577970408998901301069008322006841092633764765049593188672545785627960197854007314313842015348981915188865730762053119742140868945535445311910702519444498146080718499825492339367357591444325569856847079646146640400845973216423100762593471389947799529542760881498690957850362365758409881034775859452257155630246965851390574171372172288962378305992931794882746060351471908959439481664030738418768450733972780727408082450972976605642406108710063154677906196078611421837788069424586037806873448913312887565264960066413273240714130928763115457244394123888883234361342601325742623213392017170475495128340024192040277398708748301307712855673584113946663523907418220369268383996841272565875077430639681908142300223293451436679536064757014965809930158587614973562621770786295098319872170893895161420385096889198385590249215929674994158562976130978721300568608156456944011867518193628259571468087999647727777931640185769217686754171693799513120633533797877615873520313275949887557235942798381391518692868427157624874297896428066578979734504176675425148837437738919860462785291871764735953930107839512628250534336247447799584542288676362681595641652287252563303709161289352633874148160263697256977835832584523505340729769947419577524603912021576258384694620344270466233413745169028136390041819164772449806102080130860214794636514907170413571114673235219234379494565970550344261136063493203170713466750854702821547674529103771722312798512102960448245266926312983515355103202927369104309345755637359185499532952353431567192900790338981978240393949782550829456780337185826803396173010613256609660410052294789476893420571294205593550336387338133620271503724665126145232597831802701128613817294538729024333383593139243851766724934744957455299864444593353415962361313265148839859666994070171090107085358804319871428506609407417819181921828306705656952478403881673819844308675375675827479142304971392807023377734108272850478097489906532406162951543483258380574299756948342654228652571217259761099425260140359899008731600044713606671198513391269498624732396339094205986629102205757174008265703898871043280135703359445850248531846630990939096756717105564337778059591836953198878775667171927286320237173687244199852553304514998538652503422420080478548954188725337963383694712544840658381122091226323720675134061038568446147384524400442920552590182703042683303799807818919553823030031046589633137073433360454936899385851092386726098863049182417212936112902429912058317866787455018930831443350683527449801369777491836018393590217481278331167244551070624571635517237854224848683680717550157217396407691149103617308556941300537471155691514209430982942298298805220343727654487711145481197741541936308155328018565978135685345464594445589114480114387563821420775569646133637337589513789792659274059812056593316955425997004719686555524853136632298105617738249722130578715562476665327900145442768539981835599057651279935719102348241059233982266971910268265703778534269755505507367029203087828400159972976126817430293138931763338007060119612228117852954222503934906533763646809139524380804392422105992384254608692342514274426685383703885925600779241570989046932268295862370689882175033921794436643956689059991586423867872882115976471235468547074550770710748285933917693754079608992257845365800620090608824217053297086418191858372019206264177975407741437037163886021879250822820273883878074014688587862328134222544378730399610614386745257044979294983661240565139677724422601592060715552493402969749403735311812639759072783763886624368509987932014893299077572369659818990260518493881274899723869005962673357920240932894459675627414992727551865285361280734078154033454549523831720952083612948295015621192504529494344999933834080985549722302592400407586732913497172014631290311698965268048184825718567638245966547086364963146632359503221129570823274886662029001152310409285722315394067657129536298104854301482250064823344000815216914174503857504014579622135223860600972651955798487819194374223631572632500575778628060963841732290640575818698202427851170740475452419139955307588931231629169215547136424224828951021709989084278413826248612017503965051198005959095134590771179215529338820936605564654772365087915411605465932372477170214112695643505652746511459521419886158424669255493345663182932989142113614258765767492735207077955530945335401187783836830891503547582243582506870090907274410364255083154956560060783158682663004444854679782166990969475216910809699790923702314581218069379638741582016074255150395859850152282067650066524613198816803945632747221537589020805109216665100332347602620266795283115735952759865993096594751611354759651888300838460484901933000859844373064627361900342271361215442615978886154411949071957830341261242901773788897247467600290130624544378680647648364296391130417014441582866402318337459890683834994663145101591238682675806902014614621487759545197841092750204314700788342899340069952966694005388133371572083317597937034052959310427198078885514480496557671100655646673328487117464279240608573878180122453881498500526172000130956320927389128033005744531012575083908974745881584770560116232082673868043461639335115567341681508302255612471622926301001768947613710964144834610566215114393260892912615179494466612572573829529335152909877685089062387537409330202050884735655385760743537280373418589283630176707956296427811243688542079819136416478985123516837798432853956611531500038137315551683583501562181908389214212493124515538574030677935912248795002978552233543927450486190424025147397630194592936804634763909109318693244843260696283364216697739682424815167108282384551076665760616297103819725614858474751691328071244912468007438558980539726429037257681740689401581911422883122729899192749839049917129143459777457119361605143201912380289330027138368800144001535039289508249598870681919974860516595260363463411141780266442133040287267324083899062630761799753830759600321615898676957697360811228399636108773781683821631410946632048585901744416708067839223590427929549689144349174837829181778802180655288631984501172364224538340808173168920527611776151068996298029225715124148762809206262637986688285273933078991952685464470255517891971595602754893303535938795053229974359930429558850965573389253827128667625208250203967820235630082390608667430287724650100980226355305537089901896303541498937276777419060673006640732318634495042512829338180478455436841682094261703199191657554999110561598117721573386615311113992022473172093524087458700890745909700579936695047499702284647725039499662165573713118436632882905030500567056361393243721873838735970298372651724814210823011742361462701820639890604597756525022928161887474251385338796326246645250511524487837244750804767738132732006653370667740773746856432289980988636276371514713175641292911580086914458512908169475852572206067622429881265339220627344291059815267969258548173077499575795316714753082203592454699646335893620512588886554366968093830173883130569939756221519101197928729909620456871486919481169156461642478853702291067623276415163858038534458730941955391948217406406870806462259347924640757601409456776470495711573143334211540729124683360584669535636098461042837885802844370101576472075559474547182893175615795725247649388642407768514535670420114295871673049652411581079817147059856006534967826393606298365544558163973405158997997681718294376237689427602660189073669759328520540444322811187553088756920640472531190879444174848365667132442594004279935981158306985740581281323958048634118300779542426152668007210184894409732090866829011411513365985554638517295581449564250019809165727034738911992702587029941245351960775160772967251862874561109672440879735679822574685869156815753808445713442131875195722917226990195110965272458529801365216742450474428928916958013196199291993666017325103899484304032176265760266415103150984792179196115169448017737494912563482777418683866285689351601693231287284578526879564828258222216441876138772195659776561860151661994734093097759601284108214372120887874227602198737474581688718618520644012089930605623924707255049192440213623854852582283530655699732565667095917673593757986722816283317910714056435165905744122079709794174127061151374192227554454292029790127228504673155222661439989941513497554731240552013115415316156247669273295855674353175566630469920698072817674034981540877924966061614665514328437385893926113846321025635215083714024387502187527791567874279334422340924526227667040087591159243271702818348416654600257127072902417353193039725650603892804266041144611952010327867751701355343095013803349935639536581075725783041903330607560287991689733087563885682085257264400106791409382754733816184637861896644466214230685096023107709348245193777337553187746194640311050242206817839233536931605806381830102594052212909679363453011667697978732797884944778117561897178821856881482707913737473986820579470278694895399228912828037902111539980479472896453447068411791901919398814993831056135763216023517262842095533924685611739838170265958711212065615179062009026134078958509422663112044611709866820467091484059605265726702795356724365025862636912433871607094238621340701799350510985145096635765169891834547129052991966120697730232405655829815828789220621294743873766838861240542912882607877811225059938962962739345399188470964185039926268609655881608408651866961098037444178433244562811553653100429846278125365041466946899445526605133730575854913940555433567146879786557130773546780285505136784833108166436356297955495606273545340142741712787275547105251052875877434683611991998743730652126049075001860428092850058866632005428445307658864005485351916735416856704398999282505366218680333354789508519223536168925013497634008771545162725976671706241865289272905080808138198766355353350217406047222638382635306138328473620257855068233058360347982859833767344511002489555486462852458853951839732835351913179131121350418879204580557711520896386143398590385139792113518078223809568860302877336522964974504801888354700809018896524719560043793259643552710525073375582129692876384464373985792928332918601115458204528381902804551875906828896245202714901086286541623868081439002995640875253566775037204960791366154166229365180253515847402675630391622841056438019755254031256835714043011510268336150821901306428654442883020501071779984990173322539313776973871858367336538505062605287859985308212532520348266864328499222860788478843442004433719476242185563028908821487139204947048495184215251253583899045032641725333097229980066175668617646392326663421073480257394362402240218042418096708628942919200124991027735969403779739097810965689042805825667910687945413895806708600325573463213756696060948075276222757970320938982575863259880880454833990662740647676816558027865408225313481392799969541367835036024100270550360463292864403724406087846809408338678179257206066301866847763189016114826001096838362028146821089080684414568983154882047693556730958592387772779620709917888504096487149735081073488466627495315070790561224454685486256925112347028185181725395085792998607852275799484965064138621887435011169462229034711815873021126071710326154290813287269701667989213601876977836436309014964026779551796906924210837297709359532983868866430694625249232826077366085217152909099512664061758350788640142297159917515493289969304146011914302286033861207342796650995659585882651606795356716469682647704114029959689195977676954746493609108965758788223620844100389373746047207920714774805421856697195847477282585973758127527981168909691735983818070653305193110535700069516787592940348946994540297395265612763438461341454303952073547846933843191658384369234813406542238095598921442345092563403837563275691393934681262673335301468088537117153783642747355701823779251987997949552834478402835192118064894594733715365793285052088230347681920325938253031257697752968718496843112406591049965969727266509235728885013133807670064417446571494298557957526928882691090168833053750641139003856767586326613209626187657917582185619579205274858447057635001704506438027898334588344099674084091017468288635221202161669534496538983983841082090774893576959014732993363310420341454688866725884435641862621391934530641605335110862409341345573826325334595865848670746113590976991440062548729014804204411304687957308214234779699479724804973456388097660556590781414867971023750910637100762225946845856211565400892588462479906443896674853346432955446603067311381500605067172418566427660753813994572283748753369328215960281842106744120805308957659425361064040943227672919267846394659492785228713176010301879022862366099431204694984028951704655350696954748592821888290157301624333685253249616022092121064836347498994137230257163302487089897083571818353882899104126452358698433642907111446996217494270327726653116700492268332472499809686676140770051999242761229224968877634497237253645917289838183814615308714077209081916521173090226688359461488755142939498791234319221149359670744570785602505586846671334050816104548031563896283293973241194522760290932758457404650991878610953621571752072205042391976337313068707412870754480699679081707716410941115371141286421724334683168306664440717375869221656979831935590425944796357519021319600692267919523480515656608003864771881360915633016299149109043909308008502777202181236644072793598051202812732170670452401648479056172116706422485031861010533568215139571516612533105732878774100083937261029276380370841537204209927842303669161541656757881212399775006188600039851037680863688866930433896549542447817848308552881872827955204301096224653892328989336056794421806282701851720199864455817711845338515651511854968270509999573019525035933138089827285243843392609743230841341262609782784765838175770238429631296356338781769970747676620631443390964082275882646842226996205228985907624374451416093617653274723582404774672798217757642363206578053964212709273723127006594843138942625789708200224049117031781138288377074806068717468323411675658234804200494435984265911453124047095838189933194684201095761772761478504301416828607838607192723749828134189235236139001709128158144883039439407907007809905068785487981831962562932345827068041036690525279922172643661863075053320391430858799167243671613493331243909906252031040296612286375333857884289887606070235780759038341113175817571148481117584420513298036989516781181977070874012092601519954904070112582642071058314543817371920838854685195182803839883760951144554592956451914317134593532617199354883924793451058162340150990379413165629042542321387891546511384855907524975396393397575922077884639797324325987940635935035554214864123043975434985340244038500725080858440598224923665242078971902316257882028330395654773083708692694051386529583948877166923386814149827516563448734208665404329258476710351528501634395263285597710993953959764104119009417771497182314171544519406050107223033025383111693301187765689780434124764706825193604960699705703066222491860797151439007510960791106742392875911851594810096012984002848236580993851741666447745962599199931201017523063987940458121994819674875949148363529024845926012506989689952242626438622015772359938547917342688396644260054591609408278798938615971846273569031057545129652973849622436566181486145790235663594943033162498753666351342248149493460716635166879850940336186435019762695590080343536044279149447701164943032136594335936426945609237701476129533196119908126789719487118871482398006526029886999023392374051235367393758379195475037831669996407521316758431879565354925234167178060310413466123608841336497022923396944853438984764960718795788932236275679950092298535295620821154082067286492041178635633686542741614891290161196687705577485681598716700745339828477427794967138844577972451586176082634208897930626266280259256626326273454442900508863351149942707819655699044858235712068420691528551028080478981120086608649546651595772559397913508472519339251553554943551653369971262031973251849425278075388811522986400452221143937955716065399361123011252182945740240543396397582852438871907221566866497190715755172932955796535219072311772790521436874260398565362279437066754658183560389036819873797319048143787623568845981806844183604311939178884001031856576921753572906546580219670288900132010206451190808843265116434492963954774280471445026965493869852049756980341859138614663736304882686014410020782399657624790132385469631784438791669106675199315930395598174751840079093057633670218356961755630849929437341380738860940959037999551258647066488711202371636912750978606174976149859750682726891100415558892292463809974457618844251993192733950364892117711491158664056810849255069645623510269980147227597015660623858017988872502161248737663736431466773273224582609108171391314790711726524691677767577116857568931997022768511510779997947819950954052395139605960127667261214087942807027729135872060724122218817141858614241941453120105575602284888429822985544810575873704744422003323108777496140540226790928614279375344044633362590356151787773825702967804692827175286263500550057635568949208832577519467727697649075456455062314421809681755956127450333304179795317545854635509005282055160659129476963121697838080845687212897917196915533381161647345502815398425233978755678468225398349460047276669139453135372218994435283681718738803129039657791127473185141653795185663565627939145211332219908201051927331347445591965582765853726576972230200699316712614489230524460454649355754842507338131235924460320456349289608980938638701713649576449452948143176647160869804359304630983339387174817062140355309282726268856507520187409637987173550174617118349086812146644626076754575569847095452864726693970503442076114505552062000969672698577851364240542540872350912599943983222004974559508741670430161950915795787653437357332038834510081234469867949378976608456787936616685136323846839855640277555546043668507446575359793463745281636520954546781741873153759045900826185606768472628064111445327337224479669479317221635479541582700285653912888877157320017064247708754875762636350644689217175914119649266886667103932905574250262274109572881563247807905126204133902112125713168152042974660677262488921391072637632047911547989957780190375744380148658611398113692881645671710598961998150046763941085987786071062110241250197258360912235006044727993981257224703946118590028611538666291342337058084688055044163716966677284464655465341283919895433493524050693549091978235244726775764015284814329227863879019049711087702674535761863949082052323855068457643903328785367065943783081118712168198624058870757271536537387099290561147111424256267558895884797506731910187936877252265120940728269543257451782980267791993800715014402809976988723185862576674070675142357726830757001086187293430169036265167728689190778763259629662821844361971329920016515431760772323950336379076768107925213126051609105626900752801587758737896585403568350551610006004580021392150214601159328216494386234993941966938488670771340048554541251414873375166890270350172548030402949908034436770526121886040839586683156741877184479906626511397514306267154365857301346450309529089472343757413398280444140193633734576373631842815303418796438317757836864745381984176605585525178556234097403670307791286124566264570603116343147807194036523335200279943975304816471493538109188334456605870284975729833071567913506836598767009050534971959003112855558159897031329207884623641335676983609875487557304779614125243843883692053833788273121656732260609713248393482830184875876813375895791951636108628319281003882306195175282685267552117290327509319934581027482863315418084378843952356974813741263009092319052793399334919872632111412143825840785685303011955014782961755279757646457493699507430421376400128891482394670102214074317302761433959437379109348233857377805521589335415692618282397759382391293477964962724760502491210642892519517563167280478032659741299202775538509698129684044767565207607540795012906700638646960391455770234778497615251294623773023579099432830097787250427385237552769263268834363822365783805942315298311071879556003044671658153650584252839099708502956309298510088623909107755029259979414097151078045572539715157354238901107876032660293359635423206616380714456038511458364331555466875015973370417870286835124324599567298292084942391699380167831085831955292389877306082347509973801347470328035450765289133478838159544688246216587517210071129023320515842487815293008623245748920167581513487260767794651296237510611671052641731260055151072039188246871762569327785459546529391212432306872088111093110633316023143500369741792656193546149792523038849907240966136770417076909612473255830013379613233383367314617602190850919304293863972889265037267422355448666781740419165744278020815182291081643925983919012507645212552292170480597815040705712168993505272312750725596889877542958565856610905897586636102296570641159509500163006063615465544296363587955605329024464569079866265895495387847613638651236084900283246199733793732921229660018671843723698063038857759704999482575726870033316226543302201360886351304139049640251565843257949813791654525848028522716178103435628932154204381902885176997567542666196609295802730228025728738128699077049663338952693920064893256319948267752562702735261865899642237273796848693397840764659940845853990890986977504419092116341914704998210483785313350817911698177817469357435242905539088708602937181240843866484171247434735452592970315576120860923657175344913729230472005354885584743828780725976113206361396087233463109267092386812270033076710421503651782627788931429026316222012715523177955415170776629666029397189271978962834318150847637927475788038136978738995876182823411372872017405404751901272875195515239706177180718435567655352027920613785591795232342397693153846847715612367563696728923225448783017531597720049713047654259329510182153773902220786779294329974549083141687437893613624690906221880676347782319381821896977358356530488127548175397888002643763840657601160904157740360182231836211552016320549227760398998531337839699018428500544890628534925779495067782719320173956208008568269904939596876756343919871429749859894165816040985779118102348110910922538292354306602703725530583354902677224305238666968742481219342574218914078223695170015778032977484735761095621545988835193828972479709034716460123839547211610045135824012417213077504284124472456651199441609931360094729330800630392623569610746025962571624518439724892912606980170173664434286151308554325485234485027663719573612020818614800361462891025883541274824086837642830808347112509694859056819737072239093594818457363898533028920728329564835998597984136899664076994933819047570839388482829046973752770630599214379149813845583414218413762889113560174574927085820742029739271071603763578018729867115777372867975571316508518045594122704597611824368882961233531102241053138672811764453399211196575819447957361770941433238925575354216951477224672987726484612619945176065131081065062520367709612936252655638332593881219138925762653687898304341487840695319622920870587470059988078341509910394610545073991340912634472040558120964195550736269864870257172208757425489236409808099706912620186144305768276345838215781241454737154231054922241724134954872669390123454971142713923986591997959839159892808492977744888934815291329885268072446967326782421835602159480676162567546373517456169267023735439732094654049000345110069464247508817326027512443369137410812465276143552916169208008753176570823775845712260764925295149859170542955651573780461336737178416153281559501432791678268357411931238399043510765942200470221115109690000024380088808426636497406111033577562726374748446094278456899669332695662910608300524325503622939329012389785806295468247572399397939402046584358290556098430558719953564972838211072516453200458939075777334524794795973364389493069823362498086566805796417141148792567234481079744343654173867313887579071993389313246902910365079572279414513357868041761025917234228041473286927475023544963373972539520805261585465665404153325231426388979639240718410551856633778952316188229473949959852366687389888114622874312188951499885848498474579685297994781839694595728215245564869837070532638423368352035662366906132641706045173756540809465414927006991265929884687580488578988054363007423979766341347238017531899878515736274626934014534700670030940200629704508740381581794645837486944253803827088031009152787786204981768749989888004844903117392727045023507337406564400149482336602218107323964665760066358130321557521748591040906518852055346767303549211071909410249182411256867632129612545930956537515205830834810371449393233879125262033649639777159213577685806002573623286094357435198253874974190474749239145791459287318905054171042192381865225144921278367325656352671786081780015689866328064703494740510778799462758260400402644470582418547686102382587832588429269160324840429912898691834536688819034134958735733568605816750251184090907347852507222887856026298674214494110710006607354893678035398578698114505957798714366765532820063026103857180345164632953650599977634733455472194807881703422062951159722716129183732018488001048646886024492809960653333067660518028296043829492950196202090053523865723072095973062395565016958841704189710716747428319023190645127263718306579068038810694631599423077570142000561180589118512719038636335667886062620928093556492563052779336818778375588742486341794482824496468656350220255308062092533224393077552425016038634176132829668649746960096643207244911072495351818195404337211425271199607095058794566376937755730402343860961108215663108382233384538058825264532019565776765870588402197989116274521934346269302912330126111427855352936608553965780478015985934712302736336015978858761292647121327100344580894231085043118957728011833133643371249157993665409828187543164870376892329922748923502271423225804507266171510530843910390299415885090889755018469905452958473045897287129145579367883703346747371793704531564353073681345463526116578439549546168974801222366341802235603198592133403403574514354929320207479687224296856057980467666255839783486419930279721228002844652601529111170191924679107959155610275246488701926407673298131339595740806121600811762219839639617945508966399445590072347043592810802721663877209789387540027450838365702728751957537533968666679057710138060629487326728175475715671479618973189647824285361981105303408427617712721272857395460709000853635007105266398955835480623967689971293489155833165141215800908218594201413476080254044197180346699391956103411622512505101418855043487714928716622231269103569303763049772346621123894603953532352950879973971992259476362733179223021794871776159160137968059652338226416429869887574305035157136247854968078035650444892496068709012967315987482028078464056834675647595077622832473686077293302992357449624572421551254058692437546848472474676278512325454710780529391607026724046151436982791116593759263950055623291636097990147972456146819154625690039333807065133083448335680421389094087981788636324085784204871100909362914256741716078582889751057701562514468464898634969329569882417016883238365621516063823995963316657079549936830169082923089598958792942332412588686643611096198048166388159830597963767119998312400315062731601070868519250245676846431991975243356772107189461123783226570729995168473416512811973775829524769837819540648372610416797495145833042949474501658867727928025031102228338219247806516446843103195525976475590428931967238976962952505226890865838554161100154956171340046548449358847770495465469677423536447493272273903788668052238721958906642474647542860004351528206200070119187517883010681010397446292502869626153275705299363325140107213417506397362284857959991452314255100825233061669604436660965285671674074527820312986446106889005353055522487458538868700821365595020134850752295518566535070428264134793449909615215549939076693097661771698021700509760393803769125186218626718187138501277774387620587944114728176178335947959452206377188998449744387920845341092362356817097591705103682964954916956957862162120249408544028252556775867114320344928993397287162997298880611100523677213057273602368646387286784806985693440503109265514178304907196204276547503564467257270279872317718087685948510109140805365270238321230170969342134738179224677294778907051945419780894641549732057787204494026696770338530179606982380683568765823188400856470168829551164922883595802805164919732321728255574849863087862166120599735970312171876709432719052064803999678434538574173478174286856035932365032872375182807499724136911176462511416187623697975285249295055719612188777226128078312900882553076037438130657027539983335472507725632176542938707613686195801730343997419536846560607819660766829503862756291060436942251544852599885695144165740581879755979881418283839107796445904520654841109291510845209227556531835802809314898722663264733938472620846092453628062282148029762411197697022731567939562002995002075124406068763472549993721938959240685664492586008006095697422336995309692261644096642955280875673840448050056928343142937174740968102199908780525371934731244362830014134777936223983114348513809933229623555139916146742954329176185359191642307671872142857839842190995324961835326349377056381625370104043070019798542060403966223309271618993906128424896445221775225739688981798695091361736755389675408687048046251687923743390030325442175118436704761222216942954061079171106827042768936049251929919643754293221789936219981817714709577985880676232210008433778368470390657338890467304547904868767560033071215644684033192639773579244964262002875813660907013222693539047477166288917396172103981996512515924568225984839525245131655080576236343707472040129541378542846823708243231269600058119214304189125663594341333971363691416729558763327410399194657259322375178853511771621651035933428884806616709854897059593220988409654512973492050798473217059711941801887105854348023837312041488490086709403300501206350507413775815836439751364109457253691985017180895802890107402311280862959431700975002727143861848111866702279777607694934484967980685209345243967268319191877798657847524145054703878221386360405875341283855180332787411885179505001600180747903072463325632095146837095807954163484922822698335806898327724121042577131227587723516843078457721442945535954225164530137709969135595556444930550777769365737925010636270790676534211975049692418091286091339415769892458757928785614428126280721466690285585396708489561492830860283154289149965341958620262038508449055905101585043668227081090116625824113793364986895335329853763587988512262223212136065371322447087528466007379825980481612172704738249891226127216456953040821949513539562858088684903938923639062368629649551188956770649505276423477176876758473792434198484951277688461541049875118461543630466478430960066688859837931770624130793220076985397671436270597679529089098125211876647244326791804171902226142373017396594015526493306949289191382274493872868157154102370253899260749190789267004733134650118385804025194573257493554719003693863392659285943914413892449081133677145079306559691804905855866683457889276375743730621853109928823668976215678162401149457612540993795386109923533490299191661715634242051361091126437138332775355029136519052217827575575369884537926920962490105370257010933011194343558483924709277911529018743985655881687829039750570558739796506666159059085498173371181356423517593125005158502371786321160049354269777849286999329899531497297501496209931034922318551550444362261130877863102087223630544491124358270745391009809611493898979114391392425719870065318539310933102269037523454272687727774150294799517811866938203043335709435322436077604437681139970963461325692221413838561663878949290471725698128877992619141407377416217863069757387316991308875229330156773733909580758247696067125192237394583447176389299602680392869263612886670178059877303126403370089682213520893452477649501410645905050152231590776002324385911538009422894342686215512613307727668777485264542221387352674347633955684252375012549372336254891520363479790959629085360161330346173046998002417451732701617107574046135372663044957345698030738012080184905489967115011305182613661555172913430643844917279786206524673356204752510985159430969871475591486619440953479311905624137850085377283962763430167840281774199988027644998884695901249199109061639245917968527854482598431429512354721498690472110143846540208069830684626900590537354342115454945847304198275046238180374547555876721070174230238770065278015338923574748108023219521849235281135567027973484788023249117466439850355446504614164822097004783597744927198399740525008785107215770406396354536266864098932990574933973872316466398191295817644327147183964366029101032779807342527449852741939292460086525088918497860515338076271487833090942375584069779479205027089842678454529908436079458359429409595067331798537568323164745057919554342498210634406463367309027347874361168955663961509565954970053600217049406596582363888837870398034137781699141392375161589904037961535462849117995289828095118021292222792166097721109626874113462132016315220358558238165296416676076268460477605679985621663721710543338575892427876939012615866760228761567971644127962909890944632508623590101906468529175203212996114891066194162730951057483319330844027239460509251932638563468551160513904736447361230748517174824390388259895541864253207583191979340481756867645409438574831109441512146418677758155393766553512797151073386790745359266124473908037386784509576331591488507272512326916254314203322653401547776009835855149406569895652610463764637516397178694940763146637830754420087970344174593530364791755964073354509018451383726985799570856139418421194354022776721998324488451428767140828604165798169842479011439136399922815965684481688498472525551122316980828608683035713863736899794475789583277379182612367228617008668810129058777276903643816908306800978359892284977846331235210170804423750892872985306229940895420683206575482498147710638542084386064717801247048478585516575059398505632248078325512136003529476468913744220222908583078438160877483882394984985048016922603140421247569762364104595078242214515619955170778842687281639832173111348172989520883759272244089143363764122307191528056912466814770823159005859181140994396841276063199071434149070839682242406217632919222652698229881604291904913739639190013105728960003301685465732743290857145952119975518294601029759822464404214821434812126011577242607109614596745933241044726273485469534809174055535354179182201566012236984584903767435160636236092307356562901688542656476620552242389639572638855816470129337856578941258750928763710611472933147174331873372265938050537406019078823884990684086610661532095052995743713088712401329006295658759788400965442175791598914362722161039068598528468354860036204128315207478414866584298028689615881667696881449944901912912412082110532191440555940920067739326737792195732302907769994855196110620251459480881023420060678483680403794455789173215102623778679092963666216193743936106001348637198573599585259490452388402211518790248952656272092832021060825447326528199877826573592258438352036961771782180605860126336731699274799380730587001831441702253638450180016835178916772132310876412804641276285424113321183847051002544075067920006907578284696454593150430668255073158218636343514959450302225814162202427788343578541277517024090447278221050716357897499402224593715405213846411268689167770673588215524352840485549082744712914624888812353532780685397270823565543248274165430740854337362361843693806131081255328634969127144984886193957862016512036853290367153250932009027238359951451336275672130599082677995951885177694047035439794232247147907656538330307956077015836423098767614760281171154921513783702257622391767484557943906062692586246924083372483918606889468691384635703432332104518204524474405038750562188658785602512063817919959512223376985071537950109558397842268572999118734270264878715152542630849947735040735258218081903498077703465981853974940316292151697703500380158378648806599523897587164875085206361752717844050401341232672670445584387879567375713880826448708412340138935355069409913882202758631572188373776718756730490973380454966965776742131411849317372420100192533681715273607968581347374623445327403781166558888487226411584618716952311738877421793052367069557699620906891746070197226099839822273144056727096622290723377814793440028990456645784368676521372141851251662873948125657653703842522614805563909634807589738264516761679708867712100690678519294940135756371890986900853300100823274236613453305315844016211261127945942227326090663319907951415099084657617215780101689894841402042304783973929189592380540857419571103201565776844484555859162786898021120025456021277310790612108405408751464390203182068453032899081059088378400091811648324497239743238547667083134379830801545250025351586975890478582114252544698829378769598187682400511103453753183357016863677268869316474966320621336600728894563224779547430787172542530151455364290492002076178597149552391319623817519649571148562696061184927064997291417652403998452890073827671795538471541819833799967381790794990345209154296121100519481671563386200241874128393849640456762306798127101072065912654984153657223418924030823983556463324422620794723488241876099490973169129164861605070457996464158307838906985977416144029728356835581942853057064996510804801555809054705623004196713319996963267219994422625448281954376899818974552722509485390300243543350639114608562116597429821931006144337495833689393858970660311865550624493965761576954256128852461466348880871097101656199423498263454104730209892925104340634048674898355105236187884997968588697708457499329624423737534374835529722901262740144329538834839555336582846706174804246088678373112861655524394149738491604064472317167786161857840932199649511356173959701797231625351556190048154177396481280996726993178391312179779208570709338691446576991362780081686993631293871970131285430348385811214690773375560033929212906238202285127055768854189649750518476526415025550328385800436049310075517510656140142233417644660524903050984963095891973164612051231222074962637810828216660744286337505045157030468958599821378631690924995702744685781990659671704970936586532441236817281721552513600862560583740457085135211812382321058109292274356927041290487275935744212564098763796842324528316631539988065273529724388543677138947753407990928260320050776289341984628781698345049510029525138974326554972640516394620766503749621282028790654027995255475848624853055043400269574467157053744921253230497140619743642110350570604131615255016824172597772345209522460382366523084199140163734821913580111823582090707270006848890004189998509053662419290715786427964815819015114639930687016575205146915147783364868534819306249279189212647729505344279920753994421555839677363100968292685219464446602978064759207485358187634473543180174773388183700568810375606509168629275726081943063200942432439681500023266436060748260988799816008715950629429183905362251257211556410118087918832829945831333519480588076503946870554687352188614262924884245453748387509974367345076207367863521108260902941684891589624287092211346607463665912937383372254634239335365635213184926411452172020439028989791477288593309621993137006068346748594376473810575165570268145305581520315226341957241215885867522469523069094868213543007530124339880664991481715309811240344615847222795422233080705108876903477440662832749320814702444845852694371196446303398784080196993623352086898059436317127515463955413061045313099471502990549542608923144068310312581100423664888585317270464379350011541093256684368932742202409682150445637538925078633438486314120302909446755373406730659903822278310864042353990330196137757136285965790577348748167933537480705238221239715544636291640693506980353698477400640875239828441399595279635666688204670376171177386572968247087582369844598669313886188760191168668066619414875715214481509061724276829146267815871061084565148988838331739757505112290069109727764104188386211958964822005412381243276436088090115488211152719767879927690146188019517468882945024342498420597062591606932395652439789828314168421174851191547863439597427066005036592702507489156267757171835859502433788484235656907462641761732485518693419386378806173657154217429469572756586567261104496881308269595707725923810043481315029886648349857774970500794766987323958997754386812599254872305395703217659346537491428601258869739193250182328734934336344036054549485087763498712238301235434822070583795891143360289510755374232427187649872142157754932733505504641567534559285858932778154094796738809661381207713565829259152958644672752639542874008090335164177268506356732279693370954918248856676222114854464914393312454680046722075504151063103655619239645552780327798302284215407986750691098365060082194523439091735061367884894865912706293016451392402355804260451946249787353064912892512913721632547456179848020125759044480695376065942617679916908956327565336044926136752598898362649762410078878971174067975920244151736187087265373169315165629133786068739028979872149645864368502359753404951804579130488589128169899863561958439247792301625779952763514826246098827279643607941610457333081765796764243173737625782907491907043292514115501539498053483377001687344479515602881620052723882921470421522903259412861115109745715333390963934243995004142938574031692447413097461657983086995302369148986989946831879284637673912537801910432016028349167258752356350891985973005307518838958285288767518388781401677102778593117176496345462688568920840578927909102680488719667808726628999447269280247023364162204655573729414172256994132049671979648011176185924679283948629827912646611351641782331881907920773990843392363051033148070371404870258148773884713781452200431097675410528750070254752718956698733155551272851328937347975336304117826511191044759150114009776907058886212780264460815767692623705459938186752751537325594091148804061849681745757111952756262093407118426760089985008626071353342377814854126711227501510125988366897404410822756232619537748470961188097524972948277787098639577809558666225860467337367790866807671742921909121273499884815258225121582345400138120277753842783237527641353568336378986531936873137179507833683891951305325032489700249708266466449721311045267940391437214616476107135334086550823239731825111155241654362165588711627346189441099420924637518781502956947261645426460501317897898483062863467324662333867602618763911365793068854506461257147799320545160808969970473557926274173742103371958721801408597631089821189075667351888340191528711614178531795354103828357524546218192139345173048775636991519995005186661135576388632095691143531373896046525457607795302328739303091897673537497844236199418241345477139764764984696839494930321445333276981270608954206882132337994883295130817820936697706758666986878452077968935032511478935055444387978968962726671338577768253230744635436321276693619574522451375096688158740322908063111647056352904014366711677839790628393204711693433826339415940350829311866421001021910347490463956477810999075071114282061367883858498291309602878147913945383331348523982887046124687970669351195239334325606980801341637550590502008061355933960724601892432343125452436241560115342186389103783160196418145804985890357595752380532473282706991569985326554786103479466722992656894032632378907473110804018761001837609681380531554443443003083816691037609679150858308303946932568398059461267001909676668650890009284663572586830919923204320824513724352573283094777900842890092191921911681734867430478088521424667469461936580793882617849653692653951706380491353769496250173725354789504073441721190907083557374943991083898321737042244321511949368935838528274016032167484119176065560422487338469761705815123171573122313133998071648778493955008818345206287841797440745680955379834331313097979875963039475275250642973701406566528351123614792307601520846845810759752668999289314223948678339719784948396054248313000502328487632239364954139805893974084845689719595935357176464169746148660697137959098245223263679496904161298182158904030063149872710932207442603339520240179511011049849257289896233957289563074876343449356449614135959898997505639096274983601996189462154341373452903865916397479449574095447546244594724532102760407397211745577457466165378169712921003547270247471331011020613916708942871262995142451686880216879787232049060406232185342541889349043490922262213052137712791120680018894623533488137387357074956838521475214116613016632769157341947854108991717714630352206805836451463879716110505824925647185796074126053408453579755013894639839448399167182828976406055704921598071330555206891083666702530324459322543820410477806413798944729829955271930667889085904756612868046563517045133842503614183911053758964825220811683329610124833557742673809454957161707393354587309907682468545815707261461441246119506029284926538766094634165252033017610354347850281041872579943924015761328075619688704259733211311964957442478496927364729462882901101311521364915326359072044744003016651431541629277218782695945792984475489033140798354762460496541804722167507134443112588279279195245339507118561426247165229225980078142828136557876873738366043679336042450517396923727182789216181964920387382581721884581952509479477083431233318879340494718798548505387246317256813235379378400584941190274225224056835025568338742960423434602395424990389652292535007345104823127824425444458776601595900959143629574830903321328109826201017303465963418219559064162710009516875711461566309983703473389231414971305946880525063551539736137137499122899384487180265296258640320820545038551093466938112779952929280131404896480862243470435164802261740188153982114011674449193345200070814726888004276342488536209961416084599323742506547136354559061877305199788701639752293076488952312296112337124781983252222917110585753464042579404255674490237417745756270174067781321835001369538593788020921414009837113934827511920590511759747744852366016495547744834974561591792399202431337640108980342951185400166200470766134582087863948179705191791215273939533324713315459144755754820278842008128573255940864368536718731738785389487427749485903345081432539382041414420666977005644054476733733805611837151423497131919568784971627324532441190675747241178307274260916498543807916496656813008733911125655460610980325554231085260034928948374993369972107881733448452947980346158850838472755519363767794559940694726558406832273303491644438446602955310693253834371207750952843496684897102846716354398317983094349182618886716333927972023898374425294794878921261599002995489725593163063602841579628017459866487026325124402714524589030133997505783966831085271384604662013734635210990716959158895538609184800639347524885548786228515467364994122703720893475117012289128461188920669900060140892445644842778920269572608985223168275893374246343779678093209584792774311661517055411826521371561560321688650210180082713791945630494983759337189884290244452131677198598802440282793008938772859776545645569814261148689056523328509565226636699013497514425504819698197634406968539902522921916932154438183093669195057235956010104372128233618598942836539016513881979685624276541766140988612007482059316421866478071320048908566835894076864313298239898110435332172877701726066873994716842423225675182612776901363353886400408872544876746487251950379600328294917781000195867640238368469705548513742674299081999157514028263703703933538288974051422551535012727709551544144734733084569404592948344251963718827387193025209533296586341068893300353141258487466706981830199389548065907245635168237542200936895081356762056621139218366787534026738824295838369909868564513887207380348985461233827980046471114097251742175592044984419190394740204328811576032053987278010442772715978662209910412989650849873115920340340395230826109335380927933168911531452563935067467640779868494581410466619421762528260457571192770205490846431352615055718761809052155357249871981433410525428781493589822644543040430891425902687399953519393882817283854981081085888551754859722308573115523780334156735031681624144197082780933434331410281666527293179872283784982599707450647727632716785425925308058818777780011879786760859935774504935765854701603751137453206664463409624000541258292637054060240771190327430958825953606664644427436294054168478848252425239572267553895501832508690289960663857778469011469291873210007787837891936131495986558738215908005153612390823682005721071251349726142729090834598551111431265934139656985319325302952799041569622516240010924526768954568142151012480646389483584701462254501832892592950435699940405396098468117542492013059908385501918061650125453086622665791697248631238357202049188799409367743166582884529711049834413796139174646782646403234364142855336723326049626503081966974989473290961206986877880495976849197665126235220638720157128612920891698971278764819561361777997457643708062271939106380350028305384724352363850512758729722317837939906370915355756635319324549866660854415231561990775634122375713916897229093250204421201315868280259570601285814332102332481599012862993044627485990337442669812019035463841407321135665069415199821567133055535695315337329880292132547221648288107386863297152568379865442986316274692195907221537155964137524406932611442392355664879047942584201650767930965108197193409891368920641262070350459940553486478051104322392241546981860455667362906720653805014022575808988405990795097176732426567360320037861365819966023660674025936210537394084173035761604372116750112405216126637030029060275274307749527689157252500671387276515804779640215698146974241986216783552006915365959991959635530817398919797250193455766249946890231985753823129034174765157949015538960631737196394880306086088383665343979934989246445487317839682395843452760083932022998673870547716859915072180928874790444604320467081320384424196970280409886118643640753803030490105656373111135167202559405709469945561461553556298101482171557817828191301151069511349352640160085382600512679452054282582244134457648297611361648215607791069763142029468136986861173825150063747883349976067609204055819249647100107106597496045887893326992257859661971729866604843689135399505659215716147754091016103600685906774175591399611080865654839679956334725357803742703056008733655667777910874305182305695049162156616065856592955240132892106751693199339211963453292242713945391161182318334048075051507100853794667696298268215252446820505973470752237379355969814726442230414191597246532209673618119373813087113467679373249565622353224098092487176482377091378692121377947312391803783675573806303842761937240499246498524444410129342385914681720697698001908001605054879776083990888829076636418543618142081060011121798489351714606479273347113566428142501329266925833186500528153206928603829058807801479412945017368204920338200945687285388694023588599811395453822698178736691045074018783906510775300578096816614418269790079101231861710779167372042777227216079434270302028752622138574762473316799726934092764186008874001979739090218042382398724594196367213438627503762540439598847850782558815434335318370090872805081674890179227709852576345783966747197247729587485128661051547323638427055705675588477863930131435307324507357713905275840976055250414455507736323332514848020599832587159005339717072770236951986973185722232507174057798433430972568598480581913183704987693794965290046309650468769080709068955996532772362936236812466308674968724607380554005543157596586079239066552243657192514792605564679792196848362196042239505578991570788668340027344571552958035867073777639356583041973682917065349335310814530686447388634609911291664541662537959407125172973929825536449554426766638312968190206987673840393551464652215007476905852059839755595389643593505142335931296855073861274955960141682528744610787392694741187585339692481546466896156881203276489821196223224043194612754200887718280797406116808742613106005410320881879589124165344705758975974206177824171827967891120286800459258342582217275174267512683682201457909405882857227285172467319492599407588804956633212583951146249118152347076168562848749675702694554050167650992744227028395460088674143454579911824501719851567858149013998760278945139770269948516302475798222603109278114422782575986559970540152651687892713895317000881699416763545719905712119603123034240351503196408915845204896114997716274308839548537772255402077497436933514091977842713712318069414229771423418260972388986660878994736237972169699552667423776981928278043608201463033138432012098466389104926495361009884860572048105193615343494229081880994908979502340680171694816883740541010138326499525644338219241636780591637974419846217846811398453426132231722501674126375959432782799940587050385414424639492036299812693288251141773131675181550930911745357833662162023943689588337071003292541591094518184443217778705104062078055315958563543802732190738793612612298908976868280893623922936301001524269903618845618732057106865143055183463309516609456563113043479362854663553063117358738090650952594432699073589731109048599038293553418837494020472870562205714326603354867230236016423784811357044993438561754559256163452407555036397446278028740411025920138045765396199976413680657735961554718798159613195113980835366651210992293128749316160536516098578687822883520122063836344916502705188068810488354466348115706871274480075505853109017525074338295455464655101922323451319636287163050651184210324906862146748269053885329377259792539366139887656878855625754800554579882023429242330508192660484829419735964923805481504245474959610995955960912250728273554559361036317697471620155934697704982130172123239339669868781693492496068188724686899591413556211774517688325529681651928994549499194751871543151943367129040949212496809370954340345794972578351159838594816559337335861361663357847931283279244541760520146059011129037962239677551728601154291561347152337300328844804432519789963160390941066365376244776222202307215669245398912755544280647749816773779262969746768783720649325170905684289313855927761276624759973785777683724788545509516735269784142648820979807907735512030863779564488539236075758314692942597210983541969722167933796310069431609624160278106675587193615745361134600777324452828281820958659797405393171237483732212079113782528310293445941311273638078985070215288310016486175707890047454654649423886218518212376382581640803233059597879330316975922082714126047064240654830723076182962865307536691750692785087479233153432848319480891156730905299841243637280613921607176675627266977507508339573416614497011582276615231338302773641472773048318217068404505469475283646552796520405553599150957721551820820567884063997537783249518277707183279687483741191157469094866740727576035960972235895332996962135744021358282702947602573300210124932895607042053585199143153838925068844099458586079921785220313393029478370073265147241365481548701093723628854895379139665496343055529656896516182411441943910625737338311478580164179953281320787888651039110718725509754075576069907291258449201965781907456000530069813139628155671565256580726705734144658853264072442476295906122268289239350429934040400657118368709475887587801968787514165106475791247627403306063012504603651706590689512728595313195738401983796302795519716658839811115003963347307450500128968653800336189863567905202268403792662897044846640081241226269523182324020771275113189519612539343989726126627470853612699037011781134870367172876387968517772875863766473432995576516756398218119174694662092290971456180054582314149545169623444015360547577185340396859853620716354751439552399605405598680862383687358681410936183670859585087407519658988500547003655353428061929332336557603570388053425383861410679849316139728164360185828038532964864890707142767382680416812533572533235308302195450654813783716155192264889026441398724737602348070682425852239064695487173963054813689406151421588217082442805436469528329305118392602543081378703426151424798350694048058634277402115999199097779730357500484020211351203563701312521191680791251314811088159297759197809511721893504527537933746608410122383144155044657523555529338731779458879208500170971425383235267922796480506344555447086537075456646646155597980755974750947682561330547305831625933882008154421865115814846221251165456860300209903723859158959420030663404834411676905493909824357251291755535197382323408946221301945593494080477592163690554580817333511629920801489560229865152467564131247144806614219127734582362795091547761918407696654102244103366882949667364202301136434770959756972905853712340186802915139111408679430400941835475318667881942024763141585672777597288876622142361178146128444999323265439408580639851728449204492826827693388861231545397852766446520817942172854505552996778720933472700427686618969625521690591996436641478896470071224576612062403518619145740767532679916908259567001444416611692811240533322071655406992350802350487274233460098607878300423460507312833454759759141153687300257127033180206022782604608952321242205742301856831761557948099474591990839635314587290483260199546139876314038659656471499801982293660552862569494299563192286748927303920473289062435673016679411300049632005748795424157728095340130540260166027905144700891040649504367354997772518178643133801671256002224860442384240263372220523432747647747240597048258271507130093039434295941298842442303611860583544519565559091395831661269232580629349961690209498460011328172846117506790389810095834623265456814522118065580617389246610955175718106102904999524914255738964941172242090305498732516228255352841905174945802338880528071266705328556447899717932106891215437433235824661784127349049723311382765188834890541028958467057947877731430379608772718399269573806501238008888974970714337030346706350393125903385002295252587045119945241528035255521572161015830982867534220117535849475376144587015812830146562606875382540501482885119736489281161154616156784431933368794380676459700253131853289583674013687686551353405830911435502003950123872249850749684578239180275302966340598543848581867675683353325811780769367990733620081104596060828189331393959557136760457688303502086964588220585998522611826886389960017719797254675069100211233000029637212859356754492059340253830530312191096976789192713528531206739933061482523865755385497176106361907859629796395037311787524937329156811845845037870143641947327816689070861519738446896857732724251172649571225699210300836674635364923251036064431944648559569796545064350652008048138394102990241206808548045960270322955458981877302092113242662926581924108505195650764512977401893590585301529607540529876516398007761845498428480334039087647345294165718235301303293357136000920526344650827095735882680837522693016995726604409089071400859470208734142499832891643101591171650601870277658131014056921327328269284495392813033590404056075609488504040105315458543976931748109746011110782032283408980267138866194910322761365313675621568494021942672555602176372759573774672851734774288692393540526278657249024516096788326845396622086457675721679807299633579472356808660445607841413043304244998855154260977154196053548121693866070574347574635153232217265677821532486557110676337638025009866384181889691800499462415869106892960323520442498130660068335815787699079334730563881269053473756335923705943802676452999358211885648757823323721450736262708842332719421469069961904926131683424117986641220025644862887529378401182382952503634413833855678577487796856528577686413552331387879816523113104526067305899857690022488821045677928698719868754795376058946917951817932939841230398366981225943613381052227309286269961643445480256896279230492943543567540696825541397090940738479714537947264697961637140362252604838231720070184093745809365280408206867403109702408559985674513449012905859464247839697076590158726403947226541861736483906014801418424674180599704476548207640213033520470809050759146257318764439149240172126288984654740722112621307844030354667884401914766290670015151059817368887279359552349854108169519678511161450007376259253455162765579749323997183376664942479568277478114879329541025741925787477291634069725897718806845019951083967589524274225207921489612563764557603535691028487317132999010077362700950761347909982232560405569221499852945576761899154994724706318931319032564187298620162523805352920610626504250488253768032230855849177131685234294462398802762434312637221767318945518012368535324071416908500230720016261086350717634712216032838110595218208768174952275713054294818158584431123298096413969745748692523854827693757367983718583016801043310815473144705266561688855013156607539588665695904194084477071584220636820089359837547152486376834054168537884134627520820027326561045845631989541863992880615510869366170055307795024239863412417523628901680190937510458157411428208452366374837579071507837868113602429972481356288313618712606003082596728473186128374015504132295812177997936254344809510349574134606331425311139490065870224428549593046776613670216980073788226606554723722787870522551689438517332117593387493187150377941171541156997310300224469165201128263381662601817302929362276923062839178282505037707469418488025652005307174987432740998072563240237389897356867641833914130359678706422375734412328756479413455693328176128747694074263516164503146351925359501961242846103681042789033826501900864403281621139535988942229332743866360311119628344087345037925004818897867424803286694791511081141745461891428068295539832696948901093482158188395480240607426398652685930698993434333794548826399989802480356356710053545740717383987990779427821582075499038134017589907918778715308004952926434719203399485664642628516532763185333365669794599953516771772350981888736575999286542363452597617014596998001615350466390889238482502266922901441211424403988734354411597916266291148738279445056967714219130421078143327520972171106421776369571414891252575427526171669254601171975413497507610797791096857022429407434310957124802255863518208089388555702544719963797400546591815317453873867878881384013359541330423068951662647131659631266192938294773415396674399862276158753346261772882712390473954047982081968247961184676208352517632382936299904110980537561861940654239472831370437422371080061748478277611399965032606747767569813076208718398183136785134983328333155882187882582364398538225180159134263985188105368121791828402834043167382406011241398711546772937621667515308009087486031705907076082803854139738235166296641479135137314328639233410481879435798764290497206221615843471446972797098054932946276965952518952132539574998938502681196158653344633321951857397009933060006031773674146372768887865453575975115585076973073223867476945260594111978401926036300830511302160739216580886862897424510966313637177200537772642004546088852164572263569293761922984254676638208570828945455065374489619951860798436394118941755058044778025612061408575213363603886191319109382316941804834348772011810394523355169532212729904170749331324669790988795170212873642407571842475409798513584283621954322421971992609290744281548527005942101348245464593791895977387998446398478068759256354609309906066738408757154245357319886513731449029266803435783816016448773860383859894339685527936283989647160655689021375173111422313300909357406016121558183508735007992021447016221610481570062654892811165030816016680802682093971128997215011331326114684316421398253901860560355664731489589814134696501488725687053721214720456576286206469055424542956016490938574925271351334943508826078991027747037114016864427816103121536451338884987321567994559372182205774141917824230875434940136866854078582379772592008577615570515829937072264178262251171325658860663371092628874898080410971042872397355000712862669365459761691748517798844852004002073038500928168506831484707498836290077317758764652412122194284115020279236306507999664192804958711292390881524970299121978536215084778242632126823446786658222281128425880054756107842862676456418266191455134789467565012779679800929888661994031428224044954745015318552237604900457844835562986869226860564393901922573681084897473446904234461572069153486609918039988919749122018805242170826055516138879783656556706446047519994920723201243596983899268316232368383334736857374421278413472758026056107166452858155532536081358063609098950840076736545329388099559570728151463098542638353725374626663510195770310673602606074693906911546610030315030857042615232012678821391284164056332849771320357736062053579244818548624458293424701969581305035730576727639122369203585572383877836214498325932314835169141415849930687240305667406955581084182714069682410457689898847070410228628955138842322196825554879318950737320754736048847137365725951618995596670562640160355867043901515009329798731179817985287219908700615528546960191690466671681973483610923887449069769456579719931286133552591311116393742762463969861146475040171948283859932237923022284321700552196696916484724947841749021163335190492576727354698051635007310032248309955807997580394865270904298923994604441178216048414814586555245569711004405400751473706581034147162332354431408033085247231203507846730796718436949734202174187639509101028148840412781928461366983921503878547951074728901427029601847230672151392860385694336542110529767968682941964696850981057865062564049426027026947476383132358726201358235711846799401653322536158824676432215781413796901160610484336530062041492623443103019202685956632228250481607493073979256248650940090964175050460328164596861830708584597490153575559672374747166533643762426802405859485218616603295558995085593727851811156739539148662180759536607259189140523526709319202969284048000784191604637863607400783975003371834075596435564182388192349611842392010660422765500344521734464832864706654513614395680654726769507106600264966685774441467576257832044816530844866489193449302502739755220292270792772235531275074730175938423956198453050413556061556333535550808791490438083398355771157664147529204869649753510929434994540930601979267342318323750119533125366091401031420762801201673353340457226648288173618890780583672902765275372376691137855507713862192358133715453046875265478197121098810067312492001678202088945620827490718464468261593832951775100314359030963132044524056121359320233725740995748147876420929403887690230157484819522010090691818027878574101777534609402581101460058007544789131104758057124349480578588034327964373944112718414405344022256051816915954993936997776630318261701326089434259557511793065629956257322966765334268068571309345168265865101351471473998591679443351622331766950032024859682513670052731924807785803606040583393546666868532167750881971314739564930055561289906451278999162044390563834595596215265445663695269998477288086072587953285562334781952696369449469464872272055480893603441062882114978253333721956221944226085295008326492665429939441648599031152049127647145024677114538323821878946487097829355860999930589009344333445693171981338428773751440386140908083308001833918175063920574071433386738240917871457474593286241482750266632602506200782431826137151581068154307944975524927345644750920166775094344794564281583673405187762898986207574911845834358142294062634339251444897103037828985717543019877860392187759858013713754574765842291900943335857354932533377932376835624843925767352379480982163414414275676895042753759803475243158315685716769198255855564632103848826876751370073580263721907696309986017301798048867103583193336241476380551657670480479832484267682503522658784556599683420163947369274501908269143526876326134169164235077226050003128132783699432586506148889114365551322261153609162021626711933675799132472635189233557034117695037929118781482909801441814306193339199299251062947602703271000920135162915673811433984587950420980934732045312268444185158951337912444469196315853311285332991224485881847966256332408321490021605559401559055928496202222447496253560424791656231884687121014603135154340559807652802221039645754814342446282373316651930879423310811791269725190445739336703997227437850010424996878242014205880335984528250148183804986642731321961532230643240561268538375069984530641678302076992158264527892613632212400173465770156103605594780508842346132486459444215548563580579755585487753397430204638244880456640526111999807756441357876358113147245477140793048847282013514242687201087085496195929088448901343490910018577402042422989751931723751407755183942237204444876224727430243632755377769843261378571965202148474337219018419890717040484500282313141741325931231624395398930154070082639288640174867892179227084726208635956763262938276239925180253162178654715572481220398255888147387957036108761065368989675190627031639949145369255198835242998334289911929433327639496913644216269209356128798802338782027756701885557145503330141530498015747192602893875620824331904467024847831888453173793718494577351318175317344612733833307054620400274823552514427206956932086760380484515699460006532509978187406656097254741579417963882084635819845381556365261062396672961573619710706102856225778264902656710410767732594435925246899956689166269939208393022583855479774661339511531309291000348257098532681562550359889447297265857250962582461332836715509749350868165961997884075711973306346022392277454094225973702453654435393311079956780775441968051548163629024773123122353917464151934775012886568178815624581065971092195252528168626394404408022920296247189441118602948211195031252048331176187245109227550390762594787201905293040058407966378934370248915863332619527173303200647804099712223142091553741952602466007162634887974133921729418098051664323835462110131999400679324353126358871679242287119469301349373385961109234592778290952257288456119462329890091001082580545962627487096728068992159702613041651596243027881401256855328286817184601215281856954399686837619406217791659464611065417508740002074480093477725257464879590107538175617856554726876706215415031862074118826600367244912247082984687896282116080610843021535644693098126702075838593464451374979828666398687346546559467024379057041284854768296000742318452714428807795373563089693621689626824567597458067092733343907289218122011569426421072442770931777052260542555632284538032621349990707096264341126087837966263189711570119170993218607436831327710634170162847550393103855055152301290017495324802339314895549072004734212114877355118207939326337114142449398858476851776203949302939322744559027407461708798618295742848148647044199041436489016746130499776334115808488707720204826656161627154723200139136452377791955398170886933929939788621876453845711302799726193220902689447868734890534269593749111407687862936245900597621078910843372451453150194734578130100779221774766584328755269874038908369701579757328359191285978504957286099907020824857209359151922114336583834811151591550321275709179662468533395569463872642401388140704627387535842935231267483062478001091094602555850113273115678428673221157281466335648484733974854215911744148122827319004013523852864800395631615553700199227438908887976852010169258774406207633690461455695513374219588500985017996355571835417529446535284069888198672153862595358251372966334317769349032115290391844244624368238777628773523204078284355896817542725217372387831664717680733109331784487161320285562998102420030519024114908879823891186944265562942777649917859575039432075074849392839912563415650135319686723045724178880800923307015256844078006140721192985432373195318161764440095625020375974650177281409990793501176977264209981119852027360018877197429586214362188428549011325753081866936222365281907683211068179062708354119182808874662720548108734656997948903686147080009436443893161154380347136630473279891512996495903147218476707397845495842663545085769615577169658669189504523183113579140337178408424058574086293438741979871212543875320181699297761087318245845082411358318151693996352806243599486695752485379913322801992897361004497453637863817083316046380219431728333529445891709609846660525074955775345107693639941558442971442475318717590729187920690433813643282374185543108209140701801703918747007250554415282314799019159069664834213707706346466335113969202682996953835035926207374770381643722738889460618331512109711762474913368473904876513850549266351680259173247217116169191952790617807890312023503444562166528313933248321180505757711183278621912112655456345199517365637402318296705978668965491802050035716776150945786104179979562726443767178491118760304962999363927954991896696839944151005485021756794728602444039224197321806226953808584980143854385887178937968120807386230347590374716101383071518266636764881362069483584585703465316131605460764154723350438225923323426223645026992309113957371136817778451944820177889123246491177383424882192209559000527037551846535602917717126146567063984950519313561132622760160132586609907323310247443546669282511062257541492520915039282333718315413609826116298115606037290920982873123390525342924034639221477990058119526673087464748721661692663552882752818758578252015697987499247298295346628539774928034360415044987144060470086078383602264156435249534484129211341198601152608782626846511735772733490088972846003975601674614379490953317799028532406453951920458309011616357379179487479853622753911870522771239825084668721895031065200272393256110775787421346848470782095125949052263241592149598984503997324390131236997860264542929084974040884188825559587212885129440666065089963806375204919577750511169774483101735698229269997857890559195499551782014779417638189415859090814640749824238989472217825447010984313688158549966189163362664963211822164439353257914406229385304560877546465708337321793362005083732644386970628951407640849343349374009995823581111554778859688103351455291308415602842990328205021238258943704670582433017580307331840461730632336057056734179274851057070118184758138825484742206325238437026742549849829294171151204027152890064785804719065788966709967823944988805637804742991779035070998524434680528242364935831926300903245945295238717863952227279174284209479007169873296768988555190926186005940175831720990084158164699037055409063489976231026470070099227533270877211325200852806862785848517683881872623818182723123633534323907542471609071076730567147194140542937041220206599405907394129892642321166624751327395139714233898808881434886868227420366076175012139827175676871445916002333192901797077745370359463128801873408445363772962331487733085601730683926888608008281473078901429008462899028627384910541583377366861323449692242596217641154525500245387546913562848245765724848307442061822673493565951748871567756115383371844143108105059539194487133461524016408811267852594026625617885108197675832555138691656697821167662767757162918281612348587623220572863189765453692654808172484089994632127485242051788561663608413198916504755921987177792574798992243905125733936559245050984779628465837676562311696581121590509654459343626118374330072774630530019486518919989095839843122596892397021204311256155015814726671825392358697263101276706333324999952984770133979357625138581808143966150335623025667542976732339477872452467030895348639785393608281108455238390223654378860119653040104617095155909083272367817368057375026466044527379053723369161624938225082733831286054454482458069146925103302403855374420072143990336602289208442326250835791928715531805813279147468085612004220881239478063361526627607018758326511263337908459116713188934562412689663330542764483300808842310483267207857833209416823935254118106094536235694287044638828591819744423027693102269882542349969756120877149668178432585353639516172328594375030434277867589544575235843485290444413580718874824867330658253728134539437903049825253800736321180816095630510848651869654642375130465105303877771966595932764538950309142928938590055140594520752548772475736038736105179383481173091101789991545517098753572258269358156816421690593494232475923347615970328000200077792115543319270440093950036419207061332156460266715754451378352587512603859877303091764232369000300276303257247258404338684547080719860413242910039169114467021358288164824709119036352234721848209181154607589497866208807816918820333425176961969156751423004463397952273361255780207897024847615959211277847819221989696090418783339677506750668151819740425773752546816414341602847006799487036331241919094544835369208636896981034387623236964304718465462867185934159838873462384276952842210393403701711608115095541114511792989260549162415930820252975321709689555247024160073464349494378426997966327938475243548452347735868139712851354285637607118204988006520735104315800795734049705295420286506889105813077259005713401779842042244408365434452041701250554310977830078028743297368527349331762186715241916418154521685651847961184459740173092233308501239093052355515141580310380547454553511075208726625703570270510160509939053373951519365059201238815212259017671028755680919934901208315484905289658975060264703745206791205094110365594756026198234433040173954554648396167716611716168298100001115268347853918020766378077545031820522413906798154411349172289940851149237294395451279157229646199324031048164721774705828636796931640983627855681563573478154754894565047161643705023231226910949236265773602162515490471230687714052978227592382508024124562487743013725672296167204373075432066542702643759815722761236101472515061647565710938733771827510533435935735167221368894528333788721214437434487624432250098746565194347173487677740338872017938030064433624941832551762089404343271528003885399751728897710764221588148945927737062096680652872673464101748871572509157634410101118614655009395593554360772148838740324186643183146398472115693073552769079791500757813245397973440295047991691206502579902142963250489370772600525108341165921934323244000880745513746531113828517519125940776951756339706264186894285415783108453721882510786216018602527997968865147544881354643070121635196474160360229934395169448986593790141749054231523245261650238084586933942145143681840978880426274356348930532632782102825254171752219119856882975781794065171246253263495524664962843201811460024762615263692347041504435868434689628873784963947933498259917814785672833783688687921508128905396977051498334964572688506179102360180912281576401585589014980180045428047793463009679056636600750690559279900982254390118409792399751643774151564716383496200814480834887955568892052519847693937502423758866770932071423104944018440079544439872936834001507544791177958574013104389851373427513685138334054098782890837887514013057359545745058496179173577192731219041541063954530879010459798697788571718455298023397035973367365794438096364491613193879096561522064170606135253562649015670163914613530939334225547172252223097996078465951341672729229041593381943445231199420813657624927940036728423024043513902945854436425353665370264625482172850601741988201603420092609478573212179661502228399294019553264663151453662311150654330232823280920695020658297939548556259824812170087059873030237890106074422046559700768459576082056602270172446151311259982057199150904530659824056934774809286990693699807295239525689222723752937037749034433070637126064519001485206678195211712742403629723359048257029051515374144987423638163541349264876371582052476380395981124033267579683512929375814403933097130862872314497845190879419073680910470185536383324500083455130822913723056842910325819096545987532705798496630240781983959283824485897813723870490705718125232481226098307824672376226944118158630220745454324144797282410841802806307796731515543227157741685197739759216352631859120034505086706979813727654015774891659332436254927967358322824943344861533888624234146356208877191658285110845589643480970419393516028786725959174615131040584730682173869155838704411591249933839031991871487558636248331299923320294360340114924246101311389229520846274207558337133639538696231559168556888753680850877893108152329395296239645395449806272071893197095188390515625819901215654412325598620716704139164289236098733722527432909155658979116285974755633074535601182235455824483327668902235716905991863152942567004262042358657186187548547444025917840579038603596458849482349965422090738114463387281047777701339656857580461654054660529111642196892561573315117259525720343615499783303245512141980476748929773005491238997772089628165422882952063244907129650290880273204404182356816950902740187759896219503392297975417170826569357318247118340109544610161078880222652262763698869573216997868673384774268387604318034881841049323749646418756493191274826689177641200610993111678940784981865633378266741257329868157917643855800585634343686172134084830078245416857516428968726458375616442010611694455715687626684938390482127703155999350118122896402832803058915092430383071855401574388115454514371765118617402262342932840590922477659961490351219583343944213585596445346426495466281388356809588842590375947912810421943602821198780630360480691064807674489062893988097356129122036861875569182850728230499808860543767693886716536919763806887581894011345537417378938935762436127665044668638546910235453449483472827162914759421632665513503793413641862920527145111297438458911815463062150378835542219013343331401145217612993678035145733766898407211160236135934779688186560513636865170592992598410036260997192931187858136639852030305217395130224624735346318034469472718549976631198664174355950516294983679880030628602084807457563656070977353341289943903993393537735834850961763097441655954270836253667049019894106625034031427942214613877725523930424464132665703360563832960115843059867779026843799157071261005515257779506098408997377776674007055299570463863961110223240196769160313911419033890589750590719538460393382935150438950932873083391933575331727430662621886021902790481205921215197417433295683264295317257955923666974411807579620775036131780877463348403425470616487289218046172927758595799610765395233017109694559680947924730538902790527963274691030843441613310371871677837435271316344542895754170675840796555775293376803932474674947283619664329905071706010782770855715435293104998407325028288111619535518996836050865675552291272304359926615902057164366342374129391663442637215174662908953802077365916867386007564994145733578265486763613694690548356582039114797537779275347818465662024147398943500372687249560899876319773998186802645097777485537178444207056575455581453037412365445982678834397723433463512605407836251726561037664946293002147409356448914975259034025356411173591033801506160237948766845837775107826947701857320902967004294530662354919852476968461384672749688553478251145335324901466393582330262722705178167783107704227194789236582965937907046897505560398668860561189594918986906229187640895982657089749106252850088044829823149126326345286902575101625169860225317393242590106170502938586785190751154656762501626881129079579695794261073147059113145457941464914202668937440175205522586950801909513664275228441221316104131837973138827780113917965635362861935332186730882051786439098650590935303593628686026855104683820638295779495838493337158566494455459126105883035773108130988660564554566368376173372652261438635746086498752889559530056070268355250089019780292551318917639940279037900914653632365964887334924899846117247019248200505488975636789826644409606165438631505515810533267165064197997719687899586114365727969724750705761672335639862333577086052703095354700476872118071942340791780482714771730275637275119628869342811767067726265097526948756872683412078852524564922746839710811507775549604290989471159963420289383181798245327899051313162767844552148450247723526851993420503189114568583301724202009960511203724814410326816289266542122827161263505182613539189287038526655792626769616938801961921322350867907600841243308111041714260548661087789129549846697203502386593946910325945820620146056099008315834674953973498326303993280504523894084098201848249108618052807885568195691488512915625832472697129736344443622340516872194301093061841498466677109201285639737998527321893740300966187766776485239544277070397064968726050960691771567664811351610865884894093913572432969504639692435647312265698976706324921076016801842790545266863063821631493900671830545403101610350751780902576345820786760788036742092632297556189596233126840541621655997433794142553446514117169874806159342142675943930425735275442746928521487555544177612233444955410219070546066446506037688523001368353194929827667993176091379372006841682315222711080394680001672448681074988238241525811501794603325995188988671447486188363577774471550361957037668076249801932066011387572927214641034821168863558112267589439988009325139813823949645885939037509076578645708546331742010409171418124022435996416875758920620464657324030176244318630313085936684969986243844023369713704339806493342508762465550888254180703855860735286844953111542261851058604576786847769176941056167392183232230881641436125603724179916201383021626652260221963606815397623512098284923542017727996105680866439234455450460947013725035022941989947880620753543432057234839262978269348911532902684627964764001473397349592432635647259492272534391542769195756489939219093688843263022726935079279154340366182747706771285828424533615958891640793649834392410284645957884110642345406130806369865534465967817362602774073820770622201582348133246802835160913887308750697632646044642108761322454217500591920708783210194765027677416904561510410436196701500148123295271418353755910633870794213345804850252716787517230974677911933814036175141551856680891174439173844452860629535950231206900203383527309736781885570312004160444868517026267616140608318022347069228763259157944933903127581493920015752492065550588260639559448178952036292078286397219643968604124486784552167437247413003133759767883401763533962785346530995538647635251625848877526213744118679902194657124134139439511852229887388381880771160264371448315731050931713263285362267764669279182824916282585005731276748398310212328065046856717643897967831486567636089208861288903002793774543295445040112656292694435257665181338074518073249113416159169495332601392250859394923087637006863473874534205208538968318261441270930332780049431456087416874948153091020129026010845780087200288445586461751186957491436441824852621707534127108576704162989285677631245003613936394861252840374406989210325971891905774672337340628239920090264556636885932303080737570681503988353041246333448593029102587790081175080302555910860009469532097110350627981250825566388005471912674131939040528127563530037614546897473656105785035733878420975060210484897138177702253809138140166366540493480262105116946058130576762541557608293510835356572341294781561284544389287659166489442481921935692289371586892624232349964649844020000761433867237522736712963675307419121781693453712252166289193840089302868361394282678068944805406637060953954836360394129218535859145464436001271294802669030367627349611312567725540671903626419053804305061671287365451324110445251015499364684807603661637216026496978142802284276551030776520770796258942744405321862981860814382298128108547694245757607708262609997764309034380018180524322604707087563710675699570572573497404775100360859768194665011514095904200477307953401848887166876650337568413286568062910925988498987598585424375680774211588176321833315406054711538394216455244754560671709955110794642965108739364439205491091100518379768942598199590840036447815767310964683539163009356098041558379668744818687233177747329620748191833994261088600166473494854645962740542364507428240901483462824999499423201997276325474367854851921417116746284966072682726298013607302051668326150222347371679076953286835855816469267581301813217654275611807751924359993566895283547973765492134367477019153725147953020804963301890246100526127420996784937776001137535991290694341181412576365295529517682137828390295731577771436853175363154133863255885959021643352609366836883987206677094952352593993780303424687261248616898426090871994550224758747749404025636296630427781392474541418507006721720507480252159464545977077769089728922805144407553630799257315761876795442865622591234915418054236316419303318247707216735530997160909337630672382736981104041417349279631131353444018173057830035728980785498367477642806028337258478837674496170730032005164161430497594962394845154780842258448391345428807432822597786163132875253223672565069292983869784404342748770750313197888963219796865450612435580049799024737074798773409990494746090688979175341995255860951900442347325721209521325730918018431641582282460379801657817254316428650568712728535329444856632403971261864100267959124218386217811677722677616503528663646675194920455392620555029647484991115637370220387501217690369283185213037852731375058085487742537054773793780469140990114994969765682605397303412241430759907023079854885166124222379997773876641059346181786273335162165123423762548892738279757562285757464241852124700019838088088585104363284901926771554899652051793943792401985474674808911221725873521813548958772410447630506377620091253009805841502328437733244449048023079870024311913565844327397450538574904773078005342494743414504488318360613709637261115676432906154700041614286826769640965741917717973143155755228434728472950807578487134355097554819553167234465870294712644042044829740902012121946591947724230831351855715917017181723108309927917290681280297128835406587392235810177066873687008219224658097593185534817834290757691843863159609865118023261506293840629127422946484972273582840119773937815731465983509210520520686362631637909272347998578192792878167965487461198053597633932496777506755445589744906189174451969016366806432904609510091453732390083097480110975411590051583944547457756914481447509805351392791753556269129933614919384633757980472082413582620103831025337006099533975047050451677573732687800866281977908889234629483543538080096465950896525893955093622726782454774621555077430550920011636835539302741069262996835294238546647438026075247811828397294519470984072515611848325750999564342755604434930432407796330529544016436521747406928766862490002103287480980655847186218809858652864442041982579766215003292559272721321376545557623187563296243435062931362471304169837135323418459504894821639997932333568333497513431484155793274114215294854443108954367776322450758177248872728820335571148338065199597928916400298740796659362266105206746084216922390471448892166910877160325246969215128995650958724547012913129633630559398499067309764810174602131461454983840455331676655664000938335525014146439346202670737009167914050909978755388808682738500716809753253142830806137643795362155697751940590037823224107663306133425259206148545790490263362652774426892451902273411381808914622174272502879117004849414943860662571222847739301309600240730356677246580891920335515738813593203516590046371335065153315986594756732908481439592026086713838179824091963746645659987542644236443164281839204367700541859980671147376099402188785550720648985353514523686497765539609057628468086675518934136940102496737331509230276506643437816720044040625346402670576375954925492664297228386558351968379656485944312372463980953302754175502845766686214330633807203700746557692318678069074913869172930155972249742901910177693861355565872527634403911834815872859311729722298034254749007976241386957545646783003582841175717855434907236503188822796177742222927236280401133545962724817456465201187625695078507559250096139028156558873292491421770497778606579028193257360013847254036787466062060909579829427507754478093613250733884170268765765078871224961764375925711877236095425757699929646181578618281745284534265050297328389359415817066024014633184654627228437073305499939771303144434410933547908520773426597488320920359706502513787900803831199044198751644955864430192110998524509809620827711712820790360511355276782251967882236859235150826712768894316297494438632808013217908068790556470933876460903306958573199446976452966839095331506356765106724677590446147220150859696639864590495293214529645276115652265480966840971228185682898197981078388479079230385768053803280837520993927781097848246391112124258318950555726113886439828631453783747691188446668372263599986481576162250895187000052237544137382971234697359326612074003474464580448155152811994395638803125579653562160935594974700098076194640385204721903109206080705016053869631641469021182539151035471642031392571484616613515802381323531714752207966328272078553285550451594004542964054865808611964479176769915094959297755007750360211659158846732377912908519136571034910709047709970678724252764999940152250102388450939878745288804949229939233307222223087802434640295808336633733388161364506144922706399950360909924171764312296575325719534549581135453533664401010697611253446423072073087913668133102755826404572454540255603633356259460039771937922206725495919830056134560722533077331083768883445554237119160187938480073654127472066566322699976650496446192255139322259554197032009426949168503293711372702638314399459508242128817766885461831202129051926471632355247427336259812579285917520876317842567438311423393713265965852550401820447056491904799226786267570493560691435288528248001998194331340605924679509337392615803896823958557729300458125806334108821893536187835303311636740306946244933092344251475289373923203330255239606134865924864133457687574374429886675138418934999559803512822628377141031035535086768369815446943307735275559094925484623845324391001352154098525008329014940872361580943785535507942661951750853624363921980207102940632687169859242736431756481244512089396577148619694783460011413008599273407456301277677404185115335926543564161703092146924118205395577428750199405066993580761304659636346907138922746433562150022833434118623636480002151514685754025464448384051014328835965419837641534842460669731268438619972940275561878686120067311231529809856118240376605703774837377212062674806095010015223075219388838039817140186236617268300353455587113287913402925312485842940918736589304917446864533666704378652161243152846360113235698179970964619306791581074892212381229181575532483759214026073205708487818542554944857245011367238411002109139232454230447344233080518138870410817959810171729828107640579761997871966271273052181723568705189788228432223339985217002605145487268646559638252700358555141193785935958882454203506763515820975422807585138017094833047061951564124123020506638209025273941442700110457066663960481593839526108137453660394294345865808591318331047006155100977389485339529748190545227513894492568262727847696108716147548067745197161314374976654145847868969242886971629113331773086509914679878914436372157120404731092507857344335432566107388632286962943434379514539691668958570048417240085678992639124150060180190046203199507029686303882946498067752017616314397791033906883269531816105781112515883805051344522843072671804901479380340039565213240076973922178396614870009532287482335465831596737741781825847214326741378533098642196190689827079720425124703173967554000095678183872116791573585763650020205960074683642522483355771099623199133175519651791200703500507226253738391321046677413689628952116637626283195974319783820665566633529141350935501705382154509021341565035652057593362431029762453244597334228665449677509670830302014130977933338352657850332369090240882133875284408214883291294402312781759582863585879119761960535728051482225698145393694936937463268916124138009741874372111123680892088728454870124090760054917474116850768127965707134264798173798253554927383759931671293040327305914127649096511366887630771221305784669682055315345469766990570654147361371244010495255597728072931327974791193789040663114479425413072085670122248889543665661896995900571792855892754501058664480616005549810067208332391243212077795359380301909049868175689764941382222618100622004214877156565025118906410863137093333836357687521555454193260870058522284529077771533905490316044095947659135128964715377953821640407790048924228015950211575522749632919612907890702045019099178871220237038867672289157853811520549651844418831758694820052406830911674999848267451504082434256745397010249997073602413585683226563660722947010402106393152872371410506867823989547402584162160925062070194399560723394740225301313079658258884950603859388107393817396909472332785969392927284984531623386226359056777965423195645447991943052270275851836991048657510381463048371451097507664505124096205044500783652972199977891437167661714516303552945725025720820632753012633288697253005940208716545405641328245159131549997746252301153945584406149153920303090923303578348595578286702842044086361164999588838999506501219494881200592803465284810375656795042077872126877790250922720989788107881849277911797985571050700427383178644827658953275212641470473020649104977827916074104627973623008702698365139653556987023193124507997379224413614305735049217491623437703673078784469036015682846102571014084129098599918566478148964071743154787587125581544896120436514546960456491441965280549430192552237660588012207850037324111096918160867552686000754919041214175929359013444977308216899831583669785108179309783867147335632444578444187442242385729692071972931082138210756291753000846782232008193155852146299458891482611703856218784579413582144440996098891550004829421603648855313690471477767530659603282588171685294098608529907110459515014727053619616398523595905711875315457337633810476602731557414317316380450902305766557887028269641632288639132295268260584571763654679419180956818841851311576791054097221430359628018502286232257607556778455855021908638608684710534441839237742198046722853267718413965796630823604153122808582184519472751744534844241712005220595618393725024686211357425815207252593089698453838230781061416726018646393039096426037221789131710200652704865041916667750946085639693272969929968496674614154445903948602042788866271085466147323435773604516916972898730849351178908892506352677360663608405045471237313885878065459270222540928054022572955495182934986186965701159858929089452177707788141636490205811800132924896813796752800298934746193368027627936678464266166617100772594265781283470254643753176207049971849190590485708726593670317972740020597668643513491758993439272331081861535875178639055620270430849464817119723881698852768472995012606688387202529692478207807191258742886603966317045655786475701320207391577032584463817942912964133830230989338498891539274790095102215377051723098929992727188040025075049430332182778447461819179297775007884079089873854004029488481348078458575546453797307457107517400809832027031641060471219695589551568301520646764297647418925895361303286552289600252663801298001987994031114324736452519845140567727537162371492259217873516431511049746152838709531862455806287335791431418980447576017786519227954638551448885831779182596749040283003281601365832914715295469872035196398897714010309818496545119575555261080618958102269118201707017059622752869964330793871973626062654438774067198435703406510976135410461633151556419141126824008859542045371242743051881655777759949381859951513317676198901893159709217265516710082897885655190283135866984633492716047160608891004468234176504378590684286098650188499119061941021635905943138604720734407997811273853462261412724599008277263832285040835963446047387969398369509918491514381403345400087290838660810249375058026729852500072023997319961853377225037421517320212925332594457206547819834501403401325019224247110231277578785707123412757869284737449126258681523493200529474237312602479905251022022834585696084114052479555054793922258020531962065080674713950548339529295481398420506054788026178949500094457944534958608719870643881571309803401466541871259748392463418975272232777452202652907435063095800183647312611575373186006458543617322258278388612079056789796155131576383407274722257077856758698084651374451234011379815864397630260801591882076642292592801030979618080473801972259477171612628075148817076786573015727529857867440928404652476954589480789003283807635488026700828775474438997088088755439028895347163436506472247933363522734809594099593847710613621912503806942760341150970843870180720508244194089274388314593066759046164662336202808015383177689268503046858314609738970617746501078037336866730853863160415353923710489723280713334282070588610571281658048859288217078460064072334889731290864361986522068368831508373461198033248812094840440673034848466156081174566587664186385812884857140468969148950279426315039648995267414116508498389518832662577663259240695203236843002373940155339366169627943928975865026889930658346782975192530216589897273472866677224881647994649556046409179792408328404822349656956354337212603174445456226338681551836439732667992607772553977112072065827978184940157999577344990441652936554439986801131617500248696717470342052678924110596925533465034974454776016159208299600777874998691465898890760118168927562395065616782985893651003768788224076586312735209992299690630307419293174053536738397611457329859641443772995900475541029247436927778409731612801546089521776571789459782205422557305382620013455113572318879141792748709381667361158523057903119299746853690035015351172656232423953942430410850560542276773434109751106394130733693463508441511684508354347786423770249051214163867996929430624535689041050527225000693231297019593264628068404074320834920514271170207297548068400425108546281006935450184345779593668839428760380893051563855084480335108611767002938582343879301625531427117648811407984593094227361974744203560237854122428677125794045895246580246853783854913369253646681746347016098476878956602148917495633882394719576229452535118109016848266269269529791867284193846770512927606153561747330034224626380154621446162189041060947300475582715382041162180834640021966983841196093372004071874539976101605416011057833756671831984450051549598850080323142804928143316880721206433431610224523832731140717423985708321981057674014155244153266616478178022374137547388853045425699923120316218937755888179831449078024318880817160066747287324840343897125811996577459370975313040829965224422548426179532337372841358176857328819252705378184018700561555758239153102986987777701552298063015724679294252161936907908029593355939425256227298993046489287485280761857622332131138457050881945104322542308137513777553861393357798967783932988260332873543290856264200051582590073265075890369098048955547258046804135902282105001840883386529127214107614718176518161886934469284564297789754857557280300603582732279258663562456425403621716311625897201121355954819279298866511940616083854301774078236581978734614641255509590177346535753076194035886144120861179379780069794416228410919501843473707162153231094111822132572252023733999006505380462864365149817057736836447278317497520764247349698904619428162536649301502738430917718489159362824331187516241898687760075532407918351374043670756170346350098130809571075258100913583189286005176289676987639023234040061425787841981776685005758369840800199663926114114091594481816425812148078636479418403541829719325695440591875828561762026715298242103962515947582690895223856615327388951987895438229198099035140444499179931079284903338279643576653677131242825039125988761773592241512418519741163972966878196274686245840292224297742775785312101776991570090910462826229448814819730345191094707518414261112326205799157134112596779811355731577196875130833271959219350449407024660285281012208190170293670530119218487429154420824817934610696787332004887116342912622243890626418745575585412388099551198646192804264258701364714727642724635802631642846609488466083921669629633732174177708373518333598598869060293579851778539366481457758901538965192889283212440174035274577708950950903601686859138497264277937960511254468096082438495271504020141560317103778215092495665885288067530466669767766546339718192684748732350253798190548126234205107222075595704535022344132485633915537247947505575720875554204854594315887995025539241723021721201278980647990467828371933513198564334731802002297799345392142519181372788303682851392457073353083860512969028490558285708473436331613058177374556852030270683768260151138066685311270225669340653238717763356161936003056459512061888679564434484077036411918091843886983860336723203606391655215909785212749692268111762471920260690041854390090393561411775012674632907190844455492359147710128710801238439007106165150829961927132300296660844235707286189827751915065829395437764157891404848855752616969398066218899972565074395780315069923088800385034532814486296447617344516947064742605027100691118004549557047285462899671224774623026461329181547503859788163096564664229779219868630314409557151057996784786082370733116320287554985016455521300599344857717731229087975912491303327898521526152615932211356868768574178726663442682400345058268852484379486316235033610572382817629554759807977840368414065526788907058957510604388053571512285621975746335483759279338291736827888339955197076461211621622499678221050688001610822920636822324502315935132004097386915590480202995387513119822321421911065502260860590881403792915161407941170369227897939074268076857280722473653668730237775034511767585865825246695974936332714883221414666155282507258224511349743146526848617169856188428645643270112907647949387565067410626031539616671071487646847129024448984298599324407055301054970798039273399705490403693308636294119284203144495008927999379498360263532940581451757793100861320270170030496878258141236742154523363729455202484642449097128807991319496188996946623611184565955088774561301154592210762328227266649876525534820575371542542427885695584195623720443749085627870133428716961373152776754776571374497838062652945380612083727419061216559482117136240856281303270809237049985263679246572567859937010839175124903736637131332466360529724931111748222974020323878757022465291844112129099507023375982295637651681906325801083178647623866200940389485785984816989442588159532714517221974673165516678651969626907293781844106647157996778964753377385551998073879058602231329992103167264777034424708120898342496936812370870698203818642400629876792438619431597105517240669822339632665716332053137577554389488219793956192570815681314166110244116837290685211014174974226183671530068064459428335086884653337223110450333658033401835039042398641875631350883247966419808355524510090396391331901509081172761014758553383309424153429845910896524574794614059219664764988862040026220651470805916649298145872616559749367173902958810032683056979211009675590623391818290744349053951549515346238377211975229689186664672008867302294763545592460268957006696543855353792792821551330428337401875584685088462287223311884107118769665379519504349209249805470817198124755893959116217399826624692138883262828097106909367925554802703458694958092636607940633858754414329384808949141938848492834854838998402643314904264932520903800880761013944046657279519528220767031760591283628306874793182259180343937154203444036320426109501468883992490699182902384669245267157619788707926183076476762109009080829190828082192253481348927005793474543810534313617182412460816944862623763375087727527393731698081461576943353854608273266022638430610625204440083776491252540029735655079149301814588439549403111589510362748709797386750375799141274083101863363987708883320972913494603264940128779598279922425227589356503385492068162440140043099508281896231058822602931185783109010573802179981814813017913205157078462542559491938624708125788303559216048036640362992939289833399456273103411632497133836287110709867237576147331256337987831845417843917867115201777813074210632217730757373718535753209335576242527696225559919901812943651139277973375794030626633248250618940785622123729353304575950175615299447255361037592300420089093401107896450087686511630556361183092796606700818783069316135319483785147477195175384885005146652581724541807363597836223998559780046422652865892347479072570017771035756630354674639591875201450830319261741839737833744955358715170109895091643442658364681197591898239709320170968621655437845822808798510780731769634587093117221759057843406170234292885086821093515165776818819221010126405287674183749794118066851054173800477370600833151317313547039456783288886086993735082217918878957512965823984461490090809302187186552779449195605039641871145640712715269072174057428995525153868929109576255387424534153435504889696853677721780212040765905624207216434500501968525050373073808685740912723630437552653545410492012422385856082100479848742168020427011575809873118968198060526564496860368228808787168709902430320489437606286992414967796735761114261215003339880891437684245748868553402322167423335359865853500976127699536844717229757863781954181958697013985126883643013681298137167820435420748386746720947027124279430371032968555164726871640814268583590516417757263459231821206042638395583554389727392507581921157856444765663791073872568635244414957318677971278512642230597604564636910486844691316952993086547426046997187931937895187458415969238696100358569230211929674027637102704789455410900452470645169863356923108655489949735317523711775133246631863321667947778823620991649285548117271762469061938707382404786149381594143317873344106254234540341983760542480442968642709765559141069794351703992677566950062684347527468685587613867679966337478232269344274807400402122182214955229536868734270255542607334089179499387071562925412206044894184494385017465077370250956529669617343617370984637024720516083437802998642526618172758464514260204021931650810218640498091593062226392395497146649844950608339896499553447078834965118561333373245275146150605270306765878856581371403921578365404343967158834495826901993901535138913655532801243871222173242364784110076239177550927807042715290211690060954629215288188992086115820405630206766237132011728551861787551164154374036783599249600718123726355896194152168927005606104765903331421735051456190791159561295649850999787640629726652027630490269144881890153158807991503262641773632456167485677504102055918794619555278821654518015272200923249207239919984702483890684107546365081609425811998841671171856867786118059411105687864072030240209165806813629147387349956611418510530895762147111751704878553084546828014415076011454940970444958991106046228271776702294507103872849699427063346640420570375319913719950344851265676521503715568192664511324810154918858855097516491923009088620409606029151446471987248393701316796539225937614157623092204491907170846323234564751481648342104617254139621602422082958544774051151646452987165064746514877909361759633965480014979325861564773760261249935526335748865371907205725170990077362982610685328086786713916860230025245073584806526428306265136711602971410978008354469084698186677842796720022390387413125811337575628410112979515788601682926529733995865544085560667014975581112609931241694735460991739632971934977735505400837973883333468225520026569264809842322928919943120233495538965907878465579524867044901828933917754483752829505523601748374913121913428755139684848482497931279165613641480399866043452025708582877806753317149357526201441079523578085132092470097568858024580921224797303336731416430734390422090051084697585809550670338613103791973313629776351320444032786280134184068008804644853313481777633753983416096151826595061635856512549405784876176471083414094197802921815273853246065179498564032110925437840263086061170373605033273178861417002910985111413486107087711179061186467636633994430070926057694055476279774151455400408328707199320296919902914416968051442417102912575732400239257928814026611307550239782487751509896748040808443350251145490768935779103407850979882208217095300415889017783674305730983928267268157877808118362733114509883325939775104350765128987822555227342890152994034961401438199194372451197691849042292717022753796476092763998398802409293243484236519219408070513537258866369680928764234591583570786945128380201460092831031835506999164495354953357740754862538976467483392886563198192033298579958250712126558135864415651986953418230335536613850813289735647844497291010886050422759436329042388625727370555508462563407135391810186998840952528617878659847661712178565361695828448195068699943118858631025023250932837790609023658356739780291802642760937918970755836820210813767912111762174966946933148079888089001522588880567073064590043251047924725148779548954847426505959148081202642029886664455586883146285926617436724277446312860826494066821005375045355165952387298416082736885815079626530484685180688463108804856303667771871541600817604339263305427702269954594156564377301904499756080513525424899991546765047241154068753453800720374634084899729784110360040027166657031180789020715446605440910091117633746878337152331525173152712085364313932256657462552671702065153896839498121762011164392110158383742173953938846305166847612753335823071719994315073951836016221621803634583548183136481785096391413751904419337574224100407110956234352840005471995681218378447388906698494750222500103088827735736772589260040792002890829205447543054292441228816246397806654448939382922403324804536751051073429253267330601810348645202995797223007051117676208917169118481148233066561314181722228819844992297072649984320740034551635500350015647899721304769817148732169916351639265551724952507090418625732858802829416416882845972388577653404620560195068066421367259212697689665546443167344892894951767545006654383635277910317695664921769127435380037940721358891072267094936823547758669810773430914936832173377366235094566822413956946992908881309109398578272021914664406754154976964309968716176067764562647535623736337669399494485769423425654913402250509179315984264201290037961602883021362588207844024125760523588568455840521777754533701091134572433237211806515478027465424745874489766473066234750297474692283596723051198429175966164942684733316006391674593306963453067373379897530944878267338783378277571581392191367670116294051377180690677469746359164163786876101115239841383070955801086692967072353807085637783703956520112891985829999325686224039526751095754595081792470511328828261154630249330134483277660861812438376947471638815401646706318659279857204293013658527141439501927075521164390684675105197639679039678536850115258322756641050579003892975055032487474327018418322436640336633376558456551487799068824385039574852041251072255181224058705018513955675135572634026340016793339142494137498109920924033797508753786909599401440231960950941775643707490921568408767554659841434382534088506607747814226919034178223455671208450468072516392133832979935254790071492867676906792519485250557658677978813348157610529181833511349264230835456210728309161300076587004582527186569199639928832996663503473348303150491978546253985996696128517888638359121322393726584208898811407472862863748971019918608659666574956299213654710637249481233540583633630546951580970550415914317097814131807670518933791246277550079405607673223384570977789756314413883452406360380752529373712072664963225194647269886833738691647971752833541035494688146515042228718684343879352659708759462843645207701792306833586621551351730640818727034983281591530175124323712576613739021406551591334535370955405821942412490467211437766357458631446399357547205007322116988118293983644303459959745867187740039589639712012470748802972620861961999782232241770508283535084874330493667595627547243248205995079477016568077010815524971202146247870621636386267741596172972892517571133163959154625812257014955856979441995090593571030568574361526788174178773681414641973565137672561339089040189039401729818084460141845442327485753768941177664448323579838824883881582829091198302493749927634372241278997203549912128851207650568657240951633186358899426214605587164792258180502798655991866387128300896427870094803316782224430635922244677925023339780227317250395711520582650568918819039820893650744291445212420756341426826032845890580807658328288337398548044715476028579183877567095416092664116023191222999912118100784917505435258223400141533691351701465371699898632567163385733755972603892043619050049948014440946705127425462810092842068578191042836138482883438238086962957172277557075010454086868062569920079729626532726361628923371589004807094569804531291177299919554148515689465604007425262672029961785519162824389419905660938031572998799657619452273167339412707023183480950728606681483180015552519430901819864785160144806764940037460945531810106124844719754430676321411402569174669735962357988375684395247639425968889579894216752635008819424008761701178651800982499628479138905212081353784229754508416698160453466972736828476711616596846310450593117012607738337815387260624857434421278922505540182291343449911660580924059847820385991136844160101796507377013137217819324715071936502448313307293234982116899452724796647894716910110937850391263702190829500023744671365528558443947927934281769450060472386002998356786578764345629502229740724967910455509012158637827264828906349717595746728963240095460323396489058655195536805406471025740427514960364924000881366691533476489971850323003629887153497598120615636614856591425492704284871060978456370501407819038634623793926601662659329477035690444410593079366778446134996657842995427475004805835987911370182099799464001835395610142353497648322927409719692235163229445680370999559585544439258764717281696871631479743481103422397177977972299644896734373946138102033888451344037031358067556545241601604364519203035334056187264418547211680742912065517635207980072040074940348966533663339893085379300051788082257955395540658624047258619818074776623124709367029039080855226789215360212082835116132292849876992732022809109190579377559420791454400700920478164415255315372121638021864875166468599035476700055062280567652475002268637237611777882665433475566857671189315082759571565021187576358512573285472389811047102147321089105713737269929071939623624285613513549224712103226028812514530198375673939852815224585913289114609798399828210821829863102726121723798746548898097196523179514607201232925301672497676280771377694667667798912628118870400665036471534090970572752698726824972394743787617516349336202867453268116989373918042709689884798683791619962092376041782225196135228049448356955913343143108391952722797525680835817093608706931746539560454805872785486245703601682532322864086058109040086697845926963585529790372685326659610179765501338819562798805869489589995929703840406488930240351686676731611100040401607252835779682868658238776198556192144697102543434874207176025390793658901910631913910146360121298461531873567562245494983850682101297853258158770808367385689522536126620858440218194845812077681794376472209368347735969169053663244118017446838366830403959082173646114657060903406039349124810781920270691072492946094238535727096047381604986411981291172897576472938164022345897337074596650316676373388059840489886762169577634479355659722149140438971111619584350271286348620585004461576791153049648511040715001548997989450303639731646570483842756610100352476981110254121423649212528732846413630767513872040823405741493005928282380508312032770580275544385892006708723315968998907475622027746933469821188897787666966925238382015368852258285582419780454284558231849369506235568895696839755797139380625718866373829311339345573647386421486402916625272683344059868282441220519712936552986201698615590995486715541698100751354994472393251553128037031755252919231552826891510755351859683712275425292629055868179993238987531461747614378799017546057714144233273172898967558838994293307159692444248655595590375542665919253782986167877830879045020455007650304957476955304477722336629344305806616073086691490656659469203948997126910324814145971543791753291536660697716840882080065652012504012298930912159557477015896104478325764274202629254457581810773275638804976300900267223592431571276412333289801637198480821008956568329685998126153443436574724871698397479274688937379108781660341441160344237615568759489041066977459580099798665788198347105973753861993448346147331951284838780733368060313788445784819264360280764069173976552978299417755495672865758384209293988285164728689291689974838786640067505914104960063899451494694487073259893669906328941808986131583228194612422030566308294083097133228125636320086646048926919350165711583922915878564299904863943410138679107916655064508685888394401558054096060433563466315305947095290459911430220755730010101381829343131302441703566015709044229767144086671315351004446950223601395454652613569094313380719342348095758403255843199255968040244320733996047421961857644724984444165494027581151201322482507366909584078585942680652622451935699790127216654582560021943498606334664016664146892529472521391866340229608964006189770858704874671780038076222511878018309889996871908399118790774300263811276799304868295526250341018862221813718674925803048360623181079488863912583734178322497318780562820226926109614524282232380320403594028756349429383895768909370342024155979834559904216187772374676896175917277478795064948487139025078958906801392345890454518294089694928733164993898358911393737505754116693918918208258913823329030467720231745690512651347234426104857681574402505647600827292538690454106135045229945526326594154366683347495881404168720001670953894875837674824811622567054719904559697697054361693201607445909386074069927384430939127678332693628809773526685383730081362527080413951616075377537301110474431739238559383514870154277086073242125051630219906192326041793621003038825638550822473067166697630978856063600563284201569944985415495816848854813491856697035299846131994020559461466610471553897201172243771298466878192038127554201618356248542266664362694682897095172823125669542849326848246309891171038527402286104994176429182408699163383189425583868263102356199221976188630461355023403001240262024825908103697679667623836074825185718496324691077029525335362914930822020038413306696475287612111390010097497921265851468240369373784209962684613340644340779710310311928273515099560544529724485081799731361588645131621589010729593324334322384265464296614513591161633515756064126524928063033006288046266280571052735364833944326281207136803433147433442340874600272531935910172172397242132136309893300057415864922482673674809417569079725987353781287929056787895191315978469694182270104645511258710033592188186926180648943829600474720066695898011710707819182704583643503756718613555052691636529244425479442077717025349649645997992644782692076834596971210609472662337934114861833475678260120846824650148334876646146046535008805197871899313717959704000877612587192333183915357174660112932906615946417769934843904613687110465051016039018724854462282794757022419187948836653840932996703780435917528549909663229875155572077546249784004815142150605178102218729512151667899141153491209605435621567089116929824263832946289521880137518737995108503708510392125637470210980876546193353114670810783862514540942932252324231377146181947269207029628824058756354896957397625118062020359223920572553382522498485841270594344192563278556867022066207786965686076083763617979309221301830574858876400721898400173542942014334324278881148690287388037408842064577230589252925161796704274565980657537232280954590995389298249521172531885658856121081971154028172110503001235213725186550481714566388918337870883853826446547980626467192884276336044374349515195997309347238113452852934463371463837023091335206904104607606666086377482747260587759527350977745030740266908905953004683222211116545164540898458837929823824401541696672574438811714028467403119374790111918808240207357534425821878290012104754159197037057553858500907941222977762676877519715746019459857762454444261413708724583987493533602753922660519720342036141466432437534344018193518601162014633086775457425552318267528802336298043773662227205062677934248148108304894112875491107081976109321906534215294025884442255713944733494732908508268951235362894280568126103750418868912921569739823253585120557159508052058894884220669055907371911978470621101329028746114842037681939268854013193793145291929808352036077792521174018677930082697586452521822079685767616095066678949835192683931884658147915009432139667604363680710312483453998406290540388835155639627013139186143082126693551804081261718898379784678945614703598253336745209127301694461984739717267890770082172653567894087432387824381985457727032228612900511077437679430625975020162862582776396902412940612722354805414741188367920975724478940837158650950842402865319493305210781939966800487771184010939078575744190299211064159116622230958343397559354329616946765518451636171947938076391505798979288026938884331324376555843821814878308594090296795581044059699723272943815786835556872366261772467376283835481955575631851322422446131598424908824974915713847514374501399884281064414248842647481695317913862497658983014847580514020350228356974027450653773155398717012194764761760237721092029042685690924449873732991224141494979437596691638814612799529350386149167399223296411248670749858118950069576312332282866459107934912992990940989406799035012965842174974439611671616192738087756126374758523471166060439628286737244997383334666208697040162402797528317062559711432938075345270214131021202730806820670428023675648704747442538245412617634267909061659636236018543850347745373490181980458364908911102025088433904005150468287764351366012122613408805021075005099455157431812098052402366304041360089239115983749632733293379073912798396554730805345429773455105873391184464556994794512516398603712580576833573660055414379831808818411777982770660486451702807682939418349869546721683383619783380140392188425068880510057031729814255738629315830573848074749967053159672476482186512153496030887437995022849076053195187280160656882238256804149578192774875374640491833532291382357335097896869059361829122795202270789443747958122699160416856737316197799411591589577890126667378429133992443119286777637547761883963712763358958418793314230036551698243689772128220472784757691365511378511247871811722583055681241618158438754356431794713118758541474714150557365968867371233873159102543323435677261199329372088822974568536225516816986389944503094366759284742292719050699155693429749603544639142917033164567157868179207069748221529295444101911034743555726698706099444690664507005781281581910445055607114394757649714062148180472333743631380924368468326606325363473756003633962798878216179980520677236220930153397689225315337486349401375263019635617952858561314287948724737936545221193014589926120666521410455590164409298200675789740908079878146562025413357966820688322584482374536185267502089787055444576883619175652647572354313514679998266127194462215810598666664436499621663431719337132608699223337416817827444162314082866101830849195103805611480208085735179637946568114654344110885645687463065260373449024851654243498577106131483308862093119645519979877355513326879836127316996009289934528191711766347660830655834079196997093172960581841182613994607416406236338696749218508996143659554489184178011179091000527397082413223851041605527759987531059876128537816906508810436452577226951646171141513387629975848006774804933784992549335392536896078143220697842098153638361850368805493306784628724726404391901480621637044651433926360047234549978365114006304408975879666593486377440926900989517517132809771681146199621014566001330257863802920944534212206091081376992987911507523636919588312857783381332575379025847430394990010416762198928729059436300838533677314367229562640816208124894653668479473653045270274440574530444620884108529713456114027739141853316311959452617600032340451690386040281554261860412352061849644459521834751704715000577107727052427621170202343982137219496417726903629548764015655852338353095429645272123090486040604614143006458001321169982371311429439122912162494714704322564567055874888058560430771626391886534884575118130075179807980558655442656509497160419437020436402643721747112390245992611571833596807955598659017942300082964069606489772376071661596786762830584873434302347312435952870421463382279282271880578095595240468161035153506214548043985341269768316776524769577767145678427831454887841886919003684808648430970157650921889766787873964826495807796023117282848558378053380478482831535589891060047002425135146109050735727756795942158324623019450434603062352745688014472900152786148846646048910210918074233707806443293446509185583444986302049414137067576698985124442538495428160289406646161821510964595478599614246243529380487751338048326223002112544736713101189937675515695728949870406765282036199485736638608079537777478383170435795907849542726100327511504875952805769389407572238463965843674424799656975050983508405588789208326960232979182106293643105674240248542870951132930065100053115333443437264188095928318084163791649354654157085344134007938592744223252837953369478839124301790781114775543968632536451651669286766797707490186635471539445151823714080925878584096563601482891882097247766592884020545415714292500023924991171863376904232320986701131142818276717585969962193704777274694007931075147938379666716510262167422105950755447743654035104857334330570701745054524899823202958774831517682812054520586952751140501737090509659857258397496889017540263326643957291732728749991762455632268390367049052025836493069271849258341627464064414609636984762982261566120753351882732751663838142179057498126247568466093728482316053803289131100187326600211785795507418645950798950968669032471880520432702127348060941827343518438783843209958936451483280606011555639529187768894237320276271227258190359253950085224431839300997858962289298920873085967345603090387179010412246609929149001380641617739834923404344638223401987335128091940890508666741805888653994515984400325787906040143467198593184367433909852183011987058231468008921509784528252546559846874710919058965723518518703678360188499118771378609734721335583091038781852911110583566397665174514986311967513941562433319440176084381696182470247615017441070818985487060987008079867287077812345253345416733603871091987659485190415159763455509493258987145422723064347236822358481821518282105514778026585388940746377992065877843102054146486924267729340527618784024622128456414364834404564414537948431759838001858084485296642409425178682825987917531895424525551812931423101642242832279198724054957312518655098163022270928102369703803016006045594009589169332608974097647013361293112000020453448955765325638966816818831282063904881347083936408465520225734885706324791438665294751974228285226079790505664799292768350535350349583410084148216216048848520543298980784120165883896673954616286463593374917296694827609016684118272742018442780650526265251239802066316225690734648968987642013330447488978713192907589015219819526243863509402895429858194962180711564929194071199212159845716790924628847829551212803900785618395607092069909289800703379278465666333238065163648162946696703855233346776473706922050792109664834072663541197639517038131364479610742532895875331235793391479834268616137045764145858942239747490349601039321465688099519839127448107132538052120475268945427229694515533773000813777552856336326076185361416610722017622563522353983031759008678636428009008559938810010281246133438559227820543032840177409379404913524934541060032067057235924657028010446744183264586929958217841232864317369048296364271132786541370976503946113132166031694021815083393286147217150022993548455601495195213862573234038791681551513243482799019295989575500929565279046777575487882952713770776653211004190485006284135917096899999834916060190610418074971608848683639941983599340824036842959137654345037850801210042264998993637327671943237981822534811370303351748460383556614782816055992943013888340249521289341254494353767308490773089460959849946556231004543135995990522209567752279205999673409117102322820444516264549564158471177557650743823450626086747372860325331242816388587661757289673990721148319230361455218410977826157275227483039051736855352146017141122659356682176727705214260314875258317145433533088474184399095113042139453746877677449551255576005584542657265606752791133411312637813652602034174735133408167969581469024918130318497755593232935781792585047939931114518883073524481737483821676926937591636534141978533025582388495492409965176616764431325410908962233970990711606470236118912819655705324772611419618191416084421055244598469545952591990033794332852406817174996463837774100175596279815100991341852138000160498094345636346749955100827767177704635920591148425878634148017879626756544110092870099300017183590548105118709482428045506364738408292290835960299681481883580671799105600489253342789388460503185992604721804135960908491957348356837022153930322702109145992258388442639269024027838649442325040045123000874764545973186131990233090350807321327225808368773007540260321396397462461959321505222702914096553279370082364453930185805682208016881708124226185237892246616819907356401089038206748093729523454668035552104441145596837667586047333333778532389012112438615320791960070965141238581874728920253246345317002631231855484198375792448005087171421486534274262757848521879142282122918746173607947014816928605811619614915620447721304074422898866647200321123176964437481251295861663384699150644916651406344530505343816767499101190396461169755254009315824879428929524883528415860086592171741193067566332254681865672460195948938703840571264133089339390260310230971078026912173052516864183653262984695347578033414922404618440056858277837611280678768253906777376358171400356267718405760278767450030678034952952742170739478985228294951865539229348059705086224061639687498229026595385098538871950871827345644764735909621370696592287518590419568397935818826240437903329038825644354063673668738560727928861199641220375542307324249377955824146852528310443999307343278864233265906629683061647629706147951123248190652535865356944531203717837085567766092029998482986169207050559232750172037840258805724139698617788887650377352892814575924595793489839243812048489509281823997494804332607894361274652322369183065721631683199987061807381755794202504987661350192557300872521610150228276988982603956962138036451134978932355435087307097331357429696227290545084892447668089138929029652179593195885493367349202576034354459272048933524366566246815776240910313129867809853262668309343229999545758049668942916645853563386233415540956571623421049457306385116534795119038805398653682621046108454568061079300243972293000163025797530664219224949455139328011283326346746315840607042929522236193571675286229407649113943305053405912959740629703461407772886901447906063797248962395807387153629763217218470713952010624361166842892661323723466801702916957613734054429894604488589426265489033639876523529128463263627279451902248392362377299561183819594274714549273840792720134345149834933481018700447660939351326936060393611997810450185262165800467468233478485756824719091724703253313364064205336440089175571811458555101349339724882570517425483870404776887961058909993485319110382957953404394383213077472356150687289915797365266343634459649515268868278124563484262504969080261091095423722779316669069457069529061797394545917041606822945031923941557263450050785034606670777937355554054338138096007048343057905855966644284089580250680514038887635608653556085969118953581104734757557319462969606634804470835985967666942629868790682597978789104825369470972423578432528404401401251094669169425934934725737761033312454498282476613515585912102240434702865129829716672890575997796171715821565631831567834389095443881827323206412413289374059046427869243463447424594040838316087675452864054345381995522548853575931832634785841455989924946414685993711641743307737797021067499542686970397778613111565343146901523315606867194645279177634162360876112737968485898799290480074630880353054246027075839303393416490943960146654369327868422074160990759039596016211085144166187910450708339364613044031332916606522302368807610233562670338340819672569430173145600154877331648217584778511173881874570380977506278033538326835924463230151553467560125736969650567145999693614997134269958253181294694513035607474994970903178039657024191771682301599712836594619271778331429769213422114763800913233002861571801878978990687532543722504443679885927313010088566718601083505563217188692042703487556861993021833917860341288686639603219877700812487331477266503898918321412543919772293653413579936357652300222876767632821950116264467597738052557096846821872086902246979822013130055108027920565231184605636150840960250211750566687637755314264983350190348285977662581800186316239872025981233956099853115612733516253385472002340251948638418118176208056672086766972574738063557210032127603048645629383153257461889465401489630196583361795192696197701453900919941464581054114902040676742603752043079984406481265247743765311786379234249724755346664374823191331455633584928244194077558582664021377999534413022773366458200973424589946336264301263014175127579860632419149509541676538387840593755053122181489070205430792782920759422100922332141057637154541641518648901259776338154597792639086144472326174190594404650938946664300598195548968941049451937043837770006417840271417501665283417368867863005987864704431494540435280032710950515307260389556490868787959262804156795754747246092961796476656885682922913009410707786670361361737743014036193780266102907282554028437398527701968236542681446755493294231217380871920470821247315670701263167480760342640319408624260819990422338723114095023878979671919221591928311906754808168927413198039444787785345900005291525878580114089792739622138374965563133037516711979346756783352652628691996604998438841441848565218404190202286217417513658354334802509136040010778361958762323763437540388103651489888718216867097835464836495457057050848619447452004185827806899457837845699987611795536979883949245681163714359446705696071294781566935542345813634676560545831320027130449295503994378578682205390569311092404866622355584456211808645682479893967287426328248838360154530081013745855934829246850398402757287882352941837095246330766571960029123482254993373054084981005719695095960428486341693777700930233034601419721027747702102122073167877030172441831155908209928295290356552729120614745554083454480999451099867047274932362488052918858496433154117449962509548601211712248346674456516219625882070086670487739590212217438970297765157231052920111322463102548614483815750737494324235779654322352000446360657450293572828435869184175998400179289340405394398936811829675965201537865863416769014965458561824280563634521247097635200354562578214997551210725541684892273848873899932661999774331699461227124339633131669496270636004389012705216196406101237978963117327206693793728206829165893557985017115352509527957124900270814509573315013427278847460332979321429204764313569516171253625182359229767137942933432700421917482582127552596564080109386484987323792161954927220486219391192900654290879133500128419578386349185097954352281766735896632008984497627764084605682484661196519379333798148660158551681472005219790875511766967800697606392288453220734203076756914067718826652487804463967071229058693693728946138605050606146313993789909004514465130212495420178492249319821302949140404437371554879170837971578631820580718461034857136718390965000393726846514866916132838871813346370200350517581765197471518941932650789514483726172884464107509506467698877254119658241863265777904435499459430729836920355403592555616368770552407984260701667166662731958577645478635017882081168519710027199507044809364785481637003918952280465715829146071001307169893050821863005811690032338530656426324699213342917618395869187175887824968050658162572116441045748773150639506028383997804104005817001078228951505865866716210703841515154152338721232416833027261809346196216955354206871406772831401144305215564924107742314842365112318183966949432248735315388381900031526796027709056436225163407258627984594950266348126323894371401242726961502146706944646014114078033366509629016040857364963317004990626429521404853634083221562064172661001559626302894277275069748722285717272885666615443463827464293111550960121994093554643822860702155546146993646622750107031641499576873591344566997461877545019933211865691062603796496764935425059859544512782647145189767046154262849190579679578138627427769623145111862228312551470189393492853264241161259860349803722763310010635402431054008697509682851350353584620681194849259113968468057758505817803668697421743718095072071927327278756057605259574280254780612642375641957827108885969474105288036156243354851533202536022480512634239417142898970815749905800365352021656662554727318886225750972930538694198790867408787468736209122404869615649769739671882918674370622117043001490343521413235838606196971532883902368120151008420282676298309246184477835607346157239618639273789546568568006889801365873568732253998745769165960885858736614665802891466523741574528597385321253912676529352096318296008622673136522475099636037572772901914867981342037069717240196239196020752520364231936715936747271124865404934619277809793305996571201168363432503944034958716061483415029144145776166746946378981104773058668268052156786615377564548024542036912651158836086433491817045409598270412354710674718189518871119451760012299907681567127478146447741457482855403893785271465004165131070122748479776532500107961173004242227070046193592884743274893717033504459373814739644167873596093047755944678855219093643414382122232317613202633030579974589550017208812201116930374035123490875386877102670910979093587793731296603396490785494646587404589902293883758396507016561778891263400554863703095417215850698674725448441985570149410102375051698839516698021731473752483094932351047444498794859425044445407349097930212565854248752082868187531929715158630260949012780794613351741149661468150723824122301310446307631538955626113964823466270191935289864065978531271886841376577367580007413812728546058340200177617964883782267104882424502193020832810091783068893010168105816158999115211373057469772459362759153928454419038645017249370471322792633707726305523601698586411200860433795120821034362581506561388493646860910022360364429851478567858325653887488391968834176331561823796651238252057555977135483467165900908849145000236543925770918807282227975633328065336298065396001772049997695056424360225291814581018449193702593147085875627307841220793340978519445001887211552499100831454363365899636970757935872608812219562340615714606314998670609971639702277031692807099605804893816745416304433705554554416849925224417062450833315901343879664911909310767464498931347620135934721655425713998482058638812265709404204424675926886818537089867329071605638318484898091086060565415134033452932279517296467740817361847504734806129779195943942459092795563693223403217232172537524081775194615948650564672044522899826654644506992171736044920821293439389296765377781651266860029884710845926780782952798833591382839926499178460054864628452381252187610753290597701490809060052387558785859820753603916077863257270990236285515894179843266050199883468587375858321437457227887372929706603307296902870242538578665374548932837514605010585186854646282545098444973888501395107079721415506569694016692062990070782702542257874326561431164853861680249247102137325560311299435059175758678445536034242286509156828832569130257218743503644186041118893920290799666182363736684535811227434248156958970055741889912171190415182523842321317251202126590738502792270509302274754463729485911092089161714591699358017136785367509639224212592891916719381839835400699503522777530586084908840668158736516722555363577629428692028628241903817595890951304053328639841596715274150979291926392813369394755717839824497227341646156820581490511045906801535763182644859806850823573175059301277285546515631765522723907719065470656747778895052656173371327572661767966890846926227919598859615123850522334194768925338348993056735296879215370977693358876451380673114927175256149282092533844829644288273356454501438505643377410375563533132654951822787615793014684509688168172695362909661725564932979746983489724479400014294092308727683582300149482794174303074286940337271728878303766239460545101532662019515733608460702407325515407873377930459144911110156176957776487632793165336798657817228027390130681363880908004395542264662609559687792965082559464219815940897953491830741694567761144600507002273580720685999803260574216263076676122825548051652032262831245114059781322577353165225004152724226830697573972513840392893449034809118481019641455479184321609224013839418816723234602425926587704953773880755003811836847882667755460405766242903512181988141331868558642685392909923369049888482940344635176501551672093704289482317454020993004268608670970220830706711888996572109954995449789187239464580506297089316359565098248744991664403123187567739100441001425850633784878802968960395370187159006968175690772355051415155231597680195327291852151920308009082241844184909858163876008503568076560919450601844012210524663293652829141378559136508094855821182938780324362714628323739373974125292488559347203387390914721092677339679557847156944436251132292683985772317920753221642877442209054518832913187769038822327898785274947743777061893320507812491526929602447399010287784700998543301558164747218260368576861852268422811222115502205621173677464608070834747058264128886179013490802214460206891556001658938727390523128445456710600116009113027043353869080660264795300652902342860955832414798080592526275527455563784687396137070978074203925368669196593548134162427386788704760039800871442805579240687755925664440047499656728139641211328178979283568400200823838576066521089020721521720946320761817759880674019000458302749636170458574887688437006785582251640843992771779170778939529102442242166599163661625892725435389490090229050384193979813575023899004676824277779312756256398256595044468235120547725076518820072459632555109644660032027763100568285929847662438202305342266957461792614858509299716402531902065765270272420950710398159494760715668986332937659968703581603316004214185567966723783000344550929706531071908534702625336139393251949601211397857466361817475866573307668491682709397760577589378775840194077590461352618530686765063832047405513807862903798539117491628231399888854498285043089582891468164978095735629428746294647262045500446342963692912610846290989739640405258570754241400366719103599171965802999752318242581164418520301482593944182132120308985800609045200529409834026545120885519840755893827485617443613738896802259031423136816155229093481461447023153832305171587896541826769702032052284679930474089967272981488421852945794804744701447943487980383956846595419245289457775428620620273569082510201992808219743137541516269339804859607646057511358233781558488947041600025147795097272616681253335458900674641670132673076750408396956825977599486073916473127417606889929463182014526200306889407646423634955700620531137963681654610107714263727279180208087405886024123472694369822280846006266202493923587357621190320384517636899598184041062134362339050500572714749702900798289457014913813687946533203410819717072275132442086023485141138545457178634816636906842072661204868504899716599364505617340213093775175712028081231845455442365878897791743231503404139436701703032989722476906650286078318304267939598517516112751818264397165085853906236631570797008513463744076651518976226474750942653564125439895171917792316696233659785810998697891728561110081484455900412536923338953830808305668154916322800844544385565588666579535202658548472991879590987807297617055939344674493700473649718974241630986574744454051378591381880542592195310455733540882426975889778674576070859959422848288948727249197245796812655340887165816783819406311161607580249588521458969472397334373454135799499360066318971099169065844322772291636488770587626224432753554750149545041481236056404542423936004238546347672266172729502637192290734930298602930709875155030030643209109499514000517133274556006772225169608640748369906985121259949383494656881337807143704055846986254611559889298284900017059714835255609460973005741868212772167201173250230769354191962438932738328658717171455529065828208144121627624564268869794508600562171012075001111155079235591149514385264888699097806578417845749513747024408240310319416367905348375440390875935768492992995407809484250591823163088312323730276336218091842848423934746021198432045098846626918912502442156762219537142240779164735668197401191303924321467070148922890439823604384340263605402117184285770858545094894737770092775309967553285425289291441836085828046119316046878349093915621763324685605921439157505182276090053797655942557762788641377377253993166170167126115110547849466263655656614499950180799598793349391169741415411191010424309448223801961077382246816717359035834046125554261615041761308125018991447726752181373914894424005108853809095695804005562987129259497029445509794566028732730767344030475692611485369955784193384151297873628679494806169450302083987756276604347370762361950441089161698871717881576122595809659224098972287503215597046249450557662446971202903332750952709656310079835323048823327921488676991123417384443731054056322770434529325902986499233382820376143406047598079456009370987325182756514221183214356575569112925048688895962151425016007369032581789559436046143107121603946559659265054123321119444804259484576618716563335738526242296753537332453807349237063109016365870164359470079608783111324936858487618908661725194171379776386900614853618418852956866547291540708156836785163670877110997542095863164675696773670568499903987178112606556295860999241190365323871227396520289269017391592374408787626462980383959080554059427294913418501046427857341289065936194317784841492545577721888970683655068902766562040942370664274954776672045335320192031186204753207086177717292841210407085291528888672828218446526308481867539106619971749089371458707019378778238043228996956728734603097338333595201513735117722782283805048856475952746573606984346686502165142543166538725567627505009423686348578126115426159986057152989848580355854572640922580458240815834588789138204168763551287709397175489376265430211433057896797429055640514396791239444477431202579439692099649744244141385064649820505155644032586587161074222438478913081819188478354963653007285159865339400155440950974958844349592630165550884948852229132902089413227175071796098542781723882656440569721842907179060827579501561447780574598440011030438263316219933440953849097682781026090712955850783147590179268110191831831245414215600315481727011643087095603715225599900117027190942746247375961188357519643196598510791698343476421371905972025266732892069924549386071559088714210550736210807968230082243714924917654122167437352132736589501027068162422028013390234030460001575704386725350755582386563038933975315475464971455995528021924775752077945736755416115930771530371132708748237063223039462823125130032589500776250078631061092174605211184380430570006630279210989024146594386398659124459186802412131411739482654663976315970490105185527962583154834408357122971701914997903633400452765147081387758982007198537624747591891012796960041304094438280804957408780035383571386693272828637047482424706248536516452940261966096356290017924966532488212326495312466006583348010696566700930725210224535533809517137019287180389272262411422757141901212675473271623992034369298014315043396876293912893623734749922699504680382752315569059961114945049668580936671952824336704333346079698768694864133462160832614400426560014895884825197510841578394134087396441314303627919345205975596557042919380752759722908657949574066678816992245709115687563906039612428271441873385107189288240698903557405752926025261900783379661510207145939365337916201662096522621024856777873713842449559273962022037075226104958845614098189372880848225847203855250937578511926008789955111521966724012861761817016747121388634450399969119363466914477936227942332630558581606041070441918908664236459533897155674854548032932940770478446849994027912381585469875846890472100397546896769105283656852549655249195131210012731862531870520331390051889212748681226240544502954510653534583007001543744691573206255798792108206215881395506899675311836035755357592030168763684918538627445680955429922186830843105506577174974748079378315526105821230194623558481974686142503874831734938981931494507247195511593775117940945359052783912675649704578757146984874540679585084416196147367832759452805485102852809218481742598420386697907385862449887483040510714631137675709702637609755439125256032011509460582222864141836799072472816432067763497904652604826732877412568390570268098739637004467344408776641394335268424350392729701911677373039887584585246922530399893816814580211127844856460470159519179395491379193114535547738046265471915513048914959182206080986835761616791048166202833031166405992990451760695161974217301546157757605888773171352391261997292460206337603188576315998806944209035870809864014590735721362644436018477186923857488251652992438738867713394447645433627559895063021469050335780065281541958084379196682098868844047892250037525676402573241277525316857136140999248500008343831495074263710655526412021329037344807421602489809632351428998979786667233181785327833009789388795186679153644008181400698014412755837273540396850934233734990654894736931717827897608459720237535580271710957515156910039098738509614458456568585735267585675319779301605108013399591901465215997294457491069838695071585263820276847663965129142585960620682737280789411260911315910126515822671251558705750887314333335652220427911525678503033248343249165202356524120393208580144862240657017134071633727271987748131370238581007459975293920583793440011110712336008557442756120194000508754509754276832530641702625924488964335310376927165019682740835775249982618528105230210515118964519698671923013305565514665534374601053861796083158034038940771284325237716779297635258433322655652739034526758186067801935245671193815622771103845371468680162397803423447825840236250971296882407060545620370505953449542803542446433215986436862106459091078746574334697305362914190090662168262471114854563462237989114516510018405015745131472132041482585198797944574723403059233161569812331582808673465685625565633863420813995627189890521083280212870263007985559040924016016865511502663586079382137603712498750364279466611107068742908971946641890451857182829722928459150145465405430267481110706448988511323149211343219245326288789205900100140673217063538933172830525543524700744685538736775154586909343403596654959608231424761432630498605636039016477158900522215877426676804621259751908858062345872154295176679919999010741337213086419764864956363884228903592662858327992646929706195053538259060307087353145126873896633849009972831823100878672006753253476288703728127614046907351033224546043451786676833475693106326704723663833193840394537357941796581796059190854739666354024709487735109203520549383204056736500546836254782643010115909104624892543235247366037326842724694824997408066385730402150274997906072565713270868727552941941093258511284522453799932195914918781926885744863018048459720918447129469188291954908172645802313809186856614323471203442780943105376044427278981679817815800649646464630943894008391455136112226533656885176533243009011926387871999246746826806775095633097948227979581981265562336814594204987576013384489970075273485346048941538971374796211612281863798352963424662122888720591874893511608500824660536025204259575631705709468610479903661955729161559887501297250829706712033837435490790092017239244069061039282643131961205488292108116097270049841846472541201077075553460819231753888043899482845646211627615250276148222293941367151320998750753676317238023076343548344032357678394864724053885231582323396044220966104436503835559437155021473292162496518823100962016070539700277663090368798385829602348543482376114857777931253641529559257740196521763894464052065715590511984681267392930386419836325410949807710875438685853164511357372500052547581859486669792818461456920201080893123242840651342380931841279588082233776467646683262269964940123215961011056083192546168808369708548528898799278073399679239079735230089519687587205508806545536480027736919134469986982820190839414223294409158955693918084125002264829601535893919439256266321758455918393711383393270425602430164968527163004142215957391981458028315773316796241334527938869334151582305359356700811279744496677287240855137464121632587582105276905469618835571285236703826937386584162614791913344506775003531506252719646413563095916909253899418022403148723796975863249472063404454366884141016450486118362521847991655714214087668908710691350182142398540244482474433637666677489068297535532694192715166764253304538007684230955153416700682451591954525022048710872472048284930694386529647467023350934476835046648131466855637131679855704531067479980978749412469046385434316808404386860318264202182070732177666770448853382377398657048703811286965219019714207004857352985292215566797739761670877914004919915306667351202242183025209494570468837386848679593346261267433286803398944268955793125722475512594050440221409069028698749953755423293067760372497158246642020060328914200997064057025475262730060713126707662148491200226349686779358227671043425516789904024038467140841588154316282572191515573605380207231848165097258163579768216073293715135881210293163215502994035422448870152108032970279470853622761652024298698386522346646340648539350179854911220953805318819203240365491034068131498439653038947732231203533802628152830577244942352662548921028049170453424835107271628953616006626991589188725278386385910104830620010580215284702902165160300188249509924695028555047109584833471227917032199493227893058329841958499889875564174127243282813160187102890302986524476881842590057970469812164592159553413900976863483492269818272332086935790595906275705808695401096020692496165827018222460796434900748039200687031106102893305521562653246536763627110121353334990552995340214659564567321107150056280427997542939373255731656045238835737460215033141631266841058850821284267932404655814691681596279040112176147195663880146151713299162430831008996340709185013733453205367182373451090452992562123040602879512805123245989621502895185914904184991326767351245488393918749018600325875473029711783993159473588687264508720521780599538188088861990510539027775088939652310874999767115464469950137548989065876590257066453897854352085908608341533722282388588088477972417686564260044688401950550547931983245361563298155573435092454814172436113434283751961603765960921710007865311401776874838931332032361789757188307047526743408441206595882677779286047620497070901163572866501896359778671243397941778815777264648021873833430978233958316203646483346257654211777244351609341237864965974375634790239790151879181156996028416251180985662585291797085557434313483501147972504388453608988870721958283550723287792987222237975406796048735995049748431779218636766108293818635771635389984612106451768364371269483487175474767662389080517791197351330277012097144630743346258118553644454721121253536234324378032280590347999589675872266536301314346503511099356392085365225374343990241258513195355855965520307305920713577553272459548039345389167958811203009072763610735618077503921755494972968690122696139568143438533035531166192950880812520425048705005907842791869885802880876375038353862428084564913560389573020343073402556053346822609082154719260260790687362257521396219782031453014088601139332373571003575485074018148117801601114558819958037554454633033380816009581505236643115465794194673799986900803841334188200931403443921378207372521181295412727356499574678536452152911916422722455409860945860377351242359375077429284765079651018275940650768423723029389239570119392231220379528067233081737473452269521647767052078707514323213953007808747120324204314855607503402713316994626589403582692245892347078299033892296837896471992349260379846065964653131541060937158589677175707728421419185315151295704267675008681878108683220639796569440605008450588010576353640248791683812871449145016423335679517915196688735011784022925410132111939740372990841198478020638696522697709369843423308623200050761243780021381274956339873496270841394606155611576011771252799867782697307079545942398918297397992453562653979402623189873359952768052708364114773080515165002727955588800647280430248601704739195700643565853957462929723431505139893197483668882443061149052429197478382228334706326392163424639692965033306875582617634682741800200752420727474548930387294865310339037820996657934418396271417047276393269678618091683194358114467117273876335681062434273737354657664404422667992517823024091391185073847360194212962708558381888429712561815505431563782697292706271237572073193098689572855217509843783698660086517513908974591406132843197872483714036341873341798434238540638802327922688401756971493054311549094350514614514587867782447328055807955030546555547186117964231675639260745586181600259188718935053618752944474967885299567797814762251874514045329051605077247985868914483928102821707325407532041768544896215875179631893441221719458934270831931715272452307940871900542783557974254365511696303878471274231222386488255747954133072786220389169000786380277919046410831929722520561471024402741342520178866952350315715502690550926492266693838783707455394618118680040478850824271048313320745164660194687090425231845474017521310615302682919848453979916473673509930967669601592790163696479524104723932038742678457426162334089981291030790111787261679249670730465701086484955841140407422138801905418953747672712806618491687161210379281317228016007982286755887504301817495921739589269780420805389929664429929626056079342340426339809988425328104169852116669812232139612370096647837709924639866396016884171426224551184930160682656000088810001678995297040485371707010913555219285032292866727792197277663887534043471802978629096459710112730709391385172861307944165346374441116262270000629605503115869956697127323815637223148984878215057880091640894845952317469288053102410657420265688795218803050632777158231410672538498020655579611189403536614458607946888740042135556919118394590900931378082308253557652002842554951438695561247617570872571991237949116429516796243788420776611384931296578779432294027632118887523320296162490691784862828830506151568516288407262837525658090997412170474376042546525960528898553353781727881651007843619802135955672152098636596805399548184115027362087634086969582821662787301268280997925248406874489946571959193739553757899686357402668464308941688638776456562054851987583947795494042047933469824391224996455347339610278256243836234276317622380342427943256363854073718330633971166279398860417841235817909637701535824402338415716895748135690890021863192419726671478550607832047690563465683389987916156326760190253267916870507157979107507409929142180516499903730243665744441289269311241442261411824809016956720689357402375235126249825709925198833126943857466493611819535710268884701480002493330613889856121776051810550102942355056950976644911715071763205179662858164960613298846242088372937184013293347164658360767280480177391221675199658628959818535678253442184129670219735513661709941985057557791860789277282760284514320298451317363294456097824603163729423194751032507523824373370227214612412132536994297743318922838328146761458107612784279291436099634274086111675371943575731152733826304398998158110048607194364193967012177550158543882884582053511090866014398621682583481053249546193429045022484169649245277240831612601349598679027405437218409175261354175997941976563637689074326549159166879810177628759672356621111615702740268725471416200700458283178204910795321754921545503762979010543082740251536296269569347868475740563231516564391376611734979525180568377171065113896871281020375291282072044337798552980233549774493132583792765898839161236271939826933595990471870463753518772112179317042234480491058750271261222049881991821756500297000503467391431296341417770020918820399819334133510233497055313594311822557763837703485621969591244177310540621739348643114025180267717863359129129007893946566704319674480665940777148057134143194255746769174333223074215862361234350781265036013557642026346954988590422971133350329257089327738327769365792242490097889096653903085379609440453248830409904631919781441373736849558487251050619415817691739433889043840396311230584070231180306419675017512467429397221769004805907515660112041168108866051877591895244948274038743988646727625924307099097620363976431860505756009374349064594066567918926890874522713063844604240030556536048656169931825063398358816533073784225592720425694924427832241363912141275331494139362236562012798752354004575287067971575991529229356470175708956212216882117991200037949467067209640331774324193641853205118359276274877199851314640123132979679822735825394217911401899865358033519620145394032684832220882113048322148072276590055448781707469529843093327816123662494422539342070305574086976778883531301508898260032660736329306390154424697712344788336030600088644790891350579410253978007651141827385561547880772601720745146496707483073168030279258438061563144344985607988671994321035364307654250356111982482547877924094867019765801746117029837126412842522513313100924628138311286673031983819889283560830235776922070601058737376435243618319154790080921130249935624124720365160128421240566460053656637521977660510205434111163674864191930681287378020822648047596130947415761018314356551992239861637046529799043581746821871795201301296274972204271336093350127836180990130483519197157257885773012233025031047665280361138149792723170146264092655180078602967635721710425620006377951776123190381513036455041155125465117662386149532544377237422027831553331262176758881855935166513548291262676369976464855061116517398206563954177254247627344978709771917600359556106768285956381268366843548903707994142038978111795302982431883492078061342961093976856353483665309088582081774867026288999749059235754874745778889674180149077018319540492573368525614875249773838614577503465696689604302502432251108217228252651239560251933600560593621309507229753667685273132632828654176859278642258874167913059875854629687164561860380677547714211580802842022645522019631748833153505320178544964656345500309513445798752196954883080513794339192019238830805042964483340363312033027708144688394118273667875384876187322594486878878162922233558912527951326018434877678166170993822884128619252387380530953374165459006917988660548446468646510557111198161540049355175571161072635614794765470373788622245865581823285337122310029256154534140338232910035133429261262986678468917602883571370917451858604284697937786546501666595388703785771024447358103809734947617808623672353592170787587493294289196223501326765888914865024786686690308421439900685267986917482424257201203645212956803039599366129306462114373124589169332210767588433958719204822192749060806151145684527972471772341808926867320556367736601818610695554835149115664057718412309034626081341927240921492900647726157660682441089799146543224059618000671006940019479153539532340064664718765789676357860703446479007743278138489325098270353721991024975025788858915125904611314366010405178280903330300221597402777745771878682840923986221329534900403298640491873487979750655878668323708464144197205892230291686812379600093219935438524135526473114548793510451212271598773216687484834323755352649280574531106321820916902853591948697435453724484014307299176043061201212147334862147564925654164862371165120852538790313045770049222902741085715408223297153882208491418166600531753755909594916530986244280741879097219720090305502728167787402150075998408676291665232119991096900155125405402323010277028492327774228805974709616317109109834515062535546529128466827773856446277340555404236652728602021165468413180793481702221815871146407556111567429000464098647813953956135038300822740189663022816036615444771732972028092847242904838854382244479196886706849983795364820195983047381511317815975141369832843559318258399484619392936706825905684088904428528792479485502244900332315067171766173262793271818472251054999417957981883661854646559768114351672660683615903785965358759189360624029618166002882568198588327299486825252690135845162073713148658308802797233530652821189738017698298327374564006362854975109318443740693196323221252107101862262693118111267269943353475923829223778610629754083586769314416270552651409293269611569677394592185896319592738340447251952641138620854161617305797225792011867942140666568914548885870973705835417083178872343866747489598438706873085762754162253663316780095273734182128452816947455653508661326106453612931990976787727944226922814088693082580921426278747380530013118956760149685671371076489373782373044788365930292613694536016274771671190607900405474020258027256850807781484594819021608239027827440652096566535412269296291479740617278462894497926998040390833653578247861115275697627413273135935485152931009352844416927502994715268604723238012238335671145932191570376538894763973005332520986770312073263726633778580546474982654378410245984686982949681684981776789446033550869060711023979137600727608953184061706773970466148053225784918316519289971263758616492159418636687045633394518999309110798121497202295072405770089654595942715478083130052816327522446550752042855175464913444915521588049988994936606245925213497332852713475383117662603156048493740845342120855700568192450598124697417800317129966419905118502402274751312032614531493230319343708834657364194890901269221657080840947133976357870514279695909855566787870065039223720073107548501034742428693604456970848148600600311219009068964784894598756606625702341457833170497967881545422134553894479223063803483117362927345813580776563275675005451402453474408834858831515437633305678994423051190693629607966571519617605012655666452835529256332395480823074548228806288842150142088579910215967416056164846899697587744752152725095491727019584335763634671334816780871390425382644743590334766974999696283743885472684836862278936024334826795851902550622857986884922340044995880237898778625204451894006481842147180405692097896264727039439050033939968891031988778778244474912043117973702209905753718003806482461095703466874354468801535444493766195983177832969222524920956198933292637627105100938576687144868129967549230899208466497348411082916609964875040247855317940858266866967902032177750608295159963643232251551347023004234684791848081517333378882427071355815737189497928824306876824962309785810134112962280373180337764747756575859732192164393357766424343253318735019959574877527666004946245279456354565841309389775276375354439525712973287711121018559455173649995930376854734572253201226611685912568463248009389872664629662158512497363382291398269392727126904354261951494145672726868147849391471609324938847707325343112310680839850106438499178491092016946034720623754989882112308562231254712791096253784634885211490360453065694684764315529848615779785444081994175531129260577159476421827442114864068779342602196186575374697517884832951407829544977521596792938902123899278377312294680929662153972359244599728466235424916831096999423911187372609627625691910338593096127760481751533627617414482201881656789203738532068747522967431005259250720602099599124771519156518668984482213006003954527090631939317988122595246622586189095138320582283300057682767975926511440604971403078131940789278016217116677237643325014579361912543362983941954420285360072892686410950713606808408750641707603845065676677278025761149123650914085220457629061813553157587325974175447248277994147592058844060983496386509165791616461571538866478392488821249436227339152778767309307421773299488103174883358400783813626832229395718796001621872373519668444865732286702926045945165675714758124077261258424224879563488598781895805785120486018193742092803437098249297543185303184792260446618495676954648119924911854861127538464754096105636970555335190627689258422513676610741140844987125629088659592665101134736585061641099272038754308223918709159890971702077332141534958449460245998251677808720356954087773848019347575563089757997566769079330057279082961664210603833652290852522409066925544817876568107693453999821012806507645210938483338649343936678177941495541729580189427290682527620487962137622107439089596985887051414835289782284332504225847907702471919453403873829804142225285702249404313324332908099623934186344738513703071693136297783274710764060541672514422035870732911546326018750447773500089248847462467246257048200051326778818072527987718466530309990110292419911942137704991349593732136716259493164268426787019195069382776551136004221214491427448756982232213448993172123355097286767374604829524727887343196843035830136014172695596790229073929832619475077005087984244482586150862006794412880747324562552592958914688866220418191974218484740715185985817354619859781510372788665583324891547900005379670976230473242598466895173889183967159351220374468549949648056782578513631195256220973963804093131967513232165750200875388716664462307478143540090305696932536350587585908699047005930064671525490199108637233668715648369287454698856764308036046403023460010175825696692650106778284140540217901353872238742328647319483596664710872596726566697556485410461857084171352074425786975149739512939455678634999592700923947770921884848063390694682675472993101874691493439015665346939764406350230207558750882314368752817823472248637699047797766043531205655725160540585626734320076927372648755109001230845127545916059769663123247597902473813698167931786418414077489116801113163976365169117231181298605787889160686990047748809522823163475053701190982951911065743496955507566537630827832700847937947032064774868406344395159657421375576335800015343041591959214956856430972085464250682393732875056213655615877390866083764389955221669703790951689580891254199117763836050606917870618592753929701008634686551808595246846812635637882100165373021338724911115743625924667412337581235450846020570174043243688234788116071423322346709316665783305204939524160120520307470626902359310153321245083545644413752427241024019437562620368966899184163518567291639818827137475307348380597804727557381388383463750848539794910585877394675279155581977590796703910648403726440581336848517676209076614518786858114159828303317277196671350521421321030029953641296168393940131261077505081085739797308419342845058400517911797907414057601932592928343238760203251892160095883230956448033607913139987858472806327326134829526103666142722134228653305216583994172066177515250023271283220991773910340448668705349419585147456949623561538267936440966761716248476208775322654059758887110481545612122304801748708280996777795204208424815169079611771106673870477433414382705458785247830955923091303371240814237580839030070037682219478231096639599285209434741379387815387613984316018668572516829246074143995427372956862463333871422841178028238942932332683258306668412912748856969645238220062189167551884508170632080951777279857010168103033334422949924106068554278541128805561751583770411097052097464091711765741430446780689792443923444470336203052381352833543026648597621069063452849951483094847993753640380488060066766686702451759698133521918819112905634379121202529645952538389145648037700239434640556219205702241809640606579327328401661120437717717011541703069043614117066050814851604746207296667597274572012038380126058404711973471830876494468850707693531383933423642344854199891009010002380185338086540967833108258890643387936019917507659720013152740255349392732753612095542325607195522704340509684388020942876838190010735505403524069592348933168549219103365511304930343787458012615800318127907994961985511583981361884365969895547934733535489339780067554761813282091626295738739053551293180726491160189486834207611733399535568535217115447389763014674983543592018088692403429534317225352537300563623668526986769254117669584057770197978917060751002222319918637769552504677253984927308932583398928810746801321769302630291186673114479920801833567238164115119234754728369191275515307206637177681501687257900649723807957663492672036321984416860753376385618784767873949678169406648336352744823861876063405734891511522554467570601281275439757909031749994197133357670812838534505845073849388390649748867112018529904731164737392864836804501728080859320183189324892028329212652696858111743218328225344399763885450189319085411634774369267868875628501594728278148169037027937789086206933070215230448266627417036136840547392049729679595493135705377108649659988359405296228630629513099624840582549062078031954770958810243097123677787610270548896130457758611982176984326895853919348821281826986919278114196680582010785029708294837488859978568748074805620856883889374537953391184729065114679019664145201009672480859121734199514192491053618942839098238709460859371474178407591798377606796800100068085007683894730155521919022013723459466741529161340056421310073559400818123365932721885361234214932973184214012216807394096795866879500079624013356795166977710182771473980320465597041568559606123167465385035641523207781543817643413290420666270454310470083238920014883087555729766389185469275304167329149209510891774184577060055306967135555662490806439086189488522547562864458952015883250821935069620899437328727465887273528479531309791094640999660411088376360437570446800720209359117679268637212443842444831452859319654832622922851797102260686030706347592386788532294530420564153276258474434834655188998069229004446829326828617268276542804970058993789143042536858768350655841451307319147174668605725228751279501006253803398143976841443965097178497362463981986891232090741971752475131055717151857175345408649570711939836596641529664486153493998405668841245982893001390863113117257797469417594327408820563017905044329294522854689156064004562142852818152833029692154947821705729851623235809035582964046298180478913256528561929989868254814760781938808298615988230835722020689524697010047734497916529471333980574145358258722425292883281242618283811860518868369112798670297761703310959229308839845646172529157766891100899520195934453166487794164952194497235977103873324055890790913286078171697122520478278062507169088863548322450304767343565701259842736835569632051304942148924686843996901332935305758589369512415240860711209563028143189404351005541439080793271871617900905085842972979915196969390998607616859035847364536954310773065830424420944556918486151614536885090297033073782598119704558348484605136116877041750687770710634660098712097355755762440878510838560248311279154082283412962703638872259995464805742305806338750400649153574046785777439818816355587151737859893290685603994742693028135116773160641992562639552432995747148566411658454871780597787108880326577290812933845090823711327837368449161088589907491757457614483011696260187178066537887468976794877547999040381391073084337030401333588137094389643474789259987147881268590509984532594620583118147404471792127862162989862576093610788497599214063463846545936479414036582753949006125478079490201521046089326868046284914535187464679865415541180941878172648471209415583787692063533175161854659853033193548214360047920991863287403178141223422593072578794827444639926563703574580939791820402499276404309040711888888895474096914413437143091779497514150953200132209761552128325098448744792073263866798995340482883641104497297461617761381636850302583594830157148064475579803246049608621097101326148874999502357896524077163237113830653295114416115759771771706360025754751282025580483044535348717289200173969741644667072725936052977679932533069551651089625578583529063784363620246766845098350068957655340202525751972585005339265975147701029011546430819108311711013707550754549839405184872842576221016632614045616234603886509530814839927121022259331027107643858541654032762790441406187357421869832482689327563551270694852887034240078491124805172751522689981751222676835210406832854864686958557788175916354854869715565798957853397760658846035157910329355520056096763242418926074077833883600098012052921582212093683080461142791131734318769786057746268874387431895601422266910357342189934235557110989287845995082254180657062547983128712494734271081986969530450119146474926265001403392004897241734459271109698453900404840544821614926724880587125823737907174925216867621772484269863702065127537034777842057780497638093286724156957055208769361153344105098328136707515214634236052171604848887327242519370011529780493574087854325945197698788472176459427531675196908647151899588811280414114141177469949450401703965618382695820681928066486834806124977846101109064273244335408480364122008589661176227780172134385511975196601675125179809487934620395029148448588284509759979910910560230203490403932466687833545892577506948826659777859390607676861930204515538883989020094149985965828394660450816281258508539420150460704937904934272266173286815818021894873414934949372511893754485108511184230319879633996873532864248573258154417635909332005947794748083543102439602687057137814789361679941334133915559947096474197503101834664696009674697957508555282885055492640245223965663728297180501426260722065204261351149695927796484104102411475988848337041360747680239306447962336264478342066651225306886417843244813988362229940976963453124679070315492615163256900759986209370049919979532172081165908807310186942354049258891390494482109699352408876522630080344713140020513569008721034533565679123301373389748977177625423152684517925312451623306319887041624434879894141662557071319651441298611122195177541475152356491315425513599272594131591311122955414147008068677143213078336704391272809004971172708342720213706898770237896566053177947517361230223624138442505248312008769347417140929793894960576012047323485806084383584720576887816579824254721594555292887208562081122300122119149808207729499286701088646909223604380942352718634931660369213605868262243712741277800851488172067706014482777502484383618900053995687456763194401023612223702880188310237364972608112505122628921557608883936946224601463966882120923770789588102015040718400262836981781308986683619272181416006027814757179006882667707058777521755099832448268648257221238851709277395468287274328770224329248922670311885705809039195915107024123596546085238016455301809936824938389829878646923982682110687483362531310155167485666225321470803558155256069596635890017213495440190664226420027556259176964110730790823481543433966530947610544667191595773920768869268967679160234578143223220121010493656049861815829224650536573854641695968023138319293770244122457490691865690744407256524534444913997748987710315497951192110716982154919650730346816151046682986434235878817000118755532841939277873185044706916744931630469786468274606138763445212837099737604395508176088585126830867763199960028278058136785317940252651934989733634277295016607262448557406851371225789111779989038259750558953601577484662577065727765201529094089664601366820553174341671304479087267454322314662045384729339623109215912834443696038334094767479887521811270435884741476607892831871494396699171943068667464849652996816257176177463950834094998622342031924507413077615233722879603925569913095081759671639779254449229697772431089661593738617502067525316558138076160414967246666452845102117393578931880184912276881915067616063698137945183661874753847526143598723259260110442898287065276402729378712192433759326101115429433245801630179782221874732548303307270359086949052663428082514312476143905534164283466005813700411998845788638252155318114956326701725975763667412707463170205151780688684911786180780304301661889057042933195114873205118970024972638701567803798361191037065171430049279942153722065596081494415598879299163790859559789625158706645584936000794676440512750166040798622077936937422936073329125375014032444090514463141810874952773464908047078544860034025125638932116169047229295255884371005828407446491375111550359144623067293311430784564968437557549928647808221363059927727247640771306690567200970195531539042804991486244331829516533051839284462988115451159807309831386302609669198546156593626694885640781146232642602226432529799569027333126508342310708104805549562122839281269789590372148254052668224361300808726812993407940364264481936144886687237828769890633285418186097112809243935624337579140700034495249551486296703391028620949623849313239154035079887739212200212148454108931655313996163079548285088242957809230213577041215564282642433975369562664518331880985620267496080554269438409244960788254268723879848306681522608697829005484033351443433825929222841809006007671671926618172594192810315671492690884448821146413920373720404084860404183484990353394212833631819424536686374765342887038866505434622308297963717815221481391810884692899320487374321383774508132934394409867897661641670924805703825752090033226064541510925212859939080553001930903259599731621265617077979259372311442601117665152344904129529023165806528335681606112443039702124976902086100356414991726393675188580252575024219001034337447787045145923083997495547113459239480929060509406274479221918626921292122829238609093368624677730815382755097762505926577478900710257398998562032389891083595854127215960522796065142558290969137825278326116963027845173526990700009640084351024747136252888773722301272660902580456797702782524574952716119978406037917133121733650787324133577107122993600153422381135536758601965566652086891462974836054362513742943154478297268753334643578034392620466732791539478237047468990090575186045087001200514008776206916821796305551047937936772452017181000234855697336906144789817705899161178348528509689974800445088278902034559560452984987432326405756028748235654712383817257101791616198311445101539602288588760385920011063202445970671483583636591025681040478480831255786141709583210020417530053731265391141493981731744144546161621137375271455324097390273476508784226511875472022016189639343645557148117997067745909456458227672017516237258105354410727337937814235797592231016703511770701167471464771426083458523313098241538718361036576190779833856192218233214444519245914645625547288954021476923661871411402378903069441037392508975866642529319784804086104980604295115309520934124607163936087485389279259286483645041230277261937378000050695412066482031272073686985214209522390171268080283929539760619439086181842100870651863520615810391514094413061480075737129619653511286960061482890627423668341785784218814961761304123153569620189447176011126148438634232158285547221839267807113724615697700143532175840973574152074339977519389551645706319300927024418568446324503475187962951010718147625798996378807829752970696085668275995013826740903226138354320087278224061209460934303481181219523874389565087421135740452269278998067057891786621272892698675597664376788004002045335533808421148838532852732302331414623635761857755499372334425871312178581958771228112302959796815180280736295958313486268805107164188539415636080077342451649500155997452598669272287791548222490558410116291009249793791936035040714895890784334654995905101423858077127915028636085515745243645272384278183643906010425306499912025339751402750603613414288259028325963050987052929861052755722974621263453626634841162375544901146268896897676540911101221977411856473276796546608474224863944533201120390425036562164426710410922835357665318557564137031703685334463424914348286683896353991192518458375199032613432946850514347616897595963051206023233310364660796288169242718429875274285624943460977153221005814831491359146333603850091240265971596816719081942210875727430994414998227289459766856275664461177447866009752346153757813017288965033476921624511976371539547512461340584080877435649642933187483414976007839188050210266296174110561784106299520528662622128245642056604894577379171376741721403153617088219015500498249174411835661963518096542972029974335734831895500269281219044790550358249207437483798303345180026042088959969774524146344458206172953483651009589949107976538235514948991882589496036487356542666656904306287093664453689444231511635458611536679541592546573606190879192152512513453941643017006699112734434524130248445402771168231249838711446110553662105088462212702110426512223079904060445305803672432896784653833691217957165194275434735231156913527777874246672939460432950525723360017850290089619385116507844161696678581485966389143227822308268216717463732229221465848443524276213858446400820969180559649036639403944554000247325142541521720379788275971316395675206641176402028181173636758153253851371279593159234870030608876962869206906136833201734789113338196727096617714212908613072056597315658505902928901578335748598612487251357852807225076060616330584358361268076744031925059263045906053711178374085844532273000373675502767380158703760987843106640190421637839078646125726460718811543159372737024338010651830190177928960855474913201515860627090801534709690878988803924103626805658258005837575961655514543952106342722634068711065295892712221758246563332497805006373850786114411645520628589629134186724492578967197989535927740284120433375331624399303021536866681604072196352925761480996386660009428537249273969919584005660572135245341377430140568326050381538938138704341298979619816749015602712264554658609390172486677754182832341266217782046422622866507486258003137427282680291129817389507822100683657407163606513332990863458846995990085254338877118555486940468337858250166438629893182428417449620692099604436449265920835006257483906172793190931596099144219498425029462628199895460988966792727660482133681458412365722547434005576206060121253247909532028965532124569244479030703478786679163297711220037993592095032582897510559711961375717376735951457743254054132772332803747409769457908054272609822383901890845621328706435758180743708839911093789613065196097285630537235845905316512866187233882042693228410050621104808922855119101518946379119235356585705980171430294931767506348607473555034144961115808351837348966882555714823948619184402577016675880180274589725029507905582929175547373370554016863163250748837542324781743030978263942716252173176884825122557769770627818843973293642991071740609430952461003375472030371238703043586500504691215154983450512349620818265829217907825616449913098442393779897398958704950584116219812216023654773650728159629051124252032076396524856815173751420135428300840700868024484205411362241136710120926703840608376235652597552103285997293435029555937643261195758063784860402931299931632053972149880699195127310003829237685308314849262828895507269543780039167902104202031134083751442681631164846260282160074409996197070967200040317786244169424394673186945260839293663179383994129172194358760734447145427778592604082210976076702957387610405136449852399357536134535876768422860400621109267487721721693366857304263302246716145833539877018845188616436308942683249630943005653237162805914718356297042745814377389089611986556459676150626416587903346528865949761636622234837706340960042895545284738525665636211483338091523374087297766484319247143412368887388735863646987330894255318632977582990775792531647101263610063248035511808207695085889032923920174530533437750308115887652407409945489293341678821623429827914518490423625802888558819471027310887773896289329248798997448932509861809932793178761358330457932411652559904338171685496530752875427351644528349601366563011135985648148949464231081880230596336386647734802499275076061927422864446686840666739261741345997437236786687374075379158176031286581762253211993894716062927081312198385002379851845128140039507578552510377586516226631663390403470183703612776229914930330136788257274212319053709355698229237349170103224676742488072206253400959095923762377709500892543888272420915105003710444354594024266150470228281328945596375864244668727040682628225494241268811715310136378152348423661362400564896386773028081321127199283203317410962235864762332344758409885275585410190683755208694664916783486002535853547866377269566324464593676070232839445751789116604999423242609688913385814625300335709681105692043912442696590998961077980538903957128270256858615677886977240356576754575863745056149655958821214550018351789712194413695929680016343135353150314900250514029927642153049226401405833010056388949385379098363874175883216042559143707954038331573331354861856685806454138483382321110037340489439662623532455704074321175563927893066614690493986005710467945442832314397822405128085116116390291869853335613424839620014631849851734043055982652006367300935918179856464433605649490994735741724867561363845171502126603712258732614816062100931419173537037710421394373420949512840580428615990361477304375241011088439925836093768575548081746921784388537175394035560377375612819538715059684616385996853118459430923206837801131876546185211377415323171819895987828212317650212680786116034241685401950001235671514242889561945870493850066685855475992933845386907404357622530054483641336263014807927767689324061251896706731191914081594875370249718348083957352393470548648340743924842200888420174516017527711269107048336358099423084511560769041678607705224016372855408753895827559292790973023958259905806406617704900187016822666418443731320061590260133377807575868202867209399029990662237979678481552648451767178196649266837034527914128258224044886786367038798175958743846580353800540614263667693657639197408560919597186991416882082851966331099130381617577633847844779568698860118947049168052995483016981010896528302071235729139940905848677732833955229577641228742095140977993625148654846822797117611882585953252762183774444757325344467090917220626327185451362778726570065607719656092996242347779262816972254237755116219419858639038896118685198019666559996619331648134125626066896274704767878040081387674975608986676580613102307645556709885904024281127083543192061043067188420490384851369696036343871346057529924502812640696220935223162199759156921195319677425037506439711691170940993056975412083979963056318405826455766875326317181380965816599560220365538440160003304166851445889339596303753612117471937711597596355295058385753569168598125115416746008433745297137976903002577069027200455680817838718558874697300669461177838504549480951512189640742453443131865439461603060420975810632190119488971149157231889318927011399940857703693221154837422950046773227439369756792980934665777524529426951673484846314090875988829196397865336974617173284317845489787704886749913317988393777745178633688016628391415404683715047611763580605040397376798622370856427644050631529781965675913038225360747169331583134783314753967085408084539160870186494075562114372414751238407831635455617807051223131373481479082406505278745582900563552293185348972316968702394319796435157960081779102673067133750194842067933826168525428906922050984605679812421331994426884823539796953090872494263716755681785199995934878279192110893714600181829586226572339237369314138480180755046111780190892649798211809056798906432864250250514705776145359413853513657280136532292191956621924551568081881432884917321566111210103807311767650936570991089520531421978943497591452563166974729348058298851044082326563870955000562604262286671683941248963474830387197138105255157879308017913424341324576547970851339545976595992947740221010647540393983468879618574674063069603325008686911085728772262306605840708106482728069764457686012861899779853920505067924411000342388083287671532538452655269442991677439808866625877163206059279010918711129552970154894292738234368973997112604618410706145048046972617442958040058398360027754298176225420062227072050689156806305952215218727887158174920976536723224060197443410042205865188986023173871851128058153515644375869198749443259495236625035411391975313281030046604539567770221505882816258201813511583817930201332086825733547100108931829207724201396679761172397572720598040673790600871550131203541531331061598191825241788173623303198644835510343033647844000749971988338647368943578449376855022486450374923655318792290386357938567080434221130996209281215800649801821800218336337653882544674803910267212953024654996890697952661818507067839985052043573082078815617087691911295833434720655274288867394627791747642638579556758298926161609842506938075940409801982331072390924897338899529072378500768133794578720023496387494825863329044430673879947186865058190314812395796844703947807100079060056289810289418696096164378818412955427603497403084618699594022497650502261769992015612582910213211600464144311608784983622223240838298629386103297127711505146508646330822088783826357497515195842923306036758411137065189309267281522628397178269399022320260909548122395289283220124201356780956685091224128432047064498086407447358263884242671326275306500908808073762788280939477473171728061714639206426219265405280384715001127440019393192861017665534738901498044256540910478942275240756895787232702430126493400319687466513474314690399537020425170639790471583459526792330027291872054848800319595761072890120273874341214578153190141410771757732247506595416312340693227566104567515129047194209588109104842688298381854132552925917990143194863413633827057407286086617716440142903063895546641477223179385390801332218279209322005602642148370680458199302383035480945922085539904697880032196667298585313996706917985609669544232499066723965374469158356119225276538982136639021585877520461599968168770241220824907968490181795929136680726047233088552567246553248698188388959992509686822281859231361481503957279477387328872492568201114450511882864308560271707826521432307413162340300662930839558562101263875456882907924652886030049008667019312591990430863018793423258579834604859197362306593323080837337886321637661178480052987905469768813189671790892335474248813215375391967744172548346909467151497773986084051398056585570951627120772059586939967667318807412048602650045160100886361401139390992548942727757331657018425726419139758614977643122323980476177434263296694278472024405883927879817026940825053341414167080799728857130890178026699912190014008945020318752932798041634043700462578845207066815095240701526352950118857065632602704648626403657434298592813855423612232884383822034404377866160028374090052085457576494277839954413234058917271680558721631562621026663024434051290314590945628526738781304135568815390241499820168556014271429567519351221871042202316516450579997016952213751508025837017623681622052264373831120757759719851941456233864842132997767333065130033348052616769579647052144449257590266434198910171835427935837153909679078135742947959881533673109906037562900852921583502282547617900420411268983325443448573184107840197440374924256457002948555218245282619328138535811622238712151094893344785737754520524280119300345283944074996440883144326948192875107100700996968060552276155363986350178519465336854472996439935597908402317452125830003531418884350942151698285228610281120100621871188864918275165679214859617419308665742003612135044682687342511189887575457533711465650935494142368666120175800141379624547189013186420668256872439209736422056519822884636746678074716912731760942956666524839139683697445441098130688132079622414469323915235335759542750796498134355669599650197132334625215469584660723115513859163196580131562012418230438655797330441252852808987370940533716129732499947676923738547204343400323429931828546622597314181843964990939162570894898000659696386592338925845351458522512631857386689073539981385252683088478480108771552752520963236225284333534678189900448969135643825749747356883963582062292113864882107655253938541261492393901825509240241958981090728953800272122165582937687864848790409883568807268866689056565951320550100557809780781154756593429421739100728178718078944740242191149619178871055901374442649978287132458910929896408049618393363270403199654698846260421917449967614075561896881940238588614405050623101494871105440386910592006313132403293227091793687553216488345124823521350465065968088323521304648158221177175811624051675818221169795972066436222214017664719333938260060124963707673582080868615191677675813509466271475290414475592219758079704040080871356624892882709334885410829540460843837708312484827176450136585249770864053513915706557820659508593513425467558969813656391591267417843957727326623080273921403942899540482744225181300734952278373460015116381232970000794724360783647610363591380434932377099134414072519606248699856948165364841718080420393427396795290829210083313243848486302166490597691986461266058356885003637665190527407719371727867973612296557926820015576615566987598234939138829923731314278963408228066556091688890387309783043389746069299135365867610779495307892046965277689535530751554332543673627668292986583262566293988602513825178546617642127615738585152934286225249092350197019174609699636660172916339486597743549094240093570991573355476212515210962182625812984073259941845175385240535203174366112010559161591324269935687642917799809762815054141930169822316208794775712287476168952934336476587737978261703016889153955922405916802475115139008621733751985036617538489449262179481586417680768018726069366254979217709329333444280671243219980757034873888257683789322567755411719283678130283138530937032260729092386876556600483716418876315181744730577866757958554439231441914100798758464772747566726411060726164777195024154024898092526796902659620113664253697680214782542452078804083280165206276443003827363135502240369018647433773022674390633615012376549602886209527408124064232887412782557976604541910979977654859871592246996036708421496694272516966524130569013384453535474085456968639042761532774718655896475498652326693449577365770697453548015938699059941417743849296393952656893406196547389191827071246932862452341916624604561866052297133069219877370932147297335004816998883543223340218587868861502493390880367200754981321158572451047901191694438230206206927030968732376195429188091903226538738296964815717105182973545671345385285380340553295890823766775804109099287545432888095503712008193202591021489535242978655564775078442253582083642168784406793863525688571695452541901329748970890691278560294023797093284532855842714385390418984677249912188406244720143407080400084543894552078818957825894265440295220360383201391242071613639578860821705446156884965097546100036222494580052271791362656687930844564717052533384328894042508737224372943652531525849021420446355820755000684876930352704331245869175047768926321180599522212707646935652511309071798015530927787170037647535020939953208713712840668998508944623273363787347605422265743754984546058563472029833963602222286387000620108520531570334453760763109527592426084494047835697177168892121640426225832043048254136692755428905388365589519635565483158711245162312061305560837746492530549988621582273398243855058668348198106765904264544988806433656420656175673713435264097418212816679878374716416856151694521487474451343483940520004135918549479473523403576189757975928547539941878934887463909007792632167401795901638466414761814185226586782510204504494053197430973326190795958611651449706740643365931434505870711718187858947781422642100196592665288248908852665173920362032055396650042852943209733704339256236407758346783491015240688630421600792197589074915409872953624379746203820695605290339458791604582661888847810409863557352214435370509967679008103500545229307870986370893779075268568460334183169180525858458994280309180130962069170891902717721964229207935401085674021212027901270611510849346401656476640951814390821508390174659250426690463378077689245270326751078815609916596105084408378417111598586657969508967106988424843460172005689152743956963729878234131518106934576251373040782037733575518824773142150620069302841344346121656464542616690660692885518413748245619851670466891757294997066039847345491731471112998043511070274904155221122943693605598782442842470779389019049748677102521761259944887748707595252825030109863597194782154780269108136776184661456153155559714772812457826288066049663008493689955058019748046123621167409162018393624467720402305235480578169503055374404362700548338179502184653355869188465146531571660527771654557572234066253288815418558207662612971128732781126162863377967070850711714115059670353167861865334737792742639800340330266174265928839610085853233601337629301355413544773177409279767098074757184268669235764735456313484383194093096321254611729821180991240240489540230806059433853904843190224345088758607513247821563623381230199692393977951131070924606386430383495440655192584759474118104821254305325077492589394439814953431437514606352590678265739275051206061630373732886157325484323544318005439527928740858678835220505737886405455886511007579596356571179247662274037896082022941746911691476214618336250648683416600075324987313211116918649827857142492224638373906682668928584411601663089138996381314083989362629034075683304703908526910508493680727817382475221362486488641200416646451527189999900861862298038588914204548278158253701351921293430280057559861475069480117116936369827441404965057854776903385525558735175512916897536473946843382622647472920036356791228668335559516785253580523560434436280553222975039083900664738045908890457816239583290833435730672239000115823417331113567935560454369826658324437596739681948565346659856473744021862516459853889275033394790702541580498224432634758081956002884720163655176881178039526078688548989495773597137737929876492051400498320713947421758963234652328945353112821767970883414848097425052917290127663674899445557069516793107374851673941400218451480559091669985984778608309723448616208835188687729252225051566508560364211507511086565757476657956852132627587921558847159973891161500729091575323201786255959778088502936781379057517969316167126004879589691901672443938730097298220872021307018082387552520502563379312236432513465106800158228924962707758559060925277188646148568490717671519572477553979523820602987486807927565763687516319433207792472081755076636700814401047020521113927289820932272141261553820852436973942292639378188804059610505045802803889279518534552660448911372608371013179783994332900905972670242023322369572512657345568858031217176785606459574765285065419546738198972265672538029761090073666302898610082760496452216076818091982961091386886639613529094186997640395825735926104699359041125983175548746360774181484809570299595059268165961747489530262289707544295717622721349792307279064524009289740600141809410976058798405051032732510705666022679483409155958030243815390817784430034247002525939170646573626390560718878120966142364480755341859209585039325024266137158175832207774462594610804503368125785115281507962469683924670806027579895649131022606657573870119349879615483296292944487296110255261523583177498907453388944946476487035787380798895169988145952993818884444203658978181237723806446600963192195363730700216696006828776970272253736845945466868865148376681691354560826667510920816790121355974103478425675146604069361798773974559432910252469903209851512716341995172783414191076036211699974031833693536445456511193665387544883636103952263014735321802076719427250276189410683347299221380172225773615594378491951493578831148541907829242852550095735697308773367183542345715139198373022879151398442919347881905792930308399784941257377411360654938346287692349879509991582828109005901336522490686614244383865540498200180508761333461265870112496328954165852301126233547757856380244915893216096312474002842857450905358077020115235632649067637402900579484677807133962009513043023781329239549938367458505010641010684991635818872520335692827200671565116501964237365873733159260325664216326924598941627091983396008549111377847391399789437133718466109925623474254473174457546526397302746904735866533818595331323180512658204164403955702585697892620349378744825677407141046490025717905332426764451729369027378621584156368587790800980268699620823849506783912191304631807025565416940628376272315561881130150213605235534721763593833366374191892589111897453608462076653967296059812478225429919430703209505613342198123220468845345013571432940064886705801849579306186409555251264128579710621813398302426770543408889700380922045485493307749667477204487373175719632507267725793412900415660314955020548276224392165459645885283886072443512784969782204054073449742956840321792560204678526474589718916799372186596862617296732653306687774201289650894380799495436032066329279173420962923621340369037500112780703075352284062920535096272948903709720981282291490655921334037489871061652849127417740439375183749327748482318341838773062638784125278455348728360771499664656888963607414512324607868322828907592948466993985418868392506862796309425341135703170470609140985431322767689107225143803378539282282641844176581562575319776766448555483081193822255386068136682876988679394252866876759105689429691842558767658274457129546378909167338976478537911669047078825462143035566623379220595301852377015774129531104969375725410496337096621895654216495621418803653376678936971938262130778922836830625934014497594283238719304114112560317485471522743474985162901598917992931998944021954832251790972014633326413838500849280912395757421161136480824740529274041152691888132195251383299204367063915307302574573179575088619036635354492356072516803286613995838189167177878125189846481910266962694927936315302517822564429558203746823762976627441184651686734934333061331846038148764558420821610948896195346672134571363563156960257114439933708063957194583094040341766292235474800428940768543698825295082781967741623488187834378776274518982009057545369155083066722873843917854525759931472919853123324816433953698643998536869228640142108596511472321550655278263328403735631692472305300429438723445045797799979890759218442943871581244754129047535367254081470833024744167337700085477958311955851754404840541782601084902391865232791671882676582399143716936641564435597689739180081758874586779120447467146710960714771284216667739099286577610372079243707090037300208106403488715463912387006517767645082578788307815947543768888497977284048677394512892001244724891532880005662243644906457895526678753750732667359736635694428479141218111490658014582377255979350327093530701822831010006896786787166769121374478223250406619021095778065280901732226375686993106532993508526634012743395516798259627010973446646196717649194100265190237186447528291458548584177681826109406262416593627765300168887469920766972449971443290773416953113085955352269547510281209081259439716034709090780615701933607176518334380076031506023222188936375953623003773494754290835598846424433637197040571580385845342278413063921791262984894032779751598876086242548800310072594332108265945959169544533525692129961597563310435971318372704484508098129910241542069730905619116270789787921712558158468814368001639503536969846020618098189983378305676373326508692852017723130727122795891391186314356161243677733783051095015384102080978603260904806033200403256632060406252783491481207894725438455787754256797128603752216397623139268457550806884569388472439634026607699416971352670509994033055263775355562031435093744304288937857943917680013483449432880295612372138456337372780588441926804729277703133280778489218908308571545934065434740224973175633723006402013227819984145548789258820083522524134617754382880227229664602152760123141459356002654601459692348391529682235409204169885810899501702317071438603506525652798686623646411617809746259406899547007437574460864104255945626819309762706106806423081153589848306233650398466666799838201908551204301307959198016977997871164203996856808075475046276944154784594069242445773780597724429808305029605618856461195059223275331908461579668870110248426397131849720462682958101452313898379024288374194262535242113640793084821236354531268997030965015771040347287741044899913543419462215508164814078502096108639422097595902095423492302109215923830315655219967197352004206211603429705561691788106566974529507056190173046927645111077400886303784394070979190507289847852024018905912403843548286650200526108336798313497340173533919119194691967034686516552733041509919569590536795006218539502965058890903173569619786018149727978842158107004223042729904934257963588816445616554303812027332610840241180379601599922875883242143037632121743309267185406404423365082405857489811699567939233224545408501873922778423423648905908388092535264589046948746123056035531877372305253626644212884604316426928538711377246636337387907811877644653341852909499436935915765113148581160049355918402475220432069278059278277422478386703657540104475286611494840727388465527510221673441814349140336294599208484196268774602530200462238973941553704120601916903617636670249882273480159396847385276847084166082399537454179688877354080667512342667945358114783995286555508591687497502245877374118680963400690795618248552500655990157468120456247144404702585023489008343177696549623948966237433267635539038522957873745378400338737312089494934503690070122812958798300209211657032091164556223928115994637102633505904039061313550813796065642198828917848964866946768303550570039469268673776093234839024029463916337730586666593824344922537672781547909331191892489696344003117763626953001606292002972463522765289963621409935851366376153273021102265298434763201970844103739665191612230428984536754221432261729262393389428415802704756077943319660561674337370573779461223105187979918628636847671358081209204567935636948071761735844857701242108246155680213179554339208228716355587745817941750688798304894968599032896092062835459875651553886253838633743920039181649113936166193176584932138388851087011018523888628903260802880415319179956898706152288074945728363421387038499647581288179029754681517748840757687646627491093363051630370126423697818778222963100496380906768300739819962821819857363164865497967352933985960512534807319797026206385914515146475810530996898063877435772346454119231708955428338395133022621290427084752481262384910946127084961616395502757612028531631454428878603075536339377937019637989560253492235642909617350138966009187192323352558443251612950862478657299556927472238154760540159185799842671754361066345105683723854141052802377293236511609727991449400346089112314355853003212191744002363579268655410009085303884384107439448733875220559598486997745892845645807048577722373023019492790275612887370646981121540326744438881964721334982515136297851939406625884231016400910326975876048952248030210959506442611390428137145056389022490020019887645962529556279817908657571806821293819835596107012471951178114475620931012160299632202893726949002795149558156678867417809756642289323842026558134107395870399327089861628617682377660860507400922257429883251365333391546768509761436968051696444020554181876304778891630873371994339406080143907906771525951361794465337147477235375924283109220823547233078092278426794397033571527980032549138258070928954466512788926078974715235873150680501756072347434895056856075355356051670992486820147264154786956184975577820479506075746155091056180158457755653279065380482684808774694954977285937051428775933500398928786408695296912440956723189271119721689195810757398436189593456985880261380352511560222975846894492480452633810546485927412874971699625378447860388331025845775031994904563240331225127490120264768500395921601722933114943434388058415726074353088812162839700478600701999888266054739613468391926733393299585174205101279609377775664593960644010951090253566153436126416045711099084226142435660270265109659406966724489184405070353378802542845739706885144598281546121892624680507769283222098364395500733076066147155649040166455781629046753217096123545357695316646411603177424497522526912164547241576527234911465912458669790963090830883117367809748906139589868370705911408136755570828475514428621519021036563305517411425610877643545302309955394471779747201030666705452874428818732715997068091606481703169171132200872473473790289300074358110579577345106974130978505888255265962024157319459432450263526003403350053174152657241119211154901572220190056394557773227362289731218703850756700093230993376961663083610112699242707725715667442415066384372686435101271237297320822422376167062946259858607035704963878865826041773612575129477003487500902441986352072994783586426197270616478700358116665253736148994568966022081668753781466607047512240167667636030676380129808515929423356031762232450736581999997182578167024875222795740574313324696217734858339083412686524353170959903706054098762948547527004147703516938445005299861392766640903953831705129208780493899719117738977806742018352731478382920366329667244460057408036328234142903888292668874128558707107459110657457026920568448884244496654038003643707296759543337505984315973072473980735762909528190558257300418044640403283565854482302765526992717089038587776393789302767777155773290747351814836862137034899750952119835624848671509491140630601126823346735022387770583904295348336988959315013231810294917478869284462803353185271782007998497531167481118237343258323777069081470580044449527959726762057601244078289074550499344348247128210512850635655469500627979211194831213478437161774055494630883451628393947006852243690424227109038026581337327956925259877811496678618859132306865577047672395791449440890094756342570055263818734821542671137122771497302482611237020004229454423224367911995895777857334026395823519310151644162316375977859820396846577039753288625831468714253443616217197007182284729161637634239182012745459643068917714869628858250617578763962595094054250001329003760801005972726835978090626943662849994890188720544210141312288216509600968180034319249838118496142336353485185123956054333275151554655683867674714655547889699516895102977321547657684660053722153980733723018602347255060933168966911720128880824462566460393062737254310228728317665195464225045956108672423349609727097932962884388520470490267022048800472203459554088326383977543635264656333499130482902690941438383167662269843086017335408469858497288727196155456093216066027854511379339700231239381701122359057863361428969912307213760169429195575571704267433503878845242354783201822127047350546906971242300520739080541215974551031561646819299894122438555723375067844961774402414998648880787224014203673578101098740441429619125993438202594039577151012029370927976900745120561134799318321995287737162959624303959160667919741616110042015842942290324929930039600495975352244917788145068514263078870259143547300666349515754600373700287214421255944726111053331054047325182115337351309924775937292654058251278086582860243167861611915687496405104323361938254161047967854313131568495190504940573517566984958348450937949693621298895523973892829691359460519596008458532181644891085021805202321636153468075972558535205460667608871855987731667964239428406782773373970037167958748064858345741180449682712314058201646997125637419145069225399603968721995561164136490358263874024724889846084079161220027153377002750197525781404390466616193816817773690264325346946685652883661436802216316690938109234300049228042087066892495867087188839951254620047314886461495604302102508781533149240293006894770084989295801819546143038306636131626475210346700862428422965624646866896017006407132657766559757448177878655903525301145911758697136483606178725097529454747747822069433476269200243649712687554662312605850896378662868821107015907185188015665110992537332245500077285470762622191126687050774870136745799837834357979038693979321660482482507846068985338439007130252247813238423404743295558176605714888730848249849072339303524173846582455544453607417057489546337678075162307614470862252915126481288783587706806569386707008308082161937173148920811318189661275136729796454758260678832462974776262947982532390888354010934509424759412188879847168743385047900214103407889969069079126506549029820590541865309097757727170369693295486286755836848247249911867016759479633232404553335335683267889277708401256802829614389223206701521393410003210213456387168339634194465183927220468624102649649559111783125950961304709511309595496811650915239454249422434431329734619820055580626569001429736288919789164176049499842967905725398270848344734117055210751643794196927043253352505171420776920802127744549857763096986174026855236836953523299689539997368957932819500644311665235219194578026231146237610725464379318405077296049281422104029017910900144585448433039940854979843931735388774318955249681277823513494842215400745500916248146281559785235956463645510834517285693872996375571577686084169342321141776777867755496924669344680175443599441468570926686237386360261922907355586071176316651288043376413109824353703558913294801284444490037028129632568820602845928243109938386625288202799839123440340293292179723423388526687512123029873041780355263753986724973672062443087307474065277486029855594349999829553308574140806365280315700645192699271993569982374576056772080984481232976413174010790815812123507995469666364645030574672337531129977349504084333947724300470395287457916431589619295750286887423312529988368040565654331202914795151155584824055328736092049059710177277191712244719626143484961871018268446918366487171668798634131267741226945756143135157323489601910587450489502894699369256569389125600942613718702640771309514726435605139905825750794741665603556916311162660902951571622428742539394048359397685174073756623691010526955284951344850683894087528440333345130609627912230470197423672730875319095784658764588707836707259617870535477142235070908897152723722411774415400658739663171097723385602231638054885407874286916762333485583920283923640875065563285588870269490552473226946812324090678451951906217117753377951496041254729868091899182885530833035220078709240397707526164740078862326482802678831375859638284560461363627140080793948710011878781047591339089766319928007222553091412370223086664249075306107869231828088724301231915799208602160624915433005248463927236366721268237178717265754653804333493264397873301980427510023115431309851741228472115380049013825716295127156674589587867595034377789983300004726003739145639772773120839620668160439720833958765019879066857064606502592712817116254239400024112427885205443614604019970516784352879458986655385661841492268493439823308713499245686206528969470038241746231202769171743729345467922963270947666055165657403114433112389155857230384329656470252811087972187838430772976117373371943388531123464124256656543669963072389881494185293563250079342216477481601886697964600596086956565434727487901426486997818343344640366448033328939197948261032433101964772795646631388908705039145120349500013559922700722358409852738493387333843891566450711808667992862120026646758585162002860863192132654953821233879711240214224228490543001518889889226852276311627283650535567722825574705134775500222596867750626177711731665274502424537740364744411166435687395581670800892705600498025649882869388439802328029083807402853527656218496686922154921317738895194633974663824583258217469545571019344234902388044563034598706859641032487739646002621490481508108275234676940104651806105395054657322607764499302537989013829870502236440868667516986061348867500665020981513395411575212341622029201384702352366629766773113780965859212096038877983787630563319318541820965003926362600204722239130447640830276812392334605064357593948092408123663187915284619094655282928914037292836922210113824344180703233245381213684967488405116068274386507533423570507423998130968038920054540783405174557026028023971024671280228950354343476112848650593837918842777678668033998996173061919620938435515074265597838915227536041170005907757734773794845247141758771501908406849153401044997676460253157872052559081430759234822926311069988662065640420169996389589603284683160558633169890485519249729684282883198843854806915999929738428668410176212912126528297045286547392984732997581875856238520202596245949294823405154373723559753946120898119302835717469316141518986009787995291079874421433801699054541530819503293144636319362179453354630463828529358751355887111787031608807200197343227515911570088873383995326886449206815352744221831200116056569119136051817109550567375161307203723935599554684189622951843990104308747239827509009044452796731808462944551418442826528697296470797669092269495684245684835793438252012154507153694771438909395004190692281901981379218041001881283275903436059315565538225597274980113521432529786810538004959975556621784497880444831082482285582086658934336475046289465601672624429845466618423747345689734299380434373582477410036480156115848123072827529892551363714857666951097176093619568008201191617176575469476929317804438110104235682608150003749557427419545242001547805128122186286090127925060468037387421787031788017575796692354930661106379792881629311924066958560334929106957487577122203084811899168689644774060142401452294586057395925629529894438831155936918640444076224232763265613639467295237834272987100472198830359650531270925455843569471567107623073123665665128113350701189513204095701579318667539970396322541701325424577224998450567466360733730677234716917224813455076164809305531879171748631967406816253563187656490666092509539288196803834607454972924581096337565321281672269784314180230821197822980542690656310371082257774567968551282250833927670897984344553526803824603390857301245625090440161996124123263167973903001008920644392993099415986537676830034922193589402615810251550144488900269488990595907992233779827266993075792891719836129057011457957678437798376884354713412525115800192286101552220070974232276249365643143206201620248358188113941144166744091820575699104612199412276296619685632727119546440422428693031853347278714562359317705568952171619156024476385751805665061668719259150424766698973388539919375355477455435225964260243542294495776996267213738716564939969810890938599122132663289074947577617095721632094556106946815459434575793142820179454127357203959833615797829864180286527635043469386027877357290554561831081557247309991719777086922286969282270236038527628216358859874988942136530715635061600611978047337081820080312139593479444969428058962436923644808452894120866521382715763993724618452530314847069254476446352851243451380782834970888792854502914369563899060866341911929613443051712696722426142968002609142572168891392279165641043080979149531046022219841403334460818001124195834894781802898000498692608580804557777347619354690813785013186511391153546890718881406374412043078782302120883781835193222818065733919701741413007576409079775448385242465550921376637505177013187248919385543279178753003080490662832836433565760453817434924789085013943484032449423621266381428420143462488492695329481635099047559142258725156060798478188227750557333936268267489282959167925013073058149029273235586848924594339095622428050120758895208265905349493745030336056863175360402592701770556259128558036403838725631825865563426508334908989902140603888620226256893280360986408471420545353086116218468126842871643647767798172385717351464021603113075028328819299522921857954257629675632912020191382048409271308406902176050443408189227014111563232246713195390458611214294503689691738606510905042115271048631447895028308157240079536153874587504591183535914278751798664795916552036476791561684295566838427630253824835344685753775795633753809087110444904014231151269696874300619556362041029895584324404745966663879984721661267521803802460745322005902572192821290529689959547875896234174802437283560613536882662415860675941297575353191740936897379120655489324573505198070020941370406779348778802321861395051220104129402414000185388617538177131597151772982541675620222522569494417518752553052011856678008871804143091494450362587446876470331081026761429773040756110918241337984212495146776535507917800055836055811583321089602812143286331728010844788856525801235569558940912090631330355323271944691311899086251131367355804498994764679446689600246935221138354683567457698164135180086726153742760001681813216448347316682615313138859515528771408531713490740522206413801182220155256260935287777387532724601733705019184687781819283595588886694412240775339132692839583318835969224137719520410630825360448152950326028259157177324983337609494135767656177762361760802060508500065710435451110543747542369396522591861303769931260202264960988884399366543203908293714257200418295361497342725209497138904769602852112851703089753027278522796912117318523116303337899312171679282197689416039534771588655986370099165190252263795160224066902216370691143810746801646254510229352814096038149052534781671096998651530541017986342495241230322377287315674621833885611577951660453266580374684093824125709869178366100084366768859563721484264128839490712917128678297106668599001447676787829457523464236196183263969783642991457377126649452279924731961860470503876911221335209856790595492446692301863667282330133644401939293603958491876184896915973820208451547938907318214953045242797325077808553435840160998181450691873382858761846043637315503953689863157628386703199486410871167153459906914808932891604973004568085644431036952231798295971454116586711372745837131541996144451850567453538787336749982855571200651703237000117211617708076694022828811192886580626305140911781276128674731909185691616184633159933901314200692338399524244448229605183076665126847360633421602982526812127176866623515440046460607855783208997361268341814396019035436251562784707944955439128846716241540106299566841945919784324327976825686240191928754152997452660305779970396476901329440655651438013886354743396076650205010683090319290654570568455246328787534239599065410064593481044736132164951382832780543034939793395424272456650310127219341347603108185826036693865571579668374202117436936299825151886973578328480938732413626395059602710462711240669891262858964134683771866275922920949981358256498515021234245477098504024824023002982965989122360729967296885609719876597544086747729537913820163217864117875744538622124412659956045379731462380044580091173538157331163457117155798558513722737662491821493344199348575011629670027708393414185801747255096499087431218249177516900693223751495731295620008277204002912069401778942552341533342907599824071455971840323831284893597322331213452667009601009045815528848526790896109184540282513984763862144086752568036062446456425445067657788568904849681534334209256992953565367814561507792429081350619469534677991238451673836984640791525458008387094162087504375434458109518733194461942585708892021676333625753087942282054655689610212450506607469339722193503004123608968925246797507170774133415882730805915369485275640023530243135059100780227811952283360466425822427815061689052162261488056293902537373202902276246818316189134334966290681875988503092611516837868679567167193035785978183465083249316833324777637001541758004844252041759117725209081846936949201968670922615372835887506052872129523788913619698827304975402731226396490387356398330618499821402089335620874904307842816411273010213179136036622237114511803552567278614795294263152371052540381203978416233458502024847805106910972356016138788142640923982177767927387309775343578827054869442195889318131378377538040301340384427494969200604259981082888498789702210227578513610338809562698011833798625205390567252268060955748467035026896417273368005857396605076766972511353190947898617378492461738434616746321900688646262712989837897489241600124422150151013338701954123605348463971477494750791678417720582726738879809391078133223819500770938259200061207656081076514280165859785976980843751192169818391808909871423291732654702270333669972590455516004274245973668679285290621200944998774328418318664717501617229835142711221593831677813525151569496618936508140194303981835896953127706172824691849146776107525388201611265004320085167074600750113645303755495466244953453361308395073321054864124463815179013320096506948827031139055240112545661458659098457211825971535198179921686250324665837078899538487428122523774729640389856564631740679545990063970220426135733019613747490151285555591673927670380672594561877896886715878607937934029999908092648518686563969257833598592331582436559787138509978509881766483666219881941305764066470323962033814951768310072113392320116417497475867928330573435960884354278950277699611839365751464534732354663689849239194722655830511054397242036510435261235890770208037400099541571592874799735003838468093250721906281771165281345294178438228763611711200974323649844529927631189587698817163291010085486600917934062813597034523227861907968863811079539503787824162630594710227795127870166993063802753897892547929554047291901510154160229482692417453124281050322625957806441284355434828262651876765269662074850290215457425878746164321085480950816203790252837357120228066895147008130948823236989984293240312341012452115105524868743623749523987273493336445231071503855194718977564532226345086422317813540512216554166054129233230761361523616214796722522872954941986131344532990389274553351195937886183595424421384164457870664943935279796847158364953925897869368732190560675355358515631834524629534637237075105998152567489047182421441242951404159011321432006912942849642840914066781639483237227754479022509464737032488970969353165597988283083010037884994313131053321926767225857790821006777175649203616399374009256646585841356239379493330341617766104444563300487208372873753053824582565061402202319609650277356529799368524631863322466119547935908156838947795089812518534545650927384984024032048353389749559991763236624954748960659324735835059635646844444534358270579817375580901781487510311530167659913608884390359803058095297697556373128424231024508113331097995397654270393279406721539743080929314643376710309694215145808045519412860610257711096835583694819162690548049953749665219865560523037468722959168727007772966097233162732152009353086246694093595508111834526920858446439647151303854627692334431507791886179492189236988739172612694594395031785424768432450294498992341856780270765667894495745441657543203590571188440963483819430282387560846531354990369609368417925307864366757660157113180015800076482324174424955440894823077799244326181272866976617637207022062739743686605928630919217728542167356440240520055842315102490192205735941560550315707816594553629318114064293012657144002421746888845940727390651876394321770054905495795969874165133899649808595410975903174544291661016817207053992217321301281014203977293769348788528648179404120933354756832909335984319275007843263207101789103607594924206129137458135395108829574621339258242372890973348318807723790379423909942995951229322331003506863587150554554008281572370965395590650322481838138036262195622555428279450901948895402975159902171369771574267602936075008411658901421731657168683298738093418205520746274675015856632824527517709530508208339277796996893586606898447340181346178265026347084888216946805864946434586142229056926625207967605882565490605342844503127867466725090030989883362773749561774052362485826450522348977246874123560753996277892012981017720370265394986910871069762306392913602684752430844573573143869109537730653419780335516815856499743639020945667433838740960939929001787088156254442527024277172033335107162525894177326938824079108291880354364925562722967426994772509302868682993583621578182982735941889212876701697905065759020496848326301949713341188009209777444550699002162278565457522492098857715110742490411405721416109267150002420403702828062557842242293969018361040678870954643937198407253392652455846383752913279801168270254038843444971463247816365065065687529985937029500105053451562362827130562019561596640427749572829936989518746067285333496716105156792816707365401042522129824285828116285268520345752916036425502193967501959279084239804963132080649083209163704619814551623009379161617486026121124963015396888826854496284105045952314085322991253139690829908307304847203731759639272086139988628344961496407974281390771192018699431476199838908108628333662396268597721154919878410983308024655451371754047858984259934196593497550827529207432682277336735207273127605953127444915349305521707703731995161483300559554879217868370126881782032302213522134989530757019699480809204850561469587546326452070382085222704644436922015753325172114647715560988529193826067868482277095549427555494890644155605961136389869648347844154492833445818590006460451732223983754500485768171961563292891151766718248511883718526977606985075901026327845809794534362184119416055073524082962408614396496459281571599598931488130378422497362160484608399373403912403705705937566183962894549605756156265029027005988266659302859286031019136234476143823960472956927132492328065304784313600922153326700842558419960682249930391774432418370795351709977971380491958711710146689219233316650561317401357779419278938679665489872888183596625275237122311676243890280928508132074369814355824892628057482682870365266804478161076768062968386356514709753139183373659839021142915126420877104146095053139053614961863407203283937602772841264162654477358142689859582024936117859782055900306571679995485792003194813436729178400098965659044265406562795499968741555325830403419060125727273014461302677264707367407298392417472437824341570663435650801253500186814216732986770323304988441990757648191055715219586219561298603213142334121771767949324166710480910570896291946097410064632374405785720576269729665946169480276173890279947738884626961499000673339221863456595072845947074750154403952839523560188248575410285015620993241081426100668139803896265773371537899353804156059073007924515338403314434404518708858922018490671732246704049149723730190135729132275948345346707945772453271473828910973473650021896949130442721300526164786344870432558130415405797384230208402930092736689070006250346827381495103958460092199244286599925717606171937473547054044005484871554520907857655134440818679601498224189860335298070373210442384370544429989273816775908562484602773733669373345377207726632304266477447882749648694448313584196519668038136823673018001298168517225517594485100601062813662258610164636004085217189243302471369292860926885978245981682596434469046020194827610642144220167150969914294039718540276671840306002901614760314351277399035717060831725498305194483657380995423974761705468427249333735557006885779377036036207557729906975573145783634328717346715527049078444293234447781996343895187037169694859367355476963806828110632198810146436763143568540717740561375029719196493476888011187846978934632460437047919705133762023386117985200644992850048368677661698407012265204718452992411852371757492092888032580717437161610651809457596281184503780969546872131366826666991583163741513902235807762605930046998859602228919338297840786829311803583983345476528475994200773162523072419573229725089785660848094177716516215094586685788879466205476884584069311491531874248891621726051980124331616760219263965840356600261323333858932231795967824859905544396686640486203191165482936137912720077500443416023833640551780335926861220448767900211003934799164316635023262371187319353113917330168087916841445910720651476086654940328216386249802876108086815867008897456882376057650070558404755789399546786104544003523935746018935048367101960628697077607861941265909486310573722474107682962561320210663759501226451624218396152023166038352430922110306537110045000758317990632313433307903056727799651346940118995809874088046412522589712001534092265740190740865781710180179864702654736452217781706625207917807531593590884676251536926234562737835569058174329210250944993969712890977989029324855784433034067595921862989452975784536025250458086004887355983780708770981340975502638269531474136055627366709953710389055076656590507246775182099919138115218177562141155946669423316925989637315036833884089138164756321248734889047052685376922869680405938517582396227589399799819498991437824019394399912228042038038263316742726786988739437857752476097369582770594240773839668111110371918148027474195951007959114523972994305602718911548598324153296361718993142420692461275236345741116417008043296524406850323522906570706526313346771121763375050039761819997309359307240359023304630559432310584830856133856971001740068831835178362210573680283352210626795184937123199190002531079671410452059590127626897895889266688356688005373460172339295581995550318170286135669774990931857684910715198955968179062904926734381153933745223448689949082631218944873627780349766164800651584694863131776774295932498827578691784889497917410948351125711744018455749293746055216956480815705389590882801547091545586499922237526143627884584649769686540311648289754450422317821907087379272311917739420253161310700236171491407310254243546448393658395704892479196483232684719127626387138946971167130669794809854054397220399041270959124366398706566993260328251929545648607082782921633525871487790458081059708361219363464234642081370668791812203114802033367116742879654595786282462072268699091414458532901170598240035657754198591210165339779885305117950453756242744421866753020747767542579902137182649988458351840668689201911644005385349217660333084814293461253207548401896330764156971396317017552720739521282737802629667852973423225743097752884183952765732756827124193021508929517755255111525090457611636784533209852678319756556477050514181954891919205834199900938640181913779712751943098696261799092973803602235646864186197799711859766451527857427545703321260974017513624289579911917626573289653554307131479251215775133487474882266011097353672182531729832583303451324368809426922881869058892387562187019439012570526905451652942940027284500079292035004444591954088902381460794654391174158551631972663280763430031677163330753771697640552706944896846069618586359100948624598856266965481252409115566636102249859272433185515445934390144102746092845709129899670379675420213860336609488978806235817631531948985761533521491403270613855844586629838941665345984969015540913046281709245551314959128519979519744127149768128572316641343038417963882128891864506744079544868937802671102441077631109273596001347259178411771310844410196766427885910475635823655551638285129157078058649609926407015493825766618183291324906268130532238973356063006055452263388241623046649136014633934976914484310962126203239474750899979333255713086666425532644963435297767241360339427856062376908678050045826606797478703180225093692313233653605089868644451329251236144188404638839814406991854410739037764240900051902963579706003124965635545025106901429831023553541807840079135862174203940435914364660987207928910121295170281628088420751292833418353899736958668285196455637900322549871652790877445099361028214909927673434578059345309828384044035807992553892921918584680306435353113102335794762971283124728037439390471016275240761608936895556631054272289288404666825531302219912567029442051533342664198168813528569803245458276444331714408995867528511972804630781722381718042909264805608598215577240185748150792208563475794254578997781112476888825956475099375751552625543493680079916607677788249242896390751702250364522105936241174734232990906456555344094476868775361186561330449826469161521465324679558245032162888001316501445484754640513366901521362837526399962059847116434705305524165909585264522256493659959886198034620936344478802438856229704787678026053237599495845177630668469864943165863663766819644246267778308478586676107898125328497565040807317325590042631320575413262421453818676795984376972432413238857689939006298103709416437854414289844675896702272600637350716169188073604996378659250498984590427834082312734453125646787928680041465613344610222006727208025102191531505691476924747781034029150273993423127934877002777791546968075499161154019337260652437080990695595178412249731249444203504515049299240176800411761481722446803187147568590497622725215955586324027060517901105438300341520804909261591955990755098552468224837880851694671208572848650154262427715916636439082732960156544461993243404866783544238344416462365291523729310494345474495172629123042188610170605108604307044700094074593255054447070332423966263484840084261748695676202681503465866218459736222978805021919744347989252688370458694752551936210666641231497954891991666839649190580915988839927690679556497844819903334962540653569725651407988007195893790556008164753984665797656806263918330310207774423878304422793554999953747131665113408591809115646879921956789111755883080785718257069777433493500823026842057889814265602642584034678760170944495633422160832942153365032125220025716771399508055730312855440444614854325121127925103849927874292070967880559546922562761562931294380531547265012128003783168897618483723314931203937800590103973580465581064555016864289510469895374080230330435779490759283750025937946848821694080703207195722984172935310144799365755093210129437027441534688820356061729015515686461505205650636001668546348440047280757719852746729778088789614334913495491565020641139248016442744189618874574888371156741853072782208806775945263055805851313934718752971744677219085595592090079213809479546518056059299141648350707708592243346573821617561753802672424662698905188652965325341541134413083469584765371293872805311888727649186522656619593766505740195509533395980972396099682018020710864638284501040165481216418797244530623814874662921614946419186454810132856621655824739145519200041966197829751180323711507551291410650526320643268470597878777845399343257690550560037422650999285810444482026473364342270771311462874936929158434399011745229458862205476952790141488511444365042943694173944403851384135887592033699103033306911924807865139671518074444747317029902366943522323238752868075238024080328630807007987378963158738969931459207590032304446006041654138580005045944821414444289101155397411136000701689688247724655185658592883188795673998029158041473450965262718421114964314706205009065094331580812892840833692861497473520992307248967844373550522596220784842773137844823692268792219052594038237495245977333867650462331501882931674832591501659106753410350099340945436476011798344308599580353512816964033212827152236999168707500274661428842015233243749447384011613092334423667133162227098443028496975015580152926677261688515929841186198939249828226825549875608973541564770045184949314239362727251949176138375719285068228036377873786018447010259785335788438494223301071167438578474749064527125062154844105251796546570931236813852819065084962493205690466081722896725874910460507395154289450098602051831868045603324579576811462218193219196035059961281732701760398742779563784922459818660521141103322246395885990986069819971016186282426548899758358316348257459364619935631515945961966274090383967869301640252732758585785976345991535023951781520657901669345777565581256169534924220730011686773735768298065737606524884037885723280779800468532941723485901533834740473764453488621110270113562122341076311450556939056112538089983772435856350615520258084675292437525755433701308212484574878066167464892841707606053959569545832411146126236596484160137252239381235598796232019393382452474106870683074408166084781880014893857665888027554869618516918013844319932244411274753403968774896359853746009417296329946227740794335390147631196976605133372125333811319914283032487040127734980646042875359596515214147373966209932063201610617405306041736034822233935650384459812919506827549967157058803763534268487905835189230470503469575004421390330573843778699610717306474518239566706018217690798220735678736939728858939079936436579708201495956991364447692050048544521182771471878875766897931672957695519882089723143198132045330694776268118093590545628340718218782933847352688203601546053712192791053789097524197941579661459870223016463628549988253927977121664868643385679883183657321415186767219460598170065389281353019854731814296344920102280932708360933763525479541178063605889457431745147051530308644269843696926170453015822908939950234347111841706075007069231909835944407776146996532727007794906873102413782279801516252407224596500504848512873433533204895732260499291331293712072674216870205537790060926032551110843279948459182328060661687151568135623482133716076925794284526063146474721080312412128879034290130684366631349482054215009270279423466046091424366053272407038859327883538731769051616010179521527180179156048302823873640608471848143302734292001775706930540407102437044470694103300211029274603850141662525360974662005604126540818329744553049135278268142978037260954351393642746051629364665868355000453681221008728416485317023923809944018343462062114851340818169212206838773945794498479349444021403620356360719983754589351822998040387833202159863931481461771690901143835524490974459757828998997825263592589087210762973285240926565312041643549720781816979204642788854446421932451795492249879476237473196172783996492676903859631581353680471065747331164438986900109112273570346014877734030896890172685186352519789913946060173724340130196203556138744610928590034081529081464288401572716823274308288540426489154129539317657510535685685819863576098577106712206408770020516015090655938174354576708414090491258533019707019558907443396860904203903040757126868130998384859944447518286063921141395356750802563376055431771651187893274406357523732368377828614528548326705277381789806735017860373186326383446090933747797576853299838550174422696312640733128123408475527124082010052773258351448231073351225703938379695804721173106475009079979094737392396647152830830147380669901735121254298690628319157365833709953615580713647879979887904264022215914743622179924053269716611006462570455910916542591767205094729640133257265391363083882081179405713470724323217715639694857845937650641646725670933734230470147213508061087620684189701348111014895415431671550834833777311196456698905897536607884566464744569888781971585654262895693003493455846026278491650724235688181462545692524603035796046643236544528569726953536861353942379405465317920598073208811884719061915632795473403133745412118447522697443609345163680059500270461747226693777334438108190795649660046433613087809839993120109907388859921747897442764722694376962566838339592396488956735475001722940125584827120667858476010827562681306599970655830407595793713012667630650220366141346144844131275419486349603334026195968409854353393754762850163224584014940068175453038529417157135455776253570500635835675134855277498787159405810512901030065801015988018589890004290318220769407189223939496691004907771623636612435571711957153041601433582987497648947273495961983423973562706698938682183605160582138823916145872160867969755797664079522068048570348706751806633189517718161148443259460087974157943946406608342923659818875737335871960650307087950213474054815456470853638577811204565090200695149647878970932128286580269568413393784377990944026501021299007526952391747947120859797895934556675211228443720743051911733530724721779266045992039169932521899381292469059137094457665405001969735768939402099403892561760303284589093395508304464647851821930330449178516926295121475217817304651647464713039050016874091958871802171603277715909190720456496661952919882384132050265613073876689990018501857723429483630427363108084774555225902263663839622189922270696775228036813018970094389662426224260885067390212252688298506974511852904653152078834692042038083648804955687696456540493785385526920396846217863937281560439926359198492988872384000378756394319778460362973749354315828287246836533867805996283845636938477496544003083139201507892626169208297362373890780597496994036398590564248721654134533026594171325646810755294822443915450527528071252127444672920044013300906992546389783957278634607373036850109907288397623457322691732421187842633842565368186614546667284214444672825555092934451699080958293599588599277408704885032939135193695531547213828013524770457594212140163297832493701417910093278911244504521271153147208296323767924585137319506145219828042275745217710395491813509424409806763543891699735678107105884771504378623732057152489193637594486625194261098363180249815712246316894753104941676997928424998157254349423431837298989520413883001494686250008115760962708671263434663835862507355981082345729754860690263689505927912518469355087438456538009067251191444625493639749848097340473928645732260590631473050224949503392277486295553992628627492820766347881004363709786472221639675294779354610661038801920455061122912338233928410271431111084937424350308199708209124165289654495779857430579149119173016280812870078762793476112949280716610350854692400294163461065909048988908135039920082806116083963715584202047284727960114404955272695234324918754365352478239418550756837200756986775009485240032381273810223579436444089597820195789859240624963834065303355608155383659446349084014815916357136263442601830662739226960185860686609659943084771971283738713276652694366832178405995265387440982051865614870235228869341544591772006222749748090854512538533137313318954052149908227647598862954322018071896887607683771681778020247186471138121392953614195791024667931448882165496172168128768428664235639719371345667264078113544154878760507344258963774856119230682991816742727458039550747179158249117107005970709379071978007970363131935232674560291643296835310614322902297163128415175719781560911116766684825995314011937869086853276140443508238476434360985480481212635136317087436488334446496267398889203928102767029041118678643162738701409889424095941661204137112393787582686124602862131071034248317077831098533379290819294192466460700896704107056798318249279853345405202973820475307409215935283170584569442884664815861490790084799697721988646076284882114989083313707833131607143950653976153691757579260131862719888343606552515020165128235502340943716619713904460008566692859209292669960769121675965981843381562458535742309975503353960356610402336325411872743420854788613943385710551139771587346052735462691513463160629945722003520543857350311334060489093630960263992399371982194437081372362407602334505870750322994749510662337082592563183311930189708514405588760376676854977637997850773584488230410216116176625555104472311714818228602210958254203846821206413346675087401802600981922983349503137036730422939361103432078839005215825158736598429840345436593947257267427606336199984344877510364266958481837987240432287274142808229875501809888073559349815370181916958762305806960796559291357182730705817138400542088383941209620247993307754967431587962271122074663272380080586517658092692719059928406482137132987313495693289883720965259431486380878720940936046567211161889875720192500810657345895891887666295139349000488110132526768505122249031622960277914795393905379902794994192252083206203745091241726759002239842162105086312852875322266228532508017384101556476867855862413418662757511267393825129444906946818109421256167858211883852991445051920277107473977880528531562308541167391168835635603817885192772947714617635174044224273116646603056198116067491231459531150202564824818482922731491892723475879155586439132568860285393038064473990591223524562046942623300582998090926488211917881681141250103976182808451572755249191584439041250215815920466615694755342731359969873982281672483316248108410086396201604643580674955546695367942860553331086303128215781473457956445049075005311961239675827354442413309592061537683332528925925758472156040799941760625538616088122778658649610648687815977475400834636291163280791904333131020743263119028512692031612568154868012054349219205888179423923335158414070082044394902833863618854487145334815817928117023017014671277398020444613334046653864785390043599953561879530236509194292148170616699598025990658706078752656781135301898356889599586527011077900008549677687131191756015859446175418952300673890156426960603153717518801267829066414783079318192243883553727930393613270765812010003150677288249955554787869941780538200760800075889992268162443032732995380030617090863017414466249918313469857856862499763890547905999467109213120890394680168675465322556713202038766074545260836150818403157093967775092823004210860235586070333337322553770417821946280864733573034084269786933350803697667472299800656207438631291968491716437992417513854107365965038070102617058741600575091723548283275097268781097535390053344208481063369176195541155138122806644483607027379559704106718574219983244988608513171061929385952231829664447399397917853971902247277257410469136395640083856953093013593718669725500911429339501637206652367029727561672133776099354747373302602199261032463377109323604849320427927478661583742425958238173543860566287903458886442418100082310760944920470038989584491677685118211694288198700029482974785325196416928395300420025047351819223576045728965124329412216819201823754976301245575267850081203319353171146334746492313811612175037214632258562219185712709387724178513118028555438268324023245817480411389715658814756283943937311008697258889093147525711164333135966409481700925357923984356045257628003733369276951657407144468196980929532330864528010585074245088902280854073570214577630926864471303155369593300407599608498880029862413445680548067809921240147986053166811639920366197889126039773740445124125957921814227428165616464491206194938731703044308334436026274522140409644587425828311274916997374483868911660747705822945222449820630483110188776519502198936858610235875512859519916415624902575222994614045725995686731324806268763995184677066844274265508742821443926977164852435205992334893706156753755806995044178561463658264672322404452899890248470911921825583139456135033555292820284035315358597407801400728847931489427221385101595038259075645839747200908021932403859686096515024097291057927279879566092489976243262998910186483088960321093240523656434478083356072774920665162635396123006594770643743251047099137513657727034813147530950945107277252979461437331548720252861366296766277866109418176033216849981951397712223592039853968422331236207890025002129643470030134260924914667936365696081263954697606630441368540251283858845835329604954362333148519884017131850350887822614900056714392034264997061090662326704420824279950770881093114335632646033986973863055158304053849343737191662094193386998888651447237935367025105292139896323778305285651763157131281647516753742093547007999561878372441710220398640073058135166983298475909973074267553806484197719287681780051497950902496614452491358349138267403522897456230686938325320608591957619356413208271018067674186673380512845858809230944137368973793944978504413684653392646765763685730329778704723158372010815416852311454116054962259229483327596293905549556431283782111168193253831324096519716558281434525564042473756454221678693140342301273408805607961943082767648662361015047700473596698019138275628035104495387774184416170820016161605435162900282731677982022443870164065452982215452051001400661967440777746321714817015666220405169410144790267327302892491317991316161825560005237097975752703132679306242223570383152923077822992558966378602104683094310308049909039519961678492098075566196037195096675676727266758994256268992953015325012891786866263610867190891724726371748337331086751523578372985655874305773404673464086794407010761898962447747360233538302218541492960412903315571530069145581084515365454804053448445351522775092447319070897316808858099396011239247005194441664231901259150761233610831563881086255831482016599923687667153937685515868513959478405520346880227218685913264588738944275548696348153746909633538611165941001398531787233926735250950412288017013627817853949666196882860446136596127429949983547407500816791818682032826212779796592465889328512622878818065790866146915302126782448477320025140038914379308720411817015385723683806912992695483630019003458110588271020843192394735862073134709295640513429284838894791134357745372385558628078333922669749368339001104252470165862545926391249303050608360094529538737062598300932017005654174019227667622842376995749988104895946726701966901070322596124526100101863898865720772506599765295726249193063566421586483790177814150843939877962410100229172937620001145710831403371519152389073863847580602430021241249164400421349520599953702577763418720144105131577065218897066955057237736566430131270351537881209811788712197556561656506751485794980771444703641077127336061764970809794431605874062785367267234195636074241183986846962705900784911343873380803755633393986487396079078491459330319973236475775186375874324345691868903682820048187704774182379540221581434064090410540730078570238579828929609508365020041225939286311415910055343925381627820245439612347828453107986497606568328411545933566958411596951335725171359294196487717967047955969755988839096874893550030868191127485573841857162737232559597082181233429904746034581295940386200377023589843285689404416255039200555074172956057790791009275025362425430791818335681278995833895660537909971083277319251334606046208582445583545549714962452283983035618543849705795287702991976179240790670593392818440751057595582937406060196709678611764232017132961392740245209320225435530828569162505014717510674748424223327502822536611447588525679689972871345201635396640095788767895114383560535066396650713714847345574659407237791887293690420505666299252128535096045319604805479633234406277779123420933976185751619891164321205511771581232579604822281894464335526524287100500522233331423719792666053616857091098670769916553220292647402718134225370385568464079632923246662577298675284124658935249476766629130388306182695197784697396928965188914316024824320967655684428096338570147889454801841624745983433022140704603809621638941252720415108249889119865392463694129772359241785575770815178169698128251630383212532713105653818163009852031281674244669128099346218131260043281601114690091964798770705333225163663591722820649631823874004410552088414676857302235726051917818336372456763401628047060074975069062611386349429231194783470449085039430948838443066994759713734681551451237422547071103607522369986408770652781996824148783625902579164139151342701758578366803681471167617804075397685958999764985703175374496693753565257773835718252027267118260360765844325816246155221471512057609111786467177120701547524576622669946440271507041829230671554895329732497353106236425002937792140964468793065993865955031087916853094667829887084631040142825275339864535814260439542441607556761688143423934631511007094684107338927807492183896112247235437772649356649562198331400887651934825345180178838496891543861011965064689121574792654069616017728313335440907895110283859851966894477719201620432173690369692776882639228402332440702710560801598564357525329659558237731903786350360574473645933198535487524154340032334999505082672376421756346643421497275050785076896886432455778864122190822042360896445636980129840489395499382725076417817068189350926370272125308581549686812505757421127957543730070112079952858906011542127778581592755820032636361351434168114377203835321535270678075303088761569430562401432612923140130397796952610895393621580290395436788143217334312926886173178445411607743307847303918875477291106625785124371286892475499480067016545812170782829871614558483500460119150899855193633278419699831310177648234264101890602642173499012574496931193804964184332000374546053708621644028776803870167162251445735549357712343197004656408680347570189052773833581401656216886821353610657503182601530069447253474597737837880114962304894544954276320512674753253460913663366864782519289906747167383275332176596798682578611039066876235765833087058176721789828614986696151236441282514570369486821175828552328142965151076634665873955033682060462973824017559464797281787948672522464264649685112726992721721604329374263402598235826546766638189261913050968612129229142093293138424634308803329866708064054165978171938330580631756973421154377919219571212644488679289881639178871610945734403782842575236915138057057866358996663399892335466262499810062823651366859141227919779208479379020024160807526487098276097681519165561416992144261812373484582475492571536389087885304978248356976596726858276463503547853185801826811738916650231335551421159235007544979747519267863881223082673174325820427813316028177337557430629739854123838345010816762471108628728150416599354612661865484939540870198061696390673236337938719714819992605649337856891624198279671474203472773516970465797521136599157341703507218739559388091248707855319764708659004688782278396544320757090660399188518980662350586032100070976235194800475082303739285313667960856306892885449342420738583943522127647822840450123010753466849978442118228798025278914707648281895876168366241042756925054967956136475052603082029541645718086111080798300801658832316355230689991133600822332451140206727150546736250040551926186209340516452010499724312993593017532659317560237157017000877839935690700311989293010473031634863076727079003526609567655536194099042607752686200433813324121694636308282237002672670637636198018949581452824195845192430190924136277844718570395243123120772206108286115709464693162256947018476295698618388539512083396112960195714288987637321281741174873919909204158759249475019358764146784641449955255722533065376065605944949132066396576546760974434181622580561167725346193805201132364913005704095208883582978438684305813280138250441529855406195940832779058447815789274965808775083441830400739163251598154658490150469173913027336728814608049225582170119918256015335110560778738143729340902298963239888348697480839495751543519246673517982133552899931885154707259445997892528370437087139863265162532134521454390367032340968034798403154410088553099099040064603202071473751380058239947993565176069237875277667599141866885399386152693239260102251684816824987846248446801027099269438699571603027222270319079027390608901875583037547958197032966934841419610703127598802213699837015645920793824417960462532675934338484219397269077445828950123704446358262552323706503005509718767263342701740988355822892179479484923496623578346218092697832529757676429798511937963245339643771692439192782722893528359455261724265224782825250579563700624289545760970765501432747682937413666969866220975303502675046874302816624011665243316501948770902611321268036532162699341443923547417760984593298112231701499352165657886343885707459398843019250887895687656757831492168345256099487266821125214581318960591220018601795636467052027812903157108341556077597433001396589910108432568269747604647244862603572998289166630181041665487236795681415413469876218972236625854085711207976312653893767795823265564460168229189494672060128166467363118825106043909346243956985250722622103838340934571184061369614542013536414147275487816518740630090726979091925629744203914277204443678381947204149747834686745945558079011911080836525734612105803370148851714540857088643431242109435070578478295494133323890108478109364428771863448804703690025340938082214537797820404155123604546528636250296604971251258449832674639138680046480058625509686367259395827523095251775054234856643255889126607756899876879955706624114381391255569909221151296748011388667999560772342756041814211664343039737308176223499855282731951541629375666978277057126179575530653990782395108514012997607662310892589608144484360719000936794859050415453113293929444185569623201288618008177165749695592607595640483863865594711886901840952045390235142383101301553781080532545260064887283920389840698086049767745108794750609109369151700509711317347685467363677287783212640388822249515677108591145441880795115862292095721772071413363611320907547290054557714784716103344597691492593022667906432844556286210950006254917369892848074400740529365555854106302129860943313065710591057499646794604378232714350682106245875388908796293497623990584376098804968867830181697140685544283436681514131918567576617255821098711795967361376305539910646986522788201473312765523465540565378514585056838909854474469395957830663691626590526190965803657571535828260393352008018824773270828723056565997341609133895129963298308594149671409025587562784103845766412418746362188919490101631172476784825439349737683397047950695273384509553073578359201476500159100971506694715998141203325928031432849032836435106396508067192838425023246856015352021911893915997166516517285641966895275336582636139978179926518311185757564312152648223181172922766114711394178424279781772318019429337473192482051649561531323996525303688317239802752752365259975894286594094588010471795923000090347698438276248600254540792102825794360833713957384778151189502853073684317583779740999963602613246106907205250200475084968244582911989534155922973998946754768006618702366093621104222804692959823523096401113548796182526123410031416626108401255608922014492127385939183637639466260951054148155360584940988522552474561974175801241361401229333024692046532037809190608575331546445477222138653925209467486469142752078288047481757799924680252266737781071646103073593093113649686132184501370519681256014118140468602600337748025702254135079584703831591777769746732900500521065938286995916457689222955189956336343337560886811534715114485179468047792361667292629268594954818858452118038450304685262720290896146885237903557760815290547638012125869733168408232401448089001066860236435282412730761307776489389042031749546568327576756317975198108763453102609813713078784380549856429894728020505093193357119933807140889557289555203642163926655294554919696118983440070932463172072339252405050964690897920117565261085827110763085990236634036575758691086256006934287754456809374583409165540147531792396345295345995268803441078491652762234985453819194504026377354644217428056136620480388919676859489496979714316494453132252647740801279428187806276495673898397316839595518921711297075978454904873934814807417729143306370920302335125459708122172710225374656915449323092772679888928222860109650149367878031936378984222200865135170795490053672586179748344848418705426340349226125451613595833384513400833117505013248201933961913377963184081953241413521255025926032578774614398507491811057243810646778923663458492993649716468293500283643065116770642104317464787428751893215600115312755825214735762051180581683599860715647576945320657897114038324738071638280068041294631121144504180748768913577304104482555728295889477647291691438902232415056839358134613077749398401250117492450819800172997354729129492296625353014914516756933620880822399711898547795298382928581885102697367958427366943766291653587235327119502264845255683184226644839961070489942692629822967351465439571075478097673430961086250342785075630217603739839608079161331168207864307984673551560952897972315149836086007707030236643468572401010235574284348695294109236080658153118509484708009245744726610564347063135787320533358929917597640219545319269316668918422342649823789247672993929375602972562654677106755236434706795890201636666936262482741389484063871650778441138641220585213735992835665283125337819953941346861830902859060910098719727560641687547579762662769960625299580526523271053208741280710184916693044249599933824461070707385522144986910572476261427382718775106895338199574094517530143942301825142297070543993902047709499535430829100372867248201559959788742199009851505328180174550960661322657965543915351538769521385555868277064943679150180084727015532459762869439618410872099620144388904060602349208113544201835640231953886018876472407702839743100534851738453023570159203023617786194956585632777515261177757145764895989198554046031202132756466635518491151714220039642036051705384732844753880206144780966346334673403529053299430732906126311583382566740155313887819628428578691999828094071458375117268454871772346348352792854553268978960898411563603676341376045883626907368900510090434730859900873952828074588902951192975687103318260477927640803198713904643349404406398489792549067217679580763442914552436071081262067391599472278496200108414121050099392992916387879660228994533618984515242458871972418825177440875491311488256021380595381217005938082808447785358573839875738135129019279023507583774208487348262676686801560266671075617537669785967255108609424899086505704773446113524777795255798191915870091666664796034074922417324226645532881668217564427687572762749497741899498746413618994570793538059276029603879359420358296080592375137121726992077575348997774805064438374059366078367369500513839620212282554334627402758575995193962104135503210950959000267934079910097282211512021655387028145249542757057930486704502446349331214217134451673416336740599517332719670487708486372923405586846828156300383311104897296418321596110852478916311585839922768787030392054686145616569986527040281755200046747049228258587477672758143062165231292432379876898433482190455566310611120787763152792047728868403166740994614063411258454691878028204727595952792430960505209238821245393746080331524226429733516870317185216730346546808503973149222753686286653380837783816394730891340612729323293896452903085392686994078598587688098687770527123721930083575508601596432827197602361666232278895096121428779374196606431736139967390413248002402125472322694633995376718404568427420722930294907361587042603803511308643855118471434873977070139018795298842755065371025119606415811700609838968330420443036358451906583139045625857487438264096060386639750135365626036680075117981206533648942525376806655169028236566640015027399459910779935651506040607917708907335822716823330752642657364494843347166036669720084502151222194325868386536968206631238024688220600714255666001749041641031337410088844507587404206644646823757565714435459507469080938077059024257911215217212321510656789258498285686151844063912093168954760785303249139872379487477058004615782384719077294862513107868886496571958865102903065392421151918609201103326508726960209250537563645540599027717260295977820602829292503170527412969290821872447449724773145770883640973783668759541496321577567858818042241540272570035229239664171333918585866396052725748279687788317491327237539571858493372827720062162415673761312933885480728746049167209444451285123561608685868200831833496594618644947103846403717078649480800158987733165715845385694631004650701336895356795851923388990522017112281989568341910208356390728846369762520967116955323081600655482168407757615575404541671942806455672069347336914568739257258638215781660737709358627180316146214012155872854043840400341955496214357768164501303003869008861175861407279301484056431503637933805970969574641974042467963681509766498807107469832994364373741693064690291922686145354489560737929954657284942188875230231542483076507960200879404611638443672332470507054435567578152283107178931554716346619814297943461753058772871093189639029554152027137233928699505710688205972638959356406436604071044519930736618229872358494471252383869243955374178955563606558266820628284598036210161815633698376328541174050771858739623370087473164204863818386979690577487406718858441256374546391017768122711221110203884828232524268237874547959127283851545928432680712280701632540953007028370058132778499392470094212815863327272525219684935626587820193625256412442317113849359257257496841290831341866183972589119222846281037544406727242716221933387960340573661893723638516735731920524913073960984787735618147999430834695423884788941064933466497334318195257261945751060744965892341776955572267276547437726501210317629503655013962624521882403832072409226440238010040425054128647308889031450534515001578038377479721409984987211558553590887255418550898453691903587918865331855922809624455317986716933858549817641029425179219343974888136106240096134632239689517798696507608941243795910996519468147781658385165598183695520736115696406559686067956742351271383561115527969254736765852734222084508520058511458882475204036846538375235464519746637305876056337052282667423868366311723647883615406787263042185258114007479996185225595272500358829888503462772576856577178576217681921463901269039374712254829394305794179833283621304343832255508015726693348587833994890012276903260162029464857791434829243362313477611699335986630028045596271438890038709239599389467798952868799360306155294754507141108217276514088531284701552632636472364775991106657091349736013419864839921563732014431601547803646551941310676618362616801180813540405604107867968542068278901279271523177857576586129665893103511286104564703993932629735609548886979768542886957001842788695211229880856944394317288199133347282376000084855703604564647214129236808915432036712161092401393677206851985736046019073850176712826786822209628558391338588476560610905527457950434550719405479532704574604321881797517820076615490202437291730677655497395026014532497538935703719250803231018148675029523920873462399324758897785898777192410012050325346916754354092652790364854980084406919548174789339518178695626383771357743842726221713667067701264632729724529862813551129041894053571784365107398081237736823953936404193576567950208061150123222630227622717839341379975120074125920433949568370915652394815283908144235808859353519490997825403361077482073177245307649885288370878065626571006349036755569251855016352826780792968258385322313820167785799381767668318835597779145547237360605524092399109678622935886595690046437350745951291272172493533635673564959749720823468782972341513305635728250589497736285426117687348305085366421802236785505865877566199634089625629193595598073041276054635756336623370345345590392417487928207544131919639078549182015523815479852223106078411581530183559613048158966975326635793900258414588214899758745656312259022054349437898279024487205636587511132182117983510521901834278970595241603320191225974713973134230938547124458673571740844015123969925520794732909904790260641952665295389910066314204525527760871680773269097651730524640903785787998054379782969359289261393702166752844032332120814327402011008073433783280168504784110018676491104139282949787044994925770609413405271720678444644617518536950177713150888732494961827337058359023833111002390393234314094675706743615211639361800222534286142442297631856375975271569300631509245361696889648546485779181111171185781891034232784078333095817023120431118606490640618558850188972105012646710809058841962970790045838874850573224555316175425514231644177805052880353659591547167130144493065880874125412369947528233685336280698382943823682919803451636938991817593168395745002749959673730267261936685202517981839025307119145618745696315617130400647524853015412449855527079923116473317038935053337922199798965485022746349230044910474977773775874480376241453795422308677711823674679616457613192903491540943123876699569344713255359048092397924659229381786149882903125306307781986568345225162458402994140146839660323813526658767617618109395576606886823970233022642873236016107120571764470852802914530174766604485826851118305586334266389738912171676874878978994373564149917509545609443607371463877129767687608593543106695070251389933368502418912832975316581448775498614454659102544650698436846721652221800968243996353262790416767136520196592942561893598254747871172121575991169292060591688182738083775975468282867447047970877677470425867814025214356396405323996755728979217593215093010488253439855426868393481474604492082570683553890610914813173119782614212758292684977077266666869310184664416316963160971031169224350472969935336002549433341367009943774055268436021235446398626619083354279036487977888828308773041229926737354118442213148379249624859462079307939935654593061492185240756726110681035261029341383036187789629856941498999437347252197732433452228974581401276242635645314646711799376975948710590573777672904792165871721891564697000338398970438289209519703580182586768453652369917617734393844645533890035277336823590748867167878132052215058707234139604494299252986849196827366969236497023881649693629248018631461185866572910586049817127014872210303710694175325596623386347391844238441421767516496819528900727829485104445528581675095432169904217780007453754829859739272528558421785864302283306779123291737311752699384479920095742822926385605388289392528882784608084034955359119393038120591430548751851613474526509559247438214173151577512289885821112283902659690004971649018755716822846427155469325741548905522205195759457500449103889838102786015695231146143076716591195519028398878282354383685739984204898598302542492182445759891437692157661813899950833359964229203822544768899864241770430748652459175499396217447596505166120747941554984193704665698197904497895435321467566175562491956649220157319066917645829630703110730373616146697586219754110657730918878543991820235083324453785760486239857257963942270926908321402313872945221358484369670409415055851483741106632849391993998581358008816833187394585925777953160354195670595882574996345589299033758893730589264947379189256388265324376703572085206995211574851909452256356339228206318060912569029682625901869539198334888396762784297434931967416974696053748720067834973795186276027043841163709683162498440077919119238639080446294938173920498717457212151114849354027553424391277224131644012000039388713132788644465811463677835626281828088186454432651629011022550345234566139648201476849751050842854943582079755488776535401481776464239542242478032884915629286145036293614923021756833141744563320368520131172065993071232164066760763747048217289706568641142026251533800448227054223526097768877094850902043953294833082611952264750523637790743613125336096444428821665344498925448586600829628099473620886870667849463529701934966059986056225375230189985925227913519453970150186047846041068348217342773393622637573862999592187105285870278727986315562860528348928306565479086385349755968515424836495713584499223355542025661698350460445049480772053044215755357741549739231018680803248623552099028770312103100791205596281250148831980620062430499785077806128902092085340967593871085361233035007856411861445343674324674856155787199090366615187600275741104503581573717077263147966591078521906852593165254260755021107999625497172147845258789620122764306242069321132157452333498858091836917951194100309105117682668238905545137161122205750680561622147624609671958424495355208018846368348943775731506105575232054857085801426047873133218396050997253344852679276163782316624836878013176853609586391847022225781677386063720751698938415589171050638908055196237912697118362725977902661520942909781069409912879080917814729521498127171632122181728546057282565143550192524425411398651623193972463530078911874141608613730043599076301782296879647877738544819273926787332495694879384471511686269098739874848088477288372806906209417081230853290052685406066169343917062423542873283120173012680007846862860137109202245716707284409352107093702143772860235348796583485610675331835577592924535253877503441045099042456248087722933700226621661732514638672185449162549560458150346751856459069303304959836101551949264244534805077211357207753777002293609978931465270946359766936184895179647439557363252557630899490545712940555877133142294997809104142509937559539608165676808364769947468225147625004450461382048744256802906649443870002912915794761519215598371601461250809772197982910898397186264813661410323319546105313215660290754993943014419889499801925427444884155236782347368540749035049124305163870589216435389119596369314166873077898204875788552774753508454798684769842938727170114552600169504730104790487735169487221511833412522575543924100846698832052947287826234751998845309621312787241956007769722058570621243185753506329529823257542473891133284687345003840437899781641868760256125875573800771343146289770051290990418265881393923434825365797858155852637838214217500538110923717244482851990742672842926024353625535673681258485027632995369927573648555404112948314680607908519941836445901534685359221158639585160388690426157337544143657546760673143815757450480520240055102907937252388961640341603522084158055674153973824794888095052170637007605494985810179436895255362303889371767166125831067336723415110527415026231930809588877762169812826958392897207159635192540651181506196500263074155853980863879403893369928353899764450758602503538493319333908803109935910565385041633036835448073046603635402623202068687253225808634556374254373718912222406866404499098127136153247116535887056178799029174286589406902216459500991524532372132619785723865964834326855618048220544645516925788154846071809198538324145602159359828248866247948912029279712156025883360562017104549668567871239783650238473815148389208243990917322065295930996091851435876486530600739886382217612051018883282402367810451076390684701912235853588400038603955502638630409583330859499064561976549800893312131041576048816599350283399931354235351397067457224852534045939649701087410753186624573245789027220418765472841440581465965081645888623620917710133825926638146115336789016965972930131941327803513508070755282938805128115208243895112262365784847394565620266196246734758948185302106242269343806530367042024174392061275673041103250633251958574414944553938977992601812631004405229196991031568121959799030067246326333208029380020634044368810781572365077446552958022260928845862992080675150155784039795611716349259897863396878924663579366978844938679847464781160807723276760822411734306921100730496328624257101518250217084070827842134133262653411526690351668066554015280779041372954164750138840048030899893429667367992594243466567479211952095043042076108720298057065876047072730924772834848650006333934032873368644404513710614771600511508131534778122182686029847318461997471295146432669059516491868519693279311051633107145464850978196286608699773888046481316772765492042800543129457195972909189991807596738065287682226013509291493242192544290268527168258473058198727446516922454954479592047162382009658430816123422353605199396695446314323455422731380433199084946278524984246529193567365231979224144530802146551232011788068074465534849970535589240599750417685596321306184336469905533732980151116986515396189360642328446996584185429863897330116935228976273991220285671562389229898177682909630375326997008496703839336119305989102738717388876779852518991610556802630622262199027542555933401691040133083276148757184411230083958198537387972325627981851804729326243150389323181660721891934340453276826409449788234211499249232558967710048286721352963423529469895113613230551530980083535442667617392006865169524621394073970133892234017800510943416796932948488741116957983821135606920420773725177074816345964923357510269873090685215557172031642495452750581997439862367117074693323175346909698673884220038359970441559280317172952316220285654358625491356209276761630987822226486234037009809038016723107177602824115981944130283522739017948304146517640319173839854608097504752377761335145367672308534291946741947868587607353970811788278339583714936790145002370436321374888408337331338124049077565492549894437004524693190837083721617383930662690728997349711077458851166094688791716737748028278633362800300747532334997668550226875146474268681099722928352786288315698961513920701582624487876659387767921180220513958806130923390196354094867645483887401378848896588345463234359038374038640472028540964070552926359894085835751259093335238240102629270704206761343520112663855685014967454303489272960204442054387193345864178216840824007330002494199825094704691633701323592382692465052654988651923492501279351018899287662132958698477378888076179631333040261698935331787056757802924027222931990435255668574941691849477563486567346786622498517157037292112961048259133273245888342930679788539678025019415866716788716097916308686160209040131701039664788746983068076064813260405740419528717746534166216598007891254741575401128894844450782972045795900339008505230079430374061715856798429965595167200566455030899058137747485735154746534193203098705087729808182040696544803901299026229769204327523949996944539406133017649531223245747602576419748805584042167721606317581500034138052752578719933874810278867715573776667219083745777127972326734677120632172449380829090624635713801732127178356827238366858090108255944824924789078268762604889473853275211789267891280107037054027067076368512321092111505072414741065855795335562067157853108535417727388655666333759132947184275479445798781657417481380692230515659281733478443395349373845122386582295522948572786308893492578554774781611164648119099758193090802644078940477287320798358460650897186244478275723687419736215087145697326879996012431244227758048875123580256211039520464486735260643213458743942036893170583340585046193848244977703406005922991755865410885795656507835645931390704929648644767010048994494914092245631633179529054939522301994195983228355627825791193967805979525512733625099885577538421334305757830601615969140360713235270174362625314515468527940953045057821575522593799234729373406508690559687768563646330607195026163850095458662347257636683688672889243382367167122674116059442282213465434510770419198317211306823437911040948965874621369116434284920982772700010380186196202760677115266155950080275633760083056838184686347704432093171602272726818009456383908249673534552385265948923062763803895208663890725327769238823435612794416071252495650820952393819280898980570088428459889690534242876912704452520080249822179605630415941963838467752338505907391412821699763579932091659208504082876744906297991472837658129937006976129203617601007000705651538759601838793423598465208993994262678573433394116998339183026558055336278063552915500565314099031845343138091983712203240355963122349029340799889847724565970551269905148217059107316340136588710050410818206081089284873576128407847558386559469539429543397677720070415529872051096390041109323925426272374091309858367758477737470054656724599154091812146821198094232887338684162844461174237851793975303318008938313640328139032999151924557364002245720234181222236780202592187213702998324123060549687866108871738551600987121421923008597930592457034722393684134333319232184242559266381740665620089073399157836162799330726035172875544593930769373042996479322450459278400430134391968998247376285290095188321152274829240490447798747619729605165534063096448784710394376976504746718936668870365395280848934585861196892814335705175469606779777037739188258678241686120812033634969495882620049087284278669996586034392697669406956601214550559640397022861452108607818951241845702482545567854622525091679351277458672340033702898347569281043610100544339148079799770156371172115242188094740320171012378526383370512348273350379548474608332501392099830426591864064536715756916984758608821097659269101620605636728347600481792936268754907532775093200028707386700916134484541816789437936526383308405722544554268277213267823670971141573806150743722129476594295597890935782680837866567884243050469736805773381593844813977349276910416125976825736646817375097168957886716841119157019829982037664434563880231376423930729304496651906133987835608998117805282003109090676554761355888488253172666153049701795774710283195711738115785580375860456193347717104678119114318176827358326168042860425873446038765097365831780970950634360889392256385690307953593426476005476922951475878981500335143623404747208298581802086192643445944986064059231802145687831221133788602768849072290961605784502176758795751624969428488329890959303402695055604470105737326363828914143028747395130368249096958746371249815121428516587398396997795810462067307397942730226772216300186001755563381927253088741550732070539752142715173107919678856646782195990453305259567919428140504843143017194131064961830225760679936549954704434478240303078557827016158660745998167932672275658901101685650822132713989421732501314200722483824190792591502714712332239043052215472065433075690161257089715086620226420354997640059564344317489144608685188956502883177715424326925395248267619175821082400041968824237424070447640882556229399043691994272721643419202049743273480589678660014526890198042215137366588857334798507093292743253135053482053495477639340376471196163376619306074696028281835041266544583759174564824643596098883639702282080967939573877544886199745743596016690686042952338591210234545346050805726597464785637628188328797302196612581601082801011907777785908526960823498028387772207607274481109033022008031183235779122293193643136294332483920591834700537019131468813219455411291149589954503045594010156041691218209670973346385367543478027735575852006030981527543835897609712452583071143737713960636426266013064588429346810487929900422179670018735944346639121892414231250608432556082328384668438575353826648231071787870806293907046012528930477127047313100614437898646264907961117365214861681150543894121663707232084652637739190728583627121640918683657587271950536756747902619473204518872804030732586685686898582617150109266591582220088958678000711738245209604318914868485417484063874403919440265905539921480148020057030799094033252891440834648017160335413375190722104697577598964504323603509870333612663634123002021235755838260758616977251972101163651863463268820509465941382083573488760953661740503893416362172975794257595267090913346748611085358199646416562302438258353557957918827494679645320732506899031282116464353104974498406314712965858269934289800298135960388214199647064819777827317287589683839797688562426075737860542449750517411289347169087879560887817975663164544907251520905148984728854613936171422247841328347509305344467764638334327768210386860751009695323911677335284598838479700607599290230083712837364624506081951984780224625575951365899174438250520113773442591932326627559702352015132208880762740627589062062637136838431996684900291831620463825256340141734123232832284140118007350100135815202017715833449783999406825766156489372080461086016897419692586148306596867020474685333528387537497613307675206421411084084394998264939161617614897612012495672246546606118680055594583720648912215230350257124745465073735646318872203567425155095527063262640834293236914384806140478469241525718941666833330804857685931579732499869198414209175328791427336912556506702284143025728636398463558492972720251293084711505685908560334152571828103106438899756538932997999074473282836383649150094747504589306502921236241760868521579729096458471825946800614091875123477339300285147134967947658961882939772426232008422979383192262281252333490884434942046134240463006651886697235270733065796441989197808144302950006717242432352728105643762882752354386094216151648301566310350349339815253974508914184911133535641612711884343376041195599798854323755732125873576213507068339234483789640136411632648404913961105701144769538813123562813420633018745948843147634357911809877220716435111142775160235004454851389624464900282990150821893709941467635251136775446209718139832695513078381526172869865855712241211450435953467767049973592981801407325264038473014821117014683097374025047508436189870203135550793929499737234305690990219281563769788056488766985366059731647248451647213067336582931454751922527765652245805702748760907203790182263348671934595956410683547689768839884905316988597657573683908469869905293328252461920698320191284085939082101744456849099307993761657374386793129939884546254483406051453318789603874449152226846053525527318254734717535327326139972403820955852582875276827832327074362194279352204271887008370127134940232439738525749863218095518424113433220174481694419984855239208268837650340060642573820357365816819808421179011410010965211504383098100325627755291839202765023411527974417722161170188430491169673621741098614231806454928504789497731039935708557430640528702847076749261627500163220842214322583060654143986919126070358018614432033032216308343302922532726521529302225971329245599030650488785682782108750660284361739789121172330051576564420628095188298936276007987531392211839362300292690517971269982805069758307052333733305965233201703013409991418702748627139071925088805451415284997012602187472158139741204885022260822758083022054753511440031258146267934161970717994054002020845567805898116191357658321669339871086604424668269567514522984734103034991448985657792396578071570866928692282156375656914429615228748106933994289421931597824339885818041140656020600697543024977539338749467189081229908058624605057473249139949883624289882953005375323267451161116857229573772148242649578831343748602123991081696593541840384335645825746474941334608395998888474803040437856959260941874091818182478428303804252616988909284669095367061134384104960141179438610351247689276515230832226394772505241243155324465877515012321979693248126801679988897949021627136995426074478469642293629712211859715218344744933057833500744060587796268112467362974667200162921424218235327747635072366573326434012861984660614898199639624216943681970513029186049680380550976540275637184210471224647537028105133704329612624561785886606226866309808588843251792957087106765222682844610903945608878715685252046432507692062794268487763546631302502191660851071815356798005317115749124332278987687342893797101615091243215766212363667203151105944055292715909749501613332749921595077552975930038025185181520708971395917347559262412766659716936666819968520852197679198315357493541364638448303297714248412857122682446159948272188494300660234585957248365514648073359655500615316820858454840259377586542772237233574531348887215050624174826878446820641065669202997458369464039607326205981700355539315116516927799700314872397647610466196639613997779862595161052146687814722145040235061697924778076979525551603801620217654865422515422745570967731230618414617106869496332735882175942925362871095737409330840167895878187807743659861343089263255207096288247459101616603145259841335971621043739282863385573993753650611591440051594865144222106951000097321759570404794337341466465078996390635725541459384106169790547407164443192874685192242585201068189114115079594347019783909380496188879418238716244001467948613223062750862854688618003966565822008692077497873201824389249772077858068280391402642807913113203996297275310548465967664995638027430959501713208083617336584769999495142033644463633088090291069658605574780023489823917266714230581702161206888915819952255151486456840165344048559632779864270928090565797266798871928598836215334443723994331758734278853382147311969448486849154209747555003346905271129862377251549997759554859777060804130936207564394287856091949502854734991749868156404693214402555434331346128017369469013915729055723818927775372926343318086666408139041398360661579355149814138090283622235193383283191976603614331308059430649588792862186132151892906360976935646665425329069056263783999166026583706048343464205066936048730617699201808252420131958357370803782980124970039462031199693784452403676402677901640669088191624528329378675375904443963910051659617522667101068328880367650925323752086919593455761784490512981480121452163620923604088741299888237240876680236356321304806624042275044637894313152095684004334052170844034908098166180885242639117421921498630170607617776146627836187308799782798742317193932097828606591270308694384364971539465586926529326929775695304522876268333170728203980666163654569338231375980230045897772302825673473213117598219697261880715343858742951624723518425603876038515344487951032612345528716978645872868971027402733188094667186199838434862224405625978375362833148777993812291452070278957635715218779733462184050227237357565877780140272699147861786927878286091570786766117534995166119892113349375572401470913072077179728306506972473990712995810353465992947166250942840504054911763591393647696032403369248429362152162430491915213854348593052260331362886155769665395930013497963093474158167196273681636129396409735599654747381028501179167381085515087041602100802865206412807710834872877439510956645492941422561890651164616232402257371249246740848330140624400792252331475204212299049842928890617173951022747742017479447361537313783684968650049512007230814422347158523721538654224370935787309203784160622850648018598851058920529236692191050947196736690143192986994039447644679864894854480959314442382580187902635060294639825371723479691608257482527501228520435932226264034901379958263770018938180519335560764081102971315617105316344611370266897199470403526134711429741928790777222976994987698072357317080367521224029641000807671900125897815962870678296588004536905276743325415982245287142127500527615482950408674698937838725894466236245530862961797142484027781561044552568236903041721370698905592071072391874171255490162841716883000346829329321828111745224738105087039376567426122234390232874477284895342918238823491614365783358295446580933399433420350488167581256475717059759233930003399294871096226124477503496701390471966096982575645733777578877261750665411167496885130666403796577464386189124146683328905655447740206855474304287252280091129630893306919520607882107207313645638880855738036647486378880546345395767810096128750903720189832282222865003475051221606271765046897459432999043105733881476617305114433232015249499803943087027937915808782378523812813697512091070860222194943613286080707215839913665662294625350433883285246978167695896362547283205723640848461129466366629586627198597450603785085611648913678729717910635723684201367030916000166118308678479204267699584706512375623581630846806563165985581921485486914032697918814294255443029539027085793764548522130146181728888043371210476355203057833233335952188568877190433300221169459969360514274175411322312697443333034318373326969649127170036948767986230619040608941133873553362321070092481074741722091755545802155103120909248748527554382113033610208349492577976953511785954592586593883378035539060177538497794965652415646481710606319622923487570284525262347749830950806939116205471510891972736720021051867767952359906654202018078239943856073023074770509991255668940819499447417900210438453684370839544068134600418952721926419095141631943515054582202199478991690880256859299779710965900843886915253456520646215403800015419188236320732444766761922692237084167277206203813600813567960967791712319187724899195353026817570658846839538978793167933199920979272434550758845293926574086981051336617413456649035237986291447324693548869828822134483952057106784821313901523287258129303680265387321702047196224392224860972353771822184581524524459826777200728373338640280300464515473154325154932015972058208588709784335842617487285617213041604175561363808579941518216904924223744244149209182861682374628919040297901039492311715077368922258411582300606182320511538687002348181862224540971698566605161623496877886015849801792864201259543839508724582777203095379996400856745921216153945495048029100717037889794807302209985274026626496487859584221730383194350398651353822662215915122394199312834385284055220862725456014561192558289689786411560506478334917332527456310114924875637200891849256006317136744590588676934221284218729018927551934676600130621216462490210754787487897051493582349073832388962995929534778113855624823466267236757675959506232243594409268072565743184144665167985735170636125474863708728305692219194884877563747847175933735957700623470528985673829133491619080289088793513054033778164491814049355623521883679757457729991180759081684630147375759832866599864434930864573896728885537030182421853633193137873613306307063627256021428905575533902227498224341325501296039901654873761727831938936195156956440958421369309670815332416177083290783393756168811335390431551802012274626972419122879904424215062094862270926347654254999197678676902770217111438741564289608637086107449879315128925176617470113395420418005866097347766209848368141440622892744840563013973727319484482439499012239689004953017388015638662598277894915555126587418931271943981018800291301306695891945996860412343637476504762576862432577991668588747427230414069276870088662889251194377767694910939732365531109639138763919133765414530452108161144765417495830826814884841250502007896883462910488135688350531240432104727991830035665416534079802677085158997503990807598754025267798730256270506652869488003964989877807185996382323944337015974522942255935887855499056209245418658529613700063338132350224596923780367020883959093578213999641197784794270716610610679942164727843988286141115159180517244085615104962223862857567126419168091303633465216333517519049046784016997791622442945403742927862204422348205890060105899148716952458585307046110000729616990715799877946382210559406509235836308665274585212544939767427390684033908156533441723139353077696199143911216741733592745766326321094536758507888456077901850418179932853881637089810842395941644945468879151306758725276509420243807872970810642932421783690543231162726795731298554324771509545996186235201119384918578364192740698628669650240645472188917578725593691707380612243821110350541147034243426940524553412097746101310735291843011596143384061966935815471594103376741446765869000116520619493458764847129084372671271423763897023800291091081833555997877896480045345923360344990478369949671568795588372528654526598698112837596496281178450973784571631890654094464515388680701906342991997390291830252445991383643344920557760869197185137982118046327950657194564187877775364274671222643352641317285070280844506304148949801013447439695478084869460658288445874851142838717138846033241658710968740005546430504332067218879149508155473050593340518664472300872859784215318287880488891122970729163494182945268498324561482891003345181324667200441745328361337265269365013817675358540978667416855900501732084523331893628716688237586478399666227160607839817513489699354034727410021714701016862390652047004325824314550755667074858549972799476147496353674038730091895405391068817933421521013367682326363260068063488037549350869846706999788006542305861027766267652514927718821762417514706966228109502401201058156189473085669602462417778521177168707273520491796873096097433006062190548935751052034171529250644331223527695952827599586413275155897618826835377238704248200134680722842568230769310938224505776274123940729617862601871687784838021491823720460583802653279842262844874533962633695970475364215060850156676422867053671030265928974341933939561322497569339484187922699016049483850493840035415996167113158366252637245987562759786794377920290325623804001787907632058974932672088321091601759999325079535984940315650085008223521522545623375849323403601270290648681356519109587574802194113711138521178229332843852688904533195153546010810790810351623019869516020536852801906450172867342734440502355719928862668862951105284023098842931902021791343048816961647863368650307382911552857163913995941447682690247923661865290773357222464536782536395343409430451096277334250991886956362007052179985314341881814354583355177003741090053610292170950313007520205243892163292558704017240454947190666183741670749957501590697518382293780245693179006294714905767184064695912578157117755118625462606874152153882495191597614232356180087922560376317549027598926990407789803786434917412953571756312508204029917078957511850513867962043060748593061586399951939147482699311631312719243683140603292208417672052142309065844033268374108417733276057373064645437415734719214180768675374585467457401951068851056120596355701712972760538846721682146623834561056482091602513861932352587179374434147245436568150056341349980890500272538139906695546170719857508628402481759077549454256663100244711328108349215239568860872479843975736922958099489671213122814613829802801420366833708392125335011248540535684319621837460074027298179346889417606451140533675272889176622694970743027321677136526699099058068592931673663267401336142747572597351318241687636431954581808029379884800686599623287466652379823173853503729698738048618159856044671297170859951677377829093997913073840647481831203808441244792634718450825475700125220251451251091438206045709113101678503134540722019627006931698471151768168631972425460962078073593662622713781724152010389275306340528778747172197116512075653175367294522934839763607253604595802203776627639054323386378201945709217163506599066929901484291350085647151040409874863283787966164165334159765195333968365234923244964323033141084255237802764177690310571584391069524138610301057873644207196987666322989412202721397136420571345863174325391170078687435088881545190504012164010014030121361996063467903667732735841684346383270051729623227748829753940852353562061934153558549903707486069874750700616903839286944420933890533264288836615697114383042946930718827646598899807778044610351385397528733220758728684982783263435957928696422227487740504136875953444448547558539058923462291519554954389130823519450395583257231540853660789426686771416567455610297443641289284573932622005208956608020136753690103531999278997694946647404905965052907720219476606663556536511300526542469037758894687171841327392391091837685910999397156953589196685734847009054986992688984658579563111112212276822768965389390458505434752696392871869948114429502844997728014616610886816681403572199016078795791950479041084005617589717620810158225770492805699615955142670612225201436542101076608406537527271793363842048047102388792194074905171474243202462672342856755574644860150515774241986586136259260303366327192668849274521942109796651468751193281473647280758206649542397605927073125659663864040251582228722957665170150314361698518217265688938736047832689662560974360070469970528799994452998476866232556504706424805388722408759736507097839077095610507123378541853338984320268636749236666052099518254240247621128506088659719253220562069820888921263051058629881889085815760318008328843393700648966538174593259307634763775750257132233172748463479452766629024484369924490012095429681314606802946745466736621480489465913022984517687188243742239913764434527990417209308979768968872712695862058155581477812109427363753426162604660038008990993135443616755032341801578521886536971742298105026639571770892630991284339580264752727244222785741836534663504442154502915684992935579990705526832127811869515066401104136623803856463420104483655467140564211817748379103817143875813595213431898802348994546636482749011398399546393509363139687180203010556447622788962880082109404835069524181770695820632759664843352219776878150763673041708313381172451309380278346944740939962731999275569155144226745534322792779147237309717792376968781800868087119854858629873364868624532512338584309676133909930772514612002252039315541861231478164738292529946446787235368215284300853061567070994102067271981161485704604104605467152001189497987437590833189534056373413474050517409721906719936724842724620245609943768812816790473480410769580451715868192532651961944576258588434973179388140032893279886660803857453807021875067149010645981748269803723529264921352765973613561524784846192654819124612995845960947777572140942999023087711124494540674549561389639344394475652448908583235219598623862507532997911397006736298147918201946709986189487454796800141397287647102804187061179710010045757319290384467188702130400109976730212564377937510059233885396586148814891023802019747868831570632501199660560302448279701577950727595069458479533825865046698929488749541216315247078246100933225070493882015466635580147666115411140552137991738325777338279733350673122829555142633692985853600072069587561059440274204728513468930116386405638868040279201371297398254766680678686919995126294862584980128796251932375159019078551581062692069452840173034491288055248924317007966134801541559291917022020112555509404918715227120490342213980070012537103820438013487478985214479902878543729716981380072494310339331048729883406526881193688915326010720133692565049683216026516935820927958534205920549103883098593573466548389315277204109254432272355331963167875190424684357697164417875725666025434583094053917125746105535974869575052361182333041562751686390203754332704045536988193015600442035218504451139539780224893808321004980296412666757628658876691797068507879646667430550304137928143158091588656388164543022985122691316485329251414950159883888693084562887973577967736708481214238102193012417423378240474033093431742083421000922099678922180908869137701821677533606633924489033400727230599179641652120565651233706360073225176999882693717809659058738826273769399636280999272762919012470901580698087224536789800610984594468017052608190518273351771997651788538312528039062579026264761076459790926744702859288425801877881217677374541600138504268271343627312201877910906684267098189552221881542702922583363654821118312621759069155655670799009571385218784963514742942888436241255183906161770082963346546961597175474747485302714110471806744965261158683168115999223695352293357962736268215994564629168362306075147382272606090791768339898462037432368539876619813082714996468577964327499478925818407753040659578056033478045060021178854282779376599569854310637008769806166574682234230243799355054343466812743612638453823113712099015262859382395280389151899393363129739766548919556069669086579122284836394767074467948127125717948763503806062998111281041073565919534216293768991175649179172219740254611204836846549895554202962731258441315188863425138643630922292816043654818945005395940419106026880205273815745713335776460349119021264373323785918038616108327488426944725818149261174214269980937527944647004166542597378603635283593358966993150609806963913252772690217312303330373878891511040523734779838769504689344413355214905933932480040232428341725122080536186066468938028936384213232877129309041790026114809643243285873240516076521384048090034876377376595401059191908928051598926135166169824410453905238108824396412817480215530064354021500020044455828269172516712786948197060167297526209456236317766242858324138461127380945901245755464483080233054216369492927205637917832774628818069769812308750401597373877600024279736098172350542646480075896485949654934015367602642974794041207088677815245332875982610567958309037985590502959284398454069384727839941515936740732392050256047806093994322559851334154650780462303178531615421645129765434571934854078997933426866845340842605494763222952391333318740277318359889478225759517492907399165157622158506216664449724469679904890166223813478483394178134720080276487307391965089877316146874334861205466178863435506690432314440927396508959664469687734222253437664321365119007751940688970049603823392979212963581717032950843821460307572942195149757944546768302123959551734772338176169226148748193199287510664038920107804352546756162336547865990084477547467408981749604479709931238429745398050508803173615692585614272236318929974385614090263786995582892710943086034245290179795201845560591574741986118765713686153509796473233344987246339772346648196353461871917717838843137653053845052630708072576497890323578469125274037272553195280352756046655998922508068479895989241562163088584142778691872935462704213498291094792750011693633312874770944873751198900952908390876932786312891669778262850055604852605357437825989371157688597849174063154579459244919928890179476759524960937432701011784866488080235651319058975046285868108690643128021112966723293729604285803658330689571148386789595036753900762617981984597641665582169490423834080549804123446290484642104694880992287597983504437560257063785596675762579311301677156602188098126442720174237641663312909772514156389978750356222725689460962782439741891688874369668044908088281941233894264971756771514550622040825930651444200628503211072560773956570399085845448955646602337385844151860134367709873878130167223288367752359702507660334739699060332385882719663938536055952171013814457348464446730523991899404470924932253028642608650365993188462020235418481980693455888472425133327725977607289768094298962979724026182525330228039758659954689640442697247838688646257392872261656211250897213117119633909607736805678512976052509496306193815072320973929035008645387657065669478548411252012642653725624708544519534309657466537972504385373700098326238878513860722370739167751627858666296231299361443458160742445855461929385914871866861121872028544358483780106711309687923834024230502263378690884866843802289479998582400694786238969115038425088915263451448591173551247166911151334742583529208567064288017805643641459360073627519762566043905121153944691414002470188569991276911202352690911831139202627711718267362513964578118249969069139506865825859786787542781811471965846067304079424031406887020978844647384299642255374737859771131453985044963083619136941803500384080264314184850217338033096288976370212840811843651534151921003270020935143020933201445551373264673381763081269703179603675128199937868024541497343006738016726583197998574982921777725524077127656431420988898441691532511327561459272460327061106740972629190883639727547372650683148979387979477330266431350910756259700936579492484239859061445272158561348111367823275141730221658127109289504166393844075307383509127320685723098823551988986217206147856185562900589558743842135574127763697673898005967419259711823141293578337278426761330781185195386026884402297285437190237677893871753542177602727598373066908347948440234864378768504614707812224518510441506604304481071620163675877081414749986985217304923026761448275916464435996456498681585420436966844992032933628932932944975408409302105584858923332795002599886455950886400540169418556508588691161774547821628344238003016592090204567090166611015760949792760820891743995631504059057489196756919079354624250318141900562014633192162492366120171786929823652091823130056792392618442958330195002500683508394474190485572936826054248421546591741902701188159632508237711361922801505370315362854882650815257056639258523596584862863183472024606927933030415758899675612090302531599023450154744486633627299384775386729360721348885542038506538835281659972327202314118072565247232301312813817928118431616174538669378620576795437557841608352481961521999502697083879082865341564815187808451449310792876781095118032466551728383261279385257235592181364875645246059473105677257145604263538511311816221500216911183108927089925817780465018622746936184080561196713877182975521074068159166281389705435592655828016745745812895431135430090833898650691192581434406576403094218427342792052691077528072525284822249993552684833110758450143995046456006868670196967873084610053587151499751362110149917050291276764672207995034808119645654552514847542419954935805273736380016422392833112106246448848434246905911643983346374989904900868907334407149111295114799538727388951069086788328523271521639525214209026552437031035807482055244258153956344920257710557165261438932394899374441924759233854417228554173646851832854539688596113900508220138395676458533998572200876645270673006651425670632956080637144127417166955818338372128659436275570910155063443009494138319589906742623862451425522857184575294170602399412577025717975266123705731366844314602614763564883545317656323973621104182640760949489574815883668202695059955160835589140443731576841209667864623976828092107118046974329001983880033330265247684828894672046482535635645673620469363082284022292943788644091622341734887567457229745267660850879372654890789983633576612514995979612125304823201082721874924628513359867950945653720402197242880793260213758300406843461584994070784425947850867661967668527575471806790554430527502764061327862623708168965895501975649552286079429035766918143569230649981313315929088654802421842867019485706209682593306301794178146699362294441020495152936221979222735886269753935763721600969145317303587567325451894048754907008563689469715563565759901203187567966822565114931583398158013769610440524865436992721956191225611578419466281380747062235951974725821789313119884272480220152882186956372452815486247953953335302105726281715058091089074132956042028499165709949554887483321338833405557061179737072090111756088645211844652967247028592915334600731221312315671595906383295107317634940416910308985144528970387136771699443895155053587448942713370197759271427273809997029630181215657133819136378627557923211917258815463995845437233145276418802226957357539760148560692375020058514756088460009575438390291222929961611286693875162121687443861480384966132341468084477944953652500176933686640978970172792001713031509631082250430502513399656142718080495851576553764535675264908079118513614588388514796859080563816187030786160198249535412686693092925547595201740044805503711274212103912170470840522667939459587150340347825874536857633025015636880623884570720700168133795555058844984133207338335305754677548314916797326837365846051397621135956803849377732942010050119548510663102731238381458142810930924513303893535495832546169108451636994609848008482477048634542957929983470939004947189899083874548177078303635530738781412092396950296532812331608980718308714073579657702843718975563604749337068637550137978042188835557282313001894478559200395495008790900423050819583784786519650334255199725411633947098645665007303651659207888992237754250835352898085806909059682002131509766136376613845723886808823630775475962204786357561972350282634988748812096487680893190845112893957116093605258589228428699771760209351073382259831606095929108407882500137287946853601801219859922829981065553538185839790462286668150971870306814626040238164571771736125743283972702043819315633327412822235920860462624516142661194157153261080742772514651755686573049869151142803065897485215414210387617540364028776181824522010964731284010565399761300355919083343123193618213068933272162429479818252687743131064847295147230919494580018866517701478239706385629008413228003101445007457309609487310735685389486469501701644857879792670603562446010540312833804620765303610190185876891414967331957846570145367020323697820499944554838051747099843970693505277667951864220006527234964642868824018958168575573560266047132183661497304345135232140422635835849850830612193554982215950346612968985381340603987577681034127123213971734913056110462579919582593711853352063291928083366673444657163517143220544817253877825856019299340028551691978539781022214526455937762027396201947295032839111021429043464077355922802262045029558766586668250340112836732568983884956282511214665794654976257685203485556779542194852610383634753537857971508806504017809212528345293977577097354343440604042145744644315980046682541305950299987911971040805858466101008027273475896688555348147972527644126055187966393150223734808285111276539651380946508885321801067147173044652788607475554094550388421363476219318686805110036643853580247143599628601008489949647978509102435257999027724091701007817793453948439885153706018231145151348842103314753812649170812366830045782667257406289797938641806301056367799004970302755536747154984415117104734606163221484493251995216719996110439159511257593005334487875829261113459679605078863632309762896034609087172546718624803994181939913586570379221250622216946089863622265852285259676909980078924372071568364782771695075219243105270981655725236569691316386168664889076575716615536964900589380952097750472153318395074827246849914098238596251103714161249642131903799157608738938312645576014478167978891413528791348548840169622481313545446313909280955912274784102930830677276198983331073829231463763798931762590471370162867995783037828519778593362079796796822761387079891073055239700817724231889660750327389261283643865361870298437830639793382220743666097854493325708157033951519980579984735278996268474341389667332564820798322926581868066368891130632876968001509893254078888320314761033957473211219651226704660479532406094781270653055175309380981218823886193518482079866508562593735007743895438016718350542951485198488825318505798460500647741051816545404269696379542058354801487514418487142163706342981125410729720240608623220289202998252522310149676683062546458172271722040215011089710911718983372246257204828342148528405058020091635362377819270931080433324827563977118471829470323591857286585532384030235120877879186847089445894137329799772132656063461745035942519389171648402342762270850413864710372669484209477121282757439047770451463897353554985285215928836061119836833077380868205996332697246217078237772552612880985415143165787483258474787842066674881315037188732476623556707305562503151793718824299197267449894418977615925882380567163518139450999288996384647357116473170718308769438713041371428621879201062267527978558796785587877556273069093625539188818725282816743612243932281776484052962306538942500429403089523025210522143158159001277396920688833514416571703089671682591841787792362186140042820360628533753581858029018001816973506099171397440778413039849969234728327929268695686422194089020117452152417872364180336821824661083582969266699254706914149570779371826478453164635237923746878349833884312409444192707193348887734344825754982763207887427029837573883980621124337210276189018509750712780552964948062697495215863666960720402920626611513427692138127892658593336185773223102558040852413061412224967451155538766445959367637205881617879509658343408193105415904362394968703748360269780537731373373605206174598559499188805734101811647497808222040410171530653033863228456835554585871192074535275455812109425880297553363132176530948744319622562973606524516655961982536919009305817561922982116913245143724827119594982485216707411342327073536305902743165182914869321947120142244319176590807790329540411667128827172304890715157173137266872289731115946691358039908417241191500136539295763068770811490150693434472309671875512075017626098964998968871791213009591499196646198540983503832388077726745786140214621950317257521029911488090717863706593146532480426204103322356273510786671042046502678030355917384850117176097788999197155606660747976423108779752180946507907247160906519117988275941232962407931581838545866292820774391415702147859895121076440402337352003021952236710084945834229727507102150143102438206365137359515939752576938599108922565810362776767993809646213236041726081930237243296391451003190035707678831842027191125755258067502624650835311174736433047196043199950161830532622897811055840482374774181732766847119897627755309181603077079319096265801775369342596327900230993369921302869025128722225418800426768000450680887603090103852822065951108587870564432848636198110617635776594908889142287284663234918052416884954014518151970692703914388372385331819877243032908322194083582708823520919560547505434777742868401032623747294026489707025176062843530682166560617900265880972156892330144010484729497054756750585014597943665895995644496594797855790555365791323380190388651123203380721608270014540259991802025798129321751350968450286250496406691646714663569673561221343706111660607320064959657539602834454854107325208131611914729565932513627481034532394928782080335866806927053810657094735867916459546588332362290302563549646883565707746924253097672823923056003734259789975134736812427963609270152238568813340197369908865559422833337740387540833887092743076116480532446049857320935228433756581655007264954464447566539706799835175577977856705945678436860946771685182965838044489591452779064861977574398625325555483600849048268094044843450884941203100701363801777498808821967948398775481734587405657902999625850014491774940177149252431988198982062338274997142431934835228005200313107329312652994072026482168933363357339665217362807378832398007073396556947794904628413204773286166224451886740981999803646323329510560724067592763524265239347644239507413887054728069168222329458439699408126924804790303448239837742242621145456616624166621965665332502509770817691814851311766489871030822855412804381725574334360533601743162641837042361443344102191488561727254055526707510306374427870081024557650888579406431249206231323730785696263658962564913367562549475735659784421446047987701095433523761086658168325649660422509184557892476528536781427616300472808554521323852882868719589721997784577744775420823215126101470862472512484839356243669560646390614820614431234163439116569927645630030808595755113659124887447877216688790171804015870454172924261199175690995390572286537468398368425106354090919390081288290299731447438759464526712502945740215185348689156111132993041173736913422040346306505374192369028721526245781616872672993186133613338326933653973186383955074902971785370478998784029758218456630326927168081138535150328634565975429253555678849765369411229670941277176536798423321013815129616488651080660595002255555938309532262408333969459890225371082267084611236738733047791104895122404970045646129117573881036309271645797854795819046328119931802097680040845748238920648645710849515528035889719667045456329131021652456577709497394814173140622474475049641856656483625038145143956571958546760483184984248165773055307740741946300209549035001829076259756016737280382048683565370735214366708602003197969775848492291880261594349697129439108208280132467707178903502787405406609387687018493155743399820320187379129895792922668077547088090890745537614847543153588828932518585073151294766320247573565335432140539820113770729487235441280896967108783111434994735284715995657990053393491250151645043752145909005842013799888992441750747212786453573776315866500662223810594314303792721755011096393539498263151084927945911907153208861238049496135608305648543530556489921981964301527687497377843139553017585935709143738405409234260197378838599427047578844587283450261719462067769121991553786580036464516773075561620139414588883340782403764263604987125042366903188014280308606705598249408318991027209143497666756566534169005463636860193013667242580091398016824813383659821878914631118323469004596511869486942029128159942424174425144592885758666043930861864425044389407413639129382195634486892017025455138713034421226409262679174784049722748380059128561825447769287753439477170223667614487213501247532665426323821419428212826183023276166447881253465898962642096262608369673587448534121741425086441088872601287615879312989370612621124431000333306471626924213542642833244529299516155853065504408309299622325106613011906019599177547397046928336422612360290973228386365829557234357651532776184411048919041363235307680703121031315375563997288472196477747436027468952274143677387060214051961290623715082449478864228897667050788857706652851875689473324305146207077503869669094037449361774111883015088380901265649426487940728907560101975945815174203844000554858524972892119743602729526327201325917180130004170508876031195560336742138039908367564950472438045481149144443874308898916118282668574337832034818074648271848564148099954486122612229391376720022761196928434200918445539180085509658589774164394470238585099690850465899364186033097198802442470854240752415380982604530096744622868119486838793773804870322800517586331765184378902589746193507227057643431897056913297727896160095916531213543846111651589788618873340413978809385876010665274325391528063987424662338546521432659788023651419669383690054952920573648129097437652515883817489158223843783638329578835247452478338685806026730051168495965584280176406450474632200671845063036483776379113889814073563387504485531496502148844767900198021917736987272106293987231816176524855196502552062745757663096689570670911656585393348209694008076450415497859088509715319102101737557418145433573640470315208352413901748953223471082266932115061880812517314295793155338854841214651886615611755022176723923258897858200490657530596640998020277413247406583834274970582944089334415401311016898061002688721725239427991954514821022942205452969798687146666737907673317979798324645904919751852305243227588914798939760154380320270387429115079230892586941101688272740898748776756858876363099541507301691242759928321050658764932350912046026170123317948763117227600996875408745306323179836536937578946841068350381923415549150846499446298921586968762287173679484550978069302744453461087029567792405911363683090154489739771527887980141559707532840810507626292024100040751675792545264920952338194870516474678814597489929465649517644904263554052275755297452807558552622371808268147662524516451328986496628953745465302271208325618145391064967134244371137542111669789994238106524911014587966398938189707931194265513119385369747139264687315768387301398109896015108501902250080566553062603234850056314004413572362986662493587926472415617547787624025278497480123539116390759955903310565846714231566765921440498965890911284922414771883779096709493279944437370083127352711607511870805175873402009220230520433336505966529177903868323723642288679228148717701629086489012411740429713102380588254636298298006421248912967418370364966585071575969356105816713318725329209278575007890089950902524927825196325659163032379196586171154358409129364807627952776491515287207227226503908762373431542801660910386249325276855972637608270975959580819264611530913474123399415860010165830064706514998914767537470387362341237774819132431320504165749336267550291836152899325657445389116056660098482391273017798329095458708939618961988428242702230417141382480279472780446975794507405930698847594161568795820794495175124437890492283409615409750996916733178478129027418874984991794628711990846551918014289477015651983420970856020362190223171701793725597119265355089337039958920521392817152255940683039447699023278061712328264992669841205962570082541095391322096118183600202146063397719067381197536006971916980847827088489523711632973701887329899099264874695436752060470914004678591742117707663424254209747429775394333697352510171338393258905989403856381288195159585179351118532498452862900847658863621860529872817417449963517199345397431935957675576181520085953163807481155467272346847196794616920678670802118034626890576785461376733101125975847393890811858156179816879057821995764140826421128123638894197951187771128833151400176288693459124481830327898225907924243050647375287592900741168665588317552240894883891446281982854153307915669879347012066545786921218724942547361039932933762701297727896146607375986374946795839516844846729036047294995072429686776811119002621627207118921415375978253380997711378328688911656090103842579954676903191869691245788522667829067483402379447943298129412393270751842561982477032976398780906595019611041725772669100830737919742402660265297306905866738379548551356092749435033877069102874947794240396350832457098514895058734873803295818223560336834706259098920808478638224901924431295840368082557489424946973684970446929256140078207399763659502458674454263821332841027956740172987120256947504580301074898942533604365370830943030350649461541827787524007005193969598129403868025080676374482207895091884635141073424171563935762149995864829019844873349725583036617820974704746182054152658622684154531276876633938927542041771103277650184386959022446518750603909301932475507816763826852444180477103609735064067781345998341380664311596465272143053344850412910200111896198662336109581040545771075059728512301411055499655109318281562071417897697764586730165455372668932851456327247549777695318805432319763328503891375226033956526074716087729886518212566046411799506092276029952531158604858193722871194488458833254143658113514594875955796148925263089779872708739662109120759110351381857305408372281077056288241293173137517324626414394255382775692624126014359941605123949874226943804876846197252490325262686227637048474109076177737719516157937580093827660930820799164778865884181271711899217362593451262711755379334359746116196757938290754585244854230500513411776624347217851234501521030748028423114972244964426462509754698433138747055754780540137031940781256920245560787118630501070544357218775462247096476118710582948868326069160069641863895757293368256848351603970973645491828489853780043772910218913318082882612542940825418735100517180213121236879195682355990552612058629063764737198207925418458391224934389725652435138786271386424537719232191268338078811111975159387297680770065658327568144476655260536351920226425336385086815059372871352282459962235337612051952045725976355846890299031478309287445833279581467461549859693109349514067509407797478326344038358075800438431009706409366840129393846392064362300132871185404038139885902114691544142475148471901279125073841055972861221890926430722382959655640349041224339202580398999013982950459491403354369966842538316570605702975594271524801761277097745985023536732980066569213105413966245766719047287473332276923848508342734096844481448564107664449187954892413523822966728576759296440952450978802043936900856930193640258903327927218890697277635733736705470911566801815030900436556648463215962159611213480357815581297373734633494051050916378873638902538424493184644341022123409673722724560003884860612848470930537548870033368733527007956302727300312825868006575042108280359097199984125732510236157370744012592271562260557210271856219216411780794729088191627458314698831998936370159667142305887162863924066244538762119873336033848602975693854881847550728279759241529452556524512796180839167938659967189020041232508172701771866223158114464464583418243034856332895594786902661409795597278214159810155562081194678680833004312112787721216507711478709498060761800292736046829449395258989223261682853949032536938298557920953174015800716508401315576118097570465000786570313769324905349320407169798980630953145983663585907484415086993517192222573664760998958476151692392608392931155431180849491056484047792184153509271621546835899789662808651403467523493523452018088637652211384755518578950619912367932031192994883949679100183963074461701348397669210779157246589786701086481752063203624522318710263016755479235498936153131084447600231457215179639359947428123842257894698099325664646521266996567475071516911983276697408305444596831314083282386462177707866437731809641128187580063632975932749699764680950233071097713110869330247233654625834822006308030533792680983908935238840168158309751523657260150924054546688643194352199566519128369499311872809676378318108720122273058718001416372500869379426327549469642649143154557272437896813175790622366596800212170517784743445623379457895722267416972803579875884966646048430917550369818638039230225473140444289171789776558011312922273310237006805568943980670893321875525246049685029258005860438652584117014043007788530542898134670123097917455897068043498862185770873509495922482597261864115608255421533217916868446381121921261386773915008067851067313691035206656118073920748141863262301341652910469733336636392986689430608455908460218535647068494865027878775428269206709229243445308726149310055028225395977362020074193903086676704406035588988151806217354352034724665643547204126305776191296704896199245807267169349538730062130491283751323374935234126795811309147445679581920224514613317440343345122220177864482092754290436264388706335325562501358757701071013718630354476699241896078673080327035605081786578589843857785287829437601967327900889655440143228411156776854444806549876797505427408975382863000658671939141613398000597517214439305665546182588926350482919866199488150075313664521111498582315449159058818022736464072869979220289339462924034240308046403542585555570281548838252925610508984437390261529755309559013136565504078513881046723834720336188535960530805569943518940739780900015515225857249601620351959020145289203401603351714411751635169412108237826394449773404934970532550592730718780438413194136606262599491372146939130877273188992703006588932649924659235334020732354943734165310635195438623642432718587432354290742241349482568322848224839097050377010247455183605771970520711418407557383912343165746925685472954394048735566169269715521992963901202814092670404816740847695951770060499011012988086579185306643245806540348843521834042284137345122527756179482673449775359837050482484674402639497113375513629980252529219049869667597908938518673567317077135078232010115678128008694257979109740440735170464342230674970512879049261424331200562295411170542734348420974343742358342562089354988455803388373630686260629012780489405545558320901320944063812983336701282609441003592015766151872838196818737416777405988463155757938343419821396513023253335078802393005639962166845128722690662170512279869938685913475841259396924463043443193103816684730550117773505614973091408320827401184499252413164216984968148848934545396034762193823700220779684714594194930535904793788095705657222122942729721738905053912498843704764839424894718503446630692122673501248413946968347112602926015573033064504567225804492519126021038581786699034301700199838001546892128761198356835899249439896686430550133350787580936126231975034882941079798872525765076638291860498896933984576875949873368194749496846551577928404930597942566622421779015299612870808569962577682767023029942339670865451253197083492892937117946456939902806804920683930724816957771919048575461609824254691760287610146917033245962604624347812093548168724390513549580295332062537161401818968575823356588254068485968853101835917388745184664982003895035775401645897423033495268317142972564342233214676426350554222243182054069086266203299623790590253343938067894320307903345180751576703441428119760803806922300017242112602404340465878929363673098304697838414416922220905070963415132731613649207672165315274401869794917149698900271984217373992218754099365383977101126447219052405561531438408762059458066510921880463597471380755077469716177391457728306363607150223291650627288854653772136407779567524977370158872194885040828375581327335619582073333796703494200213704267990274452974193323583391517639092969467422154040477375083947148533922825325058410614826279132214564438818081728233280468954481678038579051039319454476256698198361376665697453498573097694856388958590981574231156807748107687331325087304696843256764707427683734141844138282169852913703908109299028998688359990081402134585803348957881115600033075345301281304490180442425594544204387375401837774759002015358841377398457891102599580668515082600433348922534535726498076360065922014626190071571523686174191603590186131037767290546717886875864066826744487570023534650756058510184887089947273275690284024784273144945048968427279233038350091465533423056797609319313627561162509633931096767042073381862121962433208828336340466575719380514759416218712182529762850282343533610591835398593439093595829804758985777597574632478437266630117471158864231889436981459093438073115974161271060527462611642389043656274091111279022864769620739355040528081322810868976658493661703679474633665178733656606642146208437713397895210462705161744795895960191879386281594682809781848398820667666345075647230555632525554207357017018934563659870985680640263982404830643451402141393127035367317408185581331305591844810906150873901548320517395671977094497686538720113595158500582922773509820840991863042957507827852227828812385190709364037909444313557790627764105010300646197023890276978525243055137819677663904127905745370480542075770776980955741499341742876393082769090074965464484474873414223999978972127972257113952570111318742036266137158436362058501086204577630579542712838793860840313590592715764378564364390920238763105213030591866368463965742990550698508689689551909411480043424116003234242180737368976534881249624048785941570420288516736641806569643197450465306391197775710202619170322859811483944568627994835149886282667241650928955774044194372588201834378600128806750973402504556394058450545840799809909591599769173228236767251008492727191153996553112137684157684689644914084436360754385559999741525634203065017618697530936466160502654100575283904416794254077963926736682939075873327708593082884030119960371010171930526511479822582564410271932012901537263223040370540217091702788338269746446316675945612149966010129454512559614507889172060749346254150277651139991694695384968316937840279530531047090962803323717499362462945854467172009818199309534403007796923720487707441901309929329516865547289667969321944125441094906791880689706791344054194059855855730266508791997955559700574847470916092428054961160218448357974600965671697484014027211522445859522590284511122032002193077371519905728543673547288566382745746884319289765441511563812004569093593864984384548631958010594692299534969134857615170258201204144813854246245349932852230671425224670704283176337670243063320663000399219941825149948733354021897278013540150666384688246986836110835279744709157784959474238756361437897700372137377746152853249499346551093458257353480909646858552055069523276773569816902584033148392766906846235291713228960339705278713014592346198589940932846693975549981468775709768110018994426600138283618858822342427459981885312827749342246101039642747955188406619296932311257325453565377640882534368361840679897937568962641757565817188294325872014232979424734828034971381692917903177861020324395965816833130189900067863183664659443525896695240112066732561916319883095814206630207612851352020998275703197031623508303627683323560178654994373380187902892832788121493151429818214595777791020987195840281714969557862566211038972663078422150735385529010502375013360879530476754588228315257960208874884828071347075666063819105409655865446216012374508247242361517765457054213825411888057901764462252705504278458804254722537613752327672122699335822314607824672355911271644255815292993238176104305382178732050454129243632508833884123429876064992294478525086898311318867647653229621170186007739039803448095244960301082277364033538249976962201532595994347582533382504071663839640051844203537336107318425512080787814585352947619810667155444389830921582996266625790131214105056188989646114518681674119427611543928527298592471050490205004923436087847443845882184197899619973590207830152690455048673493850440020734264336215224864945907318156798025872456371402554184250362977825623823929354368541881054874362997940814595380379411860183922459327529112502905690320276229096618780737960432344249259441553703798573707671546436211944432563468348986058306123377167314016553000941176597558333471108821038963422796576647756329451225812260681449521136120893435176430127142500554204803182596800565833082185285650592149872336468113720430718388881151992724663937035211720211159654278438450741226450146640983453476424481832344927365092172428446766459266370620107718615060880795356374342698975231907208078075468203130981681889961275827469889069242801305287828208327810046186733869423588952768905914619700214861595369989156110431471940588356939456071494559635752072378921930643593686034274842707546902610184899187630150946200474973401364612650154860508528431892721540201023625100679257793409815579490463796001626296802088472421024539912412391828135839549741355350870453297905425201150592712086300177604630766254302878038651041762742849601848066372552883238991715907158120491011305380247716820291918096776014993793536495106538864914022805949811810649101421686393048142664048575049131767369463716409597482202512614302703845831682123123172899933820512529266851211820458060767361009175702437119372374993395635268226495050730118964789337522594369438494719546542703314386297425280761141400163564779724737691786252112465745233451246663309410948926861093358557746724478672448842849501924673002872274574684458133524580582039473945655583592768807417787017504473894329646709834469931551854699626644627739553285123729558539944570435984555273619719744330000641433192439776002567409778439386692536057935253503051344832162541769106819911995862660088590162563210157077837365237343823216461310007447123940836604838764163646922618579264144584945677434485104145790280404832754967067740631406784059968248750998019601096538966737890563629529407455191192554872726911810693477323689537494764233135653963016905882507164806567683498861406793167392021421940753967885269027802318706918884493260439866779842189877517966537002528197772744869926365604818030439867896601844286160068730539920327264753014882305072749107357920466772604367637886505693622436035651896600430428388969710363111418364064018630007334548259116205808422118850272413095442972625427844825711602602687239025792766065733996277020922733375010320755013670041581606115587876161335766777043780541934970068537036720901482352342083555654846251319638917992166052838832429826528848368313488437618002513357842107733013400694356076974092526107771553443928282841531574396190819415948435750179840098139337654405518756770279715528303333657364857211682923150681477862475159061150567695977087439263021846708460757741555529352273689470133761031459271400825695391267534708259130185675366043778243820780736235147193752653403171474812693253941776710343835577201942956371761326020880709037244073170645933072840835401293263168075040362987251420863092716631452553551779979974810376376285551095709077912947107077790408132311789919346488108233882907730178960113155717651509600738070151055525028038743139734507009280386979439823562369508387187907123804835684499361326711783137803364334546800486604925623267049873855828083745351350340233709057769779078713345278789658783159143747152918755585515011780546529710224568050803805217950268999606714904038510546079033435217502677958453204789243284091282421630094253145105476875136126690201672606484530380569248327701766346946633335774312873161032036396590959354878575755372491127628785655475804437349643113523403394954514233108528550187755124002980600022919716096092628239635510535838547661353123867910387257263039870433227392661353464063708528468339655219602909062692585371246798629915659089020655080775438576855958662638450008408008309596020844874303455161407097928449213635614065707123735602993105094556381073879765596915037379091698438628226424459564714626412059535340079171969086747649541711145509631129448253147351409282549600374707038695308182854486768165342079409925496954018997794977502138308147570450490426682171795866522350265158925068363929114680475985972231681584563770977414511588763605391565234675855062076227363458212547122070308917980957577227441694789551244985409994553210944213253486545183996517363138486705376244938786448406624441083572477117687765479663578717402135871746442780074969241720513570495436600157647312988364439033790468397848102644898680259047783392483487725030068393580246330517256892634227663307041592913643349301727650611197148341747919888055623935074078593563540292585054785148261612513785148774231202870013055868221656176195982655362273262888692190801951780469371243657775901226180557179878008181826918800974547113510795119624461745255698952018180625111004204748930742980739795841106812687717956173009374703332294986676816868503806300484121136515223653658699588334463831357415158802054177532994101976280799837293490446216545898296732931647411946852223797716951780827304874589662584545383288479228092425240961047786969251834105577521943939490390386168489648064029546351636144710367901537245449101544948450199995665531505188661213474091490910284573244127864897338479354516437950314094282402525583475524467928896349726007146549830368478325075812462176614650652404091760788966515871454493426787190227591549025692188013289568102192300262813471836740593090963814862976931625368356466688423405320280900682962568046815216470623044399623512852574770894972961050047300292998995299997031911414699561237619875182570611073097206304140424202846478603773730175631782806899760070359069963437385135459084711908862328230673460071308703644998840723042766778191576328383684632352592952167978225766445279528625629921017999051521215608550601330733188433883437623663889136650414556041491946781809936238940856072781044741380447891333138959059223628399578945921473852382625531214726545629229991841847223997390542084506464755148736370896646462668519190604211162984211215781715904381049476231998108917577155435184785050444324174142863349216888430398281227190140684351943994534056422783048616538312092721527699165480983161358666438505684440335180631163474565065221539114195442892485866923672577383487378138085268399284947511675705158349601683548596601531072888319272578125038097151409171933961378223248178699584345294286346829778160372672860399802083306314190765043675782440414029708631845704190806554702281647112685620851012765693325511993128707300441767001220121542572084340494658565252405207687916494214798264240309733783312419673176687342041993703660986327065733995740930205570538363201631685207053069017820657229122088734218153586593762997589247101013373429142537336080026276613713847054196965585843196274480855155905312518704382489782356958891465784622228602100889710716113799550737693326371525880563612780230675826926873679355469811875734152401941266991473232596516095376405013906899909120549155985075635080482763287408519365783965539851213358629676492536104449466030437643855640334980574971742764537493755704785374455884223546107922641220807162672954753534608105954998467275538347363403757321914630688763620276614557088201382731285189043935286859664180314488973538758204156992321781207872942962719475810409444075436527036626841164703700021866658485847452970952950155936100795159717534763451414351259168555102021194720830410925310626216867006646930504364082628225641795159511184873489900344491435585297516344018431370530719574082905301107394680423674833336313870476214937349955464652016784544714817247234000230633759195651338514839643487976508735099415783494552421119307248439204385354555661022298100139374534474132837692731096365081463987009548479819467059498805242264284033449094326012359592138155394264072776074413002631031358589944787844805984121301617157694057899308378439366518654622667952662559287875418885712663479924940989400899506788151584592745538399349714812818399186455758337964274046918761249041596617960878222048859907545951465876155878565487944459911612263326178169988186690167237325270914121161173309225483922507102899416101284416270772192831269229794488919374731484814374930029879851773394625031793020351701453980051598474109332233531556547826964277477212197026420755157548643443210119987541737397461347518144621186536470719713782728736387680495343671689568158915048283941778960504166433750922827213617114383432697270092871547580667310664405751694245975213732877194891966662742920405431605944848462150958111383319668421319494501579160115066612485997825671749544162751908028269321294620609589148870644440114578819999420089564660566164434619392564062944726890082803619651623506227353722728841817383662102245509116452018871859670926855414566517637923576048796476626328196224983986893761381113248756560244484352854323042439956364685907545583947633585191134173468395948147171118435317495586294212597933775161774109463724207732359346442013093984385552514700000527640604101955462713303114666654928690915231355551287788118205836430500328434435243363897135745218106292207398369936547786625292057639345293938179218616173645797632472392174421231019304579014167977357817765117983754393151111632818368744287215855213246586644013305029356834898404099454674651938378097608461887113118299623719794600535718107962841712396822559118582860905566657655963038547052276709068671008588653231512099082053395631888705012256061079453596263663643166325204623872403985817509694716794449554067963246683324234311153990108299041699895208411553041113297804004619231971977963753560345371093441755228981497661967335332965828095643603396503510131700616104183067984890042241960144970555759882548651000872761333670406232106844343708819799547291381639033458714170421354878930083543531568224334438808537227672617969957753755179706116253457191140511947041155758197068348551123605035130892411864944259125347071724552246481751257380891061166477756790569109317723783177635803122854778061572047119633719571888081345877973256838114272712384116826360775281667861702857102889572023398079239710433537478840646491058843416629234581047253545389993218444659837906783209845055756129840621956418497886793176023733237735779009008965052316626198217924566069462461040363213756262338883017298250369222237429145328426233578759763319138630566860254774087853020925872971802905713865081086715306507698265502161207618713700399108709247603910755884120259698378365978429628617880008697353729881976815795369455982010290459521007194074694587143044628037716887150141420560393336794875379778325166274080609599842571064435142796656526580321048179648147769992647985463067901890286636159937660244630351107902832304970255227349220952333206219497087784798033864229644913058477726231778118049796252639522434400702084305270397304232915756348672048453527792500823651288603607522850851635855821668474989764050463780665222892921800222790607069765298958094814089784821235101726157040581355173734997905387093802535255172496706678642575040834520562956644708563968977010715860075452372512503598906434242822073051940049608420072819404022117806024870799293245723789035979728682164046737593335592927030946247909770890550715520981784389379839975664089448235179336578994513522498297332645351197637187544106517515980719184126574711767976110707163361665831037312223707534071809924478855979296963458678902550189584399025645223293887500708265952976260891663387651436190840008723876183968765904475497132378079933675653771729628003473855990653437753654645220335041706371253907175756259639170505486825305791684180544510812222303400456788822813730320999370261916195059345144583368539839430746685606503380789881785239740979670422434428250717933154047505579883617081378371401820062812927756747615658976496891471798113164980816406805064397527178907581200307678320109769057299310133637664223651551359891696014764313310229564217642467850867989648420118321188037897177740951417697534657887934423686843005620647488262132301691203115358916559137262437981531033037098318862030272128613301193077896899096460415018239699361714538654413789995684179195023127393462733785821937147939429815275954594826181367857701869548354388133076297614223864961710172573781553247182421534555633849861548287134293873356525129144391639350689230566733760854024055620617928658136559721609620991603027179116012659389835406203860079423722072071248442383264963756347401239081756975027660922925896398620632056561860650990621826405117534085064836804167888068382187423801555821521239164392265204208218183286248740948904440970024511797744528756540379982894252790283513223717374977901322490202978478729937319138318840178097677368520021289575392298225513985767909921531060521081906964451578303798756919094506727642341728919350508705952083324634903072599151438910834150142336182672376276947887667238741566439122783368909892457147834087610239389567132315972065399677365572806992669370469084643555929966041576899780885448670093423672113307805319179455159119409820311371406725681170995839725054536375788096988808078720368196290069703733272024918852633997662062617780572589299648621098418213823965461047194576471288297032365348599456482238887514513742997856688103020364455473625307119025255932614541851953738675047433593766656330893593093130282221939133920758665435945411613324816634816461575236080406577564829133807601282104917773266988557217004488213906216874178444114266711931586060873073637083797309019606076345516443033593021086033763924650444082594933251273499470598766602574668175790493373818577263705749073735336777419837235359020101704842179982129827380213234326681768588517200599349953761780792070980012152686343813995565976773459442112897293765572396303714396335166255082093233066936063860124451604449653134506084065753001994468733888405312097919194245114997876608554507126097143316949200923561322422078185318259004688222709381527242719959473109096822577723869400546641511299387006272517767313262774792655928986908445165763500702013204711455747807482752598340636277171437684014467239985784163062020188774196719354041861606413928513930847792387138805046977961148701874191679247823692548030115055497811203902372295479492978590282063754734924108761504649999035713292793034971355278011765954901012168942852029711096543804514151697651790182484840344800666398478307330612878649208850128319963540009547920240282702438140076107959206914388024268663602327348770572377764072739301296700883772628508754860608439309564765089054787431084182500047992112319997212668086657420472265389568435129679379660730612274309537044179238736282628860229971954309316990742277035997167184104615218089710817888045483430035868374803582645656832174064684388717936097979053531204875494270716358530192166057618094551643964210073135971976766647599213674368821468113927925905525405361114221755332746047383372138525300138857164847821491643941903418093983380724630963512823115756296066432436935341774183136880095519626756004715261950013153124121676907583500046620072040846406348327630647658249144437796623723530662562656152862014615588723286053759779484318597301610631621674812326783741724144974388272003879213847573877580715571316920501928941477021065159039208093338148866181942569092960367058215581881635882751186505556721481253157272549808979009744513235911411417359098900569428085485325715536531463407970056761274003967518360107631583485305203713600523270506186864528830566261615016766013999890768306040678514583615686113681871459836580212267036612947356936846705649953617917936770498913888259892702553945465485723118683467255998230744507600284918212725895261896975392455104897277912943510861533982240223370322690524419366891213760245673944482204483649608843044952327555722027741856323642926776415495180301442355704571756578093665682385028566820889285642512165506396483100910506914766481060750631405314854025942390516880802922353016611282399611661660628825899841614937174513482234747741160200004452433678891691565145831745499289633463410187584545872758583966266115412199184091397509079445094013659523953722934278558733713295818733258369976796375382019444567138193341030822217824578154702189172519594863000886509562708966356667973749113661768008123834385901237455059237525930306224730929123481485862954991969238986519742918197559997743129963710433656053321422149041990078786417756966349343911505961367354226011945931070383555252318363740824366529062586926075703345221786518780525222217159727437763368964823234901078435536674403349210373280151263175614572017230290346795396532427268229422299468930585642494127236641034583190416793958565641815261178549454184596642861320198095178451041142747431540367103409735892602306643905549415339949410095396476978036050186476402048021512670106926625150973856686806474062456972239067840766459294949184837663743109403300183080852418512571772998882955887440171071954759884283690508785051618017049331822445110069369718534900730277865096141685810397437129251987365117530627764299309404939308817291461598992399643567840052366731375403950320287057571402798186102426786092726151869580091974332775403212600133822709484145817866322862318994502324034439724413372069040033983954892058882463747971149113892230188066278402213978220725063272621662761852372603826111370695324312626983407634353308165509077398083979761290936079475683868168226942591868478407318159466745037408382822120394929355449633659840620857522551692817022163127065581970376224753363522336041564444960380745872989178301191940794765431520554986194650504938963845357681550118308598299152276824097263314414381155151370998431709349897590949349833453867979569336438922278593821014454058542173003709849112381805500613283470740176937102083010730923257198532338035333100936027011583812930894185408001925682033126565222170867713665797472951611295379473403854468507968664927003775864905555447656337912314467706306867505332132363148256732872999633467507337152653544610418960454054363657146135496942603697308897767267474321271838654527008874850889237933117541827443701338900610131245816596857388363842669884496197430546337034171118075472043939586017920505878560135633750351034170903700891693175868579595216041600899857523985014486881035672709691568670925572981367895580168489211116109552594387200428179554840742221312547324961161708515568532780836111169659904540852273318194553276135469909804688236618315434183385501232864754248748612815995868016454419975741559893179659491931999937215454249155374361428215016771042560006174263564484416801609620761295191568363514769236697760089573192315472392911832457660087668249134288601369650867904210848843883077636738639132291719183342720139602369371597568775835494463522961088279176030692560423477155757970721421028073874436790540472293680849518396093975650713142952170215121498572909886441940283791954140958459830420766930041651453837469318882364252462147420988862490238489296506259164265806387605647280091981534618531875827699475560687665212120488502370401440288425392639956898600435568298016140222987084569548278996886117011951869376227841221906617952925788459063031293919963025893859745526099290620399285040443730370067221084508289565408918493269387656053736086637870776604641689183900947448249844664860842948713519636137725774231105829824460795907915654036565890991613793462800781477637281196986660534885725861762893393694902643076613632120825693222567918662653700054543409542270191205227408059283571128782664535988299214409552047655688895734971227399642865063559043016521906000093981401758433080349385826699904901014002647969000729019045933518178220054925745551959407274321143236160973083086270649401039570465537515939228337459596310153382306208470682033126585374431405800785481852263977845663195611871200396574318721307865249953190263945720071796758843688484067147487437940899562733372650300363961076670943666084126108434254893767456411758394981110802276900723010548634156525298785425614465290876950846939623905385717754203690295224863432549169352842787207525535232036227496494814905374389694066925726343736625395907705073272726783280181555748060513505720181341395562674878045761518703616070919717394394217871321364325314633520089205850632793494277138261292786284988039035859783509239179739319759311669931532999860541230032267378260589701256224706167227939653534390986948198134354003442789586005426331675820579133329108452721305349373366279760096705374921913840489215187870534903270785896970156277121983770889401858646527663121603209875156331101220952576781614865196581704256981573618881772885477013592112284820601572183056875902357867868695958255810728320462346038900337870821521235670249970128742240100577554517380716998452864956167284475212255644175128521575639405607360766291432374138495953114624482106165510770881371671305111244035570080349841889764024477208806204770989304388694168057631772362909654815091364077094006865109332495654451328752888064261858365526087386210775558379165289189070253069798590531869567218139266485567867234064879307403542465871947343884356888613870555382603630672059800306699623375810556853715136329917138135886687101789121471639601117674260132869389118636399204100942781889802347229809915899727850784612497679730911613278251753261328592381852782167149942388361764567171781488984198786471971061718223274616066275767858996244884243714771664222184122625889987590555257675425727857950204237122379413560341529443729172031271547952745197065829134568893016060002777855414857917089588378453799781330268858079433391987192208626097292303723606642969453442629015920927072527100629362939072743183230233367101393248713571043079971781773870221036471398408040161280473898531320003407760330431738572768668288670083526589521523816495297451344805376769552797837615985185964571082460392677554062246389335990886760647974761357306458806583813959917322246806885236488719604385110757885526323763129347019503949640467252118057838750278645382593159827914939715147781900534641178925197035030780166865478502262348240650496983477139034310964443545975162987868938489583863198937909179884438399366056425001095298031095756439037394590590360498638174708967728594743398002169111162085618816488319229650855051788600905073036680108860294021414894133884711768240899138485978791250686851998626647409547411236297193808520429296416255017110167320575796897438119220060227399603526027902276846265330495773947822376991989955508347760689903294260082612626051806165607920680983475473685661024518880246584866315101097086819697450494995965153915427499695080933114627835823029520942289860590048892919812285160595647561488773675997017421835316794694497053019306108313126690803015929166639491573360644977399835412925757329564447489280943799115666139274135910105082922235127946814302215477344685265076485731579109586008304089908293362311924096551071548752873398355190963196110172482786608073570762849513247273546270637028099340792138636388817893483485786895798808478423488114878517843694101077329989857723882371795813075301671938327719111062506270792800246549131689859180621527643037723738083184978636014085060200915323635027304070935430879133520384023055351968321531927306771768574498021124139329840022386368482293274902433958076954094188943593787873875035126414236236308203523836198548832211154758739533742742545135850202814278377937119768553394181618659044830841593992738105724576082233526461292350945771343075287480446135577226238823457979024269473878258439424840538971512136591202490457390169144337324171486101069376581359945876998211695565494101435965804730126714520076856971502874075223764297512031260805980790742603678945744469360242085035545462349058435742174660696834291652380518357260326420619007269299142922100577638824664141325502576714169704387408953452318945619481493590512080694073483761116380449995138141292506183320921351094633464547860208606723986766947040152578161208529794876352348915078395051849977180418361339023388672719767864950257550969195400438974175533974146868444153780472367843078391664518414280721082182335708239385641830336254526835758819267510418470940434385826456820130112745605394030451840979603121706200518769087787103155525659501874212920101933631083212298767063593413894173698391310889648189084431821726150123616815656809950459780409733014612862896664298066132132104276884017133669206553680210450444607148735982908250197972051825188797361351856019619085884379268469316550934235387116984936491982277293261516886047409176723392892409400229661707722314273953609717708582401238915568203797033034269336698525288844833609654158983764284365783720184376751728365330132814662969359229702778364787759224250133547096900766504938523779901729508331459411341385741368853529867595649439211345338878024214108332134542074478443478234180595416045317301936940813998691620072673908490424922157791511575011176536007837994770390957204058194005993967210992425506592951679647155251282605634526560468251303830784206164975147579963169032111158448995559982509702693333091845704981923668141797830565863740254664870543315208652595985335409146481599137246320390654369430519948289601031657232570975792592419462726142991641942773219054256018245697671922774391315179410781701979695452611155415525327635272421957224502216798598032570088141475111349368545058599459440448964460519028157648315698859549781775595994654703697671305404151412687296987388959343617156754867068954674421576478823753890529525108757078022616903843983178514275655204549645473160807594877791205848664667722856163171462816452448172258972802053363899038446038606634211104325292268152244213194646525337653439577442497721475836331940198791412199555364304309139658261752875616819172702619657372916138616750164093230085526080155366008833863583140044461947152769864166971739108741905790483323521781218397610992147523292162349537934094671287394932653152108488995157523819306791620454966153013202973821671941698545221278793364771110540554893717730930710515559470556591706451632669270466543515473850914350644544312757161432239343981439124753101955035174305998734553691977255027525563384315291135223207567831435647176724575618476414806279317221731342270462651014810840099954474163451877586210703365135515492015893813771155817553517778241281715160688957384315964736009934400311440036275704208123716224932851008287393967824237085711620306185039777590059816917681329432003447819351721195395371622483500768102435931436696885863247051605378956989841292901530126611195025058425563728620010773282142899357603291430892811985002753638953852654351432335142072899146840229184575012437422389341733315480153102526018072650100618006059046044539168711831794673034766483156905716041489645751618346384803497466651378798842865124127649265992332157140933602377897889533008689408364659451399759299997231732130399980837988172058904352326227860952151231025922243669688996221288165851946409491638961845312423530629915896147129991057695076025632989593769029776308901758870858646733865925718639480500007327898754577594838929211730898134038806863252367468767647949746514042162547325567508428597793038628635509214224915458586659021760667299169867900005165790192251632260234236118237721966447132315542017964480590866072984929197017290662567966258932410255777691889439068559771368688790065804141555751602836035279296361417099791894927225059951507902274973125497797672570744351352270270278159879113676864480894112159375259438539757262583368967635109237406160775233883041703294234184850208244186132803395234261071992647417139728354678789010740277797696320341587453402414749238086426950487991067610281445117013862897817344879400122559722157871661298559662475187748511117423339668841827252507533360595391300780288495179602527731838070372262070477319094792579532072521913007259377229647493746993268760464794955797016988479355142766827467770276947306558245004763332540896178015442693867510385349890551714438027474859484693688228131530794510225670043506361369708625939770085492021855968165603098458527959878839522843369999169546960520285834042037155330089461191199610768597211463559018276908582368036251184292215475350132408325812996258488417853503962806446889092190027899025376267295032908976162427588015556104006728124326942273601365527345448649390430817159177567004953846127173647554175604316182689728411174426440764792940276215354725370882791116365226128738223621182617994254506353107931935916626171961558090669955321426225493514841569667420267675223127305377328605455566221666172094284650839553181705574130228536932758363930782947844798694125508210988748693215913044792322341294265818633270134131577272059852475832939263760793804484746510016786934298876365524983780475877508362772755322739949821687497940810740184647861310941576167025308470562575903082012061076004189438133196099127398974000056377546396270661941124735735962599778164925473306910036929013193804104735802338910970799944862055900904432076269159072902215129353335101520016693809710083558806140714118074771222057694621799739366387064586581700795558358094516517473619784240066161544975197580844122462851898426239038156038158342928598466616535720907283186697676214193387611822873576079166371830568929250954421795570648398795181718508357681544860898764725388023098793960729484380090883164877456971254327545863081348314254824610859940897081065391112711375665030830428280975117520085511579653430633662341548052456052784879844077986000850247206572327078443232539728670834839557265980919920601084102191291845368747102295429209107710113182069479745236926672958475125828880686823199282618568935260626022748200051955271914464638065201675007739477559645601661071205750158207864788994441745822477316789543808477896656326994216196513426340299611308677975078153743814512221355365407552585024895671262450582093765829700014483283418029827179597073426330229071859043084015329127131454012913352246599202058103392735954910223404355389562196276334054858580713217289573056178597264194827923867662007660886566315026852443917246548555377755798648213457164177448079701085998558709701446853434166415332206716004347531249579978884503410373877657088512706912708251892514789418699023939894560817815733729209987563278658943273241599379388446184131177785226452158044992948612767216455891692228149913260515478148495080340857929691875170619098184877543657648458173895394472380165914144727180368553098507859935946285664922383567262965596101506633353384908403696119158009705499749837885782032451903610220887549796502595572707987357135839750899581372198125122649945277368333502569877020142946632980247167007250679309650520347251786954194900616453213431129674953842225699083954910180277280609411674770918949039681097549382694516561882586333289580861544589529052666826088819407113517516179408497848204981626295230730258386148557676848241493516772708399857076453405043678005157511784109012745745766280320028017761557253527680275341710859515881797098487559955076794930275461367156653443346656666564832308606918431075337030161660635295902097396704752729966342822980954420568003914194061043059575655710530221992361772597557301841805987002964797233510149605419914787879601824958533701995438015182927720093520600782093632823065732791996711666494282279425097883963185724376457095204201464517740443731219150132497269408633443643137901190377696169048724443262435191994823549490706767766546678664909081746337031706570158272359439228275491504430178429562386652083156661463183433220063573197161361632586392568818699234429013188604421519761543345716556852147140273314762304811834251103137115474968239060953811098837867856053360531712120735003333498045430131018917669333698523236522452725309815808365825985701995626113749011113932835766903105644743520501954099588473846562905298655513929427201212091485672339428404124846467068943634083241726860566443029520002831961479226966584057723973243198771204071762028902692483305720755688818483084253120223908201180267951223659813420665967234528744603662109914338076642985150613825062935180805412436438732253274917709865804495419612301227663297281780578440526692476627735452677136566552322781827846695862374740227182985358091653068739354659383568979406838142348352313261776438079537661698800567989906095340090686219192046311397774661935794718268931744846536122747878373747009502558450865813742406363126151579727238835391883111385567364658277097858221201074256946788707038581258876191798572505664280845170688713958314484555044457948101935115905624241741571972527361530759136604377145586405367647986175292432314582103342283918836898145301908022903520523461310653232976328665818852562219321496041275023655594682863701491060375592888079123605917771815075373992464059190163387037940365131492164096615647988575309159780863286463551726169845853522762289232057098098729353501231905753834981468567023303851157479219893477670047539233983772758729631841589418616462158475407209997608060451284634139717873219582704785619317618585342319382778988577477896362006780175175435495378624999559621307329274381316746403840598567659440953661354649899496933285277796644273224564981815323409161209032598579507845277351585485062339326257884002926513328301439426765426315661245568276220637120412089558095795434501060808042979833715849171860743529285179163154457791365544761040771561674592804391188013894212851861878348757329044939373255609908045965912282969227855882119429937232924945371168141185288126437250670280393929023742562371469933923299443312349627069888367140538570265432665295208954098919740978283024723253111501583887481689204646787701466612143624678836287374600911214405075421081652369977037231352161269237640125264149665467724821907336590560272100493461227849320253557160944544139658638546198869682754747135691695986765153052469482995475144787933055163890885358891333818978283147747567309645749090726782542959368280111675126978587965172363291370164560417122630745377710855608717600142336043535396083513374957740134775580984762564206869982439394599054617626424548443641389595260959248369917024728995965745077198348298376210517883603904295835352847655923022444868749219968369476161037678379028275638984086446951583228050276181091921102170521164411053760538507925347079612042208034731138365720644766345553878426527809313165379998625223391301036596441612523706877403185684618234497109763233895526911668258349796511417589833999814499571614886217704247163978389598958457021402235201984532834587531028487001057323871341991554995537257823566717822377753211014463819397875123048948871037935155464821276542956885919956382038877244900787234548682579574510036326932112334497984408927416417511495995187073248623860930567450754054068318822835229602522262613116682882876203418939489500824006597493300745561281390697819524666270374931746969717341116528243811142755221687113667674736114519554368797970601699899761090790847175033234211152742385627217005325009775527263855959596573505352781223726916723290164445667028191811482786073952039634842782565075429356686206530474717680610727367109482945979903043541405678284809150586208055270317835675075773660397203765360893517014871403145228699820704071609151348930388998803405636897472838482730989655125847837391588914213196340511021553271593707836804131076568332032090726465965227797415551013527095461431037504086074022480521622721779542154737902802400282230879747485225306585199628721813522907503291091399625897319058340902771916401139524689364664810173760248450204187087633134261924654642338431443099356586082659865856072117577230214514301367770807793959784391023392890720327315508026172537867269143674151258393222809175113964530487928410089192870572431469656754058159919001494967661496792053052602186287461245345555102092496329970076344892723515353456201057967018945648433037412070941194131093053887082649184030847724048158765501445066873020947587207842156355327079191047573938061035944362179004558019946933422645955054986566348305595126118975998035997619688909237100960626364368412999552185343015655019635700592218479713395952364643279374781279565389513948749613011615745212440830561009615015774156235034528378269263705927580175109778325198534958650022278887600929974456035510840916961407521664927700670598598519430968694518496338252974865108470764026430745506449889660858947359070100668447535819283335414077653237685386965277382944154355160523587687502216498658876761198312850824931189164469672837044487723696088373599065940636310436864930256719005670313586147122063375964688496942272745938382556601739550211354563747688341551563991900856198597707063752835506790462707866593902043081139728101634249261107263663165026475356319178606985416511806998731259987916525245117052610778150177413178414277344982971934206711606287556742628468732226444683529778772305759399422856363691296568099652680186765212773713161973017583955577778971947421428641684690765456019427083495204900874154227835273430039464656890085476300757633582831136382644090901075765270068227352310709349586617057700032533028026210151979725801188183751876374628403380283665021184480604097560119797459962627264188286162393355294256095140350396548481815139455384425906342943626858690581754184535050495652436931510162084746249919307689060042002110822187337883800413891229497470459675004849130928722798451148097538981773756927443660213878791558548488679627556562748979872073479204617962573096387869584699857260211550827585272493691505626418140459494730233601297008109051769819071337414043918446797809965466933888513426185239251661108271303503357450739912652474520937567080694165284567863098786181281074038828582372610451580883614626652856683661185027925823310705165699655840686850813100431057913673553368025308133843292936599711215748629107439377883937107091659358585900437270593661165269524832001687006045691781652780656298695336518297728400400251412066279947165446208770200474711407299830667952100636698498103536235880597826471272452078848165091745146569726001884190520111098365612557099351291213055400380892401529851835908981089230171087924681711336241915688099978963214946235467850397842572601786811027883133270792041530403888071412596373754885965091786299985912080416051844365613208186395588923665630531473872670842906095308001413340567591274088871468184620140394214890563175423968124530918263457954416402151092137144132465557881814033101657171595277030322127729443805768344333398186845691539150287997470445929417877063130976002311465063196507124036211667303528010413358856889704111308061757083401393369993027794755585588414841717804825599238381102110272324837145179005726130359155387168547568147645078881669799570067985202145432129470598186787929010715047358946856587747568340940232900045375855163685514644129145741680794737972623749909676046794081228184166913667560769701926664263887423890125596624697979190463345688329159145449477739350650519361592123331424654409513883397770918751061891432747998157471690489061781468646271800492528193034947794898349866707242879756335710478723201170756659051009981671688373095343981513404885317782641600118015963216841693963531072398162020932485704584426476952814218316335227013617034108054064470971340412498075547768373556930288312561836598503747045413990592154425407646055979096236293874643462271450221189441605121130397648865797097771264007499916221294376163796495572383308076147469623220206327021678636931126744982688432225524646281674524552581721191637454474976728499290343820732900610935491977945892054004074133589750094616522304824882872746929911697951501230336931166481507888761102482204661248075872248606573877688262108357038822716800925893180809590924530689459503346106485341416320833631087328708165417757183393592609232176177196733387651108080438741093060145445443857202733954036131380116037281235266577022142546536032279554399597998573811722668154073651910906605671405968169766190307022199402616844143402712518873285397405825760924060655378704856235969545725173401548370627018972599227671971274806652740128918632084944018501631219002424069615642852495575229261225773505208704196658037571749973008062362006621720935689615915374314984667342687233620708878043357799017988099981763724535950093233941490996912264692728022978473036363991656262992569126473259383880214171929832342497801114082896813279537573997557332521696960539673150938124447925605815435205185430008058843943622391855230816865947651376285518143433541607208663174386984749940324433305036293627891602159143863855565774023961919715738432780310765989527694785744025071951482693073732590047897581317891036867438951206529401165572116592719068309097799739627629679723210990863035984989680537704380800775342181027961809033467068046163950304474455620142414378026055860794465451151696405402217851601302145128576362412389080954048718854053871646675028848045179688280854323593538702366866501207578950530472994007843617167311727944680845234510608822705800493187526156032442031782268280965821961425172106846363395685761727394207418660887411414564128324055060931286646251063989649329142735873184425589597331523723376644528975130908516303773534650593079996452171084394993299117594946270904196779207196265922116985741321977497741974519495650549402243847778578987277074205239191283991991248469659664494440939786041026627505044084736359795066841319873335673905906397958232696515854925542211080915488956464026219228246280801310798295124403083246587509294399682622570616671914224615176223200177011844981666963365215991234232921890220106942562468123197799476207154408987797723147498710626791406627671322760586122211380938373677608260009694665724142855502910032599426382219942732863406005871622266171775036838628348103002917651195997882918226138340014176650082790915515378375117792827346189700663439731016670869832634094791415346073882722424033531633057693461309929515652817434779985320606739516147557325432460028733504811041859674407388430446771307062035211100942061811390665500001832199130507010272165110230191979643101189798437067053279634871987156349950078413913220937567079752829264386550554563191887926177698782644721294778631246996675973865777070956335630107316272098674322617826084939684668431123706807372972003185426479186903051099819016053216087748337514513352324159244887689218590585735432070432484444575865966284390363785419085810427919445898740712814363120467049057340790568974910975538278737890926275050210530069455483203280581700662497323580550047975418788001836436376192201663147763919048706142614454296617782152783155503440811744449860182811336210461576379233035653798441248754972429745565614322323330747238286374655189094007341282406894189533300214497852306836257823227015890055204147130608350770272131053451163698468342919135903020089048456762872406348499337920735252775511105324092534646141580626260998547597773312726797173118878929086039412630642688265219934162547437651169027234232149163337394948771768340188757806482138983895737158111405828787329478587760320614394869655643641966092311685661866775170727120932285964318248278411974377911637182942068165287950968416382320173294476821070967743147368138544008238925030928133289453516460999660862155043253867253149650872675913433364327115132445491339909121843134992123062586870322549586243410963982754920160516834663147039513380064108665698743436653434454751247803469234085585672480852940750468115688650038518720921888718544675913714288643983944470865884246639408581766185993866498898846833685397492410149707768863229703475773533612366055587680292021659712967765658248502883604160502703082769418611837004329000526829463054319302286627284860206147802724526202250843956340092450864359558749508072854264230851097074753701037588151340605318458500657121319252882589939888204382355448561615184973236536169518091276372898094383177328354252263957011798707235750894896831931974255278669515789053042002622885491379037547788082294516710260265405547800774103699600159170512677285806988663017556168417952293379767920496462462371081188128738561055875307062236903330103142437571331386647712420036075875721280932125722910012413577313692974350101423363806495627502175745909659523283093955680311886576148777139617229824681697499075511365236220471979068674890999120176780738248590801015768727132529910283995152068117404435182587654191799342647157341319673252495845264548305891443875866793232163398112549083633603173520653915817916694099504457688527594810635769257483063746698081995302722452102596573473961662177944101615617997621168849279465453150110839786781321229300888124867075001836911463327175796644397058906185809281286414206976405531327730679233436337511248175873355522711679867170680735096191243513953620757977480439257434124251186350466659359211217612439489919180599246241068387377442878381255925217367350835135849049849249104662563783729159876667291530885865702081536104467520753532842389221346673321126932778917553454725786561929220299287509592282099554562798361394719167498967553945185804059518340336522660168481391239218136061208900536520346789304742821394206620921562649252778744492156822341894525547342029913600142423806644272856538703095438627027661993980339461045021714547493083422324192911829034483218833041467642390035561587033623662838177094936197876686595141682032075261957813774694362734121020707480645937883089605141709700785683044346001296125436359922672867432842288572012049604590911684564740959251609886775060119182903731642803591285053643661772820404562570273015847212326964490174697170370965293053138053882626631602781232115567089174569591889506017946640739711980443215305700895089603407161277451109858985027532764058097001648764925196508530588902094848673161221767034857129610192677162420118548771818895162051231777827219414057725734457746223213379113200337239129673466642285346926399195077361152836953745004308510300115664367363933093328099230242908014729233988122131096141798301964032004951090044200654228632409365117739375186538953911396109082691329664359466944086682690799111490264413392594130838571510614095393449159898018692935722261431193316643560187041965553608880054823516937061158263787918950341869655090862801363619605626048431540072445182607169756637301109521906201030087696847801952466697192347816786065749398689041559785891646659683830361393620070826614238111560466197710384560296412024885122749154425627334541069851523494724301002268068517507103484269911791173767867685623208285887687074487986538726177544433473624947270504127540136118899826610181815160806144318055341591685782436211188267357244346813387013528454788540805214199980093150060292114710845241877837543255221503065953279972132070193381033882914613819889072163991574587502525271706364948972953186333994850370216905702739625577795601527182120039669233394161685328915458628685516094863303276413373121529855708018261752298558533182405857261686157199412183723790774426254411892758373567308216132739327772581223094787460156488029851302729611262388855753228505671160192350478803774214119690456254770506242233572521850063051016995742904440697370159797699411741330715265244782317024604919831934814167633055126463831534206930101371614439428663671526746007857734979236243216453961056381829666043877212366343837632451718959109783824941944279878234686847673527220756833755033712719566565358104613972668255618524437972552041853795316431141634939073529069071388448723704729396889563523971671768157313243757749932895904782301059877108293419729671108883422483139120425098094794072137948046019339954039850909146640078649665785628583776982973982120251260933254306687052731736108903359792438510584062141868399474437811806828589779372150396369410497520483276995535050050665228873031830477002228587394184291748061370148544334347692552644400723771692733926664352443058026479335775911637441665756910729747676336818900717141969426427516350845933183461075548019257474266865814842745438536353744638846117837455456950130120149901217902367487602778254696661990202923485143250065116382778370412568769552042856224382464351966080094605030365879541722272149425094189272343254077543693913010298802324738851443684019437863296730659830248868439138864555281220261128402887160211079438459267965244347530558458781548624172344468970998800142011149531166548213231456199826441637102729713252921474116704703084162677224211963245632904510472071640878772407912519546139610148245383840438944558220706415163718307645037505895107521867378787427650275177312700296606418382989158591315646305874343844467023109483371394093052885742021823817052895138743189991124214688037273829123375509910828274537370812418290561336259389225192635556702818740873849042275678854900545149266485981917410793597552158360347438568601434108050374533968865232598759325050007530113954724293705939783331581404633404337333822796151015057159446645581708442314483075498855007518947996993663303624364182308402341951973239672016106568332483863015974203810020806559143103314929455275640955643919711476227126022938701334609351531446476896198629568526837403946776925934122279038017861515737048866590823685901216977488442976028468311732058168643850834704038106644287967992189226608604344589065194030107511009409097434269370984759662840231346413948812688629355074835219143428482556136749415611132254514735681260680892358799638953555868857824113659974045304705428641989908918841618866688020791226116480209979990351230176545428771525405570588731407910555040741641774147503483904251778541469031074644573247735858148589300731949682507302702583346481849967262147059273811516043914402975605430315468863697997500070686827790987137866636183791072399969328724632642428363522037773626815671650764639934572442069112079048399186593543974350938238294147516370554517653452225844322559136697877731129151294111084670804488629756714605424354183552522727583827206053974859985995048622127524701317045938666811979996235360160938453078624645747662078458236517633792307429326238575399612330222114114336052598653529349575532475242706501866812885681288527134513163661218125767497869883053766776265317862783641508811268540248242783356830735068719089829622681923445642321129099723106941168543127420557023068081986297824829150949678414564950458505366555583339895869645926364233643279535546146569738063554724229105827809052352493515911630199092415234078834559320482947904467209289469107785048575243815809484040289077865443007329347873959150786471557342298484989678727713454343788705244903157093808985071674858594968418379333161425156719258545848304346541441392965801715438728446698041744665555477423653577668618552539317453545227161518641156494361231662093424840947424357758832505270477726574616215503433653669257821273965757418949453425837528260766152021046467976231540410553158688659672933919405269846597144679546374846648644850907810479688684544075884756857539128079395103484888891345267400281013086069855862703356078506579180791692481415143077244998547335624240401167487186125072701641440171759804942460395013120064288233090567208200237698360881946194162831633086138480896448985702175536141675305551116822993927648840668524129267576516072329727526100279661456821951146052116906193331747587102556829345288012335304750528078877631985319548857124297850875609783847554845401141172207357780374985083444915397730865546224434195252815810292391270591457723503416935670928481735490022960880803449904505917232490017329283024053221048160022387628786305757018522753427180755555471603696289687980318209318474096016374742326131945468742309221053999423391710498561436113824375333563770097839429925786422658278696149254184905127426869470349337354867479595359618001226935008106477008554084597110878585711105424670281332798794507486844061641615804116156045353876402283688590753921768881487569857826512079676211974777110976172896590965826756945175423517733429386423462055790892919600229275409604165260997638708903765052641690342257310803490095647808151240326477093250399128225845594241550799047940704475531452014039981658313199441531064369907698836704582867558938814007435991331547690135962998772743582338711794076513182726870210080510208912081421566934531881084861005380155017178533436881826711959268058525708239986389497001386820898603712346490977662910016684293172891789038628741233844745220376549970844873701673722875052717283960018593637268080831950998762239701772753655635883094324078320267394331822803483406468688198509636366016805502106718015563393006042782746464992833299994413680351117176203684606776992876002063949269407530601035741539857847448532655723357580070026192565127264925070026254633047705105156839592052111524553064225338834531399942144434577924369698280583057573998150021491401899350035818577407209001035928709986057760579137532426784486278054823506773981954670111325274699350105652900287062765352238927305892056644798248279119138280866591508044561938640203293458506336146734618589532618623626718477988830622688355588919081833347849021665713573021111704971814616679789692920724632599193586406927539135245624164732981677746399032690905343073303227817200691515819973368776011923151337979210065121177845293473015850136894160172735484237246378014839060621263583607954290160584717341529624390102516046315217027607579341836048120287036052437789696507541315643025171458035680460778188007571457972480485857326568838258907089150631104064777673725661626626626506626103981027694557584231380157544839703854568466399087927525758214116101848310355026756863048979819109564771690841770964987599954738528602367213526429515218248188828308706963193795061862064378139218299233491333047287229333743422173118622945667533229074824282915107031841776522257931362668844697161134117071253028359651526859540973353424997685755506440914003955699206548290137638262252171768358820461474969886222683793278413804818616161666995396292694610897711906889217174946722784373018419328953411043042516691466772654421621787509117583472243285212829426375424291403798714047115500807492161767164781653910402235513117865030230162470771898899056521084166000303851355903555569053124345357111112256000485541529745823300891460220473749195059158345261254870962521144391281361606050151806627297379701473746749282569081724566186484980036716628968945953702968249803152351901049851352692390031804287842260232219677793098206177001660098737387353616448423530550863378025788061227757654823011634788283692448912238231676763784316481074117388059589545032525572374736021762969354925385087566372237381536460997087746867392029723654783179498706477224981762435711695088156129577635613957562396951486190461969037367562486356421993764662314053595488116347083855955898184783382971729948048991388221491812946191085120260907732778100449369520428081107111798686322362083691404247860394044148230550333955100771835315805437157406021563610976529035016737571202402468096978685284918351675108493234270920397620810380360585115320291630581385270411288628553958962237066472196942401859554518688054904956732993330537306208655058452444821293840381815102653937745184814144316383293426263940707998640197778185740192909929076353607467468019237734538096246061890288897170326240788024397766254493888305924334292959788762992266117886879813011141475461492487651468269442387683139748447803051930057735778582049219548864856038683852793553529927676168095753876083160763921744736543409427964896529553031327868247828454023302174176153727376208383811854878107506429254206922631583346471158766256838171315617831965544940107680550937751637811245692076773464627277990149200009140218809976436199514132708868701220437683758500750152831678769302769727162527585197060928364551122023646007967347619329445085152145698001483934662655833235905416984524299287208599795886340551241644341835673969167512100865204387675973790341154216548847090242825519304495852424327890380278652626505589515118516881917653707601457308638694645771640907462764761169672151687870968994431770227291548906550707129383872808352871922695811510181068708010428656503223273403642103926384586587098252957885786863674721640174370341853528908956998348777041957910555531207273591261882237954769487002300574597736755659499839591350699509641626151547066897922182198404161786512250095381021078572185220817204241775258511625169117595692173266019368857003912285616076949267193953323643443298209789801553291786308267958794104388886654647043401247952168278442598222056432976378318268199399104447923029112779703233715163446683487579192339402397121490531809473281188697959552286724635486100435894850087212245956771557444970334109884644634889938233823579486917981245907910506231721465312491996913126411799157391446644483397018524238532622092975903158756139454594250491147062833850105013399767808502745662008413520691628345029500864337681446172157458510142844597947159935979332275262155511097401723763320131194699410332410354983847625835622013958943542232570633607012813134080671431607217767111996356033177250538431561540006673740966829633196753526574432780493933953980818108296251075186330036235276775877232130529515097833483712446455403383398605952125086047901794754989684932972386950054422875261400349907512816768924363825373095807647063918653299746387232288047900064509680326962810253083385268229532523498506571799636090033345438842126334543555131829361320900365742377751014475875139466372439601559980843158891484098250826774390660725998171574656541923713101760802762880410528736951299988594608455988257494351064822339694182879176596611578473560567818271226170614336878793552400182759484943086257738698436146728490182290850104910719980783975550666311391771308806891735323051692828832885830656582828825720389017835644438871390680602954427062226381236470323416482387269454249705047186212935708627018481167649982548528661129880323744419474698709713046636645574878984547416973274475117233450168239618615964553511406901572647038389148865749773293198003881479813088432066335185886842156846259435652676017051527824308757933692026505298129358801465736387660000241746722564085640740103822361075759740335633462350318723102964012222403604208844454977876439410894892447362173170903476814432890972631243744787762300565095506165601977167403655208710800699818765350141050794138614731187027858849277193529245238087937692615344573090948025318051066128781333385561030164598159402457249660197048831503529780754814877172033362534379094095001371193863420946268893883319302590915091612411794804421813062846463786401671601747105834118024900329306902505360321332866025974568262315031978714270003848805760750224467150073854634706248516048257566770703318661196917496034655348691600981625804679557560233267976787375263550683155622943479995947129810055366863498254626898987655307951352343246102540321801438798382440545128518430129940199139859781593343809874500307131329191847449088790402420486586349939361976103730973907082265337672179441430536988180155844466943171702272219430478765220051803348230200370651060696114930593493960102309708568612546167926287149392023311861138456787540326108971352190834369486193843334243991783127104646185682090538874876560582357715894395200497791781352415102844568872596075714343598598569206050529497459158428461192341993093726245828140554840674365092171114361944872350978983963397488798836877804218575224727333455450285588789227073968058356478894562463179334031476047046599745739810633921310336491252910562009132190209347574364581245078096755296951571778750351271027274021467192077572176313562901013446515484414517098001100136350799764908030897486431050701965455278450894786861495495494455380477732859953729263064396222062234861255635052336385472115947870084762123725695490375992436376753904619589033246226087901722213876479142034598820718386979923306640769163200633829477188244130659420830386659681800090317968174865674838514786005931391673670085587977963366839766937074485914127683126244335581532550880107724619863759441387057642751289159686059922400198129263899436973414240668776584579489422891101136291748141890816641287220347825181137310775203825787773705317998621917550239521443980157856421436319464755781768977999455862920881054095430757976967389291385903563829346290862633678703215673436029115957889416399888091225485190676625633707770599807629186149665627670871231320942436452907966109887906408726877272850838680124361798700207979309833346154688102381970577655376606822861056188665649678720806013156687776128689890065713947865118228225300663347384534432498567303854568094494771793359209238965291329133357238948425371290712209454994438892684347814398556667110037591974032335610650305998761403304011334649421176604864676216092909064743579151338584700739237267335774333714363108702888395951245325852482129276897910913762195254074182729534728937886866450989864772025467060012113135413255635856641674170595160172694476065424956873348477532976164465551734830720542430743320267351344717435001529376677483835472606848278783092133950443525257320880147263244532413815054902617513223868302413822713672063618000237129225525610827663829577304511805166356604924935751988140715052871409571196857318505969886938803124482429246042754536135194312361038512254034517538243955046499126254096159841663774908286067161455547366728928463484104901561619579122826485447190588464554129527773501131649509641974595871554120610753510322422909231641366567429233836338572591285489532165437205648949200893635221080947328433978125417889843582517548797579740374259471581778289698207198803724130016168954704213246008622913554118490587617162062537585174415240460719349826077827678624350876564462105684915397297498472938289557481100694366852935522350272031939444905944406424726103702916199918174193571452602859725036594417142633672014250665132214602738419447035287399452046315202387256864444452966003863134555989082594187213426204509841354155635233207742782906029784931140580752404327343239488884149307854536868672227458515561102333774557481543749595855549916281804033216209968665728852488667886328882201217806985821615272719371710652315444701909661172010323032847926822743368343209272248563371160171124499500080699796988418545919317255330993822823458621179804470703612460377696401660814155303593860407676049594251452284551949217251941801515723851727380473173420138727318495650589867661308692020079990172106646788892621962103910846979039757286848847205018153473702356309840273992328460735459171036731071283817342849653094601788005572989537884850540572180650090672584549574182615732119309668086077724718596642904005088036234095129713550551257794983027963813781881922594353552074682405687581533738781115009434917221767869485036426591285811815473044716280944132320228264855901305621409460385888298720092007228297075193589220624708823017617863893399181820999668514130747657999127633347425618350862779232429592130440419272963080119126908088804889121005657154094861693420989517214181923393473934778076340526379756627473905310949619365455753196045157873991954551886859850965676874573457252771760987473311363711618588292942237598778042359977509257937670532158828797929843604280289638411698220066618050630774280454414161280188394370158068398903740747800082388499607236144008911064868524208731271548811305992614566082406482973420123775504037002942524943568693656488127322602229432757869656981798187171103862769443177913399861410257777264651117445348569173281646782006423898732612969041527544194818238818158445212304101705243580521095573438799493117367746512792325738764552296930459102805566891399677115325229628856810524654078946529849113702979320711639762460993196603146817331845602879643603692692806248451876061023535434074186241979075892320655660490178300449251753591731552955048444637504241273845292788400767657060195143909268298082794714084540890998996634031271405987090570144836026604408701473303852919133351309636154888121166690014148881402758152608908593721740804303226989878745066114604486831207080766786328326609597756308689953814338805504370150995555282768580440928090394674783554167340207868172674847766413244476383698211895016591856523922241586448271755626214844128725100841885858711382319695746892286188529264440092209879792491373310316403356481810941470146069145634840731582906699443522487769845856386278122672060797030594460021533939511022286713699031131849125009343922204171146956893163141177525680555400060507896978383428947644800728867441419579550224095715607302661850617803671163421051282057862422374706493384781848327880466481347171095310747588714421263609424934305998897268052900020191231696493255946577459043493074484011398157422576036287355682310020819496753873044820350831559024279352189410215526485267579833637079392427204740711815722943620851608322652041979280029086503518420010461831091606762267264581477565215996669603748263410763734685149494768865844446990590850291335474610679795248596788942646809371246807883069892865056509778190574016603681450057261067685876375956201019570375029621167302678995797385313881428371272221013673200219366827557974561069639849788291318552287127868257100705805744902223576560861589037404717146500614753113588495230029961150773773387938464029295524503251144786988203666908402059970237169066080888267422162830602336113834236717984001407612253949604295139610433171924831952534613153515096778859883808158746009267198388030897506733958248401972794119156911491453524654744688295421150233165398440252109872398273099265049439217322279168415811471947104844527309827222486930853673539180165945173274335679863748302165556995436501716147285661585590590087905035864695234040116909697123762538996890192980331996655915386775944270895696246707840727261154261119478384640960828761219470726661208878169711919335260991911574364993710352808398616817959725295732748792449253057905970502885918304456284039652213540510960836735040281797178088736088198701742019437920150219296786692705268183280732126568951856750882138251744670878222351484785087558436623383445437219224036996047047646782719746798534461748502274165983789814926568647541403715612529724229728156693634802330905372146151054754159872354516453959281504842498694129163565932198529943205138778127324969282649264076354044883255738421928141127912381838001503971203627150354462396730138546862498252186000278170933393331607096006236532910283326107011561476006493020842097042744319730614789962914828021981310891658546182509961480042268723466320428810197206253614451370851733927567871009862848952793883459669867078868750836213186119946921092892492310675879208532173254515352876794378949911540835491927467471817756063185790955382914025097410200023810567637845884005813498461388616356339848541546552084809527100982661431235338370526339073983390245824477600600240071673179428297703272209608807289415178687584428910451409417039493321857064780496090289379268871727719644733033923468689510957260799154490545939565767007718378351274947561754648879469996038741494057571139790987557566159605548821174077915708740219932761615935981297563353827170065087578137676976901015174519296689305953919697012068218161872508121521238238211481628693412937896928779201415604635790966554930564886085570905525068071182237111193077533915492158768300730175603944127264213987509313804913646744289614616978180599496576916421645708450561505650602769390487157233212954692080830231845976443248400210653994620794142319101092057470667744209560397361707702842743768116082466447241440522160169380604858459522063080255868116525950289321373347194544128731757078223174232239313230967012590536332147054010848541969706643088536187238388191131342554063755875915584375456904292916586439508858062715506786212112811121496727158298125574067230903200434783191829450963334244950673884677279231455644232226054696716474665539630301063528402008698684698852405521582041687259497828935282528561588648930150988645277140603623772047196768330935110252825272363002407952306119353699274389123109470501183208207730891725249838332371858230401388666728446599270768072269379306422269386844454578456016802936493643648344823887375932494410798151425001949999463430364519826034575347292791461007785237236304839559523221689357952577828215888535063374555249164029389707820210442028294043518187019988068324578347466408078312792805192992274384352116096900612484824110502686407674982065078742276062541586536545493332239472140177300443079964970061904688984406075346856296298019081422710083347602534418189774517709416785538907391364332841102112259898919897675311996638013445997674688056804211926891760800587856309374954203710542595717249864768366677132629471999773674912828097962399770684431596226561005888261177920455073379626459965737285564579658284388832432432729450357421023719660784640427025759672811004092342693276312407796543083898987199253961759366989191481976562793693226987831905326084989727465828013225136002906052497143632823161068879168680908466634056387467815931317889997333107535049787188002088237232390996507706327004829814232920375166490806424498598238584443248894438045790386969160077652947448669443426141335575654906357816142228949845503310617401563374668786378050817268596975829840809748699649827511332634009362194904481819594246694916725108023251236190225897859694278453764024779505141471521882634707527139846993323932575502365552944780414423110258799035982528541305027327151097299118814924569377064295841877128881603903384352060753469015145896501700378344535955017908311856302613332058275906118886747290784995330344736464886194010032786035688064000492850939585478426545423484693592927641461499190798319957836901628091315428968940800150670859408015365681844229055433330804109451393220308527721040959202215851507710684263617723353422609457275307237717069187859761293975689046193180535439748808049479908934915190219415361012550097692138151102647787602638292042681565779783936307785969803260648623168239989613252755603163356625568251764883512822415315972215651384871913853199884636387161208463023641529626591776615855932099808357006256421185763224107701793898404318756751154876658843646451535595177892200136439736071022395852220997655806881578728458579645438320635488076194178642571003544733433796534510121491771318879269292004369302681225775391228601847146658907708116906733686548059501441715498948946176242399376547912579910060415770316149693639407965536805982335161537854320643602865167575400546075981001471595200296473283897042103291926273720378760843401911596929810692439010253136392129864454335856301040608979748232077079290778553465077418619572507687639808571864704792960833547963532443872596656845315866751187629966360235344707493787116141786694151061562335039544733789527938023503199483082623058843169725437211674039013997684881732372929751672727262098776403642242506843831932668126685206829593838194046630375048036697196723423230908403751567982549412333132490836771806484885283665445899842878862790109724384349436026999348546032567379933545861995072691230616277148834282466398932267653203080867624991110284862664717461338113169531994588008946099795428803211428788882881467147908144182020769410804423737654781778876638310822940450882764112653134266279591506400241326879316903115056169764736553244248496164747563772048200720296095367955052848130345334222296576276798789210773685683520397870293268466260733458612372464887579516155812591240881864250594389775260816173119117118205906901156777226551309646432648946876270919003530969276762492958802813187893242317601318546458900308744343191521047153374249114149417172375466031653687004414530297099727585448807982447015731788541154458566596450115848574561702040613376839531068873995054459377852897788886648821262979661834083421412337927624601149557500011629327238759755003811826751488450123483376426060266722451701262885423796913672494419210153381074394842905966187058511573338552821306578067371743048920842183288524592062428064994155852212919897455217040774561993956510835164954596271402421490907541260535593502784366868262245371697941254110990214949238607475144557281798325495888319772061386829466541155027097463490991870223961016855706114603139670315145911626246455412392564470153803854088658681573640610639683563907321536103738875974228761760903168807966470665087297786180706820911299383056649652837390844504565283737643015205562317379517190759057432016563178538877668085897290253112609287135764104341504911951102377263467784690278485497333032845587613961967462522713395210119945510839193726203178213346413391966642277151209793323394290604633746899292324107266522213768065323359078583099304648418095603903336587799911903694228508102459383256587236204853243982724829444657650471680081161589722560784012050204427910721514270999776908453393034912846801867774987888873582052570779491342702422262496509670884331187592626041560118510934682988503446655135324152444364058205333296431048764580484904188609363615468322568661547610581169341250036224403424000105406655830582026506717825013608913232005667894138591119230549042262692886856211911811422313828709918969825125784615335986951260075744630808266746509718308487816601036977385206514031669818959993975987231579651184092663538450064575514976698190347608192793705450498386566289947732610379526431083338564403002170201987687312453694626381689221958255777667204113852184646588298449396155948708910249888485953994520408021509490631932427497895848399201495663408883314497646986093455648241750599560558116166677167821120945093584348059511840963942714960464818993980360371989011332383670735266126172921316441143961123772025608567127933431615851595196329752372055193716066909281578550515339408695160246181194837687587412743903806880302336711092119101240004436501155166944070308235304097903063427167595770263387586845178265173893963739655526064232605841701004532816083290908228497013392999457039166706558166198539135650460605918925041165099997770939249885276826896747648761276455701142818883606117967712856897515120049258873437393557278407211994221783266892147533403850911985236822801526027555768201290166847067945397336090501551530644931103164209146607508117742130904823660316376570414075237709319703001125308900625654479131639858361433376931494319590139040477801029349299193986252712765750830198937826190270279094790467535634360278599436800503056873372680630681321194294366494648154435680862950305445921752890693950250359003277017225548252239050437001931212565593079515220362317824640373869953546602817454144827566374654587676013705276847506926249366454407612057091373655539534409304897697633889457166555104706487917827287057790155377058556365294327232408159830737881064166059813272302455331906527978189806034690963099541923400778692869418550998554467926048499082196112551878382381913978614242841698635108094191039437879862961638631979008735687901982181681168557580035479465738423126476582508522894221686963495876398951097264653673643452520171673989249530435697794109689810664005321472464772564670220596725360569858384983606022275214460579961427172701577659486835671353746502752391122558685762531429252068864650681624086880942523264762771815458098005489199564402281685567503595852797405939723064177101397379390195370726822037948333739956428392924248658676255700800231011670382904735515707420951139692550473773169088777463015429196438174561828745891599914694614731920494019418734582761608633393736156037713694947522386700154040084250541202119368816673368709191700261448678841853375518556390696973013018959369266334360929596917672713274321021530933402148732053822671490195753615366063548656421251324436912649548942320017976412551807724030852101521205053728345880324192174921356082471280392997452568625692861003021253748033438970871909797746783611667166867607766641430095288233595670264923059866670633061661161804094761410201263338739331624131613474869961239273556795626911169970854490280240688309134466621825156632730430427542433862870014070315508652993815069354522672484441298798026594043119444555777100827318826392101196997001473512943452373605355630436431152990757915556551137671430810139406699622981021288973253814102994908832978398147266910468591615473500826987144349872434490008664918594766894783140956201343308319937996344439417333822416946728948111756959382058892005100955043694316575133256940959529450474788998752932599180051892308385924758876464202605716160658615905151897351083934502968721511023287167937518736862911828042587529922764645973200080155543557573824414447179949459832311688872766006697914753174616096820976040850717936843421685001131699475460263203395322284293781379967059262992447460589781540652851848179250993481901970060839163842999279401446364671328204975919853788286116087011147161919502650453736089326449801308276452152342710175052869944479786306010637220506565934975234951451355405085706189739485350216192658245338416538834408835483298529101030856259952333370972994815515898552575899304527747674681036098888614999019199843199538173165597796853752991174645580651744360186386112799979530276752139280046270438399562924635463680127739945421375188381221515663507380248759993840943511752795855704791612881979896181981655870434032316926087972364138949765741148759782348822014690805174383605142848210739357560848437529089849695758997833906019042103969640318606995175389324825078492529070149370747150055653028429996058117723545501076190293374296750559175310745971745844423388475984387859634217888097858798975353567100115146023767239187563631009834343734715643863351493059615808140843884574192710040393120741760024116199045587023363924674155361173098783143783613386376931721216030352020619428486983693064065174702043729862154508267617215547145094522924375303042433696392564143074206161149703328697415097040290134852473239329684916242449939734765330255883104678638250704938072847158981265357172355543063874502642958097845202926373940122263784473974189763343140640638199186324931930537758251861272392422930090595151875479165445572266787697078519413263201839222750307353355394152212449077202926553560627724437193454188487478073637571048954470389149810830404708798184508889724811192667529317000284594519242701888957507509503235631019085473624695247121474063358862116102311389152659412031467233821906939066258154497227747445701659748602588990274409029842150797662911712931374869310842007721619463683867113657424470709156788307856544972563786072251696136119821969662177405825882300679186219550188212736674754317209437656218160320366251336341246465636538309780705811335871486301795893564300743809496932321664658776407740651583090484068441760582532200445686938757096911151872976478452496788236971555822321164523964337946519127818673823900881632513500630560103433179051792210907768321507193534519187895534066661935180716975014151182156824615577889036849578425419085036556865788085182425631008666251492055600947865598817005578690806091241061644265235684083719646726073445482644855470230218728581888568664703048009604097922862630569382600749654640678450574104735127542050895989656061265669292765318229905627363424655562105354183173657381093714834126144543400112816443769530125401255680711171536601195953130913551148537824620124621407613012126398336228009491128428209703713364305842408945256698436977759855335412512841239990667818672260581815527193901982958416475837143832893189901518305560796357158360629910865181969452296570698145986550278414059076108967970682966647668808070041514844924701599650251927939300775300232589103241483523206981508416974516932583042441493666155433719751082902012293596731986302182220354017083806599251218800643610843799442497344201564760118627660475433827876576006650523142919036638885695660575275667995831629790837505619759293655263093714499349862891091994673973751077299258090565905635991478214263847058980358421667718926794339323631618682878952914085552137534371811995880564751426292812073243765976462663688529729609232642858853695662693772642446006217978710925413199602080761965600747175859313348619900760531859394414806006520219077558266839054977704818983591269104275343315967876774218673545213334062569164748845470769664650348242405035192572516951896171217168568429941875833319242447884680324294127298605979461753148474433309891576640232408074720473865176235628677178698933699947658338989453059234803810368209952406150045157479459639429569562437114960184376396708923010317156404597044570521602340422343985975660329009972678329675721985372366331325112548923541488481152517056543603617167230706534227821641234230933876207021711231743214428044783536212107419915876294324620286533810510242439044572854017948588669739024785594510241689445561622294373595836408105410327325640290590032717566857323798197689324990203528597676411955813643083234669578350733945804655489104373909640309800772219685523489767865420988452987349653609558128783580219283067121388727633611309533217780355922734866560997348348457109727442067170528965437197953331843677836980023153929352433851648957765997599981005388803628766819658125903554980285859916791382533686129153338448586184919293230162009619576079967762846232470343287985359229843480495349978295980516459624787316731631277968779639160349948291711238823000443730435847947926827477438469519385415554963999219875616847985614086386722194278790678334947943421111076114917864175279730394716189636317534677718819426205014099707847635507702321295939037315185682809528642717891692571247138978618630562099709702094824171501987511278564690113996767654822997836942749657038698739741084780867733762559090812393205695024970166640272675727794211298859676165125489079647822761916254924936793261679742007807270290980882572080865439814394538814522013666573724779218012954320965206278109721078148362966837143717546079530718076789298538075126733192963840728354446162891885054367619732999826520434603094297633360403029351375787835697262432695132178727530150127092353741450350548717604771152607983667278299365949299148762972258339025131235102367348284570691938319136683611261994061409438900649575796824604379254131676102751080856452064651259839164496625763121395385912821879701245205113235427883322854122531766147944178995340232544530224186896707020378817856072144204348231645550189725618948468363332052190039716844588421390471260528209104574436698939771860361168726058149063956954939253878378918257193903159046898569176584322744571744209251844160904126468228790441176992826711549883333854956702358427682186393526267721975729390364056092537858910465628267155548738657426644208295358103368366785170262495765504976376400101468485354652547958174521164427941113296670204166148040488188338122002859796045028859186030392504465958604916782012565993998158576071476643948894261174276191971170520937954337551473030116782822804288655862860640281014865873935213567652368893888108010854150190978136048860793150149028018433063477423514877963832851097590921109870250650379685861110913928779849779396388149915392026893867278200846504859366857472149399536626231167881914146023715363482164205741596505980412357775073311356979511868891760267264769255343906593328164339321295361008890288117325357744047397315630963903194799611207588645581690410683130036983976837851171612631903895619735055622836883293944981085060294516286254342210265901947413821527954203788330549933833728081350102033155386755396497068039950917516513863205797785624187703965414400419891315661787653973451344377841255382069612742755054159142834770346668928050871143667174026545492247975642983349957113413120924071249936580606968751541712470056387572907125793915797264605407242078485109705945797543211582557558343295477898843459821182252134165903009501555190158395122990484176071782410082840866698117647169932778823471983329990847669257035265271555404565874890582309177645477266662078128173729622692226852519857068787522021495670709768187632038626122700788090427336103587516870780911014276359537401962276467053340263765336135728072634546789685061657754956270805730458623411397872845066969953860306205041010445755810050995560915654449911858299735277274388173229392487090213897513370400001489492803406046592470217351814167443343310751113084030072473906800056840396865206356743457562118990327176304138373421457942079992861715655802283996886895446249017684661341954072390799980015437351012962597006873316807963213026460096383366852138433682749050052829219769834823508719659824081919399521386261522462246442265822591728796622505943443464224839529677865884301128089716030214979544008462489838001788551808796085210656842433926397833718993062067636497602111585590427922737364896979943153987767142341558002167036399998581637337124369188408323879896110483209970664004387690481178638035083469819561181798222620606322096390662534218959305841628815196063499943670749299010524798178199182986174560098231775274466042289940290067832068154234758678771516280185587058306536884939282647220640413862172528530598103746772348539153097115129849054905948764843064369985118426780923576979470195786178890155824736463068654013218797830980158310723919173342293884844384701424147763083666131205231781723304232634227940451931391285106716128032047487463766842855792581035243939152934986475656469641540956845043245634260121296008641376924321174986124150399568411817676328477121176360662193454316102377828184915371104324940405294356482815573449961921184314628042997155687338721239277064702274509486194987763044704794284754850130912921551577357191173346368129129579508041040291630642206158121770889816246065403202253611633421735811230822088403511011821740807159291864544913271473152697802264719874196023659975143375818335243971949626157395146770427058471357339320012180477643370664308801200419605956931548394195181817465646447416374996345491396005424330937746993597603649101012132404840420357361266069473790710846558410472519913617618942607154471741937856268551239875294262966827423460411019653157677835041014892894962112190200963212525959456463672719161782489811933929644255144613045110637918092092968460234659796491234370007773243484357066934304795805769315396834768507638039959966782085376247409044370633791045821486410942266918948690750151574921223972648269555066254534128713827687862338398675247476808547153936933530099954720391679997953774107575613348860074959693108651663508186321058661592987514886127467104985600375394763822559483028106096447184980417498818652368167437083189583089996092407966384940014984241134968929581792702521241982604494670626604734718486161043876569996855855591079341145779503687051434549414879450745767409338294067524680723097431512473008178361184663751810863680399603200822172574908282691732209664518963612779976603907466621233356545594185704263686437253403370111738485290748521495717022185846746800923759440650497954670218529845230875466256422084307291274928961329303188833352068968234345019955435285965987123484797960314247950482374272483512033489894448088974725555292780966788065307054432588794540070070076112849174577254833849433996361705460440185905920996774291286091990845769115246693807883156711009201087555945241466299298230964680150038947861069613916903712467199733820457821566060747053050089838063192891652319141071927670375420617745136003314743760838140601511864599305415488327514767046080053340078937814525151296283536178181527913949246295457764696053104737465161594605547883354939954220818767767320217309186555568078579818932920515315377183934071684717414331153866445644397854580056190757527662629245659075096266899203869653988881248495670032917261675468971620548295406325720778873175624299852835747232627949266863500932299794779943311904953870272926067450559822721604815708977245576956290820246050804516566054673187466643654918437702097980321299959418204952122740660017228324913255828705037510878351126745275841126345027789681043083518893302250341286215823696610805788028492654756378027009993670251045803513597149182988794174275827894969291283655917477854155618076562032281191673196922774066520358805106840367089342482002284485038701603916720519118796852992181233967142903630588523592943251429275706592273161853670519584831709736812372826101154225750573922582593496007677640319196113463509343010664994013964115220789430038707299038479398116280889336702914402241052656268750109151178610798274070139673572518861648419934626652002949729092463143584248905021736660817776961841893974868100571001800142932188318390945581325712537185642800741324785633517498843024838416688954070104470579845973250695719386778378412981347877894328243400495471902933574774774648581219077951332613300213051447956718983684842416248459110280997230013171741527643322572378028192557505563101849162967352773657626312330888950959672191913248993851329232117897015820507814994749170297004441176025665701432845016501019142008260820703772385060256940799641739047788195967693389418485507532360185682905317749400474463441698107622449219050700037758416707262111997122038397760014379262462217981147927519994539036347411669159642782650880213234183941710250035771933119941489776981333415827032399768006813711040234295557083441720841751784537651553432045546698311971760960826209486884513315393329943774027818791887281061403515208624293870321548904477622741080693336418306215601380573623843780760198036171252952529098614962544463127378886264582147141013422855038273956712093583249888407297473991443948288911611520598438235385938544539860557371049400613633116017782393894271425105136363488604796738408439370688914541253916836753825657048288774815014458977410862831818322221330004514083654878757686864589848619791267819374082999035955727032923079294852684113891787962826702211080813351528663861218748871678807681340514714757743313411282257105127687890441879531205991945531962963229452915899025037703835331216648113435199442500977991882913757012130342182121252784073499596205071970097039309722874021233573349504214940033735522164033678871114810044827140554356874075106532892887695226953955846716072356520995359768931499910768262312502621140905040406777607658430744786433961524209556726125141666532871499548926745336356281736217018472723585498686290859505537415779854126523083373608566818003899881257999898366137965693480057280686536220050870424036063423547148287586228564787459923857471774149387928694934512264007897471096368085100544295841229993128533965331442424510236093944651089876620204172257590848801374657710700652728332876388636465404874445204592664491578703029744134190718778451644992370876091568504754351423661729548005680783761984409216070077662074032637187850935060604165626259765281299854583300008496128341727588579158411706328866740805256569350364880441649812538450157496185980249871816501231959418451613583622204535084882126236016711524594156049673894096576831548101740223174049184552901074460785239775023336185955956754837797430673005253747738121958110637206874852550825402039548201760407639491691327805574472001408034418387151865569154790213556184475553946492212703218635870566539901685307948192334202929599324110526146727264400907935658730747732913426847577534076915515009257406554227700689561021513637718925444150261800160101203883107201253646326661893419643276057771166417039128742536981696853181255900383256592313153874480408739169445240776723568413194858709500739055655643084784210767635914569645381017331800143062544931901870328799472703240981402244617503371199976007795547568058101870339258255447445267013848518264513818887024536605585288092657422542313341340426036663053193808431813871106752166405583233097826569084764870830360257320184344158649186741418330263068726879357238296201484624249793925353661360828601815146809864281729021389438092095039694316967111219950675277625845960355852952703649044184434977808751618837485151612226497410235914710127407331002610415525660489570714553994159788805515062646713747494287362247754232996035379951646691781788316169376694823624888579071286128534664679461076716829633526158718767096595316900136707713289647332334334275624277850646928152849554063204926695023568296380940053647887721687121904982966548376950030558963936915722968680643458861458423833689338537191615570160843972163816432848064900720773726614433949432767232520780984682446286913998004915763303664472180573818126155428894122303336882083319494907222269624447747569340267794400789663264006364210572807139019359628903746356095251630415909452275886790747470398479757736320566332965702911044969470034211379631109622246848618253119432021309142778261063905356796743137929704099855703785037626871471558593344694900230446955697989991359877052320228258333355665584633279838207654107035233317060976588764942236511779555160156481225503430144087604387218884551090552870431993647929849862053396732348951696008141103178918226654360734685673444083458171386179300840212391762962053685700230427696960668739581766108897000076487808814479765289917298547074013163555238077042168721754851814772120033605835447932055121192706887360760998520153681584703390381161618812731019558123384571931079918091902143085218643136731529461458627402633475699492148119656574194410895030134402899592500726812894843427949799422030669924061360325606174468432723784081964031827915592407414978085497588585370175341072189266329590299796139063299498513136904204350370440429165398296603161962711549266520837601223205674479356326748481762093739209236693058743017191446718384282368715351117927420960484949416008922358210080770822311026865860352640823416296916557526239262920641967125151403270944829783178284881149489947094116246193452004037676739273162147215441887228528408129725117665327711213809556590712483723246398950914100555459936109842580242686187801958093642761725575100995583779119944117610431110554582437853292899443101750691004184141244351879808124722805492658896365225070067376990418941998902118322413436695029250518851342490002157648347637743273555851733208049539686374240055710608549286482443718881229531390718634764543423070505934318416707733075022756274047239312585730929814194604779971517742149332496228003148921764001916460548945551746567475126091518489672812849501253408587700525033040341388089073635380060208929259950053269633410472792717218845941545559965322628257295857856457776137465204832903701107036780587360025733463997975595046141869140791908922599740639301674451707589284683370317860432920646110640865833175807268224312963908949579930147438485891615235574063646609542485831332232871609111178034272660102024673468414667045800332540124170926963112705537507360074942380963738327732264093022739036665833272431172564560683363483156502628017123663721654122360196941211403772179258626661263925364880360763724907999888287499719229495374922737309583547900367843653893382869557734131045474817113773950691545147321908682790458266809422686134512584256564190217947994651639440979975390790607588422356173645190264624690252344272952944305866416884861839799380168078854907986073902023039227476102378242788199730323315114750529426138912272981117497533009525671582667301042538553333215973429913495909274453164852720563474835076688167749269673470827677697586467721980967570715259489615484434485512642470910677705504994560414324705979303583513336368059897994380144336895349635472116288653868900196725074988468063266139513011028365792025687932546982965793454311026247184252805506292978828827349417242297378294366450346809113237612887579672708407569374158049093915840965342157107118660310340473313732664032214332805354290039497468848405465780185189007335294031905205406945537284353278843446462958605312994202676506365941687695737724412857934936213148292190146852410875461408664146724311841175574286080993328673789874557111252844442764116706504669135114047503708237590709864709933049788767982869104250111142671121163868706826686468316584205245282358825279984057022160384677657215583519834458269100817258641781880965734815881881128315717499075853229160017270668825292973671883986622607602072370958116986529066986189476990957767083287680609766681349493822940636074829271478292111254087351452881631711949803084428940487149996847701432140595327997857954927341076183677026810732058882467180655627558595739328464903035888135188853970477537791315001677290447513154219333902063254480038193669336802537227016819958627843204465278719582086915219594933918299113825804286008656869270858713527899424379968884631013951365252907632924853683550316119252148605155651973994269699134596160290867640699911623752464251992396776022888836644840838900722485837140236967019324685903133722030480099213825169750981752389298019459137607838605809165065967473172293528219783156284740968035603707867984405675939096635918125027851701105637809900979037831875124722010278355418591629218098058721618175947786581903414175874548645423578965555184926482895020848500087941734924783077268433599363588619463221547425881705662452880636067290804581956330552643109803637025493282772076512526459561521682227632408799450174263258237884908546648818461481423213167840049910766343459989376195095612475773618346448953492633797137770307958626224707528991507522597944489295000843709785254711839388639074641872749064702652458769163254774624503664819308026801641115414385213058550569035636875049296848324644510659521651999164606707599954585375133266332918333834900311039155847468075421872362016867698118686041106859403768958190008470142167378691143857817285986577609614476865356702025702113579944462761942573312933856240729586943792492445491735971226593118782723320356275040348181941549019158091918514581871994834539159840399936151952141539086179655257948792503763177626162931184483628901441420716043434128307381456693557058169086321866834903771801530857086790276935834663784485759939336220904701141006782088778484857381884088502059425510153744339575140709914743964200491007216893058065650216204476634616698906392974812766014824489285493779058038751113929130994605852781610706792444890380086683884588849725101827877989504949909146612108825090837464815215150103052510564200016354701303475964673247997074135534131632121734575611073947104814870230293891540534129772045945655287845724528923765184108407005546327372689740050092275652643467467386048697746697356361312671954010976583765114382192069529184358900844315113227574925574902703424489687000903356377749847281821273111253668957299366501978457301909734148199216221724850076898530431672626186750072522897306434362605782756684357376854747551321124472764472082367339639636668688815147228828226795957896998681157174216143152981911328829106487415995282198755552093708337795961897397635562422420210112548363998496311281212892115516988745927085608937040250989478464744115163924387676631259208309909738927526966369934630626533546975642692046115346085933193721696578100079699284678415025925684686119092028118783561225828765778042224830645023196001770664944737568780305386439055379914227957386065119872526328296627763983902055559917455019731231562809927789537502278783247558801365835305446229797396655204038958382859030476674898946857937743948102589615564362567675300014127471693996792508721503265836821422405149559928363667800796933275235648039909919235909840385830237018855573294190826511250579409634936537982565162871572877795536128134465737740622672712460624318931712888122388305720673061187824650659316840537847325475347754199457313021182507919626622019573364068270413395097428945978618057635231537358583562665802210368922541302557800395281673776055711545034388952913547160845837303690722358413307564349638438250598473249628881647886354008725390289548913857744807402990815729350115499700639554057962581537444330706439807007342440043526419746023696269564336370650572674684505577030831059787126440949015695817799088261582546393368607223043950396953761069454959258872576888981449836314644367604973568464851906699392712039901947908074087101527123073017430818625512160621775251998081031802762569925008785812666794846473940222053364384289695326231392262294233267717572933756552293599953576738358813175903660133301543915581339279657442065852798188496825043433470489180001658592789542152263969449797492306355865679403333582769413203238732531797381224453626915739357576047849390503886132265484778429281880533638365130143994512933531797545736942323119489426061309744818312534904085199174210769473408260767092538584154957873621628066184643731599159630945253403008534394523558100745121154082290331386908633224144491356106058455140429914682757399948391885306539692835504787383409643613464380963051890658902323595790065134518367697802904398721592353662185758486075539758712012001309939424854788966402639968286946587109610432941445539487025465081199801486113387976146857930807228380926648374997981980384202268573992267397644679281554133196601950578427685180466064895309201046457050277779626018157585278396585719454851366094535369460189134148225287020161056044880688861165278766063082764591360604546425875098205972375831275276584187930602891820129549095381390923509049724538695014384401842500507986142213939888742847549726471941510024312741296178851021188307614123638801490371187385912598813863305980946426954034413560331114491265623825575388079926653298647443910509734297252719246875706661959214230259930443171886845854458982291175787235911572289738288004575428019106130222979240908425485855198820333865337621361125765949847309388774032359008068678262922931326644773266240935253073471761609054211798573934489331125038791157797907305511180457915358884432417741305881399782967135801889338803978186417499280356993035388209818445992978861428196759325298717875739318240046768175754510683835083638390449826739512917423516447057436956480208907133632494213529094956125751761459917476048319770300643877301181485453530679537342673719966978687410720178308747124854491864278703076152936514608444493722896269879907657423623799476425434394832217180802184896120509387227896043889555236216840415024079598045816050239562149091398369112914582574651361200969526194821595302517156199637737033734059314684485641355533525592793942655455427546864293277233892257917952402299210404144283101711376420173464048229115510387052243514614159103349989264795381412194477313971770221407312041876315018656739882778031667424763685178828712388606965680771283285623302202881724976594442061947450337242028289965268442743467076252899418338962092895157969051370202372087187764897567246891003218638869386916587973566964981784953496488937485960381686020464593250434786831315051298122069362848232236658385905834346823108818678773484944035708322531819679566612158045482030948298803959110744647529060208934807088235412734216100289642889846436460819119697136954975248338205727238411170272615458309960156600455758601891615740936583843612488206213896345283886597835934931683046113693343599545784071807370327473067291728549906860122031403674678356478337389139640820485871624748750617163913320038056102921024062704448532411131125279906180743387955168660194015656830799060039760571056482388633491915247483601745772629376774015282399319747286981514368818985719576103722718427755520733698600987052452253251476907095266571979588166019558509986811227468957697619707409283273051468579352805482073200018391630533559500906124946789863962597224499193882164250799401578330761537948454888692140096025782097459232241537975608434592034922881720758776176507929072113963640083605179966351546157578849024137194322277861742069039104748413052682500218870542893241972574839798724164289323219565509040672633213539955340142282964078040096279654225155276448113389731871398232051041222083533561692866444607185022201438479481881800354741609896786588512352778756910698494816616117665628373134476986843745448518402755467817449042849805349017628518684986101667440436527369982176115538491573331366489407984044463086541882960493162210842691832933777404312038124725355847751030319747869776815543647194067197054556273431718227270261969921268235429148900535145857550677456044049745725390471886142636156408198850709176543383576496934652055013819085504156477238481835963530496304420620094290212545751300555537725539100155639254479899080542771386276736355776695337633667613575819968611122360033974545819358115681912149837275931385268178249225419804634953941211904744769232902335988468627409903441410508763944537630524982060678335053555710925488040200368808818610014314935903282575350674499017718388665801316861207847069611624807966634661584322177987811711179631207999632902901921721136139104289510097005104587239939948482065456770568798285965091914781810060231782468051268165197453162310419667635802083267988061784658731270371497942249312254652243739314359208283445660153537591309040728367694337544888464693327621709942199310342371995800616549154570123002589271057253816754919502249449847098195905880728266547043386609309708969435552603316072764689601152836476279112200286979051104580180848656837548662357914576953424011377991383751640014672296893506301596959693580546906403189689336621253791904165742587562431204022848934557080619195638408071653524907763460820438196964073599687063099817036547214539864931850288249854269913392906101951697122983211505186897217525706089110960799587109319045912970925421678104994603638298039583891383403137479882168294449956974428512884819657461690659064425386343809055514022933044451408814370862434068248006671466861182578679833413902554882302610482316809870518754163038026965681732895202068803069606710451574413720247965829155460044004785755584160094926508126676534574952798396398178665737001089741365706806659016123995213025570209488672191026536511671981518035715375450630482242547774297337289749889848973812146097905132612697778971564552640285642415734946504782233709758871256206219648145596687947019001023384527560272640647400501992393892933462427747499689748502321295444367904755290073429890098166706985770271231631007252259997813997755582993311543314882958549187613785918058687527248835092211664988516494302574193805076062955417137314523482871760667997625632292618410069272280848282791464421723821875540212866071005419014488720979291461546000863252412199679268838057747276829759146247141051230100200717639688458369249735043520463571728687634445303988765567419614988810309816969676824441044028291849662754232507239401262777902058112689028469868083529865966943969984099356931109364255008132653710943030266088381462665120347330205294898951244272972756280843963795448160870087729118702033038594222803195258545341210684430039784546969772781431685604918450122987498764118197137779030157366799370940610324471176997225881933049119081346533990365762612837047521126902083477964924194619723802853827563517368607333167913449814797582277265087582664251015359398975258891281912543664593969632411739193363065565769856161166620340307106734123018040811393727328567093267382547203291410014127911272259358440544425924654410588833372722702705063466093967181160149683717648021405933388114263387319862117224162511544055698835870357983704216349531763164073185013925399751036214770177291491499848487605741908666151410706226359555435704481453135640190073569703183701044824515194569545568373649099981152212165388986386287682484916205388178388729132672881317928358226597641476037618004923869445656139349656920760079604412774067478598556728188871001708992795797631824942835155014350002713013848709080095915376131108956685209867713668443769761594221864103081089989547290858384950233247552141486518760877690150300719921311272208283651286668759936092016630608426282415481202115490727236289744875439065568370971275112292393426613411817523468618179456744060989876129033226741390710101970925265280077467871854549658577920883997628070082732774478566842558643458492153804918670713632801826321260846694018658079159350737738234871162120751190547390767905791426708059389767655462488401959633258471167868392100242332567066413992005339061560229697825666085847765619848548889049375849904668306564824333763157634249861183563071901242693890538840160939760607535828731685165248547195040809255036903152353402862184439505838560487124193214120374219902336079144231080128293537171656427726373016778658506067958878743941084759982956538588894358134779093798862324182047703389579446785904839146590897573669460222754714775774627130976850941980814018177975329013457544990101380108939188145371615071274570078682007290838126729878234517935013836683520718283368227976966811900909868261502165063611650326415371358872406892090061531021008075305124903199127969518520191369131455896138616591830167792903753415596513445409340774937941008397883091038963549875000255436984432147660908572847105063997994834295599741833626660044404907101809129064447646561139305878317934409865038365219276026664234962608185841969156343200934281344770438160014371684931864852883121559372683106449087354579834981342881523995124376009811321297939288046640930137025561022597335478305801155805087121208689436811517610038988022485606835718027078739214447907734409682884017544501305213216071340160014886546737342767566770022398571737225612268581400782542558193428253755548826184208447800854343265627553873825453314846010001136888912051696906026454113408192620454936570863177607603757034486328891540912009979335929250019051975091162484131361946736110218939270211536586584521127227750411375744720913770718523853480663583852806526826065277079652178502367058120115511873504285259029823205017839667223291283054133017262807978712611545158625024141847968862093513066836250683949314722450186210088282405149346754592811668742495891850989706886763888653776039813112280124275888995534720250126199850975137149762129107435031986244496203661818988614469871059113078474508463541330893421010597229735380372550883981310668595048933703798035684471454077000365406912522362483620066603820044341783971158104811220107635104057818785789782987528970571496838733305287269336679901372271446569160429889600159490074846780991334917043453473016350364341592573191216136247274361196122662686279362780700836238524244732189884279730900544349876327940416390598369702448036310516884515470996252245948822767775843901259887613326649742139837477125652260981822716614031276780388618799672798879111299900759503877464245095201664727625370768360525951004806875075565017606173039107573210219591116423260939812939531734792591229315123747358884050041604085392728829848624802479678933513490320140455410050660428360083794572657788759031541167444327578044123629036085522423011106037991071893874195706882957830155496518215105798611284376207930030042820863166017802001370078886918678368537757163421367594360552869003047193502343123591414104623743762898071849843006404706371386557024374601805093593587525432783671902140551938360100024341228426029902068668157911676883628289113536894592060954233151353299619418343151027674112970127651601315916886381613421120090846945584233924506486720653118534561341999598738041471103566931214817011307834412107461202044479982805076771347468538929116698185422953893207071146714753321155380721828887213703217232478758652928993132176978781206639534321631559207096569651752108184843043384406231317492730406492339981090250379229887892026271793499714395217424401969175234441758962370640953317626108212754555460281896137880512584078668103527546387039905484459343778517834409270451589159693488069193741209578626597170931281623434569962551208285380250491093918616507439166579476748675817829925573568448625264028269504554335845520247360412505795712724957881940520555547606917526752859821223921838746318135354772745348303532627641303304369089754790052233205466833943255478852376780706650255977091105110864020723949847208577811211700160439454424176193885574959499823380558444897947277333147100254407567012015328978938252867050674231771185084090233355625387865176408096868855178133688725259496412276678646107996003256986876297007551047532268762360895511732712192396944133099433272702933146514156290478474161961178205119263445001075142099749240107078724429631042619143911126833320789121834328952027543401757736576775353668192599439077536010844636587351451965596793693731066209670756042185890708696732418952335094871243763234691909064561446613646834179932270663066552041099438051694406132869239278666418904001101962134714269684316866157356180824134622085754576077490746497834339283089353584971413112802756944739347996714987881350354548366061198831287043965795537394127830702201574862557387540745963860020729527762852684652886092918698850408333824621797009643249967515801406481438519136654804598222993423830492068639506354607830678278047625880827887811192837823081321613890140732971432929057924411390975608731233203163482768862279159170930100803558710586882639042811520664983455896603575179749567306478226439787003825872273578911354741176950110230795838340261527764335356074585092057645443712130297315486253848013565758262858824279372048129698543207004303823150267094263480718084846993160726371126327774895627157636049445559263912329795248507127714495421590089167962634451028165485319370084079566612411366038601150270695793332237742308667799118430602585535102691846120204646610000499215057006016727223783867942374696315464594354065944256737407809183632168917281632249119986514133214001008483525316673361348763358030327222939712964767790029161860766800428554225587485650503540359733419568591568465574349392733276643568650062480525740562535938000527267430661702438138258954077994261291443047145963667169040014376790158470562873401252607906815709308653051239599676201527841787262762322242995356173223343799552420786790306762129970075937836029822294476537089783722543149205196123081249405936019558051917960891606532047978953996363800272408425745296172390314519811681575269342939461676180729296780752339821043612469240420894139489378405761278220434176317894391327838971859695119694234880976753317532452033042198776819641934260619756395424679256463316413806828101140826530519157045190707331631516373923084935306167371093792352409722565692221105635521156105354905788209406638426662048609020782306822673018598132845131336422765704256264585361995693433897426766208413570891962329874650460902461601347473567122769988033421512956113787748136898053071052217354268815547210601522560339846724274442771426868922008565477865366041697418336676239297110347733002938867470444140306689683371017528391036888193147182503507201855881649807346912584616613974071418337410979872479531155232462448445037698842429749441518771542851148612778721598391538847182952392271638298458121380356041554550120110509878239332908177031337504087417323048803184080470908098213822112606820653549348702322669261564039177789467681467640753742786261020308370298297882171816269995774338662192286299659961308039468177927770844444324838393632160156838814786710672853470657541791163533422435835656908447185148921718536867465621533182265510012968605517621784994984188296557463324856967920562188746436250148043553813426660063129095988491342534509403752047191612119012856006428641896669203860096475392147616605997977272867713856138489448389774129699647719129876906659930145878709307844174824065993081404065493030312611091348977760951129517190260297653139288661923861738633929249902913510016941881539293405616365236108600834411128184488562492652108808031270252750351096589726706842605201568089307195698033775055942149256897532947318536199735339674659945104652505118837355078605697155899400147140212354070335060273354291970721319220189793738253790006006231936550921647266520621347385831507554432382106865641378593483034963134905855514821958970321006924216210570572477518675988259466404827048811031325226956905284515472789439875954466855803871585327428583993946272304542733638111330359111225055345673699977026656466855436374535339704102153987367846134027224236730509713546834645021828536068423658846097449159735160076988134443250221613947979410384019822366356261851596960098765842449245178813660792061066802353597059734548231073812489086640991863525760799052332948637899547286626990617944298742446042427933494785280391725644846508348350365733231945513504396951508643367327864997450104895303757369527210052332068098898903888226896088586158536291861405742993080508132960397739829899425147953352328162486901749191271239700313371258266237338629826611426434691434445206477375113803277893157339502581933401568691276832296302141273309655688681978362637661594869776853495473872947261990077542156152792664459869340137938125754392500307640830197670882046629445804060845418861800718470838386595477070823110223625248446083304461297405531150859021147294718710378099730415798125937905402838174667797683889304455229098381333729724809861019542026509353530361945345321402537753231491571983256249794417116354617406624502093594478554952591746176774359605009426353910632714393610265721452740060089175912318305899944154437332052490362105874936373311185510710752587224100446659382689456345456104144299858713028365628369635365783680408856658407533830001938942502027804324630009521043142383759786112918301296706272428993454941195457066821191686714266302145211327449700190801361617505475639923212094940352303824776375445115259529880489304922526820586724545725530007975599915294641728812936513873505902583422775788153437558601364706051459415292914989223133248842253119462474720781309943152307956903240891525639363809266023562875346893900595800261099778990821613078061469096099568044308025845165417011246508232256247702332744917924964752735723250267301130432138608561091821358004965674018015870989829217293414802521108706884783825398683836377636662323687302311590477288979552087434748950713826766346362033364025635379044794592285072429590696713068949129873123705427208576238779209406012758328139458151167421923859573815391987740603846929905159852158728867649335329517804887599721304729816510204038355523279691058948844774018371000434084836231624660085284683181829244399744388022331008651081531992490948017687461954937452561416824383387026575207010589413604994859991002985178531366383303599463442885080597313897508579539734385674677133972892999483471684526106730339220543525766463643691861403817163522320164489432289950548060227092333384969488357496883196678323167401528022617031071336142099989720706553140214269622742046623032919972802231834434287950182011949142163250042278780330573973671118536024596472925596279620746396760624690322341900844033264090484105968358095361703829241627875662692201401407420117936667160685904345856039011520013592972266364202354505628698345349914968096305861044812713480647815280203705217582185218473783996734159732300900095384682675191903075778916058080156356830700514938311281497091139335536449435947737395484182072241009528050659589278186859706046135213035155961235834400512500499210597094700020806069875642689939343177270930358765943377578254972305974934963087660614215487005562457413086128705596940126915281281232939503444241973922088398881098469138181907947708936003754409560121980754679742687135056649719147525184159188829266278237363237471737315088865484698521734140217521348251019784079420459607082297717589231935335481433605813228627896276311659386637189896021096214740453629698764380839875796981935323589795567287015809506875006250313192437413060322188673449190781306964150088349927381712080437758751708544552111209286696186431656890668291198122818055367885361851849267442867609560523730732751912399818940419453874830046480927850785293687755824835128265449729606689388411328838659365424938770156424964105226388786352750574912746050474215239276672266249541278475043447298283359540768115908575781826724816461384339067636556765318362634061657186663490675671123487119032835461064670685231067106608456072753870124290593319007404198224488758372702061097077691133356186959423555620186843136576414318554608910845339669627290166528069533978948740585272678434118545936501769746762247936376273544396191108272180599572657165522303360139408810925244183884058835922719872540610990767111629723824947082721081913075543550140166117169933991849460322956381168294676130834966142084561876626849758840958332192595198000554997872289819732490652602269102869818114261768898720530759536101798198716381215698606390784552193207192490887267005637285498409477298628197854370465904217406837546307001854021494519392793254455709860090379115637931061039511764028754411429947923088608696060246295782878943250810748675594691383022151416614801997073644004582439758333910166592924957148284724689677348844590915998267697994255975453735582100491083422581629324076048631154563904704231166257061607665193245529716667958986756210094691592008995241639193604916407285708595964535400864988066384239416694070746597819101491426085340351638677935748350931800745589289051075905136572158963073158833238300945999346838584150649100131491695672012477712925917354282071276916230949279333177818159641994599442973317830909505244153924320601948441655264206819263644087538617024640247435309774632186789114749428225749647227308986109603975095072204259951053573159942467486565731864800161774715299114270544047653850440761892438131886518287092382678678948809150477935337270786970538839485760305027408862429082630754113948861430026591375123482973279011398425154793019983242496855942647531768741611473611043970709862263527088681471987305080227690314544499749203750859926912707579874572436811253573890889673619903163365084526951845579932139901935540972436454824191499059081488929717983794741327116278949000363220378688328599678256139803689095750619607730003405157317816105947268312518531466229926424801771955306145804332857809089410220032189390504088073148876322370305520189925574901003574521506998424039198450907842589471525317689529606714855946251706958722714407488076765291514162687071667955227214897596757206503859694210053536408687242082436432123831074107813082918071917021585610337551386738764735271651863431520152631161183785453065115951791686632551143171631458034283022197439450755704196064947400923455149193113595096974096777393856057233381046974147893503616263442489037363057869843594651474534602015348155473610273109304910573521311169497036205100049737677591224451301208611859148721683110632119803221553692047595092311552787187321517394239227160897332292097443543894964226282852463521268562041183697938602636221776149024488381137279768680561719350755433145520924135709397890121930402204839512174898694237796622828057895581923568754321723109691738802475346352383858258542335192089974336016075397749052245672896781761682525769561874912707687811406358254120905471857620337947808319305261553336576102982032654955983787279263750872999515475899654787004788846922326377920471301130141804507431518403971444568538733660730823532121382098371212368460571715128384117999427473129853581731510014894723754375244120289476426529225217212070020164199772116756553935548264856106932738242370088222245103958613678424204660361656805372237907223695911805354662935200976626006031933400106738139415718036773297960848540382725302220155756275703785985173686376429265753522677422697176129144711768166375818735527919323078409444929352718741254671307410738401639163076343554813814358163751853207032044462641129035975828845405267557704330167866400063498919825654797310726319595448393134182730784813268904105284838839348109664642999725049745418195868540795204864880132087862796055454657071669739829220146004946241560090320705009993270311535422699269057710318497169464968373732698880383886764508792911605041895385477990589505229505473666219338146472302438023769776558263586938210415687639854535290024274140603090628144035724212688692615188868482499195116944345796094926101176899481599059796301013802228242548519895121049498680229283581235116481883880506769672682471338925298600037893584430644627526543346817056700589140932956305787284602796182804339375305048664318294054415638873290367905668955936460364133370507313957247062927145017808429147570713818109548077051294805274773180459245988922388775744122931502874438317056947763186220327361594746008288336127275007066230771108393497972536551143366786670852582689544671332926810393459726120677952056469544826839585134311520175597418221629283416666079039911111425269833314383466156093356693205807846265969545411210683319740892738039872873375540102966894538658276258676759356240070497202062496265111173935836090818635630207781244803287218829946706616624541801236387421070747751874778931600591524066599648590367935296742259713891303233075125487317124464814947680006154420036918925814308323032434079046000737016443076638575821006175343763536590712101768624835835178499082831337485243047663627764546296239001387090443878605135334400404913049510753275294909674697143736615535883055312482003810386584908826477373141716494082892511805185876446446322887165273187820831192735381070599390977890797840021819698779248949011843722339481148537613131328490960147591012831067727541663506957596561575617174017081730052912937273122621285299244047351929746908097947990169925275487664103928493650962053270657840828837232607146518634323022189056013038839274777699294941606353330584942333487455842198597219128509989068177608921794857860884410571151693283702649589010555663885189597552586377453928036149992692925036115108772706632954820014075194664773744806190579788707851626109102792541133720194788800802563086974865809887181660992643930883827581183099342362889879148241917353212699099232917583068061772576068714897280661386411693425969332942822262094338042999293326676745598147059853741423825696909158565697815460316671802413813765608089233494215614529504639628010539413718069817016727826409329058656099007993332450859620768689741086071149951689857898412261592104540534645120661976956093270443906569491536009920907129786698563644190571056926346434116654407414398667072931465752245068907081652956067460771290008278429370524579484627990244867081466863446217816321206623589884969063280479688694247356440948169718760107655502164885635267875785428464895521659254131893784140393240205118264148169663094061081751033411901679074846251674788206953043687511298111449826922043182976287304659040571100737757499061187856759698057310885170684312430844787554266973244133832218282623615807400423279684637034298303529480020068739921986145417803444608985228639036904799989728978305945352266928898156872098078344814232687266237493737386614382832078745993360901056001460922560486456640896650256370212599856456992973381389756517902934217269359573677945262569410752732663399892400561288443675005132105191073027190804761331540831421085486051089398802731798508813246413128930717912539883213806762328066681178470896001949592286212999969076914112018321789443345436443151421093971693855456948975340519439450996623333864083509890614522408467376042054806899149250549440047687432257301003375776332457541963085765901607396924571966898330938153216790023481231480876225367460864953182771643407965365237315248122586355081447225196002615560285807343918508412364403532782948223642280086742554700420871395791838943409122348182343067057072916375166912751651403243994562834006302789763887306532568713594236489203227676313045196031248528799021140635676293002020196638675347184525722922443154667149434275543928786683598278190508769601129191276707998570198267358772363494303252621069427523703900132474279752695112423824076280511908131123635048553874968922612207366495730903730198431975068443390935976508681742792533047582927924518202631477552839680532648895590424770469345799021080003081660454320068062391900674678762348771808179958905259917539818275130686635262466005700451704347216885877275395582818788849316359719662974676707104906096925613115495534373397201506600193645752811840060913166874139796714009400043554616482216339943486786671113562045161315979900200246982449921100907564526706290503913513849816505797984051329764795717153521012010293920708442155617675842418528494766831305740100862545961902919091105509221551575378117726912193557783028044042528204193834023359334797354697449614720236706405259162805986536419014350008461157846260997520674258366932621763210318720862011851533946584004828041980379627098221584246703245522071535008058982739927909191955658700818200770042321115249426236139401015975603073288231517200438008527165479096588515835160132542525434205444908636280980154204043885785504946256152419154464003716745420137713068256929917488767191843333955633940177721343986162968656874001019105837568671078199743770734381737108946525441370180286885008673128133071973311660054523625451509495019020130115378883542064766550614382341499073037252044081813472141755256134764103441683791594753768804812806174968619154780242511366760332970453833815335267644618478251327618569905771020705923142145756312625092549627140863715468659580622116902580649464490755113187476482736228738519579383743789614714966982772710282919139434262107805163211810961484111934873115837165125105808307402292019067418133105250507443711919991447762163501825606173215244879636071549893489249379050768500983342912804524609051043883617493561965411601728749403399852208190882156634371476763018300511969223873697705591053181559716583313604484707328547873377413268138011041865869474097612649658732359904925859084128462227335745608708291396797230059345659154074502200811699519498204492219278018492867078704766760173773864192236512431818604407127535266814370962668734937441374930783560178812122525000191888394977966078498384210617602895296710609327308881676380506033050182574946108618372566176133255475258910870753694828816972685955678069745470383113222227391393978694127294361260325450778045774991657227874385160650185910695033572990494785097076895330913928490568032959110830123642742160230547715273004519467931890292627908333911020115947654661184805938774634678906931985433276179339239087835691774809947474249628904802690572807909418020108295385865131989764201866637386472317953080642878762160384061648266697633829609948021430232002209690692910643011196831138991235604144241899141330299268608275149327721134119974246596628080227353219517720961610488100939873792769249373933736950228475953431088591738085964750810462898999827404799089606031848789419834850593366477967594533533892287765931734114690802964201340014081405712328243250090428109071075565720347236010032711478878733248408836351435953850643423176784698250051142840503609352651585966370905671331444919989274718033716687761364271377361305866724204737933246487556177750180208906050770690347303023533496518262785718164943021710767139089477381732721073942631359625734403670988736261998788724603133126766765576400894056184693077151296409313649643093038507796231568076134560584919308113698732130699570342858607639473661401816401070387664879349264309529144294424844687926511125070670670332602195749934144431883541197539288488354222157381733373161629672721326883887720997112318222766742199210985110508062195542822027808019162995936255697309832882131373137875140339289888746872044073094826416469895506947411379558978108511373716252863759840807763745403861633891213233934882580986590402394461095908640336990159245007335564094426878538868254756212531702370649043018014046534323916401690444068688223648982361503176514318427331289859399201921206574921239707899489347344230722653821568944559694999384377613159810849361048652603201451348863036406867387911886850803706927487605474548483200808010712026521645345162881978617612297257535601741748006014649855087902626506207786652859232115532679920199797844488187755651719204603452540637940174214098176574346879295307818723325114588900555728024122928673295776514509249512598279043230987394178174352256763274967219835283134566273437105281667240203580793994318259321964477809746393475709406512249877156696000284225358785806462596806362890564184921968983968032039592034786646675918844944877443716146726781073582336096908754658960896975225675308494421567045916918974357170824205105797353074956649165828553574054517036184577058426936296313323596638318714346600348550179301225786602999740467221574758446109080260348978458295750136253843678000886580143255332089556253981457395083037639849641815779675135725212741056437167296398976926085718010173229684344005684062744218574229269040656050673058643434954418355320461590724886573932323887675590833833429401479119712176216730169771337065668694475321064540810172471853803936984565132269500091067187870548988366515901570830077159606812979783103326800177796110674831681891594283880519418572508417283547445320443501944705021972846889216580177680798414638355854396555746586437157317550763949594171978656905639002960353551383703143776506302139265473833249186977501520383416514318993335861251438645819670632129385392501294393425596591899448955183624028446829654563633927150307635675987343566426876890778812181006187862894726231628516707272383902739020639092632000134087102694841684329093793265573012703913517663329093811557979805595797276243180956771886832408805529530798264864990488189919212421757917731875447927853864706207388252743834159400421016759440466698796972384286989159535511073910940340420648241468480532629204596879822351268815346918780336352137828138013304131285494967447802761851963359877643521292602976431958136655926472016952304440698448343953216038440125642814360222602361248161581716370406673983904100346575030684840548777474175187582152256544643952590319724681354010232692854028055428472737859140657628276515206713065538921272478555263531946823124172331908366556901924216875044157038132039400770004801174055576324499355718801261940111790132482870500552137397901930058489324908556087967959848022230477008516937872994696636993049836464173648159439974535857596884947346264437734339791295471038931615413918014441380103190190795837641788764681966867556612016262454536185834945816840090473220216024247592272184011742634546794521879994072573882152797417975118965485185841531772700138676608175694120096827252931933383700454465402153181510877555222595279202414041763567690917290416706581345512059358371255171376809857107363606791740137976595858132947189067044270276198220510519673230527989701083253036370759694880923534344929862766451671989070588449924353271834206800081963412585714719741300524017110288308518698771206676859563290065784017388002980399349486949950288364728551515336002565682008543224255062048495708148703654280745981411591681975636588375025504915981171366933904512736715896672650264692780757702952766668644757250690188100043501766242806698181401210195956245698498093436725925797879306439040339352724861704869291134483367539035949205695341131971282255549215559276190058034907999027692018958730652665383028341622354545740885513048096262797352023822268162084775142779819992251442089873011035436907440372387128681679814825900201541314663176716513193438485583302840303021519535357665506259426194082910479138006697157919544289172267184317867038143117411911033313630270585976631587328096711659414550614365346388455631350711497646808124925835552932053009770835329157810538192452780257565027999959094840582578570614673817325364099541064226644648983029841845268469317788155125173669934514454770454626030354282827550199321500860768314463571484133191885164764528111091092412508224433566901515155536229916857307646244524132248601276319128641195366519659366515888012457547974396955053492413153856820657352546716834774808091250504477411485825256776281621071588180395102571723599735004486083825758570835892707224103598689625178455263526942310465734088154740162132175150788668574729074253850434945118921200850229619067710259972506399487312001722748650458908826055553857172003984251186965703091862994683365957884134960199587878738426142618776588361134728074977929648625289894160514302536711932996555740670582095444325516706633692398832686079494233618174153233177688405145741547202045834413206737199807799308400314475977874084523383550841591144168169762062389277967475716436376606391236042370389551574066979757722892369767821912720892757719280741551778243200874183217615138646993436252480136972135181993504109898079682016277718613137612144108834097994396656060691465368109947606099540126810447854045159287501617797504615473461289867613548944844252389428486237681056338278333917642651401054666459233416449925040887213097112181216976369532133695718144933374197653154313154383303051105251448827849821558739674290144252245310087371551696161922268936802180821838305998603552026004737612033680308781563949962303843553567573762306767230754684356908874997631212206025537751640066966360313770706344837615652833051907681075403067081876802441627322609062494733252398667154485205113109217245707727360729814091550263912929872099472530190961076808467241509862147322998105620499004157629117595157566683236110345730783686693163480366800432891719734948047297567307162882477465098892555984780292925058501130428192009061606445261800199492509681618865443526493375176386734690322432834140429638585396589593435885976830227277822854565249668611001656101082793692020735417170320880302551094078541609277682851849466655187020797573716071454122190145881990092919305695199827806558521186129649794885765450163892452787361719457537611639596654653543861666629003463023197949903077268626940320275608004513979441730018752104825633290084804067698725285135884503063899927324502359344762610530873969727919958113620978370733135488563359893511535380349644285995124589930322225930262041409078549916143473908048524593555428567637510622439172456504732980172565903644526187798358685671776124068130057429146490892949276059663516791321590230019324814761741163388567219999455514341912602414502239124366134424796534225895144777180828364814528614358519204846642674198134439629577024719742854951400533306286975330909584380220512600522976831108985564148738815761381321751450995473369881860878718480451322947875888514036850813522037311781129381600371991142986584950100681110039649956142588697193107512898916952237808721479289923939029024224524118002268636407557572161709209230481585320863505450730677222291850468250244043113915808252899537910051450002813081371813104279930140222412386839873993366951597436610303651035949399699970778400002846040043016554611768237189089335874661103411251374069706969535697728727387547274863705920091557145385560270502944839872603418879775867145568629871975079156377192002568789517159523369116691264513679282939413357518516742924255404715715718233860298972147445388633688344917444433830649003860323342644080194466388177971571296043716987954934025439843844841519465421348788816223144173628211635744170696929733787954980118227447903952049079310210641016148793059788115971222707362294909833763239252921349919549881508795773296150730716062218309343133487179423155414515207464316522191848201794415717092024040712079239480980559637565778596335924456932277329788176758876434832304747827190629996109716925645980589221684255154423918644999333598086709664466774341430405073355450693346867803284894293487324804137952893044044632448352436130544169197156197334292747180149650559464193851152610477493620064291817670970313174058598993008764012694471926563709239090206637780217725184494878877340741400736109929608181865290524276420529159828399513822459493619931746171123418176060730401749517289606701781752615658820547462971780921210682340572382426442953761323076698782305413136855503389655003105867958921119750135166580235938208057841073878209197168382864693471375825053914456407629029874652254218222117236902789159738774688152535374581494782430132319155062165269641443056838642437314703410362027752471840069617405508313390257406443740023783619844809113741915666285093978597012671431330371434991194448658320985861540194112861525765540931699428616313743790119133269665705147545343335873335570641895460489629790421975487187708264848432423188818106739105889212278822118070175716564676166273556617417417604905048003643014197453684924921455675663199162379326941188318621603828761382230596822256340462998611408486649215475490907775281123014514265125338755414805666607388830478549601132183930347457197506166132383870183790773452926581854444643657799169044525149428529674867004230097429345654313175720974232780536935258409281080326082560941687024099907503062448388468218286968491521288997960083611177411238268843845332912880486999125711524888340705336451585023775459806862718968810444876697931073106236519817812953047431549155823809444738325313894191597443037919265389912323520234983697358441380538555260836952415270160021831461700254324264018386733821736061061672940327540263575534042510122048702329497400180830151015138238872709000172543144522088072791957038946187757624817378317396531348905601001265968079849751550165326986984366566206313687084841766201502577855307625824266130089721832058092853741780556235928528459641561912143103102956420606923839662039422535812575008571699358185123905264996252507077529842755179437212546146059922801294632232782028024542891535680040657760575392985672592327299178151865917993150936901739080049056988969269234615553676579071990216655068910946573138322884639502506232761880312962727043446484560784659494595084062751608865311004018554401584025446170724325846917785557681417460730955985174863101137426579800199714273078884376297579316568673699059447085097239063039758077131458090431316109130040305112391067031007694664581412616938996689669905749185451942816060596893393476033829478818607652359361405719383023362396348791055761544921903682665151450893953352230133580723049577763310969876593257104231680180864755273428225381449433018934767364465886326542410726720653204526066583162987664459715870720240365350403009741322810987548679423439547818184402894390106786183798375882730706478315640951890617995864907266345482343801149360640427380537533862727751563436033167545898865277743033764124255379172318069374272925795379261947838412535963974373189212800192067317080895646990817193287495718009497046616115823190286045304897670266511988248504933574245772596415190645385910698214444780457699220144169357922207851074449377138885754505130759656091178631441677277169305482285859982464869200112709149123163980186368293922316882770855542318222222597941565138845372441228665203457567556490467357466552790105034096938282470389540724367620011078761918094506973226227508492827184803516977313981475275398349894436873462651384198742525460246273230372358262895355088606497973594374268498694939712054043531920587984057330717654195577608461304731650639529620466680969025199389090781314560127714431101756046987270953397989520683006945936907318430089890708171679068593602350410047413684572372662196879254188870688954962790227510925563364923750611835142604377433358571910730551047367071852689219843532497155081081093293174198159501908708520076311435262254564220778308800715761255925188886598705719226386618689328206781907844001465918095776149248323480026382453900305431628627704279615679502444878517775362659943294313510980479370145423228603295204580995906611077361726604029526315431239298326352464557726925361363610211602855035317999759195896688398927666914047478221154978435062486231683775771153766906614203292979552698585002756908980254278263837059892228332615400860403849045450984003648861811995101355197557557615612924977517026910129577440750026754585926044577155234905452256679433372559064929462938012767046919708751268634681456138198691660729317718314617333201042961866780806644773096222537204733982710692284325479420813349477873455494101155395141197704418992459920828081951298326333517414339755740933908509677844255303864425761043694674740524141632642898734193252269077352073144936323170151461673607703981275897225935982704187409834016718687134294760082143480417611099542911496703555623144274159443946714513719047175532204711263011794393865465906926006177855819321544992131022485410138536396175672015488756345614054180411210025972819386858913913076551357171113359998456138161733206152970048206935459785536578751676670068338646418947772096941288347881530256126421272628161023104127027590001602147128644125645123066157496435503280047242994811913264820092496613925632437441818059158824429963606395009755134799490777655094498577213752924693991971629021609397941677026866362245062671621768489879543752762484302502312392912933425461052307015632990976275151165635842170488750980862988100957481378376524438127246296290134476354343445833755711978548163432817962897719507810329903997931823317221243379330788619492777868060759458302816820594174959418683807014198045994426589002736628613935166237648899290952424830583722159434331074275775208841996818000114602917750426420897503400405721294436271526372308129114170221826801514391463390538852607320183610517559277909492025320786032292068009070618290170033482035895806738764236172814297467312832179966020526496721072338301845287767326139577818694003584610782424471614071942966406712996643787211279491510464881620909048565406317018359041693790476297088966761176196556959535144196301880136401393818097982142298946356351037241965761486962247020462429654010646616134279508972944762635098915959482608172627439935983170685821607346112325779722404055977915584876728474837864123948206605381660463413426472517822196310211304137071672325660480375740190863540950328355149932243495180187304140107692905471997759437414000877947380370160157817631241275165319559792201396127877479493115696881077983862930784776402667537147375505723434184083291365882243719100661789145975481788981379449135366167133283605158702301887550137861127795842131405787677603572600587194822439136444057263666279361169618995364787857248758972990286687877945361482536751861568300040778841422011843184864519129933120824291583746498930519757546292602442016528226038296449435045055932548431882776480186852528528055308760024561604517186568105586518963052531664142973238393730944357404603980593127239439051828446357245838877978387450226820953061135221454963523092375659874896684707059087441974451175985485315698103318003151017605174378894653553366889177822083701731781380958530905422507033062747616211259732419446233412034456516147548442975402644653975488635878970383181601638663840187736662142780679231908288499570477135337217552578770726073528346757770754296540755347903984187205681125477368790389204281752868424148534154949424407893240002446009770875687826422120106697505516891139083241516402019577067321172876414191112124793523903725500800420338505095869591325461398902051990807952004032700193496240258961780997072268300220418154177279754714744992896957957105657669963021435017217061439206157032201451023262539855273490027125729066696933182509293089642611630730703773362509779095661331902779133776415315838365881071953969631298996334898387757368785085663756437070071407004523246911546032910704549307168956190540446159863417563473374119240310975702587748472205066834916013226963300964733268111839359719964355835901548045164287960464714670810420182659055512973839032235571594549513118053612275458864409042924826299718757920036548798262620910219309923277519999095464344624972302438613332995166963504206746395112888142857759686303426814540687533821282972375499502461718113652262087041332183858704938740370223981636265578129170945918231987589195647229509828263535594217157223573512255834446218216363245329963486229960103677538205203232429508348618680572102158747156237755344157980750132589754240291865560800158354195259620177678286531571609093674081008153979726504077107946013551818411025321206997300458217979872486331317471414919661032292310852942643176757184150667020998523760621534380186557696704615414245881541051601210332619827694193298292657136697862011437979567125968358888573177015832006243504933521153486398115831329694888522445220833807287461288143682345963128303086855339882601370362117043083918337000860290532483165789906891247571662585407157560948680345985647369210888016054364080510496501689111590238653383494807747535088817622309805729221582125162120786665226366043354630296555638738558652370860096818279900290180879685876914627826162725937163628041774882242754052525351081135971604969237451495742030828648072147651903917347013759081407986148079714034932695781740657412713212705603589554592478193312414388987324325700860141193253907235006910044104885937404312147983435792003404965503371061736091224454466098210245289927819993233340159346091130079985581374130584372851754363181003119007542944022730134766852929817285626234043352630076964205345051833046475668912457656729902239017182579397928336678362750114006886526309113049124101342328882906423740201217982884925285464377379283082009025991000268429478033952842411343928882503801999507509893644276152940276896323873184064157203997464545726020757900062258865160406863694229209361816459720216630381902940398136651417799752940252122997440125394179265062978554927783407465060958498470298535957088582519649212925272847510741137193696756263442970981729979164994653205110259661504706094825950820452637819430873332705395692343708379892806905944063663563282966093352836678213252505533779783221212452951468438893792816364532274201855514981065746222718140792973930557820245429239019120646756117148210197069951611836486540272098578746269722433036520485927350148090786005175944697766768905362330219057821604538961301181582710230862898832751027418873932485658168445255493708389537172335351336056580199986673853902243758591357601600769345152440356761976953858793765177674168641680237700487562156439726108353813902677075632562521564971661724718760250837198282606187274224654811950236572798804244227862681799224327912405999997451112837539822858724760941102635962595597778908793897410617735244300716315959988520783042485210305013728621850890893468657418725601941365774671997808542503690686306258835957273538744794167309156280102589315568955908827412743707744390450516729885290576660911936878304560992915510921737465409553037279191147708427164696564605873123370674659882988952412490196545756075786052773429933622786399350231697115726228983300961183020709860783649335748213719768366376353903630377108859986037467332576508886825696198750782481324104672414888177700764252018370538508492030424187227480561142993380886951554813721891420088727961636470386055509147710783096090487163341292375145587846076403170433875958309030904553710230569063848225419097892721459364101102276115502549392488878396205629329640027072158839335315390136377820085642906617436315456783987881261234140169183094538412478596170774071592111862997760386537949046436753206580880823717289430576048563288162321317759233425553090416476280801961433202429540694676766986702932255982707918834616127966727720035046637910166436440757542502411473570480653968657166227495295638941461842231376841523450801261505777788728644763444123451779792306431485186431760794743929498914999466607667706810539491863334737862883241059357285553370848411538993084363952328916469731421442640169987739201592515959263531022693603045185739680883810023416530383197842228689736300110939004274132920089015042857007610603356157046686094835242931097658039639684885006209359144601797743561312444407893074217892982680100069221990315077001218869635959726045392634744779235056936530265691044563388722273032919254414114420964232036568508031695366705743340443913156868246989054877710564151383812619114994239578893816214908418565226218219162242872983346775912056167121499113016998839228781531731290626047933776587587827017620028763876615071415094913223972916499573437997337342795471046315948639825518498722068637946934924094981025767817206747973736169989033482587695548919186488692833221328573755870713704026802131496833599255271028090246176214479771104194158987090696074395362833832508448326541183517812380310239187264565557502838294389974672317198672642612733206447881573179808084186482078096010055795225667967551463183804249252192029566647463802581637298118157484034954452823012179875033320999417242615916699400327997976001321076884340298516577894903742003213911921839416034916033724908280017789886852371377992340467853620252204712821231778642512216141374588021237099304412799685243048481465912726704693552085235347357904696628408105907554489495022894561963243780770058311262938759542428868285460795057976500958583659441994141796033473160322363834208928917089587196091931961279756387755809398619383590880084598163983511700334174612619908842561418790349097302829571928459132580055949136360806987497179263149202284795327269879223978857870099101469752787866781394017963818094705671806702598476052895452023616430196994883746910643646600749621170329016537395356272431285938810829424632447507781179601687124776802651364396402056860698768535685161039126395337361656705286635970223967099462635952778068231980397111179914210527461685502026627467264271799858969170380478112413073359855532606791360461997783510747818528274200880654497160292580081383344343714279879024780524307456218578241425193090248705536733097495937848722339798593860728942211881823904372793619818238559249983197806289309025462701442606744753102819484426208400643827530554129279972118807040248360582175314057040343765167342484186242325642087815929811794137967835462284368541350532270401925375456239849307444708761944674141963325154798842060828323965421451819153868977980434213258336477791852025339978132655718272843262957223890390983444293591913752703566687748044906466259487656148659548372801757971822585540367296542225990889525636480164387779113667964780620312104252086834993772665288044553548905380669193882089915550814877152792659290977598063437480999924859019594489427164508663587209363226825439212440049018867228107693255961138436493752049635660154867093043072714200587502972366410289485128042223213734355459137535086390713437694085581096543596401247222001351816694055795958225777176896604546170447142447881562147855812025906644007968161865407123748571464109956565350880619343978802566971516922002995999017482098345400555543066892433685613988365578500683532449087071542728300992756395081869835877332829190995991893325464806406823210235464960031028331565380777749670470988190153566289376179847667339516334973198807834198771243472607766344343346001043413458305470009942667144560373293750718078782462802612322477638840665016793881334231770448186133303529058728379195905374014781490299845951628953233750769769486287073969251772763755471011517953606505237196793966869430258847276017440894101471276274153390694639539499949411440890102553514578878934929840077331135751058135250625823419010946398121304826998445289884825774737514447010099380542939514185005730602633472570560006487191835265754423559915832504311484969094061577351023545212901182741055236129441411476469216835148197174239762965969925893303191316939421515424481882344454038476375632598486205215740820844878947869401939924760256635807819497343272350820145842588814003327043996137247329108896861626157552613241891543574638886354595236517730037724609832293966938019445430419021798775772503760612484254764014131884074240586529491505024111228670316390724534161566233379696465261715551140564919449197267478785660501678583676674340683947997693066890091191654710638384184497273491378760814378424865449783339111416537099608432293997490011799023054213991217985465439246277875173511833292829718048503975343762322968836448268059239190444719647222476545599305351970731480411177861923813299501147012767950667798679130968584497672341865686427632290015036428048407526498714122000881714393439208522106758910035295376982677237237247105105898519936910534805271913305092293621603199049016058275763345739236588112180743409545437067944498759212892789577508962105792585143285047599075472202533011875192006334152037298368269841025166750997969114341311398544494736610410046101369433652076448844454496447723967074960244667440146904751526590960213694129437919135692588393284453962827189074995416385120846845738548046633047412857315679993610765966338770839281762137611644024221432963472013346093421315273702395185994823215476919993914775548311505149520409477804952390464037437569449326184585383084072872087555318925393605304039748348363774379203742780004816643665337930572927681856661944344546258451206152056786443205254516859690401517088092589000902064757999186568613042317953256902034065804155350699929953603244870849030494206219887745691607817765472182575409951605982807675396875349444166981929334647358599285206377263384521556100491886015840198356390458580337564959220896365594145673962862264429808344193424678187273715143314292956266698568149872621348906503591299565710237418058169557547588422970006957298939250205972077198333489690946541733879949636133217604913054730385156963209401849359741051721767853438520994361003891039772102171603207026552060535711719905577290767761972648243985112388598053067880006119767786241750649527459342407488804233356985829398407749880341714636246085880556021026338298290862038922575231835766898469069507543951553216713085647438375483576469358039836977795237024864409473229891116853823337601572160827943443455173622097705533394828749252538907665845472426165338443918315175416053029385806619251690718111275078706195819060141954944770724501296823381174995211448638665116500081352135789441513786379860197206802852148966847028581051084591413714834967766000356277384219887552016308625521472613493913947182765094811159657560407578066568077210796269757563956893662379203214560038900134559182674325972903335531004025141384860871181075997316466606998379960878663287456405051691556487305551266975929601958816594186507633841250102943168328594154034627968586593848870586548517230370184964859803039423253135147600158438533333320246097355448272867730446781802294938959717784343813780922611754341417528054709719882791712467420993506279184624908546786806582341148996910608146398194274716155634713376119107788656015570993586429128277404692853808234490572500190107032287531874681795304866508384145467298779708993162603374014594607719562219785579144237844295548479053612545961670870088201517527182927049168123692255247827706452354883360273138583284871230552935514503637428296075417067490525381857185632791155053661075758167869146095905766880164143405928991733148754416344916433071305912132014505693418478408920069330800649935402837703466273349897975726579805878546763576770927031121177918419539657721567103437479043258414110173059803472154180237249371075399179335629032679207744352861498352016719991044432984185993620831758582701194716835417241564174760114764679663900208980986965746391113179161202075747741787544802420922959256330261827424302434253971380244380837555048398947762284394767529215244402114035707397582317662235920188451415872610612323428210261402089179089361000037149626440416625369879912141197656240208272170958416562157369238872907875215024485763173775821736998964022573594545850905659883934323442556903475295732794101540328976634522888431957862161075871543878489474189094927255481945381811358139916235919424303619912687588078996165687927111160086981881169112059115870754528072836742920651750089105002793955049147597931009456964748037035997479144710011759484601039180747976194503990842904489023109911146528713176153619955202737248243482139659321068326327579066650259332443771073103518980566059264920824909179726751824389829418733764358703983720051029574563101222188037397934591242194367739626168715511277794063978287614825202174722329478150549899256729166114181881433534452176644632249802936180221670771694967347736200429240814401288064710441497177005414427728972091193581863491509263036361568597185829027932031932536912483583253940928471321224381018435937640923196247337587749727104055578657279092556572395196403099601986070171964072495978208778962758228405127635523254628829686758294534863966417752615390389631322768215152024393701426043877535217650649036447204275554655529519972224469645695678618965065868658063169699342263828626561251195981076242979030124269328612883359655413696438874796992733500629624104856202679197878338703012645129563534800537966512576182239847935252156680530633151249437708523789095702528857698496415777911994873645335299284215049707064719581811922241003650970691445549482923409925783640670303615148887911503549402700248970465092282133154151832603282568998532987779600706043856360482866141114377650810262665913995453085360413897870774728541497286551092202943066068241117446385368679510975168241107629392550076596057881251398227327525462063066900499848544840094584767475928372478174797041492430090513966057737875653468545562272114011944214325161076916660880694745862854483593133565207505798111443415942207370339338940900598967259938378359662797662736578474211272212408209322152942006307833635941964494674887855320003797398571567688953199235681736635182225553793531104887926096677359495060473514941530370831983828317337500279293758291945434360629243829268260081853264370303651403869553810399960037793434019742315666794900270669572187315142569950738609652493450590122264659871329166496529503089594365692745940683786854557616060304947648373951747619184519575234758091839530491250882491970021808864309757509165495857441219495047501835926288469452323956398770214216858632358742129194529298278630520961246474746786287310361807368350649440397468721558163731068593719294399035311490101774588704348252971258061231048143472603029417422540812119942147977268022804104063517241686325299097808426099977271017853098977400188364518208144046157986313326041489102535043973232778360686596188711665361411793457962667007504532299219607788757801154387677211447550853295464585634269666748503006594530468121956816698839830464800593675045445259937166548144440492597503979683817277547288445228242905188740272284613738296284785785218296067656573830427154423282674689215061222015883349817414931632988768948814098931434014037695206490682346919402663016849862067611611032606082931509642297428495520124566486107454058190206307185129378532762607979480722229202085762470491669507816713751116882410287311003503228018146559030717908116470243679671580089804459732434929099581939445622470809937993651655245999437561111390025738091369634109631247763951112699445393727219090851030968620424307001730649558262048562035454923026696209666422955211523297383364142217692493855494074641560383984180507441579263619318665252661709914769244402161640219306398712122514485028390975841696309858384996678771504500854565654119015439841879040461498876018482925259499740096639127417027665777973972287625228351184262984565602436865884139437175277424801261003266025559443172438361952193421475583820839823760475438928254432596827875721171290186452952216242270838492757944658222099504134654325462797619444899172561072051461195481978168518740031321410379018828309582361529200075867694224191434499795606680388530251821921981010201388980170127039986562791000599319839523566003183926433416801482564769497501408341433604200814744923097038033844645969850524296250681927038104942457141378960700603690844470933986444369361791509239418669865119546372749927752027291862909653415312080777759045268561231459590420301061216058699523914448051248703988744389716996554881374304292368951570104278701344668362986007085704051824043129882821572714561854087896606018916975305853345070715192451841009709840360584576090346043484300200096272714627381238091936340961496740915622608085554446840782560731082630597965642053496930073770145882281237198115466014947675454293585476457457492828588197003355907926822492260837737333823135018814157321076620632539384712037113843129673351101069840813938602278584286221932063168531462699358933635629377442125683456142823092642513638958410363981102299539454364971964832155408236148392736595805238983294458093096689430027473053883003650729313627691408291567678797333608863546915459820284645787806214165721137541869790571908950500800204356580492041761813057883159437596283561618985505311887374686245159124356075987410485445099062082525870775072348619886659765103694854924364673628253302210986619505446028365693322388684221261165833846591812006959090018592454872716237872376725084640991207871703023423649499470049023850170773634936443775623480265981716824867897100943017537460094828548165106833361584789266521758293262227999042293810212534067049957533595184284788496019423551813613562190555466955059309237639614627954795922639165107258094952107503292567732298134325218641944259298546962883575109125542611250196480128550350387290301739693889484979950294882120342327777520278840086041412653516997508372730182034287689369743892695379323165319304343325494954379600146908531996591905062914235600307869695136203058866178098086568631499110105252462575138958414420881626520817847626257714505412981804521963739880820135095472974329772387440893941540279367044975792291069902068755628476116845157851995512278160817802746392902770627463822844654605834143278747208702250136205663053620428418511173055555007225838132928170493434575668531133233369672780681557904049904763031347848237910087816998709875526426650961736865004484642024399804614895332773570105231987056494151940455384584990038958238523246761592526616272753082658693822327874562260491411266837744951545628331527588121733109387182423911715663865132820001221737800984565643912038183880302568134470553318834332611456058385168965348020644915003600133612027887606590546989277523194717967081766971847878450819848722196442120377302509826100112198352448259160485603831893076974072900960145994189071169594975976346148070871723719352686717678853779232777845905592999357911561886477036142754267173032414467655786514994355623922762386400271678735455665478607340256207627090585391121609922974605322540197087835023634021111155364221801033045970817913661232069986366645383296714086593741470546946798199649375402855223485706421843385014167709988729750728320967671669407585060912532018714843184890098665152206710591426651214974473032209045518452869879236521672014537965494063453009454151606343115230994155769500024771029193955477959676325611827747421930531635427941785180924577612624349187802131539663420100802644472705983556151637467776066967076892227526803996639238829168699120661520316161422141152079617615157104079233212261009473999921864019124141369644032212865777278952879132244051613163310583347592989611776314630555978170000426436882155296288572601819594103969287817307515187505880034469636982061653936217947885637639715985687691580278874220156716136649801145049808897889316291948421806299668248247023667761913348084249064077155991952084020166609397988213511840559501642267657947887761608426231722037582118311973133460605655493383525845517254870676905400874402041549222274856449059907891885278350278118437319955623032864511621009452701036011577287857876731986992218554144134843875475802173423503242345673220422116392169044855937959905355998770055644432130736371912261532455427755929609972433486510703704033967359138588003423302354490122228329406981012698116117319106037650447176773105387900020250647597332845323383300772093270711173122665056178343644493757407844039518808046305062400387974388067823847782616551892925408330207644044732723892354448348610557546742870682820557363322047966875129425153153522748468390369824977044176464121129501914949061876940326861320248692843792210914044109193020888294415121360401646673838916991254503701519013302138964197758592679990925356679689609142953701451717210600081211992226060634116696892618079622760653512584971396858025013985019464430436231265135312326237507265069099615150019093011847958013374992873067107531215743468589127385950263133867819799634981517099564954493615673542239652064987606578854423394067811302502568457508947309232723955650508940326316326605169402363282892559509691583392589702735411806333347972313582361998792073912420689931657447815761879131404089367741244491858860925495861519995211996556395243373588384876730374363663990182541721724000032497734347696031503049027490662806011092853722926882348202654294266302993463414141802134551221178194114190821819539994511800745780272363915704760661695715949751644270014351663605230994372725455371701378871478709069290040330917416088670179247214281937784493295026012163048041566185941575641945885430676901947866107779217086522465325229412138961704156535058758818968037392658788477217032888673452384516755702652963667311920099993967812473561863689740195737796008921232848603931731701233671893574317073679228726440477380212952411490772651734270537450259698425629892146260411881584578159087994301796716159069214553372973248471989963555742528309294704781518317722923412209327885037799514184489271177499750900998567684165622398529422342332921641182977493882041568450863332950921132181946138163460590421306929326744622468127309718603673758658774808500629980111041816305182199311386201885500839316797926054612016950633853516332042437311289195131009170297010986509521556597060852256376659523642193308936404734610564864605812523354900602384601941431357946164509799598920148098481918290283446252039152068444202320166238706444673922073570799825828908937633805502407856888757194340620974812278600310356597384258479406786601625532556629176832867191894104454173178285335179061463355116179511286362827363711788920198460656777339110301588937519417886089176309459259670671845068236092662245326715868650690404599951125409580444355566127067928522584606088415063430648504382991231074990028534586595655762891107674714566572153427868018465063840977170575690780049354447477931932851479066764961512715064411141459082019691795298921732783834545025259130108625912298560524687497978746523749654036125472621941625324313589234854037324880423902647119590539227881072060617494832629808411624944772818479175807228414749610024623710551182519813653760666227713396737852890554069062785905150304038199576747203658724669496754270174598076706503089154210450923718136354622367165809386732309558737642949176399764815457687242253441830839559740408380613072933718801272576456684255795220034027067949641461333289557989678137946265667622943865550688518429121422277823497808150646020725727612053464007821176302844698392627564480513471572552224437519968635895250839890550246019408139646840392147713620757174452831557503958173225012711797154581820166483129079358980194336167689610417350916967067647614811202760795077035715217371273070553180037024467064498231458170682412968930004177991228940878438035603016147277117017165031452039830061908810592382609543921107374385760344938385435820069461742746912961023938113292431026068114234132048854254829994270399178901943670158444341042272818602955063763898700955257278677271800567213312728231644817556133673308583952343041466436609973930318796948088682748052184528491041002800484175886600892429900948026340350649920713476197031555367366853930357314532391539257485498478375198135283352145323924761520576185624618496287989501445892936561263418695412274246605344862349746191885187289447121680234337474155872743774050346172988081013595278397233627163593434801176948301300257111179978500530586326390391395167959232936687242571504020323223478292678284202467281301244933187640647206329240584804116877807949898168721795754848181286527985799264205523563328560416770922871088544764685678444570210542842936414873465643123704861574795338753525134201378606702341893216856277947309419599176729040745617663825126027943594241649914519061219874064636347187789420100353332513773945203241248297102803992152562679094960572857648993048345670225675986438947634955998451940004978014508353496147409874038796206799301257835502191908513275862534242361069432049189922119042723259628923496283671122821279495859251577524617764798263616869394005853122061026922641331603944108169240598735852045911900809467500839487554334453319752158676467941491088978906808555917982400420214041523474663890784477538032435048093149121430531270398126547681314535987495808959369032062768349069450295910357883467251267340197799553133462399079225383829987430429254644946139450536901195149453542037423810553885891446123285540576520410460792759880028199314044281360509635456006753949028614655597626638342415289458424192121279418681767179382750007826526982270622884791230654867972113831727816872738293269110946109634416352317119451391835862576696582106003892242716107619977767792713934960545690462744666603658137114770182226076300512419548691958611716016344661854392026327880227258732905556524541672784117051834811043896340822824201513000378357362032528663694421759041085045838307753889012099633150132484993135817086948034039482543823004394587625904468371961411413159501466366329995597004438549470293543968956683922961328723927950440659319578948371762182484976410576214288979533636278533275624525239091193943915892023771670656160579441028465938519024890073192614581461327089527945501254518724606188185606488085552636037451109242891203710739404472181038435622815976493388857477174227768702532264752467859492603261721925882768441419375141335935893726779910663147742858249246692317673406836303467198301386370144819084794667913672442405929977828948231594046032756997907527647644813679995581519967062772889000306740524080455230712674728929191122406616489184507862470221599440686815695597379056584349783571810414285219093047967917350079881007154591479512795686505566989447555791039924421616542720864185339221086730914635664675504962404343719616191080945809218026343984224710024978645902982313560083695630118867401488482498172465523513070394486000807108206278009749453959398391165093709831701144552022934529304161333911177552076716179147743979454530364972408218269273320711312594729828738619261892088053369181929874714413271168992379852620893735363490803066538789661555712285541692524174063546030144814930349798739618357405883948493196930244802410917402953733914328742788365920681174684151693797987597954223538160557511407135073296113374239225019435126708880290101490101404152250409109455401374344689246103379648807416683264959173778522311598488477306925468271287621903955378168643992132033173628494252676409486710585917503176868978597153171012472214580864313818013244480674804574561255682825944137477493126112606092405968911523388743705000257023681711133647230434203802561312897590210993969132572791122712349797678188528690910501955344770550891928975745361157660712743971113094502342364582636234596178643948976726033436756536843260973721764468960253041693689139685669109779750308209309515816091837938424153379981385369384556332533276353709191304753482589170687132931690178883891758564449160411683013131374870099886876783695748572925520197030173481405279389098098831231288837230610962559198285355514129947170173238751032347479712219782562458495841450033974161497476495528163950504530751059563317175060522598588366011292778892959979485853339472249276544996190226750041690057208830015968338910153231330835882684059490526761423181198061410600817443109418090869993991269371446625765620569154123155088660422425483451604001112574022779397905762231453138856966643910598429881500518163665375458678586676426868096737867128151232739788083396097334337516261613471453216811326192779839099632789108382096069723594616164196892130506137614822523725812973683656424092709376406049629710320701662729409122102867066504045143630658493785356737811418337139234527104773816389284197337001009836639066499794024924403996267854086887278399434153133915257389917997332150085837504269036309359605501451747779294115163424804737605063720839831613474725602714641599107864164716555806702576963483039720288047314163570143762066724588788578494638532386583081275850451521124244231537075423522114947089964326234894226677308067824630440330990631563490906352140620804294508039146064739335821018565144478188391990036475692990995584383667992237916627544034744365689707135801478954354600954167388850114976235509428278583802972997284376927376332778929403961956536607127348239682716867047520131718498683433349335924612163034744343580202571609188501630859399801615827011258783340895835226838057573244977751058613909761112461130344909732612507646171514108846756825497769664759423366367100938520630961849598694852332741965885404716887125979157314946570324681059251408594761831868970966600250270896617834900283400498124569999963252652432734372886442090787246483611790442045491541105518364070348077020478161048001559354149485837996850749260076440331299104672324174267463602007221712701855326553978775988451414802081911496106048804895631016800471557472124288389243100126430873425851673310981984741050749794486811276113606363637154524890758790154761755261151022670795480914349786980003311754469336255483204073346288900626649233240993801441770332184889031498192011872150298396682778736148981691566307536314260860929563330565340007781050371449086325309295680823973883226895582126288962827026479303003521975778734878231020084731331088987231174281091164817830130204444247020313735882272402821072462797081886008458036108109996805596846192041612328378033661914291000579100260578453071960542687064975870816811940726209201603067806233615282293942571370487769474503117535620990148626902551910876198911431318786070406555943897080938318838103035721056067690790317539669051067897835889608404014064394484490733148282354094692186379428344201207360566324277069224988092349388030485974101512901699788679540449884884884964852464578443833295046179838571162837434080377247435662483722824461045386965173427527028195519837321086116850007320599608929295978876808335135878544464802101565100012353468490064667849089972804409301534486889469644761986650409813985760128039424275488113747940845749660230931434235203522578774056874702952573766005809332576976911535689855962130142451525405048076065146654028569274849612906965498937968090141280489453047598205131725705734180524359137422464038227925651640821391845006490223171305273577410803153951983062876509141010395015747341901886248903168818728956204854279864812357068238550432131450169366595182448644987293259646099647050873914820404362384861487311378368193538440424042817587279059187015120642395055366638260525559851455509933633267778633913761091066747004630465918016268297024380261037014084543697385122119968090744528353518803705723073568065476509687789549975993008549528727533846454711113107503360477324837540747956691093808198479769101318424204730322071309977841603483959482720721044299357228409557219110549555895761767206712128325091747623704819666371925830535668220108913962417607508529043655236128275998878525907700359151992794667043333483326016470023004584823188171470680869369386046442327011067295069594349181517694933639152326012712050557009985847073095978803876541998349767527775724408739541830447833288374667625156823222564623268926594754290660907683811693965294796137026544396939016552866248816559543985520807497981243998603481886523780022467872330384178122488900227136040311144487705274007492346277546372626448902353037044100747189601651315324008147744727009278344019339487192685830627920616755190804567749472729724264146393887345421338151656140790921198656098552567913491756564884933061800306646200192146882978715856311572410170499663397935514609337472533552701376699612448716001059616780701322848671517630362599043725558088757567152416043907719898723478221988312299562024701085080114374350719003981302659232160693188640766689080132688190539875543003662525352169301989294967278714479006117719648478914938525481360075866988918995080608546784033012659046324689958067799172902732714983351139329276747222052827039524638722841789367790192211530775553946804276971139582607322534318252962181050057675888165400778288626784757821106308580707670225910529820481950840078128805796629501047968604946448452183496071058761385182708277421975902125677933909809025736928592125690699570411037411205036160382309032793840892793785052385398730878812249006267291057636807718287195636379207897061970908897294989156541128297535190288866294578009010924116591340975666510090680729256664052397443890066514820117647012049896013314434922211470483089276447372160627275766444302111432655025124232768337624754846629412977770325117348455635339499402761591839509742064633031330516713245209062388979650426717862213816509818901595198202238605538824711825038643057609607457633103068591201814471452742695908870410666738174758800931600918204978343474466459411476457401360535508061434505784349317232139870131420574257904547347957487539028129209599178236546156056968069531611655632183373718602369553694634782593726000255547285108754908877313785941657231490375215154441833326509046897385504910274388688569768239589482302293166060639383824717021258924011278841770138506184985153729197952006360020975033306095260011404938006043227335759495179239524148171378858664961524747950258654384816847271629386821959169870200481309511790125009198627362096796642925392261927953989661470032632586643801787056961410548592563927336173244162900467204212794355234892255743808691431336552105255808128776289654001292580920205754202515111834215799858834665437896993467529417734383310196967317379407360916213922564060277089213946119643964103560292814084358006750516685866512307125357308487917180698754816081247155484370105204870934331100892919870625633227820100093999448029679659338176613064663150222126196116439698578267921289070691260383312087993155616456747152668984347290031981821507828503505716839994748418096866205609228436097858858354334014755930107212274159250215530304852186135778131633282002756032619969627542709623723353177474723031431653947739459343422434571030189371757543599873166310635877929157091621763277529773783295286593569842798348496475157042174598684586807861995666454239655926447001118080007090822355289021591940249204489192209031457929356015775716012307448661474847626755681917978305733638121356307197880670490856831382558160571819226013862301122126488192369228236858403606652080697472380885172985703127627165716565390681305442173963206387277930687811823988424387427564596642602737510172351518612831627585265106785276003273252420058633211772545063174598414070169409574320574780535481575666895679319494279645592910554480847849327918524266993502220616717244636140580031970429206416491432382896151953946245425698127546268274063661350256669785970297552845422860887920332357204445027788894086419621619259815634973088219090283858184942165724786730356825170482174044639025784060344179446493172474702625889615603291901383034409419938552500542019444886753358978726230005523984378336623632249928967355331344222308153398737087506534769117448300944461515313219520302816781898171216099367050958257039512674383118825255278699292788870588866223313439357838047419713058547297758299717155151590249435625198898968285119218339126760254315483928462256444524017209437404833449196450503712754319070801375262889087614463517943449024260930148942029338633677858969162053674677171227473941487632033079745263739200177505725434287563242474606486979751056199656342636867631082445991651609522422664401613485102773603066233816026329944206754299533880816373168225138053861764424131672477731143956721566322893030378814273890605072260283575395263842210341891067069420394031766391259996457410199208709221992767949307422079913614640337820604963667945860011887145385366793179162955739340194362571180723541725755658058590378121966345876962828996686310451378706116957185407703647258182755319808229118583059382041583745114380706371021095711571374180151332930381376224830670690258646591176103536789228129969965626299911271466615711763904517029868601978625742480749985054535702932711400196804903965495605960900420701968888758367457610602848644113820520137677967863808847268836200752433403798581557688301169310476508859745150785147589818878253408733355258247101908834130856354511516383307277771506526021829947805969418712099788839036029857308938393303569262347300138509530077358850964581318114168966946845687111074323424993572428798221398514669196877796416803760097536115609167700858330403095111457968557087610894114932822501381946187446912391854137085553326638351607055555613483618796036080863070616507221056172371028670056305428408486341893083152959676287378864345740264548373242725236682967572706629904048828471309151640129810840359959836170674702926417258074420072739714246813357529189276218143874776738158678513111558782365994067679983709071963013687462031505703660943684717648984152806392326544683508103339345045662737567232586914355223493483851296846184292278995514230135214376980650913721844267960681729819904894237431387578654183537192120998966560969833719995507487051600609279858165689286533767318398124111081628131128521422257619874376162262244733801647862081661937807650774001098821084387302005561480781071676549033700553161231925980560972399261236206857209226893142299382492684957135253699346082160784771460347302828406363338545001314682070143721715528976680338648033256485542153627019226093819820863806063126400822473535415994296166032781813198250400118752321073168181507426529704032459414110608937020790871777462722326372516905650273250778033701887412138085527557079267181755686617972141785502697948290989766428234788865428089183980821329843940761015917911260150308946504395241377538322306630255538042483739956458347868509415502483880171822202252174730803783087450184954892854546463351571861507361259309118396512484378050710102439222213730140804042633608697170179822868200013606148248190372955101081352310558548946743542468769067937405489135407850521313315869894012171972158564818858632987613055069785021428638683858787260805271271913990129904051944243301928240753464869908935347420386052284124030592097417210516710134406468289625081430917697468515642461897619862830644351785843261212525362730688852144303166833756214441290703059433520321321368878844666357861829342573797031998257646161872995671821574015879479466925834956403817180271268531248158788390444395497414770101326989585942254699319240408927934353704961391189496074653174422066916603571578424418296264773633893300870317697208497771058589257960621174917231221765020746004996543426985988404639442907512401544775035713125240602167328077027053153825756333941853925053341585489649170071483740497053762871398420171434730785328303071934340586485032141275194509789622509631914469184039057142973976754740786025145169601973529393769750132176513071341175130296883113019524428922720428043262357055178128126830242248872412203628495082173315512766499258217550582577960512622006755936649354640583709414740411657633377932087671630257887819144478492341927453484319152513148929854538804362028253587936323922394867490091511924674952810691928616828845728482584952932749713442521067423667489223850994224871509415569512697771423578576627542005139232326303535041362380611746020408786479405801530368790503937464790392647524996828053529223825557306481742202159460035190380764260816713808563397360283169720939667489204182115647266928445303496220434958704503473728333629678638077919348912246648830753935760442508720043153379276040863359008518311598716741920246499084034799263103736007513143800759606654625119400886210730942350800783776115472360449131396023844798291252199700244045604001776164294451340165917795450281598679046618539057523509469281522849670508513433131209765389757472343625807334109057393278075998647558713997252141626930308303843901667759812715711007917739591408284663755539574194394478118684356041280311716197178815286793015526401565655050917295784524718119420933574132958029641533572440037543357050627459840917243583670775367709550659551379242462793165940892569551004646897495060759136704545686025668174249462734524806827213960596922259625120245407963172873837472729393334484041270309606820435554900910689911784278095809529795029161312395974568497563709633432325932382579764838326594688792689836800685541206423303469240348596054622733475767953998947959635598699538632134597609668140690249767472575497693703065890613528238837166459232211979315693018361405673401154148006186644076909652578197455698140218259619874404329394977908062974709687712681230299658800041521664117409296359973158141306275911615207861993850555961383286590142752599674807493416138007531163229712462707144036247981190852495240265055404539105684440072783941297425070418597867479087767813513390664215801628796190487856818036447780195431142720828106198427093112195328456261204011111952162133537453486164246625002029477092281425584959454587087156944647342384304112260593184762526916292735730803190301098571897557850849624447712180967148671388081122794713668789037392197963023431468192495912798724690205225371016989170602773991799090189159677560750696053792250808156089093542897056559797503784877016906597708165324635816509109147279944515609507541155517816778121509287014289177581537473578987410526111261897619146444752799879386957327270299338725567200601027663540769752044975767710852966114120822100369021147221359444350495303420378752374557313990123847737231176295342051014667694864771752302721961805278274762444375886356314011558401475890954318552736326871415666902550827044494782416718801544798522295816515090656286948233757888363965532545090608904303215922542555946912519394405005291393505610575196111030378978736139162667654604243218948299323644119901228341224339318149371568295744982395499359907959898558945496697181360909212484021503154930404686895116882040117647029133360731010684433365924503918061254282388575859710660401703385910951906924550546448960064123400349085374767938119344012927175380911672910140751721621052663936852843983694737344690487808007184294212335251767352424127597384502692040546676957097420585522050223754095269414347000866523519449763490401664516984796744012185207055040548297598443181090206045941246879386482418607946595993138197055728454336751110716669867171913234450743037430428661552598373634435081791846550040012049482229149118547647790885226408700735590126939159053492589914874402730537020911621968758294673239294635882714338267097532089443179388099391882408754336429000495599279016769832963552007196688271767629484770340469624366104988655578370118628606260502477012582354410260918268754259941485648579122473605702145764480795543635796694069986402829421624577789528775244229231080583760679301671534818465083421568458177577470335212845749775874814464108994963603571444495797038838437099563663669774528182469959430777963926731784051356477694189373566505220640189157892572209076041607853680497914965979738325860647266396888880756582803213164501172800652823611715285666979814558381480920904591515568396145028656421294492403034980461460418703588953992012181649261797122607775136838803461162258555045117278296393044631322143198926042914704335084839628501088363270364993711260864183541399281133956317619521105096527333463145899705856950115899035666040424092514678512026784545794489568981080148733304662832107848961166375534591844205844078284370602468060818880303141241999613591994922638595878356006903495550783628189329637774865854487991408892223211231109505758932040100957285793547085419447020879976809536295748777956544834635735650386956534253678525273609331132867645179584283032941904155293908256566699931014072164704311034072391769229541477809829189802074349121850347797493611014010499426760364905985267917787616753247337858344998371811441521809165283273346744358929271954652799300840103989353563471318954217502574547301542476908121992069552793189583551888048679291533256317372221649704949336947819662914412860657446986972461777081056455554072329540463794925031162396446299515485646077969699851484051249393682446194273865887317366444925530964325123553533589770584427363137922860524451362463950788480992636878036129728661488018867050081505843797616765321134067790037285813941564475188101525053073981358794898255914633452643529030612060096398822417239014864576654478451345670026579517223636464144128201188850313432366261808336366419397109405073549680453021953629170928159272957229277536326676662614821403835271065938754251358095679755793538062347519468081574482084285807209591973635148492367990627032690015553605898558750108710808189898544914576099652537323656851291367708414189021536823340483221965667840662761837614131315875378448229322157989508255195890870095063172229982313316633215291692946719213801366928639226153415866729874338475457663686609653270344362765033503102855409166630661170127952570545965594315197918702977333767439059203096414055853305877121703645079255417559681514103302601967115536768428509340858433315383156413615063401668011676265568081031830264312581396177402606243700176150376711379745539203410943650823660697745880215410476956395021388290209728820292277884614697380006423210850897146590666461932949145972577883649261320005510101383970984024706376121771197298684945917994383957765520435523508105565707953929969195643955621897391146064299507708650839643906610107100416730380461420227817268148841142391545341818569394768480312320379338758138920323595803940239599383163403718144661609717444490732472893666119823759535365548852387267022097559109442274429835583636460623028093310257644857097036380653514019328655004527752632495928598284287333823787176962394552201705572047237864829402515667505023247493841839804657295470631417472960092333304807753529385775717994805734894257061186015911877508195569764624031811707311522811836300516126721190376108702259663861726421759176547026087012242731239515392534959477984530459127608725380676922816534717643022659879826202828289878243973892187943969361066224892240655531226402043457374133939392858692526073665036580539701749227522170094084747540461923463908226159724890513880337698402873192969327871350496248180220681204044439428922270501848099551130937005749711630167631155745282267542891517432907985464510833621269492048177347290627694287796509300448643395984058343411985045429288560748761219777353101895285839238156736787568289762636422105338497527999577898071676214481495642262670209270316949448035198536608004042628384350795622386204719224373988909883427284009639149048199124108440197267310254474326118719537559379283609296499851217049122779724187483024324060163630340531829983193743474997057134214201051161573870331936603845305941816890317052435842531226220673482791801717537346879381329439463684443308894868122692709439824935983858806503949726371065820763631725113091191965338875162566784922987479861167131452450393617855997778418158755325805360345781679311223114098508074466125332700541430719364863864820179823120772258051479082781521415823363246593905177324124825833727041909112629877147365266384378137936842596088627749453419407183338269621253776301954845294936074947722858560874640697201877075456546443722970186661592908587426322047901174870839638173339463503718086318868707614058634143050333047318878642725307813234320738802283340580590360064438932760270130708028771782583658424064928533625906749661048388088935023518857631543811236341781195019993403407121274395692500467732673936209457329910940683449582038059556509792480915315979519042996760360251098710940486303249253279005238192317950187997632037604391980907454974912746209671646970302044954186904265400668252723181362235751050971421303107064315337405097986064200709740403214679856706737453949245683436768927404542635211631036536320118539391298818344705068973543460018779705674544557706072937957369760382951286730393878410417488679022218388961008534272664380564056900395361763084144370183800032792905521055929016620433782142738661549239072938555205922895631027862905958910395367427313493804444038013949035889913546761236329119792874129900711775766956301974011606434203356765765918478567424677852815875247955988342801655521951828551775603264651186871954449072214624812894455150335958298777143424773130927107398464007691900639611764708529877931812377715798294554000914028457886940529582678649243465017535643710290050182709547920995381141344865363317973309147072028376007133148440395971249791395016377755355457522256980216349268158928064117771943695110869071823564574337426600694729331288458797418391617551468575576679032057474153857990144211856886640306093702886275325837521369856925767706535744905168842276780181339250103096446355418360044517358622692077057374811489897935058845664289579909482637477351021745777894013465476198343325337179780914880907499315443841650051165027744289360564610149418156035338795618354454634455014123362441017245785096488009882894612681286324773655436173255482201815558716498433098678322276258984940326578090070507257209956893550148489076304059577498049708746623395036125652185578373448948238807122119899015789688665437095164748907461409919871730021942407758764722254561588402938804314627900294787926672329921099994940783375473098370515482811670312579144300070987749306174970606677523727697150589110883776168989435610285794314207426012611137152117781306650560880810766845835256125860270940698465509178474047596939023593480324813278897578485190388026616457287163454877308211970944287795638946450327381984221672306952193405322283140422686961443998659155103465181091760144616190123808934342658706117231509330827779747205358886647043335676677814970195121598436901793480202470255979156977163055711633983246537761694145116118068900746113554331683875343650404961177608245786577231265064220853799554055007458753684425032141692630260836242401022649318329651066146530171790137116931877911751213947874911307219401949082683580648137340740923521326393198108989832000750785443951192708362235463511302277292161640679256445028728974914573425030804986537424471728993524157165098299583420687875361205054853895819658084587145435456543784489549151059376054222270610818492646003763183330963871813517739729839536145621123021195642681732011052686325876598731126766669904125940366911797768971303256117862560627829065392109682197781988589146643428081768634314868369015255638673647788957586985265166247094410821636701910560818832181001308701114775675853743346553106033459923752276626547345577950812094541121828466005477181871392094200047504805984654838688637478452406771423535840747260661719231494473044961582259742696552125067100278095832730420092785555039729848967158745287752235280397162632961177646330252206056489888406474825335907470297773953403794507519414412881101476283640749655103782705578003330212203459905076050885963961293350546332009605776346579282004231358376876023792844298650030127480730591170169282981475805484759124442067533115273663719011828320576519148181261831217254490806551554388233752629364153663750757979964741598423935095155383026878914798400863147196119002318611353983422890318528118037233618336470914801764400978319037776921288028142245211603502697346261602613207628131959825026644921266625236734452249697391039596973614647297966235900277602894970343365053519229888718815078575843877923591814626808714810948220333088829089451591006533827990444719633482527135009174419580884653624360835200122075457928640684783023141084938034247733728907903584507497031206896884991596224816955311196597577565500120237091524036055238604431692720499529173532417369682999328651361325527001850855778919182014754527383261062721431326829158634251683124444103400105301602111163860804532530667356542027342778081521634726427803507768245844504018900611314872131178536667106728221144748073795886097415096584910772794500573091305757131982411157978955819017029268487030105147307731490443185261182986242474975183863127964534845912417713680064421066261433793726617905023669714869480565317387335234228688936956274092010402923341172720837707456603578674799994622490773170197576457595802739268806546348691665658443228251578819352762441753069113633393839668164834455503486917724379689053222963586477098941707265585889400862061239863303780779464836699616954460491820156848498368020328362789052938306185187765766322359711968459510595050020523283529252503986972178334176210438097917336112850068137889951436741846647787626667692978504881240120701640180124205139832074713343761866877585121353564485636448434115981513531329618987921353945062110414610529555049083359495397008065003825280405604091846763092319856614094835913520059309785848030677718479598892591978426592280879776853383476795179750031362568139729636519924564428470889472475590455519884637290035494152276488110358006694106769455031942264993994945163017455966487247331815566147278848914741684919224203937397626351647475039397933339808035651028821271049386747504088520574536711758843721792709761158149571716079514046330121318571667464371627147566460465329211200889042215571144391501974825843062299107304647317546450828794372365965360936224361824325736337764920068007852705027022547286656490346241573787235899056004313988356858475407497400729365366667528341091467552520776661766619084639772556091194174872240596957548442849416738259339584844755307843356613366623645870063000763469815342710536314069283035316103991863250666367899688567882216875684656625573669202181688572755577100976625031611227067079403844904469948867274286683497937930224174516898590930110670252420106505602595314286149936529914704309082091754059915811122677611943878844134462659742837227394520585186258712325530764064732212822795088882349891963066781557650422526414735956473261928390279446918733220471090159733103697575389674790496585568764624361598119102558722274355140340098493655713749911986537888008490473504022378439131526673149730874338629284212071644846086094576629784709115343591086459733392022501349878499209155511194523608613331152420765976723069351888483366143506069141733376193961475874912460917254672504239652868617020857146860660191939909909134656017988695334249197282526336386603202102089585500162265441525359479664685612788452864194211880428336573377081011067414803219217678869208337979583615039826305017963141543598018584572301432998352242070941584872551551366142411589846303389697937370325105576097279526990160461973814934331687091961383972768616828069612731964100864697431395860947811067552790998438515489792228332912532329775520957979097179060366339129897410140970329327475106099838417801409630110849356691417692910731569673090283598884596275823598681201643710883637621990407353148618742897286599420642840698073527022624367012121900168586006539445133441558703871771959147192048698185158181174723589445445701254371652918104227175285364699471820759818792262835265385737655431793332730860808061187219486534022963975577824916005970616341545072398245341186756695055398826557620916630284305871537468508566716667774276283478194150495969245872381717625508920477817892218908787990606642295665436447579898505745797650688618181600529660210628829413011516831061309745323486623197645868243953757534153139574232831575876296074093982705530973020078240637560758040084230015307539538147221656366467649554662522292855770681597468466975712321363008445440998609181560587880435570973101972827310411536192424460814010644986931986989120407773956672286807123819917056150992856434161340029082302825691299889634481596594389714403877552263092382487525048198366922085147833955933866125595941100777505000988677664258277615851101608749952675067714169688955172001917589640718954766387483059924676190155233194535633659004923570684530360685520174350626167914863141334990179066186898025140213069156769369354183945766807077674114944124618968889785188797311999904286003763227258855710973748158263076414677527674874838874716905314218301602968018476247675067852735725368679559142817798101627849107849985648883834886818426497746529413223364051873026161601099280442875010178982659444363051561770090134673750937949155036408810320915408293185936756414386190161905786127185601081650435238578593615676817359669957492339213060446304862337003451234891825101077817345065745228977481867045596026910433264409686369623429403880343276281520668768097807934620115677980130842443149431523154914622031895068745173373890290498970461436281491011392485230164618950056358543010858010880394495249623230931408210466371334515838664219061641867179706101930706804226809405132601234868552179715146458743767285840590041276508552908715451484692963035936524265698484922766274429442902022121027971726145562581321640356882604439233740784009820444104128226325337355575254789506684983511151551359957549669696168519214632300596763732090045821730660173673094160406107855351902413675521162556613029670114296143120081542212725662071512252665959099297557107933868545399938065156283326125258100018210104999937417339755775679609200440749807750239676155239697310726685417698836079956891791195314168724908706766201500363730574800674500444575501654985092237498689224240433264010358460990221142825964696355763196038415044336037704498855449157950465260750210796177971984010300000821278112599464958118699726538790153895090944369914439568301165112194983409913004809830717376972184844432702123029687002699827773537421589389009604182112540900661272414036095276764046403806488626175219893806828681201150748640060965159690770810253557570002747396127684499198195077880665238348169141666826239671207497962462199411260133798038668765782860077186106683125838402316113193298824201111894887684980022125470816496259620098897286296034525658009116163008125191860271308544525062297227034947313697946705559008918001618860005269484007850614740632055386356602938342747184113390708879635593109903934055114489948242694225980261084686029868359525776084963597325090525969024293435727200622282239339855611913297449963453764627021769703317732532848232884540951883506967044443081005145334694213185721853696626894328087216156038434723934880900139941753213983817005331359919621938279681608783286613225340800021706502398213665768677603182212273066047738626575695393469997800616446710844798320917835748443738004668759211719453371895088477856153813612014651667063186571060247739178262677370847107170195299099972861574597865906568896067381994558225193826522554267957812870870803218441577291976465120272153009465996626068018168457484849312119672601921925002944515952812592686509902216143833599149284923410010011419277479017029309644979054972282503907985260644311478572998739884961778886585932743021347083568040025144890876672452436247147409185631073837218800307369684005227797605037228325479569392274115469351774843902888901111798620038042115884275048020627419590610913357757355569594259438221108603495220357106895558758908731326636180176033624014571681362515965719307991426729797677155009801742504095497832003652987258119835658212591207092329231712868328414453981919936332406648047783715909388604833382903232428131713219867067993090661012962887795282720913774173454391270687174449156954315073177695322758184740617230109695894621337843835080175863535080241139790452608047246785137203745886268846249741620503532550227401458604023987303953831453469085004700736671103703114865262017144198253792248176149762001394499403501371788492198617659489019314421688331803383070644207841960848112971318263762985598556097671203441836964727861223411026600901350846458921299706378153594515531004952737146814976303237399395599041114274956680138408703680147494564884645845615700670152456229041246742967495287849966765237449855257384373248348724074562100327059950174761563927348274218776032544023880878838322980382135600219280793478088573335181316480059467547207954271597109827816271891427093466461389384792738458342749138787662092433934008612370136983195143771699173527743661067741096850926957414777857309003893630014388762559896129741373972706580614440285227718034251910597902351975123387289181722927016804662574403974981114261661250009626072268693692266733320883527632157419631999215301127348098692441383011270877249760915613362733912757653807531382740294781190695980856869298907615383351311938275112459244757952902811104283518515154132479136170395290348738121160519756686499422020852445378658106319695329454802993859821597841990645707878232776765654418632000316839610067362785439038547212680637669642515444925866689888578928667271814873183975191146638547892317875100245253931850691178223936882558944758236282442794133435617595352220970672493857304751422178373800207313249685354899542454336717711427397777172142975986346140205929023826819358934793419169387309847334123932882565990727294749376834206888878888146249968175013630726798374304506050903339366999657861254066951780596419587343004877173741790073621637031507782235956785689892719596387880061213008130192876201403440730100079997782507713092411104940588659944287559087192026740364090720960808442304487046862511473199877278866062917092465122109650294909142254294665076117022992809110527891942124888181188106833672277774783284752426985219625386504721256784342822649159298193795563131002467775481024986865321495838785300585811293038467000218753589304563943501465376918004159349082633614460937365363705267740657515845689131329205389193638496334984834069896324087082636314675043268342830708743310732940654985226290614271402524959174349574331187214781112508336360801721879054357490602697206807875196877543191607376892332167061823756190572476698342910045644419397477463638561484840731308962831118992578633291989828102129814664661439758356085221638675389828907823436343686837724345864131907105889399052059201095347425057603106021654897167728028888487736529983721006206168793433044974054700853922086799649443339443132305881726491651984931877146334578510147415451744211183472710176904291347039776319929691182591298355888386526487468181568971169211600178326066868597743916438378163009469509101007902659975082033180744937085412810731529688869183073379228088169083122473665266064223090584493813975326549061181061573137667254412754877683533490568473443094016069433691054436807327171209350548835915193297461430343504895032984291261304326948151569520752875088475745651626895858722890876903068823235473282206374694982868028472048636590098733912405541999859117915885679093335738173583280254630660343656605810841632891470851340609589351415643122402715437735838828969338184591501765386980370311815306614729965368384659059298633375053705450286989190250275981794757577404465184739372319861863845620796992261545193622361334435103408941994409394916834551312198361815080001622779170574121505205633128797363400961894754118793255695413540081184841890572782768840414860869900457770271234173998442205754877762839710689284924583925984291741181707641267622470249259930945528704706997522309077867126230303731818702159341433095047717528541958462261685349901621426001479241784002361457690306868610667466444252270038066576783794753630618925950686216029910826589309823021517117586210372762524596143730825326836418271436836307649833756893756511081203331694264359251109144515702925533195288847520733392202091669211896722038681510619410636306927671990362156337666402522996893022068760915841631729637640041053346390351937901272461665406630022509444878516764755850969575731984981652894422328405693624389949752536729027195031995494187510238079841151056750337843401394620055428838248973027824345703163025444818846899786845227321728734197385745842523535592986544744227956581200675609521408102694871077863973601803816509942024658500072302892803251103459700269768488289238182045387522085375668002034406031779906431761682109429906618040375228067419878718581963903899055467833763167364772108642496092932875406292179262041508481032141263199850825470100709344139002074859163555066477512961615534790029627464284250205767865375929316256721838352224431294600966836988366854996210734701561872735035122628478313175662628217288101448568842261919463429919799460796273367116392656414567573242001177167511300591912436194119176782819077275354741119521972196632391700880295568597225879752651015699912011748970026163103029915159012448367445020087187482130750581695918936163997548228781980004758735117872520436716907647482987196901666289192060027774552648282802002025038532635822896006995114750771744475769100975483234631827320355270291483607384180912535962662692251856183861817673345568644695096409558294497174067662566490761362213877237690331483284287040493820568831118082181470336064213363220717225336773383625187157735466100313516290525558755111142167608449024974504333571310563517045857688102953395333619653291784670246925469811358980373569230319529301582429100507915998068994056187683752070072347205854465241654753626448993299811808320264775627591323066546703285918221356189330424312758221725922984611342398531364240013306776192442259266044585828991756612239643668787680548465795458164997791096815002913742354536001929796921712329685077296502047935093016160039589454902366231948409164821999825354842765601026374963169203553496270240801381820049407329946259852651381283629239585255477047693087675818997346126148335132370022221480274116123252366338527965305828941157949005141813163364402951292305927867795172532696464433575072036086008982346176883111962081300499364054164139822275452369812935229988172205681137379075038362523830219720191064002629272635941587654928596581920462463846528413801153886533833898380595635709739748449787133535848805857504736932989996093983648625299708444886711846432794016406737047161699878464025079456473582362704791666508322363472626752077353973396242092909108889950249150608796743969127477561528642464649058505456392306359151069043938108592657115557224089429770603882973966796104108583418587155773084011037689336542724255371679237661753532954772115953265086704737784933404771097211040620030184637722052791073417803802805862645443498323137079685990734899046519878946870859001980637530025911314341790929496951298457434177930868808370186801540863968803399125904093125693405055724381457903949471686176907381012807744763435540834312931339670107954496380483139953517941238031098435051886633240959300312023001322241431584865604544330403637521030667880096237857864649322531026694780665263988649433680182409615551430759963368619769727698225140044053866333577778197632125915970695916656780994945239697277269077384353881271344134131697096458203414463546584935486617794432400007468949048365167885431414470993444660201617825692466616950489061015739029781084601472855563711217009519617685392187687775517317083417281175382547487041025717370407279716606681700827828351342289704482467461229194234682108647359364797900285386992270626575619264607841916160699567326206651034856652535684199514845648363261338552377703133370397530791134429107345214148048545143322963584494424849152289592113360060722099397021205343202980983548370407169673226329689790057423859546897056741153380824238451518447948625679081616385758859871757299090130154703624792405579138787418718793818997813766125175271881580314712601485191239143088835431003432460189555747837115231793368100386998552286322679014114990256028347920272735447549250228772720700169932296273281251317638543521619729353873543165209437833985056521928089263048505805776036281870946537869464953320524717643622121886193687778886809184343116622232693496944751804737815607068780961414870784628782882890824297008602040799898577756508259170517307482439039759648428894083506010451457505347317840781711303106112594909208300818254302092699457529738730701538260869574796794766251181819001092746100312612403068961614470051972658789034920042658310600005850070597224233475171050632583023004004031903488592781748263086451261305284238420445960397644392114396650149596976931525178683801390205916805232616457173805552529264293179792877410214138227614217454165926896065540223907479941075413936391177583486875076227751568584585597079722692578912948505584255326208482076406994145943651250749756813296201116789265568184183746958601481394682541679027027407943492262743959692460071195766845912153954626291117156363264753280737624069359772472575137163902044901663925505055520253013445084398084295190471644794744861123920641325614142831667399275486198025061925443698856113839962288475438561139124404197050772078437431031069116146403003165323146025646096369328884915754158024906670338450648750540437428720879910535552775930237109178313607168562546104378732773929843549859473754984710232464307599579333936152468207023619532824552046806481430735268612015722742391128480994044110838416093644004083128326586490179703207955963389205293598862188181880381916065815750168479154196280255006998249009265539922616903555383719707757402715222667556664722371521152330686944830516969483739871269349254884604384263253597886178415254459247414897360872303109500812258391798968294362446785292154673770803198856392611070816839818878242178872458177096644764279196995380404689036235891595605057032034170552338023507274617819701316494115277414371059098521469825062282753985741282104532120697647839978121926722964498904350250459175766464095831378605754354242551258863736555529014981473855079932578252785458405145272318510797765273199165693114758553815820728148590059947734138896004836483057961512583084356071520247289240581043670138799940901725079278239620686544684329875574814574782527187740577407477525655095034278411666488660446783469029728446283652990805586381779760219291815599096424001818000389146725084356162549634419989287321772498778733432837749200799583827246910394395501683762149139385099516454342236447297416302237252727538818899297071387600660599793843447179696439207243246501650612397970095157309470786843628553431677001161982822444876019242926384745637452549959073220436513532206171481360450347553934881096760114777097273847016962033296415697092916265226380379110625164997224089755750126338060170510123777606109395694252259614035881289208931001095221261117667147951972751155842081979912483335398910370329160034965614405488202761725737652713507645530306695064280503662405526732036486499334190442917270385294805850216591783805822154630192640351134432884204356982129935539202729311798018843769573067943129120008893856001816389083518810752590370204567230474994905072595287836822880949569161268539081225180853125867194657528134356532048388461078200518297869295982980232489959115842162127574640326372387452908249299012631554797264699450841683655513287940211255039414444791757943695701881980875677312271485989013795600333623243140028107094788468093877925548826151842857492520106681038030453021971275948009045203117103915751138839236989465669167944777684665954664913748164481124908859696983830687095311901750591075317126983924329483473081129683178646359574412979986334102938499576055501888803639149935215715511943755042331554588643622111315201571337626071353229547665623792548360069996008187637396247054449008637014823058468570777293837780633814932130664777825304272812619839125943366204543199691740148822084545134790489523473073500340337802769485771264660368321271048211217123378867593123057289782046751262767310810816547990027403477694076646460441409873121438157635710125421262839179703244384841502900446102586521975777703667813708422668186905046174924780720846465317712478691389092032873314940923158707923280549912296188495676523433891054915079336528522234565475795349062179830059892494802833055824629398720258055703354267953376097981817785307685589675183120979490085566901827896982093075733459684555751283405423827356035137690540565983682912694244510347587094099594304039351387094431264030338198626033766651716206597747422377887260239642585372088407854120408034027698975312703834992427312395999172644247132887189756525424315820106890719104860606483604926632922253864549812219154355939711645541305338601909637372512999575006411246840372102644404520522865164191725871046977309528531111294827031227144191661951622845080533857850282152066852291785134804490200400073634997947841278575653782632152934884012224657865502115964569074348466141842843300687210272332757728074647002762568695284116596605136671735781886543434213985163504773596126040373299820850248310468905434629348258287925378580101345871750731638308654363736301238389499010043149731129220133362234482529015869240605537675637627604970894413915505693009683574881452844923794420194177116413013288334684462079211550881999126406083584957000888306912973309743824276974168288508120347693075928068141423005442219885961429699667446410921324313739773979549257449014751792625401044480922774658394776184644192138725347211240920045979721072126645575715664112843683163903581634555276330887531287649254877510489881802697242799334579279091400720941334567325888216494905593773681126855479989842202288335875938506740812812846006914119064286506470907395901331094899909835290895402613088147724685905034849676160695507499308377093400768156843286044116010048394139621733770322145867475469222159863975060047180897741470717563816903167853197286140767601193696590346555049852598675458692010182681838802826032417284952134884233437328526962244339489869054425202930872049027250513845429645767647163560545933811405102445757051660854569010692419056152562068729544256991385809222339822331141554609535628733884322806806530016415876289145076801102726773526821700545630190452466935114945745685779831065610416084484966520817588617814772561290627613115997547837549340101100783593787971795191609051497025528196447390237602523284312487793309966907368436977874130007411755185722788812302335756089667429172081244215275145261451078504441811115592296462895173945251031247327828371232302423648395465262675279980416599079362134980512587290073197130680759400229841509284401941423595333020062417096926492361665991336460610435380254414739898422803182979812740166971917655419286147139886930755251825218676322596407733338963072645957877620658609600528954838281989521862090255776881490523906698385489628772334049391289969099379469568552649504229962819343875258170997220139437821567978543918072885974535773073867573946886149007185729122760485844573176404630496515783227272117806466067514818449072412237095021676277472533442675882743879672242053711563920534105589410931199218533192646167455557717464691408946668727458688037981443029855519850986134495309237712425669699454958066122017083890681650484790344383041146125785278806639359947500620470274625463893076296473242367973356840024355837248435534236730032496535547273052018676603586431844188836070342017256190198242266674048432824329600530895258629429666802763506685883575326136916350853791957307861836449217759972649326067491309022837970693224351070528092451240118967968526066391777036368550956761595891742480857469479861272712908253613523493459604242861973805678951993416311731904597806556407088731602359235817756652689349779446720347403516275997722095875871137428956125739203528457713520016330646175404623284719138026335052095735954971006324530532760502139215113118022760169096958680732762453582844994010723830450926545214671671931147139111741727708392622765999431656540000997149638297707304328479871345156493159521483234414082072365209355399157259520601248223136166775818422409265249273626650598208094120846277911672729261844099108565376268322806630153372653692250773014280618582961312034980674873563170209563965511226838912204863773937063445586728036198917212277000246481213757781259177264957485300105419107416120246316021684569427595485966384193908894792036702967694189943628700389913956626968416476981288561228047725012301469794819173239705576758798158345725952345646649325346885771779661497188876191782974117812535634296412394121119974749930125567558397003841682161492884861765573695008177213614115475670150253666573593961800859074497070032078114477501951168747495294285934924588204810017270215496840247300687791090108686925902733379238593496090935380106322246536223704571394490104773854256519980961836989635304058294114981944059752023876645549572362479225426493413886334986376590457098810343554649196859049912467822808285573621011440680863973331534190448777555451363152201261985195271611296005605363516055230796694562429630931425702943419200312787815123387252824696841699575696888456528037975996984331221515913298976494769780420762803236062196275113692525444654904932555067360958758873280364532619311970106727391294487134461255300215907059165717753406671113638056929411362365073587287989729917146998041532402938975418715446056595442397344730016044296301057720255916660916010316109451407157186107484016717108372947506172186608230601510488607157528045318475396336205391410310258602030715470796868402224283464470101267417604556015582168024473430548596421744874012647192317040574941840278255682733979552989321296143923551390445775005782609157119897899555380075881852394835387038727741681005895995776128166510709178386847333479446024597858135538446186480567341060316491613331079441714493094177356023802628881706106940910431752644739793370753487114479677244974392867570912759388751527588546948352631791626135701699786930039056645378090759594751928876634561213733046452061326144532271956208483818539064554289684314878113220379200980291027208183612248113420981172568164864534533376253298874173153259012995913374798056244334950081328389268924375265476761309876606094737326882399358633274294106264547602845673512315919470357971913185172571868927175668926789673851796052518033112630615667891793550032495387546061202993483753992767532716649127576582091377053554029169676208250622833351196471657667048333579673981456197284695014082562311377024146398157749245690247300168782288288535245417975372690879960204598871696272994426634772712135386084767822714749342333462069180243014844923108916889900933660104115728941419719775125397306332410727338258400275641662663620105886167985355870852998417902960692775415975275218047158314577951815682136231636995273759190072655642216090577463594252877048163966251519280111232211338742510737750170114057393365263644921115174957836307736923181214699097892292599582389496507791899435926151063541671249660872670676654119329258938828764093830399130492498625031857983537313446453347111458674309553002534433675685703438118299035382818538288789330112410868960630306329405453030446596511979702981566717289826906737074999377938764199640550480471793537706060074248797669756379415353599519316679564844401596638216988387602286956758853667095951658786993929875278169162708482382634086190377065017534616079169590480658459232821037876723753510564589516517221926284399776169346280382105932257821907079189756555614924786939072096880602251121356778866328749256328647117127841626849891515975666774240022089755974745106294874513768516568083009372267321030829500740430843891873318568257396112102457646470664193926478895811133650570140357351930249523332303869775230162916470366669105189124109551306095812716739277998062357418825729464871990195376846965643729048655744343960542539435808578386043671602970424743637283869782015366948083314760656199250430843319489228137171588161377256657351494572277742592418074291575855351907291612146949254304652051412698978587667347207286722494215548497520791265815358770506385687236000700279181241350143406525373933536549662966837434648210919717334676690698126062282111414245605645940016160541117469299954756612275699887404078661526132329346607528073634884734475823990972575655992305523010265937770194651409496151209454130078236309050096820580323962407075203095505495072635375473504785378813611251940895878694195810700477641510890467988816806532470153710497647748204853642338352651269861516505889166952648772684080330672036206411388802509493805238570430082132110401427348219099523375137131219818217469978502176521273213199442841559045075200535319867974656433930909203398466339562730481878112437983110267212251309640259105823069266737861385433176139501488433326913476179999694455441473685890422101717712943289237969518870393955755062047337680796261071741713292115981513672839043591463548955555935752305974448301667392895493332472945369091636140857709259194967958391458343116382363102644780621778302960448387767075515091037730244239728078209276525350152225903028561232426801924970517573770140555236360716363447484170846635102123401200465758227906881202882364843161735493255685543148735293268651248897149542910281595354931057637430398185392509483716457712999431663920175939548485133858541023558075250803603185222704709824352097851043198483151734337416129071160308573040601908150600342893340768516295363431730748069477566051684491450723792516620620448276398346999270181403471520390994332729610995483704089325564270758821364185298153259260663592400420170319802900058490525986357493515119403165610505000129437062527962643342856039654173298323506076151116204959773722733590882303105615586753436015306691729016226496959153362599696620921232297986035469051958942920235161828511526766995337619362368789327104971535199338058025691794357362628378140479766777515796589713116964304298811192090426791414436743785988149019873632247318166616335166876085554916722020199816148641291357494546665915024844891242610809248541305113048235914916431804080993309786025317499933529322897213965229022367213670303761490694275171696169210496775406904315758573066258158874711462147962974251416421197338768146820293723073173835523609669112642716913989777692986213812861508289433222614382591235672912591811343547849726651826130462129993725948765295143616767388329440558871678302311995212966721145495734225415375996136314239414969413372514317849908770848166977948992394523785680158632496388328007883890901084973143121166194602422985253236805647094696585112628150300358014448487804634762420585199963365398748279474309347062912345404742747993629217263675462085725902466083982986964084492502994025641148416963945270393964549975213448382000831574078265415858423565888372657490653975370008111086337711451859765084863491060769066881611600488815158651148065689230646106722815579944943129437609368231051535983171139741203219527738633715366665147319001838375203049409786332409454353238872482284628481837109761157718611608325173836828762135567039639055688518404526067519479337001380177881856735194131040673020382348387206925659096221063372375485573130463328074192817896231783823414300336279233294692105016078784922031951075840173490657159541176450337265945913809952127653647774770668587244599474045972723251715908185596454064835984233498920172221129539192333076156266263345732661742837234182883442717253514709411128586117632383975299950067842780602898650596158271553421159440620494896189428715742120521535355354692670288330714691378073013521946669520704893255293760729488500960509767478254426880435546704201322154330141106751867284389190248255607397696816693378321745757919887824325036544368205274366022857961378517229189193878276756017797278422263357617850705876290566135319134873701714387846183454906333980921208415917638470065164146165890576709969671282781908377849874205359822598931938140984761207122317136875934206002475220328336501609106413681012021140728256666453757230857366815791922330820988033276964357617705265316856301481268794564219937660938484490241917092699466211692791081917181410566985987242209991813342564179890467213603641673871119382798115035320779762813178591190267431312008248249385462811128984606386498054103267881607701896465399106111673555833286167515479419208378501665914326486192339476263876336669434830021753707066242507951499214330592537587215601002851427701599921413187441157546893546288132840975398293678488391536773248225418488442096985506050031964935012073844129529527622806273299738733264600378283321509605748628258046113880650940983309970455916695172951664415050930606232297262237943928788380976656131882192280198227690795798679672454719944822351346766663377833523039805165034179430381998008188836423384899230071420416007013970010577800033737333894706750433266013744294282243964625749355987254963015198966271934425207834392810217077673141667678027156140817096135410193538093099117043070543483649547060833253258170216318134386441269318766376200156838049378673195738345251289180559042441457766423688923091387495031585499373898119033926707780323177302819109022814859282497185512810160672367639881441587997034184592693191996686294313464739904178143758372488098870501391873981404126175938564315242613573951472861026889763107137498557103280243196842961478892017367203695309632985093872264846941006082053337035209518367193312047564866421698693388568766674601805372242354908768719254015202047508076721561348531611888390577249269354970899427599312641240451304541555773296235562236699804409949298477009902470360177965925224428917000790873954603428415448872277437016054907649049395276141557551406550068256020640293951279615231525569793687742370513129134651177179630407989147464093344048741244023110164129869150594608411124097763025867201005133297718232735097001448331779479947775520845952004711539661593534843452882675664016569069527004079052612026782831596751506604932662191274590863589752072523615759328482176423209277429468622946138740490882964020591199218481942817463359970050207745510947829332402809170187127344218192264930478049364220352282736617337234563954026206071607991035974942901805647703136022229478944316902887856835791845982715844650967443212235040071002153097228725251902035570857023720231550566854891130547114197844864948253126439886063903904719518563630448631433591381017677167831962593151010821434278439350338646343588164673345568475828150117999148004244069008305775048786971776372527793557520881385579655061118926222902473825667944892393872345058680160428676484660865998297603256601519740266740766207482118817615789910290289361508779204534226789510100838730566382406678125642405009002313301130791650490807719778835537478475603681906244024918732049879894704367679633170818874850098437750274364429891275469851430428359928911579402846947543232639961276844778915102624669933088018438351493655972767994909876579229773518009776480531988169381316188083583199635586875677661898383349732720020108038620907666966811770271379757333271158888636954583179148830575456072154112760100331612875176384072546736907758279005716516796298194618138185544542692769167258671520271416088759953935890043007111366333815152454907640054356183432235493148712634509645401095063231266268714797734967831250375658704994977277764620761145085580973382889084922815722056728479572007719089966780848467912152205189910031595205295055522845875086763398097250961105036291018811282220428088901239629826547223931896765860993776547186616182652392238298877811873974322220624504715431589373492444090417735491014115115169855357843994396602935485685858001441686202506589093605102026278079366999043471155521193887962123126870892175209818653597507709576177780381679283725748446110344731253366559735489110904539798226417320270123843065924301935477549696648297956463488543148963961703550942488829594381100541846905460529982701985950395221337805762344549221287726457709983271314777089552613466202608551068073011724835632395098262721540008642088169601078362351556235531683949140296042036273415540693895901278757505359211673958180552485348224050138148148278995228955893641468969241803407544706912150933527508325024141982290365588712056948737108994693925647233496138045558486507581232618928962969868579531394129086026867724841855641930592992413889938615103520275100397534207938551997292212296680320781794904797202016523296110433765069252087084637611304236387760681409744669913735916002052911214801704904198683611714149860720772993734652028042990453672040614202949159625224107583520961759135648149018914094779674800983918219705250283446963529577901010068263737290324917396204162565268813456491348310772588109538026324341926018495981664326510963989921213520214191461292430707968640421357104858516530520481878346421859614130360284295853523872944179195555446947075300477354693194680611334012080392801907266503381029465138337413835403668372334802642761479863777658518222463517793812829696060555493065198305132860614643471527554933573313317342625364105078723147857520693282318439605591396976816674877400598534129005984888223318008004547252354479533011541274268052370102803855979533303812451808487195283594806876867032196438160336205991708236503634879452947824082333888524066037799924574518708252733586881985771069465318754670134687036706605055495152771793837229971884644095659714880968434517138163938680844505699517429144050790299404996021153715722717682184022534438270558584521801227588302612398109614766470271175005878490714542743451395969756210779441599705812683523794762713900821114242210109408426212857179828290521968620005037931515763395781089500185370336173917997877171467105508454387033381693869651113312086521000422168061048680540042587893872276703377238146305569537727970479521636880393622114270293982265068999335036282095025582194964774832707414476584489433659573710330575886226735857837219575433550198937640379957112522585466728801143786910688969208590324960856703738453653211001253481669277182641885836917260734514204065395757789033110756383752530070043484926773501132009053795581925019626396854257370712305412286682362720093819404096520666990097811518289961984952523872864230753459058871548326605770809978473195396090298203772197339242355529078361892952470405004487310779951237508270007967030641800401349669795819630307631577810196917749061474183411701152393825260464561019883551632369037161243222790683921649633576095549784943578421783661923080126173071173997210467056815335542946672748998839985075956638092880464152600730412125034422740998877884554145120466232101122097292648772526556292415108269911289949313015676786637684701155690674162147327264609527935277898928804316141866985019419933775400445101219035786860528122631281332613913659031249008357546828330084233704900909880576730377853549145504138732732807145667563987278809557485718852752601098096076274406126051772314475050423737774353781447771707705655666385191264619584423313201384982971871707086350401031423429653310552472602744615559392175860417561565169228806063557453711457286555189105927629738747122454833258347472316701433250479510743715401658396689136812713549931783010991714691293188253306546386948894676061734630482582620623011116413430577329005830345986788622226273881036755080197852504121973725650676526991880466972119272968156801960556686846673019161959596440275400206496071986733809088005933134364195375311546672827134478968766311699971004445365500030449021507867610476799205162280126312781710538521093751276461024169551677172873651605868610853569742368076315097427349748184285269809788446664662436418267898799247922841411599289265868831826838928287991313578869762190020027471416187472757149552186880043552438249602902985663261034755693950043769330266232049479322436184906623568559738809510270741978756404951239008924816332019181577238057443688088239842455734514836958670417872934194356029168336073021006870405176579276437374965318593557849851090543687424691245508696423911724956946591085648763282785237857607992199874990314395967950027036185476353973389510797429093914765573972057955934204955625193655086448751260519912030746537444586947686034962702919856339650643534087486035771714969701247431737766172378784263228950536992223445970843954265244186832587809600512745887423718120965883055775787046438220132449655185595349118628992827889178481619912791085298353379499128456306630129979550849377982847042991762454842267028262526305313119006455657506722581191023002510766701639764064089221277682947467964425904942327094837810021823533506367711641014579319068340113455955544231743128972172307215721959501144946702768260050372359769437416275382355588615614885314878116685702894329126544820177252136175169251873994707542009612232953159554095208618703999689546026086225688852970426245572106555645829190118163291825274576168933852751496292261114091787158886080119662966865857954062724554678936583214793763851505141906717340905726640116051086362431472450169424111318433885100412768285290853177707187560003863506000815977364698367480107718871416157690540704919287434775231072144824192432925406263923422076709828457066816102517913188872708965836408864286820909856503989870269052028511303235958317814676009370540442004458899828264408515780929864292429352663820239992861090285261539735389252503975987459576862548044084593923046381652848449027628656512013015189382312314022150273526540192742036011730951341288856934066596385360777902560919848163975026739063575364993207456911818924002354336974788738046207551403248652990592815702179805322996985345571879182407080419750313878532857897956785878466299845800247819165015936106744649867640774308490269809211045638320663520449555554149637461464542950888588210186477476929888377131395103504674910796617275053903144121422094670296342888934880164513698055606569172998631561559910006103180146424797937993509513132026334391455008677151682102790004723526164014999817567842183633276488498080436175635420206115103626531157503953363502142280159215668791692046940982594543615097654796257834164064397816580413821492405883420226993108590511921186863142213126357548863576999671746312018419265316186157085988494608127742377867341647197821558582856555459533230674048158698749941278461026920539977685226423395463489386521196173452648551240937759924622636316439268773923451997972042129755326477591290029748266095481460918481103364521936624122596694660784422221562834720611050320766266205267988220422506785277033539232763568979711721172055473363070377444438439384046975512119803292410220939900597246619007592291939867090865151819763596497904874704531240863496343727741047884147071326456601145822714679924621103293393053774811774310581979357508686735081270721589634656794469893849939476969133811384571629903212333251447266186342434134616507613309194342831787833603247424075952412224573894578016966851287836384286215237726164287650129226193425733655453523807695448301899477765420891578131150918195704866053489250917313989249500501775658142882710570890996885453430483620311483613180986985103950576352014718570496991340488689253792015943508587458439308512095606548739388062121076223081576087248069561663555492616092926974601626200120393860761754177959660422385975390580637201571867422681436343951392503492721586171440996688995787101206394394365262268974833211649266928001895224412103594330983796313058607678875644803187560041477521824673204416122009213416218140928643267202677852642881391176387151762947910393715645205093769655509941235298555815889404956058614726535250853762327847649667247366101506983996822551383102518149887184598452927026532195890948609514431687208423370170184224739906535209754629052878072048353909338309738841226765885843110442482798859338216426810930850907802509853729349349487039759829402536186750499587306853443111673801520791443916762359929794211826823269343205270479180704457288196492219368887879554873706702660388981826996269014708252380555242831756280600798605317203034387029589860429669827785733610561003219531361192272850142124197624952888479256149003359018898752925827513807573348990732620030004354734874929732812412531953718154235743558851086024244660334196116859272115735462327596090209185015292794232339686679645026121050556034721908404937252176625274962818239132260313416598577419033505380598298146531837104122315977714660209839711993281149505167265167428978842367789360185468731263383329924507575075488173120568152392699397213146010699560470088169068105825214546441840685474265887099681812636596372232814511190383222848047826698202607587515285832452322226070656655122513723725419593946460881419713133049959009426668425864488526019977458399870428725576756008102846782152700415057753630679248536340757717682601873283102715129612481432657798434575770023100744721582961030410431385761428936003339450220900170426693284131237569174378893204972041624722502391570579269589066060896800147817340652218984173942781833038556304417487063809365208479821460535373930279201883256010034470800199437330184313774527969898325798424620536131903066770186044163363333056317343078790041895901960337943767675118637450639379622558122336379092030366283987063044747260264481035080628233659050070493231916703427104683104292854861378849147595868052295249917597457564015109144738647498577278844110159538841084669852463454643896174293679707825794023028517036188174006685099248269166146676174579785392752754208794148606083200956887041958889855956910016424766027569841621307808449095224718849239990160093934948578868011467620061457614899658948222156336758689409834852702368615168477110114838076835560007198125234130156691750869129473924304113924444710328059816361819639723870104084023560243955981954961448066187706520292963597261918291262763877283608143358151759157458273190083253826724525324127509550054051012043617176929663822579520139045986242330313719532055375424273581811626918969616994141030061098008437988721746918160753818372656194757533536715760544657872662772857050049611360664841207617387713669422269260353543436776492346592753633617124124480480893301649844200571734175784666467013525263363382653660844931636000675404696533250441012499471636106846168581030269410636908146808660251888248759056092163405497184059507000129323127158562250145687625987571220524101073045558692880682813416440298492591288966317832734976403397144116604431885185880844992251016952406915348639124279186590560101099216071760241405128568260553236202227069104768190515601052467638698712779630988694663863210662187713722830216668612566870533382939239418988141798649752538754421565038634092808947447912240311143692709091694960213931433448835758237810268599872386212267393642419915179749844103096352013393065560260688877130852641314585137923055293792683656843342635460444867112303139618313071101158923642705620328270975393321536262592199665011785122543906247007934446171789282512106548269131052066153003819408084243412362748532797395753381955354358861995655695536618675564829554235562744575683202610346098967262402116042857742501210504814098626769229765675497077034823903554774305265507948410384258462792251016480276194677961916762943752278559573015886378270079276656270858923473859280172531851248679850193441330734896653198232636247004849084244533831945426158990447876343923451462973584396826531295684749778398429429528797207842854220786904546106237467685142081160796523559430862084864381127143075052988415850078494029923827731963418531887513912192689983758143477325478719496768482533209685286973635735345211215033877063624792923271536773855401480600398178562063425156196165947269149196919568361255613959955526962212012375959051365299434796157563495013907974787615996227799909544767243705615035343841842832936700681188408958389511924683466997024688934505036142438163485256963860811720089763354023728599723982171753079868184518502534819393627433772998688783994419945665491829165873839236143837662900182811526868281916173717094868396436978495293608653072706581148979204906042641518602630895264592558855306008422026783360657806954843213311297188837600232885486190451289210320023338113782873827780520533865229506089569828496920602385562894489404533580872142149611872898520548436974848688359898209284587788328927327466659485272804336028051007536035555631031870164990192691818360377979585678280184986076770848883295411290041710687337278411262360581710325698323648397398535680440689787805808629624305272908910234479488680368905362850207944072014937018931809150858773688555826837919651062381539800717584340594264798428101946988671380827435062906366373069735059654229286200080525458172030330946058124204758467635587086909394529064627732075635874242524831178855485306610618104170910955274501841520802908623541203967188161646976364546519522140722748220765523281703593347478069154584558200655177097620681229025238343244483323897365912255085452166624884443671870465765770544822150767158286998596799741182817316827766742241481536460260823906538977473518172932138732386127060138317554891887762516713082636632533275750428075972637865162614577366058828792641378094485826468867458518871042924974208330182868841278827426002513827092266387596436442369890599929389587996436975391209930268600394035310409361905604620348140255005967852335019192353335107192268808561849705288436161074380186892053915291675433903002340687237543099932212438496465279498070333506552437332129994590642570090386885737528150404080487026384515278273710360703178157114501644887785772060048750989690240342025982130628897956864187491929756863523412203841640486769630816824075847533036671133280726421850098430620171164543685522025867198633901626131325789760424124133445022534265544357932396245266165549230732490159951997764756074159618852673964614401877005845110225632786046647557710927000975722845918280058117556681172375417563808255361074976385134643498246610435146766446551770440158517201525127996145344191471819562298856960243597701238420719416329144726067442779545113588504763529349377301815161346629494606415408063931248631345103147680280082745768165763389358836569491821581579606916759137116412503697380512229308672910060296443135518563198181697629930500400430450243630894571330355586522733116227380432856599529976340741738885525811528849355187465695815351923367958837239003331458178340445191406491523919633271852213849691447326046676828281727597919849243354729978515235035125362816966690368671148055158695256269241033514754752154796343497648213793336048361290596948611001256073221330957232123878409418045017827459004292591555825953025890973184293896322759445651173715104435156655000245487938307858438841117567136678769873605696429264355356451434533638533233131758044695911305026195046090208043913659824568706918804845629863138945981803482350016912164344454706038177186088762779818024918969422591457455558501676040231402749662111916725124054251165725329973365606199708643013094098837390469398340238813994024570404751908590797650985826551671974216190636805174184829342788402956117911499165773158330097890505521197716185692783775792430749863746134259279321906562397997752405199842398307750274224552927623935659579613795651452048594877888943424960250925066041495262478554198795814847891239123144718112016198042217504644088319871936584409995887812884257637117804353226302404762727660269439209191824463677780058721315709934253236167497882985668067331713724342516303324810346311862706241853880405797454237806685336134276354963946851586972811510039326734161515385392467255774653880044170616612768243442374071853768613513457041785887938243751036313418229567798979829293405803473710162224230272693137811283833883503393733459921684059757936250487014699417458533040729478986636778072067012666227204881403934214524161777215131435737547067658952811146846669483263614976774371386033960729662143527804094330419299655861729939096356854538627501405895789861245299021507027018043509954824500910171799643673745679244522247514532295468037372014750441970509306782634318318949275451371236714508933150220113913063491520706067520641086632494298139469189371002991030103105328800273580217242064428447676953431136926402009819514406491882061234852200486139663080242738805504182259039707769223259278275112946418788778390694000163232216063893447345932735461373164866305457280063249864532307491774483630332544102528438747523236527631240170597921811426690674630686533878454298085520892346198688137807638691251554164057073947329897899036098498311157685348270016966970577163398877232972481968697211487327170035983435463123471948549021731054579174002370597418361113449233720065316198290870036799225810669466732989242761914846980661171839502265409051807851767982762352322692931560042691729448735271477232962622609775866092778902935045566327572656465878046313926163971501270089850901144537490841603957114599271367398345136564743903908527775652487377447441092213390641022509158992952175135862847879083772907005639184307381635021150805522577848791347039479835542440666465632069461377879183091395137002016697078007565228552327355255186769059123514431158847587328857436975051854621529746586039061735396308950291259024133411846574609828863356677503069737783133569201389719314419686241848448715362745777181699798635467304686322284065243238086867217884762585295640087270644647480307256746578834347677768346392837516396034333992299958584553863482001850146950688036060671016658782724826072613477680742400425024093407135641630117785101944055706727670628267892499629046064521608085278942024171170322223816754924278349155614822018829935902657910674670162432326961874687655096853410308807998309654934259509911189950732821120964983821154924100743161119584439396295711484051986280901554403100162635316613903910450681909188490810637389163347411144187182492516473889692750532975662703799655004804513417530839821896815701677415787028445191637053133665721190019552878302906867543241358575305926088890256474475027451476715891178194276586353323019661105687059668685371600002600581544070563913680583704592333588490953048210722238564994470927142424795299382180373466901259627661876382865954185330749379389883038830980776710138711763906682793705983943484877370815125544627838454057568937591477305222052665086850610642132585354870566802506467593684091883240349187331432077471550113843388898330841374469341795137331858907582677770240915397658996652303026403400427203040982452306921156700982250347215003718960606711064080845396391149671926040221056913529874951430067851038791731355868635956447603402521011237950948563218326451920952799395754038192839405261871466464776015384741354431587618551342216423897726418667890303817822256029140281041353064333327370669214829340128277257220098110817064152673639296275631937787134649136609605041973606134035691150094373457733646308234673333990967195312777561373426860987467245093930342080370926082186705133996845412013338731453022852708983485060185301062077396068975921922284491014322955460776368163904416740860852656291323854614442522299345517548844348783422311463266975788552692305883550207144491781613112027563363007055711140664291572800155865270950120802015454197696132427223216149011278145565682041326696554458317572813086936341463526851380734114977298126062543366509661192448099963906601590207947745536463923595273275364547008549976436250845009105977692624919355517523517120681974683048697913605109723472808197340899302654739503939116486541657064897596334035961976331676293970021036630524768624828736003821375949420335526195132518474208126261602249214247637901070710176140811322677783500644863807758897097310037557027285604265761654126245934643567420593068972919675926223249354918961717969561096442982705130330542039419166917934913210415227354668069902395763862522371673825380596971007400711782957094220821793195348019237149311038513012661397479636733959571082744561202554458736200878247480397807966648294587742287914301887648422480771976317318416721961705755018159080644214853343570202749477027262327514306711861398019365646604822765670038234337050260683163501140263679319907422959821563198765512330944221022225793120330815665784742688626922348423167359007551976354605048979939489997373469116713436932931684820509918805002022148649203628664868026415768290695584122384019209116010310172130122227628774568130040188373719879357679516705956029337459367588185852025780407136855258250729443624283137017737865479576893568309341166421434941319081152245264952241285991027530528042021861344498914266687175630542266400543399070322750987038335640067750257525840601049592415385217025580786955492384674495831923932654913617555815767775825201376860326208655622871261310530321491621804213224715096799972115003205576442776189870547652611178309361648495215438863405939487396392881865652609218005683258655901768597456235213833491964920029702224034368390992196293724015553967046032117698779021392802801576986885390951968142419009765463468105951324439736673468377310173408698484848422594369034542116251982472270697936563629360192959038019652184444282000374142667900677111683551010904210972195442122048688149314689310327789287158239371316711555236160311546492050549167485565599501065630141691408581101021337271876822034002506121620404713061373843599900462740819819592018845028184440503940622180402561773341025328406513221898222933726375025530341259514705151393145230258410050912957117337584443230573291024224921195771003961054567781962622384624759340493594736361967068722976946996942138959769785530020572843363312211549463376213381317444163678324612958814835728991101579849941986664561433042490963588797429920854669182092691692373217970709406897975341905131539190497698723795259139681306710513634045956509045117392558309327652079662867902189981135386225647655856277263572468554079366339876073334586466670051299331058686184025460564189910300727367499924408181512593651590286271281439560195875698547262820446875578731449018922325466721787953702381567896991159701071618503531037797528734996579445815635279067197506233779019929431685982168220808767834461243493878897396065304277771965806828020177168245627322736804221436942965485260419311892001487358736891174939869500620335476089737273865586012129134569399192473301789368884867456844617133416482272671649574212613283490623237164668563905419763903143754801380302813430936035697373438641319147851951367181466412277269950199834903623533666192541316385200413955854493083066502206674276500717558526407360949337326863175009881334119566662226100904712276323401342425762323323986160581709280033652185176400909907437725342393617912531076115381863815975091957501445431070755379144341758957562216188790207229980971149856491034845768643838348273623934499425866841522163820971513957766839759238014899636260802640616918487642588218754417305047360570953445485320458522623236748166654745056712916296482022036799581710956157119412267877005578005563481119973615619309054927870819564687162701973013508711414204685978524786848468312726439891690283660359624081668162330434761547277711212901942682543830972363405178288798241725444567636511857403728276245493267242922682052004526758822383026594235591702606160084918541976625082760348111774605300479488458757525300014448369359289710916760601448960502589482648949925013323376824790634900319195683466088167905792520132641190001765460617070650403470265723003270621438659460120844131134988190422197755972410109763806533054670416617868908160777022370085640956373289663172309915115701124308597794068337816457481879705665118439275480390547252824515484955260548243060185561567660077197890082889205591688454261987816218582460838030574069709180365062987988052133048188759274755384441382417034585047506999282982467007888789484085456332516792536238793566111077281703854401942769036496969574229382107467712875882260111133941571717501861531058184644280777659476601517115594423871919661421250557725574909427218742473263351141051509697873493389184744131126796686316430853713777760691178952480775844302142372289728440153330278010459558781810207074176970469502707212216582080028547173875270090077699746997034560369832111525070204202588492968722021963718208231231441406896965318524212063896945553965163538692274308772517419873164171721316528481818788116261655538251582735487930564077406116056199562054862719013899392679057090459358041976188828232892949307319002286677097029369934766544563536386550108143196639942555111485821449229438704701968232729650370168264671017651809683478765530610377798738828899283277392430361553515874932342064001621736981243961759252186813923506156289096497838305133720325330056942977747081702599526469986812666608589243080501202052473495360645881456732685986236255121236755882008896654421210323772576521682490310355861717947546340032042488529179708310847840125559182692657236798968339092854788303890798106630640300905890578084996552572172698511133014678295764919308187509836271245141756607329604093704939800661005782016907340976312061696120717569625387585383893738076455592081634766612971621900258955563627504456277723077738517786832654629297900022975243508637640324525518618766402288202855412343378795558641350416959710933082702041582781987198756856432382620637176378440156697812597212088860918977389941606284348947005654810390938144384989983550015112203510746820096301263450542259963378735366713123584448137814725645165478346378744756709730455043833576815146521067149552351909527830430313832127862040731297301188010602048024465475317556217754789112602228008350432370741972800847402334892566917004906071047405854226666005627205818763319372871716906021687386722515709043158635893204059423307710860351983431948315715151148302732935352367053406923603369310284057901985096932483924232156662492591736967621900631974970716839413353963916209589255285771360835990469850373295059989010231625623026614780535191113917716231521433392929178813838214919478909585980647709200537453441065511679512696227063058999464796634914332085542385114973543754134883756515837320060229729640884990598426664145291259369114902088942761159338315433975428869424109122563619622959277427016958792177498399407946992564563671980609643088806272562837073869264374663002223499481049492581397672955834683223112819036723673907012503652678616855505071406047030600947318567222437603629101927508677320148900676351015333703106454619272702393874869423945960428260887216378946255888392414658634735713209755526293260155517036651103498968244962547893386984244735055148617717238747764292606585659772775123146399288192129945846672217614494445552646442624586761347019243372636957557077029487962619191009718819288171171190674658487842902195903940177224497420921700068046497238532788616131860695699795813140770678068454408402316709263171597306027260681106132647591776817140618084110428215160978646403505395098872600214785992006598883287356805921922542416125547870939175692488651960497749978265314668349504697470180661233812985058002868795919621987777802185362049140012890489738416863164485804117064306625167173504557433134694566584653031927664938052114787840375768768122771936005892653615045787248789458746072429985930373175887640705231084442607087977967670791632138077327138651848770008209756366255757147575771766216214616840682976858288213821796401845416747713894842293413853490757968791795072173424518847202717106252450731894012589404058396514397264430983498843631678821212099427036603925872562491565652238730120865246687225598094493513480542511453807064783087020335965791752163642805411613212286706943252409687267251194411634546257013100250978959724481545743662792637521325237968887662973500796317281086931579407168286053526767013771538022191921176124996674024757312827752435534253361774855395243878736692118047495853894389249108764541706396364002925187427207032940015530037425624490116438478104268741565461348411148574547563062127094837153456155232061157628623814028894923538858984999932713825726748658410777358945331330708501504116163674918735885219681724324157435859092537176172827012191856951579121494112654155060982016261669505080710088164954768252264061941676338789602357670782599155521526686096638458402652492662065419188294871893111789045045335933344959418838890662493117455014227790764487943155728640475550476666730591707003016074954691828451103418878577640606997897862128671098836503069073899953900213989540715377573705403999167899454544728715642903493922737785265253105335787483865990353968210077541777311594358640302817862857240835898628606006054500699902013913792123054380482858543233289672938116997766446977697356402180730045657298519605606531954913870050921679641179143240923818742740546496191131166697906692930578969477571215562601027126331896478862727438385929842854715373943863927287059909185943574299832038466924491228510202701762376155130905834248227870269319633024438040274925088400498165811019102995933600782667319540913545567883708764720524001476283644316721439813741012151105493593485239634974693225983972015764456678971718623200735903210434682447905588311462919832436590855640111310268321296784491875451194838534968510565058457347348549266933172417352996780174809427283247731359217656323007136866048659821649843600375475341490677686740992931792012125119026282013492346145913193130716224734959319613936155646373705862701580375398093253555171353634733713338822308022659185231527369475879226871801525254825630119180594949555896134452371721824478720522895220250610455220956626016614010936820859513658496614574167178439054289885507600610438627504847762737426631798134548207106222217009386828415578937640292564337925559448653165336525042595344857458632885519976598532941427105449453703096415178394599044359515138029404127151006796513196226091682571035916346046427139717201877887953031175367382391302156265163927130649508164655155184283996833936689500930827479794291064199643606866571384586566811901919464566151398369191558213566756528627974138155869912374549418616621109271408311387946585584062894665970588029130714559418842490610717900873294066002799998312201326576522489731305803296245038617673382494564680254110045051335254343786739917829157049730785286826419122517437818249784380234407339335854123247360195461192891355328442843090592431123757790507052937076953453424391605648202856356438811740526646837061073199190556849467581580950317511373370328685055225632849799714085370938150369622891703600352419497822773842111787248223891087643704218067978931210360124856910295751737970657228577190234489399420183447503769230663303119161249602768402071828052503067099187433062252825205812225561319041411141440535107258923246279351373386702884515411054722169732200804250167350397926306605390147781519527590704740394660614110514019495494139142253841042810361757992161024115923761264385857701110821724063054320776497290687128700070212207115815233684766662085058877992429087436766682410154402887069734605595763018758522849800958663261174472426768308686784548617745026946925426582939457671531728211130094935723917035532498946620302661748006403444086060042408505052098738036659426959959045387313556162197134451671789310761698196761655725331677424337442836594392720090956563409183391325095488007544339265008069522360374960571755933265827643630758952852151181540842886614997999187700134546320621853303034189246378861250959406747534413020550563684696162747385521019115023151369681216902297256894792608190471758835102266350772858392940658300912724562015756239597038755938556298237532634928848438362772242982308593122832067692190760935680792112190743800129252882983960242717189613952500564674159792171625172577105440105520279149955910188849980856044393875622504597307680283484329864143135773064410023370161740430233172562113395515860651530306530467594465626149544648628575555864276683886185976212190045388278915825703317811759392073304215340817675432322848754438473662095398481217336607620212079261477973719712541299635552551322084689392565101185173884201565841446429642706209564001176704049730805015534324507178522765730889883087842859600863445802454530978261780379944775245895465217333623733274376830034662567733983989649582270564200497069751336532006023353939607901774091319200304332203721586926699535425228504800465099807939935924102154629529185082823044034147775811507504156089972520224895686064333587844559214248455932154235995041294541145611916030952685341509646209466523658474727022450330909379500592380575470637920027906692599754947847734806932622803637616261752664881787306091356743473652340818924547182971599443694070607248433983905492793844629941957445905645943808739310269728819093412692352713512591622610217819817122004293458240614289767729048924914912149627099248509394655224227748523739250605085577608438908171869540108968618361131237402247627099551253168583728888672020695565259091931337186576331013801276966067892541275986819167770136261279714180291914195682798425582730513288550693449819815811151072582627491299061671066857987273869742895464470139072495120769630026943655624214648435007621861997010368521902555328696625349474071861929760401537623461630918627211365490796755403458790642800459648392407239534448178189311837928222263842227932299167791876245665039128713931948064000604062968481108119889913920815213924646810924638013328280553185948862665537474109840637704844355381410969374601711559428075692892925595585887853737282044892353387449439920229185957283295827419577840229273015444468868334343774649212188805080372153608181019024757162589208473911967666579601006400145448606912697982192604529362208102355023922435643745970756092133270588873057605135117097653984776036314481402783658504479670487102057723589679406573056466727107862839187863479765340194884966293986395556734026818488598496183182655690698654580684216029205386694430582704587531877908349516968076557948547275749643593261917856518682992726869937173864718015683197473126098906032949685561480251798814847173503468201119241503919971325225172424155151998694039695690757659023326409769582526886016082051493992647382919980951302439183971599449414998149138745715735607789151098395315327937122631774424826387649654620556893208614375420838821025889067519629970148888981105430428999770572857069946594901527575898631915802116199722827601393865020743050359831029121458665694976676898450603218156757607368947895392105161068155417826671921821808060244620921676432219604181070203112859496534579275109589495251692094433964593183389496595325994089436122497732056734811820296438635515911227368679250750205654073778791701035358907033108254924625028343688994410517488315859386637818397890385578029111114004088829848928838190752756615648600012394381516286572079043909763847317623304497264332884502008814843121869770840417203795632278028026482807864267057536279325192288887848418815452882445851679703014214894409545949297242849992212826516422233159679820749882231493742815569245938545566001991292607647926488413806943901759356345693965207509463166421620129126085463635429634099407610964158199264730625207981428293498380201162687293649641187844123339566362580139047256993343539480898258003102893231288772107093458537922456955546810097316876602739754841152019359137879019550008497869498576919825554225186443755474699915396746788468118100769052893400457012335256886134555914229952942861043529864965541674937638102684397389036373799633112772189126326543295586845517140701748401467731856585070574475402239547969228744129601210045165783726983379321851106187067226722061102291123533559386598840248820747996780991266748888098081611535784334083851656514599139963884518138149849519910822502832333225271109736490374776349281348290319860356291627241886201216768756033407036995341497580299837706822332601995035052022395353145885374497097511304682173439768527181617597342863818604072711576321851701658576164872638614637981428534146424411636944481254198202204494206262383386903124742556200357927360495450252480574067431114394971307063800593497538011095986732050482813575288318029730235650014273581569693695626923073100683605196230448121434763875621673228285082533652826186768029948871583468185257832369605084195470625124649854661147004425168103438004682745319432981563718191584085381494949807841137746963452768536815217476400738583712116038431669586336553907455575091394038484573538880048696978984243231497749223288901080857650073681076261622146284867801222780539292417117327267500333305309673277771252274211799547102042034646331716730176632164768072262086224250079941545054414195240926220583321623068243109205892311588207770790161933001694209486286522828970271810968951745731875608112083173701041540150944737082385598862124403338366329204260553146868475904502421314925514096060992933264732569674416063428437387325943490728630820514834460210648492491345380663622110464736647026205229175515836384336563060110651403955105359566280444977068907933113931138782943595276532315957448610905557725742092273410589636696947487009435497844418655517048795088890204728495473637754147758477449232629421396872267616866760772074914218042402707932543514571374401390037518148197260588836189146338420126500585275402133217275083254729195230304910125318539328814865039607536283855290794213159685710874062981779405818407473726139496006484458254469631703105150134487858793100700394364905690949588031638113826897223384425991314222738580074585169395905960247977408673607866032331493040598650483700460081547989696999869895165298569036539468701242353793092456661591929879311777433812580269688630018644471655735162966450086779396151612618261549701729512510419152489349984511816259288235194705368120484322449860401748915172130726275361593121302725539664103989043513131498266466122577393310291483878202461709740410618205125184563078898952591361717663749271617355886017207178802919331663036070741405524459818238472733519362536858646744390497004633067182860017339260403328935628555397835327022577445004828249951213962442010469993323893268949489846718184207942537665821210889564346857497308950532300355719199567280826772345659003576391310193558872686478201194584968062066257195031026956274076163639809644355545925128902278119487952331415861814006637099016492483532702472319961158558472525241342686257047350342140707096450672453623397183461776863582370622752150479490494780716841886345642376153617617035542774903079987481323589726979389572029004117284294756558989992250115289771074603859867400723869271242880979421213906755783910392246101449245269195850950839392611111568682748686746818303603944499605766652835013257040993083851056338681584596048951655142559687116048489453078747484651869602417125030939868065706067247277298043903489394683448692924691597789130168618625473713916174565651556630629071350743541938346699921940322327155726118663062035825292024867243928419204258164325543421296908223060980711612844839068536787804786381008980512929255955804631515335899067055291280139459379722941600173045958016478080455770103800871067551334214756554353230079216525157090473146203650088482675782937357289082328438219454946517286140473601026956749709428407839126218575468556175346581094915151911904274980204301491135717140688083010641732891491333575834890195048125967751429914536506064928276622393524256435790286995144895143499378282409251682025863013497489726885191581881488537751892410080097813249916917775817789873579642770309322459524755258706840339202415337462837288651026836223277825631101333523000294105656513224029430793382283416298239892203122838441777267437059887807513875193395081825460871938800124999516406265005184135477112837746968591887243493759121751653346661933900570191759145099621873953376133664238393710891040973731951698511007333743888669585605655021248575311726614843417126425961996750437759982894972778571125910648159283330605593552137452546447248052243834555462904906033179214842141027314072018460086904910729847104343855378886157069239678012472728643496637277232597271968158577912999765714662104268998028893982860590727051191603935705831338679307775914965430536640721805822595598633756706558037819038012651726794246742825031682720537199735274458201120405052532228807668286968625783777452408326611533370356014486019171597001586736733939228943507401613058202273324502772448985761154881296527609086950479450164880435074175409137888144454002428344538643375323613214183370416353634473524380366155960142574152575635488812969315533726181177038008716493016825695623119895821944966515729769888692079220587948063069410124389074194117050302858139992709037859567516370653753158326869130888741302301827309415261487755862386528542624776630609930812644347437461319586495345805637630488526899618787640251735023426848037166622443569025710439319820232716712914716445568927109011998606772303536918881415990910231999355550688190291664768274448847232389602209245436158452701325496957789140054702898630931986605030692521509394112605210406886936996521336868439333846572080475805002588409252450657103011949852161578554394404818751338510981768244619782452144443348768078343802455634863128880611279723854509942541698534746682322354098441754419802979319462914742369160258501844856564906847576393823804393346940525754930167178479351094527256440628039148784769516529037794629416603795567876444833353360804203929059254378182414175873774967936062091689675667158739535456318302077272266528508394043421824645808823371879122832638846287960754900642895940187469561610983243467410589883522105337090629415496232551329753478505290788170828054595906284680366039307552782636067473165052233792657399680653515591631691573423664754830646338252527639050691017272509252244744500072759358433716021202799299690929896510379539097450111043889425834197091410148511789132574248237161374184504983957502995538767722654150833392941729189690383077283112709956549002100688379219626278056826587550139403040517508907682264016206668871246610473403049773322291102364373776469711441207880471819888098903488542540923864912284932760358172367031134878297960675394659033950868391981368858520256979733825267178122780491699155330166565819689350316666353220767275639244445339177104524873041143457540555432727522642527399850201008198603634132656760402847454301051726950196440084895906797587475427151948901573266582889628568600856554940180087019189309504675168404995844018875425639840878065777109428002743284238708668265396237431903611475478244366163667666588455248136342653155182972324848625071233610211579015625918462048852080480143694708311587307718694931637298904960901922517819961564735487097676928561629283718642240491450232483812988804354800272212752716857125095520521185047679419092132595670974098218845488302745223591485474135316480669171605177328803389593006919444663096973672707349128034604197250352148329828695575464615197928995817853445996959417002419625706030855538659306314819832554341581054954988094519565543888894975092596592283440945971660504155530598704996077054063038049170517962470854362286649179973855910075582984646952927897923681920485896799244849573602728916114221569716255204476092464185484552988784836190405183409561879447155859307181172074181042771803703231058481521417394761034805851546151674047280526840912534445571577178254901971467887591045778539285635371206612306426581993861299677549230750886732094791891253151174420764102021069121844552536486985413426107141736901243225189961552080009440798582130685160490165945486930078206029272885854288274111053046251219464647675589740783310088470184072536291194205220728589963803849632919163772654775642057518353850153499616253122522863382115451237936803238978647918761427081858289294935007748048172966927751213127682591359450811410101039261439427806522744751829441370121016496642757719339589313610720983756261407980037870869944698270707378144474891429778995924310637635667771738562479499659269117426508197470549410756419998667055786443218675713162428730687961398642123647455554425198368757194359874470037415867846572453937409798888653683872334385330314433124283912900710081437561049296086190853476661065021851144338767969077790510938842525794449224501448211774038514429386470394963384678125602593656846893693076315631753303970495891427588801664330578854618557810858601880652605323284544923784323085792548026869896886449083686490213268116242126765554234941016195672739596558653923006733883925243432522674401173224054376563785131616376131248276361977211349213718671611296274858601079631389965522495260261740545973364135097824927516067353500110946720032597271643713876766518140569928697131700740170856793171752348309224282830123808020178754844200149331724981657913448179415927134323273243007864462418014690921081155302536970991474150119888129754555314051660220521095198445486700728499262333169049479665625344865746188597711928127259836604925935750039486895937080193316538308560467054868536000735409500820657228426761973237882312333359672971787388940201698146408547972103949787989982666363763276760217522575140152164166367372576712867084059379168781295381283048810949166854406075340610575467794706189950533303231215451336260625754634940408826899756714409611268289152548372758579810438106559211629245628608336876976596149900733457572336628666480794787558550622679926900063429950246546285128986819937594760906278418949141193875047942082966170627605550144481453345760369314626773658843705364217448181930028563015228651705411459595700693652880150509231884340754895785502205909602844414082666404460269556961808489673876646215379609213068238984985336195290841687154485940659575756699894709532192097906948831288350206363835523594932258427501069110112085211867199667726677593825351317156486781056115891406513170271168546286738097333001797953921625287653695936839377584668595474892840513470410740459136275835377767085414694760297601497874892856416412811060711603036190341719904583154814447716353566484467051270836972772418955285573542555600680051270907847213232968721741967132498438415020336869299709289633913386017622153168831582837708162273014405812386874489272757768574789602656031747931196295035456104289723032683789155589561551161428509850456592045054990392409356850295404145977102229925033320668936684200959819455752774514800660716814233771267873403714012436891218540492781629857597805109149115872616253556518318666315153099712718694818476153107044241484869431493643128540853872140546918366061062039557592608683993490417793200505731462653885018089434660831504451604733307080703840071702188020258941202443421424363191202382182870586108979590634546143039944328196270664082923221709268680325591351024172684278460979391020611648555698999600866975193007035162777740099181280403370252527313076403892486273873117790377232190972285044940613592490871609648012166084072822548041831191183083733192733721593663882721434602260868278796338369328673608608105393383046675986073758354175069663372973779732395855088784221136915614434853594013316926589294909547868510815708658153622555054407303246152958889184053710072181549618646112634270270557932965907810641474408716532686575726024888690865092445515819967189235679268230221640706129087617011008083450257831945475223716015218942500494837500925852603376808892021420872550218849461762692492641402904262045118588365598441553995279140191250441178887069233304377064346440363694803497882799465090628211144925247534848509317924079832595100614241012316157064999597504343223000806713080377653461024469746498532029799865244800388484926783333826449825451943987185667404565423644350817568404802677358778878211588298190966306887486123072408337876442215100995887214259794830757616296403994970178690489201202056899334721892096835583346015554591788522210854593439963967002107986421506307839442707947120715004071651296974060489309559527544340783243313310573449880495296095433866526203933018574277563828047577101198090899975403968643319618315573890687847844888773274205931700769951690634324101750040778473195763990105362864712907839744213513026022946364046303030933967952237189973493132077809152264770167254547026330286618207876199840474755480423445559188831519649098289366696235846116932808847666891860625565419565347102928599861550859736138455543708896934669269457051183327264407000163789887401180430177889050701391519631674619328942584900508499841816695787841886060024906876336116718931621714488319384166472839172296169729537623451749352819552313372339154075813604829237314189835255763221599246941585666201404126924633707156826719701384979400030343615171762849908448374244355019167171142327457612335660581131504746066570650909136085950965668460463806960724364353721532281708257753384191868589854175844606397142191277997637533238886466342675438182034089862772256568627822417824505209574029433698489859251792822999568179536479139325563427677566188536208386217829673422174800252425065995060354602441139216269263586429792672330107392775598375158014874876887266630183081361821157168197468982149595958876143737137076215396579670531075521872782516961739000533191186168938527679903334722679847656191205717387493338548151876965106468237466284801478923332043898201970029910603820915279204126855985274594834127485403467573154816921456713342397704919097845117097251317736351597625632846541178641843891680236329605480516552770365890937784585377492727428604728477511687187061407933067802982381201360967495945380021757266085190970037636784981753693807850074347322671584007201763306959251337658194716669310325040680534101681283886783833301834150992431055555242021198695691183141039464350139192476415401968491999207076955932818273365156208196982858369520360944802341748365964711284964181157423499429781297369575093546519272267044938369401078622916516588734177630744768112941759740106900708714744773412440424857984526112116770839622049903609177208257314590333091842928706433306933155260052033067479469376048911026526310803413976946957646080127679048132776745391192042966960597900733790522985559967202406087638463929113280267651406146755217678856669986796641635559749393462881458000929617856828520030626729694541512077833326814312886359237845778041076574498250776223186940687543773005297042864145901787301360062927855845698667012385506651938338849459617012674567371653477766014199814288871466137847534265619415879854203519589331954928468526813316632687319837206154033756989428768696767557862094430480882899177144032141339772888458847023024841196393679946550823839267901454283084107725257879624141217778082706434706130271574365451933436728207235460037012708125795664641765702297117794062255487959081246491078057870565900215940934319720825701469473051740183357888054828210465198706278955510503199785878579224234571140957660959951904320978938873628740163130483126885522903331533632969073617580975916172983197120683121639640072970710681767080656879443106760123754171797889452957173966150249365073410036220121268663555253318637131787636919712198447555659921389602829960111172949691032511212408501654157227865537918367904442619116269554626077086001387583569911485414912648486954047015125613163085800657817607456855355871264359679628660931388626381321807167061143800191063794930488202848592618212637379726220353518559770383884100180886892936830377325371220202336541591382552244040469335557871078704037867643224809545103839187309028663049673222213191418253144020847637976384469886499722289527573516272527617471415001088346641899096510112778373800443734698913804151340420379689428836402190848770080745478744384133343373501246123397000764915890754873139782772307589557609499009891834881309722237068073285030188509989940286224666321056051362669023646501636983332869519451958645989404956849607859374051938388186631858577447327953122900561629112733992643252698312817307867062834617478721133181503462153264914079431560407660223982049807885659731856686726499263920161255972921248757197076719521666831595969901276285767558063584106837377394556522867297742624147478814953418561992237979415841048216265741533976078242883400943964058592733263044450508416064880814898130718651877223507775358808216577923793976805765485719393083538364413553790006686942846761169485946827608748259621907398416720164035182685203811772690885526440783727828162405421551414296833500320981529743969352903188855527735349324130643506372655689462261253015576563347486332978162208105376542188241554575976821157534409607921394156013445038416191550590741871556848156218631236268594297321466261032959207451706802482689612050311515827624028427417984238718638363052242992324490099284125948016367810446717910688266956271617866723335097302481325554180851510278042431580326034561585449374175834462577019472468686146903139854620103992624735470199744601542859134902615356470094212087473699496390322759886817217195110344505331753439214623601383100274926644559126994668882605599078038445516376672381874136074517897661230416270618733184941960572457425254500265743561443312749790419604328730961508373911787078972103713868003747250418622209817758392861020532123575696150370685366818891896614572564543256825637444461453963917625871586793562157088291492108681731882322603314275221754613159649128126012129147167395263450487940611466539703970975642369379093871494322285538456607371436567228303786873272539337177025254148032889386715257076335670453462623790313006735467555296221637558468668176441912544088565192091865728866229017893643870118894783048880228690309813333920138965822217317196467577641948673060836212816426811385694393724005379101154074367307151271699651891859771594199490955250553217300011589876324326704217032723450643856451154402244298452180181291498886093330334712980332729255854582953570432285612361752460665658056309662478192567101169375915764567676518360381305847712689685390186105399005959474802579018783280868440623419671612978285474045824774936996329439762788169477206417921048187228074039176346544693364522886887482881967532985695789826682421083514310403053395173087400616857691769894709793853823620059117244065242213518129600087834728134507201380993912814763507965834723625271484409501343705368146781411321362018549258697822124409079456398108179108169579925076745171942844686082271107397191145949338816317895248620258952188705677045268712340999297989877266664561925830835837532225796031807241238789499674450432066949629692703822114511396812600615400477415279067038697457445267102477833010429629546573373990105492620628928378385237507896754905337862545891271883526719878352431647955684662651828018810240057982581471351646401053806679274843654594527261358258904858320953851711321166870687265898712773657653061650752502318049126077782312277416058578820547347968624801847825761076725891019400383866088562209147724411992920758236754952824090776506596833616402679559554408096398523775762803247335205122026657396623076184787126634054960903651826353038183198685474731343829780655270243382194673962358333200178450461876235946455899895262897278504654246498567395565734595653601642300692798515425905635055578158799014282608991195935164577318704767119341185138862826111186590941569540601876475313819776308038090247962740861409106589920613395459927117066134961772217296436508363900173203782707289943688846552322001906053550037581138850172201269922560287550111231183468450678627482176751813799825170734536661216771416987777242104723271410002126337076251796873594613034197682485079145812517047776354643208854087561053025074418522542052157750234580910779593547874903576858622986587741392653014188215972064981426407802750974083912011735516874468015687594814436349920976377365206132240450203492295032120294242795803099230357670571476494607661006828440469691543220623233042540904671292469461640092044228315101757046475021983906684556901590568110267853744551899413436680535144584145668463007651343607028685060640009720884703545866484420388865207799669433032504730747484761978769912193824043673754181086711876883231286667920526232280797247014750546671897380153888089957281533282182899076383211355198734625865817291133689328321084941570222485683086298863732912194060700279364615084759431673158961457354495049782236723492786145929092188736306886859145369848531222558417410126993443086164906999179216794611692466146074733509494384948955374159451207665690054129149380035248778745752809111435886718185262939858610988431646829365857237875974208405257777961244964772021213546568004525702470682551828319642965697349485455500682288685586117570912503961764840515826240950434271072492669329586913544221236645763517240427407650831095609596833323062052456280785532254722906998199371825463731545783559170932712134663239306100085336502512083316098302880376099831771648750427015870221052809746658179795889738674213895279225497023016754233324120208768937455087687989686698633019743386896481049130374104994045491904509671193895235247574977089701987568765172930900543881299198748795334231322593857974931493045810408955891594836165889385410398484377000736743025138545772586524837498974154638919472314292405532643337703585793454098967906463583813049372999411358463636620673973674104663245387859959371189930818256549758122416905231916345515077291589610807637634115227028889202834717209455033167288737420640818569878820378721320996903315148205537555020455870347416962535724848700928621176114639005298289858839663368678582051038837198906160709325737995411647702994257532355363364096606100063714588190841958523743838966789376935284244726266020578197017364498636216573272478296151324279826585727205589157946652307860224696290820712003894269035637773417391219277686375697011914559459967134353573458329641339071990685749624942380059863064074232856211981546358952393100808860468120696034859270589869941642225606781733128359883801783376812836832742978442257446810684878246715351295137804810786860378659857257854278198388021546129132331973388167765941153280364180422570048596914654811575534272376608335618233268221311783921664384725294180706749329954601531569406223823495759797184599379893115048830254980366864525082639021227570657557634297920293627684488168784527842170734712755291442714635452462680821844600744330583770026527842561452140470697051129513965403394711842694971718577814723084533462051308497244390983679020833822113748661154489544022150111617342355246904275741764115044741675761767704019946935435321878959396878500309951682330173803152989094880876368857064143244469880717023725281030803585639092551404644286150820399197903188623852581502208959672587241137519658047103073066536213014249717758257507314569596518796681676246194177498280082727234533101470849102157302678337222233127082587893769648911132464466731948630030780294612311245679275255362867019598526757926164083476462649411320015913074715033524715274102226008194156836398834598292775025845691200453729994675930250693491836674704310169005155932881494054368136419717252790577998290609702440188493874813248236231557728385941853583185877086575955827559474040730209960915230541723926216359938485868454129735667862581858335308639682295721553597123856461112800846960616546035957009698139533573261933958470275095006346215034670099719979764925821978846419991225928916377931721782516572915130064031202162046370611299285813865408814030749902967214447280799670688294670746935361269447137473900199424455303112136180962655226470212063141646916285827988579435949758357654275460454874226800663686493705130656933150065967837470694943558328092414977817718336336934279217685422388749854665470206690124615418594857407249701928561550008511955724494352582869729256681265453375977367055530407052239466790245608693568931869854470030599656249210894645796349578868054446625554086266974277634760411098003132495197621180936531124744225102471076730555292545033838367026286349927718617478884272590327140969784581825216781911732368563812609295740456336806875335110862957141686420038924579988196818313324520763618673464013709000198236230358114854404374321337246293525709616330501665417058937462308687006942702875119803583137608187048389760608419933362122857505842222782148889678001873357473658000953419928168054421654171915189523924154393561581865534587174371878778432652807943160828680566944713158860255617745145552339457905502078671296159784034609108149075961303723248676571151845074269069967284662784865911801130475545239098805345413931783553013265312287238804810212954711472482362040991366626055862492064360445979935979111750836698403972316996289677348420650315343910351916970253039248220066565642681329201335686236948495793907524033881327928077525037562938186688685993853371364806310185987837436226852698000245234230658768765180761883242788308250611587686091525076015530058066828729504168733153320628361182918309292776439671898507810920430451559187391532472783517262387370308845298136144940558523079285586603115897379015321059600327024358055810378909580424527888363538090093293955287612420026724656026027497461560223858510754740056298541923826081593969280075025105583066147629783343979921249128637029227393966368940169644400038957123040636841886896621696610484004830152830447769459042599228814934120165859520623499893531730106590914985231350202163949655988519130851208949653462900070928823450755262752625650956648156813865080069528223283896538297811263193983926704747725066951405783940730497461036000674857297188315739979261927529824039918884849294520171549366078080731565233535272902510605415909809707890658989343747767887634387090073022884518824775255061344515754693594785760594739532101292132635104225645785201991015234107977318514513128154062571404581608174536410897197006170099538354197968880631507922614236586044459954620927817903807753323200411142981788012390621567275847919407478202981862547372342211860332830031972745453596475665332260873231639581667199887070089586077020845152344563119092390593684823544108916007009573316999802457267323253466544205431932537657900526275043376912682289072591556372286247430015293470211951145545615277613740835886693944022599566061568557648505237740401020643971158767031087750995166256807636005891014953949037441951648431684485004748843822056549867395791612277252580769662895662467779528354809659348294535447189003655855680222390038266597281871944145533822896286039223753071351223477427461248646025610841265324720594765925290924900173867023716360539351832808301175592188823455276527719934745350382544599052949968801174782689485796378258436487237851865967233493296763198668511936305757821412641466223298382596742968321713264273759562478750119035743839526161692201718783066779858254093697994766084555315273594740390794481795034673854037175660909637996943517656390913436828812651577366207800518480449306439138281960595089848484734350344668459532844201152944537566616207738545789251777318453985771875236379163593421409708688917303809927157388785926698960674359166774889677583934560550736262565934682408364207409217330315953978851563289344599676743300626360185288254802684420805472614930947858828213924643205715571292950983385949629870358570739532860845290295461804344344443546259675619005257720261006169708109855460346707265411870005894048931498454142022397050892801117946828942533227759522166340445698202579037577519197961228067303487426285451841263152303010247571108485403393915044341483086317749090327308418403226546851411107428292025735341578084874611557149949233475640188791395757368688144923049593659039971558906060647026077571126310941120064499253790643496360438903657300868706557565327439102134656533965052794360783154823375591106252841417211507335070797620413647454438173501089165084164628001044895455349036056322369575800587547040024574182902560260630437994107016222654732799196139059617443198316196043741258003269922079992468162094196579542909106301342589823858910284342180949458348173989515576237898593986999376546914623934392930930142582141865029393124942246431837346000621671635596126742252695272714287755869914310569787648464693776789335192496179386851561728558553394332158902645127479230892659404308549301624534227501347554133851414611554050496894030324665030534695248300133831021773823297299927297781142882673760084283250260749668411596664697535284970576966422956682316448458785127488442418852109858230037751905287528927346111577932394201990109198582105400094137913249852687667850805315427350074961312169648568982330404300727925942125171699537322834714113104288911163977654686603688270195616884297540376138263596597502534780451786568462177370533120277059854900120891435978727090713105843937252359136156202597205303367038333970359970237850542411253133809773850172723538370678056656863199308548866932838157703133293013525357365799054106509978589014684850267127364851023891584447947936949809848828793672361557707180862000715099310487187903995365606824603768067683061236191967196410278893277125063214079179641159807954487520390681138513078988430737845074561984083132161665895371054638996095685323590096973265791937830551654554510134719808907774261227492069759242779943058135656200774570347297915471957577437467453511920839863565722055867444876705434504687122137465595597633127606377150095722359053460866729292498537498344986406759161364707330798308694693639561213278443434445094985973707067483708882470290271937601586111915147714158278145285559220285648449309052366851757589677900434717743739713052440729054218839243114578158492221615414706544733352213487654653266813276676186768876261360599454389517449941839462762599481125906013188102448157490990496846879048455564975628926933932094865966505377435010813845375935910349790617894135768267077487994348060740136457012193439538270528820187371389686821244989675403024413852464370251821176640957400948138648510330428315249195900730775378714239008528720264091850634733710724202183289352143481696629042058114521013378714336830391372898919264827949928516135902521249686602506728553615417551559869954766686833398278202558270568947116799929432237373825378651789124493859347893345938624733599158830347689866706657408694141915238216955584652222832961144507414607906467876223421653823133846174473457716636348081860294134874578995150663534914625508272803387514831171323766987800739937728218792177716688975578647462927744732209278482574581684684448200786777264723940550420953035074927689937534391877728057532023016277082558943559495614736003269276380955460789834240070834698903772827103677893127748776838065532518754764358782898383861893359801793814009990508169186044813565257948158949147208625512741831025924942986204577287844079632742293075617194729815793490087511175366389882407080336135199943729215101471257290473900062633506015200515472733554864614966574646261692478552598823884404911627864663073966823005134082813118243016850468822657654633647454272781240455829352354990334865706657637185573115093563741627613820671875601661109250379487866388204755008001370963209294519931840814045548006259481438912850597482783604812138224326080563268769120313095391605489197193920323811948600833138238835790369256330490340231778119659683690868117670598385387559819811991412045392688845326294963161705449531093480807457139482396661013995884922848541692573055585368358610676933672524055880657167184853066780237162680508062620633827794361425659430239240369942106219778802322168098447923225751786081210635202386548549030076906200591400128056955843521244885042798585672271364122207108776340115306124279191146240072932658827834304410846315336174500031962938473442251549305455976151923253437461750159796962746008266776017161080136326370948424950713805074673522587963056097583626054581653473956642196237898377560081442115600447044566290057090400699539972514124504123627561258164273115335342962673191594463697437068005863006462331775410282760652706640787226579315347246554821438909835271469406004414508784074966449534353912158590671117538263720180684311399947746961064582923934527902364610538664650392479858035783171128348734342011045757620773805260078276814702961042753043532262480179277571777619106570344887210828553326618027458713384043258398611346250584949310265458139322866978017075135686998083754391799648889980539935619600503431369904982645019524346348506147113831783427683432956111048509347502848334323612818422311817766926990065977157502305932966691411755244700310408852274873894318730650574320362496654883926038075483196367071862377866374019876706484208905962996285759252062956196390193326173036899758634338406259069369469545328209294586334254196903187335732183877996799209997358659156985755746668606575329784989062555338050865428605534595945401162336988276522143760452310651884037527613694273987340547335759912561883500200665015517606518205093654224761140934729971166374946695823359816065196066343974427507672329464700361248832050016136049667863444216354606635798206312409726693620059974968661801287132035258377509690631287289385540985238580521503519867964041841405210139285718243660662958681969367562865504456840423873260039982042712383521703225263752358149580937613062706726471399193638035639833780190921713364299899798372217805756596405306322464588492754179522261150481573251875113941278116773914610909488292179724242530999161281876516646469870711657627015159193503594531992524336130959520597346695802683241652983456826266358340208272644109627624111009546522360010472071312445823359248941209776918316881291058124874624949538523056711660088376270142715450167579008084109940513952794500952592310822801193782225668683416082739402395821370294279017873590686943480411580612385071941185960068078893741589525239261156707195213368867018706959551842662836655819762786664905495323701813618900683110563385077658272083142785080567066494587357846000998902261494755228435146981117535604524367667456124330890866033499465871957204675822664403431070775028523464360575650880188006033114741661039190034780779368159269987765660353168665292262932066546653989894234090276272331920279086726720205398179656678019618698582277635552030254130911233478387873623271899950404914707067975917697991618517449359571438797770775618722289316277787983338733341880647829556646080989061958762136724783136102509519963293659983778181480695850990651435473715180253975688098181492506776552988471210909157787724141222653334004814848358179039213564880523609368544106015044035575103216432168150296197859651651520691396511997566750761990082403150660872041861764623271435594354013042682331570505846876282947819935888045844986011480269812539108013138202754145392356497178313412112874500617851955295435937618774138289493158739868130502674620639171282802361549979612187104976440555816506835845971361930519660125886979116636644591699288825843766756987562557657742825728488196182384368398701674463483277552949552187139626942334622633918342303371665721666628198987888422184350972277919737332037774625095420023495045074461716426209459926833033066861685431715340523616963108205193152629878151453072970329604726071380177181877658578486336794644490008658626726730543975002534997015753656063184149286747035174270429734640830048145900937955696373604709329606779853978787496500920346307364158984258407347314902295948352444490955057820872884735666532981249949096927948812293420168042853667294394531016741866936776320019294065891671445127955962164161214817174766067443446154732811683475370289837919991013910112400958920530728351894900782413826636294443968036640010535781120965091831672081534091510951499570851641881451069411634050952068043202693317431347967435364590963001514513130531523202295759123345373969227287003528646579841500530196662095849780559168558209092900710426959186588274105500564510102112086177538623237939091123840547942226302961549260290339945907065593487064993801092762210522539114216998405293810836743947708338106340796847616599889917281957422946066913066523442917985674331542009791334997258578097591584863856408231088839724232926633631456325083578162378899962936714000391177175824246310045955435377965904410826382966123120138309615753612156233366051777465490452114217965350284565102697642676892088341753614933300731379635462170549990763562309051573155549451129091447506921258754855445529737011654516148849876614441173604160597030145436611566951958863515312843371624976497735618895566567789492686994635173033147425777546348094759981532854541095476816442680536496553824941058341162337129555022988831786747241643399867949482872556680124935945836467458667970110694008130455348920758187360545136363619276021126191329138787110445285561992112058310897349419677091555606266011559075120037654870137738247252255504575305517548844381666318176141273316383696835856437075396341210096954961016167249855418394984916124193101437760177394989203135915602536176562768094169353998995074950418335143952263771042007083173113990655582961034772819120548895376539188347352051883569397256454494388991981158603430928663007042722711813748670267784835335416063129921175737984849164443131134206157012329770159718081367827218221227487786909288531747156206222671582684744533607310758603752141851201033584975537585795219669596529333019821467914384076936646845288904156981447189017226357876105325566573913300734801894299358615080921245344635972483004083305617141315458474779116451960449351371294247681054652374353628686556778334503357984991430075297079735959467493548836190049142751228239748069609328373314949821623522255440953194475991347457695661073193293856110186520125594637820538032317578508322593686146998558674992197482380059071034040786973723739396470128046626858110207287559338987499044647988346419401701290202670787765329525258326160314891330249053359016220220280990718254854385094104901420516531154830120966770635651143243067281409269186725167200674432515390444389110427190652494114136391118647862785083499170428054180510257748617933697883916453284909266049470660102448119561536628543372487456974598375054299599962383750242220431591292296078412721557119585718202161863530861801389377566799907234762434022808385092812358010833267426612187284097197842006049750354246632061661014379314866716579380552236177652522816890958232652127305734504106014054346078283224100464904571991435585280782806732608943058420424993192032320257811321198429749564443327928891793078660408870708449875049186977064866155144168077302587580417811112638354148575878958829901232169732154527329939988132717531687980627303861721285439250104448801620057057242629426673827488267090968615592625889540304128466744877571821992022233517325924223934608706858591201414489141878352237277518593936294830824764166738755234836973532753558064005856466406356689736499650310889449265465217911015410202633248596855024365231446801697625826716673096147661250890989787445891015638055755377006179322154008314249285921957241871126466651599822453547875128151302397928317928708797203185899050652370995818209131564806056283254036927596561029122149254248763652691821723867874884133854709704329626772255934155120413183135101541741685226656580547960274119423034164252126141183287592823006356565088172285538433650192698171875833663068259148560287751384707086080026946885219133686066658078891187159495245789345211278766635955308290616890333404638874445640997074708621431236319833910094185522662495639803228895399263212964879485290211603986958262361859927967852016158216582649837011380889755944879821864364323671653774181609306091848631591613652896237117278990381724444896224120273284957537155048052974192867263928887055253905528217618268676875096019476580703830067786013532758828920825165934327274535797733475910893716140622320094460841558438223461280981685240534271770402007840236909387185519395688296897025027537285112847655218030196479000035256415975855405388464972336942402228152971495835363258939807523814048066219766333227357928932196514332403845913721133728644128984774200347979044591067042404546411371614405182853939520664128152551049460003418113412080378312827612345997489987019945104502675743021481038670086464377079699439320730982185720110882232014779901324317744887451169916036231318989256441902922053091962668149640469706769939467729195418615858526044124311530914512373763051131695663027416844934969493575858086636161522482681758723924814837869138878189826346598083375602716235909848391342865601037289892307729812712431401945553448699017626567295703291333106057757577472960895047659013886205568068049235407920165394516434603896258724385829618596398048014435638376199038898868888569848385805771211101567228936154758561342851287327548269054909663085598154502784369208256636691217070353264890158813507015043306033063695186468304918279107479783400799721055799135478407699161181735466936027111334082849929213931081360945914877922791912515989211940726186687675976861411898219377801309174302015102716474488859066866074423768410629897751262149037275425593255518834405061916471127878616331277239832784560622747190607219112907194306459746270453253489327018675570067221741247516875129739277981518339563115441706056288850215290556030455670439045273574028903446663507442819984571051679550164321749086290899334240707085523218878895961462688646219178531684509253215251704791911300123480002946003147616564917790674777284151437543180988869874542763190577078752478320866259180610168572179671055820962904056768060368001745633109056763261831293961609614592206076938239609380344523993583096825039915984453486437409760711940803007386609695812043825283961769858981857333323987536045254823132357222992020777772073442513719135936180750568397132615573368658124429132765095160931468707098027642917145468603039159028072951381738637525030492772979565372665505398190759729020440827413095987164398442733079551151742108690693133378089782118224429601457810926460460411778238289939365716690661745262298106498048132561997827529556788326730922263876830797427201261611640495037868999265678156597166251748857474936298316352510715254780611173186987956035161917545536614998359726512902805880993662301963932836362902920198502123583359035786012232949110003948443742978689543112656853896714586415365989577492568985183800332224870921464822031276358367590117642386050504701992745623601427160966538248454991177405742084827890053718329707990988556559556383843310573720657101847801317769252131945725964380885945405680222146736624086969365027466883908606573151174629295360751587689421289192475583611643069671882306466586019759883899336733214959753271377759418724464077940368930366939849400099432876656756046481744706966142594264787824218825360046880345859890932017658294931698888138524611457216832986217739270430671489126979300743073889233954596268682953431091660947071750613456749496746278674199440387230997657836583342784476819002868035529420526333223111015623227248754790457204496596618364383595279430218820189105164788382714321111683192738865932894455196724008758495192961995178414741516779849601965070958882466435903204077181466932887138033841112571742615510422497316884197363547668923947582589316555288215981473516902354433463918821732966123615133421821425140409749870373364906204961564710926747692084551701979252932227397704572014531386663075472941086602100400710518166036458533116709052579882383998864752328668866658786874130585131151115771303245205878715622270675371406830590459049191347883226681410910644612991771276163526699769993386308672992312859381566623103643926172328357184257744539542780983371101799012845736816374652998583397743527403384345968882755892373955327898371218792746542704883679410292521817503852160091714080620045543647264847476493967172647284154853860486413299880027980324943107882920392712956679825735928899074599368252421742544833409420308819293654372450159943590001874703520116150154438049289376974566763283710464211784685579539170106424193648316989266729617566261955770645934607450437135414801650063073600543319404750294649176513598499708215341538923303023224702280247877703115085466331568276606860490765704599845185809155878011585268873744478542491965027498922752484089537462636588602581947172816066254260798057071575094444590779954069804169109595763419946335431995266395254473107839246801286301002581446272879477750009022149585389507252515265372592770920404546566626040602373756084227351874876124033835663610872367978726596230043436784980556836229052336531950310425353592869191040570527253000745606717471474378643919954055620404137434083900471527972713466637484957297042793514799141352086241296573514616541555288160910203676442021934884770453544312348559115586622844900063879575828670737027187464367702677547865484927786406580564503101825306088195994705218554599273028782985430687667168710176297951596180561996089991457570331014544976640043189678615403775001927780247366984972582230813794191638511237168582942835238669166284661043017373996363108460658238157868380933499979134449345346052016078012111122860109600945114107331770240986125140378798005357142306374136135668101261937870684205487119678403816897845559908679238320987033901479683317437049259351630368500899840259175689962144650855233898973567276606413803268722405891895374062656204562859555370735387812060816324234740392222796289879973330502185239360588784062968563801454308585981770987639609639193519106833138343115562228415070601914722451958148253159610017031252558302979549980096293553326767129099394672897157770515512134917260267379651708494354363173164347648694992582799100961094704828966345505397221186501967218087093555603040701424298696972889244418631716901469340457165258736123014621688245274534059794436228198743654997451593820181412256454121308261595691362629093675924614123210219833455870299424402408484966970273908437065448882986993464043589130399101566615176161269058488075409941729404702552241325667158310877224466187622016066270557379994824220546692278726513416735014114592226033794187006621718758234304655730337102969674615715051333454032952215116384663506018960271424169113424698745720083249777151952983523446489177508859857064942413276406723128371744632389931451983550535330858578462526582141935979372992585698712898568685896134140893656864747493184140382904195567288236160583467167967904376473779399941200309410928321122658672034703737861039303792036927274487463428687864746894615986313317005287914877314152386452033853868327976112343509748910581471580646922180491055297330488553174354006886780162711654997708282967800852264377873020362734033093517549663681158722821184675831211662795809998483170826195182591948864248594225590505139011350573427337687476811224507784013393841049060735538960319977787133790204323988340298080914281410762672170602973227253103122583050442423033758461061505819604292142846286659027472979875172575395205555569208845765395580133250579547274907642661263461492809688722006206670853048924329166987204063192885535158244117385960849170096760351569259289444544598813095356942892246480672995682622716754438725525017796505178057122339531899767745935553971165334041791484788308768875089021132582188107004665916054169592197694941674619123799182616331982522011234170238933628726062105972586014356913504660974859932341700260445242168483547781074658983218982627514866572234442367196555056420521620182128234627318781088475361427102497042734215827508178851391822042633222476364594519622094579187590574802663009839828600390545268416038044312712717870991169240429594131808269716513339850003818214337600787893738617903913493986393143449391420541113467502800212537102068952214608227608779206499407607461789863701888361822796826602942559512940900932223029051170947289255007145277302782194430907215526908627716343605070468989645351921334477658356176067824517575593095773768924600667981364465163275933024597016319838128221451980470680277811152982242620217523593884538436917857437740942857122182719431735575867850658468122589667745149584963163259854936978886201325754805881887548324647715012145892366924972982643312849181714787723132344746752743258393394836428540765576766495612789986117036914946210509807088364080184302936281014299634134073446846776188608061616015490450431322634927597338412558821631984600267491192412713443280157396300304877837459451395912982187975105102106580298922330440300088905245151346790532198550853216773239467272169116548074693201778268318379446731149510404531780846945862971261400876961190509499605454240101416563561266143652280377700230058899174544303699575694929389888150390758918989915035457801216954564185941081139582306921677284265329800415658907965159652475081067952178845116718723885731034678182873752712715630566337505881688232242399603819077605949813507496932178808548432979837593954788641426339026825714109913146855700618541623686120813126400286048994792682307483951906046572629234843742424687097456480246766082417818572511646602933211399488920161036458615841698080989529254898595564486444486953381725323583629367743596067957610502537678079584157854423338080878515523255441763477063523741527959636094698546399318671835020034898303639285758214126200029951111007179684095627218132849115527100762016431197712536199193278584692248319922495237642786064002041415764679221829654911242693218052043311113728455101972105049226984589061465192538825273449821816686406349278301166345127984766078530742462022915044740493277577704690085377347941422583548585968839620206834497625789963689347759074853009807748647457822720742521744337127520566607056723410601611629254481900135060179033005444702262487103851713056206157245682612000843637723207236428069161464478798271624289244318355301490793935326909718942856737811090545936474541148796379672131443235993489509783799255279335441838357248288339343163565840153757749260874431065427365424655231390513167453749649139262397095034344687598491890888328254914504847844024952535408387758297819045314565404126997121442937665556195050283846984718944267100448427232674677984409834876950541447010087223001340331565713546668065760002776617155219986494712338667391332673627868032490821114215280269495201401874617588600036096294671507203472072616087951697792305692748743529620704925953356325439006380534075696750038330981464477617945130148733883791402351962266603112143896545464712961503572667132127494553700857567685522138470625748283973555665087714266993068027359635853185761702431721283096498144974142423450129956325906381915678499611203765757424625589700576845583029622198035667219415699093425769585103537051164335970120730688514727758907350800797438175590280238938654307647109125205273346535578953846023705699820641649023690293216821030714740380501768090160814934205132482567389677208210446650466011517753291328132674618651287869925590903450716290030325745844979898758344485673985491973148045939638982050562947510496707563717176677438640216628516682901207746986725676839742153047367584865802970971126439520975457633797941946785605344311098776664634326528317601227351490610506390383682146675230981889934162667194734010613052366925478874853565994244342898600226274222493556790209659486988275056198676285331172824471417149065257685503417810900891508337999929731250417391423849135409689634774220135463237650299744490423797178846733799953004275298531994742265573785722764403630140537344346117009361878442776726654867403494878884965234825846668016280144385904092986162965390799163215065932564766345801851510948274583066912501824689206418447553004990582352018351942223433141797468594074370281230502557954022660445242117893612569175234384892929692363916482832497820140094862939331267152745992179516746551220545287827272684260720832487753623850089678126533384516023366181501962224063792971581396353547040961845754784961066223115748237333848007864750912477127379929433962945891444430262234446153333427032490506991223477010762028222655950206842202517870750439355107593368795470668959566611748006847859843686168571849790961755905912926481424999083687404219388500115289111342832519475966606158979019951796995827845429512915825910208170095177655623969541326699064747080710942226257041961407556539797650552506904186730374835034992481036768922822001005610204269354759260327534085444076801662940266186321772897266492494196402612262594541047159834110675936152585917304921670908122749475629279600395660265699032499393941067154018813216981101054516329274789082302905093305326530462766335514024951071995482064078956579538102526824857673243397148405027738395191400349818960787676861258041272723929865656469027762258010973484406553459398637305120168126591213874593680095985509409373332535939727524343342702365259029953765588312293990207988492833212724154579672168291225291766698737367535922965299679244414220659484515773582015690470888666875275220304877594159450581808576774728217017232091196816689381744011084286456916792114333791590566313713919128968158774426578738364670999002624418525770931178793865558071931711734149466711659273866059524034060201519309455343536070431304174688439167348703559600886715343359155881983742482231989857494625636476664038402644541120930877512367036515228037337754318304438346665222958530984699626361982229409936685300587137209910531511383269799055644863847265234834822452739592331164250330191838196295029004155067833388670847167972613424625171811829631093104476291709809560966978556010115806167343068726628400167633297307322550447573237320518952915004197821862985932050592123200062933013540367061685962755393498469221910083055556720346118704936248427396059168311968804258526176445588796906310699373541828726562992585228291476415461886462126534391770130291096600939970633118965622163880564618229227741345675055128980610020108588164094912996355866304178188211571822365392585114017985804358530380643321367057052783525559916643576820654621445016040194671175036859360944232093265526140993659288633850235048129664309952890100598144703943629216968488264336857263860569437953207602518175436259159660732762406886900745341736415359412470575225574318031362382145270788767768648538033703635399715614008692426782293728648161226392460172428070194349489057440584340723432018782112333125699608082257807022010570448660614979602688219869986150451992193083825004933198416176479705415699986372055098798473336477110878326380465762556186026453039095931854878008406370655989925775110513031057954816799256928321740911730614575942264268584080189641359389359705086912429665260813704677760018272278981740200171419543756878363291878859380540880525646503312108738900699550018854090949946659139478913044854125022121277004403338336365295612834634757341753221887576717675856296572440375172082177719062645178910700278952373371021021755447061806968739212756533926602114370284634245069065803700321258959245190222878698763868889938768596553404163068676213837668992683436444940821242073781037126962171111784717927394804180440633868578310287072976334669572080741155417237614228501878831029163130241506098956446568819017182270088796179695529709268774181784363608109629123029587242234514391907713885583780542203084160091045782249038099679291467255282496109388405446974950886871197933229934090211163833842407934963940184924685691584687505904601066725424074530313028246024865732890408036228596562362566278229468357291325199430963457920103091668142746068919309494514463669434988255399478903383126511476613665877544458951846808556773065137637297584735821666054446045173183030846827078826537732947074759932169632299148944220805707496098620215906416952173219596929350536320172455987312675700497223092806979506853284576807273127207027225169961621976256837385812656069423583982414334203144153941696524198408540873078510485715911204186805921766864995462517478247119596172986387328652146602010717518509439971184763145621017387250657271119848461362819933285135102678191543426410265801687109559130548844628759868831966070323183196242217749704169795322453673794634368130015474266517491635565560748275172353078186548956590759368138372505483725426633939919755904970112404239866984625263837775065619251889953101484990187857848080994704523599855188435158977556259104680144512669913728498640012111146230454841115939266003442546259867158642948710501931933853377395641087405899517930557251498331622211290190236087532223556576961615249291484443017247332746939116187149966304965629101645309682367820181118010287461871166439559022294085937372431481825414435971843295439559321155033280296500629288475919598449812867107008174730111143857469573893278957869707602908326156140105518229328429606427644115331086194652330711659605460595515816215466437860558201869680633992344282720573605204868754189508530218784671384038186122838740182463873713703789136549054929936659593282678469805924095490662166347364435495637486109832491271762730535390344459518747892934781383317737609815850871355008216942178521592802044514849014470906947924956945526485319612871476689216027225199483990541317736212263034497463017954222702949596276970160565716679195710762011814394658776994835662376418620754411718834229802281072444934101897512345763647429796608099397081827578272063764330881263912400831318055651055553043329002852445976760236930153654503476719054914577974858980285333874483779646776513720163342861285944261661309360118160287905777752100570532294704063719493753053617378842195907066921114597100667457318010891152901294610596360403708886681543512279138326070841942338402778866385880390525585498976478360932182273744550810036767822971886248427476537895734596619267146302360472332122061127011532210056449212944645144388998683644520716713869187256126264692556436474110098333801882619928569681050009954634590701016397006490424800502731944244587967453386472761151302242436850191317156283941076107496910687304953804468307401765134853552007061833592304576929913975467008788666332482283769925272736396119806145947338063967982823736537847565671309702522775401700868254856257556390041477787497113084441805521082138449264394202502198374301283033050959439237652387696223599302699260502546593444293180721479931838724739773765940139536996544395399981129864356171028347647913988148298105582982579901756840323797748706723173977243808047279259083516510325710309468208087336888462059814724226330149704249607304837557927987939655138347469203315153893367464908586975649923034356851284895757268918986046906452494816017698376191913617591992755411107913489012395357628024721760678519919772284785070932744596193752455248070533067934953420239122044790709871703347285434345225023365891357478412314252583419737433971935900357012350421293576040836237555600804394597393583410209063115226517434889914503814494584879798724823856096323673982035909730881339369449306071863017072203551428511400238654440045121585958826362189052461235709663220170764914684641018289537624455652226586436487547495128640615871787586347327248956323705497502207973030701558675026827956833207234689342976809753784973280095339210383605152579372405315360604494030549464747876854142521625824162319419371861367445343990799082178965052593668182239175444513161755060250512509514764769085894212142198647552541648436265944960133807575170834989997076914143339304538545923285575782664096938145284082138187101874698569729881344174131837226327623250084895366761360032850743486195906904799148335706905037920945579096591914076252157678684526117475053409599836189362892354679070961361644050864381625373732007613625679960696022940488545721030951816994007001204254377109068820279223118516684258073194129125908054280353710371697090202591590916252932255746804029065849685674005345524400836832087567528241937897421021995980664269361509987456782493450269168135246103492929201337584175424003955105918873727364050624942825448124314755235157454051044608320366009532966455760972752123921323720816840938397856447584120766059615249136778376215145885273611721606728963719027868955705385725161083598462711847917810056572420161370774708434146739759519504457577366728543753679766046749659817463328840437688208678924937150068264887939102201769860646281672935942865758451965020355868667619497318660471587821939307808885011808058108829611420203684835591896899798936960335485959449168097581013938326453529285835277260124264569821242363669039349801241466513386080721536781020575017552859762500980467144676616747598988192967026797179911167174983605221952843134072938910807882775230337136473343171097263545901640763297435771471975774419757512072192312420027904366340769789719263737273716177437642922603003716492601972849279163248833695589436888925902141339791759273208925316031168242586865903665180518965429402562842729061291970822866344778750370217171279596976857336724176674383225405408974032809196902199474075859222310139380222855174457616725817154982040704994011779788825487700331139797248879201054914873539684627865046935843023686117509233868374791040914175906850376512372428622589573749361781989107312188176973043325475156340764104511049227168785841806001117550172974685973261676482771465442294263208804608723248786388196997545010244470991628295857678702272880205264159694791841938242046554426221834782144343821512453934519343908044015393603202327482265155282471396733446282931796863237881022479350930253645252233803496152115390140019437957703205100115476392304444191382063395916507145818499447974713259779769248275281822780479655173886998216654482839269596498570014598245354587461505189452474884238777051160600277376925086382967718059223554985167349735128946144253472039525894724879110074401557893258572675064718832684705196613332430713000895774085009377440963322128236237728862196870288054045673194913487600680170460017764520313955656030741294213345802972804709004182135778231453226066732636064201827423468958747174345461724667060746422037135872508104233338118564194359062441946572428309641910767980717859657107807181568087275332115924244964160924385670151288162683338566421792914560416361529768521719983198155399294826268423090605878331691492891581167485561682220786604373367544558120707990519059249308536215312791823054271455854804243426618226852851023185387010015056829316847322302499192665637778393765683003856625314112547353559961047636623436009175238590820972769608265767629229473144941827446167836724110138133626820798256060317523004388108725519408738631732971962211756449427884995326857804877848160514580451948175883357304362824330210172587613968970800156179605272396854748982306405657326696412941822281995311461995587550511266017646153037225569900944311674571102205748795972561109107844379857016226741073472188213979920311180642065149408805269107836023425462694674784250399781456449674601569391365908935197617805314763694530869150407052299188594052228501021183591771314994963893198498815154916129230337521878793483148960399254336699893396625390247134233710916501754906911893448652440455226614913545316670153625404748579138316285311255780133515178145493096625694329621414785670007473279454383626224047793458513665029997164698374460805205501924731803722309418721627619947703765199820341653492520018304883112935726713545657740256207410673770116054848550777561743871163544631744676500659994382152101752812348331480029311650592884854875423587939655901547831558133475295957916126443167497165554156172783330911943333301705880291176942606662666556887982823751648061271299702850828989426685099698803416277603270872417959308929566225592083404465012650203130842461635711448199224646352659161436915134865081591059214901922677363560942315183018046184857920361485980090079032979600811095059679587379100652797903337174858414284621228027410551874280781485819043915817789334996879957913504072209055436649901089094638685347118278677470022831038627837219010833406991392687661573174209147063532338281270971331243523962967111725064212169939747186786396306664710464247957023934285708081770305246857431707443406725836730153141383695992862405182804475569035777531078155806016635558432952865783390954559097629654497288850959967542850135297585016569649160370879188525230522660022383038094981324645180704470415292705488750959763392807783230520719752244159620987030409451370955021205766292833195537588527784969270502164715136242301663372488506448241887941759329302759300581377118616373263201535976043861662324652362509041829714485955232498037441510512776882909914463050426423438667583083963289440816535276151758345968592988391547144834994981632533107304801893835011312463007128141633174746329673420549082958298673263028369551319478909368010744179268945583197208544701494624956914012450923949457344414206278163556735682603263671247283186360569523510960919859528007899672068923703811243227565402891996089624360090218096883941138473065697581632518233851445464301275244794574555566282935793377179053980436045772782087327859894350371647302955485483884734752763268113069432958667891114957445192508994975959828349659898810511830432616589717318995482750206044348524807613713200934478691927433287434138713693481146311973830759714812331886550601105915102790085433424037099591046248082205985813730345446649478283558284803847464099163391874599731763832255238754467098593641046890352168205062847174202059581015920445517446908059885428615353196299299231155561815317912167873653065097202585891723702874001429159655704146297829195951617378237660010735071271584111017337196611449243437670410689811584960752123169570353884784204191022539974748321577085471795482391867897848690384267181975732605233837708024510732193094509577463944490220033425259652707277960598438046283893719366732414246604317097082699033927045636928396099106889458637856041603287842833699063255294960649848032603252396266515849663900821179493703545189508064036395284015902217123159895242577786050764670416549072486809051040954722117567885596859708040008156528910534529797241673435996650703866489803265189189606618606712576274732653639351956668377399303218541832992726309918377407347886524019836816197036216785409544232651920002744380768737880358178731571992065217863163278853143644132483966288612762259107861448230784159271289931353240326400188016672391514883764363620137945599842527959587861443892672768590107706603344249797295188045112047446566450463215670323337362603912393468996192663678736624008618558030785922668388370170289773793992346833685454125771321997672171837714898843775130618869931277187479787806601875496300292869019001569538839263892335535359297883042648228023689599283357304917756621631208244844104232457995549048422236038509536324594761251141411700211683701620498345115913192185422734347822080030134407896814194916501606834204212790770999074856044652896302126948656600916411465990951526784053981996206059589464495896298632080398316551964094424980125485900813153598651278815983670454125853134436112575744504795247874659343762854822587742567677851634603713443430304678539613637635824056927695394616639926172329418390553044331400070569425513833920686403994546401033869346417990055847277185915823562465805296777503910210747134021152485365183475349006856808689649178955984796757879141096114257297795637152109098744902909119431786711370580755088769390060156273465803756943196708255735689130665027529809407953667481412527595843654338426104958839553123868905298587101580698752386378221939025651706575185068320659104781692627012904726088344857429564238098187097437067688133217560222689008304450073800549609805145727472177807635225606760962463374931741722789435527771516115412565798935148501646663942724811433868724337245265750088912867467075067506487754384342102277068124975830301941200926875768278156750455731542014755134421995057137144310513274034454641019247045022638728035172967284768452867907492482578660528793221943208462101426420707334254617542423662346063739506617744696558222536544648472425357920198874699569839042344117960194607899066473238415043301999858691502519940382355602422399961037667761580025115826034073282902149590155125122195949330203318079917746982097958435608573247150620716768337250897241890518725099241530339320719063171022555621625657723620710144295981933581932533111294296517786445149688158642306388151743336511432910374151549512731457745259296017384657476781363491384682743990755673361582562418443625460454130397275247788003526445197873086543545278490924119319268458860590675944269800516053825719503700983091106272063045476192261544084610777702545454766272386930135660984955961365349405064268199429634067962844476052330559942130209252317097494527838135066085157933245565680750957185627369719850508522062236468070839379546142844230851567104427650856075211153515012318807973839694043316894061715081998796169710924412611008434799425767570376595890975179690543537637404956191003195878626262462998048536864100607419590581729938442117651791857439209562686397413566141809662974806267043089138865395315286964419304842084243161486093161623175690174015889788815717996078827708936599117506490441797197438641880080942052896941801646253566875456096127524965970310305425641128574198132906181960211643862984967937363108882849153716369917637567601510337434955862359028384485401251026555926353429231914348806901258712165485058124120782281798466008528225634593523581451081087876420104928618394995339751460177867447698341038859040867944642455537721492534726433949331926446337346292682423852652507381687659893756882208823966942224128666353695447774096430979965094638312564533122395496677084723928629972427693002946837447577459996711790989859215455871259413091757638189108375675779233279634344469651764570913289273111210864636678719980262062685366125067411584359392334834996677663119797354549542342602560207002366568487481365739632659431256554166534192517235841987799722941336296923217748516321949294864115011163740019331781012824023841969776325492183290104360540815621212817676248671696023394633550534754720547272811750732741387063025428732276858950594009224461881009073266054747658586031813064575862013490604141073833377283312048588711719725093407596446025023212447387609564720336348112222262232045304996911768641962878450739615494137043692391608177556379653352304988174503207437589170930890006326983657952834049059572826000293995167246094607842067546514846813918322137840400055398155800958642450942215258709899440831362061658562827305641202948894175899297767065506046169784458913509991235673821588759526919414520979148733368891644472915859538754535993356790807162621494084946636267735547775350055253685812154742143315118431409641457822388656815301937343129006929695334408894914029885371148459869548196228817933046005844067712054823521145321937029066462785721448904811131163802140999665293261153152475265014307762168097571085040176053589929960332195297837886537879003903913309976170021472444982474264267173859611170670234175855350383021659159668486558765535980948383691117950810798338475435488578511664391404783620302015113530599800325251359812527650049455057106591037625258554907543438544629388639009008423155842293930129443428724538870276461873088082561742139260382652001815379034542389897099547558855083777580778076418983278378831094170992878094481195645975170781229987510451500570905479712466738992708094260421578686391593336216532368106825699071341857497957461885765383939999731961259469413156711284928325840593912365441726291043056768414272282847960263136802740983028435450132208884821309273538311126383361799537043822093722943337841241047850480574841326780133895242896892538174417198852905721462325214427288066145707185260519526552388434648765331870837998021113922349847924111592275901877016771155279074499713105890011425645710039356368924355892965654388538284425367911451139591358546924033388543655861171054352010255282659597292605988622363915357478801043050013611840585507000439784595680216903209350697421371728677031009079008404535199224128440328295374071306228129454895552737945059596454922294294446867901278051190503057760511156550898105892831776918759862221749149413497961657549167091952773912063239680650771536724927586195378380799849600949561286760857959474971313253535501974369893254336272324456894583190138326514618733014128965837267642775455913538459763743497182458254366992840302510165226486084205856294423349733865291667941517730608986151740707936835264189627502460058006965107681698196278717640262789850614110971369675515396487765392284705626431437824175587301603533822128890454554810358626717262278869804409637811946853554500345787125622799099691590295482930866510059354650942630847528530090536617088589326916850182425228250519126086954749953296445106492708286408135438109818359076296670202634664379644571931150382170217077091315778697141072168865076842908514451397502382433770132147118951870677890328156840780534894094692309928753257940839329317704656882874599945411125692597924422359685421768896735366866861526126867032106829727629959861759384304101973718548028476313930628587109751997979303382622422232767179538462364741674179445039063957865497282410266981100373032783790685872287747269532322193870045289149723591993372301309238311427942823844275223605060674913487615778926662132915753833797622593027311405784491513264141236831277751752470035410338535205666701837479616697008683640642008988630406053808292721755380306785544706476981187748281257281526619754601345307375750153280551612302013460421852704303783610028865155190712512884454113450938960768450108061516298959429914308192371727222080345003998446856496832336680629428966873753468662089729932361731649228817034705826726203673218412623859933535218397015683552744919129371018553107390697655179166134569024490811544782429392458698043211680974691819317776381704929884212345338331219115895452867937585128100651847547007815159928305632218489599562336595046855971003886273248163278351315459507147959078067760009153819319324672607231816539708275390937248296955911973367430972877641992398789200536047244086247712865563621124256290401308472278001378874121249889850657754011005007800019742293229490418695517413687780951056076404184754534592034773801987503894856493406498392770584977209646086454999103392316216441839820585833606713202305999050502385595729812373833681818712491934076664933943545737750692068390309915986027707217291120536402770589835626469300956196773667558251665615636968984607884109840029222513800966376798773834270181063707056988551177554982118590017464701475580547535697158669643990080313860504532547940267502216880756925031079692628195300174695744933457896507192089227672412509116196374137355601878820487817511714253111337352903897961128939952411885199287967137066354330042306835169264877290298030645292924752292345067236137476877246313951384865445767682665269063636753861186202853068928075478655096037257905034637461130755592253296206772398057965474873325031151748731491825557942455054097263364150539225657968778008051652145913614898562274834704608081104857620079015618171460234861137645876086023686389582782147773413556486929520754675300591132713958594782376964789818768104643992680918961612584369967727058030038093960781168240379902723262731793280878647994637364152586583815212350918583693890212785600874988308385692506868504706691734490543868075864371627329248666940951527911105381036947960912982974956083103632359543445044791937264204962060784933114672928077218200364288383124925270812531882438935244499055660352413811419704587894837397037891147464859206012247667282086332806598639077490680147470105864431135838081633874250368855605562787755009393217108952275734108774060809341950669473143887408985920163436844377140611114693224016892240636590324211338661209241443643691042873171849890935227155429879120095120508224459686880092575300048574481542272709027332860606075567580061628478923895475902752892983687133933481066406258295777088995081930950913234985873511357868095300692116134549626061513982708755994028768776906284215864798655051831960794340629464800769033997288369163482848230966101380329600631255279233883446470938683522192150439119747343463883358668626159171576850478370285527432550445432366815773293313660506472296552142507521545297176802511733607992143310250385516647896780451704413714111790204173955389520841939590513777754957490946973574685699030056030001669721651893895509730954677042398287621547638973888699702285169102979520306236654883935225797487629306557270512879109527625646128906021160010224236393418839507589084819839154540519777120464135582971625061977161258893865414854888240757773627545824257582189055130765017160763427225423548944415282083344685759707348862587338281219203244474332477911314306517586465401477167782180138199233058663400104989188359691616233520146755469642614025436051495090113298172187317436184926943138219948031935302910162039085196828008622745942434437310459471988860899108315134494782559972803031423908264056756678821143460963724063687883097580991411771932671109847378767132393969502707443575170894763429169971363317470591038134045862486881184065836412088982970367260115068305554050927550536377902702999099386494262676553870122376234486718937536110666382248322776149775782885997381829118562370006255225100299856488284919941650861080644844799652232063624071138746831268716715146058071033163103038148736758106756810067472230048712678059384751427497068649256552433234748644663692704618774662545241205353267790428726761046148792099971549433385701577381769555282366435232900330901838977372786317793608776694829138805119393749753832146856974468006002012713192384236109291607071953583504837624294449751858512560745988479479609589701510597954499431909468936119290113207865398943038427076341099036600645145224983055610628503731262249005696548858310069149992000048641975420593688503831594212208234325447227447990775064094427196955282915382936092120780863162986447738842827332454316448860650851908960714987882665121591892377277617561539138936225474370622714425180048577923869999163152551088313306577060786377036647553458172702879664323484379805421902655088223879374111904420955454639458777998232618408500162448223472856560792894233808177171570651367524377488128816574592028571528079951753074150704226616947569796368298860408315240151046038586863170166816446148055036460864970394911330760886397667810843697991759902646418531158485460947708463901152476224393646216772680449431159115199758782280401654812050130236198844231062566318094641823391501776083065228031577858489717634164854949137629040195066937433647377647790509873226316786024607249614969203574258464520785960905409949556199799843156787670788961152134808177514397005816928152521693780620049899896271075344998500108603250858773523288263847527907034963066187311074655176776315656363006709875381958581976182366093312821179590201251116865779512396892685999500401065508883479765108277531802372529239569323812004471918601024094215952698015132566183896551211439258704539753262163021246014554453710119687833046613119295637757407966009622132840357846054222676932938221198682883825763802297652312715931605202760698780530660626119663317975091843203983200072460918403813938976537020886207975560666929441683295299861006397057882672086921819576448024197405092931258007010120150754613309435309036058772115943506992035874686353854228444454465659773177648402487677664734426372267822987104317731814431650129289384978716644500500391133481673589664994956945186543213322038672845650575862988687278557223333965049692733703209940389607977745888974909753326922373594641058394216004058998056998084285133459968491250450915335459237766780650820843696670846482406442312547121736011183708223618262965928994047392571851781573496007563262734957001246741343812425494831115543391747025723582391911595370841329224236189622291062521567689251222092831847768242284867969362575872992342311973214195619782789746651265730398426318713282356983743070628343067491519491122884007825443066685221771191179452403160225435447439858695129535647117236018611988571554053081292975316132523072970713649507037484425942236476674501216498725556754957456674992402083280891924172367137740348769170542439414595160769818510129325445756844568909442820109528995724048334240544861405725548349935609379466575861812239593284171377093397759706529334744187830846574170535758478375144868185755843557437089538601488136662975076321462595760384760907570188339550633487064018332334090242120540635666284215250902390427359142299165804064484877047205860805025412465249074424502175068553762645006209283649316468253726189429683092114683150448127427728723419444807410131917320167901631171169064722621501605302190767683559881888495203271224575689956067013585704088002704668411549931924442951907847853377334682263404919987625583547365691191078313305615514273358880279927340742728484612189544176296536712183097904476243812145869629702896060998313349354910271719826239320181809233992544837873022546540124601582261887787837876644721551533381673684880513645941834528268714858764494384068245613338407666567327535344759856453637778723453738259633536157330881394605517334384503649790754097712443898232309698490475392970552515910564836719231307426611851022637398112114131598743965618093440183147895268164984300722303040169417402591861523845042463202381910714193480929877808723264948208537143741933444647453893364644295382239771732067517189577588923923094312551828244230865138636277517885096974296505238437838508145631133972273170412792134462236860721428127527416149197847458242667334787456507676789824046223057227179188304464086093215337779484239633461478126524287104053832977973145093107228557809348686939416340830879422688246427371819647112277218799151196999101473198630579436155976136620911293606457655348845016562729257063125860381605602452991162749532624867221806845346145261384149644896542092982463396053700283396477647559581781722536080304018539270092398702656781623011005580782587531159595196448684401201429724327743515616285592851293427717619162481103301016833264677560407948662269656712338468101986200526050304213091553185935219348437416438195874043333017836064432628364002174063480075801097055174541512687313400055083522065481669524466406535210787969755983372544007997028960450026080940374377848695335849373329438864417574912769040029973395070310920594491922768114234278718143996852598165939467231213787483479277672589479920708986943566646553782965207237800764661072200931961771694289568930031899833534018290123252503103035300853741153677208383027934063442744239797153263041277468211208966177430639631946289845507987469998993808070684096450133714376786004144142032096252377115175627148539065653449724643327527227029231789244615332153721313270778084513249705130409668579168206786311702589055346186853683854112104287224786119644104541950854684389696271215365792065533973412339372253347164263338145040283001430616333383062177022101317455260871779837359210489873413812881988406852438952010417082085969274274499977487110044260282290450008605365566851194198261898744339738992237965702872476366652596473512533035623300527873204739336067190552872399106758990762471406381702536814783316088985382568109595956904150877371525326279344266737662187396191811061078480187826746747244305894407154018439416948562118977345429766148752488926458820815175924391967887218001777251072705652711408095447121862893402962354823519375509375662954341429503379155405548448508264666163361574948579677843159644910505249376639377380920506916210941040843225921718687590863211018572060915344205586051510096038726424124581450522529169861968601459651211409388285855074568134303519456456990815726477753060029430863761759324724671695976499568692173461814218051545349419607499379756792601631822843879909965320234767881109076493592989865276707761826193456895964378598541813977577449766453038399827515903956903989850388641721813742829103269218336501443180272741425801727123393241598474912427550434729087786351596452141253066172466363830959798027129794776568646163774895342314013229969522169519149413198527177695734462861485993369713066345905097739855014996088990044579473254857143518152684685784630971672224280858198845052695429426859920124290748327697093581719037800847375646296926181109180948319687539872176515349257564992626220053457111451876297244238128178724959991916484814056368514498449295156414205962176415750591397344204502864797613260969293181236633986711560714432564696999079415587721640981300214834100393326517041886292397271101200805394166230703406003560003356259401878620697931752307628755330793795778477215343077198524726757508587745740724425502301473293707785044105702909970940530451085860854864557667812224078050739390650031167046255513270010672641285631763139599437279906689248925234383600558236484622378426541011079301002819338983666905990003788752641406401650978270640146681074899693988071077448904355661632165725425941295837377998961864674485898331188207931336305922917164480784162247216170651553247376162581573002741682868167565660565736257193932471059707625907737752442919273732486385465180041127246064533817243237371566451810235415548823269404871429566453558125862436490082072201978118158639716902698714289366187039140167160819513760438933189157242987064692752737462187523355656960433964715229148953447003371691789330731097884488407353307918013501457031814684756424222348477382586251059097328098852914025821642025736435234368540420849712062013062000366949025833180308635220489549167812889051463119044880794673121443484822459584103785077843459480814943075520862011413717811549450343099475939641025186444950454231564979264832926636246713853273552914990083745304718337843902482947263352255047869215250341577309583459346783759821499849699747256940618856276053874744774587286380346943982599823852400128217784965689884573910941881654285396575329971767874148000762073474329523726058879318221166555837430442672711842920107153679693517455294443972545607677123368394041599223729932916552998210900283224729687058642396557525309203302365003363503132779764036239124885011957744440818427571776013321008901090034256240582129111416776205901008288696642422570932143222717320987373964181478707023319211795333243195538821447911936223270570907479185702696221518498539808745210619171819472524485843608839934899837925841570529377430373294208169267114915141233669129553757106227529253971638002819786541070591611419205750545359183224030580231157831398228485259616031895018395730255275543387900939164052308304859877476216233006614518200852679128232948805214799547741377992128281390709077154092481656518624513956449382161022887125254964895158189754215036594683488077834491318262184974838213490578914791111750317054546212103071776830117975542261812335715298529344892197719858319220245390581324815115360450671724148463471165279714338034131107434745260383686167857918023971773445720257679877835575680330944362575646311889840244252014690746253886045394682659780192071344690603146620698363867633638215310214893512518818838349927148392863464065153432345616629244031550142658754171296565196259266580112914290479927520391905223674417740283431153414177136997109891730530272737488637978329495247272257320144407446272097993806653336795650667759499894734203670005556000785230296743372974075552886204395514546936946877466013035670345449769066852675057938226567983929109861518825964269647005856546920040874915034851148776389689883169773827756156361535507391612257034561729393369562859191590249971876489176257825384876201172052936975065104784358361537511651489579590021837790503221001521448347009482455783993466205874388771982869746574529581618120575877729498942863567650186690898900839120744599368104942085719892772238237511796820695326062678135520015959737539418549310066179315644777439667444987536781352573538990817776187880643302786420654556486189994669602268700829596088488190351898687069244645404470546629712616578308871001318177177460869316916944712559820908838127679567205303689254364638566929242113622920210941975069069228361492913084275579415466336197026861086381795407666081450543460186021030621562412310240852115209383829237681938579719747875870473605607281940587343478935962062177417032321677202972617284829042480484331452606406550077339475350105388391945628778416747799994882783600890372077903088087322177234621077761446633708796811220184839131058983480637456377171804584018292650126929386019077465050810649667883266198735845459915088145418206720512247065252337936298779097635536337548574064142627460250652463507725236546163219503851866700162322368155049656320056781583431442150543028689580325135617842111868802419575371214278902664008506954235690922049167010316093081847164181332726137940434145922108061168576642514214838083090103637490227693600679893042089522946743533850860860510788401986825147995761882507283497573259728296536133729390727932802437066118580261373428097926759344232588680034336949964182144129643336068126677504818255245904320349059179929230238943225239671446392109982374099666052508299129452327996139717599064790344060040770914079733323907979432106019098869904585532712098905597206054074774019081498643713364510729888348956519792183928557108654249337698978194624183942172962730439201315913430869122270390653462573557737310533138736803065151813046417351894242585410416351347098412653242608777762204585310985437766985460805155519857000964340605819508726317000186597074753477997173237109952774259095395501012870169108918358727935719805240820878824825791336386483591886855282623016269334645484633046968790863634580373811404101124841946241654651658396564110188269546030930265678866787473282504798778895382433454444177209918053620377554800913266708807997453298867654573938468228794867852295156409863163347040516436815965602286733051427920263913246805132032455699752397157506559690306113653513071466616539310152490710800115990335854932724920433272552458360973692304502717824966139613730015712750760830151284538150133602095087815850220057143259046338083420951961394352190744467968698533146385940448833355894150002341160319357396026093894422923810760362110294729612004283302976251478700450470265224547090466175792094153566097746740347366700025007263230418749297183554224382995405631415215201766043474065570315754754976575654974816171830298443736390224342380959900020978420005991793898588035600768512166155875049800772015736583291163869237506452578302129199734210552277000337595943633089646604579573016131242211461512921933374046572787775279807528525428558600560754569921877814321468221020531019481256776964423660574258360874354002159098378414263262178324321689586625712126564978663394401839119172806616488948845607002722754943009964582730082510921146591769801869834595714687792868637387112225938582281946219609341422162831109984979240041118120565139902393276613186244099795755224690339542240800250681477486838160079953240557734228598309097194814741881015487287886891582011127227378461771829016871918500177509273880834726939569127379400424660253720879624147538311193146429520521647741242383818545664688217728828113359024255254850837419019098969924256807417395674600381258934780319149027460612271161599893763881777881593052043900790869269513187051389333850119142369345797648762358075971613967516929962035467500642252019028660810544256723656130519933862493106470613145049407535554975213991195246779637698894820014698284621891620393321678718047996142508832211831306405106454415655921081031304953194359323337819911365464798146750268280803538232066153568924551909104006558200883342220799532947033791863650584387465449088437681268757083907154582242872380540457267829739334585252614730059516856081325552808159150650184460754386163255049921029610043105671324419494106453695558041204017802226427894069757602554679268279175950607692109002669766405955477845952377954340606383149020608242599060610603600124265928335848405372225935001661480842130128055192785893020869253546111733826569118970042229191629507909426505079294225497352844538824962620027266885255274005711332274928643209206936536261843174363631737973335328917030689417788536467556486801640915360585441772270673022245326161542482102054464667703355698263030328529269923320770726796167607000071307444156599032468809348347967059080226891719847285976142076691489468054867444422650746214689027709665460683072114041418393246672924369128137981616908820847490371173723733665750475264265858803142500383795600227453178745159489882335411022711367934846617998838755831488242337957241556868159457079110612280092600651552435802498478313248184581992743444885509356957742888580061883534009424547140843702121222702500175645687106996005731806193818786575648686603711296063809020648533531618977617470705901805824920271618803814796287591654069482837173817326990396589045825477042359520978149209931645500914553728934594139747994771133158392065114643672376560721422182222795031477028048554821739366115032189039775194820082490786495961281774321510542721700754040000404293767552148185007585657414960131566912075311372133549048857996995896434136663013756007895149220881030400952155428866642220756904596465390281719470101291933218830246437626133943103432432666849132457168376276900254686499370519371975657769939864007920303288979612661159784519393261790713810411800290443618471129185835692164164629851075684292483432376722762977931082813549278698686168118478948935182397406113466328966053376088703242310620851846621236844152686864985846946086628325950931374811073771208753572704633798822116554342354618827291359537282360314206288116553259166100540925650551419594175911603760477219367422136895964678187384120893010272555097621610118596360353447123017016575369414696779932892774673610154054742127182278103094464033198616054369131256459004086613636432484970823453607112652251948682928096296386655991921318213019842922311770425400087383907433953571219603572865705596438093372297200035563316913104990626490440837376440892702192826940457064008511278870630600593279397275162104615295968815349238791309260995015486060377110863941041484547174738956745823743109070039683889980474191683248724275080156002513424626609235393793935534818989799437681265187147095103166074964384686177878122088228260241501783105344041963071914973469212453813688041180064652457659031108302774233554795291245078369811579910250116136623579034566527666856179778328909357602917990357019439343163138427960606829092196025558987037408179435622949079305870282840314487452205422501189505135736574538110231959775363638637751161222321754502192846108366727622991615431256783950331933775566864287660082457461174520076670108656745546122344979269309233263585786364234891216458442687509901743451912502870462980034794832173607562496355376116854177171095300043517372526159041498049837648283652938034678245520984274307817060954859766038820275846195937708231733792755308951188705156846531537155855224417260513171224894185324782824909243258271415751551487681978048694982911228994786343731148940296314971883822202659082423928366806087875382669356914062632395212693407455980122247698752471234246716192220751414426004899351776571087294287443749682664510813945847763841792526574939065260598493734480895658830900608214242424136273865229147764240897611649535399353248918669805937912845976228413831114728091423845627909611745227080877653288143443608295786101051661354331417736779667732215009467680113777147970490949391784274729960333809027632475924892871451300205805719494461643927140953753335772866201473240474539016887056280817978332286769045712541870187338365857595521577006243136462534770633014308502167865342791434119339237236160402163353065358914002755702606235054343247354729747698900341025147153546570294500749844527301345197575080885165430362071008827325924333704226806207878313954010365657279495346380475882668701887250865182648581403968813392753871948708432837548026224205687861881168639898054865445195005427308064809335648670746858375359105917924655629075271800941225876310578393018085710929639782606443910797268605633329062114121047741401881420241254721645590205770216999823324091004395197373454331833286262296439229480283553492448422233045838857119640721221800284670816065001258531988887895822741480161585227424335258486297599374068892876388614717987942962463231269663556148120044353473539854484480989601973477791169018971311796452774593088863947615511496973781222355716178692416788264625798325142785062403188495942854104059799760559860932811248029097145994322930971975962142673407636849864820574259105187473250813019241062328053439621320056792740856146844364750822081454285264302036653148084180023303788890824988487188397526291726672823640051829118399637428116832047210204202382492566853162736622805539975236165698681695961698535341637875586085004736234042919905963657008409257983719179749326700813712331766744445462895734089890762346039634717398533331191620508703019215396478921379429006158931516489895365171541784781271468917498109888025214430003251887500317066531814111966173158570939372217730043438425880182344914727533306192577829019551981422579130416419705115265708215869860265173837535544759210244630156665586187536961318319989785997248623132498181077882796728499951536337308477891920508990691651702830100471951314409478407997526914214472268858915228974966321888388645577421302833738091789044379117878788491043204499137448106957187297769249069879207024286143286323615903410062091092344029211037937778518663732356379679776122178285664196566618168183679250857183286663486139136112348355893194932627580361231029569056366023995792573721837311745146112258997068029213085906897490283529413303576949809084127061910307622027048447953821012281762133771112070192325915742440842014761451132854221525461669887367845884554147650582596395327687387873506650857249284022391832526404048784033086583630267960742552554962015334001681912121453315135670774722666609156394508713355416736327823039545913241828061290271218208050050575431527525122263086475280659021255072206567954857899870461627194613311162047350166737269758671422309249913976634468402144601250024979951175047224003041281821136232910886994819712566855902203375729827646476195759880562824708479976914350273355870394911794835281561652029771782094827917579919001258015722847740359090556990339561029375489895434648904348031106361950916322093242407537550547860149866979033203488208580895179990679698635918568244668929958220883071515311588334474983193733234579257235602598651184341774029230767415082362937675847247711261763974458000896938678638591660297524593736516145038940818050722679334845355256947547169371110951459794933325213138919771712623946058137705378344925898679379818216204310448558980538646512679475076281468836561148477323364346071906672112927653765486441004554312831759294998134609720896132855927878421978860947737240239394003419984342626903160596811344239846834749697037950739851233047059566092139934037291939346039013675683952700805882002032356086089830265104930264997269960288455220039448184006383018968189229881329982641019180296061931239619219361267498075403623208257436200453411269356237556742154899481554278538899908172588401352255215020909044215539700734132942735843647887125865752104644969301714337373943143774242111543340018677644488892849095076575472682768155071005657007196288271761080774175405639323451730510485896360962479896519022509278054212781315192324344529925490509552762292506891381053226431144424126308311339537939775509008621951972492613630226533447559269357703713951486225533152864383004595881216246275629911881841666419680324593158333214279961859830682896557690922583416443139711719102025101541680208928478361242397007771162688392221697262810739704081096518214544952064416288717586920683404280268442568671132065334410702033595754911715075543016766703656598641777310071642304946437023569433647092480990637970401164882899725293280849903828781124010431108546113242015661926633091685425987364462267403379432713129656228286560786883499806574113350312642688849078354180309884541064804281362211795530701175430767565352464883032680371625283870274047639955989648234125228633877257037875139884603021729448893935013681939933122241285359138386088073523261471902752568496146081205154417247465140959159895198256271954847300920534821231739437922802364343941300236649611562265941606491851703011211392621656912918896358120086955807736109729473859181573757170364766169855625280620893941694319988426182399822685368343402670806566236686312751998599419249838780917027948897536118877493918141439568841081333824979528226720910016417549529764463329959712739574496931848413344033868517706499861824068031886710392126525807575691291289046826723970650241207950500973045759168503342597284538642868320516332113621902472339582760604942930925263961310569772247438880910951584860877471040717146683762834564935498317493206835670996356779897607435209360368739886241849335169972085161884702884849925539450596866294853321386892841284432761546412549914115582021649307368676555891155491765171214312680846345611151562202914392651677399415899060082125987963369609736449347033839166816709849208840631223171579677173814601827000217747733005867670071732656935267669476235149084236556047209877882311536806746691418547404395469430253527423036376772421002241361376090324234078841176371960941453386869959338872792914977558901966031931348814050502090748153288984144479842718411672527916807886335967913080285554427330201665696519421186737441656391248291567027012122780000921170889121242897849364535119036944689837675054455921958860112909223418571010532294882364092823225788160603121036367697090023457684280549350277172184640653967181822655866911967214404934969737265013847040060697623194684810437043222736423195317055553371106821763099939786070791249364509382938475113571879364012531713031695447983498228489308916431610027576269919815788883541957552386502776210834755490990419359040219266145212140562282102372233539694857282248121394892808308648473430877010928718554775741850656579485671904494208808711189210635705725853153573764939867875938993943824861013550985169248021027652210739737931801103482767858379019276429396706432248424658094989626998366851465996498141315093337035831712053517787935903625080197222472352791883776388542081622344641688097344488311722093798404095687115865368059039500098757922406493837400574620684588386662654022766862440092052898224480205429289212101401509622405656367277982729690875360010526281404039372963099519714360409086340150584742310707732729206062112316272102343975311295932338702642931934812365349775769453729455803367613629188821051655300864907540703822180768239432774151963241614698104135997819676340797186823573360236109216957133287148991591876982987589321309324692799970036381277673022193130928126644099325289710786769485276398150349976587202374223629627316583553442794730834979305753553357740161123157405410098268320712109046006778760548038947414316567838078830886181246535289498270273930854128120988627577404768921389315033182818711906837194778554992728736784699675838038635462215648308406131241804346369919190169353852388007689607711556062028116211397236460302800791174851120130285275063980276721470205538435451233385263530667320073147800530610609428773188265006371096970537641793065088169436894686563448525880715682067757024653879494720211751043774025890663923656914287955488805945448037966378611006188645121498267289382899199651970368539372887597084553173816454509880584447016749688633421925247786261409911558752763898360280890041043553431358230707285493411946529082414396056821538483717897600151218988420880159923056800486394062940561987916059696146360507895137659880600790302440676429818845773184116325647136125686600483119703197923005939116077239441743024011602651739179185155370471758807630619022354962326036823610225505783508511888572151940425251485373857916320673087922829235109408639787142396975922739466246829447471534783968806214245624907085679009166800156229935605004610705322460766577811001732227394446628639056190487255991824664761006671753058474774429657847262768943660131678388978777628909506688266548264257620192959406457991165167576438219168480605752189094190718603727797035321913055832564912933226885422106043039447490465999376788679325944428839555252065105062983711287215875612132705615843503245921412255494216574877751026133315348285507485198158894132724993288155062641809983390898329493375380474010726750001633272573922567849410572695955957595088828861066702125068331266360619886582697556312740712938563950439274904371306267804105749597522462978554072435227055440796743721595171739054842129043388862521833594788648877461033487188275321173590466605924362955870494236240394535509704887551949039004020720907124504048315982483179998384884130492368162249777090628540125259400548000842560706686142188420777409936711122633364006841690922319373446831209985463554640149797521736783200193139955089718303665617758664093493195314544794222536594078378890901187727270679021444500697199470947999273477386315903652867098803013416741781750500713851631253571878485522613465455366323582336107798908166780343246154149807803842718552971981840873810051045569798556733580576089806798578964726956979824629526903715104676855731158414707211039401367131463082782312730893462256811642587511387225278735874661309476359300994953569697030720482653496309362088032960294197916433640362988178751949796191940497141973721914971855790298613829773699273818618599941471607104456108604383093503938404039056085789913998206350116946608039723993252409155003897092609675690255643278598935579245410012516249455878628819062834064978843881491058549796015957356970557174317255812736690434088106932062348656526587225969539030848153176636827129536838279007483051330174750227899884304783025238961180303867570098456795060900618768225504586672753585524178376332438974113887298069434583941580909204760544401270531744934212567024587640142333371390073467318798404593481122310909470945870626994835312904177511540914459580503582012974865194623866722460112022453735078276285302366071831445657663524008868665325722037043580006310540481552325008715867178893531858827585825697604333262037056988375993002692403732366689980032266737901319799832911470537465603765985483937764099133175310910634403792617339941026425182782185290385805982517902956761588346244954861509630965058093832253724420829073200368293550761495923063291110964604883327506825448966341951947789779574627491392263370270856639586035543348699502609720866609745965883629186940889305368404897044440678543436792785233537077903626606094730651781637595983356186850318412374563833664934401664319555706443144933989607984110231978168633470758029165835738358764587437490991100399771236691311782172439557682378894204882804983185526684763708021520426943515351553708720479693249150112511340731490366814769775928381477065247696387216403267402113858184051823327767585755674511788088998356047239758868086966621106038324826070436940852768169537891472420763468441779954056809362576785249740669532438702301105245006214363252998723100031223972297059468280810176708678026338066304352507336511746640666677779952458514008841177853911232053230361877091295539171128672475068645315017545924270890035141255051288206483772315725956432582094012494067512891307617335201073232932671924578581759375261840718646319221144099295120608034551152261461475651776094411136614432718147410430460090604942286730139683717914882517022102558360318911201451157680445273945234407028483601916734258045382456956295088354442692979293012942363249328185158860739114824840374876139889975818681919150452302478297547403845512218386599201571462084731539011030636114349151014717914333099068604442003577157603299691404230163135642227915814288607234676863709512403021804040155071927558785256180074786009941155905544164479012440932679172798103117976366428224014510319406188627267832149708240127885630278492378210717316311750773668262895855484338832633331345945883708756944897577046140646980333438057905825427406733824192757855694429226961152203596425970786260888499488404022913131180179993975875733085862929642211974263440041490274521393290434481833889872448217431541922093498402438460233196369296581790327462289470501247561855795900872676818206544796589671992827520244430472973789742743094733028615328817378084384616523030017671082154228756712821887831619172579213604187432761016491121501323031174523030152386838760592182625488653124411564597697185920244274342010815395445954371278320042541918955858994952013259384681237859929149688284655483113513364222227087015851719764048750526499641829185378791214436089350338789068205347672613228805294105977608364575720837664106259454278599692072128588427185000879062364400240338184825220385252821906624608231515904870849401640746260041487703106256665872212739846847303549122727015886296204318603783071032120375385027169527159585543488571891316378184271702872141825035372683661899687687242448878701521835760852324113954455133480696306847065721246681804957492978990287015182996407004096654213351314229164802332763868968386215677034931852332872386720574768384498455127585572782793389750397613900437427581840287511834049925736495201741602864259182416770164215510238647769555268432340334137752487576690535755036619085278015542836417403355486868912997703790527160150047709955306896310452911641580783476487472136903777894679048044303961382741444381338483213217936485381675546675040872671982572594082771208691387779800493012261760811726270058575745430476531204270955415207158500985868997292208607198799785680912185998038065220854535946040546656643443179700031178903420028940657245518533652691304427762646610615191619453933895350591929033113555751793583941555357762510825977305647063602550857562052068646798320813819815343732946290437602667606951742934392455917442980407386075231549042445697971748748738046574880259239065989445764787315577673863428522223106965185173865613086165307841894500608169139525601656600254602939216647082234093554580874868797467810642010052694322946736952877654194351430039841823823166780461257901877188566115381373730199262766668688513591833957207247874881298576961835922704443935860152641694506530990187058536295564915451166975575608208175333259427127022340789980322903866655395585341147599500730148901074470160945397762265210267043335714726321601313863766602762711710593257195479939717430090998247515918400370957439783335311063155392333821226508637567772846261690392015458876983955380455204562799444317126808556755588175876716015362153016323280934519333843136753726683114110935632506578437151693379848341285517749014274914641891219005832109614943632029614372242062133716672767311216701701417487090224842947977595282703842835631745885893172177480941158737751851162375215719653329350245942384045754338151451636334799948362781902326226196097437692397458956519569656630304102305380077055609879754096620445650311718281700674719861072491477044995520488129754733351251872080071752188685585925268797679620614980548443357646083898179303226804716150321404913096767084085827325748549105249378327026203562259684120565759707352983437082784938188623758976994272217887735190341671342251381711635072504889719414009357782785398621894431566575561982557566289616909406523751723449508151977965116154423734087060066765012134869016292322862481349095237139782803556618103192528165654299130351588192744353489783251550544771840407814728737896232045111118335441420763424125779831835651875227040621214876107126552124653284206643689348201081738103793087932379025778653146352315116881210363011733784598881050453059589012676778601639991860748467159786570176550089475718063602229395426044252603398759585769089394126196569003903494665754356789561292551073972358444179095270984033513880656599889099937794457234377723436417737455530600136636477556887855459459245579215889910512618025328260522963817188454429683438034860740551556035185351910854371871019469385349657558653795279546314114341726765636120219648149206132514043034144337887063613975887629452512708900209986062485423893051695767768398788632994143139118701872791509170631824864414598710121454462606597094390941113896489491813848398191601087833205707296309193901946336354915537070913650637075346200684532298501508147556945925645994446409957550717663291176822490538852570991531609912661806018086734749925470484210668007018843632212321322578374557050503510926589997399946727829927357096282240285972788045534514785735699781186008539331274338773349935747915842474965619004494666608085897274216254789968517294666788775097398641792447442835553271209065892057705221812177256878274033364069337726241387344062999970688565480388475649010129568863504041713801051022982334787890607558349795310894882935435281823106844023236201426302738241577833807175720834875997029426969409072158843290413923478661790682750182983911670947235230384019095097777443691128731350392411204645679148455089748223292621037999375641466716096128562507786524563081857102338348496431898503421874781671604375241502642244371624031601553662341504486900296988519056677324530155444986142384901699245498808525711814337573630661795131674634654784256173389893849324021686749898028681348479919498387929612980335601977696481165382990306634214237244239065381411482347693023376087998857341423923103151035628392871117384864130136542208940651922675048209627475685352580805157096784720027246311485385729397472361653519760001531497921551754632811336205973845904634162151543728654737411744226460761565946145405440047453816288669139761854603249115764680200102522845043846276039296484246822755155320284098097594661991393220856938736389610391285242499408482429852474784564594058657164736711799274590017808423860608310366180731060024648349130750489571823595178639165681050632961696505449505338165100192888612484467296883555568499543801654220312461022213163942063385749442964225579350178161694710569791354752724042591232476406776346448406644199054883468935304522263772725425130274813053143995251555526484341299401826957206104882933086376178758916374153264363366391183445059676738503483209033914563312088111730740591256087491106234999088917119329710737305839710498869855280385499247605272055964869420736963615548611279757606642333540434484217221502761077300759204444733518014377493690636414371955803213217135832466413838424481449050540304477470921358097409971451903136333444096972267746884317508585283544261938087648609481207798099405245166385251312657244705702813490882289177703402380899761158714025673236941488982671744554080207089985209621586519156328856413864074359357369845147318215498009861718437235426189932603988388090101981909685029808828349946285518428034034131386330450415640941321017207512369314663982106822218752725513916546933001165453086770708888113072251425500375306432656292240898251192009972716850114403652624155973450817486662875898186908587838830154662905682713611178758349379724641842060530694062948579424334123088968622531230252633915100450481307594433895279298591444126503059293552687231406092004775213722323959153819862909350867710804240185790886306569150348521998407970015011609821050246139233270502746166039134955574969301461668284141087279403142462186189796986196798045236492057320584261832590383379143475919086818310868649392749234041349135798274801936047569361162169679331646105102341239923285930531132162302273367812816474345480389984243127345688565089362054283306212242301847409406299161401679044168610310686157733630524700813047252688355572133802972176980620811688082527979935124792695545366527562383257426518775291612390972327987208384887575133287084762813142702571651094097069307603035962552334985981906716598329293600110314164320402403316904297574316232869579284247055131193167955563002706413184465325212685104568417378782481774600783712548528574701115813132616357566931235936543407845571930962529771791722354016244039797232589855723662231518710681162677464293166148004756508636744594627057057524206640014813640829659991843516385237595418483061850347845464821140533602722779118978754316649471633796102028662473305557274266053331757987963288695940012772035508131781053340947055617045796319803539413054789701521769455113833975025550860031603214207046102756567089697982307511343565089255289383083299652331436736611102511538456880757399703974744751097473127117154736831496938328016825332648695025127515882564178929884227220127553048178690844050569198569314557740020291557404024069018678244172315892667201171291376106799308524797004249892098428264869450903475090704845108164771650889168559326236432340840697670630565015889107375469768239394197278825797478916477466021813993862456127147208093458731819259952737937874034836231734069261513303565731907977560758474344064308883079364518448524461793454312997010264238249111829898945259237012568806712858084515153438904577247610966534558204111923979849080936992125341130774572606278511969920733184336804560555051051445328656590055626210875331919581762459633689525947836460588292346246663164239650175265774994419748046445829866562075408455428554868461179046361132366348344549329922568605026537072700275957914211553070183127480739946122603115921480495154099538771763901763673285870454485623400781990190533601346672739398655751991180103188111231629908198093721535487703482069305338108898352443158634063377505062646731768353123763215194021697128900798641590826554722950642437403361856034540243693228656146716418885654717735436899123278575791356000724084176082579926017791904655098910957463579752719849584478465425283072048909686045170798976448377999313596789566235485250894274873709436914840245642138889890688444410612805546807662781721930779643895911725060153224606191438745831241443153236958465731399083672817362498333044688537067412966248577184926716867877187219416825939129545024396825447261188360547085916069283453923535505094828786191154045768964975010516799191870034953830894489966251719596866507449006876646287711689211046475763300757349671179091190566580499405709630424721986583354119564666531403606463864692553064169480179135399506516066165735369408355171817509427509568752062200121683103557063856312919344521178827228504530196393768772881463415041753881715914516371999188768030250089547811936042387942225501851221325633583782657146820181155615314384502364720792553155079317910525189821937569987007607991058391613792123865599977041445674785009978899398364268242748871620670829238175829439607176952493557611303314846432238686583364147421378652126342324951537056148850765973347360785975575461051934014196146534964617311814030827629493866408069674837475275131189859570257743089418560443911464351896022011133890714648055075192429758969563117550247527640693350479843674885169696889051265923075801813339450609614953183677053967619991395815619698654013121316226455494249058908053694013333325940285170932614179596465007864186608097761063476095321968513806775464305594999616843130679542841829290791248767258432707745146496421250243906838458642915000494687664313278933758979513896399472601958717893273616483751855025506949469551846098670109652355444269320008882981482999745178690826587270669063751732552537946687833866625344375818056362110327016597447102294808929506475205107828061732280478025611378432895539318512365583964807531902614209690373092323488777958651844328551236593671282244024531865420576470401976944640589572737778132931166818108384851314596920072987510242250537623448799058274924542738379466720389499210477632363638845148312405006689702527533292847829404107399449603394245216230630210971068490243698820691366661576554832376945734863023478152831759620478429196303038359868349959950165633366360356634266646020684039989611364349569229749314481073712436836770037314373838758888409832970188971534080066073371048282643290914495144025195164679108605411683969176145844592296007782200764488975091280911285549064391702189760843258825281699408299757626844074144368846752534307697773881295818916760772233584410152526839645545605493926537205980134390788811509672858676898907101516823518522470419536222816389901884413590089664841920912087765811238078244970030021434245566047146348862382719446778208269591710817098047469219966815404803685525955312418779125442333023187672273067916078853982550979782375521974916945312137229176899551222235795938368947568564733145276103858107993638439068367824637332013325456041318971263075417090743917658517066845575550117381876105266953003431467574258762295360785745850440772778506353351924790041585676644539272158305596415911042026879406161028756215400814919212340801912417057567588864080984385354627511260153058364210752014459924356876235691173933416676667371269624356175137438507893368188528603036795448371958869959810265175619657552384420231742301053884708307097127612030847524232945544114036956508948385609127126281068920785194669153988866571546132634304512944736869046024756573231855129693422110955882830764496568433606389178988893363116173959192594619671686455084072403871934091894990269985320392775621463703255624860808426392114871284104940529772493964784849416676248571936667433592191231341831871595313662985976277219891799301100309053253751665264618950954520048017748220796988783469934346638720787076585063516705693775567518596910041111880590059190200925650916561341534278260365041962798976198032831339630212604810987355370095354361589437041798092336313332639329396225015268716907079816967008373583308099852069602738496307625153042619694197030457044802232230238963898258497074496007507038038107716943517765578682641210815802689348294958730791465898322840079134761478554698592007488784709038645741249932910418313231475388435266742771710220914088761361883691637171506924106466599870393705294399700155858210299149940182707137299084033378078881793153746530053787275111465288633384713503338168593702393234796949272074140515980610433899358168111369237002417118607474627321014665260980863331430849522803713568982160690802511192171044367009266468455187578528878029090365498256361419795234507275256866791697786894522037714074598704144409067298240233462133348809475362978836750970616659677934517975405074523663736846964720089996035870125314532911815766009229310341673825672459972800602640470343253418271131831089904434246180821519119607049758042297378886583034653396520377230402791981171281193299208737956056686065582079890947623934313681290738873684281567285541701953442972472948988189754898620267724169036319237630652856584471894320194295500507578710459620081483346347567261782415231768401113633523711802739434198350775626028431900897675266048673429269792394881038959302163664543724384530701668489811934666865925282684874063593573123032961152912863601577567661485424277398884388008196298245574717295027049505193180255748871119807921822767684482374297055629097984163902903251090305132477973604014704904105039174781059357241115433709776756623122881820586295497584373174998459570335118590849318998718929852949664644633500163535710567808761888819864577498904246824647848541990054111669874665145120978790937987419855410813759623467046792433072451626907093942015115452089083553818886071055769045237365933524658948737894836647647037072394966056731718641521924644707532804527316274557408439737369560589334713052442449567216825940422688086377017470885172592434330857322946700185328400117748338248764955779914763585201261100771579161321464352637314541482439104689772522968276964681182618236106376655885407825940622499045640642290654574192779450636318021485104690732839631588976510546096523575311570549666602068963805055245518325546686410879570874327051668116539080782281365148010504632507860832392335736274281053425844981786226335798454297658622973872381018648371868665474013849669518512619015386867688318823542200234079349743194145515006687010243731974936279644997903069098401952921187864937211066088562801611385002045188729671364601770462675611758642531733659474957850043596193800249679516263668053697832497378118162228496279589301217754581159305695525780890729530168175077247252560721657570422645111599123846105798905700051417207412182554839926813030546589463681896844858233391414798626961649634882153989865563764667287231603033396694112927326273447189053335836785624765591442669144050319562171017054746471175189054695198988710638220834102885256482476449714683823582223388908024111997151312368302206897175605804576026176587688433152455117281076147964906165106953286993152047333649848248645583855942242674415177905214920439839682433389527913332666166890770725288672246183319873648858172405779860889232259791765646172910269775090256989699748795127340915257967277979539132432260947784087102099287216913405965509138251173039667425817732843198941903360570778300087840119894820933073718501883881517920433494431031941599994703799832924188079088128234677068287630667493041977816223801848246448726588828130825746587814706586789540816793423379241905613565383823044701124360882419050067447563056661586939687062084469905668713662321389618373546217111912620858113782768915588975590309164354061744192569424725902624231791140974545499606263531785534225757215476301647429877501388191667210464759412723819509974011587585086764152882892258582536781063108248418856789409151487796050938779517618662636279837733401876522566558535711369439714960907778177105820764956077226644276796224010416562569685429541272175548359156463953103365674913929324109611032008255690616796780126290102510380536111559112555110156779725532512599802688153376712426007331399998438107054293279016906637214241844971763190338726617207164209239506385584511696048070934292916379757097333966196441242731286541941097591218141584060653510025607173886701550315530255054387732879267810204901972805198437488902849756721253536789742833885943774056706894253063666818345111259136637595195997862644510459126618815837864070386005164770193421954396236721412540885353516696959544217233964590633410092326958182788952899703687858117154555520731726996617640890292688933827074732126999322632782126933732377344609167754759134029429511679702572817165095413301702148939444964943658394759184513720509115489131110095275338444540860907205922213214661529630183496381722392956071823963572138586930339692858598129920563357870682614150761107524701926245743774880739468550623564077270750403400033115003867300987636498087510722102807776446531328181455272523184511032491283828944658384546709245684580522697539443467367333798914156579781311795157536306561960554894999536986945143445989806164079352146949116585252520351894655809082685100245564216658530159019447432235290881578220690098875293555770286045246457672299162602593472490801075792640011105231649676342004971972428107133551240646596378036252336041979110428648541906832790876226303170341639486589600658645224575656412193505558592714861836693693079663952306909113952590846216923775549737920046272744991152101899572317200103730393388206034949301174933079556116993148831229724303731817311571923856236806610497052626910719160057384482312420698812008854426899620897881303565335805825909648100488635910827579964864267431359986128183279090553830459748627233829249349291288562599482531123091385658257634522671897279770464860767165631572250479255278745557162944332492489445417726604122177185855449191233192224091037650543534290856379984544614970343471052582214537826767859698053424953530811602788561573196472673683864145533425191716073834991909104875429478621646682893481270176689459241854360117668923076377717698698427236427819412744579389373992923450099983603105630453543275126285868388056285372374149354330252658898589301158062420162717833387042087773219880403082410601548734755879131443275499095695999503158620950883027545612432775775524823930395279897151415715220787006226306560104488313984649916220851916196523223624984838138664836942901116331979855341947792748054530288067022547973413262403661207984977008482814226033245396685401782000443271882615988875203345204828931152636285765474033570693600398164314199271894983007640661118424656314191918235108246676171408962608779764862145765542677612277864608544375758271079755707622342279769674440743752713034951595136390284396155592004568415502473489253724119628024930980839220916849252529344894655670402100941370677610956017395952878904935944983796048862052668439659476334386486808586441157508158708924265150785786281274171439334743270085358468819060219304123111482874255745737571679021617418941263498013605450743618578762196690064178701287127468692344068310875365462758270289412310130457656831246384434409916503643385770935797776855194511161471785650765120832545593621107621073150983382570924133230473096113308411484651045403007154632702948806775875278219519613758583736200221228060068524825514701414677215987795994582419069425865923378030969479728120670943300803157989052412856843141305987213763538963898911375841881853114863445787733759563241401527215822316262575619840279419028879008938656055654098718145780899540285220530235654054603023349322042364595539981853574292129584055184747549230626905672467696936626585316293546239930323733599878339096648908353730578453944887739665209623562060642584401682419557777339053033024794584423655303441224929578351524548358984022809984426732866342391402204501420989248046294811925239585759287730220189210210957371198612575674148299980190922840321076026114469932198054644509313098238009722506708716329596227156870199553836028725428469786624294972654861271471008413984263121572522814421869082203739239487931500280698903034792426310101899619626959230407834626232448909569962688568375859836953484761849635963691413045351294820873930945311046969713729487142548007612989136422927551884742233098958239079923616384918524903599250085311332995314380954078474315331013962876882623214516181365236127660149725789907900455099017623708758413464881307225092217924555847105535057865719989342756269955275999089072265088212622159695587965762879286379909006369392047620514264970901827112140656129117336461090609058940699148061915535232231257919246987792658182827653810038014761191495502290412252100272161858172220267285309497314912719977958398066108231180632958905265685519984499203270449918688649705725122790855742733724564258616595678599921703516847298373954163460328382832878015113879213854490994994490281853197475740497144625067105381484678624489008092876470438789094032562325456662949101024718901920973532102133650034267446322938514938238236235437701493147203145422333395507951820647653287561823524470770225534037117876555468609101797378924337407025603600143292271546905571314719880074387691762140979323810106994855031474564169945722309635350636781077057130553139154410076297760144401736728132824540928398592298276968921050328775597766835410853878116313686835367923330213227118496919500569664815316496676995146157484243659950283384528153838680576751012400906687362688529452125081271368962938881453628243607480534187943098187829717401498268299775928281037252040201543331862682416473496588794576215379117606643614469498957357199790554120603438016364854076177299640078390146817009095801762718958042970738628362611854023168515961988980778359586646726383859909506523916928494485554402176993370783092362207503420025905720711877437478437174116483928214554841747001984830075446733742905063539861372973409873031355034042771409768669288591350728533963184385140101409509896881305582736834235180400654647607710070533461378193043275852083168000262253174979199787259722409548967163472722675614815427972736320721743596385741151853398674329857765979906344856028999435710627546488093630886457461615640720275484681469701349627458253751817863639893105647115980343403188298121057293928219990355847258859807326238680185440084613728301112999876275884763282554485636272879048399345547345886007988963821535077979523715452778903791884094514695016646003068480902287498664202755374026254899049570353354627571897842697037863972764650317479972172575708023689730171095158400564274459548960039575554926069160912450963272536034441441598647880058439148474970545721148567066466022059327781552064089811496077433756961960005938605885608219640293722333739135670701986081898710061164305485824417359374148994131310428133753680187955838216647600294518317970330081928310752968422873538857133963134133913720384681477864154659573475851747867036848314930914835928090139028641851195187964655129734413376215462559283967992988714578930076914167224289586665207496197558304954369331950986218360657861326599386689037217602973961339112702840330351815477430433030722016136388048410430841246189158431800330793841383490013386393126959873479730126204539534387351623657404827646255430873671373709996032520545078245232973321120101644533872032623040098140930967394646771730511855374359329120790381195930531074656472166469049202912990054913123203570285414210443731337761375005025307570731244709643356173516073605046648352900423629282392389267707069643806556611948918143812810262198766660873868690430396328741603957838772748838895031421446328806058871659937409189710198828824665369894847087857845410678580660413722739420113402322313439227818762428488461369275628747127972717935275998615132596246489501234214370234207174648887076971333549185439080114086114803134907583981277029293756391656445366484153467057154857876656545108051083866739543542084474192867634007288475423477073931575244133006861484376675260458384592693434550469421509021590973929887954500235701062769515453514151286229276473529417211710525329992273129397283834048934915999953013337221479772558787303132554441157077385557560306797959642615663877174551497187334077336688770336035628829398856985558922760123101295785748937260589939973922016742583824763641293231031256141000200949538198086775236146321193072962605774246368195148926294935226367915490150901315710245569121186155936849058321022285234557304548571630519108646623717357339305187582277890787335294391569858201022215751785449685140484679182968124245326957090610354110535230680184246114260061319048148501355863878398466789885401683761515307023645160306616923425594052483841100408592105240049931557646757511457620236903248620435429968502850558145338396113254693436455821070060469672431183299325020696969914222992944221861753270212264808829644272688125066414731841013546231261235930936743634796999639430304829989925677333314282877101142911183501821479247086326011334877642343622763421561219581959647532343149029802791690624167909873285444216340095397302245878852577543583156862749521526350566043285490867608855220085908052889849172929940077252024493104829480712368721868901535157832410214844006016198240142155418864854872167535603326020330634418792508743847699725169345940143424850886047847734255613571710666030187633302315459436890299671975670885980823912370000785779594267014955278242539432349410766824154176277754854170293550737520889620341560923181270383597982056832236457549292720364292936423043837235516536661200332665852042526876542443310064151996515924521378029221192505940559839476611863979463182524477223098062811802289213756582170727417664881337402512667632415765370977060777924233470254039071276269066099237745403963146730700871580057198363861716495071387509062131165551105151393006368186801761446055117875588725471101732063026693739833197198594065640171028336883345325975786464199149443999319224282269950337285074285484947437741291993565387109499060994008903418216010210994970312211587370875448861211559068966266509149720117035065108111235996272699782930904340726783338940990795840907761392359672056619179869961646394297503226407112296552141509251006476885464667505781906845050670892017155570345202637251923488646011173182370657928484906670501777375414439318002809941370313464823586368910667856311751050972127025148018131711221301016303594900642275248972323134657398845452016626437870591141722714276838926128373064819307848409052513849498328610490642516618350694150981383394862834338002021904533050184045491888709460267249094985999322495922277214495117869604832579892511534029879725142873473297211826340899995663548298592651031662974555910340931539367901204439006784557839644190032271582668882669018476589669212378802277975686197815271185413039045357366224912142601771808924656784453062401020271574126067858927009437313186473766051866201082043379330208681502897174249778138703708032912698209725094425100545712004940760305082546649176899142708618159327745775684768643421024011017262516520197969165656802256812032136846752654038453123242690070291824239557817063328754548598117577323220978505673037682216822195561302210978020692483300557119035827589761885695245200452636006336302480177767356733838610267905533360852683228914890739881844797995663362408400635806619340217340016442830887573429018648486455136936167886999386654029035117536983134224113438463362228299584533777528725871872281498438369876568894876258202337563403805120141177587398864969723914150640946283879297123803739509037208915351355745201150356962055597919283674978238867208898645417233043341085639551675748962602615712381516609777491532761740878145342409231641505239694756452325420101387286827134403139734333806511068008847627680300680433273748587592767517981947934799041937985956173233992995847103730320934981572556200041470256880096290410719654093711485648008196163875520309386359645423744259018986501382535666860908166516613309072215192134309179799998890585007869274200735195596054716606542050645679076181346382484158909811489309130053239265625091632418759331995429539157105897893798592168840002095138902206410048335674975797206765836119675427935538031417591890810170112540738745619933804325697054794246996763080383264773681891150012634036193167089542147872469563385978088752103902422484437460586056560533108879312094377042866667969557588584852797166384293416301976624495095327006093714324513927735419636349458108211500128238154576573536734989059980137464068418868976330160126022780602700762741689644600293816225744487537245469677313931985654250835123890702077884970604111140494329533053648784176108227766512477966967563627309467682846748659270488589135562329851294004454346763822489292259771574571860543529789853867042410676565943319691683611666792728562448164970182302998471402815891493629174718332374265625320011232945419396405267711903145980712726109889164055779921931057727749821822316923272657405053631432452584894799223973033499820532062207431448302964907795102929945751221973024226675188352513682772708636418026275853396824113391957987836927701800633083383987063811437123421897947003356984308490225247148224421033476211780858386461507831593075674736680841186762673931314905662588217149694049603168976899823792737398291697798576140661359795184348586018716123232483124060472823761474115951763262414337938775283211496724262966499638815335536958878955823533343597461623651228548728871595633506161088886204530284658287980062910928155285002434362915021290488626735216319019824606924386166907992724987417722165364560912968607312503600537076212131302698401214265622540451396031166256865325835134176215994697262569578303826915443427331749256429120750519041753779226142817107404411881318081732690072658838735463193633467274374302602347249235400757771056293856674014410562002634696101515325769705017709392109544693010325924294830012038067220158894065282459145010268914555280855880578453907429407806842575188954719987366360568699671412546958006291991560942575613828194246630200788288169475864253926736208957642822437957777653301096310949956665441595345792863771653494751610227833517327277074150683232966571963463858079040331005992932043136230119999973033556115714729408563608966049035150244809299180420555898065004515647711193265184527296250815996301640341632153051340199405710660743335899276717653389011481231969632752045859854701977436305048374174649503744511079141897254501071087286577959090942437220541591604726250282692090613471499783392145240672944006888530817029030342684121037906893222833691200949848667235884941613078375871051238363986623017234564350992400620815959092948632188521456966128541079135243653131047355734029618838636051468922508012847863291019682072710103374531092438965181774165304435360180016415222815610792460189126679149892686504671475856826758001595974176817328535155809244691374662942420911820976799344221647470544884036572391133386445312106691402186259169144402594757901992502323251110778278046612708529976059298847610686479985700784314718078727611905135223622877353138341247489716543785695809273352722913063127376419745724322596208250391985924090063849310809601766897085765290362599168423520967388337783297609953258093648416194359715246721590584504235379133930575914307543622360211721303365712876585372688723627473788122681445146687933120301368225939634499439977853309481633615855867542775595902088308419117852242925316497203697613038640197115329927613461184845748394431730649148166965323610848650444719255451347280697423776469290954280114411387339913321800229595869160476807060561864758327602787517147667511399099100935224742103198217676072430957681301571094433109289633113026825140970067800982412080046577062279327297428375044745143534845453315190842867592748887754324364869925714579009272356058017516756876211813056996483944199926391352256811727292060567615057394874407401334806198755818104755304539102377749796038828743266843469150347141036051820456416778699925627320900065459981293426372776160889131137343929188660198088286922031915227629428313439566346549393723484843305878764637177289794747174361032610298078439835949605411195191740650452983559086271459824199977243037740167209751392015670218114792122835628089542927071005035561244557612441682433857559305007844202734947903486837267836510695527675488100514484373790944728080924044486770605135282540817566805558909670040502731948221117005622423848320085402612646910507280345119720652274231521076455920209094069990582378411827607717000257376307747552297641937292440347368533671250121133727628838656281009529078385714865919892233868661365339820324917659180108755683767112635264970743603112020591781373459441338012131901095834856760462993639809549990553470634623513182970360632856625673927697069346414949290635700570715283130225324122854056660418977773858424196135300058235488939470812593444547865381284365451011490405844463110997775343144895418850043479958381046021098319075108629546528953175956059147997073554698273295251082546103822613670341795760362087748827697329624639880137407236186660218750849805880638267677932401775153218476051131586036568788110191377737179088698923956472405914853518721762654186093541399390779612983165987322324095600907575115887209482140343867674606682160571353638216153373434392561918957168714611352567949247085850872200517555844515657863925731272925351133396156345332975069559307541029341703721651969858471548763107634244732856285585363673270419234580087624317795792732706739030241905492376086712154346110857291566130559560685811478954918121780772214478445670613238726190666259386609310219183030600383621080347711381223022274201114027076779300734097570833708329158287174201479734880898583869975380320776968986442659306229667692208954948587292999303836224876060896749830239435731126795248914219035040763252021785227542498412725003755226695747720224911498894024874787790680980316994035237008523335035424616738441212349750549354532821292730398165542551448441363283194199633140605291539891624511706307542719964767489195877563531136126616688156599448492643869316200372382169266828476007340378756965569609157847607581577782630961077498353335499870810500986129792024043358553914550675060403871600270446749027076765984860382543953838340811370697795142262356614637386514005364797640137816567013939525533268010788267197093031392394711114837534269291110688683915441908494267871961309006872835564525988149046856206239632751007575023512789064801145546925439963002536223392005087072455812905599274414043379898986657077257311656818885665643314308425569767124413206257741162197310936844170796008984864519891533362707424581661239735138083457701695782491536657180631644050277904470293083567755256920561053903002045856751858787085512121311494666087183293174917388224120904278067542057247364324271957699823334070884103330143676169683694381589074942173066054450367194790039870555099381620143887003862487441792232124422308008219002523522063920010972940983566604363135041556710034069941881155822715667887519967979989723961281286798047785192403065904335641146339688987424158523822403111448414026628595092563764530955572059742064880801427281834296911239690956855698677625042876245627693518305576503110894702576867317426300058969827347118559872690876448050449841771007222978714124130791944714520270012607970121245905148434467166021230797249733154803642755066703395971292874660175469842880738127085649474576223902162078097155289645594661198601180848612449812968368276813868356785058411209589634627811638213398577138719654275174024995317688520013497621213115778888691961428935826080623450749601417687768723639359271258347087470771229443570573066727359180028585866724921873500218462004846808423425674151013100948414449057767108976779960437173817633687734473870313416920930197919618186515124890868438549688400620426465688479724082773797852346925953190179347010473779697012128295006116238411744787625888777634232645994578913070753026267897009152124474350116534821236520929999704792455907232340508775311654205041398923579163353040497186886932769576796772328604325098159247552566990393835027689150222666919501894125683286604982502111292617731794997292980117778642029029462685720208859379884853421810801334929784838072121537528406114650250557308453240714908286884184245622693918209042013680715230398705414533561631030125068441439046920291292159125948129773016868638909912350710350634780335307552843867819208412962729656638352036799040376111696128450101091751065848946334618681222003318823722526954054122823331780496654367108496847070828417553577535817265263538893458456887715572056112230157118905447907462864451241629277968475877651161292880217626290499387165925054176049377044330247995883529242140757060550372319840045130301880379040227440480455630962255493296579230411098665174318768153161518258700032046329902064995969549526515758087393036143957711985253895655518283476706073227513385530492591883441711942249261102331977551468856703807592378390254499946448300004652893516804412520868914524396441310210792010993391522130238826035210545658567811245479694628020959414299826247579101234124256504713961101780615846239766194118253187905775987521184506531516397816724752855211750553864033045746296955932088311457335543391946751494035037237343079933141811076014239375468735705055075247320281509828973238743517300506356840662134032402847084892066601730036718759327446600714255473964696726915584861227355918474317636320812024584206604351368283060495976446586464488942159679940151629823669884930176878378345050608933017270117878062006866396462876675204452645730455322078646162450589864421329360654118094671368402600139027297491987028089786841225720357541253582315530176491033574916586734878243570019312841161824913298559561521016255318384805625845436848074091386503916583618693741183172219482831830748779156509836728526458303325062575449136436563350377636969568175911477781541123717367148603873788215231638108753666382523851951810649692188470824661715603324025361929869682754598904867494617557678591658282494619986737931928385115353486782693935429976719007433223701210778164822776188722745088679361446936551024455614525538775951212506031531076228160556742442401300122311565033672658532254657533879528682300304158565192629388391377386104513017301559366455726549730304721653363744459446532902966831488501494359015417405204035053623292529842713081616277933521467675451295930635020898845435964950173098733439745695080267161875654377900151304084748380458184970792652056739639852914301284943180330887474455869161202853129431703743600355357548258481070830508672449895103646097585505632645852609253191142516052036818274546172636947870631650522068309176655457383900250539186730239993723696573653536138707457821542484683786374854656804713013947916307002132458828212075561014877701304123319615928609549407424164459562047621212935500242047380721551406558008223981210452932947308428820503005744202067831863466302637858659241623007648343476178351598461342343649109399609020427711046576959850697848525403922546502452271489429663394640338622797768375636897621786699849904080076484322630282001162027198631489992348830157059660354110864844712838597899911330554499281397712448727220505690952164603772147342130211578271442782694861624351106744106649451584322164469462937930526321452399090757007103873613481527483246739722226809837805756973419613454614042061214750648410732164460334643239375244511949212464954156972419151094541832973172819508375899741400719976327846164473824594512860056779043800755740375909421612922819971264161744317053527710072532313926821699313863994883801540552792423248246058887098062367374978285411138483785061377661387981724148578150647096593648319625697878662100464502229820718833946603758967052857390136313329398004720186751107214485140022439827675143270743709988688079813679687678626067356387395835331623674888546646084797871622565534491413298484510743315065944058683495736716727402324662649668292699545665180236910966640852002717487114419881366911560050809623408203714125043598568672996233570836338047666253321599084535338899163501749468214590813936332942275997329614025070088899919363933677043003111905466192583654014032435536047229061819021090635712718457410925034656212587298885906617836898965263092626543081039491106794496162511206854216810599837711227306171050028725656539140191582696812146134744156134034648544843457531669847791860632827401008433966028470961024168158723053590601722817992899356531963219350871029925495446915632940865114383156591758843734125133009512162176951589925759635550954387734664488018162021859635947513464867008731013697965293456993428954567433700172723023283137311153015309026581295400802283095922290514964412550005113441522669627096480034201912336717761240032446252001752547159441020050949846104760689222056572112153386814953395868502642967703272465075914704076565206297547074957309491033094573559820408305491967651204557632377410156067786354457878831276805996733887648229383858603461194566271554214860416472179854837098981071054543927697255747495806714214327589970362840367684576662222974973235548663459456581052793082558935350484630116024739886292282733390222501582542133118619545315309217452156100875422907950533084123122856549048160128006692585802971356405994526306476265191888654460812432004956626762388443758684398933095312951776397199172648604848785876202592869843093269004697096519220063143345246495724593877641357526401947894882108253009692601901412139061540050692773722712528023064621789093245881382775713866015428222348212531909081329881754015180947487634577905042756099145589889734184453646891336574751036503961730847505833969079634516749319697856262445399650221093691935194820558130306356913143178699140406217748126739398744753904771822877161064781520265908789518743542859968272179917926115224122971131287066561888333697368826885228760723080526433291404057444783391318231947275111889569736064896628526170235703474969500499181192375270344200560424468207079766897782350312789854120685921378551925769769972273573688238112353803426118550638307406341525167791765179121386264604127752586184843803580471271164593314092532001887072061790601071405648002869977633292328203475815282099556637546696402454332049304186311608000597368273107746091698563747108184557730346479018746880588961097000214870401783927289263861117076415950087297923968192699745179077286681551936140542156562818222899453637592191728175569632566919188362250443111456954364781142340225309346337473858868951964020156175659034145607400948920292122606705884808536160682608324552884609053841434140360066785248180117962486023769512152376866451383402156017354049719859045323988709293071465273760912599195959192826087139453609735016090898570732507685508152525462784313943390237163009515150475278339594078181421412239755473514243873315840134215068642978241152459319470823667931400887724995670816583692274501245176577414538481495052451342009099841132259996918571591147026423745860350165526457208666923331911173594381595786732923985783955585252565329655386001894855062202763626913634009434786329554707871311258237514932852139240329615850380818053433934487387966832105683642082368776178424988885063110009756338000588559299886208693745612501053796687550880900860279845139604685401410031672897666120957998273025505457181701942535624552707273999036904412929406252327924706209574622905797029379697790807900261157332804582729667541874278274422935765079723579198035285489763357655635567281810409125653758021563679602779724717802260973258564623206956663179930443251701627968524100194798624014151843498223496657130168912798381627178167872355227926373843527252951125059356214326450915149428709988056377383530614290773647078667370471962632834498404897887559271046998996526862393328869971954413295196369488483213561094185241476843670735249400921998560071670785779962435965959083941024606352213130873455904151509738691220907528247998832175651543501636344149971529646424315805885534966143810913183019205158026503035846183526311935579219210304492286053507633419508850579347829337680729129853184406515801669314508911010898187337770215624170069240587253368029955802020957495134447218757011270413541087377512910522411970786307155888045242629984508878117285189592945563770929148414877917383752008298561693321933742303154508512600526442344142606668896900195693068975410469182700658517109404993113911930481844859709033340003148141252131208753187759428980534005996145281787471487355621950335431068531034115828218901609997361470051226378040984279636629695219361108217423813148681795478192796077411588629604761355028615177704641191926792596725810818382511417255531298030769040413034395366914074416320455933972736142540597062526119436511469268408651026549126694539593779186189087277483618443456086026775407509820564279686505547667084273748917189945746864325692822521618985660549236382944568506757559952266324131639915467917007577744503872898544846474379192804878701599480759049244135076189698064164905817208283889958844299299850257870009728511771901626115762423706720349688757467276387362459187525792916090484618636195379253728239626138857593053207077939483771555094432870625765357780162074094797015941522854358918980203031158488182347387088834522150143287353889112201488230235234528967544772058234231735661537052614986302680311480710802508594993311998732446696686204411061997838963649315661062892164231618363872179522159665142465883098663814625878349856274552471118244241652938824011764544128881268956902897938768201228040844872585643992387781982019015866028847544913551685144573536686399915949761109777120418610847819279349389054957618695128843113118854371496666032474291598700955698105726582712376034388946759059238571890057213656084545263782688980746158695831432854653311300166256828286294343561584990344226143127689146046293653761916472136390714078137264535678122713382552099979698658312247216785476799490788565504031019444630244995573590564014152291738429553627061143321812191518662770553354019448329736826560929844862161861781038633694685590780270141095094070640042412200474955409703642155237875580545231070172779607035671863601046492433636996410226701760013773627801676651354040094803970284147987847973504114171948865886425890012776879061873684998789486685303871091082644687975725812984882609414075567772955702924013850505374215975258920831232033095791578856752108016584636644351639594111277361663800657261687710371831941779752291971261120952277687723539236391971724226506647742320275362902238142561841973540428017924993304076567395723228573551641442844075936571312656087595038255776105710254588566826184851363354272622139685395626919225362658024863226535636925636322215788693656206210060921513406851186484132986164425885389623029593099281115930716197715186327510426611293689007075939430503283968312116297925610760134675849646786733905247402144229630583862273381509266784945273500333596930907876950316624532579853960668768634719461779232976569233263416054194239557060947666902581625253886237809323298960318544521572102672724383842238183345868822578126414929659078236442065723036916017357089774957808595389870331891708930500106511104454927237767594143705774005768528237910061127347509679494927442202959129064902588576907413456778559636612063378878049914920522504073008072471919750779695269772668961844408171700816859917357525296243154661251218945730347970862496377632165439331632650453086125818366307344698213730352322998953317869836943703123787289944663854642594188588152282762383081383879800776141570015820421762338968424989888434728332055661914941388131426281761750463338377581111796202318921405559393091772704287764858518339481647274021214164051066767117117211332973164351792101607471539853710981463164644502362006675246152726941071485991151992630472879562853007702196695772870116820421591967024274960426041789049911104060470354601008344423651185301503572128686952792830643137378577927713849245712952816269447305405522286362904054813796015652417338162027388864213681618408538091219760762547668926934154238044365457885397327289442418917382378687825247212936432659732790780516204702268075913497553132324516857188000642453471558030281896836036616554292024746758318847297046268000742828889292533376145597119507049831625430495491078905566500672314628667160972381877618113799100908786317504480786559901642307327833544508319946616092976084601723255958068010020916185655792315543311252263581037352897693764961812035064359335756026629443573954081219939757418509867198794183357226214890822601317576988265853436656540376839386598018917779671641722454220077298827147629162951550385135498128724176696708146282736422931748279798496111840589438802720223213032631947369023145972738561237564316996161403419759240965266448713470281073328973755944522551952765553096319601935142050181055453390102439018553890373193540621277650647146068200593834620641183227678787906342281888026374191956545929174561693333260774927761711639012214287936400898204464620660831595609472179474831414319350033917920768441508131318991382531531206573876868174610293465138407431023086454767227097661699991671590997148652725902613683057070477656144975517341955092979759119231815790460022771252354656654991970132883728709580956926451178853855342652220379960351624624007685151508083821558815877882581642526233248283503659484511796432398942122000956553122217896577838475405468537797143458307857742989841189802933062359081961148613977078071196180855463671155226243844934442377002800337433618571447300244714831249957132754919395304286987530813300918660951196301394777687197162181987415754593926279777338644042968405214688043843340914733313185356471836442706895950618687034783356561432912338908859228191479550071606042712196382811140988887684908826390375891348312127995674372906718472343516138668191562324177469253249627288958461829991709394566932668254036262867079447996007972942667913569885885330711671719325147963669998327176456726556454302712055488601771471851602400454953788889701176465305143331371362199931293124926739422254729661074907587882837478024101857726937658655593279728559487327382998541902699479624586498941656646831414487324947314657962122952602929113477487877278826601271099507357905626950979619383373638681284839748925415371170876046751145761917360144122494630373562553278160227553243656351303394819395223502216519446879140838964879349039083595035864881991521742352706156866490242135535473541087437722608729821680735339582752049386464160039001661879257412593306007385085757290275178977945633832426577111459992769176648161585626194250812685399697092814196509906672597897607794636278331883865672878162785572749039652626373378881696071681847903654959280963747107682411490210018732520753909499787442903458937460049340701708661611893219716564711253462138320331430435368504063558397729172167131533890448663998093181750074516947560605512257106354898042679448858950913753124562194780945471169026478168047500025871421844817775493379156592613134606295686418383092664794491435070271947213641818572131552506657911027892629141010115164138049332326536816977400227936644003448492229093894262640388872813333963070124532321723058179763016135537729487650752588369109870216403486340544341271791246753197758687686533339560355510568093481867527901409811318199021313132443979186417756063334281631824459110212692746046337016888186390793121263506826813035707623151342354769775061691700197548383742708359667073339043643024799463331770802117648872933277913032597731210796719997041365718076064045331078684537084853305179514083286334667535704929391637497640855484799882467833920530384506023651410203789692884159422689922676697467986609340260018210892576420752870397794433054257794276011973528821624693613900730159122994384887294279326522375317934710021366521175998845078940757747213136393580605015074283676813996758939290983245433081747702970376961083611398657285876213894647107822628078980470761681945622570391385232549483079309923396595339014713428925065105567904036398355475099553525516292795748463527218566609480498804609309430658088030033574878996260347215897974050854542803576014604556413600420092244464330124775374662977065489833156984354165812420108533733412484889836245244506116067054815322743216960898553631472081100830740006356339630171998731944427132403793848181932022816692175106319782353794968734480956545706603537223497300373896092095192891192416968106594584605095423565614326189015530655910309310280367122917029664708165151616616727532004663123992691301881093215625030641745493910728340399948204038653806265566378575384312045103942721685174931345007156497737606877586099059477515740654255489110080007516082467203866902543822940419018150223107976820053583684122858569600873369087134020684976199205222912687479448837948805351477789988244201462840233924901928514253526730055831267313236246644757278757292463064654918299906741351859189440280538305250255229189202992308311154319928131863754194238028685990770781837209213597274311769140114795955290110267647116210545402357462147144120055507477611605105912316222706424088525122158458558472698986593052205151613279211835951913491673561262913804427016343312026820720610507938292083359132979497536722762018501736727758494323603917848110944602588728689081124405877513438788622844845700700952217626172032882316082604346540419804777539944494675936737526761524637326467951286978275474046972462256299518765609136833962083942937979326162091117424642404283729784018876456317033431929054245893712868653007948553439998069755438281962742552360483410871220700572125964181364698334130300092592230323211288032496218605394603194298830168691358744065608872286505975680672013107557017947088809313760747610402086974374758645804249388582155166392141658753194132951126241690536894901952683970357509484166825627743148449610079370842390079291843718890177153860095402830104566742711624425045680444292896869657067102002380618974416893578161428661476405781917186996831902723475246829458622718599695399196518333261663201084352717009061177930549059733853515932392742443089058907556936465106240926347597640780063777792420088535216424544933744703186974125686467852218504433415242859788796246151482698997363743731130554275286833217330783901133058394417356794475411916743670394457398913153443399455807303118719311474837954917880591030321903480413935382086374203372131660741438030953661676972595862086957655057213496183961869535186689471173895986924494400807297399384421545458048391092187738807929390682839155715885052286353578580272539896501526266252442745725326216929014214108051465288346988674081483790052767483191619233828272572139465182039903442692797483016738752497353445805349941760349867750451771220009248128400721219767021283824007576907006422098646946585594401334190564686523174931324797205596546998474289913409812863577808004702046533599381543515766137131655358680831484381937241843117579436665618295482139365278799989900298950960253365793928838417785452707924038140706443213131131654484322183743872312631039574338368833926772103149848578209539051271645854843024801155139476714321159122120653581005351654686693338929309670069254001658697172668933476511827429899299730801278803139129921297613277575908408165185775610173129921124446999128451160592574058183852120292308567656712676606166938749454003492344869688682253897345748855847793403826928280294041785690242473852823288286335946948999563592695075373323221396842242486415980961993899719034297779335932319343887022262318512757437062227002244099848708703629819943533762281352509375876087641465326489177431510287084999230671646405104157803510833926812683309747054800998305652087981890751866708033958511842756574797559156822712736471604439135772137995106847828885013001792415003983111291260417348575649520571328769632258005496466493872583246531299656944153957905548669974602293499331488012498431913085798538498294960449914416439268864303371445870319625260890347405657734397563167739685633714185704514782155067125750601532175194828912913037191065376629506054049045009203204462464213727099855585774934080088074012106783112755046008805399092544243350357815406132059114263141694001531404763773102767298399994896195034083802867847248703414585983960124047416414541348134319680553478980273460395439703513243997703799659902700139850362432958060258146333601747714471834167694186616724378003302408100716551922299629993384256768649951321495684081383776563346089293785346187550539602440612840727612816361387080957092106295047974331397925410866166553010178433369495828150393009108919446721230687879021570528364735299655650367656696157181897491302566199668234830761074382790473190500624172565849519064515524667225261931974201605914471927798860583376190493208458271430994063062868408633758728658137231079120275613870893270665129108647470791194249373886175767792363646385805598308281670230498472590205782114149084011991828466694800490619854767034769256715038351485634148049697646577530835181858769261202790148706071443503907798260079662345929303937684660541872856667080361715613793444929087623096506507898169174113886302250984041535469039764989659280279081878082868138215670692172427862936837101439215253107746156152280793992940131423095786066557179905780382346988486574004785881691267697639541715125881165160013407716616985230902669760489079830842786846586253914685313504175507606405732096625456697964549497380267761893089843943004397598041064525734903249035587883257318022080234099075014783160941657578686252336487343924759225553771450827984202094678123929399388255640571127028019638829053653331093376557497727775495467046651357441463762735664530311853331652881735575202430995118315233648940370362798408209630551881684318380123793927779901450338073552278191693899690365993007561232845993479231841717750248702214819449883034824859976773507698772306268545773717315286621263076238034256893139045825127375475187725237356773282983679066697927843950989088637761796504107155644743175587772944436683560937757151696498124309694360204054879021232974259818962305360218179029836150104846156471584246011588645676268251916726385773630578668205024093196314751696743433422727446209774847387573519579696794806128381340953408392945290643199175741122417637831667838721829915788292978986774299843984225657210016337287929586156132649846514877426351280565901868704561798193891118901388340944105027397507209130379178272132874938538933262863502915237502081546579240015869837138756326125685462566744428749859801882190144800312073801754311805564766433630781341088932437620404057816159267409933388212409046844597052722828373468391758855229845502740538424708989276682362658385141197445542738404075193551223262328240829120522659403478452815191705453397876262900591915812280281074003528271444298805923042219114410726604284161277074948072716377449667808637459448613478751339594492249355974102230956150757064514926788126856719838156724888544868819255558134190601443487117883313363726180265324962344699998491770222401927531605396959496466081761486445993400498817554196077526050414041902688890972837873290083826955749542989908516801992505153756348876454402515436664022599601576198050891482561795232051534694063753451496623978983049829220423397719507264232864991038481350672120231117848381252519089894616315088215602640062544346439826187980811456705860757726189299789361637793392414544470918313391623302215274209530083614111197888550821842675372526693050957340629554424844427538016903376805759972530578354140291638278252813504918349900410027625766559520428357317283823930296708662181280710192175365580568596917420874818742406462703035804328716538469847419312612584854552883004753907595155521249625295407231038543655312134728167527798821842570745466221597887327097048834860277776692878753470391773705477835145344944932924461646685344013510519534463484500398001476726023277365200158744955493787297168166919392033941963429288426154734419467432482578403188267449081134372802264279298955647993013613509590931318115704888256046295700036731397121172224014414540436448271776314768850343148569512862115868368265860110491529735406611003082202805170859254722390087551448686687754091105741150131137915460536262674881298831360592718409710865780171767524038680029446269259398237605913642654873705424889452175575712307482403915094159765957305983016887623696162217527794150613542004883313185233685405739234403324893505175238309008202531919175326053991986171931483049725717667550693127281837249811251957196281447360393187551850820826508243295535219431362556094596201737697726552894973925118541175921046403634266949592621318242233581000610853608998371022055506233205264185642564419066369796479847634197329898578981830320561293753930910773427883351051694567632884853012957054336330964523448926622785281810056606711818930539177502812421569539531869284052499442551698841899547459240059146313579395307418988172548045898963144038671568118255719034479582745585018726233001607846844760521132117235562256152568691135469946413738009852325811430245200260510011732254565393008444398780414769278649529483645478358531605039850236117780861935144575443187017479843521546187174878329846501504509219193949147898292869554747348414392225071873865507957174162190341336175886410294507599109185188871309360045987763423503228223858318778012440940261151010241595547903120839462320104802351111048727311090699649738014276914664816673518784680236329424144642807336833123280078526891304184517215210559775428714335629994477979688124591948870956000464304540385686483492565496259639885295442578989569310555893694733314340683989304595725651689722945363840316796189089619950558555357161936312237196512516608390695700510626912075269870699418937201763824997898136179881868726939691096936933835960790246046934464971458164477291662293657132394117399767395597495699828654784713961287321937530282265576600396830289955578200795705402176502506074799532644442047110380398482285543457529401566137101055504874441863121391796334812328275333229406883042593454996936041762151012461283555735940235659160779191831863479819341399670383817527927748199330834780281902604719254802968655136384587781248410874719115921218631974082636150969534117990332344185755312311014987220024620082204785888654231205888118858034659397986183132483883755503538752300035643635111275742380019379461337033929544894213543801692783383242995915332031513601058539436386154605111671188970014036096623193376148762789066551779039290428252108602631103764445722326652301424501479444837498877542715713787916208010956808775872518565282824064157026903509972382667308896664895586695859237052967109409124603046182115260216946552916366989004034601293419474178839883290924176191291614924286370515294740940254162526776553328324781607661966834152312383269281046605487229193110267518619328333572648070650162557787939937908030840514583838264738673765700093376514508689230191672795301610142373939285426268342540294591309367124293111351978239213459238111235898816149122727372631734168227789043401066383304047373067840372955420649725835873993994943574144630483396688397955107278944415302163912588614678911783934585722883626325926793747685902364339054929453543508785533981364395221243069862180726151415655793573351665667191864179793217789551350184606264021603338504982230220929865282519172585574959954981883625898352791290730002937958239569420186546292460087052215883246502842627016955128174466002866027815097189820516615781468628548105910618768908987657366941299714294445190589757757375916190261014900798652136464953059659504496824634450074545543098290494967426513441335303295769760319739674956704216306212416714915428467802884237767470536485651532133530184745349606178129397126661472614382946521504486282300014845783116189476292991072331384557498003261152479258497107658882044066115311591962549789013929721252290955836440837710940191973952135413631317828436651313003462133251166142571473515514595824146826923698049724158026358307129375386290351291874669501384913844189533089237122513207259294254212959187850949334059097250792456684933621198738228947227590274217359970448465191386870948931649644383692918867782792790365517903824786511108781622699252319928564137940407226515362287817927081732130231956906828940905785534892292562517252218640188466349016368694982880672656069860686081311856519584567885290580954104900219889986683816393801265708948347792455092294381770633375714366723467200641535789430970727414993247953322701583095819899462006646446739400661615598447675329679821018966432678173067716679151398964837023001517331026162335823544042027457466798604766629317695839636241680246148399556658684345765868287872636020652797701031151894731771180355324948041768531184621462432086532740564489553352660047795596721330669531518936427827958212253446037255556791344324512386241360237894357278892039857550779047177686204521786431721292953830629776987980886959198041008806195642815661029963012324908684412621235488405906513052785845127965098842396207283226714029727971076657514538601498215682451245277662239148554911563465696527062458754298696743987870770603703816467416936910057181596751749474030837298332219462630026323001170538111477015647351132834803359131827044010215109593232600936778435755258624071486655110561289035806358918223633697044777671347235475711848320533168883771622857498937369606134505517572523341513890331991357704760609006130751082290273736850331580221197069574430284597352633147628538089962554027007625294035624871940783981041072082313016591020753906920086960507660544354229234155878545718423926670250716028703329481539827230131615288258128872778779130324919768417553084925466489577077244739778295635101437673236947642693296818108381992674851163404571830782040394140410314857455638945015455900446616554422812421658212345885200778826769499371824440031731092062108995121360056201708897325392307475948234079739834270913891422358114810452908031204976068941443164258688476214245469404777167311242389728560341297927107706812929647629756241582386113435639325718652074635042160561376748362670856748167347623503103315190253860910603405108204739727180808304833764028274836924134147312790066469350487316872563622874230268354260220350504108476540513353641632618943040536018068796618480336419532325421169594318431587506119004348541638749556358148897095147640573120549471406794877518293975751112775959272829962535910696905631616629513604398627957821085776217376744245894790533878150958932524983584790822386227061190456986809151930223942438230907258412636928531998160575494791703015498377288277789076969196741948881402021140315970389126051818420979705683652838838141947260690446925683074472996042703858661041828164264836042357217906959066324903613566211310519861123943238454165418379836330173122209071866980656470100106563457248026309048115220414439613236920140987447709519898211599294818109191001607061391913675262388255258893019592166054654684748379402678653072913729837845368650559856675416782149690546226975664109977778869282294373635474814875806604117215402927013216363172263842064269584964843026419038139948536008609865802789342000483541857199548302527362786013968979901983127790806474013430737531050153843608572789795060183621125146213556278565396031745301994125129172667501954036361199115153201319743251510070246882562056536674847814533187981537821341998982734685649829603952097344283369953808772666378174560726457318372916257772507899760924668672337981460453194512927751827555708680818864138661466300934868914304482529978827145940166309456424187485014407907934657389279732532718305482541837163453304279901329758700593817380947661879053761647384119284760318731926773626545282462766863344868458655501251977577337339138122171156864850372541695560596874109284681235131107511243662107840038631518980185551030743623571826359511530102519814943174677576555815434168163629303848793863063587924179249183344003964582072773515379627547284175634644015608922880436590164005923717539959009638753977553975119225479057240171339580517829255724495189280135235253158915833166498354913765977608171186237348261572252257457450301869556683308736243242415348418480225412555631564976978426538624374301804030594199421742634922601810548206843408330454269767594182864878964717630764675462926994010053592586535693060472479025488959848340012402878399399945718227547099265350273996949608860606412047870455238281241216547773358545733975865768067479918169622040593521526481031337139062420951682635405483105663295947033136530048742169698314273405449126904436021336124018964336121915635765558183591392589975129840144301412055593799551072926578501492249773013402394618957119131027820594337904072156055755318605100580440713498722492332903984643549777995533626627818293375918037403077988357357410321412468153717595751496817736909421603689221303961053926455778656468200594189038609181016100963475755294414494800504819541498065163094799213813381046878958964720366961917770740417967701063386511822863767013041793402739541679605846042081974386925697213703148009510517331688980058144863678344848765448701629754029141746853654246871179304599648794711770235466551476205858247173275031951111245576948264528910226539904613971645262329038161165617365363655118107135835065220909665375464689896501548198333842265855970334558748576925347754270132534087434311742870591078182822173279416065706080436364862124842877376906526974139556526878130724897105091479071602869120045045664278443307024643462086719429336906769283010334661322737070788229197716154556346486217181299183840276636267581176398143647254384029784484885442356304968177993689061142331398713675554803526306787276332508185383342197415170655137923980694043693370339964852010716622980046784556679477609957408706572125360927163927579376253668199907239343380249226044861435455673930509777359774412108711994459029421397111169648255880584097235983910173673094690888327374542290179025080765500339394565625956423161847654738278026468001169916793964384629417154332597376182549234431169887809455356278552844488019901870469851075425678958642330871133958152732712463007001500473555927932444280476230929412980173939234864732531894402542907200940251595390190976264957578236387988784246741900949811902044145440115160663538888992303572444620978462519015955941960137411344672799158187204815625430715081812269215351819722829092987242964959146956354836296700375951665965822610636063785713280911069484212954748164775250886385864777127104269181281734471005157160091744540177134957559374782479032675037731756804776928722373078882388359579931651707815059278789705668719455947673032508309993132838638807966763663693830921542912342697538053215383849807155739851206555688519835177419777230913885520733364469786353128700689493512372507419640227573467678635595934478439639923008549261640458383238088640902686472377985682405851396509750136390169799793020689872790994554961405088366445254459396942352953750402839373815797533911529101093516948770535790122126570515819363954519101291004306829919047623596737472362289934542174580182550694983855753728108998786619084542259408628055265726329603130036313183776835493142072891202524919553128361797117915216256844132872193669984800090658579925006012037648360410725926717326877427142411011999810936723133388971779264976427243275854750720725073155321961041227731894209172960386576089885248220697901691137629063063540617941323723816536001284288986307092054043158470341419998843685034383223197359577700711668476311166691617243005279221017008772905126232492488329143232707900738602865361383866653950904497385388197431441706655687101105801906382627698343961778009932524223844218915502638298146593564855113422893183282928941434170954922221786358729317839180937340276991159688755015020918837302937075223248009386792842913689571486702309304519834176525334116225140270263452420258521652771035850289063209282459064870766655268752799628606538697037196923492598052281545736606225031683032517348175386240433725354375554585140162097425118965227248941957216356258695930575800539724531188039254060501873344045682682701074127297547861403298375165628080851785050824147112238578602834592212953093505006870783899644408809464610110941481461815585649378536147512272718150873033001586659701786765997077556349762071999574603423662791173447801856466133586234328567510575799618000898412165894728540702492252103760776847072200260527373381845381792545587921506429337555401419799648270807969211072651528304876682432233103783874918276021791898166143512056969740713529061647271678120704955296893025189677901912436764739144886193373510044449390076554950571565244065274166084764919096934649501734479963416021805473211694558149564807142096820842584470890355321402043331826703514451065421302715574797432461996469537178165975779718257013214949788243774463420523513982235221272511423460926415167208613927065696523306287041185000262715640824944213276185058407070207703116159830347338208400921002503962661587618235080194502942035913249543533998856654145757956886041915508786981300455346041322061638648233697109223363365940060505591154237993965995214630894532005996525677537687886003449546199067421420926185034273738260931788164900250279715693599902175318528154738499446251236319247124405055630928023298641169697716342836311470610584519004296046162983221198326360121298188614414101987030000695433196840642096864351014277094658516402553349648956559401243301293122561309444458731539403420568648651069224809653286631321761507843132186776663057990447410354988015919214694008044752355269615045891388415762913026443403020936274894559334551497240427924987617986095822274629386035480608660463969445197977515699899553193292139836137025226482704026112431039087971368846412152773793891498795206662913647804223732537194290994487575315314061537678302247543407464619554381670619423924345492001340367814902020030010675513439733698106494934075167621714279880373544939606183558763236591312365156997991216480846543982068068363797590598926471457296133651571422385750582000918767691900926018074073583712074861726192453211304413198361754685945603646909100159878710608270214992150958124944659808708650493646137242167358277835560690582913044434826238248139425361558003426430939293663966305000235493725756518550561884026072476809049339085670465492653330557874356184205154227503082036436770115042558973165855960451719513518359220358290145687368494176543549121757341085565936620362454376911225054905907980423589281546914532322329627904864512737022859773281390988675105865556638743979664349927076050841565806212520837306700940511393931040708922684760769772610423203734015852672368633073792203835535317066239051159271558080032248231534258160476063621938950356645697666956405309889271901510831162108446905739016981881482091323250011375022793153016911126185182822841246904354138350058656945946897383146505757828843082660647091126044567786460460314585027677265248136285278534986423141310644237055500792133572344623719599793435558724100452036116111884353790301544285686755194200457975744052183254465499977629555954747801560994808417265921797151816003027401465486585833866137403359987275190294623797915657862545757819028173308003317579436050079750208283363012845962532053623151131353395699601726300539851979210442150354232338690515813360424533025335386829821738516852964083604491663097119624850847573953630297869186904660097232676077591553736014190121401296850230650293431536698691202182604915331433364743822031335028460598223519375559575825582286624067686938990879554381865206243222461240540412502641591278258298859363505829723834572217657877523732294848205747970350783607601942412611400822733382421049950880376958555068865491902264326526893330411869644803274648888058261115748678652854381695764249565469803169355395618275181326304572944978374996892137976256949467322900643829990157840438776774990351590978329421252586488988520470301545913654899713746927111290234357457522480071971259330308004897617800040374415690270207242922897615993858265965932130142357505907569153665868521554450941457691105051910762080598647467553040669147595094276074307862556199875306092211742981875873183807953268270391908077830476273856805539770557754361719488871324901583242379993339974634451878429175877945266114436339509856492744410656065818182876304483924960488166209030546991858789177585799746285782678046313014221795727194064779354434783413174353555963130329557483611315276120566395245381058687961733155777699205754810156451980105997762904419734095228846465359553615452674303705000856985213825041907598504309701728739058168565272720555329845863690093587445841141874433757394683392022772409153058173832430116668795755605497281600934029207019354407700272324490657086621454193798527405869324831398152787195148793934339493097018693804122588380822024619363035187801282862609609095966018454932313128639392380689949066766388729367104424233644455628789820176283035938549360778129337597484423385696014977889772812640066857352777275936922668818389313109321087300474119875572948080733399180176326293787932770391660840664058798181308341912091909416309175218693401308515036044121663350196251990460712490921066226818950875834934490865005018816691160843583311986396581416281076015816147232988113514542939001953569115765109588430865928666175960220155359711543262898083834471900714997661137362062128093403309599808118253560244955466726612279263565859224987568605578877182987616655603782893621932035915630185162774530380533926662742763439112084495548739580217280697687631999840161519030928754821074420300518142328492997315619663756584983480339431195830483210287514205157990662386130336101036085052461389815835995880147857193692528686950060229027552106608997386193115535160960590067340735865753795307042085996955143136736921149305264442734233552203478036024582720991931292906911805318870946687133941723913781474311409475672914379829938034626565610010324962335992946836343574682562808279079938229717792999971765467779891701612045275697721623137254487275764987554043544083126673009478835800387656928659681830764652636217285764175825786547228801730475982208731854655123390439575457399559575810336121227760492796556034172751912600998917113564321842466446145548652971912278753595935918399703301330045199147973446191041908180260485076616065953966059268801756842409902878374144328726382507157980447514443996613574114001566611234643783451333926080104808558311823354705881841628502150628659130139626881667514040982831092178784894603815952927588221700222594800692423663489325237341786228925610590910516059932184971610473469659036615715873723303126812702491391951019745998539869384874944559879982507601600739735536350076476730020527788043423920819910965772051773413782823821025110992208257587174227650450371137802648125553802862421882694880309742734467951976214495060585324657526458090788923461565903604485822950118418351166852175369437875177499422964421936441864511364915855122706287126171759967885952367465847136741426295681191765854010671111475231272549782307165850342528123697036568949795331901955419632063703412470867450297558602833756560832549991145410215806749142634661262830337185989407264223639873464724318704517479187595706383633519961924597459649482837493179432539531789267469300147766697739104843974759976558796412277393795952120299146120302647703233742498042192031031288836973805808330282422073733800483116096704248464804987688601901508738693463087890790678337679327142412580484907232069282187872300386951100768897657998235088154304947736689747875592451170554926619741825919945243246284218346080481890674360167147972163940131553805164187392752916033839275429965609863272527426883257103135968495358498071248647251347539522946355436772191335611771917041501387902444168749040448820742774607775315381006954538357695829694326664158737667741106890324372180415562720973673681452169141742096363126851577971648849437075055944288868288491224520825461758141037497817352296301045663924255297914385338456595774662536225351288721640443717336962508475434644515813621928703546799449949282332949289232024576194616424360061976392969429493295327366816760659418195752426386136316149882754176525421453921798977546492729044402465323790588911170236771476884526495146086498983964011690717018210702132045543072552034567450813153224159237361825789552923238738217798775744296784178618462684194983313246986805470481974044614227237448636038624088763807864358666548968408119338288349993021981681763084088461716154194072310705418097496391226274922164111853292599280738797768431390215269559814213601922887229079252460573566823024699494827646445898717032903156411126732881089470520876285305703737454222727015936844420019512277419084965357352656016423602072951321973598667508301880093925966030545745672253991397096932056146728787853042463709986466946903273663198367095493650428027202197158887067303426770313992695951494419276972198867259752880355535946044500362578122327375326940934280447604143791354432017286532324630525252341581230719134934000267522599901826173468641039437113786015957804609812766952968915345975726468642280483475929505130211849614896097205049031981397678951815355919771046206512491234005851271406124810723351281303961751446890353618327251741793079525017388360520522836461355946665207391849490737917033609869329221600152473289002212784738422314624527116120562958960189986245404132590594626311960436002836544278033288678119524148610144375161467955841272020707337999750534558778002483891587826437903326293679153889203126311713369445443726427489286661474883128409804104780450722467652666649773787839925457228682056283493696406755038190530517909274502211016815805686324270892304456272295988949698230643904716103237583453507320255381987623763577771279768982303128291495202671248913767493091111388407814054192769025476252190503473473185949378540940826259857764522752849952651900025084491035730356006036802209151739261227050139620940544505424991931143153479111436565835217746316136610765293892564307944803463747899607340467432481995284685370862461024538288860219061458499552430961538335539715755095507257126102439003059123377620560440765920585212807329524083740899366951985481607898981995891126084724892912198371826666679124147245285032089583921990971712377382188029787251115048064223877479796221365769905620773294248670781528155439036197011749113548697942403099432414400359734527689710927606486993950609705204397997130373831627151404910355414211694676328569795300100023369561982675277486603446425434861088088296855732305064945106300011637923559676805106136481476821300687110544101685005779984030147165199132479839823662489163657329148830930129417601042501509357671125029091310419083435434609537101968138007558179679296888258076338351749243500178619777059661086201751556892270603056853683597113986239912106709725537471903332300278983288106219152445685281749750382128603940824554427498481783892976284627476444969041058563083203386672177291196622261716095807819087948391809666932064313978524870032052500724266115634287742938019742275788123767961339820095827952654111069700033295030654168324637574822598745705641685939784720898650799240888398772364731666682304228690449484148875259976613867208505305261011729970106225306071931730824299517764294083957062479283226548901529458889443605301848622213177837003712809612930224374902521652451692594446934637860276998993882785552424496963269406216741023812773712153686250395797788852925918196547537000540442507125014241218327959920936387685359563949676492918181670693986478737525120618701154332812403311409194007361916223173895143611156396518396908036490832730623680351402172253765422068987585020232002938196110146281197028680392450067080055357962727317829680622046462136777291646394687111740808602169263337702098246585030507572456340541179488376606128949433520465416023782383316549941921270872136019808863216809733597606898374546645543896034602145058371893318048917800264819157505639495407495753751060194271085956583607037445090471509559554348171462343493557418047811765313027541655798046816645808506434010276661394394552982063341873180579925478758519001035409338631226517160957717220735917732924741500334065062817661066958073878015889667150391461745818865179186755250984823197414414507827231502889477076353323698755444093835220288213075102627214897501155676069931243867378640276395659808052147489029924157623096442871117779800820977124898039880304043098421313493784299276940554266523533338049737005394777407144217059436357740912247404349144198218183255092404533941443674428051876865670010349693492334586691670440251329690332315377300074120246832165684073976426175308359788007132538563285067136890702564805581973529814781253739195633031459356697186146598202752359792229671691574382512763979216710846677824699917977031872337866189480898757099496248125023778999981763316629325859464703915397949911448404351851253178817407871650471597619855693129605636054120320282716926394527506134051241968135157301916631193269512917331988676742212342623052806668503308573176600931138539531069454869655756552196493748389554128104873928308607926487138556322372845619606464314419822702386678718635120062516615435388261255313838040342850165940530633203850336639471448733347794402124681314636982263147451463212831676454875190199789859193088866093909154818356234348635306632923531034033088881248173409201081964299232129935007759603088721376624717395077348783857649030518818460588520576168664940622846028980864906604683283233895296417961641034388800032784591749024500958771101188711871802737793970183479020130132194520410759113286925252730799045502973023168648207024205290318188620272176399739501965806650398830557201835481439024436193169529936578557579905990229935650032844525707773403876327799158162749202926576851442510024337782691134199310861854214813786236417756295041272194054337438727787447820189194172909710426194860324544639683573034060744589170104216521379533318152773794153702438637447805126251515653656653285438080900208367640529622993180936901608489835745552376507605907258266548553815547616519370241364108556652789998809958868741958899892680766915014295998945030839908103379937396419037669053216804179309746396220568382652089338606031430495201980892837179339276999652657627312235511274815445346389785065771971913936197960238984934301798868790593331428672261737181623573619442818896157961974126173880787358728166185958891714785334106174898937746392490464741070940676439418410304174979783699676809007123682806015194432911857206388523834554637158107148067455003483527067794320524267029931449954028330645490621272307540647898754405327807406082800915479445665335459959526839348115606176236323567772747572029306085911374681170506723364322853406091995684544338258776099039935726530134180768190743383818545442215037906950050238480222693543153309571491920281927809793708110998610438217060632372944090026830813434293343914946480176409606623390091406697896457247618820108481453485994008901944265615508167955896622711442136869622412288321968255927682957842276572353592793555974687367023610183637586780595725081759043615756449617893512349220722469151237067900015653868700872868228258459664219877208261247609365410884207754781354926319075029402176400412260721230239819413597051586920111112841887441939110073020933165423498904055623521797018842682349972691173322943999747316658638191571463138072692418723574371324926838921722158182178634556544410566367762864194081392510169196590233234698361489513729177001426677266603238899025617918668123290096497829730534465723676876980057559729958064811337543795930946526319492560260109267809164843077292715908050710773308373741583412658166044268001961100103713911067313893079374839307714477341233410756491078400652147728582033010281730142786259083789075323877875614132247900647145906283401724936567519443379817561912164968471513849631763782790456403917077587444360661841984372210052375266444169544298341353853410840100049039200674640455516051092018304667307473721737727838804059933961212885010124015332384002159980952815126721455586613414879797641221736784958299274107840700309992734454038274464047286533771250870543436057060223546445567257745021585400381767754043870685419556068167210646114139797920686398676477522898211466717886710106224982091273791448966054976684169211959717067796444383719881845633210275321368485291491187441889580853790535526774264432531250570882755130937907716494272008888204235269845843079255625053171561407414371764386657256279072725528891863321386686195034087842789133582284545297363896597435717797316267594540372972961347266663427501785899054532866101708562877451285707346649924056676092751594973025803078211743415669817479424110259450967474552236612721406274451713946215676030371865496013928803341085980499637993649141493314030650387596291615287491197017393774842704310154997328288571099627264838620704768845632588280473750636767352137421388302546134604173712446598168680492313609094196453427702541887470642762040225813824977175470256584606447664269139782710698652622126551544142432346393774303595543247589956052310589496503261596797704213360734493377639404608910643410698203892862066261795944194267778701608509169619160223678099098570242037223569867019894316524738480016650264773103976229064640769053401840630470749830148794792306267453493707444148005676876038631698059425379168982284164285554379847845779415578672220756557591184350119039727893003898330603357976552993645454229823661701175448433343936720671144391679597123661289993923530169829923043421099536935936948091692003153520167546668055544051713629835935778980791572240265273106822299292796047735402572000152235523768495213013358974555883007372572791549052887486692696066170836953649078081223450763954352054598717452369214257517086180035027476720890605437265413763116740464899425426775852010424670109650389840303135327671798111998963637912125032504599020963268432887328198140348288411509325332108507919085309526537038682026836137058570539185244131713906825632787637342377864576760535973545978366357478714142202398262195711252254173765560627079874324027920110343370706200674426549021752541339785796434840348941061018057379860703115277649275399326695609230598794181669195226907903423906403021020016507054933646049444783899550347677342900871056592528919230452249654803480669784772348260307265853237719286839903277902112631065118035891964274706006790445999149455435174417491778610455248051937460158839910786360204230487256570508141817471421092152364898734804210496023593155534816667831590730258563959977206509619725302340191012891921716771175581194290432631596820406424065832608478334411952722990270836190142590090336430058008957779335361858825421463179887023193098094523116753290360710670796643494863548531379134220593399670245137736315242870383083305973222312456831943497436297248915285000240770193145132349020697888601838659573814976545385749222052329985084941156440730401290406275834324909126121038148480423345968551741486168449158960377682486153689827189020839761803305254508207161653230579241997176049131091126716002330760699006651165526725919387064411063076924428519630020992090522175330045761403904921601754383146889696118291649833175609438217018382257635286924245757540562270942424420981732313285011972269395874590640243968814430761105602082617099128831654480977660227797091844479916543519175993405316710497689921310986307092790764301055338875343371310063720122444935220639089558738643068834113122770941443458831335533859947366932153063890570760390325972301521784334927961008704260248707057232773506569987350321808064019212899831492533550466690660279053856040378928934792293898537509877329812555199511606034807330174352130620882585496206281205067209078271628412810886730269978218563619012715186063566096512195342371657039686614461122345272758123811561849095762954810162756681297151255648311375521805113326541186489367668126739607914535671021080073077491702334145095305629574844954663556083780210011887182672186198694928917728911753013959035404778032023660087401624901833834725442141429579610421838720038995232000160609896140632767371478099631185153204697686382523732032005926961821583916790373452448393209488569426251967468516078738816339797742619709651273218490509008913317300921435006756672392235264059479975212052230166604406857594653500920920891845696120659543845376435453044742496499439975616864545340089254263893669395011584165076259564920216155644106243528409278795616791956088907408175568548155765161491081762939371889587963568358175285365372549122345781975567628197119638277508697810298505148244738576322769520168724347475520816502957328107823853605907166242969391438830153409095137363842653307013274637878446356361989172897010018110604775793001874179983761259776521705298935889690841300660926760224173224804924106044555027074719220988402284926976128965820949555723353769532186439200247801079986681895077122713314900063379753527452415037359511727486678820165033468835180642078304132514891282901219789577272808251664470536734110537420711897197595289364694655764522685569009010013662630931301905311662126417080691769735022819277925376923426539717342474692081166263993570029750710686142257094810859304326673486360892919231762138329276609024940210404997374876731045197552498008160942134259449796601118041200306690519846590075803671060879762083281874752569105010959397590016998533521801948324549966233441825817331314703313135450578301666151870339485644894347970375240640908943995554016817010330423004183021280989635310348641537489486629804679007029123483790179626239343530865678804225842726335402572635252015042962602577503573939935845913342512645020806694737694253282618698676359061015247657280392251603150654116845276841471125065568373978677674282207741574730790016276652747786259775138505630472648104077580169009275613908305324308043835430044157598305138184536293591288857914240667501757443694829543172160887899293376333502113494335788525290426158246641315132085173014454700761668208585287009585170067686566010724784975688678855242933809592215317820724775806350390270916004593883541449260926791393491775574250345487531821360853145855591333092179227465722086826528423245197872759063727623534248313433096162892507318878054439617538421368151737889641957159583013275508716507838371196124327743631747245714312746378976892802062610198880591992947880302764575392735578547005165204761802848387078882469946628173254668757936115336607204017722065161956370573892283380946093736212814659841410335436475998405928606959145416962315220263713261864071487545905993796589576030147601466222121706655238631283947009287367973648398074024419836494525608388635874322280432525189046305125344992522045394575701808836536087213889584159202854485201990870763794036419042880763099459331834499932510577830889015162776047139985344092426284276377329542052187454718014969834566530038976609187380794540035383465070332420820832223922296517766981865246749828302077097672761665865100054128917294358706346655377558808311857686108579831886435600087309568630819552161367055252912865784837271924743746410911645877736677579651764375089136179433859030526116186450004576541826815273890722183178275448115442567374549539105888250120184255129486487764869737811109937691500146652215911174905528395085097050399181056883281669094932597872960397531705288066997551188602954048823832342748326104126569860691757392721236479640437275210593338271217073317758561507887035996312686660273727895029010700135379332323433533020220497885165279402009174887271549465793210242177909792788339761959836571653675248652432638244872573661898989252925696117316613780869908556271385305033769123658286797324351364889050260432627942795906743535292990298953722874450171284576189024722835064854468254781564785456718615573478759782709515181751255679011944972966858796963585834454785290172663358749712411855923324211285745377837095940594747887660070971878436546241172774632388764269016445489506934177559125387080322857854932724913744068627354912734161600735273118771363556989171746893885969380337205132979872109471280839656082367475918479035688166152673626945205932717293564155782212526037256066545418057698697512705527857896253096781977460919043566392591565772133839041573725906001983603116272961417641815440314495419846204168660276051739303453474208992740219834064438457755106397877587507737094843346046727680654778068077568285290862168828808929233731798732388439373998075228496174077963734561173105185770473498785703206882586324312801613130173133571943284083659536984367010093034148022940110623392647896421599991164493679590521549420764003551504207645511666454308281464966387809618480206028934906961169368229391249718801964869568359776880744274311082211219580426425088938222708598098928145586714667812845856128732592779871139770561904185794365520929532839221461897721223881878920984333658411635170429499799152512014558287279538177596516337614980701062160378797177723680842165381307226956818204252624540733521886036608633975047437342931455864196108660545789502615747460244416521279574248701600057645228577548398331887342573458739986539382992965059484819087550708710131048508669708406170422187145906913010948799314337464183885767921759162785182196249328151330860725069634842855468451679463300581082208714125857053019587334012602741304992113281169765688188157695980076549603393915726467884448334290913235323972411825438048774934237401580809454078433337103713263144555617017750324197197001948995320545862267787564918382165835235490445699669348672156832253831159851730605873182110029008553127553064938874669626646080014201298610159477584609507920435359821582384024334727703702866201746142096989997825857956090314127180155380364387423454030472651100287828376855713315095452005404028130565090136375228723576755877236928605141987605552925628837050615547282844913871601999239140711241615939733711657077204707175247496323456391156228701454188159719322889292182450595080554072274072098762391904770734460984699374325927868830801496642882644618803284704017306928456106449679676177110935506198314388532967714932922555320872577281948049969174014441481927900846996701562611205264648459764380620484956441029436460489942821957451728934756638919472039916046492034942919645935710843378924617852929805048457952329617884124770615896196775928268383138015328815203290548955082119280665430655125533568615242858701579130833475139668780974438230533750695928989833746340440636096874846101060752758913690631028302088005645993109321913218569794129614673097432420805307067512342352773080564045871766807345559915956675082597261239024053232400058155657453318543933146618576958329711162211502528443342278689514706216881099182613714061627191829557718706538702669913675995199046065013119771651068735503059427044501139095663361529897562978323481234880399570908120717239166893875988341788281609165640158854746323512281485852629116941943059887577879848311231871616506730597825402569329077775228140743751595530915570109443958782394038694882457045639274461280397077975954642771856143014740199311861481173159591751013897575521924782538850883246332001216404784159201538748532226767671089549577405613593224781492110860872185513784699823623685700855027364458178305288941832273045005947406711439678661940085132629656333683423763169200138816028487895924563765015649101244798707136605821549615144862433384545324699622455366229282771287570065636315666670827335409356610813377856128409082783942012565902117602040651625744405706119891672717490773771275594595456919981206932276495734066223592034914257716865801381235638170349767514086645675502014829043327901678454661993806057993003797588019074439383410738193808836546685661213846116535791639200046593111974491989015652929825163951932680888148436878351242171626387643611178455696251728148732114409365033455813021580162622806772493355970083224620633968449278529527018597712311870538384103800006098136574348216467391061024354510296495926605306749441897169754898312556743624155678812918044157552564570849127928769284654131629886047238470461039360867074457791765458882877744947756512505829661896208297339057406439530986584546183639576790234316705505481655875537479558672136552665643569799646990950456091084214101517430401791052398149524364143111746721549247782998977752560456395713551317435809793998651571331163015347852817096083910315701381085545543299527537882062388705812568332723918638217296342735003961167866033468308646381141651617285966302406156831714566133171336353387176296534488070486589258439703158933466842562495924387256022838508534587114850157618560137050592569206258410579015252159432710971886147654738591551438553997000587142190698835736612551330493347560231113652942308987491526115401616161236770390283432135294418171790114299603962250359937115682485874756778006232302103910891447683835187345830101900508548139403563527901353515580654975027475515568482370629473183915153657352057806946010142110727700341438123238280648551416111500928078073446234777809774667331511510347616046280595731130413169906670334863359857160180412782945689082799841951591209590805460374599097666055631165603469625262630943377466376352771609933469516990290445236919755509874933099706731549596833649136686897227880264824555617454275972814099619836605301482208103805020611159602926584855011663240799636895730106243842269514883273901030828239461672385623923163913723902831589383123965406383866003736558872236250694967070088085885849036438698159033550127631082091779348437955605124804580477180663122169990257239180248930554764293971598852057394345043879973873507826328393870019710313660160680282012180802942203766983180732262079418238093945246306879607122642932568558085843690696065649447584893746367047698727224245452640519833749199614937073392364287374526906106745075186157497502973858008784463441799061441939954240747899849396797191346753928871245672123139788056447979725725902376217965843356907993777161595645266622418229338886857781136471906042115326316777942943254542632999980171810518610094873118662120993682984072514818393006976882006457228659808782926467167647392680372638931109116352466202773264781543605869310996156406467971289189080835720569983818666720643579830327924967591637271280172729416655337254419892674883660311807283680627158589502656155622898915044854719850045584308618735483849084133623730702771845294483433850270626324830879753336893196833958938318464464733215674152388993560873528015007339090126678574945648847275145956167803115557091591752705758942936376751966957443756571689999946305679845386494689180565353192620265379578840302031531503132849602593359362391610366232863927872459531980458974484562082223187387707358789427505654866834102167437000505606529714107267142898773820590712129958766448215756841781333560307364588550349774011552788558584996567889481870598745604483289124298546160981099563641376572652843732746922491614014016658273613880446929880155254296156125468392750091577335712528538505250807309635324204562707582097275187189730191201539146901964665690211239456555970834432584105418736495454820239208495794004170548535933468291758959380502811465873071558658663848022801572014188079299963638552860806153807082303962365648357357403806415375190813052434341860399975722835162675298113441096683151430185871922058077561040228983219532573406956576375893144688567669899854610578085648196603196067564420144203409026847829749529009571618108575160079290296623112447218864878863657502784001386999706456587003140792813896454644726990050359018928150764111151306260733718293480248280775768377641657314874541830767725640538840928229864859096277626432514571187653857046760106922063073258059355641636559963328236519287498587465109145501357870335569457866391034843355528634268351482490071659865908631708349809184847195070854336157777828395330575486498562547704620906401025274403600008657077267616086055609741009455256376773707316689675584708661909959392658899054595678658117391084339912324725706486358700351997182456742891406968191387962002551534106713027976034514804482651872989509576173224974886826450232798713776038477539368796349817772425945821878656623465899360924941860074779627515152524264765899466660780539323727422514116740394596381356295550017032527884344866304772852999086497794773961971630355877031311267280163978603531290708145441243243312050942144984838337029795193108881457257712525087949593698950420035769127120151551221774351166875950728172610528527279104371397335505114088153294552210497379493031538603920308774420813406276592959526600301850531040813655961507351479489267668198221908833531468058960290241933716843197641201995634523115319531308384672957835608147359036395483315442207555984506685271020790162074923788879193679073949561478924567687782365770660291606762040721223050337286426040546402855085360260130121796124599687520220292097541360755779245747523603483728507928178425829976961649065325435077932834847671521063471740424346624637966631246753061092725328263066093209520453002549373136228044700366333491437208037753854146188439871064867372966676652193366038573873483836097482706380974671239715310803313730658435880381022986251052351727138529977207270984321027677575506240556247864332726233613994679110419052701571484369402340169666798956725068502863527965654293644221114137592368122357827407172396281147060758093799956975997719349193225838512430396852219017090394625742237158971093213619881425134602849680486104014943075906710713810389938578567227517778993157006648446742666166790587361036552550318819504104473717934282012440785227291378428118027058927168125639795659109297382337494615574273000829618697645142177507151601445669053433748586057053644321464627147471950234701954926870121873011176235740886236556802801114825427632640908509240776283614398119436982278823739397887786677404151860996792335730636491110765656106724033561247401710551551648305030625361739832004274123464723036901578822836394417366471603750200190292931667730207095576032997652791672386768412707461761654859449060522541384307027117498285231435090853958790093008700109410167650320310897831210403447556321911964779800915787086466540139722819858570746726142315947221608552462035045866945732156381032742333941336726639711405282813847883675385127038225983887297776491915354526703379403946442603475108324990854784667680081999716972078553999086085896743542112780142591046112113110320151221483100620859384719438222765612083101435049796618655750670709914391298322950490329314300603172233417313359189605462835157805097247696025601694832067724721829135086887171013581945076017677248163369612829953293360410463936262853090177208104349316991391045480854916121768611168774972727315169096574095321395353327427071852988074615807671748216797935329694603212245750775936718824495029758452312981279576797189443213768779636136349154764921878628628657941075545019941758394738471778166891938148435542778587487361169757206106425094406983576683770073860067137904240264249032109808305339623065573927000933264465131014287503155694514332750077794797142530780404537875792617766815598618343769414845311123361690642734552358542262017142327047253972955355724947255779498702054017444670812723393186716665211105671485355812867687846852372621572767424014139079439012699398136493634852273509099027788325703455414292859703953163186040932003658035883509105822349370816507904567020956016075919235010012835171550150979032122929165336329515504626627822533951078660970915957637086013911622179162060114574903723221554538068064311001277745562796218468303462987272282262501295384185760912382420239034645456328589167651734770510197870396784709629069676411043808499417457518482134597950624488603834067260851863504827367956972579349344957866297904083681331505033551072568541507229772912058066680260054923943988889497691782827613531640231323392235236164817816065256704963747143969047050086855767545288360704550295908358334650665859579791436910175445262406596299499106335812531502572028414215044687998494017749588897485392802962666062470586924008322150743094728806337145203150259998175602259876419322073502967818001381669824883017344809880147007770856303744328919018045613650406722167822950444285880461929798267141829757941021077810476601138605978140412584313008825065883285195102441465763707775873006526168590764730007276965217176141652263288355338212974916197341225371754584346360157351909741259864192935479413544471499219480382259009585272935658153126336196687498909397121354363004082876224465036815217324012283613942977801004561951254741838551867133484068899574088456133081790355086895346099106490201614821707700149207909394629045312994294806951143976692548862250105321435384122921447792043836069908242796375022570780606059069688146598678408675022714084587374311082385262344354195850986323992468270928346494353891576133768960620978529776472574543466566523505050899239254640659150441175413777106755355821042143072749125283882798985904517394643759552830182853773493794919128316569010074728067311569627933395508018619918585301778315539712413786553379977433390699058106837436630836267135258853643557296050736895775233676042003325673961782995914667686724915848273901617539113531910350443571755770788850151661629654254039671354995575913721004977283547750207998078720431015248013976619002298120675071838259901907722382817524081271096954223729141336445495337783180719264306152750663749729589889260494636661615815965378119149816454563479247297230399539780000242917231755750691638476966846866888865516193728836563410114918462711007528299194530856586616446524482532737883510842121037605784172334388281796694825346638415168012735865983181673650161653562419045190713694273590975357537203319093713670470257735717979626362566280326374991610118605708105809891173826426594744105839996315400538542547699571899605826163772230968054549519314061832627155410063417844731200493069410275807356672820595203152755686093635130608987408735034998112221516309399985245829873194374116772085063847140597280015466810699915953992713465953780135145018786427876665773798810028758946392529979175789404217844917357107461258080442113523282531875063327238717256159946184884792982135558938153767788109446761852024227427069022224985720359926883905663065407140430786671873918915322011123740983525842644788196572246227160409406270521092357761065155187106075538812626279029992913949382740373423240076243026324439006471021262309168009031810328345219805108045370978908599116957550448317805041445524785763244480907402800624458532250698094178255664234214473343786237444554683655478019549507100452744506096688757289426457032341078438019396194431701719147983435635363858045940037844954513791961307365273918443478122728104521810374334640464439949792322393676869976248430906049408053230351375759177784323907957887652622195126477178414555441279544267704131302793935800546343270451560806838314953576616291099015669778242536822664002017299670455728373745690124814371032604484423517790666983397923880121724356016376198977148627286888680729008881125189924682847698927925001389615325746005849395707766118522303224741104785452144245213659736349203690680502413022738418921839840242498196557603526010396735192640610706055161835237673791025633671761366676762665841167754521931073342073992284793166252948185185688506225255062164375645487222192527661571759147993982291780473358670188824615297126184920727271431089179081375598257681094394611330337090197756095725813057162472645206959884873094598572672137380691982816474486071252931653919416361184927639307844922174247635225935766671101304044000252973377106942852026514628240552367088641197330671974265203814352417287290158008265386700870377551056638067502430215875271092276949481851985956728356774487208168309481173826087068174999488559746358199200957265095905271073007842315980840796220584305224439956416057958260880157011857865570818055267445641516682960799527309307089337565818687357469571600364634108748050314253834610054464238338328017835121388498130358355830179721672501189912469667347109403864773582480118973343460694630124702362138445144057852444999001103472601035101320030097643286474402098056956941221495832896884800976704142975730071488926830934305445261373446732519561686735632537546278824004708277503863390939315408571720707075321754655350989678483910243143591013670946540718123225706592686360371277991299727486877821434283504480453113112162878835906911616131946973202023990280391198587154267155195640600798477550830840600513837916639355386677024497611233254273207334079214895942556764056404860623340578986490640851863926295481881650325426328222806707917186318348404901802462559608148194887468675266602274545846436680896499600533894977220879907157752463092587935857565924725784759937708873218070965227056214584678774780627806228037687961161617276268709159218843223332020910629085413418866482933812906734060351704986814843058445933234373511758360513287465371744364147048575915241975471765567900631277001369582375747119661829972724467545401874768068925182942820252150644723339276003996481509766678493544214914376282939762163032477898331058707809242493794659645112742123959778321523920443794859971014951072992818319244007479537943026787580555898762279456489655954301501103475434602881712254296879826948180556518989223925142698979100527709811563456688248772997459332004005040609877975561739982535901409229169381706927864698797002874959667811357347149877079135604887443159989163384441771020727762557705142362933846882145911330443756160682565458459436491359578479988050555475781634150305598318652425588535948308095396174326256045222652832426399836639330762805376422821834756240228341088486103072960664867090858346176658056906465994067038965467682867993916920563160539047463090995030656143978757545209602637852373889766520297190371041751962306870346371172342945599817702864020163613185169806365461702186954463362228307288172868781102097350653982006269379529500954111343370851375284576816936206226085809266432909617219314926258867019138557775580487212974526085598588239170010181383026638934468311549828913888979862544340611229083650645037310846023979456590419378433903392183706272550564269437703590528729538211166789740128506657219955585442453458319928980122504883908399979193498761370649897885919138440194216734040985905612869156235393277918836042755996572332023128203174180110352618186796437214910136903663137341977014141117158433843111191075802431537138856758848120592863317215605152874271655303425349529662437524533959485426384286041845626204191060612158771867728877354558471486245064204279593557472475314623718898983429387015547849552271956072723081618883622748283155024944586315980818504607535666922544306008604443708943021869333064212658057030671117539680414332542382184011954281689147466411299429176985236644897913508269602675707013338861329069254758889989607910387156447754304029576055712831793894876935640403110467304678447776812598618322696330608136675613835645796371102835502967799175343213012539704356962114745426205174462380471477452992039395740542626275876329735381680995648191709868403590763381927883793235437110674584836269405697071561255619646046442527014520055190879189258170030701907527141666305486826193065479696337246850190609697679693844465977085733964283466095872615627115634442747959525130983239270661552013689411526909411037874816088544307229787950215508501630557246605212054328479330776243787994059741299979617398860170224931902324275417427216410268953454618709016620189544174067927757574793316093309923325949504034051804547359745055247201795122114191776697157298854838387647572856874519125789592027388857139913666952249260261865839773683633938649948857186462476793633577727580103144587205988311935377462131292797257690660578396374464410351603056453835395332752785642001243137103406497279785776210123115018120109907464637842206573738861601065441295262744852386532732551094711056511211261329199868019828686852030197468593455975914704161805817144632063551737806694882883368025033637336013249348347650891608197414994745390659609390606194898964969990729497839973941268275668730559457891282293296175329094921496586779097419443129002994331367389816843358855047152563990857216202305202943170160501117620120447199467507050215487675880146353360084933519418494236234398087921824484688040433022060893712809067097373980259422058982375107146487090412446086251960169373858078087187779980571883900238552372350095411887124875410010194438160730619971620076635637192341059766592209856504449358760430444804752745689520444771319845463035470186687331381514436156901947494452789551571974885413749962039599507341197708282042690743195402960910536129056574521214237834381004121374881218074725155734611638173170266689769874185537382053104253115756425818212916939261531202318746163149816868325632849941283190230228374472169901762244620872072954447307079625462894762958188513757950467247482829130404234355120918956209123322704487441520120249320018096328844299395394548151026794621765415244833132447231065832290180444841189013523807247610705053329696676343551972756042863247682000050073025913191108733143289193161741614107486289629089596834967537053571831779961010207440984499930767296666686604093672765113195005204073175925507844566618601188055819347859289714724556207075900686051109404315533918838530857200288147749966894749257609504452494499292402704680325236956714393529457056843059631772147087473196521511760485027820623912707724857240647847420220476937918470210747851702443837845251241230560034305420853552574452736161982627853201337019153360091814269024200131270987236420925174701575845734495617646429973433006914825751363346290846159331389481445483071202951441035702218881968922277593790063401482609083410110700862096661541923760388106076889616400332007217265946089109107303263291913786141940426891054778287135175195084325480287475882068769532495510848990181961627082262112856771756552097092046433429202551675594992610898351097546550949200533160356887600243454031524775601735240872922170776469379155099900733518656063773857811255015506257335366054587667076481128933263236577005351178383555750789357351581186778380857872057511598622761440137945859375169153476220517434597336232105794316871371508809797887250624949637063017946352155623176276736400037216205409364091304652081005216289761765082350930415726195053375268185865080503776878109072123659921564461082998619107781500156051951485508432766774896708179279193658152360264232433702272494970420725568603465439773617141029297983873131524213798765055189244146289647069818544897533361926223849072150512775450274534317369925150986195483769335339904428556220102495636130200439607811972977669165383964187407599601783826883566664434678667364950864224764373606325640765891621114913499943924773544100107637814269735384860605751553970454967704266901424702828838033970122922823140333190287278984640331517771804300459544156003352930684925402596848171383636504708211397263001528368814784826795132482210044725444253904470863465843740591880538297484136813546832348061526289794912131204427752210724984656346992218995834397860622955621738719833549456615487183974480234447724977719667478488402961585826143772028666428639045374429916640959256891603212501581642505503643709977582228359524081466267799181244696946304349256223695688083578206833995737222653279939697926232166087860869469568398584995379194387441459611202768389157147532604099495461251150188709705623077342337492437623626075359523687773209597152612346801416380529858741937933097177233616992077753112016954781084951051839597230254807965388544665984088882729942348945269361003345676269479855674627392060758569497399888899234452334833297429009830742202727719201194285964965928901524430838752212656889056170574629909013884499445568274220841129351252766995790870600882269692439443171727828115977194945716526997616748248766456468276500729779051116936171946618791720511236626057925472935217889161335785246822986237636238577382694526625237808877956381011868390361894520113166864664681492810439314979310798963001340150087880062557862069588432587526080481964526813103807263936106808512369320934115771505021519913504307024701248095577453526945312060197924573297299636823432101155832089614210620676705393693356801986450342095490192672443076851168155232759205587159242175967974372609546077118894181057170050061116430716615817467041672852873171445864239468743613619951655689032576585785876366020639586725950993068616479379009300522495061313536506583398690775671189536829416092196899614286315287475658986689250649923873684702873515520733436634335573393003468789628449755828264955158111516092977376017140203850549204450513277220246769528051147635285079756934128141463582807180476735518388574975739393245262116952152266771197224955529933397296048448572850228138350127500543318103895672253039075743207875327853901855861491688977357842477847479883237589704013092392044557503866250460093193031709211606817747327966482891383393275386900265841446668486664157478971219057535807252359260891664366343754757438009196641105100831744332142363510545644595937116378045764466298088326695960224604082797957238528520025125463006853404695843992092689315052445820738241235766452161894045994855805685898773664957916743336941115304162850432240788114533573340267918150825524105813290406629576714176414858573713696678659141016159951183017084671423342364746064249627130413947582773382696554864928213478164071820875799913297847894599715381038761242181621053420266364110031966894119163928003241348074734732871177513256632678256090755468917336512284355816178622561992486608769991118026505902142970908844881053554714518333965957664636167742840844279391006997134006154928714975400134278136350282114685181267360916270675088519953527932174701653451358146078126675717968801412050171295577115807690331227727496759170226501043171666627211191142821296379272236071947923841367881596237922401313908045287325591479985537024368722970268837969353781675491460715779308174376181864808651146250686132953657508461256367202999860995535117593364903469676660431310959022512138839685309127586790426822761524042792929274364501585887966126757189559238321468980483260631503889180102865008812815848630318346620839234874611718044366617056349660364081156902810324757259847622308271044633262789266057530835569063087166177376186369147695741359897243541526928328887486467180895078386329434601572972562135970329610953414679774026812396516974449496745224853345356645737794090877937624726221096096159433620782508690796508465322979398400074174795824265296985269194613754483917628094132197206811261680981167927496251978574396704352404309139892421682100609090849735839336082377213255789337003790512566657141589036363125857072333143387912127020569866896374898907410252695257522425892417805365521887190369221837867258399735573958832818359365133198028901204345819477631816364005863136700613696819977771838337003337280790623529729685894342692202531088941490084320753487607894609972956917792367763293625410739935524266072491360568740518087148536985541813102186443740132616874707078649852421991402022971941211738463044026758198072770266762560195677182191501610813481918462403830223988198948145812068715100931176910522034818732854973547583060204906386119116649834648549247232525834523254353951026591373579008924290473902975595564600899102816472354653677387128770680867560229359113524981112019649755680736622467785848108811670688595328404725537937142386127108485899733833852601548903411982846224640958661008793342876673640589788987270960732374339850786578722536772255821208210909066084741870939372647137852952880897495561029676532303479639574870945817981920780587717009084409317212891516575690833226564325187309472532889234966684452038908689318985306890898360255783836657960777466729048860043468697509850045132444900148331687953345552335302498361405554557553992357909613389302748545297353048780336687880318115779031303434653196684825376660980136211298042198041230323270505922489877912356978141640119508183523584263472070486133349521968450825037155624612875817930139048751411419017275419891031208684644439856737419837663008438080458385990138573435110481359916761073139463457655619783678705959976062545019641705495059215021412394442438246359013979464967962595326167079062557013054197369923102524462861154134731761256642881481226682953514479853349232113534676702967184104834847762782482585106747044204676294769426501464396411678633912121919012276130834190922540049417829150889107264816199088549035027658112083368032282355321271869404013069687570159157037447904096743817348969493148471736598833010957545059618418973561151897535084166362930545375938226792686448317988372873938590214004381784572569404059047521165076530713337415946759581144112416132718445100160024792699454839304783846441214058510798101637859465652115866321368180549693607158090792236550975818388316860974865872968182398776334305618912881061639578635224896701480375902059523741692268135762956311276538142571372993253911587805217159575394694311798890178931648120449169842546801137150767283272106583686854637411117905291655035872428531410865978318527443637937754502330777061361453572650967332032609445900716541110023079471498864819627416078888847445426519838497134094354329484842803982433660263250725181970294019337965982741812734828843682762831737736118104446677909254779588186181587876399511099957930079439446935131062218396409428845534149128424490370076312142569904335572153680009832265865043148079039799115822861626157475613130465488065631749641302614569395541087489363469588501170479832701571679245871869430790593975605911909132514361890263612475811233248791660318404957297717197498215744509576897969060781647064305389621445472286589828602557715680688200116057209011231112682187275590116061973550325733705932480715048875349509877627434247993699450083707071872645686010690528187540778562330052760007519571902870915121096697864590844448330496109041280017946354875963980958377985175140077880880003014595764048251447299327743947356742094397079237662180006681060387232010738974673748332014424484596485965930956137127522067037339949381599857551246235285036023706568439182554262638506827847714142774577377724472792815455700934772423317034171561813496344368700414490142802614248412597289231556265066081076168462438488160643751020259461005546265492451284936358640401839334191445451298793547104062590632387403287880016589495742326372390277480817733094532955897206075085832026864603517811423755469034821652946659203351772764616673395621659599924611135893384445786084252097644118467108299956751471773121177470026887876052782984390740992470463312046623763270657583032590291858857606406602204399834741938074960271629846205300545277590092536136530011027228040806663503962648034120530077486249429655341322463503690871437657494371626486905000304475987709429560970629360643549312809548361133752835379141103393755031377638720965144141500373264074713890941400903155748263989275199863095770649570586127271499708726187674934985452998145524116883121029088632639204398567681226392465899140637850686700762010473041644620934276106154944231295398430830608267478073209167336238389939807862137715432425502081653657799324063693673246453307005942213760335952234646496073398917550755904130769148853315587778038356283387497572847575738489529508395714608123063511984159610648816108318100935519838726338122299373807400097690845754630197803536211502117811556187711250797163883566115293341903263386628984646343340572890508155187365465507306154793171014134609007910384544442093318149363693023708091944228605039317468902910931086889682484575813644665034423638018288639635823686040421700606038102020210025480580707611226514928744183361932359113889490409057365704705797819624107135392365059362781906357987124706270747673011709624855438954817276616427946965580579361476675660029198132242081548745990037711995666338473566566175599629937601916359127830610203615206059843875182464536215805520192546263313498603481430646866570777207753560504456879408107335509777881449915118061257715529293628016483252096324295242255092850546973445655306916781629794095274081158681343902114483611998134558326002203005794278658521959674361461870064136576790506740508555749008823546088948882051525870321297801211074478690563786191648795132235372418632334340217015951561378817465137208835821742461111453891578974992010825717480187198604918085134720737086592553163527622493543371023784875722601220556668443226984973634293479464609782038535191988532522863217450003540427830321639736177211034332251576236288570310481284129598712473796466199250836878782164907798539879815234744596637845723283259114223666627540077788186932539739692308555815467212352849536634211059817766516809433187331963588862372040837119760752178286051966567693622534526420048187713375817541226938931552671906595156083507340528681324436824044847979403257845472160112447563732660600530201155304389683702399695300008895979707628428987553713234238650464207004934579477575456573270027747930646297294184365389129129798498340599622539889442101405054545196889619768793212204492462249096464723730701140552607554992583070193460809266775235456241570626525780065006725186378338294218415465307549579421795785701819766382253488685555925327879375407725008384287805257492809318327275860454971108961242292825771420822613664584833298381579289463861305885863220366225919402056408149121126382342350925579292024263897085973422397938173129617514196655900157787842565809631207909281332813762134999018543964224625213078279093107916016883089745072088480954855401391368374615736560480893162679244183991335634637372562750991815831682803008979661649647942964091795988764711408769818269106286041822593394184278095810030173648510852204778572020649249100186863399452605917901426197012612301905979941904451163877170799816329039823958021919942274226030246017541016821660875219303156743618701198875307794782603941457866143500457071487627859762785443112431618260363032439677302859062922406228803473256705255300356274673795516526019823457158234339409948649288341044144819646026896695613102927803191244037901136669468504464606054715976103780381789943164424149641977135003568741987373483354453972780523077607925679356834226309929360329542824611611844208638016198968403086230935812486500379839326298988796484430755341625964857102965844004632270339393438581897073239146746360293021645467724323892875370011098637008038972185411405396230021016735668504896768554440275397220391927448211442181767899848397920693553956224541516492423487436842579660042432078527224820496143347062965707993278579421057431499794267870059760095885243667801463164868593271714241316555794427447332412111994164503867114719189731997698612818240315475451452085200428818853885300470489894451138067495770134001540430550230635392047516992477860639146132917549931961241914474969101056750049469749284614962343017327383441880445882580427294773683511628597448438851971872066251113519194060751670613650676550103470154373976066092413410597970625728753602145510051290832003492751998914214251561464580354497149726487942728169615284742373239586168801112537779637452373352470984024912208200370941802358899021710361432711348811547515075121311533056143873317741358745288407541509276833432529234428359076252981334158681609777591546565557998271398433713934285030607109504862552804432525922970629200044345154959755799094329511208088464063258572612636946575458199273462695801290676075115181503479951875518281030755032486426524950671878591007347751229668536327212471777565037239605394461685327197624189447925440819328481713866559237128802189057966893202504282846745300976354711550770098247258228710443446859180718145056261931678458444136465526044290745317274728393462601863106182869431857537082765753331736213384390585336631330247603121720561100092710948602097492562967724540502225935670200900268258616824403051064192952274529583187185060123646961424046077994568108205663163967859681450614689422926273957599315031402924869591575397573182745666079639386138480916050965935617471912190978226164509419274616262910000306641147892958018503814579621000476605512281908796552479536693259338779681851157415572840222400636153154869609119019320108165192592474856517864169705617012670991519858537175195826706543352529084674950652871807252435629321956363971783961367021365984229574171033114532194716797315761394606941538569753112775798525655369655512793110016113564428479536889937158602099480496993430104381048006455000661225471257750031110665889970869167915675912709878988513901104239034933244722544148263710886491471629915694414573668778364408126007229590564765518650895194853212165574703578589262663026552759609883451543788499865209665678054387400580252876807698127606296533938552151805926514997149964826942400647781776618464082291576403976976095185227767299774189418143831616242027929168257325003871006521885930072871086232329335911212873857188950078574637314246079384989042471465734437936210753975361099773635201840605876921867785805684321626537163009356474885595102406106752802151443363982212305204624760885049148553178443687236621646717591622541799980736550631146630646387376883855432003541169634175978874831532978139770393416865544610867119837264693456297643988845938820037559290496584540557413172949075900654676285962060831847880941305934584378002793746708392897210522114959748527826306539286682353094600704867766295531033198515739336384505220640174977245184690115629869510890175426651468871502127396185374255528152730248589607858305307770223332487916662541595872348601203591561126635574478885878448116375426656254037126043277640983564673290486594896838578270850054287431081962212316881073087515585825873682751685546249426012522082941411940976019518107069680086917964266945313527706214137046909770097422937635554940025644843687635011112780760886198124455910766634387257745439263277100456171952673301514675786853879070248815997582758279985739233776655278237870150193947074121084925235188372055067452993139353082339326148050799331994450359774866662062982493506342025109316376343434511268543258406728396359458202041392074675450389338067630141858692285741098754505549780397943055888966318459177223953220985193269671416424245102186509262903625837180365725549936143522507439582503574045955158559793814408700960311704323577248630589941082775821191559416755299667169136968232915604694615533407946684440009556519070813355685651817417161489940362547889172243489202635279822073314990321374879094009976670775969271242948733836842651414932635225590339675737780382369146815263718934061497235545689387745043952707108033637177186657256396004021459691336812525066590936544753178272152619499182972992832482851768097308178861282718819634551256965850646304407164885931544041520147962548648817469232069251925750339631329329090450866417417378319948444481552047564896325008538286552231918229485344067830026869512315454299596081860598074117514743988445971729333570271701407519844928312923281726364550101915206666727914389416135677351797214231409526988413934066078652654150302622055569535713904825659832589778851978773855124801176456340976841142042396809655832220101291669874885254975410178113009846612736639530729623973989422122380100566935871467384004474404447999318297244640430480118161850113805972456649760131274349373896896272412542108428415803693088714821920484723653273691836155259827647356397285111145464893704038006271133079474583270054195376592886015678751905077801485206901056650319522009946009749240511901436497065766445474692682487049262458289824249202297759602021045418654942850354924941753618881274445619779867117337601894774601638574158732107711467938492863770252283003177184608127243263334695315042538129815101076453590671386008551891932390716425893657722281095126857985339967524596729547700751747435248855584072079458652758245136047193609830788739819483030338240950114877704236101781450026885433645555197749674822592989324450990549253396861804704584898308093049848867508067561508783934709232508133958475759173673967570473744701790989419514949534275349479604866011176218864403503045911703374136622418041682839540557714890484046103855311570240627841914475396739839331031949499948422682373254843591857500407760684325525720668441571853212677230981948699547435122254497313702337884269365861109766946667633618735209803473713082380997409939880245871920653225954321923658619998443227109976409453419577830070282377882672461622572988198751567599153456706394670511168857598641840246467220949772967940155217400722509296939490242990470748584011178372335925665503970623930930102720566598991351010767775285779042698642324235265372010160241391622114725983275012664616029342503704167158701661987984940796370681870135586271519402316733159932658261527997139622149110356210553040725840475690101970470069148873480934820025884802844577606076228005318334721139663570798524278503775396229087867793990145191950937842584470832241393618905416231241094560258642661828871973943935229389680296462715501589071167165069046101679837682851868696134790156378546894499178445534836130062900213669285948795823232127918987618126360501584003920818991260811326774419627079427687388061189303446759675816460475378953771467962704311644874050947296882656716533059492777712124676128596486609938872298176965060740004152990801454021165317545299719959999570673341118998093279092530212801778735299477811241579299122923070471080839834221636480302343157156695344489006189577950453885094868456336075212456204806858990591686026287373744434346890716273460840987895788966747544301723661422676453812000689286747209325965547712880204107528064357550102688338020943394424679836582709149437871968516260359591641983410748171140651102260827232345294824754338432688383563995115873444421867149881919102947822059459873801508786333373441497252431594268002030390652099563934080256185831628337502406335242950198116572132423294724259011333838459240281040848008564745972567746796658954932235230601171341572534327746328305387467864206178734958863670590307062948275269998873432980292983285790054897044323647945018926461708314837557814036069216552801273596663134685243848479585182768464502098151714610896524579417328240310869747141398176338206967451677984036426138518261973044408153198310796322641664655853136611284545834126539175926874258001716736554034156138692991395574764480086809970855273257186485871218465566370140115832045402295775014412061938572910302995067224906406518022791761399518068156364511479071044488806336694280739291308891906795758634218956158871697847396158691796613405527045565078461535047900771945527692429784183720605884729045710531988834186325605601448832501896891426068329224619438298024741185503092213071165850112873820008428871371700672389073962055943345720348875664322628841531776785028454060616467384744086037886569778620487868943423919560830796966087753692551005753137781990422230026013968381338711086264460309656265540002308088345304214051118283058161489877655333044931606547183330127026027832819159718153516610602186202726015615936810788934991032024266378600440562142665859410646172305983008654526949927213315324886058130306616409628480662991162096391721383752247430106488405351323587440781087366124769063837709723020232022273406531507536492360231401564776634845624653631217619111258931525192097363676948349829087916711647573476249137752733462728828612639525821644980368957237485017802893860681714964622455428297749934990217410687392281969456865809083795571057997216191676385809335700309279461868268224164938257697994734399626679305784820204605990029911123471093610028575631117663473976777694625341477388750677112223965910944433134005755723722679933157784515383177633574919376850815816353542054089399031882108144911864221387313691427447134863742920785099597983754878622720706053848242330862493247088671984673530400814004363192617435134698434686741407559800234924451543126030850570999632774922102474543688501074087629279258599919625097624319890279925643027417651347308752722623938464173553212759916419163473289834340196122671977101385098263406818577323047225394867914413408747072701853994670167815169569115417158631136094639337485510651405713708226174172910268040445638714659745479649332671456551599586773312741996105904594045514099318011893106269353233599512606663099776272553144938518391682517401852846113337643659857496821275954854845999836377575172441922087531634759123929431596299505399076683079049301269990230855160401640406649848133256534570244057148995952714385700655861010607362515004954191186476292856732092396647234271226323206189986172072957141255275527802354929733455857052793660459460624516868583285783451036423091374720338447077175892947374334251660716410840532287019190539409469985373167105330430542819284703119278075676026093613401691241911146347465697140109671543510115788860695282111319224909712283703901406527626051713675957130517659055777681024094898050267388660104285947124493670504810859964393351848250923096286664833384607209049823368132799641241876433434570830056275594449611104266172473353943965950369372251449931143844138258168874121057182029857976966207851729699237716744967486492995929700874264864341934587197277534485337308484887514502317717054853652315197722982001724186158237973096389687304727312238118397703425571523586835297551664875359519461997814413133599507453915903924259610393205549804135401548219539485269629027967801317458678759702731775785546694962267562711261754494251646449489327621021179057256912783721733972299173527292088461618617043727319568167677871200188518442521970941194093183165960996518924687505311285086193213524435188821200041989927383291833399608378427946778902299241303564853360689045222455286764234711255437456248972005159414239874869131422171099237947622466497458260916465592828834906920830692391646829893360267274330547765274200484384430183215432642364961705077354315140088711605372673224069167889050797985427544699021668547098950634576965746780190049732208590855750725325286884739567624147989403028759429071111431015462236319290762813818708769308580137010759687660215467055848116579139207180774860064005476158262719831544976534663619032365097153150007094037721835313501842206804997063944357617210367850885652388093545489706299180758343881194584336067487127119159391292594770110812437074669458322420551199286653300459946531172860208005733551722883070307178575085890986745764173931882205172648626442378355327905205118514822632374250685795214084716367272149752867259814103666207440661120567881245772079925191461757599089426401756402343052733761489457990534862046397697682998585340971978045068615334373914868026509781481383017441056487553103195627543213821015148110161060141806170597426251670992114063964392379860907492862532570161979639253507520288067600395321574358061779488697258573851219488813691620673493382696016149650392997549449598880907696477388382463184140337627848391677279026481286880032289493364950542563887267595290714297668947358145489346189813550716782192947332165041913684975633104352765144904880300141163433984558323896771564732715409175046680603377837282075933474318495229331424500570684357571565677169459877057209608839389090950957068070893182331114783577952669794307110667732461767869867797947352288557849767906084034078799222862294820503139737040662025583293258262740742287589151572027611689541600848506149897709970947116157781870678109478612442367045116972965870895474928564967671301210704861644551276616235659174061034737187166431278360442634897485923408342492550557329279258024142169494328962996993261269148369515819725594316055461120598368618372354944421447004277834670761360305070496306895985330751925111939013564698002161905363780880289431808486509819249971918197603832612294450882149157467939851753821786736750401134093268549371139663791307458838682339498063506484631570194506185445670810676307868862514508677019768243257497962311081166683507705346157400210667196944990451617460706616347577718215895952485914300509352878863902654986621883415870796463389708649987756513115604996015540325890029490317039386506160829832666023948373617254630305637081065800911691868629309966978324311343881527397127081062710514418222735789580428636738446013554231701102327082464005538730889124906232186557390397406828691020051979959735047163013429312663843971524387459657520057840779585098400316334230637206944570920605755996276796287940366200096070345352711235201296333180724781284901062904455774196605565490775947072497280956960187104861823592202637497398189981277627903883272784198297043914996885793914194450504622906201910708470879376694068885710157882687924251989702636330864051667710567539301585632632609214617628663185486071048758066385001288130966531693652504439436014778405975790573631445774349640762935663220726895502132067125429118796761362903717397377977152228352046735148774053254591481773362656957573021686412982324222473437500208537016015069175756408145890555334995990075458635211854613439734769729057032792020266143109137713481808825127683778730210137930817102312310520270351798243215732999831439605598183178121664668994911105172821673644320710854892395204999601946051735663751641791409815234094863757912674640354319828305150602115898362658295333377797867489341272445235610871032107015964028617515427275008594353288103504879832372596661562612481077997683793393656652674503807755227404032182749941358625787783199824515994326379941046226786040373825010884547793798603206253280484574265778643773915473962289343532800142991443823689873949327653005307273774674528744481207518008712883915605203604391379857648868367765680153271749226138221411866543246115879724746420834364953695782416676624426337684644602042257314912809726578674554838650333301062837804438819781307721214945828550785868466362473810512437763563215054070810785128336011678040391885733969325455567439738680486005806197032940339969917037537990095532589971829389965366260379312204123919178594788842164286993247930456332795065599968893337856196440083294778725886924399837170323409909803679589031614191880577277410849146686578319360237386720654198686683785583732898603213613185027012768812813305417011108239646006852240220418054884509425589662640942462289458692123625358418871147333755943557496225683698393504854870064151409284317357392249400208869490616010809294033956053714610107573775204039987407679579126746542045320198201156064106367032329195333571083263562679304449544932333988768240176043985939659154000584697579697520335705355392423840166858980215308689678117791236650943493777192505040204404696089594037965257893792472564584145010960750691450496471021524676697017157804520099505298656910683197669420289850238623220967605499999988316580232634232123300224071672676030398852108842722464780541113823644624338115104325021233786202300354927331934933248788244028162357315755489956516157132798634880968836356020363438948364190838763784890886737655687739846428958453777067161691091493319152317970954165214992001846493043684360891744791550717383357501596921635945756001777996212381492293854316616800290505202537238162607012686874912076648738356406238111246843639570528783938651225623704640069305546078670123804835993888363137149470152092069230340671335041196415676833180482637105547651359114749800922677026703191236493675552763999924092380304212298586585831720418192358736417103448035716126381527856705057188658520672493234298319591918696049599112023499102899827989320757167120468127476045964372570091732855497198475412671298683894069005296172837190659720935964210299854216572394221678297222453880830897731268328553794672561671755224119686840861156730139284423707911276890031285392145100811708537584043592163019909175961447310556131567396699071205827152528423413592974718195688429507486659251577073269505783557973622358143386971977976669236992237725448715935155490731669606334957206067486805990825857852947485126321939523652181139487404583966454069945824932984043278538696303842057843939181403718278165030348574538138821503100082017322132455296384965204146588771757111808291704447014541654918044852100908975080770051295756879652417586992885827846700535330008445412314282701713787135988806792401113097425057722447688858016634658236446597702906760595481946689545086893301520656328044689249259957261785039341745832677373422654174707291331678850012195324607585700182333510757602054073757366643761746525639597340080526229578024453578694498233331752571596709030995427010634985236283417192210270150394216191247860296428258264591829375035694323469461689685394190506632230071783220487652362562099054318967511323058820030388641932795767636174578422936208940088990805992576312972006255239123980778807176908580805916877720728056995330487760697056246301265545863308568818107845907562400629398712915863006845343320905228231853511286743512717671664971181240137338924125964525711789306878087058242622811533482035906004648775550015904664747775351739844061612701816808566373228535684760776419007245529503287029072334140762394769419113682059163226261907981138548219503898625228736707493526174944529362114067289022475013609495020153581232604137990065179084668022706681200106094442904256280052264015562389379900828376157128000032097069780741613222938430314780274689133097011225581534939164896791865936693437859774323312909495282622149845379158043145075971606663586003566894087452427438946096076276363359011458980693724517961924173123370095808912223388852673526060769347224577928987880115802621085875701502843499442487535608741480055957532799712763497770663819748010480423734893734927908004985990230734072970579382795529940032617206604805872792063531832627623275452624665759377365096600839244502926947667414325494690221485163984019370406819716675405454674641538507904546707092814725642285300694025278469625538368549151483292985542727492843200004335199419896551590287104625558985317708814961461238273216255653202212658060095289271712091319737419946028948952655843999795344860213364371901808869948837135773872736203737719251246811334604449532938340199368871516393539563564210002941840343237870421048213442087347598068274555597781634222653100054915064342349849318387233755237412023146186387586276080784309709402850090482580653244140090391879821613881924458472713479652976250441908263530649485240477442378181536612749030061537914160451211001119510051090635563708736019038807887702822317700379591806993593248006849096438605126965125215856916821112083739113204358981373873564159168351157572114415467859880176815650214723415505989479111283106936035574637937087514875544450757920473812838714199090738288123821320580161638500451170179192011681080197534261766521949951826981340594175173104867526096631363268783443426331065130301765254483627525284284396722051819246621198884073957563435784941159433921325079863788433402286032157176739816940544673885515953441432060306891253464733046832748219426750261076978062190506373680818591143259628518160202481517579609795742170941937312751532290183175098410024628282936161653806366505795567540556854545015823996077962973612757593491350860046591684595518067896644277898107225656637987496468678327385350120963061170100043020571964522917838390864782920973749249382631611798803872911941905541905922934085866092176892295299351019113715719015818048571072231996502538009849366557500105031940120446493415026675864606261147602003582459431615574599452150369695519654731517194718771722757468127313472696795495174365472827521481779820518259131452167910904990696066195798628859799013939366887092791037928030611769102578055589115015436705518368048093790575806661913363511112539401127532018416629923689019623390469603501064539527974538878283635468838625237663979965450581986648090362029899440023395693378436361673424833218701384401539344162116628113240371014916814113676298979456063876504598757173837705014322786094477994245956014218756199154922280325167750430518105634894398854829276663381790392333593817023825269407393355195039001013377625502857066856510701623492197115955463210188172083537403931490110076603917058090840735498665463669062657948667239004126182378115831975051171450772374859804352978258333491185301844392028649463695180483782110965834794492335203853530889115439142842618514348204670027898140757339192993726851588741719033861095029345419677075746703768452338624812919968460316844137043528289446963096359400702818757339623712861248095281672296607463083650480589347019017570333672647892823468599242669620235974312454847911077356498348201083876132710160428429966674929484619613613795428764486248293318898703087954894046740919754110809479897696454194035623170829620908942671745845032920194769409281853285293078283546986397720922745048608499355511974638431900851443650916715686469114896683263016912900937765826900827205357824630416293873552474896725419941164177089708929995194691997238254752591486861260672819953184195498445182683292298046413857857577682477658567485771289265043072116373416859871366704552595583939715104535836742040013763343278048818465150585597992630037380616308521076933357859918060378615094759940059511140413421883469247784182762177011807991481098519093391012601207619414511323614897494448767005737234144574498019636014718788648197174866234118760867381028470174709477512352566211382028865593668878036676614433551695849077996740274778579486423261323640109588427289149027994858475944036366710958472164263096626229531426146254826299522193870922698318339880160121053715843036529875622892677277315221035661620882324137394559263548663989140378282014453497559123091871924924675671230104532626832467872499777946765260234787780368710677439554983008390973927449491385101119700332555423085784254228855161895147220483618592249198555833598409906664970381559028932792942946289717448137120532291701484363570004814555185772889002008528336705294411409665273495103666732505956721229425899873934318611215189138928924179694004939108222350941630364276617299059271630624159537294473972453729741992645357900753290095241203719543632133243364910024166096279460179094363923863792014497010243393095912397334221706652637237841838726316389837082519779928048210326009254285263466481099614311820229246117492034531290929613177485256898828804783319067532475507094505485083979169745618611886107112611156195640216349822729138113458610769481436631500411728469418514014282775570473765484779951979566610381349297299760482942771773207453742772798367929427337593704126598959087625924677284437275358367214214265662085533343523238329948341194598551528391314030510394647419195506859334599638409699265287187310014140999325584847502080207440917068425858750574808318690145769862761696873982612694331510104974129956932829869352283723814116409199947993305850401505308907133925087283103592828824629170382156037792132675728949864977241957153788744702775748920807508872335780001844149882505436553958671356089990706351933469889162068317697378385916935175354159371551620124511600574849178862474654763738939172198237495344199133398319179592960207728577078768174778126139518386158769591568968420162387093593538577261337816042271976422530731042947690741176529618977252068089741713722887860175204134293075155469874951717797666919548110736786122834118426194125958146513598395350535415231434031406271250181101151071979787135688656026950499289441058326433132787339576448961123177829083664260681493701519600824770995816852645882860704853846094895553166255455834094081668112572730513264911894416870146143386264381049101833614883143595040412360439890144548790673559199454307858273618817512700903274112714962571309115615530132910771394050500484053116338576304575075396926485194827594468250866645776405069276295886257283220401442636292260374304199139836067678351133279526968453429611090232534890864308655704060986204601195779162606399540740672178264361369060103465632604725413281479000278002565460481541651814689384483544988682810146855564231343121754261930555054837738466971460675330925277839337170753166870022240250616715972192582701976868244807550984203661818252142074204581573073620641744978763646481727933565773560715744901013565117750670108037326259060536958098772082582412680154279610909838993464291278643798455544102690216904820643087350979516081591023247429691949223772974282553881249661809712876850755205442690900854960931361675497978073746114486690766383503251386589546241656699956668477413163830267620461588587119557188723246039727297819899222607307926801152508719834339334987663479652108902038853069592715087695741930349494062590406813757613488235517783549543111218304423118070959054783704776076545567517628987726849707451913368089462039199534215792502373002874160641350586259035398560305864627421687476541654481498142348812886524443292536180753978249299582659096347407998495926115840331665703789008652573883495093365916413854484232001562075320712300878663709930614331989522462537021597606465788563848700440830992750401871922963916007791510511695312850910451550301613652237746357990075450818063437327414496898706471080439423309744529913465603477381489738145954776427114272570993536024584043817196067462418672465519188790848878028981249941012194320851404194894792248909015199119244916700745196575074034136963911530079055496449918232938324843786255922339570272482350687436670954427957058873938068200825295179720202657795289660876480197802663438710923677780726032708607791052892894498302384608306475194961533215109842856988075125168299447244878752407046726242612139274612408519786078947857295921446379666549692146251213487272824202166761183797765553263954750220164396446766978292133371564357121522835859110040911975286418303377596345470557543965548365115398525060275807825779564185407644394557740097848109282116701411442442250460175140700667946254334534054090813584033506967092027415377753240969129401987761940421425702984757737435759756695773382875652173470424754241630942244995673974181332487771427361316435417994270645457855019868701062454407439747711607659310612944274408022028827683702128528290294394444013236739894667746933892111785043283698582155020382883930368413137710017075947770098854825259116127001450357473694261581674743915775751758787677399266889822274423847714046839206290626050458735785142498130666747126518763059223218466785725440948977100747536606557561159239800104280650420394597392297545736675194183424182391025378203109710536594035568036143779801703717962137550996387944524910688054100049275214094383060426262628794325674600812204298569323073508682652239842179310461610154745964910183004806047887918723313201165215520211843510820604213013056728741964689683540615668668893579483096009128451661168977699351474753159305175604899962060456883977480616739839267487088374526724546556430912172827143595616066703633897260539240940392082634296459477227789204480194247854482117059516442493325818150600896546850627530437176486726551559299143271225010445169553951025164139469891593829588701025265258459217573133004417053614355853147085146662240326946339281793687294030265185148452621958712911298920425663815939011673351658995987265259998239454177213465601402776179698656796247086139018983002954856678124128835024971143689723028674414139969039463447214912236401592394507831582949539497695645412874959905741797137988224226134686200676451592922434207170923617489167573714152709635877967547703338400802689285057073934332763588900777476724199819712820162373421001807253517730343828864106127304946625787447000444302620985577483821613080858084676563839489639468943533419391902171810792521984640074822092028743346305804865628752588133967102854866424972353736828279329106596066236352064483062143207988035964264779802826104027518147217773401943207306729783796069148552844166345661503916117523490877049451753325428065935346223154562065143557787337257492120070477728324776014345247684932984065387791472948984919667172157911807028772438838845854713515229910157651174208754582231507331685399375386032898049753237245856822226607737475357257760083084228765276915937214558534314647033512534292630838664209669630663273442587515641824146378843913040231695988876374031665083761685148681343540897128799973393189373191212812959448107796361536337232796489515984505154108010547813874633846848993843096485411245093155326165085384696011608663971631214384489286153424183196971323658266998153510423989249027017316922354996364630253488221508820605834320884147592802037607476013548807072988597052442942062199985595660019926731973921932594517430817911016933449613697044764661355808493660630560970716221269284582285094965051229429881746047768765878482519702228073130428426478010073169406890875844547002416004263406294965387707043805760173826664582021665737154295617079002201491711628100586329345420254098891690318131124407065016026724851521887947860948928179484509250712184883450347065887040874548125420490946011741819561840159425703568936619340765352153312715225133536869769879655689383313453414468547613533021327166284136259122540789841772605682229847124890584833676247121496517262041370982366668988099942698860567400906397502784456827904932122690349407605290453941122467494292230557597731010140399798183483525767014432766689534946731430967771376078654990828858592281000857489570676006924269972590819022352465942731939823319708907913612938580802743149761583132213514532167352278201671474822141239427359118157509796363979072389394620656395938930745267340943268776474095179982273567098668913684683740489080023090507293350230286537164726193726942421274899286639903671063739486092171196268223683665946435593622540359596286630733775540360940606890969632906761022222433896873155580431240155923308745632528087820234789000703923838627943105954912757634829402321654670848000793795353787747030296692640515062889020252334271841216793568938204179262982193671593925975144204947933736224501686597301646454349135104783926259430811850439018407283755369801706633714963578088128479915383319659569830238092874718117616413078398371677129963597953979025577582528522756727120269339367052946139177281314869721519729230668504333393473715494831174352074616330794818586810419146302272309234087999282211221766206765442545386942308469772251182498212398320359378409239270867896414557150574618511883312957420629337826602774522160153912893509372865647039267691123879522066917239610883049516344553018877752554738808712682391843607446011069230925848002024797884123290579034726292858964124908735061152863008772254266540112661239324559824127765251501197737846231007853239100013326414551255162883676613122530499244063677975451872549990720523903392170702837906550409855736141945066139820957681667197671004864118508572199972410535933825507962769110918232299677425629967185727606849615860446242438088234380682376822113288359942633799333064104752051529258330545947745846599937978759721289260883365073766581784608291145736202068481777359046779952854345274582734512704266380296704203563648618286356448291504576980113431755668595639785205148129898750651784416234537949685873288350328562864603554712776498943160166360630953432106589223027622580659474632446933125464625993744798115483245419206422747929446591904475840764134176734069846376131490115964681443736506682340699611171629956613488495813494047950917673739083650836230375484282455122433074665774203857596282036536225688195465451215970499446287199309859754732880188856979076742190734680823076984673699798651174566194280096142306877382331210649269393238459930485948054868647024489934216232577849371320397639157797868385043654174388600690782176962866414655427357060906883599275295980516346630201298319567934989512729242226640241925507481071327089947605311245353420230135253705564945844067934549908041708096888029534726292318217432494918370165277606968998448087386721465359286587366790450565340472054757523690251319468332064319177834801704214484603760126983307113814589363385604900190766849418441865387750086862157857465695218604091003174178331331481436743899703530187321020574181176338794609197453116412369785364095980700115090652684558196707055034799436412160944189035801984201345026107411768164742963824437378440368894477652494343706300082163348494024851677702148458810914717074554374963320997183557388539836293567175203943975621158324357814153893087768037055256202913170059686027446593049298430743406698623000435523266151459550817111215577857450932925687666339799934023489369621844884080047105619490605629395289111801977312357759094745651289682608645097093096550619455116457830260503428034629678366100265088361258536981600386549121185302431075925160703285192107516153249175772020712322372639119290877075748389459925988996241151622375888300272200612053180097470976058168089865601619762406936597563782263833667862061351108970894962441175503442190867389981048662129227505820397778848260334007084226363236535161598639248994158950243813780995000824498581686320344319534351956779474282882762135790608074500832117726300341217702433265955973325227031789374970109414825418980993369785547877900432779783166620364582704761725399408053361806818842601951674069373751190884734831818613775131316910340499639035142396190087282909692404785372908165738023150711240568013793920082472152305956252026209172705100912707250588727934540564569080962650366495310606412043293183159391383038188587040018603792681651935893774121109189237217845339045309820283936889508263117163935723298883531239086613958718518614986257325527485025850621658176662842051121396319957615333646165770696258464710315575210754433252214381065790849754881314174016717360802726762194109180649024570654232695521880380744825154046785820567263298931492459908336049359499320088099989936365946771856163368337508692673092225616018928431622306435412093600099645765919320138561808038162357460619760893868697243731199266070339329837269967124884165114668225791092871648921364677383391735379832538310272667455267754842369611949926868503788512708681293921274344330648640196320165392338335673993874617728162651811292452924002113358880643473860080462072997552005396725336067788384945023001144848247054260915861647559723534109713333381796548451594782170440213996719808950804579247498961576389970128549590867370604221971791602627707400533156380493987354897062389153756507712385563413543409659736681549055113060308881454235968090991213100295887764255751252593167795659666022518694932671287510248567622245502229778505407402991819656767546050157142637526969826734127045474752421806842349505796310620744344600637747681937287826756303419351580605755795742560106909710693441732023251997924439618530158347798072202311742738061732824916567751535776041312222980229093043761541138260854162773331450547830600196554897171716251642236944266771701328397751662833783557269472355608109559381012463376911425800385752711720557321903612965237089282402458287271636862085587049566007349349185513301116488405855183285378783713695541314031472765970457627687761850828001282172878379025302697237178934983409609244990386017980028880797313995805231834701360198601352528284178180506045112260677360500324868872091393426072506817350130406027735490287639319486253727588602240405300027504832475250231151735532929285710918881795335792805753132326199025195095443576420132278890782794374401865618063092579744970999862421834178802866825251888436084421882962600562161596023977916017960462702752936635560914599785626835068325103235435610073082644663459820362770086663709492779812701900900769904442728547724567220826491274336334290205095465669166150079470997236723539309523854719416109173401576992761753657255475441591128299661077986523122813656060342133687142376373881580051915911239545142076287926770759386506414809865879215673091133806128412342328690177744282391660565768331516931086820656080768191391767617429831780091494113682609113624816882539671606387009103965783696089626239527806184619597051001522034880971892925913685854345419737290202796184018595682838698321769318331128718503439627849292986473203985170204383753574765211609171394597639937318435193989173150488490785272105028183560410891807685897358573100963120115331999087390823092386132523033151056729050047652459291785094845005436782193622048300876602559938285877915746748308656783834282943642460813091199302056564542354402225471608811186822511491003861124194748094841433592288538223616088869407440287413655204428972584612557817859738789873203378239241689357914581521853541292544999379538120529558167944251503063349154016976707835495434311584894085515885811646177892825028787993429542068026407482890305824672100617813840253883926391464729113134541543850722647380697428138386883650473894072565143388740234111532865590481990497159752222690246308644828302534768022864336080967509423846431703916444771553682994245501545120104822498798130971155329039193545148903627548766611758150979252119622930452995461577644686848079882546687519812845030752422201610637590112082569843577333666490589268507480316343379363220395632531542398135757293171515942136121664480942892286466800230625785720966943640660900597162608382364907695514988858815377704407454311041313979206987084381046338955642801263709520042798864861282645918638563311443308050772582350623320431360922033857746040219267950749759208782579602572150251647296288491284939265853661475371419681846639618562950094467520520127994010494699234037585073769381247256682514487012722097912203229180012804874974269485805326991725146501260117237162876129748381827647226023920994925007820851612925646128169242909380212233304695927056820105080174025602354229599517816706698862552138838226713520304810510191982324869365594874403068554025167153295080662860239730717833995259272962110213246583043942661715150930316710478016893597022888988851061984503054679648775628163608942116533587696142679429673560572406899195550794321571894012206220085394765549933316962955024607040267402886456418071838720290843533123309234508327691679073831379683424448843109325554012927098714289783731515691005144737741038525391029353815017110408837936403433699615417763881847283517908698525631798349065020592701910198088584768832325327987014849064089245745081716130185391720299074767702485704394698701811431282710435273425487119506580040909116568160875383722086042221188189343268370945830127876105750234700090461304485681880180031943430103733918506856682286074309869072286310508647871676732983620315438549702710744646165050063045184631176855991962498189849984254103802732941809005151074153377797720405634529969759565096915307852233432398640037518852367364913313264144410918247746774926317099714710833839465739992768062612488138557760449875405635594064943091601213281325407191191923398478296168329887982556463504866273037380487825344191175689107487872388011712625003087218790785304579321052441789341491540494730014003586304563654951943506381053891323312304707116915870881281284160266850502887813167632074562121920984463835101142434199291942998620032926281852464934497101917839911921837918509538305046400445064376358068724118112181594623704112352994300226379044670170456961624785761088990766619279474418429789265210570753661567688367332415569912603213707767642695843085729022423590017554068263197763189332469654917632300722330479277302212139361384106463523737557310553355580869011909602852351599309245490769959465410210478803093157285258767285876792197074351166128733891948106868185292681470771291494170380099459234930607317553722154498575987246844786204197409282290302914056858245144938529986870926259170716710761859826928794574332946037423223783638307490733602228899707984347084100445271824204754590000213495536176744815661267616654517712367810571151207646475649625231608755692102603671346977859742459264350968738687608205818661958242088915176262201737604500895723357294126478926873764283088459736748382627540389082812868810709320884914299048742159749793686264286545227150175562582095725902358844662339162301518687754022411082096583845786819276075796693246544538229553706672576800824488678279955360746236360837187066281592190186454709751216280457132605459121418820408614504273368332696037374025273894203833917344590921250542800649183158890071659985342477004803288352659054367679527655531811964033418531260823003381067269076706884977471714294700302776808773695522082049425846439793153149701378613259353503534074400900538712327852569104935196990982611771150624932553179624002800486083312812785862455385388700142207226570172229060462819512445867894913154338484655140221849901974899049753040577153013613535332592206479183581467445595810309563206858388734587992262830801316501247401165802798540764295319869533046663709598960438179279533306090506646684555703939315484934214344045651746494615523537787948717257704886401205373188099365841723934437194556125893796810390207042705283102321011073333295893857751262115377422639465904803913615649892086618907272482621205131187248968769898606107314283452029259102820324127810201649445621121539987991432987294133263129344856087224475570351713705117937406690482236840426621279800647050703982707256417782496709565057283905930479945190623303628359954523391851724917700561033356626899311104044703933944100830297594904969336243952396146683201027517591538422588325399756363634928565308221930895805729282703256732711902702085889876629554513778299800990420455541872548357822386388193676090235533450085747449256496185565700281091322683416147413275808494207356051447959459936089620602371316299080417727387280022282132886081512631247192713638293864535357969466452100493335711952844350171103046684714880141797746700637548992774181520554636587120200989328348254901305168765845562888921663481765351443793401111938454519792577841957396289422144666786830115228086646083964444925354626821118823257893906079499847360112451734418871129115988888037368489539596236308503510632051315087255408064127636733899048192809445035289625755491330136497774081738031105551375200028668105873848813189354645360461408606850022538400862119218586263367236981036019487979595359754820267091617320722182230209660059222495672874085509823041155837082026799835202410571393113912543887342049018942083727371248940568800110738746301404321297414625618218942240533980887679565124823423679988835054723220836998581330481289646431635830085141290500010520917402810131474242604702587904213367379636096455875499786081841664330314902212040575976207260863291335828419413859824208082981394160982423040538537510780396099975252852755458450631427646964629989192816856647424510717492378152139763454830406946641153390259285594623597447876997999237149449839917305579315314606184163109686113261108800851675603709017221581187382323865609000143045623326871214851627720052715193039229108326621492098856809429237751085305634163041277965829740994528783346847152458373898200655880573386848944107453189590142149714781627935027087518987727261479832666670820217556167262572561312495450114408146429876210315799335443260856122744790787333733692125896453328778686752448546017033857958020825875564015411709067419459308411105241126295063094121434397906151138345155231303760995703846126347917836859841462649565730348792782626748703512903568957517284130512363367815965560360682324460023520811634689377945024015055805935589360453381603339354254779916144865425187887809417254678641050120110252708413798706369241296835282418013768540069057527708451500143555874316510965012481873598493921968197095824620512868602831479266186375572353138955877084945119693238803250929334013198926616664548792630952524556813762117699735739075040051515554846686834732093612677867913648961273232766715939043349348812664229435663504495462419210412031767161838615971395706375971020516430826362878092505495379727415249619064171017173459396090179263121226614736317175190537123448819962856886476583486515839595629250538251082499106949134095899626577167679039815816481860198619637089299119632728064184421691245316352979793493463157299359773469477928384842001883448358551093304852731019113198242551794434991316401803853595920692717291402331505208020502521012607481904442410948630118137172826776750142805876377651052036980305684760693436849483513767030462256433376004617584326021628572492114657447797586252859542902165848002559737495082839248904976164564635289096059463926168617467475285794749811170911262530601497508705890987584851504724706926258369309376923258188431463407822695162602776387218282232810118453896227729711303289201533634276221142341101721366011812819341088703893868202683753315886690362360469070150623064668906514323779105058635046534683594686664991226987578323815770872534242331285944091836836838127204866575549158414235386873012652720922318710670253548729003127441742354323956143990967202057741845523119756346244996270507748111076393388817932108645745015204824605336276173513345111719888076452931236317445395249426171280302613286371862000354309362647902953661348317227862977991499581526608179203196197391297425216422143338416608375859407762125179322893566832808559254366584565645741557702691320741935053706044077040113252545430452759451542762872918474396535761579801164229248299561888876041725918491415046526251751571233041073648826493244045533656056104827251993522009620252178420644774860982873418110472712058350972567180868247167581253527042203156752707257204162201459313227496350962191966259699283996785690399187725239101021306136081148191475185101875635949444561193739831742181117737701077328117766554213304714557376611594151302307329454207888273462267930088698308999860286680251745070098057957185855351709443008655049341899888863800916991309494401157457246145789794818828864889488522771254996827844544636832250584780882479069920846099492358649505475640378976102280099460640596686622683656523276296602362825544765069839323313584296955202648583557691663612956228036135314964483774396462547780507021383933191884660466248023159566261101308843463249086535696284710406567695006849240768699142384672298951064137456405543528627415028029029970490089126084642954561455519683972537801907789551022329152241915321913661802387969942723264769599144898742873367959015007268639409458219991604711822119020866586659278818287174591454598866058952429337112615458482922884626090014465961668147675327843921166042904750970003994638949991390274109185302961687445414553042022182585081401314457063026495244897743236842304835282094440908600440530406201442357580796255991490341567320876532714800697935335451372564479812694094563468327781644465900349176314141036585174991381689631497448656532536664758982737250994684795281984988445367684859484792808891283378886109627316163683008602842426312920159269105555997337057117286687916072670187167875253991706721391890292129269365764559121864751076570324765337793434632287826214040920270394014936760106641646851345107105593905357719985312445516076005637607969524775868648756247945973363980080662446335203100260134821158077520328520208467349710552767577257681490610467356158972616500008774216913983116445798300216494547227333748764840804091012972070127919854088901657969489780328261319828602560187760027653708021080646426072418238534751028003109944023092419123230737211502580421400149532518986293064050113554763959140631005705319246367462231523716515657524493218132389164506920549163189944635791539146203882977003706780335072249662078449119421312842053079761405477151215344177935967232554170810032292921241405674680339397182204725803321685635951794748864685565227068942019086396840135176011617822917618452729770279326031757454308326351241503932072611327416551844129057274343453597732716427413615944438528119975539969042030527749923227203779924476422101786882206775918891467258747362407401968901359400203040604899160648510814209249672048811612130947009616290266919553414459261643267077931697026388066054463610339811759259411235717853687701904597856166362333139919244139119621113131399016522899355360329990656955893848081311923010468022411454669941019181708961298828463789000047039666800994719985466503308057862489447282003902429803760401789372653866952135607458970278781139979574725506088909979513374257162478727730509728767669665388169628496179146335994307355660794797026355605808529869499999461960231495761133353601270353183208800041672679275504062316013589907510067431572646883805019216494485031769620825382637612349926887411535751817084976507636630111110724501823692831151636254598271676368233891618552927469491451158541597697519782274868946265332296542569458417763275948715545455815805578942680449407545346005100464505797872878035815583928457329927840272333018628804436550720632516480783733697569968851810297303315413136887954745507654090007957227075341889271247824833508491565798840619785933458013811755821171104824979847413783746029142480128611215963196453030315052012032739851371880409395558456404898779886121277562927375517281354607823524176465358844646231284646889099828879331109673522916219966109346916176185026123843628803279003010119546994063195561485463922600427455193891911575712160847153257472174785083176435550763868030349536964549619680137284382930482968106059891767339382301682406343639213828927326636977705446098902630104434072749881043091873748388008845396301093395470297813852481605167546805065095592728383072654970165332512230722315414987350790122803521554603841627011565883797065139437488611172350128723906304223976779400784817005185364325979095538504973014502737273081354791109028430374996215354135095942759030394736069348762424912338586265937961932560601153999464234420017731374371460642431389841448830635493336830926174761649563371611675395307093773502954040082842328776128485904618135583310275159820206996185443784869874796067789451153507737732876671871198937881092070329256771294123190226518803010570676093679798931573016027181651261375924222129981861313361236231428337165215318133628878783237596450849299275312076527523574203373742169927256260189813811535142512426799085131128078758543824793094472988841680207847298341970555183464151334985286950016973618338321020093421382075433896746507968446614106304779487804645959584719902878096221631045601365123238938180617593836835076296522244914559304690037858730567588679898060563450439408061947210114139661804566578623645468816356273102578184537060307558192955202580929954031441854387912707943534240729346954163075928350053776985170142549937011280528296147780679318019426246981015024078460105888308940851910935012159230219921548120304473272419642828009233120159161990755088386495051523001801593015380930666665435078555828829243513151360786385326326759951138418520781397347466237172122645247030384171214920561208785090684152820816310745896308261839471833734012941484689764997387285174701034845394659717763538200973533818893590028284029029169723435997312615840906348147557262037858359685827524149321281015671934738145043209890653628302922247387001463627212077548914021049411652506440873083297459586490960190650678967694625351699544871430828446983448637386011627827354547729245302511597458802233633895837833131132431252421751785999604711018132874283838506399548965110434675515946162474068920859949435553702820176767183703946348954588090385659144960885815085667158039550324005140192694497802716465233979102531134845771028608867324194079402371227938353311878486112735764543075705037459632648790303162034787191628956083676240612437608663999093406031222797199118096610092222005818167469628042157414630675919577985631746205771221537770250526349027977577712358385656967094724220992468562593181315097380746565561688045664527157768237022342962780918975389022531655409128064123641428819573817289295476665008108524622676491689263426644827190391274961979132487791431068704758341923222952109525811306664330638021700279519621543929754171423754735865699398564163938108780284417905159079800182952670208572617037609222435237835158252296081975942628471064777163602194879973689663808143070694749445054513034432324151861440026710437271774432166455113515502304193843485906961157155130249023994927911917767000186192356928041518965821847435176649051686253117871514308543559058539636726360654976701086686258395228331329595102241378713681996159460480801435007895083667654437004789570935667297514418644617707125526618050245240313425053474545693868784314424970301575592576734257998813836046546998566461297076778123287508864676441758218534719798209411484987544946926231430000931404531710432838188003746871852148010779200038594942357110076258749760462101967327957385274112571582972903804274160299212108639339914340143053375859391991375456230277084650873215479035565889115723841836914379601575044039152199469066235182542726023313222271955064206337715849052774638686186948164035380618545129998907796050880376842249981868561895967563119542751802816378107997876280595224363850344435640575885159892977809371336328971785951110406567906736764639610290271058088802834037763415318769893801607427692107464663955419981848400323125021675349460704104395063770335703854895190219117702017434667561824127657459734896145652016941848011006290789403821515441942549294738237442353872510667087921620201368428652480936410917706196067378731079669935394269214498836488127079766136819986762672313361441631105571055427548874184758581445221822516745337851435829606500970536335310743007712980959031901123952360519187724227128808144668043974357498662376492645408548303021268567930120808107693653644106037475970939320938358091240026253262665102144778115555675379929295109211385158143841802547421696996870047931107034030873703087347539069480545154571143337012325973891478500174857312437285538847568963649618643910428276220210735846487677568213285995518727347099957781406398621323538596188679247798145660398080638525165000391119457146407564656114146404016886382822039730685080134094566278951450470473322352289202893716562816464375074618239203303932442364583072151349306453144802332240884103705703834700824124458669631842777740140872724101991889196911717624723538710254309397200449872456813982917221902170936673441725510938118897560104358127347160279726864389075467825007801721707334961117998856411444729455395411105997731658821157968762868744446447365600968346008208480880079907191083850303542413042904698598923257834662403368561954290994718930321372219936068073304272534092408661175377946674370906532962924477383598779083347046005461109718995494308148820653642173346086544117130636376309475989920584063087155358168902663253331832661456968280486683191715305141279675292001841198793917194872661175062803663173760723885876938019739698615106693058612904342678948029991558103037335598131444940035781486197840816754887786090525867179377648665419063433771795413628609133549474627182811556590724866142194118465215339204295515433688054155720627190459467412882978750087410440026873605224592096921887057743274345352356442212554397994050877126434272417122077391770721904149880959643946423418156493169001403592634205030402288851007287646141501625700003097980449865763811080720982308765216750216603801599420173962821226628167442464667800157730555807067352713361520255196412346221406071393612069976108127957328790260767195712513398132396859167242712361126687474925892500656164662803451991407882200138889136816687617449011274395559927555905228127013857635914312088714923657002428909195617580222023406611515465451494937698921467238088872349003355932076434889823418894707564106774586482507039107369244500813558052453268346509195897420003101024308434606996808376604013693085590175701462835019081829946488698553885591222242679033198077791767173433550810425401224683863073628887676855720719865574460545856629258033930307133868970566273443486019480750836658746308134406173976073261505156701204223606426915770482865117237028033785714765174785642096666234705946858698073602914385255854921720601875502494093209811797905349123915724880248392939211247187810867733978528895863199961147273073623651371900601778595398831351605883769092081910934579223326655036422521858988122541777001984482580366870235153949990209378317661427326723394557465768186906923728448740916317053183532591190291801889589172001491501453783649319075000311045551207091355093732453578167573842507742612313029110422182223997600616986655325362336262534882167869396982629524381806225804407835131082569175584568810364584983609351227390160074248694312742907529591669272453983606809920581967456260379731304112194154942317793945302463575597789692441252792210741235660292566559707300622933315583077935359629292053565835016485860970828158639424865594764775443225620944978656379575885650497568741641459704638659701372298976811424800585740936090752301213352252652659887000099083572052591423945234225971996297573386222939506133506451591327934511525666876532025789676658958815598362039196125390091753335416117587921361381428492041839925620430699736468030377952954900498987580533833911916285720668076911562748826039961578667531724777421417122742703832157921659645398587898993527262206409042794016235985212975565066797847291141349588684702837705922895273582024238016703677660683555839615244907842326827138789509565273627346232221533499065366191554014399174740216690136120540443019341012200072121384664110013504092141167450983996049980077774649046649743236121372873412357266958982918104398574580427881775789418470976314242843417722749804801025876832494981637306256316080998283094394217694219766954905571494838508386869163001642436891299953425851488008841809732151363735717889192592634461686920949349318816208632079005616356614907947290881868079875978453082614251762175674640640098317982548195063778861202943189700060689892109781036235538984402303506614362267758975728704275186592904873694498656791578078319311371849679796202932040827471662897506929275841184166489667782002407998160213989869227630801197947597606405214659258359701137546685833449115414849116044453739205282071714562442617387365665983371984461992885028902811518983753344358886622187472302639195434177393120231312552314225401244350237205047516788354651805205367405794899453997982017848681964707931798975908953975855813431043833375753072171791310281109766645488903330152486700638599188453007284820190038708162116048761034819952728900093797382851969273042111705145776605372542799099359144872648816688278716361980779934371189607468736937425953119662181262946460800704874349071146116802956658733642731522946543203837534896690174875616871922823865989600218639657397537371229579713349026814776606710375841888376413620434731290954902267756240352913386040808797200689654486294513411683209291311442951236182740140228051124304823758064834582460062665669984855065975841351400093685193239009983026265075985325162560155831574473089323592783290474515476521110060086374205111931208721409401687124619465341321379950883982665473375685350175850896954730667382928254710794416824763622148969977940705981307231855587134331247427199361760810157979514981890112269121809766177667215996243015388548498564553789570275871323630627007516868845172251599850808794240065091442480133353591474566701995614304245217250272857612261475051489562990017126483042120426127886325455410992770626932950516048444164988578436407297929234694475261063523257428259069759751077817235682296153034641599716713319073545568752243684170874704699423601349704600740952556798947273781673150881279242681288467055528343093879862915379936708681452119525927532235782303533210741935890834158588569519023713583468179648862576632731045389168796921310164862768124153708204870611848119815211412185811297966411579817020921397247440867270220039212209226426346157485582634944582183297640618994335218777158910683835016513500934911882152355937206318887161858118954516491437755082473418946711216940830998330065508195976889018612566587370073648344735890059854223329942138434062243803222225235332561966219365311071360079399797575978392665357718836666245662289192665288398865639844996836736182142359714688071398665265774771977728464257499768223395395426831948962744366780876805336675306208307056520275806852146096943750142841121712891888393086350838306734337430003833099490469456915167637224857225469431638227981225081208276231097234841813210214694810951893402641386518298295302022231894111145219664168739107121487163600444496618227313465518184783424373676762682272514307890715678406833144825599485438719923378530789568317626121906446502159957466642606875891173312490803999388899345623328903365297834946942693641995707995740582364532023156664216372355284761432969568991718444171403018213636332004574074335069248526181658703329485445189600702398269457085109515772298529966724230787174190087939354899209869997604803781260614994653590291131385529798703056690182342199086536264877674646343111257044110766858348995409497779385988649221891045594130174443735768781589565059597071175187385931012409532262721348415126455936820547749289173184040505473395647645027659253452648987676802229561869234728928046334320159390830077414453444697615736653308028597466939337675456388423672119384949712603655934296299285649332663044309869192401539171023319380295621978816799706872900343526819492446254849991048336115605317894857333769995725498597365964456392555354933531372184642386244605309749617522340245780241440487805615147009756595919301752748517230116084575816115432205053206289013027245083124597690146433278169191082076285518555929998063850922217844013798601635099801636444437005881390710024817984846166538565228532232042498188161051745067702758287945131954106421303601722238059379242536275336458748398621201941579418619740416414761671871759829251319484430524608748861330053144257752199456861549515666753674002732700037087846125749039829435689184851183216975680512167016940079202233949479835117069962118806989664444294997327940771954564402218643237237086879356598510215099403462804620815074432038637324166020041902404391678290155553195829501471510248571108664535210176050073304158370787323725157570782763736984895844654925339657815298394129929768635812284659430084388661518037643512531817772327835264274525392363540699045849779160959677405646235516601601902737176443418499424341307096202455431874518775926047078394760915697871171615828837214300635457224822309010543754797600826799528345859079251428688843030206966146926340589613057669464812809438105723250222349727752032091765526640336368495400677492916738929974296455951947254403982657443647369229242544613181595022322840431835744911743725175882142000247397116277620450704652202399614647930435482461264932720687831642871640787811096723032781880083527696026937612617275055174022742347325731387863939855641610553907430854820454910044485055701552208663374912368966942066399497162697627443183911271016956091815290522876873974260614238542848101174285010095267334403953616933337479117718711735314515542372017424255649774945968140994537643726922269424869032780324559620820424669761072935091534599073903339771111087144167381726689699348789069413641298233675204353934300619205066266146621087402220935099177329205667392035172771019251054431971846804271371272114572656989405947793614261859236167810664973833833816289831211630696876064691737952790779659763166980252325754591697581604222947908166269976394648569803278376787847234087580252415567245894419611192390321758317716565179281792331657195742130193590634639510390368379873345066013669505312282735702761197672527453044486031508379870691439422983026057412031288771139709769852551851615924099846306686980376072612639433461214610269115205624125971351294363721027213734021904575224461213631718219390196339532828621497295111260967996399873872799321632331201021084686045350908580022486265864392021282399272487540211526558496974014546818634376478531447487442520710215234126193988914906327027550186406820768080166970509960467215602283413196902351525826907439456157775374788357520182611665426973830070376261055979070875872469155724178299375179211190837335944223162024675267498486358259766170629515031763109877875933229946736353439706684300860144758670983428177041352792807318882294642689358832358518621211994210202298926366871779825716554977100074117601573977339155044097305564758246786386773821056980251687015371318283381649944562572355739977781870881027778633827662893929895680035813684556106523381026111913576291431590474253730856421498355327134729606327725761379147437842366419055695672617037210422158941107036822004959721937570802258032598545050297731774766156919002464040217998374165502343032755147484625080658884699970961852357809584018790636664171776659865723758349540613561673613962711499521227230844336572563473432326302369317746281586730157934194273653277319135792411433538092771873127545299805426889885498659538284505433847892006492694378489718717104535617474961775255468742071679675181996200146641662535919279902931513842569845491947385559276637417604955232849039802048001343425870472931888232365692926247042629423130337060434380336158925865199484516040148290606106781593346759882425216900235831206452689712500919610671873446774980293368862825552588738877091494494220681390056318817508788483051718229375585489700801464667492044754770884871575687817522822844207946747885504124189304764038766713196954824252711752658536180683601980736770683102296851062464975640582242383375038876538947959615184595554473263555404395954361941250484086332986114090054455926468364397190285982051234222898818372564105899141038950864586924701933615251167228814935245670485076901614391613382010714682034691770973917754115851959708671612386490470622750457918640655044483513442881196607090142717066181811325758884104965043725212991387443909263640670825062608003043131153386190069165479619970468835650581279997561211189314215623482719027175416577434159940884425071786978518901119969522317987960835483414856201052887399453757771652522205393092970958953807153196761474381863954584270378101003835997403809491670745634280961266372125980202071878130498104518446026225407696595013566950065542463997841241597190114586716917662160978232657008861365370804962814541442396869860264303217414350650519997676252364216058273775133231047204298908862645815400813415027666081250406764162725561435496517006251093971729605791224196148052599093767775817130856814557412312986236917969480142417087933459165023270409010139011204518958250636657329549950172249107876824126644802585570178644301567470192120657643457990061086664494702484948965227968821040604161608765614305870590451300714914882765202454792414649684042128485522885110579447439263831934974643975456999559375202590160866302567833273770517753490217995875876397696244840590571604796223140997499967880497183390686971711962293504655867793095317696972917678971144136331947281083491624948078331487582389573689875468301550098967834249799603477160050110553899968557290451520394957491003756325302271783234166372919247597308915721561197205582914616819963715564785561020693270702564112731526664784145747115891125311512665378935012538778987201607293447511873844765749436505496203863731908900345238242193413900522408394391299093704906416454534541546811980134467006344600650081060466726922084167615755201999042002975404499644192880806762620421375322240513238750217108632842998275660837879197830596603046468648343064689995696498557478803490398140136897244020354733236674164182841061542395164598130009416784468226243577013462041628451876881917347786581719870794716508766736542136043348932365326874460807996413163677430989118106165660273127060727154448254158202219319969947718287011758572230216975518306310950839300054015099440431479658434453408341902853409733252072291252851847559427256441664447146542759136718545711626477584112498596764275281495667887233750804845361334837038017162448817196454571323852029806052793538241342161887156128482088800614659740769124359162451726103506043665542806304495356560688645046844951587396504133351582545659926296902444386692638505538424987915755415502266681245728347310541800656854170385894133123088724582977630752925909000903455653302815763537947697402979922087557879737694386825499788560230326468889530843151400777701021532851621468019839413138209106159161440163951107705658369249074602528453666871471165239870319154585774843023098695437590361967908817339043106604931946730871922880419663262924961013892187345837617557810875375384962428281027062541620530134603779717227533435387879104875949934943213910183233509172167220088748359809133096058957467184739334568347326685237049474346094762324280460499619427030167811560886800577167500276212573746358614497538420015399162774941550120811289944494954636236313811900472526277610203857204652189379783725731784554591249280978426737842332696359607549134271273644673297251585238507323947551143365022062959114813862433010658158383866499564256215652918161984066023870173383493352010945966219857565864600879718084556952189881818673115522010813495254997871244292811470396091035048697596511274683468846419092678802107389229707472933991107656465861931694577663921789092107910284758755039812674853711297776525985035802994664435080914382036074250539991790961791514855329871522134686218945194029779617787339515588104688119507114338804760734543351039630312294583077014213104797905002594619638447131874972400027139645066014040945319281320769640414530756365904400538071245989721027703086399485490830477691903042198449775089035952293996023927170234402035828453460792197338884794762422186080921515007682936639214450881773710052288773976199601471274884502539633911758154300228001326694415099733264723001615643440169564102452638386597162741126718263916784631229528612102295855291172228882255830869537925662242059533997165440374916605735163514189433230119850821506329008605256874508745880833541681786292989769353654906662436784256309046695579110081306252563649456400338840700277897828667143996510561638216626033072138358356094816125374030898604256792971222594782463798601177094044838379215946965389151663436225570502041331428421540290818751359729855915383272148361460861461440919651558608807892447697639453715380064213790154484270518217746679830349561441876458355405156177086522620441800584806913243828056401873485907131617821435221867238319536127613083512040530650951370335355429081084553229705280092362230851431384233984807555284566585310605095642989265186145655192161552459940151746210704822765984845960743106897896050303643564112691648617119920126519752327760872869684737907112771162114966918291230706257495923049800167860500722589764853304315763646898361445674404379211031072369644564580971941517516917377255778892627713008403612878941870333907151110443326433689138783874700271743866398503607802537206367594160713052741410700351752088676015845327806018739708736526390561359733995839179270495663967960954859848148046146835957724040440405874743332725695759531417177161801305346804887613977908893074364680956957404425133657398946267964981480144993980809763482937910838718485239990686574046762859459576141067487089975380560309661231137360247942943312976537453697622852161346020662237610744433296995345160006915630373730240038263647124127008899908844078366333992842201735856503065219195000192045077923380671464923072113149232293974067913222827019958823780947752036666945656607401714176873015063879459763244850323349019664192227963776531028964481427311538626933117591608390749489734677003597549642862354592791895126753309578247093297821363721134861958237608423699586243955346800936261888878374324252718333040849355361940065028972429840356144286063266474483642718237856486676232518770356571796027050134404299049366474992770040176452783094191307615217404696601559913441373534497871705825121704232656703240085443746009021465374947111649926930157042721354478538044133909835287443446692635503054691555956672638858331047945783382504881377238505192741735215869398752826169139940126716807248600870823456098335671003597178661337606752284665783202742021043513199427083664341735185466336260468849488426909345141600496191215369014426138797743935712515302415520222729149654191413071187674690045322790124743351375693667294080099245948318674277412099852321750964799746835464339384403092821737328575182188786686621176226894909101750253742067644244272838078876073882906798456849597126888028647747359423425959294882464418040018930830012291798149500837170904375687799337560243945954446311067739808838287676925974347111720140853432803500503941505183147388108585434561587988783157587423401033644998196886558544899307621737770767752601253146624172211253069567291592328476707334337298129337762233246445658209180542652096623941811540049943998971547350814305152042192800857559301088649034731931668143613668174289539946982388996414969719488236760493960952500403117400676442460459701175140205408298906247436765573257962887277351187002675542659881112242815710140107697906233822808404053823750260050998558751542356360896037202205277609265892311603449528292235749570088936267541948306716860093088757808352819610441470720469637328125673213042981819230553069400477246852977293852597557255476438795257572578363046123803179378860996756805869252028843700662838796855868314605628171198775883454876656608926730726021523390971959407667926736261815921272824713930904789200300239121144202690511901552625949667593304690879679117644246595737681941311114284406136863287831861247405351229190087274999762453659888474568343462551683603384655295362177021936276818080203085394871558303833302463965451408446250097015922464598581511262205954730541709282290326467298778956798203873961641234557265783060759289825340976024379804125591382090644387840748817604441468342966543964411433209266703994289332124539380962742480857323613168790561155704612583336642603728109520844571221505400199358797330434823567936422389193119051085329269675316255533032429398650507852001639186370592119707828124076478580792345588798900649622627350289576820883555499152682843912613611586282816583814053978218907206889603796457938900497528368285461132593554499196731359846979289414460846072963898048221532516173406510682675653460133078438387251171162828911364546570901707647048837152934337536847614148699910483843449662757413014601149269971612848826228743427757593564213838929589207794279288917741833553735360519729366328329099217783945845051033533649894676915973399995000553103340385042428620217015622478111204543392172123605270037788373737408529332178875302570300969680791982487410722472440616476353692507479596684911553492969880971142108115870261010118125305293261580287895663150649955525942862218762967820129612744163104342003192725104015438433095891345065939352667309565414211285904141922342093632298028082822292025445872968508836174117220426583322436900102695608754370894286480059479906018018657264542879403397277391861047825244891925696263878037951263981848193762844725705213343301596315878387303929236678177670686239014926920315018070107187224372935537672528039043540497337646582237423925476830015018647711135848680247017193555415861586558971086443269032586983706467706943213660128907760039396898629416386424100539512322129558932601512618636857265738723460772898902041932194264355753048627455912544325409301870604030852535219731493743377593070489796326587785782394735079880751792512454441515851078538824656030190713197531331694974483069869592988772059875963530434953082063570287717523180609651824910330765656932242047573984561416968919115731293297577399728335952684949108423498725023849977888096244828191324334874641667618741356818697513806378023158146419221393446902280337926197428044442595998131850229540930329062863791492114395762850433377913813918849971843533865426589491983975310890715236738552068247129528356933860747811346416614691905103026496301377287339924262608187877461595290257956181855002901585413254596150508002204526909738804397945402100756050890142646024443438995267597301566681289982849609618138197633075127133030729085271127048424120476085211459570629087173073550666813295703325621324777283683464446820347796123927286821150044549301296177460535272591779975195591801195708323638443781018723522895873548861518627760303611929837800201630142758353876068403926445349664611872131854541650813336192019125399901329210400598099340774880576445772159513801803178170041792123790781055596956867359379039008172570635703910875406574035323488128818202652514374526816826519221562713925396918365932707647844776711189267908730484112314690424889925106728541729653587135592409054051118316400199731682471546957849870688238732154631645232087200658640734094772067700599360824898991374164580141733648467521401008781813350473284008915520874729862741861760951698054659671790811824592130822906711814325475098426328240856394921031223686674526092620030365100529480969174786261522643418261764426162441421247968137901505900607179215566527385371386528131729292470435310363386176185599174931037826582550566511186317915395607706391472870107361641782375722041009051309852811253977584026533348073840227024225485537814544528839206775650666763696956620045465676482176974032691804706485600966878345373175840758426161142140679845183160938004418672000871478697177999081978307966748555402200659959303241607227522983251488999135384220413940672426103563194169688153596941758150204362899643133736364123013042296848426680449464620805271516942820848253315642108084237888168651948382969082214193362726314068672612761532001074791347718214074840337557236267114893787661775969198970236038967298140680376976701668709296899788450135038705716059042738230347928020334244634476622851452257322885414070532657851534060227734861569533192010830924507889927209603191692833300203059126822899480506888260392695762029500676335455436397816141782826574632316591922359791864779309696686953986245613487293591403269441932267784365135102938470929984958443010532696369328098495701935972345792783358189777243179867920266037341456501252154979630541257997927178432573392556585021768932247037365944543467467680355072151250514055056852460793305088054966284935932874665400242783148656938204509149250135910053770948269023945694963575737599459956310470019424094821243455074643429254152372354649555234895338792593030412871827645348074539918159247399107207759175304853270646493375941372668117923707448860099330203558882950132037614175890173517255450019427937777087523235087631825550514116791324527812729535800319171614856583712508492332164110406875069429758787888879565640857101507857761948542091654193178380017555053431832534946576467502636469319871176835986595405719517222479982811901796613065441989090389414372960955282880510558073560188831654872102916209817308733995452887217170724937644485938214850265832810199032955007788844024872615236731296325127969146933474399594847366250095476584400812465956000003512031991188358114813008394701191586168266750729980033959142923673504265038923312745299608225822346354962496956967106077407206027566443726848483049053356746912849730708956873153867236095309367927082064428709223627005021870970597097322043543346097254516415565334509312199079330589377086968195945578970651410763661295440014341448641287488018689325930593228714168475874043265311004717116818172782967052154208916528068772290381518283035629552820830000158526750215295279235939876844405426886371732892324169582008582417634765117309778509312349553739380334166201521871776097871912556319405076026781226415200520969241018885077748408470050105034948791031849850561028058761623645308528042465435831893421056815001232422608544064667310801361156601884828599792167958943043912235149353860463455683382320155215672239826429712880606184954190020604918418279199081438269346849623624696702976347692392508481188680473283934420233077141550945922354615778381567855590273174136180960733254455923208419094265355579707389013822441394596135133919886697748294317413947252653310625759612226873087960811144414836692068756650209317285737885747784644530047261696440093073601061341657405649155559680268394808387551680888969722801113664705266005872189369611934813340156076533543957839576591052533927257339883858991583177288149930099855353251354694976391227219833452959047194602072786443807613404871247752396282916069190334135229279462064226735706995195348304741235346510123911292083572962138939287099961030601463571000603581896691869695596341859522099859000487263647523623650212433629128851445768258147940546432227149016282145476777555427041475273701998728956326807627299174888759548459294078530042739330269370964421955060784440342957878485271685743158883122422153945434411219542240657348648880139523149692786445728764805058196377965434047784102706755146629928501009525235200457610082775270166564568003626847229869070964209323074175502795149165446462738364498231888185570017517698091521095955994230307429472807321346072005827722985206996474422679421220072699305703932743850393493548849492666537795388738267225656452794783305189266686085385959022509441518666690948512149489391507655466695915020863139365969593175390450711879023121442997827989988632478494636623777001611106603680310757304843955828607930621746506606960483182117463323681809838110025824741836271302782476601770054976201485815313292930363100361374090815053932543288745571418197274094596900249304085746029585553897657945529885839776300109148176798648065462364274270432270206452509854652859024889912353431753691925037719654207111611508101226280213255959486632643113991923018643877014751266668412091111676049100817105486702159292639541587018464187900899421449589626479661243390580338372648539265595786412205438291651741609073390544726511556552589800203042448597056852671110098692411744704825621882643853142290754286867966028314517586824657157678406438263976125219604995267379204061352530647675305646996230957076898806543856759476353500863197713308058316525982205276056410256409378941122506160263047297390899738834711415041293963419702443547491066787428325852019650852536794842472710991933697871935666013331173945955804334095091780087578322553864744634136551865804148493213299246426343295625957505811374714277501661403341096334211574532651917032009050330777424992566420638184788031985794181564057871401405334829872148578379287607168471635546556851221748284095209969494307662977312202473934185532971424948740003856034795679800761879666707851638613058510361387604148366193619641478899095772969010812304317836780128463042660488961576339222563368169151276146011204199269830953558244573026684005294493284797945280943385167207901374171954691262806112247942910816214963401070544943471260777863233687290082967331566794926884099213323348483908906510299365022853850001528841129493803932815398421470156940513333178058836872488975094219008688358907454141593536216137787928625994874867455720898163933130687811312752656518287696835430335986610241025661442769174932418630213883025705353718926249569806504650097996257243573228539644660079206105233465105887494867064174708973283613097648344414627000493799035210338293253433650145316820427911678990146056739742559659603188633973649166671278959129206103751283389787163727999749394778766836801926813266343744664018803797972135714151513891230030881896104664469013496017101448271442885774024509231577829246285881812888716250878732836320352465422949096191338197847527041262933213252449086900418514170192535120180642190980318553557891933181246752153478275074080358131171335272384689239952799476213959603062206826139417546698246106661859424585200154673693091037144771483423373219238548635549587602802521715930529921408794201428141902701461773824217526573365132699845832875190802543021170024543488220150659243412501468549958239813545378121528018136670318406103742299730804730054697519844052977379623370477166000324436537353149411393796823236243498649413544946881874763102186189643435360617314888786203158520863797189594122593773105145958148497667672962996875970529049179223613225774810841184403048787426975580456279947523211029032336879635294561097257400948863286192265297972707326029716255345824542473693888717856398965466051555826413449261322011685787408146145484668783298760560744616647823774858444097639601770460275156630218403102810709006005003522904005127214991945364430418943401448587466580537610336120700686157352172439791656580528475581422696191266333781857011060785558747637964421203084908969658297992737334534639768310163299197756252633278477833026590294053070015931616038150569538206832656189183165938172229137474253565353732898103450209274319221645269596776208847145607174674071791243092105165137546016467467609198286114096575856990993741675776434968284809061642922652502376448420537496625695954778436298122618870190771646018994299647594872543575094287924310307062053885194291134208269845906540028300078174283514877243637410536059654411995196677700021148637512518374103423839236998435718849266858786186789052531001855226955401764645304821981761231200390615479741969860219766013433272429885743687711956852742495471254680663648385796905211326315039096953633146112478200593689216446326849865191462003123587382444776640075903051362786329611842396397040581006828420555463496307571410113998032983226686100414186824760885615455143893663962172530589047597042760452266669385707368492749853678425278509966386060798193916942198709061816601024407273409647912085951155795915872273576655626145702530439792298849911268935936493226580463894943306008115060653214048675576261261373081183545677558673183676677598359187356108145808553425387691512438196028651285223375615459141688185621956701927994784677925760911637960519929828939467154267331712379413976908849129099041465669368468859101208208064414478242556192223360694333272959497955659155080378284825096971662727424919848965797889730443846133932826685300601197529527431469078262233080448636222099680785541110527068047699026985447828063499039029291214550918893256389064330358796369618987048294953582589072850782914172833343134040830434456285593096726848783318907335940535176125797598324471228105189859485403660685141883146903530252929122610318042005216534155936794910755477620297065555812430726688819350544733609621315054747461386318172431605004843382568095706544855687367997262775148458488328196878427816581223920125984900929468253322909904736271813803407580572028371803827528831875705385859582008711839669056816802562412871253355186594343949711910933893471034511980474560208089000056555076502573591691713177463902854107541160251485007441888859013435630738862356026693077878896151683189407951179991971578360499864943070347445905820870653068382961326579755634090207417550833061969170507578743868723129834878918284439977619036073180391507917845935553567757991182381107340972667265858779620157400390536654116942050927452104508840989767067857883134398253301057521077806659843863071225857639187814049625632607001630142606944057642595161278329208866997484389735188945167429210523245199174499910237767077704468116155626986791289900650621922904307497607196561903768715405161818409907674472828766892504844867979740022869123847380482751496817079748315845480393965784583026804627174429928603692526982773998680461098732002524442678809285498708872586569948428016080549549264684781990254153087634637093298637534633667486147201145742858404839191680660052663579924743716627199804047824517648891188765522242891612572178265037093805000244983731557977536155936309422334907351798991798217704748923662708260029916241874490343702697376426020506304334354158824989420630704821471083701790578630470835130211743554686346375092347886529211073942575853914847270774625470380267216145437767098255828438283402657924606546252564317403688060615940667424031648721699959534192126809672039903299232903718632365298723522426919479510514827169707195552097563684510873748786170785737893044476576131947303362718103624059904847227095907088294358569425403133579091232962106102652445994421769123691161063581479821870045378055805388392226273461636819916761951171422845970682231764456853571451328281999071243194005539445410185558928779061365927916031976049702411441729594778576002354815449602193910603576295014733574184352133820517448580080547894004374253287482308462397911027624567734017542016723127022422554497342661919579694517208576646000959752260103426625766884988407706535559731564733167377908967528233121037756763438699345006258528310436992629610315816833534423340665353929071454951195074533362901316943098120379395256298987798236591315247691637654690608128658963833370402871666274417260293141434708979085498028395235720966485802020722776041960799736979445064500496342218850344905346334862269532107639652259757378931983759866310193932028128099188870258997418538613712186163165696972844760385072114917004606630649413430175403207718171936166906619646544769428196110363232210943949801373815078388634524895115568348156250316930547189399470023759743843596083444529643327069865110816150064945917692901058331597366434052292013771118391451798837589140221173226737748171107050692016099917664162377087828378998713727029535554608085783880378473156669009386552495172405637006383955088260027873354091744750732595179337215220848427568727002230094197448357420498294340359683807657578916710334424664156146332451822030314182712583541842065904314549484287700359755422725074516127892133028791237820386929326298495253863546762583503860756362682133043578156066658479994204477720294970931138530104637792207962747849284606887246255339775224842259128143668880995049105683997833952058490947985445988087877087160777608083859444512526049765929360984200631052350643074750757953567166048311161273642424043013213280398536933250996895091011129099476256399483750168392403567835301889195715043668665655389962515052518757104687921981558163408693479357883296111065083158675867241212024467828253127523110714202962569387707335698226997522295051007666795178270418030568626928626087055287047276814694676737771224551034617628219244749590826648314883057959734432984413858172941297197699607826214378358316989233244595499655220384812919603253861939402184542528599494244179626954960887040310855247974989985334199145814608057438083150390297898247955755373293927913834999213292838491986697342914661948803214745863152062675713609257811115512270112642189162200489108629984504792807936506221512297637029814445953566374324126737718798466028770984008548080629359801960902841212628297494159007966938822383719360429569204624235528165466200812535841758693227215536275317967417821169036551666855761753884805834574950202098373857777344072025044585678077004681440818131504257717015926826627181723584527893448054321663989419892713182484021417763817281528658102067613814491704906325283199336537683522893593511879372949667243499883261970520047904191638947440723502826218508659451984110039723529061946941197251368848934021499997962273311824919832499626835175034687889138897536520321082897473121123459108549399061354049838363158064512225534593501763310573397902757481506304444595931830197981442934394091472915533518315276824021130755326701625808095287084338215496720809066532260859233803414782278936658907487749421011494401808069490503306487056255605925564880349245698653808903631081699629172655108309138242880720461474316286183309914845645256523178019509280032266996142926405752956579552018173088657252172517018556110828275300417646892834619406430575234036255058573825450857074067635821541548057065680093290502016078542269525300312008177921036193814644412983833230365914439668816594550454646260432768275446022344249135394164897297237381316891401703162808626295507326766858607452678222287477432160479304042820508111635069723004267881006436206101922931905716674954228855136971802375484991788103382153297214059855819376000191667465594766571018436140040928097414356060808360888235860522062219248621408472321111250970823901056666601345582551893361339184089961693645547464239541967584475972609383100550897199577230583346821523228213650844401988572407049323005122881530607322054116855031324787474946441323176699633318854535546149374500912982554727694632963937829924254010382653192932821762915165374830866592560571390409864661375264547300206136196492556708413296795703185671902270830140118702658977254507718964265101739983479018979729329154754408160838659508140308355465325246912457862817498548526917061160999153907491919626305941541754649746447013036467410907154796142533336978882993841347344312488167223141110637110954877366670593340058974139275636768187825432795022488275539157003071652853382823865328384678058741093534197937844325542032229307988855784559769056176657640296644439891646973249989993400397079724025077417160739452998991842219352447937411405291573716268315520667294896514483031715668670218067806144696608021283253424377683508289346439521095934259200146445862081399331280303518874237831408525352136561045832712849261369069945708999498662852204444039642999764445053334056743154496785564812239735244403712951845499342405511455150967042992307526222729044734832668370357081462041459771902355054177455833191129462856270703089109266936176803135789328938945497348703667960695758214672852756253425030188302627147522535249103423748683624889518517876110351566048390840350522334144763405573764337429930348095907783103003263053147948132151370491831078098440645281487865741877527649478938630646495198089053545446084066814213973623704806033453544790639604162275256873462893930957605478957203794453309831696018778191043923832479230313052255375157792401861915975785577787828582284042046258532122781767098272297379063431252385377357322998646928233915300118202037501056306134624882064609472855872251208465077057229196095385267128028194645337301370808722104499735682345837353382912984454530595401720393703595787427372447793023771982118855102932500242299399052674643437437107442507524286520030913732368795798995808688666524785884914842160144438108734332092741404530835331352920320174439457800635380107041655180349612692869474438908867696960282142435454249153127667570562365478561198181627604433432514033902856424324308137279808679795311608751416119917078531903836999598781831702275552772113711724044279990370469085984985137103113521511747217632314096351286535229383057777979246335372484045466166840833141459771606833057296564441305498860466945717255127998953751294957037548563489739198017076854442837994458019811626735624307199101994173298012827876792499421328353837552414335838353817753451991194110342832460074402639765065840052386059064296099353450439055226761803533448012348608405718636169411229804555548936059420020428504512768775229580792944152418589529897203417340306648633527302739235040191213229475913224229885383988300922253583746047550567587832596217511548883839508216905301242681250163606091287961846197510638646650516480800641411687924240916874849944166160659412813030162404434420339655246625476935787965972962198160747963175084590650353973420398044073494759748318968400221702497395005516898366507668944999586027282770007943641106151426967488959773941946666469000880812825213116514515751160187750502934971640748189752849371931756514712325183116849394467832587216373000698375552789713256397938428690011188227650015413936195533528532697017965838701902555939009086941486143718951749548468014520968382812196009863354647782535813906154274617645212453112042445097038140879855907348050078062430535932468396245263121000665546954766142943803032809900196202375898259992768837177719157960073432551270821230768260908207173017677405547602439387339784598268965787453909978856002573104806931047308888914011831834383312756940018888910543438176594348746944207182893083967906507638036584847450211844348222665356156084001543249553468012622550459049928639766145140246236044997809220550953774318572097411191832445802739168750731830531690819012190800671132126284613128545539396459503476167309535699235892442681353176447091972201464903788001095751124178142693107712530303684698398345629049986660757388227184446890296675258794887722889830552397405037248728527351359030237119120096194316314927653180948316562658213455725332899967241643217241975709113609376056875235735276759941377135100274672341866389843604849911850502147519123921102509154694517862483316548827677370696234897279393046607004234770585593201965454074034100342190677407209708563704942846804270737225520733221145390671013162389432253995881966834567482975017762531245927453762305794445166349454715929543912718281008865702263832013787553243241982322928657392517945197407610611014972012215054086536509065194378094187747620846105380545241833574385385678065462736571260674176211498026828041943229559324809724224232123885446018898970959176538432942009487453791741941576275158717135638553836177440998013188710933026264115395378125887154329269976982788233285635918913464309087280511406821401364302810019395740204446205585041464389631438843785597145839165819129216457207916598426410568856266984134917858495539233969357104447980686052294051929103124712794914295846491631180191851432167909421255635372181529396597200849924789001336507249309850379203036138326552433614687966696907289260078464021796222897102472689235327668070624232859828903501834701012602147361724829169907915149761811599298157362250944617856910694904290458933844133728310207426814526867288564013828803140451012541054515190862508658608111802198556491593391520180779958158525669610780131740965858361469705398360113349299864588418937808737070207881469785331974302339770085900778578652941055673254182541356613207757604515623938276902452382597787681087392444933987751700285159914852775037541089222919498993186474608676756690187215398197276315275013744987375009618581163361634380497242780685813039480689264493075400482527216781553952949633632758381823705602869353136619313900525190887008676181986598288476591943777530123203382502201891527709705346193468120709827675366272094477880319765680183837986251242279924466856143934788645928735300847264602113921049401119293580333026273848583129285424754935924548179766882794880398965626341243507869096759256111613405172774784764320879125719694468177023415760327730791760650838914411526525556469134287037624117113697038375914040466369246886050472044331453373301829417681546069259092965427539742440979889283707765826711299721926186477432254109565988650455327828180481833856319241867505385663387341981589161283291314853314241647166526743549529786739436651000217626660841285903086575563251126937444915840078215169754738476889605502557463571736346773119371215080583697373519335375385844091435970749212603862103750724411038717672672455506836918461268015654797640025466699706681803002853543005365765685746603143734789157584993592135228381619342898757370796886231289541071669339673833628001460629682048511192815807587916099735164712360910334123177443505517916097373930904150048770431686935019728087558648910315559904208899154927125398213192766688196580051898541954416599482338080140444357206486274625188077011365379312732119869425562437573829148706942537947796192760660445551949070880309255330232219569541571138657365424048002070812903223888873656823197279811344393805479212724142949736989566239017596650955101979218101730491954225291597772740344090972939670141074058195349121102293414501738258186155553264151878717956653035918153315073063412468249759607781412086080080667139526529927001823209649377769527740358647020901914216596804297341114569504120214382723080654739771463824869878743433803611605144034344685109104170450363303088094625848539344996932750615351674067824709572112212643970217455654051302428133144816589669242102424254403500588501835335465798819268238636866540527809648945027434220900235162097340124956468985639552640159979722600924564176029616570784101568215027217471616470443270509912856070463866454286542813046282702102157708354958133392547253160063117447872828490978714288422087783227074471232600920756176870194339414168070862524748848333203171228034357613017285584512627113198758239131213532027692547682442575214990244342876829105740676233775380333908417913360388866194282677588275422961549199645690680364442109280404728705149466669428923892758779166122356365265132783465455889525415603605956781263633424765855633761977070909155730518783355077023452987320852289043210592587480707584401953317513103617610311721483484019377153093125987445829607187674077814826648894656987245861261269878629239358011231113115052868059667647859669084150573371519162943031456095978751319178085854361565933122320746932609080512407099189995706090139986060250456000078066425202728145365305142283361857997486997395151214166503430091505404506338834082517192171270163894030270915311885073610993885438864100098493202394440752649233908790899019333386835745752780782940100429848111935304826955869925429702708572111830722867708639877421935234577871266034988057628004311919078417794480224288174314269578902612870580711249998722911880772823371180503780509150221628679322276725976632633621702978460846666610617786157752954091693861238953571343291674739833018719486767605163363129586998282036117283830342513969781532292067440038728723196311612412052656770837598547819279423004150043561137574375545533913968676000588902941723186833279371757591350625186959921941911951922922092728484681807236541597433079484630449747595951918316410328919295339766125881053323381053179039354739980973229479495954220640350058845616109077975900553883483716418852897010682958841005110068242109556533886774195292216273158874739126601323279721045822289016914804948566626533308531250071206600496556161777347896682132232076349952404976196002000199921835247564855055258373940736805004289565258192354501155055141946631886640155519913491948445208222847779716069217607074641207480439562727112328732670763742872876673304592560103861821050429262991373172365569258048090783203606032445171672758338614129777831406171077549315455222491549386151656389498298962166634610000333671979992010792935446078760383069579026325792223149572921182748770484680688170577948395308263687105033478951292206654197390327631709595589034857179423061373714184448879479345451771161853202480491074776688229912596463047268856089412790657407440568771049985721376812376427504617997492894174531900836898518834533280114462687549837710479121519611704927762389393958480728391559870660506999632987242492661770813595842901411246515310711499262970284620545928372289856804428317187500163872108618937011542773624244051975822510437288367998065141793660625229929465625560671588100368707158341311021376294554379795298976000018222243564574684446264274047131396038420031632167607903284657556481268101837950810302684274940771868210522546609920650618444264155488354138334934212160317966036682043640334136503435758235588682246226937344831618214947357777847547461691410677021151583101697095330261714139390759794831433732123743453271839858268159814414040556750291570192853326462622697492522159636411640486541772581246462345641058858482736665644812867897636920421338545061425206741088716005056962583816819054228109043767843695422994221360281312185576094023000042904325023989353785464219261684906292885322428380967352894220702401308146170704685448490246523227682340576093078956503484015559721420622145884029938495527963212654353877170601805071953747655180209817869048606355275772595470186854327064649449521877464344923998149932423644728818592756128264455553013532337571846299298216164301048051709743104092313681386320130766186778530912470052943124957977636082883406542233372106282736405078562558351886853952910778603218251118979907418471113768322305091281380602138918595715771157194022858345539882394184818218694971322641922380985159538711083874632768382796036402117761762691277847485307308136059216479032572939676016884685265989218710452706634593250868892619989123290506097603660062951072829463173119083670784976386657853544096694460406734474940987357236937296252612512184989974525160750120326753610652495881747383031874308650891224059416569241910617952446575896889308820581897060683394961940139876328877421016809877195916028688232243267346936520358041514552864720922460617443206573161354896657681860702184465080307729930761913212027249282021494629339512375798023744293679374206767312103726463980772955056171648418316244220453340160351170364708615114664988818100925438255497001867799186029737746010057008927125361803482247354751920643451871776934954564747978097482340156881074239008819323334337951923852545654270514371253262293838161910066216821761581676518049442447143041390706935595543258755133403155040489403899977511732112567936046874383981509847749102354266071480885486515289648400489612467068147332480535022973906529824744901520188960662904003185312117440716922731224714364825735109920365993445834614162826307354735426054927292256510573974857199329940779928516911134515627133277273094440671700397774355368476727288259141317219774676908987598964955527410223484458690246089050612391255651336581337443471420000276320080286201995739520629822290981798644672851373280065865295800445277528948513731987333635777530397869649592606756455055304527691136160351485443236194404603420671453610892510859814798407920967401664347478882426962261816044833748343941165961060566292740501510214846782490084306123598906885410483394461822999510456697076574051543891333806936627648605661463984936037575599958506387439039487948021679661995079125539165338566662802325183507272771066624178803774867759038682468488710901251408643009241733488443429680698962284451600566215019446046630435790012833723512660806219122627531220760729798951572967747091570060274635451368825988820295855800878980045042321007015207396985071225099394407577273871334270561278719112213605537287836533589524805313496698016698004223262208292659424084942247933033643929225614804802425465285888793997812991755650005669607632651339884219070719506218951134711049548989465082202771529358311103387324403767078471412089474431228566905437038065667267465341078106817488294546318474754849740201411449760306706648067464799245444739057451281770861326664816197445836181707037445408662081340865916951436829620746853181107272011073889106866010076854959906692568958028585779526232187652756156324319092192961061404037380027709331890893644219237629279793057106816274905123259012193375280923026474837418127945367873267431233985386857725280155037754474086753106050692417172148832396619272541096536717587445783097808654178749899306473290317147523224600681202148960950966857357300991414219796568698868438378376882675169789694149797540762733448963826979806104830944857541717576957433533838393945940781752602714027680508798043158210055055158876994912850235170570052562806097269525997930806407899694566693717253408721619867535930696399522607827919003150311784061142917242631236323895990291171105462036178122813763917057362519905086744801125726722942324797142912453113633028342954898757229257333137108547671796404349308191183956964038647689830448016754577302853819857429566622681844106539036915956172119166793340588600805980497924879160725195161650918937799429057254382866611373020279483493510203260482363767736145931385601507779973046829222391406954684516183410378554772935905656454775464508999960205170657116563470041985934007687656044458882321912679758820418174131701598590151166568483892601483589515396595109307061997778500806550368051761905139646097019579624224650032512879601902696600072663387316318014700496739229080492368053581327556779246843794828567484331232416674869309741714702408901915387146169799746833297744774729037987555706946187151907091601878966181699022409295187281686720273681913838395308996873669712303075538241219373611848218822534216120827670664901547722143733349778938318797680174159270671227209692754077076802652112191391094003676184794778425352277178338679014744602607348334846526563364785094602375050722264002292426780452636843179588724639176041356500273386677391193963792228042500481853329260365426133374327283359867125950692987297813295432353884089073184652540795968885154672916649342603033747708315877512516872149317167971332586858802309106510443421885495219527036363946430297456560494824563918767719694782095984966558429294327581529230236938856042898424285264192788407493419842204053615008091694207391084989489717016579533147555509480082705368708482115586577846269630338202458753090490443010769244496960731157765397367487009744816405245489354366597786217145413279189108510528147996412770158067068142531079695161003769573879613830559458804129304246776938308058068698078029912412395530702624291657986407387889850737300645388617500599811095267245240162795571320079029663450644061274381558512210059961420289528103880456332941286070484563444693429035112415174972925863361698797241924620017174199000196529515644526594101840299124730205997029284058666163583020479045238742318396026439640124152712640938229349037550689147277872867567801324388390583466590090621362036184477055946050031962086734752332154351664560400554623030938639475959056095362244563243244725965273548478805772676053971058652748388403453171247549243949398965242917513721878706117165383130008669066132602305001195464790856692062876743431707825454393815370622679980105067051997933203498558267331395869981654156488627100953282750438559462425152823090999816529254259525533153242456751604637760597721652536902176027998661519903684176343487875943221179822907625573297817347171849716403755802095572536061206640672066584529062720113843777174114310117190528073040741520463591404318738263032208928625533205697168798406256932187999888331957105152351523004132439443293293807097996882786597932698289753445042498191582726833051271123038221830095721938599270819210334819704469204381747674927794716869784600245739542043154573242651046004248383350172242865562831792440400275072684299522575436323414834456776462480844931793704572490616556406385609827475420015767101492540689377014322991538906448569219985480231165768262934414868270755242769670949564405403259416083043872281338939622058175104837971685352833489643674708412016642873854763376418761751113140589451529237544846823169902749537554446504604766994319904528549525669667118009204533987884053845840392951583853182795084955201015352465101334489944012078994403733774840553741511405282681407892934144403107148961497696713280710996924075368553612645387928342231172882344370984733535624910207251150852402451337794470331510731590379203066147606182487984901107348352732390698553638797514105485670971476816941512982064679437035132407010689899362995841896033543322040788976105229534179920559342902549618338766773749683363160844722751427136227218534888993647484208258977316452962943620610336252634020694037858328698014442203231396591667070594861531913638314989728917895740602273216511506906339626709801731876298916468577232431928791972694669039583050019884590379361954690457763055460863156812767688394353744034678430965399239292096219835217201114456974072367822654983441803968064925280800930141578883295841980989868178916553797173643028301453553659857360281118838280044439521196538713978958842614806306713653570727093075163324825244942369539732223113039623123561790024552340802996068650693570219493405388549338031378780381423475543424399986676645022733401454151611972436805970841455731206409952765159459904627162599855101653846705034582903481486912134191975762765379284733949589985665320068538139129936259017004823051943117129648676333937003178189931917599430895583787239604758257973432327017060353652978837854383317719387111122438198344182612313454086693846867269243465288335873327153175361675341121969434390143506332670692183287755410243348009145675135290348770674151344664629767691992029083832680220662607230014121885243936147676773330406221133786968144029569328758973525074160715518799131835396382229859261659872911891566247869775565955184107704624330489364926401420996981146362654174512653503904965312992802544546595016437246220204636393056689387596468856964713316351156582087129838685263340381401430335542621687443279743422200267137237927254996597030093293860046506987830040973243968405168372465440533187156209794681736468103077175907724721815465825603517704773452881219568822466257134300452525689183440539275972464192991953922098411652271875995848753177578069739774190584230286908578069909918532492235817480117126124054031393354558347375695619219329601244311474564083402221832192891006169662059896046367992941642650415839333406056804341315323801027779496512074539906043637495108116709639985988255865026622784522978293700231790451061784268355847420241352748231248576054209053790314438412585781291365313972396863716639189829805343841743704509028455463391250090850435313410684254909704923959164710482060979063510389461309922721170613237991656972915029530612754789993826192978903219687721555433759510755690371693738131415287141569849705555085983492083922664433817034924285260010724210982098343761298357616368933224486299889760906181948470934583608058187342096793827097756574218472096785381217826320246403890817880547399248644127778286826773436294139617050039189754722504754522729506626721031330073119050347142221535801569136442389652764134607585858106045454092729522299708187567060448119209907065962906765544802618940667652269042018902884295616932527507294628702166181096117116446477675017825783432509522007813254553455109325194030377916118833078753987788839617458278245137091257759144481461744154802715945100043260290620291777035323580579122853777700993609006663384437329309161899580597549658943783931954884804205087366139120695710391163313246561779279957821881621833676145432426416012708282508484730405483983068188241496978932235780081402204684847488156920293737944441146153790271535439699424135863602359912539503695068221830788927012265384285412222329855438143374910000337186396101883038995165859703535005609346597845588268725593720050181740439529399936644743203163255368052717824024973531752502383900793263337402154215039292085463509419904585931291847737890614113467521890152083095279597114885980018870608920018922305446033078066300808420648796539178913195055243556150392820782758897004075693943836297553792620322202226724945064973761437607106882383272788804484284071434117378983092618201502626425045298533904352659156976686017247679714882970770027513240998146881511571201174057496429436642264797318185172660573410827060893133094872871153768837658979988944178487167134760503414307590677768760351539481796971076396375817634323685589950533533423866890572042400269907727872765575558499281905162171877186311199643036324969175962588771241073346263730520964897112874314923859130071566221684186567923388548376920140507012596519762116929273169436602455740522926537269417383305315988410695543436523810535686047545426303401865634542642082020704858350530758377985948398641033085741811069092679040127046499736142030131015169964532370403522873953632730331406441738134507590968240952351006189110079640773170455964963182058461677382979550345676064935832420802807553284140373140831074189888166441790327348009373834939686916142231271503905808137948755601674835314850353954423460872281043235811328390989592803781814201770306528472369627019126704417390765580063694010176016768357594869021405681553795191824179163834426786898647329020876180866027707272279003956049831957372072311537094947852425528127959785756480927862719236843105019523092949523952833166731769502898849309254094411710354294215511971025348667789173905594631280474719863335878741709968764278755435946673559385284324287676559900088713430600838160598933683157450137522054136568319807045033169306567047638945834717020932479453985031694814151499669517775784257400108466341984292953276915213806641921798514959795578478789373702720752972499510211765106841573560434367670159131978463135930380846427310499575074153600236695336247145983202488852501955278691451218078601118860165999524050616984628982952985710233546494381767037624527077274354640522613507632498619211890169222605960962273700287013634693446391150342640103942381079572172406043932282577276688657747357343553937570435928723489487579547878277762076814589242684168650866277793715165225867088315201379835960219867225934891568898228761628888928840798990668746877717908452699156442352240561847840827584045358691590675531320126510771102307385456114979382064103027431870898282450597377738086250627070311850759075737855908926697716725951286638087031810829779744187128807609815412045411157086714254419194743681531914634707085069652720227598106293670847151250122334621764853996909001189659662550306708137706425420104818874524490879922472557437488081804505281871211096407907568241748654924030376091087963074307484532597868336705253848712351965440037083835337755617956373031206847054502350049903713414454582832504347179895253786052107150561339786200270389456184426189844014918697760139401312063604701690356233147448046496454381299332177452927723730884618231546829772091250035073169352199925860242814081852728690211833397071571596176455068470354756103184788586368288965926649363603936462283810528120885179125227337232711693197252611245592129837700267080839255490105539921744906878677860143334734386290992066098384821717377597597677926853329298729053169110380878128099491755027054752396735249174835468974723290465311076195987975874174266977951377219228149266942847947446314578648364586687898379888224981029359363464113192085509808986139983779793528952307434578523379979087355556874237591399109458107325231945230135214418429306479532065297604607409335276649245049719063950358191390112458171253882285121606385447298230632181480748688613336628510026058378772471537605532790140031123875515044523377595596329218622980523279214528844010875211094488494103892283840592327701912493238383470119085935085743121126149417982254623307813308176986012966772762695209561533501886574130922615047878741190135678725179841121172006833939598332537556363079842279044793859365620176205932789295968268824600507810583431663901293688306679853641051782957014756395830840200699038361516729269764899313467551985046922291731934506735408455758749895318563674432111389038188315536031008849593925382532836239110978085995136687662038936806582567025658650729196643306366763317330216631744077528767492781633549272354605949071701618971905531667604438743808853765040784017377658920028470334602900121891551453603587144132375414030884984046821988395975925982414274322798582990843534585903864303798939895252302433102147039046081245047710736413118955607801461408733223308638917543572541630566735526298011212746758852404289732844811659520131403226713213320813429157602977881097202522324260313608335352500801128134536752496087604059268891001298392098017130896086782019105513118906433762628376908885996876030814880912943316056090110403313803601545594659942447753268943007260813151641329230434880640250567918667103014019980733037921272773992226756678051869875455047661246389661034845988183468914905674390283842421862831851779912617118241588050658633154854322407502003755216252288861417003783037964965577683897729896488135830501073222781592637613263724173795869478986871981832396127577199298623180965390738082493567912759265410915461081518982089741180759669157969794623031642534916057897524416055045506174169021934160275947741117545327015503718920004134750307115623302110566176154955296776378521209542257888281128726194919382402915588768293288659136159643740293577776657500683894950329740158919757153399375311758762327323970852538315548775872234510740582723110167412636117718571514109579083800874731377964559058372353931865072867948653699498056762892521321773831616803679183658243011138371628171478725547896916801198846639389556316575770446233645205933285780657110385785641696068172620857357504986886966130081393467596016455427243383736087441074207020106389990435552652714468354087540416763192268281558710900579013485924250488543853440231530752279664510718659407102243988849648802572994346317599578107046598620310462249065925622700080809426109835970943031894095134399561266177347072547555346273887407212562896876651396644514985930913426014064120695646214106014392117780474879611610709696884862552684372907289507556403732614771162949142931149633237000890771071485259950433258643578621310359731936202649895987679179636498235787963608847355860664935262097543423581353471309835065609641469953586627473873335005056711594015611653887331104347903113077551111560731862801303837119695391030890355509888534873990575490557347840419977941153699109931558858727547984117743447366872252699605686564426739143268692998312280428008171360160997179874099511919621405135785649490399832801450776239615884965507344648552012696305460555615544270445838115614305453043142371779046203458985301459894875273788608169394799407009433236925296450936672562441940279207899880003385524246304819301026891387163774103346893522603002639784586847505190969432616680807316464991677612817896721478509765434786385474403394654755545992128345098430916363181435488048695178897875653389382910237671749594631256038291757301310671202528540348312911127836601041042582837543591194097072987861572260288926083282961263943135779503947460032598874535014376657490546931874141009982074141563235594857063642225040736210710129613090970469807166183588865878569820760811214439762029339389608024375125228392427285263896994246499724588428096689655828994657520041277767053280538149095861392685798973300862723188962242213042503022864198961645634980147595523684723709958331896096241738400709876493698133281170995700328429468263629831439487974083428249631312956541455460896543953775330655129693384214674526010887018920897209320252424111413150120647269487464081600998832895718741362474619344009229453904747092424349553776541155153516831457289714575077589873054771333597061359928854804333092249054451820869617097658492200126747455654176604129564124430241969703640076620311006569434235740294122092512517478236170265012221293260764411186066995459794111059290792253318090518362589845261666493888080376727753394417858579151566981025930661666724680597792264646018791797215207287508635977626274773608660500787592510047967907663457822046634285732336580731286480636557747526364460510660071524781800955700856522831828725386795404876252545381217882353510285533357537936373366883517258474360284772408121888470766630745449635163153971675778102395935228496723832116370287969979432734161441572160241711988824055125943138953626516654186876547512358542550307492959727751987729732153307411622124940805590294083031052121753390611804710790914996324811561751544137703097030637161480336168570080901379823249093227303654517901799954727963851487144471028683545269484968662787039043918641728179647280829386732474488280351076731013037374962762602159168631053015627960135115417428825396858065974870048283845817249142547546283135972374337220401764419201581834690884941040306651307154796095785021184280284123998754766062903461504393515680975022312451993847048002315893882817150934118211215080135277620735439751361680182364946279942407124888708100826288092707280425814381111215225805042090917770462970025015127100414846820060702569326338956468175995772505374295870449650388492163071378044963499268820468146054497970977547198724084875108880201452242280291712801471579464762411127064318397743138664156175117159021507256019105942057754196798207327654677216584054681307345555765186041985520977713725558894789534117407772464963316017171867864705541724784551017966790688992197524093143210964434158292618391789943990188425249413332986046155717736676996522884713055052241599652438762426769873841857066454985525082922992947477414830832146340325758857587059600317886427102054984329466416296091710940812654109949405338019139862226810336205156095342121554028709333288387881374183155949741156746858791968446888551120244069426436604053976837072689300903343438490923470564746571737733381682024140723175642943226069355447037939689006395945170765044753042853173487774291779839391488210948469622905882015881228348030499042099801301541463543038563049839888756081844358165347223205209701800806787833316039295878735272185516867748780848473708640519572243106525724678090057800078252235894075780501783400768464982381010656355818737742649681381306358845165622447513209015972523562104086996890169025400272715151469348547973433178407045331648046616972965463366113935219842699361018760027004851144088173986089761116144627370272004232115596771368822239933134516561088976828925935072265500342053809920747171658957018975389073524849975788302070078837893323051395234330283052926415568801738329564297913202984013107236015551649914796579491121063199869584361762397392334850073870767470731118341473483933816019842422376102492024624623243692705876446291627336963871830308022542360783397541675488302481358984287848204578882378894131070499292731270247271021407615164209780622318500357687088511506594604331544065364973160760162488098866047382450593496552436423744077089322032133130247326864369986053925107117905133962820652503974783793274550958105027043800968267175627724081984469342137302164949195135465137308653634817587253660480858112106724342660484361667360122992955928796649050279264852747116637746495021088815660616515569220172486761754651395262894245900152015781709018397684878268323858765115776394499789242675128671006089446981519104295373066090561722967192578393886521290201609959248460903785380698325681024810758913540393956101664842647215556064900846161026252478655183063402158383810630602211403255289627030317509487068214498618441903636321593715243622021688454779418379244812247251861605801516406229356377981165753075705629948369147916147822386857548147403112181552835179315235993959622608234096781536168477614366769240006329298567705583778088859879228433796289176142261631264247555891357286884462673518661539590530803550128290171102466677939688784988109461448532613186424373227568750626772698477081666945392604850670788256893727647351232589337162163146355924773600799394647353598486355951238231933582764055282556485522133310610575365866234159053888276926209665758972012962846832070500706187756647034308300975113265265942372175336613416931493971648425499849149128160258213850752987638876373730387925947712444450600257003660217894614140919170804758644526157210687397551743855210193304806804745775969355756377429996095510366258845004278522118446531954895686770538179415220106782333936786193141445573725355650422962827730530267477462904060375555597749114241151794283260683277763187537053018137009185549712815493613721593415800291295948974280531934204620833206270392351489108421513344503963366148683505961377676126849044521101232117603622112915071272343827197144881998682949975542026502078850053977782898195186231761599938215596261055862769459223965537867854745530294642412091112472757121145817120817238374925146526631538714173679796276779243386848495089385051163875393860695794303671082917839336181787403307991647879470917858643305057397804687019025395869644289496378979204212417739625942570513467713253193428640632801295544761547474909900900295428387620807987243104603921063350361462395781222464023976707055250591931010597134928841085109337047690779317792866563150940035719911206451310198142970701190900660358475235712798070332526733504017956456070054712158793593826066914848815125031749607189367790109171779990744900742264254129855316258631245305698766990017848330478088132713708704915665172604201906170845075011672591284664092138811735817617993072670631554054377341190125411738581824134447758197363763468338667866334093401217724538790889474108311188181935630945339555577381824062900775842638834693597126686362848117156143218132301337020102507519951175831011941254186987462501322968241614832420547277056546949543926927754463641149450801382310423961540855211210748816202010160611719708709811276488063860410889784418832149603144540902467968759583088726784504185617292034170905410420008567976774616483153422472468907737578056013779846910987174484765748093294973204199326790273422974710385001866059473663543462825295565994935701280044946994333007689594524262919664243796417560216325730153086483697188056366597574505091645356179965127841960807167345622326738377510232884209425993673008599873797635085012098924009542611125127579429115465723583585885708933323664812758187815616325891268129039721532983477770320009823325860889598300385699345837677284735410850257477163067647414231164270910099884081440123144907172366965837514325544978750014747557376275637440191926175363197970062157179797411994157370230771976753664098622230217501958353168891536875324647235767995807534420814183425041186783430031939402064068818850182898372255013983890287300977434295070487388921102330092537212241361811955453115347287512501763392529529694285495794068698211907406110672712637903632504249799923460410835145594289214052486038365819870996502202822007648346232332282217659943662981452129358645591964593135649377044724955740630913301173043987813757401288221470080080745509295086283681535473578400042524680455748259816671758441780631319049432082030035995554359887119620243637009820149521519063953974437729365153057149361043695299642767859625621536580146144104188898429810779156178238028601850862281603200748962889116787051700628319859916714877971247534069087445821078555878548276074061072827484881949374409300723067212447272675652003396299643279203764972882253715521557141859485435609461947279543381577724936421853977102227198349095215552028770758093685477202945033054921000878679931701866340109680399422576932230385496177641482543052472730838152011841911982673446318800393573459085883362368411348635332537676908750403121968402150665776509999260834188992314808816158398875462989323103805980081793219246977799654584584844667926005678531487032339511878057306499632567531960642080289558315514887475190625253169959345978883983836050973557479955256216132078791327118600631788122357172970542386628039614539096311480833361916512084761837447651622363805499001355655833327459489325808488266899071858889248230777760164701929978195106807113879072764962799364760915148065161236919087408952220263570257043829706295398094129099347490924016446424768532136621067060375084096264865977230249817053223724793727217338692488501159998660121969436768047019921600938065041287233247868138378262018962464572996166085047854988677401373413410053924356372920799407537306997408759916356922521851836739160366875772364936872783974247898439577695974894143616250704988244047516615056530675806206392079403588012277222404478505004712651424228946994280988524151624131188101944400146603608214927740702795766947857139813033409061770594552343534491424180750024645151053135617641320554043354948196390221913991024593372344655913753183386695034735884552029602520749890870098161137942403854162393039766652323167302927413755716714487775071286004438661500918484822073754158835632904529335915884974302481332188288994406694346631798167006755418526639718139265490437218784535115727315094706623039004589925519872917174917931017067535922808567473255033971874809826698915934644869037659475538439034646223837318652695286415306936257685438221500763758505017145278759055194893865258264804568604378966282695724437169709050279650554923320674034222099069878372444668135302169193725326000086720819687772871286889899349610233966731351570220395020938502895501312319343139413146164685996793439557802214001787992743612786848694128998120537238857701582175873848883987624027418203528315528443063116058555948066430650027445400929717268649739682132552860655798395543730654527656411374775008746016411854731004243847001361652281358966663490736763319949617976930201219281153126832402943605217788895539910452299784989719282683335546110413462554764534106331604344881628239909055477514634656476590332946941626974040636103304135576805117324987137563213971484846018887727654350530377307443535741716308348002902122625234692941027428936703825790994654082984392087809081791292158959997384504693437161605911791960516238997983039902757647993763858877213870989805502535005711270806546873878434911867059143893370162784716334080290616895296593474737330003986587890138648895878115102820959952434438815511678448978198087912370002731200322499155385702889336287062668817772443919450320196133621496848105284307673618752824182450332352301176233407331453690946926913615422499490004180941434835937253961967939961627612369776721598636175398281247789064064200427899875513936674266790158354007769640567567498064499793244313417997704054274971831623739241884641334897558080098709743188938471772961527036643424520647802175327882945451556782962650294152076181230412101339552688658786816305148954321158180377362190193632694694650593249183523437101687452498819865210892163134140002055983100025061982177554025912175311722778280401756121594045078973870842187104164463907418901453991205614584740019415927080748487212371005807592720747756299761223667729612026841917626296735453411319467124817296938906157040933466954032516758193743170192373317727772644332115155531997859719943214049058640814589120162527325146365341038150194351117322613264708421894823215609442712496212047257549593829979304567406229465856058918281650302047067423820596136659271790665709231401945667748685035507682631909580590589182805658507454131753064614623566007572232029639362146045788205746451339556327232674744231737336141756461686689552769507433179844381879665035082471741800968434532726005849510359556695065740530899443594299136772747859085645595901709919032759742169220813613701379482231765132728248516144512674951761270242278194952745273206949336001784403897325466966073505143425974990780028276162160758857020893764668012563568724969141181396846329683836627087046102953614012200783358323048622523347772846021242989748680338266656241633782685641346727012895552465325280762923814480928825112610434632658436084096899155497341387316584142736138879624437990346297201950132754575555441180280186763731216491677695299443926764262711346823761949518914487632213449894709789701283840618825248751813029167166861042883067979685124918822440814315590030147498272594367406481065320672699896963959668921010486539560443511129688049829188354183372588318300664078304874388689794896209943076750548288246281695404477706287341184006589779915233464549002829875003215277637508409186372391296987797588249845483592157897516009466701464078624426954587588371940140986630557807539374737158198903237764444821114208163753805478479660228131464761729948637348136348221392789640832041702520477577700434591262746821625307214159175155913752678339855776348997393348638936239515274757770461584850083144138440542235349993011941685564936168208084601111164050207973581938036980437777939007756998455983659262999718475293291030694730346657409366623904393707024283468669816620831010283470645354608182672729192705267698998012259689863039076377176788451100492647020508967067376005231947020885416257363064055706113462204172380650091301176086213511375544851843177317988669921891131044106995537235587674771575330413784489996100584025853961075107485287279746833215797356803664784591196718568178496837646561325526381341336728080632491241321734311171696579793656745420862535184143684649697770312357037087330375945276731182799701900032587223234305655157194481960204725855430430926510450970982554081630080443908359170160858925729817344879481538355259889425607387108897605978667137063969303227883986383653409273505575538279920318210545787251887223498999128036392868512601818087597472023668470769519918435692826950491265398896360335474331238295621981372926771490805678015657161717820013491737768916916546969971382899374423348820812371318648603312954847812868887897386369459811011280741366058908204534036012185772727518560328962685489292972608871627123901261622620806566931477476037842814141684926794850814182644979282848963049191827469728802699340131279711039051523366944373285295612292155766079740972665564143109623057918868330070189449812223814025834391544910097125643118903702367644574369957319512637560717701787457034291555708934704548358854859885278384815442114300310157147165774253440502262559610423589462342617212945400882298081821318978435005435804964484819617509012623658273185538391884211702969492962541252203346065193063627627646562716798034023623323527532353464288264464328927512987062495820945235465790944887373239456488405138576354119879888205700044659862929762083753198150261268614540421673170410965244296076061683382642120806299910516698388590078814602261504758708978449787836305120739194323984384917823866192573757766346294682127984335647808335584550657712685423379793351020120527753459679004819204436295796453732272028221234824729318676979582786327370070536687381502315630149196302969916243341272108105195356162155340108330912451445847248210159562637298949059457212260574152883656991360470908583319901251738417460353964853730030734469449683890493977164576971681185147594841280617518955825222587509853978692720974990906357644529693187027357347774407499125946432193184097517997540130851391148627537716304519182969689746956266896191930707440922911051506436252087531974106940029897189156530588573160136159152114610892157016476885894245097863476557318765678157050253320062881323739189626803431498325903859994462177607928425938494331384526882050186739905468431348006488814433758963039860319329175244226548057250876601781284731561119275160194371537346278930576806106573252232077932302820295115373012800245197528385460271734996827538485126578305170923679623014133892627119258474042507563105741045279563368080891099105053440080716181213375214647644408830726756594788505517160418394767119627774255351389686039615071881089932535386160751934815150159823969914620701832654149074873734685117744108979173660165833818221079093767486159784772776447419442931406365584976566876716064466030569136742678900694750117378364581053360278071373243854798226713166379586023051616550175185439229605736967246677632306460865597728157667480302024411970348359469149083512958356832369789280496702928228508678258731845171832028604141053911812339527361198063225786889730800052361208566676240378492137637761087390542288531570248984678894762288287594402618105122661535101930211797130193207520793851653303539353821821772888629320905178848401818815451151178066270104218358111171413308313079903158593173179931197758832206228389026458364909317389696374972347223417450603910338586500991525562880855253309144057067236751642052837581403933390239834233603176123177657113171417935434916970691291004411546098706830422356242970287945571184947780494015602060804162913160920154270238156073529046759190519298439296734718776435928486121025306067174684291553907332962736427403422427898269893787981953736512299427439496850530002344648319012200979189332439627842550307961431298090872941452508028298691775835010381132166178353022609530839035755128545044602944996225505491576175083583087408060670038910647945794472822409631110281789225635728280656600010776873921979684408911999065389590247337328113233115807104945278190614047759017905477429073967717580321098769494146494710074753774560155813687890242490049939624103067221512453168198277268766297818666393964625744315647693903134272632340154509857306009250731156448168740302555724114799935928479484591523094923020746865267990816806209114418261895077550063556748446916257187551578549730747244824246530178945406491179915663669348894270123670442752282077863881173119404849085063062008099259518175637044939537531697724991413915318098934391236105207816477273603339430501978666111424392363813982105007346371635857232674662383759614580251005949341346849303980200356311652683630576909466383234916725870172900634948701810859659070458349026760672511862784560478185129451044163262351220032596302054451132579919999754356186393001257984771452141254664674849143018544088152695562796513209399329874393984666153578192097419249313969390343750129947399895180587621189278952008661524866277284959900657764224430842263287961624517957824476065816028679187470385046153962679568211193785729491492861088430745747159843692388641403297348651871697057022463186720251877427459238511426475712300767588263693080276723471186739395898450328843771033319773406744573648842701865083128109107361544542337250635252105300521048033487246119868192970312673576914959392395260016218681522810920213870226261484300397857192835053644280566454440378328136039069808713097253563892275022515907346789956784922616955547827774405739257001610832036647098969104823910712678680918099433055443956320767131732337880469698238490125022740255929024514703895164376363283876051950919296140132570123772325289705719394843925308963129724311157310958547004003547679924628344975465202480112068881460171972532433454255631728566737116946798360915896458273963094317797029308479926425174087753251839019860343925983139334276799529585960339597975796778192090569144107786964127082206614095247276946422717965642173661596205849340839108832502750923008593065101251722187554081702840515766448494038097052528503768786122991644801004614511612791562620613797201138598528064670348938805693444272897847045929695307141302695846897858890171400395904041320279594492199461488247141456221336064882608274358081475365769000789354068341152633800393563233767707097193818298224855855749946286294626377699538502019858047007882760258724748129680039387659375990275315080416614299546946046026975822257824737885514362740563987963115961725423870652777142427623554334752300848981743961093164530384716956037629625849617060642606227349641108726982093393279714276381799170960064363216526014127541077681940424010066488087108178108706013401626561766839559421082798056895801338792451724672588075920663615315467462616852836677058040791772351231741425778283100059769554752969602403301902340763007194516801526308712895156571985085886174436697899457276375513494800604763433804391322055503175432111398648321458807803703822044370751752939767869283075142499617669315773970081486284803150269308335903641483473891511916816890272230364060230330871839941676077696808514959643317086088172882849908509085281739230066594855763152909583015895989574047880764160550360601263085403202166114361482961560263995808235458961575484570458338853484915638958480118954249177530964716909577015838024814794333271621427898071151112326258401999614038471810314615381861486330058263844917460196383866136263795001213502153644253870565839830158104703683593247958284323601050107652382856446679714002852874740176431385721689364215165793491655429346929683736684133186297568296846374508765090679213195758508849454166987431517427209944509002951771064899069066637923650170479169610424767165330796719000485179562093115768208223433746431399456794549772293740196280980805137439872001272881241598810915379934504259007456704262518822410718192195735411256560555047394006165242568037596933143536691407810428838957324830428280958800763157916202687603846709762342600001911054568388935358562582406147934621596478519471215330991731187309892852995561391831666217903223475381869844637721777455840544082684862585051879822679946290116032248516221488439547287448048254031490258319945580865710668904034132003714558006915076939206828101628444568885724904008461421497736616181788829702851948090944547710041768396496472797586949305633266547118986222937687735265516642998677999947647619514082582640571950539077948611777916245282014108508079014040015287556261278985439237078296919249030639496344027390094594780465102857210717076068745017703705661173393787374301625234954952740307275026190026536655254277553395535806023264470447720908864554589374784016356267978881974296805827239730831701852718817483985327577344839836919351244953152986959050163416304313288424950665146305178044055321728593526486259627951991933927211592422056714359319436750580557243705031145972440289957891237173219995612885898433330069851282345441911652471215076878499889588082134801920504283296955456629359600385011466550866018665534929565876219148486744627597114678753229983748491225454723305941438859168194595422189604995502479200847351826043824464752300552781761132027957465737299730325718910681464284808975245587601469302342767975892391020069728572937888968665911244109770925287032573635889747852291937691993000484104436487338037981478454261314991516697003750429875457569060414836516860196253231605737245470934299622343304464814333757704387168088442953550005596533944149734031361395677119960047854120034188050949325017901210839530242697173468314873038086423662331095022292264651509724148854811577871760597358005525928228076737528033615613269105591397781539567337107616100390183324601317010322515240088956028846492411945603496974830770741278462383999290318141805732814464507916219996918796612979682839178145184843356636604668104476116423340808487899147952684174873022421065641329287077205729888468074576925202686992118263027259547124906263827072288492614934597163172529076681459421829626049062702541525266176567336218137937364344031405576295348900829877330917473410601210283851799496986291994192419358452547135746897001526179319701095268950229028801010248233242038274109385104894885893041817608146100435587195238627955617862187414174520781618032663703461892794417309898782234576097325276204240386439959975216188752591235824348946696038791729962489752739939231032570116600350347987008099139424270816489681513600434092900990321791757400709056831698340078274731104952215694073116661843899563728739029787082216216779916774924183891637093838274101742152379815662251092958831768036433042388091582987270471434169232309813176777450871459058403953653552551621958780099575345779038975607200250704843139463169650416748443043217877987069152054185280065071388427753398932513896440334034436183453004995259923552272342277545216428850321421108552646953555097970732026431591061568415946303663405443891305690666579489155369617963942443663885181642219789646785074616080403388353195571852514826362855002680298044399074225204511513522185894232592633397146934005551091854453719324523940489299963804379958051626477706768300041961007915179228341626791774493403555418957560721752931987349322548017742381366417859209766087540869556441788654362113583588623160504207644607551287407128779793799472623233629755943651355521703623946472081495105914447445999237316580570639129915254937720202264321362579272137394236922059362596998130279750075438741343440959807014048178003333532084862377016943657234534596679584131366455395722818311132585202064050888403157671723456592275628182524692727266943565896404839773964722333223461950154294345924233254583785117839128399303967507808253704128059398635004269552497544943359630413835342236882483440609041180255611358875422548765376667904048062431014635711090641246705848682690227528574808715552808983424855383658119919756202556999339586553429883334718433062034871267486280704209847361197638025477754494944259441155391140574120533200092219324787404248984294894261489027894939051502119825990457272632581630352443612771920904004424163523506202175905148209463819544518848388540163386724892673302168102784077501954225385251057384563417281256707326407314976215988282820837649861244974491929504201604445764438072993625685770768128900754333428475297529447048796399013745750523777153009668977030287032699416081164077435254574441626919652541408013512893494924211423947516039388897658158197038551806456723530149315444088706463935496369201783273932054811352056474436395743527529770160662204158957202224217218305929867389220765595048876571441641715288062854550198241828924167802586064919264879016549889319054117819445717583863352227797138865536316978926097182287988226060971700171972338170327727711165048842761970920187292126924062324563997291654531685883795424124017352421356381026611124120772159414888743215859906253864509867775599728342682695609374904755981074337313309953033345777667211168705029170378735839277013310621264688493865644382456743491472187866321998717666517864527181829211546417861707424609302606038941347260999842161255495613598855534968389171836886728801027239004216321995287239073393849512530666006141218274620151795767500034521133343811266528774082662442732817178060752677257160539394675922961876356046793603138709344789631341737360396701784261267772400440402811153754042756541947160955807832951276352085575041758699566290141596007217880789604177217508838576906480061037408189523050630033919850558582591641758970114574399007116142159493176231492110960815790790239399343489746417366791522658471181174050725895685291661945558839026249916537339642920103780723598183591393453656754153566106466396441912552606652535087155180755972968394416580446045582747927854840871451584087182882121269142153035719855880914224179871170770224308499356498580155032604457263314898187132952796301814990611699901271992377554083557864399916664408084030535698435035228111141965110032073943270221398089580889223112596141688903592754324567632778279306805668060139993829459110571599078610002019713763697295400614030904272932845535757775111577336126693478783429071402206002472917652326781782979828619607484182989780460623036618505743729903078005169510537262726945779389038547164781645289261685409237944606177622137229363133427761932954653722609059529748343467690750004158174760035884146825568740531172583625810136216009163517054831638496107434113560067832953681195111533739170519754669017425590603345558856526782588854936963064020878150225152266721371540240446229945422540256522261434516036761632020411421587274914236419557292531317112684604340036162240303891288550795537191188066114343797867344408582645069707582577161625744041785017995635765609541118169751302161209311472909588182126407207789302184469584036683544437735816915243647255346296916871410662617364040349898823117005887453515645988411316435600730028948331743386532076642231483584745721644223229220595438026849693220494906382476623496032667017749686823030594235924312226095475602239959078382845759260583632887971944163801859774302600683041678227575185555270778269278377153658946824040733870639744127365239660657610842545621596502383401099320938353377865721855549688738927662088488741395806634277903494754163411207916345263277500551219312319789888043200523561725484997439817273775577049125859438835476890486052666361034198682383698648706169076040255869702639744753068830718298764750256092368485100104897797820256515962172774444837829662759534118198096466861494162896419465777168709629061285544976696686105800318497764864678513181508277832628148012904404198306167656237775962594216136815128427118819768110669916326561661763964018256174485066413637376593374571425997788947453953813432791793301552058820099836559851309990827776788306675040868899745106637530225644796417382176882634249150932006769128919253267236123600569289146831281466928824233913181619404109934211546474026673220106345942835381863415807761295638689283130036999986173368304024371561630781282001662265144306756362346758669336530571102261157627356655508791417776505489075262699906059269533062945151238682324237749010749361617779207967027495971485408815111515433567863883740652880525915228039330900509952678957630004862634265695436121975636466076850647026601255008590259263578269644461750773669962640106907780868613422671381572776727013273522606486957454871276056256784971984175532152729276198192204230046624495876413650071363543695981470824504988292165743065920254805007760141385350778314953886978027550740703811641446062439711373871831726671911656663774442888850113683316582113987659346173770179255625848614241775478828137756945908020789260072082575705853322907489545905343681634016150246135029476453664967052616358389237858008692837698800530884445983683538020769429890756398512853273276452284601330092502677738164893149300108235685122844234976600536183411979981933991129662920374631545471810546088168459651419753044906001289623306033829239703514902131280363811344184086095655873600010886847621310402480267011039446173240321332235964813256234363442678481830800880269941664721773485860120955534843679633149671801688159174980603324589257486479503543107560564694819932006949521883510377947126393180832320929970422368284932368252750422992717284296515624145160701598068727899318565422662191692368805442298234755803282945528994050110610433876079906858068112490553905108559064346542383726869489049443910005404819497263054600588353794631904394109564949692422583962884428895833293917495348211840298915426874458509151174807082276633068252858974762963798107182353078545702172862144358397851801753827269324712924697719796371605123510165104880202488577074192420993118718839189997055515775640105529583434411176890699138185449931086164386386969856369361521740719257938815806866558612673036863440112504255478693534421705510765978756673982720198160409465552768972881622858103262582311410990076690090356732965728887606069817610713449696204143778693090244275149599180623962448595692166185895948756434823929252605395830961275325780535803964869057126506724379211192192226770654703557093961614035530267398901057069706740391152520707216819331318209778172582335267663393729695174237176028021380841258612693544867093750829631263319098351984287629549581510669265992258853049255749977962325905940791570937273721425044531743358412915503512130839761294750688023801263491886503301951304117928534725582556905543470741242847409003929573274198640233700484040599360594176132750206139063471840535386260430026570421389506807033701949035378358708037393213140970842954636657336292940814797556080440062815872646863797322622140890041587029136301424963527434987282532829574476132703597769587763625453082532030351634608949707624831612351838004829148702074905103155160247266442506463215701271978856886403871874863607317850947486625777488297351936139104741506117248627908302398915069395802994189740536302568411095627817331318829011002543239104604775830521569501171698257144591261826507139099809251247683642047165817026258636407932755554885360088915089417099011355727324699745669718916102891235903016892850910686500682629000886986748593737529550369650227622685096878406213721901528102474094434191065346971689375286223838259259706883840587917463290918071014822580145719068887476321501950430967248641030764853277537366309181543803194332308169728510065581870864663318136894939094207236848998812455961524093792796959790956087088952505900585675540521006858705256822637872221129292062899054564599583772646062139035599363946339656195733799130176213886268805449543814861039537826285537958823178372509051798388017473241208396269687005084555713903671682958463065195392161236478337964311595429069178014724938896816320124516875372867941873609679603192555223076750242377973092000965658173594605367670583193765564070259115945632379741746633934364426264378360545277090725158250711972225377183758389052337702538528182784119903017533070954434615699668566687425323521039304734571511235632697753521951299389821643327533183858320007013592824460287574536679320313908101504859656049198006489042255022018787540100374966444539182332751997334182903226314430871587265998177790525613621585296913490031893620730113549164866176037053996697839692319282252010307552266701017754651626846483765424589651573590324033815837106247880543216399483006450309134941116330495413089847729037054099618558939228042391396839059945540193670778218840492481436340181659777372736704220369122308548522282509106670541841328812000871553031614165967355976979686467723686832619557750355598230074521666435488065584201483694069907295463988269402154502801798721298381232643288219401311042665606291118356669544385818702656480203749055306801057594409791674004433317915061180194234313211415104042146326060326393816633063574222350709891151799495333273994819251812728265821081811363273519595601245987115415439297266521401249338331715214346962288767605877164510655438704633199080016001278086877824124000372720257573733128355657205110058606666117594986143246579114410230072663364469889394092672995065569390526308084137592205519790118193908982763909952314650882168387108961503309225449269381602803792415183236193867133373240046215009538552927873894934900618223006732920375965700942972479313966455722143869364836942883908240138372381468117608778763114974199831338888890212655986377013413966775898969399312759562292133868619368330601008068250247562373057400541958112394933410262072948895996451171080652140249160932716282167260005019146158479951802398623673022575733794820771610729870029553376542506834490585471969279037246514348637798780790154983235998017750539066726191296298570759873830425324880984955600663967403548005354574953379451170735895637589026185219299023973520023779663174842164823583369855681207117485843867625866781178717907873601619197354711844489998764786074975303440424707297330082546543008766138778405709940704925113748897717272572231277726743782665117898049310786836559487590202156491347629208331913623575276962363065073830020510631594301190083555283812122200239695034576866689575664014259953995637276298163830961180826719267504904765265708242481181310308948950823008193737113903418843723603160039367360323745463687965463408025222820182428648600719247177226040495686935015810778049451165906492106078121892864008919138376442082376977048922722388641992060872096634549893074688526650130397989788202218529992861144937849488856513572171654487212877177860694022354740238551750493746598681247672982620422572384340712500310717866019978750890397613583527010916233718553461291828485536072990959185056078014335442239361322880832090232480053555378979063499136243115388265889208972574181909033790872841555527586255835068899580616635569770057160186100156243023789477287497716851299437254161826788160371873035643115315401187178590611958310905980808899157069682452888675463411319143346016166174004822629038153281684391117581906622510856188381543614392957694604016095254299218987928958264581517849233246848432070718272286432228899335224052803088334853259911608452126151075163520239578510893609896045474561671365436851475225493048082321308674951792776078261202825981055514259266946607082254085513420809026896558543364769407486670812130398039497680694737396601702355900727970984529300948313367715331301328370690522475095140099794937287566103437382164986697901571345636438123102240720626855272085770404473936786436973570965286668193312180518382917971937268411189131081512226826457977719287228079215506946491724128970538654221421233381441521893808478396495640056455264306734447093070967673375969444014538685825897730292754214196486732547643067592931562850928819013677786966913050836902570002445239340350333878510892488330454765964507079764016378958253001068683770292921859807474144821067976464776865143007253327464963207062024117053918780900254004824070078248096189589343364185379890699876529440626474868040190077092940846266011556541080522539040876242145755164846962178297372652121082787671115993755690197204414303723656014092052872435791139740483214768226524360683217667469977416255649705617804916056088637087475799960778070356603569366815863589337759633302575957993621129612993204800766608990240577050654880467502708223285448750176390919118670076992826052112159593533079253044562807969147140091978343152607719382103724586711434852838095018936963171559584767052009016555691498205877020923624297625438772270023608985511115499269038374526458231687450184197681124597293458658032479955971041189153437343891296598484223350024340534696904488343980216746002779898549832948658603781616177962423957458073976821983458306212194880988156621233419967535008655547941919110437222746008713681483204046389565317977044908381765452631225417454559382485196171241906428509159351383180785010073781343076128917563161012129608559346744729673084686574372195718192888565862671435918094363361541575495343077662320115418436949487707866926626610999364365991778610054229870605632057381173122306586281490689794719743272460597209198387934150881642296681330840127037856875907547716559099131899583284385562841979048616124481156169051228563467648335393089612371889891822986606804414794721855802842464931270249273384185464173697381333006712656166705937601300037094043520742135447985984667181570513874648954210118702854671344920045223225494345238461198394642670045925953026154014534128837201351390297412500244408353399931395438154386133912612025434026184009391752348982634945318053433058268662514108414339364787944397793206169442770865120982824499050351915657685856999707432464127739177256445881929665983019217752723618948695930538438175766739676853644469597275640173176471567238345663692777183863143484709164419749838652223439840749261250020781154676803314393418489196923005963103551437790211987815184024403944120030584840781296033332954326215588815761147178367576815123674680301054667614435436835707108599407581724622122483512820303965073692428930766390099282252558559626900503897945870848903920298794557561470869064845129755010387387617941296702921290052415546422332788726495680514132218182210872495831818610555221256391542929329322685896430089448435487989221016648487467830054302888490245711691099336770250648177450850153612425565069282165230467335179578421783725642058450751489406646242310628015867040821744942075630404880848936666718205289205820591032778989762310021374803980197577196740315039060717387353429070104821385039557259194728662926649437201018491562431309548208322960502084882935538494718525054786648902565221214549123333409636762545891541572778410694515874258743626309826660446948425785097747670885337926521033657859281345861413450312550152443776978136500343684759169359531375785610329848923769619607947036961591781332129946160965223826664752794343638130328393562175148866869187963516626630533247794502515888867947255050604277060943717796871831410715308938053186336079939957175042401476630416345186079691794896164458256360665812635782167661275002151850253773356895001856109358529285644458311641510675239633733135626269857279550155489690833425724297310713881853063555549069678996428560375242420000669940746181431472126775054482720919665650513605358255113679374215624380273875961153232015500225221125832653160083866698855658818587166973536232212766138239998827490382286503691674650635233524916167311894093129583368435828063218635875311491224424007839222563800439081660534750147580571393495327752558633255223844393341068925317696469141520745520330802010679897658676737934424526567858679667929344847926611956799316266649902424996769857467787612151684086877062127762464109930759576552723561904920666177883881458553376666027767984224842003002973724879554245807970219318568362670269020703228073839205425287779227918355027417269461831867536662834471514221511271966305220318649997208036208227268031616133931559318726209998659711101604211851131741204771009076824769116692121911093845139399478755847893628261988467028427021814420234386602285897521916112213507128221960690493328027496489429452648833161819226762784367499898712854587392726711627864926608610827001587682968054249284835238195057202192937045921418861200155969376062395292390773788199283555712682387646583853719135061214588220096220198293217229622228611433844326169064790635239269904893192362569793871792153402665221196883920029293276995477466520472613987581851906548112570684404894293541943274049231683137509250603150300126848420663661574736513872136268298286066966134389737455079972297985311278843286524979721100811044055458014267213307716339185571202970770319903401330448708812813009208239934659119249673307011213070993427653093731119065887513632562801410065499188713338982880610972404288017210995983467258963760142389389431497505857923981677225795090395855983871263242419847837807039107492619901245808939638143379498832521288749303541100066886861789613931802997799327133632636290508800457624618004350502159274923533970984137180020291574239378909402027907524397978522679893068357910873500903390378602205417698131419681250229556731205127585601775569911571513937699840480419955640955311596960271824741411741742156990262896324132217647496102977062507182312778318238199898562273968268210114715731444274330249116023373850285449615600767112632820187450056169314769918195864747376160147937368440238642415421479374537653817316903492300822151421718524425160035917078639207371417229202388873138962028650991616837312228963931927166241576969496389139128131379050914691750938256401785191294081734243410696545083063391935587600195935854712094309125413326423695068934624981878976048136851368546824129967789495752622767411820447945063053640580321908632809095140204748499731027457855103518260435030751098468513242667273428729825850222895541580562318053448585953099554818326513779662892491502562466342751956749580389756193475137603754271499469654564206390748993745585400650717750060333681564094515274301207248784872175221006465093282164443289424588795869904723349528260424686052044186862547887162073069592435136825029690017038916994049882488890234586084793156006578671755400460455151868692137594955597696669924522837523347317725381016473840437216818287333616950009126482672422747714426005113923578151224295243075875721450202469621779147835951989357370411176408981424949224046771005507246150388517293828221658943174798135050616346603468311596489054123304345330456032229501969417008614492107340013183787777859825541396569288249661817298010012105314740529919160809613919547058491845237243591083848980413797669167565267003621954547076444829186814750119730294529887432124789927352910832917029768576249753367798841588757818694105909450309210012356190676989760379125238458855360284206133429018239228683162119809378246852470873408224323390919231885206718160358966350652394210017365346330118474925580271420418883467941643042273266731987812068669560459587597531896827073647884498445768323140850925331424733722293736149816788758473750560277026516975963018972371944134290414689436668336350653472606990648207506409324972662138162950241940264546258918042914104948416285623052938314093890784449456932969038441129970060225782235597440402494632787757700604568744144635136905256768693594205297753759437500122216493055233651379971220934296072449580735266636422737506041710306782057525605021476760039224156669877882465157103985144766674669778948289798988102921713367155740211657400137836973004355990107473008268009286009237764191369662574040094703842689096134756265959233160213006011895045382419115829688123193671248516890582779929275452710435573639033358870036307662208345391756457572543582817976010096522026007261099870298152860776995128588115441262299497287665862733257213510918114493887025267720611432769659934184297176285132948215235173494234328230084210468308304502396905106736277556259926073670323890501621259286651601042454266942800916544005630203674810190191416813072523009202030441926183122625882287151955900782178538096320907095405070549207166954480394359739188962777786899678402192304214860799000804346898968145096075499391696144397803416547143602767551634072546983581043648856301252567752675391838106702267952379473408687118286146326022273489735958560536001816104532306011018124015273897844978187820274710971544480390177820443697137187669303566833764333711797233492140737845869696119340065584420932089628535593967795402672181103487970980646447861448321297179464445717390186803847366116543097940904345353327027320911301897529507088268817833208411872210039302381322587319723556288866701496839866300794207438645547169059391053184580302202155155304948788451499748356964525376810957906917575702326564858665652674208319650927214314929243612191537914191374732127334309430711128580770205694211462480195635273110279299447180003859609388052444211072091479105117864540949769642271104771452433844499911513271592501220294930067026878515710559968377329528434790290234392612425079101454363706761124682687690323901211019923406832535711897991696338297233104758365624109759291342029220155308493088656129153961996244361127770748966690007921729432539817013170613276621254726007070458209478949395027507155175274217923473072061075833982473314806819043669661646425714453141415800017724304812912323805525931730517805651977807481472123128564432608377125974753946103935968998601689499159304608323447911157034527839144494449778573023736022002037800647801240485780820788998320273200205012437305415153409358926313482276981177873838217096647193646167412128043198386795790868323664796564204333171240888242156052032877277577090908304407371298584374948327862753023216400912138131003726876569877345491751061363207116590842801284620976258646872341607794395383864884715399751797501596584437527462636574976348385540687237498338544505676059072614592913090737637616140936631791450248168372680412484790633218288676410238752196351265255171919957642420294088021615976487966592068968913313101521039697065996678077932832724901620133446809175687584893752134481446373596333968113225394098507094016973260624829284575314165199876215919855939613915595740978332225505023856235405674327893486542078650513413295169229591597922264316283231786854801385135912385816368085539894874190371859446871161535656240589844766685698768652420206933948413266203300678645755067735115689228928727266815817873804267997266030284506782906050969642922314789518506465080018165549733062171285406213548786924158331559861157915270246930825684124664761898196447847649206029877303461266284533292396092131710155647353514768481344182053860136419027534674618903597582347136956980482916474551873539679729838354753480279624618185051224770421329735699468600288593131635582388492778351591122073393876571230944493634500393680563555777541724227986694181705213723188926376997587511305603400226271112443937151579738919188661851897539699907032590457811818911498556674205551489517684323254718876144705837175362807678497365072793487473922481364945031372994702332932584882996865917028529103671888530152496146600158223294642998658001760246392419490601441820578145263385128441307434891742472406040507044002769911575784058182953836649377942547442430002459170607536540049672261296526240829513899327053945763448880924152842325874500316577608608776315065834265080329027793456690123007830863432929324611860333448974532033120805523162501668647198472651858047708701437774036759802203521124288535220489373819116205760795262265767959630759948139951228402519783916227085857894329156755798044552642249019013714042469832819479810582816231298786151983805783694368497163355958557835914326276844426364673596662358273762999897361275128521618759655355295150841705926812550580259141075699331604961983172706839513683600767915843906314776615339266584243146933747138998095787906409317083912950763559368364395908882972047368325571285430930359417851853468311681377736861887143505067029062546923343226822387123448116465861366577253413557692430300797542733724713070286254964258725966006885697354982865606281648424405897206274992229852224834376807289523753318132348260289314371514853356779312892370975527631520407459222757785961882280846173605161029771031565837634063482040868634796334298476990386476061287683381014007149188671383520740603634141309290939969236698633448660399049946750484825737643935460119242484906882237226963157549395602559443074669410793501592917906956291275221360942421749534264921142532784532334383910917752186843391886664578936249772461212582100335014859741634421671992481272300275901758779508739908092089655773574803606538102632003580397707714551336620062894876250794092744914468572690739566780877003778252616725573746431270571971335372185879207497153817470768333173000395464115411455677168805647474879602747319830901904595795327518114747351194868800364229185077892062001112301087548595407136945773111361715799829222067033888232721522118712688283662480361954674557222435186360252391454991671890891947470318834934186546694403764631278000530993128639475830167907126055695014467683204829504528377563289496143379741791043511557862232965574669443722325252250061580785155594936764449265441668454168515896455976936829680513044341423688611395493807244735289181609206292395363087991279131089867166710993991284024112751544654091185283082588810425614816467521776423410249288754869040854649040082729290520659728066808683617520201875527546686446788146538064169662247307397294201357685344105951360294618633776466835585717920691729094662582913534229331169017026138554598599701156338725314550385545375503019489480293666021459236812735731708470266531260305805042579180669758321786169950284560759521353308029121237872973113714562823184943467081835706677791542965287242277724541971153211843252961509984253253444702818996958652198514133277967359669145291979844539397882338110559148079711110907061049059677339425280763762979942004585175995832561993489843920315081502976819838634699970908161327186792006638474061378231967864528571113132719933714656292176662972208593652949732200123791198177348409893058825638110348267297800264716520330317267179971044387879697204577971439054397660369934977794464647700926293309846664109637822429364048978039688541865392366075447869072104381516264866345894516801782161939237928426723150517032715626941879343592664528170246578587058433489747780602379640746942199155233233608630636029977940195348459533833830639545036850683144523681535782357405445453834137373794833067161326337011365203223751249672594719457523802860375022955872084945015924088829810200632069545927603832435073034268464441303795608106804272772485912902386926937849490338087831452579929764469827204653032688678621294404129263179353758469297292549864813560408311214044304016313095292220626869577951228422432278367279070705388120942387647915956070964579655870629830613715192109819629822901713828395489972659274276054830549389374355660950989718591996622373061398606963217215929585636929695915106682682770531929943009858332006686280035188450331877349124739344084200732679644259604646466303161472252736983581477757998270353875840118800985862671738753618505067035817637648667391116236393630003502162656826222348393985824246953557784881325344159810078916839267747997463473166305211752179733572244199892035413674156224615260035273647357391965760402941586939664322213272467316690811538807938403594914643868872332361887316595742728603644905054933897600039817595597880417371991001357979004089870227325228178958231227363292392240741519098506936729547696062532760611942177198456731327896044613785558820627320397018832565583027985269379056836758641055892103827188424731866534208697481123131955558362172111003731823250229529428405537658792852970255904763387757437725738854226446663780789373028892453053072309482116284726035650262353889099513895722266834893474684632063719702933493616590215413356286596957600011897610644853869197466174684027473179312182329343658221811559028397342554092320658749461155874821638331925049173202341399946988062492706601885325309721942443485554594027166965803350276040094852416260966114967431744220434713151716027054403336107830254381485557868089639374857402728406085320000457465114282803060755768209738070603482024416512565168719522875895353259856414123584421539440940968617553742296208985601130319763622248068212061743951627835307064742667126368650555038646166359108242704390199692432546731582843893593113684085584718208375540800160992406574120989465543029532043231417362982433668268093007256037129972553404338598410199021522826450146841181903573343998549160056912794546486359346263143072900875347639672793539403020954864501146213069711741247709739690538076801068517192245389133877993946735524568185566143850212199753356393170600438446775290175811685019145806741307235485771844807519184801144413194236607398837922587795115199591827036342714166356851028012650021947628734797519946867786281861880420608280170283876787366455953815450797350912058871453930623030103180112917750764532447059158590141365025295996337410094468507261055880669296345305196407455887539933583506799132626248735939976649047403705479014339100457353520624363116589695520452038543207426131142107947667550350920539704017669960559996939409762863842040396395168847055702101574277726482894835243589667341313092949386485289440869101869551970314917309321992826893401026417302658330385253447578777157383053178562241454200516825277732030723882210186304960946684028885298449084704515727208258881069721173015579564299127731356951846436679406550248925715984975712635988124732036797051763354187733460736878629576931263897426331821898390407346923444172984218092318756388281998232921808697382024253625962986259358190337337878372418041485124538335745572862803576223576148898004578968401207211615666702948721323343327484409436671344576013825487268550541302507343630770680948627549866967353636599432714234620715415554746423863279847113441116385613410802400464757652831109299250437200776965228781898437109103088485654069925348686613127473216747739517910115962812353939484367279888259808250825579532135448090238387848740606262103120215436942984377083157263729833289662592135353050527085818428299591598827573558267859504995035451866342881243908653620471731471300133288822257911374767483760052550118182693012635868126035502308751332763624056223307806354024337243186978891169188184650776492800796243282636837192782004026983496370943272428968119716200586897920258387480375699586742319094479339187467534615491688050859989969445630403916507382039534472507980827592284589962344505849575070772720617972504367819121340051068221997848625067287597647667828890131122347829684399010536475016226807852712810678200514312110216786430328622148492154935619321742789713064621884149750320052909985443364789438220256076591713015691977024509698091638285422688580963803964077334910100932639704297998179190475230236116900876467617836272758316478933566933672738745579290436540548687453345700373609114042664909152244866604600106685289993558986271672562888096225571081693656364643072860170700246511980677237411179859459755054060068473366401185530347129571023508158157137892428391655471404818043622455688768431797212409116916107798739087799282411849364184240869634204514744142822612577457293032876851047271726090479039711306377243595539258998333634260200317087101676676969548765899451442282104119623354259756244729760340868350637675540809518801808693187978010717874830854147124658067010894283451556846268301629907506744223270358854291865516123570714944313890268916432211743648627175335408319665046380724554131675801800389499493716850088345195995533631514947550021751025103627237091015901760186116290953207499329637476169553085631469215008396552728088303707580363536546462255705539386443057168970139082905794572568395737561844923876469863925263007433256219870612002471640507405971004322135981817575535806772933928493090358853047957376283745598339525128635992967066314404677128825845011986200845383686663306178661319145126620542066078637142269692336090872319276953692346755357363392773462349160020916326285274075094639490689163544319017195643473007159912757125265683184405124127458764356825563466151742106426766838895949842213984788822807922834034032900799209808063034226534394672911835781283471251968072858930272759394711390374917214266460135377511264099412225430012449086881976171631905860665428992247013173062352798648178914417057333367210018113392373216128834961096476571312505317003716224283015366035999528656249871300795046803218731946274351171567952068110027624341094456263730054756304504744166034821200617841592180544413704148346270954636124005532275780789276344908191741058904037286002010386688311761717093362275581884818455509443959816899325757637685643758882263963359036883037144791203153270890889338865550671958151193037912740068450756267647272360132017664620393845753446537609746255662059780240202881210744030745549171867902989457821121433398347485093812479581185701207064863491784682859245321911074345777502208958177934545411106648755407680916933966186362473999114249807348008382604702398533343051395224956728372423244836463157040459414946311140904294010857824252142869302099233186679105096266423005735236249279179504436244173670037097259104794674352241209479184815909241506862778324388754280642772638410887253527011946480603286568047518663255506790274705744715614570720934198421270610636947911691010793439468493745418754367984573574081707826818027735099953185961713463133976793157964759389798942538960947270021421481289549099890272514170817156247848446708263142019267816441799106554938366902233644567519843901997976367331814839460207343827860320812702022311619293715005589879982626012062437832836136940097978351550534876544468908080060964259189909972869230247048646153190225357577279089032708689184288644953280070708495940476173584293858282961309177224535979510447046101345656040454678498702061580616802572873710534179700101954932011173878754294075730015752151547707312459069559187781531216323660565004915196369271804460151859291112898873351333691439490885649780280041882746163185549177294515776419321224533848718525499412067843172827320938778099533021658397890562539383881674783105432918638973421741991647122370207165721762861751551891561823262899683617113113258754975188372305826719584239792906785717451694027243098266057604107984544320679870409550716357492418966216328539346699540874852091995438033935925886452555537145681339884166127980278959008659848650891582366633059418220892007423242893995813533940597620415017715571509593712921808045809412683189308914292354880458823626344677734699458183439192635469121034911975151122657130380597281561236871416620933451971710951417063025675987184922893345764621540269319153200403088601021272833163230936277600483360328548536960851219243626093753175171731675814506552110490860787617178888990153078471318780588634069925871092331787687714866255656464428993672571125376337551775086497421146436912140711732789495967392598173674562231646350483702459898783231500099166041627748259852790707818575153859553536117715441074839001162990520785099508099256884521753274525048382298818436611206803939593581271293445802075381257693064732210914679367996812759948125459554918454661550703043212668328713212451573836457788044787724924399223211191875480028122297337042139816534245411062931811817156383527286841305268778662152298455719571896301716821000706648260875432487840598806553658124324384712993053877382969255014626555828895445225715921232605738660789364114346640981929072409011339292036625392724286644981482575540522059672694604315362034259115488779116694688301330670397656737143328713728717785930501930043064031561007252518057101471055084622202009814855938011610712386685754881676244315358185325501242815337962663020225937536930035352237692449449887314419878290332101527333290275042998081971331700815426713828542136085517768400463452093780002915508806770370835419684597931340120330657452539948149629648008841112731728217336463165031140900164063967299581567986841983252485819940714829281314217424719725025724601217938049614865127499406397600288463258697553451536034551822542768973481592921125710354346337923849920780239610817798413555316010151041667550984665987490336336743076391779734252724415818758797456639022109491018800296586196822898819227299322433373075053423625410138221324433748578210811737691303757288774284086161629592262953669381391567349284247879596499710496512424099804807517450504861269748222968015064780731117339044879723220796125811427339974231924948825711950532216678310274638047838207900214858727172377132977501766078457228598307169098300721652488230051324759235582924562263151396897024130750555542889786098880572236293012063697118468591068118010718246294440653603352786687483475129109546204102748426567914106314939237400154241935527263481257987999725966205636255266437994717134824905061842029150235394831295486097938096507853032665431051947521274115005672186241828079898110795948370089471987876701759529048495860395602872726356789440150398675809825420578655554528546396717169857938341941157524685876020185824878638873255428755440172286244773674943154786623117705451561720267090052816040300618713689089810607572268706715175871266410581183185312346623963166369723261312535530596849224409470632059986820145308081196885679502485894007685280962794276118656307400315474569140523171318894303708301907214305710380317282368983550341952037350741819266976374313284065703768626909712229522146163678153032457117284460172766345070509994858230493061758376893390790346860139494873331934382291864672667880371627454842433837851823185964526097476115131164795797469214899911209886317224273386419181329734030299898458651741020703996253419088077322997811123109908355055037806934596235716453519365711432530095525909016961314211063062147663367610246999345515189308406519251679459263801860702544877396814378173687541642662886192442259780979777384850095202616411142630371062308434709681351732590575185404722794943874626691278130125019933868515669161269539486760045809957513603235908901763531063180638864036227801201216827956963856795358030327459306513310639896601756257026682650123505231862055022350416057172397332431864427996482999865436315610511155776750125284905416361001032975638163564095596786264804896665680430065975995732847531149035244703692040100314027748751082171439804547820255430514087047501022571247578340778440231070922370117028774755393710916412897679926370809103231344460383324271951747059644684080574762218166735250853816578788219901605780545185387697332344775691595713461972584332325268863465598737141269580882842293477185026185937934245976540187602199398172212144605065371163604318814474112225789856216127001549413419203269995977125482374367762682288108773256912061737371983754039454455259565416066561489967477394963546880107272919379645388558168930539154422159601753470202760853977655462124827209198168936636553783133317191803699327846890793366169866068696021131397682570735489420924340571412423364016478970790279787275312381298207617464854684636932750794534355811095230711894391728727932985175502834695104898462294364175977990025344672550958056026646554731321023806901429830734025484413262002234629070355090928928366373336308197104749878104809572784601440291533245384870143769812399426822061810174057758580020261001125588074627361516837595656349402558279487832115466485097528321020943613639408793483571334214420525492417968904099255390405247541267091904408407694555818138879425717151492013640864212777489019759102588798577961318955143198746870849279989110670978774464343343602095795693053067740317054363969521457373607425463333007410323999211375102534018999358770693194047741733299388034353902443191887540059095203913458195331110449995522721274936951306976793851500104477575098439800873981691182500555938124275656504222253334703388914313257073296063274659172410403852535729670634594761361033270175548748359600162160406410694986452862674201032488862804700999826876728468617265568761223294753027513356579201169042637765029169112828469112101901319004596108620581301468705342946243804782564679677440149938519189016526363161941229711814452077079980000496951218522466357613761807885120670174343977935690196604317703503314657129265136394181145386553619273786904256100009047044383739187709567519609902912282487613747427841447476055994670904573441834341624865618112508208387320332594928023710282643369690315045134173737111131449436805661213827705568272364141289635299256575033688561059580108509143137572342056259999427892313427482838916846023013842347172589751064254493594786854434041370145043407280074916274913299047264519392901229217650188737759574579571047823963700623386666778478313908102791353983030707082480079322265963573734430635775344635744756594279341720482980441623300233988087235294896088681342413493148868729144137942020824489571122636577888551207896845677321532535566612885014182981384337041805233989882689747635639600415045553718805124334655109330286762581292709070985584660457819033079099306144430783906556618298968150617363667942857870911979163996404473479821672729821872757070992711039173719656525291711771592031290065535103338065202989734000145782212893910244490866582665778111735119896634323972512474335952799885712779579680716290833019525006085029615654455707477129033457338866090237801232132385502516443885559525681909622639030432081917796864324846771896408973424102404532600109530937663323735120787733373497321652952721905866281172089378878736683870304803930114603338131736768327386436485328640944984940868701157173160813434894322311874755366412254589080723195183861676370449748940674087605707906119249694719366843042447592689144412319801555397323634811992795154152931483755365493115190921924193686914568518835734301185013517123127702994243224182671263375812300306459875339524121242135397352955307064009645693149438090005408591045990864173474302937290179984752884513042375210677841316615824396732151246601843434965234137148220442655433789968231003828094931102340824578779481885776092117446133739946565345612955880032785233925181384175644268512179882037879382383426684973193112195264171062883699959805817872756473982500196685472736534999539035709946437872322437152576765301322041469184662407801378786565918336036960457015663290744302766498557383920430964534667379546796871062793858095697700087705519365884692294966503967071188406280204402179604068009655347908794517073002898593073676322372154862598547546841857646313071289158874735883671061987096481146545764204138972829428323750255596896211698656123789118370950153930632133724321274389466624305499095861811766730022530991074062270350304957326981180434849505878998357672071374860430515619956767815836954398541981210463262112146041067424535475295283794978830872054484589237729500357392724421010788079186250352553397236490669466804367277599149565665716886162964347266656809512497066355527170711097112931201852719414548172430785709833393008364193330865351213977181984329649272958781224775850667649125404500038942104073461513294723651886652963068877594814586584670646969141936048093878671900100911873456851179159472556121023895921589553276050065250446922436705703415022581117441603059275121032248510649848778486199266528778653745404899882367572005776952990498517333456107661901172736128318329302368073475815831748802000173965008238487237947848980636216123948276433362702064147584492284452571991298131766392060050444014592494069687445129996322153711028555381703045099259433391281413792874725723423630110087966311777815830042002452680700077748063920789529553361900497183024285025000965078950218318556496293767531106464005816820236841751822848560972059270067741593706183309248584843589801194571101217961697720139633199479234097587376141338996477597955449524533545749652693865117830822152414916451584209992264032069004425749312039065870982009045952894808779271762737312702429335005480939133376506741388249033795859768305461452625628673747021247850779860560550320817693826579399090480706789968587741227690438194698646338798496369520402578404929293703712478657081557157122148741552343994021968060170047602069762313556522976894619600233192125837127604184894555113740295972394374895413092431803910928163429374449617832573595672217445516621470445581432440546230113981789933052034716767402657893406495440667337879812362001433261844285408184599909036692784204161951722825940225825331741276268190012890754857492248140318077568986358676997321338028581595310870504754492561028355375024869301945482024028805386519706697108275819282838744257678360123889435978220578535215075007758533564771518792335873123022307601073584482814837900213511103551134524606500148863939489195371293600565194112561433207129430058347470027429626975012013974858117078503807108837169524092712503657019391773034270777076957594794740660327663980039599535321828567611048006804301195645980945293131227685074331178207683809392838034880641310956722448259041492416859430637744400262354613975262080253184979886576078976850704747622160478784162257095956326240706317364587681413050864265399526166819888538225474740689051909654802377656989451207219912378737244594170714165427442355199807955106492233464619890728043643304824273725866859889569894216493127108722026663801475006063315299904361068392999527350267438091730961867147248673785863248771501785438853893499833474257851509627111690678452956976508928632445466562554692618869714876919921367544407920713474461697031882253908988992845872623435472998503407907655304144626684670578047992954276149175410520897960285109564259406741502258267382475705056997384788168117358671228363129829972312949867593940214860743096026533883434529457049364105492837575800389205857379471326419077454266347251961420809037278919030030057501337709540550941488624781496784567507876146543361140594166913385747256521161590350545528157538769003258754579637916763186296201684170831857887311678373169567366268617045501735213117727166817168077650082655885317685578877716146879079597083127318898764982901221259204033776612112314409225395734430507123120803989905495877911418096337410211508619635864074054572627863476497682858160735314790102437005504794149235199074694518954690928975949310841585796414599869446394081855667261087348958965593804201531387072778877885574529372852797803217902941906206873678089123189231678045212732501765598962922635136017411073291994988965994301050860070720410518331953064387486077235108780882825344071786054330568158292186225519106273947566942562398012840517515294326369248338451818582148961028165128326194568660669286761770033916401824953658770521792913424764897012530493281589318519662926187162789252933427297945265374511812278626772208156557802922278344861790553171525929823241316654942175535588180208684310711659031384146030268905400832893537384264308668706393583467544994712349975239338416545090789007602434432503663521131045829438329423783551396591081177044570435944169564639951736457178483797990344555865127001873147690997169862484755227006091263024738293743925353041781853485987688852134915291644621161244158419181482694092694670886383649274081945660434080049235509475212956181101753742267794933400527110165997915173764115632121724526397386975051995602501337564223890757134990121031933449829063160301189749863550643651115291922792513754589137136903370311074172609745739286001956226386209728962746417439916814060274261891662166224766934441599804465689059972664462609627090055259801775610869814756880447444085521824681485286845299907499011339914418079613385275765222397176560932588617778158844228235254074971278516283483303274500964496001058662077383842824259305442189503160121453106511553089486419995683479017073004941927553222065680380376958263326174693797667693498328110657519734318932288559152951028225546959736302388961348560017509320980981204150259583123881604773014842109823001372729594832492837174944245598130992639425305747851816271556712930864164314344407265995268722582773186238442357981264613642378692394228207568568292954633428226771024300476363250979303435396908602220414458216284943385918216383778158651615397867962312741361125098595611607094343575560568584461658671034708370846451927590361683127325955231831653031613426427679014133212999782302695758830669229399828768728307742220262806935577068735734836167549618125318441211071430044830050406817073061513811540783153618959559743499081748716582183966415197011949317160202830498462853791833647199772813560259889606470664877591243179751482237832122029382107645734668065071955623122968432137984596317183667362392404578552531480801335410007581394495306025865017496256737561279551300586626815486617152037825509908068720258103222638646299753538648911694996049824659036329006027652990680219729307672864082055631239959717352676597283180246894003942370030332180178070473796262531157238140723974741236473595818469531101348031248414465231272229350003038252559479935409526784226850117145107229475221727215037745690309291757745013790307644287178583221654125406902756422018396531493025396806230263294174024828165622679602283837120132306742741929075815806955051367953287556396407959719440448108057163910180230733805272274206391717426144343169522873866045077280514371517808775466986635522752708360614194264294892908799973238912260652427032971120153528679539344577693767023163138230306973817714172710380850387429395944953522564918461877190292491634688248928168454932424977328728300926680261555126870062384920817537490600067477005805042875688743065171775301874107221791728673260542150003212849780509242540224015021532253641681118131734929528896367685947827467649369254618003375295922733076025017721776307713720082601005694058922645912524272692623265794704554714993213067809829949843626950169910365571756461685807527852103630614600368226130530552565375894836636574080875717178718947788315806710691659188808552974199837643473689347180925780906557794256094823625554623094874904244834616084158662592017186844460853592399283161280844461219840162902156199370881339300673954309221575145928919964399969722308489778850282735605836857469288281521399356815062839365789673127976588957043275018457303293229667042286144158335153160577676579098639500334715708301092386407043037652944824765172736208235790686541227779701245960318140939206570589426266678703421657888855013426014586673885204516945117711787176058999890595387789864723445122786148501440128928335933103121608690317903048804069685787518084489804201093538285398021679607534601647662127610891594888358133666523131851836017257846846128750091983770784530212877741228763492378882473045782475636957733714010264148014607718527492303903849279315267286493068281632990481529359163906122723419530794427889743136238615739292009829112253030869888350324925858329425245743112328293577243349626704763496726934423270025130609020093733233347153417123290436420671385718020591437932643233882817464990918430837485862332551834546351682091986459703345543239307906441143931094669839567955234535419060810246508709337842711956871418349910752366592990542758100404045820932847035222865315115283689027184084126088299451751629878102149928372588016486337431136690307320125371457078577933796936347086223684113286504777313602112097930100966609222152212811723790244783101501744867195893230396771217493591729630942523717020381124678987051547253096652746598633132283585947389402024916397833869309254135053542292696247496590353708467591213919741004596843584967225524737551984938710259006253584316380966104396573645972362668199675166601863541198320444283574011980768050189910446062292259996661062081877821608358917591939412577655754765943859705962662539239753770322013162572493354221870006630717718517919796211845870043409464692973571120830392507419756477695870061916684897974221485955320940028016023285015636938956212619845158039610483849852787932493811315885670483765566251485405508909695082002251630793603969358838788626416647734079651675632767648450716163352904123836607300384661662880538915751870291271861502322886181280629565741957076459537427219900648438288317134169801409419494318069369255092371106020751130806019190035327666188243802392397995654325142879206328119052729722967077378819770019571458770298027870167864435229478793253856312474424792206562932628354877081053970519212657729402281855704220834784991122430778001619447880809387091470129109787743673236201877440130158786347259356320957524260498692357936454222348623381618858467256729558160464621003752790570586591013993010824060533435630456676839686893048366702778052688111043326146047467456935880240343295902907411350509544098490615817289180187316628534735513015798638017439348560271352601242203940659570394321374112625458111424818790338281712028022066162940014383933853738280722703451147845311348780794712855463045624247185483868507863428463341998689325820819880969032027479375403953731421373944323872975984360599465576282273740472182527779315929143761513947693723501526062089616525638508046408308504560121725071711970413239075403675814234708668800567729890918110674634798517065345785231693190146577604672546835982403330104649539097086608545056984900335016770153697394386060878109586448054896517229035221338962210799103375978701131896064333494901059986260940005954980096498283951295773149264276626804109389008892511068523338976240221933398252087391976596983620524950223076522043719040831052000497242517943571629960612937132676444637609560688278066915855877362647737617009397609046817648833168884298686643494877459979690767674505658375427216796167956048389121596784894495629198143942471094700875107573252894371227064112175494630204503623039861166419808031050332293661316233378675085152094645707231599203929696370670569810143586513925247523547247144127871092313288671379183028250523401780774085914028217338968421995434111037906135031634534008590964386387971667150270907577752320475300297011506912643125064685152922072885646702552138113189404113161739685774528251450310925745635538070178105761232913090957275370524944130441583527225924091006883579561474327785256725509862571005111210351128248434172858602295569761793097891171703986459886648286057086021650874301591200141172081339039264713130025790133727358092081290203512330376308671895075562965213948039847215033766178698907523656385866659320297294981254380521762476621406350500801131067597791420174994259527909418200412128756695525194436351690502520936826693304448035711607989040731733672518597793414416960202406373990740407114473860332391107465658215970861399898289174953250809329053908075001910177426233163772152019530180111664988033823622395603906899177428836085946237556714747550405154368319741032859703650978076649068071288908726495905726067331131066122442573997587310246937306838471150277147903638378983863353831092568802892559262126338727157197506140598798546501424496287343540432646942956832022622511103173332268879904632200606674530088246679302776426401735067755902353723438559794394667874010676920092838498859945714854725005912517220588143309194980619533059736062483374944523484123749613877033766847559198616609392952208684742667399285794981997644137775244847209854278997849792025266962601069274822482364669383981508071609477455954346966775889408795739427243604992396433660440680602222804351352837590656099947000394399579603189092835982100532940644288483645520482980291461659478225441024890744010597462512830179807510790734265886609941735720348642229215286198548569404384199999430377623989900488340567085099351866104612114274089812710585112304029970328019023262311688543442277246470447277532864640518950011079862052544889287082222525128546929597482823226576780883383331005347539581598114218005528544820514319191492034673589422082428446897339351948484465259145042260585269088717562298771072830979415809386282463266115663200342013942081890729416953251716431253922205097400373521618687780686366294611580132675161441617003182295718339443853568741780673781992349652885551732232021022002131988038941930446421110789528069346426868254663973810852899450473956966030934303740639647952676487286166873111049904961350780432743230228322573333890973675108953151263318527510366454388569835841600547816522636242759537602117124383178801929632606846954808455814684862843570756743064182008268311282116635049071162901609827805521942118087829351492976395451565963497548524867531987547885942440343975340508671036937326728105608953828992449007644073943545870157507905449007967461333035126464193479659429905993486028898258586928897907879165545826447817694658099318578856824632075962562748802070638750240528086490846043960567523438934369245283696381959218456289988309212894996454071704693619124932830685093662854369484438793550683201483558969696636928465969781223440576472981682747846693028589951008789081333451563361158182638942975847289168256348822485256503380451942799938513222032865580510867461120988652526026353345017433366842072312979638226464147851581109562936934217483183751107180853988660326812886751111754921935405677620773937249195704068415780472100651782913970325058049729489007576247717471517180572648955661143347776898159175992409894585247797857567705992943574092717212033378716782661067876055542275301627484386067231844382403387283894601887940412630692904571290529999427399289400941097013360069952530952844918341681382966084017641614295819078203403533522468478879596770641165783680220037137246693360636033250291018446222995486241421802377742881885664334339645003300561395243851504994998226966225296124565370679086789360013293899868223036802693946147197948993347714414777098100415256806336215766689433652081413467169647516411038243861488551366675528385443288461952310227909520203667247244410817495742302678539502975157919973352293915098442978865918120064930693507292846223186734256049460570747076272719713377238646945619947722029114296174436166143361183679240013473847350089276825383430518324335361474270156009582584918442121012295932507280719702705872082118995798740340533819990834283342349151761313292935999586128196781578604719992306285668530283856774290720788520282315949960609012118053936201765985199218501251845840148244001520497427832764401663993469018803129245564590560502529182174226225485062749268348756394793205960025526974197728165651625558223643608196375984335824544237316437504312655990096051635986248191294878132507259845229942655672357391446568349869457153806221616603814412055597379436417207808176920926045147439217971762701931610251252905559818510761474686099064688916644734715869970750030286557778524157561275540156646601514854022483117719246745169081092851815678004557214846139902418305539381888850304274021054146622341407948985278990717090041439035353177960203883109781754934408585329351663494300530496382598541163566947902606453716627353966976366824949426938099758675608027895143323240650640986240515094085677972011981559226308613467396725626307223138156550983673724493133047793880287399121018548251637904600276210183480661158917845446791568698616677840177658382329740430141760455751245832208552940936146732540461969765249650797143479984919799458383249079221942062616587774006559219658110156715419207748755548954480505941429258419745463287762181732314001538499985017432956654097964887744562410170648375280678616362635511152167123395678055993169044056462495629154918915321692029085551619464229214697019504063983763657320575190027148134135842266085240194146765664323009547985556064333521021838718669573860054796156021996259152988740609369769287983855344123330546836446357942419038241407440283837914451421971067776152671576854055831951378414001944816894038581604795199768059089359294844690303290561107703386473668266729295604008263004396760814883077750265004698533196134494864062804293326980878040756964580530277097195318183850393612039063739190165868818077383815547425799615430843855216367634334269668206436621558800262271676412604163138914684526658139181213887345385613417265750507212353105438239487732362562593938380240943044447514203997022192851377966982277488302862275324584221978220470584472735146815972424419935926355608049809782616609988066897380848313387889997843852277802053616580895371865185992869845658501341287212483688584337250630515646960655553233231704763118021283417713186528220867550191888737082169635823124312480469683420645874954705607891562555293696887471587321311942484464237180689622295642068970210356280110070611865582327110056105374348518175414073525327747238145082197004043089333308163018857849182745485332111587329082899449374724005342957271026067254364351641548431017342937773386364852788673433237096286617835812355009775749891382024605390384362194517771524892493063324597869934537629989707614011087963493720379843155701121841103498472122154318682174445434852887891193126535227139622975680672398579905410582105512038588251502404497553368447570670839276832253499099507998695846950774700546400713785782975200815657549315392976932008623667379783854373667190125415531580800987489867695293831708851475056961251516965405165462777411273452065534797310881486030010798563186413329766479440554378053829777333640967386982202918500471921171599913487605161805948289472019189811055208301533042585161113557081089172713824312513501344085299410158058646028356993023829599542627050951124495047397835438638603500412538805238344633713214718094345610810696270760970937563635238399139190953789717091224004318665884059188982461969448581679684931376064235226317916901643482693665015600842461953719132951845109791820713503659509770982983172043785103154329657982424555034053557861856387013435976692960833995793293704490394083118451702991318955208688849062325029585890135941803597096984342145684518932245214658869011155947750308593780191562749881459858388270239533842780501811502165993586470460254573226570999927495369225999132645125432105017353046318752739521174012781575900810323159596776900195442812526415178994004309550280313403773087295422688869376750663716191500160067928301191955579631364843714109947888796170176553949003787807812404678696266429392846440982522187494399302196367128610394692347864874531299171696800296037768311303305107500614157760045596947809417140227628606474089968821914613155772558421198075585547374863501820767798859746914404778415677144671114225263519875981131749179802503246738170568419530044340196273932450743315544886892056029841036621073423117897985425525378301679313048047619846405691850636181007658963835225772951848925831346389917216350915741249127374830834839546758235875569984918337617620928605079555601115057084094281422391980996756695737411129294629045046241160493945679895290986075133352994409232385618099555633129682199810219420651370971070415442155970420141220529952935433192951982250686172223064403791272365371002078509341400718054330804236330245883394470763129444306707955225703959905443508456979566391088636940620878134299470542258090348010089607137301490944298095593136896466891566208533045791087765513975282333897269542632084254646835021667239168243946754445545621531817179771469522026223641548149916871830915846910011359848482352187633645691735789410569694092749745762932619695135682965958809299366870825772797307780833778717058682075094421536132175868227015461614536810432540306945244028701916856297166375517732660963312628684973336860732182906623942818106971218191552535729279722881872877956039833004592366714217042585023892986301358803828350554202801698882913991877317396099048540805693412041010734491212145335841805135397947743795982713209271755514715816069155339154524637969867798677795901656953019057728201869449717185340276706142268963375616488300415034806264171245219423143011196739803676386668565904359592182837946867478479245347564907919946949887575031188200728227019060971097556511231025928351232595688244093935724488819156076706580970683537568631531304545914795377306478792640300589652723758451811578309955450369711323962513105730975679358630367205082429709102688156889343378515706583113581583651417341575217414530943768362128947778434416895262221465702835951321843231826897360600487406599556652912736017011887689601261833764482399778588971744100644775311923799494090022019642351256752310332498473625135988256192149136819415155259366085287253554465315625095946259669870085257987606790702469410106848286906259200194876382500584938524533715614453375265939847475068922631913512144253478429798248779276803742335877104048194124018525305866042448392481206289600116629316456610838585445994107431473134189743968006757664225750791764247767534179019468742134567790530130445227053338064638376753142424142107967973822977365053701740588258068959639290367202868790486521480026931085509216616262137552060873540006342709723846740594586159395467746187848754127020909188601916537522644562955642762051510350146803582767445725594618066846448900787993663532907341117290454357742053101722842053067597658480207979529779210544932961028050531520475122041249862701071058683786450713386340256124252117524843487946601259142496220609669849062499225670377478385682347638548157757590911230001462949407465313188517974752133554637274934138214508175041895855875529807445592480173028301671816848604639206586265045779883022664235951187594685686096762302846581385287674625586796909124611931833936537715547294809879358467791872730330998386837186327249260025592498083690860484959567494958495048135259323572791530137496358314013772380338491096538523139932243870879275422385158303975001409466331801307033013727818415228671662992879769848699804679828174918414502998018532395408892416173385040378081451683666883503283624004832067266253043694569885191394114593063529991943297910121275603370412813402479805364352020523583898052453028439206968563725400979406142001768750248128148202419028768472756591134700358806301326926817797653699653192004254016496621967276038302934907801095271517416460359153722203306943399311152428400380471459686472493123427487367917995675620853581176820644143206784928169077843561380744657731907197223324227614799737021001251751034238419853447756371363821076879885851573284312676962212739162888653360692032569998636113960015401764361971941993466797462752884333484520703806134000578511869257259848965955196785103845765068136942053524778318322059740115633985090712017784736087538213692203411467887074214031382255642756189069181997089235986564576134081871701960841826785891263493225609503993638495369221761433836133701205574635135009129050850375757523047727664413097204553235654249061670971060433766231723544970523048881260841522429228038951032734522041639827691558662176308427326326506907848922282198486801678370595751734971389115841582429589803188558579301338021233623061825056617582437066637570253122940291506973302281574466501559640976301474450951160056952699391227854704704928291199048465176984340962178616676566085642396869344174897937559999655423130943365157742234092791724847184102537076744903066525268404477676942260891509456010972848358004217956165598135838352304342131941016611287580022217677114320856347924251495364663076247691378974215143112795994743506888057442929397812175110407296387882743243975360759222953674012704095402062283175759191399381235512682852474440156129815319313704225352092021680945260782856008430631947435915717217090301222477570854337669893175299028224981242186709319182704490258096713114951703567345826150700583686708919001743852843934795374599433710452037037729638091989448459221393519389443096711661938649326077424474728833174504861830092018589031502025449453847861469908152536119425849400888529544526945861416421868317289802993629498719979565160469276001552688277623114997277494669725472757708301145305760170028420249050515303254102533000905194890367788988267029232205883687452074831380482326382243579477704314910819015498327977087048187076893137532908049446285669067734079666179311163655578580177790568528662247352063746867687519544589441636981814702374400636595716588436444434432730091169451556150818479306814685687723035260150574460266444728955781876780027389264011914365443166300279481657952828014519354287405571846655008169354712987300515550172024737115329151189630731333073163449029247494938577499897693897803200042904052497505112309298295089544713445205818668832506865066452989030617894683461611944044176787974556510106299749868219095420631150029270976171522360348781838443775545499043536266413233048104340010408881568933453053788396750273775340233521858701529591880202316584934669885191978328822905707872498090154409100800266216983148031042020760545394853200014886568343176036017016339332669782757228190103403117071620952915234923693803504522126508044517938191897532659275539363563992690636125543694035851902137590659774192911816489908395512031378405652162110878680861477374169541724302387869926818175488690299238987499123752190541011742376978613842692123225332765431130855297533996209878172346321487672512678426671872204327570923619600515786371570550140836143762001968071628555289229085987809305379023793797100388845641529151666511015371375681217351911506362763175923033679558410790976395761717361369116932743952461165813334048265626427457282586169886748801028307061775609340685023954275886874460045537120856815555115450748723473510130222035106965553309548952955702173437159699872253646653722701038758138531158434807810005367340984725561542632473112096122943688002779535941910083528132395071257610766620653699921614654018188409005900941542607598847399556042074582877560480616309625023925997729803332071154795160535224868733928001569028039739132995231576296585600457251764543180136382188036446143399117405979710928135356950575051041629458485607172178602468991133841061275278894344264898378359898192739922208675743937613633316434537951174683569049070447275625308353464269514891067921890179087177846020252127752421186716114757758132766820777107801949879753388774690989939266636271635380825092202772242220490013968441496629255481602529017273098444315994116912396470562043620186228678821369603310144774200909174478855536425482344535609436460249724558361500373085026620599547122543504650438098909114223730884607676980508360958634673495887474561648851826013991446918837675498509104925906225032375546501134532900914475047119119794282121194280916617300867358583567844553599856397565776684958700576616172422000943419421686734101978982592512706206356959669070851972728992652387055629908277464612635324201760793834375402356195803952332601879653028839740837975756622006929030823624452864918976431874071263062128239222699699756525088408403174222513813708680271721429854086765455173214130815452736649392895334105600716699294769639733062735944328779983912090256366358774603397590067452723443574159416306358160588050082033527219450191784603893982900540502390082566108386400314189027912768354036697478824563862519031261873480842123092920158222070831405143257780741724712934060090173882346591090565557714080762639384860676685906911812102480617100113731084974788781400873342533680565825007606610865265052672924170966763780179793492692358653442378689837910489577923111929215251663718143644890857809950027199083618913629005412700418752920267864682765137985094584906547440092197626774145452908226332564690780108715400162778721991512506590103014667303644702643125316796722049204191496920549550980493285496988582242333502358751216384973953777116337629196593069484779303531663218071653633648117206889845401632029477817317831105245578635031996736042274871295210183955352670903119636671742707347157829152848197742795604886360788927181602063863640773858814221715240801607454585268714104759316873273815280128998120371499299530033071454673023441861353830094238049146699591261166664099203338040300380773460639875095553466037436193190621630178375166214902036027293374900736352748017439213133693494286039066237413671220157660581477490487011917915461130627274291655023388543724464426189604381266053735810421572459613620198981381286895542370778464738164842451177530772221095059759807848493114064119859344256006513225677109256289253569085578711320541790462403821911390773172248786624863348863583418762395141872348956962481344722789893081179156489645405255530343760407120435147479538034959503994610186379605876244730110261315444422629413287659988652593020584624291711717485180760494420438742649850848452480143952039657097409221568655006199169902182754400678714716518788842284122219311846353098178767120697302221950122595488235297334251090617297283950086360408520499790378168944308752318457872467864043107048051363266789558115831266167968709894469694264040931351291341457699799855705472991022531366602911212088789870845917981920129885607569644313901432787795075184111002851276392241474690171382947730324590527280341067953744310624005805320651661169477102443149949527116622032894970464850917896377645822746448507619414634165926217179605365641737347054383575965389962512805467653203050944990616832333150812568548914990954617863121527709828491969171665844077685304698127497061714576989094588512989581561982787638350705332893671115668337173989824487529101694879955384692943515946795060857393672528901496510898397731042924923108824808288108311687981709573191773411637753470841276888590222285944632483475201874181715440196944626075782108332329116396044940212412557784159312625793501134555097910008126731472442100545148349982169739679120446951694765254552873191434016793982621726561131694056545313684639014090039703184166732130403597936325918614242197700639781549077713440927209253886631055442332314179139238836080349909321511929810400037433524709532719347898018602687325144230284929095120867738310654598259236516556518210758803133555013083901509481415674240461858619664579342817414766705703163240897167605977086148836417963634067165724574516523235494073518686945358881213096200357485052364374182690487188305161505275086878249073885220016417629790292995386569508338130238408780960856746756135629984011314355521720364595176905250649594666134205813307628758693410277885390086499210917880185530203414419259923884167464401709626109678885574140152255601249134387886645458855699846103852305634719281624620509745344437751082604768008416103073081629924696768205870667666562004951705345011703933825267486337525163026696243053475646594228793021790532480153909791801899951471387932053075001503895057044868196288718679703283495533375333080095886499969161516544126088248158065567887169579706589073306160797572483985670067490583555885094154230415394379233873240561975735570231613681107714051698913449129940495601613760308235586364293892797703460544569169912687173909951779635276553737119667046569417403836574775908692773151856489611127139350283777536062971673745848707536266887048563835418619391342179190151583413507196326591880836041955155273073020822624177567456189997403320937923861698322319872948473823894097149788656884062050561198584273759973446014423087162690991277093530592997998836637054922181657603644586500372694306734518148725512448866417750958253289609376061543653434684784334330540978726522761685836598503674491137935942630985875732901834636684338947702156626128315917874401251122941425857259524395291205896205887499025146740237810774730049906506503770530799161140990061519715359333492839653525561950632212149685173984802803650832944014821148968106243122995873193403993696539947624739958628561567764488403919848989965211524493128954673614616540534240226800403852307738430251070282544044020109151731605848484594011184917472104720437281253232664204424410883099544375499172744366943909493885876542760753256428471881783910549956005252621198285470434416716229518880628357745516678556563150264824593013076505347466633956863132463210276894740942140768684214203056453277948331668564434758722186693844726628529979065477444914132670564768657040728681552180159704019164657063074262070557793020383346889992713009798111722950897814138752732329398182732792007213752954654683079278975559656082735802960032469812212518330016422682392881690542473513001874003926031139863844617644491202100452309705036417682061581096560125782545223731014254324513620705060250270352327827880206523757191984300251173330992248321937699484776297391137152815769623934716309743633360413177206726123644633327942198467612928193771769315789929796179087484680597260124441137936583034433724925588231974923771473036232216801883507789064069603404886987981126826375947052738346260350737848793731172093441441450445913480846819426183358542304688317448476381224750000059473534172948031364600068850676020215186016342065723088678525629895637055869476060098681686678015509245064169562731157072398250708486294243561841323000685471360701231719745126713612697467996945303286502772557369316941763642143352270433825228754285254017961355717414276821338327580906232939236256757875786588785043773823097857628795565778191582601160648061398648757392294071948196146603906130778694161254306311187144104622346834699716245050881036089333928795071959491640891112411463090691851085942437312299714905821172448254973008460195924577352686540411770196954021899604545517436237836893004382414822095863050223669388723297914845763602723866037703267822669208557758487647379003406674419091006811560623784342249237403072054484262262413332631888237483720214903497398442121436576233933413087343668966147650850715705107971866346906028057538149981117425427237090356555293583875597506730488422071034762469421235566041521358562527284251399668279942214457117706126487650643088425848008888656266929804775902019165377081805140829348530422367841299685820134536524735182284984129920828101499711658501793112840654183107701745208748411876379785339895013550538233520917413153238477280235563329191529251988261778911497246882557088518782300890122944675170576457139066636884754759209513017730126024142132790269271052017175176922911051851490066558757639991932908192068422392492999337582923558776469235738479417733479018583431778727480962105317173043338772130297917264145983780571067682843244424483298639907085583791118127100629618325898260836071171198650757232763451895975180067101635224874522699684158820726226565489434998344858720119416261287086352048881140610708107372907704108073707601198969621388359191762718546163131095348157905014191087366396653741753865155585438631567437417462229787718502233530732368162328794573658258235427769739140903174772041247153909559961509508969083369773312453967592632875433809955065967635081773727609688623186601759992614427157765047681988072161136957171473702340666039149618967256386140612560651993421976870074764899002176805072917879163469391753721228686117548352680873490616674654847663882686933348386477204089256021517394913831687336165814847700315498335232776169072395901625639564493409313420516185292309180615910319555532517889238553039843947207777275178870175006855163251690576725807969896851338635311955377696855634281248213189182899685516759992260411726622269534016953396386619433105908062950367294641096455794722386727606911580735884773752714702179538456557776146294592585746839682131202947098197279730644343830092281031707820197782033924462560717439666991991932531104293010557430237551954710184709389818905414167164628076483961358990243412903132856989688521392686260568020464518032913384371415169728853796559421499627527282130108546244278892434264531291133601944409301934640948971917237252363464320332174023978955952996153684022284863968660650763272165486861279453276684834701293179293648905187120831505243690500944899037387776586043609011602220780041599875629013694479702147102306730257134285995139287690366640615533963506686903438951994777699659785805232131419169316016330439221205510123731046662274286957844739878194259978962069437546016484706141559530279547819356434976731978855825411270623100599582231621993583650784669414929141805668133816372339740896593700688312312480940024451244994374023780080458741657311637069632122134253256534772482988869161084095224202676372160315382339956786229894398163347724071494714264854526173069638536333390526225875717744165830614075620040974133567220448506918691430142024418036388972259683287729720164166764002994727532121029179645705275263451550212725763986684733120619449071534856796737723078880784565216185843871593456646660936057878048494469516782113161597718337236758262877104259189086062686253022174191900093433674285263908905605229430884418648689329818044661776931170761519548475746832273197868238849800726757746211944566474125828858334730455349298704536960562814404311890818196138015988644510370566535204607497235953393615906726592753693049201287628659152712422128442405849143668047065431335432148356430654118567529305780925979173068255980205708847364498668568855276023836976813370368253620593748545364971999562222695968620487940472265241317662724180964585779264619765589109344974276151669235486317559123837881286494640411583255579544572916075196305601354180684292401397572363739294986208702406743701156753703601090728111750275934463652353387840309808196680201975105659128681161473783880204179460623118209210259020653001686024002553025933510848623212048639423219867548807970412202957880948775014034333723623422649029491122246028418336248541398495275154239016524168706728148596332557629770485828519263250184000013801279399842661562312474926196301520787695721762648040770495574398493852869018150468416366792136582222383363723462373859127832644453237683705644122389736056029587309215211779384388389184981821606762622988654228873322351159320044726887905417947156465006105429483777097637722083115924326330598358200868819139688880554401178420366028206597262967842976497361691879458278243215245228489191271067674222090637992947853953769440159297526576527270928636540857786167396385024878778823964295485332445063998383288876859538899764333189693975301737802611062748775925139336176982416468408347053745779325990463717022428017671328136801968027135219978776010400363220126415902630979434497066927011331699151055600541732008450576899498752587251568215021099234995762973047130011473149850579022949011971385882890383792162383117780243111442053991106418477764053545923567038405411807092166088735062820439413363862777220269490636792377286208202345191228695773757670399540416591882457768823941836350025740897556162904507103254967212653957947548334337278545387069169800626249621715090129981676507194077299759824696091717481827602047544774124655157545382636461832771125564277508744633429090915202819523980677451377021533734355195437063746635478212771183245154470830813232916575595975751691885466758213263520440875332468167622220604800761036937341877483352211297852297188852296820179367206856953093314400218944260870513305047541007443915562381214541214327531547399083289857954854516022488562802345812261504776610198254777810140832405482288042058371489885969337610995391764395238027209995664034479076952320550455656837485384607284871240242780059157164625123081110821761156042401805576816917866507642425873369393306194616205284352827755686930044130221348819563320997984571267269482107037674454622732815201543949200976190310413739106694336049264727959520751861187203626534821131441233617633927883893251193403635565259412140429382609010606579152591699021733614950122301666288361538117198923277525279251105608980130188261118064379317551040070366935245384284638397326159888562817717285658913360022862824834661680306237606746555800054498644844765698380467418007869132990957973710096866554646060300534310235765246290124563191893138403982115494670735360713086835824678450279709958839547647945056721968924028981780820960329496620718539925859007874538212230121870622348946092416938008855929399599921987270486319340797571504661579578975887315759167115166819650228527243284384773644787796368224023403534243703757274473227536351063071350841412377128236294630322767285241758497234885015259734884310470068464919172973839680886986512500630194439243608928755992684359731324024432169531203383922639237971671929940737495058733927903877360407382793409054504944842431019842442372403177261399686755781786763253547935484191937101525714503986874950189685197031644977915017518775847755138674914772357824617921661753205532921583467464352085848426885574032465979865126870705079414626931187289419238942118168146020469303554017517879036479359456217863540361993326610930050336947598508850742931053862012968803906400762636824556671396388635016890247368761521259565453326413394788427366401394238463525074003052240844042493199225393067114340813700513512659551437603399864817969891695617290457088855719814190336022845924157944644854719315134547290834609558259039388456866927826510100437984992253658103642622205454724414839729229361532788375447298327915611572591376078041547999245954997628713425236629004647363094554290009152238043902706688275718998218924811793881243440275494505197204232912342511452538281382659347915908404175166721746706918303943362967909606018066495739510470621980893423694740786962211528558552968365909568079695355618085810768262662280789772186212796963779471713392037971602205709925262674257299841260175412299250417740826071635711673118624992201037045661315000569101458505917175957269097546230610282673634146620357612303111844236209234998229424878075738534583268334111570112595952817310494806349558817131265960430520937790642359183645630728618449230286402203469808813266761694411069174855044371640822362045178655772143250676588083620672874653783012807099901506449991170482136705845470698638561703577523494020501303664342405832400785165090636548340979091469448719656485801517630424485338792855748491900090851409469753297034441990742292088588194368953460597195992154186355406706597870736512898930107999074244809087385717645238570190531502069597107221049555531118978707915363701023087489099304176569345567774789927709635318017772554365277761345270123842158083638261884072721316122248719676305392352173156087544741773718930383384688025058994301864600262225269566708431813782148083908490687046534702850470828574923679995436820067157609101642412656205402936333768176547676520752217277315870489204920680976624212763712877425541037855370371219293762537167508952401771355655698254671859443817641929913823169810194878816951832487126890907509810712537855721669442497343518333164194372637489778265717728800721448096482164083387964095985385228448125041398938071905376839790636820055213948295484837196688125936705135802054138329674073472386989436622358140538805153317991524526784996111938291850185271792410797963209074704017103992725085078913206325792236447254651145694681971803225010283529774463609870643281684632769474967409461674640465509393499033633412895424408823017717157637712169078900142187954513870354655637047378940520667727513542175937592002162843079699279218043075621828192729118860067377954771883880842072067372043910742571611736406825555451680085450529224612632227263840048670111401618533826885196986506969797697770075971752229320088902653537595582188977308373457450104389965393738747382840959554530064586398664910704818775538769840126110570251463989232579322409889575322439838561330819150258532321486644378795952493840935188977856130544079908894878693529609207265478688233679897170162608096355575365994900734788810879993384222197403774612242803464525524321152740516038849930968468771503432422120641489938839967895143184273999064911083954895468295671339275828656935864844993153740701562947016937732477708293276863707372793013769253396734982776439067727755079617347221007354222949156067189162420423524024570208342696122959323118439357657118274772391655889069759606967323381604845296713825325300282090763809736863540654058104172033529179372949533694694574312899292025138872779709832134194253433850868076435362590773927990902558877465791191844878088522894781880489543362640133588202550925631748362708652723792683736710982099341524008804644033200041154713424632470829353764855773778999731400378296410402136808965723325489672847236289366111904448822014460031581800274908872004611986526152430085506859248557542289408386147124838838454584371508608555219069154327567321403354252778061324210169963109624222811625598861913233209028153591404249854187332236686443499577716624287661199441456638326569464832661351497474981642539485473524005526274570629845603169821077443320100629901068847481102160816748196246552572959338164791388611138599877726303111932438985093495456899571506088242475789001361705180945335590059855636528577915291248183281352048052718850932654449199960623602055569152557516419636731216659757829293989476397504269303740112078540850918710437892839849251290953954060122661473212434779066005115435320382576904398681298305783617931603770105122765345002769741497915931622087871032063570206565776812010711860253558645248225656747583697011493883265491596386707298388488839035475635315400118029767105534082715183730491136551247335594672725749247267145905469939552947390704232165582836295093165098031574236179848256280083445884736075459926722624675485308715205198638596078494824700452409977476159323549337542966809005824398082567972199261095209662253425217489986677074742081499433758976762444116058845672471645017159183872249434585979683578782130497998630350003484603186199602739283826673565384161742591164590807605471583595175505415884985739682079717398078560098063010660913021748391361283159674058704512652701299223911023912313145565029107580248175433106907063826176546128395669913996204691959229986241462674378852369174482653467811624612916733070807299024118087625552655997425579842053158944754379083719449102889051144042583401521235951264975030468088710661714106818185226602027161392677158612719030407904818389207026455620179664700182614779504970111232308929251026275170402285113409810318739627789545089498167746515073851803775923998375891461184973641833164934779923003310090400393057133200953138854647870867087185107804609733491147707631347642273268417336272349308656390373356370381780332848834559357447872691685740356508213932988933358955803688967694318871703468582494452337625864244815769541407635211714468373913925312660460023329767469244778309411154665556434519206493482938826448330771695290816555911389612031042049592910704328561079115002255735614028286275300021939674011109216490986256072328905119044387712421566804235534506532136728293613137248165032389827967842695928001584871524591849160995323151864711845590510730811986931309285103334284854628264727023509542083041037638947976159204826560242443275894767182836749143794106690327712833099178254058423992211201093348247016532551753834902098722664356265367323591213783749268496763299154980644631227049085507935061216627486161312847336265041631950267206175184574707697884663338979328651790814564673444305160655904292662871111150781757407018927359347135468713011113588195171515845144613004361510454186891432402194586382989815372100193395212579840135728606369601564233464142825803206594959829908194346552844478403757307458400274457534261995957936066340537911965677197359884202811283672777464709221376599671489214251224872780640645141500966314892185756955509358491030084405857100047938648119249943381561251876420896436221552907930752601025536774635781119296990534576482021908421782058005352693636146190036497929702009638424500782731262412422710883832971670957483815756472501846455707852737420891775667011292037425400914729749818646440875438141819919671906903249869613960756745550160281743100559763224945131883277292938034352653788816189048884255170224204661278806484601442404545922225753626860915579785735614474352084660129463224463514776942607970659105881182781785029645134522006424456616760042788770026650318104443659137784145067844028126354512937239879536410167666525483746858305735435529646599883293727185781701848090303223558641462904946772588518986914927272767837953523121443775865563230442400895346542461612236114273607278547900214486326787135169406109632510213744209100834528874882490631778294581257699629086159544671814125168184891940221121766694433568881065088009635865221969062379350736680124912914042340412857866142561938679927109169554606659035553302444861319988868657027929707195147393828042864829862799401501134708442240442932642843266009759999882777574629181548736257833171865329340731233593663351874174479906125096295276494445774405096222917893570139905986698523876590730948581520800015779348489536761378101493463069728430946924847152309234950814995607115556690359527606845517124517229806600215414762000230749765118153926213033319905401191163448010081587478117920176398102336203291451919372424732920524441400609022307596000368477139321256694298914613579801801918978674333658034727908870086853413839880906734923601254108943077874064513187158806369964665767184015502628175758808787122879702466113011402219111317011093636543548157044101170913391796441487567654247713931541385402306970270062162567658066705976986253419712803894127431123664095193344700658907867067922906423864517835449785705501328640570708349869293713957289794629720321327911817936209120305771352113764091493904163891239228658506002708043236226383128093871755339004217876095069718477622226632939392233193835706252747407864994293890069784942534832738122477422218961370616768893561202184925911438971567585568540822164673680903150848728976740944786162244324693238785003636196132306259769610575442006690317750549466674630106082884805857473161218289997795691358021272730312000924700542966691808055519890943959091099428041026592573871483205440960586699735470595566663839810107199361956369203931204192908780897175670136212163347074109925566242916684427718616333067589859142852102009086343235866371259697941155361939254864203304350126997670822675132829358840747563190988719214450080482053435703868642417921961466534058931345822615499585039107598394014352127510408917189515053966368294641717195058397605832949695418439030858671909133555028669035606299974163849332319417390528492392374275019111587738793609600883522046638780664103219343002908057385729036861230210932734176335669854831716800903144352679040993519184625466264596455188546588514852750113593946129117104255118960819066536235796884367551492502109442978693061002169087657908196922102505048029368787748001269647927620368291368404268397958893339503784792085489328365429629425318383203968050939972756718444083465997357928241283871771595175349303108568042550041661832551397338042029420873888928105651674736914830505421992885962733929718547546743048805657222632294171338784497178550361468914668055267321507988415061802294078626700566361088644703606534537593583623255682320727859294455390866779384848046615358562909565137950442518310937576324654992419762883261432225988359477033589741098505533342770362242471078656572606604382437873547316360102068385029499113758485341331903909887892076612558507150173764396192450024372597968880912917663710433080114802994270985847881004435307808457051684097312490469709782202912775005536011595203655713736247795653053310145928853970435584046346800162606152619789449263807108642201051939893564178350918572702675194213375030322337902870756922144032985376945373540440744178740909638238430000920088038217005927542326538307355599859414338608167875325778728581082323208095571226822159411157321005398036674104010034369059820668843227180332303319503781479058722275146894530837322251549462633153079667481271085822114293413502493636308216123710483130058216172491608325371670231562102808737063089776739648701155443063507379802383031851732904384481898682787832739701611478526266010905308051485628615958689178362788927437210854232971178181775401263061160075354508874147531862123363138388472959222803239720744635367465472606239019233444710680353856496058801976030449114880090625660203441331181410796463371190997779353703424980393442621905446473980273602276378477008399028768770025393447886047152525160546906898852541015209201008197780368484400376913354821182947555034603696524180966328098837570298773130320839284600450912760689563058001559562126055261275749109093457100311156864310165910118744451650297941883922945508647968939524473975984755176803346239795055541724244455964007850177841888583668107676598483865049793132107112771943545731141864188063274743710516528181915632970310628368899686325544183254199484159287074748918931661827418523907513952915870177619137491007865616908421590273095278717690041114081200488936515402143721821196423987314460424525908142454430411968312626938371546747343106250743591928957622121523026726780984103488049561573616278076610561811063277633685745392417745260201070412966248134565723527698826292087440291253248162971840816000805958873779176038030053542701341514889987010213410547167319393951551892116146718641642311026637884639931035396462063845354819638116171272059552735760936615999607392485096990652496837799657727021261542116944480145491107383031379151761211760445827630345380167561225491090668170265740004366889023566641175251503761168344143332655618974422270294330189775945752529419087844812532708187896533768586370610143501571963557170969909521509898613385591861924669173955663010110066838374348965475502244899566144599146512738729820973819171964842078253477815677329808476594458197659330649700904706329981067160666087330870630329875172409417725601692332496873955923015868158031145116101543911079327817160715248898977948367870177427602518416141649591060318648462874690396356270323120399715854331063684986564177834006298772592620460653195889756268193964380072498948137888372788266480709139188293723602541136426833494295768311962486491799326639113207403079775988265424903867365849619395935380095543022703363799524475554117395809798485537790207631371862377346379353384056647813137191153441068319970083064787521452490063902953942858082611629424705247721014325055058105221031452601132649353217913147729389432787367139823902330679641033790851033500799824475512856919724260651893272440818559184272443545628775753471348646777193638898762225406432348334138696314364967657736481596787897544524327450510636728875736496752669315969289701617275574373362705686862915039691504031856089335180599772453581338224259962805733273935821182479369443998972063323157248506595252157341489643599438718223221905747848807857728413116080984556187070847918761752972487474241108855045159683171296733824275212625684820092789486027654298719753665826698632375327033744885810376155679976431657311910502786165513121537572562824378075110625793360467613861449062222495816366046214466528082923511364923062723602565592193650085154094156875790139389760121520496257926088403568035152295794145226839956633763720321607491909540263487429266327229756782473760686222466441891355604865961062917093787536093934920679843801794364729671725730957582710254446919081685026137782332049557616376457111398281653642323836285236375838648563042725117607192995098790066379654448748183077362997952702014336827982730898629774503557312254455589085711679414794483473147730256875760067571245609533157283616176111326539725316191434481250181451322650942809546512593644699395388610395526185149129698923838280322594288013804011540691547955554467635168350629575657019209390289412192090994662126901926110635121762349403684889701385399410082088611661064180301084867441909232051854588050963562005894028957281973750427040870281019678980132266435360231602596578798560598454450103250131258616201921324073507553703043643567471528469559376283068952170996293755376429235919363446944242896331976329267243749307301808212599291799813444118304340694523800190140980136864084773787102478040147045412013882674177710964224248428237799587287371612907945920227417977407722687908957984618801347578834220855802641785491054267349227914917780223221192715846372103335913829726643847249856012761600489174924218713030672044674214584212357441639593612134554622951378201153898244612401594065900756270319329298339877403018640223478795785465816502264059504861758749218476466822568110099316766592487824295703837423798485104179272652535861710475066408874382277411408177895818834259743121250681721379338842618719955281081157193253188535132688752667312699899484307358823408993995190756096562780225365542258983126533235187944503146403497325268250653036102661400346619729235084521565346618704588809084761941120069440132266657206808601321561394964369407541224341229596513866364960169380440218556795485429007645265482225881394088464882300478992480864517256527108175380938861860232121083989206593844905103039214177902511580835492599114981118522452340401638737837205355318336224302747661004912388356161511089411143607504030371751471713347438948043819968516770461042410047641833794685895164051484464107306841761565541231483694717545010249952268683692373199203038055693029185657704677708003331377937384942993178018180167895415545828751354373762911787656486247938598540984470576645549925135248150214175342025233927215707768195801992266406456226895366128649782584996605724879426325029911649735914311701575403706992007145758303763943865427527415340335414741126568983223565923956554466799284151589679150542668295862435744011767224214024970509928294308402729479480697645371296908697248793673115852218432394152593331795555278630132001211856251042259009099623936635414545704872458479346669277648067482553805402085505660413314800022994763758291685627413532376999008170066378956553524070361255835409991165323443536323165701409059425167143700610027931647256872735207982783328627174449185165813638752124371215971695876900166627522995330139900477164089095444385085886459833998965775438802413376483106378572648883832409746330957647624589607219290202121439097832012596958582537556850185227734042254439318011729216998420724856638855281817499124440226608743374519249937747279642473904225534074477916515360750509339484897099979284461876191771801114930746829216420361617875412137326712677041239470396010780266731701719570785076106839625219404821196494542114221421635390435882404127283649943044583774389994783842369413076998531272288670083551333630665564807918793660358053718604230791633305626797419329067171877218869834950434490475266548906829133274724653333899967403646266480690738826757709556918849340067953055136417902596740448511450494895537331113172569671903003608571439081434823283730945086283143347134313568128791671476865133591008602818192487698147703302520225360123204566748241871213715382261489315153189290244763853261519974505844718849875228810385318236536769841900130411313092860306222169302385290750800844057206223693060175720701274235482677434939652762989021568307610036653628725840258485326045490138386652001589170759907080255508455268520262676132615266085977288750751971386394772335800322615735239380401547568733324182738300670339581125945173288911686726090885500784367337637155035241868719539580138590832524343541020554518266015172715423348163320530394353469343272456567053201871102919286752725822599063943571886516607497537858646847582205146532785591486693710747107937860316586923269846536013773013134445692897372059805027822455397826375033368573857275235577839775936794960761447524382396297368700379422274154748853107690192772409898078054017576380599907456964798302010054497219568384562473077094752878983716753263963471387516114783998709099187606827034911828645458465628062518734272080580624068125430859411368477704663516161372082664026659448481263454093753504507838374668432257275838976944247965619069885393182369204440829049288645914573185429789622424556879820677603863935242055445613010170445572986616813410211782283433719951989813324882033243140937074887878667776557787503579567242531554279001496954898889409082083616262498753096785369206268354656287772875061082743235667187828659424958000116349503075045796950618277371235715342731525498952130941060889771935239467693089627497974599256568556168980897915805474152164046589948169188122825037798439602108720846067928116423269934179871553184329566049233949671400112620115275602904046326531933341893095977473923837677721378589033133318391085658373150185938460710147653695512294466801948662925489030467348998347631105488561687404962614421993192679462230140970129817358015043325077000757086068422967674345472403678959748703939562632378903464333751433923751214282474713925371211000904631545773501887934586508454895794779401202292088576773845285621231143607764510102640895223729183332143660565607559948221472189864705215717861803825682183134237008897018851310340816963461045592276239670756286804275286577072318084079562423713353699720035322181443299697370306876379120428142937485223484570472476034983664725153952776888704402455430435796406333190400326277787535811157763726321632683259020299489711614591307806026350244855020337826987809282447619043556102420208430347776126025602008367899238834673361844632946761201001069954374079681152080674917801106515576113306537542765648702072798192264002889601521704396880026589404333560667689015719802861576422141439836401648266819500991615999814242381963017058620524185168189465015344522298786745328791994408680382239467772236923488147303655631426873362462708228218844535196144526941534107457080746060623953090494290966697671529479705121552483087398881234577708821543950423115155080791522194270493167959795384884089429715768311852946214058662995696486589610746587878481244576080499948544970929921464488950624587462444018617750368099946453786176998081377375506665057815705086755198995865815052768908125449091423125209626583814300933719386341004518489567290952221075691213421820066840073493537548662630454799926919828829320966811425546347708719656752072717672472416089677303456594822913680493152404512662512380371605158598239126065889376824115086400573507525103599379048586191863766337287327541276754077709684586696809579481400398548285634831354153303842408415931686642665753729623907010351074075054507064549897863146514428881597974475877367312781262799606456416640396245911977098793454631318825908367397858471366683991711220935334720161231372093575384836696899410611233976013790133116406870181795268639357189144469175879078747668141064640315021877999592185958515650816788321136856484969496284928318881274046776932329715114373467568827929925602448539327649570480002553481195821842746007256597174894509833950441856079757331367416744693435975371075961622187941098794929234887799685478421825092031917630237232550229499264271526594602427567166015492529507083040041253944349413980416930261857862639831027370940077687380449489015063073110710505616710286694760444043169273832111774311416988862260252647968051317573184231441832714382255999469610017359480730906054695850501479405895275211914664700672595657995237142887554307493565414404035541381162270335925618301620511177816407467878957537166289760331205052090010333875967445659457537095401717071186858262281893446667264469175412897962837295168194167658233903390438863322668619733972438700856782000294768041047042882154225545882202603629195850021009395989631727705095517229413822846918035616241014208062535930104626255589387032707554943657905889473163161948348603847633061784354196254630833907716016883742370223606623686598905500423676607475516193481717733991198775610832247256480626163047967832260619789188535563718930947060556101421377932428493425497740429617686684288245979236106750145033099698587923856664028393698911852137130661280015550972068621406124688465467366311296162612288438399765730104701708708035789689232062302446484903097621115151833385196578003685290378699371841034418580652471597815192574230756656545415842910311180162918759292140994525316006387707720936348942955487922247880992531108429131087989392766871324469692713671254853132220658400685793002457089561534472756679393480072799091594285754646990674465617546099791668260101512955033724010224458244284539186960483613318537665014272352361218066860703735275725262782687743463776610991156165976475082116434185646059393789021702141595802570645835054057334792890661345519483695337192514572925349222607894666593917101992344851029394967655118658578944328863399882092249388280181718749693038030716786903525783418749235262632412453403000585567613135033373612135530139538193995410719381009812405130602479943020459165893990125537174878421203520071621139381085619061129883926012146304253687556378350005661375794781660272710318938406219898398470744815901687313699486193997978682309660418266086442039525995439499856043522349180580392045485514095693653034233180758784974543728614006160297246674579865823168618193614300545936240876743034449489425358459943762020695504429501931303504804828631101694042612969886571077042953076564184556796657297021632184522476195116932268447591041222655441648509944722928118106687745879218111385176539123733421485134382786023136737610500801327473634267132986896042145966505718355582224350990773809016106833190687254565152765016099057657672411432422260979109068830806468318739790668822798015490123245176707919481754736419505034965222049847896392052761478363665697564059961106806148808362986339418804338147825007255561973425238010919133846838069519796849479027945426839987437329203217744187174089062549484384014372557823371868126057437870062508703928309660853132616401910579196178368356789212390382877391489473915915933458610616641721925866208596906873957553514024595399534000445655263568586650525893432594035931271520536117952838642573082917099339951200586831301521064996231238153395501034275686481105177232107691835353907107734144160600001802017265362893984209023174607252697274210279065964666161043934716392261406078936674629035163148384042237363518073472165358444712317347069035721908993930042063986497691211108835530538816435284287443662087625082942409039622885769613191124587656054021703794290533224990297644680135398808392251721008394873421791362862075875517581295694048249302120388844518010878457608369198642031537852779742262192876718008262301896130771413207971481851567430263206674978153606292938667455803943683885291531869754725913361490282937888246582588589066766829948306368768123101502495515581833733687625286541013300168015808507990343826565084586802391298856074331641738756211038523877270659493012404631874067916909249270461540637262448796153884036962154631749648131667780741226902176490872686960319535959276662223421897362457046633199986380305577221655271794271249576453142108999387183084607582555709167601908482415743979056886537825086162374608658588630187364330780073902124887137103684063642642868506401463335712917692853064732392728684859195035820624326378111054456154368179098018128915695072745029484749417422034521382967115604413135670018775421237374138696711526706374579583010710712800425604782760575583701325855489777206019279829329187610248199574272736884949201953477741178902253836027274681153599475981746957910299387708145992128413905404215928436830286178990475137650404959667504650815837233837980142321046764025619606057770929696356649615039327847924776494194442105819741900395613327689059840062843267489043918533235422231648998028411641032838199764237824052800098816941578486930425599641239352665028584328464360178613166890389899784225937316535146730926755184526608220919515051481530784079315904512384518869579672802829972500850485376670360347870612820218919781722450063857151158998914043214539258473922241067520232254728844714434092330500318502572249839342654012055294082530184976260141658217333018561552895550498031201137893615187894886439803917913629777603363689661807480077186589588282793530771243311077963143349503086724091337933120489577632216060476945852199270944426670601217678815433066411641167596964689815472652298803063122713174440504897248274897775136275093225410071669847091898777360011023063153559995352444960804891127318137550584909635814186693881117271079267810011933608821692184933235787994895968633862155472876679640137068183598168050080989879361175765994487262704877986278445946561012444480613310332831552447986287412067796574507108125549809363103308034862446878229109831556441069474075959196422813615986085555954168349884990525966913253176979898581928869645028406702186961531847412044423323473604677484203519032573893711398568531355390298231228693199025614161435083712168617508795708925350579861150444153510227139544304418535795222572205695066404016683970406948824306235892862274288606454077150740152720801032058505217875991798163318091280661642017915671894307190750631588315712600061414661043695390959808604464278023858844950705924990664367700236470297299143218779319132771971635839798042048550662213881649891052514566889274194515438675523360597099388087671158281363003843023906891483015645974833505238936230421953844625621331732835912605545152886523618769367675130427205963264520321933921197120797010038002553210948023115341293415502913143481388469813356684242943148840023187534902635943277640678780599026478354360969397511632966147988201314316392077148600171374542108836182559968519440167795280987798727409216737960042753680911567290154348046208081360657319977598012082768235035945446821488596757167615052058589436148193145946527362267150520292367458703535991572624950171520357194575983782957215966213569736325839179535911594917411718350139079739344554474968885064993063167560521538961251068162985726838148526571948443543179221245649263826138684593500994947873924464693442276806831296991362835669871448366498996383968123628234798237936664768691224848591794380282670042736540855126234358745845406643622845004487147028330313427694358451148791452419339137494503598467679848395547945021617349572211597290708228272808468108995233307678759270037196737862159792704018042679473656721563230039673757490769633679103864928945903718115300864038833165172612648441799911381807832990584762229551203478011542220324342009287049114708407926210859994229796451876454853033684143561186766538692571193798044682139801094003292667116649840195553877890747611036354611440076726329365672374925807303688777116635783873541886396557093308963319700943789148064300003732211363263373787962584835493573349817501014644086082558774970708177436926633931270137097520242513107483298436940064576126077398783277578471012103884596082604409685664113155332152313647754262612293882791839951573439769509239551555594316269161739682672715723040100300120555260316169915743775008340957686162262282883374395927369073439014447793676381810789871667367981128013005607384243074235927684494872097835225802794720180665638332180861153013929456565855820889120087201579079803273885362620712472895350444893086688848015591179416542435738968139027933022923194009156729789619114466442484671199239074109473098559252603785492222820992030457667388514707482557810853400151961440430957575448484410452603652334650723444325339891462291880285337268103049845619637426380924182520255634171295523408362536877234064820470756561112908857340902359733916714091545245807735119453353531350332925447565437487431813469705787194760172388316784576229022460269483128717803523617630709566442439987461220501481459721547250504982203411096337000970982249833182090563352383392606739947385295649620937339635710502094041810826535985438230238388750714834883923610503638688756404201372590558785811972993011742739359053475235535494779935516369953158133188321997120604963788761718472073915764582305208748739728121998548957094581272212901743592355182707119424647365431109621429210516184859180995178012126499627807017877771723667308243199850825400664559974125115291073209263115247920523403379683337319897985012250853714968160142722211061832763560667995112630357062340984034611463950204338429225140645160138880709140971634070326751332495953480749961528218736407470598083116631803452911666330620681070600005719103310137527879220991467555289069064600035077412472231050139724778454858953763771884375697755810871723023584219992102233652994520527094588967071173332562652571241713656030765543442855549048855592057819543373655537172289377068178262755974915209313158146757387416062296586611868234645967582143206330937559812378829224179412775121091450046081552136743845910482890630363939142101232381790391292722150810293380746859266774521298619767270944866914419424924717956047513142736412725378670465377167096380066490485962573053892803116252301139183537446805551309075614898303629411102529088611884837828352603496140177799673751842351622290618823481068342158265294373412550509749743417589264619490093521239349831438228464159198797133087390545833213540976360797184397588456677426222448150228636801024038087882976495906617080881551728633221049600747005434360387576636745992857372558263782498798257286427933923899472028262163530063922372239347549637301780559651996278930043448298601944364821819537713000017838666033428343712503260876471718184595175657224313974750202281903445657584376058965338880744362798382934597015559891060978230763297318143356666506006796238138071658579589261187034023206979867944926456796170953768081509657471325155440311810174595427685005051219836395556050246776730568160518088500945919685147752737590219549386691226675501010858666376378637109460758581230350430216392532561122100948976095028514789937991802515357737920843756959926639635925877379122489402878521165032945688035254093461765898038339155484160221069317088088043934275219793743543086332924791340987598065218399923005653972942597906964831259381230994602752818648047833635736149479778815629570397244267546591497405081607159558563072597484045537837299357683647885393916672274292875499110823766002325093535884152548173405493237316552802685813267278655449118220520925746044210192334134339231765055451257506850376769738671450738342974739347385313871176195428710542961652595451841289519575457246057119746164776830742295683874650908358299912225625107239252773265856173268643957608725541569382890712856882453925020757556362310238478185390783899915054797847482976061323516684559138959408228723522171073527294604908871165170296231683966418614813724529767696765811079494082709267486915099784228175098968433477255566567558800754239311244193765037955318576850873724235620924160552884614971312474917806569738961117329748746170125570385916268198212787164658477369641823785022572063291741108927020445275286074122197226540750515995980801021887206686902643314613096048845734571090702938867619555661695510665935187279494188132531507671382620708709383855867724832677621755525897267112070877684459163638065386271764466488990652124359895294144916047280593404744292199123353476135873695792593416579123081867984914254682101102463040740622780916112612661061411806545375550043169335971869589976210160152394564593105156226863820756797346036875027166505044560339345124591048206207013439201330665692381217903892093154555012857099884344495041161591474402444205244722321073053264162557347303492381208533126701762723185815918440319662047061294545642948705129554312958483694878210888127029279639303085773145833843754298745860466956247832685165142737233702013259664567741285698678795807183128426182948197141502006751422327550219799862792266850582733385032084293016059781216912652608017089040089811042588534559551129383645731052180416353503157312710370333345187299798419001735434137644715953952339816177203611932033865349567759226233714082154799668333882715554550311243080809958811171988263621975947082475192687087375385951383849588603259547165456951682376193399369009353108553169967409630261988682881042964866660573995529296132000210227734610620440635807004432371332883240088826098262936588122162717163334280169507319111774771953519989622829290953109792311066037541920831627933910771699353328950914497536967110986440908646570359670386566989115820190495570569499713581814388643584529997348853987039786871700561612245435052287438055184876452689793424218778512806882750620370944096183608010262035491265486485451830117117244504384973624618317554407408032966337327826445441320131013992741200866980999364074495460605296436943081080415252396689706434903455637646389163524684892094320866695396189524946559832479847362179163161149650602966329751096523396423691646969885988318351802444031517016063059594758145458024843395214457078391795590531768729337445669750478990653175005706061808583332683592161658139268792163904291090429894782782646073934046059692125121000700195266918242845891689010091004533240332469308423458117761328704997961434495519862592927666166652403409208685086931141431465236822391384023725318464290080811665651492191566332354383647736147894682973352104171319609934179608108103419085575096094718385951109385118300008804604423259992757656518989550618470032265055837349461319856251415555148912050058030202609434099653107595110074400116672005620390490277757406486505731820412859604257847590169887321657960359923763181631393068518237611163528239162744882622099185662650257727637722081869830834863862380195632035740454337084542482400979954060984697116016733286554846671805530915381065163318346668639941537795308125624039796241654216705188973540815466341616538876356940434960433350775530971935924137121521361309205441380267405597493478891020765882289538345328016338215311277597532955371149054877442340602925312088651327518038900609383134930744748690883175526667524910205482720170912728198433453872192496090259203151880775597392561953259878895059060212215538146480111586301519642812743288143587561288147419282930786981921508450838841390990890547580248314096276240214940079754128876789238858163336547860877945620959819856914646708801321107887793609620195328784747791421455779234639001467115547915752657992401850379511281478724517317966988793791742759781585310093953716733508026644782021725003435751874762861621546734255598440927743115279905632123117104495230296908523857148981748219721877089757468576698541935106777480983827494675847858954126632448154190684569652964540971697348689614048421603208031570205539146517574228286793408639941169348840005921119431140980156394758083406844292805343519108188847201195209257419916082177679750448878101662192692834074880948407786159286077948653732594200042743661331586557244534268651510345171692948580313924420641716175984420663135971887538814322701767000726876976501081830063112593699926775619138314484891630631175978675484081031120584426471022669084712324250658806173265664063924173632456768270478218458746707688907073940100023779734973513930228247310309770662543648963987394071255736868697306020404208061804290011074235734628259929510332943818026944820662773508569962877194180053679256065892986762724418654541409913062391002606857413297488039857746805148748837255045464953966336897074764980399003954352620004818551993387298666579142395603841940707056099078382948339362243130717763164856205283043435209518912556564643569072508413410514473334945164470926156859689516384157923704415450895196176681030652272144330279512342323002253705800151800935542943978818833979124321399497581423608316279461971507622806152327518858910846593488360295873011031504862888915833351719902917405974999175228589515833341829424875751978755306175037644764822813512483715560300779355679742838236855751205791401775726472313967830210421605191957967299031672515976614416142116957139476450448992042336263216115969672249902957476807846773382501177546887676281181024837745129311969936124630360500827069417514389309542640662829563371080582357805788445917247589704460606239775322888868121786743471732879177847635541332787222079731560580883805940668995592045214504957333730105044998456202959888826926220255896422525086975280577014537044416636832045076919977817574596177573522480266076142643312775497208104628069777146540239604060160837478141064342941995173487528493924625360078177907363120420388855415842828208497193558294887535063707112410230009319945593878313607018428841255650967799368205483754791253325306239576586926601235309742714157065532708745414661850801859910254936144592364204284092630078298938404104229561250139529422139838619409360623757126883348145840700768467234188409111665622539296914161057410748451314163138807223922036799626002984353019205403585440663151338545877528508821890010355867434688320233803475518176615441783738149256727099751184675096104446581428943350176026744050491662740255440429873115827252307528680432733607042968195110792993145321658314753505951861148633072089178839968028604264246058542139259130431906050110935122814711707029917332402148225924407686633543443356457395988037148208208128454041542022145527159113888952619522674471686537988925199682206438668993449170727732755680775216164900475767338920797930366159558436889074662382721600202369452044813702890842188443122107429115724262626650027903718027014088536545305702836347090135865521702349933362315372212403569147560221416427392020053799023473794060508043758223831667864470805575979468346366615952352026126122532041483385565164424949311600256709772130735391876677409434611782136106005497824251942030810289809235679381929461928152123365877368438479893126754108802368328832691976088213753479983753041422821368142378151083274346382796106192261847948200562546061727064984553204724769224377368779240865705067564951446179572260595789240183976950908882653243695503867987274606001310713789032072179820400145398547485277904670518540892537135290620624975362464169096238504821709180735646463135564338711342698879062198121716870052216499707896075408734858616900145470080582608928948955342597144508821435271780538430753253557646869386885594565413508703090623277215488209522892601815263302645618806239917700168603404333419176045649607539161387246507491839832375591007418145638651505418403660688210731875850271054122531931032384060455763005706769100434455211857678774506619401560107366616349398285403711251651931417198812272614094451263647664369915785611933922041107874393632215072554655522041167674034664656423189069887351591945055531965221296574024977751398734987247640170860110586680599341824709536398814588041966676725080401682056610920476350729557176716082965751803363072376593050068269081174641141711880235374807633490206388616453717527902606776545053297980373238528069916981812053096588902094469164743488891679710736787331205820533753498203131629873254094910699842343850561663260234264619440254486070794169448096159053875034671828975093401681243490424736394937560864551577872366886632035512388149523434599643863644801203793400807808025654025450406198895586189507782077741338364406905941081421629740038125778267489588308964127195280909459527502458863223434408062623783019691179031284419052220640551333141240397671965542115431703172695657144297658476266154255759777538569206656886915269905922687554712294372227236381599674650995924849253762344747668731202719742639257419662584119358444703471188888901227213088131453401473105293486645252790374475614245880043983800038155559592397725341461411494411895100939962811083006092113140945613753207927126754416749970174309960310329018273925160180466876612037380335725981154278292588700367247746295654524253125509374440884859041564934015380265845129359416005316654529966673456270900387293313731895314445626187720225346375986500735796322475995678451635739104242425502783180305258310028238273402830076361146523302504828420178547659432191070926803728323803459525584893962627765533783418716106465640534375726256112710457689657745907765796142584017163301983964477661795435617221818164941329876970294450119384872916129142381986772130253619514662342233902079178083703676767278562608341680590189983272836159184456732296331595897521749785662448689097387151706977285229402708698361486317895812566002667836147745928966012079739346796428840412587881767452357838891446843646069258423928230154754685130156633766783388158435906623981762186639458475931298137697401113005503798109417231390810733041752178011605851702576678996874683228414345602825226064281384557532343141236434943312888199135219957542886650015032291086917326413200214287090015598986847365161146743842182439313522156534889620968672692587407363173376165138596004547880763894045877386248519636236742682556263853506389661524427461824521078470348215531678641864430688602275338662151316545241630526710149086210314684083969544877662782593280437753474514799932025292487025211256751566743465316787885761625691757060582827849815912257336906675516295035982916028384910204727487111330100289796256623609570994773360223700883807263830139743251979617986537683274347071388975751054276953951252740264895847709782905874539579819628385279117840311247312079642344064249095275464930432788870235071870725450647115581387018511326815722213287039909163685906595438170837196142666129788117980990751348980220203969304823374682987738286388366563231880876285902223498446663860337626159536064207146501493467597725424064133577219389449240507537374836405424846541675189971067314276046489674033553417980727137436997970073774396679403145426789115457439247886527945700937404939667919308435134119101908735995059537940692219845229077030341267396157478600361941213552382425499586526809433419200389795071374848320170868408439698606872728505861470553034069008352232556290578426233737614420461075194528687503354610382363208761247313617541549660652027300031986733475169870097010699809771257281936641126293824022645590008165435977731768319019204069596655082818757344176065939043690701910615108416842645131891232634228930033382315903884828788229730728946453844634104722585088457543506348685343618360343001428891759652232769195134019735278293551634038076078844465142233034588470457658204871921118297012021292607792568325746227133878937974631862466979832149749250958518633851401176643195816082326586917252060844234630913402111512031314001230623868552035672169419929761656238251823122622227850893689186684246295495893680491019460555114413515618887337408791416245715734417545286600455639258533873753104394667393939636089904497783197663851080291743509357206928098824270262293562786673844794260109774432870228962475886659927775337466558300225483759694043783991232919747978322165946852140476248147365431801335118429064595062417619623090437578763943329523221572288676191289406498142613401572031916896104532631976517610238959441520782821503501482800144302927900092893455952574683959707171163057499526153699141391356039073510531594696914248644126215889638128707011586551000033470368734085638956755856915482982010438548005236761475801564023383337220940790117251598195604869950130764094093555609351619045999661790133766174514253652963061522998077586017782145207764132793968249661161713223846248798354598592889565157143609932821976398783516869035601539652889701609327429971652224365060399617610145011267275964636839111238486270981666263460164042528352711152994785340082822031137343248563573849107464112252663197895450807266255918624609978287957505423336700360309691423348316572089863284711859626168446410781043458407239995135162829063119552578547228137523994401107081568384065360296733658621597564932607689034035394163850855640339158250126595428760670023384079217497264884536008277730513394803204870700775368001257474231035656509434818797897369950519220108676658207324896344831116575780117318841065240615525572481234399012517584867168629551053103563578244049642338822833509730363244949869634380827934558413869205565334194650040148271626713717224132023891963935998830086769193552833166026056470103884665656635627449940081988439726829144194180679206177998970220609706677110631563041120513518850073712522792424486115070218602283342398822165730603837770212151028088874053647590105133295371269196867076999394078205295318532229996631120788816487350118547470066730570273823179355347151393165913981588097258909055352114716708282487857242886618038143870766851790251818013662124412647439248023693524492283425001641543945965758671525182537600096764513004690764347078930781474814621379511689723405800423576620455887357907571109806889758056171247202989928535832264070980715272453369304571683173717481396559726874371979123491668473499888257209340775993623862135664467727657136127901027404518561016863291738949486094876872450350170921445299458811821353153655332224236451614110285148546837863718117167932193315134115333907386443796110839743938867420611355719171910269772459042863875124812615925559096867348434636200370338837642950836042495730525419423973501634655995380562304933691384931927378514344262358899560207524774574034031727362908293105693107004360543320124983694229828587960400511219210712208259160254414365405414216316772493278077051782821685203717199027648069193472161454847624197953727459356193241599680091961050036167679861971748295586505487901206826761151431228632871583826526063048363150303689062986417595755923184915515822371917373054708350096176913659658717783043825080032382804135722964181925268300567566595806128531549787271746161964241656260296821915317382289206283803621372274491393924506753946745310075681839323126187072436614489095011072205881208565737755101551622363547986868917427681700467106282932120840957258460391890123456706571815981329720035175002140076183157727277834228870998883553512221297594016165423675177135719300722239978285689019350760976587544206998591366829330848103095678059252108161228144549364946747954250119907796978041531178691255184005782826743699997759401422971804784150532435894561631713695252950924542253335506792053561746611043686874097934857988378030442494958208720740515650372919330567777004188779812915994627815638298812946593245000929248836788640232991529058789674849893025174181074062386129652526686268604917002580400625291534001789677257111867993370007562334719785841025349488945247721222405493737232952659079871587558267327232218678212852676136205180523349005022423155548271919616091812720768960350512817209576410333379208675530144961013455148849501194757366143795874958041410761657975982475392366199755091700379551877988067032017404635053382958187663133158636289196840971530002804371794132095896842099433779782444336488406178019962248308824352259469567586786842362846366820305154602930874413856236338037641598472329317378095935003454985326175564838268521107813889464409996739803758101316863176257489194312324117848844764950799649893491467998039739183573278614884611539685625085373940181396639179412748029274673791687335513196983411675615921508649961769236986753257432692652453911696925350710876140812544403147746672656080978307866691644320724149231306525299101837003328694023624121588431230310475139523091027418138167530675846106178744925688394213970996580348525440524989475350686456494524506428721937832593665568602864764026591730414492707131093336308098871863787249503723614847763818127957620633538882173484341178251113501521464458846466742070651386688937957231089095729157105190332469184394784762922450534085935784633635755845295194482143614789484400389182337397449820148148236262270804190567042245009239991823210770504532308414065715060742645133726845861611130430186991137978604568209558181927388214354074985022125497232755951962304807985996204432287986267839986022989192044121211983967963034105811413964486431009956429921207702305367432748785496069121157405712161286425165599309222899732861112813958427793776247667297995163058727104533006026207683009028157264060584715223886689967526358660306042268895055697175546196695762940982527339792903021600529878799698793400699629928715698487677961177563842113617759958017645366702828934107991669183804869185472484933016493648646736521558209536345912308494179349428598806992485524286038756264800718693327247048148722950951579360003526897101368885950759026363000431602724325290369981808660077066922771111652415384708968946610606419054302726620237840129533431690766457726229431877218804937464530643532835958962898901944505803645961351846537130301513687721095021104600345402963175962219596914576653538767525323655218267814428827652125020273272269933465353753826433292931106297041988390948894903164797733114249342962598305054493369855883657831903743598173272703290932422660701908981260193210363384330841120682472971268577586060460608831493352011678378232506101835710382472338151428261222135495375522846046590039317822640734573998320941039782876424558215253716537458318026664778834390031612559964548291975447725709330121258717674315573570864574003264734325375562797158782983896879531457188498424538877236242113735674170529429867628856031130038046388910239087202936753661480495779081452055663718883765151334010823921881198743981100650167499637112885396465560032706382654741355901275098134378802941338126452128669818831240138401647914333119167074172291743735117342067081046058742420124595355482712629444118342062229808466294020897410145533733194979878713144985270286413672181042797605066864223474791858264315574793170678020909628339947393725003126615076375090649146202534714002177023917629489939869571583172792706812933561127260756829818057567890616928354496110334603376855955657646685882225676420824364168236671746564433690711570985968007323670455848508634599528911646440090446154758499012482194389858408891164515152771801549412144992083392099332916501240580342169135898973124372620818857891751105426917329260686926389948343955873858243151188446119747228622582571857454675625159511135945177777627389478868433682675187628272652016100715721967889634953607877185250711636099100277757709839272085443339864909402628151414501497478262614043097036975360963823025459204951533058146099152788494975096213915581124600621142854807190321037943635383565279237718339303627209776472691180012421332387998488133845392994633073391451072632188923334584037989576671943440193474720604196273395442245548140817680597416527635637527363833886413081494939581988975532609174267163311261378146469353606202090630610891450378527606922417097904045837943224622998532511687359397407429573695257724477489036484161903748195921157878245393382010832811108075020663521114437020244029501616307498763348584693897016049628449837496265500512449989014367190327935360946205488768960649746736266546733142851042468306558715716188568519909799506883385559244619084338328321176474849407980135054360560445205651505318219577798391940354481506028371834661154386935603350943480275934297480080435451602297595015529301766092872807220408257328161341632292433563906497368097586349824156698380863265482403907066014095642963329175952974663589952713107500251665347857794938262683072238403392661189431278185092127888222255674618984682195955742140497657269724132063259709210156265861512236239787702007929675577720202447536878117679536998873010922731567809838868016339725217862514566665776893622696132977100589251788752169670031920208118223171252683507128778128882359155275301994212798563589323259462005918895639744691861263056381751595511620964879816779355285489595378045236855236525675680875117593699621761283023775344221465833452966565818085627416600460698634549477233385406748768376875979495471732404178541337864080967984630404867937775010722771991415743441591818999600460710997679119381964143983739546386919827838206892728110960357691589480253198720003773615862072747394584888708125532272210261923395361794555217576829440250834869290141670195990648489147919865062575258440376290471849593827140325153814838809401555746874278386330552995754894692790576173962478573337379527263616213683799162571519006951543349461844495933143879783091226253149422133458446379103362390730444688256490140228896162104538229257676853998429883853419531656419641055354362387270567534121123757966045530770779173720636345467732201892414261795320505104132848154030984494481189638478794393750044946552296523998574332965284056461317978489925492891690964099401242464441929247524378675847906194325436127957507137472919677694268601990784739153862920081841246676160296667526311927057678412769820343955925271371820442533889538831159018961125674547598053091713871619596059757990200456215591313375064755330232905460619452254063770256934771529158085748053774962670495370026341835515006137411585980109699934376139125575046862950819405388648085064938651964893784339931834455494772681512604969265475748992770832695090840076091434600246531883059734071809654397999127282359768628181239240342009538366092130904781506867309265903637165391406094135459445955744619138428142472403862964211544970271201161060703250880439603987019390683502645112277351045412451674252048008671896407898763009319847555871432379595077044128213336475336958006016699412969683271848768402474278689599298829520742242690086404944164675264710182612022017262687143851483343882557622605066497387804839294523834781166161567616780922729796748394802256227392203702955426839062517909978578953927334216968819889460376457434553392489038023605419691358481279443860170439893897506991699326122087676972101235323932274792777183084254402622935783948188644649323411719779496975897903410318557645807972248327981105121903515225384776244889677877942246298011369396635298033337573548058541042040163423974074506016208080860143135830065912937490348697831261815390991656536841561360326943489752669488262547051859615199837371664943855505842401157851156575551338859126705482988980916769474169205301088412243945882961480356786018788688268299753745468647469398343282785843458008827107745840039394962642647366924562484691259021913662488294432105925776285161098366160376757163368260055428560353554268336427400710689404498012535325185471300853062993496319332278652580871543993250560457277499285524829972395846249127371056651551042974436303261914261418040655814411767890415464083744976927990340117086490802737651122419048736276826284787006915774565121572637552937957625989283131111581261234212280355036845610155729254434957613903911954475993613836505436152895705523873621356260120450756227298215797916651423195181415571033937708784490098571951484167720282386971648572257902000399159612789632552979609906053489534350808964983074323808754698686182712452716797596327315954283853546203695580865719198748597440533631926059693551609526787787055897279842593428043999851831533940301297586869170673383448220355296678494351299565584653540648001024220658661461055375244308434066207950488689240652935214804723684505997937245005793497339225041174525952976930982367035274376831101424276521706360847320501747334582555147539723962735678250003244760654864704803753100282460045483473593290241661479504657698617134872751413804479779237389839307644708395699373561503078493020891767889723671393443353327391777872474885561870332382878108335222710187573320218971135504621513033095292975996069056464900694849205239514955608696044599940112767049636182736828088450778088355816401971659475867901678934079453699767286336205237591520630709398411710162695682590611224295717928106787336788455644055645299157451806652465291167418305042112544848136162636743244890436078557446036818485201406214856611011904380131586700148815953779887173511548183028196421800041763454012967257922371662878264587432642945060974925119282587129906995349202905650519635082224158460603787053175094494029575385661843125713395739298442444599952741431784306519374026224187941525993936942170240270285837767801263795832516055005012175806607755420461878328571934848576418743617722709967156016030970882505840372009264977255675183155905286703853698762929344171887013914204016354526704302924413416468932345338723694327588456658603394545365527533222092817824582717128975581285540291396533296646175213512536713000082740148311334011927644545969886291039727401165587187143657533843377890342845200747275536974280288927959978598838964581926480687031590331200811365104070211948578305418084941578473952294956972650413692946963562177669973168036985722960014162587640582303872844483197319285080427981938500809784986688177073342294357814362194052375617510261534193226232640386371288765057477372266796912758096865753261719574989995538474947885389531041942118600640245785568077894908548394797210507518018378793520349531355307506622952853600504464070230476875804880595087445877884093371444976370509234960086467161609065319761144243882690898658287942744194376016850391004431900000714917445667375129659258125689368796058260816301641212281617812050990858784156070347214713457286325369033549364750272490966626619819606776067700175271378058467425212174996809118109155706121842794517337784371956002413714131924873737823889841844844528010253056213082456030173233403854400387054511498327538055495865465588284723113289278512346011198833256354446106330911824719554990344216407271870770272008734971923192064231724298740603497624209836750335454543084331472384018690080725843116453825622525784415732910323044736556462212877005373043551384633348749216916130718085641674090757005969371573850385143512936748509552828967103569591942780326187225719987742369829808423324416466081956910202536492746790090287793345243398409509934378405587610863149035727251892228142250706830939251750088518837289690304806205090377009128078766257115764187087539915122472552358736164547940384102624155797408733476844009313341755424277154259836684909954487298642318150702496364305812153347682527383032657733229708995236489224707075941049652331699843272086694806354682722939557441137050253075375181474710149974193007019506648951629717736377650849421824153598900719199012240770498117966417036658300436897396969993428742494825740345821991172422736932115113067182549006767643024080555181667094562753546374670059181242033112618651667075737877242824214344183674663244568687860349940295242166048621472457186868446179598156296498243574816043166992207244488673204877527244157442135920838087222596653163955210650024052985169578365619781942628992011873022669257010982130184019609445073032817573045306316358393880032082435945133883258237957399966638337437185235861393771288240574509232870602772279079542759960761582341692526661884693964859319836077246710569551565116893155250108093357063545599312381691288471612327747056472352495456497616717282062297392126324432976627888175773451885355432683795157055000178761195057733686497907175477572552139416689186775287949107331870406143001939185613042939621386634587365726749487405596268670145790813340896062788584314039539795758062955712140537123708455243582489986016177434871448227854341645583620709025992329870926561546035319294333650093387410330291905324063524716372005396984092004466148697395682789084430813910133012157141112856293674874638465605872299660344811836334322177604048185061748835027845990226603552057996210659432597948745029502732166485190007072757388256530716235028422508074805847719411720541605005165291234878612611755255697825654800991036019319831538712112629023777018847671565674936787488654578381719700492667117538806080603773370756563505372741678312785586587239642534229272095406731720379842681600084027251350606718285140705393159620069426043590145484736469215590728137470343779774789285755459279402307884141878740020848661840579260384214020356047127679173698828429560482580675185673473217601857801856729602233021577680556329815179376404021522379751457839229628642726307104430565542650186392915375153667896911682210391806058356727547538963005592817174327349304587772730653817673981049828648673104750723256882370943201703531869233434288275039861524304182966112581492644956620525621510862000341233130143667758047754049509641605004222794553550389679655964235759174245010522757510104428178005501750267128070677921055312393041360120925441019081707332866890753087738085028504218438360635943724808747530560534057935506717491924159767074918655980007708294849040606750578781564930811321601173985676515039108439632234009052187354893876453047046014199748996807865294301707971076666449417710750776496004214982333518015866468531556721853075379574708093233724536382229980920051871204202461373971655745718751611768254905745151406911537705513634919198401995925194765905000783332666017872421674242732318411656778810274911674632617682169055962430029302365040747286116200302110838501738381876171591162455392662389359204867184690996497257970892602980965778018290863039465030318569022851045022603478751015757272684346269830691654164295818316198968747728781938486753968175429703277423011153415987709983801526099239865598346264306224764689419246343770564262310796001974049108149944925914524396014788558311648762136939208360551834737173432456513099478812724136050450450767975941092364653549016371549747958336511904417356682471368841722652305923351555026537437366899485650908700214565366325047122261686625825952379142573050440631820416233638240969125816891379905924033290632761998496144363553110152469051128852403148766020474240690637526964925881659932422895683583358156741983574817863564703436173698479942943928354898003975597730386540253292771633652157395324627822865504538867796855543888678284621586884672353128125580663512648824708068241293761569776624607997117517250211333687008186481992033956196524471984673207369534709240745128345536896895098997828711245809406863485530099446019062280189176766115091829664524920240425670283621608576470022452791463100209061308528155641652184036347309133858030029369772154791755658435714883165621150439978115610547726668777206113549443697817909497504794733408527408628597377586413113557173056177878930502088836552049921304429777010626913870610243118464872964031316210151951103320441763876700726386963660225127275579434150384942465512477462191282117415137427335137783419281110126966781366710772383557271799289043650480879761169548580456665340761503898095722013439930165162839808519569584028951919236586377047641756631597679464618175914160434826719471626381242603992474633205336037337015218691974238382408143188805759027854839807008598910059320041238947050944829641620415019185982876705629815467088731017835157079589237899910528810712354743330067953334953499196153546318186510474972533567781903847556672915008708021834398497493400174169188949151025071553548255489707116295554923290516081821451475484433869235783216026668251380729190171817924243302389936173948620786721765900352317643507498236733631082551429647995838656147163519561910237651965494629430314597018008708276031412335894172827944186971526156993249879943087597869009238155090632741824835641703246958335983608119328740227255160353188532507018798266326192196170786641563293381749837351470768922175404170831516910322761364972039070158503037610808163110938066077655352660880720411067584578490920638261157260947262737938719854397035659497458315332914308999105265512062186136582680838851505996588499488481094554878567768669206657016962735070396208877468735290838601703237407360913223961651381717860637611122859229437835774316856773378425809687439357246049976192867405785042940878592782472238172670543950046583722909655711820613343784451785073634732474438646982955232062684734107761093660439001493436608110683587375519725382362890666481377646755348672216604025833274999726543636468146327424970966437887215504516624082368508749726205841745881430498286030193755486030573441609892814586391367479573425561792216318363205269391774153867208930413501572710651767647741643585529031060770783253041807121172309813185556124907254535952619605195319563940628983568575515351020334349068193150194091349750493806021207938934678977440407476787421994500688137848133999573295066780202300897534013440864166101224374055673515698314906520118868532852855705742968877759324436500996547135285369011889180023805223527728012848902834656042295588378736192745809015234613304614127139453823541134413926421696949448592722008611678521467036495323460036683330444628513566997763847475071194475785422786565018877564020029867162318660538530572025249221726578769286444446300347543564312256888238112605976474477308368291698195514788872623636787452808441747136124281915745721578868487819479329655617089600875348779921390936970232764680310727892658718575473334592225389091447879622964545974728964323424348344349122921032527768287178902793997802847897725744282628996237368826239047045366485843300888457842998687996206525886631996087726650544640961625771130817238154259377243837556344149076919782212689119870558622708231987583583343370068046897488140121712975313586285029812375478151985386686034601257119886387985068588709367587040680928777265727523272176318667631924642840333299172830112572520425650113631325589756843606714953978467358220734168115898243247932600370930385732647200265423974442953163202230883832362588885189728745036664994515137866460790849985856667955889059416231815230257651342454847912131601184453391387927990804083285444286652197909223357799271427643644100434732863434163641651031201770737433246159769571243573940179714359602107543421183927630559759552424931542905460437452903086081826039684991390645001222394366081288329331609716734868376132794117085172038837351918754901595510044319651361816806240944631403548406622098112411953456493772533391601596436569108684069788712907722453498945039436602418850951767330974131595278791121393460712347612544561511209063814917388164659835568647138108539861523608185791916112272404063881118891703895861095436802719346095693472007523712554590226450438322719373723627596341236797839900475246675708403057589264809422969601268640588484523574271406085967262436509713400993342345987509994718185324195857972923779151504659708784444708612189863326690016672701016823861293216281633257699377492415447406751329251992412834902786146219913604528733122027111734310726973404710073058089092691304244061016897690869979677291965895779305883173654668090588570886681856529491862191910782519238535304091612910108527114102978227231885305682620578501547361922430137568019603920018944851555199709782393287980520142204048969144322828505258812315985232950133737088850905414323519748819576523114844555981188827536809135059615027605097607289845034540521471730433269977058213698105714140315195601591236171687965980457076172257994585105130174012497059960565319931758352903652100339645859275274030114799935222945799366118966103114923765253822344466732786727642958942083686947906896572132729956288947315489742809456395156454988020561893166674249637513854571795071655708877064720270282477806752197714710160768752150393524432015094176137516105071211849896048927100522613390046999794113843326468640766409428116898086007992061146310976491551133211861162648097746044201361807226760900589282377481212856754274686894644152264475158834630387530388940709229167080311711466192810353271033543414163987358972880662922667672738771084729479817996641823037236176748223825445443847564732867425703498601691954484738211362383864383041562311578182232765332979710973102257572613227239014384718163498159585793041369595242735710994072391535842785629891091253540790074850613647167070279870651369908570339099099027859331502807985092059798967572960651441602421922330435991369562556052859476836221982826164190724456511751736448605703243110436187339017886349659642907285339754407579053131308359066242608342918545491361307838830812020751709342905351157274696377158085143010341657412994283601072878605870871900938168325821542703015757592191633657571068450515342287587171179527981804062581024371023407348770601961824668008778007564690104965025784397147801822988389267202599306149659655717486843113756276379103856441614521067338304442022396325651863018469332172672563566318295910177508188646032672084858413836792086588341564767222927228841469897566076375388674859624765640392291822087431048043072420531345341072432830173757792072615032522583610184788396748742371787244521648220564885025769998589864641932039385296197121664729942112452225211039817386837189600106437018778514030924447777228931809705899799158281815223113566401229189838149682743564844200699162273131528674676589246003709734073014459855540295017994265837314790749108341746664227114221941228237773444613601965139827253026339403644256902202796900049859638742862546369540809196921333453483051108348262171985149997020192858794959389076747784724389442056404362972906728083158261840976228711779904949874047463485623753505020685992747998035561412100696047870620059209164766504749727284045669304396522068257873891384775151655623083275970627835091828727101003376177088290728358252602338320228802978562058136712293323631551475965845850973169487614900815153278348433616040624805421573750314031243474437145742324850161221104661312953332410340475721663674067745253439392872767400929677854156596138241378462399399711157580091940131958525232687002218540667590647682453582517321417893926706190932020862830622581941201357040539155846273749086974824184090185359694822525958467648067969811628974005531807589950443400120259985173980959176844894222837847729342790289021654220569252623161532937973873937068987774726729169540730334987491251720124064977057279259942272351528469230829731727565142389744461815836090917252266847118652984150479136022896802716608138481387798155987230754186096494318891534231641246609791285821388847432236684207716699889298549760040098621547917052626829658585365320371639469119123275836122926675264985708765890310241638912986871218934335745288154126931214442726909900245442263611443047695517255162332673645131066926820040998039233691577802599226194426260331340720680783738751955103072999023025987864536540436638512235316750569773645357287171724730802460342401039615717648116098820818266867544262925079440140753891655008834452887445527787802943542402153453651692129680362253124926220749305310122893825645615717380718057460763101061629536836143352034870333772735257615917025983909542981221849623843980870298862138439540037627720587922943070663337318802418208266399037519638626382440411709526733660589756359740634771656318303342960099323349147620826869042147683472889164130550404202389856828727796623144693398933501786778704752250873858316771291357704747911172597080775353362918389346098343028806660543250172708409440408467316471445269516790090578657172917061564310861922994853773418347949396583130115952108516277037971665752903438193650693233726812434634635878357405133167785098903891508510308191734380473816321049948524124063242372944243799942457274677145027757655290793096305473053419131281446934866270496837677664987349457079704535878027834799364646191124066266168984752543419890426496163231273744027015016849857101681557216875772547057537858956915523884999997526456270705076729810055222331015792456742444945429287176653512061431397906412506394223827096681930042429501338581074780621100312565480117255955638466397026556928433517989896140257482682260840662033106992228226079862581613349986423983673743340354664703556004441615695790286132769602277315050428882766006954185708009613979044292539936105354400895643550448935337418907000335854226261574789958940295036337840247716084179828260616731747283020474118722152298366048173380372223717799757430680251502282623738833980153677965648671830946320285483009732810464717111002826228487006038493584406476763326607152399342873836894264569521485532422196746507869866229870474953804601028767952125213788279465786540866447191263386816170334399613258039491821429647644596556110398207929481419900374486023153817269638100327531329251798513615681648250246715234342046654171591190789690480329882258605729905832235818937006512632557793683805485220072356558192784330813662184193298978178154773805970542995342766170094615598546223910936614448245423603536063980943034592486904230838250537008867453580887399428377026782861854370568991723881694603249590404101284253860252885633118203465824324488335533868945371987418875640252326951781206300988346897152840691489296029299766210932633171053399335893226211104713334168608062681133858750120059335946445033088347470076698601973015493382183131195693438454079330479346165363417461120283826648888747242494831577466369339208630168719961437652534251489889463736117532467207091836434199980632477362978026249825476449433525600087812861427223199535812176555239350126323643352034262792545159899687919462259208682498777204435831401895025239159200970128396970654076919431086117033007123890285295582677086508793661084978699026682273507665011194587533764556854940523661325732231973527831033313527900839256545983087602047255566217579804226181971530508349450586294767835702714112494907797611305090374169068151978737062512649838841793706855489318380872508107091247004761187705564927736267998674318207943427397786074076380802924181245873206340775684929714027471903617646112114381594657671061102820883977511688531163655588421478333338950992879855120290962072454638722072647453109941657041668456599468737613390295806853911339205848614029270284108876153394531075826103537330596732280977648651094565428128553452897133159394484413957923538561594080847741591224472369823498980628410515917096275855286038627338746871946832939302080079952252045806671351032844801351182456846440628538514265982644045392375023120260203786034770245449819778144103915812207062291553204575225338249414019178346119430720636209088171286220979339404066536200363259177796400651547136831859797841867224128142840813778604800913185538542899103814035438288764732977804660096029447459733391138644849689073585561515917188922330258658144893261270092691104648903879729328242781162867722114246620158000696825731155715296061258978637209983598622863727466613931171776775497181053720206855381980797792894770009826864095164336661443392653287067645224781415651855714407872208942057102188690751760262253951219132888688311944222964515029675287239074262888064059885458818212614584783252773379632841978461137403040197347738453096315854027176863049309804167864076680186739580331479440084596200998163384773172252955378125166109968261432731455441479838933677196577806445624093206004677933664917029002306010323385083186152736162978368902080880942248363660536199506570418349766824978341765465534438542969496637342700756052503277376905053294420698697964679873099055502674919406860957308963819411077242985764844482120381481894640496050727032131142746912715629471284660733861512389669326550575766359586981117520069276557261507692837829572962426808012619295431652486830590400988577612500418819766402435509049373671627107133569418355657955490957270303541279616581934457115797504627360989464167253588027826906446767334120610748339102206285663223592871381650641985980016835906966523717737703939462841583876182361996266404944526957361144671432388200578366901958630285247071485081684029991511453565692466665723917912285291069041265472340767418628558193080058745581716558914959483653737060803725714262513282263961823380329510887294938138226120359553675385588041180045531329048172169601475606263151501124664823094421451335631895630365680146601539867294243026823438159272768710104934835463951108213336690994211194622871972479160962567730287051764145768482660686262178703544588364132598403148307356412834790548206291469843475258611788878847497342102118941216728590041883317611495512246954962239006501904177830454794389070704454617256450439115944955378892680246943058487120340898532443836489788568388412092686474405950811269370356294411136724413692514314709231003051763417311419404626092496354275155186036599862679184611629672601189138443919913368989299770182470513247707774406062553528099824918862431930312926321714928083089248092885655781672411733902446844185552760206911804588010317448838748294773039058043813252961355673533703079212494231609119886949507299552597773797575802881116104050503899547447034701693423892714562781388116483594261298689803122415624152027579829424247519993289482586920721601665550172668934161613124743208172345300326429828097804729511915072383776750594361489405969571183209862210086296968298841031502927466954198661862010093899676242089526244768752841889073866472072780738568031729221816027052504040770627162281008125439888050520963776574821616302466968635147832408272219667337843293225675910131863077737799582078238373136365981444552199649579812216266643533020917343581323231133836335543745485324231609893872815847358973703713313613467258662167283387871640568203701782992665643525778988370314040971354196795417733228390773212797381987139423752750700919243259345096010218800261372767736874903761053350527616935966917118163385973848667541373769202591543607047808483365114020048068268026064255172433030277591910974449858412308256515586379248279191298342682683996441489259354504197670343850072512891645258414793488866648232243376637877617553335418400531886670988672554825789677861531280162448939202125681043752683085003065511044651946645127183859293685805209097890906508923260842560073216963525509259848532828076308134396115808477965387183073712669717284055677733903268587115402907099585917586065262936122092450832697257424399433933116256560993902471477938103862702349306917472616924495118707033644362340617035276290796406879984374476165987359281736656592685285225655803699410745083067835115846589644852081826631503423293177810113463918513554440064933251897247092897601001772467729250276496697402538363207612494740152646702681913487050846856936463809628004201979551555963176795415840506765557272424965574896693122057758333024020405506562963175897008725629268229030157378979040443984511604266021069579393271764203651329876551531992209378793613657006534674469302699540221360478607201511878482680692895810407823055836912520489571150983445517832796430277026554494183748413771572597020520740057220244310825733389992396088367995070494403909274032478507581378012406150206830875732297787523667813201155549685002269991256381325019851091846656264746944699950387916838139321626283990465385264678671777971414784306285808820021030904056026106972548558791864060345530914163938774495112402317900571322188159328768102555660111133598159773019902894120942307700493701974290642543929162025474347154977787646790894635503796545726587341348917518131567089565486980601261857942770777546906235152688021250876390281367578057242094916962576890470423800590653474252216134050670879274374058649336571256896765031226695011543023393387720634603254217247368143972698978751281269281354179408180868279715794110871736279139359363133512297609152216838154584954011205725823960902994611515895831349618618927615096191023735673607954257632230362091777492543864942226689612571519149744397803420813452952371632782758729093395139577563986829982807587352734748749574832802373508201710435955277721093685795579242244729040147355579362280105634979371234516076427756565905309691864477572911125399523737358050266742005562239984174914133498999569904097549383947082467807882256255476097484152161755823859855134725205295709523394385626529616181412032039049581211448343984244621429202695544772873770137027692859323811925128617486034058371621555851419970870848977339317019672550173901691283086724040595955333914028426457966733121948506967674941798255034430723959891366447959272443228287484620000499513472902383246361266035338249154703297454304721945982878930015789278093205745936797910953241739814153671945558205416264321434079758540651941863916245068153688178874505398373300998026417767289111825288570058731573357527597798396133433425871307045633700538615981547684249566186249823029133694321134298639719547051921968943027227661908746098913247839469252207450509835738006231225856949704485375511407516292580333774407500802791983327061211384580163402609802160720301426836578576616836904412535159763354316968515524890597620968867920533388625496824131260800313163881639265456266125219293996121157319744854244134475965247843644985021330445395563791400051474895013604081536731994887352124605729187487784949769401463408004494975690886353384634787920377059737316116245630144325721129869152363525812918445079607967160530229349314244099953840885940215655207159719438690111216990509387553340782515810359810081599739369007496859282115277696188670368036038566006494190354422731088777092048412872993231704120679994432208633337975257193910082239806789911824287592659917226473646139005595131490199928042723332419851415832591059349949631608403914446132741686443107410807328385573356543639837404322119689681953451852642949922270860224165144661888793668757452316020833148007731668792919025584574673447600433881892557971461466125780615031012241637235919146224430774222348755903382640307911604944715043391878631486119786622599256909128427697745023822261954126398345605922792565738417304573720984436121254083355900140708200592357756201056243422693336102569034058174471000348100198671362834136945030774745071421656847184600326103432732792654870142497672606523782117239940628975587234733005983945425594594400515581933298174493065921179610732202122441199797530417605292023912900577208775278958094149891265861183611394258063292266318303380259267952511189554654904109333738839187788451795372252653268940785600034514750384082936261278878273127627674595623559789100278490662103849525129469288378076796003136949445246156539118083596588933314559112732136052594567824478342356747677632100106690706688543009870923577552457878251079680868668336275656940840264852087787538971241526623112793680249280045749771671604919002532181188329744778337405967394773640655016868712626383923584607111950683379343704289295240068133619056612858932628298055914119252129459932114365316791913604124713843597141088241899734680932549221005152288131691635445071893976366122269147169727664463308735707133482268640817177519564033943549153304993027753914566047184883220312348454791722517949979186494997073646253393153685203391234735483100049930950217374862707197037891591612588433252115947566384507619364251145517118378115233904614148135281476425892072400708939070585794616413722569057199064622805949255970115753009474645623331576856324718416566118776370390729595551693694161675600304318714803490546587656528679949087212418258431477388845527926233612292894134702447735608840857791185836568389522839475272806137975703352008183157711002428253759600916427616377078905574898623480629033931572365481808423438277778056380678911706448542519632055550107613818201842144658838173372464069002165066824367484187390610035237763201109869756000869809381134775324933276402108134964160030786153459348818955362313937029234459019264792185532309623694159776682370409820694126373499753093968722943794596031583630454523301810153976484030330949762291789337935030932808034040114629236786438063515092269817208807722726464319778804807552909533074520485084376711987166920135958099963141814573954664495734820709073687812585248911915234385878687153439588786999783649999389001112440547669679492957743338913301462774558639366191012790153032328034436876275439984294082471181745433419008914813306554770207091599594268866685673600875474497883154550411587314555693313699537652807735005388536307481891536517334097313342043453884558421339615614910188011098806504565317810880237015043031908534614416276089751217806471180087359162876420281426066484115074101313075442649426965319178619068325358652391059032557791052704324562248849183024190970880663613260701527179352685236439017898498847111788641123087120870716981377232998189424954912151842392000131900680981005841094407765197825922014039685151507081345718949860833175513876106598933109027965790309527702538342671470069659949587013551629383284902702045038506680135769823052562934263289677406055613296046813334165276977047964438408550297446003139953389514960990918206071372125241393203963043773965249980965759481981916763572377980031733875614916365368963990280049903934753482516789074480937222218161308398014780462631611686956749999997685889790081014062281165850878861545295961944370244009226624963773674581195007819408211559698686998826659324545861658589986084227443230327987757410496394547754446969043886445900383210482941439513554774547588068837270473883524795728842705468427924435379065073891777313037412629726531350214869670364006927649655911676115795768351420867323810312484254246692645779279289333197508074245160699829202770016765242074167974052763789667582165991021769683397061374010860269307668571853364911805518588225553914488237582658942391625912223471619008204699385163476924612656687706175526976925113949676736062511647981216311407904796223607488666867933675443239619645749031896820920707815864694295179714411542320290548201090662472791718705910341376818341516592950125797699526015273528801149248375715733489191794339859769440805245434971808504918099736349687306607069384472638853798639564961407732010757668024797816693920677450030051531381558168729361099511255953551746412378411972715619076589391458250960670113698086752237082756886241371603118307506660349736993718533003218783559924101052185435905271979499896207796383601820834453131220203727960011239938889267155533939585680328929038803718299271488975275267489227953447459667436109964885187914139928411512738400530498460924324941742204921022343938822176682720934463587665487127641694528269623849592153357960301153467494216150758013644103842891230346621032354542764378023864777348305839726253602820223164667910429776889770498121836501006186074968042421873337920983468594361342454328636614436304859779969074063119487929010068898948187412287389598907317821432896386712405629590219952277886504782252760237303309852977461674309632368890996258039362560392557720658666418127042461725323568454670634677422617054967259864225167720520540034809546656200402677488331358159218733870209616579813204091547618704226194195075497088939706206679551290113910223044935261385421134576391127385299651340491571944415558901478208933616343319069236352491248600601738586654753544281192833065590883517274216708165654763450967564338486410420625806122024206743353506742436382030251770810103785611304731519947636035372771480922719878951496642088828297720273076392289850496485103180609296187608393935978129154769803429839091987735498271850071480142638374813427873667936686672833317397853306912222903160897418475674121689305143362822351060876305455443747688615008035980822142978553407664699832705616842568058476872321305804337420519093182039571649666886779942697918605188719135678184789582106960785768238849121427500804723959388512022533802737613615837595853434184755690289470166953172996357697763109133301182526279755179248208383591938720088529623174300306059914313791060340929231497269355493280587694057381995379543613314725054587916847281157611573901580810802682100770179703940425218563769957696470203465315847435724000665844292428135685930140084326705078928612194313469709951374996262461085385884902642702206183878491239804655791838510376421340539726034308247846155932855117532610759509698956903004512621475588847590644204675042469161618977974446399504109671357034233613247893083913188540217369123280203848471624425508714826817829126275140958448693287233604000444773976101550100092268557119688962125639813848606845084837607581186295997351965175681355066408992901361597871126472657882827645672799143617529340592232694877023962969284758113092684534985335986570773696761636942048579329058646434853811502750435660303526995305095868807056628486451978701212368680466984841790820771146066633830232844797702525900297513225974157934607710473143983521483173993226002283216458589971673912364306719036442099958427677862306401267071976348711599909126867748501657217458399014685543424325686535426169962196736023055743285092645133656844931475130046993414399051727832851865325946814624905360599226605475562381953645416704116702332292180400140176612231543265732950157892678964091701963351302290877258775488699627357746646328087871048704904323413653695152443778230119939093519515562125418346492943729502021561722161911468499616334314111718848109479325270855721721493729682810122640271343118258130618663565756852668028501093622078324408969237465800963433045796992405758789283959846660052211662241353553445068401718962167604593383037122135966819709615733745317036107095860964439376882490022208318138348932431612311316379724587450710847109507870635791489525495812972290177506034846416243699480325172459762443353751760326455852449703080626452208523310554495049282518685881043880395047518212013654866043256728444405783965765295382443478788984562457364947966008614781946881967932935603021230657784354423961564769143518138598505701845470892994934725775609235458552166370859861616783161284712584254066159344972757366232832896864391036167103160381794833137419034390397010790913585301034481446732790898054488708735997417683530933619521951290655056822862680504665269092313796238075599355409670329834235615429643598815155819756733240440484696722749507551229791490703621303164447110308159156350641679271770550513769086900232919797984540869104855570705079397307970442043722196945062429633146924063612494136493843537870526605789644752899069303117632954452103204042490649059119399008755413435251297803492004855635020232135700295721423550774271456920516528876412137535172239003079870864631977375735004450441583260670440039447871666328108734092730321046377688635646860857543372216384859804922041595297427374588202256245832866125832119295028727269026191370989838255747151765618217399415369264665589966575081370587040941848832986991891158525087394475973909489981303207413964868395731337009099436419554509788999283597389623729605415540135562851345922006803503143317943150581192229261930317759396107711269864767942791018022761715328725722089750333779465290129373244120204860482307905744382318703949322153552049193749097134407641076055085285624008998815068275917305968646785924613818402450430248612626463593897489175631867350681209789144796894394637826723335125381752550254241676464708470089763033359949332540457145693565805593787354023811049200522657091807803906622471571805555176020046963832039177776142244979838905435218007122811064997923024207269451354397964735310386456769693555986095525739954397157909378210573457305546352561800731140462122471722277000736179616917636312613035515926873481747464486343058519071149941567319944740110936552314021462963340523846432694210837813812110866594866775631329592672364014969031092009393689783050099577614581399683489744863889809675074963969612605534659883622498519057468578840625093287268038633823641829911455516297892017314375253707822092503637818779285133445764205757669423766907880670008271903271850624654887556431075604565209553350729975828581189222399536550963877861378672331035785675892780235075220931253127569697313585614635533535422148976614970000676281934519690139612836928918212736166161868211194251068826019627813024311692841514327888700028212857956937729485516137061271484743802143772557345169502549304659614971591021291996013131225742378051871029873707386101353233783010059677481636713374272602061840096220943283058140568804144450363028563025246564925552883879261766834391056972970253370178105820033198691726328537779536402077200888930338965435435308830511234496445217864150124861212713219381070548261444329158961396518226207234257679815952965321331071844688274221493732034998388220363072642236398333902272894042451564383852872566982738586467710611520592095931966794144180929692839301540532183269108865025840550753934693629789446456964902635161210736951257495062900553295279736431165992249400816166719335992785748038667053605289155528699498160506036146884334546978732839786582004544717438317499826203719671037548367522893171252667507935993468823731978070151538410351524955717578739769010516727691248923139463362737498254070608227266926010837830342528696900111359858172851853507787803999254941250396248577457046382465886815607008911190764885062686675220126682830845579594290562524948982462898488237058593398883480310936023862151901490462652339888243306624168987783484286171035216619948273154775538278496772655254145712868046785269606253363087846400195458241988662357805973187980409410091573335015458486444266573347261596702377019594644031499009358680181883787678262332380075609999813722249057969467241329812007048544521200531132583847817169484167872052680107282501391914945382192186480101476825656809406998468622682904496526322070771440413764296472078259348283280818721459423256253710692743288556897320678557644213579656900392353896753112717348211162572426264216519434618111027143314130449254656590399862862401121619483240218107468483607131699601184661518662678841831810203417154077516244484882743583962688044840711209458626831746256692483008047467781852520222434093236837620313472717952269564327672387724367805255145539716113402026764534479433014519514723310037526444762920548525412021733186348505588557095645028521127186433857571029776639243492136036604220259283648011668933306027838429687756049933591550174065975163190664781291303278265471117860469083147488731570585716846683266370189074748077790715347188414580327589659719448797116348189508761928080536054127865410899938774867680341889596474796958214444823327347455525091016282236451807649471241558890067539677257511571162087882363333587070260214828010402876944791275433997123020643809417148749788539443529065506090943928940735730228848060205256306387777421248570192402584917670124193707951455144831678358887259944852929768535397740844511953942469100360070139130875042839138173169578837629466811107028007452827848802154625481946766576300217344628102060924660431879991376566028222740922695692743681729478201667447216797092373628375618677180491886331283166698159450600216909218391005291740978182382928201928848749379761385139840093717399658831526743550748018122543698246222940477376750052249465759117663297970893332524522339558040969163250265393264505572053338487254752658719149480760249514020877277993118787839618023575387921411181161303516832548799277098710965268493975921133399480126847442240210453762437837321884028992296636440018583165148067891192359391299500427550302329235604650674269362583629329561662440893095103358351116852076262171217531816054968138409169203631185943742090587485751921039180160305462318148222191142871237423439166764393391863377979972998953847167661297435231729514391431013500068484505639006267234228393694582115879494201189003718239603888435741134112746244465636205422953722972434992112970725616363563561918942810486771109910054718600203674249268259617013983142572821749983916936001085832027927821834190291216171438671923959939246086835944096764467061848483217738669278191636790344500112754638760967614528641806824530897196112905365025231675719250481285076512739297541527780292744589327482251346074241640639486341646371576289214583836250480071231595382376258164855299476781190616126426946563051565994230660599844449072791372174387201521622362771355161505484187383153819496424200923479082217469104154849908260027130278701375196001407713159621790352782777310976974912682004610899653506786588157022167133213050170122305574147279287269515973713192107411773506752651225243220970630317664464733082104911903948846568318424216621418488690063720771891490904202677020279839335690116100014689664139250367322735448929848253812889550664519091520825553911286183496095741369620548853576911049789411356147773802357299707489343723096362190344226432272840341200861956063912048470491702120293329960008391008464612632547682278944015872942353417871056583757884217697002802952657879836785839060833627610782446451999365154193728090868604867763665120455904386188167648183580643600141425305655715922384522154692581270389313269742290382278347932961239200881698602419401556604826370630907534636839789468178911848345639973201256621818438282639119938924116013424813563039926295322323158919868982254383557675672334833051455866851872729033619533980713044963206307681810384438787274635922995042084326585793201220611789570725534466532459768818364149899853411402388468016800070673289954062338341700519663010607427862929849908930578088355219684073890345890366753718276459311997421498849625492676108138491691064273122985159824988765641458176604054276899573426542186763595737050934981204383148306193520833432941699988359261724659532750599948307758920651368272743592119624583116491199250615223037645699802184576922567554043543052539330353303113130721301708414652672716014112761954700530607329676267371205273907823749541116741089845715385930006406386118699058099963957680932436122318633501515858548054150497319759063058868733750399815717821180521834493037373094238714889234088341138919037314959033301165955910499778638824571316557890672526490005237970114564878766848951514740762072674342026736734493056228809168076648636656401968189416420632547797823070089104885069203312206673378194215462867341058951066481325193912996099533194896876935845546091833063362650352900738827433072370453607373250968092497603279305579194626569598778334041343238832999227501759046117076464923251289238197404605701918728011808070303460157669976755447350222011195939313786094816034551566462890209304553418765797601006218387422867846963873697950709462083991996085820827276696739128330591400300567771569001110140309000681752927377809713025084825022410305006982969911806487049234613647524049222975454752346716652155661761616487473012041850765630423066866802436832061453013024912567875078327125425534426789541191576108720648143953881042334720314440269451053865617316765628864926879786664163532656800467162152274593232584047673775493328655489605527612239361162285314688409626299635199681698552302846889779190442658084760118492365480673191491905606200481582667191692583412567177681298229149564899523657468540729935901865915617697206282456151606473520626817671181791297605158525495952586618164131284155583355209398321925560200005546824100538466677813222606431529541353605051347663522479998808943935754384350588387936565279969401044944099518347966248079962453907991091865951693960733252893890437471211060072902670870206106357693131744541503084190658112357412596845519172098944114785693649277568175973920740526721404054979298844370677385144892148827107190096143413434868732078377815783325242730947141540572393667487559224138651639174933357840593496824419317611251656274802374031728344246488689024436582523179918544468610660144902509640143079295876283518041880037221616932416790134307254802196015558518869807995853590553821854103949504442563622188669629697852757968808217215592494627787790045167353051559664631175796670409604954653335830294820832105275572453624882952014745361626632726710299023274032436387848087584039957923131676166902403810460069770695458512941151780639158453400533540565140074922743004870364185068026326522536397665490148192579533252831852996484717757986585091254556836717921225357393036410363123199050872422997540770703535884046264568076739091613010076701063177220613207785074136449314024281337639336348651884865582309929264580133733302586062461996202783584784534315405721941098358783425548005232209291406660611589255207251373098863726052194733814694371675303678401340534526848583304796638028006150260801629889100626268426769525230137497574279516009274570264448335111009737813239052307527167643838744491294514934935039811025920351254721481216346499323041517821580740089619761652185961975845188455473471185747966938357589548006044287483511438845662385975875719643403090657790680107169828155500653168625184688606776676978245249803084166912267367231178242605229894187690546994043842682374272797372610249131901693320188334572857860021924189954250990028361803487306160185160567377823826108170096350597374754173278135308737176386364997813384217831741213734876449915247920446405600775618841309306052532687548890188380455745547843961802513719634946720115458772771481612420742903892400998794888301256478088156617533225327660686773173223057868004036463625194436500185404990183899861786319659715266608064751671345981317404792956902012646904158326918991173547691121537430411611673908658241350030922792235704909461993227837795831331405107226975485990468439119160421933291759375726954913408394510935851697222991069190748080471843267096287148156334941105848170121781454564698132473077649004089914285293428112113014458881572193403535996408188731242996818347803984994404469781910173947456593573275372003654148191168236414791435533786365874625172209494677292191495940589980738575474135164806233935935468390495921581054306840623035764598857335497934580582172134151618437505150629308076966914138109914614967495058289724882350445331813727138470412917346382884006005067207410012273555226627833992836206499384339419605704366023899288051601781133262084695986959472455414675700219789515456258850511056161693668717015090860703197282020367566078601216733520810310566583532945435378971087734964047133501100940167203824594635729966156380718279391845638853482772215212932668876500342235749585795566193579691012481836780474625123981814856910665487484511972952590925553332068575500063801242703058979744395646384679604230477060548141969233476327087630124469573213088252431579381736808868481886261454039827918496210793513923027487789345448767628999631113323997010092648334572337805789660632737258416555029292783931562788719963530587098837128920388297901407941787654636024144567731215192274841610358946022973576611908399952686348953149001236224205057086981220692545483728990018577477852942023631254008560967576938937597128463570038156253484590031946784068922859652512002980083524122801849838540184659928229632527947064256734903654378360519333932847607528656193451817828644778775235600366201178288481947538283018114132330075822319400687289105997844525383009502937209967572716972421298487305399628117640721405629442267515681536222327881927145502807134735343790506792496604010331616312628112010299113644340054785777350638834483259424453365090969005044448661646424433227772997326878643921843559507660690522544700159713946033849139421553125116495642640851608409875226436382685742463233915095145753514083229914956191231136662930886703055534260297138488753397186949456050794982663938517601693874635502466286027643937982037254392256487424089472214342749519170202995077807678237694800731343202221759278155825798136795988412916968333745243576813145529195868919239477968764017091682035665012426007413099245228794661074794386272141972736445272582938403533151762396534401007243346699766068975003764908657372044510589634776793876679317264836465562992259621408709512029833814866616431403472805415893459586001598614523504591506348862332334519388131932059130962334922173591538085470417034769811175273843033904787200630962879504556710505585915062067313197534379426081565909818731846994930483195753343916944868795779570974759079740994895733823831221029125783388939498078771587084085359705851575321322267579648925727915463272010548794097852499208553299511749466525069846485461001460056861933794689732606924455869334170429487998443416857068047842302074233711491524131849562482338132060297711883939286057111207611670514673268990207521487843670254500825934529486745852117815175307873932355195136360013050609635990075232963501006484139936143731741340550341807119712764840124782124238164809346263662581532738538775085042289039571762903351944780496633945941806244480316231615988237263356098746883630448263089447451551849711887262907285979485302095192243078814504928092589351036915700934663046387901105004844896398302309904794010400239794878761433372489456370999755730284805215651386769892894760206805266228571071768333965612137255030991185063464911583260454075782056177705093372442030822905832386472220541502877379341619425508863341944611709714223069861125016060809797420616818767618532618799102273189655647963028286196786465750401047712312455025403981041338278185573778502623958260556002417800947645232782967018903470876788850133140110302514051012174240592576465980081126153308112400160311212469376241840837219963823190549413470986852779363598371234287609321307641079879514776068134967977723610058698146897433544896822853985633043499964722131888507878196302287116775331362501088689189669169254725398722774850449660153647211977147222443619867760862712387427807439735121709406318391553693651613561192146916297659458361748994940924470221005876167020250689128463088660997358065361106656888863434067008665219505022430430130947510932685879200020932744515610458339232814554426868544109703569003054253903845324356626263309137659876066694215082402303362316938453400005837579587828404630144184223083306522109394402760282995057733256902805412746548037168931693647784080778625983681186560837372434544457847536423768455638075647984133977346426128551701157895238337435894614016553772854795751950381103608299964206704719878376907863538784204255107670806088550107560629490147977606971623855964352516670799193283279879241922985705821061521771367387975058337318631633818013332204488342071591753577845602619398917174223119942390953160713092070954416248754727200202572650881055101598419448733719963898972078479161875469559050290354265761300674296921818297277313627041188887853133966103980755959156188711372778898451175468196841918973026726383888765407169606042802947346810080450371909658381569003556429771036355529235725028439736924502482387061698351666149274493903678147750220875954797277233818726078137288197074963345044982794176335561694077117953829598941813139393104711347716104428292408171194540912655851498625522646529785357491135745184096545690851110938307074682902134930741565193779851697606690936230673848571389993655222196447060895922632244042978412935629377564395029352758292780079121126205241616582359297103759924157785029816783223416516350654886713434434779223361101250797375538901999528426648593304802270656660951689844477688891771986626527497137786017986618882191701146433488031404768435448939268186957240267903833290738051066543938154872900489220646920374998793856065338941165107610760958351117289718564213758044198999933815035191712167275025499213719720296578857212412917722853954630134953995839936502331887201803229943080223019013042088183925086331271821864898066705958507337081560202727455182128371725724140833219686122723565454505526383282962026546054431947203970002979836224061679399267562750015950861289873987877161001427464249764491970452014542792312305092723768919277570457828552724600363704605303573177719531037752949932951517261168844321649268724557461612737467518224967345427693037602097151454978615718368672501379568695613888352079592216327573609503171399365688706652670590001668815355448633498964344293731333780390932793991436776963914802661726798083340642975816417931098723801326657795698219932060030915699378851418718787631262818400214491374318565876811619311900217163334604993980683126976652638394417262790713774462511334631529139629819468207154456655955813958320779243667880084471886631143480964620715049729814116567414743759672120517868030397934809092276526668130363089407340380538281744140827935666808685611718514151645420246923569324361380966512151425562216801923741379911249052971283154510167058527959197654307509931029363411359629602902864926759543769931718493818981185363639254648653182968922734866032218029121066196813545770292485261873484031440541594971434060096114426776953828329006405260185373732866863309075622931881300514424509581998743554754716943365328037312932380913241734679478749925500215438431491409745275760334787912300619635245954869682952477167004982604946351830102652672258207399425803105871187817257267184503951025608981095152844304804298301777034929119085000095415943811065923813151375328219600168645345363997420649708968306315829539668179714055454126297294549019657875054957193979992433369095093918869472538081449019086063129201096243865959012950863314617521060604391324031459882819368731480587481306352227969475765134819629753979008245204932631698842261324133157077048803546832073137493378064358987692949025847524346868122704940855602032395031347064961285773188741395492368540828306571599396747303443959068381224812860185467561426882375919136142640504164651266034752035825661843207953720368572799561307048248695165434040079732674601799501711558483894771522505918277218325994340840541113273147535168569466524264808901387879940117535850610181893962265463739925156705830052827957193934062277801127683943790010575405337964635620034669766411220292540804503982612962900416776772137725259922583070177788517881677120397404524751412171623258453440837571964262116750403983331082796025400946563830096218940941115349238345841513212387381157967111170808503937334471108808746040267242962148634423020820011741928125976189028131718913512796057726797517218155261614165600712401463209659726999271421663382946283769774024907627581183459338740368373463055311144485474730578735604812763262699109899978471581658429646901766231077440703464133495728917358388663696454779704752486390959012506209600305913753974716360740281777969533731049247073324118694396732043704941964315878988872656498137724307625464681888294472363641498937036370203146346610007597302268063081544998211637110156980508597414640302634273297858623803348582345656714702519349785597532196054309677804796907274782149625028269460538320210690649715008460001864249793624031473143472981547768237360507500604359793201867569852585084758427913880857348280657081938582789980842464255976587149418238089248515801584103691374046832751388311643370252829850257297683777071695768559603892557768559252477695463229484278824303884361716997845875759919519938271825185134425967122283578003620871916495090907842957650189716603437042459180419913418971451712835208249952228894203580041893189118625096667928818199772430176449848007282827293572447133974749695157530191126092769176023225653360592331828848338190626276490882882918645293625964008517544714040486339351463809960825285742402015952791712084691959392092522191776724862939873130082917627983886712093258374064393554551328919725070011103928032543331034557628834056713821929808486851422097945156743286007949278784669355922188349990508426576049425132898552758254952221088126035934497347185134518274949241421840586454493997643983614291850121502050804143954221082470046417261054659789954635337115260414740557385416666565613282919671250291219089452166896446464480581654170761199261829966905084486913906841032793378784456803983575722515764259950925974862659520946720607605855941770697023085123518510584881736217597243902284910816129868184739857921285896892752321923790505215858361632243876490750684619875161038165233767400610614702274852256973464401681364371646354946784757762653655889047537742933332227032323775869427109319643671739302575898754000340657548542414872530265240825263683225001542535317895439450960860468276126382722757591296333769868922881520321562651781545634557589402222861896328644983323171981353748187825340660592867064033501732257149214699977700176246763138776377229234201393121610539815102150285116010307265224901128386269234142258863927991615449075284995110153470504527099747234896721723370706885652765634110304058415534153419103980350318677780629229680154666463274125143327410458721263542514440727853339745374463796887502836005776254494338031919646880717322510738577892340924260917023770037960988189301824463871621592585532683492208062862984870626743381680839113345742572879659763983281314808510799584575141407157748299248814929111275583714482481528843897593644808800968095931115578750590289340069731495599900823118630343986371379665937051670351699795351331611356790788852446857291233668368374446478063550366672363117710830721124177661158179113853632767917363413345118141984316817800473979693292133844750527835132934053007980105829402194976161031626182284202510578278622695200766052746613948191585699997056366180596387125365963288169926215539030055902394220277516638438959019165061935426347211084519951490186968407458499437412231982698390532702238651066611295155890627584546743040944345793242070020982363241353264013799731567119290030513826312863304916415735428196033654718586099614586632950538638412643517257132942852802949376668298564276808380669541073346118056448978641160241557446572474947092785019544765507723337184639630737562838064172964000875779451771290306550729156096599560119139277511861321613730698763647460808743148826445040599010516674942459090974206595425674823791508162370660755865177210410948728139516576616535320343016450031044957396312341110112812457961100442662034926713939484168385178715721797523759668055901645884336380618010541830664333553300582551353496657594858681514985310132068888751293857901886306978705807289474389138338827250387480491186080670002739697622030311820852883369583337923220212413399488651708451593911206316714673623757178217117552537920661444875646049781433942481122754586238843128233889336354642016533929291031574941194893471373503821359936883881059536713777081026358371082269886289591872723909751921834349201981580655948708822516197314991403490471238874533448199538286271533793933973349842077153444151728495683983200388873008492979949335241308921586848689175665392918165009320418868972044265569846052484778739064582512971161048186136116172351831705840964063086297460024069268785253943301459531201739394731185949149005502769128762760028797245021210336904041362828350901179195616906462559256975453428052595357861737157205376287174000742263330376160029797648071823804422929622407970590712388987759970598758697755671460580409681520268206970104193349882964719763639778498045975023514078938124635473011400085125270989220183439600308391082190088495661084360736583198530622445274127842183276480683168571511463443611144278418916785135192520910955960982871525140195711606316527475108357976553278056502781995295870703630131710390735401302352080424012429434755055143970616507104399008269929898938576003371617078650348486255843891640640348821620094811762295450282863450429864484687804242223341021310594743949299583833018311057508683644961832155305405125620611234553878407421285609471731863046826882404553016070853270890555576058507380380513179230128278016639080144801433382642403690360122713055795528615128108564526564455827848345154962660660659823504804882582819903887486004276801954105404103338176128325531032724878182906339278829835920381293046351160956172015550084694451660833354859423478679506331949794360155951802835885322235698429582501363086527964748540046503429300747651610313354039661159679675784571517261961745211048835877804457110590592431168730426350407387265811240692576269810820293302319781568864180808667632559162042558653883000409434003606728797930006888196617825738577517672105512298636640379736053286334721438830642455737456016997231733608552472441957725482853053746535001954254413940314223338099528051125983281675472536024663085819182225171028390668665462018273155259889072391312543818730212594169984929707296064805948382451734462673507448687217533528585972512980988753441288995160190626016890779327069918302552537954964312866407969418926238679786562399905250370017477021662743848104711478324537872946840314356019262113202188300445041844735220898705234051850500395830120846981126783603710891520743938286163117137647308393594129285727190238129612848238115934472036127261307437167000158066088716961210327961913472082991934572736314169500618782042640141489848263168909133815894497982777005802257904964031009781967273864383636053231051279437333867618062080309186394537764905791755112876460379951960698708683895338598140202991527927340147097917744809479409512337445408551070994959578223780852737488626123697247493837102907836199493178397959632492901318282234206086239580072995681196031483802533164618984631297736705214050102157675252099542534371676458422655476631565243785937273680284454352472443411857178341670998840387336194926686921711375987311820176122135870547960478199400352135217311075433671472599890842568187186777913732791745857232425651962485112622577793389749500692519381071381533787541294209538089426542457515732640127002973754241654113944976354547531576393316248963011831988467623640993886267500024414926603585555379040564138743915403545954858683614527543287972894862343210112625242424952373110404903249359054578174691291462489545487812764550392308434678440707322393645163489589551464794398740660581892628304665039124818476994432851331106830673708082529425081857836900053828617362386037762820548008232025358337901217651398521250417972654224364356671861179820175691223476737419775983598663497456338478180055388689465911456099394685884028853820843512585933912093723374603654612852992685957692121905831939426520501696380369787810414340105468827934203706113754441652263708989943374147848604054180651981121963361753200060303689621257364404079072123700726697152255175021259864207977961263681698696802624826594879825577008173960151605874152023782703761284933196952677724922889277737384180919116839321867791763915304083586744696518600295741366071074664083501056239461581698492377538170508284357953618138670672047400953328341907916664562370458426862962671103152087859226069712804950374358678466771083786282754046533152944395049712895254233052773434254254526049604901641385956395605110379626408153013154712113035248124780474140562731503639697768615783019041420295149914712795978984086658519237708584320681929586295829229199816272840473007474089459453948618089559294755919365491056854694138799223690362267308819145985767492116555527468071969947158874907830665800226548386227262419345172151792266988694313140638343638053828759111696704294735857508622893460896594683069252127567727686847232073740461993803289401437426467159623224981119504341472266299810756198068910250024999310403647155058586717637943920052208872775598153309705292597945537735853812633941297335176969966472286019436256128213574180042685364021724183454946168076731210459918422378863877295031815459957051845652596662936796230724595434905273737671696061990117731853244005447226480049439073185833768103886251521943343885825287243142373054316259660770991912038505731469036883225054245705671742649563311023853808316380921372091572657702415328393909196086703369260029193170478270901394558098872449317327122344454043170204925976497662770111373494159261407178349031514917455849202969317788551254722353225591625327034496045985027377561766063187685840770455007355028374137995789675358911302533363105756460576864565660794341148703621221363938771120892207930666440178214487089190760105440270341901609415408626835354507440795805559064167473873585591759094612007692000491013012569364378695821275529771674301382121698954990170568977472315944346642820737075556569510405246752522081681913039091571176034394096328415074301967126756841098175608100459667825615710580557218661378460082241205963603659097976895962756520792810562774687310584079277107474019258188159595093774876341758847200384872891856925989681410959244869723419695043253836647312497470376261377055824145077083250380661304363425210316487676657548460552512970285109007031651905572192402887375534081142884026090164664035947927987542173751296675805443156198739772571376237812260845520376524365990571746902894201743114454674297918730897793901501932966814417830804323362083096920231328536764578298030491111833900292376463750621422080638420286138584169746904033637427946989990228556988303605589922410323713193501787527826846560150271312459092258841733552709136520787866872204245797602222685984707049237411003037400596640804420372370320231474450088501543609441575874066245755841706401379555281329555474031275730664502656419409888240483970705536531288154772768400536084774952321679387014841055648650253751006688369901451175617406051465311883319431729445647251848127793770350196722622225480748489436329732918689836354199815108001123726948449591881422717805211221913866271893358000341056867246957024747948884767708606090091282194109542221079965943721057581244255049663765081927263353861459638624128251505264774541739023267305205711787996701454962722934062681523863551737347404962694161307051138666195879861865094924438071045425656451022296485577728409019321515103581960986999798517264269501638912620267892754276295495126337523623872031269317829284539569100693973106660988598859598515673237136827132114325292233436368302384260913479053613511478110523154608638551072361191670457837120279926639042303361356938012657113451139517380515183873695452073224354368891328301677802647538831103534394439874079114700261516575491371525188031299715634834690455364546294950381887647025808780012965531681881931517011668531479584072569685867581634512471425157650554926513733552399588460884208898168466141340025735011346888438873298047797132692371238061429709978671907852308114388561728366470320593607267591913432850974828078116056675879118335937158408537370177686980701039745658720949202232246341159941519258695653417555546189932930719758001177525543542474753056529637087053484223257397498921949589387321303887416241697696978740605542222809272815627883875450174311403434757366153252627174425062029341016004541044866411283734349119641568330661439528636796530126605573657665553158616701641263131632564804567758560885704017370996971670629904288120756364405177206188967121584036368939025993320265053112823987376733531022593467577657902350064883095881301685204900628641273823243838210401669501402307520228764036218359310996838660455258369588524541286741160758919516946062379010091684558888923260598028040378529549793527000606720835307519378742048504597113802630233519934154112260631201534828150867974437379524334760551265783996056415709595768381858823034300849270126442019090971368726566215190644071218744303923348050794989094313088478591902685800245447131956053568264753150661437311613091092115938782219366407768373887861205670771584524319520883997999679243733999199587845379776499707651316071446055351780314058308227058466613842424192262504003566288853428407653888170674250465391695741217563325104029670242586414300019836369708724038892367455192284175734891405116520657458746665235599326143175352274180983562425762054904694823625031823909967703016232499095702440918110368155684519893983156254900913726560287960809707144910834681328496265396893293877150123267272314129016543435212830720057079010460333315551333258715758961572789033460746479836711735702488345466768769604061359854110532928588278102485859823114314205945172081468389836406928799749059548553440726441148607391196768014989634947134692920125047344816951521980001438780788348954062712534377610098576857847668475366299507530378175618222891253027814883239368307391855846308772289528680156815025869323881797716256997134148504607783819822727492580353473524997084224028190850236072433483001181896045525423312576291066776149687586854194511042286140861153083670970429805991988111877739812029317540835785749137785748993510720475677353221031233535844081953976671698816033784769981539586332141005708428058139593032590951505793261135476200390469431192133571421766418533686209352780268480452525996249318384682179737841937881604456688258720968680972279838062301694153908159750582530353070362550589799711165871352962059679639353519906935191718083927898143573274804689445161260481880133245189163701863340033951453340257904716251313969603937005407276253253211830064669732183901561644740647033617879087359794779980082056538840022556533001739531773570494355196518284330809566095226949910691595720074073812366326231106328478344786203166103790724649521166477933899815747741752887718900040129975119271516666485339082579312700843497066724695748211128397841182618807569749503202751943278984230981087809518731924575634134314617615705629509596485045004241457431873874913922840495706979821226079194051438873572127623897097760214690958340217984082300731745371379243253283291159527167383783712598390542069940564157400616578722419413282314571217907803451986890944285607675367676173339664373470212155194180571257047966191619658128248718508899229775419017188947118070446895096790371614057452646716387569887463980623024958261233290904475762346058716049129548139652632403174378970346777787950911323003644647375926212793842016231786111263379903520793607201358816920552040488981132125700659432672221908160683766550413488902499250806472813961003622428219683049586141381271589280625156652112059192629819847341653187436684076135351808222531058635585463018930785921867886781194878679688220009867464061337715766522756712854847990731752414841638288830559573824096934542461792828572899019499069564445679672023298943286329299830743428298251052195084211811772716089503533439129533137755189427826264581564628477368334689384500520319314357848528063418170300439377057703858847314039110531879078302541211204644048026931854306660880338569595852787086908635885890569890855492740240467335880589288880001229770794554810384421578660470884033395427217899940956907295083422885365234107311655543387099945654521389167069743711313655323251235676628162424309920974689292840659401288899020725149185533180787076272967617224905792993869829737349135031083035744797772528161712620122003056044643192586033947523927510096450869672483766382039245728427061333627930232585492442704421155545965396605248740170895642962817416608770840354940101868525940619971085475446223398622527985034231167372322022863405079518046561381735297555181700481612684989014989019420465823130872743681264254479383970930865508737582919889797392003740645423698730912202322725488252122348076862073627806615042639754206362822629239207964303924985247123613546582809904681790062481747320478147031414152561489391970630558912964626469751692776317773407644930818485287556422029613383265543816385716164475849490660730386912049919429084485427180114496347186907207517267490168387161068425771520751204630229140189784692156959965300745211700103961393303408851403984241500990503080249800448305349634532258121242770065538964747077684764986202356314893596909498987944037657860121571802388545711262786391176297524891985584094665850362231099722729703050470927509851957369542238959313224738118973878567422681831866812843590035450430604806422995312274041363737654644240473004304657120832003683661777464944454704738946244780500687660995541324409944255028909657192812562646147116872391283283413872724225427043514049130308999248631918539677296577881525284983433633009778211888785260531111133985349333952873193893525155590885489452138648532814813473218313019656804407887408862570922474960916391668191082458651167404242250779888040121323284405637586119370361928545392113620645897784045873386862562965851829780698705608016513109348912703735782689819340351918592436566668380565702424156587445100204387974051905968950827807087841733189402356628827368910789809429164788363955530432088565607037091313614629051481944662673180526033337663789145669795003558517327047549156927896088847045352328393629516999096324765140278161311150951069476186412256294576820250859960223557805154725745422250321080040497842730945478654118572041366201731864009257135489231811087590022119435831052882184124418648289976911172425966281046010342491934071774759754688677517633610906456974768713463296866314573059195832814539862291538149441555055082893422567354027082574407642023233302640729863483539901827340652614034716974578741706332427515735015439617541181178484581364806868753392579919615567096061230604925933214666188851774019021695887659184658525987168601240158510000213086673564419440108015905979715164432543021823640208147001037131623840220820665374612813462577241408598444368947949531157833539557201094911479406347187746913100461286915748808513240534468177348921665871546649670121216268929087199705871567728781993636892850427897951269823234401663750718733806499430642552392702929245402721018724110370855499361460093390046733743466039931229594269239695276873083684973822434212434548098244228581900873221153734690177832158830991479912686834673588448131614312348992965085222428541097638777864979061390375395458643206235679149133618510345822566049147796958604574450156669441852185107993397623532735915828672444943168472296824778294370714622417361311663007760515165668994229447438197637381400599420629789779641905481617223753639420812002365792671944345016387906239916626703097258929820865536157898899027736235707349398271513261523089405931210420961616600802327036210774884575143720824804297869376554435401616776393265084408857143988161100716181097353111506022411284461133366452154681632518668838090968207103838208928939564497553057226026235537515427469572971860135750614377376719317517834072035854169769813500037483334499331421201356695403337100091266054666833228971664875039814487596072295643717930633350234590249257499092557263818289452228497743016616383853998183918524523194154223517277352847205696552032168430246975029022809834289624076065749110074884961717007785877148522852960147519880014772742163277138208324436623583095699517997517849696397274138473142443416299386522921654921720151282116914568286928461497298392305036691503352995801250836537248131730178659598969940975070061441872454298958929160501460874209542857509454896752893933134118347165027083584951685942863043337373092645335241396290711633745394344694104819309536601429259157315182661618748341114778511253419062354279834006286479065977310928220065098962145994174558856851894792133849452399639937841465078996227536859243803416280358611399643282122491392525165354349062518155388660807924924679495457133716556563913919239318963434432527781222987135992410500498977127711065777735006610936250326294080179164550180865776264714340501489168177799233628704400053063012304675711876853963502167914395903270721818944943112566575457610058382492970295431962941848194232813651643265120559142035336448201325966921229056283816808798684964119421376851448085263808773002835235778037551397570122372553906218971838946348849967789816631118698903433421123748050011822250860514880597759604763927338748700724487676399157918546374902288186694371465520426538028852987494412818470886712479431275060488045712167067461376200589732769066579791730841434695921845435242259018827506274526359282145649884473593514042897360105062311808393880220670752280390554189500792058097532326837869246744817408272591729124238386915411997390301355431203591901398694995811144763972904078860469375944885886813973383312087315348101239923044216032055262657624763429457184473516727048748622391995400434994718645107548169657983393091214336306187616360718276055762902742669481156805144123238417059394707632888711108516317308121599920667506787055151968426913161826240783365761592371078089499857410592476984016403132590228993343214300047796382082256410276082039746729995041863591030392565496122782141364698341027588309193165143551185913980169694230396554353479331846869123000857382122363293914803102884980381213439946088038316748989396355579196130665557279404514251538644574530479951747875025049461374661405179359814993878567341573073627342995139255126518333047725407314366742579768769756817704848937530130907313518134076949038864281681369013705154903368783623842415437063311104600546148905230932081769374593497692314541291023628111186143845835593516975012936056104304369302869438216211074864359132926412669299749269040345785195611015848411664992202490651839311184334226459234371284333339623778779365770418867435984520757768874038572264817255456304895561361918809495258513539584110052187275759055827068947166688008953355413550056613262463880198480903635154361871486873882464040952075513548277083440344923282751193808738902286667948979222251028105541725703059107168916912160260758241814183357939263791793586944259286438376281284319754396539121113855481905378076848447041836405263146466203209682005591664964289272694515040119021596479507609156518085524878826026010702836084426796965065049702380953979645596498123014790334204179346952270306422271672790328483616867554694793701105025731296302105697857979325455919247134233764741239070832002191428502474219466250459867134137269487527987351773502792544166349046272317826103866744211872052313670696729680557085766641835252427258465327315158146709611134152797633228713874013397232376213396803015072481991870042659146747106800492248410271959033368322694258314552586974425373663082280239384705248796414267821493975770727334483433998782720974826640900284176529584796447976222023869156394302035470347310375735552683018266725949983240706049248730014368804586898419372853870792141776815880460445791349705066525895648177843979004943833651946954012527062081343588462003472355741090043649667321127464754804318372439943295953654450560304646953602437298401550019745286015113557117114502993610033121417385218473130582025909388904484251789536388582946586732114064022115173194444291201453888389342425666634706611048612197326957184510475203111087552125722452596090591911515016160384415876527481314837311252915018056194123445771854168651281376876040840237809709349392812321548394102345576515063210908755628879269551014017694948310186576203856277878084528190967800771477664853889977789584144014642857427088688845728917715065578547993626560037759345408537694193254617171876992369400034552568119536551251514129804919269579959904285517626887424553430424532641809664011752087798733320229295229116893558192109785581051194053715211438082226817357763972064385262439824474986138808663988794242391839194085394125658546738108350007560160001910193252727085644392684825729854290961664758208484505084785546486879619490213425683844007483885685180100787741295471247384389360808252687387581863231096282192587820995146014976431192254092115373052048890424015027815945983402914836155526472340838658827240692601056608966725391886942773671520517584500808607829631291261559310269600622104087922423442180377387808209618109289305594155619741707372146850726301873978959276206024250169608378754717594278164500715890843983764525910326839807915222722831035835199244343264008102290348560441145276586522607570136148104439063361232315303428717465842358485513913817953569744493175899929623667392335824559867761089465109386842258511172400839321540216665329954139359651502848354717295664285404775222716558257168328603373590459524617540127063403071205009085243577243173379201594959964732158235577772727814227101198305025189469896003132790555182200536728902904270057774106569035596704998406182891881510387983157620983983689968634766313132944647066569721964618702059870252654744153317171955031569890032416006235870078870017652810812308001952040763175342863559384873872324036262697914989355463125120275691851528659202846658201572031474278543343844720276098260629311975783999161539592019214105412830615370357067905096652729783334028809324900907847093625797385437447377934765431755861322941039161481772653115513421487779161527467353962593885387301512043697851113863273237233716359078763419597806408808153156969693497456680925604542523912040252960537711844603571062718858836894334449113119663508012261719512490678614136328463116925238665354725510463099156936289596588862532226154595982189910459747999936296548569093195524550864080631214795465035885074662506671534681859358301061725165335382701277406841044087581406299176757922071690853996130125678899261602591905428209746527880515395900989385393091118318888416880065016492815149013907978055122360665580135622570255116337660356436710889655371990477819055246901128500612272890505148425987924061007854723214433099138237042088689769642991617647276809815627632754141831295664404587291048230671662526871593533318073109487931002282546347521409257871434449377197921738127990884456614247902443698843538673245590689039523662227881478009839894669107173480147942063686198474762314559265979686133041454201437512342990078348692186849944928978275179768529931655618131627275321669014642563923180141575494787691155914093355155328519425127332894313629501502709489280897725322395426261476671508863961079940267657650819845429832280694381240154175071665070630290295744611486171579090014595450861776793866962276326733980014668326747555991928518640377092868494689239473608936292156122039628214047128580714340685947963574183727552642953585608855261566625136732150758029728371742193096674265089286950529497725800798671044393310953604752289615973576246069932059880852074786891782352612117120731028155478519223641847402155132961740519648797478420540232300373058844385633904547996139428582580399814382436037694460639050418637837805734545917986282730511673152215609968943297519077002580280252559914559093971043623087188001939679642487197134875519580498023235830358640458400312967200949113063893852669849533598512792289624971980937644337054490756230396457787909324578846582159192622586617515538993971990496753227950175819315217573306693117765400784526005091761536826083997401626385363781245986146023615070036937912397439747639423569347515183538501526343900544764805023258823765882708727797448675153067565288653428460359543315922535788178985330571085422246369779223051715485401364223022879465177702746850422620267369609371058667211047436891580971705662674835606894854480123006953228756390105040160213328018689156406910043439027330395812041217938460648439866371416562633333965587955795416709859391115227110644423524056976612524632299577563016119175060855899940858577588304294674714153373730696480159509507233277473535142362527416225101133076271358547962376080256883613020070998732645383878223724834717916196274793378868438517266451025753822263446455514280253278905186097467281159742932562278060182633867942510079003174039541115079383816605289825052216466553798818199749586424893190735323688676642316997232956938572503373174711318681175950861664870439155982677975569970795231936666270078649162585632312451609779136641918288789329803891811275034435572943916949325277873134146332318081203851297640796201204297593710600081972224228724699892717062273412333759775782057544525902083035606755312181507743086004364846023035382902382397833890664466665459323279029847887188566401686010398142004433610383146264393238388017205716871537023161729457741855700186874202214751691729119103770062937117471998227905520550203594794519962532006548299883635860042393993676942397880577059965818108645590817169839954986713204300863362041497168257338204182479376475629405130360862337359480768189039226838118349211255087099714723766577953424607710040687947786394778981164712452842170904791636909173234147421984143382495932603142893143681599333626539029875434678117827197795076256207935989381119744964600022190632157911011808361206909427159055929877383849388474387765091560988299614434426556367180249852103397739770908817666471040809275025207323553787389178332219622639917646939792724278146961998866394846174345687200388896480733258336309174519318797735587327191302515800681174218384616004527907390775426178908470645332349313569342211073348060860966080361201116582369663459755043943413183038082463681816558535989064444056474262732841553242181343840258819122500561103414991790307158165719336556532856585966690082257438006796320659786476495731961622389792520308525622348301950525392374422041181680179778642063892195761072538524794506058802279366065341082446263915589071157263722403861909774496872661233709275186106748535580109251900491121577895177528351425911677483400055199344652093143324120671120508167257426741364864016891451942672813506443941061901101219584995370161613609012292039236731463868065496013710026009839945003351696296613728495571810398241539757902542362963783135906646222959774573694970804608246832919180538488433807607266389972100692408275073424711093286721260597908826501463041803086527047307117960072520976264208436461840533335415906383188033743558873802387103700134650974283319931218282853265479229718552134544530640977686868286282194507519026361187262690443983204107593335461122723091078600522429401418112618195870737145839856719558906801538162865994249380721175581478674305064414863444010440086121888621971010282313494137348329080325707987576992758756046557493861813470940009461280548679221109628860410685703889875746838284082208819336483235040189990044955299686424341600345276765794300687897827413323299953011516657057678021152043166733090298497104941360913563437504587566185786922754117535004800340097010076694546682288844402307895990623888493430588376709784058256886209133843032717598825400388250476437042815368053641520850695071145838834400558437253351423654131877170831634107477369394457701245965832414981127292646047363122412755510475071179375874466448443401756634597747074194770765332619924802843275372124131553528463573218472262626551365020729253394181870938325451777083230278390347466565386909902926124414901706953180288796717221547767376823475447368679963001815497672599019446574317871478859643666840515711806855360972366367897048598061464094776626342884959741531122034768176082082422858683789505378831095993629959834712335031335967253592313253297459310714900724216244083232020998216482400539377946315328191386261140538648804132806043368431725289301162101379012291469047419890108338701961660418329700490529078246285827434632317826287454069226069157517066033005677226180465047184577364699623424637097203090994964607282297972655537057456745092366792959867066467889217657739539233508980857205184403606272227939668435060168643029509192963466985115564111800319482929786571889201072763354174280354221060469508627067916820179890496919241544672650731263166826347241658930968091008239827023201341382667435308967330271406118959231285822484973187699857022663750024367072576346815265508408717028583754298771255750556963325115740181587978211420956243330527443605790946394435803150548212830517797762315653349340421474004911736197186590245802229827202815744462919967839071388832792837665406542429192913580139444876535813403488015319289857261753143458243032409081757560198811593228757349394493025774771366873458123030095094118080885393218284387544088495681973814912173178077619293039501064773170227018219526590471034865639897283747356505330628356856697924844917549998383685846672196474859862509961964756527685298276499916599532554619138666126878457726956434815802225512760919181440144704453465365268493837245394569540178111485679089567306139795715568121953341793669164040651954539259828970345423946155825577569977107592512957857235508089339039804905354215660873822559651965098426281138448227446740591367498968887085683018011295666490836960650291522499798448641313048368687159221174463590179867398037768923513040747862212292255758833943657261395977010341165974188397495598498833860260864003776501908820516410822545254302135620462071960492833235190582216764884804776951776115595464197159791877367357170266383008105117685727403263261389982402734823309118925392668517680780005986097056747845993210781087788445206206317582667279571554742979867415593035214414946453451187724010356990152559714693467677450297419322847158049009507195699651741843752469788416874057522166093290513257440729302843714664228855388706758681695803376485926985486563047530029438000001988836538331109053823737703513084194664303612033452142055736879218611205997602815764160633983532602087787009151705039998052225648926070600257055417502494062759970132363058029682483191956838915047636704150689520501971821185365207313262776319425633759012385896427177996700628790444036454568930704521431286981954187260365604413259950095667722659443727230989535294726170107598609883746925809954783952558723102115715252336863875762979240948325256641835490886200881011784636654436089022000385764400839867051600759788747313611829908250286708742557848828711494993191495755633819450561197284081371306682261953843900024238934472896036570618865093302680412572828779895176993353798872372839465115228276164898331351561839090404641412833097915955177890023357360758616727083874742336638144911281991374436334533340356490965229451768830167279250303837019968137605755193394863200120763363797928514503616455473701164761504338169507618552927432423786757762944328993680563396684885332809982964633726151544618064434644752971863103448025364275513917602831549367085508469152551369453885083780736223918075462592960075086625977482722050318735952198663580296082092697855714822904397465601841994625952136211104546384195678234976855314835464731132520207490226368949676000390716443323470112054529026940596686766944462236861277738659424851921744097765541703257345050793327423438646018567390293838529754908504467727162490370146281264418334932758764398111440493615597664367993761120651149126441996327907615528982665748840587159425008892215396114572186268744651018970182812158114345774305750710813497616576916087109802461997639670692112593699483923062009221978334679067249316996041325132027392868080796955633210125649045625805951434496883312534999064122322373016810412046732411475442643412943207663866323736299549396966757227325615599463175691355212479815000485187799887722674198447392644088590157752121192571946002049268199586459506110927233332919988798547975903240257902531087927265621643711434906977041858156890734573747515303293747702051067025536646742014764633121183675242708447152279260019276010756131257986904169868256122834374515935182500854355862299580670723107742859492428557647679169036568109890401283152201457907847377928958291118007405333919345552527742176506018054440188826166688654532969175522111134919181648503917404156204033629967693375985716655571918430636516181226821428727204519169801868246109484496780242794343611656465219404003749265408699495924863705509687406703573718049041078686525985219257553830403692577551383741105951675178574489046400232080878034576709250506181549714987516263170667274834992958497589337485372531857045910415596804452336368493584739072827318118092726781724094344894376623375155424171768068008182378445087884996671025453850940705431709192697271886464117707709138130578245341391147256115403347584946690122936958235798866322499600028767691363799426624768757953067787476930569932671949085324873079687090211181908012779135785394297709054422778255002522772994809580424641066139478513852516389809582283875283755672805331919795490818038958658086121436486023800985690128870436770804914759409540103079276037553109913411028057463552368745766093687005473500444709600447855549774553433424003943400304151868724263366021563855292974074426366451314671106629901094534000941305484198564301313191822970158988398109040008487579053396038609589565031979015224770856657228132643376669688097741852292391643825154328194058607192625569073963994918986445993838891656135406780831142163691557204829448495293810661094459993429925495407523581599401939527823446940734063635094142554371127069333689561463574309125383599471102616682721398004853563558745227237416260927459550200614421874227386388356325550318224801000759676669210400829560421673569581288979212982666700846521445120471576758959289758015475824218008567433838924893065333252572034467761582292823526740840641109921949664364552005717657984878594565812113519592415460458765500137087671356943453437835167140090635600887721369685783565123071650899800910178236747189059941560274949793463310839763175235171681779586989708646935456284304352379346908900003455972164393892777952644382991885003691155072274094269536112160345561000530761366919738113474582645200407581616206474833218282571005437639526534600642556361185028517639062337186931531276782072431381490299140266700069342950378231970597404073466592372468703994371213788153839772669735302398386020946277710671424665013533681074051230626616868134957621767590833929382556443319956069720801525169787978416718484619215232327113211211441741888892026850514264025048982633685774985710786880526896230444052757008304777209224526417944889969136467830042101018351053846049938385490213558468901246949526840113762098533347580882139163873368718951968628290432342588409807293354460919485119524945266797084514355552254592945310534214223816351965546990508067504681763486860062239931541254783208255948036801818625328163530059648369149129945077229143454260245479773584932586533616666679471774035115146347599815276343659821182696899764582955839863681707626681744425844901480235608915777360200526604560081736468554424241405734166594939538908227693988582654459460314139159710294802751874776698288989961964299076661509743444593005094423744978797232261714808717647061997087400161173574539559787577106683136745817676223754518184525882402554748031928741382920926276508594370038659552138382992233057875592650887077825207875437738456802727969265711028418400615402130013203125329421082581398583100850119710476941460670497219317817920557689881683673219539026529026376380060976276689233802492921039848777838001264225924057980135190311577170650043740812808752584786685589662832361179364153851666985274371267667724991597082299609663378968722311096754757313611392586155678114105546985988774600482032650486113614265013625275015780161312265490353976448154116701259494526916520838208945705988622464675795160689029530583545696638846515081599603714278269635817851091359852066565807779896823797220667071190640616391365947369016769745062063040427568443766634211571500139866993967572263319081728332956495958874419830080609664967769727883438737465682249271553943176415209384913203557409080782660585870411191715766724664594812066069020777290452767713711883265157080907030145937974651367602978791501755249098761732729513126371830233298929336814423018425578212021753931366603378419715216094164336878222891698738870594978074295977544097961917226228641889940954765040828210866281321015533163173924423385802303369681540229747778315335026774967499750151639406719087963547071078089261676017575387185722703554769646867264012925289810228717758566928368068303273562581923398940795525213303803708343234635831277586627725163155995815041782337834113056677496600992529363498473397745871748509135035666055039475494771648301681335703078028745147564717125203954713060491302168508927637391384243215993189697924425811977874199839667061343266618350091008784611556095255800964488384025590702669216408328575724537185885498072028252178247092800034134947569628746485746756035248969190303290442502115389162446324141050381870065467853457557141855654610515650086813501738080334817348788435983181984595085034488479650032669153683264313338523930361868249174974280320130541785852438364025306921947145523740702097475316446422721774282906046885329861851067525614129151594276152291937190996582794669486205208153558883438430013471413745964829619972112886701123513730432661001072544612926163874600612135174370726764491091790037330900427147310320130294624702566768406886899138413870753869588001070058144281412955604728584162454867672268498069807157785748540856207833376750804417353269644517671017327126145293176965470166232067195176892225118963415861622993663556738255368938363531180698524717267784007220431883166650033577543220658139085964015920415275781505659181813922608172007001147469861296885535033288014544230765189991686221844244190383938002940346642784657937796840390533756484591398327158454681853082689758885373163561985263202952793253733385240910581404108049503732321939666890342410565589757419800489566537233408538996878447309140987352324169007202531191722473540583539941360764802521399810151682988636721252282966068598365864346427329613587225225271304517344393127030815242106964795951540330020326286623067670080906393041516337675686754028099803722158423664962190545307048848882311021517019576192565888792958253311056929162951352053619739472281414481579961093572607266730537148117783894153432471062740833761938304916710219480093901676432600155811715232038482954315558348161938642439754937382956561278723012931717278676922547002461471333021934370604570657292092637554084754988771175411863634467998875231954670942323531324900579810998685589777110949633482336328313342778960234646651562405847381396901279078420892856763017618743893184980519052370713934491439373392561412137711402504875101732828803171643567395460810376464294631165347101804028848800909764702199924304239880712973481469472663121351213893479712796056604737483658168768807484892312858694357097617609554471740037187291176471972995533918530676419363615646163643649501192119172102218557495979208336381410196804600902658784020487649441096245683337249668294334093362695639630789822571543776976303287502759984092875144208256195809948890771574003723923755124070077809053833202752187607313112074433666807690980668305367350797905160323636297890191834377979213535382838963022353297065194808371030149149610746486471496725314084598769542452809184712646021586435860159210782686885437564274753379003998823277179743447182866805377131960351360366330342690274163796948229971564630328216458919143348906367888252082809411475808443314750126118822854064910813480368647456841934396510724148923597977239473920489415599319469043474905504991542082105274062073038879522202761329129352045978372266443683211687477835454365388019697554511659980747814882340807667074261113748750729634276078022584931584455255626845248748847772697659728793928902165737901931908821213195777103222622296171246096268051069021123078669228698995396495195907196877573730975005985427844264638906689237400737542315701604075543740759608388889653186421105570436857523332454566760729279993080386700087559913649444941343278827749112547332269425308999495111759465857973808232878240991854893451329702843928244893957233547192111355708182268909231514576698856691661275343923474226702907758085440904482907941814554822483763901735087175157572700817188773933963850774147113837004290048569972803835365848126704169116560550988572936513665930352059079338725321631776092684577532094321648139703653965334446404819612810226655515922851668294921386527270031705935546236424780445558910168957521357908148953287199315192256586536586414804472322452763603185510898913990002188618468393408053157792205573713103172400758978710917799608484537789048555858513992600444855881007057516209063298198624764288506976128064993395799571262046708308975549483591965040899597431846309307318760789969905792368351367891884047925785574979480659009568633836979628572387984616747321980983341943174930011028859399385240883317088295355489289292249447011378104574960913748062945534693993327073318923953403930039400307555659134170147416825340549660312145473619749074348573460147483892523616167822975181684463539990719929481835486284495774127562481427065326313576312135257062838673123733045155543276661634356451676673634695504277357110477645054677706571524989161301871745240641274938308869543690650545133560373173785569126685761999336882133522563026173231057290661297707056890051006132549032393718154166139992961144639800607888338825692459298511513679426134227999273266447515851102926466161101207765180886223606736200436274165252436934944434579493297467389394861413854473609436921589513521411191664021012331220003102058865528310264658582726770540211543599297354818413665717259670439464867272390789489682083406840186012262479941953859588630975801757234963886746981256854061270618504438616070705533543084000047864713530763299613622580884277133680440732209574815858928499766489013681417605667827171422286045085203465745014153632895671395057702505943440023283165140428130760231506794352292097708894604737240564896873148320960631178796585524994546776488936047491923368013244146151093526395024172129598923499277447569112218188435826410183263952706061595984049799460213618942138489846895582770160333373999048242078278597389508725370936022233202851947906351255555387100860002495652859741897637373196545462409707193171989304481105082998173818289769242855461949167355874913430838171468937126294737821187362774447451639053321273588762467984021443326536442902313564776802824259237766238152733029752896419124386121156823317427191188038641476724187279830758540303991072023071465366303878923093392214082005189275981135904069896217284625620309405222926740676158166695893009712605444317989929036361765833975619029476547382807976445398672800620546532382874873118489985197315702960325994880324178783915823073826925168739212242717666022921223131261591551660894839499845877418331518714331566197161887214518259298534682736980836094657279267857484787904536428456426854466063653830228351556617772548467901353535871158299071407678871838249200453910267979200455956010493518991792086520287705278236926254526095802488584994248446877177057971772919120954164481262780607062287397134434110049809067105456080185860473017876645831726329830936205741711010161939970967344980876961461236463222883554778605101685936880566527651946379235761228544918744052373093819329867653844823551795042087492581440509802023590715977720694218623938561513121225583645738061896692696932961645835927948613881834954471269878125444560893911280248035346867045600722238703547431088737263132219463338068030654381369007113031400897224319101000128546752052074375011845082865338450687374911703745977620560541852751739105580825453994930814088630873966642493172951010873606413744099373635855242949824284310644322235978747910811305479240669747040630714999530525351886511398106870275986093535275836912803039779737500931876625871555657767511241678517838594632964847445536486385613075026904076484773712884730069989449158487310179554753934399555898051386464169313031711295430564219430489862253460256876026585737942014147402521620689586364209943584988293039778970957728380694418242622794835625675728507784380941822781751103734756730039027625600137937140065949595741099243138198171429309246810859504509018293240493510577830637831151304692573195684683182507118846301194506244810520392091311468671277661850970126096237392324384936244257268431407892098250468778704495076325591481922020616633423545900897039317319732895148310433522919675741987986204071669528297109629995084113931693094584270190659003557049805514722624805564667026035110011899867040577076089254500649923350443312947341651767522220097897092589426008285547053516083041367563430761270343691540918233013848492790325276551290157976433661906494084699122933479651113686149714202152168765505399263302528551434082018123042796934776141368034773503307905422890333345790085968859307165033163621989320443821535670927039046151639257496441184360096257684176340385989667081647954230774162621610384288237822282344087807913150487441823318258190677129721704445977637616319205904812621215276109397994659437078658693744433985043765113705716621463693085843310218971469683434943302713216783872391918197028783353349874434707351707114778594721277324839648921540724638257556898991006745901177401865841989136974402955547102531422373134879416470536385305201265603915662624295093422572053565503897475248498207479981193498761488883568070719454045781166883666387961285270404922567510625684792333266003353114549124807026917078271060232439085430279174292993906827557606012575993371774559765514325061813716499521477693396628503107524113268301895211521657726215141765327813245816780630253488973124167480115599012404315524159227405678810571412426831113824371867059862597094353232028952969446772026021344987496490849973306634769001025440908144626375333604052760667541035237220745692564775655722085872159315289460721041008669831718976203772628966583568368740418442097520056155674792232369837816904667342135970723127481398237135080211347832295516062805453056220191000952706462073359704327463747829098935857277790338226947835828237685859084784370322184769525055976477267687062229378762539772846843956630068080628717989390318252122993874083683256647960776808890111237917840361317476403443100317564174581919477402460632875314974149833302599328610056002392722131520503242070236749498350057887452023843617796989669869877340471351100749762522746134899886862645403119266139026858116561261742605363459497523524143596461649430538495495220665892590566780934294980567830924899986924010305053982806783920954696081553608211405558888399616148513888015736726790992208593146338047666852570585702077906723098681268936503157331144522476075623740181049924167128326900424355162577517215913360765172667515166776002177096878971355290150763712424702633656717986430221060979857253919194164465955098747456066288163526980827483648734731258279866444539095129888698932476699677487903356287638362777450630442197680483030404382802051966078151960729026518366316350466972602570373049221290858823166562581791738409164657024693519098421244397449352465303236264648663475297142403034456146286234321125649041337413699845789685192483460216826639264881989888263629502951430304060520948277392194928125158355409524243278693862362368554740677921601011615640441606657001409886214584878119712762513718852090461503635090978345867381140840803190075330357549845641286718656766481262625403321315985644941386909624377460400593942647425060450454504662147228086997037532190203842158792325088311875860981193136587522345336577162303517384268550869290220335392557509987408665315832334095953169030502343069138564892226955907429609792415943029227015823796091827545773631617240221740590252514144130729340390166367155286552220359038402996988453799894193373619260711633124927234625645633340344619011796860110814494487797631271399426021969085263849817496437402069982813985814245082666638641754628052442831547607602033158555872745375351044347656480527312606357051346863449421217339960629513891163698270799635423923619905125319078432622016384608235286411131943843281635874460264923201656906232155734654371523060489789065038525294049700326089495151210960503092059659356351991192980513422397047189060487380649834374977543566860031928062939924078518566680320598908829270950425548549492535337271521500742726717052415605184291031874698345237014610883858927384928505995203531927213514776863617873462570591444063344926690614480526304030755607075446495310327839536266680292191996689515475382621920354389547610731554068838598436905389941997417436221760249156945605912671418031693628307776019029962494054177293836012715438920583809505367511003964134465009595664607089436129364800286204444227323857913234990885650240336267152436056466481815029822709106898110431597296717363274782933627915948324894482887919084347618531838728012838273920426641022384478457884600634668853212899098443088507083760884595696838304858966327385739242255905574128087924808892996426230118890839207643465843622051902104490054758613210806384761261474398193973807291692712835237439431510357920802583446280829494256274909908367706291430207308180672281633660073375985294913206162160114259885805870094564094802604435133916812708464882624105963257652557057891513680432565093521804094934881374036471290646232666483636049441878214295534112983107396122578987447362663109312501948456899161457873712520985089064167759207533789042176153777473057250900094530639031038640929877877417998435011816263785733718520817214040375268418916054828149944666792168486552347601738626426328530186558112433749264598045546609406526240231440747563685645348645521410932999155776212616653790666438822933543861339716038652195404694873495917351876266058989673256294095550901520953853282467551057890263626753891771762221939630598385562818724191962931107080783844828141722460170405103712097960306165556230543669033637268414579074065870632939541296036833061924387652648456446139464407381410567897839891817576817381116687393173788531896380491628993613722165402158482279328355053172414543584133377406540434649735573345612176603226702002366148123360748722299967418932528649728911685910117402713727526027546357594743947920471161072683096232649364146299654445418313855039568929627941923901816509031861568062019442142235740129307306804496013174346411260762270978350251889984994806617053386336976582866397994252035015977139162294252494144541826602362152887198536039360439846655020027223728425660785360567144536887137555626385180797576250374155880408641362838313863597430121670160881884612764299755392772797052103590495182384372150182239077461499053361829586702724294058796164804856630692617145299722433027090725578762184541559620793836930175458180598815464757903255912739750580307025974977930544192165773570984707979082744302812691093225609310091730823036682459194170667850122445250385863533385288504757927910078185657204166663424903208982950098138337867280265572923434391777810419168248963967628319536271205901793324602561075955583419922868725497761953565944998584590329626758067700185590871889989745757578495787128888663562129184053123508412520866701967170092367141036108371411384722886765548936378932857021703055328078031303250213231021698746767466265847126280851252652118369789390499628107975228508653795974227730367943292891054530530871661056920526612468576705991333849917535954914027810823720398094423190121180832439053953171199765428644616285425907521939580070337537748617526569529485984010537337466701781254573619282661225696858307650975882144074541242480217281957634636696264942152829584820129559183402476160984929332539788628264303269957250016871140486087555286371525053591848089187870043163915183858051521466425207248605167629193983567492355642741877329493769636887985499641857076140089978595116660284268690842244943053934775273647462007213769061723764858316264068501841438740946358259809400523454810463777774921205289236473276777234894517505440056582786626817960749887991753576507141160992525007073967803351323073507092686875867915024758018183256750909763754780800495136424084019442633275844494991763395008841444729633869780899553230279472819441325997869866412084519299627538669751922599812228482349280327796382351210601597889301075290899917736696857312410644959523072450497928604017590451719710337530694435882365136151002898076698521641958179408097717299333768700803127939728716799372458517629431788854139329743389845215736189083791863744596828715688895800922161127147225215379509646992373796181833622210318941270149192432709105902940691651970076108885214913931319530986310583664344991146670555002807015725256373602312198623877123487153976067315303939236323999320994613958178622454325523218945774354695125179316305263729958005612623655717798623736870906189075482258556722030391246926280665092343887326282766690050458259084445507201573563358521492554416447495924024860298410587048461716034265826203384069907759582006270608143226736447492052879259485323841908628915878464059278569036859360595079555606737876087655525782289333271094461051229871079271210227288374447619303155662627777222184930509849387596369512229820739657853338456073623269962379764193658159461944927915448050376699003486320431041406090264622187239052271301396434888878068718759119465569091390818937105120835275355647429749216576316848631674890156887542925231271747148639996219454641358014872406833933603287045062652316926097647209051397147134026398676537605815667726162381805625445230344086164345649046459841230058006134475012667776829993093830511933482612489921260939519659267175097056968435047747258147692062526184531633059005368258575379223946674322634637041420443330628918047099675154223531260008136490257497382387549729930070967998292060004037891698029535122274575013260998888518079012427161376193282903194895543886349160776939228030395056059843406819066336633304024571794204218481747811238153248532732508219054535223209706018728631571389604715465332374999660833002724757455554081473762563981352228486572522233531378462811584305719662953797470947108374605877385998060917299410495218021978486822142821711155293818964833674665664295381759422544927935563307950234867209970587228764204234398489133694924042713847611276155204731568893157065010997440557657172450365505590389819950722279719278381625597671225229301869197632787322529887269856340974164199727711247246411873445413415663712706150943871107808990807001511445118522158776762102710018491126829573788176849418028135238165019021277266721079199960899540768677414553619686320104478999501233835683867603807425353710740438253206767328771586637842636114876365585469950033495469151315212377621527505318464542124732051726806424167823000086814606711833796258908256602120214114724869444916745880175568365826617628544683255706994213818047521422864691935113324868420107683296176192064168077710320835062074538725510640321396600070172286157188903515465666018421300872040424772350335679232058838465326666715196261851890897736848299702757893635711317904947742461402335409305691574139647876042660227895477299694184922581852051592917800950904180457248068854107959217935528404979193878006487131449515022827213195135599753435740102014954198229320509592260996642949724903959677635493741292204420985606406533975885490366127703545621270712748659646955211196561295329831179687167179715546933051438890868465470072059026880981948782349390844527708203273073845651743588451958167588494232085465139229268386278714992437983041365501164697740216521521048756407612298756200825381882933680204585335331074785614834828516819893204903447070109023030929948456884054810652348621954800026317504248492044176319040980852770440868911817405019921059017654556187180669141444448694325102718464177097393536907901260960743292455509772774480386482007844363087053430543893908829718462217756573880959818532924931877667812128869857826768784060024943014630652245278188540978739051052419097108889529704521015805602042475181056329012309536488007785525032761898567668084726264218572892317724013272871423582717303598858576115382916444650738643303416418023186077907854050279897820199898609551725815072408346310452649899132303578363961863829897375607232705117414033631089933706115603989290090705422172517850873082251182195490947627584254976864557496393206981957233971212556081252846986248487043528173109661076801376556764704736377508732804560554234154654675452161211363721151458684089431317295803925032355862659475215976913102608984594703190944682590804329475509577026522227689588375855089831310393608869098073528819272661949327990927904314562928649755979517119183810656730354558177656218155079172323046082207286417122295697279873472735429259614347855545292515468580195952558303270891892156471294177349343451229945047306718051222057359715697532892428288668396866595668038451169303773738710103826947887406499892780024602837138038137114845441954841800565645968883404080659584975693166588133883739451331262245835484536391694831031663149493063389802500422173746220575041697940086482786862960314893037861789577065483376916565935994727072640970563900377976716608035005415364803771705109568550321798141648294130211834517458503366352510535717704008754477622456906092831021470391554035202418496489226059861424856826421304115866503743135007912607798938250677907220394108380179879690420932692540083982134065893910182634169094175217805673937591657616875263767519661937848015529101806802757837722757615930329767027944231419918952951672311567009498570268200565867961823098463675816785437284850444341596080224618964459234042319183010766716593729517640034927565676193422306448315862297958501769979695438260392401480776295744482661826739426571523720891421797585866781296398891227085735276701113049239727251259223370707361795859899849824802871729046335714183095478096189952556173197067762345043510197610928407527594649626880827837639249852664036812717231829310682207712396952828658747399537120388015718637349373354567369888614092309711995159119698748956099326333391012829134896890323866908173547086201710983807384479058398677895013226801607853199303666757439543244838717321876516545522332969016807034277235748222621687669782667223792698313244069912603009836618526556114362498060938192037622230926353507350103256059545051061235352074367015589824611721608409578293895576600766631570461758034324909546785586825132763858446761144426308220082770150157900381036720654392566155865092920322065642457735270171598365137747370121033534223700789235740439099214406558502453270087439665028365747622904473165358220388368659327958171169663760020630230885562015397319274049181394362238961667771049358374851843215399234289708656731101672543910931151515162851975231446342246847768707935385185455163286127659382044788764588676078958447871381221587448307390611101844918069479306734054362202375101034627770192569077321885267334607826801690988757290547530929871278323874473180470340549178347266256884662085078348993616865713615396027288408129730252528712542254827241256204555817161459568697033507571053845625113239751207960990240828278306877680937643038990850164212655660270121472412982074364654471529720634369577198636381812049109544217779648439535677897107406840525610151420753720034390027388547818778096886075842902785585104240964013520813269964543861186840044692589077526637973753638360058376496319875685931746925330538606140141700781344627589901882559656474482964695915033533495770953605168877349665803535993491138963113030295674927243304007835642421949863974618075878054713372128980366672208040655337074831292005539886047035641758014218799309939066172844296313045608534936230896940274789901800774878652380127024107564892210647444063511619874677686852764129163432146887043153121981665638122392896133950872631273535048532333890077024846534145409113079777303945691393645929338901834295894095644325043237891864147219958971583963536498934139436885553608050232848742994431248509317888227960613516519098904007245115939054415759251642693567164397502117381680598149337039569922558395755542330321519515716884691221708091698586700828112918261291116081783698001003227364232795225534044138268814963945862709487465842765356920535075572045248759433288939754035436064847857665737205189795852405874966915038068747946344405814997131453640288541087859725472383517426941825739036696250927966390311685574648564310516767452955054588154193912893151528247410871362644344174452625851338927484044217857137307397195415475821928784487158219671122262498077928241007923497780204923943069591038110214409652464336007710226538199169949528847532080729032441932852830546864435070171993932409080502640410189096376787153349188836647667529212707307397184201155879875057069192106580100597372153627088875896127690055311264159130181100112929892977612687132515578088646149027497747436875357868706025094407619086156242292673034192819446989679894675986986043932930960941078196032747078438590527058500045814229847625479410413496428112316532318502301328120916896728344678751023243358442780414390886717264739976639119008121982360518180581476115485106210817955505378652765254373790982495114087612597742232674615384234258547181588353106172542239484866164459453957350432991930080571411537018636289638983643781261831948057144998597084716937218950086395735299199554669782075999443218656285369009757134255491063144143549530347149800318570127050381605360763070288335763941021278460346981373049157502587644128365574532701059221820467047143998834655872588095681771879923744266658586891947003379488444579838317147661030362106171888609106353684401443947954271534740377268952616068610837441516731248936650038683414658239959229724529405760920515100293110796427053321234318656660812980283440528942510723719689790367060279513667422748488207004433381494392494764001641022246214980393178629113076997959440729521990819629449218659241365178406629195490736456733856271045894966164439498277998571423412310561607461792946481573623203689446562268021166571312342201115329713466481871290740142909538361189604820940423144769902365091887251060361397615417576227712022186016362142504984352228874069469468528181681116216713821947506079524796840007942812997255457549627694809257062605230867483251819366766004810050541751512553434930229812093259352728585956790904057608086519905811053636810772201129709891751611792343423465256366163322678875785340913941839964411231579208062137246825821507585865582455518091264289081163957818969769274442471858017413340644635321621053821599005834612413823814671926010000698021971822963888774556491526205379917663406725175341189964383832904495911371802098578211236739749645145267098736660147018488613515763025645508821222227732790297711422605068691793840207842044856268196084181121675870969349180129943345105208919612101052129843758256330750111874181941410118294749893785068446357094333085075060079515736879261091738168659242010675866116573544420009174748786142331161507420971259040904260552696347925618334594029101490547564690157731931249180751806087106003465047599226271661189328217967907427655414773702561800932309471280668770650917416567455921219571174972894765223759827571295416793822836253706171589561735609256243994876602962252553514139677738773043915370438797307256968970920898163495470931124753796270750729236445950700117159137870386856831946405783867117345793031786736155807537578741847246120442612806727028649320170977024599596230432769925601551996399737200632372862003719247402084616136741338563206045560787263830471453815003967223556600821507107280618647764666823158941504186148815086763658414775442922096486775225859784681053672473761778682392288845471536370533388682896734937492137161920935551795592087995287000294746253402751653485746673665220154606987047218417093678125762751310536052290697689114601505720011141804349410152536059838864540976773582742949521120548685529196505400050792638361501694929402958860983859364407333652488899229136642476643416344962126537840400835300548166432286970454353674727191582670917006914111520869561674964628972514662353701192886204289639490903823865459693441677322994241531530052879808002499925100972189705024661526216072621020709237081909257344245018146525407532544795114326945845763392825346409030068032241916420246983750945266129187796339283526799968401314420424828720668913264470770074499197106683286337466401095131064941608861722029072851104621679372607693449928004636455802015352706955966971447978016379844917557615010362646701460125309864685773758648564170196262500838125835889147832785423218442638728263479445459837213184649368181823682193831862116299955735555495581422197378005286493890258973889769957774320107307418015332258396420279647492246507561042986020593682938262795114120651358948497007564466118855186207637367492662180639538984670954844396101294173980320678910445569607029282559044953750042223890600580011613726402557769151668249122104026748208116511789351832918140602734506655964942928021356450774139527547063437735518377884539498645133565245653971023829915377598168481241665093257132965987226645330338889107040163840570936410534956563597432335595181665921293684334136889203297334455238054031460922665857313836633352163312368808261244165233619958835282928845845714975058045165653728460509862401930221623493744559053595467300530554103051412914586957805236977763452826096482594073829719155396058161058355234784531517994309261082552706011403091774454860108753911662520005024725998539893632554168642392028276017917603769416341046408918964460617799545266126501784661164190362271482457822414496634616995388014640578863557824495886855039387134242483025653280813460039566753074839680304791204989216532733218252690322400492435190712260216413150412050405005939658970170309012411000758487038953198399246765980569425513766527472570035133026626368837064231020908690764351683119844195537875154976193045750368714475530414205770443591656814519667670737039355521231328811764421261189519287999601406060071312223793768903098459781101920405576617275050048790781792491817585200443230581387091808996931499784606172306437232010461008311120815746454066418186265086576161086645609373692788513563463807388888580797047552932721542292127805267132469458061624482343890638809131897141894434905351803963198448269271567685646291744561016895199259512217623973711903875633062655696663150301375961819098461532684910428538741780900883424829845383155968229463988367071002971134742503382280640052491888866852228135824100622139538014857555340127894342314553206360521127348421862337156189925552307654753482629165416244158393913623236016227234738067331965029700959619944853327567571765718955013971868359459970944327448059522233899572790659269544387061047445614545421578054543320681992951650631928045694485832252718084475556975356352763163747421055040702993341721163801727219610705204407906816502906339978275073340801144729740868897996995127273616749978823763577145462908783537928017969608082428232411163256779578070075822566274318561181934782628359599291917989815329608922284843019114607587687383136042113528497023848404385987912946974721602266794603255715215322937377390829007057200102810235114645557800888752305270981923269865746930061996341661269753633001674105073818107885520716038607398340674429543097005673432699325174759294186942761444792270806871345740516132954779471219483234336222348699741772233590335645344939139063991790026997979867839139713691181415244217892885827599380987117431104880267170729367512667928358415853840285695691934404665181696187327698160426815709072560821946151937419163458495102880287178634198996095517966978431357039802665811936111427353322241477709199168022723030708659653945855024091258813945032545374220319758288654022680569859460992424069251258139866485241597915505324280528574204198264525215573084964122247270725459742287838066205572001571856323957930216279618028040753280089559172940532521151236422008227019446215875808883941748315380243368839229977599918248356924158898581758563598545181657754028656165202602613154997145872407419066110929446265714718369486216844389920939387087837510423910120910787705885939397898414237831352560428662278122312419477738953805656854884781711104379605764332357835045938899564025141697209013336811805514104178247434734395484725228000946030586597152291109866550519177552168221271249477359490140174899785721299630422471618180699198215403201789249446400078649212339219411670649797140855693665455937255506562489472211848644974530152161512853321590246867108713635788016501906161203895013096365098074495412775378690696484582973364708287973449642764857580411564567634395123426753119243935616566114541697218356972419371813227465640813572725601616743545269125536356715033290985218841166251082031552699378293933136035584564283100136487044437079106135679647395547721722096579263593958273504408564968429596684847947822766501952851859600412807618552532932276708864486940496542001796820564969059672056126593774640581201844252004627684068928291306987571029390614045129168105739082609930592607377156848561654230131101355074479451807781058401909934204926469492510809618146055908369288344434627740101709681929743885520602009613893964215796145179300103040559076744547840577971930124129507872911703809207991042761556163110208849115497481548199540711362770034862969156334731950692283469005079627584492505595338686205919086341563320285582646978771502884503065411944664969130312631346696550773226213235680275876410829692704052174371146195429161375201868337167400285219102218685050781670268178300686514308041264820385960134190064264447672108763174594235620162065157055881201319905227659246550342420091339298984809579158694346768435852506968845340427031943485029491389211405081997189920002552450655081441261156519597382316029949382887501635742851090240406036559554468928915994570839405986347821728370045085511621617512681786208098684594340030472781309806122831705611188688867524946256478655069152770641749680385140056252761725478031767576076240296315141369702659655480761051985567605533362434659566444024571608303394390852782130688926709254738430039494143953111374015332898964544172677594802261551416754270089194856988469960110014769908363334185030010282139262072822430179712224360208889070000519251192753476483374827846226241126626551035235581225798990914261473443033989319347113037624288859499032271228667707531310411042075010002539397789552003672005744270541649184253871334007587017562109797136753914575771284976651301958191462464090338316898082768673624035201838725138403329140017769090232311906726569056525842640955073138152224303635028848917699982790247740131883721065803238948435288313771028201827396404292456999848291253138558921495902035572419337653138346903285985749379017355017364603568160088026542302641567078724988015596406422955220556989718192271014080266362937927211192947879270820020083577744723840290321723087045239656020409294441596493836349087220922834983575907188480763336276156438574673436291472278234698603219717075331632373822940398306997391930367793834886791550141807470370270886694335590744970170713429606362086989546702294344737896350979938221244139131600100439692822099806616555744835247580345564082740213022912839199300589466655562423267513985542631066170874291645042471830969222656707852888389990622074122459491823392505698772348354046117927123190635289240880386556368333435761579024624361670013561601439240511237184765876900971096180742797399591815977827838388033978303157131012504895667672677028584080627612457711889439662800057916048370421675754403200530150026190189980208442843358146915387133345604362231817152153944516104011009234144078040417589148199362078622440068084407451653660103838996734576042476188276762389624215292328667472603660682441684461534924734986506532537678512407314424472078853480382334502290524464480086083774001549366058539250426941827159371823199290044951869297367510961426175717261872030105827839760989688838580468914911740519003098631963187838259272876503154589564879942124705013543481636362621482642552324647774362391200003912748358128827872756752744993796383496481867971305134959654748277181094319461615050814443263271686519699748885660619326610616223374718107609673486874383054670594994420535771240556975693899858421503328471087790603730862907948354073339227344180806009281293688192083939303595893000981702463364314336740026180929746191918464841150156678336038254170820308249246712506701899156933798490202887151712224603327962358110616252928594945746489276081287257342130392776601456722334284463612827338074725486661234869096008046508798749232957377457532219998911696094802999250099056353084686923038799446699586247152171693643011659952040111528327560620360326975977973150482296569716623049666310167580016175822807975714057445740192306970128061889023809015939015109307537133462525752377380944247995579097017522023688788408165605565400530662445453848757393257895459842023077187024807196093599342292276265026211007930080653136022490529002128618492008874471051401457034872831439133097946116560498969603310736195219107450137700106485963649035134364241053863520312316478005832999384196432438878463265876251928553102005166046300641602453813962420217843206348871585434210743026121388450852000785746195271424373858015999527428708692639668925539768878466464553616308832950228766862757053946939945232850333636534252220320054272176348361563806351126959168224310227975641748560880716148288516040129860935038834834633357140750445099105767881591965506734540606126183703655809283841687072987125998662166070556863848153871389395074358296863721150223531191929515033870564072181833760368416555759600750285182938529468609701121732457124513014835248582857421593856341491997734482892077429954950007203027285694610054930103173686021353934558298185461367934536948739486904062709318056631593430011204923002802596067155028138195271554178034307798947168667120081705575056212200043412890603678763344029419548674595778208704778918299144171646806465524384237025514068079616543956043820361130371864978259918429139117878490752168039279970935888344085322543320841913462582136731589965515615065696730356218766558624860969458627791319180974518417140112969539224304991140711151594555767605808919970502562061204438721862749392339035215328331627042596430393589977520333568460449394542190467869708292957405925141619998146906727351982257777951468200345379848419289570323362401414180778812725183362224950856995106682061571476655845187524288692943741589693847570541865926322054806204141377452895800635500097818581075148186089064871399442077753104256002354916207877672206107017081682412473396309868296016974110953634563057498678337773500794912088015698370491245072264737268469664923321101461073377073001946867376236135918266536337346523503066702904812829267338445243500814681325271520520529389787109553891914860204553478580159204220098730804090863918618223916546848188423073264299472443473050954683866621942237465599123809051857223257178074423239867058705259769072425926113751996960274150095657720482995838291156901679282440666905939917266090371783570745638352374563319194405244621981541592903106260618235544522062997473582668410080667960238669846029262754959529078677351795987704156776353767167901356521382564645628033447959681971899777064286459670007563393488531524449125576231483446054700133652884271834810170875550756937473322247787731722088890844137007889118509574560144916047435208284654067318648055361646940832570572940565564184189371998969256755385608185375790337770142403548764864213618225316338184564083362200997746972990662821821581465372114184297929636620738747627944100750730343098044518669618219241816286432562126145300715554027028552058253981023019974978142752490111457472464212672271582818675097103825688408733851455864706656610236525597977274187393121245487555773372432086679535076415195666420548947426842253312447210298672799880050107087756404909611056893239281976091613231858101718941998705797500007181623007223943425488091240694098064366489583423997905426527262653538429107165380998136151730085116449936103457986964323574820349130927275059496930918411279733212775473610548298975536292115092943349465178178655254381427851643256353982666592507109731930428278331332586945561556457139223881636065510887803257541188203277827743077528741746604864066135652083463726500849544490382337701190424207331577519248665061754119505012589895890385423316961357638764749607135388996881470071102286658639988626829736859781961329861031042432000658160672457370170015723511605638653276032556039233906521123723749779403778271999786071246068749904009148475304608794442911565288442792032052123563774257823234188771897466626089094469565044018190085103672450128308014113412019628539656963659706008004549336756574536560263802243701050604142504335813824528381994881498564783498447811999642585702078480435079973035035626149126160377623628760188166015097243882371163218875386066684341467442050888551676116943194074887531079458178429812860421012099201576159802351126224370385488512677231727119228244596450546508849509318005767729356468070018196857740670939906610904158217607382892404276470663664342441142427931404841554215195221109277513824087435133826605424300215071282203666045397010045902786726651805338844393157665941770463247969287555319425006359941605861587158082050341644416697321117119447646297598499731523330437880529628084553399941368577015590651424178555303929055437849558401949822500063018189755770948844879855440520918880133444125083651627373337771004285421779703987870348629122043338606686138936908733038903758316243684150062732930147290324175266464760095670870107143457039850116522856187480514736065875483933928277318403514218026137452970474030815650184812266616008589691022968907789725272776485337255316972037427477160600051651132890076771134844742013464018854828653402538624640824127841765370531620040130286327754029033328306851163652916969778983245259915570778301500816522010663150522281623355423378386837819964856874188838556561701230239794745418672372309562491695012972678387900394803604983600447257162460320836118517153737034279401666966026783519490597018042063912323488932132296912066647414557175328159554141478803486959054414556066041431122692942374072008607279621774585710450453248444775544131659056333853987119249145530409399664980482688344620426688230163125285989476974569178156093166380885972337655342516302112100121829780376064019089439671424220545021798295723251788281748725834038129667691339796523967535336130143427394522195668004111080094992469088257840725921383064287995374300328853943875306601735702403816604593054189019198796957753952448486284487918068068353242162223810567999681868257825020712390284210250029026502967464807165555104326485197330421565046711337059684154813392444557460076503032413390981375756944896670216970149560550127813666977076556174148611202942817884492130323401594061470460251513788523615340167857934899416062631968671529012476907277933716416513189129379362833148493911850671251480897054091472019702056273931599770384486824281989668932921935299484366132577020953310574573914150037638628556177481439057501559979781208153587310894360834149765166031508404477833327344709982301830165495856903437387686100196384227992583157609183863014585680193208912701247043995679935777517367591138381311224075045650910368569378470719323990563274070406855560631683554308856934719065774728492761433681730289362505357752530713699783684713083314712478130337953401393225960414854145071841581734533755930687362429686609360971884332718954230261158256676256181967198887136138380961808614416757927860772753758408355416868829418990571680387294560991662359033562916799925447388098439487409938112873580820914656526441904929962447262035012557019295299865507754312532445157261338580745007560083169762951363731893775335620964288543174849723469317676075156364053098772702617773918819543763140586255858654153978730006542469547550466868843901883534204199333757913061269878567475495613141822425947613494387735783727940791083699327951539642653659697399761473401038998791770484722585662797469913158266735854748412004590701795792223179366829973444661461854713333472291777167999045741556805669144614629775691360565726712174668575839519184411171608600917797864896297343060479439401980862503096378462967988514116093980588577825430238613142599301802880717216275465136348505015372421100307567077555029830502931541980593737972667812885958143579738437791207780174682870837377231430120780640426411695278417398273929940038857111295047436385201836300050101403918195679040324200523832047244265486679943968766600367261436610662874911018840629150013197221103701482425350191639835269653273440427488325758736735900915820105052390000051475129733633004171946401809129803759236541669615967936650147036360036039528820476406945107053749570127282971640364144266228419131335295815636825769705856929877837905559556889367466257264029638640910734245445341479284557301051762875756086606169391469702468668938111467535904953717858336180265784788273972621134246276177534805035296348532242246443543743582824101903102715838608075009160551351114326373378680471837666057347746628985308820455420400701437641963755818671621825292869838470922692984627934377255067881591573544054513636531703850879043883059523860573668687586652698411738056515200232021096507865118498751772335931130379318418586092427707662107179122612043594038195491999983554439539460474306346287179980774799182366640756165725541075567063741901919196301288244261127907583634386497971991693572575555536002781143512145063073567576620599786042959505455767495820909554927639427617131350185779133388962259665391303537293069704453072841940018446313281939312345542973196873019404761326453097979987185245188676817241195106068266698549007660171877298852152283742357470910702009054600042105344891438238271790669851198213402728602485570910138305746166523358495621636075290954594731854337964410675293244243292830372300109947817425729715093139768012123636180088896737736717343138605139445304887933433975905359214045144981087491511096601071973951245720441133762639426486358978858464315402851090520620991871207409798044324613827741016917336987171225905610528844169639878898466145133659625336605915437829266030978144033169691187083916518030543679827819916795962238039226213476488197084852967774046181733342556976360964693932993957499921810466967673690912599119668216399479494926404964349348554983998001396476437500808064865392045612695701231734145502586660223494345496338835395951909573831790605453609979996586080704777044787671383334333258006192979615314115259727333520220231834361336864954905093734274288820164073433874820692010236249088015707483601575578192783895014297006179346553528514447822557476972957540956113565389680104038199648767149285883118130759432729162393398372721153884043972094263048589165287826224037571526296613627025089773088399336310013277564682630535826022065854766069277122039808150231279827512159535990601820826324068517355911998092269770710562587888995367818883311924317847205202850868409223422377352436514241064904758905225121801192918364304903233267874370159322770737186410506773556683629246044860580123254368379407409694315877277268275723026021888170227677085680798971273881818391742056071088095785796987422192189710670905794877593697442275978134885314594592746626010882986237054129782511257867262017328970071367393495961707926140557116746632712889797320418815288716983524712484789231691835154812227790296165620255178918211754729751336764485437888528860453914363837528978492360562717593683894260545282969906755530357664310551644988524911947557765563862869878529822353680636042186542029135557496871882386622212366618851538955061792420120484950555421941384198908332568515608204494349418039916704291049483897465771993430795746675356199641933993208234667647673385243891992889657368808526160902405550401886738405836277396400798140999854571085654978765319097228416112122103606538356181210168478234463668258554591913086351087833988475275614987452971279531504947553640712044175038545618280715002329844086842363270927170493938195105115881272009738150914072129231486250275634322444914120925553866622460149262981169841178320918347127061661568592758827072684797807663500296185186701076738198578053691326492519828513489769795407163061081457931302659405466198189524044208122196782852944395655358673462250583711901298513610225316255234547728294821640219167128719052832353222649268592793666821168431014309621094783495130469560062903616819280802156297657362357962937955057393187543957454315326954212356061756448557979276984913782688305680868664255280271601826739316529181037754157696978601013368475588777321175206780071496282957543055643161101350923525661990994833341611084000105483331284332667597037412533641505709654722224449689345521467427913188451274442868824921730864093913897337416878346426623379921694797611350815762325279997953531756802620120680645765458059242417437531094752469788246082364989879374636402733109181535198790800020499991991634076478907116762503364943674255026101225327780755883260328870463548957607574361039676654601886240437412492228915325671881495340250275040220994749615827589936724368631441358305121650277035177549882542256814333023722507771548154500902342971889086638396998230047859584640166703586486711628641670807573606840766518087942104414327099436995449419372610765799460784838531193910246529923049966212860649789354214684555847728849884726236789595401591811167598579521822594610746453060414998085199745814762100891333993953953304651534626990789305101230826453846543382773238912651731284103984606228066795086676510692631042990280497689327725502898991975255983302979375339899539798012961235449255075666439486651209863091092020654466799478708571470705921098426026003790175968379261077592902250528299010647513339902962753619196056490114544574710602135398948694801487860387541062939995647980226718940472805645150270155155917338308679194978544214530366628293750838004657037668815415641650474087036550658486405548580054015825093459825473901722203267795768692121878294315979069550681291313464162957209648311626902674561964295503667229837315164523080409114244826980584328071425094224861260822638107408207281827456659951112870991614162176108981858768527290369249470633890474194129982399939977161143786716630385251759012351668889374642609186967435755796042720158411868948056451859069818644810618185660976746643325275649276537252542829764260833457129189803373406275858136049445453083967991999759334103127738219883895697487340812663817953976578558978851784310754882110600202546447646861949848382100346770884824761024975572230206547240959998491436773648761179743264691703415009821844427286038946618434320073482053036130358043541362747477834377693238105627253994076841601399891180321940805271606918817564341676314361787643731521401018058828690093811010318427578785808014097674114946766325607119507921535531975202280118717223867385494120238123406593714084148504034975226425979866448801614854204840334682183840506352145566559825705492974957123822829751030126043451440823634502486139095096392401153296928666918535201000928421388808983723304415297054886235539829529873819939413776812089460071985485357536968261017578590207269725182039656070664847422509257774683356870293992146437346682589044581983214946710714581874430293690833592446131642657531632283647343084475711068004331702340785410448246007037381630526451950839921126775266884971956792566665307673494895869442574313119485629999256336224873749906851410863656767937841138954222874229740906110277959258859751685485935529536920867949474263081250239853912264985921283043013549892140114410788743773757993517127715942105362398232556935550992958966961249282237569058298610528411776377049479789634094089385554484569663308798225057462075185157436832034426227837807358857555444979353528706096844954346798102661608784410815921419410132574287425292957698985167449178331623158467361639163015011229362568500625751495124953303401766604519067417199936939208165513011093983848113748787461619868662491209657033924227078190021939465414917911009523919622548626718824535081508847662013549497067437969959746327322410410183409274133696549547277926551417666708155309080186625598312301920943512540645879623280710363451162723867981386417959693465676504463376766491550988835387201411162186596498958824747952864975661879833697631314564931259601072282279240107891673011167721682688635909469204127001226933495595114687633235019419706797459713661085030467931361801796700491929166098369197009411208718853719835752257028808615540222719490294106999107999753501185996633727370101032354903862570672815758772147431320472709678788110216864248440751996556599212184380344050974036984703892760806078166067728039758815819700882653521377632910525573003208011632958539518210809435792430068696022566978041380708237150720695964819090310517904106238493738847188343235986861647238423361007510785377981593310557455364833308284313529568825238835291199202874750103603015476297251573274763932463436276572816297272775073353516610707346939688538384869579328529706302631870853564303074856648594129044399272471246615182018351405323034415866193178204375129784537175096908020644348662785190469353894267100880551063747778415986215156373025430440535578184371939118237065814173395079480324999189084512704613171334272142565346200050161670439148357284879958878131490515301444535682971872412530904483836546245521520118257246914358563190763022275987248361789184541646805996502834328275615043844437470607393527410264306581072321986949207434455482984409901779883126305814608465581784954775339374600450403795301036803138845158104587126997813139829059653644988329311189728522562396212678790912994784614186581099474669392600201251633444907443288519532260876194752407413986126744942653912247915603682808263948078537605961379088275125677641387954432003734411334921300773705056825045193542256456433620473378505252902654893974685873420059747277827901919781165516513593125363173857463365596005746148070522843099185755066737468316387881912264779885258222878418155030824305203851068296069914276761986535721887327826299611158560248083817461315620309417532776929715950439104989718321463925153346772828270837700842681756234600408717542401268043272425402900147822789976004127614116604695260042798281457749348762114395454765535206218858200583294756861755919724431515629794199217229790153574735919606360875205883567000625028073803354827681688533597357594795190554613927552354271155992510462244000065787823582942410312177749090179565190368804414913976590833530145417515491443063393510397823876734845647528932322017091690891905398410030846539096790297832241776623909678668690186794584762806819711465050569638512341571839518442017471312735557724860360631185234133359009466108165385212863395024617677704004499705640617146589289644158042589286510720747522209750216049533563766853132401607807582678441683099482106878779491381168054400787112054768157335381194349341801355951913234218018217982112390738852960878016895298262313109913951839333890332923554886770455162552158843771721966638367141436600970109818932879485153994038666789346965897135466596893374734291952648996914721708283320764297562769093840238453957859914758852459900823471707644729917863671098644328893556761715200231234882976299361618890710600182206218768062480251717505172901388166884028870746100463426141711057587960438198709824457898654718432187980827040868521933199166321614336614148172009668300170278093908997503513796271608989595328223415706324042874989285471866922164715660088717939948862781280515734259869092767008189516950504608200150009959520401627022505986209534316829470440672234562444760737796135965651910494854999085030803173658127499429814494987171904822298482807999203672028671373025274398303600244457595773568378898713142599220588182617203423006886261272859216821458933726439052392898827947765116560702770328358244972978674187091139772737087583605318629254472541577919760400770523127392021949297638352874246920542289993950472966170424484316615482125864114162383135218829828402453824452206759090575606826641382251801051562873453540891853099167668512200863351553048025043812280380098870429691295794533110888920009659967930701556904985087544197776588664859231720028734753824106322841940365969267555919931318000193065225518347475908927007691673948537607077285586280427691003910418008631238404821336237089589165026869023386535103985117040875679285000265674565836642333139891988477210250481933932169418291943323795879740704663075920229666485387260390206604512804389554522526285509980335094417160036746079074816744010950573256615949463362915882101475111726722578342689179354806260637870461578091278813774390989024120693654175637884462904076374455794178118871539018149541850003919011321933071491977885213833863444568895152931543834620460879945127040784805163995441500520494908692106212296272837660098287288038192933643855204934877512346262550199874958749369952237566087683025349708276417918823212149873941001431473916367298529657332843031714456431970990605498362177741495706333835159341487164994941512508234607884291357970842939864069981842973219425019020022196266552340912517946771439212115335474119383643514578137753236531167012993369796107853436800839877079602960739678890213619502612603556357542533912816689502932625710223177442800136615430712217738543459350899622141282451552787305038031692790521882083428172848573855571166873958111583658540080033839529692909433961804485393649775275766663798822848124908082581464420808718254626128317704619884307018143782965058702954515257009215826047423617018761956155156115752215552573539277016237582665219175436141461455597774262502922120507534419980850710990977393523759658966743516509611247540525322229463749751696880719588993945570780365231199806775324599286495156272719449010266342729224716969692011992519502850667884693497042939123996733611153947210095596388612894555499645973226981683874888504170651695570683701994194487956118995249304701272956374128956602791910029847128437535041058284849627415321983612753831684228381176299412509228930958711724291744526267034709699970489514522103215153527958947046922817193104429492980222940463786064786377450466908634443136035198476738451975636114754005144304782492032238057040759011488449304551463083211050337475069889007279161823318934749712866839087870179835975035281372359046651706022785935962381928507293472503483235250242303860888348859316375947034220475878326967137099130116314638511861467576219285466797757280786177939085391688706061040081728871933479493385983194460206229411894348217494417616426708806998187129315536101784353515074180509705728357478207792319836266294118254339534915744905373006524560435517484636591110910820675226837110439731540477358955895218415634554387846813175267192194937035879940703942849852832440615775192879060546802930077201892498176273474369026930751090471445364153332392314718487737357978850829019905465743443095763805487351992122252068864975556593652423140025329757542861579166167358849010649018697405482974914106150218253963694808222305583008965003823068830099020350242446946107412115985531618881069516369518178211301790779836496484162612335622368191367684492172008939513676574649689680270630915308457411454520382559117946886721227459417231850913988903660438044535506384902223368207254457035580370599195062847911582451875951171056932080794619658276184009822544413261428114358661044155408745229114840791996472315578378027412382592513599262324191519215381867070526215970060651739139257054118491757937155113650438976373513523706831130729718311638028827167165674564735382996881516851723450070535526446734273552018167683623158411645805609361839738979265907114242386161657637085250616061178789829999230563524272542969244135980861128775796791038789686907912157170427553451256821860356398544047378792579231276226151700786047222331776560131130191793381764251762469635093622551078895607822767705900621228413496471137560779969815024922686738775271008825682945773113320385090239284488403889440490672217633427845401704432454537199725800354998566610394339349272175320590547365223013053891186693009035727869737601477978167890515290874168703046481036456336629380478530053716669818983592719691646871939766023747733012320252273432767761683370505035369858411116644144169522153553318856555215822248713742309781704169426641658119599541359967152641446579379561916646489807555512325978501748237364775327722575527093822331460461687568720956912255108529180397388610349275929474959522380239834028203822327865492785747445869545310656863806010545956882702761305190827410100155538685218865023874069903324038065404470690405576468897469917282338152906363984025244917295611611582210851600327816747320774981085754440966151293119717221020412634595386226859883054261214771785575723452227259616534220235576090394679307304191643234979302931843683752932631077148036634768627761727083565195294187604996869943117510802176465357428911176579046997146504905087873206570713916566558507662919407207460650159708632252926644495511836789541313854652307793265825525139580308278867246587856616663227531002644933463099181193740784998741003334697746504337403220828755030598014051289982498477444070297559733278912492118357837845259104028785207783933991112022711975186312507485671877896236513994436759764215502993740883815984531743762659517182076855987969078088494338364457476951790354662781856153665302254827583827186018880570210763630787990643396286595343307234666804008435622674743053881501648039161907754256196063470145142966544367598305968268533178899175577263834568847465890232494723514250807733458276700948032236110356357948209398305318600690461892983450788143201128374730378588276431709316655934446249699196202874243183757542633976912086151850174532087599284898110401102627697036681045732491959910418169671173329883400788201170642029869767944612824609886692809559560058969336759981490392066281339941385240240687135485249562684060442903308216557010244716133163037580948677885635545353936689763655843057822209655207618101240376989005364349122625318809932672429320877945897737700254987583786528330740565196183259440126864246927300243382530253669849478278847985009084104301902162265045421524653862702148537895854575493837158553114248595396998771814593420579355867090136901295269180773049764966117315383053617385757634250047445503517951820425916124908169408983063148364849207747490690572264085104299586759364859164492870174024521503600291565976488659019519341714259767347829863410609090060296206484478984120737807508936810611717213124461958421565134977863949247157235640208503434295528426342229234794306753215566465952071872698089402958763378817529205667052929296778740996998513050903655492658597053243348755674087527203522653244429830953679901164605497966911698846714696731342009871999704690552463306179547392003098563096664164995022520575999215471107882761828917749082905051943986866106020161577566761622044828935389877585757863143308414039855315388191257984877256289695141037473103347272489387821650312928123072803191834689828090944285274013317321843892288464667366503486902976218674158880847501443299366641004504536678030486929044950896398431092194349317619819465500434154549864600950375118095444502785504940239333621863468286497662547667478477788847918568923103417466603947283322563784106625380612659751089646615211348061285564800112413668210819252521048776506603549525467099594703695604364156250115749068213072356046739287804523428032766202581300065512230114849073769640725933287685238144064246663971306758021389767814907710283052498937147155959660415304001493104250918312913300069572890087936576756740507535293226661895703140704595900726712413533608060692580057711804460406054456460078307910076387113732076445172859295174259337719088184306734876815959439569553172465600652072579763134524712426812651617244488675714516046038563365962437449803168544579279583759123443632687887547277250785642129572414347101074015240045262878707442510900429818116156129131753784111496001369906570171822218339421672523213546148260999801194794538053802454417447316322558363235902499829787933275020093010840791173295673334846936818938466100245564976711415440848572608998730708213654709639603023431173319707468302900069860297676158133386125264311327541544881750035720082505483773346771504412727614113995531456821068036026058459609129377528266809013592191147812828222943207664611157799800231948652167207172790068245252305172021215902904442865017177886024472842279661167477651773758325680109023053164764507680977542137752709121553194791330127779157339220838489678398639473270115811356107723687162332306322996108418317687042845009352333754405591178188139633752140658450201864775942099062218515095509437265238391820144359585997778102677728237702918638810262616818224739237473364795787906203017574127113687996106529238618725024573201149027580059941019491902170501732725655769821449668513045268747115248798886538367145591962187810537424285549799730508509956120673297973069162233540718318639884159012234104687499714614118989579651213217035337356313308147415371211459090200554061656037878634917267426986455121961051419682010045083526148906793930568066306398743010789154833840941567099516527975932705812169718549398831667963628559030336101093477488404680894850789149881302752445661063595023927066939447996207275845330824346817229373570608836897925409321963743560408997139848559900932977332957906269476700210793854823826852768386065216356203513767894571211262496883958481326021584552701645995975949921536927101692487072779504685264960422006615094352403563003459483751943262818527230009595095687957038346866279689757280939568185926509219549437648008593095804917446057551706487700501913438532630422843075777054272500108022368594683815093282347777965115951351715220665515701686956510023164367172661746384899922774917890382348377987190087965122300663775586401752269355606516953332775729085479683341653032882402532553602660220494664610926198740824460098562122086027006328811251440056878516931117413207953255812865518995604296553340322853880985940120219713775676038902593674708910941109791716212211588769443500243320213515281836912065413333297659940552910413557096273237025830411898678251440361789826583567425401300910275181905925413956640145988167451502808870164763510754585452311272292924282751684605969728052830831322773169801930506997745248470163804536578242310293160276879169528870694703006966400159048346680308311027585447067467951940989393192960272587789708779269991116119646084252990918662916819772671316486511477833729857636427224883428897245940527897710624385958705682250638546058124600567508022306089821702232669355628421080851667136115601968805140202073566872875630423152840563369725073941632275540380880240865233534460143354518648831084472349119661157847877515526206366014490353785329976887634841794097795712528852618879844503386556540188967459852566506815659550605683313761361925556726801362147903051689800331606521215642892897330771217151209140477356338581223493770613419028533042272947030386274174591531854250298167620647485341755047351767697222858783927733816202650776342344800483444790156505999880097835724928059327961702921276388316295937026343413123833305356922096275486723346786740902835055011699285716694214742760279473611572424285175046046635224764983832378773663804033695224950672151123703737843073434636728857641022908825376746304718971650933858124071650158685500114079701296487873733039708789193027189545501336302380500304333841999246710330423914941286796095318261654695648545282535955690880116283105014897259399637966670835766886912934838780941305935391608757044949962924250988348295219888359519224672881653612422268312817506403480668991950683124425440166238174653676360669206721359854477959812056645896663904590796678049973050373666851150700452056699805773020221494722966686625841943274309444653039726075567422578769956009686084640418225970861329959068777193963436472258810785142597807240371547550454358088712645957433819946927749721307079652826416792481509515689097131800196012205817562422336712054927581556481774188960724999888229266468837577599726348400516041603823011604866553892483853486688347431230720396747903541504592899785770450221552535814764839103226918346115726368034573367451506403070463240069958289911054533184035042526300644408992774547562274665895278335458283416958557953830353684535970141618373289953231262258495583763922974736183737741891874385938297678629947345073967358585503666991281403235362484426782246577619195947124214077968982767113802174508291159900849118416555723444259804184862690032666531062912138053876883855207273380858950112003779664535556719777926400115766529001706404523040533172325710714126433097653196450339724767662540029071228119163486932732361845366401735484606783427262804954246872409970120509126663653822298832520648580057233003644657049433884001454241220756303516623073704478884596607585242688951609167856933116664681610185032325638780551766728971484161156369666020522700223737252332554143292970063865639549910042521920338174824837472824421553426567254014831638042816182128427310472239485603355442174897170150838218340038534713421882209506678327114866582638424375463797375351247680767547878889871212674309852487223319669839683325529885448751201480223980920492203477164596170401848690226235710939776165977121836972252366757696347388323679260679065507299062197909398280998895876500413473357006988359065878532445083119427422434761789882277316816642833413945617568307618258225817766987170590550768924175720563045373181273377126854227751040481645623468566821367250310300731190003396399112382765729115023770392473153094917665131241270170507682785914761036093958752910804552508268676760118430092213106707098765351604944939366184946522845584687008034235011885029459405678068706317075418584732067893337796975070778259348953348980369767323697333641501106474101765816553751510403600400067490073097052943455664735800009101693348906896990252063273339575895544009557759862904916999854862562130563619939466918941482864486507784588961197800226453631283450435455266442747405877450479061270781502694127144383370481113156149508140392298827732539905192471375167291024797844219703975328779087254239791205631163353204841418139058050274734678972237075516114337812126465721710851441418151996108057425409920107002466941117921605790606930853635412580493433245130761925901996053512476554964488193518891499612400010289641534005038856568151563935328216050164218706684885513139909387031522073170771543901116361830362235894949693648664505128700273034621565822308977607141838386077406655587542477386927825400755500350086131441294163559517745397592753974095042576074523662579836921564836826303626025043994728568095809573080856143532084266197849131859526613364521624706705703276033012307544307662829607128133870859866230070186772596511825344995197468804967230495192808061162788520049536136084956086250677363284191372611160396621325569655625587725111190009087503159784029168221683103457013711631326114406270718704281084997233231106283567245134118347489022598076789176495569669778701187977725053881270216554522493052237973027313466266752515393092568121941440318175327324604291278402062462147386688608774702722099114199556676140427406099526432473488994894049394484100455812904702933758360781906093030677908531323752974996016536637893845383210188541217179179835154465214896500279653055737457266962792038054213861810710654988906264523594417115272819839495253682962188256489463010692156554510249930175909031515566081536499754999622079965991494177295828280492810236754333027330340915089046451078760721858386005489508743418357401718864312647132876917573323538766637569183204873596127204507579001335016149900894314434518334753057454423918452026041316300721012999285066706687771229853193489466436198338588922339034656706996511538115161779214967525688225875970255869789586060176722743886151679504137770874880692631255598897571943642223194023343048900686639765989249606056809420033109672773729498748668098631597031960320054967545340659546002761632158631103240149642167089697622442295128518451078273551621790473424238161746959544898561455154820776315394994616921988995570537516977711966327820104852389000981414284092143753457175782417130597431996342915861011671646187702718606529432207478284265206156724968464922133474504499437210170830776265533227536653708203998270132189330567509296895320017880804374034673337323267266457658240818810271078701981892221222597589749017568609761296854485312346613338468515849096573944668408602936225160063618732210185758121243209933752191245035097177759616883178650309764498023279445150079986189955909016139495863661305838789089763997935345409297698236427080044279398987127728744111429347235251988986801601760737536065361487270106870014824138647953680101801950238033967744914999401127277709050977841683357831051204556449474557081751212025354198443477176318892301542539483663819994005403681689588316114998377807128391272031304078106436796885912920193148922575109485368024411932809495830641581952266687508952669656847558311074314786629985029842009756407216897432936058742471054621267287057345498148377658105339215781034930593808886609783332677602601854853353278540640514235122235266427868961984409336202767856244692347788965552294565855727093547219912607743302151482198487014042194786809469177542462324805771748051479069678433882358999356982778945397022788693596945898010649117732166233671761984816851432920229249427600777679750079508456362730440137050980368983626818685121354698234036086714031705848520944593410189549201019110562747272210235734520077716732589994255490920300995072027912889528686910470507750820018284939687164675193630190867256433604816009674090282877931902370396465616140566642281268720270953572927626031508598663424601694365987126612420715947394443812398433136694432100514759184892691091128116278690818592374813623341390463668206422012581844594064958039962913008680570407950786468886675371054969367661603534567044917458619295293520155993066813403450308854454149639054713961386726552907209846595150873325857593660244550509477623493678786399336030148440360702388018867857222501632560797474628109347035634085447562173929146444831519927940866511115783199980835563670052516877357010650316296073259647338555822503424380690642816127011662309211009255772727636325916495188031790196075200196259387240324096366018009725448619072306665649146142950123594455531015234968893109353799872984445886506472773486368577264572867456888798192269875620437801551309794445096472548967636660266768384649739668302805682689995558633831981144843768441736546787139295694997670829329711373483617813540879613465996718396522403491338855861384894138484054127186865882852451652090275326692341804270783360103274771660676107167242363451426096193336113251530018364753688047817276180076553312647099644571191327709482390016424912815192326150006379236107134303721169357258559910813298446261668174735187111508727242251282403543863553551358747048037488527174546985576306224001227863686631390550373852435394019344106130806481569988706455434597646937276235783786107746914273198099855676634841248094904241971470256464607933586204132314622012980551873358912870292965754316061953109663289586842340838753820697744935862123506720422949452951236683836692423793775194929502012242926772522950435762395361963888980789722920177994494154395380931249697703945414796980285181097658629016264161489670736558062619091134680516045662515212457455053893958317242270622318226049697857392865465575612004510338836537736059369589315580194586241591803596322082345543643226387363635113929273307259696184952137748437654086786317492980545372695844358206092369820714786478016006229916217222136800037689967838132886574688169138911720158479374695862979574556627272316169930133420400243549014397347603575549912360774049959660764330471206211482293619980434401553040500265309525643464221249927416031673518624752178152732155601292452737287137594013671655358532612161635019537198956090142552222467900507815700138799132528376118847759261892566410165462884669482528471741174049897217721920972122339824923044394458980291542514685859997153564848684703197431289996515143108824543172376623794481287276298809996895094606630970954832997515307341645331786638248842007240434853741897614908028864462268036497582003978306403717286639199058992053240843386638581838340972530631452041420169065909441852886297265097706179913735529468823662810726141282658224824842775808383440153829833639530853067219196764000746548285315912935146973293101601220838911382630654041722406366914500162433776823960028897066362837975769506099029956237007001664094167488060210799660566177362263722486647128507426195663144392748132937657790613299506903238527421237090879816218765878344181504558965088147417856613491056148752969193446277072085859685047669313128924441773304756417245397689478388113758081477591831663102004397334931576350813360322768776230671296665641385187836870356171765343508773149006115640858079208822909299737502413244385038847885267873543215982075095709653312802011509436194063612393263821046536315944270690750546102744050313811711963387348952852594521395440959162915840237268512692460481894705417333724883294701110011892274747021152759859437084546600822412790094983494992590173153969452382057404953076754875657006031533857485548038612632158985252985227614135170166682277712363458882893313658390308322597037424785676529491648396098043627964840079231064114483541145637818931546829429360575016073158399869954019696061292484077584821492068633545157763582539825301419499634130735135319496291349226324878112455402397646182020729469903359772425371848457191343510702286397197836793353894021266622785707703481552895187240359977169335684184455485312918292929063132456909393272973947776954115842766459861889869063052023730861969585328021393497332874770627160750706401895134174925883526496071771128220095884102536723272803083941354610753571814643109512986343735001667136849287428208244010827181853641723949580000567185137708691821062468507915809427053780687868539102003894651474747911958996625713602876636350451836266326460023885116945051022196631116746159240337833144836968454337314545609162803048623914936988582085726031482527221655065649213650283924215110075320370332511561124400205523947956727548665625126302531611658486322789224647111442622017557608353171467991954881561566001135298348760528831698754751661394188479731582084512371441138782786634098451421122814568244797011185451968466842575006436868814556000082555282395205221596413080483382840512943136108392191432884960098445371427395982518741992102603281919404224542607382012872400918630873988808075980311711829692067234708409728971695340452976809854491648851906208813503261622095761896981337824422042699204080596966426152002287412552848113376224347714230189159311007786606257466453914224681748507220921795725147389359602005636084313646486007790154273453003918338709430164281145883771717861599825729471515681636420587780517331699883250286959714374051331191723026613234625832937058188308259948723992061362647065297818160713787757657563721780096285564580388554212736967275014709702054863300199342953151995952969834525760753767922122172335252020305107887805095383971512863804433799415090405356564219144948032550984866485892988088855179374529538096279365418063514417784115898522593851229891613409877195565074727057843619834123677383809311377307851864565805641872964560367442570981719774725691174891790570675400829984802651413714107960703598945314118739446690843944593656963533494278630213468986133045568705152826462341229360298006464779901921113361468582268292306888637009972355996949341248615128411784626287852778601379036964305418700894413153588280475120050126292717199266702968888533532626390230276009030046454603758225564602243123776683312750601406947338124298349953682571353538445898612945466082384402382384498822686712024266448543035112476014780478339221961840043137674796777558081040460513368946314214698940082832624969397278353039535110746396281957671551795657722090666508749735171129552022830208318579140827525401756690873249184201926688895578723911679613580632257493143689315646693865532406674935142188895532001679689884096930446912180214400040880655534491577989956285858191498287032883620699297600605869106854351711875097918048802337407592130565707880833665725636186301626127107760198124576552428308315462602422776165718052627544851838782430846106209919961785642457829167316063160840910756419668454819102528428248723020168634027645715566273843704886926497420039709151736602074984804347713315904761263279427793999845752810071287305336511685217875759571140484916236518303944624534174654181277701769896255524431839667662539567685644863560618645011258046624059546781598296162485359195041022666326849658244536377422481767044479775257205989878017494661666523875274344722089418206372643434606719774123928541227664263056987351359036745085082672097398562339255230616874872883955474645844895637512712041307452756103460699335612039722842014828054079238237424414276575707823140794211912284171161710301491523886596369791780102751915304266151813830829710023265542489847208477605557489737790094052413053605907287198470074238730642337913968633656902786479348133547285518656010300617696033794067696390405984849793520509435094890589246549992723978773674223418494698006518131426459633511726165005824260672710693447284431623956035735726602051684889693541164656314401775809942558033228256864960833177135057882279911679877605550009753661182661614322301016147116548992592451502126371007738736776901109229396546834867748893314635220725629057236520332961009031261421164332976706478460537154632338436184638156642711495545980081370912745724308460812070099689629948361272069764428596192437897753758142005146299933483198852174683686817127916402337998548187548637732231282636411061924700106573089348343794057360784229163162355198091684040578825296882317391251202869802138238262495844220765085815131481423365043858122968251459497871190532341799333189685177942829278761607845918348443125958094479633452196409367454019804587214023479638841181739993088824123295780554827922535359325030280531677951759988158503864312049108755648358028423439457361987381884926196495818764643531096494600364580617924758831040979546054762704253016641347208695832527418945864454410536755497318912810146747257863856316659890069725205657992026754408717504377535225372074212695875487273172060085978829760158281170818146511056704587920269811270716434499389100213054098008281415656473116871003288992146731929810433994711048076727877746090648826899219511400851948051901673009012070344388315956235241650990028485237227686777026320723341913788482378737374192820536911709374286193968029982237911110816906522847598931353050643429671165483116909142908813616176033043842740054671458075982372414639107044316705126247961514968666335387411885301543187642697584993127497644654608323098684338232464051462371787045144359148894133076565374278391026923480850291268653453560951187214618849712235208900437991948744581008265653805622274198468465103320635257053488326230863220434862787255374055084765519200773666243324303018811012920113359521020868102286601978515742437575576201728707207228338473860741915990719769404541666384540106788309350004722548014568280718737581585155736624762617323663430013616966613767933949076851545952103056055935006772443574099155717349473469074761195576876060684766977332929430378145065429066540888524440914017380186843170279925083292334645204121024673713493555228681087451235313226695501753237163401071042178287838229606117811514257554381410953484087384917948525446753359680260825218998332447008320319233948957705044733831829363105917031088947830112333533657659369665169992994159505029398045830932732688382438656497634336816718328556515910827718840027515055539712760100176826288344726116839481973462929100872085370805531269402426258708740965026370697508088905402582563738866332099664436213736563570824381375790630565031350053231607711172677106381183252378814509887808568894870934274581734491499007322100761247021898125184015325016427301725890922979384904813986739791707962852683333059606853934549939492521655210161609904198388818574950901775771523302652790139565688725737974099410357296886940433453217104124289395039642014716057170218145472088535595125430487286565019524045912493699442034585350557776633630572245860882286586708416990809080605905289919949654682462433145266056896274785032503894975538041358966944116095852542613929822807738430655332844403671907580906855455962300914683873336290760896717356817212719513386619868202917928975060438692416697695373862297664194064503140623060883552709326582692935567705070747832051603847825639118744022484505016383003374991412237442863954152330664156004462272223075289907549832411875565677027309062797492628670176079701370659553126493633950351643622892643530266650551358694589333537352895578747659715503977870181852835723169185014909536987200709821050782039335026479650142865674062743800950455370735992132639685078387164109179535288270444183385671619380410807395334910290833945257513491209537847789366559832386365481133685550893604342523450861898146051950980573007429412430564651978932278947396256866645913541767790978710435311435182086878033386819094436959993733051959241127753790665830953311483417369857574298542564155121757077032264877650527901390783286278198518894264443533542395697582348811741764077405578205337233894237626929621476278168768394354289944164739010394908880132946384907598036003760367139114449716096722361874173977245685846633085617589331719641753961504711716761390318278091160051426222378926666975925198561402062042351600266492049734693907653993609596398367793454548496917699718376121986378692370791400531661701131278514185810204080231641084470455902630873059448409407782294428513771252747582367618104755097006169954067792416417683455529736083349974022905664066772661521638246366673677258136457055470066067145039636623933797450601507325464669013482922335860636752897624647116399641890202498957425566540861260531418310703201881673505201944946868152584622162250297086710564799646119286851801658143748121187735840754363789537558207546144259506367645287456962858425929552364197768069965832125494039932284595539203106557851412790768665882893236459339105280741233350928003715371011934470415747607717422670209332728877182579566295422964558324183144932372103533201973402774955229983536076507415834771579203829677933399225438914048881223069351383240594999525445476475908385686702825826751839511585039818978771489440734618421894754719449279045369330814253558739923003395304172475913515268215573951340279228451827088495253688122032650036118645279026163377388257677911388309876711052085522049447810923514129720799687620191047942780517503212422796771909548118529398088702583156639728728421695441190384172432718766925132271105949196216876688173278921734374291560357043326235589242295750127154598338021837819096994975734550953251343642303170561266386757270008832211909902347097819246962878598380999615604004862030466167003528808568883163888924901298005432866682278481860681724831555968036316414998148624634224673791540621151654611161564300700491942845847084426758777733660195028870420777591145996830238305233153633699248563934413603917980858057898800570196507239190562938625900662901320174238992011529494115016077034415578173578411174709774567251762498498514258357821675887545842629936359794718210216692130015404345433735620388694528564432304070338732797129601439613107745410534148040110143935430463018841354718473282248833298250721301748863070515619191474028012279325743162380330886531615102072040605121044551965491685649128616775041276112246132143016940445102370300664940352949630147230708892821146735247212310404971516151120888401090096268932881449557913276614162928797964320239424678030140720745713528093905590720359671206640299761505832589129141713397581116393358844916659152178871045957977229744307759278292313615556591947539304051796391648496087759004658217771271370016971876578248168348859200001764539015090501079318198021998979438526396754548031323504039972055997971366084914018566589957774617834932211904945883769347322196244078310724619215687581561738977138926672980699784622672860470939786505242469127177960341598149013518011373670654958333375459058647041936458187159748744469253402313817316485324612770459472205914957881377021438615547352743741549538927486357340475175483556710117263168431022664813747488984843339646031507046399449346975326210826253540629138465513582517613306547119780866326274122590295764901263341218337867588207702688398458620439621727968615788360291541002788599068355191713346704776803507847252481271017564265696981904876402978004744556583907133743660932862282183424173533184868892651128098359499753408168590296751511349643044004682144609346251206106720367321739164333467546545285557111321407740704076689301305582046334081445497412267851370590122107741614005239375728576095883073219011405110592219362734921532655948536063541286428982092491413714990254613200931164164536227641932396295997714710556237783313155268235646900879874671830244765093770362022902149477429661377047198997593739283637876178415333479552924099184078887001895664511464425083162132275840158587955643026237665458769675434993189145681244801880884388213370169586064253048755977009308307263692292015000548491230637167548919582527698488670267434356137961862056256842289796599939478856768022231667635645377410337921543836669974347411501877817523796756130859010839149610696069731741391037888218320067493956078338063325607137874304289744224956273808709630940542248086877902021737738127142513496795678986791284661856930396362285014718393084408937644555407229446700023246127048482612006094088286509004434312447090120887791499244627999444489176057325125864759537743838721305560187778912142380249096459913928103997781907281896556404255815555817142752278088286431969091010020767070903833747507489863009041119033052406692227015489560264354793125027809572686254043152835820717649861380191819794455970966620916351074503457494554804151049888394087602347079959568024798842800851167485585991825290706898984310702077275874059015697615109268951702778933430446086774601452205086152321501428822593634843143759202931889295219254650744574994679479107589730957187336067523220482627080504327307266864093727611215888402951220535409526427270628713874927106294612352259677569814107636024439943676257769286484871681260416211542285067837517744773986797538683718232028754537032404283664824411254168092847189823484382679375415679076848994962775198763032843197264246523563941335652907133314461943112089737081538911291192870578453724153105939994449908587038198924173595196639273456407186259237899872926007950556491409648575388031102465631742076104464063899566411819693562783990438139588436700986834153734718537160870883823695072966609742782968909035186030870123766047050435586951745106133203676349891357289870208337036943721061270249350498167211664014397520199401521480475449063114354757867486572632512765872220363671083556454530372813440892328708182974628484755587297898396448969139526246376483755284410191127317735193683847450425977641122418083084939333905415341728236713853314341026546293802507274601619807857761526276910969737976789080707886190960963931981879429322898151470393552744912112798649689561907833007543022992660173919027062897283621594558854222258995284369053804458397918431987810261861565168609757990749718883394754255723957117110285830062777673552574278286418975334958172262595467913716798792052429083683598304550217569603222192530989607342021950853458649717285336613577248043425399257044625077424584373030983853717782044223300577029369910489665029651503539333788012352756768289167002747741278888522697707470574603412327258464046121112914780185747716201501953842448477171053238156464747965024128052972697522453611294698067774310464049167841617937534742697549807910927999405665638944701509800859080692255867901732955608959937962418876198244556944134808400315315826639754029225388835591353215049231964540456308494134476492349249672691572554944987378622877701564290676600869552752073954857595601316521587397547499456933054684726915454882465326536701914083271924762010396852580368468345659008550614453370083644755209101982050477123113341369598809352097705045722046304623120380114590896825878116926200956756794104047080721843238408910629589184235651515235879289797893859684243812497556845599495669286990440577890779742578274818391363899222982357598689934374084722978999485563854480310182503738849930356945664943900051646568079108390622790280355829700402560673458095149677377451633536475902284023678678683075726845504793079711296057509414520890718842739483709952141480670048909429260445725194964920278996983417137506161464167836639571293938062841150333821861049445445979868923798150690678363955651720713051404623411575284797839558365424937378442041540986634512613448687396460623226345353289313628475385601059301940994934981549428084011836217020480720091871095401242437769445589723836765444584730182819618364250907462047757395923039378318604781839572549043292271633627045041094835887900671255438902301943615551100121683497332122330431095371599926443049154886499280369293786133421515339044292996294826390962856601850832529498128288494426215298522681858382476669963389691608786501655277302568354376668228929580968958173419437375741711438930160633077194238051155478345218188968227399070323851071984898880459738104053243575532359251929760845292255123134479060638595032790517645721204390115058391019538101730633960801074998534731455735169811580836834892486559641446464380868821408785947598918720658654499658926893045634718558339278503110176582082324801512365813241116013947668809718798648914331377553306886990290474528984638313660999764190877331254178543573704925137713485417323015949696061010097089310184669629741640002640701236332385180043749895568045909249039744407141554720456515301816300170272263370498456366253894523712524188892624682540311982810693441619375325179967716303164118356123437164212852098985156283330829226966075665434148833690113985947944164610054256552829508448516331726401024512999998955372677715509671183640586216047964321153441381055194778773162787498185738751216622141207611167562820242908621075912781992154310674564085687073880336392772554061590987809221147873005032654179824065292073735479622596145668861174655262839571903471896909495295263930164513610926759081008478905968942390772179476695522252579791449974188846486580223415461347885162304842054123402741223819063964813101203060700826931251969289208619456877486959509068641181096545582780122089120371050609497046376339877191025096629810391689401315103768939032898616759503323639068296306842408100579434389853715419908757324253350929668045475945933737788726667243168342236769388822246924713585869130658222438636009305930518024090787434567209158235863521095242104111344402746094301201128070259116305356258649986153732122283621031396553195366478649132988262022442181080661388059099814273652828091291694107154669703359025067551069532456150401844132982796490514466144971755432835688490538372408312686794722720631696475297698906747482106511107071012651512555534160485332868680152084055945612488998683272288036478218119971512201450885092266544568185613042787556915479931626340346280142450376017531557858818114245149318182814184416007038930526904360255623845547490164314133551114261507533042873936506239732271635407417306236098916820543974162913392944870567541027518844494575407557611935655362300807414155754740515257581520840541540659819510558426952371427624636605945457396199811375829274009641512638048944762557808233148038306715099700588151760741582165240683090210169502929710545496967456381494790958224615699047435602508650076822510587432215351246203300111174585955144231042078016276155791170670045792326537933020941363811747280783295059729486902404731050110494303988919133773854552266383188391164222232966183202851645542101594844976733935077523353816777521492983851329098335231768364834804402760611310373284754936535782909070002383773478037327779069896472887932359765548704516158561633739000950350070123709089438496789341663459143852391673547096831153823085680283266769563621784769323139898436629393846303109702410578372526282031217764904705245022971545134415415576211423234805258660803569239898081342126013082886782235367428621047617851006168156976963745615582946894344519234386679831893348825807325903144738452466850191120309362536140316696954098933090219513733204075495904532495249449649298235907932677982719434199272775207988326501250568835095628024669072323676212932747983162068598123576765956959805746361340912723544959425981581417910179038637643793942916207130488222980448438453916443919278460966891330545372690494986330175028965616181084557190749412895606797430863263790858945724502897130282960398833380263470049679035766888793646697048903234481406604286407889801468717994345708128016737417917901931639012111813321643980341698622145080229763004212821960890492569365272804552219498366160303170424334453089938301690236922705252032975670299713499681037053452323765431848421487864610184554037255012948955574472507619422751758224091212388624062551470658421870681580425881119416115818061060273641408480629720987523802292090446459501297508908193417181035302082557774814175627535479626937048772525779354391239096075236058522380257539374280187215203742568259867417109918496746935791609858213199938487392967729993009525682474554878081505414705235582452102787701317632643355871807369203183086428522803597571158581368950970616534460075687835699474162363415494618168657187905328402614610531793688703470942919439306067747439017392951979720089119950094146200882334899806129060085838146859346137739880799132825945644783669961870200608840612190331094559277562405295819301774247661166724983504638525547172360655400482402342615732028848743298848660055858316995101395022969992565289823707193775216133247309759203092670219364822545853015954804794914813692014888382316657261115734954669243153416162787742213463572249523341473850039492203195279942876335774910331377417355065895514718161084811383458686326117516415664281222949981951334902146318747544236754783631212225240521476451059275316918356693258001421698127058769840057063050146103553341317577355802438664428747469229187353020924056141333146955003764055869412977506900001733470114421017288553782232284172310308714305889719061103030386588147253073058847555789422213553413691060669909083338250286004937135238281022516977121340102119125660520334872529922942419670150290404658491819996815352352951050000117523481578133874323816150687833235780394327497572253968302087438479362868297612899407469687055641316983724801618260256213156305659891530517057836391653904566585698074274589998679582711685513579372903703461984354826422150532247972363477509238384592812013467114941804545978252873310685743577676932924207967565329001083325959965647732149336575350203440445260379085086841528052979829341135917684750863922086436857039601221088637974374707361132199713430291270994763793129531292290023500880518402591027490104486397360664377606584323611857225392007798235340938684867134720964545481916394826291771031068847131973188998549698067541776400125733127676184160611734070045245134005410121210570576439704687771530672803232392332958477402013507853341817909166542776085455963802308326186274271685551835564322116913372802149545895932267688352937904939120696545241320845519758086586295898793931800300258201172603275311620921679725677143437797311338967386713786869020943243056307602592684310798484807518830197816089165347043184307681464561672400226942251584609246290122920650605866147580726506339294589090653224516931987023509240305641556658853095212489659640252464249898626251450164787590221838891472169532767097115538812413616751477119267915031052285143875812247693018049571482183010939049530417336122670462727756949468611222668411865138982117299914847686042702446867403360396896895260680002751116109434465327943216939496979777765606759169733057659602378267057737104922445702122031744986994637629162163483569358691684881331314746463528628603464677190450775716523422649429004376768272151288701374075536852952103895235580783920117169877374072227940169048493788754183224129448169248439267754494894436614725816924088460232994838374496006210405171648408950789437012555368961032769056053992621274495878490884251943371159642035264556691381121822923071540753740003257632989224654823278282985570685816897274892558459066373343902218517073455398781322464040998452758171391482379128478197703907162627987989926976431209644262226162426133920546553632653014623344715639524871486580219122517650578958755815030636627394796188001973143325016116234579145426883351685236133904682575389599538030183051706694813962186485687541176829583318244432771420188552119040126114067227115145550190770983989828366081035254517125613608293928040717945565268846371513179338114215913679767171457728498896305047484402136677257999294010342029628569879454756457753045270506739851302947003331895229523519067382564021246310102121749982376181009864347278019859965329258086563394433682996177667846832852714229598799301488542136420301497416852348190816035279344182074666444695946645037156831387449270724931189758624299935127557052101688039764820325614062779836929532745720766625441930134962922080663807191211302438741085390249957003338542256951533308489947410208175135782718161373492854131016359075956972030598076242042177315417024334363365383203610081888577444611063712644870676880322095685886457381820803379961080476224792733888659572624713486191136793759233970064243066701139570911849030906719269019761756321566446224282067781352113178392813799473281816926582289313138727637066311083470613716946484179952717867131928447125526242086293770632003955302485906047307084863218149034637036509311376516524794614163260473993176475890964677139679565501320554678495340078961497341894554357832186348982362064272624278444526262484646443049652211388626014815407086024728556429029506146819432671738627061844793425504358378757309293919519593911705755646381067358058814520908733387318138823786676791121339279336278631792462175568973440678450375620027177030136085296244924208466266368294875853834206591528354776195215792897998497022754682681872365104290036667597401701270659724997406888690767157730924341870473579340803225415007292007157043819832286074828478952350109728349594092532250020457279732833733970586549381252801448417595442466143330385429310753908390932629030728578990689050145817550849907300257036474426175355841372413770690242100162162024306541143736546543894636491296549489706520401967682485851341527282239049732963463166399319262762516074523121955489298673900882175468344520258707028940151526137702841652316597090537772539822313184855260145271327728813529175384747681197321961078010209536119211998933273044127069502955639104831703400175580223972942241234640903847629679213067568497706250976332024849092739885933442725182595766865919490448100991223666899675568905631868343077176572943405680375421970106016849136130782494132373486065959155322633900395718910764635632847857063714956220197743715324258471537983179436016580654059002426740139957018476110355953993342056673637441845780832561059614117411921683468658015222440851235126125375667613880163830462687644226791780256664555320135434772408515428293437216511028703081111382754841490624472941718804304581044769461405314210712255339238527921913893728566427407329001476834573986270168384063195609973984618885741059641483089508603400748740077981980043196820268681356337717146078632318832195184998932246834113449921393650903951579934813219962784961446153991137376683895434044603408844689974306832682479321797214400514696135089922743946407316083857643834728892485993094230843050315602788250361480891729090123008679877395092627239940755041013286036642521668827938027841631671990842674649891912102995666181692913980329273250788152990573459546709315487475241253095215095465465651546095637848895565434349677270523270999673198707331265218035984366529837574934589739744834702514275937026459837416849346609141317540805921405608995826859912841933262343120000086143282955650416861573864788647846968199073671544327700787625744921804646956129509270891841268652362072982351624408833645790137319001947103385679962683677568761594096801444211112948189310627733370703808626749016952960505716646974926616589477320900852712228872538461115426659375296866148109921903253919166180671434886780647994453718377915043493041559871959515316392335548656555292654483951598257071769855656151284036697616967680243855633087839584102975568051532831030301097881336193307939224127997492054689425699690913937736397145689439251597546825107950025458666863880829297637828134645498262611338173794246775870838126220160644322032994967080794120084228592809532957586859422079273552675696667990694579411246169216375792633519793866254174452544779770240507532367648009730856461897819133749071933130393593255438546650242533370562448118015632226562048223178970387397324759118552759181274794408659837940089749610702886236525081379285302861243567822119636554619619168635532086879562129583003553660890130376148317612854637762343665414505057763133404250936038424316466315534768910085495788365110707271254190273374100493418753638578516278570540489187236759203837882586677722409282058458759415985419951799983231711678195028683788838931082403297707545122965566002291422793878692301599367031616387981606978705230021445767850403325179139522803890814526913878028564542401689793062983269288754387198088610939248519726679405467145675067254677588532797557299176838691303606064991829732660329619454465861604606002845377971076821644426608944359127814941419901699652038552070740106687065204389230368397008060636688832197334999540565999299946331973644001968229543850323865004566638391077898450980875866463304967771150720684910886528903767354930223859349019449848907067164564520070249111224850679747143030553880214997238654016452908351773577539159906645793591913095537703564471213510784059224573832702542837087018007155934346774829211295122046491734158956982534839216067856068364320607919642126071753654091230989650911714826171117273958142524478441868125597285929018980990181197705782979749540523597801882494324651439660005336911000512556217052847978407517523578528433960526160641001717955719496813338358388181579484964057804396238609503025901957393344454309994040212146116217660689208771421668024974151734976775589197353016435276052633142511738837879803420318920503020420769722305701041404985729953145896157222601560281563671792302410516019149190244058275439400128515616529472373082241766442213483517673260624355454760114433948558831541712438411983233003047372527002765695516518934911401607557208636433295464400027535836475598631117703579095884676217207632053753873075468370709637259081883440548351750698797344836440264274861254727397958935044009613234347128714669583694016421385053131356324381803472866211926962533868391638448559382227594232583791086569277029902773873785259496694407556125784116055803667181192809198060907726985341558613457200874394833547685466091493175665601297899911046173012587418466188095525954968252068041554625694877938038729682625089750942531878686196591479635562206788726859089940264660877998787927025387219593567450085301412123968120441611329779024007515839127419321401172191253389210196623852085021727626197115703823384883692169038100301034397346931091825157579952399233239177434294381949504473563538036616192227200952301612804148741489781185239119849637378679729811075593414418665971520840850938194726236332665593234661679262550156115860199332828802061926357254846044838518215088769201334130977063079340528029821811484524473622122405109193737387839144283903370930448524631873263341262755784550162922493824683550570104109733616478386398971749097353356980878794669221204028692464502391324301651705382602423675283912856141358451833535386434233966750826299853467738474055353756310039682447012431568504381996148430971621022566261843864175625362182560880064374136251252803113922708008534557615258585310151314272025997396415365850701335455994959673534830688646944599945484842338596655715169806957347733338450947240227105426993985161250460828646815928991228956663487419319282411251851246538634961016226307602083163735936636129664451406040541101525165099552574577215590145120028316209630747248778737554304961439668436190524032703279398242499901992855402959600130495553219288711228413474010345553303748604339941173597321824025921092425249262285697657633666847047066952957826147272550747470193180008100100895472485603392008160680058096606176287119714137442433345449921747421367743348459198492002362172293009043992594784170566896074065817496125160469338799916754968710311800006863921330368861185896686178026388748052789184976389256729587194266319477289692759365743697921614730654178158732349806807465773481508533196495999040697621035408739056879270195088231280824590086793372484981339394219576898288769784039896516678407720736359800258410633997816147194274952876123009711418940557516677929832401898402333154536729646460055623716666090902358511779446316195773078810605115929261817178146045617666794827813729006560574156868639757146737799391961964501108865779649092158364810530940717787165230500944587524407782172701929417861734958253607459304393184224716715412343134036141770466401306041267082186162046244939380083926445704601103892173690693784861160815663809587837712641843099134965651526808587582417941647546226711989856568786634535200647253732526811549511339516978002041645020321897237018173249031223957201101213888374117046530810152768589143795821235890954038915000464964807509982019188769533958634295392720671456417705817816042656922717236605097671626716743964828036166499730671340424905229889378778825968556510883448260192928993103832797662186002331481451247814106636057442600223282077781656199884407726685266816154031381592668795721761405104339062670770499314560397203169536425180392194558689836253719366871209060346935742330429728752098763981958409947140635356183214169022953734677116376265766051149822990985118890135073323642961248704614449064078520766353675827178690167220543901950242749867071965894743796117358858337691539438126585655977692589956230383392746798915884538069792206735194700813847343611749601685637953714403571048447059954155429700017920836598270191843766641351740512167823261961749698589954810961514820385518064125883933942886805752708471092392925644443265225604204818097437300592299009911342795822380948097832092239546899896429548720337213210782654238279163338632642431801101481787340900985159437153847764271473336192820857852736333799132001587970728176830782746824489960044709691374980893150101245401009546489387645701667392141496542075588687061822058054745251624104170324581533600792962148785624225561922023215031199649873660453375204123187001011706833629627860275746917080857487396202456274433979891332867181588097352915639197713339544376989212293765950918192190154493323970510937780434230051489866610906535871023805049306792504134607714861918838231858761369296058518154075935768282051740940341588627138789761293755288003110324394759844065201058108276475259567848202188583477718232938380643863051009044954397312750570501183792003285458357762423173500531394037443111981005588395159527828563627226865756043918490552794624369657838680210679467845842170764382093964682562583469043557498497583323677331999905224258883715107689124843442703178268727021977530768606707297399511918140548507031738898404292107161233529213554091142813157611494252998447012549640290240333553124769730682550642066793211791057183356826806660627444976902490572073835806825806400181325458827315646218051945151857636134967414201830948387524666215756997943444185774774823443338906275588436024855192600882428189470131878774522138068353425611153115128517827295864065215264677987703497897443308357329813221341288867475884915563959901304103137892237808023112261933623450262114012612861207739035720918738167424676668543964151371723821418692737736139511634914969606055447328081915174862335072012695782037729266083257575466310632107013916751434867334430931029587831367869806184074583158923726205432618069575287058736043424447395194862957415550829672572261274458937383744280414087007214190518803198825212142257447948083304222598781912637502581610110426762889768022423471926163900945597559460606608283105207188780579823850732667163356413482927089140804381798266775135510699888506312376969814300870409921817306237816177497475680730396281141025292333527342691439636227921717279473049525383247495916787809923085526814513770769281600907137386300801277334543005982670931783715446638347815155563829962747842428481780187076946843148467910606063286647533469915364644343293580771893772820589361862278238214627542828495135838173502912386881709486213333040549558694372220781615945729101873440898283327146595963509206161752994880887481127120735671641863984562246589273327666494587035007444862034506559700153565296199369507217682218325220489330888857480626848504233521295422288760906271005763928331761783898816038359083232118516871620909781016877699083374173910887401910679801284426327821384864828050132989308063237839375834702544042845249573647175326632205187827556668217222081832334014864585605893358137997652491783869312367357236109164034227429864768625261823118772370350488172508232787213836319592235907984779511498534371448859698307790825482226217278278023987047523778148328939815668943798878050374450553205102446642802556391546722945013494355892540967850412496026351217151522599134870902895224482982941572326355820166634052611703434605191679916177982923370117258725691742155113294740221494206224131489853193369789301650720763595214524872318011245463840162036579779503736255216567529331553551837888740985782930250452707672867882027907350346107126575735019285372924286368745976928346121034782503968422509213747177868460201207225445960997914184237336964636971207724192513386945403720391496720096703200727184347925007163569682108517981997087146903840814719631144829512078421944487065246386354400509600672780796092271124644690352610820609562743537500429093839003216598349249860724132867311194143027969301578109445319575481806350070741997272284950326799660701621746065716120556401993296889055499463567253847466342743085204081120746587984420019844107081431813454085851622844671210574454828079547924807721499456450532972111259683672020421362064928404965044081521913598650311601329776511273744067151369523512346795217272954973828683052661942252399890152519268142393299237908738705157787939152015787028440100799539219344204266054843366271575332655546406095950669589061786519348302118409870224662347050027720723416447968906672938073535372499326710818236849148303328651738359716565398936242742076659771154803107246071914457836392082075605568622331857700763264862902440530388974161538829358224173684661485119030459673319423068044323584800262422027174324751846339549052056058408999319975383667549408671752026393689042012911596158452098625182752201896428721080001421463278568005534684302933004299395950638083485662218589557939754746791065786133239652637302394310851779738471463239796158486470866412358690563884007273231264250407522033496559481630023268705387412239822161028867910348443318431423071542521486952602875598410239109706709169702594348410585345177545078133945466419902994151637982419134038243785282896542730608401423742122900925953030857280108693823445904829385673417177055386972920187363982796443549723343410939491551778801645600194001745883511276475771048740088924050406480731431512386556907287197734843812876336181872910514141730955937752906161054789342980501571846689236046277330482738680014773068734873319593118351061956700979003040628928518505705720675037056063861735732294258768577300441013817631578406048625832424420760556340695141130317424966178776089718653983893031071804634015332173116101313568339621874988766337060638542414528788807372121339677359975800951801652001242078753239122956595041769929224036711853228069872795391912018918350388426198692674025587127368584752922760729041451588455475043859877009666399153764618349143895409749862671185627007495706400835675431192880449203853975369199814913088132629325916835522024253852673920012672283198831279047031054355432818407963592590261168614036014433608593706903817347683380330419064557721898178752627136543004035916213663723691533695362719999151048966030692105326359182165931055546383232355693615748436964968783184177521867995590074506408466432261619055350087004279176275158166354197256017182324117903884195645881253932393313691191618596368445302787986497162303000604154476470785745384779319444450247861967026249295361839475768299756277499171412729965061969367394314983184277629158491003854238787570576270745123361827938124035804495986194268251673441213800693180115914966423342057109882386091017659816854893905750521847044216213975342050934868230075252722400591206181575530610623487067339592872699901058491170555435092494388103807561864718975161879547048268090736179148085112750390396621926732748915598821473667100560523488117512622621696800536501497346669433497387271766922823794012865009305053049491841638497157032010351260056298593089441482109857781114226040363558316473049362758169832488912082363416551926360023941210048429000711929451365242219161268487697654034359207925595739110632823670331376336319195563661549478653791679024350602588895212365703417983070436145734973710871706304610230559170883759752642794577107281591792794377088775885046030999121990016282866216184009423130680573854397960878707726359791665580461805541281794918927804894600049861600747173945142056624928792725082053384736694842977147041911109338793021595326412166272810506705867114884820194305303407746961969695209205614642299129992771662964082578622024491183788129138550920416573063437042728838381946634891250244983849163604685951318869925675802921834233158862395497821158921862552329578464953972487918139544097133625719462405402311022209891462499156994006479901982392403689168443564586476618174776598115146138731602669399680783193404144003009622530168635620572900227198629569015780693593738693124664787703404018673504084002430653346168692047146647826699652296897960482314083616061187915375189371701581416785081679814890830232201650183592450413784742328871685105493439256771939094698466224984503731834805108396832498160898380927301546347907438590202387929496744866444309555693229569364098406319905788338003342635074160824284562196907156125546675299304122578494115948519128340234030426821707606225100260490685127501311171831072257668289253907884607760980416460886680738782322801969142419751523217628333027363343593906011028158202468589108424680039614068105169431865071684100470451862623940347903764390542425413333483631984651693356498187245989274249703410582474347301167810808509278415708817115916672977831795757175499491416197433650109944594135510790538433917805105670283075923242498725446496053914698346206481236314866009389198239499335533747825907982899046617583275468877945657146161492717723076894123480331853233408105217669142216576949879007429460508631091657118172848603515123090974156948888741063123779508015455752733429423338441648378166275343384672508006966766953553875798207096465582189930171390556659132190228824858390958157438131355840198955818986562704397687966927130184999303499327004323874242842644694489427067376853411513397442521215733230949327593515467664130508371961862096046040964640373929818412859918814106914986293816272150756886260473099823882722500170693637850882876489064030175982727427594522685532983202677003681862294290251429462208035841103541216738502085210114293406100054227149291433061064062462089100577407193965413762391521227496477333349756785000064803303405543485528975222468322683246075841178854445502815093509638937197887077478126135828372935085699232396465736882990825672242712629491828489089006490678148707524851563887719180636098035869092453288472066953838024741814998168254792518838720632049179445304390472634166630245575187305933869458058728034875209504941838524352520752235026377236623344857345822183411043677095350693005224387830531858140749956550623303418896502474322080628409670396604646061942590732704064508557937809224455914544812804563402984225281454422722658876707539345163212023155672158563971406352542436355129320283717541209564132898747383855777130511383455222809183153107167901706892214898123920333034855524658790482102278793931002737020003812075365167348229049437411110808617080759748795528678963150322947443810238574656565584014395886158607581260583424667279981383443879524750991093731010605541119861056790726958975268445295303183055150062532694094591282042563303116524286359651731264048132428373731581750384518522775342141118653536523868053780595848426300844398404428030119970119051992273923015490030636122492307849499517172358344067634223401426340620977488199014862945009371481130846111974439548058894047296716490708434627268140032505424743493953841098734788586322536286526054282921279319756170454336644436416499574449140988621198666372699403980459655139296072181890642938505499076049791502010222445485422575307907428438630712703627351982578251038002251799180730255096910535580684659003643533299528452106429759743478143766531250808388743191178489861410153346071792637659824964581748136722079955365857525166853513168744478063634950879357794252998869241341186294755071370929588504397594949440022994497357869089406461589335981316609330373078773124052808152019332339320084385096088176301777364033168765994032066692860585827017800697784761633187321960222988992783932712038829486744557965678601140080765252763057403147357141407743076556397730351415179885434271495026083046943158039547291530038888522751519163995007635705098202613912514103720643211775126001076021093128214958385358262760175134149216278669951888963766523599871862442356441674026135873800813479148452476676631810216836522079212215880691087452582785773518175019860563782504311427384497213291357727822625370957412521006455634667752574649704201178552571821186869645895258401137879585660367157105757403068259176601416696006463251187196102750406039447895609266142365918486179738586787860922713113145408562456200080195902655944342005276522695701025273011972598374060312161201241972778939771691922098345675487287549173144239342571122376798168339871472642139753917999708074089523053393682119948212334691131154277300895916928204320086469626555764350089781455360596649031151313199170133558792554958757160935383726548037504997164801796046100969412153706779520138722962787541523595723230803120268834842537846927799494520965980455413710106660102547114891038332591834994775114281649907429747075014001562476697628562755630619035090905998668941431061836965896052126806623322120599593487234484510186782763977763097114061260952735767855878694529085998204394089724311743561920853125154393049980725229771330508169175735785616408668544313450513826235606396407508033724315285018767728793119704266753722371741092433654857569779782246713496904297247571054466222145828161778012676917387870448854949507703291951662565573041561625351697901655478034610770656273691601123218258338607123393694679878310009834486473241905684299255243423446942776084826265243382016129770109679610029862960767278064478748823538470297579962322437990654721188875716669327639876867209010315984531364174194732309982227539356607390550997391273577901981204587474759144047036914696565906382396806940862738589450613412266663709946532051401930844829486609249389119928522943542697440012331368976835329298387779071214929955327472987524158442641072198622754761167321630209961665236933521681362825223110916596944865737479921116912161466070346491406857205775509648976688561154426830488000733415622471936498558826193135721770325796326729237455951740880821706381023334178393415500615796605809426023489572074360533951603077060643416230359601341612264105389175519974090201789268491807415311150102714956959320062058482028395853970233391152695774504551977131691059625265636276489870527506279332293638343254205375243398245772980073312906026450286367620818798491749099405218151692066551995626833261773569716788460480330266078572024255652947129220971887385981698525566555430475237327305618465554065479702540788030713922771112433787975592490494790057201946308740621299981166073221951401935937560760888907697363427042308690179739618675584233646697383210147209455307000148700291831712786866310045956341674437566631452718427111762231584151556347809405086250814496640518962241201775285822483543288614332052260168146919126475642803517847292516470620190153120391440173612857426744133526457080463405117353976031395202693655482313486996296475132111458456480639255556858602463029862460007059176430906167963211417995618380595834211571873960963430216074419399367243127742895346618627704997491135657963089246133086404816152800323361342112208500077374997969091428846707196580863514860066642697791193950674548600502638717253412734992665825250445534592145833625691373624711054545620003265164372611601483245931261990346524568937670497844436784717783732086164603845199124394615809624888128698586034164003342753692876680643108035666681509135167550892176636897058952799782148560358991694075399245881945549806735272934234547031706734689442407827632531687482485339211134384977269103812373115090828724286376417708470132931030821477356660409345559601679013707701083765295600337041152836706784917457425014055795611270507563733894545320538738997867246562012024648083041210523064590179116762604154480215086551680484487357085365946121181221277532493966387809737076358311936177476358412326446211770312808136147913851250165211656560028844260649883431465746550721402903941702607956310955752321577225857827479665161639939546720550198190019837293898587516354158508652876415608774125888799584078680919147979726143447175943668142035654559114997164886723825327410310327077196847642289474888907552016615320915841732259181040066806784831375750436709454904719354706808107758861304301659934502363545362946335445273151920719230221498131176596794933421903562019994028130563446705496555904093946916432694399918275357005818029374363816399207117745482819461142207722343067535037918564304775284994602308034942944013743191643093746154640765492206768531048028495190688056692762625032642631270438484162762965633021825006942186822241361517521371104179080112040978835553208410686743340300151722232952788728658217445253171796283340215559172260462539580786380794766885253877092266589649328425484687905092814362678868884534168331691975093904688596066930187206748529698682680577842513823282771416559113098094482414694086407641105157032123994586801678627415398420857829818619896414459625086190838000725472634525840237568448022758712284913251102318065705040249825038904812434879798448711929753132053146616556885764166466182355772842836084110971300106084209248212693352482640073868846842884099468947934319679871292801660194134407187709055964979388965141308600397739984485630385601927810679919301194462726805118614826277332626993241897085941150138168450750511809258612616405219284116411888227166761968189741708618306708969283726194313056373738143127891087830024046052743052527240509565334448016195120148693041750007801551159116562692119434924524154368232654295235743932701068298920938601013077914214652068549854351122627547458144063153334311874838547308193229978505298951246273469269517075896452325853661227414065270132222171994055370500334165678284638354482824343053081266357150254193170191439746807651623855153325607135162872579851351984238105143482904101981893621345132220317859013591805841610984978087991979573929843253220159211090558328851465519186998340446190658737195602887529584944895350385073953409433847045807249445893483816934827621771251102056354165145041927261095055188402935283301581545641551375783057984214755471567191714499089019781851732164311137367700378994333471940143107621991283212619993927286537819061866920157661303790780002603079047328999336213721862683392349816774506008652229442888849335367883335465381597619497850311009486797103979961800284447184922799518619761979865855866741813211052847694218705477103161783143335488604728219517278388354911433156181933485620404005267639539192506827317038512858715485137812727528445787589914980722910176350384409675391252931766386561923061849689803958532523462287093574695536323141100496257391315842442389835967133105171917534767761114320106276236071935487440071467344777752039733943075426769564730699440411323307279177243124758027044894998080786300640943239382997253047487510711187869403994429342715925235305665478460149306561941626231251932676507543211172984418152860012276327415264864923113041116844144180494301646619065904385516889425455612518016190503516211237895447801796119277509820164597214660778403261544660811539187617924178358489171568076106147001321436418477705565816123715638668429880673157293739310308598651610536348579283042562284769343526790568234223444887995741467918075508088586676273824620935251012113761525725632712169973362420138667148674021534870340667625832476008422314347644806781556115183270605619212959309030689761434822580332104126985317382952743090906691446010270378353726944185644869911125602039341807256405564651967708455658199409696488624758572734416811715085986214403777216319802138457808590283438092086101106350824911040981514264393469119910899142289671234484149110957911305634237809234620515671252464829615631724324147333095053614596476576326519969345786192073383931891536852549901724684604328960134311453220761840770746967213591514077611863898930403839540325401050911268986688045610373344117824907766547610169354814634456607332428602528093428483450558441515835004030950065214792677008911029143550425174763141778640972211046796269159762360995172504676957008002007945766815012161086702374183991777816195269777101699584006392624318504834918926668911200152901282347418290348976202864905192829230314245427119225661539097734839981671864420662373670017745687434043460365017990200089754806920064489111276328226429808649583125317921972079811085978038410567684283372869060852182822397957414818799562341651487686174987022568985384664283052427877627044425130073661999822793493582957609344358401528326893493217479567109796920224223814680467324087554621008140705379621064437278746247363666603881818604773481691078524667357735109620715961937713199810082918318746396115105948548222108919411687226902014684414907445124551168223862919894186711487797195052487878020117458661062148026395470713016521588673634295341968815048185754748165718746814765051020664679837253095254975383470976190982573593827216358346372436388995203720712811683206814229524599812467251549401249828317284632876059937759613349809942782712965598150580689820893489937803343774826839426826880559895617220339260405784865439942642130966238691553987883412783992875604890907902026561827837122175138124242060775171687119828590989387105366016819192687958930053729534525839897982850834536033190158699801975780434857607621111280803023845965039376837608622147754163071630115055489615643708302646259312826333790295531502923323351461840037697982503107029650712036183325889254835326279052196866972089905185447867058272412940964383738557593143795387086198891805251346910877472074278593181693433061954870945863762338170732812442314791911351011286488962119346791031082072752252318388538830982911122467884684383398888042423216484140292016052143366478689390666149860102073667457185879950997921605196277223225482233517350471036599085025530223625166460768424575647801769455046629242468882537243610588847442149634940454100667945198521023444722307165973373334012655978756392552154654828643671890648013723221758975190986765699791596539921818799263141829932194702220697567127687612570324385762307859273289103205615108817058153105960286461074448537071313031240148071469340274402207180967974813236357778176607798159969127412315184714909646278064096218099492905587782343381836757896548178615464572350472773170866948911282556242689332044760371304136609192866003020219865415301392238173567001990067152107894861576339136799002330756806157085106927892479001023704005850510065637003464071311027102046655430464301536562197077939952756121376880018570137739247431381594379155402351330782872716178079662430694863979930652809032379282982076398123743430313576415327207987243401048542401353226616493941742577869962797554403186233146933302145615967826972158233093894952056600909768881288387304201685872352137865470209766401371405966462630947927016890735783114420985203782139850840374561355774538100581232780680457198582418771252621363121649975597132760192872198469024238738698192805373175561641357629092799376694996403438332735473011311767521647314156483641878306265891784950444624749547787093733972860173075044851609009656780366942647075379244733084624152775626120925802548078516958688844835659292859085226066397289428324271482585089529015762876053712769873328464621746665572034900777854654711724827441826461513597956801111354888960801145712224649189858325040343604355728816966684665583201281132334855948335100590794677654183918510297825593822164478911005675432715819809345008074081171920346063473512957454868883295066744617558297433635947089021863888080616585746651734272212458837488423515258188464639287440482592872059968698947476978759105924668640691344238374455558790309169572094631756359440363981261931977799809277765158135052929210284952089365549728655621542121989377262854274875691142822275203850418815812027735016276756776386708306333101168932634658647732968661849954470943926128375032726419589633150024597135662823993051599003205204420981166261374001031211258955595550508017438776226625860810466330985081633225813971157792475870265646064910825324137278004233498045088091648645554566641818111900937324595259641769996634869492030733068452198721080688552502279100974282848505036677308972048509531367012462263732687833883653467719265997961956852495242625925122523409367527640468501681593060582578767111825542309345925391295028300848296933044340038380153803295162569185035151556119296710213204718219580783384817937333672194778791721356628695644997162750185470407611805684555617033388586311600903613709106626173493976789004558305020324014985866853956276125362224455573430966468835747180571478069454613892162282582972163328274991507258398968862846308143773741841121745781036224886161448201042365909836561784546252831755921255678951158388761827425726422227018530456638311594849180937775524146459378254867892640838884282210773605211772771652725883762156306187739224550065889649542862922757719344181635961128277497710376742602352581435622849323569443362458865457681321104250833327888097162505475098711312779803339025382149056422184347113160522634382473044115989360713504004467631675287802621688545752338516072566581392385707847575086399401684676453494566952202213825642375667708628443679684270202930606614698138968839789369354179136398098600323655763448619457111097154738302973995059779285513317520674732311364399531887454246871755808663421076423348135718006446175282356325112153877439737504086419368705622616656925525013145028365101118187416678374531740667456054219309440120983643243214592656506668740840860279597186474114482121542750779361372814448072465635635529215287497631999377186296003901774657012717450162525783086045239194468546839396813355275035252700579946866076075785019775326059962313881693406987811090803568654635989988479929847186075135937981294794325698090510676269878265730339628011947268919666477742503150635185642724129177290364418342916537323531749927915670632631284731753129268717099772117023748328397727195351656333809491329798964358346933569878773190119812968634338129736660412785960108027689279434859712029761290747983291902859799450438128128748659352725997791120427941317829753802395937015483242148015470950844738548576807728873487155939204028493593037166038571370600989168699031648840254691281812845008773401077661873975907096573842184993807042124000254638708604498969006267382185979983029749978880140885228764115784148869796638878950594746993056024111805235296156878846735908362665100930182358759537107175700264687332454754287257755610165817908536607813060114993149095268354768562404580834695138632117712951245755207750474721250967772743238179486279235281015957318636936354586726300167541759364272635163007377233454203397479762369087612044074548640014450910709568142763967881902042578312931229548820346163525262152695464454016241747560468693499501975324287067180107148135414156195380256624388063981308107398703635283633802737665156606371275653550183484558158752363991343350712053252117350230220021768502021029930906926653267017608096685223686817027911531161340072922068092294811785956514992126254138535789641775386038534751403878225041232999799436185082991523585269155208931652575055237595910838425625634637374200451935940993016425338719403496642974062742762308119758202618417920606743331596644283641062907925421510946340353697261939659720044144001674443989600984563125574399933324422648936086054900043329889340182713376225846940971973286432536076320675210445152016375309021105803787639288497213824586705169981062629874311238835215173484575682067749413822231419625552032336471602202825865602317679168692396300321490679656318818977791189779011204618620188391082289623736629375854188078919516224647841244227921234005117801149533186297855845362610283406403096590056376950169788299242061813384346023553874174409184310115073294886982280718681814071281388542663169640974628228098514048951782545686533599578419351578409806433047716767359560782168620425300079818813017073047423423651369231486120038329402154738173867389651935112647930128391452944379893325132624862738609605331611700482416712244425370513396966615062394817394554807535617324280774930042318082014895855140639669452537138901894272182501633320809165643405602523509916214219089043807255879864566778547561204984251752692378915569265748179288158567406880465459366592227821680341232566812307595684569646556867828165233176916071771626408323468752455274506233768899698830319083465644754570783534444149598635538599043509307899009682659733874417414285332058823805709273759213025393120383885784817231500022400130291129026234573501308326862232461836555987345845593941451490798851645262392892456258226857213438626127904412234272581503907038420737249989636151928038547022366977309003068423754492759354430569265323536593078075030363075487665270273777303221182034461696540805305231504603512985494241967797616060337576283213922857070450328999619193040776657026039381229744854084059319027009948827566992512582092384914658639640124036077834315980411549974794980538456758965815477345239581592149900251691159468384792339469590441738958479046222406248454533065924074132552909374310873433862044500784970683172204330870241548392143544202654260224565546619523048336528630383903717290727999554783136155642523450071024960688055497502542633816102286169957033472876309942663834942778650564428328090548640414974726982673797622404495079371064777930705435132766190318685516427538152855936375885286456014423618614358554928745142356501616965006559769191105537835201883541366613236124110635784165177260200017560276054586601114400550498024832657647833680413687703719194261514531289170014526936829150591315828385245980454139725962156320629864773494534984045331088153653976328621040497610338188883188450221016386121289994513056971977982122331737955469854109959687813345943422374990921746161588637857938770704376526381676832038837168756055259007270010113505741468434920388503254193572254854133310239838986356435563556262869371911190924367919232198518419345732923957524238444057340906204888256877012896332230941753120533762862963344886841448140519478540540045796909434004635512850559752607856916988390916925767468334327546898175323458599880185516473238600907314698221299471425460006529787714895217664086483156152156092696800249577675272677532507205882011608591738462761016076489997282089346031738341235295298940977534174521080298197329363087698729312559387528217943214125830516619082425720881582578584056627715106680185330708046840454227210669034156237209473170087564020128106807607552414017294749211809487874516855927692215231344808236047144665138846913189078584694810497782956750076509857213171370178167797611152942971985173446400673926476612041805941687629594410352305790844896816939528725189409160131352943106573729752991641878112119583189567619702625557573163452064311873044124355647326152069520390354256624654318207687124163763275828317192802922515638539047724475968257578885040544836417572773950474799011884447360615596809273569958369796574198397961028651642443905677547559831074644370065944980812582039259332132622411062507838325972878805880527829180479048850187243435479273775931094676088254585565338949596758413028083702265408872924833417563355965796647078593416870344798486607748837091339801302846500365011489508614923691989378675392391601042934440958935689501483131481433242130300583472283073099763358180479892291605447896312567901053574832147710338428225530279461670369982549097521584253125614304887326030734902465034274412348911025194801269213734575989340873492925139615314562743390328478154096730638437018534731555980196876176764677383506769860048878047503532325781676375841814548721395930852471549617899967363519985233458322042890637873190129666347932201956780212096118976319206995954875673313037991484053432885322410883234762574394138001825510189532785680756119175824570736823367752178701009278050781323883933475333907993715782001144954468762595633030908547262700348428418328851131331937887900666342780855171816463405180797687354794083668382703062016038971161275885348815287766393839620177141313510888625856712268177959412418651132644924966965512749947559070296725108042762400891423434744404424657748198901962049760561628902969692819849382125722081794117151814551712511756716120136411261011001804157181223768556733188995633286826023679240374908308462142313229628205410733210634889083941784591732161901110166739068886593612154520834950514322191199455485033498892702567658319826305192084237038553743533084576815534643097226496034907049750825873882452019122032518319303136191384898319554976183191535823029969243412597967365059235916997634912971211735531827505341363552618942667533860232074282354332563145150546973727226970494673082139144589287341115922317685644013824879904730053735635609949213798393419610936077010740595702402830673640210065245014416237032342578127490784609287677892034511334319630583059217882446200704920859579442025602865024712609899640602146933472838550161298902541823643398046501349998104971115158895140710223990847791097754759042585840043819576966621035709875700664929673669559044633359878208080364081435110497130994254406313450232806601515506540712802604193335063899281098126644442667599189956081526695791979354738699256826104270073668866353340896677483090453762062413224765988348799689407782161468378652587369455107094310962386945250098875382344667862578330525707301059989196269725538538043512870354033873571982812189657964139238929735097705440571479600561936945460313317123061712623349652681172647843669682272139572731821286642529010113272335506436178525428311676101619990562819429043455897383441582005115017213919520756024999987488638994714667476509603876227733073375792617967930390322164866471201508961169181882748615123312436674541162247527982080171557990749772668659334687026680490430220314543489758293673385339542730387370311522633554877906896718228015344358205043321105976301410341053005390901621415100138319513664239157086917483916349823275005800235865803101656679579302970394722483780696319310992307750412768947811849536810697446336930042532591737608613243550757088945017509184724145980430304754563613708388211233617422965414387646965829896035913932836342689882123175805829615997954528529693404691146443435196946544284013287965580564008015474316640578515161432106474351240955405864122426267329503734237543519873766638402445506905133926450347507057821434745980900049554620410612418552800107718484936756965723350324937667058724372006217466841401570079530906279061934606495183626092197473703462710863329650361456693824496550464060645959266170003443050427736064290466345477532136954480608682044501743759307421262232716942676046202546223039650521257894559473533179029462992772271574371788687420710862516647275163469361767410474344834877632350903303706329972334162629264598726479663609585519023035104162341578133057108859555399698323809213771512930355853395377696386503991960662304430417353302562565572523782729304838111405077094880861734240412093093319776372471708930567371392151601177947918930883420383394020739252954865854733468779031654339443661115500181519398170580007184474640068886137682938294831952301141021851306104540869926723640227353266436516271112600282384350973029981204820768304151377618252347458059927842656612162331254564737308761318832423425935645901122210499123851197734979601273471501658288713838948201232846965069303410428649190111975799501075901814990603075632174658408182760506861999833303482006283247908334840811802234394696904739263420823671731705453765154547456272327385771468141437445580493946723781914713138181632534678726863586329141139275905994856380219640669215499059257145809889063770399940870903375577965398341911087989893316842002383372180870154659214064439467371760052109299657235941611204273953815596942683166891808402571166253033907028518564134272058801208406994836516356519482004164304961372750001862490844640222891571077857072351863501346021479394024419963930904110409420380456381352766779969453853274082177053277375676461842464271905888053546093675010881468816540610896599449901589336514776428775883567248987684809006779372163887901573670236691923546820635779894172033527130978892041766330531507076226255408774144876939599903976791861407728516514042513979770679671852905798219670229509045295179896840929788961288581964495652584741700853857719735843060082610488637176151160023272141529092410373965714169295281025458543458811703398644089884933772633812242190887349256956452349209702283068568324946858835856197200810473921125541286969829948863098870198739068672820411592233395496428903350421557435778250052068491456302282607361028769876796361265238980274403285422547590636794379763440172001196124349499817996383186532412118592430241541036576502196273810596360844368064723652834238535889606083989168803519015089538090031237410101171748291101704017952465750810226241323379074045527443124641536606063119147322242191737047637140386494996055824361817753412678035197476742518548917636833262638511078657605013171794453206677632452412340246909670809835082414954055273490892159746117171526668856203377668307603621236782563055904396689420292669832917403662680797877775893348574988998832323086164806914625762933176957736933234760528605369021257785980512675786851231196969757015384478670404883927537050977787616577400592195891526071638409931355081306880671381650996499100105476785733139263243387535759189759352540393320998537880041433059699556848937191735120539582479003537313508216206270498396009458332178929711762450560643605323072764237477067577063098178307767213423028871601871103352102190438814880180694616360142070397684210276537029241748163617086795034663090970240564857975453949685518047643576164545955913770181150036926433375592378445818609203381218574348337368560276330091497373077191884069782996413318299846930092253266366402242154971068899388878253990806724259861826693964029737465741479628817891264667260679321222925782046427537675389552606914960852494279345788401353707188661417650966130166183610823061166603572647170247276050006018394297045104553423502136288554973687507910341556532699527603637809445578691599348736942521559522246001610106702865941585686538193287575901274398981041618807993750845608286717499541542276191315694489255684955520534727270284490778038473561392474567107650650411284365821937244680340626791906610822462835729555630707259502640917310614840460423547441249893120253834155942285017724166385105213907325846647268897424618221197897115073631243607886591219583601206207607076288385586184613667324228401007628363707578497063949007366114121752797903888310923915520470350617854953884921821950572951140627574081912178498901164915883106675216648449153402410923290585669474680916631030726849030060587850712229705411855925177943924617876263084851046971979489756706089282232816313583621797220647131277706601312419253926782494602304589652903281653429953986881327232591217144415604708356920187941905085171187904391953999019540397705546285710990296242662006255400757561838817261971397591686576264643363232453571876472025376936841004368720488998019919091732727547279275418967626348624292702984536808894695020376776389953472650100140471062553517661771486005204056096335808160112672775595432647691904742034956071049022547094317896194377059571704082806587432526373135794933060270261974110253367751740624065372988273466539802843938065747054547976226183567494193858856696759457919648164843935863341767170260092079067465147504081505120732394257371900705952052505346894962775664760438240339486195295501358965089133006595957431117791349808453957484290558513315255477653276693089557224716103584195872025751213004954364903508211630923024388946158340927331018334540026090331852554884185455935120726230450833154756034251699514338980034440020371788324048926570721395580266795838502675260580751290148397490600127890083170576346192520124950371570652022378993992567611902062169101236514566771793916424785612417373780430888250112324525742088007703925130729483419516241182756160904602675571003844283573211993969165224774161588488337145645433641098853790216000202193952166369102630917991679286228113348100287921718160124124211262210546198349101586870207970602911124139049993556534908156160591681266610573161498665447085042164522098433782578519483034688782940552941881761840474959401069176579114919142542162809205281126717426513575912769423495849724783184789613466555789917747259016837431692229677473060490346333107756260956202853715640040437834148954153774484290065628223707200959419201628452990155695359331802603869126632489932935772037663995380578014583446290137160706908952365110611647405908072788544084390175381845742335047218127590637471222627778230342742023042402468028584923038063875316230115306449757545058001169868817730077526223934057224542390440378762154515341529908458001834335044147915443336253075073862032321144915204741010204330104838376242921846953549154585435731294455992273641127584145914934066185521394831687948207249890598284230756030555737847731097829043214066451741182943024578452305150914995406141018290389335028158004838459428953761302595844509173919006665406266923588652094697585790758666546975820761709655799979610727148339535263091973476963240327881135910362282836405943702562211660628560116618159015495601863152021214904517055089885987886138916277511993437572067238508010210421415624760996247115540884474744759808138873764414390420212479890086111511928711261432590996416173752159053991309713315508041340899043772947289019685942005120517844251317036934623736145549124665627853761877899910683862520040875886475817108218779586251617342093282387073729587598234677021830177744112077052004569124486386627828450867050020218699030382413543088515405620706834434773709806056487152899025575715789306653288928723443943747809419587753340789418432345938676637056067373649195816247556895623476615115938989177139501419111333571130168198826238080689776983302139696732696341822694837902259628806256174082884960708634139671423519211480660426718581807450888489370678059486913795265517225765950171590889386899804843895384286655526623895508402004471562180162349622749438464235928352498726716995162344607144843387266284473626535905092773707648104062443889509733364467740393045747537719941673732543855496361179858918138525434087671577364537356377369420172309214247021809118066516164060676378997195599094328350973639192164161112989011057917026565744609011889941093023379204093275786860360762181415557079531374029771415745840430113941356416194602229270992760910401609138489289090001038008500567284053457521304684646879004608605585934544762754401445627280861760569212591184048750562569611824182367017675529031023647826534155068936108985612835909086532678245703595393832625175442353625898675346182218804644434432429036785698121527176728137610162163625850230702236195293176919782710440493710640259634711852502732758365015374692136611892211239907536951657871799818927022030803458976194957067054262409269250771635305576533883008053363163238011915733470101333545215989995374149771225724723867639586691216945539427056364357408087976730673016930118336969194475049676388982213012188168824290456953654929969703036288697430519343694596424594689021668059169488734950591668465431550945620256896629948009827082822378735146038171677141608829778746414012869538573687122886603277919765863536994254893130313973407753095335784663954397864657712204032737817781169269912465935832629146862913777829229986789474969873843901259222556283615857410147204132379805934752200989368997335044597053072726328252784752984990157749696371677473564034853045304733599926716610330075872006095981424106870321045235930560598706428128581240020391296749450683863828447469425691854723832021098121822297849896840237944178202277061421057294338872090345057199001978612264577613170061379408102231031676553157177924977111662761248496085853190477185976604865543769621247837621511583273253115864681000949971956059585305124276146738933056131006669451100559660378786778747257199718060305039410115679060632833244038692846409326178268375091440159667176620409073768107877522247340049873811550953690234278170408621615017866096686897878103235932850721958886037294606362933017200590279167670002603619650790709988162608633383657130687346818308640698028510886890762527296614851074061329286751680123249769834907435823502282247512338514676801291835552836095594207563540554762287196430709906213894176589378137608587358362760810234905871310164158448349387838817124356095041280173154483275120048056848973060685217891216736554888587584863383286055419972569043920402223002776839062118978083563465959488682004455708019008162221497003055692356069932050754483792416756852488511988459457519031778194809646453147667401090369702929858865717314091975804485960457976271483869010408321846143247730168756442493449700982597818645360135410486005268684719994475388060310610321140049624111819394689277232527161367739435703006980836020849095640197358028064292875371489568252632796454864402544184278448957121443073798158862247205769650756953671078481165668115304998257962346344834892282105735741962449354407661691676367350909056435807016713005202858811630313036170377865776919238724635404406390557622720735829353083042020023334373405875606534145816135482539907582505839800334400980108394817946352785269866400379087887973103485577318489327664535117027883960774211365995011458152606729285067655638317786189084160520902995654600047317476186734515940596337461438041801716559859079311503215832650338550774044385334360311106447109110367512179351268816050562223280898802690662885845582842880070880932319410343424456245238868539271783137957666885154981488138267416057138786795486783327107688411864981815888873188064444639648866119776557450993471931160593873782579491804866042483105661038533029299111671477032558024684486649246964659854253359442063136506920321379958425093895675256606385363441182465983786875609585004877644488970609064891769092092809992463563142117189921221494117718621941127724650341464021188831107915314539557087437364314341188728788775377757671027126503626219293856182949701751737431022932269552386691721763489107055336614449122478999243531459646787083169300999997229463562875876153390018044719671312030603214794043959246333792852707123330488889295008741359855533658040257692626832065373575306111508360122899790765987902846166523112554843955013330285307433583103108678661251491241530444954617981650475477569261592004235048804181681012968223214970357860623007374396098382856560508197254225901463627077595758450141580181965821383423897048737004149065936838482572099849244778536643634850494967448962781150427728701187341449023404508512766155411233239223098379304922576228183071755226856312939950926823496484231549486720422211956430506337318450813716386378032209247685207171210631800709664062369490947414087970421907472580266690342470291402152460593636260750802955705500755538240876590930156266895273080840878592180662215227760587363539681863267648539232775015190673454807059128547239795106505053324356321868580829659882020642212910843484411783490442177164719297724119199393038920419430453451200421245838162433557243828998277157427382843553368662240758254322992172500700195770070456907590316452153065365551543243599278334093279293583908314995027214100687129330798119144640462287368151028195798100860836165228380165583389691289047560022180614383334521138563723702076461197724591988360134856341272703759672043306181795992935683585215687013438457308723070762509276082489925697964384703098950218815599985066566654986186464812996888244242413781465722814868659639699992561047974979654109298978455463557514591156785805955163981455661258139427867132627409485542751481288527024706796308961830790452766313721258679239724166902757033712871336572435538469903063018260373088604361844962606082330009703674402710186949685511317275450228588716295367567343317721552695280175149798934762492783051370319419786432025587556168849698896072332417969483764863274130096349951206946511654788434584144988606229059107037156576062103103071617254808022690728407998968588069261101885424104726059792998561375034269613455386018987389085655642153136458312610949600245971729924609343139162874079994901623153922701052414632112765312698881402071944195598455297838887377774148017617901992823480617719129315023833874924398016351880140637029746714659077959567435827241333798259274500492297978670515889219233912827647575002726692157256582332903203146542377511986176411584813708022004207166959372068762291820472416678441522129647381023590011405885386005238669163866768266349866058867237465485316053848355868364643260358317982210161408885658154349122041523423520195131220833412434365318676910068403528519243255706513843633663106595341483319586442163721445665015258344939734591345131239754562036596482722213038179363223153732718965366456799264655260411233976968802809070189590426556565940381546083593610427343017648056544312836284582138800411928707220913669681764744179391347841367810076473311468951484154457046464586603789133559228968554714299800626786337241001838224894819534988825407015978351055602346053085074241756802698695627699928167680703047621138687455373630510868302288102635398562018183558401145275005698373708303749002498581778342974422535798649863869000014126300302998059249746439861706643225275610399344084905859448418917511698888171195231540748701434298595787562062266449584429325694135815149984860243636033712227791033944935076201766246839050794305258050362622318648292107491391596873157973318688461158826016793014338550951483640419021349074699362373372570372986104991176703430714956163637523932480359775233674898058784028520540250359637615454097152121712712998961526439252796477967316090286245686083520874265148009443194974080283258472080884665038660130842640983481193628386998180876979077999929348301636631637331676959747860836434081747007860769122898419920879475278440939915587717790956458093965503994484248737073265980429972461644864633134237805915361291342998189901723688335238217500111158610892521435791593037051914090467643758928225293745939555271982025175774197470514389705811147321454370393678306709073985872573581626974008463350951846217817950515497191771374187105644412151968980302062098804415381171513291306068506429740640690836310650460328235789481004072306016789571709374547356350102067774625241515694822944275895855933144242401755238941992904078186237266399545434334313796559655380274335272724736249473880913998764370897381820248333742716427040602120805216146980484478949963861236649551819745823734956385236019871571451407511944530773686465924624713066996593274328551600947278985254939390879942944706924262571791464100692985666886987704792197451442596450102958294203981514042281362499474263838272316138429623440489196464928648962335022734940934753654760278359351342849079635500318810152233410383194436721760074575393324394635838476430149761023572684168551871221392911051967662160939893067799995012249961912452960197185718973386604305097976171164171418508336783631469726440201034714206624974394876038356171632780636246484229719856878322165223879228479960312155923997619035505004512146379768232905848608829768579288864505986073794279905366380197800687897050022787495644269061506435401477674894104432568790112464792069406868111469174519198757953637116994400211685547932206600956740837879839956085365210762627780691119532139092803956030897240435971028541887618812542703214694894239950652703606006275430047994829252831531289723787985120415922709170486378804627571613406312813370062342777786985373907942443431565014467076156398325736570471108707173443684398511246118732129912290779697754225352364828386415191918163769053745849254622388296408023275729146260863540333472177509019833560364658892483720708661042471612156382259707189625323667840682310312533708456268514898617196788732238354123383305255343316614783138648202629151151530657681914939174286229117270624767399548884238862354192495911948039117318476795682029643211965323476176963723529202224719132028718514383305969833448550538820945600863819006484698902006656563790025822325069058685239228811902773538158257923726749538685144577455527090816835104984599140170200184911116233734404340034654865499758223981920881360087600824706379894781318321601197979989306208480174339933788734848571533703531430606557563299998086462616803953723634355790383692385297527801315318572552860646001392912010761295191049534873317813915068331446646936548199588016953856044034552386258956561779368101916752282150678450040421358089679256933124669399133740678064192870535904383217110823822702931618813752458492515860349205016288500661129694783720296891025890317173589531520033587542277295873854783764050869544049990125637910489525041417049853339612280919433904492320798560164555893015412784093095578299115996716410058656560648008383645720088297696935245797708504102140171043741148439377111953731007338448472661981591500317498760631908982850222712276851624123664856550851641795424464563240539438197289885777131831213736558893248947957917027909264747078623950637811400076082204144043255415255986095730134822300497427391945944532156608006387680068564780749929525334275174633544568534332035056561342556021506166054853708404546345123102374033042441150645212086663899817529253733815169572192879946443511512525691098504697862877141843215952162534592374200429339163619733195795148864996813031586996573803609154443769287127785960380359072009876780311850996794287980557417279633407001104260311135319248844955343248832621407761156563561530108943428169563055254431084006378106984715750864112691379174080210978444076381007716344852621536839417598264641852532643548638131818830281374767191420383096754017697918334593671664442629014590080437519423952414565528679856186223907451111292379942438468356244814251906536040953459359283687116527841127743546600477085481804449159948834098826731766675759851568562093450951156166763277220160306957739799731100067223076136042956775424729002264972587975243978858293006389385305338189435679594553227383655079242360823829513428647880669507080323645094168686275142068974663645277211024918500497498539755269240118919456563066441086150676047989178864657497819711258193508059387972153332695098360135897111786129640031734700807302555664185379422924940946990408647509256276212252760499553701084391121884324474832236159383846772476011001897124963911777939810506695462273427176373014344497633875257057409248729365094321155570859471114358719975967451185024722738241739390493830900854515661020782916456869913079961206668714876756623740136370388951461156109011113256052483029627856537442295507599464006885246885317103118488886974363968470608480584747473431374823684111064904512665926809801110423719828634660138005522507979612271394336107956364363078326682287613666392539758862683653426069753581400349901402365876734705772704121651446993636827825834646881094412428372994429164961095901450795735723679221907641520451186650291884023735473079528949575025555926317102313306863463054547270753545987608375749703556965324194834794310231736260758242781432962076467415056573341284482221402800636445280106491004636607088443977057299174281800690893128148199372981671993940400626517772778070658348998600910941655692897897877335090917997065421436753040197082513420636671616468413047301839919805010386914961602410786679428622337677286314368525763182427184765690682300243256489493096603022045673001017275765179756559073959695631281775243561668298298495891042924561851394515825636452395109822530371372817323585983350934682928530120563419453832085551985068322718068389466657845010311920576854019184868021623102361727112369544100419776902179834855746141287403946052924581441958032809159230384416440370360118763149399863710481071937531376398013233071619668612757817584227438764725122538938787355568377318356537067328819700285200931094763077455983594000968468666629621254768200397704769618311004914711772403600615787154137583687961191568407131234255135196686616547537717986713126464474509108500596814410198048314336033705162978406458666965157454720185972300438336056185901261251095397499525966418923816611686055609820027113152435362134570685526205596442300097515082643131837024180260629531557115652763190859509231586989445855263938845353445524428193751612227337199634750356454500551200555893176214953473217713135966755217490284685299784556369204136797036019177591709156825476110650360354659288971323226600830832306709071537324145327666074540193821940565234793779373489312419568584342356443671723646887955617733391633317453275023115372078179167143257250708737900134928615104928710734142253500207308211900131919286550391362400885551475334345484318519033955998416910108041373715599617665139808834068087870569941696127219047987605365890313816485714618098299191344588583873737449169739922120294699344395511707060557928826643036259641766011739459925281102027520585504855365834585470464596908204772695343941439712998617402518541842045424400085845281431894970258858847763476779961144304226245048966129637986766984071383642341767053531363728848814653513910690534069956665118691144268348434629001543218355610476279914171743445462716341125802239843069926631165118767093420499863118961987479479272068819195140869102729700341082484858533638972228136837084161973615720613472964658441569387353600271984918237429095493541064611142998126349481330225339099322162887153156394573411024012736344123094372185348287685769765713412069053446828801012665114792041925352498300366397478408502719550493910316462762880932580767045866986290207148730767770070645631269911258738677124189297640742756773387363016245870960051053216590028502846565249697883065135151996560185811805684902743954224482339272313676265854773785313262630096297682399471916623901635967183362571295445235686215252669846152127125102556587890925387667186856735110289759093107338660756440027780849573250476120151600753755584023926046182155537006386811391267786945800091206462857677394220807218356465179948276369826413033601747353763283291679100718523283475561821599049480791879321762079673078540657724944346331867620596672282122763521009170069598906402094809654709758079843003699275302136406372506303376632082207330741942814550466804487047270786360536279861278103885015003535108887551282147056462164695048018375314656916551725125670101835752388612998363112291415082261105434272560502867847624450262994008631196415491185352407861719087701491798645602143194024100490217948524774050196556313847151795088912996865636967984604205047471544981503431918521877291179378132293401728894699454521503525449607541524870814270407045091657919609875704789702868715828142976086493203500978481257736020682558951825436662626933061430046184224810615815159975137802925768875179349434415841731421667931126271308781300825324046638936291322351771354488731940592973541514575972685166363637327994591632567883829642924814626756179401242619508646329795931401128610005271182602022536953948506335883857852872061640923161404923789599364853205153206310299290819804158652501572566865473549372386761649912544541345891623842470508841939551205128983023298822522621213698286886096339270070220363097807208054834469812462307032494627421335406582939926217376964400372886048739100453370916191496013670152401087965948806337571825098212409193689487641432272136896738719479415505597668685435220037667300551331129379617945898339368439994976625685901070185599501237528597989460329722962581714002482207453613881274010797963960390156712847892603582581106132474267261547539979904425631568674023858243558378945636933845347052186547193837975111433908790462851138448653169082678773341238399183363401484179882801243706576403857857271767734730546691877038702166953940114820085148761962225085208920239402771445356380469522316019664726274475459839596451475314109769778988407837289764299865358770236653197238880578388097198011533643058049047446808030763535924579596449370053242503790393308037140723772457846365805857766448539781371419033688771231112131721785987188623937315155128980123814717062413433417816072211769250184330989969204519468650950213653195270267027279926647464376093823768833016860083107659146065634113390794166424712269158997314569264632588048158556390034283425993366200129436206105288038856480161047056405447541210633901869431327181226446235608623295572529019740263841710188168409475236877557292484363618112868479368989592321755035028230193177850460312994536734432844458468447010643652856715804693409912867942705744093051427936832537715674063258621217183132721896332254902992052930405475694526430098063085321952337175637335379490972807249240934912290094514834799985925444982447910847606416760460471579360604022365388552244920848184248637901277521861279462623568919018213245441821326186100087986519002366631740933887267218372885673490130666922177143032536789156747080327696937973104701489351337804863301398782548877529176159042602271905410137834538343885407214406854092768904453792027171392659724424162445211542328772215802332321763741609525542668221536332341616393498017788925124368512252066239702113415187137393967001585268022231869774386158687111326627333096363222939899601493020342177028375473473488213647224228367006622109412512170913306328112938324111074076666767262204454606282360618725571641578874886093873165308550675781983750383692521255480167162141900407315815180935583194167586451166767589383738469569966138759431793119688911737702496723096553991340751850718061422513940655020239684536532343459701892262948317520382674725873581167207848859869981741813623458817672262874869348481545590744379147855571336048960434204859331923653660574970458550658699821543688312202022121850094304287779825268005322648549208593113321895113788437086330311887367873457021698518132326202675718458918987443118120625474352073245493317160817633574404429947312617222313504221520623085594737468819051484083997002306733519140723985760512844381683594425498849459172997065631297828989890433853823771810315509369617518445740443810521206533793793562000690214627899974643955602920333420434976137520883947447552853332477844785491637825414124188083784743071505723627110386602850576069392757919959740424111354644570821850998904861801384856371249268204293490643441008573384780808057275274889762459297537398679542801832373243895933148518889171294286996917936222408210575856956956316881942359316301257947733973142465507477509343089169784762236916536508834916393322707010139223477891897007136410147778769514863149651251061146281680397074913986249920913537648916467047564661630333510381824054064938347817224943398070162140976559259410894306918996509553168254204182924023037059489091846503591073473934010218904519639660165797887710543300240433727662441129292516050613009827472322292415668131715701740092901003936423253772847902664195382999295817044641069484490742312849362209895670024440211667502293175098496026362121844909554197475709838061212217253281585451201104335851088103693981763529611170343686173865113074469094589946249955901245950288750067401161227560461854192528559888054936577564763045528067522421249841215433168132713763396735499200858039308121466461236249110638730075949210165299364282900527401226046881258102806973644603712639798618388976118693408717593212534621874694450800231704847761967479783734494370013947772081069573825880371497286828645786901363340433667751585655064357467713083864725621177285278603401805164249351194453935307427866932298889494803042652994576280665346147281525499081448906006390817673937000815431242648878789174863256600523807771925687106764542895645650039332134013641709520744230736042052367157517378486068414531631195207256944763543189836328227894647659509367435089240737393441098680894045157223234838122634440219520049693169607975792793314121007009149176657406612428630960215770145633848501879947899924081400600980638773849482619096258351205288550807048119653505462283431109238342547236719317428157654364937453732850473640771307241009407467491266419967403147124842652415425406562570829382671594881695394958063282671926387444132826540946837931628744410539698847422032223332795176676553859572319261526291656252385136384639767176102186032793922139740881898049122936273339307510515853644939974272827438535415800342153724452289145494580917290738840323434344435039182914431542591391874509274435727389213177984111211130063095833970304295033945943749292104334113993118746615739342464095921627430452879555492818088934796319728359894856237691843367493415208186704598635847240503672577979300933087197608986803671213277045093603850071896840120423518038359371707962718424573692264594471738257869550493332367517883356006904044895759476757116818693044595124411420159651648753213350267759109219925958362646321553077747530537951837149294387494771792839667588746844345036224594854048905219842892255161972728087133811521775903780144972861485052235664921968959291854493836287391040702183023629301870490981087639137192020528544137074096922437017474772611054591912054295567796549347537385020804796931841642236842674297716815293258285219923517975043175979599775600519891118344855178833016784411316704431573477495504767085101510771185232848620168055567867433282170724538270788429797650807870282054959569352090325462436984056923198843753214267759155776015961842372429080043739632852091690476430127519120248021747153368580464980491769657788728192942952702751728086578821701104092626441866145605855190185081069457693413305477714359603978274139828397818765609918024902968652714411272598735017658961195670000379600418009704215726731040086687385145836963724369731266364765892545841873065542166050298442792805622732405940659642387894526883932161470068503290986592492822596583497768763879867264599180072435392269304209420058627717891007671488357846196426659222744240664993644644497893073377591377497068394913874513523962487636006384216399934416154862415205808850162799616211406938268000254223848483132726148186944526041674997615382787017338450861477047666037464084603243389645627049482397543445623363934336894501600517718644553690332401812690733997864659172658248719926173500135408493301833821819673508869051790605558509276872317159311924994141055908621672142483682350794142334676631582056311494633243584965761052897889098236294928428605723983099383168147012956027399718627782801858671174790007006821808578837282831106661015754373222491294214891958889193133293982064551798650859794969276728939017774461606110405245837507677569846832478197118251770079104247166735482521852987268336797255457244532118910731366853172466133164941544067058176164259893396680114048152888194536145832960325964396083575915666381133317653703730374938212683560430512295286013137830546626574795431971639919761769274429885592811919647523486241862878743867617301587702075397004365400809276099477158187816529948063275509792188365913285622062803111045422646907911145502280751361891722325248598032292753321876855133684395840732735084543196042916975060682400503313874649123421015269135253845763749267643446329581221463818824235031464207576668106298129535430464667134561185578278162980395333529195460185153135405459150955932335419712116325872672110216498130003471710332380829529063591967008936623412249690087522959465116677021185630401149670456916060459804094807639590279913392017634673738824511827519484617866398447334055805231542408895169069002105529130750146643325452903509874010295780528447295141664604982918420817030282116590947659033423189921141026638182285999663799071624190850048723650769620340880110438857320175390144584627886797951746172303259800420520000750946788728646316916308791663536283765030399956144703905090833494046457104559594916235444789542647569167436479964720320682176809722605175187783774489291821503528891180128036685874294816630729116666707650005865312783078589122019839898500513431817903683048640771731749680859361549440723327686981183803100312995674210739774313389808253077669209224690748006110822510084705752359666276088301358945224906212362610461852688677887160052147088538827039325558016189734461196241782548281316755826715651414594052284475471590985607642077837744918483591698276620393057353084226351797451951617989135315992528876872601290101539247904787166114567588503742166571915208596216486590015876315050282546426259787124687180887444885603773279178773666812823850183787647223029973346222478599014476771079724081820368743644021365942533780573539008263133929256624015212055774116653338614285942659468817924905417020587935942952695344427121818648074957725672021959805687185246656654843640480143557226858490852194927525703274962166584851098512905586723593258649514588492176372800755357149894411104158384436966538369353080731048199782418048429141021538165537342539397217886186055182469706182590898642335606149506230912704961815749550690446270231927742180854897698885346427373003195200521557196933330806010127358511526437317111281114521440807655956876412547969244567484769397177616407950118466123210498664058966855801616433946596802719695457253336197460262462442985455039599543598887603032397366205217171535268059248581516671784624530121306276844936521634046372477536734133028050154138517840086803523451619735033250155500636121619390997973493278084625069595447406374688509003761844701980664204337161817760000858854759410166195344833514786131484242774939065408786961154075677052995959913924745194420283486194884646766430724819618825443047757379141274947729690428697355032223966281879211937659743559608226641595515157798999105050549782592358917408695940417426246788185092879111697008057333088699851398377776303774623790552585484302144430016840851635091334290853705961708962329700624822148866994032889933667377152319049970933797126659247890454563927836210072565811215538130206037596115258676133928141182245526260569444344706952450303515613013410888736432989525818334779993189568925847269696811920289071964304333241955900219013145977791092362319193940720946993297027723304131258714488025634699785533540585947088067988024694524403569004228453107255334986760014953050082224760017096361595286147729517254514384705088200622353851597074936034916859835431036397000018538378886596440617793297215418616345704612735013683223176276862730586973536171992497884034628140978739686177549277770779873193800813325199524661960363430339625164706691349601359963118941062171483978310805495534544835202221686129426826777232570728723191192703741190252408483892351797948593096224424056549394004670253893006603999867413462790063157426461483114600992974033347067929137107360452577331807188050550574720143459153100099884086546836973004597841260091765702033411757817864860942196631205777125662258441773132550755355012175096600133394819027716206671767533652776614901518807495382015543152379131499663702347330373036580273920155638400061235412314882990323562686618792898719180121163574056578483387392995910432086785553954242602572040684175004575411683078491295975458764530207043187770867514984807319325346133038821285485701661949077607023908101448951730316150215761052912972851047555183648174310708592953201133175528486815270466818285898057612991712658909289564861066999345242581670045999299101335406213590352256517540424395855515437431376308679397843300138911381910931074867479443471052758753976188257995376914333549063024726989309755906509833926015144596970651478253976023405127283475907303402691873160881248953744494350113507317927906101071024692626421148032584104158704089542646020397097047713272947975814706703010887708051213182643105730791073848349169676476646173096677239005847715485013884868086244015539802695978060729745675916174638237426300028966640150940350171305984073720922768103744400118787886128850526258327509019224499248073960626004448909569147419787791558657463141135462778903927610418958184062070683947106064702684083460459718584506816606359165133440080373671009125057474940254749499435977848633910328334757199772072225504729326635131540434850066059148991485786039225867056715629424388900267972321026399372352360030232896871067916194344097837485441736120197119848009025388212542506310721592433579422067441594704478745783576099451090682770387133532856539505997210192119527023660148855190414353029511412631809343871236743838517954845941796958986011461697761750450438573322862844851377639227560047297647744977446271472976674750142786216605336360018466963645596240976294926955522622334058267940532196829723842063792026097077701233689985043348439565174841547707133608281616454934657290383878060374129825717105115598528259419761066498879639212896336730791426146312664256164022870866452316431239726625089382831801287913397639412643529112929409300488035769235128573305663269752911489403582278781362344689612971840749168836361259377071422737439641212915532150629461450399082459952888538343260115158269440313645474798914401733912470424226443059853200257762813143949645341730344822858799703221348048163588361650165752080760277686988961309352153458469244083147501606923084925855000368963739655252398067298536493504302316803813059420355689809854790330934883776619264245996226904488107349530327296365723012215841704217253435284549447497726629989145423152256900466751271260345023077840905391733066675307120626157931962307801588165046604748118834578901734739998588445613286326590506241869659015278689593112933390621347694219832221949642111157362324710034472440698735904074972066838433009854287398876669961240650524515132686678556420367786279367505616295913642237859351709225320597726415645373320615309010423260301006472203074768207205626808292140076703245807822463541728463394727522649620947592825030362902221755927910846472602705374670839707410495416882712219289992609353607547913502843835639889580715707211621114824145856922390104759351810966895810316852515775206163395536395852418087385208294164617745732873452372503675885868745664395941300966952702521264696792359257493219256548994272660349561473986665864082387637973612957193055778859613450792359062953737515396273060820227329317430610684357365182219942939294739634492285468248909551545660427122150289278882015585008029839616333689599502701176804080324934821354194067703030806387454634338094562883562473169296991847402846522399030405720023882626579593584127010338765309173174798262769040883048986829585283901790167130718732987584598724057180704232909797941133807398207653514551928495997173140542183517248299302998134306924758671743814102257926318239703174753770142661021009468270901318339117879988107071623535660670975769649834064235181850912564257154709731182933901106976915952642023548909022063117005815388857146166968363006125178786730571816901121092504351054620041613826298277289419652551478102522284857092966588198815833041213748993935569901118624520316458423131159809603475138776163046611670870153892093521149627045625536546947961100343052332639619048625042259042383574929138306934275623531189960776688841880649568713029391913978139621173030701804462634364736594475323708698085113305607998215173111783940540568111559965828074406527837260924061330759109663525603768978238201961265537076805011978342541994685895723537189999281404444003759180487160067703074760927486452332771153908584069198838708028733833454627144624070927715281120649512812649997442740441051990775685232926644766812464928064090216930869421862987489208919689246805364969792575191259225663881379624672797465173542446062706867808194240357487245564547230899570077880923603201636570662199688276952534992544622147918488154997118142965563006523785672915526742454273599326820777955394115253882252977315644779141391545741728531027865022307012806426424999016062353270596930089681745778704459018297217432547830019148002359842047331529852546905447848185627686457171951659976630807233577765191920100817205830645824848710862454477072082535592835093627243714199823034138473530370454206067322245598267248885352135253534558665635594624898284138033177793766459324697448111535621741993866887682125092422159368933865863868376414930165938749910138096737880371131185993214615401963145115793803230016152853784266086925255316176795212880182307998762203121053598635900427709234361627189693619894628842283893636468208004522880229473885690898263348497900985223930071771163181351404874602599146503422083585132891509497427091545972615122746929582690982943260156573237541460818836216796728577045485861133384111531942914577164370673327877867232076558411878069735615113535236894113555869723139054096506733463102790386741915447501434037737968419542472394072929911129805762840124910323781260387077481818030363680937276203488919579091815948042057572371345019252256721493131404613787785838338391160609563528851466508333447516808675227359317782665977230598698575118531988848068259785966465941601437610996176296969124654721768344664881470994339845811761566879833794325162078274541402598610754908877996135628696459972447716826006471558789325352386596125761620247828338753279604024044551520971177613069348976195612020945746279635467427784794442962449259505375507966264698144387802657483867839901678932364083325864009167876905111971030954903495540910132283932500266743185151724156959812704926589628872516436329167083301526272628771625223519031617632943763288896837773877562847010888245220443831048546384570394229974232002873417096792193177815061911643969454321675023178290994136947010922283507123076349840273602241678908867202222050057608580983333420598724668449876716290931792417573645980592009319026688704157540892262506461675993786677681023382297168331997661316369662915212521312895960267543405785321655720206837583747974715096881196616500532133054541823849031858534498794777661016620453183196777980065783646773204509704904477042711207254548526407124005164540678323307350175598841354697473163879270258043291879672721212225450458668711539461088264313521576064361905656006080588564881784870911678109897775284308428592287790504114370839842899734253629564486654672953824171675662713495728863915745246491586273229360437888098241805463413420812982665854706333164379314197818439093605158795462635269123182510320419820163277718565272856432792391982890413403646808153149389274427743275986464122814227576378411344204987396121871864351737009517439853736280027320698950695268413202593269396814601413944983489347167124486361929345684493584035248796440246482391375359143752512007403098064500235798912917213869119441707074711392816501436616700823102261876190355741614716905255507557180477994100516582748110634334243043433295207994697007999103108664431378111396684626838834057706948194693037167266332554422198024426713006532459272319887290863762986614824792173491474545590847383971496583906815258272006950205761421320084642072620713932289330789793034776072305531639488969246695539756059341917363873955074408037292740998116698778676404752062835778043017599588840813819828714421557098911394336851451333083985738703527068474851726087665003702066211377635151853452726832751922839729735610661193468989223367497772070038286608419153747871346802610961386938041111181993100796898175695736039308909119726792683257027313755414318757866864260436345778326282440315757714836583019418222518229325703656016758633363006608955744444269943465988673226092372261151561279037642496924479329180666536791930696693212828297782227461506835967032132238551583651620084245575073340939644702898505925756727753242585874750830170282225486835353126404866821734761419267248140513953345604695303032502177688790992328998673498090400395786084730511689180378697022638088127156346755034348660644285774894355136665981838164678009363258193212342078270097111332755652351075987743369775727659632277581236506213791845672285539873821775972817350237965446624738742462682589082003489186534332818935411701547004688096379876073366998117754192011492854601083454696323650389165211888712542734306419124031065968418380390707091206607445329803643828003511173100036285966244003202590502811168687913910411163588367750089073429839742778671650564377120072461588571641339454227093652931271120684817142386363690870327370609972024296086438130984104344830829554722530644419145600703495407087401035976384271678345615326865437054119547043093246682243215566985420280861218508189724188728070589967486241290205126038883420140842441044318862388853312135650276900171563537208101850656394855472840849125789597813379681929204738183872072786658157300633791883143553067158492398325174034649521339702477060449541953204243961913842391258771141838293617949174533817642925698882169503751573316556191378658927245097655859790599277278081670679972915702255537097856402846091444322383346769970603642293634050440085035637129326561830853010648489253416962057445945961383690454185571687763030225267328321182879646820192722067380596546127045641128478808789290519892905036930249709040861138585030042891431352704774996608716009104972064148638007713852842155496608310300029118931893494929380201562217332347646523772144379975531772455451761460278670310763865887022718141039352873850494493716672037185563905714533250400203380301071448900616035097991995545835684973507869322621005072404466380731292170064188122845301213123811564697879150796693340114811452950896588307502049732161351389380371570765280447835685394922034314312001137857194564438581069561704096600862737497083051017202528805069863961003498573199625772028624005258258090197098910752237623825977818440196844955775970742560781352537750406413449682832066803971499006840444703265081682904038855873466222881072322629600464644917289401677956668925236111271914348689583422086630876604272471323722073240126644478245617852442923817579945986215065626701768437837449383931731127740445981691667572002226921493218278972160398161824257767587031567222138710237601445401333037472225660695862082903080957936202307207569782908997454944384495007473817627166185031740180813994236825868030495864086785736727884531876568405222815880908005708020564316168812824050624613007950337413868053046858805763213568183746542359977725897597346544426480490364054551038912544827361343991822697550255908619794291147865352510327015219723447655999629291149774533565991657106218272940030466056630598091236401020933062625572149822800549067073938002734594438773726510805079619326459910813876865673286372995480082583987925235285487448781396842458172310220676724665267550948656871942757550500430642535770229490267569435899052420572729847472718675280270127509796372003875453792190561212047612363059154597879587892213449832443500275553622102669305054834037186188567903277542361082803707655941952369232143240251480384473346049905100135640247554931241625843805229069618853713151573175295917326963007736010530036422610769411258380315825555198359053385112337049963587189786234386729133324800215179277446381590062073452864133904242932310722235667962787421213527700537170855128258169648058233686828772842930552014540778565964251924265662070817394784570521838265381758522948411144325098768590987595961274813216509171984147726950534246834333242968298310484984748963788666019705629253156527425537627414403980213546653568349768803886633188956604267693770146126110470126545090833804805460225750680218609001296668259888348379306775147520742025102473306197541859311419046840657237773491245948147944011327916983646556737425375430555795169011670659524353093375628863248058153539486566048386761679073984100567796623997804343580382706613673794243989828245423284525365056003736818587103500294485371040884029825939991768043034085248219265414575106715740370298613761879072136337533614442707451311780004078639388281404788379836271694422828449910500688253973001915905127732804694066004718395482427628827594391559186071254255564842331744308085339026588520016489260504625198510054782971262876424563736200580041309189027758354399131256125193763960855068909563738529313036079209283161004037334410265770929430383516132159201227680869974762915484883261304912557214138925349068932959281929610114815731934627801154283625171373483127355325356014150964745254326483860521144843689858203867706570034887782564362589031214384003960123296917104991095037634192285349662226584183814593605885618212304043035446426910244517176614069932527747791916355529982049754603489202288583421889612869776907772322849849073380316611755275267194088845037977604880611175353681045420377926911890142558024704192176115359713800474279548923841798482316433301395092957798563069354317890377797045436793595750212889141826531290852756349098936590998528197861020582656510458728116251725341935882975789871844127665677496302758266113946322376327206896125983036919681069571699615444014825742329080046198720069156848210054767556101004782173043899979867840183675065136003910807111476265835151622863348995428128522188989661068891007483129992214203424917996752846189060155092509347971996085064535200262848230863311084553168379261608305277933535700635512151489671965424923575861793448158614003473784534978067330184246045925640931915449876747521656509014904868115263053381909037458731199334556552177812651551410000959201115239351126282462049066004135196904842180446641501159798300117532381815333601365767048262888480516157818209335368265338438290341729456085710042218370153932191062301519041123460808837061799614843047783931550799310360417929436309213793360864285050713251048997247073982616810351405796209649680580384028295593744808304357501241771303773151756429143459678288430935164539587248844448026564258023572635728711546819593953787746761951205830937635907625285724356952537327448472326507482189326674434563960480569173766919658201922721813717398273943656077044795372014341109138199310096358429061039432666586157506526660000514584465382372007588182682844163538986613091988828510080950563832153657493962871207887846210376056268355541366757652734830400113548362754557572424270441747076349699842420248850975492316964302935612517686902932297282329175429812791905185937241437167575932802520469206738815802031701685316437792791715679565734312034755429723837708381494463723966264909856176449267897388771007283327171692931264365227858049733750009790401347334928435963565280137350197539796932317889959608100975246565342021649672349610757686822798922399901012880647146368089352902188455900735317785644173395601621686326329241985992250913066532433865136126649346428275255931194593953732560148370461188892092852185822561821487110145824046120212041361457673900952498950424386235905343366582875266124969187576821810522999681256544871798215499897562378484138205587800405537873808614664361399667631411959852379920947778819962471803331452491222524842141689815465773770341552495298379469356513687907540215553857007970509417519472454661577152692308107236803561855219941929767643626213522082023126943721208164607562961564043645395238494674666656767867990643612430771581810447743962758828010218873938883112390195784525634919600019853795803912457257952022102724408984130756586597142791076514694823392683111356410516847266217665617158528147329994022150979358713332832428717355272703356555518137131539289039621274138547469060773855111229465318297756478672064344743609461763955093295462241306425421004203045286838289017683116950451369383208200984664066417483927246309515915231016688503805343863307860284609183668430015992184325070804002644716335536416659617603042561480872914608817069618847613499867855989785236426908040759769190152164385651921790123516240195323135000923734639277935891199603529605724236733279216407433159031176204970109028195275580997825671074747868207629149893904821624791782624263540434533077277190560576824863836926520192069742725163721591199225716692157300930064343674674176048103409338870550655657642842817362968922822695172095924965277548416105512180178961979178135346073470994728752191155434834764281965849742454087668575899241403218169786245784420822481960497245692795470840940334595606749223256648395770767769558557074532347080243296625749173715674424814947549362817548197553348605813945825593297796116696728696510967472068607237986231932332579981400820328797880421284021995780797238287503050167431841695911239523177829621745794110478495567966619690470865073662921147752468284481109908635674128281671284182094475141306008405108465921583470917038995702052871573713694987008780527181768976844975311203172726407309399605822086161252548711246735922208990601733443676536630949614508067195742452594066222552088303470130193597960770418856002344147324889967590649072056586077575016929639715789364888835020561796531700303956803667784065262365851661480735293707427438454869768218173536034031116311856987040812101671769529451152499245494144965180408579650427202970028323828000063239030950372861975376485049741548142662189863929843598179571311607438875048919502199444071477348245566081489097901338333279176276650250668955714898574761774031744455656537207698777388266738944017423216182662885353513924323066966874770325224739962543544996374328397714165885154003276452599454678130130454315184618379767288099884478984844954791958080080261386402198462207268688724107292596014487470102915352280826085512043568281117221551769053179088994501475064291012587752838637839426506785768096893412308963195632089367656724852139151268019179260108682568895126602317750711132944688609433021280267207406858104541627895757606642778580568901468279725521205513028657005754270500475731564492254254905146716650578035680794461109659683105001650170419761747073994211401670314485139519418648373373156039598789196261007290639706191895006801840627066298273878718350337625987630042406143537716632683002901599028057241105101104492573676273221020755544583344229839676719944540827591701172677557031879485890378635341582395883568869666792239408525936789628647033037133891253172254326060903955483624373072150801267064681087195939206317660252149708992954875518980704372695890555087029697904116528681927837684292449450830056087849648173848350844181694845496850342110507612557477282175888065542174668399932601100950857250252328739636108264153908321197930279814746496574273793303248786702084171595594792435159290367172359013180149569077305366452306289459836632371652504200862971930595088386211137146469337496978938563240660530317878017336330467129585184731589279897832909990887252787305449017456618759975541285843779764642407385363365071058660348138987346312629692836402165045597618480125198647752335753246855277985511047180436581980267663542022946416341157030059317948468898677830187644842800969394960439626097946860889594021592099313308226898587557927598423188747145350120393617000145390337752083386481260225059024029708273792999628444902207288034794134951548555266893225931424512300245946111401142195654552477044835759585291138980821940436180312618468919622162554867923435558096215951296791431566665496716196289974537309894670326659330275909130037641426571175391748409369396002692676814082049775731798181533732476354840175632153113919233794917462899336053681119283093902154311377803789889232311314321842735583160469018435971266466533117313762981864968512834459290517366579982863734706896614604421237224353632398171639718155662210147720039709922699660559214681745665769747340535286288268145026411623032287021659286655858004209229766271041033528553916593909953208642235860651480872775655401294184895087573221194742472098956151643162467093999684557243415787040682363925384444461810357554669491484607856991500605828722099793476267485306254227391677361128167004981916479336313595228327865120589261393603285057094004298949747787632377263865724439259756816908194775936404398910441673347825759461453201967161095045928373783292133166709867780446974010852303355821506747355686089084835853435432225750721882885057589348301889986386165698616633837875760116803107582637056439969076097849361633337987221612757008046926543565015791760935304006008505605630818822279463682067167010128612384769967796464690215603689653541876041406389400107832544237734519398449101055024481841298758105874057079862326902819808346806891457041583198271200228021422060599583134160933488173088168769346353282913458874748936479486276214339640932809412498866829110348196790752361172968931273616560854519277874964787729203832912768922720202765592511387299273091927120510674128235037194430834179862040413828417341460077626216953974465648780755363033100765674439745053564159189433177615499482151922044073548359037891832542438052553644693150747691560793843875032213732948668430365402277588011983217411243213407963770584090621162247801992986055861628311195686170683783994949771264808910431049461531322550430376427142952319455789087069003100501912790929623686498039530383893942611110283231234581397735115467685475561035533526659169000250264606516018524074521623779011020343697839673627700560996095019418119091463487619346967404744428869878057281583852457975561513838337948256353548557540384729328686309179832534338268718799912873142178345480997367723465659678387999087683503858917473965460466362685189956412378874939600948394663807038124253411769834525020398592125843644295420731473424950338830847401116396502612423499759341912884523254578445959200028794802587155196528594683497762839966443909129088879071934794204862983176686575877048230486451454919100127373913589996277353792739347392099755856482331830595022064176502431027432594601184175606463379606483132433096784853888077593708435141451852184644023477564702943793526479867635695619233543343453505332488785610132427689658854474455916220909250724804068764234457685839644626116304968418767140069449126763224640178283306316193616852153092058693030515440497986763370808032829974040600447646978799365711946057180408892668857538984824433020250504375790669734864546762008415921887183559357827781934501048618571019424426734127144905087896289319928217814905047604927347836002302087343412323096305929527428131355640176387719607903809100161272427462120535705895459228893798748596538271109656460100872493726177830567926143037061851085067571296026405798491322909292167312003406221203660068716173037846603283983904452166810448907349072642018620376375087205691435388961282660239784664914233016478931034014935734567015591870524061716530791833301308084447065942047135793876571443573986691468154542018303903234752471990409017191746720017156167560972807108763082322955779712690601171647317149366739525097438688050923552168966849437432666878448833586081487204676430930569247030355672114549556214025457153488337715779937355765911290775695398491463970311963334286564716040118099918882563791974413194685897289635800873556291225276113515588578859939715859445487170598297681964317948817892595971390552129056131674912901089095094477738076608982479038505978431828067682043440910165169998087583787688961979610462222151321837265197851059277699278091233251812574567183973743182414149294896877610015376067423060699248120083215116749293725393167247237766357812317434211296284190884496590923726119714782562011921390471872213993043300059160117029948913678054806993720721835222791525697468323029239370233356788282831277948571713375983105339296047002814718547834553118041471638710079611810412916898323796162548758751259268684533822365010682049429961053019431489500962847391245988031427030064734831968503427798207375121856676657045305530260334991192716080597033229934653873482054329708900844283412682702252433031761153349350587695713934239123607966138183639712050992628527296836754208337097610010520410146352610855283973418182401075002625546205733046316413693681695392734598128768701855748002462172532272417847577489918761854588858804463343186733356866830039142016838305363566242681483404539635377719063471207224767929433058518783000372453735781243954927758538727302823298338093417571352000802153784782105336169317053007710916382122970444875381979327965672051553576344933611725799016932771823679111064471236325167556384675809312569953854237589878074185215331558932115589306012801580983996891876880112330694793474629184175989138905933012829944290896858243720308602276505512947235925008038221206315245892366964057943805415946841814414256953954671995641055720516814153666150895682025650711323434248125069690426670576199332134716890136181397479003727253369446534924888819778133196067891885492494829489480871920408449177345553712241617454246274691479067785273525967358365332644866197384647353032807187143881533141560164372275822645631631909874222322256231867554492512791907306399868557987027178978802527677514473081426002639266547511442060427522046598192309016941730519908241621142350565246502739864937956348083250369207835733078742375315960315556598831928449574778332851686638354838206434990041643216458739979894225467324263215185156683955327261383650129578667529814859585571242282662001052032652487658349131830872296881110902642582014804389085054533569349192065152002574971913765836888708309565895790082298609074568547972296362420235214660896019329422947740173279173031143025687846546767087440808822338948411772525412867503829566375202561129884567239246509564487738975985174829654449450826248511917107366236991701475072633010504985901187576722516246616490101734745199411513427939191198651371905021204423788914785025152216191130903227388351834603599805078792302950500020015391879513339249827649623446752038786058001692004110443832343025100430508989728889306168174725850606542514155520782022474105567390573460498778387845316851194081417409994954307223338267939446033171873785982110505170953650532703631988639139492378172177243767357096013087256514989470986897889820759869409251024797416671916099985786205629837406304112640947254789330497331445085600585971843039977531229075716580414374144910513143743759382491018490422136331654435461651115244134134319987528157035793426502816016000659795005993479555975225537763796365030377059619660421678806983623018280910350468259147107713660328579978030602725666899745696242154270850114549315927513642387281990847544220691383989141803028831509584009501104623362630317641446343159807878516615199089801103182619406874759978477523157414910369468057731954715330215290475440963327945831038131331751166419029982807183529829335975083252507382948658117030407974623003487701705197121276544713521859656285472713776505999900513981060535497958646651879768869497623642070875764867303611274500568110546717983986672129374848568528203343815452151712335276458940492010718747059590208990856720602878352464087287297849830084581722946655363917406830476929355979665635988780600915541731081744050287634244425479760710820395175274089508502419838922979589165692832292397279700591387698306090332415420938712291954186278754211256787550835745090965892178869344103296687503309428057195058117921239985791422426801791821539046635288330110726898158426350035422448463328034610795822937361617085013705412261138452086066017693181958200731007113105181307804040677507800863517887759969991138520232243231006602705443683431953667984176503273929078911861961239072864575595035143376860795126416985520190138728755257190887160183412285282316703727783216517170938682723686773085490919502508710074659324916049587455814659470231581806820582635151335271366143802958009702048886800493270419413267326177223652796843299480880227888500410939786948238758543940586103181496573938767869448731030815106323042831021010691048195329984065678699356780391129679261971227511200666826605594605078758385806900338638041092779683046132510096373533227856025296103080380472319261157433157872135094981770933734052392680077664987753051152815148773654894071330956007333188222653909621091879511248379952880596406136525827696503276281678110181656214452262951208424156286633392691165135070036683346633372714135675242931278635016816282676306728943716222947199921902450581023924028512094561481394048116924792985821536794002384502652238696897226424476580357635407094422732044342102405334392933867072747680735089556269205973754262296506629517308756588573028332403960879166426454477492383585910411847612183171521917397199004022152468714374114956295893140672850196511380889443278943049206136691723124328180856150999021111365654160141221804423068104530702734305906993060730314200243515306200638228006788745650417147994190715987108603172921848695289318910782738449956720438799518286279590476304748538423203339509469104624608826044100058292579457354704434490951111265129383562544968473542858016157734331592948149118210800851699526256544455218422320612350402684505896144766238938478156261203449909214896434634926885967571562047995186678144375848331150372762709547746937904880202793890967557898965401744988251416775331681889195014637565657140554321657735697211381796523864735635881527209399695987556081670170556610512933294614108548018413745609938356734475958504258081493472360883727988431478788997809504047463427854206301281049556596353075683507970044692718979930055776353560476578462187900530239240143795013374885371574769389435397015169699781639722795954325568856028221491850340649919196473440642574526348856985657451010567186588740561833784550940631302554833187151807583692593367671064553478048440216698142929814870492381342946597201554284129043972821919085691839363710244232364671924716020071076950185498006195811678077091224664687212287144206916675043514510959714273130409884207507736942251747092874673553887892911879900340441413639850081535077321279245459126225670528452258332832641412187642558288203385948340241272788068981900298666862913136471197359238980957682158517648058894477260308963358328100568374010793851856315820743238734922655313360041018044664571973233625833701108750767533156319142042293298513605472939539401510780401863516124112310027828314227908246481121611369701518549585223515045318028381341440368439436381752744828552364551087920714840136247966363810086345615917849200972404053271082235946542817674988517549988429896127417902692496172171446135476772614871370760123550217991578019897808558466558208824288153034840234179433646546952402059816475943567991837425973548017066468255850133205271483328377829949366564832285330393843926747946514390767354451029738096761840503495438913538211405281155036034116255596168146831536547261189552669109044984006649898073074587250631454258200834159263495473141361510560971321850030864872100731032358867539363147469384468377135511407604149568210792982604473916587857531863633953456146450508881598224075482456665170347105082572870888735511335071907730310062390006897971228683999878664500777378942359613588677415846269759598802728228051366420371640679517082677821420983228056870806846480225024446950911538164553265532055779685599022533238183540196977254142890276920952110362958359685979647131055169170856278447411016638760736635635411540825747129015669416933490673842632471244630084969838100143588065799232938100129967230207014567239532543002720353823148444763422163226418931792359589436491226080128550498347817302102002610172365011837992838684333581291348927716048276136590365876603958989622707099682098809165865163960871371422523203464516459972391027077563916331984905395042466989191813239609927626906000553151576875225327612450379992558711614367349582357534901481281146412839478020428041934289107721392421729929405772295238503086935978656617172033573379070686191217770853936208599304697934681845471517809116074628190805920606812141066322175546053049467289232366224922731285497341304244653753781306770256566565577043583109111746111703897411798652385493990799716938467323744346477556666528573012116788051950647194520736971978848019803867417752491467113885913219203281935976846070089772589234236693086749214935095200000205722443049350372016846192612723745466258508596936397659269723596820796314682201633570551821522125216849012051639414689480432572925247203771780814134990675968906208086581775176574656324817595214021695170085683283487934034038788311241763145350877103655921455203662454695945731075404370408355352242004837146451421967267005556367333835652540860632728957326122542416969523889901806533069497171460589196472865238282020666221269932910198877398700125978316829707944187890049893943755890168723261559520329752877630408761175853863765488512636752053475344518885810792776748262850593194563107221003379727763790067335816853821405445275891909208638788038617641298601817215393955570451900795946873017221800262037941206229730109419801646861848804090504528668261856221822057507418407943034942486130640931263171053903554394147299733275897755948469894166171397408914216706382199950012762326322940578648101790578352404899551496725562834989116154681234868797831399541468691282636142225025492896810546502645665700849504954943623869529951984525411090499359716216383012457164989539601906231785858566391307588123932832058337028994064821802177304369430615815509395405236666739825404148658750855142365803314608884255765744397904567064054050399225437364049746450453694921077372877903176707318790807488210880208269930187989090322521338825535707180253499877839508767073606587938894404562329877542219030444159503178026552978825949639643943725673390729069887954763619366019870513288146305164762880020667188944548233078089322190241340174819746411305628976940281258130433116625739783001244729794759945637535057114944488978748715427617133943594927846147818461018199152771578370758863202784897430286848758958034210481676259816340822795722389129148390229733455380067554399566288075474092180055537666376575424286287099207313495920519769913804346104784424846431460559514219298786545349658810175898720498583232900527730957355287304143208193411044663639305784949547593650284972702368283393543905537746754478870558910010110322497327821656736707392568209447559236889641858779422519642247448503152027020325498233353057603001527454195154139637160691396512205939150087234925316532811694163112129859568111303636451762315029304495140917012178909037142946760545233581050584074059451551191845696246677357294973151642020912645047182755410995482811575868872615221200233967837018806842565410088901070424154087407750897666625004950257334726633367583407974372318174657802698229502233158621859992331490934364745364602741943950859622355289072885302159050160813857002660127474017344933807480791867276471431282017163621609888505888151075299918436476073543701862344105721367880842898507579566904342484727058448721823412132970497613319542387136773482365779340410037767160108012584809028861805771615403458279128668821963192328401067267505584905517608124017759337661916839723958281539095799463193030565968068602297248158660153234972573654294661679082795171461750325240041648026225978869374065856100026620779484308640208678090707945491483857777907681595816271795385057634672732079694878193871956945550645592326879897322819013632794585352857057125254521058811810862305055716100751344915482069686140528811422698203892125329565697829763063321963128962235081705879925423981303599204420718668049764281147348832918622793314598391079686607673892423960186271549593214999985720619975000038350432832710368689823720232097287968976861423927728464437578514995495411004821199745017060702695358983534007495236265268443741434688604008639748091618421637314184311607105341304590091022845017265295785769576575977579509197503017256125189146792418873664445147360434730507617845777300875030818496510384331164555943596115232853778687480873144854321279764804048678259079156595260108761973009567260755158068758195674930388688723823623711028121198262143131811512540475732040796288477246899796777760837081814722371739116783390013620925694678184784201521411926776348591468681527862037981456591882096496249513504782252440441433325616692054222740066163008097403575415440505222539973991572477674033526396106784092838226520515493880273090769749869617649318229662140924393217997219599705524355688528545742387906283310313289377391218814638484055355481237432153468176568825681709271861856911147359970293679107692028614930708254408414827811299140539576084736771219055307772190316211566984776877955703848830033001675940601275010070992786215205813739966633423827621688366066205595582420819997219716084233514236883630931674769765571240470268112807546291191310770607709489877369131746329965550837832744893407048396715111212301480641100331151963925105797359952398678324473682639137506005202320327953072546278858659239893580920780362181003745939424491463006768264347701491548074226846821640424401386133644486171576450401191921115818756603339234847834972091374374910074724875454077016019314076627045827848677595231736652976061029391609862031269989194885063468818740640549035741504673255402052848013031610024462041195952004627234438192474872383544318497346164479618671697690505432375517022597793182016131490016968016291126279317733019223668227009517222688302065191769799733132072709998311388341725303872080639205997433856050904303289788295291831302576091727818185539850047575660282494615063103866174054158037941994645354491254335981001938195091923909234656491522680851095370921860214444100287277556222700006407372212730627075401746883354840932894930156210667909426540726319954529563286441572364824896168203965415963901290448364506238377399563425664998236014904561753007384048988518979756647824715961026959695385747233521369734876475852527781534319676092947257555618862217685335403556686458642985723127743464178966638078932718550729206709321476369424911311721935906584902734527124823962977720702887597204183893243377920119101174745426466372967807258646984236580986156351687376606831918273623056330405959247566902729097454021170192551555627364388385180610669120036307247534675108179877777121055772441115326221366666143485243906459133726281122386307605980197153151620518132180687751844197149340144758549116237960182087940633830753036835156785394019827917327448405226915528177233796744523108008061946250758992873123512269166123585098055286806311276621948057475340612301140316128061390947089378000947488219504629352032719339719254061009511312472104472879106259347650069069262879286216230348002488239316931121558822118424206151792656989182224509460414900479608051623711059972049768924495056111654457928641582790721895663493687165719291342948892247103001881188296899093218199286090380307630968052047185980834423489143632840079922110895542454842337047539136736263594944717318964732236870120355057584092310298827166141395882525876698684019050698446205420576776214735455528194381483547889592410608667771714160232618025526168382810266543921522057899841653425772384614648883958181520374138214069752422884707176603649533563082932463925577151698446118567389464109975580239667438613889101617254576187280670456094053034948250533650120568333414043912492469097236074382213507168309157987426783098226950419010345258355737167836403652960146879808179060809291290709248563081862080117762708064603426792515285620938039680919477171369803139701199695668028536311434897376821102695364362348337490096587024549351868507636380335364604802168603421812701111348863921625906805507979952497812654792137080027527565945686116752498544231565837760606774855729023790871460178864358350641218490297866461153976804206413308396170618204720047746524413672531623263304472153938903174273506567763717002439079760672823157402183191563339782759341135572351797403264419823478432482860034137601364501740064544559255129928121200004641525668841949374946429123020072721976792893643990698867380131675429126450931838572354518553289547245501645349004588192834774229221014178770306754746829085415572270189669771928941683918210839795308926374275519326351056575732141848706699424992514825919523512873761066323401179851639633548597094887207139655670610226429261091458790171006518460938511409338295085677562744955281596715347224169870361592632718568733861622611853556897493732116855763576946860783732464088571449325758328937883009282564222379512387146424573847449937112612031958974523402270007681284457307598143546912287249432071921458458579391503685452965854486766424952968382831667083016584340771725350758567354485025756199208212840404084481669504167873506686395805780120653370989236208704021242955882428056134570007988496300342843313309056398770203440500914771044822299343919531513925479637171777296236726505788868562060525850483709608949813502346855565282320228624005840655277304071663761214446489455215724505855082437450595925187873129553466109083622680697487651740550192406070514113323827945719052964450151832260555947397377098080856435827856268713471581440433685726254983024912416985295562412482854651361693353574657946117247718821216460522724742105220338472129985171007027447717822578320255465058184832746034577491025029509672479729783456505637041146219540096876468639827206735686825909875229229532906887805704901017477402975668940715837254321798055763440133674976396126151652608716217324989201771936002554653563120336935849031514849082169183899176024470470575157434714242144960584802674714972996607291706985292807888905750461363064377317580349716981776638865317037167444651359044773641527081153436604985892726923382617516724134219077315587676567589018000183171073722524281760233223903632835553352718936907096019841097349295953046824700446987129887533631258371079165619436228991632475503564361649502134137122519603793900812613603913616579645166702031652902467095341135587197927592056682117482130806623983891771812153116202085711298039138137219619881982960806262820158229135116324540213603957476882767601714067361877729891998248928966919168731032941777292620199907023541685782807831901385710802530620396830634671470831567537664817194225944936390919147096878476262615017160171989972783583356179645552078186232944860210726243560993400030077910301980764054744172963272777017702322133456003723000084929251817267320459766701374944191714512304186934227292280928186073424068993278119944747842409932493397118388246530443659163267621466016841553853674554792729201097338707765895930330590408118416498166619695519050037517396309222488802724742830642932417115941263143973380855176306915302173020304630668949919936786530422919198228245066213051375827023826221599439835858015912358469945567380717925417112989844965378775581172791284571586928119479004756121689879318085565508762806003316247678245745180093420155196406055630168551311874201839882547895169656842046533866278227470197896363242120699996511909303854983936637400547092974045746164626075436566649802379842169845222030642269684551036725986444390690109354397688938244138534906301187017627745284623769540162919392864319018238556837169133490860987884277947972878762717005754220532731443976717311532162823335668431893519172543892714721914103727536289575473737471893614585068873252313384777025832291608650510153654496420068034411706392277911655883783133164731272529934222773270142728468827133953479073594265300290434578418673254199892947343039440097609605109224583282749936648635041096004352710061201500271851648141114934336763501589994605005704473113352543853564853696521689596374548525465394949692607428784766308844977145965173567649171624671490313012675384317572036595406612989592673989515339609761376029682354650038447390478257804759145357746365523348727491831240276541357076236854331212878202450383373783937650865598518880017951578666191452946325577709504373501925221945705964262421900883748343916066483240563544674767709673087777487002032518841737348407354387181521836168040064330570706391387667197767760754253921326099087342651785673318479423735860626219593422359715413133278409330619230013003767513417787917255064308558037059781490980143256864349935486182037835439725882459011912912436877927711757471536811975042842956752649028730526504800190888749006455988468730558236226423091652219554017574841049707595842618024761983415442976198234458037928024390023974272442555649551689025535113354787521612370871593033060803719068633489656414014189017480715294314569488808129695008342363757474040208932230880357989453245642949808957802319547409554185924387012866686130785014633386170749796479988321314372339188343005960513124620476471046703078481973700510180029124589676220505621498543684391955004446114753608269774461034033335075074430660564711746836945840328543660840280961991593582347337111629126790679537625875460148720212486694205926631767821242460728527803905684642559374963421223150382070179468416048511416082518627387190592751810043006713750240822224274378766482953253239408736988013162551490565351651019993436194525944860195239686814087457810226285604470799343511698401555881928740555738016078472247048985593812312589881374790365519650102664288028172308148801342102999367878951400765982173696383360244373614487101053733917264484625121179135308055099503441639825171764093015167637942126211142555567730039061400794742368348769207785698362074637500782990868827488807157328941173106815345500485510260602157209557661125924455223482238733355404896975785530045885050491791538229296768556229085573700754889574977987990382697702306311727730807852204097718822165618118889052672337791496144667648607269585718943361228723620898978637099848649577578086384159497833636420168164079884405265778141876159241663017715385331641001046389838854672103392665475497986939820591874970239764944611052539089703590371468357606715938732495325999002356783167863709375219014552101851948312059167339342300338516957725587140955382412858484567892272365834650825777015459781777445715786017881072706649779259465803576554103850159894149435508735604387252657821118884631536670845609338271749604183855575556045955904966784071089444988388702837830333420641474295166760909562853781119471573073709182676578413237359520975698842677781636620366131770329444079048255860038346808131808436374075383734884400450008977661724320002634095361440751179483421689886049790082424022589053088768770070123612721103083839451501435313542393415899661308624672153146767864172712133860891709103587003297708593424726104493617479283647579067099942190330218321405573972362520154337295694596621815462842750949194566685633019327181721265704912412430812563306416540897115630547845118268262785304523036990110965450301239182954574569215559373622493358126050422273540451644620314678940276450526057634957733663343846018120084970482169432468025578626681794986807350993449564739599436285791534678045882182157005080272153234953252405273975148644882066412822100979053258535849367086087128159990721227681138528063141489112434816866382224601241735820237220397310270705822531616039371803445230984179739236682634109754654772231553425383106199447534119068651266200837256681777069554767088780978548342945677175360962183051782232612548543006134040113503450098508041519109046031436287098107963793936327417889160684548075809308387123693513632017277092024459910237881240489964548280713039475570163708353937370095444029678513195685150041040990675017107055318915209334373468385316082938373027059650462750212652938171628397925969952095435739092253030926744569299721532108892497859894747404529390697754371597181973156614155324216645642809547766597890306302727226480536114440219220291280529516622256922567213260635978968254382789890475027728391581240181243488550586501518054683893953071582001823522582450029421641269014078318541739985761045630054160625067929656261411442212919873631810730608304744188595653815069855966273749347235778380913530992996999034935409641514685144855162108524684146920818203476881055360809662996093342929065386039564513001125669402241602161935051895936455820746687326149061456503722454243417647055474848674563864482490984167059880687269948274092307645460011093217932036856652552263606931204708367351747337982815171152278294652259486962428190887266506488928375284320711710851963876840490246174827027880117012645376851972112352417332477003576668264146925576570163993650164741739048064436670676277267531828059614752242795312762526299250191077293191336080717643350857565369048306853592530653502126502913226747533088587975078627819579873860411470083414565489889707460205190242993106164845746762804679154798156539144752998653823044947762624923910870877056784963929085326727236399182001748025720331543626077664737154623586976628462360767872315903249057743303811733659782337423642753926420963310610555458056321478306311490533922913826619805759349826930989880503035343336727500865966713281913108434383676860205033179316492247631753433390333246805607987736162121298793530218092238883761421387401836004807793306814253052650023013369435032330746703466600950005335995282533128588260661562626759353819649154047567503020565961783767223291865198821251868199235733243157300028846893467188808086655203480211930911630743605478449106212297981217004516735295047117239119191578730633235292320592319818644266839410896826482798726386801969473642924355154009029914056186318194157386184989025849029566097519750249476268525965859744935454593541543967981879391296968889343345404520117087912891166616591997504180674601582459491056936376313215435454539226011857446259038574962712990349101954034565721235559706068233918849398115570503860424240481597326608978758487761948821860792977050361548759483801499105020600934759713057065668740336473676809019150047993424648966459913905139697826116973252984810419586505036202962835895787251767452021611558487257827492973508153210837811619621352901451735207623003796895747907363962821618301575303975726363796675540451121870534228439089446202673939857150657912967842790719659742846148833726580115248274792887736764408784191546493799977780292822039421865951529752221727991676458567545595609058577920247736458964892851221514978108463514500581823910376926253337798274024054332417053584818139084179911523731046900621156682834169226219726927250878046066810759239047593140527722512688311545717127353991557130568631317317838881822062805518750863863118215006846269966790645100125154966396359014133523473496074227810540108026020408834545118113912492106653870126384958091490108217966633762824395735352927289684487259979061939648373614887584920558094564156574505136839754017407512530587903506694447323747112804871605779770543932765583022985515400065688486196166436775987855578391712977798337544257596097984554823425375049563202828323960875411838609578154087987814452871790613745333259427761425995702861130365801338551458266808064252824148008399984001051399813728369919317607607604047909140745858591180945700405885401385954345352913603691928145809364148911844260332660578526760580796525047783742751957978913095735185604077547931195696590784355581748363757991401168149163146633835221608469266038328883021361119773759095650933174894059999167714496485426783673356634058503565807262449334627860182326061836273147248194584790983386243185806071957323456249982262086042915797082814976712261129347006948576723763805932101813135532992337918867623347420635352655261115933064367953255968516434929021793283506450995888182930731983641325706715390796649440384523447777569663579786876687413851648417122118372527194750833995131499224743240369871192658790068765175892086211169816431332761167292697185504373791189244003366327407710759429278628089396754654428844789241951519933183239350173213697691782886006124835096072213288223793801232879944394554489529212494538737981486740587923229123772716217694368022575767188216029961094981849800950651216778264065140078013291259997464834204320903764493501010379671227161891739106015895078812852449747083336873227912032343972202826145244797247191549978843916192260474221728721971157948260643825424286166247850249628449827704869122820345099454712919068779143108065728129223786565632756622770245117534292153582172921703438581399681563184545582738067591449648890991226966356638478912505260726089428106589917122164751812414298061167834264064127797520262780616067752225068353213265974676599535061549840012879823794434719384237151192439959788892658392438039847745373279084196748817026743790044764348129752480769242763814499134519641745160755465161144944074801719321792164243292698231662833840598650762033150390907677918672402308375947709143696790584969168485395207280966906881159449087546098609384344383951439538768028298292112513009210158908698724733160634476105119610928982918870928529713561019803745419733937433622373659628889502385149487621672394588129444444389289662526286639203604189261260203300362269733070810648209301960850481256024605505879318468351128421932104462790130729102295225724383289149303283619339873655496316218039643901717001358456836249560844381723547150646305416944348622483314430806592558910194550516557421111943100425757769218195894846146273497554869147650946111651166519278150472250817270582097228146264063865057557228072980886745630460040607676792562817606370126276022789843762665183404732199350725712699537435823324362942563290530592998783540570241371179494858411090443408046012909838669145646610836931054192049156817853526300929099049370785267432246494728703354105506897089915252891507493066352599896892026686851380902908023964081723925165839522972639900379940244566054964609906370004732445058839758214339491733972262535523059497805000075270019351784157406997492762015017843665522716218735103572407971165904940745141592440973467206790792973892450684624504065770790587742866644398225690634925707068136615428204891805376801425683408285719019103307840960793997478526341954261205208889713483320210962178299373556312017723131235300592635714501863803306579370718640179095300690727701462234730336349389679470954716887489448136949766541988344419121949085845329041783506990934580118492188368988735962683522524548267009409444995576184167601383824840154548656624584467328343831498551707562435556362815607043268270399316318654358960959391153982576634389413094557471132113268403068885621321013463851433400392298878960468379504951229764758329821565331070626786977635021420550161740626301447787148969356192544985316585881788508679374938401122259300818697124223541979514610687112379717926101681633880124528317638983776727226702973543994678245081173651238032475526793460005634140311598255995433776887124164982811793534965655492118523355134109856634423538604120070205689743006379610468140516900381029752121502742856189594484184975313413011629776149880520102658642369307787347310104357849183332204677149777892856891298192294179811662072841061072726112023351157449894726498744842270693934213419664448174407535568129875107579097819945372717481184493705530561072334427473266639581261226974012156232761334393383650308258000135743901254553183094098542041062802594703430080144375099160301106393594250164948339162026445914217098540395728392322575725304670368469331737224203629877436265281338399164759581324334257159517668225517793841458249412826582513033340031984232178725297405678645591660113131671274011640428861714878035715205524197933248292222617189467931313413852117151915046329385801309703388620111016070281594959815424677915624733676179108770492867156267108418367863336093797559706618413909083762866686085147167850233321271868473261054468013007376840528322008358742133389411033461423149435379583843799508003631142596206829003488083073914249449451488711255512022358736863946178118293582833327447338000160425155612092531461993129459591810184719829673516630960739191820435039274164209232171401572133590624176662290057562310443347963281787247132704377849738070306272084203355286571735232308219373138909826284209862631154229256174099238195926219516945223922953381953302266418436441544918779908982473094478525458355801948701477020115338384205129735525077035293555244758973927075191022678747564487507868668059714792068981438484901261632781680762953077171999567549998565086034806211059155643244272084971249692794747994691437929874292251524261706505598561675816019002285847468230744398021376229017511741265809210312794332910494537395552812712006699670859101476682178858925415932985336535183937823821357370034918045397131142784116321358466100647421561896149701595140838175736279751443325494123487815868252179437989598365265348272337939804241298769184115906904040274044624804208409510122006583756677184915453191296015461442164820236345568256343209488912066771644909184350085868723202546773819941745294707030833843332449928958807607463995227885618575208114026663795852105843251038870861729091995601795220887633777271876849004534756332220743531746800501203777422588358836075461576229096724045686583832037756521734881750938702961475258815870093083380011540559840470162993010916874890508051830356761036733777485011879409081001926638252157448595196472285722918986381767301297681480497292288940170554025702954104983960363940456544911716572805181024147746805040945527162690669916061136292882271308002733412754049297919004777843261431159324679266439686250188289706661360515605190647646158432706712275636188965999076718547109330566675893001595802442365975503485844776070859683506776740314309252285523532825871040091327311522912327219983096620700392241261955017963153588722267403639776899655250681440572747995015720811390990893779954215576044256977481447143567912403978051414937320633816849060669933551299185214188322781330554299826197534134025134072898037939352510757587143446935978718126149426119841656351332103742464010385592957957224816620257935231948627637206543244437898407862534143352300008878170762047273754066584727825456585701135811063019561473204815614832718503096856065412100985973827114886711616561557536182937213155347834502535965044758427919465501680646713623853014414824530860504449910176955133578938150693766186469495630973822255776158425199183946060702974452471112552800983624411667384482070169867423061958199487461546818175658317196119428023001533294708666048581578365977847108637763035249342973999140283562639799458938293493258122363429313838619654761339839583065462788753448525708155284894441706487212864050087986293143747549099236552873248641970720054473198649940869072497304802506821781399133377256060197469921084583366228967021312467604714054476698743816816699518742434747473640488623913901572385730265306220787339024124513542824209309159172055881053932082960071131676786917333128031516445498094144521710576962747680625527618422097090649758056695727106355048698879307403037660085811670215058801402158409417384772157682141103190661496415126937759292790046564808312245878411195223625313772450512204786940926882750098631836220584478765732353924374325104736176370142539402214052917695533227128266751696366490348606373608107525107779447168638466230877601412418234077648952165827514519029600706051678173098563399468780464303853159670711616740972553893122595806756236571498792253966507460396955609045705233161778813850512027856616342474480333069036877597102509957902984704428420236497261273978893690668607134911241665781839398438618077779720219691424218034450247973912126982096407953890125650883037521897996372804719678467633248051128675711778868571843311213801528110072631496985435127045883011131369948889609675782143787168927421058780468650056970779518721445656030356792066728605053352383808711476180264738798452107512107964762526173222914625127537843856530569417532711902410975912346638455815533036185330290600188017121684400542284675380515395373678455330227747833071515211706821662945475018534861341443123481233008177294432148141469504327768655141054195261459567369155540409539809647040875426267590159575386613374181399580184960644094666817678215608214169858984898620554243339808546432422131273135597746454858365546117988710551304445709440908471555247124294636272713651112666581315929805830856549129113934358112646085109509804625081132989409491472137437959134872915579410245176886882465562482554546907767275811137470326650020174339519391857515305307556195542698197884385004795958598418700305619512984260874633784731725535559464784802506129003484578446891269300731178385006842166751026538048524103310971118657722821940607851565149588274011213922134181570563267228391132968534748133491304481788207172128302556877195386753335918676027395431221267651745577562644157897433705574757804310872922081579565397898102456714946626093668102116913269269127470408565838765556469024259476299394934169219671998809110716433667344162647209189058936446972619844165111709202747530628248167095838542688158641767649379878528397017718779838493335158302571511121384743360263868877531351407467305612981176781156822463843575462451895054497630723498823999847819366972979590177312050974770003801897502428169471142244108243270236804312156973176898347741133114171732275890314071441734024933688303719585547933853075630752383429877626838590986198225281271435292782963632956779856914222405307185778438192529324096426432277605692809136954967557509120261452011431499448736568619685933709407559394412780921738279017198457226827013268210309372729646989219553923690760947290913647141814641096111342629205265112453773655595011995922674230347080933016628852189271699006294136073156557646777813787075677876721125250180819759489613658077527899318273614536421748587395050872387349708722939347245078475680179913005927905625280356527997403545547859689292624681922190110334234999140456036543849226764744601122365600201313581295786835120004974295298648366975638216394281970055601912607326071258259374813796553885546063344263322113134401782096417990647271428393687524346059364517171315605296915441849654239034142022061390192164314255308693312610012894075012743823860367099033570251982389718934784517224157928316136194248685806891268891092746714918185249246520925276296425186187926836343849505754974027696210004464884789705762135938136638760659753874284632723507471433166467618166068131881515610237382093340858078891044279885471669505183720841210795372747149806184320420262984579345193272314230102004798326255971252775925436672641573648548685559492252862164467594902607807289048954838824496068137519579623426064134601391296011376896915166630343580623608282901222484994361875817192742365514330576418140467655042514645282240359349662242756884376951205235892884560381757992502783277864242747217016867567562945900199606694986967400602951355099357964310060069035044196884085985140237874929584984174499906736063084757597869340141071474800284499065860631395666390745224069873394007623782972308794724926055912105696860538081611474053420733051948643702215924666591898125692340334438220201544167664336261504440593752791779778576159392494180178059861627550662371669793732440527617066818889728131075364948422228869979480794841228507611483294970677284908458825610627446805672611577692324255903313575135134173362535332358975394075049494608467951777951672291584126095116286857969087612167433063601719329451526869968597370001235109254494072774949028831785028389563755308524995178056666151400287088892738418411647518428694654500905895212118932199763718147864392218123458645921923717357091058584419809475320292741390673611804235522245659732526709357559114608248466354403995132877815844824687065001354075570676800334007576492149853944095206421468528021186638620472094872653483478011508136816297163615305795970829823605350534530005591150321720064540718539667101761917111757322402980566843155148286958689876506694413614314455620319492734226818410599455560791324134468922160690153052563778361223111914720947116673338983087316622638280009309976683351370892544433857113202212811658659248050952290456311713312925565248176825114047088548945750313431619193291152945090212612038902048836401212087866539334741565880799192287560593521809907982849810005658609037614632462928831791201627960916624792213774647407798444771142991368198125876410949903273918278753532605313872583088463501104499670879875143270612157165558933983482471308987881712184014720283725406749313818372054595968998090958223707660142193943378663573639207666535784437174738411349436548401545792922824331328487968469857892688891039315817615397810466067464575862234210934967506524539093209949827016703550172812425265117318974941489329884101507745595212783718599267544287310200671542317585317211357899364447369700127754299513865019604102099164899367411483008818435850715081992092429241942937584921955841591404263923949165700775209487115811034861174912350102872421122752427432247292867887848076148653410355685590942726868629784009502879595301180605641541770150431478760868909002769976199314129477279819716440436776482037872468012302488041033131605131059284431231756110646851148344319930539658835989583251027658321728898206442560751897053640795435623588302037544482612592075253793419610880488906340260580930822263274930755383296955482668759552365337324895413828584729899971734078594150273352053353279577932776760063558124187161790310952512703558980355237446838578575753836328273554559881711976255141792594009509095862474305071258131931448113427784033105938555368895914283194091627601972402274263732112981195666822259962573419007095888060076390440232786940263564156572067027788382551023082396585000053827039063832003984571561935790832870324199379870129390550184446827380193081756337001363173516791724426212653426420907093226309974348144923131644011692677390414939020129788581985618581925912449219299733062560121766883632539556963125040899315346744046378884770526769167601232136262090311028063135806521859892069888029390908590206983912235654550735215580742476518422422961764586076288293301024288001992247033772712091820128874166890427637977080318157626054369938209450851448165463964089320999576014379883517975989929931758664355286929343571677070537338829416586074668013536701092219150383379490953313874927106059450466073191522602584801465718699546633545226885470279724997646436205636094489067883735843186553406755191323027954764714730168007198133783717330536704860976632784871674146377413043768400124315992277664640614400121359185217758299531089994914965269994264813457379861214885559319589577570480155321967538764371909602892333986537334603753651947324749959433881245184410839651336018151068764540231284636176293774750780049463954115043687635746837361633065472494314079540525386743399228800035751829363418310157760494035900952063395319843954465718044037565369281900984826991380301169404648588026590955712621854589716978223586184873286739626664705804971814854409080909500242025466330921802606418667405504966032757479500535053655573243979794539920976326921597780205625257653033748493585218854342081995054351836476489304363381659450840410737566679310268640896773899231865291719781934406684306963939123737513813616331165296666109261844646954721005574075039978093085251017362914268398425459920972119600516912232294411826778006745186133964872683041452885868516035139572525232480113887816281564210179587501845283476765456993613289439182203220861540895970281976322387377415987553798754701103111459308728655355593489002828172079973440224441902845480657007122518862725787806412976006288021188047564895857524425969660295476885636887512514619378135956953330661168296151640658361498385050252931743533609057904173830304004707194330648363111277090524786830403282847117573639378858846169143379736941935387952354944724200085396471156666127233290531183720259918294726214167065733504689799744288284312828770775623326652753420652916884049761462619031631124490726144492898615100798846398904272169032108562545812768850843035620387312412463604286512115905525122483138135991857975869532494292270110072434166989222612522635544885416882579782896347582625733389055796819048106775890674912257456623404719706310057573577226549004035539162710369173657244706664688461137796097691338067713519836390757372104403210656073482147821513935626759826479561361186137830895044235617445679163847633260178557589194529037293314177380181542069903344906703655544455493488097170364577578239748639210115932370778643209416550213594687001009842828534124562754539110845542718655064772521471215888418868727518201744413010679634298030861055065289746234282578052715924791048516560927099227656322458515604763971222067850952367346592237953766381516065516360821699431480307950515184321565562984638814712386910744719581398498684412477638254831067522111232572706223527552267547711437132232985038469700906657785079221841293602856885421445870594592112507088097200428469287931935504393853101961059769134985264926041163253237929258142455374632161895730106919814220922367630026173951899295244256234158538442651796375606767024978915583783131071599096221104445894864329230682086229351890221444642974433266063253220313629902944918681914135517065842092656348012877229943793173737569135708735578826057592790262487165681429673119624621606105206883507308903946324964945587695713534807867337694508942009367726800646056899237740917846754303815977582996977039869765313315910231025009141506430109102634177995825143768159518030345036278131135322293349941426044318674238072804277991740662700534062178720483292118695136353617828353621479957422260006528488427071759991593503338700451904884408032005696352916187137607368445694279432328650528799858674093368468644050666959023345323313064228561475136890799111398529070428592604518145906976002211582008993178251504691428182320649653048718778341698232982764519685295336632937273450281975865581085621312948911218639101969101799405582937226383678705740618797629722794604136480678896150385838490002021163026677088114395020021447214083055488684553148366694790318037847699888015267392243277673318769244937262225492575059614960050633703949168070546610197419134874592789223006017523894057274822105776830727171821109858831659484899684359288817501889918610772043163042132541730267187658799367352756575902427037581055607421783793272930698608432507604500930433499461406151786617718483829487799289030754000975973010122214960158394407359343686083438006275176126082021998324507012848480172107680304593893870286839601170947645462692148411510916994909695715274263950867817268319839228672766599807327169574960286634467393104008176082042899995947397651792705752985942132365999592751030745857494816499723284138267635153907896067217618634566189513505266000493801793794859114338777091757327221300848231579691659400230658908184681661529179737173963851280715728407079785264891845721588551784636686483259189204473076273882267063938173413616374277463333793682712772133255491201111841399698463196326619087150139427340386090116374494547927911237521418865255494923116923570458516592605502630886432180300402417832693751958359556726676940140691221081699892633927147129981642806034163069274486703490356575694290662031115741453591234614116051929252341474349844823101669014059822887687904470646041132686514522466935690187750862565430638528195828332427023316594950075134791894899143351111083800389940445065459025931196551752368670916477008683779576289215173591631656363657011293045261969382146596474169768684657846014998605460911021408053165629597895538046028225381301344251706020915388871232869759568600522134822594709862499992381718587982924572429802875525637663033829023637162700472398605213914152726470255174314683409274483526402145401764220110854122242991050435246940993901436558911154026610892877171756224531752232638728328500048995164641351167054359411492897926377244583155566464025080319377154597485298940505933052274001766367679128536565654458576690522048779730708725124178326170799865252302464759663119936355827878112861636565559014747792399437633868950300151446631152937065834677793444180583168364911789875199395247598650453106074663819730673881113044559310388317735969294619274513502915845816740933579839593347323585508860575176120021256348336288967048134782269366598087979401913042800750034760490397606292163777230074328569359510556908341368634511609305596823126949321941867588207492982812352799895997661347841068062295542420500459095715420394582521992180559143834523279348376086041539427391023324954079644276656957779677910012553158447197629786764582744376155602558865483225710440999510815949155404929977718707599808557674628712091649641353270248668430394810002133605074777824600956752220365152346004565684025137855582186015770689196459864793163322319327288011087778586322522125784275479192998157660668736387997951615108881384801226973591922277828679662412960870721460591879222939352979976541636422575127974622686932590827033133287749574467805919988136507147122965803351292527639396431032932240374105007652721413283377017085126275397490098021890477375320148965744389596718076454315082238437319863715183526380081299505190434074202608839580178982967125347981832570190636730817786009940400183226077482475173482826189087518796982873326758962662591569928873326651947715208744087867978798435105903457298304670904832820946237776961382593734387017307451809470761208582940685990434346973816166884521081237793538609223706529906579325846067972940009905429752969034431186223390024542678826858154700965400796173658867760518079960995412570912541520819473492738633892798665753861811619566288133309160188790388272520153395879192924290939876321026887612859613954922967784001834465196308301720601517055425744115846464230045913474307184348388406793947381462424097132982819235288689623461131687743374461379410576221948967198623894662063065842333318138924186799630541007057053153005920547658682029194556287004868799484248166303386842726386276812618684462299630558228888889736955884832106274054843286846458523067660789465214805508340382679248068299073154189304135113285840933258954816837715379463904557401910355656035531172627602205588127085320278999633902678064076555891506244930499002263875910278845545435357280911703773080013235537499845559216588585904701642981768873478052848378280681780294325217402007295271990066477902448268585819863748587079776145117790535445084985918168639213773080962509773718897103582530785004105373354860019397223851290372408704566289746262597351131873106285191758225014896695719973689697023608313387358125665816336474825960306422472681865974476357135488024774591709355073934207969984825412190262687440292226983527238102304531551575681159145083789799094326684737303249036985527166683547393003565416076434527485444700070394822039050944819719624120509817555336240512139028511698621507317737634262427750667610888859937352287928117749360782669919346192267259838103532719959879762523033972282404162614748999568373496901342154101947572511335014383622640224930950195760632218917614876132200316236474739070248081496941129217506147550003920158399992859589472863255222215202624995988441074628314528582880053628656035977290967547529766886970461767184105744867105650185697250800323398562686946232434053432403618513751126619067802847702563738866748206122525991022730104132352334583984384057339903623914872143803118769193154359929884036800328816155254799146377880112216001763218426632899287623153703974773593162191260956379822433655153712196523630131861362081390923447163555224026077540523023109860656896094550359639580418577352887766844577085141752967866770378726362478694772310094064873391734160661332275401073703512810305322586001360033903773958363960901955304559644242833647124864076970254335075591916069393306718914277779357027049247967225753270097397002283381967595493766463292650938958581003339755460342921317371672267452400907349993019574312550084895532291882703954912532564997668839141265917100754355018889892386638146059834040406391328417818119925924748316425226400448489134100400952227476041343784827915503623476004659834197563757051288143084960747055538805866284074566527538944324862590124476946324982317212937546407981858859417358881893621008975024285237707485223317766113305749585460525443063545207480122035132406603658066268050125271425505050326936892395089986514550482890104119945890827098642611174686105597700077534830931330730276021012786142782601770859934174026243485820995791678064704634991622269424353066418308941245145679433632212722948866011551069576279131639113409532448244618599170466404602568538956686085843913016739208866755209388548717028524637992345670810522231365745282963053390447550074252728836742892007557238798423241879464732677818575252863015413793615648376392101810444660890647069489132194840064685218545783529728218351814055639621034814924225246920200503892445672514746861188573500307193758600976919968398255507327069360048912218837621985780727364042817198563316303350187684782787196267477204532524913123893008932432180522729073423202148282023691340378748785343702555708222296721727319976923475092196019438845601420848572998632414822073155182660126729930203595532664794025669695472506403376667284230786680325870911418200005568086427630858352897547433260591968978284187257978259605441904675758804762636228675502291497305813690243412614589054054234913072460057460236678733443917734603885392829528240763451835122118480697962896888551019498212709544799256461548368655476921903063026367378663171370882407431825145665225613980569740113825325275197221444660821652694997833148550856098608264157183003999308597315990052017982266352505527606206641113246929086465923065220996284235256327292718490165736162805914000034454396502406386769386547092033096188300962327503008930653730382664795097562042517490935009812952529937712907007323088850281853557604191586800037978592424878127355887272180653777240657512244800596965263315902084173835999356511671592547198753748525401533421224544991019414119216966814640235976269592386698160209452792301528418217035332348348855775874809017659074126070260888720455327045988413940124129226392314458360308087787940994025168009163768410721047765480253183540258537274266970673805616209506971530983254393367507724068306804099799309628356165305943867631952427032380757814668464671758332863527899947551396214171194905421196990695399520777771193442416746349174047558919951369290842624564610232531256121715940896711350628104768698945648282515863024117710148159439328088289024821734238342184891418472274427411388542594639511778074247513465033353861361930425218326474352773195868792900908349184988615731827688748608011182716775943550652236588878294177662850857029216256032705696985280393555413178076456242940081809692964337829708587623346013816505877884461788021619533448070269396026360768630211588568146116658946399908848020326304769631551367645687848564593004585181329281896286597148015393082738161174245777564767781125599019697172042891866119545377096654024060410168502116788620448330234592197975680438105151908117780746880630913384757953822762333542861599102243639272618072567375919020178839548679784471090827842930344678835387772649384186363128600251314414744780266850570274605435296304423090679359704461730861866192621430965323685474740263561717672756552972342443003185733368974440317320520083434892592539363016834327315370491265392037880155039959083814594952185159993346902096371861072356577595393227144472688296407982309137143837553072883053216541149724520093162003138904158045753916688424993018906243797248651278138899735797182909781543284765156747745695134369147440191225746070430675974920372899111704848805142785433420505739768264185299033571160249553329734952092397876163282526800952111491539192948410461985803751221806512898276914622897140376881005255274639728609323097078448211118919502501852638974209531324456924744643616492221403036553073001963872082030219943538567220793715928918801968119209130741491534093355949399655275494831428537548015903454984231857637232028082243047970765142156725847750843915071377441661217820975479672115356474303605370942187020527638564875379584317513156775507137478431646343413006691534613082081553791987975566416614728402777343317766055845750308552000141077041299526097911101905523658842194530522861807782741463039269143943917806883106260183825696811985599236658685249370756000112896099388399100518415095255118893191706827902180674929931320080699932622164098231996538914975922786992520311737655707347741494553424078332406450491649095777635930744010594674235765032008956402472761533880237545535784613175202375451001368866811095060138880809812590982184215440007548578260525241431452472396693949187885910821384396856465402975768280401520879889548098570064804889410484308173692701170626027925303299662370462640283273491368656885682927995365636906102161868852959440127916366892360489025833296065990630827049376568888339150686787306678235208248123753324905014626088584132918955690826029906467913044916543827346663423669865587996097786026731105711257904753727347902441957570404135088782615441016875103841962765832616606042694000236634902121943112082611038650221900603475370735201698165599104162764114117386479199144476464050457682778568532130783417412486016576902771865696431516621039554090134374953633190181678365902200818473935928610960367233414275100252248124268431093622351475587623973207273232638501394203043122464406066642328556248699726724626892522294977582454621590660435880861781581937932776489548075455655282959825599779823304054195186983794983349710933404587921375327611198680292822535459044743698200795197756041512196889257596354320083047115964298197508976010880433972737909807200545970594676479139327423464421697964616084213483798300705498051317592164891931876470453843965497753070292468973510496375043996517475418900550946758368461723079412829568699018807100188756963200465800688559041772886279721340728078233653042841266891308849106019628005449151756063451158121837639649873029654357737878036324962131735374241856664215736429011189861200272098740738953461184059980375296511734583109554937133681074035780011407159035128055848512341424802890087186298168768976168351522294014781133151771019032583733069990644551750765356146090937872951562781463161551680656487081366585667549440730525851160136633538802966964927509739814098488044984067697654187163200722648727300259568848474706469062166939685200025958785716708567699452229518129906162880569152050029752500974798192281269436545775091219278497083368292552119161878575864708942209853945703918163442594088717279340379405325405308481544624765261750140186819429437346923621546194670885907332670814184243359515537004396326518675104679930356337404466444818808672103895392117540277695558893205137036153875533563631071382099221438453558867971889783014113446121930091497250886454642435978460658515168463568303651464093301266343010749614562008809875222620289842865727431112290418451374118533619963311337529289983481239952639165383251789459298093604352684885545310472317586914060210013312653672966882535775517589762743525114627748398714382926411069331933041879459772611641152412376968449545491720965595130674527188772556516060543288151865919878483961361171066121596998370382262397537121436680973720595126965586648899596977755977582643562438882001260601164674850499036044580477984994092508195589983686652394322713054253502615487586482734466841490441675005385786333275443408295846020161490931985546317168471694997006354024935128902289330205213484435303236685409412919153331098822768351708942712677465190369678891681647692073792599239993156289610607776537683375504196751869747702293840203549901083953337016272287362556046494958022743582204561082091361924308125595856120916591915409020466851225124406639908756927125100743687109740455555040289317085127294050128131978639946140526410402153629393636143760764217530353782169943134337779647597569258605836416710762089246232140046264461797375943625286532646994744557246114839440422609739169457142558593276731609498504834101037388127514614668433941160767093563670269627968568744875631813994060710636010199868672945617435824080511373579687271355136485876645464171011375267596699315327445800976770899873176860062289474563408199597671828614830664578640087259709471421087578530804228641559501571507740261889920067152756349725101488261359773835569499860205827593728253432078462594707979795542278160861395513503259416303207530951075568690028788631425649423411454040445403148775814931145285183314299405714072812557847176627461905661631385587009393583630371497971688524569719786365274242765149743472366718142185824752768822810012017705129215770205268253637922282022319787652137859062651860786069926886570535420725759537324989556557996305599194768442453457725631908775951148843766924987155118424143260139783837504231247074611412597895090500197373544294788522484668649175967775273058645888817880797782375342427137887137028506520316859383244970170578341623506646408495051537131562344299263227956977804300364324653978543931771268953267857039953514073163718327448875040946399983086429890825687878194437522587417451251872059187699596962162669744214453927443345213134495775398557769189679809543099995510299533431391970244353274327026276856116766668585350090589437628967228889329810139735648732854584835724728767254003275725168152524383783632435670927370117586155626557336467096122488838657515430639543337216951288901233339998298367839161731577838490975850169326485729365326114253591445613492678642441602564669233431208651658674373962946283785045752280721761460785681093872378666198309635550338607513571012485718379036412536026701285247659165466657797941496297360600946987197345243208006396796960423033073193238860627535487234670348839744743075787423430463400630086149126288025006022581350684571519159345905030306748419523496555387539016952669701959057554283201448883046729870010181035681549358524338477764957098371506495257644573114839808591809509714276940268715765909571145478494186961703461128063720269561203538275896398415584167913168138869666006509357491314593349307756617713684667478717880643925320048043859083334511052114835517334761240618585052672496966170404819307380618406268824109008813323485114669141681002941347871914858689069012076746222679933892917995896584884791237239389265523730789978535498244208217945176007348404053030820235381423662508285939193940921483279755455424277410238415303077614402744468458310015537485333001589005009620827070953158586660596909172023389416483842828752012120088498657254715998024566685554808814803245425154558151856580635381366594761214030915659362066228745027903179658964331416865524690406954100369059778743048797605818519633507899734267444718261280849507291714135845221623425184771737952929156163179940190226510525058217199413539002156289379542160356041264732759649992969118308167866307441958093623365272419049742089701523503469463497179428227342902775389150414890229764950996152156651199632292456295145086892608081957365186657018265653160894639310148511660186171889547491525685086841077083821727579550941797671600575763858649664076949732086785317090481003248260252877668994616100200193522799254136625804428943180153118380030422024672213581299541665339745994299270306752304593217628362569936575986203912475475966955572269180615735150810609348754315460153762729291264567531781272293691511256990206830497671612890825691632476042596646140906383777864156328376386393294966377657375893653031243777522555657998677391614895573067830932752604525807984529358107051488105133487910140637180817984678109052976268833565561916825206423696912644149317290241226546662397202209117127555369007706784635268945807808721387421668365947206160428703811546098214501388099572667425896597745103046078012224665711057499305427634006626672783182875420271616150712128214978877548265594055053046805348340302701468302629006122998865379694444568938269338635997005947977866883947372411915357351886895701108275225367859425951477165715896208453079560507407377200894326787835814441670476060638061820098953620117531542471690264562255418910899791635305939798278859755692455033123095139971781043879058305001197433681034634899531266920684095906477628378059299846073691540616857646129553400244019144308999044766773253503427403695918665259843509710694835224122335367737433737052795133455811683700535292868958346349649949772445120590620546466814016096234536482859190925402835590483242696932068955275694969870888540864758333942763644918958017376038711799420423032026211472436699458458221902328294478015651498729380075786646721820383928192022460781273771947731954178246973659495977969202826030234193434501289116295393979414866824436993925617571013072283060667095223794280667220593490664068135024749268859355061463820966281285647596403555334721904089796710098143703473858562198529694775341489817754088874515738606292384817792197963989414883617217277629733674722524499884020066390461205338451294438209326912954979226845835632769575719272605829041839301500214304040192222961983128154413545007479676849192630735993015347411018904592887219485324826784922662566398437572224721989271398218614957242375583738419596366508546990772997987727912316300273019771256360623448375688943211048738241276771933233763603847732940455132073153722100317419519127077559853401653912288625266408631130133725825385129200507115143642045282192314886563258351976499216350083707168182088823034558852815496191512923870611797852439065550116947388001358674465458164070522253920185250238117742082290453272864629748213555372971188994331171059416158392958964794859238938968882751307366427431820312197719399197938437985053587940214452755669981292760841873379272826102989364592313438906280812287000565328296955236980440505735370080154133610262904793456382426506551648645730721955520257712292563522050686970840692097596627137503908530072689402884116701120960502004769632720094484462691446881122561551108834132124506090972813457982372594388449170755881840716116908512970801642212377674785964422772565476446601379522488076923385318198391267728751197594653132453709700965117258822022654435011754028462620968660442939406941645069167929721956172693713757577411897546270825980508069644012523289249998485713245746655838772013574169286947888580089133544810645256349262237209688698484765643087031746198205035943154960461856647328657042029919522018378225568126934875847678319771114279980813812650792376921683674848748191402454789404031280831262811884356575566774261975710233761819645460788839668784799503396243625734242101016046623664488681077436187954001510282635275143716371132883373948481976024781849349622923713467706757417008104013891172437360857041995443715511355575016353945381956163025081873919819769752187583850958132838104044356780383408229336657948598265160420733474013142855160506246778021361902083867521297648171237216278491445257859164152602943406950939906601136454173520071592947213603326726748106383722635150061773800547534116477604888839149693194882368994213760770745245355356205283554985042330890819646801172876309991513823111090801944541709681200501038861324250510494627444560347946544075784606987213133152008917640187557237122833122612710428725878763451788340216525185345135596837132541397886781299726634110515348584988822764561828486609152138739407820320901084527977377040527166286548378739700847864205800618348766985444106842057374781605257743113558764829382191210342421358739294222927798499594927548759695416564986609131011784069311183399741255894796660054608817833754907870998062639775147870515150879990107187456631835778023851167459163595562308938284458870920381656822635026399617858656427522018308853662287952513431851080419791411689027440043588762043822906261332137755447040001184131601026697422394693338375538271133589821708747637834239792330959022807667387026567776422083044814342286337819502269221174796388347506820439354683028476155447555399311983393785677196948524299803292805970165673781474312016425588513913925150063781832401436093786622417955881004922326892388192670478815989969430718664920934981544822862242586872881606552387280089936755792177640461890760269968043139826417525464911887181194632665991798793914177663447449274130082855752127618666247555426831932931977700862907064317817988829646059548552127808032745253399430685401403491292915154825912845401022005873237172189202051024775847520898762134262225381992815460684374615622585187527943297378926845963696135897704355593007175520673458949758729124271835596091583060538822881000961398634967903310043152997624878227268461949519863880161886548561383791126294792172071172565856319125401491939245499388935681988799301039875119034267100281455191409287685891663275770418899703271412811274453158926806084025539841002966703851324215741964264950187732191243058423893462255122051736890818077741713164045350446304930160087771038779010646617817152604805052507459339399226631402002462080563175554353565952322755682097382704022943769860301765457774477068300557595836981812961489451104049259897516611912540118704158972923537897545950877003088655297696906374972464703210978519953089962830533573592388654051133717260962850372228345102485020682432881623802636224491849534049688502644591027036479219220720478057288580542880430907581887746946346124783242078799374629179637089386275492356876543810413155377721862456470660252879111695486809029306837140183795274255767718340165240245835840165705825710807376665329695586373062575323751694054212717648231048388565301563538066246266260871721504695309614758571989733879709495922574704039198436508669541120479175293908127625730255563780837073826087350069553374519575515041858649599207148342181273872577083760662143191058564350637378085890782419758835714798880934624067643719241455118071561633635221002430583330236632878629505055358848031942162003136405084827987166103654265366106404004199174882896967882169790122467155067336242990593918154362315708048943174286855872232025414330764931279600433642997159736137416794887137981785831239751546416642225559775094679383883497089141875962237601886848434422623100342187895244702157153414763399446841568847131498161817662984891272840016844029280125464971069232122176523975529428337176279340841194318266985277250670137338175169435658926701577142294417226809374008887112044767524459912359492671549843034466323724626842272055206467362102587280929144273370448460580198875144420792323387080224592716415840945074917708653609499342290899511869087319610743769743750756612567040605491768778874742962340973405513689846199339582381280821418351661703137192848165992305417801113985006046111618042772459065297989255306806122464406251614155524609273867282377766947365872285224163570383476548907085769671682609190182951087870151898194464910908803350868044222631215313859021751922326156928247489378816640258395458985356566041547480951954840438581827556673050691780333016591502553608082835858056535365499997337986086825610002655496473816097700462959772399510538801434225077910644917303556600234181673081813505942332234421101134313834837313106124363464445939117631403439650169852778204278373922464377964024775205879985220540356694251737968867436916799709079004244328702249046760007164058502877514204350878392277995032109781953196322522980032926837538524363541869321281748158782514507117472240105870790893489904862054133233809311076345360769272336059530180777706556984697927091807622961279587147569601260426863284672481169695980231077294166723328491385894714454073886901145952659197035341013507055079160308217738950503102567301150844038481860604404627350314487274416949597169241642223892313126753795583813706721755278203744161203489513435504900941320079155111565929053439857223417096186250222438290001394088836443018849195055594677046739525595323164142763303114714130598670716489487898393554751145735498032317902231131598510741424289443559408073143977157989450669968699756878562810313137967817176626710581535840845093483556565538213908131908085719138745929179430262051969619221158302806549248223317668214121086311487948963550145437336957551897733009213393582365572810692162318352213728137463386544024915698749400611057984472976760812205934023952313165445690727781412177484741389749160601415865651886722142811378600198151138087091833844545710666129860072482140098306451746663142134240203903352935052772574943883304938795661682938131012584109797126850280676999817470321593263221572477977990854391340955287759507157996349026334404135476096668942544979870812164072775402554246299700565173664007806934905947914109304208014982811407008338248039126998686247639738822668945823491453751821710863769332257372482784933790419398887087503274485821660325159178274894028154240299968007824606467944521580754518379334370268555425235789078126824951769210775400947721148872057397959176706294764588044335690486538013458728287118368755511213708089440615000322719165150794717323179159859198719401305361433824722701820109185957576792402527922560350806320204993924315654034392907789709389879517155276770936520844128552412054733201362663347547621120754339612737477756962572730370521516766298150188130349490962230149010285886546839805203689041739928124005379162925791726609944003754491107381446719190885570435494930515107584161742625213998724327468432167909563129362666348369709694383684902902915050344714793747284087656417794151396201065607252681504573722981849019725581429909663896868793749326274367152639586566132050293535427432212245745446649396868600210576917540052963298684339745465406458529666828509670183035994288518408891771019041180940956079755040676871021586802990171506663198553154290149619217651087174603856133839975034236830546590041759085017286491334596378937044002964576043151812130603058926253032915591121870566961046152097136727729056415954496457107930566472083261505186951284718459081498617669720502950892881185719061762364600984613819218102059673141392227564926738899096493941763399783847453117623014567911031711865164840288867772807189207214588261566089358086687964187061420444973408946601604748024767085976181029401366548656571673241745264510789399890326293025434517750656747074314559419054030149201215374055908929091864004786374318972263391646006465906697737948953314778785950772607624878652571641104531567330568498032552090617514215942455279250574031843018467356346309426480825993913417414193214897973526912671823852312381394001925473192321768747117741001709723399168604091360183082136013424371510005336245439769644674210319407756109460546371904859159805467914979644094870561715635797913149012871285000593741855063368634160457978816777948406718559174063556076586488988569443432105260679796369362864803916963019112335268641612730530350654148742962986100117118527665599196985659816067050439640678677064120994909684185734664837377536823228164208571870461363513051141811144476935293338208745202724732740224243568372149684416437297887259192631038591697027889947927758832356876325039433286262286406353745860231309316234301710076817173669656388955626868135639800195086631156235083335101447328088554982679474372971039242552070873274602580377800650538062427604829962597432085015576402796861470222055019819331067532625524148055120795262579713300548982278276189867149475480561237425145953672429063394667485689005013513834619027605173674158076844965045193201547089611129173984852270179223150284286161726985249403520979656042317320406685513023694114736920773410743132443604103903247466514158125634971495717532939704032146968037772089663207985164449957170729371862544378707509389209553392693181007366687972662649301002530314442296094330223846701520546333950984542116212432915379304289728494431995555114596220941444886552949927040778366020188055973561470529720928812192294626651643686678093876708378747132303459357626785938651157037372685441937365986392959659988729211256525440858438275635528931199695330823578769143998023985146546473477601432459193336334493199983468786726976057362775099975307577843749358071386298961847024071787024105335508535429848189623212935445371725123298912810874411901437681986856374439579553361576184358133057912779020045503753155372767534053210539709976207601803923315574785722320497571562089873455517332131804226567887906059437564140882216023802289635669942538245278187069785699776644761006866000419222457450435574425386528237686290737410179304026199552938050686472293501854406367462604985897867826392807046091832645676303230241119056872088050378505876132177106541151555861259231794483342692136798628910833145772506550115800049774066949315938734209161487357431202323340158248150975990272061848872735423119517007715632413710619822784945066020279820624158525349353698713427725442972161515110605636905286562486950606583458044512647523422454895727389361450451772208038902083519124371039738557760830938392172672422937002250866936939571467639375139413569754291506491595671204349363447145743602303469319188920235821535765893417667661560869061515484730478512939152784456580906915093548313711902743756718797681947627632068076452148084274476532503137392326982955722916577707553124510325819449066344080410304628195707601356622476838540145048905685716316537540896703453757300339695909622885882132591950394922889533747298439149593215870282706539250753900971057354991541366136826201072594183477738083064864074863536770842575975405093410862815051786059320881302975203794814067627007366811116653197918014258875623219471074105725044434127144637680134872705357639444347407312473525211261521260124815772536019956227225499358587796501919379993897893510917097062269230715092969992788552245224922442093470286420754154726970377984330549886622379477863590666547640003133911878196798017445383666142727340390077274930614469903680441177815608213306737825290505719885004492412098717342358202235863473961450513481684436452511155727520801326169176354861209278706488399940131912942552688672842516494499023883831048839965640877814749312627105918929320647239325907201123237585793053047854176028168935442527085004798266542994448568082591720984236574025098433308953096413126368110045595198940400703161066379571154020382187554618898266145199798132674507635815220611534758068393269102349885531753710399101353053863554139617159495037933307243901564962517370018006309820784558621065249990701836596937525443787196573592324061671539462723935621988070826046067693435627936899454598344600332646615120739193441265305658006099629366555625927102499947346500117571362473087063610044109892057583958740441981127148353349741548568261268766415697803461542339853624376278381902646731290854331123640704786718612997140551124388310651729044696703433566291689511341871660626075351095863188197422116172703616051202016260272853318239611423308782347960417804078153242955474783575100363103644841477713829235414771136422215145130535249464768233786630866395285233317242477050798274850525500813672179736201881114029726999570393904590318567449075581353434632312367318316288341304324028931801291140436222461325700732749487368907523304680729140972311508618963536751509040521355076250644073956813131924799248335453290767700007160486138031965385857673402096499717569907114047076846807699984493618914104313977347318216170497852909024862874294044920280147740008220849955243873967583936176536991303830832567152797021198996197204755406465694036644695332386995071118565835289443843066293820181237439001728403937628907993517129571121376213220170112639232970740281989897204848426541244006028160518250776280515897268629383552480926686120030931276813372830508557421245317751547568222738846920044698461733824134429241929281799690710742821499847541572657152390566729083549446646426664300490973288608519165832919586400057242706142909154260805480867068993185245036760759617638603635631212406508028799831654278883818898369776298019670211476128940171713443250355294408364040536923690093394959221405369505054049354460590822781146086033613230156619691651082954176935098020836229468808786907008961006058750076371806244971842507681909074164911905926614430762752524038404551688865335589041237736957683450271974364247376219628473603132972274111466558366156282408565487860950665797153400182004533787677760033986567953794625030000352068888262976829165736466507657001474385164114688955534200320179853299934178003872504988744798633743799724959058796826553135326505568093929179439336345862634196717443568416050852873406576103817443089564092962877064702411824697639675557265958145615013033194513476177943921593542385136553480801157146015832339990397990272128122937683329229612235895527659059840520500626042172870052154706769996017605719641681102078178746983586144970263985796576072045149120654824318629203445562469122447605736457763140124146730633122830739364956425352846016324708996591848304002414039442508837377177532185945045581018674454177767071435939559719396740390283168179914311332199568020188725419580866730059039039261643006831681821609744087359297258973925039558026807977303905236278109266140662532533199598757161896520236956896012152200469546094012824378489607699406371192267378836195983971421860827830981276391805956474061367166347213757641592854691156614508863535493783318047539734244341141159806805786259463369855826465896267000169558475397391206927159882677225509359036203480009596891499996982103990600580723076819387151601108900313969903308119657063175314915419447208901667527941465198566608451940884197178396871233974025082113797387031456462625158920313667480375618685897117790496002435997912314903305340023127394698391842972392812747702151624189888341242618564317826188882818389527287618366693321202038734686572320322743176244355931203366146098295719420775243927996834453618191114163787547009551415791731561085890519156621564014324338793911481691817507796089879277222478512021949330385398169359522550807406537371201921617476334575594163749156768096413273220937005397576729394010169366859795465653249652912870700134373665597397756104220992048642274506523937378876075212136915405259090939149682966495754966279446018442166319169230574806475644555215718981040352637324933353019155928452910306718715151232752167068002838394891660773941222396151224261950566702046136244337496303152947788553194447422185924570883778369408109821992877084991418788869606227879060924649664644949602690123070154895980615620406463545874167217758744980733440228757925017366750872832125081039893110754904542831551642355056300235267825760812901326268097049639999519724076232687886592905808306113961465724990501544578923129344740972230976406133416402719947215785657080906720206646651460976029444923017980307769160245282363755991447727288047074794796631307827241584266871890833435775743776396671507062390290940541972214253407775515080541799997530987357667143718028656265747988515482632111884683179185809619301467904980425415200531787699012009266230528348032844307521739301865380166613177270483549028449893829721303724017263346158591896322107045815187278151639201446626356228559088445954743938791542099472633663974524098352818441886195656485942637713674180452944440617134998356227674857271807509465334159144576183511336969159522293309099438921326335461708391089548598999454857465731105613354778182268519771280910110597443006440756616609317477834892296098479933121154552225999196602432558118119964317793522808179329073017046610000650793046332407439622273181799301335141654968217567073311670938611145940494419231065593384864610177822184493336731391769217300583544801273331895449895096548006520581535223633800288280532803292118120159802856126062060017140705271507542830221892736388607654510597692966152390270239345075185889981347100547501820802977054888014829262596277267910184814074482142413775018989931723703330083910196589544072050337963180269159954314994064497465722923712926801295966917510519515316406895388650452464611741950180700506361267333202631298380154136254634018594067053601476711785010126398566584683691101455720441504043259751097502087449475087529444248933560800942596462348627834132232859792482671014454051910422748047497405426647771963462780707838590640967570935014422247229094396441639528582861132628998308644747079252419433195790809997577039074555088241678605312896241272499606113196926248541878311277083401176849744749356535031082965937765631495053876730523198836622082124583564256903262275165974021648220386914163434693734234634415943560114580606515134698119984332737436165013897158587746249606031645051281788571374323169292432864145466613500123588484554725564500260437554145724562155875589111182972780185909511484268617674483588664118640182499187100037374047689604923424240601279656080848997906901285600168653037992292728907795174598728185615657262100046906150168691611644454399026547973511347182225156769416019661177246317284556467062931422119960310096917394006797917281828099314520580526627820658754392618571628365413770982643295468365933848397289599232816890877072550636201899373820247524816984445353752908171572939785994670443402459732350488842112309271800415635241261624497712025566694274445740245470232957409811847588859370136565176366528546994238418463590519442658633310801195756951996633321850261961481137948389514489138269261564557479297438581549500105186380309852130598097587175425613254907685673543224655715996513059178826710290207158535028870440716576729409157862461303401693611873891344050326338280046804908729795686941238886235110899573332644622225364329585451732268271905983379672994962634238004082914402210441135613177184337962247869519365635938018093986635739206634585949535294621517850573661691010434361174785576750778066152631805749063918139477915454218870477650858581409408430845413709563553981181109218188619880548571809065998781806981396582978146174293785309303299282353400734645965732284130191644532760816933757711981338635521627931780994372609388065688115472314156737585254346175610015597524613564599283338683209975063988328455661806579316679387733151533247134830428934630803585065186147156395603045059558701526284912313600467672592209917479501901251519130774007159210496105983062342521484674024583583045988816767282258320209632497164421016275043591211118925692402738568747813378571633673304412723595616828247807540190545213253892154502441691800933880067198000310609257974003497601538119718200112662384710775221296837903794177143468554825887877452580247296220585810842513999808484726592507644948215961246001792146870031978250477587979235971768613571536171877914371395732071472135656440845967310701910340441850443628502170964386009817784803720762316641707290130843426025443726251628021021836264297686629649261370735496204060404959150342086238073600325148206248027746662081213201735664520155073057468334361517038040621593597939230656179444213705819313819910709538747258273609974209481872998491408946103024297287868772187054214624010199035607209946429119620302971385053911277504815221794047795143571399879601857681426356937323236285419424643085029724882150450672823700456246831084295662603235453165845052299645743541356296731449651146090882902626309518958310532962825372026510731126688921908998255928930154104329993660287548773344757809889432448876905914468580061092021653927686756945144520315325068514695152278050260046981519220085607200513170858854299169963159595826694151739314831633531518881339167849369541697460708732794437276321202947492036120961968918542273301028297211877096258082601303210897947629508010468405921666405854001357249991819613297634061573150624729078723198397825749705715966612966030453894813794843693854437390619858659066416125829900955044896786714980862436122533972813247299518832918279237131132094338138814909324271164050323372997811248623450660395967728636339052259047677843766974600783605170824549691806829064899620063475765118447763971540977676137707214556080853159763981431634979067265444215917876724850857816578714781198017180924661748086197526793376035723971193590361844188343552357023770216752600699827885525992145970879869793626155927024437650099936031045932157540489413711694102814583084672893354740378220280704971230735381115346392721485175727344764611493956664067916681705125346435431123523266521446158171500056196648897243954279602700142156272342182763677796205625422287867696672026203014205430757968876639727720023241416131752937830186920202352432193382112393413557529831991970513448832467741066949016497860317025106186423235803862209188237142054087552572357007667208527709814272828854564089828496257223507330127948418334039167608471987118512505117489150976091248578919356126150831563818036060827952675696539338350461060481980728414034559072678760619353653903521125615473146438348285642779541378216555398293419218360942405262345144588921843028913260664368900448314140678971391410527567878077929601493822747767811858991984386179513743381972448827790249703041109764488128269010482157791308033302316744269763231288837726184997277527912377581814457900686864959111042157532980427935006753105168865547615184021516573002899515485739290137113576562056482390133127353639309086824047237214756746165869998605827324431667366638477516447204370319811244778130789660472707980093029195906273071232749220974354788126062835144068001071237785562042545410241437902522358380391887840539949175613109926884948792663213021999874524222500768024048820135575047275896205400451202078084106654998226483780860991615593484621206034040540667145776842463436787140023183190208697856633218661715732669447857757171533003349133247164745210719235771627506392344598276710136181854972219447949791612718724565662240532674298070451151386421160796481183379535884030070156660908304415876028220812213725703879888313532007036851238788350892399968763160992224532093596798819325482682021568405964184162911238706949181540273682813176572742859809226703899109767037958333875352949190628878324465292582546366329536598275483282184641154376534484063320129754656694293500762854205950637984875727096516631735969307665901118671956982452923024074833673912268415214192791115761079342409992620107409603153004115305941282149335734497469528944610378904188030087023992050555706937614759985180046561899871300651449895901060930641558798100417289877606038600302400178981031395273869665056988485860059265302338470937909885798063663745808983931712839256397682549139101776602437762516539019050051179664932528390786628932405055837757697988362656843470877111454754533279212475984846706198993983819300545381067088887874288969721526883146153215645731777311055309314956683356059529538306930997872588373345244501891711652738515917941723416780533778611802836418564719242597373064662252592552842607949846472171923126559750149937287834528282065667349700615566118865956170282693672346602917531519882270299141299400179424689043453670172939659537760781632382479453940481599646103723562257604420973001385477287815496580943904092089031150743826139515755306001804346833466353175794210844029751782101459879054938497234837494328205240142981014792829720130867979513150410160392049163869692411811418385755396783810355186409925384408423152880530704929618271688639336912895846146513571203351604244171442812993287038908949482051964764751888844786963740538151221719501183917606633457091836010642933057638656787773339963636865269888000012020788909816198717974573460020662480904654236498181510654709430354150117096307643610059755761119543469940285855525874907716162886516286537296705088627805792225700595184115569453299874601813742595903266843584392200107801365318465186567579764036595771295216427129973896103586300623704544907131292501367032440248552912880527428745359373580318306657672196028182330570947771274784952673967058019760515512235306229012850224926466104506426626085772101586002105893866417131777882042253723042543403907600060628231375100918629525754756993082288971860701019789083368627576768391234742239573072560588973735182424540636227204965237930826720403339182574220226894477923412257797883330132185085161312783373227779522939560604879615775616528445568661870827056003816708209874537743265156118770722217976537980574813114166033181467378681234865535516281292487289933515451910916013645385760949002980224024271482890014456730558306129349450402849125499306320602141569236319385778834366495816306582044462376928938744032880656784332893472157016096668741201026986175613269632702332610434047646145361881621346815046082090882482584229653415011677245468101611597604106537631148941207458176772036547385159900532341073940431143543287643960250309255261525641375188026694515744384362197536012259521700757985183878820392678911080838221116704624678438399212251626539208494576271597614515207009432420055165295188566643198338887753512471922602936557499817716927733043044834014337529721834601377368044430085599668483406329126426213087355337588207071738280839813367067190607294310890037776748113843143526855217595547870782649199261572675637076623938881218151715019740660095112952926164992302533995343769116917651723924784618128652542731898328485447773005235193071160985294583516092586771374538233315328146159946270404179661951985781236996177843999600995925813520523408440629341463916714895056140892293992062671245356316140026327861833219153512692176270663666644773842983628870516413277668027260569629855993463084532697481313672611762122487850549957272562180418357586885370866145544585006175311465457465985597703817088167464136195052182147383378300436199223646743461738743553397932583398619715360633331947710725748098423129158543861295406814559991960083462171163733910873241220132861211206027569310766321947415593045976574110966135612341492278522769701066348207268193937014127376637047840145518221528959270255044230882038666832998155935737016501181099971937631010998356399456681688822625991317799504331057539806348797827032782189908826446625656691137603252241834350527890458372522235419336601224982910047712833764447836920025868939679109512520886122910400971235998732678036278451595126542697724187078093535316127800883696395368212586929650362894038589090258421118277222250132895478866068922254577570030124498365431891454917012659266130077261516780509811459455790602570582416629622443115036783634624080241831116519782891578141231170209659682363097484725806189650940169730932562606802449086940863512866463821497437090666081075959946535389722125622517355232522260046850807367255906669487259583853708662548283734181266921520157195929970053546144346599724693584010025302204810269531404765495966695840790415644920155381527790063897783102645271229078241427225846435566196590310680828486973703663125725848510300692319834914417896331240113440849790175901503060429392751915376972207600021536311735132759769875252031807027058112879112258636238160015323854708513447875988284789493636872181548984945856752230805971110160590009389032008266599311648866101648225408413875639812380360326502648409675873466007445317239539255993373075369928666326861581766889500163381436390706690441556686882828953511362960242027040611639915614372867446021787431789117289953881308824270453151759732890345626610332090314722718980638170277181102640121787391943755285660480596371030259144665364519290100169127352912387943551200894719289206415369905974569461692992734538545444855528953622055527922765908621260908050412051995655584427708457427786969711723500830143870288220214827751868000258303485343024854457473542666091868210011802529745694470739072313698324351947773856340840969453368748524837120613687890783212437938126596700105813422978109626733800477270353003860188514361650558420261926333498210827058168043573059748499174761987273287451009531643111812307744135946737416644344138760371470289690557948312889211741072976004340205924599753930818367606441254981441561246651249484015644924498008283502442614998042266036271302235293263842438007398743538704039899470707641549305246557576586062677189088301102839468339626721370309624411473194772022621803399256528342475609908775928475827817440713678323384827727663488204604700197204992848841220126251298646183735992211560244163969275965406533449152392876015754471830377934564850039922437848971901972395011866279112884662985315327516306204114043125600014325203228544963901363836264142579912291911408657912288484609829510099491661720057684243326433250964979240334957007092069508155265619761761097470722112446943024995088461215050697790035737986574278731322019563191437194879874409816942551705312674264590998583885557920127636851600126810528305201783586681934552349169299376231413813972430773094630733518683669609600299363547343209854051876996644531167208003676462770621804777871461614602764778557665193820909513019770806031289341399416436135115950822738204942716746011526367925850223651895833024861849323016610123147099676677393794737631128194499095894962875895301447248475021772751953204770818105630580502303919314488000917702928589945214525372938773943361710399250339966535326228117343109252029959134914724411628558509384642193227573491702706931503546490227798560253635952781321339328009479948451088062049204589273182376561045312428714475302370502434687947720945308487603614533237011668834966768379717344818554905500149240290370320117303246501565687723161480074077695801244099184801426343862575936553183998557321676197372844091773958874326151762513477357236874195826196118141676391253270600502743229074946743817305829390982651853215198367996959194627960468172819162003551172239189019096659862001250130206422395075922232479275885868437371602880431146462962521774214019486654300568163806387405067968151642755680499049751901416837758013515936561857230083144048734309470856061939595061775749318231549175208117076726291947181129286759446818151971367419598167176938433499072083231913176294229912583126853345811115329888247466267941560376658350906941100844742408523189135489237573424562872273704104879501402547591272181202286422659674148167834148284705548511567912365438307737212635235406347478022849047623691472663557640143587673330555505483799397339905616494825287036553182700524565254589126518799934571840640784385198101391821314811166051978186234993899954894539466306615986406213804336439871539274913085619128893937665877542719865020573240299351751736176471036006171894308097051080098956828970457206082838861634555015330090052263382216725202781587086157221991636194013414760806075207738112915434741411981520653207707849953833177152609862148668358760730494933282620494798182364869902150516735301157517365124490021144525122721351281292152486714868196123223337317644067564331629441443399564495414423328439827195207130276658316753560736055922180298042528211606517313812146502207485763151646179893845455555582832921103916639765698199622030560564520095048441017616385818272242442997343748162971009752161287218980595996003390624757085803685278936803630088884966038805546285850345791065260727401378149523431558765703973193322661427845516164571583842464865290255874308007607304877214681838868894309062936596619988226885691576424708409496704125289597453061921905657338725155822165212311392753750001090931196044444456114472600217119107127701389899386589018353887051165243342989284219189493898246838414484993378791812547947532967922924923819604068874776684837648404914157080454949328096626827893012891848952610766114665559455230453416762692950609676963886044461337209402013865895423160458548673163293775994234993246673875147542667683083695229516884009726117111967132380480194770435649666631720299071308417741451220209338832538078191967533811162025440208794324152788979409287634381162528358519699271970211449718827812876571922242185835104123103461264909267045303922735086115872397990451999637392637639910715163102009561970423748353578268597249040809580697050397191603951325520573564670259356166040633562411702611612668943370225039552793460866415492328741501439941715361855775597135717439011489380108937633330588836772837981318182744342347418625788984252376332663113063805210832318712655070245130039280853023817518112439342556299931564399646769795929136181548915487950379832317091535516636842451605786858321997321388622998911423829824382882530115941435453221398806851163125504745068438970382177937157281361603578204639204713927089268399064668018842134801084643780446905454972795027808819709376413253939940326888434702484850815958526860187643229665182820967243325367161369982776748328022392950466725102713717644176851420280075339790467660108594739859166400594086399281654726580094602098716334614040236893373747812184809745774669435909619678964390355823336205895186498081014103918823954861303843765979930878293164042830977304310349140809073826233503865262760676771190316863640935290877876425676343750895324335831735586793997406094418998556367786652774501061701068715017526513491842133743532534926370394343625989949641060112247696659034865585076642760083037420429702483525378462577261485358314473907243531567754939655830565601609662639336304164240024704906591732920506332245635495727539290968645326605122769289316587407773949480234690987682253333113561349888019671821991947139466271041929310014835048898003898533881753229091245758121138077283021257232207580073019308279631161419954561515950925098892616151134030082424504716107386355889623987630733967254000926501624195100445844279293337346084760101306826199708433376901753396494999989962378257302035472027820183835813201550730505679944024888815185823116665985194924844288470535940164308419352270204806939900098869421035791921843843933691158764865826461031458607719241161959211191660617367383941110049524206837731282038743090695296719616971398307569514988560627954789274356165866476319753327444255783364135639320315571557578410234001701990028856159839659398788288097625229184750129059429169381558853224526180086810943105406910948853866790981251772099716890326232977414834674888067290671539896624281225663262476087722726496906661535342479826751954500965211746969156827650066446857802529250984547830193766956020722282836424054893635933727608097512651682275471869093023424306059867292713308559857106093832918381542798266289816751148017494477357662178242886397334338970565671012965597015425833614039343401505809676609502539517015649433556617797556595655955863200774816565742050742950107048310086119129793493784673800227559618306920559069953087458645575757328392913187447429066582317967560564133124461350537942855558868270748233197988902694200047966549433914736810713910286830088817616265449422884997524058379118250872585937808138961828203944666515815667911738234656610213038340731681308273698191954532479058159887541196278317804726258868322846956688916905956467276595014880092129711292634524909935935066910872678415194839441706351984796489539958346617741684886111845482730060526478622114976314677545563477525955066992119679097790332417847777277155159359872230552050788891621928227577382480176565557121074231710933852887619514667657239640700268356603726710770584703471119858745820311232989080257600858410714772382165237663821796226262145141379048948075942351034589489863411999669674675723879240999942735136633086885544878409651927502253211253532537305124305503826918180680883977663810587471669778552539684772555034960692795795250732148858373676302921051438055225360969142876762861220652461074543567107739540999079540950985348068680523579215776430483393075540843451812062031609564874611023635494118377743178127990884029501791078429821962180081400257721222207472878288421329579793000155712804363358485223808469139239716951477192192048388384120620876307969554161360920989460588703115857567022635641975176579954358333456370457158904785670937813965586235928453950075079145040765775261524772825946066065335296388183852039643394116360068010966990927785978709185599882904685573907277970295180570323788415152462737053864844662184616396197625242523256219103002120999139854763216509561441254189246294973062991401103216788481820402351074462902087692696405852197927588627733326767192341566017945825701541882126496719771869768153294629859513354609975930798691815220859774961113010547452113073406252881894020490657835103082504510556030840357149584881432704337551716617268963287772250915356656112817084256880636976077613381391100070524502803544959941406929176931894934030124368460642937924593780133620941353350644721300440533826263555551747218320720218228758209294921873430078162252243110500809127188922714010291066813130980184833005129504760687693063830102143553168499388934940655311522858294882800485964918046498839894818942048740753725930968609219405683932603618354894284305923495338755228096874766219962036418446517725035266424330435158425884923037331161386912394685452245382020318908211575116932104195416816564519111243033445590451969570277786702700133932433003940091410950750555993031487932390717055963790850740401892773622354501631669680272117365121294257396534649405056692588299718040138078670883727441774521731659083828230827706040916388800941382767311314606141218888140395570515106059293291101980393090847676394409196572140433229864144450250562363920267374628991729656261920377779471996606552792915813080079382926356508206535422382876823800839361959327776776232135405263317387874301608618070014650949515077740108386967558996707650646883353900347688514707948717962929179974749482371773408348112725485821007702634411504384535998792855316814544927092954361516063516560635948426842643958287850618927291655821868658005274707752103513004819569927440959879245831529466251840198047754069774708382498043889661327711854573592877935669638742136200095030768689470100085104311784590895367676739149776746608619814839202357505583671648971373881645542679814251010310171598490112223308544304263425336741162886616482812147619620789512682566247840164956995968840274703376168998429671026944477533924867729015353288269882532547564279739931847633517255717836165857533382876211455730779421491838618047395797240608305447291653503225158298615811785652882938692273768101839083179568264938833328089206419964227742303218328390704213388236898545679144434133913219831573970025577313421845444094614355008594315513464016836991922954032044134899785469683779749392771594445484177179471056849335608737278486133716180180134452537068898517377863372846490072685478815326769670151626353164049524336523899585321936759017106526083736924728495191230789072832543195766367038398360505956080581708774150819574367915474241240743192196736814499070305986237759391428184174070120511205848538494288441131686826490625355365705161919547931375580908031063076433723063235896881506389609782080258519234058983102961565247949732573443077843836001715732435879054261354126159295748348012500774776371044149371844648512957080869724858998253692880178538779037158690351497517524211886492260767465965204174880019301763852782750131091622901461365591895675046712921549053624080075174038661433332759370231932900920348163815166464801521548883931249243239639339456466524773613804674118932622155593219362982989211777716066006219861227462100730362086384395102714774058406644634757435304673865177484353213448460292422724581238130310417380818231781390396427586140730506754845081409111435303767222129287133376530863435927654953235627489672574451671244186273585226700307346739108478223887675202931612672076793048852189683210087504200791013671785957789418107543309249797448512130606920387128864681756878679173198531168305028965264949687476405183596797375847523055168984911823798053082883116239018518879742813526034366140415429745168493759089476705206899164448314171019908904832923134555724992907470257555008929056579356298531986094999523238980724549543776550533816078906659382587155883998762254137387185474299433026072899648570557536357976341680579497226527985669597498816614433774634785327789210918654692654366413488372733562686055442759552352703190249999070988790191213108593768377789582632488169855638179589997651137081214920510221609437675100793743078989826642074858938992300013241549446385720591285672141073219537704108837047174724767867900656278151735456352203343690411676436185308291446388050638409961496728079999451741338823745954814263544448781701687555864401148226930133357380362510890337227453163549712842113292375042387321434335037495878964336719322670308713717284399929342368738233791616736887635489406543002799902509964651375518248066157950055523098650847794355618035586791687266190796656650434902485109685238051117712287719092656890572883117100448569435075507769778258095006343003797130582034730714095391883805075718721042692592108903306264003298360050707744686203000508520636518928634152916872729712069524044669328203474549539490894620856021537090732523645329789829747305834944996995361075738982843354837369517008968911547599154511116506174760246371109510332215150990890361632061705706700287817291913822867465922238909270633359146256459732954581591804660431649335407956648618751014390755677481505102342368438168709351382792848662808053909967951027362099909350733235345260991096602426226376827475319805151920852726699790485802901147593777040464825846113713056468571047610849529764989395544374231326292525425139210451299360450432355071877380373540128282635357102809956439353597744379082765434872290012077753950358935631579414767032726455156645425481706526579517420691321093999167027154160845016809778142630151393821184340336711565832044985242194437212462436192988279154483018425803305223447526159614777526440446365227759647409815382001798310095493478361660654061860316623731360699022471947436364083159287704890540148870402442135985118257674581327200817528588433224608892894751422108461569274527732418829974770503388826389585320240781240455879839237485799014137733913173853523729194081488389923977926545819351064243984244703685668137527524423397256888591783623493730732346519797338012397811322925140852313791275807442668073339691472470241024438690140345160203031169959250138488914710888632832159311060879611504386643253874323126433891056149025650471668373724054967759420958272345122126429611206225961688397695462226601574632020475117387393269119898453891622891105103438148792800473879358038730595774079963038814923664236762323593770355360369337383675385578905819996705276755835601452837370056809694125371876034442214703996747047817826965181379756665295264131111678729853023482473402077289563364833723563146353670717745353399632152999523298861027614023213283856489916224969052163188580189387618293929470186550528291509274130484664993623128708127724329824366893742184354173711568165260044007329245860760297913614771579997525727648055503010575591265460990531693137556174004136604888291469407973897435602363701688858697472544102739802364745090108956448267162166773691755943071122558528104529410967965406932985905488566315357322044384331667958159640558207721712972282966791834609393423532858929222913582619773090554474744120386362417415537941822312782877881870440348038479094692592950652556783202730405657229189454287336185444628898157290518402443666309452057105643747766276372929425585107714060469795609300023942492650796723002925174232866703100296262317802018135933799571239437270361181508086322432574706670742001256105295155333764704442049146891550248618304927319476114247691990929224441362242699033244870296538370184816061820915380738439034556169774957405515152765679385495647588200683382717533644096470766763528926953664107905963510409115188471498364918072610339315520042761444418152691658747380313226301541636818173515648296040595016372071008247885289043673714985545766925749508516253619965510526676683968039666828415709030620205528736469098489347862921559290528472993403631865064435282232181958006581413890206181998690551861632571131224132952892227908149320243146977757188730855687399694302346916091635156777866228787971497935910612458569478438316666905005178057257336341648779985180975653221550516468838449439171556168036746630417067510166637960764349387022926649572548836539466568618515056901651268710599425332828662560712318998289221764454109539369009859519244101509836418698711442169619833274181874434196087442194801097978058936951118656517287775332543380124301892780738407232938816980052029837628802889597138479576229141572109183244893140581827524812072082624233389667876621006627868650502983569621235674899799313584665152399285836621456399891144497588238563853588898246092358106715525278786255027241484423916050537396486883605620284726957276627138944208051239423593250317230838389121222967571355663877949319835408730558475333967265347494695754897132366912304586867053064047653627103233036688703775426306804231811275437658460706147836291081745310100548449908729128983289976809632788091288448271988578576765538431265153774500759719081552287215328778196426690081160235093040964427297247138764003305259524269465841802097753857570592036869224779949294703256679891290367141449077121415384891321703343286192543931028800829191212904415004751736540886906046607759481805540431340558802893917165633960542396641636495657997724166715053905215698443712358671193763307775454846595337969730587714493881914803588748495985460565739698000657337593907439803675477239203916626436219345444174865283446653510006371520075198941235600863684817296742617202617719387148043931862153086260719739242252027426057747105543877251168836248162763467687211815236760771003077384828774578996188834302518989412313176807769049721014881400802662276393558942657475140747641441373056119539531447933040340804734518240120264985603388716526672069309106868414464204031072225429823029327927909585306960740290523521748741735900991860705522858843854715831806991511675080099364150299511941444091189828773122647392095796527713500756980266623531281060585613980272308168769098823516932107372865795253362080411574958729696304696425120219635685733566029595342684371332164149192426612080965358553480568337708787081400013695540430516679961337267423400568536626294128615722068276857785006221437090020734528111322756743922436466919416943920551675737995602475838114765663365203029537544847373901602434467885339371168964697625889391823041893497454408504552486621482003276787247497733285589296843276570230131884090499376049327286591699780242879484037507168500314426432383611538860489261289218940381072664960460412149593924331621216411042465144788451741687796806719969712574441351970500481733488390553644117668292363058649549745202642981144505312201487410469360909425098464897150913504412055651001325556684483933915426216045888474975826660676935902160325302131441111098281240872476315281567928829101410657452147262092566793373784403250045037721434799211452858534822354442824274907492646747192956606827955594146557987137525071942434698805984060261754079241982930948824492297067633939569835631226040315390633609400739613971115709324036518171748337099640413702024606478861087574232396147003163988291363444222582470628596869046092349987278712819893156502979805794888799417715420345937467744572519059726317700046657600353140895048408081800301532317097641795416454501264676826426426770800822217589081595397619589123832759036529641612821069725154111308344759746667677225446654979003463278843890439831747519005449192225253515014667095558643332971207347550727309663787998537286351795234939554469868200891069859084673530642647987833681139885818567437076634705722543067740814771802291525395817512864566745447859212758893056637670906454643314646197145854043805093394697643362799110178518766957333816322695765070618719673429638050553068344103524721719558241206680411697458109125653525889912168110679196558781547176007173914780415014036138192419549698121508362778069556060540952365903917206640661324201545698847434992450676215422231509676299870355146960033868993181277027539534721898392466035221407518214728331519204013502545593371995013467208850349961428422624000171656328013945810764242955181462225359381533334133422929710460694484765258950779348731259505993893158705496938483779544117595724950609675033611028799434159684104523923360623680046508445287535728711229201157572685605179526758661382890229805963979409559218954954265107023309679622409019641835821268361034519996744922300265629292636532757460028297834417031669608234252387304432008352694387820404459643182785926360302405154104636634836716945505843942600233195101084897341608255772831260245390183617842368276805053137582011730344097094023235390858125768153754399839833617067584588626151326349393254337883349442203889162226501920138809269005505538414343292305608432894631650619549185914882154486069926939028000185110951035179761295502115798621687386322516883686644236063386312591910066408489977010837655452090854150629187280217149227630762544914848103637110251180006580040406958072836741771290728157231923889891282608620738381476811321948375384589605059277331624149388909728292892108231213237966148549258068467222570966634829126288198343418451596619152992064524683610720487905722134478846941204285386422424187935293033456733968003342872146313363630698501288084435549531723022454880211967384904356904682796169602305896511942697690235804295664441282465169457444570191551757348684062489046583845901167714563309947147386201920828292482238381379550444864997087425645171687108625115080374653983351987617222421512267648505298438955964881931839000524713350162151825226714343336780161121242226626813860743986479092511666186414758130160900149376740388924301961647682896515758503793661020847531773790875773090473755759046271064816355330368535622007430642509361637129857997294309726546168700993100820475694629420467274939986438079674044384379932237430269664259954842971513701317946291105129410945669387524103567866036829019843416435025480933924516864225829333969314559138414346677821436983531328389312238225237523647788359995441874559953711407476058725769904366910285825945972072401858609529949905479232728904348159471186536935495423489690750675462433084639004682911967110063945825108057243100930629801724954742843428852400484587413121328610066834756767547355738418741039627245213464580784998489839927487853980562465717667246024787464040965034589091160655815687519637301443064923347235359608693660816086408723962355491359477960776420096524137662384084879563189845668608815809341392211796767970694531119758728875909065579358249289218698397992985557079539012434863232204772560710148689654135811416911860992787037959868507846340469867477340665306638040582191089644432784949815234358913493029735952235162445705138735355778216141419921246070810977211718651012392968769136971978779151333082545939428525835776798875699059241022725813436344369847649768760052052057889306889955588715090064383734014991545464492217892791166350042348928021554946035171102744768794061844779221636291049084076698087555231573077511165708520587220578623998594693083265860536524098014397710500154876027764109023560539812674455168762284282788321735053092380750615520163276867808885000723555724306346401738761093511094175310144580655688049920433824813793877866514458451900206477314596934474009727808649078920048618851764044884653777132975435634767309010945512229490792812612104840009547037205653562563625064140164414826522005219999706343404847588857220973040818308196426775253845907149425062356201057886433234542604477966078093723955770328327051411830170302631259225812092283060353778638464021525518390475527206518518458937884721204528963375380557405314165239271255334799802004772265533615557282385903388502603481174066150711931332585191813578366219848616060629098833413742441597602987139110253348279474741510845919187756336041049875464553584812534443847410659249191155661345413385744337711087421694628457945864114448306290497417306987461013236538940204674883379705200825065113330462563289482997113014665545434826788958297707122213109395695924148602736174522302529548300758660771699378924366060276384669786024831311157596847415770344068368127453135238782235195800946512594763793349016439811212492425647732110851652473737646891537251314825638971797479575065382510658722216265534599795424391020607982981264318608748676252874424830786096815182566298581214686513802673984639557053742554894889043312456638182148174505405106980179176537628986843764649425789240049220569718808691400720472136148701478556252783233564241827498277720664013564888723750890608888691038330473420815802198881032994297445988374289244538195273164149923633049179512533601230624371511776007225155943483082556747301701700475955449071047704002537742891831171797998484726689075721299649171008982161202212119636807791925320850723991213548955894044783163992957676336611141280403289451382310899237206365677401151973168891944536367704149163739103613751308791437099918689702209037486797371217996273918636105719181626959066951748887240112296362212558408943494659027058538951798095107201992913951319547988929884730831919396289729107042143674786345569164973505272806615368494121092188633999140278288100136206338596443662127503266097218943756801842339622739185538610549414226833268048537658665317609201016373560048360503674044823219542563752601318844668755610244820054247335973852543168930214598111551109946169197132629983178896413045384804120464152141993036221425575372065317627623814223751418222545295433118555842605179494708033310898080798752613545290276535488453517751693802342722704710212766319373519577168697201623934627587822387305542746804106207746821225735591266977576945329863913069068857308501761198992521073545852487762074209805946397831315851782862152801816684692766178535520630900553192078348149081239584056607327195454824027875310972394889794699784560319896826669366220208842833011493813806844740372194161984455203597059418897074330111655395690857256981448390579763354519972235548877271242555260766622337739541957217030437965768385123357386945389471570011184993834183634492415964916083060979403424712090662462124477047593083566148696574147358245141177372542462357590896372253783813510009795271764172796686992299675626247014160992964148368385401168516666029882012244059704360161139565791765020805028595218066963175955838083221059933709678558007969290122228766518358024309589173261746275141462816102337889570548793163904173366452153588312357154140363967430990570477453743320007528295051116052879204237721674327719128611928039080001082458777140420858391696331576110352329175120657516688599250424301436142509653634635440417191506425439005119605771850706880046525719201988002373582900560588189866875941426495897665468314399063815552659124602183973789258281591925900585225578837996201435507069509076798513386627209528637232841632760080919838069947104421459922526753645123915103675985184654955522820721194011920474070773610729536760344163922272936239216949249611975076433669209375467897871711510858279368024631460025261873125145577916564515480939201038682723930484001826799950187255848372691905124764185902350135023655388048362574763250293752820217519623462293020124044867104042367718228417181462047758346554956490978430182844574421362169354113520420671233110156128512290436479650279581421452061262033879220858159588997662032765498742415200180576655351325024197739379564946755053159937926983982944605732453796005539180609394706052277469242941368813552617927002525897767799062498825240496509422280284757690096876242130970075961455800832620748665556736605824554987514028925418695620436746081458077612048431215555623322669726031366668275366795994481760388791388925790542205204523736550420446698175241835759484658660340537738024189475916139943232293916615294746375713801551826048305437349356966816000042444205023772232564044564343079753903756648618901126686045074020452900895790988885437015269943521673776134557211181777189338616668063667844719376566782382040847164043993860407028430833490581056030115976421030955994708019973073749945162019291202892209389237200379603811839654147075677850707585535163696885054506207803490155514064949435336398883244382373347131574208814460908446004048487779284135384838948231699833237350752944377544286298878991840374652037372523356811407130057988190841168780179972644936829176506298792593831459139925645588400636942263221005546331741876479030012673540276892528594244624173781075288654658991183088117696186396463810976561498830800775543150717596918947141854474662268311481160895525488702945671804706468971580654730047196077650125133507133466871698993842705833363396566048770037773045673955704774311591967556567145450135745965368755517367241962369852614283564350307735461652889823488268280974000109339461834335931873901503785833089927255813089047034355805290029486677815543115540229058199960267441841773841197456291835170088959843692567160737299529388274044908159088676797063197073465879093396085563780515202396195728724076699459514171610580523767342381040471153675404179897757126134829694487923603009332246353776661927805330922017898600488876709435661101046801280533693970047613086226939647802230304370716908465341416220253521378713088907408718539746727449722554650463005398130310363748593181221071100176024385355103070900054593860871192666382523582251666977731417315646046370319373087614370595748448457703085316302714280021693841946234145615887689608574251762456872646926710805792779005407678820997715193275837773367096314530497967447590102242943369399569045632134461715426149936027979359187032954694457557908392024624849874995759425385730887396066315325252361251226462565509763046707711526221410510316576971567218119652073323414358898027737857288894194610732248641886610216299308029753079610165194774329993120548376454857725490132298982899078074593849725834096012218102690631608649560819674859705276064521426755837841313206165988368671875348544592487286463447566526259206526248967407573874494600373191454918994863092305582928159651814258356153867024786589227240134140947604070197388701328991068888756889781962917788824427967950225077583481511534426450108089895497158658738119380786704457492470015077222898072008041675178414397149091756714488244612479855943143604611444208786586672171288304074364109188953060038070052221503302948978854496366752405377014155827875479459054669295462455032785416865369590608104295066768247875018398693369573723405001250547327176045522689070502282234430853977411038409716927868665537095412971938793947070467278941566295282989114187306028464268300152091122843454880884710005936619547452516757211596508271619038515158184850652497049809721263606999444358305664809287623639798536903166283662263894588750744652503504079453321903855686926923007211966358063112565436550391288437102381393450165941538611799406568566891777143780753964385536962264225440006445229366504463756009617614012306335537621276121844039034565521999294722848897384145807947234502936502182736252194100916167212520192277999336010851650502850384525080126068007463652681178768814998744148664694460130871969593271002793761214119609038779161164943498816839879129185861740492960244809869543220489682648948365843428464703471149919901342226057538217556847584114801543181457810320031534909827813692111456049829873601827527585068029767637265541122384821885693157906032609891073157858267121207658835109088594319452216722640240285446531942529986996784971420850558542037969117051179792799821323983949245610491991945132192338729504526267997993467670883505407162696768371424995973894607048872038336471019270641718610188359345132608955253163781936590369684010437521531559285825374295598620816810589081569777642505658401960933991155563180051084529668050459571030486171467600926444739692812760803640040790679265719338731307629061762294565511317298635283140383343483189625359384877766196030994126093468857533655793773939238111746080819235724382360684591127574785311285285563207287485873444020863134183734811965560438501785168262202031831239248028966998943495626508582031709904454109200621357017052268519900995708132847420934658443101148643262200040582593444563159857127791868331335105661799367891778866180100737170021670784965444926900255442874138064512397756320968208837278909388220014874012679995582729705287407537122237070866512603319512165801261729509722930668878803702320246997400844846128474367413386420930730542011338029895805291404635220413576948541116587317794442325309983918608615560964084967565079356088083341548355142096968554517998225751491254932638289886661347346078482939776045941804583660042508164276346732147589181502029001069755476586725452014888266246095601376495288344555932459158653002644964742280575382146403912768164212787813665582318889762027789961998085185744891414215992250037332633582388250650430657662458550621679559500296578113848181390288197377161664460326085654040605020574111107213924951613214567184232468987371697159095555587566153748623211204687052717724839648868190636164304861337458450228046741975950378786330008902856277630633779061947833828442495918271803021422238332652885460112657587334980801445094361261146280016889369439958697214301501184890525449016404500565627668973860999897739281297949824751850597777908285515704966483301916246106358491817447794283166878427397589497870095272521435006349489896035420228574628368488175846977542195085642871643727075359179615937754227436369587945614742245256175175429608121976728120977543072786325626317231816264599148229310956415085596296640412233001921188614330822951142029630790191127654364016530320704808097442073184356724924096658475194178280906570645207244269591384215567937560483638837363142885716151941044386398969712818586306123719614607188898859211891793524451869954003712102514621532696766564427409501914608338657432262523784163229488577413312830005950644941710835993602337467222773052655228628325505138980040324940367638858390771466748202610309803508971071977689279875890709639844742774958735535294869520505132435349473162970444338148298783815418180648647781397836954330226680379060408747659727141590156476966429763294733891063710409507986440091939519863808479809368921864874259404757280752186156422740566769299298158899182374407035003437177773771226276273839058244581133573888049001747953777975758534696624752872584742841244273575060552001076969277572676482753929515585863299693247310558315990030453136309238637569280234504141568847981951201663065540262621479548840150583979574699673514768874817788112370317576303587841930719255434925302321881540093394607982237575890316316007601384431113628693921561771428125191451350861957165336505611687224326320790576204271589042273708979172184966492654558726920382718769004584188430358836338001101929642744673911559805301665963291068979293297852747094819654294048351304296142544711534615450432707422391808436004013607916104164994342689696923267685640842221491764084800252084757660238735699968876060774493710066147778652231085073724290891684077520629790429201733948305939116979587810190366157684713305840472609396509626498029141534747596511458671676269356812096580263029805210001870513841875170860472202630445180569769616154805621885856238396217441235862741502539488451904576322417307305620842162438359727612377879156257534342999004753120041039000436955752384538495139351050530630791177069429724467545572100127597398311019480814775692062109787186014983984341966209920643784705513509765748687690754529342514630786416876031611986782009830964118102063299423533593103084952611920895283230904781028754427177340291859155277150878718521439146082878485840245536377040162169502497899472872130098403525508477804340482748771249965674463865157306665132964462959352296325180051903735675931248912429673316766589603056238907386591491497365174195615301028870173141208286987426064924262197171792480993430653355734574573127102110336771538651282739862635986131770284028682837754225450593308439456727326638054162580615814200869260022442844828919472533814129424403103521213166567315422133045676321898706169534459738762556701687090273715276632179150033767210414740223143809519880112275466335539809403133869484106186668757691643224010668320463538741351500364997862908793203145189023224079991056264773251421848542593348745700502144927070179250388993854279812326097026339422442839632959853935640708660664751367657118442119188763549033530753735923521036534393893203271998492277246820938629940564838131707113551814824675734487273096766540782028591745562194836906380391828217863666169486468508298403990325579321328081541432509645952522740400072192653936929737710827254871193767388262153553279054333597848405625253409322793457793573703371427188677880138187242164765235427903885286927484705317668943013161467067782519676700352015961451382313714473154781738207667131069475222037304977542112274303587669859065823225165838405682162897951331190442477805216487060320103740568333781604467973683726645870136482930849020239871436183768460756208649549902659602780280976459743687204834874084294511701019382858779033181656437993630267320367357086756675161678182752593170041744794577232709545592573236809022306432054586144614460396715782498960664415516543221726560789097424144781828018409494266894278212188906773348170448553996113762174591434681683679340842426899791090050385551739182796531750108660909054511578815833573237326858714688463696663900927143250257982269390459972235994750663003035656257748860749899437631427982966501831290557636342414979033597201199961312540160963495534518820946794566837347421982207635651968782236431093431792742617501078150640483301558579072491936342132037423676078783574574740233421206449543808764328343134919961748998084598209613229908466794744391651562838096052730254466298609228156133387523972891606019382636635822028289577394218242798117915911859811256542207108944612628918872550378733692277475157152936134381608787505132023957724320574290256559066567933475401725405687372273854219271762131527482796226415367425077983266129244279951924856316027643986592006588278308589348245659355151858423838222132936752337151356160091400265548891805544726851517306788892959033465121574498027314650728102868008253543755059775342388617875653593521459435442853268510805337854492271868466209592088120584133175491855935844802716840625653307675102995876261561584421826982565898224474671865294896457781230023141669937199488173330425469441699675431177876001201918573451365600481058937156384152173049696880442362863110720069312534976178309974551521346928068171305551876479517725553765688386974913266711335160801123353698056589769314806069713940798270914242186088927770545841013589080889472155072092714271709284889648381935454357007966748817812762805667452307865073225961922651226201410224775033549865624577079953824546151627092898347737016053346144006531488154345052457267662348533929103586048566396191318903634080574140485005866299454295498160643025693391878504618996400808016400586284381583308983205608819361827482507240123561351231627406963740881049876356981537525753128375328028840149301728422784935291807828410951873548177526231188155739429535110710034403030168183068420259180763916294047841700147812448152166568826531184442334035942925347175225288343163022691467919291924259572598564398465144728248379857512578954142254148188372074675272322771071591864604407490815384374355643472738236847491793893303410580473005463566741053850217782567544159311768757898748740291685208894075042532153110894560245312858021561082148823188052346776566188524831713770530153273280556217756627634602120639550392638656518653165693687267718906186681117993389337276770696081984442017250765279944806211803468451956081088737538606235569208804670938680944293996375638771804023731439027462844452059228171380016729760357112450812129269787118166400945265131095075078113179529727261738401140442533638657872713125588645365088780604343923186068385171540901710395587176687230036128316600099108585683112844407707935033573248721972176758688308435224839558807612599634179941111794186065474752826980450760126024069528170261876620041092736332901829166890096890007852605497020869196849972454733450197876195829732808374171930148691885142353591108351792085799884431693270473242914247895767093889078199961746000896835218700372466932052457809614471809630545886636518521015338640544481104313401034200616508511575560152846381166291468134793141632004719363796191263581775427822857786155974169299284361588409136211836030181684228108399143716561730147655029565691151828090664566816997227787191352119033375139133667921880859174086100878189192307621742600243846155995545686611462823175417464490896439043864226113288967647542571144355957444450647600500536709930143782918653765128949561295574886963253489116176654697963788305052153980359206994770815882921373369497119903627231403620852141127498528725968965362750610423499002253329332094249073536448630985231164938736625941838729919786860094830116894514232510056615305101652762779503465019860306012067808650998950523210800136807182141250364083317424250451387151020665839722321975073308601466783677159500202616404713721523070343989263737285432650871011093060268690101748702710503220610544882456301428720921343926776634163367631953814269025773495226990454738960603864966241988984826883611579080416158441062299344194907535949533942434580669586750959345821778357764281302665992974691707662397652362354491921074758437508464244828938417032134267371983397419010851640079823999745729552607727915991090215583360678223512394160626493834015734086034024030126534868239593418836032157096275346111614099020632276817674948779102000512924032078095105754952691992678417941421163979521864270674773016884516099892208487781750788552606375341410729015272369691852097469279428868636222478376586307329654913868369048185608065414909350887117387941256068115628357316385135665007638987926637341528091786897836554907127851253756880204336259554062073130846338308667256756685300600161485859459201923860271492208271679013866056101564291761169203046761274061342301669351228142310109192582069977990079695920549569730704398313247566310600469509402578559657532548927927328404381420530802295190415527962612243243508759710795997435449070162631642426457792328771499900473780742807908350815588297444654995577297871504735261458964263833085395954728617170046133166973808000607420203062226602289747517629596068470692318219087223763253409728282978578375065196767200867380071049628852579448896086716789150532426371883694612968822437176775700594732567964793466950433677353644582672965701432901687637695869326904995422492702004744469527723178463879983347686574472626233453392439229821739383751283349587772206143323176132096603824250867776298370549950506996384372934734246213598956102242940623256458619947558793676231507275544197222053457404433371061934857429707154705572879576063808578863421146805750519342973234531120736662915493264330375606050434894442325450761310220021839678226657694048716099253207599853000439494412356166796295560503782697027410321915441988527324060818925728636226321214634805072126378841114897601501080215170367527975536649744585107658377720327543292561088352499073881061396941283867468869431179593724929343000228024474364963637312412747818212310652864782056850320562153500910217479707248878756808240063307482775196005264435001677296165193888495957339281199388108054197310455287844441967589796934261156762549474636748066199948245393304508817982838903526048245110661744464494862973067255915173515697498251893244462096248819873096553222183240081335128491638988324832520228065965266654305660258609203578497828967964331690172235879722542165521199817133762837236780509579758441713605066629190878200848113718974467967290060234701895037090555246643409575091078789818184521089231651782374275295496516317519629822473364936679597573417060553461488683126938924011179957013896697743684155509604169491880833401490941112231052622991106457857050774308247577597930006027748070068539723884444989569080271471828561339314167290417999315685639654958384485622182228684610919132200873550568711870349468641697517685592735823891082971924589029083030493635187831891721658349763813282104654854835806539160630110808512422447485485222174647643268597988707451271565594080764673956203008786717984637783440990195201628717168445309561387115372255473679308099053111571435568290533241129065791978894181529326616729363780945769669068501168881314238362674954623067115789083969547539076776072979351217824636715899955765782267686865675499208226182641565309790757455196268380454229081518183483362814251483142935555418402396640287786202062817981099636853218849620321593587040250061407189457892006068488507849657453278575942621250075840271914586307426323679259820288538729656936269099587358600692159078173033542707134641735452111184820052925636758034503842589765620537296782032660120230599448440440756522517401150775722540510812126629475936514705300852363272908662164193749073133361691462178942250095202517242727622410549370380638475421223506366027233783030588685745966874882943487810907402680813935431535147022389554521810244847467129562602748032483069896539921873410936789260144915773144500474731247868215390317426103376013425383502131649386335686820821113675701070042501153317556075021587206243639622794316883827407367305656899321269287235970288806394832893889282561906420371321325700174482602143254134388276877484586300647719882870346307965274892973810022923751717783301586820964130826182817771294871293890377668874905123198418127811388242888790825273924577562034951785284519104912259158524313164022587009780108747344633141229096243194587874048044236659217457655801330958255211499969737620448878647574918570294953641917715795839905209984733508686895747330133931640870554885052379755277377384592298359076785209074107336212976010889780839175569641312295766639850595268817982633312776353197168379630345513187228675459170195777339552100915501291480225984158007421350661797913674247997405360702532562952008094324440690434674471643060939322876101263135348200198849858528525603525018099375387842976091260720243573332070057770503745098585488163883557750035028735882582892203599408564969964595142655565039470256968942596781524868859944594810926737363367961711917713500173261392729938428619712612709341841958292442747896518601031930038634384949092583678905149965205906149490312087519430407004348533164401376142882506253282410767297951027782473616010501160507488480853903637563023522322202993912908589124214395262050113679591751872553065968062723615802140230665305556447637573858698158110649393994470437285520986371942452891317906317621328159423074664929231661391522972487079885755805129203122648851565168976751695491775244209185570678542471842874777366108883966193475405723581559329584563255685096526555465372187950642344227590975648774062671748615429228357190063578414795310466101501473400912218527131076247959835041144263497126097923405319761619194181673815794943504591908684424064320832189327095503166121722362441736494003039267525132773507608645434811014634999452704725873714314919185533022079087623675823030097413220007502447605202826577498612522581076806370294393357876963601337162188318449139025851154035376647955487555400957065376417709483930914398110441930888146138671752013046892802421838720975421431215009784744396269785892356733682504300244282389462585328024215544531140938607966179686075134993936366050894389426782984287885450584285319264389400019836592628118059963814957808259325781922218128275723312954391841739801732498750351974269736439420649492391748901636563954965005727867234534731304393366155125424442190657677503602539467548720298532100841191234000716036400454881496566639529252312906815002804845718754107573497324844673667751580924308129565239869390125723028590109157234974448791349701133243951737924320311635292296754869772238642226625504814100327743450981441028890438362177271038921590139364489284509008866290602947495529729899463791999822279631393368862117685687692889117437296556559829296000734585599544914509787136820067514229907967427203992709842187172576294977190581165716349774480883212290730850322026115261512997952674412625519859492689317403076905674037931295376861337974192799308905726131805604151139440759485977588749902904997820479935130183584649202764893555420186789980458717467643103341156776808032899525287941411958045917826096824686040696383721826042018044449562268837045365708365127397707739017989419524714063543895415387419035206959657618626452002388814491852480940716253362958294377371076976344822283671762291904060949202698959886559442788138586678225655822955227295880347953712215527364449614874267200493641843615108872126803226865088227933437396053126205173609967038390268592624420773981482786900119686966102350808144214673170694400763696929859094121990690209782799196521391338552507714388921130893555890685125192580829435236765450483827824564670143480305683090872831880116883029521946579600725886116704484631911592824250556258354474662784363820203496654253957358764856181099857883134349266029003907021650983430061300701758164664247393509236327341839240157563368925062863234629161304641632878093729147810243861709765475759003740642040755416552560212083379566793346706097212647293091283242425191449385136302357382450575040436703638463521101832255243070199371255851337106814983502531203175967699495910678187679790842144793289645797771584371875816770835749391177406570423451369182909427813820501421325705997358229068262398279836959920300773748079629482294777362832741996326357904794608267026894249933163027658017943982976474997723395682116835252551029741391941709622514782673074440717461880890200624966358272368688014469300414722232433029625265173797617215670854484472360679598475646593510760091671028892914717896745011023078135557668567756482244736740592784233290385500393698170726539208493718472107527690923438974218577914767893118528395065675778801071117364443118097598112904279177942743722659053289024523635705061907096898003038433788789584239860468899073699800302576238717660975881084996148456657457212451939429565573050256092528786952193642177317168111166241649058749204185166105638145569591227375867606569187648263663403718759450398285124972012400565715842318519087956771458861347878628243611743666219913578455512212840267325542876952706124007159014265697798171669362935939057191566196865692778016742435563531251302337159564154528256001066200232053680395731474257519680961680584990088798208866721751164727696253571637081831376343814727696087201332733339645669343196861788589867862150884035356156855557491379687759631419169461645289327922266655085690227714034499146073719847658478987011916255541770473531958912004192686279779597465293375681170116795545060190281397773518792967568550923317122597641530665532367285370294881204295373969875743078583085059470354070340072976627724795574116419307396797182446599424253863582729317802976067769823671645081300244693060513314317821006539363770382657449553424770576601840241178986786212141063597624240991182845242297235787493436149345345538770405049148066673975395188656281836861764120329464298940268149536761077639513922555237938589655373865107659427024932492978532881283214831455763665173790893616682347162541768124628368530091268073549343989061986357086456223953318917148315383159079464609424335397178662991597917615307571375558312457051185625254539015341164149174826988151615587510415374826741184613060762034382730014108993403883825693714231820770834788464266232907808010863405339347427170768500607780590519371742737890433744967346327206734990188498605545139342754997061492794956677198532933106959724059582113858439298148325161248438991210723869375930913072349903863914344722970737602721298695674562810959468825183178850296034286933491674274300101144992480434576681403706554437220768130104593328996038580920104145765607393459617184495875710437276890624821225070384458112720196470651747485130218029647466832719415528316129576732325665969158009274600238772895529050197250610853256432785374198321383791508491897384543904100805738666983528257622540824551513282669977242956350963527366555206999156154854039120792859860422368264529769809258566368889169290734592966259043806593807405269429767019114718111300626692207786458696245160395230552250309585266566690172731149574876150707549071551084209873039380594968963957302426244698492406575212097590211622844468607405113892391534801542388623033960549115300241830788905632000269311204756585756665615334382110299452112966671392369455890597979958916063668698885889625800031552134194385925922399894237466876844550984881612456382978274221513816796210571003822248427971865390449247988673083924130020035768765549901176915182133013828997607515419364202957322575060094890851907402117801751379268667135979750971396794964599089864665607067316774480429704762171805930682293298317670326662713860124943877274252987111099329171165321238501752374610278716508678455661066626442805109686783869924711973049555318368695923607733100075476585606356801939117997911639817749221582637064646575431264198137778050778976953992241681477505372002568473186677320513590062784662685351781259390004813040047138805298078743010540143300065347327638349583780690167892942231223972451803470466665723745309200650138342491444982550729822664776823669500734578054482050723977759681865794842249888765519613614540539342691449103046352530668364177978770434533051426558292297348181372901734076774569589167681823386686238780423036302397171748456733940976650709621043675860551143129661908773722332159286724214848809252474014731226399674746403276753934349788859628301293058440641286141147500954081909024242470651921760162578338037875943493383559849181802191318435707521061788480430771644872307134344851990452401450733724397536468547476510923012387148133854853229229953111824274378988416783658147336498485708561697539865755401352100953339658467152682472046172237621535748510281970160939009414302824442704325273198705499326909941150725212520647109923522788406294231795176777185258247321730660574007523166786898785545648030907846052075273034173121993067344938274237232570606128041848830182278692484918006081539587456319657341792285994497787567001786039605948732137493255261216430364702806705561246569172900430623180646141341665230411903754936145941001689467080375987914702268624369841747028467702075409310066169315835284406134442749028918585889701966593936396998245229810005711930271906005553244966705934032492197267286010874407502605560835430077503959231393969589836976649979459799815513458392586607946321044542489196902956788952294581264112012227132062570583337476663960070020246254300125929038067865100512144983718576359409922402031078597077208671579513292952992968358322106592970663948080528987782333739829504937624573742675229448306891420605834570029799947498567977114195179748422234106583476460323947644112987508460674078264655998030545400383959725427231004502781517148910054283777056880477104497566068997829268151899418723365661633320123430181977975553007362335104385330499184167438637878665106188142382340121351723120528433393088836710622960590958684775176974826228506753725110297389162319012204676831410336392807752353158611327061383335963699768851901340150821125760523039417989498356491579758887832960829521666096568819319599482069528642834990888486190562968896537157061386346591696280540073697825270925935904368931893697598296923904482506985988775853385477542049631547306968915919640152013352420106610829217029851577321462922420063048555355225178737454663079267649317552059983772522798667809003480028163190515626428788462219590345481372249559164591234416268681481401985662985326259827421476708796329138072757113512609525001760088845691823003893289627513072510231421738927181988408856266553507616227093855939503369762797954700276521087183711028548377315246978588965173910231790489632088164676769731586839543096448536223078665930686916530349266568259843747089531944199890303760774754735564501908690744625609429165120531819987098172795441476675930696509882738161243802343943783971607149882508630063836933587259649679666977191859063223555652713259199274186958865179968055080032947921148660537383580712562209808572612280538729554518532795022397741641423418080723337167817314565470301715851306477709620546108940583705307792609986465857583983467085770930346930958398083792333410168652458690028828360835031305957773925964300304312476004138320017579685673355812901107052721425802604187512541551720163368019188944073614545333180094083171240950700101089411966254357979991141059619944738769168620941966992012498796824329337923790205387773911912340008460702503583484102362728020236846174687109320327175442969919222169927851205009064441629091886194981560566539779147372079057816633011797991685827341865113693370165837840048351413448972403246669921293642098587096958299692319571776291489810816536278258003500548203586665360481775688514187994264883030273858030516574241085614060214313281052056797967386070026230367621608222963955617942266039326158746716559553772412262509364520161801378279336451921363453511360064205660768389766408266193408088595215620604153249946050878584787588386479219343435390562622688363295888364844216532489235469199630428612731657002185080692002751007322079077608832800473987362492395404412382833288597625394237637314407296024479989788737830252299855378985343827092447758629873714717135925192607661556177063583737613062313402367797253573502749125933856319774133224278749087676232403720852328930329248674272695901013302655189721826972882135647711755445656321476772413659318509974325349127249466041078612411076056346432532537480350828629296992913958083523247604968203847002440491410363474361560033179350803017032177998694735163206617568176042485368361160334198039370532416208066127440352438576105293419615095632239443661563234475544305837284305653543787730882347204672209340639952714745957011093843713821172331672109492209099070216860883782039497857877656594999103915161265085259193068022278996432344680442487336440030528757540800079826573408915606833865203054508633395798031150656192583043794266240427339313393343927079771846614388093530143920012819821102771593630069975160720091660893085305351819154800699668550199673949823039277672827947908512719404277100554874308990174079350365269692488018729182344836720583756992610749537753463730306003166750349157050094182839610921975528053992694065869026265042313492636076305211641860568692796712465945118469044487062726954300884905039288665792328119226210346854511026750089877475909731780126717763862878159195377079241631267120445991390328682119767964879573469918590805493430731365225320898415254580542319195852137331209261060498044464648341299599007812450630162768909235675926919131119945933327124803715888100277558919158612612137325924595041003936526482541806786661294821945466136655753645266759404603892724897609237134412765843553888514381741388299235865119002948795312897115520813021119335888995502696519466489221362996857801309392338547387755955414458887605091099201853466186065683599420355779376225928052162684441599987458121579816699410948838535660138861319067139175407122236346467167306081486826781110233922709192361927538013481430000126755585402880597193315714598916531488199387114071885583556815440593944460871749907607173900268063322456863720953216403275437392099685536636393288788026561590967521970706519854898144960959269219759298205985143023229179525440685667867523293385274765474671782565591880555749432248672775066772071014984558122807108090483989831976065195708533981066958079441609303490404563800454791021287036043126169010514131390034192283106586188980195751353407881385101429806427980061152262878566235447798576868925081493177121870970559808611687676093539321546411278873991837670682682123985821422914752116349130056603509556480741751023727346593378256258658614873642540883567837070723389934517884754073783702157906017155252633971634583614076892461401395345566201603020175760293995366724125180811006660394687882284365088902366021377024417329564368881130387875414250387720443470577206879451765961776097415516616593694251769808839015098109437942044545918433248501131177052169294635307819535207452761358736659406324104124417098924681947194678719415003168084045343557794011562152782765908060086107036849231904989988683219648343502654309318736147876581317178499084781516799070332172970811014779224539465285430927414921381570243450014738893188467072548738381943840248212744522850678452958681409316808407708170222644883574631894433792396257199107487588719270372549407632652191887249129145925622068777482173523913936351003392644212892816645900410173334543747613180877347337236773326906432897128100014132406811313662093247580230332160198014278611226887388111329430261271088220972077057545421927294735375082813724193810545889958054419781373206539989474727542935169240456017051555732449233776978542756985644631451602589545221398996568440142796456380002372714681384642982057308547653764062114538250108325271844358025111912511600790819138497253516890111225432209291200709945061085917294396461203360361273606998235280090157883546920952160268841291791841355505426959987715253243071828204762910037659011962978077551795176137230227266452865252407200879332942038026252319079532857850144396741546143711783899137331021094358898934249965917104319179079109781163082024878714870479389098470086031056282202579182883266972762834057450706459358439492118997094524561265666845563198675101758380988567136343941926528771015916576674082863383933624903622440315485922725479977492446522643498467411817776953072341674451288946959250216037075726282729493271000242064633773326509679323473428350466403061183061320901389205100322204288615903933673053598780580937471566025464849822982983503464765001419544395873118696734283295240381611732272983296530382977736790602881549153040135945290343169196051255939085155794198423971731107522660149276015206536652107644354597840596827112214982017116277170938751722657730206643530206672013310077868844640729587808903135775689776456660278983794912277677275808536532740041654460114774588289475517648240846853775623652519772071192774500329017677750857037404814337589244198568464671529894016073726643543326030707499738447628487214200183222610196497721539958476812583478271418940036200411844783193905991781767381997217772491265228433651167752311634539885868646029185554579518200088691478787012473723545835287185911142819974181376934284408026586972933673354211740284981804095998436557173010772828865165360137981720461973583305894506550118485383414925121856755130555887214079136076131685814257150629268913350036049177940590254433655591896491362502979732211661449655275102479090203135852921174049528317238414305157955114471549452989418463359000227961556286350010631290919616170016944661734093967600507049796581231323351758753865097510773092768374040993427509863108206155916395292102149269524631812359618395821302804594321057484333126984505530843653223993422118864430895148142515053469402304284649293535043807106300601382505656004488145822234482792469340140783372925135542240056395565383902919512435866696217975746598205157475467957125184359426798925567180668718767401043435750383621498908063759902617753122706813660979473201559571681995045947248967437996963632707903163385132740845225773640041263138237762836344281642836429581532056620634425767784624391497357806656491716136958333537933781014726251109551702499188634294363876729456129682701138537100597317425470504327491630085270040134378798023619310371374832452702879029165849290001949071201722482445204164132483266560428053636342398141688543721995259717277374427858923463969817121115049482558925831228899658040245045169275863068110683891122413183742172539338855466597233382818635559694593659385595693745528223326602550168121789380714845878393111072485918344932447717524465610952293795045125811996947040209014455568122812912912160852489257143719379657538556907945836947625831153503039579101920498946840616044980645445530233476190199330387890510218280638113909600300010892160511315245697735693575573334208685703258365717910754795952038109878095022424302304735603396628142957967172410865933020271957052089546483316701104882170938316271601239361839585364903980322566353207029981106759521093449458687205665139962375834669846725619170363687265792786109988743939076942933883429181217538304119391764945501281156936664071358555725602529353305577180180882846378500766954869137542089954408453254623943653455522081572105781088163951286511354001965489328581847713554557575768630623585044921949928832195027159474590222057070950748667703542641201070781495612012463051384420520891914429397207445860371838575946752309760752042688997130038752519503887500124872404624807056583922527289472259361524915294137731461375926934883333490326499859400718216372343055540187379868461028292373978872336360305070399060307393634826441143849758271451197301063667847090066323775046874130828869246889917879887449823229237955142509028362164045812108466360491108413994936216186417002765601612109847550533111886111592602084116196720546531900597314253615032144669992052216557039533499522415398159856857352597250510240022403332299038081448139897016221876537462965705422913465774668240359018318655714714754654758315767896686348455954514337463344575459513944122150528046048220174510718317509638277291381068141189299474317037226103374307029373596874809147434215897331310213091950668602183229192005394888363927554114628610386218908279801351541405984902421565383574625854695640967368152912901567080152404847174866994395554035046059795142582860945670817579173711745449378711305676115420939601440628151829387879579205915727009837832356519368233124475103882854586852111022614468716954249483929095654874987544364051647196766118035010608414360178413191286891174005346628967442881228200998743300499923527473879345846261462989780716425507981858449376850678934480746377598230960397417114389903106730517214606228014286046445315432689017657493458177904595015302963269640603618080297634551799229004744001051953768325917562770313998795161616304344465562604716583206401542834964054957340121084882986745905308951606275966455099128678164941124099900114210777705894398799652085130423380786653887569926276479981875779348373130499904327454505409253949068484909921560152477522296679390011127339416071424223529396181248037012903419834308089333756667181209830622771924139200775325253656648000217385553892683615201694798118171105598816584177394237045825150255823279365822317290974732211903481304918029915331821432434760159238674264041639241935919435134996056299842891211406235987423494837102471135246901689302388754378732962251011721200126453749461469809368907908386853818168702276194118981949739047051361491177599059984092232895552791122749325861607387306617660867280726186038324631023377950814780253830750232674672923928549540045512706143716390886164026957040534796825101672598978049217667881865344588110522542176858684606907644754132180992086922435399998222006720083549713715023329055527022206574745738149155711525893133010068201413652064679757922008218317371821861722532188139743312457632577226910258616053265166281437511837209314358558111878567441998070734629764823952920428688413572986871194376701316007741491623135506517652276320738170982504801120199104862627666867265702186333956763599155762817878081142226559478101532468972364461808734213489203536756262183796018396004861516726164112248508947505207197194731285076585175341494550696537570841911050562764386699463886520306634045170470064509438123095800031824247321855988011201386063700239204674712688175731725345427845436845119707427756020122151225509668008357839137346379183008528498542751093530607374220888962219322324636322105819503670647644127422841921059386701665013363824024613714974350654770160001057277210924044690729870679075908042869724599659030922285217877205890022042910620675062429275974227654121262442725892272644164761525142925645415244923263483934359277976932501494551937004745164117141447801966215805769058332023642893273392664775387058026449818285229642592879508696494136485858911308466159498359241456197343343699227159290941871445806819664030887065614855735109820594611508046800108981043360969046902101735253607263731643034290368030635928478395723785697127026931409509074553194989555337552895456189154864006121619672706512097047927835240129811130315958648101646029476797657946044081365094401934767983584301507019153415063068615586440850940591791392310920634153423004267398013805197867648792220942008896163718174447156518476358890737263336653568305835901208262517186835128515495173621445253547467307483668242294041334787174461288825833385046169059075701761673025153316380794373834618991123276990921060761095652178294909664801777389552774105004023927108262378701338978748317421388938034030486671055725014299270375453784852408258948832817607588631418835476050974529197517276500833656260820159805459832591960519528557026584732651970349614829823926080449535020945733085036509174052932705812497872227129725867568133662785449934073907832986250071601975480704537788752714024815682464270065069989007991812332891055472980881934780171369519485797541953572252591265242544623060534421153076270158959623002020864361500629686190880147398556140374000124966972651497742999155910633931362964305059437123640116228564844998956142093366308484428502393768568740430951651622594583255044157061133169329902621777371379316790512443836764368547428525605089823297884445025833980822365483180676955177536947495322699045950500565772047344325099063282998744903797289796866807101146070696059044374183482028259858018882650406729486805584924274381416162033249413994329858134739817328113016895025087317568292799758722403462474505471113763539732886891508151532250555813790327813585313593742634417583264228928586758340574437038234552567145244090300843481171658934526010125124792445227209678577623706539344737590578411593998793284073668376141584607224693705048855585026520297676637019456796784030412522336130106350086811967088250004917648951921865713865189877318326478468170345927197513346134371210738913017867547771419409032884780220154307156485217334823315799452138441870995596240890141471855074832124928149385956621642503256735839458242881049977298464989549081730894809787113230120772982388988411541941276266054858480138349847987422573698320014880174385026409167321085485054733201528560215424981453127285860833820012878797273227337222645162622523793792926242101743033504002967917483738677872321124365144436255730228024443663472140967539501617838331765227364532645768161986813348142977255119642322745874497256944210141746285753121811516820964745595300565832498951826261770748935034125771100808316921816191207322048120794455076005419405760658973338203774129058509920178962761458090696230302691734617126415555541916527888793650799794495179746607356919134331161974843884206288149267648075417954860407906671897960859476730023676203685416044820462855961088580301601718453330438255471700289321513470597356552919056291047170948026103118205012776534195943253093574131240257307453013750236125153079254358613618061267785063098419817423630421329197639964703025663061763237420261942191569673472350761785545013725187886463626697666604008493884725834408913363690681339582888852292686620150711632783089060983863606091040421240639491060742596786502157620066290343657677869530129818213587209463203063042612137909674883453921668261238245144006416813521514235318417659233576004061134481113603039094912666866238588727259104509296126731008441264186423103375937627659423875103578695016453328489367498138546502755770490148445691334755498381937179258980689421127355371164171715735608921451160817787587173980110294947315160631079332367353130788482698540648529309500390795810024628752683025963948630761470189737272009392943708606823112029054554266742899489365325274717464894810550800446214671092924715276937832740606322014884973819663994271864531061810323425657461895557901359906160353444498407547097166357778927808165373974293561993177707643994970913123935827419649101665267264124222074929243639878607402843598169192413668586136639042531248334605853728180661910397829737448185394893121996057621680898524853222283374509990378991835115571111520517657728103251945720891108805115961678120833592838437731073195060611314375466179786528309059854317225656517149142639784571869067403147431058449208726594669688730057154448827332932828224456977241109714471089850246697707192650753297868963290164323872164556348007302393359681551349265299071906916049893283454932966131735791624819012946335766299695911565735667604892721253826066369322387103136582552542390505745763856509888332346320389179617150058338860456052237439274800379979572363187360793309560449949867876863660155817651934783086418934194673390198814383506195041630186194980632675075687087256847856370764940290988040138286773905904611870909779819935828086885325490950085927379157075396003794654402624393627810931787692545845447094535079486638641997084555521842255936675323282257176265080198375856219126217793119310807200835210844659992054732068071678616008556758546012556244448369665072851089273263990478567959733828808799787876573874834586440758229921903284044548057597785982772935635735236199032860942985380327236474047094292102653533120629829430044317939348750021753248495314826489075768822515789688268380901616263892818721167928398535764634938542849225254523436117680394215921468323552106571316744159374296691912580902981639099748681616347542208849620589613713735414559104965366178620419813043290721881707242132272887008712699487152400194914734525938335232282732048425013046566462473078074683307065445402496133487288216216431342649558126519815161690553463002898527399570625900920896773119248149774638687080296080430264585555699691249342779319668929061588433809948446694029218866721149072002238272482511403336407789230769031188977922101087635495418264828205734385769693827191243047119310817506252169940367670029367617022264201774962006556200884339581847610132074204283782109860627342624560072083701930612294018596387314936066741065323109594045800726260330639601626484844252010495706675994192238107281203062419539415650062909761500889202034340135048268140028986925222208774399098917342811360228900299641808635176795268677408240864579567016225557175595750251126825679167466481764028146479927881553790686527681227762278662580653790862224423238705573397820188614919311105630305695997282981614671912185266986952831479793987197191213991441382525243997465804894760780560189219211029015969748463897943620093327293335678681518102390723393281350081575609804797793984136025247173028781844688673051798555999490319102637401214853593020838536010857403373728931205600230822558727765837145147833171125120574811058522027855326149467778554668417808874236375157513900094846606741584336823741734176045320101422746128950380689040626944470215136768361963627098951059360305201743433085083438441874918899332872907921093395530047518697421873231780530003500484559311578702209715696519676207486045830035639401151179765483694738123801421165324695781941417470553536996837184566781502329188717247901105956906545445234499338761408859285943826885556214766970892572549376160761106219123638185746221788116540787476337530261920536765612732808485975154618160709837599485226232855227963432345026918281184573354795207807878616872794416683908923377729881534716343883564637366054215450587685937965305147917240852474906756540620122132864665155922106237315436571192472089745464037007094837594229840930953037776139740359957164194826370528105523311054583256532868378402583422175218218947820539430368718602977801360643396871763764434198156606175418412050655016001670678467684221001984080084267351546508887867708839062646778856550941692203577279109837124077142805902769370677760140281263444867965419492397907969495936749806707566154414159724433291053803058795461693810565829278846657731124849919978304929941292285244735515917103602994846614235048819117000153712205135504481891193427099425957885237614382012498210240009345827673440808908893073575000871275510288508907889427898175093592086951118358675243530462226733953885247960670776007995130464241501161011714870601075393048276701007829553095932436421947495259543340182045894805809905994886086365324549774649209006238568879816296696649939912780433573670611521315285979321807511112881293253597145081513998347756928784228488472436158951196706847374975579458055149022089867336263294635793866354939116757805232462551618686932427749717555351965491807300534081490837426669492823390350876567460250454141017537111247482846775209180374775011021853498011818066897072010386437441750731175130898620192280490091464046900510243584127330050522017943532445736654902984876273761299114014422907849324127298005363047377923887439246146924814582157209789243894016370705549382015650642060304164087278430778002622480948999918186522912186453757173715888100743171432582404018345914457760759084303555672705357460573405202270168902369556743476227923634855961371428605912142062475360552014615076883153521123335520595425783066025368127164895024715532538992796898403463318894119084730530786465574941811763990557725186611893370325104630163471306241856568495553021975056147156813915258584365965939455318920461980135901944665361018576650878744585931149612226615914845772122837101362865253357009210671818767588085250503781419104718334875584192116805135462791775561212797806618404866895780331901366701437537058851466714045638729458239356258277029104614406603919302136186062927375603900238617151420676517536618160730500066819171048982930293309870282344389892278907454086801648495226536284996564193241359083508234624965184130783069848493595723706136568678083561128446143632502885235794859012499791752213839463281108765532578222629034499927951696697063073267491342746739975742294826631059152214771983937858924354790654173532066807782048503463565999166350341896386468928441122978779835834935688575309051516966888026666416290738244018584485223658671894615638541949821163180343562268611907891777571568903384743627205164406806461197666649145346273440654339919601224068066612038551453191762282360861811496318660731169454404586172780208467920519479844973360444980140687835135828705511305221827459490892508673860524581343966027046180748994429522147929908802808388951869797929722153302823867529474730070161352717363227886235073539120219625197261911658811086126901778694361569277697624185177734507919546425025755067400926386855079245539856907006110793387828434421305697138349852309964672174114183857827099333995402874423725443675859060247611930123679865054421143816857688483596030072206654172015732492771953696049581447902122721323214842161274770893016133697047180736524312200824788845406288922849929732534429492728068942894353971831770268598097698247980884406520625989843251627548046769021683454605794318537691376490072324705655324619793593251614635673079153342580501474413811656021135352872595820822745929524127969920855745299367430917986782421409914874670517290832834995776699086543736822085495662300442846841531504660774743080067149865723945903966551812612689807727314533704259211065425788734974007141028547700337373440960947034961875810566645717569624502554842923639671751462375214495589752056599787313787870175760617937224022937455821638518169827322674563437337406937120821125729260537537071893160892283922625984403283651732230158783461082587399950808856018826959310405688298323286737677523011296747274110634905259882700899341162467772632150489799693546350367776974564589190674205620847748897422135484676646190304712261213131904377534692169343272233968692010594980689624716442036838691817260006345216776283786321267801175114919191746072614800728311313883276972045580612720932705406020112506863697937809673597687841353361278323675010208418302945897220331865567460259531623259851688493854735498135682110387049013871257619238390068063186014964823579867132446119221621572685959867130057894790940510865181147126923465117618568729565295305108916434183856542941483180866008425938518799259958212529580799817777884407512228317331357638384589306202532544481233771635463943247737304098870658861073136232337625902854555428833852636868252854209834193802938976569513008730445534533246904320706171458487730545942469781745048892088798660630785322934987996978228343034422833933384398129960008802134390679964368104084875571338275398044300870764022502239748529131810813601008635082270563524019406045002814253340012764537017933447596364381109713326982554287766115081516350670747463281809125133159277731973198977219086364798873234010122582509868754615089974766010905577297407241567183195242152355885954368872171515639273204282732100651869099387927983251241546293963153110887438860846096682595755036994579220820502922622175780256675079247511138069891597490445046105629692223474236647950675295588387873417320596695057094404441926178814243516405669335667980741314564526007943896210937600142312207915629902732086396799633202362865203347619642019572130839208331027273187382425030282158856730189302769958729780075496242646688231237179960004847533842059692840632119281963965972776132087158858709683539654214232250753874550203037696333906105242593942957376400649689201891009416008581590367979682936602518569435798907596653876796223395230618681108860968509404591250115958842425257741580228781968505537150535138800031839247903750355292088549697025612731632458881731815781339425329040132366978195885727641977738299585389814741739900563588484073206750121772271197566352849519418440204920320196914015387656402749251905620269525545008093545156861953132459349366291461047672258937727974421454769645935120540070192184850436356981404365384537263789131824459054863939726386510782417266165953580685872228743866002219123038384377983338445757121078664712433088563567226952158623557708133166486360850132777955694260217015991977987205440317660062619301964709709006238622511203170919789957653352226048810181703593832928370533168464144045387819616117128320056434293238088710751877530221110409791698590635161773826926349072209754267762024321944197022338147196655457567105271601053881273081581553659938691763489207531579030649522246827102477199085807238078425182965261111648185124622571476377003691741301484682424655445243810011286358020502484157522410865214917428138324979096852831008203383944628287714935368997222193047791804044651325856928986505107575489003429087404991473194305723794280620660133611750995552462208823296252122063796207114994779382940000717168952205611754789536558470151852868255923860474818034978545513569677392218601467634805035017181591236142172540184695704316035722310998364771702962528165661110757055489510540699503916153367921190358751922628443061405521339793474203626420785134632228452100033358468324546798301446934131362808251728659938091108440478644568424098016421499355592966283815076540201821320242719361502436615803117026037790558434479331903233031408687786789248363581380923991988809820420526543515690756272093289199829341587004892272852136077383470223506853551230940440026637674072016148335217031566007461809519116740775638194363699341423034416540235429423763052945008211940416148567223847679849228377161806644702759538649121265834831647148690674184614226245683030866140930148064883948868226390690788691610300600069421716774237870180166915558508736247164921007451687917623299415646330851385919685621182245704099733942174353831168855253041151919567348801899406334006744073960339882272690709953202867146364440409069304055689900765772962449640670664725696876883477464936845908773826157632114968025090927050884116276476679764618949757500431526873071339073043274134787336790747743704890881223424951148113250526743095158300270544927652095998623378668762035286106724638283803924471643426015569331980586249488822970671916072061354984641411946333193270477675475001868633013515619723048112112077297415516532080650760923356075218383732317093971793840800702607269697101605522910871947287152256615929342841386734244510982333360861984727536228600327562635887651653602693949324971325954713570021582798034768310322322674638884570448725726230667680110859067750030127573699031501183533046565389467896677638108285378893368516123305083236297744109135521161210770878361107544629146676257910711091441013389837277701023685365539399937931921380787580166175562796895815133268345218940245526269119199093031024514659789018255273762618169904632177106033997849564154320332871899333364465829525823689660467040805032671732422944947217322121850445611947808653134774277847451672188941550104420845207361749942279111244814039668473507419714974943230369200350752919662692749011958370976548876397358187941684099107485127968624703365595623804853085056580808335788771156955265247240049749285741567121987902110638901211014860591376586576238989878870318515166545872960554279898460314080631652814096827749801815168506017998044721395776441593848681189504773973595784823246509549430147201571096057862326392633545491650464110995697296076824031182570434505770187285522047613851926046824444249665822574983784287908242859761121128002770107172679483775556903482969599468502155631035455756618935919224956134951739534200836409457395879938502566521170554792720957117617455495860878074053355361053382022986183245456406874510541895103496397019662830970740380119105841747629746029716339324349418347594177390407249660934151378536223778985760748487388815431221769549324697932810849555646117564287018070094296143757321323780591516761715158024313747347821046073092334864180076710982264788204235888009174956233634803677328787531463409362618960149597846716415320444549375355480464162000382203124243436187347830778479611604901678812213038871494772289843208695494257838418530091926254727185988004463565510412166006076060606582582169494884389920867232599619335970075239839311350486149568939043396315601863824531609673434344302134931797632113767549494254012811610192957343498140159607860002277622150471952741239598796051482249791755719918179317101678979994672298009872393376447835203339804537201893502379446318582291544412736721152504961120004079818538645062044639789747966248125177161235838872183299467351473445886959978444944757911418137763456502962337141879452792976189105631571893132763212828392417797711485464128883427248480854460751674708826279469294712666361973706620149887011405337251130888425591423814206623149581510429963807067917602570588778738010594721155383825433778090232197240790048009238920768635104811700312782410558561478147048991535516617361655925059637757704519896841118392059519348658208569232370302663469793820708715886051116954651927282947830311607474864041701437613867909664839446586726351148273235080136707103149928569995320233426277689528382709624455566440966756772352688911098795847675380957620028184425349909025675733023030299067802862108677750712674130702918478658234096869314464436942593006593724472386560534131254081719145678409664041416077394070929921389033983858999370774439139581646531898857492200751986122436830847249511847689420846015039297266003718731508018375132989693988928834545770745707452501535735657101809249514818344700529389071741984178705276014576200491685069808084290189870729734105241071642625314688352533192858898428322772157159883876025218983131679069580240264424083872056641264552480838982697126264904793480631243251024459152014865891861956942195303691211297658325412996869297624966053368603729404838685273319274542657727915321764250087989631122426331782106678155298574735590160969368152843655847462047710814773101436449616215839769487143794619155591583069761016044432539873553637127319738040002778689820762813859254132503159038837181792871011402715316213997294914715348245221539641624159557659959395126568987899780318212134528063692863392875558202603657253969142268705765151694991973721760771083632908180105264068580926606642833928973279238261207654953240792111630451419003005753700726258453092977821929576347343263128122062771703969957384797569410192243258764387611797445707022857557737261630877177543425512440299275796581595305166331757843339658607501453578803827186388945576611097914924593535632271383508075252167945028947977638831777337613288726302714373987294993854457578416745230236773361083614730141895086720228034899773137634264648030707519545202953996292842061454086565902960244065160150366668984387267992401383769032810194427156687611204464630604670825531150235238114557288635499151756515676814283723280697637731422228659797323794811196275645810077888159295400194959176877059596922958174789626350955349810314655714377611313324102301234470071417845578095056832243651042613333952105667233591477513077981608654300943583097147965799359966818211505496661428809351472958291885693781591465821576784178192068585171664266349138405165419026941328184102667418948085224967568407266691506861922968591594394114165900288459189653771981505546868892464631010003745852179841380838398864239977542971727742406858814479175574953756123966999200960336268632582007203289121151308721437096225430219454886717170830768671064549047176055873904236364307591699836375767356887478550656013882477430660779344588088450200463408611557529717848938362192898203159804270941917621264550795206333429127785719440150701138309682924479972815790836952023858866610629625529518876455110795712992687956666402427749673932455254887880947615093168773939585153992177172207191930196421021781865458786856350884115783703142967170389697091454987713445748618992183854094301193036019328709544246702283883503968704801285964159517993459131764736609582271521135877101348913315213992558924432821343566210254823263116794241187251416247380909015739133531811559517521340623791435009291210101626312020851252058592101878098727631120197206319816317049907360413063580295835678636830262786828521231190188519553876884840937040606523111825994260552012830982095570501349654789601378087363556513413985116256011705798132889758873606666737705556256668253218471343154744510141467101364575833078627640200014408797779619620260911799718924148659291219785145401852009902407946536323029671522216248625252114728312854992004932567897648162498195657551824361371380509861083103045582918452567292295288737378657899010080368742653510080775977438848263248698794253768325997064176430450545382318773871504528919718286709458714598529003910670003086282115256641680559097034327778372181027123801039740952758648940820559516359262652621396255217585036353211007794895573279518540156598236251527849023709254797292709104172790778330954017783129058387592398423267671409892293466659884044838056415242435527288855839625617372542383916329069830232911975519641259827408211186768678584544827511169768303763595826520228786485265202610122453956788127589710780978115635132287261279658321904941113941292905876238071276882198365170709405750326394687923181757245961474673777634125459324855757320454267568111816146399521787011509084642469701566568029069261890439132176341796232837539010293880498075568196876409356533946617491830491418883746132828123512505788039321004513553862335389308311166330784514530737414757443768360757531845586209024093410911260241270911405418801081648669390036345296409384942336168610460153340714231191415280977422942267466335663909589373300734593367422428196620883784009417573363620994713578448618326998775294292615430633854173834267513541034913297509889148635778393302415387737917624734733563283110965093264727419557538075472977536400128174488044093248759128482621335990331892727474240429333215605575186310005001162805719827044793543247157271513758160942494808165640966602985971607171813381192226503871138164884404366635623807011991669083006765400911960266558062763162607781114903526516304655310483187993226944366050143371036960473118438332560826704349243384298185417919348795009156014305586467421142785871617486047543684779114484961558940996928876322671706450638755846969974391706080406250950332436540728285046572040650188087255056406870848015106633273231825931756641291802547645234627728776767979092278855396136233237585342547517106560817040371831034098657981568330410495821486742970758474220419324081488820660422101092619231975613353770488429704327478313085142404207048155198578279739046488706026421980954809380994620035225071944963545947424765493744198451227475428780738889942330291029721056663896977836842384960591734587299736164247815864770539879299385442097166081089503813235668994268885880751851021692462621095492817608904202921432347422241150798321786560870334980197341402278308961424443747965059057878594587321654569615157111637699989508864767788658946485578881058864784538166338452531069738497531445414855702059288234996431382472749814495143243220412243922245301380504305265316911324768208241712616510379664518331143275638873578729995731144691006987717359828345030770602914793117343856695294362958846788508522792459010574576018975403586685386098764136658595469579918773947708925933443126013568297495038323825143388596809612465369930867974709294833446544466047025681749710789918538882983945129413567793154860505537948271706180345741337820690697997554881551579594924705663937138406133784093005822795009734571487591921899927521687544067450548071963352565275116233342518446646104347191963622919493621273245633704182039179763469594699560816778134253674774533187975295386185445486978967320915621387302711044926068051461623353965845581357366722533344414255624148033923326986143718284656005825783640012005125540909337102249557290238920086457051077441377696221902389919419453185719273275278957780709921021884538283711108637319091647626229186534514068308092058407417196523588132893341935082371357024819591849491148168350602294845029680694611169472524958108992336346852703495655461823852768955303181387965296267754421749061940212103228082683404182097679671426069296998927377542658059926156640803558559279796581564458248028227727883773261498005361817356383667441987406909490860462652204194066989705592061937246199986480154606985577787296364103551684989705192804192295427385585273913767430474279617503963117190089942887482194375115328975279084994439584166658838601199722794085792187459405672637501830526345398414225808343409245374564173476045306784588779670311514451667334788539146874924340195797257902686699484224889678100359983729846900964654053472077733011127538153595648298566753879872510250459902220022625635951431359691537290206487869954950045194073143410992618731863590770359771889062760194174371802547398933306581160945118622779144209739502737883263193472699619606863547383020891117259041675037013679408443455640078978367942717898008312861810383158025320643014140295514870728297059709248120521756639377022768117828001724937765899316533599373455881703263407963486319974314494672239175342483672798460138835788110979163570679656529756699418955675504656710196903504315905405113112391889789746889887662142920039164451760977031745764699356202652107783646964358465839043482560664526378183396436438491028130069841982133043083049459510011827588353757785567539093588285898975124532385990325834950625995065413409190368514043915879608221427269395915568670371620541725626887055713096763596466777295141350792070824041723710738594758925657623516634584763462238916570849028095514992973563471549828940596013635177560459237550200409444234840099684581981817193535828652286291242565645888326208981594535285535104363671744604573283877485855467766579006962483303681768005891654986686351122870009194327301218612545289851869365697781887804198305152765223163497983073111919170044907310949686952095763590244776804194529806983377937080240186805807267157121640382251825236799866895301812854456150876207909921781503699120068512746644010014472446592491478395079749073494780312850955107112924329171495024999318096192066616797273289913941923998955328007559916407467927913596966646170771326985046491625654367694166767599356191735748334029357796003757409974187057549252141177392791241767289134558489369158862264740937278660426252682448880518701959506140888654250816427745975766127690380024740476057059707106641006256256761951657005887972682491187450008014686165426721933846778404920009254035179838269124160379463236333929766549121879738250717442963878083003420696780520317229662392795217436366845938703362686498351962539371580645168391028700149955812094301775059391441443219420033917404829078975967940451724301606893295101337999561757712718680804361760466181469687599980642922484428486149794848915856149448977244497624843903481058004249837559044775971822315233654495477985258897943736607341252684182778089586724320507509672220704129064876344179433580091593617061363493201375154436002081458670511306805467307061685994955758281181313873495514472305379367168910514842805390418431532594255003850977216086724640316046054405899724675736407583004759878126212927576423228013786907365478330769745725380854975697818375539021668218429032044149467450122398843797543292329316850209926555751613400272951227231866398455262058819726789749516728300269421219986359681960846497608869444944400165675699236876063649934677269378430829762911709215910487501766443020107665850226939983060900255993484131999870891787002930412595554278277227437257729848666596128361964218521556889038624109026137208259242301118151064165740416105258094330820776583591573725666486695793170822600530357989559549707280434779170963585774282089777289160033742470155039564815419708438016254054789936511897670120779419374680561427669241558116618084752166126624151528530234276445269398715151845026970326148016408135066540809675264744057575775652279709885411766481611514868003841867942935071718770769145727085777725607372612635411123178729144402998959631033390105268420978283120273356269430827645771384463282436138765381390433948006490833706500783138076671343443688490675024878436139907420692025786279508216584852350254287372840384598455170626117083599365935965396682634037819018494547883581566652994853314452782021618033605439274061198441715637327890870548221414015918209362566905527122569090505614868003178547359593266178114266188817368111638856747475524867441805010991254805443302498273796129660728118194076281820358106535722006864288458574799314796321729282175741639060590664046186566721250312500878404421811086322355380582942235771027708018608263952771029923130634662849225872692010768329891579121902465506836944688960385019245127734470399710044533641270702136560706967136341409349519084370493034131758442532070869978020271701381939438605169053826566114919665293966960649113347644213822393385292881033894377458590428688311894390068957729632606945517470442831630126764511640387722536860576090570638840165045990686232892445960423510818425995335944946674889982090437774018983471383434943359116496106466964486362767003392537361137716083791126230459772061362418618787929951401548186458987939403214804342069096872218777603816750522282430563989052125905179171510559579745241842731756499530351120793802513407655861575211008600491098087723310940450463613593354988510418840908176970174143137908059448369669397153021946591554108348145822130210994262223697345451753475904774846540509003974275754955155232994047323234080437532314608176149862777131377918141952451524651632107191644600728084711482678906772509186363805210897944680665202572008646304930972319382148871995266433010543910320048677544534835612458062921782732959744055524174340600195688868344235290024117864289612213245239515318376293601047151690743752364760704272507584529803499926122777406418221209584943545523630841174976286152939894247348088205201877186807796567308143506086587132004646134601923767300758986886667645962996407893361674826277451146017607110614245758027221617059862947319636096746411722873799718669679082913905735780751432220054542655346705318161765580790363400795332183829722111369436925649029913411389928412971767685166097958260917092451904262013052382971014766621091247980332417945258405334103346150317208260850734095110677858227999450635114991518211303914641860518058160441986520054261393998525551813474927012094230263706964979595086956927702019352424630421805748156419528789756062407726330843555382551954360536460209094302761006523887247507552930186802863064751016693490099804555352602756882334223575495442201872500728910064397016082648968862498061371653853222419477902535540933360478698399603235387743550351736284742562934505186529377206800621390141099661054357104850412123672154741901024357729521851764084164353419831409120068321647118390941209462141282460695176433975592225937041789867774643366485629668021009281786676402726101456730281087348622692947401470881053255325806204592290124229236990584176096449556914809048720953676101334802356477539826323319637421975661787211228157281522897299299184700324247412301703819826789784005943918546885846432735270480727674341139482454073919331391225737727539875208805691570685195025830189783268913983872652050344657544584202232407860663623987226278134015191493618274417296822350017973448556581090837598385034921782748325388060858645638273045490559399505733939456437512179532215424750503061581693282535581886462036924032077963553421903482469633017267823383307675829754566740827790769679213981340976558590316661325173122714327102434892079010566608115335686450991721180723102710695206047211336118185500721402200581511401967336972677078215155641308938631795936540452126951075810631470285513247587968903306223452631440573615695092468481607856663460807564636626740595100713384907209554380607825408226157843951603233511972217880197240676332781122262471584296731099534734704589581682177675377876320947639402734072935625625434820995345251964479398780912251123495458211258881769802709098684418540209761373780966544752838822589162222713041756133409856940022793927424412559370988481121523538813758310737018554655991725445471740224434007091578339878168242931810790154507643216893320456778735069647235426824609540432919458988884927153306497867875793736690606566419411817425882410914263376552518829419523381421994401364588122430618705735911503251825454702347735938318307160751094163804736150923387274659137670538302578537391495419679757640945707980882924343116514915788456159638921838253010680382339615163973089017366081790714582428416083249356311768694794590250998713008381464717471100728197221356856480625589000639798008824979140658874368771983411993677029918956011407383409341725900849325167702087568355928765330723378264549003364382228322681994461152406274077263274339395146495841231095503516633728400481277532759819476601763457792769859634399627590190904538431952279278799285221414012781287899421829561009630866908392697399968716399502689762060140962925866398547195761980579986372766525347115823172561757024630255789424532217659394858087473357468744538424756078484813642874695470461396124706506972505630312507752450329199237761911307336978701551711311935375200131921188514115238427582521627540146671261338723738561745531581872182302746571489917411528659288626301904301575877386428762794687401121366703037220034348109847180889433428670189292762576036849804838372740736079098805612473012805747495477887896241176759888905783361541647676645955156425628760777170729164683125303545060081713972400990782239287526242459038340897804530970249378449400831899008277095752094978377773075240833127906042121979244243603288137525008719263094406263932530183928639891038303654216653288952639831787947487840373690775714753844776760126646810940235929294889568112158161367982511737153550303751170264305066013317198860552018794408573220038915575272485165488490626997317291555305908633364535474692715755636463794525359839775858951682235182758437706200026817676713592739308662772806071327449056270375044808779143454078997820297982490984145923791736440799751583992691743694857943526969504279304165136881866602628870952628239352282360250126651624957287562380832535160075282328260010425548959768466610897797765716512819567809966670642175343171564795683348637740144976108454748674057943642387400212599053926819669614027765165656502723687700899619102685828223096185074289112929355376847329606249208612496652733994885335558245811368470222477487891718262331401370258848254957051012274749671945085479046644308763393937677989604760620506589748993196908663147566089241967900350785363573917322326903959817695889201296800760255190556080914700406498281079304494510623899196107967614072944869938729972314448779278715768382291398067956646782047282843349543933674034751567135345230731448609914552810117523644162494426122296018486008008721064607961928713033820880004540892829843312818427813797953436678171794254913533556049727487340402938770751406813765359953606225668196395669217723406980397824455593786339186292985563543709887127567509600822390897279722155224163588602609953805450798629115277772847796337465396581197829180922349774828926668375286017960859415780095780611534046673557628120880786873026851972078873740132560032462233759628685670905728675121956581192369724719003999167729244191904351269248639551198273084594828590786532877820868979603272454800965857572660695430837783388793766607809558459696776943452264453452499942055894085581480930733739858795160335961232579400658679889481994549892557760658219348690626800923070342697508916700561159741084410374418135227247921912823537001970555511817712995665367830428041166938901865319851654880046379044942137930965077970798758292336209695556311139163562365522848582045084857000988596162518925116082217763794060835710882331180778462254567664597285446498032468167605362244547244775524884858727425471578074289844287984722543280509508002943238761977835935135735643627186223812974942489468682281389733833564213850473375399230702700253561699406812431946910825950017327459375048581184733706246148822842299062604619768090291299595239112319507576345870570669838173153233415291551476134484953080616000348736810387447691912830202230007412710606156524454541652806342333429042412732701066111494754211838009086273594124494023577376711932224059081459647442054341143119000922414795210730336051706847404891956625668414812066771132706323721274569248928241893164414881600062295691047509675751536046887802963350528899942814378215588003045026702505226901839235288364452199413629707886567087466083771180328793055945203476220417858341316376876685639069127643728664539280351139192869077985917133876645775837375078182599994088515629553597043434384985898181862127419443862194599008193001294127194044301950546463413359572167759445092212797565542875025775681128785135381554531015167138096328326294122089950579763111656733346058310566917620429117458709865299875849973743715552574023570091426071094501832437469829808664602681167303379926888642556671026539791510607974566617037154201890068116483448704611044532183170712564798643555762122817843128549925577364744763678795175028655626448495408316825145750973027915436157486678239043543804423137712084464634094435755851024003665889648200502380723904185912173119392348778022668492882761948359186533377725006121813919995176298950761236411298458472633452709982812140687031704074746895863007004648580767314707820194260570028946303699632628233085400350699064254114556631954614626387568437578806925081574061519860467929018593660359616270529337543448565043631416096380471429804552925368959699614340343511721928040624264814912434834169520113981149909187852056803152709711988182155833385399339949793451438682573586121495039873786671403086015102532847929096768540144832512035415421700192339944109745039527575079864479822049080745035450912144895396916374704051839865621582646344533730723291892443724542734508302428339330255829280875351606897949659019832265364219896251317162424759607057977983342172993324792415023192549651442025498256140438585897185498413760492219773824371679402385597400711429665234421941617727281802221739824764397181690566252951366877661453521626415995539364005915711901655515418274830677215066746476600774653073428605970830438586492125371451431527105202378687162565485656827880283599178821143560787341552971905658448706331276298159392005683174678880519457228288750290672697544135865835686790574938653559291721358153190590984938067890330031866620400488344919921493287689396402703556647352935306322902108311153474029010374395375899236160632931327474337787059907200933211582945222610737394610918671055278490948806120828908991198475979658886811082737993482344639266624168176043541917105409783047670271668029659996284323498247529820229570344777978584297952113937016106721083962870052913570132404890627279148590118169364516285436087901671573217272493167243821164995831835553459802883295447063950447750177746923159939792293929033981215278284962047077478757326992197290066846678485023432917863031233476384669633624663171509405755512412104332231858469570836704948699461522778478923776802105014949237529523789212984011647082475580409474427477813595508573127809314698074258581875879467766234993773489111429723756631754188362151211743437312861234381183653522427537110501763960436480441327706921146451176525936578439119734966070026046885126379128507972696104256549474608313998579090207503740639337347713954942328394292143891919862016781448595338924697015094237670782831803998363190937059692504969927723345555112749934487440863658861513892695937148211508648225068091520813445657710623896068860268871451653152435616545206018505819734625234334017204618878072136649814417186195618358528046467558262252980535952302600049031884293043996772027106380071600000333187909065042395956117261103205035086397731946682044666158064441564341031554457064783974692797043918774659966840049499082910930559202644082777986806798436957020592207450015223157629411297270110079830669177223796615887216878873121154345138651831522178319378470181342575015805617554557053826632553977957781382233492766312875142936219858584112152112746882266643824070837983869150188181984360448616176148892701912925634591319881532143909184490586870572574167507828822978096095999723593854140389989133708248569448045105271817621260968984659984695818518442283999662123553146122189286766450753945518899538038347688854097221426942400218467493062419837982328372227703300804250459834225355396199944165456692400521108488393119944168326833162214244806127551459097493487248505405311474173644655716516798019388992649400573931265433699454602206770661803490551700262242317022674768923414222002345161517150448708096124051835270176960771920019949942218412073461872321730833645817433999319022082839708375787076003913771409227661490359307683208536419512548684120520674022078427026513998191035333531977636507880390037867139757503880926178489783160226688675724540182853125318766532282943627289744744660702677068866490000068476750905122606569229275017377226351651313711763233863175607395236395607852281732868907395687450063793281360127617823063992414303110139204427067057625178627084875757469151585988186754554048302080627668557866102663901685114909282103365864981520318174276605472044212954878681014046280680951925740058212999499325330228287211654245709092448390414006031868437651537716853429697503152676175184320295959234732998092631368717379803848744027938994288321077037829463050630303789925404611981015627190267930063817362121495231734364128817731680734440889126918882051621589224449469509893938876083777925904391553813485482646155277928849347723925286197683982619078141010441072246903713603710254542996601154021768242159586372638746173938922940808665737095830953818516791132569063599641416157128450245300088749667574780932370118028474945409546328794869127312303083883935029444388803989555442356006502216988906962449325608190065556465854111226405435574377452861290821328262993503416413378651085257824650402460880037701533168623309824030261095815924117458979208601020162369669263223618454445116294580505169907239522659392770944263920470864412002309581157063369676811415609396130382245665633567720981996178090408236112211732072633405376446471545129961076243612887128261382020012409307103416045472263313955073321072987009456654059254373662458721069892319155831274780376501169517992340980515454267116970968826771814442832175742903681902149255307826159899746540498400518747616513703010128620714318821884258616595012626351897452936006842332831181292473444279970329633404777745282920776348185230243415036636057425150993041251832303471768043515566464725188721164535061515257550318705727344918537979711990112170961445990711500783180901802003235710439100017061196382562663682928336280389848137666853682242715093648618502965487883059264017946438096857888016175492944968581089521028928555566104993675886294500423912844237681278972662102219339175908138559449746957474350322950506687498085573213098261510779221422579149530094367708579179292638298338773320748281020225616909646665134507036970218837421750817608032491539586681858038319720918790224601548791258560619007133530995459182671085221342546672734753805268342496004530809674323076918836057369742564994249558067465791921407907236531545344103213234058547196942291756765154318149608317405604991493711557513177135418444725687432697713032486968106976461734298974313028216649070340958584543318185710642603122777895385439319074279207025293864702244874849958199203803956721921744006462998081913054884208947269682407291446462530916750538885175230968653986374090811838177394495822021356785406843630279160991069289671215435806789436868160654128828946679696637579697603232173877199595145195675055606889017477404466659052138907260761469538893657665625968535610643907598471059596946693083584832988703479608700745370229246184371548887950082092782417924881485850001495171499527348959867980276475449193074509963176897998074066801626296990159762578966764304383459774846923799058405902780377938475830495398211298249560944591768445726977672241293864233789848102324399241830886355019494430352010895423360859999951867562840593386716007948446139001545395870049624141229386991981520703719629034554185809317037097671702429921998071142355007277345698060941057458217140275690723903033852563445304004386701562133521220969571658528177855735956781950363958816747176303592198405929561444372669626672457923409035348699171504934351846175554957168379475882852207537795960433206993685693348387469502743359808241276748015219567106319335799201427818628937296215383644039854504778736718879125490956050107290524682250961765456960490274096341342950078311553430754693526917473244354127785862052515358390060132672428931030315602651823594524370555468712728387548457626972790720259261545581838479443700973290527963913700813958713349707189627015074363640071934514381341665147480463094016320791273875380130347482537988580588386530578622639560154837540272218985301172647805958878684965870618233506376410626675207501793516410404939143728224311293041469890491195300767240291330956209803275815198203335591102649123275681922403497249283334921914752964975604707247345080811851897190023208373289096984989669765499036228900943918582837545929024590978086058540286866915706956131013014233662635832631164598380005794272910714613421698742917394495222346075944808205323470065114314785386560783612236879487797276425343998971580423522157598165926793864257810064347152510083685425912914258630726203361644132411216187975812995633775217405292927162921874659383922377454690191265149800341108577552840868800829072097232246928174352849897477085341946549887610815481066811120694297175800605306645912967619192806681863546463331245459457568233888903908596213041330693809826515365147601086501071007303252734965487840493617362867994690825049525632956458745863407203255681172228367467707664018447246828383945020761701981613103042176954812282377981946319392485032886566538065017143575662984767100219749458521965684185875516245385543844019366876596274317561112218328942010659038201430880956364757188032366111607295141411396085056575160329059320561200306250811724542381436411009120926895226448502654770600739205959973358198132517612028290073669546270589067358965094127685565436930173716548538003977986637074022052748506697740811302135984104469210511262346298233142191514544553782438667045313529460798533600250798766399749708332749209458646184913926401791508616850735740378323887937785200285779296320901309966242550172973527677313362634416510860876861835644240756330480181641895019154313685790925059118267731581177159877602846184647052649509341187688401580712716118767514673614716430534681489514205432852471086600722952297516607889029714205491131222100372907882184818862098945561010395306843450594448075296549095619840347856462060121158663945451585698760670530030248488121539983776364027214884441839057186440283427487662974209157038970361296777407445602147348287241733834936846361095359833181309949893198800006304041844660456982367557788915113432975131971424775620471809915085418370795966738659738283734210662684582007121052344131258580714704222918761061905523708045176194820250266627922822398544958579962488260791405537275382202222603230584206248981574897685868800578181643917427153088380420543931055000450321030706651901465591913527921846578699546004920429635904529919554341510036748919288511411312486627263889866053458474863709232038908621337153414872205056788638002509500584808589672047786284099791113791542605966492212868554296587894865032760578377948556773021660573043987397030483338929290399172726477934256308542457688659320159245538111574008131301643763922147913386892117680683728613957861515593649172667478067017809966038909456866797375220622147554326834474410226017505518795404161995894800046416603509236031905902145872930282755055416946389787577431638218405110635627479489230288149920778686990118239565642812073754864670805929150231808046753300990639144238425782241091607347286727981534710572655129451871864807022010856607511607753930294296633100364420904051367989164005839014187661060801117657632791485437849719221304410005926687059510419355264459421295919095775127320835401572654517774033025578637188910855197534892411603542976548893677703966551495453229895608172265229362728812227990308806141188621880839975469924668663835293616693488620151436135532814982669255577130680230670663226353665516988025148083241774027331975673123280517238163698284448175650442156565715129574953330374654120098216972792126321944187274230155742037324315453416690075622054052993595045516413553135773605716522495652263789343146391133539861225714727236957783063550519279909031031959372470183802403827190470235979245150091521197687339585539227938104188322250128697875359803168796224408478878187467923592763901845404196960808976088357257344817621583876406754309314094145264704659927001640279686785807835791066970335490061972256095087959214654191989462782829803506511499210142699310107398773838291381914979372632080818676178639575042605867198558529118552869539504940585349225427663971910392469920048579766651765815862000352532805528624791950748786306370600291631584681558766329955095475407585438328450555403580368835758550733437292115727060764581528577914249903457320346154430946402520821993714399886048924151101879366018245605515803684684011000574879128532372927902622281362481000282754718350683065542852497084308746562794530903414379705493157297174101248641146248661704705217700249277758161869709803464991874262997619391904639442818928509778765148051714627597237297187148112932298796367631169233991924778726167340028315044650463869824191676725253902973403662698537009632583400083501317279809006034026871990572592914807642454115392761380656656569226891402799855404006935770805022576138931174510152467815510863840900366461988485799355274226618408481674936276195429573568141868489476548875299278409199282253146278255902666787873405310577552164792522815722086889802058638007016165122495585435645481794620385378474365942935905326263535446952261857111714443624203590991534747198380729038579358465621232335375569380213656468537092634882188284096533524717968946823925181570609162796642359227006433445492258563558202173607294631865741849043306900415004772827763289377271595732164323114376592379889663769520353859158133799928192451647055130157960490087837825696930564295688410455304746677138983286083835993844878453912118069800869026908969972377286134566427799682456997755810177609745787661309621868511569216747000717581260811865837443398590258832791080423404240462559097097956075002437749339587450191820671722676259074937227152908067495408044088308243594321913524443742083602226119651816150431320088469857358897561098923914298246777436052281743503628958456205439135458294342463589774742903057357494072003195198591164763860118279383837187216910735169876674562892593456411769336264524196945686192565366271623775769363099264774862018803669093871591154164226325508774306740700710820918917059774241829563420414374778947633864481463012533412195581321040474015988181007333105084413392283256011149045388427762709137201252161725843501361945871346977989880080366594242989991434106660952613749030496164446188308379334753539261318880686043875851874394462400355716824714955193762793966120988896512490266326456056762674499817776311321140730326213011403534798081227294765297588701287629831381156991866294032516388273628972347604197374403426312166034067668547417360654867796994882605714783753328527315743603106346472440343532112741480007247266937835267484692021077114577579842788867800130441625086470756097550285357976600411373536893454544381784743074846774283281797678008820194614431986104842872846237605417853006976095684981361341020255536078455914265552910392102419355676383449261534769368256906334966058898185385807117495110818960239644846181690016954136064656385519771318830144035559029983112109686168233966405205793775840608731720486249142261023449991487313145865968477388479454280305293003277197953386006044221379064936986202106758669605790300082212850354804608608716808313695051402299125584473306661553215029307220546932680874924235725454723668142110298444815912921204424917079359993417189525379576190502579943381561181031716918303698294379309781264746955561075377526117843802471441032438540280768296960216726034321904748667968362425738161436455406195730828273043660451236366181520618763144510727695890757388162019968808867907340218150487364105230467004793491826430846273774384438057797700224497528774772408328702654867663153815900740123982875506700427057396901784254935253085714618042504926301219072561484795889344629937501178150810213740828341685026629089315233502432853912463558809206865660453069892362149912273161415442451380590001221887296703151717606389242464422604539519040412543374614022375709863396073876048492109498394693019521571277789744484887814681533179426219351579564960178769632767876780906815118555780141079370275684019296936798460671543298464476247805423082342966053355822618255077573275138558546000347735865554157655604552899854020242987613443800087763266718222342304522176387682902148634724940949302167045777177042711349319158696615494508605373624137407713391833693027257079728096589850153940775999340490988393489849166686747603076657631759935176760039146639504786435638241108840429626326335952704713791601425573318386600626885701278553951367906039548149694702697020452501929076200147997231005103131998809102622078967578142696980785079676929825831904675773177650787100930035991421110434856240485580761477695747712551638526950085130894957768716544917393727325248823899024226459341800038201463528251433226868782895351645779856025133770690209867382522326504214203454002961189127059745500172147896577669598907232934661909388836482574005080543645212693227199466602678334941850255026898472293607827039324171791987334928533003439829390988438928980667586512256438780069005249217327082293004888632944558066377742064055411324899766420862849109908395456539832649209185355325766546608401545265263582517487822941582304438839875522931897528604672815066981986411004509773224517233006399416710230572407778606993341691459372902462842510247178605742105882520918365022920411016821161611050121749148053375998858590499057680101840370132573228103041331067682905850484060536852685906823786810602896921528725050220795169948951944792269353874248275514267798920758078453313905407901327436196431371766722121739762726078521210034455117583473598497392520714353856621178054059399334693663555900629519806904020329402040968106489125549954855229736147514213735694533307263306219747561858489265115166383947785919215465642019535869504647379347641315850053093748419785439789117430029054473317538261346437124761209917171126508701088202269291332464609611703946970013379735087212031431359995712349437432964933328078587294058694763138469130014602912458129604406778196805217362309728557191920029655232866331734452392940577646664927418121304564464566528147937294105561144912462220063245335421583302177998827927299665015679650709755664898982488449596841564416932830525747627899740222690387423797278540788621653702811100120323218265095737700845561534528501516525274425295939393058736425703594564046000230944413104546745131281718458515854896023617381436088695980367870695345506115636872303622793460567990868580721012814125322666981782910341824701632870136247270636032038499504758464510978687035601696407038226325333789215852496504782627724042671765739565446423952315937525929106311521010873436765263508172264747372609037826430912228415241176681948005714289163978396218463013275639266070011608675398867541642217234448536086925967056118694741016518618259490447827687702530842392279427483411644596932896659659338255924665684437893479277649882103295357384744922877964109498786285015829677885063101769591184277169664882194485759833348729730536181270486218594426673723243823270567980608467399207901951184319002191956153695458870887224119691618315857147180978538713118211551942657030990598744476952852456934100010820518861228879551535542747208816477555090604533231284073449070709309768232417968253899453029235831652473721768820546791708855036841747160343400551847323751242494218915814805365442807613798214123995333780474922085820541659112718904031012633376194016025780529947173889225383246090788081592905029895940997137012615860894376945211563359315485113978927487638357031172179216024655351435984079493410950959324772488207999435193296023065214691281960789669970631983412010812821714034222522918693638167126848322593633935102953198134548274951297368858378438746098127696718710890833632688639689718626805814818345986471032622108005326456356809129089259782158897230188946188776074060539250745232529754066725182472609224426575771084861855547053765695400106685828539850575811326491514230943647201730055812334032863682263218606842880512619734945855425877252368984463987683302134978169761085513547336214186442882893842751693952402986328239204101693588138969928394689967988748176102160551771928048273703034967935383476356371265723341013781760210549411050564750030919602530573722543740304823062858684666044807622854399893507154498633119824070085635219406879341350450279988614143519188371647969696600650219604494065393079164816331226369045241066342187144636288660485962198131850430699687246722395106282031207527375514347029878378844363540874824111140431894438322876091477476885827916004546528442244017354594853475498331851403036040214532784130857253637134444252620888575711996379610239307936852720379077717149442929916294580530976939266458313573754201520016941083515209364672604137953026887970670033673673588302719577201150033089974893003737554328573321791750104466360681941843360212774718402714283189735617081164981435860803720402321338317711002043709054329524962830365003367959295245429776936546104811109084575058578055317305645185114646517151825312053563557701940767925128800942851120242223567428168283237441308019937860186882625792562918373251185645484200351025721471727830931166886800042297971789519498571146113797741732932858599605982194823972451114619221526674279123615674425742223003933372657481871338370503244975084671724714876033191523551175706815538247678058830938950273331142195387882151922030403317588856972122114031498809183748034954149465176834291112630094142734144951977872614430520166849836607105157121317470134522292985601800604076281906722056981558723153367992870982304022054804779760192940180040306632437546941046191537902961680464662168355879425814994354193302301834459785887575200164325566425992881940573001418099238940390574607554993295123109166577298412702355725744373903775430668818290991480170843546015870461818980400076044232363054325762420618532978781664853956730031785435705483371015729096788335705246227620665171520985764186891367462357672960444836221781664833506363658305699287686075533699426458070127246130552946789376699737656612594303026676433532028960275970749348964857676051841437790829513193195345030534764260203333735697806273171336843340337253069939989248720966439533069364114311854244953960604364811314903317418496073391075712271737818425773796408069256140722274353720313559445284488033649664811833033719003532872164299195062839564772904874359007579479899107388914777794352839508327246888741839591894912760516706993121014974442573549244143568112147576886694952074379464762478406743718457670626952255486545426982988673303698606524510071030102215242845957748861738136086330439450935443523960324980931327721423897997251627742465547695335855281288157204901346460888577608407985062118549847848130350016805469672823127599256423650458865677259123042566155710140439095151222102762306134740882106861046214812700717709054990008969621782570539870773550221925215929598679649296780341690084628583386708523872397134444703949816580526869258275253083088762417986084942808877382271720351494272091863803612379391736176097721301140626476359371525187955531351405776556903913283609729989278813861224599016197262047820367707746380747936835668684528781581893287011168387507935235611572772512881946523572796773294640898723936946417256524910974463773379801403055963571318052203430280042941621588838010776626685279141077748840154581363798591514784065021196303604476975345687552030721953499008593706452991685885334373728383111912155762357348087203478136000967289374742541399291339861906612966420171149841780199325834004370610549376029351939236110609737441692435717130950799220031123181097587994507079088038757766584857326039496065020895714105631623314163341401811126391145242466748559567785910709101794917846705957803483720524151250409692577149564109487048680682896018776998651763028684283380455267952473070749549376696340458426762337210465994196879313202424032634055624859647246346394283842298745024187101394994021352037870709624349895269305239494296716762597923465113765274403617979004276903167249361027286914031927098680567208907649683279082224716030165088781321149536259447707521905150490135372936789673430784474248529333823964316454434839637394434445001229749157427480421596091140273117808365710378531938514727736457546469188962012488198260533984613284089266381331689373834904408578773677560991142573917990350539260227224993367268743893377113204694082246927296366068602202846825618989294746616514186917806572111438419223710756681860228164316343214647255627023019892524501774315334007449031253403712526709746602947016932303589702606589008456143377462404075807605704718398484407896178798107975230716632183717055535141772141785846796072963034972265881793949385034997275496082761823265279636024017045386570297539887676888558894668038253862580326716301426934911444826535990541220849221500337046258127547925478812817246558695476685240150294373469603019862485734699499656983394768155133354549866278537035917860899158633579457826814063724611393347551744804416164506852220733398429400988285971810291378905082593440239701288560314880114413508515404167749181187909970295302469162033687123968243757094898220158059768277831546207452030335965977715769121200057346502197095409277240162322745403428638422146056925379505175971782256475065654477152037689004603552814784140205977185203886373735800275750501909939016753335219528551785802749476308565048662731184231302541563530227612742443246391970885242749193399236752926103339842328075062424306761971645915453064940744094260890312845682500916441395302443074275429008481347698058799246336653426872894254700748950377468309543896546691802355492185331417605472399842852206734980402698190693473049204529870711386465330297105413645650307188983632704778288105127259218028941125326957421534696048834759797489668216036296835674683963646923618843719982957108771853125600324316621231054483078470245384527339318012652030981604188332090875354531544122363403543887967697809238053882762522278947182979178996527384002913903382521425836732531884746820837041692072097845726145480716176817610328289867297757498104146694865052934964833121762455335315906845133960318004935035266258808377945698320138402874523995241914714186127761668077341393533273543263806649771766583598554731951501490260106628532280801337980999781603330584607580634568204756100032791779788459573308675404158643140217054089934102067976638778099708812281273786114077897653858175901579893383856503905644922847635729149335587261606678407899191703262419884890098525285945756266585756680448799023565706907326393530118187502154617972216529813022329731544542989043526248016614135952113786067461049635725635324426033835978777337788496071497133047620549563511885263157518129818667554886230971134454175716382559261567889107756909581025124700097821142215563038779995424766919504249016383334601055211858511876505649317738549443213646626045676416281548688465608490384925630605817060611339755122217027714400700152706579027805290172515150174018591024790337322400332633667263671134624092993080590221380932959201543078438242687709964808115540902841403532518791687458243920683269393547413879152872234561200797841234833289143224949735173454059370868417519310367272715744865332628395080406132112845767389384320448141569882578726473547941965113071474235073564668075539927047623099688170501416058577227914867932328037801588143691554348794065226800579363409319478468727053218205378079080647417415918588417740344789800762554172426645193142053220733153439945920369299001691449470378254802170336944404181010790398567336695998148299730610950881670597885240371265638862599816169784664564767948114552755787632025306934716228395100743588652173053250502880212011890859984216125282727391803129676012153635545780818498223507181003054339390978795911534751323854541279218494222855642164333322794221082002965245853445643879836611283134124073680953728156988754958693804358915475038387952623327159869004232384896712053179651601614542002630132394687171454425411007235580585521264964958101697674146838185972017428994254986574467869391279579398785817524333135449801685721764548867365471296776064943315454214614746560128519872741689909026250440899988736221364783746825946009895892918152348176100813079614329504104131930241738807846502672988929423840288819636845348121159968082865056454829260806181034119672933826420428282284461641985295502596145224262809539521450202468821734240566145585215854357315105432206563089081345632155451813590353647584258562822556976539611813825923023062673469674573277881538118927118337031807244785871140721241437198644420627128083572660741661379086358745469671438273370457402487886487650470698361831098233689911389450473578564669010866026121478946550319948362251868227029936631628687254780026228470293341061121488051912280345748689579019990491973323767076812778072950132665805695516079283581628905984550043432629703697328399649556667815559228115109656566507911803217884879120476313613395004887121835979622420662583424345295302436707120630635526224636533768279951988914660873157103360174824012667576191445101747611617366600111968302648951474532580811646172870608233818602376729119172419494546658055102612517789553815351607108580042056777347841207737012813706464715187171586216667804687034369876360273627285942736283998131150219396164650160615948717490416320568727145135723172275160205145751747726941516225718865908488345136430465386024576945248397820578536808092894020190870118558549962191654682689312156393784571387080450086545703746772541841129952958685205752122574547553916010574643510818992077958929626739794807567046579409494729381500167147029343814542175507180049226975048595509737784944287523966823946244897313860366822561288005461892386965489287665628719142019928333805782008889817431756831231285400509448955716545640087268483996687703089978736230101319440571132578208518162746687125778860051659211167368632401220772579810425581569730058535002697180983326701062359730344780310380307894043524629689512967403908067635480192215880038378343974278297622541179426578628101516075907854367019238914874649520633869139961459302260088595091347003083467209322463524136044847583413380823167219019149178265912404158150358918800261802468864382902771692135667541097173027828232018245805424522599196408320901103314494366006236023253429206296695638984026388838594835245262415228765086458034357940365109717208696372303201401101024958639618867183741233315145914751200254580649050067624035722324029658561382429994302122722147264188902118367520914808041545669249061130521717853877656207106665120097068967451101639804721981043938945911820048086915511927643231151888748376787803341287699935297093947902856457724563843271453950042253031786444539702672302039366315809676302155691706696944923814953074638750279679782555012434472890274482529517974094183737456783941728791623072108649915789053655105537052944317936785081782002919353794263594969708152062259479267295462391027419567577958420066573539308503198004557270159107598504904101429172150835058239114514417207780622116303375217329966889354420648566805857383491807168133561820185992795528134023937222865090744004261619979368517952358775456767688732798069834466935635482642212658588285158248736442633160791173697131362386699419212003366001465188784194701629450296756430224894478490545287351581090526864877409614291830803292653331076457706625321745160486853156673396836744792686050831413307633458725558438556640527773173352883498764625694256519962690531553959897278098002517636835730567688932899788919428130517608557551384937243701661349883812119961559920567056880541240240050718506610183496722623212545941922300958692904376855675534106021019167282492610205670347148458698689131873820399277725206697674960944849905485553729208014338808015375186145455836658636956437754657838836822114158666014618652013899634685527172251584392052538959334945734050171852631160577440610960976132917807741223321066760437596717745228819406519339367158382529650606832934156099737580880399244564928128067829756144124106490975498532743247890586455532311215681738007061822988342657137490072441943299085071030430810584359992263366907918765824921224956522618213890050889953973761392253724918744864345099154340184998756842384744251104715084712672383696011298351790291083717761841612042024793207549722856239880920024300674280256396693814006671544317643049129174299810878042786239367716718809414075422763749109022588434915085933331660063104324424968153263958921920033730413357362073343641448334618683665143917793884261708319819997701591966587658806238467346352400877073903767902145930134069901790452419180529328958093897445820237566658077575880411530586230407964942629166797681941505579840828216969215728201912445156579243183106515356022091687525849646072390918364557165142318585468888260232253025718353161756095091590145780232881892992705213773417785917009062473795539841036970453838267354601561194352742814730365240263857198027436262494413696993368747121515471390777012150113703093056082295694009124777619759522725968996764677108040860853836789982259183356008748386402640192396003044921029065026352048084920439203869609636781281851552214079034324693563003927678210143284553583249263474333064928978405934534223882274294148562342806998642035965605789423294641797657200299397680768460859643311623044109709561975104246723033467526955062342486702619143501149862845145336086397877343599849673840760509307535857218721167776780357026194356010478915787303677078543054033652331021109943536328445218827097495312135184187632824817153022075494975379489398517069292190537786182387078312341333697538088783167849807647418456621953172541025913040555713383443824295756488077172680989150522093759107307411611319570823270140603054721689077536938279938948009714362882618324448048682027760510805341053547794929883528946928603776418336349742226357300959494530807073962484548135472177115829450423324908846522801568847073004526174873491166489914524185453190565366810689084820689057268456069855702807857627381604854785403200172188639831826607918477085760602542085322576558557624377527263119755572292538211368620792825068130495131619252866416795036275202878851383814475327414938062885830030142461956429957023977449071171748932889698867734423339479026220972245925770407360118662854103035219960350044201082269838321224130533164706735298179714700237096110789402906760768574228536319338235370042776027725953899499282495625142240390364232291227657197093392478644073636659549694970354722277095931721098370695369527176635731656607229208447522588519011037876661328984102163353321078113172183409953363959384772314848274812774859829708878225247780739266782025482961427917364409941035924287808483001072620459650337403641034800238602084977061072292548808298837907107318404308436731670017951577721391088026602415773021354132441375510809824792389496519154199150667280190065256578696679868810178629680318456225978095235461350637742385305744496999179471671471170807600356386806956504344595825791577007428516925467806332529867411205425252387777643707630437591570036471954918512850712553035150047545729560769422757126036668305118424672272526892679045146546003500535840674909136424789693858293577132806333060271584922774165606218120630132252712124550177911841369362285188473798374385373138646165617839409642216379139356156723018964858417088238821730110534507100277376208234247747802435072152407240583560849105608640047873750872521982681815163229946592078946999461024637570335760424694715380825904719026274305771946616837167922527360044424170729647771197105714160852037596912873806635207104396095931040167628744615499628959320886413115600717089971302402223364023437980671144121899742482786748208679415887021311000545126219680926015462484655470369426640398847048700075947359198947380543998060852254528668549369774585078772950655828533876285383408096638171198960501662239248353810695018315106516358918427624450388244276656735726869721095838203914576243901422848347095561063829775292485682391668168912570166177454658724020205779232446264793780312590240701680213416417374493322611933098367117061109379455004322605134584022811691363798987940309128748021264370750793762784334399076162673930346960279979077518451255336701180563580535061976570792509585589503285586479499591399897773769723832253736121642151326086539312777682497011642809458106738046778514732555467409299735706360633759791978530711194180015929619272678222544001727760639677939974137451923401873558004418228806967477811161785945689804021792981725011217814122936891951128731898610333688906764576154909848589190876662421768796762953242383937431431781099120613263908872703218631964405968608072125097229610035140673281183090247180669138114351608069699751405785408054671393704633092458404859313015863283645342292390293525803105199905311834507297532401448562263323807186634363555666189110124819001905914164292227174797986726870097565749670354419638338451792459855874089967566661262298882594827036699686574504468536411339932419246303295940663073388879610022764370559713861863867442254643870385961617783451775175332496986416264664447978033838070870034206819181192259731998111151779068993732527596981211681331389760544361693291305551687316491530042030238218832856422118295860840450718164454283829800899058643054747009998021916970625105714559510579054763837673531814743359206131963394842359246130671791750429290502627139442770036542112768750638036895077137014724664646928108962680451860450654610049801404311942665866678688412067236813584867205260488710237075797949147448505369139264443089811857641902649378844339951406242061892968517541155715763343661448712795036132562742670123856019453894278813436250768657147251627957503363190722450267448258056919126351878521749431084044505422505905804729986360208344615288107228191519795068951416889380620857390360181053525957267490561122762322516917765138094804589034833624296745341230307841094301564935726422709268823168919111286329271061050819323308836870794734192575091316293693339101447385797799203403324518303845944398285674358145859160031387165993969965491683637826299065487317207544372436576314478792285164206941228002007938276251414265999501769872770690266515246664001712330601206618045566132255584774042851209703146938512144295452153567048420413912265876704627622551157077952397237494495900319308004677418205266456008857152779449369677599041010042593620218252957467039919835414803702721210983311301511583505728753027397805213315212369350357612792302525140963199470269831641695008300852267628101857871422609880227654423772157612371593711853699878154822555979079445916561963519642551854813800651581819501679103536217779286641557006110579219379839953604334980416028460385032516388168426395654455128892674274472153977560922958567037453046763707041911164648976928701170170817947709301515244724907300471688420237378282196454462044073937832006131107363340265793217004085604928919702410347862379024140397232797659743023924051052788274270823897945508206195810342654046752862820819754980267697715035870921436052761208615263551004183209336330316767620548707240353931267947938968756680218877745504600276198241398619716272673929988553784385905620844327220236874014642074416876987911102005299644854774538149775326181515226385927453397035006118728420772830993746464616739146528838645640883387579488937562417137046953558653645771156871009590813227704571025002931472711251744108265024171687354317415896071804514069084137974903373434870810697443280564775167947563545098918636697417633190258742628470848654133969251150580852570937781275300532771152344217817301515526748946481924519039489503887805275761746656465218452679832498844104199372195699324449662841320952032000500859962455569844766210522805471116244247655037006659063231799637039891490387268159038484720332757963242192839695851418289030228629329155230610344707319813565789069890900779659128495423061106164739378688135468462931559262537202622866445473178061591680907460298748783480012754769616029392799676381477903482409094890942625170211885958497377768283706137828950870475770149626872854672993538204844881306237074654263567998235942910580121433657237442706235834888112059137110447233968033451572674223658724846452289652549783816466422712031751002533641373354535270458087454575616025942380332877563044012631388087375768333478264803800045747805243925522379966634966791228211585266099972580290004831478437657096083929455773334843698691721115856882517433752671468679083905006825534555118052263484430520864146606949721664901400510854927029507825706109744442646039839948076365511957471568871241318857906678430919220882905950532778697451541250895944313151605837057190260587812194358055760293905275268037598670658341480723761408281331374994171201464891450593038863412708995033994588400165087282857456832038417387061920288018530668135994862835461283688561341062575660014509934373690043887296096963234953888102738872623752950610123543489450898677494608144274405812095708092505032231997309546526659738174508666474696490207792878550951261851166741502696309521897935686397857444927660738508922179556747927524819793163867344636184732483615176995657164321632902412927433457000597603997734067369494543991838941114768940555075680421848448019445362692442952749314855223083592423378749827879403571880862385992703456226719606661828768036796788362624328311360204037611540851730208005167479285028410608018658512329106962700882862718042667284358847108918899917113237801081611408274805964904450086226075118002755927919970461249256841818910873353755038453221963453639498017809703858726818910667747898063635436136814994546410607794439333156259316532448259517939107188418637609814377449811528741675076217534388041910544335378620503964937249603590443171124879866241041960418601811015120949727731376550669814077070245006341620004636413353652710553523269513670700256544612669091782884543383355630027928245126485492807185566778872850914423854179573894389733702083047404200358007970949759188899519648180012623883632938461908043212941699022337261480495593125403648753166570990380683288148899327632227933657532120441900712231773872786375390331495444086190639942358848154807299386410454755472735798058723263524883474343981172979264790416611885770097056723916772263912074260124183240935177252268857098054782593639878446072391000931609699208696821751252116870964078432213522953853825946518273235654632970213637779963695265787208412988227278869051111201164686918601194141734737724521937603329382950248730605007597154831826402030503428722960437154005939641706136415060216477295391020970109603125274038336435615080526316807046374842246543925973261905815230914679033153180837372360145805612595684820957992150345935927299000427077381728211154846991724971605233238568535465671132541764703679717571279255840068658191475292360481437434573016103275010646860562891757330343856179092999621712458941207427696153863768903566638280900095326541699804765069316056065476729774015088642620543416740675051089894479727052576928750179805468537497343058207062536055587712752713292948909089370857235438344865568771708122972467939505514657140336857256526035321352139889010197343269876218740707416038161145993275265755922016427071862720198459191570350050686048116099787494870932366580920534260720697990934534479552300082314999401750504268943667714494663233799912744672699883802768322224426984482796654547932713841979979887714982539707017614996089782000594835896559782699408539412712332242314661573978763563955843195123919757227332837222057404728670752671023747236903364684177608817570763239229560651478941240905583999385173273082158988827720442673869824922724260842676349835383399875682625532472119371225346254074788061467390606894132605088031407921804848670359692846380301278084999910080804805883113128304931548125092417049822809019289597226748485793195170499361064753910846487759957106342243461650863659743943222125934287580353834168126245529925767635598663885663848521516880437449584092309005294691560565556994305297813778114680117417456601694907243074829339204183973525609931217906148671038814412647208355949047883402548985863884316003691809548777705362770515444522594990375246064126728693708551101950834366609643109867697227841308393141380371623460681417490412684063823011305737384804476034145325660220221333134605084300401279514816592879652811432888042669133741298185132566682317261060557185248822966103933462247469900478280971657085264717055742353758870353904768218033338500268988753074298955527583984172240131574948081205357064809205887959920792212784928249047793575966356987939161882693600548408876896535634454831952337220421092276038312966359169943161210338226929608139840463698437492009003962259682908276559128083374493135214701182321557289213371231977245408421157771591262732881734084391766011872202652503726170894139155299055701256863679727922117465910947786569769834461281029282217444345438842421551680776534916102208087064000542589398641466187432889829339506248204469757319409098147848166563669708976335185330860296595846393408493082594094910365167186716918393062871077154342735363601829297112235437935850314552757206796292195353108020133299311749798726005603577452256147703434423120564185175858745817441796274879062319640593891367488190032450589112916933790582792102248619216785483598789833381903635791749102248284331480279829655915427169458015724349184462142147362348297647583007130436848461424572023224822329378610391257836742498799182790890817159373032968049874562895819678155075607422766187328873534963764381491932503856365368175520402911560720556906393278716433356424407066315340632644689524520254477092021912270966515627176822770941306797854461123472879305802277451835542491727173551686872092043558759256525038278177649162065949487220435980062456404065392529471818804327098822820506605967673935511934281303400616795801742068163872832512890121982857040587135287092654115245185777925704236249459586229248744970833172810631482846087900534846587434382916527638292972761736173101041019024532621061379948546642340105465936804672043798702694344317429629841068384401913729872243541148457637615639208395966208157409277714364563211819844862089192073567067283445456305875656920244222252689623789544969498033057523073916786378257474573257567663636683771849672763588538892374431375151041169828044863242051988053556697214520355637267859451373330515576440880076125792123600651757221686461610975216556220866874450551783845413659308404603941427215001445107494166903819210779208434648893844448982831671295826613644141322051940502052541569863562242443531952063971101049587710504677062593455959432505284609673632633413697010023427178941636677278987035172061137771227151433149984204245946898863630379212266101596649680700798666180107017610418144410733410529450335927850363572203878722472408909761343560224778063878555475930563127656354780572335462907999504472973104368431104535194636393803335200109631939914473873369747837032340933509323835111307617549334069379856343917024553313611584224507611247774958481605960303943737373624220603299367517000602830634392962256521921429481498740045813808788181213093005709710072042154300847439794071948703786250067498908566787233640796593289446539850854115798246313353874522265068979401195545236384612354627747677291512965231621393465699058690590847223339822137702334125748283558507832058865283646055977128466364722233134732472560912592736657602683119520319475325443368258238994483679948898828391020933674179643780435129875038800438555540214571792767808878951172482079394100441253032764398954454343825356409430907891553404455698087454792531996770782478061835830733756504197326588492724712029286791307939840062560202714960128085544052111740297747147210627586467356602006422385709394427480073964024822873858125471623255746764700946696075487506884506188037170300195250715081392580714962960918238304136200168709134704426384869650925086916810710582091182615793990278609093139878954092892973300832010720153948450295899076761328196435118153427283859393920847050412731001452729023377120317020702032903068394525650437812877808453058161237885318028076110482337430245325191191135997600038949533619998841995069558200650339908490818176097252420178783983204130466287907812558621525098726506496496518260988000613824365766907341292485200436486552108856278887792546019008370845520272871497781502164349787512699539847113976971327465814988637717879482331843687132129430651069810631736725045194629670970917724392189186249636860286086112985253585443729006316304720772774402810467709460760067331685027929528082115899772744884810734150607904016157923683342708799682107239257612452040172627956980474016393759415703164626525915442149242776286044997367032111052948269430062497950928648991876856158601144381471346568341704419461144470836962313174998555418777461673295615409554323950595758493416653011804359922376482612289993254960918278461507644110827018739105823718808282072412507990505847523514345130948447163172618133322522626747141703113877786730287488008771132022961117372348915494567301087190770465191423587716732691352905712589012866219014223837487859552765858678322457043125208419600264625683887695931317471964478783340037174019806159159912337970006069735248995281208118902507774488652663951378272592288057492119293647269752992790198472606981220037269826173046036409695584418462576115320488569925262211486335601173032876681618696364808808810179280491202941360536400141454625560390468979016372085004516979692449373671537890875731656514685177098373134150600560162403309057255769062672011844684278678150426629970780417938575259633563078067826962800269531982556586220666767480188282981263603024834442942403228821162030773624712661952277468750626542955692022965553792326103479089407600195560556384726080685176435072589694948118397139739431631795300174445455067127591192590081032786096595248395405892929628666191537475187747738639359521842198740677336316899479099981997205840518793101487742778828170280092535218360778470214548649014522703476404644653799461186756378998040807882036478112503049592077403150820427680599703930219196890217086795699945974876996449040579470131756575859398191920472091625494933700955627353105240066554424210516648110178616140882420023940771325041319981364167331260936821193326387731253756290475786460881394189859228886264579017674784115056091415432131841937265324301538153316522971158456286234651560186244384076891935291494609888026802780451056025102977819657742429466887576832881834642166434761090655157003937593992785289230019293068532946893596488368338779132532963512717034293851402972847587332457694023746818504630888322985072611471267685526500941811403316874377104075809985846751154768753304192519790304967994712028919380967088942241768295260825969015522825106123662525645765653267779593301867797726001684340231911728661867810096582358357808879572605415482494793701010458002448460292078693257713084473381296172729554403165118606528269493776409027355973820824141516791316538808891555229084547951539845479131413812129015842372101519314968091750819699087062353395116266584817888975165384334382792641408218336886103398300392346788249222138417340672185182938581985705912922583315436386336469819832255733610935392084561345661391275841893083921064387875575516339293463409386887399825781137437142728817516101407567170216416585281271391475199753133559682116558795461150589016594243219324346086018292262984495328078047826682528916352335382287972553133067234966846627132353421308774043332112366353390009287098143574068484043255354959259286238422904805818441907932904508970021686302737988163035164299181099098376439928709303356645007585094911757873056853646667460631601539573215221815161519472515283565634922473152502124960054131171007881133070454512780539541678205721970789804472929190776332971927484298195580091288593332504525218128357810213090098183116967459952594579195560474913127523240225219694630931704791822767661653313552305035421592212457662427963225698156601064514240565715518148790004677138530860543566176211842051150736147229937795841084985690925444350575846150236405436044888462351062320865253075352353920794317040537778987100126956927918188112222396102391592319654944999717271501312282480667067696287492581731602091275424327121726023648658849810637754937323520022730804294951400413634450914660292046041693927429073070029155156674330705451734931013957862368819778299488365823639562171379070506682444035096195933824958635385082552895523646634134508887009121941358299648897029753895300887622582508928569754507837863564002833611475096341618561717997804548168885106050865453527267751787990235611755302741358754134820072281589266378959773608432893171582218486929827895471566269271030283272702453628501966307020265571370922421034981345691815617647891528906019340996913100739161668929046672627371703077601656569524970894383551619061264434659577407535193019096456424321000219972522460438232756569818049484114677195252937730280783305927523451044811531486537527068963554967996457200158890187742471655267076045761172629932628932298818157131024188652183020745989910936565796606055743616469125734170594662799810977301836772600062258975573431538988263816517251908856927896789716603882067160796555924467878954223771919348768418601689031254175780088257889506186330759557382976409929109296254941895681442848568166420009801312105343114337573126652936286405285246990209913325769772037996937997834737627422395965245586414680944713835602519294506058714775743080872125046634898041121596747840647321666567039310667767136983338438364104259769304240590709074782092973880995601304503725159507594683347359966326052232326782320598411352455934355171718126885959435512874258435447107386972059563830624086217132132815122289433931358509740405536738628746496126537001590178353981556031648030158026849547526478130895188109885008234123624787228812452669239703095749903827977556420560725707978919673367766589170972124175480955130631708682949646799779345269064653174906145066465879983145621754862513432031208096353385361510321864884726952724734275747444428472867096238862259633964851429421020302442809137291082831053905586335172103598774991366053850381193091728485056853725657870648897867355124586072066887750192435196070312269092688012052179461428081905201130042084204641429386372655280070672982842009365976653755881709586889069177135257414882300241199973950005799624006680064420202927626035405702737239194333173332109098184749470792183434040057072223992265350055488625372964431584153394721845047328595536144064693204667252910510545289381008472201130476287273914900060109726306895889706293876019083507273535271903242017586981809841824814668934985765255168200612430122438627016783540108137191108518097934981783498682692872607132270373928712185005428269074942636088477880559124703332088630542570197085036282145488801786975509110162134450334213822795969701604905758575553442431496879597383294591874590994418235459461756163479578013551805106167656634379787975665014534440983157056343640201445709818098057275296770677190484737006235240323495046458702521767248019124610418619691955902246669777608101395909161330331899105476238807044727274025897185034067429365170393612786457861038304400210691120966547675047304298441419661418223749289870432920812425809419034911382447397773263750845155208080419500678522364857688333560588580490142549570030974912563375690518127465757668456045299790074414067784188811246701545780496853580852311225687503937515122906430596818310440064988107173661056939410832362847362381279301551855451253478212486255289226993518540912429297998422287184104894655667543476604863545231833916051869118438860254388345835709019530467045890288160417482641602136690575660265531420236087670083060423957662921965999787301568313268283831387384977583491246344745396657744101936548380784187264588876817318985283819097130289335479329305688933162583259257346229555571685491253914329235697493231781420848891695932411433465738904609468969595295353592037391735549578526521616419355561519352361587584920014759644081029949195920382702167384849130998860362929218243891472417893723305521296503089038145117113398848873945265645115116062077875161128990689463846212349269192205222148557624466655361391711482428060658235393355676239266047886555117897314288352046916368908506325253363698720470319209109195812279534293137311735925844460673994126023600555169993163359275525438898366228435593163627256615419462795401210531271392813229554207664110695771030141719694858590907562653909753823626506633503126208930363955475452237367192307859901859703668568283029161109327398244003184978660404078876962741063531415535422974261642518769283642543475321160517078480693205610489151934972164108288213717827923038867031257638586810468929246319967065049417156146245568737313082775103092744047858140115591613422031686024344856551389403171594844084497404896742271640007841390845102327041102596132949782774634711428004078787448952720646506720529436700964093148514247477330011315052685710615220146500323551498778533705355575815368513836636852134535245675936172183320363005196529335207516903017950274343048783654972831844865970720839421678575270497643884454710597435399127393022884381462130347055988807870332782709019222787482399770337000330625096364105707650940154426443487136546826118311825797740964868328504245511252024600868787081552848661136878176277051610055301240454685961432434466372156053200904583122155604866856235504907066881989289087575105100039242373991753220490980553214060982844618162219760542698025868919941133898701387416798018722138434681462637618850217574576674333280920211829559480712416466468088532946508794777132595713318627662643174037366771832176628099175257826901075758401792379800984847840128668410728510668703657861147857926804883267761765011169015881429306586987829897327063487318071228911580796953022311765913536105605441468645311106983277962222834641678702124351228522730191610501145558968939107141873844194681762019217160648450663476462745343003710648748273647094307883599288703729236778336386910980349130539931828763061392530065520053930516310675387356707481430082279367489827772228199156499666489834890135120882177778096971929120488179955600962466583568357017102616161844729097715388625265906030208977284599515255360698419483803048535130806028847975577167680572856371980150686373539554063047760421134451212488466516920579175979967508092309247441939275802867774711196842164031809662272424575898933286560712692065419544095230822193942422817317297924499249112509798309895443579888547117853539298333411231691661508413105719285517205821879710342781359360754140195280661538321192939221856158440539855916748840075185484492968430571985589860175754943667142074282886335457837590901641012666247379478147799738112388788304815390958561459480370173308614734815450595825206984708421209787462766369140259232268835245251074558204343565038646611219808077934679540672833523189298720146039325529952923250095906003339009830968992624751350059215922139798281449936700247723617268150370045390290372017220835074690679846160896469628375353659505873840270134992351850058729669488432429728945276308435076119134444084609180263010511923047446502031601766695798031224622741160447618603371150290143343023124466044505160572922412494193133040757079525119345863400992233577718406583592292521612232354862544442933890980258897848296551574106316960186732687623346548155025885773326241040060078771223488776403793711887363579010653571382762440354493518641303744624375565850161915611659034586131500547666345970022115494280860676766194220020742576244418656223143863719265710325658890222612340476833055919901259324653653732835062973638956838143267260399879188496581049048477825900300897832912058851975194740630170482729549780731686769842757686235295004680295312615570408116709118196920871962120580845838271562522267286755065318805216688953111348706446153755402641252702543557625148487669657569558518673337903596180905944886286031252644870202217819386059812552066520134234924076637732165213865126917745314187988425393660350076331553740847306562764379661354556408276417278356765872658833607132319987141051334500507178076721714842500471145734622168082972872483238000513454175040988230867903061795100265800433238210418543002832602590689836751006866032338705532846589259055466162290742136727681954791968837659450472392180209655199364112340918200814808037387103005988851355257493275141488980932504676861383377519460208494442367281590045066583887166660906683924471084402279177461417980018405239578914130403621489249619187390601082316020542838241157026644875691796361162834980228851653797652893019907848526532637689848469879711809392881228737405882416289237290761941209875235534305718924835857733844933398682812546713280277590309900101248339753930313119576890441255566857520060688215355837281100076378131030782322949796512276088595740696745185834880391862642276286761985981765512606638060982302325457640490391159285098289691483096477389606371996318165132594072052891175652106292306833140382950227070175969991304634255298295579159611419180894261419953235981157664500706673119127885467638604097577017223231671115614646183989898580803526670483428135518449358561662547881960841919162383195725160171105953119936540073653643587724100498211594002347497549835097834875956950020779344950372599173348853811801782946907596292005212579413787466595429452090645054562430756905735620757929820541037195590107156774724743108846738519950227633508621957159819761162818910555111628455210757439534062446418726736874974296304346722321336824635090122491402012632286076631674325194604212463099640334569720662609070505036484659208379992153785746874878833088822634834360215064708728457176238986721743608614482533914034332106755690238268282470957069114470353957002215818682094080223394000541076362645288577298518559085281383471894326101894965015394293110508748905860154213475255390763895775429929537391666363633293211763647876952933786487423624375320054251654808540655294862947331191572280282049038219104673047434616502909910772966960130158436033742735979644236035105759561757088668801618755818287608119628157545422198745870470413841985409883596304009694980178153485277317244105878407020390273822537700596719343467866409815309282951876965368463714584281526911975045153422552015968211031728958738868990983197877622996079386680771620478579106086935254438750819172452668561956451593388651149435648767954218630144760758458186545486041160868260769488472422540288260747050283485734478512065980943124093449247295692056790686310009308408663368869072034672469540091520824820966009990605428828661272171557845861090492598368234652461380439040299169515025527284288693774147880453113584562446258514125620592345132814507199513326899665323011394386732909082410150079912928511867118380959591695886096292277261633120206296239062467350906208994374185226911131609400107484854302775851050776114356466865739799397332794371189341037468664922463380809387180331752167246825350749409306776891213804229050541143648655405575650147951691577294461022636784171199682314282078890307978328736428801810815231759575728971448736997493511366855611033320172197131600555798554657387415098655841804022709089294287355690289967601325213076230131730176875739585013487567404283462784742962739763652802882512466446926776961685398907042312567700259751263230222006600062828881512592673292348634575474955959752714728043898647309987253032036683359981884976776849880233588072610877458050586657079083279681736960032050834996671662005113390358971656028766921790363655450432343563681351552529964440006168084013515147531422192579301985908398213971502587201143629214408538617926015763788914274321212152308401671123423509518665194791006587706510224662337197182781179441234013010707319408314779103111621336121778260709104315416627372066413721885231720182317309890494543141854422637722128169051816159935623238282038140221287695926661489600481181448125341636389356450923495251282178980886952622534440062725498344065642791367085112005912634619296605945035802577312965165530846473406704679301947200963355733330129687549744680183190509371458471284428386785331370093055073497617663363418397795665151140207547936859148468772453793930609551977467525279626025937902655203169032514996271063613850159534060010494645461208750196897591303260276207223022803327805908609724154997941189509722409642191799501921777241100201826686126085385150372860987440843805581035891780032982618287474259866998835857810439395244867352069741968911843616167136655349817501179349375752867316452470401132331060844179083094540738905908004712140773272274201829101007456708347250780211091611840506867461382678961738970886607144045473839771571790178737823036268704423542613871118275181594743273587714244337517601152231845477167188299748536533606406955603206924498431481273050581436885267371497729252587095314883626523288382782804776206357862204054846316180711117605602369759092001679976103958034049355412932841007606909645123711634419264421091492184877501670672341987790208662471236402277554355989486235533959959248766708714976385146659973417077051623441325164037351504986978643562780937030289776349898181221449032325606283055157135514123445031686691591664950386959543598274213214787767513340003377456964399296572780687160369216208715513790397754574237310678566152795987529480712844112016017792019221052877650781213582146245107193101725823950831548332777477786480504667739913043375357214411239806027791183196880252750416557121219546668278586936380564651216579536541485655475087614536479013840316028355348242887382076865758472131956353947750759097907699769982651798217535554654990379311097718447008894515241344849026385850030945789673990184301436546158690336081275145153924915555056406283279559067038391199799143948293203748273985126862435545439958203739018002025818164225654982205499605007295877557122678938587346855790528461023337758771704160340031848734310104973363011278808161597241626576576190590400517607078467754558728401225225588818405292947650869705018769731539150656451306618959710978425748142162324806055528218367568203842602456793243207283759358982986622149187926512627231645862150300204691956735333453628829803261157790517531370884095293927853990337869714687373342964980322650143206518010147705155492364673480434974165502706348539351117049635617340702898925016640045747943054387951095124889423606663381668796555017461985967367356937032038682395978794042390837452363237787738734483173366086519368665389771589782732031714798210921709970526288828743077482431965605984966687835523058237982727773788416567171553672046607361934973368300865845811495867916598322109352280210049764610019885795472513568100167586033505308362296608758498651112448424555749507125993415042469326139738712325224402307033554865975246230801579028574844658899915987742133073226458303343388364845036752354415107914863340663753769682502955710400891515210846359130690128187481040200059647362195326391978023325053678688207451828800058575655390592440057914346920936664955063327869525473299909954232804774385326734620000574295082717313621796159696848341354860880967953285627414445463382206321772546009057779266507124643029645242065032208285981880262476249411312674535094433830321330665374434199449269792896530513191480559458294932390157898335829570822257885056739721218915551844367824000570821266654687755001882217928577334284856451767359797586561857078223288676792808016388939420863868591844885701280422768158976369238594404824958924800063908848326611465490126301996470309024638362933982998976694872127214120642246402542177360889019165322308165194023154378163367694427916723355865330499887845608801961949173158468386403699454228400989959689545072805510356219927637930879737941499509283243671137886466268581944683953509985959998090024209978175885069034147889473333846484963521126757087220721627698884800468996893903621555237510224986471840658767508315554049266866114261591687693215552713277099121936104724511866200811007826988497646560174521735116159394140516480470626422332064066291677132669773059268844519998978754494299663311372305316936188929178488454369273087565034610340876615279347475831518478450056671384498450422784298853395388342651977659339323164673601917179487235322985812405605876047414862454207350855670510610675926140546226036802132251845092692123609068105964429721065457493693852763671724190301892237042196975560753654774675859153961933810629007194038507866252414699010756703400949560767513194006964621999310718916783050056955914119244023624865029540129362593800626866161185582212495469156811533742679565560764789791844702755593984864347472639946607048580650866235675668081307423226978982438490753800639911595401242936336237207170902535142943407524302616763082351439261431694349580804872188486825987928805110941338854783481950683222642320259185316946617693698599748765324958327968859950056530478390216386912945409783739648777824860895889673283845641176787024063952962600811451027327624360840182283366440230240516186442312971229353592353534870943122897284382515132461952162937464623543229405545109671804402102378066005323675544776335485889085618363124675822796658576065032075058944341767393940372446572374305369630174725446727136574108175394987270518325169523652489848406193039115781057022861400216280701540694194424364642099502494728102461652158598309388740321001165647523086112419861821467023408517769151967058543980039836062358898830846979612195508418649350001998578279658083530550240255592382039940619474746022296387180569868447851094975878058556032835699134267116130389812504301665838442693988389602986134512563300578776291021487684743054466147212811947949816561207982200764171420509422182700085230872825481896766774976119682415848879515453106221523694733479195744107300720032590659409843878917782031023300525989358002299934408866542468549523543504274573407048224535317757608186440971098118544312889858159450777010011539018765203094971581730423463345501911136437376334814436358535755869545383826368509824187607575289351182812326997366180439928173123950394813133565496047334225463535417898504158898715803095490161399008207104161806788716401890950653633154891237050610964165408236171542993237781152730135374225264696409087821619996884853162341189214905103254802736873261092635875994835719302773424534713406001478057710341281951041266046536881165492148740673838248333048714968751681309270400528338083165783276276418961989179260604950105305718476836632846462835942853592653494698320571469953468229651100083860021970591898612584820197556952576925457172996531503253785626396045187153033569213404410231429812058774086419149654546490755229159274096380487889014408076228468320111829738123345923872605385565634530625377226412215743863373997423661532979820809577488968623775915237695886103579212266511861583731006744162623239136678808665664697499096222315116680917561874661468046716300213230937359397176156334878243747429903714041100022685296062810429673264468765173189427153415239999204662343372282958346084289804684378192185048774378368224248721583307764192266269746457607132929231768060660075543407017999295419491824694715807412013934667468879445635050198027257787626489972474059438765178245314649591190359799124460298008273316121449166963061417796957399702902661854344441630036870374375290237798442219486330977737771427537877349665530434935194171875539657051535791767202381312510841351269163413171771174785870211492459109827776417615032179521113195990999885217320664490728156092637201916340176989246998189292973742040924187152533546232138117937910338324711697421716795976206849973498866573459748384942637003774689033030002784947197378773405455403988665878036309254941806214478181662802065635773623262620310152694702091767548603969442320140577067878048651358137428311798529890998501245550332931541233495862437976116895656600334545571761781840551022780154075219560286531589599978022807720357433984801999692524979132668901323272931456816168419299483827657776800176850114751233896995864399011077367963743412373718734671502606741273841181772721450147734162054775801921389330983617955212323162938835462967485859783638630358565142729141482660671526270875947435568903135636420690075830129747488633914644818681594035315927578811681319817466714849036498615883675133264330499171558972070978883196540087035664379164215222529255935206346586662894498383667100831625627602737208407462602294971515112345897083710873219376819542391771322872219959791460247083019861238213106220657302290161608420580685664482335693937390019725690095491023607935473968222714516008294122924448068408662739651397102999293573043923072564644459205388561244090977781660925003243910398537186973795109917766000541083403661543787532916561024894706299739656279468373189140305421875601043760803498715421297763830081443619424882074612437421401684684796108056813589575956980119748714811580141183426353824998055123220615330742215643095490837292700051339601437891271758160198278211065956950529854275586214418775023570045706770042117742798120792154542396498340079922707575915347685277438299234573954624117033729837029064746101803294619022054914680493697665941611282308287674098781902771553141559900015062230774634995102225446110441894641257113210010824916599948872405985246259372540302677901294267187297861102013224447111586119491826034028397437624935486033358952065050869992010699667468615884494567120833403278736791536163117492624134780213492212766996654905055344689088599081799556297157136960613879322909985253709657191984093400501137215181459674898682845106474477635079397035054648977903478978043909835485108895712740854921915836946317160603966222709083592709099353566908617118777683803440275320000326493032613568882495106574314110282782728383262028572438826286941509244716936237120838378576464289412022213474002267851390823525872656825367032042088471442707614388489338032245137680253868168226583817994992567889808655853119609095312933950268677699738316177771849183550110016401508409077449598406524435490241203189353013151800182334463774198223222122533145972157408160186784357991020875845446419907252368830199826632308025744973385547307571501536164865246818275214914641404476456609354551066404871843460329127544179513567211944050238688337937214578228728938582461621804430378443296899637499064258393463883131126096274786513893992473975609270648041357773481559768258580063717094197054322137021727311357245716294983413406455429771452815978710686071558644757554999449161368377210959076724292595341602603506280625853152328325298578518376092911687142737911599545537811516845375632859927104197688975023063107332097297292955213974290820106407578445048401181379957732912418142357938325866025304687328032402318718411177269704263879441193257275467981260037754811125416889465568642064525440125458620786500613220479324340145665398705629123038566328090874040483715852501008057907377433801440016928275083489291707498968003180434066281328591322205472398633099582049965612256751319787850764454389972057787906228346658131286284403987598858433252404961822192879981279191904192138932258099355349649111478639715693257019629452100771503921644011145323513774513424785411931257866269455993105728513449339782537767133077764958000697669434055081206595222909194927193600360322737130391656057319272994355020501216655228663452543275018721359606255309071230283123436525297060845830240546255682519995230462866765040369118412056442297618138205995320783791153188386608339136243592824896696468173536579424004072742462807862108562276938882825624468827505756108188685942177236831801265858821080926431914275087086157258194716158632324481216230219796886263809928129864056656916524097149760553312425014146949759487743279396725243147303977825728679880909456916448807177846203045475453700783524199101834620664028400504841864068753289764339975278263338839608324361673506746896022015896258804065368077231326520943702496750309505945324918838038718995264184331383359243293061377996757202536444800698910698051003192513779477908045953581042257252782027613949687891663311160524460224281777539335154872344420959455973453275808611732047916738212975453748452426533701346809042799668888129409831843475020579231725010525712644589839191033994816802074789290122519873611522898209180102039213722823249101107422971343427610099408649329051596472867904251262994040104408349001964913755150081421232358656356508893378118056747741463887733995805053923457966312979192808429651538716912864254289851486043970859744420116684697304924997216162571903803347804213257702535257062165087961193512672981188085455215526856954267732373294622855091835423001209181377251397792023215828114363246263191706280158627941203891785682909483630582124433550942904201851695149244964872054265376657299809125793695993830979873058713298836401747733994223900430203739478462268856566538236618318531123001374341583765908312613502788031646344552110662101177311697266190287843297764430432534513291691523154426510967444967906507699654991236484406581584757402722851903016448565598084644247897174833907670977391321891521278193905766794892019337501975066157035904253049082794925679551493688950690133462171812483337798958763448206947140874602087969956554654157677405659286506361036256395071017023527775000299817356935945054263802083857202708319252383351926985315503042372108734558462445403505500623543736114685812979131656117390937990229878045880939171305798661789706026280825771421815085374104509399919127127044849067233914991928972368206065027410692425982258262556290066445106378814151368315720838506556701087753497139169151748109822295283330495058833290936119661633432268601792469628744763075135301931844507104104939961064322386227832245307356342288017208015309800116270922372001750791423904780714653574720763915294221651953749413865948844768548863464100325989524706576918903005680747423697067400874815864817444075285069848831815750052524273206614714762525845484423795791921717018475614305762385644462760512260223067927708859903577814633464958433370332537823479269843312366482984443509310985355214901644643072557541280089995164816626103895670472162505607409853955268491969641465636205591742859527791614809919240901571003838865748893798311239010654900629406792540301676137292865299793121356315105469639108445320173579212699444977875641625282941439215802881659423422890937369894802887380066273645226271414181524606900438192907692556739797174611584239314598339258280003702953681681944995843969197299729311237512571195777760171251362196016178961065427602786326290131586329941549012928624134075122963398330744614285923890982160324530551621641130301172039222464956333624233524364425718897680837761096190940241320923983987314756044389716868705657032707787630151033737239135405061868995718620820139815038299071457884070458933818514454241338836031404375229827859918789788326467619255965770964121125977263956861671975051879661825929006324398574822913203846658456179422687455492744339061800584098025334639112480210500277738559396574611135174746552882230685700502626888325802527368144570087954916335589990303793716333046552056397408196460304218089592211001733475721564208397099461347603673148765673279029872098400038427935867307353197558999416477362077890379181200421310891109039839776714625824500608208773329606482747920451070205529451438343392907859689742157203355227695914778114475646370216662668119616086002472614775636035056542137101627261274045963325755559315720720990738208613395953091947820252291779596645566709279783780493527444628828993906192434553404491669279488638693166463605221318141997185357124617386613025668290589082685885992144374581944474179527958078620314004285560610102531241472388811982630191785296404516232828787173966407931266671093204115979834448055850983618231649473937368828018495306524129322867387180159216623327017804684304523428718738657662627603927314764533741276395219284961726092149456560601177082670159697610349015340100109333663585772686364867702323882515488774987497814391076767772439298856480649620258255862474493526326723628926404780576680826229806781531482153030790902283112630532612638628360548238953585939792839188885960504608426499554939164777577478046386351528616255552234369767085950506065523884209402936186215414749569511671515996464544116760039737436490151356097413980676754731873308517798347609073293368740894778231367266121703247236518901651796451199831988628923490369024798221776974246077593304797267376336528351662465908392671297650999312353336280608971905789147853724780839419567466857349001399215058091493496367792377659947623267309323509043457496574506775993870989339283714953499525566646255451824450730337551300531230694423880790521690296688613313421759265454991503771832466931998419336264386406933889061216502362828312566716135583637849133592470654847980382218408267120840886337346709738466453041960710096237275391560470161905059742751015465973784121384493930130253631440891650376504266271786046008518016808875783418520338304136322597053139922989645672472114401140171607400239408462421369451705102555380525752418854162828925002975281676674388291240204072008114869748321933494762263437270879358185605602002657631407681063569797194275325499338276459438334992967555904961993027620544364729002904542359648287186352184081761907775480249709357093081679496949730215912947658378620588073518134799369751529852130769868255178897497301059227881339587169397061602796198356090342300105512746476245085320163165966065524017135368665552662718296981495578217888028497389694436467955242829068653221474744871629003763086443107935952966415827522326724781205742832868455891422402959034260161582086890553375024643061810607910137970440559328360176400063867037264675520266840048597207963911424834626610504542744001459014230189118148383331629464348221863135183676956951759866723607273713969653074358859341949938356729941636251918143638262503645597091437840493271598973532727225844993739084086567201495842811915511345102200230387322569128698551415970183944640763799017313737546621485412370121612341761549310507128663182713476788655421532721435307497584407209673003961492877440869880502561430285351717955291515248387484725365274092171661506838187154058646709776443341849695126039411685168648893556068956134136401354607249643462215155208318422045493229803377171746970158637645549744407087698385187690461422018429525934481215937281017682769275362384626307676134686922088517732657785107629681186599905498138394001087022135752297624257584854783286211627906051612431617347396255861402260076993951012240565681654882084763581881261975462085951221813395400990522329250037141057498843313403127742894142385420506398873744496615685748440526402595706615575841297852240950837590710587364507291398481846393356128720334956028727034782644403788164769592320818651085431174919155164892563748426023771948215439761219833542909002360640428588771259446018329528965448158783015578372785905475925099477482008989833751743686482547909023063158276055851969828027671635800294686887606103567155715428482692094866549017045211583896886775717802872229760538483007979373624698999075800201958838142065827695350965743088985949566744171260248076106392503864644869378044739555837448403913969248301401278067044200951895155107963308837828031769687989744873623570013480597106386108079517794394482574017498673330828215930684443223090438966219821604221550403341662147809299528970016163465757058977260622008070792016916864016682538740185121968048842682796763919915071288776512782743405125684156768044888518362116632161689471442886260774856947462835652046445687894624230142208051194065076443789909186539601162657203274116959599369685886505235680138074573681988390875837230777305533855443271112644404222820954787108384330315362470289579086428769762881566250303999762788983440212704228667640155248292401076366227648801678382057816809454627666285634999139094644050816469003083118179072697730604259818430232329546047590596394758102091610445650961168464201706358623554668940796354339141661201886755731445006273194318680318139160161832192976816721278869438299633202216925829365747881894561742290735716683443477420797375883179194552683308715479262009468471432655052076203515994885847035402451470215036771975330970857736355589026877901010082085738356060322618627380032203874871279088229634608779569757409512584634144903897641320059801578322291488630690024029569309364199356352622905031642913050064218854949770727766216410507459487906171372569347322251410492515623942734766623144650285975593702719438275929990136733678991417105315433483975244336241980572013961221177632673564096980669210044574794147643882993853019521276812264065622642383928254055877609779120304617231569020995784035092829626023660244747662638674373509413369420339097881134038032235302333289562415496879792767526853176086551508318381075339788249735222844879981463298884652824871598746279161351816576385793026864094953847670952995079026938145355308440286332751903452524497477932942990987987274049338593996658352813965363425781609250415626881416976027524187177598547453167634517241262836669401489329821878676247029923288234625369535424528981154118128519410879190648817800259590991076937329989786211395388729282613098738384070921712482541962679371305390634320958917818362256106877925493915071036022055060927050083550077342695139430970097977645012553604136681810767513438869475657895795249794710023022715292540762652965305896595591756862733620222018215860562730933350948948625930114561298502774914562386495158967322420478104812292670672938544625758684045891105965331365904303693461033316442929572888308498770474197453969223838361156673655008905265577091234080973022459642840131451945806260749153169882696184824535462312935006145009861374439375461001754604832672674903309968134226076994650961524242706768486861895410584815446619478520403253887124677171157619268599260193646240970896001507680814329434626721819314934036841458367176111323515636796575530195100209520193212548931442238032439247706568429794786668436547453706752784223935641685968913483371060230009062210867814400956659625495083163124956251687957070435200012890236023202127419818943331249116153825459523569613869799315710071845567476892990464848199741470714644511828071000828785085414997369281806271527817332734084079889720037382196504924840684572106545484809506827081715552747068983601511442776614763001501829772902392874270095825730493815904660134003471732899362543052134260001636571033622352418845279163365779645962553518708928691330699145295527186268674821919719461193717211621702489199932394147936233522080175932449749614777087144491988105729223433506948112083479950212056261658122303716724671703886741341865373502713903140000342577637583362275555518923845787759612665732189704943343293147111119416893936707864304605240154210594170058918114851035768467976814037491328399846948585954519031367176255853690007259720787675550711157358948541616133483035892376453492581452351726535292683989066915003793485470852217728089059906705520686755161452030841525711138501255162995940059852819982106706317380386126808036365095024241657806781762003119176263103441975491166478336259710353333627979677168552827374218835690224138767148934096836143171507789879014544674712775112529751329848523891550397975663728310723757355146049194755379058665295194298263255899538682148292798826455703778291428217213095317714688392756658691101109174856063325330279172398750979850041517503892455679764890629760735463744391673750470643971705154874460057544022535211339113129928275876672168379542782846246791576179833767648016472189260657840222351526889495918557721837696029354524598029209172953971147932959588979941181489011588480044924243668706480779958472342936947834521773181697005841277046704665780310847928327274101586729548167519298442248057655470487928818210529157127484023256985591732474317777655327723137391767828696612061730181205547788601431898997475634761848246936270816064021549342801111553147627875774721963155842099414528482564252478091620997174902271786332706128825838834586733621500792503805966832730020534118576974063777114777435016655504372693907187161665282699818209560020786664424668050718106812184471950291720032438228004747424024781168932014064824322638524916286630738872160600328452717896576759530638188959843172340410513031337384810988205589569747702003400082443835727640911091063491620536245652780147475717605156744595942053480738797918683056380101887774994951867399643739845315033961522121608823277871515345685569013214259008913284239877485441039451882633496632228776995949570434858569236090812279384295534354407310049883413239379970730724347570710130174509035422994940617793997998324914349656274112491660292230277787179558293362716425117040135730902894621124725491228698894548489782198455174875165871532953453028839545643604672353369159891544022030799762737390043503662438115236841616115744204554573730131241234422427759896715321633142847411918626082776490154833981658271338014194366751804705538130876180398399277433582437140267239700487868639196291607658614187316972677930762306484855935125800933290054362501888365268076283220097020206962302729038101970827261019864963103323367360709713508805039261907154343921127598978925194290957120186069175672485352549180199058618984889372060161610052034522288313327414430622091498177642435821296547416357157216916842576512541832890126179099204050711238363873644337420992139908593680696135112010211335666122639952612412355507211900645974916164003928561434695733933215073428073212106769197855535737192262823902452278619791499764639082442692701726172233591436983674816246153945276911560661151650053515702093286309176293715415698118762278215359407825065111869211546076866828851335089966405218409863489552688879569856096865895546436208079337713014054999070473570397178880697563461701299579597038311981686354257161508751024946513450331830367993211321888361612034911256049053450808893825167676861534716279819018322112920331535476750343004234555278454177490035092852543793291261599377462134669894544166628005060956145284191538115832735501381976010303274104046238065754516823240442998333859311241107684615861679734654695122490133809212231926320312688733634337708492237295586504685299838651374454925247854093862258882263412791943607313340151958207495398797196287203135266193873893882169659920094801960474366822262674173906620070439758597866578540368327285042051795566073542537388104615038127631443345225191684682531488841841733077735197794256027138574951362338123212807251114146624066321167908282419992739389206132182861362567290949407192486075731927280805486301628052736320942865080462660325257674306357806429064401536418793458130058780618066786168240687543777193864448159882422676761389689695102705042493242481479825657008607598829833152432222961577339955323497831665615950904678044286667321119064107782139730220243251642402386620378713060100704163947158149603999550813797331748395861181392702916887169093831248956306487196405992967921876824557755014532881647394645223723767763089837321432280504692532182086774379281617769150902716267188685103481485781607935369905801414392205599846544020199226480111299857084106150062429628543632420040894109050465724231731696557762663969825137172308345247975744686459212532701379523355829795513180277614845222353593413028207269017890401875054642142254727349294230253538265665847977970784365937523520600424919702857879027168060958477758313967241558221227323865921909982498386901111001605208577846029900800057714225919711703818615728717900040440403033425666633925637026894367223117412616177632521699088003024760849288045112391698481698382647135463269142235726320876109423723843102749329730543629296046394191391575732373771076315376403107946141655046514990277559889267487433748010253267366569473698394462157674023948806028642605679549494927375264273907611920256156250365914977392860862071019848696573579508433613614575946097751854430157033422150624441741342935377662717522317729086989968394145869744712294671563359616503349503813046349984267177071982596282230691060691444331491162436062898660135500784494407663758843298818121073536625794450475711743098397309246207622762262748717149236892692509211256286753511179630896730770719674186363510096384634907149832102304973525041103543778228102273452641868280074979414063128221387957643706859118211616180567177145024286264886220959887525647030249973097796603125331384904933857625239074664784997546437569211973727081873883328624315315605228225360787212319215085057356666557644717669086968901034387403041761262997884906959302368012026785728522707474199791948978268620418035744635481095958604087447734765913056673580810289709695779911950827048447557483192694853927230278008129557755061171061003254052594554972861014275680182528589797082872657744335093650905111182858532148053757588299377422073725931924316225380197855072361591123920878723771093999957116181116989715709986979264218883157164612476887006896405560787530272937532563686637312810309127052355785423567544786645368026021435310657170968102656160116178928606309572658500861266288976624205927560819367017694706008519215242372528181321566775495817208467441709841198079939586852540841328343629092886007393454320921347487678831626704002132015786372109882099052996621230497889106771475302421009043093826601426809550318371363477779728132409758703246472457152944602446921177921544610826551556239717057753241166499671132835375176029250800896247815659149201138784716719768279245251056751565301269990358929141381739421668764615921882474935322900280963440495563284111547922569927852026822785586155688334106303811616078928670210286047435905738758625039242281919775178469271414106229096756324209031194849174377915406218407417675380759664743278892524442974990792747251827076397067683425294790044725308423359142991146625192062719551319355107190076618741124131938931854209302863027748085213615450024738865366263035989788336761811852850805284356635718539609931042884638692018561371823638896495221090831989241827295664025230491234162316850312314963102025974039631852692814548199595747571022816837321897051904947032018604771458678602822817749957482357627612651256731271876974065105042984770927205371607053531281901936245128984845224530123243776005680525542316616946346370355668827757192138033346968645211219314514568702299869891495419291319182923941000765682088864878044694390055727927422300948806398006100878794304024898320751429738145120110808474932160350755413502922332823054825928118611769262438443140037892305780702255429443171290928028419010803391938936445436747052665727441522946048023372309150471448744637624581600428292820161424910343243199253111028921662212469007497352324070129275355951528411279087968439422656092281385499995441149360643712110613930843925580690652882467916849966463728095323111650707470554892370150773935626828272622771575030453118309069337510082885871801930206217019819902088515331842717483394069531417220368910358862506733087956089683080973368921161033988395690122696754072857532485881559553793289533438657548939908677957255160073507425205046408257824049259719026266295782760234863283939592339218898037452494951484780805511030652912047678240820957345072610641789990981252263566872572727912453617870783785247659308336777059881562572108017941705131935567582604484309325185120183094967591766910454881032035665284489543452547560330530044459972541080804866125110936129842793942290108509979321491791551057469952180135440010359593487486408839639768651813426721780968895377047338167598094840195748912432642931036131990740021000791196526273663460147606871309309599912709479361423500621594920148093552513034364173004615831605455445295253397993437329136649323759099893149030299091030654362975121186121526521225513600597522966416979710088057120533996988050527739766302543474435146585653486690585828348422815674643249490816674686750194590261719212939607416824226034650194388883491032477694532520834845751016964200473696189458151577736849932380944402801025184194984801875672920606029656066820718863364644011680118453895200056707495858205138615572860875571047006508918650348892507239184955648892396748890252244004075108089220603725873246205741133980828263519027154086855857612485035688634054580451661432222109687291065599154339032129442687653249305711399245182039329990860211185841640831168182640293240945791357435617297095526157026775330966027181302436171647654926393913447918267349572431818863814618288905213160865425791912946680283376237615203239587959574893352459590305286815248527769992854472272271695733637685674787687194481117729143438590795066237664224582727164067412542005513260522354633489728585496978479702410383437773464739014381829703753977308875574165581067618753789080633022007868840021364285848003221414005675087627940015997774909908384261905965850588567545754253226701135216500553563645078328206054368312126851995484499138780037709821800489698597181412284209691148411144138634329650566116993168796158587143934298001986043572387436137571130550646838740431015717865819105060223109458582839003716991580760871897997622489764332774873174460794558323421106738759005124750276171377379112658207695227562719350891305650640554695758614135594389793367168897972656365558448152811793590991419782187091846032554352563853722407530398651900362429803858348869014694719323410824202501794620369282409958362643963945676957640489471925482030642591996147463230976459669065294963241578876209961158764064934285733451656374305708738532933996594835666598910716678685718191389822549678706974109997704823685822602856977168997390836712952051145701933148132075050700587244706501638087282757574832353321688848746001606505708701005515455014477777955417563588823684712447869949121925654953637207858600587573647789989189540380588688017343571973624564602680771344578343668463268173517825883777311136233920840906893680484727788767722423795058122203816304145070106381232358994130856250172058092938740729971839749688999011904608494329234269396269606091091643953901632609607002884107493807216830104236924386270007146567890554064997235053124048944686107251418320920686580551943347577665785617069519386600319457982836474559938861589443126864597628472702798112587700586699308960766045929699841702148362649515813905112313729839949112602694752507590461114044181359971344716801069909219173468723669735147493090798693519520037802598812444093890223678884706922337186635260128280313299059482621918575372355188667457836270835688274423704889924753995706851469389331315377236185994193567002237842623833071936861891300981622499905402500302412295640843503404517632818880031639379099722547972684334357085618208806510413045992606695730632281424668042759197577690840890620071620488178699621473381426061390100057530136375978328211423705115331244192255881205698096278585746104222087943340985000188372351876606584563910710183789493837898337693738054055663023672382473947453071764427973416287344389189637958549982115781973967283318247400790774240005372582051594917280845799285485352450913601346032894041270735052500871789821516631028918687109814087999140772707743230473933350008945747204872760471226009112363238567364070220769563872443974978759227621546399429458408560955118525511639776376063590029674741280549800344762820688971280347152676884454746997769260221972642139967385271581275373211633886006432071225528563305307997623776882561737295392139497538112181735495335451029796762133517273021249670828460945615301462844723593636026016944110623402101311311670763491356183090211643062391147819879776490136691542307786216657705563970761526521535198133015709905699004228069368922855872068817139146048257395257597933933492591072796176064895214163285041072912108242981884460283590082820778212297187455561005896674865014652273656498833494696790282948028273930148336187661194325464238842670952373212087540848930497432471190480339954137400981372766250276072547246058981649106422147463254326608967772049172424107584249469312873507865961105032929291929933827901267425878513636335462506156535861748286840762153921591377925849843487087262916410380645481941932617401648274174497706913282600871286152208881064741003873997241846891868693401911132018078410394733336798191434120789701874145756955970335227920786474791543945999645716784672933491907235649627484857963336123427389347814025610055816198607694250228127094616325332667542364583339855282970646572222734026873198716153652457535825989793598973226335459401269711401971804039899257230897699106746598291673774711862040684569045637319375147399604772427666785737355911229469435112539401348410985409761699420219545255493073903299254742931327651191824297950789088928395919892309291970739044324937193979358933280205728909915687527920312651642270526667927657236830655927991907397387508796548090985628945608717780356997368803822354884689401789246530718340667886401604794767052945966739258557176331231835720817406176115060449067592584735687883725859286242496784277393623496276753704756590330375675178828823904988837207531034493162524000171748507997450092332046513470878515713564050729168292324003385420206570480366102477049092282074596166978935483993530566460697004505501991993102556064528615098596907653895132890099219688051074171267354357164052280975391341216454846556867368915479506792949575727870695336526415081367782845982525397852265272029545089311084959041410677522260619787415176390771056226705981329404362158633619602418127329560882908709404413791583719679628684466261967299146269235448122498698853704418478093408884544488372833822850885747837082303644967896169866843151872208807002161983833623008049091646043111406547072157676421071128284804309455219398262403840499319418948554447274399719191349124945041532394024240689624269433494868720338962908281763804242998002425476184512491640523654932997710187740736149293962113626144656981584653041298592056575497608106887270963487537016284139676710662121910503722314533182992217390448309282439910233137095233199153767912455928465351240172049768403530808473146960062840152667919368265922531136780313754662229972145618856025000723501747137480650199082347075128749210201911199546603059560248398806236121434287436226088855517185187344438801044125241615527451755169132577570529253532058574961775097703800195347271013131942521055270551781842046183333613015594884135095218106423044099966921656919936257744030010289213313569636027603986470216554984677619396001223036939922459951105635303352790280394743314516722445967583658987101840047199133328375826156210548621763698214443014909810174745681579874792671937696544909579493244201450018865788441436748028310441629154178196120377734603117870143003630774453455383174577669623461870125281305942731962084098263844954154461664209654133086991311726017208378623501059360139038891906721585931530951191531249733762995489707675820908623289057090178217584542786029742581192262708614221845141991554820941050815277889334350210063789248046328266089627735889172291146425722237534007644228591751729728758289061835374843522395104964776027301335274729278445451864024699849097630112872887722650386428511626576975541349083981354397710848374969549238522688005483463053376336566375551500728108840264960034975388126231432562743864382801216152150867860270223271573706808567076919644801399447604190965521920915422609671845337511540028825659242779637355832497754269178775669509339545885449986286030931205747600230132341206501481864607273728959475249993546393268763227040733188450177138590768926316740615022788124467957658532169887000394781311726788345776679043247081750647477962839206525290330511481107811567427240109904317369523139782807214108428216115570020724897185457264096354592352757762806399930678551616112001008826497938219816087022402540529123754242837006407165100512619651826444623522454689943037662631200421731294601157217918153090874573538103862164433004279537173358989361762730647703657452365247413363238437221410632157806315322964620655183916128363792143402887511439129629478952149090671232410220799081612695301665042560088083741127130916745955643939468645049931940304883130741055092618159191185917118246502113529306827860030214553576491721960133000228529066160490712202797916295360039971252876657155197904134847648912836056374599502577916675675736138584227738197629244759636740353622901870744361940575746299589306003055851978947511002711375614051507271994340625692402629981535784960298088888057768488209854131067157264779339250791065495035015020457096853429259058210096042713951443594212531584036327475450975048849187378242528307312760699836951198450123972685269687500438207909149911026440206923596034242781765016072622623774914986676172622929685150620974161310856006883978587172460815633619876608994258827060996635555201741154277474134739875637620290504577737318697274841538737772752835679623950474748185178945859887905235574287815485730185101995698045984166558966823898485234516291603920249987558061271251171590360462464348191472727125034061119457458780730443697759640716336481443178512147934375779769992821996270746546418414709367632335565956259143628645325970867591118387003865619288828952161384432074593887821869392782837946341418468534502932940502670690328652289071247359076500652709004050818551162023769774224720218643835207633344216833199671648556897801869054042635861364505422985730706980811926537951130854194042056078234244170254992933603663180437615622633870489431778572386884465763859164082340048484056471689370897502085526554425891253164276447376202058447303319112669305810740069034423921873614462475916448979180061102071991918096788621221838053627267476075423153968998201280346456981647061908286309840600748376037826717371077677499112681025285149103941138694719478396256164227807385108015485171668953216228694509665825178150398652578026424926365318195990825039210914237050243694777049782778644127752828464498522647881090278952844146978911286740313444091470525330299935122660380087970807340816679041799950972415936204712245160681729367542048570187518860893588357828552190994019938184399991405743202999588497028777899602808938793929836559928388959652753813547830573641237658872336367109409225119719418459717412744507997599109501570646582663752464034838920907347984159705819474506472745983071861562095434740400736947210211571880059583978889469303392379776202340751843539278002562628007723162315231210930009763638770234329559406757450309499218070315803086896477424999791992145852621352710571042967282540483885789486783708526668318197870992404636482588305366500189782590347720375238918153919960127612247227951875561830624008403154167644647741517829235136129716360572884188921570877766669144520697430385000936129327545868534574616714764637359549241559201937960517353355986467747033884293877731124508792721329518777300598257430617461289353942599404079118317044343868809312019967605976559132258430618024967197996580791611538551389986480073801354519207201213253274192471840066503364774472895787173010939442661127052880795037187045580031325139209113496298940344340016642659927616599468894318497871218823338244205822183281993006047462017120742808638541916594833619523406470563605004660980073564510379891908815658602430509400490588466162251373396343939368411976056217631039306491821644745712965325703014725931118395197592897179461493133148989684749398289818587848382561403517555236660696162266063343915162558008229161757859859848128081495084381911789750382747132973091106443655791745651677254051613213751627467485707679548023995847978764123939714435767577164591720262151707541878978966858164026324830892172212134371297553099012168335016302339122620843082331951372723881327690396099412095324522947530090775176368244370482234526366472103449938469773194760892208583627496909798949644383297094902208342327538562842817371192714707333026250029749514259360089663265611260973191797889129631215075412618931850566448715055900713176062658185901806399059444072026944885345329623092065701644688820633946556689934158732196393498889379607309264008837745320306029331501658808849183905412317440777512614366832814737184672595396247443216075405362715506719815001104852195716936858983379551017119090242284878135381199814205266719978399397941115618468162085229521254371212977522723259999648881918312912628965462715919149616935000362812731982713376652959894248660037138512389738140496384945719674321733341055690709262263752694666078456832731686119355996969387717866026269317532296240500090088481924835908884622497406318217089644809650240670460369814269156962733506516382072324766087077093530638379074235800945052848962373435115321646900432397336972654317055525337253348165484453619269818866623175246278071097775773019655788439764169507699218036987481223074149844440315311577086998849395439445493163670230630177230308495035847568052578339988824945410466759824383796781821892660552423495325071597238983159905508691306432100757045215195675713583647187012522078908369928721376687422904998202169117682223036556761523024829321568305574992883737481987999739891218796554682321465630116118827747028354047487552999641143560049698308698652241219693448826183354627132738009042410985561004920581690949668818649937517151239946798351185435935981979076248570097588349303630425586949238361514322030193594670471632179593927764781870539693422933829711472632134614391215963599713556140038565279112699041654475303185852575949192291230720145560156135317523052972653103691601062186755655427478789528373384728862719251126404896656162014274207587359459341345476052649460538649436148513194100013890637977485985335244696048883607648739173915304614112743912989705494880723080378421828790201984042063098595904010621786716037592724587219255601185400550252287800756307065880253851754215227822377267747376896371581249796576357296406954868468033671940074141835105225735499263021008759930062721298160279861815696398335597023023279371840660350675105911649150578160408506079672043557084583970824144186232381873872568812360115106609825658585532308273208894797583086206662736656382248626388103945994021066618299849749532990394494682201318112505158436223151606472691042631482735915922477480116001784977535681294202203549313769154721200317675918715250447476590486025534828979708360146966568416744148019058598383410597134738499913088777069253424856322995203064648490626551293308464094488186500454208402827003680643934261445492990426993624896856489888969803739172660353860761049205474769451185614007588372028335797982025423267746349222690121842557777656818475024551690824479654317828151156739588712612865269155425025324628563169649011850984640657385886890824340670705326108486226142708406552911639145923436921123614379108563332724437772071385339491849088703710810517722058765888453838175045599667207617147085391096409478772357376881698994691759403769057171261160079714605172175541912230061044782374748016565488186335440220205030080616747278691376579343829664090629545681094788716736262178435844484749197416732520412523734353806596249064251312870591062611415638305931184050408114033671743865313997640764933679630003318137771108164144976410307023009003595043654453752499563284456081400732100325678357070943229062373421137305760739821495896224978531563312046633269476979785151593752930610412721990624877429607289081596034960905923856225632652020453344875366270604830095019193395770034286519708288305114758782861200965349859462180744043423697162272952155365894438410616729776793386792746261150367957066426010747249138658971348041641093083549263840480970878153752615366667905947411652711537990100163268461934830179324320658372907675875962110609969327859815375232176941229729103932545456984860839695356055353123938842851980042636369861531427441619208447482986616053052978567064123777057786490571900237845912964890868875877480908577930129086641550834008548674048628848031567046036943975456294886628673207251294045677050690026745309871983829841267435085992999433497193294424416733544093975923330583508827630075178538107378046854062184105326705126996548541555818303590419596883691078206055993513277559195708125722756341895758415837443459650584623264044542552139206304407516042030219640267507418493652842288481882888760493795908620913538757984460740324018013761438807074062642480446922216247423669963441864089411606088351577094734617341790146971990109178656415008166220138389436121057339045053564393080010497265434452057157762512758200633055685297917389771792933107574690558211760993533626542312770375088709800777560024633972252991119113063725390753438669759325503519772221086182118178861318315228579634155669981385046310980509981272478564310612329265743712617430474187621807775684668338035483026299788043067418946236469868545262741366382222416188113876939970806665337234391364365427793350010571419382803093746752435093350893129171519237072008010048523945003155212982209711688758213126991623153748705696817523701963403115039473040990660421031256672764588181849113130244599146442471895505820078777732095619461763112653873375163231045891945223398449611629050705331941044370607382358583732860942291915760428902245550655647482765289579721169604812538303859301085369664707462898497645686264094208084522566567692604283683197524747506431282850346011212698837899648806557078976808315892444840930978269209963560922405797316916755369837188652446589020468813806707254809416010774738370586730732339531549772766174255813663465047405170199859522376371264780355234638863002647694589698788765745378899415980426141980474928723165987355092689649169752728614950089534435195513325399043714368374505496161722930241027447185792820114707066616077880871771818970417000482931301098964571233179416800166863737586875165019966059184747176503843871066392682870923814850929053814493899311722616845878479712785137531749170184998229921304897312338409518426641146895021701678699549517831961395689645725655192559046425286539626069890755428763415721639817712199781096679927707029323225144105222963700531665085184928660825420271877190145300978774430680158197845814330943377472513376169373851389511360080308752333161389235910374685088102592409041112213521140157424917569905158625470350000479541745957336044727251392841233485849614013260157958667147027994002036903532182188807106812725693831263312340923263146712923546276031148587309451190453430862733058676489720182413577646544338971023256829424233387769846073023957370448831130665804116708174357383907172499601611353118641330421289910916510755836156406519736767543920830164589980311782806528258861794272995081018705089877239291597791582293698614888088557377385640897668111702508174813299119224369559747686288706818079802421137250816630612115548175547104640831281583596771314129910690787133968325702418893549413403545534345490130356441185021696047025797040140987389696488317021002667489691819547687568413234492956661823181485765682002944282074656231114817865253099132593537521919961844214193546347508902905110627565795085676353036521462662100250857649840376184245808131388362821213682101574493970073588132677256449453253048683860960098143582295918553024829902385311918822102377773888180702231803039917386266337709521358850356673086503572193523277375879834146351891230773224939048090581464447682238827034198178432434345641316468311120328776168415400037097656292061994036665787639480781003526531439532942654365255453417605015094630445136406732462111171807609590870657446199912681233253710916402021020590998866707109272604004976577046768271026400819369638135906941465750856109825877414430663528395628750184173697585636036404847305552523273162192777695059171139298616844808550558986784978894669233508840992980957017933220949046445296831618861754197179916432325644851550274127931976972836103205072865965470295227082288958370064844894402408316781594174642675293157425829806212887369513215779965505191869991174386538391775808698228594537787126291134733081455369566540388779101510213255873351442365866778161822695714072394356271391447980240817931309417143633603662482572879359968008575736386295965569003835543510016474808958928441155903252379832457911618930538210290889973638138248639321407965211659860769038406764632231563366624769527024500404874363719917964829792968437045302987254828946915914271624041224051194513411076521374430507239865599140760683227742680565514990442738950116964132956319586055339774767030780964694857162488306350230463138529822947020011425256136679784617446277710060227698435710414277632203185894433312145098705600370287467685545477138223718978306267740108279880479959552566542757535994680061531823884523317927222371998722955883060130487066006394584745918710039944055622158698099760765973432206886952176105223446941064223985617803673595546083494936804549113168750414507786793225755400695629067823141423643940491617533122502472154592304712668020224208718881566195185217357032002012740641944681125529046568560452883880054216382602644755356111769747782137824930120503587146998977943468775672991582584837574679523773558908225196802633172845211622771139990377332388345725343472420653535709104359229224160398188233562146567367909616747316670432246822700672243540975941597983675494677462038822565936584483695963662080468777117871583999896493056534882112838008975323672653694811361298204097045641337564719888553572585494790335038173598801576384353446349419891775930828884874421154522923526582339179472395450683357373265735684589996740676625320432700729212186126972011857500875851353899093851535074400566791343991629930446338482908929150183661780495594120578233931262927556404493419035512135003067907332324698825327816928923993371122162853320957966094890323194592451455367904181320381434742730755042337371124802988904903629023625194195413711396007593140014338973164896610948160083052141089921668685562187919136732092594504518100610773032575226117011920592011397020684165391024668581040210494971594834750058182899606053660048753133645288963535266579255232302977565405366976834324503585978461726036612363524891676413876530203855520892905119359931522220966964026148189853482665799764531979771202595081735944849247239582917767532476844236161529195652979523584630814139858335517577997704386967547362606741092584062658901745723543032127100859260827868425094170855893747616168942065632054152065587318180507659814386755686230727927806855790970286741313554856032883334674090890078879317306371312064492719211113698494355715961550454374146400632139608265002446877140939981355091954840402509083570932707531942920553751406594729801172435699392718567022428959319540600618436139538041250744057139081297976913863482236202003498153940958470328751344577724075686012867413388825332840107134275200223376699319533527574225657331813505998630303975619387065223622131469449600188618365818688165647940784451767473660631093694601902181169002843237338313174945381183079617074981116072256088093054997289106436971335404539766362560148421314007160726356352813928837862950081364673984686708387582578572835277018948111846242052715741581669742235534424375331626675608831762519028754320287019023930567147063658228020023991422502126045713223945002312719704755635793104299700281059429919317469065736207626934749329373661006922726625568722940742815862106810703545469657837782391140939127356769129308338807562121244493117625771809716478046143574775654376778803803920379355450942622982501121742594252616757647706343035508521311971171588732976029099999515300854410258594135020297834881239303726284243586175764160166975244610311228689841059994629584537216719190601130149806637523339247358209610250511524582024187167181053748237972305441597121731624431822695847626591064681813540842513920958379868819380607087879755944619083711338731993524429628705850189189006167354504660326539013321966797053278189374232595176536061961281063941901109168571503610520962354934677450444264580460615633458835675399228004068012676735006989050050938162299396972790764264386587703131231794280190128731654932223232018114275041458325407900914442817743468354165010901863720520456497567545089948936427411400051121515997921348420886160928723432518889404672913686553934825503059048024185083769849524956184572276013868916667649132084505441571173458969412964730924258006523022024720043420834211087879658788730332062210586566592426845312333178127246005954048637519450208230862827494972680052537897967271223418379921182363738474041418689092080957071194708666719392706430841586033153161574008683722149918351411191343109662451234356114520619676113043761961691303800964763642255491213455526889340900519324353513763372450307681943851388622426374068728187829687053156341908579350001991519246848806616893062589582236102936078225059868239946064207581355915326466950709266443297212837302831911290010547165389122730763646735308830398013593309386693792387883733205169174767292353632827343766963218545013762581138974549360132741288743205963036214841922584425040624932184933028737171726924950676444455086750786558450513431425650782410756702965449557365450168625557634712942358698911061105527073624225792498874585837051643580584282791792461572180987362786505231911224589953425311567244258250145039975280408328405139822871413954436303373440882530961554421495434139487413840134994884324721729461174400302017724920135403018234525614148284662799725871903378937319477563943126923973652301831756874298900481339989988893582612371009703366210398041433590281330822888501059189696739903579659253400911677348120901376595103905124469360040159972186959922452286565146164404459699097222748213188534440066308243210848719907832375248333265439479140592740117791573549906062352120832134183051052258786429832074471144506523562905910261707886686395560866536706196498461307509224945699212420217204760670505217499106491105105029912296123365103762510370133250617547752969711898262737717109465905669794991351820915952211822993805625692975633459674658723462799246852113575220841049267028119384026689726262471178614264017083887004524274674952592207108513063725376590752012834959734229203470505282073602700262828220454517076654650805967212388258835740432922001021022984221968476710993231226704453291432421943930767736283389949686713094662594671600615945889028240249793267675419550034171321301237573945525332711727800893657681272032881386921106214754752382900742687443599514101207556033932411475172161219428277626473491763383125591227699825660716091737494869633695701051202708053463791251379093377681972775084466867405481715278648817522545200687600768757082426547826329021813531133788041536295568098294623696166980722329404457663816301476125364331934017878480190621929157287272361737271449584534589082735701894396776552594876748908804457772474069033908577154994110431548723251414017708933931969887388734368241969757792814355218747914913372080570648745932589456669578379339800819798604430935730720314104459112363106991762457753040312332795320853960618259335307044598649296846451268868618761485431386973375645704398120714237765459249587195684197623354547198820003024664920086840777635498935251278040388418360264699878748830468937164857395000123888841351407367329831047792734860977979528986753754441073258555559125367880804666096025326417037991205918125510807040668045024947747206007595733989465966708076268122536564333039478255799009090720869681628120384491848862894692756689764719718863744027857610351179858553583630520372296408467460096230781462904491715464051156357655505420208377876781049614983623161428960314052380348547385812009472039490566134492341379694802723644450407273049250617797723839635218539539984457792015948247462766272773158082546244678267702466774041702689348161021776296545454340311654054667940074632191603016835645507770056270312677458780131478886041432466171326245519551096015503485090364887601622047948418580459843421259405665797782847621980150303078836337390051244982729374444317256111079843071339038769993687547577469590354371311336280916895280108296821292079986728998168932798773477799604869240760596211377209466034081763029230167757277486735773374311363802323461225674406672824097046937666170296737545755939203702346142619520228511526450532482940685419184295188078204577257657234030961948797925382844178898330640974726867132398350046254028306410678414236301130276594073757025265094170183921975339064439071010166791322589126351199253498984068769174025262503152915354062609945342028845597696739965217990685148758639500492671541364709175667487065114065591507464710242340530926777888709728731687833819751493755590057141393133616401760660074911386304756054976273061394837016407456827289403952468811420519212174041022809350295866886957007365459774089726540581134540315288951818397025113933601964259397250665203111329224156797568982092138542013429197249935338187352951238037328320496610340245479109236664266023682032514054607147521392136133295581076459511527946996136076410150890878255706852424113183616722890998131444210652214314702579404066444767576791339084194413636959162013266784446309567260176756321882561150071236617171108511503033216502154838610528911401436150642542507068564455483523961745069232089705788929799821647368732468285640781954966077949963189709219536470646166272862613270957812633062231919354008575531792995685412484316197910930188103835553949548824808291369431066737595545531574546466524719984206373110151067463985839845491585951141582996210264351229668641722536019984139801864462988547170507803181483559043154053284817736996069796423468111392797222828817249899296921268831391387179835965717895568677060883165579215597275351912176593749676069188773872033878158272210152758772957233861460263784428920229078729069707571603239314630801074936031053920203288831445706668319219132798463865458250223765259697825699267448871391963780182995792820006875549406566136566196867755955898701375428870008492415375798224385697037115896622297063700874829687373213815565751696665044352948473495559035233152519413143882249368694310291400097812280189266316039411328691292496010057021757986806357425936265676359437379112708325209814272518925947236223784486198807677537120934456445251893811719470751765859771646986062601795403209935500319318033591187751295433056727161437183629466510939415993712576382379111325865733583524243665144888856011252376546585603719022993842141335069315548120681933646312863592402841979284717446001517126111744883526939864290681824804306285119393758839979349294489307616182677774957099380039436440156106059945698599787667022491686905705331614233956283604716630598702220241226439951643597840578893076073323541315380451607173761952268996165665545719018003890882858501236408420762282343198042904077727427633723248163377063534927029473788386049100773377096641630127270925117400006656479533668385235802691438495257348824064519157831290237785593098307820086086278854943622375514261972094907967596797010209607894161074262050995174277883214397940620174890878414333648752923998169223564164830220746663414322424228305054854942996818110489030002564684070633517261901407592232642907869092754805283010172479650549340352314101616687048410473481180127970481315688388699106477184629386654399211536073704439220715493082344196964393771471350456434558565507223853134687602986687390663060217067026231674032119809524188407408513093937435990120871085886623730100675949010368776104650202137568675486510315801415307596193326810949669582429777862163489382856051199222335847122203733289641147737455046589882703815121158505643552606384126519028003468118999259933983959771923989868175991599575791694908679891841543435563279603471789687563454802011989148096198033704263946140344142838425617122199157693757860991400889365409895254193633712145153867170724543719010372704360125041230110949737848541569282734033431193409735588830051554434112607862134873828043213107752275495129487095968365504545163806459629522488081454520926632766050931581004614247785325668320247816638134238981247432983940510029537285436391152004837527532086244040250219525896676432432256538788350992793832236358255530616346001502701891287918177285320370810921885451702077387953467060737457139932171265062361901559641812913383751559245084286889896600735841103991050432594205162222260363367849575233256665858785795686659030184004158464459575417816452945500862197430220512136107167374688227188069638982791945220866893476338461096130508613794676864466955947430533086525240423486775248066553339914881005791745461730033180054382137506396195763456895373668425172803391563999301503936781253556194626483502033447578103999678193118248783895565376579203507540548931390411384150382441270329046210305805036468848341820229019776081872120747670959190782686931536261445353473897955088277014680177539882692992214766520246356193825944169676706811028342619577242510700560781559905117265750778264358723115096704324835832625103194406060102326292308484398177536356402713729274615650289419493234311832224319698767276826817916303000369063644454302590139446085164323691263463569752723089317249545121687071907229588386371527780860504958463741741670039338009150944951755387864933384342406766268517923710457098356601506348529625913432213263535423593366260145270442618169779715981512386474963528216182100032421677439799886846557916139582961116987138727757682258090673815914657880599922139620541936638778985693780822902292432285681572861605588339563461516452460823647437999385713379145419980165420714100292586618123885393217883726337480047402110374867962300371456264387919418416048571152671080707387374808382628004254521977143879377483876917717206081123470890775857195176948074100414834410541563034141833804896770056665165360290853282934824639957159204945167188412104169301592427146109834155877068952895213920955520815049786557644960151563474588525921093595939561212328705916118581420705510980559052683729844835291644194341738453671403006680933593391259139338029837962329039609501080627282302041402097035478478887220260787666006210504003247088652285374573610839829517174859982003986984375372685728646933230741941397345324580206518404242786526880743863315099793012363331477634446045336232325718824019482534683717274585761875203257930401256095237275068049328066631713508202101624781393641882877830038532560120634251420095782884338626258268399177975182624578424296792300627006199686613914435491682374511227157583106589455364870975146425451500898600787285763558244494902813660620004394316483486410463742393409958638003092185445213964087106213928160816265271990713593795788018410750341260151070013805169787034514236750365575107538449033521384736624353940512559601762178250066555637728624967064212140936179533612131483759681043352700841555602076928822618801674060790257534413618649784709071919873117565097921717640919876603027631972261554493165250123171060867505870777013640259820587250783613299699704550605584340779124232914637295334233297739845133412437330683079143440136211570651030848174224473462631897284208633504145906948609535048030204479040248474977197238502136862741671498450004113859389655641344799388014686884745897528411064256117841796366161887161864921293198154831728859436674568436529449449696803772911377688853969967095833125546999541670654829903656608398229255471214495129497299991513642646005121627963726049933884974542956418110054456001939931179381199968746017949908009025556914498681487796756994726262809900940433192750043826057288720469513001263162348339010623878503969481996436175381442316219729903565425910042563216535794927215701397867471055684658008389610997250361933594476082892876991906035049897988083036832914058339487805317871464824268039287172720202007016457721830270531688426958178624507749837930042810318978591897841543319326939999345520141982250219069817748154575713488690771380086712343518524670297641487740792956615527960019878703322092316802786270466850399779090936003960776516857816472165168138202658414105213917178954072668880354671905253005907118860271146169481268364733712399311493324529003907244095889907928163128802509161364885623040122061768351620351715585862974561611293532843231539791428161470627224582958956744008804968107782329541530020086940999443234628068130320286646668942926779178412548813040006062431165091734448418943876834606661983658618104870099386550468637341772141944765927588198011492196184783399146802513539585357340431683501299478778790811668215110661248139185094034213407657913480367233647079462736896836006428702900345766094033779079416355656252981517897060081123295760084207268285677265297677083068088236500695778345668431390670643805626677583921870156452090306580246372000918594459235121586463096879373646045395540886211993016239490244015713406903111417064460954137965673786225350999517252595852098184889760626563893293351513319350788224634439150006978348160205176145198733958706470395946417185894485469268563181243344166187726898465030438835631661945570012440030044014972195877043004097416217324142321926988836601116009694664381444069446232635793889722939156314456894201651886714955434713498584793457776662534544131183493642098963047454903288255854260852474930186413553104255268065924689765169700063151221395210415181981288741810137033173432699007947993046009786119547792282700547080136551542887011834157947717387218274411357763777887611576836536278713777901696236470955576143760353536835226850472617742467044192973696970731951407450454937432621368895074575023754217444066120222412495897277174482973036344597273826287391181246836720945536596636461478758438366107580530321883612793579922791397312893811820378504797995109494097471248613914342800279647781871774952086359123535749312681349505189184228280122673022411592714557580224590080890495937770154169497370254893400836568075965764116617351054241474086738724144312111086810722222176877464429757243629610089721078465857005110629643833157429491579455205796180136448637582556788521932037623676063633216236645577480510989027769432329969692546298363786595194038140637851177182103275492569169831956606131497522106475354116364484504129342493030547090285122421362837290568006857551266443158938762039461427699626019134562591159867654095991498973035072867945410851920851195107852559018622954738226478967677204236045197970481918657155798775057649242234091953714609598339420978342074801898783657950890314815705870582972711960786110153233601164736527949249925449904685291693423834383969113854413750995908523831718595022935019031283694783027352427185605964835002862602075654121614605893569573061588249510564463026589315824944711510772763636867744161912725093576442306370119019236824278097403871781474136291914317012440864685522679871645318451855860647112558201110860700909255811457264805978884320376484080944923689803115397952512095569690486256822228281299867785837774203950754339927675644400028355147048444904505866899116734778973122257762097812196031136663738278734389361288110113945785021114191798098049429516625911382155146229258179774249859728086346154434674709143728409190267795259881154067252981386571590976293295354276309477255235361386043065817094187491381132387952041410395211087638372226459655381106749503797727780307694941412724356521780677018595376009123871574374272399711364988987496556111922100150026074974958233704024501269704605354956742486147417869452027653760233815444503348037860363456037445337423305412173518334705619710015328608575578354864206429895063972554442641201623568957265023526611655789951111607452327871485191855448536922906384423874925003894200943101934488281089826121736226251274273555976841136625192636224720437333274865397558799085161527506313618380529796685274927421750131120638818877973201611644948508321894813689066680742105963791868515046162970720213648702085955687334372433088244202750546841010002037888292387824229782186647825408808172166181035259967606490876707159079648768911196606431088925876619138470508652376810522439762034518735476106836395742551817250693741567677247610783470038865836300506438378911067447882028619874118704811409743520767735137005538172489369321357370877705905129596920861109716671295672355952447045308228281271741915967210507540010350899276440900469400535386817553833044931828322283150654021586971712823637431244381733326057719382076980271902381407629812132820452097865856847563436360127515148264631143122977873430988475952565518443928438191076490437050606900668544139891820457535784804935388095687299533588100021621870028746348345363733227711832180590050148394085880531558426486053489883359640845855743347258209889522486014651415105609952397721939975188150017957412974811387198805218490104231393679058481534027186864926380924912023349478102219684167036606692849101970247727501141321169444468764491098685961119139174295582748994688073476929532784460829595953137711760908201959210485198690547886061141293888431130655466663637892803661658750395820258728079027355307706486633205755054450017335669647078973845162516596283101412285006565251195614708011182008380287439609784426817723131044605767142332737167868776510940432704415253768226230505662639611614009604898032646435669285053473491775033403953030782563772210999611193179871839803277168341342328696199616667505637696373765388251616436754733077346294946745590290321868419101235702277111812458766102404263207427609476826905121284708103904738020944121404583158811412198505550827810008805967316863114299342068824615136144388461234376867108328385558520510882936925489314002317994101404977803196268680397499105899660343485426412054550175087273713996406031373050825194855862131252549471148472756012159209408080236052199354004620107592313873374832946040238610075405935348058955602190284273733485344755865465652388455704108441895804756255365686458058204165527668595025002063173741912258424199177437543679731263082978973039466650849192820983032183707788288044342792676817227858275967652807378507603357187995903650044859131746185149318431136265755486994585591622684424456407248044584004250747340768070995355294987482278872474778009415092098626314288482539089619559645402009711620853832924582030621079707840216177688453476921217413839940398386715850277034606549054249843452372694529866060758395363320427568547650306744811069640179290496968594436633580599303514863729882661816558224299640125120886534637344904823058664529432338251707979886200259392319205877776358315168926452921960296644726481247526625218715964720612264623316753314205897444484387470384960567740170286570257046615621570181696292216600650492483673926640090365741312439882460669304391581684332843457905801107778712926383066863412594119126484496571669312542198028652088289412213476418679183143466100521016238497404111203381837949655660649480028034044933942632402498902482194777185744600693210486975958303173173221747521045126136295306447513942894774839323326121015233963864608744077423287442842960520115910838793100078866789558284575665986541536272886468543908004837201156404601684253886374326004043576329742604833531475927983064195699078348729089582579944742386242683217812649574289430291877475186548064699873497929279481466604936087661826180604019055596694741044470534860889974349692207978449712759604611590465324383485910443704328322652146952596707471209923483171698638325407540431719567127541857767481920730031611890492521412994491770274469232229370813413205212847019169830409151761081594407002594268250537038778481466192930311099084979396092535540826531739474168062160557619669063455168166640057202926837011391280117722927890846065431651232194970071185575942571811116023785795733106563283865716321453889018545361151501513703257463175950200403269536824574713939068894412597439744078456191849565023623109380189324364932563776205151163974835896685906287067934625871847869294958896368925891827738045570755423772304029570463415228598067891056091853724075797815395541395857782590351571958474451976355611460015693371735802245528720968176171886619627826562208248281573459215791477670679797311392790248337442652541351910282641392419991003324436508780697422466498139981237324157148799865594472399295064010679609803270171618736395142690344537833039089881576418648302892738608919088189842309407537082405685506472135967242937739708972921951363882699960485100879926050226380982073183424620146092364248011804094671874611156152765545029868273678676211311103006457648627163097339957636456311705086886139337565007225746961336927418363631767377222336196056540235619510149344981180022172798531762525067133279660946985193846485668236183473654270352129519089839246400927744465678076507470651760254485394376217577079412399736675652930496601564282176154145477037200125573647013237358700974280688879334181752450105960271107980881912574761680187936850720567329859129182133252185199533712514734025920430169736361958706872860037922304906766705577313200556355032754693162215954089237458362550932872664147375293930503089109484042865781543767862214979147399125679715940491759958306722982019003740126377563929543117538484618378471715519431838017901822662117362564759394057765626417324238911968484914983421981728262864582248143561684363848512767182230620890876960612221409870711211760573455093660326738451763073223944720510292058518509250444161584318303774907477485160589626438628849257144635921565908334249363453793181829612892436096138834155462769008154821975208968456976303423754878645496729230417719436878507676347972508678448695927310495410002019715657319212602909139193681105896498569345912045167480316299427640302903082120513263515269316107568559001407713195947985451995303320001919868896441487110373887730421189581497213145822137690093157665583544669170140116995538248621551924146389001750525599278092066630171055473765769844164731154907982477899662241525908377269471526809431298688923042250060294219210214435546466494034047220637428014140769649648754160839989808464551048411265107988379981699858418324725645520595678796212831549483828029696647939232383103451684460683903335621050243887207073359822294571483552481458066016027890074609862989954770159798243685045873456585666317722380816044000894622017264907172451528290210141196819466027745283099472608523653968178713710410214629431947041474050800100854022615591044782607106993954029093904552314529404840438793216422146473103083297796699750870221258268823512888221692898708083010538048620602542373991859627560866041772917090588026993747252940836476833663562001284497738439957777178100212335890896455009368182363436261617775042145789045249230895165258726608111963013479017525531126042838868038964533360497766448889676196881485434793873441831646805822542044479393303828584874268864530559959755129460623255295694846609242023584080319324403861963466081482967332221396489217018685230665249456201913547560708931844331810216635033415855530319520254626722557113040904077022736173937842979282502270395623557730235356307870329543495681091054006538428243969661756305121069424631663177608687124374803763702532374499109511420440888876783478611557459407242259205268323524341845381258192079343425003094363426498091613784164214562366597604279775278698542673887375585450982697134529999439259052673331872820125984007327971702476966567538276837833311504403287082271511329307005381489712051804973872226757859495343770970765436262899530064121073215181503419540627724011131071774881204404771753120443089448050553099526028939880958995888153197304364122243361193723736510356938120487001593579692176119524773901193993645352934815120483844589709962409273609540011573554039732704604940819512724724730048926286397702680227809364215656981925634700500190412001957534757001090686636726797174746204237054536711537239202592264610183995011553791916969066693074664746961404874813177626125289090034527915506274807797050492366659074495669239070552373102395280452355399252819431562366812616849635032844967715790085992439882274624794035443632035339620665101942072389734431741337684199992293543232914352428831860288947931964611063325620368155126694958784695400252250839635084144534657968206332469632839546080148139997199077345858185217054230096230045075241254390274351523275530309274729032040182674614410265453743399757920626088408488702131127020472949529644833246098151731400639038582527076125342256751480521927274563432036752721009134782594709990383496902217835803913643821294807735872702978632348775194063948401810800467435254801783912241561062899981399277981055504239309858204800706005782626570931212615878011508251455247336717699270574107173072830023490244123816153052106276949606012472354485748776268800972992540313886681253070570833253302545863316063084349108047174304784478992568044009761567919548131282399421153824185718913578077221056588395018228123660667151413994858231694610051324665035097976157608544279958762132239130361217936408977709720401760522985371306366301069136474962264134458948751396550787952903880966592313476553059602907178565787847255292755549169395126126453901824153324129363245388031793703845072446461638521543901959587377979777929976116579378328828924609093291624126815459391614003711928018123161789076363008662730538910212154614985038373960044949522736534850235300604727441258324763486892792547170167578572117623421701904655277853904128732079710723585383933900042504027003041306743338112663313227568744842287727049426655693614642804552384334170415876272154883887209979806706699014459587315321563638703525325038983895609355149506126816569432654107359009444922333482564858193034143603891270433735382500856725961817856114047508587007333565028475026838564033658982357467562520819635739416864594455633557465763895907016788626874386606909214652791721137338344687929843115755752495848022125049953681960448358158108615495578137386925376386797581470545133983198095116001724859948046503068443674368924671005441955486292422073461592490864306549479439552245836060179276081187447382298562741637523476383250318938459840247580375056354952614126646766127003096546642227539794824186683389031567449458214405177268428878551687437292799732925168684905201899658237624319837657027162566605244131715513988621822804223207649790417510160266440451058972750593448016823319259955178913339759314458758104594656882489203296738401686474252728692919881804922787658654519167036875619397108067745375085978933570030147499822773086307197701313758932940871890736476281818774940061743887689572389295878395180611767251637656587263829716114241314288991497201120571637207254143806470564797777895071370529404563953758261785395697806100488722411022713698280777851566446009989741383808814554797477420469886581714426300602555103329721902669717502929254040847096658988583703251136480165512691994513014892013157640721045681722019744793480115794119677216245456852830616258542893073170201058087983114750624411014208791380815943098454793527374081496476003417495726948755329022131025660132619870471462972892250823903061607518599187777046387127336603992040616430490391630362005291567279264945228282350689296066968744654616637593179197689968087772028032249140792953002196479437988132615001642784225922665434606090498788130920318605654736023205298880868187460455264064191721970368472080022053559685500829093179618317573611957428773047810893719360952394036066379024238574591850710634604981794486042312668837478049366029097978508998722329880228376783050202011335826286447424219057972940909084329280073941788523479799586889912941712419507619429405045365950195585588417675868977470234061851881630449234013837670616976909826418660819793305733911002639834109034287962494604141976625998363290502113905647311144572414774714594372817372538827848811604128969758682425244101675912558692913999910254717904140925469200703720247737666571493128722765293211385582011560089729982716418560783160132529197413482713206506374156087262801024848871947394234678633508094503465051741953775690954245563863677432290752981270129234305644726972512944969699050421318867230412737779365039956202919788113883208051780149397915866226686973529595007060640291199514311965560522074901228404404154040554772481419874700495647535658390741988348956524757686270682010540047999833243982894815589363402805857282454730123207801322968561513657413078078278762976896735574158586355265048482488994226396769709688654519731712139935945170370196203203366727741559452901813115777362815192812335957686379128734034313931410691937790332499963468690760121168243638694514924206765615543497209702172374244756225433076261174573563402936481052562791365549453753236384302333729213402846588204970681816276308386324424026243999616612513897929986787919073847204005958411966875211167562415438533263455842960271921891695043246906357160687339786618158684969209367822215293279008434137150287946211804071407532515538208611765549547724382959788747198518783330373332654731807921218462720205909115297959382722065259874768858911869535282606664312416711151597099377172798968130703028142363552305103146978034910665856112739479386947150774907903660070935207867077223444174801323499615217214551632708409903571177545139794020320668558931883926617059844135628297609309565115737635828339555651603804389870433024082874061221661392480419322298670787344931627152963902389503348060909027720469629955362032126598767127487685488265281531290028294172361389742385414126798565176928875275685879385061636435738857638944049560768035001602686753568222691328876205531838410311144632967297624284656390950758409849810657760783640785617807303529150267212596362171276557799893589735110660122363269523163569015901757867716600049863558416245872826130960256071766253602937356828157286616989232760797418996513538281526514634807299143745321427676435554484309377611766318529490621822778690948427186162357529376809150073663880363567383036000717341244343151580450493835199202771479406531399076628994250500627332668915978320228179318008942380548151150406078276160924212037576354538270607201339748813221687688194981134373842200036163455625338525006023832867369032615342826167197805726694018229306279765058725342266461101891049371374893581234991331787605811122781611929925337957341186051500226418787322127716929247436703079819133010137943833451529870583874407886932240121305969434500601716176552031772768578342533352281205215411486563827361535933605827203316344658141040621545759498885762904807810595852094727902829043640959259147940842442756552304994327340086205805704823161363790616272880585715365740727533234609085667229867037806294336630456436449652740055250853211604418331108488636690308996402706967079608383955582070429096495558916921613563838110428854732523147138418996917939896844372898913762278401369171504185929444243372150592898201710620487681150303550346646586623561810770718137263297001472196121097079720481455057815998114764095511867357439577657976522473343333443645580092000256199624867339194530775744252019039687839651767439516660325492320226593383881884306678316075699319459637497859778148000587750484235869554880473620934042923013772038351628007451880041811343742326471631879447663775862604155805494681487061809726515963493223264330097570597622567171514230480154420860936194966922146560068330233341089449530934042767033271157577330215409621275498511138585415381070638109885887005459851945330834142339453402390155234506819938009564454535587835753135337610277547691537774877137077605022718559701437591434899503835756044326855017449351137036954941072291640941997811396220763892002405415890293754504169207097405038012383922455551293802732989986548361928260495585593944383360159696024351489841277036131227333001913649157160471899660590204930531585487063338466950151269110961498181302624869013373267171952400435563025536323672706992297266667682352623767249698207907295086079558797871019215273000379497992861032504060903819389770837953754190208144460262175001843985185548382318916647064876006087716792646780484870457373523749295153689555531011641074665086969843596938728449096046934718429068291645029800087003648442718681617011891740838337879631137007455505190378594335729376579180123683734597865779209306063158079268686205467028599375296314374837800590183314205290757404403088623801291940495383204567953110464747315983057060804655817282493107168371873112291847963000612422067188375923909770792618434303037720938213276153173203650522108449362408581775303457917054346336947573582755246996771562818126163044633010694202772760733996687916693697167209408951836167837624997020677149324915136298778871658793268044129885376769409402673101591324529727400501189194990597962446197747590707469984549147520617303174826219306103473464945921980211407277447441854498885970691982299418529758839694710093171955405269465414854951868995760642002325270079110335027862713599260416046003485821874329983520405815367412431557710510435591851285498164944351166986913180582570124953562377426349575121716980412840009997968021001613023039819467578560483104566003380676445489614527610076725365420847846177874959567850651821097517473683938187149363720108048177834734101836057364275353477137293320990114073425981525518071631310702143444077364518540901921686688951152054765372120796545846000228395310970381972024029379651242458256242220941181231317245033129208132011233421907868760340529174987918029607694045344912151110064185354592415805353786570676661170118109654742475916255125181683139663217055137314016369057773829302483365825929412981968846918137663709138359031745193828956615362804742509392830538033678154014048796268494255755544317114650254551062879982817910909101317672705930382106739307218028967905775131394705354955314614176870848407531484440684935498666322253120241169940327469256962224437711143137545655360036737924056472193829213569482415020576250828414823958858473705147863632718223480244705337949257217578774400250942371523660807689712838377982335545558966249643416126853381332005169579162585487259389017880060769222884568377440196836064262134122487116981928313673542877794064716183614912394330645426642642157342270617272058213640514917012523399953177992600363559327701778468586769262534078224518769894970513402367654423882735847599293768808005608750254520754144072809482588404305871736149438879579917444939789915100699317083905575134777701364209852916246142150103369806092939546622540405832293886919684607178885759057030705804551700083427793076584391812305755086747151902970783026736154468707368588845926055865379715721883078092735139036334771759308478004999120810671595152974450470059000521616920907702321047882002337939528035254326725723181554509293906912938346265378087033271601284252279068204474662977979380569308979974496167050935899424149076632264337615440797158346139892999197326631916493095143819339591565924485093026916348378766513445082503436283962647324073945229366857803429638533034369049172260694716422200375587585864428809315034252338866370669156287096876544726129047578547260095475386253240064968326917344896756578567296269132520987685655760688743839072396093894164768669166506658538911566197352482662324546693476462436553520195588747167729626752129663037191505348549693361562166888744466844915563507642922848559106838768743000635025791780887294149132779555990968986209540094296033888182861038314171371008204133211697905904839528640033799571307441698309290456526938648407774331329518486853518379037273476637821252546961210909677928734515069222286649486579454469173055861717601590459842727351695182622361892708172850305501181321927128739334447401370958074780506414083237384506802230636192686667658938837664478886543932465369418001304904175353368706580286235998251301932472574034967490717919730924275817943537682354301829930991282259348676844875057601627291612300221082316386224799320480394173993341958136324302127055585467885235234222582640803243192365103854627354556137742402139170718653587895613465555751512898223685989650092837241661090781403279591691880815321774121505800421659909239650054342904680279337867579641176610299111140031391706330977817701044043749347595825811738460060905085094660851714311957678121383492202269578659488206295589357853863072001803181796244704645821622172674091512246844258403204988886352037237395974962407685162670277494727309377765437099304065917607336794428906815500412618522847713518595126900794325681795616047085449430049186487398131510280641578418367238086943219467926796809245882516235733097271497870126944029812773257153764443600488237684463664437731168195902391117076863244317833707441608054773561925543307123336305796851696993364133748781974139176981819451773944533610571472358666182594316691432889461091619625266002767756983445467696653130965174800774287219595786360364172298574562334553217314516383503721863435948207565775771563544135008142975139361504647216206403526627566269438012112062156210339862944740224620523805308334382575802580885977760617008758672122565643253644425999884846991145974161264604303720011135760632365621198681664205379352857707727165604181319055102966973742751282364374202869405321052640893217530217276840344574019856217038196741213532906595264824895249824132174835120918433822287387553978584097616628378679449208908886841174057294093397998376166494753477639504747913971135974745194569793429910821461232523798589715087930444610361900270548781346075754560532730174572764874967117077254372063629075564491613584749796276691019968727246917494476059725000186026304413771472225292031089602971756288870298345419172541856174650584280852483735956818000090479502471668137989679142677693063712125133267921112333910125257494601116376822408180857045337722323634818035830775679100867756051276336067442709641911372786435132504444785189385920965682450089841224189171664891019046060719268795903435266905701068686346685209719772494177368743441762597750398624978783078403288008918343690880060144294149270375753458049635551058566852789691734442833864941461492682621239557172892169435433243627381532745778334151050832488602971216795797843054194539845066866002044998965946663866673087127356727973843772072155235181609992737322415133181810233954238946833048862180491436521903523852208725532822743494702803225325180135969707704047820245047039923411464757835145110159591071838517167699404915860590161918140222342295310994947912457063833993357350144237638865053576555328336998450928587292090350102930010730745299323647726295741185273528101121761689500326743623241750555226039914904907929699829604675027627322005702492057689241502976354822913618911021489496201140902663577563175354386098466020138425365196597535325830766237870998948522250336387360902331736038763571840452909555809169100638561328782708619765572902806053477378354032925189440182555414202003111112463348951361111819100357186402290247651897193088340236335360771701281397340246066420993700551551901021949910986140397866119587652099753310938181422329520456432210128145870222091924794566883647580890528108831434696809930633006734246286643341367951537815980730945982481969265822053439625432719087744944142507367184148741296565268672547993674667204907283226427516649736027076264166697984277691575431818048689293762894986084916457188202775720812787861470206858511012201184409638234911484313943403716631112341910352717989731800913727770385573058202035318839913797579282679927317995446485169971288002791838560846156522186787693908499810587444709205657109673906681344532235227335175201912988048630893689002345209055773515412569910289971390356007283465714910656793425309686424532896799408239953685694061521516613320176137242964278151225431881627005046737660716504136294631955831112597878656232255460948840064026485768316828833143238044392034925204905842716411321940639152940702566018119898996644045165863380239921145896015471587203074627197447553869470484679424915418273650607435105077606643133109169948566088778415398226473785204100576432516172800128265800514693494341039112242681057069458182867618039560507577631902666913167543806382256652416501038591168736037467175936637505662190576418599718481540536040875637773902118194395979977979072097324728905489970920916487358007699750661019092273889042196907384631126760864208132147431033266624393998939859665141883670660882516153094049296587232730562493938512108981712661744865496152455676923654177884511653173537278169696531294486756918540856681384751644116396132485309848964531806872719770362113654884614583300807648755952052574078542930720103148702488983182706173486508338569437870296184611866699527268340115096306194190673395620042429594908207874117280050009557559421007194081601269857031777469886056979484991241725233006652794951640969703683601955080665859167359439984776748132531282664962991068010273181562478409712693451843742158693096702424220939026778724049314370878800604159829792019172748866555870380617639182045124343991583222159477705846371301303961774001047619476084927956818809013565124380414719771972586170044100701400553301493783154914702798490635704619206795226841071818808713263406141926556714146463952695977893704482435654608828215360639856934916108228422975631801549091576493668330243727909537105326903879560334966631002175010684824442794410122370348314150111995437264472894625014215558000088277311957514112720641619354469591446287927957577491509521862152939477960135736196960476006107507036788821456709011519974591038435031008714483624281957884699287462643623536833519518081813303704654052649510168691452966700896997919895748645574571792210341771583316634994711912461107794746191249857709597422977545451767382351684208087744464000816493086308365343358774793344805853822857468923389511310893588960772587975550163391901490131767825069835360473357802783916934021309913423826708199910798475061789785461775205837701793247107588542918237115776035408894661547651913308866697174647435042862501906346864407073237869848771311032410980348473556880621597436537468562157105702293071064674393806299413691321037593780913476562432469854755142253440927894228481347540946278280523882563833383026402210125375618888946994530601711776131598119480383367753150463554601613481587761915583511636965652744577677784554768177258504290486787124353773926276226039530419893286302325662818590469598368478587471142573047174737717456434470045176174219575943212861344897450500250778604327954550080480334793261753702037397475147876959069775788393520831883209611936059636281009401182240931399622275396774502573239333431892031658318691107260551867947103956371833926055172414182369017728881707998943820847292710279644924955727919110334636339705228962210827924873304819230148002229716980330732557737964851672921110767724096315167761003006599733304711733794271283988477500377423607079618047622127601810273442610937082530455663934531374875349441122130409246981390846887376255258547272238219821504479140809618386424994325894334935380287753778759368518019968172914947430187166291495419656833243293901971761917176255610414361314482221497991267370870997441863159711501183178443452815980913483054940798969169207020470345665287522270277084391560006400960294199933563501218054283100866370747934811799843697965644293510918266433810017893242312147675675114045629267388121204804707216215827327405137231049464110852017530516965519145695877527843284963438599934118831221417355656570084909934618004682551514341213775871743094696793294561957863616743075376765844178297752284357451249656582010560043685984181680283484852584246488259079969328738556951805489855019452213535458373766815851619630031972896354426026204825132807763433714928148037352584639718405860233262161943318886403151347194828499904762705681086752018652369965514460566596202663841935294980621063220128650228513690275052508961556227036585348078505430137552419121917720204936058459137552262586605954107324456512013856938860514107607057274838321717089980879666609672048375018740510172604437161748419795864494913796656746536051999678163457197511959880433092952711216518685715089533412079459440929735066813184385417706668877950537075286217344881638548738979366316997228238267686187768396456193458189353534137844838201484628205063778368555377312276691396874118151882087199709434813920612213958237800617505444499751937962119196918898493734941198906045929568383941435980857500106871789725125015472937210967489523410887346404139631290690161332633504069851378190696451864053459648909078244376808798560009317274206364351364651562501100763168464987218048309469551225926372413953731081174671671795928532203452870460840261686444743438072717685180545330272818540375190910972116387814253777623229604478376125434251116008670879377853950907792273297903373596688046616554732150212367311345764777292934069451732623550059756312690259089912328321704873752640157924816697277265706123900118185147877398805911328151362692585790177781814803659449481046013532138438772640508878007482542855567165110482087169913368464027713068096621007997088846797861212359434098417661036373250401335519394538934542815353992499230568343135768580814882149894687435058177097357149109365033625273141960537161736981602747991516138253136718861579843412336053595849655727074412743392450544514151558722979484418565785634083719261674706186759972555337774061849754255813561270429975275046685383808743646771779844541371318046701161522072427977075303598621578499284301871771396138019792604704524010380984009582077764934257954607551885740455173903363723126015046952523039056678624185839088207320253077794793180190250399926175263903840037437203020749716491267814172630126153431851172721086204179566458925035532920548731688369167307710189802683291333812638350821734018700483817495103119288949952254709053441578643353804548578969121103028928955733848234646866058098213692637992233558738918151762788980291938378898112086639890783843741935928487517806896400748671381420513374110385320188626185281799850157013020271594629430634444476857619203266653309812902830672677651163999518176528945879406023104884849828531196406053215426063550872026393311212309431139940914701411285556999078730518524881580160269974675510573504389592755472498898911464687871538774960362458870518203869998727753833111546478540903132642435442205560390354070123738284291601893553515373694683497361105169396353829041565089598334783172736464938393592245953410609245112380556749073061443278178883934334776580173768392196760104344625339731930468148473264077351054268964095572162634776817954278150460548122599905918838689622407273455741987439030324625068617824988205838738922903871201475120255507783978526854117814299683844978869735764148964563473799678432871953476114731075098562839147066246519539969372745747983072951332854777772805244012576931291164040310811131529325027591887096158230049213057967744837823285398666717990202266284270645530420369698379193756176663549668559310357116171338553482980833534246493826743651126272529234484360349688860928798368517678691755881653763072672406180819445151262796968939685751479484957574516843666267588089815134323913908433926237926670674636320381774072778876381699530293432461690172931567286902789230845744070186031373975053921687435081332279734602316266440312484660124391453166789433001033293847770249325296738117713680383968008192592018232910009658077662933068752908376908960500485685404717053212662552803582346156801729527150030392988197812434270802364117272471074968342236533573754138586377119962865111820255294242528641869425734271354343289518048627719400564297432431606331070202962794117651016708811860712676248723308376655482087694874847989369528871786775734059776221801840375087472401726766557344694879032900696889628802688168840741880397129627985567859089012265921257909414660165561745206394551370920685795086520170373343114973474791639083523231983617552129126125177782821676486612544782273963019195679926729988716315806520981107036818124863230753133747448425939190164030026888402924228971895170844534797553247241049618060926166913271380360251566944434104871883145228376131942150620103083320861583768601364314228872551855573019991848685760005061761782101875204348114608137178997508717450168175613719933996759682034947163803480056395719039327378427139184574560185495458821703896697452753125078547001196056850101526849161569370548437443197666336195059670039076906773373994813672316137350397358461276094470077015300974954695184793047732232072373626675524516917923815282605806624874248805368802229770243757730129970654356419732043883440957414420862991909528906241947819710822873236407350307535562597223146992783402195736142409124869368419844325111505415208464917040326232672632833792753854435253928995977808113119770085766450442560212646121300075735800483518617744884611898835561081864543974392703068696290211489622653989943085536538673432310739319557884363951489894416005351003079327656940595462043706868094320708162016865531059958849270438820542096040831132641925285636496678793910414364828407692703002282514859884521731224820163594831816379726071587104455872973311896592555202361446528715271540505714238865436843099549259879696527073147685834586745504961576792742544775434038416600223752413550224606503604258990342857822707202785001119412268298100220368978419971926254626701977662147010245818303954191503765714084653841275996644388140077296553050549620773709649522173450672106586313073618185251979561533952217885015537691195645412498456528909067327374749596095012923410817340124502826775779078415087362593526961251158455505777387432987025852549346805176290174514731002832441009589555476722012665572746948049955284715318937208263890113611347683246254281047188146891325164286277873334856546992803558642771532827662238503336038146712738714926954559245999884913499625485081453896940383152623483414117164230192728515429460281333425395446847692257452247575527194868842905285819927403630106331173027230949916593721593389456078120323158951747276748309072783202978611455269354671735566202709556268301724595466024955646668355775428296687035700102850546940410614724066986207697072033446962308990901774973240391401440905017649014872565063251074298586120490550478808414744315482503158150876216124577907295858691809670915388370068713424991198771523615434346807122469806076347045802267797343503536634151644090725712404354931392395054770403761179576639890865391056932281390111728219598330114732659202338368605048344365979742495354932107136479176159173366380549434748624848456395999335685680815107036319024413669038494529917480015301954941129224194550453481691644711565748522001568242853255912075424158672942341669339402079064064206412810175990377166716026829901281795643740812774606162331167321989458957727410964941424646393711621497774902177867040782268704008993931371492740689050944235688298871067987827534424001862453412268206382514806474995665570636533280868544642360026515298589586939549113628417735081410247480040748381880663283194707579472402430852931802451038005364169875768411579669096876018370744350938628740800105998936637251803310763570446828472521093832085826632802697708828009145756514446138405863261621349855742255029707797028217813175771763585454116520978924987636521201332840924739074822348788057995722064966445909875429098322091170184307382714655122773011680470180765044638878398820923227149643479020817943345178266427454978688540818605005080690704316028852875026721088315293404613734258650498239009958836404133890046742068109523315825568824763376854865786018927197736429352456904945089398041290019690839469414574657528689367206853206989334782089032252629522788181541129221668602534298692470450119928435358135870570694511568876338081242309462338390106202935801559192401305105130122669146722058547643434299657434395468911853747051780936867078032053604651892422487481617520240062766683223467449723748629454060945738551951652991927295260687044755608300885550726968994457503691325471188741199361830051460147077968238594588432345686235850432847815891175406544979517675729430229536516133844859566041181661420996295586432863292695176105545287292975810993426791290827989815330118859490927861589186611494770398124999677413242560517170420159689865267893788813603507686037406676509121946051189744081268082584540636451895939323433578726996825497856172328328574340723785393941895119276386097626435940723404750415161328557990835087885650706475719642113092867343145859556670483441574100341798901769443644819785109039265542673809624884383140209629641624417985961991658879161102726797368070260427786055982894198940500297984803851265370327203071242693903420088948085745420969469763992930136840247840934844358484974408616429722511697837576065180549258037261109239839024650742686813549651686931567041456317710182019942607970506540243731613513541130132090463316400351309964806239172814550801745225350345507936850446228517951114301332261368282806031214775908163496125173847338722159794469187047199429446220004820435586885898360116726151106370818377090205586438329792003825474787106955672428993158153001537320106013127278984290810195623131119235944649509020317019813075120286769855051822147086965224754767115911406813089233015078556963033722685342241475716072168262199040542688257403240765041567233138168228539580587873062644031208010110154607953552469975693078708731386868877368192618232521588359085897624612986046880661333874439867081651629511045704590479524520031422047485394780740488849580459898775714129458399809073862226723079187917367061301652454165048023256211524162141719300124205211401425381913477952935750872576367804225979664122644479024868897346615103347274704420576512323301722927991927469176974492405325670700944480704542956699061016548531192594937260930101028176596004811390653222213717825990611482352317766714450696253702597736942437304504020416704800817245768951522521397109757686967425962664341938691844698602235649111081527487965254701119298846947737334790295320238711866802093889391837553657929074706775448910668331317394947595461735895893193685024379851805799006642298230585321269369238759152147562977479756578164943772252577877825525534808168380580864458804895246827224689439573658002529177155151491025196769751109270265745074278469521702786324259635883809397644116734902800943383256982810552414400621117302780241436378090263327999410950954912845497919061060805971366057928303731686441305506934736388093207866833984816425335778715114971773132396513487822422830755272442538942451158036586313759961581565113665480950898529568496694587188630514973230703876527599745772003077898592051214505354237284141131442256401884530448733296491931748534482966108574749859481234226445173414892795150516490156428218357264818484901775739171104159518571909807223295910704160572553093813195887965398514831260408857262746297657555221938908906237380489026374187532562224177365231999400721871673425367403368618272869915351019936960085655731777193112905318338734246334015655283402414761593065802271249409879790181833489699143597549741195805589051931977704512748580550653233810906918514484777817316340460121741248486623826492456139393521184751341375949989556434556306474008679158432968281767394484928892964144661345397645541714704671434866504028614859540522653156542743088638876866589558770226153509163915295879361278752819550072020999053119000577948071778066843603350443167208909002133145611532539641760359481505402797221556694597583410285797009704877240016399996580999505588565190214940460591985954325366864133705681079576706782409517894178101313239236073001787775583902432891314573301601265402065329887247377746367682263893541537105352558268755666071796161945594889052716297833460491396886239198779631213172590177507134311511103772021453839806595622501494142828003241010054530011123875811903322857042027284422266442289637003739769815913588627631075965274955012344476582833103106654147649197623539323786054014090775053435300699824427657970130824514386157328034683035053263654963829622499558759866411147353774370279817381435685668779401997764886051357999992045735977976417157022640458893152457180043958019362188882124672072539677713378302211187850615682992694776447308034577558787703269553738159382341103706007289298226001404885575153711079769856649559295546812871784649007672145284095710255995309148858561153354175259027628192991386339053298784585001469094341139111906067786939721247597197543611133755277408566283543693837114424996072708770588850371933790029902656785540160522742517029063268810652165387082820858525925365964149980719624916907649320320405004072994893407634217275903561523350496133434222018948948948482549813207661670203539374616837537088519090046850960708102642507174788858534677436792560728599013453626360944364483174319278823408706576012907611357467420525601484261437645620399699697163255877154574783787608949088269019882630047125152039018299876185103984875279981716616241613438877615553322813090952386814861345699355145609914903736131300929614059997913062879589747764148466954452115729639935750814004323068421852218312017278712465243464878495797041361429260179346076353320349668201764448418919796844563315520774883246083203453226810882226334273661854130082916406812763554561164833334660195284283921650798134431490626261812699171787196794045215309477825947682666107742095506222152401784945278683331027054074521818148314001489368218470084434180519315901673293768693174584242096338056739712377652107810174963505900147156772134754674894386178843236691869429385180718762260859704941809057183229881389052961158160475154312375825577270422495588806600479943479244463405425442504880986837261301963675649798588049478065499911085676677250327742925683032446977120065642317696905558881610236682636463064421383031790947481189248876762894949117185525649486451025329637296734626360413145174475852683278305482874387139246312806200854422995672791570369324792017421857048898196522406487487016724398699552007961742069072384355719945810496739879048532989683407636282721139693466501922605705948897067296880748166018289517232459825534607414846318823738810171936745439334091726838628190394218951082399093017864719960182817242608396719156897070691597980460609921461403844492533933594656067159337558696294793081154945228341570413552758027435263230547926640622367074172789826899988814925947352512127227429631850348089062356308590950732886125438080766140068587212093242124226289809739429610307613885293121044835552802931149427041423973040724705300222539104560406970023833310547909805591134210884981283341804997149038191711079504999011673207039731394905027881108025553895599333151714198571433171752273757728945319168871715115605429301844377077820644117759850228902372879812019895170404900771758270850716456501620093336998844712587383634944119259737777228156208753939369301028221092647496672151709545858702955089830729592885780393363102755518832863311715992712586668058550484497930949633614741077017566267986599391992643099662860514595164336008590022999195375615821599513290347658805670721399587545958138120197250397144252289401131808366519237334559666778448482807387958022916414153250774921453818610873025209933253166956759077818573497929849100651330831343397057372691703600343308045471517928826368362070366965370537622938843527108235836562338670613094595509925983280836584258270341768147628502893594940584698101241845962856743271010948485102947142872818251486135278148196858945506787685576881285678027359923053027754399947384856410070088307256633065865168091989464828169722161473729707163724387426502532992129716988862312187078336128916094338731591462963801859472074173572464214543691966711533133501165482582778788620519897669195024375903146447063795079117528569352407716032337623568179878772358684405125767489319266619888214959729738319789372010352763617363530234718063267822221697743991403593277721607645486829318047367381874898262688740824775318524762982481955209148402430286595954658446172709480679120298978652678088161074247029405172411293778662820553175452224053061997983716851843988673440766258190028495391714821232614421092427747347520259534078099999202402106299510809358032697526033655617125119362634039882750525756822731813844124017757263426138961245195981974329230540271002687162228068448048824790339807013546809253386749803575642571967796334328985344393695324966056350353497966320304405039702537704323002077849489718081035626265129198966411340837324230838330988289707275284883374980705933440990470741516464856712970866384808696548380027137701479218079228391673487131479490508263319310943821791598620471838315261012808206178877610679324357072843191185000237968510749816316084910642748925002225640071761046813250666187269159699146561663836835520574956031251152064100624178462899386574809725490762439280972101738083599494717317050899440455619494664820944856339299667906618460631796868774991437864141519220975500590035441365146552329060747983724703173794237929101650648650022544433433464748122922014270296640597718094352862849345061260894968407814824603484358776158363284163571178478089289876510717631244051685813139431951289809165194520023456268929696942970773205114290210253453499888145324088329422534604828893745355839126882657619015266218367111139168298012063475896209959455914855383274442157133127162835833681141617857059279661252412562145992069407404681211671787235963161130050990740534287847483337942152011024532829244907441116630216971287493629687989178639194836523166855365643110304817350786345460784448666780321239553716928716383694061776948701053976883758438806995984851972940331332689387398080061880248062894669022569855969014450224123769608955443012635497379003532965805874765144014136491754421255801619430766655926472053141349005481580759241988320014552306996139327879685123383382278009761673357881615962786956008071978039638338478507889529709990032263821079029742849407428914895033470390396781027079158130841165430429822741454246953522019186754876515550457365362439816332071885931236434095302501424825387692352351748129955486822057221187258581431201049104463653548287877230903866067439458348914660464585040076283319589229941209887020717628466752742587458436298193537029006045187458345024090033793353478545529457695761419982525865033819839687529424500623945662694166328587249104841034550755196909318340487119407197458937200724196574165728666969336965551812015737961939588640213619182088176291007497839738567948084961456861993318497766643718972286324681516349706851902307425218239867849876882624424588422145271653180376920256077712258849902698305078978658764206447443816895509826736453918876113028386238322968866966757112781325441112806303430305462450376253985844779301385916261892491831331725457751518047877581863232978039248300046399259502792913125481741783561026570938234972952273771217508412591379913867772317866950510620607050204362637754690071011551443720764813161920172940971428774853508802522996669178102586440970072972209702191705142167429770858703992214781413163678716405556896305426323319314823867173547268352067330270536116187875868367602312418782875196307303761385367952079641486395422084681499638965224538292021394819608856328279758921744142362132879948716030896589522666083757834746022934026581879521288303482507878454891638222262442865506816078170350035251519082944105000577383233319173290828167370675907075277429656822391746897765574590723483109873598034671838795555738815997362627947067765299765801274456166842090696163520127661186653454997337946694581485117034486763773692808221203332389889665581590338275591943990616321313857579996561417475040416348220521282834107794159537515412429953969138754907149627901142438476089056591580443699131411270799821134846721644109225891770787049266139727036049625592788375152511236767103158797751837566184546773974155369438784698607659664184101947893825777413703922079499557375277538760688848602651234524691145285633815376984927353243396924557370801604274239553817921339146699807015762874469910713469525501425735338332012592787831131393665687700801600863160949736331479079494709178931494755282511806186355717147368684369728091092021612070509711512010990232306156037050574730432812049813164449704102514133709269687135177984746203976781200230539781818231295959255425101735923951565391966805859397870463712659051811602147930478861359937583498329414492727345048353202817523405332319167195772075787086934416211669732121941986974670257069130238551200927989667023629548420322465669867290476642783841591356677934321420191265623975762346598462900768976212536954895437278416311716280732325748087318683387446607212920422881367088596831545899015851787942967158473422588383894019396949865918694846078052455652593363576265844929329322495351543049144970439070783333476407305823249262615430184259541829864706158312856332312710795584918155968315161256414527172743211215778812077292732728390767593391515916603416222403413688126467990629018254595483812134420830917540141132742276230407383842522884747099432006046737277740822487589111900433326807005349951184242940082210494672984908320811158557996967304195835681588526170544958710264350242721150092429758812684107254650593994642274182574441449303855165287168289902550321853309632497207859545801630422931745742331538401547256114087653531562628217761481460918046539452762390602445686860311389831658939130425595067836538132395045835283637966230199043721337170912889179337612958002234333860150606813975557581484197007065635290054805032201037214993949240256112292080577310698181288317629685509721212719793353726250143790821544839666111218309710755012467377013866275833621913116367728406883724054755060001603472562185576033163185147285202077210825437264686266117870026032241285308265704996382364037928825153757801756393202563052389921990054379409841476040502291493192997787066187382011227768362845794382805501935412503566668908209469642225936997410865785400582814747977951409838008929446055798311769152245668820554143903677471973237885918858128746484925125623818142314879043947002040512792572428802157384277488438232526815570626494527909873492549139395248154509020666465415522201476316413999097548542757107211188289295129383043403292253693121541710185327764572671290372947444607183780516057512580404517503777208298836787828345478927412735422212223234285526746512062229375100121661907506306266217754048199439426972385350611857935206789110136708296001184629450213711095127755199857484577946902042058658550148161349607611203501543632373825750547160585176897400268077223257522117832249140620320402786168808234015534908637605875687509044426327364121907752023993498385496312396738521487416584690055760076102619174939988188316357321273790549742362746232867109084913052792953978019024390648468915753785080829909592141367429934518982083064070771061142579285034824250514690714334990435109437515539109281589688204959679413895044139380693410993053807280076425551273919085879612601148648372013910787512586488424606667833885285798387479514651513797804114280706181455582151939097422046570798032798914286131482600765567182256512702790682820023895570259792516413253039723385382703984152192532329541300856319970354369933944121794188894115484245064776302890844711356564891775429447878290690540941588586386429527192043086710216005428668676548437348589534214679867422536691993271593626599147421159518625206634777559125235991181476447080026383582913158767373979132499640036190477870840279692894262502320281706634009063034427113364646623236762602115210772182690260064528746087950914618516726232888155498596319787548149646136330307070951420856551381040595466913679202803880001540648712139170828215129816896327649148064936594747648243525966689412115804053870885844311233432862225813135367629279049701980404478447770455294504965837261829588720753110246677038355622462444773025446987796843158083031803270305198545177076032158830929062193380406905434171212549366158728937974515937414832195432792024274843267082651049892124039908786218007073584182405990911613298970222754782270252963711629156612927793521326699406676166938202112103600197021541952734208269531850671820352173575110322459922339139449629892781869653957941693873366115619499146343873042150597010290671895311158401162927659327623450176730767889451073633507559312310550177609646213649362094558671095733289895725760025773293531935484577049130777031440329741527348220036763412952187622973064393111317796617222062790571668398549176607307310558063360968853335025552717929106650458374475992814777424628831179474333241024337381678944621192813707730886840023077950836763945802400927991219131550759403146379097284431399969636934055707382570844710791041815877809393765471150804421169863949871616270688506482681327766581013533031098541524651416431027486618193695546475289156227588502171335104757316484795162619815593851144822061445305872657661432295620365185327008583644801748697793397134061987869957235379525164274279767972097582563699820008955752668761472896290606514573209836525759079999359152496335677264048841563097981004417492696930597216250522674694403487293508267442753215023187513409145235395155700202313501192585265616274697637537789776036835514986951714694969466927025586739312822944473487180547594020349721182972670350264101822332451732247548947817895304725366409701911159784274637272141277804977726721698582205915544118485527893186611196716354553362969291692516877897988890206321447982687101436287640038038800483392301761622301626719067283854001042066969736651671891937965624366218020297759380376652767679162028853517170665242197972501556680811672027750342666669229565776764287038381807152607261337378263450223772570638872334990684920724786261767477886043005424545668512007188239366044976221555468588301836592692332564383459289672376139066665356933465025395181582275691867105877828406867772133572970970845936177862428294787061060217085817142553251526744269289625095013061610312058001176389406285400123388291256368707043832718361299495172178066415098566659253751066152278029855185665969078180539967740870380769004155951547261877731108000695650658166077329848624391708831766459341746302745009602725523567929575842296910920596466242622837012370347235208265906639512006997077125273174621270020839857662448449334284041892806430224294564653820337547393245274491070325544793319953664585991383185003794796961552108765448539655707979777281863036289795784984374738159336983721835774750451377818150792699807849274176452600568145636967413512363684463305738044652491135298471828582796227680509963098554005419016955766396108277280700859813316970863761457299027768990029784915446014819190719948321453383058010373965930946055112710167285942524171535685044487455462622146587319267410943774714365407505167828691656527158613288245664082637419130115719409652214803069657661772046285785823059776654672607079480678825884783673475650766505077103740851892215260216288059281643227026711595060869378229421182737177741331825289059548662871590389889055549074718958493137952030528432874296106334929949758135147522572455153666387953112099868170149376832245609798881356928721635695971334169953660973219530575725116614854241829524759987972682698189685087927515385215473425058907348600127567803664817943556680206619548366746415602611388018779032923995813115447916319534991791987943108521117049964626263803860662766845797780100292031483715960687990193146445427885664997544197916871031095376159148775349768890438345768116960021743432239237584510764920014172259920716488149919259440784691321968199177957920446185124042472926816314468278421083380413892811876953512809070647470633692931712099829071059877017809421826902326600210933300196812906659264703209455180542256785963208562604891446917714723846659219032364925878048773016188379006746308690007583683112704232293213920873447604596547642890550192654921018505741767564731124217311599980678688626562632842481964495536860127631463309136887738398455450509200946264460975036684618878444834263544241212425556252189392285219321662302003158562881426743356131336356590046023938046482563767666233319972267856507218808680568176707900404343232732690509901252650683191079163823369072690504754394411836711310588162369316432684708692073131614281501098480279924879605055319335743282481077338788630605316081805904951197465063330744124023723466243342636264549730045356996108913956014587460705914555975145999182029553295270435228269290127535803217685473741494841715088144966207343124850104118421875586317398460665503306645331618601789910172232978017417369059455849487089075701190131088218918360469719140168924532821929349592841126128928795752089676549735560893631384387478391656692007691968307831724171528487694082715810138484632488977027613846159339087383942312053732307129211696117369469565696580281828526769449179805418660459649266372986354568842261925098075237979717016588370868742399173933624791798506387048257096043165901782036430348642251822576293429147834868400437555253786142739845797434916932912483981922453251107187351284301361899405283060517698154460314950793341216128796003569840679570404350928655053101871023284090502938409935502284972849714103983393747023052563568496022516792858537478804162923688988916643060625981256337182378920888276035206903640441695646057446208099747667311722320421075998608899779024796201540761324766817844037381881209870185831312102280903421868852429969535534735870995649551983543397735819709160931371984481477500136060055293086692962677031212283444700231507343887413663285544842868454439639462860195423240614652888420368500435215251841163108969534292551470467822517726001105674198189029209708762651903521738893297896276217899639551135832558626514073237990570564871287498092809426150226223518383909151883732589317544699326409786757884837034813978193767030110384913551850836060784546452046694961020007916806491559347365997250114731960864802151111082127536027160965482481081386264525727356732493417798960600450620957556463104205522318904993427429511969235245052711971103106929529254058500543631034889846618401830575476931206765290101225648424351123662527998538097083183701880525788570116969379962116134569050743886383464373771625399012676223348892202256599632242404085260172951456168661812472334477293204796122620783450248497154383883661674438264696820885353898415688818774749600398228053649532846436300410464267447412762486733576133551817964228740842609307238355081569370747567404620706193303301442043717497625434281622355884204944020714363906570024377903541903205914333184980241427910458308631477596182133209618795895115914774731681286714206064409496626177108738437118826834329646024327197030755309659233716994213014391428920439505733960691542117338504211565383052602454232148060347069075110831252915877509075188433051682873200601098855107590894086124475187168822227883118223620452820859586644792693476223731065031075781297869797443016974621407095846857109681481882132640908925581587275541692075243886703163763690153889964901278649919803229374272954367665942783216859203389688891161187630044771829182206233948328847901145373331493152495391847738711061997768134760990789198649127141786844981678410819439817817839224678356316312347466346773407464989880954883064208509030024672235195121323725594425595627140700220865997014606220905058398013815779522382472379011178386502801684425355715210886045745289836627960705398897474370535233820873550174315258094286119401549998473241285969262770355305101622019335685661706162556104160169313427350787483280106969755246289111773758681046428047111266822248663439686477271538579367983004139183492465600179356346810272354208426618421515971625625640393515316201076064834614861195930436929066826412950757393860055000944748031153270902716973079503796917401979492449138456753753631093782683839217519624344833285794532064235072762156452780904496608528665283698161437242344422628919589279372476408988587323613050327859442311698686539439281000457343193948257879074563985221483979691683631309402981351390890714154336858821513719345742785845049435033776882693610437913077173220509824302284615765694796650120853275605994884910511833741061411593726970539809001113982602207079299873455724386188143636595784577451102954156742976019892313742354462116970916089582448910089120313082049474416161183421788865121549047953723055797475464156323748634181616031112015748288899431911759664295517467187231331551824082374123370800924845485621499612864333080198011106164562854994138541346211027169904970728846344378045489776657417642989085409229652232715476207724669037405552541836933491129867691514328111861202161875843629108359781122931711415670112395253378321194984988379600827905602305154294894038483793863428053963665818275056639469760070224936739051793610689794856396495557428773364013871275653375753651467312620224969269033997715601199789326696562476802252375197051376082486383972003535118151407237936210428678166341105312479980061640372692519223605678521675478785496629715456740738946524644493934754752366112148284333823540434203153738850829961538880232537421111908480528836531742042119622302164253259311189683126050064976313932033971430531011121796311734400810018824075677996986762453882706477282582291218423270314500484643448405204434248281840439040170159940588045489529117053538680281531398870198421786462414439228066160080591281542260645003569219444054325486930585225449975716601077063156254266521133680289509642523027142593908782536514971853950454054527273858960895386676061726709238810292226214927149419830531541587187492793926512154702208497247623936787570738601557689793886139538470557038728975180123330861088860202475360556620508493166551492070042871110850411391379579402473838985147515255149551040151689341950559167663215445348738380546016363153838175151340528116760997175571667630969166505646686580657763623144555598508656195964922764517182490857309274994638588670750543495546459492109752018992828573124433852951065736797548656087077227300969333014615423307439099031106408645384164431869753431269095330884140237569872885853748324340636549695926683957690064688245253533600017161114466369953135490568759806547448538617675183313252083974726881010449604273714795731163861868159764488367519372742283934708840700087745041264430507835824037595284852205550466302853866244133990116075974925240692620916359623179034873880788926988197545647319185672779706289737906952114540472558652214866876777274119616713996958988787834776019462207680238028159654249219427880230956554290959999832710734749332237267592284850315866675631867881514071286144146852318645642277260555218992018040397735714474888133909526522120461031606497115040031071871268900619079334986443933452134064330827967876284091712331747593032609022504574471817574667533150638664347560744827544270030998979872222881560742662060533932266654713319784639808906660200402134759504318939637997852090549771766507116402232782814681580689402847584606369075125452086968144923635367513577375216431069881379067052072343789752073636900501269575074236976014051331698044785493232688467156657002100193770901303999843027921330034019769899501317257186038693853671262445213421046595647996396480090613361717053364168720789063854285472694895190770112056040828538800628949020186053096276654614877937341464552626944101419492429561004409769868832306730433924015028427295641393646573109760091171207978973003594555052476768586361698862654457148993418955349500663284160236118512331292818812650028463695129553037242096470052726321054148233661170269711790835350336937879069281079346576091220072991313012311399937501141872011865367007046776546879866490716049098941926751098983109358060857931877545996416173024039915562213515257568265488679013175007679255928032479906558852976280066427229475465815725126009757002773674660337631635647658889248356117877368025721576409539711005007076115964305547877848781515501911892702753297978501781008674747357849182517790796626572713249665193057904234246199188648649849435485818049616738723041313709276665959574452681902031752944823804604184174011084604836848836980225418793328968805186494544721390301768577737403700588745015253897397729673949259233843261327804578159828497019924156611707208187585506951265958188910373465954208319430841618556527171739401637222252565878994576192626948000742782065039589029732297483835147735144138012596662027422081645681430588297500113845093746984250883727279992604287493920827497612297697583349296223282119130266143799826275698223929101694459042559896825733196498171064835006402918327668605928823674796085731970467014728015339417840308591311850883583376158042512669039748632798547500096352925151567567022810518079446376498642946431993686362747622730416046284481945844187242193463324230710187766011088993560014617592775685138234775802917499023251340672996224663029601991771334784389026705264880199726407804250916536736823947179068768865560709182558010395297252527973427261299176986118100169150786248572381863761036042095793336296123858849141102315312629267333131869321653077235790284817860613311781614067748694681945498740001479417394822950721411979345200831521186551733799941220516121628785738612340726091094593295273887949691037252031272915788366711916569224812237382861091762879771885194309370116775302610270390755349492883994808364185349126217353900197071772068031030237554622496514474620425919359570027302546495219001256826474597294963901808786821500253431184624230622853889699966951677667766830630397016629208661014717603403063829177287104209974302770920882545298950927819729249857988320361359146031902621199993317637085424527853926439920716216262618348681983139199210852306229432968224978922608979490570935870790600875851852331602580514478965483917150247654868169262943785454604079602388207762326320346103021573864126681699548050301826341229711868757711320766502548362326910561632238554041838574281909073866571232002900464116309178899881038383061694359646208846161084189896427941515343591078089457246217922114851321362026490461263987085937201430196939725568325014189805522050098633642098798054425633654191907812832681201756966634069853462605215279089400745243926201907970680912911705733733688071878606436871944869329693484623079318774341353877998853142494166395423209557449249648258038928074161840397029542221161269452666759947410043840044623412963100353029145917401802672492367457357741827528999895046484741866822785616136746702383751377868475673753215771877610775709908034115568239111845474572944977355691361539305147738474144768392131208138124374230594612990766734162594768045657634791228937819464601007463949518149751169135590711853083934407239332257736755429156948464502393772043372042735800625474217042200513431397305790091237361287742509690838401851127063227117653662609080085481446519669311700987334316738736874068102415896602437513144809167049963200634091340397019793326449527973672235154810997887075912648966083035598987520746646307797040380993675839780107831012951346514102523907461331736125872890320129877029166671764278170679115264529687567532999179927787404936702734286282842247115239504096959723160813808754550040101934195509090865109759801728427369489168362261924098933565865962657035872744500082002648565220672074077609853537214281682072508682317006667782368944744363598485169171865407210912567572019009294640804397634684190222278535084398524053219775385785756893759194348816487709948327333656842099540634030239931278689471298408124824877860027654155020299310411383515774450710428472107152672584246493261248066468655250831783148828507951643645431886081860634196033607158950278515130774567792201540847768661871481219972843071821780931561901803691232800929888044347464152218763516540836237862420506769761441039963104343808769067233705228382549506663502757282098463999753064820671000569829831160960517762187582631950533773559599036691435872291101616296511499457845192439976109253924213124080900650932164252033100799538334807254251589483385991446746958948932836911460652650349982498597083623868755041309372190335404875846208827824129870606847390978765081864683272645127403456161344792300810601746756044038872487267900218310166200348691635375190663280238086570502027757775011659295687234340085198709667691615019360780801213358631294499600212837751036758464361865685715668334975556421014478337934860849783342703353742787562034876130197067031746515812833443036042957499280345265992863659776475994510681392680539049555763219869699180910649636607725010837923986525150504527356654762104686652299769606242595281701171861841730140943839583842995455377526009608206162141324429985786747457668991893269865367992783518380730372569240033503732061296859166290204997958517600273009854530411040892278480501385618372121891767310814084831455336611739716295640658904317849826012157129460621118229780076244283081927534627093115649948381718043590321911461525889149315710585437193792652313799517932837460464152421871860029124502249353946600176961002892939750247473940147529068204711536029423388875680324807785783444624470239769199295115267043896767289217291519692752347681101227679808143087091628870895250716074223032107169551435423810394484428787201901447229727396645185276890498019207879443632891518737372193722955625670660546953218123737358829051712453056951973004005296598406609662236596801119712242074758572494974166834077146639845091869230879259943111698135130955803840921327317471742831475357889412308824190601456498862736613050835789751608787373789735208355606034799752431939406973295309269239154061358308504297520425903886751894462693887775248348994302428997354244077975635946589745705106568738781820270058044396441861838997533765387151681292531351495873839190741655545829649587810839371380350455698870557191688507302924979213731417794820477564434060111232340116756237636352310203687975856545654184490327557007008505842277908117233859341549172054764095613983960028891193343822364885710074495895729758192302736179268882682993628864574872110861758080578409941657929019149705926000158493725131109190695114389992688804793259668840406871600524376325239483658568541859520196854551233637489094909650325558465656042925000082897032839802874639505161401158658339469225560721817838947307315720519338270580558849589160943270912961704822004541321146552370971642907444611909314075867612704858335124737473841179512383999574946606920595698881910351953547201561068489510358545911918064686621048109111958089243540575461503527302427563815579303457824480843951043188867845849883925467789281477257232500769620409296291805830341041687156397532380231683527753454209237667273336416610142427273304439967361528070431852011632445524227576352703837964785590178314663505695705342434188183497774301694448847028147883263482221309437524741466352598813413629247736040864448873907811345019904985105224548896098348557987993245945801156727753085561979379165143925645113654456902604325033445658317280938037978241395298131429384341442828024858299798468277997916183034809638396420188394905560389636410129249309523517243718921764797973898118938201171255230251454106176735621090393685512793081218866194770716145238435742494849131147279216739936963309217977818221450098796331071946033298607759836387235682370082959336676193940136193982894456278041519825855250316013821993979133279696445080733439636291829253217858104881526944249851037604127623575491375143855319832712188617852600440489911278598086751512298857768070456283042177612137399422031490646315786006877489599405407886356120183443633792934715105532185698487214093446291865368115584304192529525848701672850022418923394980425198195909536421525194129015146078303893489909673290855685889445032810090795971440271317982798285555126914544223823285000600555684237310364956057196350143076991523350295654095991519161234054541262223240125764592115599963089649181223631672418322496828165200233230013010697067143162463336316193444806953271341526774107211818191748388187707934511326708788495210051235086116015054400736066529982439623184014758803613476275541993191573708142709365179721978107555650303879327639696005804639069928761902832604563492900406388813593882557791998569708300258157983968479983530096040824303742946425894059343861299215767469736653941589015129449423271965119065259911324192273176026057557024011751206627808057437181773082569834661900426128580064048249536109916703781740920583947704345476978216274668651325089736491625939283467584316833511661187423026145624918029107410615654364651235959015215413236136500465434369690375232954065207088405626641494294126686971603575790287292813002231984720401371515511135585736897765604647439356530995859682333290182696020153791675567865902918466978000794229524642927965669008937252720720424420325699945564458503897067820678307741725867675489465769418483912330890704465110791951005596469913064533444640401604039695368677630766407571444526441463331430672015504483443843699021881996869719008306410410918252407640144052874580063041992215466001908089275520371681689643277921573331640965591918710381671039806603550824651754305235663340594902808261322732433229488604586393467342127066250693906314223058577109381962332000721153697145844751549363305619585642059460788761413190323989040848250881921506282680064350115432786140523571929356606731912856851776020000198222807591969410719312891338263790160073383080120937795867061068595668164598385346193032330681059651778444937824602405654129657246869220430661984618601616018255592029510236499545158475973341175702181022730170355068106461430329735473762170000214813919005243635848760478888496568614300545947995800228918421615470218973731661475807564560901230850278366802313559321869172224082782250558909006229653284809512085808317483471046811838103097396680189276487439213627253465019992254815203133887811000787614159609835073011749946295942592786368029498084325678508594869766416260474948062117064394190493921334189066367445083654250189755558337701207355113210363049624701423942665249950144505565919322395487464399816135679662856047908236467206609090755168165068328711166159150062067647924743501892318257682250206381395866081372214228008135606152432649587588130103644803956861837318389139861257119139007250227045800044544595568920909283907822060886204604454031864963421584512510903838984333063453358076430348761345058620671778925161822584771707069369331625584559553050227252470389097938009800877513881709640529360922807787616067740754103570095542146539374582930268373602599183562360782803110397752590329535721818330572325942927905403406247367812187686586600511009637598108876001646524938730431602539251940869216913721894108107743591049346627338101017030258505175562835540467248318819991252046300084279064430652229497131717279641385216013245873002379124742774849422103118747917313197819328672301708390561970266419184603135536538551851904475953495861011491552853362966139647685374607282615820230634718463795725379311218555906483813352351434696828947137464215523538088086374101724126872221378342298899351117359472241880432927794949492576796706524335002633166123906286607728061646936437303418021670404402113823210384062593887834694995311137496287011496873398546445188683292059168173909968202241954554327232352200634811152904620213233045071529544847624751102941269480296487428164421213545294104283700939109399745365224365212192326016057482238271941801533185763540049456476480661270867171192276694750873224479579203857432529590042827432611120288158018962945494758160140469181164107199041279477580422167559007648647593945004093621092913826749221276116373896778582319738563315382181249744696789144547901741761578148898454088402877191412942341669850072692446370850970451244845252810216403924515526883586167988347298966424548802753507341524210616875218442418339398386306990959218721491661437637368051579680021276011978981793309555753266884786271466161681114605610320053643476739880695525919944646136950128264621998588335192941582206836142868093947808561848263704575890105106222535069964497334361012103884456173852139982453109161358865068131170230739758677780720955402219744658691875232966368100295480286839063438781613886871164409638274515807293918744560218346132461014519793670953490624210271601006520414332819010351440492732202661188385289779965932162806449343987636671418533205900855945956883408880359975367434263576443196052844377017480225381271359233126318952860610877221342142526900513565441857914736814924730674857161710773294553379830148435852268369105072572355011708370392071144574320785571368221072675684746035618035288249703152345268543678500616769822555850559256453258081301619263074144962001243853242034930241242845953031131262824434319862744753166498376491807154587193098098819590867209179261558752846164370106213039598168073120321669638009960457692015389008552931487184069108774724054691595079470497830912101210100993436049193023935075911583672049392333086789367367216423021819596496176312248416463313528868004781972541356382224554175392074552557293559398475120680460193615991968930990913387795560106226753475285891090950544800519339922972959477138012155600919552437823701529247080540385661818021224863993664131546450764132213553742219021433066784314486487508623104574096377716331800883815874794926387107253897017490080648093734092043482166476258016882048897419855543947881717071594168647721847414161775929422126956580184407108462486136520528576890048821802687352821591223725951467982263092984538406946542512411354521707137405076161409344467676544616135589881057587735774434279037277046066042596958481767713620337670631335010010140734277318637613889556252560621393380209132091513223567873684771414997932710470266281023562102229071893024044953566611583240862552849527255425683036744270882123045528448547387904624316278471577351665081765368219881140408334205050394545368593072158215979865576173567299049658307068679936208856022070190622199908474490879074524299507396397595309565474323960112250003485145596829348337715278872408175825974081002778674458568291550978350973687887960634447762638003219824974416706222443479044442991499838492568741794117315088493830025379404564250406712881439465482233510944988007509919991249042777621017087680041261908169237860579947095814168619581516267708006161139859342465503996742199134550438011931632263912128694161190597311148256937899384081144028887252008135218831018935210987253332233352061570993402841984127035878721317754605667213837901201059953493378362737974881680302965208697804540371017091621501312644803387605380023838477316420828985558456425398691136789471134879392923514991426552862638812477180847867870512589712702451549679793943900520191506290447791053808469917349718769529435192133667965501667395172532759103324634414247607647617236625582845058315134814016930644769010050463858290250014013734814084022753143033686053578561617391526559048453100164331392334114454416565906507696972611905980485832386520344993270531470177831402453098954298111358116264603686894657910116291447779963618194035924261359015468083018879595544249554790365742206405135489883976063229372235590468838581179386051728104740015254775926858345138971700332791639936730447400599275695540003883403986497493002902998749475569265450226064718977282515465661132161173743794973051715005609029972552752315172046208809693198576338576618559850604620168613065785218071626224232292946614365161829464395036365694811823071034252637834257126895711043242815309456373579087361425344542244341400614608136182866852440305205902732890228780344721721039987131958380901751718706139189602370391602774197727205639163844928158678600989665754855338146672905528737157290246478915978131760335929098386404056144167330087732127827794053092554526132825293915482384776194539660723634339739266364478799600377721902949714972429627712349019968951733116151554996783979566072655610392672921752712265830730106190372970468638326056807187906731105207553390000054862072342867257862068617480870211848838887742380033439220467020022545153050722762693525124870876614775954120050299706618019197920729513736372724938662047379934403684733896954027058138159079315966151174763295337656833837165253595461161893232345706259617993844534431750777094019934188043017261665607643882386387418649070289659894327496740612876081557252794246068035045870958979019481551571384642990638758504357721759826998178321491224575690590841380279695931669355131370865080741892173406413749800886329093062187078657923142298855483134341168145301475176523507222223365249416451131746919172169235308023829121086691269771821000481643934394435374357267537801406304891575856272245639488910401613520204917573345674329461401720012552969427270948855922102618623677868615010678200211468961918370339667254461638291587753437414640846405054870142173316067733584191606648782462988604251792905829674178562095760141952615943807948651528477104246605192482306464330772382144354359195912107876688486654911242155143133682880009402896680400455502325517541275717168072921638086565973777058383109183054135415192051832523555243376320842297616056474136241180355440509414644066642280715693032817520282524869976826815236863167364757833876569389471677637492616165105153835069674975789157627173913544714726952326298823607694764905729961971367497036208260029867664776156926506500640019227601166359133305911514486489734397099521316258409795742690135978611848573421448837217399009762265463992329927060602694431441744867131817037051147850073681660785609000245767041408526250873846958186816338607407978703599499872588386475056300953568911370930802127621076221507127663428816804657611165453503052124585960002979644339680497730007511294143874369722162174599794927803253054722431449505688966107192269222144075631698425822419110382368424363753299146762781026092037382239500586958391811324169439772904912930071354100594796574092613491277934000638868692857063725155642962407572956713936212690553890600762689268696663228826573271152098103396753266975192997387267094182607431853144488137534681238275320524260244810338331297589634870907338618119710019609297038451742689545500282160052453454275845514210462380008466723433486483178114593943249787744002662867904982379440746678481486629226242529134034206655724170042863753347254019027090269361456694391829622873929439565910046106083355453894869634681851924570439548975052964514858222105943982548718069629241476910081857886274218337925376753206626629076331634845389631312237062745051763185118899213563791292316962037265402500564213790121727283694347900291313047318704981480538619319419527938504751231820645409551309431309262833835105027405583466561528164786323487192769848202304747923005712631204669305123366479807384353138033344584060562614198386211070999451762599751479081805229112539896093365217211465021726314958741548437300437671939472425850203032442126120674618425104320271199598406719730482426055495196421588546379202173456635267208663988102683793044017252002282883569163676278945584758009018012074500039045627236707860664611554194784834077151785628942907012315532737142786792541140934619842155269377166921238908747059687393696513037537221725995959470226456924309254780898276926769791962188660802662423473435614662871451275858059280003477358599763182624067688940564376832622581670237202075880961534019913151901173685483368695805325946679537630449269028187566351692473065631080042390547709577052672650417033581648999245370536219378444813790069383035661484315233053308516431155692858325947589030293712308029263900865258164109505360288846461616490803227134333244502646594497282654057312589235969256122860180809558150291017563452380113549149534040603956225704630068264386980232901013473538629084058154590389210238272701895217441878193481778302330266343839783084888569003027830363591661657717961728747971332364776387417404748439803719067310214972839822091633848826049800414255281072486675715704999072702301131583784974044335657975387272480720184348047986326609950170050567303155555360113498593247173105619664784079306253224521996776975837134176142682663374665606422213577220567540705481110947687057221176306921268302466383250574345823946496469540311867946828055684010704052298348353177795672302447339061022995828072999658299307545899460411191598036715409383641456356535342498736770752345764312308216360046873311350959034164874239237866819875811580778888742653232838888304156545638134215549460664319689637879918189368387460312023599460446548061312561825480178204030792148523851403070121295257203548511870151992667484198120013379485598372454348036040625427538393570812947376481598140040732132641302991626513450273311666464899045156982423882745234638831273595233422810446400852450718219065766796021014151086758449028171435203553871196543093974444098613312522780516334833861893835432302187041131661741550613786775553044645415307705994569042290539282685409780115843687261329369151630071120912231692635342900275157467540677841389602702584757813021417042521686583616822390031984977875369094346293804725150523045222256956075173206917936270998384294520662016624659057848579496865624898218406797711055136521907413337609592873427576255362349681399541719452557206365175865221258636365900208356947418422416237462521324302380316822544189990217242372800655729536441647752690967557757352216808310898910700262894030729420264522403515472852309621117437442201225818875721123050137864210968134211437212438249833568182771660305248563862230422812244942281445739525856685995174038608108471790952690325893360496494558352181743873057853824168671102211511787547257530335516633951120155408903073342302342576610601150633493829578827878228862470520279181391700485411410661716696539345602911149857098539197685808725968100073898745478343546030191540587637953499296354497122754708529445416356183197563977332646578047318763735996364543571894772573483035154721260601272078672818347832126099938539874738273732693804930857169612721796563244317379378150940877151070027916325846715474509418360133598833931315180007891471858526916377146834801966371659033588185484410576749625593392687400016787108600720100811416586584326573500561357355499739160376876544652159158285270120875199228213188121330224497904080783508890334212187357653818031952263282509065892845707814444580122599223508185388957379681748962230279742645143732351143755299305815258274926143535024068070096153260291062040080633614482472849335916176210970194991841223598956070392357542209711333586613430030674559549370030490228366690943052399381753487232030454260188246856581585587436187327152570265949684581271513034481220874249355791216599465156923689260882431921034433991571057116935414323139780873071234110669344289068317964226962721881038840313441358494760711183012679174208119818878813349507279469181210840682390964412657282286255076131406138451314070211719156578422834670876908943471012017508483370523881068751590339290711573447255295232570009273432981052195272225029728496167933654764283607266656249557455562467654408804593403771262084443277532786928738651128570826979937886211257206185025505992569482349839373244414461569316787898794842697106673575568088590643081208752417149959685811607399862926745532177863156840650220829945016865634364113722525861141949228280589581411630168878970655291560049226572912351205477668581925976921949501946719199078556056276525042085194340148732907142415045237488996545429562787065239200312470610535972034090375804200537687471731659628806035511504249494654789885014002412530447073753849358188881040160068760672379257475285094424513802202795853170933733326131170427326288844838968953129993169199442542622480574635712599861079544999007319420699657337322218259760593529392116821209865941716806172298827958831922246899988130544652293202763374475944859142168243815555576302977639341376449067814694262878024467232690060125781566652270131020525609019007955800354298038232092911980264579946523538473339875865014995534166965827591200025761229246875721190156738117378346071899114051945357802527969929395902503329552604910426743215867471583318587918515527090499669384313190238473287215579304724248941695979734737665651822536394244979774555393676008940815556339753761660594259765986340652249849069688307552535334147324654726467802184390679671121418296016066550831309597153753054607557864370948714079947977735258822751226137223378464603918989423740669426902916995112915354204597159950940640724295819327228361860944111499741303473436261397195113089879894568174314572125705596434831998378793788523955332899166628507400469792739349687945222182450671297931183674071940129392593531161920590635835367372546636081210587523226245427957328149119120407087784018418591769941326686913112562881387806950870913771068829808135506384784881357229045290014418944901721777651016453834091209374347971066497871251022149073387519583800202972190820305975936471486137758577121885718949502219618745241511825574215798808626852295064037632269879034821422051863005328226203453991306048628826744217009735784405736236377578190404767941178142031474067695800618900115169176830247185695216692045851147045186404402364305577176343614279857299430240647266456553703892376432408076327026173841067990709839384128414292429433688390445377022901766460150142795231158666955671243552534223870754650303732238368601941700617277330114086482599729285791365125291548136469610980841969456248344654248987469965019515969163046424571076623412110451508421718122878882800160851796029059928412807434170924608313445091549375758570018257642701884168306148662777326860203500360370471827967599249479749761256507065911467888547924477486875405027581963388875488984476024142981088911837976381235107099978030798393852881645174060916970222500418190845315351584620749164606582774063312317459480393775906794501648820847203158744143503180003411113616028612548623007390311114191799460934099179119734549683759234785812386877531945888476034386863590829645222698317271253375980808483706317561197269644270666312056042345125594900176575134358774027778880498623429193622926201507398140260997772189457062558638458966978245475684348311865503193474262680782772861019402865936163400514844312428717892486804395913278522329387103065396768376980316560652022555215210799681579652651054387767767049215607341645185017468971935541347591256022174121793805486189674586449329209758501221587507171153900774282997343678634659410221325910022211637849944732123216638315887152708127420544848751854031294424266796185422676061723866267029977813882049545394481586998889570597660891546315643289591142369940868842283594577108927350699357141851426587619071636834876533038325337874081085678180237881695194435380583404459076914406126471095427694096218666582942804350701145970755179719534689845627190741322401871145192679800150622459907380212272204929065376840610913949332901452920900132328682305865478993116046898001152661564185910446003224277360577483085615160343670753583817479489059367381704562343051800857106787114271966459298314429497947745120869829501357582880059495020858992973206325047557692895796674590401620832423316572281698956412657247529375854386953931481374174163799926345857192817723176965676094174184656899173643888948101998586425029181343432683076890832611001239277832640192278598710997010007255195820082028971771346724473463046075503506392429944552818318615339315512960038867734321957615792836336291154866429787213681126819005671902150305367172460569945515823471975267866246842334730993995489451877218990342837606659927291409326834469463342606734670435625603754358642141480912611353934438509615633167867494670299140691143764409350348010752870375189168393221885533765077380269686796975758841564885718984806942439198336564674810261874150248096848252495808030864106444349680106841769723893649349280828848863745704534848958441554249131787813961216614712040612900333724931896544715818390918125282023369759754529119164891451223507179849058376674311008134207405099360734308926240720240818292237098889472330941124361893571866518165666393855889187480428065102298122249329540220093422691852123642260763337660034035575838287153524973995628454629434827516424904992066891043170115729532918337168230839322316860886872356195434170043427757888318869079164901680232610606071011047739083470497486191078863442593447871377849554818546093276356638310959239755901131759767539638298012568099987202328943886146406189206509225732575904558436246502971396150285313480971351231672994137773360879428187263340250420897822443045635669009598307199149949949524070735220454222140033074336892690849029992241385361437547954564833553599774123566815279064399715463930249790784284931769855119083133281113684425963453177611145568936038582436465960826542898064528635824759000075725562318678474391879329568270333987595585001801416925448244816318045466425431873139911384724068984803099120169706982813595592989563748168289539886194270974204065702599573796423652935040236428596961098442339723727246017017738587106882601997146536198844721351119124479325124540947072472858744392136913488794986297201727136292388510647017343439064669221916327447840023324403256600396883374955938363701216674151174536649675948475272233415305298505272984623374094803343499657274954859719477903671644770143547367568747334833148545756530173327063078714423571946480499827297124450224647804218125078430760250972297012802904688352275735887902214831464301748210207891600618067436105669297516567290049367411112777511104688517322303482959749569016551412912424669880059071777956443526008172424865404023558279100823677833632110947419644019457469261413928239375052600190035033262727078115441779345259869122350700020363604868344245352746123910380313761513349952269466224072871356187455669846115061066788142359291233157301105191686288430196625166268808792076755806370724354661041079858429902381039448929830992266013299653076098874251381620351428941923430287965418746574121884426652364452921160851050346633853643375236193719400527522819721866343892657165117813763976451747594146600311853071785446486998279047080326294347109734020203593619952156444259733255261555472211845845247544437266716372102729036099115129840235507484303491254900980662964425295228399141644664024946553431486740139630845800831423896082321620873617758880074648177383306921597164531521584309692460513254288397624453979054600582221905188568927612205278568377303532588485601681733563469734557534909660563650283134305324224955179197222641733152320694280209303886380231580150146901735101906491447024143749853139848909077566814385127057503031206729965317496023251094138155397406099119418615321121439553929263855968425167848764534090391826744879057453054654839016995593784486367977303863931764199211026321135983898603229933604189386118596172797196962587859079456688228700562949792735803136379774847621674994073398681529387231860700513223040856580742406088494301480349851828926674251501811857705947719055967633648168825260361095654717106548004609710532377981339899280582373103163610503214118195450131514199192651812709662761130608578134710079544493845562291791731855219759159985193107062432450163789264833048875134895801975937853749409316233344556164024754431082742680037744758780246785914579120374185620575345371711011857905681294674419908114522797166417156827435004377916308435941328705597068651613483028308883329673641159311148307376005934033666666578615807297006529091358932336065752373380308934994532849545480867506559879117400474697599617864208089272001932452821495370788969444923313666326734695363724953880394133509226281385831567670426221006858131338632329976632047844283842995268291281737701010645289148160375606044766948861535558272349927968463681548609742791559594201211297782928232133432023366081818149218256259832772271465891320726373060597799633699210734798866868689449833807477050845792576620739031712413998970073548850258022212402202135709732179652331831915573553941227774457203539719616635474020825639232375376429825833931998998800604442594932547078522557362846960267767730906609919670593277517085302081737349406130868531977368490642110096628059646443258634561627522321232147960833292131706256252140288780942211785983024861806896190330838751675505672064665920129360730590901226318710538879703912063029590559034758559711001768591413262244029543523426755891243336596702335785255937422458748704997358715695862102990693963887521633333970055497768539496976827237639298859163847726761882831979345720438409705309629549624946398607008442266140414791890029977793789440716846649508148316961765001600360277782268536226053477918893752707535888596482959486156906745344888937265279657626903561730889978602170282167817036443658788745848881314566973163874258580183733819918158928574963020098344121957965322816085274451561978930754392789125958479682204841713782025460344238332718089755616378574024400999862902628400314380035077775497742104921764609426978677924788051650950807180992919363212941032764800120946516453501822876040274696407356929477875281550160975841118338829037948385948492783037900319522921368475465868746320104652263378470840720567355065732440674193330335718861050787782397406098943409104522339015398313636876600320622142210435972357849763261432360463159897148852116380210440399966858199087696981897926480868612703534287100223994120363478711448517078140593073487006621263711352622922407379809113405535000367907106060889566590758745030699151968652324493123217871110371989014656406635363372133141076456638100524616637878510451343253140086181421735442971979232484428746659279633636605223831100253613602167430912128136653819696210217191455010019021950155970463870919712258108501458417415492228489816491201326294709614668955069501810407933957269193421479964390121732861620923904268088100479690143410054665833327454476676704024029549636549615773182944887169341851346557068196461183077428986201008377806109059335316512247366860828040219241156713904300403568411194650973912424046544991556224685403264867515871091516519737237929560076740673439446352323484616410282594285307727360849348520719186462590142172212410010069498330531808147720312225254508069348395474066727090050364481489001145276456815241661972148846857281905364423796670389112264856973599023437936674511745538578104659356940360338770214074780809094518477147589126196298446568243792077169680158268167126085051191676796625583453803069955761974012781511221081851779410716162940228998253611329537573042542367298232328933507469351129326514158503510895226358422596090577137680787930660231204392070800055769534031929025066597605831500485669263938079442672521246881407683916329819590559131785702004555925723221011387666199240931622230243344830706326399355615140156538761068063555126201586997153516786277976042124774091628074193059526900231280422923089628177264046409137203479284700356387486673638501877884662559032607067407050011410227223519173196357773425650104611451228923634175783643861157038833366771343017061015713744407373448240200263061105354983885406639225275276635912992730674126692374667730093182226606003366209887138159748928226752915117570010670474568959599511231504750143006069044081646689449929788237377575677647491537295218013704002428331327871243809950152606522451327390037502435001346041245626071657185608427457841883650577939059540490552305691417396236014725514433197077304129014532437504501134373617088573012636283612355442210445277085925418537013832288597128534079254115080568801220345154215007160504411968449633541393941936937280628608279616329730278716184777824482771748108860802155683903005546895811492202087147411857463874925340188736827487759197618741254403642714600583367282175156609252081366485360625761365929586469929235405292468187938996537690756507221792328329639116923930617981860439920221684272842114197506258446860377204462059760918536103379349656137216705230595274155968933688099568391534480854881844748969159963320696669522176803675293591663998648820226036652243829352246575921364550750890024290873145437049572915209694390350105181075480658252281172619904826929303021888869404612138469625752625687129200862368229839751850035820067894869983893916993560733447448590030739593686214057035424059670587611708541364380534445320312578612933578145516973948739972881797728459004798408839626162417482986370603933912008764988632151670772275739741347381778207701199254803869054963124528280949707765814956951718233886953340762425945319341611962989773250613352197536815373999309779668513220393050582445617672586153532537576234281209072426250250317045437732226283796881294376625528878918000633171158364481895066961761440701419805803078313538362339253625150411619073337106287004772708802262664277436589867795167731616426589715319083259416680314045448047629185036267899146092534452318622978255484368987513928339791222462967469179899903507657389110745207299103562484327920327876724231777747571183239651078323818665227757881453304668969093710215910317565685148698313534886275813434791135455534120250901033217195900538865221674891537607615004076898927299671398080179259995358318779459544818525657658223428089026563174270618457909874154135390192265893888977415204557004659680111217498002813487511599188119763390751347764873883655237011602734901672688084204978963248185512010020793802545752304660085822389268451098472233863938217753646105843072771160896521584944893042892486634424120358222744847371811060973388213258302336301575150586788565509947485272977789898764517623853995565538659490156060722256897204777196812666222231229613108939020677459679736540882933399344847451608200863472845684062067958833535149049217488789849459466126975590581826239484228995118702758756975562863654335426340857277210069809176344312591507709058312263940944142160501239856086170105942106617387495296970739934294754471082921963912888726451801781944337166805051001681688998902439799074836979134447117613222361225443741652817561776692146208582067993070236961385663934311919199706854462944136607598037392555248988889797009748798758049851181223275589252679178943946085551803563719145993782152694916795943999485684045594730619154892940124381631330763789550045433911490957242670190813859951887277410105407730203579577323433161064722657758797839946797134350105592914675027765466787700163877170266626573448997315334943937311701983747193244956076406789305132096877247864159483142101332466676165073880510556990395439701837411147089233835937348122816844612901442718051826114223563906061407572594448064044799864170876669937549484035376752861268712082340467595115172851083015174580663054992369194091209754984078738495437724394329340529734213536839881233749472873781803343721742654952529302365160672603926378855120424072603171853945735781384349827297384546857842579738168222436852411235056116319958528655780410633940476764688626809704824943987493388549300876203707802944728241642616153445961960372299494289928889336093831574326304402669434359841911771968750157613591503130861353463973117970297577502480490006784404860831064253385850224651567159067783609560903957760521335868521775759808554880827273224688503068190854834892898936024760845666901506160560679770457391137310968602300624883661831725424272824644880442914050032248518866298101203198553290920616829696048333254929510111333049152739967343396574023616289841008425172419159484366617511166894517329961752441544367773033300303921150085832175146030509725986363416029211894839106974635493360527163503063996250047976787706131546792426327659610395726128730964659938961868946658759785857042686317307865375416109511109885335402062546393260554890127821459136237147929378772880619404540314079373424702664818569671216940966884712202362037546020873536806024854295865819112464098694266834991039866244158773358074484037289616157628013400544096419034543420574867986564788699489085913724635384352235243424533389266127093068769223499711174465494784057211625241855425630417897285229245645361449162947262787697161472788461948810164225315740795407461513364486127288627395491181374032370733438373487225984589995594876424877122879157244404791707558951596015136518819223367826965419353695980354206214687511085443277387191530962602482018392702866741574289228304663857219868607458595376224770926986603720927844461480193542284356371118078649781938892710443735694917947442330933161204048852979312237829539616300878589150730430773374095376509422985136625605482758994128948391218127291676416786608357064713966968689623270451888189889067377679286668283367684012976179788068447232906927708601410090466589432319308389745955077090513096717145831820700449218492385488645361537197662039478426118396403573489842048315410830375230563271507832051183917384190228450203849924439309700975167853181476455383967504766280777774136398285684475987700968576279413006229400921311316252089600302451460367409326065789573183501416259581633149491923292949154997152955859082750429422604727784916613217105847781771592965085548300965648220113374160279157517517956212618093639814670246412080311958730664431105773636060921259242881472054440370897980022219820275079529175950891517053580726659209942980254910896691484135553106006255523625988012430026370373292886836658924605607674313227471594306854815703971935264629080442199105009027746669517577911359938494594781070715255539537496482036381053177066120236067299196102560744596611566171232262873589281875220870364806932678445460338036512822254693360580658490912501185855372002713716238413358043354943115871999302785005036562326383741898835492734753473645600359299660402941629757346126895849997804093335839413192069081121736143725254265277865970039181611812282311912658964529822903060176377518358623241291268517776075022904894277636212269558107852620633481345268978738699369553838229652653427060802827975033918764234496909880917432378690675744467028990744972319343517726753710173119662482954793960484648555358362546583224907979024375674917765142093644557707391467822918523350588008624246761002219943034172157094586330973479691914379067853634314636642564185885325728700195833462973279679635133258282489195567955178357313498454708846532147376864225754160285662506139589106488248450382655397770196061962941010190446360413018043226003296888305004914357291192027269607946969481909764333584983570884628423619037888766546263755619291081897657804823513504329220016098347634003056552316625569073701948544213310713243377083021440124738598910934281286900306406704847230361697154236493956033451188130541321298714454685888845730789927927283186625053690337687269191255995307222663785185476934783681102477923214424633138348552162715937258711781064387972674147137889784310383612358749071999149002422188170895933064468187101609017492298920285338595800026633366162548161744936527613894512094943820254511665569066158202221759370274536713737445155098344680919829025517463936321856913426489670681675214891483784719323737205163618689793431063218270581202612044873954459687068806804714577169904439713728624487670748908709160879180705707286254452452731236662432505761816624410798712662783307874194201857831996805421181588757519936426585775195666910976905489874436537607576166450941960695511716161878616984652742362067208542812235225265702915130711541013804428933094652832583123626437160669065079010148552546021802858083792270615080183681188619482150652429213501889549131234026929673884397666013576747653470915282086748821713903775838126412761895495459940214800548682753959383079889722367743792719872577584260553003151624379051505311300460560980417915412135523559378762477554992317306991000103906468083951811953043901755385062324090605600995319482557488068155344318973574566479917423476144587595895257588739650490076118042706077142611431618631982331455236263604788468043018589465533760610872247633745456753116235338720698590900026486565584765327865554912702680148682521889703069527942326795659576394173283595591345309259281331229183739928195780542779336596673300230859769063540589152918572956741272125630737662732756173650816747531568739040204768803116712767092705515841552622895196803218082682493073805813071888657516102295713495920766094035008036152865080169383820584065561499384222904860568021281421650465152222120753354931227674126140509178840212042030759628109466008354583915249636726682690923937751872282381088216457233164578436356117036081703763142107805975583391911771594890793340277316341327047647113860403898184552939574563030163332552878569202025771726700314744530532674518288668624036730225560003610252163852675619767603265849462267215085237959431485605288341925066948546271937013541184298173736968252155546740280375450826145483708386127088046611790444580775629996473676764408927948938285926969104219855054858501232895819506192020685555092015846170739764384574078513206389461913793396872210009177702832166082020062316792386153961808612409714560130776128028494679712029209577711300324770648123546790426106156129472820650149331199936130841864649920506956262894606822972385170137443170381208872463365461623511933191030392354754270480737874695434107211373664206499398757709941749656378786392789202072323196287175817507959274342693357257732525520653661882577588282239567717768424567986493260566391144359262926921683866165412869940838974036801288718308647015911844703748343677127990650648875035375535813173607885163684707030528554172164520815249516409752930152196435513915555840298517204006203748243331701213037678954182270094163028683384382594600905284491413402153583734716504594343897366619116318743786140672668386335133754199436861491166776997370315164431079096969443652633152481483444466556286693690218315393948969442991129022776115307254162385912700963442174618219384912215119616663853919875989620981808890050427454627986046040957019412940623933766577090351452142478095575598088289251968724988508274597912585337762148353171253102348729963761622798371230553138349008126728609569870448778208777724746593784019757029131685987771696906215190432661871149129568001115508406024963448854805270054629439461114060048837259594516198183081615589006249948106476184644836534003097523753106760232341846140772396563398099262893770696308747961386282783664884507813791537624216535352119510994954384206627177966855169481686032670180612272340858999682050065440534244743450390607459257595062576822515950672532718178410551411294756701779751855894786873493175060790543856671530860378963605700373830932617147192516250094804247275442027456013635656886976009934064377642867731359419259431611071580012209163374268770743161523038490441176072078131289739807374822364292133524493145842707314873680033661909152247371971182161946545308775485834591606363181687089933931324215280746655731271100368401991384174578595256514228270384243631999471256466035514218275922807164565436406646241191329841668270925934431456928291993766229211657933445527290137780893481430579631313279647709440370004372515984224811769172005678991240473060049864585099260616644999572580079319844094264010870130283864410271988270004666059634892585536179319927143656796282026731617104618380623375088448627363949027529601796687534794629901172502867770970348515525704706811505548448067518930176081231047406483717971520782096737535180859704884390148732371296299872659134495589497996603961808337026404164787785566316805969288548483163649710577951930833263843260979649318222745447617994599659189662943072514323326231207369694285780002919008395213480408549285753137466252459103602832894859048019408593060511710317300464635535163333590702991397151479011268217487722951565107252287671938918760140166121436066985271834216350680061414231645509015608234355756436821943181883123171241364547066198191330864047423900631824258624458689308373852262808024564003619738518648400897962978294121316669747110900756664825457096487433007641917399258563345485151999264890934332568594939228231201450905713852210330949359700241226205757011806354559780141354558789101653419429658210567207731669677863402712030078949641982945260292212655248862097109233565413490342860369355998883042829911432569229532009109621737762954038712020944930542375444283925729509057803744595552529451111461787532314797730933473956087353546393571684519746791731684717590971517351046340338655792414171681922901065204157008864610778671803615983844223027623011808350308168583565548829661080736331719898997759033350211613202871097766032770727527961649357258962965594538313027949267356508356210408291953895575248555411779380499631110098969326444291324129363203825399991022964187185084207426541177373246377329120274792976116924967900154377835201515352259328690434851031390774294952378467359197537254196463029527621848158815271747188385645158445917057094938153583443045479880011329512429581209713801023357362952356393503867347127258310527568441220536285585176407452845118514800963385890287405129646393615712388761224521822636551374443891317419344519612479046360548115702887557037717418187536663814934552191485568971361408897403448510616067145109639192225690653149636010842335707281373060714342405603661156366256155251551659091853163795883010351129327547250625845824706892519783400213009705840325478441675847581682766228751133850397535803137283665489484034548778812865484774085790018471780240232944494101245449299053340495408720067221050590247498452777537904105980604932349337907767908216021913125668104573313129945613321938203682399637265888212631419933015397552476025527359014856320415577616228093137782106636929772378280069989422708217024314154896268742894154587028364778550181721292712472753217991219907905466312812643917466997979901138579681403353606297920458390798531990154745275406396328340228792126490999111212424863057310580525134397463599404238949695967228670988190945541884347111959319818035678737913437459054530502355909030729912774608151213985476204098266434925193993533298954135025387319874910862711181136436657182533744740594770607855722337473975867966960869346169004547394972729044442131145522391248044513145189453103198891869220661787923351392212581955184825352583381409991386192344258277353223678521507012675646773128324665692495746123292130154265416551864708490761817398306037710430774334647748903105415281073744114602749187458440653483121548261070229051036612459281929079306990673185008206658291423700768079974349692090696179402009500219195805264107624597077699628694213154599459876185149818361416491349535636884033248407181405670813547275211274395555981528153920367854148393705073424639073430642165186056858356586263892448816220125135912401519817032615795975231285759667201158785600850234686688558805283536136322016486386686790161215375019533729717875248936374385629564373763025898460923833351597414316627079515519379318851054285633466427034218975505385953819925660307901064418113598909217271874838684118616660957249457266713838144946313301852363257956997847873579323749490877630945674920731513508678177478746549542950572276608946477382742439052331604751039825730606678356818568532450351397486700586341397401305578760259895936531160164400535799167033716205733152878050728434873744371871637751916487376155445467921782301727648184665178305331286353325084018144938647848365725845525944417079292892649357496224466970849870381266832502099357619457957851865279971040637240229675618987563218866629453088422476307098940010309066347990728184767685779443492488055216761149491266164004987713434510908582661572119990088297139721260409266688797740251931710947629080904739944425736582479867881660841661643718502879847674152045860879832323613806218086746176574037079407032686736002815108043781147040024389385306427846465648211071493859896869544298229022874350148762818225990398579790316502792946615961152694976253912048318237191630051587905891560475397051664798447494213886012604928043816025504299453919859649724133602567758491421395350309442680862016751936726596639562058540512401458563591795531936293827181371241058671955466336333951116708466872323697334968679602992825535269949288750622179282836109786203419557590043609800653882960802483763556291731923478041701682602089331458100894637355700746990886921327084768208179190039101377357197091796853857503896582609438882361034272686837522840129548671224070101682295406853543858517819011415255989434787168664056507756408609062840265049882094572120629238204570317228836980436509129903536287029937787676473195348656133411582219090878035916302985372436174956920194849629907709816914270999992077572141739043218364804123206037857411666266171535942818842708810602393142558420187863302506753156937526149400619825717524389241201485362762420540477485262333470215304133311815353346585064235437294356632297715168869674721610779392890649457411769036657735713268047875078843708095100408493417523064778693091639082247118927396397548234431011988571271445380007552042605402632781884189036517088624356467849126354912406442969259641688656970440694041353214640480504495922982928288692665438326630684047907190530044777168700416950400200400494877376697150751554336243680677175979925283393737828841637011588484860964234885189906482421296897927361365841938176201443867411827098593922908563218949540433528373127846696331169220562970895886972343124713327351087433632888167567940397414254638137527823028666860622583998376087642938476604232796790274132740655378281324214863449838836430888507088769665573722423943400730442787938554966974948620287397372979134104488064312993593125810226667029833825416551264582363841754844447600326047223436536059727428903914652346402018939327384793744524030208202922783691867087367748090119006534044056640936124557516334655457841602366090811033577651944601185535924239448543948788694041428877001774643349879094705251459935692201492766704206774309972769671175698597044633643359615833572423136266216872087221528500137578566923707297271212059330304028152594163334426168611264271683663308891249595990485723049289628287206172823204845016090117674610656122972836482932491159769972346249086736321693742404633507729436341570234543996835515635217779155101183524359295198935682651675824723694710478185677941474862522324191684120781104795638086440041498578332949729940794893398422870414572177801841170980959041007984522986166912838913473221178838404689843978378890236608726930223558783895535715646793690654324471359357140832933526672468962142393900698388714124365406375069466688054277106469105256351263158703602177692351247721932041998480003969559765910365943295096307980472912810727016415391120841948991226667763527851858013425377676373186434996943366139806251115303447011333790904511134864397760491700221560158907166860014078094293260355599251782875064105999154512377849478335893080983808816761631193986037223390488099001577951158235681097813102061615764350597068149967985829400333865372526199102370083694019806944067759455823734432938701083038822423430726210766236815691459141936000987001422317354800307058513491713180617497308321576223435976621006221151513004411919460996747187175973254449409081151687401121152220748158638099983519951556638678723787240607618362021658537451392549875440581290193252231176583494705181171557069052181267978225600051690415927917176052435409084970572146009729330178961943027251713754206162217648643584092266086468695556079681608250815791914075773420412162001740507985006633400140798346525374087187979154856259039329164620112602671851553876105236246807830785172493756259909649825703732923579656597397481050574608578897177247620929044734797044836607929896366456317178462389620934931316810006884668504674079238538660121849072360921584462474649689436739971156923989890968532068915568327192575987420893985644954454539476274289391685406342972970615035670463962980632548394671342126492824923394409545372768017970527680359543008154903344143281957078024355959002767007453306773854343980049693230326937136813227513459962609710764788470985146732177953411898324829069562595774894996344756012615520936761106883599115050763692751293489828517507314925997713508169195745571861882317283411289339268237570084589075383923012050238026690867976785760504181286585074504150810915840509781505998041404481244304071217000517929694996489624711189471066460146600716062697567443641265883336808322738934148204966720030559864603375418814429248820426582889330533276812310551045800693462371329257423532048200474102526658275868003066819859294356219509567062626243367899208785254793984645178631040258460909448018874365394322915823462246430877787327639873383413591898806372417972543131068094720197637466562494758673138227106319143920903060677788479621089098968538468696945568740289579925990609567432966987555447444116477323852009258164739387899555136881014569970145024049987622769865048486318635522756777656004708158218704090251530046479622922066842192306225866981821160060036551969692733040723269361430745316626897799379322736819059425120773702716684061147225735319016442602273953097003468020328621408641327144254139005548146786238032675544471027641892632672418831536845730971804398965655696564756483709440997424001544221122346457155774524188451586763068762464842127626398174363703433860617012065453773560423657437963079154193374192316293951703841410591389737884605659067275623313134157714515752968238963000308113507983659249683573262467049814740666780164149306509837160218270894629270215395849830041793290478397079977023434554798179481816687465873691735955393866942980672571962354539326671001524858835914781514396283616456842883355363694652462708726416048342503199712320031357155574518513899862664882701362127813510088703106146412645533273994358948767811024016036555997243282537363996344000626321899643355645623179837354304326262825208081266598664349162251097709137061890153422731218775922886552816718293784407556230828695827340934955035273803856415959516274040070806630750559789963451737157040536842167282413860974399211005117960489146621884341822951809931831169550810213927812655056019407231958293411527060797889667708539174410726297982261841753033335146580448679692424307120014933789480815271800340138768791199835794450454038077276343287702721250081713504831212619523024354318479902234122101133204962817972815861177339878553430189673807797728460255914926122432290583446714612366853224935827770498976677396187154114827491565868258562200109500883591364536047461527786333279203827343114476402793240293528127374272704627468452238874222612760878404333906936156305632535102029965485924737238800120032556356305755527023681887454912118603747488382287062186870221621253552060655153084661392318119823276808483435445764452379175284070593634657210484139059474987887828184938731359457328720685842863301701887673367392658632428888065689492522658132969277455589774890095971579133830410125673278584599923658907429276525872312090015233456853048990660791273061806076503976127087327904674116018904243200210298471668472724140713304000836167340499085478385427314571346565457991955803331762282802000642567309102520279858906943326118878642897556631917606760494450714116815885337390524962706605222561423075525784812149104708689300312557964582079885804684609912825990127435076823861049713798328763461959000264186304716387102836088425910652548273531424280879859213245013304486127737833224629376648938402688560302340177999538340728523675016057029948841287570492443845740508001824430674958061467550170903879106534648639336825311990047354092498070140599382913821278454366774986685546661670465473694374272114950280907589404491524860832677489024071125567140314078688057606795837561711661415037266042778229320295043712131012716865522840492202368552005577403633475673582003003430040031664403937290431436898411118540684977549516947872154354607023720499568980415075166054714298719687667215455241985758521526187127206833731597325744031037754814843372822291116059891855296920838886766798327866346732049753307324835753475275424547587875331822403793177450520288799929825524907683870299803653305073906752803040800447981897551012761063561493206868751572644691671721903079309253710587562577693854637889872243968402457575943976735614799154956580199905023240214188757834803815560209797189333967476150305883807270524081534985439541618092487620682566750399582839695520672632898449165994573071765231525209505040693576401488488805845718025309248523396102432530423937339347651306086311487210280630184121897646507095851258009021244085180491849704474315671594571521981954231330269461603521561849840401581156665439048503747174340270877964195450250850445480309921403512877152158177746980481227919728580896661433700951612989687048912262471651102623836566349517565231860445693443442705695428106443308453068644186587832382324558304908211866035541109006807627923982497878309797073641634487807916594393438894918067175750075282588127335719543536093032794999817497219981759315056195580101080117283210709995797265691038990778945089310764035905446618501431035639364046991931123458626426392114290519403449494154499336976070339199344616224968501862977854000053745417700917890383413069594874468527039535403005653982601123376433614311474395634474634067182570057213930979599201185573546010418348245947343917158292914355942078036702077855475790114202222022511341763745625885595629271189950946980627696232493403693524632295442117289730371310645004960577908104975323973513645131158886797009061848444294786551749667077420716225451067378979334598915739945925838415778253407085502203626489437878734003531324286948784552044465239456505663312831039960398788650937267636956658566526155997070885526373973054707755990413088769460983686621328517037616100657062676624125834048096811352921049655643981129981182829329203227143184537221257155024476490205076149378086668129407841861274853120977532213158103972926911586505093572405484507392410702370777921749727365814542902784729008812773171443166117312924919533645480749842563523920298044051307252076252478521533436862286545711209675956489548457465372841764365265421359308419980591070107695561051584855355193692763535111346183269044846600151461868503011243562910071585244685767580398103652819321193282568660986548648628427990895827999731014184319213758273705001745791943606794521806074782769621892547265412365416328609555335297050595619736486608820798693230249599536569739576747975296421646513689769939864822640117014289665231552123535248616787935022753380181719261474718621531359649973904430636215863809604224041045217972596597821725668894134250614096936966925863300823867398143063320586949713471351322535723257388869470891231711628545430686064743088098963980395014634009217576367118126071926480187273742231531382886214012489100691977680134857414010559941665633747675818460841698022391809229024785006940163335417471964696058244421745652912849223135379121651199506749013585332895358997244359424045948347613855736776532912109810682353000100644559804679943854395125220981900578128620333704926496336787097099264918639801875359279420640106564501309709911236391572741673323177090956297072728594937296098794429705657112325589957259948050489415897119435348949770249781061428680081808707187138368798123452434736556621897852715628669643489845571261492648602342454586237048379075327548552638249202873131711407165482817834861721894881273649822068067240461713365257649468052534187076053954967816433271401314465769438280405570580623578397748210886565831044366485591371361371957648209663580937972817338088233511785014823975138033267784648989031896987356035209080219007548332421422301863890039415262778384589368114891802246722923601667300389112454037220525872712443479030130212977811907448031117641643450219025809972726282636100986624270844608851942457674800828882516708323676562547059013133827938049749765403176112301500196477148388484818670369605837826379089831095371211256621863309730076137098303663196832150935410952299220458054445080352593168530048613254936208515805083044522805658964794990382907090432019629349778573844246191210875067650290597113730758150367745148022274740507004672893457134056153269552646162582577612346493568156004591879509880868513041853461517799273034750346988124007125305230875073576361830029591129161013816352592473577493071811251854396927376591510184213122941442593717729219857306429851471063806988823796477092559889979996508471214028117415115080630342914536474665876962162347081495896068347384109076896429161943517711833432603024054296982301903943316826121310850148146053536903863040978117328298296156138255076849803658967496784900302054130229786113897344401441362294272800839409329642638856686843859777258222091275873679958341423606422758709451215899199566511356870121969809893607353277335777775344042459563087081531868591653208138432271017801414475958684630653861974195406477700794326357600112217264962262874329890227249647323693717130331905611475824873539636466901360284816021730362158612247293288413549261461673847858417943970488903145551716329158844067042548291286067456874009090204532643877412873447129312572334274397788334550038101565109286497062466558873671679010180060048846840685791801351990641543706830308425930950200552853354270747020449980056725377739397370784403122688361518371892153575411972971163911793654698732972461406672232091388602606754516021079913214465070774963859782960622463739075042738490579507900935177589847288335077971912677813684236172910594203202062068154898123663219396192965592952101356386186235795319388360535009393702263832782243212276180391047269555475217124374625665315244251069060220115016411205063253613908746220395293506917065551742073155671788143931105570722754523447494314981958939018400149901345152943797476912379247142474451841308713136853203046190405305256820476798093762649119953771095212586097359005268644814515538677486446889333830358569441620001717436157440411785856827520535374013714883637972402072528679685888195333940729970703025745364111792603403774538633921247530389621349877570024183257155066368084769122775997702074297035058952840072212499497815433993656467903848774659951720425856329935842173472360855072681987529646086886882525805573049011114788896647511234139581927206314698121305037005515841789465812279496397087952247286807095553062884247734282471584823776500306948887905298220907278509095282281403261970878487501820552664192525536111246135827532848863111332372631412694501180162239518498353452938635003183576170472983039582171836640434976241561196677413451531085429060331104047206960466241405612838380526398632142078777595204262801050076268723776227963153174540462396425575052723811885792457259127086800144937024851568963047709765392683986563273650765614105689965405776116745145246278133433500598971745771782846659377527785699517648843298406090129333022531145912476094492449928759134879663274961657162314365642412473100672127110748824713591781860228128042760977536159555970463475227151342521441354654786294792294782501564223482655589362960528242982275657604946941929257514815868418463900944377236836989274223145062906183444509682857238713456043570143004437453025563686805140522988081374176741149306768471141515974111706584106729227479118268350163046073893339903939473490918309037765042058536330378191921489354536349915500751730244900644947518118605523027131468191393082482340588910739815429545075876411038461515935719168529197427251605323838289323422423688772345926492858234326774592527188583457526323410272156336651625454171042794098219345502405060596483751929414434134886428648234281240269165389694420661706057603001936161370564595211754129221292320317560159567199090201179888161634622794262388889110822717244455203738271504602534972720701401061774568681447529757770874318529038139738895831138039797146718126766309376445299378437714120161323831897959865244969024652856767410006788932764533146937060209874438283590330328764719654405965049867555373488706156017328581214802099074393899783314357731012963264277944545055361113568857047948096749614250272615294075140104908394970815494135445070561818358791757124077596881592810460902281118901500502188258837194352801519694092103243000285770253206357401016760531217002650848114842346268054431551539108804339991763493375916857604456183418847006154343635400320348394749087686582565015238603264805583803567170603381960187357453409094204387919279456808473013604363028342190047944166579800671258803186312663835499481796450330385725960593169093265400232415447910169048313035028790413470339096167916943057549175129367541233059279129453629199776544006713172960674790697354525850883874992158984446862314812525874136322429319649879638376279193644738232824317151106565368052291870086301649176768531202772450231763274177041935667606682313517671125278693517671464421198735681403471924139012720281875030654774373107288873618302868364425987836226146854904916215107791516196455031202580476320803730531269445746596175332174151681347845039639054994147645236284716896737303050501406296119749628589607577423014948666900355013496547997062939451854522643399954371006331625430675141316595363335868174857812659214196382631899221595972618782750227540525466385903457434062346790992478174453882408704695073749722340240083975547062639778491615496562125069037225863598713752573231924735579806287804516082241795974010291727033495764725115195931492536246124419570043137441454915149199304325784633261234550355237338786628147118292641800996089423539448101739663229588299641710553332622960883016755039783542153297553360671866829818812125323680396709702966763622292032658563264182856820496110412036750415626264276933520890774877637052473298506643571113688879161478508439441474564820386803085218439369487194046556899819299632850791519648433228482666057728213528090616606503672513129896982684889587952112919721401795185267918345551486748053660621954438900921028614808367467954300252139688867655454162223158713459481501904104010657541385533666596385501317717123945152823330236257591436431352794909516920573502539647980987649862120701767455051530163249326222009878266755442286638367456817984148042507696969524630561944728615588789892830905037904278232273599906042218651303325111893448847855726150531453150479535590146760524279215068063132807249934791905554238909144659937883846788154258142761594014904253288162699941004434995555717981914658988629952795838070546441217088856375920868571292071895024668721174206132493830018876603098209768676854667224520130726733643628850849201859839599456161281738035077520516491097951129003173818098863862097789748040468558679829275882305863069175494038942268143202602933715834170658276335536380356893588301920934718508511838624334511775575678815130765947157406348878592662132738953496242310140845355328087373335767830919130115560449491343020653630933357831634026078494281412640052234464720070737504856010751580586727700896595526562020443956248244541653610306286109949551007330430757269635792857068609249363492700630560620832845684159759421947031055952144446765664461367686962409255693211506543085050420411900135003800416339648586534000859164035735059477603430009352135414201937901825798861565308110639564378859183112603425089936635433563060875150940441104474068774956528957763253095306040812441259882039970465650609154913444057185508054455328594632766424848943349825001702282882822437996232796330157690768243017589260637610704881163473437608216112663987314361915830764299801752434818924553178469408397688105656751379093279144056152784792129152369898085544389411288971792695907793608807411964188005864859840646264422197155539187525884624365367320306548194669037792028746903273267225879895066228711036918265698730216196298090211549083841764130997226743411656979958645400538497698182005659084030265903979909680942353525933026223640117952781210151949957280030809108207718050199290784423834347348956128124537584535330644283333868341719837531139725124581758370855564003958099595872716124294708498429356551547154134732098965180507345305637611349443939161090464660561751165291264494138295483939766762349115192067353994871155839996719522609419661334172033331970375367877914359629498149598424212173489194354876997796490139465099723583036868300827613008807893696205797714126793265303319881070241280541754045898925620729678971895173391741901600912174184239764306850615811717307361202938917952540179883015917025138669301227826786798562931314643671469900634531440294928631933586299312323758979687723281826105845275194758172846505171609283120995244659782556521239594914447362030489034033403977155882530040648944101260280645710221963847871777969133762494597137017121605311155485809166078914634469186124569269341552508755728137484695018652579498179847175191100785915536296362020905250472649139790818093080027591010897657855653984545073517234690753315693177048650170003910449630314768731258047676913383839979312390257944620478766500099579096169583434929839250871231891299474394508121837941701141735807401236246424191658556560935175178193870992667808129720487385374246861442669073555243944614891480392933434708519743266561139010736332335813304771092430392917664439617387063077217913652147503690384851110508263089701964854521957946597477708019223956552397808822243792031431413035161285342986137725123109781424797299509932623457991631010088658422541849517217932430633059440775732201398498635504079449324238831064371828900920779664776195939641915315009411188289400931388797482304794803248723912298479914177824175292335769221030173681084628089930868668101033218993936057249166901755041090683863249599953612820448458130213806846081696690183292490626794276130214177463728990156660049792531334154708604657776161090835412338045227956152329779117708276102667278100351981238910622348821239581458508142349600739667426455002357495218297251906889541983203784492082224056350645122943939007061123381865416139358818553808068498512620850964985213719773831562664750163168218365365128318179036566061190517286320290652789893369099740594954490588018812218966148770872728196185194442084245457074712867247501687669069324651227955431352200321756881829054049780991661673975658166648671633529159752420154667069078134321671865774248314110860889168923242487357843725496413298949834094115467204305436156405509539351093099496586947718119697667864213259642222635421462937337945686112809807690297276310808139627690616194105376023691726313132316293944697610388405421034161206031607614696743226054166588887772274008292978923719868423227641653155322783046369938731727592750348412549727492665736977981208379353110279724451575743921460682326715537847364042500318785211929843314865819667668202544752189813955773789666613437208587639785274880583152457463277481110887926540636877112073011751151415452046011900060521544054734942700963763268596460932636211418770110151748677727214590169277547725407096555370293707774711076500384397569071948634275475612834801291258828921057556120911251628637350324943472626146020453579539457097884259135274659885380737721429287575313873034523954176454873952794789927358959667417286416111106465031968394303624057745714564625718468849186062540535804639299958589520506365897300434516895399905802848948125406429466966901018830440490191985390435778181452106411041617129115992032333656722329583850385492115560949530231103570911574995483337837499510602501384239813312651250446893484653418730227873987552765651565867767157886262873289869114979031928151671295932475613900638818906477260463623876173663958147990299712883040878919582797359539055288128293227411296082604787371454881702412152666979701260685566222078471984499166494575547076216789041065542739955991388650727837705984651075875262132866211131511460833588449291466318587652457818795962509341806350685776693378761572978179245053409844995367804045278081922995815310526419595731293412171206137771231487796131285020100057427277911887417359467237910858529902556315778533008812269956068515386619019528929194734239159365815669605223941219230275279963978839185521642817304445261008388812027734543163634502361962493642483711007815591303789366700197831491065529130158002918877504336482386244319879043828876648400588459155248080096654693609995948172412107764729245919515822568552490723223704597113646759968253208093147850209472478559558238794019324476691272244182674746103223858225637681490227370510951570574536396004641057520860918753918602982147840615743264390079965269873903351624324833164973512088575474431503176918738917130464806121480379955966045090421070557257808547209457992696704672504916868668644472446716565138164168959067426775904790866437020072303467228863355467921809461271135011130198796422013988181871047706158580014847807379038870300171493641927229668714583260087441876056458428578151994213396256700615563764893947220904879109428788999896747314680302627763462572297958871521167826529032343438194340821382137375873445389892341800130606207129707510502137908274912737180020381053438264151684992708782713223998296649730572330010360875997160463259896145959428694406725651417164311609452602423734590786131490160994474852060940655681992231166424680389543116782606160383452572095456308513260646385648074072259047787948783743719704116892873374367261500237048340162103080437564251447220612719628074105320053113422454905917809616990668646047328019831396028549790469387678417032327823237205808567822502034466669730704928503016812125228743421198712575474503175816996077347803287413620141422879878331234968534886466522277958822453187983184375759324141877852354563182560939330412555966352430597177050429800424744331527376845020448164280806308168823169564152993022153687983861853231283767331091404717616030063071341219935191890368286691343895153043695425340421062652480294455961042811746873186813044762890277474434716179057953959712119698693460619985100829339926547669907128901336508047703174035939575367641875261694980176560186686450949708585314227177468262552772853279913483069392960329571723697887540982195467005822197866067481865133027652316623212092838602796183944786266920069953813339893539705432481103967945972762146101211030416513567225069804309596993722809908379546841911299576472817701233816626110581900325911628159012360251039521271819638819399667880403335640915777114205449810215291984893420742266356956538167078690844101198314838747699055038554571675118351657865138614701730382233858050044980241639083844522697883567082013745383729340205078355647722377311221361607997808799056180045331700489820403312838515856148632234698343920844586236338332410309035630801436051046827870414479757652936852176954713161377518833306010762091264769133689978112394497830960310006236676267518858553773090571307657111776062991907355289929498471664403497466636692021949027024253578565102430211799518662331225958040669622802088147275755873453836272129730915961141625009087734264314273673451017964508871041425416038598546539416148798706853158155469068198443830607302410769912123138325982423757962142689837140924409635455314462966465941092043947978428875065832335071384861759447793416383391805271447787496593659418996328902126312812814190437318669140109443420140580035034675490042696271136356308757731799290785027553843096808041000281299920686773525426854166552704386256246389678596643211528809308396776707024158931624141233523402896776363732420124679994908326378512083130834512965244308848898293465227872768265270505618391333966294839106539029549888073768881684143510294050647034713563072536287353711235573979205924495815868381776769232939237702690297899329608657919871233622738646359410813349764690276818355716490761385363743892796451777108514794393674896410804170541766360658768210238513342323857431669955135791609389515350762596346611277507970095685077496256873719990750134374318678655348542595999163552021381479304875207233448893095320085806336577994891663220804572802693447884354011738719728124974260792552146623196255616835166991988395366384689316056649000684139506035018057611990110986994365082950003970953681619609917154487056989085392100334466913546771937881686461315313489060887765091304162880402121667854022470216824778334016179702264667403924658138088146684414390575668633718159468753961654696515779251633962390930797024124084926764784386998558821709518846948106458629198597302975418959531928569427676032797878248144067567797350879583546447107494576252337315224412765526301696224353191017709505987965781981208919108481141271249036044170864398634948734700564998100690505495952656996908389918233860104275062003800177155208634461771571373363726424470481330158402780802638891168431477553209948749957686734427153602910475287918099675742736828540053474259689782932798147430169433463505931402096518251752340137136437054279262919852187882671549885896620579301241549860371088059363329906810561688847514949959060803068664939448943196186026678638648532602531779427781734248918961176305995918811851952920656890020590867283784030727757679431515649755677419035683822358378377164270175249828448724789958517711752398239657649546012502765825516081373960385343892545150225828703699375910706767335167169089681776533598618693942498139015378318408410080145740099796975731017640541176454877036279303180771819285307340597397039687196061766986088229348234761411322166342189991950145934069970132304595257351444480761526522508497023708364274682350746600324642627137057096134735945175723997337695799811913160225698966822599602395449207560729618060424067970133430209862834367866944592267136967398801276807681407705394965591485860109685016617757296886127507540979407659483109486762314920669412508143268566823884246348085820753767029894690741083569582665989869171960812669169449247710877080219449136102892185915564472948731170365892980764512706303482499088822716744310811171710215467899214472397956380288395452105713186124106097057740491598437110693697283278584080420862869283801700872604227189456587239902277600426095287269710429890983132725321316151224609040083854384762610252885411523271978882060236094523498680376869312873533724928258550795702978733645773639078750530155238029502076224493858848846361574082134803896233135722004981377861615994060959712212771677533305330565835390911895642459103504416775415086887678117019582771946359854782476198566286854333349661856362773418434752062081543936633121359978871596877042891879690193610628918812806957917027053468658875126699911620942126863375550172304130506338563573525430106701698649101173555217300327422362626062446155270564068879556456272918815727912963405352515825961146039908438014684823170156407448640724700242890688008931466341459900308522117743498484298835829424613611006163648516604863567521074397411408802391547688760001784100285232812318855085131505775364025322184200554378625102930519891841739520767712707449017041357948987734873907328455153477396935600963406726958055174530477690699230209703920395929689948794809063633670131974821623619788959487216532126792477520349689945369972663360854914594254521211578866747190557937001331780515986229124642523583085180863939463759316817294012794519324881458057085128647559573377357600279534695938591677552874643486835676642680719319560098332473764108774606137590531870010698975261567994025817839490397314748050497227957996166882559518228123791857147040181023247975536499127912450498330549738580159494266997154056958179147957128389836115394647763547376469522202109643816244551658091728346844627757322302424398076785846322847975086565654193163415233493373087043637786218742421533886722758335165577296775777035875031006813549542556505935581441324012058106496665377027050905467016227431379350590598599262828708945003395515369103949064442977085264834450697911743393388999360597251897167361651917185551731303537793892082125842581700346536929805127998122715357460877763242264020435659642119506260543370973155815765733915035253081627167953673525738297812989733424029916494817145662679257296636324025335447303483916970513381238333601123138920896332101384505244215764353277006790994659995862874635165880171061086286076472072851713551306496143791550029813249775884019462912562086546379137632692017451776145167900430853023619609769822228274354815816060903460490197863600596447200521675152797726802261981140977668468660537513699042757987475150667781217427420751321644314366133774542595601977312948478549141931942932611091700005607061986530536477346872842100920465468930660532807611165852513072481925595089527215130217633635743239079784499369908106744859931352601875583249116947373238222610688663946584403729284348770787311064095606025191587399463270928917215519745071775334217751786128151445040063779792618773913540185429705079457507441975362199423507187368872692536161318572502553029984429845072610034385658366218891240932139920542694423470807442047914559055431712383539599011778301862330098529077614597396790177178772421288353878821052395836903898916736679511141750580016024581454580593729386551817740184018080828727699565629124967353683912340545391589442961277690774610145582905433249512014978862492548776308148688609487314691612011056201278662343752000999137421970449289867151511782974485321184197608685974835763284425366576219002060658291590766554062394486625824490063573539730839813769776319990455753430394154993875602674040605495791215148944312882830122575290710265862331377585070704053594452293821591287388033622989656176922448514473204454507909974103172192247392960762635794074637496953508475670472769865183762425258790781378550096121536661411027295211175111083336443553297763416503309255895138200443762853529990666562771277243374601719491356054052614262390218891374420504797594559031111558317928351036595611856575765220055222962783420704273380346041169740523320376363342846161857733984992771965989059548780658454734908250270368402003583975467276261475728814927213612532585599210199996884011008965303469451771149271092814812206905790245146772031450450885207691134780978524139892839479083033717807689360313379259942244262782795040515186496279983308101023660205734434187753729539291868072202970303965167677789530169834725703998696712948788967979938198480051617595748438542894787739357931056577381232908889802758689684682305880709785118109348882983057689005242423561954815198039173959114063270509773960262440421100995832004335898570960886491891600078500737032255475308071277295880857504573021558303953848060473217960144181510437809524766186788802569661544593897415867320985585455539957418231922374803918609175419188876294549551497947652895362053155320500148516684046400106216295132356416159610431880051867318357961183493138829059679572107728230918341623147461578857405852893557477473905179870454910745702146427891627424977318680439266691939920192699382032800409628499517161082940779614222775997110397121343383782584232840515116817409457332000636577414473803431021785833491338796111503478771214903904685994134790360339793577906899325320702974760635005823361781166220831653300413858909616728418044012261847158014755013971417336074949818916518105158937100438016519064077393930248813956779222723741850129763434169511780843714953376366128682634669949820872635931456105013118067316387111777986767206002461930798603017023814366656173623695355811825765385751686338065391803944206604460189575125899190979165692817548296261257602633531876379249652740098344753496518751642238047834590653754757388459160373683288132747808842521122842188985818218711788333952033692239810634554974176582550618062614818622509338727974912540425879283788348966171218686966063138849626974689567794371793104646211640826864286201623604908419417726556983358216811459921551542425292664735139649991989740608071643498219570095228990323925116110016042441119387447031797438879395312326897777208047940912587391177887388398322063200351674052000449392743085555850485243273122894074323877097939320254706473129595132775600633951662185345766921595700181993317489134491281188522930100880317000652438648684356571899048534121284318720499413945241367853803597149191690440756569914553981199200255835627027234466292435999953306594940771109478259345574454734023740142298637738278834046810971556700487005910218334235582931265734006598994154170021532489868744396883611863823835630160265192911534615667463581753335357852798012770463576265681879049907667616344358135982158816137152362923275039816605685464400080518520222279091414892734157217068177352123060647720914649255146342137011010562596896045268900328369270913169643888477761824972962106728974118072519204312847030328356967704366609335559512984073030155319630244675262297590824970425155444215157349420469263440484581953222663047679804308750550937465098359335239526064959237714016925424321842465472384680956134218439239919595472154558349412220924549043463877733577795444794769556972522434972132628675363665757153058542557623290880381203838415178620411485357339966226544440089736676212626915511173948006854649688621348830931218907495425382965531109718948720347316902190865696603787922434117667275911375478545539488076408248508144624340992305882136041152751640811850068084084080855083652587692636528638632215044079261707378190686119686680270134039978087498150236509608477829740396394680731437141031794605173468558680713814309553174693092370159376399907619654338021912088480708756110530348000391585319038300411764849947651662645681315977239735063786427847194221297169563854584813952721298695004275714264773226365974065427894447240192743027448885219022582192785800553951638601545184700846489168631193242623049810268334052516319432255117281675413094057800077167766732702158322739838074491471160466063641781272609083922641670969967511588489358102611016507914376791254038153348264249817045265996237383787227412205089664003799352788055825513388445203851653636915222239112976137885905418916437152916247299746074189693718543143921724209406796151402726883164638304846620674235571594149076983227807017147783854263019673186515951657451318547723451093726336658892799724313847522352944804614671590987953641428979629442556079843611493151680633022396061621403759383477922187516700086133866971051934938397917694200363244235744566385648027579890370173322306553781433323049597778664096820421125804349613442804784531947580718152964924415031907906752874395468266728344802949297334070009176405631141958473011387804611023306262435962008579715537079423092101113558774512081213587068347143288690703091221176211460133358204482810883365085944090252626131130968391590855862361194063257072443793958601694838201534704824659642111418239495498647082231729806173264172011617555686371905426916507145199529681000598726353217259910045711141695970786785807540075043182710186467956839520960361285200551153036732298144019078929245255978708167202182555272095006290043504217190559885268832651275880379058519318258383666292947577271396503226938478971255575038656416161885769804872443144971273329992286209434856038146916992872795620614461570193325072541591470410828185568258838804538791431698147555746123718675859463373883124925040866005250216101470573772341159127023079332824000687869189833907605854298681010215989710821195718275446110589064476666240474830980547965932704434131824440872817535577305492097432282887437221752499333289530963634803946626257421061371989345236811491553796722079513988146704212038849376508219777433718375342002855829364781367787864675560204882295942165605073482920444115364869169475308666736829865768385374433214491655645945609716856238429301242296161835765540370668626047611100947552311665036990474488566075030123651969695431530982153514383310206873984936249766692970363897024836815494584889145387288191625569565644984958788830767378969467171701079108096445757771076032942417046073830060719012514465287568616697172795898330668299433172193710556339537229605631250519697647434477331174021811930224438266086633922457440376756232394236590665064150001366810765320194865389368803413002521190118537333541279389086088531862922161423066695852900505883401986629210645402293974678345498743215668451763755683738130351935383005580041026242041108898818896635605614759677182108346726436921646564809865836961252876057346746876612269583653993681834306531969889108111466524043251790718626539424334360466450219029521309082532645636235913792502392909217181036105079984163292739076191970294781973238002774773618866562387759343164258600308934892714356401508513157671778560849383454363367064795601157841404836669541882260341856991960259966283421956683253003193721737688758556795178981409052287438018582335998390920844704076731174510966942591664894651002593899506071804169924454680918701801160750229524387196785313173577660293681279302328759494338081178084222609856695403997341693369879805949896386074258368438217257754937086091661924035183633280075377927765515047073094329485804028688717579275677755296167014427273089527911639339336043714180120403173058098577048691350861876008998228992413292343997860147986474930873647978946477515063522931599661924201142267089528557261334032233834383060473908152822376829704253335034838151813802504426497461546066045521393933951395656259562222937922038029807855988419213778399502662363536016634482488314573674394291133966082419401297794376644037042419610843358507747362161531503630951493383614957351296853524201870850289702127503401696809357287088404260252065001561147781783931771367112483745747083111573938906918967352564407938157900300643180492622757452982724198375018932255271739506300516495512620015806992473433372335622211706455534717721374930037095396804304393105664587584157567780141545479747000922197545897195338105886111023257687808446085533575375171760171688647403293698548685846050723634316382791988968453996164946779355667390670901611070051700349788523583074503343163186052202546882134719814090909806143487665401432870711172887306632154185392694668585233042963068025025884646516322906079129562534808177081499139351765755889676242914113972239017934171734575233689328663016156496837860277570678925796370943308701369887245079164665261174786872212908838611833390933554045568367948948577984340181899702177661624498384039741811998865403185507668695153414574870451266464901735034437579264159697702877339671397019463009028184031099631471902222276575035520714014532045003277207660659971624653676345430561858919299233149530022063577126244888470487488699976162503840617889191580425794937887546620082383703334661792950188801967747216603104415786911381242476884893059510114916850318549879360388354505162906640883374118978392625097320276925065098354363808998853369606770484731543414202821950431863163444618590234957228221417859250661620830232853739473135892508431242532426810883269459564793745629750537175225189428560576867685019762389864354693424344997033153558581318427745401588693086059192902337109418652209952510146188278867522970015743070093540553655424469636034736189166861586424512101983189099376288021480067522823767011731341442828651557198617368297126413432228317894879763494850422791870835415624443174583659952268836429641904626265499814136714215252212531405053109340421564998862662051400828540427580441852311890146993678498576966449073194291072547624764419441215194916267411119272669608628156558493502560261415526585841422571959798896693190613385236378454155153057058234633239620234618434752800346571185708198817106040941400269170207541890566975604788808865975887025817204661616675620655778388625972355232605534331927138879414467409122708785378477602092300881867092008050272854235327436762930169593257284182091239283484691061084152257532396975213925195804044928780169606381072989972909022969022443837024228615387165633546919908189905752040846954643602986386391474243130895234242529396204232054943755660656885558779111915696486938497034040745170517813419313864713031164349976661329568677986868243337082253618120453618914768752660710162868502459151569562616306285265254214801117392498680454713601908188707321987403896130713893071601718851716385981756283190986470299851873112678756208521418220658582290978439612750917480641700423532492913990588186149674387033404011632942872887103315225748381761493353547394339896095954605973191105023774087896426476201645349532414466302214920985827889263680241509739559028263219434196770621149605331308211885940574097789965358272937058828443891745436711069453716668706920372689412026526433300733526246468801356462859234077768062291098357204997543585911016524822011941209248430388207528588709014928237981993600769689434928749658647769709252801116417038496241427210790272009025831779237702713748529069376861608135491193302397986833803639011789212240297707999710287773845032845975270590260746292366796033944409408253289202453272751524342452746113588996411108173852851364578302990038996635939821319315730208340161332849679967222421090932662913752723476178989297399228848354068306940212191922716037441891000326453119322227197322824051438300556904704594314534403249133589224522513312687464006018865696729104371479682032088058286777359397429596283796765326119041959851037607024906972358175748767554336630178253841890636813276697673978851575861174113549364187686114251328795146658193286029387998828987711767141925710693903474907265130310675419358740809580273701765891597782936281612611922852755289418166204144407147325472411647887009530058749669626088297384823914006624071147567120665783617448611754698671124263352966123293181909389876023445042161958772988766058338141031484209194877927543190619040407923933450508381660106223533695080166464406690098841319191703950939333414199738328613789697514932904737957832016340968848020943621016645290384645892165306360290390320629724120066846960867999052441913288478084443267429319419602496269991479525286540301168640280572404704691690785827375286309506452498749381827464392306904652951627446426924999531090466826428493360790165541011970149720845119966668298009192837028804783655637151240068237877480987879809262999310491483056849312914113076242754633413151441563049205972992599367484915756979685439646504624407779343973161368407413016809645830508422754892916915598722726278461671431609394902543715248978010876076049593305481521210213126029086559926279936162201230209459722846514107159130541777821964080552298239166992923453946802066591123250411123186865900521353445525883228100643375391924049777090012078174224049246743928560223959688680500081550349845308467431775586640430226670140770079578734799517666896264956134094206078518517673706113554320688864715073761928120876210934327891700762053840711795647437181836418390038859123978530038494242495159453128561319037642128242782711195075518694296751745871711365245957216083495153353650203294716296398307377878265617511315147306332343149108693720074408014498643307659261002168151734164698585906697704368990139390625715203873910903657202792370669044507077194933757693227794132909207464922500780964204593125418241029496333200275346753724723965272392402731115091634002623650163389757624525198281532117921540748015446007544580251103050205919105580286672063314457884969732762720027107377649478281656609031366555871177738140978064258718312608183928947662101290137611781183201867415702344865206405864708984632078715639505757203170555075683002167527850049523113778404244838324622862450581746158384419392672836557249710164418984814116956204733813346416578455355804449656334504143931894831846450310883957454940253686716061085192969431942261578984703497365650365054072423139136803882204035310496688914127754113675275794825061840157532738998255333418897041281786085524413212421024869726462074505273460204613306250044802528031078909601918394307019281614479413225036623779937834838140196658509581350297146849459359290302842796181976380599670514262269847843102857218243117250230911495369001360868379653967154637846640837234621573471141916682504045469946837669316285775699979139536577447823414049587355230402897535102962837807852105980658843768710363880342780274448218011433391654004437434200237683747271075333011684337718566422963049770268148738882971893640661833105532826030534647299907439098479841372726256762264568541021969060803628403586197217620134683741894589685768622249622667317353253024465865763646487832040850425945335584900971724941801260609657107597085539879621638475610085598705416717351842915162872674858993951339850690700621434550974240863562287208245424673450623037017048037701134709071161862676295474364080203319168125497796096366946986282999167887448554980274075170062442976235812571196305391830565675280370119765463787360146974265314604461874948820199955063202902308914216153248448020794871894725365668938686771384150562981759969638702481727871462333187706153837159321191218650518466552698558019150070840607961961852529390252355573561959817618705955392101206170718474859928131259767664232895972888124121777380235054715060839092086470670808002831171841332387274473903821785561983715632000413312140021672482122278313994206921600108174010143759191764627917581274687580131837772134164299882883310978448607960041877907496276526005897656655645644227429806601888713315609404831862607773574770475027920086931097715012863070244296473626023025488223319439337297657258257231019114348067007226007247763404275332923561467007895034164248491975694804236151325346607118463149710304567396414826054388605736288653962866732249338154458544111423456486452381252754567930307771727733576070541605026098747237426198417533906396807789258769723701146010673208117933222663346159925190363709050660856741329180826049870124940921480152958142065328430576570968782626279307368704245721742024748306014331943855946650876411548398581908688822172414866771112066544463154894747839597098859530480184672803375611653057037955885086349067946288839548137809358057013709887816215974985674316974697595076099632008165862349074762171420265925946917961463241615365713917858915289014422474138813400464907179241441117038399281398093979806914995837116888773622384893401162321463915355903938556272169259536472257649802880000796569086027956760678838858798475324728060715634952787137941583687551397006949116201371025723281188495329266782181263576767309857615215372125939694760917523168070736383905882655802483055230556160593995930408873609852464507788313429443423574401052241219734308683290144718693826054627245417400783476312674472740132905540164886558925734110061444474321292509805326186222866797007467831095491018538783033197838377375923152331118755051778930334231118955440063521699189140600132878856735914229518156716813046679905410148915063856677958527246868001097055613544011204964843454985187883705855439676095895371120170824312979391223450686576364786475598973029410575445508660265357298522111260237423122973052890859145832912275010393336982782121171966551069838916627664189503218391271436242078378042576788561849749799733659046390186753725918225028933620134688307786832934445348551857153692048293656024830184415046714639980124105011282043607097847444457809237995812731780491389973811463501899858360417630972239621897760197058556778309630690901836641482103415229060966972890506427308518135349912245680640400183155187376880283780570839903429420530352197850204822707442911681158441618648089509377211054021825919978281545614630909410079962235262011959831665531301324475325241248132032096221319864435360050817966317115239630053176268840681866670822383142235234279166768599738599996924162628980507348159356715150704346286371318423718912400649531098165369951661726699286090476922547041036359005606446041744699100704516328694010618516808633660131703796489891749205388551987448251163840547376776194393200842341015410695719518294433214972615325768572935009618445218408647997379782841017857376037943198613032939416673977111220521483167829282169763704175328326748456583064162806014454540432836025840201839107113623588006407061921318354325508138208982829275123875776226505015205377540794803754181127099796878369113216415689942627731647163686069364418300276877655146549639459819437250800884537270744634983319842519491597251981697530280451281536711494158640074353427647541573729634385913759042354857726693216443172905318714353026130658621944259161661140895841429199873430627609643618495314263417003786764295696927980583791548535701439449434133302001433749057566824497740487900409757680124061249689632463395266681939415598734332538958926862081020237009596304791124043722782569326011251736824164811252209449015678834520810261929142499692281612995500139226604408631353748307772272527059205814342451249887385871902984978186150469811819447698102524803053684582212341963919988387729213943755877622345377668384802008403520306954663270265722568500499285447851900903141120973673194521284296399883631450474569864359309913778557413385603807326481417287248374485742964540999337577717142646402210594247676891990109274539799799504091741822733144855007483982644851566474164441220827610025871331981759404074532838180260135005585284275444130209205924356883653173017947872442638840306982766803069925605357649933949768341866978504030570156383384596970821753803792473707852183441251708968922289043038592179991652390539856120150873072365264879059189546374927476796204656977665812615335769432879611647949571583246943494335268139288139716039075365122846883948216287735111876940045093910025474623637622098649904528197920559753757990358437394890358220755761856334997726731750511005045842766600451574421463111963768886339936883617242915055214279079113171514975725060813367500598747323104698302916250360996004860654881544908633130601339293181154920209224570801987604770460150071031489517671067310216858319632162686192153226160365237409029910510673990519546327086754085514289424566316508272764205630866021622289009084879500241871491356713955502631175931987010028624774543531554319447900344984309311848418122135305588792189149235366243540472246311915345956719797333061563783793137724776100219434576132027256829653965018767018348333849626999880899301516680570047085096596336417102801648555041314636274909672679475970055328982131757385522351424700300724896584517667082105067900816854819458819055244461572529532367213815456566549323175246327060125533592845635369784607107219559375353161497582100649205958052444758683452988525206045109154024170543407353139150979748876365322671923528959954843321756272250584776320520367471281080499246227169676950841458588004984523715713259201245062858018028512759707661832033262802869649111532250101384444336059700192106083433755605634737942727026155820149516311474560882717439879663082110397791143588158007169128165714356191711250611919255133261359484171530592029796311206714564287436073465407334628968097864199420215803354830194407401907934850464475630244809939914196472234556218523718441562945326614655784878436584113868796171002848170635793962121734291449093963741192331627733350703418262067141528695716356691229383562659320187723315968193283543483755621520708779453794912035485614845049698665395450643476444360180790699867748407741386567303953196327754833004417224810897894265071677737917037059249258847791523681510027613186422081779451709128038527230609110360301290221393921106757866482177863834158403792835210136514219165596774829874920042092042120184425307698622398218497255392996021279746064906648535208344456997340503096990752217470945564946183233774231158468869095514832610649654481050343617217183770125161451585149698984672549877302120708014993248086616538235693272315327059644985958800254182906256133030188013589000168794404577644365986744498601380310985804609938831188751727694729055845649220858045299408567148189314562574157487882897936813443930563746212370658099997332745889437517647135000640367284452853862246081229693512718451758413119738509336798946061013060910268287767911858240186143248430110996355766418425476919755243438017815877500949902173356141145056493722400929681024140337469293412107722329304023708159252099005850632012066578690606476457097239297505321738213287872855397266166157315454830520297351150378625485073816023306450341785502409247509726044902890847484851463621896829714690764355357683786462466257325451768303656689110787402234173509230059285258696132869150432384211061874520039976698617920024778295631414883390689445233152851325141028259157060107086461453141555560227264811597396266043154153917978478427844963399848239986204670307465388945670785044856123582806797965303226534548545497443705351290746932744261987430730033334472656977762434575737336481005616619725825551817700077160419926000226904791827420575327707332832556275208775401146709318658658895648064457797803201718909100219885706917484401650419299093495919496762387193168559612243585420555565520123558058493853739833133281028891488913579176658004782975922532581212051445894770081011675799063232444872945862855851274853958713069836190671026243650307152373724406336910824444384214542454983948162855679776408249529050719733775098090113221589895592454179364877891303622047677784190501870627758872167555463680097218259560047333018427016923669639385241727154205636420227889799008074183259036174142092243614646342718848978408828887153113555662045055221569378533468559225124951149485803402192929453866095748062670517420847010437896185360663833695015751997128533807740730340351237183937443978077351248081808691525272062290990662923365564589474777895346894574274233820199698382289608282267610369346752654804826257674696492750714357169990156851525260005810432442659773372710634843087849386540777706856822990664181057266875757892853048425802625066544417754397172478775883434228247814919025494058222794139741647145117540875892469648594578269165605510355652209837180043087071274299584343465664307765045696395290254694169645951810420964756429051448504766489231602894924743556910919844049739172261434346331940804782788663869304594097797124984203124048959910903567848416173317098193407623048822594461436942719513972453608702116711209627182817795183218472564511658985669157528128132542983970501929513589863512479215948818002322642429192342666636103464719712409953318493087643558558564261109525493340807225919830948874148852607643732869674536939645170213202767031679369456909015639299051522236710609211455928573039292831835391453833475559543000654796028975692050552111755299768493308869772824695125724998701414353863006873441660655588801711097867221366294946057925366764567312470975176313179773742601736124584177933106834850850101478988387026807559949945431690602096086111196708265585871065400907629016123541798329613595585029531537025580536258778337882006979139806236644737923780414532936158571352486768066633966550768276095423127904653434247217834837660023890082800619900204678038814599715421925139177929664402613587142453917160754763149160375933266881428623463086859643440415330150505318217788302595643516648788354138074343018167486717067365060194611264049880457496647155565179798882362894503365626306000086397429241913354699797824737890822245347573969233902877065956590912948610038499695092834574740530247774109984058347338218114444620041296142901544094078286182911115656531803218964484721740851786526185609039953320800633835984088426954323701850141258560879856974765912196033650647445114267212539675729812601851909402191104627502911772885218356779601423851630428790908226036804703806455682628700554899666104682228469685901086764531025242031130898458274383151277561688756966369605466862326296360961433943275357905691619093003313943244328944947862425453291186352558713481075836967167233764995724341476295957737795781260423281142743595563429788947626513862457372744124447719004995346841665002739527451307299145229908507204075735468853583023316345202733883549141012530703728629165089332076225893212442914054989604195151997280900963138849570254538695603556355819076627135574884370258461349486818417469742684055135727862286743299121845205876880299122181818696532323563184896271380220754004021439306712326260738426548006869833069018811708762859864402469844235053944047492023294426719764375217876267788710642779319631127541147466712099623436772929511186577061587512828658310607448375934860832735079886840730719285342859929694593534068705046719690835360360054158261485900412693528282194534006656970536647078700629510200276013288982329568246292889643899474769545201744587938889527709197721626482674012355676852257215059067728862436874143683576500351504664100654136326830135660397305149770069458678095694803820456494345620252568182741871818593597945898976034839537760052746425456575491221658555285990575409955970499990959296933204514112755476035320209625592851673301233541928691285902965685807061951454706931973093372525755455996720469311631674940025806413955125020560236539187005276628948609610915088879732753631097969356610817917316407719937206811736857929873456172783319143511066943885658339994874832927036202496120115415651267895942236297086794674040050148585203958596407881625692111810642961339555645780670350191153739031102605376761529417009193424369608184000075030177271268693163361738780774863321417060069226712939989939827954488053357893569634508699962486969208663103294722486944273334783601458060929569069671181691666894623823599964157294913968693437624081051305550547578639832566670737107075928205319417577477826568988027892950267277919677791035773818993693646704729170574461153890744317539021393249541820494788756655888735027698119298413766459492831369076831997089157166023367549254458932216940213699270422589584370512058820472869849786061108349636401657282686063065875709975585994735124979671123596634869866735623810154771032167408583384233090393603232409507858898902271855975831663718120051900406001500091967694635192054954036371412583279501825658557223098741000081881902725739730376517986439697422089933634303463402778259987869660829815217405513216121394621606672769070232674699074099385607548625340225547942950968969834058342617634816501198409293833974717357311720250657611577501905856532748041390339132005588707104696711711850676715429373397478319852125606355636090475326182792360016546176766217631072891892168122305166111272158508331785353894984008262365602133916056078293107243925742901512425843238984467544057079227091808955652096574724230517233675736757361689768826303486916774540255885259598128940831312736081881293318458498358313486221624768055814175573535210395165636188666910677547685213242051359188989531020510226902015153855289157288968712322987461523051223837658838347451049547058122502170130349958335765218870234936633895383831164822338777434754871136460673184530889133085742778935849851744597628649144936049991383032521013075098093741005709981908286957710192295966455616771180948278081928000095536751854902000336309464076939711423154716634327175967436387979309260517404721973203141397063938641309196853393866588449931851259881686058038238071701466451757148817030734349680667199518798486705221600436533227496908008502132097635257354798206249406626708186137951098383618902350324103091767347879485405354069324877024546035332090545520900306975492648779955376068477296071997345920689956015385767103733238079574844370242719360983894299680627837089827792298399585884357571182340797336531218111726767110039446918561467282349356215922967036963437911503067284772055436927187046797260273248051088872739339975317810022615744557563340272315400076175909352178042944799751422478667211524158681783894268122847408734326514760323048145058919255035144607850670571195032589133303513949687404415462425115218761431382018114013512289621166716626966606550031977526439885859055086915738056365805356928668420341910676239234274888549507111427204385187122891853720622795310487456718048771064957849849660844621524931124521784371936871279980303488105804651582754409727314790181504370203546831252590269088994828448349970904988432877073782109352495416741575073375554338182108460919198736587352302039328253439742714128794966450932132964612391522984884971312996859741076218273274438434269417299257219849344796720588535406581941897745250244924712359222583880882078869184289975336126888918911018568750410747749022645542626322096896821855455597226769368585056809720545144384991009803131349326524163272483432533675390961801185622789910892540122098278205470990506401236420528632753919717356220616261047420320934640714877137178444172609897847898059988412483029192997570115888211883139124047435462570063789929340694945914266507956164490990304712679349455375258106313423144824308155870447979764887699507558246068191999066086421391991124362781466984037973661232247140015132166341603311810574905792450680739106188224333338804409255724777327101640854092409603683927386678748592176399286585732406820275745171292137297943963711306820867671862873518221603495128845698737003784987587468462628739366842887170211964973673612499410066884635794376993073165380380157938441141347500207962590162748445722901946596812828428474390822551639085386784388583876362560893458761773042407189826952702025213914679966140934478779834988138006469660986919832782757153988707210721735252406817789694572801853689434736605743753514322247076639328775192494413546350481610827132128149951266356646354683431007506423408027941382221490298127259973154525953591111374078362653421319230344438614049671406889845566701954407903706938331884409839768713000907769266345769775321281915501272181068547133509154055308686396862571492797347251734858503462506593480157567855186081297232192670224299882708161306898854617626220894396863650941183783355116862491158978307644701809734860893188152926407955326759947905080142871301280826063135536620395338806290599524826183679595684897526405194929870816599346322287571304900699961893407104255747593824663909234727845966522260709889275848277491927234742482220010378739928784018390570408417344790935249935536378398337991619491417155168073340313415222352708914752670450852763893034676024410334118978688524383774044128222163584458489141646861018032124658018902639033394236810965318559273555538351531485636110705179965613940750242437928863249414781506668812282239972846245258741624996448093513659110051559341940916885639459537655179019439075163661199236516597654937368695584662599048645377684615525057420775450722419118153311409939940462501732947702084410720924859501413423686150224946087071424784143348166862189442880437947564866642280704666276613078609038070023975324239786688549219072904431810972669579175545170370694415412219685088143407981546337785442102463091406857876723497369883226597048822283422356310396076437300668166401960507789837034864248804010941911501698455865203031284175370314469536644540256986102811797462069507718625814970286502987297549696032431581229975142640965363610410351849623276219345602847625037125471812551748454914830191226467814980824089103099193188216501612275925382083402328302042386674668924517661439521414353372208992846920965632658705047696730058484617667234097539973453460097796658727184883949682178383571738576242320011290141622640303375371437191934230219505170404200830879129590588086624923166552505038051291634957368661882340182063513637358254113952088053390672523523976207897333376325714634125705453810973186025734751728226030137266410730135754046516144684808535158797701828071936951921925140808164893527475770236044879615226798434028537514199474139699509245037405090652162405661871660871674219096625165664953712757106014533550113395995211074222245209623221852451448075782549154224398789471538336551811375143079650403894979383988500435089572612258159800085164609183496067789425282077176469875465266920811415513938604073504882322425417505675981689125796785865038937254723934977331373961124509391897736737408693680318362951763200576394005225079969940637571862229615345658231433728414430604252886302218093699542104805831047982198580666655640508703905007079209284649841975085218417946339606851123673226520405415988112890708109020996149708298136650099551673695657101502874971057190093803517179014552557902060091064406245767254788900338292146464165023944479030054572288420051738035183559954887072777673679025820765251198299626210979148775856813130856892269991878428048982466301985961425618372841017145952938069045214794856779326722130076206784217284205388793902198904451019272890429964236539367885492365300391140550454568733750076004487346286509792756372930522174984896155430703001687627251913882220602924592145810092765241478083725451788407670421528563483063450049064534065515735125850067765648389784391164500720541434048514517094026404329711980594148526541976893192131981828932171985341852677343439000373584957522401661675994337277987393531690825263104587762173414907205870387283028437354504685702451632298879251843275327395249478273284802607566616074502738907799919893025341626015182737573130233721522854889008262732439108311131171184367934798447370522742284372494130768365286348286955954019212934789103822350440377442973709671230431909726216451855316373781413950321182572335081180820529119535024454635251630561836338515978726604573324945683126613826090727742582697178351322260236176200451652673799198057242416248342029626553108206280897737814472831651684160218424588149613894101138460340876417534886614521755185081588763643027238268883641866852145517461424298342744657904550597312302221090730608010760934842875962179354987207742613907255950845581785525131271282237034702175621461768813369555149007157136835982772786012325127316916044647937832276159484949238727069345515413487159542502704523715104630906163067296329005797519219717184495333564899944957628261349412182323791460828318303305340801436000174994524421309079198886610722267273868243813808563998744470822900778263615720169022627729072992843523068330138501686545382500753671122414845871199214061655193524679004970329757303570595833707607736082548123654523882947760805386052192779230219525279777142485424888306773803216230602316476419850342176733979981755073806049484695581524651373461053149163329481313815835878974070777501199944811991318756113533817800014313219300444624489302990838726242898628304330798200240184813563286925688132336269646800080575624831289239371302238366137383070700003968456522353908573713699232541292107518868427675265361135146937988775403225945925320549517852865380591274974450751581108169201403361540561121892794522076794758878514855710732904580127283457125135074849161573501811183287717329388184044153463498307386342135325762239777126549611187400005676423317323762888598087252922989188023270761074922476389035702789522966250223077748880170806835044298139592652901021581311962903654180847326693497825869504422349415871821532029639467828139530679387037350691587157752092195986675265736479900148939867088530707680221741821379818098953973500417263888206683151545616737597365533243948633541801260264037119624622232721729560917883495559820201456401852923199838136234727679277452221733582691141656938780923323423123921075910516282187939059647847612234768066317828811747696020826227431666516437587480699515100353621115674171627021683638027220482845129573598401433616756234256686095096638376276925275815597194119661877147796087664590185861975462148732290463931579587773731102003872286244768651528094563500532044702125710065735468221560186366234658856541244873802010842493976862088724088754378806012937234465978514312785077513446188788840657969587507835046513715906932280507391509888605280504622721114184313459801216241043165990366020693604756974624863573931689289608970785309756488756535237008185377426992214234980028974329509417430012055930037082062972971800127675233297344301079785238465149580710893192615358317386867766795614642870624507785932251401300511738393904371672797779055463120460786764397351980771655830339677940271674716778378457599185248578460889344853220387066108806008568546323112676104416760427368313020917168019416656114153888473246599241824016049714829855911792690924549582224871978012779497215646066827430301352395207538977911598842908463897983428090939572810056492586976772154856504546339899047153653408260126137819346246952359048346015168997752563194123579439595126895453856476078405556765162578591186842670525031473690731146770927128312723249692359562901560086282665832037904871270979629182346242554028927400674550511816403231621012055783150909729577078637729782417172908739607833772155135727874199650141882280481472792641915515409420967165961129543292373096120301944083891398215826764075278860361518744528551104602744293960073130893389480566151852539823592004064568140267645467534204774358991493172646747757797378175305122400822868570166318049027444293460644051332538619925303148609958046912910441498125319135884671594134135483221131189320085611511102338381463132828186835187267547088805034302245419360425090844332991338581836337497007949494908530656795847860253854084590374241608042759265487123705288978128879072680903434871230992251305815908113456645603196883585398674560635287468627986389949683835126668527648311885475750116950177962446420751393093837597825514535110490695457551233648974921865238875733436442954872899944333961324414695213681264352833665118484506107093786793736673053315007461312262215797611142666371685515111268612057741633136752059318947690680710142783868850511731838581936801727016253958635434463585977458313487862526861003576560372146127671155382502739991471175829518845605507632007521740391014686184100688779316119748038197131485242469112521824710679366549903467590016826720885503882183387066725803942146999148918292989685321145793580494583067408063954112189927664942065602330245509422865880972501380196849422826122833783171622357026674525047920934350878930240652082132207117717078084120585652330334913572862151186255048272557063000903746776520016001160179138976502509500840718141944636509929936926795898512414970439226517606363511387591363161786394279531608976726584305294649884446991371583313400479893862837910156696035317904315177653966991085415435305842942445136045323053603256313460436660361418948310560155774147670040272082872954907819711161702880357455311602227536738966055034923326996221056419644522749457113485883899752951344559090525381009625286940329480947474233821119323728520912710221903083888466113064897584876536911275539885026104158846648913835001271024844787344583756465907480089065622575291971762331526101579760708591769966789635716637925496567940701414048545758473692393402398809054904027895947500531362899140940738863697826541838596337031647743888993859327434278890818996814537826177877834755214688182300735638406885972478722622174500174623366822036590225178708550001929126869494655161484082968958388324881610743099250135258731849767038370366761059581157331606056466393304581561503176052608154073932239601307553235423568823931370038077457535697152636274707400697937099681514396122485697255239112835086887602773540772222746497136391172929941123223631292232723403780744383120959628890024957001182510447037329976374054683646242985844927127134306359938304951406591814353249936189017956049684711914727696266850713335743514764866243799271386176514914214017211816952139800704121304936594571344572922479329986228624173472984579611258443164119033724147882014583102067792136261836009235027925924325339754295736947603775677516000831699506627265748268666836981774635456752719819996552682416782987452753506748581501114112035953555349006527077160447913814219648733781348218695144785359910104386180664952811765195333993286113705414593757570504661744158664839933794357672098464028107842729773967024807888923865179684539327001537723925464501882635374802693408668888586749418302290764718609882726172259696536137997776918549975418847114908267155205247739702811168017015545153784324858054856012315920738663869086362798712722123927747869704558300525651846707965904205102174591930959118410931582164736284399948074767968472612015033400379592593987736254950967774943253408366903886662578267346173389667923103269132375955529349777612273535649028231198340988017065492574837296159063919861195549583321268709105290429463042264147987448452761116375808243909408429313000577236736171443035125871206205561746059851232241352307452076877893732051810917508295761623913800512883722144119643035657440901112290447353431008285205239984499919529065285913546962820141331737387839909078564727274918307820178177724915392440752561755825744521135409684081094254185971259397761544103469573453876271637771956801070855131483647507997340576370096557327839151760227282891292187514123636217383270202328078995619356770129821386958266613057534725441096081992420412805740234912957796921862374141456029661315419037389545384576725078658427723148750136610023220551258688647093486720505960573949294524960870741260350059164423549279910144639869810069373490802029829097146616593829406794911049508319824358994266576567409893506633228599590167171429970055915198137267006223191050342062880239967663238300065923438441042379582085786229123817715627689610267548315547050294843591846427283558074416267800800604265548408512674957562521510027259554999134616175875872940877666014988147044855711763971626983078125661150026447873688791697858484625288346002225738909995067385436053857481354931547928194917247159403678542918964626708217555154004190826725531136150154198563320808017773887724856985560901371623102399192693365963933723046557653436035504115405055757068468169228994255817071112382817721273817427399864472722714406886593421999485897631567058211633175520803218361728788821517750099743734907304805118760351414718712141490646547859849505189336692165367112313794476121047920845602337545220630245578892261540685286325762290256523666534674649761134376919034330003655880638275569735254970545840779650229573712419673567539834452014619170869195179267700881640928870482486702781293292429940637223608742720276511652022815819954111395263145802989673008278103851119690745039719943449707443395949324226345835567008677029346777794232366672765691883439411851215726160990570698192817718953496751371863951698574630189190372728086956075914837945363330546952728844208432241403146810565469197444288938515956258286628419920253886096555411674134854457196952918351662284453798616695746020210063159951290341091061110941860819977405171100122729076061147614492218046806195185238680600191597664074398349145680265529762160600241101474265984484259368109553967490096514817118843618597007470831491093315174282696550447083060210247092748749857813042122007734021258509230499695427813306869618821343801657067949354355033357859983941298910360854159657513044921116580975688398202642703876317531731924281431197340011681135459371480543775285362922996686994881225193692767093867370287729769925446285810165409293041832690604378045764817684644860366989592681407631088895397003681035481685839752106959814334799343013082929195701935132523368965634151710380606972300018396140291571191156317261340406847806877485384585670791269189769696734038328319569064301209362380865193593161547135354227396268555106324656837349577436875608894066083114467429997002936237351407006229370043352833343537131962131450290425980175377922555876273717776271268548171547788094947059548072460537288872182786258947969766281951412659481721635438008720025385767540422314497765362046526224127013056088591541677506569888295288524445509532009371566405565407383828544379484830132192119772008267473995756338981292247635276080267272069333196958066519670231823179429655970070918811689936543002997221379823887665185316684101307016101598135296561461556445252437102104929133340730390591650765383440806736359348486847856415974629261179640709039674930563139952578201302896461055281323519697999280119276779900247158384053483845039156801393527360425253081868457709882960268946794955432912332539422653518912611460222086279629619052059916114503618650962172985338105706776349557132793351678512292424111710093880740317787044579717514911460752405643528639320714213094178922132948458794101743247229496151868421234804569498949608493197653775555905363366703904951448394959215124611107965780320680236603934258118692218455892810198594845764870441773619901799768126880726774746539101933591506984204849813136714296570868881307353011633474809004460569426861547538482217734772877579804229797988960842501061422342402715607862085534203387722281934978101214627890661279766580333391808415933104090814724650911462621085436730530609287297376615760512284491610096900316458325813292171073690495522621599729225931917925277320814554012611008259931006087747573461576945604373450519920118669297786013416594893023468558206124451106262700751735786048230775643145285643675887115626989436842324816099621481308016495222646662540907171962187735739669145057760279500454941735355520427482784662807158993354003071349326453422469922842963118127162971506027984459201354732755554863342069988858781746280076490957231242816990869015606755077602991821449031131137003179373543712345040534271462531532457480660774310088035427677317824412807623690745127486173604570228509130421292951083366341041114083099440675230690371374741202148436171353038336696037319165961292208810341098306243862356140009066485276593568287462308963319367631990413183374525023713173237982223100157219386446487978929284645737092080409992454684500269930859620881236069496472956768990430108944363509155050338937839666227072419846963142770506751340596375458042643703824941925646676084971665963138363267748723137752204112514412212022741503992507317180119742052875017317791878454114134849020525561586513239397355259158613096534589041342908371890615634954989439356832933297603820534836159353991929130804795270765982953945460905179084182399688923771107606386482093191091963422102370915287259120082851326611592861466512580577575858186191888921323562608878832041624935004004586934127489789911988907162382552379097522482476470241369880551976998279528743326194672719952814177664211627145002016534015979024881632251150557115063422598198454456849876427327155154551921306434958404541320569646761774427486569119119564933150408176543259968668272779211045360179649937569380393899632462858107725116594030571605559890198271203100596744956800467531632197790337979646420312454272159763177707195930649099051456054378016121178622296630095620299839554453277748105222580822386713147427551029069660441087349185793225416217624656645388335764037864750213191408535279085444709703863075676714885419291063512755262255220853842070657716919591983318088527524352586551347546409548152713071549508658727552532074535136543513287188196465874837196220520054464381699907548702153695014562327541224143410326815930548393339022462610486305537039717381005263860616630377863146177632789741018130171408403963861968329165083212655359472570786629774770912905776155519938542853686014320846485915125502795956914798652120820385525766255989743758431090545565524741608725801894782496982712428225525532368821765285318397696399118317020980928573117241327447144170261092857973589249879095420885252122437906982691717142661186222768976267377976005096464310948945491069449749628004282319878764201745608037684398045413693482659634856548912400806809398644866544187396912705538746602196305661563536019397088184422008511032627928643817281235626442864673504197378244782428172360106408205602697505691269435760331798779865876008480394983387148603535459837566451904891488405030886847520353358166486302053699584168714850555288016512112562190278825525928933889234099329071499186493122211457290406423550956564312562278857737778437936147346125142721534592032843081201854999246386302335254286601408812831020211006865975769478059592888384267347538936252269253153628597346628711391839277035219285464396040952627665375532521242611840079908448443594921171575350998561890525771546340988382172103706380997445339444979128207476083855052347964479711896169818540092902149753205566920455330733562879643232429881176994989274941076615418146344867927705265367958291887415899774948817578942556674946319680472466151900383526322510279077642625069724862420032297325799509418272761119964835701644206444045953656780366246569912344666487201924798087109010901033559168170224169870685970893543622079915096968879192415167828755373112027710880905947368440936767516341370258341234794857109595991061290506909561950441413090575237709960251479390690740255258552094497334863418976541370578995790615742681742778839210293379506305118466039771581134886468962959923459085164918544845547287250052415125926349590571947460006572232679492289459835742292667186973479006459471816981077207027733895411527528540024267519402730413511364471686246560249446791119063431040196439187420871720901884792336046144174326259998784389973504416475291391572361470852173515362277364308242901379633362311349594346559246527231277311847219128889267873965926596070903846799226019399413198022692029804567219227381379766801276074076876542522191662307781965985762689601124167053401215836672219804988024655611023557979726147045953825096795878685053205196833876833225113256794393582748057740957932652498501615677065742243986731945002549273241134766005175164913709878858384414804453566332780944516179456492019073829375180239743970974758735489511332751203429046912599615240412087261440338459138844077572712343966210455548748449858678492743657864579712652134191640385822725818765945011031213380783427352139811241554057380907268292270040726573326427688786390834257995921019038532490336386759427398757457623002160102474894590822514086919697924556434410585092803536413348896939232925392915495111652118950451796108355914973747060899518060074413325053468163782608382013222225224399996548635792461641758235038288225920880321725649337497347900897101523286097245653990865090321862758559386142141568769052381807498029479923300678960692980284364101109002091329852690962031086705568404276885766913983249012591315508182246035799165616369380413214304788066690301381242194329630835357459473917708109827284994710307871280519883725151975506709459996652153807400300344289099354784768433065256208389358378211405132812217308051227351082840888462855272204165136042770280390178285223907933223380779401396350465866213972398880699198488193507781239439462769856730428284144890510392098180517936116599887891870665471332965119595575566631082022737925501968285381862106017613367832297360323198461658726435422641785722797327803847692972453993404220136504414813565991388381659583865789733410822003547690481837898722741763749371564177077642791475228517747180038406336818114913209415593938100916931483337006582253240138404531052024754617464865367656140624962628696187861353723882923242757716855579667166495109276790731739793995744633798861887856231108953372552972354840600108542468439010703774172549496940069390173569757762460234610201949206728835787374694971469190038791577568347865896064490204519631493940325295011732507027185810874737196970773831985151365856545192178484056436419806676858644458775670533665948711258223217268710194994085346632339438098691545619960485890384997884345109621303236187054814579547368765475352125111415354443222081918542854148900135933419708793890612906649960483537327462973567532757203630291555675190357185319201138929348035195619268227828126368126258531588917029812412413861127594929266273382274726097110919596604471142858981362216494111366417376910686481189143908573595006571247540600864963333930963345762165962674564600560623827437902126092594672922072887367734122397262031743968711594627322182984334118297249720441684412188966230813284208794009208626603821483797718645329644247497265657382496663106399578535089130347585690134467747395144817961734616326216002977116383198002961464858080737494673524925446433697492321902467067577670650305248553194773910577923701503537515150061436405243319475755609926087835910682128330383433355611034417827895124870667101450425098770682994368529011456079894962919770511857305561678250135582241575851778995357568641357298112601567654769900154967339966762544964987983705167250795888396763362182050379763541219219642221048967153732571760541821019504232217419574599314000021773696274210968039038280337676665129975309465891642524168091693990061860966406845980074582416138772626847847785130793215633696508258422520430086334218834123749404077221425900298271025669736879532379901909735802036448788579856659550647153588401662959528005126173519816154050903722601485197272835116142355792119940031621539179498979667445359290626284598071385500066102002996877715097134775589610331547686291622263885186905504763391559529411328288007075465667482629028133239256797082656772251328908309508565735849284417268644674861710079769122499898489219865470194466255789858445866366674453620680501931648807166479496241379120881029413894536338457322240384741802914920653474303133268945218776177786774655771848086528452672429018808351405070479683355449849890992354843482121202530650380423859795147642769677921058491727824558240796581806734376732567532285905756128396670214531381894691297675848931167855974100253760973637608784166944510810957273972637279087747468180185725265686888866312966291610802495520310967233311192385408897591507822721775168481076888724782588510125296147448909454547437545989951275542040703800178884665502273616299082613429732782547009470407603064379484491525040076830364631919976369848398676864885347562435579255597782701994473133062662627860884635361094090346222744794353565437113351821370425736915668974710450296975085199512393608381951968319660386967434657924015690869537998990196470715620010470538110677498760710950655821532155308029033568121454158551234236525714709501135090543633031602576841501778480151580258281076840500695781270944579478188407134032380512672773002682381761319759440265911012510167739009095472704874739652803025215751451297508394341985937422799357256305600180364304823128271955319443067285455629009100409679191430554458574018953746323000415781294078844696713864269324463883667387146123089513847425903860501635713074071175285772986667135903538280891760294152558752550589406339602733842690092158763567531184267184736839142014422162513767625255085647855785036074596051811029588680179222484672273012042631251724134494465810403196501161012897795454845931774155008202687606105009142863515841997768059546659790956998527780342407182521831495232473365282637025201916017297407584085347445178378062500799774534889896819808496689765293551327607593735688493040023325245546296569103915458419349595180930621540275960139681082295790236360340619950211197224931819335010392686389140581705740883305809754553583027360289389854262469427420612520696812724274016240747136338670533139968458918755984278735244239136669984249271294133490383770711692826076507603792753938409273797536006178607922443925964206717830028100278665681526719674348585806293274584832565138207275443249518607066998196169383943243801498809142155204086964028391264125803060532537838628568740208187640437274651397168616029063623003706363192961591329061315941360220906934406231175944922614565852573385752864390348825389170561104060483289747950127157010325648770715793405919094093296652194141756203237848724823188643253743877883344538282935654007589603766919466499370937762081051203900604799880327793749602395068474329114626288509900280688588673431394192705239842699579184912478482985431549758344626804498319223102137821640497238066675899146778465432709260638353018971404527479626836824076241744079842841263591003849103313728010437204528561134052256496337322309997237675772122224940190386710166396334769233848662892722374207034907852430875590000632829840647152048603315248568072958105818274443626455966219123732777043366851023023355476518362465368129853216165771747595591953938255664567902135255836938362231054985334355902758324646733785878247704223154429092724377179316257688056689465421968000940147423201473304609528128860835698966120237665719162563848137151791967168755626304589400779133530416176840407250181184601487279075677509366966897129922885483567108146150161422605645296688404065422766341409881667292597228811206419226598603033419389841758359704789595055455346396597927467055199878226608865197004699378138509233126708857944077910172244877169166417183637456122114160841592544062989903833364101220177948422527381284478815839324555269305421181001111998862900611757971828607816266117090644164824200660117634261892103739410301892787396751318344942759210278686465854008485667442301384705624773434275592133306354480262461195674656270993255907357466601578003736115104149433598803414321934012525407972995488199369861505308642898733598877719512219601713420711673655883919349903431242746510102286257352112449624595980546328629669734943586290362030865721876729415548251620055273227699330064332639241340333482448514730648645792269020173982518118560900830935972662396667138376269284932804270769542144831223952485703002739886691676082616823606233019336512224604954108522104901581969148091583664556611573330793024386709518536325326746187635770425432920083779472768167547767874860019725640679981226371895965923507491402582804208837828617990447930208933211180667795986910820819794140429407708388312470685210890323385599866654994126098964285837255327569866517892343718401607046523135744156262684720830772951577087450894309032975129214525126228781450216934716848417039464412441756059505411694163187401436730587254290400991802106631474944271607537962409928705861855323822894005384146119377966914797931046419453354776773689869222295704434691481093674973670036966467376186234087142872397556491487729836908783753637753857452967662325691711282101563691214373985807493848514466934837377890334810364938242465261350201667965893527908097895227912989468450639932439752841418121087440245500942445901642407331627834731900605475274314553317938338823770794686208828085363661335810128918815389599428621078310876166497207360446421339596076695933288012308575987035012875211367523059481261838357866983457336502397469847136687866307369862837000940310623080934861165053279513240341171900131416057931713490251023868143832680383130943108647590277855302235243487063329029336793384916740889418689549122013471858476863777502409157300987431031740066981786347023390427018950690739517157867682703343462028019845161346587944130988284418065052433359824820111670082264123184586944833579610738859007671008792190252051812269538588157775928700496127581508430490909899597009744639234776386279991012796099182132639661838797745687079604019121012671999729841777655707330081560249662388026165391412306260175217768952756355467010796055513835280716110640027251122610074970327932217103464353554509601476081214425501397059403934024673299262310940985951987174254002864218153349025791780812062594391962139036242476434510135804069835927376323804377324528766519841810728882893551660582183754412884594907356614372585675797681692264339678149408106375106026654749272130957286520299779178740492477887321927615674281322402451409986179990775469967011239068937660444760824444922069117165714293472261001666817028637715289886022128755668307530557046740577964242067749142417048669541201747231175940227705035871669378167406980533229925068717948508422725961248708731215307481265440630092470224516033810158093953374906723892325957258568784397510916236944337294014527874461420674954797403361979690759040970683303500685622020667791167066728462598993124568887668415545118043307813397143739673944550174649129257768373056658832858624329968797521811187358281768656288328710672816134389268022415907420297791053205767374780155392399063978536013288223403567186769078848980187466088162568741184337027444035633184034010658649484937789332840166756079051638274784087782923559971217043891085073439375531441687954610401541517751767460925717244607463349134597640271026673404454430193458355563555423251040913252723883961149461589220405367504887454482224709493364730706394025445937447514129697260787123517256456176032447149033904809222737993489292796894372456483840928899433155689999862670758712368161635819684224090812618021909876175608350364705643210654766010447729899957362186019156569581906976142366202596726586324708593598457144932966311667433148812416474729045236097873575391600221013643506260909856443324101636932872776821898859247297385458310247511962070680355936085876808846891066258059062687569550328545825869403017813927870080996959978255200186784777446636630346298856903379890958112171011173974715601448965570588012666989196357512886649478907969449319911865007322967560314566637198829950821989367294796960291264915066068491113504326053845533737524530825296840643249128009930146200822199095961766015081565544249770115534977096785734417263242821735952645397085723376708938000360824042627077018513231214597079364098745862084546579308383804375299897151785169605040855473946430168233552504680581108245761195731255919472812369803943538061173406419332311979128539672443870060171247982894018923258014306779935750563439381298211322127476519073706407527391129529710306396992152750308044432843525866861680141606107393701322920314719280625363841277904324873517010236031378743822367622480359587242910085094254009442931312413544327589821977206304656637858553821656046092912350617014341036969881216172967077047267055827579353855973005001373665768182849093284408477745541334897762804894345184930337363438429786035416929790140615607880612912046196911418096240264190219891398338067108875888535104066467231456133641324327942889858078060590549392738124906560334414333437951325186282633539318583830275366447166475504754539129263291730030915150066798853088708522152605317291154294834022549324427383129828712386017431160033910398067567841155408180666303721339156488878546227025993894675861224609492882238682726089618513248119132557748718639476921951970696402163530270112550336359439657196856377670895920712628947674416312543858646519981196439847595044848895240530685589358242640926918825761970854909646964912723442740969889747389130347022120792531406951040651742898135635831919467389941337907305516196943909210668304474442186886309012299895755399581919799289270109915780734135175196950791258442116489301654004677190805058765431305390247463712194660095425679568007642217952059213247581782352689387376770070242166400022944081822364797150108021095577747986562074204852022996497954145214983814679387535030406977011086908428170114058824216038553576824140501119284770054711504062890917276157344741641264653161244962731518233333648933010260708065512015266208849944116323873581843220934386114650300008427447399347733300380536240137216402251011995536026448062890847021125677212068324609580442373167348682262236652893041695987153843463054406047015228573912036332308886929822450016138182520363791687414149538174371354734735451004566384228295691255376381592868983808612451343762405706296113511755987781365112203218399846571138060053508711298882240469398755242185300223348883050078718473862342632216147180151800403701721050513242389920424216676327226844877176087873050161776710432129601975003008578010731562038485641096601111838606957979985895903242572752140493612918265924008874934976507537398113910777952706153398556967052921146802514444307977052648591179342368648098871082889311560018258941611981526849314171493315223619603406402462571584551339434542477509553369572347674692802169634002436166212924273393821922051976471552923186873284289434670072932121474546215856207679462589619020686838524606282690213586763235106200330531936858429500456685238403219304734338673666361870421535173516539886419904852979370315584012522301983105433397916949602115493867769785761748890930481487586611342963428526806286254921139111726141038496604682541683001918051662183307947617119194971716378803385988650035141063845940943478359384925707496136676885636430432023215813016161905944558919083746841855571394527645691927181629817794767379164828343164097224872395811592981819607623489619545162319835286549433571395260181235129841196744692095207801161773487239701979446623341713998806613982731994074104442193226260300887588790317603595225566019564883318327506503994382884450239834230641113008567989857870708120499068374121575099132142191145860122599775098104407072999180360768855147341750448960919268252958857618872534072572762131226729918543357968998029885234870094023737186908605072309838019219771841865326993802938003288394165132342405445932537148768081235292871491325779437908131096287370710873359763652489679312795080038058337297069646727963731873975566943570920912738293012509411563685019090623396707362627188811263464873079305870915025555585502458990422511232371975379142515267782226340348909422279357379784544289859282926191170862043797234339215717500735391603237459099724434196036952236113271509909570955901855193482453265367993415421680728471057729427479769113481962395904886218283993284117010821305684394983211799061152703890338469278207560197540991064011753901962858238343005972113117298978862709763383010317633735652939108689791162517799912452044215575990628305405343131503919494150352180450925074464926250753378819695703290321187957452398333741285913623613804745501983256599987902811707378162907233930543077413546479290531745122524794897014837926852282761706046401040732017873925388433955244802454885790018640748681416995935550782135396182725871516819055289110495375783558209953756374642241843412439690488481196473373240875923623607387833474994015321206598257862967667346517188828159072248486207473372772325922696149092132559148368759112243197191509625133959365765496030873755956792862841757510455629636123796657831612588392899125262614078872963280327198337134701975075522209846628996703003541939713536252087493023988483097841467921035896335261727592032594380401635375491091211532898714116612721506795134935951680265709296868908255264732062699104343792307585788478381418712736066322200029893080787348338886314372526138526433459639371328435146284933405736632754265585102487612956976058100212143754880439320473382101249387753252171117631998187253425481179548935942159162207441472343705975319760848291162257102282977497211012801488007649626181633040789925942763002153945787278686299336128617607108300927900068408292002112440530176402878484669482840557460199836308303687566944504916635200385852692702727229402949567758431073893598225033227184363245726684658573424437235821306235850468565010889092576582988815813816841732149688288055643386168546304971042788284417132181854343469984764108244847761188997767118867957037226938707401633939133469426849980581235673502366880010820697928032503542556733598851374684876005027932894474958742914743824376807115213714239590823747572150906502304187169736589297159334527187137355796749442677285178738282289434647049440242559933245575168560282846941799215193673005711221406129114757049193959007703815373362669977586491684731824399214672440823739658435228665982097966875380685909206636597877866641892074840361067676903594082410939511366666644462663546759194518821012936040823044637431721259283959909822142397645063273311951701908588226944939712598173781780786343778745391787246822029750428112965803752521992176403072531472370710878756964801749986926607849375258678194186829481691445461644239387825331278277518859112228230201859047984528221265508664257916978382550464696796486212279399478523764082065446011309438961732161967004678905417496995778636944053790640958287085507798375347199157993182445506488740814214745680703671128617447091611454221149234016521271500379921865685632522707700763334407218199859995624271527583463817986944732244496698524944880850010419397096026895607540893971702058447836145131253460405960594913393709794021128414555927524340257692790608362115042436570498421613450104120250680775288113396881066274688087327360290741956604099824266090585989683575670193054162188962619184119371140081794644325825269374294451483009020653892401479624139282473682062561079858972345891771505279787849412732334991671600395772485107797231919822577309028730634216467308588537318356441596102922167032591858705725956430264199335454933378003832696864096755749688654300053694189964846928092395093657512313721138264255515386918292085966804690022517319392710222406882962263477018591131396038397892904647891789482568276340524647838440979356244901366620021028960675920392308533012496370231829889974585669861588590076537277157366226064514465146816652124717821501603167159754592827953762572190609427367910343006371426869164157157733213733317578143934971351587902952888296483510142579780049748526881616454932502338348570524324582072432753160379786657090629597166236813914605375415464029428414062413153609442406105436887630258462455789058656299991867065116455855482775862585165415529726683410688196092557986847156915017854332927678756554163635802922900749738624671105239930514177061758023290116357627570031904110279031556345798595776892985694215262173938017812109261180972840819931358479800362627899609360293841734703818932562481501347584417821644426057938094573099070022693322909115621085220775732115430837587507889391552321705592063800305256021767203572056699179522048020143418161788244966452613785977641690360375917282838308179391466344015797950602955956024590232628670869917448560486347639025856390081403568473181357622272467279772125954885125030052692639935718227642825515004469024057354224726626173764441088883255280443605813637084915915952658109151692182932840729617989016523071197691521010741750960932327861137514307034328413285298419474843534885975356962187268128036665085349903151190891152063014997057810071306695549162569246746636462757662173454086148014799317862497284990293400600630362422887469553801563809422111889746062876741806749294631944533044652098928988962817437895317381923660675400431477465512068859346721190695213548467301887927568833488695091388125624477546930515503522879364980018287663584369773409672013171914519313912871053218568910387693188579731323711645582851418799897564354800123235615548314148618606834504309971851939152679859670544167621574428671503840127268048601320311840718611610095733465466157461810122598159423851640712838634288526702689609704151702416103207104986288783749496085493913744937556597183223291239563072651948524405207275466609299523922651614790674894630460676612513688757709935325875194289982344940706813240616475898081924344236500695859444202468619331456924016063630152243142462558717475836614321707924646869527989296710795530814802622023417605984392071201262685331823977870347508592092589824803359608497643082449774454089380583374758486410808986870682349639594785718635994512920125718429799310107258832199334951677142754071254313431018040401972084961493518641061119818582014719972448615214472705727462130192257529640062819087718217622205729194777837242468957247253667757855743163194890155709354761625171752747564281465858714473738571885502237973705550011819173695378635083952743836744616259743719136746677543597458238157552375130998426103146587829836201722786155373805467404047458706421520604664618575229594959571304890566886533271388320188949003893804905147056952727699700625060331452878937671820092571617938826153168312368237018130688457198449856861996906538059176267557117057529210833529977803085393892246703241602398189095387342865702291114742045641567769942602788887811376973350990549722768614656062504725540640193490759067629640114142723153536514240768604024647417179413756871649649887711985401519816448860080285585208957082439546567011149226156775115887394526997640580083413101579277169721950192678604173046575427164993344920183770102205948980453312558259977828188299045181764803894348271539385898486120624742812320777116834382686780815079271126971969785233026812462719146147416794428450343671633989910658318638520027844243979155696829931288271960070228014638624539518224475730270629005178772128857072374362022407685129262855255150836788562554028809522306275896230650043535662532928718639419705258821156779383712091927682731607335538377972706208063042796891351087409891260894595764614252196206135844178897300352898542734225403256460721785075871325183384650054581399208653344309376968594835555925224568148495314678074367585232349550081544586916389593554830858844097880054557856764144284530094332473226966037869090681020246102223924618184522400400820951420466887610755043514040418205310775287073099848267739963130864458238426552564614245022681426378422776640090278812037863979883215965922280212985420543564059986546359332982063908635896591895844747519979096982077794691368914434301232153507333904374819767144884704005984521180409408562156370501173154992044798054846753796407393609281617651865254059265642761929226458626088621754846139194714029481609575224697149062550653856362016124935770217030615590047009742448466041333522410860865618369900451293799575430411041378407263981859419146331919931189742519475286198262216590106835916470576546459272618088865974952802612452386504900734934322929525802559379657440503394693078513644446986388826013122132663983281080277056124234375208214124161258140609838171601279051264834379379523574619881462728513492874860182402751846079565055644079572083636648003665987537680722555992917826992211425896800850461636712286967242806093968073496241301338383151510759031556963349302363629860117187431488061118249226986509420940630808435652442239490128535962695181391413993828667056243917818003227697657855501135685831130663017256149807471481847499639590367258338404935857869712548926469280996267886671103529212868646456442894862392564689084203175995743002870133382338237197033907152760584466097009959885400921160200902305283647361628014221255584686270867550039691611947727320380999198359673719543599302086222723465218495146579092026342272781477412697890337212315256000606152026242635085261657360550488603721765730121435631814436322603066958717866030541978023814041751493222439820989084705096569639531984663197180293628684199661384910536479171135542675231486268369142654877971054799339156236672049494584283924936485674266707790297382854719009415389778500683539209820772673861879325725120137161645591282548592018407233709381141032340807619271666753023650181420286081203910642644418199979616024185519508990361665798995393469319655331513826548584887144022644674004789428575939729761809906239848012219768753309701775031771048381459391964248612960152719936780837079743387936931987980657281170237813501841281547757269791684754837532873209661989953456240864802824241531474838565368463719969476475761602848987378148077411618940680009047188435888083066717379787562312780867817056675245262381736576373415683836281760863313779673153848304849473236357996638522364053110687665344324985963798051753697708882428515173508762092926486139142506590632700282267272756237334041426448644149306593137323190566296007828643095432456199544562577250655237072587747717640003985113220305064375836313821295449180824669419158839730338726723155489160859735191131361287320258532035910032611934074831673093985749781950733476447601793637128132589569995563245477567009481868185271188867384398849097890592110862421435565436580880983331970620105736194235994742181104719106253839576561001101600076496182888357881625264806192004533015164166345812150841538676645523227230726128418144619296263619637987853689367442570639716103481236286694820484699374161099875729844001800085570845449491109760105603187527600243447891631409491416380860205128218301702085720076282124599855746534164034344149364909974838503452144300579120948411332240422882988985051213798497073602792217558657254872887777306593088163060145760981418733937986817571005735585603701922024219596972140261273612821269952457128423231233725251433911172207394830149749004819716300554776987184727248613409062427127858786655632212316627147197060895177669105626975238616700663997435958335320065219263046271267956157499580887454703869171110364400385112948623853939303054398320947523598878606393778015144847590953380683786485286484153094028896573218832910274620937675169666565501555537810974810293662284150320834935907511389594378364323192003923904614178968570308363082487345179565881536679166727917438729535120610786901046766193468941194256608834210898937067883013621097761705038707737272446520484649490647887758301964694780408108318418202752483684106125383191582858315462777100958162062998723870671333523494770847577291594377248633611724417824610489597609480062401155279638908338092236671237239126236779344275345358382293763296301189668327830492386641630378012477451710147745589059441615619705914974701431958995024314658340433207674894620564086415635788999501453355139344978219179824625349934397242542501154104731884260168034745134866278021137235725349232247283290150203931258461152322017981653836551171050289560349492741854757557210745939475475013592073670526201915138829789397263707850842477039424760712455909625470263027714050186079350648510594630991371850548850153846496879839449213906564935070079376377241583553447824198220850637763920604596577485881526527132619575133212499520221245079220406549221005246843634589957291105841976782178828544418549732481189069782438363789509350815107715391096421494598594243503276683234495184570358294355234940611935593093797063809161381381480667865792594669293014944696541801436195334489417793305323523055774050381440700322614177357771101186074203643039566663245173780867928650575780726478349281407610866906672177232522597558757085924881649232545092853003938580663356192033370921578228829687610377453154663597124551904243081449123408662591644208356579197598010679498740808994062503711469512182636243348408739185549179977202689913143435013779974940660377416134536158261873493739372057922306328341385023066616996929166637968300443085228824011382870119067672400374466517314090566873052479770247648251183658411035527789682179786718746062552429818373372713988402210818093021946084353342356082513297108966179431762437033296356953111814886521982027609617495050217449940281273284349953153982926912393725462888692303964027518348023792155857617134120847111118019434670492870942216753815295789029360227000756536127560537990968595669066282882967613915636329437136914393411316196685657611270481605816870433650477680439210253179767227498200793886352186456344324280840980434123026423752223140000542114063360244213366799424938574909253003572542526589731960532992442717329949095961815985545724884802094641711759606392317073061670404543955733653469667227564465311184986400008379856808894134299232540223009420056517875691808005623933707675094719819729033078079505260997189227745944385268481961842874590556088099103458344244976345585022214296698924683676495499818446627132012587834408594082689987658118866906343202408455355237477608357429181436872375705099818312528490143141195627906355842099741075112318281023321937409101431297442329729546691938444636197642606680403618607459709730866061037209791427767535296606231718662286054016902684037139312770268405571916126020167345360076236542184963237174366472716568065426857812811454216689826548430169052754209884795135946033688774685392808013169973770140100505907636964362784774355981444983211706740283639708953562105311136050456978189717345721161661950307746224926615371658927052396263050918758698983730364007869008213150311523620990464524955223600983834457093818730127964402806504881393542058246929297289905128913946188141185002030578448227661046066202668442298050166154982426312327244622799072976030728278169278480916361783243415263515974189913140189217304683830565506847926203440765352557836519171728972779355329205583261176229396022016022370068135636651334150390567430212971529279716742124569117924097612303675160943553224929918628116277287990474680466536579837875172892576207882254194770590965845474425307766247959232475283132782979743687910425929130199664453964825947599500137586952599680096546937424715295547421528901415923658913974127358378798717328132788665542469265598925333463575730894419516584137046433997649331074168681057858588692413187816804848034658252966470885124075147514872333457767080458108465264598135079420089835612996735016951136849909953372092022374815583730188246130656391125582443190034758978962155145689037573076564897871763749142033446699358610353057879763746136342710519363432861545825291730720849948995066865953880906463379131341397442091487113560246138765109900385566002286409438985147198856218211088608595417616881105336574063990775358561433291408555571030615704428267250092043624035198066593656456777800528113291549937644282715618419716106719063404975678916048713700001239987020778672367022746222992453781403164588624858098120555659994061016430628420969345705044287254680319921266695426256783676637383845588351878714465970772064583681792547156827796978550549741809278621032123941688635174094973096157934003290354189011681707920785307215539725262382018023885011673729111745849952431135131250702697654720353624088212634016900567008520313332652609515072896401573574722225917354118201213497214612553720363134688442030421139522696388189406626491735430120990918525650032672068759501870039895470772353521873630207777445537007409386675776230021420208815006721143237058950595217433147364069614667101942566014900307324765897730756576181691558744878420563270812229744235681783405072136303201424897327409509334932166034821134602525349555490791978050365798038931228766087887927081608037003189197487327651657844927454245429120196671853004243599159265945334806507261568272219597012269844882255328270440298400874649880870237572473940221654144890095137484501635491640956123302131635141593575974546642238465705361120384700566156643077842300684479617208417415807551669119423963520865241752885504022783037593192813428615413438233174564452340908691912136407599075651582365804526925279030637104263918100803623021910082690519907132433359962145399436742248114893101007750425553672258505049542484405450787968063277444340327731026547747607675676764542119484562576806848759670222589063173743913925008157805109197925093261124985880815619182087092409354832574997963074149590797883636555753490271071929584201499111991747580010694851613698880801443728746055839841172127340043138456884155847341594713745155970716584629306068855603374333412405104918118301311238335276502499904255438636777008581053931721406651375593100069574059449787014829327889324645919101103641930907062753328281537323079094237796227948066589966069492393778431392734862559422013064401628723066368756668943106164260819586510747465603147941790673799804322522375913052630911063944304093607072616795970292383699018564018060166440316815143131263430179191571693339318880914900822346759148104610077164439727043963549177986297194704552389817197296877214544847904730802667452056357643974919993957148305464826655846321781826158369350157012054625621496367211926302038910485185969192511189988005147304662393586733403601722997123652077920876761508964894835288707942206048777354552700082947430962071319651182185373122094728523997834970616481283485111033717511328726559164494916201464802072541315295213414733744784479406797346548388592546026040199586570249893374526911354595237021340763237070604678691197215446973014776877819836433172239232970983884649144560053165004742868373650571559040602469353693501764387816929991715981926639297755769511575325040570493454490611045696873715765298734328418334115294305136477483111916847930613861004052753327716804023519536473882272961145063192273203665484473374324155842301700402861779195768526371755955499006347879533671120660333653966185012740589365809720870447245171720981963148440764132662375617604599370733622943273067265544925410184222111101267993128642922502341076839925114521744115506782561869948189562115216863632698217476081597991848368883117424351880564377039095732555946216775534538038037019293901365640289025178034615052723321031362283993476833400445938622711146287842510655970715191233898176247111423377607946507524596722488998252340473426485617467985710144802728564150603079896181954001781835471660228378771856521983638954443220734463883242248612208170106393984600549357307985585285049576009396248954576223142407387509679955292389082417957544850290146814166809611625537765470313421079248241931693905101010854937433229835535602104677465796736233364124944332313620713999983818163224169426914309713184130133770287568180324202083178489501389809361736286153922063762480366087940111820566414607109885885246490645275747388446535677276690033674270909502082424083868249169496546403467007569797379291138635388271199596922087814872011617250880736706499167455747875431511397044563678840562333526395406593333606344527830338865167256200190220147471637339310801669290242021749697750955506472931775676009335069039838539598887140927867733328781405070809591671668420236941009840422822191146819630016916056249059638415356547311177857298549068855458075969729260069332272075984737003157771761601545540631634832594886564485360297041619994006993723106064050982365935700247538995720820440156746147777165466307452932823963910346532294188068999267560172685815119900440116610298589897674704784024408138556892134143529131028365450700314210070346978835617634172911045810358602871936917814592305984984697936007135856836641554101627334721710856076059739107837972228314352415429871904226635857565860543071815904857553372320163407977287743304945436303421099249757377169757630844439921562105355885659719812658281413248013463820594969821159212147258053219658370947605503816148001108049775234464913704245158299167744738495935345413663936869822305546290740685717645641433311824186981523363668816212728784720133146110655128608511207412637956001359044873135287215025656378497064094251878266010098618207605300321421019169997176342188044704580125515424775162172721798792290207213582974510055150683182457309227295982242144959554797556428810456373184255793986015420567566492580816404802060923888682269571385146174969838613511071574228967778215090845833921564008816111375012007163103940377077071557836972994986118745717611898362675454296423762056293667461711578112567782415729227348164230780475668921730865676594949426301078235824478365919629721633179250996000652373224678857630320622324513752340840039953234408663821279757890997016495319579718520657838409205047843784745424114897152818047693044519056369893547097660856090640299000642782634939704539229422199694012969660953865706330696869755297620619208241425471371139900968196783681360899913599208047009585755479872245016573656056676540533975752294668607254215308108126804210771194567874984663264733917101046777899921842844488549322820953096962637468695570527160035316349560164761372428891003008278160066166171993184669878927849702205295991810900492641574478871782210275931318535845663608732715932633617119828707217177876209235144595825683864688421167134074044688451585677072563435548099364783873138259620781353601144109169234552084317912420844501023266759034016330176841984465639636863777856636506025536507413815246786241557930032133117972547491580170435966138368707290686053759565188765659550148512930480082401898462684431081231320754420325515723242488528980737179239791201835716337718711668635770823124323347595430262911098295386675500422220523474370939555557865442691268716905336241683484835788958154440824919310190732652639655495622076406135755572358423206949873102507223931981711244862082181702521860258311919536377464185088064933272934175051409565412756307938907075085673418533058147337275468947891573031069169629203134689612291728377606721691069326608258065546976456215155964519585259557934293374372028800594312219982166620483674811457591399351918993834840493665948106109317081348096482932766277971681647272648064529396190015085306487442696628096280951306260497496899477381097623476458563619689576397410454278174110730304842355496806149258284604938147136675827853024285259070232587894031809665168358049623195385474028468086222183376263736115877384800399570276303435579106481000411332279238263002723813978942417550181883872799809654764515240435901889584878451951732019117396995982865518771268954710494144588388539572711421406849679794118335019863483133115979743855283013661763053891659508272843521366737004382536632293934719746361686907926887402748870549488462655887243590975041449759260525525466104108407024468252955945133442604018454041028944375274602339228388149832430800646938868548255237856117248911269888323768264187030356342139155414646141877863266918559772083202754540901873749135787980053848838848476355524114802574554534642486647417580613390891994433857930521215985112250557275059681791488779787162243913573159494203866095051483104873297536261890123493378085320399082544203186732639210157370482640277274969165771699170765796476841954601229589820798821840661502513947983840429351247465671783007232312790077242752196637082174595360711984777276186452428575175423963156141287675666702639921439580614817799680149898810548329019532799148353234508902954935958891790832659015376108441231247098806931682361682314276022948737728896176017865703652878966980046827945091992949700464337528612731273914001715295919802601262654216183163008816547804876587856874631133719065653322520145843966745012356069065745605069256356816654598760946111420823319901440169424395587195095985392438305160201136463995236678835153353885487244285043515146224734466281302736019892291866981985910850103643654562544446973060910583137497687560005648320333943616424437927815050185139332714285299260754178224365023907117234594514333210924059920957116788568866038374015820363887202026366850364113306008807668875908935738708499169320425475686615615768042233164741050700513225422673288185436765126176483634425277835729373271417443265970542492032581443284720397144051153026613291776109186536360406905837810943449084203666607766932108457504078042684414715715020086712040773991148873665754259175909562389684429793158803065535291956203975049002924658055460884903627461261185293277482341577041691206828258241731265039395469099818078505038676303499182293089878890657814203331597172766781333148813488966488875737112889175438312788959810977598482087063139560761186831726097627460049105277732026549723683424343835641343174159290977607231887484155624916116663506375897428929675470509500413146585205229361075882420253221454894278541125153034487518287197836330421374522517238004766477212024140136719908922698499259849203395320166831997547893167151255730723572728443305158097635992510405039459978891334764218340370696659999319902473949808813810707487351338075649825567351545994950839150104639317668040870999923633353191088980150509981863435250062539672659573706417604126418837801677196769190943057313808515857537481978298633106025602819953643838890652769651584100437958035195336608525088626941627281150700965625472417552643371662285633272025932597353363117087810299058014067035968348693592409955173305831094965879102699825122478136726853590292033890948323009965360274094777788457181160627374891166593840552182370020295502120735651304504728593811710748201004549185431103513258491546807458147782546836601954766401705660302444933297362574868988847937808886649025292344587090212231081889948475024050938879147260867029872759246753405614760154560122839971703032862580652440483938834933543264999169461353487013948877665067579486090843615200316398048719161288483099549578780904128513836942016410083032262171459262409837819131713530311880372382340904414848342479414556552139256944096462825612061483050073113391613011266195659985092197912469627515001772306397750014833669303810113751029872614628237598220985174924363788922725321978038432086173923735660858949238635338032772477908471344216479279191752878795825510388938233562405321203435708834006316234186883146565137998771501477882016619766097058038118824589637650755931155512860368467373774769903676382386382884675726273246251061953699271039438298232643497166454519316056059277408448729714127317096391106878734393564185581522680973858678211907478968991040309787920246140446545873518888346960303793828488861978597953169669616886015901297652591587119288239065914101013414399701331190800401084904314141259240152061395392237345014036664609337213406155918594678632424306341655282005326159070638955140419548898723787656567834194962127791562730140064090582061904913249052719281461377478124310771131819128943530979378914226565355331323218932157442430410791606015098487229437898506008283501781541809141542263228582544446051572871877316530790347893004670544092678756969325318847767560714550947710298324724359713980708156513200255883211245396159916749594978284526828393556847797577606130203941118031440476920949531999069249963067990757490126576068345428669734374401843766207924877363923106282161023473811884091376329699820859265972291746046203676239491835623910467908031429413905065654959932640163023962067143470157761015576812602808994267599804789369714728328885847938998385027508781147551352461330007484621144969265273429278375169989096249250366901459292668727314620656647650474428675467956394222849369475210696079213440931947517880168866638326677761813106302595982022951091810563639075928779072115384281569158169885339186947946398811665292685248389286488493372903331576312974629992760856686863820065409523982033899426559692792301392047146560607407611575543134418551775136149703850778385371905735605010463334069755708290430081521910994737112720142347018660966093134289177812461788170781992702205107054053094730594590530301893678445700596658917666185541908468528704627428888322576629880009630895329766655396586314843911785795029657317390552277791230416105965923775686781182518094832445404753108979512558097427932769988574042589347594938858834474486691794468140710148293575720117477003607833970546323103108363700576441723128141349886204348762111617815646200678058929493305946447497520349300930782285360937850509247408239396346965823127198600946777715716762954221438299835705358840488445408460015178999096909108853993384007565930046107818182319810643078978272786946474663117823659852140356206977732858112843373425116297022181518430459215347882664836409797913796500506991966351475387456501561534079108142017758683709792096179948742998073424770821396124166381828609717667456938858516781336781819775304946371406002700555305188123924369585314585809751233570526130519460833291449831857911572686102916133881276866772496075978572125153314372650874255419689247778252028889224750749128036526732710348614029460208633348544825980702713188970482429493550375463760118150681549245251585490934469123580516871055904712421508506833637587963193192040111750172327923382080682081850002107066852404449397594784038695139146117813824416011226719613314271537165060554120895121494493353243788440288332525244082802190539954887711353431381396724917405299787576134322570389352664412397310356486511036497873113461678463222619128372782027758097541265379093078768563008065671958632775216032784553390170163779741634227454550181638264823144402994404341520969363899947806278850311965073197530773667634673087753890165886885174159477567808154340513257301354234283734214649463307948880880267291744659861249050052512239187653332788383596138618684845413326996094038179108761849065416544013867470099100953438633474837832660611422448913495574565510975428610902852010938660418762541344211150027232666126353104054571082647292580892487869426992585324698002006921999102550984941129190452313478947379988180654364892185244565208041770029230280629006476139274617569586653268727628951807931863080177966716058440180692496265691061202140248407395079989081555870974696845275569715649828406438592887858479009908700725332181192351097031004870942041782034397440609313796323101254414694553026613957500583277278038508757753101796676081577875352240847119909893450785086382941967359981691181447564685128632598213478487403582582856012614984855448143534143121810353243923582657849831019476189234210828612974478900417108116825571504470366181944571913708359329720383333810167252618657004520527501245335551720903122055222915930911937994576379356176098981943757568932221256187100630392383132171117000498696284990294969098304288192500336809524614504476915890231879828168945009754710583270671874934193707417026239035111154159401649553803970664823566389362012328996964690485781245568095097302526776392708461102474919488880857319721359446341248118173667802267389273340656772382394102551913682915629279120469799528754183400517909001567433951565806973725964060001037638130436012925706828341812245974910670148521873430059505600870961671752405606017975371451566232667325308922580399089516949576828647135434822792653014609234113906951418403586731440780816830927264537889158601747466641087606016935900918151537188688739120771544921108830211795060945442127210762600587099269518125850604299684822088842749495529169754525740853978541245243210101541930932298372125297042725488727779824890741845310587574837369473596959722642514932482131499579564330017239243445410210962150819019410544926195909770712139266085751848204309804089536248187473460544210115759484391781753244376141176147941872491849465404070231599228211203663159560105364748059656694271610120746649541978874482919242867784648612154208703528134062082601198850110840374245843224110981907374805753018509725601517731676113308888499099357851419499683098026031503681078709562272637692375008595555061016603279832004168815799564498057082657598639655404395589701897007404411571429581096288459491301447802671048832067728083766696109883291897240685015790304238106551600040681055387369060164977813731942618034970892137071775806975370609312128093653371469319562997012369747182474939293808784610286081918527490866075758955782642890467620487959379898933174450304662310175698071542092688637759770381594218318639607322366496945077723927380138028809586887700222927885794367442482090404691841892065489648576806427942751913255055945727560994048708118248235043672001652851251040943882201761841679832862633742778476175434930625263713791876153021113377454160192910224678437301765107504906296029082370619584148340893972919694599022840277103978095596759009514544388233868770238982991516832368344243063798056083608258798854024296518659512957178178454096290240560603764195286005092911793922760272723846076390709904547899731823729117233015373751193535698841406439870540307793317579542761497402616485542578393555585802769701551209794025022977927714674721045205514709167596389397099037995033042741816643518596822589234784724846121437476144158488531870868852935322167725213625294110421075684098061503180919500980975421642574683886816887878703409125358327380580580776710504977898588948972303160541959192546513359656385493330081259183223560332284049627172256777841585049522638156743542643499967674952940111557255181022545788998923321030713291111059588573733116851249013847779683473090143577364472149796027245155319076714718759795046360991194763913904618487127456144784522507265193797606325219947866790232880964810900227308398031759461121332411053349198477450691329800475776729811231807248318616493124914258453576676727246779320148602113035018016133650203455037930267180288484661914486961756388958590895288967700499314641536294160632253911633039257545709524815639815611210702858254408207296360359373742190092150534780594565173266042767368972226108920838081583962627102893977129983875931819088806564939252658366868399131232928834181495821442968352411477065416068583417742202496052126584767170968551731429116979878882242714908028995872502471284155907746416687124911443630107222372877523826510595490335880879795669248589988382796148260336711621909041633923630207598442516511666195932541367324343509990854215323325323675066105911570574903605730102078077595594628731728547690673220445042912923382108780383794651190132929364991623357621993870961400957153711364530227343378548229950047868335259078014263020836544771729022636010981478223499665237886283083217493251568366964340793089930047439553342501517940389416038118826716596349675144703017502363346428389760297906995867312185618381180864558036903618392474002434802388951918206937614728928583846992384988168137833827311559867868641355312491301247170800518974759426521737604620472361121642469650665264986267866789407283456001534295055016682850008353504206127112784596683285846903095397570940648913178865010354479807758849907256971752180494261696083343079673116492305881132778644788287633427940336476911230633806212767563978649237137755578379632287190788419851302441270519658267872280495278187212965905121845777283806272568972656094081349249655045845176253413293480904802374913745877603839622998743234978904366107774620132513844040986397762568046715475471801563435432885280202498581695268002629573567905316013012986098734242907545738965773181896071118937460276666081264027881341943663997248487979062853934943375484772416163042362931243234302657853831963179820645412225315065437994329927761157278076386022264774905568359536429187224978546830614395162381790704980214162785952339303413000581743526152091085743923069636107509239428664240270233065892514012923048750889897687037920762369494816497235016426533153923248465173097906558234461504886653593090933936837960601229645964117217671387819403657075696629419464095941774235063522626953014111705345400512929905049033443371570584357098764342714392212274288978016427188491095898671795571667102440837134194499986044054127884172286317425087401836401547670588662882255995465094707328422616709952553208273232117759126981513519576691562638073357433156540522606175256931359178101702234856512415641051492293318315217300651382955910100792597134393707349185298608691207459194757890858598635528236669400326210539695569935894821398207964827922475588198653681406128322350518084224604743775474567553066273956323220082407456814945721230531067531813417978573662903216286996252227229739558533637248255197500942228404408263895539114816493095681347238769826045813332187600688289832172055563012115766659909252626893941407309336062542899133830980324428949144083401209080853555902241784557115715305954415818685362417634630468298893186069612119298538959683291592140772849600439272397001303827158080936445512539393777199101783122914882412424872923760106938125609971145319169177353693658476869531763899992990607099534613728013429810955293787074458078175444138296356541671062334211646960492511719753370936746896786790756779164368147842088489220893364156978683080592758575628398678892357433027959054508975742534940855829038517442940906695313081277055548649350115276808587670964758265549353902480237186733681352347449479307722262118688372152533923992351462347793296500197761177119920124396003495199733922528378547027274621979785238886172502972503239638561124716001449606624809161453847038471460560487344528447271196381058636642935915793734968365936778241266568341947542911030510151795254203481558698372821582665118265304009051464035040901279474942585813516475424144838661718011745159015850725472444073971555151672828795764908634499211975574275093554451162179415797690165728786121431546726189421515333201264050108929539223354362081962684609146131282574651500931862388228143179641490599682862515721221658753824121882871854674392291409301098219736194792150446294101212841926695312824767514748926031235363580287224085601609805224218948366385100106287302499283695039365773586679650268100938427925183575636878425984776009428238937623712484084949741602426832048384783327144053183547507644292072780816775152414379004843208911020403451639579820692281234354453516513748097058929296342875542747233923995786425587721659021246377110539926609969969002319289232652559962098959243297148085808741620856720939282036459137258434953337300672843118802611379575189676720749493557200432106084529003562763362790244199400083984069201391922868963222702207393406457560762905120275189446726407140102029516288749153746888487361516642004584385549560205022656208834743095184724157028539460240777828894232017117493629923245246402984087492854591737012522702193253863671379439161720172249426328996432110916102346134771899167227361356198576701072824172191877398264540557554618785727457982493942787135215425197890330922309477348089433460540815132655385915990993344262593972584553563263411668621178371004816696700733367635648967328780110619678864444521061701450472407591577060768722052864198093691459413885289599485125517788494248182213543827223135653372755551583269995584440907901261078111101354964958272716030396011471263375213288392432960021970095094947430109897515123875153991373271079673632634148224510312600177173751726151488579236573949089722285750738328508125812064957170075426365533739176181545988323070855605770248955828167803146625210594392874837633769927911873318702092162390813424838437957833430241705952236747431188038601156521477201286227877936546792106825275726317941115290428310857318765635501336495779958941860317502095340369272648057217927880857916871455374868847088130963914993723343650684880555431100384986787642284404558969037456174049359558887016728527809994840904594118694305701038723187026127840570994720034460727894246024763385098922164169348648549721022181450120627203884233027891633832533158997515658956738562830715090405132386178258450920529047296497865752638634188378318177340192838593571143283657706800208873826516325736019634348506918358016398408596463037567993954333189642543451275225755998822127040441023434059334335610195315499240950928915803656882979383946721137514803856927864321632484709858849221943439253888703452569145505503568694506926507115040714542956528638403076870570011133832291169246649891963302340067419890802630634230970226285998597785768815155464798092206919468193245815253226675535331630456703815538348681327441678883769512350362721854737644206728667311697020186918678096648135250279966485015911536160847790903389548273820525104533695281938122768313830467187709181458098657093638005349350275172690469068191004120709598736951954436067752128707952439685498899143654110011290691679691915447437678136973050396115110011431516140839549548605161275416460172031023512717185310980629357670722961245956703006683729220695449079763645906743259105256781842920609006438287372478132943003601045760133451468259013090237013449189341141046045928522556699091913435068685426439897319176455841821345324350600550236017918009150254429465736454332858304924819865200264822225534857337410451519549884619094275219500343307060670361621532947096172424162800922109295905724773920190915770307562852217318846837455460809723740862566777914999332776744347326799063267091203222086952415983609648738102886187767576867796321323829544314246123801729318922591986800321847485343704264344159209248752018249264371991107739883736700982164327646859706694904891873495418899331205864245543333418566176617406342954422128392472842323079271274881696709241528786736373136223289030958343535611577032159262095905025332398037947811311911406800371612766534504955259379183383361864061847204568659894456823834472090191201049284880643260093360592561016357405452612956412701027507520457180370956409392490809351421373835934186297008298329255424447302040072250951609657790149314004622180221135949901523591133710060631021185057540912782403775423202541816148391149812053429139934605756423924180340971701852437421875159789859247917402984028039994071037342211960910269173484897611386312059372752958795594651072020407121625727382165580432242295209178112064286000728162686411492489542920966318106216549186822767715688855153165261027033061942388004626771265071314369883870701908944107799935789374987055339480851259386351645218784885348926963110516099674209374058224748248240127336483270963366762229494477799252297362433893206988294731878246158484216383575477322543027366241769818399243453606490175685440007377125916168988979235301335599503846013186281594273638301889937574436753385055591394552747897488542375899552401928736904510909209265288792367644220051355677819063041255837174348152898701133801528371537515389501788751213629726698193657276348842984954405713662131256659277037487473855851645233555118708578232945604769601425897375324517009180459199136357612091461227358471622009090068749371742916248251762059194438911155442377978889044487918788278799576775103883692421723429676751263848539719237858803330399637320090167435884825338026242134018539579093028263532705573620125280431689420446078902071224102821083207610597816639254348836726336240079826321595563937853826474569761447919750587765305625515136161139680680109267972910562629173419095579353890281475962064922374650869595785506609819564770369446473151368006401684513482273955445438494473678968234423463729130577184982533159822222935897817344685153435784938446348349733728077745025058520243083346831643231047452216863339158325941967388038870197081054377393922041454571849594534732396142631679779745610187429688015383144535376814042126333959675593263932445478019260043002112481664909565805095204562830575203076851398492560007054960665772536017123763444722943425443766926996617643367111415886186551573688587573129077753997138143396828676082803736295445117736966798526358368637138615181920250088746128705346931252345155982691054047671349468316353265988444504856363027487255754695732168810213383786388021988123040774828129995269018021692941213078053662105146641194877687086262048910824420271933324899088540029250551715189691504596080961178661063446531267133986738200111106506004818144428492680340513640925216493137264040619263612722787589880565651310797029853520259913055351788301242668934544096951750256064054630433296852541165651962161467134912298019268632800001805951307190653910036669649239511050936165457936764457497575959255510981894692128368295520066089789981214158415757314241873759845577316915170747159125954114352762092145143839171828345186129619589187569819191686835176081108789006723130901023897541216234899366256561798781054594903995249197019870863859224196710696759483218240302013178588126160623302324851448763208447960487112349707097947388989115291113129439424256450616334500700981733277313425892143642936181580244264001198151351386549015183606776665911552286154711744930577874081411079501675371146941620425613548013427983933695093076759148087150279827650790610948981390863854452776274178376383740952703039026673769411089579442815162524352059463218629238980337784450580041043701923926007035669883138222449103161265070416312142085918221312038608510263100060462292226143706460795670008895887807646306269842612368132042701360387220613370920758387893594313119224311751698651219474465402073159525210991186631808669954501503705501167223333455979609501556101753682787470185728476258262132906450171237843260113172976181030441267197150036722810947555935679829308803254582944839976252359831797375244075070984343349028841582757202485281336290673044452575107048227820902418380460026737097257291831341140695617236270477444351404510759124899326934862016160300411097880224429373093180935627930422691876538837428388211961527219847738331490842204019591832694653151848690349690861657365066212557943678639891707040974035297187931908843161297870718096376157262206223566402714716700130835306408373814288099494373357166147738945470525214930896543723996657346393759486252606601020797443197990950109709771370741053187697103367932047613959161955062155861164887081771334521710363232853116223441482665509032766900622485839842094835196486153892518020641068156829549911348663789936305801347602496803264774096862425727504103479048373569637579840182830825092964591338320133577117218583167264035577086643219901234140724537562368589855994776949140686064789259113589314652597568712545246054038672468579134231916141600052978240882334346837567314361896895800489525444726724914198437610334411874222663856028828584742906176196809853296874112700813072235266581997645456599174428296257410965621810355946032863784741578461926057563853708842062223043104910584680344292208543417885935311316278041257774021313947798973691961861708353733692872804615337877095091693440089453347056864790666051039415748042411958250559062197452081616359785198403097411433018826820046616865217928324100096499477352196337440745950581376567700623366612422765827003358607231427544375835164673109445750997499604044221822860637970721199923962701505296923720510622936313447416732730564136151430784510226077711098837490283461937979610856972708442191858725648961095361636056824698396449292369235713688931478319076793655995233539904472779503077190977282254562602720304445062874569737810724500725124944612537727000447789018816401221950914163379322766119178874367835362236489729860269938121546493198130400694616483136228559025064110577166753864685506878713397247487312460320057848261475611284191835153506554861401297397079640304540869301210286553861179300601610218938124659988740927674181752356678308962884331335063771670605214733495827402776948400495035929075813950609299627066412194755351987462929391007910205369388988087465788289289321490285515801069873194926501712971588547230815761397816922776667326705985614061695154581869687584663726651477380351533526357914362121559057049942089167758133950464183045453381053850036795376071962295445803909030550677973586081064412524761553128520427932128386464783639308296371690995812969640819382965334316641934843320498684115802826114250560327277126313501294998085363563770539818174037434455683581639006283815197176783333490345198391305942149459634872389720298901750304197999569212692771971127711751050501092357034719441243023992079992816937166202887752916453999833150888443984292806640213671442726203452490369564089457372168290885346329149375474677940243086862008386802880713284853255724886377453543175614031637307685074924297883247772664390764704111675556411600471442584202898323685758849726800829706549736363114286217388888467319508697635092560402667982699443554719266583925805598743129918654511757268018546155133829709288945766448697039555701726810234801163491719646806971871861078857889334503151044540130114945826580122805876032022467143850736284892751305670711615131302082211718716157823810656789707015005724026645704749453823583938655713590257321474219362432214909796915661383429837101998142044660212130764922870971927930463216496470171034380550594824700816652150177872029230070985132177510632247729905089074638656165871480534643499377223177610738515691504280178369082885498875799576130140461656257075850721053059339200984455854599008020256449208826728145160711776009155315975682225610533146029545062483868923683421733942312441295332750862879847655864755063625098423531945994649910299726880469113016887787079264018422605440626435774202154800984092521165591530773585482247354210554633118184378897735614455404297721085621294478945997955567329929733914006805231271469170381403934497553149743570364726204988170916186145998951941302489494100557545898137739619898940919059134454870858596039610642032737375245886216440455237467461279986172400594162761878777416537351111120638145928535625552044915800728988316182485165057644608900917715053155712876091576405448729909915268436892817957199522463557431967591204458385936817525972536418751328376441501777392166389700353861648786287227425155914275712760460496834335751635871078547693383446537764455254647723952843226098392212729698813824305199476391952748033486001442180760060082754133596744415848932741189908882035283575282775486580669910667448460692048128081281122742829741951520893064168591171384888081380342821728097275883886662888241557267849097362633146521031706323192046661801815921314492230752683913249401517583091103037212331276678553639021854464132328507751473422757500460823225174431068068709960204236346996522795768999138145829202884610343871183301423053811621694647824746551791841596406925773264499456731992988265695181381555300205473146206408565483632249214510733045217251250016759147837193337492380618067702283771437896053711293102790060439992031445365524874612522090577023700500567863665270956613631081630296208336978191747585082668000425658481632652499083122116572555537070060595598151604837406994041757949589592552037911269823889943584596415176156680494484292201067033647925015661433885960075483776220635694004229925513482357337292497645674047025399499095400443460399265649356140532838088456313415498718317275394584083384027466327079631528288853336072522313908015408551387570304441422520120308526130984592080235583822473031328547025900487613914339672960088993559081949547484947905535173903292199373552348639161505670133075827256834249081994019318595911455732780808406936000609487112993475082117592039548770624963742035468066384466636526064281118735386505571337223040882481035419468426441899320125461968644666758780387357561189117059412935775117438234710394231452914071190995340061068416133158441904295322675718743440383077018427083588230572103246833291356923663931537170857160234675151598007526086205561935674092874315599399691396786009782826451446345654715901570560587235215962711836609791756135947092567582330191329579839976076259847488924995928426729873929128889545207496914862990059943995667232560308839282186742895381124618750516734592625325361738889550797220455568407858257911314280421541921306535326821800941766721902617359592232908372745282000373110686670426161935890152032239780802854181423151060945713071798966595184460246852451331218956580146098855215318842867257554996993255227936123955154340406714746209824698264710525347416936302812576889016265531808813194378163311850226145747011349214417156946829300893395854555910779122372655533860251820824550564139046291004553811573523090388864656676876211891776582689775782517366241830931989154340936785637799497610164688854461853130153113825871103080190868871159953713518274042486474795861728219294666620866031945387956972103455790250435073146055256417691032325229904969922761252305943364406906835947109227938194590615798212690140641845961866596990895933244288515303543073569411770127918210541319906560082364666889668660127572695289386935990424345646686410056364817554517675336202232912368757654984291166075413053558125971463730841140475205544316413937351908194463850389911113098796127943910120416133501732913038254136573881768798096679826151473206110599671085376370487587209097771838810458905572203217594148231053292449891515586340867028858241405797683187682241101318581284887715198859867812609059213410427678080506100382267239805184438311784871673005455003958921853695048201495537077964826328933381468199490308805349834907320020671127527586137830048509877915036084145852926680539007835620317603431027004315857795359210851515625609907896847924257392782526935196393780026208389118308214828756600303849899056838418372253491674811016842463830304443200694656142463295780768174612547147035751554507556397997658518990205077429102466942315065773903975321967400318402543695084283393845544605106399246141744330431493229675067508560726825043909759427761284792170932923008305480674360355504613203370888643469120287498957681800112081086820808136939005869732871608110942634748465894156833988804884588434350597658983911218712722015082627611037823244434908515919693241371965226714607401334830056781463851297928467703679741000721164434837265668842157476878039344581371502651603588187038465602227866871012429491859993488342982962286447781889989232746658292220680771108825009063423249183467760996749872432931465312187270154778312890147684178191137213625694376342223813705241012241543660051551297878621626473139628462180181260449541316893163475523708301718941012839086701694858935275769561069115493441320379881781896229402789256867943156761679219973743674378011017459911897874751375514502385387465047043967177093750601371091357706197113212109917967748096359206211874314256734111832843308400199674907673377469623871419024150370877645270309039086759872177367262400524521027418009243070738794564739307217704255194595633637667778053986764991966893085748342592054427400822744143850516649787293780005337237349379757726146756669493487158714265260457564095661919737266439207528199901074096177640850649091055163823274299675331185575270437123285529333438035270523595532633315188759577403287967992422343936896130046107132502759422304199092620592336406012721676373020234668006487075940325374031716101478509832995004889131636638466863825198478916741546565908488580455648445682558290302749669401626892910503002338920829823816577088776459293876195362220162034100977992777724509270803856644641258952933733834780570556494022351865452024632025998412780803683352657074623893150842936490489458127342838645359325787872728400314524012561499609500089068988998153459228704737840497355864507292890311276516149987572316725408296934242579704533073989148708608165701245872204263642528602022785743987016401301150098661698780650954813793586746722211097037371163499624193516841027891857184561695242217370032814731004703028259387219418098902009776955398826412288879509082275023552618286350881583380597668112011104281877857733509669036730704907649821100423799935784985468461919335710141301953177948356143386372029828575670229667709094624935386106919662885151794549717808252234922431437646497071141749964926800657510730276737100967748188202733700652671232807050660560948739454978152859265884064846832274085382649978111253019768511330034118461723821735191726117285618044024933151028045081417688906452136603316757504913950919616001333305245574509918997786209501807532858840878510583454404020723952704709379427590461528562342506520329618824022515593972764577020449839548221516664497143899794164180915308029574417937162527123905787859504624003422926627934132382735308634690637623159839146988035160562696804713896860972939918410365695209111280564485265034269325751934678259775698222007233354642070195036977947354108698745080996599325820233426055922308665086719122472184565447319585102375301970084562528120450345525266496215486202386121742391287372014488882284344884697757253582412716875805388327629613374124917560425667471961444846541593108295275144207462457750386326935232318995152851860626565397147391972988709619495202716410969623785445633572598066852546109644498235076255505644721503285568278453024520357302638975409878292514710161825420541548386846073937051604063655271737369635443301427722497803824540524583669781698702136178541233505410189680728053708744102100568444668442474913797865130387419072423848917890395284634293885759665232225478051599605658723145541405857382696151278112054892139745294856620017046279174262363184452369252574627781789373611230237231295102138214916656237069622877550475236903018258484703333477708299277746029590934320056300705051066906656815746571894905121311399036712803546726414228180100989026587407224027438463052367714319035677378599364965172977842785772313959393765902221780919978073908368734353581573578509853692912609711146687426763798727691941533771964745208704223272548813213473750985879614102914638705036097977593403599227245826945951547655354766538834687603283813070769139396768861649265151528892249546627729955344847161053929890572146087803625135368326642892295848386010201762471927056932011258666172192137249548633263341431818967708527085669338983530872009857743708407383044580392843877578770489471923285679013247676353321190070415910848042769061294405439520666784567632155461674530373891352142575537866538380193882483335246734917045553118682182780764493768389016284323541275640325850738133371907785605045638299839879428973170263463082645265977316739402982361926540069103961007016531457085843320277162066995658307541721460846488989483714823320871354020857878871765989274625001052397529946341386832217038446886391510263173885312565090752553796198948504900326567487648433692660070519344601454796260542715300129295528793842426721129145786635031611556412245455621880795872732113201592128352880367533313024054717032488888777200993281525458245330683571722845384363848426234884343366283087979983608781827121252473688567627640478144493236829523785431329477631497337720555334758067579571033128548215297370437658106875127190156115775380595828482323852230688361019131178282466331027087181289244793439766806728721740173624314653991001527961161567246996881011772539084490816055789529327019033103216937493929253862518519742181496104178413630445581838297321821363026476363610655765029817008355048943657201861733546965844136945396692381431041461571515926675081578909803121439507589912534645707637569374768928955887618147242844417215823678261923888593670835079793103858191328335149995473369310047885528406170349682490115163392625077665598608290070643159301823638636979316312626986520479483823645930811119396733133233025260568820481556764114830433127519858129816432285046579209768002065639930053294468108732108169525366765537604368027901552425789194817924577719416677974069489889089576802015984117344043874444055514162084290386294358788083833139493855556772585684410671829978274837126160481012928400698819504640751368045505549544748709396998873050520906684863631305508269344216783249769592275315545336121505794901838180324607041383735938892302246038351601286268747450860511781119387365574399616831933775103847592777507176422770986471740320371831768468858536235182667094465962442226281975212937846262811576684716975500462760232214033657404958977306708707240502846843095842546524968581082465473921238250093540768246217984129594331673517571314585062017524922732718948985264692519083084608342501163941505083183940272929705147597944430563879133223798123668479696550081509612119470254562506996056475954446144380536500533476691385051128713398794850063007434005414428633542800699353203863411042745388723881319081446459777662301021580970881524874239882637415547262173736651845337856292057325107705192382599746644359676254445718860211922876310376375535744573340944236543479361222973412442975472499673495860727220986631730594936736842941844101715931997624843964865732217669503637161543189173707772655881572941684484972077328669241961393861013860470530848215025921307018984486187843064122567711210321511637081863409901936069891109554261255631655302140782708729210276991250988582763268449396706355888332484529355101689395627148418381302493070901551166994372975904221183221373433533074747913874605803902258227020185060742111531533689217240640557932650934642127250761244575245283043953701186756212554572296619915112227432475845426165367529706104769619861522462737773784689851267131050976013320224830413421999477434774008801248543488201582829407255156541336436291458778755133444189730777005913970992244075349398592949292630886559580265213015867075463637492306631893097764169512399743066945577035916978276777236233580413871089613947602545896601706497825940629258196117760884057524592600545989174094024310751480475082256093936071616055929058833485862967549637809165308356103437451687868885915640635146194360565923306665815375673019762751872231052692286620536414476905720819018904998640548111953222706940102257274903096813381093610200694429227755256674562355601251397929074209302076434733603686697027188415069924859001759915411480744378768695929990211678480314432994925724341179808505259979870577196875960476822830355365143195298373036062063809474695163259677865513453542970603022885880792249413723563156366057759738465830877322416786511461501603363214242074253062782749224917911870433886240292217456382163235114916797635174634606831033750242819662771492901308435023062164744668145175760397331634456295666182758908458888152534838375064004086561967637863361394314299105903096607334473442892736012401779176348718531492541669415947848629672849410888362042024695965136977216577554150754161316514631218775030550586320101196154136439623693984035942200219688456039853685555961809705169649572916460702324379337125554909352935292585204640079456382094490451835317157960211200460541944448961031095392497953847322858822560446383715138061483677989710335855190200181108825675871401291354265541986979853173773883727247359223781496138801775450370230385798007097239636456800721321347926879926574472750101936322042818333699775584710752532528465016462015709992809499990922608754580026436874982555035724465032938873859808716388984958490793635412035405163810882116835086048777645899948156950438776215704053210046504904651593575842474471494626000525708805744517763822297686762770145872641353744725451125689646226935172837839436485568810381489848735143258478151379549645171870467315119813111879226989335953067380041806176655561751464952134923175074597785711645635568469893785010171228543326902331401236969350352471291834258545158343081366411923081585026405901556205526311328909510020136450153822095925309696883830431363495246560257004959745329858887883462864311814912016891602590782267065322757662904606502707623403508779056774601442488716083958209897634591648138790856860741638408098200746407762022489651028932724514026331128438394962286731399835007568648711754310105228575338005288336944163943525344134337491408010324052659225569395319618266623610096488097025458919805747565088712471637882813662477470636298713366600141006863200393591160200872620822235844401409297886701439329441126006332257431318037465437177597708599929910139086045911082023626017940014098348942371299888079282856287777819292363751408717262211747328519493206540843232829667946218187258554311345223740846461375877509694388540519729547942165180178375461960986311887369135575896369531635258611516863993126640978892511277646400746007975517983227724892966240265577941465373021793268166969386779931640463237599960767719232798521604379024558157979197346061948332005002127959139360472191469291914456844239444493638784869392183779844967381287194851248822427257265645942607638551121907095533003497177874147067316160385415623384376861059840551623578562520838436471044214791569566152435675251939681703285458750205761247151107256951816618654351840630378577260180757643999291429317679246169755759172424457823784817116982047530790543135101559661180715764135421570979927497208986541651063719821068116521346198024175117330030711446882008749250193820264900994520311121782423709171258599690174592731110023692939435925401578807059898625682013341465874214315962247889231950720661969225714979612970559793958782300559390196173499964855531658472606211071178972949315316936379772092830996921851789899008538370472342095011662854762834330040698475670297889175982634403887177146771830273562063471888790714023996485081774321543904926842029292829062207743796561704561334496539023491878799359424731244343503701873197818236107957163706531242048566146178431028111322762460882997310329972923879423298165524585174013174034230576563054020205370789100126637975261720643070385214163577305146788278402296375537151217225693586822128778011836163565586278662179628086693335532070106117283407784477874488223748148409655869170317784161851499572443882151328216995260724159932186584922240791048102798776657723127640189200787667010060107341711285954327016626009178835975992844062889008897181518548659824999797064939711157139280376921089176191415501066635053289255843696765930249453773208240607346552005634215297934320180765396335214470568427599447182427570590432963160130470450867832324553007656803873369387189942244422672769768506867649356060740103334857761630589866570467011435167000222549703413374444889244239120666088912344073703754605439538590843590821487650706065837914672969524589817974757975987783810026060685565637496472655134274493477338477921324210679421198992837616662314736247305259509424079178445093411551951873214909111392215351263256212214247319347764456258609993529295772090304438721480181654845122876982967956330454794392365863482464726704077345041100537809798120707028402443252304032162037814210740405957125549057742843418271416203670041951200664903663368107815456033870679696013765636096739936531754874247890184337074958230143138615842825025225559702467174282811745478124913732069998761395757033712125869772916757596031564104395470930790809261806260395076161413078216122645002422801298608356815376696174206486687408502123208095892821201053196969680521278092264704951185455218615968546201187536109659761219184925960793089340695409707269763330921750770676914004179692970979967613473885504008437220685270976211076868621983042534051627504460928278865076471476999064051836861779083011465393659202852259482120981148434077207866120243518483861017519571214386860687111117370785274658766156863553378758365137232028759963795033387483160598035724476270044219621923108621650019543417680070190786546102832855887999374507440328145289971383641929346105732880175046496012100247976212724654483083673696837820363755527072333928668250129364166395565044926405024311792162935013040182206080507445162045044692585717365536224039164806144294663465474341150270010350548452214367919879926780789786467082191500863094116989807484184725218201215739307689905829395663200033528601785044988103306281771922944343208807908089296280979693051661234964854081311265905387255815530807549687616145794807389473647613565357026994461858952752427357541783825567163071028551775606362561230043034677090150520584082547994944719084423622115814433437372090867340473978476542840391787596894839261103738660849061451646763526233386108831518330636469419320433724893450212916432146922520076443314555716841110335181991101865591465947760622591471885947380494259992739560057287022842852098011984194254506705921510198207793828051664568829854006305410056783007548505365078300627849247378054538266736594656207926967538881528549051584359014955433477123119183637219716287764408406497250613000077539995487103571386066634015130069117558750099991674053805632680648797113323279554933674356615679575276978924046668562536881281442145885808178155762512660632543810042967704554958423675204113102428122977334790218728828374998098283546632574458881399355597804134940884277695996413541013222917553273946612550198871253526032083884459955241578636468256278154180416463936626905622075710025364488977431860244242872519343668874142020272231034243231521976453494948805746538044011477264342581903132954556419631475168376554593494526015429091733229172745861386184694811076090143645332883576340261847389715570715455032446233696454398346575237844575829520005716378732608633984432917552737363387192214666619349647641387385763998059458667131092027351229115097952145612087911731023832283307514392845866535605635230375430329206396142339280696015563257941737927879959475972857033947498369337712963823380487478368278758411126676190145651886312588172431066318718931990488519766349680005907275758716540650069735952978750460670229763749139192472636234793088828011622462054242472302349756426265122307166879043543721175793556445052431044853632153509703197824187556161780177579767980866075098585120866536261308479385865843292929975439522249766639649084149068620731311556789996935221615270733790074835661796900374431686468181827612074934626684076506934173811889988084446468355924702409391788134710730306497042490152632919781600368207926917423126036187782880993901746290000908281933935793509856300130606304628377268485020478806930066109447185209720638373444170004368930824127401542661550505087324378680925427297633568203877161158248138940743133288473045166201691085842834186200617914545254282781977978258278741809041271440166903220363085522278908154669645058311493570178725739258923680741827805193151941151667357434901951648776818891959105227706628555176046440248540115295388761257460196821654013680799097339903185295664514569378902687541424777471906452664738468153417723075765822415090139229123034199973157254267770043883906112118966601642790895613842136655082642936333176434927784789101543053745795352255199137484356905955407520492326540309907193884019859036500169591127352814683031629895732113179742735478274865585623798804303814495332601422055986781418662408346958133769658078529330143091958216492419523066734823096435140006315737394969422224914976623474833760207852105052412283893636727544098903337607307356797215342122666011912315399136578263461624085744679758278770052839719782231750603831689349542141150827114892550695951755784177848391030888069011325803115733954868336462248179016958708014402499396006137072477298777893794325245834545462440175600844161352146170707576126279552016245962840787087976456671648792522431445143309043965737077745838542708182629926713394571267741144053068328339362512727811140061065710409620714915873896216708143596800403701137709415778233521714186676823961195429654435692638359853731584735867390070814812259539691706434754049753527100987939228320900512650281671647515272727356120824126869998342696575829580820059538769559273533489362875092444065227422119727962203696962459821575078411850506650770352970443579131577290860926809923088812211160825362100504565106004303874478682604858276244485850024776506192393025373664815522054839122923689692983429448510231492748884324193686775151064408158725208385207917433996227675866967762665626379381011594406843758227407975772187181654824933367554856563960171346522352783334822768812687017994876464155706767173171390314357141419181958379858279793640264884417510501264675846880059448035169325019918921759690783711180740026510418031761517860207621386745772894032183479497758947948661207767086448675653357172531225956669719680034985972569683182815880384957520581546210077318691732665932302509579830942574748240559568631239476020111333412823449656827402644359583573908618411551625076746105652381574527798155413826155422271153918000227136943309284544848249166919393460337973037053201283308529658060163936592394754019658705285034807552010237841692245072403191171120265968427678608440161669783284570855225243191947212409666370608810609584624451473697073456304946514793047449700554458185357544219346614105743167129706922897117488464850620478087039826029742813686740057373966677201847027236375258874252419321279606261409309638215848186028971397503943706279082939282384899073333304912952589338288201886079316982973431093929523053506083034703684589076538937952237299315925502535647405965125217892891881059506859808784592865733112852983489070206414706265266854281158984726128622638781386738818076884619116400491256593118764236481226471826139704721335940301579852118736785926952145854472148778681070468031069488028165935033400042525582639141855153760421313131585677830058364247440846185302798107991928418255194141866036144348430091819507479923844028372438221272459746699186759709618202911056002332817133191273530426205889474573047064749901372544007795252137994892795732414065572134118170014469512175343404061680978313337415554643192103470048719643335658066715647969263643989056217112433551564201597681670073691159760734268494879247078568778286673244093497054447788168291923534538651939316118343968934156528851800291262954410141476621384061386082327001816463227509761353128563007482055704450877444595234246460597020962638779999149054014102716886893807910908094394066185095434691295245553014886972386340292731813361581092113981516026324606988283826019804154716113344043949013620792255532929430431856691314324385243551840885545765599854854753774304101689892439009559913003427761901386293543885947872865950079662518754461799090639541267482628176761582832163018223046504611711773489838709753652133823449318629160467750824029158064756890378007375584618826996182456056877259757510955353762611707491204158464222948692524574741502955256348831455077500860111586849118879364459147736859565318559055340741783165681075791990128372128724913699081351801027026878067937572589897053875618814887648811102869106388664367079276143619871743943739897854486535023292909927271506167317162489801505483237616925104195286936623938488304624307692111136241250222259599022141143468818236339382621228563365341665535138422489217241124972097953308472822139399170515701163741375580516629780794139965448910833294367721994140938476836725869576146415759573401569019697162768190263743772547191261648123524039493741890233759387348103490811765999804377458320476652610847143750815486910393447242254755142849402886273660174770358805158765504301425455731907537548864195165216158283088499441765424096414760169105795915837432901869636573172234814680933261168728584808003884875497909202070798683393014269551928380913224770757757177231314203887559619770009349189291160334858361109424569420553534181503193869171843818161238916529911243177823741976349227445012666907212686481674900760993402872602974239862971090408207607022959311121255617184410203822781147263179419585964506598006471396234284507586816070900552877045648175062737671899475515373673445576818650642403793280672903679772339035556635345187850398584065936743346780903046608115678784494234781767616547334840750268307806086900741436814050338667567396357945791838575354555132769647173343861058351972923593791472149778469232224968515634907868369312341156566595848744803177763168891173650102543027458022101126743243060248067163395390967587115807931259888837320795792218002911304821465667556428628597885367476860050608592055479143613522819657465600179535704109565399925068329918877653810238133267997546354020918720181234635754175963794529884967579613533575761995321990589137323381335556581429085573207832132654769092365102281214778374145438615925105694421813554868032500274946404773082118160104249638427559283464575223286719767071736297912261647313842152930934962839932233284085250959792553348756504829966419880304414563730073546315333781160350018858068844301278204725319647060839561162869997581329687144234614051974909851741616260844415098608340750991094965144716359466781205155577131836020828870066418820122299317936485880578602583138284180396266749940603106463336919280033658713327939347549838271358109549615743257937585842130636325113496777482842561317049291908683815954654886869290549559769430625072844416846688793660490119040100482510987378064061560118781636948005059383307630349671035986355360741817874932210173294936129985686195547876694546591240388833013321320640745437301044011908430261463328798431781381916514642022306057930831252779232048390163085601853831845474248458069501162519299668386809887090230020248415669574687686657390765246211689034984325236340426787454144046249750661244899147802873234011231720355684948270027802250946651724907766046923977856348357525989777811526524705519375997271060680389278886945171418688536300987462853712891956935710975002670726121187890054542069736082724883347226922033948876559027433836529596635107570457578186604785483833074125612482217368346166454128348400591483719360163660662401385452297838545699707968594925318970367069380035686559323021406230411268517634744059439793913042277253613752218977561684274066285375234476320404207502850268623887310450418736279513931288290234510620628331447884475979772430573752018366427573862145200116974480855030455370871506063271402035242124694754373781193444297700342765354531275022942967691265985943993006748961718535731511926519003534995811323746940873355447014450374036306158228176183054909475729748789498152870407862964496922167502386712313470235161875494262825099707285623741934198266224570676797442483769325967614269271182442402312904476856075896807302495670769970844392802087551647721138312267231431523830128181886402322718113072202759609971600619854876135856875143718761821013914552261779295604013019739071340563844528766283897951625693919757531532433767134579510729219327825515373758404112239137055496230314760411716880287327504333440703338917904752574934434853333651263634652054032429820502113217351486169912041878513065078245571739066071073458148532474482546713761993782001881306011412967259098711395387049436357661502871936517344056322523271983847727306978642016153902251114924103448130183561174348170371884703037348041737913152422861765640619945193528481789898948700347877148796096977251483757778809942402151104755298482147604488874484988098636753909971940672116475157348600337107534212111400525991926811530803039427756023472416436954518240031966753677834598616684759663224444594082251563349039513198988530037132098749393637618747029532056857206999586281614073292326457341554586881260594887668030987929608240307970778677339796482422708278548641593430308348013850771839383141813801255677317537442898118784037723553493876115599562822261731069489980352997112711330946123551950813602912467750358543615408086304457190619256519730850551662091825974829417340162402591156556549831641869831280427234504497521474050581215844410484072132969153417601471022769162917158546676084701050903361303393415022166297863839703439434894289540193290599237818233747040298619611175278506846944910611265880888024421966286379863015052445508580901179914163303444072819867051133063157282376261842279221943931527106353435144093507151769493686573438777465362654882429871421142617798997583047078344374151645597206944308312269129718093146307205374418869144465765071784467816425695531338780845913453812396663057829958517652219613825999146036793068403709472149186799007798026071189356541487768448144514789481273444188694073442197312895735690630848700305988729193690038224196764940859940074964138025399360470263888349649907457347213189945633212740870281220196785198674796425273477989365484457158704539966453327526916024946319036522525164774798492077085144039782302433984588949478731706644460076903948610196840075503547611216283536383399713589796097331184294709810848982671764728638149120407488839820318681781998366257568029497332763836559269460985457530203697393315267890268181866106264239082084386239304552012675584302466426212335659023882008595202297866897508183035409664395327471604469246821183877121116793757363828106193525213270383745499171321932177849221283927160864156935069753777658441672217637764515228451221013510240493370885860777975603502748821019494971016564494802867400918482472935569180050866392867809372199196000490195182182595317903716334707356289300726553681560346607685759947510350240244236720029575678004703222028711093895534557952700231037362700489102240406615730649421796382110224505220220656758438343616785304060038877767729194786176853703181350728144208050029741590072554594549357350048258781869190406335976951001072064735548355269349460130759658934221328768265889192209723896468981329656381982964295659394573965411829080315638541526789815673095381260816300992888721632645685729527202085015783045695444791414908646528193413956941481862516713627282857778035333678332139156281838791982836650416925285816419035195645760631798347234903579670042364927116793639874966051058425494025553387020412946645330660202332130247856072158493540551555390411819860633122996405305847622902767498867482201495528468565398408041021292019070702557955332846323380113649048843985162546283506118649610047142942282217107128405086317049957542715052483804385883744004677092682019293410174105808774072890037512381462635919134921408228499214087638220982864503217718924319074868714759682418610690511723628967466539866618222709969793288862047467076704192782489365956969721587127643734697884977887933357936414542917582153339227637992111205784069473142812656478856806035829963649091436696249831338017586079281989753939713824051998974267364946158191538567711755671911517104802826981177793387577931663510225404807125353316384682317816797670938299437820460167161018950261192519095809169737626145536423509623839766583964716280988886405231521387590624175072839146208270040299147948637672834816953145451695780747214385593629774374828109503112809077534475599007830843863328913452544495469610646862538410746609571366235513767401025124950618762637732944289697756901055493634560243077255955364055305198198618367789845541264645301673356752139538400577469204428540669748801546119136853011866633997695989763258591402922696361153169412520842894628457117923843134470942154132324029226874835625894704149482109456258651018911149501298092891182437950169675826691633765548590729792950163363356451889643881520926157654743350531930746532219589833131861056577088839744333448796389956644403616514366562664982042637624619667275275841696625540686201964459111755641108020386165232329590927819323061341380656453114020612481723895452409250138692287584895433447234442946333103461619833533924285045023816826258153281725532020539949596824923349423703001483173973772295431056428215748213206426644573452875253952201052842762787395296259182209181597550440392783904512735362703767827723042020197135126683435953439526631224131768971502032032259695635457845789002284529095289653777229687069310041638582730425850002251404586904417589270753916404690333379892846582193824059131408143964188751393958202667134581591335819173743760432643778931715775529178574611826932007991640133169660641256686465025278326418890270497713426301836944216769563404717662640114235898827017414461719006920913882073628447489136011988457656675161592628332736346189870466309180517273131032516978148546315507310465696266015178876205289322584597151454906532804156611866307245484216995858729059740281286057415936632309742884073901493940282146343008118348649831697198514686660469217106705789962700535854130862038653366182084751624081536815435141689740840776789814020973999281539153018509458763472902251782907319693329255802185492011082526859843353221327985142760699527253557192267909943104322883316358495129126973638669635933469773839954552649050156860616825465680307136308910091434829641901022799905115629824204469863258471192963840750086134160932202193834644383857143546070071416950825384786994511111639088569226507882305270542126787329222343258559749402477837189256496480526005552814719583838328825932673500621447219544887366397523056833876146152279275615577265820828629086629887319801560053299817331181674895862011675419790423322945484687925689847901113433757915654490952214669638488517600579195076316963624208281639439940674787470426438148817934813256106191420245654913263606414982648322979921432820972821492775442611357715205104911874252192682225882597294872125452014714748224100920973863251848466096643528582303016292943937921605867458457568076267277061121924333220824015242312997537477816561855786668164328325506608404338630891226787009847584973301549922605017464011678585061844592017745271476601498585304629182494063251403491484533009013385945577396353071390518752974974904569786709790529636973427426127655990833253139407062596699669400439609029136662461362375917878481811282373760301697678026584519080258441468162024353241792673348314372654550917835115890887784880265289424686880865481764363232043040834821696370320336630992898395086838443071067936576200310645436905418294620477240583798059681929300872755537664964839984661349157282262138379168318043401904399471094490035012572529576224875705053542004401781319337603985813859443599357772878591578026382945931164516897536891334088133007481791802651207587477262160838497551601152432894209355947800872455606022177031705448459565032617402498046547041652660148017212106887975598421402812642729325250215084793105923235704603972469810292044135168552307453925736449254013307918903232059433149281942117002057472883474396246012953825582017067454177533116832660094193898952312101620003657210960696708557467261329560248476199454906118827823082502790494222894635011331043699786294533479538734166133271035765607082087502053857013840477749135712235742143614908937694007347354122719117260370913395970418189925985621464951687863894684122184975358954866488908333425647389360915437959656630278535616810619946193648277953825476003543730835911152272803983397123351609111258133231265204882884850047684129910057427450211496570843942979410575024157689424846547811719753294083944030564897418221206219795772554541899301110408808291814957476519669470571638615083008428820737014944531353208420370116379524285984681172957511505495209001547897093923377810079069616259804346507035730511762787860863494107674196004638723044652504545864527997014405683087961786924763946814290250246882321143849391421009084032347459446851099098426798106418332377075799515938626502806956636857961144575271512494517690429184457101258820700759594235633065652072492770329050906685753612606691573216266484954229135633552356420004138933356010350487975363931910233951117380367216497210698030824065519165914050297131782969922340804308469420302653145213709629447424786704732164560520629885643472775567966004000644655588752558465923588237031126597238601934342129620610688513735738189549433410605955605272711264729659674723454445908297684730655164794348136323300909245020895016195832793051765581782558315330145385339685984597810613049733445630868181468592328322969148393296316763914381738091364793703760000815207810081172414772750864706120290611064935762973722393517447928056770843914168513147147486899874338969634278758609227940415680841374661685409261805570591720517357456428421079254884955966502021913248148093628032551167867748959343377308110603865763716834681689784252919444091974049460093093594235403520574065566807970911454343908801048362461276759476478408588235276254818039147798467628900540304907308029552012486701427328647187233770545751121050884076366620294874270155712760916512014377278076933692270002682330161165140481627931058864457284750793855097522727122716486475462675559863208118464698778655438112786525646255309793990299054136093855363740714670134701450659424104549717409172781643895094275420950056167431556543984201150208716466395843352758575766932861075346491168755921370184897956386721143251688196212909258413226421299128125219964583836407462257779844817382100869741199321451516112974650110150300973898773183949618144322497814469724646604879143813772858641344260161110323176389953790717955622189778075591581149121669299626267903825031724652345344927804932927192023689866839427016270374874790546192497904802651489193677318944120875818256818284403594958656546230628729868946103994038623053443926859825839942572761250876488525813964459572040619833001360837308335496344120941190013925629349359613695777958616976754032268061545681951067921528218205042075957127281065722987377186600131335763611159465964481703978958472505717449366576756733288280422190065883639618212003496032794138510690822338261903404165177330421535451300173319437870644157417108825191442839195686905327005493974713245362419443119288680059343389643779963378047259713711096851237779170211473367390051960681885026722337376946803337551278632854663487583366273464712653186921117530760727412899744335278820868712202479616260535790005541438417137800206731739049389849141760974593053025608870084034037653301645077057107148199830306689688200771185584599053109660707378272148355398453824906678584632426627259644112056198888189538361641448170197396863558866471045907662447755175622228510335166791289970562231106844095948274017714958530327100390368238001371355415000065245437903652332611583705685484080333625726481716720129116921641876774691122477694367546286452144170127496799040560629874591905235824677056629701759171103913332617876822554897505610681678645198093151189375811152417901169938596415632580975160629878736040535035801660556281054224283405851002770798856224362194290797857894282822076147891925945410044516755886762876986130482368948401993191380480165828141727458602989233712311054350580123787074895785608869436031251819517297270564107843515891625472153608932296294546514286992683279231409735661277309633801939931286669058721428846589865719284650496187656052186077714854460865126960685206028045738886766852883254365615259814854690508147394212032739878436751048497692676606853450837629642497834731311992077619004490616963546630742830317170357178043036976463586254899314950896007155022492917316086801396473373748589512995432016075032433755959959415738115365476364755659732498494706283729388117361427308798226305704406976308340574567261171698078171768685825755287963358844165027001048963655532099229893521419897810881600035923380068259172093056671538269774768978083995962617900900385226679672778203581551057595763333408125087778189552117438443118617652661382605374023706259526374604881155237724952895351501612498262496422371478974603613590519228722813717764965287077242514779132733152184534804002521859609812837130631009183028972244309198672461881459498820043180862572560208630795544585951176439824492248512920858264371818827854699433372222445796416639538852223775841365851202461765496535850364125672358788133258034983696841441513367277578507040898852231866620955156186588887946077961173868982337605808703860660304427136295927738827213500252085800595010555784625112982707492029913431049629384464090157330934815731200756426320465478304582570905587498977203963550054538854961101071517439087869088691563605392286388110733630718441662540568402307885140147377389674781451014183920008387078758351872547862898200399984786314642648176884424686102989873138341201295240313654969805206789196308187401008393170734117440434732152350745924358759138973258575990048846437598802170430702302503187142946071658982034950096041489100199134098439037349572426258475138675668205016077499405313147538203830613061439843075347701652769453725697243764596513477239013437685185276909372081007629990949782213608145435935479380625957353134050061009775903945857406804899242976078069256133328827597524101004774924952041858825953622213274300626549230083073727643500118968581568283452039181746439071069482554407522927997420778404320360712451093944849847858401163167355084064737545408270084560710519162695050206758325056007402387520821122961296636705651514332179980514937852891303487548884591149433901201825601884467522940847590318752410229676935367518245124917309931794760342871970293774059047635117276134476182395811041685331917720485013189082233028219871642962155040493269420587574872447576367687852261773144859504569136798201310520598215491054250635908663986680273407310101587396566496922622731263188164238086480615551477931524352326624379246339811007424192633596927549718343369046693478886248290284874381211853952909408027020789749638857035686452244904644169205204276173773847180245535060104132921731110518100849586314737287961582585085329873470804482917734261844294680474323887843344479893891706815759253441387068646640413942758299570064774079723844099330442145041297242578451929228530616992568390880790086011625771165362537189480575975917171289778187109803035718698301380177738215948558164302930959701589564375087063748138712462480497740702039446319986060992123965201852503352109402406697453815776264873326226277250002558864489456607449138407296414459166622161418160665523688981016619187776583006308264604798893482878251993275672411194896991136295858328383939745042377889381527407774026415408124339637329305503902300780916302934743828160316477466548137728417352843896063760435072178989882139857045516279926863353868459233872606346925349304053107989705311998127864768940561913295847794948049207776346157380477523243759263845321400934467136851886548858972224537010962127963368651701876487092702686688621669495417631070440809824495282047021753793648193427793592853256002843509071876640494720037821564929056591937211810979539484156618951118731704651263498780092187808059176914723485149671655139581980990097731990200065831402200658475348653843673464075067238363097951137022444095124528305433236083416567631915798731226782458476711085467532797721524805915938181509961257986847920177510810605021158224171480765885298428649641232464673604141046344303410368323069917606729524928557467206971263760250892791350870252588376168755074920330322088276996827339399178604309632128386691367228153801068236212100745788922435796845861013201642849709109842901678214639212998778155370922197795222224852809156666005202504284008603398739111989086121296672908479920157124462133204036250476795504160743674762249325881456355668872451689506346219500180421767257278408006765532115758104140906839928384297452370340463177558653765085702498749076043099140188254473621864136602801569486230838251484721211378816724974621931413355713379671674165168543388576594724502327043582711072988425905187035026500483735400419397824543015350490565211110652074695989447102990694032571147033156563060638139103378083109474463290676284139100573904662728910726132292333181750179933288866276303318915023391149179757971199731166315923390464949693069268520738618244199349921751406845615536694292756561031342850906280573681788950455382625700824338236742499742221680936544789876732209646187968762041678953785576483122186516646197020627878424732759593596754458263943349885089209931681049296854290507220244834659252576145252202585446848926923836144740270307230497140171273888476836661227962610139299174568503172051562774726851860671708012948334156672926577128611063655154577834141854792631121819686580709850321451385166059118925264225246386024461999575619217843750392000421902037351350412711556412281806138863036952357619583851298301356618006377184128097502962484506670371547419864771408012799264444988637552844748218427857249947211401828471202566980144620482844287865063847271241116570201442258596433967825831064288522054302903741424052488411628103669878688162126822836760542223977301842073071798894784988092642826171779432427014818508677891313562960713522749439189949423337442757376461180019903383481770778942764888973360395073428037031080506572728512507347726366611088954049002871368884396233263874120384552444852612982916653024761022841189935064387817367122290737046219774760312211053472920220813163131754736602321878460148710139163671702187174163834180168852427958936623796407864309975522635056157712282914812700111431261382681001689132553791694138969219363416583972308912400079229139225689854372888625654683069808231154766771498776183868635539281945622330268107229212680401162666055516712159884087715388936752552635587046400446335858213826548377994192803935781380349412200940553548899342522298007314037277078314215710535261377482072282102529048377589527848507130757613287419407756112901151055987305352309727605871772477099445053365368858118510070387013564936982106160427639396847042530553448828952442164427719642716596642898116954309852266950706423749264518654240136406102778461677048655574383637828376769682571647203801529182175783825782171501285953218390180568793475773128967136477707456466459498298593570394250545036285401789944281281971603025110700666527157077039711639939750469582891508388410759076897306898311109905317237582615873128771023931622592767071182155562815233630331958616838264195020257355524496190983230561970303517514590843215125359956366929063810341288463962933061769373800893716665990231598585647598275471009308519848240441882253963451611651415678359870163640269622836748588069461558425552902150571368504039059859608880322777980821717485497293031944727288975061692590541790985676293408921377337164034637249541186954143446716069364328958862174886873025159179308968942166743419405684549094979223814956627228516781371625039309707359536099612549099314084517476884481515450831644373557937206101984339351090617933649098381202055700231579995780478008388861649199768680303954620059355790247871462479174509334801601260292490162588480087333642033411825400325779101972894552852547114517081244879107747679201570599145749436061530483637269605873552649541710265434925459590644631163202745532425659727419724933110840595552330743837064582529132348260883513768977263076206617813545493349084445573264504736745071230065946673649578159836280418356032125887467219448763612649714044566902083901250759987787890300650810130545967778689243445919282628437427954933175676753043771097218502233037521320339819809859202988474616836814861734098754705556942180894471270228362810113606637242135666894280565043246877741303180959292601902713704140967669404489556337040324959547373589600999708516503573985325892287061034834148747402468075566385660096087186493232900464007281693526724841727754827497225582312480964739567723162079538210498531956513187042011115107918957542541755672584030591906042724330772788484676666879756025527812529817575589204644942967944471326185767188977753458846414625882634590809585995330862303086702990183496589359980468163477559787646361606804077380775818699717758285170268238633547140935454648384279180188626553225654079181969156622582751793217065949380247929282853689895349659679008465480656902629220535770142538559883706215544076908754903390738040525692167546492118805781927713697282115270018709658496928095681783862884144877594915887048430427333900528339576241521329861586783957312044277948584257948662844051549763661048652529147905667089783796326559562888349661277122105844984030048431119622303543813335853420314982565453115413757538492666257435501534860155422829979268034530485665025039942039590507422441039515506820169191626387777685970451407093201800937376224821991656875918842899123592938552209848162797831559713142346808094956194709298671782424237622278463565174571043994548052949091049071174904359318405625832779651656142543581468107264332030977414374273084322790744970186323556206165864212050864270224835798791457878302029471644388038488835481038963152030502540890615015678810957863908809220339861777609159877081142998129791510793171777464866828203763196128679314557180787256680954257086266570907111307247529063388307846349203838462751924312592331748683032856677914196199252475763263184731245261870439543828205488298093820734752724528532399453229292920255685194567645788566381723677652177449245192640322372054306183461489077664431616053665531726974650152453949599816643547260243722599344682691740742244685637634769901048154972493367191438980582237659498515634350827470214633314342821217079719741498941545858465794683096259395337071827986660870654591360376590549576916662582705624157579662408491851617898059324712285708804226189708012591301993610842347466800461460673918217245816023958761061210630937452913439600523579003446427331405567427055714943636888324194435204518912026650144957006037516554090805668620290243406738998200172188406024909902139810321793699693946937506292820192418232648513955914685988208844592062684341179908053649917155740599956248073238121276681075841754982906420795696922697176097058768763586849268416600959513503823904357779486678565234230480340653552766729866830677534877323023719186805917483041529844018846600208755538799107556454907478317216540797542634698331420915836376917740748610728181696964209013885476365267904054074785149880267901638393095037813540615011022590306064591466795773894462967370826354443909266298109428982839803055139838334172060400503032632662680163046857317076288962924638333783230076455367650959792137607674141729435539178751652660256246753431391068038748699847671295174159389276222863464405239289954397827588596947461720660658853322881203649542631854911605742423139882811591036403750398297637349121450287554454542180809425338824161882044313405205486684690559443745134846322741801429332257931015087011538600955623310827331737069067971539162090140891574740477902146290812106321235536651765987554241991104047083860395262162884693502611168242404724452554062466416404013478379955251707461106997219251418014933730778072413346165472085874690241736848024386366933706942944872472670031135406633281978466909437374322815720976068022720189811899064215889194617706605387595327927241515830402194566578562351250753548632247220944736677417530918398208433119090764061381086791524948421029959783880219391078839892427797246331353371766914786379948298899945983604109375790220646189461819240452724739765106606769326290818784129157262600801572800067360744053510494533442582130132293335904611767669122876460996767679120207483820589073769572452112192278800720724259607052527847266087777979488790075893241695896498067006852960771369821390359940741765246925623192431814232592108444097353844329269314397547068830937981900446811468684128254982517768598435757457846571425797147762832620386134492975216711116108940095146788798181733174099999644876929880398342708332694358607427292997066589257964428556947798255689075200672995550450344136475293590982018990043303804173627425546132830520192572318704360008906667218594637072720710763229416191159060740208368518278275296526616210990898422215704524345115593669308947262921872727574756774571416926850474573976620004312385785502080250845943734070334273522054405672239285959232263533871296936456299332571242619027274936200635023669769459731225264910402325388830616919279225146471116331960767898467245617761809407623250691150295531830335069727495827151347191622566503650536721067266556963696880063735605081847810994613635017014595832533259346822171713330815781290795362479484391297575048577352612731877217791615832371353790433576249273542521359664653868047382736057465417560040859843749578828890159266913029099070823932750902770152849092509930670877490015721641969054221566764419336606694424858003118060843955397553564698712802441982892760455186709422560729878473608924448168855742627623289923316824124379950385298643104399912091744894641189860382469589343449032455285868842456010194761833645262260006754000515332299798158450616150949249419525343406832835670292136352835786739062621248094268750366674483488682535344238998271874832714341941453973709495917882436421362807463407273603955690248153797163759408293158006992347885373843524671373800192138946988810437690351485072861170772170813240537111545363946288160919378263211816772228930915645832276979342466402038755330787137172739628152740360133191582393765854923293350519517314867061271103389040345080985049545465870451770243414783772728045142648647771261982938436952108324643937746725377864330954916412422758180082679199904735796540761016620559799178884652005639975849656420864487786297321770496583481455720550223397054444541589913513217303217575431357107007454110193787845197018338684102336862633565225400291076164804702455294778192147050042227332892722319203812953412671595967438724783032621090030087172430753680506554944642862817034238108880218355979591208753799614045055983693029108844168858000146445118735706763213771036475446096002808716149396748793093548078000277333674898410311048091669523105037855473581668236521123077291122061552340040301549160280523795912127195410457250056402761125686595530286478011058637830466080888114314203518758703704126878900348027861287244830460157997329126802220609048325246215861169300409158703633923827439149800918828921485684176519303207672125768988963185105370787568068397123353196930531746153406849812579400337267183226323899875371746768453209433688976992810286739594407374541980861900461203900227545472059365719162547644960942976157200960398748913810674658256185020232986730470040272565178725213085138222118054792072469735744458760650119496633243297722076881645378538212969765678845732743438091133767819858558374390440764815292531853511803937206677629561416617598773795991821208384510695204279082663439124503246724273113667273075901714268395351563748857949242398621652195118931172662745878857754612964811958399994355778350354568686655230272619494845236658575857085818908982088284172876855828365845297208245112105388153327241892207455443263688854903019053364531550788187595887789197601713979152085440065000966983297896369589196454370331812726489356748223109785408808097409127470877464577697427337385000332234132322194798071867318766840183226291641624663255127668295605680053235329942227549649487172001388509523919997087444763457425491165232415761313874536870742174593277416923162334125546398777370249708959942639424913305254516064630216901657405767667472602549435466642527204941645469963180281384634250151882331042283689237205509371797893492576674802927347557803781707722331481679930883990396890675760008551675160502727419636072259143041862706390509354723893758656394284180144889000497232393995445588443520795011338104439446504326277024737314466716188940997922587125483452496641867214183086152427741980220432066170379262327360978734549833813544031719962762175180926935255999051681226889871917345052513941703871360013332898602595267051300393060219467265334076829994902674933516845602652598031695857981547891119438788082795256612319797626697040723910484933140600881754856135029039559243300520637410697527486129747790896381358210650483082430709615495497406577789044816022491279756440730136678542500884711832336027572139655157251345433521606468790799454528697125468464192595079842367400047958682469878457837180970805421451578469976130449539955192664004487767813248630404556999623169836065390369350898844835115050533898871784508200160302203295378422088962543595533846846183533831450862886767633690926240630246610367564069072553470129680719506325010380180574890782703697152029027507359507626484024291644386383123172448011458213286681395672862404847865380707443347703982817433700367834290645356882104727360671969184371011207428096299188430779376114240000802716499590309953767817218671347135388262067390669900845048620014376190847938259430030317925420886330218480456472186115360990866665031810975831771197772905651370416783622869040059687820824852956710707124040655344912786808596618273254835679783898190202736035908153634193397244044956652922757379596473684576364262000303602133169113817646809053005701591286358275296201046778223197648971773148918003153409929677268105447857366371352058356702721080994136841705081470846997217641792549774835726208298423265979225479353196126979619433871695797161850085443453536705333266122810832433442472120327667024149447798596585298842768908866533694291823995975625920662007774580899530052115163751788813671540189327348274548586993738860519408066452901480699587413429639955013297253846806383856948639560879296104181493516236881707593536165236496696563683195484192774439359797414004360452111182634646200379556466118149974782093406581443086477123562494214962484367565347786453425785192622419168376804803618122055797945689615640289426022548854830258219686925997284068595168741773019605405595291551830663406538587919555497549409928671401638475134386711870905251646842625992965211387122964127727474888585000496962434657918825166905034138767417992058606910688861357215810713161648877731357954891870581877249244498793524544337009484229084804964699133117864336768769667768548461869260385174572620940314725264862899043940761623595161527233326821659609730688410430700224020061957532865311431657872163433335781345249281669186334704087788572514139833444070199361500254357631657893828877133348175547823703591912398533567400360236287601792963298877732892524125334326665150084845121648485098756935809339337581256527775576055756375734981805671834002368281773873877393966916699287419104403911698348917572762755384647900922743947471134158419824734387371172599052772628155202755278611660247637210639196602942275387427992702189291083171247277703876187266544760562092078836115129176984573492634916975804270755814155566751000523960453417486408801204539525502859963230773905576501883136649398586376355054063424115111631773549794389548319121325814411088491981513013834987031972732531215101651681575514106451552662316177892372196587789289120461109027781600722261208996511199323015339957337120763731974146735822981318741272091326831945856686188990038976401554135540694025995734334282567761801329209975844509271388462974422740963464315165262999555732051162616630563530670332631002080626594550690747574015306866265149210649190310883147825589433531891801618263772826942089187142454024877177092274857083750180317696569948366184952351825877985072849578331831270949459149251065565403735738985187338871055538220921363839275540819477061595386520137643959725677603391346107925370062090405366300883308150154139291709686554378349821027004762479462776139690184607738428007418084286733785941552272743972242792946459433245466006569913776612208819363116147190491557781533733393454259331049078469168018707631681800403023072078579680550468829857728382388978401326331018068641827343815443700701756130259375132660697255342108200174346395202393645623091989254142968183415288482080465401759694857844788890368669928164021096352810847752537603648501620098294122602398685353523951465871234370887752423647180817366229238500061211537083313384260922467123178266512614675485477055277807855213924664739939204204373363847060119831213953848989968755089933928226312224590907017042737211634961220414225047919172908830676649094341945877625736628660876811856519617362702811687714976107886764923505076970551325982970348179879170740694377359307454499719260831516934657723973635683170192713697950180503384005594873998249861849437912257385202098265792294730607448337549966742129983631909387854692195287821332593219588837971267691720219415927576429467017875492641754823016860984961911813913730015282392878231168026751474673840734485428754653173184510975378735197832114345194567418164851956178739067196357113836260048044389804958059444608228075103148908322304685440470232686021269288261334308719545723371348199345696005592168970894994011818731122935090127760985939474201230652633615362946015215694054290166846365385967334605847581612853660643178994609304011089906721551795713942613724257073554998994709858088073479741098125901300619922668149206557325506292855522025617081610039792247498360463277467681290013702758776854869962614314551281284231638891870496016848102288966301365529563018400839008770618657824374464821357743705014618122930991454958495628292219342365261096373789992641255927126075306005403691591848927029473173492908698383396116381875655112017011860939282227884451560780444348070319773132009212916679153661029119785493470617192390719224360764211541593533589358790723892569088758980439640192620153636337907108459260515182393319474175705056468595256487293810313429372108459968214494588183540249462712049832990752858085103683296381483614760367733862009018260973975030623915245827766161270775976728810607977687641829931475532629646944521179119822104216553972028114305734051325818693421212919767509927079230257302660192255521450084852766908827057964891403331976260279493250014074219454101027587190173940014035180789249895064877124196127536378917319356278442239618210838223421118441243107782523765039591328555596258617168205862704299683460199874028516798274566799864084130309891682904657701534397027294433588261407505370549764968698382341428329408466538775116107102791942358342518318372053382676803057843263345513573375719425010784768229088301757534445642459316459403162282160277378027889326809734507525616644867332738818538068485661956698032534341935823226606132125761287967760914152106793270273988120540983600390950244971964479369791055875990975898028506302907526598304617925876362001273660989493368779643182372011408786773509432235945168979715769874231476324586075787846545415188163945923102735834525133226579399176682010611588724849328357678790489286183647572251239013919516561615163328119390370995151165255362793036654330423519167189634822098300570181581298092902380533840023264713979048320527889266653486440551481448351961551739944717418654101470412519357614288570408665785108358822183050753651810562489973046119895531295160049066605588411285022912217103536661897976861799397542056604998440844811767055978236877257930732509599777094500264376587895057841645903616282232026415302296133043558132388667311342093585247221727274931364273340222228138207780313428968708043852477562074572441535763612328607303468968263208460124484509843490099966384637331064759554465160375373900525286437511110477989082641033250856026127383411126004014388834908524631046588701788517649558003788606475941930377621491286156055884255631941033712970044093139031498676568828241849861682294041949574457536869886270173682738511654779755061088532435833958764900132952333473260361928964256885366992398489940495784407662191982791785436506404264488411300247191806727238591906155456270798184885169566593800694224144224358549984199418122300947484105460789717897962663449441296294376672951732382658154381075609862478626850090533445959510420518603009001263293081694303521344511105481448875873760557730689412656253224089535355046090914615895061095887328003706838188133826162279222201414956623253371598665963228348444855010217665864118512996622884191279717752135424171564318045364267821371261645943016512666601667332355031796641296043509527200951400858983857657237175265793022779784474046023490395910902645211427131556415985037337991732391422838864197248035318291793574074600951853385413680060266310590115779135723315107945248370032439926947797731368182838889548646585786147314881689374371539395668130776784700476930210047592570329201837313186818333865297513438922944847163079466204260825088380493860000029898844027569255927249268575219339793353014273845980407202797898449895567184728199727133513441869458928018258095072690010979000139668130863699035118324376611360231778976159116775487378885887840208323285034584540377336342253633480956511994454691995125742000545431380826220119420002550093033145064335900054797482726313315241710022368755437407438497510963269424936236233985050727700235501617224291909249566016824032029022668230214077611912628301874522690373069221860576129785520252006466981455852215116430673194197309165987270047881599926012476257336980872133798982302181667457025699440427938636964516279418004845132454314013133940158080150537724152193560059622032659609610716001369163430183125955586817067238208582887978768854103706469244767742853855512528597514862639575063247317966279307488650118668322114445148355624193209225348760513827277134799041219383506043608356178206933337833302811193284818374437014811844678478234845698464028618277868285600098638194406062964669575700822549703521396554596804848865233397526958767244538063209674866301699064318718238011225926953183746737556972732258467008369113958352827802665876557315823349792510826873020359760118192377013604243240503220155880128453325544209943336556457445952831164828983480953255497329685430833416969939615324256061179038580369855396562327803277704227871914061692013861682504575184147067521676838745414543097928371390138110170532332031494563019820276239500788184252015984026667999344288954899417194354839477648454875088797663582108687431768338343090339470131102556355523820360350714672425095726085864722952982523360996256030619846632737586183120368472119010990099097890440063741488719457153089307144247123917267008214485340443701808140076676186409272343234234963192137497307921278563068249698997511537883325390243753924744311461135234215467159491392537113216739183424579269344564302006643632980808872502074815872727849690042869317373677551657882447123432700874550699165092815705173349632773935070922633512173667869761494810382463888998015257580957520113413140977765611430816706556152237156960960129363649275712126522815232305179063627134417901135300288043160656825690890839286097253638343200826858523811701451157212874633688185938581200864465805733738616602875614344223058516097210508106433782283968053509774493902658076347676815975079820029548521423547305909060802157421576242941242253103080523776405178294292867502966022329423623492763041634465632172754944751283342720679401229370315720944173171916289560700604149697530920713221638045038722595041683391243498249014784252749338144236930443363167855366117723237089008435782724519615868784969392275633118632540683196693653874449341237384614147496397731735713867924884650732198061806957746602494423809136983082242076952418362527822119204895439545059682411760370552264467005170510949271199148012497670998177512294678802182942766671442488937284072106183850733053284904601718798092414675385081157759973994987116017770437470251940569805940991689020964470208487637531989157574631161542142226126525936584124890991824052468418804358872463507787696936699874613087655660005945361615840030272648455116253722021167939435035241597087969540726534317980432814522654068843642553343549734834563317909202409022660070722977689272054246989623170139248245196812399078960341085353630069076687489895359525566153449846918806165183734000393461479374880881124653620713985478419676120990874703645277770393122326494453792984120657013333001631213459408636376162787440667401795801515585097615152275365467082243164824224928966772137193077776088445888904835486601036856570473071213965435627375219082228974753528747300313721802306123780993109819914728723110620736833257871861703234701984054034127064697080700695512943475069869655447745323050728434338875478731523380652209942642092549398823378482817150844447136378509550244949387341485688878440473598748415904789234332845163651226208467116800972982269013725354662261074735793488974846299504913150068194586944924436136747145983714442570004046960468060635920370804693070210610246650377907439755051886490418301651211251379287689235626371245443231011229370583770600833165957046030144862433754389884973365209745201609333911985232130017883799553777378662065012468771440019347902020290101234663445943796942724538113077142222959070664161514736515880904078372662186182684599928944234620354097039923323411230267329315469191419152786831035414315890539438157950300152999832549664087655497317471340579128719927373990514625314322212551732693130333056695233023418356046063446968269323315068892479126458074683832073604351631632392437772512262444593939648028267619151258237366620860630195996625078703234142162873175423721423064073129835295723788720580977657390241528082190519796278649344670355219555522010494343485873339219760967282414248558163067260732035509510054475160453326365635715086663393344421422614858774360704283785209882167609079311165713914779421244139533963106549631839658712654457542137534951119786688128575865833504659369002896645702520700345573936024711744014666994428254248368665687649374906484519031636414860572885533844978422877751872657021374412383782796069139513171706947009673440192560079779830329955038590135043274373354431647118662629323883993666816448269366660411548972321310280872083836913348754258594925351489517281736157368390521184535270668892035002542842895266479962254591864519978486853513754798377387467783252773003722150972255098677820312732036442361759070876145295854648669804717968171654122013956783959811552231542174261786948127642753075294204163824770123211529844969067654581118228972640796724995491347760505497139851953444073211313897211296141317120625333181444724880840918129876545252101329261177385169866740790377762015947617923894396918832251577079529153076398170991957969915070280567753924881708929425957641129025921913416671369581453312322627632277103768857463139624826694281673759631782126998533486524255203424676756438098539965930571412350931421066986909060408478305550506331496317400536762846647555060662159092815948824737247879991654400833352363763685870956192993008185052909204230446717804065608807527733145596107343144735828074303031251796770539013825844906968083821404491717628111733399215536195566799462076697631522940825186930301752136783066605171907826839792169623267677872064713962221443046376241310128937346316242831754766789906320616088598053875626291327362500985752404008466641886477469462674011611609649981994315709335059545812871699566014479003451312495575221283371912180020789435519019346202525443244489183283897847431518652874202187432527017352565952732328871277601096764942292288224164236709099643648545729245375087167585656842784612010719211978249175443635454210036119521225124056847087906898101185329907136112418560893231963631768618517313819249709761569529814005999265376672204671963038533202603539478376888861199388977769818427908093637816240388138449175473161037840175768032352321186749678158416519843257113946092233024213438743484081964643700058078297455294891617630854283569612246457060135645289953366569229678251074574117555703982526464705848433821200393087845597846176243302865322301713842573394681053018318031288699813008656826454457830221679263179286833774313420815286007898942363359972440555818779127519483167571968637182168113578985760110420570805395299776442829706630349897014522646927020827678182715876002673965447554279263036922774214311343023542609864186302992915933565673359010661981422739597145694042710755402183083122237427529389699073436961678982126254568588140704838202687873781767871715041955727936275401029498279189933720450157416636227126755640747548382242716709364215980144173542350297879236101967701403375673773744466592524459891303368887252013609703991129474501610071727272138117054038313474094743121597647119252777130462159291568062081908786068134679772333517531260803199757430532435363915803834644899989404435747354619177305127176714187686911293856483202378267871725535663655841168675473339486089661742649473544595794013390515201297946227774217129942569959643696915385173497197402079006747479444205913168661691235045331639822254467763091637621329336934067673103722037871709068800098709846896128762221693372727236085615247412114141274808308714655090663213756232897778246285067329791087671120139227726173972145669504785336098021862450256915767434188360130081181294897344862747390079658905105143281192294190578406227115785687311893713471244030275046391304037308514907446191824636542733325936263963347086287905746249448537026742091279079353515780525877279352754996148633602839894693387580187035425908958467856607987256033813842065887634055373725314369921134941302672261482805199707179199670609361664001342781560928174839025415093803625515455714625662174641615796943701396669458079268990931475197585264886359530094221272847260877272838490918986632985023113765120181134310786436204876675683194841163641760409247124008013947080745352312196777798276418618071766702960029168948072022132278652479510450231311692129477038585901852449232719903053284040876998477266484470710115236972208676796125881123182350619959215781690153518350701755546931113416922575666508173104763755434600768917997634355812897526482172567256748710399062557402359023479406089686380387397173694554413317164947776802439127525749082687602035704757860743127415447488234448330918511527784141736138791169557194201623232453561721701191207682775018801835575353105594621392476598586694357974903205847619110611055360555159285647290290429796893184274687495048991485628202508888072202473382135580153643623132334127983654548400422642641715880531219999676459799893179506038470427610766192022021010410618940836837041102996733937111178858441172285866600340859852417940073620042670320021436891824399895037255447822964254221385951696085621288508890679249186239670785716359184194131731141031776327146001908260904055298029935783487938379083061597314142250915604951085823887193198721959379252599831430216302657116443078529933325990611241140330304572653007516452980341885696598680960421601104243491856972326334107902550806367281655820728773760767230121969869649877430742710025133030520917886465390528617249831236089804695369956577581135016024409826693301455315942880092748811122587274005494092466657839030921558150288852681587621472702664978564359750607864228301973300647006785874042475388112398314843919682460408212914609322741284402572323224308544812607470308692722529208004204457483153531886967184538333964466382316445933894341673612461592732923505261850558405296638946773507756928435319763723100747339249749592504015199832869075854654254235513890830117412368570353763145187722604282422059156910664035022822003103574352227069034615979645732764167620563361147320969512331405707819785969059518272105791886443524338055841762935383980552367723651874230216716698940996589022485875248204798810866688294123608244515705607214290374720482322252764517080305084957214510814222015634167231245107125557767910179539622592368856246260584516105026921656830111149042498855073490588746594382728734351233722604204550839379560573784593731940470532241981052244972900199294860018329028635742885927120715880175265827378512184495888437309999149337443931028036326787883168493690931915784054535160072759613497901287788772708468096663286852619458605453212130888191615632679839030276712046109214165254272950641940754010280840486581058406611504564478337873114200044059405427076002261793037525553145687335658209640277030792913719146657114167424736588731612353546530327240472864705188112963205856275549331919827224653448274328925854423800624044094390496238071146845925029798511052371144116456645355826230439914357271450709410084929666695536556687826290452392535186020291945203544960708828868244192648943104327809354742123619306145342598077710238139114646258686205065393999934042873448091337702068030342157733706800228518431315547796267137518860961299608758051012386406928120753791932338284299710345868713439891238159607356164328255702186525671279812953682276588056655884920245420693367072602916164327320031614687475288467270781756808668420431627885252405910780981695871874468123712042945523976064366590034229785749474323435446549837559734590757561341307927320506155315338195614142230816883423755942545881828515549584541686762695872320897144001405888023588420629000929692951159494295134184860185935355154639639101646192604181675440653680196767024102223300718748556778091671552008834334416836065776148118688824253062689331872183231140339601839349117071346814781757777903102022685329814721697525189413567577000108004604642535370931826885916660462779191105110476296152408959211038144852409605872540251247428037695858201158204866765245867941084319211033672707467310303981145266740479011072484529830677426650281814348631749774408388731456718309044085409121635458846055445557095147267647405956602720110214735721562166140447367573795800376378035243722996684644134711465945831969355005162067375743270628511107507514959529505248950915337175232464588509658015307073118461612117380472780180700959776248814537949492471954661117055775783320263439090408797217309030379582216770379896709488479932581618949950757886800747076945140958746527504872523615912643471965937781660266886581245679586196863754082665442401166349995414110728042956997607298473463309531150280986716292178539598715691289978546817684075427719724647390147140665611241290459529822138604504427216695765064867106918839671607048481453338050427468172057601785978021239065897031933341428187588273061092503027917478545216234813492234010242571065386350155186297992563560076315851103272973892653623265223485361932616371203846369660737812722945269065857760701092052788847136993182537642737887704732664314900860789572717767401254612330475827712418562841956141477835824282576807116023377885686523339988051644881388667691124290739156166204840352534274563200243480858105330010359099736696066203735173604937347458047305234124824884023212198179474781914460557911736021324854434066661563280785150837234569328015070520671661165762838539620557182244165770822577402000884420084582975076576671771832885887827923513492287414223664379121693358889222264220266651962541736034905299016939267077784330051882055223127349021856997216163541877673726313757183623302990892348178648594883389057721584971026773604304727729408195384796376080100292109512340592973618812321940078994666632631498111239396716937706351221287694307862233048714945165526215756277032904758676442950249202425931102329972268554998989877441557927934337958712966983568536320895227324028398105342785518122704165380220756567272928491322323242118312904039054666585428088506602085957534465132267081544777895496871370442338151176265636692974780465586034178217928263241241437892530278986732804546783347906636248384609659787042490779880728869127763158771703243677196211499195030572157422867079791928438944966822412701634396035466665194992148503626738611843534815889336302925159115184419153325870463813381753318709745224701341509050833067076726592025317771164270593598028597986641611921404226901214258647037191048939565964179248708665170689609643027178349753306724461230059368643791299298981019307471722455073459328933268229805352754259703080742262084451843177576924883078843133566554344797000785546512440661697745136661410057765933826439262679428814153694452927914555182248062616812616930971561684100435106225250362892579379411347302901463969987155774279233142288022936902015357567000393788637494497919707255490606590232067248415274840614618959482015647718815938923401720649080275011186744748697911465706049033919600118056944020230506822472274658221078529549830152199697250787412039999710896092415237816266041546899184020686303977947724580764313849284355713379853852784193179263119053182827597177953500169651130679004986894269363481590903793353376924587326026743519195603450249022513432168228501230580551166730415588844410617809482801785140351373364552845310081742916479806171060356996810730094530036178725086773778937353679869889500099782143873153205813447041162738891580846248232042964049779518571824472814702570165871332114927861744382123653948257913015321458864602804603291634326280002719565822149212155656737458509978187043480342484763450710839126317883237249260013540711223412991506601258533642510642580672343824447231607582097410556187758201947879272102358445369126542371128624896227940323391370342174665802770972633858769644204144721933687840126817110281222210493452831148965859786565297982514028757878664414112314966451385452722106575180648937774293717335727282299003202652529409490508980451972498148808163945584919289499978892415171339322615660417187898935547755119303657476833377814846779258616250646522968964558900036569658566296892116937406421806210289325532203709360217472423881918436430980649998206730403191598513071325312522430270134195593659481209162369541745217839280591956618309518243458650579789228314893244156039820020302398084746892103774579235067131121147576154515525182431665952981683500184179839435991949232011458815517686731052062565567602004753623191408287725942684520470664089908140348802921289726148196262687114676349339837894678240769951195241931562794584678777941437393962810793794510919130966692385961707807512527677144404913935522232297996625645614743494507975097207421860193361438200567187045326721386827674690786254224526592653261485466744398968140995850387863390440998251087563979968242688020620740829639195331831943796195493798116880802236627087472660259321278519700787517572948650777834985658331358647609005418546454643450591606453102267880848996451349466650036500430226451011655372345699553482807060045255917764471797550616057143284057817904971869604944884856703987519553653033874979906105041196381856540183793545773471956193897597601326850633425236825413614786299067441867866376461150187991274761922796435486321494359659154538056796255240785491936132524758862694956394778883670091855819502192686515962229148587985690368511182310958632631906497982112501162745651505275620868616449155332325525630599254582966665867888480712411123731337277500528574207484449085007320812518868292940094259132565471295423964073957105291817994612794072884225101196995625444513813985896192659919368957155148229697557728611045959953023345308130854001375130212842361804591881159918475495489920430032219291954506640545671926632375210320014157386545533151988889150739437996631367718847761499105954896166778037546629788326662906158663432405335222689218382592960514681783095253957161645758037509647069694809194244899322277955115003620959477922494529591158997932660038580261455956257190445731689737621608895290992563127705567634055569562542175863354839525198943400025140138309719434115909416791488625989293120368700110057251938388983268418103445237310142836588003437691031195138878634550720455571541031366917109467829068333546833280621861464477753284312224611665271628924284942909277653881282221768689468646172248196318115595270961265900995194553146023876572505175495940533911046114027855308594876564312003722918965078264711370457551201934713298418583656466278755815138012666876944607200263278246528928795845782692861424680251266539572395039397199481399678693611652291833912699848577379358960522557849188204283231843143875126130263168983208483621359440327767421542045851741580650181667721130806544655116484986270211256033318295610834416786660388479441269010389773232024721606366295425826194176379473328606635003855393079597531599859549039818786682060010495725025161205261419249942949442741403401954707539113311884844371130846973508388255771508732090995464668560570308690216658866982033049441814816134943358465296634091373763597331645966052563800829731153952558338439109468247042685946757416383717034117052614897826351697682349379621659964753615582837538068927921031773369654452716881600652546637881985546670183343818065964165348615840624078315315815886033180562371528296792103398433543761143311868835045590499368566248968948040823188915433940292624682094033186085651350668163766794710598372106940831392977761144533646717481520899418816374643521035658872529264792754559673107561292813777411520103039919682407959741232545562985983300147497191402634881139888424464770667464733763833658680417230256217443541617142692028534750658571570831993657898247674534760577535605272200666636856788384003101577995298796142925534860104342041108314613321461676261081506241714677705613371964217878356994461239812228764216761727345400813082452154347945874515862156109555198219021231072521095477135901878036613627951885181465535863972105806111466397907196948672312872996973441567347166772068679491335029380489047640959209603320869546367439381086797733506329788667049002247776886115683358504938294455073191841716172730722800090691374520112251679931786942701479623823861271060093521592232394787435216853908804697803018728198972441889041543438429937178014041835862608141312806021145048970524389864625610682141054774883025462699432726724699796969353240085308285008480011893801629529454194027180551544897319465582258534793981746838022012131509122113478778941036151736470145408356889744264890402444663564421475215460543890721753126845529328977790468479476006459425532173804263580492497602714095510954140954568343822697656942332831612764156943142603119156051081242890053652724824099645636802373465602379304562042938119864649148864397375380161331950575808521106877181409732390900372423965886327265869727663536550451809734739750710915944085864954707394771350213361049891913712347461745261720130524599418473333544804775413351376284125630967365943240304581946144254751855040321255835499199897720094739369653423258114931839656340963880631859348704853705723865948069543164728490227321231908862324001388625959063575422249426835244004999053836149940243113644774575563280974749733715121685085159157561267304764641481163086309460066341353721755874876123384940806733167573995215641176024087720911378436474056935057558014166666450889920304217809598984096759756570159412817149398037311795821094379137761351371512325317669124588007866070106444681968212488080411590726676079393975013546147323651033242601274193474310816019236683907470971375375152006848470894778903429952624913062725321783967842695402795906640386649841660420315510115207335513903604561702228665560768596605899572545738401097784478573316078063447655275717085360535962630543851396675660704277400210325291118420106503683735245359854312052668614662721422294361823060994975813262025628127639335005180946272968590203911553642419112963023919461483574339434906914104654826838831659982298757604068023485483655096110079227265134950745366408154544265625911763992514483676548806104790167375145016209775125999630866763686629266281125497661944850065429445016115680978610878232815655786560767325584024395153976420471824177726892085110389585986049187147223074669575514422126959432279310351907113611985046481896423549992431471083012873472332024383911323066307579856282628512068507580783009200502506859111481984368122799030659219084130233426331374062125859834848997145114058235513196067528076793778246667205711503233822506977682159278922654238647178979100274052598773927202433371935795416396756717252592881361828980013491893197102849474331545943757852733794670010633009515768099347890535349493508421934238891122783214499935714354309058358539122230376897216442703724488445934957928184592561163071735147376781692365369258590780682009123566781759993973015857454158210217384429986330762690225650717513002992720540875575758780109238816190065438681296485998918477596662046273426415669787641145276274487454828142439668813607930426488112669412148289135311773561467464245586376776228318072621523041409305483901310971620507424170056612762925090235104248470422757991288206245119038074378872049504750252054777228328747250166863235289433395806777340281342900982457731462512782458421930197389265696740338505543974267429853868443150965677603702633088546709843809389561344841018876968852539981959261436934701319293827038268361202037336346131466956361816207354015280879860487298948161386009695005954868170200501630433868715055512426893234892772911150151339407136749346834721200656554789949488258747724417077974788214415978957020796115156862512673652729017510493255238711565935574965788642783447628953404292014779898612080067165901384033963172958748055400406157786392431114041113758073335164930544321067693521720244120143695489687405786308515671556903175327980438753282574317813024536649680454692942180495237253425410559724337248225739391717440251429545315923030954986957506869572191591902557709663356273981855676639848991483391918806155742976584338524881131634328434342902163609152114010657570514883403872052548707994904201506789157089835709276696061566040559691118289488384984135817530990160993728506440014010191061580735022717416693503803285207049913031907747230264560658752179653486653020752805428201732437530316937134623834164175231090338650233720606563519576589614837587400039308547012325873948179431577133774766526755921139740420147417643770482452057139992694197924969699580121777516850731958659576568850967948456559068012771663322450743403613933017163777797531176283832609880143771631786093927254913126268441730851028744705467940402879837257828050451343325863653948603692956299033398969712566519447784176971245472529025999737652239607839707997684414703995621197811256438131699584443628204554747553541152775032795692894950547637842456293626262604621019978266159418070426560836751045601873636195150109373515026284291422562732887646168866706580762354830353553274217590976122864861116297148424844973102021248026697030403439767965208470988895597586623832573046316886310050524394322205400420720714348114630702548426696605362116867470262214512958912640201478512817147054759614920234787960117564884063621633490508842508882197433998707977979876247876462723640972156213859691208198335530553533010984361721471160803052742139839148291493295000801708334367983603645870179328664799573634449480845006886046509575826710675166139501330057042233358143810537627582332445144047305410513916828844649645583947491477569232322699943527172149477434173754660460189138754387300040868590412316507191373122360782731044667261684990701696219961468978687996937530580823170321277209822174626358801678697644348549336661417291080612210820599387384341381126344351221890321627610310910032725951302329090708823214243846878096671090460411684434099729643392998980670321404885535314608415338492760487816269719000502907236234148527850739980772308646493050357151179322252885221655524724393374770879332491813934834478479017166328111495611111331431081924842825052020306034788235009761468362350771308152307003711304457014147670847130731821659624009896091346947503751466948580848472183314790759176585080441802188210706859529827064904685749273398127802241179427949210932797459679835186205966182791149740837855851962605378494289980462190333752486223010633532024478003686943287966151071643940279024135548683144940370149612585700673245352170654104816517889040736816332563936697685274571759086805708739822160287396500075771516861427239423367243123829831795983750550894467656847124337061993758622575044505694479157926571210741454270060288199044452235321001517660533429508041827721634669332749039082144902454549153614792077296477291917386217212448373313735589744924542498273463317127514532541884192083197989627270626625602112449604669092108129617580057624424982937899589819645704176355255040953031676893189309082661102025568364152973632587637335158005128562449599026263116280089047615160702679357241323733367136475431169948577629417331256266421022417733930966230698415266687584840005470653040144453092757185951272003309805161826709902662310411884415102981115647707908974234578113345398945827177256773261539791301131973508854460031265140804564841009515897031245742359036533754685572349999973424114835683392423173231775631713896257820160589827228629059540579949311966981045114664455598895390996989031104597184996291973998052319037697802576829535030811383411744171033299427104183995028253811408403934429010101618772222864456116369168447870167156878918457054141473801188479662499759865587351705734280654393244343701984764356967409611485258830346151252488056861306882972425681983627814607821883845636205112388970623763284375969164030395107419790566338675369662815303856345384698043752990817094837420889933714197159774619991566720856953356301308227780385970579672248149704201286591409399220877778176463909060907277476242326974817835398427247709071287689168154466525248681045780674258621841379011810773299308755536739454160805506439966238534413055692666096529166623074936792214161591557864968848925489333826415747498017337891854745890089060638927904845664941232479883872604479681084195438476887519754185391442682679812840216334521568824459270786026939348168891826670739823760751851056739095352393093551230071328852155293659300518017992516847460941555329493673967835001164234932146184426889286478255826338483841221453564903379431451602071639565814029994476857641219902943130992513945519144101034563741298326662390965299469819493041603800806367154348826863765013060193347618085334197555678928228459421197999878506519578986760204841574619886612202298470607397849602451424398527584127261683407343255368714978900890479356385433488713616498909598700716808069749307124562079180275404765369552387616016925651761177045238300144392448738266439300519669974418566679348437170375604074687628090270577831540667235975991862157455237194017834394649061849854982762610225878885186154384791806999067496547862581641514687099429362681850663033585843222391117988086038074519911684381191567189642861370221767380040637061874127095238546707719689673822534964411653146757907329688831166540536968124727346634517085460651548001888237899769773722072384062323978793226352803451349455833477180235790410075145625202630347416401133823154414987286030208312278090724537933177786543012208931400528470525515082189206828829006151736100986769037548544330777363456999658095912668195485296064778747652077667295470926726227195193030294457797809575587429278481175423029108544955319013074905841085142687791144283837537411680352651719463968018509530225882069863690969934986405996751149599279790298445840940327202183387052957043702317285112302493523691177706997905685205490132319309788566683890670453965145874450296066347850187086451512497298759880768489718047454424008189498411492866809939267462722927914254786870909814107323853101756209521333151414309306942066792473629069085115230119229714686607152351462693135719865321598500890209114811232186517629776616179585932087030009233249467055248094712857437397634046340304592460398683477407538285279534274781731961403453181398891906643524587090134176783493136131786270174059267031450693806915384988247084401446371874177799631323495343925066864023804362704781958316437366231119029355213424444397308735473066314616782912656787476766639169336916734669362927416392581803758891081857894978625224972197554990441291118174675686768049198514911257241152258857370542486169358181237679440306122962718928139357070782625653956452762628855655244341749836770927642891626843464647638379688301612525268902083127743483366609902143643988006247660735460186427145708008903132052588150341226257332013067353423074905996743059235314262190051953383775430652965475807907104652366797351137519790926517800884717053269836807288105191832506763172406547364917025689753313466332947771298364431887889935387239538862356243041048382959738354107816247551588139136490645425243413358942645313037948916061737987096575045260902761437601873504306156003275431727159433617737073624182117885799120601506367587944198160100326434585215731364534884213710389626356886028591047268285331857300243029810343553656852369985527010131760589586744841609563681709877916316023681173883394059376402085744645320893797122846852424186928996782464105468587653455080654624313158676183712702681096952311028983361419359324854734352511883169708883943783696627916616001499844324651494892893172159934117336151871257910104209087909290121901162605321219345577783312288669076868567675807500545877866990959574530967807021677106349534935341767172141603016987232886980317809074291218777137377389261458292795500857938609381267508456117505061260419468895783402172410650371464513033816970015391006726749721941834000601137763388697927347361974633753027473197612167112097750314729048888431811793399077563692255833947313133333351408977263212456751478707404308412195425999331696388342690941500577531891116216804668535546278887548541478275302514807955591609413284340025599494129013171208681592290857428710234349054650413296571064618527138755528444215811898456503601157268934646247290356705763111791329316693274018041806822664627084964989366061592313529882596206388270789227773187574974061772159181199804739343774564594856636252743655101564194159741359503194606868587371738869829153790131431767136678704825699615603287473473657473172206214231503354495221881987703793142376623583334411074301686222119905731364066547407847425784195123649364251899842250515502876771310075477997705858876205740219882265889569365963387375329519112617962841729715683314677459958885547474949696664024040233044315160146699256449970361809328950272645097129820878304774901738412541091983705562375558755839588878565817893465634845991552185068870947862868717556447308737851192928130115410051924489771488891503616496139776317623906745567891786344632616769615738924424059281013778770661520344979226105092194917934868533486902579829571337312998839516739990767914751984648552527777526557844025163591963065907734791452255472520033468032588857918722816740014601202931861838350696371252920360479533574736424823016421518673503195816967972072318001660937850271819908151818462471987165846507421962736704112977523306517258630107204079931579735258072074884084640521625816368772395754921834096824336886881713631627927852274487269126688018381631366740517921325324080027545451583446123042503463651505002802323836423698461904900359778688213764779854934729790132269584047005768670285429461085703492806448092966029929392915892363261158216723194304610491475656407570699307467783439112070840501407973788335724696898358004468091950626081637452712984647383501437396786442937214895417414307694414458380368756118243405343913452942266610644710135887746141671975607800275106704135821245918885111847232545233899979683891376324221947484190877332747235746375374019789839586496270579900010490117868960758237599392505258708460121883735590262591654469779520971767718150880135207637088184674068187688416058001749385095468214171237376356941337451112332799026092745490909184948066588502892141628411534516981013161311806903643727130990553827148195255592112079504800206810303180827289309075576749974052661145167469158602844568084830778612413319992206598400219495056386726888406835896703217971315169772837270576380477561542945095546229847311098496124214942210036817311375154818260541458432082081217664535614709754299941566049604235242581273611033574259965751440989940966302526886077625115344276681477330239020027420406177211285319662916198320986236911421220401573990450572482324629052660200276348350939312839968318534655078771798314635212930586518863758751454621261427927394159320204121359968335057825114602956570413364760289178675242535821635110499008205363039937068390665995950618124943208597462747553389624611926971490322901573349461280251538194279883180842628313423205239888326336824628661849984929967101175393357485242723858913412975692772085613526560436661900884847415112763080477928383644037287090821024583652943224227526143830065400329048559929095326728779679522707088475955666942802195924741199730945584050485153776246441025145373556861304770409814484455249473997114174953769064468868250557696020180504561954050030590655034862706467613786999737522708233841948743964721690229853794471850537408652046959670892405255704520763944786069325328698869800821903695796595573777148989900951953137479017411509240095318161095297115839018462815953510979764473679497483394308471725028061508162945322140649944661522150015810127047918211143080611232592071126873385436910836564513281533501429184570933282965938184578402498180827069051579747312388545579316786457734895882114666156936236184760794976975072580700406623921612168365463971148727792583534141528930301298407449346380006090202807111068297074141505489453020789132021114764366208583930951900054028844956679183498103777816009014136335803184817500265582911894975489419146397406737806146987910718721107845178260575049566852504899630004356809111835087982914027785101642135977579636580565552657349299534229436656099063380604899888788049683097832436571065415021563036517110823161245721248089912008620996346765949996362635305190117253586284778578465086132073922931840506072429718231452598526887822411998642605480880114625475563974262544975258599941652075728115611062101306839628208251947994763305903613727142146325665931761452616628582855786648999399907004138998244729305518462120023741201823983192774572737995568822891996637613592542163739642350639382286464674715585003755825433578228001015336867567663782233293891330126680720854198564823055342144334311339801529800449986069434443908252853258292711248148292112874430687954250087032984542459299461963465666026520880493802622972692393132183188429368708025536194839223149188115385929799773168891868500422201812486312916842378719809452333271524601867528916000376732654484955054284558307990897154254315583547364908167676105290334860238691804562196008232234976635265640890529454007922522269557710542470456450914247697391073338651369005784451203167219506538419819248956325567772919240128206396937805556377933428628044648520478127484848840501721005412177224241937313330485476111745008781026900305119545957552752145715189277718782275582550387694774060882590794560163822568491214732882798783993763673476811824780033646102371823765628763892058345839552448117266764305098008267380569877942721565867121023542550607242003614360526828872102334470615932221730844037942937424368966873898923198785631956261008447687196949115752558949610671580725359351217464266694638545867703196234873667453121336528317229266944441546729606251828785568287802546467844135424948841833943680059011972898826326354231709952117487318123953243359725693373953860212820906886296053496468466833517825593098267654310987757288939763916176500987564650647232996942412807916678699533424350534418056986224703747058129195287630595200644445446857173344940223101843761393614923999268114894508382316509337981103844616636950820178101427795609787046527076369037868195802794286582935746950186057344417192918974213863838105371511130097861428221167005623975394194426445583913605227784442378961239410283768381079586320309640497714910700709374286482685511106988350293359962401110788127452152736091468531906315979446528560219713997787217598678285564059219435615352763019560763479701903171278311388581831364233732000591265540118942637183960716658561967701325363326629353019300974745622627392969676780060351840458973255129406712522108423091909197531813981341749413032696696408191976485765744235058830125733123507180428781021374812100338661809957753041898330796003797440299222927020220359927363197088840695650725802124620131341533809583377659111122226758006903712727524979300400600479999081140444083964511238371372697620363745709872608585027850050024914351003141796027146431367618815194361805199847687542557092484871596231736763329957036316236787592089279184863887099073944042391658328052343262682823332338319195442811786231890858165121332781293819702604191817584308006322716971442952093947843616532785737151992573653436232949182706116619894398482140449039940484563184440360752222705026445639237279654537898902511587313017741124185052263778810641575444817364234597031147971000725305255222256437814646133496911614440319329950217107129259911710160944777186581103582012514414554582123325999432093517602494945764642399205161120796110030529423567179566780729134345192675600709499774208455962520990716932613317266023933286626559068628429029219621648315410537155383715829582717558927241776348301478227075842139086667601658533149577424250070481267598474201651768515854876971380713284393711908339317518319194166092575718392728667416569890763674573349076767736062232857538595825547093705110280411096985807996105274241471941723265219572728776562055265532352107518319145039046836166958093339640640289662425438898107385586389511476273505454282099373941940984511314020697186158402848437461062276330530965887751269124602650582198997082782289939751199831163786374349356511670829367523344268294924759932495309871999964433063277946184519655193862549833655468294956001446043838495242090107614040773259059450205860296082076068290206261156023717194190036861990513357631242903572398056631334044428689259547800935776222500491555053305634548809292889193607710312842141855276634187506251236128269832710575973254887543165228672716569528084341256446744919775999576749534271627824561897076690262071681096561679144024417406589525021037311252564215965205306224916078595518384495084432934907502213751773928250671985017980590041176209338650702988758412649895939998403502130372421603596236609355945517838451687220141199252821072801192745240962618416270055105444494238376242062719674940365164989343343305988143171701599700016615051152435034196213749890369195915609679797965609528775940517829473919758099153881609677911391530986278132611198662255202476989544753363188297631351567491897664465728771259082780074556934888058453074603320415773430339350650878398114404817166825106703190303047743636898999174313568184227835660604338118160335709569429430628870237534612759682769161018882527281029698040304026047402907970472945429379327654094512912701261373174221418714927903008451785090455428795484685299743567046793862366237934748970160460819990917593815830406465545289441200621216014740467445943252152580177963327856254630616866285920541177422876552236035413026829900384854988513137519782659484340431914140529864374849455537620845549726136792882771555400977481534110415297243565060613991972975905317227329975097317995799210206017352414641213634476442041788090505514139571005553643132204274169578951393986318172682658587438873764988212444591203906746056340603657433448782085330050904672426686828707006717687345107828321773444115673711475941088780743839965245065166635748629627605551742034562001050659246341380134206798982812432236878223494126347192617156342275467333034461263352670473829309088711883771213083708449254158343692140037053669613375022131779913199830292929143427382237062212334836779794342074457894344700604492126707684681262470697152408798506337364446267990515856917175921437410574614753298254288375789802483134303982571441505463111045539149652279095165250396719570698942741623948046469274609944123289103626014091808955422348510293335447791779068448957867663697005505129541144617165556092566509030769797247749694028384201770276091456688560450230825587159690547953259171251402572293552482017641840520221292860880638534570527456830790233586118186059321810099762580569147487981377315764428004023697520341161535185878470417206779059266853045086922755175046997996390123620499961615320685649451784896935049463985814032606496945081310818884544889285385446519248618594007921304030414771670249599511837334749557637998605512940718140613416949905726868729817864501974479573054598493549304036436341184945717872464934358084158789257489304058072097112978049409838316970831549193815967910976503580748974848387561226349588393461505682425730371264468951254763361271094353530581625032775979135848660053364940515281055645702203771059193735924398268863422448323389626810893855749762253469394646863364578497434249801494232980928713282249280343888977877508587397893012492581631082363062543352767719658512612674923813033279437368789804131793875685350292288656463249373914565692778349077826752467668872793487004168754181260914174659644156560331018103513255526008176347492661239029052077342500556365180374368836130580250750019622519815414639294785692686511827464479543906041089670525428936693090785688260793550280247100130648246694926012639318247797712272401347949953234956218726261485693619404346373804386798354981179756634348390809436313613475327097834634592413695530687393850837930250876236798865608546988474077005996766351776984272903860206315508348404065740646820752119461878333341664102546446814463540586811659928055014944165546415768158207322760371070205138482655661439196599758612534610788353709005793112899568674481976380554352730095742768051288261038558137875354159207242936414238362733920851046256036033465664608933942136784337690534105096568160741671976919033635540950383561298626735528438976023084137440242915114730396180212831618803188009908609192865410010123465441192382633162492042053357272288139739435727663595513473319576792288252875091905446091863196605557717689685930510272199604129454115668220880614422949461688027448090278614879576376785497918402942466081766810004546702028172866015425795828178525415539808635427958601075453949988029515324169072342861304345912743018583863147826794317258728530729068137652406803827304230109011923789113515699971027716761149908339013203170599429906976647334347243552962992416065340814214455574214058325158023916460589774497865515511800048685331265950791511903848539373487810200934675168110854377262597296325443733365510340733793463806531585086772339962624863593760579354142107606427843696005555208268882065780520340091738049404873215681260221071593795941420822662143536699237550770521395606567176398229255635217504629992322658875446337758214049953055994250767453326045172158425262466277922124326319811625840541867101522944380403899357959900849645675352587053534237069016608706840781308830783113950181316878609918147248258524046355920997879997024305339098874692282653253365482299334865956320603835495691167816878709069005291877381193329342617450805369910359612501309433797313926318478107533607593473642438027202617674437711607737130442863497144600186794882197675720951809414698087406173025774213130051407065250392448469939089197354539389322959127170481265136746683008919648399222260954028434307349967593598221596664771801462654631944266425790162574645690882205838691874302158039858252197020291684545119763755559647761060654712490699186151825413753309036112989207095544016566928278715635592957221999240503364962952397384928447570411294411329435254839763197442876231261986671611229219062141209987766592931606540705859743100408523200501145670238930470995247132567313482777899710094042770825155229249405514290531405431995127021719105492580654927457012043299637538012768739060298809944424468412923843282862479986560723692194056253244449702653054320655626010974062946801752969695629355598313257996879377353566917177482298284553225367170441645598066973739973645638156801661329915108373267417395225415689999420843267636958354087585512014091908020107396771185893259806799172899777184226072114889988323288819724520651244294994967423554986691443432936703101171996084739853346688384329747031553050275747939837032409818943617863137080378987772962557475514812936475101089181006253494235853656436584976603290843839858709791427058270219451761848972367513063343332973266397255632352829534426590885385245505422868984089428525624742376821834562766002019863530897134165057445961593358386057341557526059929557199290426604575210066564991935416624015466438869027208289839770623736331252755826182038403588138728126301340297125246584663770076638243702260542273424919074596101346358363981835792535347754481094137233530299344547255931840944165643759810513246236394061469456131538368007365641494539945924383876384687905930726400201813799358039519774904884813175900138898531234511771512870800785734839377395402398253593508565512661385664686669468706877757266794695494739564230057329917460800376731988338419385749060796023599245798854822101941489358991265727642315641045440970280644077859014893017755070326584847263865441403624379269134775258386237616148143052602094789885906345413135050105617538398854253703691195269704847177721649289719855425349111444558707000883610385419505929779383356498776622509882783494265613508073045969545741996468680007261087381339966360600158518376722259946502504178920341428821162468959129310824114862928565215938468880182016576164071152001835587485998825108978122121914070523866460311687910584093254179276329796138138720495547120962828058192880159754007302949627628006590128917315087452365382386995823995449058660312380296125737851318736707615844157009188824493492759325532790168606253851345241562700097941618303513297812201556825676416271042672886693583377830921975532643031853103209995230275580898042640829457028559185516131125391141896216144504814118021086292505649222875843767480354942953191381772392589855981784937008249295293392730895125133252502224004432629597134809968926514771266001019983241736538068644267567610851451138888174202279894566641077761513742548059842776566457679762966493323189866644518122458506364240076502249013333080026069225179697260654233091395880466182407391464185504434584976245176100340394681971758803935346635803903412314124812775361888843653613764895104934027752228963378745946405866764545205093339220013301717137088800185127451566125684303447065290446222681898561384073330087860717341914095485340362076262927013027274694230645710297954255060464775177526474981470399367913630577159881127985734241155799212794947221595790774628421136502506495910405319581677746472902270084207913701962399005843306731050998897974745443308651101345141061541803183132551031069682813230684071259887263153646361415317476574978633811221095748321645678434609261898230364937362797334883686358352903541253698611815367492952542475076897343364867783073876624806240746855474748456550211153382242720534721601019357010741363811369199335924848263974812586203817448292600005525873442104154141692760609784758142157138297719460898770156969111885829434960529461778126061374845219530318609796628436776420677364928718019193730952781036726054642397963430212078413372316807435570160831091463576503283911319036873769514152757331185060288685210567118204784653881773164139306790200770654386758005593235317464271620844336791464142600627744509009022382073953272198063308730325116968510569584293626475395305054908391310454264314701843181487426261236534330728345552262853451703913214776029653123220963276400911306094915545696776083662453342194674706766652997341623429498166834373220573254412541693241506250205777894292802758393557218772058342473706512095951554572810013258062468923618071778315932586820955110072329487335865298432569860854975754219610600855354306160068947243639071509240095948734192973435577566690375176447910827508450982603881966025728109129248676880853262328255690482220752078710515008158269391751044917189202653234281355344484230445753666507118084315256410494053068671091382018516722284619112170064884045319786686141582020793630372153165663318205537547880244814796983751099765245617569578522197412003415603296944555161204884499804255710460542067587223396173633721035633488501235956506127913547858757816031487584009458699278207253788871572913734365614089391326105329332656541895708807640008640954849404518076133015854682016530372290733017843688734827137149753409522525548213754609969853341922817744791700824308889623827310150922867367256910802513899504814926246082051738164281154265948780959088511492527802924019293168407681179755908623368222956569620541248718772638257002135852027200967455883341550364898914773055123723597874152554732528367421162580375610749658202615770127669827627494373589879883206514991311353299651370803824320410707314095298495699653348209520112497757730867495385440576146917266131242029918725391360276864947576370077852392840426353957524603310252372601907380354347242437734873507674651227937412943847779415904330916193372836289249932778642541728771010218991658125652733342364955859938053137938501538732938321945625871523458419318734592541250030465636531672433364404424111262475851449611033571857427195536335155883029701016939769199763468273582403784736873281530885114946191477271281887589270120852557564943023708065344319221686759316890331037565466903782459307772559396495524011089902647415683355518773672716146015062395243383381608482218596827542800477526084755183980442248289107177912859117443015990133799670156458474818666986243980916203137850731715087804410903490349345833106072312279637384665578136897446318441865347571492744487300158514290695589882290801978926177433841613937231168517108638128520744155866424310191550844874313561490753077399594504566228614775589870189998537796770098128270419085797826606646344110753955279359133073430322461451782514723849487489939390311915677186549707691361795213968417207320050675924466379186671820516710367495530320833237368634622129830624358692518430111923498480106624147684069041468111460124886260538941513967314859842178997698402747892349837702521100505355858029106632813363837585850776694256987625503083980257631009921369918149839042091297576756700874981537035387694452539920480186647275938495823765356651264982642810376144223253632898238281536870382669916155689872262710418036711999134372941622723797405060200581134272458085172929789802188105748698214324461817537009504035437747452938217201050471291241431990045879295469320950026097887224927759242589542377396734876401299733067669478669874580240540030720075090882455464236745708649077353682332500971042978194747927156000134836383034686943547444908936504388746649388634796653502755610161804107465196151903581237281146595571732008695152856009982945472357556102738519719721864276727021204815324911529598506167715727965702132211372205279592459263935902937567238858759617969593355399032384802521097337228672579245669721568234646154076575550897486643344120090262920599626883435743109076579109784566151813777361967212297340409135436134869185033972804256625829212336089739866456372894908554196964349595574339189687534383670003360953635655036851807435782744176868550860467572426571475508583688311393217294755171990009932237427584702163553916492640583305884381190535899930192259294716688956217656621142502341209648474572976186462117598787584302114731860054123831970014884750194373258329190701078890451135427994506945780855366313008217026850613675196708879261052650228956843638066379558996411186584832431142740583176296102139630830265297732497151547629669055449540387276955986918373092479300433556305386128045439009474333793219774526190951646312893295411312140009634424749584518014003484281738358102306149117400419035004588111625446051293562042921202799902944635467008624722862149482366260939230508793408266627078715340853627254831408002195583453197995394864874648526965424721640581999131068494119495496240909832380194722163270407409646744569549456567819911684302460395426415475095611960395365419319819414846244082714390306406813167005759013797184515515895763365414631312034190468246874831018031393339151649857385000064783785444594640833625348035318520915250981424945067969124676912292914235548000215459749998927001730485397205204193811561790087850542237238525150182344752698089078281789896861919161274163326077395002062334288452089808385021396791723689667745775905687581272551778941677281563295043770724946774278808513397841844180443709534730884532927107410059631183369605745771255481930842506746410686185697706848318239412340317178757333307493486547062983060805076378879024370734089887939779826122357295864188881417380983986399737978011418865031111516445870269060206228403833771919297972692903329444093882790353303008206324862315538172737439087923772036684004190585925814974593507156913916779599424156430733241171229767144250552489066497942730066893672434543364031142435144160213179164047388941573443143530306685937012794443566433492604638590660737231421503940669929581769616611086723726173218935108676599811765233246832319432713506128361560192434234851452078240572716835534977712756918212299376062457102327416806447943550102828211154445735113691071949258712229130215177567010408634066842100249579659051959881699272361974520303187774682657348196214148429733223104280828081335788092784365654962984358372202296222101006523314539157137334573483545663262163867883478614430992010661099328692954682902087064885425907852206260874229320763269314348059750880771064964618111713965365451904145094894884263714853877857570051568216953755354078661269898951626530121608728739580205974113526065972072465425446725774202141630298641742150423698062716603439093295040208991571471944850164324076180594215031139007186218075252279273236660620902357117203723297313482224588596552671658870597445423711205243699465696019260347932373701950292531016025310451961525088065393012121462409636696101536812681436518434482311175705752523380563833133828968168963256320315384947172590096796721358141423308741342174384317218781392683125352807873493882976268293004752608736657457024576699052756128044332455636697331063895699881863872339084862226589626139398591741142704724473744454439003460296970575869947399272062685206213327876709007156905993274416639412418596617205361666868251072381508004773319262408894747223855370496543465328498786134443852690872050824419882593564682200123417716015214999015174831595632826216911559402958014960311657394714911082573124982245105330921460888646238190207971865326918430220279980166241531177258119444439190561739082867983038424942251585571705505523572353813991914539317029886623163674004184622843994860859113403582912594628639347279719476229825992133774664020395261360336304382035012844555099257091468113916392843109431080579705680345009104087812649345460015696875148896302869413682425815682891924015375832877183376486361509825190207673463204958762384154341490936924398552465945872160440637950802915248829129798720091335699121818100796168268174382225262505811456940676003383584365792169674617597806667347780845407783128295069214417909071430423598627092591028735975361861473914920797247295113080338243318386279601674326003062155035908573787488209363728562974564465934554306289614548216862422866938826061255380011382846125010523323546507992628567344202969130423171682429098219147143076906243310650667939219330016984598656948959287917600566319406056833068324838768472811353807953606098607779030266723638236815097682152581035043257038780211239813981514871280374361526212326817557892441893516314623830461880699246645067000031341127399394689127029113144750325011891401189150023723547597629526627857447500200248360960317952386866844204761844342186342386196132617596369136073633053515525188559467814939397275377549253701152256445862400446727935140477072881811582992656704221838467138974268284700335320901703881263259075134263196000206488624956320418649550332761814391103576979299064384897997358739649374492933821453943581076142554182540565439744493842693662145285191995772700895184717167574361598409861441731313857376517292012383708012935942771708853645800620903320040320773650129467103537653183829895413468843598464792933695635207833852107893138662695957171858227727483083448393216642261126584748632979551361833235651271423459661995829827698713214771856195573582217257468830235092025622040519150689882439181171126601605099412635917570915644499234173814558181185873260693907126776858208045842069050364924847177401792714588118576558603888697296675722967239103656190456637186779932690526423570456916157634020145053980705684342488712288784598796284520837554687865640421068712302488784023260137870016154626711010863880139053048727702843828517531443364783559340834032197130310783558847518560875499595190466687650661468738932834232359701717500152011454186953874048456939548500019828978144781254282418446189152982532368114876037517232627567291667305357393608222279926983093328534148465927814977522739949802975479537504701444832398765096172766775587153406940830191794736749072385758537039033802684097077748706720217879811413019651217999061845510940726427058860629167610187451353658205722010769052687560730771832297845392837800314744855463814668711284782478617841581674859335792733480569322668636957056639988690856741960058779337172802871077247332445593126767231245419834188743199059886354307511824272492268413646134356333148429365855336114822381725054555330496576481373405424616197240238530955924537130669277818610241591040601676726597988747397658799392004127610914474746011634278116589051833767893479993688486439554763209778447712200803688035555676868280671231346575226799367260083086517363145610864572812742399784284073816486101261941518747587131340283096035179188547556336135954401188794851179717164949219256874277328795565746051099824158662569095369707149546311413075064090614327663514316408875606155737613736419687738604978849984896337474726953197473624052108617342328088369008857610393113527584641361122234316794943015551039217747371839499686613939308035478943237273965727297436775193065140873613641245294091652878306529764409776831894128437404823218090081923623174045364981638963648793787552166864276377512023623137048980064848333342089572226932816502036043246077135031996762607143900013472467047486608236916596955853005407956986333893275757856107752680509959415263541122520688465238786924094029980217630564594898025624854399922561674415340730099120209899540073428911595503260739394738082437204036036979746848537284805577072732594184637825735110537502983102396785891102848419892371605341049934082227697837163558227854559380950258513811798671058349825112546443334483185082382144429280485556586866311038980427935771729644585192302734055265402239984965065952063073165693305957987190743357555943220312337560145041806782006744214828698363505342729338734762433306572501187043073141341547427776717529461520158318675295234651203223083478160748847003911022258540233145198119652494067667956420873643049397610572278366866603859068852229090885000135576151057095839147843721386913082474932980870571416554159283242966927851030235881815554642887503255370348098667050524778455473453630315956532123559333079577302611874038298718072202490802201509857298834889441442851819072544692806315808176657793368257867399069471932373362125696250803317295718837810119423425448450286589237400438379558627702095395007414480850589348273588954832045335169585243203465185706316566925362301691250087026472375090815476976563905211020709417193855974639833732401880685596522452680807358825047416991803403954052673791827545707635510380569767609577721408457938341361896256069119580340863630471827624529402293236669182106540760654551327187000517349301299914373817943941903203857294265210573577151484132241375056378331152937561287152337131633982457092556789132857963729538244303958652031088224558044495879579418237639304173858726441355253532592712230405633148690102460862348131824583941173844367884898702928594742067436154001161872986754775151101720785512134018099966412676701791584598551131544639027349351293413778921847012504530883399917440591903239480880018697386269380490474807632735297693793428032361075842983734575782404533695437719855396029135774356781549634537106867985497542784830040924089973052977097680298422556900878478298025201792926845685293696262510087020632054675577255556031283616226538879042698633952247181596056880927173512325724215499568305744030694258950917475404366553113347767536800873108267080185262547587534236933125008897515057231825496678014186356138753750448936692685809737716140201966570920241014025957666048450389675647493663813112440448447588105648693665987646600619237595036207881082002853556350087064154106812843651583945869439406185529218012573183053699882957785226838903295650465249928488725208605493915196137505963470828049823858892379826700886732240114088825430023240749066897692007810709218610445205971422341073725133330946758127089073739654140185209260476099173452955355365357774958871516918319946129228567219423462239919451969805367949952205537698732300127405173380741147184932200564990511697574753390648698582686268294123224795034155833543813767247784939510090492964391877656447780892323290139985272916797426118558482831656092480072217614422579914564183850912991612362487739325062740032228937710277262883585877987435240915074541803287097677829590369984795774759162613383850823475071338843136011970053489550477540932442461894571773439593849646324797663962500305672478947929943470762286569692561767078196353326957980328343472173319825980363695898521326394754035351281899229556890261543268221955387808024000358936422564128984289487172025390562162818789106347768512499474717036443453762076868105518220915002123413484083980832267670015284172607974882608090534472966013876247301177346025884572404030326634749614524910525872393508480886489977729469427724367898529659345668439280109757409156624528760996942081481623263593410509231179670237254274036271903063589678717388953178119428728633449299737821597140797290823900296920870521891851450261934735996702982918289620232000406577265805670609576824153063613329485214012960386868856891377677723522034497300749342727285149605765404733262779035367754150244894803401039077649462803317584739295231038323336355810236875338484013836628648196600719338511612083400188662676983245435303926296966658537610357317680800367773105475429676173841755244647027595047924350735790527429402249615188643225545046663257820914730001486260065800063475310066917132531201849090087516338905980385115660444174937265272383986264973148237357388312147763669883089077139993490189185668017039273125466327324957517616508939710769293800759385099984360976752376297284520969380167564653612372778829041175697602456141600766554905180255917680861852285243601683398228850323486203279600455342789150817740884724144778677923187403670401212008776002353111082090717000161753191885663601975104046729399348057291847566382831157206736628372915930104223630684537441525237609341702415940590855383828968015146220938861834649292163196566321667089145681990991280973952129541324892778074718242124767942392583202485813579661089469713640954988697479734101052531894989583354706982838464124080837039003107842780470588892956530557221607462483326204872773201347939950207306788290616425095153239883058647988000165541558368206052987360658756711310143261982778818031416214417057995394265603922268162870051163886447626900219557432489849480495840758616684045371121421873298952716732667116242607787386016459658570733517910105748004234643782483227115383402877845045641303807754560836646296278701460078139308106241324993592103258565620135036567074975156404517850451512101667805152432284659327419872375418553473008362363797354465792670799819417688680353956023167104994542149378627594236555514187997528627798923598003267789831881752337962136217785257549770898047583937522137758397242369155182268980765685707485790258478905360025428654663629750244945262487214180762243859343241304347053948717607556299284190005465297125312255460213728501017361756270036446402088815947361750332300417878889555079769738097893802143065554867293006323780360974241595916280927571006481919331099945833588273518773823665212358580399713056678206387187694438122207676889106143403547056082061383203811260291179581007181267752946224778139663484046649470485437552029643741162214458182251613747021373310081734140062397900844626195914966688988623567562041721961191674620725208075688916583515637912044895861958643661800155506885502288509633788312097829847162907708889867703845240976958866941718568651390049567884647399708789822944583003969925152248716435662236122464947903344744062294909876256034151950947890956206717776938733338327475962196971176633628337675829581801216004815074427020694579167518995225651790682317482650591422094574809230133523808399644429582459584410720682539991418061331389993172019475623182157027979248493382457131383402801885725051385637907023123417108561335023084176298631281008238511699220881473798283199527978037101699185250047032357110594624186224484276865906760072828687638511341715501102372933849343282746337478444701321438522245215271902177127704405970740379253512491368885500065351563139886147804626081746677695612574438546016015953835042959861703229648291389422405944844513933323591186581987212517283166349893600273648539007926048513360133263859572163289788849415607856691979664094176866230506066557373286988781037682647115407893634849742659805106896114185538844546537356534624397591614732503661610031819640090789377746943326463192467190125117014736905645592695234456893532989886296833949102053300793888743869069085464005052161243890857209975387940623512455602747664904736774972992572928460273888948183239323413533668196985017624477923032558891597131226884561625318959957138021375142325677170363880303916827120425482003414172124301339264935574327258539685092924538517213256081120236229167916324011527432786243873792592302719901039714822065376360812232518335724740032148825729062824344538254647528754498029725914728636812948618241063826848723205245719517115229267650300224376217288551691977694488119603904789198546016275462440681502767958623616488777922436943559797721828214102817557400949415493618180618667281006483743829402529737475885698512408242517974298322650839224650488073192801061538088967057774024015590005149978417500532818477148347644433659966376552688814154017971102859511557493547856580750397002731417317261380914818333323529513902120951610825891513723411519795831768413586492660264621198950524822226804244850269529745659543327648188538821327057000519100367430052805146400650137110532386054801108388891381928405238471332866600958538985919460111443463850850616541157631093414532665145961761343038409296584665845092865826201804011855117144796925635184727231422100143049134538893343482420791694184945737554583779612928080799291822133660514102294568047920808033824685089045279776190173463729767023118785332220510792234213326937907669450234506825777011132058256335921092819041200316838734395416710540090998472244482566282589033686837913887218368555077113366705369266771383477656195374858370278846560497325111970418831349426811297298817762396495418863935006910292481073759964408288014540809912993056252360644194411239569292988804660923360211252762238388624342481090511219864912734506400572368653136787708305938529561239830546006295802690146554107589639340107286831711020871950484977217946592117697346566547927311557022515785773185215941872064780411897866922380374177592325479809634402412206051614040640578381423097726196014536798385259211487127890456330800982691617303394575468136510215506295555454741801836447177197265707558806747263659454436151167749192741643917491592568596727589588917415215756509380302542757325039614022357013966273595167586364648235350006900079396020825035105312375102827027274574108635740817385279778444953733948398663023932589472618835886855573987965887549332932872344104288225845806138634893044401562633066457945799723309112524017325067069505056360905471937529027159844474234966799335565951809170434914788113289935900654573546949010696172747294018575450928463315352683052512474043421114433064374252454023714597739054528565705845403620665080563252350393072214732799215906723850182026051140233732256416684762311571290656993469228119125572609145315113563641707791387655250749302740963316866412856898961065082771234999218901572248192928172952767787986416077625505555480647969189556460075782699023319151683171825800919443709996100966159015014068321185975305062941495435806124521560542550238675931423653441570159308499170765479447551316844680303624390132861466478532803864785129489080233198797931604908338315484030632838241475332514060665515204299914154436590912122347916667391972772268848791055114845900520273371065949979316576058303726271442477178336525818657282359318495943453347759345338566634814733455283340089815743286004406609256320448014872873798154054494751218572162134652992863557106625023150061928880937425152556828838752240990216526169657321502359992672614091321627323725936790199155634129201447032442853505211289086159609691705247629243046522866092660642537580828084831492982845952091933761364852299248428661518292143972779508444046451391644999555770654958378442331110382337865674136622393346731035074506649691985713464547925375678312229604396403581810214218556266489464072972312326881387686225247201143575869010499351611398045031054172311331093707956300193005542333319025503834643094232916207406369353181894419562780925214534635031223352764312498533538016644214640781520864320855054774262076727809421218234440427154516364289845808930274897180359740115579410152247133096921353937002488948279256939644389607463473392817186320619521143266942355883272493513629086442430688137354428714348376348617098517947863046724276798639040161519742971549722651359786731092237998884183703478384719930775182269686157039130637854583945275901179393087622506289945597377379582926086060391711766265731072689013971667546346105275892174055581954154684600708453657646343040672163061572878089824544537506406709309344683885736947563241554901188021502560930690945382565029606746545565089126222887224126410448538969258476197259786919627254087272472274731576577515749316073299330611163121053734030003316778320414010847485190983219752437462376672174308016817997274468613198565809687560481539740108136007853156333504528841015638701534134409305366501442562971656109164284719117994746741340175864632911332131297935618455090486625994332501406830684928121330112211544578275132461109481981601078626169863914364555244973793391220013493053418781141851765047216201088762210270925570062012174702708234223387157540053382710324287492235876546587817317444457070237009163601199916993099769494504318336911715126710360474992857207422656753698288526372062059564799419180852472790678997445342158547438470980462375644150640082316116666933220209355871510618642344561598351449167824110105211294316977262699624401451063811913775663634437466206931218018382864858257009559254005646200867953578409714104915589138435395348210975467387035540055415855755351314343576066760521407986191299833392810826312438715046714440869080766736545867493026777434450173784499995648475572090974913606578961150484386265555600535337720119567820432902452398016745721398576627932070580593621291977804056127166157876252458666864978050409748783449831109375591315484164167061304455291098089506184853026929815497654407330007693277000476805563055853440363492737501269580976315672008284303485980076622387663017235795122345889947527031335880294966077083424826340687326079829554371921866713438666255483370594361701415893429504851530776664613029024026651619852353668523145819161905097522015845305300037784387432697305793955793173600729731304310917146682110484290829005650971554426534515607522707517121259216180011643794720118920358558272647694392003910966431379451183668471855475469900401769540125636994958362166147771410948265997211265071878843382432894359744631340000792865285682856114986172353989299008443163484322305356639948917820373097355056651135446178735532901657580906922682816580027589201996516071302588962347967146325603223081771154150767438808983008683202180640107046720399530638715600236291640811670599953001977935654778083558911952488341642400364986594589739449104597463717213188967830845285991623887640571095176956731524404064728711695002397621028364631776086718281524956433650309784762310365775461091265347791546948814231691142393267768229190555964166064701259948647302517996134643093170763119011883354808341706567085459025604769933696694289786919521107731055378756770261365462885706613825132239510217071822685607190269228417418241444664495069439267985238585259042673264549934219873723934259524905777681657709228976609692917671787710913849471519744130962024096999594525360053614959928489570176415209428451179485656047650596908708352913107483274370588909973763174350124629304856211720882546103964166093494903940287199751031967945491423401436916473550916582623268451306787803904003694612270528590434689223495388962143362676397287076490936772650664760838709823129446151534754864643361074493773847458104105838187036286924855165699970656636166350505514145169187246974190843721484874509621451604508547471826544284589654635083745765703842238161386850014312971317584633860832246253256922250673088141211405300847091363183976643012435535040671174726025401864436255511233095017048936461347827386709393103376983354421960356988489845892970674592765669816684329001699822141151941715774570360911927850887843126511213111374579906152524105151755357218235559213822445155365155758821857775410816669777486953910658470128065853723789351437309934197856010764362285921497250194213478576599311913024169731105119698161960942040654068635613895460566211523739737388030003602008859401860106215538606826843030267306442516114444104101625341940543055128085130629759293654093095759100417905215775447961787167580209751531979301964999404785626078400829125416629261234000397859492672489442548458640446948848971563191649558420680363223540978455234293948252704898851660114772642542375276316925374485531975581908630814582533864665787608782958076096700834186807461147750079613935647797893794815474761458341335206358979387899180077048684365952353561861986967438181756364738815378206419534880037393724887228341700961206376737637490402705914384029921173124382418780405461418658551702826566864675696398350789528119537394875251494649652531396129004693363778634089561721415157111263525029549708339180203115654789502927634040806428445190496737382361982130070531271921418516451286724327442665324769867526925208769923366626717196310533982843073889263562259706878784260969046060084103452009378503945379678342691908528574154321782411083905556811093913116865590302590331621135050611382413918528866080979680200068806548862108113839548242937165027351159768070752327596597686112614741308502753486288198682927572675610254499892254617549998852011753660853517000367288046079156359488581140155999840734284282559402524334951255972182878336243026108264740150070819359695264578532515511577982096618538390590356038977988564896546925594150998525641250998686324559957633711030068647819977374952522903296925995391353982658595234197402980786895788468887526808883138500038903663292318397278877960887200304121764821336435272335620933367503446808138649821812139573479038965019117988399308314795441058942368040974311011329716236627407346782019817358422090136727877211455516697301497859189372090201409038532919657462372518762320182505696395872258883937186378623845309504875373869166825150445870610954178320343413499511809397977430801104113672461011007134943746607252591772993305494382609109639566513426507822689020777759926737696864420075937495127377383798188989100596051328763532152498272755384378631121349309479997906012291981690076191481430610629377157166243267389090500822709730935993179991226195005088584430083496187476318454490713190433079900046519846975949352114665101888876663761045149656965628461537782609299919759459488123970053097666910229921508413813206409698056724726001783283229501595641433381760669713765420022441674404335282047350875492343529694808726076856091175613977367737787552545827003077365242758234203652990280859966852180926978491894459325815710847181100869970608075730820246251075033175889567564843825423447883932836773820643331024696813318092107258615336808814145499011983225841540892902193070087655755245196608945194893708184211576944657147934411584892588924584399541064994029095930606025574297934811194921198229343389853696122850349569579221867252892445555053986342455493458932750708913326495382796360643107132873000326555547869540066237314216618700663182993349985813619278138635820037599738379977712074617944742537047374463606331519068565843870237959470568638346383846620062897889771161084867181145583110422346417123445110700748859694663364854939376503553849356478024309789208227550554071408738930543388084514563601316668220725116444298711887988120023517596978406326313152362148465744889768381873109629288787126064987148553862382808908775298836805872304614494138149615998391147546502730606293683951854097972093846937057949915583179574779779527905860515214413681715823525999319464278223551585550033458636883035241400894175006404446058530430903846538329181345272365466973303570024495618178567145020237789790910935530811977923450154259530655349764519169638940283764996549733198995385610539451256209801502924600556352594075456622355890489863528822491038031807206649595385407711632786654216688761675680443927881821835440386780529363591350923664690198400397779886073561432964331157976017769561173952152351605858168548011106663350452787149003874894559978498032701828182729496752194994246812850010287027141228139230489159503169174345545946820089180682916303385118492366628495899831970648036806833653262240496001858369524590931136129405782251084095203666673876071264166557622326260871217270940603418079082594572348233415397150281604792497227526042092793481903283581640172484894123548024945452920571956656658284176718476619051633029577690358873581426694828956652005126691922799133848243205214374537896799664230513550524001794787426674966035564852391085302594972651239548119722690945784314550341452160558189485796153918269238950250754117619482968866057395889763350194068966262513031384560306009995782589644595915802680638221698088906489273105899067202534922535546532619363751854973690940167570780836670931239563681222170147435626954274003676316956909908157438814204385178060064186621109241566104143858048654295329458672348053466026856927489467211312704037180869580995873118629485360563378595403488676213720994448377644019527882596221743012621950128959147382330762835132699973953814885347635499288026796466727128609311018326265101587208824071681601778030469642238940293755615202237004012934388710097480667527930153166660494857628542555840954442287125359149923490161853869697475275912901830774810645053958861370789714135098726574250196702050553794986191636141823992297287610323493935879630093877143607773812441330764894426539764457906865423974724037022374198949749201244812229179933555820305255279861585451148621242593926881196290289019761459269028389231434436389945245378120105882490255149422960300901267100832639375770523060309975854557979739362373995304050380442464658736625394615811043563720505285209974167348160203246235520531994936212844096455931245737746261188109827223103609615830107358032052873062006975916681356310776071954206430139678997880853766668060107281673452420418234000155298528861881004066904312468583653666383448498193177790355282353028693680907070362606698234392777987338644745764350125408870691116353412671690066592140451771567210748252064699954095518356058758906960581654562742572688318330353202327631111137445217073982078905407020483557318752941347330729691394946664776510798906451312879804131022373504099325124534577921054528422127623130165557563210093932286281702219840769668799267543258960213103394851639347684863258033824698674733985081656324973358441292116364718020738184409444282581737517284504500893109051843343840774564409892723633288995726604945187838429589145706932471773391547272469908841103644537807076770153161288830210657398786050171129998765850903701091261240263982805393414370992325608996999271294192889328602285816183172691085712204092326574381853631393538081298550966599764301972011965164802533513868450705463586955245158018497649982031509465621809039602275302314739062345660084804228088191894159682867824354885326497815796604836666162427163521087179138147062931934235545366213114050831623740644958852601186347755148991768401587390720285677700067104260643145338382101650908748959271239490655064511725721416533663104817043605514835753054940438901558572489134391774185592431483901817561579508905730880972269650172999251798426809443791827630723200382234697200921465365688826841775808129871650424802868934028005880283417493667613404744375366640932089037384063127905142725895375383216306323008283698305114889291292868475944625099472415648329560072591327357051282714244057651433288866106458438490162447535759063399464953023678219956199677843029171613626589929317142682050985997754201210947210719767126010395515340920647545914129697167451075395353444131426515543004702421040212547935014990481692377195478350801182241841743337873393461878270546487525946535494147738352898071332927618618658777994650001050633256866775786903047109053340796185332796073194400994116730527595625471821256634806636527706253002956601258210417795117243775030568417394943591475561062603032546324719123806930198445419341903729782971583415378024925161605029267459233111278504540502895814264988649984488562649411616101300804578188847262609742135974754753723408259209502997350455497216451037121596985776710535407209171247624143372885227267885974096357349738297675364389593042133578630469231934821593403849608026197934116273270193015914999812270264872941910532916571670184609115866266913884907399169694888135042573886972885999247058039598051101219869183469633501788854981833467703638069893126767245329499726846766471891965760125894907720856611812007666711996694939721374686428477907625225068248552218946803786483440160765445935598860484812923284283117013980105467448109473987895565230595520130993499818412033968719764589841211505840231205989832508591641019291407440479818820849645216341042831768759454092185998174468389857433759950238906835078451339448787939234485331686996806447264595216992171645223337694109181095510368294792908926244675587360100472607473136958827386909547442467169419143911892682803836822837007923998569275840437696923529883067849872493229442733796356504012148031676501355924257235465580253991002700593170170146048630291695212281247349927164032496449759493688371704229776344256199440762062360163654860469725972739115759749221165206054816282989905971428303404698308623409597188569685745150488535044929109543376858688713381009452279448008058817593404860138907551800630027761330811305571707083388899628933630763938982787212805195181794964906169665591617159823102086626653516357516279008011106350204926087785601003021808501701475425584631132373271988597147581703798492589373290237956473069495519401902415229078227425055600828467975209643955808055616190115557686625784247595617814358190280183940591915961541508728136154986365262359178085345365071275763691799967976840291174033558292230679135822875438135477695258684570860855268198799460878788661783994263406911299427905336835719616162339926178115018971387811746033670614853059696368583363747249785236227257151706465533151773583186975940353256684626868148527784694999498461152156424414187622924227761274466098435868978521470653623993222347385598928937064243951676623674444967625974854876610428549931967167693165753023587689799473667826101405723979425905138052313345230447389136411945930633271158407853129101539839511174191687646913504749440780193013206994019424968680508656842003083117926704175695027797028930576025254285945821615517115704275151264745627775503873325480817890317217744523590336016158105246861233309391695933482776706619072373272542282092870260654135191812959176938371844321517112773524141759734167369480114110274595319382983086395388286749079644841863493382828238172727060246401670855221852631165456056613181629865869349842788310299859289104753460954870224190327810167479567003250556527122822264829137196570290274459682116805021864637914565264225993711106651003084905644391875478595183394751733636899838465231689145413839749367647769417876784236520502541656291163167754071444510103798959627204078378341924177179322739243103912626164456692803397324188484273437122687581623361188933737356268624441372133811699150273733974892057684305251358264100724928210547422773120011436214886003424981640830706067576820246682105650169942609282508214393950552540104188957262813452820953583816884370266928890116442188432250175576319871864551699419920383767469383458413308571578662047117349151524424768116681109122869430735768055457127683352275446696026584373791957958734307333607031998441242649332361914159092928436782568416904175472092041947886153214804756532594281411632166063997045729960581869165439479552934264793519144930151164906359012964527683385208821693786599612711907258372932223124407937497460020652146327217061181857605031267856521713830927457808248406629277538420410081831272243203255027715892551661147618901056008064133274977008437050291537678886240040937961634159484351363494703975331925695925172510562934186893518733299917043865152347354261211698768630455736604380263866762159877519642181733308357477687286438681242164761048769678425061578639538979513141991925274518790290336639607626291466565118885333843144129891442120474218072048678940159064339833972251176359197257422940333561719716293062901426455723857848819792917768339909494761363846457527132023937701922890880459800255216944824699427016441560110550264048778639131488671339538720878260402278321722968345897932983371566829209082014524306372918537841177644047550156002059648164112604846158458921894392757939540524227877265047977572072528149273626195450553605524886704505512270651277356788412522269350446036125189647493794627855895564721351419610207001928310687994479965192397085033737324956566436875967494245467990596805671633635944666087970721519282231023175782514935495937954164533714130388601280456825418653873198022693591022757298034906884008626403633079046525285412108424845176950267564093031790850216841818271472406584664445753554752533927021873068956314581986073271005096701926834031854916472144952189668979017373478644932366285079596437210938945883990702780798616720191726061993981436121440447612594401391557693461914121936200241746154104836200116643847042723909065878796036824537620379315066719947516051643276935595657941423952912335844498560467817208969797581940933545290802598155425427874877754199831585833268615328411709104532762592662944591538054421604318152870835156175992927604887055775998142643229800485201111172617635059131825405658513766827430470379337049455294199307752326809164311546764838902807254368382620278675864960891900385553385811508502045806310661897193345042357628054793201812028872605820205575150678877425932724950398757273605543835174925011677861768314768762100659842338664050270509274378314839068593532644886161794595620552491449631940551657682638681537272504594345065193499841341425519909519227029437797280423709984327284867183953950848048010409518086207979646782741333151798318896254209933959168915313153928969400132471502620923843881253768139019985612739547969000414357069265768505820362805877391003897012682801476066412505554821241134323323739315389590464775994593131772948537771170716571218088003136401300313505875884296902052081050940498465199330747919928224770039429438714814097751096734020954074438442572734544306967607106006267321492040216284893353330604772064128329391481741815096587560948505488629531011219617735897826239205045756362574190020553979073434997946261622436074787457860727305956800281218874673859256969662401835454675678865183778119385561492545456157917641275228790836393164342082610531313117449817160766784340350256916152692119702169324730619554117181332784243167836646336715800176027898017935921135772636718751861952216264073890792421550868098137245809848909679066885131812833084362839399794012713216284792779976037256186531845796812086477549965389344546166025531030871610168494954229543476299245293813683089763736582853100047113204984586371519147094457612008634824409228546316890781012992130735237813616663983109019868220833593758345638090955474487097143542341894523494757585435549634073173029487663508050897966754698835822187389036197832547889139004503287634580770355838856265733427769032007515216428363199784499080052144660187323930654002889018179808436382732631417249558223684409497498136328184610503029754254370650975181567614070899474486935958544216326789233920322239626178725908028218525003915833465165900111291066419727756956247601027101575418874225331678762399751268000633426677720865677649809234243062605725733092213990440815719952458622355676955166791704580558885578809725043262309354824953119188925826807718718742476336641842202357524600653568354781464055889627577278678167785318061340788807581367883431225654703706948440759036357238210412217701065723656323974775804016678113453319708604013134653729107973116954699905115470399592354121569993003630717993278153494404393392299320475336497581882160301018214889284772192585680306763604270074988767757172185732664121770239147346778231585038912343599103900646315656329148270526163013524656955781565101633808806631807195832670867925009866127741330458525129311224847661645805268269897104698227746111391684837282910959713401719720319761680836425036021142969448440117775951448579833943374032185619344429051620667206505556048652501154699278753335687214556345140027676044678283248374269563912402865427582388221206252655594942664157665843668652524396589062834053412819764670170467793623972157503234693201770333225818779724958973906847679459647672206880307464390528178046092202599262514291870926058099977669459661911571047264141615746636027565645712985890552726479496501095742373910413966479302067514773421255387474845618379094113113703258239178999912552832319631788729020307500218935797902896075436543282768023545668200251595991576623271493399926944231197813233104885124112045461082447673599522518197903658343314941457976584843498375484803837678456496808570472428261804749027757952218231390105505356701925657248414302280719455452775442422335214761447102338768352766181913638248623231423371657361181951912431364098507453837637742838035815857446588860614789559326944048602365935430939179211745423395555685925309899972940732271226516412965716733011988441293648296880197173672744522631925373095871804009385760505392510489830431025152429803572069701515161290592233879765310364046599350490707519104946867266741770227102468298487108892394431809307838355866136434563634202448611341217277682044012663314919184052005120271077041875924603373502314753360945245910538518444500044379376976453461935139672571389779947755453940549199651692853970316610249587258834203613279097072600498544928903202462087771423374177551423385430076606085310049449050026684917014537919209582834565469281208186933551434962471573280902829992039238527001917412325249766160862639953459460979502232770000357200269118290983512190068627778503303668377031522270025827487728647040928510098225788630946470958245471308302570305106801591611820955729832673626234090405109337300580072809269633285831968974226389136446416301385027819307267203075592829852382327218070005638426761396470614812578123444761663910236433570983534720930937100683366643079986090612504449445836355220276047389415666862679624723928198019849875002800002357060284467374401823609703569958765854768043582419611618346826089233183976879301423021703987054208899973488250751377596268571507007754487663223069093624412177728976131960814402894572765650858087971941759575584382832480620344492061273793673760550145238537803692480933969025785123451485435908970159452308693144355916414681780318208347560525778459601307411876005641662548232835974861754069713899541221143554572192028766621825295129548532556075667479698696877922074694448939179843683348624226056196463487547637157259294601650203680674517251158729200970383064225266348028876221310643629171441648128546479513220506821944913789079937873902316089345853708933895146071417458976735529478202272255293719394663382233462641720980551002014578215916861943460115463117277207247133292728998540085799568690758526670659995666517379273440335623362882995819284661290040918028820057937768178115626500318981170321347179830366166102968562053739127111631691068563281314730841957214982706397066635337111059259105898310869210606997582443909807734230040210003432166741893925844931553284558950432401674263831499501750386801442490965478393251443383202999930053896949007045887719960085462409556449577017166599878309543362583370381993980286172503593703736327454727678907660987305638746456880200839016430863434040780756389516008106386325484534551245647200121134426335002799759724268954361744412288549743259820391941436123977052697030395516476188350051580242681727109702270971898093100118061665042463153842412379783363750141968400040046623089890936582989216775642677677273715036293664492250674575820867108686403631181665383688959140299926801903796266343662218625085130137185461050757565482534921736254006609885533387889806117930921600485492146906888171528287832334308276282053978057620585742554107809632987779202822155561886067267747820890490997299750806289586367617654920433672235443648641290002792864517899813235527914431670908697493835995408721039380737392785977472404916587742757733936578058066766680997595759414049520045988291945824650518312420848353246126182766626976543492990322779675198979735383382758238247581595648792389925332460739364719257435012081255534187417986760724982031001519339544980147352727401186234974970596114523346773596672132683411362821340608036657870671067464493899855008581554339893975731850695033563628516880121355368570289609333813402022400707016629843260154314547424199948436840221332454248455115702288386691604427895368528199220957014580506185004843611187975312142538476066731481306067499190531304923278782419642696676065670738636082170627402831542397507248431408651885597180851002163643332824567725509876233813965754461071012809576034662758262775074235065712885494466546491910604414637230335012685061542790934011361968239175530181878682609589660771401006545377765247903900772814859570578349574841031336457438680523092268388884862021751001269346780322710368694356677566627310060839386442768216365116039206718624972717054194508562681248272211254575394781172555097731705348932835993042718965592232482541078974562336701513117105870584785215549525161236999798874190978886719094365028591289166691928553541482183182756784697740865046179568415305308031224076492053067715523616031964796794654642577867426947431257729134077955942122702734162223978169144495818799849674843572908753950510465671983705653411304539168141399936792511468617319902958845023740323348505767203476793435328974809700757580097101315952567785276025978298972247070367701898842199635971401829579168649116807918158488341742941643954990105987063161738997168748363735882861688398968837380350953537490678391273929074729987796036020781692103643930990880714399630363724735794450142763968310832967290812375759343670215280789595741038290446939050511871012835686664691667388121123089353798797630781724618950427378520892965466738380406838251704121378423067193513725702764144081903373171938840169697915388170879687424917191195687099165532763020914498145636736176353344791806628762608765723984519999678956338791757731330260521218345189491476839454612243281095304964115569931840574776683498629722988445150796174883802492505735705041626652844917678835946797091266642552720982928477058358405006804372526683462425579869692307696886486696600245294759056374609104541759311201275894013001050200906204173919707517027014222916381101940558890687980451210469651992697702318455232398556109410568936378817057333706574227748904320896268584797011290490868539046785131234265985751221799271911576037484875317658414441982575220538871226282286822910447809811636676377344665829733273204993710889643479347402363587862559192721708280672507064235178158352748338945116625547611595503122037150905675133506184691758128100433394499778559003099529744522765824567187602108932288687347128792513034755684515289667581760794154715369711016128098776720281918426089875091187996701206981377699223395424276599794639692420944672103937943288008023154107399800118404973637211657008558066621425932096557916939875375703588909922011979234842804699809081447625849894319472852022392670892551611162132680329216647302091960693968625940633412243945227556881154401139023864268821807432255928399692969820140755106734397850660466760629413114688948738644324707190974984903250360061957986914446565351898588100003382384248645410161881604845064353443747646870964280677272404548900488377971649152587470111524117276957006932642185630472294400820166952803208915608702608876931885939086142516326066938471703486733859284380692632155747594117155363920638074284560642686209389136599469579364360950226563303554373175920564522339020052536770310014886030665240605374400037369794680029697211325464417894681119287421195934484551302523478711044828209481197312159109045261914489664540848419122206705942101692246095323752713337621606642225934308908384820461149300321611243554823881038303310276848442611887847178457757641130911047743557712279923733469966205976192104863129116107625285392894293725116646983430919435365424222132960034412833234998223059816832993759421451201896230114102911208152469073905699464857896781535959426547237266623953143444540763852907073691770136272858967541389798687525372611488665186322173959477915820609017833841460560137649726269209252347984958351167499409970605877930554900296675842302649330910869989483793876534996958841687882229683407170840826423372260079696725581718836123497193552559046891412716957460691654503119775108313334570662671506859828359730773308592554910954579219673849207817393223339283650324012327907312366321489734086226944787280483467571740120057620780102503022969619003704041628014639441803804895029919024615645609519922770960073418643633446051815662529002164117815865091284186560511005535802707088540659337438233110665095872184536692411027111665793256123755902838546630261628210098343978953128144918892781445986188733911518708237794146575139105191454166062129283196730711469074760476779737690892646150104903858354325286018636503152374701912197305159247160779323076347767681436307997021130290326660691076527081954051016718689088653474309325117147752381132891728282804631200414391430529568036741621462439492114869405692280647973763000291906024650472584976802182743695124834805440773823420916795018245992128658409900349553806223837725742640745173999313246129569798897012792480583210204207804183641083803429510421730643306942842138721145632936038548197967096944446749148369451879031339511021998042185176925931566973933967167012698330733524509092355216153784701420926710349424536863072928869079201256797905597216099868245709024860112082738301443739114328498098776614107891261566201666629078190642440680026220019978150820862298745839832244872808525199262973577721056650434786160364635989945446190370752280864334780857753336341734846089253401761783642668806355159218907650009277055607865453112366350667887844702532401823785074823909684324534262584182729562686432547589255181062570175298239548192464362893607550837806935099309521083749292450534582716997716957416364138423556845938980744452192101216170770460574704644048746869589048076229981711528768794453123652237231441401648456176300479110970147246324218145629948831284401910904266140628932817204863259893247540400370059050059554128923293829972580540079443114412247613753615753117693218914163726026053762720908627656636339712803942893005147576609767515507262969179824915552475469160363439486825543941999964105064250992377647898006729746196047850349013445480038191466688816048293138488940057558514370498748675282326922843395691787107733550661602611128555735526437765814982995712201124587045442027816285785630637699421611126131472413475620608078352082277772612194319458761314980058425683751246973485626746444937986775875021421304418040308273889917976807226301561974168969819978463745849319686420773243196003018556976356425573028863755433508772766118780584417382962929944667823174322009908098915532382079037158977636961732097788468039250070704435281234618397330228155752903983170191266905045217225953407305426731953311484149038270902077182133708870635325077474830785121207729752244992680738277436888269521029499495262795300545165824416950328939286195881126457108364691653287532380253795032957470024358609097101987280741089388189540383538047440834746587764800321433115901361193925634492888908145165801780316798543909345833452724230108647218483946485693884075935735390823996105192224267263991077854497836587962284002052162569929017502609060317103830680144459703985902945239855059324038049968695464108136487404381442392059826315277457046575513472843698288499325973341412265636453645787581925799689003386384002844472409218133200514898743347867908752053143110201179830449089965257128363331656595306214553288189193219351714230494601033885892457920266589839276770357693571271298848274213878607983908004289839336954140613023279244830046178291523953916279054725755384625899981346805646549066664945201138460228870069820023758365975356382064791421329956068677913467976071525856493506026771413279458599280591857641626649908649249059350915823037358432732000376612437045019495021614034116027930989983120611984586143154438751139237897829983504632208756192691617522722913436851227474712260289185187656680046207540956718638019608448440770841183077288124894159223277478572846303642865328104775244557064787651979744845109553339233397863096765571435430106895551557485419046577214979898536694571958302040679303096957559149422450267995935614885107919957255733619734068057622043639199645549194909952668701310654795468496395259878456020131252672655624668050728544253280589233586657511377816413560115647129135464304678056403262908826017038024615113522314803211207545671464135119409080744312016901790501520375368717547077971469791680136648347949460561560202811601092539837287992471364425144533721569109881727965454223150786724666987876518435732715765731092476245235512763122682608121350930768817644117046681359718254063663332309759703708094036852793088681034157246252381737230774686215884209126494182221407785867088002439862310614137130409773361225092798771173407370434419021143809203535872991526830131418294950624722881544560842883739362792906665964109564983526443003926484327251554897416871222316701086697189509419396979354806195387059137680057034299923222358949211900894482586595268257538348039295113198847411727664031397934308201997700228672275209267089626943113066470982364817290484734369085634734537245391910068369944322211357643706921388084224157326486655309063793222463086221777187662913356782460774468169811666760492027491753267970020321687310191676872091743300134536319844215209115525587260891879321631843325082972206953200016545694075252985568711045068698127282101785759259078481390882914369058447896911097065320351943404271597159324133987290343876871083287562053100893363845209167818071844572127007019743416632579782885545594615985847348141323464897970256217439124670089219293622181494097208098444583164619333950186691383734013813657375718859971414463697756958080917072060435662482467638194001217354062633929378914534235231872289572901802117931161777427999125328103368912578965219924832994349295148371558314347099482824245235226153979725888615131148600650110254703374193617241981904674501270703766946710823202669878525015697808641506566174485229497967024804989126499616092001534957773195195322327145344644187565738274562469768494889086733733110871532246990540600285416546750902587495148429992956054720329165401268196076429876798460622786747550317050783293263165612551507464878229262914721818792103147554145459093616303462437516482516657113499704667558370104500930594007632507160085688319449600960390502878331832264944199816947823302827023609411429101587276932951446488637963812661910734490553654794800713194028170214838449356391204030053943930959613746223103787517205522313955999977393746147106735166745347477046716745794178590832925188990487736572499583264600806139384243775691177672080526591492527144229741192491256668590247416407083997041867014177406911861557116677642354181503690278825913316932301426127868962361798490299712365014257975762001013395063067822295741308380614486090375675349362861467921230003996617931820318736048692924593232035202232969812552537187262998983824475583237759722269880016222292982474006375430096355762620951243443051373472000391317837873860252440055567702854433927211036520383316009069215546857636822234373164691027192716378731508058019248687645580867190015388168142437953020426862257429917469839745783252714957854496604266287610689780083856525560354590739924040498337068173499156904603554932181011607742717988459220042981120815352034260060114536483452418241959051456512119832539033674262659200558030502210084975827191836104834656007214132264292209902118881331155676524853064350793281600682296190435921492410199293818508975326636801688540377557001532878711010835564677811400047208035947134402397851605531454710854553989870732526562822924579082498263606286017758859324509791072317641659000602610843278514966833947280891921856014973680630759077807690721904779491780608209487227582033744739170117919672341924776903901021090828366767831582143083732057743909381938660688871228681085140307205773509817579455126848516769229408972225419747644518511968385644512428101046418211554105207733499965929692189107570316418900557637895233870596305423379631766752965940916604454799862446608158256746443890108868363777838231426619636041854181792415080946565198285159454045079081050851383542668699193159728588529788959337042642061675428628059925192603864698259050760033480004324246478013287834766884584387393362343939995642305014477569232497253025880776004915758777976804978912638980866065552812304502929489027083984835883270572496961150780736747234628564015643332411337302111305746679680557450070928190502894556135599024724544379301533891908643993164619327540301950685098558781965763042038283450066378174847229141894542039203941462170178623093991327530742761857339748975931714713977341364179830239980890964725309494687580016215991312407140488409641726041564187847735901094776342238580044467570975753766562386744922204607616387540695150903655272818429958999709018488875712061267554136065082978989535442534807542221156936250031737588846470904750992057456943605550961341260157627866647390526929518792890662897915644214556744229182698266997676527647716848205075063396957193163829584348850187902010179910491834380459473773140137754502659281867562532280622284374135190773191439199697652670823267804883629015710294725076118459259335862045503260661231236535485252559566487237995453959525006420239014118273741022392937603452952930532918697722971172939650345277648945030764686117595698459427419354862033964776169825183137688439892428124648851526868347368464098212284309192041846573912279691001721469990102075359010045658543504413673008869907018873513369551109827435645027732909276409461455584289257353109251308719200446616961721507433113369606875562105602757780528843360701213035408909046240659240542300110219854246774804642528731353726203318322936829328032370017167445982423996639370832291665251267532518382563612405406452574979957253636466977727595755622995714239748827564105326671289725219721629024421139796626533151577919710665226950055219747418636719925375810735897546811759045646025294887305263111506867454098288983866568401547411207905988269259785787860583087586642006372093395318121055864953073647190208392388603810094438108108051177858059525591861142283502122517118112582474123983801567179449357082655198860636020316001998280932200567647738088232942624622854034406708259944520086251127630133229249041379356295535889997910283784771855998946326225517920151271161432911441231980998031284961114213439463983082265590185332700716657995222325204463486859042849937165401964577233575689336990062730458871491043700326334275772544661933851702107805419877451004627025661595774224072001759398060983411450009991346825462759841410757239719249667690962781303716307382421933187795278902724770525083861860310404765968550040011819655267128528079920426721897290487202566659972160153844959798157286869374998067888546213531546155744871059950836548110079854713279289735186352086179639288341266695010574048259703141411742156208218143144244782685192076022944245546814358908745321592157902305915138387539657152987100479334463573963637091296073960973871816819409515441088807375693947061866669295939422062500487831854144833550340206851697659175069849641137451237506142913764806646954392286518547879850237236828284694552268710358758594773832323608246359300462519787158603489664202479097863345057214471950405906782549310559093990122583785387991830176760514254332218798604652707037964998842965758612474234998758236410152298352621844831978160280988615866996318672753611438457954231813892875388680521617969088298075004134365686391495577157533743916822644587726017578759222585836182668552374064840571005100823446401497843262787776637904591710627090818883454713039139214954539605066266635328607259704391723990345292680521054652257486026419274541164337065333383776751625306776354633938416286713390606507560372865136310849321743356248490297838758286979859347122130778376891683231889557608872753026168141581959557062449695760292816950253335082693213730570613321854051872850761657909529267300551563637462300990513080584827103095670970270173426814350711751106710403499545016302725822602186758828631733877392238227879972519182296795775415446520831898058407998248784064949808502424068337285439734225246502030009338063144545259274761865487621393190786160707195822321017136088715417599178872509785252851735579177920322418804236601280701438906460289819446494617327252519019171222369031468347946925557217639834136349543451291812025330496419507284043208479399956850798604461176971768509811538048801764454383071222923163534951922718182090690604610078952998471922115307358292959468809302582902288049774818465983063306316256985490421512840793378282182019430915416039523049516693952258017817825300598185712567699964807049947378269380446325482640411846952871387924662534120453526127832586949360694776201713752221891924964838877446657350927013556982043203988940948660487395547517096260692324471257715331154632586177107290242194808777535957823647247314837043385346713013007654518296271558000310236136474466634090920142839971621430188459441612039485727958728772219351323634103878485660034037278628564643654708835510471967780420922467080972679807954098848322638744622517089124808260102427959304125308541230655479212391609485004558855946801463006666200579537978275632155633983751225363769151981741365138856554295046597805451316676661420305160618863245784502307773694892272662418659988981778424145100945159942879168572233833382867155649413875699684243277111622817387454651036157360250219680136779176414650914340060814529012556201451942126484212219763472788931742912423359298729242248444825930242917389754775790952279919772954434400453371167242860953753214997086389447065065536778773318281107997484267970096460473113723264882249347994496039941204948950617541515534016873632929977557748954409815645040391666705648727508851788464241811665141396432504912799390571836793753994518443440481865831420282659391138676816172233320924999384127154194792172102849762408733004746255093559497402514484996500558346746566181540794835706120573645509899765724466137321953776953233594244544521338964297523122058204467160543470532044146629783693442740353316405456284947794007882822006382655482133179703142852692685859008328274974208807566202368446202861834075745836132137823095848482023858942805054740920251022696938514377505654996589309099870747887155529462032508713647088264636656763032832212815535830813804090130999759118159413876962654047787688239253473111848722455896981152860670257506193223652931067886073457277449268370797439527712091436994155526699473681545195539531730897568739784210931054966398116078420284374910847119610300922741173358479536312624777440257535691518215382185742584066754185477123928930908403306164392585985543519669087324869896611621381457128635783667027902238576781687954372797285638799560992996000342646206384957026241146053926204581584737295789729214938615096207123094741425078042787417963174213504214039290739412983013695854393958548430504698681638615905378544731785976603626799704814438192873802660768868084479437530245221042082092618330421323402732079893990638839065479165915567722907852336194456282163363529459223181181274316546702685450201717559897168488381931773792031981178116759174153497801228997714557393361012733467625213493813133416720946325483125285985905727343557444866383958085112188832401770708183408891491595034499343771368667728211218399598928590811702251688020546139801936020670980890372423912547350627014742468928046249749263578801324520233788473137597089927307865239404757764483203593540662964787466553883160199163446522363473716622630764581998772061129920481094182018568126198474888999107493702756987074883034977536039525851025827848318403486528242304550567086826950855131497959507441319120156955380972001320620812942720229632258939232876035173636040954052386894751533390895828271493108921241746014735808250577886371850803583481580765027368121258854926084911859321585818429845483313365789950068483391665171876642099011868597860052287309262000869824527372495510592238895602552097214726547543145984433558899482394672773695108858063798054582807140955535900318046041775577600642594860544986380936777869780457416618319356984755083586235949225739129986970961860375104161289673117124175329491024147337106922756092951238393687034157059506580657758513152506651353341015569587437775793550305445336580943182446586356417112662039906576567819537592857238188858757764757031994263996656412878975449990644453492737353360235822995020905095205270303075082949304976585682030893261193872383676636600669992257736252854286725259975293268209552285132545409774796434801847921103236881566143853646635702264829983664329910868545452677630078508971786764932903307648873935080747790076893030575605632553456353415627919273977172059173239635237631765411047933118813636495185644241188572545925478229285271402134189515304819825483182192101117608211014961461320913991165388461726850065733285279815917879023266114776657446140642184513401746543551514628068353468152826199198629843118379585822275336667142979340336840733670782390201980737533149316439602485347932609883902624069251797198526288801978130498753033328505283701157643670392975939341388721448228669999887278039393970284675014609187639509738818427203757025770787619368964404785323161316442306394274895441019166364681740094217329106247046226752815852303462524752269054740175440773662848144431487571475507738776534471176294950053003497787474016499562442705078134369829226729491630376822514686287048880613657182404459230536090813192838336909939971668367725209715387440191506740585433907194754674393680084408691394055078323682114960396719784400406986150349167848130799666842095972788862750674338727043326070058518605073836760852460186770424992669933469139469047707818446185608546720180966693929403867723577006956370012644335058253065311392022341426250080756574933681014831944484185460608294454695274467422054779870480708746914726040234231236907039255710426456308340268630059292905933744747041059226243887749389150243008753674978740575125008724173890037261841285689088129265453924345246940085791377387881413117617647853555766873791004811699732675005036921294804539275314648015559159001403410767662047527991822598140473275114270299856802098021148124527086258796903892823179748660798823234040347401618572092743691041333578614688063383673647343711797660569795814739411077711461155437009809631839107495422558714487862207806290171929656811023788690796822657335929884626425482204022054526444898291446720142274666657900628491362094413661455839563450797977443588555571862567557900751490061112998024400497919215292017724920365343927863758987405863035865369701582219977339723210525606267206128894271177090240546477831332803368289152756795104657596219152211567632049721057731710469913090795594935214218880010098062985876583219682264963279983708743130836620269324965558767057014000621551268338268442747759067644218964302969007269399589973604938295174156841079315656811207788822274650547193455137135568271276815503624143914728897565324177329175870534780838124426482298579918286993018657210589003343350248298760994678038549809002487705398117591229514072854567100450301698269149828315140661491784572778824422127586130189323113246632751280240614913268374894442985220343798464511246780386180048555217589146261742969600998626114571072471109718775049386188693691847774720903440797933388869712523456997439907318384392072318062175024466933558982751923820690259342622640754210572800706107823837673943991493351528002478077605704626328144113212629378667617779041739138404505548065868961527767838724223358728787562935153343669090087136625188989048881725351684763974069230802012650592480306869850920056661450308494902475473684108759646153486723881137643547008616817156212172074548770177508666117475889430121097730844509246023396517386527276577259570051630688516810249238975757811311639491395732923489861125495603131171979178311303304577784103911152752919713995364453137753204920214779109463903298195727804106112897032430842579785982756795327252018777377335431280913143512378235683557851031502276685600284440190270011712945091565944541956082107454382549938032619032579811545885249537142788073300821540157865545111312892319836112498254934717635914794574953020273087631085261527070310163369411636612681959924980630257490470748486544950661624299092150652171830191208670766381721485716778832184138649287294767007648261039768740566780487713490728123418445854276227175270693914806296292278453894409021663225882776567989821479492269675665285963291251689406341141927674276346498378206580554352196864376072235070852802818079476431868620393142740324791669239287188011619993717684040963771691491434851509687384654419089278885122905165560763473473777007078701091076809595962357355151319884416730766108552130360583737221882496603712835108560390986083811905425574472035472753831357190418904467473564017477011876701382544234922488765465397689336591499625085226937524112995857241816250378920375609426470593906522685492566183451156430843299826295176609494780181938257219410142573109888408444583745799640895832817604916667450994124733179899163653923195649633056668572165552130345485849119641533552380837702447402350456698559239619214465372156679051952443933008606870608825907092269350407511217923683983908399941987750964097771348505428617104032225730823993641224552443791356912490127578528177231567218766237632334691422810891101310772021712405398787769118514061790378645981397192389035886219748196638101643615341958177693665818031182477498340440328039916877461503391409283129961387423888929998047520559097375388153991575186419165504678630407350392025562639480490616232631973069106127219106222691930876242275675683162225603643841707654874967338138187390914345928670167175798018231618198606572640364397868465150176048177804448414172237000876399859545236295889689525102984839864916986770548747278352005014183853164192628196329514808979958695384614832108730347762764062378634855267760504830908815922969535424672727076744153217093389524193204587054361206009992255127622194066828759812436762605861663600074226314669318757832458964707104814251026761724256764645751389093602608259901518277619686763051041069513014415532580627864243605134595847986576017424729661263151061830223658105997611335646838342080883603169696769470317444226116545308131950483134035631336334139070188789250271555202345073150058944329320688333394046638725502918467860947076474121420637556875470490555870415303834974331067012147665817508676998695327541952373037925648273715779798249043179757446496227346925685655293497508455891366109826878367383276868260785598793605141079204880372082166679655971007175211328962580844304938024532597192508719890023048659808562985538833311463530694501044215966116797957444497126596016860405534044796919515727801832200207153239291159444524464067343961742455993506893354383511022412423967272086642636952157426413309793175859343858224179896998164535960586091247654298909304910265866331859878735334040312429127205670604635878199677221375224764978218673944189471703327737365122456759404263982846376730511040061833541758218241562787724905104795223503621618920966254741964350729607580366397185698769696894353842947145672649884120092674156987250185092866985031312608652115844384044508710537186828180280585772104471978899995352361349369782130847116471351684183914931384236454466332323889737809342664183874627694113864688296703850026154946035559360699199993828905692792651488659301676255616841906918210491061305650748147982346362191095775157704941874324431757159752546197562309115021981459228518228470782924145239003549523065447457343261832023404726517193686815832515100658616142096285707097473417630351770290232514219932356855258011594253685980376069170789333750410836459059857976912086616136963316908126870467656180889345539776714105162675001192366885302250703946880997423704192351499267068563343397743010018718519454681896851800010627433884064285718169448416022958449977995472743253694037387623720409091370490240705869812666784213452570113369017602598796249241611520492466930795069920537423074422435231283188691786762389128280532186292590559328658287151229947214317361523916788725056275530764854660051018028375323741606740770510578885728569317659095470722311870191853242259144684070219297480367302477015477458142167465369445339373777988170804330338190835085445673979888076595649902303551729254274946308759059503002631357344093610118149717962716262263048529553593431641956636957323892957484974723368026834253237363807808135661990861807768452163872144178645371677379673603892017669721246213704235699228901604623931867750907439129352217436342533529870502309437744068682422101389016208764278587835734226038809019021387714121352431279908842624009953148119443525656644315909077963461363688383878755356860054869877225278148215329777276778976303182092352531239800025883494827700663652532444244257788116903452041512658517821654922995412554903990699678471988741030214759334530044452921974826836483675873286844608641660761967684188995576898007164084807339014292208872095770142630907666448511939065588988061012062225968217084375281170677624799361268260366358575417358529335527388699746299589210069554666536551292430935722710725750101547699986796977701840985469227488845381126661926779540944708122534405904509438342121176224767958045048361329302255983616955211233194826432341066964994948755644116397810095517893738699293538462584951055330159740609861121235164304657656238091721499164085782656527141450665961608669459012795874808205253500409576699920280629644013554033681719279841547660238648743858250983299622948700334440729762442248801281388094215203419172887111238648896584702066069375320701299851747178631574118680470108499560353727556512504636869626159527479440266654434017301332086294166610076301050173227913825905083848619383271355274005452263604333281029970175041942052173339885661117123006031135973077651111469073695112180950071871557026044592790002023775653236192294693196094335969810154234982279885755826875683236241631469875325432126101663916058601615858381669810095062083551011503746540770447433327370132560404886642771462130966623167997665255721875658100757697792451680903294959142739852780338890889050993818217869186822281322684680213795247737718206535927625073702753446460392988811264967657421620425446511464471591087518991925451115407060923388586464301098546673274654554620797722708877676870340819323085786322000703521913681062284309649248153697295372462456351595222260459308007308907249568133910589290310065799197739182116389720477500261836273118894161099785535970449127913858500296048447365115077034131801834910801436686208176875519284005231708666674418721358590290902272082856612378290823660551641334549437107554104731830293689135465920407037534838269612016747689678596084606240480016127942498438037330653289030810410003749404987308935189208783392321770494499287603119872173273283115428637543764850153212872019326599862111260687722521417167756223737751847434071309597372229297659041577957982632877479890826066804657007516558539782145232866396204846283942009855701768997733902055457335401997444074081650355528305205542981847235775805447993682075668948139459660690409313436728971804721147837667237191066471535704578253422242709087607493070629521439029189508143558368716941040311551447668535295278036434732742010269789560445524039154753810653407066568129547822331755612042977847035154670054370626104521070691780236929670957287617208278799458064136246318886950819809322916558057662295576494052204693603648331083913150594541998262748613488615896585649087335847655754421890835099344318726767173417983986122689282649512294008283040858427032706482222151750982457753291853242297821345602028601437551980008112077764789086913907061241484181179268851681007130457888945971954610635019588112917589226704200584344948745721128421760641693146646163943876945555357796570436112736350653096313943074606976514647888247168016304226123531837078315023205316777449319592546484444123402497299236900280094677154221451884689253263294613083099962785448197918390165137880175016939718108403642659797732094625003303856160429767228146584493831974213663389807271887793053041694870141248521881796579526229702501256378618039903593703455316725306717233268102900199081851246846039134395650986996262399030685323307867417201458824644056564570024063909926405766067565244005773190564647129277169671818974727872202872480407982042439048329627283490307538921661165743179891802276275435607050016235572290555628257664872011802009220832288000144005268200629258710233948225559703734623569774852800434809764208729747020407048654516764709198539513998631975394329005978088808021394810588689215705695035509314487698034058893979875878944829814902441051018328316729131139315332347355700749938998380302905263281510118443899324224864685771514041828824529175711575329064665424976656512026829579088552302829916056402879058664839911675246705212523806677669559995766242326467331597173958768573975852292187162111078308353229207661159372733049924115406856369439224754161012528808728222730912368769785208477736068356756766542799286556017732663351557941931734892890889581935371579605431916686062474069507892850827213093950604115742097231587267141980300081148092873225834855730951234833553311517853911739310330177915958636395360314298547694731955551503006244547182732034450588460309098304987877347370282541109683162683838193893406969423051821762230792192592897538249908474097996831022908155337392900575632937367491887115937104073336602950730185806252029893500783628138255765701036010770020511834203895963349079174432440469723501157405699711054884336691673327402063065127967163088388029213890460720498013648468445585789369669292022923305022195998909611881920315452345188589040282786619283922984101698456429672503100743012593026772285565600067976519759054261199769310328537790412918488210127897000811515615242977734245120297046769839604828887492607103175454224673115757247473640529852420684834230723238409905786761706263391184171482127546812196362665368676275990629128648709114119813406148398372977279213577016641032969396910627967633502116118924204386258259429747266847562827306105786672560567564607684406226952816981823811941050217278472453136473627499260338263675630495730833230009462570474973609666220438692657424908870247897169860005747540376473336146364713238955715452459537905997133351693650725220858773523416719150705852866025118613166828229643153410077889553329357136889119255082039862694370624280914715014630744266225410372579882376847220695550025186556160627249724238848357435135295008899186383269513990199776914265826016664110251612447620743150906339785538969118021990867109307408387771760136091268675597892657218443686114812154931640752195899501086980874961423531786663244700892692130169975894387721578585580630199739973440350152392894648404815510079129693828803723933332481603606247786754481235045714271331453317124853006641253364754788400912649614031000498538620711660630069297772478287384479984387077903577370806602001514559563207784882201274925285393367865742124580162136389891174648845233952494656481396026880286139732256328293434358555307911604371109902463223790261268868935238069152866458590997408363344717112209646936470451266602086232406346250932673799725623561587374624771429432621352276354259504289966090313272543720392602916036782749664605848778712754628036554992435431342119689286315173869071469602400675811351689868979229498898884048173196003834280532363329836077210437968175102369301280498760524793479664014962398607229483779456177793599355021781752946381819741583157955789966811937404871618772968084324579443179116283559230269613857371988947783789175890186336819826286488230273546887563435212492064360605404717692131011998665153900628812294414512630945451156571535165186899894498927420789743219403230309497024274474972572510931628623957747309199629550292324606487208909434352057538959951399400660825725128516987389251992007347770991183953469416320928637603396651553308420948175575591028235420007353593962852516661123934636770718006323486001657595195631165529719096097838020499166344713538749024771105982366127436968962439164412456832624884370883259013444283426859903789680633104336513506106869603216293016263451444787279847651508787034933445252617122657031491415791508199115770784746071292161313595124692202335899891019097000924226157858793053051110951041698890644266236885392592778379149423373034389392262621624652418567450164363933405668350210355100077566213216800498731394177599370692198414954158479544017761885781588328888518809904615300803709955272740812483493460546741416114378653754014484546886741852865144629056877206146343706972843760854411480676852067558570956595167460641684243194067026060087664125350376792596403154285885716016472803077772227907671797054459512278196301643238648456866430362553121270475619693972953041627257698585094698421632950465066704805849520592724370786544912987777626761562796242227183335899850443279139780598935079415453322457397934395231620061610572314611428181897885729509839044833590961769952438387610320673179732885538448734335709758707609296013140188461894275981634369528724402281160822966735808583882173433891617320343935865682847659190194397118152974562578437847445759389094042169902140148571632654884254654567291367867985724150225282099189047689174908602742388096573015163358592456864442736921748356506707994959577487584679322353681606341110702331552859063743349372270011158393886128239683118657514241140212903748533939487070914865339296639955758590823413170411165411881572071846481253764351102411866857485006305734490001500347648939090263687306059739321376890049762597022154646922658045797497822789285910466946732658082462545009770798582338047797439757007024147028787247908450362294993075671327385595950312844840246412030866904820748818828982404145313780402165500944427016772078518821437259494987214891922965174270799625200171092370791225798861198484017524243535927206315190609419523638350839016170247186906055558813632841344644489093025988791803247573168679256061317584306217432154278163903372404976478039135033353659372314653060170797227663342274528771431494865666875987817703660880928321816667586989599065612905869297470612273979319975934609325688825315271706560380029019281211691926812042064101858987901131524532297480562252740232023151110724770820527422266336780911196349679590131482301592527060557042561621546430599284755544416302521499954284771133585435271310777968022638334782830098557792315778329902033244914101280822072650211260158500007211721896772906770710861817027842810985059288309670096190077562493933024524789303383364253129387101043114319647197577983027030511977618615965678637863437733058381672628676243527325529131639769925693980659228125951656955044061199099842490974529153402427424748010581284477812975460704609743266277672426946730904526287360288982961307039802724093263017010125481841035863460706622916597767142187497922815781599667662612254225212454753995051919238133532471221989620284814000449513193277731662769671470923670632674776250692693122322832217694491253783089067002448282745020448779429998417740950954697157126001017973058922734113080769858486599915761967920730804297460606481423637593112266286715447203329306746912463801992314283619683930781726367139011181937181645559226439211448241459007138480404361842348142016878537127336389748925285869797463600636069121184488873574747195906050555079192101994471402667555301922829760794984300703805520527058738157378773139940724501354574245380690329635164462949652280644363989148167618760318268432554603048075758533979196410915285032201700185743088696313931255867199586269852570763381972121573210226463208082572884797226926834470713924747108043206423392524039444856555926810946431144140629334932111255013954310950421978132047574543472992458145637280658060495676102902376213769545404127378715318005603323982230826768122525560044338740871731544024858179453725795709044552541150797745119929984412491943777988809309370464716403817353241899673918524996405869381331877597309363379397429354100728404364320606136355657870471970775249314947081441885915520237277818435538763114201307533112934215042334756312375196696849533213652990984183704366644271724404762478001272380664452278341886096588278048263291104205000170482222096409184263201200624129188955237382319972150555151039645314041592668862436987548242567083243662465971332485431021581018807927641545341903198533295860297875912320557522740298180390166843657089617363089337047258750238567840431685082086891704189900750510274253642360295766375420415111017745371233447559595030133534895364633614277703706269440259201802951990983945658652362342447157291487297140956205876013417515228070160584833977842566002422467676259539082627686365179951163701918244126407608644776464031913933302452055785151003428592236552076056033474791363206189223874027695520780057814815444044774401187658656599869809609855475618124885492675762967730317754703052758374785551123020871191677632767947763174595225746462299562493712473558445117073160311917061281280428933448937116005944311851808067357466031708709414521675394991318199269568440834646866074756500994234900393966742701565564783397542589470549373648225626218875027160785849539211382257055391179074885705224148519941715745412475980392095169881380154745415837617715196603959815802396417841309972396153229840502103872963648634466476241227805612393383782597988091730236171616365789826529464951345097810470001418986923502055495326702562113284200072945442050482938656745174244689713605054581742687954840554548943256567237601524855782720328902280035301769348285606071631667801614764546184197700462163092639390876152891960187232455810931142549892722527999430438904184680190576769147191671228353040764810918030461887099458028381809361737025017113382230250963391380108427287562488334498376164883299933260924014720092444104648068774719008457781926479781272727021068230661020358615280606003539973128354930958479426712762888691289105634765273896108846499140276045625574728351535095505614950023336287074434629610710274448814658276319941192628034862395965638593040293776657782232480654228234244271649962506394166559380910944662012382046230505887739305924713468839572294129668721947762179964943318273507704708612121978357684077359891416301630882879764838205525938394186316378792085334655055082909083952724961814579275256126039938575652526502097925412871260582349847421995983262703319376997814996093347430620623207218692189458240122858617175789477231140705041021093581272980458426873593249881050338839946352118944546108541734244701982916591428549475825461287687991373765019065659743481144605021357192802423345360998887394876381271651371799202118163939807809974082298483201108940097856193386266853221723300552690820448570503355211235454702987828188369283625681053908702857576424796584712299275366387797790183881538615561270586900303803273630265592599231737237153129014849083167091157027541547484137594596508521062390829781677664162205575789864122153989980304431423067633255192894733692258949845001109373042794059772572547505043087455877749965470371564835231190935357893592452935880126770107823292639590508748290196682316919436552028349368620654563843846884394669400182327279389162516617129799414732325631730221791429009455620602518152097989862876413835337503960111493102021911406622145421470732960507244163524178975810033543341389151610031117981054955317741448094606774203070993060136142994208112807734312342355602708294951044967987415992442383128268060576045929369323287450441817518398959278108247699196176019806635551351860766056715237630906471640927307849756207991185442732863579001694001386473384478440146058955741836172183347862130820349344191309830677969249376686286300490935696149576460711518985395538928312972862985419073990541433629731827285150079910004861713766065474782726220339550118690573265295264251770560329571857945027403444572223199878307176886318542241483343807374246233022543972763065076784444346888368996483714114850913512019922613528429672104092496739324279409506394530401529427344107244297887990760266630632629839213005806855260435036550237310099800816952036470049910427917096978411159489147188491898091195152587711921321382051462911767826376936997329602428519339027094891898219028795185404146801087713667201806573122958173099827670471058665102344901840973644936171886533770008920552588730721837691660908257783359960347311538528889102163291418890158722590323153601085392235608276095642270694009273308904997157300606591427986664718134848301503021835349726317355387536948238374240101233705305539931733272233110888829145113966742187355241571829014374062796874720352320896604807315427752096016728065208982338381510454466912988349321708885431835043403730321067272460175837701226777689793974044108496844845185562593718827299515082675126330935463244566065996666895425015594486714209657391881488872961764941472507414024057635917838390283305319091445777267821689479028536379427667567750288962394749468213295427428018148159325576287879803324695444984380662054488731925492323370830813821085746289869227450110024065103832685239928489679737890871764239807887449111950910395542103482348581547972855331114243871536369154532193515536136540384603846707871775045585756107490208716712318946401490432995809712477709100165108153418000927660404465888184187065882613479986586332988641703282396949012618661682959884749127311420127005916736988087777297315853409409051214659523339434802351548931630702700543812988938587098640591778937382543833183921456516674353682034909931990803117338420612022312947128238752908058397778990624396503443847354578147026484840359289649497249493637695241283461402603658416176328959662746300552549854903057452392338034998737217181087817221952689573161276739215249238257115951492903110655127452522713457012309274160206426899992114541247989835367128060014818254940925684596001907411814346605011273267329074242161483019008078894389221173946163978382892845233784589136791450261896539281664673905666993134528920912983442441898149455093917723164204654823019560689680335991727970156241879811009737318283039537420156061307537235635109477862903707517737371003825918398468453882135770302446821064007409268103602997331041233900386440446209969827784945725003126230153209951659582091667636197384197761843937672114601046889690600837408642775863751600579630237701707121186712450244795564806299909507302914994296901251374961488565611905424248161481253248963144639336111626370646685757145003002190569943422632137931538999986274215197354854913798938292259320198889512794489212893442128760301065006748973829913784425147402619226086967447444850636599386029291136704610282650254276220213479872509688236300503089919132961692454979220402454940462908858723960755059770406278910429783436843137846954428048586121655792478587979590194467133052669040902907246073966150821036342944508370021302212491272313180060841238355887093602331887560626117376904462980293954584023674705533932330475045502519947331707128756816446665385886158133086135960624176591787197718487379328110748989364984116223544018256452247821599036227801108519126663378298159700733921290181868589291563015709552185928177429757816009722898252687164579017337687273916852394488593651036285261147201388450779677987897320710434064199784652091674059987651270961322617485305168949245201137590810724070684435966456156217520002946379376548820796638562063936936683862298798778986342587613949466425414952434059921372787950306845595686477208808256952248504695182928461847848873070172785621965708956571847851150339499285425824943746637945892303907015525542654442643665053421188279971820362882605845289379706099051060847143538013962444368926005022476246387373402935366214450855659869387207733067143907540645063124345434775589982108611804483571507019830155817376946850526179836404857993903540624766736016534922034288040616177291199248454104600175816131377316243889776436137477418737577023989261366574664077430181260240338914700873589383091821702963827052200280048095707490893185268518889227019588314610548869905040888807265528110225178567655065977803645507641391743277684221345003776272835625366611680502599189971836335401578240940453769057767411537700759740479245962513882907526843739968948775604162502011917498601024795266001589389494751120734792850919052916380048952045358655995098372541376919498734621694139109423079701193389439876089741547889402348713410532577909421648675318985279478140457599176195229693269113964450831133258392642996187094637882749917560816790159139939573983513080562051843335304800923638107103287929917505875147516884275729592441653444803974942732941880819803106096744230676031623385210671701042955445834820658010056538645914016085750836586352548388824075940993334464232846432895787630929692007653723130888596810260468379267228964792733681324072318555300623163238680158069750814888713864328851507124328632364811275403786642050950065714030433189706051112878860478847369305426250299169289994666093138256902903720205378503180679808273277435218538220018861005271174935214439765137234318511513448511899212714330322765053832431926826668500704836450295095638849459154365635108903776713131173508928959307642494966185530043275637066258091733451404345296241012139989647981919142280698639077592463235996121311052837768985342562887311109115968698956155686741409806468030821441229850714181044113995140395894373317165828018172593718674603284686755105963801663732818627270292028665028395157008954691180866135227044002103600542789805021168918351336669440017681906113517904821379546088127977503000571806195487052519849188308685047279018808097028890131218188319980079803563174275228965893664853110442431127245048137545353179326889698389547976801157478559625813889728154860358041151243414321511528964623247913939595680649056268284834089067922240096260930409490432643298516038176522775773740720643909559861535905864423836222358474488439477103543383311334353409340448178552603789672063762616070353797863798523289793354393768544751036836085952492638017323578252416179199126863103462579803833252428045706512357674795123114362269706863006392529223012115244723538676058794877840934705629452072931941088171786052635079964890630864376331305199646855585406250875780998317359173650714264290951205311929171143155449064381803732214534962527438504716577557747290189951355657289324376168077598626669602508986465036057627486607935773817605462946249074766626191237896764921907893619519459486062193718528204190691429192916284692357582602989471476409546936305913557981701609779119311803293165834153013036431043465980544917930788960232871856754639343714451004143537154846975655239627675596472177208996371055570956968105885871163920570849723013685216062404439717447578580914336741385952157530854533445810272020230427062619856588459849572837819445616438579124478591274710558992447786627008797725552432012533853744042469111934156581373837784124445064422470877304202349252746521997731050729036353204833004869276440635404832569706116504639247477306859580212390220295301910480432549959967727668861921347859165670514892016178825074525931990119364341279358707503539855364812314155342340841267043369475553280481595193357559693063528842953435221975821756766650395558766008054614831868582983364517102747181936580205480803659687202345800561399547458689134076834818583830747235973324697769583942876372379665138499964374933071592145678180530330866935529426142576239813942921688569106230311190293279974758879629709547646560778563116366456606696392305390442829958005849404168293459777112473003543183198419529384052412808393493253522140222680761773202501918792737615061310288187201349699069532485992720291769789300424805539328535917564946391284764354995207957881084725802296797025421352284506979914945937714932105589324291218244947920182536832179381643845669918501479228628680268100231112396395421967928934709063780612252696513717968344650581271236654551444161497927559029154706283549227766713781510572260062825708617822042863209380530621799615899327813309614805205857364423452699957007734984941736965196757732424795518248880383092361644937951832013849668737538076896116091906869028697918617698071358347435982629667645965039278987774338565227228966963046389426360793416904192726949431213014219222393663849308563579891059306747931219867138188041731736812830582378133396658582583945239067033182721916541873897402220670308375685261705569870589361523276454039102066277983160370771554908989350064613291388188733893198806188586543810845179349312699420099834599818735899842301658453433907136605272607407031095470135563781300100506750558751525728690189171416945687952433412136332432582102038431944871091282467042805092163951707093312599670054519526818320293630020704902188413538885578757694786694783998008617924071610339657501388845634133556693892577957185100013487186945975753601164269997268794682279813683217326771440479350148347136323364727034900112061913509094583534296215931840387531195715085465632690324513330071941939457090835006752696284749428844412127819193122649036038736826654692025140783142119339337802867905539161336939019795356396171992683433864756066106905820148822435663811254016525429280832861705635849287179384241907830586914068123116152203789750939187149941364244036349843459065061324038394768670171947627804445993697487937048365249693845974653082884258165744298375064720803446981265316618718909429235633366099608019468666008103300126155672289817009650733699093605497483360439204914222444815212517590252329628228779774588692322412564447326237092537978069431973067861767751744160553502819356234378025144795487446880293592651072217229191832991840680159259123672688168266228622905504892951733216418513596807472557792592360630718625833841145951694756177918553554716976059319993877175480064414699408166914648548548236822975435951901843926829433048985431027276313223108769864122210634355143488941486562342769819594330987854498237325213296040130923975436304886767895886833138618909429087549841808470204243155055582405871694884528743454401524086952482084856144806888709374709916927770311622730418485325880225998065509134706410478425853027383097151175764336980497361827206290075984110564971455239660443944366671611638293693963947245734324818414475373039488961945005485766323020018251889477689613887585420653590212390523869444562279147609586115795996278379925766576094627859755618481729734696037660751659929651443272679902754113267953411528067250462322614959362461455671660891141228885398153666526700772070838502142963468877653843580569910429917430128110216656465700271234139120380153332698415139406174419236377550115210180296683632761117747957833165235413495214555427290879792814282278492265173532616398502969422592851369478733808387936833114621388157486630260217643556750735411635721877683677319741264399023682750736375656745398264474189010199291576551702804001550765826337286395871388045489718657442795121636978520005849602664553893531979079686635993275637362598768469973106179170059547917681778507801915399243915996591765957115682041338809946182968680696295895365196891651561115365896876364385489155672047452121381987713071037689195146500942913049058245023987523926917270766683334072959191254441911090662204024757913263189223819507971106998729197510037295664082209262408732552117603600027007155609573011000911615031616880077228431041022473271979421935251934103435286109656196360173974399870025033050644373270864455630980671391491289856736229338447784962815840851315451232381802345093896267383939099563064985542357113579655616376231594168044280151879372145003925860503987443976275963951791283805988836526084468381745546939541632337768952098614255086011177471126870748118985999605930917032616130289662743699260120434064935253577172951343496636327025942283095000447435266465816066180376136257315012715614806758920455743449721228020475277136488274138097297634491284513536273703910713152256982076415549608182291148535431661626285409164299635739296822513368558793971913635089705435970649145768570068221578672816060812215156622368762917413961379860253355531637708048586850128752704558810864711470673986103399074521757389611148049497748632247203571749155345931482573004929269580402742839093441406149592534204773119805487168838932179693063297347800683068973615718370984958436861268286621642023698751252989650535280316908489082995999794052198156964205354815385882412293209824140601675795450798504452325082681226065367116497761064140683937452851877401185827707902212865773034355534085199235359504681280313633722545100447774964068851961989823193719606772340223954460166943356708199251577373581872087308988486462019273837778250784018192929577143125658401680514991933273202010444591731262372721531712959888440064465480234580870507848631813683663413665447871453755690088865768490121789912526559688358237616709412950720418743408580666896815948023850797652487491467441162079750898838778073599942262023435015716156321057060962892556310408172300706546286391906832870088966958555564311931234743505000461432428166736741861001165920286201037394399776623138930517707676217684012337576674972237410454383348743999020410246506073312024370355708169267488836197433866970149571474839634746178679539928424698620904734808482782576569136472344968841448494125584756559313819369564041394708501552748303274552818611149011764415726692242126943101946072107542863399933989178454014052139287594333448738246125040218819783123104587651387215609133379231479137542591006551087129357546186432475739924832357379984335596693000354238076034248614571827616327670646790669268260291715198114506873475493849235037457018161810862994010461131062840659016919468361549616661499272105423489666595613473309557666239864413561665910738920274198250655860944233136895587579780556722662227882987871272671842324384690019888785004476373110645742971962290800189314260888981701813259635327617933877808035591250366631518120091298844016396221506362712088983485321288214271957713649045177585279768977063368408170583982084239835248578399049741517208010653090995201521392515878130056465752581676206758183109291243832275777881027750266624681804741828810169949896069947103001060754937027900871713620658033123311040271545189690654016131349862420011842587435479463314450937665294538088287915310298799139206887690119470195722432718471684572908975430934025995461720901020390781133206404954858010513894943944595749107857899359062171795568591061594330329356820204251886982546788622810297214964591141694929709538086573536392165277993692531590124556588550716766658586995679409012722340373632171578160126681115403963129550665715145787712307993728778956990357566607127220834968734570755532034597335081681929913735862718952042679818263497240842066852605938182993233604856349531999726699452829900618053181321919175902373739413437697703801640967579839061991179470314849846395634318778232193756295268192936178849150855635696920577068846778322591659314691031750271645462306386181968957424275844652431718868153151233536323728693246083858276447760422279821211272871726299755083182511447007057973887930046308680376624145712181599453460761922263804095231947639502951190265234914369401203352820765797930045053278199766693416803158073548703910475558318960888277273741612883771001020917079511920198252460290781596332512582845741772528834027474166706345966395426445751394582670654471333378623826957441709672308291320736745295525864417643314374532627688165110655773495650318191913480234230047515126393471722083820822084369446775824146835193194117315405745220364500477177135889084800134144074515465894487046477935796477740593760420275338052357799912498808420331020841227906368397127056459123103505749221101288255727648020990064013865997310902979514215658776038292175829559085279547402307190001140108948402843090967365708154187528535779370416000899554316787455369306693869484068948582828210466613001283751496656823136336360172256576024702713933628353449769156814574933463532081707518768649697054688461245406454684023178333026706904675774402920502843002298225917623034893901155565611433422204749524681453554597092740833583316553457494505303964964524235740224768447439440233024254885054597989009772648160390840731388565306095463233125382115574582718464338358981239305059601788761358443282513289213213700826353569345419802851009362890460002414452385736149629128024964249974744713289472568702801551796239678110710970021375978459894167029172012628725099475662706734659587772883935491383455931709007700593929680634331870783833697926988630476646582107841265389999730570137351654333106788906347445400202801334637319916616993985135113843258503355424971594891722642152166889345229296223392094586440634410109201509680338092420630407620033265461020737453370635955023127037868681523226478682547131772024361720781309573001085306617382958546040260111446477397016428364766793382729431440646692265816255359040613341124269678035846041620683781971612454155462320769997722166503128395918931186155042365545644503264017802963210376833826071805032650946817066284698124564339260082345189056291911460632443933445977471249368055078513655539034295512191904199443479420811599181747634790688361199653666178798624854555204560442704825570958552320724409811169534779580916398431121888141674708666262914843381348952496245558646344344475520376463847942762366294847425487538849874085806816880964663295976435336952071280852650381977502400147760679862997390689679958266571708980591485433166478372852994952066411159387644390804345278674381255827206108730866996155370252259933362283014220118249432663657097757896474387033756182674458280564857317424039210884890276339198210485580727554038275098933744399286974677999226551637099389671453273027333018274048935478166834085792547568435142682882856005182067819762764667361338238075607737090886299754613073873819226497901278097718851553863248022283885185032410103055757387496306490688851732069814099292875362623116767051979514276087421852200406219054272593134219906706123551243803743432603996851305118169088653861537888065593965313784789935716997637841916230706181442784118856199707139432726290160630471386295856991373275805881637611416973350984754807558921754724356415575732216570962470090585356375975311185994933540574260140879012954903888477958223984812695917950024655260181524412333561308682757885660396798597621653307720675902015952703900897602062282698514293950453933404700453229145975555616928336676895690076153544894536434244713412460159025868438461701204713672032011352976532658825277973810873460139398489317512476895436021363534124209928197886323050711703696670483799491784920853641801762391020137627663911938331226787014343814872065865220156757493110420110990597008723453986685740171265638322109715926945749895432505176842738962908317424584627098658278894006111878904347092590279527233834338003630660701086820849792307552164656902667432812515106955339902795315213876601675626540535855400272681771006249619374840113693806365297450234945734663658362145770786553174802984217815192382385665231549480564161471078729479400412365564770299962140030568644525375786018811101523839571041611392181327271959061264233810716646632902121620962098306793737757395871934319489914615429207107469077906597572403711906300134025694060645633270592873463715647581554983592809275987125390041131986773531654874838267480156928795708048537356071912390218491054509314503259041581345910213064918804512133812687184820942567358239380058589419261920838742498411072364383518282062642343738315109449606985656322100096245631145871182640923970136845338381133556934773519375479024753868642859053982800715005307155551729546695520459810696024171486726104907235515073013358136712297544766252407384135225808562780593374041733880653215497572842434170345269564305004003729163601773249690529170100745653551813939296562147006458173448378878597238014267111249084487556100451986216576837871469452326604480551216361531547993940657706455029554466862875804713387256051816083333742981724895328838196018746282705593461523260676403076136814169926348920911494783238107297256061145197586673429704725491229920059906292223088125978870626853412568588299695263253773218438154350497570066084132454281002065071673102228841811067721514303460085792965681351989293375836807319192414905730812716870051340855682579367162364167369264830383916016338153289439967309636741569267003347848892455121633770358187280501443106625581553863461740555228554835153475539115348160309048921428744533525880074306061141778537720864741731381427320681337421075374574858494228588136466909981959744968471898669493289102022145163651735239628639820556498040855940473350058308677058286554870523536109167328137878884083847939515883180131991641637807807206320606403356988007951804027371444106434582885825593182945801883826019108029561750112927522753230893461293327152952872953471178421569174708821056525841332064289098531700959297205590328329148069816129452150458713422950676102913837572789908833903271815166695711724699260629203638776441912066989761947415055118029595266023502274097030462904389417876709149264567226449811131119914701409115730575280398773451233074443271608049969173806752097204389088297369664637416250058776113079443761286745425634402304376500070180881942028934550333191171024009647874251382011066756374378303728759416137487305641611183232417254395577496569438384215066701377549026467830453676690302320771015660386541527990511511280470272711377166978107209573544313268918997129528087761513639308530021315153320951518359838705594901114114800480583737898853544659664466767244929685042883079327936334152792109005365749203527901801789492464580765269380826050506082281183274157529675215640335169895244389608529361681570172026948975786075785253649442769037860182362323523012990190329770651498802385649874457809102179821886961334245654973613843372023063703912999211324060623659858853912697971346412412758358752691027729745535250850087832719925007916630443879314131521067767492879305917858521739368178854277603597428377860143770936829764058359479789693078914597104728986332627075390522529452532126087084074174037501999637141391792052073689613565286643735691155098256767587233729250000399917568793142225804248516803318814865398054603508189441946570982584505523743219211888550118278436851594993757276968982380358352872700386005425116868679832688118556268616930138303028084915516228066141037334901565136332662305252079283589608744199513835258655740525837869932684529706276555592543860004103064903231587952249433994479629683570991460664465303368932052318785118168183471983867536531785913766136766295908292841924695056109917728354940178942812243839393569484335538205659040370584940888323668171225961204077184721482700477131218366231827191227184268414138204365144486323752967619699245965198330100020966803957286326224062041163967942548197252733830598312403237364707275154566234242886370473801072771835581749800177049420170682028942561697546879801752482371918297873582474833968991867856029543538178634088151350459998091914306130525669457696701955198227543646478770023872977762621217415016732621177937928126941218429567217407909080151268492635010124766518478097329189049964963255577068193328653985936334760105566069707274585307037011295097909806064597521301540374204468760334841043907758725862911698932522615816127211226092765755076986280539973939310835923778067683382412929021096859913918608885823322061519204018711940147619324449485853718973396471065597370981365020272743931112125979114073548666348942001625505187189395050548927249485085771859451643364820984229403885194857964343511593307089534222347436265242550357991790295242686692894773609590925577230582747470519411982286672809875787187047861548561995922706951859503599463855353858885105113160776491518372044614554454644704779570530351599777130268567471806723620871439204512395379349575017409399203575934148498042417655281914778684757251479674940922565527482501733639399125780999411224632065153142154816149216132624037266019960479369357859659176263432565064291374089152644090325581901190645334060438364165241867418864268896508226975651744825269030187019070338969883895000799981435058718192814142244588888478516514109072261320392152003863781878082866899433071703112116143292926927756924424589563203356907804383397785771120700420742607781550639346203366524308313119344371511403540701768869738347434055775962554713213252852178647573213449099880710185605856724230229562428682323645643925338034453638409246863487679012422942328847209136037031308999223055720923783206604117659400479079487426144082918654082337676822154227726667697278920908413517211761309189567542233857697038799862959303930799509538966277588399449195503539742850570417097006250674997555985584767099738674168526430633673412351845632549364888084646001973437787423585140592891640141767651623071030307105116121650721995568211587448420040356365649285994104223575309393225798148867539061657547372017619704764012541097515057100105478617109114599720865638868370049889753543787189356886256684366398047599303751260448212272830980622860101609299288236635680610982391633393370341802918062168234519120984502151700779455951454408942536485406501041297125499538000664043345876189943783390968432568581834948553679308802204400472189080978856780936628858989471459653100440808857382894515427077136473868022163720154446260281139234952284661623637454148262049513443355131614351274114186684859148334778089154916309699004429424289840289300815607511266106854960101344646924416175527602266415682058791257382583221623258139837914679869284287089979125120727275119471218549561663312984939849965939095079095343329851870669881261943436461797136974495938639785394474805647753316428767435443335013163893459561869506149542251161668419651066877416650323465617288339584980920509817138868399116397704885236814205983548747082393428540461482023285862592054992487619072468814393274707571014073154994421018463828684251267647580621194318641305603316201699204604882190214106740543227384682723495992191853567386991430076995171114408104902685034032355523380548185721763464913478627671827513224543635058506253653714825759238069755231379494619153432645505775283316967087871924620259859879956546418761000839043554624710921658422888367858921616759539120854507875631210575799360342737991443596051025660425554031682694006236630199836155835234352490875968351570356434165658284764907908363812486194127470411840395336940516741784048044625488443302584266209437381470198645822305071495023111724358529743646505587893020006911391695753384929997647397568218140658882919158275389406012400763061471197048301411368854423142683019752708218090519063013512623917619540670115397679029492918740826437990443410825570979443774553472951364924316613185600422927316070679768938040937964763638249461627448947386969558888261467703423485247032429620164255037657211204061194369916454561619395322900053117235687983345815525733182821361490722289697707218080396775920511624680653472903921471201035484025723764466355518654036146030927737678195932148824877507669897687250623509598192724831192261335304826441135945128785724197660603772078096613104031149156237044318591670053995980208022246047678924127656952373325804467574895951161728788996181099480281815882318231959444736865505850957965183951945422258865810976478706562839282490561633008262080178742961094754520517038079888296472695131527848738897868801903154665107488664912968576376836247370685099815300475614974760568762825306747810260064029709761086802160852164227630019113515174774162533729334268155098668374071737356468952134215384998224124110476910742516463448267641868584302600198767033919669832276433333922874242821045963090995495411862762447860930485553191664941063420408667044185601655857504607342114994404174439095302165144836224437487834794739765427789934469260716612776867176669717841557403025679245823382987906698721014099795866296370570949266601647187764839111951886804455083978244892778544796140164745411243475236731302346760878587737146743712638054486346393464317011952915154667557738933433947691881561350199188207739289730072310483052383007863954900790504964182328811137048564969729710994393464452778739056682060118308219210625747253449704148958653414500635337326327280427964273317530214660935124976345065809318021289103609483712088315082437315849390425830433393186478605557018747056990556140326099833834074176154898172029738150657695870728746948735987986717259038328601059834830198660808385410748050965790751082915955484965712212239112393543000835695727851533111112846872158563212233456896511620339883583640944807935173998691749360459234306817957351292396671692688975404429955140616823659875229203740071552176304176520637060077576967451533612679278991467490341429137705194425062552288933630456388353364209850643776007307340302876041021731174549101721324518618210730127915778026213825335506637850353180114373422291016741243412281261697841802236280902200584367614148017014716569010128373885196737870165545291150379639463246831437712994102615124273156405230441512002866786724847951281038348319342141786573645676102728366124896189900645352645922816360329536721250644306370031629951422321473895248522318222527715344930856410922518414367538870516653200956513183131262676940694130837960582352338542879348771952599101890138271895478482653992516413169142706485667256714543509750099748849769632128268106337658527254180282363269841484193800413817145112543533802750589948567584244900527765157939358723118666726029686652426344085459291922391429709220829809517375113722647408165306038973795719813815410242060881361453300371947243154566838661994946584282671899606766625592581308910630371046740685070533735428322620807030972849352890981118389960656693202104301932004200032067538731304402380340100303701843065921323875073577579996802892092516066892528024495870706512731329895100434336877248011873041329740091507003507582667049812556095732376234053825437453262909065259076870919878865129013140821656447903643637291183752441048993222376682246854176121855822109147791439268503533394018467976801038913996759454533854163470881105251047742380734714809342835967218158446171366314455054299355097569520769226354298549595344887048809324998792478326330151572357337887784400544288565280924394410613475648268454602074974112943286413789467941049901177463225976312277993097792808466770035538581440322557198197934488927931410430964388077601455099418770558032317145054099115950759879077181859284988333612432612706722440264952661138966792066225763765463644711072390756189571390370673187897337106771930229693332554499590005879426146545314967024903176173591231345611673664758908631755838125604647461960572392934238115583191652998557875867482006601143537258669212750765222984915025810954441683383692889935376368923261614522523750910849169574251321783831786973273144952622116840744298661325869085206000736344498585742391623557767472074157653895371148763640782963210802491826585833436741575084544744394831855514415875950060769303022099206394911449598307044913181809577823430676527304993031436817590144774743554544178609566359962439268218537654367608757482723444767069579362701504635602989016402477293677564349626881470806601851541656351310849033221006276779555143107559464811479034199674705377687975859104562832587488355134429633371737030828542776447273461212688553559009906464918441415470158956699086981176435005820880229361740758110214204149657180207156231555245276707503358402070635161631750895780768304031966849312567932627033639857383152648995904863516677588219625879813891432212100995237653802412656476280569268290016554105242025243856729272966547245473870554527869388937679036710966777395122641047973263618781692930629771735217274444216462125165902225638613348166015911195078156379911273998642450835463790323308087080147725264431820972584419417204252008837332157746885011414716970633240036138866111672583797360055214301558041068784752070211445493361158976415128600200027068935756609502522467316457670673239165293435711389977832320071974831905779908597682141335837071343752827915699926743672806679949911403699568723905662654110134206988347174041097704994930171989269206101074819390856625308050059083156554717044283508732718369056009595716389364325432206070967118785251547826832668443130215121242829989930859086549901371580743979247494324494510942889036525270506122046348731877963059457437901900530283916398417842429854898873423176288589521591577433674128014498604479722017225982899154575336600245481569858266142411204618912425507898161107348812431879953201995616218188217092179133020547726738742197580876790402733374844438053066222340583871926668793501230629122410052798089854334767805514062014069522881560902690946008602941768712031452718705119846420625630052612945516271930448660856265134849822388200375115029637768160451546727609806643435874082974471337171948618117962316905210207571346537603122063495956545687486912226314572959078422123566580548787213186558486443305969472893993031967743072589482915194240214222047032469347826499119033793635010533851952085664393750153695398121149701564765584559289983061005541133578093606602631312334568453408535505418955480320048371063312489961472240890706102835519865117658215472173673750528513531159874507099216784813378347394591301024125254606534770414300904786088631800203153419345136563241499604546155119904747346089176358250838664698011193891497573759026689146053461366333131568283918307076376527078686591034957252491923482246349083871354939541897721504056073553389622869812596622356744991545864998361409954444754239889181420242941589969751562930617057452592575230041659220025323399822466057930660379659563724384661760050881097746104976356385987159950451731053457296158659795663080389346347866534958533907518894667167132153350619479892048220894966630258728312006270475061070080980822073620619791566357981535596857610458230783624931567457116707080315378989527120768214060053360505140566478814805809269132621629539712153120201249851375350207084189664078572250795949358352621511870257628592090878477162660786710758488046219030549578639989558439480873478881324409914718120270780292963439576511649725448958801130304307021758789479383927042335430316825240101790644614106613694368236630013595831846366243432726800061343275021917020600036689336598016100959919962093932004141353496432821835287162324343816277426901198877364911297169376930810462346764389381122091438034297240587205824287481852814344056425609418305627017572315990166600948612546153718810243508623258552747264709356197009571205434648636387610192350896554389156210404470644608754744233486046759801263108754511640375729793257743688930808899416358395856705999037188482358296606128023091392489257736964423073964331345824855082367399814738607525982722396701285031252277398693834166660593995071282548883756162672163611252778954330637412440050489297891553778382767257784719566958417713638181458971287230496761712140030462257998813504611486885411847138570444001612569760061347331030195283955051095617248123808746485878259967204546344566570534857186451201355316559339729869430366042458840267743351960199506211844609065245352377370798477769610282871626460620635158544139865026950984408927399666074600475130961039755260679463580821481640052761501082004016788229402888380020038633209407694205979486659485623817316851581263936109760546488954474155217805971856510160567978484284747273204554188087032212084564496128023523118541922885512177914838765478904573072444910263943753307548856533691910829884170574882242193235606448099814533131684262042226826992296649104290911428396549345282171005671660334373577586694625707425448067575569044388536180937483558117261625122161348799936665245709340675306235646747953874500372354535577188395007322884349156613601143993512124349997438196146190683816582738010797937481379430398933043692114665563917071309394235818135475538282741279509633257313769374504898332373204852537621875639501214088526093810685885412835225442579318394678024030921466819180205033243622178605522051423747411365995672017582417107578494835788052308961038029685968941325501105157503386405433091612677534063705005935003610460503484659247571732910487191715823023302990646874902906501564754434348236161356795001660203599136956732329948191670621412615215059972615156127156554485439900195571609462097053188464399166444879677315680289040491169709043965820148090866539211311692146779510485089894204912338328527068173630797405757922239636079184661538551719933393395816506196798315179816381624084553161052998267390294292922555911394121182304589296930863507931422299958683145024958049078714609688995792447969947723140795049881650867562516618712246629879247287777636796260019266893670216679700582245161416787573568412299915595843671747853111748415982071347366094060756185534367189103179631593133964091582470573669036110101405900440545063441969363971245545644940549037551853596459014743434858625896533344878018732415186663039273991061640539384485663934655577741306969470935548613535882312343600067657047875817494449672840672106733062733614075057934504960910664070392479239065522708454081247667877717291829527763821386095693753852977139298443549488096008168159338133486126986363136731039606396958517979617301666120274919131021962454230907853256380690329841867800628144987851151355928398205561894850510585160757136178097629885305162636196859202064183386663160674576444634049755468711781030857740037135653135647373795626896669650544604238221722719272867691195541732663896160416987837278657672392504658262227079422269141621853372991049203111092381229402749959963065390980582103135407831559004681896974960185819915093222493104972350077297507036400310251995688805460177591162881271276349179433414836440469282795724222111922564387430683005682891175718647262504421689577171785936627912419538354201626457849461065226433066326670791642138803824831852044233755669951059771076454957294088628156031138124155690481518834091971656435158940170836649293744459045283871656378475633327939505448977999037575531077923868997153678601652712672610923095812593693565938276543396024863446589589433946995431712064004575222298226904293189298671249889765010925728217657381995971443547900848467452039715444302482580806879036702774324592361938666167318793060513889267198829967074995881674580147147828543104536276283452205311462682605432976075413429922784034886574537007540760379909734504070910313902614969999379450655894238503649059233631274667982839477614580268068678899390591818213780694995052358126287495513599650893535704794329063696571601591235107380318137733676196162436557339183698167414802110803521260624518930215705723539035486329250964690366957923185929134498925999210972181902807485199593819279152581331712834355525112746604823763405825064222740315356962026849528969085764450880523912754928830091157415144934663269531040448706785936038905372748621566584038221136315302983703214597964380662245952639224586362668142531124017620559571909949469921603262176334829308330184124645078348166786251764097383498713778299565569300598629005161753517130696659927169337700882110138598522212326666330546513793003938445893954745940809790423719635895669167114932298828870019446564141135447282852944094160188660633556178878199639440188928293725120205623272111316930202784559535943058296622384595183319064187288580561319368950551206177410431140605170787630602297919280990197901933289988399445126859786148685758423151620441605408601768046328753814284832273079453286442194750248482821125733806385303462393298714422365841615013506698584219895780031720390153816273959448163245396651766776523967138096761708537422659156700734553021511527242093751120121958408305937465933783514432630593117428074083181308017208659218071676887131230333552908995340323528837621672749798323207183195957563917350313574750878706913711621638835761167075972559797065357325401563862425669491703588098964080852845646913579716511659344949531485890551175254170745070220339584179320676572434192360946997668202553191570929909800597794806870757996034179579736880560325278398416550059046281735650742306234045170558014355020318499448239384968170728431751495236829623107543855180891598330620697454302523525453232741040533557262850231305778774547332113908269814546788955703650245566892327378762142450168856139051958763289406668048982458786425603300007714181082691072208691297011364590131342622584613039914218055509065101994282707506080607724202352334469708587739109798257180821571464765949075738588526169968171056033421364057276616074252602467377194077659944592502406608099525358594039459277791416440859558806494703025285370307262918761671659586641626172528678627769066893287696926489489077820564447503328528456396868299014843953419365133816935080344788765357793121781510474034477474246643101233662646137331171289021449067450343441350120577226391800347237909577668284613347921260679636650384661910297514108376010945204500189343411347246626941582427548176862131893428546551803842461120586250608511523223832715081823957799783578557541725760754908860973981973504361908974266528992943837780772231778318473728955430758509761021807377902457140475971256516335392257315559546290937482880608003239104063636987957154167727002073709580408220452172486636952144856630296398768904339488192666812015225077443870296294697506642348740241829409900347646745844840272696998859983013177295872056196931551932074395686778125357301663239875300173307315160769961846938957923191415352665851112117052149313585517544629458665557810862657323159288702478614256412330683400562981769689705421172410508117430744632427436903401345547737938747586483177867133685177887796280800129657432125514237987532144582750675397409295638911263201188947453416868364101325122462507849855614753260086591660885191493425376523772849133645126826160209638496110581529988008302812087132479500814183830496278679063556180442781807097044736211603520495407219463239053134249684904379690809239375421448697844283172985529289154654062384823444667056959378431123495195020823599798259894283750800645495405279734718371168721203881179740407537624561879527664279036669348542329135945672461090477438189418866716064183298719590214539094535868908606261949515387376094383825786936805449710688732666892673501858813656625346652809480349130152239992601848771754418324539708569664831839186729842203966835139961445507255218380039468204563109921831133722857051352848217654972426602684637874972931760630137020868555538218576314307116598200872643756781498013965950470431220022864565735284127667372487745444213417538097354524994694673308866988483394982690343082691492260402651115908185753011734010426819708420079831477659587495545478508307249275082210074102679289138920667849680085785695517927086021325615165127361908695670011941812040035488836863448261646293163468021527573290243142004483212485228884634794459744443786162396666332605970112121887844879059283669062418110524245954699598129623966269574565671394393768021531267090758804274515544578699101104348069533995375267896860422865712043506785361882154903662706832732119699215950639333650139341904444888388850778916236775095253613982032450377983007654436352204158072326268215056838829014076363847753586181710840610337763433121229163714511842839359790600826151973429950197919693115719461533688954407136497338266033652369718634810660148129417558106667530075777473878114610080422236456999933227489215153004071856884394106396938603643390263410657425929982055782845136640982842513599007403715023675296348374169264076768715372091652331942475928146137161251226180586823629719120259812961465422627615177162650248244859759729047555199275373229301648170412129696714100190846310735008725657110563304125427541779665634682072165154793617317162325862616019873261931506858153599714999281633513246902494499682215370797662475621484914595284084415712508841698910589392171823399140314433813957732675199993966137999911122077460146305726360119739496995039897590036594903974769415071230355181595224175860829970683470572027108091749145650116463037379484669643965385325918806753857605612774285940231868507103138384364726692099407729961095877685187860164915341106172220368764279607906709629506794321932527112568087596634090874962815767659843226232778531362160541140377068144342687335134527925328531634635015838872895627509498024178695250652453746964300974431898766652375363574135982587136827632436699785643159265302703654752047984286574195992262498744066492593880619524230026735616167764965980656360018872751516155523705767185202983453572290511541692923660271383683543124843273072770075437627440746331613388816640449132852931616686843326920209299874091824230017730095838849896235341260067460658704977675285289320812579205025335764047530367795513558997098063028263872409818792360669154969562031920141756541420856898494949280576840379268499850177773374575235486394392754812049996683996210760714365510412898059682051279766075115856758281843619652661100145822388840588481777098716258438120548720372719488211468142905268159471772120835921973238883404897194136986026093916332422492380737058469691051122360715895903737096729388286905040918315745933866803560286185347862560383779975132607173595254236421985829367542585132406170290545105252651668279388216622854938401366019584719963193851674090874917987440794388930398405943426739759378121806819275835699494687675501688443063658161378601879252090188594018135354301013483523698975565899678164202469486935235743986585531526520962787111041747641321075227433061465755563524652462729127148972504149230462417965991165750133080551078633123535687893367686856309666556304545102840315265689777399770497761962668616108397076903798640807373305576842239549807960737178412660512120764674654319627187563466784883732040491726763233869175476379900835407893367099671635083095020017253517404019538207123107175618801545121204153364929105109425516197641296233140219587731930052420179065305721868754290704993077910603416599632880231643430830636565354725956717727802403658092230107051484034618605428415826237658477596973599724817065950377653394440740259649403276282293097121469841764766923045339836020244741061461122381476262430531068827974489508894648619706373043008766209311978510229662386935532640166464085804724364642123897179670081595121567137167695319717676044289023845219739663655059276107360026059103838290715063414196240076739318293499094051436706634072205652794896877739787909608711449204588546286183402856889973528123511597627623202341591998646001366503305353471330488516674175942036841857045226851538838995295764412070065247286154330644758847099471380280092491344884752154774581692863971828049426225236054040557996262471889734391680274511010029653966700139938398042400465537141005110809999195871711901340362860869343554383901153624919010877500883106361575491341047418054447390100933407192844487268700533582758630466393677829754885231156798000302799799704782021610515515030898246808847648230033610681460102814895911589572645729652943487538247895720648072454020912792634401942761098707982672678513794887948160787494816110165750840217498631281557612254584140715544425424569261148808661229495641001894655824474048202546208579239686756387694867505184603667324465356574527996662340591363760084572246493824179748988275281435114824144961284660892180786088802898003310268976543102710271983417810881754449884465552749268997360311547618563056527527633971531499433921692819148537942629767994573401163851030275324871798182135172955262130118129051516674942966231634537396849541515759376746105416799370618223915130640645288981033927086019519114314183833726114232730046756633162500404170572365929463001653907379529186957170134714465946114360607584526056754505935474890199404416041185779850781849296675120589885542021252507915298075416306442260677748936968990705873530352800756173545247849889488849532038634600281432933725435170425669825079699338697397514386278956551985480049187400578487683605315361837069676465760509211433362944637013956957076629928010054380034880646731073025259819309251928965538537744686484634973278007339526926353271698949260003237134604147941623280011273382188903334385941885359244991519808124733459504883907448831742328046273695366899495763596342406431942088125337959412146301068320048334297313172595055910818158214687779979090337042569426191981848690232487933493023817330057561923675294650501898227902170308902783806878466833378212884745028556622422339087422141760156009266231701663738317986713665965560091049883893622764426657664316503319506529256296250590427849242315288806713845980828801526754798304500474723234016726748808201598537704560890944412040945321361237390960126074555507833189910979752231767285330169715347220142476238390244125945441983488063080903375905958586478089466105360840660287709011761262195843040595450478721777567749238792691729626601680622658009202030492709320468574103625594901270721045016629745267816106784312668701333200840597253865962919724854818841634246539160104038747471319814383401249730574914259734253160045419243735816330487559592347772542044234367843701440170710406918550916536032119996541091289216631313971731151431430082061588911791456542037941043332895845864737558094696267242916968969464214581953950978629834247862823960084885152351729894282439516173457805852360021429526509938822226381050218502615024333302936578757239126538127568177760250318484952151281562662502201713588951495534449631623715422931333060544213416126579773919719348511825308601970577291053500656841928808825567120939666670820555866609025314539812437222113313898592283177648338930440343992144970997542749416630252334390267549539735918865106111589348012505575475488930351772625806884961026523293349586184411693384427401386714279137213342607369201900170667364587729200554621203990628425399378707382611492880043828894153482998437829960073673386065509166031158781113184083864021888292671577394438279574126720183465750088398628816248736309351341245714940829780003219136414283216302694297510440530636138027184169222968505250604333253438266056786432851707339886041721467144118245261649949030932267745461195316170841042269115309030969734805096641550413032561587560631939582308988128662244126812447477239107563731627354437077310904866066592695255432675888429216256423193367154625936248268151168520895936027116461356865884094973285598835444974687971003769387455960951176446568073704295506864354189162778454900027660948276346405516045022417114052938172929720683499213297900992007521853617138177206704448920758801293621657988895185561140481671366925447697135642935073201801556557460050969455326977782160840766121765141552939575874598450873125148909279385556301114831250494155540941081376928569551318086458949257159830308659016600362764135052093091128144151603564092985385347821210206749418488396426698892807578010155131073610554632039813565288616376449816209099137990160077683187361817653920404631261903133575008681416644416354672407270064520770548796806336884306931861956039521083714935128668662662415646408709005355647566907336252805002637243517204146347140202570168120408526227355894317506180102113757954223075926483204042196023998037284118606221958074908353654577817816438989016121455633466544198433593583885926397104873165978404630148368225750564139729364090457948788166115226188373733836393679164311276130672468802172926724119971809338261823980666383264158987452174659477246403171162327914515284903587281329859178457956628063183082613580534288492769605107332448506334724098683572352478035833238540630043472665120948398143443306563329148443317249272046454740085168367581514833886393501150975949598627041523332605156160573096524442275280138452538767963455307289511237702945138742984204198835764718908237643787590752517516166873788713762829783947996653816743355124252123433006014160129555650417695709293506788397703457389939034060300407183151360286502804224421807921591446041628311437872246305403576494122708614767708205327546641882586708884849620279376935198272283055077358663345242659786418511251996692209090204343668969074249326626362817390260834469415385229769529000207386479762005886584567261184115399897685671671141074406407839408453883069130890365441566999216778837293921342349561585222720109389042189197403975507146922748213811246250047689009099260763577399109217967329456727759516114758425190203321532016999487487825875826895121455162482888691222348136241741618416703250565240635298373122431000314540951351938020515560882710860783940117160809462532097654535615018614681657743386169522378815592720268413781583805487647717106733757552616425184297693006707024402216112516602784402398255011136210848020002310206590523110299756557948918909221128064551952978949591342898018719586434608257726207292512170730736512484359944903034623177266422963932902722678527419694855597205333360162412929066090019480056577724112222182755216371578234035989675449333945186616845033364247588451204771251722199398126849880444395310949255338959874277851785164394933658578696190093776492314754846773308316955004838489243104561570183181615012283685398344130025495017722609909545112251555051066370494342394070005617284785714963379331549178384364211205358143715991198980586114922170519317533507402450523810540467050285604381677796127023724504152022130665704848317814167712318518764170285194389113141520005328399846734128868051058101532732064074598696920847559933852933203716217419051043813558455164534562009588856988671641731433028953917604650184842965754062008789995050212945599735041475195776664432467573411201543015758147789687571917496954608122676240088451679947479445927953524568892296699386420001515040705588745216212775293745749404396127175084646622136006121967043974959890120096106683814706516522095203376489088803397827307716083476899764800332343548461544905916145776095650585180632843494503372908771244969935646473257622284591965673582697415817393848328044865645211189797815557287158762478709610794849537809614249728467704047230458713212364622843991598240583820557238748719488704925626577809379309430958617706343835311495731904162617088632212417268080612977078536450805284089806618478788660571976952947111158964055265792753168949699768802039463692594285852149994819878906086258799755951817847994452897346763051424196911932647020591399040903487099980574335449478080646399178206673529319821589049794625570736112734581420372446920068458489085788518361852091109710402345408988884916977608361205242872366678526545787823606851575311335975525144860465993650080540908979781328573951174489868456185466425751243844606107535693478216657031738436037212668051469061119008847386576178399645645503854219583608244942896007192771178923010745685236187922709310449530514764628754955101042061338973007412436395367182411794704487076597405700956179594104862128446852000889812817145482469661348260542680580135638610510665334337215970862759909724826347910506295781390156754103618634534952847273881753798077319093626752007549939542155175283446266946708760991508273479348118369104678660248354538820289671868063979756857059239940590014436657520990182182520907335115265780345135499452687949115873374004226112343369707505598917755107941240417838462234479203852818072952637075015569960734234552521856022396774327013172040403377734612169222336431209953404312963628630594314542194183111694657874331386455985675209651955658411601267646889841325206961810505170541054498819550748842998348738260729983425965004204416069681325037626157684607223249650849719904808948366804828560251275649676563823233665670146362568494047429552170536752908234364047028343404763968276507233588588764738875919936407683092054187713756453221351636040882072341932164286831234236459560847063225090434451362974188796890547303156669243164766471958270685089258444613564872313428837663009079681066406572115869326860924839064399750527082940102408363637673717698428402271456467661818941108144802094199545777639105798728693028057885411199220223018726736692067505630175376653449361259314463801902533572598449300612504509545451105458274598431296245001288704822801739846562201971887030894765169660221112720234303136449257872757933798463545217161459426136551479909209417136047956749390721315599440686608920064799964297657933639093813947892423645557977939829497447678430668358290970990401659083803666386270862660623537519181596559514045195863756368453247632967941091115360604435221558686789891479429605398301136516822648688747717724461204155918545480629962771509558476166231063481066178952654560293405938154317789261973091753839803821356263941429351198419054400336404831498550879795766270023557722545141074914539211596983517083350135125884483041082706210777042852289846402768303980168485377358652293535867927953682629798771204885987387014668114077375373569057443119765260862247028734152083578212333279353607360743919184270761723237109148171578008446064811300996188811828297699899981975269874650168769699497778842611995952225973449977992791930966799680063438995530444682127258096279350558810298454354623170420198954097975559577836123582684519394126854627475485791198022652398745529597330901251157448125984400432311427354125168893171190174942173135139140263222287087101093523072482883150345332481122537467034703885257909925230593974350683291317558615198821205690044520015574742804670029154109241038541531236370705428846797976017992663853243990999994445924432000694989124105194939222305055889377091633530330645310279765390383286300179816200281104884967405457864851325313156056461571967958471130626837693237510470679641687796546032033616537995697493298012422342241062391398163044784842775973622055899249931002574084993164750744143288455451316481651541344033534560208008882754314507098295233926233379671839783054625886931021840325671801253762111953669042470215796242095722150381777573243672990464988827564357192322008548553410874622046483350807053472727412871361261560641225755113550675366345370836323857708453573690320900940219445495590213432261028166831334546202295985688481215100599764999246147370056233642640465830234423034214774898478057998726125201682838928848216084491385657601389123376485047840679431371464292297639123946433323664138244580499131293314935773950864356024052462946609834374859014457027688366783521863513750741634119001546756695923351419391346731587430553542288525582564872140697039382230353405587559000204525798214554778456605147714164127777364178996948421894608144280089405873472243332108670649849014820642386201598416192657261255890637189378396944127875442784337895053016228024222642642515822171580196177001156573577708391655383521590893769314951149013413541385824284695949661537692811484454552342590623800177648728853826765352199812962301497334418692506722929146695538754284363610100415317434230142295136162157083966211007128060027635145622924181333894902548646537443328136370036592239676485192888787249412038512292036556329969222126928700639480600840264942390588117840308785880559487506170285247566586156177812956180590952274257018935073809419167410392677308316715185562736200781697501412241691425110379186163778205145216508463212043858574482035996694925041996297447210625218797585763752694141253636242290064444829135799874598183312080800654187777182711938186555464479135596079473487576583444715219936429715903321897931982090765579880465092782087437831207171278406469707601354268699492314468786842727305584928992261130525874916802689656193632114769125775767203416599556765479316539446133670170622199539349799996681838529481920416219684752528324021733317411587097125851368121336890307089904645254939227824246987324363564105597875140936358641768815426668325046461023131264079301550735859360582679033465336921449581762434024831098366899032441214619541200006960534428477482368845431351584339441032098090211289884729713230655970946551778890747206850085284622331782068711157285061023543743586170212580981225775231725181751301563250581171824651619622185481631911454129889996262083530804014525037931353637751448819824208228912897357510855213625573639095685436600093082354958540836727467075820036166586481496977253557535517046405411378873216629211993560508681136226352123064197844901618692826775699604476267387131652337169761080178512325133125896744758130567017694441342501245482006461848053000202609889867353310922392495467907557322596918769872726360407097994960317557413785188547516889503847651075544074399083825650120558785945608645483743966234841715692391651281411397968543922142987328352684419843118698999555398527789433915881029952571720363898403132321423879029695379009909284468235853696609731615290302631668005065079535338042779407416665832221640299596521027228103947887016608823936795880639094991561291581106139933044185008150827714286666673783170808491468372370159488554831261461222191900206598855499533554877371399014420740334359494649817241589765160218063500175080868638883054937226105224287503402872546925790389133263613451885817955929765651296399845884196992860537828686074282708778259206329135354979190763978967536257537819477137078331311313257722845172308954754761970402521110789584046079428492927371670993919527099347920790463021383462482567993023338191965822705501020975950614564861511498485632787681064086218544366636371582926671767865328210091791511171496396379019579517522506684144807208004666462290249193351602977847089326481312234079099204850904842680586098490876019627843894337709279664544648483816153068815822622570276716342305041324904215023185502528817605935058968622885791961708931066128091976198808156458777163251712938966217418687936375682823327997501927037138105642581257022504179746044543540854089747640153443985321023697373951048936703976020157485383682467781999146924570315181965889349208864559125684794320096709586988915269031384228250769089778331735304299463193481450840054495043498036075582081256418665955006059541956540724811752017561612508952195624590751432423312087856441856868407518787852065277372669193786352652046785324223619548844033385558953395188618183763442510166633578459228207749554757345688227953030005912118651744265547553602170603147195050410361621188064164308462320108164113965517605698096019357188295571756935325647260240236026347713735589725321277762990474556980614291020075475413031489398912331744918352840448439938623869404831597901066420993054140091160899405525480653234184980818696399309393546705358858413065983855024540142889464991210134192452747565062618716549764928708389681925467388461217784281133767893013702011189138432403541886445361708957507556251968715417716296474200651009112482506017862264589522855077173553166947069028219204046518922658192851796879120987241931376528234552776179354835301185886648884477732768958699499578779107369045107613260183247291738646186103675380927319535723963005322147458114737329266338681326218046151103620854494946198033189887800472667489442238749589959679952533563457652688121278638370049297139974310624843607805465554783716380106494386018873147167934344526471728874128836789304657971377725956649420850771196924424721034379038988592237764808513156951472185510496761434654207518397340927102019974664714333403253625940390547599539562762271381190703197352285165508867983938923461302136642997892539555169749588556962125154785936575550555586123152478873289779655489105951361821190487416987150854243068438652454090169425894674280041718688013318492874634977208771758565375334816800601108662425746225244203275501681899132110473606809560987097315903879732927344261601256932258305808007990819420701026344635486760226531067742581413111873551553377347334161263032762250618636045667976512337629261850850253725591243149442272833500785303453238691244474491227101196647076254157573467886046205236617610641567054672246426905566205305833121862634906883759829664789206862138777359893963202131623105575362076526688940387249060898529210216204492545464021853583549282299294817611498305410059020136234054855537202087123066960697633479373696698482997440004617115634679950443989623257898053345050832731242061312615824346297478324588262072178282737491355684298080203652420626795536038760520521422292440449112081229350036290738614372818727658525074198022977203367226298469730637468058086511627251564858018542849987300382940374061767466405851023462648251680175274283540402679076175902301073525598523595046996825623035933181254559037881473619563625306309944672077295532703981175860658531487586274241633531786325916073004757939274913893969525015604219996482837675285988371597396142454063211714665470426939886256213660838640199969747693665225642686586534989218589617429495295286816370115493844644284482093055582418426069326358476416835249370598190888874036791845374087340122063650762728658715968418215209028949138171004523621055170739886387981879718960513854400670043840651034378264410297368367794637280260681918983748320265094361755938592080523790728877669065815812734419711946371862126977192521060464761107613140089538168282113434726152347562915553697179842474666910592065239770162439127615632572611942075412336216143436871907036038785375151865876247138447066979193622325988662136732500916888938817773181463994191140078122924089298843077361947214033180860509959737245763843324452379359186641418651608503948575841145978481944045486275889748149900808880402442709893842806949147526264731534391386819238559214119968457346199244950081153845089050488082821883158098997907523162174765006549504396600959198910760396745747336593169991481011456901765187735274845721633741739324196869753176357454398811054975704267658278992277213339832884681684178301176878394718170164387542822936150125674715368830814945100736793304768837583173015762658498570377922067122320581143093625302160737503660612479625462501948863652352750187107307364809468836201957704828575042801516666266037052183680925015882349731017043906039672634958209317826492055379819021830770032240398727706367729073987490488825929397508037653104296561551912747375504623861190354521815497791148214083551197540842847305721244954428149052851230839631666391553470248606803768820087989060598651716032640260305723652276384233464999569435224315567484402415135055418390194377409641634753615458140576217313016714814818553610105909063212816108101521167748404897028155100531209039188381059102524002508218808646363533881381517098948150204036472583617714451276835440005680367301759324120522054763739665370338814199925317900834467545217175460792710449526663024812458092489867118079117584525021951502918938365373077270825810411379192137155763739653567457111875978417935352174645382201820270653364040080963004186743628659731220475925899216119032879193873155735101768776652811019199917797795664434604647062248983460303713850972398441971313441053976616644286834420527424880391446215588998657349221155751375379789312683613132129125824346090233916185031887100494519462947966323926823651083958717842141851423268422241891833118266435563885168606404005401665498688965197333541901602522689705336108087614180717921384142557646845585802267940089862439398264312019665802583425196358023514289888093183339663267111562991194112611753142469043263869087696032348472156285516034455415846846631689750772035131754737899559662252103113939607580514996353605530420353133055903765667951019568557368919845907244765617220979965125686608366271930905518343660161338712309965175437897726570465651287448628268181483477039234964286610801660898247507547440159734764894156821035214181390316443609642269038496134016899835480546886001665510147815568590177251973649760130711772296535685492948977935331503294932423236448536321579981851561834257934965429544296745781339143648974994685001682486883233071917938368056717606021851079337549658466344411840698987928443488450195194267433131543759330491176176481967704190614064017243363389583765410822695383193261409629762256509162464406981859171189052388816210961086960257324863244717692238852587102879501262261307508854236624210457909564404242648613272406624421601288024278786750708203505467089450107061042372305622083173113591521770145022086453116392570498577187800529054178002907028430073638723044018596661386320803387935240906312131349130083053006622975722001372210682552821233297454729051424640759979947384587163791158465636956084055258736122570502598882556643902053871111997988324542059851388244617434460419762755599810978464557777419694395746905665972215878795700847917009097792619126581165622747460964501905242191025896062555924263853670795537798493021032005394991891036499474150193223912132868217091253592093722603184265920707614433850369000357184094907467138849265311952890635051218834809143842105505956271316341960286996006012574670713716785957517029929846164908548416490759000823988459215852727946563219903760979802589280455266526163906536704120396819473033416727887898023670514319568889857993828223360550275174448074419705555998520838852114443314924305288427873862914568817246808764911092175119478405556820890960322283310877904426525439360200601689690219155485268573596982604153561171250442024532145731614506089102978423414413257892860529181439946377216619396491890731416232418274843391343871219509229481093503818099962916997473035242048851206458902096553014772998317991079388395640095301653030160104027923943847710724551962395678323038377311066962302159232547957682459875889354522546376017122078624588334501135820521653092041376214992466229776348602064186085625128193681103047121834074852506461925289576604463291404736968369009656606938601290052936083336778677224241578839166959036562717261229804965916038916902710069378780533664748481698136267087616291552204649867083510417875120328969653054726774671371713198817882591021533846949822287567578226388247874492079243318690944624772656602789160058265266361416643118534502776745669283285200970834302707844033968626808008852722611104002299327357761132515304285665723699055896964549496602145102494360998929462620989348487835716914026608994482277686610520293352798988225729856217374089904427527798425066352557171014485784728901421010579890074700532683918647594662447754810964705011754093673726773093246553566200972726693778479303792548848353478983952930783440035153520810743103480353833956366270467241613884379787492701025027015766036802755568999187780806804173505005303065209252164109834191655318514020510111085987285479971816783339905230359459020852641373217397687285502745415232315170687406896422915805440479665882056695085166333661000040037079675905025002106205611994389134331625495058165659381176688753766470956387509822196109903994275848971647122924975872635547887342996070281760369724585986420544544426576279463806606498930016006316502060323869224234296573116815699620449134159011946742466197659680391272558118517370125561634946317421888833370554380782756821631000340912245214550253440915255579156907593441692672909401034594424896952630768942000964255886753925341722310637272932437339733793051064194526606097809009274187811974750580488666907615778501621390980841138928257954808103681107424963104090859211420979940257672033132540229791629465402635821404840132904705822591642449515202920336314936379103932253552760078014698603286314158919418554816706620040714567089834767915945858987170937628213711867735653213595521444842901785841093716602667853891923695116780744593345974119115923777550468760764227356423772820325779284923549130704974146802496478437473369750765114391207816711049004177804662852470078148255796223806744447660977512589337095727156994499169879178357926285704454712447636752206095210846317188181433424742354704432021760246111060694615484081789871031719583700158712066968836067896011794790950777902699876848341278655654867661810989972587684517707066031200403476316279529419288294024987923265265683333322465484764735523678817665495659798364722678483069501368207948940436213929515577052211798305626444354210061406298674357534007964784565466009427296276394066419715210629238714629815073750377557331404292889856651747698922073724515464240465675539683645336869820550001361702142419130797545684306936503108628526926021655549945673404867556715746624989291793960789808419295356848403795551291971953278057533852243367197628391373800372928359685892032030085876319770485715982588757815660122447897219788518269329000393903639172094685595304594516204485076633399098223871578170056535434950767502069205387508650801435229686131517814725607449355536828350456739923065961414011808521002105276091569988186882559952826834908110596382698414463827396346980111270848403151947553002022854496936892060905784424283307430077465463330755921923681726534052222137418173516787718800274841571913036419510713666919772956593422133759203073484991393177469162377739070787587674781727554329113882761858909745872063531862952759181374536360958562427625980972534939494917682105869208629984503051701412245045518600546895510130359220319115330766944131484526274361972284248139758099430236599742225645462886004739745569265781835034112481399075641500314987383105541089258766523119644135833932807835675132118010150989476344594286519789797428643018575004374696483617172439557764977118815651217839504312505894183032294664162012550368578403534772731472430816459105316242171115714887638300220254456768876094475870318081864009623795267309551012373979471652107144302389253759834705927555782645550615644455357295598116266482500464583365798129754239833589939924304326052551412793695869437400541533815233176561091037741163974373932497501992437404293402742474436015522169635951829657414773817558608433609962062901927119886259546946796441698659542185561270574258483109708354544108709437509342657451593085638429311679035010319486431026580627170856691670255053039934657949650405883168530622163951936083480540045227439218017584186717908630962889861331621623047720958110014355585453288461638369663995078815646549958737664210614278508649440941510838327070475056752845856823412360616081794886655132219605722033694211619736313377766855543495289188466692570935052714024617477670460836894440693220223966755136232119658793984066900196435547693492166632675250201396273232030161351330340704330992140399951049610185135236161544914455731245465682232941169705995954302503549218983930553893798735101409777953819036570823180908503171025297614398146838200340312886319713805744323420222553049838532969818300250826454819314876266221004632741037748740878184221855085946992369025470610515878014499464851168487841217395830075359514578744473501785091897437583752013615717906764220586717382321221259752405735589961531998179530557390441650109039341505371502152564938329659579179945782568790218356371706383634620350426116211036067467924317375078472770847412187829870594024376805727719916174253433626075532332932980618584943370010066553318950488415465616462743671343221520074699415286721872686165323975280153361118734916677029174295558564008982811163121859694669022878409847940994237220468758900872383411370031715755477243225900642015227664415358350890613484134148212469405341466292120735357301013597852624050098604426955564555669491904248805516659740281787079645219096299251772614459495257240899638075563107594482912435789309764502933682018291940699660296105770441616471880534682997175026502338897251020216385089259867472255463403386341303160905181494179128107820704468065870251138157470795179295018321757148140600523227587058781696081976307348490475477923879994406407368037918311413663333163711534986187525007751378766653764229120573597422690504324463086686187239788420577200935426500153791630057919036896723738815706817906343211564342065343901705210546074459601694802247918619017134462579605794234616779516082664289491643570620920807222003723974775098328304978691378240577793864862418357996730002287138670474962568071967059320315834570100473216233799923311705721687546499638018545998707442728111844298430324963610391615146897023468336723559767609433268331944434910387016885656465715758212986017534693538185589470367186823948019095198043940995103545986820409511004166452746914867299181008168356862867968466334957129799567545629775316592936458654157364366452641108250508766002031621972638003182920038157746623808953266056842571621682800081261335663678888720117225224950057563628496489543609176083672261103444134502199915261027330126045314924984090883131296113291450017577064005998490520085586286724659441833570889443834660490465271752931150073513922978320115237659108555056632976524550466154110444892185798642616213803613015680514128938817163195658126037869003413388661092457873733506187394011413471826221620862381045515688743120866877757111303633609492950564084404687921844536855562464974593051710093677550013062198029718962459542307374926876750821865858319476799545204681777182759818494127452754570023987446396535894667427988710100612396000913812237605875784030249434604890950711551777378329602816415624029944816479601218742955167612540680003818080174918911757650195186467638630270581925806478207759885577997069643932967468850950851988605470650232036714944807441830408767537301393203492768215803952701339819304897166593120928336282303935183121612893492838750693738242043921985827632473826834119196995932370685497218893769523578332154380663958682139661283046074761004344268875793998709037507018376096566328491542914304741258593889575992246934349994537049240175797425539524095645839050648034542352229524397656681092097327414013111929457428071207659912808422589718835903596891031319942707291625240398572932012427830568467731345138852936656353250428725923197630372481829167700547821271657931390439572627006026957427841454230584220129873626876923927889517960482925781975706374636116794624535257275566731878545499197174537921486912685628507939947360520634524885811631030498820758574557830261799715481833971673293481382773858615021836862402360593981398516325940112360781260811899466164976846436713333340988501209030094527745223589244399295712465531621912783763128181980659137349505612757611971261571169828973123151292847662780728578495555272863582534118720945022399275429248499754086759750874871049566184089211740238282468185858784764819245708620398049024911978324114218849234293680098202820158624548865444009932763826799894068256042571077984787984861603320138170036529652056971028654735841433564351156635854660246366224855810211871108402850811505772101751615654270150778541465561102970747843861780468383022472185459524757216537616880897116749705984731046119566272233219343316256695927583759408849741796074085526085516101725854694138085477799368601150217344047512382810104146513088282216256372804079561782722407856324305120711051695646369797936168085523925163626474504538171717088019454608321222728663087656422335391444768663051568547110068647233759943741083511932090821019777332407729724806463460694710320982092149667055829313306572382670970437394786268446352514665686270578228691964608729017168304238441589632957057821810748081740489172103642112193825657974170693126090688502917880078777745749909878834704660289989076414113725179447160734556151235087631137857064421986479519371935724209264818197611776542059951315609252365253164556905172251281021734383904432232270240602508027410581559528902519975401716140408539243434771734107180825212964188047666404694337886313739039963477137015407806867703483285118378548203022232574552564721318173127078539998365056662673532272901823061971366283869565185513614177116312690889888226728532981491424725788704692053189584240295649306825753808044544330774047825547599058914711642880170237570332778344265034094995790892200329182397700511560176581567309104251206602419147898471534301794125103968428717000418887105905579562122053756633515880265500866391184758041644555505179880132642456270270304492833502604057470076315760122305172340040389301076593735071231012265117808181362728109173957758226186464002579610990529105196561574463024242969384386619039757718602126140218446053319576613837844217275641686801583418875783001838504812076699862458784227718270954073001767249960299798595364432815846222582502334138766807778193400450277248408911562494121656664664376324411393897401173265848513666279771136936397911679635288733910203306050718373858652184694916595622913087098936819375201743238237493223742958265899208074257002582419633944325982230232182697884392718345015981483343548934700133877839658541959271047275891692725295457850307836412453785116741261969100745313946714160581193305358886653711606555422975969263449697370773035131920031685324192753749540127994040715784857805664921295361872552347275297005443783781806703680537706117084396321234924623256777545621533788175713314802433467375574214421309383935486277783528726140051546959015678294452464771446323605865936374096128855977614759103979053864298000006534649704620767657877784922797230552903193013094260652919790619763116530352619004137600071222567765582594093749599779686735255094679116668727971637271228329735742923347456868818620053621502146967393443657907602783768125093662813733416413213290588193323003019049370359069258659912747420571981108633547363289852723575583922556301010136770685750648819016415553401238351262310920106901561385125167009159268087857884485341870401262959194785829445350520779077072527076200540039745848848733184695340541833994489716933377808354255405420076187582687918486041386030464576091445351426288697014564362029078733244345055743323905909801261854935999854401232480097483088536289147125109476900308658792103812042864405960749004428014956958712228157403174077252474346270105362920100509189627176282099990127515874878989697913965813445057278191958712397072156282462015800001986837291046808758939747340686412344629833996772649229024581539611612610795484447247358589659754737821058048921495105421487318131303180378911556592523868881267401169753950915598329237329734368754821452620910119231564737700645716413820844453254826196731380158079281661663006288091541703013924007967869210776071467668180126067789032290499196032011415497772366582953552834277231342211521102029026729152298434056335465882011799376000807645867397331435593695429842481858787582881348026990075278349307047627551678076736341485203520341272854841358284430220858432935526250138954183661948908212626212088475973085451061447389844225509619330661332791677981387590280132832507895013257529179005871807881834502872999591837372932964329990063510346258975286939815654648301695512821521560032775778406306861431593517664375020963529733715349076281923549132491552217466810788312172366897122378658294837288388900724748558772625558044494414586041721301282757117332178073841643459382225765546741768376982591769775499851515720635623830672362783178846810446052195246735815830539298380877583889147796156743322135904798384998586305568306814516547014137969895102593937032147105142343896697526862198006891248910324459633965170854605482372788197694993506476026862232127481821867748331225491287981790450771788915144950467445377131306520097935203395428914006619286424084254161006315839295554202417417442498570961876611249444622119433797734722304857201575399435555493920317938509256814189928841909788244014637478381323446086243221927335195795143831523550168893484587972245401425135539107461949168677840369403897935365622059725059071820169864676890544832495055241297019012449382583275925307029120095626878609897439072111487689366012544501342755099603589250032099894739728038350826443648093535197397370728594139001000524870787667546989427268700012242731438602604817132840206582726367078661002479924888793301293200804088143311698004296448717444783411884732112990338644699366782082219315370406640868609350894011035877122194401161890736881768316788126935049745925561058562055587559516277084382677893071443793103089543596240115293831490868971830587339274308312801354425053780235587663667895720316757783558342793709713776584245754746242486749662149241482047718656516817230312474484548380156890846042564666727004818928995131315907519745661772989209192958663640137317045828416450201984426582656087979103861880582300850916063671057598942181849557805055017683234526071553651479016066288095603163952971249304079883121840017862049030238113431308746138654058804001662999167515850683680065869111075988109125038744134974926404268802589193763215940302076023989152052359707930326647917146089746369565741347604767004301028883420753981079835917624463529667971611139101175542565972092503044253185838546516765257706076513570054011845073419668001370605831149748249609815302114541945992181316688732886953077965396263310081735898703172382267910849124337569417708125481593924245374136114500982772637458288467455426912452368327972855640046063222506770559800177381235238025838169252518393447142326979144277033183951635898887345394422512981992848430743454509185883573460977154883937329738217721773033773344008265309363918149363996748634134680886269391483068714921217376941585796366812111176355095857474014439754748610367234596716137804381422348507387190903440039732219357991554002444795790057322193706999671042908164949879389742216136863114378106988023967081749685587950513590308224606315794800612247430579515189666954792612258637119873831752269653214826543583023581238382285631596043246171111222419387719108230525032417636552428850141802740812990759304690245720372092353958753770239015280044796834541358648754670882009892643499114453171386780940502329593857519602572744857258112851987080516246676484174377616458787567790283406252895167504687700222097993082376570030316233366088626419300831920935284821117723791613769407991958018627860269443098338687080739355429669216141702198178368799378460573047497306130353619947505573478057233119688412986399495603734845052933263900444213691481498094529723522964137162002545760357406148193171496713486664651882277968333602924534672805555555224856573232174243226244891060198911253009829046229873402759246498581528674106954812772786885376629720503744926412144937338182516354379138445640275669517194705349910423106890160560037633587331011041337312368120265944711476397439621307979781762006314446164650749565032607488693844171719240381623536596889810492847138863506166148089839114024206510053856713477033997945413174769286809958131488295937732904208307493583244707651155125929643186107338870602467815111136846827720712008338207937476070949235845500626057580559935823471728911237350027379692393604711557860899068552974021017209452641488944890572108358519782493777006837376044425693168570639824088342263032140927447007572536340259988045443284933597822952717234802116252628733438854682848721807800061750342923032415181578458398990471681194241115837899574029795985946811120668779548656286255550898379490679593351442023945761451640217281615980216914543277194816715103754353258433979449021617649720723858941032390190342881691850103164926986014319712584438952132340738127608608969194125579355871008456381259630669644516581369970232078355846236382731862555208617006918186340442093991557970585453453364761124080387983659384562898595878361027495603579895442873668789041494422999382524282436573643924603192588774683512476304395564649150347219647561208945671861570937266364319954840084995561936766073236234283294245012600771846016772051109417773313679573049949187831859320037988711760230309391228523591922622861827276115588254211135249699672419131370246373839173931174639688362879737042621163473670957368153327118181797786778573823887644465847377149527752087561211345888054643627941888654309850318572725406713456654402908774317931606170198311295084667974965967095660987441218724409009821904932906175227883976989133559813200755339912006408190684617537748518100844659866702579206777251067046118822630843989821795172716353525234356273390702760924696830132183691589736586928727142341077030142780972163953364777998793014002965566657370132030797005686065769269796120156097010225770475767195645551690662326205396689403985260126243504294409467868554200839948098533691778847339836801257118652594733412611045302499957078178162812135162496894794417384247927832311082113512586507704137188809110184838711731839700312428124760400655680176139515070276523030909059280299857370529794846580920404747432058208594997414854051618158264188210980333735620310222963239949779501956854510430034196326818934635619488532717346226502716410372096953763867711179505397571720072973320523971756269526858053729136063484989262680938920536175683795473080015489947372070211876718456125891625714996755717364667919386906044864131298464785165587786580239393515910417017545845724063130599692469579670227678777082664383926232620350209829157746880036986887019341765857119198415713096547657328726975088397773456876951137615942112197662500856191646104052186652274040134671790168358065193339148122720929358030207192455557691082897516322590419214201100317868470465441835991585763355904097066540005946481175087501675721048331759487323870026295972607939340877000081126138889926235857735097187372792627717598014572649151354701525775785547314980707816750377589825019265171299880815612299036216604774875776092547144283505803711387076780028049108192598754042664980066161715430307398215998431296996249073932759498879452271154025363664189765611770599925203719172464259638716261459197363252127289838879631563986625757692328509045723977347434771237963001192580231584866840446823939378738417672631547497764557147234049726353054935473205194943210954164344634215525076776170636983720418766551551558339928059219992472097127135667091629806684256999155651692274117632048668383664243746617525438274669840363929867337605667354114396062860757080544288302834642355445655579743335818825399963223314859954899452759505987759369887576862106538578702604055703301566818725408758043274443493491798642915386464928278327100766497280890939594664158654680112113733188586549247791535460004409198914229562738934189708800890838912655747993744496162822299326091848090054391639955631999433668031652195017290318011342127077165689014058859787647944868621638871042088562327480381822581596402458476031637907175063913250188268654042185481570290348058561415043195023267339005523720136466922487497733812461215360215769613504404456930280260258323351800055893129676396884190457266634131711371723643188592957782167832353093170728135447827881119750916163580011749696749635091309486683091940815054684260149537483116844000361369968015699753527359220582755453167010529660457671590114759077118302518129148710295510343034122821408199165980707435363975772739319369878273029733930816891989803670869193760558413992080296535759501679476914364622729716098183966334876596339251035234066930490812346386877830074508958276578982687778627148762306028723414347436873128197518105319431292167931537367548922749760992628164032692393065216320064626781455968740618549237721385884190997292269319061268541360044603019198034963607098833129602063584217971365354256674342738457054132265018261747565859980285817449007159264493916497938185600423213270563883503770579203144972742043003049530645876709396625516029585927051966873585617484454108328562757109684207093641853636765115563002629017076765161077470396177778142645767385481334750443686239381912802647340796147722774021031559466596711503545836204631616075046421283860878214241077766509371834644168319759097882815452055248746828226321577833891502879144973383185400070369111090815879023359888207257155285573539219807433940448696298883507502785448139082080770252013799792005421304922851587885284787014256981038888411091246562877102870914985648138537165471870826593108683633590889580946453943047124634320774728752491756228652093277786270960959875355447638354884593664328763133139541674952759514936508201872156718821514858408256977950858751558741939796228140445652052009779142312188357481505837178726136341103475120739460332791182834825873824207419699079947685561799948138655884860211057726558295189411972568254852826783842936675310967675652393996681977807797295238300831298190790960587872219583502280407803022113516534136882386313792091067556748857413416475206481618614819801589573475323200973172962141962681262990414188157059872441871473444753814066792583376687736764010372021568008098273556565527786962706891522998292374871696557121747807637009943310197333225763601197135419069203117316502097438487713594909289105214606933645664829312337119693703667560714782760145718678252932403902253419367631427478714046257354319689168192838173334906874935152822698791238140497879431870849804315419441677590208743628643393636022391967450288378777856689145631805485749177345928358233479286833095190932477539469538345635896578718149039446441245811853832259929411483300495872242397320256793728973340172773452434082610805460870281586170487083111410450295281229185898109284141894544873856310755134901518301391538118245199864139831389828888349771033515209364819867253106547352856020910826937078133171099410715674007931597439987931898744696470231426803190461058489613844270674926935409051157239341986758402763439119780064162172626393481133449760078969024124785747087006348176248950663813255946661473897256240279114597837424752543583704087258737848831098389653228418362636307410874014927821662111066901724703197443567903906730673517022233066013537228944868264871775863039452812838642234749502551228002283238914596383676104178329204683585034268689430679352126454590929748427026430618717774714223687825412687881251015021476449596415310292829998434695927304512146124011137839298594923553264868807491736125632932579915899339895301633913895641697683240447288377733201264318203163825977407116221216110803548193145661793784783020111250960484466561852517386517957192260881573369430914934621329285270705803013745018972441130404899181666992130486283641022592221095067562765702143993676968913759571322588263224987125506202370919042150467912887531380007504156470287027320390200053726278050001099011730448906865766089683817383712037283953582575329492841578256572531788818006416087793435226522092626759731129154178279992987799844407303764836597533538931742826217963798628541364348418938963618660326219968977788369806302497792208433884517700709312489223841083465162952087559007978556716569752408928991293988826559950053653449867018988551396443067104208951078028694992867193037101091700462014300011390185131183823754878247038858596626193557450354039380286475415743379531300330200168821863563870596847674070564019274485193637928095610914748152095519967770533784638412307324958381380868180524147830199135921364669537054890452082594219441978996204249355936781037055011961208219121096587461956728299808077025715248010888393436293895014625037076695098533658235750862467037986861986331790589052214023209255117524548212068189186411424317496555013667614347880005445543977187380961086211420782955388122388136709686763779883157873144295632131344073702286680304826871736079598873975213297183296196050118331125519117117517886085927225909445907549533896681286489626998957582747258533983900579268294485091276806877878871345811693915557205676331369354613968321368089348197235341469400420441087357630013499690807939731990594759087005592602093236287112918325177432964718795991039622683107412649580705855681752680536677904462681738916861112183051333416272720467441906287363290434142770080509427802739460404002349821177918664490357991687722623520977546939170988404839760892919152107874888982018832310219022242194352075866766734894387029361702781293804704830385656451466407227433756141474854567202464672301505886496328729433419818110025887485653753942072198308069578989218083527717313413730249197119113779508553548209641231016209568939949166881434489107194028285108586184076506197270656434123552111483965717689740615714334532176682147620180984019040255357679096833095926439295066662393399473662350523989043993869338257836098458887512654035742181761377968327491337200354286783174647033500161901900200801340520506322790463466035182131708031803595874854176713197159287183833077573523059284959430250826828075059512119691042004240547587063972960762126815317256810950322879702020283445711361689692097591436510676253214365924444039492634185156569407596600508414702611982145254528916179446152354232426888001920498087461430949049797686790653140462226930673405743117837921231786602758480747812245408796031170611405313094659870875650805164962348415019812639138607428288300270306704218536380333117606112969950714760969066661837799346092741662273987289951969354214989115846275251928893125687667582706925663561113222204527533279219157581611290033144431936497064529624435258218222069466367386515954448725209703322518511885880485367639556286164036938427377589470887393546997276023412027768032578236602340182428549504273931941423749588582610711837103245218235124912700412450254741304354536910036793823453772539455251901122732283635541185653139855241042383295949361477392543200787658839721421573447388799520601095365686323367937901083664482909533721754764150817710919584295966348833863008257815475499954423920517298304141043333242904332530594751019257469736655197710483393580669067530331627999347761750266914767321855993725043551764146129537529919863616068435617340881876879700380357712407194720674003750040114954498539803077926896624952034675908074829584680093595870295152777244147152892490834039195935313448266001971179467079458649882537042836514712029227289068078200082970607587644219020581987196277918638798153106314880605757324284228382885626370932771602050387342931104979368936283374467632965428638138853650993677652542849335714097362415541528405664321598863840893510932716893378534066354496804630846246888212814129410997752126520321175600314511884618938340819660240218193161215037594369912619917128843422580709969795818520414023522692775697918825309944837694369572960321997434486788101102156286937395371224156093269011229869618863147155934583943418846399133634085597556984167720016816083635557516939195304044542488611766453811760856466439887351802245049078102371050172796983714171431635049288913952607095834060371083218364400416109060811496883812305655967653588207305657931937100539476099467753877829812801260430503485225126738620462788041452254543124244561768516880557568026117842895444219807938889551671057684181839833602812902093222128200154326562167847460202337486042302648578362237984051806647157160607510190599249315339425809912701969363663429644695912099324202115904926624095737546400040883581445222241038026007272324949342186053253941256948186770203419824566818743944912607147091477896932621570718608231780793879821224218651469678862331793808008074518034562619450370089439591910789095474150066937051037387885773515981481810240064953479071231888904893303582320025929980993938447232409131848632303503528565743210064813902156931202422338081591790997255067895203711919372924791526213532788694610607138585540037818926214058702161885858233912846181793637516253632199935346411246059403770360621720220364680108318189768516739936660916195953797564006212344779825617134507069857316138486140065447032256308040784028876015653209505105729400801417411020872645670697954693810200976078225062595849286197979439367462201809180816813381641523663747800103849824735088311152449782937561249158241444956334525914025462278429068603622784954775948572081052278163580589448423240321435364033282168985784445373634573361627637230743969033973461156619314791742107663410089519366034034276994223082972187948954476864624494548721530616779213238097330991979044463975475123402819482157820079517425775394314232942962449644920163737176768330972832196720915682887467964056355466552758770983822105076567216778488491097966648154510095960471495791625265946784559075556351558919871770777709329163495150099455496362370702121613753323989528969975158337812665636675598767228597761304931710330110853366679417011341779435237347756849468290749489827802940429715809606647172016486243635246692689928543902504067660593874888008719476083164906214373983099694840242803665632014837326592581076404904031980960988554942546331149296263613169156285886548312565385669724367674009017194885284467677050429853389349913911619541861791169123891143866893095640008230101581563382165885087626641688998723449661443560880245854204244474230934208213032818331693496675655597177163898795789449072822764134394269660694991899877489503919735878233006377702816081468861535978244841215575416261109403604749122687440289573241826471864414486758625048622617898357460394234117886010497514790960805480277966372262273758164560977911226877601223013660825845343898421337734580361507451866495178607791690626150833125057938197446518036532303115009786330130749000095816544968806013575850677021947616593167525453786010810144957610160749383610495565320636289451678813310268834934838065092603360036268536986048958303472804381936341764078729852130750326141418105247244606871814083303274527264833020244684967318001087498914184573052463905305353199747013367504891843352514826335269320316474408384168266963353074054657395046245645560480989869885539987733136930433898181226636944435684751551274276995693523126198965005830445400935416425777275247072515703685895997308151996366574517046942085537177316255889468584827318006349129267458220919949553570548358761317169672651789662223631470047564322632681121070304922424726547064592412984975861135667231764192224436053040630497275655852211411320496353589894310472404172123976337365720018196931967203013473260790178324388682290362993572723399375869512212324613315418634402026554318519371276606703219220063914212029255973780338863580004944731893512774292047639203756370338184639767709368267102618949007687139852924353895050005909867800199099918274828825208608882312387300557078717077920540011042480178349338278114769340146810241018274911391483108581563683818958738196280825101471778664387882202021839766850266753401847631692145006299160212793693677983303355214795618960982501795497793281417475567621775132195675055677266989839993653257059953074899311734847176242453795064355150105715709242168203798984130521543698556198410350173664049815423573407218543083221249857300595310908626035997489292806947542328506738854787873617637433893249173085079473722498152428082850341792692420851013133808039981558684407887656599780208118741203285486517382136448727856037580382031538161481248446714481996587518025980104508960585666903485165158199146248560153212231233245813187016209087714178408659833159780639143663634141308099629138079002031971854893375399160629625577693577689966106083281050223423192149178698260206026928601486152666231936038527969537955242199365860067873088135161476955084243211217558175647976568740342056518518202187437318997106079183219081995805112472482065027910132464934754145829040159040763620640528714465722056904470379329425413366171526928993631311502483834311399897395173272705666208523029996835659777743073935815678201498759009822345027704144407212492444910149402533734396068895962253088716247453566333099088964055543604113299758311978846539774345752075548403325654422958300027678345397461036933415343270285417549610493794549347570197423918390946746358890214672603423225969231595070873749810572970347333083027851910585300164171514941009341338595090794590993682740377194275663948165890554725405552797577647811235940484883635504419296477664794865613172161718564285820838673220287613089537552918524251881029530360520491730024608387033404639975834568375886473953248063285109634795553742437578463398938757717555772905172845975117311041254776726953354755062262398871633896426361113204900150055639734429666806858467351853491244489972691283428755723417733772966947939199065720333867933106149614221999727207619353048606367848796470473628917733008276949101568874309833357419952250765132652858140335636910573936656611955725099977089129409846215587428698707505770152287850981566044780731121231498021050736956022850534990335776423302389523816872521241007054215829043350921629211457475217887193221487445469415537701142752552216131761035476838554765093908827699464374815595528447783467317389223385509632341110473644324811009502761359494573120491589130434552786063222163948128732144831656001627497446707468646180443725841494368435165250724723052518498521051345249367934339126734060403444438389266402077187565411475054166748390662139738575765271280010531691646212615986792346251160476143337328716493895801578154406826011316688851483070148792735410512827815564726847661627970889141562017942705330501260884818117449062978068458978853207432525377983288665097400206008443941441393796976463521096797028302197674909718535389928025486816993619598015142543867937287251737220754282042840276456139594149864164475927947279057545685514551092272357344374841941880573722663230625256463813606545199498060615190659955364966345019822965166183426559656328494132236621762178424127130425470412752960732015564895388446186067038173759523875981546456253155269014100102234054302548137406316508970122081110735473756048745314665711943738884198064586010055931188257364903853917460395948573284299626714066118042349553120938798375480974113021388625037735006523216309406228678504625351181716343022856528263418917865095860066274375096096000122168588313271226006166548666124735934305607094382430945644439187143165444110539122504077684091557015758893709761999515308778097751599936493703935444498491021119152943579697037420686846956718856142844340589410352572265173636572393317909709820624974113397142972508990398693136318854537290442198708743922487611855841971600526773976705508390916146130970480328714432234607182054070637451772702802655891337344870747217229945848130557107370646018781134294135438113914266782554936363558054382849090820555907610484456899597063742679945631592544825676142866544493488646095221643600694035313241311301476257987514884926980308025773752680946351271078889777261440085240175371941883589871647004559634865351415398557635271535946978706993534590071410574223491638290208245938744478754865766142648234403536524325250426912363912679760177365761252714228914852782667729435302502541472934599252277469457669310976067932548160546686947639296826012555194342950851127006629731044136796011738186929056669146096259180032483804532714214212282877358531644390092325830848590695624033078204326852583052043760293154231741728687340324517020853148233469691655567580412042210997707254902735909898432197635397312049485472450525954560339096637562981867007263987498731229065656441318559534722934487466176769765910567795910276757052062112692108947262120161390130646773632772766109046923172731007459230800890149916836752229238073470752123768664426022371754554408850051314737929511065973549949856802768441620096130529660063926679965331021310669663462164430866226027934529676303013320862357631649872521082831795218290360563433495104415017602525186024139011687769635420229027030747087939614252624365065640629361413054796463943255889862958449314720994883924426341269935353752364688748621383719399845602394150247942151727303025863672486409097219111466078382927533179532116905720358502491628157076711455693969000058555023775704393738478624546396035002720625087399137038470740891407425859028071015149268797344327885064431867138001444674279663365986601796549195505287649129824206544317594936990396058607444996323946060549343783370017383633051845384793527906841206828760916730100635964220422139962592584342438967763486386444511458907309568477739622571000618254823406986369100842081417567764118473530544240348649042770932883637981922117338324557193202019757480001718303792667682876988090766808352110934570001734742023157313961392962167958375193972311616212333404764152586452927161414809589483351074983052428359649665418429109669760203119288880290064832357713109310590095736027385821464880392531953713233286326302430967686539884860934699063709019346796982731765555213980766932647958483207085626946255806730060526777264765901500337912407546318628596373372591394206827221217622572424105989589975982797219795705476150174487102460730825512885101227743379298362204161258422609108951435422115887014054865484901117559327361311084174392668921555441005427609121085668095769085557192415010366352735949226270421034595148251238464722352605977152874833814973245579574789043289694576905416600495219229870410703099318860028031660151972167175401243145034791032166151477611584195971178127243347218430695580937318981579916231365852735626584558556339874490572086967757981741708521811693394052236093568033718091154033878317082116003038604774696433964348753701960301737357237343393534258711451389233675141417521470522248868716284284835843119056964252086362012984626808933750333578266032854819429083658168408490223605022901098310642218572420187279551136687848302663198371351033546817765018109049241963239444685801654800742353045152002304920075940534387036947645242963971420437718989807080874740309666466149376897924739268153807542026561239392738055836246186652153476131495669569897279754923894823208438749054721794387892551692581026252675682321397451244901416126437886726253811200679264440270742090330310720632041814065797600788974899016999663196467292005546784158788134908238999189906028507541411010411342486282520634678430701347804693733524119311020331216877745008394400164658456162790142079525280609459780026728038631826657833344492415537356860100117167197840834095712172600007969127877212216632479526512388527584081012304918779300295616202008417923149356189089334412551214638253090520983888095206798909497783105550413413773321640856034067190193224780908138234453487720807130779568320709257631536542353857257792943555217116657066205210596621116182872456720855593405652811202991308557582537852241365068382296896624766842252796571820515747838275176957395605300585911032627439405019585873498196870610682102764935083840843625891399954542207923485607163645408901312565227778901026658275920824452604848295911280072171016429550169965292478654908813627557627617075160252060254119337108822862008816079914384781795836912606352798124219194370270828279139073121891478642016023097114783662078932453830177632321990054460997912645674853478583829804154931581986563823608539440562287798002634554173072094606268393402291386048698472155903709413709185298051449381356376575370739901710713029089012570852370250085757649683487217443638841251398944125087544102527123627862967883089643658574408608593152170677768438930451827403671742860603930883207778154545232021311791837742666503095178609389437738567494271680573973717132414536805456101927697462995209168070249796710956180709987698506745989034388846227685801566996799119633129388906227955390104989663394351925357904459205557085689352872974159152962454708865993149574629501854725482639509410625566935188064857349611431378186113418687672348477508238420237118935982445276101278482297653184083453503013463850113494787276947530254207488510574017613674763855499953979290673425753957888727331912109525165148186245670265363529458329944895689094197552263947719228219441507456263842790573309428110754641821255317810922444593815472866370097283730544965117037515270004759534572788736591238706108025705692442145109176731046625561358349878816645761209034700955729153494341022375510669007852788670391804682910605385983295218922122754221969825579353509786546815878701263227239124459268996311764958013106865580620600692232207062879119544329436955797302267755538343495709281683095850236319567841765148079421122937753648996963195517921577988755326635335146103327888633033250505181808011741707207886691677621478888230907161333970159989840875567797085967716759960010347270446668831965506410151766137559902536216722837140841282134558330602327955720813558396374624492144140124418282033268189288344064759850172140746782887682627039226843250849449262354177959503744178239661907670579134048639519731305174468592633777438833200024632247026315846987530150368489523606798404670434754112609976115926552956454196212273004730112034148770362393307758734447886008795609278682043354107293407239058850619188510360524114322556260786229434591912149867603277901390853753760129675973286449896051262728281655218576235748389723317885689964966686907782507787006539485102213424648272926779310821598431359576295203515907446872560338419530241274546257171826166759469268094306386783583784253839176363199763667794018297904725515803686482915599087343013108813001401781839609953317576208722888753695481480859224201367897157503344316065115492101690540055330938760211072145434835169922424392670140842483215644851719655011585932934858869088668565383382662219320415548101632360086150826721472844638175624755987639881590476223321565131310152878582096009582571281387355419850089611712541109480766479353479661132908839561419877287995052775419151825448265806781851246228157318631413902488669490872742057818299001997303501826782442603715220346890968028700014089476582104568348260320452414214055653708224012848426470274506017646996371195541006406303135546366764946190701023557719383030547295306348754960979008144790540933448018941085210791251657575199442227337033996748639377696407780939911204600011740960076061652113983945636201456062721071524501456251727777357395679644843967368465955979686884656213020446418009849110149629963886665562010654697373349673033506548952705886513165983513282951278987142365412384396293105324989666929396783007463289565898992114093912684692710053233889510484539953862956971553957475003343077546321462658095842552640350229081052271631820084940633186922677762259106730043654923537638320370540394305064687211517403930107251415175433171212588103898244107217580901682852545585823354127209473639689563401059161129159696565472205681060806446337802855704732149410845103434430420848443843252624716642154617182164505736513227760798682654734231375757432214096881375543284192312423423608495407857062879795335326153218708826411693451585020553845445676568668715932968238270533496769783339840838613835278251714188398016823042985741303876420656541143056133559136711338714465272398076516846784106013706665895452675895328837598626652018475963131018069739289879838774957256144796554702425695748913272114255942726087627867144613620216707792334659379198477263437428443849953116528250155927324741923791661293468018441663130771132833845655068804588675626906947154833902296284660209588769228399337017200926148547195508548977405065169815519782214533340244405330153759454703812885525929523293387576455825599607707393874002343374987104200350442366472591499495169484218477470568065108359895272193373581057497920609226052181483900251024774584229408184595866983977662616002559378564844404735654770722684783936105637736837822787828753215189076450855423022390688118983969829880856086239919123165698905301825257877772080628628048508834929537931259612396569390738920284723137854908329357203875237949085549759351833501105900163876729467664283447897226575616114383884346674194500928785765340802797667523275767671965414103226758910488514194207789190936532192066341733194055444352307624146436148956979074133832310748032144039935547367698550636837359811807673730076919742470577200072496676373462241843208694172681861802376894540044169387238630585128518414428112231782850536666578500071230377344173453026908011753132504625694191454234852875528168594328594370819043672944141603228400240145899182311015799166273948059586723827091043660139572150478643624461658577462892861234029097180576063837677904078779320401407604272365561104935660789389002502828688255884834277384645271948988208591199636844772329511458414720920705135936506741826230214522179024533017238404230348749160383997945717720806101984636299801893025385916652684780095700089610046725324250476065466585345324342919468947781774204963789698677256582004590933151448853234468461132262866979604733812666441829047001679627197418163743981041913955587019486494541249036807862232835478149761811112705943397353106540835308664739445852667396472936200377192642118645089385231555957097905748528100990318760103459963496766626502024151821484177712378764879098326639362542365584689664665280799415098556089530755052608431600119144050511660147978969595541629464284310144547840695273654641035670507796545650306848132828903526364563495586237780155055382403883260229275153792430370489285988318355325981283204934149485922762589578128051657759078470516017002189561821203218057963625154711854319774052262699552456253960128654488546756419888400617182599195346196652105217161813302024803875309793822929904818710891426848119009102532875043537715801918682126792115112750938403987475767736982788129434188929486740149463444779158764519991800502817682251601315226467067683704141689440739082714333357608655812787637015078424095161364380188960199571625596729230038855456300903536458525027248035199123660142846677662136576661737216954114256947114530003140911853064596314005279392079847318669643656092355572231965246543334949128429950161061460245008540837023740127060675870477796663043400809876493186911313593902717811898844834077897382680528268490169259081103841156553253157859041154573279518004320090309965407223583914409239588828578627779321202141693405531710276974812901294657249666721654613015891787502090633679725130944165722997079660407256646330029131801186900406751191354515210834606777369509322993108891580454189053386092531552847753439427575631401151237085136034251170976367637528744051708480192256797644649668585113215877675027163679426419833808673297582731689988349242363285549929418564490996633535403440308602254114133099652999228574806522803909835013274312536545549817852264298322359390254480272796554979719465920887058494619823898319679392420332846993178539760253021390080282926013042990559956709318817707602085027897644167486947597422122408034688294893742337171798204720420909750607942003515573452478329478238542087774587183454502797777635688826153203708308890337896471079774330970406574047068429372481436166255961296384936197628825104628766863592265360522725511722377371865800466076788620703906481339090871569932160493046985505144904094776890800063732755116197692677707569887604920981633558554654520344572045209239237429275872213778922981479775191414604076310705356141089314656028866121840773568367609898905146390150579197473234320174755734447814917688010726204272859568332072211701308619502483862647825932734177410885014721488367340681522488101402218628479416456081281568595397824376396498497649795063606444462003257791251017041350761849018178630569330864555687088145044104985904672091275598815378113976650123209034210668531172928648969991114196526066776522414900059633352644465660637545426020341498467434853778886288278939121019735191857065596429717796264815596627326602064002932309632554427933507569535618666819502458425851456368136035270595981306358329860006776802643728757789521518630185753982219699721330491169319340281150943940662287515983488006954599928103024015066541438242078270016423533820633010500522882956969348415380387591570981166777338861741314979155446215466564025894228395789988243886687271425729119678973251469113653113596528409865568752651076398147129986768205392300141759045756601325986762692918091314703417238070121599606335317703076080451474100945109707484478461850973600229995148636665259339128724322509762356509763533996749335518373463647537031642636914806786798912525378747244755335274448817808402375037277127482659746559095789435435317922705066052672640244843840927347449426664562670879202076443553600270337248719922109567553353150033289567884016279124872643833278577408371568120494057303743377603486084731881608977520926924920804390948458231343017134486614977054051027979971578574316415483293274962933682562950667134226165944532894540022884263998376553453165827642906351558444196691450131363159611898253912400615101685371018209033909051779299425758486469341896220883737212898763488857017222302560329787271994066332724540110122317627974042571544439769361762403884156419667575040621004415927221814726455801875049580464612309221565909052225449499213753383849653377792001614749507294760706348095443208503846124723526092496944373714452553794294578712891537843195152758396802225087793606606446348771920155806221539130541429625458190481694069566555831368963909532226351600846914169740856318825897444106840075292197385690156039781382952756041127576722864736527528460028018989261157739972188562995875079044125484528780404170536695165067761744694704220921237183055247016543286827149633820320876154555172167400272005599552044759918709209411225557106696074178994440481315609490572103447630256523354825856626876219470652313153758627240300806532910550296456190557323162420709600786218114812235150992878360097409368848122597183372631225462859011287121056201305312562954249228415198809893961465452909803496801331202661196644293519362352537857534529300909367747989783548051563639930235160101037537656691739559848345386870870087054317383085360589045884495761748017287579701213114828933652929759512649246136245610554471293886492431089578076562706626444540714899786918879912858087580268691575633439400224263198749236127130178554522407222678369702990357938512597853156397149530137335370242119084270171532721536756083816268113991726852172511257071555753683851388876978288187170525771211417316907982102636768778764301754326001099846152750535665278800928030756767659797082613489215243430640272942996851164967970364772706024673662554769220487193967883958806863705706036041142371687315079319187326314608296546857279337905108579025040539120910043206750911472956951163873155078371596224692289847745620331831097274756089497083159039578774600210280226320770943263392261056874396644141092588893198740854912367739061361507033140394314844945761370329401275265665320607983896902231396382368214714019590301168799216181856805779357467941765356937035229592533301477969496210386746775630890364466229550021707953745382976809929711854501725795715927182235644363175138234190543978221626020807561900444507155515559920462682216887938002873871872324346788925227359154805443771868089761045966868530577216380818432227331787383674203899169616265117803046917553627118460239720791830891163825768509154945880043016727727590550270476398223196296779743542604843453845679889949678476568930665048798915599675510013276104243485704939209647744169720918022306667130838905264469119430599672532739187784702834526816095411007905287948098719995268830108028710853652360607563932361486295455908273155387762464921307292575405273995074058941410191934269122755165337486140304849592263322605586717591544068552705577611694528766119524270945579127299495522123045886253905199300945273688719761319820639844547452078406123030461543003435918798209303173331331159466597361721354914633220809445929298447904178405985192143220861688290923481546860148559985518817606448086782320239964017632300011564428850425525416322131887807663667320122404961652585221369435166760850684248849609795993897042493609471742722391967925808117642571787067889238413808204610430656789248031544671477271968144286534086320291688712334168996086375343962988872333759117141537102004304170542392162400091531917368341788263380249534205481011101973278277273780559679929957953117786120670562174709627407631952112060261059125920065247275269835774809185649600075093763909592323719064071562787702712356894384425467352724505739866485795695165723239755656368011015355454737265944495452659625178374517184919880817822854391486303275868928931225994645148938867960438906228371647281477593577981920963601313006967986211930413421419657238653508830582145963092704583103824104843132678018206162266451239770124540369387186883811527474746610532710305566553602329025118108661339525974486551200081047463958060374069263730971755674862551533622915043284446324283555126718236065482818892993180615722299484637926788858159140633365050197757167454102931428669387472129638626184567968131505976474100791309463072251707179670775017486978120071268060260588576548414838195728914739753193446059062125922846063037874132562022448523806649118897434076214697765612122241584903830388615488357763799269681600677029141594055159200662016527843358359868278518017543923972997689907382883790892228787886284467304004899029403154706931467232318839689239693791027271751000575540916459370717518229753521645079126235949341416682980428850972194085287593953214423435506723680924370253462135245261893747885522057012522641689035718482411298822590021700294035951190727814557920911190170282226877453874733024543817282881066557940792264799618726133192832691467504707245227870656431277599260325467269278638919158061548803938799139311702676453498231481653032078183598215744710518097594622378002478107933461436433825272037878729288501434158902411269225455893540858354901855983598532390776851890175916882966575827755329192488904738937223940173501753889487028327654578775634901220210485389172142674855470762496416214622856180271399986358463127364227151731393594173588122334581834085209492164154555888434844571717962092315897936227404514784529142125414058882843112149837849063879319530043133141090779603748469604152594294129364018200038740511588175270603453842970975322005884482899682929349985284063851240287961324303904418034221078531610811051596684276696965364413719089050448878445977908873600828989237266633301852014759190729998465297660836797689467478196520075257684607488900393916898104152786881335160613420533925702253200335364587513964206204513145531214038609861083737534476826333029120128659518287325222176209555532239739722531553818428871168366041401195396300970910643332862952549736976673986349612210137680911335378082084204794915702623482124759631587921108506882212757167688093403219583879900695544492271323298397691014391221284451978893424542950374576928371080511988021057324010617179300960897463495636656306188554989070465416834210895470612023896127672486789980497570524687872833826736030681681051285893082056045250718809393638927348312166546683816024467693139028389197121620758982932512738226499514693300382696672880733521368470516405524757477693673287791725408030812486319666218436825502367130257712112074244607230698353684177791199211013095522943444940318252423434640059185765336348511134796280291813844983003244626517443560891976884002917571951397958898302992681180992937262496383657007016793963475400979915104897321054942353439394590587425916962789595300836673748493971311643462714114081373417585240803597132094000567110151821790392957224631999121930835193953831930819947401025311275266149904019605556481954387082435581128094992864706205409448437277805096664397159736938250276446864857388370985625084696031669204040577043436115911612979997528856778793355741629038070849748708209115107633618667431948777907810717824152587586919511363288411370510034041064232403168223417946673544606965490763049937218576500449994677887834874344037356626011078902152984307271691795443599053417842041889918323129271664136007752456822145203388765900478317038741323146482798245719126235376365659423088173555096423599581480512475274511410828077378508098355876607790750296619260165133885211375669980809826244620459299752121679771370230843605694392171385920977904342391549309029719057089698212026191336140028461766767459591733649194997564010928225209545263445899767046252565437035605580856195306980209632918463394982477861542489599498148991089446319135173645661029590995208658930540103188342415782816583503686784841478627154637605313795103867287094829254930176623480309080240276652849600602732277675593629224196179554965516040403341325132901145203086400543466187558258131106599685546241214822303269382089988536023333446833316113960333240631862232330910834807206436298922590852157962656568633060095695411451955322942022392862227720496123831313953631218142736201854725375629218649705029354822979447673744620265046101817353840138529342113808792947332160837473069576588043642096058669546578859984299353073436364672984976318660237789566636578578402126253158552604987181129081461166248310927943183693054776826218686060352690046073110715028473212438810870324043400588639828846261922121953646906732702355510231242393605174491113692044159337132968959670865787245619751833293372892534550520969177815456835826880468000909613032255921713838757331662947756171334809237526915369430875194554835148538564515772067550624217430447601010545020493717583912474891680606424601406169682577776262531369583341989812550225495233939915523475807663366446315580724323371934574190922341779134015218075011303208896312637001275454672657581115112717982894765694152763041649234239408925582030811642248059373248515148225490898650390735674142246421704615483770120222917842463974119343932877225987389874469203922421471266221513577554691756233901656218849982365753635110318961622604299855476527322690612269832422479072905841590406196534510062014854178596895354438034615347883566080466885619861967835381072091544638616792603436593214583828983988723256538851338350010563560286045653980152520515749678661317466955737188199494291713340851942694801190841515813725274213494870559458751558962360263605023214402163979418790608447311442989403432101077315182643226619498067830005222178045882636851767467665294324658731706407445734450408562383147778405933820705069728514931187824802354903913580634801347899153526367220515723855558206033747280711269220503627000409536575234421728538909445797941746236869985120923981100121179294193182961271892894778674964023495364718138069650603550590728907025459469717386761772143314424136920457380635510702995924204578758948295585433733041642701414692189981010837547519536935346577686523854469173594117340712797694960411920436392224989578737098320993337818586510839132042262680823091239325018950693754308887836459005520796379372082126195419684879738421601285933866229869333666564467867757794633449116553574056904708135582084268520032565349670346731592432411799666906501992237030775957608277098814114780756004430473558609575202812700667755727818239592359622314267071023937600575443141016439185760782393483443074374902432768611121274507385052555917752665216709486664214288590809977234506589154796312615252718390633806600991919950486564435431065846052079705385718091066987281025106517905489140355577039974774922563236255754681631015132252262967703135532406510425330274246568125553179665299567116803540980834034708595131321779953271321190495750837786922745494017065169153069866700675015994568452002985204305450487870444425605617737836127900484410736421823734982999939009916937112145925474903769876426670812818514234415989199186127282440352090748707238400245654403271317049221587043166211718972993996988070527856282391012548498771895232532224003719865935633088049921688222042518949654145677394085826718120750690102392177871733787735104821116066857374969113478178344011042875443828983671234437058721184405113531179009628138437183137987814798009756166777700691636256939499985075796057858666320725488983294721202743990321983108059814026519578550023760292655242460982164334820435542747424282324696867708197602989906117875154269161082969867909246550225063917673613998993999982344681540613258024793263490050036621613267006172911905268165789452406350453536071867520254443025975244014878756703768806639575472765634179008528108262674138219405892972108768254892744248118600834162860241912504874208729115371586116059256239995924741885511617762050399567106615706611983740551513664919386112952373830138649294196397548152957612211598978696129929716003374133820885731441163571708945836095330567155719606366224755902730047885453516635262569564702491884442616119720921830146609789841750329487873240629283582067031670719037283392588612792101216854298129887006731439306574127722659322214989326501495691377878376140844586975350313563630605932245254626880338606254251553098644138496237348027707935585276360660304405390777883868398834481519968358429739556506940427041232458809726435422564539860662465148446909034730015470122307900360706835246657390585418691287086366327175358140976152944579979323278097018763972462771442494792650686695320153363309713912403843489847973912050006881021845265660208603050094261568710914492362672525193841220070000667332254279711560324803725178084921784244911177242579730804686555187350470715243341833346038371528152626268236581909928502070702294026202021372586778958640969171215643149929091963907379871995224706214876397516536759566447445306073712515822220978112532011287324078995151898998007335467271164653994968527699589044935113872285730462426078789305443991500697680534125636959272520207938832725733050685820052038966304293650708001279956912199649168172098772459110145339316917688250495246118600836730564629442744799711880600374027812575862129016583550832157556554402400994136413337164539512439480731005262221631646404114146115725208710793103144226648320952985031075466511620682856014525580322290001622398013882096246080020682081648715636670299106011970812966691273736834199048286622419794459162222902938040806043984091421137342400494991084658325249030819528598039741288407556132096718987111103159342123685601590328510949664747091225499854007477329442172969169492200849762910775056151599854619953185488427729758259406265331278576142426952263676156840933775236692323352137053227259183763269871877990145093048798039634414719632181472720399581181463128843544367155599390702120457417239016400884759893832973891504863224935496390274795203974348429684048447551778891974493085985062855365908632435482473324373389752447770416746478925463433204458160003136707900975972229491384089696824486118255376292435848660357951804939177338984703773128660733189865204852341824455320168150712578877274404686401139097235511518456607666287283415414277621275448019710510578159612771970085091942017454802649268727631352663730585137402209103333762849910931131835405802313026489301314462549096148367141592241104862485064920250261372868546430812013448895918718512658508800310319737548297100701336223347130279971242769374598468336644107106851974619060273104024752417047869000037524232646144227910413683347240064250192538874831662680545299673033642271742099059569019653022090955290724592521381965300079074664789108048042698340429157190201442708295875205804984091224342141788853995623394096248856347702672218877656076917210009658315431198250986811592516730988536748227785729462795948685739593176015676466498438352017369192244267407385138645649477149814308426537712566252944255721910319169692514675980422768807052521450269046944451227439876434868191786416514117285445377174288499826089669586550229063508046262138392453531964112015122826746349401739957080291179472114447600581730254906463304205144232105910470573374251569963278422883616267567313222698315229498914726055567431197470692549488611700754475185699085044656515922788862809570688238932402891680944113364568809185032658515948391193363052713079971379249467892376976372800212172324200845306890320304706231769452627171142923839764919453426310717392384005860483977695544147425337602348571961620558271169764242563617272644054919530821060518367184323922954950536619312181100917827472859034357098991046945224692646886763959673105939294023544495441362293734266877587678096316812963940370307534358186209782278866133357251577908226990112456419772080757214255957344012244369734856731366439369433244599446381332122667900018075222353441281006976717918577083450656550608593154319057655086554515469577831283132673203291099940174991431717973201046452296817253968340025778152237017101812217689023961467257960334126860629950177947132663758702683808837856377501601049746243890717873875080163475479057875532046814234703800399356532268334474562921598200089526101950679769470769786898713506894014324201531138360095138402586569687241095636758161073332903564185529674345764724009198184846831046354201812864052723977882899776106031720276067444890243831182496422113447113021236445459774149469979561762123333050376735791444713487917669069036670507111981758322215252683625543376733476711717486078495422269798314183573514527193181256466892357891455538857874541792048809288421472995073818515926959609011981518049014842315809111665872236164847577653799298353023932062132623154671738172836409487547219605009756240785566624943695384957077701468286941885295705403383012570066816848368233580191606452295601659119840629721478792963170201501719859242048605768700588000701785890526562741413138178534209784313971408572871933832535750767488512656634463078139444154838476157886999618779321680070279780963760043336998836202385470820530984332135386809413370376629788312055695196955140526882647625735895733076669168846308488353028254251833094615065712070142856979560611118280912059283143846550416945791159277996094887933711282435490149251651507881202111123032084336843196485799807565288688364289983123019332647727502406730473211658424276912328159244656223776927181559670412583934553483098075432844588681065654184428356612365791367714604489110797336105778473332633183665943675604015083511553555147585536944670119905986173626963276165614201935397279584442351663164440056875887693658031957684689892246667610616934065748061521376910924333112862349013771245140365522974836625760708973013363632801145627782626709998056792498728369109862212490111007382622354038280623421265313666235936982374468673144209620028127581910017841933938801397863642730486562307362642042874058890408623651914675615388568452663967049359159950788247886266286033541448475985252132084781787333596660847860284234611813887096360563541026002658425654936238018028819219806381198816673308610809565169136675278539668969274376142723673304086586578478111784032694836978861164489717625571672353943221390786602908970184616343434797813039687185903257701643840631593853992943631728176692269109630956992270611588355384988113994846200300630160719633982093147827775121379135901279263404459630772162474844627208236211261257571243437541366645245209268589866406481297140046221043994399892738035020357781949035880661967615272878020532530705765050912641230058816278961346613052041018520475885605644255703637897866861545894018529066623996481764979768024591677333348078949673696601496688415976406401866852214606444861125897007909692938285031640233780391372545752550970442694614002103810301429862445503729938804634159607411746316533695166306788043839168863859199784607816840873742323111701103563088015330798411351783222120512703872959839897785571839619574492174858849171926022677269418102752191321746687895255566093226670854757034587731840002133580161852035135084941838034455967965989484024837294341612969643252625643025159988168370409019153407156900874066478368754273587635024051952080773577365817409435365281924001412805944543090349642880659191147282024070193706644467784635438955072024839831623448193383161862644378667543503601798808106313601022398472517848534434100199111336377979597824590143862021069195265274215665130659635389549795984845773884994205352266594021673093348030691725242685956227889314109633502562309610559015730532680294628277042389666967592173047697190265684336816024886835169748722241297490724159826687108121054918391242625449507587798562916340207401366933197313181335099455301749504296102496524247599633546155042618073875895140867044090945371299094566821062115179451809787848978401144244800453117912413693148413342069901383553360171404114450103332797741964236164624159657301403116907488177922257671299775687013508712169923871336695007288182012327229098227001375789541022808485531887397611153702724050738441081132181042045714589235741575170893350685053699943022944793303125698634079056322518781578717810479030042175148821463487870534668146659945675842452882293318773791608655857998057458610596527492853415025318321346603714149046145768025860604424987035098324668471699961597507469290056096263246965901168371364541884386222366468976279050318385436787879968176005388054214816339147998857136461645776297415520983025709153759342956567616273009067362017355418068605593751424124796489346569833449063270633602314025592098706403818513394317315338165214191377735626939970768035130651388488147182464599007837602219801737821095209300091826789592992808914927903300182020220240077443915031879439895425211475345725876046838964819687603632301283695057118844901108663947390651962500960294959978618566758714890517505014837401606854649404583742046741131175812835722191080092777641061486180164766167497683454034383034862775916153559618437253527766581314525072471776032853875813851311259650456452695373365793103125542950477497236712561385571232388428741679806552502722789244479637947247392580230752987051807483560250811155537965578484254943802971534145460933371756241113754494498327537323159998822378744241803804884415926705362595095356797604478917140788122977831924758607548234936478399945965777656705902610461002662169800733831578348410133260509327023153738164570384684252245723572657348833759877744625420256311043996117000409532044810309806147125707657092737057132765325828462647533195437445511185186912350585427427534530807128248419887790079132666290660118486349525473058709438002338674034004054215161978770259362670875885206584143754496947945739903127928472741848351153997905955234265116264668498453813265243182434397191030282883174029645276367657475371564304787347042606182649503600496902173237439441540615484090543055490069221676174778453294417381587986623386860242622035511907764506131811284902655349921011042387874353372452407067481481738617262490640103610085087156804746304508781416408507676659381450058518041902125564129286520658632696574856978251327721367684673001327309555050200011836680582620007663469047479651516714304951694227379775974086582342008186053150984165156735406582789397933165289061563421351445000298040567655604398306129897342432606188128182713088302925059663880352862509257845978887443460096411176066756468617439784922904143030814543096934915527422658275427351200697354733875551553614847168637344266521357615822418580759767748307500377891260236465820125316748182485390870310797674993659609357896847987462872847122814770742286990416154081583689834299539676898552707525607422902785348194090281549642203615326098432641782582538928642189951553042246428803151139368360623047307317341025455333690960021835349489864360440251440551794121169640417039376314712952228912122564510479839796609393255045634367405273045597055427733734751179902055160449748622872586209482903348036651409253919599793699547552002916352257520919178761152236097433040191344194457155106618702047328778243461065203103483679995121680107601262011741436511671814520252046205302826285541473716975313326977068331614781880200683425229397611911829391731683571305867450225555558996018522763200634876886158291745937306939273543821399056362111780867652368963419409456505411264485178273312803023531115145510745432427109573282735948335433753222597602656866494802707156105515817715074252717187609913198355460590099395176841603821917962459391834113179735719601198966792522719947451551570109611531250046466974640982684826264366537588376920646819342807301082316020499855549410839979389167051933488358523803532425413466593610425048636349515502161143401236590136298443073220808721454853989457052649170585046985904020422525195835680141338905896498821392808882724635775177632788338212159817475382139644610679622195128214759445160848638069777033118111695696937665632025302148125225780264767626750817285495050025781648987021909488124761035114371839232430247020605182011772123994167236363867468817498510733354912684931282186870846488958530476287381301593246027785054369842608112818539306207380355148927866890540060663171757819606690247462740954937980972933522979377151634137706520897626360306522131987988796671800146155493962245307950506082530251392904043839489922686538345557393411037829201095162901615635819627878356752644606412676926725707314661526362514601988510918548742707743633344233955128350553802030035772243281907139282720031737219000807932185473363364595959621370706883045118218081389578112084482858120973457715714506212668564156586587433043725956748705991076155737878541696205869943712676769342979919427274168220003822985640282454189728011089514958823044570470107165262578526535916494630719917833208430047566313194742344530097018616398396466641143541647053319911952400705782661481607056223532103870016045374425345706758464300118191837040836991977523665348749421806160908677083518545332866465965722594484901378443410965790458256240872936401478440409907757446663345534008798577881701251608302557732332899113125067924097060647780061721049606819221878806857324079709412529916407805987226215254477293944102353333573465337059946404873636623897851767503476323268817757680848031959366804033779429415141410438113231092109145645985826560700721005893199896417730031361062707771189159647232700695026438701664852122585203827055182047157630532443047106911754172355119838562491851115569068963525504601602866357796928545312889032104748638254611622095940721430922511392262458548132720181416536542713192405448312837231519701095283760206146337452199810770763850478403434244887911241983483981269538410465501802679819966802704785760167645909542131903318933186579932034075815842387614489038519961770897680347389212937589172500046093944027629910622726913099808255439512377412622844519670814599447700399600217568436795076925009154186243643106422916392521428366217407254731686027336543169234583252850471427372407240148792881742667005638595378788440614677925700425265094453098748811744965888645768451120107682816443293496579878712176751857597358117974549755096198599520347146640803173111744545735218426853241959411402273455855846955221509453890143777979421340313292747155893698748018324304842638973200080388855605835986560203296062380690145431542903607113910588624010094407309051677350537317409417234869340105884627595697958118988513079283360979561668810692706159625105970948962714771026029044765872993435868927549144809470959926488672378001435657000329533143045273328705925553525504265507773239889601921401924461212796430051482556652576911805751536214253508844359306095683957574582968992293118484165693965140245723649751693432902821754794342563529151045254699433896074212761829520476139309174830615822064148424532032362746312369214246266276568537295231598640981800234843568858161988357636072305432719585673331527527905462834895030311775739178583585749469061390806324641448479357180649340992765698162330771689043199975084907253577013343371348730748032174149811016883615270322243171334950146254507316853357796149617595359187124842775655983974367060966947979563619861369593451529172372894942525862460846863676359191129908497211392083059730103733498267488352536309766828291476764407826872993533964845028484519611958531533968118740752231752688913710025907889400122940745137367977837505607099207418495641669427078633551631989946971723853125918845265520414029945042167793382822446249430573757075575720049783228630350656805768162276755908373031008031608705124930829905559720989446321066717135578935996046583417346011256626572053997991942583488369484179966182394518262123665686964071743749802095142840633830769721087042006919466007231128373545541168687637828412918720540699159974444457818695706167019880695334965116551551336117972949917373727276808742274040899647193320966843443105136435962480861260602868392414157084123089177804985237848463148604957579528666444644247605806945004853395895657024282388956409229876660527693883399751533599247875321878938740789626306795376918364690317302702239118998260509235326705445593016853874523426867337325451927271764172248381586813275032788853876261790730428419275174846993209781567546479116604801468973655213755596990770762167981138905574099969837077097227778668114827953150973347885227716479505019107853535408427317537268107517529699814557115357689711457657783693492552951242436059355404599193570019298574684219724792800433732610622849291969453460409016103113403947571055649481742395904920049964278271049431251818922976519092642703103139639055258752776158931611045991096175991373681195420277065832113006055736153699571764225466053181570068171753227352618367316133160581678539641056828353414990538743512955577564004118920845395295518215539033734481128765974673976465803678746257284011262683986138681053587213140978748529683912208807315147667267799195560469817329955508505546907962139857265952194150008837626546384221656932379007560701812627617982477029721494632943242105906813590889921274713386123488854788496539859530872700259814778715743884389419672989030461911227793276473437567909198666880540267803109807655469054360709060987818358088057024438439391051517195774804871329888282784142007879111202934392491891103396205550232226235835552525131568607887576174602037627524794223349391516402821765951254370637931901065592102093005776167344970120335841314581547858688703294090739279555685921842950806356275925743314277274346770983755773775361677390366943233285134457711881400997801471037583220441229867004615273334349672532336590282319904846910735133797045937121133573413648143701711923733671976774963093474093476948954152897003269950380237591407936670646661695630664200389711765508087223672838455486784199072769399989986314475625593316334610112625759547589445490238000375047370103028670750167947908093074224800991769012965450727364172379411202175907467239546326034414612737417528200117148147835680410899412480689246662136094740985585997386041274898136990035349355929509196572854899212561820615284775825758919324135290599677606151635478404731546493461469050546692045894469466666728471119440440879208377845937251730622832609328406555469010967807904440584939105435394720866008765214768881878118679022205476064087168849114036671137197354149355573874502666633157894733914677205138939972463756594622917038510528838239527900256405835954914059459384474983122089573781368323437177664259834069095297553980120336314711406948317945090279506784497090929061330313506723164915462329568851766319677974425687272766921515498564796910799123267837091704192581714375035992600011539180274766150137455515576964695516574466005043313220950853272457822065986791118896497553604522097799167393764694054686177754634858565689292009691088855008510035548078679539491129192746681009971160904895251483520814190665383172774318856029889785614831824544080970300827674119320331676194389545031191346831814548146863066750221838830046359936493688694601257258646470632239584352939526514607951028237007559223894090540799984387194748833863129344197915277098834232974007252178320044334386005246188415505284934731347626354038750542159166804837640993972418996762368430690129345284282868619071456344114084696323253656863607469890889343673737361187310828420406086886188349174375005077041561342965731978402585054452695940276693411173171611389980068557000000326863692365920469605790092373397584386229725578032763067713685409126219038173971207116231457211640695319251956880908329964181371673887086004910569287573232029992374203191277318215818291080357515776774908991168498532179723504422170339172077466451064005549684069386987598385269903840821691525611830978770403523851818495879197646173171782911206283140514326805800887827520681897230327504031521396761124763421553318929095465561094224062241349568422631087716366609779942045298481063750629700669471922406244273213156741658912199023515796760093076349827475783944855926722319777364365775783301515743966296733121007409924712494775642482525494024151334766642147459902923141460554333318801933924273286250778049449076461899757394883864080232405451551935042100389351620165552974986409996739853243236751305951901923460177360175993190072997660426466944482611723022170727712439053310953618709089851049080074862933396205323061022692882146432639251790340274972940695001414079880138228828229564431083582862793820417174234033083905319599358766229435452683905704787475203228652004198922690046773935364539432263826821233699231988058298023170060415229454357376175282969832112643763077721098542611476190116510008337143421497958915470595512759092227850121857384081431209727892311627208246755294474801853970508330948579783009176581697426287548755850099714969513619421154792982724577149072482963315348857639889137441889917614204969637482614398645207446798158491211964667771414977188900414910334060967886953791836097194850773596989778846516798504553087959644454683216177922199361885032619097741634508753755070966872354512991993403719661394919778094347689620193008584179721339338630864997695889230325317777183169645549372027429057227600207260822898759673210186747256736268139397601268792192971801656893790420871528865690915805906291245675731674057041425589771786488408897418498376446494808625664186613141618765263858301552294838300600082214043979498958534046206571951905227115654375752876618203362348646626349000334575150275560890331682390387933175345161716323740343965125847222420083652025626597631852190162463490318790571022227146356139907150230886960518855993604398929776776479211902810433306039744432871854197647923556701571972398631511407078073196390401323474292223749358891945345199038697710721692214263379226535776799482158040425114119122421729567102273770070670255031724644487564173283310340284146936016440592004575142025614375193541283533985507895754450793750717326617811434025526261655692235925748563423644990364108867113513318280506388435230157693554483627419514833417691770661687187245030444686471879987258807935733608796414430983528618160822792414305159461477674718985585031044260199071498653918834698329827263793505847695512392888645393351010802746238624863778624059865087168010901410451913863305736599763620743337429678415108080242354792986988991793021613194140127112791668817507304139844231907641595278061382231163577190437766503329237467747508235000427492640187499277544106393653605259820570602991723451058601133809979811272651162838251471364681796984539389905447608086274411764207398366845406141227971524614654062595855493935265264694502292412259021756628388386400939571995098128759328556995403724960595288438311842913380520343611714628703819504155054211604583114789381072428786260053908345456994071645544155698003412745658186444765661599280749368188336037669950726171859909373924444520070979821858077486133760129419077776962927818377019688130436171453711119075898728039464147517577883578568698967035589836686726339596295750234742692557698537125856676594496024816191074202388389318348969152583725263918734265375237335097172582628691459428028133792588084832515629012287226235336205968991694400984589281065754560942065247518898961696019464005355137755892938433181226788044341338224462682952788524184211887802384837031856724906405799750488246003327282749198569397493198062061620075426508012089488998319309009106147943905502309332668929356120425430118239205998866520138181851977731443707068503779701904237247379628457827130518368970426982186131470446709980264979377928859596717189623436212578428596659766659333458448869939868713647094603982470251369605648482272549953800422740680367051140935864563683505116615128461214656640241928937860267932170162706440846243241173103164228041352011046492783165414774602417248688672528862468848409928539634900397980767578350438205091856287409263929794835074075586489096985660681905771188207567095320398526069508553628617332133994363960912074304816235259854943998902213157591987011883104706644976338305205487302862214236971981388171789682152756908010474793945365315968560238290275906312098806595967806076517334052017286900976397502368787128975567880288375921945276495084605207948626704921725567532588397446496295775273881431482137531471415004713175810895853210552342146320417775591797241212809291447782403847768552783720597023116281227540384762213633939309695635364561987122971796499499754728942946913901523530760762968931814105608755523786469129205116727825484425221184630231726274019655237151715598738861334510791408582846266217366845386028628991873959177382022650065968555930783144798718377592444202271346387871835241641742388231262632958033038177020134277084073341685547066869662439479040405266151834037691047728077257962116067549147447296985804936466589615584294399103003153167511832879854362980042512067761520926483232076247706537279070789649291398497196696210667217929202609187069821875406871172181134985939669788323767909134865586755578244252763040569845956106063952229263999824685161948658792275645244234263986156546052548032947333944820721609581101293356463130728618506380487503280884127085636920735365015016282670616497084136597212690053907367651908505911981904742494259979652227200605908349081627868361674736168760743400910364669957632664343856054969439749799602284306851913491222468776110899624340796567389786972717076639466975138626529798568787795681017347283701750084920448783989587991245050452552670817336173974312202408363283190463606321847954225340694856427722501321819727397162329842762515302206115062207326931281754184785541154030033144268724676966829851186339304213803402018723182502333691467125009356843979213715761592430019161064191248926532156614312396303269577113959996550751498102639613685163924224732499971181304568926748869839811645813449415761625326388992588103381427181326640657369959009366334191431342117965019724819222190628836021043279682611990190933062431174880843360171824849053593409857355032712660826924330889370413200556142807279649806535122606802103033112608991934013726367100319823928678568401168281900737754252329377584891276083392467096279195643118017689712060019475475536270607277094128251658507872737416604310379499375384381073851813070295680215855843029744410195706663056478038417894720827826273649262662464003128071502960021921144598140146795708478231215125176041045439954332663169922643808013008290999999880070471920527266546496453270001277378312189437139164528434561736547033435403051682764371735877661497536270877515905683075456017109001055309612845577812168557934302949541856344246412011140956477183827551063676289376689652874531961303085450338945173124372138848891104562154621963890922323446827108503875001191161589897627762099630191067479847164390957311012283158838009675970899390997774123629505936964120330399275535754937086884717532164032984810588988018392680201255563773611605534973867814560831857712395032386471803638486755658333300921756512716051602464348358747048180325265094951913017853645905962860837578531579716913842075547281190596015340964949427260071432709044138248268430002696218455158317880179708576274349462669938248063715555870995335120877430145402451711522154550584582717664330702668969602638215316468998613145298129773385868491047833443880570140402864235906904051402309287017980361466150980490964910793854348834783700586775202401173753386104775830310354191083636592657801385508143751143131707596106136601707707495314369420221281499064180515723558713428483796627628442226555958153545329606623683942082068016690074029637476280132110364159181709548036314138084137341338543073907049606562034578157759119069266291074122848190229602925250554167014643989006483628794933524687888070908024005499694989418693247227919993580727642887243247454139977577408859444087577971464645673392836951895976302545514806464877414489771683317857102381967016013122576100511511107395185872878390583478355834011759598932415208108688439958458505314910313329264919749870415923005203356921141663497584012329852988046017209724155855530468581069102481009859046400845925014867999829449355948626598355993184103717984523143770531122119982079139169457488963040683725054746629121346589068561379494417919214799150514678715110815278273661075678787722890339289613618295926864941402113276323668435342432588343845345108637077099814910223452375027461373096211077403882466352096664699089582047540131256287081266687684423723489150627763006204557445404757166565124197294026539751309421134206176753119719958781507570503310998493979763419566868723215376768854215281838378473916678588887522272535176620153841136941048653276172382254945659278628248681233593720624229877512864729791215784119559037767332383634861662053585458941951995294730631222584684035641856532967936813311922795806988297164494129083206744181588714746703291927282016582643001815202334164232880087379595195841225926682478246933421019599114074398663762161634078384184663230685893466682670762176033764501307447852916468741074289705348029068612124496540051279341962977066145172519974713383311543587780114314710958075040324377566462988386507977943521424115131737457424344558967447479119632226310972357884359286052532809083184155213869877610932870056170246264598122340403562211000718316414413107640944421657444537166927738590640537433200281699879216406037803150145891232352100517730641999743562609750988417575532808872805696173665301408100423734904866496684545234260437745252863729954039036425562918485705039243797674115643835983796471755891182461952255937132276138826096450027945369663821521864772167407455058381937954138422760271380281156066797430790531317311093955003912257610437921004322711777212523170055724215881989076883985797350853632132963856561887002892172489220340503765381130912171225325440149261023039160865983072477899315593445265767853060391737323269347105257389450466133570891627722327830926281477055399392491389776772470469107572685129908212213796717713890799077186978780045806788463651567906861737844212005249585833162964612916772968223120172039494473577503966802637185999068812949386503665173504838554992089481320050624332700285932710425965903311268483400219835522419089887593684171934577773623800886306876439596543968017317236904730711685901016404450022632839167372175728160886049677812972585186365080384805971439087755473335293195387678955348012174064260591178518992312732658186400316321837054492759690835212344557506501786053793540555335829581105149834042824766354399596275632781776947376638745440768065127309079590208628465794976394745985184113369800174730374210295715283850820811053387356755254093133641099936594430232632926585513598870456450569828271615165144347401754068002039276850654345172605608181893080104884775331659003062142797101985611058839617622691163387356195750206392424895833624150486113604613491569184312080291643557381294025846236328041880010735267610471698553668680478131125005764723403050714122473674197526539922458440367381685892816406749936874928327458117263187650688273290750055715029380821201265109122858034709535667972757162408756920789076321895198932375003953886349167015764651812513819969904842733070605187047805273902624815716700270031611330760061924967663195913422433870042880066085955188924558941839608869313555578830316506027665440048496775642218256049532835929901837771725848200177223366875425489134603585056721903267248735673446114168571224275627102218409166587584316736448498748442912201153193848473448045095847995810018205550790135757010142028274721907199474583495488453400492561068473865838775619114349512258827472178023244328424393833513473976384013049685659813746479789095963402318023928334671889879166577647394731254828263957115271842103959049906147338654838116837198818157727081956403171884604021650805222249831877097034813866461598563096071854456740813556349613068609653724883299179269582907439464745767469804178207824170425267714726265426693906441608930077219430798452368688216051515914627559409217537310637289756131814487675014596808978154039054828529373573161332913718441732238127163200187686533694681338587931324845487582478915557776946610115056407583582697019747195707802859554465988575819610180935716182592123889854472291499037883321528128992676609083119868928077550517744212616241122583513016593364419726489408246873484571193580298101659412932987879242695143090260839342760713690300679358257252768009108315013769885147829170126999123985765924173866076878503280996910471824503862183569366793315440056983314439386183457455402428308112535782279089374739105755728554052603226481121093387808850884319744179964314119799067447382247633427690321419280741868706469086741715808077339329471353748762123910266001626906461957038038423936149433758029583605738219316111564230694767246092684896897220191673940798270886676169477708623676838774293615178441863511811438039678675175998957865838699875193128712123886720305572150403062976479556683266839559257664943043698891935197877867400614274161666877262023386420764017909184389809797615327274752112055187266529051838195967779274045950050723075681380720529046880528460450075523361866854246036011789494284124850604241188366976601392020337014057990172312494482346290913908196847607354869998831587585802366279346364089863573582186130702524664990800795950136549078664286509069422655005716342943596655656659063513573816193099896161175564654475975288599570001742547720700103668384539110812399550645501526109431317753747009170938654420679286054627935219618326124826261585146661256823535534955886381962631038995290620108200810953925549435218798273276514884913268538727069659748008168643154596472813827679626175001163340360613561119685021280829395241802373706100107361744735921747384544797853687075328751712520112693994974047198443435305047765794925741993021188671581201230267672330800632401807791261827315839828356467725713744147700966794593482596136695764593217795767039225656554384852472790496507301903374857700073314721921323069870416426498026966827738415927711651292327433202531293374553701427529788160906825164876680446044108125555162442307315698578120917090416741961547538312013616536179315896645823587785148432647560293896683985196277475523870182464325084081511629259774807040370123674463128330719048370245538072258627856377477459324942088324734782231934009071810780120522571105961373378373971223297170157833725182578164235328048421585043369440647306165442820448984239492087113207250634766294922186460962610784444801638349633102908937261997290530263955144282057569320834622646544382447476062770649026162157408587531328247858813837197247322125977575189227802413801852017768955585660470171754668848567649732071098092133451873235399162750416855422084677886864645042078953195584500009015796405223587317118848210118877119020898370806013324156618202860900436551453000494452613352663904307697190017603471318186620832065549007922419891877992189028548153695029522904219505076896578109016890911994112199374724592430195658686315510394158345131015305337912819450199157771392767581529697226625172144011303634482391554638756923590854349902745482308428318802176149565074717342087350708221097952823224945347410080900188601602601183237329922954221891443578628753031832770576024293768874209579638697347089323419082078255338843404463407613763158175536988557321050977152013290089375194641429916556063897858552725061730031688017048425489283887220399430943771666941066026586618305513552250203880037398489364718638559942183224815441254431133222288615064820682791725292341768948099880364820785335794283208358034681187117304037214201135653241302766249130733958504511103672844426360725790320235790016068155103153250484950859528170752402172624070480584760673397254786957330016420424401245151081909285511784889306347813497647958076719463782074815594586066210348391270672068805685432294699662717502857651565929796150044888228897999849400647314258368285437549241527058218190816706410086818935925433042162201788705904512404353210012772413620923984822178805111782766947101297636987680223361865867512803321948023190843989439261487347344736771051538444347526970809391670224731813069911422117015555514415741524136855395512610981170128623089946194762422168085632585278089300027138054239783622121270473643637396620768722072525000400917607073375948324901096095128746373218823892358576186525310063530798363833856254893707156075454451560822279483249721848875067951917070329258110778527910191815152379886543633510368740535598505455281320663238415004368132593959029124966284642491431334278758419285036735339766738150217556531840509973113343300331869694206420227153585151671725668960405815395245880652230848366011898705574984779232881852512711912293025681800474547237754123750869901251626947462786887384728953013237804372142261788347132637779563231608464379325374242348372929606365850501168115650981862031348412015753538189366867341025911570978577561312704756439589388024138082391279712803157708355512466351606105272474283390817453335298400545138389988531581067500506675563184389095196500327384916064472711711413068540863747598783419983691571865529039970917934003025313670682871914764098154105221945053133915776908318066378398128531360315396005336621201074336796169136516382756829196313808829455045544457809123128764465108394161375172674791244781988851950992731835165891737266323016581733415761509507327595108701062437991075646666982753658179719544597138849936142619738290535574085122958452155691245256259998551652452384770151104514075236560407381345592336075431458702149211823839705422314052379582972891371066435664452729533269572144241669474716489341437913752419977459619640839421245900060490052086942144984434789233510905408805721548527285476222405946025029223229621704812693195960995662318179174986846618205890622079130882077359528809719828704275996032692634226244281884600175637786265979605695190929581462627408272168369093466728730041480928237090516966142625109247891888835880618593331565005754175460338163781307769892279229770300872023506099021622125971430395813057374785237498987127381715331030407075072413183387754300539052561656864238964943814854968598451148931413824700307048587418822011262772527268347349322417783977034741607383964342164696967438343456066799644787652376883154285485808760870018224832963817935214022922534491790539509222694747674182926197208978369240808981227187790650195413596276985533675497940064558049880895684960581007727262346098009536381701902852541126717288914191056752572411721092214511820682323812267829435399445493238932644130473237226121893956153064744052798177595300129400677946817872892482422788671008424518750384153822018633103758798717014698522556165268549408987117186532419633696978055712207456684291367751642327153185143614980555927880340439119232451764401307900707991530521256710407165089799885138759939473726791565103316712827025537703524153525136144811198247423657153622335353790932881910736639866944608146183298141905019528023251933925663043295990607044132681646094341985051265802632977290710202800408015864231227533394218224059382585807750389315767287229951458730004381629385049709594654467540782425144728950642207161543238207022592757511229245032967692365591310653960552545403382521338012604499093354107702187264954772733230596839359785320338149677995271337236446484286781634551161582758298624524771870520262539796636667959288429088930963976572254774262099679684664917278503218399434239180001887674612970119386082223249037860311165820113599154566475722901317320057197810282355614062682979854953442316977770942177599307767230470086647829960958523627878580907865490608610539436114845697421064131551725133462862832190109622105832479021518393619988864529524599258107846200675064604955955700521820899773034736732740251336024750523899462377395777908936239162203993240472451284389009129196079805652283948156875446075317196378657820737039916035047929792366789052995130796483606718201416027066961194169740343915413035750215040032867572298684416548467366817072225473874247260441008628545813188547925403570596166710118024622778061416151679385113452285542717540543042185870983499740933816558632473897027945281557257982644719459868485553943390434420177195910478895298283311823785912538091817200888850829240852103645902108009052555298012739189724367291954653022729052757741837545784073470692327446713138476174646429134775082357475386433100668495616956563247713189466982602597142272206426965261513900052756383620239589987885183005661627184844479476427665938406549495401722826708906908041705320248106773131708249395337463582115407363017603138001344346212306518372361208760497260686861115554669651641542381611017699291706201853829514461220801597405163027235203797732852078955640787560972540373669278742444138541941466350476222079401237167729244419538825933162470419912237282493696491614588050193789794937009025139829624843655970306306039164894241832426842308056676231728928496175702584448004029756465907607672007786771014565965677743932541776416982323709717480474578906750906734684415142667602555612009024262677047842184600736344589496986652678763947649648052862882323606826047267721142247191998070910980567334817559353650184727838983206804754847412641432854591622806396717135618744641320648390021961165996101949909075922538098843943724722229623523357920848532527709328043608254525885384951130998277591947127164067286394511276418736311910390468596604135198831914054530231312758347437839100027195258131510234118403609624464882141758480658803477256869083695441089065618259396221458504132806047163893781521676959290573692023140128134593385514557663555770537495067128363091036045015894352495611656989670183695294859307715221052482988241088411005796224616241570411351653862872163991920099359276698577140803538168174874776288243324025670451480113956693842534635478215244203842733564718706405591031019530191889218370778008979694508236187634809158921560926023178644891990527060147646750790768222659847413216401215949954049645987160496335205173237291914839596102918356353266379597457482250749055054027442505186643632184392695090254369082229995894128197677926913953414901463068963847668378778001616548040666224777032020311060076051800893986888018987082889554618796726154536532223080841887358734564957242400484354170807024516510895876107356852282282733411946535950074514352118301737712679126028404237286921074389014107989246248247629844076059655141348351731660234259201843020053520913143367502690567321011481584393654197350092817140145144133470331633446455638071802180967142780559647255575461439060404331708074638900818546529856388999392279622827293839113224439662397302401446193581381806007484818757601752841337004032707300369902972830583295693497701703696389006946721568779968964578482881971510722167527028095451089621122914004300531307747178223639487150092066063398045908693113840788398104265917193942333770103189620763186206515385719523573742413766201516196940549045049499133060138600191744940148787952761156052657527767410373762476042019203111604967325806797148556537594181484536671606679318305843523857464240423972034072017782598851458466895125775291532019871539338609906883892469208750553074020542156209226976908930753892833068432855646007244819185322888637003571730929281828962291922123993897560844394162537956020357867199972297838103947877293689600060143576672405328245246931523086202822492075941116242805671534353539008744999246375829226459363066766371511458941506452081265300899220421091899804308815182995540690083223161347024380569497148056839167564976349495625769222363606483965073123620981531633587710989366456251149755957492491326615140197511935795810697361268298678126228244186501727450472800130824190021113962263583872410994855704302712158329028372331764967046509314357700864598547751709581062255822167327455055228878612172717200659982276076817720296625685206605435321673182120872632823432828219407022100208814442463913832430507927496616986725344089119095866894641844293119260804169773630194310873356177473487322672682489306459948588109017148955172416744049003917644744632736563340116302425762400372153122703577624377134770915591029222515573456414150341975428628202764483303823081806192750409182934536131959739536648318610485349918085551429749848393532900652065499521812877715666972343404323499864946235782019937850353890268231859722086605470508689543472918035881294113548968108156655196063728956676629795540694040794739095097362330985956404888539701557747202825267084965145438843292312174269663074281078970961595171812557966968981438798777240728811057072381000074027014624458042856653993449003842210031598428875717556568146915177851647992304453765256424655879449503266897191215666409693764697969830424082182579147600469663143895069316913974284106863703947972915894335774571318460328545380551636526785781000528312150250712327152631792055361461875624691179821072816189268311789042469725886768892046165268172833327654132430345412458321105063902318330160649711945819967974656848230357772245009047394383194430664407095954402002225775358820667653156197627833518442186301588987632816554381641929447934847245667854160169284093913662908592603738450631613937602671815674772162761642720555333742484857824259866958222177809795888755500496825019647994699655163749501580020010120329272293640545804744314354730356026936275931100032949313533182193972563575385437156227791844850534406426679200596639992084714665642852236523175062163595142848642385255980181427559286725218308739712390745108252983320092371722357428322022779676627218521217762985280374939253813502782867485674167800355031544552948367500948104037702258178368990417103135988933639605773575003495704708620006701632036993094969330902301203396401171061831455599536947700927979691506447180760015520586525147684982770875957938110322892822817368980423678626062621960162407177537528366974874129685562643175898858457587450036650630807327736738802613705418082839866662013970641858646065169789926843455089416568771249962201840228564354869264620679477350145380524831993811274647445151004130607373013694189815480989111234994811170261467598224310506711176966406205514121191175466090252473962290022993147299087643295963971845466869799847768642469773355554467051729519127628141359707648678823603323038940474555757707208927591606533558499949023742091451761068971340234021017836536851867940078543952700477839608859089090760821440704987555502345199351839898042020290916270118734296913311901708292137383736880600046799304463100282175516357935419567758516190694372173103701526000592192026122661575751231238027881437942516705325844101944392928735889129286848893718090738556428474007205576211636142411543711797856225292461578114176563927106920812277807874198794487714993939827640592460227084612133369569399276956951726387920555951195775907703571451083099034486142556267390277086201669397139574831358990027584811397086780933091473322317022000736188460096504270865457746247340870127038521499286587212726938489038724371624860119592772848943024100939765925524537766477027877443451387437010986457606605086695920963026059429297953532177453993962497986832938134641558213742358498825217854019895068740229570669177812524222628932116090377691956405485664941422272143192220779074590141121642511829470699268935191842390221669694978657784128401923550770683549157176312885103660681354942895708000886242642839797429986913292030980290364015636863607263772333382353309809758673722920251869197046990446353559130057891361246926364406171547178255471999524647942375867113986166368975149741829952239598080147187309890366200827489890122703129180658439064495385835869935384790314818535264656360892940194949803608687647399416045935278944266162407725647221400717356129818263901636994205913502443737112032646612420978474799609985187799559469361417589837648011735545011488989183801156774561066031970803845297589723892885935336773747473381024344707416481503097536167798987435291605160282465363097380660821126716400287456317837604529870336396857595388179617010403741088259332952486696571016703187695826331229553663550384413446682148583925778231593608483422466148754399325572097677251729742663847337253057954792704229422147632865926585482140696842017044233541955445182372700066745851697545705560421616816464970729194398422885683674066716146810142970529439558878402130258176113576516130121134195617561230825868370316260316113446215148367768273778858314664834483361177708514280150896247806013373668747857624085116401190358463173483402330402519815861280810793078408820429592500425307352374952201495996004880000615717703040692239656274662689736541516810614604823494485182465054464675880691817033467733476025123097313737535615863477379734804331340221309757415824327591313864323099687482268307095655319623703072992834773170061053336253470041571459684232339290062524829774020348290741921541407946567724938071804904995309581614997588105414688684343164153972635381420068107387310166440682418283545392890532502020412729151863595489203428884261906689204400380749115623049094127753260666138722036891953140432202958366941460278202024397194695040201975676761233755448894624029725797533409673512562907498526200152883019104392395817574308868119064926102406190196964874057018777399235814033555439717400481281621602615165210730874702958933207152432277555483231047479959105733780619934883477737162368762045743062739081619736836691370314092062800537869894680554394936511059124011975568032336742157827873628259665362450282417827542261322856302887029260960531093407231631049704758970474725577204455404708853699531225616443681059234604119214858379002531906572184496533627826894017134686607475959025729638423745980002766880650225564503743927186397622294337695791340630058193776382619241665107183607702495731800882947031492235752058147649724786841605600210835822312261743924503119429711192789366021672156162174929432940033305682240522758820069102726930154632149813524262675508972461374309696220725981613950386750020956501314877008744664965146447282451892586219772869205963799831291522566897407158235558026280098035936461667050407993597216036463050778310065683425151738292835162157142917403733771761523426978275119087156781554546673008537011339259538434455499065699360999974910312846881484935298809529625547088628518160817423198538200255617009338853976567708748613788937287843872196601890706474205767811568842432380468174983772201589385787024601659143400854221722880014734978194085513616366283903956684031116384833631836174074569940067608080555609781765110659202148544366870799543505920666080623110238626746837474469854237586624823108049851794484597686154490235435796389461344521879068889506152910388501997857447471251795875966131385651856820575054078984925276904987274327085990962915993039652219170851151398720634952663394561474548410439301909625013803778710233871663478854253979091847130701546575966590471127608479623427975672452585149201147522501613151426500543191632690788424176680286248605230761723206177113721862286177448038858501936582723917504386213090355798785775255797189136371795892059717469651568822030618359713841561002477270021451163925563778638215048890061760479021475744537370542394502260931959746484137602905212897296432066753812526311630740786814277708452107500982468228396771720864962694262999054191154637934781033008739003667594626882053947935880934643041333767505581658016396124161432043780965382203913089504048307333343236213179849789918916598154653579022249900447729003888611455352769580091085869753258732613079751612886967668523534941897600386416826954609264989098141551788610217918974802006999503786568636300816901172362593754249107049088267875263049976534140663016625499001694511573283885257566539618478481311881404508755637717314938471407548832505669231668444044970972654465867490352275477966926676686366471828048496404943658109238824276983166423497319072376104810178265156670521346513335909944790780768878025269082354174178670977255283390882842043004549351553622014614542428263904232172931733855867258356379952346775898399224158407259306586346859968688982356222182240787301846119841212208714691017397320434181694411054767411625371002392510391197824374242433079321318601668154491036488697792759048544996569096885342306110601622742503431628139076592878127430393047288086938023704375750004570806643000297096260342346385315085312511217783366720409349247437188763725204695692533430887364748824805990277410474760200936868652719092796031125086804449201419587356478859151114571489507020076421436131086989131654967866879162131571518441811488504692131940675148696367297711437814287679390059646354195673754702275029471959072007860483969018594999768801642363093120416298779289954503463826372830870536921281653780403347345507046072616647865149469785904967731415472528300538908771476016904563556757854836979447571108040906056788569393425308293453132383355951030478481577228606482742556154879836671183516494096014403053528073609285670276240810432105044368494038867635436379250513156532621077911822312433381980393959941346147473379965252525026348007084706291894043066470809288227303921166963844126406919132031903348356858247783724312424048712368916810962723610348610435113133804539837088338181909966705725776120537496440248583963782191222480269362230390540255589115873782417383997186183311281577831495184691451982332227268115408498682490723936343649749862891209670780738539916017548662691273059549042578650522750845019200603823085296185375958565307580656315287555854104616059559648558350118694883279613448856693732237696062370638843326292569234798587576119232432290791980215921713187145393662074580486396184850786458375271609977123944045195802086957358260423902650982527176351139689120099810041774365784616163200804004482088191074377057680174884359190363140196010142759666153937515814864285558361396906367728063215721029845106822479096149931898468116614990797234473350375121362575261353549473201808055717033288634652931346431303152855658189542595680302950335582578519046667645124003736854085047542447175015772250421353168124912261873505159003398704329669537522452432884896805328393241183668068168281066048124101948506171860566234401788596174865257310474323335417388036999463142389374093291879543974314855175940521056279439353509339356529244801162180563888496222252880301434354925805612801622343802680615673682733477746766787410242832225423735351856107803682018484580389642098265997083113918059968222949068587315901025424468356491031248938078432161592147616448976608059678010647046853043041419858848937779120826556017742848737688800272704193138733489370439051095316386455882664922471413853881897392101314205911059122057910694103278852792589047947631180220405990494947167055998552987720193829033656914077011335385641541287977157730291632137913566067991438385242655535443432422153410752679223211984276947008441017466387456829536909979973531073686858439687763026068931530700094621948229054870790368729179860094801696949533770971805725959357140739170697200691393671859399975244251696649191124933440576220219343312584096189871461788173531220497406704854512012265185177430077442907578997116570478071734538329168958813736751601147201112190333699381831104279309500311686142899852066358779300883686837653238729546179740948366174787850409894279967538257487471689439115291190823255062306891201058404687057398674922524995788427930711132725382784076970041836521355130416496846054686476186297956655992182675835006119139500828993234169279537658937980457117746246564040368382039432505340211181366940754238575880563225643636644817047944131785529290116783815916347489522777111815007991618825325961700357862076061755788243998747841593782016307502192799218046636266709649395245776108266965491137270486325243202015606192417069733758046413994683460799272277670024200503161259061163162852410775323822567221806503713482646446686710231359970111570680158861660269378229924606227201461599058860230462010753538467198765929938876803074146863692689270724312112364532205633929116789669987834194163189512829623569151416022843347792700531586848617624163777105276392655591050354234237040874778439556030129206872076461569937909162835683894791802664738257951572027319774806527686671591747642130553865381346514234996802115840254606485495131227471822713653480156592452415432531337642882082687287750992660017492624024737565505324463316915374114395694243744037242709051146714964675799122897803408454136110803946833894810628341728140698122569906630348201337599436566440987607682636903098763398413350558209545196526241862256285422726302391736743639880893485074627291028596625136264095956652856709675429234452228581071974170396003078291406842201959609595930133710195139315064895885862029602958499634832624828490922456190655733848439348763833227111704860513841131573181288572592886970521110965387259313713946985942236149023375779178713142680828522245918795466674724731995122358193731895391561862933746108934857570986859104138420139060652136472956686998532786355413300179128601915399558755340294897369878708305571411798133689137242911011224272594050877765141535347562266742292877544824108443352672699618153992169471984834795744323183808561482094230123934659348119759922198428035485230902712632335273558599287246367637854810078407537428610507340010874189711388998953175014730565458692491612240673660139941611145291829134913835050076183402362865215296103411902360238840800911289642218434369184632002317280042114516209739882762869003019488294697716117223907002769003687349241122887514391163779942969310592673806681476972108128553667748894328592893824891645613752364451967473137987885244132442559471740984878187965674334571919780095090262516657115862555957445508269455740778906090104734465709233106379339988137538542892489707865707876272274524755816537598116829550014986805995440912469122639534630675120907551954702693544617946725110430276061096799919321869619709035164446355659886264868234057553229627644550794973557672083270303454358931375633349806111064727006274675132920104917899461596137192008021043868951092665434543960571903872923032442427716156591840556657526596711678635885770266572405827614956521288712319065473839598681423061466850013430547187471053012865359542082281765914033048959653286173696299901036299798241646345815045308413414245373574881301364612012027807387511119242504877439171511487908566595735535269675992436674344639368329448493445975469327383850058054064647987333818342446326441876648387005817867314769575398493328049129310694975648057854945945000061879685697648688311598114055284528307477902624217887940362943531497634945595730952931099373255575508959458026400154053869538118209131229776968228325046749241378228860624540549147352340332097097172504538348083774547412047764892711411312157528848805704470864068224735469987106264627756082078849411430137321173981686185923422286062510158827180555019085768224862727196085576811810520332860338200218516634630402879856892701427038307313320299700368679535773309275617326980071188477375917676538102363261571869586306986481004986470361778658223369204608182391809798501591805663503460421720463800678157354481098776563162440621200073091127941856920890272751751180428783283205785976786308491619068920114112023186774791777032417460390422029380022005285752033519970200686666598065212863627726544166681404605762719920534137695209927401515444585455595427208601144956147878736953586408725490273574867686687919236113650268573944688178778455181522287359865871857132681065473130140495290383431658547517849106160104733150751915110657896767677024110716822556120904696792591126063307167366589235864280255449626830707432899022352721253435790631844462633636644688186135590172848101379006703436258150857557008419735962794052909415446455596061744347861872230699625316448714393137442950688725845104638854435960317114108265676531062693492885367090712091997063477817446808277409472408860519150579131196983062257330317887353056734668304480556535630072458302371976547415196560712518976822829989031001463361726436946934981798480180482323886488038271562431044497123782859061479716808790405051109274117702766335592958673040601580581536870700190600556829620361514943600569158730787420959672701306159728169616547704300162358084588469280368904449617406861444653934998717346684895398664865992269928388695431349857573335934135626809663967906780128765060385127173041835045256300835938627727181502876688006820902975753801101685489190310013893740251887089362273191337556034376724374676604156404470040928028058836366808348054716868178372521764633237693021425138363171559662064185378883109946069796244838279554605149392379603541637890447413844742161481183028468035016957584516955619969050315613111500078722016027800100948622342150758459931836644782942716474769712316896696544942912905234489049777339211927608810105269940795249801654717404602803070361640007383159556145733316412985819079340998930559612212835940169756060854154538391681929161816585126042841343016737437222391509507318068942863738058269820500765699329002441813155040974996284815756673886431966711426356984082099259949279300372039091993396860684603004985224251144964498435540297836206813528816230945908659508137033105088638470204278186582283508894035322723309125245829352638538645177913244810454150995600710334585373034781433448999069478375747913590876928768424836326896234292009566388994789701141681833197935576569998380525348119535080943114263330739126202811909949026696020889106176575296043087947411951287908505807872558946753884102055904181559856427535503129743104800162665729608033635391338854153172439447169002757955983941957313720608562872038725835046466587144886178628848219024687618752984752859038506129382122831077436893166039864383246562929403390522884775570117284678556967214758799478848524295259390514205990098137099717979411422370708705331236908212537734142191220869606431463955504251523888563358252912497043594267982831317718217115148382332139699131142245058733128276729794910634020390669448353218404135017396444234077888472953643577202135436220097573558353106859195650977558787877551229922708793543032192729513527388088156950739708663711610952882962090554669055847906986309741371360355197858564383793612395553656122350756713989428067411623249734836867710811805089840373090962756147330266760113010586074301444141794152399579349758843866580711752408081708392893272974672603090382102028672212806329021589538870828350878509817077503158756799211132960155425319263064698724770919146288708061586337675905792928607668151179726337156485030155587834578671342224851450104195425956621728719711123166192451417725200662624055036384040818101144088228956859302486763865902705871993303841650569433249699970103697120430216630978124489946772442398394147787170828949972736152446377531813921564014942299311001247949395382292483396243571197417239308951583314726968556794394995858775032886786425927568727673556370859233302128732268304563261035901902596256656311035944560131830107094233583672935305768110805399930539375351728055919673157829375683918924284937341534201425487293875918901618015325444125741052552177587699788736502661145570396510743801884523685707477919231022637092011497279318228926446009071862101229945763489607858208198188999015708239667426482846671341361038974113862266065679648044393769821148938789636249411154166776529439944821945850758202920742418886528131482298882462829323222856896012433529738812133794126365140970885853072617358037668446275864452483576199037387236655260487350570844600043078496599688153950289468398339935659409836598632918929378287596978191959384087426778202885621386477811993350681831358959711447537004368231166749159054333118140589614805221014817651070921502920137427869184140032841341702095422629454231213916556618149241111444725321684053408797348009763270262790437470962314419468618440629866964019206303146673241996041355470302023737251953645585785696795465436533503169543442431954448287926384061866534655327815736172422544668137178733714641161213869463009529249989940909230021325211034246169871496124979714408675447308543582747359377705161699460370113220454457383520596073505633593290129041305582857762406747262096114325517518367549854709574968340557373079262048757652557944323575176917331222362709016541091415418021402843597183209812117524396621624992718214902347581533965996260440430276517550256916323672769748623167714968950716766230257428473651729063479024182393276286795812616064738097432511341324302619515660993041639718605078060886506331083309789539548967067440088339029138735967473169371387282335071393244643022906830063057398858237899742902223020002510451830712719897640969392801386357020451841345001375453852324777184465461080547176434742194594849939933094683914400157546794046033796238910210228119887398242430499948719127568614534037156044657171717123264650023512063171733325123956378330342991352512595035746142309353513394094291332915243622449057256425894438739154883970288350192526807305113115047271647008794571047460363868359621193973651034982861655675568611037470103751320561253034545449481543837520348718591050093417696280807022427089221581526662969999784303524333854601006242239375691283249096777771066981990334275630943598621872406744261334182959232707944575857834596864455010959545451154494348460576855924774896897724830133876804952446414453796175831955252187563228408435277017348992642450079925596106461066242045727819342581644082447129633545196231811143021047393559666975734283782628127061967406736776783046383243760018510193280101494154777263252207931087479861116348620904281688909682734430462324174529973086984007457495548030009362028904115850209894794569075328161797805388425686741316767076227324224562648808430093683300320380110465556423247198562316482984936209441603295881186521259058313471714347468770000398690854240018597105598340542157549113505031964893904767446407486838000423757663196633931936134701222461340708748637811452082728287271185280126704593404835598210458815231679474366766058776791601963751883950065687062900334696857076130044997415968470999034083927353553834939343613420305503746533840489199575692820620019515144074571772216787756159429917738760117528521741495174792040869971887349393205204400754449165599353041519964846923818620832706332525022004731038148018914843840268365053480046802083250713074803758168316900741901663827866746103759409485130141075092943616236778039900684002298099514978064639449826156706874132200807371348775440780712173976946733729697444009440955985881831074597943600254711375582926996638252222968540502755087406835363501614768497587080161675696346618814314271924444521078651665955741143333400945640988261315182700760393071239705506077197047763448452641777673010460515432265401295499208800123638538795867399730236078420664984059074033044386631147101635732461710140421867053288774007834038404540557111828651553504828862886505564136076437482408456368029140623533484926339734706588262609017463779778014635104854441277803066926388246971928972176175501086055280172397998488935049906525417115059315015669317869881730821123419080530210265282797771087200616861996721132060977596704169799943286650845292978661556502608343010273541409395413013182101475615512675930112336184031455954083416499512792372412184675062005796781517027021669568443773324922256946309090876293865952639928424612235199444732833108206080216178898171524716810777858634104076959444195232359159874461953248623663136999500898413029163510141648008454713084670057904115150818276421395208835564102574554814026304560148110085676414491606751790832368254651261268512411278894009147433509919955279304945048579833928340623962721658198442413233273603627891839745958797252350567811626283324896624786579691862165562146601404669364341959044890162323183781852815818316069451915709393947445082471091843045021249458599074927834245524413453010690955193241390155754375770035317659767420665881972679333470047544821939606976219474852271827150650946203980385807282864856507412910498368523582623126623044973842319529267176170316187585943149054547873285481825558336984840354142372481517414799194522306505077493305821277855471389571344139950924968481583503690969662725056301835926946443089275386840599305071227681691867859345659593377558582366618699320822670338297534418164013576384369639115265587867223950559087172553912933364264750517989442410277908094855494819901541610244663993313448518941609681018836312493727298982175794807152463491594487865540054152127416053506767022063934079360808973123712880883823900081051139251898420534706463118796782627474189375438749251255084959292435138363259932896071898660981530956477735093653794106306965968988950720981545757671677938070272456643908152167231360003289999343835938776071496698061692490496726927957006737677883954618670100804083710002274683358687478168075531130508819131203820920730827530265346952944942900707948705651683336546222611695134638600922288171084134337696417411170897273376065779031827427554652297650224485811108504725730838834503156944991136309076631175145505188433660797593087090737563541627108915515688035261314461068010963809624461714160289670072119338120729673045704865829081734511178673071691479934782939092032683907784890659928920977879568328311639188977330933627164531630026771319593751879073350622281844372152295721925884219166741596434839541796829625191246033479896214964751641353039474830935671577378837103770974508806498200946009348657623493411357030619475300686822967086267076968622800459772841492227179593978967158643030445558093599485232330202696981387820702732935842050491827891421403994138468281611730144284326273896274671658363630208057836369996803703837685746742408440373320761091178862057180947773064426625324050937941981005897314760777062741294950054113659057713355072146021542928000402803701681414766883540941409260979630262649363517501645018324874643796644758896126580661582489353566156249072234980004976726797185137496672642488246319044716709746270608339895553035512464649577626397507232200378441733320269712429433400956051485342073627259701318255961251027787193224855850132171659492151837807722351602723714245588057908071414706095870841640784974879942623612017451814085030779039400486595339394857241694556159887119617097927565659505669630954830813985862085941244216633163490174025496921019426175158125921744787273277390791519923829363633439870098237145360451512633905296776218006242536172422698028002057591756069514481897463933599108654108282644536152065670747081256937050866474058593687850934742957598333205684364151145504598925986873898129981374940182526565628490430942764022290826919203153037539284515251733050905172345340755989551302489435249414875094317509381127517315362058263670691549179600141768320121017949732904841414475705317036236492544508793849752008716200912185206844896746445870344220281890685237264156910897855057481456304749986864886233340381055220421456506563777613307116455978918176869317605554679725613584268744398075417433848916839332252062523232872060518333461674747744338536526052849470549638420179732984293382644865232548672614543378416877163763598999621174085926502306363561810865802572247193880593414329764527874972767012772110163066440021251515403280257249945213566009951573772787526277531274908227184843009679648388329665703822154677453947918555461923359003167772021553738994055729269829357728851343726646453124908100758875710204941237919426239960236183809012567010033166761237851397452282000306657550939110160459711225692077673726343781846667230496012064989569892128321442336953791185778424253680385946064307435931270263269502481963386521966944144138666955749506534512163422017062058123877180729356367659450257211186374925477085519441581774337736072246831124668735110039820261455338290917880169729868380395958143790639708968550773622101329482215301327383961234771536064621323859258390674544032624571722631994374023796228804678448154020935689458588535712603149466196345854069676276457519336087920409649538096137259527528893012336496025427799488330225565437795965566360196141434679321827794070595311784679546318734018448313165138445398966615067191493053685323989631099927661591092979761972046789192962028631072034489572542572591330101585477481966419539765400223071791874375707583128855084058643741200372400008179187478843553312404368490248059508140059749873682174340203876905918978708381835887609209982263828981955738220400166904493429419430402225007561151961332968623367403643941953956466972292843503562628185059626521186277673073028387205029494543024093139889106831798318074095241494400976542416854124722070189943890101519579490875407502789229974186419737688103511008794443631598637379810373186316570067590799297439523903423298371930960406001118545917751469197661212587745333301018546378399000380419809865808474133185423599820188263965611762807530078027493584292360917459027587599799615182537749490911434728659170686627863201080661808239407837895968345708023881433787188300212734512090907355978629408405211698364955525952462619791413597526082533728728726106277406093117805692764677849683435749776270072816475611544540199922558733150134406751929564368756274962326833754757000099979156920817744411095646448023755649099936642450762889027433640194896357505209009509546840784740532722494582720625320850384355034956428027373381549792447927125179332161795571068418059048114397120936078090542568053605090484341011183864416022685693360970168557061052394762355168769784037763333916091506184980758207716916617551268106009803777281727442611338056096137371233422612203810179057657828826591130185292565571186179187321792869120657889487656943714202007460639483880155818440933315559226891940120134982286853563845871700958023448102224117500030998725426800407415136355170970696260996755871592804158501623833784186897159888827655671019871597379583267706019792662618840074748699015285274950515356879059257909262198081558381298525152512564529185272247329129193360013398549833005364005433508601220538628075251119480991588185171249098428209265693257388543312163275799091624647773143179487658291100871232539941967495908539152256281575038985048309730438751809220672099975369124739398053724016760724518706063505434331841062722891029292120878105690983606868190845586944992931954264079593757923344707878840852416337268720288649217630825550434849799983838090868043759941945586917909430984317555460941617447832238196612031585884362373338783858001538260246702256592450076312302427491471988857444360768931754182596595289045567175699506490642972775066625953045467939739531782796048442051820813517245275943081210047852971128956569622968227260094205036998668409003490225553970196819873572122823018292268127893406475084645093267866128620774906286319304873211380157540391786180236973491719767406291656078932580880412324757250319762614732066850463840931245769202132316873394442474625790617162103484119958807756248164725622671437423642352754556168608566929530516211210107603349232940047240355121368041853935441799034496851050798493567959517744689016991917370507075865657745197436555592200386082817498687280457219505952278686805881782287034368015695154582808925124369919926028034195095276035544592582068198815040048497692941605590790342798637260135157188244451707453518168937849095373757536549526752162258040124015392202564908237084014958472160328263018181024613993264112261748440947447542968137167934734973793881825617660722608588093651547193798526347849670851352127062974307763523405444954383836096746645849191058342800488399993923066580786828918088297646996984944564522382547021812343498108839748790212988279697958514193320135042619809378557078547583794707577550423035885431507106284590742423820044161687660436997103127604141320666673411918389235334803272909096618889155997805496553655371428602817091787514223465189171831200637390406673561086934423393093327732005183955995200926001256793896433321311942913488394053080867865700662905691295106298417767457358995046560286543422302286092960066544576472587508056189773988007404525456629454726627263572699123872447253793754713931875738702698774385703273475674293240286487128834593898314131260030229468093431726457274941985646459775797129146566205691918587082479059011204628037031556266236259008377917700586486222249020087482061793526773166468568717998508318365257407810001521041686940720903758677197972023644219189574451150686723174034602896716101623333641606915666542057559730943008748430317051061347549130666493011743196189985004294210410545360238149467223361363683389011028411033217296131302181136048647030772986207474321018647295484600235180033159595325321624842372726165256807577898448116492541657658383539087688860654171686902676655741842541648365661177846975822216107158140165489826816194578330708876394885809726979601177235161231410329202589705326074741872508774064151002327596487619763875723554830833609052431396813055228375372484441202689265423515936386664716172215154929359482254588828421747880162422108339449219303835034003948758355332117920241849888691110765957228589622689176510657326555720562154396246940459920212571947313608990575839775289147245979268462449214946422144861966819263117949012203681924525552669410066110041379320646337342333583628305626236236643394677494277723825314667060945143366768511936291621474349279205735202165296893713669645007917462430542747156906682181405344334470883304037509552014497735613664474969923610938002485651721444152384439778290569717428340012466636683097232626178793258841713070680657331798826459045333740700337854063613675365477211096624265145042747113074905504932822096164320298507165159675002336485346103816833092414205487889437467906749336402708906444879006950652602104593126995320808452061547442218456109052915698936373198550147973031951938268568725134222903344600179619526573603655332910784419408364946106627512963909875836780005845542573209881170148229658833306902739648871952377168416730881849274210203908289601612285243995787761809454010129161341533083608126564236345523170435668273213600623401215698314761287981896461338510372216291200937182350232450293259941776477005938815642753477704686892179351740153630327734273205109605640849301554850903446471484638002479615800172526174324524775842269685867753952220068486123229888845495881067306605277284732767514559533085766469170152881565647924863301028605784386619217690944251872083846566995730880000336344707733176579613875469084875362622875615380842393799072164316978725152004890699751412610894892693270667958959667306585227252009274200918295813350337614725292107769654526785211922515163319709399537355746833586504097963709657268058685085250452112561378836264559684660505703527077062906706291689886665366336592853357464035986675286757147875837908901206441094894949617369042561246148249026781370376959096968461153409331201771561611739694003545712503374848542872035082184379524656940434821515867600643622902277714482494743715795293099004465664176786081255761583176786272442008173340154359587636015284911226475726851260366167902629358297861452735642363848322624786438166183429565502442210525277252244038029423872660309558776498038034116687000986180557002812475228160343289248812438476394456045770824298563997329861833599106366093911005322251735878081268702780394268903329960609708164247314020843969871822874421661882784609980086762528328738295777767478043020353108506614776994270856141350474746513110983412841936644128030551325257069282029774747465410256176092441286379645422575245703485047328748557726655834514459035903738658906184075445725610516161148564061563475148717783288466467703346070015023696718202615554702302878602620807067304496167343456293822445858250031392474866790135652425722087604263859354782864565983878341449417985968432564012698185980951634997635876603948789139788768713736707622404228282222121863197958552377650206904258046234957424945988437286627397410122444334822242449848716992217769387842858044853148180260490880253135315826067687880125766721602014516618219499598135518611395192755648810258016721389116886276494389910954793983750815251530828742538748418880829032437794649313155782039521937812547008126435461658975034262408036478015917446206526266526170179583777298282718974834664766585807217080526532259226462425517119368590680097699742731520111633326240378652480840275613505986985421631535981917864608900253580058950961652306436175137857405883910198575703667745565464787982919911390626405336652817726225050414186492472250317692561452906004060361976633161861613159700151890522495287208954198689796684564951517843963412361394886357527446851197862396080310530148240125021560047353219164270218741417349655604629814034242588373008577079703484024025416820779966386832356847371307175393721598117614445439068326429988375168357623347174334808279637271508315632761156490864557185101404199761882415612472923829345199067996134095485219281040948543185597954901195890225885513637869945160982233536837667806223618893298916725565416536243528314738463499307379446212273512697354108636108857293714381393628765483622817967496002650050655162929863226670691003838190050761945673566420628507105652502482599520456384764184172817065243518501920637851781800366368172271133837966224715824204884908199694981715449012661245660241940303628872045564439702154242417287098276966644368593934551494176225803508026211800604635894269865426979522392359915803293351210182033281365369273303590497637092302995055568775512840537887699950429724898101446392010152031457425911916428575244174862308094185935212953621682194103620794218056106330448132887442344387907936302396166506467570893646333834804678001706117172162617228346059461182394103060037800596307689153872188111961125415547671729307708015717287975185374033956743383847238923794860391401311283444044570295302107517078349771383609262446003641129399490519195011669469752051791475343799540169913685307462201601117574385431883120756775070441311506746745367488108753417236544591792968502517741025731877984936925156858549293197353846564709934699429568583478843910673500676748850000406965721946548403703669593526186549804685955475154092198587763060385751575763039288383104649121100378950654643515987422206341969091288855161805865701090066274038291095941343670848063003795050623658351553926985781372645640522186274876785195258220571274316070055532133102811364156404474272409947668895896087274137004768851815087105977445670380918232744843250553833175740677070306860634936957999777305894367907705533675323369645499603957231307910887922495504943772000450452403950987801814728853132042721384917967734157594526057636195061046534397229741419140870346694778916265777630733352085164023575032432073394222511649704729876505291697617634236288914927575100624249273800618185421312909578346880380939643461622593105508967319016194947655951492019243864019456717675849944297962033327583977976331226077085726633917537486097903911371155563993965851921037842377258664354500162328420472067699242239616895626530040994999532165060003710880042695276757980356050909382602443078305932073425916582609901409887916182421490073571065268557061653312860924728285509220977574099369665102250040443137530483407047848450581957570054555032548628696875735675120199258071629421039586568681046410413541915339747701694279348777399491679648806898479682338418978487534616855994081569775629572904583762644137282695486943412250121497188461537544767955161331585947228907339082871920155831972732536116655126950247456528506702651725808081084322627855374917199628176842021747439221278669806950197051114304384809706927529023751854867919451342803022750955224398163341905991889057011343886387728355134232895016179460874325461630781088526412738498188689789972440313807973189161898442592811623458124509871425941148528943363591506508275486741709202622706408521088604621589881548522368558449094387034428181196985108895769682013668855450822007567792557303782434622615761205062005496947506009821278982381653635526751924467827532187998859577496510298943862484199306769526394903772818670250852109488714614187289171621714390911739895309075478766001908868234084238842122109914719471017359476078002444465866222852202226121872902234148952078612503039304120327305425038618944163271419658165401296778850501760833222168083385920746656147500741757498752178045606771514867235947743148846051471637716363778842139046185064554892292822459452907578959297752151685196487462867189013002374675760327037460324487932572980477637679489399970097648358972705270370751036988300764372575298294047583041743301308076817860630784683428049021037669065273466433427458973014100215376552969979827810712572673165704982846271372309220078309861600434843760517992776455860798357972961459410468852896346082010490523665603754637942261643655032056789863713545774123201383657747861722659138468812802662002061026140953148993229966186433761707147529679716500860996866017533618013490679924362102254188589355060514955127858173225803873384001673626104813671560811915799700201666894834612669029438986380987089618485023493814247461914382716133043525049638132438306674006236357152807649632231405803824584293331371007588859244904378183855379334335126556679463637842693242103597554502727068845556648889132155019117848476219367905665623200093607019043129197422772017965115475342087018005437749913692750077118969201068130754353855011748285385981226881092510850990640952474745320136558787434494378318629889070021308223388350859831490684243108350736639200180068834898763168476362518384051250517625664372148033053963192328911016326418721309254402031219346789067110118291910540120669202133698034255613289609915048424751082432630825077547528387220979346784148849800350969335314077041168897277189610005313023618460263992956327646000998837252280329375916974888761379220861576280478911776750152528242770017152025297972397691781227382382283034227921156525971840169920415780930310374873040820391184856021746680656108902419858104136614420325805851116414165796893811520996831884960584176862959946190653466347304810949105096481772966708935787894909994599078902690456043629834140208972288644448771618756758063847997221873328124897740027215828037060572817445003682274640545552257718936929468803074331251541701357459107183546128459355591215399099086078918193053542161717277696272287142745535119589353934805626087018871026983505890051520798460848784665927692037175931593388861767746185282311316403813472160816056474166851071149874835563559388405936302579091314737957100990050811759443761138296338093290271846466725457446832248966087813199887874388967627927647133417724527865140299643517954652433001179176714498320970078732288873056449725505988533260359147220145981459900214975700371325841848051474144283288640995232193294631038371570449840399308815225168207559219668822323355454828445086393905812472183399014401562999523749504154924828986431719975908034956050509123243871115410452506579872056003248072370038228751132671630921836462261262263399307476969626482945318456747894184966159166114084242277778901373273489315189452002747322532965427558039076725742576441918373758466596103977773809399323906580497505571531721586533358536899919059318121629106174819522188661920546293496769669256391922976173264618189885579862838376010743084609149616166894970763666737182836420103757219558759281554108831597023883520362790772740946861326270895686083796408949293855971051520269367755780690260545146192762413502387004672562804872944880950148084304901315162334689105819149744693377104626522624319849729421796544334389356617572888637030851806543498841692077181492304428773527667933698729664949669002746911911100852088348406176891693482953950596564087609154954707316352521873157268319470018765220836516898213619924129862179799128210775405667131816758190270429844551135202582382436458094474353253695740497770073153957037488488338592771079731763500276146285906327021025826967931500376192062986965474633148629378772186266846260667816919601619355006513955296131737193761029933760034778188576363172881941566043600889873437905636090760942793787806783838914794731164456570697119084416330285288952398780864038257015844602017752616661835632004030727024904461402372341356774008460338266284458507348827083762641373251543531872145403430213770085887259994781058406455112664880106800922069056049551071054951422411781817308780412154774646485483394688162873497265286151852654202816510969643957035830771138171496970852678690852991779230112206788070559958548090668447252818401111518464371938161744501571458656814399243437417733988851199468914660838014306005366402702478485977499232563911160645700839872540482642435252141807702776691957952447172552391356635033367799423154900322904971375032079084563708217959377720297699105437851490773960007916410438501355112533640000256745251399140910630583345720441661396823817228501037129421836066619678329990883693581528971666223164814752410567558674676116634504356751418532454046706196620931976687676008022858479000936221099866094418749381365103684100366956814228041095664119231810859997092661618478138742472934429773037603701837618914915212733021772502748593069811964565584913956278702503971026692405760333345474470690729070272018309283538947988031410368695602558977465032759628771007971280731100677881775429652342597199069965107644279895235159906794674588574613296902090189436650289194186281095487701968831292916134624897580161126337035193909103792876421100446631423154055201272990315917587308334008476208067687270915628734782717133477150367221782994533080308392234061698574944287877004005746761800746153816167897295009895684914879822627546396080694165214186634233953267066973909079547578206327426565160610240605984620215241460828943642169412071888750945073729348498580747100414658881528599063269658926669453223582894993591105634020208274969996210901008215745231589681110551755275686359702633319818004872159613254139328386356924198362835698394161280184432997973486557268369830869417174317929601990674389519641404818806927978856773069834169759997258930456034603624334127143830466078947952009736117371547497828140221974145956309155758050389983621697274163940215212508153470755450845532963976412517511924487219752819844315558265702999954528642771849971651067693783100998075507777444173863395518706286488097187511192381935412678042511222389718237010059572967280454965593837440702238433752772120111875877568365961067681384981654417670986144842259168690004872803255746290400975137132502347800846051252319595691704269804060863843568529452920475505801757597459298676435206461549071437603900294052821920152008362626314122941149681892260678784968177557464224865392839571343872041891618716236891295283275172605559698898102658508635542601374115174810493970367625524232159375838726454140682393356918547626920084410142743276280394994446007487118643371263027807930757893949147594321950917094887967232206409584033507707096805608233132385891583827111326075166918306923979148595641250159140201447786712685500050552682253236094415650085795105731802766260263667963323936943833474946538502762850833313857910507834386313743963172247169608154775760448606939770123190141376508609417890469858598770822206015255382258361993020614822247772477498929149059391913715654396521590641815289110882872089465567205768899377670585208153667241733749807813015197188895019010215906086324501997032258977566778351659680773524996258427320461518303912421896668466799911042805522667803295428214365617384996533947847736506828088064747587978749601746670380392848594545895128632382352354873741664044048176812666461874618259302344702275286952309409264796763795142982994279480731923921817356457148677154438165607597024173081113940793525724547518541085169951308389229458173694318459229017311471269714240240964893674753308273681466765560958542619463391450342585798390758154108195248916614979882779305151827012738641140731888747936362356738363546654755551342437537277885095655628105075218961891499924815098671841590839964751979343744720266656793460438846343751647687948505114929801019877596506021238515318619327342345169762019125031149028506194509186477217054906185161942156197085452892361096523311987707918041393541750465651226002660205720560361598481858068683063429141357530921726710984461020962454631664396370506883373737318280688642918843410068202632333703958090932674289788938342937508564176801490435506260590810058956483872892681622424424615342720314002624184609944908597198585830929383718578637363897638342800771819382305680897645585028364096059937905881861988845927763022106994951317172508488065329605366404282526646270370940617776862040573430086749314811451240482948389023573334816195364010736757898553122371983603835162877318955447931889308597400994321624871383014776754144313940450008633008657598442454631963923435401822401222355774116247687589473016181830869574538661718449730996019785464287809121429865254279105280067111731744454721070116651620456342923946440439711948650707414851939697563175001963094689199467073606575712131393846434579909043465257775547409319981304386152872991440437708863461436050888147202096162097694527696285861734788067104163690241032479917885764041259188878138378425114163739981502741170050855481812741408885011368772047139514295550796224348183894760671476630376427456176505547394608455540381887884902871937111199016083415695965550173814718519149249637491706840605995146350302902827895708680207539571743040697298495354580091079878045466842230137219064587592744487486407202438229375578410532684954941756022611629300974590723907776831670400494068334185252872907427774855143007216834014029136022972642949590238395701857885117607617188792630674409457699577122325295112993795405833185173592336172808003740425480525601334626633871885922057037922957001176280275645462570047978818530004947326672509735412800118838292486634949365200241143082825798192065644254824471392724180332073625561969177577095255725769797064660103508914294404397794485837487707423201830905904132576214621779300243023464819319479343329603309176643368087192451663062833020141360276518083038238871901683411842002247209644065069338674725209595163323321360315936393407827826538431961940944397777099269216060919445429854590400102806242691210373659726596484696783048820818556967155824987894883352154237802000361935547932130799021587751172464509358183610437475253169319622251470835872200531880571807019771109278112208610730492065656995443678274734044962566707140941567993150143450339079367273922469805193482653098681070192139397737777825311763512765424138408228700558939975771002666548594406865818243214644032883679113291454882027178790830891270079342044804956533462319067992447153178821919515517707882481202959883230184275678509960870666369792292270977368779034268398420561430175623611548865891203462336776302691933965107214064437053912203783994789021994205309906827394635824298739663009487002212083974012775904933404008020392486603638547523444430474378616424669729273703003827995798845205503603983910192093680767457216244985080479305495171170189778507210325585961131815965609030936765549521519265489419451436004699014082338815585433435365392840493650050480815028407385477838608617640860412235907775897060580547997896737494325702799817780765833088460560830544979235855113784193934966033566584541136965408104110186557271154330471937999129324193583166789038906576985265411207337173732512388551182543398663651509122750705032474578638142401480336517357457269001270549235712457612606891075793109916141727948126392406199280405309241824231341316056320919918344763937524429112905797951860677505295743235642411887311165810933530248034696273255503924202702684008102361797918155449089537199570980894116251154659346534716809993286827843739604820011350741527063989876924290928965716023429044495130905037361018791717160750799747506564319577874282867389249081883245729587844470194175240786526164307057881886286035996682688000941195976788369783247586069665416302876967197873865387495821740557517296805794314301733441167633859744826951939765685958367728875898206230849058664401615632602692350197592752096943480872620805123130070533019395570489724614490592938038399617753615171219035922200119015702005749561856654631051832687688950899791864569264210859638952181436387915156656838190930498826419889470984627518225735692346956943363128947184295563936319538491960129212630370589513208589813109037323968820170776865579244524191700691650030393650312279100152755097599455378935492307107773143204799084418276701848196625320250620128131216201721185492855164657735539774429952790974575778597495421300490968905395265877901207157366352415447505944628177615556696406540749802742296626882020332553202477631892177916005962182659054637656193650336802078263683664963911412604804386557926602218040360252695179060450056130201547129691818167083083216115291298387955046285230065250819720478263180839118441705747939126890286518640602863433876946204934463537656728777015642076561397367175239337562588563670680376539222400622115552364255821643172379327600452988154847689743263234581483311641734785508892457342262715191861781721460885395960247629424265997897303781869938148327453588883957019034221283437843653097221925280516511195603724357274550519497494839511101329180328220259730562167454077416153449244904504804243662434414406626581083522265034577746440220082272335091738290576090719347371207118187966895921073739707419246606120076441594204620294428381499750271880345503909783611891715555355852468455057621494512243761541700797836743824081915165303999618866630163864602374531779443464066636336165909955140944127499002790504840233128434405350577895810564413559949080976915845875679286020276740682723952836279933682041617971592071399424987703467709152231856888633326630005386423783493155793953054463282348477984654134769849068040564573271038962349281852929632867375283740439891136000430218559704346474740594198943642666947612181496546414953571341584432672173423923752042051572261953465183703098417231599094047495413792634585158954206543123006683205359478390365344432849121135240689515462250390096502527779336804776341455714143016875451097461391605048920006439171681543765378119163139427578980098541270360516616055851223963175318866098299217244478586478407966794839866420325068483381561958985497726444776264609667472628213389364509197288517098246964059105357333089248131685848400916110546416563995287367141555571678221869027505896911728672740714351736367181835673915454000656569784026780296998130986108123723045624578951182185549741940567973942407735723376101571486140231279024012209915520877418657517243189923561343674487626882086240857132800679641645865465912337611786980247543134121628531274936616515728223695278795211850009159215437526264649087680098390889361470082359268141775984388163816385034457380442549467743802885366674456954173680978655492496095472234896483453907743836963391948388838520256310991531748870978296287630846405727038137145712458382743483793797098601407048038462994810874686701013130106341796271331425240138061601628276358366250457090750027284459289350924531552237059517178061777531115240768451140832923487635713509682827985271530280960675835079694271876504830323505354369464349842309066060830557584692472203855653541337835827573780635661023808815450145355121872651171163119784986436316536531872202977327735657444559399732355828009812893526179024325079889332203291808953008060453098205508029147341600377055479499259958040829777661449583956487651549432463257780488447149984655983529798682123693331870159001077854192386718683978208536937724051813506030740593752894434776517318960875741449233638175453867358436469290970858897729024371735030651343443051492976964514790563796160798760820345721586688578045645203033468612083541333371677420224331030271873680799117187306178976032175398859195915348870223498790113961759957896939633810017943761111749650540087233565377612406653903791328765317023200643627040107776447868871846541900144691004195528922451471333590062702919887197922145554789380943594100567925839525561618010715136860566468964881952289255342744129472782886784704614546920947998466051648957484837314383097544319211444796393209606934053020350542343670137318409626248232765996875050611280901979154022372676045398112014002338029162195542640635198155999422702133334223233756621891387151235594524724117617530398239671907280715594976127626436247929445553618399540115175222340647666581266241892658586463223847072674404104143711187384944016973781146134199574025216903499760316143262836388801110251140469338741397526658773040492917803115992582238535784674495698571200257459110532386773417588936703750697756939137392658927928653632004251609831128354360852324452891624955404548303100072675341091507300521099061533622750719750216408811074383868911642612504023134407802453582721755838829594104785392727792384988294298463720771943086968338290749062578290433156877685628099882221327226034189102865516661974863934298407877227789979074127475658197620373339492676283268585686162417480511157364779238849605859875626090032975639548694390201926438732305879327212808681522767891955139763008368332578875706706260084429625995756563083713793281740593931851912959663930037669365273694970836507307485883429850890058027768974622067601060951765185854605010654996119548240429177003643151814282997493284555841018767686507497841795393048027160799270489375868661934909070830228775147047256140303910097262617774727806869982438678917680405639614969882659241000853681232868543439074704612093521677619073950264817854159411946866759754741827548487990539820748899648239111842331058115507077768285214087030655140860685768157738098520047522066393036880411264638910449524747306392091605450755811244004484883884001523238889487924047584138758026380577702114951548230606341568671566035715315324327113482771761640735647503438922587036236029198367753986482010225653916305214820941200762309361453208946941868187189595319431543502495780785964308432147967214356894369045459198877784321451767378040229629401615944427993417435751011917695388618009122571419825039553637578579249210024203360085302110340002728302760292101677724993168257855036203007775078449951063132418308860925763733634897441196363912623142710477610269406705045739473155309543289357931404776551527442934325112910590847854001985797780621541922860605314125621346505820060582393085809066160680617961134120287599418558898998862596187989783425861189230357768844136144042563686233728368582791436141256220620151405467076645355954052486918438407245510395068948183900460263700855502736849459416193606830948816285443480799629480810940453275993537046794533376376891195589362601405622584916590583839845626007863301492898362270252952055734346303223062434930189756887866670137094750801500897022208521609229279623814900407351145583106184301485286476999338631680047066165998807576924290966759377640817362884622094750118751718123108750902462034630902990582687420088354985946634759051960962922310797677646513758942976999835333713270465789097586044775768946941679761176552571759446007490880474110340749486195474952664745978308033248072506782402841883953868896884071761899225340877857272054720244700428352623704347957625262736354527054131007332529570609329776019365126469594006458630102311857623128108161737537655922187372015724059945922107118621294099356233907500089990539108005523403566937400453754157295000952056083864337597479037151961530787313437384060787946959855528284894194832008350944022647909470427113958323694875406874437095525198500813564713148741580245814178486574142712024405530262299204135970136506114001618602177833225565836404117455628221420775388796907464083375554434984748231030045729692715731466271406295345314118675071170153262416962863930746875384870153624806340785149000067094978532192274613084619474908403298343525544821912824077621008985868300322737467194313306747939747861397682926209791997319746698130191597554514832218614004517236818269254760027124330467860849306134359014591548138333476332543057692463950034662021514562860445579946967314979166973189647183086041026687946278256687657080078802866174075249576198546303684334962747460509421860925916022423956030324319770604114053449364680892627640647324917967091210918431695760935072703482650814425719712098717546530099659253108412249745787661234197827164671141862376163226771177543670763851444941185760083515467609315867794412711170112537687548338675403996862712305057404237722560367068864627673543044784924905550673387410071071772169873860276443340904046748313199342359462956215887657763586540656751799770531804731167638105207248889841891153617841997718913851298901736498745598826846912651480573450252189194800546626655247713446893764020715981907229204920035053337000423236260540964584868260561781818498254875110289691327677330838734443817735541776047603098448938656155374369392001023874929284040647312542561372828802663356824373486369930355719164504664262959018427886266883291968434739613495567277286325958886379476789940319029361799591269212043402405576746420838931544640928006151535242593834874632386444279786988053106221735907214780164731157049188788753885387304094802262350755276436751250178895991904755477547183183672830024582390193329132503412763942177978587561337306576592599164368416320613177052068526091197714199778287578937948620116605345391964003316839216083555380417416869913446354240327449882262048773815480097485057765014923230424461728083289523293468192945792838448707651266571639622488108877772800969809014509989281225908644635406478113809829635066074824823240732422175720788145773321580346268869420463838185573856688087802973112539313746866551956674006662130089089695367924025102363169756998846336088204169140976564198118757217325343402392995478742878792382254268197976272985630065651164666570579639661688823847385018411249310977365602921566562610268936616101289254649337607288164180558037358139168718306184648439970146271638844270144174834206859833383317391380636194515657133372309427887562399983945433314135707063167119782970709181012587427125902221692125531716495377753492621930720181680435228009752510641736022873000308532524753299663954340027492567203779104764569993204249776415435748854394926565500231319199544059895790841988846805573459666621639028741371210541140089457714161425710316938643790131710775752789108257145441201627174246632768668655747028674851291564470139067496637028710601956203477312694441468043552608916624754870597289980541455758344885573657549997640359297218813213374543078694203325439329469762470203351521024945931665578634436107875130574782126477174449606263371712353850771877886218341549690247534005575536683666809342144006308531375948999447354073619866288796050904908123066689833393435280215260588533330066602241836413725434543213142424893985882858527148342613504638443547964201462319994243596236009730527608399846878997129798768655726809810024927094502961116654319613259861393500133359027695681248001688169872923975453115943849145889288089460631560890658825857903381089067828825310733682743013186104360972814801477117273804269834321537586111192055633376883334690661705065420280460631336294165962603709476654790175438360751466910505974416271824275285987939709804236400608394758794727276657676154859365249973591040873965463198275120693133001969342259649752094220991671754840763005666774034687292052110344416802596743459657809642659861428636404974526738971696011368441715961952972262971063147972109389535908891887776271682373950970409279259214460428621973895814456038300683669847495357800498397046858616884748095670313239094519120398420559787681529354901634496959536902153266287242731710762452211650504645139834155103608728629385229002023491871554952782454382867582582028105430290533454833095071577385516547126839784087051659981213472193356433600742042878147311799546113187837771145650215845220183562858440150264615687977724413435976677596500329758704762586944459410276256155383825892952146783912289590349009949978098162083689437933417920644273780564818354585742757282016210480067522700604896649487676838117588739408748286851453952130667446670125579948440714386529696485817823729461878212132656264087995005077143576233584778579618092626065082756398686371373913153651502518789395875845962942550296085765926320578347883760191680369858337430720779935736082173900977611838118191473179999905299951897228927599747558639792005869729929423562268863646993426315244930967569055969385350641071342326307489916095625950418153243091243896634384797182797483853664797571431856954510935440074442618184173845376506090814809241682550696980679206803089036931765485862486915129508463285672517631738671367852408059718006510367948781314687175071860028444174188709710032258565228461654775345078798343883870081497617188176901309947769377915916838327903516221408672393727095376624700649749847675944229797080301192618545675337918807590866466801603066478490741624467091695928882052830704548232681779392051788099343705622124225103129815249326061634987699623881738094447029222074623956823462299689675967456530692343262862038255730514479462711089464056725683915609986565883587803223194729797772198615208043283085138146163256150024900292751100485729264721469333120966863429917975234546174950281195660794661377977167869899369094219555559810500554943878162867400468684510809296631908878236185719705305041881917787913016706821267968332854861632349877756212054749606091578388960131253386401961519849901899427404636755861453147141240297710341471392264075765556585036122697629092109727022064525684226268657914841839745559008824663177002376081216942060144811216315793248827401062685532327270424269986490021065423559145218874884475654672986965895801894371839498650718142005149177944407573743585042191335229745657948300713025595572993493747616873328671363026886164368135194462115496042886356431757335817558252763036306608866922206178016193251956007727043342815371235076402477522657481511394664091279817437534382130374194572672518602943870205333439533576346723905130658661352396616713994738096853249680037959748405966578589459973185651583285898789443862829125744724868402148585052601000407053654075589142860357971067189652917881999230677110018813209728322113803811403087520346214033842610652357210057899640366765269116653277289220194021024770749561779769841718496106443193080119374335477837350886811322259442203086182102194853604866654197908867419051679116093805875328270390423058740926855722150398132668349844639668995013444958197364831988993253462837869195164030107178472329638789503274033383323749868027926547786295861919951742426335857091557427152051102643625738106526261233393578207788026021193284861949876434894108071853165061902443047095625278798852743020905803041042465629573447222430224451182443435287085034517044672620276196334711522314478637375067343794458055684500757408053955635461211553941125800563424592053812613825962276354874282995663354435715518852287767888229012477029084507161622446975328187613158613263216110363977400589756668148538918456893936198538573600929897903816625901942668499083923106864530743991492538274719723887131519011670503164845260384769270169660889511602532945478172416036774495093814061690642564395068860539729777789282292854069999315591821293649305880629046059586510820061127022950514103346743388341117141138798483361400950382968985737327949329000097400347272243257457772035782730435904859955722863071791854455283844774637072214980213677219302758319491184595808538070783575030797634481378670879049186043803322402236142624777962441556441631611575263895935445677356717055386894745307779759245945140962213947227254789157977607946099549847254686631929058313790883546386532742900507528073447128823665271484872098350472169276063160796218258924490835585343019833946903557382904417519083696313559233723162402948360120104310264135718186202451631017458316960578111135702968864381918129066749731774480518399913815327765783198420953139534904651904971188737161035773716417174329953884981199517401929343195996507770543552797179659101832019309386251760919695129533206149385281776140821968302286543018758508648554780933262453582058397891295257538744932810474458238816303375274735965770232702126796260365539481729981611747778157331896236708996916816367476596696345682970787409223534827801893149423660011119640384344842941933867314884669703255778123032250717022604649999765961990682451676672119832307108105052514357509800815961997273771455509205679204557620772395009922206480411646666749126931115747368168983554174504067964979527879603544606001088297645147887150772348480656440213731728161880671439180832339736373384648117420172285642790289548758393988813235686872269872237538332231665617101731126771193613888170531392279079208131097507002450776566095786305973615863040747342577261127503833747343589802820080666711853884433545582967202320422368084896379449418409561239983164166731267644135783756850079524509674057960072849033423887274471870414873810581721169078729261251932623327128419735811638919862170792407692948157395398543131911500607993244830760991809800438929073232866158082590404016622270126907576339886724641404902014865819877495371362039405811155104452668081628085340104425891929019337772078733410747029660213160984295218732335965527009100253681800976675567540036208623474011256951315160005943102937107876449763142336773286247745288097667199826933655803197158352890436229204356605152658284420154448953790987445128657297370500257697900797898646475893855984511854874640064061060120626824016291512858920033922883098848402963259825469546423776867453650173615839291293100117796426591657572392880423173173266806311806639237963606078407931492607808904986341825275667874016435234818186519781261227723657083371655760920407015772054823928112723230267568065977740743261614678477353664223684829802439384684619482434453037787405165202581000975286814586015045505036961024417008052024563971208209145556234103263708521668343697267926115676030334032120871301060968555031500319409433379106756864678406830611666205915084711771719122177000440711625092570879169216127452349009949680674078003547278660633680429223501837177733534232754474169767368814055793591312015034645555514353739998345273780668607855551800881878334590983651442565235534681048600273691216238472375487116516985326611514833945812972189261915372551761268549775795367610113780482329014639611342490505276822087331398773439208256121856149701411344120182473000583760614995715812327327455155294356573512745738085043800560116265217972226136163222697060876361443059229537481273497700321643600289098416358645834790048730546295386242289639401281236579114293774729031275987067350903864237241992546782664309826952964636430032902855812131447836418874533814947790457203636188337160363482532257719808689134326275207217252340600287934883358995515240480286457602361736515675862340718807298407899038846924242356173633224832644449517908807875964183756314303339044460419781673405464276840658042602748608363107112920278838582856760115308018736152439043234603595801374849593581134257871466655222456526827742199063040271104117921678557502671381632879930738536253377720069222011598305564693256063391329278469346437277122682085771795500354239084035622040544686795195372739034007701915750946039461333060767766612582280055450177013200956466479538535896448112343284767950162424528034577983379139040340585923738933783991104233254725984886258661496784909284902866137768754115883552383821984954968135445457439902181289157964969823123783318803974157670512266920500075952809021224961125368129464845141401396751326794211025683818633366384856712434226715060064242982057601471073171589142921784635292982422434801711972691894309688863011324829107995455282959017729216079484966729355820862273615332046440590242198257347463114512967517699722654270279736704409606253537821357064712826328337385013139859329278579007012658423797749147155216657007527844657979345240979679595746023987420941243377524663968790652371676452279245388161988541129415605744665177874997861165212368315254006571392249559607756127124978423802024961045471227049098387481966953062955880090411715086991108901008476269190704860747152763233892345770583222471222109570282559379978121084355154411404240857465567342668073648343577945397303184129016298772791979481540485704697772993089180723469060696452956703951248926818723187735608729966447334607059143857924272219149214877972240700348501076686244955949555542304147178652126704837639951291891074402705689709914200182557398462479951383508466859186290649912846675250551737621768792549357764553595080020596411810639956396404580541575619804920559201035545820037377415098002264423019845150620678020573687580054115631785375926307580188285172792755206373155051150802852893962394603425812298637824354611794364249268346804657462498676796125645720950915224734455057767078474632119730782872459628601212674437287552725556850607329121488826417859801749329953427763056427610784187277487566093909517316153000673503233018878812554841513612510254556045397835140644643948969220791906674388202323759859337827983523963810525048826049319069934222523749417470306970738416428289389850531926284259992019518596120252042953578239056488258420290020449342155215466860629141006558579644845950108669755891981972706112748177105841968227802968015490554085688599888963640443820473523892469906736176770006073121467918285965218636534194252104964581068220144278946824290974162114110631587029267516645299475477078129260258835182974869529713441831443987822530741914024305744856412870498334287283909284448196551922146601585577728247167783402667523612494181146840338415339783419696952294867813307815724571316906050577590394318340578965376973112088966687668871494015599461823723030745733140262102989255277419640742548231649026106474263817183695428380952671229035709691822580947274684428694828259038929243532787959037854949320363754139314005757050210068248131099085353632115135905943927092837543638026651112722098720370627646681314577642954872762895227739306883372681033444435426175865033710415269995039512982611736649043254287174603266811828481324983280235316362616361024140062211745124590861811029436025939474799257939013364746617038341330362530221360626306704718037036489467827946559833174549685712323645242156944590014041114783781785116349053628379728887265960408741932677058397425444236024046531935527754339175673094401712105202536887492492441393587584924367718514010365364971872026929382129082990350891173848040859535313998854661055999937154699411753581475003866066883095034340709690007347966015074695038446597765309720191601274786878273531950853839407519271825979124192521752752098300325902249114558505889257282169592335015131739627929203044942645873299493539980770000484826381825221982119803130605592177476371150343740739324510746796901267179881733935247390025670193688546595578658419342500159420872040517908922662204886411803626113339867255947377498354045819256878418768485069639510226027879711858207375087855275235779564511688315262812191841855341379567585611425511842210289771564415393319217594237896373234732093501504457535258836681735021628991732847332347950851999450704956278794899550335446631522931242554394234491834535788957493292286232770987420424064222431112063211198310170682411244525016498971619897721177320612361449474096285564129412218030125926277684318207871381027282319502781017064193624984606451319785202424817349381211047811317666050496862983090141886254379676850294565509122529006979598327632108401655254580366577835636917278774284233340040101697307387593452048202397918736535626077969635978509980150385267836898897182833037306315191831094712095097446879699872144689616486593199006006777919450092243502802980706543244441653202478605934872691184953886015874799990967384338499141144127284561177728819632893915384011233102724743603961150552943367617212211224364306898890134637224721015763855716850317470864467386641730290686242115816072966200141361690511304117379353868025779386154587159372057956084728786237751092467721650495576423237777997259779699574790622704920352677324878164057848572734946340402775432063298703217969120957544925125323037361165953740470736840844114362400100534558454397144204614516097456365123407387493051931678594709001145612098084760617422426011573651232102047696873727098991670972339239405143124278012398362501656311213759010831869530948910472628266470080334890136281606940279323499436427589017701709911794618364606996382433302472593338655375295476142090129508289047118627745050824897013894191089439515274960321374659399605243624216850134108326518909290299653165318420957331624274934901498528996307644259104927940940534871612050994684353192841120976211857411347541161102516861738708867912863089448079595111442823350847957255855877140216744101398884453905646839396089709381677242729627140988261414315573458111143381252115860931747254020657580060117704839365843475517314240005428762988451987347634712976058602127461957070117573542938786897353492854395092191780202490875171076110426473409373296308053669809677984206692602934102419384862199214183192638055843635014243773348191261958718364339945099422168668954366005488014114190568284072526825068541446755900986672242076595904283737695573572958141999373455489277894063715607939848519277457864998060773023010553445889868194311142039295036625380715706514239313468528351471046368705134036168572993605272958791496720339974257111372431714978530728790184773900262985322802312682617811739228488927072171702931393170761720277205780166447210377296339660724255220836771836685844507150247307139785861046357018020640537462052501110193097949946851013950670014599378198541749993977713695347149204192042133089666762421452934157908804447669046469537601226570548134879860157971417798089008454607192599941178654019589576835855532650523699047738275168049447743636121199054476865043556636958271289710078192040397195604984385391318785708375736055185291229172905102361083415614784873223051849742631641238231217186717014030391704958213752682492054606406889543571108430606769400092341890431151037348390563293373118449707461389497567730190642101946134488610701784974975823550950748794228729348422407022669178221173593007527835701340557415151062794941484953629167852558881383249638160024562399396823700672927150933380511438688894565227028833070001846054009375823684940588990811799461784251034107033431054305520003857846970638791042661899471438330140641775858772348522894107239424900372407244651102179727204096336074408404700816090100091046596185659617439550398152123851213976958691796828443625347106687559626294515307374002332008970023155997943558542544364704688081686012034263332858122344774264298117117278065846297815571228711134150863072833992326382818810472693962913902360452118329787616794984601346627896548409965332780351547899167675253066199731627171814570897697419487757625328402261175016100855590900949963764920943767325648830239325369069425969408430990600775654647052267049681836547057354891269247925305219600017370905184741274768066736191015234535649406016176817553354478714273489325877854716135541779526152400595361479595931517639852627178248055363454738279066352586314748420839622245230275098362406597925366747174362466515385477848179630996369774375919112841318877380361038472129536727070516643930747020946889827592270412487115430625762747658554159928893846864815511733880334649868151339329081104042396722795984063860665308552108529941761396280926811987078763785015430398010718726186887417970826115773412061416245482994544927135525523170169755342687301853867722738014776962932840802504751231589946720246748331416317885207276658120902942571119304826429093969000258413267504741477059684560303416592007395967793055496720653545924337025871444990268710085436066748391076265033485745193918504398403864619471015323783766340679095021682845566256371450369431353540806889081259892210897938897823354077158099474623053656361934866050685951363798607471119619504731750304876622289432139185648772771088654272912743329312977573881887135495494314734467409531225369975109340449880766142301872868034297556340824853774420818346057672038068210638964299376709150238697623405699419151775311089390869581771472135762947366214057646794279732899074936628745039464322350591274754511777133418801345472710738492134410874724686979402166380851030784444697109037751661334134305960762139722458286917498331001959031815461028133828702740172314768722320508590627922850321200136044963223512255975681775013846280867992377601623436798663523267738815199020791243498906720261305644661189961434337001186782681647746010085078145681003189191560214638845761809840154979036021254052549403839987175627246900034916607377756213440715982910636743542372320349418341493278346875331282960755452515952350045265275981375789994553075241623033483308150156074401609905392504665668224501374016415201899616035622412142625103837427826773425862802324435045400817806366380781059196149799166326945806643710140695562979961670503452224805503382735740413055648211374257588889263293849504984805567025832948826210298915154671209455699797669723129288000540651512684454405271159912247147015876834262831779906778860991599110871128386306283841034202567242904706646087969488530861749333330150225550452636255620296449694025863832310036179930814725237180410626189850261134713098880698640164395215845765276145486236459813818989486911915656599923080880878377732589261006036621965632939036375349758084129442380519116842391043873523528111178866896385527715033477858286578059040258928359086272788855357110178778376047560617638513675980451091602667461260260391941783491815905804594658134924618220446509343092915290953975336760829850751146879255771511978560449548226389322874186890864382529484920278284688673784148355878853293275103984149593381114134358341035868590020735822890902624803061679094580718094269186997254126146298257820443696102737780695192014075610711073781451423753951902040069539238033600236373840903522555684509318857535128866208727230234467013830407590394541395623207336941784937203465541835662338312088805749408958049892735130917581518737899754377576932281266015339916292385340100493069275506005681556740531708425742442199604192849105069460230461996658863727111261103221091915440148560308771809213779509654212900755607280334779688638514863635850409636938845289826113852222458751931011396355485955954372388106712863395754946278864842241201824694005593401080186325229014379782916440933718443646216840089289987565674670471877944340175215495982764860531270220705869538029997584021053308463395362673663287046781060712816103564280242275337536454878191279689619110243678622306598136235438574290264664414008735064951958999338901599256905109099560597882020632612571806033696276719504921156725367384021049168750092840530018451117369996825871928786144228811067260199238685439056349432199606861886671574067438086583511379866381919064709667684758111723295646482072327803319176201900074841872104678935486534786595601414616979144401086376367114325496452069828525477884308695299261039221590102748881026459792533080964074794526588841203126181498178474710503999312031556859011560573287835087970063601922207308318921397296382092731863551029883393213816966680138535987890772979742891280906529296772572483375137169117047097336202473153202626325510477660211344043091497214195247660774091403744006628315938522632659960440916444147685384448252597754210139444577950917430515689360226202551183726660179214929038934097699201133236430207030597396406128598267306161526207390278029852999683387206106711166517697208415590699730632740708707432564894102913374404591230808574131774352897212918400713214271456131350697329094468551046187205250382185603461556716721285211982079866597476413268454486148973150697898610753086586028140080911426267935633850837569160400964711644515184206289882387105350780042277199473262074055024281330402420590413168142239292078458230532502004246889845430166117240527936163224540068824379614584638055235032385723419705905660837911557254652578304387048819778892274534106361465711061860909597573318233547685968807526460566457535603534054753567135136913303948265578451958515286437412356128073892500863901441882138428153329381792778185522012505993325060912438168923530482004567794382132735717083388333307441399407519228466620691219589902558786970864230037960129504771948310521156881005132925319299807549175499191874429174681358902020099331513432529239053329987599867480200207137191181751140191862755027127387168922980749499624387129049333781942234981245032891873295155790249378697201569589888975945714530033145860121596578348306023456867663017143976787808910621475290516939256062027710374096672311477541740214801750680755212542879469680878469578907865126809367240241236645407409497752957974607200820433965039804655968908624863929822457079822636159823890767448609144623312260099942362626392329745550462019812558187992043242906927830726038647664482795237140102262489802443035494305941167928020721945324226388883463352367992392053883732495665355042380978054399298574405073687419103436551478101701952752212584221541333433743991169450271792562191901755024795228231456557539731393997170427637771381447929832473381692940564400813035587773967590347708641704593818395848467610237373121346041514373576453523998021467656569853360661757815684954971137552375202651568356890130888403800126390410208301495273369179167604807198889704327306015037578656730407553186565558437019777674191504654177603446571557900469439294309045326075881371593755239677321132913064543191757734388517214599182878141149967371610531711043969134167377509936435966791787031930211013973542733135813799842943977115513525221133672578270669908797496130152516367658669875837009114786681321226976542303728402583434001483724018714808464872990649774627279425094521005576743084337394638227668861561802733203211290807808339396706626705873076950621829407156423768386182339506399806696897895618192032440898923876700757078942258980632321989516364590979265842314904242538145433394318315765848858229595247238993472760473867037963061540977512230169563283450579990723374795372009234579040995029670807464065263540176494717681623278841237796275315418906013437854948403773597011073813435436505259595663624394912920976532044876983485800937121707610412943891145446742470088064338257234035233328186092680404783935653438156930217917477551951529635130896112966125990556146077806883493251883330903153125787483518216476048001053591086519042155119292051247619168999328170372052971154691666753847705820144828483424441260894959369438393155420779291225124270502619910847467000697687039825233984493308505657967273735649264225196638345155417974344557538185648616844715395622030764778948322168117983435503254676577521206131706255002892213090052615858687042906372703418824056943722710760516497190690711881449407512300479853562948741271937038540871310220398412285635035540353435573565823567243861685679826760943254037743032216195890291884111755050761386176369889012483874018579881155491912160606748623164870405427466372571159302793850061639726772548658400307827203687372635449990138793161168029594628062679110763677962389437746012857271765467527514004849051437180461360895285054429815322010838447206889990954059203486672074154803416597095318158344802495379790421069344515879990718392391154337112588434727573814358188977434656467240234392327967634766820920108238115783500839109460269756789192975351990698815095682147268394749941648565892290212097794453630802615545841670281323608397130630170102494210484055343530296240791748271510293112276521727215681306521736531312682733539472553641737084251530367231579253293976913983607083823365491459158074207040512945967055174332332605867486856147117926140100044588960522292252965335602172481881204674933775075816947368787894286791515438183907601233586774089701495574413075525646148068307528614112499155997035111990826591071241773093936886138269527235709864101649963691826028736279737740313823941902164258805537923662468435788259691925263898156072198546417538999394639199696172923035194108714645153189442448993743662516200993572327240327953539070657688837089753872519746214463438555908584424963110967778318524872852863098479148500257450470225824924370916100693329565656609908466016010810344204218938336105719824759805370746649200053201710780307775383591547123690607090917097495528589941295940016737709455723155070199214415387709109920737940859135215051938741454629858441327358536429495877475698683954423897580491944697350604744600389695057432039366794650042477740270319375474152061557915986415388626099275529757853848712062163429351173905549573570997639558348690797499620075578115154104489173036525208100345752962218000387556843424815289239206167503500164382703194087004922391971373797370353643217682470316468409019050693140830600521548705410112003016938906230248788737553518313567917535102105013162969364447926112123877081339707588008538167337140525583997306096475176017905339485599390469267726837340211640048342983968429051044721456369002773475494408795732022637758612301313613485974631152454016177002723855795707931543336486517171048703770553914509453718036166292282072835550419413677772436058897686428311491022649243991871201961868626870349670114722098709931008461054843249560285350032542013822869310961304074139681965737260960172222969840027369758654971991939739455369806446524504124253316222642162066895931155097722538378988093097087371152059450023786160544566028262852348170629975984614389665785885779211598201910057563308823334528360497500077151184051356482685512891139849447805529728641814409541223039121458866959753113753928247610487678226128606565543791385197248122212530364466640708945583914323889814932125905562420111596159260325039185690945986721777597983931225898519510486937250358493902729862436828424531963619524222741045192205193509997420887552115872927845669733865304420065586923968537095084603118817904265762995410897401426122831974422194986450472347545313438019688166553506704649127468187457107900071387821422414505811024308381311340466173997110363884323262567221735060433659486583544518934602929355371870889445042680440346311235996684023930637294552910619051265288391356772395910509203226456782726401659815275991366442282085409160901074979005282798535994329935200335575285129025726764722322729128270512550884210796261874934600491794146012939527274470480664917213433304531197489967523337437841495059785701530750913547401198235508116684214381394946228882395713317452006600083511037555757815237194540756884700064658905834756037985176954099104796752174764101001107923075553599539504234692466700910289472784633346468952143716338278399976071136877677819071250093404663166334790438776374355718715586418980120716334300271468441114824745810306219472129465512581568598404360459737116688050784942951354339192405559546986051894765763994367656567410531860993532036507208990981046085165012770277859060624877913065703194995021914221013124179729629217829996835907534695768681789525438480916099359557645041217907387480138875096585379747310037346595495624408726541278909620007262443511496738889486555451100249428467844090101026730361977829039817708048494901684085043163451049429896008037017363331657712486826397620106263300809815600891258878163398429600813068744337645210603630914345682399794194280583366104555526759307730730018867850062104389876859267864217333612795839432659437822096284837697623827691659631824326365756653554428257657652696104178918682701854124323452369413672184644899896769193926589879280357291698707693846433519749655500830058756588993341267214430408628435141934599654142725836253815118634516162126857217534749921638991910707942543096137614211082659617750945312395275347106378591035027638829579887517890089026701203682203501230746595249771567286664706562103992754789460250449982622680947273950445990366301198891379699248092402568995803637413865052353507438908927640415571009902257775965531954780740914372887133055123133198297483443362716368796718025191372596087982001880058374291027156227017247947572356552446782938113977359943360233989304479199811189807025108649461362560503264318746254323321733520756885876877851900912659927912019818550554952638777221251995517944749906394866633998739025389810371239511321128466599156248780619904140229125014144453079924511680081863114090167947660627981232701625074963206527412429199400358228584918612962021636198621595417499711813800693386144621087851580472966233967532097366319161333405782075114850660356079842267104808778244114321318804813972360436036392342792685474271932394489156406855779506772275796299315996532240007753107207963491778235805008552296083158493932644025115312177732220184214086330152035415917204791206152979089434883854012901867343582289343295922653631134222294850820276123439862074201946997059079442984473971117719601526387078232695849485126483124515798145018465577790235563239639021927525372080910770554635239386755811621837316089854371041512552043678738184927177262837998939759722936910216136491854467523555982277151796893329360911145661219111053348528300531068368567293423040422579959005527805540839752970349833382894191329728951026186540021633137664851367256709888282526390879361791724818213666428683828194742372557026258747114765409158995186748952395994327785864589521520967700447832649401443166319468473061423861847578522047209655304442666414574368682958621474903199504331186722032130555842150425536982609689874074357613731512413113727191597311833941503534493447192866248730535030191158345576965200187427670675553093514363337870669518863334157747881903681590079660260396871081410357367723019307703875320052589509835060194531632659501431476879560309765255441506410320083060814994683350503502303484147270856163666600983725147640130209018789480846260735699215135510587154226944443651721486408670272471777991786844012583902399144331985662030863974234693001467006262142482756983494883689111621660275373700371932202114055562362234031212833067891604459297464078524935640380422289359491596635361993523987661690245192624170036175418803299290541484169915755828593457005114812958583034570590363184986465999833681796086252091930290379545589444609436416492912502847931132968049916324779052337856073274504455024941313080367430922459162964252178547299192974575875178429175478645168897497678063814325656528693447647976844698649102963137929068123883700047538163039538733262203915533495393127874414412240425901315717125271551143773848289955105265394288049418967707942256289922565220884803081072524597875792000359262483112409901708098360489714467121530223645428292971070166856021326526351288761886267456190086066705179720327481441925416301238915356692558634524087679764114041727837848152954531829517284779074606278161116176572795798152881162190317728139462865699971324680265944774610950351284630182439820217904201606607814739576003847020999977842769188423468713317040151622035099920143695158406210512704592032670646416635075275508601131708854624386730504061162142562076920107294732380933028611341688080470296148165807063463855469552032502786306133847480510637030607807451247435832023317439601191620441538114806714008912788089886991252976255219651718832288067059782254737815658407707886822228067742527825694151538529351270382042176197056105612705177306196774437791439139651338140678332678153452914668928260739996552632813451524794239118090678455312306612421479291309342092332795484489524964523219028604055896652024093698590290828337394221496944181410118466435303376639908876569056057719934362964467506401430807785291225873383232409188832229854848979087828101992904529882021002233442676314449864609304305557581171360457715694885065859462202265293175178734122890306905476694207664546161968694715816739648345338025650968507291029078481514004856822020189956709969416589212932349460455817766645289270980898751598089557530959452087083317124572652722074732028490036382500400705932331427273961569673202258452190971354929183323235511572184096998792706989749036656852034224897676723028704444018054994269615782608860896917154526974102367110805665338394161816500456958953756519726173761820417025411714933858976309188099470563890925356572510522977167798248474422638838710164609183151284545693126840958073459158919314825215758480558185895953010170670978796506841699803754239279681829288322814140095842300282569315610982402403142698481021511298347973419605521763265971691851846245488229978487429567769687516090818860848611866408144498101371896437733792642703663115341797076939890325431281177951195018468995967169810641398319543107537880457304570278685217951393899998759015459575651238905536461077052478920189617595362343500939068859736957916348229951735768497914230371078347625854013897198154913414010373714908920354286068990320253842554159301495863813136321577347607843194279791873125376314281770201600894799649384994401054989922804263623042087106188940214507184512706739820946012339619845580082594582930482016376193704643967155057605395882869651108601447546497378441021100040037339655765983201008959970390032689550204877640294693621654341287053769260474820863194816661733981997690746087821681996411993954316746230800946472021328095310548191505990140899589012130343773654951042305450720993791191890127871018994133993790130196819568091251153704241288308941642591249096846909384529129850133862307726663604677684655974668733594987507614771623091817669697864361761839495096933748573772613404573337207982081899277910430504974895950668245180399241211094853923639452490903196240253553660181164078441127478461260687073792100844640861828963159767923773561596904969962194056616147969917090557586716168224826154652350896515024762776614194762972459962156341436469107181672428131174345062730481187509696255533641926071294823613179361585405356738642922510657073803407211327118644117393953729937853910386825082247729916405878229729720044765646276814320204603176863617380608419713996551100409453727866821230495830981043259237370228552985806515420358091239834125992568207497285787059087852414640825782509413399939879660651270202926794651410931398136984757041406101713621804643899688222041366972727181745327866455912369007948937847686533646988522480148200499732367336842919726674249409015695270805512061602581615453737868352609986507167022966783105508617539738428873723935261768055105939286737733787784814291836186173393001514582878637096694998407271914393280437755534507004768368991937030856928443116583098692692050243820415639977980721816830032639909722458354851340639077183826560612201448981216177887401236739798134544203830210705614655213403490611391311630283175735994548356056728505758065735945478040301045367451792235015779611151982933380448852402925971776386611079649988847698313030092069018816558100000426552703835139717882269050923888507245319562419600604923518362843479029198907011213855416626040543942856440256447427487355056119214968531225727993011211737720825547112599621842572098655731454174149889927333682278412989611664811804340858524473945073550040416413254583015983711072598091513445844910280331164445380075221887450949545379510220297679888454549297623205314928756708696269737490788136318530073648216522787498206689167285517216996352611479772662564566654101601987620795832641094846092018240775419127089299520271590402636042836637793207787364728515124041025226405912888570450525268907038377909132748229968114901401747713000591481853731352192694114082996452598954154821866328523838479536519862662725411743668381870701864401608530131488758306185913827298155943842772979671456366875936740085617913668865302747645883819401735050963792569479845910781308414587251679849518244227308865526673854187086315897315704787623969593792633074829946379465170549481461563819057837375110173761907575660574205977190104936223711778043490289098818699265488485723303959549150379656114828934821559711071691294428683901547784080743405193394320102683267237447349761925038330678198671517637469999999865100125856539803334974815698634795987751459902842911320959825959720497829020578636085478253116447013452717042860855658538023085019003980851267358240980893538544353900295422504361661807449948737244778946728156466582259206577197079859066663864431820299771060049026484329562068914794667308966045340964238649098333089113314798734574989923159504842734547505833586195620685281730450239956628070389536734231843779382026423531584373170851381163845686660636757974135374632178648517803251231879254041715245027113767077761177051771448247439668787339276165771572971056576515915583143078613172832495797942936781016562976969137654779916424369561743839090187604027312260849077040215954864917263552295393175996704017427906326612269513759887069157523882193135351787645461398920206112957776582211170348469664058892478263102329471491408184413546705794854267457052324916434410925545642560433212938896431569310413398763505106032891201459097406533292431408224658070932464119459341016716998611591851164459809869563387965110274872528795394773106847185327941539519121555373041327743232731681186889938458040948994465210034682674827791190441504598883662102904315699647794433921469683390347458119727311722414229742704610253899458208026673622183350664556379876063823543005303846036703505647924009972624495535689113850329602057839725733417761765930329465761267605792765640136051045630190954142223756582321873997978045806635284690186594064416935250162369991850320909675888509263113056755666151950071400587893072366542740905732864602274716188678342103163096847347426378322125272581621394525391832972426780856321851689892927968056039658237988491346539655321146144934926903548435664407367811766260097376688844419093004663091572395447318907170153674134294952899069610217254622162446474126082620762141241260912788576259830971261735959895634741915326084054662307528725083261831366650341272062335994633310293058779682923491428892124159737424434029943854591603084087501771885654954208202824205455204759735334188522783925700993171743141148831151726991080879853719525319461629609991882337786286206017687743207832096208605424058511865411926754445784495005699654412354372611765522111604773792885695201532070455227308675170260635867216485855521245987252689288421212141848378136217418108744606754872098263299832596228994210784550775063772249272565461124036317285504060444883382438563416746637692428699496251848711919219372721538296895646012631971612081313958486297814528017261810084760733401512307435681046256138776081371782494561760342644144525311466873588753546922459349970949362468362595175198592476755530464651791797421992706490077119390037031032466142830524024947311657219316070387893397785294351001768666456596472948449692470996843915570193304433435474916518291146679315852353851517773305398887576593474171022534082833391903380569713807375669690800042342477273162128012599966257993356179464384983649265937500806786152335324534391312542587659251934942096790955324514241594454647121232998636721821917389544398569576505496654659118565745089475274129019545707754026612405800173949368666870328700049930870187827580754838235330035343999398974941490273984255729214050931168604026459545391189905056406902709642995011481854500213814730046671855869418258388634736679825318191639000025013537027276771023551795044840972860872964744985195726245268025408676494263546870719233952948793247512810203286876974451880079221247714755745302426500312071429644822976228236901399400000855740034299058413228511164607641720107282260539743416131112612771644814783004739678220786716299141024495716798995029341169203741735951499818805958063632639728316160962329075588663927455683745038153105295617580143203499771309139211447544637183068790479929253284902390712692380334795033280119160371571146673447499452496609577929207989062539550167795161971276402266110211264833396703652081844705166881413098640179217709733187938265510709026046412851247867201168194447991020160073445001158720503041255038941168986277070620926476826591083932119683711010880057264065021497706172933746117267313026493693043570558411767284763086453409111975868813114886686957796084336006345447537264698124356750689066273409577125842439943002339005054149428893382476409076530223807720952820109067575276415849991701461000260955683963757840900878799003182093184701685335728441220681791624949995930972450881565344169172576369063010333916597446484127938018253866810335361555071675975661046515618222570806753608037443919935287227451885035377979912050581644879358689607002523993843319561144563939031296074511958036041049549292635640909975055693778544877296208213428561269188415227050320030871985894549057376079016163958176676182913610501087858079579816325740171305770565817550517992582097473772515812004513171022048339334887464278191643416039597571468336296458448693220164385666576369433363545592889254054564675633742229459713651732417847160333776783267351425438606730688461497546201943023351093410873914593038731545121669595134979823859246300257179048622565389900821259129445960049680940844845595364638239023156999169061559251967283263544917590566975040224512873810529185587959628485587404072558912687635242543693044798232819499663767283095536425934912303011209557510892272631119933776647505471771905293685397496398070641684774064895829979305896213241235811292194190799681333877503216079659597690516788893904289976712045278553588491856810206692903762690824244480483024290919232930288461759843315497246431364379712845069882887771242697249657673115182757175126575873706596368547542721621557555227400448978477420539073226851912481524287267871922591919100473078957152916966588451447724135396449642146422503055815657398913655061266399209940240888875802062382603247387658133683292725858660670865207665673165243049494701092430862890513876620996022471178598387901031900637856650941729885571082323332660082994172006857354959715985395214950102296458363106058351999578236206534388489394496619550856225548536526752665987039809174055735135180087579688450574325922656766935963404961194052365402367570068014871100542668174254378772690659486752402564233558250628157366040482110104988346423795314644436563223506378682896689436843629247408968899432574523253541260516314614211054288204364621824445983043961690571844797648440892553401094198802465352445631849324601176035990645690412843694110470622182994060122885559398673594462634859120466011763825968014507855951988554036944794805597353901736136769008947397360184319710493878353184711305907827968900519629128796605809509862398480642606261765861283772482204627692298486554112966763970043264700876640730447071635362005268152960443389020408177056313252725104760341321476716841328298731931703809525474116265230363586095058508676520037182787311347061103540209394678644478231552830586629897198315503411526597946157567187805262266950037898463300965970188622255321307926914538328059249814678462713969398870682458377036159573005131988604445639239122763184266649619448264927750811798300836385906507385810628450412931703106368920547986105648282171199941344519402026076482189551511670559345198729095921773713730155503247628369316574159337517907849489075020034451486369507393649515833090842804708655717836153025428527477922817314320258160062373099829263325553142382724525451039547460843630227772120999044673864663288073060157477264962572697594603367973154396935634854878689549134175728547671302250318078465470431828015972188781303021311418404832374188124804885214763210825695101141539785540104909194911123042246835425112417991580382099473939666944042991631401718621256228664539774183814788661086266297266797107555640831583380825515999479880266702511837238324117860040005253053052584564846786774073293340284121813789370946285696419133373789560011920397383583486075099845559607011359411535232178987676806899330215556164572269168789381394734307351458527619410893697405348031212321845312381995028395559536361535349514394409586683511669230240163713903920482670281237351263578134349582121389780016846893373633014301938497102510021350602475107422749405461733730064603142898047376330320578097370972028401000946877305944944578590771871085898410513304675392415991438531188534607032571528509101091367308100638557575979288654826579894295965896400662560226084236565743882471204298409568366725687886734712278150855231993564177864924412394905822195046901124549566232386310539470101708195377873223913723334403765502612279272230448624919760736960505062862853884469360787365751340894719568520065204775532034757467628374719513745273845978813082075019672968710238750080802926216342382288206203722416285052317749207854383165551080928151045731358192874221311527367578462195549951630975281228713673134517589747552414173982870600575993585066039492386897194382328952202481727838059086850113408322977353607602120311821136593902229995202117723247993986962395221012061188549400910416547623802327243543607861011248512524525953469036458739059259095552660206502796415575499814565876653322914153551124088329259748337309112817997768357550015919827961497644675148600515536601417596559941201049656241687771173637056373845231583078157484309496109543498749766405106686048616179180395309388791083380516203707285532743619581112567902480930333816316384984386033142843673652800151574745368443379045911469268521034153127829509136238931729655672449536343955316404682193707885704337087723609466932670729875600294057457310753739139636857035868425335404318300175740227940724276860810023759063019163033122547270036985276335605458124797248398208606747370906392134735147918842997386606423026879187586610599171200297012558166061663493598575606979206073345277692893213940128461205140925473226558334243645642709001085009210606760099568073008619999107739052032750360887871833322451683586372185105593196741220389483460125037643859929373880010076306574558213275478519319989800136835465736150443035142929500533426570126147737518858848848826587139713109040320161761452029440226524199291957498865962389246226684372804857050936497389372473288557192966442425866611015378754247438161708224532041296557350006528578747310607186376999114224925756960182444293042568959155203731260561686214832492677839002529266319716299250251699493945982430581039211564205061326402613254272045708779769436911773800578014804486060120044233891075524648874144231871865841394225895576803450610452365944555064578702060903877002257075572313598915209007160973817360418029503951657223540170081138652669727936721707683934251862296619584444750345253973026102542059064140172892129625744242332735037070643603709172571355364197418563279577658445811987168743994659777308715503566603040980583607047461580605717504224858547196650091370224195771361323230951573510502245585143454367924282019040384218861509937687021115527853188269285794152955168811109276897875208648332131717324738411709034851389759755685489509789195043547997239478740937801729302507345515330795673203682143848655821325258584506410580330434343885393822251710965182055473284062496795133799110735907685670705141703003965503243448759756438720149556430120722411286192830164539185967819239406298557313049968818182009161194946793972419330444672827984163672958326630184186717844130878450163968623488954074428666903654284440587520948978994842888113785258414945385404936453445972321299994519785077465663091512547882532041002290949087690656013014174573174809241100603296181519549720103536725376522315346215855373461005673050879601997085351209677865179192629598369595415515408276144447750649601304011341327532335142280175485989569871608100940044620863630295168885369427635824993368347865298097304218535997291476372546123219212343297991195911955554300348083538633764257152036855116672725756717921573927393457044020786803060510661184641921934456930886459536026294149824181934956379682096419727931099162872898575048726929042049622191399729438624893766317717022054803621884126252438906652617557256125382908182662293134641219009406584121118393025622379280870897212867557267183797376234268481962605845528720188168083752256189774818533011370488862754542687385748702027418526998117658561693798047792663482625270190772682759564126863718973066536487606137082768696964511786523582631853331220462768670270104690760646071245682781753173035551423506148072274857484252553560753216015064983116775461696349457648034258225611950761309704253308549084175152427747380019535147414648989805328018451789668580282539263975529508790393774054925208297161993197516073622837209927818133467262378124754322029704082469640321307763384545975117854244285387945677316366562356749139944820824357480988656441820052847785058890369683345987891484705525663871005253600872730336870133991977625679639435082018363863506970605972653387055224708197046188716728103640154905497627631683951697704003813794193929940409821148399485312705033962549684417100912103712988383467398149043077322100595500620018920773791244648264755299819271029495548587175982141101358747896384515925806908254020046938933621364054258251383881789458549606705005808855661559104854052808842390341058904954892144364761514509505201297428637431649536825314260936376890587556154279656804139929522662976834474731484561361581404733722877342476545130571342899988344800331239616778489400973007685788629931877461901831074287556929065806127932967145319874482679333617506361808330446601716247702152195756956868761752363652534963886958983204459562261657597814801030518445298860948549530046421173583137874816682014513969436297373590507089418220021886603166836053428969313445102437151601402567231885354233069657123936566386327600113292513786126991270251770799335210178811406631645710279615602210467277513818268930977610214171289758827773457284636979242095266227105038648934034611030523996881086679046014017855725019048513544642987047313931060651058576506625835779765786520589888055995424097510048940566584889949685675869373365024543270770111892271158426491414499543339084891374285499545217788390799091547074713631829844467259561228913283016756318840537351949338448875443134245624185973138517725283958413879524353153892838272815837841449136336314474134995231280496995286434776189623798349481733862252533221582949420963449290493939534386062135185039350264114152527741440163401026608634569861433483498373393003140006732295480723820796632493223653265504318761112482333290239493516141519382760932800421055142668089952919037425081086214720036312838100296871333421566568138885520736196362805605040267209887434834962241163469230842668797926885450223991334824385062849870630185955956843551574529467279520882132952334311947659920277937372560326120339852168398472257181699673214682248585737453182686216752498100596457467125247843436437762689002633883164223372907084352491554501514052986296514324086143626500260535148670607158754568769033018546644511911647391182971025819381886180284569433866911835494575901629578380211712287018425428064929473162346972140216041795647681688811642766908162243616832269468880109763541035656702277919353290563157056623985593078894208158679409013629525494991168787100695659583759230913358554562337310575811986347685937053223137050983273953585238217712399696381474373388944584355244888728832082951832125294281007692042806737871613188638621572465278517993761946368277593951872939884347190130090914163791853069905688127906644268406395443080172646683428226829344794707125780339144940000700424176721949053759626485634923061526224940750251036447506288723327170500427075625359051534685440055229165968969340617911728583440173438042292361293474715713464350424681131393480803665624518283599219671124945716591431163777181549114539505376029989379756700347056641614051393806851338908074784201925607023612331956896958233200060990666675586465456195921123335641603777681885140863866131071385285224011108001629744898959946075369218395655473053522205576045752892763769601670179046923286752097799079652008323372780647717242965784162540016843596150559841897340205322596821929060196488239957878653131158837177539104823067366933112969911425510765157487630267690079458091815468315502337713994887345641187910603521942046037260954548333547040954878377832423882679980278294797110022461456667471181795545227497806386020167932014070698882083189321621159493289693793373678236742117959696721523459865255379435287791792262025641140416999487587389652322160584284435576142185988597241259753115905821527455663956077687050742607400109587576189580291349640647082474576044528159227299191591704374657194652123005935704020137297907909350062154322737282432329114801029726861890121121098209604546493507760080041839852921209435937706859260769745533864212025048112114176680073028607488975578905924141733274821108752926997101721578474067049344437031363466678403032063711293245878602005122154023311693568578442255941308973788229543643212631807149755247171733487643475390382145197039520806391170562160761052541680000942161635493458339274127908121517821013814112935320564760007722610808638855716107730439347998007295989669739418713376408753867124961065669501578984036640217170657775312965617694212466098856620880391994914075055656017616402216507195915549850326752794259746045651263911777000278924358500105683319401482217473573050222236298572618991678376177445479361512259506067448678303098859913318029772098254565940071414443291299551008405088810407884183943818284013690540260925669751091868790045255252158892042090479163199172939704777390271479325007775940278986583758301736625011301947132778892795525538748358034733726507435469372655430731872474489270247475166894830223137039113821179691649895420899579607752128600688621907480303810584468002991829547956198753202008257274731585352178835075523108029870135413792862485804623253664593766547885232214924500616356343657723660729428547663393041993996169704455324624087698101672986936203355070802016822589748014146681432916953030071149182762544464154415597800073710717740699450369079502666752047784002713654009228232237307817240204996070478819643631747968578202937279975649276786999005488839455329090311082122992884319385397359070446983882778829306713198931713556742661439235996653223568066498873052084235340061272124782195366739221374435391495928033737296203430108646578299105653981135816216021538415659787764087498293358143905229503607005136777454398020228174649419115968030548443631802325122917272151573222990819957648914312741038492601693715255065042890554749539480266318941376799105458397210658512489652078120639119688305365291804217061165836569469258363393021436783024618477794249803548205620443091550464970586102768942325057204692629460022621109407014636683202622476038442069066275212831182956921302771351474763489128861587380283406185936463805120279843094553593985703452260180779154967174680540228446827442970689540556497656995129335352359756889583351625039760428729633828328309991695448358752661863164275420968035885048509923247901932205182721353851234293080791041300994665627077259278977856086209659453216695479511901364151869443535679744050388178614973210491306033614743523313677652516306736821279784303978568893920688399704937662177863928108577718280213539260317208053447445566449682833706642247636642262666117228736402255804752759439689875833826042447461709875925468169931224358810244821624624367328217991677841526673222218497326956815681647398560461026507206440845032890683085575484481508799911838663811855396910422041907893851668914434214160527883667801913047060351875306056707879750311336161036810707838199387334579449045110627657693885308686549424079446099875492688700449252597799103294994537466001364453494065874550065292128673560870605524454356763939349841834860939650447627975852038346943941679031562362710454645109069978830157617098582235600622787512367107617972535260917959994760620531488111041045245430689859120326159759628975834502018884957067847564547327748165756749381762556887785568418766453576749546317781863737369469932459451325703564908399483799151785780721759748579817416190055201064054397984958011772671156557366656441481197457051715570959048583192336407765887566164831356779124709577760208546122767819779899975082764823455989161458294358116583347097028333355839558349977496696217387105767670916061281813411236662090406739183336985582575444456178660746516533230855588556176984950758839046989237543075866430027995841593517066070933630217967613721784474366553757181681135898942727192665034171538358643095849593859489870206287469607101286485334690288223129784901570174230597953854057813875415241523462338735287552565026130533232365408628395164842781179778550355800588627282895989291601332957525169626125853081159555503777200201296578158634659506523309085557493472086662154589378653621328962807502084691919406280600986343310033291366738279078790426316436273249563798507030959279398321883633483600191211578515548463454569615385956923847901393797439939153490393177041008352834396925465920638226712410767990077981873206389505947180542959231321958957023802681805101813248925831554005598652772685624500851464462159645343604031278257630797739829495326550341035835505961032245856414500860602923722516508509039233509192196902773358919518654239756888578064982041373103479094358973053285528879807242895891997707848046164292131760143391128169780082293488655346473608767415683752150756800912091949067820778792167004642324854142786068435345173240131269910338897016204452824041230393227077338225839149833747389028949949570812136584759789766811165617406654583645806454328753533848814248156141919341953113042974149556575323801403583206216772692345612400836689543075990661050918971426901297671293345233256667078606410894430391712535552459207282877238485454564293702417097254456279824849615301734912360839342870024454491000329154169835776733729073610295621801024059461641019267733710326710637811407533069911611995626741242233089988377226733491667317578700872320954438241959683101795139113568430822316521607471424637972695958371701053396833119760341880141415671308577799390439412104942502625853144671945321110459755887175925068620998243050041079837268301596307989617742436114231820445411434311096124408209694552070700105053278210368313488706305522886748307587092527742657615608236075703507488077117161124277897849913133806364009369894292487497777843656998376701264943204046406951366010421955963401346562109724651545076864739035381750816426586934711603900663797157600467666714841660867082335762489676308837974963826989043083881976081784605487128070794695783249021328513897026418960245576560866323682001817319337377476079731585668889235028634480524254485527762255181219443499811517647971943893652352002178287610906142289110877295578146533203719705678282183327982574084904379915517995834235914955415753280190976193157215344401606566098638312165039708357122826094307721347003054668874432861070320444924499289771358213588852041322826277358521396275745531608758072430671447963948148021239485112686090708882900479742143772117064856837227970322632429868508052226548836724165713658299687670180426893041817151631754878578452719414041063730745489040747864516554721893627205997732644395097126148918449448166697887375533536655179512702748009102618308751154709330664696112424167572496796130546917271696173837707355097599113166472908068000531408261074173196859880300582660552196809157136144131566674046284656233155652512197406914340418832964098258879215670642677212247092725171247670570858243490308969255311538512354439566687449329277054997681579511887686928348243400949777996793961658148091100273313141114951260821947778598488585566820581782055603448783520465359389070074753618336554937066504309097110652286618933549239212425473329219048502921555378464954692240387786988162045361061532557025090403101224656877492679428750592464062217610190474325681107168206182282636337228131621409280747439610029569475013645487907865544671429918556065736810779696480932882830421098535889446885049842368454899395868370894657289978952252966769097600769181935743054205345662926919299855582703504436863347196580528192069504283236524660825364493344026876231035674900997884972161382879020874974509744172525776950261592398024064044105114573899220578969902557572675149089414629003553150681503417448416460905105499740476287912657571044386600306824558818231320744121810828261230196284496200646899553693434707224668650903604930914155573062355563024313590602217165822056134678370652312425133770184113194072943422519134691704061332599845681729642777132337381668377009196433703593370153920971124786911796487016663498895372117708217636232986053145387862232039079797907775064457404569490193292224457563100043101335485283016460827408987532292765480649900985686811338448142183596901904998025523306837356555807903380897270457520215453085725018939005031775739797538876714732663953296199147493790627856040287476871679321141898461041583277343700675007251177628752869000649628465723143327595251614184292904672004298453343779380288111985219934238668959888607680069962596436589130060715578581427956981999981625387487711014955756883266277271631238219775251228237304927666204951618778863372846548050413239208626352921105965932806941037399665319094976907595948940123465852716429396201823566958125604408899931651179835861901777325819736394595596679614704494454950232709788724471413911896448056927767235611183569258784291462164437897485741769449986971711811080969005758152664777826182847881929570023969564516018561763589139655472927059336173639732364945896732070296355626621511046818731262187787855659429412759008264931850220811630134976856180468861501880684709979043653841085841042342355204171994351599819336290574117110808760476158040778608936105498079294977243397849473850914002856644475911667995731498841730796606395504763925557645142617147904115030755692429659109527147469603957983765731674136431982623866860232158089410628964247023399652403612405875837956269496222930640658212319000087014966128787707093929896598590598996167376047072549920459826928124926069332008654010058972798045539591675296084383979529826194827218446241875852593797708081947058978233647087162412174197269816979060257901456156901386564338042047191049959829686900736834986785757594522457164153445190753354477086325016321263504388725191804758699668704973496396060702551726547951240466957311157975091082102639500764316538245349926403521203081657645521356334547413167845918174647443079137977630598035359921477334217214106068233131247388443582369643205502044479680272980785678509391536650215289220553809942744058563854301937218673509183681087383228875847573716157893910139816531099410209096298241274413629290691542333914337172838373352581727557107016782242737377920970652366784346963971293086780509774427883494306962708419808136350834771998405507026663522206279859352729410707800736133340205096939578823917997518601111487364445138269316591244841352356195431169149340456317551854798600527320928221671002497441975469062301285996349520408880863942453637204610269789121271392521603245037696942638985859098618345068526366474307351979733060872041035506510913348697757491022754717749889218146441905291174993622281222141238897322428989073705698032418402613181731569456286516911482697924391835624801783718992735408922805349442207747769152606609377600460458013172906609959691038067606424398209444060660711412774666168264114532351576282536307143729664839368079352479579894853486253873011670853860159956369269672242655905753514000578004175140002736671243877607730676408732781412975789989344008880818710342286909199376129829930866228245516018919033446090155572209912412408970195093200156474667760881815565999763116423826581603883492795184321008337062240131050720439829227642979533518226288726756732751151286792820850704636896063222892122686709703683362877842228925800047090862267046450949609503347529058239543206892481655127678265660073360034774234990586116918915195785447181865480250932683018521797623384875200234320121684761246043447930294650648138177417427603002073789700167367597713371972024343839025074301105323335928754085276663878405072809905132066862799827211391186009699132258414956697548758827279774898988659248038235290541261157939992838392741917745526229610865204680321090232050562682221548135239266069991858345617417577868986118693059115678230279138756009397165708379230582155732371713064881972143056143252574449152608902803870097773167924588810793365934618204549971924752541264286555055688695979189144869666360287526484037867331140412134466393403948008489513659815747341377951911755173187550920916947612489291308967806467947685058282544216828523132819537039111923613915251820628939978957357409047176515566687032186849888420793183483432880203217246628824783793697654403904185901333174396862005601451989596792894454857285752791294919714254233818261807780911082015803810303410681940109765156347582740370819202072897875044621119357546800561086238653143384149708409078057557084753165115510839039847480060134650001098622590979359984484901971614427483855107650694747013943170183753961131849502041485229750818103042878479761547080146714352591587942860447335881816621542757234938808077399955664048769289478056073424066875173009667014274077972638713987228194915213980604530102530478136700997879897514928934962540327074850162572996960252903350918459098989937376625676711066521050726293101943560027004981216344761598924047867947261759565490722163697925579648454217300190960438036189691201442926303756508761916343545935613490063136710349427761030908944707708505759313296284784947978894363900157532332359681113581256219072782833556409680101802823593877666242685615490296493032218794354335876399327636500607092740600968475427783687822871351051981736988510502597738389606544157831474860618126846169784210606176613181213536423884800169785778630864865412396181058238650753940199603167570369083402242735308878554948668447195593162880058980827952023583401071048205822100901131243746656914814152599299492388132602802508602310922138384165658415749331905817554347085790144849954956163123228865587768910739769023225843893326686480857595750473183716285109428816351810537197785621518302298217285550236601437591947398408694044981929890620360140245322389229157101191076563822223955402652974049032019342432948625551992748630524719413010018924575979469977353537767620838191366681552008563362191375810198025269174154165766705514531596700573879730837556855342382723102446894408151917574058775393278580611574720381988001797714250613951089254312251639171634262185876957551470351592097708874544690147025350363509387449054195505163328811175047192843314281714195715773307913015146768932134995259587875117074980231323969914227467842861642177998320615937789641806813807856172084488118514638847476078250516888478532434232616740949378410207737389568381508587039578365058354659114719598291823324355310480573758042810516219375893656356583092300169309190553796247666806393237701420881339327520448386860457889391419637609728143024315274566493079637548993974769357043724351209105843368370523121899273340302267429177576761245434459466990736225396927777718119720781482285772426957615772297308037136042497652823806916600109695860924725529423056703034161289762772750044997460541541524357125697822454893406795234855684580824864745264532034575602613844376084255695262210222992346045125387409185223058977403425768481004546779630426790518948267685976426193440205919388434262678986738681639589686103088799999357100507599841283572083224672935708680731627030572435958458196763408622429632757605563243321667823593392334360686395702468062638218342567853488062826770751058140618855600287382733770481320896319600514696643393625577314694566095720776852217882736785834581951468764504020382870092490484245461882292144587039789650796071497498085707666321147943954624302140095746226268562456432199028479516633490011909400287063448689996523215760632021074044824666397160967893163366769597640014499713483378032690033079459335236573544996726129359034120079628017910026153827300919268162044658335916869949031603022786539447876177532319270553695828752984401544443036255137254613416577009328872669575781071204046847015349775705498425050660554424357303030402765320086447152616369521230252689663643467248370895232964444335626995282928925910390492928364138708484973019763903287427306261537656286144909207841788584339004613068984146966061389517186241064629796296461690250531113525816743044990288741470796139280804381237296644495088749889610497940749353510884832531305042916833180198764702407268470547654180968864744973316862276616054073319918625407432420577492896564555887172335265103649293712509450710276231393386120971291270422693813424471295710457233326072103377766510224725518807428890877588670018441080920545475375026802661415613285062349626561353557736008903218241533130142667611027271274536815309979501477603549563334193082646006887538002119801872365376019854043934284696250395308272143194902725282008283132541778459967961611620853941105602101673423738795584287034070465579742342349463325125320897305939761975006448696633039734757571948649631355218879049131215427608778097727320089580394836997074376388267949990652955564634088912890503990406922237985441763115735231424568828744217921472498495894367397339035901948635007181492522130542890668121769159235127510102863961785388964433065444429509774925926907059803228926301275380325393477669448833596977231906446877702406088991720851492051926059569458329022713439254222337033228678818575530243268002500876583603427355683478567218564154398025532086333650142016197761308538039022116131343069115079658703572690304018333153097943159888342357072660549299794425254447975885856894063594599250973843327376365616954430582326578135056628794457953580648136446706868778130961999430394495829138765556247702816312420123244724934462936503040789182229328834957331450661872869963998213193258187977151348377178550226185283566071248902498338370210046548726091838204749020871848155319689513208140877997042950747503409837427793143749150373610927979845055596667872938326628046098247603657813740741526825313977650746606220252196412158008794693465177169671886992057299478396888427658659723212845755299534259045092734630962946127901160769069429404745907866987088982479848537556541457391312293522123143608037392909110542019489245641153095581027356530989550400206276145642756616243960052329972120515591260123536153259608772133271247488990880661823629508622961102441870427541896733475256225233337146717062614955559103777269214981725457704403008478445721079989994472412338098459319074258363715354522851492932716678992826452258631524850149434361997745200327340429038762643476152421296895621509128399970539084935601997648866096500193740076189117812063605708042165382807252999563415573983421214456194998406231418589763103858486262700297598155897382234625138805283726139737154475020643326254026322268597483827442368602136392150071948033813461652246032313526334518371326801170600599937797834732788654287894068695382780314077811639565136188812022432661772271378352080940242774455334884208351471795308344237331320741063053270959567051638688862085683184616063977608218808723366939957243134417775911697014333669078952045283451459554027652810239118783403872150968202778521050846739863946660400774597924207226255578394934328792311461573711384441900477647474624272030832581850369411897596766017618429096676098026977061264572931563546265610361546240749507839597202708387741243670155617192022614300679119509707432619893454959016305612961245518338456920965309192802753223105336597812251941980806150285297346383565452864302782211498030851547013688024918258991396870105163682906081300725780283892266380043852432307683024217636706970612603755651402284432774107504700045921339647822495367543307917944734840238352089222913138720854029611254836169509966498873466719382905714268034266662346049838632466467365985123954371686439268987626694925744819050461566997884100775067479362388392013729761954554742117902859270387129111626655530644077389640273987474716215573619533075888157381302237753934100936175885508789605563663929360605933416906349940486590352448546265049234238229547410004852866646606215943956596900498566107498539830636971268514746106538668908619222974300264694515337132986623408243763247639880439439914169186639473227468909852674620431417736396175611023483394788053401477831631611831537076004615961590602477066006824300369322056746693669861753348361463386982719226888828689220213470174233810435593962263636275382075495930527878198827533218947438122725637319063911382865091884883391067357059718721612491685190052686886652162029668462707841672652854311536445778252524230772752666806891879647691160000517409022095451032351824523653881714038503354055096721055586979098168643758295586242158390616593244464223773025647126182281101113604576124468444015905873583115533449240745692465316489050398923018615146255424454317490343672350121111491814627908646105529343036150627050910394519784265871938571774462873695239356485619676139751850372935251508769245264738947185532146232332208551122518743650867287543696163863559536626818959689699988909321806471303922449898078033308669829803046883651087825867909613226156180877553057041240060939164718662304986556790559907314840855856427472633407782174619228712147228575463590258991034643826451419171778372377054610644487620766737511226030976628566210840093681117559957019551924199280685195036781734305102385916706362011661824466887285348138028143809121102106822891584679077471622487439955809046241892847089401160631609350722837642082673585744592871209226687955191916714430978489260606900898333266009888037885402366755563212734388414215991570110806313581109984975774910250451376228183682759231423044224996021540877514659967678198215974912255313910720170864990005723274699598037319839444505741063314048405518115134404755580806788611630436489427255839489615448356241229390959843428447267564044840542003468026602835321467724180072008976312636809911935592637010044771981557756795669381606163047294548370495234385551308185280480449683104027128952719775489509497623821634451764399579874821745581900266416360420868595004514680193715203345534030303862386679565012518891424953223444669402808931860772164106787179050661158148967829732514554337198810023540034403686457289759143420860459693839664852397165108338195908932030163454986297677717137048909503262495390429500519717364135903917364750625367552122843653393610353015157595085693133024301270267695657699653740026432169788083862628029129844761639169161809675369961136795081530983795293482379164611885380518048435720727405588978574176039303285741005117199321517788252532858298643931820392007146555152106731619934181832459844532394114606934656630772197770224639915007838137705054809086456882124811301525751075947049813147737787058155204319808310043855425756249317056350509522496304116564198576910066880672022304237485152729305026044729702373897452672837753253764788535291518139957966650476250943337438746267288830170803949487327645225171128421365033652528715040878704945344779315897781368615466522312687178591059820624913666014064228754744347697654131604386495678050551805499809682260926333144897945536535885795170936184968351958052716085840608756021386430448487817452825369596843393937256724756581447058873847554274636712937136824921323372196673262071083514114198958517448161623666529485439414420876584057861861269867439618315152775351501270864327780807428941044117823945195155052367323878298440188599946155260692399045010606215599606640590945926135276578660441552724609425370566382021961457469099154231560763814418523604468122278116908564416324339916156858901354490844061060738087485806516678291853245033452752462729963260176767467643940951956008362111015324905870548985817823488918571563997853519951831570404975492994950739836009364537445701164552346531570385006176394662826525866305178638940251378441142717442932145055622233150787604126031400688745575663074524282757614229747034008703395192489119447347241971501138796363263424203928776618478197203154792239263906007402542173107306944734970642508742095168487118586849523954403722980880729093367075639950016863885117241191496261095864808181939740908522663020453466927199977615104564006525541167913164652919591798228622570497694329185454106338864239187715078812942907618188488550318198774324588357638353860008896204879941774796198969035537158951641978013355171807927592564729319301071136803289045677778940126554839975795297630345927806434056330297059135458420342847521199389963143774191598358553923665759401253156633049596473228638303308702270002017730009935823979578098980747473880957993175852156042520045640776101378694914568469651739288482339207292696955466719897440777969504597440437783081719749928914067022779193244262313633269666836680887014046706240604631657644941468310889349849311168389423824973515458216388639053231976768396033745866485652854555366564873716347749938960044839134877362285183541519902383033793277533635647800629987561338536209984366332570170232825996736362700418853541723099394560720011970522814223642572357244780505215255387205888668021310912458897038955586834566023335692860887587585536554144238349674588901841464541694908762233058474944317930702829955757147279044106593166166163656159443567939365829514401990551323636336228554071142412970020656799486168831244076750995321855973649433879268371068218396965774727622996895442458431472891137152070524140171424385049413601629075442796044565397221254964904059729052989027371972895618424502938659268643372790812748672852503284889569915670990430754528475912370247382854794020669303011336166868836583013439933448100704844649117360706459515494710651023152906319796800906977919535865235545093503191045820405883424337986263871723261038479589022512966814835525262498071207458521371796087269156941414933714595284826085143865649185970795236497937667047615815432562835751443335392092824382908718058338005074180963909605574250517281105385767774841161290165930619045271151961584406467850146338254054166535803312068647821998889303506585201576262191229811374424455771316724246971070004046149362374396651653990817593240844364432775178585679086956377755500284999618887624783323789751042396318426486357857226717061552466486962559153933554760424915082748438167392787865917061940721932843996944090450283898928889435212970448045979421355121842692944934139381277582886879246237089754619467087345846935437638074761849873320196516178202724893608640995767384920339490351712791012318383379991629905182467077034451944237395479005341865568732792964067610184470916319855059735166104810123957530427229410964710383687169648369684741024558180091638798836451625528147326173137644171304643642081599872842692308901691500174610240751555356992293395118376624550224061991047535062973511304075606689946351384125038957234882973927268991769703950765320913156188382121224776779969864748200151306793477181272809133774874276977139283254228156611657626529608186093613907958290289303929914514217717676601320268112179932068834106109158071898037374490082202926063450207234156781699482066198674783064945423755255743993324276532186872555866862230717617912799706840379181999307827476964350482876780625366555734541948591297527942863649207025932380678539404484960767904640614848326198484108489555419727329103987074426694748537111517721676787747916783938935330266099767503524317236272891471554472587569069129631543127491237499282843692222795558714417507601469483578359335275488393785110024337203543681821847868400971463969638267177234738970656890665437135874631571631161665759286100535130728194604748153067055772439169999162667715843511995562099212618400234117039013788295253471037717120773113284638616989025031334744905839096622651496561528810257296779332035705230282735576248438078327057813224480524886340268762463130840084217185398617122492157046448360441031387449165024129596155040816353357899975350114389813247272351836618145931587305022643837935302314191163019057009126401237278205341024840572128903558987875976089941337031071200179200737978081395331994487294124304552829153689487667205067023673597905561559480230775400921464762525665687109145133042115019397705266269165050518597635468432633702414944479071926489251069031264364194024654650421669211515018333941741406393925175827125124730462774459954194789720757298956244796040362512336025399539901914792711521950991552224575017601365869743966192445251078772484427673588420816593899435759279330416422400090670178796351502296242228539986482970304920028152076704913289522932583719087409947343437146484397587950565057784490801690959580331167976020483088714777183649321442528678492794131526005593778643439858096124209958381036959630867758350967199532832116443766418211648547124491979852278209454212932351854394910152800735332548131822128970834196402179637725749684677876670937276478059525307688114639977020432038390059238969094750874084467357195571419971817860354397786293217050447200506243072888826399037283474263847016890489455808348833971737336374142492821192709078201279957127492241633443923385585335636863783947801392835745783679463077464363564653105008624194750788926728640438637296037190598915623491651493426656096558981802630340149207743737647309111702405814668852081072498231329323458023514952951558926611671210811267441333303367247702502234012973365746067808646596493938470572321070590678286006297392337593116617095460283587989379655919033247730901967679384291671741896185136484717247656340248182681588172329928329976092816150738024977321793223164410338690682886583668602774720369538525959839732085378235359696741827793600107923716279682079719707773247264925401372142083720104117927207958206011117881330054689882441289673984578855904646867028772429650795313615222701405423460957369985908197592954901395894477439070817561127631214833286956749398785386420072367321499217445599020006849124383215147771470012003143980884620794887745485591632812299764054710356853707604465138369637088854146103608086219095430164906235480601951904543423201624952772067439986011137391230845424297902109677832104971014421732273702579018638574262008443522590618032221309631084597802543914220377054499326873588952834487572096392114678530736718908576987885204298010744742457084279101701601786672815501426458850727152694261524323886162624842570406723505239702385908408385661979799619908360243883306980402804336838594249410475596146941997703480239169412316415097433059454050446288557518862859621583321498270108439116383674759838452605552253040682185959117995056002679337724555397275379646361318796601073862309885036074874684409221591514403290183497372223640742959589035017575722994168914606250224758495140068060179140630844565483809853950287389033077438067250166520854559241615221842221700821267354917190582151467952938679811690578898590524019044335518357757731829315768361356729074419551817553904431921792161275647042637751474455354548348704727942439734351231164116682530983934255226317401994224719869071546949578210049282795402355190660747954489037972907355998681818941644851818924255906920729987270755835210107706908326804140506722535453739478905144755749500248728011676806272306368922321621955429183679367243095426557443200016013099488434315185455473441466344327262074056082605901289421210221490934469081478812793310445544382594642993527929220856358633210921170178793531005316517965561111987405001876743037197857474813523515508040917098445660270466309945631689603285375550802997168260509335776861707600092965851502057050272248424167771323032011168937714286491720812351438588021062977635752117087938889068741655141215700112965015043096110281021727703832004218478899982087093917992152614579546267507226108213870684976336297670081356714197606445900004035837448200373586274853455851371491121575812559407324135067173437942997999833044020026999988882495602934438352180161074378102220810725136676382323868474010878039680051555434000547858300586991852027435029076661517992294739676884941419216544489534313151001454479187903904743085745145345545826895442672348424655241459592499108882368803486297371558187867321791458183382838429006376060115372603183016153892494054736453460270264917832208209508890314089556850887341647336851594557290484151385547644144979453612811143077548173088707593974565569512398639743723870547680126699311206287509613499634632110058066260073409056560458867407223715968502458753322483893518734540389442005784538056491538873773671633194042346675240727865126042595590925766420201869891921946005947852376575122108321858231602763737400010543414358248883250005451132737968544926193678489080022370544113415778743467694937207482134530898818002695614914439469452616849086668423319228318777096997793161651050599227118757306625066658681554044513336447612908580553631458356350103673061708561714930219161273204884547467304997927669948536046980686358377461064510220947730431743591642045593926767644545599156954395770662767016384163429091377531278415059723677381229529183423669586916161520168657189538970109895016392756827383429723131723385713445062996083459218430337025389847824359960630504573199099797538182650572509331934669446133303694897313214957315330150156761217612910099320138214251031719061771719397728474008338162582547137124134387873427429481731927622076609582413096615397980038148446499544079660850725752016138300577612063752896509923973370800522954543050108498876077990900109580261987013748318292595398833442533347105516869584145010577877950231171542981821845925922003389493372753035799046866926772987253994942131893148105246159875537174490405467864847508621982710072222533349569561237504749569528124037350333275467535825776530850759780779304407626478179256109480305051903110468490625595602268031822373118797273988516569893319440267657453965503047580867204007104205004789955579559267006799302945421656273684975017717833125811831073291111958277301469762944151847930371137455856587243447117288932091441318411942261596687688297453357082550476203409874591483398737488143275669658716130387033492658884434679740966302707631553188202068629508609969445025576091369357807345180025538442536641650069659974984593732958380336264631799058572657403412545619691936883374451390752255499013277749297889977941334244636375154099492628565909099357790017019536586261741424933175367621674150834400800113989292403238059762567972945867407146342167450293965881001299312970528023113080392073623088199010510933834166113201637607591800115277606236679519959482056674113293368735746497301548274975806096359996105444890613158946218671232733936123031970721502973276896460596837419613977311862823731479498113345137430226923482512338551224888606429464220240151570214744703036814388214749463529227926232136973135979047374428461941162942742700181813746231773217225779098681528511562556667158128248576962082812962654626846364188985884377212908635765600019808570113372086592363379343688012255391924911439371687151228713882190090825635572415960102068550361605761123410451500231515457160222089634580743294306890684015016739332607358175429089398355870857718426499852883878633572685030757429509516357508147025651812042723382269506085969406515738883926983058914784875901940794683737003341838180196658728736946181816354813143336000600477688474143918156986163608568258028213716569141944801939318314160155459447534640538274280310598569566878250108818641022824564510157351329707175785795563536316624141708366488818759277456244391891255735978466000743118941153159708751569564157446265591567939144220613301422498446948945550968570819859602871339824057970911036164675804804863917930351041531613823650760903070446511306721801605176840425776126490356892529278119408102460530678900876621210709731749284073799320823800245081860232873602793287479836444375562424503150838478242796435229422303740268622715070065266122716893646174301484284176703501366043903475887957109488571001261168058775378091387273397198112131107208545098715544776459891113446499890198274655362321417015576119444982817687610459536354197997834921811541175972464545900135931242163333239567471698454849181327371182243189060504728985527957268429592305157984812646470843140963343530241212315732542766774024120803184178990206245932665715294959624823062281000877525699474088583365466010667240388191972984500410971161322971197095472188921179482409542262836123981552307415638922808736470715119444282723180665516782231182295679114320805880437600759804885122663403407951892360161183545364672384937442152539129047254088054895769648968436455506907046482991020568971813744543897218832645651518539309348865127563935074311006141820257968340422535921938822853407860404809629763001719151103084004002994276392391360426462407981266414091853783563522399007481528785616769307378502379296115287019138524173001985944338905840035194411109152125519580179350036006506339811412126959827536009426665985802235239362848256828380693352563552609323704832271191721318121910123859283703967757112060328304930941364135648072867308230629658450802761639924604746040095584335124284545504741565437296469113240189548519379106809485550394273500927046542753178185552980601941482768876764618986663183747950901804531501772660077083045309297159194573779578337405995222440348760581201240279473280788115220187974247040293284628369396979563517074418138735860104203708837456004877820234575573850867059054153876265426708000034060734647664367375261234909388682851328502429996219817650579568097850866916493587983165862600086954621437108144558515097019594452079389498435567813358186675179919067012667016337715638627079325644922432185590289212220093825160456859982089524592087546149939014127154345888504997968634115452693990867759741318486222241950826017301806917425699430943128883513906550045963410441682705697875236558137721149428269956035751235641430054168177578003386194415915876082307372470336148195466807299766560875250348789414436751959506224960535240994593844204008800578141753036273242472901990940156111532544499201187783585090586915075358589017674878503742540858636345844609732292799059573675808965680434695339755614316744248115311922583622649361311950026787740980531045366493316712191946838038341030361624667578528127205740237173137904749580508774874385869468220661662924229647586331657794244713312949489542643560301796773451556483463053744757329193292714139739004179975563046162721309607370898227579672035349750454908015062515075164381841100847184158846183097789427329795400424716425694062769160308189047970185088594618339772561915150680583242118684152685971118037443159588363286306052572171287597205971692594128853951030836830621026396073977184764404249963691335158143545356888611228215088184478676116236449607264769983626511056740851865795552181206174218829509013075007562353247139329576911641857683404481086365363045449011120879707685070697805080354696077491789971529716668092594352382333981462868678385345823132308101868484667033244647972846688337925015077790896631087005452218285950058468997238945888564144967666107652375039949419325126846920019014493324574912857855839880809133589688340086587944614189852361927501696428054986196998247506950173690801884438498364453464065917966095522756739434154406620783526798167791056890367196788757308717041793912993520868787487621860741594678051528601723025616253988512403158162248453195949023454159508012982546592586610697913352387510387719485713469138042877170321461485292041499348253017325478317883628248504790967256059025942659068763080950088742120717099603385594133523339328630603936967434831884809452069596738651215793818583415574868887973831198173284441547982588887898370986365612873625418796762856254488415159633238368406470016751013874042780268803477677139744812107378624272245999641420877532349793555945323376369386327718388676976586027308123558431664557744159739476811661272172546599491846568669768042581581991096105487229684881166461451711878279538158109571779380466351392503620932804665960388839378158238701253626480375954243997510882231149783077661756341942795646666894489378974023236562832021644336029720663902095425448950737644591785846800568791612594426423504651938067090084685032435278873668311142376670565134010528849997925008299996590428876523906681743543799674370042849064288597523527334993520176677751175850903409714980775685677037740423359431513960688409845768865184712526270040963703562558697063327176209213000819275745337356726142134404392293215656723324017293381071588911313834662792687121140364093806227122469044915233820834182243447159969181426277949520327911258744966806334872309760483736555623332946649867030053024436318554976553853070168798469867847319041852153570486989700743857278777659960377804204326827730787139276559628719664027254409102739031745293007704764866337812862007933274341652338192406958219419893810877489171240161796679793692692807603515311887072635823297791836613490943097540983515757479717484830296203258383989107889994230108309187308377689460598095296305676468177524819936502587981908048820527972543587408220804835807324338103843712064005020955487679233567342538334936413157081248745670468485693085944376431689658768225884102192446036146516939596238525780063354869227778182801776288072742777564998388889435561719725558656026788944048897794240050141936832498658683250710877722391603116743398596360804319799281561533934610990804153807557316254502777806402172709385525858801989062648596575745214525618584963159456861924824363393691698818968017006028740198785375885007324362939339283603664744487990503472351701892649360268177566036364703731904628572104304327155094084922298683773007557240283656895684778353027598796307863086565170449359619068071129783525464953567793801925265877079524131749854549178584378997338355827351176369453630277723973637314728732347547805321457242985637843965495003127067594755939226922998768477015410073325186937425387608009743485194400586402424725580827867646191219410991639351826755677365249835077241460686328444773718567496715315050324063480749844455100223817616699719001883111319282514897084176266226707649866983348457826869553286098705330222264171354686720674672517609103956210008061261796221222527508139988373396982926515398624029487041127452019954889271219861697173039150072384507912521580818838992693649036804589247297671028119799999282735420077009580089192846055179120449050196137510940038384904029848463405657579301892476802633035702269985961194561273408522840270420780327995316804395968464826696339225555483526281106973670540946613817196770217468705758265375212698290280933696992489551998060252585190135665375319120017504346795528063421281475617094157031054168962206497967218246296246224246162710322029746039831361042485895064243179884587920804708191815385531452227994200258397998071772865522058652860619269769534313931433891163897242743533344838575474047785621469029035381200262411313421638502723853305507021129872409401123678738707891467096350161378093885859888902061645473402668639963772546254112675011287942092866090097759935768829470939076085504937872653969942358638304870176467933740095669100888312074184980078279186103896628766818386125292502557597686343426983020544469013976162022179619084165853602099238020285070001227418684315997693033933554208557832732943391118520703497023426398894982724224516357522602156777191658577330476442633810580056900487744887364302400252940304076573053459842717505963255678959640251956880439506418488568553135981528994469482428111028804903437285525341994882354667554337756630119902515989504203972138182134566515231311092835710137965875801381614677255395756985486847632071444560812986244630778960921222264203339299777962419166883957832870739577624302559936355723688684474764582070871579904345834651531318944227193936292138292090911233832472300784496772050052109695149880460351419075747996394086016456964665595221586925632940444180553444030889497110091213565102788098485935642305331713863472902788958945627299570662875882818164349138997552460560772486594540687192310246187632002930947429150301447496177065469541431435406704130275708083950898133343445346420598163257126471752151593147742483589521231705812072288954918369049569863542215689899528932932615279463999059954144221561928108524801364939009338196981084082078626235964455909374678964764176663810689098094258273486598623969537963520934352842476173968842863471351916597260995457640160248859544655183822743953074093307769285123008231081206930652920488178911088088800861436508024782037931145422843182379392567066811284713157236578466657832445847275371294413908639522484501510554338216245226862781161263494936215563425408440446823504275849861364290226318598137596066352641625439085572134387102296548603774366778287542408056609897913099635009192999478992944044738571754188752214614474781545469304842428312486837903514059940500164150233944168653486837587919900970409161439488285016542749981159323901443785051877169098838127297345388762670572297853966681772403607649525681684403141242303183328807414924162985707939530324920514989941188863135337210622482906615425266812017276745925184912124394539087420873675299884045345524376313363152000526650671541460838491063883039318584654040544274568379176171936660235661022659414249536088572005988530007246392668575287733579016293993767420056088033918686663433941608275501878926745585971787206244840534569568723186385912366218417428325292001481382485475281197447618067506623977591215053570774242298116055471949917457989753004866765392210877839161228995485086938703808752524399496580179729504694210701571432648708819982582125475187110556489329924053897577850028921228222534334571124908609469755777210582094092636347439180183433147610309186570212612253412560884043265764402348238644330850324439272777265217876957260827399154319002868401790533067059758203241190326350621623725702468502386190332642472794027211920603175217902308872340521219388577542041994039057962560113993761890373007224454970891698133613458995814728923435392341595309804277294496801654936988766170907067347704054596761775191987034811882575465552318918987735549524272158728853595332274929886856686384588841113670332044066331803263941783057617533522899000188481957841091095163416986620435044792097028539426945555285567635603448400097075242007407329102061050990667306383141639228121664759151110386059297128364038278771463141811019078903640759313430604655890078855630461494620875872091528853061872786368324189023552318976714547138758922005392388292654866124442507627607074742129652570487805464895259741911085350535059417181241518919410153101062668377286529352295114950107117464960344348445735055001860557810069749469279408075643394567477638166243060160155462845032857999232359543860245501870881234016450235785687020621933029701490803155882476642824781071389897418087248670350103936349932886396267536311001963538194149486264952380447102916988761994559578174938109821549900678138409073319517545647909754420706242134560864421329673493080010828348253719623986433698095806251413363570837040888717695186612957757248003768774168608620014502289440081589481866640931730732232619938728562035277041191644262575014707471579221718366180447009604166112822693487879661370054123948221105716753685436402494680809175133794667320108362122984929605624072174822419657946933556144745828859770132040392519313809896161048194566460354513556097282215346824798023331096158008808499744319085623106987378410080292178372123482206811214548784550608108366848145627875786968394027554032739657114918555002673202419660524936810449740849342464107422608467500006522910940023931249930905877151286099268920684180008095824147663081383456203278132050494914135795661298649417769255233420700905355264626579228921434600088271176269681901962491922653191209038986555689125268522612880024660674853493465043466544592191585744300037207044141071192638842311040444402678554739274040782633992791108791925617120753267068822511671806294225654215890581688992884577955026964031828467329326495405563354753964627949649759838163491371531885273539849489424354585934024307789403458756294802104577170116689392485966097207341446541243958251530109565697407921639305543689269265026890065501947507412124659472892495445366552409454070827664956523282152191219366971781513246136572155226044629940654542962798992430605355629777929591894999342064408688736437913712012712613009599587586455786725981220148567759688672723144562355440330212625434595629672638370507580485880559480548153903030486283834155257876999757378478213573210327858767074807412269050053505363925148479735429357633812943664112331774489688515197249378045681323732298343072880341415993403648197969826752769143066082096934691221576476457559235208412340348760665982865920938295331070023468183511732409651301863008166715485271180049228820368705772112340762470005906834377354427854323494420702682478639829532863318929226832110327333972907183837724420572872857584047867882395274742655256351182785436502942567179117025938870377963873883363447328019671204334513918834835208766897713380048732304984169536770035865413161353895469629997639692552230707402752543509819128732560533819553394517919771639208967742873039478426232330564952793369073597607694456840040797478549474319856314892081060989561004575906512198152033092164408095193669097102693048788664594372665881737652876257129486709812323336732777328128979598680099723444033339519216219243079128935259923575676300947539204384015885654818697237932621532851918068003970086875653218159999496753586286341675378901645793825394552450978905248817511209373455340959499156395666800671235057947216448831267331410725768506390784527841209466768760375673067213266875908927953602027669663671562266181315607837523249881170223085716766527932003451309999295057933860165828152926294515950890653487758790929026418857180092593138865072229070267309829769950077343551951142241835335941477048356393827533848717062885717158393899536182888349208357700377627365561523973944223220462388171448611246236609202128929333585980298376826246171864446115621845278015227408076415570184745110627885319581424039286952638655525593712460436914747094249145516566479139823624548918940035874576079723102735064251277856197972797321089479307116721617416554975079538629946326627727690393596882512725584610247307856984773224585438085943609354247618899639574085083287341926306393778343131238531918385917072593074450132157031596411222089520848058619452346863909751822653742130521378852001521232153788190318911380807801347080219322871418530890774047813250996280519617969734645233165319341956743850125918130076577816500854939868289868836344630807670871166365365213932415395531830012090768393419587311472506163188938221432029646824035817369883927375231891659857361422406992891826005480903299029261586513667387100730436825252029925245344121101211407297314449544507556150937784031867295760191131853043093011593985628336984363245507967737732056310859108360692235632380713465656472222893374466451142680238427714084312357241011088859495531437719675576437858392042319595808344093665222615640559836769429810036757003359907667353855546837655742915450845735388173836818584909195065787547242303571309051662692612192309052034002468213843853361633354883053930745738584067221787157855359985514147164116025541160970254284981867335446366954767833052594621150699878583651106279106152670548942629927628764995975226437701887634337077686890972627461494719379417875063137683917874969280862663881174507044718231175973560551739538086730777858824644527387073551851406909178005630568302948286908768446341002285041745821952467397847735492635203138087739280339748558771517869946334999170577544457214467569009249215687862241700381838976468263655750053974496878855304249536895578479683710863839351647109440877558281609991141251829170262688259452865947198842113459702007597175987605417883550132722520196018947044176153254770213885604750034596034451575068058141802789070648463361295476783052129526421625277787847438382278943076462311017616069675476640237879772000153293188019646416244636128481583852388752939280889157797367493148970345813619250852245419230908945409728947731491630622000000846842346152275020073064462174959924922070544842911423723234765968794977085195152907817620712917057913515242890127829062769715399548740070403217454701834832761694077164157221061024163990719999001638037815056904299323950736710305839327687138549530927727305757339722959803897017966868807814165045128969840181552008973679798504615430480617548825902367650083866161119584228200161795320059973779236344486743616200501036279889245355788639008442118506896294952892167935723923637140230472854256248081312274027988388044792069079583177374435903936622195982604044187176273956217944853361933091704732374327322122757716648370442371989038504590534531457788623751990556852803404807452852094186333402951425985884357328453818623185490225656504107103896670319314095647019703080944823561748115984588104497361455577376222842437996939477178472979183840517026743640979672997249374827637122439118887164453642408464299222760472488178062971721818669936700105194247983715061337336918956639260257479660250716288274840800281393199080759617081002584608794448025889643724359916297847938379819392960992540778455959856928638082407317738476915957834505836204233378854962243662883724125123868665162276918291820027509183899377958980937136529519694121233971232073275246636937772795609412854435903012383648761691540600251366001628877091907603752417687319770000912524107548123991157704099776491812033682167959588874121881065097533819671517500145763239497258003686384681450707558660831898517442278683641036578249104463399603275610231431843699104258822206190474697246403265385776520848494740704730783041626300039299332533417972548526828006834170332633307925668789714227888039955931071098010037687444082453739245452022750824655851315299415169373220305110141829059163357982861511451221207108189202296642907875157878495124950128842187455555575198335743235230847163503591599266875844401508105701726531731355558195235009882105806363974167132538564898539582351581195252367096906421865474852034251753969017684023584596806316134741759779570651675751920788201149334678070135164672972912852819067196668956294661514139590878301020642515340613477166024147801709993459584085777505986309190279543270174927589849114871365590931585172105181990644898353670892841299265540703117887319859264919109955034801752795325162178382131662563923756114394843106795514811150163457605276906528712884093898549442825026869512442988976632350390255495009748074314321039192941073868713460504469680428452580511454807048256177141844587213990265330911846136448152180481963613834103504474305000381830205398997884866361755891965109911263155502562970181818821771449316957791926929161671421005005839693839331194340258581644043176752516718434278251658351269819799831584321862200921176445123670821370915224487990830815778475763393027438034413928417391285119886210720764783694130618644543962029969235715776552178446044860742598581140348297678802631491540661743333243249211234839677443944697952813176574439928795051277417161919664030536667034846501152878648231976139656120212550559089287766071155775984010297315441936092004571778835350691804560055371626263013382667480288340585261838120140490301953785269074305999438995119273820993440691007379856021977567467866226690484017411081058776925764364702420226024275381840239109297565902483816369526103099352650643196226773986626078773865521440548233428502979259670784482903343491134750530213237841277647010157450309621413780788037141140876290774809018937718872425862777804291587645856095241984658512430988005566736374173379616815934846811355774222529012208717945038986443543563231096921486449540382534531498957675420189109456749584096000670811947360581802992086274533666442891347521084342046786911643096526145020378638255546901485134760519190741779492474698298515055456988257150267803640845074340219875560575830286837412631495773786891645321662648253517611795501725999797583979908774810025259822962371057508568373511780636756829216710855470496829678475167258870567137854475960268405211765724474421448952813838827936390051513073573836103119726996543562566969148424034065906862668194260355811055325965910029138539111415080808071125863706564679787948435426268984819386098865243373318610884026579035564877019476442348057869354784004403724000675202580045523652588470251549008994205399629435232371690192367661388532549440907156278727985653094967759826047936955872894531868698513293274016800103545477821197223118030863284598177576009627619691688649542440018392522309610553742815156968265063264387475796770772232931936315183504580510727164641992422069528787432518005985462882713109491934610248800657678768962230474032747915125139182439754824407549293068451454953415070070276290865537790709346154753140245095182093828088111399591761599977941689977395554327266663689691801062134756695674069902750105965841143181996827723662685842454373595814742735118695069128659787859020670141784674759137938211513661982728361862943900638918588445918267728081375997905824167510368533510198844736949946690150461260330810377514140721825676307272797507441575088895549017957479769630079407203214318395235708468006832076678735383131176709494894243769672545909948439866390169097430911959210846626726398561537156093605672229101849031403414971845080141003145291877092362014704644880778759485035767483313160889100132249013115080076085167138701044736745306523712204989077030682224304972957922750621029563259532705314416158734340329680200165201544573155730628473906179020987003474899160332423555106259597584785215840690271527059002552010703118118810383844088302619114777388257736611403091121784286028952282927298115983349241576480018934433123694116263474604806937366992361942848227149566212882415847431740507657963625903878383798852311695702056116246257045524067722975876441954309896721303984132083184697832111500575618576913825389909568046309188250698253877670826055193116757837817907577135009811840916419070018112963766957508491484868358771568633534088937825117049735112954297291016460830727006416922491948135325209736859208466867643110947462972572227475220824588277791288186045482751594780941035600277422181125927317281376725159204852196438120018291017100133431486207577178927486940387695820806757700286359440071361023420508525851319111519957833416678496053144926750106133098784494540346176166122357060738015004404593243289521609796594984835874354648436026506135420993022296232555777219704249651939160117450747961409170379628430521704194538710476902702648646071185918592334175363212872273209950070817979610996698234974781348429214573899641968122730044241257095654523131369727779389166978651356380974059922354650557033292112621113614271474730751431873306508848394865631442729877560528345727440310143955201414392648410041996982009615621284492684302049094088828628433392266497226807672325224425869518850000919897704106621775643482632924886738058343292102794738328712067920125677302805941778241490411662416064643594572643302371083789406382295331751280144315894432163594503623170695856740588785226133175792358939095738393676400991506313615291477982764240874882910475324724868118977015278940538995310164252667357902949838806846924751497200188970164452605661724701473092878411721264202187404783296437171656464576919742649763310214866238850985670177117789036672730218649069304839661794707711318348480713435172978952709432353836771117419657029468398415312104027950485198211114766062490838423586584423383903010723352185392627825824666517459497588364652589483578534852159124152702740980758287752325608532510048917746482445589554667672629342103925243064108285336363544988572194780617743092193413926635316282450430085634504785370653990140885635161715958737885730318121395540865302066720079003774709032103728611013954758907950089055505988586220609791451064841259034023267052112238119937432848116953985032243198256215247643814230858588577241540495926480227570704518217009548778237677148153615849659918485389285412558706847382303640314409830476611131486490543656704756986772788032214072236950663887990398947157605978768504004679835583529821132065145077832631493723565893010147320843993277241298313142328176348521516779121942919537137310164961707681861387768299769681717019091081586636293388174571853791202269730137201823041011501177031041738779672420955481813146144435240293168592125830743876811866690528686076284215898271702109838853501574157298313068634876367664360724531194420905566219282970031878567962657906819659668401293463480788781150811060322421036977755816483601294438145965809948142903066435798612421126388238752737719409073594603567047088270870058166508478928127481440257258328103345605565138523675637904837257522513667031839026512659967579434320969440501956672106935514627366617034421647106207180836613469296491912892027488901189477421587346057295023915191307816211530921507355518948924804832865208379730475515537798173607717310708185340667650157359305092987194163767318123979351357452612457122917393593336167666997470745502187554644063356237486555357374577205293337520620371116001490345972946088655423767683039269451652673256030567874914331790314175786457649589641035787292715956069084235024314973188151911967636646728357173338279241639725251306386339628868056410483700768165436825433590618458996335108074204114062028717727650997573052649018283458752264678468043690388884641309706568101755129221769655882643539327024197218846023205344801845957267596470822035504417928472785169326224359920133703470603127796487979938255110417091499594009874040280533920213908085053944862418616383618167181363906372490026929660899853558462086028399714576942426134654212746990351761531398839504381032080889616366241309621445587646480066909682639437619763948780440592520509992621929677916631826741646016373498336075665658614216999216435094400609286698580367158354361216366238127641220933701319399825681678693003515817916946323500367640625220651390469819265720087067503924151297677219817044867792823160489700723477364548968929518859723444105444197281532542961595647605234897646298253832577698751598321016244287604907866952142694741974103852569492476353631270821663503404759160178563903500102379583323009711055447426165741069148733435054292785611327566702030515642321755029519708553938612746830799630109441836521691584115901028905008332329711053807502284545831079518061572432806801129538483677866899626696650577129594725803577674728926909823048589168709105069280524065611205681361719491325251187888599349091032085152545400872451557973882866418708100036269876570664432117596734571529191285113290344341001565456275874294259680861789930923853859083540747871817699158002945925087872039174514068876138661145086544081501889677166194388374692506301164027510008660901200554263609342491438697240647939730287761775527604379831830271817575828377579812901280956823830005784047698691377528826719982645330596824214601403273392727963719226497568259714671402649826994727112607077770249478219888582797907810951742843305882344141303145934273091130000266333749680746769540886660930926717264109846432210519779797643690552180023883714004287068750986047988691954964904094328810110235093277471706901181381978082830567653355971481157950257074590503938779559667759153448161069665693578402096742002804117162379883162160937308700917717005720665368964170250137045269071945563865617163783139762448268751869707921513450467150695433357574044831044783263172982302855090107876746811862546522742137480712226621881438693631805860598345162421604927761180011358916898265382925083194742302114172504334171315179157009432969698275843857206146919779845858338191472496981466742150896560677069460406005270943966135409031570229766634463484832036374001945021222105337291213440466780464217366746404780018793303741267138884811974497725986357169158695047322626272066106544722605580445132859809527974782481486962857786947052124503643091654585318310888628224918057628706232198789742240093243609929034008789788882426540628251749603383732449797712028533748680177718673298373634829495493383411406843382905638231134839451557114681220004641943409664064886135521532198634495538001714331525045282356135698711106973119713781270057052311386146393667799946111349821782482539083048286668843923790656830440417339581772121287202431429966626352568275198404151570381904256433055843919825216941012571148129516481131494012575977071681474006510540803307195831903349392429763148932325654181335334324315906282824095256371647805100867338056541823988240339134937339159267318849938955974748909538667864281407108931981322055092603858721081870669091377614840674992712113680783216819254221814507572480192762822779054958547149442257422068032775060610246389780984240003373573293529891503171597263561421674721005934214642864476003627873761034763369931194231546234394054530177738577340829230773056303524062427515762618748727571254124620474463532833336405446989656077760690487971666810096086066315416608218021185945961317814617815330154768895359000931785211326095952401862706081821452427055654336526836756331545413175515085887658783879064790737751258188456544503144438503995940672609753627952050813819175826563315145604418925433010611351898353638359414452779860046264245535751300529760837398367075526443848593653032630235069391884401901533429451895761631020991738042694454570843386304035855226431467253893360202295493469334820562356157661099631266208591921089649071231519255322514636917601422212606904323753623270823148984007110495988299947889541060187126553895980432764535611924053356016102740626782766279894761355683651284548680988167404457914227457699127275404583068103704127038668627142727537855292739697503959510363738686797203982736313405988077590584795885831553788579463149472931493339267996214347380574548184423834937300402026992128382472918153469906602698082316893216596539255547943537997847672008813399059998848410698793148479629690674631751610921538851377983208603547202995157887699031868713109228775865685878365950937832109287433799204204689845215672713396283729450276436432621116621593822025652860678452616114411583865057606790116261462076315749156279533360962631644194571326927710559268646160862989510191226618257404574467919542768973080695182511122596922768270404324263581893526485412019266199117018335068593034270072216900961535505962277012022153145910668777634316210554084560596654495414018073737478358853285846750663968977140667265518305394763738372149069811837077403430628352569152500923688257407637947690853108451330248213968013030248824222694514241244413927883515071243236766139458894391673398442404675466534189151121003017161519692208405429636603835405741548691975282943267567691231148255596495527494319723147363560629186575572498204661115401137958988060480407612301537217029461834374882418206976653487806796823810779340607856896969791211306375273223122667963499129391041473966407851722121790393821438372179221494641465177925924924448595858666890555105503675030369190698442246442455210502816333083372294344946675003574716243150454440285247758204060163660951587017770617297093826513335207464442424444256292763269162593755059370950482178067802895171111323116607955735760924942079062548148348717919957913140841215240139006976251330124287736151807350706502745891004889090367684784112605744548232192760071826103028913012569781343299338466903710275730590273145969016592784444707615085907002117002835263992287145487997816737670303634168007833623239124284385196284904819740277332522545699613811378984578087498481112331924042394314839850397544379092908133698087129238401281335698731607266532547274492892432252706487291606932313308929500158186584537825094334692745767905980696329119403567823495940783280136961781161355363962665209537505553525418549304537419033233097038197293884388902336044252294860240844295387307117531312193929662530594640707924717612295191550619725859946045874492744393916927330476273520138299127381292734362598826699752417114012797845034234085755468911314887464869372243898275997737375716109912456265461943113350320656933637006533231190547663260128949916214761044768700478818493442601835850933086177875762554275443722133729835323741556657979463838225894882267532226981094661416101974903567998233481382546425793042082308599658195130135428191734713373725470429731281340937708871957749884601547310862707514163717434214715393417847870069022737819109059459565401451686835915513506359912318428571423960899353336772253574119849810713804742144820189805473209435497527677977286451838317775930660516562365583766046906976629893414765064240682276595562105916363495140439480341713749721767224819976380272342523841283524362827503272680723455211847863250130585081437881875341357620363132234106785649062306191813993611328444528257826253837194774684008453394109508048021244618496500230243397829693918683722437065260934885321432898294155551585421327281997017217162843030648073538965302712143061493615020388927434437846136664633799758634862991868942710308225783383513990212992314113980750387276680222202724986274195536605223956993672482798654795882135384194756930264926632436610343226096793798230843648412958953260746585632330826159434378085598260161205607445250363456197449532423445760638875495448544771855047360602875130682421822481783982872145381439755983259056758489130366222161907735073401930041190336145128303042189898030025492676832026976149119772328474010881437224712516197650192061138260232976728161401436452636213622755680207799507970468721672875904005297734607372938374475557827537823760427654368011892684320515781024080002261003421340557275825163261128415028426779581616827454186863460494967150316598131868846698765458488729010661986516672584961742647060305194183096894068558175409898353728312146398928592158948943824864658287048250894562659378928981655489996149912631709121222541866633618122729740471685399338797226097058208382106711806983743309809995412873013644153714651964877528411303907494079901252144530721226277318487531057926192513726567035784942173613650417218696241393144169621270560684368052878905715598848039831000162367712810730357266284965240486400934146360198144230709883624096059657367497399719538701498806273753649890720494159735073066402566284678572579658761582553501844139149440430406145555726537767641643087954772955550419998290742613537021562685277273435957734248982693669646000960635043615023986356827860636097157793430454765238767712267481820544289872472165890352603276270758376796687337587694181188344747099477036266178952851799012631491594736893773223435225915878855012367227528821477853636065658918731189011130653045225270884779565802386541915768506029621425996987908169785950862343076790669102157855342271259980455239855233310505147284062375456412616143670314239509401120434954817408604328929989506971844249594988312791982969182340444704103748195724805832012492543222702990996845591851606971600837208731362819050021938136714794702138144937428724852362822908915623720354084045863765868488554539812994352580927690104276098941730798558256077435450354966790944838186144168783693162274323784341096266920883597797414579027169196751957904355303714081751852156316929503349903617143643487428150076335685419749686526883106193242513483285824013376176712190597972375236890436157747194957519471165422595890598294053901243316629921346903501878142593303405876684895858642007143645718946775078726975333343139578604231509766354481541732012940839481424119202311495822127041832227065797847599212100222560499643528045239235143787376893048925448564690051978160833622028349223427949677230604561097414130318353702021111861648427778744822883729919566818176327496203825830862749977051787548842157037767391124788912178006235995081263923330682607657143812871038688610447253638389154753301339177430295963297447603272759057972914748870560079384836817782822541548567057427798752990342606561297612799956784123249681775047480045618289566453889999966463033268250122490486148804353252922462475076542358537268664645630911955487651899865182566738318086321571180496429081965497703420500523658915185105887959267236690007413830775488359334584247769850314982976375971509583140052261473691001927961593778599360667923679135088364109659712715580117469722564800225604890031587777248122078302723721154684152391510096516655466575103202402300060025563626008750575464203193570478239085716150060207919902760329169803140315816436941822097741159514160943789270861605318897707287345299617497818565103316689435523950373036645528963940701788273494260937437313267531319914439677547837995250609613629382164421817066193017630701047632175312190811818456101083121120853768810698892621210253132214730475981203939558128370410975236539135030515032935720302169761666916169910355717770039982626799718738405918450007874505448498300840209481757918234985100653676166774607476173876143698612518059086217488680139717317547041844343361893038598236211661742180977720853268940333427065856402246089990544345205426284673574381077724065541591799546827405841327217996322446427655782713300061121731404110708189044570226564970955963765612806272081739243493896831548596684405926084043668524130781461547844958681877942616770995472705123661386709361027614014368662813536247084979996115392716433711732616424535770433156853041997287293531707162818177783128170367037325637504676634218753774452016325776070527165304336073942826158826956687751320891064759334642032035081236281925026148559164005838963784966733512022518621875558104960540851085838288384088119574223213175540793652425986779369178614591665357977282051179742750531438575115502979688895514577314942086056540170305680386454367290178363880872647893598690310290814113284780157730028065178425958990034269933353007657350315773901463357424017346397825441327536584048649297188301903455810478893923661688343905483178734544044244634603665044928506531498169429722804756066188657881349415690911851116957612936268867674322683935415750566730729548757315096924360827490053253033206097037865892370749399656017813895904380460517786522196727207492831930082798089309847213805065994109799303567212862951275940330706142947377689305265428719129660433727720699419946673809700224754972421733508485627340257986753684003371537655640212430817282241926254397494599145250868744408982008833580075641271764123042229941035064751288625568416113518457207340631983602784501397012119358240351322775744780170691765727293507475694653339002157349067918199058116011015835639700896489347828414058641251668930966242493319434325806317283585822796525746310486659317823551716201211666649493337123079617746793412857244367692377408844133070434727469118864032980869787344493324586244150853246765546445335594121837804026156563287827746158063483867593471772810228072741038908117149670243370251253050560961163372969589445389835268793214579458351649625689092693630085276939318541584447904549534525481353715501039672007546100943206695827721489359578899094008442850141204896547327998874416380213563242336068401200032676843394622431203865408086945715349224506933862022668073382164802074820479001977322751685990859921173264503074269297682684510343077581258208732713844191760723817900209077711599116404658754862345267046506327929590408122246118062760279392158089021002364283574052122878101686409970407747699536641197278615051499164206807514409436819863430571056495865528631662516221573326849908472140739157039676024687682496470264211651409001658452992148978825894580649447168367847882885274781342643912132626246513797318396817088612044097762566094479641968012954016097275387284351038430782359990015022579115692285036187431166826030636683434760663531270500752767244802170213421227521409414101499626675551706442480029996577384718908760455008201556509801093890956921403365241604987184578997228530094769974884729308473200422179474409518819633632440103027219998380745352370421729803698261813285700405126868874055420845518972623170740891504649560182160462380302823003730935532123104969485202844354367024174211834260643581891893034046894550154605903757475892769912840159303256286364781550504442801135610083217653505302335205109537028659247673337487148829619497917072491047510169302379073022360497073327578160680116975096794182127029324756134062840770191554098667811642163272345531080945018301702212568770257557796453049902535057396565878177703407437167507613628382607032303620733315923211116570683054974361327101770897520440505529673513028853085641231688443377178346804774956495518862394128590981290508813697750606129348054659926678792050525153828478597071420454046060945316112027676965722090669351926265230620546144048723335197972517668180908242275169305269027946108500902185727704891039738909275666465725521622479431496675818909592800191427757398167295931486286841550100055369564611896592458012719876544467396888301750245870544931351544481229558510494581324682903624471431337260259582140346641471042634267005709128332883741847488598682906904463338169115588541109870472809510451705001253903970814842837621546167950858502559385400435658685492995873893930858772614270414353495206993367194719999941439837899144418640080276526693146487512421011259042051629419847124281749310515409746229236815492961833616351319903282067470710331388769838508158373621048800683919740535526038373495060491154700775517807122266650365763307668795714824736173261594574497540577350460328137450053675383719015492921188309870027857275448256721446477678598847944297562253001701480871616409221604387690942252103266651700969820597060691933647690585793334349043661392254861141122909739888148920146396875536763460185795128344813895769064820018883215006038719231795316699082044886277104129682849429452090214601322457230651478796419972445861178956153940256571388864995215612688835560063833199527098564397022656621739630981128025885512223288725673479105765304247509268071002253863997053843398498040470998380167029219775608975756455404414137806930188931722766243100077829776699801277143110530786697969058418804768966252728535141098203908840637399934329331612075310194281897976482613250095931489608488137059765781525161150820823456985186379532641366414510186057637118436103924619188845414831378022114969520379376703301474769050954005159405252161218441357538243386081853856133879299785012361156893526869641532391901801496127933617371289122196324434080681134410857229273245962584880240251174891590852088273846173196556283937634286114499664763720604004008540831624665287657419510365769033559932886916230799401731642022736352010249983561890223297550750991557857771758124253111910066550973099466874090980032897948189946539234266478697373118443420231202852277468849113600171340827079316722629341790721146498746165206779746681973246541433965558286206497051283216875998762005623727219168410807075159605138477474955808617046966736289629751676465866597390806379363472257666659642373734661168738758482801580468456441451781664566052185627678680502967339201341605584139260454768939410319239450744597289518538696771767192173668160657226642416406961802864687261737324602142018398377276883971085981328082670696954493556338620830948688064629327293944300643577079115246936260158754185135166219828440082712463994195392582886516784055905369373549359829236915168864700043762807508260351367212637013290829611984130799091110360944905361087371344223534676757575188395416746953617714160671022814405867524991440519722265962961641132682101558650274189025084998770722106301500058864562526948547426914123305739926023241099881621944708642654899367367547633582051520618205492416700648339375255947453638120988983200597144566614494588648185327677329107907620010944015645391991095783323831398025789065511577134381902490753893575227745655915417180184610174973817571607562309680835771907114507700596787064285026946395987759214653081013333476566794776944206881008438725037830353857472160341900452419659455581346715265671048855957516738125562660275617935994628171458413259078745817734688786589568073892094131349463158132574380670328653658387334772941365577569588985045960659711173461589743388373577621999245920355450448906898945724457572028312636797270000555261516345148633597489478698331523065698343556072698031796829517837846143387089513710692823114430861889559108807793238974349414758298691139244897778468825766991081174478911245297364916335577219716476810146763196411909488667050188268002959970838952630351431710497494936423748342839369517284265254749905883157388022075107903988191106655142537585431226298152758887180326371501508087697627569332945769877516400599315186112457335719458220502039337466180632740748423196881623583700140691935579740580042559998511002762821687112160987501958159726272577368426381082608180926623080825330038558323906791698996878028498940586478663322323405759007632151496861662936141014953312382172464852176213450154260651797362164023576440156598184186788501157726660713258369493222643552590218264101125509570362039608666569772694161701836121356873558660135721091902726550761085892052194073571901982387446295616655810991600672445743218539718639828262635146649648316238073000422275637545717991879487662544507378911749120134410830144724160179340375207202906232193479812924118005985747762295722370999679563176639693034413090743515212327024409075373673228512068858533261488189657898716092402364561092018080543786198619169112756196727810847642128361384272400201420612578013333946078230041810179633844865078099822138345023304458484159643348664514181162037937127230293327280919519399411842592211789794151258759491955195902068848417860895865726429443015915563405615300611499425547710205436278871229942814088365820658090667045576210985872531488084953048814903680494943355707631794262651620627627881209193225277861221575894993641466082610995721126843044805000003400697495380045550837390893892428415810903341502211481893241632470804954585387139287984871504991174912138042143722870825792348824303830900947238259781018523167470190771220623370234682209875236096162892441969260235796948710325426771243399753245728885395979865566660947536275023075291365745068522075432777792495542400745135854011474423044805397843083618494847388609402258469568902686082112032546631718826736266337486152459370015096480144381556599616924875093236167440795378275933614904497231964272870156650926520158841952468187783791222818755902808201367397165056079239221250464466133499280266686020168989520607726579688074459568353526762794764886042769332786724454530329382120266086093593909866412619856804254526831865106613302325744757844910508497357410550232017698791847315930351092409201215460208475286624467091338483260038707403102289039087607560751490561577812301714800605590440019536654694815719006136035249315367081701698782989922988764780408274309307098611583271404590012683373586839710755467999396067875739113673298785675326228439717477525778453539704620422522892884684356933827589217184378263603206464674886562848027424488555027899594540399985041156745656637418097840422789359434892347706084214854869039836665169844306619075959180396845155314742698493389567220690731326463209751273791729969343385447672291523198033963722860161551122107922457911509570943503385778956772225139732018430757984289093025595834838273198971818856118013093685727512862333641574260223707639605479555083728999666403415990966289847201753927144498604059934990363408712351861779987503447085049483316573302774723093500788526475566650701268908502054414389290679633568970867156114048914003560391948806046575385680264464056381192867181926208262386306769867594606762603755055578106544964365485737886481309830398869633360839389410673738672993875801456505572484022593608855800631733182365569329276074303898716192586426184047722397199425150811040370152938149731621258672030289322797421981859710340753620829450987796805616416859298177863083027076687225398361166152179364441113313524493962154125877196445512460970388776011411511819335572047877403644774291182863222372572329200209643243428083141951477865690114104423486036135460820853212176586155297184616670000716898137404383553353439309745880692506712417167299122520752770522695759106665593461450515353551578763010940614027929770232713664330101313430807232393497008162217640974730394841286799091937769320431354509004110160900196716090403719204303138599079505356390080330050717293905286418777328319274373258267881578709740758649304760757503762955548820445313363893921895464162885618851709509906516142892284801824808170413791845710245247224059558183721611306517502646445889290868579643092546551528273780743575530192043096532783069054771112087280215003993262474832073582175846376109999187726506262599451613885933346339296600825197094575141653168309602331444329509563338230977610633187260849858160590293835808509865665534069833801422412806127290778718924835859868645063051685789737412284179608693835748493427363209026610435137181318227691206698487295183459877466878481901224805247976917857571371932792150505794380631149754780180918771605747014472180614749237922147936605091571796988517610655116761658469503918663157370116249612161796017822748412739896876145076689529812074489748995818525476655606768256055815371998451064321890824724261492617984278999751463545443060833040603811461086416304968523725319412298150307946012973077126351215733566991788517582356180511814881779432056703127803906906447639176213951991941141808235758086871529967181598955476767039591076704174386368697967322862691887493969899507584513457670249943634942979242865039893289251408979616280736582782672521552767014100745185685356819185099595078744600284881740439919091203320677269839214678837155478962935379985964811283518279835390407298936408970269986449376605896498400288520956777867730439442375851263666345166542024781006295384583887308082256739827911385164889712132431078682284612982789011002194489497333969071480427259123764302451584674937407374947941861021629801746337658368903559422747186937913080426884276794002049933175971114792338590709226847364145372007155726713347258978240925118521246974100441260786448991510157954674099991873543810605250648819455648726824889596157366684186189176919961321875352755823616492113046826798057170583880451814920708491049696641071762839477941202087621667065677349490134131664369224871896393035127963494442159882964870186958776312416305015049224055259498601713303848148847506237082108760078614510814589139075552631818935861066157902231038290906018833589058545209735118345185383207828210701898405181389920689913389277426701626990016798290218878014814535223835442912804272004456544221954872319511115966337398096046245661916574930845635895826361894210037618033861133478047375978619380394233312562056844880973663415622227805314224298272048892700433181281079923793498181004547573934649106207819650369421032035613673915284923823462529310942744251258191144031411989897436673809814500673469827375283398194383505895798733461640292341553756083324253717973466525008668344244322534245489246178108903574078569549431284169545726639467859471714661659610021025741885459947825580867037972173812969777200395157205561413451658341745458494429630310957207042514031857732650276261034601016287877087111174988385115636301072752804815463572767773468444552507517878586395061156840455185231087319556141700004716225259019158873645874571663695554554234685255104407589613495100421290197919777011770063380539456938301119405530116916363537652208693658060006117171976502269898803683732222634346384165980992661100859744774924225018894698345323042033659451972207123270810482691336290631028555669166352268922833913931719006017442112768772468616983997638646253321779842698514899181062467091239606198571425352689988849515974546292135084280431277802949506420723803988875554301877853502745617279655335095505281802883839492276734294889701870362744218517459492155928633802573873437665827495895615220020856297695603908664851116904182588099145172475945870766563646858776731429244546712035314883814081922492130071160049894197136715699158257669390365087072464213459411440514176040189192871748085286078368870560386846879665514510055535260583367810052926571416022706760906672486124861228802340071246658074431514750715456725151973583473048921875850252090161645369516028316282194945091937952309623878307771231154393168012587127108934827235628691383050178851595714693786088901466480214493586046350141211843849246922006591029348272395669146032533889276462804933865346023920865818623600470353050796683684261013250090692436787037316637637386624259794548227873220280117271012306188335009421663073812000753144452837111363945659902610432661512037827069033529957150549288108404202336843477413959466778921294894251117449517215963561913879830555713560339944813099866115727725492755051336816052193985353627959208331890867498931549576033526255065794067551980564604546710600518792044467533887984147671105080544902305876973036517776203165347984286594698441449124208162825404440714468488699872361477977487600937021854917578718470424668939684028385004283830342691431778201843619704850770668368616142272956018805342319324203855672790198201380077186591285315493038149740203231022203562387370805865881918055423124543227074965133396446452595021837930461707799874286216640559649470552259349416544155259267370206937984665105779665429358253799880567325297007973690591917411253766111841504731045186595821627883351961470890951120218716261523114171774065275724116775590903467029678410648584285663457707258906947790383625195698923282252690279926433841084411635440867822409413055008301933146051962111457684669208476448821364603283896981526251001019088344003328403605642725521673791479490470784900285163376095688566985159687444875891418966816562704087077879394341278961224451942283973725299437984179988763197305786505836868606128343975939325304110017831184230561630185154049179536339471194612942818551221297030144797868073497651439954382954277139332191749872509192134380327194854299344140526964660814316428988554803671140887394103133450635630869280442164822232785946320945908704829131486856137414695473198490095965117424371740855731956512560432256557957941064731166486275360619783720600650275673770728094675615019551873129476465009830341516784935935956750161792236336919727244508518003135134255021389279389869135363430225179654913878511403931547270529420540413594740907059218249683100744023856984949082578609070788103010130691638390752599636914737383733916582030166911265599018494319598573133319671759546099330830489234796352427106368597503689719818404270312252111093185947397823170843086238911633632322186383683699151620504445908719986076411159901748491996109488804339409759524154468319427988384276387037961135725233024676578602509662856548700280485657246563838248987828046097487934925662038412392714309596778929520383902725946004347911956546987674170559605828786332914027669404921444522475155274031692436512995720114259349588754744299072468830573272895202578927045318053587202336027116394413105888147858032124986409654607743862516052598573403049009118092706763718990488915033060318868275867850921373217894773478834300928351042215418323046956647594945164839956628528183840042358758645594077151216183438341464041974843831841964604967406090775134954535575724830953094281643767999334454911233893466002898561201274207193638052722784249051171076835111987342753323515085792829544965125685583024121149686922933591326276434454865547935108762589303659434054626382209363424212419116977299996261914422176560357151131513309670796028033955757866654159546942422609959464715889681293645820930858930790705380332368886311228874543264311581601043068500038457039650398022879201332350764753241396418890025159845468687199319663446506212232799641136671761538214527830058874100329696200099195519101502676154077855405645915326180671554355299869251350493779903430629273483710201145981327065213878375306489766914993671055641434760380876545452698167316986207851441430129512814318210751721616969698399100726150528558922929869874502843769718802113469286084576963224646780225496542221558285050692701464494028050153985828602490808470171946159235316342878883485704420839444992915591325874720382664284914858693583452322889853917454175480725636107743994096181346972592946989527661028160099982249677088719501184499542321829878789307038807631676669975200903233499356861198607854494592632493764170705954855043312864952539053185020337407446072699430613609717221945933162539380780190180666396369363284990830957026655436406145915623835089593782950289482298292832092851149877397476385814311826109062637388607276361792022667525392766141680190280479029168001065487376153320676090626574998900799457967683113493540701037345510497741799982725456257736013103088888812294696933548287972439382751638724378851984012472745551551060089842564955943733534717237880598450805803250434403797617843305851118074085729261035714822954977345233509251147227171512405891072805883854301714757684216733260415884690324717886474046451705221565461412608743658273960129705168739999024900769186215805177952037902428023345501459597756241187914966534496568868096311670375412790003491097739046024544502928107192206616442205347767029167915819046612110224191636745180704258725716112952204828006292093412889869524355818760854900168405042234028337029693381711062521065603805300498676064670439741415610735562657287154643210980707324776016082835537889818121487427528831683231240277981125854439172449349948764978550015294165216524272529085771989601299588895938788147997487716235411808798368186097462097310021633398731794258329193415221020109448685542484220464722454013754450012497191892690542714934593856472809237126616477582500573733008544366489669529634434465846683030298074521931924265736633597468865711140977553987652414454461284129099056867993297898527206645626153027264710962880708045030616595525627905214558904365998592884031583856571286382222427981817898701458425992907680094295498140714793227390307562624482409772009188907244842362410776653889924585213874203979485008964112502455621885378469390410874185879266718346823130485375419909524493853342047956992921994894527217217824406409326553749348365821037156886717515685859436034981439123267948027044099922482760004010405430228664268429721570778059382651196106466476648393850372928214443210026715277702587258877501603079891489903119305594714281893933548608029178829019667870024061092891079548947733702128581974906827453444362696513301026958892202825038176505252872576880492005337731467452725817792755924926954550522283484753018834562313569495570851665682835866493035904918123233597031438044645530123614867213600416278230371788502884816769357924237836431265742787061221809550006990721650340645086385404372910557783096567353376990409931134567786705042020218498398261032797092661409435772758303150522329007355912271301346406222078623698052182314869122446383697033450524051749435168078676447353877653478671644304977694965775174244352420100145451006029956368600091950112751535664423102149616200373888826855190410466818298288865405034801625084954269598104900174892923369215998817254542887390576066084703549290774286974444982945742856972020368081412282614051316163811705361978156923950415719402057459877494548252138569235346606898248819388282825410799640467949822011157597383936932930733789688700540901272512050818943497239721571217774278177649551943527922199017880744701539961090400227459324265084603622389107355445643035810003963481089049818264655928570146129608131940026226442270494786276295423521853233324579704833078962183551582942735446539589622592631232593206953586442374676263329809756670019115401644336005829403191131137520898280715126810870058834665869944488214697166266683962674099986469679705580547588063951337907267232849855407580331636058613655716704091103891654260682632734385762741723527456393363797891986188040580545863070948915374509089878141303575653403326949080391049255793092778612502596057967547987665535835632988120115909662730576868464076285265271312661161347407411620284421363625467988685383626735829048768138361262567910035798443271369352639658388058566630078354467096355841477453750539159203959123659846367548787005214097986601454383065528229594059666164300806325199116764802591984305886674030932843988318274623045503329759665925859227599690544954270249774051820696157950394555170805720638021672047287269246746495438903564542936322497315900886730872841141580406550038873514449939759504864415549800481299275693120492156165178341696363240356418455165361238466956701479416794939585074056826899540414195977348566099034216935603321357744213631118903013222049744461859490740038507263636596463437168171103636365122681065834635511936462573483741618237364510546072039801711204691109854278319005319042126635295686024819159359765712210333250523011024926022046626516174076494778345650185783317583686233288155077267748956896816707712671162848377373529156487132442086278819810488274551777691295780448235555742654269679977014456869985086995958452199536940562090478705918832757592862647363160194795233058048329246589565780396049106012443715950576692234635045553242864391608439441943127492251825010578356809473058807385366491932250637112240647242597424263311879859926736032567789972490507077905874426218519924013937615724415617662570009345967146748544414760439216148470616122059097357361553535609252805720008906723844854707224377216985748925608119516442657387420871509529569454028838977530987983687134880988352418941473090776841885275035139912572035504059725141847613482954798341428764887543759710074383406285544177477991853040900545370559088978209240473457393861748258367181333769810722439726521770253912884900825673603890180629236306071179761756704846050630004728884479478310069264277916219788913733872750601592366366260022759675939372948151246157596550235716406244958773843935907156593027100812240333188281670243120938872833595565350842223072584234682381306369713608760113733825168427529627089763676623964170114506296468398839077709216985731795518039258127698708721814533533937820408265707604313387170905212737138424988212381842800032425426742857904413781510041033363203131259591034096171337745804440146633139004981465267975259345996163159427518804596273932977071184178060341218056331150694791845203281703228359536617478887266775091891301176907042340782069019979776020232311702436043862101220395886821776543827370342436520822371015664616623578882018111214448766355803484306732158422025668379707493643303002986418364634735063177984807452005834007961504733926355394418305765168503262059835606573344491665095260047432693244070646152176108784159473525589328826012859773859404199187645645365391623252322322378037621615173607040691652829454374463076483981640654326590882597566977520891596903195008389050078607762033146123537617396500035034161975830721326854565049617868618404616324787652146584055786569102196265358159014083542733517409020618714176092211639202947872913325372906659827360290723056577357693090332435446757284065852809525261979274826352837066139018990089193310976935839163036996809945971948976027772604558867079406261202794756659714602069086348932487421886099085601107013240581156444978279679700113387664165477028626047905990482177045297785075369704567460328391168550026549419900157700196973366618445238688430546240121114704231837777363932055719757711531239262429457739432043073262777607239322662942065982060438395655964757401644024523364572922814128075511951866436391930921255693545120892878681437017970548013389161657090362535791379404706646416073659547356104546702609079809986773202478559250477209258878887722618660514249927280709199965132859053347231944720522116581320158051246310721636428614143623923001525344915691288802915930711842346327086589597518548597494541830274335024983780236395341711947272549543436337401780287941152884670148818284535226192826915279048705110522987508015020922535158967969942615474036808781012726627640966806703897512083757717739320247997148998368049006935496001569557652596832052823474094561173222206238903294379321644845693696291489584874472916218218809422676617307508754310910046312418800561211812910857456235430782333516979041144623632521769816470480129502985278148499131212188463526761365808892041498246492585007075226602729336402356694608359435584205737099555353375297466965803886787026185139844315079942546418216352822494797761008785265415326862484494725415456376846248968865715373838109372653764979615337977117232015995804472336909281550610259443847165054312444503110572518067259059505019524104967494632599731114931389478932263784350058273847850768267657882784998013605632988715496958864080229136616361869868238873824055001674362325370351520809851104262979739422910282836209064458395992391320059277833303673801611641132199870359999358278316159297866479430565869574319130888548004478431910240224769340417699369816159847598791389267303696935268257812814966845628288837564314699906603520354428705521076556003705667433767673091677095347255499515826485173113493183448063397166330822935190362473433949784473990077791232311091704039614220680452240909247949797158162393082499403147578809457446099767559307368017375585425060513341544822603278071466577309797444047267445144243433609372172841510596683798628216213431211376983978533943307563904049031859555991393335930733206651481519864854949868242192659671268112424877891807908939635791487642256299445515297498193956481261462180564921385709938693072301519260948562539986652967117959482963811589373846987778243227149942170336912118393132895365003851155285461844474653571513920162891987313500094533631815152329073649201012774609972389420210794278493660498964424526778103645606094046607835481335254753198575571656061221940654072242777933974449349169605072586084837436145858355491661333111030539508930310141946559555032917037376216739240240471525830305144853332755884250659519137884726715054897340677337827883942545083773904035024888684586228624437576723140246457101201232748209482711115676447636158845137240313097102582774971138510607536064166270675461350177736216967059536593758304697210778751235099962528343589274163607091056404216474580083272820270177197036663636126830765114572210218420939943043919517400879340207987516846380149826371339894359048874272285354146563776121243915690551595421527100490957554467718605717929157166543149838901051468666246446691199352998309130450815625616056935337284908517037200351328145012444605406002734624568107870458736114380334033677908567283332175633176970952149883311814944063964894072126772826343512855698703858174097506719387139040751706668540283651994750602281575146881036919079838455136405791725373388684367205845061252341044801825616875397033725802935965283913996076810907041994589959190630574166500793893164128853964840149662022942982891631870019655738492789264552639900151948557017456892371782987945666409258244706542323143086275167215722330850229917737645917823601523447596842926992656733460263221046969211661003065173838853620469873352475075933919886685235245625442826922250237901525639207220453255569737366232806544284404991692969405106835924919677498567181528003154121443779587125994824394535956965157330517960944978882134528753651430718940756837952785847085801257441892172268881938242291752923504576746483830738418232140046857881513990146597496587359258847648533841617391869538551047436065484106156850497385595459120947651294625109763220925836812340078353330034748471155343747656945258002202625446150660644811728827272129526413962314653112396013160173150074899559991651735207602722002013696039243907753175909176943876786655191557808895183954795199074369658078733728637310543201051579413495711981313197204601002918051502109785546724606189572700837571971671802435249140310151942926588901165165322329922767996271566318141861784602896118182293646770601878911575242240544247845747922824789993615569064720309632804788727402790226608124086844474001859476944780793259491711525059375950576362135794976566211511776032696483319472546291826718759536729281923479862546069849767435248887066346433793794775456765659740020081053054808480322387107450288400699981776433014639288437326734051332934169489090829665941018252811921726190158911930008758833730166765838278380533267372486060383197728113413962468687787758671793749829089320914661737630821064825984952862424409891937231017630598295823547396407609146417363167399375538636915048731446176917772133214661782167981223662774104143769057663442943027383792151230048156841280563178499234647565774741638287586213165731636898881213405770807631216261864692881437266506852126580552345760200530579290971838453829006567357917734408601144105888473405301975612757849262255678787818159315232137690873828877151721055638560036328683020624080780285774340168549360383329605204176975852010351380319166643871972764342740017001924686004934567819627829274333601962611780020475446375555035146260236070067387749090857194038087383454181023703894967889957423623232137188719009029968934698740564635958537771173966791528577691129573780508119851332200725074042796959475620026798280190970068088679946429020223469106640069145249304585103251016848100719929176917725812059161058905267182353455216818794890043667067201857039555824831446191611823962971869528324144145351500653876442466924140443884842874944925402256144030842085950839965878168879131976111568212171872948366572248498146256725338182502068331252733578918450854368831692907519764424683570233445303340284215004081289581964909134048409109330072630242989123902379819932176419960208389953507632836761848602455866044917317078321673236574995006395035999547818726885558072976692648811220573024730433845384215431284472262705408885078926165577935975811005243309549483219316023378745316914579405967996506921413249714273849442880562571260973504257782062280991508399012916840138721932101227223015111967406426549931054324419752955555279602978137347147429891821654509397744040386881922845843246236169580769940428243180371040860199112583558309530784465927842418322992899067154471901791254257869741217685926469309822735982384641915607583599873126261161767658075968264995945813894340690597117923453262684203347172645418220610164170689981481137150045126704425956457742632233913486776739660160452961497004194877142427179004235392517651508188627780675405951465300749409820902723736475414151582308367709434285155895918759763463094054466329707802193713702182312981777114492429263928732552903296200517492902142859309779050623394391556685107926503933898252060109049855463467022466662318964998618553355965311438260968678878066862967210300578824777321740488656048157615694023716486717703841342432278878096102962901994058601926451668455763611722361031781864950746303324333774204301457898698790768767995922020141931197333087677507825369747752032504715042014017897865245157941066022897241778380507721377128671590129094409147664582020269844770563329795368079819615297811087814383517790279166728806490033992727309074274773595237932203571804400855022425514244965760043342511730381343820631094927734861658056969356382157028740573088730004679126566580143163015759601105088811045135576936569301654943132172018485978540426285908199418317904363982215770837696272750934709586323236128973823366448562957640265274412043160749303612714532794051432712975419043894476257128526478848639303062776339384159977588020641294813176578633418645717878615332546411774894849333869776533585697753885598903251805243559736807118705394903355831363029859419201175214419570805707958496340352060574752342501992541533929818860260503760285262617527510962337629508411359647649534164636447818602515794013480864106114554630121887599369871376751208970984844476684125926626769346423587801497805248562554815099816160164418270682920879419019059815428625993181760016596564719137482420171431257903553996523850952131720176174087074834536922924343967127937362415140797462222966657024239595064779362056028229384455297486499289520764352638276267968290050359397271931102060409806371342788105874037364487962251036150702371679603805530848783847140885465873524606750417729718264469763385256176917840483735218425627997382418194751382186258692447762976501963992860613932363768721461588282527599694935912135557874092155132750782349064098533603853142287396160388287905627189966866541835606949557087288022354766747137539863994262291015246583705478956583196055562826047028806899120991863369566350767608436479666519628680635052002257993396028048046301211995502499073846142257300289483619261757967335567531422794777778918113064199364996534351125281587740672892048178312006027171492728322142278519284835085518770039519378246721025234459192866373575469005861518363862975717061084576504887986978900290151558032170505861790653800475013482760659219284891371753392231750455744584484529689118084814382665186704591851038651771330881323918568704433440085253166032553011040778936386903661530317533193587602147700539211593398468467532340532496029527529662484214412011294976017992240891771595905954740975880945607366574862678314242247301880824117612718047672726575471003937880801655006135154098108193977186826459693635314590871852168628995724947411716810144122021047725784174463813445589788568880647362913671209151197222749292512119050665936207813903543914077126004525931993092410542206898086160934726616134616835030089039659056605268382858779224207520793596959641695310821715465767340572025656486221663249380172465190257478325759911673294953897317757073532048213567750150386790563259429365958305317244893209466818556458962675314438042870429174296547405591466001696303219406470094004185198588522309015507212366647494434690939982216273099272882879865247624551039260231672283179441567741584597072624523224991027422216904074407760521366681286030059961817598749795131915428451155548891342617035632313159165974268066878051219200218518590887646196429382669709385886416957604408832148213997513380176158345877162341911140719827849929084316403162458299805282382799663075877483480341433458180165325439471123993899388452501668365342117799442443186805688453672465314428340952235957117993966829771207629037937494785091671139523415042488910060015109293152102339916726512811440851445885925584261103545010257437748638803606125438105586531201440147151287761112348150593547333834365354922449915857517005211573779985035446491466786962409294943168256061084648296101207649866928754751663177003592105769430654696966312800514470876794584528617235871620831279995156877536402316954115214431214622264876233720319600958499494952829792715432122098615222116060356286185467255581137699503007997568839367079032424986190921785548384331972231085819914176844745684352923621415479847949670542376617789865456359401089030124901259007261095165253174620536713691970577507496196876040569413921774699924153426474214848404739916384188090085514230805107808583234633893775280355543831682759428456484212022020282588485811904048400347921198661526601479951499832454158292361434343750405751841076469240470515972789006902662945743923298133747256827624121090148055423135225609303190277543079313864574870773091454794888931216376004651818426824189749804336147422522061917980489635707975523439773422139586134226829207586084012202129239666521405352869511119028778153984988714322181254618678035490214622637701332695170487142963193141951740418776523099996731023325859254362664261774261492800195714365456338782765646485333618183433869340528458581663925986901769655917586044725260330314073979965957612575379239570479101220970480125461177830971385657256206057511114124972543746783185383074046538895587871867786416955619154765587177774310355755309677540069603623770890238888104809335162802632524934569413511200294542397857187621221196515344138739203773981085080192450209533102160741736966904426234946079713808066768882888126811225962590369873874129993024591231998279662416750989560932154654987740025601576628886743090372295468396179758423047707747302263278422264365401772159686840257185299568198366505323778239871726761167246916053133194153757836464895355752263535056191356850556636578842592050728220864816680926519539866940723172072083675486605873007761783237905042670415286833650973502519765081853645889473317357035814657735533116045938680637388753953634518934477062749100634021221514741038413608598386945562112898762120656272568126054258710713804820058340831687101079893458012826684619988719045791767718011556504057745450524737864411905852734918581858778835975801226596181753079116513359844128681025740494851151300761455404911044647517405152327383445096696131920432930177694975120756723480917402443345985781248102832242202113714116957406798684572047784526466031771570496323040775726990236642075370623679238092168174825450494189503774339022649744519570211238624492256360700487302171445432939475258585677397322143955301540660554090204463666372813942438604310630072558797081716792831113709895962261471402943225280437941318318046559927331111169897001006567589849758959175244304277116440741706326149812949068641224508659996395541479675780255722119826363563275188266570981742576232612107043321798296210224056349174801339392160095172604270451751989901469078795762804375573526509927406968529505213433032606145494853368402416868582781766258294926470907337827238984004652619636863091177880176345032776146511990698288700017243093579239706821587508561662875685858065492471522625579019274426144114739436564103645847632008227902192176287303155990084075926446473349845131110708881257173316006210941540627062005891499209348486056426420521619919333356410123059960852790495654273401836167258387540284204409170799840304718523248836732608918039255436388824641561315929862080074830631716507726250252605219168411598287474470910554323786177525951496683141800559455697708262932279798989447829786250353233229297818178980184033776803185338563638188631330895626447775224644451324444100678455808325718097465490358529741531933938828185138331814298818919367604590101724743039099651308561467690119682535009797905105951131437303826505001485618154102326740235072370501200836849262768915722078493156626249983863654286673088343069150633346436173046599068142701107258307460651994244953882395357672683157617751247215576749949162585769545728520867875732431239068758029101760666941694264458239888886138980431951159073259604568513373832531911499275663850052103149533680591518825847753419858808930865958131755567470361576567593711109893283020492547690377856808000971670356390223829981068867872782958893102790349993262783805815507819781808478791733743652162197170818387047599820283944519983357693594958203787377522057065397933446673099775931439933073273421912782343337862277391888347556864734300610838392012330510511631704953814011898652127739294576380808751419916227867594687390220706547035014227855952644871000114823960942840015335487987741779943796175772417535101486873608406393460167889634006458808937820011141192352144670022971792988876591469214141669277080215079838947298914624744893470952353766033091632944602033162054428507796281460279900690843220784957328258009140597717648553148227910326197721622001043593530449188997230830846511362797074705905571988497366185913070243865068344060396496120160918500971766187915047805145689608569549858463528625985580014214059933373977341421773284832623362682790477068452131520201008897352399397788466489377457631583901011502510614035290857016577616732089475126958094335439899909769586202546702162986716673384620375328213355825399324451470439053284741308018412760504422639123623304091030827040798550149933868887325690024314640426738781277920904084690890323551739591953278589444917689262783340670791739861101653955239235967381186977095045340136628065741641862326648649055704421475608191920319818771338438452182522255746692948475642815417198720013665177284645740381493355966665912658037231058040473332083296754261962279479065064658436323828215008247576712569534615151770670665855179222600229334619392744584912611504155832232127365529157982330045355929622882385771533167777675395257160438896733387571363818962708075589249200168162087129865725469780341011666400626963373644712243272636252946228042132898971803519241749939542015917235689082873012741407711704331116974666507360535113492238583285093380542790272049521623413251581596552484010225492940683330267016301447208050057335117070751270629404883622472757911608723908505223100567287526286213010450201564718740784134180079223337152227438634046866984274267605657951859913594335545967996071823963604302394790438980467665596777541670542718124562769118459258387492933141862330507844181757130565374763085689015970053445247572932872871108173475284191601234239804345576553261526222227251696067377009937848791952987418655387550632645829213747015197127944322431621982329770544354907278681310887388140821479605560278117228865472716249370250492227439143394880803575606992506234704770804865014451262926447077063017030998058763905145629218838373329627749808460568837935561648355104890501690424280619990028129121950757376392741564426631499480887750520401388627525323525768821657901747145785357670590000947002900142838331290175937321523134953018788002194448959300041121701712627505620039432842896028988745111681541754741958822038302900677870395257740452378483895327353989444811617623641399091910132974560224980655255422642961617326133384276410157537159686070790381938512867995007040965753523653589720656701736206583162064627976914696216743296725696397532055300775928505369258693568937134510104117652945653749740172579455082430757632938027281002416281384494421008082199195487129955951378632251263922407757441658728693450311466361108537521519837599173597598308565301327423394917604049586356451094356215426894927985865525936909047150038685052837790046798511266472468742661980286660065856266196954647509146732696944672409711973056039898445060151548122435409744343604457577841040833419010006396294006167622765163896226000879565039538190304019035538626919102537435701001156248355287754467332764518911690376792086328400617241314463890048951234429164111188235393705546209077021970692564093054526530572813343849095727993810625587004371497582193129240633443363581789191978037172261087761621585269350972748317386674663527497195263315503817561062292219563690248771099090742062313249330114507916847386076731439769610104308425500352613965797619455117181126924101890419341969107335239016719513036069004311892976688945526540851948652429806145927188600787046691626633390891423007466686756070448051556613926057071705188226127432017205799125000635190198740483462329110127632788781846633312430141693150955372983058365386221116532602702715720807659750878891911093809387031153269727967986976356875563261067188589398198127312409164455786083526682974781323484109321341236247619356466987820044150003042211240443719849609949450082284086330650879244065455301499073022550392570523925211289044355252685126970588448404094986288697952835308674293049216152382857596682653882149619510484304449959332471371916339673412562411985812908623716343232828877952321086245306532251784596577402349359287197385728049936197865131280014655649864526183181425815160476169333146759849740383111111730940422924420148527652212699735752260306476288990906163954102674640515568219510061901911878309855699329284165666224611312004067612439997659956813099137806012636627545221311008990795549681217566297093993784692418786710526406304048960370695848581638453096977618028652085580184443557084548732110261215768123291888667745969946320754206794431852362809943711420884113085530289854170895986912717956448897026363188124729290719048538694528564608959786283955437572424153512179780368678086213997747948011552685237483928570099634345894521076481604515891149239455442222419290826410804599579071728043309428336998726672967992010507140167783125969826916121710554466451913152386803327465433281131124192674598683907310573671859614601683002858446615084406762676482592562312148716506007499358796124698210066055841362494298454263544596025481796801790817968838142303206869337809403687828167866342799734506500696688198113993964868764072755435935228256676270106218898249840101768509922289623204315291226146678931309958398014800156089261435659990193852751268662864010447258488014383401103172331142126643390116514883626467045295099436903707692164399412377450658127604143752184438490198298549990183362231912688185512167734912299804889599445152560194559718484066424143498089057740682473762559911531203305708285205514444233826432266754599684535784272255543021159288564897375995505809394812687718083309183676362733113358458989435319233188388323897557875079129895229562271975635182054264478536499706115365824817222421191300249635413773174333157950418025740276450430781440116681976287978010075241759000760752364927515261297103979619718432828089755087752675354023934698205239581091016082040167186920571093695883849715149892862174350814314411407353578262529808484720316086086392795618484945978436697576246973216350961684887076082078858086907217517996775595655129099008356141937382401225590614444332472032211310961748171991195907367438373640550820907919274468217702119182248288841768732705954784721798227709944104526927789671166602911693963009365495859645038222128947924755107162674052895713729177288635232956836880303765936640802534966312607215124303222403710965798906022831028095589211331470209059246046419031469848663845342068385478308245134582139747836008771882757802154841302135808144697541740089559361959182632839463965284722353548843306477907146417065457290393966605538401596833492014064542706538493688542042072093535312510627461315463482456481181514936820265204558826255497978941578263184174348449770957253730795623834464093468318280583419815229844680530687389543495782471025871094891931410351050082098140288628523797902369274706440997088791385183904820034852422742829009834848673312552464615517831627715424529626861202408317459229294599211952646414311606497852005013970837163209285611967087091303170905254550202574233927220515701654217055493488524268454651861801534301499975110120306696966931364582762521100643649059523974184808621458114763218744549091626599710964324664821659289760011680908252728163059134214313050197647445548026946675207741180579054784720771050606569440177723265712915556276953501769801901407159621904800142128709789596039635832990298337931417826819485561030907011872270124604341061512215057098198949162025686582973524440966510037873260913746187803623339273527309352509493950954155477379514450195207010564005560704367376366096832526255624576120445896294015743320181198536692087356200243916327311230561749114935925610253084014032044578127538338520285658091503692037319255876080442609433045875727426350286445623885367166041962701434486154084181699135815637829513125979799545838727114910860775746489786584944835629240643150602461635291414184506553054070974876284811010651040293698130232088719083656585795631027884802991058158228596939634610640627766786755838998994433162532465095507964924528455970360798058722803284527233516962017797752437921322783729883614852334831412148368624579222827317925108666067253274895763769418478731182507332986826559706090366054853456944271923998026415250714039385472221700390977818142732613582313681672718422903858268032204881500961796866742770693030400633073570939655063255083159396033197067914159209156181672869737857325674980576669071456284656845215989302730291876384056944930971511884591201932569492288770526949026319891647578849496657913931813705003737796210911819245017420943724584604393207380675753626328808113050977191105483415942381579417463607359276977134253825629760583325770683839126011169121628311483975602202956793733887640442978065866548187478862974133791197441787259250608238309733453657028438886057769439127269725138930000434373207819068376276036569563692969438116736152160919824003475819005444473429338248837145784145133888243919778427595791840111583912186797551356533652492006856265111644644233102511826774690339543604119635478858808746140421846080997754351034404925001225600628443292006622764499426281368067385577844863668859992641818149804252290231628926924115345451509527126890123257078173100756683327573159861081838357509219105120962815450023499289873520347114202071798786565319877169691770075439050662169852320460888219760919732303484705528694969031193007543188880120699245693119806979122756915113502243181496102855938612730988801857331405240978447888704827804183552458682872822566924686720298231331943546328756878731997553583425462595255148738368918334299810950759284002837860252540878917398825990653542573966370124753637672939619779000612721449215323427128262865966381462813613589529620455664107371122330111526733134954955000283676029118507361647800586041046450837618263086504215554477320748652808059293190133192404960830624628207209093532800071049811353982204527970093662003786857107774927411904172442684277052826102080083849114746830443807922897262675378747072334480352914076346189113817491792081209457677833842664358963928248234574332304833336995687585249432820444181190323317503290226105128833980393018200335137346353459657403848566590031574994488928901031831611893714662462542709075910510999228563635862191559425307480350684078109962646029502701573112102823155693208878082516147888638947472999276705308864198181697139622417290999534940914965304641491648136118954111382287206609012007770076458373162838759227459857060170557442189328539716275611547005395142120281516886431966925620026576699659286605267372657154265903392680402905799088622843142306273433922084198618314999592160152391752198586532023373314328282590084329067143945397308215653793588722533638646782895171597979077345498402948573593799692809995845358771641462482300175392528779105777106960385624952630812750591826469818050879702741544680103035945657143347323288078438503648957530212106564960209420323574998455225527807857332840837486285546839698686008855347567115614565399912233018979086478425013908269929158076296821092873999195366825569946780697740088854703555883310529060840643646233543702710417374932090062115727038815968419076621909765968981626157421157779494348503384337877376014454481499077984490747836100659764713924144650325455111691338026465098273672832745635226859187371561564695522663500085968569644092501361288993497281252192710891651275177683390255082085653417728266373163546663791085809584726787054289095450395410965257349520984240486491795956756304417080759590556842840860370036646282306809212076681806523818689447023634720017865273384396477984098401662633628464800220051386902626755711755516046700488179396639273301888100647597667080981590144442014006942286597190910435544233211615879547187807727479838989029048385837579020493657081298158286616841395345396744326392202768872658685652840517567077423114104960259677171270527913422943526439224623173028492084566381801775250678250780393431132222870516135104556403108113261663684079687499640008180840236599324873785332815939844670592768525800043956412325861973711291574827310059134746401566222065715069180204567562556475740641928086348945307868279194684142260887655423591046846967194862718135789115680878853381370718214633702595498692694588857502305834366995703202107117384287007784721373706077289528858694862564595489038809706251151131362715149662114176868248915279503512298612779591139845464189357217001415777681087664423332195456715725708970147842489915060742714524883416843930214811239444599853585034234105350751591651668812275745651450130659139274365218198446419585979903100342350267262637401756215137866991379716591082593008464349166364622190717536947581452432454954664809852610941773583745383453416189767312268828763507881179845512357917222009391359443059209146096440223453465665801045153646869319717815927726364670329183594474190816446592693493455925753855748058016871425375305073296699558573951115558070749299410992784393860054179234735730884164376437815639394989373960391801781692311307351662942955035796606048412794475223998814652130389828921809318202464794896393420134816848544786210023943656670623596568278917475032013732326337943064911939304246059178566028768443182081885313759957828236187115446276886271007982436223044877096986347040285512589200739841396376455731728592842148281355577535699123359146036120938628506993586264486451553787769983601116136914357366817021333013648457394212368430517720855672611410860228554062994067993875564494755301103811646311385983546889267177563885703971072075999432639692616479800661207392522001015596206533411368130664564238000595970853416950350308744361928992500398301620748204113838531985074508661014157755073771152245730063487229426347816321044182313551400234598101922955682207055837528540093313366896840150498667413140757964331298901440905230631676928513469000740310574755193678135729581323950845619822947828193455216783114503705811627768175931839611315898470838680216745265262296501486535391939065870183204629995275363859503741409321001225125873769146836674091995079311283673999837322569855964090965417913065837533088857382528805751761611874105443891884532141657861649267011418558129294973842102773789779849634436199745200513218533498017326265412059400775537275649338937907156257043989387457567905146520396743640695480494720957702602109916542678435585343629824689010549655821953115959367824091146790276829746994653615942693833744385725367652682320821041600300454903834828016606367874363225649804500036092333264196551100914368608938652376811324315389042003442770390752360413523992094366728551973641690992890711560134948330779111365465858273160085996942583389184560552524836444877147917193083774858280947222556481851184873738753052625698843156875773321015527694679817085688529847629065804110278194791570414425543526891623708118514146712250633967388727075250941351817696537886553926520361488884434402558137255294703820381825956139864580103199664779235128337044280721098895103806777688095769064340933232996303718124747118047359749510846401372276477689428937311075282050810378731150764369310642848142656594891359554790219852972352768943112683520631477536040710548319468431409751331864757410393788872099394409805521023457243653315018119129014948746570525481832737990688007862683901188449343344266858655612316521858686744989256542072545280187443892142460439669395315094149078216401999588243011750761975729262805248139198468492851737998301504242464063047667737938902467300198581167434447780994532832363545366224128631509073119024484102167002679231188277520936006716651781981155065580947813945905017150698767627643730670500099421678493750973706865030111205741476538648855148820561786470775826395389676486592358401108754997102987155466343271868135729466473118305127083980812851319848293887465636437549606672871253727249716679850019516985079573571571792456952093277998622306669241239541406378744850460065227800672760738130642937541266359988253070378320274263005856896175871669758581271676556230342885411372441101584952014550802974436638487971237431772176633616404718291200921248781536514538344341446529884237930761452142124799318915058253073545548758612884456932389762455941696525439169153502945165557468572575006773247659641017488907879245060123320120593313052096062783933199312840334798840322073690134316833363739951946253076691774319918302736218465374434358328812393010658689612461716847649270884892789889098770114078578393156248232407442993476132396583702616642455777077095135708268392618738334457529722561312642470434036808531943361914799997734128684219081967203853333906532399148087380715344192398545435539575547501858875336338946375924037823015036305684025237681553981143372991895669283740400559189054557034065607718409948354410045113458179374404481712289212640230733889251689655555825313484774598527432628286472063659171716987731720284688737277252657632359610615553563400442102957865980541660348907536009123972733639940945194978903032100296969238901120546586924055161688119510151059948517002821707225990602209817057883121625344616966676250246656414350148301316448904218279101546550867301224771086446173340954055845806331191278783892303169904952548233299328505476987761076660831232206890915491747708743504410354289280643496560844823535926479522710363801435464356630326176712692076790123005816195737888649103696925258853891116810441434136527476768814179179139952195043130235180324637416718806963881378275625384106190744675675831168058506142923337608951436199805320783185768245339987657989609688930193656287092582986783563567888919251800374031145706817633773222490788674594789408738743704755476669618010861221756886452647894413272810244738772514782615361723974696005726131481641609329465629767899531485635253011916165066327723039472494387921463186147134182704759203427290486357940638210751414493844102908700651014005035756781966065066182373890902454936443356631261397234357013321383136908377731339869593821529468856565662975288098683949216141538074444220106082862912230528752173184216628442782449024924662430142894749698040649059428073817030377029446269037757467990284892994287636309457621316240269002481159625396882484709611313142467232835103040119630154528483028863877227544938624627095897139651057010528091788752579290305886259740207350909446382062679423935465296376747189669499760118946212094477003918370532375560646247246168798348788065678516564046770798584712339040165027356898425578055629516077168238316972287404481287701833284259359082074685747162705033135694300149415992606393479598703866821183306515506321532320793282333739086359518203268187252443017145933508269144073247165279390241299300447114670532479999639463858236004303434747361487433128285789663648138670185663779281179537092110091409702546173222203956980127428872885286699243121793793316289140752495847637566867134908559495226666005093433445581960250951869716571819800399346158048715570624944532514297318817195645319743115648299798986413778014734379521179750688328369387155066341040286546787192321809355753877753790389108020592152386716361203293742825939278280568500517476341338376712874553032450204627967911262484019461274267004850445389665532658975790886271922158619756870069769265827169554153122137760236530387727009993204463896988005390922453206174536357317760895147637387307001311533306187412283540307890671667370618366942121405870978128720010247511051292906203625377605189070589940244908409132506719322606163487610290286654120529088463675175044925165337912177027774782415776980477429651726699390953740496286801660285177138221411331687434909155962179761115651558085030059663593424735301256842717227523555997782792424987655330113289458208257509429911579768597288146242186167759670220421141393015276930325505447167575981220206542296302343716528918931063195486915995748035262879359639233114159159316855750139038491505368835659534127210575170965962782940084458714602538389270360498259320299320744402416942745582272689771960745087222980210703702520414667966215045195773325837203437962168868146021602843406917979338797530375361763128142404515883646707187435365391615273389990587576670075916644968273134043309037499540148331505312525156023931698398256509252597824630146115386908688123520509647190825245778904238024596691715440606413659259868396793553659140161659399452296800335506751947123561667754594515263317622459391198506281773583029073278595948637574972490628158791905714554636205989213583445050122343811253230443554252994191911786634111704288973922682914294926394760784986636236391077050812576620528937052713789696511353822368992696168594094063175900177161840302695038206060862921645849153824781749785797238757104006023196610405411049508852538908661907429835961881670080098467970773961397913538995208252895240806503243174053946971361250073753193412849605664265202462015687948777067723361791929556277198110185698523105269777976941031657376889355306824847170961224486560807364609213189852086574146333943101141705759023724443626204500439491241020101377649197359244047103582702788445296930241716316374158525300992094376075119390024787283332903812122843572551055720009952795277838398301111104314004667413805426760909224934052496013695722861928553827487407239673297364501741085372913734199965418213141896484310052812652983814073837876269268837956859596515925366510955721981161712217260957093755392790867274583693242284893993712244157728321725573661945053074410097468490976597772373701187259362972059374965204966979514197898973482118387162117846095744287880320905945687435556233604057126166320492049665241348895753594854035786776809603653217469793925841956460946691400968429258406283753553733433185744865521546833677847716807462398904051971353024375528895356970746593417938436723971473741302219642374180738512514588360921826973812437364225820549369613594232614867481765761902138181180782724419889987994939537452562586933240129422906357203490033094493127550225580983500767508656699247840904779324119221817503140148467888641310095123611558820944465767241978181844472526438455363585524281412389720900939149838103879620503449873571317342345575240244107985417368516520925220055644302479838236741092373361208453317558087026713190659711031206204327944500701065350799931644977466046325153494150337546470780460447566858477975369080662605616193793487714133209942254058364462894588040493558695283947588622846890255559064692076481711375334559430064115543524513231281928621115703584137776640915744158834725039470840028925943153900120899126332629766827006045930155107579626109330768815517043178511741305633889775487800221223547705621172956897212710228601175522729869310851601244098301348966757686925417567350063666270351269994766283246886049992212232746663640451177224730662606640700373875625240694126604222586922356315014740811351430287694237173897232518079122045168239282682496240977513541092909325951418820994086003371915188976128462992985089721837889849596031887179617975381495123277954262193477243792878402222000021375280606233772673961843751589327848209494965208958597214836862281438260391795296550117586892701737515697793678049719157282182856076128637275523907492953341193239445607856345315300529547548449401391452918777496327471660961312861296413654855296283224378618082395274400288238220349773339719140551705309726389857002541153932704670882047868714215077313981271808407160299733017221535865875353181073029827201298999917856087321462815381278793667981638919009129046848016219188984903552678101632987920796211752301897906097098350622964967267859464967048355470651869584327394502250802820669715698172189198719763878708558862705211047980051129475884247539319720845579416465144998105732169524951248972272660642214784123831268248888279006637138756647440322033342352926361340525053967708998474123096395800584039829737012830768840976738868839241075192739118633971788848144489990927915259054185977103203559714699387402747249514928188377895671358360906273619965339263512882445733363498970033320953831957501684986999330606595546326498029322187268159948893234669943029184102063663423914158262135792253986600360850511622106140092024658823198857163019003300276013219259475283183974010499140158003112392279897420079710163231691143050668390433751382180182338682863302678054357177717007857164889596202069775610417594507002443489656366091058025639519940360209197214692752188712109090631206805435835941176739374579488518593802322832344323984774931332102493295626520471193865296844131727610872606293885704073492880307540097025962494782046554250544244186282597378005503381349805161615649385592217613434027849681544187767304540229292262873316236814014377038808272641991641620824547071256374122309875323362294836713355013069356283348177984450494839925214274345574667399014357086775888165906892704110878672275150410222510819905390048761084853311877118000046104542260179836840193319299191242969422280560378522488865388198792328136278777799137859277355218228218574062417133353755754155867702310262938302856086282806121441765549437064699016191467282339616118467056171717601097435469007849083451189547358295197842060503340737923794410676802373483674859791261216096976616438563956718194101234380429825608720899571536229953611774433388459163443036110205394207345420116886705902992393741931192418154535039547695132858043950510000261368717602738694688785985415999589998312981786527507288206205781198151605677933039637894053690375476747639203885664137790658233556086251157539287998706338108339930017753268408280532292682357240012630960535189686830595502950893508464771847840874106144022198460325414878254330798032501864457944631794310385869617228051248937603546431092040418027011409529385503626487088991142261235078833831303389551603857156196991479763388713229659735921641139634176665729562269551320968911283540546610383592566342815446417133502556504883432213134311422984937549804895018291701682898448961011227886243963657845846947752929225330880237710749556133376456876235469433253143414937293718339246349949122433229888435103921866592171872010527512402684957974488383757353458462568395576194923053621784504778269137698978786323354772399276366047838266673099137986709955702439873098243106948951565819472454180808044329328156477016768486876880216032114737617203834652941334720525683167760850289949469054220462560790104195722543835621917587154149363467786577324155433140176443921462434066004027803905848689820979190429727717754127612478346850410375132624528353547622463322492338170026016709757645444828540662656335250327989268317152556372255145278897897284923528868380826702829024132972438771716951757434276876115622281938302834538765348060245756407112639024416566930236247513667124548957335700407460000251759495825267346977639763556327940272938318679913231358936648378827821162998128096046784620216185336785070105552949340216051293074823968822494277405799420464203927539647431978756592540595464098550885307100346739859761869382351596580149258387837007544469794800306390198597979044464116210935223025542613059059253606903451108825677275871968007814812001519450946093810725816477037396732366731616287235668512666001993472801504258165742182122618431871537824561505064178056850107210730619999676938348659927466762906486035779242273209752255338401466457718611381622280547343766784300720588264976744970793624766064161649848143882231293340662508928466161298538862076852330853313297146212624075883688812563342905348389151099633806051628890996391113769569571584997011846464723884208754927027368493322713184935198090159270223471985594414258404463245422640711568141511474494010717662634102844040088514198204396694817222524274384097786638919901523573604324428147086907292088466242603127166587024672814967028527332806259804861580028038922468265447051365242094565080180680131751202122207985459803041072622570747924771537904903381689876715189441823021296803192978161528912106009735782861099248503368712986667586156860336477150649067115702165524983810169228369571713197925714533216495381083571492547511637845141216041745832168007350214827154770630198763256689601388920861863995666739670987562327419005748708410826232273024491962981494958644033665555493073645279996814821310493407663581396658109002260193728443383741467261186375317634563018908232772725938766466361538505854052277898550530793414924099759955943866938437719565632891844852703761619673533544711916819862264240372026018059949804649163777691655431042529504199667769472127180023101528122656879673031121891010694897536201885572309207457063784782869959535304996675465404333401087277798944623641497852765501501976165448782724836489828839946994456117583143016930558486365126990690138838137180232663743174799937621909954693084977343803477046122832715295983637725119371641079993243397701768585402794756052195526030320994678449977001987519561700090009516808028167520082640366628947240616661993262690862844106213455510197172676675087600571182847340065201391567047582919006079257115959964259546779558182372422729759008814211751231585995083208709321485087488876105308444094925666627216262683122246839324139370941534875549988295397976334281769369848035314839783495796135168095516850027827374643093073819109353423228613734974767077726518167617763146546593112376351075869745868450164237178302022256947422875420889325909854967983202849488193590037786013255166078311153083301739730890177907805105735015389043989717737004742874437043926228287541411985502829767529577294007860820569823823599735078606192165230754048463183035540402445842876414205298427963792347354108356439186480195021182609914745977246671475980728787972499919427207684213693004907206528793079596971396588051418604056041123642083300870161125062197589925427009914939328735126571641701571315222604670265791221672580843585725415663372250507121343897021301067109324795112749937917712593673203464337950643098240536715011735847468816168030198514978573475604820373067386801913047224184640033244359944737707787161789278173913525507797110093690054455175771932245897893435179562018236523962890806933121502866292107000894764009059154235062713143015907105699731227963412993335555219378273967365276760363308680736738342419032772985251222228024423667293805560467313573959464508364446545432284472422170272948852641316142508291517341645112847741382737537158957165440932045796678949898372479796032992964074731176735062461559806570590742334674364924147650714093933154509910318415618442846531155112445838581487644473698378348063288765535751962369032175378494689507658550641877671915732638400190987422544466547728699554770518420440629846341332858306180186864494151964650938768764397741162449292546417056109769528473899265606147789939974095890734938598748015555339703225383769479218930885506509214675760782741324202384386956696791525457794638771348160929984057950009244636542219413014654954786100177455867510063242263839443498004545988522821147072225306107874313974722047217013600996870902052493423810921744680131641854707091901220846296466928523803141148866578768564749194069844673802295628953547044926265005069219107804096946896468246115726335910702556432341037065664473746652292863212657116059598276803414619997914962778910424438356311070713335229838586247624162766988140716074654996039835562078543297849980758329926009779697786701005514607107397420205561643949505246063022560281050741330475841224827235011935160692904745581670615739318434634606454697032616864268473754348071011699439788602838050494973336600392288666060949225201906709164628979734318592992469736632270121383487806946314678605981171575038422716515576411096957079893026779961128001392354160612640331203409812697607275073431393503045572421440455372685207776581706593637648281707355162055956348003843514649003308042550728921430731451865684072629431907785694353933364929505306201257181432272985973669070299922573556075390449022804365253151296827104198271107845465569364288744905545103779370369346407174206567518604486454570468499904193403114129059877321780567895091543778162479736482422647059814979767616080548836346684726309464488766941361916903819259970937789228789041307149812393155395555610873667907383359091740760123772718907093372753664856941903863282481662536702316726151775417664593236421172278770524656499835561300734069314042218402978400771573429224907129043694025049322861701931109348260393170253438958279466781518329804045505203123876590823329882861338089590137501761230027944738203562953120166111107756375462757138206920617334152315478794615895661783098578313981729175395578505389811802651417260451108953111563538845834240660112173165308088338654098308974872056445072572288280827970781747935919607415171612775605662384120909294226399560998095568902944131634393882123864038509216374994379910268746366624401837982682227142887439425332466055815518276371866656289043029020941559049271514620028901209189166861988365525473087305492565306072813430570180790332858352506404322215005160515266605675841365175139222144004738425341239473849356654479512625579427376650961044933537325628196714403305498734111324215070882759069120830504511729988951861810214781749903950440341307493786806736244172992308644720570347546684475941237063272706217821729597879760805335771834075183284988132415359890549707905677683719361327639930435155186625858991641570273041621792201336707174495606418057340422281554410385793265162266507366437081952441839602846292919176411949347601925567936322242859180033570701220737729329933583030387369625700483191251561698192616243388011644877681013668576219034302677433234336779720340303276005575642736594162206093502512897482551731580614556390118722032842162778649001194058963438830565514350315362578933169154877238769870355652302319406678792098067583111906597785664917654496056411756730281666168416113712700699529577292978965905639774216931066875731025771867621924707424711734849023735891389818695710048704427469015883287923080195066092310545319943072532627530753194987833475194929669694548366937522187992504831115227639203461699312148555834391853653952917205342924885800017040879816026969507312945735217100082914804430970988116626184135198622543000016802500838610268702755112227848422141846427796816090284535588972655660387735298430332936021392745155170360025435591333060053813199675856431579493066128797902573150368774286805732280657116382757187193885785883174110103513397275818910499651414101847678926228937058292732864419179865068305406879496098313064229950156317339687777000654861931211464645686537941755630398777328498452266195001360208218529338903825462603225182271705062330443609969930460082943382570522013414844366747677312900118198857919778863957736427755528080506749659609235441480846329107870145372898983339920302256896351308519926383775763296490483833101157870618120527601539910741341686892952542206738690868729067633245957325826820716706396976408554199034551668944317327121149151949349466418121549959580914027064001450675533981660869202712120193996461450229735571745937367668851722431299356222833278179430908368433999294871212335136875403587114404835317104590034388227813194842485969707909972005541763902875184083564732790515994522382148800091773829151281672735886486630950938394660853972925555390229029148163216010004749015452522857675488070047939092654755336376162750053559353251492733982716057338238731723306756354363814275458022747997917650588048937143950936036296849192305185967353548374362452100496469961804925568917788627745238899535442674528243254402606609850596989932605781863359494835740134928049473870226121263329488178133171678765887095810488510656654930239147173457205317529968249050112230904207896992982493950086114077810559068723863923707078763806925929975382845374492006916658716298288790810543594388840981293129100198136807489452691795545495265670030841423581217185440333279207034536239678804366956706012531678909605223333564539115423556742751980001036449458330947723177859119943068707197903688474697870995194056283530696604553617950096086117794752525470439359431115130299533757502330271707810949453757371112952458197761923407461240499374804861082182788411164230095512020321825618207970543636622796530938308179612878976017141097090555362962906265206498729907082184694621822862348539065335192665366036961580351492224094993994751703047640566619340031898733944334471664700160187089258910423363186615131566131559269902552572805403412872349502080813470543759101613876418665548899584791152614914810469901028707740297692589660140681532994971736825053283218826216363598207935463365838713473564401673404790301149948553304902669689698920113366036723741073365746276550049027917522424714367987291155759855291631179633460285047792470737279035351247219833920424006932447691718666529983170176678415767980110798801487229125822194088824696304222147865667048435486215630951408667548645833021335394870284464078808996624995040624599848078787668974314155727992700557308194449910934858629119692769907744642896372225030619559208736759140810022126268166842021159369035476058207076805463803364327032152046708336201782704846786813414736452338964453485686816226803697950635764261512622792811097534820717438097459806608650866809559001811438944474816190261064420484360847081907839253413667906843403843460133058339136447585253224572592016626989598752998391695316837877115476649587006350105970692166739464125092386135647553411447006471478762143806192583997179772998983464183644317655611843026701278235784236572344695398945256514833589201936942809170604855476164199853529826671810368188053924478533258063880276410154571556852932445919905948781701362584391840338934612318332211637968191507232106022221860280829798654700100430678091303709718162091628999148751474069667796291894380899839020070574992441476403126643364508887035258887694363200638924111791923972620151955269846120004934022711514409700052716324701710868989910290253869707959553337588656739640930504715349068250260464703516621182821258049289603466948260220770914874571324869153881614741244314522683896365312231413990250831877048769868322230799419708931625074209372972409542274915148993850487006539924307338507210523355180431701701450480086360539604617278094184053917306079881966940212441750312441701907125757399451995224576884783864104413380209492970562872937367581526352335901144040176076400233608870377591125717076640481749831477029594438128382882584416795466134267611915190920471128641054996340282520678876821783277077176715823716789484294965858312960041004614308195423240435748083644981876956079861380380546514251183532254356333079420560281730339981123013950078701420869732427784974548104215895696414007756920075387497382724483654733878963582043854690207323680353256985083005841065552668397509870512146070553589629632396572326538291544904575277457997012507965097778455908335330240146087430321743730630095171460113778202646751392771258197718277137622197396623894980274259333908358843763568449117749420161519853140505946165393407967619031001814532542774732446929024462556500438447984903011736246839711257114837579977669736155628313311941431083173303558223923717248726908478676636068682702683957808651770603293321881047569523486358456827682627140351789641219238354489156814083924075730813688897639218163407249207762123414651681716048413561335831870128294061553415715596660607562738326165201541159438538527384810339381488191492968627747413560770984504233225730587496777680457974384681783877680740174672144094350732324236153470457503651843001252082308227134101435932159553607451793924343665217111007767928865951760676734322443799968036839808174466428181883913729795659113712101765585608047517997027180166738269446258001375524723697398636704148261185737687585813205698417220843811392988829416597938829587014716400406618038969569625902701050360330029852895840683419448974806893358959167945922690855981879320330761027884906662565118702789531101837337727124567267832571337906809068226124037654666612774043725168140010482393548926063890636799689968840093948643719418016323303912683193813238557892188054501259565790391569000452837538906424877617336444952303457957105810708636103472648149746740932700457413050522517074526970345884720817451763381988621008746720365129929632659769427023452872145933928889540436315836916007654443767485115432292882778516435814293944498434465680349580159952205114977952575349030718923629821499141360457100899299412404840437616935716232180149157123195274322166732030512619972533026140578250023218431245345971332935683365500039936246510875781465250581381754721829263991536325992993061343941200176043963017262756697133984935306220941455341655434937683823854868695852607628765407626654880398487997955240299894988211836230364188129542184348627275349450687483382201655081621643082281266117704443060113692574351605639784843609595350289902914724167277953170815899297277595076573885262747706422933741777258182643237079063131711312619022969554313472930246623584570184552455076991972075691012979453446984101060600586827513901594335078376181225451113917509936916694309793265561546304980694961518554961321196813919242113081763739926641605489669646211134935863816641897796875424071130833442719479607101845958141478134320112319043491861549455706098603983887124503911886857478793770419480730354820782870997852651069426903123962976033478122274928663793841027807354328283714257842613060508164505703832098841335313100957355146484250446716060644937964597447291229150286524072320935644488773160803645758237910138939583811496257908065433221532992767632966367817292962810315169737303590559705865771398081117453571968829050760776382045236873139793122417221680503329002905696306618859857260495418253123219364321065748981778013578204763141530658656169610248085142917189706473445236836728594336724211238293536573604379967668596016392464466300399551379004664184107038768487486209594120089066450354839732534416940729156545588695434525533950340601851907361041791370868322739765218983488587209145987278494986257430791687298241579037260247991133864785158592249438911061372804631274481038906093749780062582611595812256273007604477207624611311155906569716466558893156186801250226928270093771698819396663810379316773257698334011227653148296195756433996566360444806046877521172949571126756335440732858092364177062223484798510925568610268205718514952286577818980893985549651140271160941727178493399900113158328025620653327259082344389133300775857533667672670978949074096123013695076166848503110503671113748534065652910948168725144690667007133644874050603737216704273556317909345388361618819109838028464058773100600984340792781988661184351276379536152673369572287610546722079526259346211623632033391335734643853722901102457631911407323260753226460224228148674757178927710013689740810386211121094775429204705442459848790100215010573323102500551121515766811434607324481486187621629478873562855516054893029426455810477922055702953360092536530902922204640308840834045719107858502431090387377333761525601980603832338832163048169963874749707112796215005450378864918395332916583095300733997158428849946510536104214411932375336162117328047113051531603677456171753455732131501773610515929434058359145936906193666600242368279884245526799479546174908368694265141415583419873114111263201754887827017989386264871083992961410365987617277373327351399895287523353221318814953457268629864284871159924464130612000368596148095727486368999329064632967203998794657856026553006176914898061768051381597042831934145504840497940477435614321286831583767673908165028539238260677686476720745153514956202005735580521581606185370340613444773286080323237251745343333270746339866834749587086710908556225210558361945407459722071538233754450119326468963026861449958138350016625759614270835882566484144213591435903275659187154248909505271076924075755246828342639789828228150090756620625125908386367167998441204904173162453083979021792402653321021716320644006191839361950071233843725200412593636177131316575757464348911877152100089721927845118363355468374228017245045514030715257890467735827034259034452756125571618184840562412826413354383279114454074894717544493206486272232625489297263382389295543176891043104621781857162530511234140305023633679688344662139661921213721354893496174022735845967460624759427175906038540255831854514984460856865906740765870609756520414473761916502327227912611156170407563357882140275614083635431934402553055895204439546707473575643536154932794841072042076744791302018980078956810181845691638942565667185573764034511525885105700076928690094366393995826675522868425317447339946197055655580313875063384407097354031648234181882639597440289079094022619309664565995667081623460123519930907406292772200314696288265417996170486300831832878365092866347898741484447717013905987252282314957193079835613126946060474909692824756589874036547345640161445186717691954829449032477088707357679101944761031595558444622926844628477857553186861628698152726740066650950206996300050654046337048823227199006503689885919144965503004765662198599344649794071317850039777742771739827665487066654701206120464134275565567357680351354545338841893054078450544474128473045596029936120763446093858611939669497189572092628889397254403318041339225346144071490813303525716310715024784439928804376797796454733644297201778698754393054173158555379611071291991406909362633679612855062052458510596509319896117099331960626452132904237011614430326087770812320190039284137809862055963101434063167746348499312253593770718421638030687787089976518203850093399793212686253811048672207218695391175427646823583758683501592027043619522516939433935651532141313995633080218704745659428109118464849204056977856239704736267957875349115249829675746031245206641442500845170807466538734507961729053070697479432112583878304258236805168423767574803053474317306627407904026324630871412004848197687836889391691874468502768760216471760923857736481073995006293563950395678777862320288750478401437375157007094693499549448873460440070685476286896774072930043490985279450604689566876195019320364333459711026372909268617708129278152844144763819539089618126679560494965167979619845371843468172594278655910635999960312521787692404630014219948186745822811572093349299601334504447774952852966239251004883486145804593295465658548454060146326291494831403285719282817616558588762081124823706192739487824606592441185426946883074078984160095141528819500702771645376320056403441843307561812117322291106951482811379440035524167809306769047630260780940640581051475183420174145774769419845788125629404462969307711991952792711351825614590933101377801778701825159452124229645539829825284043296486655453753505387347030757262315491092716322761649076502977197393048847483966837029644440676269478382891636255068266631979551712636666383836860000906632642086095001768743733676741881041697711731353845652503758857167885481094290268178220455656216719412406414330307420574961561088328228463408095687198321464754826844757848059212143825668954488412533177042928650784884179137893237970013991331642502412568258424465612676517430221967251863025350289748421002576131192317222199048477394025953782762227050337569966180161827882186616338872987549553105262670153850648459725274576733997508584713966770291370404826374912933208281690198496693978159715143318761684224045797490856855019083424846970393758478940525801700909243487718936398605035046658646865487260326863804649508667909063298993959650520538707538967381209235192881529027620207381209991780881654278655323752353171827690615964551725388775778387556985165934614751607180860368332288777981391646972896594950118053848026479911002831658182653667093429388273596996722447534630085989208021392963344707869864767673977326265828298994804604283995183662543624504958872682080428808398026219640251205593616178573730385568723384265580731748945242586027414958845300221547687516810278876487030662201150652260678976045566428675498037860901529931549835106511738623811224765046817159852768311996511567329869269614164370030190921023098440999453981682310251320635351044096181420575882293543250591546266128569430392762098018835023674730175974190335524280553280071254997616406279492265446870653931275681911404677079944741417118306268153925784738957900082219886224962403406896645300753052364431898129919605551737173606991771627977826425117033516422676883330361127637595535955915250926923629959749096027639010969699570416081090571134062526084608705973700473769055178591231444025588321407173453910142914931822856262876511472346306083991327649758109696054587140390823887390587743047316307907146460229308474932157548593632784979577459285880261105397462997698176322071659628574414977248507180486371501021677187416113082885198357098344581140078433590305426895288994128043245991169925565034620811179110042918640120798812729696457565763950038307389360823899606613676769460736477896475169422634298264703138182129714316154253970850446405098668916256096239227395065043331626545611017048087857793837114378708855005515708476915784400941526933118127518593966356106927719772920843683630066415691486078539928817778362824007138369420881744385810768633052676359173861075874960219032189723698358483322201800308881842672799375722130403680742781132581943443350106517195483637593490647498520421231243371483710652261004121638949677934792810277229000272157604025100234355640126300352375426252726353438872240509338661418154883063054781938838403809906892797642107351440505039762997578736152227240122782738725129460726212172083811463443137114245306344753278660742653865361445079574144612305177340107473390976771403727292748818083894304791089917420496005224551516732330720527558301346408320380886344664825949477451837792288730020821322851159455864886191349106334963762109593341018938878203268152899238914527147563259576299496334548208619743985554089080710446189458647413694820111099153267848495690763541534620272729650411678724184204566794033420002150890626791988535212101824257357990461354448941127778054037831543561954439009602871648354387746444061080019992258699818555586881536063400194103216469062065152696502601505285913834692953752956514845370757910149874919098973773658285592022599374221485359486878084692822755935558039844524320834102495272306681575473556258913709991270585343775091018745951367843189967648478887136592967260358282874978510189518233147303767039114256282419345327332401661318835797137541650707135851264846081546024124934089340145751321124530898753334235755738206799668784317681949086571746151747168239389076658687530128329530451021656930300604980802277110174230442700425260302167709493004491551210900543420240795110451448888178575807483659269699060627628997814950897570301872377046700909272405280734350291255315479115303909685223774677616245650632263101390971692411963361567588325269128177741907760100077769929215220345071974328703948623100169721148212791286227886713678032458679870818663928921141420846815615713586036831609889369943771316245066814471746849642957233369338473772721545105905553316337702810079491547946942138083877463351007125085033644381642552939156000613074678717508161340336367280846842764318953424866766398585315931310110938092353516816624461960300657422205886407409920874795393422723846238718566583336668167523524738978577337005981290361318734772548920584735740984170877491447590686976714477290277527669668992068614809606137144365873151581214036931235738517025564361043462943952429125452893092528285038149609512580096949691950073229075853866949240132939609279242862742424366064586592419328196824502807252176242119197807368519339786844277804410587442630347076343505006760481266651720691977320322922109260454815021116216750017425164457152140335145929273316350291417606281530941278370194223678198623619204412177763123151992610223934371158468910747933837454878692293294393370805666299308875935809499766442521073757515800746170417266845183798168818016188397594218377385971058517631718015469305021155906586171654329353783954203005915787365960076360754086155000913455842572875345740929754161318755140944525266325102583371746283967428813789849913076347951381188786235909900588110695532658811291501060196771426028307415877889504139527567118076002543231491977582541749355394021569425093446443489477392180008789852714229933425972600098557562646642025262860042987911456011483973008328604197461374508192386101723290959246708438530609087713314126151389581099470998293607174109156906738341398074551507030389450634903978491926740319482033120891623740264178360082925664394943758401042230487504380259145929504091776741327853086993798286819061375583174239022540899909685912373406384904828636938944394421908526360443678932624429047007320917618089508302388726121303311583908488153804610736911896545520830642263876694194499254242383790228712042423365406079236673200544367198853568053441291531503661454732851209306094686630309948001807779137376408998619533094676504746610305818715370013678720550456629003444145294996898171909838222106993708111947493186161347701523348831782973934202756656485732004287968850675549997558715862713030606877041351362248482174554104105459890978578382860362450834999706846971799492526162658139915325494978534056062804860215671378591006537616921908488008837209696713634396744824492081906135087607062749628807847505319818594289661306205222705356688498193076654213814878050624487682944356861576671616258873712885333887538297387431102112902383048428000689327232461626650657033661235228539761281493734270823389251798308999170116319756839223210918418977107317709124105437609169491012675930606299957993080179649844213747054408513365695268492559353258609924963325660029041212224972307132665171854890775552189991723449616193801557392048098376965440831399546344025489617222034210390606213959411360223998690150005003974864131945829598882851333203517304341091051890925989330320846765050825614024024198482129536200762183731866722419997967097393680791590068026819387727930199286266050501236742345009765274281718760322529365777067098209971187770052883973519343910975959073952989801556305620771595638258554427371339111626345318372421006049906263434776255442028739916025920821547207436388595953061531750717949578706206853919461681078619901091926421532228316314168439386445502280620342294689766140733971286466718215897320160103601197217627758761039955758751732287923408741135092322209565476482445588255867380051910955351127202315000010654382382675673413545184971862594402910675919527104922834236955818980308713146552018811317208965784927813572043581424166125621727736737931307745487701563701231243212996386550264660925220143729297512313127352085230415406279802374580005217440462564863361142411597806883203959653759563234636917711533777335922931393607439649992186549424659887916548912997387585027295402569888893888841495532685970667037107736260934538299061419731173733550390163720643363502375617269589614682105404048233575564798551953476056330287697064269614382692130683861956689643751518534277014646636453513068720569181279579900588129381314114433747214442131572023559813636635026091469515194484598548763869286206311061332453157519980249035423842751982061930482813291602853994901672675186118564811364148789174221204541391021238779406318110946115666466913142637854096501746644177890243490224179787374597334703137719742196905879193853796560153022499454670544959994093656962752916262036393375467460687270150646057916136236382914518496545302385399467909240493506570405646100373737398554400040296928813770959249619510776347081821482271481769294977140197187376369055791327422961669436119097969154429351431311939291196626837598480834978476847230785112357217919074355571653845500862570449754692264448808016074622446452881911726803750509049960205136594465022200552274707868779827909606998515460666294924457527245513845298705367084780534071495977226700362232959938802420225646143466030151177884081212249707848005263331997286275411724373331498502904942793218058102168256011796145729262010504749299065056358780420868396730918975065266506264747849964652360794878343898702532467630498621613084903233414409068080486782121386886307491250905244284196646918921369219325801480837161409343772250987496671422614156774032583641472143779805542471705272080312399556210667746580037296710214972169426389827498996700196032441129583978777515857799945494676218811748520429787450655114308400387807711155585628233903413092152555991731437239331470029827427958328942568216899411084074769875007714498129846818624282244770168328699213088694910977937863191919865257156335519464484825762295560064329812368830624953072573892146377670953489620646106451683914635517858847960014350165087443415516578526243940267749425341951146606729434149684212990551778398011516938501075985871322259383250869128405802244212517613563919551419857162272396960379024895086449524063617085232166414194265072839837412672366509414397346920004343289507742122332294951224141575403924404671885047004909315324847486226814383504495183432454967100481360869637958042951139071434903366410385834179936276798404198055447184886619772092989638531693438527104713459456653999727038380475206846265554247658471758272204710800868916048124038853861033580400137144987098362732297008812426235759904277839124814033040035747423449801256849388585632807499330054131382238019734429551112025513141927832630663227122294133762660684304144667556587823538784862477290223242915705537884620249737179520242229043888697473974198651753611855139436213467582449081629903006378915930283947257724634226015055221062362771001474122157382393297569395860460399972268353448126730379314507578524192677152022703796488661337852226148527819355234661437134309399754064701398783845341584906305705251638381202724861374308710662915865216745867182886337354079120671967678073043616230305130875880757769630205406539795843485144843690126068014840975969037239330069919519798359173814768075750183120915024343465985109771872053807844892963007257870196829567196667477749173569569421281777593852477734432862524517496044711475004074224876034749710126205415354643817335235597665520496048319004009687432681014271007498958548819850586837428086972800904354598307862565976420042251495893379414042734310451296782531090724873734954509545081348615579485695276367606333231076000601993226290587744876248360670905641060874649243410545419933055827964278874655767145007355272959360180262040959830106274545696307682618828029157960446042836993398560869941240055067240737513944470073921896344537383425952594530043756254103207249952749887298359185320396767733282360013754768483058084542902656082401505348555208031531673808355034886184589774308664890528734993327619120934371528403479791889598997248274772567525335110902217412012898498185819534601931543717772870871613875108441866795016795036738871014820756727302077682691845504824177508160406545553004684459545392162337642619010387081598229644271093933953648486439098134374702087597995351329810230292481907324410204330043236414820521964866713964588814003984911064557204819056174447953733802805988615529514195959620421497519057530401148447796395566608563585730516735755743896238535974296918926813818916385977311818978526669074171133028307883026438439410914632572025818834917367417042450128864900191046431864410894974077703758499640027666577563517254346222654566097132634091974444957033056464771277374053490863398889549027816614282118521353578293690069593922352118823204663905474774653677212605976141843281202225024668879781305878283852647722033362863691366801702179733751094535544659227702343871843718862549748271284558647986764356093796732939279595894282516294461699144925107381355033345040897586284418314652875532958535035640075857282110528995271794282851211798506298647010864566973522041770833603252295596157702343334811518129763493813309693603813769405545475788055031575538605824253635601903766757888403099861216938800193146104919583494822989477175728291816891959749802026796632666312129705338468477598800076531858800846710115492318317621558437423838514687945757925320422791902458906901352383875009589993734488880475423822637995253092503241791630794680375178865076115956066367633952020005299492125746634881539720064421133254878861171365426612764183465414567244537316002646287431194031691405016403829779848939122788400514522949693251166955678210786252522228588738441122386699677699727147723843332936170121698702655977446882131941935090488360629227630045670290485785226737031888509167277756765054551680093253095732349261558896115615236514768173344423726661049385178673069485150524282816450000712649140496187125075584894067180173051547807500974022142406728654791892631184309657411292274855062590056647495319257960553036728969403595940964466332224394064243027895642608321452975790758096662389430973645488059940392834990587047774632091291309585527876355561555996806350632779464492260180415829251421977457089777552183736657663243474304323203124095306086024961918229359921224487449635566333871609343143363050308844839159472366125386793470024304090152332912517779929224358092367859451055487073768393390824267298389793451943837106552902557728562993920654484644648437239275847753847158063049464951849107844500376464905757762690037090960503155400476939900417438872833085664522790257747128961501597111276095403834018136987179115142728920772682842280676889897914058452921474009505807483444654563763271200581441390900288708709795630185338378355052079053806035622717504647908305455121592525088771890785083151883667162422076795632360047757368747532450056191821133506218713001481458657307176154693968845368095056349447682826473922149508210080662725149908357550443401270228054109110150240427100746544340875254819879571307060158868524975064354338942699046143468532866521595165661205899995032606133823963586958863130313711034975340436573809074758885269861551878921563075648448515941997166506652841959346777133459154240332982759989446512349823635843606590761626876392137562677027594001088853835229298927060185535283017799093892897534822659226618265524512726207083362653684612162667481010210755011446645654036976518013915663733955217797950956995098424290573596127135203287620341754308610695813837782050340799146314977561296410365508498148581954517367933972517265550412063980364126761216587021890955102900443195155777339313437675809660537694498773190075254748467359996727764427877544940365575705910684583973450028546130427123291356923821113411109374654683634486023988378108187763203943872126729620623461888780672250176162192736449594096594211498465577758199396714714558500314985383518911778886078526328840343214151426600528896067548663967179648292568336243176226439565784622091012093985917093178904281383868627807907053594792522058162544542568327658145224371718212674717394448502092576545089987863000411764688909723413724412314195233137569248248057895975525763696176026205346251714102462998312987777144905658093256567135852695748178963555787372149354161285311507474433628366802928108425576848381457262688379891292454215662298856724779383085660891887399462709583716938220403747252027589923788919199357228982729280232541267770099654931688874581980801569150082983187560705210025451416653672423392951588140017126756742882292256590347206581404176185162235283696529261809343486392051982116216102412083231967856703098877803107582320741345369511631785583521347433084061830513770335592968700070521287022587300226698709783741169042870677599492989240781653485569039936647112016776393329592641786141072439550822499822289795605274947158536184325771500433106206388012213297758758325105508957218961143234425419016417719430008650349309703505708255417847323049132124715032476618960725723292176574812816586763746410452867376393204312611530628888838448568058013879715865446208498971956253204477153926157389746788749928393872773908996948142133060140494235398652478055827682656400932454129256736936825249211994545003539358181344789268621125302940337969295128986462542596885021886520429375880520957935563494356365957972220909371841928440971802998150723632989290977876400952585013105585766940578500962974789838505742724830331150770243533266129323517374265678948524547140339042965756643540546480943586538106835673045410317632871198051978380053652817305115217254102217494416732152061879529598239243693899685624714687436489870858711644786495015933562495766755774213232435257550987282067697028921436604180525632221135311914566397106806172275036576864298641683235528115352286293222298100321929648589302506629933889610544980389045401682664781951023578306521791579871117881293005028491471547074883187521649655200913446328980191503624391801477273740656407478243386289219981096947262410608710084031594708821440029753496781577021981205716794146236708152632145973656851843240854085895333314153383234125962254645377990236805404807615281860928730577044819902994960266068237653211450324428291996674058711973298827708513630543556064381522782164717067299971043289018593692280538118534826042563131599308566501803715697300995984128097822321281066769186469685580654240833154863899981209007597544539475986112818239584680330243835242254723797806705038049060446209735412786782110273900233883055724378985642346837607147391081133207027948420233211014770128081237209252068418100502030605567712635402071056112672189940592252018635831378437662585374532015381975679541861920045912136251392365733685955815139709047004971797359797495555126833469465750369619254165080482459893645551268417195773994536823857514541011300896347785819529800754663487265345331289886572413871589495776112099016092995259856950222359386082818635210340946495923679954365363675313708782438277255893753808641959691369674536838169141890609027363279730663018724696422001074657931910772701583231858822228067551764345001021795786177257774849797253944567685669016997873240242870445802372593724637196815891982383169811631181229728473825458548667516339956208582091059418237529888418469032760138220043072341017220465036219417480490746836954027977995376426562709260304821558383830024653291411243856367165248287737631268705540132425833143698342806958939648916290637216033348549061953419899863301262817271880337103408783649034390073139672244619523732198665635673243509692660950574262928883385401226034969587901577397249672213872813691915127662937675770899900296108599472986803671901455492506018148516727467123478850839170988790735263542530427280889862428520733764425588401560218579404055271673115975663526523963475602819902147494813160504254073743734787508416331520060838133292063036732035636804891417612226589860816099347852201733676275015662656063758029753117539059757557522890010194353198884566266293387746123228703849241030700566887685572489025705726969710794084143043228907225401762955612204398286520923930511820475759989558184434715684030729989074381202125827868337202503614553769858282117665967971162892984851668891770533323838964649023646657229636963616509784139590808299465069863325899914792312493777685011119425551382781289014066424661247567928507524954694612008487713251174461543609049938378319239784448843764872533256127070386834590922363543323681541986415351239798688464457907703066596894516529403147835927379685411074858357048167612076050952621640026882982955347202342861203574756404701305773142297576509766449785446584129438064012853198072964457570619663536391093182231760509920376441777455748223562707295016235820173176990202695437686117526543274624490164944881592714912468783512699843584178123469029273391616227871521005066287161660854116553564748873580947627761546365086952822429483745314044835392899138756420940332008168931282583132697853559926743536418447693596295672892541174711732982630395600586400348947126903966891800627600989555555865742110508586051785707915006373581048074006440658148813901002430136745882672628492730070667571189771997652736277089513019970175682876131123724369003313273195513734828242322320800880346732405686320026457058099464449357228167346729619799885380766333486610287589701155073953141048461507822868079646905273008777554660633264472299657186626063177407590614826202184744568252570446667719213432067441935256704584584138090192663204042695792271404206696565117647974990944587683259568133219882525873614965777149323396556932345863557219165710803485555234015692782003136824881587543185558955205241774306556264061380824446247630718328773568960052508007160815173884110439692145055083871701250366265770172622760065249900722078005321283910582528675520728400093059968145176729988732203323502543533946915849179804640609855442604271014999558112401264515928119449513471262015272501004381216235511958629823688496666571709308859539485927534540771629989469908841304440326634614147425430694848371080307677445206415938214890886437398516706980319176627722306973338802844089989111842292112141109377348021893635085801915007884958342825715543259854062081502725626089726931409946155694775491968605293533224954162584646506878459837803890112561088200186520639864529617939956290843377601119917587121709387387679484277722424411410631889221761679338479921065119063430649458119516035192706596679855001827523840515998947058754209398094335204769122058985603426939703875758440882544320828558194962108360366811277816535620942145704858697416710512406702715259639203039903288152661016934327981177166464274471340672469172976142103547203154086216698088896293402451010130230956639589617821333796269331684975265959477899423676939587720618385542960532953664744996973019269206170954959137967275135686814012737653364531332216878837310015593004581438919629643776639456947118636865615321127315917630142178413566395387462966373504101262846466495133712724906661810191398159737178974801289104764104354075148333837843532220099664314349170195033799835457921192091767347753712351001172100109692356776139099900656452395235050846446174536654311949669791419611986656474010719384644367097466283044282841471907567416634821098528339699107801346078280610155110444389481452698392264046274685817719542320978776518669603987067316734357777972319131483110292078184548143628140224568838103810258616067042488631651786956853571569164978664017847566466863113796704331895432630368720324921351791230013183768173148902744633232454897553071934384044937379354336101487065933305072943514328334786115734806272447071981304923740715942344930394511266223364255913781725839547721131048687082532321025096045311944837310359018353509687693456077193558195707428519616466416954755760200334117732857165107891410130554202196134954910846282924300223831858783559800879821834288210210720479025965224319475260936431323646210759822812876894408145210867338311332830500276550846468366685678627211835271248200660143244987599874772287299459427766984571066776206514015532228711694538382182874417495562351712836768062448371951314317213814850568481847047622307249029782336755368954561980499179593011804049854123668430661535872600882270244410182167161815422284255019864214624225828049780761466158112043872575272574131121102856196898565574340140716390238777129386163688317246542017356594804663770298472825425008935404744688632584012732960578113243340654632171205463601084353759401760523252756286214228206668135991794669434184678221170531188054776200914086528582913612731532794791506313613281215875410355518678335977785791284298798505811022028787825494552592124542575195119808208421168868457452385223869757562866288297758823038981792196708547525660140898618776604667067199095547525770032656955779894213383637682124165807847524588029221661994224901847298253722522187141739431874530063128051134013179059634121382425352409710415823072339075750744290804243144123062393229804819059021965746225230595210854590252517585308679646950129474784508757320357524537767650836587565920984184440726585493391117456192568367287511540414255404672684142944349286648650332913145999081061082652745523723440000948837837418432940877353838617706598930730060765497126409885052656750590849432920824295366268941519629799701384969174475510650394269892385209384802801525891662480184470433082787720849534047495110217441375017935607168210045654085714944537376927373957034471718231125279355264564041734975428413183475585083143495608418748247824860740829137478410382009750386140660282467742443841763507090105460558484033285188673421072992929038417837926361757068056603257998357333488335175151533300873534844244230842386726108228035841137211046605835349973485425581023143981915832842643748095166741982794969802846743947324024348023638519399330863855595338929634871726134313065206992316385259616860527254518238956604932214206316440913600870542908675163724456017738635032208448547541060713577126929276796799000285180918138591472200671331217788364053647297039002674781999722833715609408470195965243147252834380648081183729634098353418183679179020654370082558862068307349004685625314766605501610321903060572749114465272976436415990807371177525125122530287553076621794878291023504871387796037365418217386533910286095985987159969888636544466582693145617940676362436756699287794158441952242192769301558058205713768100219461576409938571352806626812719013130491934360775722672437302300949151826759674485914555141453275697364483737966041150601185119753180237345398387513788360287043256415152719414001139526863470590132079444327286403237761518854445327225756617890954945182305661612915175866315109121344057506174959667468515175941000975812615461617749385059068581618038941645869079161984994371311580856713608708230301502311766293028466271429225756718833284648417799955082107202670315498153556076160924947780224839957586813125531419278647799759543794789132074842800130684531276960361542951002139979637106563192839201344895280007807346184986859931626714997050189117421445488742236992106923174152343732552497150391452828944395822753015325816609681699290567565137280245450088649383331134149604609677861084154038596239688826573438361326415490109109374032481145610948312119001590729188293826256359917084549995490146180863533287806233133954313051073031556846040293179972322256699515561297246864768662153220884274754286153812149597527614421489720060483717937209010382236123108999584983450490173584904925616741499963432261750580507541174481024559444564486508602877530920015484239255542750735953226358953293548624119778717615519803052475915983976335727101155235971317437305177364385604393582880948177270081956329321025809899182574067900888668150974921339782238838843450931664134216753431589887080639156011475309037621760418988867517868996363818506942717331212673365950941986348014123746404584772782529365108413236108028490854514007887627039839196686737915511266607484790618095429996798434508732438564226733306517446444325142549798420527593234285554723253337245202835925824318396524703122192199208013762942998294968745608596745859547788976865051554107809228448663773738226284904178072464068669097069125653725269594690640076693690057249916602234995581843949901700202649785391782714961517598351857770444850665404374345257068865445942820948666094068555152571568851024426351521373938251664969264271744024108525471659531776900509838029615949781641153194043265427383421620992325136160032338893130491117479886098382956361173058056924753889970548770487852332685395185893601497880679703564383913376382292522487635932236343718504831004496628462807714180342957331084575100221555565473313102249651360338771231538492625894341226700822799862268722180307631164504659245965859761351343714006920966752622556020851159689574308188264480912677029524431023109056012783823992710486639079242995656213957649497460879631828105812465794745353537554735484199902630866434078793593050567978496153330794667628617814700141910576066901774855804747653219555677706131465761896116852556996955469562060298944442215420282935723262208884774629534798768085035315046717597556381095419807974110747645020520470484107070091461322508341153579075659434775899123180671990229712319311959424674463561812458454604157790354307303862351550060123696943187080797410826594596031493070714305101812679633060407947780559241560154566490173220547993332482224617401376293810999876134838923906119890049296754726904467193990532717865983619704590181827813217932646895388007021389556938708291692993027485113639029729980994023989901232599534160677124920039523640998294842289642319178010037210450112487152111284403903871691248818006068000513957267746702181098461425071249403754621882829013233761705295260278371835656150795813141673012226617640421220084226512260248015019536401093544240407842697613629097636089788567841029291437937856745935385819473323954832037304739852323809467911258382569718678043336734155940390783264421393369405986616659839303664605686226635307919570067389945659331091443895630106146842640202962950258749497931928494698660752167431951071047821909662807038970920881626834507650950324238564348138336342761638342820638063464360436634142128053471514009799073223810460470681404201249489544787137430295161424830198262841825385832014326524335889966787215758838521935675055694309941388086217437006329827535471329077764492322286381886379323900707338845841336054707644533043530793580239910589576779655004392810636843336688310622147235601764740580329239019742609637008030371113293135346612074614716856735510695922396461705309299126040415285226430131765372769089288569896680261576873459996628968000538325150199262784663149122989360773054528922023643950610735212990538353869050809573292192092880847200836287661300956340455585028665297195311585792064179926813146326963770205760943200774159263949475117161818194568117665203377269778595637911536139432135716461583652532159420702273239281508491161765737885777490901920368418156159442827732481404115711034057803734397565091896189387296913076038031205560607572644195359009263401847482176808753735243583466037112328104452212816182993706656630346008616473752847775737825383864835262625769028616884117980760618794918889676376363552393042175962493656917437855850481144547165938229164711552096906039224544186342618904190171058270128620009435542471037078430155281829243011211187633562900449850064701640605823534440431515021751308554103981915013722096211141870116846592328646210818710628816484564435403410233719177203311468222848914675201844993318750052939618455500742676395283009618644716942124754525928372332582749547529390954146379290138276945909524096420784635864174179376380765708570140737538679344008826394256367370620347017247869704496496458149035424055046606384527248798889439635273718396414563337836654859746553840969698101254888642528059495088880545052567928597297297056180626387745764424569222497436480534454367008964862714254207741025809288883645038563382104146894170540507725331244838693079991120666498020673964860737065515595863967340714127013639552365586690104245293907725958718128998474069754448833081071001807773178631745636313826337451548019023929925308354652036680203827661242141558388467808111660536052148910503728966910468403846978879086001065369358689809488986888422775322571440849385497492314414582043156259070206856440949235745913518214744538851300572151059039243163059387599723524978473738011290390690050971464296216061490589130742647204014503281372229639022225609866870315476086673923917923340581846216105668803720331417006649627692759433848091279379823864397648611033405989441280298778068799450234078816613439958271376291039841086856351363668080663826995283018841189641357454987582570460205325684564429636591602573122476495106956661356797399214365481166142126079185683318781744354655840909574965793810389165831969489744737771528276594316072276685321629582147812549495521164735601522630442828269881975946939108089159468080977213784716228381177361537860498953047418040380328240820366151127563687878687587724395810607265630220655194815109766839977843523121608786754001357792631667440902603017969661686131703243747353556969619323481260534225176868521554507655618057457572538846845896107643928553342501060887214187429943465777781841559169308782772565051409729468915054634963789663664855927381456428781554543189606057280396010828441886025314552054240155061130686139703910665903694116422351006827191809101049245863956074225616403693722071103545801796882923587390850604766070408496706177028915612982713923790262734370010970104257178250711650143647223901486767459186092452336575577390984102878042435210205151114401683064338918265315643003864547560738175375254595378593931169701039699271043345721301441195619208102630538482708776030407408031813513170079457529781992850525448997296671794199661988810125913241898590435544130584584672967904567495161383513382542281274811954950821577064347266692184646565881733555422887725084469755331629855954586297806230778465482478157392898738305359311856185094391318785085380273015828312525219290411908259339909663937221820490208563601920671120864754108001155756376325876662605108102585111027992505405529615263321029281720658886158219524346037913965729140492747753997624797171545262998282660042575112086249482995978803769983536532262549654786576926518161825307467514718281005005212182137291464190386528131865709366908205627683805788729883778144764980541320008423949214230084804483780856639704006122528020559857026633429482822417324703696942985707756158020408905840193226935263428509096490356975566740700424191276152650755686859026974520379643796877862043734709879004389151793977966654811864972506420067996571643372646058670787813166501674080842976656842312241630711075481758273029473961398817601104976985227576663388082235606374430616188390771058667246945147442649797518206239165608082307398750892418374155137971395964494252700431418206477576754923752585066207643192970365721146748646288284064382444617747037468763972658714571187465604535605789678445670349353191156381792204697628241220979731538413874208233578014754541695434029461393409468623863847771559584773805032015940696185329795740940805021830816327738025264408789410536698266566933775737353321150929843601103534570991635178632961982969469014625844064290397700130270882449638579181469522579756130271378799841640769177137494882398975511888264800877021024816098168011115162074258918587397609606316913955991544564267663597122997922515708952529485046124266312881381506448373131556958673087207363627347805602685653678926038046316203633007365334054763203307282133607956872004621859170838248404253173728352379401246005946228828870080739701237187258139597509023547517113560010857538005157426755701748721418554432512577814764274164331132471347581475473710255288746063506188946332566683640390278826535746624874991322128893705285298943066273523589243984444245075332270128740908818247507734780931538923044666034272077173064767637905963843507255945958080699123592559887832910722365406284667753615229504637496710924131432281075093961995001973236395167012516468445863963859530214446992566457284002781283903185291148769567254789462736047257562867651861120838792892995231804638552000267288734833014273915720121754327642816020444441620549489330410339251570119307586472529640484887185792920000517204527405292410937934100450188245929968154640001118488437178943356836857194454162640448636185173931749345206971644760077316427688062535113460356737925688744921454959181372905848209790926722395896534106675398702619538018473201649910635021137867979259814022963923973526496066248410975154691886337556222708101840855496886678613212418766823988831181623469038212896210909524753279626304354559624396601319433133005789175212809155026623339927576618486596739926890207488939296544897766831121954156242438346233666197524908213066484875649635962716686531273568962284048521861567016783834629400850962276617025955213460574114567738660372444296458805975410811692915018860698216724156913255796018726207794801391558780996154835050901284029897071200657875887647221789307838738386539226420935511023393464712240005450482842604733011547056114367389791630994452000764268265515778976650594135219414355184974826280045304220359027414253636625613244451978518771039875703599539227713833026269633537974732493540495109813328764210059978273763104808022037078067260669648925400510910806130265944202357703690627946345991582099996441386524528664669204617116089480791001217641203060243263390834988785279520107441986308436778600968454439983133974918532261542365507115166269737588128762581443848199711563343006371871581797199624364600434777874676403381516080034955388263734210070315926665620488145231444593210122563362400164738905983987242109650682942009241574076130772169092910544022586695269938706936678669097633372473165581882555624170033480149596770162766562355030155484186708709808715509332468182216443291899169414836693982600196994560804999435692592630369050854661952295760221277726209369418283974676989532955264710893484788242817231374350309062350070605234002078728368494575809471656689271292253688905605330468156576607129534886709193761701065822413584355273019269155011858855013458973877533095379817646184623346877602133394836646262278443700444416935497350928779281479360633270514893493464803659764110459816305025308866359100127314612206509376837642252208635169432413826235914462039350608794662792911600183811982744298675170173652359499562673217027226724265117438958286743841839512228071640218866318155685915935109874445278090015651960157186504462250071769354991158835516391919633536657852476046486713629826270041916250661331907777370737553119038566558585898422658495336581210929991457105764625622165212409330990688503491728322081205226272807392763205493855784231025636597315231258185791262069013737268620758952062104162545137484630450264801597481475097427464134929686808371282305813732307660119877658301381679225422338000552955589574074863041472863991077418254342327903499761109992391610722237933523745189386389130260918113752115473374990481610450015599117689810077610525693094434818420507872102981760424211581934454246815685162993721705402144479950601605868268047864683082982111038325779561829102587492786248322572756988221135571180708676477007800246024552929532366605777219647378199436097055943987691713484333255384001534858435640241123452781830579517501889624352939023672047287300608822605924387519598030325868283973503011255145506255321380186634246646771833388308887943809701034797666246285847577753090139435268294232499614201955625542550225067310869200443477318585670266344027816464611020470781336311480184774977161869723449714897151375622279182919551010761365088748338746692206385678490763224521949426121084592013094249088282439580769421033303326695874776684779012810135341416464751946918143323609753225300052044899148584236255919458150088146431661861254444167445217991137075691490335199482546865481622931278091662735697567430353297096468697490360226652554126445315808641977540333930587041626285667594785812234483273601134854636238746551164502642836497160754398667798573131619009181809909112254185895289738659253269204331440008824809023721288813885822109725185371728672861255412892315931582191489000270856662016284941314005908870770514846421635720123937819921243460665807551410510339675223787651317805112172764278406272401144170765207258423125485950078183771235184405965836981384505033958174375796772929303539276771416876225200886010031308913165949414944089819609131271107511646775698051587862700229066387331058462999651249789728535586874676034640384000831375506051875419983652621478289624996820297712513174203960709487036631709779080023067713476931714257171026465518741369820828484696416212590841662775240480395169177161602536007955419767436481886283616745433934620621288254051292093874302130171804817841311978070014267669368673584775933619608275534611210903205555572050547891644921655725503138736590926938398546966624546337499440399635982600796608090190562544362722744738444260744260139152382448659544488369705625722721843452896953566438998800459209224077319454320382468690197498402458444409192491893371407619663383734309795006214751974896963875207022581386634786576981654024856680390110877771211924108102734166457161945340974097473665505456416691645403458174192267022215913246583044623243774547442955058339706595879761518286543481451230648304006401054075240403833625240772392650238717965775103308695341166336504374660558862030621763892927580867687000476279630572264596930010443329223169120876060165772278153969669060981399683039281431211557919999219120172823164588274557071291926686985300970903509613345362203296016036666157648176051162518380441956776416477995192649166997539948093053681461943268175853794299829321219729431572977020354245142131980987927422677505922595517970438378722621499902111985409838603985214973857989219490819947935874067812459481467501255727584421364577538504198306076204259290464867523592874660071291151803639907002956000869372792205847091377110097766833920614377757190580509011594986987734997516978189918582761639949228494016156980342822010035855961476263042926549783730512168703817210476259814558790248382300264784655113726956030536241175166462131973468539508387616789943468148339023795409944874957717967741721282350625620944607945290741178732598143815927716377784454535910397775360002131114735927572419669692246928001401899439124837227113884919045358250466586848419754248959021252786286500427746431256417688051912376544563457024583787777347194078718497365921599919135406962493600747431169453154012056834512851525313240759145346976025741412135087127450655032092982630263536812062291107427224033936672030090058049860094475601576785200119066855872636743084633716394472112995319976640479783520484072767443538913295922690090666378624060258742320329381651635899980052339587814583705421545589581969438142163500430998224582386565649483013655618227491870441721930434987859404604690531941783854459663183609066971885252737830990522228317348553691769260850088332841635318740444917568678859651208485572563408062491283074465214548470629648675467788211712102643359668793538569276787363752838741425673892133031863313503928531768943658954246796057252407012563126132920161119173902881414856823688563101826892098885996558047486305198057022578207962817772921709038258202894165287080868936102284120924221941631577611052019234202582168726433457176967413150212812815632893771488265115421446445025294387916007096285530934446115152256243192169816932758230998378254163360290997747870390608082789810402725178571511807013292375068884635543398980062300880960403080317234165938223624864209970688473856500223874976502607025905537588882714386663552276906351306234703306650701548365186205355155634822525061147190207472123612639656692379501908668334074394670522210459011046848976454031018184354214698455243595677064081486520776033022446855534940404340391499653886649652632034666769568691826354588352982223833994829407224967010588907038570568187693046341519684977305725719883997607022997928754496600127649491406376853310590156789938200415636016170303587968185695143322177388234483554626232517010751353709139555195795629277213513525583926786234511870532266175129922518593811969046059931788882849951880213516020051709299889756698221871945334096447052893168369419946421569268899245785268019568021583528476911422094329259578544159635196658926409561513222534150559719519576836551014996319800982600246223645225679368270326599121330488987637720948367037322741420314429493772643703286733513114757692034425650086829273742231793778557948851295171702184486395552347731843469040805110418745792647823421316485023854854574354099331013641185851650051600094715595540612755490993063781206037972573580666990631257053660956206968204514328733832077009345229773200274334988073073421916472232873296543411962641244551460127628322501932037764278936340594919768742841215662869826140159176722185884714473262702055654043260441353420456332270018330675967052069769514696258931305765206799559691881047526690234417247426265545633000217644353795989272723006442937811878136888865618056992734099064220942914870418953110721420992650394963351868061830608396602157028173261070854921199245662694274890858044522528962452607221431183870280915512585093502320934953538202535785202662777466790507807946941746392481351420466239670023478528399297815186202756472588527081150954896680956224586378351072199170286472515295685288641003708197131315650790891075842511279236241054856580904038976901636891653451182951707296542996762301966620342258871757268539249423540542223782911081840552880023692398727508072095068167501450273826639147660010914843678376636117525925609158088229744493091962404037007315256146292177389031464867065197682519311602208779267371136205406775947528686783374615500598401099663530058925169999829063381443513137572901382793785156408581043149704197224121917333596129191480304116794850360877068097782652233843467604230283615879902031176524137325069416861992555076124900576645226669158315396730357870769349693749139813193300626153958480289295536915718798317391633701741398210929999427160325966100915053709070907722497107510791175570072116628681837778971557765102441096440148653781876808257564750389144542086876940206734276367570149260592678761991696688431384672988002104904574782141661634133523017089369571615689739471442744958518912769842142322918503631386603089189992528944316810882966300096853275318988815027732653639947000017140365661235853956924644870115335795399288767148095675817380807967689183594075422915104519698252504739582118444973637062688779322954235950475508376493380071829910120846473813519771862395504692688339446590785738377871498507490754713062581961783926620340448559460993755598412314096464079308333794227543443472048601143703922086412974547934145849815709920954797112514853050658908856878717023099151481722546394113140984272671841362801831420215872303987175688804754055516058604336037871379493468647463887166101688177108169888474564327186692519996642726063157788175918334407195624399007401122134288378907999575413881147941703064469963045921168051976060547901250767346028498315263582183340292550930355538768350509649013238319493333382549622038799754983903428472231442310581262871684894139916465668026499954301034758974511427894841168218315123363887930159787135556174238689778991357155208464509594770361504491533217867738946115197446849338927759171222375758683041343888348427649120436161801041847580399334556427025325349320350336160005758457390716943478405905628868911610465152699284909046248292234531939780576701410485596037295160327223794441488459439474514172116214775169845967303878105823095370405905396227416750089641464101298765039065942865342453923371614769405558644945249420867714823472929395883803411145603058990226494045785299543681824859234746458367283734054474347583662956055624882072679888879894894681908764801062026588521342398724423825392455115187031708194825342141806350406158383363375516981974103805459564805193321070685228219409717296832438623151336820018086519313486958074214386168260130048713211448292835018350522371963193675091393881601187595484547893457659363252604752156172587401778298065291765338663056107306910466165173927630076383363401605693753602526227310787481784639284188528137880396766591277502679426576004131225984091286250575875350729585394724437403313206906471596256461173608422376342600344985387396168191479838614547909760810925659984802112671661397848739098429978182107190062598108941130255011128435325891114741763129203625252028451472559655556513907539602630119939945905784110292255927929024788964238227061431581257884434976373615888339724703145040820465971253755074253720920385655295225434507714176766952657142758609672655082139900245491788355028578137703746009097399181272550552358380118631756799148412606242013520446783270375514460342492414045019351444942087704612932143911756875454819000751708568034767544310899578031335708508993912932209407775710704215484725680396036393181469698836513770755278699958000248597047137710326570117079597582224797861753083645943447473185892902466222895929282350807844709163851215313216179563783415499774784284215679107515583284377008019162911846100731377550179288696046192709443846378327087473749135487146270837248038066481200861335661563515112989472358981709179430380321910957137795240012347255792809560320200579881106800970406371535760369017763505373113003333453076033722888414327496310351586024054363893128095068111969950284548431733545646981041926729216798094431769190376807683950262010079205813051591758294441881973196502810286378320482850115022279834385129697427311919148307002309010442019999391527786243068749338420240743469608068409970158036719242975511439528748698279458844809814718370565047135460897308504457396780142951271573971105979650590565075147476037599797301852656383829218248560026761510528200628531970370389369348950843387721096489488126928821971767878162014391134213977240421256761730918582582644174187122664260080051959851183586417709300102620074656307438553440343565288802760049231422497322228484723489685917934187810343678422096672072016736248031395890811596280533857521451128576303043729911757869185113934721563869657552210026659860670641399431622672272847823678540618650256497709102393998253689294708842228849229579992870181889150507311317156520868387872516347888158960609401691581265439117321399548673039134239954703837746076198897826682572618667677137695550218872629710689529205652257970348841052105030830145103317867821624381404168706435045618034121864719952598831202315874912615450880640564637326900482068011474075189538910899522468910823622579197608997407323256089533323631886168352896094499623834188485753144069452466895682700031706460337074536518594546960641834314292184370874084608974523458051283571342739186016621729648188936217082482675142547756948691318332869773251057630108188021829221312771759996074931520714172071196303871073782438375057454389743592857311164176020173721364513033555057072410102171172600508651166008135514217237538975293496489605440807739808159500644951775350836609970465304822873517880346489133227940211334711391597872485903504145837729962625732964287876425402643304242473313606890712775541115230081302011692084833022467388761200202648476199097871236150276990735355611638672089148903044724966321141133646196905976732587020625968761614720250387677374758812359616071080369043780502037088350786617591057224491585086279430267461576792455156076524889341444490824409871067276892886414327976034531547886432490757852457127718485000695540961628933323501018039071461101995026749591455137031036444249142122104863777017447210805805743112044945208183726632120258789249887986258331574858334838396340152171390909167534040302050690809056129442788844552829401117016394187473534205561627921908015323587569173856736400379707174572094308660666523734512040350236082979056847166479164560934064318650841001142985867986460611487243248960457221641578820598470797639352151134712071724412308769908033976099785163628329094621429409398965046059120464464627054786967264227292888223875513583979314098785490376944979796862614841882785807021465127136118445781986744615608098353248040491549895243458899341644686198252147288373493588022683970108854476132747611976003303626277574333675674009320860623180021690856454759093727232955359160680492722739562680839723924703521558713007143017850141230031713535838837871674377643845294294094710647474773790942409689723689210101204267344120040008823138020731879090834687891159604726850703856013292028307892684603712801797415958720702819581852100225712914658245474208433450631578786983216351876768644612879485561047966155119493860937762607554197518397515691559631354809564696400836132729822389401033723097038918223155118666682351900121298558009585331492067302027362490254740615982167014206141315422164829039613111869169792012485555538883268434310753178410401241613703650859338334355876771105776518795051682368552786731404242370980327168308744007853811063893651462631666205425402527195712498233303552374565873374770928287991039017073160303959189169398366091256826778524033856347557537876822237998411176140400310832324572426555837685779943788326646163890722271785505318504223261911418970380164905400202181166882055691060825617317428674148150407187517884353801287791108884301569564915938175295740485374972916479326825436742044387293708315172852989693840896352107790901066142951998595411672073039556800642170226016772309875966753442823568134615152273780897893698446972271037417490316201123656243319939711726066393303927030116986310950939261430521934423649518822492156687136723376326303666128648798816950732771981446787097959660603685724835257588024805570304540675215174441954173063931326797141664623079705809400893340733866503833770089621732775374995819403450846913403234618968019069392526243474892848632526831058060717102986940208003487470695370454317103777947604509416724396131736977114602674958598093214527038336441261414551766489218577417035197912879748158513114870644840807553479257818738191963609353278288852186445701673064650581678931879973120924320268220342936619366674191074849164085537207255304417438571158735520793539129412037625292979561974389673839342084607331613180659515589946197077443296320568442142065172974364848681200957119246179682225524599115993474848583478102437068482046942901396309404026258036012933860357357446146828009864139897648347506839809135506164950740184369253355468958952330424011182189092960825083189624533920146297991144882296842927235990546244839830102931149989848046375947483934968078177069745473214517211624973976930351134885325328764749680799131373814884574242012419998270024579093413876598934260075751521624234468643939745627252939005100546592989095170639957828363392993096660599897568352020542634912140850444452436946888754066889922185167617138544706207375369761558798298788766154511296109300021437808033695712515039880205819531447595566479780608420172570962687055939318613684527121211613253341074478210277302009151581569558705768296023624897552684157367099786197006374691978226690692851980924123794264226709814424208055472599677134522919825737543956171529912917111647014460172466556104994253738395417600811745359176592667203386958275674364975544917314319939395648530163965476758577471212505290276568204827490805914488083153960144760036357528301631738237032843501609752130530209054464509350175380956129469520517788972526037557124535489862790897187847464634511414520338088752616895854438212119950830934018901415027539511850151305388879356066809153121309037523914015475470920679146316693872743680288956209862634621235998874004660153844862463812086504449055449683168413669120830412959737214061912493615653317972770898392962007814863129114646458712350495038834414215725003014654688868818019718074186372322808223645824539040558282210099793599553901971291843686366469091002050982337036512798903925159298979598399490166547896723446988672579557488701052088836898506882586210546298596979060114459919038921434514048881089670314293481729266927649369735870557375916386594295045096890245328766443353097475406929052945264271932561295019415022139423094642212615191550110384080170676556289842178633797748679575695839087529281845266865928588594928755326222616004127729741655899932967913639465159167702131294923868420849126469864071643302472247294905314734857808167322442064084189903829221540760650151521673837194687266122042207722724204953331379670466744087656347443808232859182290137599210910413848096642766958344885593584418016427170813031637332882383671268852191419367008462424976541062478574643472703841895327657412331004320706125680122545109957991385001303374672875015311038695662722951856283131968466630161034967929430490554110733460923069096605562221801937572235881201164947829904151497344150538255286526177615825908171766645824508502365074465054939932539711741284792891949963061875776111951341077413130965073327451564612311220219930622059745309668997581833956944892679325655880496268443527274820073674756675415514786433924360156716725355635516403596128825042964614419868673730646481207073569515462601753980991577029538086217170781597927628381503906692619311968826178649241939099525453827169379372614128894854338873920140282387693879747477300990610430999323536913902479918117619608183945667851226810714843511606313559192236688812526245157999805163144919161477022847649162665855369190051978554526186019776327101320707815818493851369028404770990630175741847409656464103928163524659586401226376781871104718846293922575932651031214821894217010537402619607827273060010612842242813902410062878188581314264013760504806811273787716137312034508414156661448136476382741608943475389182042846557083880332937757552070601557416911957835265907237349575374009752829277961981638738282119787763550262073350905747924590606726821532912493949974085891134257354063569712430937238462964359538618693311853942933203487264850057874450920226575516641844964790990876436809628814404568960523916815578323834046758975335559932173519253173821740129984575342546928032723816600945856106811181688431036470491685507517741838597469061973372599448621969254563489484385252524233208613364746451389287296451960994003351040964295016272789808804687823699999815214949271746814993968037825691398578440205726467465000360945193709283934826273420741366076908286211097002388024634674465143679236043932243759842306667813648723148456795457905506023068523612568098413870594961251894089978474224144018488835458092531552674499052781191183664831424856040981272932040226314854963847128335550906845762601524641945023042679023334754801340358945291346046586528972715664525463088844152690117521660495886672213990386501247089634868331560177681079186584724752579086376867105497567880879451991751098070206397172369567540951189861854739734361087169270460120206985167494012813673030339127133874395954058439541583327170289101856803487013962686172533596240647213951006088692474178547625548322889390347450314665999564732658875516134592966026063475144921106671884365208519592676388141726309991475933537904158588594887080290497678849569353156405887550813258481405200685755320763990375193936231806073291178794282177274908785899799172535663545382307921200399016262818592064613376344062959852716108161633970004701302874105344032857602753650200712558581262812981945004159354367851008965633493029875900271640866164428143796245878942699341152927810386517202873770175253825051934873966037474936305679222600621749344479882912628688009767784624951380262411929737411060358076977212639737050177576447349002973521663108477173854992236328715393056307426137275554896111826982538041572051339461540940916003499031364703864983756809680767471468708100709222800826912462423512881546563201754105470649793651649478979490081237550835940129371113491362870422032948758648369898529379413490675501141750763118157524634451334388558464790718727216388866094569760789186026346575223655496532396549436287782437661384179399946479942091999641700979517286829267272330509575332551504545085659996218035855591743511757531951957111422527677326581251952433174421706772524521871551614514560896187284675704730056829947414083684502439241504739320522296527400405553539064515908032806536874670247273126410902811534983908924203486823118346697951598763917164597342755413789555465884757070312332231582727129133395255922181946105986844549646531618681203016148384295624588234019424125112879989748495754185521291554111418755851073937370390028047642136091020947977936251511553748364191294036577671250698388895148629662506861440461378172226233652884888237309844370242623949552379272866023085261835562082516032074174977381418217983663033636269308563131023461148309540310401370056730333017439446453291000958038758240982277916651967426307557501011740143766732844276487942399364659786851481848001377994204597771746620971737422741851597833768073948750056320246596588921968927074889566328888088503116291732350412789089557904525635160101188731233835051861957198505749825638967970874701834570248558179425574767646544533660810763987100277215347284781691933637720938658999779743715582681826703736519005456566005448726261236724175157525373414351338421140167244379551262997942732516193983466989395417798363187980338771995357569876074205453711742082647805977132436494323164577297708834947299049311556990185141801613572088194109311986847324100221135369164156010660193344056887384062678904912789499790059734596939413229988725272080276258804402035453832670401343240338464916510134529683439938738931753489283542168979743206326847256313824856534665996908962287789472556083458278310211664666983729493320013210029926529538303440737022914436738433602504278276664076258777929722524882125916542320240966500082875478112694620994337917646661845712442722524393433059608639678532494347429842784148548580635037042046207375573797017897801015175691618703048247487254535621000294162922535306844898656879972629325173897919762019546729475038753252862470536923679235607888661259755114501636107102771263945924867936925059373462375628438874974925325858833365041200591345629206488374073068668977128636516346883339538725720462597848174333101221370553527146894577147478533892149112684196689648586437245371966485845289551935086825272983027059159435818904801557784729743890085112599650999633237416760228902119448771346345328959414060989434368782644067755334136077809772826418893946495101305784029051884131948300614595161152636376791070224890974590952439417009197419071833846527819822077395434485487182751889777996859205936551958444852432818505364437150579369327381283366317250926490194864967833001973704006455262711597865159897892117159049916866650703534769980090413059599181218593029843128683133233992405982230614413067825707403927877532059724053259656606085929258114836911882364269055529277381677372358980309771264424601318883878889167897658072380690899953331052117162291478120004503963432319297643569398397358276919102918044966845875908012712578820789541561955473597540294797196190261312331049115921919931885904095061904099978265254308068836064512849056055449150622822258257569220095039015877717783495596781452159114629227957078880825299897860449433324807558348184246058214520912948442033766976150919156662352026087604000832188374530113509130221834553735353836237290781125099914315570013636800264795878104401493452279519462876817368852122922814232245868990409906721123479606274302645420700569669678213323537741505038811374666466666795088874229114067551543115991048607212626675116116507744661385939002100348909232091723989850201574991653594615863514332120262847456641836298311261297043121388631613359724014671219131383838307878424163767383748825633073284663778143732540397208099667991494443182947016485805702733889982096978373379904811134605269257306922509139415504260968080845999568701248583214019756439263301885609483906126853143879156070918741090973139269196617258104482688718946458335490983354925356201327432440443373699760510011855847102242550093382194628383342693600281313409461266815578913459560142858644499289107718045578945282715656634478376797189515100499141238608836253979607851262185990213660255184770119833116610107856636769560766943059721364283628911177477943530694605535393338477963675392181956797979761066050246162922450585065703859551318571075368661850476224267731409387988514713786901463706808166283606745097693013385456388954470985985142243514726323758598705669418739055037103477415364510147436542498837496216491287190147885865142091694723432822269779897341526668278860946557328117066126249626619306916215064518849805486061540470097565901895370472440002951333372347327683364769505131022664975747300787127410420018407955764526147473628944339229902395767672478584115443305953140930432384204747216630968636026450901511049701113032771805965735444356750587863713490979607368890654088802114768788814831527743619311186057643588236064582254629448720494788511727180031834273224391653051178103875889221211620568358130958622732870228273364866976157377072468943242904095788721173257395028272457579775434411165544002140076313637001043488623237891527278450066014980047581054521133231553103688087774447075660522261610165424737686354758070522276596958426523303422871566798964332453223537881865561242282891982706901082336069219153696727692253832326691471684399945344759776863303683642396232218586144990024967312725714443159029536319545881374437395529805747562563056607879642718847633319309579067961639224077837281697535515038917020386956954288247007847903930136149339273200667084139119962520901059082743205221353336921412286527357287607607628428291018867075567526552000404462797891090502401695269097808995951723625001974189042639900232905314976574277736245991319988391429151431498751587404133514406567156271972743377797479203395418709802441453891897011344455188953863064555547174038133950464949725852372142063640274812986896315146279074602850689495000614786262917061164846106361385758812513422857502790744133497659776234314109796341322929383256065664566701626333539968530550509984636859987842254401182185845119422980737023589049962306609002531881137317430198816219411472900735915963435855193168802158551715294226824785771840806517024320384107484074332847752623586472851933629101469102828371656542137357822519794807563028447152112820612330947307608504571013336065457234989746683692650045857651838193297715890584925426111989302590828163803657552954596123332362270739905782670236428340002000099292334134212300814860060231186035085054741541340968380785581866739019460690792863188062910825469608697929256855729388508667468194322604503529973828980069113079198970891512540038098535464012231084829972372104973981171604764923370108503984400509686602510533138066249737389556643448988464291205256500967483861519129761018410327533376815531959924129738750419157433025206078464841049261387403838492758636675548012881130899140302795861279139160677463941353367710921431226477389654695302797802303238592428367175121626153198812506562621994926733019045572900063593449112965338420961488018966502669497361339409322801945974481857053691169254530297824244081542904495467288518699327509229636889906877974346677124603440448666285010300274375624670874471273110849604733009640184191064609214081242594767101827446935993373604984168214483694687488527389727374458982076785623411505406496601072898399829160689300250139241144188624299965532672361781668834813832705940633535934846335708765199141696056089983953750159636476509134285659792404499361110357398494198546415665247070737293687111664893763379483393168953005927701684136447232705050752437834163555135305832555762159050526451522179667309889062349837697646411600827851208547117506371211679610587066422304158276936585643881965841124034281088576450918536778358007678062904875170171874843652665977307252524937812859884354752633547911037382802198940828539141539091001618599105319041661085845563262606525921447031335261970983167797917719274195680555234502950421563322497077773581311252941383739443817360031659290998407299301542643092645459403117558196529891076633899260375568227483663194784888122238730056607546514912242532220477236544096539250027770565415395752836163618561645881213369486391093008985033742797667608043277456401414647720853254332272005592983792556101663910321369436636679022451357968707792266637832179347484963374699518793561949495878460573295576047088027453287792829519242208455979195482970054398782871963647052351420165999944774214223365424344337752653091739789570993536861977427876251380473848041413909276190655957250677102689210309517271770268326133092453142991918886506459856441553578519170064649086787970554342601774615255723662935809477059497289692428259760258477891735742984480732321617915368711895197859503097839901519562587856529709244866574995507613531380545720209679230417446247159711278875570323706803377927914864350049204779606013529874017088745412051805773835422195938383085882805323297532248111062815002479748131550447419469572141158258893894099563840251134475336666888472943102192188101854289899990806865063250648365493980328026033654077399615980754315867862543598520585715940711770941651566562209449096144463399842410041472205793745581100932497891658606763566367330883263296848129928087568526313672889869095899181459279495875446240308173148510008589643908197152504041636520566442516333177123000744026233806778482933484947205799742824408341222620184114085822002014874393785762210429639233654564915554670028184493368478082785970309175189140604957491192622151535805890702205057367241601168210503289816002501364615378160356700000133809234670979094686998457347287594120451006661635687853819617361755956888647300273975564782038184457620671393972470852656475312396107613913137842503242213465039673697862572848116986207558375578654789885448310780499642455474623380206460555795201359487799579271919555629147314465661103262334967315341924995751478073113729676147930651835242870097939518560877068600492623624911157034006093314853802926615876524604784796968729853523240981237932894643543886804618831987016566818506314367899708188392405757642626789005831842975708576434482369491040350802721638855680550904179056607180203873591924093364906536225325707920049354283087046893692076835175920105806992266674750945302777094031685847314940935941148306735113312355580919493398351274116136683075771973555946789867250354680750513015591675423063070115887738913688429083367053367264613403441097065381018957993549896758270906693048188687564469882939218731960318819692933770150492664847236332058701418421055066976696389232204150772385479898500318666397456207216456874807977770069767308297443757566941134882243198744364633868878797185260313398700298117170460532169551977935051210611171369808816267440521111876606563439928992682776367808578058718384847567700185781067671079125365125882632711741699063394836300163684563179142271230532482614101070826150495853935750989324060489080298102734267720401243880896672057889268798972641738526588322376988080866482222800335323691684283712779338506381743042572619024454144170286172453303160560465664073342326748531298765981578419334374820291192076438711979812623979667087626936001301623759501285085569371581928654174910289878844363121427130901348094872868686189961801109148772927845029426498009090714388858939204496726348393882855054694640655673623455477315111646913379864791515631654855380381741928361444095390204205285142177490990666443165064432661914067159158921735751196649356494004129450832376020652001619659596761812423806755155308884799092971654762015951744904463765708385460382664026933103273582061484198759696132534566005464322907358838460222062967759276424208377586353124818050226462054765508501361266270471107222273978177903027235082719021923550983052932785564722565177107473200929190206319317162011902562305011276445632908884753952878719114292272204256753741956629339587675920092287667490480300198914484916038840946643572817672187804145854872600137644153569591966811731850523090544774091051303276208491950471053334108362654014386338576690802602312657377766067000093695413337855825174278827385906414095476059952066252776699536402712621647246038992704113834798453767166398735825756593647149820530037214349122609468374371750397249911023725454384349597786701443702570826219140307232170717801651153547590155088245923388577427613930260441902737128299518926445001226445870404524337103057737837547724181849182603428295476211080601589270209652683287944693298238246658185589732600601310587716692800057910645504199551440759810572617780807973056659045095945813339970690255158590956106842189846927918096207148587302920921975459919502213542949260400347133066218053239104063316493007535263661117327528772056458809423297252825087758278459077303195532498860431455547318601034725629591060005389916525963505519736111948280962372045602316223139403190826331651356076956956011926578113550136642041924255979177307191724402769358831353630610442775393135331280477615463615429812766787438160194463838596979326907292224038561736088256461636719658204524106585513985606170145506103918139177013337149979587137928440414750440840294892357682733308359225128328988503880329864391449279033305789358406888356368136268015956639046777802181090395576577742625586002601141785325885285842473849402156844322511816217408238242157048535220114514294802302101731496082100400615641881823854749526164826745039370161130892919823776928515354486592582665036945651385558704308296202494076091835987975499743180369387476431001948932045251422097355783052930856759254267741304110226816551781021825561552383143779355154248957953082743400901961009758420882959734194725087496639984404357460711129905027555219440923017753637986903661402474877363312646924059579939050688755181932704599831599190752775595359381231521950706813423601835637117137885946069742004981662098704493368490476907937345183093609683242556741640170214376780983139449337487631169017181456573528918243248944724086458854977984058215738645763302720931343272726366145578235955405783527295317509247851449647539767079018203987155535753119019179801074689635792554999225198995818236673046176858936250721929167000570369224442431361587668093079644736415413386370648091718809766771389339139264433238569215189204039761240838065593744026281844877601037659958938529713306663237478112687575597934514019157765866535585842828350938579315661498088888417525113374726968457648182696523421036254079883803974329410479020647391281480950515406081995659012702446726001370484393745804450717609513532362698601388241140939503758420318893975847235057196202525369621477006532382700737427674338447880285144232153757766250019100784872826637326858812317276596994836513319930448218127791968405229633659487394360619458211549016619087604083091091877009303174254813692205876660817337329011100931824461421863385882314195730414118975902027339769217024637353189327280115570142890515709874072392390012110660677794000483669542693283542347034555544587729236211678621782825349426906435353675490491839955871816226798154718690100325211729881297630323270507719297239827440153432920872122961414812878232148178130290660675717376817066933123886239797821100238405095117031957418012989472819183626315193427958959755881980499303378863624010063240813105033043168448686107562238893702085723129054350055685488427947062867043139941723905035554329742622314579423912890656179714059103450382095082010504818058336264619350142474358435907679920044251797578506442352592793484825748929130165123180580716074183745013661430764023257383826898429376801163547792328298914479053039570591158205165759497769130783110734134968694438076427232132630825677100703144857396706781200669742315683189004777143322071090401898052564039853677149023721108334947748026554718999741770455466327117598583710967246613336476967137884879235232280726219619037394427345354215622239825614785791399276964181483320914931629097493634038487194210037770013313720368511908610890000977133296160575826513965129643186314896105198571807599637758133257441528418401543480237003207267190808199990883859929075534459142078774816184814051932290849911982698224431533689094783599141694972725579603669454979889281415334770230918395580270892058465987124057633401154346977844419212973367628823142719060190882448370853281881339304605121733584633850887854059154263718497159422450788058676062567470794635482759243133073650394940566325903096499525662408463583710490707737151890091602585178528265715060428955634292020833595585774163651570337684124032957235669535001420158190727206060770528696020044140231084256722646800377084386570194810612645025546086351926112380078329320330677655354281951167193280015839210229260318554587887434849383912134709202650995850631104684543599879051150928364835521946552029092223484798508490058787724857147894442648356251125392838064108955548652876051433941049809413742123763485154865001632380916094485102081101391167617218220769903856980274750068524937642185300236246549507097691281815445832388790431377419965144449548356646699768539560382608758146440583181375569788196112732659410219366437919774887909023080330948964012126227648614192668965288188540644865403486854286274104671639625789489852280527964061621048799362159607644468690083171243460295521445454552170065727491947974734298529530646127115893966378823421894848800802195167438610495052489136147658712890137665447913298396474717689962407932711376209211957909784894250270723689395772447428275449108953663713242189431618626347528516180064786643983183614368152645422473683369199911215703064430208722447642453068622253340866691588393891760948327478928023475306832490593628490270378738900167550725723222393847528868906139263004728903949825361868741000860900969339392626238002516217657366786958291347106028788664137870261605128731650766432905418067078333635594549093050381210384053789076084483718422597154794703164050399581100067520828333169101105035011125429107850477391805605553600571914907198826012013655962493610011982940102718297965728531628050686889695006430054296724395933750571750899230843446843103938239054924614041440442594935704102687225670423409039136393798701953896357904663471866197584170058711156463293660357672538257359097539187396092886231046649085637534456813680192426271468836038279382306635547714917790122117644153308752353350725102391010263015929845768486838197516317516334425058931582369556551694522465366198814241333603563139168556785161770425863535954969822397728613888780486291123132939117149550444981501952042613627803041305370801074284351128813806618811155265264468587827680565129862612248625870250749056602346001445553668901122884143200434145996811342089376776904368025159541295883787940720135475955086723404518464855274934785363553379638154566316181249708472149237003992320400463605935694083973496727956216981420811458322205498842557916800531766019571509425019619996865201319427595815709853027348158620610606936866302358151157353143485235419446294443339555198251423489361771040799647898530907124028800014901772249805811636061113635293798562070210453268579084612763699677825158639559481006430223248081950839470434902487715061142587495408020164314072528902824360036891609675548998900435452114695024200143424720691774222358318470097489500702780387368871118370009861805250607566825017721350308386084434189883256832009851455316895269643293051185293643967437407374471099012538638636260943086919881493306699646640496293779482202725624080707220747669915599156309866780920047318263330659441271852942553990182936641461847192759594631808175855462317674781976364960001224762036071236700390140405700811412307718928806975216928235712508070197503394474809835135806876233835561477301280353236574813556785262659893128281461612987263435357992516623755485282360310247251428359205678342209130210923318188526200190955570560299698294702047422509011599952795735457266534546814063214615033628328698603662697641021896731406569337253175685705200420613948172820487347722385087208440891136645194706589592913406637216595645482252451078745061894278237721635967624440848713318075278834178921451816484999231224286114024687876500821638662271899592212449903115244698679945324084527247147701594482772960094121282466759587472294346179103495575601820048990040248258200007909944819545154419850273584017859726911192279541765988859900283977796786040047507406744779696776927083154844538445656812732503486998124199701226540916878044645989247372412180093831567694157276659214709020366077816051168116994689728206296905784019925492382456663688315572839795625545587338105047362450903534897531472694766209357495945456932802314624697514407274501129924208612175213096384469491574762948517540185170922449497668432071853594834865456940565288419889691336666701311460350893789598194038674521290209388307881089825548845357877366459700377643719983078306666424648365540010704845921545015761897925964964151723067102095797337424214911260832578756107210527176950403365477392489146479224811099603781897899880579412719503397019014018519701919205995359684509056506192023086483308445672321547252321860066785575999337207154296403890503964926678541571243538178349848943842975252434035843203174218932348415453131177215017589326442367513650094861384246005562064297278019263813657652475798623357858429826261735484937332362848359912336847590772131792865929740549118938623839727715913789286856085546934812856898519810043209562330406180847783663413252475000027776419707507981729588399140686485310596083244388949347363903497694393036872882220410489961727320145070687739958733120581318163149889428796440310659197038856428341942612527346599658852933728237272039115617134065647814164730046430669772649009219232667174771350880939772018634548290414402678086410316510485237515802861702487569811582470649506104003925305155492000612956635670407823358195582988007703291243841481521592839151421265116961465437415756962671344390054179815499667046316408866031238934426921522165175255627182231438111687974983721502217487894990633504798410162424566440051021797477242028870049707197600530127472083854292540621625506033810271481129151119075363701567004321992970945510685379629162808809519100693163238449270770268687787235165367039385209533504460011465750543202880371666990014287782087875461839577328104010431612773827958642364648274659035612817806239794616700520050383253930123808650249910375281244255867244188299190158416339032898079333781770444792444936681107956627608591012782604833579309741146471351551668710329200477132830925789943548884725236857835758541226106331518114396800470290988995569582105482593965541904208415018038262883797934441629683693829487718380636357868304746511761867463806096915121960723087852870128696534321889977345107186574232922108881700240407281857444398017536377394528334137269787688134768168768594800286539292995671376095937346807847488684260070442023620833320804640213087164933208212678653107648171778842206472563775508537948321220426721640396692621779879768453232731052487055219196867887260073227663413748199621083468570995476409244882728442686338954807191564236451521500312337460980971927744474963055751429989680390501849865639277061154152458399916950043818292829462927263582994373250408237414315533715813917161322729162614140716947295060154509728081008138864332074310352077542805826946536351142648168610679284804358094278766498978598978984692255630161723046776152530707107657815906172141897796521329051807695660064401434100055316171986662653167730494666438017308544076129661533102269149339192880857499386600161758382942027923568347712159508723536587530708882717178425715866895853439972724722588737283780471487696765700492735314377741231778608156816529300151746725468101053737079376972924261150950343538919581816133058921265569957130975262861614221813036885064677758501062331309098648702410777593841296368985076884393729249032268466662296796028888172564635287179143976171092913822247991800855752135714103250395293861612635192083667623892721743030709754856709513206374670214600785296311369116636831766336930055193641250866555166185433751947064139453328604669396191252843075530321720641775025940222240765427726072468285677526305070701575188361032756487642316093874716846591293599330142344800470424750675869124511005858333921080584906215910012524880760654341141556868805651288398375157072269884752695771865040562317245239360033838490638219725332265652292756306581165449261585515276578812886862245921843372266073597135784740964196107907493315102494175520010152543381317751267499114278138396793597631233143163351521301623831033966370583809510298711392929087583346293648514838754342996003854600965108739017321715489610009912527820862037003966483876861568157086177848213934401203611198862388701176343136475906961029222374999456762225736592349208583801432683642986613687452275812082982459352025258080768087023239580630297476410726199217916550029820515086208331737641540560554444101142747144958147999960887803638653457362872694052080834119747638604581006466499649792729345262262859018612861553987670069797770783319992020108787184911701703090294168503477137085108834383861808733966421721003313876185624043462973378160351176375214937692611745138543184908384473356773403238555777761090544592920505311847922352585393336970159987887273844601033535274886219590668621969465856233433677554301950495039623722593638216600632669521806985142527914384293572065087420895566233005512213732120855680027828174244498059466648304423368883614167806108720071563762417142927296759247690965712837899545112467746134205988774360263618878543719656543852198090917891208557346756704858143008016846780101330631648561430296469339840807467345898816859760267807042498182950973171620701854137440007216706716480738795874741622317904361619720943029488838276513899240347420964232565106348380388488139447921211064054567172820341909277792227254326140287162946490850042326410304158517192587069943003635986052542714162017714083767876875055466557827411285978291267022369066923017744828866752172921519322672871831145966465598288319375075456789903895393054887981350633342714325777150309846348249086705908273272372862316612386391036634656726203246878337884814414402209407487567280624706121683785008121886161592519583287708479766194875828908819260554917277374374928538311201847113608243180670549230300974269363220207235946967588047993238463774411711128490234245975863908132789685063499208288684690995259358416930148531854221560367528704047215342055661421462284374499874242140793194215577585757142979749916721333719765754572839956578932445231097734085453438445348412856989054311185810913359720611488632600343587218737682466126923741898885493942343134595404572599416119498642241758649139265021602485075579239322110600901171249307860131631380886932995367171933981579360908952384077474610803253489300910203105273923763345076511389253936946944449564297227770972054839204660704917086929318923959282624821097110187865701086558267816890541867219986984557536231933043882504117047579841735403869002050545456334579934637822527868025900103511297069187802823377028872218465886040794686192420231439562537554077495275962331778176854980782029059431525117840796162882952153585567657212375502352393113463251412508863541138269682760400773652682397739015093651866560777457238363786270128535473156137338401534200752455889472786618528666906778709669317104296990229069586943869426645140457933567731327962735462959438549080897607897383015461646047104804529465738033332264662953868984288796151153381472592773781015639653378289261567801806187537861911840803346723253351364941467092261568607194423988131397781269141683733274823211434451733949097354905328270897100769761319194123752004134172871911752755949798313710444449374466911102485713757651378235137032013592249368058758587505690901200179764175136155402681722612504952693595313927077128035275688206435948981711122756541996499083877382201636488304014780710457132577135830296247834698592522459030707895764013442746781642599479759370321311365522910168138938139121567058845228211229630453911781040070623389405349043165956014390601060007832678397193982867766172274717590170860770690865770380535089386135198695972282405889337197228471116707771987670944646334749487791806917190498605288404630434226194554658826330466466696891377624415544685607506553034667979582795737275373488799463244029849824892099336903256288064904064231416648101180372187975566318087980473650867853022604825197336046175512369240857952359681433796122681880762267109025506053098730175159955486260364230045106123638714603080738717909920026601249667090751776879844568204717151790989500310878011757164317255212054290473039364688257582502144934838705968010236726378191549810147062672447064481111481733191670570023364518500410555514753433115982525394037982008365723680556924164710128520386187216324311451035582841199026808073209937482956605608230846622741718846561454667861270931697871688953018116747312592430623762904669889867405764855160449364912164527159307842676925386461350264796887020713418614402557197001903485483337747991459419412361400654333233625147928313549304448259158200425147302694942241132966677298296590723543439315637271814895723035929116274748616487868571761003810621153515055278770500767067988423430888674373985075866620541506677626563440939171788977995632979097361799913442479649005487033797375943820311643981082188164587297384682541755696280951606619411444526954950110297224877952619231653614730049862258860652098878815900700607583381880580941362981272915232763980967362620251103821096777781316772076865556345843081021504140969370047373509053979607559759292367862073960362866324320055623537364519791820003731169566379618925691227330870067035093775119337466436030651696378681317020717199308300533212921973479322627866423125534721948457031385113999410102872556429225415293591588852452085320564655841997192784564476779829017601069396094854136022597686203254815569429936501139494824958391982476111214066471745507304048336753114238191625648079929071952556905140353380738619418559820611112238457218981099348349865552373535455042347704482706398115468820110981506486844166035648533348842731390340317792916388647905579366085966442891607923318261533679669814899654906685594141781359476207710279168922580324063360055591025275158714718715380875083962232554938173458572013566178664307526868957736348237468916764791463000939242679028477645100573817916849797652150716792703972778688730933227618285071359742390437676693762776807032245822864067074719612055344051062038770658782820616301351722901144171365971922909270013940280762224913264773652993419974169637603464300851441860881566903313346345195416068849640178338362550162939100803374482634264757572275677314505443295470052633797033344058762750801903107177218899794647339148670302415381952987713253462006992276436783498189797158837255021125799502768983963831219230594666880474956100114842354676564687989933418879791240490137032765763761434697602386987858170485697657434125059192329148125972358003784341405626756028720046097228125270639094474722661074054137254922849719342038210252866571966538132523306395457072508471135935524658862215334355595768383545479803354898701355102240026822825481933640307837915968790035838958956055048656297623916359269161594909220017940795317823038491867688029257284288364550332636106989669968658446852685809564450926566084482177705703760433180304224994708638186576594450380108046839187217106853349633592393165083155106071687077014676360881722558661166074454264777267928161824906852303174472010176736518250688402708907268353993519436573117747837684648927195732703715715619189874994127167277097031231452841679408338367935202703983822773055525343742393444432870008659196436283219822689419761259936543446001350152189398356088564404622140300806783439748840655645383719041197326101829849544898265092727724270618923116010786079267550192157197448979919546904460320920688138514876570141071773403762660555509685720640675991312655490771963703052275804903068595430626377513010704891662704825660589481465556371664527086730221962006119245251816136875514557972876837526679031814200128961097470226844428995351628424368860346060621761531547726667560806831906511683778784856013816692923554620194386913125035686142723018501015399373325536401256740947204668217282480099951792204812563917405461116090067667298224267678988853935521560534601649546434626199817531111282940521078063825998166375286610888961692369614552480362739654206567638501211923160158162764016787907692547820169960570707317425122657631018429074768659507496032610685561174778583273399751186206544403640798863300298956681852860746603852776501772705471051289190453108844208331447619257656326913145820715146178626116445513218168047761453506808066148137706750200739825739641245680091664878475278299872069182861598482257890443623896048749084638343250128550921683142984878016685330162617943778500017820167677292780917625764976231995122292469006897673433301251669166092888313216648141038038106518559504664917703970426638696712358529242872279188624284750282281919622216372439038679471729720598813888879728662251617495899761088444127727106408263998692811647810058841891971936729070177804021245110699031588279028766180180303178822397484670157439379494403932998778877590868949730769553356884611798973240862204516954970144115116060507657034611952287826274639096073183886362880057753777759731734401855204061932940562656130255945749484745006342985709931299065877469029787217443869551900985891799310196609393072064333902212163459077253452867644197345903739190080351330478408209283764573234719298910590184702491648110850148403622250962372094542744633991631873540923918135854407760283423932088345258083329828231739242549823989367478626465810041480742856931816968954373839414854894262620952897297008328926355070930520987416343875845763730654905757267974310686946836856285241855343836501958291265522129714151390476333796686557028391475721292317606497303889338637822610168421170857917918144669867054667638890028172603937809720025979686782553326289872707720404931600756603623963648449959242908792974759813248767381009970423468838036504537559340118371773507637053814327890561177767828328312459864306305044560506615222317468910115373129925675647497764867802142381332052210974291367245504581173211114084898680198687488028490034525809166721791682760049520028716151314447276413577617018238176836084548570021524272664404680811641309723563503281505068637270266026350528678947687688807993725834650454915857389199009504672736039398615866311044535853229446540520176638915896945782610877591135857214562284383633959658010805007451607922254624965430912211424352659323288552640636119273575656514710797442605998343628736550810333734528602110594566103143707026500837303199869243796613355308722860084359839996699669661456552706136495619786186854675112125378436078755153904300346433370884140593985035994826245465106600423767755185037260779358041173273913937097273401284127200442489701834652060811622651114522642375644391190932483715690394809373864275871888576123764893158760410996648926921395104172979924907554508215950252700444140278261252040564633205119505001825648101183656500619342596816181977916023840453267616762611244362584101838846316511072971357443808967088238630209937462714744184897026433479121750003990548830147828138819200991253874140917620546603718124352865017177409290515247916621142738094743939928354713443276588250520633694869513637860598016925248884793574974529586787995722966749172360013477386863620815099856000119532523170333290546246886515014960310340091109818372146027849890832508550523239322469216077877460250781491378884596276973466585031390246754696505033469980051819163495577920850061373650686247819399397681462921383279583316377566448973727415379897688777667371672786787803960780212173595872433945864004365342513280480855820896184228810891231139627333465836618851504774964600589792257776926709749723206165377511075877064055760200591155842104445926682022045129878009689858080837921893016554493110344531840243722327456272264630035942230223695253713503182804890249072784127154934895745841383443671904834567629922989267545809958847889422537570252667489933386648451168697254359395798945349513758933704861927846654779018768042401455869524527750059923194716934913304126543765838581085424648042234199626997969897501713565569603012059838848965509690256205194321156017668813772309996398661879778119376631242064662781289667666872420605372999221536942602881251594471206888958641674617263080576279956970532862202922459107847410793194633240874955838410766407743991875302062008325105805572618873114510130662268367098853830610028948930954772670666955233023025521087574885088062417420760539162999274667842856941977911684787607444464274260123159266509424288228026534749521835418735458207846278530381893729942762430681756874306165617220566054819306252950846961865206367278524334751828314541938069891141990907473543271564110258774169801410111063192747345356488555815933941775186599230219528390787845397033976704781646719695842675947884973909902410249455032551894319917990609907831503510360452370780657285983590995828767131178667730801282548577672799159125128968887329728268336272814487718165708738860585414987667399333390424440012821809399811235985948919484562697829978778058082693121410744543577293924131301551370524779634716755170915429111962102427821591566111774280217372432071798825963213935040194842611222225126710759853405981083580439661639649887327683014928522089438011746124476852749446954152109460606027108113815588033868010409391368419732819457995354417805807876323737976480568999161332400539432270179232074060973931499944511674665970504254704053485706211661058157139012336046458463154995609889705483051900313845233115757737420865448188370841403086805152958684258279767340750769796405334562311353251248356659467496806455330626857217329548961751161225349784599254150278869971364589031660861561191624954851740495098270242681708165939894392603806406306178441398082373383994089789083734466449583282067199239272095137291469435971312226231312466879449876669567362059410702233220107554561800519383727828778097386274759914626346787595881951298840459675592453975407690596116724036960100369388553656632616025952599935425874642590380465081073729527490105930493181992004415093977557830175364631909034689007109442873190913318930244176752550555797285624923950560719789969697110613740853707424207219149660691131348013926844280279407269467551880572753229662625998521822526825194406764871001925169941324882119315215118291036320099902294541331364886489300651637763292445396588673593592554278347276737426623302876477440174326073750480481628710605064209200811096963011640504030097645582347524939401641528064148746888487857127670006905916528585610017848682731351148287906703569215314055491326127629803183146077937189049758826844276443742078272022018860315897321734111368028467569524125497510094540662660522885578107639058498416859117044876184593322171306777083986099698295186807780116915154426276976194810140969028020151578209819677341834040826693359007966707057610845420319437339056819416973593150312976020159825078309517673273537745865162439261349308640122193151006897522665709227908901486304114687437431360754649677983662444971125763825722003047335329505950367337789797369816920359464739461070839495910395320757371853031200078683358447131934845982182019354028981167489719916253123952757624692018299041875164759285799358392689809680361320273099391085273744845146179254396944019522257158343358684139050006727619718756693767099918310009558604349125296357572218281968391648156036339302381593614799581627738491812133855009518205395705428455863810176796708248690317376623102089813963672832719381556414826525035585356557991470638700987117061491269804456413179961214019791548870194521679552996676558002272018181496501064385611031369102760942537055341435672005483945788069728424725894522474751842471972896556649396383598102970906897563386248818281980629349709591045240786630261353706706921433294371263514020933742206247241159622239614837682716159736316436256762669956221827181147116582766501228805246225657392474596647153528699911722578374691918203520411924108089283058981196834513968220992694755480324360816517853198020214163815405534162287647883657867153051616364136012987735418300628860375344390449546703874146088747644113028619757082897385877972203446681395959574052990538915684502083889804207510955440488070834580950525706110021282203773319427526710082789185610245271155752412779989274809013392849666899454220747947869768135372789059896085732511564845353245458044548292252726667521492313186035517759765223403465675173404255082662957125779386959353968090246168798572750124886965674678289197744789009927086391808575025758753407944547027483732025189888398602877828526940393534121596734937977940679240029275929184192154315358090569466702544308765213336081982397194610462060208582726511833200706155920217110226070834512087556351680506837359230172278122114475277352582190726222217244666382617140323642428268785791125206451261919975928896488609053015312938000087479897673492822446461015247630916023253769613579086166113783216994071420711571619452791629002817600509174144973737775101556503597045536405608967016092720587493658806919123305410105465640501464357379707388244818671835514161993555557249691551060061353871717163133653428674606017973597030355628809034896960174221819206719613753958942085472819744063012323068004156947072056875093773120453186751084958343072276751908984378526749650259775788219748217076205179132456286780001569755157591616815601740072881966351880884627614945582993262233906268917510360889195947260836471753953821000172513008011251248773070933795301262287162642627601719586552961478306064674616034472291208899031499408070791351112683115641625656104157273689538700913749432977039499199445266816220774542789142575662426313571041508453971748263021667311921261938882408708362660942821762388648210206260751073637910267308214638627603578709149136266914181175193951655186873608964989782854254903921883146727849938220674585031997544688269858206273377625572297629743729573055670087929705469128265744888991715386559258763337415403923400859729910069778132549396014634206465051447331916300759534568820941640526465702341929283421530628175607833891434887302909450049081541889300051077718468675309720076042008460517291835156736561245431052825377633642019177530019715610422116667570104459336501971886416031128825906357617187259536602256985872582532528325781291522073818715753423190080172239935224475242121462361899080360960037493931430055985555578744878560905218559312071025338663783677490382397177343132892860334793925850996189387102835653592316499994100781787429714033606711947487862443069655433689786490586416639487730103445228490652337601226577674744774543936175839852229657138866059773695406500852642055632223515172786556944067834257380590642159339566911700162251270448641583491647612388627760205341590395751103226784827204078965729422852689625941320854864531226841946761351193609008070226543144098631871173686812999690034086677171786558873465704758386002799646802154714026711853580018938366956568162736171154382370071936991952473817544946500734837599260661836922471199037396784580121794198781181769933531527646603984636153055340760459823381670020243769759478282553145230594998233804219131676577210502731556116927180140540787749981329294044565308020539358060527439260386257495802294478203100261701197540776265100255150792959562932587252918116150322654835486229302666742013512577457200764427169835025614812228860950873968573510809012479037477574005607440109547416047295359680529272376231890495035241891428588606209002490703032759263709285154743858233224378239126868750547963332705440107413130356358266023902910734555199464691996681321645420109953560828341747177371771851649046591097134353642588586347967733656732879491045460626644856678816774620665964887449463395957176371437559786898898120289605264832068319812912516602075124197467862706349440840830156623827202571995733032783019813337867699009628604410591507170156055414107214312297511138001671790405254127933074904943021224762309750661699789225844815837064546160407060416897088945747977729719934253163173887761337894974230545497883283209294277353275215841931046678168155415803334025211857554550851848630386796443945958794763770398017432265786187972133898460176560628827593876705494308515945486642401560156069706399426803068694304971629610993893691323260536407229100667246482127987711475946912064384655978568648113012248496783665717878320952821292295815403041799072640558494172234309889153814578679422858675249087648838723760977897452172533792429988663037513539547592621717323732487956473459884071147489170211759977729148067180785333924327357682570538587650363905954256265218324410732250194126001125769909568527887664277130248184912647330616830667814817809688884437863931692283617290496647893226412244000664716262728107217262027573275896910511258341247147096088058110877063387446193140615582814706487563484293052877155851768466455593109777773471199806673788297366463320875468591370435320087047054773309166111002123053448713359232673413676745729780758994496502176490693746325428160010044109092881187963924922758708813574901535039862908112990229951412650275368611811115437423798527386448933705427182204428668548158280696609209026993774143349643004622685650080063819332836374094127686954140116222384815770509479921466329971096666006171105870062660580300335695007298163918375246725906432774094321897233558834019982777220856009342303827590615110096607293029037987704864802088771346083865036969688967241610745661404608081308998342074127952464686817776061157518079283097278116054438022367384290267417127227847753692640924114479233930280878556740197242988575040741900001693465287021388110420615841623369431367538270534711158067792331696549116594679115281712509439716427713781775900361951094196682978483407280668834082737677544724184788112003245397605576861892154790571954630899691278066044527118163675569601129124405743274125253032082484385272335686886484583612291492001081204700467019632183088009913808831877751066370597581758961363606506144331769828403560643092464474304028169861821469351115379966030077006395332154362388755675225071122692872766222334443518704354430810024867007503802952544957937473704860195944792087047650179589467260152564515421651603697488672438593854098711312414961882630192963841551379916280265342503947371405820515571329052997104314581862943511970060217544318608568691034676267053776429277802223841251672695154401185006007622061004748432387159618958201213519713390168615422509283500719466161971502403596170367549152948828220593978502975488699569865917938876472780518828458039045449878358833213053076549606811360894357303582385932301395983556719826641797020089249083751419899065173030798098429239492915797081087815677032718748265652187256596681532069015323992740876810633746651733092355927388672325294787306989880632516533743077241813024870555693503548885905477442701290753104190427714871446243627623409986773073991286641393898765099360454068008631217601140469315105090911122904921735745347053728344746016853125387422635332715755930488219496485734687913620791756382442919500746462487725152436857962290197707080793929367858074973032424698810448809573621146904348331820286253769291713251223816202483308623413311295465975490265535324197803081556326453962351959782712863707323438902947583263638292294986332024300850434820903079234790689371615307651228740818710378941226256404016706607432114631831305242001100516059291095868725842221161400540805682459593604292361594148124117680439748833601839229567179231034495832948274734456249299797702962363683947340770600137181771082246489535444037418862144714146362189281009608636423781312616362355088072979694896993926654751002969690605497267282264594938702644407099802395049487443219346343969820064890494703817161749876983905495324444753451086574273722701419286587858188172002041663329903290994264950316194325589251981259887860867388704024895191668081278867267086594741968047234861802696063259228797787723006760965203712304704057278292290735885102997938759058326828762299985411761055674442293946311844999423009294021637308328050508004900525329340724418144224313760802229460886914469722395278851585564943407347514417574596074081112226223950025323409113056979179729535317508366927326598056940163139769389229256925303922791680350853331789940950854625175375026206956329070286844079752367146348637594841152682268220812361322746582808890483887500825032729725043817368747215530215833532914070527629613133963719327310156666726772877925210424254415767693911234948608205403627843054724844576922264558894826636928805098755682441571482558308266061742130527795689908079054191859274031362312273288651894558676507083423844016533870370403258441199147862482383614015361997630343142542138280615873654317328356235701764164925262386527822757765749998484920325297534388694425605673706126162287324900694612661069750055127676673344448096290773945164003265407189859121502642276209302100757862526037076762634755614412282955566256737381604494674187832763626055713862994647543077338471506367130973687511952087664313336951158413593603136454758932686436616553824515472844956192452598423628042024172285653462728244120167457386594681117436217384868977290048950003448187835010277734447497179737222461058502388456544848564646785230816006042223567190179574557329123455879737274249343879737738875937846691900880222707471333765222010017869698380054292976536929398791516801903979661162323981706956217271695685519773953904801368856791038415277180158038165406821836237218306929690327001962268455156053226245772662915171897369895293760703103606036839252649044199391421818764388828115141480213713768682465323491801611264639066523026779129533728268223989410873308634944748746748138315635660636164496499316441870488500790993828885087825540628811640886299283733054497522158534790383826813709805292334600380993934495324955569841062782055533267932367126480166559415803358894349297122989507634860794800780482832114816679195041190855577396154731236971868978231016556870312188064634408739313323752990567388171303947189079466110648525939484745692242099448547275364465712321825986655212612738563941357183960796378651654426762289117990777900462327032852467586547943299581151210653473276479342872360105516557079100651819681711869641805395085424013004542449083122061168804510887831234464281277607264441365234136294362799346324149107872509496054926405510083445810676430157368545936318470446673755615277190440027326901985585089302076900708679772442963334152648652817405867086226808555020227968265805476387612491416913667083352235525740949569972682986256039324237541947528723097625868846109981330406242783593066516678566911016756966383999507421649317855200101203826154735721702604085079008878272620899860622169911149982935106703378302353355092338858166167283267146361284825562395542324193402766284188553956252543780370794121294768142276266125438399981718958573840299928002480166645367836894660590129369124087559211605215374228231620174746204524636721295893252676515389068890196488654544246661320675385087158903618221081005935461608034173582303602609566514474164695333441985166433732813682894251713213059600574025940800131974920931851253574432558205303214669861207170115046853906396123945603896704066180679297885509894744481324426236932568389459711638975242929616895173824492539368420099428367460392954894496284006720253439831585838039427242380329037972480621079931871039372253161234306000640397692269856815002531376571426244845467179630659883002103038584217396467327204505414140605727341300394243779180232133538473885816611092472193398416816969665606782018769089043283326497322210593460834081477139051009444724680147705971430940207554592896889091055484326012983157109026469715284234989049501838652870707284366451236540909336291253332555953438804244803399016299737521653854012918483733712711766044559189735905722229572001800178501122098650923361082624549941417068397327683887837771764975825435751368400974313218232378127704043059500770745630569153574823927728572073070088794579773731820896295615403957215475997681363749597189048575504153790354494287053483081647748733721625290995011761013141785520016647678279621837571802564321100316184854567102689955382972805432563794743909974458227839419758416108319809872178054207163823326256457605264702977679412339411985253349357374729227550403314856616530305559625348004248165240894833281649825217501959065628201555291970931516480261329891999154922625025275887506742122115806494942310581321082028791681309189676867943253664120212471625168997926572612183394837812050672245777658724437496076463009991364127504940047037496741406399955512600656829964649745947442058954752999581859601958505312072324490566231984816399484619939351340593664580333795125855104564072006192874379478556856593423401121964034074104576964958317429785037945402766296201429093209642922868375713356984370881225686807851897978440868260464653092463527939521738839462825042826045397541244423346135167101334537423562248167456684231009055503047973321199534773096242618014916811842818743095257780007953517744173876212651615052534551084496503294118122469297523352758282169114931401967458461492907551207712230265158295092865197366463707757668411419545937768687907136807851844132254912249999452264099901863075132949269053595160285244213366125821561896527146275762823020328459011949452793264159433948466090216449761385753982629554904370182936846142481531221870500472650709679021814507915263603042090789390870269360373473870789525169412224529029280548205272347639174148011740119118265784337404256094597513632677292034426338383154037428863922835875797891121232687875900056302978883224974210326358435134740229209839673463214871539055387614836353800140386257207769998834542448538270093336764556857370567750110572251454931671181749717176375577422956695900548010481425887799742926874169701126451485562160601173839700633013887265771605335115727897803315845384843062814333990604835051732853933775781330110969633694016552358229749954890043156717420618478290195850377069923443755591679554221697191168607697440221965858695782190033077108039316226804031216987629176398273413227904032769398650032033034272995606000978619627057346707806964746763122250707516111806448125236661004700210309032901785424672387521069450698389301618156438143392940711686429378988891863107307821280019468844384765140767654783447194967755275047531323740590423178900464685095277691927882507453347865370560112352226104308901639331900895928907822266911442012588411108498635357571438785731938463741057727185759607484126456183864323421457417168474182007144277698393736989713688211019685712844419557390704874204242314672396211274674036860247696484995911507538356392639915921870204259238664538158310523982983347516147403437790034114206681491496790463277898899859711431134622217659810352229960197184747794982256985078734083907637654403087889386181340903133284706497763219565748688995988743782478220639552627926694758853086804737341779311421428218850587938319163350494403756672164882801291975510062200987063723706579101423891850432657037154540421138342322941150920772954083528400941594325654841468459344085486558553122132351367061799270558470458126978819283001840625387291342805752472445871968041283138766365970248550934192668309565211843466286436871029095263956993274153809113878287445915007665916528798947019248773878422404191575870651462969032395766223959266783161652433436237741219541555516292949185431980432373930492177280318331930442125507238561490418954857698971229573334687887355030423354272239101503592152276064463244089790616050186329672198453143690226893675662899968216756546026125354875227122756917888824639710237880474818199235386643392618008451251460212453652607221318991602326433147524957494567185359150163902511556543328514702396518090494577840987597643386786031667500680667274235470857480245804551326535443910161346985025177362860240360956166257391527683083095779228176102661233158809278785105547153710438549324761572825260799846607656702831549942493160350549374030768986257140198519994384267234559050232864987578280977465480571060163397356164246400941995244840274334528735271747151709161228136930962080226243294977426612503327328499818353099587785572872898863605854525475712674210539049970023074545583500811101298921399746602803315474621600198405909464834557039289439674998979721475310861502693205655596181194804466960449256348303267480569607610635891441270165361348665367757736328393833488999675915336858021168390110337288428256950921775850874679471457447255151067945104519188770380358227317318862230975045988349787598289681688001134186675313263581526733738667523355898510053101041133815419367438769836936039442720642769197849145962520843876650225242997148619190478154894744941587649386420133315901819558481871957580117859837162360891533385045149607389102130617252368060474832020779350591718868089049061786272936499890189472478640180305239349711485195431655421619803272713910588918055052107485304152584628007604544247013033827072471128121107064326178328353510300169605056945776927574400410679034525475525184765789320770267554200650219099881410384559656043666574828771956973843617767660196701848335614407516302336829722334556938329516654147779151929251383563981205552429767736950109339025106999060905875561665727280844367236362373870882640553191307522025000703832600381504364254702289209632438345803766105846910930290114936216393467500664274042846015220171014499861121793506664920904527516764021930669331079007518074973754910171313422713987381554126644124300604594991586865390494880869225071705668738660846845283927692464186742412389861971586965708767327773331989282371754995933363387004609941442471554023147946407149608095933481349822528820155170907557587388093841408778374779640055548156445332364685417037890614308924170855330371915263761243512450718837072752461317370143670628461240976681928653938864298000015077186407136046659659625929601502565069757129000362278935046001410669279900014076805478856767608605688114783377469150232802456872940106226587741161314590674886315559620181531294546691816971965324005692025218948629535868972488996949231688384519523483309111473362854816493917378184989495287999821203669199313624034738338202482840729379923750823339198795763821311296554317292253116981496438982108633515738998131043077237671288892565362967906953618146170274063181310119846147416098393169631509443907825216603079711630487902661927044852320782003754086336356691329425543807963477784711152281240019132406520633733070789490938285627619637571668288547725886993069744055275483136908731383859830553043707976719133210145912957049766291325894949362914755081644275563465530801448596554796120459829811582335724773741265773082301013853605266954654571965060441261555652072486482358870076338619809467533122677345646131374851836163947551898869721148369717809864653366130742059206207936932952489505089059621046124800708840332393077265104948539057431395053449011749240949008410099622391044274976354350426206045408911195718664826984623339862322384310703176986048936530421117061224956074265039107917157092910111262920610027904442784506056096039721793214652403541714112417065028330058836946397954041584810062256321511914021794859968828063766564914302248391052902613779174292357768052929960738892575481419171847919440247606191771040732761973580077300841793650010947304180939451756186750049595844355544740970498847127846559720691049388866302096866735848423095389829146485926111916091834175841941953507669863437453029633287030093108908086359128926333746141876971579596918321822554320478446924404127943141936766194110883536697851724956742823221499028796199031428216775171082506116720209724738909299456155288668722977849086555410874600387260033743345739380210204447717640036026201032105602310147765992010889562226045107773642079840357771648714475136680660915777847428996945404550990266468566948096341894548392083969678869706490340417548296276085691550465882079982007932183972600697753591842377787860431754643590561869438671845371850357810234150841053512924424155818126376415768763347110119048114567251330857032339076610727150370874795642308707547293801282581241788747685730596966490071775281983579366672938593036749177088530939693662736248294608097269885866590356468089646322058609591230694933816600060400191898764624627698563999305389499684063481284203794349754552395101462733654872932589941975842125545954133850835699405553571667697294237753695718893027781744486170850340420593764801525996769663212280819948296273243148099684396940103707015157656438640477610585772245233802416502206532229950097484159965122992138676134601331942619002984302515797759440066709841672095606310432601512323213093908627111564322538591961312216130044114173359860829589062502646594365120421694049277426628768950556449224141552738827960518938829125833591745099799378357112252675249778637309029033135705931111820951343239850778576091904543544792033987014632317828594605290773026567927329061768379901422549830953881981803359552403343382037499728243455759431877123234745319399935296817978416281539900412265776060857136136460948143724422846159681793101596334102044926190016503335362599487020770228611827371715632938905693049090044421135089175643779092963683749724998008355035144399713050277972284468931925628948781630784643608634271487738566662811371053874393885862576580658165485966848326835971719082003544321713231907290257202688399185904160086381836542449943141994609744009418856483746271839518647407769837985938731268805472035668125819694504308581635211065027393586229229152724994216450448272184387015685256630912732297792596344928549313969587871092460689300497767804671935481771796777151216753546221793234363078183796533025381142704508634371751992112623948836652538391413130991671194724962961942132607174360625367291878241493359879848513186619396965271414790820785679752421218355049464524841586199685423341609363515984180164613655132350681569157519996402361647959801996748548589323260864854107736846466976751412753492951377039154234629526917609098511269442949774593661606044456568187575167633132692142055346546114678336789953848157588633568650876251753141106303776740040561315335234767808534579925751038260118724906507808134733736718602576903507559865189291035224445521245523872755011352888897590158388590322900435215998693586158000772329547910785793265025014735515144715005388175249120864152254881034043046234317348671798409626551731471288686600535892161002650871482362114051120586946948651741176417573118847720964812088008223377431409491875317141125859317161934918736265560427972711808493296806949252802817751093901839998555952069359631138396742401661422463430872053501537617923241866426856598135810499523971499405258088431778421106082490069485683807693073047768442886814533599249160562862446475439777218790586426827708452488024834979143515083319073225871344314055755775763072391833162469105547198644575974121212608794434775944841467041220350949406377172950308181021485637379819098833234366127851282849274941665131842954641280965155266013501960786957170679278608075187829399373213894062489855687457704699082765779680258566277737360217600012372977260472252879622284294953165304581789985635260068791695632527015632052284255751550443373310758813186179800161557719244415503845557503989051737006384943963819918039663523142956003787967025896222263394982479020672680091618803461467975848334084837741581924656317646856279343344909579744045321882413313846946138598123522912935812961976122896593266293880716859424948541308952464864148100185547493678050859790635159920499564548322311931980202460574533013393427062314600552484947969516856639158610838152890475440865204571000187217185885988295927554854228863192215340827952686532608182097330344610261204130840235639210836353902307459479857499703889877596066839948855051890628733930253705171202492357357419634800390018717028938051241154431652855667150025056744032118197382395609477165871481921828384600681575226752305483789084538552019644844460751985103910605103147740645401602071690377635419184195727480483593987349449491856749345188141839710420802156699452343558580565769357245191840434242136146352556913738014324081867151520192029060362848410588572039122886662647366798746619652849475099119125653356011494284128072700727832515594110505275028138159054742357362717836056419179173240844143757215320670552026740815251230014352916269589408290478910270994338350767337967978017686936788188901711837330219994687309376631950675696702245534912115111833905173948693731094293032631489181350832120974776349486788819095715874941066862643966574154657406306437258339481061797305657191141450631598944821218724854707085498005927598930453819916250507374576988865397256980689109648976418233370660199475498616374628724291046003359645412994428479191747949581714769694225929650167998789752987061509945279200543565609700398913996522252852310211882807669602287229052627444436168314532104115106989708445314200164969414370531496012827741586793855231213476842026078737974525129500206264148382806372393694192694913214581725040567526407753246793752911286984408143560004816901317479424014181803723629072286026897261291120962431341118470390706999881910629881442691414678216542201683946017030609481268357458567905522250276071767842251234154444477337572618969788796510549161046266303857640491475849188257290762863691290088891409978742046928282409602570154975802873339606422615079363568708345928222169362849208398236326160925018975968767608498826670606099958551619840448443490047842553939929589335500270376736438223620124212452401431587172329419158675486306495771336849074558371233124519018999361642369849709623731917477872307122839708234681925887713456271617130752763002345606264010816267635474282294292609717704515595409186048518615566420292845090969995309263411503741237548781199809778665986077371675100174047742630829834360707035809819364129544757102261839164771403689375033105265917162853676125453408542268584566922971806321437144652661265065603091068897355678896924156521331626299651837503096870896147444144829529842761240902661141725687429021833949562724495545828740623983743945401275537912356443550127945281782259871443673182642238455495113296739592089956678373993603348581923918873817783828727582230623756639728842464308691122937176777803048498490487752400205202716531443354770766258941890519738047774711237572897444650095123794231689882940757712940505661167440098320569666052853356479579067119385938520585773621366784842342495657542841134388940982556528016278772054467255676404234961196546106271115420649058870677381966739764813296348563405301135884108530614346806835635553989915802753192070056511776395145521342295815494071095387879282568225210804864853501614533484256565358045961072267014081023892212971770403710468770512126976801207093659733845833042154334968818621174504895408442831679515314969682770434677469013185924162248260401641782854865880257618630436180641511296463594768201695107296387192145064938080456436290431510931184994700084298515437354396779267112290214922994800693179721795706555259353131998676056794658569440614701374999674122177564514600416457546993373371573309956992774089633227126208016141640833194401004843055129849702963182673842132142777004824459865819473289767121264785010390050163213878727963913868693950569497191439408361353246496502068828884278268811625840566347947373600132663266888530554626191024871663374640443139661238636263054546593393241759261647417982682819200745096719664131511776030494837379032262609477043693813530472317839364754236401979848019287993580342257900769555424434195362098651805275924277912689250858772352733018277357895278854856450908654827199697936893114643774370040053321437004483854255584228456278289022662483979668880831396886237945333837539771506293883965417909750352015534734519657764309078276345807285537810261926864089675468842513688985080718832494153734888874148030628505614025084878247400069731915537342642519813247404586311903282551327691694534869803748569252911329123292335409740552925906325210780619414655619488420210720149235146363197041345951455917871715292937445619474178754962690870377814467269316293494398379040720468393225488160489403859796142321668236901135171733128624917700077435379172915043273148694173934171265536664195904706979962913360096465583435278856447637775001270424877959072623527371767441149982119063789672825832356569885143385573776046114384478935329808445623537406188546732688041225728805879742706145847998287545841136913500815401517366446709079389775653794631818511832378214664360871103051149761080614582020784155294470824858716914726041953421447531301293088738297764856550800469099955919662380278101228162414251852497045774027522887167274567683150182626540823829763246026033800985678868041820558075479471975422208413522980682836435359676154082598993918488255259673089784195941940221513876525994865542289708073732905108554601554202340369770428343659919058962417092674077797090452240067241833558434641037523484492595032770691624978289288266869577813416405444436164989670479023715267634291588347447487760884036578760053004017516042616878601355421137316312342865645034007119933177857550363104545917903213107220828824937644785837563710509263809724613769739401146368199248979169276971317109802152823243231189969738377408027586414861059369111576066267819220066376046776266448040396479098157678310048950752298484214276057260278242771462135393396465062994216621848423381702491056617002156342207699527833591721923757262266922258351126723036975744801916407509779146559892129393762497194026953812851353149779919827955277531452433352929954002931790424826170056433691165241643915152285026842544536447746917073902614063655104024275957537307773611426496422052522356711168997829493886054175638231520502471741737302789610302487238843499822742745321366964302743615518639152464625699108786514491446418466645828366312799772112518478965483858626588868998165139643524533436226390266939515256358194301692939231624048075336691527742291748950316930408881989142534670268436000720218709524616144842239451587510420662411293666574340573447796331929717450382880194734591613658742612483458567966519322539811951537095886045673231319528186434739423633576308093111937558122413020363809436084049462686841563391064498803628586361027247772763654620343417409709764683369385341672490825194851526519732892214524174167304852820224548741399525759824272517580938107062628438057287657662488038499385945475848857758391043623050145749871656880698731811539269127254338187801280467241538756180591186676458262789842654697589202011148398497782737159870168780718279124524399390596326724681193705095250442176395022068665840777721257795414526313547318859422134947020271732303344229997495119184917476302239879242531004933966660123934604843445650557949069435791197059802618483916341409400805479606950645850364540603418733660482986212761855984343164001408181002127848502979455965694126642117027560295156166794048364544394233577619620164681853250741443647444044366874847553414373579315576205449490692091946199770141149931558431656319410719334289567444400908839738967861059660838956103721621808086654882845416369191196189424292678380946910573554934526495133314247436866358699814358085757911250726420716385557092663443802669247701682065871772946790796757802922191048181235294653998414230879325321235145301980469182419741578784758865550623073872531426720816552675639850284607063879881005688319079350267134233556210272481148406911414900376890353576350613385405449328563202986484287437279051004478819299053554677640823616539963648975232588001365237498231890459382452325945111744191027539168625848219138958571374773807249552018860176704489682079379584548825063064331599217680954593237814747778511609157910689499225367830837173223902301239145773003708396079209026501030164194694011030773549607365363039928820578478641973061539429462287356840293720387244428111555202878331571396881829480694869142070044329745486461825924527034651656236253458581813858427544362622341966139562583343317652637875832845544952469878242032802263856074713377923849415677402428151710008962873238677283569705753662347894399583371721871076330587507746171298461223773536466562203779952816962089154302287276578991242937508131498748599566808057608515516293437502961411168622494761042246167097604976565982762366095514974966763650915706431268259231811733558788065381922327182441099742435228727493621979177634101366417468942346600209612771291251971980680789907879251239190951995325499056323863039453920155115416077759759029199218323482134495090087400377961068391992632406351931344377674923358550586635109808725961240979446800092222387428947060188547171104650232261038099008641555736819395470628261440296372724856865610078447802259482355911325483884993396396127295405648071580473023842297878854149729028178179142003691826572445560696326512865481128188099758884970096684565927262761999660249494269536801123615549503971202335978075056496339531684784530671324481926252815278181606337437383668288228868117051565450642903472429259289534801303654867195395041777753826231428379461021070592541094989249418495453238085493004935147792797238851459718230857278226136759890044935593465521841544705175392583085116146212849385865226123401701679171639606300765153973307104617994910486441429066151979162572234637148576395865724750664275931231822612913429553836018223531146818256797224238935433508050156807714663526252670501490286994915958364597141650829634039761414089940022218758914939724986263476022534214256688781682929946224563153081756511300279696815039899432503860052014548740693160360122087868546198114729494387018528403187690290027798605076593907474597070573061806845827524424346212090671062638059554748165204001785377023868435216736741584180921426830257150532205016108165269133321049551084605575364365802009242484678297109532393187812789741304575003492622236068942310827362281727222177442951683174301420879060528823035866746610311447328439161136344338254606969500405488351426204728128724631841988985924125901001310790014923173864996559632052318163894157265673320976938221463302151687324310777049718833388847892125545063282267501571302472117060212905757519882506912039581779478063159396586190487054782999106448751897076435513364774792143614244673977058302369053825150472198509900537360033747776728506656321619234940076241549895964212247258667614690080150957963516075526345396439418301859403066561684159719848039191109115113447605543563500238184985252397514020454364922977237389879019153746512050478486024910661490752857319774363295580021577907441919813053807585532620245135947150886540719817569503458753564952714853157429099334968743033822390311788854357308030345570348757865278105538266038823924297974036626104955708186050258415973987415673918984517360311350442181855237203907543268041043429379953154837530387854985216538621550466384677981367368447749996984826180912351822914499782723727056207989927994110935202395159431153203242181547753709516007327281573540791847794762623264885093005982833920059976675952272027526684856832123459240678130266051690711726832596283028909718194731502666243544401279002197903109926548185948038954825060632898121433297244933088148816499405449806930541928814638527423676346647437736580801726301561270885387758308759799253743071014795653859787747479322992724962833814740478280615392788876717926386783445653086043353512498528036678119993559992727510275061994749400223771239661924817830287646314507079473675418960853057785395804993396081009241165634488926394693025398855151444139396968454222266342839037537317743705944900437115200838637812251385707282071578476467541747728994736632199227096414683735649489633057307297508731994074793416637559811683720092608527440825554913292328545660859415183957895925304699007546919618198456415851282215163848120017495733074170711150353899930461164272267518766763131865116843791343372626020651874682890496848864438172956381922325956482217523924015782458596455677666989635070295731926712120623052926650999307290579874256124573634997291247041228644750905622205188049615155441307446060499689452524068776878984018476951493714572296068273776645163070257379182357600119571124894426218295600501956889671446127150866779097846932303448598253495906014705534971635901727742264293738045006420728839584161432832573449150264110555409081478047379836283191485527922408495868905684085888383446429584539988360178525566299611836690301095584355745709324959282376947199724378378996250947024451319209111429143516112826616988526795625351183998239891132912788453078126872166735239374157255937807228623811899583895178669314547266265423746655054583162762201474601849992904301079909247617477461929950088785988473364277458465849878634942703131015998199730000326186592614783938518492070650970301147658499083888074189485302823657999196053769816220492472826701707172953738967219633484555973876938125160801283382782419472878618514512836246092757245769880216507004849808776846190969894663400106711612209573969769822014133236605992317334964565359566107362460923332734420658515268521128789650477740834329023327769775135740571886730748141427576243451301237067978382194788515302492967588120259949879655140680666614274452662018991807324811802897226754329002882750280889281953456764879667420786451226400201292773322614301425803840592240304414734809739789777252030607128849178910151218355114531281018648887403267252585252425340588456384746832092183502500827795720459863049005885359807666610290150289687928997137863915007638696728465134225652248334724934360476699540740170807954000215317811326670599412391711140655737450103850872998321584310002920710684385446901963309060417703280498984418488918272114211810995178703383528762036723017977375666509286986154146257623240185454884047630513825771961948915073515113651153133397001108186877368193586428555026199436360957513072631548209780147676911873118226448605114357539076596098506918170167102844029636365001551066049043419488824245031640573298679361584927550634851240484496740237589583708266515288519891678781749090841053385379215668497048429407011414777094760787465664716762628533404161477730064501718856287806051766863445923603899089188956611515182364943749196063846600797259625541405276652185639983851926432240766231464142370643438003604840472624414805748115895000957666133220659621980037801104969772097956884292856366168236165375934116798201143392061471731775593909778105178377364350775615292329859339470963332837511494496608275286751279143658527658620454551802765245361469603682487687445661479029932480104092276046203798634284185666751259053617578325603337313272492938497271311702365943307481921104209755394915776174472807488624846568380883144471701781073378775035670825420466833159043524796284423459334433107708886760806101476666872746821563793097839409222323758107834545523823171162321577910106316131795840085008799376628339765256918029232566863468277667477234284939428853701657450096249747555975823661367587483181970624609571445180803835064711071763587188846743224368957047176040817637657949081563613736025363167775853578982757626900885414432033192339750948488715030260181474531921263237370513785669238166491356618911466015227725720620236889037493519740967093122043040489629953385433356985749564681301671918481312287459032545086230859769342323469584415188318851829232022660849733904369511134852570522807527213570069167032577674297936349079162331437611596718231767010509602080617936968229427149635515624548374825163528478037741711207544227427987350907163526917117822545874511816502302977153179209316274736435637302037420909613524300903637848508451695561835241329882961704277160224767675747864851193252901643042281194324643621026351248608227824356843904507085298862270209070894726290015991032112361925085883967117515327050297942432138472049927760131603399616517540794262992968495300042962216249647128550542505829364347999098314750369267103782908726034123170946374877610095159897767170013182031746285232533032329963887118914947789309256705227740374855458697443548194250837815090408921672792640649202409567328825472276123968124745346197289527938728537914343671131578606375398219420744981151145463681228445354438664456032377310893751965133729810401347930520983996301523051115816516093640921821693109012786199818191227358808753436261889269327501422563406487164679438076897417354595496228300869685538011806981970463108308426065583565576568882383156421589346135357238647614893485759338578565769550588709890245620854040177806502978669467518830961295701366064233748234428990207955401443530561622356319211118899236941756371828626391478164925576224620711193896459179511132187429460081855954772136000330295756069144946808179897223340011312191071832866001376580950669994896941981626279233671290867320422245871137333694948908084708771762904984946876927716735068710447371986416255553623046182977885347585164017521883031623628131869410429334445064594675962188595303729766759308478923664257304228518975762034775553409327791220145947864410571986793151237867211970765379011924231686791407090398576385358869697097370224686323304152145003245606942395963896163963822809061276586269154971032700573806838748775184439816199746081660974201108644578076117232751233693244623581683084493471200201188290532513922090113028882607543054024771360785920512607412233017927936742865558700928005566201529947145137025006195467450923404803677644958145901731575145492231783386980093891933341466373818980116275699886352765300239362899206593624298226884946127787246493961274720516983680039518111709839100415497948362936212197453529804115743447046319144986996352876695200901573410462006294389119013990617952098966010878445807216840167531955576865566624661127714480240892984874541656987337649885581074192017202234308781245189526020203550212113248259636974582017507495127960303982136233260529247240195010134874808007849716293610220774295880212900627708850109797219943861617112261413237240054710689921671224703255477820376105526618680631258940558269005654070885307660240915980604746481990414665263894411464714587637289938646937983055376800687658964502447022176524738286162756173834234835318276371214563632870278302154504523854917167491534861023117142595571684551322402801487530567017667497785559782514755959949305863971932602894264941785398998162568356086663369119360058211792774885485549157350276903759534311409260851510289635061059340736198940836637574117940612038958416229850489120431587024580289015141436072674993534508757805802323881415365007809958924789459952018009605730372096961705875130310116235397719549068962440857930984894012672487906692116193501957403182927624541609537626242030008053137172228296752397558397105821232365578004740005733357597285709341475943696424636471244984603296733025260948150539768424161556374051089210409147596649974977706949342970635771100702260654323916722537873516531187644264169461959246670312150910660845406779579763698952382309315620597498754730442986392446547529400440086820332796519747597985031723604703940483597160733001389456846465293528436150123316925234303573004407701499846093095931784134119715297517335770880948341233798431913185763628935510522756115717008618636872589407048910429441089984957572715456623138535368902146683280672983445228270130865912624144273066010049858985280006750603473369854689993916545251052066452893066012823627358241920517088066181830968203525667209293461909013224898029258957181427323686765988006678063281282137844059261541043465619749404862284911682534710049629695514899539487272815173119204437368029342777842043463149945370525725607061942359424989550397070781481829184083252112508652977364175357997589290017415173297876620014948644812795468558231662688295700699469307502409913872265392075317979500785749805402518159129360334908246272736118045247458451714912026053241970014754853427473541752745615350035462585322723923899994163669756715693912224692063655075154622684172917755589271573839689882288110746485954278793246445926851903361773796049026881232207301283033635629765834907323006435448080730201391716548510783402692485091057499075112615813065988570066987303766136635091072012087460828637370494611343541325392676388735830986109399560004305445271124046877867161098578433598477555199647482770538340187479932771392612915263358955597375581009826136594551533743883035288614347999938837416636122244190572425938598250817396078576595748461317541266951879616239062977292789312217546003463867086624418840773510135890321661031087520310926921103345917295146996525797470550615201049145064796837806584598445049358949124751787148140223998562074548732786865018823917194261797684345539129245375712049310226654434580798349749301465121337961881278459418530515347742716166253189228730299502283625707735246548741911136476745790514237853019538001128834463373669729685905675876647671407428341220747972794421471826701551647878446432375534620800249985818652043000745859219943938931556752254447085132392933412244918421526022428712854957087682441206184486506454190487625922804363860283118676805812652864037718789571616349934599022147038687218424281502440234274794192695596805844113887702577338108528890956789278703938860877403220738897247495944580938365169533941810355932600056194060505088397088427235528269158577504991996924257571440678188371508074349987270508371942716085053326607676140348344460636610803130382714611449834299064515538168485082462112840660188588059382310569730639757736244834654845596786169875949295863861359103010191068737039025076704235644628925445696197137170109301014711240331873517769576425064798160440966086457347993358089131807141291581635763835087527907007258224882478078051787571620946921684264506033409665118263844590077256470081983361342599250588037521333969965488100108554048489750690183134787667707122231615404529758821219090327512692237814792584379025858090009199500283211900654501661596047051050569384141972135592136486571433666608288445071647201551255765715723563113697352309390050659968657172656374465774451422270459338545482743289834672620839412639333871946912540275983266415856657176208657596662340369506031584303387530857884261161224609811327722740600203212633489141225111619910360073426948149059546642365985462789277092353293182498207294244492083040171881454265166721242974661819184691765534502706663440350600441398991442772428049694140183433282791671351878700929648181325037187481743759270167309391384670980590268686631727395732293918706402745056179639705540790884478919929844402776648447125131698771942749590404301140100336271294673500048716258979448739285194632541507613263541226458446618840404132035130535009964829138792855757201771346965943482133290074649852741114451760800563672078089638934112333566505539726502080415873077547217000770323255133640407729590489384070554641780796217139402591772720525010867461464085628890838193848478509070957989771649250889190310645324246898976476545906276318452706785982527428988314235984913394256319327035268531497716150189898860946025319894072695497036747217095688191526472469805273425004653853289459119601442401739116537768486135422333289225534475114750952104284493467773236394404040231791182323019457009351086040439047101210914839217364329747786870446694799440963682291145979647397067135685997167882507670951159325486665779264560882504528794852196923995691103976727709348511359409053399971691159606867797568677976844186700652225169391101354020715029356613810664033331250097478524968571562305703429019465549697603515534805767341107149283941936401576037071825885510339425213784398628570750608814295534700627918221780881563324124043467121296768431726572234048835891271599126096163624879683372542821369448647324259259384900315196713705045942017252771780436684610229368211859162913450054969937994485507422385272294471767946928283242302267792885593425340225549703863014051224452523988240934663623721089311893197171382688722144144193274642555522259619793160759645408656405559836277904304675317900649246819228014424683595828034860599807702316013099387085166203391651919408765397543508704819616757777235811822908608569393040220659559532335733332076978327685299776906459318073152800838762878242990625039743244382196945505529895029652804361311792620781316773359603600298728545596527823219194708041158477488926960371460115009019065202422481422190363993051538093215026169866643632959281143684134088257682164284190083612330772758389210981763488404902017007344472023617251535100318649750769139782171159985160934440525475411197352254971433260635943796118755236673351353831336803140372003758424977342757958787059898406757819115382834865773955294126997515221406163179566323776624489321086055660394646144264716422058304493134344274411394612299726846020287904686163980882310316478939471624096585783315359931349011305105166304349231918365159800524420350699225383647051709563463451034965389302639245150485979188357773207933269940622511962828619138439187096414922620720564560241768273609102746333940955314709200775417381284116197710334343587803995937344852648040716084020323475910383780119026638333484230140048176947738373612656519679514635146345489479579104001407536463464634777967304664925100964660948270082996126339752609156479556211353003818832813617423978982914637976653225008946887193568768302707015096951274329069844233952811989336249289466404613869499307111660285505345040738481757821908274009881290555907583400287570277108245534479130371422968733490718373039976778040077185667126340277311602569320143532394819734463067695706815690766169317631143810537641905891547869159018315740312542403588028460064308590265583438584663303559344354414956125411001477292092244457578453146706986531537465504225217527207569211153952040638825506443468535794427640323150611367867028328174628873290637262247332074260203287771598900992444439948163716176661254845587876184877375839702337358141377716491860341034209148185524910826037993463654716526849235731119605827212887555124364681464994041974269902652313194444844256654390541507511783888270437255708449837762674707054837613014866328277057221993690178645813907247651897025197676660412553351787169959107266071397890973090667862459085209589764922468662430786516883096541163094435850748349797797408978358448868805673450998954564781178152001863235291597859044446014197745654345730858067802686589968591208499994188690434301409653192384046329444856849148356412827571300324213746574510213303826917604375022500756138154329757634923855536657705035350007608847469066647965859571796502898689649804500255608278858159572459019335836428682231898966839771202355781891792932874798344676446712736383802081113887047768849117613605758167548961497707939147405526190306118570345208512360240283575234608573610018175054429834362581107118127126037827070611271434723955526786259020827054083050571649947795653265649011131119951573589619856935154937185633505388089045254267165511680572388518569195348584896257430901530232687209769303745984258357191422175193422056084366084189210631981062123785130064200698961855133736096497219893941939808330017653775172108819286595813915806845794811822511890429740410211491303595213800690666329408398708878788395060294913315568259160898986758938312899058793702796774093367367605612587645617851436750115604360968394193560677665037401427950142447384776967750287515350540226607985636871918234059210359391599088950628646383141414699177910606741481617072480102708666044005815203834912962148120195296318197519147155840189401503389561860286899333051655082061791074671304030456577524942353212483060654756609724701826140797784633391240226601710846717237490917349514693616236342849688546128256282062738090146972926224287370534637862808499182674027789930987201032310709675327596747354339529139984126627252423717794268320162036347182359523862434877160695584500873260680003741482937361693296383174247248858970247264961236286588074814461668847145297431469170109928284643516877662208274353504693139509157235121390942089553848259303901158530053001415809954118732921086939507898250288994652704354105271083421669575614789133691146739614646710278858028885964112870250650313341327949982923142944190353756769179000681896367315920403045103910130208839012476643861461729514285305785232349822393530306735316763866051196225763810244924525355252024468739522099616591915774379036973013955124372707960235400628941575359597704483242007357622768080996163186730126202909150499346819007774074858500551507392760866973311585014798327113770240242803447671159838902364004316855181240860834619225389032642707424204132921164133325635553638448378405636786165800073234507529499819811631714113629450729501887394018273962176759653219121888883060814105389867435336291727187792101496127115310319620620031518361438422396769343163310398773371086213980744366595857943355119729125552029901569730740619922696540149256595176553612672168714170864652163148701705272209531272145286854762327659732062777607822342905030230689098416022998953735867077714268245013513130102295835101922452218741128375838775878374347646234487634613885244783961663256069835813415990441158452488557505902030619752807759802096394401747933593495522928760669770422730422500736367922851486264271237145190932817900414488022855506741914848558238254516251952043061513413503780005663403167988372004277231237862174259241490579092786910148972114710021236525973916367695318262163755113742403218857858845444607195290435289500995570040637183352871149245848837838747886326562826246849143559358366780935224013601358702720027988760038290264488379139510756139934905950662087618745806611287962111637285287647316055488616832957811416176876866440541483611388519391744440675742800324096317918585982014458691295887962586897507941635600458265015804306704917303834072223657484263741153700475154013495539302515642076876539975385468410058355857509669318608010924597678447044921648103667395208306887045224919324584879325051312496803701890272823387708501935947159096444788728855197855828274867968010147934282974971738662383303117221299458582989684091682166944338868944544943792644230103501623335935312720017289200467648687643374850258950619730707470903232841226564727937529893925890363109477631173560937619140040080040172324394767645883298715606739792062759940560440550197068826925374183529756047770653023092957738141093097600128527852439812527460630915558536568669583294960943509812962038792647119559699801575263172752741546177878527677565318580977402862803096029025053104456827336503849433904203735751834409589149907732555653365050442543203098452241520905086514136118582621053667911623273345014069484395363282310683709807029914287355501705048727897334284518725702785910859491052890599715247491238792458882200837061020950110468028004257613794513556490200306281022346309869509731769941727210733441634253564203452735285128180647167968412349398644225404487499839128589746002097922630197120975855149988847630563451207365505055463885088077398628298771698919637910786768408113702503848660858375071726227266239396623391614774395692301600371870884688964172108409150479293551811944976240294342847645479988029169073694722501025876292416552806935967125475001826344952586302151440303117617447111401703171769804022727575923065800708395362391370225149986943956329343705638030384138118736122456568243081461114862219392155337655171643234024267207861058516017190946217873652378165614257340835171584933427789316233068012276530769408961056197900101992880799638470917594438434833600227724485590355987573662590644305172410306654148405622937650218876415946031991930946678355833245498308783473506296670875838833677265290468875855647544297975896900848007480211139270782347411942348781175204982561043423640973382993188703502395037728265910290654828843773795237304697442935054319632758764308048976701975117535554214614566410848915845106840163133916263533606755365235068211296921621403316186387890107679849234462462797088692004004735093402798995563585185948428328731533005656433600516173055323933279615167611840618975678307934521619921046483682592476875333404416533411241824025151866769201746537596705550467517454125557817156715238125553486417823961155345457181178168137003347987960559270159266905244456770653552647025816892754875164719201354305849624251916800092209451346711925042720947577788454125895629429037342901742797079007727583998385886589255996952002976157945774672154846430772772952740615355543385298960176638312759427955853952380498692186389026000485175614541752717207781091725940000313735753110139747769060620759209339223751599004421669506954154510196073384918952608378857741235976129333366030023705748260574941598319128493312141460687822204553309998824160035537754774385705353427335901458608647215103607969438141079815927079281816603233905055329386005483819119839783147187656621069245111422757510510367913268590592504451135416468409703767730980444380015549837637775743345665158015843766299663356778251277697445154261822242281323391614559116051862202660439770964663852711199617750906431969935007098025338696485357764744077117238774857786484881308458619427748004960009564788493163684827200422661223727014913557273077626967786374644966711942077806572825446170221069007011380413062160337210284467405535532083910928733021811310415283969664115064774895151213116253842411261631936022170661502459784110947852404819505103629798986450205555382531789310958133049250902203446368206576852004330237999248019036873612630039526928420097943135400102467639381600974633647001581823616032505091545769382613309595497182838334701568817378100185440308579128159626809901107275971748625510503380480245118712770814249508604512511023160380072735364049848108464279407337516597555551465651517917553941298399629508138932536244522515252934515753277453455689318328306213650380288295270065379012928017237706647585512673714714716542541819675137410330248090399917945726420232065312566722716882554737935815543113013166357775166342099965159263118133276241699338764549059222659009797335475505325048814580031573181918831265379334621102699583759063278385614168880060093675407968324962019130291990808824604171451114008546688209200585190836322540853186480800346700707649729144641020538030616506873305252750247850134951600915269144942366572564995689725743963028614831519027062249121270544591718988749780722529874771425011104024343544389262730485832133410175232171352201545230894817056049008854188583298505698246418310635235728277050543765146354589645959036327636242500856405204627099084634422968112731400679329085320697867476139686628272697935620037685865290750877961973721113457076041429031590086544556379984073592003396136958756140156277812347111461991048839938216767528289957515946218400657826130395792378750958215049435454114275933669260391090861481641658475123160333800602050627345242184060637922163453459269352175424012428609038531197028509079384138880908802227575736421217947799667501656983213880997917057030111997565391160698171160206135247357228109253272237092833334675005297638793447459193277178355924352342687140209994324761219388367766091727926733131452343041399406143755332591000898997276576676012430220878228829773885286499368473531089116979509856657320802496243784963627706868060389395217677108411259509015989123603981097059170837424744359932304543106661512761602961556962319734956944706679866888454770461325489657893034785532234711758958808296614448902003227336365328651996565799670804931912250469835938536853314470954863704260665630089355067724069275674230850203478224135651621444688486870085201916906975573954575536602240159110177399601909836243377216665353758398669318080818471249458132565317690628049548526263869989904056083972337362740275063070754284298187220458944515194411803926759523341466011452170066856617948806293909357836215127522012471083938694445707168278828486432034661219926801561523789871163108507435842290954019705365154095107678799649918873486084664884452418973340796784518374089410624997552994462205754889920733166926259070161798646177746275644853989592290721601330660836349591597044665836795374126632035970286746594567303440829256217814137118459063695271088200972100119855040982688316612520496872829590589442384711932295610975341156215825889492730742291527483799072832617152319722104931964195042453356569805625485504295331774114586356519906315804729854185663638627601110072612073115636352649906713326409669187241445508280116288323584712099292694549012376237852945360598440355675161029066767009561269277292995512236630299410401190559768512185009275895995254792346946322306964140988557578040874378494116536932319481583445612793467499290847361064915659695944551231483025676853365585694426222078370496429346021269076722976128947232197635655392120939388498090872862142927572921105001388165992499084969871762011023027732992089974746216821787214488884573384112790566569495589088370923166192924565155741398629595060934220304557241193337228724873069430912937902443723047179437346719817454389014782790894596246557219355460278975938530443631538973258945349607999058895877559651376373253762082413359744616074219525747868278676804815369921942460655343975206405927219059001759035225404553219900674560129621494783356259733502240644237241980727303219192674833847388597065144097510413031540710566820014327649574555503232653764067618981220407022744663287256861275020604658857711393613880070687946232714122041972698072174945507707675726040837664281461874940821804692429695270619196770899471828132319010860037453872854605947703223656286151999430582618174827458523266660565442572780032413008414314928932248113192434011426122955789683045979282670891516115876391743973393899843834982108409059042008239081075318688997218298426413959993659977861599418698224560411532465877020773679819775408497531881674261534269049265189227937674231001569128336612311329648201803497156939583143036285362903236004999669781666417849997414257814669859044647002653773006002934363759776277467975450679719093692231224673892487199031150671982527163679567917974481760901765472672863075887762387234798435945437956388526665079620958531215916701516967424591605281148353169509061705703462057134353894957122215943033749303883290891420858334582680547431414859826222576097678186874640879768628156523646761758013808784229225496153639537830538894614659366404271062601602179250117516067224612572883239881137661500616714191439856318991265536124298024725158628030542328114609311704499122251688388281134398010526134544059221009270915414769494792116933521495167036629824219321010517849116931818298303575062715167730947687077766074953214457592159161384651084396917248738392760494232774414292916089688102084510416293296110441262926010882073317669610682586027829591677877120912560757036788192876733741179740218669462979570259775754063660724201689080899458050662710073476270280046477387277806627100609373388330669504786083693679632971972182973371396874710072562997693799125673067041817681868806054247458337801945001924704126353100287915265963399619514775801587711493021276731459259894975495077606808594434258704404498121101447383321384756621113852922383468616622803141368827224954888457142815176624704444128090332981568134504410164183678972870670753180700057831263700087715411434084235695584482691571458416161376330603929079908432678072282187253262361157893771794320696621107227362482189331000373884612765772318655361484200732416647392526239373072657673185999067436861740720374157877190645938873137615269740813052665472399206146066355647342456592580000892779982226960629016517149867559890679290200812481927569576008962889253464111941466875501033575355206028491245110676374552602153203623694963889301579077807118613793238854089377930274160565730011706789180054294038115302847946815702559914435179808660149103886323772383414697075461218966959607889560447651876322893634820164248004308891074732554750861420518941520238161422606564480796765327607515014308451816662580434302924689414436074057547630241296064398695640564554580174190709798951689480896495880101486405058727529600463793944063473356133469377682347290468327792253600138347176108624506879751947378703916975306384328043071632863941221586093237841479255241886043768571446283059042115351526317971041994787622111471547327644677923670993679266416612599826175697456735234987749769234638971116507202217766136441523927788371138923737898750138622581121010373046849580283792218698182482140694914864588990638388991808641663260800277323292492904623519033838370755161899103221530885156765366318083141858574261722409799055735314496403091867453995460210689509644669043483011637001551628415669175271918925952699106827286322850039618446389174114857651025161684668080286363358081506452012166161223992289940968559723104278390199785118988220947003655739831104975750875114879356045155086438789136393341470577493335482579666614854463559491845805837245389952507139027440187207093878252167962740325402161657030231077486860779869953126485362227981933634767211431287109088540097197358482689941113607616636003751368993733550433832331494259273567150906098182489020979177304835487251861394406272674484824508564998065668869894265591644644094215298130749535490120746275455176422326743033605117765405547827189583055525890163031617173136400636285642086617381842083929704306897806999863372771440106690351465367722484643748268188598033703631863483390692315389755096853218945717810796772690408625335087879961628594096681366385693641078195141160649506565473376320508521355993065342235670665055507570637641196596594242360928347611469755079460544263234479398732602822311427521377720681051981373376682319225759030268354540571856851611008287026195387258332154206022536266249958483616629896763784760617781715209883841779099643195757980938335822997662279301261862209182903824915413611695853256437379013241820781222387417255012100571502864790625538394025744130418056471688942683598034622290683290994613462219820715233466863514045382326783581988280035629421124532053857734482451135388231685692450969133035862140347795690250872338005844835352187388670244288236489348068824103233995830175871318352771103805164392645627440852040442449601813180198006404381558958171079771510866365015717590103751765856501848417657210302992608072106950143334737153223568574333123181450288276268607701877083782060366319897301755356982628541551060768334215293621220373105020113927360711702244541471033297090125972926167830652412921613966089583916340106785219690603358891711296454181170310102359388240092201145699198681489962996317880241583438994621091390859486106535026383654791985640512513001491713862762460767919514720960611172262322416762830570777911742489211995766133773875714316029386067116293652990834068026929237061498596665906429217144280583133943942409392796583530108082571143272675904298230046651290499749218216064625154871930531161497811553561007114179216387355482131294838509403548438596490325088902531732601657465436073357325864608846106761752384994488490864918593483216652061914931859234657256455125396319137550023375146008964779054779464426901501595421763354262142649208754163380014056834132874504321237920594246494521337748687754511594292927705560240294050594339938041581243782266850543667333179661899898279616244045519182563996223380839109719744713646026796029941043136679110129849321819895019157314189236903636917641425357506774697843789933306471288966862335052867312860825464008718191720797342270583376061213145075071265811127388874315999690379516054404647125049668449338007438876185177770955290717729880315143366460546650137143174432606860235277384200279819775815553762914458219143756202051671761134900814757376688197483089081045033481458115978405983346913989180624473566361605175883799545051495165193539692819281851819202662808442726387925568550239657802701007942054641683447001108403418432700286691473386288897553975350244578814930095256259604250653713430268360096404164817147202471270996292623291918313853231146306654858930694843416014561654884427709677686771637298400312355404479430373379357193897938147967381727991773557259759664926097227088867217385079822529764602883872466392321472728335999341019684291950029320546528113739282212552408449081849069210589621204408004752900928354009767377215297365696759336814203963028239585315843324255794701293834270260793823206870266108510778729023755408879401843027078458938875259667601347242094197379065875420294159392183993796962784161574908144465822187479169040110350684228426359726939866293147876699448246170724440039041727248235688742343101187987152810733303100144833394102949262641311226088257054490345909768004707966888903260177576383428592751625433376112391659303418179792269197794752967831703386531361172581414512305627150151322731531729066884884137088152443973112162962703207753964219577127149101496543155216172606892105205166095373500730453500877953798770393577128921241512166134132561954500215613715950923119182460646827286442059103737989847297236872528907186173355590044296960252246369692858127345450245534766101475988758729848074274214350007908496149241530546268535019053344146427989243196583314697902784752766065939706726587511715461690968661942185211147388145365467053953955442977850487614511783870912699753158330354766141923045494024028232522042070154465865604059153077954397054690473437891224469572822194339640787571604700655082678450472941803549887377961965949579550670501001616346025069108761146569968456633613965551596223507017471474227614785553512537643733478335389032449835689308322451361833655289980482983521750805292017477529327088219813224205012764557771492397607758684186172971965942137339062484661136844591311038214147895754918845147620290159734443474636646769321466532452342265819168259675302483537918741643778977608042785174798176345352409349869652868981177440897203752258621478770039922561704088579655742905241453469234462288338365721527611113745274294772504483119327662149529743950083302273046461253352656338756482965397804809843943009959765366238579914540770086909960306900421052906946708537584634665292065235518033996416197385220728209144414682175087172284346481156441664799581307352038563203241112726077643658598805050240606876058896722378835754553083428196747278931978564412935823783754912425339727352279427687919684944180261962312071230813712764890330509014163272893823070871722204479382648461142173183039747012982224894262548206450082051437159458899971155409050302851636035642854012772413537030797833807546447432173657198848647958895164061055083578510211661794752557217343999398976725380172043021979933850525627978400860093357196220446705330028721823887163799531692485286051989545624823031334475664113768378407790573363942177746252732727451563611620624969663035108413355452336698536433795498822618805960254825083395514066294515904213911659110765929097124639789633389818871522468641872859719993312505691827608268870457611587666646730378104784447395761840689267714428793403187317881943626328461602943552509989626153423387646161175067558292362449029774779742710344499258152720198665522555992326350924217317030609594106746441254574101915905314638576864040837557370094787571672707572107132790509135796517559669097632961970020861481481548163020097523418825858694145739485215397033792120427772873355039992552791171342566563641733661283301544639964108582563782154055820580341546378545354177045345436251720100841545905601566261693039540966279854309598263463252153845605016849349987345734864122629441051997069196676350666688954177959897247437123213262995724352960913312857094298912643576415379793793201185649908143168671279845447303907223770449993330508519575327645664275008973686914311928435916752458991906082665095479841788496908939723665960787211136176843715839508222697541801859266222562608526567493713197807574089980827420489933177341378748789695694360788104302889130479602458651099676635933683357852396879091003120478933994403228783082652935803602824574490399074113145222531870689692810177873078518625737921940033670354819997294876655041105029318129842617111188895248296846987459721712918257221192056785308565321288271671801058530832641915882263309773029439041192910843824037286375142559062017413211482379833087101431788337873299818533182835248303681123067984845198689649965945104735491714237745771411505874250601852343433329795159384003988688378098849981801049915060946492343711462109110088963951022735310885000953916783903964863409214392253233142289481169923689550651333209931721954099409344331440231059351761471256730498134611264468395729666459118408550339111759828062945312283049340414265262466815796588735911631587334231990708380176262932651827177741425882670084307550216592830228549867624306571309730343351720509529414674943910238946760154474202923245475307254467682420389893070964916536353591077821112097615672810362218858202363684028875977551673706297434811837095066788953148184920032806554236359362143896658625988397225608366039226930971654140000473887677732142979231643050910250323597155837661633252728712448532329997763655653554161372322485316000085674462402499779909239002818408770234179726423063182505632870525918176337449509894611527623472218997285994319444090025045928365437724417538903575840888683389200783945454642588825658651344358997208415617437956322071090464210746895812401603724134189182134569292098695133904303098890168972207974282215139689865619548808340717872081031401192015040649913833921723420503526563514416600143190453900321393715139568937827732115982248264961376192772734128115235764333697879693956506922412819400298651286785614765268122188511400270458492111237250009703463008114254525478697898963748838625081791493236970000925810771118667887165262983746550852487598396458102020242322505938464045942353267233269446721102856842101365024281224263568028453291490197300212062259688822256005543447535599393462664761263625697997627377474486074645840828300522655080831103152238734579428311564854044451554931706446402588254498987981527795636682737500794653247640275201695287238524616090722385081690467397500928679343865005822635174631288295419830043665082229832183053186905500067650171653974905105790766922083398370395283270279222140227490584862666357449657708053280713605280622491612928415490340896943003120996141861717221592833386042223407698002835188059897808605403366583600973975136882585584704851300408662755896777163224069324741436003974009897891595235995226897258423280280792736457808266981373783549143027112751319734068309194080242570471153659160278995067191901115509625463618410884602999779779266403899316733467769597213060810614065328986147101213005535294235155214171214975599872709602698206457490160784122017665354325111031847944397300354256497512826407178576941673317862448672085761566350798439248871523659961618513998696039414607765404727959736364741697802467238177158795143029608724542016340127221299727216871112831132318723484012400195032160143404645504657991843823521719538555048838815707277542693708844557990914715532496814351100526027523202815362537373974164028427356498754699528282828916615504585763731553581873624351581407796138125564101801712134459061283493570167416251637745786496570496623504882448582361266327976397365060469803966658604909834812663403600534001537072332168430885022845185218039414847549309846135558505723700253581086413414389114777713414618304490898322208901275447528335368782693974052199901002768937543535128185674027750168250084850235361816654007601663134300871596091468555106220361179062914018107149497679205495776183340587395964499815511221466876929118280356805354605678840171595390299870141787695214467110146400306899100141687938146815207982597129423806255903706324645123691941767663598511055555960362513601109560848518500298560879193273031108477586847170172402052795231439143685059679675984419226123520969202931452053052228259816941124398740053357848748490509269044377821249653212295572383352633274624355892890615096354016367343561778683310913983448591634530709566610937747702583502965814753694470060765951545567869239576159398066350903622530033765713396845434375675879893628027461318683243825116946544574064855716107766329557138446328743191844784842521212482598802286251009525966397738342460670466908288309047414418321884409664944117705055736612845115752781997676347031711815446952544183427143973325628250940342042979135085677950490182823228841807656280703484198049429355105191405133742540433316667669127720643691887116013203511648431824259171071326369374248571624692072654371953696134868831218956797621500362107298194539742069196367548900765273159288987861666936438196382998944286338025819703146099978110331028964651806681732726057056687199300388890293119272000372800686898468599406410426304836963101795760270699088837135774915775068136846900799476062007915402092171561358263610253264378259900561309828894395580165764953411566135140993145363263490795161542207819806067856895257925579124125474648225457362703442296649906568580892630411809051848619706102677727352055895793027242145108190249211271425320340323619897554055274640939934661062817435441535010095175456735935711239869151107383078295586974777729999108517763189376668239856791941767785829061601564961997337493026353926367807588069005229929615250013844176286318074366489976576718260730725366584041142889228792591353373988233636685534708170816206085589147948615812895494969100364570204586077790665354340868182545541951167799190360307682022351416087416369672045313241928609710210023379641930454684474945292848815338486340598647882238813840056191813282452202170079671386293037669528714928645784575174510545696867035449306276291139145298254531401980585910902617831970028235086441548398442896923881804017854466622287415052859816818547546809253827538179012037617430975405559041570974206778958980443762090970905008267871163906900232809393776499014540879544507814383298154012257383751538868120494391378504688056519564764033200340393969413031075291240403326631986497099181351636519687060759520989963592284695568424093861132163049721819192733115415601536158671228761400392774588338858211396636114159721368658327523951580218724712502711837553735028357825371417297184500854860978516906568760336319118340785293292242406722390992686150568959757198948378913935569486840350731007346258617916244850842205454621204736823298932977146432001899822470312397612967166965483356582374215868039395857913046590774282319338968762421376016020738828984820498257135876075894462585124679636654244280950887475480289344277499922468383896766174027588186733357203209987040335852907316322133745240401939434151712986604199588041461391930899656414183443063310617473928276683337065654000316211761475778686845253840000588639243875840694452111127537738365654892851992942607972293935843382115174833567632520453011910962456472446717330994539126494103528702482697647238073183646033937229976416145377067854230898168990200218349209393319215672635075421249547282430145721851774568036618854934365927264778569932381413996055309223667387003821460898509131322541343795296151151711591710909971463346986708073424941463328143764184418234649235381792056558285132809238188280795265383939773746668731656802828554430489149929121035732818164558042091385273542798913963675812293975627632834181628308517303356112211084656091041058185804233760701020921531212595163904036496927855519759424396375656033604180207395843767392580672402936040090105431912638109435963472691209175292039358423229792175694595457636875606887726258862974387919733142239874939260839473844497390092268996896554720332914599661940019506819018111451092328330351965400387014708006496299779540491089476414819627304431170765690483595706908863159769743540117164950276132328977397223920826087918696160030372310404858419154421217495524902869692146026024245091366995371372014085722348121863431965087467590650880689936727028659402677146461983644813538433618943321426706661478402971348823135810632061806005900924033948493513514900593869913013314426990570483941371875200333243480663682252970337664528458998462582479975285528112697904261334951741570221741963160960161239425724859073056197523752623775763890545073582880600707869962299945386499089041797516894255694194132812630718751828969030447763377308981374200078037085157976799478670381689991772622049031194499454016636318573428333831735381842585036086636714880226316090682891481525093392758921584090708898107679624244414465671460300234031726748919590057278604337876327632280456239123243028136026915967086127125227865661689312540133074051020445242446805087012962986179616104865668219391533939345740847039393331465306387329070286777574333262269786569264977090056986219826398499199347735759808056143910702969494977499904827368562536497241178396617762350837289088719516143143908562833167444059532383744812145662842445416497038051325832713279623590349030935745220794828117426495213306975570423896099253534700371629657303199794996071365842948283834208622232738689314563761532074120747309267577604251264383170256824963390281820089087654727644315306749169844991628762327576020260784296645898957669542093745187252942884344117186678359038107724521447649297449836469225094838779285180876594337188411613507150271673576211879142820422942790798860950122892117805817642478939602439093156220096039581554202832513299478397204513286262208675939114404153798064619881813995368888569566063679552728874710079961208273851050611773775055085916887623157935560464306983438454583409531637333473535578150310689839726100094964495657249701438189289173533721353924607023823576939691691431220573579765075814598812209153674584043100777388437152166790337294064841100916365838788630516304491945241975272729776859950353038749788024623829807773417902623388019903386440291641946276547613896645293022360963944740799002773826057032113877878946062446440060882029631151872621146815665696042981612652376410577231122240664125248948164387110842473700331712234844859588563795537649061019919550391052824707669990159546307637570824420387681898302158580207463123696398954769165749958260077955842897233727054902271287429836539988078193301227574994441661264815616443319331972265252993197062870585570815860928972249157015090785263395597284550003597227116270753947121214861073289366430359991346168707222110266258206603151200316427263225335258710258263241301522317738182214211222389390366029906918243562166241255861824226830000108869198686777346419220270095920109048852031282230978315870118280546382571431210173203564480171883942975129180702621241404030807570657442827121499974105117632499641335989870249408247749836918785364994883342876724328261202557588248601644187735845620211947996791529694205472216933655331953339158951477616287175676755113475291525510160575901951526437569609798093362352598964953844375008066643997573818538932745604313455727100143462154934330411603998529949048974295534938659363420903528687320733725553805307208920093574736506136250337249429158179598950631833425283147502522886645293224163310098027561402531539362879243853273280806563114599274607585771674509242400853656297072586464381791757789697107800854277792301359800908646906325094114096366152954605457171320798848953542800029799556975187382153196664896420315123100018063267873387756974498275849214533739291396256630021353937082286902979399983671787469786269885581865294000363792844811897932291011516127220614054378486760914849068627528642526570433568906946705320557435762754909092393727197196045755620190898018466012029210369280488201361572582473967779830794244038905190561161050364455287162501247860394649348525070642043508667217198401957687989830642210010452665179355088857344208752724311045377351772468858732721349591649170668668004112643505347266500883184267030270532287735406755479706270849653595314143099723248019384446492673076170471935056774758258350542071538709795727789599247263662620023619236122601199953288383202772414555981696182748668658911912854930439078268696068859560633293586035834263527348643867247596011045945091704977719309978995552532823173626813995236642707615436803527408019177758434480561256899718531305505995422284731520414075902618429051151392684882033023678387408250590678531072759848298871385817333211187538144147015610849221950085233032402181610936887737436234898893481033123487764360908223421320896632716936563689492661693018240100583420608252664280322159693557499299490036368778768594554648564201660157757165425437764893622637002301409963377778466598118568746850513715287414639235294422150625830794941625948291174858801722333427670239326904587193826544504558585013117021415562327950369828365652964888317901722772608684801970714461866483775282897739840785260453667420651757655340726521715258068794678551350788533559195505062065993671571833645346624804421572179861569829167085352043609686334902672241297250070186201011482691237776111533083896242994675058880406009779838882636975725466188251903835550577609443234934848168798226782746972317900551765185406043899568766081165492247953361720584463863296099999254233263881668075850509042006899724631355768142867376025750688572412566887452816757786884767061631201283700752388370406446947093929236104106460037978798694723718810081860033427724069344892488563177010515547583902356451024357462389394077180029715399223822378989032185229539708747381459097816004874084415791387724437545307637931834119567553625532272015176127838347643543291188805857714744838034263761251917767804875887438655861446255772111332077451669845648162250943650468852454776300772304706008336574302599377144704977602437765841839132145393614379268780764528427333284736131912209089390355927789960015689685542387155019296749311984749970734899626428324806467113281869797662535798647618782723701756480194049284114313395806235184945878892790128036261073893895565109900810888540664214119400754982199825734993021223136960991809416083168007155740997996868776459254188907664668421087494353248785217150668487476093437359213189875841882223929088476560094521252703995713550995020114465645469884878112800068957272770579162490011560418587987722246023257032396882084679181273432693707996548576616949904016664769668735798302527170717847001426347907078497554099858954551658600242937117206302629121294576853384108102438685638131400216649124451342361680069785426994904581459720246265581197708528509843796563640704647136759794946826628916290986994319535652167875123051387153364365256253875593659981250755445762314160372267553690330400084880668647693194499389876723745380671211875009355732137284622526609272107670687962269248987167273392171751314047548128750189591789991795021752067417957652194152076261661935385904012577998264563963506548755570477035102347728636872946996494620664748615276000580803449864361795285089511152519863324608379491225253639074042349936037556586729768714309664690451015281071309547716590524806579294299856412138397021934047541036772344381045978817344821840545164676512607162271932023688951776845483832021154617301663682181603002473370123648554317511779391895310252964569505846880931640263272613736369977511197059310564427487551155464797613896640059294121702447091576146939711486323374572731593556254803621486378127755814317171579301191155506128522771537315801878795553816712503147726327911368334775798248850727380041378062350283899544552365552429772786013263349959846547571358700652132035943155694056187725319281033382380121820546931393498961294877580261182193242583376722604674129698391755322887150485465042674081332061999945797585964513973974886230341939647793113906665250804476900819603916935314857591043557821997417351158684634241000087324406727258069822312387754899758099891730972937315245892153406271746510666588316592432888157087047512999047512488057751367097323218646233357382775127128739363788457830830593049757320503261448228606138542043265359200968308131230291403313262191267938235896682505750861067299229284910919221884580836645086806308744598864939305129796743608446896065742343600728232915910720873800100259640308295986839946216019090109088848108488829497966959195194708820917750825650347298011713081136590733969046462272410995158089733610605575878775484522659069414051809477769210135596673394157789256516218320445545226880857854730728405663335375087364781050097759045078531389525902149056045402411345277584508717124717089523995790274705742195281208962102557388759481299485935163413664673448648040413544261006646333128833118610006549724486877557448545431365028353060895211018206789830718913996253673132457366224641094124651377974367845022353527574698610458817675751033742449642571804134060824350080115363614536761630660298824829964070839246673168403404294404808410469695297135369670134347029275766640918657704039003636792999428726622089782193851556338359458541221520695995813596381015423032393513825438013009255015491551421895496998358395665739410053653287511934166243356971841977034153143669286971838892406971556555002334080471607047018134006533946869919110928254096861334020806476392729675115233671741701937680180295445417212191608451604715605057335645979369066384595264646911111838787743449410451674661776048332106419258782473586536879525246344935589349581622605628299220440992516969861127163378644183434042986663607036376952691440274256146764274698471094123418189267725847918632201705266591639987398482223597134656072300138358915202505408564811274228198853390790119868838210934638263671731005666082623024715687340779684514611410571699986249124712142211089393609971527616720069274641976361887536764745309103007983459644948421569563841601036138944572027076681673051114590657266867412598808064925033429902306790889597621149402406843837723143847806420776854707910540308859667269737505007689991061055259251452865342831885816656560134675647533875213657212849452875477985673037091103007914991038729544891840033946403544433067293057219454076298939422810075448787062730114128866314131980020419513389312640002496301637020389472996466560101188641533397760517344857201311573654974688345280994496385757303219257718033229325713429742681670393715619317673351282358559395448175333558831146863674837587317873740558543242785654674652692887160454550704735573064384189516089911993327894849671710132530172742860013457704565215953741885665323303832449590034358122953899684597495329125336424870174700772155081715171070583024324968669382903877678311698911878335363836246247864330076419585612215895335879026339796298498800231269883588297779275617343278152230596801663488036105897101642862504058918391548545463655240358930759411627623251480763827064301554674860028591352916223537560975337560335332768974641624838014985918792720215082788016415762419735746704500899693277167710469863983873899016610523224657865777348547090477506231099947008545775514450033689545038880617780598317173825540069672882561850910229882234940275453688802007221940274216373460140644761895810231266073954076449480755570961777767456541515275390778746542619069685477628000149175011083962650288677327981281164332892542652079946783879263092686647180421462937604017910555511733083767825076623626717266807499003782324275100647948416991915836056883371438458624747582925199704317696070378224434390656616227948365472816444892422605437301423771728588037189902994293879899471156454136010577480816590677422634035131718011769754972570465341938882177664011054878950007978060885809588126690627460896371992377640178669217680078168754483402126275800457911473998549964241462172825941203617294343139939871570149423787565149236999506365835894541567618947936647809248272213427124862047813893642981549818514071151704437152822694878814429236601212124855912801878872049403536564398719629202146545754884150944348793437222494671659666158358336871909370193402672076822489543761074533138345962943056857771626039259098540715017181092097258897200924539371839788176142752710828294163604670936296255882647085517918158679002901072145550531751650171504813649433061560377075649862156134547069749334630713103380544591789251368381518410372712844383472168396802704070295954795128012577724234050312982403031156347230336996354475844473725714211643913920154943357064023506574421140403523226263768837880338959928735154914081672876263282285581800156425974796493999621124987438734934719948415275821034767702948014407767232593542059409280433228418893402823267118521612919501423877014688980793035241039289163750659838317983913685707918788311182827446229235742078996274913778386628863897355979311434254995483171954058133966959066174345728057130090160300880323412971046002252703002817735091684008913744510685566518757625796786219674548844921458671545687272340951401929683103243938274304614667277159923042177834892653504090797845389477368438844644270713894446233551547937729769610073907113460783965071705740043236319518491393264257531751604728537823565237742772862687294668124726487843074390526819979260284072299047026134813770235291866167447360569229365989522832907674852957759579335133050561539670169901130095997036772234426140930960213170180930690819577833731636879034769942303249466367784724267326735838042411102216133874162695143670630145137293981062025318615606259629661871176347617871019022252147748160902251762654809599274447077281485137408683859792824450613128313016762963564684460441031910913015278934728224876764104965958011664421619360006042402398700698134342830142864743048898697593842691722293908037950645394596910872581565683528706392563200640651272281317491832561557651279012671531136641817607880927040275215018331873020898083001694490256493859507350310024541638033322386302763245579802747410370452764017541200198875904059869905959222329474918348995838040990496223920255001476067012668165698869925951419757455515045262864033073018830870195919525188342800227319236888464972432682282745367412042985038011368827871826404423579669412678493118986130736273475955330579387376186268226923073705969607736935291191356960474139466607561596363767532537908750043393516845392653669931976780084814931126208404365638214072522895550759419583486775986633051219161098594400109199617933087769685250351509195325612119973295839938529404870275372162856732333109928062314787793017184594434595189006265167451867858304144927922651430186780705274247922146649680455498682882924296991373073697566849186875597981712707562099501034902941361507324666986329562472664488101547170757205850636633639890379250493401947774595067167937050519623066873675780199919439201464398189282810499255696123012455263774683809365035570271832521733579523224433705473568758229406570436946648031265590300675986187901660341909800658650583487302682067674762146910525250226153276860087269490463007409703901688246640441016776552141539445589917101605173316007430767380601027104373517025480679277925895147692014361317279692654523333258022247649504196017309500911268152804856329438495734243782562261691884726841668016032614536015942411079200603569956748136194902923661245262287309627439037589985161946586289548900110250105918535362881739096354898808360415495440473726228765679318905745107439347629311729814780330619184163357406119958704738429926414550521584643834470969559092183713276184738659895744012814692739460824995674738986103948856360380640662571207758507812107133251557795242905724433459675570967966341026508515118620717842688366840867656639884340610018640806092014589111136594054464176475659389883513225418058737804213939623801148351956778759766107928436315489164620783616058118885925639983653318089808420765623127407763066483918664791415002424255575740562918103352889224006112462451571426737329951677359939455105290362330174964513790583201902738038000889102248913360009497262781664732421201644598510059932561793165179279790389781858718441969092037690849606703317743127792062188073499297532194764964932590480708316734130333944969656732376983599473621621887839660629663322678143412520719349304515645501253386785443041842099768569748781664304603961875501261209296522358082945680212310325050163586098991472012302158768244735895796559358675053872032332070421186251688837744668738355859842279573267521372187482878886397845670039485877474808970931388936338218700044432313627249865564178829557997728760734596469199642646953747404132296435529528943281942004412034224895440183806938545308518330401345269545611331326772006642290582624809144692081140698515700839205440563788906960930911313579461233790458109424870622818664227095457256607759857772907296575925520637958668874207876119364869717473989103623478598486701538476689042275615518858213901427124014667713787954660100442004532069623173086161059793492766370629774150767560683617957586625689021041601986247897771232872909449785106303784490713789445233798374518146693399888190102422838157477342071746154567261499299482760873180162098638395505614934971311363165587452909527085021086740198349184103928248793576860813707911449788236182212879945561847372316118398301510799049000591359573461763091194342336485515417969390049085010651310755774387718113187711852983845845645489255982726591090331695303484251844289402872756569143430327990255012718507723373378548842879881290050727053572426749901639290553877639268497753743773589487898317885521784667806436473697188481879887708990964263477779795194793405135998381570053208991844361646974847710810182263090590675267915254447385222075478353981537553250837890492306370665846294228378991770090426045328452216460874552466927720217601946124797308696635950674335876850236871173265345205678201253671604937003009572437813736180903985805164813853592441314601550819173208423137412594690674993353967960016872863155118575271967896440633773743489058012521010390519971266789958558980681096944891680987604425874836951219230906077419337292857814487916740017331936348752661207125563705281919622476115071794821506052448333261143261746160262047820341270996490323824570231019932918977873564568556417207754549181255229473675307212974751624403312441707370261921278610303448187258902843911580773428862554757770954233110393874626204212160042176895569954835286826625110420804447846807785747199980612523939814676434942004723907006595319085131800739643200731103900129477174779252543152931367768635755650292892868281006981932685044156276871657108256196260159073407747386432420945464968803200069177098992121539521941495046780856915520519876384543193886819193066904562126752777727252624178529207761157510646056966980222852030530943598943986247799933042196169400325567816958873677424942346529065247447168619234079735726185297160875703959700082001206960039762958655297788399574230656162747486091400683972484881677747555408350841399458016655911869877864501292306985789214334540780434079117903850933348665138446627114310607504102740146607025180861663898480324508107175912598510390694869738637661438976678491401518753932854806284737661403539351946449980546768233075327455457682903512245847060294471290977204409854325497665180781745082319558125758943941159871133520589872387404171755589238861828870457562708093776453712543181826018981199016862275464313553990318367065495179335571839033486513652890880842687819010493343592148620083627785063881946062290810331493214865439719349262408743250208773484579593676569183989186656854620337851537475416239086210890099493006929413607114074773937732180960203351338572699802686994767746958477486178361874629452510690900377130647295836374483375220434807743567293525913531808352524330474363170591408589120678909975736922971094744095313708039406797801676214339984765494876540648488096958333132551647759695478442199318537736464004387089735150671723650318398912754475008144559549707177942084911490301170465504055422349277834257313532067496274462625937791409188315320001145046302859398444872804821859811750154517384462760125656041920436183833512965766511271873986885141685779697897399884990412561280910371915144387410816385755793486223834720882651496079233633108282036951736714879229331908214817210317723470838157617850235652754984822894035288287331854288271791576901511099091727975810304411942129682158023664697446507285536083124560691722253657972887094991022911838287522140718735276306141970099477034210676603272247457024297875024560133451245602870249618680774168334613581468164476920540669849436957825270979304271430472236860667506677082758894545564832224866163368412703038381859903828806374185320275382048395247806032378007669623152538527414052708007481440705959718862671807835864396584000047442616858892940696405295748453398317654726582977847140728181558570878335055682114962379317543873207132314972778588178297035242519338484747129620393072693024693344363856088877562971651611007279393949735672418069973434050440788975578568861296558203556053538139922272265557443499720302385774516192337111626111569831483404489190909952442756785301490197901166412286484356123973905672364452649678173592328955353773051002778018759404913994844899132388862714475753150292383700286866222002830785242235743728244394719728088849503410784718193770190798234676576504089638985063955148791396880645938978994770145971400895795105105317769212022587224824350917670448310000429378059823289598086716814251845688906133711834995444460116322009652774340404782023787624368560547270175983736446320180282951859009552287652632627958874275346377573947372934362535845101414980907892141364912880689659145781457266898272228995253920053537284493624496717775192866496195894241370478683811440055072058330202389739735486852602736171912333578635745493379429979140914474917768574033458439222968428591798929451234355744393542112635629682942856105648526027185135441934409443575862122311681639896839706677521696506178708542198941710418175864440191308703331674224431276851353047740017285627730844259491687533575433331871248807544911545733456587390987269141902648733094688544924963295537398255757791639927451247750693841925865359168596531656230874950871435182533265242807379781713422536634576208782212049369621254117831741117072097667922856077343425286994484144929836612439066842917832389992284620480678451646934796224815475583236287836328706730276148503732044408751585324108115344095231220576008093710737921955758203902913101756553245311068824096532914594527837140055132404729358887733534992113961751366232971821314072151430613817261788018274678581176040148089527299046164978317023508618633930295506660655843495872128091162219467540303148450745805683094985318610274551795874150875638953974551657369973604621664554141187734162026730199352724640764958170834005993311047815916139251780618072838635082791054844092427061754575953006933150703235026404411092685942549861161775296992549080434741504336532687405453927979244698019299246650199105114730761007864838076721711945751673693149067215088420034080915761581709802171226065691221131941000541794532960848431729576515817344096934336175713141522185373235913740149789582681436328075581588245753571476892984876472208543740674056233665078491798295067829062385270056709076161907068513148100615989919385242035088806965619065203013867740721157789502245683690619539427698011339760567064550922400898239663491628304715327699299200988359317166184404246824618200688663833705338184535262287272311869138338808194965240325405806846108810483064517085357458187200123551007007239169658488620368642006403378925692622851202583791592181293208415754438166516824071302451891229403510768714573764391595775712510112782360140762920388145257968589000156713248250295171342606145126661781196758049969519815695016473163696282632693425667894851120359715342917104923308683799359794404122006082465037579345763002154010286493775166191112921574335650328605980596654580954792254473919523779000146373511918125678686232617384564678253025596944056908516979456126720460510290878730290768638149799395344974245291430999664379868236349848204153344692235427567430400803991161507358781743971123019695511239723623286195962687741248851919841415937577845397789931607440182218372534925890503670238088014544150198685139162062335503373087445975765741325069705381288516395639926662577884799117386130016433459791345210739448557017232346272255355303423800041790892711939706814406495533090015148009291391420031748179561472972024123911991332834616734316829127131545727530461039529635115041704389266070053452071077399342172351639122264775638343969464199705225842226043940962893627890903915998470672398549441157926464031307946510150515200901030409228453998463751350230608142521510508646096991661183511855201699964383602286772244027023154911236609294312357655343911364713453921930739642266394894696162668388961614566931304575971202037784124860919462795723266458656167600027128556854622307032744486326550632971615223825891499055230001298082370805065620241127715696233997590044144549442611890175137574226118432132442886398185502707451890449016907655899160495672743226521176663976869696000146275420489069833147028724070209396369935818433762234311223915209196652573421373870476287045255806144990102341405983829794059057912193638716091352636446404427913901462311493859237033921739034655788242472296957714623567099210432510582389724850268602830891530847881749391158922536340157235978508586993425011905188832922811389086264833048853148580632650127708245050344995923507779118457111096867282032759283902832731643298062700826989566162438250046485861267849986945119967275905215673043293530774932356144021524420005942690112948258553830073456752359204842533666230903032888393048920224702481462863645985072589225681874915741058292445014938895165236600030254195021215197215066527080348471935207578838638277648712730948591864792651933037331105678167565650218044267244158531417458277098810396244622781846557362654311757833902963149804352482432261032073543974099441302670501671859886351294273966098265176017534606003100622981083619444370556232835817348179831897549797404441197443404358354793915086017279984095570044510697852996782962904220561420220786666165436458802861021717291493173752278695601109230045591040257947958077648658421896429020760169372080714947991908290443792490862910284445017229278166916948659396927549382640088434661885981521874881231852491357187091530883261271703669998068492346701888115815354624479791340673606734106940308084086682586565441232111627083076543580237231339412846862223411030840044228709715728749354921974986412894248408093300991259700662217902499680411691698959767235664227083976298344429953440833036743259691142319550317436050800899585211152545321381709138106603658266038237509385947162088911244890229336463825939849917914831855755985715079555661131054803152310677028285570398787126362164426830843596911504033238524186526955079294467582070395011929523937225924837673239531506429065469112714836714533899781097915724945380853224709960266529951692208186430418521084583015294033993002974092446144070289558843616849271377837550247502555549327889986318192710242888194267025261966678615582187968995021789421565474163245475309427401287857135881730597523645764150573943202290655916510676854183088006205784186716694873752437421682293679971392032362758364742561287586995942160683395988348765039548109126017262319816147958394121854965801812413383568648734455991943706689510555620445306774322421429486361306049966743029191401555322133965270644901428722672969193452576253723735580652540835062104314057471252415946532301226018821042298517226500276374242004553742178331236678269399472280470792230593772491896982685958759616472277875098151778299317650369497925304378723863116944074544317142879756639397116293074562326271761104000971132434451317304388875587268507960909486180467804459551153956742030917884222695589704358095767935730418813186744441343144897270467378110404448008338094032527115971782885536100240099815200737561994355552774166594333530188398564188616700097475399444586709635934228358626357930810829879930089886266082217038328410411121499134681146174669292113675780765253931864862164060035765957922299647981961907429992817189845412698208450733384631915660952299012459065915850257613011461589168819553770920898142657108169311510981977432255713452531627032017776924134394084247919004280340865982428601040390498516705494393699100890623040084412444502342801402633198618507018345902762006130813045637032266211342522620228380844638542008938335645953642739371634697839492022544872572156563016392958352473452256562301615358158210109324696612432819635557971363824257520338510463111442481490166858773841092441044845385212389630798263662122099955079390423039556175338322758031719854011104388315040121397607943621374065619323895127780233387259843307833013221719192224287400951112288390014736631823033716827176946519098075237450468795619261477423158071987797905645971668632955329407639815578017922791733307761362128409818295290076080566126417136781214781106286868668087781048131876312835964029393414827666568867612261374734792720941721551603368544706339507147473334127243154125268057434178143088963397414513556005741789538769593253594304415383942054469610616720404918728121546893088656156853132416417989781764403661393224346345962705931907858938476606920564676755474294146147407939020289893254558375245676726101835473803516135738911625880794336503639151296230991048703681968969815089452384148254797497937103933426130847121041385329862475390998422590908739781115365094352766063486373393384372001670926990705113597483428449408102244825308082068868239248871381793659564888310421413398559695512644748005029426253468291046621767739791961373086515306304696452634473840172586909527326803334246970884486224298624201371065698409078767929901906958517691707910897916322106505796177679766356132017700475339274611853469529451999668323368864225932899165437918324019775806106333436786285944219423124553806147549955532165719500826816772817435403000925625264232249143893880734417231858384954266424980301145742045581064884689573349815847421221892921690601092529155725017048737153095228157000613771408868382767525102902512233277725489039460030066706045480176845259740806797765624896439759737290250768788630754674425026441677650040790523754546944925948808835697926437908794303259385463137253354219431918591174619339926172983430849340710649723764028645453744012670126233288366745219616912512883753696256850992115239769971903363610518365827440589754271757913487589759790621078326212926919104181712093433533938137601541387455164068849208340333582969874712889279125772676641499202746569327349352840482911548013269216804983211141573235006813091950035422036392372930261594031017364312153813134276224168401813998980053141292296582212162625655369045002904822302051546568448482818554546037151768197864787376257936515449416392013156946744825160415668705310404127336512732050944463855364487991711226775020405132055046966251737236424610304233146959527588835589608143050097870549105495762707130886505027752436807295501019730175795018938638106679370747909853245647394960308337952772768567874760073215374611966688558906567978746238269836610936648809584035961384987773581450585892881922626111413913285332185704029548149418443209794360531774119494345214183263895820707068250714594022716203542662652141591689431004312455149755667946244513415887146314521342494072718623153908220749495067855495419203094749571744627934107442187083934624861321185231530149466010550503505434684469249471044137308210341061675673354732126421381853202379647606947813024670512392174692220468093585025628895419133707765775202767875805465905804269834849924335060809252790935195415009146159907162975295140397635633814037613680849371323233119456186131203241895475511764023571352753399205560385381111226436031235931563171827661244215990649960330558690105428063533552939592039457569916279592166128182060417307084299350010268460819553978958985252869943497318531470008091469177159007261645117705843646025876742729437093990219848524193889935397056155986116832464183721627551830665456967028397952808598060145600688372214729751953968009770721111468116708695841293065018043844806172643043982572923685676363469628369359932303383054767984630317368842373884651009642857003417519870560595086807987995235392128826081188474409593671097881746989129137028848589885571840572006652931927194877828313186304896123937726943165009915219883895349529522036147952441318940258927567743653593471169738255470493688094327429641922335406333700634682349825298579512903352239949302165808042429312117358329742337997333016313320550312174827583488941348856120565751056959722543727230256845960778905383264151949396600552086920759974028282516217585830313322292674646907592671987705046984258116105383761842651689678355737492229190214519200503279772258249110936936704799146887626057919442495956004002055279197886994390663815366300045627892692284682288774674747243492389141061707230195356620511249942140325716752728435426203025723258875474318612066147016242814551663103905428975772862283264580441134403909696433484404988675850158269484434768703370828850961296216686661382075088494106939975495002937378360225070365490595288262668831446178318610284345347965208258572364846009322612865850049793014809475281610884657000384093654356121414825776714290708368637363937464688906129528268911057383054718056312896561802203307028893475148087468485128612450351312085201019690386274862848259026257684758763133689702722393518985462886837096395854017813534504994153337926039664530841845591777432062083755996797376796604295815453487904211948845525326210874453748428180806901739546391863355766357812363326510129916819062280211938864182422903280751518289582612908504327259996688397546792627541366997962979670535798091756482452783750713839117200710608026358741518717432284988837597876683740911415969662097297245333960289022506646603310140331349255132803730303733509065783047836040302408296129919773024030640589716568768147381986427507880163910272782399180915409077361412877399406618726463223266281925350531307197393872178601296541621670641723399909251483564673499772348371350506684248337117458621902152817061700370435161753963905915749217368711958997245515816144758136481446176763599685328970910699030143361086771458658047603464031960119499654010690626892954145759339267526602961701563812956147844748772752654109239331985425764781567447094963867097336961649768873306209071664413001212116639239184007001715333524051098452131678121512752045255690857922206624147324190619436122030726324168480237121692104228167325428620401570357556733358191865873294066373434975425262396217148101663050398564481270477009266075976604775238365878363577301162787092893888614974835819574296676844312264577613000680647960268408668500902743587662114599236382760190407903017674570283465273550272758234092613874449667632119578806458551540666864671409835941027176464214188024029408548516693718635240741563739605944225058534992854801069174194904889682543215118420241014600797936176696954591140430973335255407324806047852389855407213383645298418286287618171910691712485311881750691735971120097050196564812596859215893165780926002646592587133927538154998130540808100045784332715458435863351355197575774519765065451678069956178511690159801731831824376635448639562494525470555844928723009860791908110401009949379852297662859782335784487149127450108352554386182700709223776663178594274289870818927096818297424285111722115360322973105098542301502533062673947628368182524796321518322466483533495062268467576357337777930192070898522455682395863496877457278893832870696239835898502284451606239919381287535472855812618156797490756359221737378960896572404658718454906601706981738244295693496318441597658557560217304708116424136240971990039280850422730604295437235769430796298129237315050840680397838652149890142616256491560235025028803029526432928151200298451404616061464098297998879115564651760790026131442230455426360204196580067777240159256240164339105047938422779535185384854697111055862182987082965179798758132502252627941040782712584594597559750244861364585575415924654964780561514898156072922053223768237449346966113724805076958671272011810335566015751482469376687070843898889370742205046234162180086945006924789173554058077563291375051768114782402881198060294940396571334353576999420046387211841342662634492507232788174933279870182285672532225283962160364501817801798607359013159241607844368577989772123796022353532035479818945591812169259431581388518520311649734876596303772971485274465826917174336846355337643977332391824987182233328329734852903533590294174967731245706875928346154945049169381691353752833004734044113725949833921449987720210086370077117764434716524988003918799934512047407971206620730134347274158633194965998262673922011825052971200146758598881910494458598829170304518615213743535424121594308260205448724190924359988481689028420845614501013492314572669459914481897992660570328621762767903843835051168157182205473172435424011995236992587750590380025167989806431828719153311402432256415835141699234096106234569740857914314308155815424803254366685905701149340129711220591344652908453741343638121094670463305141270608701323100415523837108064180868187033107096094600289658715914040576272227495648429161075083663274362217707359220963461978960690287625488592896419304161904421678105452015679038941809727518849203314441652272878628376162813754824064167696990010110469618624109176088013357323291023307747363596789546587392829106155332293928633529395962081449922280404771258987346378277037061269756257910936042261163503931428923495321270590989157789315367003176448478387422636591728308891380283326749805363470499967205724853801513915810766291709643437592679821173622280167274359062725308278284263287201874828745175939215848288261908533308995400528500829173929567949607924279448128756157852327895630450590214245118905267276302050270374533629719461053393487834902522327388879844634923763164602371742395730318787023787160381158070822518175903128670696083541329571890143106521291358131944201130595672136445041890468914240848310634364250280345146729679387500058927899443224200918321482636867683075177964554287685723553588096745792861105312233491262067810280523496567622050999161799103511829233393870228293615568931895292919412901009112037200813953071122012366596271324678227113956010016811714020423924847845463197187378429070842269852348034184297753805965588872283672437604744791217281674581266975052964884844567552113128857740013636387365753002164758600756799657594134960511654428757544595182421756080072259801880154262761705833967748947850413357442589402252199867078978048957388476319304502838203399826494917311227443928200825236746095659077649308214918564045435033058091425262139513189989686132394553730758580430244969261768877377700198714074872315953262889217827773227584700542710305824041454552718575488435172930001263453814234354834275909482214636464468965131145665703263773546754750022219217351566567372791767679195183222256036793603404399316850116364051010355758857074233455793957306896417047165450264048351971351104507923486122277336597253549600356474579760590952739434538836345389132853526909127933295658986253366037199269176900450927112517189287923218271428784239119638498226006365684291838229020018452935721316533901558346107264899027932790926966069162721573359954235261591289762313024039885880848372518501792089386489373893600782396556847649689168730866073864671086252525077389290653053445461621126774948286797396982501088615276607868668769054098368000398040421783648233956073980205025994939567844014091492967300173735277356177454659626080230828758282750164324769488447179857618692633857172115115568007201421232312237460600950980565827088527950524642093964823003917370976392384745279529827081141354355428373670917531122548682835763426337266637748081675538833144057045914842044214830045171701224567830198555654966777105135724326177472380121492396720120784763225935375368439386905054314480944971432764433586143100641897043404161403475105434493544299174723680657759113703647980784998514262313386957206914839942800588056833742077250769163715120957476099253041342983039357854036588209140300944317254550195729234001722644301208350488442642849102609920185468736874464622347411467517618458564940975793033492888690747105347389615973310959054353863516434720171474623116035974080215816153562518424081590041147554964140308807672259207500930537668431963021053243556856194260793734899890465903506218418989490791172099271881317999823689087593112161090076804887063909574847504209627558546547870317556789484444339951588237966453054104780668777491160815559529509169130398420147656001377749703282707006198453793027417991007152546025925401208587541452820520080854874041585701316043553605987124770624517473365206175222620142494160334597131618482650350468993480064106801495489775482042710124567388481967575839559985963641828119131331301678468722686123937344819305908187373942578543607233372763240279164614886525436613619845474444143101022548678050356927161072529257661151420089556502166739400273603595113531155740301520790524012332757961322112700936673680393928761855705687622739274982822739456440805491039040598752613369274257630216583636680898975331415426582711527362706392943147777544187701654269939789660877315366510374049116354374049988894182247490519081429014344603467277842415390028289382496961991297178990563691405333846507934416167303407798757270023715240076312754310497303467482295494238446734174805386429750794831419739775946248460234283558493499174192563919674751813083453607676295421938400877940585804819225586316589695276397111779206249430385719938503980431731365338782744014659715545934515729812863491341189338236337383343578432166319816476677765153108339491297739679721186575180788012831742672230918533679282289072358315015851351320181523241506346408240605142109928689473771408565263602280987390812404085657268006318189917297804939060901464728236446875021461038442763957946347103940762695600093360510283058055933866549164724864168154757638600634424416731286168309815893805977909802389529301164402228364437329648087328703825119605028526567678859489562614103179675365359315019880142615618512354243166867280252235263407027746844719122781321923575532114753345517286803098307143162876208506166964842237755809826943378808662277567832576053794247240823756462221555877997406292490092843525394527668572786549373391339304997363597774648307945422331125315940116200446449828076316528091109947132878661112088387380404479415738991536320420771101795502224837345806767921922016381524053028624453607623995601983184389522337073710402109891474876923412777446893400996172673523415249638505781326407763139407095657833063832381657850533623190595471740861310556073439052635326566767264827946967119319621800182242551593824389351469612846908253947390802396899936863666446267866480673717483684469739732356838378656682065476255195031102342835229626339190481019104071352969048376888746742051544664331206081415278880504036829329736888100876786044835303389250239723544379444188490142644696304506466707760165833312029809169571947832685059473212059004400622699533343692986704492847436567225068103186607252984912649665543767136900997321296256276687473160852794573513518435121962923796181411122546971889254447951059204571064264526116809023990373934884538091962769918464808153967452423991159654314169148267367511855207197569510269424266056739373776568621815320743029339548756052230932462242304146643550378780855655307582824787219488256972284329213976087753772903238146058509291300728514863245133131617802156996302188609069969720007040202103927228240723195392697117440822098803943360198181684587912305831436495362422093364096226669078378570868395926072253007212036557097668391357690442348560121068846296505321438700445908455261581875711391460848303941180338695289889443463751356967335262647742164351665866245433695417305885692222710053379912644179731900833646977295928735320651353055829651873399469786956557819652253265089566351940087837978733039750361150584056870605111921075972588171199548946625198655079144662361325374349559883282998733262534238923636388384288389883087430752904359998597819958680504433394362311957396494243331305906347538600439262589596809487052038794526597688233541545460996732430012818574475167888049003577242776042373455992551350047388202169145159022955822357995443937272317383450580533301973560526892169803064659902006580863205008854666644232505666814590433010869361813095367240484580492747019503757024657162425892626708041412609168021410261254363420666779814660915650171944339314142998979863801050172181123169079497196330014164341489923518506489657379620720047385884410126893480220687397731283044191283016499639936895850748902878009455073780847793702222218489257604006697568338335178015741091993933498708184850282631628947889582126067761874227187104806042156899933645980003089941217165087073477929168740304076356581894370833191184568499845025878715216385796859229775636800505868629223340504126386684918086240116403906204067548922899997273233068383327333363358732982303423636687504053907603686533228811350921321973087992682326240233616527685803347273408007680661362239270407023686197875386630612592881469284755885141519082176051380049219718334218601551833116321440072036710740257736371317477818700180710617196146655106061769463659674435126818381909324394107182308428373274773806378723450124214756377230141587402692708455739419878176020222880892954587436810564165349087438728255630958168958233187735170539289390944164832994257448362245701270570245885764796487281839346688718976431483456054070648583633602236996852146683109090786831631989841228133665989928313568272034812320435781106850250720594393813401772031253707325230090977730725171459894618911416956823487195203576357112228536523879645703434752430432747993864812863601530040287996735065727951216768212216219401334598871653099800591834446134487792512080668699455154367964196869214174673529905738321839779730743063594743761369553389234135082248154130849640235028382080913385252307272212281635697547449315552514571556599860024586618041499516642285921478000700258959687026337373375554229270558540507311076399948049431271771391048004159014288744603001908701511159832859438519954950356703787613552512706515602020494370994390606140839909548409474198033498283923469716494840076291711712051181676567751888766323954525196535749318103255207034453540494016937462024488165113535658825678882512430989774192202326670777637348978902061257174514099127870626135902107164339635603147827106318432450225359582920907017787277508823755820107517433905126442723249157574736235655111006473891053197659000173777184717656483369662093617895200965207946658782290591191695015041457792578097026914701903007017534344630132460755243145192521893292542872334387206325846931037778237897170924683539412556851902640223244685166065190797414806319703145019346258786424512571944106203659960960115507511519823737606193586852940578157016522821960164313986332019122823043015479830766215094452999783569334479405212324596042342850475074246904718779456885195966818541843584717137393203559638960591928951990907542332780261150856634201031291887403467952702653333195876397539224310490764954481508994145964756549258831503669977861053447116506770413626203303575911450585621878136652289118704492884069224799970189190855464245428808533423002542694899466096325560803845920520333694072182128080687252964240926576580448560753499926007903271458987693370911236466094539660181481351346516270175926130090941119582625674030622650793845151421344690513420303429938532201201776659728478112744688266146450805246987508912295334789736894491822937872330665488367938575927406400749010580702360191988377823477776135845275514320250780615667832474296042148166784707842117482191878366894641292890795078261665333509489691593528536208800293045370298948148467035287186572669632993763602376571280069974410174473840250261409061100373298963826518559118084537973553518795222789709592179367010129392159303952007400855081536074316028695193527058631959686565337632572458803825298103031008326544046871363305259770980487084683534296654382581047776302719819633192251407588624831873361225115622106018804835764809567385555678862821530989258734637270057373155507732707013795737181540594291541651691129381952485485940406121520643263556075073761056667297347880619506241463628488512532273170985623570108240237639926580624458253421309699667608067697713472373959113848406181580303481021829844366523636716807390099483278759693074088206194676632323874017209591163642789304176066644485957820974376025037396962829228052175388308572353508933059820529072255781271693395689406849706965446828549409724789094861431171546973942577235365145144109585644292939703164527590073157304303189031057042071825180813638766376602034754677183329731407650722924794041376498020602764252829993956544455327867476590098145953130700689417331675895768585043703185010245811253734454438721878246167889975689757976050057862620681261857945824289944648562448989664108438863451862353629492791758863593023362788737444864023862067686942547561676334589688502817648775227802068026327288637045511853131225002620732340852243818766815219635371891995969393790540867790110240009109293366273374279996060913790704839128674651542750451155553495071418794160629701009342613030430511461600315458742180628566435412021607430460271211711463544691518671679808570670297229970962357486543739564952600391949440257669662262222894358588462450836975318906985779161138195927274553853573530661293132512745072101255782212894612795037239406328478956365150150850936718390002253365602784128954126379819273840517391130444898666339574099282413439218549217410684337748402742446232328673250360418179215676427081334004970243432909917846144283782299906921409851191936630182509263576302497374901442870497775042702781334291313546160546028861287544186780575692612364797877521171523058479067391273802438133492792106494025458750552048316276351677913348527874853589078574397644894923777837973769732513199516509281502346531864982466249790580612802981770109661770208820133643589794482521565359488631176404299904928532977033364814121941570844863639495539733666566312870228266070104835323449651240304764538565278460404659297150806789114220748429542790450726742492071266684798453787544797057293529488650997671234473391688722328628881831012172027327647644361926675020915917972526832461665784543667907726948073502983312053521263303342060258221521581174460101576338654214348223537228532007503360615811456117185595079369904552626958941018502965554528212033098524810527306094002389096625996690393113331336546799887308471707312561669413778668049994128058012653683019746266239324682879102529262557836443281412848334625657630901750797482054987796940574202036595909973978591105413355313449364576239070175373672487696150595374165604364813688581165115115151306903223437201591617398507517960878550956535167978787739754440775121017447962759743415670364505827983900784639907736329586602037408552924666669642802976431827801368013964904072675408298077450813579961772670904997679890981725730129649383594393720394890022963393081165956264491392046233347557417763602956135201430246191321492720356656059009103776426784181360986886186880707663066698196705979188374992591610375937129928034918727485740031357184687409639302751388792373845594362083826229806238221057192614937181879047994289863252474162658095173572290133543169692434636642320836374575403416023498490602795203796364956111618847084640577542922746328379284034110330705934039270482127373948844334069301079505044473708094631379527521574234514156025528640087045745297123445304360755554998219358161501216981553557271437174593650476211982614779598046087124747695074395864408870085900592389819114612990128490541028895588134225098581592578107661305031468380447399304333353280291392622311472203835850716929626668976972556406085355148195222474622322396466467813064786933150246868925049378811593762220096831932565212659374131555488466158022300091733641395801946404211385494172275354296211352869004298474840210345440594277505384462347888449794106757662463561030226973374292650508871261540370112717025401021575549971676347920602741349181578676547373697141983683335459321430489522756448287577095078196091398979004387920340957561688765665915427053802868591610906569246864047196107206047735886925913841207133150676989298739707468759153628233422401794193629264881739987475380120115794725376316344743988842674758103179124340110150397979217031038851705173763136676439083435539804710929158420936237719794852989948584269114086436654862652057134368972278340785413890475305047486521811278446443967865442524595319017879002697707513451026679434452361513650852098967446304376822813531912524223898587424801100343689462703598288498452107662596694934709373163766395210804202620162957244378838564750323681014517606706166989357319177363047978019200477556413823599451778933593733321309064732418229817026232224876171384174177122512469602528917242326030448202201150732378882286365488034674437591466402288522927139057380368070566321863003685383286793701042151674708669040544050633197163197559697978030744395330187442792095005361112210034410874946140413107889995550282204606379461510873722955719732776728735834741471621851701250220470272062436754788727575546289925603979177918196872165479281692533574066565451395822711611256666155129686304559675659975851298470748995273194682200112024540137759341689645202436276536227362000361316681988012388483139378083424995264725925220634754571392065948394905038731233050466273652069365500628234494912208996347814606164634382407957361170995903775360688314191582983521649227840542324601002001121435379174909803626790580602944847614787110037571452623823177230858291028928479130067610050964016154915521265186349379686524854766701936244777172303984022419266690833195501037133746881849095233137074462672607711884876418501590109860883774423676872888140549404351120735891555276689502344880935243381044337057104898744632350585715422367220848464834495524693377326622416676186774954439806270212830652606376232183194218478540589425431142154019182472942819213216399821017998249672957399482599981625846434859129122319816337460046701978689732940353632306666648144383607148996546256050663044223401772516683851474990755737878711374299581175643676136693855370320228740052416798275138999906345647755752699280735261201704165722350526997943309685051188105553879362953295282141526414763897253244806148722027444110056846019944060349806585877491655126499737471263244641211204655242470917106989908205387747535177861922430367797832300444562119058874969447275865759164365152278688308495545762509395931485088681518461909269366328627026821596590942177629220113295858223454370373089144819271389793673954349455882201023445155940527996319572950979165977053222802448858004300060513178091876588507038804986977455574185167879984441037363760780446127634024795466113913901979689108407712965687523950160646097164219846476800579407727328293868061248341984606110063003010537011494560852600149069764700149288848722195038688450864323600742582350446219163649658206218609763157403707893507443559266048078253989145661685069249766229002624885041437800984422359719932409792008921735876323397233968541553681894187652544979935608690901502951262275283476064443368997498516920950455513704208406927942359715205835039324540930100603992953767560147104172082638424109139558529620300053992081115313825246354127164782911542390798081356216510656131837183956142831044197362876083136951017506842913488764019453498181483202415463187020687331368227893225175340115391238252111219184117588774875066564563543910099926279959207543635339294257752550649083448104629336591576209010365453006967481374780304342610850211665289589863217125309707522537931114588152832343935329193634442423222649315842878447809907022842378001531191924423358965560922466851448068354645469264637906583493996076959286151609631421653285530451319144149943253529596527188275942088425196300420369785558247988342438805209187361612893595819027253533164263116519154670405867800674862372620734008563230002689435079319949112736697358571277849708151935159865371978874836501585414191951125143572308739560735346474410150711810723220740847461474323374593956785844231138838646383013537358239899333171176002275889799192793639828767964217815060145653230021398500127079827084291105903348288009138038848107951045535581258726217684381799241867031519459487563961393045834966345684518037011566041858304364504524879907849890583986234131974573018294932869286329619966225940112888808519117358808682209731174705874229944754350464675556360257210983808828276115924706052491784553260449908604152212445894915835524151505486567228239654640782268848206958081743960486554741986822957171519016124931577892792242360344923477057889960566947954444767066463934890510785776238405575364661312187432594093081686353130293067190406665132971270053758631305742390467917702522520035873501349621807310324107228453109003306578312611524333551321143393172497985570008568767228558853642831159535786075823040301183925515905708005584324691199498749839411540933740539090996432969220767916124534252606978286717775905419606210400558312584782893703242348903695223461311776961386417094951418238922384066347776166481755546761879113478872884000633481019271757011942842317921938820762516764269604948809257895090887133449550455597848356201398388513315339608454719239004497918556061813711829674835479089529668515352296158439841180552529128995872569097949719251678150111198320214168728718177988931620132788488950056185044330099203088036215169590194755739122395829482259799873616059349285018857386439902856215943116853047382633965616157157091562213737334446026834432230603900124366625325795484249018967298134772018336419207964319408171884357774724742838488266431765453484797780935026103810964803168009560845137799758793609467247139199189488933230605991739167227991709491070027821121205777568618436559664781144405101651740902443406630282825323487251482469648055452561452595819414921242204101232714796081279473875152591460396916320254688989074509903544262548766645571340415325649347293308423983461144827130230587446775007388002322895498511417616185140884738104784791506076372592988047380034328328739274269834512732272357302505581720984865439767393370140607379241867532872494880196616198907358351760932304793453562007024412547676256153372962652098668102050879358368507221693566461224985706088928019048117023011905636208132685307539237971100545044438109309663269566957656497011185958085062885642097946228314033911861875985934029008012022150757312082293444262404240154927483290987906546518982513543155188737394944689439829980957780146295431050168123061302597756724103411878353283006281281384295989391748179833859889160521585831438266671022353917786443033996087702317263882123930147437846510898044856103741871732392533777498941914453377987408161818559558539581544363972171149233605444989205236588386658450876141882455857833307683444829362688784990923121783868710596093377117216702884046046910548992559404954026362400009056127529033764414387277712946125332520874408698368020884389748111629239185162720146749166701184671857280095436023245444323528956594738428890467894238114325324245727908869624369605505714645482083592544982137752898876795829917748735901269865086921196687250250316198392849845309145980984346929110594655671903567767937999224764178703286664079924983990305234314096461357278824156632355014185898280102151767863031618780711328599236448337326452730296432572764830216928465459757066584352491949872396090356082381815212929584055953152136050893429047454207607932611950622431613267321490397182771995639844191004806870937312985070127374862136528414018662261187188500388715666880776919728541820682372723046945384961013901992478696322227959289490643125226004094662586451830292253995791666192772844627886485921838883937936362498135444443445019986080881575649644619032418071714789202475429046649318100805601321467294877651322043343253210518392392096869068769102056889435370319856129696499925719813456849329640554777810181157654628212036545527206980028841404762875782141877611691995835313892182061159745084832871857060564429684935031520655802561025107348766215734251417540824135279088681936715756091959441701162108986249110479566713249381230965243368544273106845440991503386740222131293869568037165377658468562153229231944157021061848751779601694443437067465468069760569350586758414014662028493813684335164837720650002245059761418969940786222049825588637988205091359651405117199264751525779707155914695931861440982452457552554659083157503145549839250738744063862524751015308254353611755758918351646751969063380647015494020194128321469296364116898130144177919329266003438167944813900953674017638969054350546119791319507397926047754702960783206280387045761879668253353974916150431446165098395319834629304008911037786381244097833090743052438230450905227177973278284630518231774713492250423571372497908747299916150640631755893064094912589431316614362531217327720088526590235378852429612968762174375755575018805344487673550026177822831007831996409893277116336088452449439913363674889039066454616240005337270628201002206197046164561861882890847217856074973370067518795701693288720127143352485017227672671486891317354471014708340786889036212475483012222744906418341143879249868790779310750270918597162933197346383383783499424723397877853814509843856242126926445505287666419053631064500915350897997138557233309750828786452758535351918897747236460868895851314042574593901457667926407066789103732681978300875438874845301964581828620852621513512162274354404808117036663953044936195625048683011619162581305581238359203949354209212720666632715240212030878580933995086641359924837981788570274472375331581348996097136361218843013305618084956205026231644135292031681114128577176254949286202645680935839018241076017427126812542085245506171169854297559278171974950472675568789269434863340070427831066785220657478696134293320969691185703159958929513959929182157918491090979111808753774710320583253529838724070386864011895435309545607205112362617738699393875201541333620087698664442361962518855877844642878455081744804829955993409162085038312788689579512771203208385590765166023884113942309742103917652873612382296680500015863803467723256128640909286533556674324436111479729653078314988135008181551960912876545852016924146313361333178118147869830114303537383927058366637369805314665151468255236729243109821416364162419345710586927970864418931358860542352456838805149687666353210257777914027777294386801521628947063699622974011215329923617073379926795804161071009154810555941627807478655558603001795829458295455695731367821977215287180097929882149653934828388928687305445908421784853867052422655890283326707840224016163663665800133565544122488540387840942978937219002225086696518061780189919047174909444366439686059204967245412176705951952823885569098453725359722531811985215156467285616972321624422979629073023262670892666765300008855560849599587123316033862684798708120425006245441569657812447802772792469881817856011226079721386193151751206827978908579306320585891841850638139369911802214675415536542724934266759181933419988187311124170263291349333448099593571866473757247688147078653650711362732782919125274750090304676144674043790042942754595036816247517317248641485307893154078661718315607401590184290518252392184530249294991480654559085560713632045597126354778684827104589251593427194173260726822439911823038396577215623785208463153318189036479866137931366052194761747140076523908787102688954320563285415859259053488337871298517056186608873865848322864360997622799234954552028475201351407482843140247489714091236396073913775908559167241659616447198304298907435764175138157411830294879114372781789053602026761146518480304761203417913352981088393183601604916269411664117133062369555479670444192225135911565482811096876857243951418101442220652606267388722528379055299568880055234830117830536966363838616108118945383751554051588937447437326708605005162859585651963003273215283184046143392116978609969042848740398938909384738846621731335661201255200832115758300419993124556731764959054117547228430110754524509056058990801283897433602586378764800456734957686836638355579545086118955505924111908679608523824094756735298016624390309156883257924515584375477624754142732620041697939804644507019636482279907374998023997979383837803135351029531171833995656989623817556556786764430865438806279939451142738689351131558287084810030995122978574032249409033212790704691900667756834210958864811531655765419848545913355148852606460003193819198141324139182607672112937590109154730969868082700540007025186754641506822743230324486385400295576458543723546960995127702499226336520517290293173830128562827495328441178324918735560075350861460239738493540414364912692521285358134439458004649267138875485360937033734767380878644046155765069508529458962460976913666743685527945885800293575845777973244270599273017714876880557183258225562705415206191223922293774945005283870289323759641729450031421812279736078644125156004408147596362807387766184010132049040575997526552515802617423024713129605600187366043754263264077105229514354773234125192129210847800852884054730183625463302287294595879139792456448221261699014205113988641341771270381386198292462542636832397213633539371856733030925890526598894725351967150233268559011801066859617353324788617689081323550146407931172503154832329123329085306809171168836617973652026404633625368911872556205571613130539333022981792941858509254149011066158949926222672378407066880226824242225894333546615976186977657338047873470106156525270585793268787111891035506809692979759224502779298486939501693853361181576392416137135818277385799534783349335950894965503942440258058070794219647609032999780533234246092790389277726138045152002261636620015052832770814950464453076733549291530882594007663718200621821669154251636957368685944572077744034264362555339732515124744728976076366315780892580858050594260071466196657391187018475677183257583052550080169710108806117583032977965534201705295993158743898235411251359738276846160829409656005320739423645067292315171989569045540503035347853259516667135397447950127082252310600224877417135656832767416483284884727663431181564610401543896468306785369992345928589596866173413434356702522053673675737319751536843333927518881800876142504818147634062668619327758386030964091963974999626023666817795680827085043955840323108636249165358673410000101742003683723386168420739832869560002966818634209519453603739176436286247562316215565054818534792594876587785036824241968997396885445523011426177326682743030598122776467962581945749791499622337194526784499487641565285284224780997753348663039721990678366139641038818508949053547352356929647817241652716502181778683096995940396903734759259751298116237899926937094435713280956873276137988095528955278722803036218874326544796257116980065882852503199907325534298316485735111825143932248011699372079516321938147569246178675909369601105896305744707063863025677700183674466675547537058663803351038748060571479205337060848410710582011157674222604073667535812174203105790350655685049888117328664611678756388466472292612648370653162166410185096618853754654882560881604837184224037790142978769374886440191258282164727505716165524758523353007647729556560544382680401138105247978698408985803844470032522542951421582049850248219472209270983350253325141526496953938993120981689018812514499924263485741676276647412951791736828199036725865656594520265955335364849691032399259034246473988233391611241793856681979546585139161582662942774712073407570315722156227765936251628006018230510777948599548719800972219969290962221202212890875124987800005361017754182502551336483400452198404695994249677157304406825036447530893205876383783916356481856222389593943597836859217287928030298040593871094100851456496418393623480938968176487639746479924795966056582220070291977043841026123389025080533562826121326962823861370147763192120598647178238568188210735059557719231301017849465870523352201629401885430690915624753983637629729521064684433112578992894674685003240724063965631205154308508746345895469799039733720204471242068404628124235378892998430349932801431125339373514918967276970769844673805070861351520211390534037495695869503067771052955671063211445394555813171561342490224274667297593128113864133189640437043336538777465477657722514638302988787373559661212498088207678181639314035306620363437487575416117299918510054709421976201398637697321854938230544908315370986103250719139082742494535747933737920960042164215460224778028864009832308597360658929584979757169463897543843244412276401348419419688786563708213371971462010492372305040910141799032047583173848585084243641166919649814846747080692999290388570194237911088779991432408925958029182223069254194545940576471024404992821807464320992023345229611652297802984788744391927568536002587917039289726761237991345393568298749760550254026214884702385163772470575984093400617433402721867432189509605427977428017187419662974860967414785185744235584046098105181432446811867929566094176212458194030668768187994670457458830337516445756844965787132650275367597264742169970436332326676148207267109067657607686297553843237090190458037544523332464893244336338782055467124277765683632206154272882821002421489344463490441933415246045740699767534467804617976235336655856197466824162199989861270030282677709882169985619854781577940515621317669857927900294116123403084104677159774566754829192813644062359111460567435073734807815394678405464013736525873201034296329158898400615057215592054779503758826573911061075803994199903533519491429942259586859744026675597601053357746717255965914855137303512589386723526380591569149523240071327870190718347953847387691211609708229081455826845018057095428741710573422769791040687833633744608257412679086180162210729622178949229676923859526964673925315633711026219456719103661952353270659074329584729918884120566934711608396483559391180381945526921235308880149597265838650979108265355982874848913924227990519607912390445579720864407425384968512532144647786536799257044939089683774084438454382030942397796188766687729475351341707446965633867858251902832497810368729384177184561283600044084275215914930438606714962697218996122534429368405799759457822926407275050184912333152084436345536968863351400061677968368320549648873975925623818421292457216535408544074879419921715778869423194100278464702039760102281004816341563178904686595029317764717260254078618732740215866356126646468202055631341329487234287391634716226187104432114332750540426708866056788181306673341886974360736022360373065208796470112972771073482536971775264070351920555122831041568168958557523840016223511122389209758665727759171313150027257206696434762396526496779274978009356808165393696059334457712444091642972715229664001879822504081528514602511166501269132740106621165366419009027266618775994667668293219478296132355977668692061355645816295589946896495573648550494122032200708376552519801469255097490862839195120514683319611488520149855633390056239646530367582215703405688692820534876343600321054865247178915704964824349064094749268464747733773765633496207576601045723224793749818143916218054271276803768087088229782204643323413534979124327614113461650716856420743710714794765343932559007440481573937016523831957774129685296653042791001358759410768445477818606979048532968430177521914288253962747552219092452797278560703853020034822564733333514074300534409384104326077180559620818567438535030408932549366412636840034683240223737133342472227477808220412255233813387429887473068128222088269150931646412822747270400383044380591346180372645179808645792071519071263675371696216226597450968743352093841633154725884707466457858936750152645836504218001850960170069659151598433392190635944423041018888095827317581356874995201779506940642296308390991200034782889350008473848157669718884272458196533573633928623774178121702096705555634572705024379520723395380087032226129325883298088375290933068775936699274730432481154818438093539252653778223358074934847227561334058649495317780547954568631021373673628662634469995103949423903321793726437658297018145513372946909819184047443096792281621586109771448190457974394756565932168117631742901919255661249240318667387180818817517681192923494406479961735394999895097548496201818994342313798317540309345973845925284321627120564894200696569848984182701705887029235753810398296471548486366647286536432314574821939237539604334318994327687542812257878125503199110899879378772207565005322993629516652361950069834166801320339779561835473701562146043306513801305037393093515811071181207627507220589240985766623786947102254943355327741996658932429515379213575024805575168361634822923257348866468487783863574038836098827209212387518338998195005027271485054031110186870093496068057618310158080322149729561247336351487927804149936226704169298470589291704284328021958357418698055445408810124252018783121015594635729534052266783203622741373183101525855659840818504525564659859239020331369251243959459196447565245317631001908324813664452201142179184644014406027910426093245327867798411078312507124553378212390439823060450539269960897656737596231968261704711713664103260899653070959959543187689663671282092751117916513434064197433700386706686189119393489437064410970398452081618986739785547877690281108204816512559001538210988218528197329208588074693635309369682026027859132102056234532254448819183180437999237821960145261629662224752970287921914508993262900693766165755653333665677067964036305752671861911476262313792159590506906554293081398317261561417487364886315280959189633151400022302269970911151023290862754859165535715988552280148266756598045190812571619207704659731125170516548665235683579357137961229660643418182075308776021038183898603301858297323146836245582831106785970658860423992944980413650443330134199940966711276560959508598828325512174586311759390661657579204513846996780208082618594546343764130199984567560805665900509731758441826260681304269026643398188372195880769285961777082305599369126952627375797602708264817201469519684700385867322733246866305708774238366144530853360860955263716188924846942988518287259395502304891528505686132522323301867129284565201176428212211245654639428089196655791393736249237320142047986269804936741029357652802525709397606546708327581404584526440458412280301004835011720623229779107858451205836584277164716237377684459890834154614218606876966820805631356210963757911463542188885553167320407869390355860949742661635011708228331277723630952918770841094446766692544965134541188895553326869503327172052412332860570234698720187863506530427144533469607946928144189533963533723962080951386206974601401467636875793987621026235396307818244917852632409152799535786373534906099260204398844097355098967249658973793135631554878138528382580418481996230973590008622873312960097426252756082310350743861381618689173464365447927579653564443213447297117987633052639640273168656933019765829215606466893217210803411041102830524050909162999407458906482355064227552226670464353530712677917730624407880700438236216757094753187483758328647273516596708970471700519819582197600396866568115689621978507757353478528130708366857999877868631904778876202382083968542174314778504884367708109935625348060606038664875496880414220038432200588626749968207209762417376821553236314410223057344657437545328246577377864087939074848740701815573740067401735373370797134752746045402492995955485280216993851564508055396454886455391204842915224548920888468277912006472744003721140232883895121895927196799002387585376282360448052676751815270692250865113789184616424985088514527865026408473172348893649107432883972726852785766679891285777055134327563441455283749311509476779482886109822657583087345912678383575612743362099204473146895194689499653334168570428231180061365543565865919329497568610292145854448055170012948641191671138941844296188087519439799681562252763360171326658568837263466653913391189464115190799465302745702426587199670356917248273498610723884441279975640445805671704646299029900228604941096136866082722575834011045013244695816042606259911837837289654149952373898488678019067273140826432106305076169608363236182481537312819306987616714770890060958905515653840435377541235741107172830952085902822965643687565270748713742688952615262098043595196435411375047106307134637245660159451602255075047509002390681004794364377561655916006829229557241754651422596578751828425520208144938884415572217607338546452177320540123121434039496405819192351655806393160135469267836485436429240932740245836794763656086705521128094596401379165026659472099912719257525126552686180145757131733421399448775678060885829052269711754170917580843756464963869641010061438589932937250521198669184402511641010678905102793266276818456428130413362819201733312139698497396026261431051718640086379126195800528450522683229914483030409217917361560519117889356569319712340397363595012041061256212549095339660899231662919024960390522170199471540201919565434220294591203928777772112836124724514825890030720746518004432054042286528059754980402175928789897249528649869746188037235891968728581687939536796940630259040398767810504910949004280974616698132184165243560433695988428850745861662922263206524921713257799751236132992911638688657781930466203840426523899653443786048961398351371437655963242737765603975221599329267187696425324653067519855531491744909758305131681988493624433254410169695682943422556364862046171385216216570507289752941658411011418516265212418198809136737732405083429013880784596277279672930037091646418399209765941313735737830849092587226387511828139677499014980505048295206299331854200091103572354849255367442749782646904367025946326739263173814900478386059243954568270626051229117910976697748834478647529612747804911965461696484060813537837605956036308229873372373794728716317776489630494853184134519674095491902651127930118332205162566368026208827794476197692155264749501968253069399951698611219431888026699590026529195165706968105850001011057011799895106716159250339775858244653646777128521203169994708053751467635085740532779786520950271725912960762527681078312302606299057570262051120383636422207460606122231361343059699902713020464810444175103579212075265876116783061686130656568016189416857642582740447863065734625105648964145326886159739172688926134575816303982731772590770559173286641779613661456475396381696992642844868844317150042331541409595815270579907990496248118635587021370098675203680013883581683739235737509028967237089165272436285952491717333889775713514386318704741372320562886113686650346215125757560082854976315368494676903609959430798976660704966785581603074249170209504412084683601605050235242365237362437638752221268548092673784957212095367752874608369112429842877477407583153153479856445428108024414173864031064252680496604945567567690942746653583703480095257411236179333559529802713621694474986749077909825838343666733455823420020448034382048370944218043568028477932593787015384230425065569909618784832654338343453259896697775786752709726656383482844519637895244028464388273520869454305074402795271641833797189307459412990414179315739729604346849900849120945839081076667246604307974572787230085680448975311666300755745556740894932158378891529442660053510377907593627457818525737523931930146625021563100077713341884277880275311606073180795412710177023256453888549125271484381047543368164255939432677860727071164573546251646996757417491096182980249160189629938293768365402515219700730249712436852308675080585474529639992086107015213731799370857778839091171098996575100053221959315039601619099657711969654449157988678749904732200873824537436084294865554243055962833701138825309401346346465303393592649628878173247901787055152424567711522907638648103448779704320068897510331365104945622747816833280421371777290083479510273250827021457375227252692427654292375361929144996185794047361932272648885489610656850753753804270107929922797608633847174401595899713663650424868280024084291675377028817878737113074169074032504223167323854569136421877891436987342004146470133285970178575144857757564291178252411933400001316049544832702721948002396787415027064091205239433050208321808878395568400213124292481146631511418553554561130047899415665316467588851397388578695364036347569525908717578937269292887184416878069503158342630141417172923668292641552609601078066893899631430814405119853573146086544837330643607478760353853690017276744820554605765337821662576194654487970143476677230973818412697704483502081480494075413272330098819410625463027541736117138372960753035730561776784272087003632294893573274046962421183801301887250955231093581468824828247201286079539217768652917402525085284505900707186665917770852875518677504522119272860304439836199467182867086246611293539612157300008931586045220998594000337794816500885808989543894869431145794627969503041808805423149663449765984375974959753778715172503558884229836008645061126206790905444626818409671692897227706094399027708050882937971557595783178815087257111739136838850037401639135830303957468597821760669550964082214341228789047629278751628865485966896460416565701621347832226280097262641408710275787743365883801628191529490921406026259505380333228719301398889724803378930476638827641948500650523655827956551344064976874331298645571353301620028245208405278363643400721793104197538333162138866769581291598073723254478917689570017276287938628182502265668054159208191988822033298463892163935216811882342712218723213865816355634100632301914319069624411074699804672385024811850440087404641289471722158554152281570168433179919792630143879583094514518896993537117455664103484057758578409587354113448557826329857348655067263923734533744602126534340894617973870193200639586831645952150641873835488168846493756193672828665875119391853513078883930350595015122403156164340936229099985124382755542820014308331231555986679997764397026827336114042192887768987241961671432636388636775858203802633252176982097433755856366427888663160203086791475559134260033059169892938444485829529686358220119257797593508673688619752007139171240843036082186416590929015627654494799273712902486267683874936494240903453771645959431307434861145867695973494527511137267189370684453946517186244800574691457590874494892146525308983043463714070742511427806995072570773308424429697147300678494580631460088772104541322490269585027400715551913077568161482220861615373306866123041154155482193394317095978904077609849271290279653211308260703204932619823593506536565610240428734199183365719185678249727032613249215774619157970478672503968456165222873686269321728711926862100120952020871771505825859627349736538119032487895584537208943632883257546661020232018437109459977943763374425855892355793491338647912927728908313184799048108149134338852451355235507177777556586994918619478230183343017112733205540239413438341060311826525692015690516030115726396972467034598566810281722369978326406507818658904289317661914824338522063748684933651439352006285263931938999122861251109466448406258848896542202631272159227474523874000775325064600509287671943274163870013962699902241326945089505850217541509970807052458686880342021359772060606849627964992226020157295664303822756979059643983655865137819504153507349966195768852937534042076578922007327848001943337100066210930871299357806390513647595454068875496556950577363535654195878213666509625585613160253029861575844697211415661043877991538845583619681862725443821634293597119697836619737776089993729333911731933905186551510478441406500081324171261610274620646933092510239197546115695082064348276785227592840429908022905085443162764321985728673397573642308828019030019895445157244132073245658817032005830794247291862690240314509308132311765958672555633625824236561700724491687360885419808652487094585021923837083773937462748448383668537648248067914166171442775759793946492086714226738783869584337459589433141654847677782457314119151675717189794946071098938406775305822211250040013937467599784263823799030910518034453511563809003609318596401097854322695506859360449363256115756725633802335430862632633291157760325398870504668362730827408402405037624135100020347815201405189122168452970738189375812253885740495371287031137785783117327991863773290132700594450328635803113854154021419586385491744803820632072888085021237291084966247854154487183160199556451136739112746326644779845378505928913604158114665386124727385388910696762425876681885224440195317311402465976092541372173473657223422314803024972108777334363842102140394490278551073784680159526392174310441377433697178371960224426968965905897043811702002247928885848583949003917756211888994235764865976292440754008821085688070719774213989545853742927019437952973357081480482302271684355001145810145881566595136111417106879146203515676266810406631386605363187380092805291413559745747511665532636614247467499308618834708122209101033713742730309982155546228787578806712222132927468803385894570415026186343251257186315521329552813433497598489295512898567534640678578307188492140376442973450740696019838192642832734353468818774841282239598162305069562278326867199553646438545969840623262021423965995278643527723015218721461586268309753574628406219805757138420918701959044860261037356389236660353672251780138297635113419218335354082003563408894754649535945369868461586778242799514026206652893105997289578623418387024634860960017110124789160202166848843463091398777537421159927146586365587461755834277828587381508088292126150386826545410026019821451994998117160761680032781962035334029033154055278323606320729717621391571053412706944020368256245071555672766260121022103026314276839198376182706171160411806913010692632692120530540487379087924116223082661706361146668117883991520255727712366954619247322563845914778244436306110255091350666176108721255336126921242188033149757388432978630415319833093568660172345447441874594232614872037030996351090317262879571153153287083291415012878003174755201306701231809999604169993219903899144381569437739978671131931286463786643707756138542170527350532920789938808211579972624010057393897451786144936127846054551905660799696341558978709956452298189396227155531068166619376756362524677635055199602066956993009902600433933421336962666344494466538612322617293026929041496854660931386562265181411637628059198034413301574778068218458513074624445631844644242259674573064011955993006681545346791011125440722120509493291268818110407394881923546654133584436662287483829316688718730521461299738817189515060932880396455649031223432238367559647851081122934340514826543438781283139145103738045283975299948165910868959704005965722002142557450632244120205413594317897701469942414363853159860551147755885436131565503205401188497424353669725859485776830438599635717087941284387270197026853706392546597848132926334269334726688874778266613079221370396054719532027909064204490768419202212213471321296464604525823777517202404085458833814020757946618671465844678840545434094913099747347051928538815620934169850940863894562493751387130393561310591428254061167146994617436218209948625222698815516229952861753825276226038238752201781335581440423073836794997681697068877408740075898031359029699043648554482929827444043736219048808486887564194083929605418623817433723630023013393440594540210032799135986248067309000188905924265470521167449112748085361907330480761993714808631199812661402951848200450445596962503577898305690900318673887307960757275113310338510525356096482351713797742930200133388682548580596627958851040661979774507583392514669526356932285228829290112542566744415227813370583640738818666738337066131580333435524636915685615051204122729145405359145952527054218553322073392923653232050400045073891414022333824820491090934125408800297410352223996990223410196342145054057292786526937658772762859288300267131801704824194630710837600345022095899562529235503355407907932438705926112628543785859817214353148121129642620004574312737085073591489045170842374617839517301120696409733622233469723212297528666445427837492910065225925236165741486250415902318136815822814472879918746945030475250424035150513153280824336701581188786572333703165260900171372190452829449270926663202093711477201572406415849676935804929177597176559863799088511004408424978935614721206933368603377048194306934107361907450998247203623694752967138910996254208712470936155785166535303243338853273294030097714768733685421869615006080148043866932492329148899300252890838398355617799424034750494335849616876651371436505903439725164369282557738603055023157172927637952811026650073766264700107840161345113103408086286865509845474165391025845523294970914648894331901288173561986877333349646241950235753321764787997119199535618619380237300805416095587705834586788894245634375874586502239708270381471265240665246842465321023251513662924621453917137128669439274245643042669708822162543819954101309360455328945984528628804063367769356743917824452325013629914638698229541353694948654932786887064612947909426336060298818218220533044085733085172561861454942658140313131259956636473693392452620671298113682277160593161612628924710286476063469679456378151405144313055477785567341733879575263742933500135516504846115219902385076742431120357264890856683108306552593450918824872773053054016776266162918138335889569722544865885322557769795387862004520030022675996404193499351469808146865319000360710707073077567149056935400825836389641513568760824695380100588126749171741012707247024676604745211111165488346623139686756564829959773980492112179654193042082976336686858674948244861677477027076427698776925100393506127910818978370187971389972164232100995682559485771650266929280028982591917597600064471161170793478530470985016277584488408280842451193967337404576654418583446720904214747939035817831353914094844770747296618367254976141981716720800323972583349291669695873437337375808529647608728153693950433722168747533808647359432247425509965912061546211945996206758550019857692602802036580992156518788886938219932710811347094487026668987253444526951828426217119188914667535132005334459288971793072830448916950269389828407832755768576588253061904241812748183050853623248710875824699722488511035557979977088034244096261571011239678611929861757492695013412870126401071655886816510282445678570670303403584114900134936533236160301567084095630891483581192753815211521371692257280330745626591300092082008815765171988636081632771786536175897333480306986944159800048586213023649061956059925741015645702437673396353180510992673909442378180770975082176783449404419072052167710613248075992013175156816463721024024591093861839627280382951986335552355848370274520974010133967230384840426532074863179949854980543949791701332023884678458220304378734274411406818057501350716647737391427970685705250295299044155334130337318429666075228201537927867584572739770186554098708898483491967995476298484730052683989642193329418326181389040327958213553709974637417443847482132735684265426204355830948558849820271112694250982695068042966383136380792942328680478998619748805853719971383593774409318254147489161381598299845390160933295350952334778169021201029432781151523736401497891783428873105960997915324606586828903675869508310417674065317129396999191914117971819229835113363137483922759974824060012523167118857551012860004710752517798019555143472161502110837670684115695777661757479399530641935199965910932196318320155415966069542656571243284145005360711116395943214333064097597721773481801833806321621803181563149067305055528748584455267021080139971573438878144962465984211082752430892020372443862895492686216889383963778383576687954583230948971641514939324508495079994437205186081884642390391095938818195215903777554755951548580261216970301018771839207593761101404095353345788153426197248767450737734996833556016615468757301384797126924957784471532520168833361148922773288828432707354370853040243983792459184657928825382285603042491501161139484003025945267097395641205666675136821611746596013273953672328760873281264027976909807318630180202133159139273979820857503783336350221832959818613396913420616311944949239421650330633780131092161301329893166306495430908191763845367525301895110774430900591672391316568379859641486857285366622292033452788665841829457777217829572545598574262613744854666851539605338225260777468709904525941239988018419635918323861312980599358531700786741435554245014883798328274986865399559012681737047400321784593455703096469477237566821807885753753968016271716543308635413713451212533366600726087798838604178446094520716786489154134382312311603719845205177953373183152117883905885706218489153856836374064239882221354255321232376190070487846083183100077319269026023472405339077966298563851850247804837777177231166255907376842470580530709287132132554421277228443338628258260507925791088244461861238754305997082279653020417214945470364192167731321820888592773674674045739144378686406749974662283319232229611554052240569095727056699433348361166999533917545389838324463769384727553139167973671317780211714393548724452713674120788147312649550348176369334761126121943371711844321467554668381750005334094289297477243843417577718627097401045633221157413357028765617905116380835891691006757102632125858609143413521285750052792067334347989263753641387794084572589518037589430526584412932451529619863171365077476712389265187619193916533021408531305178019925925521634257189578352811361739527424260246869843492935172306974447856500625845237689966667086016407753098179802438437320400140726080168721070425332725902611028259388043298492812715348118327782293454243073370561426240083709644694841003793527715021315997003705430527166597496492710310575532971744492582136912029199205340186939627954300653693313339312003562425015128150295698717131760524529938452251189297534158704637426506869747232842583664327883108445944056614410174265463328008115939178528070919589739638540246410675918894701382999916139110079716962867750716299141046200225936129186580321144225056299820384268682228569001437752347540408985437980850562230033826630467809468736200101195613800168087887756570000203565009293108399705209085188167884228648485722812678817273995293710393947685246135101552831485931345448831630924567837310122494451975587885927310201507935432243948942212560856974652475222210599628539373129921654917253895173622389503898973042659908543335545270705152562905189190729649929306903715729923859665857312343952809753417481144840302268439497535631726637890947902356673427562861850231790012199050162360006350159530947510582626227898479741012090451595660048498652137418888773703088489928063364827342435251355653505761550790404074777474542688972191243779426002944248554224506955557180319184383931002406869618037277279342799993906209630702764865443657316780999092497078281739821595102715574028632769942161712812030616093284477397031112666384342992898591758674397043186718116666664273319300649343910188911552720864203736848939712574394028575952894370025972155169385928177719288133934496703281097220288025902470204484196294909653711154057298269180255737016432249368887664599430899153774042482382189320128070723048402626305456383036139714061399718588883113589012675571360969632777897553843509222463240806995476948542620252933015157384550892650050373981690473265970868789832384831726322915997081116697324757588324602251205309799309807581445657793381616121872652128604819177651525807665636454697774580753301321649073694727064038127671449209121928521894233731592266596744701575438611849286331553573499593718779578262835845590757985568846971189552331328396065815513438857374444151394853069774689062707765458358304271211282365103555588477707785552652383735690421246706679922467258414607078266293833732684732525415360661433569730682508067557706955822366755450977976901614893025436752810061706589837966959494479717041121612667541725370206818905189083046157479771690813378305139913528600456829577488088090664796784301804580440099914772206940941418562229654450264300890434229584799324200049039452999284346014191727291390860407667964404466491928073705785430194297027206771260294404442858204189787721335585951814890770501480752436227020730570277063270663504966892779092943857256673016454013679958256019589756165505319568309079888524641004672732473551781065300188842197676312559910141610237249400455751736894896447310360670687066582860187150274837147784923118384345789719218791841776302023100729588714712799094547033880862356627693040423800706659537914338139717296578231940131292594071341363563974982592490184417691902957717613044909205077636984670522473827000693772529920802729859388635114739755639610198541359616543424793040259322297672237257883103207190722359220690177008849839215486021566187266932309374188739848832605113419382904590241384948581880772675200707159120492679329725229553998267912665210171985557765294436061969814768153522379273834215696971679424739107894308779909644837579762202427365704955663107896599174080629470035924745478687627570416610419606884757616214345498241138281785409972427457870632370327528560361395840610618514000732937194679728227675748949433251345256355636800809304568602799949759114243326503316457714479107722982822565488226397206498000859414012309670416332209181414161448095387830846025346886896627020042225486189858017502625577327896773205008557338956368799137809063295370935057060164278995498798011428458898544972136424346177472943771605076038286639464087122684264503136103390431289225735505085385068777015454489310382226466862986957345290455876156531422209267254847207711305511231544430220911417138077564610216835861228473443966923929982590521661631945383390180180144860093933958060241543346065001693666662709288213737472250135767110149044626368552537454761572472981950261424174024069045899219150957118001673146924474573855733844560932237263365237609652112735255146576763421432324079918763653139387522433217273339245132792757709108608092573141286853354538187279432453049212916258660473665365264173041170838057797787101530754285232581700910295286730741048522456398959767647468592257623049970912389743993490652317176243647311398922229844980724258447619474237383005497946481812267727930711248851355312554262155145384545893550137596742143844216497807520116047679638896375787898075840006007216296043137857927158979027644297094222735216462280595126673038367006810449722886196395525536794087446525067964563017306959590502785553206697500119791091486135392119371123641289663396486333868735925006687170753043533129549417885767967912752375445812896538113564192184388790819737322976963142254561020983847264526823013707672769942629150011513536285371345906888753041462298378635568767408072358265189098109417007355394119342354212239289771266761903551283945030913980613431616026818256357602611188760196885868751454069134881641853151726296907666647302008658948912830423774224439642918059178581518504917289785199283275955114244298031336659329327183865658231088273140188190261609129829252174984788370389111864316932510480674880898406139985712007733468384587781548289505353858148979295876031967766270833156340754369284001278093205491545548406613720925024072031586499176837853805747515100555690147294510889994849240387596270854675688165075314422718906504734008599632374477776869572326101872632151134932489382624829707089028294086660800677476556054829870611550849224476409274217884205907732637160146866943666300901021782261338599645814009452169728014748597738635681573841617984287284899602297881047650304261338608936406175677121934677042043191751399484195803369532656068901638341906991973495955056467124634595342944487812597393313106498893310697146656290038528454821449372076365645066435145475996572279105233434681161217991253433103701656983522546009467267806812354785230409850124347706959129965581062835193507447484097881105913477577929245408012671517277329154728538160052155811974094808010264636381684047212624478796185211029912877326554211970085457990381896458959480201434087847971645417039596256110049331530226842597463013895437610566102313728785844104690948234192748286829748657690405047002551051524524909595453090072975245781422286313255049045707317888237283166506963611473710383340798049086293071539370728209281897548225762788635137763895419407912752803319705259005445947958852402196330633443093769454526350069915756421126254772520703295488347027874046370741030791572659312501199398440682939032196777495183842231254963452989516759277742650618202263185716641272747772191592491172625904866895365975837037222813723652728911956146350626878582798830390086685549373430078781921173053666576534057027867848464574503442046527788953990972498320453949342357997284927393807185595915173227832183508413563771450711665404421706736471061438445933168289426531959545628434565192335935626997769705669543814215227464116825866767391993948875066852981044962377698899848255493464207870238728677806017258956153067140531877864070597201218576405350251044654346350312161897850506200813663347846904471721831888049169733015357904855656596137152178898399628640244520238859798959488344694322073864078247936997941297707243866191992352656925543723547483194372688907843195332484666015053435619310739397982218819282009710721922406546732175927637328124783804952153688398034281697698488130635653562589388710338900860476544800963219593311666708004165879443147855207436950788752951674046652336225606066340940290868398290050680789674084220837807187049451856170101140736852710308044006665977480306376203857334557440418255021729065776650533785756729669804974447175385664089680013794635701782027065131321861740610433500048693604142667850369482947588608898264934907573596111702474911441468341331244143126175434132457724495764904016617377966825910703952239964456004377809554849139198920613157503518009905629831995604150472329040343000228321312442611177576938638519443493469596659728702863286331403859987537398679082422815535309663829819861057003318891206321671905928819079978260691865131309020516293667858281471103221572538580914280649534549795509309421510982893406244065477370976214184734252785104066644043027937958181305891502816470980142862444693523094570904323310093664531806813558228510404727052285630711748775605689033053707561779999859171296488484882031920315637643060796430267939848923471952024931329954161838817173562875001941190298514523944268846467114365093421514386547930524401053175133073166072580404416540479277350822017072331070679732496797239768324001394627640300124773994857947656880138878645781896326686628516007757701131158628475318641310393332643035191164400762822723079496093661304209912443323427605766984047513548225956858051631692415310808678127767304261535121842850708988530794623395013234078363085525620119760353184488812987538396125207946108739627934403168894977352416087585387937848260578062769822373294071895331794994583601788588206449653969144072757551269161293303809204569858120001984802325485858055263487332441275761542991671343176284056620221045382586049001717618579274572813170530056837301220217988084417571162495820068378195800386162993695705148847915046659350655158401019000951276486868599360046887438348059417675437755060288340765002105691240070669244748601153473813980370444499827616899043345962365647579496932713642717735959925975725619269963240851556006354230041467046949421557054895552568925205030523386969182200292678238490055335364155180782508837616963209242364453910880636485433844760591935451995164808277222720520085668999143960618049860624894794644518858234682803223722880945332753172302244614137495217640951201180840652283746334980450845778734434592301396359816455773815349956200330802689923094451070855744940366002579937573794102996501680735065394481869589949377811277790205120283375561324909557707844604406269768421605255451067168079971352882172642947427527117891936341602860912214414147939704187513711441900837513259583534103617302683433198252308608162434554681426716208623634380038611284087841416248872774931617784952673060959415979733060529955283099766400570066141906650289693694016379935470601339473637599500105446272264903290942689348813849247257784165523756072127513667160228701243747650737167589579826279540951839366642584171079102368692108496665899290392993501293715597474414646103473841489396331866180466167519780728105993232155074603534906060332117139774217240124452482634556513969641445663700164749667358120225091548162173727907420789844665089291830239869013070023990429995893660768885524080010542949467433554114466370961229740845601602059346061766302225342461213316262764995563718919994515860272080916805585867573541430079839186940602680218714819906639193839300407793734808914157476702117270748486809871255710725357926362388113359369141876613740452943211941396342401598259176240596996636843611294769251929590842480336251099527696510480130862274011527228581603012406343022962971280029277713760042750393805318561594424726865859651917123554483284397684965678697914105871095823285655553503735922311190810537337725252969615037612707052241105773242831756424004153176283967446271713589466725236090153789580255631431526030124672947507488661850379727345790130207700437500110711473206328853765484629482353504096572548818416510335119321908012551661843007357621043954292988186490271867353180389228116989199544512590449777669786568205481502643295620161901018385966873756027658279245734817138628309745380979448524118061756292537681231231982074029683033061982649535690343342114045619942863368605632101965063268129715965075728240206675957406421183421687645201855445059322979858788018473783101919420188004039173949583579341318675004491356652807048412926055165437741294823922392208002941657716611005032878006138932022792431162740933997110784613208150351520518094358058638699241319555815671943699989229253042284366895968884101684355009034642875110847274995826966351712741018717740971626033366857301211051065740650861977582136682550625257446223592559741766817788269608249154986592249836203007834590746288556709943494949536498259682023252800851254775538842330645177365483755546209031172235606757475687539611400680895506825100158018498758140309591412110764405723327176294245581150503351501006549467886582888544562833572877156647706300335078962798314332223815813040761313162643508881094024030593244259885155642268581131490987793892715202434772942590803862018388769639183370826227765813057742195079504763460786931715565733586413476494550830950167813031467879169678709377470628594012038292158608243842566724732328160401296713843454442376382606327501672992831685263871604624325365184991041992516982060290425031705985368231603792915636733911560393090330042342107832830186179792107682642370639722431195030800737729523174579193183339885340210934098534779898202592453331457829038439821464864544372990524604135726076998054629602691795999003938183012482986509053959701838673179925072681101158925380358689757484153834446490663547686633778602281685865136787347721666473596528295696988269412664411277444603700783432845761331429453762149674727006611268859463447942854457344117916300601768755825170545660625113112966709473360589494871707599455214314035193895422269135212299064032232146588429103790504198777390648107856383075679951024346176902040665525482080510014027010643493616921953266552424839380086357093633599437474346120271194646185469126739719012649398979820447192530723955654139339515689272696210578648611666059603286605244007067577388973205385859307600732138688157947583711852113571547787330169878398487088118117703217125283321778588955881181681271026318152729020504464147428909931719841341481321525278062771794727558127895445259451059814702727805544550548840382784238206267356579818596886831352427585496332124838444485248220641747828834933433781955281620658126392996918681778822193362665521972589093799102430581961634114645080540140746053571981932804479577543247925061927399595800607070118044406789320833273576233857695734314539823117361684599293396738068458300784350238678611462592450106671499818824299033241403479126515976349003807793345433369017072212462122861771909040644473971573026084984379905647230205186775308155717260721170735409528300733530490800180703674624791541495699764425569082100028078255979179690331096601463305655291703628156518036074521776655752031060098379532338447172412073240256186559736213848973099540138833549164534105576840014769797293720832215279171227479978640359331281763826720492923749815056310302616256944659355806467160117527637951108779647915878878919278291157998217212347679363134764717991784120129866600995120114528815876847134628665431296233001353744127191587695586848889800030858194397755766064075346571913682565958011557654325263553246881705352308976926575722827289365011894280205519210976815580558260234112802886004706923061666483101669395438548444191064902213862046109870275196548032691265968650510846297833267829619826051786924010294547634050025848313121333080356629929440658786200013839168159633431881238705672602438505078280417397430744946528669630708666078544172226374843343751429045970858826145583780291458015441409313104439857004960940264414432320224062017317601314877454983146780387586751300374751399984493544016408089612874386247003469542657659471790423583156516938198789070917711155068058465401784573337026218729503400630954832204683446534783498728168690958466745613656578475870146055504917527021816037547585435680245304144709693780139976124220165751768358825442887310972755610184715520613450976859674743325186122650855049077876477609432570203921000025720952292915352611026549871801643610155917515881358252784844614582350755010093362881056520776869373569492181251772474468249006862294366608869682392651756875565718876463210038965276168571338277597167974283735516835140433360971948487145341163353296936110872882097266349385961067650333124493663210481037517421373277325294782937793788632897266964811943036200433172702933422167463857747753559092085768604271810029605069728455042860945009729068949321195334371366594931564136767867753481293335672732068875452276520535907539640485545388857861815423035155572453855487811305452939197661602669083986418546801146105418196660310389285261954973774566612175690831256405556184045619092157307029754443161162183560933408036671610809936260974107404820288099094322326864725470726243525959415988467528059490169991966415017650111178907397646355776727575182667034792296287142484861855028908196324663735659654707174410275319044532875870749584422398655107442567603744243414518566665747986610869537322603768971264096288451435503606279681851521342359116192651507615741384828636000332288088453890525621495416809020476068491286100434700856628142487514298213079292115597804504373960350036052567790410024678633231391416661006496389341389824324092102634128468535077656913741537244214079874442703803766402532779587233414488574771875498189486501046205799474126840677697894402908008110565439814263139460682542808692739651818316003120190986401701088978746555431396585942301090791038561895663070652636378228578724762855958917035589597875098210152749887875882176618114035534805319525897769638467883251141160534715257740925621094296334584122514040745818052265282843776455332178318770054798060771625715625164790180275101853751219626779176243994345232682970643561350534847496511925501823524220418047279929061967127035084998484211404469591916855115751136032751492283260569118575409751201537058408611892408461857956703661472988498505685559719136156645000995941333607040639272317340147080688669603912308911460023758746221470282566352380777324772672962620640042881950818781586443124493725741294011761841883221303568503015222081301377178814978005975952385487059067068828125763126285475321587433108828077008163254643476365431623395035499754123844847599853500563510481174079242461584265086546901877700381296428850826017875097414357419684363115853588658031425558533986803156626924732560569854991918517341562262137362368552837953290953802631817343528866081711253646921711013977960223870703053209091078140373434852462773778519538119371925268010805015977284807407740280119984893730653948392633185069007071458832219568948728878266578367362253403359312531145947785916831021019351067010129234046172102444325761273258435164159073438638097947045658960315093249229164076002658425229057521885063507776367383765784938114482532457836248230120037030245593257879177612352694882540994800432499471601886287262039795086761690233977577289525321849012599744260541669409288176909288821362885852621297696578160103291432186690064384675195402451037389233954626457717103538406149957978343887910107243058703578350942887109169815000903167210150075323906990721409171374154483141198493791160101787327529985554752567711139958476592800254938084191236712327216889121817364167589828615760593456706607557976239649997136074502435596324207587774731888987787064543038623166331963772002381239699651108552924586100484228648040624552486284365303736783455295405376628929801661346726473520930519597185303152491541967567435326230816024848333754536835383821508069689098856807095082165872887806177542916177550290740245936678486194347250783530488619178614996183462489919427173898428555800255860951547373957585613957711967437347931413324936464061004414091684386358007410802368652048125441013515526187736098251854266882665149523342535964753679649712156016686429448174516496094146123478255254306779378607551297258039555808556227597083859968005554901456739602059730838815729150351526809639308802204868075024870937665835441919261137418756025126755431058911527262831443815045981309444754365621724572776629880106252711723850690938148810888660569427681347356716280468916522356164008935418226967252943174708652352883516049896045892928586068894975552306026095672685363700670773357698630315046676660090224692813307787352993779995484297182905483441213956426173430028030062050569175780691776373239783980954465240463555119450148534158861333622454301030374889839995781757014061764134077783906227082195322939346103948112008820035311091260481483640846692738061347361258922782689388336458891632139145356348882348380666140594185523360637093517386124663784385805443550472893316747479983991840106345084129904637506288789700661886201220532200029001912163224078979632731460803213120384542365805364468029221965752766537679727431149341988069019454151366848678931625259529312739080573985052848649111375119061566944627032125357232557259772600812648446327642341126692437717006582553523994026937235564467840364228712232066612042727620993419887129783826515318865189003411277088171938776657114674839615758765369800348941474210619656645207938133587956786587660114534494651293842481444156567808190287262141095084926228517717143847172895481866650443246115400719965597074124615319603925255942661889939970529538691506433474481199782017361472759096301677934269614723219139497547385405812848095194709924197022707088665056860272702150040500021630851778636339811227983349499332277497453980514871223904214451970549115455197862946698575393879255035202264020923803549918233186397994865292864020091803740290309786959415394409646936480963118835108145328971509237236939567650061305961885078730554266917179993370288046920029502888195982117469015928492520371311106301434377305084588213657077477864829933369952201218213489927952472700722413463718699593236644351398767898259281432970662757811142284185197152044395937918378546608782074260557739215159732893750587703301983717761755973123540947868619672074234055725677840228513448461701295831388799886624470019782574510380507789749661456199394135649809693748899229121247166798200271592032785195944255218036286178796844578143103946280425861572450108207811003454929373236506864124950119098986355870953099806243850876535869192497062962090907006266846152384404329868575336149573376560919011992126250428279810303896863543206615433520003905491389370037541420951926539863015780976548894917653235123106756596601912684183872011736631312724643921215182102626165187671868868123995049529739714283361964775903889055493186012817438187624493778967904054785686744118826247157273486356377274820828459975953439784436947058863989159563875701351033439831577946538294157328919465215996386332729197207937928398940147402318279554339029624944677197109317553857513879381554749249197156600554965676077367521590983407389604909664897164019859907638308642812947186242831912294853805735586679438457316829942691031740547625853909174553987700240356091173762513733250110833360574663363533529366161729113718575245009603981474563980990295090779043201292359876314590854987878451017276490848531587876909141848116005132070178404255254676851620315446372931429812728153930836102825499720186061857357112732960853464567936740511279894262538882039055244275964572321823021533821464266409484789695867411946780562986366065249705016399063209868345431614042473685314151788213548591007140444437070015406349909231507071344498651113468369399773266067664536171867370934094175253830608408070887181276562271574841708496830800959602187883980704885642856305656031920182234988729512872834294702857090253602455986534877571533587234916546015463613617643842524889385548245343321362237526092598145288004591264863652154136130295907833105738049255076681319017725954350451390764031424136040142325683498794578166609365928086992115786607775134913351666067448328806856716715054373604976988478284259300995899638581668867499118267565570040108312818927519374506696354248762505915700526068169049295884927133554414541038215837216746984206845466923718941745846779634561591165420974214639684789507974143085488372587427904767469718809542150710832925493747570603935065593554464849368987466639125757679617614677685151329165365036498493969582193635990639744141125359897013939796783053661948792379407260285927278160364056282010668691374028057275998887552329419921193653492587365023663647259094480077032437944464596546254051304095146313903400439482835295268167321703858387944736522720488738375891600441225367655694501048560759472643247108140874380876320882381509072863925305597157903158688663421047331583515076795112517018820782075921557140235868905364897085644639184775924933493467297191351640959894579188827646287690634683897533462224035001375929915273006761190167954741770909910432489450942858064929085978913430663213912456036018005344960992436414054888200060048589391398505432935120936683248492567198015331768514473238651406727559321852090292267380062665810890265134170382771951553838603369714043852899115618131011958283164556192326378891445971784565756183734685660396097473321340744208302000774608770392044628236952419359223195254788824471872457446911902102277493018626886751383333547000551889940046650170513249302459702487633623217781652803576628148032703792538921855892586419700936000119710957213287007964516804491015697982148019910044120872698125157071821603589868244982188877337945293675111494856621531876938404951751897353297702897720128719334199184391541139971787896592242680746633628045874734710810719256389225761356124983218924819211135622357972139884270848660796676001085803115623127338904686821687662509704616259754223275059058684955212600984925421192057576524513097101752025465864220254182082703912068418136109002377989544341747479037926970291104005289443661038707402900152667988048289483101636370087322168390789992533024375567095414235536905830733734052444383748955358910056332325392431803848331759965468066334381898899104831386994484722475014407271847284364249917095886788184079924493252452360172836854982265938168934333532440258233556681370821752745408594465831737030533825537727440369509180998318050237371336688420934877575862416640473550020676003550426357530926642048875651604967450932132406086104794622994950482617602484968038383816998420955880835602240114942373411271718228941134976096167309153138488256449871767483723538948535602088833703078450258293522637601709118777847955241895055689099028463385169515827435434147795222444718214830775598038381374751290458526948956519006223866657478064413575409055985302465879714053798124383399691186571547292708429954409239631130369848779990244448196784920325939604432997304438245533098850355169218388263514905283970569720444676990480044180169276898599271885963030017913557978704564347320301557476346567172969003386736431827844376839208995165847112448094525328320142605288370616677234939472376815847323303486164579960566944124705555188524570976665395047562420156439209720995121674285657163494272166348986149339749173296083771487526156943050047328422066821636742483045517604980103013575311702141392822357608538967083627704535178695506425582105531249549268191757483755138346797090777336719714203043443180787135507538611953060852789343574222100518106110489119040189647553327866236295226133344925873384109569344014479197417884801029559851810693232466047257488863227383106823239482819236095639015112642160703887806703638258141945802535535261826455060081984559826737174565147518316747687493704004809256415621086018084175066340704406326481767041411462458139752264154965096920380634018035784755340457982812401091537767851613504154134268032916231628149792200042906872129088118353806013410248799834687508715318496026056465643724731309584360322790243200511552117840104362622239949207229506012841417780354669079373507910325057091476431344958152120924060937883052053957993387057367702791951691830563137134795373749362308713721588214584308995495820120210181859252875157822579257557756041771644730581875010229947933991792439983986310030438823507232546171169905116931565571214666247337702028331182628188109762880573012599619261059775137279259630645837235421189985278165378520074979357873784659417023737168639619521660670228271444183082353499629374379946221982945666372296174001375073041215062787709713571841251464724301385619741755812118733869664781510713362386968107806898033785384856786655428454101258536384046223782694482510472621195599818488363313780684595717581393336495655795613752978599380381010515475064448378657044243057747052142405707899893471624071482900459386093787035608241324564842164198529593600050559084794141412044656654321337906211096843012475132511416137528523527340913556871564083784535606648599168633811129913916723221438531799837594350720631983329590118194334226806806669839197008178126555775201923754319518282579537177157624379179621222763970801793391054014671449507578520630462283491512818702731738391307665073070822380545997912234696690889759003924847202527660810017591406668649407324418848081945921462908676790834087888514293762328310600327615152790646953767593046141353187630896599068213763040598606096213866114850459964836838695556137289305739404066550189654587206751187074401946572063718548573302353765007162321682971631302385541427901254803038849316936232179798292584294900890656408691904882222876716633821813475430381476446252541722294961156985967025195291230413770871551017003675088724258153741425742272417033808447674500169506748856084035676721275585142916610699079425649085144382883022852116469480189351431091774205262043699118928105793672261400104016142245924368868779579561650817347055812742659285095279554456717187771409487981805260150725923743298883154908972264152727413936422761258461644465432135575447209844999138713669450629885612059709993182540317787624516574696534331413692051223491487991080386424750662355669447124391569250561010764072791157781373999812496719386395740824879429752658189713838628966043040426666099387243403543371260645596218967469702164493917156258274455490990937306760701412610227512888074582155726724268811072055440650138949785789912063924980235533642935038078801705463211338807799182478666621782460483549919722260055706678490011509526086091107002646455017092499549694427393714182493757554508317163927284097554751836682290311673076659533573715496021757149216242309556174454491648385127191885552476546088768711818314692611285722536890396717572463670751976311074726678634342033517993814459366081837852002702573294606903591753240928552958912483737153305938623116088151831979130030336849379278138128595001194933111277132054679936214205443549570172057981773559214085615887696583669772429951153586120128207359625900976011599409627933802560785988014701122701121562623749904365668819912741129594623212037138268652084021457567368173646398940002614984624443040151615888805366830173766430257434023385144001767358544484353253325335367209988608110381368978443966721803870124345308268320461562917857736049612136613171508126176591380944745966104874674345031243628749343782713338028038845271138871567367349971911893986728128755856824041659358740068885969273827756197166268088816656593535905881021355822309974245740489738667491906426986405469081180278654814929508203165240224743448557021950037474121964465989039516017326873327185972915551736166110471445663616651119507611334040676880115912008226103976988570717253434734315748577814645086353685928790487785296057126102412839727322943667973083265074034823802419132238831831970526455972076929053820584376305121462952429568935381649343214683731306559630002550657081612825040875230922063813953561962760324503575117417625057178911540301835118391561948465957229643234900039145333508036657472300171114069837622364084556011974496833118424144538113264195869190200731187765018017610944233778960044652469413755784888386285940098014059017155289773551893390277227439760613266578372300958239632838090836928613575281562953420673283212004263923000191810284075675684474467106719650451539976648007361599809153823439358310525373477428139279016152980850913150310862607370423454221165535677144466991572659736135381953015686676544317704029120642650166443262028756960696722320496632676370093651172392645769193279291195495447288453060559109883092406206100299991033139607374724001544638956204452098622748259866278678980786983688889453792045520980681572176522579068184374277907125374277965683786652129967999950624652358931625163993277694672429746694263639966315725957471316230419025377583565454676101084682827187139071899536604832393008909098779545523365336889449820001162630525669920304431547842108155840097439924601404866560321827159633547579894110942067694209461799842791172854904852937040011969599021211589378027726436109920007667125210295175427354581812169338453180840626707426625955844182422879600446912721874061034232742657932674855932752732143227863818563242895518301231585006927691499180133685650299642574654395370726238857851987292272103480436497025610834647667371380949706409487642045031275693081792373056723360524954283905966464013400758713744562473977505400447247915022446515952788397980030769766287847350798684896304483693301933884286921112806356148322072404643533508933131205739232931731040693630341764843210195686487005920805790677184574621030863736765257619015878046591622931846559507702888546763579670093674818417099080918795773955200757671307932155661836107990646259503360076787568700661018923653591227639654043332382434005212589931380790966729661008856342997663811288955257610046477392242128436361628663261821227343408909978459809278499756288297537632830607446984274649854608222305043862202034529221114810311000571763832695326724209000553001928528202446646785423914519911992513259242634803265589032053959687585324406679977246683505655133640508727654040289590415831161888170157493117893163803235947228317976757850896583359811229236035543409370868090613268313848115014323197057020993611867094151453890141048056989921561379614956261582142680965662598663190400918131911718673803910331032268681667726325297927179579817039753895281958698416128293337061724419480057095867407060698350935748230336268689643914409403746217831754641204371848908461457516478723238173528922827340043370173031747929421293735461929333922122084141578794933424871232940732598167777270626668320730168373069299142854761186545473709004611013540237759859238160125580782650021232850505395577127936404891012198507284851217830222206071919586904070419775253470726528682607878127063467885545850261708695322295748556958931424088261689940392095044657712967168950729676534186102314204390947705955289885553667728692450464314668553387716226404173015278935093613225357277251837014735865062873735606770227261607828801983937163454111972138725859973979514502551574629150974118099995757402242948500755548559386943017632121063832686080593193310197846185917640920163914760230962703465601246776176794533900402393247834317121055166147326033148309666125210286895270735784858597927509337864164180344519199941547804176753258262717490279913485636868093518312562593119772290317863843279676643182643624529967947657763854612597435156477070327494858467515483960680414178589802901679326075946818107661531067854125332808514293685264059416927784841444096043570431313961250750622093099909497780677766603074908286877652534288383818884471238130734308662274831525413037892854114506945070327130252858401221452970408363850291401044794446596337099488413462172527495936690848567324853400924365916690691207179836489605128277892438867967383167918548545240626487667059232792665554976179738621356104123894275693742051023555083788898796314964266883044806373294496386307496295837418103522364853663321252585194751923131752028136307223464691021816169482507392903921716125867814571178852654081121634939496317882250787689616732729858502509734581958191295138184448616986689585969710599201872626104560654940572092031861527193547587270847915328353840649315207426699015437514966413528871486865817566989288732488810836745356638677893525514094861896205916422447037882638406069090681540024500125641916895004037641721453682103551027325801303391582827336419874551062192596694127104667819223448660105802528117458607299954438043717281120858848998736471623587176633780365603165638486093748194527625521749443432614877894647656000464994777810181448765478098855113974666656878940936838516684485666687145980003137484032963181516976128079860127516628433563884669807471875344909775479043942795114413210318195682146362493888528046331220725632784100858815699604399195221393345132362038943727518133141623677820885350390020533516419891832904965802910845334562752241055676224560338224045262791154782414339309434890943746395893301715112861432872118943657576785545727662514455604901418018131191451210289845367401406326355369800558074159652119200029444154071858170426150775487851172077524402867491832925072332655860189170155509366380541908836208099750637900800554202051217204446047696932571361373623661749152048135828380844064252971706088286448791421110500786423309728031364567155291548186132147638372236563983847926492712823600431615395754366347397455102595279794946022001675876486526893278593409336792405722776442475808768922036570918722060155560762119384255815994331388263363588642005629906537475929535353578157405790133301665358122001706420162949695330072439829960509395769495982491193939394924273636606116308920687298333676650981355325530862663596980048661267509730002693143139911955564305642799043437974240641879523816925505207318187905967624719020921790541172255894699025051851910359430556884927204991012832077343954501758377913136506750584829658283485755438493719943062295212281996284856465833922933927148468691669188198359681066565828369843684828684208921888978939089347623151082954757320171526121575602804026562642483089334459534644636554570875077341522469926834355120052330408256911490507433673200652204034666509932221878344338482982073315531840850950348398707992807339894304172067684774638333130987598308525652369725648439448495559219271766165899755568006595156572784817033860992791956329801410217771526870919556891249495887184405478273458898438777124567344678129981996111691225596405501004377883787242998903800908621856116094396168564718805560437104114300417943136191586879137129711701886818581884322005616742540157186315239424593718544726152510620657920666926972071163456725108116929574828382881293043671169700464575893421484285835663808699821415490604533026863493970837402412269236731158250916119138539482181136725762463041174606068763410732664236538684609074459047523375503127953900878640221920958765295130716285091314344313636944994341125214536138125759923593859124673510903501181576587441260883562095201664413623234592649963616175218995401671265924027558464120793760622415468270656660014185522420073222793767886822709204092377883393923434829491727427656780692381393742349415380210773929432260305301334567503029334224111050682753930716785809641855803247022245954067337902438124962286217318539843826754017830835001443104095607829085094033007860512781504951085677069695453508018978320669844258808365347446077777414447650333769025682072885442603623874039470799151190951210414932319681895384852041995012979395322638419896501558947779837812219238504933532991544941695680268569103880656090496302880639805043968472812872522133295229755102399012658624012587451880934184025210779693402670844880872203333369848452714711282412738527535385645247094587083933387110914082113024796051912701476745216805687665188864063683820869793586205854875502979059099223651298332103939557755762096616454058690894968653811479816596041420616491107643635477608127997034418050064251646141871921832432890380700051727970292395294328897740620028465960470501993351978712596579276802412439867775295975503894687554418483174609645267537748040461994540199369357995539583378457200894059612702208767648579899340698104447810540674374518658947561156212569168315592939474224864450300418215946623881433048564560427706590350951488309450992616161120459117010515355252392350577440524521892877743531931558048307245078316934910863609168765291030581193190283584433552444651572967841753190047270227335779056886542461535635949131595120709205176896637520084268489492527238131724888749073236075902491144851502708991673887723863084038960243488839987257244931047048600725774550173199418691492656322216957370618315525955750557796905182140513171441821530875024076311794284689532334915719829335946629205474794167576109119622534272805941890432245184021014089543244906146897018034604823348595514676428644690200937247924293246322291330155736211065253807114562070053815043179513506486900627117935195605803538242882419443770812302194962351708842270147642488653950256853519602440502891224480140729983060791141432331481233649487191916602131408000131638960695963168604581403422783545591614529275721144601295697709062285302855175225240521597296591655879210661722974385086163976440448847365908964043377364172310319863268242656192440997592709052921912911860111803140164514165508935353114248074839276053554857228668173437793766532649292848210508155909044449117354032376549651480092151272273332952953464594152819823429000213698372485424454551561797720078507273560037811918606349385148565110145759704369534574808903525055092219338985719323910579978231876467926632675741035780512781713853153077822333780627335307638066856762749996743898013304664334049098307578135214493773475704704166723428765378299373050526797247641920873009778758429033091921238313828575990291507285937452148638620614528480904512222849104493728205097832513825613773479130593142772121298114286491026951559270530732755267432856269695195045233238895840811852379351304588266941532869020491837911279808103815953566930454784560032774522983499294915502479252302571935134778818800885972680351423691498522858492528242513069214675875399172036455486493030149328645282319608187352438690608960898025891724420056906436440472382517963251614212602125995669513233098858240592317675239195032655751562404541208186409603600594812737455523006038908061645938812235708871946545511879988350812010908273371564029043411239222081946118458282472118177127322215693073457548909629807592565742198866213776034241034058568719126815333031947237976054517687072928488700780186912950817039950732875711467417106345926022605113220253657703351605050059139185486707722108121095821011460009555223977204912416752179004381158252408539972575783685996752241796116078041113500811516278666478088599580900411730681826058612824744824396390803305549670053838434303273051020141629843796047263992241305050051176761966435068275261147730782171973301072149548752020320976673206034850462998017942023058895535732842279731910695261377611064928811262015979054093743450967804701231204395007339812193512101501104116537639682470507643638326409976638732853790967447997981621775127505065746901361852656712192705710558056714247758917267023968599780229832634826187465614444762282208857727735174326023602559553426956888591012245552936702733683009179246917232001183224094418536772434822840484094871998020093567868548026255695161404797547955059789942647252319984306143604080180107537523029067067507357897437709394867520579024271694734497614503528331643077943521650926740046915440940083110202322126067498345725251113158215712196049424187473202161874637536304573019599282610123030175593913216029386083579345545015141894187314724103323239147273585125786505362471895792989516066484160574351217461971901963548130313614019803882935132018037826865245877921943357791765966292080011717926337461541780627085002821177997838871568719512752143710567421299469435603657451338946434592144791562965994641761911447454644426111569861244570953505396004070423741329053130722578406237678086161081912313194455603868649536938731243189996802508757702021850731064571409513351839282134865312692260645738495877896148439500622805758356222322893968568153969914480370218260933622784396537676093780589070779596364214995778417321740576362488348724971816963225441357577316240710701791808453684319062815702296878059126566717900163703396201434083309289105086484244241742579718977999005494806903828267072040169840448740566888075237313939349026540605049180614292404002182926782471619844569397054109968587943850759756710943151979003213758578210917552555112330160199415780916359521237054581549581839158188646809125337492601934960203527406064200616161427557673316310070471513705773487719868012153166247411733384282001509016798583490614112712783622424778551611182182318968494615718836304750366786535006582261416085370497156422723640239369146647949170571251906717686583672460609792694367192308417827215166027417243241296377147684819853262102248946983275957250397792398154732729900689832532923068504471111510299817812543606519995744742664573315596980334840447477526477388609255997621110917155439716556460812184593304014680676318989854791575741794121011538950863454047123004746302721105199871706878096860515367582837009924083076550800652639973122836269653361861303408376623924068431978137734605808812401124735321958816875573199971267972870963578137085502034286260169825472921248874494413484256131058217633662555063379939204400682777996305734943304205916134907828493746227077429713445560706403727399206718265102903369940013904644196299042282037155894947185794751387715280077893469933301481662326377536455120179463525994298077367267673739652310296726843651403289313907244351766037800774786366099930658404943560928889576184379058378958517996312663770860108049231231681556879752539545126543895155003545405713625917428654307209039540688905988680163885614946866297843132115405086937562483645426470727601273091386134353047750725106913735665839186761865203723106693529845162382410809525654902286399344506351430340557534134027345079936921332106086233750652257581720851176784846873769337650547656682997678636119311429766164764857425444188758204187711016783959518627721858764585113983780954007919735224307946041501351857139222197548878363293089927672236002690391086791986845998607412757883131731983413714212880703961080806953138589884294005687360818876617585398866717562009799356941612724285126319027053224662162413006670748267727054344453109541387958647408911186196955413478323806618694174428150628445469385658177468548350587084876227295369456581707715779828868651282086230970740446844496755100823331953939331401156254542953875697965536391751456357710742160024770189775640785845738950294399350672638734168369175642273347318366037314353651622060675642344614340254111790902421772041588372421087709037303233045785602930100416502594181458881651787100941867205139414715451064637159486639398091583086946978958447411138352383778193400701227804531932343491619867719464246806092191566961204104103254265676405485421271359242744696804640952990280734225879238584485082606907533913255457725606343625311193597940250302712736978043980721994599900985642010884379809248881849896550623815590164082081879011818597344397162208271927128561030861758028216586430782633927357845034606082937336887174949498370869103752208077082395940845146048342999533678893305756369242665448195887224851145847929464805275839662791898544666875965246017568819251560840943284552597231083486054743512976476539388917893698361302754764293030388018732894794758059939195257182276994103659356141980099265712924489649736728890099888624943056384042832064273471305234056060910009490998347969693073385916196430969821498446141436071160289053788790100416354157918142441744386094728090062539644756046120085596893875854585500624589369237234076642455572151190114753443359991957772497645980900640219231267408064584211629745170146522843103136802331801701296835407699228129882417520051123198320351282103394992151762822218235117959062339285247492789202818128317986904577396159188608775370947596752105952741715621879023890080372060312583511121824087510488112836832682756662715958202878513900081560748638373663940553483170909705196820535672669757407974964273179793473595026101630436693272356739376466562583397196898181017739721765443656024331482456227452377394578884912578162296827979637605254422148293655780711220265347696075644398033422178351399972344490487447124614115063501196115577376815838528559655315235263894525139866996476950800036047482663309408639440769402058905868505667270077482336114620532894135498867221560461717975249473414482690179926377905186462455548721564407425000026671234539514173241951646990374240855272927055676907675731924172227152857873201171790276272553589030971018069959363859388577206955536065964385860858664361520504841752198254022729523610621979125329996532059432456103910071134348512391788033729035142413053335238862224870127281841814827324154228792238500124895751586784953631238645233234349965036872950509025270247209645064901640318881227518764080377157259430921282449152542834013258793956600569203197481489688318048332567903233581680120024932172793221865941815797057954696155599520037096021669781580603961240143078724153343866293526961757589419818380551603243261270940116499937660697014691675621537682305191222811346700029613072244933943028394153364345773859423658737959514318093802045946320957293699746888200475064781068049334442868854743344481127872482329221896731319587872916899487009836012519894061772670220193047777964399473079198683605340133951348356073427968489710098739870876428007011936517519472236915427231101572573524240990350433643766231640283511208850037270885156463354141200253770917728641986141448042937398946318313757047433697734861518460009236554262403082588722636941760897028098114603824526081971334745712023267720069775479780845845471815085126384210277876966186056812864652378737555148666249016875499887086215073132188338342140213262190662161734569103567047160964581821976146813644768431868095119710563348157724924725694128751485158541965545256317958670734244226019575509870719563278397612494235927078065852597928857139664976724199403038343995136536931466024077582327676562225002054725516794413958379688097409141426810688922050955096496560899314423582379800110241574646210485490952666248844056455038979953160877790260868667925520640948171202456252643787584662306931201934218089417290358491184491011569319703284323801646658589893021751648825355213166478288353071394783544174456822623519084599450797602198089361224328755115301875164141009495138332216848694698391019284747859020041505606704268918985024488562171364767535607654450531384451240178399293584601476859074768870437217779897433515958252951886340853091269006909807028205730067034018905203485132095534069078496710091123108674332173604102514540380527913736730685391367314100844969291997320865188347371139105112572389980787812819786838978383729312482904000522180993485757588976306964625759808129881798111721004789467009015221716250594702884470364733630180253800455843199575644781790611515175578560724017679289308932797823206528471942811047415946111166351824484788277502244225549504964609591383446560707301359873460213969683912185357553690332147027029429649463124870602950030420791888837841951296036438164238779572595345979062157305365465028288973298617531992621217245922988080501452645280429984165964916170136932706026369340985192420686366453216020891424346442308103143557040556532531638000421723633250686067889339498181417521747564431225845037966115030906928874351802283463859973415109185779577881692344192262208638384148721094764722000753466684792378989974039128625037973601062199833905123588559091138920202660260678253790605030153595035675608932480958863204817656263801028631570973258419083284083470579563000148647541820591868090907417705920581529483296384717200556158261535452708378759644601427601168235226791812518264376817285832253220064853513722445148756684167652719822011938612682068749290880206068169618874645815377880848096206492709852552592516846294080468435683226121807360888765900733817459266725894952825076470843166778214268179423145006064443705541784222959933536767929470991821033624253555289508205993704772612251915578746380787286982908371671261397353160306879582195933909482318000395072013212561749656022955644539457608687483595726231942229879494737146744598257322207243582148752348053817167984551321693167756364992691263006649064148586689736701437077324233476106105510356344724455849825569311974900272001268063667497600065315139317265105088128778787184704452848510577783995734159219053099603266625439497170316188286778973094562560638460179266979405827199733511404192382372328162822831488674932224247475551897780039031415624082454670162860214208279333459102957206785556755373178706716129385213294785105406862774894933806560338781698152188237550699651241620369688343527929495123226158086463109890156660330964725045000638962670330131399438765212510752092578107691255963319482639515713360300576613188472383538588094280971958767076799729726636020653541030082244056515471340039898198140294706542758863790153488677437598546683692214505563767048225185366188669653784778356147567541605160084827937134390311256580886948342772503370624776237698843940476395736192033826931053664184321267887728157669061567819082437331334105311734104898868748031842315456097939111478458674906371848037645733878682610157648679644276604267369349843737161800689435814051755675565039252793386046783111375391791398410368335941307457577266785702139696785663784717767277692462981288631254564715191747189556875387264127317614665792409993148039346671715941199111090665925263562651077178208835712911052003747192778953045662056423991968692476226325662009019597282300150839354863057176691616958939452962655052285227387114727562008520221793981432604608935988008757398673588312175742182316719874760954128960074604201625066210658134023822888608826222734292458533420464098829708980311037570723439689460902725902246264921864607514136453878571209560898196743474669762318188272003877714738824657658772167364250403296615690241266833167624823898649508547602880702387244504366753869869450050590712869018988488799622070810713065256460196596576684737022308531020319076971113164114398157694080138233519083056799092998963943020415784533060434708648212205008308419118133605333821729940170608017395386074574483562497879552902811576831745566757772818614547336023027890384030952154614732951653167281369152433768684694164144519839949543044537230150104214155655015468996720172926390710806554895283034149954014575247590169046485840153666034625534146026303413293628777832708389675228464681541036311024582473393891019030119458246355250828659423363596421174099328070433326000454532639264899683228020646848531701685275159415404656178826655085681560892009122205604886215490417436581220958714686021567593696880439145430415901715185311852387155232428273498441256309185647791366026323966551549197647239749954121209543626024455153946652111563535380679940436702068674305723541432378825315648106300509723416628782478117888125410838772371928831290341946735548834866882602249923899676374070084481980471573018565874917141055187014955520360918369633704489038042518091727523407400200451951244627180857620811683955122907528018668646765408601173792053970630261964450873288671635960255181063615208007603769480388067310574397047115043877845160652531477021035784434675729054417773031257021538781183365313322633494223918747665678693172599688908005472281232359508825050708233090798660532944879154759668447012883744104590017958983969830587197660237647812209545024950579377325624568048349342055448850131684756396457726001302378270877101085890327006126718661861677375688243377139262347846383213609293550934059813888314402988753842832947615224893073967412414800540037168992810683466619256965005947973776424885981540204432739312978911153440094897524826032951835392199433035963979158941125069342690853766463402271908741834007182689308816660170517596901107611170717848931050057283948070572162081177897813560797028559328232148350464971602566667381675951390119936995007693352915720281101583515842736320306059805959385622367966514610516386269543062480879008585165507201280109489685305035162212106032407759231136698205855941587020647106208346996605264272764276219077939778633084702394003430034004391319679591583777312450855566593652110871986583497958295461261532736550441348905897779567818619850144472082482924901948329737156436654806252632828673532497769807051737968586868257221146365221517676670200046005683111256964801497018584869095773351750040274354455004287961365437071629685549325190497323566006045922082808759466527762195277019186777963814673380604118784199862433263473545960345457672627920184114169351103940453110374740427839340348259208703434552029668040536001797857809028781054668834058285002652081240067628056726638066645279952883828615430110743091927241548171991174499784345516215174929048517435228427508533640917913927934942726371276104625539738720866123949599980486599669289429421401450715789514958084696009768559407822286840867796147387679752395697970144230838907278171311161885694694258529910188640640464137819096569870469732434982991559285031806932220125944970985888665445879813151932026809593593023261713700325667361350873395240758906551997956169433933966030780131057667046987027894346356031932279688047872501056790612732158787837545291536933801164909531916308341412116665511282595601053640942222269312994830968474427956403869704221936039070784679450720894976575891916533716903927480136761851856901237560536122076707437831178541215858459326233819378234135172661028385234556045843371873530585133749070724024156205970403405657287341561469631438453306321252815607127737300140586517866862786399442956078683467292805497641708022630138737624365142253278447206037258403310246843083349353971531877351037428515107506467398254207064992742283376242681041649072599310678935015852311052740093844436855257282283046493413375037289745768370675959747910946965992893570390861683118663915028019785734770571293182541880360754679319589815745639790233339212664851489458917044473139134641263702792807417549860259184487969870731319382561783191549747177424440036098929799918213719894148374005049068826214437028407405513369301975597101271045032303334088780735404620786844595525037431081145538458007852824456377477033928671752496208219573255367785890666622885313283067446637008816480786589443572665379461362243263685153830830269498702689469648566297089099054022082278397594655620186078851019561849179012056249557867180138484694962101950460826676815002585310397603533461001179415760619846202835841357222191519424124888392821095078247354920158134815420992724927269294796674263190800022197720330777939147774940040820906849495672596192803335541714625002838025132610200094904085110745764238533844073248487263815048852673912788285689055701045549380184885554952850102105736408522852972656309634854912985929935876372773549641847386602237524526127315246977597242063880922882950634539390310737042397840220263567944920709709710723942570572757999295952540215701560643657980913945837271478335214465603910610902658323982330288702151669990872379609114534880472784708287185835125482917355469329898646327965542868717131515887569335213419234973222199104627486295747096025229094008027240046090805167860181379087586516685686052543839891345569674968751657505621271780948345785311201827979654365451176537039406806395268878354204106467498744660989730756310325170530626559361580587530959988835265078248701132979628151515015593388019687248068412854532326093971255474837954345301641575140469651378587550882952242717070348900768972415460577937708216837951806290509190689827697149431721154114030160638005943897261568858217188232086243555180204622106008784245133012024340718596400000239423744044123356208078338412693734628004267904510777786837096126570957993722073575924916537799082186745470032905231195528053550379757648904521736135934019878179111772284823205526665308616067759728287799904979244453877146023556314613162783542000787021186228042635871684539745252069139108613459400373552728031779657781744188366727040860058059816468524161906888874400734497115651748677441750711811531036348856735509383848263018713437182523438055884675405654329283336020375761205153365478439873560326884172237950093600076858514132762982331139292669556258277587761910566147406067760867231142416356739142562970844819734582145371468526994745529375676697158793480960408857415167260321089730044529571228923252038731299601543500265784858164560818784309671089040138754382752900391123652515701800423508897443125381089222636046714971985305998419266809346654782911617422865575116221287768477668915469593522301437266833500334035847070940055426311399643924485591289510419596897502491349534018021790147959983310874839692443745325666412336208674113022277863171635823536060178033082407311739823875675900476663178142813792232600189224899749851492636667976084487163667866106852273633683805920192640664306981149202624481131617264675636376245762314151015351836814618327230416561717611791749464332421627406144185134563899439724529731914990677695742238107078640919228577469015902280096222868804818725069414660878620818100175675019778925467708109916399741076644349862235230206088430719121236298249742704509587591231429121077863944272558253432879784600020803294438412744796423206302468699438499619726080360071467380216870741118753412488577323193822841905516666249467176449024483051299318140847928643081134976858451506828325765015898257634900908201554729407567887569666700336958268198742087356824478283235919871449090767221520321166018948616254634266011352756467337198337847750687439034780005733053882869795955588075923484966126591190772540910383025748476722182584801807006440509390406976543949302169512643849563076852676421260613338596323940101046225508883591724676089576319089809347303483176204712423785857410965786878761379958525748382667691578695523248580101418970792335505111210662215376075665320168235830124008499644152190663507666230970216296033800534483224728961555423998505864200336014252112821525341623275344289269139994140839943150307984509171768922065329431469558315973605238358937463170869216801500962069757176581005955170963169291184358680134694517275211950784572819433801588867733530146345651661742733743151629115709431805125281329268122734312932554378934754917862635184614948584142286998663725983204898285671226756962890829248095381490919911904210463150477873878220791113893644230469157728249640264993404993836041192700342772621813934206592188228700086054545550753631497159151678078836577226454258212445578300266751097962490429471497310173911212129697543962896538887347134916858830400407051525369827763163778714565594545038162293674349329586369275819013592951919722305822765423827303190874704030720804037701287957234593178639273604433207893420959016172830548612484951307867006387262122425447390720052244538549972188398604407461421491272474582785689804234044729610203382526979461173484929501546076191120491870852352889919267219765198228439283986738595167752360852751756158701408611343568826865731047032035351972132406206565634991165753915776529428966634397728732154027285284504453312616849240369343685457822222212616006575942737145320654225881070686691994627584009370204487556694380253742900344680690466533314820533045573873743767103138299400636550845592957679148825871779888316494163657852127780189195967060723076116560889202912414078066861793920759731479373919720504121057377538967305879125618673623930263300042085816765633110084523380034178315538335720099197278125310926538607911279106146453635791504348978968107911539860040031986681810496116311733790642454162690977884435945827590595541184600539949086441777717298779935226077514538410928713941589480346170687363663940357835285165059141427188558932025001052556180835807837978608172111311482826315098750361526702062934453138071873247177623313958920048414720378002720702094964099177497990076016748689791762847032422221765382415755028236501748649766921231376256796689754279547859021525155074770589287431055454593178294067903663895993532823617572804054396406098285600237896584356436280136579326115189475593809413091821258218046491794467904485922135698275043156081386734712753482086821722381405241153974864714463688508766005517339313981775033144987635201864440815664182597698006226909020800885664602358060682802746459856671060520979126190414104906365346205895858271569180550165633096070592836260378988471861248773038119768912049091631580044094594471484611153863186446959980467855163965060440705009445467024654594327760210428824152653986682433163583385544157912582089221019117189832799551505855151903160348139582096604451702068959397004110569432609611228416161679882840142635408704504805554985722241603441514368602434904022412706412335096507255865374287720637360068225403151301519346308323256493066695833742420970430713061054461795685512171970765885095283116284783982537927870596419972966938491985293673692242781121405317537181248329094384123204522156425350350450886346594564176589948037982310274607236015255482769143372886558383519795781233958964596107263965233771800379687420311664992559039456113396252207168964606756580416430516639665114321675687440454879968404323302793576752418098253019918026646826310998070964688325939010094668894475824145730064713247747287569409865896698571280967086767723948537246684579349043332372890076767573877229383045917000403213192875828371342697360463809517764068343691512401547916497495218668670710682341611070088276312695703027279232590341148293926966022198925922927440999713729036591615810843010715624440026107194638769598789353165972402155424372980414951771317069866570589388181258886217359240315342340637792851621641442575285759327232713373899397206035675338729218010861792323706517439703871522622001270642144944123379858628644122873303769481881200587787910593436962187547890805426556807293275760752817654068421219146369766429920634468524163118652931069082526225883473149978069200715155775903206996950598949008865084478705072021224778110673631960965077228644051993684259850360400937832039943491622285802477970517474364641827145338804849932096955035747780141140216658904515298239759325632656921305520696923258697412808358167462970988435982807839885464234438998582781370335774116953667212500381330535713095053390473882379830129160869495236760023927129443635525227208135074347512071989380010451889317464282391171386543986394591056547506432265981647001689276294276630163278104686396818861905339577535933325770707939503303297990778804103221377983856008203349779960690110541589216777348553249489778687826832027139630598171462066647716537911393125828583763779418024102112061915875844956187043589679945067034285595161783200209809692767689294566975994192105201302003832417286183414692187684336875877957220925629643884639206870688108804892631834196132365640626270357487748530287304207507652320323967668791755767696881525423501410461664686157547838452739960116595557643607360675926471567489339565384279901847331056772261382737687357232805580482663127866359507750055806870442949569757046535900222754320915970710527890176503799459867428201882783200995070555891303184860571868902898212553262270797492438512841282310105201340861044038061654279975409349032741998192154769294494909374032931312734522797490887703219542656291717356116444893866972774231323810720873765085676438320667876978403343954632635620978057304579057804741719898363644740522329802562724729957540408682786667772615838050462417503057203846404914167937118421693256669187945215619588396924454395855410574051012160563571649656673077606539423304292458665021417936827064138440151777912809425814347690423378829253241563147453028724318824460832729050187775680010663920358416822839481084068163388395987990445956773348667006912515746574855352672658965847114874696338545064033385164095525520522827599798916351803093906181886314121621069983827476163730710628421600106605531294043985194862003335521982988586522779903760052286421700755332953032462977201923347045348640896648078767002090217638877694547693112745478486057465056890098261219953078559167694469370728964760814267475485280273388167086168831911965513206052275451191791407213202801341562630434712789819805807390952831363853113255368701330482353184211854752623905279989336863946847958653355829954469621432777841017901332498962491596567688529930435623219502457283384359139511146604774007828034790259628679386058308706857190367132927219207694521999445465192060086745068860779737812354965604310223344904883376617210390411245673964655449725391790299356110085436974467149175940249582061897914629369558864142467199189119331572196761796822788772845846326149473958667060883788843186101476185863300546854045639995367469059276743881037410465741753522053148624306912474264052397343301351240142939579423553083501224703531147364598235116717841770105772687231391314565869733747949673979659744090957888118007301402687067997458482519478169952305460894344235318988898134072382778708881642479355916431246330309080495420830015354475889552164642605735387112440113732296118819130687713255327030358654267392823961366282585591854441621393520945942353551464341226518148989718027065901569619124226823452040349040241434907266234856707902081909280733996707448974801282923339452252094535181359449390301515821096377994325823613308068162049306782153484601980247575419781656360409730556133102380922760215135055512145757062274781780784261424036047162356123474822260195612834418317144842530307945417771086109528480035952084121384350652000264922006050152406077474888170279795371033606794711108440086156930029159002017054659307137235636483150369707147655109893643520492466628235199616753070206784830722251939679304089874200527235224110934254574028550144359417843583891043831349937654217736215153964823313891066143396561111788692211938002506478244561617689505690211012680051582358133036146922368240733283292096787093794075243674298995368596354756117937189491428170922016705318646224149658265651158812614459372605696421648826724845993847748977797466432471762232721516658553691087193316021055937852430173901256754842866575333819520377920007401031471150638170701976040947296732689528811919593441367221480201465775106519961655307046307305609799265632117247750168005256225572399180262377918629960986376857108095465725932854458066878516111959674048220923415310865328688187040121127808607182869636871594678021969099427456752909167245479601155416410418413713048662335431739693399978445585421077524249096205881728728151612373963386530434543578537803572999795264183391822389078857493197489234124252178970423825757331359409022911443173943408337373224554277029742950815842334254569765416078374958238770553397942295525669175087476141271254432153810906910607605544072936112711803839511201272365255103275589413552803065798628670108851700996842185289453596684944268905592949420892367183903469024757391698845226040381575515424232877485576871594725040944465159154450373100100488356520824873590534457358489260815782326321976567226766922374247284780191292295402696164313338829779268648887667847775865541348296474219544264373410317918669417226375260486611580111813246355575852165564587680067508833163176668431894382146531194246524370249504485946488358512249812799747808423939675682886130889122484918747761569572480652281719194478910797505369140099435586465928576079602895844988334764854418769361867641303556256874660852091730369409339633470662808619858041691769217944308104741806756627154728667639660448382750288225929971070441578196284904950990457959461987809390244809082283104582004701706751057047718383656183177592648733984644451930007931806022205910932926569875414495623414143807841178790653228690573699151098729417822486966362585583572750798743059408781505378041694293304171550950734131883170911030454120943879745794453951261059431857330374407305519320664111036871219735081804106931041880884119756744658733047811149901909923143710813495303560091231870906169816664542661922372596573256895011669202292972294450580247647942742133012537903576519016032578482260327889004685396401770186769798590286156579861016603720911374026522716834897226054890366731989586207208700022545865378004705078480150058674747029950379841385979525661581593697728369358065310178024690089328795537141814584196235182103375214031488646044542721637395707492796476993464271802543920693415431521475173027705118057323900463058837439614632651808780615427488844878187195402239941602145964784858906712915505156900755027136652957428763262301480996606192832571463729621543334169635130392004611616345638161385678092000737198456511434054523477167591588144988066797636012973596263758729557269339071373603729126025241704810188363184014286955951095283641234100884232847309992954483213934220761044724515682479951688055766678292818144352712770523392755957995790874936348953560002270916521058376185641149821228542873883065593643736284221527843759452811938337077863431687631418208145179966161103132382799485943335608197285665759836124710422276120123490710632650897998208534995644174578442441235836463728433393333848524337630627820797839153266824076696887066712635611261299793586598458418281800515775419367235881366827979151896963141475628565991235964359534775755837821164254119950162565456113248005940074512223638747577247060128874842066453946478436108571256520866931818089478966435084996226447989799159071805633778866424680741233647767751787234647510533628041173188919911959656720800431270466793005924401764582323712411140597594890612416964571387420415294813198404519131448600909918972323477194687469126346871903539937424029589439669635584531216619660661654085428723004454556847410500139704153536474213801087968851814205309308594641239246865993555634114769497486895228462579108828754313552133405294353949994638610074789733501112345194654831722160333273706781328623296364559038303225615586591221912867059056685693653014338569422929731266736021869579026623787361688029213860564527423178451115841013304443737706414050268596906761581567469270722500065652106569606834098384135170516922993645594560804880069699209007353344609509878667161712060793565448836815603974794644348180147994457871325704704110252544904409655848635118653148505424066476009086556166577990180167371798354456916822823540148159354911832204914102052703572442969352318620994287894750508733645332156281463880709881460249784633124472223033400039784350261800163524155112601550671782191138875655378337724447999876553473993406956315043899343786624059784636353848458768997035428739643670358180862255064967632267484219458193307672891156911355309496223165633186753083447787609187608373288906401698761280664511165011935962070176677177032869418480795917366236860900028623377528102586489474717689107269547387273297801113235938139612349659590087689182090373809054712908779485528737747860765712407073622349365969109725540818807240496450102032179466563270289663772217628969984849381891359932121302716474880228340860622939181159101325543416277453191937780174320720586381751777155125050377067390086022210673854114101460375275641092394966078665545518781350763772103176889730119301520934800536869912235850792033172495955131914048589528034307436708283848856988568768833413312989767730718671267463463576339078634800243070019513328875485390536607952302159629387504122073969898665807753931554214030315540025363397378633935883139865721669511558970609561845921029907443502407174338618989569996121086977347285410497115412129996606107351099303000115720341425246460656474040902875528014816584253362826801043573392712833770054879296410014116787228245399332810027993108443016254459898638189671381915515890956942358350041546298486031172271606246510997141322785513955812379767365067847179645607394323248883902928457780150688807016693626129964262242903866663979538999929750919817375758871869594957871550761481129059790323189303139999540714062175903286967633730136852654948769347336158888828819527774186102651750126764431016703599593949008975206889991408123400187315342756343151170786407689286334155838610922037962904574867548003375277773489686466894802993026884507494500014290376556257230491761622381216583581704866686228576093020891749519989759325093139174214459217146118169629836379684084938835691375861219152107871636633326957849760399790904494835450791263406129809191685703654891954427181289583081258031778502121134002814494815932109237558122299656872888838517637914165650797516123338642917669992342966700634310948266424938754977046867570287746644965709333239102899638992971675839920461729450315881212052881486465540113327780746015156953750345579822254886737905511731834305872359342051704192285214274821587112760720951858552230532518851081825163045512572473194785223279812014242591971143737889350465582777637820222866151948064530696585986772198778441917586342520019103868370840154349026956339915484697076781611489832815883394197085622661304022662368946392239923984539672090136907228823151781483757909158904169634945482491854914929383621826178208777534043538524952080796134449666844038702263610655879223350250187242936520342073535177275375012582206188139571679613225113060123405691219008774804643682644072803348384951185044702622329259631619448011857583554232446714688262390789726323588253041764291863373900124780379121725813249252919955610373171226272685696510851616901472039603281324504765347400107708957900375747102479791110334129122918032681774316320671061797399143974160653162241918410764248261876573283650434101058518249869062128156621599501703552734457427892450751312734265592137005937662432405837540219160896297979287381936728032476267810645985005016652552625476185029561094446612160136481956653696964564311550949066875744974676217572118746684026658898940845777349892137993652494209646085924845824988379096548036814227468100261591561645490078707192871184545169242071310817510946604450864874468624009795767658361455250399536483736489537966900070450398573608076877862073800116518046669612999899656661258059710733112497421961884413553420849466677521728366775744111244577628236350897476326502020344901173860417731948960503317602732808329743341925601321090620275116510902038460841821754000453451235763538001357646672732059528212649043673966246018991034081687107247217868544464348123711711131338662920312308876959650960839746364872015375739636880665110614803321585032450271116612248557423230726950134593888788183980477417853502017749153816589387413304055093925741401429604474102273747108811407106061921122880091330893578710535563941608024310717890686251843123735848429834222632011367474459648284439281759586202117929126513581497115827605544972632998641434232331770264371387041091143434439985390279804001045638521389057416039339523677008772789476106295820229671977063084284103506401858101939109597787395248468701625541145318025488651889853644728546694330502047397385585601398807028416312388095898984680415053419813277451139268161579413502202313303006899885989833414779708916111439811604218493111512345977365848163211071147359155175836333525696903125754610691682538400943708571290863935007348415390158950790663581470918921395843507620967225770989852209964213126540455244313060474726462270986326931834995610256993724246593524147750257390281589521974182323742977237097444995778067922422247300127891448119091185736501538737509526515656888291936326696341636083785147704143561550034273747718239899234912264078161629821613337946569848448111424728223907753121804515043094743809640066228221188561618946788305280557546358435419645588269297221458548557263937202673120669027365143765188335197856660999902552905667887782907841529769499531673402179801345353835889465108410631870264819361150175891547576775378582022167065200838252373364885263181375987878582609757791910533464053328761554032345779867350934120832364234851707691628103984251442386101380722475583461389440464858971582740983224186159583405313043184733901182388467670618472352392012950449574387355844290851475945654583550732842910367505418652109139354195858824452876027140817873354745632453509592451259542851568394569683130737549540476672933303507741574730272268572444539887585645414466964105142349139656488339274668593945851464385497473974850212977600399942183742363482539480931318726738235746212251010518604271270120210960237074904890027756390997620324427451025965142804000610359868070549459312836693315931549019430969947031302585577512428707701553215170899074603912436919301914629481685613741992559209118770338430297787514568221802583054608262058508485922077085733919350855519815368236201979453883010537721505103053373106693854940139618060644974037478615237505033309306119689914679018167718094358506208949645395024830614588583861137578222748995986109081829753620830406661069039166152871424795090200618707014328666552944691566264683824117245692637829860947978941714796927749508596899294889647719630482489183345242647897670388562064427380616292294778788278058007359952995116870589797960158126731726323632414166514826948088304682297013454245573989880094660087055268295809319069203254942400904503560622647342934433503359236162729545197001381524361203544966125422838836328710383144219290103940211030579000651464142714490821298269447650496976504279614187286125837109944300618122628370927264343955156475457394190382292791735351157047050161322710773287466063206815580488565889290834958395016968985026373450984495302634659074174001056079827158180370811882146647004081957735987077786112792381786975769966192095717584350787995026088463373902381443515184977666511731170699230631325347693312784488610361982715360480711761249515034350618184101206379515905690671998645445105614456335173921243317350335946372454408374920236335044108011371631440064259748696541283784166015457022319779126322707866414744791155371548427298926318804166478520354720181051663343973446714242624202531100549580995906532507337464501133883002545375462026020255141302065902838326546041796125475173351190457151132567576125847319972413369189689674840501438920306905964551748575277411655862570550682106924047011650686673131525222728158153221998682129557023407022691943111344413828838442720150979088951058403184965714002337714260569099362629404551249355820257725610696157246165180836556958120105883544213132325849909063510357938313558889792665375964323191836112224018203994378160960423394081735488254603382119044916438590921865713524042766422757296708938825682126406905508388313406950148558219212427278573436169057412908656982746330868953218221265812016877676554455676090454893446252184155816808842106728595046671863233867588264855593096906113241060018679428522714984734832230571326817247192314166418540554670603265142149796255385625715538852470295615644865850436419988749429291865760140932376200466088462442077889655840354141310108616045699269671794721608662941419273834322489045292521161392870808546263407285674028297433904971865262197236041107706058999279057596244046482141751501146013486434572176595967399228692522382737619817807047135993158668742183558330681439060124943396475324815960448617961783347888120462347966078929226870054429918765405259579730779298454066687656800455105315323963469046603407346466016700577768715444481352427217756659536013407236115588026887778882278807706067786164658568689947719896528709405940332039302682342979254700697910690728993628569663088980771239640543727212021382417735854857620285708741059437474031975224344445754262835800246314121760705654942114950533262073412607305562616984932773312589281126927290609155859429503146289361478275967208964592688711195235614803142085695846772072701700319892344767793682345198256946093797401992113171908360148856919047934065419770344504440410372874829269531585627853664201836513501057398219303825891181831610310733752422024618249040519876160505950173602370494962648974564649803826999967407907175408807300710724234505370246109166887838560796655571148291641152012460636073010982973072298620921038530834136336299809536386238256161808984866932475981790170744710235119123213185346047054835657510923497220915719481035784916736879809592849670903237728646419923152690905347920628422266490874953582824391720793407633669805733404642810527585999872245794317353031693108110693675727420519006377878700493789757686033557276748865659125292465288470431449291366975829762318723711882786468250539666414507967696841794600528402378190693162721913267340292014455677256820695703538251980937837512413696678581194810993190227651977741609909388056692646777987015022797004975764767584594102793776106686242821958946034624943825928839137318560423737617788674723683011143088343929065530672847980286023135373743812257216639859468443472984249114059886599756101768549248855229366223595635679821823086171540566803205384129418075841971103649051915215257969764914937794570226034506771455860449597054181025288557494460866620700179511369308019592011953327541078296662073777096744334418103555724779620504567408616797704821982062358374622349116624958483909233630352630176243517810279639013828469625517685863766174493903961859949790403180663515529142221408989583561259901880290067012701710424454315192260864670788936841053350184585467708341329245140461154142546894944756715376887809935345731660967838409292471825504856473209971835031185520750307082974661660223581700463208423519826178956230748558323649735747994617840249439242502208922812550017054587705310525284949955220424985553033699658338357007606710688707329849593082098630734270647496578670148639351798566076655544645475510633526066542450253688898246294867008387780735893940003505827585379357439531367397372990676820356488008473371718849696398931722304163934927308728711726635198503504916360428090540413618418934966866744238960635963412727467399144037847754733614776976830896489591433428146763268323263357551810891036766391578902206470245022867579554258822800515914368341013661357484932462611512398360821947805813607975410257167401322674285045936508611963372708011444929460149314955994006795923811915488805201355677145083667711427203013016240903869588675976265827241993293337830458113812755729719517042907289297516288910932313506223380217495888995357039485104753117523788247345304044315031956789405797556122924911959580995597705009621207174162231493269584598107431796182742929147187456764901333071220946264653899870678615633636445213716626526358780646446236515687650511388266163510294248973269002086836508646420779953542731839215849351713494960014393164095608332643918447229405041631606765260535597004698156829926779753130113647962662186461118424802179695157081265384719288874898203652741787128530179260171294164852918225611740512074006537339402231523960004710955672747775397984597856874725564896877114251756517669411451590209648870236471324489477467046104338902221660669618188710291465274652391205344118703972386590545294971408354291145618049622963711216025554113353836212839656513340046763310971341845671855346963971362027028875506306654232563240104791366244369451538582784047000329756674811285190912525115360300315647063869918769342131280015838169674929115467417496588318969685357637927452228332884679636330234135827361830438624710165084499121428651093608672169929824529789292154810536698153662001696013133950441373762690147240921068837970079692985222051073238797017465479655034910673786331259347523790926125322939470155567160137296606405678415822392210540912201549933414151444597116724088016535097518574744557212339095447476381652373099888182054351179543054462598502932532520005573209669536548304618856393023485701040227740840096550819868518821958709393839218234976399859945516113178590146759436698246882729263838598191130655056874648794648353048748872111642677192185534315876573546950080815504434196222971749028350684996700200423646332707434554763205567699844419720478207050877274638561278337274752561148128093735366671755082766650444920395837247182424368577834458676477463366278461713459386209831109204296828393622716146967566515344803215849952793732233385471942193180389633178465744152009219370780678067977847582151037261702564280281800106112237332969570969208391183586965237384364229889368791290214598701997448148366784774758377451746059630971010583166941360729882301821103780048593510364553106811006520189057646551701263020549608544676988619811020735764005170454487762678901491656586370042199260266767393137100924797404105772715177295493908226694305456228146757980604949613660760201521077381626973104784998580713084590134377342799959643479587143353197457866527122219500854177434390566100053390076393456169555623569847033984177866465926607819524069990437914758532781200229672766865565018532929651170635246075181499110116196074154104073142286553700726306795827719749131276107221500068410013272158377167937873122128538228328999973556517134843731782345864243446986784697898804093135137869951822649417569126357036883754397221735321095934363436249941660023476716536641354909406479431536271493564845878902838432476290315634077789542675790459354816127802312807338728623576404658492863994084056681990402860849611615083447992639914691654206880483045815244153733912976109882388213157692609920619890384440793376041937453869898398157508065721448567191983325869046798687032700138312346862743156913718768250108396434445459989582101912141095386481791003760727311443453146445556293153456820825342653107475652808575559607613012176344427648882420423674733557129102923361313565975224106347130475719353630790794423358334398747247699021374104723980697931323174436976045845793757342345414589948100558562945360736247256410210770831160832996787579393763285074917738459546630651691682547627482302791238045005934272489954949524195197858183164532513492994679798376201174266806444684560944605157909199250829862368060400279073046843905233161108875951743313742651696265122055152794842565125646254299057874710483859767958928517681097737460613809613209465545207665866887904509384758339686164762135918402345679565352623437599174710815381142075144291985204352879959803547171247973953504476132878246034883530523541217825225251474393401383242588123273679971611723724094864248129506388852455783198546217441922213990231719047378520805385717041826217108220226628996713677411614114964627120003015468025439576083890460616235273895002647431851757925485526773984383805648672623564500704712290477755475077752817737866909430173911128957116152621028488726271191938260762420609819268355608784402987990746325737927585495473438212065514383047534557312492738775647352438367368054039082756339042637373161052700634779354838639462880908625347941235460289140311148739285947373138663143497145767109055170207361065600852840419964910450535435556215583525237651278607336334283981814275517009720059585440647894079589470251127984828458910280621194512914054185795424115621772367268894589810289042304454257896298482802252012933371252952658222690310086958799015266065549030128424030862371210283603617844228855989073276851837406353723057102851462123943504353383885157238985736419270928990026861428196750701288867729128392922945778671158694293253257738052746245152611722337910153687333907074131480799849014200029658221575480586841568647510730823777300339528615891337491836344299373116756503145521256206932891021836336732535565255752645176449922026778266037539432677566526335417401203535788022004014314760245080738647593130979924243818461226137575696341043124491338945726609614220909912272503838462642488141002389371482991621293659053511995256126929506084222223033744658573255787903933453916346593889811635515120215663822434318763365628189995432545676770286953157804697292798661866600653353374619523948413251206384250843366902646660890653932987678292134658358426048692246738501860488562150569568675706288287894240479678408936731308323313287264885641050500172246012829386195006853852290940869298445728700468689235781604106942362115437775891263137159869644774873956608703973941892002051441024842193909920886175479211295543094001471233092221988504872675051270041387077408290565704882972300861287580049761380233573974681006022766954066135501553671847598896959691689845372014510883139815649130476840050720103027574316732314571866230364298234127084858759103371462972552400882528981513527271112192896703668254679555553196699304705584876279839915565763076893039119638878862314284199509444663487214984827681716870523538626780534468682985109631611484728034744852934466935998888496377936532020444209226853332118397951089760623042192955977084240374311806592268373049136637059400947372200342436714473892512614015876874269764712850590006279949665625383115741792054137362632370961060538589998166737664491595782719188171146098564782124051939984984809937770536218270536122908495864247614554698012383793245351180225530093528301847271280183835399341087454548493566742684094930547202980815172297929441791798172834219509782904071271659058299408268393597948164106679691830234500528970026300814267245612323155415995794878318503602420730787602043832591283032685056063441561765729930279367613256176538080352869467466086082363734920596486109371614730537938405430300081707151720653761555693268603018611886371715985422226173107851009526368577078390690009420624462254238905230475133299899765399278091830509198260214385901425231586097040785579134481601288238904824312795558333914261259745414793438908777407257665449178493790975120899493029739807688944847294159548993009152385531040795858051963771440669859924356835565419968042872475686090522865069848782342523982689652639555412100981452277416835340166054495345208807007349985518791674471507685327934363154107641289886478775927006499861429420665997740621193660847631399031842121944103248082167915183404235467910673755475168630549527384789028357585535704585157851402990775100283237082629946484817367587891245537563925450523449643405051607781485207432299782428441020997602054494091681510040713063064886596643476596770903079066974645128129966078637309145729933973805428784651952216887717952682087098297727052390107576857629844763934866912830289884914640652527494060986953465215909563267489565735158172689777244642314198479842811512800880581283551674032077073476152558235596439738037670558060125761877525806434870172726892788818196209314708521133538597494869113851468320464478466561176280656868725267652986237363081208066474244847024154636777521907849507737031033162636007525622165279736815592921933976994061695798701559837424800175795717184972339259144592740280713353854505882056093814596631380137783267085136134799343387083225453771119770879216766723787646568847865274768128550929050154898040997126584771917055813699488680831600869944558417813318343768081375147159181173949912167360048090108253999831913227951622419109923898700453100783551389180693534678529830670147915138320635549151302730213648937935979823861384458728519325368728703410865793698446241398407380637334275767960771288857239785114148456316644335928575859795340032722415906040249434301562804504784170772071381965784831463530310182252000646908632399634974168652590940263611218797285085413063483998241099371445583735923319311454510470205813410324592996313206484163583802306036188765188010307238835079322236874110484476532273556184833841012818075392913467522001156234090860246615909158493354917779268717345041399548661361001657626835593870920923125433086179231704459954790578604166750120546969949645818424761737920109395577994911325457100955080219390528499827670527010040873229697736845249469192726435248348722102114074278643482961955189315355177119848966983409428841047509194886724502068930712511124443414567773434647331568734098525158999450284521857167512033979651069812697860165460194719739924321334163215580314081585019191357416181232943751023507499077196591166307984830193557102818544963429588619942267089385012291542511829852938462583529160258603460455984898756462036574027739966185086028179976099820477042458551655325540482023117930828646992676313566925236078921986246314073627443242428476136829806371809841736035486653531750355374585299073872268378744980665607936372613297978158530402374085673800920544255415563147816303860140763260156118996525352189864275206542542619126810824855681409736004845224991735957653222517684125557084816913076534668371294790547198382894819989835568011234466776750932796154042305173769890091950572165973001562985457945302897073020346100581596418986384799602498487163117595761897733595509183800870113102785247406485550932919588274837357513406364861815683200374368303844184661539434476275133453534575172727675327724119848750128781481694855837081413316842286419925982869343813029238032840723117817513859367808985002098626414817771138528621102988065537374461678536555073602884703099488671738597637502479177746254910891708147112312908254332737574292587252465409424895744973399114049928911332868782894811073495961253896686268118724525316192560641828368568098930734528147628628187308274584181358434148283148316441702605318224377508919215947288091347365348024491261007169584266479867755253945709848544849993501541984711300615258869376109011944273485071128284067469292641073519927730433997894754051510880870290460864674571763002883824537400853592623976850494130371749291682124885834272483282630148843844740747979879963405207887043723834447637695043612322606860816164671112858120356236258051545108584367167869003766398417824309408148115539656348665932147205822720175110089342809548903435816425375394894975977774188074769109964137304993401124804788856162572647823697256742441515355984182130273134468303529550155559929324855661662014136588544084050528649452507766214083241091515685234552210816607391780894347516421630682867351555881416256720011924557986499663888011944721064801896194288507942081220106545880451343361396317062567250692340959097081169515361576593039354512436346073163244483222785669808134424995015510946784230723004515956366426473438610932253890562126934456429357038828221481924586075784946777621479308837598060475165475145997383993040519896922297896908461938684458476008170670108625473652997232642464591124345784745874272783957712734103676715808530243539829113535199423973571335772798944009773273638451618332419528689444749317481821521504045832328057675282623232605382652012220343950421595613319398570826978246908528590560798586057366677093283024626892492250020411523472967401083649956723525934014611308016977433600981913343298316800902315095151837617781845752398811530931736025849103622810909147251036795921897444328701001229998320119033995212918222994307569445863330071574374345138727103777916240671548588162117315788318746921344995111361918220332438954926209435257994481121248523097323751705022603845701738651529694756871327195894831396939737794285519974170384061610702680491259472469760782240292529001914498413765260486139188361442299333028599887612785920880775553398096527300317594828049465871875133456586705729398608531676811925441664622088279274713181553805908569077473048180300916664779322309012727554463616873303727361323629507300063793695401223081065706098978325165995777318430436191553956996751567638239112042786860249718339669309389088986550071974240036257421678749249477082056536731206202359419861601424037195985133064837499801792360725225176059839349020874956475843742642468751091595120104137811582325173238501705383983797601796975212304487111546367278230958525891658829041958711138046267562041576120345423469821611296554197922131403230562735128999727059504939409039469805864261304518280768742084250273898876121506378466655723277742125039339220025334511307816709551080630855647305062749287753525479348280861582158183296041057666700140526020583757132371795688766227054197100359681712328261228194197152359365589423556097203081117106933178479454935456105446923356964498823385633944946690271455774992918452605924088739866675867889402799720018849882308806568808613542762651385525679046931052320043608467720885040925931206680916072042549995474924014687893362596772414103279631757332540507808973595093953999548593140500734290985211019608112490858812033929159779201820197118797122568501750390603847082188455806414403174392387714421802943808633392177687481688274426252140280097546371845033835001715677017814663346892530736840223329532143623065356944194909662764025039341700241292837579348261164404563942627991047790029998953879485014170637277310166270684575228987687900075210718399152879279484417420975103158153756169751907122570456234883580533900596651000786067312278652000080491608197324632444520834748152055386213874418614851648001806672634455364213931976122130569127059140059102928719614316492512018080089481992994006870399912088186906572791544274229957493772248997277126289132831628066614373291641777569141751065868919030295203553143580423561339949161453371906985452652298046851000953058501660059058647111260331611473272977548212720418986819504849582353820695311848068010368996710683954988964065563042603175255997254935171210855312843448641142849132253298087837790965739509898942550235651386325707898502063138062945344115244776951195717137900991644788313400510717833689466448757048577410695774287382635097747528241398043971053048984382502179513471231330614461734911274196149513879817105245351730046859725701228331713152415752994719557162298033494145152251342996789623596546092392143956716976564288335716882111171470537362318936195878665730139067568643254232268597753184904154765246257936375336225314371132226193895928020095424215677850487660996757333469407665803877965253779284424870250288860922904699069993951044449876161394019107025793400656180169837168258225178631593073699612215165407534371860776331222330505798642800452070068479092269665514781727935392348486777238996086622219495570081641199656420063870680849972709599288474148172683579938835647544424581959156582385766088526381123867566785559395421143377279608094454095803707562630977061496080542092861483656024469485507077152829477625527607140475293877986192430273704420947266256521574009175870212796384215005875638286089228136113391782106668808628267507484499663978084335749102687864069872738497042099337911219827991096907512948329739592012023636224379747227969142307856323026476366252977030942121794871375404444479752459806428282369526366671052666346199095566382559837256819676002262827590666922475645522083106971983853686649123768409023943694546631191519919762732132114980564922216928969189090583229996668863356809111846218751450069042086670135936359183580216794481851493810731327028361617963199817788099982686817563175202033010897852286706920501519079245264500716726148855514912077204892124288885028927546623631586252649559389943386286443554588150058623354724879604435972781907312813512991357504824721683464982481699558649160545752184278735521843289718087995519844599858174068928588986522565417559632137482766637364781176056435241778076410092230634881614923284722761207995721163085985402918619397788108236709884063080654668183516983282413873577026923613911138250577328015624531411777067669268214914637621864140510146331790164591868107039374364356005915232622230595145010747897448202008158902464592516070415200966196845731418521364512609393057385941215165337863133044498424783309951669885951127962297280837083933900529968139010343384424176479128814302542795924518906778759193791845637591200023021367253639647688531157560344166101195143934633748056494899325148009397246714810008198451355604871253934659719426909316891682591090267414069083107994867621108568712651151759129875615330469679224254591083554100114113203538992141223258356600245326822190176351767175731667384394926020197036376740499172874838182706371184904317499694980256725146565770661785430247329484467068242980610094048946868433060288181268157867796591024914519378104322750139635336958574868442266389451732588640762510880832698828546908590883951001313443049402823833676452682846158870242835996180503317578664850348771574806812900357819567634161599275090237924177111820982756092719268829138070903990106880271158284930795985477862567400646247350831227445541410257750613638303121948531924306643283846668961557585280189637604041532179280068934597652309632656642502847626771235249908771062601903473132704770711958518970955523890524294731821135500677087131797254708642008164206268599533499190633284842831896465129242477139634982768986523089875238331363651731611408996668174205189496713131742906432793630198401023666941919806155813351281169564947617643754564647723866851938297330315478796734509964935381672735952255172795950483138993996124024224992284938961414234535664303392982767263604566063415988746056057334810855829476290902079491852743822809742423712674621040457601282686812836141044071806639939609613756523659468969987728327192620464532656673511864073000153734820250624311656579098159463548229380802898441705575735818432477570124713977335900606940337101144001492131735918307333233835015010045966288802026495719172389513779478332981787274169592960759621499174614310025114479604208388143281189507233028294958402970955472836850166300952298105043365941571924987397851997960628818839726068563306046177905994366132456841432691911552389201286418422549137119041280117030238037145969895398072497131357599516514491296733065922359254341664226765538732065294253972525701632442124573745463742662515224238653240973716463583615336031107245057992735464258842536528175593766414399405100402129440288329294308776335964474718144449462182384301657647871929929178585347830288815034494514570476084089627023245162999057912228600390182912084954289713408207273358599133540569542579426604964538694350918950151859079163016885957165180309527491753484522125063122249124111461848354637091474075135131758065463404097966421091158389294199872294506178030226007368880803666695366781258178264493737080937872215596486315970213134315120623010949455417271004539350169113545078251995843943228242692845900791243884069518626762527055759920261262235726229920492897471385271779198473920964937505047049543103756049215988899661972293808140406320064064205567010673719538404462489548881832277065858110990802505155817344445984930634960061439108136952454501520376107138079810536281023598113940007496971102466078430195866479163873571448329475749042831785717745725715224693840422216946015428245425575216258199540683599427891862419605897806248894564375331276234484402205559562080887713752927043732676520342460512163298654926544210192008025313332897938933631318458436226252748898463150285644709872879285395509911686989146591849471224398635311726808527932452226836452242042454300947009662824119280022156919191918295856535403150835993677234033042295705599369055779707726784148066738203429106575186113409895465068606666558761543341587277580811236204991075634045104522589455002504575307897981469900085342393856194537335644724650897679943085518061390186249391026742691602229216472234218007306789076544745411122398285177518698623777847221947951314556219612516273153672262481627200800482490425306022661792113579824668899168066322227613213332795839654747997580238134866529928276546222122006774285885786956504145770633254333926159121875954818271790235947755919922642815043989467486532526977850972621629827602138342867108022001356760788506970289784332477013346862995029006706443873514123306411661988650371767842053961079037008928094885086757616986759204310710488848821665412167070296746373231237719968289864992118625280393515159221262768648435604925149851333776165241515971598896519405445724996846509273269723945617794155824681637021405152188143884203894263619463310066742124789633763620420531847925523764343445967031644340671117862086148212759164453441541884008467777692261465409617894039756467702630500384308051720334665590848603802859912991583297587499640163041661755792471732063104721468438044390112154795310703332486003702578681820719494101197615339114049403034385587204513853386074857166809456630524535888313556593664603559875483101904202520391419717174231456179706744643135630335087594887835115058338308954565441843308762352310020083243652478253608249808992432366489994516965023162475971108984750461827046806924584295493529456843015840813500613745708347989686603387799839272383556146073646477124743562208227484336880616856336710733826015461358306805296948078562319248275941816282691955843424037415373092777194161160981886463636170259170912185545672889186807817811641807800908310807576433126899175230143669569480217286483109306324950933211870144329897016830415950735957192504045604441160359632925573874361616146613123916737392251979989099354719476971652029522899427452707515502234782536898607094774309385564289210479352502332424779068451070666121525906156336317107845447997714703906553496211777232552760879632484825913090600955809878471225098779636263173655735354864883239652909491612586990770659085299966268847311308846557258842892865628464732803531484653614334925449306669585262964182491246447795746386910329191945619846663694382217515248680269270679964014413803911487823701900028060816027872936822036673966272655751071225399707794201434502687541101697402860760779512145001664088389990884943070880208734532532243508253305489037692865377756450239564893746136890069777071959798006068527185498471579862075661030911440494590074304939210710581386474860770287429281577069357549109887106590670256904292488904445962997369120010267240498263619189191747614077020321766955713900652574298638704509048417553977126888902802650355252894131505659840940916956696981404210171534576020771347056666878047433633610185453606589092437584965676869686500371504201724083963523550085082308305580926762800240949694025228162078037620907514385696733317086056020677779972105407397688353052629596099153892128666296077262254628177047536745085815934726035744097962376971202112399223004269291243515506143737422544736466008654522768054788017252947312338138002353109622858274752826540249047946015173575422559207834154207336772780560787089179746361545597330963669584678860527852336274164410611379333174333319817056911378797372973803917278322762067384080601200145236632001755675311354263584961348741815996731549792401155656094959650005214275580307281206032492474261478678930987507246546995576306533396711117936929018428646559566702259324287875298892767648852603860699181545920725625954363108695974650577758123910039591292442156538060604017956963214676918423028878700273620212280247194453155398150176473497580230411457603065625666662142509943146310440352718201026418468789722980307564776684992306937668390235170741883219071360798312404174229799134019558584544600310698810073197265285642858507112086383012465233016301445406353676928700587468072942813985976848677965176300190807140479729100189775595853377466755480952731022604652306357942967755857080186126200651079674288097696049022616167597883418732411930428836562579217689887150094851742754246750406918072912305139602489705434654964065972477231041757780692938877084812384837043557916457988823938126924933242528360229220852890911725976906112142082847925917961299504688722085567251008214825472373248769752962118799276186885657914318593200381042284119049792348271669247370078246556734191038662865838076486611946552808596133106869521871645823719322543124961984352763807529467032125640528902023883763226512863790965529236015370566718992706970988762020307914422726868652581617733376776389061872174295751252212728645720988672209951037234753621895265805432649714956116964747643787307740352587394526160607163558796585602582928130307190027450952845042545900349826437466703659933824719594620424327218115236524109208586281805895459235207935047766125673273498719649928633135850384978857388205736924696529480116785979537430919960279244901816983934099273099612026479484057853017076197328602856896256143165938112036715162410925250793091556399809334766065897164676748766023873086488669098644693269836439379821183552217734476352389995720643300993459822569258135685453356447505503002084609690301959784773360559674134394387077453523620958590556113612980412084903299727945407367338053949465457171240500857125004512155424281230643929612434688357018545428074125963967152504775691828377256367267718563032209435737065153566600428448901794510514574119723250704480392760444465033515812847647132977416859833217936929677723779388843252960555935426589906100178596850612937959972738038801349310422923570162477225318867404245342530947082385160514044579294577729648278207903005197526571656592376025915600903330270946598346202369248748179661133538180071641965041581873031569921686401168708505815518461145442564026488308652576857776148379293914294799170659364269787625213705296319221791680183172552891212137844880851961545339763343639963405930542732400833159817300075899169810077197280380223095494384541262825272432033858082967906535779006529391058062156189526205305203342746075927262307923224542784366797460310563865657334029730643009002609240592157135410685258243472989077250011635582628186382925795834636551434436949679034038895151538580477749514400057845457726598372315916784010436607440350323969730398163658500373400391873204098081355331325745150137356559975879068023193465219951887323852279358310220322894306319152093879387186180161452116782149395763723350787187461295261225373180113829723810911549115786891661875701425518931887431131449717120154242092992744183305145012413409948394253464993604273726855745337596378747191249976529204875593954964189142716401472739988385920322294935898910277481097938918478303813719250251756702558333969913435841608048098380571300522948648239789281802898940362982610034583685563229816704913059553165071133559218400050460715243354552334662273025693018308084202975044672754855895285230531458516279545791481139179384445277092537337151249216065619696850396843146808468278103278941467753871547538577866599337212028588000188905101130819308194921129554760215661051646682754567105362593213012429214869054264424146694188332352616078738437337379431690048727715439713222081785869404253090606015985607474284434022559518216665046687267121283089942285380790633734788126892740907549361766206951236627250657015740631601597351417034495434595239515288430677586481591785071746910879370740143255221386849872525804668204319469565325752691688993941893205792090707696253291410188470991249811713405428663781995620287149420442762208860868941637647886059041508468238939612342686724299076578119108238835340747465238719937801392398563732808286884858228695942207800573911523004545537210232650099322367423926638124342890474942924752239005931377878178241418927818381283197831175698809215274417044087855778281655117303776480474390743951828243634498490058366755824240735663406240221359439728673938591969164345115195128006916660348783402139868265162881282989972904041325139724606113183140338545131261476070048324794454143756662418774822952863414380445533679743818931547754914732621761060691929649355217953810423043383541206812159580463638736547951370664864386134712721328223845535462074159067150728518004874000258777898371552760763990227696123831096007886799960313908809719541702073749651170333250106646299056737954930247943565885098882874644264371621491539415888349948443930968678954616091093524221956787402759756786383916793518017855517889900980690891198442800501438170202786090213884844971348158936804253935405613204161035979577644348109206770902140161507801595629206729025268493788866596717970283523552287566972474930626454777968078927210330673786519038806230132176358180988586951279742194119054848776220182673139962749412378553742546024094872134053015250537422823705762031350408315051057962378446667803850474233016389667001827445072778465459039686082634898363626471051490472690995554512973951548291060157372752127390381899927406361182192732810929479618153700267530530464635370037301464253020243347571963997016214114191500450307174195151031392230761831303632850071420686976187367565463111493431673351873081964087757528725627407074932652582433506631648214563320414415435373121347757313741746910069205379369956022232885947204851769732960893111495380784108261204174533088035403115029960942309080683930674063916876053580936034951959263667016941666934608028970906106143836533251764911290020811617015558810194633008608481488140833428779127864614773942603534694941180723121084806741331147954666068600992213677180786716392528042461952294727745460208004541030266697726704899572899165774921880900104584543307735072553877591707485748389632275344771738931997330960543865697801394002065240837100255732171556446170116481751205742538484989227805930461372712947322873677029409926902683127413540015775065897013601321352120614957563188085183217265392476978711618785557155120022142935385133107667469115146331958864389243608158534157492216335424510367408924391453813261221366826006022957728274977065226627684178277095325594087895349637017486771368691437519659266907701340689662726369438374004526847807851024718052334209975693705734265826537256572029733657835107625941958103827031975824885148944591563559817658979380140900954123486216495201045817201948800928990060394958574631085219146517019412629727331452398236679110492329239767286750657573846009088486056051815191530114541324360162839361617802370970060574439499302709540994582112690148101067625388856031543087697003025935799238998037008436478427290247166539582911776979272294598462786052809230430149247422050484585013417546849100048419594564021837449938649579759340914171409603472905655606958964600654312146487126106921230061223353344472621080394544476228529372751206794965987560106253053411435993553280676190315183482985034548174319997929605170172197674700505483455331851315844192215055209939286619305051878789962785596376870978849484155957058883279590356887059444317897427546280547099870312316811488508027292863636412689840056608972760830799133261872122094588696657646907266500055332425926458992947372863953141717878119116871766201667127401508521735388994247021733182373096820425957725985455952635232545679315230334307827623150426037156820932343581177200902897806909893546095072668311379328374369305282110367612677415788631813121574950879373545181159305811406026086700525798079296481075188928515619377795470367593521939134077301179137628816479397966707799484420026908367368350775993570112321965486846941835090829843906228233454828162391375738634288198082180617956132810695811804924897990246386138609179714081165985591305681987410658530392321245334891726822911415353559810812634487979372499372086537504942197292279502362698375470873115392474146911858719358686264170993485553225607589030627079377065981359243281552167631307802505303379069401286095112143786644149918179415267736954585291522416986212089067407558216209397476135206562074937984041645509324743427117372712722547598420531975501794266654957510993077614630911308652867604146142424004088175749659762611617531066505200864576391574259192158855660752956466819501436310908605608154483150920447334948140632734212076220174871703337988955453545989135594274495414449796467114252111325924627266105657089844482389230100745032072422387494785240597427384537580498391653933112784632159771454100866216276920009608445787599714058202438705363173192131989920565253062311432231172743142395967383637798818243457151212945466095132438455132300279359767305140182587723985138370517016973949112942906695404251721628521289026944650288605429339081674488998729623671759539992828258042888866793028280022546146220274857263859142491842504533018089927526881580074980444155281586767547498153018967880018260181620535310926119943364405607689554279654767438883055148752491862669328319602862799926375026373016200586100989046993162893920158298235985923251068802880014548334065185364509599674268129232716773551481293882767639565313578535445628292495439778006456744521159172926549464121828435980898196340588228705800979554353030268256456982131408349119980978529199223193373562466360343451737548271037333399946814132869115313814029278947894626737498013886832890255967082199327509392578344133015867210208889651647105747671950213222249222150534420408474491921201349008837324309155979246259971200898844329439437426882510464180240753839197294506235324046645383852878663103355013236821555718922681056449064740436129864751233521969885929032020083465183909650325642375087584235040710558572656421270967381123143652812300536078093221930748277247343534027813303427007474055264187914688227031694796248091560884246097766951780893191119262534381193404438198495468376273972685188999409118248018050320319188052591405181134050321349080277873994034020809192228472400433640713793689419032404211586245122359546306464134140334234014542156625104529210798363361543993235333657184963121581799542472290334542081471053696995245885459921276492648585792833250894968920144976865701835398312036591277812429483536910451014731451958782635174209791758342503266303349175741318742954833758539013720709901552146143930229148571405846422375668697486637360312051941847143117864062766056387303007986175237016985121122772394660597159488968482615308585694505347149411827766317286315273536183611092150713314413104533986964787769298015684037594613322105139667970237024125178617698434046858336146146446571270325475435464864452059729909493244427475903301358905866712395970619046686619865528622094940197618090550718996641174870771217092903414026216058304283245089804135194982181568086540313531717473972192065031836513524958621449114931736172433500995422967155866177596648361972120813051905795377508518331370693834431557421355572597032910786659326846154488653367390049828873424331924811240859833939897459850313740310902132586970229408085435916215325790600542164366394343180135614676671191288441452906135009552962375823982002454882682355443686001367131937308895916766957531868074697190019345816372240428935328921705523952808023564278972693520003260997437156829467604302240142885412072142421941718062515719289719052749003234925213329985456069097115361092021961929373295481940085557626911869078298156124555762021952389437048541946343259990933047798731739616455463558421162100991550236587574923685967664372536862401740380428866569517404130288859779833590939104738838239763044682875568973969431186750259389293301985196992712504417708692113382449080650115375205440745993798052024212837142630692486987885016038608511028404003153924547931375558474236357625363147625256059845426818508773232325274755838625121043347402146784043909873285845155842396525066594345811028161420900477877713678595357422427446456779696022925700611997949533614805686107299205798131621736687527915081369591843976667745079967266490543712777648133952656568046888943504003787531411198122746997656237166735374852236497591218782304839745588634714957035893399515255331954162682410516739650302572743884376285701177584787937391165493737525567650560841474211619410090026366195677678035304301211461215354931362466317222645995407308144062114375200579484283723120358170930621369940653905704730123500006887755894771003910032590647434494478141073651036091045786243751889329886597844113461782492806345802961830304986538985491994607348476153960981322624358230903615994378738054973106740620415759307737626010907273313537645707193148937897005915434883648534739534202340755374387828038105943826268580317571207844909545929173584217672844890675941792483271553000091939190779310451066224004648544705983818343313835347119938725315833008760735311679316898708842820352311388065242104179301709022450832468854753807315867873413008626998547981070486596697744067568465805968159981447408069493722837120091980794228915173468599438396656584319894766755646897545685160065516906077741862557336616851843481986727491517532405738362993051995536446133675964068390981371569012928820796995165062366417728971410419432987365820184884320376597059555658495627739228624037453046916720539333257286336933157533435918731335876286428298154529785804011747568240087442870828198944988149097333959798035534189782723062072967947856495184319194447819128102592818171966912447893635521027188608122556332245597929155471052542710097873456755766842547173540999444225000624551614477665049760867364667559041815107142516187888462074420713828499602738524941126078043209503282656992208275737477448011365964986497238282231417261984625540760726047917419402902824137015200021368948845545258713841003547876325049505075699547528070034618390102732843143744024727392500774605085141230187640753254639463128788155803751849168888607644413797782770121766907716094189543416208648186513896187654973685505522692997816246042076308536741031934153308912703042914914202322497681052319647975097548051610456663461514356254638962750810426095184179356112444978677037649663723020850320057125756567428539990618434419559247637287577970602721679169621310893602241533354084480699151086416452410208766086401186998564432442450896013511604642446532932234907546262983244804887328451914920347123283000170675891597190833583842068190318070061930846860679018415530662079710052500344763958306858129127713067653701963121651479334989244651583971524125470392957039705771476513400303054132646508395074420974169287175121984564053224191150115468424637387055178954052148659935022337378824557846525660730606820423760955284811215327535100077919460997895658083339622798431416048757620505973796379505757856857407455650152118578918749914520641900218413364005219255105104116839531351454040970745877234327334761168816388072444142579900062242611607994678916289549307805282460806905323261212450756931589172843743501593243066067595635277789765250127681423832301223657655583020805177344029037864746585884684297725322078687664762537120384226916521264076406426129025602611540154609343070398545154809398473833202309763986260806585876979116469261110772838324132016177952270876498258851624965435919056741222373256630163001039803812563731459008458530596085553965496383754535620787050925198621695603287736061694831058810664546377145436167890487746325995756456505585204902749158406344890640358656356386148388678211236679088678840016488210421852178793616039910968581485454335918262875588463896351249787786669164637114167870436997465408942082666865461505639243163045142527962429586960856867930642012490148545078154848403987354904555130797584620403505148997434170881991053532187917653533473859987898398707448243377087694179550477887645867944837459284765262096128194126744845782286045754639360914917651680097946711286119211172144780735798418757348987895947175843751468844422603080030449198414883681980923816542020108674683566962818742825340513760837919339866029468620472530729973873604045150920881697164770685049374834655004837956169679576225520094565949379352083750165434999798461298884825281728213362529812901809059463661737525772160237411155642543586353371712565122147750666445401332537512992724846282852673030624453110434364301169443115839668798356139611034863161289128294181380650712575490033440330089707250200298649582245213143903111489990103391171348942855855670738279781370713599518541194704790328333638002590435906697620896792637183334657685727663864760084218333427714217638104272338637516488277084635379420890739275467554802714192976799172550662509359663527212037702723383384515184391669071452484217948604724996713532230011577923795515326658981533892001711462889953277565783773665047429014739481129491692798709723226860734240163872088880754526635272942156229014942268483546187887891931111519447634176847509468540706573807382562645743051461420723441029428829637985897939680232910411074172632056023087053938403319662532851997912387848710314520234771538622832335279988580337230240498162805400120225267888053807587176792888634965574410503178317117027614882702694808887407323546575601502664426635413326966952269891054271641651267898716818395208911892622369648142277817029643448777812879760686052713870304069663927594870569107264892470731284885261139855026841076002598566279680916788634928203606443349067997662096054570379679837846320668132384333589530179704752984610939644676990594335787892355045589972951471471280538698132693285898965773217095885296042977904558595810524009395624455462292197429759828054071475152234899723218604783728960215182881984893637910841764987885546462860961015776956239131785073728903267264640382601459013647137962340557123089939944792957533668518965488504199349950927419880854229279128007622295849966562206772524766798829615429145858866665216818242048389602023915398990016433717817531540497654661777136229791975297418343492650946946666006462679496263129519315780085191390094144000023578153317038229215515859401950481289666092711080135004046170845914060872109122174573780799176664545782766354979526449474698040947661880550738949247393005713480529465012868759143061743695603848849136629724056632165526582699760605657057042956526456312347083639598657060959369635755623836160710268754014829049050164882233858375341232052399336125131148757366549563754149018955473300541593167283400840512828378679415301056012133876780590511229243361110463688499559341953029616325944812104734720844240101576033917983472175760107428381493958267173656316706944278351235642456538435835624756046172806893168553778389898532895362032677860733945356688100695769490439833466068896302496947407313793613311534958640801880635960077872975886127563916675740320082338413091716501191114361290420082489309564590750787816461138361858346199884877628272012152337471834295429365323600592595950943741836540416531804399415231777193662152426738020670510129749110201166625141548702147324198190872067936681118670625439230864772832928652251882689681946313316449391520261336938879115335715938465638240817314508600250532362940340374792252088570033799323850180303865958467868798582185603259536754753300876264605410769831499255811776408742210185651250869354905269272628110320365726482371151396866253298100659654465037694215586229045875003535727035064978340199294141705016587490861771625841352787803907850477291681468906994209468760641251558617145904514047569209691764508170207849391987479134962410922647566850160756497571882691452681455899334680177751524203975054467535203759342440670174854489887394660378108899127607469408223721654998357824592538201979593912331768927989471050694167681414842451894944560031819026116975722094272163730497030425625570946423665366053342576591628924915630800330826729588100134576407923059082541257228633204572134774085526506144746227602780206710371249860232779177076353068430477709640082517707041717932991513868101757313136576105307369332864864981728286335578501085020217152771466312998966390762909013245336371019901147576068397585293680490445935547702921480157223775383784199551168976531807644729285186325939572819665982156343087156310357813881763621246341898354321414030865992993977296125084061343052202275944687373194363268710789794494290191317532947719986443900456951900746976591646605516336736211341547626915494082631516388702340744854402382695148917041290359782540129916474213477219228097737433608112214058524586431539284505455605573909181275303772460710494387300691912583162453839265445152724224250003997063712674790662122356566641291314299280009147644931998355365245350290934445783128776185699514378866229519662202815475314281360869379298247576679341773983553207165667133852321091699107267996786002108751804232606290969077116174834354193131319380811357117322561170357672117642689203830457491654283879993617787966903140792957852955343206181966150659304310157385465416765490542943113610211400924829939215180356984427666840650533120048025349990076941027614503847582452742813497078466440162165826222830825240052788128458056171003293909801727324761312413998166242045072411105029313463406968162641115809870058755533040191316990445846136252461884415765426523293961108602785550457495100849601419861192734745415492233994040409830170403169564913338615841383986743226223386220119490280688357171934757694920438346632862807028546297393342586732706438722556572257928491408648995566566305858180709127296182119122958145319955335376624065828593605506154929151297383214104488961162949756196608184258256569122918097558080886068877260121965505700669814529481354560224746365805313550932835180627836782841815852456029863331981064802901505978448586576724477802910463991049211117325449409180533594828636208561493695237405639747413563440177349394189643443479280832211813597365618735160231388159015965942502091352371883221950845553084560564594298854266751450232124542628683630294063395183265813813845237279793772376142103848140025332725821203194967467178259340332017857080772326957659833198714835561535957928011112550357573475484616666624128786556663167533567337958380258860323524424053951950371518804201379940857449399756763087367185653511265930014965502391397583925832067730431672180684165079356562729191203782297854372556831795032336448049365896086915794611803053375356827099474645635735732937396463414779705460650208735302431183123549689970750297118066508280950865999368561184886185320168909794541060403625827560355446428579530203671263731175210312075562891397619260602937689441775072008243664806191401687664167340989820191919581391188746377208796468376262027690717458444244179780480638049756347939693477622628684279363689145468018441224276696935776497361247353735668553731100102318426563288419503948560287681029764458605232734617407381610027930908408279953862430256471884381433063011831929871074339552685119792494770628320426845376231006593772288852424476155775368497419918643675503026820542902376883505327645338829717160907267446730721498120607585449686722478641561662134668157460433624764705116067531205913788585538561414644259843277009783759515068485234901647107112077034775512887065373857286037705714923839632736954004151694501758294284285472566898751836153641869534656519089501470229204208105681180336334701396095295255750756414016744582148460457999788823901227789954945146373866274313610536271151066641943315991237711817304723283234147426886630160819743211007420727911399723248773355376330138268551468326657121553104859005346870073507354514875701702506468121640451308329303385697882131700728258134455807509960484112980511446132815512461269521457467802689967579758388842941364428856572919331851337556833842051616111604407733114688464164045621154925618683246120889419128621623849651824263672664266714338953535082310447523326551247210432165349427174987579272369792963746137222556062123167187608825967015127671795222589401477208491027088888656186140160753082217785470632605116158280360927415723647066212695846709597570597058450784058999248427290989974210738061299173939914083186068967354524047525257703112764627487652906970087696730757231670573261480289782253763499000826044318129227588321102731370601936247191020492581813115945288630055071631076967419660073052479291536184552729353083617117033509937036534930874093649668509693648688878070245223900898984080391066068136039330203330082215025711142647024398555675707463366922964334678164514240363036485493438879648439511638196853632314755005804228964370608713024170652210027880647987739652626800268723092793585174089796982123248405907090121738844552849104783130678998868735898650744737540251049725491714300203165468117324904148317140731671875479431588574390280508074386853012947264230373659646880185460767297374921252363154542006786657852698425295691897083954172611512646952684721250776197263461686190048637670177913921427893675776214454437647469739995200843126413924341029210509111717201495882019264111842361086480057355644454585007872142404998030398046075906334532647066398898798102969492277379752697762852111433737671845596258328895609211240890952609560965126417166706491073195628603344921225084670898685009477336958964823359814092010853865263206189159397399914374504642987171284621084715749826583057617886529951189799566355977699660173967565907820159135876139374302485051247398823190136088096761873097543770304186257640821826293920886544344959688677455058884583824778814726927881956122559338814750513737283983231221342818286723548976576027446372364686859664651058784195487370229419145366376655368130741759720733741233109593647441488479143517774216752002878665039100847786940840264622298832582643075293869039675777235621846367252955766579020572903875316581521622882038826944707479498964314511023478173452290147889376257409479249030409024516925469283087182371012302829369391715254809955384789496871133803364558998540764781299004190064650368424020771572960017957890323454402086439629241976800118922721325140093425407291056074459187073823171042793965921335361226971459008378774998325020289396204851434621858915505479693315688590711854961643030600341003947191746900386462380198237033039532208738608944664954119166892601295303556856305509002872197426592441922403803670491517900650057706919240057093031977507376410321597714570765731787091513114997022290639077899230925879078801563470762759888073669988489948442525476906202894225062495646737192196345015875524027337622663866817602607432856623260595821893443597035129025240056154814627582305597302304716594338907835001725115330206809952880152890327075580765132582562402988206957359920626704138299155050977274724954472991235927495540775965368090487153826109339148106689199200425831428016522859542855807083081627635812787481964068394315715402275927064756268590804114389484777844641345851083652522567646678276549322089167740410401088439320721905707902730471881210854426658015842467413415047369812144329911003444657866535232324314898495162343194820904199904976961797332920997531082586055080865769768317746651298125202232280807736737313790416567614030278262080607930788153071482525440242989611195294339394299692794170728076368129976488660249897882151463959826814410613065002329916020303206884515542513552488697315435169906498823851183125578412929253727530521085054239797361053971825621945981779973654235339945300307733952556233046950978218220031207145043686797065412736821694908814047983111598910295625015788136099357262178107565163580130888324025055532393285451577575727300984832326267132607197464089608883298138431944156474383308203280098479573579756516961895418494479975673355734793221665485784416400826263315994040962941091802302572072960553074955056081535118071271770377014788702377168377685351187617961557596862824544286977977373744815894701209390653913560818835444753533562137779509572769420933329985309377654184736257149417724543666070405924862031385734295895396275963215341790326826322467738924815179642335108881773886420144755618499506135947090363189157295459359344698623798780191819504601979827795291448174996583722177418434328654235609691335890238475905875853167551299578813779335421818292647057811683690558795600364909821068608838910911958822872219071914453800251688843041549331752145077365678419820777040834980993645700468102900144329413549634879566458734996881088058139096391781963421895943947665234169769192838224205234612017932198243553115471033264542541868806466842916784085922249010096127308108032222615084540492652038303024273362409608033307944732854213204332472727185857210021819748977796256165376446756407315706775326819317998060723066464022635263488752732026831733953910636753474817878130146921408420880132243289809102169766431019562642750883290512446389305420525274232276965903985203073671424186262005077317303479046108102000742572246363692922266961201442743048448942162108820582758698176916101636693092004168282233288404194331910417116650511644961070081722256425070499282286251795656656869906577457522111149705923265755964535777037332712225373532926722345254103143877331984331380430026497934510363907312216454711346087025204369187638986810741446348819392726396124177858225590965185502143328008281033359496241580332968002308028006829423308635744213311095263917581980109818243059829923420134357255968526591007234539758086313691941731620356750583323445094564134226531600101926647926380918568906941106494677119102317916234444657956943370159056709600839039615695943141653470473397142223640352445371529966259488785499986479229908145896142312367033924966421235299433144562639759851492433534930142464093155239549557706700008000285815163001873717533791672017176440876236817521545292070591983854367300428720188475211021272977766232765921931172952882485567746974913682167025628207988627240768690246449940657717206885713498011525058791950963072261117181849487359328153067504033384522246714633404681498482287416463886993414811606491548247393550843012522997274850056935623069100821464329283677330584777275140338441641978099932883878919170477233919033824183708904600621840287915186729722343153573610948368917488240436307554804556753779807305617165797062691185086157221671575827925520458618549545252089493222502693435059333317444797408797226097632922581805500994767175219897061770155700491357104009644360642355157256001150663102854828267664056684685985150783301392348255559255939776745003797079590864666153480624648431435408828174068531193829456388607694158602734444872201348015452204953390022779044038885606888267227376650061938227838618001209999839836469160524821906227631114471936315651876014795734116001786952033723489360231525302458029605681269185995001117277648682139246590194032165941381809375835664108417034117556827424535993590572004615016092984556768584332477029962055839223972802126136858792581459728385130567501359492871399249401480728716445689086367573552700231554815965804243639557387437534092997477469693778935622870219071511380573037239504649745477999711997119104556962733017983386241435202075780982586352284786996171531447634875220451739792336891779184477543605075207256078914845963192260801949750251083235259414734145202588048765988424321504827218382829941724467517238509495176492596292721889426647751761257950367099954731280227430752719717196047906759188730400774497520382374930384989575339917353969751145613201145507597365509464515534380067526776904251575438164287196391122618073796064471159039443634589130954723821067611703826876534704873474740048394424735443630284784675572646526429888787025920046859646842927126795847394380091950390897232203315739992610569407367210915206274319200633948288803277579144225556067224097593876628731753666615265753360927741621230305491452699050477162344439590654672655202908889939888390016994020513994091622037493698303323802948016617890104101617969468008262966276936838420565551375291142791215317272277972273291182437687994039668639841701036286012114043848905188268170880236224657761987596298595774446060213109577481464102329232754268864758562465541673874607458382136101382484227854805701913937554093137390866601602281981800235913104581685068454358383776744322777322163851751282752020035551824224550355270746111196624154595337639829408085772419031198353606162001405398178178813001631443764404169689950274937199176051105437276564517582336190209829684746103974025460488429014794190749401091226245705170554526234693434112454628302735020609718548015803919713448590289963626510432218589118860119426654421526478389241428815160691292685506127030896546982634611795268178541680228130249539476058474888978856360216991080330441058855312940289553848251912491555337367051634405543470786393318199508904284740198565273584000431260690316555401875988814130260045910333576967822796159864311116126220286941895512499788577020305587608804338003878249977290605333335017662206217461181038305765865477050184851325504358784743632346801458774664729071856699242021097479578773304954109417971061667138098329405442664171159856622878524998731667368924206181549944398060397811462513795240163959320361602539933865786050281148448867695692922227568263737513984317806939401019589949861709603433116517481583257694837951442561764701774490895129467411409422620409865755903647600921769223226557260554978180165221032633220962266992610780043168415393459457665613246105162254627521006710906767742781533767932750844560269181462826280651391239364179492774675347763014042851698330798857072709747532003065991859778986485049139467613599430626171802654124866453391995612464590467381253243962831156251842754580550810296515824610941114979271365512422660577036120802418423991854285514531974671003407350501656472142567092102482362937966778494310182335671059713593504025123769044897865296034835200170981082110460164115469432008653623227854376362152872988578137682496382058636339668984176932818659249931202620228129062212197179544085792103626193407547742015449418088920617452833745931368652236698226407953172831790870790946607627179062744262857892463206699393260674234936978335386100751543633430712319026852338489206871969437285627563737486695017386556734341842820808096737347854107192535050375167509544714011058774899920870462252143123177535340139256547525103288638072571401397953313435210784848268925914998695682953877135561442124177308015061539633466762665266408224094361165621635239152806340164534857908285143952609038390838396584014991819205060501758814284375396357374541716819620648280608023314794252952444263325543764925059028027137790786986801919091004124781155895926987554527934205479467312810340550229655796019951065546928873231448022332710089053163841404961660160293049940581557764671255295505531264306490655613455688457488639295456808065090241997252057027029538322953528187199782963444776336879718792582623194768208983241288494195565746642814276833885986137353120185993596049932281111966212919481375241658711502310400179172382254459578334434620476371826518308461402765573864818779765811455347914332584691860209340989792604243694204217076301322559137947410465916009326582518164769719140170548028752104631451010411551058605413855127009657713073598031537000124369814948905342740450404819460115924524099958080302890101469957105835233835988390993840268910141047498654585825682447564340552338058366204265440360335679092344580916111459952338560103140522652159110373013707746108194394742705176084806428477010362990356407616019173518700413607595109542502162990133733060492168058066401587250519110868319281056409186945138888496615262202844490552515549385022448279146230687273736203012289168526429225193930203311100758608853848917368988455127065232511313820104661196134621477952502630363938298803632774613542282657164334538340458457387519374923301138650992303469250542312788923002821744417255889686796685232585277174395943892148973183373853499868424687896736102159672588196874133444877303943686270710615939829112336774973145118048727062643688797223242532386166817023371591111021021915116871306367657989055396825433499621324978089757956172118779099911447047435216728363252781502623516851643040846134753966404685526607564966232366134741209984231437009468295750992037210658438099902839492659231366456960341703059008805704185896986769653851648394825989437950140703583958689987087663434835100916780259283821027859263493706670491066707327256213655733082829339840258514438494511041169480288123971526306719339059097683562698813975086834914253695730254020585310965224319930893735246421912093775463057268124127230339135089986807645500916331150975263783155465835161479384262778608331609940902359794009091994295303901738269863883140885651650108949747495148768059588105562692599475220666974955018185841824059381183863903882584166480321509619573855629608317621010393945577524548900103344698794343593741985944305221562457196272894366665875712467450228770937331459527387950433575512306425444522499878424002341349121031953510069194813252956932169898500829194361891752439856666874396882112990135365930464840245581434450223688943495455754532465444858544331163258359623908203568953227794025585706213045167185197954509992851987221395530759971316078156388381624438175811590700163769990259388436229192757242533186543179023906101164711000016634755747218076654536016656586155362108739700647167939230288759846215453594638807119768971082333022189541075649371842544805618756974776499456327607026449637683339471127391998895101550422651765759000049797292226452620292015132665229042538486286177619935108432832442880004604383417136236611267995988990352615526829169363770407997040776792857090741232562441222072485259701586763551849008791119093555259124283181243213960151312038064270399815293944977512222442683279156541440902725416078483637003307435589332109142789297059492772737659369886668322424372294120627444450842216495153209907778078867901416966592593419980856437681012849835830661682382480428852158046040049995372068705055553785809739693241863997776890335252025774278837050658274869055797094632289957760528833169051929040538717642453955702745434886834865712037173917006765117183035803171507010742681296237630302521899500518192235997086209308712085788940896046277862406396732662359126810652601731051743428121037712758615562029512172125196048158501472084330452956845217893258315627583666253192278458951364673132059268591354070695553203993985938183700694971264179373467663578857196564094835181974556780632194541812744508694403807655365484692201144589042610606908872545732798841019974593639209755046462576135311642161730537565875778596652988881413487450087632758460048105135726967475114041273740643168390333783878939094809032474293982835437494631118921192957630215491648975539069205210442853148523402575369533766357164196709033861020725662746854676997954601493966560130890757571255296071276944080180103857563190500304855000459876850728870358956519274982465641259498363537612744825368193975590284239607475845037435873933880375746870226215869972200476914312339227933202090519055105904610952965724228293802742971339628540580240834481991951481955730109916707588582360625157026519962815638518478199308998027252918261501667746158406848093062699365397414053545724528107123472789452619278737861263129522481162247454272116711758262761354045241101330482510185533186598287516670421173718805612477016041697141118809152796067123084768347836529722815512457950034260564243923549033077315613929122140482958094283343676611094589856471024225420538688729000152816970134841881039919456315044191123188769755159474336587125052473798565157926939189127853721623125765981579077111056644666262781760552229326320077612075151259427475941807980858250250165903030958889070105030706707063220255576029288506903409929389949986476831628692824020744404455419181166192009875701754061654490293397389472336751290340476145299354552728359748758204085537765891698499950794828136423967546143903668928857998941122800777214262786891940072576912630920013086927618476465745336251288189835543593760148141895872392358855016311596347271061776679299780257086271849837985382521387850807294313157578310747246485341782349417691572807519681883454405759758614145864350496039555953629663427906865407155004520993149353095375078907441589364907595926611505188924542760313880489747565228178609355393605669417523727354267254981725836995857044656498427823831208375315373120022614245081055208185897032365183143147692110737840273286863739058574497538372188772162274087341445064950299504542165744187237042821150391061239383077619349097819012865536430408641071734580076359900701603535695514894328095008467326281826158171281173494351191908390169843563189148086887793316313285004187355719073533120101555276844555380993211263669543569971568829580671175927127968368189182716183057084551041336070840655452179410317701480524205726369899491574809238625277408766875283488495548713971518263132225229627552283606765510775574914533933924168610476461698053460831208825392887186032681414943625676363146699046748807331986039853078856189110343528383686738882920873577031380185571524238839186675053990857524897968707620954532448668336416446975287941981816989047959895113169687511661989371586144966509354321253220718637821945694664675008490703503439814949823991563946880474517172548977163345053701204387570719388787414560809402411392429887998742142037836662720814810011341221144821771816742157552475387144162482173661822684013011924066101991443831798465632061090241217624762688724960443917700728250717663480737498892557032681501265386129028824430283936058166985341083062340636900742934203289422575296313552698582077176240471940609237278332937042531970599066656530697532937867639075400705512776779290427980007411130865419028268505295981620237540634451151176697862847997768004598512394407455297579524993021039900915622694792583603034261194512264293403401869670828362508928582466530034442069526642578582140553629100183304837819162453144486858640469526443651066698326350922859056510177125597841769605156463785202054566440558107816038323545675586732396825204160139225884894907474169865291083250865109813734788834194171240841673617241822778898908447157351815879610329513139117995741569979074389758536222434715469100456348565489984773930597488452222748808931561588129732361318144741514983176109658024081279901356798529222273547456874693285497815777615439114577042614258479812993622797592929739347823016213611563114920603790891166508736343691790562868769414444022659063946252225890737991196512221919613265949624818755300828520039064185713757502027215218305329501564451985364752018719940870476168226818240128560322254294409801988526697709652924422433922281872194351475257844333386676731472629206426517587065498189457301532270248780909512546874634343275860362761846039584849426109499242157895305538399870697422634674693355351626492056270506275774684667765913439900377868845786238332772136559660759571722914801034563061955069904843872586507004990353946911239927101369316801537210464659983946652548274557415167596119372629832278298885267772069829560616297609436633401858434075646637804579449522514432681552207023021966681682961446873787223166148452845016441377912261144247183597070734197061881264404746050507718196108353086880392786276690563617406042663126176163126804787058244481944377147886290229773242083244436793314969773889532305061795121879416858512245278177354837357935558256752136273008319969301327364905638851194369173449743652600654572985580913199748294809658350676356430973718868750875259662105707523532665275647689227948242998201869493509864745541225556333611566330078902623847550132174456384903005675268717922625321914368054477724595961604526041651617854331943143576896238578512909073819774281729258981521701448571986975044585199371128159246020549892916529703878627679887729718528119589004097529980247278449780385754994371058629018666000564937489644340972356149442384461481678850544257250162519040494919178744461485651752122203403583342430995101410135535485286200959804287773288519974355643143322631491920783090285859212878151323911673109862680985545967377172902247858457355251838309325655673103401715442018912944284123030367750959316553433402707436974748354432238319079087197137229318541007422398022520210820342433048655017193616653544634328084373348598686188427423241412284445917564201233829720784749262358602650724371158716743603639315089375690292903785314517910363407575303370664784009540598234143464196636586950742678228445472230825480125601615368684061907212363664901140669492615583747846625378941920159181712815916070071756829509543974057294672417904212261107814220104269759631606115071297686370385797043457495169310141577150692341051936025613389051013445096111731511219335563044947711300455597169653364038230666491776948091154690638303956872498677000933639438357253690966090260438349590810287083844970424413393748965900994094326347898942506599637054400873573991890971132413193420515006969402980225041713944936525627841480193180884997053266254191328399463285115225941107939807610455484359720064792863958017974067977963074751146172967484501549045742606525343655632733345665295698030565752578506623302885161895968576265504326892496577007891437705571277077943516600476155463554098171735063972103829564888811398803573994892859725917078647323859925519132304469395500465125227819313831657185586240604430453291199132902505656015339821090648429995617393725203235208805442695286890655072139156772090987065952284052574696679722203330378533430482792099880548226583003186919096077338484449829283632987143713713339005258587716779275168148037240443095799163098981208787256400114855157869711968802721569749423954010933877273748552085178414110617581866360631721534075763279710205329860738428364081016231644060536567939093168624484528200708624250255115433063438123756409221987897141028762028009903281476838038489946212041323765796014525359577622981619963600408960360241530035401428811299240610798421467335354254431967121510403894884718201684218009025705695063732655158605367015287143706822955890885785355228853973130752544197894997294134503504947947856328746162524075389226062638125481066763273427190788507866000327748427180947425277891087363993075314853792100252345104124095699344885360575196660735418175936927838889666150991806670597819784361916869281314870928915605455750407773195715236231718516933204088010323736184911897953388376805019649022252829943454914887202800244967718840407429564818789427225410214686662182754932025785824807451786693645571992068235129014099970861084040617451202109100663171563912850064710998888206680926686145967802291624120071244598358498478188310226333346483324947471533862636340255020760749278848108612690226198937157415098245536037154987278394554833377933888761923292850375913658318743473295298052953601769569782985654593010331977127296239325792146514264818736032692842894306398400386450613101442743569595141625308236471798627697623944823142566706683730490775314322890616715051127480174210108321740638488430105355827663684479401350385526795379182714577052062236589653348647436762512601183189546470788902811170018366420349854355995586154555350187062250647069947654116064544102163818486196017643791531875803799430790591740221095881621085591707371058556140254526439751691488765578024808856561836312866149323919638458781510835104145340653662511700803938629721884542289214233697899912926641534806462905776853168765210660798692548865665025999094530103992608063608044167521329982476403187286360324228598004036789844245971393566584379195641906019984813063336912781341386578969154678044825472471917597111617219335632714130520069860640012906636233555811861858322854874748595427270190176827549016598076027822867627230465177943513490830909019943555030274544628530288489288154001292549299043882526746747863796314715315245569598960232619487907941550167131154587751561630280155050075916152195288605476042629161117103866251361535425920411141356302881485330165339457920521261890231793269361269450968188929857163871141215943422267419216964981226483052879153083351988801331638464756525129751474504065147309935643158149776527259219570479658458439114794585662815190612058970265746475755179818314224213175520669159461217233768724596102165729930117448257212065596311669649868444923058283648262601845505303704976557186471367252485210871850741372635732952518774758067009039466164167641025151815736513042165770673790588061040899042806746930648488996320154531733239013616448570286995074544600904495014970785923810342588478730901374781183776067311305765660069030306556051452027583779688438999568940960804164728465317220321774243963652454449370725620889188592882342330836906260559305499194324633973396744110797725888006674847086599020921566088638033487518136440388774272220247511519779852234616558735866469412675069920974113830807541739824266665745158240550378652877728084167713242772342624329674795428670856463763894532249877072826099822687411229681940159822960789657253328332433536922397118720531461121721134240626810441205345578810399921867208499823061445722789637557922311268112592712532387605760166624634578198011617072279817696136685547386235904747332372359128338884668089081288975505967289451658199525869356827883954521912160306841226369211331244209691224893004091329595901673802788656907493929555120258013534232469525000565073733070129832507991508583976184396077491319530375286617109958128716450883001479184595972483277742195388978265691690546164671731182375719997306609161721453550301087733777537729659940612248250486576951873510043236462054167549709145695121682827196990088611105064167674800091262898183244356106294883846409283664634219611517650784738040024971406933173760665773871655409267718607702079625111641852086559354230298739565772166483879646816493060212191492418283148200755064074874583668285104136216731142121424411738512379118440343083544643772514025963747434744385306172787311812258963386521838345329627071983592037993935558596984595764100944149052943141435355012245720881627013441428532116034259954560985947610293099382770714901691178065167354135009022465839512626893052593247779934442223881319405167607684045494396750781270990769671013127430498923068421264230837867907678240833444998238904159223680532310036194944099659645361845288551730727909161167789751811542584682249929717455722407345780555391352296317039441001995750422564184699806826827120044825874079756105562029904627962775153614198156410920812984607395101755643127900911529643054143486689875052495335703478383162565879454945366627434160366245600241034347574184958448300107273237412519864214754623190707452413668850381643114197035083243649372387994055393774276485806132590375564413794874172528693976372918030265690007884118729775505723845408562784814022963288770644852518940835804897637992673060080711255544057942049285546337163211174922191863402046882687258778403077734107809054986355075961846488805098469813834567158473701140817532293405825457277564260955620815228904175987945628864574305850111867533539763504897937872887469733874647142911287717518364312347888927140106078204138355968944771525337423565648987050343048610130581551216445697683461530551704159398009607404767184755357323565904920416521165638851007656396728459085500986213049283623391768907879314623542972774696933795027417519727659468067079444893192576590153998273461944438959348670933751035091035498291845857183310104809887657382264153598800233012163815361172660403562464469718550633562029291940535736352220091483517240338490966605536230630201734598112974294033454163572785691857117340139368865277806325975062418760347753349726076997314796674333157680144148586627787839769261587606076523865198273760128806462529178785539249130353214024305876029053699341058787155243297036860698641931520160969554669432567407087415802753744576110392802650696430874427109510870181127678884711255268634873352933477889001435312155081678984240894266722926555102428227162225175569963825469457621230633236168264956497018587098404280847158157622842598152834145468895138666083670503096570575747868900087701180988355418190692855394530749215476214409408397339579912747411705749342896570359117228341801675436917091022140783455645094544473170654530115904855523787909809691770323875158378457008237422292130305071623023634182676055213278270276304986901585715405661050032658671086338289150771732299899328603939215938471045663441215290170819355496841213208422288380756669505255059149522236481630455392250403414543947083966529179073055750152780095148985129513100701552643901256306504088463632041891153546230795355984321734006765883100253979557673825221166209579709359724930320021481295849970525600133668748302605843366038298493894680511395648761453199213250659739496255677622089958257671990408206223626652003868951706777080951172683894523667438102349722077636548761646165390286319026713229532406973824090820380665560953205760040411878739548811271360370528174284471237457099994714091730324153902601799765515787195899491636955203913501094892968657692258500929915134165297766158017455867367315439484353359114706735093956820402525831136623808222771942762409671269447366886384646362663618912165368560633907791549980066793381765315242952404912174668551000434793937255304724533260285063138452731711447734166478790789866324382728775378035420188524438818416884746726029721553692558137037728161089112625524733490808331539462664009946907507054368800137621173877809980950362182620868189203063838990130719704667467901799450797340958406429472171613568839069813076347660351276376715785773926221354033081032807915262236916426846497786075424383850285022451658660950171673342381128409153168103695858979993026226039908468895652491977865596958695257886243273192564458683060422389414860800781242872736442023720576731627011382570998901763291835479499390829093446493332143153729534389474763649529863425451009192335174565204762464403223926307062467784736378097199869710093589320894531797521323428132294687183088145484668475685152376973954130811596626520354625577184514286604140503258303952074541944108082034840026905714435912127320270258015657227371720990543762733798092179496678885753613608344281073665110631267919925728030792679945868091164909918308043421665091807705766183837665576049680909827602081893539561166915298426203306152759644013650105957561892717639983592798547727685882643140852510837334969419033612572285391740652178492600501026135962569003916684639468491233530086102901513248900747433644611681440106403425554954197553274036303321538692905094513341385088332302967149265327212473335284423526035601106276908921984276004141355889424012869168416302347552487432901331036249953245622903893674307726019083117392426002321215824527875404772189883325972154822304359105259963890277953825784859030001400709349417198881893810699697929361586784707548248363574568472492612750844890924565841037536716915237418114540634357717227044450598233253507772606693032782323644246214751040838415618319279682947690388587408486623178109053984413537850514150463617329789926769370565142171429180518165657375962290149991881874982264285083243029597671942194181032136600608721828878985685985485723086922022977817979672637515497274541956348138119985914544764859581519386835028595942515236350935066802587163113172288446136071397300449162936389857964936995481084650604521982650457196600233108102213133893817490754732678573012614257598873966938916158652720087171972060943341551270695505456918157089992989190775135481145863875820703190223752647966742900382285674166502313303129531184668543080315539005243193591113418349507142446314628945888861655317618706638158380440665045123292841608717521240594035578586511539234466806236117769627622368796745146371841804893952385616124810279798525806119840509680625980385716864955455761380071218215862382150518868011805841854883696477060708569098272768413161652798809573890102563097884220580038231338680115575003590974620738750006625367336404009028359818960965986237830142006975634172777402786053650373262281152017411875793903729658024346554762101836976409631315510522940922788854715739547447360374245378083156552240950110204181466806030281781551870624386391763311108841690709415612758927750350489487718154404745119284199038173207497070442882666336371640416708341732070497912651868029249651131352177535607671636957260378339490748021743645808961257812509035221263766234092338154044306908571168215950668539682266327061619830878799218345748444211349249313339666403670718165092676757794123770906213367871706195652732406696795697767019422758993345769845460937015496606797945792283617072313390104062057273101321321776531110168041070046736730862456264290853641678357819870628004034755133415247377589497121237263094702396921364748734644456224496400223584844294568611116532735990281495392214674734834391466678025215716915771626839060798561979506209314137739960578270481634860807821484855714295339100607552950116076301046499679076143819306981157077825270384607823154944176645626132490068836109760099120680522608701742790238575267021139329650649341145375999998731984307263329435515727243252160705706868124090808015060253093887088339786649289825304829328060758809699191118326532118720521077026047967516926960490935012739047381723950538573800419207620630591283346324465141389896661723765703471541889064109028881497165178174230056580101986170909546193981758663059640589099207037438169615173316683307717662923973905464716841456755374123447326431184395143334778982542399990204878746306919164448335732101858200375037569812998132884439276823715680008787303426746073500538865268769394584721268508522331020345741131652750163521431036972674078863204841715958428379697266111265413717594954765954520998160697620325879675054136422556967208422022246020888636693076657241370476773930064964889611676620659553148564103246433082029348476292640412445684416223476767375924411096362966143072055234672468439495029164651413950153453933929077917362105351245247523398728794426168695609512135340892263846612727539396616987245796303869849680630281395360729818117345567174885579961112732528988276354378100755257878154872380166492568727800358625786083455418198161570744728928632072664606021632374715455381628048320872391533730520164913079514085540747666455758775777490456180193250143202320011759348696421817439131033194601302024987873895277037683240797891179074792445546058350358228711709867053879069715962233072048324184202474600962420428884169825187145622837155662143506645927489418102245598071688730706912208794382921025470953133419371491431850954641369004480636110395343320971888230971635018707305527136855126354098784811684195842889601321164389038471661861030253270591322669329544939748401505077931603431400734302181192335258604206345536896179928863219914226745490695674238293387800486537071816510592857971223445129776923240694216119043842555292242608609701504769661085725807509379528710711555017936479597861552667801976770053051797670434661633943049909188404536078975786863205819519832137246219813625873631153227446171301436522377862149670835539162760928569140105594501317009939245612009957571004232590774675427882313869689653159424992205401245183973973949102491187997461742213511145607349661603451652382942116867647371688725987511284041809423128274644078023355454271959233909977868818844210338814581694081731898449105433719715570972936402575356394230228193597484771240020407879590988634493841403890052834622420314501327019249235241532745081016692465072773307325958603196489752939483702655541556970876789315860511099527753431583209024279395747835400393559495266476504556925874962796295292152741170799608960955508043039746466720299077046286221916921489453821232974295878670322887085215105408849614975434108584805196495432438028258962720055308688516999104079730322752439675272671301316970830837283153992963528720615433483403956485768692546952318044743427090596453593741856070678054512928432982408599080609107486313436916598275342687297026660717352957154473484992816716000020055107949247511165287360667760145263086892006502716089836493301560368183820081038523545396299530997598048956570029392810592216861112662371090917027467324884984223769114365485664281276301439491118427367355895638555367366088191191099720739666039575927538155373118012765426695200417446512381873271810317475383877837526643881883265478888631554083948021515982967009848442359028070160282147204727026545359294135315330531197013385012468311150656358390405525728451820917089124550460306021613778458259521944171872223752300505483495924753689270689365624919771934233011848545997654286363784100215560490559675677956692861305272432516460190716306134418813028674811410806153202360744049233030298413673030078969601552928832131231029328237731839055737915771250091474384682590650238895121841517114916356899450641872007939117324972497655182380887365043512257581072733602561022480046053432365799347526791777199043724048456800300665732208184673118868263841773717973560164775085635168015477422342977967840213244530101196515078318166351865708086146837065683234298659050341728569539503384387456199555277303058757588549544751681400953480241129350735613460582365896931521404267395728097880094526727747361375998125677142152687028573411747450641709004811472403524686728631037530479301815028702959977784754992824369692423633535292338408243990382259193727672092771864276632431840624207725896799818883698538550733409184975727253104985622519266457549068749958841794257837792440129102154244796424585280140864882298012506925693308266664551710030649298226510807139555244248810437074675054638708201420014070307340616160878771902328836016725734158519951790014579672751071976322744462978420828637021877435080095236730337602086016785980606979768344622911772295307189111478472041885862697519619308350985195021858580496075394123244152163018448741923126559557604561966572105742304812199859114784047721642298019108841040466148548354152331084702911171838626951280881081128001270385756496895652776455027853540947831310657519416197576334332333325353185216739451253627653295918074185037925097923100355804807168599546827698145975575688521885376108550120023416747630204119308507589836777671882275998971989736915354174342315316058015024085994074727682556379257540310926375377325432545025978113861787389851240308950531440036436607719725919321595570973377138173734247643381001794941916175768392685986702527062585560107631231296406447085988938179118666808801936811476832532044306496052638265885832910318721699540361772068060661383527676804580718386322253568416407004878178787398355168053311634256770242889262769398158033370417042041629758364743104951800626666974417622589186596489212287756741408630806223401654500865287837076178618809823846012272453939256784182644136540750437078167721729057958510135762224423288566627043532281013267488036154438428363454817083831284782216973521348182948867250215452873648967587847977351018652158854679558880090434523156513165703045291554384209752847760831723196357254283863785769100245466256879075301009367217124490017774238873169869871863736189706962240173080812538431504650088091573118501154532398528158014044126176669470318612216139275649130552420242319662888503996099517927080684066156472836054632229357311991800783135880112090018360721230718166276156016999543695863246773048538741134903097200971981857313611986854440034825717571614241529259536010221038887543255333428480036699326234435469556411259744285127273718905286964885648841341041477579752030543969976427213591110063767206525762648241573461820954979076145477335603623559159291068472180335445647453370706768047127281199318027381211910528345988633096783545485064746719277221107586202294659087724579293936994126355123474980309002855271909512779243278498453136183065853763026054201586311044812543672545838852584076438442960659813139270528778342477112798332310424800064506455160544983603121731091380879543864484931237599420740820931204974927791822856353338400947697198919196698799050202256812037061518916975693421654997343253637024767741664841981575766445307332261861175630797757489473422178028106606847869713382253392765230702713748984936854546468888036633744930949799301646241268383986882194061251450180256507620034643808422113251476831840758212852644493995346688540853605729370920239085942036048569459083545867229619335340747822460319751711611886506334218187419032030390585449267966170717266552516671727303611146555033614100783726750357479685071480851844473657459450149289504711429253956461768421656856999394811805691130008142222692070703246208800021044435183983804674054811285870236796007334680686281668302630000668126837443654763389788073642544252902759252188876175594071449845342208374949154794999054291733692720204595100824851724203614511664225367747232617377386588892185727731899690914866569193152396503279761885875430794854539216569219748401221697553859576669284957292612691846055570755586801438860916200235701043331572978851976418154986358723261747716584511436564865099754019500059059675603103618126042644481326410990132300632764356687427966248649450983971890632861654994990304387457472155080929589845225302569751481122401178789898311909533549311111801053731508806629586380307462012338487538767098013188598154561415609784426512560060154147447594307014732232241926675188996008562458422592177432309087618205702319937315203640108303664797511015779057184523341163474229791701272764516719755293505286821321508252194185871480038076900441978427494087938165221486226155626991713892197605785095320245308846005398881063772363867950415012562271352537707574876500563752409740008220063538224514771630771674791932140357003589469835166362123427234048802222401019983300623607914938870399018288231207730940182732716152588023213400618743144615577294151007061222015176048443521774847046872095374158138009316353177973739277805016684524445152843783968355552353071963024894072646972941313754066468131519884457957485060084197213346069857448516722988778825498182443716223290748224193204783958231939464796818302159025550499724462087242795186233966438962732028026069582414467063333131529104771457385835568192125242691387935070822322196434158362604829577721431809721151037598220224340760181034140710816293687322333813884917939078055119123229709876359051318144257782203981988123137034658351146440845645876654329659276691916714663302698854828558050300710758220058722347704802185180703371749304845093167243437746358049109803400055511704036903730811037250662594156954226101170698702948616986837794825139070177469312146995514583829630647856928312111732232267718250254711607920665451850571893282963625690538967768275849819951121514152545718851701282056686078669843427429613405199642910311959186892823724388753904475995594782365880962741163678239232502713195928471062878992721823805208462399767145999684918150910675432890362357245185590868881150057738945168152118516177494997452425872011807791813056688937664886194396407689717874406447920173636847799831646910225575830104227807780929738104055296721018679806871134200854241161850691644720499527436440642903161038256418748752982232592591992361414624336236986118585284536116934062019245503226144919007799568016742802889946454634453359629910413239178370405336053550978133351316963638080452948209316000986314238743187276232190545760007854211011168672307280455977810269374380525095261388176003140321007756764160228793710140545696455636165773758588100582078507543767965204138192161246430692123527638266210547791021149608288615271576982053322231016581854743133365108732296503246939515846142087050586321344703058432652097281705635581469097533994589133806039603128525245516681089463022779723463601669845133571616509408898720771886621735176353662112439862803240878956275553352732020940751666934005193140506071196386146179990678388613443167985881136622271607105320653371213455914064878110322471693433531149966087172232604469101520340570491652926566138103602238434304311842132835621255156077804275824971311571676110331462585905095307603263280841576061626982769274223965946183893030148256379881745141335088208120963822251048799109902468309823716501853201259161402637772292633210184273204724748232933264817368127681219193467267057809495604206240371994323217999095578372246023037357182416982796673465066202742273136315542693152310331710422957275853569816761054261689334201589288278009712920103855642444536660629574516431909170600274789553396487998760351094310113402764049747044941839099776964426949850945722111864088828671674974575293162482506887622020349196118435117430543600543099211067655624266084714347605867758952863642376157728827936089799197157690651503347968972287561606262671235275688146758624931471014317549003430735667855506303365029287689416392852403566350829307500362067670676645804802748912807030998960707905022229365224106216245931527876752274079990837094717288401479027763707333477830356370982267195770920295440425535206526775458455278191380909429778338642435752107665170460683568674961973631496459444244014814367512662350639829731662295122753815974147130856522491456135584371404190433456992699966297956174362300401678362743636375761350402453606131098446483161182173852687950148504745929337948111378070125279316274873960390995891786191466221277587248016810496247994347051626222542112621945786202332125977157287821391981204469990756324863112348484590375381682259214773639001658084184957889650890796587982400027390317255963433927121495117817164915542174658016724030771865998209502806544593347918617616792702406193415037281684077273831997651658727191143476434232019731372325976736880240026996092167233183382618115549236182384877715396095578072482725030565989469449589901108561951686580941535858271550849915016771417845773971756660822847306056139360444468415770460927297304354622422718797005264384984943252173089756910456996610882282016069796843443417061570360974926238135249127195970335213561265697553823175310747902082020133666701880106378436448725428590354029519189368072918831116936541056425388837872125596522757451179927479507264414387139444683982355019926472015909873978608230511231500639320737629421735275747952085064856460039529986364082708181534756932131029468767036060305115832540726906766363351365396281956456375947647221083127657875846119420358865489985165156820035173373617011889511463117665974037668099480365176059527673228739651452696589108501504530728137195012308347209902981073403776300724964964612789810329464192167374410606740612102061309410931827628389232537959248312539291040101490335562898813614483560538255509316503891342541672441107312741043959172976511803704932392636186679725015896464014017984127215481544919498073492951504696674058141441663010037656928124098797696776118025701266108454134550813523101810419485998644994819628581940656975696093801816146886493379481219153296923651932265081049929247614182003582632686717960525050559020938008225845496191961976483046157365067990684456296906216917521166162361255815336957218686970998232713395822580896983813466331254634442571263932967354289924854958963726938244642066243697456019708375536891721051816876922330504197879717195091671269903246442858557770623834145094668894382133264864401777385482969194815014452052943339393842650261932076864585259809062038069483690069927597876294883664875444952113137241665452620318764861862939995291264616102869919770627126750677992793863042006994208533518459078328974076960229808679264979874034252759888956694320742367318013698822571435120344459679521833145320161221016403429264144937439114486929140348605397022587534371641901365623499373655381742651156970167300961403319986314479649778819377235740781100446596444728733800493817472963807396102742190761817206685645266477767235206864679847736999135560752362359165810410369366666693228543790772685141440034752893187934652012092682453797727600697110572523053270112564154832009975483258915526309784129770318240070048869410780020545825077199237090745290011662842840087236543215042111811234424086126672516315906104023274597042255601216091654099678926175116964644206337799104545314108442636275951256732876812618273138619082820988870967882821652736487278548137962881546309629333664347920732977666979903444508283576002328221543213440099593463226587022193534646899105741130897394768274317767811292346387042939598936716592390003729103147092352605454257519904601982077595643309242304566850626685398337525292831830570164264183632223824876109514258126338600827335351439273310266602240734158558714839563014471881577414866551343328185706629171625249187756367450490574194678624592146420549642225393290374457225420904051036500083472602755276535432079537810103854342923187269969026052946106684483595687968639710881971616223573262703094406363331637315012679352280730338734620107469695695262086470105423184784149623257716919487598091186022343182665569181792277758350080118054749064414123597245752193981771444653313124668495595712884233450908735704715258152939231988516089978704939350381437412247173049235138956439130359319845132998254441272378185312723845870546727747076562612653626378169062058899633064545756089925803970684719267726411626742232166100666153743407610610939984977203140232867910383641197580420696565655489452081668848966821668670250358410310931841098635768345752742946647693238115497051170110197779951464014383262005658168203571599511305758333094432514981490639145918336694062816582667301781026226357232380651081988721390885024514227367094991038753929417028426145848147786468262769107832095846267084836712541023327705328274206949328919003576259647546129142339635119017732265438429101369109910052040149645632419819985751282887886412810477711868412402385207575799152540061089310288031169565928959159060052589478154674376644311415558317719954226085071624745126191771272624354546853412706404298352448523797165384469470732146719719501403587375458198193000531240084887177690780826197568127455065880497378645167830361166033714376292610590873996576518284471186887042079614652581021404324437454720442352150845784273228266277026818319857668542883930879497099469063751744861649469032553850337832647278900351649913352558049149308553631997050033483677861741938872808090063513478056001222517275901183687775153223529833365429066344526367108669543450767632457425027519764970844338659700145717957538300004381357189149986530030358255542116856840094045364415449855308428661708060859564977039666339514672108824976541475372828128876459727346945715014551421876754035345105015740760082944583621178099934703534182687727506594922859642556653072461836385125340998444411004159570114355803374980643304288773288192946056449553677832657076491827719538017097970208173017695769215035381697409018448193143528134144615927111532501275506212082847034677694356727581356271427991428733371631547250862083976250913817382218461213951083137539686658801027871661362584245486774708117270579963470642872858101246919318754805821972819647488437820827291775340709181137972266068544335001392776436864216979383298706070693969756443355210884648437585653270761592794148257717451077008743189517625148525825244416717698847717244057217614644844567596431171215354710972565268589024133765455375092055609673656104446179168743588557220777845952093025774165149680362144063492799622764492249842494302048066872588893736582492859466782222511309176139671906263368967653492426004211729437078814756659408886447825079263372703733448807060712569715602970185960610042214477323842299042113153089260354010748653912991295701137602312245916272655973569843413304297684110659676677003122150928007596409944659224024672263386948682766336433388601782259609778728482867685290804340831415689361744254418733567488054748715173455489148314355240976025083350316681211537145849906455699709718348320164636130239605675033551977950567600677188092101628272759675697523345697629369362763249294845309577072497899958359032562787961738906557954788960257571985021796508298026333756779557933039458447995517778631841753082486951555285712227396370311834446795383866476750725347656570612346143532404498060305452423098957888728234926026774707679800789658234783642669471512077916876436528908707861303111681709854394875251308928401857722354518408029995135137672361508620292367246677159984957635449269838048171518791832197736516447270610256742880267387102761067033347806911940896232684404732936379123700764252944761508664166589156036331865262777108031245236633902729479278309450269168535078966153277839405426703276974299073921482085406597188260443155865470687270613582328500127023148694479903191828677683647939075068947635587648804055508787238870802981913080822525827495461204914129263914577480050723129707801284780137644636933770121837617458806270607643353879539312875173203193784800483829626058427216246287935851363679729580545221180534806169631127793576161188424343430527017746737577644423304051888284525440965976518900080960661751694176353022158323350363892669778441219399529825338440888657681287513086670519029219515811116295009344372271190445383335014643448743537101384128640552173043840501074569213003011743573244618920020366786932332589324906567095463069142178073585749999163355241001334533119174931837654994804568294459439027641958897539161581007866540158905346791584619984786588525708293053039158566291186954873606539134390850631902408611338701075159216986891177302185098749005902581769915221332403296221825456774840516290361296079354147304944226242033170702840837626320914904821657509157031846309865456578912181501873483781150299271572096578248589414354732241504551896837075019990224759617767978429559819774075015835238673715367947341788551409988884211474058641726074942408068204950474063838946509937958545146367552233450861952549319796033039010577080002471090821041085151776371067888133200880071276769758267121168628859369206423412853986497947822020285795633407305533108394083583522389594391872430640273695210585645400493749193512541786711443489762990045735733993537771593256048303450417109832443023430341527106509702507395741404150629659124467514293755401259307633324202448826828899992724453829805592194935353070744328503405570227942742023089600722592122984223747184740759804096876729801382755527453659551494141448418318229380983302367600580482263591547013811709911320373111036462614919484654356055143971436491940616011475299281707324882566108416543875619137418640935308538037070836036562779477632783051184445497951810284678377577825106255823974354555837913314970299463429085776499368698392647182721255157480021705964001351081776853629947210554387590272378979795870526018086818536818703215081238047519807965895857700735028382261285406036083322078050030255133960273775903703783444328313319314006652654808680364851123542545522770279470894658706095538213311245463980659501168398553531754878550171610021949009266317805362981304894220279899825200781538494711947964058148078111282226336365436837570250319701743455988231306894268942462342410195660270579191456983655388724092104490682802905761497144339782618131190485640618430457762643622176187170544255649185692767350678254644682349624851901323637724647511141314122250073238678925406836463390354750380451167335803225384410752688565472592341127942353959226598494255891205702210874056823381348603705418715253731816194171441020915027299603170634530828342814991357585368830329891388809652060145767474622054192247009690690016559638973354847714703542832549070301387588963594374351012753011803201610269910308291325036262282859999499317172675436200472454010535304670080839420331621002851741981378199145354428843462987009783183048891060142046163750647357474774329651396282894236060159634686406226643659230844825447596416544093463645332309517256176265918455212612735937550978284238829513664595218993692966561499651059329918582013873346964033270541273005370829544992805041127344917039613467600030767039245470903965010440082706807035742891671321746584353658303725021986800683851242759059278804823358878945015705265409887189762892187018911003501293681416131740899715970151734422227376607082450658257278140728942604655709703415669880104439346033716917007961191537114670630608100910992636442493657102193206364243130851025837525173781688375753122733604486673562075826501855496218605437396037598067913888492993823174677566655139072372651319819687697249997002839896666474281934345496352564911852195736969685264256501053360651344624808865378521031819777602157408659263588094003339194363998430734946828514730442903408994823182196296720088649729258216349812769198693678657283893654085892459301817714561831564276987776024405197998477442070199146008969801477250885733507141435228971197323622726677959202977604637962499642762352949511774027517393472245190344075707482930925103478602066982508549654157677561309161132328306228046797172011370735509335868015740897459239832184299663214139798641562298424992498204708217034752979524614281867699600389834859048480657143985853649721003191732636475266045394072171289010389255885928056616967509742731662815482749473757304416802607999861502067455129664806435159156676532029969028163722854838650595376895794895054554743060324405968611415568299850998965168719085931929378632978691271981227310656321447513420464218981815463111984831311413954886643971100203458041152073513688332592093356462620726265165453410280585355977636296874878716344374620558557557107590795370959558793112699257991511461130698486320993451041992343118795788852853455955896175413288958683090387700908384509995864778132092719315129485966419944239069126098389492057624250469181255382712293175727888525228986952562948249088682195077356123097031145318081251338298481587775882379912688969282034473026874876881084557041095268698925680634173922326968383263325949152433354596561110155617732957224402344724930175032712530286565223525927180022209287868290071259254463834466307686686047878432543428291026650287939492857603215217564141572918370367390053221466170018278840072954715371881884885261981056474592036501829397425496787505973692809420279552448375628859948755888930495775846338081892054390485456084564488842932664447764305918374458344960691954922983408600642974664222251653211538417325810891758607329527008673503156226240997670477200455155407695423039772678601925885075553610985735123823652920531975841431589305886669799969596669638785503494812740923599171224809818307193532885682898784060122421756019986850860071655027815993144964654740394749978240018374613923042484919339528506591647279197493520959526745248379521807392702014958546029697868661125692063754010970156961181226243308358376833521336433353881838254901286045232921688113496859416860975165575470545368167182381466637728346171847260075557480828191345508041131380594902566158574553538096925851195275901580274246622962870810276185826093894164926267182680544363555245094685521241155216216758381671004558435948541179265489657692602187026940900572384247231133753553779983752422264834423250233838504149749417504133804620975506007120654125755177142645983089397944680276580514727022714813583930485035720215001848489337098021776959807098016467920548430018532297544673073832013291761039268924412377152528555908253942689708879910702178795631399220714811264308906304654802406933434719702238704573329820537951421512777158815425193873936063372414747802662558750426751577957170929146808355834273303046177703543114084700480351411694292084510092623984587972124718284265524656531328832156553699852603216487839640279089858196611748838267714350161215181665996450752431189652958967410050024708371721919159431590355228321319736332047507711191782935342954574576860786722236725887356538428671219071886687598412683002804149558270250569953280433872235716581995507996902264505907497775826704173017712924587467339062956172369488668760503260295930854500726801021596784122528011792297488079648339573121047940232913432079664715804660609742898359414401084148728512534150755334296349410259641083647083089663342364714061254276414036568966063309850144119513154525392497890936260343074416140691298551635800273689391268201027066600982556962830989953242623119753288520793748158394414157499939180651009650458046535969358946792408416987672792341313058524794086230128351274859507508937330315467995010003731136727458130709568835916273995642807736360326912321746399265981714282720212970823788166403068262212310634275163674165174806385981348575635996579970559179309587180376347272805290016195027711700951145069815653312285378510585146856679178278100918413101199501088491343705456919304061710262722355388117488280832646975050767127868606892877104244661022015109925595941374864352370788935606196559852336585955514885952277499058919055847815536761528991238294208960690031877252774475960322799308908318911923766939882979203032908557294514791827564921454384117132508720007375171472327572134636300996465076223136231306126794941636466953693564148558497135575275618965632295557547989847394492158140822889775002497407834306344839053997196825762514067169538950630255060130647244231656629629962418345329965508999111803924235126647426157502206222402806685496427918863853807911224312122327913092690692654903933376741589623037629036818868037164751571882711010584413758091598148998276078905951463973663762172817452022871711649153247697989674523889303309574839759782351651334494712916690525292105964434570275996517805605880137640316569927679539705738030767919760854848233383155130968366701856821394424795022367424204212302359262285417345977860524362129342058440196591265994845511903842735518310989479422977424565539452852928164822011374954692812577911470554129939855589222868187004394016632988321515401936257544021321822477945363334156289005120145944526961319257305204262081414548859999828833284935698541030339266599123641152046912219410391702043712794675992791236261500196369975422094209326043197108700368264852814228564850494286462408119445464172879310374299468006035925050156444186106468790358042911564522464800440954567207321326845022121284315156964341265147280266923198673152389265894159013658766784032451981070559948979716251732420645899190974914326178781524929228881836222634477690633522334414146928765772178756942836166677562900586338831093902822053150822382194525841840375578012694526950151470868399931850875396867903390312422790832093981870070809781204423339120254653303895627109996208214313873693410360378488015921849144514017631016811747770041913935617940696167329948947330058360204673855755175002121487114313744658582474775130314669203177094049219542478516649257017846394610939042982166381001911418388724412690159616825404743712946383327315465464816592761240449475105966958135722543831796515743000949456350548205208342239488428900400600690656454359213398004167669101385750458400510913654297811524959793169697451539264798647677812083197004344765948977960518719071634910989602069538121349604106617946098603781534558599388217129161773746844405664917234367432674003436965346498815014240794559899213689115598434092362221814299013412398541290069808181089970504709322330520261636274531342550939374741428566969188318622934054215307421156070745474868680083808049666453800074640345332754903123582892540786831801787930518243208006710737864027807435603135407294197065840137574546062668725296555001618398456596285972144902241347408806492985053628259444588457112827100664031103317622866862242512988660420191035909773301541373919669840059081479017194998168768322738204449820660920370841294424125383018637104716697789610231727193353589056855182168145885214238921428672722023196588148356014415254950949942834180070711791281610405250250174037606378444918314050296837108906428126409339140940270471657954376717919445689073561095274823837120153871201668854245077310088077620819885127527540443365360654460597340893170907906596734060177989283875120566387053990475368971062659632788887346892828421887020805194896743685013527372359656296153385372353128817874588981983013002864821500747630885630060733742727242097711239927133497846110436308945470092799367089522407929747322840179220268750156016816720656009321792004234220918630838484055292021180230317832346457123459169677966831920810397256768018149253076398369862816469229837528406732581664412472842137164332348291223469212853590077162037741813521096967664172785060096388413883053776853548512902699419639287446065388687972176839818725293070895417283080531280619632047302790420949976815342298729020674073343619790001163912516339911035728928873720195385117512850324184611404763507293358837707436115860871857287242573686322625506761081447264569980812064591108109872227924232181383532771760672446782833019218417845302665694406033929042026621281557210217048497790936413284805451350906519783337177580369546314795099853736425006522279996749220901152971832682569532152488965424228818193761002386358583597878997963834472647004246145914682642424642474627625436273802013620968798702251426326427045375561080303686961690854746023231330995111219486205619636024709445974613275161457698017407706652318793631057079725397167102052888777129316643856447958412638967230806002823108441072373938528109678287025853827096758779201366066607044811044560347031587833595962776692383141225550009721592361714836483188844407107508933351510335200073050498785507361472625783346977788392002661209011789840439882251512498210359702516882074835340026650034153777621272841344060850149951104065992135819645236714620128723892136036487089153114825211760661137744016788427089826487882815167327058134693823445336819094160614093334050520619987381325306010248874499427002397039330555639705484234952984855561595072981758723477753321668424249815920184756549219743193112662336147169913597561366489417042074519864355310121388043773649298827342085719596244417153989123325231241178327293227391857379891118089202140843078880009016848869525729825190274055292735246650881003637836016667181653802362470225746699168703583131683383906588469985831154890226201651554443683073084970128743774970796810029927097146257465995814082919360717889365614172992429327009795570648303672036678046804104769587964698648291469018007170334272509689274407613724178897559038231552797402721722248541080934709005361061207134768180336675418171891708582986870480506728092143584504661801022742180865737754939221431103822449952841710263627533667546502145856301937664594323555299079597453171816603153065867696485083805959402516283851357941258154588110120215675544910760850561822109150240601415463637691670294372037825527675471056218005849897523603162674840532153495090554749087459417758126994723683211407372072673943305089115942347473667814153195334503105905404253539709052599209321068458235766086908817139028619810550059921831979796809080860959157266944852764945152419875851090189465177082304121546236321789147056875609437932159182736736925820771097803723162434795695992375436663045721702919184960133565655590967224463046524595484512855817128022275747196101002340270836654846433984886983928322326800186092251071585845431438690573825141049370955580263403796752933100620372874387774120999175039893888053510066881393758778991305161051002510790162032981607369234317137505995487312987753673613675372744116685740190392608835399801467366970532000558263308864803860588896091017538314351679142145844128808912668498647133209990908125238547252067053310831697423924385648177560589971352047496940699832805484664365353780299975633019271438683549555032032764500381036571496222801538958541595873300352921005175072788152092162502000397387152307205324670241134588924199790089611491524359979563119038494054182292772983316168343558934284575648620960751431043745176707202360720334401084680585070768849859169834670620083027583774175371647604434507384438091312887533395926836310721417256890852629167799922052945211196616082332215166813116644673376449811190842178446093674326572989532838123540060029666150878305107977043450489259374303069961014470309159994375461250169519312351629421336472583474938681843786397327963262660307676599920612353779399865319067829349670513004687534317180695649641600550341424198937807263188684185193877217683939820487017099436255769965917488828428182838035281007437294647817849546669379043205511032606447108614760774136921604209985984222500650029852057521692389706098769892270714713576171229442094302379611071206204674796682969154206159583310257840865180428876274384839289600881567561812957491666382530248882647180478777406825264920013243728448255357817685365725297100917891174886664051691293837342865980072943561088736017200717812400785883002967798766627664536802167440048009472435024759233263098056559312635765212916049821718579738555414855198803338154132156375640599199937048245253249788030860039129755367294006783531938683703250629311131780085849020871464696640780806478339965753824302072707535283629769044334793375711754101042283188848485583012558841392419064424721916683043606331540963380155083930473516136343576851463282816607504539774067095372693624809092090852680412832848279195494668593608894912456276393353055671213117918584304224158853302230049710292064571538493358166356238164226666321675150411334630581015358596261630957142332993290644198304105246112856534870845577980927627070737707390235988729935122099711192435980173275555170321420272288712772411257179697204529075360903724241040844907534459472474711164034278657227593234499915640934179115261616345555585717897284967646965717185210568437325472648108618940129225790079303743703137072057938182108822759055808905417734191841949459290597879588178900199242458842516594759611290730934283477305396961184120421548828756855946806348284356613966240360390170355775687215069143048882286560224729761715266042520112182849476243274472876746474088793245824404252071884702473524075916789915875046549558668666277524722776820296895439457929955293241640859839669268508383476975781560578327049617511713922034309826996201404101704746024354784776260355187449197282260736124394878528741384098438265219195209619696885883379638635580582452237005676034458120465116313465776504247770735514391798564471582440535669433892614947438692526507835047062706780031594058485131800300333362605482990090982410571118847083889035891646548403707980283187605315282444324913481107237196123205114779659246088521472640004274181944725213196240299244863285685037514283979654273248533730198838890668600724911415727480729332047372173062435808794054343560805353779972088680127047813736330208617673038367931177204502191168905024292293332724368307132552248970704429341184848240966267373141962658079709022485075964295748602677849057118345315763574546639965627770014740940485914601187528718467472974630961360695917439852330693443946522128876769026011591132201005568826581180021168357916594803395813493266578568637746762739847364712648501737141598188145207534134794090044548128273546212924369569451066896627488923167797124905442239869748613571239749183611582784531537938049946139356581853940271492138842779420652195999466809753337409184071281051887788957535379030961124267533085035281870955819725023572359238511255419833255646816072011850514817658989098175263545745793822386678948074256787350684305659470337229488925418959665211413649195196396300036688315936438576991623467320925660534271640106002456253079385186680608937583113286748395228708627663249419417232806951280871715674184007756295709908557215778558086892064091729086297591364671869948281864081346626788845132643304228216465686085252633168291742052482915318057219558888377367533753006186168177284309451783713046393549685219080559592978898846638415117861255415070563087254082258535912829044539159607191269920688640252272598711053022496156003335868363586906580336984379270981751113240305578131004124214205699306343304667670405982894013417716937763549433284843394845308898313070442150750232183136326113830998572194696321792302610954369390079831051729837580471937958056515698086946913586593020188758204841767345289895551075480889996693520897791517671331977972896782467548367993133365356086865811886927284610551440556111075645097450250834677235780321811039075868742718114141598660568329371879790128793667341120038502245482033715702457570047286279082513635949750797991808217975938221386193206509077962870219961626395594680370584436796080351360761666535402229830363178354463870243588114445890260906778457464407673700948988476160488681485879634185077417111520668465038117168362240817078163629721568077107939856431646333610720684399253735880754238167969868225670889932402572012859203907911936427528607560025514336793048498391245564354354404675406973077538247853383310537153785243150927703286894243346901574393201549212345136136376295696084521456819522332287976285391926437971557680300812296687919532686724580591763473238316816136952239342473460598116999336932668296919251344599207277734409194298582737824485716713269042478349684771787503044216161923211521817935060634470791710353661796269804369471371565708703059411299617290162204246966889572904463682745305852606670453595996598246700805878623402680608359774786860476447977768873765224068064259488720495690406790774663083311375176450292505568907008331933492939701312137585139802963123798827748819386633830722321826426598463239383860937855346753342502768101461259187380753149583604132950076784804628673087108486778784136869475413095111040417454222199245016425247121781357006941585451832500876653842791133936526257961329365207120168016641419972442669057282211609655597122504843774212837058105000912283674890675656562836397098203080526208715423531548857017385270488826398831864813673703181710638390959508280415004919353516815523528275767551251526232896051818874982235758927724642560766017912724168478303929396276578508378565278376305304278180443912128541676505833874307514936200165803749372020456910189667792404630946471909865338131717872035039788332555979056340731815069847615073578900483241971319454937721579374445471774197143945631725759150751636223330149237328386730323112312609539374452124398376091216339487679839171016894616844723205278409295312975547350696400979504498753929496363126848338252229535999254665683983551087796326277747920557992482839456429851859982603328412426918882602919955928850159170869767527531613967568814499460918235079238533586798078454538764570879962125489001866168161248474780171733213335962454233299120787432461933558416654366856716409493355437443539633603636477463714072359215492904059763206072869144818923407556551041816596428960361098891475411005122930552693760444983556534498934603131032359972222638679265258945519033029427786725428107207424125146374399534537855133314951928194003385154190218036760960621787279931246016496516092447159374243387271242552725146723453794186775083009676639939260512778823033557916646481748395461910116809016173191204078997391926567351836319826668424477102210272723400426769446051050431287842532282351519453410187923359298484087318355315113559786370655357325314288241518429288904169739435845697848180861420407330097385210832139059567962517485634288290244904806411512922110502348917123421305765432805361106078682537810933982363992803887858449654436541141889544911885422507064895554648588374186823460772657602344626475151413317522102784272869716118658141032500578213463838754597092527190489303399567443382124018130603131382738812654999033223528176018602280021831687754934994366949145191733201960682820641419834787008897844072558538575776833897138618329270253083745451665569728808868233527221783872921460435186390159870483008284749137730260200972018779473210308850318969340885671465842300771339537260209309130841491104889484443672467009161647235225301810950800424740925837450048133042781111275643959589911712453751681364198682256921457253625239708113641491023633670805994119645776028304077026138872398794635636359591012691749357935917709761509986226909034964204693409377100129487672663014303978802930439844900628780327902398075331873595345241383472912637117058832637267845463939078916111721734658383897866075279983686682692845452532644468765186865429291436234031703396495451752625282511895697621705607185274851289985978220080202385928564614417092101409323882084227656681311940912681609743522590342231742687567611558725324754902540373268195604243112432968708490652379065131331735579972383303754391512657868104103922721569206546791794321016853767572050831354980983025458370509168334488401291667874098808113243190913755699221268888130687943977063471277274638661728472863195676339327824412864208794918816538934866132549254055280157130082331470981501540742650536661743595563656672855874044928012984760301505544039900086478239249671980574735102652512523620528044192708623331799609395557251506035790106087094465195251408407029092801304943761203486465571260196240666037021225816037368230281417543409046000386262802073666235420361130644013030413108110687368513843718444991553302385785756069434969531618082578220229705629498434042078556040629532738269000302770251294935459313458553796765925079618970214351773265701759839032205472458583932783075234616224234169276388963051031980991563254658645178494061535839462599421220642539188901536604211333951765431469194289014368228561779608392811770285065997032479799818896256525620429445285896574274726233011489769873690239660952795085943751907033456836518051020619361761775250119081952198800222791333482168120550503309829577072040649037984410384079944461948062033239160536073664555503124332463063491466897264985392011403343774593756422977785639656740559428875667718685378664022481783808062507891271962427509949078294880801236477296915106533927550539022758675276967872903756712992253518330319660652138023008233240346337208794765236565353575511412460732339138645568950459440182094540845778016360383751957012209125785649131176663399605640153824572099501738387007124323462488858198430411441219563345915972403534331860653215924392676271227097122247795254164069018765514690165560933266468579726319699284199443140975484738499278061768146145729047311069064638431708100156340791860005553148763798705180512396242847849162435561550030326299095977095516811961197777455492468382444632005352136544488397491092988456069806941622058536724747170555424351928481365888162319759059649510400526794010251419891614405836151531033354900678017603909913196668718100626512244646736256547262020582405447877240903882642437439107963994547085547294694514535636125117594243558409559609658483669750885004464742273674699520153482677277698421397625702812943383608479886004264825627244073376286430423542339498695283397928964935298643363150207339324346938264250679196964384987516515705085294851530081150011421410138149761841802881520916761928934057500149809151058243876910592519846392402019360757481239353946340601022565468103273679921665723638214534658810294165584454828160263823445475710895731693728431833059412752059817612682813588990834993311339184149270846321363256790744769389880294973469376483256599315149932034697858557054321479358151574902095934311857024627533684598641365294067491912086332545195340309666552508851012642823583107537027827136447114625359216404580150950337564468280553912612805750274265353595459234945780450867673357683950869354472516815870651429208887506816095716891473124686550013887667971218401545456659052508423503074620380746524530519892494729410897403433919663539386764520812048480313152597576197693358576820298148411506297835623519997799913920393214387452529537886788331224938453360368456496193512611808889482017176410426545025786526942891167547964609268080708005440568578444438202503561515889000730011648160766635663433602173807699693364304650356020869399436914493183976385249045592279706623286396166221984107926088776387996827174680074180709666856718679650801636089365967827041655031801292583826860074781720515099636975409677351761768496238119134356817049122000423605876576218968662989153695632553068146800123008353246814640865396356689846332504013108713070046185637498110472368679104643054898631068475781157773926284850076969603938838413583379738646505033559266020111659763768373401929020969683567065130159752421754600962325396732583319262375351509470696083098457724723676611068126546693546998364407075926803168154680995231196667895972991088535404944444407230221348977475804423865818304135790409879844095758055749201887869099413892853530542772383834711992549238308963712833172786256128483646865294548724777626498553880312101137796249225487405104620544505366119186719723775749655717728039096781917322354791946318543518680845402656452540230994639281341315791452905048789878019248100039492524839769940075494725368163911391085534792204285666135784606167155354473996508085247192859121265768900348223019656612488375863544797165651315176077774869367958274424392733963264377339884513415055297927338089375241205412621159707127984332284918053496597494726859128469037961686687905276931033360073538357334002409170500982013637555902088778993303612720464795489686269664948475996056969027634800411684987505926754779859533142100638478461454071549619418193081723005239749202219648651697961192651012105070366037805233976975238828446024858263588154505686395918648764547446906947419268974050084054423007884344824060583517824444678919646720804801656616364738380329870918981706393235159877667440630721803879169236947103166474659751970144801893835767887958387509708272198339551541880387211631085617269603288072073555449443476437961788142303012760136121285008180791058558574421255511263003358951942802907618879373597848043679718794260221567039376847334251613224276224052787694931130546005313171434185683884675543704990760699784953520987547228864154024688044045818965762712409735754889998540588083092077073532372608500811505772737023672101854385721240636538240739650507371609638666253890274314077567076656876373576159638248576874710079266971729864427543436394750976490033726788500546746690710223399199411983817728479969275091754830885763192735469288350859180896778941801621859709640145591280338647651377983280690805248397991145622542077324826387902387082061351364336967265291462955526374385958661535709935852443505295039435088321124980788385819178071467508912347519869735050569045403033010229682010466006528310270177225673050024389616704048293460165162349680686146161628399570334710783422030799543667333403505824852638768244902349292280923980824082308499741961494337311164826894416586396715823797552775227097181314414119430215831465029612609010538187881432387541356278353279043103060277056108986741591972854639744764224396059364562923241615852534112835127213828351788328277013318607514770357030166201999118600829400390391029811657065352501597441097962092935433724667886856675080087470879289734041070160532393332484414011249132214250950188194099124742863408884877049556832611927311327789171893108814569485542310821347709175970441452019584205464394816418078054072642499158971847863568976924696419604325601657128070134058215359538894931004652937682578421178393163023156394069183048798932961443636000657347936409849287931165812314190372940457232706184069196015383723892904705241342811353778522167701221514189911997277061060967399239796789247877389980633094914963471235366739574841406890948636744143739868649390118816148023829249511774283214635133096779621235839472463479901297690562100255470171093601630224388338507716840653961286778604286610575059412731221103511207813105000335028347925316971179707086862429388272270203434870424135352051809679606257173067495293073698571274641794953597133351216256628857610504694693827197968851461132720046151078882144065812969428432940482671828092101459952532309871714968476505042792349311213705195377833840184693527438477807418476506090039099299029778157953732603725547195732248872952170334978504744467137043419399108226751217492055081062645111525129166797361459653630104519534017958060345666895356121052093779414174314673328080255831631429861699946435143670450394995820278785328339662149531504217666642553438392631393383519524713471866046408741392093054257775995355835672320107925941681432258487414747027155900879993282652930546480018992165574772915490424800606493625017560633039161543933244188846689932683013972312494343691950664841176627076191477622350716046095186903990586905716253221214143964464042780134869753420555652911827210031217513995186335000134181132647721694486022420193481887561103188050517396047811462324612247600762070126328215057518182034279883310483694520056910316386000768460784221794752886661596275716951976279681495224367950400841966074196515744076994189674006437550601606663042833018199150880869252779960006693690238175948431309903250060107977250149766134565337217648393766224788523705527674213811108622661096148777376235072021625531167222364711481769109543806591827058024189798258095418164481227022102492963466076898971727864720307427419103249038722929549056527302414852881355252269271711895404974576695981557363632142778136953804883664534545010516354055152577376535770925024030033748083832721388168883424492352937441547101796059795447614901253877233422265413478321673220027091037903679222727459744092970065443476186275803534279780993264733482821255966380924552256372892389552124395563153910134312123133870403417593063672355548731893132384911753826356676950274001774029458636775096100035033973426294956113732631349303229255886899340750607065412019404357395801788233117895963598919957123565618880565164927053195590257651902814582602619251794786335686955320526756000832632115141545080189724722209972859983478909538117505788824647053482385799279391047186647777003545903494905071153383540174075977004352429402566106508532862419437555438879939535204819119037648661801437294736911712176172343220606297487807933274645320882655531731196614081944667006759822576815820239822664092945837374015784965995882623012475675065058933490724660700057602480029870248309542129836629913448277916820367991914377215482879721015170119179546191704833292318000630334125986893034537026816927091033152639104562421262047550650923814999767875641270709871567299139086155307164694977721372564263368420060472762268825696851854434329124218412799471744422011742690800238054048062104656143548587798348240192717721272628498445084035769097861130555151363454195695851938549194160675128610656539462772151017380338260830320661787273241725430078676507301509277914024936500248061902081260358304884473313367721666156923002050240296567113109428738925358366807260111897551862627823057623284881724580395692559807989347924197625020238582013675022175215428469239947889388970134469680455470264983792852952622412161007116718602245640225430424104865739110373015997418765910084205258309153735826652829894241300190455095452235725161876550327004689862579234723193596452023221852552157146578964081068393484004622167871443639532459749950388444961698014859870248608056630258428498067022751747764169640952285508937635360312940766287030211970951273159213449609386548489975912490084975180351386425784365922928841535047139533845367087646214563617019201754213780379851356065593008026635432240946327895731601269532989058310131180668870911655199057292178561707474276146798313925585789769985354507235078277529901751784318625366327516282791701666392494973513500352792831994421546693216156904031731917932683504841901973159136557511805048344488970889138088263274180444827730001774790160667288445659376739088254329153688282776817434148668089427969025836214894011788721282742521875249959774401163769799399011284031594530448548059866501414653354215516380428291625012794363708744540617533501333973241251263769866887906417116136945076931954673716257398737238440206069364774042589106590028584220955495806172320081833712411420167544890776844465248387523316497982330419229160940080353652796816855243806902421394521636236339999385161125387513526149314655328679024542571818157259213627363397762192127494434224353609403806635120911782801581798929066087727871500014388434972308979615100450426217590073902886858844431548751275544955674388900648234881075693169876788377583294556119162922313480891210062389483811360452524666016874676240829402392044433382487034667191927413174399214803382142268413044538020035010169931603640587050156485616898105076464085227606098164736153504756630844030416175339220824147643709466760765744322032990223676733586324893129325975361265288710532190945343778732090681331705549082108046789481035227969163542139212724930509546645465629984199488158490402710568219692721662141902257968898473285115454693610693754362210768469103552031099387390217025154134433290688949480274077671274294314445007944259543280373594612655623264340705003532808416729039814535055075556536443679193082740644670919179949901784287802774060248603907702870584698302282770712929210459165854597958342841942520156672597447577849905158726456323174473517691744251744616248679843368860456478882902340987992860425732685931993753757285469293848978663076826176983152385486470607929751146638362086786596030362571776414500759949037663104286577883289867842000649517572558830404560428162771615460076898462398207968318397202914330942081464411560184716170553009129417632632869339465822258464397293142444644835808387978743489760569068953751035589514127909198042681261635159864039720897191769388740347276453996255989134325065083892778501360443129594712676664314868397120652445595968244731466404984151959650923094969852321206506103354044229371435251233928252578315504063322751616550269528632296760144894120462269540694311116263735054819502042317825603652411576794629084394795685416092970045388149481056771078711950080121443163471795501831016142311941445136411797313238315162735944123301589370971884038922088970178332878177805188928203572227010999844363443077566453197823160524746112125233001995333994716789464333913725373863737541136130046075959067141858838711005648690574596513310673177182864649613305981519190190124618752181406507438594652805930353708147914627143259799229687922652098353797279420181807711958609633100556290919989903469617202969630259237580562934447036337999656363210035020289443221193072095212035751138341488644142731804532413547218576021366507854134450695278088993766037897787713410925094739540912098983993216530826632659236234458036984960607501647855065255393590141329973901462451144741480320811797597105220354870121287064357236935208484377299360070200217484175297159681011308870199355264514169298397394683491050860765584610220869564059488220452636362573926826116400973638129958415284301142069579432245662763994483134309902228315388919220965547528719763953973550159461419965482350105515781653959601138964073611197082715837106525069415430040892647402247260414221735417120445039985319864478624185535148038241093265327920637031300358214493158875609303696235721493060411142985559179293907484193531698497502358849717496398737312441374980825912373216618079294425767163529090360042882353337936263685088218202395393479969948692545071194328496387557979929264855989924897511808270100562548968207549469182861532117998176604912648486841731015929897648761909149787358016176256303999071472283675776135675798201899166351703584049793777892811394684330578982879014217972574516227937295389762357981541889763962229369074953018506508039839800130122676824558056197847872211703711696705756319884250508997772152207590391175737506549009793235983205819642132472147247044126309458247759238756202781706183756429073044626805304904223094803270214548174414866602887025406680432739266848352871441535396877730999119560796293491476546093981574652267214059050495317377954632379638759360273452409170284155739451331539286773312603063410781950351571371622737871488580753633278052206515882395182587110439288278585615542528228285418946736913971833973911711417923777562750168572281826998844659252541875180719384969386014685426905650065932335360109432218736289293906132174376380376086621451546430436277719146052862822897060244011860303390206346174005923769085260288234571691160831339055856288352317386341752030709765385511843190514002856167394134316628176094636661819319410410838691328048753274576680114696186722576113296945040927253169643089859846544126901762376630426548686383310850465477379285091287642037556584045821426063581292393999750553875151996779807895284531034954387427123835226781896893496828012953142678547615039059096499663794867486676716598738002227950832567420444340041612760908759974427987455524780227846318516447086304746850196031666107886947524537475316721116054741392416599850955477347356147426744507037093715847093040344938032015723046098342976663806109157397119738174019605403156142291929312817235831897208231758736602351893612673574823580609295957600372370947520788160504746516384075134982119702396249038288905882877204984630355405403221322417814618248541937235516002772362736910650676054141837026255216636000141541688033382496395059091945936707970612649335752921308892230828732684437699225243990832939954321478191356718061337938281672115233786641836515129443546628430569162628890560950775537581893190009351751753858409631240365975217932444634602374506220672986465184947016976834477464910354675594171376497380860535426461833533132702540413162951536866943750401004820966558543626730866499564375083314987612111289463247102287451718992621492966105097541679429250477570494678695500964024022884701649152484854282459166122734148538858890094770953371434071389630515726327340877759454295264703205605124252549365588984681336424279449597016531838016262147964680980074219344971823283658209912791192202661010873955555826218653369792911784736390699756204478108008015904007710478878077090255410464605451822935384815442520893186608865648864211142564014736758576058855370301518385543365232386270196027862522933952118983393203608624534676842406155178110259913708311927057064423237682659383422434696657113632970631901967845098607729279853947980017319411178210349570375014814734725632305047263516747630737053311769579136929656833023276550218488176980164834735581792506625663728297652744693429727173384110632480798900798839442585497555984997976246503457638107819293178078087944336251778251544115242316568514683398181934829756881880617417892989541638352119002224934738374127379464208278718185802630851867429484369496005434193011861397388640642334964191675301898444132023956133861918232858614257684151297144144410710340315467572022825763652183382085999795726617100128746907560475828604074110723679945653212983423802193619307451704103676930108430884912535089603335373031820730347535310713984310355872072782543808229423327142115350102892451607789304417122041134781673336377250985274035002751087577970229603318238975461864109340838363798899824430471096129942238926499617562676799794280539598416414508713627899458493573543759309102199448694129782602101099263496493700240234815150164812637305875300555337624439156117306627710610881134783361882245604168191694288536778856367250780236700262339792707694506022382963728547027436422077014778188753429655405277947536588257582446927323187049378323884940791774047883334294537519971279249646399162128326827779189597336359479101303816188381966544144645621001144029629677366053498351429065075915123565306241496877595762281197892412210924308582300986546242446673686449615693398969093946548308856441741198799025269348248388673919309190350138961019466266768249068170405126326631831691792137148949951313281915169959906339398082946848832114133496138753353010945284003378254014953236318067987990833263312123626573587067470602099233156917937257215724309666883465396798831617212961119780890464765665117654202675305959680803223270734895338406700668754005679498974967597171899992858335025257703058950783665209663462289767418045365977815554788280846609836744867254979803132077196513986215018488801274976078531839145594205389776886442251614870995590546704326501391306875895223057154496923210992729993006377735194373471152988599457232954496516653459007234199061317171982427349857415419345349448818196241772385236560818775983607859774473251572701870297399613838357218713712746471849733622301110125213240535682378187058782746991623706081536170535818330316588245418071842856693447813651313272314936973407174660203155254909386460510200608790779983184629456052866139526075974851404731268398232633309719517769285575435507862298961918204100532267362615600503946258439789636106780334781409893770759093885569828749762011925146649162462258867924772286694944187962203240820568837895526376384827004147990166631103697362800248013196724719676986046844582663644524831927918893921304862709321390791162341202819532339443914496717417859849680134146654528088752408644973864791646420002542075118701017975704072473821006147529310271678865882449863919329097721133488359478609276945407713728944678601948625825653345586680706460746813008985560493157478111633289994393710541686352946791821389797094527043971550754091748645451604552846201406985956120916859723264379795484983088156364666315525244119913339651444596523856236369047566108373682530794165263704188770955424058912919235472251424165450078302549586865264735876586561219165942433413782825344505423090089789736553058087485594210294003308343611217312151448071050725903856428475444912412482090399539729104788128670081242549081063486439748641856063041463489239908177653632581375328826812150807978848992004936013776250238133216961611423587836841723915927468748635239285221106704685346514355470166767795135064273480497070811916343878326565470213204947383041666737613720184994320662086880438662930588000665782709911504530711321068327366937910699317065840783716182345771981239016841036129809826443675350809191007365950631896525562295798027307209419160763563464027694245928546253171603458955226852319398567340842096445856011831695089637034418794169829652416858175741952651585170570480845350325588098609948586616053309495118338081254481571842589278639019441760044809727527718639065792054936482995684280321468525292108962114661168745311697975974713187484784113820000982045330160191936734477607955067925280951483331146215628028731873684927407413499602323463049167515806370402819719191180643557910494352961809270666096390880045544047532950645074018249441406021933493917207860736890429494424990077512239644995065137100126622069183195648325822348216704663019960728727463988827556246659790277728125615349344213089847641183711531288125593715422798604364098983174755339958822125213796388443436739995648118780795291763990468626392562497501363327474352797324298564189496313835378078358761918651266863059748474742986130325686378618963028735175454213835346134418170257429444308644754514252427431311946771278312496847135111225339596354611362102215903138845298255865077253884169200705899361968742867055586202219150142697054348240115540075337048603782976205554333070400450508191295369886084576769300895739555022580232778184828440065060934995708881434570802943433241155239292676912420293757813789682442360960695351481396199326731924255647393316252565241112489294005881632698455341150662245421099261607960875709918914604672073497357607984311774476862194470225391212696620962616378442720498188129090255711457798748331553050798595846845079819755252058656878243614208232665334496400894540452138766581957767909634478722676584904828510405485623043619014815560325672204169495748768207910999253423430136351444593133470559325239414714941438600441348492582704342656472947668040285212377633570340139840057729236614108672096721118485432706020895084082779912551637280534596836577299002559921189012734425328087205481693491140337133029597035062676771790597620466888329626431974308073927740365866581905516065510732145977123035728266851507646699186227233516323006264303857471844782153218650922073639994919644025884086063881476546709327742747794326371259694166768369079392147863592874821180296444920103753680577254477195645434102131126610796744179254655249735523075888100738046426893642005405472783741295533827533446634547649620048536370456516527420064521442463434257773574467756811564757845980547568319370470084849821361313473651951463891860828028297039043430387132198554198301499743188661853900577468846542109440252135520516595705917519618688451377548340911001219962854973379491363542734037914071530060989245823526511866628618913718415338784611336054330375524691471853272833191395142628629690161816125308218660210920771977421842134950969074924715357137085898552274821320000165305438749140970187425676053060859879925238568566750644406768556137799545654023234800296968963409030226992697761206060253286103595203185725461363189805379476566572593433756610179847824284745312742461088287797182911028324868935216905559161995780180464704429273937542182422660368229421382553064871199004120618392219775213913388392391747249283081277552680062742190727348501774313905051919021311184717037877013243580465967436532935215256704273365067836903273036961206227328858914601670156501742805725744625116040506381195093269579909893503239996298770283283787729408268790261712662822546730633417226904643349113369045494588098499263360712436803877464954002981838275575745126906115255035939192111080724648652543028245369154629203609088518660413689959201312797919281636058211702894968968153486189378761188566224226037569740416401559106731153739933721156657621521762514157227002834385859492934862547953801948136914344048136600441270521162457175105139088678008715985028057329043603421129170232171516113567275179242880680757767587342852006057389911573958758018904327598279690479880637399428599983572423255422703936792986725156973881072929624411542617578172601346949117025885997062712631014706885014784338349185565528543938783097231952133744349994555345036261411550034772720205570841906537561506576694371293437726825185884159867032545439426883714454607420359994377389325329031055835531276168658701409354408307572423643238422369790415094618427654641856742855428208473776584580299177929893604719018096945508880591634924801513062045751943727349159269273216209940703489973357806012834643764878791449410938550922633249556082340649172898115456484165041628731566446933497442762691154974905819759040648780327217815857886234806207173290450354241563921997161440229514087609070552475745024661909810005693812543812539671242176191204402765385001363004000131825533391243318848199289293396658398737538144619635573771758828518393528943613353620570422151785440704605142237115701638934481488033485552817733325336507440267852533384024286491196687183293631832749777446795245472126114941907986336023050843934713266357945386168830565053311553485862463441062432272867344734342834411085566617778245301305902438102826965657563182235610322670217840278286534907253985472750585939859039866939349850581145308574087025526372082868554041692130070939129959461148260380346295874546695421577717115068984798103744283608738974970007301962946719252512943846044227956002589550123328609890113827928685041248425369857843390750965619601858092892906268277172748789429678941919957277828270777296084500619176741731116953179781462370785592452213623383150008856987838137889907607562798841229902046492710732157757333099140688837739909962373805297155332775856967716711527982396109088367284406697528572155619421911260330450515975475342982341098530858504030818115300819029999215843966933688837092152330285579795727163236110427065266224305201301048912787184106846123556253791936589144416976285187400183935468109004050914759690443709175795323730060796781788509487142275406976810967693629229308879340043431427983664917696785647185165853898182810576082454598240816093362471860254364167589797966679172737018736569842177896200146649382405275211750038406816665852030761115562266649747721116588229187409686084277144296595881153266241346641285292945643789646713242969368193797920011496561068255062810268010973690535266159751180884857018346540493833535036495435502415920128341837198160641437008074536307727031659973737059198759819561275545345141853658195136218950253799681365581078979354285583898399371606317947152320760004085487387880986230691223468480278931648517182770308960976675755195214984825578632503244621967310967841454505021445155959008659478557327442633231065710281553532730903120760901308827758963316996091078641453457126045261122957481866620639872926121531722356933647856641773724304951111813690401047129179265846777570437367672769687295268524420613620915064866822419476503276611037570637014217073719492039634451681515324322324847366816473705965961379738283791756304981616061989784893959956980972935035988114669445505607465949792133684268771967208767203342138056337485382599294890532565225745882525699460961926692400445176357023358267404665174241810598200482271567884868804778316162308267900177695616332993374839808790147337814867627113948204939563328248015510982097039953481252383821306190915108345048749925125805748173584566542739324137538686713486628410794696135099188783917261939493562482404663424646702160641297033247557817933140754817811099989790062407339068035557939192246595226432564265641668770970000901212185032638023177718138907840231400695504531662861934857181822178157170308141415885467620783233631596723564686378006189110041528669987701501230279085019703001350068313056440596811555564865172424256606592992503911799171785254005454668889630446772881214962191879221294094640028858532781575770527856254774979377959841211048603264118096590961129937534832341689543057055897812323845151427509022234249359660947023658728741208810117353405869588778965099974206889416856360100576981659537814741708210767732250889964248424725524368863001858915962762458429967363283295817626402302548809932797139091936530318090119427903828348449354973709127040520190772613074836145129114845729265212737360992439517179114539363486843811368621113899845780771477970281093889428141655250139854749462398847078501554822684195325572661115491554568152157475121395722954328623855245278833192405269147956828644824490168029073427781596382223586367223186962550060880395734420564287367607030615969017739916864915501143211268663424250322105455398794404782720937466025788798941468409970525547972864631170375854805204519219130557680997484605595840955820336756488359178033784247507930673800968612472972446946569963382961358167931533585763982291140495576296475335705975045676848933847011524531276792336519174912470548440451274857405428919650303243082680772976816668563466615131227123084118299853413259088176130316525665068483323489698833677584422530541497141448020141694945259949113131536390864936575557127222929583495480089494231866969581126141202281665258365627239252730595900584344382176256780288669425545773140133627076518141910106997452462644109812715038291567086025010099464081517756310710999313591401357572167164999481021613042512175638219018610299889884214180606036962833433115992175370315493930487368128893964147919913535489342286665975881586280913782710664286705526423118503144840067895225707889457502986781886813350877638389156443497014085125083617368034210684223726188121191398734591868380622185891998555322338355379727578329709340548501798594991872637875478645470353582669018312152889065135727659416711341994709730990863275384935185543228012330831720087127167998682238312880968014088094163263772799545064866604265461770447928903966733999735607045911960060946614715723577712144336449235204000601897020361036789205253942718969840792810000541730562339273764292283116841982667422465289070524957234446551557287629170607194146156426398132236242763727353604233875102204255285207938462672695024153004344755682724374997891928618329123206743773497392763118338337463917853180640217145284327739618000806976318397995608837993030955823229926512097840947856105762947505866202979955883698235611251543481747088310827268666246401042929008275148677985987706857755865793518174544260460944723235599082197056592722070004343794904240923099900485970345811463244494590893142735571642443420967759714135897716005108821066600635229211350008285088138736199432599510548047234184182193018756940028624556358618322336107682375740777788618149137608823944317755541890607597650493947120935261473412620104283335085387764603045110488154197041395510142255849420786356853242657946983192422190185817719012360935617045864420348878656642519667000941444371203923377163713043558390443073413785859358693216875807982224205695305762208253931583611797428154151285198934613215440514192984743220846228298229040481707293908300842613467611076314595554613275956786186445876073186885371347477858589311447914543417998876181985681301645184289282930310073675031108666109808379700803969581708391244719811051242764177468438768620719944678293652239181023683254543588942932938698606709022712610471570366349995437638679938465063154559386069148566892224926313429706596861352317389860555876488278399111156340082081714981095867853329525448488164586141304034694441238173134684592369184555954643967456143496889159224400724422661158987508062132999752995060041261400390276067826503515454740806692014202898161059322517718219477051620569968618339075852788114562629067297812000859338694047375028739152966677482880681987620470308175082259220866716026004138460732410455834318479316814829620034598633457262409476837075100980557600958289657693516757870603987363187230593791899786535875491282478633235220191662761378913418952197123614316714720011578609297605599290869550787112253834639189951297561518652772918745227031703254182887310786548263472075267932109755780565241821635888426154586811142733985595467269285866007315331745852097061202381923233772138296788085023903989681117630462275786896206219170601015728320834951572896620234925283541169514785725831027868770652830061269491069603199302858189869828477616886655179508605299446848395693680571370901983856655791086182635514474182881947173285763270067171631808859132556026868607019148640695998411266991649901301123465449602526416610765442496516270590975382479464033220386914096691005744196987012702702934011106360090992778065064421692218812894102689350044254131226217911237246234782443613961539860723180419842370151913230747626053073501217897877691019774665381970695986975511881755612796738146781442465822267403183296242771188799541762801372757839015292826235367199810474801470797873545881275377382957969004284284031998472374008365711067632628357059175870298230506107381457104456760420684100134489088109292038607297845131328990744351366514509432616255981965496900455216199279860747900079661735757302918019663148284088093661033901411842023917029588611475964715026622023704139891819756249686107050022124633618295273805623475429756348004954102875051239395092163035986066793355119956803699371210051618277698834146645057913245641236595553297265802889439441166115550643233458396171550615681831992886285588907705410271280296134028994442882521630345257539991682715775812100562348505462098020512850164028268581756662809487062349138934517850611442689788316718838427921870679962714578602246989185852886108615832112534460228500953686106807246343280191322968327983207978858932792159026612543459985241714777417653326843709913817938730770523290538272420515994298416617087805241563933346839535488565092480912323017675713264440677010791688238103337575283617260536571517145466755778703052799451857079366632581791985695195259119335550513322427794532770837315227324551326936643863250641515645972292012431968197579793362277575406551414936315716005370345370571284594421575627247336137657943847971962329035827774937181218411581447930312203632533481276424770669437629618123692145455457962838448396107267845389255128115182352789407560887586349086331536822456876026297382960635718155865552792842564594035471638931646801864283478755676330423404548696043604506131635203659215605419339692619232082414987476658881699763576817424009067537277780943336644653582811935329659807330763027363657360652971799668759223923089016622284010409342839074116512240417815755983886087447117323184707568091498589613475091901154042808606123595772643152578895336690306577790801351205359202844502604688592792165048696098708942973673413071653349701095827111378651127229901942607253115245061606247118278212493081070951989961612766407896656672684188249688391373299240594181803829614175666614636531403009321649317585029197856724035647334680904534086344823758324364706816333656386473963282772583728039929989642685400495287072200551675239445185873095742006165015610921184078701139303375380311090878666531230022679361042881673841160543147321925363864546965536677442889742359757238117237869302299378840244962622365443550690920438629715679067239750521150703919090758410076718032106120222485840636631585420643362571591832291320063765627464001037579447233885278557718429110048490072283421574148517602774651178347923971220279260210158234799087531601100564660485875770068615261440560495741966694923624558936287366124053459752953320218774160393118880048698118331395885360868421219402276493276710522857523383354472215575088959154011213435468685549529561781053653146695782020150458009361986716180513570239011361029562663542445104789827489901686839616788953873012356509879800326380472168574044742030210149670633404881119620704157631823249375701061443662778693252940937818354960728533023283664892617991344004199503886439036291033229651033738096195156890624819017009168023641870085472326352130568338445397108305291172558714881070675964856826413026997085204518164361140925861278657454068431016018938863460953693690939570760506182800711820387436024632689660893751128629750730826436546392449487142167289274167057175967886632739713900984307074185440060301467253444504942372553250684694947124428044746024584152127337602118394401876283664761587946352297457162734922669604520073811884229687065592901265447637422213590397583429076435442127049050507883778856412029952357664147659583780496060233764290197782076746035006554718326515296613365144598707311764139833088903918972459749157999814459203673131176219020494445470183270959953076840634342894937675300738291868019901275839055825047237228721291672528561813844188039201329389321210675961044204249702110928937455693535500419212975829361089327817389179788703006957831633766733432338103450798333618883067108358065082168434044414355504165721778447595377228999984272155283394614888109831931255154930734977513877278830123700272463236819956118127992656001240913483236806892849360325125549938647630596439713283642946311435678277221563836167098155058884872032177685167886461312882612905651182742106494691783154442213918660559116008738555025705852574769160253218630325392928581858050691809695200731120944900952677329922742176763760426325427879353070060395689094634404934620392998693820381207601305558236887555434239132880046536647602439495378919390535229175575085064318881006781368750072989459235724953338879207197337388386448959238404319445873845406931928841392552365911431042863352867935746608658483610699464214274201465194959222308640635377926073731165023276652075858826247565463694885112616412012028818295466747866238106501114430783469758682426215703765686554379695814628270178917595173769989213488959758993298031600347007707139050060928693114396624505461475711632724640176806328074413996326857244815311126896737611259052032960416510301941194288431841929832871496873249375947264047937759386166466384509667869566084537531105319207951453140748430781092068535726719411364246207580725998970536561735525415524129639505056139708727898309022985483077871650793214362869241270036557091905795048400244877308452318378610487302822981663547932625807699363341172643214412570575953778468221005495473446487368549176660855831612744319487924647916227157101561047106379613879547941960191040157243030013328605997982607570358662656313072372819809735377677322855454508363466876133421918939457203851861869471232522552005507533270025068876155062128339726050989896128465201218374334605402002571930609383784456339368353589906473019357200989398062799810106282471354014085702053801421070991578827014771282596542246825520738504684681033073992543299251145348931092686796126566340144876305633672685578499866312338758531865969305458239844349236530641153791037138185426181987791969321349563281656019376019336231361330578837620553331913629272613842126518641588007616750717004345351480778775000548744670252015547512154454809060441829761702296505135205850266647164529598558793997089116133404342713438850021603523795753937505452216379839704911041001671768029144424202110100398611449326387001253057291398127971438935782745064141752340210261603933162587810649955449625865466190896401823993373683704108986587107065280814217989029470947926792183336645482341557363325949714640164686594666234754957552989507701576886802617304039758931447369505217213801228167647239554990483485705418229611568584066596552124935015838083379511788183940843079586751725620135021850587860509060441400764828763741815341495775901210898735864266383742311864913652006342073801935597778895246835843558696796197379262220588696016511884812981993039000390947434098867500884798901343218177446759822759415085646962646307190510539536058710439012865222668154411868534388729644829309570791866866438419448989250356900046857276594974942253333819225872278355334789678951081137447015668440965451267359750515371233652775619086092339092773246984245879357016625445927501751965907977214322033058898328046976424606909101851656661313919150339560209510851654101907451849711719569219793006796591362532022861690907301926034753958971949420825032693644739597426760656014843471507637893452781595365055438067629364374081343438809308399414203018168674723775465817346760274237412301715946765905051015218981606660203039245677398134288402765868052281697490610009266392536578627553353202923840325068266095017676181814964792595653358700861757363096916753337769797998864245123695684167811324908616958808404167813795756697960125368600846889249371912064073944288222874866523149327557865742264814922403329569464606753556117469137110188543642427723278002063395331789480739952349124028814922232421600135408970794760965032604049908177331078449867780011501108496785339915370994430962342203565127839950484037898143117025133773260099380753291025497486715535158173397149787745639314353003399878107596724561973134596018797856180702490683661366322154763733302786376330535049089184977324249050444066496500658713724019970816982844586251968357817567313319499372561646414105276728967792466403398856750248568556950287625873336960698448929882630589534829755408728875412583401939092912516339724616739685755635310435451617070547957795591311928786193320946905504900441571126409243279950273176294945536756201616839917651588846352443516720402442819477648397876148554566298449092832329211892010265555916280480731294299877131103217195455138122510479311658940697019824484498827151085416907412273632654669633333855712955476823966153560013995390959409530701778879613680181085546874298211218622956935200119093727772000083570554961172911628432421486056193794194545590497994890912349860641938620109396117640976009809321918343595012493652816598609735330957227322678802478404129573801342287114866746319137495372351887541581866230696863652982639548118712481244610570228546441852690727580877040081519007183367967463875910127169370486329580045876976634744970637864579408100679926711396701021309306738919267753959471649694192088172001528784132945379518670149605267220075203913454448746877116255927455828751093025270561922191914652467496550131112541101262658230255931826551422248169403425730191970928829581518932132316045009361554444256967618804043919291960972574668542387277279965125297995298876591397626098302885101526576096650832436026268750387025884496210900949252798726795759230628127231092781558731816116390676305143429970842784331005498960898691283419859105472578923256310649418199591445837312803292259806107201550332740347812274671256426691787891660212209932069484750088647258677905001021036762812499286043729350603231115335606585643954724314261997191739550901917371312887414606402309775258519352216212436282590657761801723541588830196107307426415391317729928032202671035037265201613817102555903629324190476911842183636191308997118090044186100147358533219996587878684839038028872388555529110482340289136376094058413264701971047638794973571325327895574204273869332109113209283667127549937913472240525617277159199719918020803811289963821765246801305059894697484346041234766064797934369452728351911191609246957919282152440436513783932905918331170895007049241679719083866393837617021872084947363266038284834172939580093485386527988914939115375895282189817566448857722833767748633046394363755007522317674834721452448130986472840964746217351007853279675849551137426804438809980333755872010794461856622967424668750684696865285642553620987895115466503340948191966550122048711856004855226123458674864389199196497684877941437557117764532002008919050537673322414935263335938543445881805505321606254647464724322792941703615312009961980070000581736316641610724176811218870357082053339139502519918012199355999548912993785462684869114987774458368921863135174209738165028259823560464831695238425491274411812021285591723631855530062202334912306686465336582110929861960285339930478114986651478821011606906972375958648730175725994654880904282321023467638137565109337054471255019816545434837640561375830748961551428309712482531208521706247801742461565764505202339668717987641141946408370878694036385501633216108529668401815158292596420372490993130218157784336664528334716541022594163735383933214615106559280740043065148934002777732564466044063580052565910670163843217764495728511588608340774634141252947479302630045324773063827651592966551440678897016842396005100735515030564693564684015921985685542765960514533696579545821397982281813809780923994646546087317674668833720192699863643062479262067945009432202068242832001166309035150056909989543493246011745828789420518874232106782523911130447684887465378189667210054452815323105000615426550124407511047496507319530452033333150470904724475613926186966707187620696552304567261782303460073313440075752301259619231379723227451669154570804393258695936593473212092892534905184900538069708196185239433394252724473696377835638835756548637528294984454882853950823355172221446984831873722744434551644321749335560474455251466456350860183305570614648291577314046237594091251023735473827448536377623429586726921818837563348908870128955001710071728628588743121365660834213352691891579910144774710910300924813174329283448183834230150502789793321297057395395194701027981738633896248548751831089988752387121207165167812638308721993087564244545687480399752962585965605159856238026774817599300642233605804126193137609136913233474337463876263688053672029606556533723683792804183369902030659934420091167297801350793396731781744203538176587585215978886708016089995110930258642312649771664168408418419614265154890972836226891764541720423760493892317090773039156844007602492180311474937105263095317833202343555568472139373591770674407588102314194661469504334219059883345087490040969345102869379815786365505762285310389726001528801266575334417726188689717674006885004951991567296127286797428680650296793184134141239665702792708981308110734208969873028041121329242357973683863451683818174145899441462780406705846620568576516051907779520797596753364939834745647992706684379609620209203361753917158629948237792349793638039345705891276976808300933646651249248541689728592085346137494243767010817368550743258964168765040474989867368050520703093626104280412526276626455607139279318560848615556561716908645651729340948241227538965462804788010129491188437093134085826449157166001243049909139505090139329199589336293944127155310222342626572938457062115213142825899208221621447821706650774671055478022867352196590474985565739445670943174248587981960249974401479921899994128287246242861809770410614157407880936650812659464140445787399865317529987723805059972387027070073451043439391697192283913657036861387109534912720443249883738963775713081801021322281229260744233784405041501124367704584282192749574988540580131130823417360033459146528672816693931477136267251385475578544408573659522776562879371791327116029831044891025197805959293798269049963412751475502713218655501408803184512593398975065848845831803519885382405034896769506270616812720395446895855431305239224773905279826407550458831089752665820802191652780602834607230046404995873352406151558066757494367762998543004221605602752015988425468844498006800304288906646942799503542914913390428158357787964969125265004953161547822563847472801547008296101472911094250544705826157409753145544947160102969092207260678183249769166601747033379517913067266340169860336122259213466260061293206660342832939435213623287869402640919235420684169149784054755375732204878849543943143387773280778906944819161661422386778359308525180283967332124669403234704839782109126688373010088822410056380410584332668653998576733639854547511453806390267919330076729220977262386822709430886486907653446370932019120849930937174466839852177865409877692528809289483883488932909404687198763148802795782124407903107620150171408088379005961831264579859996689919869798626624921956721575183653952493421067966903648695511094910746581591633334369182410989053922595964470121559039904062409921511598103127395852792997097092455226516922084097487159356942286949705968712232103722721614258850229878761047197780667968565046978171085211388453013613161412362373138101281053175247826643084864498763446655133837425621779899709754913069761747131216190684176492653637497958804548003901250976758463508031770647689676063627954507451401946723773372256400868225249136083339573952124383823844979368961926482372136499772694566653888187971684068683901948436276449618245418951907527769645508505363072562956114914922015590223322620356000973721361332194542892837863081908838406878109327073290669582273764191154626600802344948774866612616582307973377856017538945184011877863614822865184056529528429701427780807894563955735572148183518095496959432782348272260393150585394949519389531484162515825998407180603794771983953295914316326051446307487452857448446739453147316128643663241009629459267072808799734637650014812299136500421862608726111753547815043283312911329632755178289906996256657252146340727790036741498397256847188855384898547208178589775740099076482966499855767181702547090529039567046455255586683296346521231948775759717291403339401355526836756959498181358005100501613393572476368823634507689456752726916475205069341187266870589358103393530371983916174239280205908885873551145328960747711707365948572664690112594351751243858971216966341733199693498935572575297485193853932630344067775109466220421600740787062928041008930849558455830638145658662423073296458227737133234902696361265272454309509752431204937249493228024087864556540319389343576039992557574025598939032140236744066918074668864431524773395699997633653265880790947545188988432143425626500709840519567254512166659839325079427637007530514938816052712108348971685892386528351924538151018681879203958383527473217038923596158098527408650508713768546160699468574694491581627425017613479755353929573010979824704445648434687852470683705932186101519953941201000987966139684605628406249182630264817039104649098162409160554445147158255180300935370793160521881344841588211140270278699278663166892358914382082949788741279600338747829105907301241508853560305746415147201012024287994532804487064941736459393740393920056586690585675255958757367220776412682888833893790895455597735085695710384430515025902882841269051019028533911554957980781123506557011917696555468275274600627546402845683384804434568969393899932159222653808008174981091018867973609774928155147075162793078936170466371416948573148344818511569484783828083139624714911694011478552180901644788503323421462439928358675241252758956328385892892757684616478645674287142468811546422006122376502916740693491121417780519755504186659307429348045331752080357815699815215789868902017794740825428367406967354641404584220301748083880702858260007086731125265788025060157674270928425653972691306866442087275678588794007175502658287155923569049321793614093602230952529574564570141226894038074527450351489554026490186451335108206566491673334303774500416351777798320432437133199425042636537353893750154397063301591121993243165110937926008392712534166901967395518727871232298118325118154515847952278767797649193478833023846136344169965976993669653021185630932057906091599066490888618671357461186028813583364207152908955893859966130059376601681971156424253794202750421302608509034648817209383239162146929233433290656106805656917626106725743903898458460853244948100980436679331581389529192893297913290698439973152751831915602241107707605958708218276086307125155650567754024916692104646378323962663109578694309581958631054297483228400144482822074634402146776716791974839216224195501202288734356397518851820872861135438600058302063271837659204906325443439496058498574455410186409177696799935760553054009934640501484667672681147876670787696052236455422245953576870989439207502862842735497612215080139918234712341693830833309678524331809955099568335577403826076779054470928679566360821812105959003336159741645891551337570522456318208964399194445521647494964028541277244448298728793224989408530243204446635761382272237017546404187722201154050126880097779552169991814063347426505179901188954169134753312217054398101999855820948373774086569724678194201098782328482221298143970470038200678406322236353390135769451673950151078748050697095841271714690152217302575384625004392414058616480574894684409688846372621729956911165963006927512861943622513883819723913305032501267328694416415491842744803823801433837610987088944002385385387647443543225401388286913333192681829805333832300669881235267601931483429085544205153170296527682020300171937470056934561819785783749514523361841727129909227118928510060951263060317268079570048661922365556582842360983549516532263313122397331174994585395628502289970043890728603066515158632406093132767891028382173888164012974212747140986722050784279518386714835180481952508185987570403843775043316058816901135074754766982399598866491430656033046165914471657662822079507967056450441525112138059028165688115619204008334960936215254319969261466737098396610547700439840674833034342956859524874204811865427019516425848174655229756741625493510503705982186581596082606336844222608006032839063565109685239228414396961479836728996001781912177193394476174022940250132179102117224824276025302669075943660947092880243751193598746294372175004165358935060421623331577659607892674430433089960083442308798695533559406995888950741950148792434589378947508899435396360229959338614318412450033031571612733080658642937935297839447969018525782391881685831171023611726544775607002230729334514584177384726257422185494575369977214780998350463640697922844560235906658909753975904708195438196401379261851412095382053993042825498487951280201309392542886354960438326355621952417812440893521590790026031771440363152536379956721472222607381077889354186606391139113880791966573375931089089521702177331004501128649233878744750934929773375627298699819757594079103461191165486164489545403733927770780184273463775940178736020429470217607422715888088641553811840754102196821233842852985306833111764657114864501075371953470836508132922138213694945518958387029430321890766726413645900388760996489763948954330331831435706529294776473815200089047522458727117792132044707286093212162533344000227263248432714605837294779050558007482777708173184503704341432501756570749014971313785532791151101328683323464143098705323373911667529234787640116910950855060001124678605657742885849522389885393656619051043738662321566491575695934882479230124555668951578942286016234894207106810739086003861587911265828049674620648918158904204291374717397150801156086538208248913541361155136792909120927214550881884774139122514807448569149054879551140231144082155217590568609655196991642263013741978450438864410990502359573026066158926083905219813497970900758447794132572558557660493412871856526506424231989041566696221368461728032025977353444294394430557524258711169205411111463262417512523057953804053629971209849400704106217895754164763379314975608715548167640878158132148501074358820631078132755285303211263577266724422608008752809002469140940968577459491908509646190264827177460512770714051856019205916443411164747415171614303564952049777772063389401061671089864391707141886294555341891470694466565873255054174207342785550540128012515539252187629151191403460804319589747124929144664030902646181629649504874388776320262630087164684106450456504992804941962530731195169380660178665241137663191480818302933511324872590822004159555507592680979075332643258181062712658496899074709873518058235519948688526870365081896234155671713239777393381162699233755025039830010856871271487706854058912658964902306102008969633592274172277413648754456102234622497003199009856018486899234762095207945855362090103094621974982407038073588402289235208987559268982945843811388067051850028977460798354055474672801803435705028512837282147495239281714095051840381951017604606667763955968550365681088910235250608420916271592682460776368215238544984597279838161737605055664480734790641802700715282386353592877582937838982254124527465655287278785009645782173436344795330982027835074528971585121536214882681167160269001532099943271812317332127706292530274018780220129850712458514369840967019290690192772872225751367422650283427712871070503428804166989278912431896482711794767279363732727771259242239697197844899453161780102450560239856884196666495093909403144530073372561075352674711859572767969327257301293789558130568240305129684159931896564693437258744014721411551640573616116050983046051390104541693819603093740850758547890855457413540758297667033041466004447758628599579868080304088840848817816104871836353554217538655227930402500525413643652850746820453415218983802205180276282984559188491952020690672988745730126485234178048565729775017635215838708961939622042760070561488832452869336382124007043075149481156566162887135476077036829134824764823851464234871898081168118179958837045993439670499342676494166124988834653713349146460120701104818708387923275368836011896182673730818930354702927439604397955452538218660137352984985278661613436333599937018582358992141624699056134112607536864508000187711854899954094633169002527399346218630657536507065406424238955566570175787306542491066949818906084312239120962107542706628001194039031329907056802366142291960368597595377391820774632460790528347921049672302551251325775929985019738016443047012391681096169146883525108048519299568935454120804880448798817321209487348006085589707100440948854707536159625838134996163328125922279693904277712359695589961429119336841913113037374329314434306087951698635893251029817976415985568833125663252072349306400000755805391582188511081165693810818910128119446418270226677644697787388434387332707834483624573288324556521190140427215911124533947563374731893982042522433810266856198359372244793670541958814096317911639850113393629088342872361475923164567222664511368022572359635534510188315265687454623689520336820939830303211681647155031184740517871444122520907265269362807749835362156045438206730362425562770389737563643611809632843115110410924541516777962759149079683368518759683062642152952659217997434217584779252009637715140564273064615303565624060365759624591515777960936937881982277244306023264553791028689176398382637543255982396774196640096861156337453842203808361002218561081910412709355215535869776797919548137329774817442477305347032107712270448646254875476436909486256286611764059484724244935278701037571808393230881293725912807915890828607864125248758595036827743609048230172346986214479472523935451739972969484650256484983490055770737758073671375139918731028572319777759960844980426569485961741262695598768448400676735695701620196637382330965741196615234462089951231457610822599029823974950315465832172252378355835957934742493500608490505033254727535910649391568418380221090997008724280967061530260683677842268338228158225637333625937528080310713414524450402663207780223190015076827201304832286728042266713892927738937433849359830214962314313220410849025020118738839565875397812377111072957938669238392993185340909462209069759571383684720758627513863774447893085913163528706407085611000065995602595325115658369003789940600449451364758767808149880024399437898855204664237861158404388906822198656800452737224599519085184331376627845101148444109770276838202232145306630868824257084173883011434043406257488148175262383696678208935540754587442589772970650089673375613499600231259604318740544851248807936592683907907146233746882576471983538073427697505057319434786244825696593819082787321031222771751156182382941116788851847611759068401653406637539756799077490809308362213110151087824997754435209411364930001624265924070297611804695109881807951530547991849631733881785666632103845462877873559672534629135661063613288562256122263912714236086933204783180535683380339096746654072571471227886474171317457020735131751141556473168258552523293971334424155698659647956623475795168770084124412781319424856340567277624369180025845564650511451769052609116535161482125628087441410870924070319171425989894137486853064252094119152623720306010527180504854840712017490972308611454070876505874099919350844557950555290745519213163382488479668201500956646839361943853126892676437905108718817479711461726654559659522156173516944934962434222952240412194828497409379821780004371952761746932608540889683165834745624712839763014258606296026542692932693610426710779676050079939990053810384171300667631863460927943690651490914650742067614169547504843940456264301228176507797691836167389158477177309948348357658802411061612044245059808962158199863284837403825868051832976114902322911565290401529935025372402951529121604059855291148231780171223312899360915489423084121956935113345959644627974117609273147491467264551929706346511896884785369492600092221243054557212304658307811376585936700263694040704857945842986180775774192316336374083345845501064627583824507043991647014404209646070265357875178824255176271041367243839869869369986780232457474815669281031557746368377254307435726608096058655379775318365364657064944546606783404761161913910825227060097808363389440921705263549226652642305152686686262282376554997771141586479311296584470811062315926562375667555160657366596753858232072570507911232535016860924439258066213983740504056899327745743535123772575027584178276555546256054036739007560667005483972425695452518073805696013699416941817809407447046993078078106661604519247544093954654674530013200606891443581039822791015005702123080823300995409947739059135382049744451015299883996143573698619327389369520809103476146401977441451458651678494097113238950142228377265372368066855062220944056320046808231012966021159400104215660947472139058268792099107114534010760982199322859025585823077938483894961448116300976593401755763374874058007433271636130604518346805615064397069901282588488331161959176144488948906939878610798450801441455021595029265628293369780107713702968435263822788610362811747599604043666539554122662435404294264356988438706584140639336803906359758333184875899812321750820987687939020439015356404382505316608767573716969141905201010140156466772632670184089026270327029441925010431858398775905400121964380247001079648340901449684297677763069511253598295791211514555345436280453115130430597164923688300669797604560837875579914010894543720645957718772764637393616210144401101745675712768362357682859748744248668144913123790908825150350824590176025385472165388324869541569632943921450504221867856797781960644407868857827380913602881895712050442407986423257320051015352067066902899977972184996613274222323520628694124106464200539685347803913620664516495107121560187900505160325164961758861624767403954115898566344021208764957701539819195629077961999809946412354338292493354069867912154963585820131083490411478914602919296064641792487732798582142972563163968194539108392065208175595059754731566106605093631823012717706912820413788354352519526916825411406015771012135483852058958420771929470851853413135732754354194346822149571824403834915069379696888245965861333531919380156976067066547321053784972502096733764790680564448006784844790215533030844055303939941688183734942658728989761264468314094111112211789791682024371027344825890005075902098623956482170536203426511458907702882966040578875538405185079545998687635842103137501588410937528574578783514841422916970150785126772154235959828605124408920080000677827864219596170865725362406562425885922640596134977984089295722781562396975530155540543775008322678442713727831842307093254133093609509396964907766851893290759012590378181961638710314297919467869208996459500606035636881648529676291683853559300185173309538208264418253055892942136606898948567167926677119355094411263036736252675967523808015768041928929053962585918478503753503191395816920413907290696521651585541189314602179096180074950344700179224586802015316801391286963842051026580017954205123261813726571245447374137952736033876842820668174154219035270648194179700386462246100716587490494840738887101193293922678672341230494419583489241145582539052656244749724941420924165357475843327091884454828943336935059979032455452790609323361589161374250239395582132050344609839782425133414774414916142408850502647386544448940499189742698418925279183980372581947072393693631385545580533109680469235551816380517025538744808567009197328654094267817700075139728088368314987895048009364612580304248785163785791624912490775164749844926005013604953819639156822277238753055912462471365163050798010266688357203518267504941952364975488094509040939585730990744903378849358128048410081729157904591484589535126019634111072633100822240271038400499348400745755857491696524116116752999939158894044815636425386737789275572080144913021695123849070343959283532047143963782651154964646246969025007840089767611524796229708272339775348814483197875460104018121184689060098554786383061222416305458507112167437424462415621575400406891625574940438866522038811485479068945427837846083397518215736491379917577439722709118908891109009065686164007944855087402683496406417261405172185288467364587156962566149243525100224220339700747165762859344312388042759728328105933292389316896438044220056807338637013488055221376746833939977286399873954440187351936828526098217188478665828642802370775893572401849734936970696805287577420691465882721891870168807027636988839366861743267283467302781663102460218374223225758145232736981747599684016856601392959851705265890078273331885716956862150092688631072271251392981191371079920749796747259530683793985490039364948259470329667213599064833940191111863707596668485160144457857150980400679489837641429566466486335959672588501513007861223088421753833184197119772849605147283815298803264125080668541584230069102888379159973549934940335512960345946336705253276394770814138286624316113780775838305466808842091326817476239698038352030205488968452416590838028018135114629284093510284356808255450500751107068392158156315679673031182141047667317565452391035271119787187988169649796040455812306980240965038560583522194355959173385519102740711440389177716688220214160536860024294114915794463174122862382692103165947035683348887512774712853915465708002874746090560035600273580632761574376058149901636643036690868436238577790010479888388772942197234634506103917977073212031765119957146353765505061629910501226722127424660408058787679882465433492336984778013164302126824884576008704236573745966799656400653716607855574818474067629573227205475466277376666652786776206985634631583978508266619870626966626687084645634049461730081656362359324307964153440423112977690373686159248071054606269413534101364609638402594079465939776574703498756489521650265467056113103796477434501191874902155042895054243518798289595215320122079323040816183285011295397324298368408824906110682953395418427872302376748574061123388994042275502585670614355493664535027519289914161516049376687182092942519620267394703798295443796231628745623124311929962386444429967133903928563741466243949964702352328245185440247283735621346951372916914999391440615823586153482273658940992273985458558202428327847564148025237814415708302129020272744715956323328583849389313936677684252674257462059380817203933613216249225240925537933049631986555086790609819605733523144947615865818348060266893333604265119968378304639669848870874311584713854211545264886167727472198335281991316801210188947443973647112839542301363928407214807722721454166050125974028151826322476649796129093514632230408943289988158466660949207816766401345106100611796621844155726363820170651467526590140196452895812453909403309884584695734207692932992055872635603920312307096957682030225952498999074922878337488806965133999453386025682499262052965829005170103655283097380070280633227097519719189801643036424366164194645618535420217729638831052156489789193867726202043265425530733506873245894843524058063618846481669173537809733792020150295034246950483864307748370905273652375815771485295765001153214627442825173061941094327573229616445794284065660165662297252981265200478939209734459833076625669299354378920252153706598151119372100414083245073965989795142854995899013567359565783953922394049519586723296908138080284390008104272482840453711069260572345806399101363296517174751602738358200252840827685460961882529311169650229458102700641172408662856521835280582347576617452722242561342380674698224179083189967618795365728249627746833627952339438021543694086250586823681565098571601865075304200089375195958135254128967266641246005925319890425767786684538136872302721867234920492427801818855287083012265424641938849150926473601136510601360046796611151346932386562223118310853732853152548638318275258359919519793135921776494936407453037293085756731351582322800451459168141970209967239897310583117845139728469124809694368426864159915792612537512925426737843270637480520385572272430801739117340453347506164024466974821402478443265015462183841810606447847707116133829214560801655960390783681681368572921780703862270602192051416359719782434457226419689976641935323325924065833231021011100853052570486148652470038951353543200545649529978501856905840790059570504094102430033455275323007361333741667798359790871675987622136870633955273796990913996236703376207411721083490001840357450420336800665809457853968587398316627573586061984104022297662801541119678757157931014146427670427972326919877490597179159508071150868234187767243623917523328405682522076481039354608535102297768941292529302931331084198934770575652303037772210035420328785741304270744455602821674239745102650656750396475592313675110521211541646156061431073799211066236545739317847575530063866903983129871427218572427470066975592689630625221561661883883116149670446727918010954869389480181936217391134268166072322812669666107771239335536894333272859769979318615732866682994989770829863318985104418790846130544368600713528912960282901910819758061738853637186844326951722788095286583773561513087258559795146427634047837556215763388932746611204778469194456221352630464519283322666828160066595214726783356015617509580564399888462073218596727164176170388554874766370751966896230107578178378416657863094106506214850014795990885743204863675572160346381330843473135121570976517521799040316813742199601822871089503121909926631797457464630572176471454800810722361660651672017711684845081092520730302537508389531027041441519606047241375068233949590391139017555728733272876195849786635310314266707617486257125537309507841675988131315012089073444060594444548853759126189863972169884285609700533136315798473751714951257138157771108118675109992491019704158903876888786782561208661927719568378952971873099262886388334261806142635942292164462658360603271849158779329795572069230315597234080570590686301174747623234875491488798630949495888766656330356236282087043610772309264826981951090731372596362150371033095151528476749320729106171760714161245079697939905251493770250548476038196610272898501353692271792049222174806673305895536210347300365874161254968886522322342956288927859926709744566870860931130445498473480231080533231113002327279480317423461085622654624086150486071254798144269130500018821504395806795989504278117564402129862222616290207936258368850591262559304378658764161845689641136401425058571686127581270189036138694378241261103357792329487327281481326545043749666306834835068059992486395404906293142769503417442294960526283193751180456702190789646760084653539787679161925389230954685622191989927862625054960407523474532796137504533512447313166201462206704996297306904379885996744618552758541179547903530986465908745273436136078603458340141893272371942761795603348906113016369697157811611344365665072689702463797742761083338289390960518691097823870215073924371759098514938904332626664380368148985963307689194764127864460813355254083712689674365650932479412625635768074782856500261465161296952674092929224114642871506426301735458676774487456867989064701768409249441855497048808079513348178729246788005088351671847530350077153252114507065510507547287880399993039431061114822798019916245912895755658261085129298653232970985877084072729700840413535044842160258616028943687702047716015839005211484334501085292968820145639218922453775712964030517914366898998484602683748063435921966547821777839433582711885878783296821596597350465381048401628442026623325078196561991874959146910501118755492829763510689409048211504050550389883349279658130317044495035384804191444384528159876039068974374882282952438178889273002414539282447145245292522858694836174811521981716151252286577237251579234680558630889352726293235061347729866956265665090161792322217195360938357128638399020726657679101742436762950542034179976376515143608899503877267266270161385702963580013517401024137904171415678074884180053474255730113254428268805749286042350359525358469479106593184477041267449541197532419690657051520001298779967216830856039187878581440049722522435439265619634633639895203291229455347367119194408163321069926208202584542688677795580016269938199697257057961341587157422053465991348685187598478583331947734739772677238530837408153881219920283368918850368044926674919701067590146325338378618673142583709711119652428158527726952472552163147870540039020266962187049708665745171979628440299957250000177686360315261851841664997391440903142526653969935486924244130330898199047413753275909595037396804504378397571416406048163116701082873695935476080090132164518507167206522815503460474153621966559310154253423970940339670385675537422459542573218382375313276215770815548379052820385049913136861748682496800288233780609591799146226425394138503974780427190608351501856421933368293856200217016120563819720544201958150023165592147252107944748943148335369476108436182567193458154139072913949265391571089954226375933506592862809451655657883938958751935622106450568201206138389920078429828276537067661523168104404042719851500734439492035143747891828614121015710349094272248523588301054560083922047234277225024837973989828314191929451166031864368800597345311944803434690420731947511208599584303800553581401789051662043162763568084877992834534834025501677494034216498339549608095414813488710319963002446670781160358025285545521439149071377776045906764209480910299025309424859409290779340994072527041915594877977668828688470092196210836028277636748993154387580302284217883526901632497057301639045462351150609739806640437230610446706062648248072232948321813437079193713890115899089657574383617679136232844269995132168773730894147755154913794133667670888516525097428825259084712410873034248048403882648130285892978778083747124621484349241717845809301356016132586707405225641754716302651371709488948106278393767341978140128215925388679721606829185783834320036313315375277391130801472804783556201185485241212482772415461330339382833062956861928370281230842164171193687955961499692143700428437392784339604870786091442650884221060983868797093759194441261324880465287551285646142793405944252508452602311411341506496684615152094959432342236892175021023041969732662483641450680619842382206096797511311643245526434963689542876596058608739813354273411549854708099692771343240440612536684360511985431246068912205091724414087459200652281487239695752954727098715876804733099949163590157795733521261806384475768620601132403194336021420050049143720803316176997151369077316551684361059742960766274862388867802788013418089509308767384507224531218267064216169214509164174407077275619110825482322231218323887977464555841008268877273403985293195924216160011147880651581164976294279324349630053437597023431250349184957018220735019710951478103640966052919178214532641817547899061046095606596383985725429633742373716943933355485590968446675085302426807140374814546719785263001322581462612456778158304660893694732058073312733559065740275713770812736951004851556051863343645451314450151884993436998062365777437694707108605876667226725396730270157184985690543016155919305885636106522294244060529404842657680201532233417411773460048782738206662479174238416258399841433385006208234202965884937341993102197274602009412801318826309969120926439610252391558566641500777395044190786723447391156620950266173999602149610901831446023978720978114270323583753054403035908394938351279498243445436231704674467201810510853813455276174873861004411284210836287654641602501270201126319734927957379072641987575112434202960690244966451893444572968919778764252876157123949214975199088650299764998573129261178832956587495365931987755286679522026133863541910533681278748995757277033346646251229033666145386957941975534081259044506377488889919708546189668350926707614286171852852797733404850731925650829117382318196847198123276822451102600779233626378527510028921122672032530974520261718180555757593064472056359315537528543263306792844399535239380545394136487825371797231677142531633752672953166969607506655894107416866442917949124188654237698335800222669607005992757305512390224541497129321158320119282890124485150928060484314246810234710535621236283940343102293067352362277500497888829210141379061061548998838759292014344631319152524822010610084301885897876768594835824381291143435520275249441946244545638665095715215954811648852095874190406864252402670866136787302405443750512305180848842883225671510109255196782129125521071896494373227829737308050759786404069304381183999057388986801346456888378842106971433704480211669052265933793568765499256502556588603686827555558112135086837636587732273760226305792150588784067528557978122322914223264697281983899710325583881912932777231967445759807422412181475375633270648664976436010501908967433669006998078462152694595359348498073049984286348030060756107514244826820785840133019310213489659164566971210718101687303351997682090491266657811609668067081781469814824854049447248603124202887658065433580271814016314454393469890911229540561946348244212679094678434748493232817277154428060343323571393551755690527465173080437862921402016450041688614272504088793739825825418619694226228206690022146892677395720842573532980581442178848404501277856955003197612797688758654040384611405732525101131525896651866596043334211125832048009692923216479227712007829795131471695756550077161034296272582207987726670001838438901218078538362573323990398152331072087176858558261523120439381334826919754633722345435305527365681598808873277109796205693144244366640140348659473980990492508388654938260901308569555744850142305636463689794159396981048972465404043055217300013127259189816663560530716951884460983381934148332961861285342285080241893810005281596274792070967520241571505155214265782487009453980758683504300059409867746262484575991010796540114836764311252915559713250166565790982843435449314158878489767548465443525286841895879995934977682700870629759373221735453459537122042181850425294630159775817747111753502068519444804265185851970693618921052059399384281806277976175609998672191643221160484313977051106462125370229745169484906327127903598620094333983346676769604626784066345995981621829339450383964555649790992121606613635518438534762093837285764844894793029999899231051407295130639981917778580312123019598435086006425500299162362641930643627311961161010557692379071339519641356112588587131567451894328701325474474663711412952967874269482692585014949831319954659619623683264662370977515043719635456308007006092590412606308932931956878372920114677514880126841094964685013435637715291458176400530307962803545345206253817679500654455378080521069785408563202869713765577163174915710004375072036876147195006475035919792971105786028639623119562202573533227933559866878561763234893985892127944154635566426806566791124212887373051753976253870046527180713025168093976457092876081999082765648069120435529710868224280941811748604120370971539803074741478168599678961265370115389109570793966188598135157133998688167616018056285284929035268603871132186818636931685384344318288936140049168094291278520804049584184720905626035232181688693709604863043245073077836966006162152360573600270351584671466518863636974606903849544827634437632713810684376848401205882888089642071175172293431360836917535348142554866823638598150645312867356151340678069160701070896772915652771369542987796546276419405591875314822896201670529610206786498314229842879460025593110492967250917289864671451931030563094896323879335607036165373516583869512459926061280317780346392391333338154323879070838944590632548745644914107884141616771814306613680342880100512673234698875410077234214135392786349006485983743606854024199039372589305823273939360712787938026998772517583945219778616283162743036309804281736694140130202836840115000326615880507292858072145608561375701311853256444157654955852019464072251760833823596083668398554672405109448696583970649870232730701999762938500198536607825471302684518421748037818299459153379985276757343921197898551517672911550505636718963766286076116518688469068189479384767780615183292150980092594705233670117780526881038803497956447577938547926284831911017159473044408082820251220465237359435998070675850808978704336764657678726478047217244195356428286611986811278441628253585829559291385880157319257218934832010629533177536045100123875112964592287263431628695863671401281819877676799797768812384020726193197067886648573456600742501214034412096995284456417397389223663646262684926191333880772064854364520651583244536769808794973181709182519490945739943254517363056932297798213740049659682104024453469503675908942985314871399725603348178430573668929027921739853074099988830908303891841685902939491106305075732445687462472379903661717387582996025547761632652088324902196264458737510493113061585890243997750563177757893579378464847457707331542457622425673295992912817801813764387154863418141841411042885629373972170135639876534087512315673821467389986344299491521184591335421281531886636109845550820534808257826670863499365572517504262007842735606196128260007209424136628161535978017696744858398126271298630551430583786784553020164393453625680912036611197686458760322819904835268373882331490165902675025699736206612548748967938362815706128597237243033367779775754711960088065655555460312747994688066345469368347476264827833645287945448630137541997830793175720619484578981033327169640680550566171518095177827184338790235402282686701033149600086060397448261165875437599456902335612743750840681414044656645216592087000808503350602429519063901767368674951553487844855322715609992974820837989658931163153857985986861119105483221120911514563038919493924346834010125331590642663421207769141153148674492833313840323103810383174493632192976063613034525628986942348255275236550830995436369114671256838410813909149430696581203141093094757725079457654277074608180441985862597083148109386919181964302043666560163126412935344677064102777875221394905585133767481565057445914395156026471910044935505098383379338439773336958960854408822375494254603127587771597339084618272114033546382524615904605472665282473800445177966526186086275156992196003877973858227832263773884477192413765115613376218503642781559441121123055609858590273235850272346067661323727085550286002515951672602086294330327773527778251124680661503547697987513812413558797387406905821063923457293175231809343292436658851910029015288413783314142132336022652455248933856930652659944701078445309315718831383363225397122724686407648274998677451564013119148711266732573182123819079509977931857441062003384464655877465458001834618705716010709891612641217077744762804144873931856676827071508866172608140988278878794363524024598898677652412522987002313306186040941230890060686789379295678969574717189705012498357932636748746967592913677327901601514491488816989177439075363446773874956066521400800164955331887945423248402953372952865515501604749551710278876199313004861632270008091060096871225279625413298581043838262219195746545635017911196617254651326327304381883387764505716174623329741357414606878622416970917129778995313129421074946004682640980076598173656133118178446817231270072615484982653784346817575003323107338851477868264497532152673994209417182856517617771531930391501174123518588626111108044547179289413071732880411022471117611010264033423273250228722497204665927197574576787346931616389269148918907782844396212999646668180121554507381587337192412357456006274555479982040444676222105638518917950780375288683477501925466863497034845894964018595293065382551295510691702423822975855962686169578989489432721403165425911896722860279667566999116648595851248029457339711806686318592488459931822709968641030633621204302211765607468130385859114857553954270730215726476529678954652441172190809216378645496178244704756743263991427386721653702092859789903090511693711228356546040509391237073232876004953446250059721500678957522633667212993332463360182548413523214708088009223831578898373856152260529641380665833937927547330547585242389498928900354652921952060914904470532548103564835830735445867054449396421228508159752431167859628726125377168173065497187417317275805378107016438385912855674890264209982050099521795469299693214944909016215114098620173017005969484580717578764827932084796799902362984734291096553092461716311001426858505642704241952186046898578615289500733558531218803093570160837138604394330931235606214787933260069828918982465052208876357201344554068407767131593651901047702475308546458448122003846019345266446495402432290277824064665378731852037013853716885238475002770476028785633375997591790817345707803542907929251244127622000731271396121822501990924970125725420924223699586785872674469138185363750914735344905211778485209187055388033298201236921047672249254855649376194831423324926081632971257630504694221974552040816957704564179831324476291267703104088151785496477527590209857549551741040307254930100964157532348237437519226222855313801994099111786240785622343454013917283437044229997579628603990199884226778442270975814234639732673140043969667572083484810619551187703464793830730657009824046335434072198347562448609459262881850300589328991791909162812382359079683257896739208606125861628599347696983063155206837618404908246614554718581312347338463921685120691405378155345876971877365172645738721493029237887900639684084954072831122176848112928660666372999176275902980394570431327317428009382155670708258283892349092164736380669115386039749478191587681362607389512395302312321946416583425452321506104329950824499865965840248422871276195103342495754383703972379511921003533510323538851818111926374943456579388520302388442464376524969624708306352598711664853843057634929893271410695526766866819253351300011617300829115040694359428716526120473473939345219106876368936970602213927020360419943979420801262657237014602833154236709572061588115348195688860510401880915761125285577291753660816654154949025406225588753955257869245449948292214381483340021315313636584788712971739231240810581026995949418814967312687459094023925691546904449834748716137085954243016413598939423627342180021369853844689020538757074454626276253796611278102313071573971314529086236018736704607029136429197432102169128546300713707069599699903203773686473410213700402659790344783745131171153949510180374883696018053067800983730034523519377679141135910757975489413750188234486337163048125334686510212405820801955067786124239100285957758400827321066254664398344246162270243068659766197656004504819240760282968415007299427678318759556813887364752077705312267096019202485324240892024075859425040164163001241197118189649142525005672347384951649243198772474013792907634557819338582897656847243490119328117324268014951109093020446251524920209838580763248114998992458795689173545953932661726331045580888456142720569414123579375475921688261197429035629279130766125097100630506631916493853984364991967501167739326685332367076370897468274490117531654172997532553012200196224960840855571812341365486154403349885516288377873657078132245293511455163677360891986800391455610856732751596296158502132648027705479719512171460521580863468179504172298762775064209610517124900137298669115715949439301682758537874394092913777249215141540702260824852379344953307906669604988726332829153630441789948507442582119778803547475284601215088182164295533811177862177645113522660912870554496670609420236567513434770488559382210239948898291421479453061380518274016897339340195022006761444765568736150104552004974668862238855154624512837374318447584469239468348732022803043279041793290684582076531817906403000297174316048271040129604205596912927224287676564108357539204520803363634739635761361497237453125611131369195954016984464578893683043054370668317395062519753696358056826836819608548984008481495813266047272110464163958835533856195624836703302169491433769735226608081632390682441329489875536915873906677637672344457586121115676505952557893047193146867522435432141889182430727748953322472486967407854232014440928465980590841346613304347818063154995730059464962980997945930674988998540671958656660391564708413384189212067506560207101898805467784770596753847115782267391243736290280130928462675160668842607209291195342768329752499614954243824227323191716653678604915676970339483443826220438319084862716285858555068587594022083877849977230774911370816128927562290997480902690434440698351870978211127201959710304789483698129192904556684764694034725095821620547861354729523031291363024902965185379592372529338633218008198413661961322796921421789489832974772102344683559997106970198244090629043750318318877284097430626054706120525966345950321932199353132225062636511490044615887579581897353170133051818603134330526405708167578470439025552543519889460395656032347825925558363290989398804776764934821950976793736042160675058131963541396049717417541884419462972508359793808158687315397898121195135139242827202641878961021972751107740176519134612293479521231088611181855491279061283420975898088113869090999726550187785352255081876574311693584085574981860970217402120634732016747769201414639065133692857778092193227854268133940930364195031511356398060769457809996730246563676230862528888472264040327224307436523395000930354469076021694368824820096424541458820851191960335596679680509022907458242918707286531869141744899820992133042766228548156815842280976402995166543294768337371603465505429955934902819034237226965811476144596325347873253200097115684204155287773012442046069513224748493803307169482043461025635668869793683409337097379064709536300973176247161423731486834693868885459046047064382410018561308525538533583876580004812884458559345133874526183305860857022052582001080163509806027749532712774549387443834588739103960823735706310365980332198868951947388967045691843280274448279390579663654937919429931784521944587902062047101833048884898569666441466633907817473931963752068959627307368864963155589827207440442333352290060475239555982245699230980555814162564642678735655108651345671353115339801303429888264963782059038984803008862732118209159219625827558209222980236478687724945367820876014769297041659932920304130115663215018972570887163851603495021646735803961859633788960245921358677126081475522306590205205206716598175943755106023092703300586628969263357871474734834991265969041111635741459181011078470723490398475424182173240038626616529693349276488714053688016844019191488123317305194002604463481041789837897351554170549851973197931433942142299177811523328197934354246764801802162032428853929092452529218648123525478796296805553667034207762979108023872198389648314298622549666418046317552098004484777782870585222125772858496219140727621887917581992310424304427398137417102221726432471151127520283436097005719398243812081534744739676430003220718659525771046938671094005083446545034146727176364828268940961413697210615812089043836881918410242826079751407971120467892437331998998637398645540292429723791581165533995280830427234104644220020402162108494873540081259512426435503220298224914337591008553288254272390919753642950235206138801592319297831897800850503245870893021291252466295963404074413286061753831430783611329073705450878333664078421617315278992000203987182570183790628884103299452088748052024364896257261696427803276368031670624984782217059956402739648155598234109766870332437044539621447436083620757998521363001837260569729419543356327093714045342772262048325712874537775470274064275720261651986373984884576565338342375238606615581821067547825829023420280942236071812856872346821097896293977472991705969894872874622513543231144505468783445509348290218241094974021053023021651278603917360111174582119547513541628983454753690929765129082208138922383673304843277680113645008534205111808089376688748509420482142464487033689919807216030568146207724405750776705617816603459894066327526034811958012803214992814435546675515164323654792235969776660378736998036450429929761122039926503022167675845042040291713489343274981916834677933039870271938582342195657700496987646788460188367182578797421443769936332292853714165779569846924990609741530283241248906786828247647795440731970496013900776760669532553432517499720361365238248151432274264507952477100010434891215928417666810626609771838155660818482425368092236215624743398678436937084221701884626912948479719966286897296875425531960628095194360026800952927824267498256284259086653006206879264170957957777202801442014563968184754708847801702320770694441855187801483035732766219142799238220826700438727573002728186859307241245028100187126158705460366255755668677442899385301586017747017825509201823847920977489122975745232148407595342611037042866545865175580550560845719605193186225296041836814591566745906167232256189299406501601078982725569567399983811761473909934996713825285332961144424127420924325203321679719567095813148156976410204026587711089227287194799805488747839066064367399274244653116401161848554588770686500223261596371640809013549933431757652118526339709075524182393120432207153244056637518576255866896569763565105411523717247787506591506133123109871195678883015621611111723257099263423569903706979600816284053939894340276946100744267283211538455313774208349262831225772609555725607114744717442142339696842479848553588001214973384970945410381757772568384604698241316970373542344520023734629609069946189444263036661338287542499922692908278962215303867521077675146032127141098006967106875695302589700292619200432943627423387317533686977793478070544686176362897484486183878155341890500774182049930486226106500841749899626908910325541815697085178854213104397054335710454584130919476169070483940752476981206766380472715304664766755288076179805422072168531137463715639161261598409001508351845859733691936978226279530507348596290857730487754760975866080405397148633806167145320004843966102757070497744654961175388096727983598033530547940884553365553913770687254245797101208265553758705967533526741532545331045860400819436628157299147161658911020938936108187349874614836964463566736661162651806949755198358277060542132117319071369641351386888662818136123377499028338453930851504598451073288637485005765133814769176867294189887687392547384582049970389216131253824896203789429979847852292559716679340009673685648112741569713507944337052487057923957945846474020936523974501156081818075253162030918940592382146618420493323035959824058502537312186468110112873444743123249764506351554336146491698240776498518233520669071692193968535516833381005240520836034597405429294716577236086514963234798259358407173252701768624655830062556463008023048160240498447943782887027746580572033483535377567959465390725710540687181346114307772281214561433981486825466158574953869635418219902386865410942205885765738569093243073778483195394104789128728786099650628847315110448332502338100472571963364406279619750179528288301062330496168415007158344459224958719979120022708364151748283014152293768014792323987026593416749883079909453223533910981354361786295995831434416751250288516625514473993179735257737960066878650580146277630683714935896261562003230813975268259858401838901277096579776145805166019526159166511092627133785510891183168146902639512893471233077846587142721528214749051122036816836239453264355160160199555383583154224543857606862352572660100617309465034509897380465539074517035614500612587107021960389063244040684364340250448494022783828940207862413227948994973613447356328138432054031348327476561880517286991053531913846605097034427301916257996489927294474581736721773220343699145961084948886168638300492555148712414539656499959906717143207029831686826634420010125577627905791287110991080492683578579885719220272463731027758660485512218073096202305631630972588758801853148377431397135344068939175295737094083880782586498003642343423110469909549981388726419924890610057006744457422063390083551826213204808581886943882380868442224094654726342225951585903883941577416505128746699302851527472876272544134543392492438148577816737260147217143809956275874178703904290628463075589531950524957516210830268113029429623143694905035448544046378128729688368079077938566629044232655601255106026143727680144548406205690909471309321294023652427239993365541710828570924086702929749478735944426092451841411102397394515672059040592580608953751793660500336858825871349849243587189524740001393819837217504038805054163698050831310504093400782772169335051694083555512193376190845665803027181837597350180377371228418506610410578823927070531761173954704516174348986417022512406211053971577020402750926521454913831427632133874811755583719769075146814215409309502093910702989958495819718708485818741948167275827723662745944650621918013741056904494963116185074063681801040415456332278120344152856635813556105621339500294726376881014374404466097250931896828050363399760868290669109120746914897052190063909368089971066320481142057950653191436141826952503369854764658801326711814236740255108988929994848801911985731738045018208618995959088312655153728799217985305900620719491812941956472427300986208865557127290379203291501900939999452992537347090526857207564803765026887842684776211626612059167472837592938353347117423683955932251320832298564049111777505547253069563082616081277050266483002361700932258826340232074260309892523839552336111598199584082316724047622156265894804281855611475652312858896885846478829222841684323639956386938614436290983736801929236320064714497467302854490907005687015372394366919188023725245055818771333663372033746602239840064052649030261223826694825042291988682053138706037177067384688515427921919051295385711994906697314542505227758825851606520087703162458980356903928136495093575957920821186985246227053305844459841827513947668341406419411325777019938802533090133056691692359235797410304800473937460475494523420119336834629941773929521570432985507619654294429295232650491072211909906227527775224443823741653570822840601637769117957818824662193110869610988849767038697286218482761130855034336730009145347768918595350388799229842384208526997007427117697192012794305439052876285246681300153740736747504589494196137658094875607419003677801477423544746310120390143637672227632870830769082577603142427367973389793217430892407814336985637779388805285950433088564892259154654415483670694383193935883313961517356841120304239014635703653868558700442524157156149673136531775415427540683142970114591720299928648649049773373079338588262584826060579028927175717201778154635273823900910647704555661706548332017067546542341116727247165361273682260331572987537100802160609920596504706774495939540105210153680684867085222764111301292693258959013464475239266632770387570295993329365316748540981898064548558609632914695727517030654134329854544176190544219507531804796391458032198589309025294987898157305709507777499867991837662682339881111219966192907603225283628519012194703000294529722340530782071578076821945753685423353088873197687447167891120423520536962494081661305841897798778491178966011208583046690639291036610163883212830890896699909768102882814449503387514798218244001949075563064311701867012782727913397201019862387717413330078162369156056931913011508422962777388039333689535303745618001979242196402098384084303593423703608419740340855322507618281844887197802831913138588612494841854428896622877757455216789642161683181557336638332529685960004875379202896246497266201978763738760837441600921293241204102164878754429840615337344570472567501026268007253471238785687228004888497727781130675725198133755081887600177410377121280184968515090240326297965158154440447730263664987474453779514353309900396633360125213730029786354241880351466035039436817442185316997762696004145648435641430943899053757127411679640137557727599431665514902718879319031889040208038792516464991289201471463339020782151504605848255666824803742201251940703581972815382793636075964184149948349813204941297212646269300783139676885056836353579094746783897605227986130498333689703601701998078079057265890488937091282426704075048538848619720218961124540178935925422882059789420070510714071697798051895228473558256183322561562668591649267106966577303272268950533636242338359793665083250420926004757174421866873237835064779398615743409743132577439527240665808729921708373056302885047110185720293213343061243132517484071543424526920239331097573157634479272439990743237967138665146886932875834593233440615346753405058834946501574524676283205703430572980835425551854675349968832729112582461816533681021878042015009021154287245693279661543576870877872249926308793359078595077341726923656553711011946417033314211452437229542084261595299287800029237790577533216633282148336516510887349480124729352918788190496040868504643738694396135039083811070605061740547979811253020692086084834674104230334141832466696595362842307366569114204141834776792824236213702954960603270992177116694030392166453046969951578118777543968738699895790517945130362338798909402509000919890001880440759991304667114057868559859096778248085141083444798753414961917146730235941413360932469833143305213502652910046706530423888534081457507644085211540216401200447728757442780041455822231978565334551230469298006128499585325248584276328810113797474097769474796676535519770790512450510143531646388425326277640366356222966203950919475695055372763278971474414980995732261658034720356916087124372034501539520909712022456045726646650409663176968637675755553914271633784175916144292022461962651655149852634558494173331166366893975620929548066896032421228556767561664705761853251555649357139049335831197803739216698518962210055229694050706792288675866816329809086356264990301084831153818328114486328965082816639553273014464948560091238571582780177934490034584168510060151795844426111054893383868501858499995989062746561144518281117077487362055685172271439806357934360321202000901213094709785040687257628145626359663852579353437054516320336392452003301004472620059074703053212816441725808712730538767708676127060096827236767184758463361757380092180823412363422121761702421811542122493640146995262377431429262784156198433762061617176700140291082033322759057299443846964890727909794563017073652472206271757413767811564254182148227498354190650429751924694555230633194057246932451266805482630277665399907403524128439777488687783941613953891923979580565877161336005846985232929870996227198679424739693932401916180795796106806768467542648793671623828111818544330880835114229086434326192538464707982482426809649049333239471552666806974628552615651454239875019954579756248473816536709151809394152705672338208222466834408097967253158173256007023327770735703614188989852919783373388303966691397651914417416436129658803317224136238948945943695394577794909659053787916793048837339201203360951097031478610396922881869939103725033370843472824350706153003061155411344264441801252646703150969882911642154021017121254571755749470823735771914843189290042484524511447892042540391737430106061724811631642040077717850602258569752502277348499068631979572793847553002258953654037130397736030766794072658823544345309445855862133154259252713736038411789677327408903991656057663837957453804991723144845013538214169556529577855576970583049909655761966482822249630726221761617665193530369140037313396245053265921982097885695404542541246501660939997302369963369631454013129168317708943467800117814127741863179827466735709773477889216662165544934909754217671553806516874773700021181516550456216609246431725296071717026538033037975172682410004799256928020260975650171544793061170669599578629323317795224431866942168489323057060615540468302797873193095074276941926509305967310023054175779178424694541525133885421822616840175464734709864285732493924396344392268493841977965993801716344190899801312917003223971206499881703092496956176465190538634821280343247487593804483318308532199809588363831975238620975226522645411734461832008908856182549370503919295089295827378774851591590701635007373420576420504734238291928114044938266082736894507017612735824724513577764543277622978210929802597882888662959969858709469976761810052316853157910184520710220841009992024906395971963422131105472336598743271722780024611061733812055885028344675647066205494369343498099429883058164943920625022361106420417930569663301566930933879434691266370895919127851213682938920392057021132514401627143947128229861856078683069702187507416762517915642790619253423127603996629049110206072333780886937498562665983360220398301600274087281998185498126171980185520500778739052722355462271677263707822415925957461289838797166844378348278587233030167104984726983406744638809285859920508997240892682618463651829929588395348134963657294901454209166643371961204563856406669016984068984044399458430588263224548420534906440358993952698761701451095059110507621825011628008640986732189724509365798104324866432826992734306293234355282997650852173386248274910669880561936500221330308032784774034819239878697731526435502478875742526063384929610295708429328570329849604606401856373399866824336713808488411191410128318676962454042478089756950721307617330994712115735627966757270058637427153686304848392710314837771128268381511700542076622301161789087519656936812552778003815495842013283394444697868135468677523624019155762521894323766106969384527072282335031642795267605562628749766497378795258313578991018746390522252217547060477374835676552175217756583392594539029090900147342038246486490129003865479361872942137068424812482418562933169521501457430665154318731918003905035544811042149937323529424686670105731800274605952150099608097500321577488701897835621380003097114093421170248575804681067612563403691548686347200586408275305529674307931413106467142269513817968877661849901604770996516878092139340694127883126325734398862321109208590916416584797288559554506670264246211645885513722697998978776977931397733813461250355868874730932878947721010540985892488255697804460226695741823329736190066982007211880558103041999071610990604627467803123047682208046400182953472820889241387894105370012382766409365240774171971131464020542121692806227547827975375171258129069835065543111179388680475048531611981507047086508145899695472285317819028168208936186923843293513054277417937094033911288066587637561723237708979030937955332547238326242315386036278224398340484942685716760663663656575122164029037056149228699145102458572629171698295907839040758095569852858715338812882298063274874725544702016660117844021212926866067076657379061029366130723121924369090969567285141364565266022120624670178976004988747173969747390289437231361533406167807158236488336439268214971218019370314655863554156780727665032461238280331622414013160880744398928230558315092505837707923832350801337894284563576560727361347153746609764414820428250120268578885609477241193737448305767100001703892119920368171371415726249865160006211521023887412725538316059458280747789693179305518576907696142743026815214419859199366505011347891480480011964585183975076121428085155267278822245520734675845454899274501244497496542900845818994480761975974946314016935811587314670863188632565431099190917771111833976645469423291703028250734714430413765430841140579429144738063894448299150543728603922520680486672633403287820728203110442277253313497661969874810883933267571677681911337462627115789629362634781577319323390504067995591752070924495550855166816513868362804384035896349808783425693923903616577833600001465746329951977220244298930780883483217224485838546978214856585042489283126001007549534427108661100044562468052795878116399828489706803795338250437432996957056802393634200091155053190038972833364638262427496233760504887470283572879170090923646287903839239400272092603003347097347154213149049442489518632056441464417464227911700709444392953552116931953500143864311270115462218388616594061142445308471466585026271590206664613624050325995443005058377646693139409581465401059862215113129975411425167012499391375334350994008136339266315063319991656249503010459753921519640751505141721400651169363638850242356850063847582749056091087514327051581991804059831815351782438057693487969703188606185762759851315975141105925586926602575416393010992114744621842686518685495763997212293811628495810446169635696699149040691049797737140567943785106158766045647322862086667761528461211920541277310400578940887050642208713157630801251707909430941679954403084160736950529259588162141739590530447212564130660542824766429993437434891953965051393586298292147280829377292091580466568213943630697114289158137712364431849102211669595477747607315145737098746755964845153788213470956626733349267846148108177253548993318459741586941237859594848207304410212543455678801058049636801051282151419390979454950158983042814349835721769695528773006603183220979493449341548303950415826047462267816165720544914443336928776878307258916402528859723346325360026379108372490232702417524907862982660082516678735711423718629813224628633806203554176105907988532737889235522447706567470812757568438543968616726080578201963005388730460617518520233708659359171058263229621150154978613327209789449483245496800360376805367721694151553700404869839070354325805050259258268865500259561736830401941201136629275419138850143634943014505346999213039391626974967128793513285875701640951944348010494040630288438832855830810721589318284473791723376191435676675903409315046969567928033816037774328459886653139177808296472701980245284057930040064560814793025566295571268341952174758124269048488151791818856733381935256469725988732280040454511129348051098503992385022448607861175837344019441771502646033326044817247519581317951070987601281399552977434475396639504214290103296006886477745810797629245605125244331605779700884985407771280154225104444067454544609422574160004690459401710104690658525819690231430627878770485453060498517694294006851274026873782826791979443415228859291550848629977420401900176536070176821483902431129446255651454320240322854459369339210037348034653261078070904636919523968602892998248798062945576536997847052799252510713533051933041747890564791818305870689761986054707146009141393924643479437882923650908485942605599210073291897185149184996856201727589771601472177200795442611533433851267593454879599991870875598424539517388516571725672448841702253914073518034027040084122514973040786581429855757261334635324732520442075711678207202845673991798575340767271482032560933860511936620817954054323601652084678116658250649229155728000811091295632545979907594976751995772245614469892481681797565545612789769603413338778426189977406917490244962906933611959173956883018869978014074923303314290054216951154175890280559563004852652800276522254677352788389140514506514872088964096751945001637944862978831477834314904961320933542763570978451030484143105216274724882469290749728402028533746807318767169096429863329270666095339294762634284326818762892198073863001990733636836214550875884912689324436249998418856322305865744059838550419614035290394382537581150132332542294920875576488998120531854126713055587702188634061048962123194525836516305592889745723548020163439368542752362120017555998676950106935224655505922316431659456892902162759463064381195319011305612551752205458895140985580161938270003638842852518601109229633147166321765627054185107638993197941099911763419943188807620775905776171486276002562735547831998069250991890499284987025324093584445719572555100204514503176722627670970513643525577531316786916387609096663671590578179834061007668626322993422051767608911842266987335618117307562150324612079310686566867915246317460051819390960397375544098956826348407104240486201433539820414228516549502621184293291473509218074745204824832621197165764202844897641729207764176058587337889822470969906222182675251016344171692527358812930044324143874323739183909501268894313222039077194441374891905007586487221101657690955179951581396807416266718617613449348782563957274805774469356426207481383765018231460897178828768045145540571352973005332370967036719964756829476539419099089710952946730414446886248919039158268733350195348503383468262359807473444095674313853049411239111816472007581235974055315598070161331275149369154604948447346880632578551507023748797908365936711497001390045267457296084053595792527320698296399448555180486416454983363788883899721797776298384340051258005909969389042652878889827529872781297110948712143441503387056087796396366230979148731919409839299231847532668119470913695546309238397280254082214541537346154156713005512129113095857139978973685234383400450774416053422093841141683511176747536037360152738406031595171166596807719132543231139107143996217138329271574948988505929532535563403934417502706827242075901188603567903185423603653352564128114089647384670029669312307586772664453837160259202595657650751992234530040490527227596183279312416695523103786374112977324598446529959027854635109192578018471150460220072976915758795382216544422797661081850258654263335754125949803065922795709269402480895194608134272929045773799558616459147731427000894336005200703191002896423792762434582756827038686734987470928782241463476595277974907455286403042690578725172361439988666871484970380382181957174044843178820137001348173934265948461879400961232576938694433065323216799551797087217266663583340811160605241810341272944607235727735835602837311627987271890096888851223598411152874387814856944726424050122794436648130793126423613650420539338216708189889696188268555471377378783218860117164119956627923348800504076937913217594145339658122276553662955160248915891399187748826741702104778648587174571985126483550387167813032915387576256614313565790917166675910203201688280606004465648367988042548897572703999348924217100904331407995613140133324575511405057246856381457367794477625697485805612382939885408976409593189339063863583947057545277943883633113333214137692231219740279848588064690761146850727420079065268196038644660929999424614647139164376225142025161819022514419833379585139151230577278041406521147467745170359100698040818391352322597825690465669712662362561770006994806678262895751722416525234710727374482524034785223284472336802394176459367652639142106420527530849707062007320471360874121185728957481957533213255164830512668354368138517947933373068719194817846917786380877752885803697806650642950003478851215793326845461841803170462979889136914003667695396807395455586925299508684443411069035999035413926080372075696171887456744856141722813934465320376855577941617466214811828312390627037578254574361593422992008398584919636872298736254960401460919588137670907589614784052675981440763709692520086448685587066663800455511148994427036205317411859441228195501975538174565773754186861379570203010731278128101325061834178712290771272836981463253306676266443422803136254592483145968093886520610392066997592521963234450508166617075958406745908089403721275134189521971686020124435523226961690002631842021112038658634122431153615742713498820308336879208204469817891450765292399990404696955920745864110030888096325482238074528439251810245973514473425449518107740015202845520098707189985037542448918877318399604504265155684395368277783377270534740716428462197281461924036046681636745727474249417373655125100613209670954790934865996929095110919355480716326192531465824969192253765412444953757669558404025046830429452514430441119261443630197983663991724542514657842239141689533993414695128871842583081510589903960859536487774495785921697069560836641086970197878206963987383860243245159946946493051875187913291398524690967570888305205439893323800826717266244673726544138651547056081593857647905779264992929313305510703217094132398510696033030829785528497438078179110882845716344105249199560004339016029788438673707461848398264533091763780736834374571810443976674484596854046896649044933867277046199719664547207959536289185323289133787568161148038292054038902415372414286473453123583159800076736327225900644748480788237948780073919754891320540672012157212421130550892632518946191255620035109625703003196515339316403027105794172932086598618911782116432386192235801677420571939016703447705327972805932673688248326814471655393488526287979521264720685397531193474574205548993490644508680183909211856078962164784106669826186101295334811819441330943119689443156201720743381301840019857493089745076481524628734881141955566460084483175916009914430189826812075390769140241445391180539101137097712306641442061025959309745245520192781530392400381071636872609173384208048609272005844725864560974425910514526051223948585658486578159647594783809243723070076125738704767059754371056709992246386190280679936363994937638818805313655428008644933404712802926747940558728625997678119620837622629721218358331916343670136536718827585247191790807336535246390511846201185769146939495797993031266699434657546690469573968253286895876516226022384328092997609964495929488681014460653556574563114805307424400616357569786227212219866185533423960061259460216265105021401037913755177476787623222096576942172033241607471571752573317875461222223005076987545634493160256229641647450678496521480158461999640484118146720707735283357995080157989468782758252996346037367242299509316019017632343327299258938600138193882889830176368098700386967230525934537043533026218821315225295345102487043882649417279411192601070127563068878891717687185560289814574452165425272212076054576268403551821392681578860700416621666887819732176365862118390590782720062494464732459368595235361982159419409649744165439583119926833618298786400617453871402067873776780720520862527429514513334560165631618260912799751826572756079570859022592472652843485094336446420689880115097285603752251232380554965340199458283552435891718010346208621851563450292312195352525305790271377710992823702724025315064915768241649999867204360404373598232666057066962765902946586225737366866388312018461055916886246370964884252186768234924918242436991856186817181244971356552883665271229862443630380741320614484610070019180727926143183776232874831559056885040306495970420669993177011090821465250103270801755651081674791554406437919285856407802129247463682488202616058243230072819712974971733610665161606821915689746496966744930154941378575506850484398194857339030182106958878369227570943731267936957627390330962905457821475488007137940867188898222518722502892961037195960927865472458742384911700676060861420023094319581665473068863454762921434720227404531339912909360358813568155887000227101301125897498514277085351432713967430574617201596847006603377737280870017158350281385477290183398842245228976693507786555621656609840417591754474832409930390138383869062977750587826049179490299604137644379803310561019022723137716759451073621568654718337718462234213877411370959831955933714254096381444427153296801431768985237544037959711662948451117348196473027777897547243064937849191776086109627399548075722746481325927408624420897730971862883867218878188636512095650541983764846503842318571922619534775804903482166551969526082558343272435621494495933550163384816807726409254146028479900825804206496864307751590703425339429846220797574377624196197804172304237959134729206402897874648724449179429615076856204818102177519348479152625413590280555805231339409458489681576058819998827037465438419704237799493753673535301103097258106555703898524410631497134774849995101749377140032363440505195576837971125637838502382658821182383780077177546469641042515410697936634414534074661302602301597051359759749957138512436693357044387537215848386394504822724261338061873946634378847677632983000689415047137130391713302746366127777268207829279338054927872406793287053104713900138995872069637576165731781053281461291372775744113696024047603280144885958926980356680459621196222932981945358243560023907797372209572071799275785663262122012169125629519771767334446523425486372573240125955158047904879040274580191337423307988177707782734558420849351300374763186072527255838221498518899176209361849690375644370980335952532194807899237352150064989424206449685136070813574123992023881252594607724158840766636701748238058849806351843468936055777958520370885546399703727789397358062971419890049768190347253825775737485349692420334281785213458433648475778870664040759954730851292577936910131540101136066032899059908500147280290889038610930362269100658282007591061514606945063034716930908782877593193893840235507140383822746124025008486300155024449525104244913640486846203501958552761731664474306000989533870916720448548935645519478308040082705657110644641342935904013030225018472357726864378499462783970989133906757442174475740682622702171125294553526867010926339674312340308038290425878814954600259326344437819696054811129183405301882314532505241382488659881630688417398695098708298987470422370393104369680625941605600542470098541985959751363228067523677697025611851633140184926043815209490260405922312549001111843426109940062846598764741022633626233283236212570050371492765787732892275149834492281696103690272447446738018704626300861746837611259777584639560942742517579230813321903916270746228315523095318807600068532527936790010460272009831659940457801412602337951591088949195467825533564024576926691852019274243062392132052966600253336750629224199183502015733306880893156189656541476608302299422804958858573953679860078127493284804534519483761286688463709654764147526072913687448742919015695236534499018122540717752589064712680904404205988405808203360516565234243623305170962992366384035777006897679838327271798822574033910816791755391657125342455818495033445944331445595193505982421198195017535609838969865663298565177749983617764892805876509245170398914567616605588583473015233961835044513251863342043503805533289578157161504039690839665529543255066053919878598941108684595061493698042619882464657268686111865213049782091551740183759860793943459851924045313494561503656316863161110905506019403896277272362023367638107592691405782732357797795577691787302770334979552697832122283298718469704101938062168909518457575300821491734682675703586039813855245547020008904093776716127331013282176861346804310519336528089644989035343131771740561468776840262795770959015289437510456138247052493904030029442331593097739062313951884267044594476113083035004005402564168613863937845278831785628188566123054024448448219114250214078586028865951694205740954518337672817158745937176445223408766284672500564529947747168766073780871175461194966948172216897672990961097975535964669971908863021226761170715721964927038053636337397161066583356933798342567456213067881187563988679969569118966135881870885133129752522195221569021886982313839673341444035373202263717918332866088302216053623669805810210418429234942496401595617338849401779005267846407280158987257150342034211851328206807334390272553556335207175586785002879390592150776217198553324120468685922722308349905153863610081130175317123709925625863636468671663215334332697571209980734876333825396093596113571687734044614582216449717467203994572835455018158672838241221704064564230875502456274213613307024630879591187080683288122953639617450597087774154120595047366758031481675373327985041012149958820216603345556976732812473409276141852431687160835699568257084622920965347136470727303213852672379035158886144974559152213954566559710802536313880124105269654969464291915859469885414728490105852057163819678071463112822978451108455303931814052553777236807991416053092166903976633139305041367757724044251958382690883359819129274637531072351258448237749188035708730651027902638936503800327125764360567253700667036741631638925398127363886720542869683450149560252236369032231330430188383258823638438652981015076087914443918008832403921403578245440526813220139543238351341416163107407094008948283240263305502559473451092106838243993782559201758344897987672518486459783278708116764019610425360838122130119185393695549448391712792098277794271342264397215163461677005234871544804898785799481400408077171273410249500933501131124182459367769148585334030557308675264908878099727873685230975715753024071801660487007396009050300180608325454508011256352430628014120612218532149257690269758848351567228614206277027467534138422182925662381905180093207161523431970625566870399675850461584434287009184233205229835218704635636138968333413022578694422586230071494455842014042696573323338886926427719369966486356435553759487448271637906652146664287691866438124201587145432522723107149330417270201746395264912769866167212323077994533954824158105443002547094635159192831705966988239411082663517170861705308028156798083063267971130739721608340430323249515175944032461510401870144518138869347011187055857596869395779986993391272057026378487914679773691742592638379073204354681881610938642271738400912152296940532015954765832847192759666613968339158348173897920571120054984328423611541243004932873006206206031516744160514319733246707734477755660504738337265605044649873614096339496159332554890622658188063345356800794421364326531863384504713665449666318444305637570500591302162176954064987056131356554137716013114878836425501318271623583657088721758092019524089792501415600955132211853152159666289251302135714402459379044122686274367974142186033493337135799137648114679631640179205708550069148407828764514037111361359760244885872344891585121074411641360287120627133639506111725536278722603385362472375623530864599492810235799345934214606558674959860214182860668742091570936297132275264683934102221370679106980219843119093127329631584773606421758443282716080442908127596607618453536114684273049629396908162774669096856129530751881876002493867093835557373340582034766340906351553663950017937636116042075848700345557674735581700269786403374124979092208131495816304854521221688885415782384423538974024600377832284471318334720336500802950634374895977426548036183325033301848578323126222224472608752362414598436454886325480866133595092062774279488071027425693950430317596810621317286719661621682288687278541471387817835968437002022113811563642938153778997495650811095170425642988611152769320050344175409679186822591031008510964013822998482385025539913028017492765858661681513897209407546568442339833662185887439576094914867392264706646411875292355901987667602273336271363255320670398410310773768004598166222443802446148947755400601930645686894464653722612460843600389894295694237405163542914407592593162279782705599762654794488514812262449022731592544009839924704927535239112848898589886024384631594881889722755263020376699513382275313401161154580589833798550285674743796618529252808132220092009013239700885796450950475452282534652053468612522695892655982007908639493807476168672943515193003326503395446925393186080436286658316158466666041621292699865910485182616587802151536434805418958359295700012556033365151820307377069465180597264143264859766742112118957298494444055797547678869059675388794822852940366324707598289258894417409912816078617668667483372682200607407588401456111106501182149234859646194379173601630111971349351900962036252881992516441764539317645822076132123875507302430807719232239132439863291664268293443239380881944065739239656693644172818973682450967604324601436098973448070337269598122243037287982509660989039273553229160064588908877987606156975080724636465445859002361895367023260029245656831184229594036924420192357394256720488360402803909044103980514921610720245687491477472655483685509221437177271158237718141374306463968125984139776202571867449274419615801727733733806985763612048813532988499436364271660137692535864556187083685929243479651008719227464911687659209133696090031472792682832309537401392510098988195211565087988217189680890166634292514783492151170134045856725870367324531735652402282235751110345325468620395063355212151305435745349282963674956382499066366211599601600879411363732778200032076461316848065352237700330105712427112891039096172555287351187688948854098022386744915034554452531305091460237090930569004087296195480654128226884267707660248486705964176674905081289695468806805375958958208158358215031345600785771561163067953242859597827647669865264733037487968730608405137176377573755338514745571127126296418095053338350758916754461896192823246237716038870409339025316492625172335091981982730975676352182463436894673126228175547867912303966310657478803449253805703131724534992514952662964179580823550828885580131458460205972330946945101386417446195226587897133236516628231012860301584028885615593307264440594971664343946717577690907963504678740407829618481707563389126588697536872976709589017492689292182250102809407300978881224138477479454257820881979014838750741732801112909465252915529260540350745943582832639208532624988929001863106996464317126829672911541522211070704586674112374806369250946926412459683522930322537516852984950144361035156521328565223380796244046596829628530896877207368729040740070168167796688516485599861185096650948141862133792218024825891103945530181124087328838399311023153609422337294086270993228175580792451198095895977733657755705809777116096615096564629719405668327999824108175415045856113950108539150568986759474478100128879350984169148400626039659096848858128706627134342520625468668206831437590591680541984205901479769768574175140579574345528050539802137008016708371450162753321521008507594241951422737239066033967013144416878181170033394553500588499930063244296593214813597775141432980781421415529186920379253627832097177451565462807020472369572292649034027592700752416195045262381496640251330561446480421489300586772525689330388424310210617657338949585241421574609064593239727524146731253908224059836466231656455870958953974742955838132921999413497001322944029804787380156413314937326657601241049857188433843239030504159027232203798911852601004225078520331148051979466177323914273740421075359223380277525274186381815573243510824663743165098545759246273989076535654319295025052005685954145611509475264720969966271667023548283371509757489942714452203550532694886744214279729647130080233610184846078440376836975308736204624870718690746387508688924832665172030941348769095679215713965864565988457029335958874917393134235440272000154970436151902908647132955295966397411078520057860379728887873953782012890908357314202703804479153475142847724262022166201472423542075409246748418599950049207588381176664947594816630077811758325197740952617066442452085861436503088374246844637550964254602913986373328763419061521218520169574778358733925484976844138590438009191792514716592309790382362136804955331719419263591664705529123856923706204534187195744333594908193040305046204852996640759700860423507903737533970610766519787280763269946314217530057174023268568801700126641560846487920149668755411293592724752068463657572759026476283809786340778028551796520520895511118603963093795152464190330913274564803015054078490735758215338074667312723141235659190424384640725981696730096909150822803913406932661768400822039339498057384805441472525695587193320521742083459806920870887212131906108904539904879606419919967563980542376544298239119504358604622574892609283207894082596022156086028540448066062466043003906705773817887954640809455698475801397273842969501183059541284604400393694078047775368449550522861138107155310607375873090676651333515768340058878619479314400599728222227594280170615272265883127614554843797572274176773323509458579660984323441976175600165965721759652413336298355202418343434913721488394719595230870927558815386450926651876395772235702451880237834526857381568235183803784238277050575889401988123170194129957437318862294421732408549257682324262531818185579631652983965357524379985091881500836545638386071146937253428017773595752361016236290593722204948144645364355740985350944892337402577973001897541876249649741483285807833429788504757511507846582400812885845037673319785664330184084817125489099360027617464378819597075237845225472716797468982255336487826876950377707354670675532495685377883923020551157276904700813345426214908210184093487507430158154903611926381652513876720366594160058983735481247961441714527804864501282531334129545841123192225939097671171587682498461825642779884367885568487933856226733276638754243325478871074913462021264764499993941613577683561134092806693178592425981229529625503191889329305878455586479943778150111873723619775660901234328555530323514352053692534524655304711058461802480750358730189552601517562139159329072680934756388122662668794899273344003163650773518756745328463069210053075424757924840347941497072805201024702474459610960734716360178269256242812151119201174938002733017459043105473929073877842420616339298175807777172717841183137887358652725821908686460357573016292822179763984948690200266500782241354306086641515107574142324313004890599009160419500482614367636613288999068313866909581714588959368378797367711704152260442040954048432222580396913590625553099636067991649055727996820726234398893538474973048478729552059313793132455072716783403214362117391529860330605960590307628421257598956746516922634276583900473856305941355443394938862096237327117831565948022915837744509128504492522484280980243767122987586153238284536030600083209474108033831229533789712494036138535868895448907304598894515668695056247622858907050728836197183403922604281542192852827770549474793126992078908280705484773523405228161078662039138441739387912774721986025989868474478279483697867142759318487090519077473620777903421148422801780329520171853312743976190438759130846250360978896539939151081829159005451861666459019697125954150327465756121006143282527828639881548798643835597513171297826693933580244765780368755184516254614257606415182245524658608140488136932738520518219193598359737954825181901355585017183200043737101678960003731435187907211735024810972196117678219667187999517557740897792589837193175066499364127173018256457617125072400236439314437966034252603565335126735156756711867107317550794165486815452160076604404544143169525572886422463264611832931930749726341596971486359646353843793986635832657352467646748063753644383312888116429311898141116272668015247758396934372072940899031530457346513937078181361287028366836607180715702557042579001684333714886697984454906213405867751293142151931709455544137047422132700423385754066627778209692465659688291819589477457026575860070122183496530517172914071721886255692304032800807710750212158266706269335153316994880878192646982330567760460362832084686704118152630904262396558593027241247411589935537030967285612328968806134032893022077291624833778929724622516687682719579885842997818873134107472739241274670088677074740583189637884572176409935517072963132765490497135923388840224012161896607226341347935362388556772093120037376791721118712497850556640109904234686883914943109143823161682963590890835877980357855692995787034093210882348861801846258429568573885008606104891422201245273118505015900261733303284495948650491589031323689301836984583701209714624284140931655736811942026215045224142028391206494024872940252624220416502440632667768930386149842942197878047970892619772533529153172649787229045465742108240321078091362653430961046704034643074272216485306086442135772778943320520098219120211985946901633224237578960045644497506316353826920274768755527660602370341473175944664512431005677386711964034971676890529187632581742430057722246331567176841653589166604874136590250963194814264755019128960334638495623667702363824965001756610227399635131865763752934579758823652119039866920235464204940970263960647450645170953754266262549430325655362182401542118685673731267251989343223728603072342866508254319375649811295269551911635392768408814393821601426110259832148615713669790957707082793567905165726521628991678742767606674278401088894063660242580415965524339218744389127331846457965867232437728634172692048613723362403072637794362509448240673411750996860252585704455731497090317688787515893778530274607146476985477544983943847593792868717468377999738382752419908795578560423135711904279405800343628746482903502024671574684090675050969564870698545549836602056241994619719361217800378927009054857327460954198686263167411305504143888489676203572234217911860119405053548796608014106315653732894695400908440993637731854115738303059934546369684444973679241246950097567372754335629178326105260613089131042815984085355592555573645213555263908599677965933089743230270359162616328018392444065255843884341509177489271144320576150837879537675216695846871282749614721708006349538914602003887797867274447231463684528633153252353312768335452589392488303366892519654091663386532979385370292759681375288763789170848416533398368105129047892289217293368606245355414294707011535464729160501926417527532857019572105457183988005565504989199114562830260984514282878284797321901920329530679718913536253211458153951719070891963859858436870890720550507301774382821827773424191231023411495715297215017993932590247433766729585343926760363459507427424146220397519155711096517975053471642854946132662253343200142912522328354413139812363799948904189225528249552230982528365759640973730748102026568941757004895990027819269404877958083965080320453589445938155032263603245092102519629811153075983946517643003459935478288747027075441914883158035578992874270599511646673000906859048789890377265819374338483118831316948833930148161046307786481555693817099400922344362514877499357009115534916830584190414203568759892555213266084920294358681798426164548539648814180203711821128009493163773908301123367768367948624407965726234211241499486126671038670411005141806289941479790908398718330513267514168765546893057653362775962143048126969445786808290236491524510366485007039544829733906435173728266049898852521594180155081696608848849715345971670536398903658185537464499944271091113839480626745031110898630043991082458794044070081806502652138918247859209182909462697243802459589798191494832558707688822255002755053299372508917754796759148228993947119731253423642943998820833254460315893271441806403502393538386833945191855999361374575527098160668686946388556373191093235093422475657067169878891344204247464312668289808537780224278874504742942706015218955508892454706394859916549465756464237544060266942778051548266084620417852586561092592981345410841662419266164415289648911524070081433797548714473068691470654008179656970071988203015560090927512562145136741467950521665588137689650923873979052103169629539281329794843327310544494507239851785578767984216145918107930839588035537113494612616260963598996833122835399962504239625131969472657509830291705223100709942120578309590099011743189819774355371619774401202900523369892165082526806124368246524991499740713646731342565682173381019388385779936283342752005758446735560735968859001389512676636442323938958066386693663354982523971502663407411237016844326482826342875744247764582136599402193386914092563653448113359244268216662203128640369261754505243017319272014175285941538699535982141407197958740622536375634323535290119436748726683688163338130521246715642942999597437591282020974687132145388222191562730712585264974563917653699795606386768791199477588765480365971168387842232853583530595245865634239151496000194295609536658821488600126800384401082081064595191994671366731098723828803926866310322112218757187674782568686252734581416815774566141604397046719478970004058906756623649740223922657638643878526008587989207655249855310599971975877656202290470417647545691541355829233783505886350492745079891971147554486935141380162701529020681827540429148757639782971806769330409842148539185664682607958012318192738968002143576889994791186844002973230671044102977788997418996455260784365325024591049207137156451634927390223941951826069731756532214974533050992921125343319971486216995609449201606730766187859740747668814855151223226596531513776140309287564285162862805281550814175034210947587352723253921619427911520959715448769279241308153907183059898900016215884151704197013974898717855453970401793315161056576386102830046720733679291912449463624003033469237609354256085681719538967092974352766576329226373686353680030289624228126737509113880938780320161738506609182483164614240174958076670401370756077804344420212377090834130932444208950281839878969080587698981483881622289466946742731599497192182080862564161271572111580491926371445805482114083909414303238090865555893762300716633171340990162614261922324224715033421993143384894538544100496370315830780206569448794216696971755347344807296077391499688213044440641756420694148672473490228160650717942069778251751547472328306728498955941939577673557748688578265107337933693414181362526170196777944868169257581707340650555743762407478495865400784415910605425146603811497064171254382890397656379326531454017512918159128527726998009883315564320798281445443112629722031250643613800757696695507185096269553587319630182985061636977473206471525486793168734639100407222988358437498175876001783876520799722823088012572868533082574671285655433897301878908407239627598457043601137419850697071957044365196628340216706109358629706295753506156180756776850512479554867087791505512056072387547799982966029995883928180346172113576516992130320394022366842678565133739122777931022307598241714941313306126294084301336045930432884833008566685583384794653014280687023187201006001599117945210427437670433954241727152839508667390197790995730667124017863245184985686067498726755032553393789793661155648573686764749549160954656230974277300605950957370911328690989010677188304094390123169212509125481611636837486817974544892795009472418117528426449041407666089927555269814154563925106944839297457238777595650985930220472159778123873221820149027011869085152244271796163283024500918931173959749585093276394741618252563480329904964075896137577626426794806010487877700979643510025956537433608661635679092988977099814798604830646530491114279686897068219195684289570890334871218228808508967015299019913228067123289014236030355634117832984420480279379115761543314080430508438038743146502799906623589110748014750900577213060518370764975371863778223217224752755614843999424461040873190284931812909863901337123824331837568472542534053814164358120687475934514282014872886402742086126049668202698877443986144896367908881924939319876034522657057816108095064586600383404364214766775363156794799842089117513176199024352136954384784251078080397883564404857583957372200495269563504063415008547056473998180826174049497036792597890859671027487960379690673890757765857754534697060171217715494239280927822905503968146848292438480167749157296576597250350886946029136985081501588020053073511162940644898844152992741525656309060397470633068406896205519029715526446093057448076747375786108053205576972638799931940299633999302205739286447270338100860028186051297095256136538530814228839066730296229518087469864402790815635807283774025568911126960988596928481016845778874070514694836231414191552848896708588585084948507902438222986381742802931987367629157711869405437346887916859643653336823084322295680228115482731118106123303433253026547766160417291911744090161188379617868793021493792219707410392498666037957399876101176383752053720398039628290315203599209491272107187865159871553292409516350081563473347217206012874265919133114120212909888512455838761493270281054685027920432538439484822697977172521129660420723356315615359686624481636465365190275171807201080940122809181551074126472374078634892702365124755950303220127931675929378199964885170952018872010306371019409739501075036929741699502643803453520231698792232244336699314386421785586147629302990141917521264329380489824131598917459797458431475228490641140733051481129538095795606779822452046154410555471675206855827051366199868317708149754939088057727941589439104122266422753953650554492104377628550805429296700006872591130474233150250765484358624766438816158164885818649739107902950967740392533492435850076883342953668032743099384715274809712588485544888042360575264095648357162276575598396992236791044851378376705575242144106549835209109379300261615505317177645875678284454003599265227869670080145475552752838198296261707148956839618102762512753661959756596019975663011922174843489865634484062438846185469167289704845617231220330878135320551860176197744811268447451746210454348561868301286848750947344856167431170238416583536729228403320955424990448463623076064065043915011527235055895292060247561383961925784540883868851900720710476643030646811462519007005548027557137939160175650018704943616565359864854078376668676402860431149908617188712898585220393558387107313816129017681506825946552654591390766484909216038874117932574414050288193733392896783009659817905501048800002596200928306495541199177517571296881015219865830266602817973606552785274561507596888617402401654064265706577591401190991782098715884471101468968220827626343416686938108267004790537827965846515818552872152563435286352081260044250879014554399637200277078115674183858751916437014854392851061102162447188732642519619992989473764532702936432808416953070513852103325430405380314660781382573814387044513473210219972688852866520603603429968588741155972247431683926155986406151959692060545547260619413479752814831861176687933146884553409587923835873524418778467980302356561655082485334081363425660501943959214077468202830819118797570961541026602424019833283104208703551710755458180201082108331870534742575841208345425522057104729120081467184943365579862628389623622928652790153584244330518221797139021916504392816101548107175849560364587434326629223650974013345243371745171515328558706326619066482274759945904719741394324106865137220809212817850680242079135224090636583648250451954499125892897151621373052867904767919979163179094489571449149555873268123237645930134755528972777041511806065249238337327852696372749583518531759374232789202347096619238349813454195802150407871679432374896146621545465045392147544592488564092725174272205756828117872445409714838446681927951734255224862439117027263182469461841780695626972286173908355447253518109597512012911168769981121659768775160057908772495273052791517304463351643700212865681829646638867396559195226250881259476576961257290377118893094740899449895487762241428463537356156875305044506613351712869267497223644521433776407471729378470781166740794046278314512372545959338510383034893393373864443877666816484259186838736975286195564038660486436499427071924373056443899984821888217832829492630790144920324928068064556669371930129701997716861093289999484694309428159966288617199124014419641738404132707030350397477611246691868451891291268618953763977611814511766669747907140353451128227369245924325750747546793344766618490378764744833164160148423706439325280611179031231271014063758588173398787890988481871002350167022402645661904983407580089418788230831808967212153070349120629941898757608946180359475516205207979102169113317675115099644979763843544662124212255902000706076484383297061161344229734241089254923484105041246855897848503164093774140268765426282104390991096971059785106679869361750331935389062374697667469175381081784040469294005200735915517540063198662384190747349744115523362289297251242704192245898660114342195538130473813727927314097938384789304314110443594594346249148675144292443481554463978292948110247904917877482089264510120778449729493829045462304122424942542861489579599294200950502555843271713075938751824979278003933479638200232987867818605030134771511538552029829905594075762923298575830561322544579347574569310589283257701493206759184379082497526668429438770955229246591854957842854779075197617044326524863886690730243850362411081210773470156256486593954484606831404103453521543277875396488603654146815323980714207188085337403594041326958031790584000591759284863915351965120722513919263788365678391610761754324225491827739121936865434878764387678002903503019495743606531495999550878296880064168921682540931354892041171393348002350330837845216098584820455482319551869092746372400648739244773941257208003719705680743675094401459565693725869136939433358537260847337443348752626533908196228321849701849904281841641754294143000168310760607661830726441025920499160978419387678843147564005673565417131390002040796985145206490471917980478149799388432712957109756963131913720088058016178687859322241477723559025057831885272022137619813212755407059730387640588427447565042076668868706418424284438508139267601875936157869483151522979083344675137865366607219875228480328107737795741209051900957939924130203289146511657818355989903951286429858671690433460321785027371067395429779650496147068858336531197020747615978637462099611142339098614390272841459439492186939476582297966676373056461663755407934093703179766788332211182109912730807387086501394426442930210554029517786894575870623875043587006053161534143307631907752305183036995521770963961234481259832227794737288872864637944669463650147874792447590146995590561094469913752515915650897025740350967119861718327007942777741162642367723188111559325852410972296804413773982297421240812410589680189527280042549780432175943156222656481110778358900078495604747143393074687280931674281550358938450570626722374087067594990633381261292170048390250481629089639192923270792478063156728800765629656404308722793417167915241699773563426035589602932855758578122446364403037534174113982576448184382919471106211034666377900477264592663458355297366941991717351794853963121158262040886551649366030455749737992007465024210334313511478939054836417938494264118284697731089387258197771118877011311079340326009722342543506654727648746116177410233028428597453547132949736696027155913868774947068136503232090629947016956261922599724264211834080827842952837592087463418256415547429964193591148932972553169924271296733087486571306012561485387746630624004945547287305853488679504505396787912123368175062518166841619717479093742108610687644539975742736539338136318692825879816835234159643488148049279623926265128649782410533499847773570205376668875031534879580033671153870239572203327742105927296469586854294869878011486788722536800374872067340514601955855061969433820683820557662312648348737620496583102109677977732781285525056982666151058981120224072712647165708804133140651004051922857098751186116570120975532457517897675712685731069799206012730935240309894541439008155911058844687549847062054632606189988383271995339914845142558949864281074419010213642009461402357890057577711483162845816190906701493670700102937863837898780258894299455679982191411369904564394662871789202764011926023957065114026622592226361567521750643079726243593945315916297731491529208509621826585124479693544906792061970617454228052592842205557416437975183931190758481803801414871263403277241272033977423309063635155250636034742964580230023625035349376907324844361665323286401853447966507099872503164635723157779930687035562399952901938217267259752922652231757681450474959865003140262032091403085801845034391251763943807582652908878630874629075104398609878470996012111153164524835971476694599415033370981359098256614447547889905254370395372843565539827709434959982968600181926319270715702259112631562488535608964413866676515579084560507379419193220670012234129870978254147861727321110613200468771464995700110232691369523827323263407762290873508413269340293882622490293024412407047494635595799514535203128251744266195841421809828257609782215439686651230370696702950866674506809775302828945110658375282686393834647558699872976673627423420296550643682724717609565038885324929504271944557409875927804486178782703695591419862957535945543926443044980655596236105914550028116004929698479486761935691674555132317550453405302317522902073581327233631711657334133832853559915686800439135266200808916147662908544099195780463606630472969827998364436565124636168880430769752252943739597891355995455191774600064989952153703161541105292573656568220291454590812848120450901777605673068995910505810662590671670677274672075510199051112821630226095058296534718765737909379034443457402845176165978543781429130990652051528975272951006330581627067678700012162206555634592265587948884327279760847327502269811249275506498140794858216200274098420315174023048221433540931806337785122274780416345653699061396192945526978753683962516408087258209667595150694222475470455398609946148686352460477645992911519293361010765825466566118449139995693760329769075875167276557800757600852258730441289228615616287840644074789450436153334933309887575607418914451781406265062031894512731231339280043098859465389809921188446216986331080954770869852455217311334878855424757914854537657578650261878095160587415741679956798473227497860866835978927327946860315594597577072518331197577376575931972612640878557603759664184198735367282307094925527956321297582094287593265524504837161856520080926016875831387474290181159995374334017121336907101853855323902502595399465682885966029354753293324441012248377068810382010130686418817036555918429861563526784286304105824163330864188996430970991640335470963012032385437877350150675224436929467948615858748385589222257747876667286144862279844139827941057303315497284931139157976011266692419061640240308150596142865163596509456333895070350438975092543370207058150514999513026887688902603615998050708809889372549177262578181939654988806987734639161415716444825715695854922922988737288651333593997385667105017659147317571997790264496267333417826146181536694892016653485140557258084249041868986773472446632923123839762045055295757360457172190874459730773243001695581617777627906882116795928770778785724016502757884615471922623911830705236473563632916594161110166035252211192899007701930572226313681753461927844257347657415782748861946321660410911722292817024007181226124959602319456476226044444100650289784862915793543436312387102738954699549397317925975248961554828802504004707538525464135898059764094749813960886837705882823556583666295625429180735967994738273364250052538970160922248261807276944138734961117480976003480816604930226656629197652253313920168753239576063700634907002572529123447516861986404769634534635715523365588191886633391335594561958054611602128240567458759183721058796060154442481140601966701813924942017449377049933124816977927125347823460991260375317537695187325544577146044923733959892353655797021676217993847330197868192344362028841207665662096347543937853980954306044755354386372519107480199351764880017460840407327125657621230350597449152016381796548943750848770103178972925184421274649849894439719747332624104792672544266177435363022828818985227152707029321792869158443144190382555293022433335942839548919919347381773792500749505116791302887176090819650555495769949638086990446387843625258994101263488245521267432274687587390828162561641969389947423622992315554741549537985112416233643464255408032117855566850401448098236526519848018208256016082890728001429251860210039964956170863838459895588680373517618613585151230981059392844073886985422261461154049701464934228709029744376700708728460547721494407016683724849996358041457911302737903890054671751720413207722340059341068596204873199013892602269346424855881581937566234697843649658888995151324374117649282781856588172982528570828224644904054296381316448387086630917738238330126074345512394544302715291153521475610296636107045855202190741053565780085966386937500830887170927939339092146043886259808780047372253092949661072506664185740753807603582718620374910790877111603353981498065424758744997072785217815496964844648380860598467914741377783340062081390725875417409987568319196096695846759833924899232666589333322286695207979536582094497095079840487480530339596525407283743598145819356516106066229976841039500014855046020279940946710092524234549355466490809165503770759343561069215012401058574129236302432924295592593934579765044507186922406865628035375473822558609834507937367746003291738609783217733361339503654325491934811602769365080200897938722123075692712956765576719166844483011349744260462925646552780111818732377530000606564616205739125646295144562544752769458517943732328795268336725643459619010351235243625483350162604531143351279813756886916970595577629553800577204150068671736971726317907291602543348218864677129922075562702559346232277865387714428205631402653881239376653853091791577881566096865418840520277247060054744022576538410082791640275044391215010733758303243002846273899913115216807163277342985068324482648555962082645037331026518357494951789386155378193021331976917062970237528181512138980977655320445046450202766581774873138340504698500331907677473138547018341891887639302099197328855507192824203912690144640958256626890860614070770427189521991525817278189178185983041178289761192568000148952513694530850285535049607585455694178704809189243419598382890044061599351198926570039821839801767919306241157714293526031364584216155782079210160653101609053742468237671700952097123162189299639832634551255070625060977135131942649156223091017336725241760479272996199921467905004564885313523270231664813120824233081842024120956163536882885233057869248681632101922779427294496335286838653737538283771425831938360268139242065479509312725060151510319448744941539361045860708719928380007046786803261753328378689791987918185984623528802815480885492695435978350235468002689148468975537218979557050888308843605099429709326599645909450490595892237385283755290998043106889620533375004508122187595268330974588444194120805871352739464301313245595324657124835882286040668077921432732253808150153767950051145530237849115417477326508093336008757716885177617097136081212454195487945634202619097819302315265352801618504824879430292071871196679497415203181701523543406054625809756523291245714426270712039363127745292930373521979994304967408779473226247003465233897819161229582532647484610799609659502580217786888335684244930496827820101583478520577607645277327374571242337354113241998176338140471514697955733343517203549861899444361869586002370794357084023540410947740168524652981167765396429381362562541070710466603449511176612675546259174028454830219441613730626859476895810150616537881570466496741991757343015808936359527942517067759856563949795561266911759157355439491600772582429393274271276783116079177284986946538930868363272265180375018847884841338303742203252486486448700491182478472162400503880088442579852585931484787624220545856494760172844425047918130066046177733118175952024371705016810095645220917094736714455373240408107990226384701931560316064818560443159838748759830446456177345175576284606522310525900066168757395939349652612228328286445792572703190253375146291314367815793673418569019265960679216363396146422262981307373503558785958110598944997210604609602884356240287909381252694245940717371663408441099513344329044580264195413404809730387392550460069906449681520098037794059663263776922171824725487226376446148127360914407437692148806662829502398946310795148175803459046427640483397482052215102907465089410480287691001246206663702150788433661956086999333673667484992809989561013999842918346078842563657239422147838073126508806090855876446024229693895602249270877929190235508123847599785658160422072495392060244921280505456617932159401091457712483475259534047298521288089833680864994248581703589376139513383368700901785190119137021249743170046400540443380027283473039392138264960366453208495755783261549850179061080332423615878630700020379022302651665669512626780674737358140037442058065721536551364178093368464320632097876328793701001708739755726049618053866547115638971288108000166553212078669859435920711528756429379517032321102969712308467813537735471543509528222456942769719556884877126587553188298410291706126437347012175595849135545392510159382560625266406421875918097142324444614956509010155951577535841571581161830776874609561047363692886392028475517893805627686823022613024482898778560574889819590897264172838701840826126165096266883987004140852440177849633130314740334802400140128222080649716253933338713800292925333624689520733717659291287915931297310425586588960968542557757684579373772229312927841401335242621668496879885150205674643080098982779565117316888478700565736248971824548358920182340468868556987369076917950888731903164920386933513580252133046251997215312797590655700999410624204662137206258970887100672691658887782016429130942006482732527579939679195188720767429870967159977366012521634810154163966403459189023829241708186185606609007091610659455215964418484002904254269614843900497605696584271730332265756074811880745408274562038203546677784060853808036886717929177805161751201700248771136148886354536915016408165311466704052437233510784777794495363718900793625991093073612128583091204581516762061205627204063495228985862921439411524843387579709170906111727985088328115289587123618308751851609630853637149689306607487603460700453886530988922353195391349061770231055744607933920717586970412475779639469138075660294018174837640599993517997044088582946263476968337949858739228224514646468540498589834403667540548509713104470717068549494418442759699620149320315341681324988025450685593993137412631141220654142102736803105624350507806644876271088793518105979314109120658176528621154046618156766183475886304217258090398459383458143209146400298071969142148648669252535168309250837615562739581591419293957286961645509935844810833046088732112883260941638021604747673468182428487538851367527606118191906294338701148062937726588895090386730374071541974046057697791278417303310075559820863869835530278855812295301627390593811436939444211414780154383276430574785669957981232395620328998856531744050297020024896677320204525622601185627575656031802098670266202528324661640893446968862215724341025330099695823931953379263034460701773972181011546020344024479906771412288142457560742728003094552681170690387303711543163031662311577833827890409589397996754024547075698548195478250200117520132537932836487150834528478593527270781717818328818776169353729477024221233087758904575987710832028448558289541834609618103594695825653932870812353665006568402631310035232354489908001398144994786489688996519716120921514308028222225118141219652850371718863122242575069766059378276109977580276579349535722192900237901240383495274786853007495860584298789822341331327502875938799549456180178838592336312699960164029501673173890908544870415387055497825362672557498624819022667411068210914261424415059487243428952335365221893849405425346385464752644416409688012455607413299713186109203588706055458185194189127076738264925284319511122653983406228351351832249549333589724134786277034958862092684222635796255567447665448419209399626609587487860248566133279748196457679862951111817787841688688012569210458694760497886805944894902115697917490957824200392854796648696126242912802191283523863296178352927577806962880580213440503367063946586991724611984384938667628535341745651313700176516227101742406434655144835110745919454682014496069366006955720302430608505105894804390691801353772817629464773036197889945375634141501899679044902698154088046797194372612895849416397727394988548262559096047221492439781376813332293544046968728231970581402616348451091826579812865104424680653640975931807835665928720457422207774856979129117084235029563777025427279305266568121022113971492062156836775212260328068750339209677336965261628154222986803986739567807685618076632395542701009462645282505315697287118506079842167520810697235964676491502619748143981896123207338671104822100742521054633351399838945612600454357248841430063174667162185929941829537130124173320827546693962595347441006647241957651851826814495348337506130041498290220405236215652501939833653628080330076619688861830380073260742982374975237066279257097502808876132555755132083684935417731181965771220636452415673055034691745309622160203589276485333560571188055822254935687074925028820657122217679053773413482099316182932692554539600371752298065788225456259594764550280032624094859373324283892338727505791873951294589768813790454924239995643339302999110016564870027725036673568002291497370290839633069968677303010999725118864971557207029351077639027712567525339737177763610291675407694362358688384807913585364440546155500759547353232331510530209562041452999324948928957749544670129041912285959373968277340177872676500689540366415905988531830019621785158771238151981862014417325026279200206529185862260827150784915727465436231556254579712212188819872223453868791295185365364265417136587129498146881278301044632829162829331415762089448571037690715975619000989467673891680039323488199905631994124879558552824884460541636310899149801177480491730134041842910104593244252510553017180873312563562306927661493064943607394778810247859869649885400151247537063937178375642954232049393541250411771644191059334690741114667912866203249695639103323460515458647548616838575661082555465031289276319889432547253551093906074935147520417487935097090576738837831501327856135273243761013334729670850688274126731680323662759298596208484263440457064937980190082750733421553732067403999565408054148408525166100658841206332186380672476386363505519839389802132372742688541355352652118334907013780079209809232679999169681867487314130335689084182281749725601041019948248788827900671990733383251866238301228031998246112853841817354267500977363753838775574349858607701419029484200080950938177230180715286861372607750194746383045308505460602954197800891129768187951420974893564507213605509103219746318069060770028741820961350867915068423506067309396578034568888531187090942822122130020935654073380840813325849346366397491304822394193082593051272950908836307196206050223942758619177645540605818174832750240634912993688948204768753500879555147044083169469015289519360951617727421928844991012847641435677147983247283906567446864938633175264147890547435993873670556579081176784211962773831468519958659240163941924549669679957507170285412085867689924953872497556294528575469638153436278845000969697080194391185159971792085525938303742406628261171083930260467080188127622880681024059397548094559580943708122307272700496535303061376276416289259999176310969217201632555206148676965581263833677628477275286761974798673908259646259747423525592364588210855722335721931989786222499471145011265461615027888231846271230419349942970028687730179699157860199813304870793570124114479574415832927506451250190448122341301149066821693719215112269367730564569477679388814474730760158813595627797466602119516387108166191113546269878480786898935537508223626457048955305650061129809400814729001399741538810652385763527365786493169609555054647028134093296526232010126639085374851879357407798277757741956276158457727755505343090189455770886204687605433508731388624660050587359518004454310041095593225644028947057536972233169678613546677171306311411668344293731653053257689521525406810424009091458815079347238462622396936579649034618243334083950160274121538412142862079097219710642363799303237748566463680827398290015155126960129846251309432088121540996469735959574995301828265740601861295037818548026571995900006827912365769181536472470174934778983455641978531993264139836712216976923259435091541697661242689175729410216746627213189068260968816103541390178617673021918163370758807200032357026746953264079480417285723773707196371382290675562195410393997196738284741250597075048859749414885679280397612761932196277386059768027361621593897317526388755892468954680643932065292816267284565732890319684939793561350122815722715719472622591119350171849775786269215958848433739158200874801643161919965343079151281781002256818542736478939107426743782173114622382573792819424591305466807052499000705721436223347624994888837874670897178054696521962581466768829254281356912007464126683022250822209190150154838644063508544185424158762210609410697842052629608851251273964330365424398925745283902344146131804025036058072539181819226556857022739613889999200778520494144269490824812750533161124980514245592488863539395773510396862506794193234824435459614832627750478725933269574982549217352140236634075802639130723115888964391448352837705746701892805845905851182602469582204612295491517522212188395248635443658197999865636202813441570659459659008140865447633199489771877392700617214179916846620680745054866566450075716648215753341300858083204847302803480390792619936700896903612011274372309909254564071408181729261761296489389348628314924879175132588767125226006583556020240319738986423185898410064142693824707738458046055941425341120163577503243466344631605799190717380134910887127246169197129141119542951195213273920367280203376945225872624044999376298856231036190154078637022460557559223636184642818392182728886582418130652455372386574079926138876158673787841031950144756490522593630748741517524050316340405313428238541646993195354523175854794402421847846046252440186061978339634971733763189663091058847981211080597193587718667076386161614419392464483157271532676582097773166508863010394535809024827482123489624391309027517006789340601907894294974657640288221927330568180021703016075213553538255891225220509055709057614568958998713913105579963477248570586391231176172096497685156144490954326521743418440001698891669408955364330433644376628090190672833329972866206861819940719213391275608364147213894979417897353766487447843863063988507887810902325790843652917760576094298460971452530143500431136218410952889900368579247998958314134456549540681043203898864518358353795313122808073731148947301258709565312553148578187460603274479147773021534119515139675547169681675888832283528557608630941370075507367182127874069084391168272998980914574581862885584268277828760182411244838435801232453317674332985981643187296825122473380055191846050067948581534410209328237741869015607772724741749008499551906214902473671899793599952777866421300620407704665044256426363458103663163314699967744162397039169527995970273163738823904199106000874452554200854925900148273900248155239444397075828144086323395519557285030664031707889071655523205129709721782526589303079707843413994614358247749502190980703353985364498913448095442683705780810306390016596380183814998768188867199242041771778124198554175755073556310857287430912738212766703704803724319310806272264614477280421546732544196848305861088590293904307614321195306311944727871964493808246917661869452992582897224981232894143787248057215211810298939468157302565493996840183443776061900411561092715257972646584047553910074784552425988559443707090599009981298477343515361114357734502947573586196285851770085579215750669411106179174770782175498308520951983189977277411681064757512016730213139025388831218874800275128791965027729718525971051625044819223390991606160746447456598956470186032317255695113665892072405182235736457521407729455200736762329547469263722312348950124312724038943573475298876174076034075396007685523656218597632017435873600072891152707482183076408863857871773988765794993246299246124169665687489512068400713626419325319802491691335528817619304909045054877822283353143421521532847272307734818011623228725865582518735899361696244392460782680814406488728219765960413978597952718116839327427341658020695585141959183609341014436792387559196782053913617552176808028824781468229893375796514308567115009079408939411322313783024173915980507446668505527086980851409366398492678162637871766680514808195042151668834428588221358910152468125327804580049428759099897821740761804795262035953700137050611248245930241976380909318979227153383069825883564694891590090279333969333768219334174949500564835989438344761020607776008241797134257556618674498137101612145359855186202107256771975655473536815653268078537446081854365712095416748478018512428288048974299090218482968981224044688118448257588961322198808641454995290735463051672129743483421685500310089316493759540347488101911558597821212787500257916671907009991977195247312925399081575847345120860950296229917525166860596736728918321752941196324508444527902556895081874881702629656242784576602706043417635551637272627548877488774346937420792355163733686356294025410235986696184829799043172142459256398092301094353664816587982948850903733971639942473776502385770053246522595950805668491395979043316949707530431566536601533436829276118062134205444714362897251153601586159143680806386146417808954669367565043038162028902877920680018845194815232275704039366450860647841068178911513774364881234222287791272209096777873863549428735250917386893070420632698549090782974131843506571170010282653094204445980221430427864677773592639682479896127964236546885832177414885471681440647383751533985845625515859001086206394629058367331982826588959358930878946772943564643435351864064993784802765702523562277486993456652129587141043558870472835164282457052636482138316069453692159385395235890328279546117096813724969880134324650594560773195681496342635690830342333037766503517229938294497774099202711700102651861197059342841608367428855760208491152282134250250088585508560908697268999132877718730555217868527546398203857549312756109749408010744443379398702554802396330766780774109939943854046607479674192545900045063135131613973081971612172959029811245504886838457043709731161192681774338751128694660510656715303880733219128572038310266312467689945093412683860396400622331642232181418303412633313695751789299180014958431805228678779575905538112902754689693346867818115110468937184946337377888119453108320981074648921725971996680237296791870094656059995688478325215180049930788246275211231590164762220952130450059580275195420618451123937863900818535246668489992465101297613138376754225071863336346616044585989846603728702552241534002634216499226778353718367465677393451815631498303986079579061239407418012124062879237059355855276076729225786352788241920242519463487785864037377703340157407009047872902631777708701108014520874472740888460466019607651297981168307942591014042703044362172307015053485403717244382361658587862586774408771288990683405087041165718250027911296239050585100267612485568208377008713442727177928663298614849641417167150662742012492317597117429603191897166570839894456781396346665036476128765808209949035562325073820165052579341310285531846326384465802543330792222244926353489207549541739690338740900697139129921533987418600568898329406772358524473600542120239685379822467719031844941926451971654925560125582183466058433203842832169781726261015392682506611743723938784513551950552431466263421273701120404494852037529222358718039721245210892621914584201366120290605617491494088398005532490723240768572834556123917428011371605341313860887245534846553625398774562253937313877271692645202750330714898353113838272056399145164009130935165448173489980496825796310234747594233966476348896834844564252120292682661983003660607667890630831557113879970472036499652232826609313004019189880217503187470392908648142198595670472783198664515728579595046957042133585288004918381082654368079779267789865171938791459196097794695190957795523014606553975800924915780414119373474248000323928326398240500067599234239413110203718536567644365869593788342707249374157665657904721854415464380446184394536973932722213952102782250084122269570233115596662332567796871963303067559349071443961436710730302266870866440047326453196017055838575036300077848083715838286089323803162350240687454136748517107694605386539585192525505384499173042516341601302093906575353613844976148224776083813679422311623003447802886244566155740447427043101328997549178802940949797793564221451585150081877944246946148831779314583464530746194795810002841223962466028178117552110915022057938255314219764311072370224169532368691928324378933727700488169857774622095019103506291283278220623608640433733240774107978156525326153262291659641591283517515322984941536432661608606837234522675132503750907339882475656562367955182612668042495535516062993290845007180164962608598791123053333809143959141881943755887196218462125188972117211396517071352749065178515993370342448250142337597461277873562788773002156394912707264326155487521500741967293202004015877552017973909478876025127248330151958347743953443872150764995584845887398723540585136817032190504950113219309726810570580528970996598905069935660925070872271478005919889085106057518564951808348606829684774995378654961522678592670139004329340179859979158277760324406686488661102698550245307430701414018504001756280465018652294811667521278567199613860421984242024307412605247487835077471107779398694624667422146454003320782604324206385004820431236896528206744785431401225205198338838171405836581880722282116422205347166802219285989414575450261650673417102592690520042949903867042496854667050423298908426525318134767471042138720066122193246987162655790394340614203417843573535814065883595600454328782689058481503806567559259249671718073696959537049186623816051419239711104267361306382460788054665269154683390260770058653295157849165321773854313479439447438631127842752202158996201832244282921026887010130148328161261666816209768618300871577912993876037324163174990414502799049286448689702949542702307988295138070046080987230748816653150989867837736601608818972276943006577664677952106975133454148264359870989894048901429430968296055682927218974079042804497030442856558504066448821097833461985257038583234939511918918380524357196000851932078727661413522626694998228872814890657546371508060005878016632368743499380735660774076952890725033411737669396419401805450343694825388427822551063657045060211118883263469210076208245463043089476179820974254744595888954476727928235354104950837833204049766629485565854085836343361365344840970247359179427637037902960180228676342650378817103406002125007089111394853529139468983609663118632785126054204375618917268047950944515331448429089363716628974634479517543153647543675970040762482921028454155703115369023053974654544061514376939458280884268544032963929284296090996275592469138279270816698886403927949271844512080163311238953366901876275905115832510229248755202070194056819267372947464387882347801442039405933550806253725019180198438615760683191106878645485901675124450325348051524198211247708851626981208626610366834225788968012933261694113463739595486703626982179052673025720247751212785634311282251190175932867324731877388591389200947129149326689376107935224694610604960625888633082769694524518006803124664913377890670267339234745263859474644155409297262137033797925178177519128992686668895518220712351659623709875606739806744461932433483221378826530285837094683235061957235700908681751535424580788256771043816761186436247837231779276724879868640402011137166050244418324142897586516971559735716746678157504101419182618038362498369744292646176849346300869698324110996691635228751078355300315587584515897079067867877610349272808918961073017436654774601287362922295369833724143788328135756542706312707632519472526403660107705311035972155188159359530063281535961116747850951346724367603697988553210394301449677110055517715440675493050214595979284205000138002916035626127882590434579922672493957473673364556163612463539607724047754488197311000293484687208711185438493150633433320061510520175935453012143322159596403422163749938972592988814331932507203088423239675580532985581106032761969841131743995503240749058197474382937252374513068464742130548359868331420482499122065428801472036291350546559855766215948913718763858901721777607885662343329960046589203645493669886588523247206813960991015709223538034540742267355222281699386318310907218947204190845467179801652892231566502119959713972866227304114872886586805592688723427371350218802268069493098282467680562830394827759719976425789392522148085509125857063334280563775454123710235428420150535080200613344111842317960757327479231189613591754527671112299606939785994614088305481281811655734462065003388807572481565882707794340803995978777058979463672707333179283667249413187828566854760412211702277917792881262576145611350730401353545589062457858958618520775753937536318343465312509581977970287247682447433940603610590180233295645894678537557752184465911939168081279629944982997702604357871498970768931829867764204718082185540832548770620660916945020611021259400521826367366978206884604012570426620486229705838267343561160929941938783048755654144589140901997950067458202892103700512802785707584848879577313927651333769335148946079677820820936171731055006587280986083060649665597766101380131855483810284666871248445835025418676957432965076596630613700936417963601140009089077936000383764092103843900098334840978378402131518506749863199022833170604302982209374549462886951977333901080819752136013672271275244342431988755448710875743941527529298046934096301962593295865926271769735978662989322018995333565243007508309170414645186191452074447751673602106385083170960280709538478275214927262691519588564996066864553924732770214659239843878237001920644061240989967388387017733099550048116971709498688881622194431465471114761724433389197451514963873055325843435103900022808293232483343549880924857201392324390356734361377643764312149449348559533298201569755705183849846403240901474019184460930849203532225015980298912200395293381588522271227427672415885275409794702670660576093006175890794416233636342261005643415583115701889155578763114344476903912739187465811916686822288714048197791742129621350524277301777685540302779502133588143681035030907720947150273964936109410826345673551308987353045470827592618715463456945118082260156607796794840005092760688864089434746092980174597855264325871679877380604541341670946475069995284746536528871259180287438346236068924397845259042850643717858946721131724258128724124947925680034526325347858779257444076411578812375234908380991843732185617674261577292884647952280571243307710027520516281018546182155803975534799416344511131060373066981749378125285630685592875255187259227181450271434990917913445004907019941825138362358129053514168409999474898459726203646670745443418661183374319655420983316676656849485123551275049598982836597804358100325842972347448005771158137057436855093022448652680841539874554859876056168932375310125013940842703554914722942986831846991012732908943619762127740974459316017501109909827966015217636863299583359554460754032342754753791249562259797612893067560354847657238811662094546976374979742185285396098711722235486341465094562282342923556422129682094450513110685134267399841888089352257405741405244569233436895092449298417136132898898418711524373604079549862104847657911746381607892368295718365137161435614056296213174581723490226402369169349206012331829712160756491860491384096582861444443778081091055663641356726524074405990663784119332010201652349043714096607461762349093551268545479195761115196633149173271958757693107195866295869807790635607824339952966788022162422227189537755329754296689104465797226907724881020192532053360674806491048664186883345237417313418642877796193209307860400875280243309782448230288865605537785862139987783173006207463703945410255058874141319360318044746394720476558611132999541209325262151727786148179850012827260597448961981592224949798126399263773022622605505340490815355651335421689663175196338054970494027743665986548515133263780751954772181261587141541947956596255923014040760700972169512061730018765958239757953784911790819663696527391074495915876283225767480970726471425242636456973012195147920890319773766034601874811513776633302673445915245873043717865999628284908819285633654150205238343545502621339446576645769556441905902721696194550214371457983102051839976157387157485892871333511971103845721709536812353100060317546639304934122590876301867130888467740658967033955655471686377706825203196915232335720801984739697793357759626418947804631639452261829772855266919233701529779339452454414109962608756837483484986921862920146362450674352133205565452889675268814758435203287530500250865276589926389881544607023748327893941076986347933742576110850218024912232159761817607237202647306470307516271357763526164255399159822674296240519820992528406186503158968172008138224704054892493923118548168386854868692537052905960032048940094214432469216448585993192266883845917054269975459904542024554353501384807064479273517612578925138147994709187665929877895296600968689821529781599672627342276239157009207616203557446519556030320218217333777823109070477886804208075959520114782145684745514579909629321777718179094235697674140057377745086681267654615873088951179259737177762234798357403216533420994007258984895398570165465297818180061171824110108539276592357222168357915555100240075095716947745678070805655004368753388585226558134963211687865153824703842704811605021757086635438232751969884338310698507351206661361633442687303920678810069335262346401371188030234837585083147323437219633735498548914145785842213329203394179481640735144265503180527112456886149825739273211442346940035417342547496860765869986514333122694578241078666002120281854011517744437203948764866440537752451748781799227311662326584619075332576626870157095161320238805443300251383503958110814839307400865268934781501688501518769421068755681158348908291155483811146122936977351497719225994576632082296400409738655100477903083404683793621210320838709760225284040013955367575739918742028020170116129102296010480789263597904570258284603052312241003945394073917132638523882362572272212811832491758337900492593185790504315905964318091966935008290284468550065654100759905026438142389297824371774774148370625799665678682283852367630964439664674649069011406351137620430167163787635479831960983301247421434725185614755786686396766826928221410438870895481064588142442108810350635943899164958203280123365091084829504071495610252196210514086187937809860075960986067702607434754684071415230297580135343905206028345890145798770171057536749293122838224322123909660976698477017347834611834382985173936086033249801650217833488509977088050330753604453600342361719753081123799260390874077520445512395586945430914800146177489900551386545464042674896311229067292910180828613694684449252434172130504247904156056587490752184597177266107865397827967368752708564186522521122415345270253000684224518242258853886732724700237249507406228897622198055156949360471547514572812638195057852090899014486668889794193121745829884066519339575401317614033650685118038150269556679562098179689215801221896676959291322515680485527266897450595625885324561398370915188960972863149611828985511890492740174593947306108318450866943855746232340944175701980428847146779458208364786508073921713958608889167509623877653173721841471340906185077431526456139083294994614011954239590568265001069761766937252801426086427372461163718972593914252382951723696290180594325885144004605737202669301426761916578383399135677037686411409153681372351313955518545923628397791398064396710662888644780230482465766000759427551308580494151490969569478489419140704783903785170681285117276892281774083738016322399516573742566447873742349706281747213739889748596129572570613311107809093757074377347235899568690675026916881496033874153487102390335184249232342329938390898414012075098152411818544165168605980997948095447559078122999816235572780668369902178319715615211095861802822316688344853919323681285276839571690996848146938694018910033527077674395827833019627864133974611221143498556456390615430628857125361600618946946951759723887339732838160188362397958749821346589997194484952979173700227267615523075978467892776926733111748827934731168337966272718931599506961663384883561334356043634781216985214193892145251329151378372892317785626550691524530470324375925291347614956567553896704031553473181131539085934148493490314710928570258560258932925558608006340135250879319190016720594080197979768642171089802627515915243801128265572544988660768709931199493708413077454308014208138896498328970285741754851999811179033694735943993147109285883858271763726090963345920230567587902590054744013550916388915505465338178684249209724673645789117455224406586362487622796059053407183432209948988828723987604174949896412713922395350884707706088475069502157076665345553028551899101258683351841564639838457003555954225353975161009496155419729673768475778828568651675502934364674046717081161000413507870355084491826207747045724844953143538266995781031905214738236135106241440095482733153777112505347390932189746535166083415947995617481657563079358041073071513055589083522671684197427058905320046690142721918974581166016076600989270159622722654487415526606590249050236874627994586998303670139426801999897569050739254467586489747904963163933165657984849963218009275557050206750536670678332322106741331736147518291514866543660201850327114327631971589374941861353645538835855988795103972487432652304869567328920846508339721933971697722241316949210456352371662909716565619463326285400341849299266644112771136706119631847141417439331463854012185662924664569211754035232603930357176603098313932843368254436563285753732774080416529609047479405992496436162876760943914845917400280806263987513017961067941494847389188055226311546986299143658353438922586636840119785961192540701990402116212788165434325927174691536419512036059983487348335369220685388843278512772776357028530752431466724483409603243248530422820416625650565617154296547206078411290033551425517907448118617698483122778700244279628551624877552430821165622935072890638377643300424247106071090210656702946927288342224258065266801469119777460277922931553611778452849643425729896886098801088043412293880483799137110296435238828152496269025103800568861956018590640930325644483967546297508730860640350912906706063228137518156668623239615317098546397018816991959365732391215324257867825510375187556596997935887535229912789962391577835465213320859923851071997888951576580212845085658106532946005202436605027739853524474659632468976299478013034797580003655187189431332360257275642498713554646898141544110844909106506453197926783686931278701086959251477704509479318653737074541839048056553422155374217746745681609460663688427845059034350211369106229605920059655284579066727950414651473088007220486842065341031677498761827912332027377830421133947130446081785424662701347277988915376243300999468009238425111031459825296085247397198808816667141887368756808480296634417946009334219754891198129480104960085480179028733427955150703976069129791482247314079649692436379610439707479005538188746509247323481477791071439539548788246503575839084027002309144561687030265083461869659541896575971438931493080705427228501440131291958130106675197546307619348233575078085824030901917602692573526456206247417130944908456485653251691327119590282328227951383638454971786339904666943360313445427637856571056087848119712192292174350000440307099968021666058760829606718577426948768286157560793723522894697200750819416100289182942617911984770175152662926593436663495999395011563682079237898128486654161175593397505196482282551740525494656438395750638680216432551885968707692740961265537564597633960522833269194407142428234746863821082598423990861318324173752698502330810788318114245533737352309861129907418537652607587578676336666127786522742607822660309173098133821681064873436539295180482755317685581493214247707691369372374899198790940074926916066919867256215475250973762718273105868244984524428779096105129480008477075113171444162138293258689446677302159253500724388137033282941916054532644984869195546505681883299737052984232997898595921769810218934707324436155377561995271318646442427582625353593702478962191078307610893139150510797548965161174275011891134508662379613963999470823748572815375369629998705392433448852592405193315497479437335539975012049018251137317132167506116534550435785022135281632580867505236174193165772418757459598224945525448356032191734324243513925442645211144758543219581233425748931974244839899268371394517921891706698165358578765623840897345030864843617838026837990723328329347913071884630388981896605948867464017721987359661287663378912523020593186908825636650521270013025610754068128929296854570226917055101294186776097296775188729901555621299248562812941758332685878163022387313169150424079973306293019308961842970882779785292439834776092921750919824144273349463873217545397999302398861129088482057757730444147258640514359328972237818731658903163611581500558826380092125834252447746514111553376840195763556948945303423760046515447139388638789996476550730703279564189723451095692962667863756037670955412962090278427886506490718271721291133442615482366040689639974994741381460224956296588672325265988725827810804576531625104015606709421692653394130673036477004193736849803119086731908062608402665054805191114555748120293392672327477763751195313271209947660173567039403537519790980034370186083122953410644807050572902914129864672876316725430628746504002291267390851104258801176288531640514162169402994614741252056203005644904336229337509183417587072805350711814439357859513017738037905817731171918616988073937480319143697707356684926356255206368271645985633249981776650012091492243839568040342848020168792526014124446379771952054452458610076422909498619219455594844108320074265052030388018060068307507248459817892012534185302330805319207242758629597350429397570373022594017817389361454931551168109738093422927755539154256869123095315533864266949051932343678432602425565235309985244672011093447578779868711529525031149716649571075591935215109324767182357800297151782622216798929029998612320200571372088580249403662674880768573496635564401992046534681148517664483771463162207572043758288951896831325768350289175201400375663505862717170827707762650785859262132617242399030777708829093316151002869971544152032305389892085212982006819994873572188468501180638511820704359711930136245914997140714000319868622456477664692130457431703049387902902126046770547105526884393275589216990522949924881692580166546558815582574055910085987833644756135211931655885869186619093961505591616124721726450201311097352969104241123309522367999149600106131105635041708948822477590164675403512569105995627484354320312464389644794114957005095254382637456723353795353887402235114885731672497693543520766355062138686371097956122864895878227322741477054486732585147374501164623788439174947661451859401081492366745768254878846537350136083933768508882374340673085716252868491909144340627852673019627091037372734931824743504505108219027390592411897687441913644454668630291155281816440528674443224332601731929071666700201728210916154952059052480588229891212788578570245161917164382595632311265085824610400468057526472493554038810803758718038597738769206280432501214373875667558776102125012670941667096790265631525673301317313293171051236583559787657346081918222646874438372541436285363116427000504294873853166700142330173244367695245612511585295921360511552280355828886000994773792929170551555340366782999171816020543067192379430239109203747496207512348710145129965692341729585056071672529537013713587708998997313205150539595637566032866644449490339429516073975660081143570435103680477085023981088255030204347164886055144078027888257404052482199707884954509841415501703631153244139290924902083419737714624232848549299188716225057255732066091898119088747003197058875498851342297069857170881686202362578560865463103828622746316215675560007396850401969450090322067775443057901815796406475945920858582656726262784374219468655117752414251883030112977969065925665269902508005364492678280837644600458610908849557140489932851887741366525847172012765305961617808478145314181760093230051261616996145122870367733394684780841365942491097542653317627087351557855787904563886744185425352789446647180721662435872288083738182314442541207765728597336712239455536364717068440649906419791073311918720613943040256798597571104528369932661322133125986313252001828070042504410118028331357047130769908183500715027411049345236037677054520726421833150775313196405675798214347234125549349785545488545127882424712229803043113193146645015716548362732040649055128830841967258828947051818421178747173008832063313389598665406626198748829954191400597906164192270203106871217007104480602073028717837912328602093609462187727714884943224581247716246650289783010248599298404612655223908757259827030219888602607588249210213390680291065468636753558904009267920185001916126159503396593344952696953438470097054807380618259432172558217998755373172503349503293827964405494312753029748071046195612923400352137870975680877530162604810983229933994002617163136992938065474708370401401988419422651900833329933335765480771450201947583866555569815361287819793529244075746403171945080429828832246198465770903624144168146491271711345912963366656209851134296263357163085782108948936464027004348066246430038156065828514909606330005919549298021899492091503032617385387592945370715011624409236540373089772134104233319351878676716474524899126226458213396069073818789546282882305828460034571274176719825175957159260341765771678261246109616349150778472003271211834341093000784720772125033949894614370996180755613264403138783120895985092099693105072666015819566723983232687800973513932712309413056799798755054511719744501071191980079234987125741021558007670314159853922790698545025374165628819911521925830179623184140424729970636620997655425900327579495973805157277266943860289378743063602411011034045123332887289785758539851332387897961787636584118595457789503493289019912784736362245618651457453201341979688293343024366177652528238906147863578591748355433724788632617806697784621063149047306392666109946621502732034069646214582711450046876099545637627935589355345819146618202052599700532366643026678650868691331734976032549731263535604663526648034154440900627285262716705011551116814961622086761092936436658741418629553166036019943417000309516707952394454180567297581588911451995527062090341772329287590625362538033603090487415589616185016922295203982902094033804255155255148751839298845828991060615983397387581725654761876307056572317938133596080009424349997561109863384938367210179174523867391995459024339630077266567056404007757377986792536529126963126352760480265827834371336228953540496764043819153895985103146644107089581633112136295773071360473936865860086783682418643871758067576168745953717448997474622988066000144836425142404378374345863744968265230970012013350516909817668995721930926181508506565976473664930285678447037001221667433858764238503766782563443175161945084511471574301481679549576417332227761326855352803632897068306639881318397630331836580437899800010369667259548611425459939327512870277936799866269531883190361510086009948247638477868846573896963363989806265716345177308769772801337169006590388344337140170084153748057082799519374501441111328107323922577611170610283101915050103914486440000599647913027810306818154740538813162887736429160765334959775021076851609606391192913061420511136535943787083276930474544100209026373431746141977814319030131352771916027312106093942962169107101396298212915054746745249085400672155188062417992092022535960902430112786858023514211561468956181649927197593873689288954617071708672078397344066847489921246872431902530076419142383142735140951212061881832574399975950103408710019838375541658392372874549908987157356374800997218983912149141690580658238676295247043033585285926393483606493001555550830287266311608304235048938152235656522026755120410252090867863768150342484705962792093317328877742501103488981993120351949073118636820461856939349391149488559770715915279673106199195109484097066837513366512042450932360916745195823425369495078430817300228582800382679270159662138516178032596975885720180556802817277490882602178875734758177817539912359668416977497958994479348026595002346391308379801352122273061064119231357881712416780767214540054865391675004043438209284617768596560855919117859690760154558770162740796532962369456519704555290613185478507450620245588148769530913212650583535123878601619757276451215231655799422340467767782925669446961976136793550810135570758797022126861064954140661224200098666216113201604844170463535558390887024748290243254662681414778580538488036934765103779378356035862026508870927877611245513500881598302302835081648626524243020854337076782423900222749535704236501712362720257235973589715534644737400446934587175872570546765220313471896089779946770671094958273570576789585599503317034609327918569356022212692614279529775425048001181607915286658939884011059733188094322789341274353659967309667640667262359104648847436486254669057549476380434676891463557305016704085077848279110194283307856266385880851651875006747176944763558411925943688825625037310667418292139303066507381236938928883262529331922354455256268284918635306534961056346533805735167201337975281452719748561356878088497398324290773432022520811422405187302725203624421852939995155377628009686675310964936858791268639451210968084123733925875589702190956663120912342849992904843078915355642030616771935722625920324769838517953324908529535555124486505192877673400201873101656655767263539862769457761636981434043318828195541839807710033408810090919751847147642327655802905388079160955567150074617786613999040748667037691633421005955968649916039738440226756467931861715269697343702280452992144529746723622957921553763418206895864907041724809963635596137078311655235711418190308421296394248782883610207679374699402239584235371484528328452720100446887627399754438274214270790552959003636780970796441310469100478842646824912679640175606583716682910064234498336919990852899867305558876597077389774063794446472869015157741914967335992777373090014916929977801729279968736233871894950734892970136015311683242831858820211396318162414106956021670286485421087443235285669043898344599922816701239244241428325925962057953665868155810513537427603479747602417222897835611415052463186012530273400943126778738071041367755632165526226238469518016375228788021999652415710461080271486749608206645939136232154110476777640041150196114868258027110791075717405117352273469110218681019735005270319493509406692395851249625820808047695513017181274566774548389803145050382211341924694978287833723878284159699601280098033517780876505694667966494993666853629642146171958254457466848552501644497454285499611272111675826860712912553239970096929101174174318804621508050082062410977862661061860666362804623720006422640170373282200984472942466536782569064793216375978464437409475987245298022217853802904173471972721090657871126738692980053236217978915687281420638307402120041016526617860231581340295189962044337322649044960897904218353074144188173212423503042031339413145665902031372590596283889863078929985024029131087770432966565238979370192835837592327697227687154731923627309708827190418002087813719239293389646598278319004977853317439867278214376543698674866421951192396010562380683178220107867466837112498131165456725659576803315582072315170935758126732113669724458611907376870719414310548839553174253571899491671979190344240111785045784739696612608758707865431566185394623707103384828181434705719716788510636160879754457457149495576599280030198963484532546792341780465397384238970943852632935794456932280999823981993652236600767050743455095670094185987427217190697956762697030041008224661413471161945439034176498879721560561906405954678489787126302950464603321603684610266284818169986118928051483300020446069613123942673105772713545309844161033331623481312482878495638224834245986190458137069222907051492773746424051764700064200684180804884643837360625167309013675392250897211310696555149373666393757964252044996350856355220308929623350574567663203096978455019977598640356443411822804240646797961560045746018189597743632134714121042432063705030888186176671573316590475056294226585990589842767696776648447755366809772196557301247559997919570845123546235985791805245155010943557449285658564727612395269318725570103063821115519888104489586595195199190729438142390171392569930945134749047953483704018320735372253154639181197012159004864258049907399501635481409998840999868591251344872861381740672061750560306886258274744361101818868815575512533234291530725768148148972881570340066673133707692217141932831336751318107083975578976484873227019250039795871396000126929660422038190381599626898597020520275285740306931726796741312481137665312557089946137644616370868807557456185708123072133888683719974215935083038778713100187086384713976725290636084799118775905759402383592165361379169066001209915477244356423155974656681079208295671734679085074919154378366624475140671913504470087144843038275654772260490474189194086353034463946264731858913567512903402340542622730245566729898722361695536831078135286274215686449301888678928839432358923192640853410567125046924406846708798667739696548836301458889071790332307017102025417382698892622674591136471309652766020385967784143450824447311354675759502312274263526962299078079736037080430694841900549132635375557703875892772165644184227518258173199236056959808651920740992481771639871491981977369045715581677605840209411640815976355045851723097768227039778452062736313390576072448897252767733477082959420303558266596241317920831108818837218436037318029946928265466017282224555260414860762954253716856574025456238946619897988296758269366346847809372117884196885683224563668612187849935791588923315700758425834602259281559436402220032612569567749286807610482952768575965680667157752003164392674381757958809944598182256095080422692182531620230346326456369352146906607820734010923286635888406400615496651406739670434849710108494933607184080866339900844903286246389224262953750465164121151945070741853135354789345257002694893996528723393708520687581797925652967039097827446444546914353136673395605425392043381637136120085332051538503773776575375380571152854674334726898479221975663057691785664731546882136373336511563680119204823675575192384752194920811230230962591232343635864996473120045032951979194043222653022796501856620938678139077747239408970634796484522070959049654383462607385922589368702855408629858826065441415865169432008938629186036788841582481231242359866753168594538698694256379256177820933983558662390551307912931886063876354702674512375365980615698344569975544826155627723791066196649520362332631735671132168471075286594917827388677341621815871008166065378263428277888463423600500978492302288866780723703721118907191746026799072145366850479069377485596588890319778072970211810501253807427234563248294183355379755066438995274256659622563267960054674165138365215064973794731538856023023900143680664596535557199161703266954419159408415750121426993858224783765639173260163240567569656052519282248277680967637444457069168640752679933916488421549128119967330049147076917304445466571812203575793644528347185412661447219762248546106177902917210589330797382520635086764117122089007520047622322964959898519421734017434448756557805449255013249019262826870940191767987668008057624222904805541113659745798094357887652159286083265268825431041714076234673262226340570950712866809342902109558928022160501055400510250299405556401520951091106415875473834411986132515638575832376938760127988874486798144576136216467111725399139497576015849635038942045900991979987372572324719365157399170962817532309717430517219740442237176019511738399602197063447020323437166148052601880744566682077173323807573322644518489384344588537568450179963461467673457910476997343057981671858089499826716100282966879843099233020976260991825680902041072539788127090844875607926844471577734808550854670403175094346844908905771508019591998106396646723639601070769443313003809191515133305003364636073955781905378547546771651736107500747120347755264621951021989951847223578880253172645304733290044156574914185230170410286993999871889459236366359656112783075900834019429878827559880582327463357793619726550363534191364920599003793760036821960235026256560034101645796927494291686811610537767002535809569154866826651520717433414164848949087582897518079237013105555854167012769828751932579670765636789176491229506002358792993800893802274411581317187060564502094491265566556957308661500539273439044890417597309937970953478869933412441876720257737825310071505347463542074986785429533317210822391307253066596003409061817150809940570959469353057647504986664881645534162100676075737340521257073908675600206242105211757342088010363418304840541307141233848307734758801668509701094027876655387652312910084277649219500953884231780811933208715322924873961496548880637109677662320516359556181263016753492940021950316494384098428400844189574772735201270035831116755860150228540741675807084886706741259129297466571032210217697603064180039249039745643463598230496653086456138052753229970782424585213537059051888637311647084535648324090723961321665130798447788111602148701210661342007977493980357360380437076054630670102940171824211582076454284542722054871147388576687768984221484783501228471116433620748361259091317831554094247086752494433339259507310536021149263308918163032787967538362438285926943770933184854926408319153897980385494709161829323504521279318297095065800020762027972406445710447388911334587919958497449517016197963481834462722217050714140135082659428579098626982041907525586947581302832464859231079041648108845535121857981378971554222968722397735805687244559602624490565426465120757949242000223145884602388877139332308851118180661274456660396959906895504733881079366600136357150293368788263107751446876823349705267451878562766949108248568054008889281316366890061374482689024345602374778803563935654575632914789127905517884259680642464954664701550264921843342584978488131341154242783858167276191069918387191408965889309444383942442365458683429621925087994144452244592990993404869258449248781177581012594086769378951861101642390824247695431951635616001184630055663344199556253594015239162800764156164830838272436422549143411254396912195202794492754117078241361444861123141377489680497065703414968906425424846531422683873677830050367799259011890052016477535935763053025006170473633900921360704074225799354213494468785035156721726084443830307201410949093804258602410476030095044598709792095426054748248934946201460125970915697505569868709984175587478330500665336018120091700350729457444898883957548007903298817786883746742404533781567982435355242336458963821406995829920925178814076896213903726113622310207473260620949645916179619329328088165123702239669693986636667506574287008700077812875889278091249293368758235255853676326252890182131866584546335301769038087551373498386376973295948632407585372065258445161840645567185379665355666700021171816439118781556603270785422652398966465543094569590955999813546193639383452302005054551804774455182243080270987249118132691368807081231502670657382133723999233593305381909901355771038553017461178238763627220654711053433787862391309518682654894524553525916963736437470818724421716825450721391788021419022347613398673778903678674061865665583501303733162661426864419035042268164111338350331348357036318614525038865087074771781478514681238711937066456590298074188981098041373055697311842898415488270726098129027446864069740107411392003393316850001746110830684938994688164777903826425893773445938892154645774863307813987407834036877569361083992357542319381110402180224900771991354688087624925502157096673227787502846397871841549265564440877021045767339181652743879985446974775126292186247002254267364804146225154899888433828716582161941973039741723527447175138173860996020405806198586098618854191022631802469264979094863649145922346483549012002766079480595369599324365740490864416156261297782929826426111363305710543797270734898239661558993028020350343696607965814116738703523730357747765615677391490206240655512219712761060004065059454686975866068619268227290005690445830315168800375287177672426585596589648276179383780052350577440414642909127147171456800645741350158238522031285708101589620646873301039823493443647169997938156668144813085920816325763061233508605494247459856888442767906580623627830500071023512555450046569823237788090830434313683752181752376958527778325442042176986150458236604393772988410351412447792527178547614664205549714826692732250115603606537313572270327234533428010713791082780737143928517384431402901641854557671384101239478845082566283118701880519266298274374506652408814132093996495114961369688968426910840084096720562646573675212108929748500453594500752378536485872182035011046457036452574409618286710874525217186558993804914258940997173411791520075984959759202204258631028845222359863893736392225978536987632570792448251113265081245940199672606900173204961302049075082105360308418635254764163826721276888268427771486051182668948561882517092545939670988862315410128256234531083026393895372646216886379778953667594465156053029905124815533522935161677194298772834742444683067481677304449404940080318572969335782918867218623188348427062243760833471509256691088747397574582898413275539190818605643618794890141067215421246863563796489924796216902667482273133303783426082759993322069046133563727833863208217907763437461607401805386114767729563172553156860691535463697640957965470309086624065681152056674703615448504981928384081515806850981364929498882228371275075448341287095423620213951488885441778977220499236248207562651456548451529488669897701518952233680961935372414704478574726776097045219796869467405900503409706666151669555227042220091002731748717913680459672498050296567929862595161351306630435149310453665039688223066644572917214333833359559545322949952531903508355554289777885635633603426216488901571192084684352888447693701372474196252636756617436206176261451962420411273945479812337084017118373915438185556144400074000619049150711255866233346113284396778195301068622194257522102657497539660398893710193883826656529468342060181904404498447402614843085646709316300474999508422930589382297280215267916634483939909359404199246091406212763821194160330634590207102913982841727235526252047140125803599313253058701809049420568841137755064074246508170549538157479571997635768641184704886418413839848959087361755817315460426363740853199896235549777069635276084371965209161734495243243183432766786653047729513046201249567507910117148261319874793300287800463829293673433108812959433913492513823949508219866583058397291333447925173270972881291457863513403863251454348555454071377964966674081852618292951978162596033237371555366434211467697125043137756507393282399619971474567773336009115608293287415331895717325573206195549923014991925747262158978815713592170302149291037040620077080893119491133426876367238389275587869172054661310323424605307694599809903394760756588897670337695258311507631512939811801152454790290824069544835644008578196121603587055615310947439537602683032354609401592454710301101074343140570327881866679160447226192782128025463460824044449386840534812027133999354651194407129229038876086332751355977845998504351185612950542070535652205970045319727635794735387799094593599342560569934743089843437216349001045636577147822967636071064040859172756038021097282616835204124489221241778850831034598569603711945112967330118224030911315234072285555655416382984334687687958444645917232341049887404554037088645059953466308354136179596151017562377548762096338333024644769444068581617336016801803855605211113692283702140064013697578123023786730390129600615681911739341302550933168546867593244114626610264445101791426620200152842692161832976212901824996139689729791963558082822176368839052612880183819849415959257594159821916795785184680179320040140307207696916348672354553038374643726505677746475901456912204498622392883749713911875898759295302847706983078576812884681045510632133585267334425108657976109797526998743602815469522461740345079749127281542301491322866869890913242646589418126950557222954532377025653026990873252035869171388368802754157116286636294709697350833013898257116725564081679831412122783532788983618967851265042296609296044650318412273156790274394724998768534323833717723847120974088834397193456080707054102209191539013267521346147726312877946848557222838643231923899954427189303354161181694813409021432220046312794954083779394017618451734255653187139890759985347668606678414786842459757895306102943616160329275392704212397789351108233962197535409636618679791758358541578000242006480112396455063697993606673640059638618117885476567885455785267081277096922276339272195925473223783805324332591652420244250293314953328579218879735703341751486194884741520063918330047653636612700198996559745227971265552007719488165059007718353797972899103428430399647218298261038286688994373070775607827156956888946953672890660862891989839573347498714415038336341491933100517904002737977362829286405565608467822859074135000345596545629004477620613610166899571743164568233696918530433074714266996409871636534118970246153413679741777173407246759394729224281779151434842040922574988958167361497529816839684860609743176808318048198907933459621291452960285855980018519410861248488054614530104524411363270072369890579181876308293154009867719163922760072890097431481718643374810094872281885446158050747978309542852514814427512419447148963533876974031356102428019277933797225575632269137899537647118457532456144490004984214942672668314191414046386598337028407377327793550520436859377820737421686943304943112865331860984737354236330478627885661018514809875129344662065504800652595365495359223824624039736219916744636322270748558078656390829012930480231543387569665895039889074735842857503019741543501795203738921720699406164524315413297744825665440571468557189971826791527212195382310387199182108279412671806453975494648477091858295318909522220440360270142219749215916016202327287507641921974299985171384630905311569862919871385297213733756770242508034763550771803294208498247307973158706901548096991745453076402850364313467109214617579337454269508145984177089069031656300756907774495731705625962054825861093302774927809154900049191002104433986914149273703270878386793110610627962659500224331149248532019103290609793758367698012902835256217618580593304310022878684951416654481707131712142680663727614731922419413485489105083536554690648085243213945509312174123058676137054201408523718294858406722563228557690591735971695141949145565539178518616824852716026527074006666453143636323188696403458231783451158680946481121346589173439493604100028578494508699323286828968564822018107588974376869611300712809676926243136376107188714109409553986216823181297051039322684456346341040540043173795020938609044554601587123184591208600131546861684464141079124940703330333032116799745982876929055342648045903382491655305457664703914091123196101501551692763431735554774585785158390190578833942545392580287826346442969087423439084537605031835544946749567113057286733804532922419047844918652586453958455713866899364216292751906527375278344481520108486580385867797149744680066124037463297460317412827137125840207414432970356796403496653243655282873790697001177883239049966623223593772963980612537531969151700539672469829774896749805813470036594350855484169543561835287329185372706533045890610902477085277919332068655917044552275016269661514572383135628238623906977084731196844360432908794480423050215063733087504998278934031660037965075436844218147469714177163751163500287420015895412249223202907417362878797942530735144880304735435708858646748216634584831302268031597069155754024547303410328116423736926822920968713267345980701102199945280589500807879991696116677709860131575127500306650982400490730055939048027376592042252922254382471011475376799054536347995812306654942619926705712098940911532485650710162169811871883472481592942510094753920624354112563225034873529825861181069388279985829881540385470021559120778448253117601962227854938790492930331747643396030386306970988558565315491742374174748335300390661815567779521687834679615844871234260704543667809265666655414666553344938896762427141839404922855561233631217734971676300930750583014460512209855445684917742454380345767124473915543308376049487885303877589939181818494248165332707732421799183867868100637823448748891294473003201583570029129229912003641902167090121129380792452500744450297632586869272418709507432896738316925547089882705537267804297666523812784924836960203077461677343111026075564515715213128507256100808632914227960745655308650327473775878921445800711085646356244775737281465324205428434828255085467708622002404815408269713610800107087249739310402836449368748773655825360348591390323357878349885966452837148351547768822993289573469216672597459476465044915606385116833488835671187651087365623265995478373997653326139162030268885264473202026554286206402534836848130375952155231348743223395946247881258990643219126396555175058198641037408253149217285895968899600173079728379985632325698472919760062130944028727824807746001646743585549558167324097243357454942305292907520692002042571944144205070675372041869264648628895254052058331087771087206529434624152737813164659641561751675037560362067422172192800848853304699099410456461676351408279025415064759094844064001794845818734245457968112202977702826274381506361944518344642353534195608036648946917620212676426635997576708224383391967879468294275388433943784808850755017140069196213994781835545303383615238582228408330112554342254474260982352033679369179248135580936990408570503308381897855050529047865496237138052105282680557851135611628179079453755151552071423637640145238309728396451739379343747900320773934719152382472352057645868290751366458125443112524542870325935793721071124569682503067350271023510851176613134601001720468459357507045003759978396760762455608340839328130398285307761306737384366240942717104505236550022226129670469326567326652770419810371944189342857112377375965491025953027963005888964306294126777554821462528646914449688742796629550426089130020251637116497500558768592071778001138332530620462599790375145293645296382261035265557940224586862977803706430938467029559046878936118072066982007997210672159563344010616518435675823063836308691542533340682390820899664354641063679609120917224249891410569242075964953798610650099643675623048642279239511626335178598619114642497406160442651195618054041553240148616448016446644160227495717587943178056958973463750321392183434177140016090957766052923760353563448002516886246229083125813063329017980969842136787250193608047813896406021013255098905330112847719249123436376804640002733725026896021590873144526286568206378748393830637020554956261970463188523886802985252727129434750927218153061291557076720648355319273805894351893847749874915209012034522121157320322223902265820984314411041843152127148948392132383703868049115330602837150520270935054197935164081107737175909548648633693523021037714667786259415297313368869837721574431205562811929647556393785270768189099100363212260067093157606759490664229374818108277636280750803556835877770295869461413879792576772235711862125939058732333182763256243742525686658837591025455016678637139030880964714488844099423721051920020161326563650030829115398574809789328164604994697784811605660281298650632759729273527321930883926026354899614177134824173992489998723530008675012023604239607933906968891174418210381036206763459317941052669424659254333483128966827233617181886453698531125033633502766363458024140763278874364237962313162444688198945074515937656736397269093870940119772081873081570330684889161660278969598672176141181164896788130874172260154758993342494846675808886530483607285625301147773203363858971156700305852224188993495791056230585369665050329559630498011067374881724147293217889274414595728886779860074502598933789233588301471967841615389642731778974634157742654894541341160590225762064048905067232530584082354872525461831193996416389229729893806083858493762463728038228464478274405359389592887987854307399158383712306370497064768681366922808681208510356717798763597192331943929614019327210788986999311625654283272976033443724248208852696690519555338571655824716585392832235252407812815632675007988852923811765951463011780263629972117351409409259851926967606847990920132038918974853684408054678130921020661670686682572613914785780027527442022565821016596160725623891270164074206014575707352565570888869724479046705080485194362753664993043255077872306400372820136248607034028517605982651384902825428917805100512671892981704633455701580790478887600235696300376150364350284640462901804625124163590728489816799829178430046937907046740927655612610448814487177763067650835679555411237211659633169233961088837360521295622706242377581146234126394840015921096587393089075962935138809345140372712237758351190780238831161771835654817640272662457698596310037043737680239078033110232787433359134463942848695565579067180936211559761911575663290623427855717430893305032260674398852350463939353618494149035826145941226777118098251166206489404111578981349357468490393889027938419167739059819832876909972795757899565578947960926903666817530718796584576809808489165389734120411773655344424603428025258751693693283305331275989668605918809737519125235999048806126399037920651786788051392466644003411124215695845232855011072846377128229658623053921558701659228451414749142286755564061760393276859325514136979066658126589904145743460569501566977401639508008693732418795873015793011073075512321785971459914636654802808585962314496377095633135635770588936609120487604696315263510244742793886315649277343045848934206647932819721671319449939775064310716737175582341993550859860437194160756067486770593900114695834014534208595808651356513209623356309545533298535943300850912888336617330723262420546224020088233089886853749447705873110966303925352799106152688969465581399103615773809177042525627758142372160854840928527745487614853633775516233469962761277721710980637046022229837734754161687967751817975531520403128212985261107179895105681744300276909078285115432738807177137920080801050638417943588379474649136518595586022115818090319223766306604789689125870167407478835953059237533028826970237535413723437271112200912055096361765887272908145500155978480149529660061393963607581802460070702338436384663893050570881387140033334273488203767547290687417849031094209432593848008216724998845172757917503976155511240973545008650013017737087877342484783322231132336699135788738209313300293031419146893399130826327638867377065253079853625561616104901655491121211518441591940685728468479613025148527327564031733070081454038474971617368273141071582020602381476774973836866977565089525970616723416207556245691909823657234131446711902565722679836802861932057956092218054761572728633498919517771310853017060710595839858824684050970920234701158445232512349606535362480284268002798179638614212439986279072817947779832710309420748853021757523268062405369780723499885724906576108913403985606449638873233524794905160731400085779441934426932861137698787580300280610905091590514714390729985194613821992957035842739631213270602113600590084634770487667756809273216863800676574762690693889435436452760789230134488275033780787520313651431403551584011533021413431801889712015702809564931185775486351438848039208425574946361300306372892724897445950885726780434472404531893817047505168435945482713692145765338957694013483182076273371235844558579206209718146476113553358746339601107052462923608406828255002303732569091607091483218104057294046847357890385733058845916665861482031425156725667063395054261926546398363815805749136230639741945655498954625207265202238586573626613211958381362252103937659558810235185519391997913303985353004453306917457180220668889494539600744525709351905931509011539751294814819698207367950666030756302018830618156732003113367048441483950468801082083137862281383689046067030339199716750343877181308502085846554885540043483592773915030822256491619106630151744770806258404515046641804231062647344302657018185609837893143345267090546100432683115468236625535785082477767802185738416814828192307876129106436752274094527138221223649497366990470274732291089189651901784069054967352149169159799382273331480600621445757979215393382037306492608027950782328627885805915774440030054065028319098948185761243543588333816256646079322510211853479730883345362051985124413744694344567357975436614051829734897812302520715289518612921158749258954041868211012286802336861280186374914126633338145068540418696015474441769697820643111007032285877759457151243410967728925881242227902117167811986761046526238561130006814984296850986486648863750079321401731063174910429772396047302601297316943221726452504249230408742756007730503483005206729488386171428661689803295887393853238948018422104184482372884882696581539337353567620210530197967929356548818474970905731359772965488513064443451568538902044026652956489732008069237543468119016623570949124695929454312012208422684448865102710245732527083573885898222985872458399878353940981748315421193167556936647234011347707381390405282730743438042124647999977813741579855465609321427485203160837646057957423527786409849807324490957492680754249094323671298664701180509265203707455961000366194518650421748825223172622811805867301656211267986800090074940560916567569752889470244229852062915524184960060472631167781366217538558741232012201616154283760315883798900046432982223693200870209063952662384308665533995773311840115062077976227038297631736682404054449203650007469778031069316206327468218569582554950401418080800228735677296238351460293970107616291745260185745155972561665541422204046414198776804305955948801636655920450583022150140991896281275449557816921331709804451971822668109552288379645632963075280608422278454077695596189759319936856047225600210366822211806599186003188664844166646166237706859469168261890210820108422456350613517729627014971748725585539819930759359654836149789798141754183875444612145481298877006826247749071759493918653897900730118712717498224984934591361849558105465233894574277928406357577115517464815111860328971134525648786199018156594011432455437935903478243667012042923997718976960190273456508339829067818636687088730290262093333507682989636584479600917461016333648698837339280415930768511528220245440797546698256379557287794355067247273137884248178829011986801262330596471941877455588528223568431727751651102646653906614502810671278301696664560778475979174850461049273386255381919036743699189343734358159670279644778569369658256074979769334505177652244822474336535192264918762333641896534373964669237652840368605759829506420479886897740417568440210600021565361105129315641078925863357099916331343491919897434266690075093863872888708712267633790125966423651708142301995686503190401722647996899727058732008707065312390923797741801937141539088872576806095794657030428292486819766180311690759788618458822325468202949151928743541222680819174172320840198274875595642008540653741691064537556808134214577249835821100088081834693179970709437726474508477546873458300128500126833563510291800768475842503676149726553004617232310656035405280147730550734786362451470784043058344017587718097100072962796164185146668870581598768200852502799909599973829415814752504347559188278003698565288341996810958233800479924751065877378185806004367470073685690811889325944488196885919927739968958030597676599885640314600009200219349605775804318605972702215766311119042800183705725362076910598713475192540022432643968297807470462097003161617093025535566669945376726764966506312819878285537965648984333226726658686231731874756909305229936254822000663942135409678650732198338413922083240890968073211376065704046371952613808618979164282348153134363666559385532669948749029539671902445363517341331885128096154347419935459818703131567034022610903828987408734740490935614688669137927028769363375561272385739357205337939224386994880893861173049003063642224675456105664270942511839828365595934597604438895971598955665391095052019312411925566648563540808232050844297869511911086866124494739084513014424165157479002786424248403009522947585534149172477260160240105997584489866949038759780841307364509300150376079753390159351184550622675471469864435980897655585049068844445556052229533296877897278862425391186204838431545511813988749831021107991842308341204478309960324102923822505188093863893458592769750112766735972807487791806702548700406053172072880566528564551318312842236437870128412563474029522617007392545458263407654553525994799788824782572125600863259390324702598455894344827907087467660045741449974844494174824396116477275450916026509350803100239694254374811305468746019275535454142157467507701911631149275541420546540579603644237753631375224002139737035997752924411685082443051561380402267703141979335039293423371252594544918892896122538105250270631044439340613539670713029017357959321942392802831048481950871301918628083638411290800604830632478227749313759824796166083873520905270420392126542892068044361202337006857368935217471664366143944538528937752963996717914328259960734638938553082083279046981710584110578600267522008827677445665751218642550018119988448668035624713034399095833937502470467742006268952363888184603402361400945245092522401979629839833764021093002512497288456982080113356513511239727019797894803611759177393864501485964684022639419222843479470624830233000018141838320264967095756347499229465962525385824737358552848414194407879474552252688336703217136012982957069069830493900088866763730702318680244559791423499533742941473045612794394320756227355910014826243953309987918948303179732347568934221002227095049992265314146409269075222269964426743789034343448613719647390461663496652100830764862227123311222249447291398504303265104487978132034054442279194823115979114238157877598322753977898545714693047018296935548013932644243298993702113389834570809440557861135024741132739736278044264522581046598013827072615878566470005226505672332222672553580050580881210585022260979025868769085781921379017914242776162357300924370190761652540625312507595920661853146726429497302918803272175579067239720333868448781639941173420910399968096993962434788580286637323785464363762888421476607887404345973137622297764173084551240921251121567463922322184038924171583775692895465669080343776159428042308776818690301414213162400475103508371472316677147429123488536910946058700472405975205113920174841141719438460497327714803078571448201583751889055246841161830782638228781309625318298336077220303447835893701183034308757460258311425411561614084328827424799252532948723079538391744961104758191197186672847520280492063981849063848360119207010849628209372467322765985259321605526144379896546861181194571011670214824152674059555092850801908302702302224715725168254991890945444166378999846005151649671653822722305509599638655208699504971172213468649071208065692458558402074507526880708439227081314669400744061807483563010145978706224045293633746020006820942283513698904484770523901719091811617007991528147498389986626629975207327972482608092917798718718443426197594589090792866430783484177137762230721305737468540546723975411101331405663737369563905819023367860373276394007501112558514085397948006553431483257792831734126772737464597911463254954991175607789794906230575742850754416689918656682106432561318464020496695754898049070469477536829255054154665739878092459872512670031095634881252311413444774682817374330590217153008587367559810358417500740062548971465932198278928092652939870272507044087691031002001335020218978616903831535428627818068134478885455736191131474492802386996088102090958795559212051272838068831397153991460285408405029156447236900151793008499043146888803187568237718081392106607405649757077007741038306292877278797860804541013319795783178871574673932744348623848164569278914563195911146571547859855213854936330869736857171510072589650438407314358462300819532965818892556697032777556230829302420510452835834494063226857925977118199513694318186189309437414675987987508361938002476285855379839123054582835033855268596457498047264390047740627572798966592382147931587267251090573374433682633853898283590476784563198089289477858369808757786388628622117967885391087899614898805224593225478022642682297531246540855342139992726046948238138489584813831732769090570330952876135326417654705559981747821057059449515574838862559539564615343093597060654994179451993261853129538814330140437079447204824843120712931939407046481545076972567439700120781079842277330791071063872343977252854256417309353191112384908469405546488075174454147257433097573775164141320038235088647046716123611655851615192776154271083512704836052862938390099370643915145626030199750638043175871535211577992451269183080287439683707164130800112427441891534002434889597861644324811003894799513616544903830332879543875495726295868367018692725549601236267919580727778832328488685593623675113301127608191465195295940165162731513754467614505356603376697444783874425236371770329699138623047612434177066852759748094884518282146071746718131664668230255500771176314639822334184679416865559659901385990893934931166437656095583879718736638056893210593427997385590121398164557199871167793330630797535211513697462632376624641157313919157587131120953715559552486121164135530974529387082561933154808303825166319168089085970279313205501781809271939889788532012699004580446859561608280908321951698852871413207719345850941277348042386842512065983442378039270804436556454200328691737572230909790585150911632262180125961487213257803997355451778287632785084314193947205661360830968861551858414964438318104186260159673193971005340406300511000216590639552652757267450476006986236524432675129248608689074553817042775198856195512822080552527315377298658917979001412994368432775006938026705399339580995234487972580816412221630937867504558219059301703575075230828673364692017870524703065661568301196441815247550869467085028914215281883830682932153057818759747878034756052788199255501839343099560531822906556200737752585499969602665161134704607499027117069298976699912501340502208764006771971421435420149357780629270601216246171184653145206581642499498589124535369869688957088698913818306087252137467900198191161668350535878158243106153688352861572377439706078068395947074754222280079290864686921536821968006754519732494601653948626882759379547952834192257125190629486049070681437272457961490917869874138784028879626130741695650666923471870799217363694062105072792099163719124163944650266770496118802627394402947426031499730608537842888017586825776727654667817268414422924013845881073013403459120035792280402623385670740924075314344516948873378015931491645179084699327751584651026469218823842733761568264412678561289052833326281782204500412806851100864386018282196349915730506395252586031272926554551131474106413544016471189425677076328260859838793250623873229239032903341532993482805433121733807925187502198871366081293114530767130117255572197183660613250683070983198529104649531535040899273721686025718003476434758232548813637344789180286219237053738325786532417214729869990636854156295913824606197303161223069111438863871498830266773219159528819422830871061051314993065382736226232706578764034237822988869863805997315618625542259324165759388741898410611845511086046293278356729649143938726773682055595868492748287016887837500029205126408846333727044492591467943299796297318950732081918427068107096984941421057795733609633422446979304317074832390652658727866932551558974941004133699680899333278181187129342109076758585359003833407893009019267888804752638030360925259450625417390216542030331775278772252581948889338357556640519653929601200344714358295304793744448252593086806676565863279318323365120995319320728704640048046086653909484490550817375031550971555432709675622699919278929306742289713158970936890302490223637450562875842394973937929229359661982241843337918060226957694382461194821993823658044597141132064275739600178922224057979715418695268676750016722547170643192135230499098645735759017898953676333881199898506960043762131442843265193665331880230035176681905836656424985755930525158541148386682756063012293347924224595080987642919168409546781232312881539003089009755647364641565409605659536645708780476038378416321052210785048413134621800348286379450944046646167225946745864828870512304536583302940098606488974396093817550014472871241134530768450563648507597512762865229516773835770911171540655295850940672251961502870247985159797856645514380799419946330793499523953870300172988106398896841142244883795405957550080971326299458136387387760532723034663524890118225742821873454533768807716573753789769532619027059972488815645449884728458112589662997432616564272708631387217906809947498131896396021981928044248072446796806388076858406982951375117028024285251321147894777080352875196530176831349894137696553479678206593525373080595774610686673258651670374555623159797300373974199001006318359669757127758000766731930289526579391226930612433819116401903320147738011695516718996494172474570528525301054854179580181153330867958246104220388084469934335546257348225797323024658224742642933370105831006732654809239540737108992569959838827077595995786128160017245166465953808688272362102452375321368550795383567061272968541116098047425240139207103852522580128007010313849906083412173677717274044089855755698269578746865770865112016451906856545844548542777176698512366455382803700688708733601066514776647880095717282351344350354456472170393361332132979285212065194098328168244488520717873847793755510332098746866378659687754770377335890274816757723925679425621217107375810545712097895327121141197493255826187366662847216730207737028953386441047712158806278857647183479748795589069615857838382764260102057729737338769855009360320662306209370974531647601911187823043783153203391603870180287325166184246528038905731085776973124197848544286957893848452411266236142732993015007471535470215149202493518557664766217474535597496060867905948217571583293123552960139782965260530148379430901760208176669741106660755417151039518330444848268700717718689367577199322588770642729929574525795212148722422324060929936164566886609479232708650319344002133531718325805089762316807608658895654895323137394615566923690256327076276398547596431803931909434037329660632024519006130794416902287008584307454944478258335845177139263888304734867616960812724007147742962510087051124936723580837164002344597261977469043969490643093949444686562858211325095049441541711852346192504498086959108767522633334106860184510461552793169478791634828664234283208613349026101387960709464768489202251303298579059651932100642361140616121344708217327087303091226121315761940451348881196772100445601032212161193496682153815488331865497734251419818387582854442414926379654397512750187433702829965974828829390216691167727572479107004092382296321802335677265862657421920641520517427761114951456644464006893503556080321300103477343150425017212644049298151988441979610042230155402807551870230323614925682710908928326922046272639744589160223686803265994069720278622631172379207307799229237961771964237541477213851603989223124040692209278876956868781957744967529402067627216698942822759991036048458277248839773156557657266753848266246565956072296225155870537629914703818806169725895413117131429938530304947929269421120504434498736182898652149402434939351356001203625754472221104737031958150947077426151106579396365691842696799332803525731203587883996435576458355647219116374524596592055964532367290488301434950359470132548332036129448421996635404835742799918544887906241569689598965573458649837918590932950607319181447030844248442049652689027418684466408293040729024617962385071202027985631605036238059806375838073049452112232992619272746489202721776527251283831631947178677623069502505574861385707802829691827222106950807342389517700183027281326684900450966896907745450104123965507212537168515945608153526578258342205403550080094555097462590508573640316039941732408171625194537615081758363583299144640784602470940786024100153896662151008438415556496341807805504097864367621962433859145624991349321165570472270584314661653561450532054574911604129591603647331480254853681031406402974326727056247637111941776119606143168513835916923092085920695703336296777753408109828047573193123541896074811838260282656562632006107233229482566594556513831170038670849258432770689552325306881938905338194490783493371119547155639573722279299815387753779286680270351834137187804429998403217994486862084978018972757242685332562214057641330621345969004201928259762245221256352351798601989359483384590535626950393201542675712705458729942739664836404442203968951058257925853483202009036558235850529419404819287173337425401073064227702142140161319390980831964165980731555287822071672332258414196484395185143479192050921288177001675929801143829344902446822808337387545054351048222931187191313424316313901755413435533574282121835966307789114493683055612925753346560227037146213778206161390019935826826582406675009587085898452483074334600772989604611156424749393294415261737242325252549628515311751586611090571704433845927696044876048676856102114436566494239221917764992086880451310330441864952615425206369867546563154411336686814718168158649239555862050402368641231208194366751763766954927827573884936597198726640611496091487098224946310837066374514515593326268592498821092783989988505157779570035629386588357446628782082644661457791258299453782159446449887808827359335105481130738295725010506091558487348572600999151664222175913648026238867921775110516467942984515080643819095906113631324161129914579436135446103478566490426279743125910058585367571124779482288741751059467661712832751290717156343992032055629669237086674829004768870920473774168758168550336309770248936356882046907952488388278063627845361169678433035275101155894105748070031897743263005975383271607592216685316809352392471318950011089269613059016250106805072902097304662481399266828782925270732440596545507142757246868243526066995456343204466613158724078842874603031043749444797926488040650025686083082856063345263783582078743773597733036087486121220881131667248825300920239917873765260630465714121132727176626432855722188217562916342947066753685294321959384468913197642330429665130370289721502950249870861165029534377451127723940563130807366762462768085766532542495684636593550727500338074883142247038519893852144140004925535250230171237747017402346475241891446344942756866018423421483472091657507275410990491877384204106366513644539469837684957746058768254917137042205957397915217548878001130739659055193779044128640527241745479884784725776659026683521656871120458440437968623500991000256059067562268647676068877771033215734861921232553430224632498319071111927900098162743352423675639770471329395376290753768594150354148061597091447647277482654354984375429277573573739891643641884369398975316003564825431787031653364322120271546887806605867831323282459830433483440537288952188673882274863856642782226700377813918201953528807371547519451894833593432920442504894355353860964663817024563083994842419117336789410343093480611009956706407421897929464710994470144545795369021780192417572595888018351608347770746613408887846352835995918156274712303435109767960677280298293174706307188323158925261504871100831010615661551275097365313341725422860955765793552305890144311299489068010550582921213691086472310013131792468700956564053637515265200862043385765916696621315728141503554635529067265148966320444241758248543840540910811216234897391680391508464224815901108997928345591149064533719933898322345013814661575990960980415127535700737635753124579955150057779738651126114244636607022306276667413306423214605924921093289915903445715049391877018993336319687184915308138462346412205311462621938428806422478655744426132297088419528873268330189647779919849604300933778597868648682107015833975081182683120799676808438462606129646344235241511398760680037759358020956661436901959682178711585208537831657391053601337614917440542759523653679511038916634994415159794785410220962455329601097553441295022673202825943062436358067980148737951918202904753999776250207775938813982436458033790935427765133919528518707542907424851626351548789033959511974905732309939370358295604378574162144063353817367898679073657923020619507763605148620496465207568946308804079014642006817784869498727903542303583571378978352986490401884339748756291091323742553006475584243592245975116092625786305955123257898271430926668811193771985020207911534911373839563517383503158234913625842691357194444588537153646863300187088178799301170537371888585011724810201208109548728703243323622404265571614926026020086400368103639769766025246689452521937035700516461969376003897899731630835000610375717379703415288804746013721694414472039310272051108877870536535854040922880265711679889355982786735047771181091748143675342769159992321598075857830021651855019195921817247144672802748789132073421533040938106148476745782698976286759377865990383513455865677623436698216018006513525736041763020398466267596700103080954356152731193065048626853616426750892307531772866363560581371195625383521508982738095181737965462981258474823856157516265476411972309884426260615989611579914650331197522234915602055961887916231505387022437895986502817751321372507655273813417191760454003592145662238184429027546408651090930094763588736961972156112262848141306384399317596516446042759256862630016631938067138487767110313408040430253245714888129215005997295362812268776867587538950964319531956333691379628289496907148089216320234131505406020513063081724573402604233558156291195057965503797286105169707790709300256079481088408548778760713129750135709126523236926029455739601783477470495397789938849341540076020198118246922283105290460669897181597252020191469866956471549941709407560089383257726115065514506263128342248703002884925461095971629060311194409038641509942148115273391991171910427787673050910173120852812729713247518685579299255474756856228429502990692273156981023401956105660216235476380595059635271197623339637613897302236548778811684630605004715032685155716399222955407367150396646826164653204370889978747110096755080423309050483561070036771704284029806919651056419257664655441682319142529626303576387264357428120581284833918148426541304867987684228377437685696141238552108816175616058355349290144702197602828294715451012353345858002546539752194908804993038205268310345110130729231982294046578693781607556635611158581762625906873058511752780463539199526145093344542390495417759351517582234813804718961313398844198819558682672014207535422661282622862776904304510388379317584246515117936489738208708126694074995801836920948402318079179493042073216050104049786218781557143958610578169713815737972847598736226770909345644798149914494024602280849645285073081243752267827021308967227318882180478060648797673528687285929705654823110385142808872792358147982515665516347507259940679004641671825471242592886597892168542647393927999584903344840019490009159421771517717574734550425981015981072666256929175036171258052467296919432745630039979974501830996929006586046906657149894124024685714269195559208973345979486988226939666080564712991124551716414979984362453152262639771161165378351128001722396418169354717220658461512102949748093383656111827398465838646617137308022879868951338919577705318575426307011108076840805720034210590752754021635098497994656363768828046450984843521617345644431446585563241225194616454686777546213794580463166042725737261123684088391418092675010048104868917315014788854974664347242950590242489623944135324568582895331668590731622371112234648371652439326435176066045479986601109487867571219235859493948302622035424389380946149078344529640025697046395537870331262954650217453818739163577523075626425149800599809977639041770372995722920362259109569211369905315177630327434434503620640605653301819563280317456204165501566919603347762414791288396779127784997373916569043024597703301473290631184315713609747656325707913237815897579115936861536363795926515786716441822378150405055196759254029054098566016111143902199564349661327423097093161555571551528487587340533099525093427129835962759466649235443273508659087846276900228635072923881012307601242867449381926222566484875766531242766567015563350151393557362375362546440262460736748696818318182950682495652283010640067038555099979819984262761111139053197514877514234198659541369349606918877188245460209120084009267133169298310058770266779615892222017799756715125191005850631674493068551063516319378358934472910106894925351094013899040442937306188021545476718892209483027542168939801360601372135712537462067332694839507770824718172344389910349797636827386888353195087550628368593999475725284768735777691972707258472589697016947355666485076444247899648085845883942864525551107825512818264616325060242618122137518659601022595872035543946600840979795816611497323720370498613439887514464255816929491164857016126106149851106647033600864627618215153662493001823481278411390738118087150714549222203432210088185197975265869040601537926312564924185282992182890462526495912372130971334254606346522102964341607346779036098388977578856276728668247274949125971379924926881114233138830995765950743373403655487137858527259189668408732673927366251390767820946470647924282588446109330658030574255674627288624198836942405438782386599846285680256402239925289418273302984096351385811309821742460106963278284876949418456404253599496608458221447873023235378958465240666492967453477330041175011132334040475724495401833074627134635531279244264661644316694096343914202087413398994269664965676010135875486139339383816516561257114623351466614476457760558016068362817908235282165957493821105096434129642235956889771180211046378170634912406548406582628889856466172421384847665211533913665033947342968985417146071751511074381087798662449629923809344001023672658773741552121150851750131644813403319352964340079902895100547422135461938974765998641908341730359251861212333621990644043220259299051436472026485880423934425027721905221575368918344560896353345994677130020933327314780178781905909725903516030037338551316329008941598176170801083128283856945829809842421017849166100468497208509631163920470950191128170892362698343679207891062268845625309745882556244580872346832334196732816074444464794724877940453090934317684099508255246720271028050555795352451853609496669781710215206333847578129594789460787939098319508848579733220855908841113810496454324623639016078687897240182441050241057595030206621758803873067626687556751029243533771666502628313695856796673484661758690324897773143453343554673862808475642289878235186189709315617488502228432259861835186360612799910910286182314691354461749262141544796438561288205598030350275393909173487843059616778019837409746113370691544042825080533512959598632801008032327008087873864301674442016659733151172323565441421478486499417474444962600322844416772171331500844270686948049162035003308147515534655888457932855666827705720294426797910296131054994138055142508306763361983163348758148054409602387318067841485336772533651385804769791672615668667024800163533516348992117727985432069411864531027974234576726735928100647598838328726922317817843679040534191795897816806735038626919071756707694101821907542492556612309933114931892533734156564888343901665100165719233576418516367105831352832270571167924149998076298080035029598014532787613357925207505463134127330818405438683530982945560709102427922199423078502565542291988883161536407902212396595617951917722029657648533919071899270502758959079136835818957874990883529772141713332511682298604752515721393991293599145768254628444697019290635760264280103203190779529110256275502270394939286616884297092286331441197834573090663981523265280093842444374519419386112214126451535699559169689344145780654258005917785069557170670907207707894234191885486715913680124262853006268315956435483967213372198866673022449624768602676810250410471979688803224498254632344092156608671810357105956383145966797972506535654525457271891543083023464254429617605752734451993485181830041471411008687475749585178517949634147776206977298938731118409001663819170525602614406883420732218655942504809035363243563972941968652963261641521521050384364716117561949067539799146915056214959770484814166256360064710928404025357549108818891839510217575116868801579012780681444986532492545321238007876642522668626260839596816295047021385010779574456735563374606757679472806569032854057504018519114896911270107648311254604012259329874865537840469946029317241491734581941670660092814234674275511288361986051016471126449603580795740356920133636012854998959560727481101654238978255099778063282254115417849949961357991857823854945819609972068711820499907022578878567062207026683469307149137916457870460884317130124640920516794569212965367982992756656743584488830911242058110818335805419074715806718062841038541410861228676515865140385052039273591317603372577510925135445272814605557023162921026245118434249786082777858967259140699281377784954750557336316639399182957108357433606546195669763482707229490638910225776612168725721482581929787134662626737840733690573656027174542791353070207403976297995517570258374437617564659139422373002084524224194016034027606553248234589372159283607524646592210395736310723271728693474656993320795507661579758780149121359832903383927210341927058769835194992051987232768596271476764179158306814210491045876342877062267772148620738652063649633747454243543238522820210011951823480108523106081138346589878724068314493961246361530476318120787798478617558416776893302736864352927220971398744479354090948394731911473633411053331362947940376558915869991255828109607067465857611360325973487985179922952900357199457016090583174355066936450042598819855703351144550459298385428098039225218808543678455238595171614092510668730255557985456963071282566357600281253661960835913205689591454220852721515296135301341965268216662429589134652106928643245309917431085384645133222831275010879844635111531810915276460714388897397467048517443213159541372759222363635389746516128009213362278960499820282474692477266816627055311041300067081439402552991163515862741110254401996403764279990978898829412567424174689301918433931777279104615952018297003160000772913594431916250544999537442209295291333560217648712257075116469406416945358603257594724158823423495367191244178254782171356273327759277822230251786583264019691362065395252015225009971058154481912919475414458056826757665555266170089020081491874935456378215838643559123778172027581239434141415792351772403105095391423800061263439086666166178479979855490651093751641827328091865696058254753684729244925812248006347591643277214132200405003169561984571667152585358758970508367342099141337849135213686550551562270917817090743787868686459009383708218713242412646087615196743988195884865004478671026255181187359178098063210093337921761999836461788437578091750862897636711788198221246242293907117019946595974379686163228956749718456871454955870164776311603750108096182682748278794082445690237409673674881233229648773488275851394398423010715758956475423961860837895320443575639122511324610497820078369824778961463018347568048778294132883343698127703456638121784132926140565635903897579037542074088709709158319485570714388517322288838242539771851429396019750918286877356172045747337304913554737399812135173837758650540188322635672999752011655032142315022775346356289482415512164933806747599656926033630276962562970870213384457010476992185513378085260603669187589772880827716185328750161416258550519438711437269301356592699438366199828220989202281930595918270216854882174314306102360141328992232481718556791681449415923732799796336235704358166178406672098423603087586476254507923796319679482261439202461443169993858499864935657260833559740454301542437137067546734671773701273670810654778990406553950221854548778996411235292003161432608851516152689136503417748542661385863816159032210689105962265447465665703173384226418124511320329236093090975439789981311504573199902512077719443730857048476330270166197740927367859180355861433668867703616862857165993172525622242111037089071091632723177151952751410463591595747059858810590157869642683583466934539913304850326119055310062856056219425556751415314028638366649501813690523143775890656825351781012146391474535824223253838305241101540387094413971123778309104661908658552432076709870412925952892595305654833732806501742822638998669167585074952817064417943957706321926613259098837224977721320406775687399478616376132748211752182136679690184575488036224347244541874687177619105967300907248145519660741574785050562412265331678957543397642610554393532329466019905617594472890772477684420223671624580158199274354636191925381419530173277055541855833895728587006768036829492632127404011672949067993253051592914272536883533284243081034430156793646332800470321090649000702281147924429102997860228877674207107423937331184337831798121355525524750573274294144410429778104399045198041215912215770952527031116081723772931290539269230079097785796511410255875961639320681748754451835338037518893564019834590989463943207154875281650277427589430591848842462248691730103816271679450666081298645771352221953657719316744599190511753438687049509165572650130549313662741948512436366649108707158789412631482543665739938799789191344547864380178891924872373243923389610845557376279939024560539203446823339584473667781202543449153067893510618750365873601129748645916005668053234667145429990360442325904587900456011248484149922140979510594757286379715180995352374359010011355071519926835499885509062401199952532354025775029814441876500537056898927653598268151265230010697117522552714320107617118319178143308197271974108281270156446206960216034513913408970351744782238205073133543132946989016454102574824685132087087940800284581548150674099061288015739212237371806540384271873696418064597266688262795293828428212273995927303612340314157833637727612444534721717273569918963415085534742159686687322752275051755825869500259608511766995743996531961368042299860996890524702602861061491443406549366553649478269354657098158535275845657497220353330228626412569856683082396207939676890300987105482766621031563413089405113413992688219983184679014636213209375974180836607294107212877544268144219242557979970096347082548388455401188673036350884726798256207600846629255567859111251707309948343679750347877540100744521840636085803727074470047518867603617838201874491742180086237947405547743997163604554745958268427670294599413395663735122860111504389289325069087700877977485839590788238324568135588367961770363131492955439369262317015240781244789641441010293231824490761397340280220714858856756473083850202342429386566263035976833454270376463104704220419437954332150833648316207673627226301314597114059822278652599519974611231940884784076022148669944478236582254460374569755770205495603974373603045262208386411178785276608445801508883331857913162333039911166862766958243139221251600629649125029988183738585375277968872444535381468405462846939032176983588999136802059289161163822956958810865113384161587831069208697497053741848751811735067804987836725801856707113790425318652081449237612965048541127893153902451623298406636643386842859664741752729590018550812829560308176381570524581192221093839243315315563348225748427861899350888567432801847805321763791123252693981775040660656495074709813402150909115895034550685847363983036624313122373293889981581116947753535865667038323725311274104154735693160504465536983696247479780900797488476236473475703553215207901963097289635724022013802979421646933853891016312862763222109672230021430888912572479246225357955410772839508264069964558457863557373885121340059828683360416906995002498970758870213037073121860955966129633110758589495600316990875340881623590504965133569419818105236762992643416256252917089517382946525600945204914890211767260390735453471318902352058898225752583606186722287563785550152895092888473999497602521642843026021257081923680967642696110150116321846910973971278703434028847608909199468016302192483202064225945917513437144130788515453733986035595822844597137161154514964391555716697902584167244315546651436954523192860018599781571554428415931083380756351600949010898930796747843996277302837211458625775428736469825405652551389702552074912055749379568889827356934222349089515583132704576007910234552158077519946100613882100411752833590942926141459145369186592915988822188492299521554013336941505518181946067018801520048873403745764892047554702494376132672337427730163115554879210817021949827724954261247942037676547309728263817314985212237408504670938474568886295723950307223900124845790144301543855974060684310854821420082684850697984485329140036527366117325483526239490917169560692250382898439723419087173983397569354242694494022640338962532361846248440099464319283780379243412357351546708568223056484430356735179757042957853723357226466237067862404254640467089678274859996314972601007255040115803179120705190441684994507647545766159605387403050923754699488108479474676883346439153825500593395643360094018027707444000050956195799075607091727708506328095770674296674254491207582437469374250245352758452434700730665547837543900613034044488207528134733148819272938846108324042105098305883085555194784031260132461905624405140831577234737773134439254724474317468390603799809717069588376910266611131625537116751759229073872038510571672067132210912259664317250809730930332008513227178726362804912909452329415782910391449654149140221114036067557654760826218723106714038438368509282278712588767201861745677661636170455802184769876617810303619058983672320994406314532967989034310292546429768761207698804168630335176729567363325509225131215531857578466549737001593545171174554963606213441681846616754965648632821317643025663897492738052065601040716287644879843614005263850620386008658132241278082347409189421429532483416946593061248488383091306182935299450830316375847427343316045036405186854163242536964189234420587831756993272406748824351216523165500816353727648044952889104450556259625230820371996214936503288256636317130483508983390822296122394395245010524298970530845656635932077435598367968205153836227810200202001082377267731763283041743334467066078888428581451020412569159683166631812441527135170611317881724457579779166534602506654052670485462613339178147823478859151737332281771245933220325120835013382340767359732847030240310889053076454379165160353578317815831689999202679537399475668745869267038410794377694905769598566362292423342359474298356241793634597152230433942628216785756039998038799653576615563170932134884318811409597567915301415060847207964013557344127245174844685636470213268119709597577008433318182869179848317523161407884524592966284532135464423740499862740935441510040851130537420591558192464019286662730877076152153527000367086213484312066405790590493828834714452012955499900987806875359220938803737576152932554134378485546758038317401738484554783634307772056539708546431604414463620406061656740725925739482659053646928823833065805271075027665548082877974088965360823939548135178731387816927636899518959524023555039806007767045585113482521760670586628336580469801468246140530253848930833917719102969679051733374310881259610283312259341365165986989900290555510213246253877672534254188991232831900213581017238788974185563337318911204614761847013361712769886079232261239989209995162986324798244577184606057168690447946737950442482127662627720776730639779759039565131006190691795271141567495868267930288064148603105552983290818693238257316557032973498485641977153252882287285796921897270342386296300551225296392593159706196731506440122665767346163926457032987615665534079426936490085011578648354143981546706232157361054222292384324284126666844961922719624756663855473160820447531293196835747549200216590700837736983101374364129175307440585382494080520866418850143533543486973518097674427400729140566158519215336405896404860381430163092884732373320485942924588535974236387653026687669550139862731896516379590301447228826516131942028592496598753169112500568952440582738489214687813679894613582365933433670360572785597705196633625595604273727017505686035481669876127668225878031723685324359332750963000771801029261886973949686043615657374837758618252547576053081929449995135188897385922663659426445699135153344038611292516005370073256769056253050321145602831351630534095324283170304471603067568317576595496396258577866671214939978790642430190278598884838333000629273438765708073138420064432175597207895236615274251704720981142005954676684909204021391121452884359584835018518146455220102407591332385544330553193280308520250082777965446412988654863977140198828370704601841768035230279930394562958996624799924236112197419589858913943888691420918778394957196312420365827164611741256624363998578730994726484333441773408409908695922922271403255370151066723271164424697009938269100665397157159707114981452412504716019047042417264368938656449840491959155642529031300335854297209217736793008924718138311749842225225046401890496928361319745970657880566736494018999372479582405816238459752759885740138327458978031070986883933151918054432730152627851358811672662588447581695284980857583735048515694051398588092172290723071212258002810556575593930686053024439335901991885894804750355746445314586231025774440147917635046678159521510344173517082255042893101048646949022388280504533148344208537482994296575429263187068320659677284398403178806093249249406318277150849400655757056897729142303806000151049983389555067015324548588606136097673427801990639319724850945570247610117239310666689244782656713535701193525400086814601193109441012636065685437186173422780550324246249022112675959396583586882373929745730016181798775136225322721108993060459139089356271756351817646299721382421868039936115980542518377243435118815988351976768161096487874056136254439041170624735675059995855654430146373812128228898961337620092099292142740283645747486455878408923216083282728987501197190479594679417689989249329381613371308866680139450582695181837488109676895912619404608366273657126253237866017696795568781944768375104699946505387991036277091533661247045400019485022251455615631765341027810103739112806971992996250665276796255691251442799667446772393065043282152357768959283103821808668730677306843450010070709872375748315853085884348212607384425506977992243640241413440052005826956880775353135282572115574045202692945144828173263625466506806122828958516142569053005251979063033125138468244850313935218857139172328580973581206964698369041502077067629263250571010595342856008420338590362388832733545547031521618843589636582932980064439353205635093218051084957753675353637206325804334710123867595853391236513364604863283528212365021859659363692228527994522829077308678214408877058789593414438324502889456583878073642055282390085595974985280979667709183541295868564329809571921675573654008547281471344066316888355148645098505123859065582485461800775403987408931248968484724431955551340961121326321815415782249554576424192460851728525783913765407152470217945534479658353184087840175823627641910329554829211232673024845754627083148199712374317438213607846786195626784912315422270197860909799654040270846716117238321887091419995213503194557129978910795871685161651382568090404038622959650959557340882119315240389038682722586091664059712205410408060711960535928804206260665905346295809002295644988306865946018355096556066408494244685467004040877821365913792345079917008985717526296240063828302193793568101529528398892305944777190986289584239962509210241957436871119382771169285918039045852101590813220104630707699114390701792990324807229749958024062422773233243739151317765449781553432778043938624652847010281828547925706472666786712284925503075036501842394119851696900742118256672908362439504252168722528235783823435471989839906925534214426109954597025008287033218661868088548746770459201254440683480978589495163286334872576718449426561702324760519907984010796469079210863959267781785905996386852516788937049685161128808083629582503014098214489848538834763865358244407890058706507785978788383285893770865998008142415459322893785719745133621470483011538747388117465867805680397855592152844358840946613771064886479122194820901975726237338590313469179510168312205242749356725385949741995062875820893798697539148635453282542478967820204028787397616953471473722725989268211169411010124917612790455160680507302543625403871687266996988074595583208594461172872215707444791249120741249092603909635133534973312366698572145211113479700016323203054669021031373515692985544274627763507600970907374767841087058483872087965732577929740280643147592214156826701661835395772579840338946813969566989275803026144695088270690795049083820903713136886084792651232950119505344452959156523290917315861932671051058196007294493834338133797156495426255156047280803277315721332928324003061712632931900152507536045894986656105726948350713300229313025379633530364983700071500859431241436284586056348823297764696151490298560572937962769148802065291487275789831333101107266394459324850627948744834965875002266273581140561444735883455150144275427410970239141478331518488877411352600381282243963127312924726432858921038907813400634878115904811289945927965437954602295425299463321010994765774391572315861626154185045440963792659860274488527589623219759021240412436897852374277077377012813566460926122551061331618787042251988831815271874485671905572689576029251989663509995747807603772350336363511219380312099036436334770715046921154197668356971599346597972180096661655475395537525001711878140559873796491836208138417344625783546689683572964565932168113103786885720452598874201910549675550719435593554269169570856547971141017730781438386824912753422459897782192867333503195413612619827944868817329113099825736169939733090641047093826345922268420381520562110240628548376652316610885043648372279370613123840799560511836418047025411032161280085935046755695569682413785631001573090042239724462396851571603668083413505024604284922077514128678612254713389126787242007778519300228028500472612341831818667115366388304229966324613891341976689716426882079881220827723376191575365113639304681176803163429543990182348902141245449952249954478293314953907830854822452423619248199214754707822929032533048053415252676943829390250144895047203044204500298338262545432632009418463950676527297549724761364621099244471106582777545812677248912305143093212943217389422839303759164845394558013151978438132500840360281820464765422830472597181290307772146968304538515351798353762363673834784166946094604951805366882711659449373111193658672340767290208225178632524284996893935760675642774748131797554578554812062209575489874639557446203850089618858878188931732907882107619758740693627566586557316877574456392758930467864466887262977225949884194631765324404427338164643380215938083376192900746246020169205897734501639995592069845365648376698609267870412349006681931181660754684979861018469159119018093534766763678976088451478702815067394069252879497023336151029256084181966796142140303048453295499695498355278393419014185478005369989539327047965058439286340387564027853020905792794299915124377450660843392545632364949103715077568708673834040152476546861352797062150054861463698336829829746111743380235340865163931313551653848550474795033328073397266742613093875829920633354179424312383954889279822284037277313501921234112179475340254827017776224597782331705283006794368536005790896863458871874192530124547948843007942674659200869218225001090238461437448961431335928602598050113917967699760813484469298400651149762700936815133584581096732806776070729090197794651029145453001504955625768791330139285092192370877533716539690163045206474977959862891100758605442549495119894368824330733061273218507376309522006237200143556761652787768244098603604118890654802392780936412164386759709700389981446973205657738166388500587498520101602298095807142592025964805776423461563580538864069662928816667919433044236095425484851935265522144627847253192168127218138873260223818630114021804876583378469869747610296055232753364694927703802663915288788613832432225953463337653221746777230281613550249683260505633671698314669255906053049341082859401267036292624253649789363879416354854555191761735369567152478635411567815243324439973668436381470684101414100277151317985439535040022833582347640506505825196686600259678131304906282678139879657995215219106315091234094078380305553401769553658421584692014868003087912427147950669746265545053485003682017761485434068132732526141562246460045733146775396853252092569164518155805992565638950593960266545470629539309703482102204955663634816732114054116014527974900733602762352561681618569562915838926893362177619284887986740006898164995964138058052521451261605190482227738126299468167020595023140725876939536770377446679230713734289611006118898897795106525494165376437009096112416885976935973672134628122914918894325304679000073210098994226084682420223476643894554527710579944725709723427736704641772913898851529233275156289064121125139966288989155105843947907157554856270336129255238696990578239600258421636261402203999506834700410757808881512028444172497181909558271279893108198807982289755991397373272022635852740538205792608133029842402073249483388433210361284053538852012657666381327281294870389180559211813862858301880581678984821116936115279768764002174315198333227950816064248225447498342584447362246592197711426774828881445560442253589507779649223442550742033389061843440880208496470855668867458999324825617184788694936254829070545356961579434397027114954801148774969815533510958645607670649215285124894205578194919829686824235148671350982343570251177674942065921461953936868444173758746658295214089600672448670381632012058803413325443319792496065847755843800673795246275257257346107503483373520678098037448979177540774176429269038416532987711905595895654998335337026371181552471523027470345549516018578121235004695643805417001679698241676873664001154016249224524281262697171623833866591749543946621981881029804475450350201478039060449294444474296425501303094588683599396469795862952747014911535191321746386327577457945250930889930075606316546498764468403694760297243213047623512805616430127354534327871186124931529505727538096911766090144258590684738226312366656583289905175841748070378822600150795242387806499342320487212127578648206176548084763242368197313766649774360981640918387759016389574804567419345853970250141985549855086018728537713408649391892103691260252613881052019402370051281347832191251808125540920506339391732207862868854689048877389579759654845653594481073761503518984046483175727411203484153679008952784850009363479574548557830729283848053795024630199015006741049694178797224482639737910110492372133907839081355022747940243055337755126038019843266083478396706268480439343374730870766267158244040203639818152655008746367744111781943823368625316769555999028201257415473410536846807905620847300958278202413054664516678802861989788505406560713589353114438696542417593777431526598987497020804212564674872120159331075476444881405280088881544475403320977511945390948308173001363901084529510638620254620453174306384232677930665234852429853364739276866833672287349064439416554555197582668027022535347852762378653778500477216025605622612548605898785386688491353485764433836564987061805029967286960163816967537407149915723410229198542267707637184620736540688341445152837802931296607427904441012971999839353184057458217320060732377910223303022653675796737705976894094182834990939037888019731372791457333720935353057524675029924996062585322182626751697198259569089485297330756797831463485450198986249693708150402575272880291082119745696233249294183200538614744540266899973626648375582351560610698279562822223581585113105992891558350727450993804516250689052488868129351294129446903200232362147371808105926004528090291033338378293854259675562777739067799887808130857362816112723391728216147425033058073506655663035145492290006770572391609586677078966972143068778729563657204769701401378438194686394968802719061112703970386787049075474404677809491099217890764842525564383809903299270986438392189670343983266365818827814933956079729027321996758668835226106699492063381245552702888866287992494591650384358149724359983202564225395915483324150073119839111544990772248092318819904651444319698072254908801327510598032723226503626952131970182843194611088007139856462908156031330697825964655872513527842906621604142748908784431673971982222857161417732997236158975487818471915984054355995528825677341431461213979956568186034505497416607298608334647032194001745303071693197669247362023910029713973442815714173379224841935037189565931342446111695545021340485997942225329376708012280939331923845490885007536503766859245486188040086688717421618121916075881036067821357656783261405625019434544123813659298539859869899666178003595723836698332743117576009179030558093429425716392497516184461752730933138989070823686225062541024973824600105146239570624967098730439533715710002747706879285184488016224682726919163380052499208139931246445988007128910823487645850285159358110668552310892434052083244520283053199034350037362387865627611735516197481987635575197294480074380728897369346607649597142899121482889239246696113500273298831810170324897320424965996331984159210617529815774581077194191463323935710740392588328592238357823185204644057850131681978614054154249251790554781701847394796328334475917085363683257240173436595849710359269658010860983572873013340597168383242099300902373558197446953505818718690817050272215718319544061386979033050402416028987073695765786854206950376545773970544130310255466170002710250628474969202421042719315858118123116420212761654501737685961841915239371114129379109502273000498401038523081301932673475582244391793465018778372162545946530446748796530448051994631587275949219259040254967573039018190377382453417793282902655629425213489768012384570397522347027465862410466229557371442665379600671876455616059303218643959058559791304413000711754481884579209173069037023269855614584177946377521974547715005454447117896274598748102189669728460610403007474810177621761386193357842424875852648150912336970104960233202840248951457697882010246709161498487921548463957614787970065705009727740424990209595757555790681323145201708365769683209971818981420876942800833708850473929914883582366213280439879911590283035362460541820466137062176571081617395553075359517069988223373799046317732983144033845000857106730273406527607677468045062583588265384303452476280873679659282579008032461247700141799080064485132570507023943809428719507763298341272906946014092711379505814618818645342491908145554952589842502929525241526580427911093770489556229308844406200194984187192154941746356057089216512510481077962859231767107480172297116871935214173589925734613907518988424830812990599074301297747385545871862105035918170679280527108242070041201999092064924698430187951089924083865571832932553318396090734026453087138689691203644456951507344327707896039190326748188527533855152410828855918140730227885137745205698805460209818017892227611511877039417360246830566683585451108076077738336631229456657177287064904191629310768315286472645499569524353569070661534532977471588723302387191197400508098054100572500416071444899605600299316894473664028492582856333230014254046897976538293599173785039573772106383111828807344539521086106310123556951200628183410620448627991161937538944574622979382506049001812933893910597858089876508079053474716886372687258704072555883272492211307678080026572008865520645455046923035576817616475944289614755044842323146122388509329248118044478829546234303837300751776173864366973515848703423690275090623371179209647193237653173580208757931394616446238233365888958511797357981820477141755980685947458697093341159255109534856547912303768950586931044695244973322780236759490872830800925398929069899535166941932129596588528285926546870268735347639298055404490427730374740820046740364344045557708588642001831683556069722145481461182272184143260519723394710395173557800419195551725600213494975330153325594192932253716322653193230489574351322078980070300787299513071614898279384298226896300965961184162889643255502481529530048126134112681277524807440769086558021595203232447738771644682674295989427375723923128008210182230588706304346902707148380397931295460531640595860763152797739324866554209531333588192831402345636981318248314605738586155287644489922990800511710008719725637422519589862295429070108014311304022425424685910387967814369311889601703227707593360982428765173378784928253029130220770411339649703496489751876218333234156443144442165074658233906923849045607720242896084574768235743191474727027628721015177819536336990174497374708413710378783899272212886091983928204993459851335268935171495882030064764342751870479248984183460358098784875657840573910347147291863366595711406608973822022059361191142731342287583515435698010897417760105708853663441140568766942932454061552805864824291178627064866889201261188293550778348080706658096002743542455904775831138293466513250347647850062631949220664194815585131312703089444334001175041466039263008782498853835647769466874059407985752604192456988231008646612545968442109459648784416004592144540431939087005866245620367222470743947186265171635923007305712743844051610856389260260794419781448427070271122674715138281535567287166048468742928216716516541555808923474853702700501912304959623452541492286547096146549754326167495229325876626707142736101412237527696770052320860730124184302439551002196350045009772133394115349509230766732300482867105473453360043963588969269766265842782756753075084765912872807421226339101536026705810183607399294795373926869966170437543110469365096928631817114867453912239467820460707845647045458400280372282757743853603465376748765800053111345005842462214931083140526881792382640399943191038051228440286756373087587302720071352609685908846290501850795989459645260616433089793020310753316687111909662289282846198544037221555004316280682426412943447113377190727613134191663922531689621449552762413784347630127086554198569257872279329908974690157691144926934715719048175269052404801235921337420524533037441087944639783723116489784729683596111930995161495964503062459188297655433628480713046891643594001969528874344431217904228063674613295508952738492451878122994668208148004650426164012550917879400335236220820450662432071670794043210826791613573251521695487479445653860953759760409189819824980915563439093962225725677379669505199038249072629672043833021837330518175450061442386855209985142032363349430079686524704041972920444255512496659393530998000407353061921085768724274798036469344408079646832450424759542578297276888698527027126609066512930497065393130114568163274561157437436926831823526632595996979818887781036950725464146738500370583286060528877583392553552726378903764538633602638559117450913288912350374047342066921319464378800642787434184372540110521265673011773809185880215513692813877545397309847866227615574332031725805923956795150550149492832737338760393795114225184147094931891015204764681768924414564524770512219155941859745796810027808691145117886710985606225386656273948257398731815280980701091897433533431629669106183434167075500248977690100478293520925218656866279784993413816099634985029239058843181216024995600900339914589785191404000042697005114420651163329297135164706713214191704592611805049075391584107148324564706761194783333719166902323173764430873619966531205017563022809126669369498714607041444504601303391084665011810835496876736049630559605195907549725662969005901959173894178110735914265582850555868561339428089244121661596290145739211439950882563509679033234006731055357674043180510580441760603531144929689562896661697749950076128862019439500330508991011803724714522981719361404506588758218441283396421750315340777657863629642959469542603851770535998781668035960713289786321288090034265944125440379762197105851397401440913468268511930564166030977466773850315434645271666130614505523223477749969979764064017898283799150199112916703120259507171771795652676324880363665827201239897221325344985882312945439328192511825074375240617726080915121934815438268656422870882964817622968006995152412965553235773329819854055575962189685579190780632159737129282874777865441877861596712769418474381411148090129297160853207698005372185633184737813297143150523252198977078563036905584051632657374532872779170631723729673477215832000504349352782333855417345903642231949938250961316704984157870566942257782452992826358947748636488441134894224788822710773606954791257943392226749308970999074072827316092274260435144307846048600619717224693073490703999313686826614376141757979731464031106894856506541527125155486355576655117654246996279768524793195106866497999999692034883450211732481894892324323460487128932364234051909438360096176230224380856050841660029231809015699740917998455128089667682882567939127708100184578332996118434367551997772768385600310862148088476811492675460601144642785269676541598382105896837095540580374827884614805539219250121497571317248615056507818260642690372733574097228008387813015135834419833172741753485687943082802402433420920919827431648562907513015644463190580175965685635281941875611042025217901226279125606002595753067126208034966366559621057537326435522697382993995443670438417166426872854973662290872191252782370675347202972382788001682025156560986225563774815628196121756800185787489040392263204539911298679204941993982668993255670135230881143712110779976750673485105431687262267573161622075553860218859684780113992107153106889219903945205547697752539226534923047742405194268142189499024686691574649917265971409958851278941820105876467187458584708831661427691966207892548347654113817056091125691814610287213315064409804672946197481988065150412661618660162691604085933647919778871832741107464472348250743989967666185813130918052476445602123680636398157497465056357169158966917079307655711188609254167369004522619464699521503275274393731911391014410949329013581014787711786836926574897454586908267668436539975024219536114180925507596440631194542537734304265523220854417142740004733213033672587278583233984425085270801325379452106389821604143297762678136764561814407571620464901162018566759780265252235017152253554298528229286157790204475199099058508974534692372320542418730721663513799525489855938972031670468644636244546450987798260214337694511843861290534468727241822855249276760012783972795156049964047155367629174295632111883749832463138289046589950030195777436966645489607703434816641389440212027924797587342989210272141963949797449284127828913210077292940331932142312982669318677946734723817416089017558071894151531817107542453504979239378601929527084441130792998684843814114770203464289345127024943941140442016375316912311939778034465596049720522100780352606506717321250200764570937339274622586547255960033202401549575054390297937791235095352257455306343161032793384182300102202955278588072385671294548820796236182884360534002658689072780355792981550547050769622337155538410868724835991871516423465706194670182113132724875484672032745889530148335723679533271918640889243347221026787629391758969943385339716566993605410904086676863750948736385255471188303190429952052104637749309917638948426196070236620116075621319915592215896079264389074793698395468533542611291759536139449127229227482899325955311847476727558741558860635901916932629513792139249416865639002957717503647170501597767007035665564872134281100343788566802559756559040728900943241143157592713559291748591631753598996663142759188924861903428039377014916461137351360610839909381059181075702005807426589253619753209656698323014519761994410921473569770270389651466278566242375813571389910525208666230127870232761297917092147088309109559433979526542062621827049521695318809726037229883591623413401108016805524129411933856817977449258357839870044979165623493329510798758360588495177865987403058699766619594599052969484286463282777644143642739223655966108425534657860014964506297647232742076827958095745242648653793184143536583566198721290858531759041344253586440875701577623216041446836445207227033009618345229223187807621766880328914459632898956585984529119056423813953361370136265692780048520902869204087058536403736868672364187028168428746083844355623898254378791303718880684404832634063119069414762002787984984840233642486040659841657776808185279823897390294934181925691187141412837375746040646582432484833884319496517525700465019338706495093912562085583728620595509452589246681747636262005854741048661588302240580027879887124843946571729518693241818720633784477209219903875329060587339731792336325238010568376356666275881974743992389064710221063344590401297166732948580915074114773491297278586657670627789241771039197681727997510606148025563956008859894986978969381105763984248137801201255540162131723155423241293944303862231217290180911477723088875649084941888406908055783297682070185780009656096461546478617008033663670738024617402156856097155285778330899206195109703853354505137657166019731275644384605501393835073497141298211955542263148048053380177375289525456534575463816762881170359781057818322362137896525070365380609765785347241997546576485689525518716558317538410951732489687229927896699833685247048860721645155785776810599126365980009030646454840597148109101208844048435750926195278904726934404413877385447875617991636822659925386969272745517224830419930282266427469270250704733779061663218563042744770436528501074697682956991292884561821645761932932541137189449658054143576432789211776773433283041080351228611529073686156864613027342869738803019673454133423429230782929982461552442583136940029783108094792832672831027045021715903857775950692927869673047902478654276263779887478464985482600799514085283282918149299337467276882048289315955722394650100094549523960260768552961105169570172307566280198459285115355759614319615780433663732758290721604776279714529994187070969550006356397520320016730449920445786023471993736943213934900186817519288001862158044026660980875163403370626095131862164998088654039930413953136007121207325050373538720129349702977379917966103392486669011211302216267923276225555475087504038798705255300592027303399342973191843433987667679345319103418032408621315258331002114131874708506700643187215117454878441022860805531052235585502695945554219729293994636445532329417719300690619655601680734935271002095712468847619519045686493393238350255828143510163142079889154415686866777387933080745712272180377849399893384812735416907101291093580718427502889172027577728131437384051749919471475364156311880918694246693365920508128878874284804912484001784545113799562230254799287973673904362628676366927423124835372795015440774081930060381133539732745249426008070575703386525026074551212348034223947491809069468424012843356735436500038755462445378576623221178181342551657877733168527875482091728311328242158526929265634935225110032733380340453440031300901951473577252882077291671804106216175544944061242807989691327517631655017536676083756449199543737617447817098999653098645142523305723051378723329119779412047884255413894210442612043709603434162970506070580624735265296468977877090112831076216427076048975501845934699902056229159430865111950490683362293268728479115944408270596159184003588062737542432523258394756315342287370347809394474635743232722507019090910908355313635177899669998220731034232882952524193164867260714641261068959163538188272756828622822246377620843614220644671224628805049096868715585464582174882095296217768632913259221004212469008100786231006739239081482224688954160619311925596526123644015011981174233528884256921192270799899824773451966739949929578939126172552432752952887805672851834580946188620090878062884524857807645221712900564324948384635026688151960364737834013976941101130135272728087686093277159851008080510233158253398669477893249201023541030269072567185748769301958576059443185398266952167126577496699331106588773071667477917347375672055037639879163551024637880558614929019590564721032907539874012632223585025495794878114848433562118721561063062591668664717958689045686417868214351402818262204131979247737825771251341385930099477786039494421115419086330085961969203690442013148997120812705525139237523483363285764822507977065911961655685238260891357707808535820225608261765318754405021152084274974710734488906381645790590332947944647250748233938686166310211886016791404483882000522201684961680188556005819006637427172560385594573523027051253073095056001611680896832896154134252476871141397916083004869709895069585724658276292483718340745432695949714467314740913476922596128432786244440987192191177057816464961683803394235584110658743405821367980781640023116970884574625151205312302260240691674295654524180728122893226302945596312305992838126685220464808232417451916817211358059077756155850531767353165940662399326711491076236488464064339125274908830996484148701011601261784797502961802430707193938584264762324646193703301755647478760864734820661792626616788449699010102983342600684549183613035583391158135690353643822746741012577293040108594450612164345604241204081784453203839025803084714490429010158548940466602034272237624639122786620180706904679848147241544171930426155650195089833223608069387444631514327603891977662921297721441690966391746170394398755025666922292295594177756613800047490822041198030928240067760208899307593209865969458666387597986813839311745251713267521191729524689869159416479553244206497358915568318588028895669170648003131413552068022590203635087517081434145845208806885035071223914256879787838296944970200321997101810647273920005395638415807640619479061990149182278849394743128220407001366973210649561737550473579245192155965822426715011871294854532698793625401743340764336321906689690655488430855301088441577627609941182429480287280305116421089402498087834702989827256852732993249858302065417823735663926133582731164856272397343793574394880551590943392714626419436935857475431391792081073032251745227031355249374462737751467399029209960061152637174772021212827516787522713520579194179976902909711299689351242825188250517045476214244641426404828210034628464112512325621100375239206454244602093068709230914986384138485435350906689447230043647192786305396374338271236379398605738862801716009929428388731753819006607730784064339706533932398762127690599208721549841108723736058164736891089296372157361482332136013316078442575049035847374313858888968983194678003679583288702439546692000926702951740424466821326006709154175125997136923677056095296119905324635232345388160470541743628893980670156142456746090569716406924812879354607557870361757339158346533052635771255697305265682360597751191567223040698739329208710331306733130646730527136208407853354524867059266777511081777388314850082080954033453657939423145105513898656759617021776085464835400379060223280635120371124748820923753376701227364141859345395119191616319056399143840824224538162437027964004610111626568519011012970389466629741836185225722358728472998170182245046315032998777165410445656607544877229558374385605198288211748140701072626820804626378874051320166834877894811715575245373776129179526135245656558524163099661851789794936806755539940191664660989459258443929222970591618570687436452370763047856953104488589152868985121404584698847744434491526911526738409353495982687248374886218565808014821797510038381990973169897582138981663882124601334986519763939746735377224638051318809039048169789460952426489280121913495277650065498388257953572897624996237055077137964114938409434059131556256257000295788814438458458054006706841405580616387882039468995739968985498478270576644623493397481974856816455270180241988633641522344948717680424844411650692727484971554307274716563003024180648406888635823662173374218425939096464493200771437536068087188025423023596769600074346203377743964072815512396637187947092245277688072008510599319988553003643614792005231805243762404094973819294293694287703340444734001567212811028096251698675106415100642170452698495006677068377888940135636281537640055627701814433650320059519871631210811909564351789013279300997382795600721382605793984545472422403234091838967850999571461555591022776057844877205769448070127561228599522123110131498901019461771533689921432777437128414960763474085607180931119362701900620632827217045574135872926680657464905291412267440616704083392455263036340231225041897448807236159669520554288276587017005993224932883271176735230867479940454010914553300502272915716628527298337051995059570614987257131782746808867132291673908584196072083129793652650628075863804104944040435370267119052954372223328122583343423867459469433713718363167724455992895629869955361051277702411265367205071603002748717631425562354792490609123637929291344966202771202108970991231861426927530579963522515211567735454851849493919483429081165173251701395379350715629849365938210400046232093295007206540510020336168896474626751282127751845045255104841982970951238942381607607982383152966981883418822292994072121839005309631797046970694097354449059690623482868441544484694032120383172717663878061054473420696389313528232369645702526813414890999482628134149609131341220147682367045863673071018450331446008703932878865633703149026535301177733651406326638899733726484800606571192033935636458989054761518862013941378748181311920925270355237415100496965422886582570272685265210728407483782791803117456050222121250058592785265267947478221308198677159457998949409028431583174425020413517459971661399838013089204781428628465047038329147315329322371661818687864572259961237061853766968816123759726619587234107577162439153901727095849559383578433097939052111911935933604898978201607254145820148940431643289207446658863129108645243401806751840999484729466200810732721098878251869785939392591769280021232589910013726704348401868390956248335697056327811804596332734272129166408603125376861400557389897984161665504367969192406393604457427071706418609144731038015591993279418958455674552757950679221161331075936387882905278119058148068953337613524053048468543137120257536303276508439597101288729385336804000014077322832090966833743561201739643931914398896261957937010784494743445489103517388596364996600532616483237663325787647526427552494891593790153074489564302827430830264302341079186401913764210374923703093583089217140436355853149583901920767061017588426859381138501374310569561134795493575407869600424975049267198686844233132671615827565029193014816600663231148544251803497701294330085644619260342945669718177330638897524439592462466946307335509721614811798252033429725581538212581010759932501283370047881015837269427883423922562119127118201890561812497699164398916983430167167402412591268953094476352682524023291564724841236596960319406460261741017050722572815885091118766942495426657242988261839027961030721407691499011617505363985804580091320644271388095777387131096482481873054234416479582101350022446514175469801581930188726310815366919503257125163146841728691369908800395992947628544855465949350126205369886154744621352072471619682141032768422391595968024509939368014632753824341106176066593726555901838211681881380564945719505943035836809526516321998563871839753405952965141267184093012948913933683450469868648372573112689444274530040958318273157815509948503214070506891603820083601870752600461403293447331522777554900598758955670997860566664060222236643171147848085746042687850299097140665506676962984425823491774347529141744261735029314978539152903530775570878485840916550624533886810251998040875019399885643281173352458469094711570585658509596427831696323301157090471358138760750290001961790806067378754648479263893045666029834503653387490775217296448440696653483885136943462201205669240396617674225688994990560669512540920915394842101026717073954614399886698164279564959685475289204863777538313780705979586040955410307101956048354268960662092839548700363275218033594220389659698263394766217991840747858479091711659205283046399547088986175643188999284716136590361521955076434702224854792935014345515625631492529326583948715226676366710276979612292450755416382061062844258386338314484761394681091917539742554856106733286921862684799602678206946537608871467640212861301727075272159025236103087205301800211640178247919123997462042395673311479644153554814163436316658527414908364970983232191684542039497717191997117566343758176536160447856454946044927785087316520779894785964369447713593629691136404543822713491140890813109801313486962086820338204148029841973803886925222614108380600927845992827190912122963172844306956596351429840570612573061283842036231200527567177947993226100964006489090614211482116251332193658394368979513081613709295134636457644505647824548244239552593466317407817349905087846420016797425117705518721147744472486569455394415087370125617327361341368115336156240594517103516171973365206004731863696992877562547727951646398376369321363827473446535044185137366792207492031452517367003799168096821632683158146210747521158078900709152226476467492480126332984014587801367669203740238596239155226997963498713473114833018973040109665428130083204780325216641511979702299567829204392270061776733563405620342314299700018395721028172804620577704794007962055510512248842536187652082467183051751505693542803861453643820850764264903438685503361964821424599020229315593625712615994363513814708940235159423151216782790089309685005387056363633001839305420971525281798927252814324694641468820609277570143235678297457272272529411415906737411020167622556973435092426539120071041635139281919176241683058246616993255193347163728360563716085179975065964828853792293342874306298373379676355888818565832228587757196311230749204923246338555076763142861062366100612141645856959559552518535450976588989475309111593188267685875459992879275152191493838494304437476494278544577029473908182206415722660676546645300388224708237928975866526234971771258637444090323327925457322999203744144842243507324828146031384976297869643059722510915331576969914619531558468251857612064204680947718733609264213042058645241522390353583095061057043634562014492479453277119895602666214753778594457578804791236142749283080380649731344736791856028884334461150547671177769079758075193067810038296290786546838201139395345947399068730038128369948665626215615824863260123242625411633655531189714765607041411741875456354593699658157952905200762883956037641572697208833988126928328799663907708029489539308988167274939145614350680773385069161028823190168082160980138131699185049347679630423807486132439969884151567435591190208023876774839191958099387278260064841541627813061231548785404234464700163129296008330489637216430221488435196162918540157422277771229598407667601994838443520794696683885746327477064179396764419473672855909513941704793825972492758365790631686741704348896238054202803154956888286216984489187443951628616263756261519977487541659973666793492786917210113796544345221285637210380971596165495901001921603343049672673856476345480480214153238410164600717102090167079503617446322658841024276007425793690000828685692242095466084123760143589181830363292330329863099228282553705043929744132225737291599116760812995015606156287945796621565725628479192847232695339760899411197037406934507637148017889409725877550999867314098796650188222444406193340958850047894088407401895661152306553266190514471018236491357485595730740305526474738116822824756539445205383374945307914940030362995539554099262202041446120099569448754703635546189873599544608242775177341490317734297794337467919915514129650678099500193403745855034179444030213889318432290664377565328570930435730748967921751149867516435957228824314054855410670492489476576240683440993446169225064024231169614347303567384898630269205585393377122323635257542053325928313443774849764672437906076291574468718841697992155525187237815788157138518189574305549483462710397659953888996978271533085328245255450290994036549204583365248449175139383972815241173565838584984065813406815117872621426049259339486006321538534912820043820157927117215459931193406459072630043104903371829075834358392957238015577288367012867337538754291067551055400826497701891199226087856581399367786958097193358333100430910557728522112331041309698720742890951704296094503440996407775252495831452056488867198694745640819811413541463775074966171970153603149039026576756945940133995555158180849757966768947839312172798271832424409150037417181613570923611894604738405121294511982379539862647223249874581756564839676304064410827040546206452213450220152832332211887011233833222563313450102291755343530803786964597793040020790180209590914643053555158739988547673392186961968502131408765143329071301340151566856355115439567063737563581098886143122945168720175735211470918862376878379898391992494529698465218318199649303684073876996484743693721009940520730660771302710253742712606926427485585702560382492591971652628024014275076201866511373568237013375780479318861773087976715116695952190330060365924051755727048470990688372136269002853569037288671686821303890821598117667762055745063148335361127475822176935093503662271687394517286120596304946309396400599858855570794855240949681456582096475996893820042868982806095015645360748324342937287143355346666083995730817921225298056807802835406148311154822046088008944139744024343622478946447011423477869352594581641448176356331053367513798827325414825800224951360867595461466732824037460434257964294356400698966792992204085013200116672878804699783318450018250752182324146215875256972182673169671681285680797281491778620734603360835496420848952226708587555944290763913033958244840486650268063656884140167563836276621189436563188060338000198845112056958546706678757109296572629278495311015102725746252894855526772210142160805074606455061117244466807458958144979575413425185523159806370043344297876434287539044033365318408697372290486597224090518559107738093647833603721698294851531681361869778618048520151681175263461101113500855760891845847048376406079535001126466202575630434184659159180510280172182082771977883016215415857017339542176598363602830176020499100139984169509151641043922151530950494667336287719436613387716916435449393576509700829728683900618283240942384017267166564573974629168545520124251119132256625158931678822090404147773266461548993628237117788095314536345801604211521323750847511409321485901323417595371727844197035388477427728218654591537783301549362852256380506248942018445828298486710015082336250499949372542900408543143591906734638873549068588748362948170450035314902425592180595742321123939576542938482430688689183984079639026720781348003918819738082681718945261110870432306393572565215891243943006215036403145771707184876462981450908397607386722573784307982851592400721727877978414189051661338499802190464764645161930232151824810095058053847167222774648116060564288153146181213706031836006485174644092284431146953569754992067707067026726533637542593164284819601886082810614203666883102707515692199326406683394094870518713877320861514077323353776269779954237550466267088747214739502039782384386381133169946902946509908300866385362977993283828951738489335283092300196366398696955125386628146133101873030528672947860055343738383458396958553428027890796207073467910820327689258824376355621260220933158621170371106658951087999182505425504633430478325153208087721186677064000314124366001864090611286916052999433196148643085752551091324816290139623627070348404557087159998940538324090368459126087210806132716975431260121797677596370440244660140157161327846119401392505160264340350266647646183970400988749463935917827761616050434850077889301106611141450291267187550907843256854862483711685524957656046714996744331242736118142962121040781885095457058965500502742818648256086021059676969117264763447759722467255794878438420684503569722050808129579752189229125629819540056337623046398197126152928343204796819303746292572229448273740144971007204597473560340706520742290427072218430312995223518261271696648505504282946600257595185307123424447476105395775558651030592822522222788215577014139050192922746921058074410699001943138589765422504283496863604594660591910448495119551074888300986221393201694533169307915197000088033314213729893730450488698329797427130394675287970355441049548239310505813771534488217434882522628877311127844629249551817822151048280951106439683299749170484218052113829782332662983239426665075339317587781956378333907965825136257945167094568928892045952622650092035931891016662286414433776007932639961285763069912593895675040867576242384362720422658969671271355701341524904815741018151529285988349906548064967283618904890235646968646073550230462180908024412560740915042014257176836885801290697713549328173651004560274494404088421424385575295662481901749097912085221508442730196167636392107697986325106863335347298127732054413779253613781312819166173746317423534662497401503310447772195753996718103863693385587831974628641615648238931606522882047968755654611658699847747052258670833824983380114598625224259412274059399547512361423100310649009736625994985452629317562692146110860698477448476201012965815973746000326037262593207992546217403183589587898903399762951437333983023273920911125387416497479422231945321603744353820494494449045109962886073770636782106080986657316582877699507611954845853298515745054308488917700232679363774673270266966918834139189921940089236090532375707326903209387971875266634775746348803370639179330350154425185913618330504488281518543153724954175497631935156764207448591457558998313129714293820337157607987646515383138077287882957538230930335303725998392774573168840752099174748018530776370373623270738052946466070384302737084536952981853448786048769691891514408127309551403462924775282542128028014762905008601843629984245130553628268377470963377126284983128201779820908003043211700485165650737782742531807062234359224881429543556944874072683454893399743999858179856298098305883328436051289675588290783066289799131543831284864388198419608925882215680928681178030531577383149925024260868684565631089702875335649489917646983586944509952351649466867826409578572070074743943926385361805694211270763648036598815789033445006175997821438654149769683971738580027944652205198055094583491116284970946200176156481829779427404030395497560048939739097996491887426581499627461410122976847253615934444319855388291915934612670983807259023758947817706100242361335299042266643865313099896365253849064603149269503500846194675388553985627225007623010203851517245461463047290683628542305301752979817564661979448417582572179807383150820904804926051997465037691790820162231742472413791601104433217407895101500972715898519767934233164964161943319562695852700605940537507693420893120887558884763651386360127281893121934516286646543094898069958265120388212429321445452713928055003114254331993290642606826719877171638781889541562933993211741997120973487773503886443502834309697982509414487633435203468808326695792463447037003433746510747566709064660298452612513566330211107495980749901152233167261473263465652549277455601400121377744709244071602853257633048168769171991050793987794943886037322431793481853984855476012506524608789232351183157447562578935273402166013723779254084433878083682124016472968639282498157371591944056448182643269789037238966779134531089508046759309304021427131031565166986906744573942614410863071275567044614566006376904908708400118770847200171280935001495811988211431798788483734966249725140238791166147643550517477645206127234627893927610709465010711650929487938929115570400846557726783705785542130527857002979156974360390016391003684873889926345692584964010420979119915439238377949954366913397131463360946704814087867318608368695073941262774039026463532083317669151637331882505054884614364696879597317776914019891951593659340980150833510357265184182935164666982271870327312445108030084378507935134322742572075470502938611762978243809209367917351447384430713243506039200738184719182232323651249117949251081625595202077710105934920973728140899538358297830449643462588128179668967217035714045560509499389770385300072159805418691492976402090310092857621234194880608406790683979312253755532755615531276670965289666402085052828098788162967602480643010689822889225459057519068360081047687058900785999979111450597428863707864924307820443518700853309438903323612308191593373566151992389003589910931550856380799709037952627825264358837695393197770763446094027348613706014522700675046955167319223479739669715416676891606821628432473320787555806188841982372618321946121396390880396781856244059667562384161176598198072632267015225268456791528784902896283671674015644981950029045923092053297372001221799274342372732552917746490501140426890714945037317081189960874250801251027910796522129563561133004092870664617930858509955139603319458700132545956373910788902870700084740581788590084561614919353226312373018966054594965576846803593484471559376653214117964577861253764061954739751145569038737629883827885481215101940033586507763440415074356263841512549176535365595678934526775552682568600593881601545763899829622788655974573500509685970719701423409621929771202160636277424379757823297027740822420219111082622781081343816071484568761029506050456904207405784390895056289061167440318813734613589179960926196782531363224626681736893787279729706817761591713419901138227920460094865475729866426544757869943893725263258807376796736114989055466649333565666159976692127928369709306568502718514372928552913001901493332801817569898844352741652309478715323759453532519959326036037246349530395367512273592970507444864995469819444810120268949366044133537174265037313622290858787933080224438058382581641745754158126766635987274347992744371413575890876105111359955379406179427619896064229749225597687269985403799071551958489544459838440486969927786385862878567476819289505881521000324704955118576780010254665055606585520162428675867499661364452081492417963934679332105170499616657526883954679083872262095823224573642067686156589982028145674752395008900216611363451751787759810276162032955669589564065040379829165606639506267033916064938253966744519488878758543062811899190208132512336874464362193685123142118874519174374102667381172551842840928750177232737549654691901178589336731723690757793664351294796154509404132795781242681746701133410072178809592834183565646100922308148203440514685868535059156253303869777184697029996208350753235641015551384333572148612372880494511543824105351235729803931674427951881427942355067260776997307204239581619090359976509307631642521130521605694811143065878208705225807804767026772628749358938158299136218158697609494099029177331975764544064573453527262648878814083382523219863049757127763609105905609650757263959856902155014420337272320781911200160650501748982665457496150907573741331920791837689070989580828646535385890797914926332639373679701647318253512779352772408607694786060336761160443232197736266622717140506112864119317471315549940994198589834124351342626171722131721551408602787320963982922635321553417020965146221031253040187661847925313388538832048254709283661692131501668258579859145318460286905363356727688519066938963553651687971361966025076006246312943760504008994550506662794311886831842977530175236272856685240367441851792560102134515161637209644260893753565548113489346212431364394264530091772536777525991579616332790138551502756900703440451240625749346346555635173263008613245095359926022506880541462489994558076209183037221485900805368040676875005891005929948548426789919006202469609803988501629494486936371370149506585028686793029881613945509465399370275078618142006655113718796780986245918654195773727410291534613316888142455881490239688825344288096449813479704888456962628102001151465970852989613186972235263011399263931447619006083444724026074521849783074839115023797784202935103586726085958064244925555823601964870472855761808965486824912052329295490277726819161640174983383643577859884867889271231986355282824112290405210640121934221163273601577652500092022482135714630243763520289793947954556850073808202421130099511115168580015904002274122620673696484124090528554650854116741290623665407520739203063894016194686610874926790209185706688724496531381685878374843736063115348711409770407754291607186065735346175304797625576352512696910104477921773438279623932533613816481967752623984087924058941266293216594287696396997672792893720778996792049170911094264446631505449814694273254602971792911320871572122504169282260741250664363085117698985281059785834128976527408469146411967543228761247635339897605440329788462276410913996431472694808424771252899623445224011575180250782341117068340695831269846025044328860857952290966261213916528453710620785137077912540093052144608044478843046030051836808212147389352379553162426707524216484527778140744201682228551087712126703384047395507894189617818483407922374556432613288102561233860332908713936920384064363908863123006550520279445929298806333147830733045316041758939233245694279723452366833663281797891615091022350043205750001885312656321631748197700914967184074488188152034785244580544620500417055809649024582599523755866363223160919967552573008966595911673779174519395036260531013579681926900074499643364045754428050288140629613658310929487898190866203262160508522888635393246817055603381926722832619035226686879822164899142703331206541911739518508181850243091351169625357340220202528501810031051365691075447859547170442804694973365972972443588979986792719621208222097554337940236443919908547066447447108913325727332933951681536018234673769403192149248614045018376271273362429230442714665140900914682727482972641445740365001695276517271439246985864314699704257397761783242439408015143542503556401049853081478440605725360198689905685504394469643964557180985438482067379239973984395909509953401733924365840993713841666547680479500623972431642049394337965618792156605800017730262645735963056828198468890429287609799523035627858031218868791357429010739540535270334834178104628684422402507922864338041801765906256683166196593006201644153492793954531213832136999529218328359891839523784488352618325574506579165908204568478714492814132738677888476634333691530660510905122545818987016596745946667738417032544954663197463070741935513943666908838151731527485890320283155582408893345196007198988827816622651669624875514842426737924474221497594782141598345349453358267564672494749160595097927728951554800298080699406816271953985312635661658018195560674247708978576148395519934428910003136324831109391263659350443812825677700332237879573504215667089232837682370766758469607979119175965791513188275809444415829650668414175688791899865593067624307668187409253977785318710046947531669937641827620131086136247700675551647299140205370273188906047951427213520930509365122330116031021458334866401353923007564832729843609695050090583275452412447354486710888238353198910710270364121587025534877705409324738308453953632530725426590957246145170912892689160846652079590391978650254515684461828267661016257260829300461962709691174880798234379058880974676030605754409009544820778639144700660635444637198177969562213782465959142430614154534841380349432144926984038531112566779649596885127532591868440100278641348983165849244615233765951465853039057575710230565159934352204171093393012208589451134484770514752029536155863760569227791699674037136316579077787875206022668663438844032502126859360929098448365001813871648563019304480550487163204306558118254702532583837863208915308108244655179835701756956146223472071701563097167694427930821873009132964304237229655295188787161345075751413691105684566218057707338196387776670990906731105926001825783307764199776222916303711066798228258079644974371186365723959879714002238568578498573639436629984628510648245813216481061286990353805838966772568470541057611878582154924728867243432042311836674738303095785784234966225248565644447287685953632406162620031052749422300143118791251378333354349495970917626335632293919227074224935449653630061010118487239206676928924787847023914574992919101648635260783301237663752850232155865938363282250573471821010991421077535220494693002821852429629655699925860993057003274104285457489801807945286713226275922120636655390698164139084162959870215452890854112598778211265189851763355088641142218767931711016876208086371490212051124204135995029654425592182583786785315549548551614800274363178908910757564326819279916299199203086296538132680780597443039357283124589549835297743947816046063592205031644248875349645684479641605386421397238011551528118682487049638726193458456387297609823204048734077052052590730052012049686118392423763040159950432846325373363357156972273025836372640976783354213915351590592053743173731181251509867675767204326077067316214928068931108274219977426801662869359042133503025226221491597814847092095367737589921214905874080167418042386290871394472194590803324246385007388497683539248554392421447190227727031347803790858956893853652921382217731592878399533575011796410287258466687227012300750695298153651978626535774097066750161326215687184533024611623544391976268754256653011116220416777779825701475122786931000900008992530230827420002341239277990139550580777130031606100879837961429260797342025367241247237940922987355557654693917507454761631699012474885032209272754308225549798452157450714160985333381719525184863263533798736734741636318462311338811122262928133214010603768813647688351923733676346821729625554393119181020153696977256968549430901416135586432679198663382405861710015888691387445194683139557948189547823265758241445439038854513063497914603026700690075063317972875422098085423047167441402238121746244234602115996044951785231173262965714776431207504200111180781461876246991104331846422917930132967893336102894773421300438246218406724048430348603021137060622652530319387105572859093032166669619577205590600296012610377590119963308736798264444324181926403246953922633030204144813182819584664153987929641109335052709176112587421611836932615094525450370664613719621525510299692434578708269808747801120939885199715421167069287446026207665285837119699215900019140339373201444667618626184476890908450022781749435651852060384198082198847526161047623832101455068339997173520719598532314162396619497404523547084219050349608740744905623255185466827759022717831069698333219361550486720914165564860108870299807120915657735650062645371180902684692017243350236914946114294822465020799529305672622207262270052130265523792475957132386600071748236518367322989468320450955884556986814510892943631460403821878872548772974048615506634675826948952247519613689949469528885600635751557980943116766709016553815768479287198508455071512986030349464177434979242360629672128174172372072031847999652295627604613243921592447056008851355196327463079806191813190702340751893328849437534791783319128273555959924149764442782507662260828917449072279206489737115351150531754987656931103291818254344749393306602137701380496654450987382121712588940047887614179398087503660657786799815657139229312274639390145792613709307474484048755287938184250784610609321888581610339000012601146513718987287591675969072521476144834481034344470089227717019551669741297704083433596011548880269596842032961475924130038972839907485394131324428327376537993579480854570755422291243963075099761106290658723963362674691520082463514435695609348306245501671753443008089286847348529763288406836222810100052737817020140438967879082060854921288113077282015470917617487210088260870548104889478465068639921468545842089607122321293202078337812469641653915696325463847028957829589265619653075971198562430026037519424020497249265239900444003236294711755498831706148875249597799698565581198331891584892347289066606143408483843035875646148266174530072332137391729497823647928791035775485908624002258475353759515831018148235289775588044465200763137221455053537931940181268153554330350197945151153264033440631258715740696053082924887184080879197971445496949460811685421149534642892365219375572682553288991935990241165749890156105811433113375483108861357983416806723046193185810049897523825215877286276465506783880780843695174842451886136323371751564309077956630515768972411106082246537061860287468676819633624443621674454149961015727802801119048804009794805849322688278661605373545636312817489968808560696115343391291807378884109344275373441939102448646725428252644768303798564517392515873551426094428512557936270379281865490022400512874637254844772877637541999368369071917094734622304564742300023534119658976084031014107123240546121732166386538086539206327535662407382513526150809464837073946526202146336569173448135301572812544632416664482418844857251470930786348071145760809295247678118325888349160065199590148105664698971355233796000370626280103823997380268256874211567243546407134490624283413346227351349134073826190214776550214525931853315742145729475265331835773753088966596825051906512419099825470809513431172868117334191971000938045557679002820256122569596565787972812227036184279946689934365697647482729172506889003790370213828567200169182575689948353724109900340283565153785877643868900462023483272886113869083052323716829152500548163356711954236403514815706331482893008073745905354811394394001649870440158558979020375726892739796411814053983647026044028381414881320556015026732295073877893405623734460044008285573254542508483323574522862684529125849963049581382015815033716561790103251515939461249827557037854887837250927624083723672407579493728301314560379567011968046499698029799484411755414417012530646051635330443452688957006850366434790237686310215455473979144538550554327070377952751852540753240802452818375312218687526417961221609660616815610787083984115941303798158481218642871697195481089303156348899657255803862691844539975613240740819028277496768871228231047976991635390012268089950757464096754452093090783355955047920949075173135995449131837360163944791037893841597069313554621774827463673706998483582518288918534292614299153946707601611462937414607821007636704429055506846919769937937104708059611626479047348533206420384074742820593025149579105947318067205657793598532383025312861035250516116452274429250482038991042558007257953268221948196618151662524282881751882696589851005142290099097355908263855489188892726337741556757222507349466518804393891124234184546594369429050380701466787348898589916142393605677145917985253698148732225804570148374810107531114589745040606972344890561384000097771599465679411525533671419272291100599281863302950752851466173107366530555317545529789301350254619815411533940301143570977535280614270796895453015126717887077114433152046697083716163422061725287880095350202739503188041289268756742587117704547911862783213716292631673534977086924421052927392228238120254200654576467801593618476112673991649089918632140273506082328772478408295788144388869024612500590151095134423460895950222491782006014814749687303888779118188570539910337881004824182500864159381626479014027698139667313270841218845802072471863097854604479891991450900766303436416751648070055534875468577495546203919252684830224881861799056286482079788472149382027439807576092981129319168509304014750436271441589610741864097326931274887356438808568848164292970835036479371568436918248691918051068510106686224651221722582944052155940082298840744028963878162300745368802565277693445879530298187793748359063196700811998924592577277550741962368679583235021870433262385354977358271552814873046605213997510108012009969583096092282751159137994357880190729958359997037937292393578214405004721021126325888851184410048796317355986173068486184576779947370619943515529586655927599289593869942217954120871033762328789778797388253469201128340356318985489757309060029204398695104310697777595460904985587931063953158889962732350944229571016661140902184594301327632567670966545607933839249157259777525905486288121175297273203184800235214105115299905410967348839612885346932816368413950538568085154448747820769882486646110065114685135850042806002483235287986911184148568596737449077232159115471648769612493171407662194422839816819551550094585786459180666796523106291635215958245562381819576040900106893623644394251522918896386006268546825039299117374313845342121003466099005824416818825469387056064539548883357942121520890055674320354461661829461197244284639438951304855588098571174278599026086660886743875494394175402695882510248567275141515376210837374424110805396835225561390528064031494663120403815098407533514679150371575702449520782476938866569999649105930608926942066901561458816772677808460914719620042596166936157566983960149098600850869713367246138685269985181930518985899872630646232775118990144863739627360998304284338676673998281920292883064958023869597464407553917638772110744909232660533795552350957070138442740752184751169289935986482812392405466945525779127071062251340789581476067270707470409243426595573289925303862499327527322344997096886237429174016941230425219941358295705151921377088040454741891315808495399258748628668902489232336467072103812104245173429607112379442950705907590715868042499718483774065635605816354911374969601897625262452126421700185757588159841118291854946023675437532846679489307792640530866786734180610898319399875227562200661757425410129886052210290867693408036391211200934356169085965892722550527272920574676674758145291256678845704593253622372471968657173271574731402809148234531425579245455962619863124597680396252169267893523377383869700143798530473305162399422389540965704707502825887985853833151213813090103428087618492314134874049157406659817606891340962139080574210089443564156910702278248071653336754386742952827625732004543272822605086423148695830227897435467518759522629002491846572666467171728563864646645502115677428599155098057823948252424510723114839452861202434318247267515034051741628351473589565123196382162804541427428109956443694893591876885349247558045699822521806585895974301464585467234098604326610349854333935380694807155465004609271004952424474438072103436314778713359966403444957348561888055641325862225208694201203515662949634832626014841828449560427997046668196001153317005910614578120288439396189746517986638579283847328929580469928730909789581197822419505281469484749465340339090456443045736372729452232517538292599924972334583231060142607839052120925192758158430512994226989965308197932079213721192203411911089431617846212861310014458200736959674794018737321335874219985849839864394244742751965491891099392605047519868121996196877351336232903049764801501572226837719462540168784120389545080086006721824482364115336085857182840417097245858209023677403820828392503576815417785122875473727829212638619745471217235696960259803742634856569829656752067773358206084558268847942164037796754677917076118973416710493234943184938570916823094287243621344676333897463702154035545528466592970981476296302362133172484999353040128377270818778575883485091089003587400739784709729498573064167146792742251092940259190828827811619779590512164765513157650627828232920193546984500870906152769374096890049093660669435548683535698561017518809409905882506941006514388374261936471140271984407944092705966702756681365030740887844877100696104703452232898629672976046840014147767597451721332144895621496946290446081374068926255711302842274804964304104526375064000503110277010922447920466156814455784148348867040118628744819477180338557770550856575194371528972224292387953741663283984413387145702638979433949550028940820825846099725727745630007194585926985606604532903241285482764632180283509118848020680063612389835997353524160198798669923962091859679690903201103101778944444794928904241002773628634927536020258032705370100944602730808532280521026729603374216045929488951988439921287473117947477532678765113840743435196532228877265582337165143451789348839973106425323514300457987730146028094880823771119971493662540270321013489623855127862568164609866672123372348106156901011526173491224578868125682390330511882862387281964201940269679000550590917020523746105969287873215416712929624383120783002413094066527595289404469357156167330175924175734047437028908694404292249330486879361389990572142183162189200666332405271990609760304668905057999058674676760562404071294200710448668627444084809126507175377371825125027050901442845392520770069703429561768803455065307403287680971555584706983187300771527497993137920643978795129179582351634422491516269996881068945745759424820705865696003579779234424893809701713480432941884095190109880596049060870861611645905231169784829342685766169188828128223669777168079353092974747881880455060957199919451519752076967963988322282504934626311341723577510295647454667340467415680728965368362594833986579685813832887920657576033722180252055793524124854872324048314811304678037618086227796029180608312055496823417160553443880354756796272001157967414377908106466845733489693710882209413824976094917464088066814752528818086365702232606336848474742923544815562131824959273506406643791522336636892455101488696727432537161185046728982442543110024836055477010476887153453618531645323787832008209433894584976495939480847555552414713196266720971606828782544435475762248362878380617616818987428078483575462808039379516205905841372521656446455016451437064092169945874885997226901456096677777656411939756409253443072027816142402934593781140675671862352557148217020670400583160995495620284415596488718526623424608075677734599591196940602064996989916516313388746860876876898230449198657986223154978847682093044220330754796475514886128671876353560217235545773694787546031838192591184838478600392581628097298200638302432789735715343914302181619082782340596508643445754895419396067418833275002885547076245763081051401750697724181138989615040080947820224074098697230382127663778739236142619917242539108517278182023378013746646997366008706526551217111406877663670684554513372306607348317064151734579679399610944151992109203615336943746029743190796595799454423586175143308341035266886947958245751815581210205905684813549913697698975398999322115076742011124930549227129227451811703209314593929197293808347124616505433984054234246216730571504723485828349503398807944708685584331979048812824064757541061623494747194443458196469167644054871625438867782628119899895672157230427067513029396088763606342781182764877401585685924392860514444903233791488045144823282023410942581637629598236130847936934695213432901310391790950032886712265402562502814950187112907088031701845375528095144572570118253709121048454262727931625104652969342411460029045036558332948606407574577746432779299865612168565272052245059152731034039684358729621757814455818082834448128390502926384328577693677267203266615927971767022885254004341336203586954180169876777866212536248666265363540134259372836663474807159158739283207717457578299682927017591055628982740753966924802631436480350250026232842914387306452336943600441175434550993875612129275104071534371490222354121968991732220123452701433767344791528141127022154140299131042025388492057218017661148963945825993931253760513349755866049245592366576012865847368027146357220271792902456792256660472281650234012943060653140944104721723781928791125248403282509756468296791793896535442134365285322540149918228320930410191547788440870077437431466239301939901841288872204072763906249297715799993458892657748143902784415787825102412584220745968230812134158990718684582866202046388317954707392401791074791453047449984776823688034647652003724563318629065989103546635536028713415005415940908072257393275796134141308852109284524475128812706198928727739979998499574730104583377796366086468363804317798158347842277450915445476572761864790360600837950878493053198749748869953599414497165402048469195217411920176070481167899552005473523499340237128208929636940896147169951753457391963004620002798122045005804945592556697001217884846477303282079368272204498285098510969153536803940090235671438070638584730688042254006233067649704221544407304924491618188118282224127527434973038015437350464635304048274382114623590003103226630895278832055135824203873243058642769546713905474380945835605003951323551291574660979719195453059214316816066816762895195383633480127600336708617342091096965508591189886721773373978440013790834490600623004022733410291758168901427765909176612254811113428525134577667447397329309758906615323489294271418242220367742666423604896387447240042464821911054214591285564038305025627334821587859154626119578081737037845486963152734098545332070646708304487537175545771936185416554189510299209725763651665681505738878457136023540786457715440418630603876406113137226106931186036978625213745028974931122851296609396432309243921257250598308495199259070045861521949001803626676272356387298682299319208096397160408749192231915349868801941663836423366093944925594348348077064018094848606250057369118236463612708030094881740868044250414545029404146000154544734935037441057951554650898525337294272349521034341311868154808302539368504128743724672048884766023091436722540873722916876785635225431706771797839963023908226770855464633617930953239899790152862897901159264176933429544328989486700813942334375728875367237460113862000660895305757755766908958258859590943679326293398309864333785936071183213793868645604845757374796399725307985393377731632741739652091592265059320454249808569855557803838119013391952052447553952503651809164668272019354850946465088419801406661825502302047644877366475184826221087471327775426317620067280010931058918331734018296513866390412872645380208236396509033152839486282987174429150198909914339963758396701450636413087179294030796514077677833484149883313342993491294971020251751675037406682183711599044483866994587112248607793092699530652126195905160551655630234781914603598938028796189023590389973593001128767510407000091784955808821659328975704352077109968903857827543528116656949022220489384543276853131971564110500254317922701212817906151693092417932644277569251582586554089702775645090441329465360087745556159507251577899530137857568377386174479285671131232383769068673637163253336122803383935922121497865514837864302049285677139030389416301587519478906183637003281075261195151815169338493114085749249532027979679750511689124409366617373418961147449774276241687875262405073523768002502724197746926922490677736548802047925849576611570786764285448624847413216321309197294618983723090882634466255899107813286562579706373938318121562335325211640402886767977600310344394526109125629758476080707250811702675712099390564086395168939890028217595954475257751519427457875841603463637808001671554503845042466904263680493145180817344938705118778800246791627813621689158615664461052363274496971758325964084360017958048667441941103884393712700276378125218504204611811985581386527959742676589608389375707424090328144604943197477769382321043764390690746703914116156674424560525863805282309571081585445033994910623923305230497544883178232569885157658248283029526545194003181186874860141585700697071463838467100774372424601727017644670148266461381932231843473783653027579847416221432046558970580791253117453917459603859652216424888088885943012281861597360450873276387789156009805765642537651658146127343064605092486091154758334303828132020514922002735735139342311794983239655504367024858632936729206618527727335605704516561864624459066085836026541133300720415117458397838840668794688820862368102158543772181487607458781678505409112512043426431447748361087507363651620623151140193730140346509738523119943019214255495602824761753772075830724796753197922686103284738472077377626763826349107280678775218300665562835109259172282389300108660291819514729005879398309481773990774871714067889450916885798322972788179054162852453599164133223766330776307835425172187033760165295969042116778646061357394345273004216056788081014234832915592100538189767764135404267512036363318619700515051089224311236697284363684204232353359117716843805945763374685298768576037974308688342514022330710019007867613833092189458308660577438351201591779043470548376473279188703155455594564784663587577367539604845729609284122452219171117358114320491678109563756704123686940181966102621137118114698583242305093392994123576200558303713923748497862011166926398284098949423307868386446319501232106589456581934638631129303706375674928052903166080771573376458915113813936482121288977873796915192717722460317610681817727896075556470520340809446128999552078351890066734379154198886185710690098607934296896168968270484052894607931339441857649919121004057919026625318443487151391153043008882148840260105278975471263979473045316429627022356396944306554695733385763171428952079800300097360159999229333341118072951264579418153324881307587179002859662599020639337820503556488700772232410505713117007325134250265774500589913190298516834363743570071128969706987581830586632782608221825457726906447347196440371902008500608508240699558691745835100011584240912260876384523841493959123925494949720829839105831334764761421244698779137473508574086144902602275678349263778406798620511897201117903266333772337766210642446716514351143281998990223986891471136908011951929875461920428503746639861887610341717914639436715929068519412139569609523540491888114959142291959681063362675414274848525858571704742963995365733654099432915060477203813384606471618276910273090132026883690918735028391791146694791633618030641159903924580971967824215210317789557901313650763690974195672000617987711941509225812813213625846096367449631134218910048549864416933261082924469868074362611427738379932581242514889257756570089268256738704463169451538909031504799986820433850333870933599068040202375000196928927888871250638401219363981937515630451173645283070363572380997745871324619878875555066863870486871306573790639479064728973211103731310720964439215567849020857576380212108746939607255025864009503915680183356446048729011562098809560913334521460527608077899217681169179688036042921745875431541096827857755379750235550890324244661140326198224501205679142947659280565833219889256589793895358264929606396435446395068739702213413428360137067341437569115215270674775270727440822238106562948164494191735739798366740042613456584238666347728493325615467925830391116797310069779648195715176449322993793088191867570123435122573493108740250414153747255943382027090833851872053494725848591865765740721747863142570813347065946988673555527219374277118694865398469355257137484659327852524808928866358161605541517924606400836416744485344164010563133798898706060983990391461022553809200008049083176473881763081759433503532148310494648049214556818931650831040040834821801111767164093850003309412654758056528288193441216646313576732526286509946897158185548497538220846514341287469685820863778827359648434382282302435821799512059593307700541780812565397941809855360387918485115426092627736189479495816310238366400727512341550769236257122527632318735138947570147333689088791881164365151990036076530493222566663093832387143223052953783025205583915634932635078964460869130945448129425190290362484479778147578940794655854346568227948971455018571542233020355034413355866346596065687550706238462155359743930839532566366279127584655515100432753796629560593537415418970887491436775666352071552374727134333727680390446640195288889725228818938839084224204643116111508147690618765723119948930995272351480288637923262929908457175185426488876473634108327244784944053822622319550233740636806390596455836420757911302913001983869736422330356353654106182560566324856802498264302367157714504752997730540034615887496451846117285167072806910025266877107931439517554472707557773937068623807164544621472917547568830672743949847428340109301634495316612611407629848312098486955779444927739125990271022428724067749511195660516919970124293433454399516821214875778426140646548750916753061580864403515552615054655070701410526359760437587168756349913473716774220261647576019292998104152589015399545601527883139824906246179777035629477484391416159002414838079141989036195591256019542497164601826756991696407725682045769497749438018031903822413823098286254716247449153975254386069157941842495713632781134541037140001603078943972758208006347932552915317219495102126567131726329341841150778738213479921271590821526598199427329714028185784212800014310492743008279846515907461205936386775743381048974208141353421225090199778960458079742205047500477775862334825640120505244456062541945016420679669440303969657661300639778952106160349108927335186377729394857923327404304248620579446288513876370953624354301555148037045956368225121903168184253447411539005397422339654812380468403122108507007762837007937257678768098356943832645684810173677510295742900040400879829998878971822145748966230941766846655407068669199736580917376363210472783244499350527299714454365464265714883003314322356994852552161559847685866264914204418515272603375766709607248632200639132510320999849594809104657068426234929762474713148867873829769263407830146761468871051546324051848303505891428925553233390487372826935595839338833478092417852157565130067439381505590029842902524200645516971729625342675785776583714322680138731805894542143789002653151861963282006972381804244290495408903119730966855278692285890971852943381448299726285356070820666318965457120064056697535802578543655232422731282699660457511663784605656300451066336628725447390613415770318661431669034438225809153066078237358972355598977775808130731658771528253705612822330313932213026732286450086762393851786127800465790605527158478947865517937583708624779119000808627553465662035806489628245587439686938070397437908396368185414686189710545268985966005248644352382758281805160737372007784320323270166107175720566376264547933669915152404224464496188094941859729576453963326701370919653426807447579225861652638496997452652045150178724105018037688832349087652076105987431774816893977493363448766837000925841992258792659829737881438087217332935787923186464957913094670353067002753823385092989369488376705039499492300049953201383435542728699999975563307250110601708291353167589741505894116202457232245183042684202336152911861251902694204766630572951202951290878416730623745563820823173218894556719252131303910358987424209516963872043747968247680381459443038556025476316300440750232737197038543879833184217616890931316896901269276584766294145242526162704833687749627382995369299868101357799199227948419700615181906618572452071777920916388486967438386920803220591002823741898470151868391703565257615741946037210145576247821323113293303864107864967749340371406749036173948354240431451771269377889919472573797027880342367853902958772537711024317830030734563855382293545861052390614807170518312877595207546364045297232095615317848021303428481912840723413465452612682686438713770233066153917140462629651868465316010332005666465977089430685836005546983358463868208941511921696808269266848373042486084916281705255546491030605533278705305330510785533331596254195810764052311273449003364991822786885428841321466466912802398216255347391755228890666124034893775953152146248677260498781378485428073398292769600711287271518695993781886859566819372398871723954961628018354266583365263038323427078978916651180920151881366723392784480459695102606535678656017697139015536268170256816010957531134392768868456500950770200327594056609077187791256628779461589642863602936640086020617063850625753505640642646722558637447480615923405502308204490827763386450122191537708193230981395886653172092312684710763970902689020179547173959731637206941009955433794453403273164537216102038816438455826710119445644968432856075915901758721633416793684829563914870963148527570656993014415831664188461541377046148961795280271556501853555222722391107808325195842475195926392937235368773629486012457045852199269164829244411629555255441566818486257624822652079038322547220605699050046827987240332630934736841206901603398716543821322081656096712482267492282135254788321488012995797759822528044927376066047046238510769461318371460333031169928026077577781551983891186648558237041683151389887277024031357856838891892512610409404125169569294427855387361961489051733436793723795698686722127291955470251795995538843623544678605148952364919091248643802440865752699721315387759207630085981675763463314940752186912955216749774436311313953877974033314929326106057393777471418924767397268921444850855829561881779612572465066266944243338727173331736011308720714533634454311754476523478966820564767919037614050823616502898294052670706416661135091953343787521821781399629849738321747991977300198457398769391831835284112984656395461692178539437931418199837943824780900920013487656783230135190222038513089494452165228143622172359980394390099694165080943333959931341346417068403687170940186713218681086705715413226596854270298243473798798047770396933138391238313425321521437236504001549066146462993781898345699645240024231205671665013809458514014812019663483323507998174186696858860648679510656204148354341468200227813244467393008715275506078771823629444428125886782463964710861973234285610814476345358711546292856713440008961720741174718497125970159186650372279329122716966940862054467945784471926950765461880995615340542719582617107953702439845899963020612338217365691746351109730961658901089851615011018698730074568386828638832091863476166049960125784952483316512113244532899943722403280352386947395668539162056939520222587240258600508285059093833839787608421702432517434011905072845704273858019529864699632578638250006684182589470822689328861767396364472502522146366850192850278999502850395069148177438132974867565493965007558915565729409525514868638495883777049600289376438544153445141147755367572670549932276836365640047905961187591859667864837898655788938554502819017959344987452494275606947487198313542569598248348109801866625423465380036476230264857791443313397409985429258171087982037220987195204347447075041501243573075252051879509143973544713432648603182184095335080574206248563595110268981349917626942312065078949819217596348556715583903858663697810702410839849668556992020445883483269493537731808475032375674648916823138220543579490132725809080065230742924637829022875047675547422962626405830221872168613842419978352266773718912023422618195254470717633489967183423060924421030448255907040127916045321270197935698807999506040395730616378672370862549426040775428823529451731900064370428634219943540188795653609050083668241592380966655435343919254607591222667693010541032861900856938422411109119802745193625455364266162479261059947364276858257076096790110518970072449658917364437050571881482871355243346533527953238000118626366891230608129205650830575896430780048742306908465736186944763281747800806545934840569983328904392000235276354733170925337209681319385816488718251814506715454158002963295084557369211019736865171872946618532721249757776422133338993571041200482464724372010184035102773022298577230778669161785794454385606066683810068112782710063452248329952005347143559936252314225934761524224453034763005787723323807981173923735170803160878407885801375283384614493258704973541898689318818353566474963886170840403821163106529136749546275410013647326763649555482213368432610025136982592509763152052783400380732277447775886693635202955794111685899459384819460609756288262483611594803115247014841436914704965550513964569649098190744567870795492701469927251740620027576130927066919086527360302966595882565903668616704241343559326702785049453272421765851096085985134011218197116131525084144885462729693255023700561445461331263669652125642656693087787946957946635989094064735574945252877521735883645232369702871055334508647223636020394909641403100953205026910470159451825833796169784412364641675317949047046536169283560837896965661824814878579994199577230805509441525592885053217961640968884645749850630860010771453901359842432360355940496817844573094609036885546686136824690830785306690311417915051717026200871606654174172730943535838736333705055628495867667739296828324304247346991048810447648635611016630164720534112047860006385683702986454796010906763476597204289399309460461673771330092042295446644088600330762301818307430900901542253386571487355539224781587404621896601519592475601884192793130146404954254960953779062376191031184912691302679996818302709409539001158512486693931371167211676910404963057822723469417834594980368478357769880431947944229093968035831752195235326839779599676716688966531777052794602318178590520937238803719428788546291935755191777801419683606061708679912880738080215431518385422230006464927648324719335312594097930530241038747675590346711264043170247527466746995546114722059846226586380272450675720901689571351234773326642926158444094544592400039807567401148261402166440379654721080640816158819245547905336979001557459685603922469344166420103032005087730004860586115772196664502419512725469931553849336459843829816966262550178699279627327476113301070743256496715467221139185004480636455463313666618978826082940506095779756758404954888636633531525275475420909995911754700873207936703322857248874165120346080353211935555681970668344411877396689051651160578158149228797534793052914760125089482258316692117270351608022753353147704249125704965664698721482093355219946299692397982636461645337542947145347628028912899040729113501781334326208423913324445693895966227466879076540601432505493987691051321822954817138015971312936021442991456811264164548096071668789256282044094945698131089721296974851256021986296907403702320259582192343655150331753109957109831627732666008659548772814492131286305742975531734002679938378586781753530589754519555997697810422504784501254198091833233024658051586228771442440126130458759519057460037613690090857060466149137044377386207413297849857702970848991192869382270441835878454070515930661653522052566729161423737104879707522175081699856740454953410322587831957484244629918984605761564239263581459259294359016064030725243570444609532475172459165102464006223730866699336426951829558161468062754422965097823769294604765577340182630526935199796269068796092876609120073084130739945630028670209410309799918627494288647814498435271746602304261180219288916677685222714573251257373406434547722731668873974664541210438335425219114720009659676108448239492687204901960171058952269203799816946223556932796403311228864087675786770751482153050385098709010976826129010238328990818314897005517963520189978721883070915015629531446654186709226423616602104842783874678353738905883333617504953222717677118032268497014739528635004480168393999309655365510359251392041807330276622105734173544729951702962951995313083190741978242879478442678826648374318607304613365672258047870205948539217999930771596066017319134232581319095186528263038084446733698673311663537672331249875695427238904545057000631882624216061436354167974271728281284407113648258135738160914891135196302472597979335290845180445149636491135988222005904358961424488446420969127638298930975421190225101655296698367659089824252757457456040303933662236525173380138352673601904702071816949294398140671487513155099854965661076953569696227531523504227624182182075274177557631773221977422269518933698956188347979737390097711550725443752806481120791098425552270002453069939690813075573003440516509566314782706460506721248579137339734388396555778063870091053860317517462508589375860913668600633056960756045823146445626070358624765975509368187504933778647729476243935697212458114613982889715534866300214236682334931771303106184888243292094107999699509612441025785550320921859634137865579491452878277051458451157503327671743695181406442193185300931947367655261192997254314266663443250339887234506400513120324774358232307262130658854804140269322099780397347537073403788515462514703187202098447570470154133511038475534195277232173012360595317613135321508290767097769168588614624946874455404640208896323304177101066675981291398111934130377361568851716170866325778829840906761697969615117539907141540724914239750681959903712585568696626065274826246023548710614606703922559939738972402922832543558574525761927187832362102384795342945390850888583165170343536653071579646029003506727477513785385465438874868324829605980019583001324719032153764786986322322808655837704467965734267130193696512618185341334192541719788733283120095265867558757912823965137316325739078488235267170524411818592980451124347632515102791752228776096183613456109515111441480691484299706398567819227174276286034128100313609484983503884808498353724712044753900291686959572717115150167378586026795005474792657279161917935715329920883534179614607170996668148290077420165227846438256450394933698863978869905811948547606840289844901204685224438034092280127805899288933222387460522712182502197729452189779169662352325215048854626062723861340352755304125510569238787915776988433861685343795784328596332552245929863693959449387379796513780775599189249898494660480364406229090369872913277931994760793578727083895652677822203953328094068034758360673953316613471729672932555513386966242574752554885973100948242838543814095369687374813342112222269962140747449670079756579406176863296049125592905262460709932670795228065450850796447095416558733494023642668393306991893671058337097657356358282437563900353370864540350157693187465609673960481026554990906678713119154732410589651957333797139776964950385501449685423409246064425109806001597940323642359189806233778908890870599247049415574965335733799533637623778334152882256812972644137242698171931371874833558349662581283026536505057738730061239331285056481082518057577364528000542907704932764080721144191901917484514074260105151355946793756949028488475946657950164856341400912584534154327481080235141511489313258771404099116048443445440853850873734907546108701288718820347165630449625622209379004581299617412924749819228061658054399485008152618118216711706228826279109544580170096046468013373008052929102051456343195838351642916951956231196289932525561672754933818941736658009084241229752448953002375804985879160212485535936672278481807845625306446584209224085326045360784291742942137052618944521051770754898347832847296912245830017481919520989345439808801357423053306879381692170675995262347163514692269894588567552966065851681307526232981320602744539940153744672806036143599232210368763708052347302475256038583242552830562089206228930750374165933178954767564132358322767710203285170314643771947377092344398847725308762076414142650613627761870640464984854234756605166617575153175837638903587290909080765101686166354984824992305234463090776354022177846081735531486265568632195815319726423943039614850052895999659821409491783101885002689793973615127190221085140361735660816845679527965584079682541726244315044557019402334180876334784394343194454966746879771098682476331449745571209435857662329887150880437132099534107789153276170043589945319825340908901535031086060249842755427045905312212874169326264650188242297968111563931043485843138609324477493674241786369350311790048456240918546677252967633458510006712041439365968166454903707392954447089524103286852717632268681481037124378503542419245408512466948456587561857559552443700626041423729414198925406262601934681948374984364003029698134234334228136834330347657544763857969011746330734588601139022315095339044424419749449656021700826280369873195637841636222422520217534198327713255947958491506730971166273993660211153849752480420766239978959173512758333416740116167767015066355498602392902224114231658391738306058823910201132317568691268135731554103122830203752354251113712181520489035669336326445153994367740642047958677490588738137310964967888113092125951893692094529953580910950195239115177551705299387804299122208704753814848341492945432357374847614954548733814287396967475925001839202110116895751529761610807054565733532978449433633838788417681889298449197328480001974366275269035221689384444672950224203706607841434220061052970367080196210699815603208183911985878954321550138396009803124462340294096283873982921033298151612451925579892089110286818112265440315339145022884696993245834232041954475256814619673116851078679620829329351458894765928439754806285746311520108510142962216778936580208526720006212640077146551688162174803759328829213539773576514648329061575359822416088528362321169205464936533036566885579739154990983050255339890118882528808323682095356049899574929375751419169090994553253500270919297197198372866880527198423703928798080600841677453609297793632815352802895888064073286116112585816210505398436695557696538784748858517936112461506745416973390455015221527136953253635486319071647343032716614206824651096098627744617210919734775068135786935932597958860440815150824225355188040178864852128102486022462381751167332493507774291874221349213043126532212726630791548728848618966157040611725156183433008867477123361293731188750799604037984091200664006041213125862220985256194660745802563188633314742684868998566600086325935117661169872153895651273447603742244353569412545036004076756837896699174478498803404408787103179343609647550419873848751055867269724571898919744596240949752264096429748676540643525112512970556040360228151906215164425971240689624037265636108306457724061586044577846578738769479525877143545498671608958976280306446882449068154229125340351715105032193384296848998788768664702691046135244577838314806004774457075775708055384584224245893185063366162840593932157275804333811846418513268571615846501112843511062389621589152315685838286020121402120572868248115771740548665175928979182271600192882318223478994550248717796578097046779563820095041531007374720234911808599080922657247718544346598193870565366886940072935814886316615255128858861233034593390862969475825002962663288123504158069985362496801520700259471066108680869410256430921760170679054530203207370540510111664085756526913319273822079126433692804924325630978914535928190885359342492276269439134806050557497944233141047758299433864790391459163506803224485559637951335942141177905116043293231430288501499458625215534774066125987174047703891243888987004243888959197308305141613813607307122985046277569034116167247352743931395691291830836077980793921808844575840271362311883950055539982418066935683345006023856899933786991129150732484261142763426101226186238014714025362071377765490016145430866956655018848740482577476151316460579762253555522733701364745460094787246180434546693672552092218996192513822346748143812533598025835449071274316839316869280103145489627822899839430244395996674098624205517968467289960618069725815830496978491082843725819653775252283421192403166610123545412690265378532035948936218679808183831422657525925638374196089034791736761638107477171091992742237009231176331335965099115317083167458612289405027097317429662601901710927615767486537116950663179603466885006374666818738468863410575805001724467802286428775939831374899707396260030385515097947932054863428073483812717375768667836927643619602306725541337325401226113682875645570253303675280370336219190152575661951603908590400067635123412121759858466245915379641616255462006347786333232003322298263682325629992824443359963592547904141589325071664425847446978433937103602589403044409509391715212011576223264198848868537097824949954055009922563188490353903985581300873375420209446976235668491672206232393732467576298764787360464088907571007418114279004391542485049464439828128417902489268240915613856028938623526633925967155174635968736809722005256616892959958300773434584065430042339775085866136533575522928004938256372370862637191160562963996454867068692351976859627388610256741207077293003849004058080709428303971078672043052463751471945153266161012316998068046416376320521965818177818690506828543388055004595143549625580313046395595969826827809550230852896825488099051307654503915310411280176937140499201115292787480152357479593489699705495130984106483891807423650795980954054670322883254038711133750428631020777572774825111527331089903250515416436623770966872738017577630274935427169970842200709191273671008825836935515322407111750273349740191197278285430874531399540701732989350119636491613059155009660183292873263908280420420954002081782470897107046946170276276264886951982633149804670924122640281664653360731215701965791287483684500424374516009402014325481653839511241016765085502178690296728933955233774472534612900526015893805657869889984318869955409354031981299351647898876560396414626022622467778690707613194852039658494205381288119062470528818989092112483922249099803222325260918690640777900549847921697537499954660345344033248667636150276097204031773513501505925544231072651550849984093878796650138416765596236254749261370197907600585000824961924073257822927723270798745375719116929867679934790492899244943141174289729435279964981239975808294431560686067396413705427046113894641524946852902169294864951711559130927748875757929143651824988973117303176186126305301231346110520778855570948935851377440518840758127940131756070725491612289680068317181852108904333990384222176227848439784442286973191584475819811552341801288832662154891711840033823668406643608838239518564147138435442207428112134584034166480945153790557761654795314472027812327291573289870486582453586685853017334766847613548729597076322341820836151641117064236076470447241922894913295368789778001925190439176248291908561802744865797245917206076535773105704224298079738705496426413560387179651718017022281646091421043159985610410292126229865310902140316893186843195511777592693746135675926053504938886519284293439337692515525182674281846914198732603511294414134373903639076534958929115971622321314756693814919571453344971271385964483279627871106471864399984702851767133284671706869524465114422941457586372264251486814735189596480713263763434907757034944979822306878443437348639156939826123409302524772966700759431583090837867709207733928433883290143099976188429785158924602958962865430702323820107459996942098870712410442099840228749271252897767526548852652656401299919555042596509280040055814622814100714222324982680601279920371406492778266194494306216614764227795524176006266847863309932318628711347444133851576942164840268483104429844787926865960800328369467716092812811984346207084347113881587931438154614572245789102830780060467446147806687130144748945124683964118591756677454842149344840842404552493835335456918247992735195540194441532018747356435929392457902346320210963829020115422057940138009462984769972140171084097303152607615731978745109433605731647907987445739203501635112164919381310849972435054375688240540181330187749146058839787622927409655984746861363463536101139340121477182682164156269965893750618888453465194721175774237863261414553436001360612061146457425169802732301282874926710443959104089265752866327968395112507728673359087582054415040617004421634387108804276258261999484676051599145467997834677454201529314340949285675634378508764066187044679126325576379275046721929681535417686931169884115271233208345812250688080194357419575433566168243242189677278427106936926514431361508881920953357706687473288773946448775662800080531207947002869819406719339955106056769630923589768997304693478708150672657119137030955066370552719768757075874783618820604599460302978281871830418216209350986649997403398443070429681376900274177077358486629447062363025868948276525053665778629732127453264146834296679997904404882921410646726425404626678071350269116813850415897321148285626591371705252875155312004553072718571964154083281195679764631148631487764747449624860162340460527825318438616159882985212662074077683647326425651096836788294761823676521859608313177890408282234866029397156321301137368022751755629682349461156369780769960015959376697817517229597868898002699320077822989025596401342636374010952769802175597076940686586092321870937511798479642007386689661854496686387275122586185710858069022694069931445961216751269882624576720870907138086945462183364286892015246277306884995638912510449487522542295501708387235549164928746231278600171606375573558438189677178514888137924109780618234426569668318783431747737391280042430909708570786548771800182613348599023802265058233187720236421003105133070440697317357114835816522386339958751389935815955934818132084505232010413590631871979873562905991717546823792048838911844402988137571745099096767346631601577045280688795102844098024051307676288968107156051199500032094719505670227149004564077788748001894470067027950412791212978742135579346200899129493394536957684276351907074377446012326604141912688781848255028420532302968836966420732814268433994406648861092071219427019313592736047342159599371890811068151629474127749281922690752161044842972275382123635681829722008175717898394580034284083779831165622832147891742261269802491575040729872369622895720962931363518342026871917675416446438532403349155855776158140852211278600854800817611130614495213138776655374835599681878878609228389141554300153223958170241625949677396894018064762678824655150911377249987648314945140741429002583321218482910743638291985924900892297753399918247472934332180265965743655247674678020730958881586766692255449027260563480572315929817478618227680809338825251730862558013905977212899356840596068016521690484607952202263607076077117166246175752319883854574920722505969645464656115355802207292196425259279156679916628929728679093662091428720109345294266491606216705534890409445857771318370792340018325196496847083252195927982987020102753286910311635404774143086688356426449225597220021587470323680980468375253858366420131298390585151492986392460942425554439227220791530921986500585823769823092792469760269819048974282428307363278790021979669823207439164178752443745270651684215529628774619134722888234475233262112597114100964414983190262119168008110198865721650297705532851867474750794970246179117892872763741912541771901912720645550794484661592039109095995395094183378930488355521802346058840255254437407908654069692137439327646654364394079566280170906999958953552600722597206972861250369916529844593110836470712041719064148273620277005996184043566032330696402915968400413146826215406786282263889243393053855559322133917492572017710007151877015688615919918090038504117584873356724444482069404306612522837023267152240565169882280916863620482841247047499645230574409225125273889418400685682656084386169335683630624625703336763778198331403648446411065727326309524816051154150781939784505230191648328761221420731084294873896053869178111844156214122522591819162205351019675415067754193302317644020098849126120501871934060293710611356693161266623064788558554116049034363620128855006528600369184622321478322710430280526247678705411111641238473440335636443901378084718744404173192575505795460604377922036758523726750329419362205416870600384580526970028443245195749646308040492568873338301959740573616374879393761192003729025615999166073768526675851660464515495663383258813605496491428612229452796928925645670663812406110632371320641331534602338115880823323297514434174544550998863359325847025084438702419748010605533387464313618431026561096026500102163010593647674695892752830254763428441822606679802874556956064975114528236486751582871661304829907276756739374494721933398164339593591022346322392473263996582927033280897935881603874481149013512983789989619277518561194522878073127426700198632058344412736654761323295295360942557483027700556414403653219298035176023040182400614729619767779560410599432289672230547162793134453046008563729059477933034495319525579408482544166929402959807382858071940885572716458471817456626570280998028901149123896942935054381311292812254943835205402254943904699186820702536186948957930798937676951032401227619283694671058706772269969683546611534601844325522542802730829235335484617730821801644639559411458825203732328843816335711745736195326759858578511122598463947834758403363925127580448106037278914502694105499705998482363717618393501785350102081786441029196574679492504414736288241557554229108440868182133081644959051334498388796170478727122557802430049219069451824993819587613291923113977281672211752119247076655531457509895957010546417705917753496603660320392087786304997595586430231158254233257900365599315931874873431344559984421745062399724857456206764064156083811551512902641670264426376290284835750265248380979551261892595550689985054442556321664653965243930152525429460297090256293423451573376053781125669978092005962116534257514170511415079799637135460374638540513496934988547156642605751946488005174840751884438832544160351590276185900694494567240590219072118959017538203282489723522407431206254660142175988328935417047717108355005864281537097426703916626103917963788641238976405223869503531174242916915874666805643019336581573145028721076625436060080517650421204625308392251593012254320026795807099475002083025358048458034905374269834623362570338466858817335742236918749993101184036163407071636022909898282191434315226257414058831484484145420626953825320748378372901119370196259052485145225344207229982700326070160891962346142186487754055850618532984809446237394929175986514329177404716897534142876827432955040550206574576950531921814725728819067094745526526312942663482217114848380224702317500930488646480940088793931794054282330068190294303476175023042136384850754003853628710495117542595819855777585664670898902980284135401537841841779064454981669968008131073678461895759487038444966961768643104741683920694949280035038243718790004937924344857420680407585731547015131779156754590055969627023776144543568280653166077009523557067632095051378317230130960662399768683877092152713137478552627049755744541733991211238312201726103047630531400755305476931724538318904129154574629506959123119685582728433458221278002401676659283568098908393525477329340158302788710459373897430615634686686954628914985609648386319244324781516661509823955586328251289416130634650573432088685274625698932191697372823389403493041022004191929935306395704736466535962169463247208015582641468294990499042354057048503864481009248743693001779117855015035705168955808220815831230000403774960805762509824447329963831164193147509010761572032539761928068032719969867095239317406773464096137745335736446969417735311398916809152115115119645859877632781906668077525613269338815884168147776203469259336209650841340415415585920268053240017980773350886611719562777199167335729357764248119057360265873305391148854984746713394423448056763299708288465609949379579329809672251565258874237370307691877003525955628580168998508404202006226073209105926428444557662420449989280927008388651825613182762144386158126197068800730057118428479453847508568341936303858443553364091596198733649356744341352353041742913141191809470386212456478202846877761075566166660586840234279608363342351855590473620497805589981245503607907514524393692865734183422581401543906210677656105981033608050777510355895772048493548086226436104209231095199046351303737703853313860083944943842912395355695825499574572581575388814919691990218729626612005074090072093664753786394054177706261520835866135213499891099400406340311457107601118981626847936095045952072746054821560908879071876856218138526091591628961236184149227514018681112148977478028253474635716867279933586133490644176203432719434576808546567250020826772214518090583297352172543636060861778774855023449742839292909146787323506763881186075591590792277157518746050127972838955956374427545122904368049788376338702938761055140058132913158540557640758511999753304720019337407009580861361737272909918897445693202972466038789993502010708625357427109318624212676634257070793795023426838192107021986648899551709661423730718088617672741755371822720273389588765907993331547152836407413705080911239824892678969352910819400778916085957354759700784523388217248191705522916887498258875585365111314628897374885693575978755526221521200741444524477315365847733625020072659965345940952343412787052489998701270428789934901604192861191820905479972949309617561686193210054153797085177086851754515660506647594441459510409452089920125764430534407063512464034696400934444446806706156523325241885622095609170406555961345278340921091574850538574385407351345873693369778665941885523614308466805982495218741891441875348868350798266312823124531133135806070524195102680824735653032731081921354883673947541677314411558726592969432370096595481340532287211727108451340664024119281152725224618576065801805201695390129219515559090201762173304496036859390586621898827608313648816574625850004305730919821252493734859336956554269509334475503287121200586580026107247586592299836071446751763091430368614007475578574777653838668356158216303611284686627327675349309944434495781417672823257501393347506126434640172759168403702067607170446437124844427876980303485093651318493064300335032479435313384761286265439106787700201828954983863425242924212931342321817835554080100307916252230470460345093719736537902192694309378241929378071255663485075894334017270967344836267904434867275881054881369234630864404947105818031902438910797285047596313726727905576645836357782994273405541199717445711405113664798698057951545544978120329482436079653430406006745618720668683119783655926961112269884035450849027986496363785190130758502785509650250063048610963353359802426841204609242123095399626668841314567163320515192510311501980717524015635221895905469255841375700263345035444555248361213740540220533054794294291471940363155990234942404342032950795103853636157157976122915332616322602770499680230680681048954373631205692423200381295702913391898068332622478397127707599084327295730670898761462351271196196177101391458399561643917128954581026758047399351600168032564597350734398271461544259870829073395097519415656794783657823780502710689764320289875373993601136394933742453847392946267060241396338662902230361603075000051701874872884431958094565221669697694496493889389989419358222048122442181241062125830538084202063541683657292649185915090417926841482966026205223564240576418900232744794468278976627985396774701076717078141436148213189071576904752961164995210954858938570859094867833485429486709552010593175081043863559783057772992188429856904668223305122296949412391876932094675044346963925090584204570140959231951352155146242885904187533903925477556381411688748448148266305089570982178471577462517502287055543003912453419776413191681507947319961669145734994021506150934398478102998624721361110010626565615671077856305248557239607995188189954113140789076949765107100232699528371964818720369997956770612198187692709371009782879848925978842377056725332453931202253655122041331046114920750199785654445462884356531991529494775896261669386291435476302666413185578265988095220764449949994469529660712433183771211065959787316891297757077774064277959640180683575669593036730738150741329342243169053929031912047881079127411499722430878031220594388855549172582620645208770286433915286733669586624676606649528551523469703397023460863792220780728208960835286731689817312183456972023438297209556106948498068715073577327936432206582751853419767833225029932349699461657723581526931705089340780152877635239792748399287412030704230528231843458453311147207714654908309017128961791753714665948403789097646856712504420685622124342290445404686565523056324467697030741496393248414000037175664705556358539066796801642261600620316794728143877565452275839119111703470111528320066427601129641735487758874568526919004205201533402142970044963247283770837364943335407770351845221749595167446309563141422735831769639827259189820460496071158106939567153963185550456913348374133886379555240042976269837449490792905832886722240987848805545540948634845694372109278924925402760659022566679509522413300486282727298102416765657515317908586176042205691386659262092099947225319963584209003096046968929984770592307858636710676253354133369231118777804641431788342334752978980242776188420993966688144582440729041912171213340299772997023090351132641178569608153669738191405188134062476282552338787349978526489431394155976623082103596623056663260685391045503717752799108854389506302967558146818496123628788971826876797139499453940888310536199832498480419856060736172147570413131162447926562115491825130790829030786837567008133673044602201581955972432849993431401141765850829966539335066349603162625830386097686960525779451177432226627521212471012102454004776104487230841572501793736674637456152058738435580482186127803704172452852361501409580087337474095662120295688915433716993615316963679163663349178728607326958595257219298851888742542760673184233914266542688057888307761349089686244704747503298254194284839575297695248495093612017865049709249181021887613094951274688206413378483452615913553154576786503023228847918531396672437057052000106139604023997642404048549033930734908761422471685222444426366997834631862665241842762568418103198281230560212371361089844051798015134740537744150752360804268787220295265532943941761311165788473480026050868960722787923650698452750924269795371502757050354750912600633420342243359191770136211332325139059388914069827778843286473448308454186447737294758635303057676494770426536138207497223758112098670222473205139909932066186272167223701192734700635973518607828444116089228511156127877445246254316858768819081062234435465125798719566518476662055801423809124833615265480211895508875064653025392554343486710188060603399361458559311581801161003788618512153799953789708268192043936092186862924450732430086920971392848812013145221122097532984682195352804340417164899491250303206187309271691411001986331223713786454690064305473972385323316333396133307568013393070766668050965632138372536173958955613214249056726397939313720998240748515888224243805028610179539064468136942754865045603877633486867919491456601064467421986684219567769453481622979084936449659919720599693251145336355167980021473191816549624307821601028135460369593576967599773765110919419496300960002454073033959810748407177758990723774883661615610171075185790674493872428758857587789841868329758758867651771722248781257720464425087374847671765050720308733308228738406341800771608976119681840923641666544173039511668320906891142696953926456586167538717360808390029109763112033042245073643132837709871042293282988650889075013635761548456425623945375518127337222282770239814416106331222510969722192755130228486141009070796063689938368849796733537534653035159058118761094454559758548203732979674431750872640230573945309437647349779417941839383758011646380004692949892338465266205167761287260695775106738053713454355048802619945791075876098814791596067663406709704958714551072003896763154369981297910878109065248587882309398459310035610412781972397930471626536890350048027090754450982752887444956984502202636168235849233448213009230406636251993524671782547969880125426075773183507498759486945447490042182595718577847858582209154923617513287471059390975977032697625216774815226388840972375203266221017190905540267820733017917700210252957447934875837850867755038931897864430763996324560011159275721336141949193333927723725541309985319203926482686293740763036382371593671473127501552812413942341177684510815240655741879731931589501158367995773073672153530611562993919686772372353030494570368107346097659793687503204916869049751040803093279723883076284331405701743192327613202652371236820862807242143755671924145723179788439683214869077302801718452624319194935386359191491650140748406703406214939077994746483580148031770656208778908518590908605344697388866058170835601446012986050248728509788197869465841851046832403359349793313471788758936770259916491088883320845350600813662407316850106140433627504225775454201229882166035555648683841895520338826505070173644604109529521507841267834282833199235379360593989941383496569060252911759067158305465862762075109834988048198146535286856664922859867064463015570937750067200272411946304146609199390541299990599580331292118837955498560758865626269871044396109165674417935402660490264992886130220529804904336046918048443604517089324538751520015702589785926997470518969971963588682212369120079485383449185345040461711015433537957475140841826931179298684959634959749358180008222573989890636919214148159023151234201754919822922699585150172026940788551147243295386470990427689974591088277350269811080000841344517654463651683338706119715669591463685857973174890882015488433376060271756058969900314482415562485387329668232673304351165190361890285039130436724217366962146359689112288470807950941162516151173001322525968504503892030218753771412053758610525842050154834177659542078918259148211220957874684521479178556849270250405818302786721420857284245847532054573271155311065021778553327681572095212295832443422547371280637776000596170921766273649977013556465440573321468485141431091205867366242640502664677671571385046170210032955015073072708631079553870272651366104842066936976172745299269091669648504789846891674362714775758972047998513734708581781939566736531794158296241939540519888875292565771389513354923647973668563092792706114840255384209052955406845989040647775284469405719150384350992640472767367020350107407317723400860675631464146610471039950519513668206384139943620325463141129850295102881881518457304654340950007421965669491777699700016139348752674179915187226132700146010259147767754444605577736363640283388593545292244684895115197511215422903411398064367509166090733487408295689352601862217848213170485072238122262638141792301895561397997851700138738367506132010902731282097248264438060379439734808242431535623046060370048146841067400086537534172582635627136566993001606345829306604995155323222013257834939315211949805515405219002278028801165904957536859392619936133153352483240836662565982833188701318473843493247663949031128521197179831567496053266629917587730159417333823751630966953258877654041964424376721731071571719404183082714327878866459303324809968784707566601143389825311004127084486733377240701499060249553181425246303472970322124119137295454671245434667241911845882297495749576401515476411206679970541105217550136902738908526883269770259416810337199556216126853437326154837646182596655663981291327689009439398345506158288365512957193535901367318435277479776793621355312037264087957351391807564355031025419177268342770520657455148046995222378199235764497288455033857677993757431215625162896266606132388587768350263300717925447590725476745816314801542009499462316889235416065147101729434427432214397976129589777521704515752962993397650022052472319286334527731663257053019588673664188297648550663534421285147432058027336145099658360597293457194663152837613269958877420253140006325009381892811932246602706343792811599722412421283981560662038072941626910005031857659499981826122866383059238996394949913822117766824354991487467627687587445179251263925083317206202885195229590472384351732359417307351803716182376877169431347095473173723957661324163295008316334058371467052744970413551538497352037684907119567952849194952291930248464729311830221542326741765756661391038195324104145865460198887689665595588683483303374788022420522860730720279723357027347697643147668557115628313810922683194174353978946833583694098098819608238822886822914353235304756355931646595013788268360880646326923219879995051838306152291918496142819884058465039890914783183024635410506591604864793767526122336828406737050647509049328670281709155594661793756175267697278182085271769712140125019166767114690862831405767566541084557017089491135863124529970536156722657411027082814993285639464323196869955301278376528476090702712140290404626863545412272148339377776251717918237956019769152088938916759499865173359940345816479837044231091949864165438679941828551318638654125443399987661138842724812372163845917439636272792400912888435969826495531578498586710746668500749200495186446246964905830690588795374664890356983053796882734468078593164421201778036108620356991614008034807966568410351053936795009619370743551130828099330641791340836911466322909603132790280041033838571723209779358132712134739934728621278307024313124877385497900528154858162313254136411239603546627657169087550295619948052108487360421838213952525290507927806143059853904468994336886827293384736380134096283053848428297895999581287945653900492481704179555687831986429434525986278313831497572862223969868871329395418818841382854670409399674409562550385945429247099671269065360845880885809343812745519961141113139535866355268177235567219471708192791953620612383029418575142286401934362105968898452327633458689689058150313000862545041771855806286556027219849960784174286363833566154007293426136402275230467156429711678325044878651915325359184358849056611015227476690221168787771281875795038786783034328908919229204910867663400508431226137000930830375449699522593322285923691564104127743799494105193998014345391710991177164817711639991270003297810554622483097555180887301359368191869551354785374744427692463459004054415483536822574430247112165837140955256518705984968539380899592235345055994254443947168267807788885798431830254268961869596953314994587298553681010649415229121567117368634949275621876863819622373290567792451334033490954686401666925819239005851144899512472009079375662553572535181664852629666153920660071179454882450672881415416447538730166101262235340434421549443689061472938091459436412463302722863112398499911988525289099754632672081229926686186429897856137489867998178364833851423910426042197967974528610360424293845560059622752776833701877879758378365567370449216544170391658746177865721190917565886538462562956437100272168403473700180607004623862851490145521550854941809633528431926245456145172692738101213399371925196290401223912972387696981412776595667317041982896965575847716364842847871980206531929035837139193797027774154905112333250904403454030134385640332048522965667177675874635798633975455321106851948888632695518213211926059600608438428398647242177204662049614470765635225452260131258562324297744777372880962015526560409846049613125345903491419212038063882678819404703029333585053137878679201724864885476441134259836011543977206870510758438817583287838410894007794710535273630089384974611417719574015082865377123104104679627339529687082286005347507641626877917873214583264405875591076036900936913956997418572634080065629030482775009882172323119439311871398266903957112663276072199541336113621693557091016727205120860905271101883259198448232401539056533370514637064664322308130121984624844419051845056212827898499445979456396773371277506429153375700912630878924039751585485028732988195655340206465801467079840356263465996296388195520639443567170869716623681773607958949867647558732983842280582876097647710883124125501221070727467280758976295645600797524293208496776719464978727196458166072812278838146639887769818462121026098127710507695084024254676940116153165633070025249739060857240021045681916226048055589024397283540881948797173530287555851151940295543789545829520423728291882270442968459665644688897252687942583382131794616630852684310028774798616388242735385859303125801256323290214284863540880161946260458961780083810961538841286193766539418251077096420712651302078873202905341774643694499394881389577069804250902764482398791394614747099122984345092343979187892982934153681136644019975927475515584230475240856624184982033312866865879280441736677451171210920741751453818730134223821115744385956127795596925798415697361154637738406520830650322729233790471771364393400096975348304204712000334572795691036109629124277124404134990733053789796125390318158185015996422900295525224103234732716815165664722170149689100943919813062963184513310134186417966750881416548770172465754744138871958654017377269701321162901866983763367087487227917892480628683704251479090409960937016940013455847038626842284706062420137004258678063967526310042089048689817736169400514314597896751175956038830316650864502638712275538352615701670247645007924443574994606069699015189810222653808809216706249484464691665298591427718777391923726698423039405740861976604070873901830388319230392427629051400499267875994344025898570673658177090712881544787879731911012756080244567383962311777705378736242071524007182187704533217712573759942827529224147585955742391274349466266838478146167769485211940713131232994393473685691746794357974890026646233218670495765803195934797306279124740461337455237966182503034966818718050824095574700118511883879841131928778418186929101027792229609205803871219843516661675967775372743240257906219649432713587867107343874952595121961493363613946566741974322844097069175933951390978655251032376814977202425094000721791258513324251493957370507087510207491444514535140011145219095302533619275343826767827188923595354925488491778365428862017747034710261147005534708562663613767491123321683526806073048491052783590852938971417488957451866369483056810138304295756976409069535619657714284418217754974206229566588758086411352924420580610913844084561958234185507510375665077780032707712595389007140875472805568194964890487764592331733496290034901224799902279480995099436366817205865927524831472201368392537762483577875265047068048578659729043487775150955502531240739237468447173198881093893996621179659378754458861973884000845141176172428593539149708168050971607486736670976052279285084761470855017022745605140258130293690185862676012089059089006357060092734070861203894777725165802408488671543042040750180499218116802470724735766807065986816270527629134588821133547015412531994795633637039702912532252547446519656394240902605986118385814368298324418414723424575574115111088688177255836276320766440216825280916626865339462966585258590605791724593103209638949537765572799845211712540777279640983451445503912964707326072607153596310105265718607376549432583351976772302774990864228973224465664143221105914151859466331455017404848910747328155060001957607778491848574479857409056935146028444117439521896826690857623325189949853776030281927947756138104585221773954432332477555037024662043981346400194509423054411467092913773901749841311752444784212784393922703664582464594508074093282600761134340288523311779796551618011067436289568613562134485321791455073027432812195289523434105902083956775259434017715308152332553507001451126783561690610367645503696476418722242274573625599261679288035264709952820906445271553805244148075871299740562246915592656556404631016755574681025501025882184231464893258903341012696915369675517918843446249302711838392701978514479710536833937120288051933736172575905111258539457107791728761249555133761622212176088803715809543578523308512099787452784117627318126500135938948408336783188924666444652865907631158510406114598972068982512654452836606798961816511168046237025201314608819624505991170660405044999794251133933695926087988278609071126665413896699676029754727271845367955257222194669550251488593835594460023540949361297986525351847329466002500956711246247027897676665414907397458285031027417293645091795056673913345766965339066013675133941582876830266445377744986593440692991561719120101072211207568613020000754360655208794285477165654048658962620408611838244759626244760189912126552878196271642202384594731765754976233958444374350309452666277347853384211542553469377310674556762688136948415485224810355081180068712298614810508531068162176382046035148840232994050082025098668235590547665299569273336345882419373575320314401766917707933572059908431568932046294036095754703363910933357468721190239521761352969811866276350088732905678601721707427292369337957414368254959809473556567454270941569536037235157555026867518538822024584232677817112397619432358965115718860172916380272140622811115079631621127417480235214891681197846163557769071464101381290748385601626490075024981220423744900721181017126405238406533628453674261036680527702572490545409174885136186153002547253801165240673303939452208311562838973241217065224512785846473656807579175470954647216195538342196569105266197083080901353991369538355107810102620793232918407803981012787468301048778791932497444218157112040874361696034335204328699179600007409689055818864509847976635258298563561338577894278012703237231033087504864132571631856654871649920655320752165373216093212699204557514877126724530330069092777450207958033566034544473447942703406216995603450596454041640669419588792673566362810711837162859350048719621251197420949019931282329453739335117273356793663794668086171664734332036669844901363748358376705575409316412714044284957240625924229801328669074511525746362070779798652825056258086068270979521106005224457609287041386847187570408450465467243143139386321470494171339158711320867651215200728393877500338713528521760616629635045338508906277731844942634170727365031461911488908919653163662930242675900113664001969306756371124154755400804146112447990889247947310818280457413808930820793985343669257018548170554821478915834282312140983352928904682416369975722002971215174535980536418350372542983453174251717162833778369093839204471622112512263153589381946627212684264312039841919784055198852026346423317149833796597994125294563274707705247901705658721315556326080220115854945604722490490349455453429748838173799416366912981030767499927145991046705705378933670929134315617212060597938680090662623081243841831047849397664682997333548221803275125659865328291294200713818118672914081653183413802654307967148086837550518803230313227878720351678701402304719443695548574240325174633671444415584564224378589563288678050912418462937728219452968987708334043538132288362978260922667731287927548662240657373339554420522037780959913529001937512148564395600589834668323387594908297386149236198471062517386205948017366370100497711692703236364595064020005103767495011764573418200185275112649614268075096930175864680503395500915997989876997414456978326223871280692857654240367022173368167588865531498744799274328923737049638554147200338170400674466262860536374390525436673441717459893347734978355769081770517432787364232231526609350852914939474026468841532947798099566067816700665475242160086252230092936543672164346049481434326076142454696910717010767870307258060507509608111447963216087111467743422805729633391995358941475194121133798777347902090483636028341237621043497224814928019810557389806840830379475804401260263397850095759555691922929041265382815266285865371686603444862792607859362889847367625318298035319041579358334704776978868638042604085558816813470896777659119351658364706937528033162490724144848167069729246032830837377474606757746893149883847621168043267578541229623026482456659467911661306962357761754642767790364637834203215533342390932058766749762722152989760977484189997920525013645066969681971694307984667887677794395743100961687042591307958190809600140970107948748891220485581027829951065674379582022040847642721530868305043243948882333062132444304763541055724767292816602303852735876203567528028266704223929519208132725587030768189214347832469312719763609659957068985125447048999648769629787314999467704721935660184940597007191824940415053628017679544892435554203403964856656578799564170446522686883995993350706146229421328817932216628156174283876169608522502205844749235185061742747420642015035862854809982127158982006477795834132529418206582640346049194303599577628957118724228929268209239804348160429422032241216948200602018083634435149759118744752316796884377925653192689033185528571190361303469094785149264548942114758352471221754518182353881835779077163433587435983025046429704491052363665624563301846143626086879404192934502583629525167797561801748700201462171630171279885170150242850315812631942538451833422024886048067242632611465628155491631848488663209933187481448498757676112272511457208163916237080077773433582847660770224721759475157393593072356094796046954153905063199359588347586278471795628723190262475377133149182507550573638942384845582302857772041148070491424002568488550423880195510518944004165674109851766146245508827454150877041661031342875391073381470964544484942734441110979628122105369383852247839643107325555118029029966195880539253999630641638816843832724986761292246829505881455610850002206275135989042930556222519756352364956246017361194589770085280904532840534444981551567947438037067607694159788605725463138878305428761717310612905380507424428844120719300529373483567372137957767083583476345112352633483579736840954548663623018065986785708015119215863521195149476556878459500866377738835141707073934333119222653015609473302898092421635912605108764449581636395965253506869355738598880631774342131393329084343815318163184996315431145460986050057255478021504035598903018146792364907623334837674279220273936619322726694489680525028388978041844997759201699851798432888015642992940224658633670816932457001595983636669721029528383148710996646487823149516588301067585539579423404453602214572879328013398931567426553701192926634276765092792152220638275748816242792652155984551487464627234260260226291923514963467986362431332111981760635506921405619798888559264298544207928210657127908446553001582730554709235703993069252675221776850940629777921709659997915399815061028494737924915890109496588792301483511901111098875937901818145185120377037941986938508185479036482967921669673572782009486059922198425501491464208886631390160722081100730429239973518338685417634557178088209877352794764450752908338117528684882066862079911394963530302162711566200908790643378609844283034252879667883979459924449818679565937097751662030623928693631347175365690902585785886232903143346257269302515993275747108571879777829497189294698195236680830766640506648537704476441438138189552325397261093226075697212561320524196935724794698669899197259130799488946407523186118123170381417373206758613559103167625806013738943802916048772059230292793670284108828075267913901356165982151308961546354321831563039362052234234601069569492872311469226907602674683882579935375935696512472312015203279147906300985111985826194447055826396236782189009199755380341242081104849662835772481826347256740741358895954135708004403255489752434896419555134356893528478700756740814447076528295279534379530226398731488397534297728801989646430815430389172962129459309813746910055619289243392539437114879804752679921143159016518245820089708709499219664364607067582840320057927127448962100921424008879354751700549109697842101923697535642290706507169819694788486080038098360812146531588923324725075258013237241993049857699458071107037882621311901466004301300013998996940323317142115786613391786008326740587874108853553406263682848886732782582395895186470801825959674362150516788448024891183038470953284265570689602119868376033671841609144994494512967251378223674950490262846688124133744716129722766509458422387254342343378796559316201520208048066918430990766720998081034263427179264077167627592468884074418012246550877819997286695849791564921296768428232152247682583403768454672391607089884807308446860456600117294338367750174666203325987369716112642595606180211952110095414750696908653547644569401868013235042642334611389542931414753032827643210513728083399595755413921534192691107486499705680669578913723228726326068257742925550049907135074042664957414737196796040183188931351831119689102172315009316339031083957856808339391728637333809664310673171512897265910920007645310653466274601883158191709088420759228548420311409181632856708744353060539433486883200089786729779730817014584559503116177670365012590720484615430393146214604403510677953349874841975691995430473264112942209723307176768806426318717649783099541190261821462766014682172163252372377181713795400945520383347230541909392464783248313372748549307499409992046984039187526254083614261839515554043732428565556408100339470558012142178704193113903612192755788892175604518250980982359760535925501226944911943979755456207018006900542896269440971265798070724827166947139772317843251186516418672239024138397958311032170942027074712573654891507087897878178187810175011576810961531221727533151046110527237503606311915172379041588379895298177864394777828794516855036721347254500742858016150808766615753090099994146897637700446495502246976028142542576549178464477687553313196575063106155798586960296768477032689232934961193526385966562749972873307367884174143074193976386215982032168249334381524681174276213956407544527137501492499671213956268996959210566697504598713462271277162700761566014959008848365309897479097207298838454185430292123781922111454274880474684632447731382927564331087211174523399706204675745123340264809841473718296292573075421107175680189268673820705303493511155795586327981787150917892843998200120299308988788129663341757875935963738010387655962111430852712497308248612156371520260523516795564629924328221304155210350986849823349698655249157986447373011606037817674994712825372392102243446933399578529194911663374658762994153350473970315503820791813472867400941672006709467709785432679906810748753845637597376623812159554896268080647407476451882500108349709802089675001002777997835143123333432444928596985680254325237274000983994795114959451201983193651396790429090518257642342365942725126808426884539002216146220240518714149615176099866447419252483408812908807695329135163284794169376210766401665100384667593479795872484411779501250176961214387780315071202566138280270790970827836678303021656010506066546438467305146357909371802756820981341351600300334119178625132751178652955436502638032619761989850725939793394371920629920049152303343324830300005979373618535024312322564695956403844065297432374353824942570942990932544091948846602022727399462498547789401980931474439976164734075035854563388655901355064162137694245213960715702540282595296500828632144315427276645840955111046652856017545109337048588388988903907241708153041899205903113173384148874214473582093812325501162408887896457814111111210113494342981969900075136271730462860168796173450762638510484191139675919292661392155093832438997781911547800148682173210201528102117601374342847619337462054784263840117962008995764680570265889709413097911730224405275672470012971742242525434183702318190757062366829636014064754303976943797712839759231470518813186285031534519709340294592740240780460569892977276622064031545036295979881695751074984535916045945815198898388224853363558987685648114305910638800999564385242344057954742453320099763138042127072884645839732584671641738139453929689934521082278872063465683331011586686315096166236589372195478772898056458634178464549901791994390153187220763885750934870494443022560622885129111784573037822654713357288607122643768843493414343803011499102903699536866946792530083403694328869084274708529285247476956523710026669339241249651904178742675809970971579153378750708890516493474427350228500749924247664019544031525734430265751207526913683925376926212678733866237366008764177850788850097948305299817566262223783658991294666346020415530812876326274991400517039211370980724380739750524338582241562818289194181113391997208191490198571459244665927366536233056035708678414941018149382693863678589600373237941301748773846392245211921316047573261657891303122998646285177165244445522208976424791590473475581027896784754052578915098705908042120298921679672113450193428300156870325310343941822242642911353016109906305973411114533813397436651235653079594738679431958345315461799354382352048843256228105302933671649798137413025788541636694504645627238835868778523883345413035933370146829919495187583771174011961238195866740291198661681976847808505998123138692702536649457765368914627263686578735682930818778792340331330904106108596601466514531773702496311637219195295677396988021808035086061337964196815705535105077147310479016482764186013519149763945290607193723776080629955088838494225868858474631453451533577774819443182864249800936152851504419606706493396877039564349695140564956163638244758600694660493775280850860993717183369078961739001003793079299449973239679489874920383096074118885808038927795252820419654624824396520473234493514643115583517304126824032721177794829937706913240395914887154530020703516710858828068115423718302016066540055475081505563810344795415202576319064078970138345136551769388447735783585718782870105058147176792608135188049793075365427517474944330299422200296218999952748622917249513406572234664496337565177797791411768841668150605466182405109595393117689357580667105343970760069972201976972819128088289499040005370943251014934609465215832097758296192649953448513458721217033804232121018392689905488467561262307384662867102923410017290482479217169709973560060638130370619888224412174259684120242548885825464901820210742095663752061212235683301335702713227238514357761125135596493828591785432682235464997763056853618494441133416703268295520054180082789715643571315901481502078241490677577629814554523956813841868914587816421887205250366489599827271897785950913532041223348622625276045151922849743216696030936709238513395869268359937698963668880022602644325813775750486853828452038224999095947085573111610054219945718676870165087504200710258998971323512111864028446734682460423812669521913987741286389508608544514038095248613788257278566927456095671073661027640186867389347250545559715221824321255541698053247939073694391468540993480057135668794617777745275545979983541362546133303593614602714358153087019968105345356250966016521078650664766749166402300655508147403754569960830625946845358287659332030256991566641587289424442068103137552351614128289239832440779335988380334586085456166481338929094088257945708938597183053339653264097334711743768961729642450099288359181278002436306668968354580831678854940603538361853453430220399551923018042727256478352937246832425920053985677886905029805838808644370334288772815440540228941688627935292355462365391390368353198182148510268507658987162378955128526966632585168975561269363040050300551024338354201034693664060157896790996950244802362958135533131173508158069248461774980021561193785983269382349710477093840652770659723137463194044601797921695932085558949817405033535897827108900642082968025388034068184934758745089223266137607745937249355370151976491430156509382855771410727679070069478336766937647146732618214533143043561827765264011698729765541855554082497503667068815884248656475722172689076710655543675372612341895891110775253773509832572580817624998890046503698031405879249690617755063595283569790714933753802057767814205191267337646191114827815512994787799322071783546948712682220705864909792084664688425206160810397576437924856112418999755724312368591453427654916892309074023832027938464915554682599293257414811532277027090058353896004340905209537155606531730962829919063274160229149987430707520664723130611554436181812685626275764906989756468455045647169424637630846259243077525600738805551545847750497314656379734039218154242243975849708858410031327668468084913120128478946269128835773976187732752044071292187355799774788765562029708060687211654149184147250256841474093253108130667246272593232931501307042732220959466940793055247648783666592060241466132468083554386039134792110017608397535163491619030666133602514487149262123365773491237957030213913287566534763008417615114322565881138836233914373012693660746081498406391978430077867304969334864724924320870822068959570519758373551246148916102047418430505747391858960053500169927052830945125130220110556323523672176613886275751699638278380964603612405344276218112778895927349204468834318175043755007850350326208408226819694951127306341981126646880693492081553199638378355004676493343072927602793573305931530243018843543309509388397282301742503350644790690963293539114556456221646883636108742058150696055266149257262330366812339747297318820357665559881282483177692661899270368320857686074628319692095390588687369144312180366792415992080644929812236124857873972487981256133604458784724275223428906449712623607754547621268434027532123307313591767905086894136056843323945197982562271437536985136741470423680312825908693436531806591633926266046771478616795654385692938612190247511669312992129704164255955364505707791903770589424177735599237578701180710805944036567684428626714466414316013886791223017431504124480069350656314477282075515494911149073523276519221903194973004078871383332537207652874665777873295426070183677383365553792756328170521088001297810190173885311915283567650899551136024527492528853241283923293586279981284580115101537346942513923722156924627736820523414821551671650434944799273619353351172262458964091998601357895018203274630361045737608050045887863528308267612333053921429560752313556559706660489803073396753985814626719294411238324910437529398328352300822792492708566205263327210239241852763040847182543078871247819472475727639739686009218641283735141792288155197807814812093284919865548148159674921474288530774980916639215164508639246470806976206456396885749856886111161094168938754111265509340025997746791617434406746797978609526857185154321683340156859521945960412747133172713477312813041235948929367221479859900952841790376448512576126040817936529864399164154628003536402997438421260017026117792361866894692818643411801814590149297895112726106761532604197418097707652253705008743233006570012876808178760272835670496418950291600885315636096796423470827388358986189219427340327323978017677985733306186259856363993464893823097393274107697230277413105323682372033212495443035070803424321522078865272459998511965356020513365434960214777961396772185339568056015571349604050279988693521269683912427214616039963452456321996627876557317676684525480469473310129769539301536397162511914283429100022980106381438287143293955022126530246334177352934244686705794703708613469566708085125267562355141656323550697735381534850142093124848892221206142805683450769128172483056741646268512443137939762578983439867839641735413939496489381340479921049527959105045429901305651792883330030712456846254380037254845839553399771300081923920474872224005329300071932921711704763447183319023635554809714113164884423510610485482470416187005283481309023358129392856188658206832202086555326603682979945991305618773730603071026473201173395254363820475896778005648984700046347625219815542338924892933264217600336404955431750243349655851520982574753088894294724114566922190261859493576100630166446771254552825440659407880872527699448506352743042968903876315996400903762079002820104048893575040056422733672918203821017271908329356928698624666129709281294761035104263220749407881986395189348219322571265484705286163377205139843817766433252571472794859782537375737153072480310004754893541028183654212059276336263809884829487783858104624801049070650828774390117974844890494780926279009550959699776922603145395607552306518987798844161231709484347882937381648004158893621854716286088004149170514552562196246501261142832974559018595046353283546250925425451470488361848362980164031150229739644264775876170708604811835866745030002662541903250761279949877191462437004808491247062676879351663743005258472202888251073845654259921176432223627844101593868352230133661899808523942194957960778825221809532303647481179524577452066923823686328757840838987805663977346993239592907688090920753018010957913072687519803114483897955109275203418578870190239170915783969636478642567457286721847196355767307541234615107132439971631781664345193380439531211238668625118924726634258663461147536146517843955492868480128992926465321035762289518653017587921072493500820561086303651541701836473518518053700771644047638830412702493350986059399524286775642518953289611997909571142287552181889584558789295223140917903926033593397113623605780262482223856322068284497081324224893557636850758086540332784368275896013388335602486773687618650165894583789102712733323008505007387202039304565245114811089637370259934307188262144998964494111266290969156696031613276598616631015110175065372210131708253419700647048293033802265420338713734353812015446697162234398495597044290080623543134650128644490403615592941062816813579351581192420979444460057092228924022536059423790205597652358867247627905411803399519074799143510778916255614833232097755064002039937932649950719368136974061842274464316468236057008226212240703052480233861135640190732839366945197787317801344795117570620741551677130887844717163709397569134248544686964064200793216401125773499201917295008691754414368320684730701604973918957027942504230307948907761712947726921262704997851391223011425808191312062285918118000195854164383342956630778117537561454004592525607117172774692891140410363475597808742630264919513107955883729360571389250324148939392298517883395774300614423762162063833979686844954650655870362376591545949733242545824225445301121658255362780524262926687707169226684650250011249376253539185934065454515743015438903834019769315458061294084521842518883814631490550631898814841966905297572318745141454049967217306578984597206753369658220701066069679697001874307029508878801091725450490299944937999838771344214859531589385565296017544270167807519096062701505163917538648539703875794269856101238571267558893504227133140968686609980169375032304143305253170969899311411165038470982866485374735598662861242695036244463051652059427056782171185479736157876810472563569664222487511240253508669849150059650374758378959507091362647344497564753450026857018834113965814838539382826200813234277312673950159095950648618917098233680173364017145865381647365866993203986611120674060069752433766693614986429717209457524080443687776474324669144388988860380183385893639398486963657845524256373920819610193581120125573030600493641756620059763571262627032960671200591957151911689463637443346721990633735831786102209041143096586168446034943701102592054175264738087170558207013757561960796572968040541771407456050977846473736943634037690960413023828362744899208784351142683629075204984794673680036989687846246922885859469634223423854784768866909732947911623606998329001876817670788266453944411643244344421054048307631078976668120716616550997151084016122744413973726504207267474382847213599643072707637703602355214413409305278049268432030214134925270533754552619884644665000732037824903304584268059406726360581697770267456619996693264227265735354361911744377150461731742978644867287519992784814887380934390421296236129040224790742583320049752382843939267708690989638209871070871127447569391153948157093948722129543763980565651780642028894862299780784827990416046207819942100068026647951635240972005207994269614279787553694002389993129171301932186828136820994621645287237534834989209844533017312918337081118041241339300644653806917385300397962931541027829875553271140213661782605786860704891922987462490305536019765726027178757860433871229970722336213665860869152050505530253465820164964786202982950622529879247964330302943537455862215158951212450181255773111614495491516393381273655832495553633775448547061988734578595655221925906697715459406936471075430396895424509133666755585719893032885715662658566683205580151494765382505966654876144881644937625163850792101220839809570213821183130493682611266625791736860050699512598744039447458895361372952760250570378960172777911799302742074725939189723984374712930665451620630459967722816596858134663008816286982650126692667539968335354638416130629121081928074469295621095347624727638488935287513591452515023154192923493386855932881866608585313052639233739786602244237788749261822392239054711201165993032295671679771340979393219584205629776378613291398171103336153153427348338311818832346920589031390527467844710755038652868354075356180688677449354170615470472290425120850812465706612303708134240573464109790266367103365867237082543190792170603249934111329753852410643300282249565890165760897856085426584221566719274802844724112574122620951846435226383295807896417605141177461265328017913502105639986001915438624559190974146201486287170040942618733814762537821285063005939852236710075519617073243109653593227086960565788165741601760817160206236447106135321430246559911622614758518767309582491666211754860554178386943912645020008880040132824770917118237831530400786757120830371459520123633866996774621109693584754981298763201806717551357433881033569844909874741487118476791211626391185920061531609740354859616638472197821250042011843252129221876519849775595201134922697178993346287797414354019030302722350689115414987478225495598374462296578469298975550625972793607894308625872509680359000011859079183350417614883862935450121912670577775124525637030751020027093062845943981179098467084359434183179058860948662016908854134898332029120356817900578444142886343452360957424136725197675156479957837718037167678975985082257099773337864922486989384242211443065910802075738743256121126866703870198942749999952562468985855207829621276716411539633576936227522741968538824018099311824895514693960623864624163415431529623926139711707951502661903258293199965669667110315742188871714141232544977402837795019813628555589041400857256035426571995526207045860011435416503376749978741130284075284384926284403708143589983538275854094835186630894632955504818328742739213102058990756563875981526083236045596337730314751448819697245153334979470350397550686056050918026870876269867893947435651921237947482010193054427098742240815686008887791393600659010231939145700198523210410025769895011993868790009070831433398195755093064796448200113155099576089636717413735769813113161799693018842603738435257478359614535460695421619120542959557314165142629130308578426384996344737693681126346321601632402679935421522211678947461173300203331292928930899560662946931222556459996301853257235679664527817364952692440862239287406312263440378769849669320520463352825036792706764043964888499608947109196546647830160742047866324925593370048186155312099951301143681667997021910256344213633493705969743553727730816365915474118202918990485028808437334867994577307471300176532025445326568021647893475127744226246217130131901135577420548262886602483276809627752235231053271745123013879529283186005541188354882287284306908423107262792452360357928568537650753775067120595767649585919702319352767440347588940275805839939166781828930134136692056456165647220652960236277190095346818780332297917122146922363572189388657947429654400111823190191481232783908387093604698239624409619925060341715763028269134474003233566870586114500584840913852392662381827070587578800212577205813790520215459829541237256351116103289085639552929160365460204923747903866859708849260282824568817080059905363659846201283767013724883246031960415431673235669404488245678051593833998021949640218574126499257626154960119909883853631870671584884692323624665329755984127807021510374357326506466480030156173637308457146757196783117727801784308465073014901286508082412452620722853208679241946729682239335842966016807371378748597974794977363330880675094742410088297448841278655908989015816991076185731542206289346575886475581849435129032624072350035057270717866084786646096178573055624780104596171053086412953049135983664771535836676361739662392692677817175615403850507259350135399423267389634130380018786663318854690869028476467142750844704574207032655229717656250704228018250045528400641462093159187574122565544518065517193097335928538395196269659412657090514671245741657998491075418366852525903318038548211187634201312222976888457086654411149905811232544427435198076262262087645491595243886803783141666033498721170333770605676193115915141526361161940090823174796569581283309735752486876391462615501320682010445373013021935331704789643955494037368170176613374446762905421071509345949152388432394414542266087711961858205534493029239292670712919231305558089458049614883660538537047865530309416253891930175471320438706536766500581415119526579711670107704901036416613017924565628418752698845944718173540761954802158797880418523453827532843943795104220916978323240803633549472975721222493896108735439618703308326127459556313248402825749558573326455520977389969948643164149612529032619659397120107805419885217954230297695506948126938859751864228643028493536802489905734277206147794082219916857578469101449176220303497506409245906464793443202340961079798813885589856625743343119352113423294381655148121957642235479237094983739757741707558366934874173923916378676817808560753217826866457286135740027398212044525156328384638320889112489703566350562510992247319634578701334476371125035727327281413051759206290410623634920685181349459094419023805343602783982833041358579198914560184950017743127332853319494055591555192738987394566775265138102387551789917821473136639985459323431908949782715364457708657037155997454037526571273625612773674543616538430744805724460978668388574931160014107813566867512594163120693930031872528079044701521543801876875231802405413701918296828655169259036314643903235363183384948639654839460453884743734948847777216368479567728165863132346011470539701501468378046312143692254113673613568267256672874667164361102445016430083938821354272013590749382982719373486701411398152659746038169719623613074689621698327458881552820649032503536551136461135426835255852984464296054902252250660489719678624084215134713960484279992060903348928408961737280288135245643199131894632190647733419713117993145539486103523931225809430819090499086210664636561046393008364448292712465693309980057978587506276219740454860257273692555026682672694466691012992064036323759385159166434409911932547267954144981195465050679560889404700893538544793641482462272700324885552009792664061826100706923341634611473527868515249980280871394892353259422622509070912100778635710232578633220480019088544794125840254188438760993319340319411719115067080980526009772370268394737003488792522161466407752312899157667718375317659892629933187768628797179604038412887693902632777146831636093363777477381272240547251772716778196812395422009076403886930787495943792990940841904298838751774041137129044750123416506603055001045542648012303720253701489438386130631998993555868881005227256933831392592369119497854300160291270074726310664883913261411325904937309906498607614500960047922300914366928699685665700553144913173019647710227715598981944622654549547016834601160735122412695156623629574520083712328758569358512633139479810277971330249473438348106830172040557786245315682537544207988072640243894153921889750744749335558092553379424196449549816974741492207147448893463214067254865721152929155961494722648135198334355830880510786684390902364029650537580153079590765598323608107685547978979330040882320079597185748086708851941992696353545961847365337131128659720778247558032775302185958870813046368950478966943016166799460094781271074478245133931487065784727647682346080339726360132076415799905342207640367638620223596638125623749077073266205859072006282878759334159984930937559600181011939996947642150827976462007740498566331442582665594527020274705947675288293038624888166070676020112699597141973705280198266108691370167694159019733094879518521645465327759141282514054815918701079399028715916146187324895878923763167021116481674283848679601333029099046081942449792955651222485800121037660803283199300147527948091272954251519992858393333682007633031149025042109124106590495500068411444188097399184273389491589709947410986368735066142083461122043885283145703592531656959149692434140322833705726839810709695884625838536723318141321312201452304225161128240294501057605957860212587892484322519606743325344096611567951796547125449687923061129267315462996922315536215207178692016511905217506682638346207964146748932272900220365785576388856685516598176477477988701200755207120247092721585461061825566992070343004142177954550906005290573003754670530844136554866130539376267417986640964976295742010332328440795592404050490412682443542554387790060020155754934218254159409583487957244825306794383607094462466659480987439567842472283212515096518610002430081104026250104418957361791716787709809040010600776610141060770764149020025141896837289579658903109370894270187937699147980481501566488436974399187822000268606691958860114780301902162855833697345612888686488432841097288459382133674659541442739081018576117746284667969065638254235635511489281261137348255964212792653056110933059858391386177897716780284411122236727424349880830663412123595910996414372913764147422329985653783274468458007552004285622615779714387693279815013263212147851741701001344790162012109757748253089251294774144972876346535274629884690045667014932189941834279878624051540705606406238049226627858350136462862110081522689478910377330534364545610315057656492902191046685277505934629177011179638599549198014473927513372971282783793683776904152085867801049095496499102770553733399636514528610057091097469264787318672015711236387545862215816133997489854908010308411159074212153517668461608060911270274747469695347354130504500207884168026393362539612454507095558365790876514424542771838729956614144991930708442772015972955339838510127190307401777778884763209564360517589711141090295395999300162911577362457558268397336470146175062416168961702897043307087079700804965119583431684670025155651981275035084765294821222390596936888669666010890601412071089752552114026362681032702544706645763641305571706207893367745734850147348278056104729983801347132097794148787300032533957498540266081090467530457322559462518659738591440954430380189150494272602907630437526179843687361882846570000445575662790470007893901278037831156770202878543413682576525161499882121853082649014765187520225103227581803125868148329988876486612741219644123026316426509848283710607348642553520330475993157422630370647512067612666336421536394168890591794407227161267396207041264939058617144091680290458896267039012122290688616264986374158922807736362834683270958574708512810427899302075381147225259162704584040705156528409501190735396509245569883290487974897510128613636020724839516034486238806523458720180702042063996395495339913465372760256746803814664222214372029369118278691084174463817582585887240542775047239483870023736960175950789388803923444601443054829031893506498295041386603866880199556531961579456759619980004992389442095068575949269486785417479428519402307376295092827969558638722732214507523270698732599865538970074349624456619825444196973642978326262636177691627898153128478501949627195326148689630808573449266029084325564485933433002753807682107612644190979162967125629494175971370892553755481538990111950912240827875905166494754725402381215854095046912033089642893485234189952335442115535480708937149387196821867670537397986933225945327557159584698642601353306926482364436229191964439490487647631561021514251158239014753674492748585020406852810975257559569811039969877461030872999030333520276967945359809675212379113672119108120284882695993180077182752824090854010759887095820841483526362005042872493913019049745494715249583293103634126482624109448580370820016038964287501733411441181610389633802007246401644768384601078787155585613294727604846620255859333814010146085506338336710401553877314952870995509665139973642210668965536887209032946241070392011288746667204710099130388622326417358407435418033699138718785208170118670562552113073237623917536762621415074793852862199941259823769891241674829043766266113457411816644978234320462787247456390959636152910564782231051216756492153069815520509878313642998972168741122804250547445491835711052471123861701273300042031646084365770649025659904222104590926058808797426242558666024880645834596924161938859653888574141721265908488927381419639398304966351677847872376499877521335852693204973541627895535880686401423509884976458779697992730771433575281514702750180428117024980686028772050204990640863583069789473646593606012865880986680548672281837668440908765780021570294700068150122340168606412200814007754668847534771615930503268127111751334852525138568753373166160896361658881151065730602173400844411466182514511008777718789599534422070590406723835090168915253318445491217047412263741433484726948929011566719162540225893509575200894467592918672090368918695498004084144060780286690193848137524006938846389907758618653336340662031567260368330734525520090199971019083591387727198790662276049238282167878927521364971685096531598249070260974863603277188575917090725033347371637256456579112905270661979810886125292960163300995114111283001696102466801890990855557879568559796276167005606485966817965492313475814242423475948765788558508141606543902635866537983547753916205840235760164262341180384714243103720212830627844608561544908876136200454251451744354180374109892261669513474393555613260821705337563085222875172716752114079443175828273974214173417093976711968941123726505602660035800958038678399470619376038860980961737086397843634019318765649550505851063767219315500357559671651838365434706425640500202125137942942049654690770787887638915460312087783016580009154317981554254940572538115372820277784508539181881224335243933815817778076885054998731192428143280765282151166013008612013350871247294044534824282932082321155896165423600753880664017698893283003752626386138989913484388646502845587246398791029527979041071031886034131254878258546906399304673172928875935997159869512834786058267245989982124056552322248425068017648164767923517641227895817809266653571454768545989779808584189975847299810353262643375449465497797953426947213138057049179072629398536160908830239047006824816899622149974609891564541377960371596661592394847828071673281265717429194235647606198810905049247260194465599913372180144882160701357423822773978287013022703547720091918773751289389960916002841314577188715227223445615350070784404423114794779787393451749978803943766973437811846058784294000092862061764957666312444031519135401073041254772883177779195424687708345139899223212745811890572687851385847891352821631910275327661610225840556925330772274559215596071233437905945360656483786808213959332060324444820864723045636306410108929515631830305166631163992283950375682676666563573639187922092945920237832247002275483823242421505878201197235115144919220371165005593487146541743116928329567506847724977643552110578311766243561145929421693457386150092256480143110969830499779847715192112988011674096302305475870935671361214033209510747787276310786668247625646530472773983241115693923604799873158861938791252829815628465643986536572523931531593430862768812218365597794616523633685220057967049307637771631003529718554276472472229214051421003319221999725530708092401019168319678101746253099754530336862884876725162486630718407143129699483623755231966634005098401997008024970502516159943877683674493382521586785444220634143822787490522815199444320385608279087406570853934307521938339457211674170566692386909999253837419273487050874514476091937830299528608232538363733977173132805912755292049579385091640724167588115317386397994123398631868226596872842285339701226497964846464956644331852955046704950944131035449730891512219266962460231899548192874855918917837979157197790423866738384044918069025927640261804076868817572787190533596041242942444441061026844671271764812297995514825833745654353453571398072983769877782029072364670015892642142637197907354795774141489606615881767834706186156865859792088637792444182730302962920850490752412077930449349899294030984228855342573202287076809659643518818024095459661014282741956264033117337514339554133643122527093928552998605652919872761161013269564383487704291199802808879387664700006224881045707239711121306556787680611378489770850915694926318718475899449468696750571958998849738107637605898625416554728604402719243068838397014085901116406456582895345404051609442639861693499298297851934498697977622620765230887406685996941080899645017935155824549309055772760738596751884687599665562725159941699767315883490287079256993516780084226277033692835189988616027737617698245468847645207710590841652020283584872744275120895458689435841099630719578949039234548724015727195607860615658300575326137778050682865240119342918191153835469309752702049370193813261168335673429747037157080843129030306024082400604699039964685113942788488890759480508376281689396006384036090474059447055770870370513258898320839697624107345768367690005145220757908515013497722479229538841013522115377442482198082706585385499285761454477835280475242634222313640599175797622462589459639957761519645071758107863881987880442650010527263697862598383611920985222416549763802908448635482312699581071582273757127595980405308114123272271459061473342130323360100955342399117078426114327044639938517884956203005229213897197393053908083067592527904975874454829766856115365270126928229808453712170523082546050278485882740350020960617584336192127433747307007442897676725044123188176701848610056181048741411851406059306426482323858196868066771517861073026304345751412792269856626739263911030568984219262194186010163916930065433208364616339556870649417453792304952575207009752154209555293337235819508068812392958415682933942440201625388204476373906678834519359224310941994433911584199195466832546760310903677214335482931631944333171190271312942171607066202161792596851457366112779457957098753628994165103587060838867566294471799677325133732398845995453050301346244868410390706018876893506516913608914302863683693503112479221371475818621959053903361554869146124950761720570536519062842917281796425051392703933659201355279815613630459946164833073065271098193040971560636712537417406374519703689585121130904116723653688027803155586765574787887714036310182787714089835166789421207133505712448556247492745786183028888830719924964930155308255720815838600376226718665935522808433523040277022399668955127925616642304007777867636179192096537738687697553080804142185507368440062863251591096084139472829553295433498248003959409367858503215262078771721587359206076218577129824577202807990628494785044669540687757963537542249257432678898817421190003564477762776083848203162346708582039363210845270034053566922066990616075288334788088905461497786328612311033692508734088181327636872531733710123917545768390919456083679625238746131570305864557560370530492745700288354745176385233118843673592149454784542961425703460240186152590896806110554891985200372530787602529156901148369462019328561600522553784926943339579338459055578220112174473299040985160659241182417699534001889546440986255760050695124817868604210703154156306797771119180648756039097317392392310848876203665056060276977868115515238679289796632103960598328463408002449033563632035170879563423414183529172243887771636470269893462305352220678141459695874718836269934702068595582074668781637007117627135707212073096252780108321439419368840902736873000963878103489609029735956335779668083932940796377732355824440742553479667158293276856781252150392555158913255298463763048655156294716084446533745396519773788234218331043089385671879415886273969706317949458028299360639570520520934358541581468660679081069222783274003896902593175280123207266835138883740612918109989664037039305627476612460340909451732131037843318978964946848272554591696006823035741898265420171654561791571777439878610201886883249054854878949647302757529213578972573208238244813046440920561657513969926374539681571086191195094056538190418317019535438907219771275442088758613918995552140093853190333266350820850622401960677455582517995060599457574426165841956277114480297677920536489469012072245375350651778336770941057335398983371621972689335996665100933015138005011816670811860515702990169203574196856990425638314562598077511205478635755054356701370904340975212966121871549289566594231047154731342192422980232774609827199052358095529236873890168030660419405592851828968165358508693785655055337573573798906163602098994891803506518270909525271251439461128347424755610827756865288080319031596816057704566578917422630087295486509760966561545198959743981201711249858270924331511677662056398276217159748912251195355798876231109651558057416248582568905323468432982287391239884882965842284666451522399021112714574474280418899838434583689210968089674290511572837975092019661190882648216086599679003307259474136314349763034652274634730899933815749879102147301483267994517906683190408713085675183330265589789355242427572265141774258236313140249471335631622677376551220841746882836355285610968663343326622028620537818825993933965159759383777838662803656464441302450065009520185731025240370818271463212445513567337831277373442509356046110012366096886605641648827762111148025643291188379873217748471737358829665256295246259096792402465978485380745422577581106157587721316004727150644968698353938157402796434532165909282773799764276320515724765327764514793847439633824624669289144804354250140529895630333839055182977482940907048036499306455593543556438255851101228609110786907691794423857186281237166663364933781965326162007173845365371748448526050199189471704412902748328153451635848709408332218387807747991640199439485743961897111447652275769083300151801621253633120530554845187207791860983740447650032678491653682697206957360437391847346609965953168842652580261813706001258677744805253253480525829416757836546597959393575643849217031374528194470008846179764527508348515605050065112900927550353389403499638020847100474967499306999473108595022049965727956188895367040089293576499558606553887716911834698230532462171490473538576298809886937951615973025472205691659966082559148574755960040328758911004759967341088109380820844939382736302897818407307134195016453284524085875280292631754192049227319211578077783408924609267828294101580586897268268692817773222479331003947797492841256679622419123557457861717100686019660635488450186582197010851617772051285473884263688356949074928642943654881155759963830972848299239882083520452585283765469540896379589906974097843303832265689931535315150668105638625457706324381373164431925677750769165417425264086898974508862999292835915511678669802606921772864573289820425668296655680328355941708385343463910378719556697112233994550866046073179275557502286289261761737581438533438790282486558670368965164925012969132770606049425715540421280380332237228222279708901246343985336584048680156895333390181237698638639485817169533180752499394630692089706512317211500512850804580095624517467430685618798370230906634155402179540437044131249135225634190244250748130524794912713198555476207436666252796872701659891207627917648996286189326575518764929490798156845277102120060994722757679855861055804151108832185552070490604634980269649780575649635978482714694900258118480183480696964648141030692681149037863567947791426730763163892026279994705968610869106466728380714618049998209423282018318794080462596369413002516991246525564060397827735804826081537315086779265889425880853440036490232345033378406203500789496261361322838281186980328841150810796099607768133893092156972993153189362777614625920247378589611979989048915562147549006544357824303713421584286136824131739895102676406863651034008611475033481657328098714753279789839560877028515082555337906106078040826018381921517233788454292151394177662241060333662747522397648061757631244873012094398809247234572920554906643585221325590707304521449554229341179922330575421798779502760849544626320433487176780587743043312690359685139789892447215518202934216860271871528702235696312395842679914769227686715884664377268806292535467616013747236103172218318151572286760223267663203526201058855325210373507461938479169098659731218992724839928764874281031261433200405300244561104796665946163238050198025112701832630682697122094162857352394565901890698909367107099844177298820406921463784479211952004770701657642287750842022605400404995802614123378257274110090231674421603230036684012746925748453513437958894183914170503289343333592180357727630326617314385760140890820758465977981461562652695686025996932583296465401343882927961561430039089012360860566284584585106608268169477875363300006895605626997007048708737811117804546094974571075114982000091540164032853975871735239080793775929143851094924357454925908752374158713271088931739978052261246795901625240897104760291473434568556875089818806203310651538591939366242098413962675181419510415737606752207911795481903286955714643784001164683778242392974248466133926294849343937901898931064535218614424959154765134612211311622272480671190124335114987187410710410854399373841419966648741206981718883406663291629161374600737418532354672645063112245352663798778437978912050001151241360414717458794896122919519808903779098043269863215693967986905639996379632875615232579933928088009375200896754648945913228313038720791583561935940280256536514497087465931573637908345268879298395486375214679283915004661550742403616020166264617048870219674996205494811307191618054241128482975761766015600635013833929297511128780879231426303951528154778939577856098833788654869416363528880623735958903496513818767551185194035634266350865520387165474915514255735284498914484155159799442794062722071531767904779138143357665200683129564868459773951829446442119696775664077167508712458347313878764160536087057402824931712519486043350749987496125858449061210198183121663013266096048562874105849166724409601267092169506554355143473382290654019397167724504449863368349531652096416710479847971590814834912941666691290348573053281546903771980454061229938755348220039317694412143418954634093184012328493278337512014548127296464201506239208359314376387804173570150321518134065844698724016037450648247820717528661063225173100014961620165765241674066854931798730549680132434038435581083917105490834153216519243377645131648334704530397017934682116987360819434769410173546203487280703105324684881256053270374404206674847886122355097447076598204755586951524710645884390519276754214257809304508553085704505387444051719759511840444592631183258114346824813315620866635587943184214345794738113863483605948910940034101491800215379283064668671595780795844746649784364396135692557444781632717955855806982774037043632008289995142789896284389236146933332400750066403769024831131284813486864876512573460835806623837703233515604710453767963159100943920285167134853455970468330944361401918757405173028844965864397320401578730213853912492789246021378347494832777434079120906767191925123963220900625861660381678422583573029823982958598080987923212542195122109126378207921564360944201883272961010315731883111702447098711490092661477030005884889751605043168569555626387587741020075037399786218195931036689208114729405617541797836302296788658835414473783113996683403287270783374003749323440065142344131081182693483431128102430709959672179482451708203695291091620218972289528243276707055782778314718608303000829057742212633935952591999396863448683590858363640945408471590670121692013553209894299519937505683923829012960136377712063117620173369406156324538396315690752786586473729139149311737790326498246273408117481768936673203897477174476497222860293516350121236068714058048951701460900353819888700818024561236322579098125163074499796365126252363583557427947856406036444153210134289128959228529017967378640243320822010914380031369152382380612889900689760119748179901951116286002603945068359535496877297323279896904304999222298513132627629633782269696646366540350780225445588738830623351870461297311540753305744310360277018120470830579570892530382967802596118536096515887958010901215946500758219775415677044654626228038464774774386989413426540590318550213671456433415235988368781567670395432045024250945238057874526522034573344620258440232087436557210262853056191455079692363566538017131219839551233704989790815073325096758346243250163028275284441352746782175049739827608646184749083805068244076600297978464057818773156130215682846420776494692894108271432222836442450313477807210584260922588251990140436490981725944163847291960215862252574621025932532302356503972271057852703822279139520760258026278059490781601862125928269765084548800100012694082532421163042328365363616754179876876722442549131235825823430391085912612782551586475478782969115489967733482900075671756730329911917709059840589918927994698264330471247077737389662155204901943424677642813725301530755787880859818147000404835105849912092514628949223889545294515414760667767133808057834535867606206862507384351604294630577376298795390284895042984609784168582656333496817763007493945425102234113405552461104327934083584041042574805114860410606016500016678745683676258920264773675955509822336417323105981710110966073210679788611832873449416402776202737968033647638926204359695412968289785088441267819648373989251380077838194055360089749848762459151040657634834187864802252439651364723843858418236512030774512594692988332427118820344292333439869513729030001085054334342161800669514004106358619601925181621872478478147662608456243544208508031793399485866874581390406030060664513115506592213187705651232489631410316297234715449518461660030036856028652712732276912936106275797103774034545240488721038121282993092009899923076256909877702590526310220452510662023942080847783686280148936868172487697123358163234971324225419801581182337887234756086611003678312001418341019786459367003091306471249340902898619342233737211570076221084082326127943790086529901693434507836079484597471197847292440295205026783285562612479873295509561928916389951653161384665919817646124348801184547226910954451691137867732880580846673286550678134469535028140252144944013935099621653332017847490090468532202106227339704843945271429845228636067743174889200599868997071286794305189749086509615707991475096090310794847070157451883434652015650256139440070546569919235000145686535434209141540252490590666045552345877703820791656288315153644427675493159464302103923709615414994336040703418482323499598142892904190130717606642346789460565563877235916284181029000952442276076435997192603350248866916719998956276600798684684508411235645078627353265502432386343909001987016435647541504282356511847720110805907351156196934896515001967251439987993437929542614626824351860565655906943883898500562075677311596709170958379925620120677420936938078807634896523164831645411893833161118445758214773033473649655777931095416683207586463866908490491348254471567746894829866941062144740131741909749525708962698305465264057905756223697482053628282161221243438125473781219438965607870091281115922808170202783943848066724562103349440908843411271607926941278681017481956671934471851574125420035220366197145621273678977808686695598681981736535357827940864830293206899834563983195991230987871143062678057297546818449073141634630524026613757239784371582960307534298225793851311725112823680213125821337213100571353870712874153447476957674859740722125623497285663356516307523178906035730173331698576138285599462335026223863673172591872941709156197522145888057445632219095879662073265251133081119066036027245787822332884216812948714195289812653263857914936937729437794630751554381810280934809922200901703650802837935817172717526189008768858102641551023682668248236177618314111060994072485921856104868286204649615267077480188008869065808220858535848009541705570130734898776831623782355176690346675568865938583090853820457175441708348870489507153611311289536443988263553561590563734650863093186678699706994685675370930276889148545196645585318086204942829325738537927964492918064624922477491031671344457970959448678611794686810430939662121007591888300700575955039635291781900075276292812763962868840577713778970708314045090538847961054778857911717171074032640305419304973742892735403911601778243414564723776883480535734966908431438657542606186580860822939107702989707991875048846148759926584214062687758936285788406640149701906964220708761767828749518049377503438876884713103146073905337143724410914021972953545685819369542584138709282823648440705350997237336863370613503839407990696495050833307410854532188205639259597163413324822121423704368433323476722690642311336217287359152476440425550598488044923442685891251572896038046580263429752832033197261198423877707960336962176344278133388723493831650940461694709498781549889511663910202568160597817488742238860765230652207628104677811342469488600701804138347980092520478749556684936448999153035575062779412699679833021615280987566609593538355575923648626169596393553948463367427142078003180659365263007567308667948551688605910188871509275907195784468212026777371220442536924123181361616368524924252137404110796540260623150375927690038614879736667178354310174253499030785183537985742314045915553439762566174958737915131534967761242410004281900065158915579113834216023586401116180439276593729032719005350425679601332674305785585035849445684708635991720068741254411107483289331707020555616504406161505879655163373619304849283183524492425556890356195438372424229679143419062816944678841685556077583743079928617192355959872094989137829353421533875682181139929520710161426426360877132418807095590908710692759473795655202377569010905976570879930347029033710535251102052742901588429184881066829784278561222129285117697806290176692752522879485946733872864561981922253654696581346476619282382445352277096313202166334539165896951182608234972405487250043314646117847506253587427462994852621551661117511816837142631629446809527528245065010349215824039973444489861186659240438186507910673662067293228931582863428142523743307595574424812252612076089370126505014411568625487123167562015426953922964161661620891694426002140302123473395457277688169941047477207889009174624201718974969202644449065886495485044051383369659389947133496132931842896420748403184959106697583165573759030598240305053201573313845188916882356816767610702009135177600200457171200267477161133181014732678948849914995389482728555907095699917642294314918190517893707611196648140174472941632011956795430011968224824618184900996734286319026147084186595182415277482893726239433188310327535167114662289213311407126745421421865085399348114287079903539483311345482563158508725456657044406807506984868763547628411229802829117860578843356846510642202391241590330949654211895567298192449565864030881099695621809518332684985759095785924724319864054885514664198358094929654308020887382843450370159686654159993587347863796777764255531800044215567658443510469478867624210815691723548209826567078606486310052188504331017438887451628024459056620922230600949673758685700590376615765127011392197457101231521538310670618056086580776592048235911283213045174096776985930146300919576420847350487553852607598633571564988790193847405095466117128404580173349278367551926854867080645227588806061263668807074001566755884503040540259626082953055475102046507737185047067649283205249957344367500401038997313331179900675736112051231913924204244220088849261294709721663032086250081008057056042733589165142033724405041380680640579297895743558601269055885862580455681430910602730121039873764273258234695416726904721516373724921694078581464713466427997860328389058701177173362430500943288905415165418721454811183045171276101326926257732976198214366485367475118767351834876159935289438552607295484461615344596419317505524967558098543397956542485378123615595214041056142771204169533116095958745888408123745230928356521022630805179861521100479847401565063128150029838191343260765168981901040080659371916598308285505573952910072118345577001522500478475622903476561941488441797052727403753189343646745366675926837510652103292690724019541440929982564765226167545560655424900833879898745266101629863876014175210019582848850925045809482035086228810547118579698454477504188974637890135494391455813388641093006765708538464507130614866186235393857293496079118136962678492565358559296890172374572247584741368098755558685056599135634744424395586129273849698962573394697690215548396195976833992614375025680699457797147547642869650232616722681508006791413040052259695479088732134649049119133275943579095553226590303943681505689170545735329872393975828608873907009454485276644321796181584846839991431245511346340507512013363418799242708172283586568501643881676171415400761091044098410650696618820540471888902625673209312116176088659523137546975715396682336379736503711953312284584719471511928789937320356825672459064034596226424181030633068758415980929444853579680131121296092588296718227562775215159135377316052612373343503660527758480284770682352239895829461699607558750101382681551699199380578523803999822407073003539663718341089434737694428704218092185087568973389660882571828075981471833062571747775108990695963171418567440788396914670743049084458770327846288266507983743289709525701166651323351598089248828432510312288976361860141340037030852225315495830561203644126957359938443556457425784092586666125120016987064037206167136852743226960514144785964921202971092588818277531411444808806793330245815622656191558128911979538051816870271492902702341767102339665077555711719449660076965091407183483145832923342803355697220811850912793470715164680959484063903601742181409107905844085048373715793445678168721980871067086733213302939482088410512571560861010978468949765966305490443632309180603714833203692098430892703131408595320645028176467526882007856206924420148243291334316935860611736586377886189132720334922996423188844720764170496840331344603580638467792662137602671006923942068790466047824852316376512210452613039741106129973664068699420617312535760384124368710133994518978406817520927851989829176831897974159678696391191390071116806718908514292997556704544263778678925977584748197628445671267009212779762891042377642303239857881335938168164923067464878593877045579074380549500869524022478679888734496500884482190116909463124930314094765080321326177611924359084829746043634059086622600974600259393000336773841816789528764030213555618837567046604385881420374821105031137414269435765448236963965443119337722975137856396702960049277046837940070864764823922817334553452700648165784750909506845245460781164019927077803660399423584253672194038698888261208422037246903622409112426323324804937780243487067189905046254036302150081835211043296754294184488257775318932781754397382473973171897929116126796491699628955091688748232850155240326749439589312315559258818192465493768198619288705382969906416937583712073137164429909507387382434370261517732912377250271923892238795060182951202036765895716702002871004075385009053930884188608445885172442880586113910651583143985136248987556588792052827595679270105578475636825997123062270313522051560209219621923851607158315132255249780164574895196237365310958912022367472742048087696888187778405736585364720154402736112233592463514737053013449527379847555092440539413170216680588568605048617143784454065671442053827145220286929913113625193921146838628785009227753443585592347507049397254910891172738604612363143732154852476855564132622268996881363254134137789995515823792713298970110580373091653575227430979062943118456316995027399255109544252262853403325679917027244995191619693678917784472005508655363217435629558999964401328132725010048187692188273679372089058639859131481927933241316568251635426947658624111661040793441001284173354442644844202712594164416867714705263021067930184635439415706792797494820274693059788235323632879050675488025582933331339608629227983184405745476843398509606318448196383184840347869086363597600314378949757122943345353797608539677382999084530492044587401157939973723128556734858029142367053255475660707829708406462677271140799865088780664028112992702779149717918050971512966526041427381929306966115280650153135975355984236795070156275249670605142138029080811356054679256439663141132839411045173464410318641159971893727290342549931847906687339383059629666240409554923503745294331302863271615103614467167473211347879494590461722614635381385116561860909250786925074936605515043446866932839456655476300198588607322107291770593486777136310832980141515213545943222656972066928524901497504326072000067405776562321469516785002800281097106854344806265145303281247879780001630766264047356488258463540751386824495880174270923060669252519226848953897266829256545716398823471980988723092450098174082593598215217043533866719815449175639682614967928225956750596950753028933094120014002696455920023308202834981673323883347946863911302632955981092054986466348706546796662338436842310904236126589658298930606185845324609972060115133364464048397430521049578289761037859692736616987406963075342331397624777458186381591306862161785166195752632966936933126792767959617513098740100342702698458731925112020604848173787237340759164528343590924968044615845352841798746158961835549598401585498700256914825836337895455296477859619504025420001059499762182200146221050025107993967492962486959347946028857472808492767088416936205813229085899375801660657855353538828725920728529621707757963414564349997211903246857198507923669714245324329700339366446046405976621400866035372116541530994078589275042318818794838202499859086521427845107939750011476790268802418834557797422946450208812038353755217007753573666720899601811627839733151755609831939955459350566661439180747271417178703223855506186177663862350036956482691769088341528258660746469541298504874690494752667856444223983487695748633013211687209541709288895353341908079811523567053741859549579930254888565521435815381038281867670603453176723188848286931957982902671359772536948758240149412704369210911788390235708207084223957107286409501898996755304489803403474366372430866455443278931437885604736875893012821312714633928365284871734193707058645352860888759871634893711057938155704489553042376265854229746988400442131449360075196746018480099005052286888291854023185403319813541680412124731504072331379792037394774194743422596432515917069403042398026020496568832830785198898800298281259223474585360382808492026715582013145332029001240450192835671308094105391084688330272793846819021325729605441476718319671515077259812033426782733499810416420703519698899939427139047424126629812472139143425496817752783979802292260227595222225675538376840658669161719668205949872066498707486421761364835213979540739559746373792922825400686637072573567230145556841969116995363717385233302124957033269391998895509489223998001837346293889517324373711430234401429342961859928763308326036730795528382081636885508765874500160665538505612335737882232775128282295034043850739645257099577165989525674307099223774765873516347343688786258495520090221722756325175792640848225882674566192389469703121731631266206951998149439260067250519322959043077136519748507558278789793413660803153984869470466068344209866718230885184178416357403861602237813862173552881696970995244821558438471466764497352335067352587430042788818594649094791076327738927216567254727432088301591531013491849454664843247961196819359354667556883009981676357980636471748150937045997949082049797070659854991250651681210155886854346643512123962494665958210038890928974962721699647464796853005297346764659474804360179652742340709834638529600248894875555569969580435892828190650943083561761369891909895281684955546177415959564155652554768581554166286394980131092884856477830026790448321621942476511695287143748276965448918969286103574783407687662542754766150599857430875880848633525186037846685607822389875123117444898000527738694229484939662183053510308108819132416653880869181303538816923545052789436745415309021690938974092113327911122969410022713042874189788499746891641712260838036030829201654332195858939768953082054701092873730300029153444497288639897122182665395540206392947144648059466324155705823216549852506273853254100400450333380239621158482706131031884950980358519414407735350944330458951638714655867430526344116862195542118007274245609076639310051665860222792710708080287184350187820676217486640296431172503178313862440796648449495476855169449334899453770702849298148852102279019843673471344682062215955732509709246297609161342867239236847003578519490652896646037747950122388368046193338976099595540383321456905988382863718180849795120663096671429956462818000618286114529523894012573649939033277414648586848992058572836585594526825271941175393675723505958644792578863844774926898258823869122945437558812123754642130925953250364475464334006405293132920229148490578745077754010364957654939543544437797282752507454323709039999504474223211893799675932188739278167311692028249588995558938558628582700809056719610651253860211418466581518581278077661506188911648344883355025653619286457541619852968169056096974833944061679002063211962438311559935937314080684470571199955028000470214727253467289101056224018377609519741620790557954493856732764382860312650021932771677189584737533481602155660208960656002079223120461014584442421519910860702755483216679125030806231715998280008445265274838397922620054616984446468205518086472644057674332865469491174406677713121102945881458762734612464390743842921920124162284123602230089986409524274451001093894536780554823916175801542023951301765076716800154700104278975573276879062063344405796228695768015797834462940827394583066290622521966147888000991000704844291792756079629425228793455766155229450928973322891404924048782620558934223612824507869109189118764590569183430771305774021240936695914110626680114416786481298427258809397561071418536027247936251057052203202491606690222650273084907416858299836720697903892518502991634647102576896420228969737733652658785599722350283516585473615416609565520518853183708406397796974374356598529219858939724993847122003299953617630118961418166492647985456912814034439081635741559773861404137981636237600945891366471311421377747465848351661195686456238682732053687052711019852645059293380620318464843804758147753493093090372794877615165593441044479105097837009801293864928169974804416048769564948775265342908431679852920246096853273363450681305522705133586292325672981253058567305907629720160662597794159220448067665263728339850507657002011438669722964178208533207681377667957738878593118198756871012661283588521459324130566195280887762921455227303531400164563272984855690874359672342780697552975421272002943152250670948853936146751249775464236868443039458947245735376739553600688528992194782231510764973731459290742961186148604406259526969229979328549530602429004391184560356474723024182170301446330287440504994155137484566385453370806965338432532434927824176812566701574873642367350404175975147965194151773060954813295559996646074661725562749505892924714176771853631069503951669625639790964559333793734559622743115526285734454796515592667021908189739086758902813826148912078321897433509487096732125533320102212746027820885514455222933046286226179761696294648040065301208057425584589198977640554946632123713812689250941331105943201717018203903966514366611593633417579172233710899954850088659958879492241436559924985639281261448896524813531089388955499148759799758357939647237415307103643991923115678228903117844134078696637841324231023835812687793219624120639471648599967189295567388264651264253317416117830377020936568637821063623879411977684752686160745210257727685750097914871825150063385603322667955063652250293796721266916664685760097852161282929993803778159725810938746684229065201974252695955297525386500204554502773739334134268963545416431256777333462534720132501774910495948402469979683639124360714996039452597279637587096316161629322619303097452390659220674606946172974140957638231362717202707912890652586792220100783667885602710116030062393503106902699856567163947038702878311560473202715204916396529608381382276695183986837398507529529346449058477699635603702057575008333193335289644267503809347290302582487332557515160558629018026394804215632471448890435602233255018088123028748238677844790492249974874647654720350911435673330687655869470177751920135359061164303012184523310936785364766528841806671660351905839840495813081815635937530105114788985087348174776934712354132178243118750390762412012872160423342164907378304109078575937079671565442781049204229108476858508011621232397860353512686305653229862526437547575202756402649552440845375129842177437587855920822454134439133871344718522897915703143414428649871744709965907489999231590762155182114929141419322639828213108682217077977138373831860554874402065346255829554051798839949797240563846770495204543404433389148429113990817366865422976448560512811206310499664555609436428088731646311958697851860441991622423752934047943489406173441228897117833589264988348763483147942171042182228189083496540151703949551831235342114873106491342473714284184621283355314069696528445869926910870446386629306561651458285588868565904592528560790467678540018075867008126262784800410803003852439912292155827585395816145779875616695883323637781338480829146232623133176169768123481574841805780553732990340157367779821332488966484101055206593192192206031903056707893368179105360276794241154329490889451796694996539025749641231428143830123026932557798967187442866069049580678826296644561155304827380720480584206043607163893463215287069051874468885642483148804813280879690863584381585322979293457058076565577631020065019580884939654659496289511578050761789059401699431169594109482506514491395479559239297762687324553465874557322561193540759180404572206429986474427659357950804460059642078119892788323569002155530577915748187966046721259234104262348532971539754979914893811875656720326771510241200740043752618626801778342390184826277420884139559452729204498155373737715267000383647777897995087456621489346577820215315983220266370991128695464822415883438917749743316234886866132456995217490683363985459001676229638463619118661847772676704949652003745603673105055171124639224573706906943757706583412857530299665046514780438808490700543198865260446346124085259294634968697931618612819956477507621060917312657988206134687045865550391443581728686168437632491999502300132323342812362761599675173076065022207088885487258168107144075999359718159255531817603615307884418244773289049838943352938703604896798630110702692795486250196997011596951108389345568454358213204251728746249388447131394288620994486294575748591574683930564059386248024578939733785277577057294062523376785239385462231077307395936464571217301129664615283724908263362327013670179036083010921521293711366871173656864991433702155789751920420714010018770870658384915637456623851677833598478112914513631474039415281795455222767238014613652677908316381234837284007166860739689166660175897762635051142029088161138249322061649224716803371338343224052099749274570349934764986769264714019722389723394735552760979932426384345668558610378722101699962282478410267329880011876518731385113296116947061756811023876644428546599267126865548313729046795911616604376249474707876261848212681874959407998695129550207332791396334212625025410007736104870661634069572197101336842944666628623024669157477718411053944217703418561493062656435015449078803588642501937788953777449411850270056280394695421142955158569966125719964747754348820564134593027778170216477237054480160792480301346388338561551360155743052648554224836261047093532768452189577647568195521571631018708722133523799504084197250292056612578555341647762091708415944421375113500405541367958590872630232048781451990717466039095582177363873094525077913399262718732904852759632023727493841932403892569742557459013872547513249376154615499387463193760509671118206841100927140161004244503362015158792435300590233888152186291335478703540319317909707747548138034355492590106021007668281843988830665089511199440863356616680155845573520036926828971149118967360582575692813585017519349913558352342970122592450980146539055256986753909808129636359842178815049559381896422700460363857331025425272901805975622415672029203720317434462681428050511307473029010692343097859721910753476397923136628918260658825321923205475223096720266472829699403472667409715284707539128043391954445695640282780045336327162349922568302445393823670462566483750788299726928626609619193787701399346024276230952648284936212170458543266904048198054600932447432034977902191227794347557866400755077529817262680510062219726727888367461725325681429021458732045149245383679635108012522700662006939424630523737938975614151157812923087183474751376092157304216708163545535354493717528317612300059749746282637922211369760712415890402869968231739342613550326105199224017049979475443786629774310862602537646007330548801509950469972325586583368686632833012555872689102489923214143742197660751251224867149069074421036277652728288386446700630928128853387669459579389071447928090531749801327290516306944452730367919669013807059265558895014317654906570108345811409550563949031378936476059390315290830737769533589291411361764693778523310735073589057713397134402219715848403525365677941147406752274618490383127946987001807550907478421471928076968921485109636931953836453418306077349856193059336765272656306763077645526507315821115295498326857716876299925493826236666855588613552205503700354131690388555667990349817134891257780544894881632502787793843614499144578422199888272488848206946002009845896922624234392206784292060424498846895846885877197891629405222682456057163723306517838200675485515915342646388604658922993414433879918203586524603743207610263500953474655431348425984427692666562087841767185474469667588884830406272849317315470234950404345319279398230572122019075073858979570423746741756409238111699941176798562178711280101554725699982060057201459321455659691580408540671480826556780141168396311805213485778108017018551173935067146639748947856055657056064349765543344336418743995474065149366635997039642132267948868891540049347020290868325693009288613837812641010227876734743557686950773382776721059600584099852633278513453477810840584116913033912942887705800893185127673024656036118040869943022935474335227295843314301358984745083238130679940291688187158014864898047898683265281875955155174603419015276483765942279338631667551615413630341673133874256924997834592487497400978703452340322436204791333162545480993309756009379439333892100681339248399078335438109828143898483289948498606941302747079198650357087226469974893752760475887307887743401704390847910010662503452548048332561820778949755472916869670912118197466048491788093914211421485642458384817904796253133571236759615100174382925506360309748174679028054014741379523912097752213000628804577105544858020166127137442276476025240658304659536062623783848396404188874402057624998077868465082852144581580680884544264298110288558323978880615590211855608192024302802655015101680015658623821236479574407566862344856959348149713350960857930245515625542686778570005728888403941598711267799005278778406852197675864543047652850687249196773930274826483468372794351231254477468032640007932598678908870416427690251793731638824850890203946798950240594270964459267535108929528328779062103333119583232847231461150874830649356605725483336721167854165338588016823880489692387291582421500623022276834112660702875897445655774201850144068920221583565330833492744968187965993423125294375349721187143474068152172671502144789172472892518778892168664103518452382832695689301092674088708931630763576117840232942458279819949450153938506721517805731085058356244897462085817137826692503129841837670736893207362188533414963254680313602520054294317111932296987015701417926621155006946196863939882969508802375248447612057275677089095942425873274831300080112203425975167186539537715973246990127652631412034375877755870718157954351198171148133525910322661804198928281613673062358811648945820333361717028267372284996335990554865890137828073107040070538607644183666334892845746237503399067671694451245480359365046805510245023288390228119783095822072712168481112619026229541142596621572179945657082203606847954619383645082252123465384800456389296615756502524498354658666534275037749526236665176823267617721365499726519028725953532298723360216999393390265961389014256771742508020703994546944678844196210434932765360602392137348007904821240969353310498763736304393909580433855759397106478792598704348537942727540576562353972197630564459643447698581771456493785193591891463797954133370799514597316570297013485517500835013730876885309409410448721424267238373718884512236204592090748671136151060693431686512048767677261588209558563366572593997757094989807628834145985506891536643757300134973380576368671039553396364367137804121349718309325847714549297271989469465806833191372810115280736309057118225826422708309191925993255601575527879380331277990096516585620440846162477690620198406254787794803223641461459529123752348335566784167570939718340919132933040803713284454456917949996569213749252938963255516533873233166141811508556248043776385175712243800036841051159856929973197317252800913849791725782397852505914484243186347305578285327450034115982737936322950802275637084143632437897434981705743717276147835179269703244740236381229575954796377996296503059530514539597057181455591729800297402511556146851118375360816076755546075679156664665987143695998647103059466328115081984843686188543788617815274964020982984579282951407628940203577362120827509590133737473748453785285731969920399606345717951873766984666616841903087956590381314266068509344940191386511029780102282684279189689066098181310319010087483156972314222987876942175434090421154439629750446443344114488364118520354674372617506789793198609348093510715910550186897697541517145682604574667885365141823442736795374381086312931404388549453956431028971218966218100338321460672823898305481035616667842764897527765429819703450286287965365017048474452914624640086735555141875787550502473927347438702994083779876438797296266602816508101879186796960319632652246216428667281664906149191677681024810405191420502405174025101811173484255539810968547607865833770031440552485370008695003689873615248133779818139320660962874353893039960249046187622289288182982694473090047337680009929732374548476146521367270309879120990022337382593470853298420713850582659846846851900792956562059816928826284951946217629945117374062498013173281220741871952662693240147614191245870778988407556371145436387416845353392159810246336844548489550325482320740014535533541708141775609766109125036983808656311867457879457106029585237312166866364723392861815219116659588665102226883430794831156028909821203671610158453457797393866102632287762252314284070138162311197769633322802877220263551445199993606505950840032927793271792172226840942698339009582857527603065405992023557535887194162316455407538428973252541715372398334532233435231079931222543054117777660479757751414157592397138130509111530167955473355447425555959103612170209204636095340076113673720257180746202989885869477809460997992586994012781852482569396615222737060517040579403985871470178531199703335754801996910732303619301313966045799599028923191005836412316259719439530224820863023591629691432377032596778252268217887075959013521249678742523556061559480938100287872220679787584925975913796707383790419016336391368698049795007298073224884781044837657448727117728783839151821672684540169681491624124001163566194946970080619647510403570275057553928638355228374967824939285718662274925150493993525026116206995004513215069886827248213746631878710210023480133489359708116482697076195969756071633609590302037427596277142986891716103504056313504538953424487258989913278713352410328830688863427262015064166816446641772136147938154009760763765072913627836316415227061785559359899842043522094617408056114366518050906079924903405792740734596351148326922940314046556575284153656701418925403402224537787887863505297884300909749316254377865590771754060525493571906600666999199613203586186081471953526689286419677709140904827944415753581009364614264279099555217019888538793345594779037123769290327029214746941470570813262758802469002378550894292307329425024708677781817973829564516982868512585411291626505390752062743164612624532475451474418157349648956848629847047489310030137165647087719568185596140893755234032146784250951254637161261365609045224163188185448103254180193767996863882764688685559174160804029221216053990283297629879565596019408834767547291954481060153156511327276606629264841079357713696544662631152398527583976019549126014316792907676252715627513990134926772037321699094385253246077480173403306739288299822511823852310162688296776632803453897755505145116162603882087590859089420296829859924544926173612004604091960477923164836072341920726448983525737646182688990137588178058256984750984686791557384059724895777131582640324752010222002463188006942008233958763844719161972262508989358631350283926720918362228334191452623358547212752778814910566888352406201056535989663538370704887749051050134956684153785645946708164078637050595200978985762973939422442993699250975875243639050280804998288553488605903992830949176730578063033383088537096783955185449381798777839500216166219419412317999111566749620144525169887368152718864026474591161619045873269683069129737791050421787633533182840284733775228095795300638701167044634852642377700270923421911116316724781716191534774634021442619011993125587742572063541810144230872231160558296918525832910932127947244225589433900004146973562154961824991890064348165633507642853637611981547077657166979228492036852459987443150574353285820771507613772501419699446508712892959777219067258085917351224689358395190314592194214267018287145243511748123147665002383903973083184825966430894167093188685623977832710656545443628367227702473077517325128937654914188568211527212022892089275652029348680542346413316215424779423356118116019511554867696374528607172807677852874654722635942524451405273319843274819811689244515386522574068053479098588377041031891408957449474087370672960604791032512023921675086871244855638805398887610192047627974213632414686018803088856200425363814758709418327433898887402023422231050563035494888844315815819195285753817277056424375380013252985035129483678219174549927732246650570639168734825151681443839067435040734819681366209795493342305914122606678498126589530652039430954573367460206086516282635509540046149532557040079594305273497749679394086938223353065799121151796825138212268396234227014745325193806512300489511717005034145118807164204971655027658815818314150777519518639037664339131886484841075968108842066753874095254198750332489141113062354798381707847455378152983129929583083657862875808831975452307336114419254807826367125864004253824013271620805788326052567463859978058247629803357843566468906200053898984942574486336555925191219863283295040975026738563473089587504287764374773719380004752074778966061861493515722092328156444704727252824108658328946000867691788834343446614309010968422669345869088994503225184179013088643476943683418382729508128059224087822991880527678719410163321200196874570403301808888507072343129301495765602668432799530415257466808026541184523014864521597860555054578743442983091474245010999041790535015367231837769073645530619434078362123167551245233358575430017238347854243788068201687308027486734500422320511561365956143737291653012756868841968980615794631376612071885464250130845675757791911334779872507939929962838764094172861222606859678996527802609673213388672675544397423872149114409392117026608750155240001949363663157950295350083862073775633799721018819526882057866071391415006939165908490530049394490363872407196639531031448256585001371705732330395434867944803121095799738682626935351407656785548817694789553464680736465948146230541557688895718436459042524301027175236866762027242489721155702671970015531682330674931962313273966063745647708698035636107923290877509553202113793341811611988832820208522224021378054569995242929433009654731218841387296470528711949262894347449388942825111249601583310559909843028791055466779898508521430787781299554673429945314011597911267563996287905421943391074352944214036956750406759967827668624429964199242733040055445280003477065049493671102140543267477127117286326268607276948251299649599515644973487115908835975261792656539961595845058228171445397883300387733487474160674819567920922567743895838848050510248149824174115968812801525943531340164421410927235773927989752422717976663811736406892047399722027053793321548720659630378863568523322762931876443527856846247774079401860131934940527365280697776455912523952530767543348187700814611033438185724429927346502468396652107640154065484454620864895177696190299230823629281192892410732122852990297387451228653468690526599601719752789767316361394755666929535118960413382258538479672106495325784000541186943539648632805902167367642855411403141516779974152337995766755404613967574800569164355752382897886335799496534385004002750871820576401663907833803806077677418529801592932393099730954673363260638244554689366945161607843386982650866324533805720655583407824098196431493890079016806756939050824118223778104335828207577611652207500110589330305873108184680277905268297845466840549833278895805731038625422587585611301252775003961110618675789051791247053727824341089100856099931766847155567910835564544610203168192914654703033648918080447224322092020064321375104400287564580205778279913975289749902638069714865376256017582641689481076418419049489211674398206007724923605420053722485513000755730832703848183881661234638101193144344345060525913640583299464887415949271915249218723849060048824999614234328319537320938502852906741435143905848248168656887375809994164627887819903962908318769789610536196794018557772057190278405025802091910756727927651811785286624456446587540054221242735302599100118087892655792687888895818502747553524797714080549092317478689726631205208949868530532398270765776627738483265740410057722099858384504482853373396423076373833088486236293966159171018597376253578638917346398684550012665702016724931493974659004073168540033152263506974528990137387608702080008686045350392693263459321310672418215553674146961297610261057511361851332828513469130506243940839675211169024638560139277351177490023850073629140378811198751084400256590079789183402205421631750204716154449493644475749514823012289008252892939086221331913139421878691773263783012520024740036049312527876493459146415947610298577904218900555873786502732389892465006691653918173040948757607821917835371258776600934090787510219351060299534405375209439626654870800560237855097321894990297682588709130051924799303938700785354773489014577820690688975730474585748718853321186507574490883908283341282942249054236454797316095399558725008754787396768825261178958571260467654736286451181400738761207569462400720859203522494494081833267852651012719912039910793964493549841079036192519024587574168946775113347041142654377145880071879220939414474295765727775239609456039168891863771257288978400655628794837038909922970145499018573048283629919990721164134826530387421433873028964187190183586651598658463288856122471307538488064351790873474034825613142448285082836173566914424148437956029865556367315876790915135629946385102165853172803330915828026963947974108349805375925955462349479056780919388016824831067248678976382931246417229023930711717134045767631847573404550306168639599032269441717397280403535016309144796706029471150954717969515391110203876286115771116830082637048011390329852072695830504486169719764900559339609163549914722491164079154062921832266769214319316648124256474263801242112243152827917749434349605765682464556009716696402357466300474157546029713106426228627617564732492167612831237693136311743871543223869502074800800887387924664529771659870551144721243972940695583572433350317156229399656894918255679565906521015449267918234441951008291833453410160018886581258963301633238412560853665106357830968748093397651054941274861540406410326877785542218370456009771145289609305710444539740935237040620625169712322670397646225258555602276894163417149561904163845490005797096551186955440024171702357819060783176598374000785893116959597601065529834628036589275287305767442088207603953968028223744639963533474146532816243613302546752712053894688790671763424170662212780183150819003036228316394900670293713750751263058410048411985649147822480865578197283132065399541193930267589628397628973555844038382802027835871070605273586024292104602459509073265627932422310670211531786895622346940965536934507925782873695396535439491789195938010250825275560966770760459726430324835494759055774749326764884271225132702311801263356658557894895465430251224715760674477738509545152116858180190151229093078057654498820693500866623459535718066793206481800488868127960063713466726746545182480502057113937312738763258204683568518706895851879736566276348642362704236349441652449351430664276353710403082081262471018493888140681353195607254658001342617341652438945519440688228585085854713920557587760359567730062072394320725415051877199678606933983973283472335825045164534602884090986421197656799783034142135000806237334474652987996610310890662450737079096697358428067457593450495322175771434009634109678406891878801399835969958914561014046536556083099909036559135038283432609831162037607942070021116006433662381736791097962707621742386122993481238180651357031858938966636863631090121786163411591724214421271137928643432402336098200475346059490629944361259174887522371236269929987930517549952919813831112434292848498480958573288756072535637293505147880806655179148813116473844309434092125489525761191854328955496708193228237084799951256455411779981517678385611596845940023664629340516784852379387055383862069827045981845558972036042874226277278457168499384957639781614165010071551910174836599312274884071121825233129058966110632884378641268227499932472412461466679276318388455714888419638838734224128425452901488398061409348591601283615677484549444805208337669569477699321744052950187469457048677601129410239279447617636931695426560498884390720433099846396642786188592910149252506582106055936606054606742804141160207034361576427926470435158481605195079042505905489068782801951886143860846093210973557980384923529386385181504476190398222065190105382771688167348033101629582666559150074776444795915440223960288710687352691033032770196586981289353412279334578418910698911406857769197830966001048631458253620611856659634637737395081387871541811485200413950053470501371029607678897210884338249568796332812106994854907692438068788835675409351548153549686222568691774705267449065711376096466604802485501499762078083880692296530636537533994527599595333799630435347852398320687070834080033969721826660459859293678095034878811001817602965743953237301701224151431076562091899521334553674421079143399920357203527561404420614414311042603082370178046259409346198065373293020117006950591487466218681163468481933052752386649327128456322973792656050398488500566268768718329197195686010215610083740415383145023553847124171803848133978029583401245882020309873533081050471670833328807168981946181286582229609428352714582382684681548288369059696816138889430285717127384350788095690564852506497474199392538990120636208560021019385639919587563930685520381277725339684235164687483713998067538315388382112332292536399651485807635412797667368930742805185755154603525104335122495096269657725244034223579274236047363046113920133640875500342273995056855354100785169615257602208182935279037059375281903885199885998252236439978425517115924538898393079162801174198539752952011890924401896186964840256542166496071967437727069730887010922527445673185193818539220720753907509554673273813550240988986900673658881944354205879732828832426354838237235488274460534273960539896199980263691826286132428614943382267524260512858723971160199348498498285830798855806882287932284070480088004411594160161496244924727785713262356476866976001296177995654414975327138928042499475567751730084402211791876535440818961779602576715579371227947938045054021541079827224560384070729771042880305620340545061250452809901027246622107826190369304041598143179752615199744215118608479157868461347700048228857618396396542080184449359258625463724730669496554875653982101711086533898491128734560153236100679817970484745809887640612618082485745895167322851209914815006522847375916200637813408938880208063906851471675749718910153344660363046694645144052060577053432379357147569710113425912547139834704225092485713290087261043288350285949922972373583857454445685340143714979026516029163254727856390288470603109359659390312757269317847886175538781641457325482871701529800699935346350387766130657224657154316062391613580929856127237875935218111884499235258230157646848427683815353556692115221563159197281674565307202284239518551711971570952287343753145269621609698535113495383603257879882202836985084231733060817834660822265892533002045157490725658643692909217522898683782134428572457452252447049458131373472138473929107006077226463155926122049596641279298621896890388816973725467958018435799383755691263017555933986786357014693422785706418927312375029726637568290854598876151961626271828809223325527214218836653162207433247819664773843282106448794891249308550020730610612484834712818068570138193944190488294811394970042512444658244065895493040332881570865788615396920781584998560973627179048757695829319562183737688252866551132912906717002833964507025083999242709757488458537000220872168527070201238246453533234013415686270872310039628664087377080319059992931863104176083142335419564809268434233126996496736283692340756456249500362804231093438154450915118163834952702774457776169370880102951677533931083839997754725463163635745849055851959052083345156495499154316734387740081550151111162933060267736393114522053728883543351512204906778756055443072056235251724588661664672627065840470566331735937925022761580820939288174869422969848597602902282963143173300320865316229509586876913904501899634133063948676606605315257136764273712249886484033232023637618498060816662854223187706255877895970157226100325563130921851237468893192821435964103110255944230489489817263355126785302178861120849216024013284744557073798094934710179771118412260148898280817538775986873405322883467714065882935177589017538543052806326061590053052171475587735996518190220758354381066537379368890841499087923063335277178082413334682967910007135222839998437024756802902501639121873982400135601390759315602955180332377566238946177171180099795159855377557154292993565843840256375817900706292501747736713038998543712788210503904962332651547782208774669675285070820636573222508869313128152044363719270722540256763788156823080423568399441175953672825238393557441640219927883867835120796212972276911443132351843470356587136580549418767178289991765063525704254766297732328281236035837889063367908145769306986552332071519482653614121133730994153693121703469132291393631355397835232522610597081847226406824506008574100648418117192644175938424608757025270804845849342232580066357898673744371498791628798788244952947748874841059886120058175382720159208040272371603869145107024044999746412571106934219941726777731801477528302512006205347557805292660294087052926191208398190843708896607434681843617999055421803485412116352962760200893709179502119588688447091821738564910408857454234770514835919453807698565337466547551966385167840337217893079175195398826692582098058502811883758723410067681179540218865932927635576970463343418828280974069220486104806674225481621081228612017417212080776603519969211688810731388724048570100011293709127218670625306378990129175280224219829276244542350466865456703428575497795725935861243408518117296971392154245873169563340204331954542885256292340079749050713427647468307829353105809412737471461373656116719359095749096519726549932408648187376117587305208665433181387624822387717108646276337307248834673703004054431669328631654690644693943439026764318414258290308125375128530190835969420357280607995961070155339887791457997253329845708988774742142760653220844895435247326422522688920111430016734148396354917034070113763834280783005981962534200876344936070175340081884266462904186289870957957031646660104015742994151105640035711395033072539482720878622788905168320686082428517555860469147938094073905724000796405531297540476885896421833441714286295912465338968279180289193178486369139090323447823100010497946934837370504464840392159816007222618857753836481111774066810732156255145617560657061240194635329093576683909704186236146294899474793160451503537338805656869142486807097560872112486738170747729066765461303005788387211042806367745881451743196212764440345350585924209482954389962487181941183033496496626429659162968098998849794381184090418629073067479209778282990612080050279392471526854798981327848632239178502909407837075865308686737037975044674605198722470716284023954003725821481434415533649203499648986791111730986021761800026714606576658792349507019970398465452066440619083822460299998203170432635202358114660631579558902767582087715930688485315036732101878874553496070492577966670639367264783003433878527160111450048468641331046033761078034914708143889651050193202067271404829802612238075989435853306169114217036374173731235720419361698589912763952413464128908595827617554518689620490494611614322371054503531162173630569483741396933913665527596804603380404372082736991672678003198347040986245619047991482220458389209524202677993974254049520492425279369178483069511440485981891313851345053261365245793942048379596570175658164845632811582574544825071745143025659922833774943275095379907266194199887862377165635816431720025680746665778705173773321896286266324312864165030472035379527394909518275286146230421329851935154144305785629525567762970434593330997569201338165059349684006531567461675179986145919879948437072405876622970324498408785290112885797922893307650219633651940164277484701461043125566791805651873865775237320274975633876777732516312449724448125452097732240112803875380474310717233105766756671849738038288482773080787625450768924416390101958140880105511329560293342564086194240692400368217515022115740804056666584236740260563111504034980205372677403110968082252697475721397561639793853753909907949710686171082131850280143811304780597651900617169669641018329842203265476090492500835651564806317820540305985150174376532159958953211522066224688532581918709222985165294771681095968188152006928641164043853810303946814120796750472657172638854653837907459322313567431176688697828945875120682565547048056872640054810615189445589103385838493965045930974074669514946351169012872740650365354373566155425135387627959989467236707849624231195636215586315513271092528285711302670419783493333639883352553323458273137258342700292317868578447823533329567204116264254662358718584177313812257584798909989615819144561086900217219108622802328054334586368956532113447440761899793964684076719352430404654653757656359317225513265914163043785055731700695892812727860080767258790371175915272804917582065877069465147437992697734169332895983200770293011504799117866658322225287143555049222319409999204756477118893220611301028758983098258235441901446914171480090675292843392654533862033508684043679176283254905538732222402267612028791025232949149791775365550883785715454353013778572697850245116100138984827402291192559486954194400884791325590325653212636623832225619116299370548375891040905276706708188980816639699545543096379603993701235063737279795736852207769409246851252508756331736700343352338362695790592849201823920071519121998663475102832231727206337243168648342080803978638305710713117101665228091253446338279170974686423092561086079442178615010228198197895099918916284661014465650686264559925729456980284474706689451237303510146259302541661076371604508891692233741326629538695678939858606753364563346515353667935853113945657163182127576979361700159433916601249824245363608635842431031240198889140358884790749162567191671507264057606643784471486372288732697445757413395110218774952288556440794243151155155793932379902929239791446963691074418415402973808308529939059842786242677474522910137991178285843843074685561153161229832691496617017750043670790033917166505406637160435306633844015465464123196153094446485331002047034187192739973462732121951593909571740076406275725304349929422259069540042377780626926116817988961447155423208645289999377597969172208639221628354497995824341455048849814713310277063528309198864113160514092859345177585309850112012321769485522756253787935646984126710920000374919592098514784822894249588560836359824673825658290722985783724110476961373257502345335883205335487131148776522650285117948110710334857615379938450043263660612793721925966950209137263460359072373589613283828637800022861104091561832604914212142115948145346738300864747858952968008546862372780660315854071325161048225794043425923779021771739675300655601380477543559618722010240326842776597641895521396227916421936525410533554773601139881249960318946694906021993684759919280572632877116301817695969658266072610400325886963213543145628644661272817609866518508061407300957439996298775244012328093242448392012590244186232794508597526688084615080712854749924026946179691648105248796849616467993798424754239883026550759615573859109313158003741219674774205937942997159023635976813718119995297303961323080403935028856324207852926141195327703150451687644475042220167034425058696221798346548998897079131688950464491526715600515194116120466400957365383324960732772510387398072335643977648140467426074550076813536506342159407136786468941657289863287530794653213708298846238422480974650049445841156633435239708818589886376996825584134421224993299080917572948109440556566971464954101466997683517553884222059305841541769910889845514312403358515930372689936967336256837373309226503110054227688123380520002769239404650623206086498156864335555973758202919229640389368813214845034021762320209725926168299093699555915350463740688902786152787797152841593333869882621076216630619851776357272705263863237508009660698702604780380065984795385633811866474187886363162878255993345586241035350396698676461413917525342004768259959569522524300321678786881802845724338418816780551513058160426955680545493490961875491130858763467143818698466407665232640437146803045327173287397748317875714950087134088321165206152820331479275971910719700573985578077565229072452082495322101094460477570490171461353454101372204775550297917188064184862018896480490299151086510173758702700227280193389721148783010191575552917617254440119201903184047994672743444519664832049929961587086355122376488258865664221018380756918770565649344432390824639144947125220971540263484068170159742058151309559622642917433674811211793831937871807753801071978174939043314642292549418051493669068056859205824515867895818607247048360491712797069220797935848726379267767083216691777090122049831146886467390367530378322764676398071739559269576564218515704766542265922225855983425589507617949230861277649761646505384180196897475073397600238565104165921702647394589811376096066932575242973242266534574210347178074596192154845984210874564221431924107508514300390082890811653892156489116668160965399207857168650958897835977115301802451121438182810986882408051644451404858209151583784290408893270844585843938403300168967577377300615655116343152479409533112821569914097917389192210461895037981789645895182696264611132431904196567585640680555813438603497462001415834832667705126922492865644692202993224322563605750902202237761949600842019378513327825390089244881011736487389154144033154847021981988000431891275668784635623504899870706877262716563711311259991113345066176965887844014742908613211525932519236161259072467225811747457399838671120744284446709089017774967917063673289986434531057926533139186263711685367750664516190947049517351096510626714710455769099546208845957282584263283714951560696147505838653748320347962757831291969326932710578048077573953668666112388999116386342705813303213783022919274618734450351606359213776323770988616722913485623311892131243635781306105097154496972662543711012406585129072676937764750232260400954348756478214572687115844427569446392375785976312257219333600714545373025063056937468805116147529334230211579047823592748859108247471517240937541510352473791501542024432935706683593881604887409741272265501745834068676951570717662200557802174134287542530774692598264301606012549408916149811412819331909345803730841823761825607387224587401593400303453632339925875752726008466760600998278677613195808334085133427410410893296211862697813117010358675965434627406673809356107720227175424191725479431689561138384222864821341995404317099746105664014849491490268226795887969253452159756145936536054539191218263417341951090096451213868517338566053127122984521931747483334012131064407074937878245007554663179860637502361520029433388896894154317060546171092629418225866834700172097491970436829645289222898091419176516677392497090866887111651723198003588967386885533055487117989398821438495204415358255865466404148406120199992064421343809948265542300118857808069112808433694982721358223035031714621538397620229452200918387650585250732416168289529551822729449716119489677717237625162086120450572831587758824847570177919568081666741898670702045333551632828911616471621735872308503829416165184958877238310498780214847280842947874600873962410174072785615860081972524467848941022400269275675125352477829283321211517850743722332694789740344990006791315261522943296986148922463687269161041954899262367134595787987474343255899458910457129693604255325208601667848760544655339966299529203282127288719583730786451094946072890901910453655801060631120835176079078100054502791577934445348629187084522105356489477672923847526356753084068980004947647549964262164784437137710262947858193924999750418953240125003501777063511871928070120381854638470089841371201312885447086414250529672991176396506693873794088115492116344264827293680263346250615445803758286608514538582849425267862483971000371960834517782612184514235393736516188843680102843555369236162790121142378603502168502227125906247400831284846002838053431991426610064520895126584186575131209757066103376895371674519818174109000283258402154547327211139164021076426699458259859932330828359737069773402771266057529924455787943079413943059703059670075600101567533205868694735321192838734848954395416191310611408363441938355367357079181165408894593661042249806803168697153227971129390106635494834143778437770661371236755675100931797254585878078020766522358950334338474563202341092772148768822553148527361816195623900893843272183080129066547850194885738000523749671535447363093838452271819553682137583790232936474665119477577057344268127905215294164635230130992107689034527065428260404756846178052000024386169145064078075706856786208559655372552368624740888960211173525796799356459675239557866908785303132768773049780886979869367338243995724686538048421377460387721953447824520478291942694718226079476712040972394510106269476857947841341108562173822296741339713883577583323998294694731400128984736147219236901876375863762787399600102234867423674629191751878236959477536761990709513684341874264956471287753086042708187921821356346102601104774063421001668344637160959005137639966282631314908595265313762454229675252190260514007042936967708680512070131309522087101194901632774304955442079540840242869161355000670269872206293656690443070924426871140155239013310686129907620948168088422093226740639510674732817794886109070956683032731330100224287007820268784614696674683491656506574649684015751901245418298984768000884735793272169581201033312266520759698769933226906194662953371571963060046671608147389101128904320535676442992153117294300416653509925800519777520686263970593411774852944337578521837866372484944973976700899945376892082080984147389097953291731484323891669307073153581323152698228584530736488527625802520096027160415160978742785688953110551435922147663103110639864542274241555992926487574790477618573891156244278003146838086950497405943092432415797452230891991045003493172377673424969685888111581063897061165830687229886805304599694596573729375305616202007481909130555639860400746078848216416504580959795747153337738488443930997161059770793404901895229880623425541456214823857381100988227275077505452699484575684749764661918659205440201998784742911469897187810048833316832471464068813186289376742176071001313947029879755650368205278616357517750867297082505161916938647305937049029107973533592030513349029304846700250096669765812969868534744958101369001281149466131237458538238351417803014363724500466431073634412157963974664728318490310647453727867056906075820388205442705541442746685853849276857163366916539053745773783823264942173261652441566462032332439865577265646820151851599875464229629442348965617730763312377789295578592609548282454449444587194998455157641942477828613423791858526643362015974598407544970332919837676477270950017242748108552544192067996190086454550522708655302692246948936329120594581041228690530035527236961191171305363968489493218727610932307033926264688987010036882824242830267161433062697973368156862071005528913860532967435948730278395592311986014726774311766549599388938317544818934031212866953855718930006105598991610644912275966260308153504711187424694866608222489202897820992804146626477282580865359278424015355377917488471496914770100904407019250236060702481725220035859857238209514067202439192231643203013580109798147823232174987515011894434545472861983832444944483247463884648039081848765691712125013690707700483813223987743961466671471260630691336058937467340064287278796069173426669878664088051781146292656971102334001281707735431099659618860490565821689760810969534216020245500480035360154462264733288695890133577872695901118623282433970512570293238508925393308005889625414973777966516993746169231449537745662954358721606598163911956181251105830253449054005337745070062548982389841776628949050261407997004729580529209096148960640685704683830420561894514432502951303691015604562871909404619766897145070224528003294880845467182379603879623209069415675413923830433849995856780118065514679794883906869517101999010343523161018062348129988306458680236048508697654465847583621575260546288830376403301765845786999692228170641485174774311853053689024162846227751758915291953080249991373621786934675719378584490002233422537713726073853242897332487006807704034465246982987346378688723258388160795138286843903634641582869138145623710591049886607322553752354716612103438632518295842594710645917218424612260520470759457172421738649794040484956841009525586033542390249169711355495641386182434027798586394192065254233998999806778897756083589084468968710641493172800895708048824023195229982574706863496737438447736016545177154847493406558890033765920785904775001274287264701259443220685116099366356470943249798812663876447006440709776081136581200882260102832550709460254537491932589109688374143381535249664524038274061359821000884781688542031397868256866268683551685055651421654998338872889290218805568968096954704214752871917930696779147201224679153791538750108542783539726519220407666597320224152730614187487665166135256137474046645937843130427854076288471787859859645918536874500713134582448014324633707530957365067920803214081199865175906200119656307891013358656097084828137853983125566217046717921347577487876304579472854554975729102859188757837299897703139024421954307231903439231860564732045601375349262780012425398264518538491784186799118737990587245503964932210954957708175688224401073018297702225385009479679282073709061401679837363974636829382877693600056737424190816318204667704233573424641722988973461313838817366875726329124533762999185333202067338818141870511376223974246255901937678229259924112469150508465475573445391582097309531355772296530719342961520396761604725826932214034664691286099827996782291485868344464156008566195204617486820987846078417068616549013016222850304642540601256874850373720357625001206438832786763488915563143580845418194367591559409086829570844092373266257241446676875539886977884835799527931979071854673424545740052109519994825596303878257714973390291415173810252428342383386691398965509924690660463768915760937501702864753355102634547719051675808724977784782814887478083561141596019768891197348184236407787595443617044521176161368041552686771872797649097643313925412449369797474908146540384737282793890733255093340119051617144093880268229443578123726519413744218722540269595147801603786649589061065638357005357139926502750324147008044547801098985994517682155487731546323464471325529101476402792322730500691804799816913293965578085514072557986836672420931870102101712323669465964993331089915049732128527021983379484015601375534366862525584549313820673672774681527279954397902282061079031625521792883626308423639471372054889073028379566360697713229116089366037961300676283544197275390084348449059041598597225043348803561586707154705016622583091993797384669918455674479814045469398882312344060345512581377119930818625214566016803286911873692358102147504934526654745056065221214610578185515909390509917561931319308955530298421159282260688862863197475504100693934693038447600962147574525029999436500073773187449274112322794874504456755637489496342163521742926191331972321904723031483104956642354257230349095594278569745137198935597121267922094505672671497718871156020725422959170943430834250075750799390229007038214392700782263665764249726659778756635024723183614383067488519491001672773542884656464082735532604320171487544604052960111148549334465681885406313240162958333908453026870862815790305477280341843444386955953441085105625874669553787520494281799911631616023031322903157374984536829059671391554574368649629478640917952699038726060078149597568620935942198123217803843850327082929820552141393911980695978662912411641287014460447556488537642749608977352787118916080176597287691002098085583660220202258878724734076974501806696529993271946521238285044342819564799108853633946563428125793754547698180552352523841088019474804081245379854691417457053277185873646024080596872516185330477413912639489737702694313562696205603540240730087960475427085711124971330433092964516623715578644525242414865991618490300062065081143533568502550566459967922661780330002542410479170822851322371022618427263844671541064231557356310234751047320694163472029564981302262002492626848658787425241760326892296097695931778302793965465420502186798377845115969453175744641795616676288153518207259372620529692740133336809947320769999609680928394927574584563051756015105656948962859864815091814836362518004373935335406192728926607395070408881307811670729073250783436710676275917270842676002169694660674574671430861607317491157599136651674559023622376898553124589469526749711144399400770425163448489987069332982771753600926862020240419502174742757612861303980034796469106583226403124479558937084660827137751656104620263155125742198613482774847548583155759140612154034681937695125289698627070959858743870551881677882908462386702875627865893092443564307283189722900183646914739168580299927101957304427996503624135114895367660592657812680068342474910350411486539144182984998948528183487902631007557073745303983896393407669641064493538582915168609545620025010659741898178213498962652846876714252515770044879412529379449391927185643080200156162564198214227518942569085931353220435850221419978342367134223366665168144813416199525176119434424052733194050037117796777649098985617266700232778636917553770436401046725940827784997708317846392894240964092788236760284598338640066552700135847606865064283139706561412736943440460227791251689569044514750235538275900346729356691816211932926935173775034500654039759333985262822279664526084525417497313400305830396660843309923099705997324913001415427213653890013633771112268340637151789860085190436375843994666516037799935047321988702126281483733200442442887240439935835025072082032027722031656011934876366265903108335323651588115001569666475866873949870351299506954017746958796453521156981724987315484751132224564905853352044031314633482084776618334323569994977902592374461620998860401287123681890565787121732145032709737438499023339326129468895267536955904391394545191503838005857472215648431222937961582015136034126172619094405643556138006743287059528425798668484015776164741596415552957635704154410636652761332468623426374887546801847193030596365314322314739515431348367233631291597489330571004160899630320625634224135623551614909374575357586534488677647722499624232258583193969536633293611537630482128533008876724532530246023944651429328223769779893348977644851396599702156388281182402796045106404195089711469358855520972816632766651613344864390880476027891938544999749975238050910211508983539364275784622330243435118707115349952434525941147222405716883280040714047870231716720929186636621606752636992209098182494101361930152448768886255463387888265555123890025478826069369686597127726412186485982982929634899982475391470293167832040451602590348750272098162981608710157450092183455649486689094690869610764477782800864763358521171363296251526730061510181284008476643793529370962921076495959732524521073373675464065603278530046501595114454105355459996776482385567095824954800297981193309691956411130883772777737149001609948840228491384289892300212179120681591640614828563281893986663443656887936772610227038849054193977183525569862014313740072376622003795151351337811558663277717406664930511965134040941423736092200244263013384592803061354844546599954491978975899461221416668928868004225489989034497458040012522636965695161767557632876156644874858574012601208722945942273642990835488282931270102185813569470452317441405058651216066180209413550575277558091038936784067198480720098541616699242471227563289751538736836959771545252780860257330900947694004182525275983214924221978279144996010586437601130085380628673299383272287042213414247787372037990977242041714535365711791823804399200844599638615197370423746756295304253719154013709275207779606299062439247663348186719006450349214166601275941903113724833947776238700158891606298487920976396769979836656535074465705971328726486737740494347313827921215218227230489419389052848058545519888166239977930342921766883625298834397528749496201115099936346240407138696016151889165041511940800437235658642165107835403567389051002795735371789135136014393629582716442774140249937078364394964464396220968892614849742608493317174806060086157632407798708515054971000331571949509671248754421861273381902139621446432086956029256619451885029738426606235695164378884462003888160641058150755130055720863536138918914081757675855107052024671046436531843215181311321300298933815949353930338774327201667183653147878754745893766398965539493836795136599354508990178725463950982300400102625954136257976879757768341300131087450218263624235107722143083463119937985479315127431516161817035999117049710600920249177267041597018626855383461413621587387459548779495121646180559415727837201976568864408381803398733921078462086735088218859226657886103785996221382271992056975166400675686878964569997688515846201948505206497845406252448712782202832069543052200442896409044351728285915187940996730403250512280856421478077999910852553206875210060433935883961169115239925226792504700453487945462897724608666906905415880948443286824059930215291631770721223308949595206285946350237582501554043696753432179840004028387140242563021020301930309867089624954420453653744496110040471818599785628143823802779254670741234379190787226342297814993846524358035512228991373058464440215195526716985983165770059274793729846969116370505758073235877254590799147019659254023410456391919859062594353662710873594134965281998357744152637771250903491627451322792791123551956409287949062804620570055966086662585729578857612393863042794063781811471708593095722941187794605876515477534494290156777971913195800526104308056891609683185887336935652398300229628166415628401832362110720956344084965901463397636295676508463089442121384399746004891956115689215613323779640663807023788217977093933200297870343181840329115823777764387545423205747845526329759393734005843765611179323592129419096295377431896856060729338727175823282325282827367050025243485754659046308870974193419925592271277919005309196426822588068298059802016228888818061739285710093935176379245291251551236263090830417646708136430471713079481053289792071785532927197375297803927174432866430110124865499967034630914115673862456831672058836298371796672969434605539771337351613855213236914096604057803687006962029568334692227766940967785671159280237365048267445118542009006098862253416415538600393057791101946277461398542247551189410594797905206366965284875230444108336015625821447579636659312742108487119819762751995954118149213015736333461591714825074270323151828064522182059156573398943271315665554930800253947423847771857586486575175820253453844909441791165707087391643503597542755603605147780297818555362158337801395369374173755618946785498610864890552592099283012235701948050311136742992443696168098908652220831125969071134014931442600484311234905422179685833783516439559600031421573932607741554859468275954311588173993135034965956806953693365958137823059806284972692417372082669433112864074318079007783006878106894969337966769170399604319368607601240401353743498558507640171054865753970466969206628780744926674335295205882260050225881154918804508374576758894440443642645805624285721926684336743481771926772497002069012128987454890734328632119409588278212686622666413498538745063070826578574297663706481868912921056356586719896342286622604291628352295196360333221023464484560444818971932083792933226606648644033854453121197973463184733785704328054142942456113491281375464184364068260830227986109709867247313595490191339348973030094007380484951910682211862070910863615648428189899599995902731525545079786070245910912574330252183197816236431030998490732409803962660861475699057995009623388229542501299117540901585895537963332447830316938597184524189678498464731765560745363131041543036128604280718226027470667129334151978379378248077495009326630317978495016449745659835430934791725927770579651768290689365146508421583100483094451558324656750034248908069477870628541517225336594976238610087647306994382655797094141861073424404990335251027040471115207912937888756832923039725028370360981716132264153545601994579908576091840663722705734306719421720950447923465518718271682832417671970201317705220406920372978132020773721677819588871327727202654598642763595855128173125700795828582959804437258990725161945047670503385480731888762972137112268691659738244166720047397841258293754670250811619991241893270701225200566096326403190784424442468249753240518302678103660664899692036358399254979484397244260888635096218516547130993646200027476152985328986586006351897027615753736154030396278214339501525495353834872272546142721132830089574311934791202477997904092870825198401613741731919461038647209234770900642749186228303010598395001806978637678263385725865144319994061023581639860828511901420020508233678401683677765841290156164035367335513243111993003823425391706693373919596251180024074728089851084620554017976601203878210383003984432989511121581670185603226621515144726099473215887563312141084065837885776960224729190601801030465943495983929435093448144309838084091608955251929565177093984216614041860435566562617984022809138433430693331556254150607474520089609944406728605862831440321622403733207623565439369117230540011703025331380173486234078240189097193812012239474298199732058299757577343446248939919528489730417063307254499729465326623531124811460397090530956222822543508902394000094871486033924033152643998000289142551336061152482968362243309006572047604664323770973764494990797994171627847462220269848655332838589996047422863384036934392964960596819097636820304640742612142574124902946289973464629796139102195854395889068298122340829259268363068733614031432687212192374591016879776581313595397969810603637500906604141837898878660577984311861310909897418786425343947405422753126326411756120904684026601001328698493150405032659357093072165212504528980737816596663160525256272987193598263865368505636940649152464449628785999908137283233617527234821929066019747524126274581052629426652079614850803094691363342184473185665024702704519068764911970242810649613117584324183149630303381769276413399041865212344575903847705294406239230413502592304117463146937227940769645070524949689624996892715049610373641794119604407497793308294118094944686399326201058248636732640874467283949140310005783241157490587007124077252648777593455347851908912451813322969607109975445943841183220585313642781522206852819126514393124363305274788576495521974347084799860934284540842174398039600765797125566865379708177546989041419038898214094509953354867857353944126309087402357956772006344079423912714404982483859566994688608321331904140211693812059596628482705889532009289524568911583226896346235648934144395850092991873670299660632415696791567896297434420064580781450112042426342870153110977624628589494453711271617364047025349407826857125514552830653359049900424668412023538397852403552166554095660247163403579939363202622611674657504586771765085208714210904233083727379180588861520475902925726042900461421133867598901269260103023302998933681192125271509125984995102518150209423228793658792285108224645269516686826635479621861306474131302406488339133457869042099467602361078772685322465467678631726269863576682150382587219802026606698204204510651718336744394426973324924949732214079817341568650036532056684613112372124584878848428783092897986174763960517284139651618851464371738664823066462928486821239380064727719886245631160509949790641580626852208482519208029715993563939306941208919546470506756082215116295216249579657569900120947564193441888665193121467499902480391354081523753478439029947940275772840709272513781437450423375595637772195199106159171230783762209191153312411993360665345260823231155926176373632978941937048812026862781258002146253828104300928228112850763135082049825994526447855703129012111710726854924804379855186008378070077282637095604250647169521661007455393064402190844482156620164804236776597109055015944684655474512414261407722312807114690155260707049154882426417975820570780204687549851942437218026938634301321249817054281997534147271925876695364983746078918608131825685237197882422833877809558679025942936765543751363088443837005243746333790286511000707048235613967329627637729161614750766801856135051755900877233086087896260011778106451579121271883981420655661057458985262586746614317633311243320938497581333953104242126211779781132018172355591387605699908956198042278704891926954040243904238887707212043755378809862749998690998325086033491952248070113941914672629284871677968272460602234769768328510802476191805256702747176700119667206965326942044370053078522060074758958851530334977309704577719898962834988437586039224091635340539946278407728707764018059559318784260024308576018920408981693194825031196504439236773982421033545533726437452679445360937864679283488617917982758200351537035912058450151212965276726719038154918793732867570264449920525906799335121315870580000684078560087660519813904852868002994311830093359087407472433461907950118503875668658939934483912180989839993711784918135570163957631747423793430701079929668823147518507741201339811164111235335659053934359794632088699646644466279931928509315897276973323284375567723646589758056174028698880606387557409670841108325735039773219788768816921566602272732508977834559940125724893708305357878170316848095959665008747403620749625338202313908601982681710680299519603979367904936123171061651273333475678232104893709695945070835618987708270007776498885610509678542284392091875678983920276724790191111083413227926026847669550546350880676337353427995257784850525235588021825692450211688963716603610484180472036643695989996127261234344486161306456175998101027366426923500084218005238227487226391024814228460460322803676076435795361514871275479974945067417949801919161752711040093523215901487293220331558269856816973463784914388516489275871276527608827137318747023673123762908181149355878592831682408887163435875687781928417645346815193026786171408292786236409549602284650701577689599711037186071577621372765273640197032329314340110815429839519919196311205741904411630026222992753341794010701554364943949791313165398616998887390911502257516264944575260214204265021315135849813458992442655269798396253981961675054908888459827030464915167642432373624083999594454520166328322939070671756852536012260959645537679778627164772739488115293227634327371639637272011253882374351042805238502466900052365193262660919607370271808035860436804744013700834309324981696041820971621207885117495703000412862230940679360154306415721453332145585307508420450437501351825945416562372546928069387298407241822037806841512167453425016002399126867184975489521542669121131713997043296329681024930838237106002666349911358883721128328444474648311965281221895364547372239691325923948190710478655380598867856348199779767609718844528496718674049953451431010707262248797951968813881223108970839133183357703960938628526753658828627451849727985404904432672378879898571366449069271985261092649984176411122288961965038118538758599033834220831837326736489796663348025310002124158349309333256222309114123646310940662869104887471776401988310961656916669933815114857861670741967788836043046274711843791146070889077765433082850720600906181094808779072402726102537214266348822723920082398679752437714663039361303201761157036597535806636518709788758631241170303324119808516700072217845292007849521326911937879661845274303196597490064311656013017791339690116983501716547638439459211695635315034091421061574635622632037539114193998787057979158805352569196412724831261678231366684706097766768810715424696931265041560121798412158346877234291310765820709725992988228762793665449318406647895060275838057144819950634418468153891579844767940227037950159733268052137688793474781307806030314792501426742436438865710759620562086211228821666183185523708557093354820899907355482954904215699690906212260179299684004628700552872471447488086718980387327617342980301745020092839108038116671395858579707823336059935768522666324035310533687153713416146579951707709201804880321783108528952759248691393746095008789242074536495440502718368238498406046885189449728645623879147760651895832497586765785826798173937031284909016929695350066494107470941985117916933894181298734264856357935590088296871473466365276322153979433719860773245121031806686100864132228532383144340258366816646508234270881982758806380979022713320977216078530608691082325999891507691754709347194181524258486733288416695178686740742378287800046291449433805384920905553075873092545658273487493783246823034210969762782801913853806953530646162087605964209053919679459305227783685761362464874278705394055495901711511411763522844559427368474400880667235885311721347126671793923233421990172100607652229534054143021464603854037640516111519182184923633361877043079639308251944574084409558598493218003842865755054079889555893270529978056941093769503326617468931216069766331729700980833204650824611465604369708433349154171749465773501482927712059191898715593902851149861017887978781897370382365384198869251045934668907219510726150076135727521615641696893810957908189339701294885420223032870398192709845007897166169120260691145360434136327077257544459995717019260336395684594205292735992926390986637198416259430784530121395625102874427544521859235647904613961901016813273051563869580309320529220111326898510733154761051365827993348402720654528148732634011399223457432026077284262874258039708293559068528685068294725745944823167801448957799857785543600742035242229699581374004538552516157304718071886348064371734564284686311331805786025154059039416453351032129463669150719082130857733684856086445120417868512078002966186079905068943877108180392546989453718931285068445834739614049746170245982875426776141025975501141315735133223066590443598800165733039701617307780492877255054873501780656161363358254208867517719449784029803232319196226977746971062424724119585092033918074029978230315127365670697807960626477139756138783872130428107187352007601516686479610800393106286444584872566033684265346802699285244049087617032730860937804406852446072677703974188742652975180017170948154341760987804678592282283537017031107406798068301018346828348432965868323656916752059908730900871756395922270356643446023815606498198693868089065477491684320506231608114561643369127384251345218218231595931143150333975113579446036020938945428694375470129673852494951716161417870198046927633327699878998023614176389238855791046884355017816827011769195053248768475437784731055083073849871350897777310076282381030453180419545542001885149295865092026138083850814781919146433230715749544183521885933136755982353817647114686993005923537197057731658514688517634069918856565989773080210473689815059112570727998034035918725436155592001558097733376009375336293551088746592664121018090690748938066977612930237111330436265150106117366874550182572300358195293413378794796388117106334397917029556800566994343161290163547318984622810599193664503454012051607194937387965507897583773892789830090224923619211346323288129263483851298443665434541625493241752074060523871740636253713230098804142747896016483306271762974533544853046076461448891771060890861932185851365437001369485591194364861484372490454671434000865437773766366108522140622306745771901254090115210150342261738692150312528461764499868991301495046089838589797297663953489616127354230889466398606439471215543767776798246121809901462604037402171243723224264618376545343906527367698392228051827013750293086299521383068287633153019545655469458274748921429144534072117849878205418204701188566171406160581997754384170606217016998657267795331883984374228035652916031490322789860236629930180074891047008337530918575788798762346349982200606860770311103769095496612258749423996661329288563224527369849091327009806477436428013437593563283688023534322991900476499406553392003514085450381012901226860894218736243924430948732620949536400897807759180391955968161364325405521749660986777591625380237401610617159054350259937996758417299407898359403339622045843114300291253665741578059330517481206758264142240172123997469167240766489918742123153211714954287823113405424071683932507033214669256451874151956149164388866713497035288766201705227172847863356736602135380396518677423386760414357893235463232756226586223480556180955526238837719677123355175738674106631704341699242846194970084300415093571228251817822657791303202059283232976437264653285529706745283312165238064221556183856127718092303113805911974395225228208611579292610534382135304199684265307150392700727695638200556274200497356440076870068891905407624558626473559795583440943442121517391443004034958295545302630222649402928753016097167385779473225922316337572955990774225689379823778913048157099739179421552081413503546631823978951163083357373501439711380283014906504300797784576500199618088571371187331290637411140335276491941648564691748793783080287916118803438691955863672780993895649025130678209929028955110204563666169309115920161055974690183989216072110404041215771608267538633104097099742920384339309015521985331812203931261631438192516486122879377963587483161913726753644778399806511389082940749533887288042866708451187971271565658042700316750808315359050467110898350597672307183594724604368316224228322647315517812923164773177215229149462790509221892415033695845839542405121754341555690011044060540785421222293712437323300678604446329924109647473284114382755609641968119433016593516747192333049336872193734842189630804860987151154802651851084791730441254939330260498227425375983778018648763384965869104827774182997043307431956746671956512498261570454984728129315077011189913075113811364281511119416830509824281599851350286182235369180965554534957398154811796117918111546323758943975982572751437231905770050469129521086664470529096836356730315864905537967420995691964159700725785311914754033210101260056043073839269948798882997768571756213526487149632867214770330136367802091589748212508236014653822135295024891296809298988709892057966976228033132349663031804326439401249244499908818027493636443478065052238975401797783568994129575783330239776347584536266178296241274463282535903563977623474419578363803540705359616983432150266437283846801388816117413217575730015557667908775224444297337502973675807556612317804467170760584654205543836766025531386247119937467952122781172355325690508113066023777764134052552123338836984535246255082421352063392041831065636240740344964065695110851524035684257720883167138883854899423589910575796552124110988404900358916499303876492078568603303471377476228610752300873196544302391023834305109099324229916078751666306818319149468955563770361227068611875851148003363102975909583650049817285375678849696568253083232912061327131182877099845860157228691479300741010666853895699364676238042129172304032175646338074433679155134666641504143781996836376452799190969701556841770248492142218674209911122923193375909874843565063560610935438866077072958977447808998130757804721432565134473673234511010968305362524401804882433602990827548429045965403509512485857269797554776733786530150870247902769120297365634066326143051058116432199033551375054766010017099017637288732302191640185258571761307697910460227408174864740362754619241937979565302130873598976135198798408330153594796863099888713553719996954992907816544853355095854930591463430998091946216428444286432131307835398093249275008601417583598439499413446814132806292153645472470676497679260663078494163545518440524419427551111487381727229703476207608581430493678605420871272570392089775337465565160362165408201999523328075385474703287236226266363450993963077170560925224248050568457137370073584954456333822285560948455305794283653974363523656403976704529693809803512094172148947399931374363114191471685271624624812139738176653287026570433715834782664864925832576392586047817329742701772768169903043619186748816262897174902927040052093762710982216951149868991959606671140268012142294648028107184967157680248117114509259413851256074295312087224523356956626803497186602749507800951826618955410006747931437129337588013157941569377039457689860024874133192637852484979930725070780097818604936401247402479348686192921070528725016112086069297539591991488797031913689725610176626183583460995222051526863621978008959392061247679901828394075976993620117025144396759723204732511558923933151104185918610164769117495857981371088332506019647235102864830759884892600666758661814020945994962834926582678235129407138048839335779753489492204710585750069581289001018308174921620801025022868735703073890619094235341470321423961143491515852087328371033671035048155773122777980732219339310730288988060214789469051862586197659540296391700733774862916541180250557238840156888628623001048927664610883659326490256931392990790521097840668190907228125859541116494321339952640506129194890247528463703233379651683345165285865529651446073875089900722310633299373558747502216334879338552707430475403278111763202070265487296262100723858978410995734978543016345974668142997090509190292446538050110605817256665738604503502072379509817713008920135310195975246508926282604602727720690859397898622714295557845818644986602223752627397293108331850309372099646409450703740751570868513774370215862746026479703225281967440418844047848944235444310876837054374407768783034522037111436155214027528159136274120252950361189379819940233936276417305595388790052819879013327923456530435219086252834201147061965966165099917211941603693306914910482770576751980063503062694408458312960153399072267230387810136262920208833356998784890538476294211671295560818226496280166860329291115991236443833979976564394987990900867286332754972618533242045327367053326391626444907756632543851494118697477189142750273896086725605260539398693051197117777201791213597003223812032031248947020392154915817100657570767647280902511165912347993330745405763805586011820336091070849984291595359533217162184627418646120367087780841824465659324966260237703532222198349283054473638362546709334957655697208347374923009830128205998396100807737238731559643442574495967111330085604110395292169049544314174755115130387083308362040951769891188348804814935799798614932203670339648049823793820719917814286984737560289431277600430750521900629006321297506997623612589487021166484007468677390625253299838724781185089133945040037504084371605908066761412361049351644835046252753374332083180541345532481030738880030339445244872462981710387851149010715058521515601574837251104561054126298187419361350354408426507199981906338328253717750053123176960250260219284286695441235744807958241373971622157106672583762567657868696907692855082314541309686884282653717006025798187047483401604809086882158779760737527252951546813424512285457510585808280061076830948816628573243722335386415009002734098898999726451531228028578925111189998817857409847300565680823365097168897351460830272474304839368547626849023590145267899484601340096841130186539643373360082777096216574574327195651196798303928154173722203716458009641051159202498084916873205414480695203833182046800330746718370872671107562474640873282522029017020424718994066732417192074720047189361142963575830353828231888560348882805590360289389970947348200715693201254179889311784231334174943508828075529869569359374016296165210926631149931807838462696015264548616514447128351927356475073034058855084560762962223104883715654387753996565468965624591422275876973259978687385355287829476498945992278486349934755052047298729844960232967361444097770063536313948219189479074828785543650670028842451552501087645486713570381938828372742309685139216701486463881780923628429765318165552002947513119953030353746191666333167245823035149758445602914354186344735684833576326610514217030804874942737707599348171585695163122682772757803054912411280783558917734669471790829061514681826037693138162761309270232771606524492358527475974160445592289529511094681616066549184459742145440380954561103304397781062963488430031056045220010290697610546332903742100571374028828554231952409779031752129370660535406800557592297186550457713840171579189063802768785439425953030132735912756215051869767894601241039062073793144651482233238872496446415439260599678119763554960612661632735701839891729423534865732535974586153530858241524543491244620374119208021647897100735416888520141195593442561790069082433591248959628538939890420077878122863758458568007853970363795628348260380836518368638241975684125208657081957369615900893815469597837330232948810348502421815947819939079303654396758856270496142126343390602885163939477826142341805900228346008470659734898888095867968983705592023255953430749103283304237978246544839017512966312040459938564945137460630588665859085589140358217784828304457278958565051156345593494290095867959763749272297183585980544795191510646510987349280509555921701579848289291042521514583728440849966861984400702292319507926325671375384206446700665431755080616430186777614662073512061476930704332633161024464394639050096909693921137483948228310171224275953938806137224920531256795945432852084416989037611345865283943371557180327704095297353250252262946898298597963983856281819312593714203771366378681030145459968249237739866403312408608221166524879594114850172053682496629901445220000818709664568872508838652042079168605190260083220871357482286793837388604801082614788519406059577714948835363910259184564129627027823066761314583462996395422104964714771941038738485239298745571772210877061310024188675998915849817089288676948515071087900335433559955594370359696510066110153350221402011723688271528644953669172386781315800584694561914523613244049143883226610438086264121248106009620626644839668966533259271860138668736182852495418330613421664613850799097109280909283396364041534766583672827067849274337166038204441943986428280569910669778530328760442166477937450439315615993853240016509401290185317988940033661694500584515465114266202233083758674282844378540112866197151854439948891495977310882559096340361856851828560782152554770026268143684808264245362356311847606594124807730421029548623689877370415096947879119317107020762013168921161281482572881282210836312394892567859370766876746331511169731172989696635121453641355790322325132568987744438893473486347050601175083471108424518654368684547868278685287598356826042206046484005387019865947957073879655978022529669384545055255661511815495021226066772146184936313446954001283453027441295613229516271103944365416759950751288171258090300520747896615450908252900375953653689590737929974728918995193506476351978210803774822481693078567461258209217537956573787313411408351451723450109181242125772014158439134978710560692638702685554862396891286161519706105171593687616722093977055118758394474118356953998350548541451692272491988796732106725701159629265213505565061426800256801633429479862001977047001482193903539045659135905532775481638441064742475282957732056897999525612565215097026135755373489295738474605794159694719285348771692451424826578399540475680496659917132172968533195359282144209350340446176680888543189480053065520822574510318833933513867831993973965005796180781986694218825179650460134122864994665759750556854389815946955410651993821738579738511761247245769897821848403253835654084296093587036400035298649841830828016248097398207335193781216130317873899228196870400200613078505974825271407540999833820554009837156701184164157029185660935864157786379452837370124952806623075439097899939659890174236867444849953766681258572326092808211430049469666468900573827539753618731891076910901876201027267697716769003253162580590056742656788492811924616964949613785111552838482468852447971181832946129201461927400329051760702084426386410068323452703732759785009267527870464615824492231384965354064296448429592429375900812559097164918667028812803133146157301862252131172423667803097467745708036069925800423888313188823420850065629699542548871195570346645031644768058124512857434849558870563864966442150682536577781729838184841326369902241364161790005041261491148754440066004070287414796294125668392349594354017294480445106657703772860694968674453078434880515730382224651911603237929893406349208127266272311924273999152046992520601265569972999352241711391397493310698536202398934524065653014719165464650483582710160487269724028425943662438623582272950396854430558860217372570495378287501213563577638735121487577522902708478698595455860142608162012718653699599746854863207493994956808874736941186210796350378270814972761490186134198641013191933852569473262258620210974386599585960056770124131577438896359945073593407403473088362453511045674446022124251421010716722394004495623550426868778083601064374224647321447866075035624767951736898833756388732873522233869319564358936434234848458004523614409439794327760903074888460800114219447920429567578056279988331852179981135641677854021274694396096122823325821811625935439249304576026947227186695504542585908773075741475200170348754301010859309613692189346640396675340008828356426214819424285940936524677499466256439685736291508833124827950005054742195489110522923379570721479432148005352790610504099792934386468176944352238359103808493764221004518256310072190393816285749162595004589991661177604400215629141532739601884560841213371217400176491141333083484169323682695186560358509304593390592819287074869742050869452851438175957810367947930086436135292366556566262853824037663237867853212210825065826433866524317031676802818871694340039394366406503726347895010862586661731520372627628257395055451128604440481156649643105121790999239027622671361051903302808160234532995597612908972145334774188080221009707283521743269219574168820073784638659069804246729291765637442677092091963954013930642632190201076470451613616036102341919298872857740613225649728564651705416571719929853735349264321957546774599339822587623510934222036680258369352455515201443037171139451979281553554261542850756002690697117366163216059006227464518263592137470409789533526316778865631096005255406590947627967000215421787293257823669005255645443623201773912193109202449454557036472012206445033355395774086113256499696643637779389706435739710304187821478046920606188418859474558545265376915295305321390102891253604512550028075678206434364228058867047012431695390576706221373521388268551672289773718170480778651527641172830828712311633106881989747993953988489289467453209789747903582444589135743206484309166760524546847107299784137707895236187960971703295383763495156712871385069686264001852327207409852863829392770238597761483557317294284909715362564325795915222394685942358986058675018702390233521805777502440374459642780205467774243192693748759852315586518749257463711636285217575222033756337872834121385171172061596870094699376462482409695338016207668220235337375968900575812557199354030965842602942549640524442087088885257622101254269775952265784635139445264523615576567876982272678799108212943118136266814756035831146762350069335366582231122787146209893423773594366695739633810816833315339716689416981032174217203914183764693966015517401281992312242309362571463441971083372462966906448619915574381133700520026866501822587604787614854151665663737157759873655313622161169407251945719452313181423652430778806886902623952253019337503469747569579700208571875772125998466864886939522455860483301268327504446510909064847341612479356479912207421454874131285602325683012838005865465115188959974322633196394687074351490399083551070615953596612194890335073700987698967963429184306347008268403622218235979538676083773390622625455348893866751524770704492892817066138305562124680903265511973801394710200956261791765234713546902532956024811283222380637067312240367849195662436646978859861205546452779047165061644227076866916815313087146677091423529556568684036859257739064006275656533954741984083381066067958113524022804603651910452440550159820641964427350676576151413198479800754148646288511108559639321310799017173438939951575545539774635141924788401643903843778652144786965826105159055813762933439500356748447101505345972639179718069735300039870185686848351085641664117817516274636577929467583510408618438575694679066264938039314424757364324669772599775167761862111825758965733728000923188974666209262640825865566450816563889115359260670962925918546476672783020785336470374509427213109813714017854728424780226515323471101088685650593782856730597321997458520493744878174534578697535463575247293119758586983210175190993682464866495316193240768927947889624921000354872378587218527926717509134238981935497722793166014151117212152652596207570363892021308138560782815105463672502758109223605156975321138938526299402594287993626730205993245014844454495801391742825500527029811212435586264249971057101706224394534296630045130558019509501927871302997878081335909266545262616108522809448661434938165855434707788191313615269448158809177635071955268917225177963564980297469416246350876691046674924893718484144231737303348395891827420080758221062842980143943358121918007592011856579918941509535671826192623016613148183852387453183786637678549098326220419556265704260585440614506366973400654126114365215577925428041682040843333082627335001674837481808106982585999913843838217716788837028613616576178122992873753333181344800556548326862785599486556091384483007060423001125443695711462983526731164059869812990935427905046371231506683049871767106839916938525073291070724030986602883474766326463514890819271916624236286249828121084712511146404207008226561773205957703385496373279366273520328832825936940258884412246706480173512046299724055177393883813615464338658408643939911384632041574690227817202753536093469905701277654633827457302526825415397023324529048688267303538068452973717668631313402916430187788639248051529086832551166827331049684199656530946817007234504288434817422494579057930557363489415419533707966248500274186297380982812661608657109377385085803212112978402693279809832613396526892441277611399971675874340403253536029625067492236611974797210183221738637278534165167503379705241523935630160198911396935122255424293006507700605269891675090437941312982623841004154749600369063079924188047903976460844468401682960950861751440029254796066325182946706938663123945911758372162844011536501364688016602406457960296927925162297732907514575787494705121140402969778638048824272674779723352830446097390647639487416694816344211990527916743540682954033933986855725819438041857222495905511356269011987344020807610243924541877743899224645509485876725610528518536546699531072776730579891081741314798979633106918035530737732601708826116864787798220392621348191394384063332737965020751739374759626972259854012753439168991098103582500223544028457540813476709934661907459809997692068427827031148799728298542039581045343546190908729197824282215497719808265259930003242698729220255068554110256254928300027645350389690824436430003408628010956932220598625985846285581546210489151157059736256327230926437352239272778738642511697624954889326921710447067211007963669015046918172178812788049698523125008717995062359547050634721088655465312853924932980065292029100544892555887903739017257203057629730184289594862960167825757618327735364525961283709062772415011419852464573517338446587048212525182867168832815061492961807883915392762881624031468233729619284137753512758455073772988473107630756867908575553062084332383762270102230561951028526134702040234769994160421573950074160008538846536240694196745773355716965343199223364999763412205441972174989283655466919488752224038436723930556413933935536183947923608019657699771227335028558205561750801364629322205041616519407268963995110657152615599123959149698239861834390154873681063791491089350255428276933634525270665042015494869748325923178729475865157959934586862109804980587071038618843281372971748397558148192899202846108110783371026865141001850825241382920931752133240928358672410092997026904279669188621541808837077209168849781865246064991332829259507569443801619342246819672174911016186664143534613885766300481650005518970685870038561501486235383141458120895337004772389999067520550737340500567763418117525860967899641226574700266041266614762540286646454236128167729958390171350000022460335429952472030156342769090375126512347098988124483660865988543096681484220212678395180340768839652624363647751737197159228340112456816584691594957612294421147363885761336067884375221935461677901675432562600498880751999879471894916908224442510280973726864714520669118583172676047156531721517835473136212970786220720140916906205725136669964990643023964639430363534392946927428351418646327301654085666033477813181883879641934901629881754584134627096944993798902257377389538269029524303675035030166711325003175439800454843047217269476628691550463151257525932787015291993555780162884149456551510160688399797117040862361269753333084972361073608723383798565702942299074692541011618885082586434581946048346358270063706514313214009554511386339313318516429864781420904352808187814002164690607926319530425321245491742754822049843539305118006607882151336818332632247029910835635923749242188891527942434369613051932016819378576003655356532584059457038344837100858934570747836461664870154789119134178325139432843014672870289318442248259599254678329113421504378391358203683286994290911552933332207998326341079510636313610889950068506681386608988499890061044030898472587010130966227475706340028939352598852860332383535415686034210515081118182641253593124951587897412219879443956712226379567515382381458521760274534111064173139757693624755911209693624800456028505441174369700492267248005782964515154386609589758919881246384713507715017650533571645504560979887986206200408114489300921496274368416164486873677540530052837623393453192597530574190251976805794112014136477123886059634628928826719452509426818822850002983837598043841076078302909467099531753884427959668429440443538905492934366828505290261439813945734226373868300944466828701262473626320615163178803309347448514334868845138947000215144664066633609397782111684521224195619559946653355403274756609917869752959640877989298908502915416472600763581118771829590770612341029387362553317269627542821325911753367103803694007705177405848061048575191752100671264829427493244623440199613328357685224020069772954696879606646809241534870398392180550548112658089240363365539510465211170251409935583920422871148671306520265614079454325324903279525866263963202826790836120306699610993393016001100239165192536842507677847855475009730056682486110878266357458764545515271177279173588850946154524517791987256967703767271872367610868878811293053484564222295750871800334219626672018975986134903531709801120183164519060920917644558014606709079575180801606832879825689137562272849472909698163402411049776680399220782072788863305588699560953151303631239246371752430256775445534113083476504626916898109629656443063110682795013959927106562504438907189836477507278515774166679786577290270210862600932969357438426699795098993803142072795827797994872885694459389403875538323784992727094028040625807144696084742807445793702094962437868032913764123826421229477158663967720916809604291655233293149709180750622279436621533366369134158024894033156113102093614764945823025782376846174468119665837818993074591364891259593322141428823979813577704418030031895344054938555487320908101575500005361231200167233592255068562763294746237405657215695005573336189344298210360389381201020981114741605928724643979800761409408922059236629140943080820246284171329804189857740523625298103259860121775261076531234839767228063354331500798390389427093529301662994436748365402245504039647628522037950964451471469389005184256720519554472281560148475538176139885463095439089269400063469396100137261589128737936751014320960374874408396822066707170726664907183686713682257859743012626162524713197049379322277253526000859718153666019282473295225161131613495994282483771089275959173689406094935953678071818944729010229836972836341025988434421953818331082304509747586102412493913865778316847805749049019609654273248987495348824692571927916146336538778019724496892002910630666751901107809615870211895572628582196060825135617594664916096793445657911204613816836376590532052504367172295407021966484879501854844694752124670910302175803204196495160654727180859227256533516455280788153569639882346777591256034056057632153940179516629993262068026749810459060950996217925794923389277820259955345083301271442693042125917446676005459406715343854594517908719422591516331039620890577464733434247768543533056220520735208682327610366766729697611916731604239395038966817827852967937550163107492387897870607722197769595921988933528071484680394245255188922488047500944222321655526880153085719670769453916886017057702758539682008785768914244084663712216864615772282016958858966923936187846559136002479353124338779973750159957007339946126869593693334471386312322754570175543225327113751950366259558730545989925811156574423597848777007867760498677916837502930064065316817214022650338819801276953964388458413205160553775121462129849858318159450663281568445245626451772214585725154361309389526840058493942981769208434356597297117799116070267315332185911492600241209001465435020897890805988122489613008105875878907774126852102707286160379316748121192505950026660258044283292273255046354598908340976812771523885726789948416435183264334162890979369096115785440155275246971717582757160482806092832968979371031699570940197354203363801391994692742448492135367349770830127688027652651564700288170897191150478011851426606251766888387409000529846940490516382736905417325422765912514259575875414739755389404353883075326226525835559046705900539070919599164428536667038908705475808748737282634219367629247537342404520337166782420537646309087910826530219939852902553202120771831613440277836045565762211936671375963991283456220178257809945274367115287205859133964497053326977056572744566807522440068698606625208439221378367363894586183512798673663115079370314538514619899276799819160444555293938742189830273736821341568122008879297523624407058607720865602065459723414879966163057295993480391870678607068113997543098451719552091199544400224731250871681000252934133217924566871405584322188251832638145457036659549265617715632864572833545417745865617183252087824430180214094757084944478164444620169487936583639695632234982728690851206863860437958506975897757199563909683617848827834720567600614580683526459394947303247265088380137145042143290752166555047452859095977075434700965365019582655880554821932383045600510378667745663256110788518536420149506264635432680724934772622104505844918016607550742297581154465802487626965053661023525447106218880326938850870426755379286169528634556857431902640563393402211938746140911746629529257884216990490957985066910410845598780926582503968423336905256977880598910477333212643916462653261635159458214337558452890213982681218432885472259663649002719666476697437913635078639100601008422754711094278320389555365836303979820079199742311944315803649404582313954258953665414283858588218418784900109959384025645621715821303725096615791807250947446656048028744913370388095121251778178179581988232424026311605935570761553084502857901134359840744813967164523739583720980529564853563415477258799331195949006285400967257951871695873166771254099181867145471411097917445407061190012204497485104697338123747263077579046488302801119966270184211167423142035477098545784242090126965330703242196925381074366926363665375080109546568280068607542863143839407657089235500771188977067139462262157569280636589022024026835400554815224810914421644706475026162508287056468207615419096150843097793230211272773873754799923507610684528574614702283766773298661936456046317884893958506798781378798889645600817571937408150296339356602781537888295230755338544548998636304422822684812345450959059484020488348097498779151471370886714341329524706028594335504986257149180053936883519578807171479830678237947007819994474510574923483387837681954373145027198858208384161126627084109596347876616361474797039205985188162117639977720184017955257868056506447375132452276509457750163822196698944307391948952134623893080494709327206607058356746946379530215230021075354366629221107619863013328665396364006843131400783062083162981373419539288441582945170026866234959207365402529371712323977773612995410211129868057104057460119707686513038195116613901152571783139605225500354890056996674199367829568191794059189847182434237472739542098923383278234721266068361201673938064758819564248525027620334959516312239601314410822924202944620640610070432172204618509801752131011702213285352335899100330580151288993001801644867262751214837425373289480506809175777032351498066946402412741867426774987758967966559111861403149102046606942236145159028394655018248932077061997197909277585624658148125112858669070521001204500105328816769254886222180637637905097212859409580778182361514711085845266862788858780187557818574976340495766751135468169501402489529408773658452718550517937973146102030657186817312761306689738204963969093421699575281691005388416943551986437156593504682130223090327847293349548371176217967145748053357762799984755003511798720840221145250590325561561843036560810483127495284432854160478329430316765316597334584020115576838789065249079695633598849664702946866484716227297685631461093976921503891862577478480097361154427086660763945742053772463725932863108729964118769691431131866668744002548297853204624617558725507495157070805031623302789470711760064862778871870193859139841935521538433790494831452012424915190306516305046455125003298603144367554866788514615051564901168155169924515090605602812718682925289346814259525511552873210811974028640934581885979340391953625872172343401719594116064095380648466628031411019426936385846716286729841087835577438736898686347589456531065963365490146985592514582894043465749406308097362671930558826004357001322275638389192819991795280767389454653802717206381434242249561137429010226432275677927653407793435530916135242324128965526635022863480666976510648468714420232616148988599885370290591781249300664324452443690037527885733141110080197058689846006913549587642929410778326657886722619013591346602876189958979649077122258295603097215272926709497033376173308322076493567198659117320580523619248623454572505262278533111867257950276092909755465140976594909366253791736879723972274200883875236014458694709880608982255811137330897226805452034959974373007310508899039905458614146675037612830918139775113803869884746150820253657085020472791999947801817953162917859742910329005150136498281535666498342134436359280199470227102410554115681997114623051637177168836529728749843870538231026850171507544292985261786843627442099124928782067415687239986814630124044721657705190192610374664562153511704120176558841224726275215422585814929678679513510912921601276674976458656169349789861212134577268412433698769101999900670197497258002123537450091019184251463192485680562437840734219267234547687289639881620536381034766766505941101549533905941626576008095963099670117175477542510954342024062888663349142740728308463780911341604840360524533575505772212810458559484311269026370365155988069850107502984711073396428705089376575505480585647546301021933619956187294036235647658982244954333328609434372880851197222585696370422518416550242943735122449204404238285206444605653339481603218979519771642089039409518253413168288629744514635749330299722076964441656024069864020779105838884401704061958890747698400659894653777742850296755816550839833681433392489356187865695941398317275432308176920231604543775646613540931458994903195033103696302637899096065855664301968214351975450580207358179909155597907641439520104337486987265099491292181569744319001540398151077053674100149283672851280370822660755926035486867051182816549251075416589840980364354197711343941228745658748479237028781363119636269937612765323704174702212831570115127007438712203057259994946390313875421959331326804740794792385255578282082416061874386927393897437011263742384184185120471315159936686038051254260994923648389901758095627773261769103054777536305650640039415676102815398941214765031735920190259261363861239668892819248543085447519006990638103451198993572039813097596822666199706923813097540626961258060203578149104565681271174443661156517774508104140150666209662860290912371315468954849312178199696474720239562890540678480203031166464084131159694335659276822661998550594848555431271254498595456585284347780524129236489955860817163428346327371556804392534778833731450116521270069644949591121685409535718299710084103961071594002435734832065143186445482113380581621738568286486668829197304969776058381830993892665459094028958484000034918894597482794979721014080801923397984028098889066579452718287960378639447336875500912492241733691298913237292017336042054646220839696539241411599146211862920313908515203885851058712178861933549726585224833478864030761774724960780128859859721667225551225938148253533887131790403747964972614728004459366238335273502331445524015859900451974827665780860058514235087205643904876972046379440885926134464998323881530368729008175783192477488023960500401505169933613602258877341921031428788586500308147414360590194998026857362191452592206155515521280938667093076260523197796878580912348728795174155280393751821848967087260682148970714870585622280535832647886221540622060432071227654143010789484491409967855787543158407954132685385494600783675718425932388606753974460838607288357080555620363473378411725632190229484104108367856852457535539090574930150526271522612520208776312585037871395298868046778484362980388170362126666915257954301512532914097042122909708861167466542734407730058161786779419859836504660259004233876614837463503497803780878813091976012512755408399423001228130208260918853458266689577416732428513151274283344754347145207619633078263536241353894219645296261885439972223404478954449729082838604621068917219102664336147756994548162148543894582296793889450446215072451193477482250434941990119985880513233926046324794245200507480680617485880699990220892964757412285518766350493356080710557451537790739267462861094199435286287957937356844744127401768746261094589910769725388638043146227163297537959025424843309216706031078692705878111898590954880648115785967814335321844677791320990690492654816862441075875693540603402265982726374193940557764423075560317780133341860601674362318392523856011041043233448028376478067830013524955398539249058565262366104320422032797477938772751241716021547495558681690706197579927662777019901185887211550069135075031445228293928906165416997038054259740694183320818514319080561943447210773635392109955796943192071352172460016294546275056191582578448940780768819536886711675471061448628644506359120048785493959438113340664360381224574741238603670388005326028142029332444767508593586486175524686542308468651360712574540704615709375701674691262247156516721409017406863103251789332605210422921828175823177728541547390312352537442066482611531384218929983839689068125576945633526578472026239432113216244104587128940913466883692106218318414914743011912842052596008511145130929053453273230009075671826275296842087292118937778634579475070358053551526269837644171104889656383438219284593035748468545287068472638712308598304507780814976807490848117122606739852550582016135118549149632557583965889241516281985530052541522982239373555382981732042480704039683626559622003691251857818981391341073362448957585701085668685278091125799984183377356523153310507194928356564122574215901999747125930780645304563430783522232381892868347463849342262224142716839737401018612581900862541865727144375620722341932617140263062821785177402464786784375920329579990478100109645302119501076300921257384585576745644491517489891410837562870471112792027439312605783482024195273606234715184189913840353887865816950994655888957013397995211125141096530754804730305702889895940715672189258268697047299937150945068970937416628305469044217345072777177178087045501967736111012556858261972178853161639533211811046064209539000082868746339317886443972154254079013358325339235961203667142653354122441587123307103931725263898107168582095434799345954105178350617827817726367214128383635349096709092365446819241963213556085224627444879434752372034270526785869358884650671872871464776300437008874916298107034058208264365628431611407974194976498886596060962525432287277548770090823218012815870276474195055196061269338950707444986061154621829551752337080932708094792173774087822740638892861676127171122900078500845720494036970124076649677902437922380804406303313870341866348486740540765988852945162953625765491428419204887436766604769470086154725939150561227223386070706882731433136679666321600690664773624798432112232957118813092847904707607613901504909855525778332101440056486028382151772469670138166184825812890046059595092989952954170630219495712343137830885769041151455720197369483032454368079148076689995735949008854512658014325960708722323766982995844123892456354303542317538115921023156624741257040008952223724030730199140450986690048204345007822901361676271436485748136086616800933791600965139488229304614764254292969061954179866169383629772662215341491984680297873184331818849839559879728439419404753032027334933750526210809057095209393292997142636529822001083173004863883489560486960167324101162921282329600919021760967234283099901603942916553175373858463265466648617993642142626808925019912575208118788003934955820798183451784141268102158586850732238394024063337212123149371713952493185747449307449216351703069438834763710187570505319853619266562321182835286663563419440312382024627868286129912375017758748074477957060351127561777902923927130532399687520379099189366208962907165620587377537753911493612252662743928211290171673684425156616222233916920117713793386028459036114633783469165667000785903932940658953839794811646201548913234850349200201859936302590440945310601029964382516212279248415329423455563858777127161906385376740775782803864874850167280769443485341262193758696616179618010215840074087624326409301380495368771578086592204851538628286380039261914434996249156817015783984946606737644258833135891164172112407488115750732198318320559941228452059141405741184046411494616591479640710380337378013566275475784057088631235936959703655810929519966246675088918749342871772095556243447589492231809438767733796695912271409689427887308565420916352888113383440326808053097499735657973432821727272721421344582549266428558788930785185534257094565023841418562756803945643640173898916785141871910661760989332423699535347477712931193583739601407548448020917283670600887244584197007243847102740529132727662642731941592620783757798162231180753368022920720822341843770644492761348896388873347724867888790104975905896045308118144864446145068798161333928638405073305910738637532970979674969166329230659362273455536878396477798910530564385493808147619794647582896115100383979275762791757376134772006879476640650805896037776630221903971714809973047083167374786738608008381999181738670653182563228573600812976082315627982265898390398676856852710590007925378257319087367071765416592642534890623284926843752805868566620786928520557246729181595899970930013434581284900838533846864513829736201623863137683931124654080465961205342780395618475970619568538806780952131899948546756548812420651405442275948160791871092194792994258662217223260294335856683866714727848357325438004541012843445393599773002506450525432483772362126775326291886499776145870072587217209594894229577917408208585409299546291257408131711587753841474366495537129592739334960616019839810988823947954942155541085139343532149677112483631992389534623409597763182178208144890237602549529963246069744437546319279017773056803225552556077269585672084280583713568622215739163284989395767948500277920529783788135573821735489547354990494894517333455335127795334868669320895180235809209659438087006148087889908862659378432656304604644192368934043062608156682496459932246348374507631684869723647380471777831239962180452498219300154996775692072118914654837397240268440711944669281611727730899896336776082146689704507001482486042755920065610533756595857801773373672091218708000622731144290024894239859867364072963770335957597535838075514680174534182951041565844808557473714112003462940014642038706864505038475922293818848671339293380223878223563645574904651956727460634067287287707874357736946568842250463466016913976131190327976477528169018484797158952779280255115857519980553048825810474937699306246419585795263460170874418765760674302791944629787356586439551392626719156765840024938884969270680286211639614297329196902924192424935633316994888261162366287728535247090798052831110511824832718426482826956303295550484672527092720470854768482544786904896866177824773238328328428134322340848828681589041547942783453804761466080126692680932501590705818609814537824259219756080864979599300089296330019108696613569258832861118143146876441496698309388795339743415095485052216121139793734372026565493739406399195086893118538895971751799568528660318191924686827222860219943681314092595327403724634051775324183339093296843842752795324600471646481012778411317691159563382522036259113711678907765472554035285448496602646775897387577590513028994386978391368556863568199310061130978018748333595430062210388848107514363087897991021515571424946078747856284682156271352524722374611500187474553265978944069034831413372072254321957802054953745754686894040272714638916079759842053880866220124616853447822356839778598438595913492164925287037151756411303630478127646450948843232186634816322128371217331242547930193633717519062596104750904032808811842577177653839747294175251157248792753417383701873040160074188136964894606189300594443462078643319941224164264143473092884528187544654275677225916661183375519332386899786700667143444699830242573883313645080219252841700685570763764053418000385898910662958686080947602607135497543831479081771142232877875340179859799971670818551858867246442660503713380785162831072868635386626562948056289288007175756434782549986426629202720517951926802596704924069476239145483689971060392707001300369722051887958343433030993792092223289291955700113537595868486686931562181471331315431109794027931972676894916510171483371167694022258013515358041761135122647765404427065458786269359813341505323076025792148906121156475827659521797329902165741909894599126592127072134015669415933452202389292664406211682919081506459639387871475008285084492352564011883924813377524781009244095118118215152153207344243725163424411402796874307058604841410449005906618002253429529029050951046296091466001923952957160437877677189051629210659954137719815924128901855457499787710577944961732698859815721573248645362680071037946450951875463216710829460260920222093877452024063062829575423179483352385555197915304058308608161597390140560057732850880398066589123613346392685240787500170392955817339050380854750617262949493814840151549400616788895678118737083932535727150903316256356961981563646184417117860121827999458168521834394788876004044375694992621760828262961717072640899702028208102665573985780922912454750663758213872283770126425334972720306428835798012517374705262499469581771660072038629030900333571845495665903174401502387159979406243610816284347132766654748964097948287964998309360046290815175885780691485052221955224674768313593492138796960804177241550107770578472563337423300635027622137688957768614873895475778606153739611729522554607085907448026662962589910273405345336090996188857769681184806667368491969282303189668735447868876746978655906328017267225625397195654615128662460548903170629069002383840723923063824827227508384485034366230057230239027581010855282377592116560297564838418339733982501611917382422883551135919612784916621360301148462730000841545434412562117225153149128546507453545710305653814562886929959216391938596107705577412632799078801651674504653273321157061637125321501442614788277319306316562900074692798913466908528356191969448007117653668668858249379184530738320867101281458794787341690161938349083836153412050512873284224760461090846629468027821681375188730658495060342892353290369507307808102938408489454414823534655789795564592340643984559853341195551716496941421330016050631168684467697597226202964919945993115691548799214448165618618795782986426944904512685444547947916323098053904995167014762304348096911629706657988065534918761203349836084899196927216734366766409805277799009815376619382236955670588562402649112210212228781786250207471080004833568183607380591096067060277670546806563968836914846076917934102441146084941519752016186974799131215239886632643018987702015391503470836543486119957120242199952014193539356226786820371796985589430682756236004115342705648485369081711174886488345826222905703316601401548825302866024897911713153931142586005261007335741591854071963580335646227085783608700677724336919040754656294876219068383103456291034503247106433103366446535198321332348503567444519020978428769494083877867275646018432786482536498966985042752211824848247716750590947715501904268354112649600582384199882063291779697084125597200000946905722231960395000931148081577171882730499774634909451844879091424594736380906055337374907085859342005925349816591153613320136215772784545822582776231030733637064845037795988178608594659058847579797027301007668429935010362489875816846104096467596561448942410634843080722724115467684140219751593626763143954232342729260226171764231235992619575614767373274794885179951827114977456836950887155774604580534745286524687211353987824994566823514255839988049252940516528657893048835371893924040185219932648381805394889350202601118555770621344961726587180416901558998982222921779865583974282300104648888760636266853985150412274822070512789723409216618354837108305004415813637338263569428188557871376740040779701359523204266341441351677842586972717472379260251413550548897577053373714504728085371519526714291231461010321695331159481591234734800885351911378269574148353932940991356073636366654159786584052957980318182149779625193105284297166836148774052519153940820793220874435126205830605974664514152445405716710621463414038555911712559938538170926410160402311379646920396066415891624298659422153650231230440835236673876286709906866793421517230239243387178299754958759550515367516727511480121988050508635442010131774094596601407194761785424454284393668407117393632611483448148035815798338241911955211776595068633708592722973805319542318677471655241178728305424445479632191660080130882336046357806230940732638004372598235728769647649277983102087489195648872146566029140212497711165341241839729011975934029417228156651500254856811312939017020619564879065840443909334218995059795862845141166819381565066967736729542207162595036359330619717883607711451251028136542992301019289389079209729793531563738149969384955481093145885208743281029748945361134297592524437751345889342128687831540145454528775680889733647540402068827814688794144198758779122316730674710154822429702607383127607925217898083790880116786122723372597479935349690512447832203440223957682564637076136062907049102161869416711575215794352251305783834649761873644563644482998901995883581461007159263145570231136294864902699602951396395730647723653138236165228077089171226889804960586367412357785374093159647956124144772952276844628518325098952054201980763462691587597859584737771324907386602780567666551126417669828403783048371766984296300784260397109512861013408484589037406046535606751660909424908042229327574478050668878859507128768345185087601386912854062031071838664357003736501930855150925524350067423195560864724172543838687352482903943694589421190691455437693291529625205253655874687744516940440942123552033370453935349861204395179162480883236375969810882891999218986959362414322582219221014150323318132800049063072955639372279847487210828874671529329347665549644358387953960264508410816978426943777347446424659420783083816076163692197438675222693282503303181148582604585641511048215952927527695242466232426057768664377342970536819958880715051604304493659411975747877379338962574439307189886842916057639754455875553617408508952086064707713075563021967659698761619578263897473641657950719362403702151453025553869180818786448833393102596418139564818307535688366988219558973670521491780452402270029819166926325742714387502760674958269592627397238727548183286320071280134028878674590925605466434239469606646530460538374398115459570810741099545882810420039962241768824666750093116094198773065541281841121498760226573142048511050562761949816934884399486620409161884031231123117855781310435867943837268336615233989078812982296995353013312970822985952495497060745051653408856908582284029627437739410109686054440917304181161212533915609147393199369928042548329597728661518237422866180171403892967790674384417519619496911047879888916624376575606803095677505542939548566572357459634993551479082159222358232748005941796671726797718038294628894554997159031538850972503786868461556379082224374375600667292985989676305290265775437477203209243890705728195999732887038632534608756032021972446580784374407827488319181302745643111393859083232263312690264507408903638444759231952763235190128310385384632715709251741102574999605288667119261333487528520873241227230630232356955933377331356912866562534533891375012337738882958711458691034515292776236435333991535876972116318981749750969586466591331043713679106972298747031642530470182242188347840275402210287184080661846868078225045004158312156052359785595539214958754570281818175420002955193364458585261730178475571017565624298764242856266038165376931271930776298721644096031003830292049571490220508342584529870114744278480613108386485677372672452996852607824986119610242396320967844351726334660039112043960481163077451594954657577860304340122862336096213219495282821881114782908737884744869635669955574924984766113552815562816099471690727728400236834118802287596382725287812433620945744479005682848781107370545105239648122222184577128040864410277338131479571617019446350604143841972134020350441017043662446130915985727182651099455545037059174956276702264175971274800599216634774691199695973206197646442062216434906383181399395404528143988202364676210060945254291218891999601961346655276270860658376850844094687719378901881629237417463936664162609905074434623416656636583127054091980993227001902759071776115999008250915094414803313655546079328504356811945356937619674268079133263328364432570041663308047710669481772822103474513599334406947635247146752725986364813740000036495672351598152652882242726847667066237007513611325725862637343297977959410512983832498562892891372877601917108632833934206635720381682111420528121887219167730958723033800030332947829870373227271198318450416544757821754536833312239059020144143248198795713723998294664233294015800239180915529255116542095821756108268395905523405157314939952060928922408218846482231898125518018308352397778307698612659092411141229585911761834667339250280034951991549063447168636065928731720979282214137485936238359911563906363190172117667156358177665234476579337787155733800042785807238795110464946115635440476420770389497559993344364769228348384392293904299339825621581949357390885914837503766938142149736829035765940231001090612848304694630286874182736273272421559579864407370614548951082949495474281477625024625656596926824954892573234943376525139948073721485926137369835475974431596653661667054644556682184267695815173531531556944796048886218257094667929138789752839125877467051624139544855803960723764454164240480130886629238717422649380565010012644970969066861716640214138202318718580220811125383131990832672469077994059711526624039370800298161851692641143836948932213841970515266584619527965762003984674150048036646085433118822445796564740928634946563834342901807532170908537919563385359690304032170108863628705945594009226924337329910837715276153812363550243849440518366528712860623141666993354752728302674336142168407611031693207914642514678642341453188519641650523921619337262230126449027015912340991166529312154768743136423093807561021735882490058473686565407920804091344504010495696087768300154179796761046494178450678804282787500306327241601631839365616785113217532645043620282780862084627839450614324063628423218448610136012458368481788465426131774832964672893286147744652873617172773245349081810915922364431911100879650369603498393773369344832837955456686539807942575542252171792890063076685950204921329025005326744630379297357161727207461349028055163319677076224961980567111782873380625216027040346192420465075280419635252267000836064755878157422331474681272135561772959745274966762787011637400523029138016165438715966596380465577122188727707197049637508533338580167777236165795922688982619961172203049499217527075620933441608370666423728868733897841059194529753815852516492806652436148098650756292847082743404999579623923975931254650814398846753478038569048364080156682252524209363060538844027353375424966708203353828475510989184213918235756188215789897489822227312328614020577131937427142477451414664363844022483134311935885845049924628083233577951227346090917659174791120508676231739673598355503295900332419362412096887248863052486853847204077513399059870876975047316018821427060066328828927481411928788642712232328615479253611087076877685721133088693694907438697456351730837901296283772381670002701020578037171213899425302036807710050430445476493034526057457118419538115114226690764762430333483000044279620710922633474540567721629090900375352196229116881391554374653840880968395180055164849258566055988865062281773977202770118072245595438189553117515806110324969222112910561222122772197467853070576324550690254519600691216762934455177994508661828874584518309468435351513043916828675370816827020392154594655555038952501258295613362980847350261049502315569895945036676364853402631847951761329452673959525988019586868411128087715975910899853075950636040703497519242917717738545482019119217069905293769215230195317699538187648305010998103043375468553099501600796473052426467779556691287073388707894740355118312689445189543914316436094405889516538008345491559879951726945426012960362331945530159637530203191280503093821042857024882231100110072384722884370559362124095683700084911186136508545093684361547134773291345778425607994536822879790907678180901588266247819533877541929901938466889484319648068699093168466538497271495167994360420547769611524916209664084762018995520468228790021140138690618102834266247900481675412691050781577031672466121026377412880628227870649148298664638848898104258110199670701389089894305444135459339123108474420727675005205752329844641616062826572676018849694703624888946776326870622862672587391385250696727860819124966739495132732349153466404091616373952006193911136779473777191559350783773695629965772722767636977243243942671672046470439698263911297718934260298520261213364239074396886151778599550720739315034394516325565132737637871398812377115819905060538347419050200245374557141568616607847990741374081667537000598210925393036237738492943629920272543304717151475345319313178452277467481797411262435553879426289714549219650518892648927661031401130415444374237711178141616714296098310872267054402753871196130426587236574745083060219813934018437380529910949558850792221451589088394169421881344695969317078782826949085803587030540323634690372882979842544970643920271924549587869584347850474716340064570038209119451666402351593333868588469378303749185125634809821224640541818837238981744265668883716406290822567432302710520554649108210253381975416246774471077207905837285085979464972613551412447872421296535424770926281624018786378325079591836546455405353511506730323167651167378909671711122333481846920933266831105239128211369714056710983178200946062868660534437958053223895004194563747852355628209418458583663659488392165702534743333843134141854945161874331837767834137964718132694223338571890956157896647620423792120506815573249182648476515554562134337942236892171808935505896676009880865989286093796711941112239716717646908837155926015995121581087076280998059745392203325877288264115695168153364910786275134261899315286453814366579283268801458626075178549234393630953292220946453108922098987664719940446730140996999904805945901485945468109082239064724369356140003811590776256608026992574810424877761414720650203636774623691930981527392602521356540915090628652043235584733728342172698327763867046946009194010091294916517863164290748910784231545807653782373269054059017419363231629544252415822559233213494819857132723587624093349904887851915472022876023893572652461778920297825618833124255206947122483062313937810743179772468693067973446098470224354602763420459759533704319168099815210348586014959586985087208609842694014401839171088825424836486186514281432364708871706324685239191601653891951765684787244238685283962324973956633701980286434752188603069375221138246989598770915661796433495803224901926320369992208313211017754946942982722561336897027784408892981494090981244178009869619346495750552097395519758073903836768010386125913278951766057506586605153292226415594722935925418115669656749519477949732313477306047576746883468907650466945639401625664454312324961890313170523727651186917518717871852251631273483312674183126680348819356930916010221113538513068608272534505067192316972279881075513540544287676407510686880525970622515513830509639622551423328195652069372037771923363814456549192092776719986028696194499105236742694019803204872845255370559420334877385793008702398728515253641872009744729825733379106682525299716288991205812346923479886886881249818076440563239810346608472163483569605205152182026658853516376903820767146782428790748956825714589369974027070719723173383053041173608252999635451391684513139963349948194926690151797960276904491345591356581420155947940898556163535820395698979998979759553441474777838183103204709124001721655310550957001828199323873979491209988792532033239620775062729101894149740586198114210095460262194945187467138150358603006409700396955189056164968191575194498741263101634451472366604162364675953032408011423529207520421510601337586599433026542303970691205954543923344843349218655838395345388771873376489795449457395892352892344940542793899522936234579603350204051915337261368042678772827257632404706987779892884862196950163837893505674338875168281084007246937854832187602311992050095282713506238176490523539628190430765588976230318816612278663690327189018576015306052590000388447719604746606581324692540383754367409241358357820068815169972794390255092340850823265135201287561131136735289191895435423072073459044022482028446623983110806447891375970074316092817797176328065509202856152300117324153220855089007154432104503176328735834871838252149203839398614978021744411314377774796601000783363415135503770757140487039573409704895207957390567849355535420969311014222567980373236014041347211470622920094738758214864903100822164770593832836111459638695365519836742338008521987623023179431756478244418777864430979544926470089507583746631020520803450493957937959722971291017225556024961614412790490575767531261947772744242097861799473555584311723836353554756318220081258944830437397570946204592562754412919740496368677235413827439312399460363180779471026431821436119909340400159794018704389821873377358951479641952787649600654746726471244239439449620306701674534692280127669283752279486402064042695601713305187871096225072361701716007830365233792695168964192251047829741877728247019696518101701194679001716681071447801129768258642061650608346040161499987928325720196228009326807619668795478575379614691902791209056119951784351912447790657554541379433867001946961674782715945711608826907739130273291756442739785828221323153727978972003231518877853929719417902980634384305869828738256682150681794958747067562048465579134290669749271539986677152339308418132975830083506717303790287581343579685918296538156442175371012379426994437999863085282173290684561122667227614999372048160928100890722903938922910102823690028649375104798038291291481164843326603467909520387471179670481252586330136271552930192243492502822824321566556270928352660141265958917275164570757928491817398776119550732679041469270783081957752910353124349768296326910290465124622252455130081502046474888808807536785062877444802194287654638265098289059585130280895838503418388605401736104153014473153888595905363587178209502305386882773020103527579998392732440249355555270860346348008329282178500804295935193113393569877251361595724604039310518122621874432671785166002763878655686112096277827477182415228306475641145443233016811360430958373176898432854025305641524235068069126821366491460767849182400080535695028308058089372770786213741408521310177700904357910011378685233047673740498385280525144995381392684825232919041559205786763632150882758214755714711595888835060965075181928950131295303422610333209724146747432969026584647180437207671694038187904007279089829980183156232579981016205689295012189102546339607128170117256189707830069639741714779386950473185972314241495612430587167367918172043402747394880037393865676930127533053074548931758143621886000794059103826598551604940690089971630372067103018627804859095733442207939216592300832470608195853498628817022853153795797747066253113655613585650193653360283632335403219805502291280321769803810901741304964416479128938415775482529160739834842503157563892593262586068050880684189556163558343559086467359921592519451990059862618531289865592838662249297292375805965466566907891362938765033643995206587117434589138620896320551445097518759512699217778132471526702738033129677321800593436202925270663389546935875509972915198062322671105487306727094157535593215582629500272358407378699330812035881620905040691619970323843116345338732495524679557248115575273623398784559350981558982198184570804273360334566128367586771446622493096739982038253714551502149282029731523668960737119728699879563070576304106195928615872996297408342481014628109426829722636251197995767152623470502570822749482876963429721010883594484331733296914809977474401748385882478530226352737773096704639867889334999746993501269289607690571542687684329128189615199065054383686656200886501761765462250957037473743523030377092355745456218037836532796630287386852942023939171051947701316206854204950351965612844859949216177234383059712675702092501510279450250664503704551106338236095364955030081701106908700465763842639657312984349134359578851825781202215770701532234197182409442429696364081374739753056326538963736475326763599097414432711269329985137363584903921778869681210226689656719955371705704697917240127853797727096136137057163442807134720663384822670094171241236225443827891708017074818303109852593462030665644544445932180788423634142655840570183361615171134173222731248077531319017735028913348817740613174784558028216242444957825355778579643420940798322357833303775888580236939065120427719099576920573384003183927725181459766473407801893060880643754102446259565351141041344085322279036124429494036926298651973574401640716342857997555299365570268741615956154976367155770875682397713991458146573722961225045017479856736494297409186097911856125033325358646840074299286490990419765955664709397406563433539532387497262709598895433903690589930638671378072270037975063491111832035886278267196589471409473765557214290067894693269501586141482487521976527107909621047525859999346125464110827517197455230556776575420462084784351508653075522091248142000081378464120282120911716287928032444100557166723010108493973545195845696515633344224296734640183977779078391301120997158893648480656518404412295253144919881930448258352172912833693422413745148923432341612471644782803314956509797542242413294318922434569974819007735368971890725352591586394475371300497341408762843509576468201283244242920615850642013570725678817199609638295879257469695589742684739633722280897510912643653092304206844196382655566106821867482309674182401197732078564560806655235317792036129325637122217907865783684997557615245259026927860511650583906160441577523998736702312571504971181771092586716668398397646212446018361897059682797450072672606130521248243347233012682068545373837170997770233443765995136389161292460275531639265350608283326796296799059200353491351277572184603208669081777022230473817539058552789406838433435827498578711762450125987979297783446648913588941720092338589411845808070660860940562547986632279725911901563824008271271106854902303641195279864493463875462911038584679848795485949703615104882318820052928577432478294376275542064420578385318154623596371061637865016605940154316790255000631194920191649361299468432038381127315865347689666440017100563884863003316063229531783226571699747300051059450908206091569572269959733351756298247934095425485150634021927448601227668731523822941632379960856059631374901525553520461525098996580282529344155659941316941605021523079802725238199294668208920701691138437761145422284838322671962647170771415310733848776921478943158736286939940722174657317241798450881324676499751985876509300569549063916563919837964200280107348828619873886525832692077564727898615740761060284985854344923442473778009065430792043227077003309717385261711320653865640253706720526310797384774094715222465319785944013894485917082912968093598984664828034848059530708128841572444123770266978024694488811666865721282479838220259879221956605242527990147556286890525522489132467997104631593890873664029266065527507483530609349328221243170066415279531454422971795935838328007008811665583558534242028413291389261700135186853877653745877120020970472018426436820721606571935940573134233633082940531500455983591958058831114593016499136997960733607149845375554194743296212404681374395008091067728069083902477443116023066698187207167293622661724048500295532472958249909780357018456121530517462394118753324533714266518884018332545132004325041429225320387210779277608342224124426202132212421906148315735697598287147864267701828385064340349001697841956707110948350438167092141863381922126877958317405865011611979885816900729797733522699526049967741535316219493606655435511484925638612016562415375067264086028277142766705531836830185755393046844429679116262492961974614127446276068369094722929591869695383086579811122938042487686528383643211132175991199375486270220404584266844051564048601854311269251309439292631781614256317490386500028432349352232144316837448848457325919724404214077526619473357881673282370510347062570327436982793272514112784605046934398577670805029392603290101000681814685768622827401343535841286938750040012762020783174465170290165633935890179349120560362480472801953746104813678776756400375408811201795410834272957948459111159661828576523148494341845102879175939700092794433264760647940042694522109587237987674789236648655368550377879325791503999428413298587314103757745447179350190921765927241146679355678861736138557456740674683036721052666469186672893412912613081306581981501105781943983966915966303163636968212673904309772323794156812256106700873431980861193781701659313445978440330837685246319358009917333262444216170518244645838740559420445791532844452162955035923464531276682555922024062257914876234565693409469628957316021668446946821683452263913170402575135018450831695074047120308408684501731326970986285677005971485302356967134101142836873020331802194268345971592285547160328629661453751089358865504347448605804209751714073008829402138291563794717146773322558700310298171667113603050657244946640649647192687633158606036264416744570964910872279302574965773791561072047581050699952011117917103674336354797837481899623544247546715731344178134947194658839504292500427672676235207510049566406282172403610404058538939096641036735327401775475414336028966964834984034437635149562965860864959604399396370211174498834981260228439156598990459555207257600070731751605897607042411264692902161498478419685987121816716428960103202543845747872678596531794577879489822888478634637109823050040303900017588074564360985508057820631104240788672107589499880428893733068779868633749682646425515765186368223725819319041335393402443884333967644411957533873711470178374630678135728385811260479152606582923578780385099988216879141738396407544920099279490848067460346546955213507341076762323930409426307692529755219628039953043834870744720854751864953051757221893645917765716557381232572946149131392101691247781897357721187137388684362922587288177273693960957180183049343733757994587929651777384366142231306724114563793890648212930369299355010900723590647762738016293067809351306114959650622895718378935763530546383465557988608985024974974332170328183797267158788038930343789258584052752065340532620055435068437420136938733810111479543567997467985159106400736233609533630372497690259801527799654115640845047083761807006988430654774004287071971879869947239695454366288816397672170849463574532962105390202461779418715027637475109085111397201289477007426086307787542721514233920986027978809585563320961029295935491077696549217860476356068933233809189652406597982598972860403377127371019904876780664167458784153447401945817127312514121855210286730170655735871557799772863898571332538444775794507190281717211201584766325673065538769151307009986344342501422122880540209477968490406610756953120382402833126337536560793464453059105336298061938803391556191171368315282216329433412822061202756141593560562004288097863748472417180347888847338717010888006041366057341189432493686510752084477460158090691216352518285523915981330360253560596224267322634361703675818118929379246067175011353573825109885512005654483287192110758539525797610710674422864896172938656338392187793108130127435954988826391320277496662355841164514144281950534155541069528127961343406845617044070410463500649901860946905119377194616408627023710239415438893129718202554549752558850843622764370522208246809370276890421150156644644191243153471485487754377823900958100940785408502922331562901692684206014786707049395046476793223236651684355629522627178852367974373411501058804242291876609197285796353931466776758829560371024044405810740921058138700475274138402951839147867224032234027262769848100613275176685718191859714198490011480910913211643856433225214574074676122044068502103665779171347802755718962041500858253248038068246083442447920628098902122429669882219469691723133462965634132282540423014387085032654348203690321825861474450408774945646133622466646126660274929175363010224240224999107333558724820859563187450711293636793986972939074106181391593386833136963462372802771632343549495089716316847199978026316101230197775908376685951731448919738127021658309334277295910852106853448356980467635056238711167393277088057698133849175237067788554600891435070728819323141765603582917112836125685153858580163890125943344388646591856415443949002916281041720862533219470420055546933545507212142620359772110106496384177337876532406501473603544520020912851050432151155674442011906604559593531923517177047357274241917126457068051978818759674233859738756495912965148929937311342459868913097709637164741866279911682906355322649835190741844492739781299059195188036536299909111280044177816150403205373954095066028904950309580022756954849077572386853196894090191576442862304405873380172351743236731512820579675809790176137573399678990252622254904481828116146145087249504313770066769778568429232451425092709049973079000875210243974865819744524631041003377362459680287578302870700235582881150726309125136767183781824963267869685755221678547000050246552651474441968788805823436556296923022753202407876058440295604779789194459708332748099964994200768507718164012369115879078761456823673628583916800102829924569879808392254941826155399046524512987519615485696818700273323134920409139178164138814439805340717891510324976515327862301454040775898611263527351750727258144645070648615201068734144799453813558161319216673488633308329740879518820524066151442369135423573762281051289989255852329710284684978493521866046625891908245112467648530392009273767896448975767597679121821319222576043437224573977753776619890992789277953432706885874862556236091637439414327734275988300594393963801983122965914161533050608026668850672398361452860527547309460217601536829862378685876834905881489836545393922006651200107673390544896573972473300125259152619312770070814611809863429286479715582870188887185118193586126518290519509116000603017254371998999352867127153320047447749730079266708370802591661435008000693204141678836361336192351679910074351447197506952139614888631245500077869501112275579375942114949860788700365706644874910162170328509881507302761707739401353141271269295542292407984426078209672788614782576981567151379953093621842810337886307063565648782003752538578077366437728167261617748116857568575605449580605552110190728207640695394718304265589007540969915940329387460884344291248011135421959212214428013480870661340229151195907880795472159912888467350525198903539139623143627181801386599898479757782483060977345723446278746230958423430625993077307087892105071790799555496708041620230159207479208147464192841280414241596223369348253837245475008866698611670420842194318074663099708770999308937709901933471845725665771463304473407456047826195008188224548048185560491774018511806998272462055639407664474985337201034236939491292565523961478019750972301909055863801422448381831475525653892344162596705646168837685921418717062341542585353121278676311040121697081657431387938381933825716258124077744048577913506726910043373153245746604295350800809397920096108291566614348297005569887541950779252785908339092217257439995415119129875149144401309151500022205065980011873981100966694146578191278185230804364366224952256307932043670243468304860652930038395361499863829950361625158440584492264180809192401440878421623941402165696376026722896820533936740312618221951288082543601449475919166571859079678682900188411253289820839623619294903098026225125601619245717543111257789367579816782327781615544025146709386479697390875060202172562129315531164128497804722277916753553428353957940133183758229716304950673521345843234694196049493659950020825169699792287582722620013849744388751430972159861417139441197751070636543618136927589269137893714074804865781284866729586134478033542375052025590475159574275944301977615864868833756411560162913879696354886055648448453208973571387099731936330935380608405457928254963041595198426529295931249470601107248883016079564706370580805477589406809713273594719621387280181142356420884456618022563655528595548365199884638479807033035054135159966689358327262594912018596382779305089627989145448757417884157403515344455127951720627570307471898932733747614962322846475373901751614334529135332113815227020705743383769074310399850562605762402967643754762796782761199442287997847532160588617584322079830463762579395907692504901788034225017724312442612392345855404873662549120522640852683908514319715094780555723123318136689459704347984069887730124177751656237582089653434870035923198504995110185316847587943988467815635766425559737386721012213145637399206370182137547671793309975551179669199496030308696479265854213574245755681714896844206863400236268496256260188443762079787441201238863768380573108131878597841156180070970818248934193312038989623275443413951125428901574149790672836720098895527951123875436924878476681444453321677867591933730130586391932735814831558358201087968724277757738671973079595462093690081981419618222272449118990153026196956179177146802514434178175706220607326754452049317628251601168026400701307962015697529883316435924073206612304488736566025872328683950533465715916977546557837975845230519735111435099771573721690271144837413548789644109837215119435441215710045895075831854274436566165680985523924893966429573348869448182425297481513064249266912988123867357903803762017953879760373988098531324588728741285223899856542020853510553687823445530099755628180748359015424386351519543518860101421928851442019718387725122303016933632405787962875958673506534722317471243661010364605015676679612988399152596898075474684971012757497811835505120225359713388020296710515336219057786550072364637025791254632411836701050209861218177076857841950253894096025839378613003624439054860505177917882300387442633616570544257284873807837261746131389817651109354285874666634658558925499711666639917540700794637494876962175754292781312036528621987022345646013633213336356177894451233344073543496400265094714057638872212967314440006104314210940930945360597175062442472778124560589403354494596090838065621688798723862765996449932962052730755292652078778192256420552008302838050655913775711719131075683204609919358545294445311014329204715834594685604982414703146091158113744785674793165495243154103417537541184009930522644058514071270677614205693044344475339501649206943750737577869952309623769407253226584385189680973235394012956844152230884811514250682197093474932193389843302994538948833468268803151789122343937628989324581512318340580587151879295328747548026422116415006703348969531331844207419646175617308698681000737102883940592171808962285323957515742888120379017029816451101081536070188510570631896057331881023187385013435780598450439434303382731742901871236047425134150140607640164742603622079344881899043413450260808115574695758036787435909319804081899501793257441697036519280904473098953895626723625294171329245288213406786004041426502115877683604729400703845952536119128513569679384071999713284021987338767046036570769068064078592715274253846897790628335093523063363075272465359622948268545367973481205947358915374830762111275988622047589901128779582381655693025090711883997124577588515177576517418037495890903001311271980083852942875331234823585093303742990057390036765274841819084749365852926519813205504097954836342690690086653899793076913221584581188461797928768878544023545371273277095721538875081062880426943864643226326998237064926369122053118852208751518367444033031493285354905108237649077771408973884944255068514169406720191804793032342176559067409382802509908387034578285590427874269688048229920243186023207443901374319535208802334014125361348899424331531124866474697967245272210636658123394157281733773697695233913313732729765323407130740008215173151269691276641069752753674383659432458806391728923820185530943896636570216107017244446308985447433561954689465462178956307041925070154849395375903806994187214745060592136629604744207172303939765373767293699803231120593346119770033947785643111020534069182049612478724712296896790829311479114796799525400714026136618935153707597444911993089356025434900990411911919486956667656763445057047766865557747709440416972105812204396269714381058558459565801562508095381684689870446381780085492362069183846332941606942161034090321086758019511813917988472996563446169550345318483784977182896658057903085183945202601409794404116487717492058073090675258793779414590870132068978945281990258527755870419538612515280756176814330567179910752551582611609690809198064559353104658793137742452593145298644286157608438826095027377241165483954507419280572440635507378987332598679862369691182159220861237729829154508905285252556744666643401434190203586625078845827727251759703350124978430449175120622249297882348149676414618137387978204659299282387691524097235621697383671606715683025524067444619761938211547000149164744663659326138187213062836341172596368521643875614649785133741951556866680991910770901775688130202126666396133633614045016955436837801290488619576257270877741375351458288831816922950752235910199326213708342185794900758291267488691096313784514654525701490329219748907153661282820645337404932891855015602655228301953308338242339457940257634232770471624606915701024017385092327175152979538781752518299763997040312450116719976760545549821307608747218088436840140650547028185813552825542060959889670018725741958671505040671506279017648309705089356255298975530055965531631238744825054237319465019318010455202568191343377429158568497967210934752501697441718075153576621736997310484107518808798035954134522504561070623778748927750231186834632777688884991130422746391673309403831035497797532986943721028305725205010614203188233466770065259560768400107451071463735892062777373176959524766586250618149266689384076929287589694094688701616320174155931511073269594234764685732547846751354216188878244635438102500103899540471795468606993377120105385473601739908638315431821698805319656330721343546111712987606389752237756996676964083609851342556832653000394503350343941420553214286317496846684388348137288779560573340801683571361001407503792943572798721207135751218716910663811250987383840566137672159476998595790210076149701458469085337905238850904112828086310802107762949522488685711047050640198846606882144229724239742979869179340662142088833175465151436637634173525153881758860893379899448941734813502054842839180716149156753440145329020707564920280673532006662446584901123509369177996790255860770957669324249316049324295778459593762040986446345131427655143771206514047816539484943932579239920150939536155468742213306526772251003532901544578512028486096105983979196858623957911584540654900700485097166132158920475023413879428720982765860057349929930660053151506196072730110443626689015219266123625688386904787769314135462991515305298541288573986458959142210976327469578216529536545696024251188110524488397587847680177425422667300081735663571436880234998356248022232158095514023498169280007060739578067641596595118135822636219230861170448239098830789508663735544425991457289406915268071166213425047409187683823703618832650628370038971053464607760545166542188479245094791099812800341554042110567610965553072736087647119208301964205295062051839182663918299002238442313631928661288413964259701627565118887792267269186920132773285859230899591098690023615484117307584901151119743753326717273656224286612660686544942920359062400405129901095336337164084627817447453315674268067865132432945721268334151575766523352581223418034733170469249353941305356705657533168733573958695534101344495772442053784733261628105279400313581269851837032359564969395126941726619636373751411707242443728175730953469957627920127772895965292586934128085425112416057301240657597143873415495687397926048196811961821972337086711323137016855856174861618670671673985236292214966668088102269442926832013654978983173393654269060100033344546704683189331497273824698955198082394659176377269735585288211702622428245157657682076198824237370526713773780382739827950960578136715957473709241042955685670544043410986676712761615619353433563775361321697043064657798314036525563535097915301864358457677351646143681707298422709561419725481077305107337646174351078229962674809345695058179291218867669671156239874804902424382851848699902500145520343433093459683744336861072068436967019643578336569115682316642877428618647521855997913181923183839102261092341576151491581833438402950984444407153438140982083911684130056465821967453113361981154747483514038308113245956543830571495245656855214518424101951532513110232996091224567628012200559067309778431279455773101216422789911190920771918745133533071639434963738843730673223371036042263526708740358215933011419577105793105079950798787337573036895867152239579416777290303964455953113142998275830301839239479052850735167794842755204543423670449006209337371360087238103865201731495670305141050542090415296087188247858837523190161814279478534710999111522663985722433836022810701779935381593035281300164131566454205952731783120071316405932549631632257007264209248636286517709300710043721928624129087457616189976070406795319338893572772913510095133909952166229149713012175342335414189136214197831248924155136432673128691778552109214271803213124944473245006326300786363945308388313118573484223573597015451476940604947582940643113655409211794912992972092718929447886862067294049126297514627982373525086255838481638996171063711521712506408885067191979710858694562434553572980511523608911210678436716539295656484697051629671245312050102395137265731813073561980110559510764011060311220024453587370114265038590173926389127908063954057628607762887764380041187776983635305928328139859947982140256798251969377859582070459015413731442355974286055783536274048922347527215455044585974389139542967307719392142521690143819287426290672631050230264418455386526249148229578816033883419260818688358953890874126607992691505803135696854376298909130623140161663177373175218550781617691703789925119457502958974094171125881380138698910487328212254242361402600990393162322455676024724547874167446995585542928531051871102918733955679093078446123045264382384720727018297102969187554265170188476796457037468935898873155200921308072798722778197875445167195911689765167403861963274996377485049137089669323349638534793282441877998906937925836637907096559725874778585226708249968574932734178229297448274415892889084578088851179555154155519634525791956164794758523114369078273587526244755759742161949378100433296934484012587303938495670549293249781688237760642132778891430331086141742593963714471515579719762092359047867824292681955337054043495115993937442872002082754587503510133785754949852582817404657253057458876509537788260154734392306092433740304227261346418128389381008271797241422024582299619328355164918098094407335104691225505801302309129487228755467340956833526663608005950166895589434837997246259248720805421657186510520172162721228044586199317375305989168832152724363402701436691349204304810842654884648893021699243554876425013802978307576350560269155040283894467382795311680781791828325775295472450804531578075673975231755491445845619205002590473070505360151976087508528876622040498141180428194916509927420567666804186149935390114829450531094229201033371562287934552448127190832094783562456542933099877557938424970909091359964226810884465942180111086042455653312942554677066457408737513933999154866502043601778006622371475071736895449886814784365377979401791419824467869137051324855978503365353590438489986781814821609324487960206985656053533028960953612630471499248354672016586879276187060268715487008956193072408165639210027140500907800534167822163143963700961761340470819944938232921813131876107705467106636256937892339239419730191143754340588777312011229969798093344309934308065370570268950933539693305256484690022717228417809770185916700039553503910590275112719606723946975427118368188586617907898338029017159546840605545435871936547682509062099188872807411755467127681811691662369040364012852302009677893891874486212006838308775517808349116227940854755414817941144672188668935830285124780490458275285305990504634593540389987010022849918062621478410925927257507836950404835674744499573662834063800539758669622626291784522627258800273469141267572906134607061258045636745707194235725935116181716938717889338417463261170860649284680915169376964537019445883657689112720936453587416503138923881938755735422797044163110041477410729056049384376787314340167034969731259074583702800332974173167765603201784630879013617967258402058435182012712373569341320913768199141488173553953751334305010010664224104846063262102056933480005126359943575023938931280453831413442114972715637321378685332916442038242334370579986722769266728927675757429389933194508979018869157691835267687085998186179019504837494488912682418072445347794761391039024180707421671220563566734170413458115409944310174536059908034893248348899726150763400856604572185866529414430034677679093174903342533501482917258812603958384250159412207607404720315610016867659382201207082119920891128044859037975754078568256280999991210519207777434014935958594801970484243743048035863648075798270907714810581097917243137217390205797021301387201163784114709376271108833291912535570407586372129240711256669959676512867400282902356211238844041941473420073582769119939561717026969896388733545928654261486389086275827287731612882048467641264385671578018847959840584733253305149627124547131923036174503346510023621282568709581379316366597646632166014500273097312425017147375554987603101003722329066669513621138259499182141329415854715842377406208758289031501130862435720075573625830030917921497630971293567499560996522553005453479509970776448353354171229609732191523919355840902272063432734623249250816196244772949896192982833265435852454899774962523376219198656817481725062775832283977986506050467600080050093472369438019037218920947986768400732247096128156566693502309154590771446397334187576279198085025327352303366242913808705325266987196065345354717659097803036294937152311918252708753823888006231212788490208602672131461340721385890919205681447742023152806096925847289024294301431890981663439165209066617293352005366369400224286703538342931452236464478845425679587680349142932622524062540700812931150527429071306700625599318433120631005692296063128927109808958727282799967008793919379080713292380956528995263732013630390294273407860019188698210321940395325515350101554636305666586920921286203307467840391239728013412460756251630451518226204422138906409925296045390409217794708068105708037934530290720816183380066197635219170567238846444894238759804966640008678276351011341724341227923404707899027827779793176810765568384818203262602798737983710973305396620061783839050280469885685366435179885690041773686252970252551483180461107394533699439162100455318789279355804290213800276646457568188567505403842184328306859286630521540219513921109401645158832461737374422337493103246066796673344138241803197253352835715918317075174624386994539085346732419663859817716417247811859663397664634947807883102331730857770683976258347348721822647447633948817221513104196508949961543413428386791544502064635068262284342195001490241676576827431537610933296430643941710771029574625045520765337276425267892876624934634663628117405625370332088704856903666317126846702914994776525080187241283056160349977680466505181634896140353193827157300131874733914153414856861048108630804032277155729185473501745098083857543049723907825394842542493762293200797934640974412126367474003111121985737739266093291166914671859768344555391555800454213703771658479262940784612892274451884336759424301131361166492733287933044392467552675432612672775949641242722472389407184956562901858666154026428615089562406675223910811064038290373731309130636881412260457005106582134518783761052102046501408234557888942682927325549762605391248983410021916103812036038431904827995066966789778781634118850865475581127676868112200838825381791726211735980562511216682821713236547989602635439492187827305324812451701058422103700853133648883689981114569603590747785844070002882094377346421602690761781537249349845142077166769453265837102809756449083372127785190565867023355815719604221280766587165800373957418293385622585420520798548945317043306311635502443499435892270677975294150429587916426658028492392700961376027822400910185033306593542475810500538955931983554891871440760287214664568177099018251072931636621761579181450429893140991237927028388130538105694937056592302894760518367055596067334693930089995734626890242173009537813499747067529872544457582844503264122903431782971431828303969396363837392039513570067626777912182776905629524141156906187699015049641354194332102090140192691091181781742412238585803972594884398686701325819791081429949920332364670530819429397100340466182656586984342125197015433107844848618132600527698299387124738503909453759950185411853024670146920396747815490647541075890568694025842215677578198400248070328258073491242964706753153250385198213694649213890164012070522665118977011940095075794956274962328225882435731496504712072832502476616966251708866409176936871455819795758159683207308465580410572620163170985468810798645944732748969146210973618885264318995445402281055246635511272623529519442660460123882229296688364011027067906245592266444297140276897028780778712030542759797809871295101531244650241065573858196480891299266121396303227025918730698048270078870225681872687584079366826816392493204258524623955376345652516919331551392509843777790931977048480023827958896189076483917072956549428979142753296388844529508991271730375604247714457118703009210717264015753931068810538283490262095198782259958270443175189939580177940972315405109679145604487633773995217639776794507286756482678253244116251863349197343673870993009209518881854479803857816892468552798138887973695278218465863634534475428084881735799326256757024216155980052460521140477431490651568502749252282351067637218006212014780306013707155966070554944693337623031772937223032951303323127523856422382832774973688655242550032446947607269887793966360168029849154620800250358893026238226544050364667482069412241606895280557810599126925424902155620518181313036456764056472051911155838382186942454802628636785023987473419637911353207612619007836125336588787306945573832967127402913387771973905587902829672614843822516376215601965129325328675729669351125433606418314992666302623798494782908602470605704202564180862901666609836644815230713970620034585611395127553262906395063461591214313597375519524155998450545371567566214002803297916810151000499010788509301401049631144850461259683338506701115543534557457852018317816152323902982586503772723156927598449902342940818760607409084161512979766022207783265533851971929733837922216009178923344038407455029957104624339614511849260276350899528466814425961679998146137764412976591228571620174405643952805258145051205134996248768333209295177815732769233273442339384778758443190684421323586863367273336062811103883166035664817186823315721868074798631744452158659400545355746181326162185270973608035665509237027518415520680023993397082904445213083932193061380211750429799978370200833881273849135685131557387555293271901577842618617385607231277347958672024077504802750583438391948908169129135566413884412645179585370772177098775221842638873588329831054569476936856125329419076024583293418752657026353401485253706174315622791998210128413614895035440026788149600777579188585526857139413100300614931533984325892809693412386894493163898896601376830848171209178688308573670847852344495579382633812472370908390560575318350365377728235059772576044223695984228193293522424687588536779766903897055299582088068318974647104760374780184304159109180419566518123759760035284514389349709488251409743948035100492634251386818516754131116761323490095594858022049695764286832815217697228600072020625408999681894378622970196538538478880513258559262077274818173443681114700579181276984322554507727900414067514618106482316865571544991965276560674327341037439333844940311882953407744105202148110365512148936435399691435545439145197563687907670680963219035854189580032903825025506743739778824889949139301829801904787769577565096544928266844542485445075762353765918598701750676783882475675494588413866134798930977105395240342011492691382723636875010884986461134692768712487598894615773140772842533706192381747403656892405151342972735181720699345069725217937735641634488904451729942575776022953386156309042578506703089144307090619628528556817751077289301363563637616390605979341754638590934683600233553150818920292464041588761871187339533677300623828674807636333068891663651364484661552526289551833682723787097022431773807227954345229490814545087019100648896935019185550187893360969614778572716924510973904616130953007730139630338741643733178019341079144887935003889208312081865910036094186975572598597704959384084257742510413102834599675188717547032130894995238132799374369580670705601038487709694635673001124438168607958187199626588556758752804122252493054509336023979411602782348633487501472229173272363914483039793371524173479802561685856934906726962073980778861635872276435917983527714702773202194832654479564188937182054802734801450908018853138110934877456999254924386129065940232187310813742828020987439042950411113922523613585471974454569487044481708806257699518739228989461290241839896556939102288723256849778362187796338442461185735289704020854334411088604927269903897014965444505788223365720651713548141589997408799544159749533998706297748259815890561085145712904498061860433781220890406423363449191272785347530343508102047967162746532954158633410737582526548969767128651577892806717003579987321994997852076695926007406281209561553944661942257907041072137284441715388946412114775810233719550597652148992397498564763596732212037096493750806505327563998379168471865505829620210721424145550530593691143366636012642744870014504499906336093686054448157387092556948507694944008720324640337494184340062776422237498908877577244040229520932058408778352378523537397620264203080029476594845898409284209499096523014710484798825616235605104628681197820178851694525052115068971163956925192640612861488209469288918382420684150348072881110561050927470228624192174487352486330744870612020725996293628749416057089503786507640555771798974942264396990608871943114970428037992175292875948846616088458985809141554583248435237026102795611908287328296936780896689800663671197642342896295001547773817150181738514119855722799730876482495566751534949481709977042229281550533227440364330733436010083507818705896560702140730931156349411390744388672550485733182051320465361367936943055861081923151486929882662193433512808615418772979846299131179125952372335233668133687532295703753274872243814293641985964640880535404521350501682821581835769806459128041833563713250079129032826036329653028307822506214867645634225210015921134108687952448593030957123209308029193566561667953700050051330718412531678159925495837694504086479632878209533072856490316681052257451387080587502753176427590968119048270873998533940934522050190038479908013281752221648167743415313022482152505244226499323088718514392423397125336205545485221772448700211188321662392495046539462489807883212301921987558361572581130674400375644002607168996720051340233875625510993772288878969762396902873957273489145646761714733608755814748891328274180721284761116224967915406621573764475275020219443258920739080934993422270651337620318558612900306692444369960260518403643708595755011288829673817358941692479329447091464588517575150859795342524111544514839332888073314220199771593200057043416621785681014204406439850503410201060515005121296433401299289326124778280152363677965803190791191319954735551085977303603294136363026976550864689096168466855197765599580149452863744749279758909201315506798692194600292112228816471790070538647661820196591041450612306132741866029262827755150908350338524951818972621649335152676034516046568090854203579344850357914312285171264571505916018039674118975190021215468856091844416513726018345135545763714763765588518793081867150344968019847768800941816155135879955947147273652766671637083918647450133188826246137973489650266680735578329335233666854115057138348219570710115226187957800585486917750721074497714398111056807229237509243811632822872631955328292772285339558446443883841113803606283817021550585457172648551102091480702706119149303156086466969089750892281348095458053925844630252583467490157095061399269586296770845890355157562986095988859546199659658863560638446996462345710845878255683592293293151485498560134738434256384307288113675771715866677036688742368628932708941369599480148879276423389175670031528925113031443026168552721904603094726084611029964385957023284500462126901628281506621555847355620688461826771437725648164990934210728748666078934936673769557426229871384361413748217906485431859820662480236122342121185052919740114861798587440422406603756237317775574068971101475833122428567459349035913958243598758355088710713422673010156559379018978203634681326987686972699255353415137009473529231511735348646844706253486559524161521382617664100787348708474775821697782117429234644874579367996141171538135381400815459753225030967527546785578414864331896979020163892082810076600447448850482732112993553671457833753398335827580158935149681447216404336960748908875609066437084304117472883683935109370022782171162806226192476303384984388936628205850376020668680931915129680147717450615581695622249561199921175399079620649911564159602585917433959833024521438155712691653326844430673266002626645859457580525033824788158173672603603187327551981009300550065067963709672756367547427703853328810029205191193385142980625949431878084992282723070435972861147630189048137340810985069682810237374828626818898599421876816837117691981777032826176530609530967297773124736569911878864380711249116349953043076348169263271765872735190072213245389556196288470582756502626575698180242431799904952535630980519532316209918502106197129776021323952299335034091552522042469936510620990439873676982948697071954825360130613394039871993907017768884138633145292776133011556689173106447386209411988433778182927385923515503011359035478668601053122001739210919891779665978145222814864723668166187807966768510131827322187307712443624196260668469880010004167523815048434749998497357655773935437237262281246665463912591973731206753208177249911754587672894865444684700575476604175520737909594889226316023530237455414952753477304553572193079036921794473815872489448467200604905776887419769788396295510754433967290756441021836906268480291147508225278610044622543025577893949464410517573785488126188799806672567412678550188463118939014418950932580993021678353253937134408315162727108796423140689781705735859089277300594558323573497207332831491106073388157906099313080868821339950824803262590879205667360906915380264138520091827698991306511553302217165332523855118125644440971255070169843653787609421346047153753155152047405024936557230165323155114671060439359756849719461720538777142616336288531883560737052712655607448209969907297740524308146104901870231415809081837120995037283233220218614522396200751110220747633252927382774657144479697853610469186723959260696773253651107741702368349301296789887846437576246391776369124634854218947249637823145876866002540415020965804375163362282164222794252375960375859839732388929240791280822707772763944807463423060906103008395484302102954763196769868461638600923483809522458543763597869501554163088509795260956549146025062996500506205214227809261061278291307301761922550013531041747789255820725130235480168945593446011678842322552224941091189160596543082119632946286345015943141995058931132335178263113559838778985420979102197916404264237098357631117199102574862359588658889752648931153418965922565150993594757201443257309509824039282317052899829808111803430602209347046484180537250269886126147483623276903812246624669942188029551577118243025899614811397221438850745792446403993738859105528741792091050239655035239794485736431848729382649155202375675047485797845394016077274342864909010717697374700333636298632486854517498477857985219877157425782595663238983670074396060666289100984011224088726086637527239282323008957009810714969216693656158940499136535060355182419630669135805372004447845327373286327347967367698229948553580874204234092351538346108291222077489944962060639200969046681952718141561429535601429932425850506685428503136176592875459622920520174415874923586915907378133019613701448400422117209493917510831999562528868878763277467639763605032769004569966698147300886916335152589549538965989065139857503628769648506561227702327497395362730185480736899176088267638851123299026397084929615658282083752513765381768389118651283745183217008594132883578167059172808357671238307730420999201082433404507947587135575293548998359223513570317239686127280487824106837876925214263126416864447398713207908052447976344871004474217225376258711806972127139163422631538211519822454334396135387347770964242174524907253665912378147391072456239653177089359451608554937016417797039317238973510433057990072075053729642501242369127580790750032547985747329019591126392529068285284431444122962568364597868414053121022306517753737452257025798042313499348870226407215366266682561328241494982729717455171725659691709643050853315970426477812149680876925018886414017497539585192380184832928408240853170415312412066063970839877547014162187315262093279431145435315406821915256438344822026226256515717101171398382789138897877334369237905025374414660383054430247402415138644609859957512282576006612000492967862813875852487032656669947816156347353432177689904959562897554080529597029251379721352913166643076561763100545544633822187649353468534068686058896411224660058209575855098537783485521363489634421472046219660367361591414883430405075565188385180795703851322211948425362228406499750265892555842051026048933933542470533216352882890559078665880448278637636639285745610786133700561916220588038087275800054708024756211754901882490577939870228869120070994263908651123923249482342177571391781773104355005339988186921995224357670918234893396835823093198701670423045213029772384246606397135288451028093478531121935986455103614312047832859446762948787469798183626457176466962540745139631398157514391115240793089070597086661363090034531766119715452401223591694250561118461483597299675898026991554117888371849198765954038409595068514171355665305921582412903472807788900109437971563362071572489752787585845543540429688775393055542341560872147280061445833164993684337845895481327083315912152335053608838258005562629087558700670527849534517760056527548803556190203023636701328511441377314694790710998612803116918066275535792847030959450375998653009364246982300476148442917638729546064559722478268794364350885978427575345731827084256671043261012520980077125927346720451079369943207905053980802019240942477915918301081129468078484823537913734424325973065491438051035950089039592537309264501866452613308047799626049215892993127186270838882585306855808661768379269448225961366028417288598123608061127638317683730847571357432617745222811025877435670759070370140668358681329384213144742314865564285096373548995471893421445419990661072670536653864784477136432525512223894460974645566773841636511193016162974809161921090235868799712683280905982756644435388103963541132285665174494386184157955048398886889114310162152636186124628902584287298008168085362124423714327729181403447232933718237715691576489233407524400048761221999747136475870478953652832645570188171834519232902531158172040668885815447263665364805051026973791654714770501605172498171846196504385480336186470050084382567473289203334928286952877141619229922159566069630042362504860252037413866735854074841644553904155144106971583435296033302508716133607412546674065546339848451546721548537554487371515270139336938080167505373192744096568954346728160109068684225343419509593632593909819050866704388514727139674380641406575689742002186296130024898106718886017740724791649103524573903121672576936190630269786246635245770950803188669672928858485253595924123143359001312949759557826702547540059482650900713824701960092176171199711755486367218806653105697727130727741919449330781248373711719115650806509644442472674266777567488182376123262948000661998251970602806646486945339115416240621533739639706818247159772246095725594895501097243769387914418851200909755005157318140763460158411630444903072083605557206540481914136146673699200103702847063578902893672522061122245712806356129123564796483717292253484781938861853731776911950218316823976480589802945098234485362697868122036520853611543150543969578928067613788088854945798887520839449899863029454394599691431050040891275031147387032320977847952716001265032412693593500064813815724545587812427230183609922375877944541846408408342389820204620851775202882014914955763015938662303189164502387595784835942398573179482059871455032268257246223767773873595534371473556673514643525563339661612578622517774684711942960701061539936256695624002534029337329043261642619941334884652230595273604131180229877639669108055881342551340888254724374813132443305200034231189776434816942655987497145828242808634647005830320905376183941612365299785455521878152111427761157327974751990020930406145821883532441071323491323055268837861131649263389890290903574298084246625378597943149905175661054856473136358229119220510068980933981530547681399007860868538968738151220710062430963864186448145812501203675358945316199025189259809639184796085457058420854306196230859421131823211684453592521094021665839514553194532574356630925634384892478880298272686852173869101662303692651317012171327533272112517651082556740073289858094460969291727970733829419126760661876326127817187208171358019465027378687472700339351755475618641629877271641968253308678318861462486176615937783467609128590772006666498732409207233761703058771010457133560896047449495386113094376469388106509485558210007953717197520756020475633664132754512617482776681466197557199587825325528052831662505045833752931310182345114028024440382948537863775249677211377419958660925612051651152061708724571649647931069487071159698261907818712528937407191019171671286982782483766731332508709856047632626916147412031515484993597346183423399380398587420354407106430193166727130096215084204411175361327007127190915696539525871896624532559317917602011839610335661201204451211975027116885729702283274839730442253499983816323814347306021092570074430284147266036113573182600244689352978919983338334550186305903692300067726979841747256937573009878916882669888274752579815829644255082946923085917454725618799668285094380483524886477458719458443162771057069466206356921970510327413531005488335073740458091798982645824587051459853779729246925181000505684030283462895970972612139014945945960661923261758207061472959668001642729476463787209333845497497834247852338645192520065521479370396809287384181725962249976894134949970970661258854335962222264361970444207364116434745831008469085845953736561987484407911094740138474243383348701941710700978355538640543093447902323187420547506655864908567612679080543034778054553718617556692648715947882941998700927122183940818622969284590337229004622048509502949383267489032471096118591494192760898822763170819001934292512342978845892534691732100564223825404964902926779649017280577281374758293211841024455160972050550534158213113719217452018771515285547769360471106311076891466939387721693237951985895206139453582232509447703461528975434536679142635214438805232330811698986314958019574030450504783368021652850876410168346850180670108954818314172082228519965354655765265267250655833996925204364821680200718318346563004547648021711125535561344212232352056475365041243587615417141829813298055077815066088966522982890365401477739561977502958632118367736396746979257105658518611401827839911328305922864503066855234288258315255435076149342824828910576182914503045034960305801002963572153998594978484072155255360664687174756359680898820116556770175850927033686053723396724913348196483910404955921287796499216515960578447295552936367077456439676135061120126223943208755979892674421633309689277055743266054081850508786712563162701644234521887536477796867793189841589132647632432393523054532650537200429353314770171403033155603928593888068659550644738345011546627965095640310475721675110818774096774806093077844798256119608309036663410677851597668045405421293564408635064975930918340109596061262357173875654803300490119616960402995798438379923140597040944267511967739226928378439129819596570923062079719138069178411986551413245474402854148525631579761888038010098026860987693681153175620450115079348540831930808444247514909222039337922947102471984700692904670914437308360085150106063026536668732217373223898346271061390327909398885589744062729460096387127068157353107864344261796472409064415376288613807785244110498037694615601446042551405087225580495584852661874389986544157193679872197114772952277193573590366818144845016576276309308353953636597379975475911956286751756641484257241300254889048499315029316410839916880713400425707952169403372915928824212137848926698933596504855778015159175632034131386013590335955632465317804331163264986782784544911876017758445321763348904236670372049960668917589429051478068848623701817068373475215345235511187835976554012744918224873416562996269254280847875892691208476069347428617317906933676665263973215930757111224361842136190622637207958658870477585867283911197668624417364970322785490739775638230013402699970084203997979744001661819768616057434958595713441849562739611554747368425956858056796674324846846254215936761653731839055521719825066015698762644947181326994416991507187170715104782353261649178871515023316009193489716549794588336728578791476873829083733761860194016530577086437911840553095586795227274434092966409241700228010926312675513859744543972095658069785620035321913154163752518789871260844592279822148693292712271987593536847393367287048667111933913815564769233307303254886922772122468409221851274574448509217579880184555357347003040827398031271154477566738620482501085438178181433819293122538442176449762067947261970357205091945239623608372309119949221062335966010076346680264460554084976030692380173439207366146909568797623403158866780363376360917586881979955756588305954475273053388015913267968973051507644350902799705100194962140494801171928702599847999205696640320733824851763410835464148247888890107883165139141750218072553512739413284092638021506335482549365602620030272594172400006020644836030621873363519433864912973691716722744155984512543370645458804996282283322698842629008545782007687352380033894558747790034149782450272511099227274979039305586279832800174869867315372770526519635935815516370288281491386465889351515757446829131261186423158322526807872630607332667685973164100158676611989646977225166347784507004979756013136576720841426711701920681923233400946938482975745571335392841644377621107178160243610431878654835324438178913876551392237974240993350286370786603049974507318709896790003046760128397793227162729165263981981079639580551812594377796748525266668819553938210521190023714535879111396794207971588861373334733801972601045822248887733374553351393509553995526012164588436855554758283842587338350965366188614191826052048446069477272701893237549602047043553423753685888749393026925175845215273668543907535838725144155306301122341595046037613563193948326512824656337785191397955938978185242580949221234506747063198070181190095137868527738128913489529282099031594244332117707555171388126658595622592085410046878387086055813351347554358327338860815754155205896448314838666438681596957847748987689828871939073325705540208474051117783756161126317094396791197310112237695000766958598631478014921405506617180916881586499842610862807607326500396640976144147871479965003923748060866790958229364728954909364904958623552919971589360880756118611757917599760996868041731241196954293190569763758445429525788977014571081590596822316532452649325140780395081869173967718502112825189297094579380637175407798472452238476320187459659327945237905962236982887741719396860813411519426783371913583043541047855592529306113451900745775077381618710446861912693253730399298013903307591373758276056354153945518212376186713082215583592475267596434053070200589096697085200406088633287050825320063570804647041645163309536437092049536706995451832320995674500377912508870060924553713427718017841636324571496610671120489213782103353529320401195458410445072707474283781442380545732358837696918269463134162111594952787664514418154456928694731248977390178545743708321215087450486313512314832725512585962807547517621913443370792913380819753184681598863918711008459291059944190268670806302380511146874354041376378799328910928600202694692030341142864185702216158506395938192482666939082558359607165835479862050479829953451655244762140165472117357783641024334099292615112067616741146550618547165162937574071660072274909010526874788554219082382591837586659969166962471496871489184426319265392990783703970935159151580673753351020575727663642024390198842820517206948690240150269749882094833157569503713264559778658499061033571218694294820258187925594320709580247740149084448653185070349218141797465530807467534256959873495194295165839156137271097021692579454149404348563616208180772227991052634676463811151799120465274623453717650983408656565812260353981260435523153217174450110064084451496660256071519600781851560421959611664262681997087689892897673212427095702593311805568380879982453221428751621864562368103858488549448119127082941151098890354812646241631576530665754832079155339021427566626079865638041901427973265854266515902495127672037214898861494381881915985709422279493792501964229754218356790030506795008520686160707375410255295591273905304301480986348338264805653032630810117506880385357316972653015238828911133994009452145538545417105452306468476145826405323552780551383386601888846395913634976749637961755573189599468953504075082978986860545703092822723406439414246326208880118736575587828842002508669151969031984060370395675912459446625494116533132783164044723062110544291213193654455846280471483493081802798016100092102215367652806820580014057356227219109822593863280727873589310670954628340039609636293226754906451361086117350752908438942536650467632603373450800142704770220605355323354805524823412758224128922507147347393683699485931792496428759072860979317382536092383269522752020200771147448612302120579393149837619921945207457258172374688033437784948467599512271797257767906384091775529832392814813744209973735804013789593986035448083853023062389687309080822701225239181718450489386146454348799443121342977755239062276956615070622238829201709787309282012957132626393668162806916564153527514774165523468114222188235732148695635163599571907902711316567709917648710563809972292425847024765237447305458347760239109424423079847517856177735530555953716834983442497612766972461247994088900306088673255697829061789348328425960652899507198309015278808947804647274711434355183188440246366448601409458677656781927496789238456672288646351660779145393453640435270289518802646070518627223741030147818741516366463724411921719606730810376376838314979159353694031405261753469368331917665886228186240415709761878431826049363757155713030136865818508425793935870085224119178218360940678298219644010159904605458964780670123185834727800848977424526134022873838955554547593833287129685909695457978849718820002444908516402280832399068066984598041197118326136677531523614885173082435410512134948481039548997034840398851496074530314642657405678586748072679778317359568017702361051147394159769606551939151926301863119328263444993099053671519066304128737421918609965968721480240778186565843084664784162491592183011593791215342244361424898912781652196812830966735117008913914012527366195382679261416705364940565410133580668797081054015532278760775456790190489985729816465955148267279634445231975402070225307935532318785922134601356275134627183314309040972713143691532976353543139066933261667651570831872703960424387889591898918799770742355484199086949771711917295333992710022208412730212270075132800108467139973960930760638934474646922430686951440198969908671095891376920150617317741560577235174483531797945972227842415944688147630300115910643734628416242051505397106263989597392949501769182737482538491179992285410821805268599955595985960512843514562210960084291074485150116414778695878599836351060965364327136794358106201230858536509974947951611770576680265936175821495414778521906376113629177445045592061071744608618522756118256106383756085196510199305588699356282778080695503702185524419215000906787145899504426994927877285208524433720942316388982159626262972960434490086544363759912951609551203143472099146399571069831543691835337069707300174327595325479928158989247927958841887395979084051830932428474115164801341487187241178182952694131689641446082465588416280033927667605079600394072939485289638769439239909738946838078199963417933911303477264871178561909835534356619560741791189079122920854709769651336285795236486975175060044118044472388650614856060439472057769702942585248493318832685546649238627099197986784748007988675691897583559654702843451265601736693436033831462589509698053380465824910903195841162801725587610179340376564445850500652022203211683712044009117584676871386285810512113618251424085463629524752507356710385018641665799381426628393513335035626373671423019061534323495234227179478546999055911759460923424638804215013303141082088713630558440954387841067022678723519555485965949688078444367921183411025894386976879719668159012918849224298118512079073891913090603919997214258617553313727739464427753958752110290330025316444741059044784695360618709601552898563678641799020921103384757180991862361866084531436015252224679094376996242055598486202249797225109782055475210609595345048137470005835150795117541184720100200191827029249919831639352812353462770525630160355700905893353504267131794387547201291617634149727836673910497749034568270578755145990224729109397452991108378680172497118131814091296059685947426107639202446227924866102523041046409141020119532950440432083876258839755816575169384805380863581677035873930035354176123986658605351507972055111173207117011985039081811135617352296199864558113922534495213261158947812594290446038789756072577512999542799557595292308864063769855911178098946844161214966929776142177855561929304469219541181678631197579083008227153329064591143448868775578998578827275984525500711213206439018686513230506488440501506393596373917803033081498780062038045919152078543559148801422907854426589584996688087245361003326164787204309953480705373095661846988766475790853149431146606717722807781323284461922312995480453264853322177157733778931572298709143791809867208351269830178276438968873728939335084446569793162077298712940098795689016233942653862225660037651845283469085022468156197001549728874440742298661407718581365585021609712879917721610218945538477913741117825072906189738925607445774328309221568036465824555686225895142531229250912587187456561491206788766645859824794811198204670671083462178816864697987447418547450064943286106816192459559550747234797402752987279741834880345439203903092352261865541942109379486611185448395186226938113258184089026970382161934883584399170057596762167866471102493058865603291215237820727247931446383748768501944788447342254274077584460632698149638029156969132564698661792180797751994472422672747966134788880187345494113685671548086875505175679434151414067236913707900995329765393224659609173021307302532576474596582285178039830714999951838963656159405479614189694263290496300570133619313924901555040064003489577300504509016338167501442092827161370326967282482972158390889691278614350144910755444367057350094238518979306066798688831870393899773481710893629245286044342945850406962494416800840220674173976394676820186173688527666283663364588848829925397509127009691642852374629742143427476997756384043451928868818938591357759536667338625107773542845466489473604636645361451252450362779157893827745124272345902403837783280271104252300954251536116325376853381488441814826979248256657089133373725835611896430497783889729376974866539344732209838069281093726003402030645758288456278543676176170957198613226662671529577239051222768882112832333774865848374664204397819836795544999124619187430195930088255370499291852568250075572942689727041438756315744973038117916555620599278638974136849987026476406270898938886045701209060033378194429098911940437476573760050762091904811691725496166297019645495696916093268722515972318604395617322939590587406003025219536411206562226162290342639980292245408725545754628764750002296365218640438593601312161519675568667915284446644142456541012778862635067152238159606398242761305104763253541824183459989588462858064720843608900151371199081517119638124567313067314159165008583530153417762676728105228851615548627739333661733085061833332486189384596938794235485600222450005151527845102988464342071433386608483493114809843826287743581855538612110928050661347789457508795386645519039024275065301239741813987216369885997738160657369521073799872801854800740501711768290293776776349744692405091415002628231798306600490172854447632326905510267058563701537510087111895955499489705772089806527064208411794068547299274171824493736437786523868894452047687633639944165002715175445131773967187840225677611267674030101347014613299795218817793345075857975275038889584784974601340592138655009542039116403185972683785501814895986292977990567882902699963305155546688431620565120188130588523848124890271860611744940639333277408490752487901318758323532617885443877505292679741366209690705902571451719058031001456847727554078629488656563520457612581733912208776702437194572067763416637953479508218565161192454690876365041820788529319520648722490404002760786560429468183765545739056847101412122653803881656118295471969975122900920598781973142201320343456505003858200483020463167825980742738789821546154781728588997975713893570311801385541781002178689272890931841160121388851316124637671340656674179816058955546934956155908165980762955186950300153990672952387909750383434605091157127745782858852214017288547963507100951668185925863229341512590202359845119711913126094791730755690157744480149283013125401077299841829133168416877212638761126882497674588732918117288844566280312188660330702031262300939235206178591296342336097634366986453055165578762827488736773382379411845899053361027973633300918486850556410827689830687214853443938448387652999776130308437288314997154074312589396846468888255831231325806253876404849046676591510513350410393985448498856651890268194480695413347023598965114283020790584099547738318298379137206308193305414899946660104941342337877922391500763866131690478171942318639389429222387295625796475837154593544893321859605529311668349236131500088897233778722071650150623044649548678172134702696557308590083289368190135414170143134472131178977156907291586993280624414339558670449222646477824460788192692396675757963550138274058718499316747712725838717310440915785094895428483130154151411776176278880781390474565823016000623452529135826652586240663745056255313871384340643250117516386306753122744198901224080619594987518863204699768861095952478705396458387873048408391497993123683309444033212904136521936723157300679776861236279272433905521587081007880800057447366300480077223051677127907965819884047620747672519122865127448867917188973736625277620325004943725958972009934294625616761642640871230868747552721959837963452063820963978961271269647404078556331797823631832766541987185335839379468565683044002413022900195730610857581637134463965044827768202121675853766824233821855637008332649037567059709635664620222878200917750076968249609055364729790644354896141838042978613536048114360149413173764752576560014112169792871827676958275784665015256806994575483827071436622261527481270697231407231394457096939069525225595052626007077337416664374294239092617369540043843275655490395609835809406120940143234055626380362107103471351085654998680448356691424371809670599000482501988857318613588647971778176241171647773766479237201421301335153252171287518319159589728519987216030114372303562632180884408647515432325949079330887980651172295025177226532818681787768645414953167693467873504548384066551433771063566514612520976111814896424304460604797276406508177390651503527174449952309573297947665215878411091781114926638483150323886569062436766606082070672847329815859349980054723030132080369517002295400283933150561220399702361929240203136251685678606689695423715437695140327134674563035685914836737220823782246184978794032270149053870767359187330351192251873659106075434813025307619055858656180726040297208804509222712846107724544384175280134593376148678500705668473377466318138083701036390281385926131685641744661451490285846998683125422226704376152574587215214426609848784565136692872944547035105485201827949400294253190900525154022678813076215459570714863591249199263420424558226116999422809289604318398664946926436999982839650838355868269626798258984788742630206217038478391996867334556847170225531292489800485643127493505007029090403686456927239512989099557283890804512483295800632016609982428313376331733455704057861991943282866179336382955101517009866310023634516860239238980581616802710846790741123014673193044293553790418917034543369896689558052011340039858730941660379623413376327772721249548449563889393096666045399667894061962836503811098028283916854547388792399995478790182418737613956821940321134533619086314948118862000033774677088993411897508467915672805530153637968247234621631719998540145176085601430289207140375525145171016034170506926425352425407673244335941828690431370400561226334813685018388285964531020170375978680569338528511817996588157681707105659028246858559334652727665721045508126777682993233865554199982703671182923990172126222763567099571878109430606161352007341022992819775317391982208673699137382212591027799781953515200550128888371112393070552572706698454679122372996876695940405013011383355370783530722895604310520119637898806248416258813667945771161472013848246670214694853023518295414839173937212697504663080268519007491737814278386504571678127974151720780941793620259871062386607978550508309362197184190942371450886874155708109705903646506810886873192019997035867937643310936851047971714184895265341988738677150327889348489009622037844975387713976146316996447566128425741790264061776135265911467938163304421603656470069670033449507947858734626176503544428829539999692676426087346939477513193091075696520603883498314849908888366958300965834291086384442276249913789054786947183350895884483655104207481480310431282981075053267579242400032081105308478873875513402471646775146623460614982094990567195972254662800230883411235867467840179934492964781957832074234162693924524454762422516912745122534331915687103003152166736657954393912699382963763657612377929183098833820703122733616541856028862154213232409703475434289707833188157151452552997607196081227307094251632681018151482409508301046134664313802685230327764567907489633895851780182537543872097492494948478885342134614977252815900137783312693716910563589279241365410785187968159935686977231913616066960681146135870352873592439555716524363234597045448012370819503121775070821105361976814791313797888933648979044998262720207710321845000289899613338027691860746469697211846934678583786646755122251674629414779299873150520126354970685229423682130354138716165474354863931856006058666449343613234385229759175385196881226585847528563496201181910340948313267989664470128212676493800126165739940029888033801818704230081115436385501399266209789904848958979683767865992781186176725652179824927603398512361548176795149616239127250854276308058518515462927733318454604891782802728000976228099823671222757620502238284101846464885034535757327542064364375959018170128570915514443359525881903304462461528827285046476371379026799253047726101927655750287538385180657668904076193355630664451018169230532157362349509337646568436330633857403342882145923126181392502568412365591204334937939850724583601528899182333539700326047220822839514365086514728607454214435468242188694233381023433504746165628758417828807545017856429664391974624952749507467199701037632757544117187857412420841389156846646358717365753541990162266088505586280159302293975312865869635233388935299256623011601175561892249061083547572782350312739490782423034692105558292972559895559772429855630328966582271907156619290319857270067520298096745314629454711651450040115463763114100487529456656584635876838345558730307757176417524399506100419500555051049127186502727428886409015350557389463381451919301310330732012559714528958544192727670378366765031477875385877329527238949818703174598257008493069759293121443978962023220287452112823691430304561832340548782831791920390243011988972195644578067476614152865080626722722406570692484670686205015459368097611430018712891646966691157107172042284531140800528771586471388824658931934523513412490922349414777593124718883926125950080829997055266621121898216390216146735066418195880144008662605870281082895709341859338707770704638493406723200694560360129863166111096089360687339102885412118011372915460654932049931941988373998821511353175892035538474622917068100753028583715725761071309832518195230192297825310063752273405875187798834778309576684161699913538013232620823029558452382448006121565771396742440743976818765837348287871137300716617541407472862510954321439089157264085200606061241958395900636498304829640944731388506543313515743750167422640745995981847129236918089105969291977688419024313513071284854216228781002995678400376962310447880914410033590853353379521780897515153468050579077456507852150403854457578494466591508315444979505202327424378789445711602828820929277042699860074622571038775583247352912396093381461504312291231219701144873030455082890709413357904036654650657773567324606899777832169550211076694045818704074023008130250578190565044638781560164372205906604266053874179443434380579311347562760729380076926714167787404025878280861914417306513037810191054567350796460610178405467191950113398025894618055726425262457055057709343413103004834490144343385776326870460057778860018740243076367650169664731664624554710997212659289433418497750236850026770515400088980471164096143247688041210988530800450856605512166530855893811221317581077517893105837918130555484782969064848838536181968354986473856908837673755909239394402635305558184453483763604141149320148928131563171485210036754652301290901121848123504939862453441335383372109287698179591645493988830887675135140214023837287085247011382309785779113690511717588874790866029037794077250636120245165710777580112201468266956609514784047328797222440719128073341778519047896454774750918107138332597300937009485340587914774876999323316440357784799620744417896644385997527390191967380606435314979121205629690451788440676226433845529439761579626786797940558503341524158997395391552309022812110243355320881429947814716719639315128676514802456257601488872268913412263724965880138707166234336362522416057095887158473810603424628953548983474990075939084103123783745930200411836472853596723910107989225846084857760980909698233578430455293869858962487487584438781793033080386777785394192339024126395496660015320840034460162522098430068878761342480151117475085954751100821705360185080615451021881563839757488138507779960484380385644482287527317126605996886505303167068447925504058382785265635157716838909958896893374282713061308024555720790755199417906696293021484845688980903397083644907339451093457810039071966662821609087164467893271612644290406230597438128980798000496354226478661520636554348029743032834496264159456127062445103030413901784268874833936608667500755752760354691101733431316236042175154616269085918630729498683141282046486686120712695576468194889088497644622921112031192325946919217763774940592748115186215775979575929843323904161212355437337146731238080819675712837621376625314001657700175181793717358696690452376616090047049223857757075810231772403836149955537229200052050792720425626393429746348775441924513087484996158028073067522165526059556182729291622457495334504942510381585279018648729590415019249840158280578343638796459388455199981599884124602540848441988714303122929724916932710982099126899937808285083560122972215234297946433436009259128390535435762235746889739716613045673776565941904847898137148442308592637093706317082506067981798905373296017382738857720677062403497204104106084033268239758241471169112970050102450933145133439082481516921584217082093730299269889575409726407023809527824396180419950501544425790588994703389253935734487953410105343793570549219532129578474678877017617274709890890427073120399182602281663536234932109760212896379927369784565484570329882004295937384392064047856617693804447459432851256413002618433008307403840003273827894868971806712051177566396724754332178459922355038530448269187295374957254744151674489067232177046566532849430568311081327919715156326805716759857460015041958647506549969312389343024198524098101379900344393877879959761037261835000561131767858680264138828385129059757449856550864642758199643754097234897812921483325940688643371063665731099206519057120209503510243592789629540670530655477846936794606791925091592027871556606778682060545398130982965317353306938058559910229861656144112915583217697069684268298176141364251656048932794876241154515685946578169576957297936368959759001392696003852254423470107334800460152167948135034229969080602860016355129691154408243611801185787952113100411622645658235737043488075066797233945271350447613531945257605551632215590231386724856640917127069993195516845428818489157858751614724369562556052514184280462257897704320625791402864450558658272258428199344548239489259605468796847275947925321866781689819551506980573781525052686976449962272535950801910178612087484716322630538215600952092813897219612394267631458556252025628120080563704928867456789347937616200235372517909091773022577578704483170026354001691970302042530709301843679093141211360167337262988850775013086906500739820991074166538972627961630049670521850851866877172168336837341152230505321672490082077533403019283210982722323077030047301406115552966527399016434655855279096400973831615408422389607119075196494402756529974056687188415944812058376901753062800510422482395322098806987471977284617718881266909173591544389648245283464770118299092139834838185709933244030736134357790715197981360689863562708770055254773066929533392965645708847440803641329845174110464196382651972948400009668381438870400131620101407259725034278900650260424291282538112656456282133772807804831531089335912926819217962018388568642869197464344612136905758384133730839599003933918357984455481045382176966138992955459772478773257976412480508093456334711407115429867481974377570879189197339965153793896340020313452113337379415356074913558436396613749477562513662897660721854651463959658201387071268149711962096389032435004930073097797218175214237711000899165999404857089380053559688840439730710130392071244040218069625525842432767538452859143103576724549384548842152753857563035570490188450082067358310054568030074459718771957258297626478423521669574395547426903674048250121669853240571250961856139623375241314558001479340652638547397954783627263915977280445018202199949491644414942052540402794751810242547584593767662102834081851626045374017149863800263464907549858316710311454484008717521546338607083062023772334724904170230980799028247605601060979737656959353604108503432109677754493656363859652517849834254338730291052918244852211343245818375899348926155082122883029017658568903266006306651206201779229441533457074119511759105097434400392396405873416178260235085010125427681411876716759290008649432135865644012631675659232398065127697711261138618127409664500626460731428639854140446516971805504947404710079193625899086951531347414787611491374865440514694404859642723864111829659085375402335550436227480711562419504358536710487021505222232502018290256176363984930979623377168549498587995205666410577063760951773549602667530656186180995266175294904478928548933166949711826895270874688352485521484095738910772197283764630985902064891055435014366649113863296953489364860446175920773533248416549036254834783582517155472921297260855794692472411785912119446643043241508132443708936490945787078216794442962395774513089115385727265034028624496237812726147145397415989172667386859741883270779442465556595221981982390197485260065760288036507360684825155178523054829058934541517128934940420759130537529403681841736293219155272137019169188477722669169318130465402288387913865675141457676962749215363169369255042727657278138250469891645981686731212344992940546297215900677800279025772100526504358746895526350640525007420597773643539388709322397769339242094490198106151043223736818936083984491023752328625723842100647044019323718300371907273360055256571025962568020515562473537176485197239448575605720679700105191212976332817148975075345162969233083313814319481551450676530866989525956633336036893034227838674021678202551279774467707486782948565934945493836044622363147432042118639733510237054013586577180914945518347933403622628279954751583516681088129933197741278526499259762383402449129664750677501494778850741325178928825747277751037416504558845360102333833238063086642911605572881353102075632512636853024794051661772660637936261249429113507256141572584963295753315825223576339391744603674691724482919874639626554142170086527241695013415230104171965421027866811229878678096408579160599584907791344408634269218645667267001740439514874341256255882167798477033190720251782432738148317859649751183471625240935922767290809189872791985297966526179647148864715262301898010408998443653962772733926253817624648866794472706800989379637635231207650084626894534410807674244410480226591970309741564604099283744470798595168711847644935372132188946000614555411086124867573951414715649180206882043221371454871848961197048156647362838483503743125240498524036100258244074380939437073135942850621962089431942565025527145867877901267579205233283415134376943366109019186603246867081021046262649598308530815842786575171933590645813120674667619535998686683757481841711133977161553881320168997386037974913793811228740524948988287288796979198572871557732011759857344124290759662918048843861928887003715472357446774709945938151499254574958276973177971269863653841646943436484851568086711073329943539286470369887886690519838601030097176531661370311061983723771241204274645958119277253475523666262045038221821218622322836038935578930732506655354898031505994174014539212851982273210036768580201397738135944746906292996920270336615308418156390387675031535583408000964263318579595834520121758362054315059148749313248371686711193299825438361131789000904908373112377460837636687214169263892530788942448033807918171898562740147074270871493157077684572700420358533003580522588214555125974208233202633520202190895067422494026165542702263215287968923478858035139494205057567507249468579816046685662971082810686369343718321800617669260727135708550821484326583212494927945160554916068264255763102784583536187725328498523312690438421204164107849616565594115270100607643724889916625297160106702739438532531142030420665582814807513431287325171113482020576822824017545015731212009293826909104460891286394169406997783327196754601779895598949308393540712296374919318936670191061660186758943003122722805104686998776587668168322204545467745831098513743077558347493973899519118202054066014669360044339724500789130501015467832821451303351268091689855356135004414940693963563848132355330098297112515290023991202966636052466592304902360583895006013407788561869699394982484295449039189880342067245732886824533320794152561950763082848208807827288275912672965678037152228017863041109877249493794937791175654206523061747861407866079185627182195643982999221022773687392142710298212687475612400317863000224627865576718929145794605864014156565344627849813038310012902157938091270674880999606807543262196923855524198795326613851755202811778118096932044855299102078210124241370100678855967019193931203616842241551101509444144518709216737840332683320749869066043225979090146459201627321916124002427192259797276296201013216739395055066468614991263837444017536767905928398201805948723675047661580543329168373372948972380172872727169580030332903618863377674705199011463003081092225387107623606746742771401427729399487084697969705283386141218446116608471960340214909222339004263563269094637411441681213350717279928312239396546967209650182169191382945340116365904502199366406005871121402036129869383245411984094454270667942688653324809972593716040186116245000358727438366935161033564614038365362547707687557931666453278298137587790366506836133900122405362304214223400342040817890166930541331986577522067350333119788110247081501057454870469071273930114780602673327464063126775994008291021345117968325768347121677378892709622714725310281522708071109589711279169167320813899855527254530690037979003700038505972656741279641821767671972132535019145136196653597847508847113250771491846042796668468332543787920476784929398631987483756625450978217938237478316378797619467507004302167483708833238706313610192554315528350840655384417262175264376411622236484007664066411214016152776209339793402323271614319747261758736293819927524980320303336341680981111118823509933286022644602943628140229403195976844310959574460020755164669488730867801999253118623434682631889997579990269181119888909616785369532047201861288537977226746542832549459353233225198528587373196634060300297841021511129090759643624829524303317506202987394937099217438716099286785265910776280445316496593655049952839117053172630096121383757544533351904045521881513202023313235202400523956843335458585713248580628115919847115760780685017630306423843495569086842853571532093175010236914416905668032075312387116594515481618306889770373744802862800786966994130093835571891382890295711027159364764709215206361511835838016766213815175636825910482980861355915135177382767165358514529267526040794098862356058148249727501826444330026109886223566772677252204024151029545407145252693581671108041404405826220451254360058910648057463980349399255560181531911235085163587376875912239922106499162682898803221311422899080927357775379988806990133133548259356956554612804837725978506171902649618110556683495650490400350435857478082964258298731092501886106965894494041307620048050378392012078587694235464370681067731421971651583870989775487571581436831117572281015165439075183409839211207522400902825269505708178999741854605838157181434278058343457037639223509051717040131023702512185539524456629288199103950510223225758080133123586615938010920056980286524235819639837690737669493415409458651898388417203489366182828188802441026214340701468952531954560693015798457686521681592425060963905656651290171842645854069187124942436450458810408063517460772234117949750530254105886881705329939345188480848236242366264858126005659379619853906946671343196801824764384070939286411153730124507547301161108209968035385076589254619433893569071730568272536767479471029500137433381672160136239992166644645369907727009677520728631070022490103631853589654481538007304990647928943817941392266879780250784375868584049840564722457013217768965390836370479153642516607557503446798927372567622506923478806565508830765061063608633949746030720460411269334610801819663476029733866059589759598345306798512065954911150540002391601893434725874339319775203924465787425492055022736663791240061292227885764724536700937222602592369835016529077784178027150669050143382355857048589663522417927685091069481442596855445427809305840171336357648609095789897350096416229841897522346128688309019180954845678249954479479940513400366122238017962856342799156258057816307848450476956851695599655263122210314261097482165986842352692950890002155804143303607235617782889692756864329774737980132752400452280031509393779704572787136474228281072251994437758696019022215690436452144617219067943738967024957084938932508800668050946937182782597404066361449379894885167967687528631870835029557961926856851337340045526355791168469695162339054503555967673927069270510317159656554748315980479232043301472490056592352685723056314039471645625189018700834118131983128511553894409554307291306635605500169907620118248132923653110112075317288300749726431301177723591542633903163867006810422786387807751987224313206471740810433117330042222909636324875801468319862469410631128407331839911043188055170911160901004703154536297555530183560990330308840483580326252443788525660695528445713919775786283649594322880556582318608803827812672453459991751522718058079463935690575425317233795233383136810886021608704737987291100438705470250823774880539278677005077243595233006229870052352190716733770887132398431511341795904494258624577665878781126340674756881737212822066817068849537192248385491711127289643158509244164285407121074454336051846928352849614942206387174000632745564141586192634964554894197182003981612843410915564411356424076073969285439673761671031754385539454935740396779024232974486151957363844970059461457099165528440484934059271986188833742323602803561450858153551209081511090451147207780960178601129801079109697227032625872445724484025772445610820451308573211912502915903598878451402959712689419589729957320604227647256585697058291506875961543990045334934069401331196441993329417793235641941051093584204290648163141823934055703224244748056667472416337249230928220090574928582092831241290738186145499916123698488065550078462539384583915418837336200313312642563283991418848794235351116790717938796374229876111986073573242402504224321389818315100531587047301944741963406348921968861121260540365197620397203928019539834972845948750228191904055953214843621536878405062837322622040286846214734255896285229375678845757569703700092574612783505198106859194674453145809208818297825727435143810412521918775102858059801590275567973068831395772256077736814512412588005824464559603809321931721314695724633478614140777623326274600445396543190393954000445004142646279211160520234672848367502281894546662053074723921982907488202760399308300699012187810048162321514970889061734614087509926465174299981193976247776715050649103128066289659920859435727234775516221213666412617539637104899537149346206828649010121059750510660606430214938888001787734165162449957601314275196367996314855570856905711646986228287855130389228618678760249915102520829245597613409034729416809941749032309116288381657770443708386790913310925619093570410498170108164094399781595590279536880263981216153557022043106618789860190385439347213045854115860999765925286209837680058092255740633864511170640295811665697818245959305739757526797584553176981774172998065779967622614885563248877614407189489777239722242524145881415563484196082303706779182966443104706362357754269969012531599042621031082949732555009962750894347333336550731406552605450235353982667947859016069409456163978327569284469552661404557965524227278110131929930597620627364878718957536126405721970928333185748041966558403692422936532526823822044583554286722480013657206215222451938160453921891249204306125216527500666940255235563140589826428826313434698529770650654152995835109943883868359475164703140008349701512126463986570039607514511774388678655213847487846995426025159217222146478011621547305397799169998311215969908055683753142937339358266525874468842340819429358955665627878015053776357142453439358541855478378292595678051314875483238461202391417497039209605526072351343214068670677573755354282415387826771788572872237039052827735750799648124344234604770366792324516490828239880837754891102633482275902418915244134937935536854353069065300260096731477358712126152507155768028938060642595956947945412615238945520814299221466499728969777469453684720622345309547896071401943935768490532540647259353095761118227784096379404311833830545440904913514474183243577321196844291854124836003843394065565756476711618221275807732654897670659321672588641155245820097384768052266087609741634438261409840846168022950180290163772383252536377340721673346265941339837738888149401329549991140415393872223621313407931989703644726570078490766202417509870275562336629101432714607296764905107277630898280865931670560393775093962180465759127679166116346971265978370601883160367831346606833769010230343426219686153381713834135720747801791086255325849980351483757274704868553253592066753261264994464559836784641204766537358081472879973386580917067795737615674757066001311963734497302796846409800778644402373736982170200577863621741674003749787590172492326010395875309060880329710333238229103640969499879083652051043767470214728503745808317919014869110418324100984655806688476504493745214899154522205017426433447480602956754535648598308001507198188757486673361602632267903222849888597617670013152226783418029807007823513801215064774242672423120000523600684482912506888907486549822189904374262234279426167711606176743768841798834197980495781826703156309665334890852200994196409604458203934632006379135086016388521192733868608284785926160327526035824452973488890668728887303761693906099861275080757564269358115221929260653075702922985461174607698963488876981494705705582939151144208517357166512084282659982519750461019280999968968916215689088666369853514481050740617520202505600954788925866600842086800590070758737881779483384892180306369354803960079324978624371355758226599828775068036885133027977683404422761739680860036261138892020811274880957509454297675992480473943545038203307752628086351887331562215449768264890017412247581398923059333634414495571116832579621867360377328570628756809866501801896288122502321613027078822837624038136371858066520948456456443994660923002614326128139954980832928565209509099837315482737389325381650881880543346977077977733426990609513269394554612663942757941810320928250432628681308089957398480733969980086151346930315788106814094522500508833066740391666611691681104451556679518349578721752178879555151739785708115305059398715510012013396701329875332243407861995059613965310466451300610826995942643574059774388363109925598056618476657062087109106528051934710723704533982200178375266941036071883291041453930186076631880708310855630174031444996373883985334741568562055087051260333933748437743543493741759873374102866009254978923670161653455179655054671343745213418156427669043658290034225934671644562445774636782700847566194733404644423893419354490443693184265807998696449329951012298752724449466372351782686217587324417318758819586764594676215184739877797466107270861354706507889791108086450972315496584052219911906834290165646375606876998196085159907923925225897960157093032328723727430544933318506604329017986045423316012852252020797768588146307596527249505899331095709212626323077672835611398072399422023348813263240320511046873443371366256044731589633817684792854240931585088738034182329380093592127588180613948929819193705475896815520777901521497300220856205749317318390550100101996487870096231813902405373867055557313705104133892287730152853416898849006261082752439350456932025277847225218637781108527751763766927247251004810439433266825722479651214305366878460514812893145416873779947492646776621209950608025424775543021287796016599325090707950204481827253901731411197589395141101767295588884415514911621677361891027242763841340575273301414197664600632312022265300521953159432987248046494912016698405966068314222136896643263535286751588590670678319508161003418884130986659765638076838954817229554082818690202039623850936986383956211489502317118660470376256869841537183503509882923878915621780095727196977146834493519476131365664536502892276531135910726866208052175080723991320106717452724945898685006016804615394257283646265928573574737810824932893031276844244892650251034514039159391429667134634217344879453230483222050353599103408004513198083212605954894156784816688547055561933119779575860773947744986192742699332618146390221701174681312338620606770066260391832278342405434770953131099641593972792553197066880686477313735392658655290819624215696548949522609484793123454696765325806214323944339067697833356416359181181590928246866247490605685613977234917708983118693085544178596542716817441482631312747234152657527053608224786591172337075701083246250348142710856711125934617818654909866417102260083654458978558329688080466693818959967461827120403138181628551020482600479219409670002997785980180521300582130642307211302833393654570093330624810920868832578289084192274670377451540143279936706856935382533896401220096822161363172302687454738497444296668026445716991072095224017200488059622565279208514280193804140864764191923748203190877617371345597275125389648187929498277450351882779761928864581999405724335061520079780049067445460576801965526613362351297848438681203834340939340901893613853641713475552818824980987568986604637643432504148266073633839381223580353186337470496074945585142577017651858417637397927213299803216399335999547702223976906810554009996262975610363849357689111461318169953244882665063992895259269407096666113267502206847263614829779114826356555973682048925493466843839333434080953485360457169611672467077373121076965415756366487328231573428635666888895913447484056492677457688312159003290451096752749386831198157423370625912139480433225731071615532001029104076470357842645655137090896688975124831145068326394404259833328481104262269645516433132392104391593242127744917766306519643077453579615028500024814520390931034976453657516482756134230264514553618955911966147036191353768716717471720224740155789332121521221606036599831519383223082601555499717878259008235085866737134075665691783223217388402753052566409175331723727869957496251083676393313879357668108138068722604681709510979038765499183695032764924732013312932965589059752070930834890579328584715919779029395360888913933368069077164125212835599964779652955097149377282529169971498297094609095899346940765165548856200117193919927480058437051996183839091688038904759752075484089330203007288892014725395759246814660462559483576468973695974072740638075775237276424054872984490090261358888128215672123033703396526012154727887027485486005447155739659415678034737269686506699341887687277788793429820253756475614229024009017445773068203162798994331856782542615889794387503011040143384759363042811770778075645893718546067998503717701937396364177980827551732367358431167588188064010306921648685441080797126061091427443714586336645554706055320216309640924877481056458044922629860441944744275164968116411202167913598476007674377188260206207198800685639026660279590010477585644629040383101544867664032325906640805530119502973588902502973275942364928582257189225513118027371368539120354896400208220453775033198208126745516383144709551402588186940266293702119915395421195460871847496908867186399581326368007000416585125315120645463162971940201155313095966028693134657211621420015178423715478011507974836699409676281950991545272633704109775630767491721189840146013209837617721407777315862592417135901986452990157697939902799640114678893712579075253177620126096569086248189072609959324271156197457350622431359032007497330114083640821278841124738530536215233749037046918941935292898269579555829717683865583639455177529387716209105448619914252422863982303588440419255276434943920308975061617353835644869759459915648139165362405972796613743154273584082368865167284577737658330888101043144694605407082923977147613225258050629863658910384935202113523814013944615592408706388856604255394292642941269361226345022740937982751101826660571055388216154003363642438128298461287758174025967663421737866640448546547206450753594793094023686196179792794800849980144611758836531770293294076424041215541979973083882230164955020404310756078009392799723654494012027587315981603299536751768561445176588292984008685664784047422586252216411192584944206757338848579620284329136996039877208668424531346970145384625064428026416756871674231322964555285285252426891436915479610958748014697452344656162829778017449861228419218292625500480887052818389236761035441634839223631041980212793639011411998572713404352463320380310602948047767317254832120080861433984302070814167037941310261720538766396085633548416602632024386555063587749134414586391685912516397317418682602536091996190462351901239451735184456170201551423911802017231370005847710951480909938938083664550064493493052885189393935361694874112726737789399782516493748408094722754705772551868191897356958863688129377595007476555633086376792603734842550613394675311051696568582570541767641567043946487810176649634207966591169262875208676057105966454181437233264310815562472451840246092296599910734823995964655598522284554203647627311069983762399963531287661569234283675927966855706474427132654831094756602689409751764463921971032639069227472651696454520474071428224199976321000050944886177638966876503192662267106784847314146833761011353823391308150470198372402435131504574926500761716350367459047121732727448546765776328453666195234317673872082644520326619720696816749078095405440629258447240719865569337497588094632722211121930264108528333392196939342991298509240274221793771190643824745288918558272249027713697439380721196152808378111593884717705207549619111872252218680067620441338944304394464147559188678979163293472888101664780685189543907751753578337855097886933307925140249843399595016584392003612137357703000550902789273053116657927127472126588322681298051214229864757038979121491648903606410150701143403155509029526314095163613899389203022948129536304837381779698617984743642382097984951590330030383082910169743822223941046755186467411414711410783446464763358603242116305894368165798768286863734346003438089568294448541291303289124974144688154984401782255936794741933389056156878178130134580318575843319572015183953539502419020144465725564456100558596818104020259309120706604298761996479930950716122798854079984239653933988479791933588341360704175618030152369209269865288766139669159701791234774160776896712601729281481163246705127286046122520607568219924145178659560497771647636075222500969666555150432259005615527084699449324238097460477969808424729598881496841985095421522427634531580229123101686594932106823132659824008775739195647396149967405197628333604244430700918785354358248658496556517433173418835023092188557372237566491313405243890310707603971807690655614871729616764947645917838550509577807733353965126758985413642826185308095547068534653639166823778265001348511978255229598972940666186940897230965313305286330719971033862405168594306351950047180607550236535742023002053032788699501775765859051174040769607229809228868707958215806245289553587103519203523070818018168181643115385457685728682191761224812200006450195703316761271822454222066995263671446843971901416620991938381207983777494666542220521291405490543210761071041638355830172086039023472889024198577696578409928061427002207476462344426543690783719606222294856165779310350388541324486372384005704317236841798436849676351894176098891331309622392447586158996722787558272655087073228298925167322515911378256184674821817499076784565479190974692471500138095890315591472040654266347768502750678713460861583290216163256233095869479289603847468629946918588127507459863564665676387886019129065013260184708192692677606616883590817953304873731373718884288182378486565046065179267407014326868860381370736949084619244314614948524911387215074095499344216804877746152191389489711132577317436952454578081660917943775185068751030461446187160491168612906420577243970822560455994703478462046665325396976689580618115856613366363143369474303070558584966356859420168978998430631309099472716116928397124509501438326142964545104652379076497388778205591605696553635517186506368558451646408118745904170921997035542851122677743935008406921887969220022186020822682059019908445685450807896352104711074578183406039876613968533334321021702284520415216134976446538069170198872351575092357565675992074315664352992356856912102743683245808230366577979858399826580631020857321198635202929299893836140176039004960448885044844345340383297466394959510896118459311880071549885458613933848229884628560215802082707391180667360458800117590462233448076590890163113297640446073556566531760068005458050964848313891814033382495789549258793181755453856475579581103015545498562763044329240105965252846250519293497208435329746356590739650799846640925151578357822323970149117775128467820728157590855130839020928382924932434877701343189234509137742698601867991459570364420392057727109713408808600060590206367156737786865658522941535992409399919252769976249383881137056378359919160588621135688755622753449718026623051634823256544749355325713771421779863313121851845056919672074662578225514567768787298518969886473229610394662342449446275348632505963884720571623414122420836566847623520947322189893074608231383554606098913686719186571599891574162953853282681710572338786681766249559245277849617413331998241901960925435101625833192010569017950338283565268614013371094939083360205655947864345863734790988368209849192948271206641029217074413033468375251637943457343360976845020546033680210747929973274218767668052357483730670506899701462921946956074024227096367996766690827103114501829900107129067936266209238311546452946546457987536066799792039854178782184079852625930233284654458780708151794126874435346774638855769640499064114443694669408594940031934107820032695353001690183660395690976251907369580213259574056396533980409179360593034464039313464449611884657263104690499610420746772947572902968833222707586207561834945905368077694634883005505549166389269707807107245076815592901465380904961765534067734405459107114618762068483043474597989603547219765397451080337389992094566529521703900456510510180963616210271064980927058264573276912312423126758081243151678655915906778243944644348171550230186053206209617763309038006028444358716010946138974803818327209986359388859374683681256669856790704214525276450222622126813865194977355028303248572781995402776992109547467380400640310649835834746413342098106646255505506754263389491344594434097641048317023312774625762647109392924999846307716926207850020352924418004233567183269477021210752829323762439225589630433497172612153373463886313374520247738803868549006652139681449703368564672073234112475488847373875802670774992465089264150555645185428790711616285056559026608212771496157941548243819058866902010525497181880466149972136836673064801928530658841628138757082892097489779328394184736259316273414106272003215589702599408677153574626385606329153364190620145749968447629773099808347992512025776960199983102018835606308790627214904388588375246762248484350068837588086892567965452462688697312263254663303722460744515791619240787226855026327895556296323299990163425678305174379584675539830648575147678516461744999711781235536731258620429365811503974699498677336144972959014341815889730624591998026831332057204822278042244024167576613083857580843107086015673225937637644451376951825140553340893119890578096449181155327805817505973213398103151484907121474676339570972864474342413686703864976586060860862620116609056254966272791086283265451302007002377124327639309303331530773359173226318834835304441129670252558556467208996842315982638095888363326665934624035054830585566502364085382503190612558351699265631959677881268414362495375001466503057056005669421190318549716975921002535254327906387423614255146177759688366745251266674825508838317180392562268536667023324977105210304818073718695687028962082964563859513004355369909253810360523826279195487770660021955941983927491032505947394881074289466034471778403945555835299203834501044478739884867040618125230878838762846205500417980458820709740398959327170752783000734277478070354584827930397067794000024648884137334060618489222666738823408752012915427929584050227661285458031730050740487900447304557615227447223087191997773519858923056333137031779061568046179083534879877615417704482127819013071729597959616621183365651856181811777805819179115221493170310108390818172179772891616084095920128041458171718409379125377691985986505362363151321340014871388687538671501679863041077491044292084424637092237807103349692554170220740644919523603240763364046118858212034533142425969472214620659633951221808468766242688552664147268328449699055543345207533177690149261392594070271116930964090259248602592552408017418089743930686789032226027701113742835121177570176890828276594478835367868197702947242207873363868668951749199680045476948006851601007031625024327938387234506405207510499686504753801060354984843641259170471038550732815913353935252983253144355220512348942500623747522824297157488024574225963609135400082987750211041932093662135072691420335108664377631104176411601985658335546821211569275157461620063505757743981290486147063363459771243349280936216826746349006083431169629611071570994438035808910103952697280907003594528875457722882732543774725167654700250707388988349443670972582266129182794128347468924403549795158472404317704618413015207440853662451572476196216269799192974302517102375580640945418234744343588520594996495266703013159483048335279335360233424071817869880970988121885530246877909415427695875936564155582878541276707796502847755367851509311642215080390037193893234749063121143188026195197945137470051605909471072218011481947697213941516545563417040515936666154940667431568216734859605409065988301036879636446440409550422056506589697051419786197502494515330094299419784857791614845203416323242695698791467190111955025297916750875813198345946290658957390988585814094704327976809778173242802816039813984688440789386561555566656945680871538405937100183401227219285065844006873934535862765818225174288265592102542736980470785931836238676134239811005274928689453783936165756240254326498627082145119020595150236335556542268315556611112792350927314456422242348561418340613740147543418643612354626316435569094018035042244527635796589843135093696068774547266865193769418083493567990449582272554869923412977620792477023196941712553492361470072126421670845680515710709374516249400342945061794748648912653772982756316411828732374566451732307016281201870367002552980673789853827348946639003013702236733053673197368393769461175996000421177495137888819717741873536946871793588352615667300758635758059868382509417814397671447946250240253760299508453126189181874540667431464143751510786456745630242596896503749713911113511192891590682564713094142827166175934932666591761137857575523471000212203168299681174755209599885942538619318970645253083322671324676119313360413829705082809960292833109068997968844064850269129924478904527668007510345138391048643706542219835642345342304111289228781767932292181216459506172923886867214741700439669509903220451002581726634793478146429322352625496402281589397484368304376814917198535771460063066328962541914777020550568988726788999382573915489855831871585582511601247428192158726577380366642956111857328279491976640327410760735125720109837274443046853528863265851742091510844227746179100769443643586313478743422382254155883763601910084783208068651993339821187712704728956478997238184945311077372595545334665900701098743723818927198846691514142920709713645779961176516275963320589527721361103046400281672457240108520723046326097508160766446243925661023409305485785089810116386420336103807429216149867025536720045796086490775801199790932398999306125728191479433220184067849823635015529471082170377369072349632016475724163899419353265074736014439048095902502710945893195898177742110699536372490641128117606328735116739854010238552388816040985125512682213536201348078382541031666894652657449846035602315771427713155158246615164919950171783216648944751055701284890409640966528526954690037889571130793070471349731119632853688698424628282111366123092139957010700343860580487087755479801978493587794574709043484338690455311037616662814256283430239811837629457212352075775036752221062963189334294021191665123094716442415685345398144201663581798203842318096469761611259308488202316259160481668461186929489391507068754787329445076999802866207980116893675060941862926144968158814546836177758664071638162409361186118965697960115573017145675089942768290121678090397228785837495712612758999190690152978009508971799099649418745151668622908992621144750005611996894163135970164858412026783131376978230955255629810999389466949563355504921440444712634578732944870169457036182570976523700151741570117297943711892599192715100166045033721701221062183510193487463067254032238199343038991409161486655310578538312680539110772777983119497824125232418931148665583776398728108638685193597713588848606217409379422434066542071282970534113362523289342142235544837300391496668850645041767908124292170553547209532733584152787299127478909797175078366590489799390163713489768647137330647826781689635305413174159692116922707032704773102138689575975379791337198717994021794312582674819289434068412674757652972539249880698338396522468465972882653372669487264881990916610299253356368755191555089343279904900213932898079060942686491760554549115883026565224374910616200197785549036811115691383662652674573145564937777951531183988498758068727024672857381801719962226562908177571400620399647836408020122677494351047024511868690927426028709920944349422548737254098403345533611996950750931779209846548260462080501089473111984446796945608615951396654812065215973394319611777952764334088732037160693055099059398875824658727284773140060363703963495827568171576320409045198555759502180959599157427786440800706871942860110213215440026683352714828727307855697580419008861814163109874496950081045900762201206239953849470303658066958319154646354528355025347476280165550041387255143588165661820190524716559734939221469937344927464380567818214828529323484854313273508041980614953013864601561168239751494990475034576273943768982738228271296215190677290577279388377874155154386020096776055336337948242366673239472674719665248584556964370581146758426853271154507013047678874017583453415523319841402426700652542849982358066867417278721752821568251271037634200358251612128957113121817679565744994035209111346731821556161882676424699056510404976389426148142839920272874473574530653897820860749314704605078235592235157979144857103292566501602039852370922914958036385880219344976036199913097807628050653528507002148317341570629007269616191212154712451988403850020070793628118380517579589417065554837215608524515297370816269575216680343341998469752617024531713119612972145956610830359069787142803589804836984113410339476048172270902343130931088481287106785893186940485428818646679424657131228828439903220686709546629329421255096704603712723466743028104417122655195893982512440524611444570270539203664123445244582445992789689400562744784813759420612913341464009792307219460355267980174250169123574354518434064720430595167536657332566921928181054244670459865926193714788883564490839187310687322334966995950939616343108072210233921594417259288679260174176243017870858738821557763026357083214995157860535960931776374197240138490164968697061562450633604359971178762349170353193865576454722184541074655372273489140310560080457870139603008519210952504847238225004280585618168147199744115458581006809888785658399021682084646843522396943941124715231232376506956150302606154551941348207105236698518034513820897813483832829357493830565781885759058155302886174516236667785502284754215651119708598851446162613851549501995324358279607816735706272590257328277561552877154991163354889258819726150316253731908702028650598152410284203265130349557848470923795128076104195221492708499833462158989892996049649013353513691976587408276777407719194114039372784630231570158294341933509458766226732555952113898502086165295777681935099300414879738167106385562908347170923714382525597754859410885999793138991400532884236280309708648866063492532585237913456879666294112491115441185870981571372249398193759556485726649049495879517512998466441642075247044449825810867491992233658132659538343446429081649982177296890549910348291886737085917594516143109586114197736193835474363305634539676424342652836004548265977429882410782593696812280226260069798143520407532218614119210455784113494383261913255662818424394599878029798171941462827658703293429239870137616892409922291343361653270524590679853380521335197582320414362040002148933819568473117843104140816969339849127308408019926557737082557692500374476055126067960030928073180484918862464004398351306490448311123599452558653942206610750520492845265371344133020888889365031716990175990762116766582959728397254633953093178711487015167409355339017850017422316501954656239513166580412345562423223221150789517710002254219216161481835773917142864911756659096306139930811506048791474911398347091792568913232255061014351487188892947427171923985798557603943796489204488045371530049513689155988224423610243966940580834489632646080982114281884837442641245282227669982505878256814449396688757194004609897019141214309085995183291529636851495052973931101311653926115552623243307118327520467662340522309756122833547384978782080329927774511137517834600278884109283925948289098382340909168814226602289906931217219620802411681378796715429772136246275581351264395571347171106520563503895885795467218247443721746646398774496773235953252458600761600945341362608686953612161505658966400832075737258053143041270188617287395240672129413459621653282138816650171165934256942860855905187303700545568568525745533001783667208308226661934846455006944863452051423261370709526648950779730581183909817053756036638306408510737347858960974293252814350016432060003342529516156322017205788556510734025990349036220217403369029827158128286614324264524800972530207302338431487808925844838738440735214416269043976397159951975775086746282570883483578537619931378897905783359652699676053321935926257330169996223260426980597991875268927646291906555329469219918736623340114920609393259932299080183285699241638091438029096583465229871553406647182719911969207203509581310879934496854949266857636695014452563289842597167408891560855607455094931502915922620915440475792256819845941335764659855433925965358097507718650702839970355687849343727341643044678167900007315631442472215321910794988009001049853118134597452310669013209215068229191084649728541744790484910321453103061911777931580161092482167713830978037729117806192554796771112407508115535161995343925405271753844812353565121046276556363017382191581814240375515305271046514759379816699320691030385737435373354587227599642817071679397448672012758163166344501426269368644453674725134990302935457140568472046983678772539143401312224364569986762672410829792024325892557223476453209940684351317068919564043137028822853010712322692683919257731779032665717573617537600111490231381182026332811741628503707697845759355377130233206197546149963429051473014389585945255818560384654609559983418182830370544078747971975047366262575246400329584981647153892983958477922865531835547161206799837193010805507225077490417282100007921584832566185870094068730954737299195146672420845939662628954822277021488353597214787402709762681540957002801616851913596623129366269492851335365819590105685205851280312730077043427081717024710388190371933528257410848269282038250149544955795248161563218640748796430909555407625598840653873519202723538511981785313095781822716076945403447964333230434117021498520723673572303765098463690126796492821611757397274912062721570062111226004434646744617619836090204161132484968577837232985385289497291426875904288851064868519983654646365790676292180860278111667504814759572834247412212895864958507047243365040142655747162355009697553991960595320519981307929344891891451900928120110815225090280082074400555765791006186240178772148429370103369304953395510070814452920922504167750140914756563632228226219375121442404148178763029501177136901139308636048450086369833415996713552039611984372094646839759723721506982673555076092876103569352205279878243130984460946079679127879743828084416773883849370923808334122891138706278306130317594298560196384050385340088230775264537535112680730733516876177106040670397500446101100533554647780063518114439322568533819238381848911975332888687091427148576541939765680649993009889457294349481462938596839732895089120106515057379219871391036261447221887645374346443324993970096890373722642510164685763578565611122781360870831291724378150365628973142668366349423826024234930833676141732803492099261626536583819843400257526669624665050948267676398040476012309204075880161571596518552799436372168579968734422564963269730740263531725883629831644276215945091506991450336643899566927504071972913126749453739037188692786621096033051706540307687661433900879303022162556793941170637092198547284745081892262962008669857366460755668053600525548571115615309848924745882290902135721114995780165142503137001896139667405678874480975031132858237196541122268959198077146063463088348751146733861597776239061904744992242929739448864387394766601846886663023649245304279508592758469418771370193833223859029178772271791489053434768580519370121632109468324293910088274336626135409568883678724140781688857034881820312537778338668992689143503231677360418952338754006404423286813667288107176455530627428798674127273060802119048085064721574365800175475313684777334943680313664997394488999623284615569397433067667524700096622261115406334275494986547093432802423922561879451144173326108301186345133526720107030967889185080995744615038732797174710268319858379728691553778638880791339410962797818747541605012066281628545173205760446871448142685120526756495781572200829336510593002140866842664300484529800600057822353219074002228377123988747061014724685876318863578968217599681442205739755889232535914932150959250983783443105787231388500728617158895411307894456774816194542336017217230283409178794801575913796177983225138517018752537160389674210917101703113237277782185245798961723145217528541919591695573059590188945794095723320887223398536596222516327062955114833356456533711211290958935840950259812796269074405315711992542243407645376548297597812662743605654826392914371675653540834662521766206112180110587269615677918090837329212865344908345802826645038613793380359917735803526051831705022366770778050879710780267873568989148953453421312676906380495910260766089592425701690641690967468490333228854026479088637271464545252063666564273962153222021065603789496268686976953944727011215651303031463399716638395542963566481337210047416544116643383750294864583918023682942851271619030577719923898716394955267450366124531932266490617358459658072824463007074248213545951487567797599047755257585634346918708104086096523323183599141107598590071221745987073428145919386412042361175767383302120597470060250381656512157686411301049149423395822713745326278135839549937382566529720898439242652875018016499525615878802386778802509071478062203085282687112377089950501565830590339720398338469623934815697907744990210817515330105119245226126042323293258037645757006076764251170111058198803864906447705969256399134373661735338685992694950452758987580695707375383547512595151885956526429314127058269220877324834645376522627524258556334756096595730628787504008196412884749486314900043400957221538200808450387177082783479964065893754814371388982726050672204508441985025628035389334549231660503088917687348625738111504296998945474250238371159823286003217138642217757930823147938025024575644690910326846144616117151795361051444498891480529690987712338695967137014311999747449867420067736468331130465431948035741802461796639079680175461553505356132311095336058181452421509050267806358850749247523564590487101981093316371988622892884607807836175615600940391306424600826323772525734653212184942996441115725445054274842090050872098261309438037270303559347475038165218396539290164664080509361096693394790316694690642215324157277415451279989007299222364474806246465438267507890638190249562792036254043110966565590984823299182417597725250411420086713382229230315444289432060629171592126568057929685792456692662598223692886677692471537168197387772464694438236501748362536978077339844740529813340518914575218248070871814141722569690627292637031741645953825790561657020979769417983685369321078355986181926365544215756177410889908629066254227098138925044096120420741925478301403362642615905442555064694430463280055884604447657031268412500251867501921585529095600371711490646451508524078297109946680342540287129173521794517447795527859835368825581452919071619988278103184923563730669368820622901009296593315311585898225398243736911450411918321949480481311980491170935240800171005659373043121683003535748048639647733011624883251228196897664785851012556976366764598753477093077706852796169887400580880228727212573409520775607594487201941979925955821682591265462831886897325038454311070463165485370190937095028892602337673460008543722095697272911788264154474650528169646308077115467080966173647872498225840973086449714070951130472041283442139642267016004820083767244089317480767069411156773611945972890338575734330373169772949359939341209002933048973276627263035830003133551370979996564510470556958580204361389726193884494905010999930412733614514965167900894398006870729548863509593957881168835284009359470833103030192840458909536259499592148324168764788798661434908246480949335550637540619810483495834691933922055714095718312305546898865335830337115709765630654245152058271629279501368842539256743007180590862538570299098632730498609005626498919121752954683171273474451652326741005022422204826660355600013573554533311072580263412246359773991061410104417303042124011621819936434833833926929248139965639657462029411393777436067563004969356312434589947289869206682032570108226539066980044422932933477900881564930853273131068922696117878679929992659377085970847950809462337795165625010727636426658580156068217025727601847795629484371108045551107846608144736342986242497117463954202999683168199676479864483795370238970480198643371790686602692843539874362997332649463393262625832947602246381560970770156684989234071956414068802473233752772741304653096497416782388035224808682146043979368098812801207514705864374034620709917578849937427167996057011303156571989752464943257609941117823340668475736285196073940416949040163007088126526324879687318057363393414723945112934825819313248558589327814493697137243389795824231265132480057329668617125385279513794619332611003368841148433301208135425711787385432260607384164215710992700676111953094754571464605660043178124780535840113613661454075156805682915334510292250010230349571962669201363770831009926017375109843541332279982761114464251988971414864327803202252006131958066647237414562278913471743929799427958892351459010209571122699245914603974832777670638168119238636962411976505598822396421721284397488100308136001774478376873796532511243972424308024836267978790738131952224349350589080991549127973352895765594993998686955435665222199437548826798502567134576477216345560033655798222514745259928745477815880096471067486599216903850384146337833947206687163010948329420570791830108786002345633852507243985718335006828833326872102195887319815175606237350083153630370419303947450092034564298824920422709059732339359342525537642395243312397584974992146395194776619770201626945701490561463046800222454752603083334819278949956400045786086277606090198190570715395741538628269014321696015803924739306055278691143223707086927385286554094455282631451076785729384402360336445828173270647134109458365100178567607475490424615096160786021772864499699351667999169349879203668992617009015000747881298071231962011317493309220393169006637082607769813374668094043858448003011559006723730277581867391153912419411301577839780205061889071582035825749737772809287337894266498918750399544664063083030493452499212532709576478887343558990448421802948729836672944933458271045206830036548417626335507354707161932165919484435319415524458191690506705659123694700738824940281601603809515721656068899665324254941395248449188791571694639551315759447155825513033813007845483587777144260075441223427856809414717312488973122247522328659531596901642382056590592176809495254501726764671095190656650478878812277580976959096206784781956131218914666665428609397760003583091666749721259421615363759160082108644035842693350042707805585340807450089776248985166459498626022002137792020889484399401360221393640185765327219889977824777866905822039857398609399119435937355155840708937701485520267962196743004278593282116219683216437080190354053385929596468881202869285702807445652575648644613006549439370722835750305239556391261859106377993382642339117096732562019779441255490071595864913785093055303025625500882498609517500896087989748936276676362431785155516455554391976141804657808985714953923717956677320638702946769431802363354600619008425353220477441456708348647498469493288582113376511476358317737413322935627411539888879551714170897562007497309644393645656190693447811950404269843046915282218966947810850109865555240871543271573993137238134005614656017194058299730794510283429831311899437695421956891219124830356950729569449947992316982952699742249020945320646209584489394444080584196175363563263475982284336865607721820595803548202535031290531470567875772294041192326700173029750074830464289147111159428961794674588281883983164196132547705701966760454350735331831315047018732577430889706538407780850273261162237391044603763355361167712729746435876976054975751202803334874056013814255339814415682488943751209593603607032272382430197032480029654991333497707859841776681019193072078951324362225452199485152986223922411076190718705641772168350866468794823504153372060820920431412878944247480099026435116294486610988822367536938428308477000903920390492621857040848790345369316770568627807436094986156327200014719607586399687332016834129559934564912427169329016023224316500287417611900733455021133796674293362647889832320517497090371939275858185704773912244067411420667571481771343877606573039017782383028604277000029588930569928178028187428230155881118460382577330327439100301816831029799501369614970850382634354838432974831882253363108407770518336664374591040166698241605070649521233376592366699812519726444506988165965563336712218853742508629454457610699250558842787882747597267895771097503163615147586811058056482996127195143415014603838069013875097102588052088993152972806603289105945269613957473358535958947380890514271417053627872156366777398620857827810112209605692883183371745675417815877147427337160565566568554110551209311566842186249256256185789151447196486197770663895990946668408232014529432935833137809927937665368685947611553019711547474451962275851473502276617966326673310258356436823515692353750737901944052142863754049047713208119073389560762134866659155634358734890398945044538009202990218352416323079733882966879644067249069247007712241241151940534458262727420101913804076518291773105575782613816401445466021231743507687218524019839761298884404332666688990358756576987566348515641381856096803242374376290288134232189412017433196758475569880390390857731505894101992134475182291972048956093311086709292299960212279512554017701121544072479859850896654938566552990073354485099598997084125595565044115022742556427393903449664425143872548099420718196508600991837466241364416226792600490531178234466478354776708926408898683846284554193440896636914819230455069311101240690937581152218747955972191338756862831990362116004731677668567299243447012100666786659560004300437750316929018435542533877303897819388249077975079220534413993536121258541090601070964315371236861690938379252410020642017360419004136587972788555450248935859354589222263319460220788467408734726054518157037503297729577243429736247841687361274686624870326584913589433753903717822518139033698221161910181022177069574321324860165405342996075429748939524752181156361796981899152516117455643029119269529706987706287529098334621578450591975018516343553833497295150695752741226307922471416113910855949085416280894124348817422981827971300966765644054573909558125404974625036518971715684009693221037488897390914279340148257204988320284522839511579984868034361851336618931470588074239163404192988067065644491869176579096442492853301802407336816992288513805974105000637094984333417726253739019162420816599976831834763938911706799263436756379452739207069883147015867033609378851426137932680672259251121996311539574506312085086103611657720478226012719433323643867644794834603203456174589059048674955279987268041231029447995999766835555163997026989073643455031109046272775744950985493254412183769015740646011271818409820909994604934844840986263191353538231403739016496038221806201624549661399044955110997805995064076360468589955894951049472109337951461128057482993755758558965997915205772902524442861185812218346811490747839222774355611125150509030455957667311695472927283016067419618203691520185577293268363690117469212382704524007646225846304740255756329542890198573802253991062104687781186782447380536403575118701957208715096875672073146536191288869703299406612684187336383441389337940761747923711322505286966757769878000306605949779314883014711942872648449621495942590292472755511749946101584529151627069708836060191637054938793253252484913674979444318455839645063812498047698166149459699580268873297592351316343189511850960889922854603592627229329586782923674017455834277190807741900213157335371488873411097308896715662183518722858576349372309887689978951959025425188501145652823437427270056032298257594885091387505090847774562662805831252771847087535600529413560310692848232971618983454760615300005683561482070165645153132794739321380969860208427311551031086225423124316738253238178770713819012932336947157843365972886259921942393053498166959142419033819106578950618942024646153157945508133926057782881735005102310192129938389756027335594693978766092186809652218827709932702059325662312945398069424038174718287884132643635625363237240802366079527141377632748835167236095358454476651057182440755131018173993984160342890869168812622807255871539286391482869856912565484399901746698098575682053261048422584952048648310667087981457859881499658003228232033812880595793594469967856794648902832474569094590820327122843244135111106368735293790830349904235995769792967829847649834312378789954804510255302349802047251863967302723600162371911602339477112692457337035160336804562655945253374020047338309088296483004272419558510630762366654891082484957630695702116708003290493063245050167390216150568776833532748572318072964608523148860378647894518828703569510586604330848132391569205615435458884343958051118381429999154139052963398822164124141527192213382990817557437320203369427888864811095515067666968565206097969192350020474675922374184984647844764216728742996514199071211118204915651746888006130243455644048449554329883643568409738664196020262366604393939039452981985651372548434318361988797576413440850915467074916209112566270894564636998631398396197754387511508317956569115796033601575807483659283307716369547634307553701142618198600844345394619166870153003115612075730053625075290091807083357201090736503706261969329175379958937509983343765038350923485421288263752390115358646595016437212117937769129879125339587695471598995216367298105405449046444912578556275255457076058851979525035827500994784509328825600458454309244290229663688559548024540988211446588078427915894460962479448209364056525680159428706117160946680228412765673162745322672962702660072500440282324959263561184898416738251792039308005500471768630933992528297021859170423830380547291172607610079939752212237304768613567640789062898625533773472082305578553741160860627923299343287615873240327540264232770522264112324714414560040718754875037558487121663385824058301001718697650047200407098178166916725726663550658543223709987712120962040958608101911861099266156524929390336698719537243015566343321406422453617498463042558254158698079188151761216959307975793610471490844371478845563481289320043565210914459251770275639147301392840909314812272838215240578453936467418315478893967998197258726731814359143763983445529683938431545016669069367950956958503763104065703530416070673503094399063855946686827739755474078792307638967927915699766884091254510599284286380122682302973555800786877546585271205183789630139807277852571441295355787536164016003399924201636602161956619103634843320977732955001498012168730606301852851779320319927419599785177984535446028129584213934621382257541334498513220492746674461615640259510014484764194665204157370304624219332313781546781044635524071254480869694955229535644270520411221406657327867382769729901931961924562689156154051959365280919405060294739882180629526634730507775702783688508519597712267658609412271922707874186039944245195549370842069643233594050465752743136108095551131759974958924407943370433696858239185569487851871561893052560647171632846008968692819167378395072417520998980516491817772368777417762178509617047516365550756678469449207217368140117504908556860572642837010624361655261458200459055500934326119460812826529670525345797231494487185896818741573023525062670989526301218373972290848439057795237470079766668297906866477192215441358794067408547072756336338275246389300460794674385597277539399906370299347193194780161874442531205586241560961713093222875596385010306385756113027895852207038915795159962683163904414729868847884773684109605783347321905106441677116699601952180933707398129276313100457552323364688649777441414703286790479084641145713445935867176880924129131018825984399120371124215638483221221467678218253527560938831064758875651394254807225182913035141762580925319722294695662462905330846673253906368782906210299566702195298295692271890962224217134960232380713976340114232938530365237924954512357883925279224101662710005015531983786880836083587554934520615039567816641083986440915461620467896117436024906225338749513298702797931516055904836832074549330620530496778901988659423466124942738850704649214279860939442216331724708234725182070286956961577548936247550919008687573064095040152549578414477050047320614100744132579701367630154318523761247200916305376668550811666456826376338595023460567838460252636926769555221859633835709398645439658314521137490291508323901568995686334428378150176893803173390768032413270201225693253087572477216840133600368164027281019541773796262690846346158192518804425987624050466398139129092097360683214794276315508726951715630654704399680796702143962060302457682430115265450446862099090125967041174186558500295137009697914211916590647775773462685112885757873143939329312089291501852705675732057816152024283365216455832963179762507460131209364368285984097138895195319335320846635273810015517483959350025295788609992707799177583643327461856330737935744861211589307902694564950098749164777595930489378551077617514881407689457205085673521997671223061299768353504987491561437707007692519086135720824696901451791076275265611695181376167099927238881269451532654634842362332593543077950769421911708707080873840728415502987052024769188916728676105537376357895933331533423081955895180543907255934364214591092920410560865167386739804827897929794943505210401664878398793952652369360070697510506245966169961421491619637820935223801314793387570154739090972747767750292885849998093425927088733177809551910230970609725793822426959346147479387908957064164213928357888592368793533129087468855873059486377517935956504933514823403067385711666441303592553607458432567120296312439247613383541083141900514741459999426196230018974481350343860033481867066806383125557392892442014631105245408298264014802843058316772394933503564311966396245561281661424653050631571121999672354517493121281013168927443235003337407690148737252086216018826143522327016723138130400286777657676470584783073040894600774406055261001100713943633367256308021520701798670287600403430973928180432395190053692570517801707745035066848150328426938319887593654670506019757943834909330963179164021457093787771627605329553780942685239914469571860997645715271513067300359222903274147704741639561814538442964356124398177945791353295361646418629441559203801691227964704802563153383623759716440106311393333017944263797524072547878316391685922927678706739491567035407168226116177437378080332614901575066500693318928277924141628693860017397718086899500162056976775879350160444560638695798367302492971535105770470245620037548070546608781438579297834093509411871419341345970192910027892881946533192372037595914139769843113038380683894431538293715654418800861526629208175239583761345599123292630568295916073937288163608635983163742998135816183592613340027015852292564836201774271429976002739520884846626613591531074401771055213338218891483617173661774238303229880828479300302038174975531542670782983352794764929056021360182432283391581284898772557725173003460712111432619528133787865436122138406999479412308062733715253332412462144494258928053299526782793154435610519166897992798215425566246072237325682659108660736786535438786614611765045716881997324213108067075551616558843289468932501890306243629462073692282202966941641048065543756548291020159478301876468832962643893191527737441616456838616373187850324742427181402035254394594145948153155344413266394679934794312620879674394633496488686531198202357029642977259642303095941191775157045185154136948250368846481329664557242305670516958412176868615556536966184392377107348121860064711057412969442542403175923926957245579572254188383205747755406207571074681387857404088575241938990593122046967089074888253807435435679938209002514228222067035094496917130551113631845462926453284569579000108970589711748822078994769218871102786662003238882610185647868109525743725409196593637821940926442858847975489783922638802892832065579328324442107649730588480145652702628890556452893779639776500051456370042236023989241159417894555844841852786022298692638231707260235368302414827343176328654627484171511213872901723400234839493248675286270877444153987417131481532577954219560073518917194908093768986002145938645862813209188616903694639365191227896252103063657619774872855399592768624330638247250580397646258506707845131462696285557254028294577956629049089711319187641841995626413689125838735693818462514039338383442636333549221896771825080977331664803051835955369328525258504159019452621083597267397339545521557758064107121386672578106113256895511521768118486310246461346314908189220815454451411232198283260750754305955437512893811388153058572514377977394043695852109482736598344303205026729646369391540855076511564166700398065351973392779469979630046863149075223531007132616292801701546379545461508470788030576423092397337332772626198128044103534652797979602625241015279304397830637666251918474521275320040836500686821430963884342450133516937081149561733133816640863417036970991603152466367807081780336147610604991423903920621461273618006959911136420577058267942189567865692045053747359689026238247522870042579365312773875260205024691748005767342599564177916217376888662136071091966341511506527409721620716314663288807904346194776697834831004282588189146108166710839034554945870804586714499389376562006392468284855125131011760987291615860786354695208468730335847451521649720328012768490127581027742700500475660029942140762905311794242408342352744692089372893020834587758944949011696893359500993472835296835083355065453989580978011125579996534320294804744550993272717347284057471335498403160099706079661486369846966226579815582683312277459612856430013100421774552067156636178816904607192235150232549686452284128854728672908679456456353048638251762546843222899237678871675414723748473641867507148412807196681132071095213847332967910050896175598250799581721888586138484642504140307999108046491372137006424402799176856013605072919724976719592854540613793979126010095788859697889816574580313833882634845551356749738647034413495855152824020759432860237821327816301860809869243477786915966967982112910363907651664211866003935675495675462612522393249974008047248440419352829963582295565045709744255751064840021945523272306077724544348784264787006681897778001519115995267270887296200472562069013327740655144691625846683660287461530618228772553668957038760623964967120864260866167236973489415672256607280038022062003566773063253900144036184064636745525700341621044072315959742307698167666854213978144543340643106130173226237183976858454690987157134786050421058034077483264815242875330013923707493314037515958588849140010932730715266920106971716596337639412048033241299752755475106276244901432059175567631334334395247088618302291918593196692850038380223159170214270103181166223375711592295126743270812528065536573289163474123680597265907364064041583038561255036114707257638276503400448461357390432570748342495129512800442440506377565036227211122628846749748926150933517647962865082214395824106291144923761555145761152905089386062463938800427735596238367353540602427089726663493845485377380914109814080554766681046174046701612966655091137559911251569349648626223836242188881823729157344198798885382740242904572271629644146946456573727622958230574591589063815747010408942338868429471293446503247281075176397534227644458194670411736256179158119253626652863304199255842450380217164726173145724798938907702134282762450041788970314928115434758727448601404520977595801087791325786153000257577900464479086975744551528400968872564770694883790431079888795802891829492692906852854042865774555649910977576116642734739485894436324119986734829203262450863877076876395354629152886044574950955918295021035287399298251642978323204934378994725311864159610417948301044429933932428800113851100938596078439749098549065299998285441849373372969391829711062744746997844661007733945268092988614087403076848701578596793962227105808337550837835838612673607142434920049941950807215626244609302029724644889592439187815756449525337494070903248612289959767037135927183701089582369328317533256978571003672753240182879993920397271840783188126581218758661848290562719623957037573021973491377556040636941764803783254593910921528138746463472108809824639138015369531364192548154217733188436268893757417591089315297451031311010921737038233997099686464196585090353371355211932018913519325757423667048007950059429420711689335914883932421961448218646184431204338939662344572887969442938047287322309557873919719792999026482345670142818623390317283273155658398846428918401024327491984861002880452577156158357350058861070375181551645655801699781207620626545876736196423058000559112062703679537043197654096496566005720198708465561623847186308784146595822937380334747651296276074877308898391675740154958946328071035598650594112280482529060879822207802060657913222469538613449462137041998665805363594823038517362304785580799432188354278563993151986304790007810191677281175752896418866360309907646066328526030116360392112310086319521577504559217540007927260253848651704649164626121124122513461986223568375926342757563972494081415333332132708498581135776712338529413494439008710262248926523317825092016359080017876578936246091751138669788147042599146451056819292201355373168126178040660781445724309996217895956358725850221466479818926504383393996716029315509239540827764151558109681852570810938886838609975134085751596398269384538143583692810812898464632127838845850506391342698859985679896087596829400808607347259141644863544206385653884421812474413874153350656563078688962033561909856913920636554482220890716104583149761506449950673921552347831074607137433251140543048860226724264605756099962875501347613259823408198288860977317220990766974178401173550179513423694922664671341599472220643370874119245190569404748785540177027915519692147823126647420744237523890617156361242799303737617612780693932351936771036372427143664349258193053171292545440424760806912059921996552228843757552084660760548381242186705439367321765364116186561297371403629433180602021249071032195932451491868122977937418481786181184946995998295069665169734740326793882175900607529236303489807746495491973869631163818406237740540822849113406630120875124243403372269043758717470615247723437179959277597961106730417385211921735250057292973492618542527149616462634920393009865286910957010990997861736739220104507455768763162491382025833425475096103116031315277881771920921747207377960460281760889117029621804501042230562313488865134740760406884129797532182203517164946730396315024897999633688921133001023962451230808381090766088615032814814853643044842780700011534023780992820857369711520750431758512163568871656609443705223196275870851768731829236597885391553372640175279536908703606941790726449613393562052031400294421721736768156372050868453038191824358400817518859514778726910974446679358083463592045409853763522082641000952379618798665811252456823626905042457531928254529562974592335550154237960246332255844519080458925792833038790414533311195932164201535982320918258453118894701864610940021958895837964759888921065057917848813823332368525489152870672092347546690239776525983566449726905586802731349827825012905823136143900180210923945966360369930584952687073078101221880337065569512444260030165786158758612820779685538420894157856796568058975166837249175472908293338298919871466873206687269003915889643318000986121869269943491451138849679183193963811068363155146125388844430459280034532385629570354417231765004334208792330931780129570942401526380118683441528476402351933042365631176115868083258406656530306503736300841698476748516464679029099484245524788465203729849948922990844909260341039182671960854755346923364648817889999287369493201433082760174453628879270299782163154069935504359488077804398915806279736207122292153409791352106401289755514913448536586944359574071283590415599298432798759807620503082558984680214778272845718204812526687197967689796056164152063522531404125682303247992830536262333163546387090917756922365881300842781028613791202439435620631245633053611297496597218884866766567266794684672387286993946204409803261225139075533997788441764237872441086084310472672169857504867799831734360229957895349489406237645481152841463808182165766940981283610279339410633381448517555826899529767315196437140744573531273055069568946131240299842874010778685226977184515250245833518331831413434403934040880237325839265206106213566754817541063401753692099407122379075814374274153170674818649152717795567141074650410079221344182993681030158938938804160119757411123142312669990845241189129800516868638232725623092977169543898597701974825408084499764755194037147246160281289842275906427542458573137110936414676458185293573166468203316749646758799961533671065492411118312647822439005016150652444099596273144576978694017941634990061580469120389694374860351073778140955538782148022704558195526395795850989543458036687355290046931053748735124959203802403466684444094691037732406707635629719438310373072911638393183779155148340818530618855685680089122627642516847249641812121882220066921203647636959450723671387861212307949615554802169254167768287385928521003959564068201520899035169951809327766282174389364098419898625546348531308489950192488737850128225088813649250172675553019413534265040922906227893450466270092311313947151726017172047967032903528890632807137241072021622711961601523474372125354444355481712654846305836220614507545211912864077953552024200260933610786903922845357734666135064844979516762967007540126695111744903148183805134953090876475150243168397342003464595909922917924927092766576370368974309456901465654678335773998656785065992851104407191547542731987921002210502503421477394988007392716169408651847501610897901264594633761996594113078816619684931277033296533699180969462630307984374431489912997337416288873012115391246342498717421809283551420597198292705234121688751884355710051071516867104489857273659864719948742187796302626469120795927684235677117405927721578531387625608361698566955820098426969516928892723178906586105789409213747454829300358338202305440160584022651733734931279200249233729987732469408203326772327656151139956631674122428372045726641844061793996036443921660455443771065479434239607855293838549134736246179456780497464472848835509094754574072838063037181624072342407887121663911186539290303124348741591460248600850924212619778490139872301379681101052886693045290534503964872549723206912112680020090111096126281129240472215458801358446230371238365874515559003155253113803354109464081107946317987930707062444759174231614730736657378835941041944700958566867611705144145695872996460289558098777565110690955864814679260182631234574506883390309649661253074404698920733787355687529496457109177472420737116582154239535469956977367631585292505331524716836775056189555992767450888081896628784560956004872710223120817935582387308939416969341469045189376271741136027100287217938185071187362854705605620939283983599378249875319294751717244515196017842491987177494139534440714617235463594813359916452818686530292135035136944020038670649084683543037018061300232847695779993977389564303348613002761656290097950654451249089035070283020076098037632750761732581862952474419828464095602001340711532894066519248427856617843914669718933134450022696030905468733079265359881088429102011003298378286594839226665131385863172915148774262444460930903496409030461241030820799604602899978912679898369679525161208559261787853072984578033855823755979379481729617807274221558330912195703415242191978594295165822083667807001187588535064175071153498281517916618410791951691256114402099639458005227321400735937163044586797509021524714914199576153077769774340410100751453399551368062475871619215665513256308773348100655800108487669501592370419199213316452559408777209852766610664517183208825660927883926242502480392331263166782530091133809782609716569795090163787797133163782679659433229371801839924637498550841593095983572884446643060751842175403688989774848764521852310373898519610495300257102120918949383877472972619230238049184608637746859373317904015431810852205116233083047840253812532747308797011011053852263380827405101896642713179072817232263421316059024275948537533442310111271726999742690974873510875862097151256061570569429655883470161256430290373968512762038591897328226652200129216508805273466379145678476397324564385408132347007717036897063722840350740707697512322036899572227662174220759095385382812287810253017002399426687303173034916223948368942470226668302816221816632513643326148285475392744133639228403558498710561378672655794482745155299262257349969884809421738191018290338480759704314808927911480531892402517744017869376922572373728089110596208740127463227598323413058651126267471762435815680875001692106479392756630607467331563896332755279486288148178049796382033699066885431527584316092410261585519721677972063204578009738705024170138426669756604013435684789723997735365176120662263799696096020865327434950601796427925062745028484819980415327119422612101510350853803121311136146230675639510994660953131539770560056685788205322869226525212196812998762117343440274023487695423046407675331101195912375253987126722432532019741770160792900307451676355505425459944608443570363873225649005678709186627748482457737238525867020268511852053632556755963004094092332713670383268854874285112174496172240705613589431928586372962929931316396298238481664797743498430644046452125470822072561280835938623954018252755486757565548391133534181295538077862813617753710049305960878389244527179317000001517098503963343504234901209939814752015493979132409084217960920365321715553130464775738222384131938285610574068724040916580993146821311039328124800038987966822485780927775996747838677285162574769226692162128213519319312436761809833599514325469773548021207053630367704647358778826473975052957832127716213875946352554585146514209824512336460616774964546265988470225257191699905027971995521528702636473554624993634903366743512923419501255941195778255079078036187707235935227805976745676698528692820417612132273834167946038137628568981670815480539634024404573357752233574484399000882698128308377389712860311338088945624302682937151056387667816860908882070390619723888231504553718698174636777688175835795367716281633468609903530542663842590152691855151670442811029331824152994087816106706251950427903950334853619335094655461136765136931415544977928581418820909746474145639368566871781143819646096614614116370586782088082677987070472505283876497671178898989986870654340615735463886459821987515164954389969981370205789991721564506365756627909672140361635059205938132489118872673725025513652330402764916520563645270509170344376842485389018404916297639130632876089987113373938879940306775997750600266201515521828882049965091907996507161588008930600941387618581683636208451767562025955434494354972320498539440012995967786925192385663113982153614380878526515500917991526403509120121559604491564102350402188321875817475553453408830718684953130560677704455775043550615037430440142503524808957352387996766058889668966135007786885286114394975563668166097847869512713101558979241746899825870148630047218224369172014444950068787662523017457780648183071886807025992966481063378296480039291629217784881220362105074758679031290821237508343130296319953590259518660509126160487241591465483057567791622099685233185596239937730304066117166959114914235529725408872899355674354192486263355274536056731248013180452208158610774730572527488002891164832714114057850753272060402916576206661190781552027377572979981940547023804322252511422182324046677076348690463862372440233810010858025894666285549724330968000110122253248940854046235521682812595240220583122911502199820116699100668865168702712118540020313942892485500216420636676460875985815694886387127031517552835632689966218250681418428957964538578910945844121892713389044569657443334184056644650798669975061839722103478847521872685458728515510346537073076075465969076907934575281736676163305758015866566580988828304438553482409458848284633895259066944914390308469838760259260339797242954921505999948557455831876691076669005461564122284127265340651655270535929397674842462468271284819020363421521327320484499491196672147983632667481790526371976901181297182212145332813938625018496258626765730570268714352639635874717363666007153818872869378275504767544338063368077089683723495275457262035339158865628982922017005202581844652392930918707749407407826241875555166342112019884252818038130492713520881975071054736147474150343953777290304288847687074561381171830360539366696740202156933077474954674324407230669506367022508350728693867731268156118171473644064969766746732443475845900532243763337707306003950171145979784866680211577662624316326075793605307155572631422616044840598192067217080547345118410275230440719243956985348748664029983449983798257512727927753232831004053736012289054005025850983174354076503149646885971376119596600995381092116803344378267186746780053412740138862321530302915787651036741675379714951613215408148241867479867578206494082342945827558138941454360204687027119966546759450678826255306310369172032089831928964500174939918735076022538976497814547630707624810915223662227196230719717165804113709372464307831634031356664663208807388604524423750297034579658588690358526600785803850082394458915190749262719321299713227515352819499231264649351338789755449179557442640001611879785972388942305003240836652924704612649702844743558043927635884081351532474976092072350765547772400636930409970815039797687449559497978871560686492469993412804776392159879860011424945935528106942588477312202583388335328930650851293545728519996418544827226912379621937779387636710691723366860228711753125737457371560686553052155200251478600169698754083450181894265067631365578218037844668548191941518675422639870920089158286907592654618533442328379213995828997336720439849926510457659636478193058744796216581642308658613436584842282835955831565274970281054605257956835655655409359288221410567123593356106897517221711184050468728186671007384925359929648775437141669732491260513500792985880814672145228418785069391837032593354493700552229148133362370899871404621258873462972275911938996883033422210407766920218692704319463595996529333936346310071947268574922581594327811754194145670699778806811023954979049926699830136548566824377217430716843448703219522105418053561526922789526590995891476371593675389087046153382279037022961917826330277624262323718124228273137964241198855886089445774962625815270367262343995116654962742233783355541412230960893563455559821844264445612168133067550425926160479648989165198316740256288988963679953995235881944310746138938817954389735292891576873331321273890701532881648337605461156459704266435430042140370968639117408205556166977278125046881776324627714224673145825577414257328109240912462998410222955190749330986845811896515186291141190153735629405319506777955011304734278999552473037431033922426319434055630431106824827884095532250771757587349826881753312143544200481162787959763121274708324265930335894271316826781057841561562784135295993783030627412290822409123368452981089727034478646881487271140943070293040864588676428451502469302450545563924077673947082222620786914283651437625496274197551548544033502125139011443574121847373127160134061936885799136959094924447400439927820788887010993907710817326833500051574971451160461985372017362106476114869723503268028436762327550249503185090454814943166854461133476605663341234458327683938270448703348669888468045046060709361274804131894771338999933005357554114357181429752309099119837896112486787564851197138109145945691336083542920964415489693006372100886781504183812245654797508002180809101789235655638172585185035230338260627884104622351820797366624984719424945577323479504550386539772257894226331968639152011481793850654872006760078962112578640350466597384383476126845309868059457340610258024404759040145150287273760234999326093166192810665272628642301629345736952417769964325431597514877030725104921172129989229108174657084691798392072668411862308644608609133324366453836173122798538132929823837300457149723294308243587572899850562751595568648958034327363343029516165773542922114598164033500820405223532128720526601343672319968659320872408402505757803244071445426626378004410699466503566590987641841758413364360437314424983036568561815573807644684442686332480188720730414137657572025564190258936768672773736423222202340933466995298504521813651763165221552263445905588402273465530974046330437126671086355410137061896264502796836863675248387424133355383738887539550995143533865986774855231833713915123620543117563359853932756057135335316064274409839321439333184687868517121203350568688712393311638101859587109892830066204836833814005986497194547388509947970529660741106816602293877228349431560502114510443364709761195015004362963406520335615649756339557269443206027081067466192482062585343240947139911888774576047479275613271402683570274192896426164973770441224805632464565188250237006665655841786780201421786530069545732376233862967175509284917267047663906229080059381940068570459256805908937333011279305988244155499030737137210399474283171715070236919842120164599383298691036597403702389671628444205805814880541056720950668192247283213624429557259910290343409917974825294276013807722986186817755012074783466613767054413642301424784935688422742366807523419598622116035547535398338995930430462201078777252636227947218327581793436732270399978330545145893253786394024534650017667644497473647876041212036206997267406205680257146960681968638522427183015057301909283376205739438165582390893094315583719512733293019010486042881329462786765853228231194037223374642977862044930806997527243942531649119847476775116891609008799812689543667429529362780897876162947485056120798724541955547797813716229022069666405973643841167890391155976285417828315110590883224491581051053273546594040927563287865129825642111420029121562544272665351070020240866015488204768121085316122932454217065858702549395475512144712407075228393506498350483416002387632839827957422069423906999557577322893007219660196448386172305356230179807304953953560917072011410666911812697158171086720978293056742134898161742244825298864465190240727677228812747663533330447034127124597257923107729200779279755445583941637690123020805105070779607873292570989282366250017311568466103863438303576979986643723473161172004839776853396750708272911099831657502052158473769169838169888211086149491065404487527249377719356362486087105619757450203523393707402848228590195148140566554517004031900896568713922840948170862064659537768625880539154855958184407813941056363540420516789893052758080616458866203771049889238969634697279100783116057352768808610753184336196645329857154517866275498071796452844685517195164850248024438765820106916190866663980437194317442693331753192908027856961430267606907023220623842876719357298980114797649573542437556504827689734189937400835444778865038290308561760615394868681443801404477570330777164968215363999195846802243334972414578079740585410304847223240777775453265420316617387001288490975344071440920151802022035139932321823246739570546155312596046318842410483233074275000780357206730234573159644962000926948589757427621235777872851995643499658874461012032513338035946069461727693079819010777093115610644138583100293796055355341928671648037472201243824791027241461040640871110120094252894252767523494917390576691407514846892468496162282319976471395620146794690542171623545092271513902485833740345383591955474377129829988391635346644887807275145553374459095595139970025227367774170280419151432257619977856006479737312097109100502415252305343045266674541156387999593752182449468782711874611790832997060130688123986035013572789547944690542375571642307476174515951267308457366625318514800715783656427233964435267461332498323848794100271493012729647545533558004486006168146139271729831102256384738785781271440947506103801216304305270550621783852629134881256078641923702088782997774300314099769725903351328120578554827627480448590050281413633309956636779832010818763534627305741944366639803705294477586065954566653788948342833816196838844303326673277111985090587287139820839884793935371129729621777505343573149472839152460998926111588865255296472863303514331376583038730765983830895252448875355430726224948585727674693552093377947769399813823208886951541991131038776770954951194015192784005476742022291859787281532232114242520197323237464062156534417255610115316943337076387016673271679948836890245617284993984784241298718164835437408245182675014012182993871044897383677124897217010998386988793276573038771655685226516249601797479619927113539831803037086433040131100493259170015795637625631130671534959821860329549796676360611832671364201589236682722169985182165475431800640836377932068235795732978842576871019635318742889477828407877261936408497760953929397514577349133019571620272604076802068846579952071110479316683252974386808932925753477633320903869159112103972481265130114759977371578088621016796589617510433685374711786922028077123994405084812842413859193715015264904099289596137808565924377736699792282525411973137575232892279076090144789442913713572791044051706711790869975304990704706781007941560197116901272108683909894121789690582459240614305502789246389327452445032813867387996226849039341591848017233074655828461757795808237913410592180180568733297478709827689008572107491022913575761597020102144923543093213227072685754114964432140253457308022696404949530029657750964241718039766786393805316519121896542444208140587208395839654473779506692337397280032358610821744379227039324986547474217285583989207564952473774406944512062304659224887807749949008970599424237483767591927273553528208410273148332811302504209861521238300447601758313779541339729922444571278533314596100030502504195322889662383385283040649518358901893724635486600522480063257383658633749741783731623201667178746326627345827824450712072497744181809000122418648690328655758621663684880181267817650607312771275828974632455652988696293470081498398233915803295220943320250049960768901485551158893684458130496668976655116526266102340963978059306415793072440767724898225573267581090952343753522289611645600152407328986767197013195142034926488565230353793727870556634455332732812081481242335712341804690993690193945046570258841838746536851205262010735651867108205759663507477143570499800336205688359600812689810121695378901533899755079000673540173217237227890767137841061861285637672819760002952147985477542811024894543109859802112905228193301767632788591929614809773868971179323712466493018407672756336599432600803318684051503837168461367843623410931288275451930643145481667340405221280925549358968942343364882189431699121050502099418827275360598988094990159988174641734513560802789650511337277872282170354423933823548912430099459822095295753553485384724409635791404942146945787206297818933028781669043193654416836970893706857954563617654546981849171398965672257627536325142776913342094551673592014401168213709760598528902288096283748594782002309988696332885486633381246304132271169658425136294479055599937040065153983879285959679378841340982315917892600193187784819743358316208847907975356614583569350937279093914809217270286401547127920459740409266975387972531039989968764874539273170598085478529737474935120273478799596253233731864163234739228377305090556637241478915039190525479057912751566895075409135943623239765599597373067887627659754821527494135737799220959062474744237902856732089933108479931308801575329132658389079305123013282399953813251879234466812129943815436098679274748154304377854867866178591225104337701832973209236343203778940921077351655567293575689717932818956758093738381739042813221569257812865853113679645186190959096873502445145810986406076514171116936689040767431629778574661152206394530258001557711715603587189306275055779344692986435587650899064352458020218782049545699189776126422235437336466329973056225141796643369875826324302614979637311082517987534804568284938787031783870174577457737080013030932421122585646813522426802938682278203773760908267878314318442425566545672592765424925874775024358301220851134787588286081908150894183027804498448044089966935002779797947149766616702171449285948684756146615570008141851833199776333559419724433536389585635962556317849957652717104938692041786769746945719410538086780765040802649671335394483293511907149606227549315465598034721938114542672379832388690391435762785223698320873591515535819346927243745664870001783102597639834418924278428843869762484232573992444374089893592809275698052143269073235240899948822916222718279102153205384961821730292121895740146839347240376992587031244778734461728601020718123820510507664561140435198661713777443938891948219392864034740727294000800662869433496362725155762773570184170132906115349225025907806348270198895288454808966214774216779084757504926849715428153030431723115511822541780584795761621768618888699089687674579463068369527822343626798153952942050216292364156439258257747997893137046300897581739234085310149325380563811267351810063015062331281829570608804781337338500255511287219169406536059945803870743278253787850316145442401986321144162621622732414123431840228681179490149748793257273008299970134267777738580886087727529280783579617664569137709281049589735362223489858865939580431889358850245920338136180995429280306464086054172403371283427464888158250493220738087283530171169006243968703416202340673857345058049056941678164829735826428680851251007053275283044630228737683794873016063313284424930331494083501271510576656936323473902418088508424973134065226334747144715652255622503033960592164260100543805165831765332389301395684823028244060133522163451782421010282935549443245206410872631768754529359996514545389874233530289592577587817613108297472077328587074120971224033545997480035684127109839109453133597710643323431839227159200418040886643120882913645418330268688639247533328551558309713291121952454488363475281006156332325963942123119156956081194185581315989185760567972717519819361813228102521836366174150932431684201920408892561843079325325376505932977095754304021229169100424257349312919150430515056966512238619904309782195480576608732139936264397559729795398367428892678140190874707077539646029290643345453548860127090388093975381687229512033701383275317933316106029152548507013887947977129517135486557200699605277213325886334630154439902673955377150208826245565025015165822950437481584975060076871107011452613779909218674324979186892614050210142126308608882709505725468545739217976900697833714721838358303948201853456291656755382399522269174389273889609131955827719464193601623154196707817650156968390758710325203755137565523655375789918444673749538936661800900667339578531295698668872040899384805070483685852846863774118414355065258218066236027765833297007995973874728414945606194942432526026437185624155111651529611942695218019547546163947100802014964638848439392834349998295069641018059637527752557937526508596575098877858449783946244129930291833465476940931989695840911095464544194530280491243257347731372379595016730234963213682416436097751352735994530522039494855001671684535988835174590549937945505269978538936404535523970887863592120444500331360161352033273390834986221863176757939459014844570195910983592073987130167479671170516896372628204128626702238994134617516398989405743623995740932617218197417549918931087985013829631655098992703962784554847064589033208256176533886772884892798210048474441624158948703162672096155476747434874238498683069316301398136368697750416655186551511636651742978716162332405220048846409758627654918475215087189917458365222434178392275277493388278474605414396709058535800602709933763649093348974774946199335737499716615305464828396396430303849157988794150598856772198915053153202964883142914793551963899607135457807109473409635470005495877483246270890936969464034686860558645125228882852271772569380511540408675125811779614177852580339242742998250915499551714898054744565840260853004092942008488075869448741552284520457367067539577850439573159464121126930779161079205199725959392045879432583697898594473641356804493105819638277835531751472633720103437508491852953981949265003508061971285456580104126813774964767363722725210978462150301495093849712527690158242282837085799465351668816225789025355233038395082414378086821744407794037474158986940758158227350065015620296590528907377916581789298565520040378379031631626680058583480534162193901648457217778853223973913414178442131821842622743022662898557260846025470821428217884194813557588716860068269174380251052529078620231229244247923061744585882507984334004361263839726821062159157276807970205359743289945644890791758233156336997790635806837381601323002371723873198382239136570613558110700936201631722584993660424337124680232926729587994724242636461826644742375783842778683508077744044879296796483553120150099394720639352902105953624524612032957767898855302340724119008853629664415512221897292832842880816883897831237129656570497485571050926809946082540411921760578639471546917468374002659645655849746988633216806919896716499492437594702311952963514460135612789048701923536291755925535711800394774099851557617287755220251083991828181344370646177978556236911363434195601881552949397755408522155712595568718360542038654120282340185032098379275574073015913545353207449389104680043530414996926605159155028833651447538470920315279666551581842299035483009040730343611403158971644489150182429483820087735164187883099356856595107884545780894530671536850792221999400850061952715743628830211471252996959659161934008438214591225181568733706640039472925678568106366701136564097293312941022314783469853406845940882868888124953280313152014913763490153865702703355741607261985925407411831914871369787576886310393428111543142696374921599547773748763368222113010934547125289941525706224726648924778855042054108482679799885531250804004586872996386664028851303957907343957083079200573991705497836008112132267510849739590165505363572652294657272315984011825097327222108245619226402561863771854737839417009608222641246629411135866342650402075427666139484160913018348571119175615206842221386298233572062392861374266586691657345774663408704249374956706401170262801103381268235229858786692204510336024431544893727244136408584036816492392325105309478184774971216103606725238546439104612411656465358581844074486852425410382151128555048813045521070136110633427762740403532067965116201521214932753821564594685653321098402866318588810364938158379631239770975093495723789896888371841868891958942972621922294616564248127673633803386547757874070269218857888006805113761967878703366223547461172803443012530749290250591042604870769304695730487481519546859475806293947309886170184684538950237611105230378167268514055758002981942032162351215764477203816399876157027971980541809517832060750242367187008486637703511801309179326642998001275845022809561768345988835449075713081122453094680192948859329457260422366041710573719940795857671816237967876329405141641801631234635184024748224624658181178130694051969267099730870406444746517826064577465580994248708421212825771342144170530374342918933689494818704333658450019919361570626094630231781215047062683856919529391896273221469372342954565080254758888996224855335489356162801134881691836906075447861850621585315605255677584736984620644172713018438555611694318019381186480804170924531775518464755313731740931823433934395527587285047900563653092781498872224126373480860482210342710394146571434964764410752190486977834474682935794159553535709441096401505992904513199729960563750466496531541498779254867516917655135917093520173262175797591029824756032001773187668122769034249903624820402670805404133672897418153237556507438640370003193761447594700116802668518364222708970625509210671638686447952736923501814573566319384155838002399291300938697583528277576542745307038130696994516544333071699040843514680595473232238451777916060260131363614345436566687614928785515872464103887322083695995101636801240603399810308571623419523332441842598810134802972730338636644115979887095868762470689896289369982576520386998083653780699367318342144972990890057497046710512401481139165730571667625717812602321488950223298389615289889176245050546423086422645215885303058147058679780101073763537686365479389182871768840183488679573423320274803259690132842428553957345321355204771250078371366595392980641218968230259054194407498691470221864958114035084283319020570464014955268030348063376820071706776361959524464685882312383409378670136803199430013592425974798722053219756948690826156916091047615513964728481203303191068012231472685447017167393799816283460945903733578828260030539244584918898784430872725537666914089029015234360255808426835317512312444688192514966525423268794140134003247715186387334533423271890109605866479178865244939191486266345823821097008546731489437128973076261547320649748017173751780643205124839564909651914154545439478446990746007516063724056040628822044008719362284660922838117403555258140424116169359044962414717943572805147269977744335163340054665606247857390686509137542301966205935573556500253756563189690829767534229096948688561112276563155270945048213945502299104029184460946139743422367693226306945354461273326421414955498260299653353946588274018080716178123787186254783719709290863810236462235967711574348124389562203225938893327316246121802070382069494376880407481611615840518320655636676654096212702364560807194123191968901037810272811284286407267301890496684784723835518606216751739208839254485495347520550695790061276116226495301114189730162964893031351556455061884947903340598136265537328772519659550325513503736011421949055465216120277726678211955663701601173846992365083568314719688030065147083364439648097675241928558400607406607276672755398977183407558661346136936697646101735347166316859193124737718448755992609474516707187997076258203744200159191303022200563768551540110329927636867566123619161744404913506216385953498733016793182695017352062548323855107283739852719823635094305743574963997858506353626076682027057429531786071817937974075846619107757584183698600249008731435835122449322324990913018172669401691689228635794948169805002381290409209187931606493898024675707047144125833171915479001095454420836069180923788150401965444410645671725638810636715444294883749910925382658805248675423667666873157674372579333265593331034684480251926210996135824621794507834537120557462625265539595633737792976970814042569056333043652801866012629234485996410511622363100562285817908633418690781740231198334357806146857932836321383732797025933443597095484916435097915918859045999815608187573380173520140518705687784452826081789941297250190635526782699575283712883682715643023343342224844643618228893022606466420013239548632141767865919604687350634508362324488661534850135650764448734948481257645785404176546200702005562499303360407060544618309542698624991411979197734307160585004138487251646874163637704743816573454192970831492301685901742270164398612602344504237690245640681062500577816395402578786949239068387134513883222265648468649573797294265904743598171680094942662636694101904414514411094475881777481572739751807320642934315661145821931793206431940991180975067563944864737530183320073501458889376851856941208071361656933782537157207622738428575103711686471835518185874838208119632100321083370436165613884652578834723734075111591231365043746448397292157861113739111347233843472287364863669127541098338523078314074677060036405608540111679998584288008540816666325882423915821988352593649032948545993149326985870121616111462044462364013298976215699143966631805770060169666850985404483309114461738985257905551382221821117730342418219665638750879175971578294824826880551976671808519229736961255977208243694867418690627854473238282834090342456832522339375229188771890205019013784806315260335177365571113320927303643168051466188835450460405702223753330606074032311687821194413015997054955893840564201980762658220499349359923483938110525151963947079210912084360419354936299056032230871098737590032682956037489553868724587342700324360222098137392684093967706113029799881038536952817022725136863494610090557285736463668683682787173785110706802609495631170033109697776153222005555552155443248442728449114709481318931307772883893115725200210094152487131733884634145519431717069297871746595735791684432514671739958432032617177759062305437934168275562460398387878696355401639658693034615104674910469450934026757369158589764850198709115229109706440099976776739084968445047320535564622975040472623850013688731655137603244781024804994715313613654358790703720847936925585643104067035925589254946064457111329782779356992084648273166664775299423270905453962678372641717771769525827732234816828392972919024437528242721683495026232907132562276383029690708586566859454396595574739343346687027707812251672869037097645952538913639127130941464604123892975209466388256119051441149835010654129496437074259879843829504020423484541637453392764569345333621637325330699999307386630986719962384207505541791137767196339756242940386005484493246396394015994181608530428212212506862025389107847912906358059544058258890962299750541273446385486261082272733962927395586304763608402149387850754352429129438187748477714303420239867937098465874810633707369640227393808809103891402931388803089027621290086508363413384006006392928061493043540228825229098717725954699598053369978598085385983072531413953714275108791732278375229477346721470863602532424570599040948324619341444497430917240196803316171677720061320598041938643147600262650178064670518624918385518448599682889843307447887054118420775586933662161955982011668081174353390904677465920719428904188674058994669675984125329207123336146613959744838046127191444357774822921010257344380010996931938683073189124854140175100352094442541376445884326741837792657143778827020286275656702537945627801014597294471315922316084965615336496549750208188560268181284582246483625859590921064695178538471407898935919376515839359141093775517255994190853747873270924503048450880285399626408124006635705900092146832240354143537045822738323065194757015379550464223777679926014471300844977543973454655452741009167689877201449830589935958670152822554193085430992083150326809009004346850167969056890738881242120651059259274888210542177943829713906349294973351419730767317412283388576955167449292096417786634928305363505941154925444192003376524574370327633399635920537279486074536586203070069804054457550331209744724745186813641088694801292140551161583861508746670557480075975280890652873718528725334700400197532967667290676301104194006106687635920719787471119494748554989582325572924156625806519616848671372042700774960775756385234101527389041964105182266543156435526847073771345151640495518956352061923976093797707208328144561650519751799621389166356104956518571224590398970411863571028011619898674370063764700993723417918455061400026975584962943864063616786476054873848632410043403644246598877440421482872688939683737140928946711008290475705447089469661618084389876740387174936821345154839999924644647598611405294976530053663491284570811530496516451771779049409179536307760722288155918342591400613878195584340545257145165407696474902176845158772951467314274619305279974389688087330389571638592970370077978429831547142297692552040416291925342921600749415997421523475387396772460039856301147835530382511012594044989219506878309249714411229247137287749616716100071498080177847384528862228626887280249213900065852349019799316877122459930909177752794138087178663727893613811109548581573548812615155717704105825917495061268316121688143239860105696391241167907347413071389779662718194420555584829623628243865988540963384152480825626794834495372510677040039160054393530211151805873845974908091928304138400125126066747754088299245566681364038747896214154251272162047271486225557659640635327439673178916060872191994005963629673212772704054130301959101161197696715549977136130799507948082109455672590464409260134413072725336480334252120569469136588657388484679463972452162801492849109690350548011863728421483905286315419110159986086137480331944528736407023504380132328408494177303510377581083996740778092859762715076759694705194502732581765885023700275097836519934235161342302327844734419364911227833631078742127443099112137786435048368548545406036057907221706192299339603162074070919491652096149687558256929150571158371374014112256139722994707735416427650453229392420369428046569774096004978761246213536841872560861318890056287444671519056166280053155299658734888883306867179120703684436777627494806814367812675430565937548539309292860407672870243741333209219745569098070830406802589270435744507535426862940834245257149617509176141401984119002865790297222898812491427294005440794187093738911602572643214620853200300622572736580626523069290507286926805419666549904725533892273511071078872584207398098285481619461364093193532232362011019064677422255725766794462083283426735854969844996645348709537272203225751083878900544408421502080160269554113983043043065131322943324382330382314574188030275932686882024491186653124885648487025502739985299858580277740946763623168832654080245208358688143800740098282753519989147566969430341771735928292437413428198298936579941741131866154062266250438391394439686166817787692164360466650972165108142397934801899015290337911447135721340380853413809913204934342724852398255244482620155758639980665178592159032316593560232918937247220329625083013698768229835472531420565184477958263858771594105318616048869219627798792320147168883794866920311047663471670682715685839440395915950702584974523681632514177268793038922938505387446773170298706149036952498737618248667681395505011673721755938590216804425888580914102705956622059132016781924923245334110183023827117894666213756529447869000332053581753581960779131344529239689764862366317252311536078568836998204757061430878456046581364669583507762819265325396315524682273190935653845869564033251339912554857880529755692725625702487737845888380474581707985201778136470962418202747447379931145854387433488485772900975266643277475836744192177761546172346524690999705932775332145700263439072350751355860502006062387699648672505000826010055794083633456978973423843261113510474557645845459214031245920963710462628033033188132414591546030609569017692912995870096513147945244404146946532617906545041049388280064555538312542200749256909253493548244737972286451015036841091920195602392218039299619097926124187051045158224464844874739690983408231126803209291399636156837046136152395345095917751133667797353338940523780928034787119265519078456954927780468147826384175848757671381007796727505182708707605709111156845273313537668485971322311924828742954117446743029172386693300656642722424871980327076231421454001748022226693650252956624858762903990926621996841169158149511558277806914698097869532300239129746572488556697973079164133561953860616137490299133259244655901705295779334561184933966596359720073260675732887249526913436994171486863836125287398040173842471768877580999818135410331086920608854695133080306400796897159845529731845365077822151243600350497061982888793727517891721734448193368921116942810055698679151783769907098281961563241716519938969748680398766049387516175526837572586270847079787092650994136849174572046943769316595548565688271877951116550467541464722695827873735819574837581565636318290124197722519113168472269790933483972488909473273328016487569106633218042211611405782034199826262105101724132996715559555092781078013359726370248837291862956598126424027470644381182340821127900906913075295433467808936942861338858172627711772450635256074537562874054232761630102253851117086004129436681006404143919201881464901300910934831399424937728774017288787860650087838395072248360857266169443252381040949849958878744096635255172193063749752876803369334726865495145383296016671995345659888755826340221580724710039287609856379967576897258076428147897054622405531837630300254854791828875986559608740375628281346448012218451080217434285996709287968466419212647018548297863344188497953409262002306588416516413674470656788662910884689630277151920120922544617072347168490380824253146309784171403422128438429662158690199315051561286667875919560555427766900595926080591461930592902309901159964848582923142291791801242255498563211168038616146408885191646096861782724957463959967555927697215335119135376380400119830925745674078541606678929532983100955927861397756876713522752325743730605587799495296091851575718767182807592743582835246840351374067326815526738888345892406611681802169032798417685185369256538927836061869008150764607173572366103470699615536789502151801403650756420553225183641200922233034144318640835618644202671571686902537719944822954472738455119469993280935144506223853882680717088765091882435226731562968018013505476352443571955424378299913793868392361683932912069117786583583087536388011830641572823605634503238282837272204720756383780021602674944799035600998118547299067944368413989350601395077977172395652877167194404518815814082351841058876373150966371768748674706327978849355242713046775480759183048404735243306870094566484089189528442615048952491557969793819534210531280923759600101208503196387728852562478153772171901631312528626520536874302075480286018921310745408606565893891609205106582954684336513375207688292682138105966787768165423593240642870236507056866670746130684774437688449915337192365537436608524356818703109437512563614852545488390803697937047555339937839001378767805764766007299185940997614093483315442680723429081776985943238076869667139762328832145835538297870855465156664235743747553792513692171510189236412493467581680448850355363585448028895708931858145043847250634003607425047504276200673773687387357941219924544205867259440445317174567378557038356748908251371933064722471150205916878230239886567472308189268132235246398167538389876175202846284508405214806518486407501652378760957984523542683855262634817718072578525506958690827813986026252375418394080081610770147158899154766664719175765960396656091905833714443403689126046399209971441806869097144633756495498110722690554363905408426786814604819124104656758506028088805098965105076564836561658657374329507160132508842148597698720739965149045640602792059017315197713441650853350011461583158763146102824356132890223199312077794854925892540128596727328329527910380628915855715801766472949194231829918306939874090880417307608982473280967045987492911478742891572404114899582409243448482893275097931448694320274003818866679733472934723506276414501232295939620503545624051858005346596321744584352715979185535615754403580904936710726078869041640641924219678391214539415939305416196187052843745322415194817350599968411922211087186034811678295168119029677637984275761547321371376711088504058919498245066434736947271595482987356202472156209345266575423229635369727938825056761303776830600319939477333332328357483480384994486513108017353890808135943226049377958147084830233094472526066073779951240668598495761946166774074919590581320637390650510256069802886370955093936990485499123803774878147262463339055396967171405230242699262929703770936258023371132391000161638192300572986656262830208525358760316179160543885316366498668106381326444580282207915471015710669012556684156980644760474684562747860619208450108837722716588966314014776790415609139371211409019466560456245628938360532340644474927050903761535781705720702817618916363319384542314925580917782138653606039439286763288614981698325967612307214623051870512393658693030465682345324287158082724609078657540922070923028189010932816609101232932909719392409950656441584789683211815983122393095591288908689239604853488209327234874971845559835036308468969791347189223820125402732195091002021756555394400337676509792359489010653784609283997480896986367863635296990369860724034600257158994451286916659549352802247019980061617194620781775661022048885117716216796027692367253511875188358386467184672278450590663572840753082527221444677758741190263873251915307805749491027608840979708182410337046094368567248140212048588082096321856506245745311969494160372773079669169593779571565267916993924178444262592985629942260256573159111228856262670472703877364417715807598100032516288865005492089187698400311217229273584506929794051912214772295780921949423329752982027876145984292857812594798610580706722341684888046932056328224940827485945094934652292747750043183445763201439407745851970706662892143081861133189459167920813990128893633264167560999181119684832373581280565364117350601285424226502615121803378743670401241336156776020532734303675636401421295177977342334565475252868614453083080181304987661611154525028645861474137408261303820319417006839836753061396768418416064803119459214133324220366745364776539846628391273345254802717791504885328285271965740827701458385469977508300915418783399842673421058388688829850945941427670838619734002784651299676284094994940457509814135605019865001223627701138920213043386391160992627948860700290097121120674047334640475898681788658963485999911881833444846492879533524611809212982963078001123609897704123481655174460028632910093160995113760105886585345230380221573716491459388737668505886514187547188991122224202943013217154525832436063976016821481929264199004012920431075060292318621061930155782806770419668432867133253191423252492587428012238713026994292693840512591756303099437073399450248179486713293992161850240857649867333164594310996738436808167500304718585735926381545780238319100583589484469477649718752980879566391371637576119272071069146937003625076229889338983405524008999547205287560483666962127878450958487524446148813679783507452931953462800932158696308984184593574589153126476058823495193724909622796780924953932534651807237776673973826009872150306027674562750811469066179692093066802752451129988011457285893147214658674956338449935492402187218245111707268507735812604987871159749315933981969001434761549064352933945938941641562541726361901723380222651143735685076014490723029812603094549460040611390632792948287503746201144546303205523722373116084761040449880678902118451071547816509662122886354194493586159035209255419940709746487851444412797152535048117210935097391712661979305763018210326263945817896258670933530683882227230745586125648796575854593588308142869717497539410183646105866569432451507333884369045674011553732399399035678439845558919896074924012849931422487000038995944575868906588756520238764027906885182044078097992641251048849875235667011147887687515522478528540772422406467532986519419444436152127180737706324582641323900195736471810237725137667344955654694523270889706298233077736150884258519087938420544932558716020459187659388880540861368493984095822797335027038575685183091063022628026839052004021544476492718642430372746412367491689623708314935301619420900685844535092446635617468125142883480039799574113883672499983604337421113579054800220055835610920462160687502834626582398513987727490551145180524794079351803107481584174621336198555360704316295163651282977812024374369232873654112011035189531974705202824549661942098750714656606701416494538128890471677689152683421729882386008318750118245515248001230390030877916214237451621127888809370151656159174709100438064769779357469728580874783193501163488699115686793916122260110830557904223797192171786113703080949711788307263579370406859185323173312003896852204930650418284173618143622573502341019789906350765856770616730715673418714822265412891604634968041628292491850631441655393804213952843941146832546269379148749669161470239808451631708339586310970572215992122962372744667427901848767629214267642955858918437762096311717398676840343070478427370379987598357303400168260603103820353270859529502787787956433801641359905784073436829415707092759298939425453478078819654150803950047297450780440150528054902537725039020086163761295468307927428259435418968155673797342666569253279124740429533161734605093739183970292621872961493449132451113956014412714721029657606482478094717977886128608138592105199991552352408310952306213748446113212482289480788795255244951762676102554129761620293263145999296592136129542739971350317639372148974138785323843688752582131973405544414045265862783484132682870947341468673817086820459582295895347542050885531227622655544437447364920187732505603436843694782668371517275699695044147782507820339978828763469012491811460059147185036452440452787468427003995593046103333448417031852696536451921641535906705852002576105716183504041328301919088382771828935485455312200357414616747279058318870391968174107264523481183038479645332225467068874542354972989668609225940228234412868877243761772494861226670694425448855203584161433132716976739579923851016923346625848382345867544875978556848885536758421961969090386312353558184134167206058944436210010388639421723392230656275176779013613214597463716964364848562194334792393051339044116186718371850423242620967957500051250478930583384102051675534246541127992796881020478109196464828437163528659651670942754700883057032435074471126344308584357340934722260982823479728218733293635500931271188356279553949845003154691825852139966903391764119427605278016056306870933620022946273277290280733585451907097124146292485428157295009734759306403402353641436104417402748392705863429629646211249896840534522966160454963843567312390146670520559829025511317123771867335376087293349722661277750349605198053873419002137170668078546613483527496089869686118500495238086848350772028879071192263858653589343365626741859870039227533760560370385078135770830579611446147785125140543909290430661621890898658907558402735821791985111056780634416790423644101169909171019482301242151639099166349684765563208519174435897835274092887657916150610190836131035969004328513966257346970678882775426073005404258927039227752371912337234127667856078417262002391250704128248107293748889237149330362158791609799661376763604672098254887842173089695134144064442988087600907732375569963631780382788666801901231635994597319755832175909479589561077271761473775140447304121561965152767647987344800134065378563174227832685530894811323468049924561824649931901499649173063685753716237657473148896726828584799840315128695724557788700351590705636499001585794175415927765186254776800253805099841957835993731609484931168748976988082892645054712518344335106561878224261966353791951521354991137938982335868785999781757943057501989928436061209154172039686066453273234720517808036049698019769730451824539198554120447196637719806274506434767809364686580204553777708306829671250506271032758844453102868334771371308442800488941841078840368509984079026312854928637326892551078547188575729915152038309294644770689291181017902442623928562818048455618563856278687295881039954492870478447810260255610115604652409273386992187587841621433999936827141548707478679083858428515990639099458629961907587878197803883807432283110158229501982553454455057337816895767093675671398815431923580783212748255105676373175514822242335682480787576252659115673563125727056626137589214728268058767477041550326891329693503582988296548638553812186433144352185516748679487213378830370919400936371648125663782141170819713481178334294502668880860361152389507833774942310349655454260970148235550887901657239041142809535135574128931243830597585025747627709788862431750477726033052556797075952170477273242498579860556549472684262343509619269670182291865192193290768758697413923982605839067353962392192453842568527455454909793339501912417815127326313155438591190317738897176688017854696144571236158799734197704289431681644598528584426264974497875056852621437124696055292873123601216418767116773709242378671636293952207618837360759629493254083105569736319305930827990979846143325296741550769011630018131153677529700936162008896682404572237772254561880798735374989034094087499302707301183775476720401161510984116924635967226375398932134690147050509451655166353532554328546174275173625983801232018325367618466653117615752571939247490527544325662994855535863577941383041409568573445250010505923431514711458053483235929959768396594830712328364919230986771479957474959606886094511689818304533936063789984360853123882284079256119182639248909403816649782771369104632563965089586064603867804631852985953968279647928719930706635333483644560909565272677107300338266723834719176670975512150917442756964981007412344344693563059269252909881922745233328210099619460341893350448270494123111764183150929294644931583079582981591955540471511888100032874941874632324271429840871533663425741218575621819919884857395208384177084898275323838334136461191343756672803757368156642736537118141641357622079063086372154679580760687003894368835311522553812407958823464994452236245204931659015645597593697894226866126441273222477670016996933812141910831516082261539254963350840096231887323017252200535492212814633461864390335606913584764952838576373085055495927360977924211702080871896800526690813322165132974179506944322800424672212713148039499316685415223642319214387943714517819422143263448993403663547893498402225030578648333994418760263198730245633608556360851052589707079182928763921143613576852679391329533522212606824611836547892553753081925566692257235907449875697045422846519555864417265205652934132345157566945345058198444009820593178335297842290406579492414752028411244731320537265548373749165264367365346346724291079178057049795545438365536315272212584437061012769604116005426620476233647813064688916047937827400305666632242649415667098318110881818481946712826733570819500367841352382349889688532443058493247478890620637438379705191186830534773829041493050456846128499082943428599798136769650625414059129332907923122483047723937572777988904755700919633472282868815798598637680906885406831083948777956997123165911258738008891513285237682108486546184161834101994928690345932873289879089230674167181815751182511340202131217445212258393294088725567374041735456154303304996665650465428301734796099635346999418107276970020281769178148384303191792198149034172499912146293583728335953013987677758571038485038476909355535530875806003956311599421680950739004051511232267640603536131605328738432114219052321271255364024059345331394877755350852768367055876678528972036289761024655885733944582640945396607458337590859356562621795012951335634009676727059757624321202850194100745384025486959542261954984546136349355328039025045344109327820641315939676408717474812945569149245016760579018441448720306620682584597096327463333850646716854989222317146948871760876007833326104810458858993913341434585456506006211539023919872758405277952002803607992468741687084813744268004694727825247440097368039069350736515157142504050734791915344114426577037412967526574449570664688604157068828962019947114353755316271808466141662856825598805961111359749955471381680326936249146906865496104837174896382682704259732108200921927788869483232314221899531572905925561398380829188821353306658217046205475544082966304342529777498867479060945483035292786835246578383199530911680984580793518409545336299320167530252479748013170624671785652192348606730022978926312748670961580416733050843332550682307238854162467314135145126157663221161719372101537476177729475374005118229979769067141266158234525568530770172621656441852047469425482523291783051689828307799084843522303285814079213615772195857366167809667646712083984753039065241761553794958424955871511039809564717830150466440840323066555311692701129685218146333250539435993865791446722956439247837742202449618372028142633887281757106436159481054551619916897746573423300350759873224583425463620069642666765114714588962384417391858510539021048615629421936917086178930060512304879180125381452988791521064971724902562071399094021144091490364906562778866205221767386667927308189668059492762451849949615204906070460745098020060644339217481814764646645864278786684185763493114486831478389844017108746058661723774384245023129173623903178719220930793132628919184523901528556996188738772215288411485137830151672130655774094388516003332064792205594024103683663324685176193814438797794992360372216331149078249535722908441209566287770898665401813961232006976989950554982308660373648238793971939486443501754838590305724590814531272478446285444887687937572960322943817579176001143536790249266601452530564719920561975729684854531301168079076475095423620620111061387586875933468570424326278133106583269871800602131784162649039516076382748640541839331229100934250256145246459822909660866938450494739449101433152534986656492050369088007904582629655034816706441931293852758830546872891263630203849880807607140932382988270470904242254223304696448574632790918191038266636168882057572076492646286144925604505188416432302387205379988603962638341288110457624170473316460208911435854320807229863519150062685110805330645337149171577608372873782652357806173278894477653328069341250666178477105096329861281492427654474650376211330822472775010423189940476847130078492193709153423947800238527202888905215735570072113252100443945062735557357305993471156363966981260845683982121374533893649717174698268341248918179341596410482303234810345081910164221609672748307134539898121358044549132314360746335353520134810575678822340696040826359322233486368402227625395885990459602093662326092267788825103171389733280675828818845406972253531674286549393929495209183790061091065087987066202814399377141268961578616445174983106363375666514824660145069764353363610992961657953363910447148497033245136394760023128167853082163109650155579000607920953674538314400517348395187703789872593325107064723813028017045066255500178862061510241341790798478218095226062651631124394571415241383949650849094680674452505424664804989706119837120570608557797799429607295548081159308496515395187344096379510951472537965496956856505098555434247371016578041211035979401910737256069278599281852850146432643426445445035881660492105271418660550488529961493603603382438739575979997760590583846543157497128617031163125717871584778874756506530646680128438032132105506552827134873111086629294928153800366201512942584298093274811798756623558165509695178192079619553120600741354204057100826363734914810911560690138538518028633778108195192108909805034142402936795314238092233113032213591524453760850930607868425820462753476872187120100624624266504142627708376515291534600983556788158108488048619949133461311348489420859146322498106563082034946097514165607595005917699664394808506056718466975588292380599805629059834092627986997234475599370510012649085461829995216483900991630468785921267063710512895828914249349446843685815385028024151612610783803906440363694462605445016868087623515628819783988096949257551109060450096489636452333733707207944825751811652524542953206209688034914869736146123054205631779895062976318831901242763220725323624103453598647332954094858723533094933138446763240663894944426029274804571938594051513793475576089027048814748261293157079777550390521782326885217144438509843593107654251640094359045400680970652650374924496687383853512922909232442704903399758258963437610496548975229897713007157228764827998211740638989676792073000630652717848099495681500258202255772175096227635277857586410206989344219835843426832369527763863432535366665998640536926842400061574356380250082639705466244293308916371405735421984414146889614756990638145122556288705543523917584198819407990254352327027626368634331079017317237983555435282128382869025404204343756471406093213343969282223742077353468281045055586814890257668736485020529383221409354212723211648057172951249331114872790419679546442727527159632172148505306507922499136014774581135792053269314639609902264350623304390216656772297291783523784828618546033495074356426156696866391777487022814409636936941641798703189294267496984184373786953564007753634679768846409823454796905027427198944024906366600222418967969704834706342182203489749101336795042679315630559859328119290380191755365782432078954987906674250176111982844276142641176183535770410973442776263472870670611338800897443781196802605598055694057627696520713159840516056304931547691387908956717557165045667122447893444072307371992709473298222338363171189103188138170911360136567180811675084263131584345289107285592639983422920116046160986245557421397445485508594148982829857307239755210046290277310743415389291036297866884663748489793456467352890204309173839687154490753213147062677670153049980601625848666858408350129657936886860270587030472698126142271512891889456138626964403927274893840945556913158414898004229253650886353311071465051223305502516337405601206626865799088994972904763203112689665357249806407765390611895516713238672857837445448568644677829721728816753059214447450685007795987178014267538032277817425523863755122928122424951419509947040511453351701417230349926633421978943145871035234617675876291969512099827097510349890944119925637250412811696442174376307327875180769046920376736269938492714081366585167845791878131457086273565442005662684882791609058231627085858914916826612632108499755404039826372208674234523774553456166072095698091044278409462932969432917727430519932828699784673883965362978383754019514250548102219781758365832648475917700009315239431664314852558992883872159976049233184733333806129179545213116251140441385873274989191031056813623290734452196976198200934452582060415019947240064534394190797493195194745936089278607861296957667447582639814133207546680307722788697568669083578689510245798322017848679747176831781305420938054998097413937706216498310772482011886251929012062583886899234748165585311269666019423229569739431838257823605003326428838862791938202346332959718460451203396896918856546343870749782447229538221219576466932115669078892561753268738267567015654217370314586732048848332029305659619411389446524827584912608848709345291398662786502236123625470520804511776386610925855482531237819684823796797849236425157538778583423452358965493381456449770185016495042250203354222503942353535843143352930179429267715091290933391330292245315943281649862837161922184071156767904881320964900574247284982018412470647918565675883174321186154983286372710276670290176259968970919538693235526837430982447781944619906309807167566225785433794708513860759932290125405140351654611046587450665129408489205185110318474367527763215735557961454051350067593165867486629004482311946002241010097351989093286614861677485156189623358588415872196729436136049149505265644946139397895769617554922660631408125634487055424093334928097167839873493136230610207458896584197294859654611186331827685787215140057584471320896298052105326560446044270122066201430876780454865262569523313272366178549421989227053517455572637873130923007477537237341954144561868733640152938634687467206729114635174672511222108901499197122396137444273562196687617900203607779930296499950123368833794461727944591047125980321971289621980688615321992745332196307150852755239764513202768118907104872458793127444905802780280213438637810527724689136570452746927975904007208221644973900997119896825826598988202758105339531568752899857291610973378684921948987970487941773804876135735328003349949961129119619306509034824002500551750163817028537424598692775657449990518924774933616713567114237638239129939742918140657009078665850559554108502216028859575084493215363990424734688097101664090936475748206979267508679866065826157077924069010392308152081142578025611196594290436988127573294015259446317060984948024410570788311592937658093266261665162414432828935134668441062033494419753768613581868787021577623233006211613252170076044106600953425579796554897025565507528232571838206968934346732421263876711039896950605287280108516808697017408660769642302638687049965086774043205154891110524402098748962645423347354129892478152996976970990508869218280771820590225165312298079639047557884676729932932828780281534697499925683718204575298706767548976602124985502320107010567457831133108707797221787423551308901138575647458202276918382219031563350708349084571986936229352030194509268843702705368911426847564962867146485321555592512262787517284560451965571724932885815291441676819636887074695869148493773933363987449604316946482913738244109072613556630541846116719147813662469666222028733814505537090813589626685796556221135969823033509826307901352999426972171788047796288014502165528321880750399645399888607527524245598929187259896275784929863404616709714732766055125706355187288927451904158043783725253492382817405997971051030706266915879603328012346331718935636180357852723142573988906280605556764835465056141089882442746278734653813624388663062498593678404754822893193164644893304063910430449377036994598145854720842174659350720906163183453814611617475011030550284880038041190240523820449484929916912178368050811922577972105668632929049712980366338212295569837224407311754795686208505013834545468581129833517024708573426145761035886675118844034563525665063231429930601852953958081233657039841465783309654570353598835161181927986732854461110098620082972429088359842764904617160698829821277379006615959158978580706425029798977458251205277459819806815378221507934483340107998538347065873334707233232937677841362507259940187694608666638998208932578886683073667436986693162038719873165823236568007371308720637274322453822386104369668632645181092430826726413255599732166657623961336417054420222494049568787334724439448801829041154517714890837388875697774107220471408703596147151659755356942870262941047283665968248770792677270601428369955201130978869198786591974764909464613017629531590490831973741188725570988494164604657585029146495961443870362486411219389775586715839190014759708897740938776412366096957876066124516231594388654000339665595414133240659831104146535389392193602068465051113301546474091678765530585526423763300579459302140060223513958954971172138292412259178784248697649852033328627530589111113245460523160485166464356781460419386439235297314085935231062673977745048513255652758098451703081398568680288838513157701981982215156529550996641188688560612393484778007252230798045320549704594993111368782126983179978203443828274368412824368314932472340272248542274194791899009517795627931764900488643013206204738389718825007962903714116371253644547424497100350800195998495961603554302943447670270930141428195200499570272825606374204789216827086978829383132885451292836662899901767319684836829895482267051938521562374383988522016733787443156869635868272536311667957047098708543258025991978450254925818880711410916822377865878046159268139053803494976689629283806170225377225108921960811149032287885681996714204866347719657545632084598480380094000795781967307203482111204232035623019940532367494600672293334338547312157850598535862009614291801214723982644226015547170005923219411098935714073883601177672139601067958647869707973275402852406997030236671675684362801066156770973252903907492633085045161748868592991639059917990858800235774708764932996334075924518653408144249496826871738913515908121985522283630117272573417183590994996586755076871841809308439428728955001494377597344767136245342444436709695611554645290046967909345931904478456942653051509852600284505160228214399282445666427774202681263110327853657290289898035305754901055457591057457180653582162818296892284839129819583964009828181754631087687634484774148186166096674196618225716043295053781732345584408509869167927112154844582611256153497649672765898652418878218482718278960628788574955602178546231571191890038031686643050519770886882215968941910083662614474208005036879348467367013950168282917757027853438935208991555278318863488924013031140518714176999584204080578664137578689613431877571202974172354907856296538136334362875158154165378635509512053492385222645248574718825788420522760823639898155064199643654285176696395384079815700619765827246538011503186427203405578543669979953674198524096938591565883088789963076029020711519196099515567411165812325958141627463727180907541827457533229377953026457083675952342206467870882818746837459284279316440241154569477587669817367725347643618228327453919699425756988298426148068868875202180106685330405863807115076774296485763529710455340094407913449176563732999354073419991816466652360493627218957027457032388897941101289124884398842856936231346782088404516457036312086838067278358704991774682667718212075881771522224747723254039261173686261694365219165019429641284888940119308531951187824312078605379115721064834034974015870126284296302445572598879260400187634886610764987579087050069384938396200516961127807772535806228973701333979141402850444763049469380154728755795073448178805486035568404518664814609136679946969935815681809344122881671901874369342438898147011328352700977759681045616511222307770424950279524746100525635117184194250523084538299008924011322232114932065875262970327238427669458995692239458722007063035293436547576123340095389844795682969835284778533363557885253899435329994781356850232778358427161638542692604758874415933488431432091663448960048006373519919097581372525399719294953305071429579198627229167600499761265956801151155901293357542861599954947369921964522820520626822244159777358261058397543388117262018551800139371240398127451462944818679924527585454035829968789190901690188869009870085109910676652335326937221776889588668098368879837209512414339598563624073869539629639172721422936065121438286717797191900115810420244260234546202039687774418159807575035954209654526228529539922937595131533295053717581739632482776393299554899232343366287870303790901243933267829007957080827911364860359966258444652319349237071577463618819776478189552678401270156106758877333406407017307725038777462004409463991637918841642572138060940958360495574473139085596355150158218891638383150941306133317497165492873990645052718311556557153052573448809660398980430571438809571712489298944953983258727974770685474024680794528758446568397308734153124228174390119853721777632951004171769237474752005865296131377872207209542488838523456877164816643867152446493151175807834217561116051047286446404519514044593945673294443571050838248096548380074697185271321252989725893743290888604476455675278511426820926334131621441986356908851557072681425661856256136386028543093068299564944107649999790445226142356045444202423546951450361725625970123456055053930815009146630263937057363213225011412593598206112691739913167434771086520972899962742744363521431211574225003261702952623888069967059303443061147794335717453787637300150744128764697942718471612262817102086329816030924005676365957593300770402154318246311429548188710552496501398460185713138247345525210005068306093321119277495176665850403394216620873017230840887703461575642358687210519404478745883389258913376329186714901101281347248147766581908303966754922268673654826285026524202627152139246823603965005974322540382227406977085137822788341461212995004300495598597464572271595636144717983432001323043492016004485212864202807687249935504248646362900035418480858708819318927172182139151035645191796706217933468784894014295250794137439070115230771869195008575884105973455352347447536873964254535902928024762112450818567044374911135007710812775370479598791344595576547643702460277335095196746818363688685792495730898110033325301324187232942767496409641536035037322111098264432223268976197964904440070334159143335953690185969130850326596861891257875603710964804545685595147325782305623493487623884553307731497201422966861612638591921474554112519794303634772536500257348997157706286346584962439805154069497267854925448777696466324882321850873876459878777662302111628502380704076452164143132122959226415004948529485530519883498240784721917593953111984560592674899085199531878737603260014875030813191690407315947878932776921307963688067178901730028198047792726957129831406300396221106497445284927677094208119171507617311756468403268752968499670094470580925311905821920281583072906143587950722683367739422880584366917141423332539299815885918034627556422609077225772290614036230491543697196831954312610166748054209452892745629653345321252028822721006737817257340293326465270452868547048026830738035063567596869325522817088568984689440752631597739068419268511784762562020381484082292321934944945092945183302201394698194793018639582439184188866782920221415006401304622546222106743971479557316239949791217784455609017105722686587517040711689534536756935808716660279641476817367220841226395537728221854676180319701100130107729840600955431985516688814644473033558115132298353670581967442105854384344109218178658475361500430053239075188025004562454273663492389606412037147216011574598548134042438181769687173509518321537517596304853032291104690058577684710987919149116352157904316384187403395560314526068792194427227260125187218350031483238281063462611467728919838407950731092204283631221116735110067093218014474745766243365493934731783102024397852954924114260537659060252715597015589423251219107643603870868159505701544686701044656648897901941680987948068018861576960333972816083477667203503975587202264710256796382791107532806476887404612874148710843442874860549877795637338926292114605235058199781859813319456580580543622523863719808377662163555639832169325456075376798212616986484172468435469165819839423516677120199277579970966137085708532759023577176416713003027756357434511104649091053623281149685894171370142697621422096476705497404206680456672369605055300273430830420422591597403827233408122701829187927514002228042460225724932701068148241460125534097672424613221515096018746418156428657647945827174357474726516386568149608314723605601191366005277324325535516434037139224508279362749193969231613644401497987747205471724949505576270353972468337580042643626684104599684781324597354576627882892485097593912110125857791842007487949033284615629470339062017747481506356822819822637469875884226606590150893138497744707923749482253601745731128350117968129537402187401343436519488171730155612862070614465972854248112422839797467598868545532041647634948246819041923526988511220228576009648685804292172477097594549426461057691459583787484411595008409713111495803123119682112928634320729722005807591973663463067497686187589068452558974600959057698965166844500510284785522732729073026512329246087601617672765273118747719382350404590757844490399199963404577427887162325718587369510475946310689238695360465388141811009987075125306582472104121353972766024349143205718152169982434044510865060213013655780475103305259779117572200614364540040442006758982756013331262543327402843778223946238138919639797375486922371973411634030947016314042144983158547181672200291290158896895094336675030246693965122594504592314643422804426358194735438164717191063941050100229298055295673444924825339488058722904361298773832702487835969858823289455497885612024723403726184831579107187686592737314627190281031971875155377247317620200391186301687069496839160009836943986973367313204602054676414939570119725815891972493550536615590265682633873390929728519589883771089996343682026867427808253949087825724573636140852443428839467363553838842866930849421935595285287578363076460084364304956175435929915406223987652081619438302906258327344775070462399684477584303850812109689668770528105051760970901311017436825299897816684927561731322639523023319110875352728912329277980462896312494165539024345109596759189515659635964608678999318137408525810396008198362754741640631837484078558149528263617654606213993719393172935754083278990307518780395686515240748705412824156717749616316799715140657750605907160964267389575219313813233587565253006580104977841797938024204303800400265908558500134601127705709802070438283700031667563304279842252219611050027642485125460521384738247642720240851816522984734130312862435223717139890810730201856162777545403744952926851858978371104317667557694905848633660365995230664183550480788591540005658855832760158139023304913415501854210729200815603888727618698005253425527227731958101921007583173546019975619797857910059098911421434973952833850964240975856925721152162384984221010848717223405452204150802199257622799243816140162248918534899686946472964727093329465450390587270370914495862166314685583589289968914420073418792331619085989260275676916854867886247224138342091470807160606673237633996323857043119378228901125917099353128566936879954528097672352863715278209499538850624641211941593406031432324291097736326767712079142899335078784799821766168980083264213473090868279128266106066059890464221904610625830886940068490130353588296462460851046516330089659638021461590908818485934406625475640427844994919405484715668592349541436293096040680158279510523153261466265662409131078860482033059855726655404725337880126533448343986626367303123142171802877391067817584576625294477791273420734739904998627391855089713781547109626405958876598678327913496554349972465464169683297320775949073070948849639117897393078238666265385092311818579893773210512194589990252778819373424693918903629315435606448703124705984904277108609440493639699839492700989118418064005667148069147328498305837096744111008687772812475163183792808302994430569542299223435848427932063560988685167773780880472532881810987047224679353998147468275929982764108793997080586588913813330345695505324324079043883861207155917780371030575108382269655838212354120872799317106743897895176988547393489989265041284217890075842276964736149264083166496752269466414238254214307257438182221657477474604008648182141324540042861860540457866355329143969254494736173074712303403572696892967273865017871780958154953828321206370723426308261091906270139593525756287591027224332821841089682277325662107895407224560450025544519485031410016437941991257433593073097401449244332340564713362445878146352195101640416236077370256082498099321846482386430592434514969776690903527708813629352127952345327903505405987389190932362182514969015788959912324699943527351478276664346086203959068759616028981816830012341359919316483419552546177833254623363882392542215355501065830560788323458056109461340752332808990831757246354417448135743769523011537358231926187659601741361898952081835743202611093650141136961931270082335337227081738313237144575435667226175510340474258062044459816438345383775550568014045713827409794192970884900530449307100991397763852526775202040254873643973058677775406678628504778212854022937494500150285963053593646343581329318920639778340567587647019080578254147940821930317130975733709470899096527763303027414094149361590046154968439971201213055216759346422040604163461454794363976175894221022693147269483180990951230965580458560006116197379192660023511235896053119518743047362979841228573259749066488830214715027610453693549236785103259342141798840828539920807805575339811162380931044105216873581048473235759063846784835737569988162811839793179308576322366174559850334676100672802330189995302838312353730866406769528319197030942717191467232152461858165047946391471885595185509300906083596077705464967419876164951509331896270607108202399526459969339712711174726872564929370731111570818063195615106488065652795592037410968697282866168585057969069803543819716251836406354268857749487935999448022101675399157832915742580122203886319610333197703012731776377441104270755366765908757749755966519085000720273811035896143779250982872104641029943577732784227959184800998047440075924899454329273110278745441762089499664775308684379776840019513550867721387956356399922595877563304139184939302664786175869784117755982156322030903502733665805881773673946862854741040134156724276464826675963292155165994051193844493522499074163258207511015278874402198261815970168182119367679616463469328700450895177018353661492316238684257384031745588934518582803575318997464764450680777094144264756668144948021244251079691718808081554067326680062242143378736529411840553186016605530909759972581050697013271070135801781106556979712398187903249356442430276060787790669071096913736147713888986419631882553453209577904710650634858990596155067512659379875629313961622486547412313909330645365591385301376873318571557671479194149476323970926876904938104258804147135368582323162322865393498872345837987336231749715523842900053804894465444330233069619416741257165624510463590726309791222071995526724257970087281964172888529316972410332640822127768669766788542675710357871522251986588480569157524923160518133745999000446229680409702003893238922707736930055920344295233619531696229818629224563759906120562235802647373496540720813213823256130259992360918129697404642702901188826156730840029723348080741500446105458028756340280634953681172247659799012018829663107044137236764665756094034483935253273494467861436468721187400447506760070589829457972453791244913987670473688509611746998009608607560638247111990185545643306480087265814900529284652737897644459748194384057642166114166617860350275242695908094719455465956265822214115188380993940392447857805822111177025319198275863128277736909763293705020694333045390078719850249814855795152618081883726843027145766324182881434059193777434998872321766008680663662003366164290629717704052394335102597676124347003908892651796552241863265866003271495805703595621133562219012776300157940682221127441431397349463757909053194125973536792886350440406410986186282906859803359190970568395218171881645417777445697943878946875139744772847574499646514683382795522146706812796592624520313369868956845515983435015469542445622471613033163680276796009120391367737478931786128327038254678145671999211373430319180026865703794776959841999932309868799681983889832537269519220194888018934941630627568490150369012824388914718356250275440836915614182826703393859530782413326517438658922485542399638042554759720880120803166996585461779984813097418138106296983792553662003614308629380941167798936725108761478732518696642070370488080545162158613725489397368617086158648381111960418593486923258301598069288347535660987049776933071343485473957846778374783624320026892744198174099618048848489544908783457108493873933827601633523796113650472585443479020593173454650155983459495600215953660173612467300323584731686789513587637641014713803760689087404068511560224435279766101684539949667141036254513531351898924762797309566432225365005943525926997223446860968495273989120941321994426318191604435908723435134362915955882015527006166464555796611045269909196900555468760623930655118310502558873248900911110774922621280777720612532861442502081006736248875168852960198525992516200277177662348064867240818795473990814577124816176411821866058969556824851076781355963474544536750262192481018754794579589168061900268180368919383043019110655095755436805113985483466532910297243389469544030515872430764102046739389824938303545689946057466116127251047708624827774343000870753274418045202517112644144942359797204377037708255844050582635218433639504498170574846191362111569753940246955981183738840132217706216950778291882248213124560726471839938993429647195801467515957307255690923291598247753603123352627913607583263612685955075568677452901018859536311906422811201905791388522027608996097012426049233992612256301375248974724284185880418391656302633274036445063488938782447976336398265615241021606971864833395711923503465446994325592643446707446641853054704872419599862694139247610613038294437020028557072262522158772252695669190508676288337894919596722220639883646551470399776983415329114955362711337609136939835939339933112980184923817267758362528798739757191427021935828292962450850997129052487832529655639662117510067153450588813482484716190845195531934435568047155857741260158954950936645220587066537150423794545224898478113708654885228472124167237709723977507332679513610884120881690978558175306103072492432553626014582505005915538364256060591455121657094792907350080603864628123571907480666023115061380916940868972766354651407224471876328305017676404963643517592943466279382070775176804902829515653620738829764414920242426673783185573539283645817812591930189566747515470222361657713647697898512860199891110167191616759118321784000407933790552881315751078098439025673697316962716855619659051735084975099285025443653967248461856070017822431610360416386869512461725606993583630500884263154649670811012762436684208399593960999194467591162633862826922217768785904586550284472459962684361180311772735284420711959683575593594983595624440481710375998895411787065126170254407546639094823936364549033357065880653481789899049590588011391077725724138845923061292323566498840217247149458360521605040049820944781719552352737395068563148194670892953242675612636447102352791237810073445062907153168585891811423484215577378875403830286315868357023758506231674377872294360829052371199893051974990079006571334277549902465247407721120017816312438150647403366732732084511242708983001722550274628885491820128404358729054104845363683237361721586761425591613322580005208158634583313410362452849099704198660912527377402892589522733007445646848958649465819865750973456756854014746240910533019706499382977825432884011721017398541868201978039125577811197586732927551704314395889474381069382057069881674456912648082149444068920854832887501172760838298663729273243363388037339187242048392177896082757062983543970616634803255570011634872779921421764579564770791796595038913313169222890843623716261623503709237565073300294932163415465705973712838047610241701039947826378181265871844040440734529148299873983992778859595477547117807508280259772578396084891580816153178161536193401385783482709154943269373454258192187641768288664915503119289416238138737408610435444000695134005746341669036563499146833239572014275487427002805591112159158154134597654651791982337220954381438381004767574322578906782169602623624884430156168443193647875178871940973842555520365472518724847409817096317545384277759657696598392049816097989756709834237879846579697125644547681676577110403701693258106811557173594614226242812582469422559508491286033353062876233193762377706495764056947215422763311623878888926169278171626105399936832272434626469715370328923744011042509045490156565275613513757805541387136728405441522211077540187450158071721463019809332498131473795662286013973949752881203592533796063589995723117937596255788173482117918568515569701741507677245153395287985638475487698654226318195463911544314961008528956559589798902485194863824777885741549363095667794175784481004003447910546445213753477526779164770630260241587595581385230548852191432650264983482254289846594047272339259061515629726190587813843969784490935596773763218846259511122838876792248958379908930277295633253803510899892001664139155831250943360205867024361477656506204711705833673408065198754300396313785330263013356781741255517749365690325185936369521479778779902575766620611037156785989090774697979252115998891833885172415539126714700489222853638271380771861598725910900886181126336410057462259506347191511077488617971008259347534926992559469281310431716575559700313797102103883438228444152503432987551504283534210564343024842371320072534671509324078128008073818856735733552341799311436704938219138014367477511603882673553853540328507553079476143769470592706096102341017180947436973580952403273622242062967981420822631969158826570477853256340126882844468302249830140631918775000318685934777591823982356926935911880664724464478451326123181271898412653743247455154867038376844582013792747461052438990239976909813980386520679175852644602808260540574167014152962372709968472379885249830319539666030185166516745353694727542455142366046965334886511169443887455996961327899358565439648895951915144845654210366799333916203623413503625656563583603972754476574860473079349767906611732825339374863825369659637916210360129149914691128216557004110963458847838348456627590960387968948716158135355480405894242268412153015625570901941805101642056009483562879324452529535965400269084420382309910066510382507935882641057669550043251376031016583235230931272892089708067004560461779902295163218692184110241948821640089577650378780256752138002433929003611343897058650761693859132205423836379295326769925800665524280423538307514759008962648239394752312813279266614975919195870052779704999710437971175662788204570647909107783782835151515006020138933902476325570004556966145587015298167568960372445433586673998189791755074381741486690700491026303045424115812500558999804006542720954369977782759925124344980746513992930847192184713669607303614336338004854072759276643818576593086911391722117235966615495548587371820196237573278906455408656929021809624284786135436042573994055002272755890707887634188695276928753728383840565178166522087057868512703588018624200513526002107316236422486746234638750734154686086312604262981500101938738846228871835199326360274928481450988001632103130608314059596592196056720270627177789887942391453296049848874312386384925586378087976228237967584705924409403267337575851808092276759814087472188860683921209367403050408488379608103520129682695917971458040650042719791260904902857216688463196992250001514099602631347265428868415222630643391991444107153909419312560031610032220895331590533580812768946360313936173556104883994737204471407593356489809048750377855994385091515734977000971948666080036340464010132011747053595211724012384462166041795190189299870668615255269865381886251898672511518181482438591355903121144437104125197094270978617144449518228448035178369263529295096187006832320972924591532224398024432765276363237081502487132225572762975021166973685190942592377655441296579910843239498064361354641976674310209214293935078198148782425690508480181707889154501266419259049031449877142667402327485558093211143484118620619094928191281790800556495817022043540454140184871266266823343616523239706805570698495842513856719672944165698182167901137086267881379065470569701417749714730969129337314493257438337586883528577400030739249166366917644573974228756776688623006895816249405834785389179821628219227666947575022176805339462228564733370920677467265602523275123337192253761612789958392450772585460236955587281279547481462438682136444254254654280010015255810188423157918952369600493241425975305303660680720764752713482627087890739942289753576443460355348920917122658674349042494386286710580529538784866002258728988578806919985667581243565805933711882196008771978377467144115848957466157372676619704237878957683612394571140410208743322945398448562235405595484828546308859647066400655287713162609998227585326847618457738644357575976661094021979787031832229555372285607060069833669114779842751133302003284093859314268076459679294632063894597686591432861606155565109196445302513697980680247162137394982645334499734700888415576261419693798479586012593537518781969484515163895824370569708635459954920320887968963870463776355148202364816301884410706245767334504243346452001308741907801367732848923588155086684099649026820305237878719014717014312358651723975630704935555672440380630891488571809567019407809316124065136737204320700533115290339636570769494824612280356680853883007046234762560383061605428623721792771270955353358995335409202299866387423171495771584661021954879203073755705216416181925679424403612297431988604169032628507509214559185899836162976888191749646340543786512592045778463673659382123063243608653601366323085709724903414129487220629782073659753553725669123322969428147991674166356990789150770563957270750555755483351416301866904396734665122947555177802198146793975983414618426949487449603316417304799842313147292722009268187780216974141385899936343586415751428004408403603092893044080686564453033513630306641184802656534488205665003672394270056065502467355549207315389752663630203844602947667278630585283862946135409794293282580348385826929624056837583024793370044847567680230302758436976861614906015904045530565771237165484901998301132382614718389197686345822502541455082710694322952088669122583852382348203095615136207099353716997193319366298406587689850422049566698597163538470064583533185128479814777332757010221991713044546311474917123450743004958731484190805218382890431805718992632170423686498893853396549306690808939520665044328843824102400229996482973316385957289965623377159916466201566729798750532541168767941395315000857576565736749625227748683713886325044149837392600278681885750212904398066288083172737651336733634185151772454558452334795745196742133945750375942193700266493742782315274301868732335670435692697608361172326660332107458828809941732705420374231076047191441313058960986773089537910458438047146697171402882416323716202879383535783202579764483073902299215023847562549148655708874358703632414910740699710368809293463540544489437390657851021876884888541333860958711943084416174563685689907040396531258421860954678364314423214642486190792452094790060059865402467474828379229025836420717916292351147817759488991594208599530460522026900170853357276752874362423036281964642183707192911159484210482363244658489577593426319230442608498462921423937164542885266720427426115443578758511982233773815611609055141759259400172019530772644203931760426051512408041723526589391618397462652461045764175534648625102987838415148669760458859910997099269194947973565550345560104826450516647909291155810414521403720280504082805063988920624441345542816755608811466858147903628761577905313658104496448443658640471941515354626999310952421829130026134092472649486262790562029630892318807744148030343166007218815139566924481753823903494932758573513852824768729654707823281923640166656084099899316447670675400342184018096504887919177855306993236986735418131190718097510562649335604651046057710324775062874517602302931445500869795616833694404162132172345652732963709418506028411853807940332727003212628738714594908274488612850219503677398101676647237359844156649638635982780701009854064478025093794041451560470351670183652168735981080998658997060564433052342972746517789631905401420210050759939525126067179424239382041165511355603695546228133117108754216594800408733726689204691053625718604490299127368782586007303847681837472556063756809400439481487153441018977644746345611488086199514033879756027420490577826822696370630587571389015306432402752354761518547990579689623841295798585198327132348842550086758174264039567121302981206957252329499842382726456678128227647634579795248731422409859010774019987118807774778419939245224955368568563855274126783668194441506481139623555503430508817903725869683524303379101881102584315004892287126603971457039475382509870948208153321216665327713401264562433047201031413624279555585672183733235283710071763591242056651088066968894892473259511327809100427389126138449434317968026524257238064931343230030423112257490894823433451335772028388717496420095996891968582062256365873633054771760599574830006310794408034709258886135729352825108683647648555130532338871320207545661110111465073881554609798450216240690630846202189403607491057475589673551270065623873318209419407818023176980323338663835312116477419011818629134746347748185663048145625570896074955955240126037540224732962776038522000076223301631747566606368281518413358156895829400551240753837224224467755099746705865043654442308534403657099669399393765207052450016658193108247653362781605587474378178488514501211685418822781634162640735696782238661500781443355507000414548001559719173272170068693841917411809477436242491992444270931217738323264607124372917116578919963426283234015641790793387337726593078692864333909504599116031094880944138896078962075599774438494826634943335147675196157800208082842300925766226784509025378748209961321802972849008625205504756417015168560051806540648141457704951429187606549040999326772942568457093087256795816693891376082863058959390819351905067394057703162126668251020581807631110934125470820734623303522600008579271299440598447372682769335308782683502795738751634661582876339742863569885836187586209213655980833328342982173352881334296896469932695265630369648701371079527371687955110230875474055487364407075787173636329919663939169994238977348201038404232825756799102273657638219062267380444232451808875435340322470610981583872951727099244566592372902214675077859172024572815215499928717675830102488715617915780016674279390374866648100311328044701148779467118280262426409424447951815434310268677498170886822405805121961628953314053676860031953291303767378870611751234876378490392786755533354748869599433090743110039327558947422948455045352964240147093222195641107500250845523651531252492560232232679996153694452239479675545460832594513851723606146066098324690727561597414599862088446084561720725322327555172301684478022273265665060826172272591949484910254369216597779774831063747649674839009435111571535072020143866543131512899169967924930129448767373543593594674052996320946713805059103910698599114535550854725058886569560259757465732339058123022472529110469378727081618005497819466953433162237144154168191363710594113448919704773251494251305071003368224354939777732874394353132006102010557218826101362460485830208126245477857852606825306697038705500436052575835853355878123569151107881402384049206152425517745677458592977195991481880252965949821252388529818464080186832642044115320020738548744015099303210732329711357908497756159914984884625882318400415511875596701254789396608540973264920510221734588117759909303831515869081649832662766094966077262657058942174282628937482614431530563765112286249777038433804217121813474868359106533575832959427373945773492623457457320140938164617564732582509785122303842380836644094952952600516598824316104190085462437652208372686092727905843101606070978333456545498615543287370217331277614300813682618540353852985511651155185056826544314091488468218469422199652636851304159701725978324424563034286976811809463344167904674447757813362985944780958223598423742410199007907127582786474402702297490992884545354119433290487142291165467384492511651210453853844051159702015989843431613506659318515454549767920907418293341984744357353631315917618734315666357322112357109000706118224887053334560452296498556935031107426203165530193967173962220510034281757709561719348683645745633232502538975065004968810970880613692974660045169943439932334156899063312324691337393859066012941666831627346855462109568255421783618662407426784643287665706759145796525785396570257892316140392575550068137396515816973392020815012175561781050841944922670450978833468643870390066100768894565455233299717574842865361088876966341954168122229690916140198526021572351085182200254748198107013409477035126452554497484555872017159714945189737064932606805733999445387177628145836689988290625272036604774178220676973346940783080867785268601776627742233317979092298930434622823404160055742875213552237031616791395151298418515978880964760698797863233775693776482702238096179907445559165251726773896089209898383160179359835507555183593348378451354764677049519547275466599475988534344449471238820733265725650749751373082632951627221641851331735417703827486361785519725868578611300941273639837058361286210661710893558812746952611662259305134447153497737664497186516291701040838148095351078507932759292606814036092480716211960898022825624844205053898148645848883934293238551887677055482829683384460347131139845027902790803241273596736142821470493565115067914058377613295763737555830466867252851165833446706902882664633639264374071000961204410670710705770111811574072047034019495755603273217766630580445387822763562722550463019871109288059003256811372594946619558760777433011894634561638438038975098734271649359715863308228437502588926947512620140768430714561970238643891854527805715785877446654926559638301485295289717697096346272602087681291570132174358298586061522657202989043778366963855421538488453343709791306393704749326535052175596780485986292057858055015054408166762191678185746946950503014001993127960685822874328523368398130265049296250430662929666909348869015680590236037575071641919339355622649049085573326115622304594130933516561331492706184610996659354365542352539375872966086005969020658762925619019535869466426756846018111898411791448234510114907160560050864976854397152558426634631977689426691111636124134305595112829079407085030423652991590810451634614006755757020539231360391848640234859946384857704849685436231630637250527613350778241000698646867006000421366006390911351632495209204076045074398721404015981467325719631560456941073600073639784177903760341115705732723957372111486937297777879866561349141419290629911073867706455678864202764863252325875715916956929059876252797669666274727797194810684807016912180767685311396836480787583371613950576112437994088133001761911371117817631299040409282253754478286828764998237356947189318036271181967249677912456864177983194191808699926706986099442654269120111680012936913780996775540059769739374620397105294173422089845476114714728211374431636956814475632415663669647165539576922328396668958804054625571570948217712210324567772681259989824319104191503902515778290383437540967434957308698422976591478334112071758884825866522730857488066975575573264123290535565205291411825055294278720838556603006114766356938130069705765182752096766507047530479528141975660997269746176020540449462883660365945694214132215598548937557788955632705656676316205845961850133745216868973839087879969398694041626713086267459502766730834266650455257693466295892054458335644317554595595522853922284194492313632534684022361520738304244996291609969937558376319306764251167777210379353059594896612394638013813942006425918003704154459687577949291963626103232058715052309340710634399816014287370679178550686970807210830597643629582360138684167543054722367859818917316438211184013655414516570854687399863903141353742228301922888011088300124523096625177371918241221521320500547456339277538866759423962137246067180806795879682647953981701365357399834759294627406327690251707484975213629846440661071438986095990252067750889536527039615417426234723319093907257184478073429005357501853648632609402132652474724097771178234906748462465025259135378968334033871132838423352667825737046219385137876419298030665137330797252061024060854945738465322194521344401297116612178329824532357911113005600569235805125067111975793537459763332394606393986123214598040086195978885631356738692403288990478437584580092428984525105728425607513167445531106486417702384734363537133355773770729904662077466873012286845311549130035445028814067303565859062236743901532048648741835786920678407308757760616849438414903611900773508333822868288086555751265603850867064846167069377379720874698094919006898791344413729414281564653640897629221166394229766775382133445654314909705362972989960903786634554996006497489223723053920796159551448869173267577580499642823445200107042114953984440161890625453825737995107171798182134864758758010123963032883455004139604799040360829478497613243384542308448980283452343432545850955215085450878466167326770066254685392306899179141263153873993527248434094174630626870517775892504975649556254005791480928771414881033791110679178729711003016580403239586297493123081704224227623843283066514661891806855797327227380504892487083952414859944119205719110254666447078820563913206701005702103654257099199858734833052534951927606554760941259465111809195032731559266481719485306460782381671459813516209611541359952732938788831250912583111942901692097755899192596425968819848652546718845291459860602079216368750144775885581007034278298643029470622670754236266994837516220839641180525172657817521718746148406190612191498277492867429790756776927838142261978282104723245139766974630277015892721804895208474625053040532325767216454419659295879312154364147521046278567560779398104281325497328359863119037185621285412978981957680309076048035595734371010578671933485093111759887375689938723041903673185053885538888881248830872889138652147339178827974880950168851726585402493516418004093802134372786118505282936226044695348398768103858113428555590779813111863140507288571425117473169813263095354322035492756133315981490369806668695850174878471757576917042532557321807538939886954174383181664212626913891222663783114313707145341468191764130980832695182353797237742959435522239434614993105510458374383138474610553973596638327413859462947536455500572604653628585781484419507417274417935080676163246416100976931225396569273201895795379377732688553795107071642470188837281884267104780954649503326933544042772183158703105758854135793002338142498130695510175392353119322991873316413473302566855155780515336407723789614968392550578935469653018184601807737345731551752205784543077009202456059139342725925924055664414435394940646286433540317567255574104651851674107656456170366069616411701400204556380798605146515067272480929156697607506885303283590375533861341848567829761564821866484549729080196127050115260018326746238054140336027010063692225146089760662031429978953727219746574931737658733241163269101175638233302212753973814771569850886422202260130220498197884554649449069212561161683483737646353909777745092758110939728086340747821276405419753707355174579918998205284468305586610733002909923123286071658407377001108725154298466371240230864961807109967008897198695579211527871131409010476513551823075281636268642691055080966948637028443294047361649395508863414934873275623683521788619645539849822703523018771354234587838554952918715014273570581249067855438133984818589741274591819116400913779366472919045124894695979916057526391709789325579285621444122872521097756995529082772883550447682994079054675756281244283315799111481168780085590720510904903243620697367174456640948924749938586132805924292616848274356930383048717811615412520547112315129754052157194621383592474156354877985552940891846642243823402526701698245725168606664668854233995379651721441052963622979746317520585372984075965072210927124312071771302222118251592056056110699925781465778258355893159876666085664296045378751297745333495505210584888619193457365022931247434132571365302777273115544642297593321546349167641057852748819458404607716241792033959366021044606696796817116958824435667884513524551886435151325942674780881106969170200943908985677399042904626012325797675387799530586857190348950413945665761049771349045664656966969308384427817123318310933753150944152422131713004836053750869416642372215956550117617403537028902940337473818890890799244711062636940097098269577287882231153862687910884576310992125475969622483636985482409600985103807565219570965716209197235097367173871801938108222725759729271358840174934603002608247575087521037193481774199736347998875048548309185434111315399585986371879072878412025387259725567670016394043800486569568009114212195140771643366820382820092044120543520290107894553746014561140943148341070697076182060191279886781152654099563682728153837656579828848617200118303706798248890107083452106443775935132070001380039964422057348678497749752638973398166683945571749645548483787329994970696855804424699541302573796762210654174221701507159550186358545854655628456240213294129523709650704244363980071140062746365018454789016734448275496887843301927334909488784114731386648644572513175785640166335765452188634396853403534304695835111518694619364675067558917053823336451890768611941887590273097088613066168094259069443933072256092520619477163444054375145972954554760016123255580022849340696343873148995213005781342067752481755765198491834647555880546679285101204725876011551417333838468782128803942159907312929519323361923293713219516684009406488837613797101332517454012833792247104916043824453739582197576058001963145663590716214648549729756752374814217949232582761496434260593800218645608088143248148425870624356461730502535209772044002744248574952752522712153857270979028761476284570828433862919076798772189841159016089419406063236567238655528602892432695209544929957401053780119548370523984203342390175350713436222696414100123745519491272559262363083344352796793293345650977833839426661119912014287756347278712700816922740293038006388935301263217187526486876740117350142001015513313527925024897079729529597036425810896703511231629514440806416519294143555303213338319180791867236740661740751937995754856137366893690036306770940034935425749289925817518026710297089847463435103190524380135929925339647235477891960607253542899295920710586706765088777909468913189759603306150346172297008743469958319638065414219782111414071368160811397942929742467873210531167380734841723900032761831590827311015407814198655200461656900563265771452219990196291755236559865236912997178567583207518454567439235466297841272615339952239208207121387587660569857585845744679126520614845341830886069962019041176406891994842532577009368227195024599019030192452904661477237463979794332084415919856487751313771984771063292174276974063049125164075554666826207642172805821902962143740886800704309686573167439627902790667560705337483555859012616191885558289021607128014762333598478133404964671088471146994851180153325873511656536710283031491342368537853015773084779500790571234616948868922037686794774015932897829044820710956481973446524048396990227210216102471793318370899018055519370099695581530791188688615009315768245322115788574873124014368567711660083264419283295866698989375457446065058505228574039376932212686679495754744804454681394556111200922523763466976093183526376641951460537796432204989944820198359511349073782387234624000804567709588003466555631114557778794064161482160895234917190517961262559752244068395025819567097317332647372888755108299697898447643623440497531367372435402320052510912026020682183663309481591731094385592973246610595782078134759140805810141065611699800008269415045587612464531938443318427869145849159025842387637535523381855760986418208271554396692441441212682767363542133822553288324750408126238204811239003937070920328446737279932269006448056675348610259664075366453958888444248925672921860132741821569070559140010647744547040192706630513439852647861574898277113736077542304767971345575801981754878500830010004195439525873641004634858949613289807450788072951675405703397404058326021089376230557315535651332665345715064896284870849486438109148421790631513103223820311048704491858615320846959765827600789389639541433145184626067273059862236450134693977112572551089486907973903751416717520345913560948482165029736959077716325791509336144812545781317987519279463672790618131666812010435216242581970282307232183532956513346134812384828771801175693359607042529458734177737728878209701405608682691731272282666339241816494054164669015663473745062045345115225875785027202220158473306398360219058754135478988548556208144090499734407383105617665909088850285830137577783736477903815511933480600668575565945952615715486344986558675303668157020694567281593013184606374666377686718337643682860807667542849639146472187211851902710735715715882755545448420531256860352768098096270038486212382260847340882100361901293826410580738096190197646305442480357796810115729181034064647561145962923249757678655040877600383434119584667222130709740685486679903786049542629571756011338113231493213789051328714380292411076289489795318935793071749671954976528807375115185930137921625421654115823423306679726294886940904303798361836556400153327443050032927260785641229146607433018712936959050497139244286168495303904111180889892832171692126640986326503962568726651109139149023586957175711235438997439879946808675429720439147754261341559964071494596975560540998180957196533316825742346662611215792061710552572362789925618928437561409054826066290564894950382050514883076698145186264263578950522918007099255834157022313514068249039793707534595827813916189020253571925405373137033649404343749715021141951806170290675767869996714412179473475148241365533169749456033005227897484262888769712314257490048511928651418484621260459556907418149463399939655084957625545665481669838056582596983538217047742538321063100385781780711668737574192153599849831679085558799603549394156465401407157613693552127915106740647777145967324056650760612160649506607205800958601689632405560136559032985462967685544771516533496207465235741030423363565147700506292035555901266226531588674568381097464260761911130445628770840626815566523596794860943976261574999504804439935401922243001791285323877840163535590220312082550159082120215359083087269633783060371561891085599488874624991106029218980794971653310673209089271185372318983885231567225861377863141949994704183105830363658688805674771471606309691783228676648672102483054399367403355204488545564071479238159126955795188315157590365996679775103964273685046514320614353636151764215070930935678934315120112376678932541264037889057641148454639123811962143894591244322986402184391572477842184707184598102507527064032706076549380139453702001869408623249182762083991818577828357892354169566146424144694698064815370199640937264263961600592606858637797046188511516516711216990765108334997240729565870929994400906654509131053905684249583657152268887173510277033906598768020919659227084956564913919649942003874172166435489900766010427872346328560112304437401117779734223233485832886378147341431706471850091147341216715207232121196633659036174978111093712350293946071203395591153939766699982307440061340134123883908928516805191872734963472073727850704015279046246471917372507377035872977723577827784469798483901438747452923056066189133399944472288965156099987693460551398014893888688871245287610910270917283851857135226300492953502312885277398432974222528463762396197626596441591465938119435787524966829409516423663699709148249335319655841935546737764807535027695750377769882639402217578027722590631034545682276631503901567563456795016096102829774528131639449263683479232567003419973259117112546044837814596433457050705743812107933406532487313972367716620146295624989564258858112593862411032008602506224297358468650077121511520140598945162444999080071959329225854246374826522658079589296374299073102672145493786182580034987083430892431975429081112553699363153649669077413322848806415834678187756675651233631856457784883551197836231107453417991880619983581921438315387173663333179113888804065514925114631626390692786368371180829503447345399559533375145584367516830930411098975631409942388761021498818687788857129025583992546781483012031469892076173522421194781550869917166309088595232641853648504521120284096978550002159046413496614414567043128222925508221398633146815916330359453473090726333229520193952328561089627939994143111417501301005703043181626412076000391048063032168596807727674923009825491657473211264980399032517727057716357494700523893221667198780674180643578924116723752893277343557534138063432060077747535215377751624799138634732610694525513110010519308529615728361881226572927401879908698776615989788359079706968922865356419757190642886399410056138969500087454747088097880509033460498301740354109946961710569681883942627563568295063321737069786142916862029710353908860721900761486851228028089866387400221654813688383844718964141241399090085024979780976460560960156943386194266743741489032339354700512744909642435288430518412786298088318306830994174526269077021255764023711507744649373160772646275271673874950780170919093330111906307777119387553242055543923884355931353803243779951268492234546269261773796893789196797985941188962019448207316377817486692390662765442192247614986777019373887176590638052779412724598253850578734715366263752667436680043899476669779443791397168281849136628502102706691026900609948441845863110237941156047260003337488093973315102825248549201452112760487305806548854441630300210484182648363053779176016986556258197435868815957535536886094587400639803189659649524843422695944019517802324440561959467851493928246687208390724774277524685712667061334668553727156513281200535332704239097642102373331572404917319491349970892194182930953837749608345468738993285962954372074655510121012930068649781102019607839262156361260157626379715754669527075433618976373311425608484039485435171856326966952860937091961335968844913108943915019938886860736082017829551729708030177090523940604484977898035542290473325127154226062349245836481932919553067762524119453063829322724824664677045731702543798641120755986704408154966353695847355512018738663771406003753894775810529634148519377578140154480428082691803767516706914748297675211621572112190439336361415678975879528540896675065851327356021034845534310498043220234387409421801931381860691757573930276797450838041603742070051139531728940055630892820973160087661442416679122627130197418428869497298217747387591166445953079062479650603406050703317620862168605372478755866254658827546921254754035989837300493327702077577743868443013240022885430900016706978562073566727312423324616033371309174793451370684882479608281040343020890507822918957885283739643131260828881861213715642506882679539020306220018442744267876630724150354772425190941951462834680715425997594788468314244660840498262662966011597696254200195403653139968829316712923577654652027410641726010558399285510579554120315528767333726852381513056707596437792112549738017532393189039208497228055224796120429205703836072042194729686955842044554930856843525038300650323797953267143590080618272544081786840523538637200567578621828259161174432352228573698417213827206735576152112165557307731808831925250186102315128145619409155457181247040014236145640960223641802925329572496481390785937033650288909998557221618897465754191515738687274687459857669382110430921844366612685711212589995306486381715300112064317831469014161110989534078999949990316856390330460663639164326478128609108295547597220536875508446632254001154660518699111327747310778995843960836195939979780328288753092234607655326436919797255053164530981351733625799349453054633222232378605112679252727906043872799615679557807806777423887982831485228092241026423452437908044711311915408126461772049097222467463607151644261814998386869402218218313418435598924527247631078296314719553046643002024871542557332901180971466870510297811058709799562780772396954309872948419222475150390464119183061920219111617670497615689714980004042457677287999315524918759168943618311807448231417283841588794744365433127795526407051647750643661110340103577418023297940810668702649493725846054058611742954017299537969809994441516680378765231894293545185931054066901787163468707611425810526739112538745414249560984721551948405968180800306823490102004924988141806989020629241063145426266738442567566484246049008388682650819778837084279760756750491893592173793854603370238410047843810807806422078267416118517045552064595093544722687808397884112291271554875631259434267294995433710527536183794783807200237331775462779587528017349249240309067669387080645069362079306079907541811332584663005301524321679577743825202752027215444181901468113643808177278596882535257834581200022260696779883351023136929578772590451884495569310438711152168617594091202998625070725184869603566441151736367757398651798424766174075994295619672699517216351763611701494609294102218041213618809849344021650023623023752300157531719242438392376134387825126684466757937034054363089914820363973486302684190945850421183713872500373500217203461204796550009994620583707433245107994144313709311894961504251856377335029504150531532599007363984770293389391658315520886505206503492390595659320927708776290665761075731694645968756382301572922463886840718200137569888210048821307594890553375797139760923829870035418803915242481116944087369859268068191899093801884407723817730207732753537432422261755422730282193902821757982537744002305174455058455963700954918424773309759630008850168981869821711643193269095667333116288607621669848275924037950810993902790187720684511501182131233794851643457442683049034012414900694880510476377821024895076516473135855656321690532598244309780864923671451569722623018060403522618999413066714131595564913962402955902855968852891302259349986089351856827158295979748283478524811628229361147530136814335521202361246677287089738288688561597790445445118574836184470470158214223579413040445531786678226120817725690564757612344906697179600895354722898159951202973221760137155985527701659284455083029252091819873296585481505719548262236451166160535010056973196097152671603636650464420265520113399194474612169837430837540921556396375568680421524688740372143167150135162929180481149862866253415460036116203147012267114322183933855669605159688647857009973036902780843024218806622717261366333161210188946754661170500259835259499755236093816170853578709491097313307518595526859845723450938778377216723126388945674121644368320857130680755888969457071094713358181696419798839074035189168557452455637234208882086295068522201998373156502684440812432113975218659216652370645711324193471659131464378458122084475409617039171441774474706719176809054152697731888457029941349728776664308814038671607449441942369843740671279039853825200507060681787753179903959813571122022335359188083160031116420753800096161761606319990004487994638231015089911450308042453260276860141721855655149433318522332402307267467336781681044336725489460154927303701139742309320583687749119716073888633072568186023480893049688975930723407017108495803307557942582598874206671511040803822360495037987821151578940368081125449340919859397199490380224358868785748333860987185838657379296316706486808390125786790738506231663534186782534416000117637033509453717855686271113525584201845968122213415441064506507534229389691820427768570449538188687624403322804328180236437603672487006853826773846594286288408978427017032990793039761954985272804376869655341883096258259650830869456740966314555540894614228633687265254220775566328545399097628427990107564650726085534668556127015634312579844740266885739540173462288878344104807827402117674502143727963630425266892496556554505329020315430101020128538996345098576487528645322388707090072704556513856131721086295290385509997295863279365191413379786728729174657066926495338481707241013907040644135741938207500348704369076160157655090560012402823322682846425750520020235075485095901841579798445110882007953284854790946210606043718082894069310353500073460490794290526681266151286113248908365243274883610011648577712487519988394201351849465337857304906805891129905856358019547615237390369536221095537080490117361002307037485476130438553465761166284778012810097450047534162884352683279308597716345965897692357909287244910022992165464556010942551904565850700085094046745358681039363712654219721681715991106533189385296135325628366273856234990672340649663462725957851422427066261388783643961190351354518351665301149506092019253025045767219766125110208254824549439662997946012646625803444026796080578943152375973982161168986788987945559799264895411449036542325284061220066386026006565307518098064999368720358561693323745405524660347748626804233887095409460267742355036271523606524285170775211500293581912177000001697662058901828524481172048348379453579009073992369221210856026433299769676526369130365346224905737325348494927583309920340676173820320726474749448867783151993629105879214890460755442425486984557952506920372624423993621380859645450322780908320727729837812036643148148511871620576704167737740044268334761087358008923900691454752941545385414422204563464353420942029171473750865683545454037174895307212310128286288599432822115091076657465454656841492097234306259368897970741351924163306531793171463108987512642487829966320383269829902080619087281644915060686497282147817881222101285761880822529316175788232906106042472357231186841230724717339539420110399715437555448555488204033751321587502254881600961385986035237847110042728390900232813946370723418460322110139717213500018298959409856187664664435451365659886019065795395674768313775579146702942285571921260168592986054104066439442349179665529431774003660353883745485557390683265820999051115749549614028864380082128317464491994282333790779580283350645227713598645638316721861821029033023573481894039926178531466408466877081603715835815687685403235596235074227214953500815660863492474467465808939225632097585837919150948385561363146586900634227749955528379650846341311678456987136900028844936660823594205230976836124580967369916570874793854580189877948743457837846693225521135142689039976219975590137428245209829364948031058859631346628697255473156952568364367261924176600964853554921623003702482347026970339288948107801514376189186361820065921357925075910066279826574326874804083524989989769294391070293142660607978931084997567073543007222285142415474247315819733800705534265092862646393033607819392695929897024086501586732668594348628949858285873235388321211446638646819687152652276136892587744361913476861713995337809518826064304617310231465228009767287593916489869499007845961268408751165501554423388136184877787919997669999943586721962374713333198926654767429965521613599813257851827617620383001510989886362945909456396657415313778834626303919279162574310542248462119522876111244780039866868946883040857662207519141681880450305204986588928557029292157741122887727418088156783274427399985055102729430245606399870595799273471514122157670070229319967621708980852273895073716276615955812820359206081290395156615229227233714937695923003840237205098176328361301649209408968737489525169903217660525765270673008396715369603367063978055459191501020025584431814718308443834804197559213738512995996289563637029960927355681718128280453072819383310842441045355444639874122638988432979806836112436414539690872804677952846303695482890291895685032558282650283962423948342456424560115794644265661569377854584059924548570868688699981245115587415446550748120473843345636064175152961600800564096296705499401943146833751587338182154597606816023298094609233060804702762260497052573308978071280090587674251350865730047543188326129236013632869253546600024478568502315660917199784158355112759821953476405735169949453978220282275850384914259973164633500842405477249288594317665112205873283688027222178029641715097663041104838072258358239668294534107304182809442337995968674752504361970781931653294498999056078219962667909307915210362817180435331425176985517822021028499305308671840904087507651306084839950620454769417713360705257398266541797080471565589582610831186262078655857777680112623883547236234398412593741005967935892149217376831972345819542626174161513545091538771981578476981492095368818469238218322256407813641046350727364278510086164779013494136335643498299827988603087101097915698038740593496413578191096639774886099846071417852551429177824109119365326565954559041928276805945874387779986883091508822365756340089617154876294985683467470106152403989554374135968313564082518024548937472416565829557628164847739824026424681273107450813336651077589096913596035354219567493503055828373253649691685136667402052216267680617535283847295777060361226133225852321485069588689515401249350328702374991201216059017946687482456111987554009810829998026413110349883486279919770007273593327550395634906278551511192077199680666900665781794889546530897050291454769641157430076232916732886930690780413516113668542637560911968349115117192088906612496873114659935719013980042682102583968045297711341901546226829091848160618459112407964853485310530271590725609831716406608058786685727140925918916233093358170275326090573603391567467048616076728172363412998623796018150984734028981843056847325327407839739115622073339652844267487405432956565481114851811239926667316523536680523952256853952237117266934160645946360285605745064409425772226644795229540118930572906799281675633033149587049567193589143539004100323687945394356915583878866373693365751577773340588951160458903447646221573302027991479444761108594941721256834994348363281814286545368188105986000744655041467793201475213365975857449951014074130084081032625327024952520833279185713879811838700536338475087825693644527976223430281439677761436996901391717578719854923299568060111703503385311094939094749253389822919243117741777813336034617104313667051512293484976412864892207358731680227173316926354005811518337728304762140479536212749446744669815971300402761586118973532304141924731935558807752411905837524375072444271241759600953185553553208951108128562185659087567408626112502566522836451775450411763670548116355290572289706172046860486809435505958396008478463536106929376449736087880369393617963227357089727313384549586057167924318968001606670848817424953575701034196936660796840453376706244101647857105412085365871192994272526090290485636032156540534407035791046421644467673441683544538498188155894935568473852533161471679133503613914365832896762508975690345070814702972405176999763277326265484341687721102303416117148412011506024319056092220119914226158563411796521738194017109718261652712713340583369492333763230978301773693712347741208310214697886846387404871946165783987035853625722873628668827614538890913771522997712271917856786220226431584909798540542075639198924349491455729459506517321555937896548424443298119319740745938544245574042967500227710118151375115958076499118065710032424093399253177711858293086595741725486267792860213336927867106623764808218547328743514887065189021600017268073321663758551160995497527191546082057678952245753686330855932492797372539298360111565804399721387180153959087925498067720821346993417621903565979477627080736088293215216709382273607725854982793483709261041845686074884372798344870998591153666470344098398341400744271375413729780293821299378901650092074572719945972171393011039323318726340725761012539499208852500102424874814135379070085299796674579270302613173996761168600845259334326648712008559810598074983133306632816118450152761796543135785172504260333325917661006015615271726280555590090216906535714698690929467942703402897348238989213001017981358950249218907793790135269199930255760531817060927180425410400365932949704149336995212720707910060436122166518168828714929637461957715257184583851794912247239135386445993803129477727962051078115232342482875552632330003889050043177123895299898322395254207660901662937716717120352174258527685691693406985418515981395097244099347100571903067157144198710255108969665984132646922639864258127035212548793103062080192273576264361435046145022435357201460985174561582758616671831782275258611190110241146712695927590871959227621186516289703489600788721642906185334787766984278209309029611516207151659749617151026062123873474957055596563062300891250819217809308845895276740504511792685902509463828110691495607565910483512498702703412770749004651163376663123951579818182290740771557050363183089399937450643108196556574674237163311236353531055396209324373522971580044805292522233308824940000800571587290941840888632626205681066377120054946412804351689883465232147746440196560509937630178852224305919228411836640017205684786750867499678756524465946660261458477067927123661826911386353668154827685108474633805636229187298501595321009845167633943102614489467864070779518550666069239024516067952444368199005132557670810376562023856121936027783169938511727922728861455041813353388360379360108933365963392796355333638434841552117548640682376985495824708629729222770384774672897168446505457376657994354332552348891787728085406448618200492398874919194753111536633980182653543809865456525684906973666524870559838937365170802484817830529075553564705747476602865896664490673117196470618803308745888366699491122169891335740358679431160272383925540678814499905900749117016863454775701829096441791472422654625138049752668330836327282765833314792517202470142296650723132734018421186213688173820582037709648981758813964678969061720263153978809495202050907127079735973222125305123397334322425854732773512132764293575178058538198532017916040625762538227711474525006274648787467702759887591072654251915765254653433124506735677817995347718684711574057682281684998830937202482923056141073529502657834328686921695178971205556359702387427602626779211614636335712267411889829467212434262369192726071698959479005389520601703421374920205318123172744339424098008044176186898565238546936333604068162630332947219094692120559140728607727653941637691799401309655668966132267945691180306104243220474511500827017622131201026993682675117263505984504337265817292482298208774524183021151142313826792502878941368576199486281298965786799807349475436890466412413959451986871510830433013880518139447388491455691202279104201121120625490669706081588950192364902189470428633286570901285214001814313001919240751166020694301395009411275421226681082858136200926559862552937679678921191429846851164791379047124605547917371013197611190352487983629604533986407620877858353708885061839482161121915465916991041739813754168526085809876533393578983694031509516425477567158743392442445277148170113883128415275919482172041135741280946554671357314599135867212062914344956253142555493360159679348840940426241824581647437689376218251413219761742558248585686920610781720773848745222615518007257441707273389460113756840923848945981699542505252709400574042956341758879418401181740504140776405826506544052247983575879961975654949511802483206373356940671177126347812956210782890719287389284976779377187306209406661471170558901774943175217469655860136602214865730061817009359544586230380038412201403461411039863003365426471329700560941818877913974375862397160533180952963845495075798992806222536351109302486501980643626716070236232519158583573199581902476747296105589393334472442763782941434971075725460959423438236761671553841987209775030783817372994890156996665480124574520397517028283675583429825413721989419355567715819103810061221540997232590734802936109429061000949131696970698227244668096790861163945037348643480232372688386979628635629414998634500471092945193255878477902645797287146884458494361991583680362921210003223458609987385310163778102350342754237792593924318860581236735483513622937617114224132337618256114850678065521802200494465503539653538482809321225576317281668666604324719531312434324317699681326988705104774418011820193129507287512279831530476103714733707593330185620380359161827102935439063277690324622945231969325028865163112942761065497879580167614504416437907445560903979279692458489758794818686366158057042341180870754577454087029646988960495446075689796891689746514661060285312627278982285652609624386065652219075145942610938992434119869754604291534603985424544088116951846605087697527129260227671271363361151912164564055963643496507515602212488718192558665732409616929611146596040331107646237353205853260633916632289971021788959207506023497375952985421077495850070340367333282269343325507368046008975082506187832468684752460767731998203990944018241844401487501161854351141556009118268953345557441871547631260018621723085878797458912660288441834855456376201168293519366428766786314213722943116286344599150657760373517288859955502938113095466209893802262853148699258991110608081407038587176993152206386156719431769919999578306172325797849213471435295726256945675468969579867659615034512480971071308174932988469212762944320480278796507690460073231088287681567014880155869547767976119845836418517720224152429534486642446704026824315247765937469682222864667009975655295814873159171199632466083093012146542124317013277748572174846446710749845534436657802502078589884693501956073927376229606155822254721457016258555520893708101472373715318385397069405661516659661735978901960353102314083954864248634481144614210298583294094216261974801859893860268691308966993644411694314791418031344888765111769339225797453307179364369144995701095063501171994237328113542077060916091026555867880092847777412085346626564259828815128766652635785267630096797989887146040811876827791805146880820756076834109206697677018872034239351752691294158725702447554639243606611497310735179158617422995523360134190365868586720107380464100918132573783440353240684065982635627880775543925361925000906519306015017760874603736165105078450713395109766310228071439351272085006623772588359234745675679335443668410836831005538951404757082881704133574199666719222002136540729907376127814674905551373401966144895560350829112164518824225185633166664159726625122951588948209618555749414420209648963341181021823406803173273355753915854840905483983705885749668301322896208717746800720877893304494311425891898916351970088295465784452895112979597556088525739062750251481099951758225980990024274927606295669821992084384627939193353336729800030629017856138300921195434772184623657663693814529108021255854681276027057389562289469293378738983669640363736705593344464744060373602755715830618807797706619993324402559709300774394800585161651135408873141497396151325124504992590173991683803382365732756726009757328872849381120626677070733985812474844198912729286416729316792037761742785082986773635073463851851877992632801414443940701560917244024855584686276546528375239778971400653698474609343899417096863817445447098921745616433647983020236033295982108444418922088992511377498780621728037400617903619092937970649828482336727002488158400557154731494915996821000123529202677887753864302679929607042277326976603347902875842333941575582709211819564417362780908668975199731861073151765249965849276587530698157475150733189654556297915282559752056648526918541734948746052890985348576771775465956004172103126523105325789901746960466317249436720883835985841646911296473481575604241968405724458854515337887664545355189797650782501266295639366789407564556941181461177591716943996824060932800635567895801204869523285576998491265550118582047183479442476466179707948669784288543826816154306770352180628225753788006904000752910615332705545041628774588131530917574413729303117456339499232320989633904293240432191421764223167530126476835797687271061832280680509552729470851864981440840739820496823233689333902644579202914326470831294866730705157795102105970124080655890128652711084046877622969099143669154076396190291861466466697912612826474006831932191550777130375589753098596900041422677479329033434825136677976623265109487432675083699531408614250797344190142415969488985461980526579689970712393236762462801275553772897595415723894469839452323944612847093430141620025397926826984313861574637118295942815688517503223252945670530856832464361902122198492276536404367199238488999291045574615368970767706956108940033013294920016002701359950756664134237229936793013979790312078289521836624545906893645613963862097216779543324955590465451649106443579313693201807835167379180323718732772819084826769753087978220436387479867884209508131189549966533718823723425778953298409726299031162426176512757468070828058376771738498835014680597315263144855706017222341096170357158608980416034490720471195427442898411001619755037449872042318237749897511401175225867700919720711981375910676218925186033276964275419472027471731482829537648509220890134419850262803838310239935534907764635081426237514137025422060649272216967369958046419774947879016712823635028160824199494478699680438291691186785811217142556464307308487503193515985118922444213416543880904432593852499313707837112184340962002133431746346792170015833178388823493219074644242641770616455378468684246747462683489567886731815630045168997434390575843946688234718220090358776806938099000668520821045663046173765351469806257445492798813738677454797452852931996165342969251467081990392287539679234608424723665780729369805360516185077263789310513441505560843810274936995969856961701824581753379658181182648145625433206893476353298324520593288909637077553434190172258811909289738311949466894577409827041405359255857653213276840386556595470646993083335719350157766158036663100868452869358813908736975642974087827837069513179484862275050795158182946488755118878693790282937926017589314549122477664525832346333261701248078583450333876359800614020361161977552835658918521907358499267619810180018718053549740031872554356542718618182604299728680054974926008795242505919703816537456296441210757587189741589492420820988739515706372839204810343236300799272919454414143884728900508674896803613538120767110795918411108978330448393336316584769250349188262991846310679670524457284517350052260020249849089768793324659110227231910827691163281895275542248751863985032081960545169440070905675534438027072989588255219514675444533840641509171376823425764286381000112522245350349503391073755664126627831363459155755268308773120612253527405534420015185820536309512464633462364235759159223655170273166793699849272942719306316382003922249493707787211610729252820011245314820660700202455606516767820462771376607499936890932012712316158539038196751340040200909771904030502942099145711487754835339943301899795297337657459747353687831186754944132450472672217367209598391277821398028752339597330774836560091885054030867914735723662557335781062528757461182139965615388011313028091915097703758691435810252321845574778347541517853438407158117154877544129498807315536853161693234821050882105108292207584854244577311280228866065037446017455420626481509371994262177900181595938657548211328835484710604654553060851164609916808527013569579371724783916448408156802984774188374145172675216120298191667154793534249031531838861143695775269515043769171856466954530105246624723954091702305115377731001153743316955670277012538490568576130265285544261395546474970948237938459883657670876220454062381857173726035934030340411750849536167458126724262321148738159873453532387979415245404903823318555794931198775210553229032906849272121102955955556814593976167855464560959166764727628137279862216442926046038889995066413043288209676032956618291983942102703988852042377492727022086696374927167018959227725834847317902106547282169553105918973285413503251172323583970828785321714575417608261712766636621955119108786105512759413847826215282091910610924287291162683777535941609843279004838100140078906404947605568772362496378242788764010970987284643442806985225101084069769308972409316346292850950053635103820515370730835202809906930126087361350499571515146287486928856521596045190216089348448264394156310134125073552010439134261703723060970049362192997213295932560705477082135339000372606435576557436464853583273661119172164986798867822701427389054620482562269672054006067422712152578473781291519031851332337112715094001921663126703483121175793474969179181717289698408253288415231460052858973936854306337792280817819839571399047653399518997994664573097715723456494844743031030111701104637817870697841158874528932837114578380682202776285775846241381209632220095866191355960249117108412769052195860375743467237191339431763850272345690489176167898774052339123021235433524570171048317234761556794562312247968433984371207344716156063371704224727834280163274317109579679802585714589775998890081188167378425479594828296450567961829878170824676405396547707525037750882950512717905199262259422752028061607791635224574515021641180323976887179646050596624379781130046489372955687598112410390414536204172125249067094565642173188264324904327808085877001818002633481090408719670326734990595321475002651784699614027678890735498634434793550145984313074341111304155853353397165715758906203136878281827210330430298701371762977827223154170385815297486568852919195281475792157814623247491685095108930482951583677543576032018564584794726224431681990207887082087422774049403045528282693996091812908764458434843995414510768800640688772330601722880948781123169815255351499257339494445290657187739601010331477060823992821686946393658290945867480531840344886415881383619251285829348720488244953411094376509858819953851200595867942047706062224581798988713541864579253546969430222805504579904599609362499224084609748588457050905527852207992717840633947575445787618330268685740616624721529354249212265770343572759569522435378188318065781114088078377721919141160927444094222847469224243635405284343162175623433842908101391796794035289214518298094591433627053362628080260858305745593061795891775890588759175270866826363298620943032244946718159383070160559450117058623393168352356112352350409422484036189198566177741829911969002856115202687924591697910570073656795099551204255616660847411328886585075030913554674469688589337058702022579581145205135053703657917068296988936646708227592509438156405664984823223440286649629299935976714342074991616287855262870480042302828207808882499106313261249201547561127232554079731266347736328352088422638149098093432771391886851219660466905452070881802850386133826665453098152283145728402176274307316195026456893691300026809017671774892292346960062235250408437182015161801796117731335798319349829217610630400388703760021545097284627435650634649475698894492559719811751057866512135184116013786490296935011461323319917669912622253308931282320192561141734693452064874397548322028431736188771054899705089960212972247867858054953265706987197227263635472393579961383015352162341227162374658856074291899899729435333569791656785007092032966124299952970688926429918532002530268763762990318095100559345225059019037849666353132453876504284174377196361746172329954730702747034823721874691764766672714260368342731258902362577121638835388979849713970215707570006075847188883971896487466882002370203802815445387364265840963199069522868632878843121903816826564062620127015095270549503112931477032106068487210568147009405684472027643439905952993832012613926507660801478791242800614870576034510253683698393629040802126320004086432614483962709064646410622887204576297295605874522195972940466684470364951754114081758350827207929133685201112395914195458201297402009597775233849407957563080728447794117594902680589354106646684616861036452186178201923800457060336809598073136175311535402194138239748058972864464904583540461084380092119155465919996424864161946727934834352072547111291722728453377347227451251917195187345822356059856308733019615067066277114565163073163606926777775796378523480326280070532766707295842258187436565540815170769867555324257372916184444179016564713628347300881874392641239372307395555975453409907564259051803877553346583979512528740518146258386735373976192204149346201665974773242890931607367434114887705766249168735527609711266666185607111761128641253726344743674341849934625724710012042781395824858111099141287800022113888902089358094454001199412433623705163170075112381040751456371089318261215126531713297419273981586323432113870126346327093095176347760306991929546356864112981871972235984203013263273837160282382909936225251596292480841670758207133201229941528648192884147716939783799504375138042789762525147700360418067708097984174047102856933870471625526496688315580819186485738234836631151070782800378607090361129136342838726023796652605094946013715337850593126101526240210566586259625859737041886242626735493829738935022633275510876552320314353979238355408568477681607886896266769222556319544386971747362304548090306700557514436465087418679327735054255535871620361888985197482930414040225251458675824307716598360913227182199854309016853887668621133216673606554762848260380707202820345862947403689895516334962320445260632569623097020935376177200275662152037615683600659210159666730801745072211608848908949457706688978006120872946413366497821275327868143237337767942843035564796795838262381723496838017717800378760038549568056274043132494302608374294644279153553144907625826417102612677514103569647118889936445028865159442720708596167759840636448401943160827500915903227504231076590137689077109509748957303952305179348417766099140471094440394286919436293287242699973696881340236898219806192953220492261965471011921083019526163130709026332404844594119541896670712462010622376457362628619370426785973769601849219532785610194111984519099320803530851378565553274202122185038849180942362811994849060008830608188542381536620932382533475726784852154560156377574985172545786051583928528145105244506686561178008785538566986618303917227398297876390872437565418800357009169647404428093918782747636522058509339929174813953989024127340871261006322402725338904462154416105186453003924138477916730248462603355080127946273696972175602854202636585424011971372451514067372392688754500049208872465669763837880460182762792971563029322077285309719071104077245204857659946332599184213314778581449940235442372434843107435326779484570751863416510045140582046657441901436318691724108528578256018352068072402694489526487128271186571814714881499567903140584018485525600678141986853051272627898364369015954677723331822197512135014677024431190298923805884462233448919249833217468473899546974228554472861510188277115424072248115588247701251952605601860165413960392663920642532564501531539616034026788612733576647364910988516582821090878955137412079116032451481410555047900042011148312275002430970290914010116631623961304684962023271173390529819015136516830552768548168611891904269706670768515691729767820248995684587582395406333769097610716322339395056533565319709517186568098059907591080811443297836228958206268824959342618580255965421671919150873880875310035137122144238837731770738192895168433716336131047741188025069719030828504063311826425955719970023326404753432181794828435520037664313512019618013001600099342369954554042512974377194861490138530329158404138440013952895603918334434112999345543795854967181110669177272041557898688198454976789866230934077662113271405566123689786136830661387816699801979784148586966722797937454211046133881367288255441058238272936329014945756358618258212068851351713836484659420498226205073335929390951107374932159803000328378493812208161822665061487050325150852243396025486834308439689535055357849272400560887858134882590834000157183924655438524553802088526385893582199575599504570349984745265029560453820644682083109784346764298717097077616532765339935896950951635662400340128016263113982130358683095202229542128778287638495625131121946723359467234168433700222071413675404813191198404594440327890206167221859875657106475391100832259372359676014184545670196448916295026452760930256110774667891819579389917014237652292193955004870542077789256941856918412428741300704804833642058744627049220100513658802585531482594903758140753547223941075744879615750982904214058973557654800414249061125269186203800329535642321180483526405678502110669823177019144346423684493635963375529291718877757938722133550629639683816586863255951779800263726589094525999347389819514619715926106452673435766411776065623849932808468643819683003565541501506293965404268155420821471401015107447627720719469292335744487260652597444603481129197377382683056062625195943760696570139374768811799303717148946261045982069554060090666006674383780716435148172671479281908722816669306670625308729993991273559833457883725551193851500019313387199041825008108315408237844296433233201975627662089598418381020790937769742512603877125805120896770206787052402713223714775834825353097656056673444448274374202066701491583105707264506096291099116842689228904957118548739068501057823364797901746204375352884289229703401977492579056092471173447528065292038535591496952553592470272244470628408086880163597433103547308471942468369617753561795972856450171327121199809468689187746860936914361755067689196874525846865872910543790750489168653934014735366665411685013750245043307831122166084056694561896346193643683563740671344095731898908888184645072318360354234796650022939267101252757904570835593128270200930541896580190414480859158892514850361245424029558478458665813551937217429085855585056390831554938885685087553087913041129633565600494788073660095991152793247822768983986524944206912051646510999822571008435857776475045490291470624049010326611211442505737615549890746558036079261254602375527374708560842628354396963659215731597575874588692409002534727934284504940600576266315097643472973223679033049330869373125025523568111412700282772707341667723775595081248968574351678020797285260227230713973916050601515828427991974882870937555161340708889966597584425909516706629064942647738679968041452472239573552167132227865014975868251838010586324278334954699282884346668808290556129650923229257695805421046142518492804133108486929986031674897488052128905481987027227444429930277296977012842080748548175612782432054054899241273272954634609598128180253338006819803044181317345528956274197930460747981415403082996019694115737632281647954351357043694565180199351517353591351084290034047290213817815732365082578270895019975508087375669357991204947487915494655195065149833866969371469134583034756022538397335294900439957481097825289272789771552831875435542783204410780757807564828568768539531246627355651040956990001295899700930008155705668574746362951865293470457156678810391665728508158317057947566485918855899844456891112848672056482014764553925391482420562651757834963041279154487171437569440676103262094924743004497490569360285990197661485372094727885864485527611894754432961238078506212926263925066759314224199950758277368564371775979729198342468727881798748357863821958391480510845072555481721948616733373779959369454418880829766068862526696604056027876361798128389491262687034372522550020577397292835801388828195519142628172231186673484704413780553252585461879240728950771577935780511516770603151950309971336520519318819755873215172386994576854881340489301895657126867433742609807475166347394461112048809289543488273484614903616313835541060434657005164027111237219477331558890760346891081653119873282784060840787057518650917350779431983609517023165794895267955218059357932086487910865624767810917790507066747088347820227205031897898846840738315109403814046053373885019794428683885908066752477129497206438608364248236131067855773659147082185023700725682892230754328340245476996104164549571815654737854198567630472318867609585106792960721612923772417358550482289852144466043791286819570646668675265540126196137823860216598037299446126988737742944146886963361465756336514949465100834060994354940745855929117112984758643270503955713703821591196991714999145565279712322834180251705384712561010552956181892599923584353923575407813957586604947420305263007924411466493678250224480072460086375006004411146345666952199293593483432364005614415411038048016932859492674386678551125591523728958418841230432065701782500409875153307621961080857410838146056629613203059502538456058682629362020884418835749668552478835348814389538197643937525856725675663476104148749866202934745731021738966691974532716648919327404620639586094862176997379454392832282820693577835978336294320472556811885152370136961092435372204750462130362008650534281619183243197263603381655210233834834147422076172329416382207228160661923171934332791619843543199121581580854542369035917828078558534786355671852727020953622844259262006340728741754587098898777778811433398150675859209627100425767149230218463167099676074279164045014138462573134987989101693283242778957275972174272819838744980623588378009419868527404491357922342465143591619041249901860507459293097704219166653385858239231917498913014021609489086603001466428929667501548218522397825744675427830794907026565947928295904960148637395139453814360190245758598597204846938849423377856925872172001931805940839344479081516594717960281042178498718422926033045345323508430024149404425602290339454175781838187811573043000810124020719299442594238913682563618439565933935032911179192253516923120147172075035596619192878649132161075628009937934106229771234472081854148099522487971384840657783938658914825848991042768031303435834454658082690958601457498226950645590974119808189686259459778048019824550086416918206667758928907373969546505955320712434761743539337308192707993109965730380476420257845763076548854933856719981685276508737046334642116262604039448371598059634694990198761782800722228921309945360573475013907219719569550136383312255143191509962308432477311665963407921812807032873489476172840495295870980613987484107112788768533677641876537078572474275973383243364313917990031844685543894322895719356302028228157879275266595988509707592312397144059595678084726552724088766590192777722198819257401413531363924250130252938795229828094124465298840148738775083271041810378316354486312137195083683596655493100596069035381823750385545245688538370176277738509145714619740871683682963048543822328716236153687159436302515389469488359101037439248570244450128190033252049226764380588256940426066748936276076654504085396145441590723482156879450320195778273394652582001976818157528262117335651087421879244778809540463947446145996199521195409750273702450551032122023713619639774552747271178056408819598293404896424028861644526675046633905569700742096864427447283294514759243316413786790671989236994947933123263861092001925054935481321005770471375833195846506202032934915745982001894230115656625859484543795519871044851615960379871812975796482277054524836238604395471699696801366807293911129605237678595108223024245339849661901353214634221613098866106976689391141660826049187273260005671805390143145562510221915373244286091007496646392805246734837645952896198548953594717628809876277926738214100312696119256275715619756806181917626703094026722149342822216451894175463122113481904546617782281778171792477561524866558052793635194397627677830758616171110277696865144474741988231973389417881448969849632028670726832606645287254490386952510092912875407054689184778723751572256802102491741328055312802783312108070749471795148063717569283833931353865729808755578772073152984187289543012301865152947037278733531522317432244693255736791631867927522622379701214275489596962433852325526604648237846559300799450535856749068225203655867960836107444390496269964418400108849437687556765884174729283027537144484727178829075173055697579515614196056028002533383684985935455965708893311375785863874347109016293554923870005939728858840828328568887348206245878038861884458694076498635432080888502858985722024288083351025008501327002921904116177051867711157113305708914465623031685832693736522044161553213025401712396390431709058838431465087539758583754234224481554441933646448504753261879659767374628536755410798941082720361895495469013343080176156239473293060374486448288178432272639422042020543084317201962829054353376586269617952040871842530523708431207320840523148947046775757926676292385153495600971817269906707190336278909642556514125032354060935533418371329858148692926467898431260931790157827305476959052272707388826448676765781579187759711420939847533903497005443108798342994855571277417742537168152216056790714081651094863445780143586215537705247809747212938850426828918993163172864707179033988796685718162499206707380378446802504855768364133013009315901001268562684100626058775619335868600384226122075398019496894840192568222831610450711739073355460236573874576146018293731069664127687736857849535356413845408339866001207889961296522908532621401940391264429019599203656945949757620733912051371756323979965699218544493394246761852324783166184552317190365788834094513076511844343805333862013649992716186780550994473622533030677316212233378425678567253092752736091603919173324671942425833996715404584379099044041319540243226728439062340750957685027131021401440482611327397671048068632201151044351265429049509653510650220862057274058496950685270989151271730117991113500664912215947186192453819317970478190551963945278927885580258422968927101534451817880013632205703930755993947893809545518485355116206061388726829536911044936738225072225266630871048192979986261712761113700253241833486575371159326473315909780851061953214145421272813973671358596095425646164288163721114511430526163071340366399967898411994581569548704903823779292430222201080287932897011580381232131101902842610262479973920884776565033643846361542160109677598782349824059162403957853364378027468994765802727176094949336751401535615907864008252776180021703047379783866795736696592435784888920783458344513843640390741932730018033894546310002809466075270437646108443578863255142804346138950688489309832510152648534187060836820215877922102824645016838884091090489876491399884410369032356086602023477419275202173552315503378253646913869298427847745979729594367221728145555082381726000715809170172574794950775381516621481560692119633800735944469330775688993772310570907884211912422201724440090050286678715484551590396820046378530663892367546996044233400660402155229683595068365801259120575348486989162350632522177282637174526565743661969110677089755788304045824363729252588677290101580705768257402238706772057243572417153892976139133885333587798750003570783230446550521346112324830271275683337822087359692026190625829743331640711263775258147498042883932263776956980474973713221562537876079593664022950417266285739637727745769944199066792890972707707288049590475345845080903152479781059708355587086172785633673658886954626089095659209664199024242615876971463639063766599118328748217337878046934545309506334598473874584647711880104283846469893159643908236569064618599901530339992769683561236994731094889027901403482364992620928357915754380401756848549947356756164657789836487651966476075411404583289449634863713736985119048972989126654396213679774372685726225437340364357800777547524430294923975267527929842056674453699426365968084242387283744589648857241282289178553693702304828313437396501543199361206775820353454703034687746342525940766718587670675695980784550821982726551684557276214283043978886274388472252567976377701832466051069520633747777324391152270671606789621443666470324985857109335324784238123640282500537830363129696044564949091354490510413493803454562927987244811932928647577045442460053112099377299805837668845135431690922378399470894405414802565313398700588266923484944510521024568469379785549593348598291936832313243028914442009651966005445166280290142969784693596683983029389015044917277346515175066747728629046417966057271797558481122028002856312810260260976299878497106764639849135410888623509781708434414157688322587164484540448090164572587267134956185190595969268870869137064376103832086128560625535491516702986595766662023770228807650928179107967405570248930531915523515000813715081160594410514406509808509885222266349879988987667670214430098088665242172163348216639083831898765924880445329496337472416333125205119217143784701741444676034540233140030592575729959084158573595010869150537508066969601490122650374751846756599469131347776948278114296548719418445104810996440706849395869713798422982598467807490052541042710525280538772882060262785749263219974612056196837380707883416188755832000137189456097823075778343920687690331142603908484941073443995760506503845925490685821757745286004333381466188076316446289319980337853586263911832133146447104732770869967075511248813693079147422732438005316453947555839499866853723418952685593130795505858632436807878418732336192820089127561159321739751851662653237118410457751578095081102185956359151268106772084600095257145797691446206320994601559751744445704320723716087065803437393541703749505931616642978692273652235845811303815245163889141643930370936183161409441595774851050053142885882213571424037115380884372169749007551182020964960207049310933219051312941421609540882140019435967576877084583516847829012903561704014266830020719961743264737887201156045514587698726653667077819891239530345349440012504272876760037166448843231013506002664365039075430618957747836828940538335009163138700194674061446618463595824257135973171370884740060477686203093853222729997462907642287918496438757201787246909423735994175115218077721754786507246645706410604426612765783536120024857235723162367798855546985743865411985196242637567848668220694669073928354529066097057292388584582648439165478937903113888940952639548901300418911355412147724531994449601464548239477521984609162402834274017165041059840479352965096543922968873011741297777452388080011278751628343983104209271213716123150604611874639112245447100599112650281556610229947701752073105094847176975803403257947986928931388068630887557381056935123997364921169846470534778696174949454177765103082064002308608234269851903246736204341019283053846436268399681060763093172890385121575495320362776815292522183901038380905046754842326592042333548541021844768844360819801445248910028339345631781354649466234037408519970937854982623007395912030559931271849259577788403877564922863986173096412904481168893884865702415129228590437914776336548178442134931380289600305023141704596467658755806187744271259487362949944005404199230887792606955870663409146630133175586015548011469156095357314549755278041654907487931380742481600194965505444030479823891865643894073894753937141284790192663952024559582104766918959884530055102897448037149915982506909197614452986421140081145956254063302480684079592938497904824749587468130520765494737170194960336167149022059134047193114610455711445105491342712138097646687165271500784250417466928029419004823731751527139282510542577067444352823154496584155038804812624283299400086620085604840094747882417258177886684808679240722868525371882467617429717092635875474873609413387749401088357919278612697581429903240244179756889507792030922298206264811071929435072287525405014467536955179352633729614116898939310795242117814827001211157447048437929695496312571642845735062438515334534953325607230811695161248985257390587429490498205189142302982688538763453038931161291071592880410744304094556363641871194969334363429132589107086384041434486039530965114649930271923155223018200188667048469154759772967318179270409658154034760423454515154692805920952798964064127540243954869866826528902697882599039439070805941860246327910705092553347711308750086585058717974459264218836987834258561566731737359535319325537995718514522939067976346282575337412577144369325584830681527006752288373465143207243958685945365179088816334551103889894184404062616204476973631692196575800936152871105574812775831044146772795791663723222903295530645065882781633518685976827235073247632028642738793754037279035406702197125361337642391704651903061601907019936588220751996650260061893144474629700429904836818148222032043563063644247050724800985563100839075257302935697093311680360410173770028995706250287158876692022401705832182977236588848404319017149007149026059884507450469422671069738936575104437686025500241906202215478558127933016961195614059173968441556973052841082479024549143487300049956035700412915769624569504880097188263653189202076265774459430738773843594255856476369430733335114204112568415477168483965398010718519090540197988119044449261644527762048473994912074157531596564333385762108577345929163320950002349786453198314055187612848861596396227160430803949566896491290584584295070624948310204391829876994381057037578714857085654472521114843507664200874688293657854697656592857666093061538792998703861776615361054340038723749901788536492623433309400460355252616395310022486303716549195683341505049892353201964566260850162647403766546497308830906482815604273954708365629180782522519211843743194598899179682354543024166840346670554620671112649270977130114882727216265840647478590119754402045639157758868197678962715788020216973831471178545386121236235317946747922124648780575742562183128604197635270559447612650093048002020967682734507528036447686241847332464418474999762869058192196158981347973505243868756137790263947734354960802919518683153517656992091252822784111614335188120821464512081916729959048940221879901960003950448571531121970659560832453235923349759243859811107488231119654268119072979705461697124337878872716851658922447340898918397886724053824141579932984319188388897262342888138596609111195470239042917840845674396461583928696182857728897925156082349752269916886084700057205425464937814939310966239109925365435009942584819922468917687069816118765084297039290416913057102327426844507860120907827556751196655747950327042127887047234008115473667602073876444851309337503256850671030596246537264280697821430248985318982958983157240786047129054661347476503716799980513833545571423254027017559679433546812087727363937317609085997935472679847429285753513647918347942533198915008619818987293518979274671987322078739847751978343450404024612605564215364148061730934636058900539555947738903217343315722699057339991612718788093412694909724371958608542349803290488861135313056162079356054495449244146966723365002304498440583225168728231865242733875218043266727498097716962055154197205314176092969443405702912668737734998606020266335094567501105034180235872853213469918383844712123076426321291993375533784055680242493937857866980530523534578391382762442513818297691804354525570083731671991811492326746818156411508467166065077424125135477042073176184464762053629483366953656958227177405127611149306935038525867052181858125473818556984887442968255948355328994252803641161475463979379950244403188485598613600264595146420976059358849692686730008267483433175586738367660929210569375098839167353898262850573387350436324771501627699024419120247435463322208572262796121932814799142283334515237276152523075979144603422101899247557244819099985556398395362520573631840351675976816726444851739835988972287461715447650584755924887418488813428397899899975381879456148105049454132641973615196766279637790327289546516690429690294748541153632849439603926449314304879181997174224876132281580126455013474256174597843657428814390758016404193116768273617505734239474594082067055507480374593044016088571970874788027728212819697867269028124457044335324708878079643271956032478677375276146732886823452052159613102373018142801565903271196502269648691666877907028336260475816569150206157220350856704669184389529147805539142471074473181415716153793415572600099756360616008131165991256710656346265329060150131415723836608673101072466899496821617510399295093045424814143097933112377197689887710671481558574973456813373393401435306038687314738175540211849058132967727092391358676819000545477086108231272892863217433545354341454412724586937795084336206188508793299372909822713047691484445896680197442724860064847754796823083227319996699333162289479810156818313867037656346117056593729117214653450913309785293586070576924648657972354171248339626329065403474544596579180293462036075678647431062923068191177203898145725287913618927301153046778727040811040843581512670841878919761833259397987973648232510841002297007714926950512354068466697493343327957336791787121668867426893145072547761702591536340075398706689928940358926371223534263948367171053663055858897291250331559782447655922014316295227060950782580218599000218207666112028863268790453581200168035199322860885283308749371038008545966419348019301735731311637500164546124361222897700175314866770344930607275714995055245167728809774527779166527994932312184738120301307551133270869270455898436476620606936837062872354908969837329341075258349019733904789541405429014187471531279899783257236727740442418201396029620127801441322098932026838311719299668859945378113242824082150857784868110553976736026372386282463767921644602679150565049305811080202948054128533460572581966475670694598165310138880135080618039519375946894876709264803368802180056540548962513345983320045128241673247263822857601434580056969074175086775311151407882904572590562958728706738331097217484658196365609810522592723944058723168628353159674835486279627916935944361219262543743059773452019847627915581878015673307111077311300111733573153747877550906102111426282666723452374717707434549912130481073920994293968302125205189449024745041404735848368024178175431002377741741212840873565357992739027644495958945424932023831299645983512928467293779544209590186842855854514878409501944293016460971023505775939591820088449979030686632958987997048657312591668212547546946909540479154498422253763433250609861190583297013909851730107467918337685615260166231405682784378963422707443818391892062299639862517274045568846849569974243402295782601498911321122268396594975399172335085966195624538034951200146008378111552168060899489814301242559832688693580627743067045664832198373319344984591779969816648685607090005165999083400476633529634884699140311525548908507801536576413301630072966742436671899629897600670831939146561423934929229684538721661202338781191751101494688933754734909238739879099118982694644526929236063166637337216825885008143928512279998249423883287325956814493591915855668478005134938210618810639818604788462712774021049804254015127412587427808792484188463086178898386422445746083909822914178960877479505800632854129922946676678845029108757415352110740225809438430291257605955083484420026789942491374650202639475653343776238973082797976421438616873090044758340866781899924465263342236299184158582085947540307509190153117634175775853925575966173321118927438942631107059957242676775108104007656232752455560466066469186842481210586851150075398449545482085527995592398681293952751997695082144884151855394025977247499455450898412285826773046172826186793905060526522130651667765277307901066167193127406610690707428977803194047689249102537853637141098677908458458206110849125842804395947374973691468901008005027665510778213462941158287647666304555224647570630022976413762066623628795621579345234108777020818027585609068109661099946840953944446889299408740298049322702452964226343751565088385908245262289928394425719690055508998776901528305714103114575312350776021199214569186125184768634363157727934186575746596299278686064318690587758193178417826186375354851175984526621212467085197579501361821128624638313907334901570965657003738783552505580655629483360466842402706797702683081532393880292250250862228353124371343794201180665674587869872595849430759511661769310532802323672203169585043084056702039155666589244934100943467232304543916011451178992986214977196106861295558089167584512696174353373844708351001073420048724436427017729273585793212494650357756892387604746745552166030115813476137415787989481782460802768252888462518819714467103869026618667556669242735375670134585918429614991174665376626642985315246363180686369656540490320991154695416531172723906582799881632585453424535060860370078909281709017559339844062131897078257240864661377629216965936358204147626882674367852096204679669377898462452105568430350763102812588956534700381653929081349272163568911770981195571561335293840176427944914128070856853021601895963005067882790173856101688350425995829379088880869365706777697978553581687123483754792703953870427352344845405118975259771697839080042391217802049889639503173825713431172771529566085624470478992301788302608766504725373075193610524588920978378366264905815194347898215088701548835135455160838298481255788718371147677184409073893540238868724761300005358024736624692360969120138115732467197594940774023223189881535603776344049720729273621788219115036656641103276134834382348796777028929795558785625636414818270606569028559170840158654108800585903839417380888728144831269057047754184603298114551408930004399645361768207851838526488491137095508774709186185239664515978936192051970258321816624388768076132112841090434526243154679740792120838391204654968822208429027088645724208457785368537865660384236237623117292615909495992047558939503340063903757340549588033167823835540464280645982961019985333210210536706084443883458703803854997269224103259667352983184672456124769504709999092632064178115072740937387390222045821959919833275192317603999522986038514356432186099185303824337406260665020123588802893496117100262521093243283250865005930151068575204432142096267928832648766735077951567184425866520115192469353052380545257191639086751426900275103283868532483664217305240629182260735798202693061721764803764734263388417558714250468133428564873837317588998905967290270979965446681195559678395809881693279874166039950743309353665255005197035032676599810486491681784624196780094172205281094155048687995337411302957017464368030913988410358701899764215901553203854451998534380421798515813052100857610523969599475587532557773510034194741483182434208799742725763602848559666566509656872892515824221504057309699634437909306819517816908347966822889804474125988942254567287442677276019597769126897566928686936899188097544858773154631652682030273529802171006888869547282391167794525016624954056437537827175955130857086835142358420316834442458120174902474336403290914312717818747671361517159492420850377041920659191328837221339488853620487499044476829617484083137115521241829617641919668894421739089071831563179912445336881307896106959329135493005179168298601585270737246033185966247886606465560220364697305473355208579731554121975097237770844597184889296653692287522505165116025597587590482538379079096134857751390437209158949678391154237517714229990950329492331758798553454308493704011209328679662120829516608908156328379349113622810621725571206184019684530228214211833196461118148210269965282052305892875935482316217610819278962100138131138150118285759811149180948330548034758656636987037644086823212289307715351049655402909813177005076556499331617935108493318461905004232150037986084137798435712883173879906234787538924550791844206939237867703554786902769874499974791678440553344554016651297986438647954379511546689165695493463528894545635701826560259689722611119304757066290596819079409295199700999104468960270445447821264747215653954275807429408516498162592484747011491680050458607954403812623951143222483144571885105722529558293322702065357795796016968109459148123996352227302738609397501388905842480027716519557508716849191172507758949864769631980414215689680752494943113298940042587212856297914951772473357669281165881751777524401679233510063875981198985597809183217006512706795114775517398098395050240716490187593391365297991538103328486194761648153188552739513204708481520130628075530270798723453425696934139752383928319936787972408074681150956863232565612136547168890705339344358488283383329870933673093158585215034285014663521615823814633681988351945816422117937444309297740897715131014176545862243877309926804377485982122699079844381489361399485556404719889772415601846442000758890149782761031793885485235784960797365596191719272137002488701457913935840107329756735682764155850295823860807953768359362069103524738739372655947641145603330432719364540232163513791127160881255075089195003007335534806553491863033179053598139093667843928407049553722185784358048708000133528903563057432753621791733764657665110674123050625078489533081898456527247993004145166869140847672881676773756079745933103570740311170452854437257677391203236229086561569149231087438031532099606537442939369995507946125980357899697761509119683421479166746096617936139640865109902670041703764670560380996284895347949509925314893587070755023345118150631035937714576438966665235253949770279810942961269792615258204225958316771254872840989939544687117390727320815478981275227196223516732285722036957142599434235823686136273561583277544705179998613912494286300043040531767186957143150600437529717995750623243082086094131191962076379267065048236087919935928103236494044991068634139762692599671990877078387991057032248753960773234768976684039958840535847349262585614624355200669118775214996889427052252789913884676387657594620151974512693455456881182073055436006226156619452203813307437853642750362428103407101301515408694592831012937022596935209682908354571674823018288605936054754654700226581389716885625249114883097997151665164797469248293925030822130848346243314265721675617822272255897242263409439794429948460864496863182490517899025987652096623336375313743542768076579892328615894681243861367132925856812383758168531484254129866078830586887958048187568230825113225700795499292370785621365899975468737991719005539962034951182646612089842823028997417172793324210038541571154524501568492110614421836858564703328487744596840959087669390387442194612513756256592721894572454469025811556625597424890887463712690958968862055839139184330842681438698502360510546434565784138537091389316498736875921094989499882426659844726372575405874147889145910426704087754799499911983642682427745649239784188489136132134037894135383855892988034709610775175264489684272690289164194518267996409656342933018035482449254283456271717491012899608624271161599857094133564291400196054794329388737204265159559708878418161227097652302015897437175731138079300995726566340622623821594794116145703015917093613425018327511888777313007796761070365395202123909222394355937033941033305038689775648703800704012842710335996474505172775776202609956379961887240319309208485341117803914969679697322328920435022623459317387090109177854104434027520557266122574906881288399940044094370123369705702544062346525624721287708950725031793698311010115533004391317848220021581239643706699560086439092495333849251674581166486600423457465620087790084368999945621540144923604659289410969744915306139435552269526736833360002672935391261492497258080673191165476723529866670212923639906618491414591389786471390832111421630949043504799132221718320150235863734548250932204586498257878061184352451240413077098676451162994253260330553857862991159041971308278331133643626748279521169302268047424849552324489471984060820604182751085549324272150682787561917908945714096415258780421933638346380634399252790967447342309215518243984674263832457913320854294879846405579252950963029639311543748855831285731464850022228167174192692975620973993411526445494370087480071795815038581571561286624946644197284803436816378562240623217778033553652040132057828682234407874240177229469624740630490191478007316861964850134929602473530444508998032920550123173252836895742699516061424192099274669113066635850421310673699374994345063547599200116188276927432905024612889802244727219678699470976877559740575419257011305780290864816812672448516843176004868475792207529122609716816598662558929064333081397006543167136207888627831879334157835700360435939872306889267887310864236366692464410442870606524357784213193691139290678863602175943159288344357838719232175360555193228066085818717672289140310174691582784201769306763016085732798296648456496594074263904219266171039457832220697899731542625670100053988259474506622339043786977203213519029332722957761593485821381139955222621473280398092654597865523181706726743779715977931039981821543409217158820586012699704640308125886553633613290767527690039491263192668595135235025845597175646424725968789012246133511743219049311982493907326327520051051823297736193228315452523099711217497552798651949749531400333612947041326693227895427313432022885792316577453812500725470488537415742066341277538392309800915816539697633130408318157073146635385590750737068497407568124673716153160996105900745907919634675195660898383534273158776722454869113044993849206854518686312863927026356092085057679075115404671583737789159197334569528391685528620825848238206927897463910319293897248126643882905700542780137299759576621430194790297245807880777017859998584924874649186312136636811771333775961334950556027829962256522183366293197983783680467032346001258321139825761730979999430292960239751001593750003243158069091208096663288433731441854069142573476971319827383533790631666486199322938459022219898339102161239908444889475002589262744313385984246475004655812416273540615689492479051144895804912419668326677265683644300476290908586531660442810875258495015462487982489234068683225542584230518796943023561189151447497738930371882718004239682062134732606215025893192189482127979841000539782588091446595907570649628130974500238349423649171065483978818716487210459601848912761237965608080098328123603370870390832988111104627743013158728992201731862683706311990880888910150961517943558079589406492631025175698127269282879136216012365978584358016604218270947958546338842502882240305253966337691645001868675413564559047283930197149989499394157480391431958158341690990215336086031029969082961180833098536442339061049801777569436526869320476253033823956552038992380365559423864157684607516201081464960642365481062223580536843383543137595223961006133598122310903848650575714235261931405189472133857540172595299275002808271763034862180596761325451168295886310757104461312265026676010055580480156846908786911897295638690196402772458972980693248245674305572731301909621777336532149579119244521107222094461159332391867686048566708456358036100578790681406415834091019950297026946675644973475789370941533030693739546411334293769339845800319816091900323457421074504675608743871320022644143359162489517767858198217454549754631073478183984450854943152465892684771242442050616473837720496140392001697101275642102222043713665662643161891468624793245800360940646960758335263499971107757558803449581193540399432575010851104250416196675387273938978713551963089145469785438174386405316757980510071248279174612311436813378288014844971967735545950024416749004797948686672823438556306485415262658843557055602415091804980001650600084193164635002344476678385956833211441911733320784558507185454910903522136952584698293101415613706801894167495996858507171132479357051910211577837289839005159767940928669786619972499027067444886296432041726968069859103497187198956817258963065462036844387080529142555152244598001334277568694337244064147157236456973401437939022082795998780957053342904019546387560069281863628328543056443421316756250901496062963086823433204802988402771191575204090059864262686735225709978432632282434451193087004397489966514779678076570111957476152732417548492032819677060839055970849507902844462266192846119686604231469868726380804853360612180185747188250609691197888014213988495691165063592356474265833313117948818388579854795234207637102192960164662676637441492484734755254295324875864277941633332474940950105671825471125424242737879088375192088061183112830120929270088420764859858696667034107731274216472524631260052010859836934001827346321306235331969483311868912406318098799111505137006856888778737922095407351452447105683843614630003744663288334119006930477999763677935783553746018755146126819321161264033853963324690019826985276950929961344031442507670706164461534726103397648079682895389582661245122240296297767242038137379816052883655661279314754575124681066291719856977368269724194905654813789391026512337998271334868304086938560925984855481972325496979318729579704363972147339158634575793228927988028994345783661426312569089658342508316259787480489919406139131201620625345811871891342076534975550843215389521343988269169031656510131614460980782960548995163942584535615877026528826930357791650082127567309661616814326033595912651205076453396855302189323584448345513454652031737291487183762117185693469045857847219887696497727867675305588965277392012066021698173660957368683031319548910163811324943456841728681684491571268500192275219095761416246394953661065060466845920607820020293595845051600459572934144475500505681586653246372757571454391160693635873397457120959592452073994830408131675209236362817089179404173180290830720654028965131708977035272864875143619004808367279486026592159402382371939529445188931639527924875630163478385674266079168290920892088023262336432617015192328581368820813169820070228362995209404562773026942326650653238452653373354251004939058072515066759441757832037480609527121105414746247129337218466240820708991469181178444548253248408225062544576236804592034778473524600465219430205055752312634047557349226252220913734003922911317870209533637333291727700716078957821504259106366436501445453406699893247367014526438270360093948421751391145946745301440977032492708717399688158008951301505779869641271670405426594740269391556270687337436326086469694859365499633396326679031382033014682621327131191488744427612613628884604381579553405585758913197617448818485051962406039293154573013857440085193555575298039742587107011783119495090088406377434977110817372854819630732146795355862612341165147614447319212412822617673759817567686310702883988721906023618191085732268464530813482414404070328173142442053809018989159384949730106853890318227852463985863140015331074274315260399018345965098859755424757555599669483879891763235020018324035743602484470448745361105535661344078229144318465925254893485198973819516785138334845483077215663453378555912227246090555044930466934141189805857579615526704339179757854981996104592428207497950460518693075023626058953671079363320048429664389514867792059587440061808349272303606515271230212565504762597667404944149830953029908631526944586941212306827564097907172413593658847811303623828495642661221491556089478148648103111084993580285013500640188634274734864835700767865021482983708049978378845398618963538179609819470928618744070232981518301046672037240693025187407074010701649667701793082010413024308887527593495694911604565614855526259537641622871619847380498923389427875130847154234844109514905669509684745165904633013558552736831915314947879669926114098860667557540570934107169216748886451085965116885875749430019404009780273830565752504046543523035013706714875460339520658361984549220613280759743276253311537054211810406875394581722761518877313509848340531721560584885870956741819978258926802923145893430880900144301609762998126612755194774509888331979469994012061693977733549490537795111264873281972543127466035794785226252073590750662561478499739017986703682808656877980969826741108606988784957827317858246515527938221387128088388543674393881620314190544422520181103657364695989462898582469882460365749035539526206165254148744797657348395050911920049622685497017453491597653607612406123903883064930603591666456445228753415279783982966952115807263141872011142200875383284768576559106221116792328089542034156062695627673224697204093852631857723774394074896587843010737704089144206814254726358695005394012018669940306930245059951107337955363254108344521903483115950244216994136450167481035933248990960131749150230030277879979885695964302361386060104944914273891323104759098892061351703811156915848093198939618093644402361675149405800564757275635974126022798088046031551713419507544433040741506713499929267894242558855545598676624847315496236695638882937454745227714195928527249946861504767232137202051698603295246253337993160580796517079868599631688663979043991993448556304769239381306275793664560026644468452672200308476895204650713368389175455929168379076082578952417937963218084404383865643316125690952447860120076785236410987938870314148041269011256249164847050888928329328203539926150157670495746267480529622848860871277902591626402734612238129903115005346984145364943923487115138445252515618735263339508788403436318577470946931431345193941669000271212721040542757188329493250255735681533772311942349553460687803421506042598491001303357538702327993513598775778986029625532803360053121874264491684980646476643825252841908383037661122418025952577083605823638424867859819684627977579720123784582483498039926944396460136630463775627211779180575097801502617732824855431673463654350683888305910165148922045115049108274279221129113225537487951011001204412902420631602677981009200708982329829376940874316245663999092190815173512208589678903587110764969041232736456744698866957770642793860785599348694615389056148226294836613393752731918483007041263590229733459361145851591988908662699080543283148497197699892169310870272434605013415209128123967408262539253471207646240575126534780935142569473677739297947290811574698577859217473380501134807522767641858384302846592827323448440304248646674078398359050869047487248894779195013034217036480288016138259551511209570665462269332099779683187357410248433332345808555223619280229070267551324204688959119973682750559327132953266887434245439402722462160850078944214050668350643371520490284583920359852779266578146916184664194284056065157376843481303920562719492919917976532657273784516247782124654544121394129348820062886186620369818476199389685997153210614258019067554655373602700835964308719199296122308502812607723461527872402260821979333250459229656385337587646823842173371133349428784930621328619558749545939343492048728356179986981542083928840301977642762782347753695285252003253900791324137111475614513663133015089388203177306384835772154830564493420842114223960013598748690162559971406592757620891730992265951978178589914921776104073426318008560181324697431591548050853350783822268567397010484716853156017030068748674086086749876402074802058663437864223736592224768031408589554726945753831299296255420817059897774051964793773369882906907722485903432139337269020128753267595015552464490666435957864900049619477557224048890645837159569053031672872106900366236733801194663054591588120013251465570972642434713448555418932807464357423959415395925227200023012342783815219176207044794689092134287349463515653021276433905548435330503385033407599672520269487160093929328836267861784977660318011225153908089701908950814235833470560466418613059603977285489500803702027533488069513547137107234045783968333402299848032235356563093323436895624628524309218111112863610647526674368712979531256122987658649862372283006688980457497735168773319446567806372570811759232761397588673930584548828381176039398143026621018962153832363575512408712454746003676986004327492557880295831039874117553231967137246049614225988503143622565967346797719217375192056325324495673284566250540310134322385345908011156990654001815314454023256907045073452334232311519121520128231813197175435803721998491548997797885100284931030641610784598371000179483085451054652461243023223848489667209935611488622771957144808521018559195139481833724187204272641713499889298318156521525268281028428209608313893396618353517354989036574270785832887593492286800533955193031339309023324531020856313475795547181450006070357787901961523331029971363592020485458952277390023160084980952788655620635412137800108174988040800827936884926750365722386327483318962332066015797626847408730031662721024289949095810356891776316996625827796990484933402509696957907464342260075592449168310453360606778150809134068693304657325017683050359845516609525363119093656098885638082119701714103962045654219341159040790327026253524440681263534914908269485653084346698697117410148290823188583525804523211003349963203890986346229508751328418446225836299831294767130880753395850025579386580993946907235769995929520435103075821975184046252938126508396757994057522532207332766384162240977266474284044210396418299419862030967823948373538785724881480552677951994155922089451538663089104279373168617882344125208941384322293269250758718795046766787340848564694290655934542346885363493651497353454679214949051551383098140474795129057048995488663899775684057807654182321149064568495677799904153426821264647444524323361229090577357799597237397264107998059234955405556875020356644274810903377722280456918300731742625084172311696432111467199506028096989118222911259733050812577416954770293757128602710300894331064423279809108984098497979761887330085238756946736038486603257264781105465267041300876692220461374477041543223063676742107027777273968124257705397340870967890490939834516657116581264765183137414384613232563904462294367941346747289204955125089171629168666095443549821997421025616652244354678457109468518649308670413064404971613202931551436525931381878007098956771546037470741240940770101664646397131640118002759460846802192021424369422837738506778414098780542186043424079034397573221542428849339077652611357503432232166207005503095985431823195790644265693960137710712508979544595518454774828267291227380560542222882733727479591189358683693111421564020371148995727779530532341124335046956137630176121214722255624365123738147517250330953346987857522897688488003910149164721149247383898089033182135163335867243436014431004202825081446012519742364328376520633242832352948690781599929541066384525237766639106913990906933755861378382083500879152411415158037910739688788638507178663129489984426697754065734613885531562635721378888086913889329268734225634191936829351646661727285003636400249509100380157888716160484226483992960216446967547841681698384944315391560263985989873991319997029325139053818276184144091638840102097947674095299425678602096145877040577798763729687973978736512871108290953764082655733070206957621188390825124557679553124878763152798522831572330357383665935767182986408968475175445085934334490183272739592514793176714529585482694255941446114558381335370040858857604098961456113801050849138952835027212514763829886789590180866303321661704762034619567868177839422814275458931302651793289135144424528964585514283031014421561633029106203266584023772714993367433247036932877939196514517277394208049693054456595909385696561415576231667791561044975296265438814806895767732194064399838507834880887137983526690656499166305482076398209638014070623890713118783196978040785564093816113405784268029712629102135824870821596965024697813455544465336479591362678357396645456528308277082505648118124933253325102063635330375694549030662466676661756354738913970626387076867766594929295821645751568340662754596695713051837163227836771362892572046027370217275311223856642011348245215506295776331904350784356925531592001749741085102030715931735832426153683852626802036878011670557977715987952266521229491560767919021221596784168331154157612004069616750899735452549411820104463695692205390544401873439038185409930620790849942464251195769980537556110585021071370107314279523989722377729473583042058495517021542616224033463864599493375232307667564092359751248112822972298801158205438152414946803651174936630537599690731324832264021162953059319485231018800231073089372047502957933336178981544401348254277282057810028561076864988152355854728958811357386163671981879052096974088445947254927386578190620301119639571203302947075499549775620484942428128497595181595721804271558493459940981809541401803555299946634375211543718265053864871670499802493180611962568734637231203986015800779490650889604352566266252971085154450522797050134891725452479504361987134314963206257409171423895983703832570119024195488422083864591213859359872253253605611252469633102795049103997813182121051487282263495597328033184114174069468897956379028606780790676719867396847399778873558081023244380772269588907563399256107141804744854237966710426032385909227911561855435220897115616883349405011889285597189072888230058410141141347535926769299720151839565531746707218447178766975100235401544399178545957277234047132145516380049177687907459142352132266087716601353965039373916093863798255568694980377206154391040025294201630211632497326178493229054281944537145360070933417599490926011049842654846815514356997358880817121951390627835200400626598904286363044985913254405316266310970453038592605043518577416791739822339677901850448978428779782554390247494203347110372008929866292977514731101799098042732683939900537168355088430558254411442372740745767420388576947442634355941026031067977434979262080044332452282433516033069619780698139546566936551423134715512550157210738029043277375101223531955961371875916224014256371638899369336004266256193734350621552800881976568251113897210356580303557912389881044841520464416324163032391584331428045106603023855028720932333124179030961399065102367566166316477183697566077871984790931938452935514624557574307845084605799658861640945850085415676868397211705988627348261404960354395426507199456933750371199761610453004216174597134300379633670991597474818738714644446093736549078997305491694211112822518893194755938960988213202269893312456499753428338089012488860056720345401864959658732032265049659778494576245471904042765625144385332743622629767112003782691294692714047308665098438567819732881221783294335018471673367540565067527527683302697106672573998527725252383421344436955373970469218315026685714365140934168778673517111441606882598221397737058196340807068075542615833891261445091658336312643952711975564837825724934049805370707229912252895503528566002366402626654153480809195320014182822130216334851766720225033782376345089054473503525228235705514738363935299040071790732226702924868346220901774524405284636606902454578887165467048228721067735570321128155890844881056375367592222764447925728425776503303996239973399248179650321119577173846902469558469417619557153331385814696538653503780502799996511893969673955435527406218435665371192591362910117114176415663862461738730666868611169864865031117000087456831018143089084851243940034851909339624328514293858130406925803299373577758101807195050734165576772832201322434064805727588497767113493564978060860433877114608320256554186179469015945069476701630176323816835529020883602522824179719392831661345604350622829263065701493677296697645970168600224110080688926187346034018724787811803187270763338452336566748080827463032809700601786551574940653565471059748455425397130876638585254395188062676543093460469232489370444165567786593973251396597169189549954950953747260308780711639794565593712141979492853604423426194174680354549513156278419207062291402734167659876373457202378523386611652872483327783079065305008888755265199148024379361275626790668496623096778170080508689338354396174153748736713652110948128212595867912654478762641726489565204156531097376572527242985162896176186690347593568382053340539361201873797276063729528052330348031237309658718847584039678600238366148886861598730016259911977368246237802054251630942010900367170121806284865638313552909799508886891360439027900917238901621872472157279680524852973892119490625110041000646545616566460436960259499442507371685989261485758587294207486291711691898642729433909344807197314975301285758061077707345208033122397899872109351304442300243965222310286529886846168309658123582157846196095732784546566715035203465633500471870934457932597841702256406102955452308862898017476821770366645994173796395737191737745526350137884487244449612153794481364255965670165160731268642020423633936489690989310350235143961826140328477351372017238353211755970950195364080121215370550629779474359133806473288570319190716673774214708215387251955325515995542800761888057444808684404261180721403567957063712557464784750004480227525020709787022851901335393845563518121690074633245606433218543786523283507279875750433775414458230819474014837544183582663501611590602127990720889533781364120478313868934553844088101490529531166416350585647855929146938664034279016887238616424668209820743396532422197876485868014341089804747610859318719713223509675698520159051302988797612618723845035259492652724471091996583659455505063109625798164949300016008869533425199037733479637768960957615166112846630039176916011599159651705211454015006056158115971908035342754304015279221686208952694072610063233651989784726213809917057653661570275762866409218880741915360797857258788549502820739552370082327633058547408341230956649767643358397992452586547512567507086658371138983514764175077476745864869639380955512988316411389381778927963226994187546431792422040840881178957012670540516665146573955837962534449302579299909051689042771943314970161788000910249556400920637752653725745481676175544574732400403559006887993437343198628069473316198761690301640032373025571323455193191607396093524313926501449261188661632640199327949772126491640639201986532487563506648286949120218643843017508311752872865498859279220424399822356755661138533250196760292829164098110745011913888522380324165409686843750750255669294550776270074375337797854555405276391088050179535362489563514076751899575767048525541743037307061776975268528561581809531591011205833631759452941944815833681514144664250256503563046115962464857193088317377856124045510430854241289596214057064018692881723403946860620123557005257591395882598166024107778682341673668951072410029535386813789433085592751098528118545904932175008524107789543333172606897217962710950298705794158945394224134172821613973750834521836141399444395446200335427055117217801553009268833840772960050002217159510840545567251964587015183575823862996727666961827339718694368866183885572401120968575384174094075039443596370342170021348095376579435140736244563429669422141238340465229904018956619518704539750869839017300095930304708566639371028361917680465383018130735017151288891563881026283057555827628831768318542883671374251778261504791283638028948546597677375231789737080503787694037088559302741579929750046780436754866026354082085547001059894430237682276837422986294560897566118484151225108998677863711596407027323209033837256547918824410343159414387350899679799393111336381821092096629626303069012508130427510161418846771676029946428204387531693523768082630873393455634362062748778331229596709298705078674094163205293945152936014121481334721475967249855592421482437176838540479355414959305915672284690264031781937031148818873320685544286065049138623562655391664474179409961476325859293247154433712278048446129982015915057259211210839345521244701330221902543697936848629672369630889400179188978397968242553039381174405928865782529431892503713654575781625773156993702300425129747771329247383525622804281922939283914263599340908267517471905161415376486206882055947025326790208955217438354340602708852237537212961930262281377681937504621764726322408493693232876173996706282343667845384345116096177937808400855469741152498240099984910683245600600671106027747660300802963257113700149634274692403059429707073936503366605074284628901934358266644539020502166852230619671951274550285420966521966456075568658088084931555943827094759672305859327713297800557385738949224009199726679685751216186050629633647308712244423969350645968076610848884113307253977355884484076716608307145474191338684997502957188095372827334967413067819255048655254799761396240996988046737900143988382884773813793223791364679568747888682586876347629090614817235610317854114896039469201516643493241050698798097217380033929076881913535348876331196759255844871567763721255843849095531948745249692097815900089447287578093001343862668716947466110637872421640332926283315868794937329498414053973904658033205532744900726273111707103944742512441885967305469128977269599796814502632804730933776062823085475082103590338375579108610217450321461235851964029080003400163090346889222259680726996858437710106385964994686852695844011421327291138173071671523881134811290222591877525914712332182056043491221770138725528812716008061793171119963492106896462053610875791304213835209171528204934605566980656061557565277208364351447459432712340969383242200555137389887746544074872525290986959996424564875153793024856070827271564444143795138689440221930809914894493270728288774098412571351262769690404925731793820232140536132518620766871678565260776647813842732701595748673536945952516560537093032977057743650628605229902528462802558540632074135491506911271399318580538942881510952020004623133221743008218730014503704632567909109897173032317232972072574103633260091786348216134191346257444021609829165933829719899037696988426455858227492171970506841752061100320291998780281845662738096816306810210679090080948392237334477718829013664031868226814046661672255227055400044142077773737802724649357311773910058920571639307863976826898116302552549974837537747409047566626908582089430544324428658622920096747943290511873218133894591197722867786975007654002086398649374772327459647180662200005541591100043987600751043424079610515678367742613525385830661973600138950169211724957462502774206946177610096907554504397186796400961537612513582129599896848341781668892604749697881983410976052989748802370853686556341472930322608795855268704687065347982858002670271390940421319561765174719514867395954042415927582168001791437152403539023290455868569477350812756815056171919891676659819294173392475562549737472425923345301344135925997268014012098012831033978323400144976702282697094606363466064782192576132818238564950735761769117713170078324716772635833918542286125827495001053416706174828623945241724975435968591973646452094973431835993244097816188770309894727412946954298922634157211820874810525284702288898048598570388047638576930781142419379866603396876646534054306830042208285084645928910734414353169378378943808887956219519733085361541690544699058767645518671431172136993008228268817470699562322543620433169999500904265511378166522539690855326300933588810676542269171155781757101405163436158409820747620381701763790694912320539815316713030642302251019907793140439696145176357063918990461018319995635593869316746203999827777148105058947141286165981763674725039821531372932018468823242636249758369237614701500631877981172797030970988572972038213422668413978816363588477044962970934905711277058357192239205046771567068901985401936296068027079853363056317017946708134933124321356087793305916396610450894313842331891641487721777623762795003910828890752239190547697159557082366230562625827129786369708534303485805526343755691531881397904591741093604794573869362701308889992436451303320247984758672074636524749951945221947226987351438899312395716230575562240916457127992824475302016614493992944335961519769543540102460254038970384906326293619873485276541768872562355659639440767862825175230404271577977316406438405961799080490411425465165503871514716700982950498813204106939021173922204946056626705284166310509399618101185352371032466619939485675965263674985061824848053164490274419059095089484927072629671303435553387804468704738110887645843721206733171066267203489408456433588864286995649513386248719397630998391306989907703288994588354488032760410314815557407857070071195777033486135049542536583416418462521376657355714346429315484779769375383140014363890937382343196355464647214368685491463118724981756911340761995360973858096527509801743367391818108512676203473210593272820843853511755230441068997177271497506786532015003850742153603950867317418259661146027127944804825459964413923347508567369734627090492905108793841686895246530588950403844733115231029302882186320411753267531108859255174897229799710208210756452948505043014192012698409070207127529568975970367631105038771611839209543651643010660042571185523590795937966312125505562438680736899530992985200961905977389801675511101608560037364253229793165856050638801416015790604899870599680685058553690581737025809068885836992476039456581302546037400054875843159284600880720981876444220285816552873315588900499529826898548268572837879333072073555096926797395676693624135541231693328852068343633550165500927399786241149811921548905173828339047319153925500622540890635594724743535378634352907004001765681181785423306381962264184667416800597138885054695631843960669245873348205969513604176991810021079707136338793840437702453641140639134155507221127116690669687830529125865547818347570189757885878532916024691164467799643826614706873825619708378926798252648584708839966772133396033272649496637026542358253949619230294528060196169533497245269475728716321534343624019103586237165284358295364342976307213953932515219529510016805924094317933340447566919573392799599240638639472221422801994738364104954059323550996310584021406583434376849745333006553056778340610596032725194526612470541717369483552226868927496946105122668768489584849151007470479433796308111117046558753790647184571601380639914366566739189275841309207867784895390235300825874561636832283098282402811736806978818733374410365139594521360901671624335145510596221009853080616547969479749562773148100534200923399905524493239987512163913386643967770163347154345437307142052229304627686242553745217452082455475114512980327918443608843684968237117014918524409600914269659293536353219918105427968447129133312119347705821822563204169594416277654188855086116405138087840581365976549806117326731736214648701554451677231509557002205564292316207654414896347852917850144033388252530021938958775652284235535017921055118501633606810791665078907101001347243991547319465908669905435957073869671172916579113043562386625990117574741393166200619380535225894916896210468096522095746088907415181534828911640000117130768931114642329192038621543023445808477628362983374219680835491268462941672010351907880469834357418188608051498061066145871904661317635821021929297117172921414982667930538901436433681689458659695850083019578582623457406105478727619746586442373335479575351778470649274934808455144888058293821047763744838901964368142799976903346862718948274165515729878817811962139434756023963764103572695275502735713297969306239760949646135236823562282481077750023876698942730931546876085933634732486423409017162866578097359006492975566956727692829652638349457844735675954990396015696471394117337793163250739710910940713741358761549821211635952149667118101772753999220041741939300860611027385025937382446113981562319669344577924765534321814315081068102312024175197627769342661914386922216243855342127373974845569991743692517217879364440028152567043553045988186027514161392385762790247849829779144464644477289034125659749918738143185465834935077029879161757806172000284716617593125459371861480077243643743406915282907404125079708655442098028131542224764938399268422017079786808459174313640563177425831566435946286376599079126671665140591323215582261918013574785080271364209232042955530026421113268977130974218095819494067261277399754902577175755481795693321390250690070101765054286444714383448580550499294013972835058718097038902047298985635199986201883187389762889033707471320958079522658724026402817636757052821559053438219241689604033020422589841337559602578678715109092804480697629038047235963441558610492195371403805736245228987115274231075537035595499369384333708666055951746045609346851915004303657096750384373534255222589139924615846962946241110943724173805090575611307291611708948808185947317937014918381835655277084638064866014530521632918995586113638913966579856034576388834017681710322634271248543110934730673329546748166301961200954506542410099057078335459451169806387091969165962350325006429045059892389888498245149799247248232379093021679201482074994482830652750430289557949184954052179088443138528286986492266916261318721471988688921307171410802471643883413302308282869242993420383099374445802885154729246316237636254072219983588256266816233234818885889227616318272332096885564261730681063554362797869770251926886411308100571927680259960110190586590076016395287803734216975107937657883295450162654141740087673444890198846330552394669520012702496877533676228663098862537900149280721068514628375341245496215423425454205176528744396278097223130614108050314326235134284075367330117752744494991736821258559909238615629201335500167966178346960995085184970993938189143402503974452833660342799188835968148074099343687565853180853278455105752549295990486123273895330195051578179307223328790041766061364757116221889541096664815615986125588160145080817146629129712925302385855723717083005180720742882631352561870321596896686714165529566340810192433267733834559462283660825330105268922154932710230535264867746514574367656101282845032977579200700514112476248619467173297255657034159528419396501968566193771740226753052873510640511103375529177529923426495606885643604782851779409412626823397140398896715462559149973713949805696844298191536216726851024490999357524082550518045755599563227881716466642684184209279397303699306848196561286878530790190900451798689750388434911550583267733967534708326669423753275168910171349829299188989390965205110046644684162250916053504344568305966206742086755260401543074894208687419686110394069667339113142350025890697568776688064502756157672106559602329004098416352248891596691029314198200789439770092983518648669979243867238154896376638015849743882778158366310185409664649668788917896916220758080408427705576815491844118759414231388097595281091690049549515487280520301508028874805267334316639251178628232399622528062236475141747016903061822410506148627901457526755210807984722937922075466602820287934567033567868861308041707492537355423900397511407522703114685565264287045565850210863802737174936372142946101648259945782239684413215228300457688449881435890295901191073569644681073805311912802879560187752044476661025494255451452838602863378904650942261987884935025493879845783731911203167885524238048544013029416935062928918888004119692769523763846116568019838387173562137083398615830014121749189317416096851347990266361156649256528833592711144718564159855456855496860096992633881403436465542552231170511198947620385722500958752381643728989648483625221849647693660177182878854801715664228884400110199407803961217350112571663168782897519093054880282978849543143521266684358751204145722305097388609879146874190114542495764851102118137438103063233690631642537509942365415743707195526229170048573296280599451365636054992055016935032947776467856130920162134062887093845812639688037993638699405254959266437284273495213596129226449949304444940391540607242262230386151271503128067073734656258671805780465638513854530373304729429511011363034962997022100335412604901154156056064747151879145710608262649432233961849058593018511187319572982967342412707013276484252049730524332418546897662351963105809132569495368959985683085094990193860563392604093102335404469859359319451827088626088257268585901121486249571327509891454649048540748008637668004159290910731758490958380091436919366227508250718373075582935630357095860658957404027939043590054192400498799965880548660850930564614402342606002556860478091638825923266391106044552479250324752807973370258334837242662831666623729932643209261307210397640990888203124136772455650293114275602054594079881548885555864866383519435552254999740523044563578930568773737295932448285055533734115804955060943475480926733884647910764302454803490447111790136419035726344142585742002792349772504205478621759903678416404967655766682547978680488134971628227685792768516560084905219326070943559968437176109395795507358576661053892913097044367617471500517223413572564017166696442796578554904711150004629448235728519873047258163112338774529600840057323219016010857297028353631018497213274782899086598993880069682655706687687694878696215258303492476047418629276054416428175347266291037336845471904892680963940610592849321677738057777993174033136046704099222222880710605824216847929136474775535976796657462456919948059534239674986807209573686433185517102827079438279434819928884930633938783418936629306352826107644859232619984748860018712668240137506905122988323387177343935101627452595902821285410811772845772524276831807741134696053264786342985997857882058819319609565964481315731477011775167986085566670078290826605521056713421637026437226522860869718640748961743820905497568743017156272251576031712932784950966520497776650913193053879242034352464063403153070601594150687031061324587461413820034048431725094589506867452017599961764320886085420670545761178548759159014796231876848622144700610703241848715577142904444682551903603678502179876913175588424241503509847017799833922190602084594891704635158538570222496721358243360411749006927575676556550261504011889718279167238952544780820362548176580442039050578046462780785674898783367360155781827247937573133233220087046999774648686057305264748330510563418133099356080627608348460799634150321255841576991376037548575488951188269552825040982070791539645114723356317873381662926006438045685646482739914045542644569296946117337807388559540234592219097333649632982474107234363139846626191251664235701202623480814442763118482231072734633516182496342176623374184259066669157308534414779347462741875289175063414399990734044408742063019466500605761673734366441005764435110480738835640555968405557263601634083921038662446530254369867502308301422906052602494739197191016348417541364618577998276740881268047185249681799554956076802878735080260064003029706791673931101429904516965345805009629175349574824099606707272061797278405061132421563903528006641588769438316182955778124626442462341454196424572251707004033188802154929514610253968131823859520061648885590071040686548983556949491986636080909319078598058384400932884993715454455034797686368596793569633961038629077221954840245870363032323067362108895147597737266379268003206487360306035027666179335774281887837754057291773278941974173582359904661108519534604763862785462153034798964317042018523761172248473242666050680165804630597781929633920357275397288866881409422393458804058679213960525540729607110171065789496806557383424934785399136747033729731539659128639301161048705260755534255185015757847697128503144775570113254802609841094890328496404284884805921220045438109950792262277302571957020999371579193246670283221206739103981605052186269619494130556339625297494311432337545251616133467394842409740170494938693029970486581733760875809753202704422656536140148874719498420480440022623934898337857794176334422916008565241329563378573563606263349121957046305254529980869270220452494000821496213324633595897281252289091647695147200326267173053050404462932167654439965090139199634716640211398393853687527019290412320655519434827393405659324314552061073342874793197081118090671488770580667314844764130705190605954797431958020715610122676596207401770034883451803531227174192203718711368825407817525680891545901760041237537013754154212924726302103804629801756513776182649800038555397200193394201149595545194821005717799898617454751975736149416965036658925701069596627623007890626413048162483613657059239472936529134448455855908952375431889953127371773198870190240395028715059717401577677000927227346494265240642597243060403301771279805490500977794622890418433888621821993485107549669096997032204090341217639543254098123591428262932069274838228859005491867793215126156430480036972890430088414984126310212438324702652963070519975505588991604611742793429925999177726847741770225014968229138117929408532066761741755671750247853779068580296070787557825406616592566645290050036339357727533992801326629524913550890087624489115912787219865273669840274865800546424709632985977658343107866822252325532743474027278868100433714239557420305129222339510352243017109201271731580479331176297555673348579970624649093423833587437268667455960537244395322264965951759850042875801130800019851689731045406600789830691015384250330760481564997079833268422093009262593210259771917269364591495598736410551285227839769710654390100155700276799138595989881602740719325758905014487029492847785020491484460753103228271533340305741875777591061271641040167018731863066879255053317493596996216551029041500819745543376461487860597399094085052069603544155382784405876116107399610555136648908291856792584328116207178821773235084089799285519629659901627883715408742176344193492876677005039636846256689413698829113715139615205128232019548405899744209808650076533664165790830694366686902051956417319916247853283736684610599472720586023215193840485059387854684354389773659366058140870933599068535647914455251107174205220537310879434048843840193946138522078706940922824646047964637906883977672419194908360706061560076423981761856812413796481491299373442272972047619112099516714643443097463994210432394995052349580131210407490531210518009247307324139832664942122035133418797824334234730736930709866214960274952907020601669504154994204853291017192258015289331975556075980084554873607512819696500168957180293070049634816930165275281541963665101345856347300876366062898829095234158536929054868171253593398934723645117846687397574901297063372414813314556114594587204372769049020650617411754204816830195214169330839835585324334513394353466742219645644412649305994833576136969365299776330586017031218353763960777329142323564823510031688428358598220463171276705683165350919400344615880688097509319073660054612779729680006982673810559889204758597428050853142749491562771125837766542209536221482783718715008591692645155642038370722863172389369092771804038174973069644351803782271832252743994696017382212430254559584513447050079712589574929977978823793921985977188061329058064893171230063728750156457796530873453868376598496253790890796135026673125788659410315815863248555494481402919937606347291625779829584334397847035884668470380899582008341971583365403156628602047329601694490772140103758805827820713570473456937905151419985607590913434897722633532266081125368364712279465146078190157483486047444273210869761391685719792910889452638826428462027128902347756456078205300573782640888688464277627538617875706620043879434446281585163380270157624907731000725945752693617881888311351455550970405139136344999729391624175311098060368016287640766888022301525156385903109435661189868670616228934151790997025432324392646780236676373789966261653941805374315745953407872019547276049826428512974152570714029018730591670943106362429946060624726709997943776210523861892180938059152212430962936104777795074775186814623204597829793468442696662465258444917679577058401417966510860054919199878964518470121526952829325473655715996902812672360983915279114596344662244695088384805528861798864429320210604684452867262373215251531327529452170509348555584753426039450499706407011540894794932117456732052558249019014092713864784716754486140750415024173649357763622171609404316082731368722152887628941646152890545536974575257773410874368180856843172110982036355954316197253106210838424426193383552561089339857074939364437979146746005834842798223312795582823787771885054573388475706032686472550265661428116972497570054514744627268397800154720979247141390987648775579604877321499334210045804777589848660508772468806334543377811567856885015898634460430010946755038105187907376084126372579625037342976741070736184272096240069659532398079261030688886125555140872992074408601819716379463412528473012048782004835013012884121688762779893582987825987848637210427703120209613696333386867274537973178197937632778519234091003928841876384195832417594420428349906989991373659361635253629356794450647917646351356490142631373778286709715025986863468979611161976978215036794310918878177959651451260398685753014684763325414424208862296730710772360938848913760441662465450548714054883886191473205071137425944512110255553901637699089664526856798648016236446020512692053213142741159521713827341936760292182977317217321486683678986770533804534490963646071311198609659895707102559262808377455777855188809793489661143034722063394475213395360964481621770051869682649261340915623554201779837767167875467691790888552958245278638462256356663263209724089948241433604502765729964627428198034572486089297555481751993567865459867547678901167889689973004614526537217792432305256765572955477936679803083920666891079691769490726718521540560827734613393414733680043071997149936281467368668505923589866496511560937974893431021297460903529431411286714878624344517309596290133892628772374728114737333994015717006946461697960506275143840789869411096048980550044573593589264586870319298253369941348674130089736133552499126819273984240043189140562965052823365260906873081732587534159662129561151636504588669914883217258656841228254507171869828398134118732924788955124607117278148621563826394930894642534210503622693160735669596009089446035503429196381844071743790693877140609905650526802656711603249266404326644707929122088021991502528220893104898103088525992389756233056541585890747798178600496016269413387317778808912970532017996845382711943401459459645792125783059508909559290804950308244074498228880468459151900318138010238469273236696426914029997283124819273236654913834458447485553311699203467745526979667833681274056611694624584255885100982146649657272229156833604703145874214586408555872465165583502717032208368892424198221428220643321653272742740959564303812567423579097342236095950833632282935309824655546940305752890936898842460906942377563478616985190885206020020763673792037163849552681351339674545685923982062790366675678787744537306451086800217288009141092601628086690011497935455585346757795323560281639256840502965727699526122873877431355692099028832361386721805453525504427033929205769848086694585959240682365621925749324279897643022061144430753860938019024534197091123931577267852656527996405436535704217924039983331214275818721553046939888823589075494488766243445512366496907864547591970084806077047469918726327051229710465981895943085224131599230983928789989258082661886987148421103977886112135825908462550484213518227749915569683757383492638975122685143767641602259176638536723133509223539678928642854892054841174427148542510344538046059509325746097160145291131792629309008298809554721444444657675695290674092544127721170346745012413110353551359643283629418682480094660373792765899936217066586308189455623421774284881150719906317005550795138912912815877441319015958314045038298113095210804863233768984368127158811162037465810514636317443152789229065852347826351008666595314925422321867374313665209047816584401642827593638925735349143328926321815636501137483998718903480827871959608000629718659047038583254472527475905224046657090875848480953254599952171177077766732455390803115001875667330110209840831373269048269717426069276641632701144109889176471127451923125242065074751411102003982336302055118633876009677934391058854604766022527069694325254875676814975919505794088119556686997094244130922464209557904508360424190003897414049174677874032880391711317295635239760720995409975836704986428495228336062592048182836072032383948145252837373953037927460386768460258482597682354003225130280865665738978722916891160983346760194736109841869693683301668330981107451929369673580205281229919218815782230000374771545165731623014736130364837817647625225541133270705572101450442371951336294629670826222129390781460447377802291073762684390645093675897646668857298806704638584414502209175888282174201650530070871776824729928653371534246082871023479061123466984902875638571337484318315144353860479181276610810023672793814244505817923113730183152254413919627936615942327228382775969224980877970964605331209576222914283356847664668918791949047683822202114991189992682848170668141358498112032935917734187939495202209617339020953471632794209187942544378843942139897318509363270463710667310375326335047203507892413800025038784194736373307137901456869649915813313739189267139054853282267098006411806461139579652586256076383297798363121643387392675684138528286045810388797810573780747297638482839982863069787496013193873840804244470516760381150086366368199967922802152535734029692272155235439977698428879436852844476727046690535273123568955407477388854270412561519267141624209667358576576450676931586944272877637621954795775773787816426099237183878598555249384050761618174888469815959489761497158318822356469506061326037433598964633411440965974078064922965077750833752828840715737137863253642481466072494905359570859925102016919541360653740781523863114150944472461392675279799439603236833946665702246873802478723717675907623843256131667059003016523584878054827767448164720446804972309422513625039591247590606885916215594990829439039400950288629234485576944041905884099703598109247138018376964777556340244964610517091502115102131103125102969855081972012558898344778719143890461257929615692940980661519215018885803974584584592059541685882035053289808016050465303677033281742624996047577818532670002804654066676879346014125634984659231778287705247580230869060775876382551862848638665645591874447177030221595387553611970422685185926304093694594739272079069403953355870920971148557473043888974800204795485796394711734111816432374036337294078344220766349577657886715547151233225486110485122350620850882833926979989016173380339712855358946332211494114574649304611458969141212733539664867357613159783657451435655803173991971292275317954940092240210211909923140724476910830119956064933266657907952656903016598643431168922024981887316123982031102235246771380739044375746803268429273914356036730185899546425248621451320884824351440767898410635038411561357239505462788191488260771826697614867361904605350081333506368159345020322405871377914768489557236986829580235538492894060324969402022839923132107673290818819011897164754804992036673204223140159926444000221315003600907983456028514732016028459096046174719652165896707152965165311897743708423607507025652985900673610136642456142699825308857827643314619066552526461550712985564210277472847229823749608887097936349915551617607892453773927195403102737405742523863525364926358750107032979328501876396865555622761644727789493808866010378168557381348545386465188729512630112431592889280548160679375698507529389874612804801293592632762730860202020680639888344421711189295492020964836183296382934236526594595189054693658983428573265098479600520637433129691643292093600301620172103162441549750258573704646888204151980677890967861944750446156975145291123595182464802219762129267928948046554189319609984330450564868219031241661870984627084646191691673802470068133166465074951472905058811103948800520357788608080651226249333719511133575943873370275701865233453448390375138873125864582406072553373403651675920212272992683234476794214211488100366560156284706314760442999319437747035115665609743558990668957504501117943528765804915479656521475886210427223954783233310611718482440058885199526004235755443710662506434707424895341053605416373370720625465055423529321882980444279857681790790255840414729404205330787878883367387945899724617788324266541344184368883046058835293266771993223854177098710510313324756818803852235558579751583508623139909498614461768910614292066556901342760377606259648289978505141632451266115061899775712892775017410034789414608871388857948681133073028933728631553341900464622692419967346614769024735685179156612758324223700423914920634691563165271190807379787296188869488331413522016904535463438719177971897998880674353980996419483720310308490221529018448663349281930009186439082797193839921901832471256998173208953193169038100366912909332343780832441539452967961989574708112392988900536822125129112354410311022607633378198613391487434877594507297789803623361431413178396200303003436974652859516253396339817364539423608761561053395176759734006813645587048768996877087501185698327302578917443184177085020724794112041664801796807199835338115160569335508672360940006095121352644952650332584634121409692907226814057393439457608399773506467793763577750850475525460550684435540773608464394432710770723030670909317127637087110362855473765359827840898106986618655271164654613012471642635622998870370650945196280367357677727086858303934563323348364144847660343262430654297487836649634938600193845687954793855991547783162291189425839057291357591866141054119061876542396171271453568859798601547111323331598933557412214289317814738558828475628531314684280130418426114896337995307837814701589430492266437068623945631889473459743996565736969411090542338932727844622054835640465718986031284309938203715507006281001184444364468185497548216108141132078905782900688728004061004809129323700099587037674545477745431494047345779504578818370656010900987072372692328563594064825190080215066445356105355695091265034604170783158768942792845045313404870936703397809842826239307047705946732401298686071215086892075587601261608671605741772971743790912217776717893016318698809662053684240474814891744418592067531209600362170464913352248810306636882545820497403242180815982101465764585819659085274804806012528404586554113541299552197701986826509696964244833061065129903009202656952218939706598850942480438971641967831011368537822738648634475094022153104393179240381850885431022713477135026582429482520634414009668973999463556139501192682266569556621445663828230122265877558233811408086003864166127151695368121660558124829310055875076370017526206055891368132786292354097802305295316234176949291591861106180779342697335651485871774723630318131229243452985543573541416969400391963238058698812445402016004537475828105496653765764783514560440462939621576334104139722604876468084473008001971712593469729332634933298368995164247644850099644316597517262051064689373044552608800027384106723543016808430994097138081775292624724839191823155033254924360217332183681555587770788446035330976310867084176344994018950509877572801132418118820174161231038573896396729348372933931250258112512280652465689674502328822263399544507905012489617634451290445655802566558307722497639153902706331075786538801580379849329254833387387976214100013975294919818787184087652819929548717266640506212451762504720273872402969116709118156558375933166885871430484898724565395125050467054189279656326062290665230738393091219866655500249730268372260887251730101526528459349775903775121042529583589406229290427022235831099565841912669099020842917842441992976925816879540329711570431671252538532742723610137114292821608990036712745316428394330649287279535048886819531293188789998415700433191895605242896051208730064590448970576285915609491506514232148406627945226634049468878086981565519082226680202462054048950564829919289638514010961251519630512868174371417248450135698507735124384684958249356900160840515899280933716670271885338157599579469911318171609469198535615105314803175976076640891506476111313663379576972781443619350412667299917120268788335947223542403608925941481298669350037152463771767719409609596814245575572788928976515832727462409800691971326913988696180616388996335639393533787287373920280432446255625295164536138225310947836154541425913964682297038628203446224709894729650023408884243175904401596573665776030968788125919274789350777860755597144232232826226504796767849401424400301662208588440878031030039038887718110172740055171400648382421822581909626328384438063181780260284845038706880115020235554596323053299287491921540107663120207533111585812674550859144113040575414785140391351755741191932284389163623753208490343052998326497019001614110714536877577729938861717171368487864736556299101881816729262143604000671728934730466205988560535408843950161735274962659234895670961782286138308602259361143824949095957353007293345316496628547866975752796062985908468925414609080869276463803334077341269369395557635799776650096078194904746906069938521117184768738297255954371138173251427921812736612643730676030119002292347841370829086650821054506041019537863917274343012570784874541461399180273462497305432763441537519266587521809705468710538410222022309144750598406393210699680026583844494476691320790664531802880091129908884503965174702647747199925405770501217702890041160226782585244119224527974609150506979557784342555334558441377402306413535361460025981948700751179606243017155172459061220459561835729526132323279545794326875738821588826908730858918710592667570330891064849381018883625403961098829758218600917854955911846697514668835822157987010346772362110037881804209181079531352133356701377715216725912410016409198100038866368194021051627725019805635114908352426836837819842913794268869920521045262920841318930456112953061255295853124124581763545737952270241122490240389833597242167925044022478140137701960232684972337804198054257826241972923308586845642442788739377304682548349683957306816181497716616653121099189403421832460658984587059036644302446107601064921623791144699192796882249675458861571048483600937828333173575867187068726615810656980581760051932374325750689577153240736774588130057663764069167858054487240040601963021569392594676342897558629501649813384932584128676866666527771456131626076307650969464429976151130914228577289992949967321842867336946553569759337835019224439505891062158551399367107588958526767440568830392891070013942343961211008605357543249926278352386488047379795217533826387131582605637355623426487774864459661445069379499315113839701078664426756488632204739028598637589309008837797991266636991416131025980935412815910431001795168033436107743307773595507422014456672023419580188891590732947961177927764289486933688023739180066215109023299383701251322704706531016431543386645429330871671583184725981231353928768882131248039687391776773711274237762403773432055302493726997362234630005436225995080498081952711574751239988558077771314530035869093121529696267412231783037468525535832404522084338670206604935947911736464572751794436065077087998578166136910477995716275505314492812229187997887449247188315782720145149788538364939994929718321882223190358635284104267214541066603178496223774803753681840002443682329649956887913382232699619110003615676253852600044279679688280372504695189110567989841138246459521559636225022982642009223823775347674153412962528018298256958601465142073047458542783745602387516190675995469166174605264252936307313746624745934975895202912233678353135099702411822141443166887307982038432477196926050284793591220932198538035534406759218236426060863738013823751109807744567811032643054651726548170418486626536709709909642248885889174935614521036833055630227662283802352624789548757474118477487467219235859098063633784432702893903104687898339886087950920773271556254967832835128107979531218696531467105383391679360725886696842904867527186052272820049572401637773409618667274321535708783284822483803378146998815744230053431086975135819719589553025883937829579354866227746847057292541249807507913102087366872790064822323393163969499602394122088641335145617929082266555951260453558083472788409069194222305883612290880469205800128156250329380758212293120944509586540257887891612092599491241062240914925053620663763259473313825400358909746391463143476523868736815769427643688765645153301066617796713096396442174924284392429769352890703267143361423290268465743327700831633545122876378872622306578303331232304563484806166226101827103528821854306585186337385969172587549870435020266158032616176069222302456678548220109714736179312313643235578453632938434864278491846284317003347772650927378567425992870558070138246496704383244063251405748043261240208060996930109429630890901368705583290441746143791840885213454508782144678216223786234948675007185111769352995105348589915855428788683784736683948241254225373925544503208396736591266491859987326337217860464860933568359944851729289567772024719099227318267640038512896657081817142015815031147174110971327409929759855781582994766875224923866268245222248662783213586400744668886363610613939234403632190285565240916283469009635408791876895714855733117383091557233771515129488705874025281926441011506702281246550794362733024820560940547880730036253978674679984748139588678032911986833990248587147778873133953277311906764344477876104266786391661142189289600341314797672345925661405919118889056645187962229374743634390526268890829933469185234825922042477094989426001198483253136113128793659747646725989847082027471405054708041970887415830471287520263227995844029860907424586026897343795771419190611366278402896152877052820368499604678261465392480289723036100481416049420293583766760334559970486531793024656050903569198760722591088245864333368924770325213344485857246102083187021355817353468849668091331956058912995610762689695971128066543978724907552262991334861905359988453805481915725374378018459974318534063389465257387190026169388720326383399099311002276246084956822110295698219853714172778618698323078850750379188949837925708612099185906854895062376044485142559707766349757463618673339729449361282101167042794139303086430425514089660687330812191521287753408233254337548272785217279527251099843102666948555616639221800466011890915498404784895043388949877903691973054425520590683685683700932709537164772907813901421733935017472477926921375801756031205415068541534823163328445912937463427767108097451662398602276021017698563193242092781348852182537443194653683386630598152242718463642625460885774589878681970941390406459267448226529075010428682701900629307489310548327232616510049158646629915484210684542601362753011154779219037798002912341968285270318480047538219166585771197670781321335359868990371271041263739409921672626986714639418342250918958295465158266195288922074522648232023331836968970363953515946556655422886933273319924887686451947106541639311605129818012465493935473521707451999578135265078577282981122236826397053666283759992625896001921810691978600565736926212303258738783576306046822921707802289249862138521515610070053942814312413645639152090679045257173380515618658816502214834046179267978371064273760553955502662113816048376336589747928822134475366958227985702274801772640517275019626559966615242637490362433943407260610011855893643329842430408586567555383682782442251585697098888741978942382115323986937692057763891734468233987604120473686162054660699508021601841288228360224829902033242072499633169520839242105762999521586938387700867977933622980003076071936416422598063549335014507745859257744489394569714878036393622986093953954041611520799485939048664755978057521307926283847086767987206038768157668040900144132795158049843298814381784754273052703272945059089059989018534663552870524309181787961407301757699732367364669225941443722241363948572813180336956619209199832346846531364606979393256779242978792184098088333515899329175847268961862497231453503802391896620367616816165281820006705665034017785056159770540583072022445427515178534626565089788504405664196975396215493754168499794516926955504039493240549464138646380777439321611962584309816864028497312574947245204219209813187952639685960282843145473294205819954815420602302040742036061483213622290108600559082233380722212620908208831407285238096865475858869143908861395576357545229713233353131638335763912043764464367908094432076360023752516572892324558389495339496700103948761900824310449775963345160860870748635577574487158744448562641469565471841247177630211734989057299002201454092046553525793960647631798515314442091580889613027325310018247941396210854604867141800321472240226836125327992135690822797289423027257488550831025509607814573926192018524785080641906142235005053778540796841900520925499624147657667718437388554193118172948401334056600592907476554248092658313532128967833429723342075754138974833198292857466639430125493166311538573641948926527822687362485232435622943250489514731539376024751887475220835101963779230506784457403561799237414554338764631473385108744424759088519464976887867590877423505953816578602038065098708818544527889686924372273271261680886667853817644680738102445772129239999682168894853859227078368689757855050665858607573482481427427060806616247219298209873635361781788050604162158336526291388887930448442314973763295672150501167707684569562965637110551435018640211929867749883920505635317904399572814838976769107285021418475510296901438341768578505860578219124751248270158808757560048446977207615962629060512697589073575993707356279725441357241249585103670515477845839466753265548115140278970832168055329507646483554934951240687522941440784851406255821913376172239135661462155022998502725659635063503327608183850031514375237827428738818312925235054126115978046145573875607954753032163812117688882092668556968332058280346076738151294598239411701811409012194334929211539134637728683183535208370854097585086893593809975860912823124535260586211934317049913885706957159921851171649755546505529167669856176680059015001326849001462338082230019574000882394332462109275642121144963151784319932588877449510842212889252322520212264013174158800933775562624891924718335182319614239216213533699635610739199881904928461810648900014308292461337059785627827127638674511229548505809033753907561838677773948967933797493149669797730105596312046317323458126318066116562720738696783980594930393085592978313673407665853195478444830569030038832149689742672472816304923567468635097716520803456758861754132013800007056199043024315040060357141442197492561593940441285064016349659112557563048546396446555022889547517578022693293402157408882628230469769924020886847546731657543229219747543600268290307088438746762521223023384895451082162700971903428846823859462397988741822140959914112796534917643640224978751502072721805835427260878693697291477574936959576751999383104846498224700272184338102254266894667593615452136508228713338373621609984549617244820573265320184242404845433292775390190046070128509088820560807609598141672340676941609091437484420664626076700474886315909906653301437531375892964874927759700860140592579273837058851685014887724258846040361050232513466721410899487141465132823895445032567796009573153561698563030294238828853486383107299901675430339783399327410878295175821515309658628656897129955223974744178532970314293823160159882620431866217252999274865782145882793108071003136863050269324901204503155895776597049102032482807411377177192636974368654148144022903656457421193858028903879792321429034153864551622676469663078165696051452160780068376071172248898467374303548295734299418084668569711842054263055036899856235066994412511846638687646621677499866223437591895394516358577739879803025013995538856683842108218629863617996720558108214219157143986999258003245080779949800215637397806037291826324856034567712979406166475833686753637421473141254705220917757761608583275317966016807855442675464024757674417107184703608689835102589127474059364942057554523903588961513409453091259067166821477748383180907569241622716478522918285496122215072973619567978509864245299772217602509941369196996504688460216991594548827397367016325526026590665637673770269779805836622346608242898635141345982593740911242811666903094558972793061612396802807293265706656485108626211578448403618723965584947278304956826182145423035289491500918538324903091213641617618025523005795865091809918961673933991346745263024139261021244288664209709248970109015214513587088187478651471731964197477775089598988211398321473213936539961409688905297221917168832715887824511012998049095727636811610892265311374775426311741877351199749332544791781499340871232393245296853434121353680490867478350398828684090700330432527861553390272476978043884260625315907069151816280089581476170647825640210002929515738867994823930367841570358612401297814293425166633380039048572225368216570165856824591244339349900024286935616034451750194723372964664811531212400906585367029900650468671517045619725347189800282101377808987632862967660646002481928674257350032642837391772704583168464796448666411869678637769089546514136262534657522151489940920095914291067710390837734191129949075262670540467508328109319141062276613344741062203811010859221202094100723044232527830316023808722432942913216663491914545156583888790178782104367694973981791180238914234725903008898122822063069878237977300934390678018064981764859405520498200466769737548281911699028475421588904519233196791789881159318084295354524095234711893103092579765936063378499816328942654176238433163964859511461661012630763673287557497715004629453553643712834742167869906974672279896448877865233185760889082873732722948081530297546830534344215999781810640563776455941173317523111548518863684335396297603920960957172925490599394848292757708264928628810389625346038785002294923764465943408086325319525683805615821850314583408494980244173730078480771598321600068656252279104285961236611414083595109433851227684540772654340295100052332693253084915543952740275251544471704274980190678280824613967888655552049619602176171560905946317713162201272714226511619772197269859223407471430389964346830217011039595936749288471807510086676469377611872696499935570095804107424182453236135196630981390440124537096121574790347811342709499117264460976203280510761565791836907420094265514255967245525231731317642378738740565382246394549845095316477237508725985949516583228802435229128720171717292716833293589523196263915526097485982692629688986875330255305863629789937375285933567347181939823921821359916914524970234200231691239280395211600953174686287203242757100150003509713143352607211994717202969628858618185395761839797423231989997015414257986680676107807476095354825202245204752559609191934048457886549825633141464240334188809180574413034844148958289871130411141095865343145605741801347981556438348905412903026405884918868148549199217014616709910486849092977263503445563879603741719842273402082424586593395486668594075169578886072009007771480773155864582336033513827502803979854327967183708861114027505520422572045777826938070283198095969119129838293781057474666413160912944523610447906120061118921563213459200731249705084365290744117563887936893707576270541931975881118991286428385530987945576497756137858412841807157174368276784249800030027640170379508435726053167320652848730592027166511245662062387698387785908742721527470601615042043123858597223710108746591041948934139339753970558020996700878169460425275881582903311238949415552560048264257239802820334199761560062768250987298380102379769373774469157822977199383881512601106010626667811104581220903739730180991124137877784513630334413802064326565870193905289032501532732909035719892215080467240736437528291057643775772849194165899915586280197584918933159559267500986413610415364867014137832055919236831794128072585402752728495407410296976022526736731321767884489530003061497273483524779430171575886819352861328141736721130359286795070616677903372143391895534179420725202588501822383661188806057956713900224699190279680102999606421746980000746333760488919813173820575411320419589994113214216822920543977303898061490489362531156748734507165953882870067424482947469462350793832460453063326170330610612282620880151443333282762806295297664466993499475459352738315267402149205294774446881336307784307336589624617252593180295723140856541082275915695458145160207353934880467823883874978125018090975055932849685595522429072013309936605925234367736199872661936912073728810714456588252857796797252948855858422135447555499015534895141446661038290206951144993413664841047686333269080102321176760591556006144668280657613942561478298877139601480652022386132438355289252945071920198433499512275524964290998207184707592527685085545458861914149723046616480568243777297526981735901477812729247281178065051313264064028907334048165477741111252099148172297501666494315140883150282145330720892944963451807707787201019292102099971328375547154445698606884485079421682393845713188951933736276786066973873711040426655367299925352411869656192446119520667715726058388097398008378045920912755295687565241674096213767880424858280494463999641646634366644131473434382130187252376592384751681364635140000283260309882948410527681953195868501390854183532666414449251228656073902568541041094389960862033781045627010480334477037842478934412184405325285763214402595823342260725574559481161264110569778003612925601811850401943591568494158242496610430717360112511900188807022892727824895956468308341978231902050404804245233382443185220973360224211714829248717384563537552701245907659526784551112898138047415222941742919242562443922029089552082652610791055388912382890444082979405956603983592267166163727256004321296263814115140868148285993662184663623747412327640616353112659645993620541916760712668005782974221872540115002523401947311089082822704912661872272994590774624291270208443902398405332701322781041327386452614424493007001240137093124622719591471564444174010137451327828119016332324692074124640678562762313109263405425912128038506101664656342958889873597885855272010903514304764573019594259590611241314117855033795828999685713718909371768578256506354499273730638844555893852650415472923821336032242028046970649978596154731976631673239810806083015123989586083363492325392041912231099091792694017501021003293200340680420509220009441659999936554608730812488652452159571675598221258226774124673256520185092334320505374320151235680200976089664012858561883475895390763584298176543604342206880516962055215424694872097028031377035202430948617357445719677387048225510502380765803548403945629208600110175245326102435602522711461373246084825154987815883749880472130922502802288071559437038338183214424720940028266765621300881265274460664762767083610977866260268674799378034500579707227724003219010826974420003842964672020122921210860983155713979576903355545775489837697523209735788113575379900388367726197908970204157690021613343835917790833771514443766357054401720285017354273135590681564584772661010662149010864427043779464103842542428996561837745037834733485496438848350783724519076372439672991148185906806521330552543222425131990350694804247229090388944295887822443680137071373513910555989691257307354609040879011613940290269208820281586636850754969306124199019731810965980958663113752630464890470969524996188763326081643668251919551479907491987788508330420245252442176496645724026317288106950883160389845901215776693685455502919307610890268528539347415050898445319169147857387662336536771214212042171577924835712631705672604464528832449240393388321330756509118302239657418285540369237007771318062657455343225885233143271388392023495583989656908825698498270706961334362987079706403455253650661436261677547667574935726161715105972424778668505089574704290635842198097819730752947517499035067216041846516419139394647065270656104030951075664961224039816198214141748408727053592580113226632647866640540712932230759412125371058508182691407426762631597059370649073230818121576397263069207995695426727590761095237403965650610604407285740945803593665189589960694081909158741524976271982003483171841876744726672124794164564045103920929384072645562800155503134922278723150541495712148732758646971307563503518644046866856749005852810247811301940635181172578328403289655009575401459060128505679437292881486028678237100005917991542783050060120873390809674121643079413704575387580807968712359160728467953005210928899640053513865399932130819811687766770310001369268697245293997786399657008493832310710681536211422710509514106230632251568355151529041362040663089420455817928166484250206937044177706971671048564715453233052210983446065845992807427224003269263430748723424391091999214895690105659156126562064871645556944771741735053122302152763967097872334013636500171391940889379197758209609864539848993438774328408557968621905964456263951519419785254455483985019547771106463188358414701738080469532536392887570547842986064110355835395433237159866016017453806127770034567082075084052673093942952103035125071393338652178921076109423268270012596997116829446474046069293076139429656733759905087398600052183939112123897579245175283525244054058659589130780465698010032774096133579997363094380670011656574391270599675742228996260153439990857897872526599383345759789475227623893095778926952915977236425742717325010721439535395457667874372752469258477016914476347559931051200937444844771276107793118554317574509535281747250681699486415792007685431789757541560573955077816182926931773853570443719686204171425200859503612098546999451446001058843383575469037531871372499626147250796714135390299780818953539443344434162237819508073254578273420599155785201492370321661547336062261031838147169574300001180578685793316196346963247456887951712894073358573288796459929850761687688071429105660459807874948573584395243807085623495809412118975457689550540111891910391375741065759058947032351985461942852091870358013318901384208749611635810164509719163652423408490831630402980559252520275903779455916605902682467547243256525934848543221204826602057431466661343051178694334123154083429912371194565494941135935339201287649785547275131288511428724382008402855740045351223090411236967363910963616362743310098877752647752119967916684856862190429865754889954081432434623701120413033685232897490019229567682657422227857411075264763983727322918767290194955579290495377237737913924371090942296251990651262556241487812602256905037221540676374333763304577155898478921565166643319743342347795968409374576906257023365206548606902360977958323180498089531849563802378506110207847783877939085466905883728745943934282333862557880614577581571931444438321936223861444049739493908643124697745719053707873531228144683911617426877616608688549193324079069808786037613480700270456220203177010403933618151125644117962284315113793262599362791966347586102758172263742226676233363017351959742816932026573075896544717593729068309446401676083660260660803915327575854928025407597663701161020328746698846094577759884917820751794164171907797460688002283308424493127930628351830093650881228027267807722599969628225536619006521070331579540627139727843301150338535056647966724091287609333404587912296811461891174680067649245744334240531820851830347138533247215311043169922305444455875702170159035173628330416179416279506645503240144590809192048316541149374792600449819351580187003663950441828720112957420900450131927953793900825692490039217069736118988044621675771845767728909283486572059762528755980177037006365594162358770234806746095324548976343692158512336891746909396180087616184340291477971268789535359293710946704822102696454212884318653477819708653003907703663540331664315683258993644185692377642773161771115349371466759703947609958401598539645360750999064617558642007273623532435154411960657523353718577160421670168374296808112133464053423392615295461395892873645140705309982095346684299189481368647073910314979721701670748311940262135170786936182370851313128654349350055340380533210796866847091296504617341792333302007432786512570776586970243696314179366258049795837009323765828551394199394842200335437809158181232097933634702554442295072547076080426181967981058301287773264046512088512148139691098793805371216484257544880866837090686152574127579837439750266016430527036498558738771795370699608106948721931811315359139142672227055153148378992425327987080260032215512499978947432348537668216178660062776124146648558807819102431293020721588258297642628438890694524738532625804147806350813596702393440039581516841077467133798962451235529662155084834506481940260749720364426496492448507643466433742887879653885933108169115691885790296398687917150890273501327393270429823380116318772720222809412189815095309434325645007182692459714497421572944925239051946243019824873034919911399178656727712926291426185348944498125026917824311256411085144633240281498710318656859887008028630888968220285472935474378328736695525835057369670381346134131024949439418340853351192543430620777392386560841131741200592842262273691818441080560146962700063160699824862726824195316000038247848789281742448173676909970308955606989842251994741660889072798138012553475677150757359909575617788049558209503474613840723450895950209678185355892026061612463531081936122069590049676936851344609097765753980812209370643888919531292386148446596020852886703696886821918751456761054623241499732962869755704723993021411453520299593819279512634198314708446496666661493104211299777907487032569918298000580151085915288175928812503194928000970620430751644682308240839382612416716619039964137593704516191269826921008585006686920221166668899926743694804784186766059279270100798451154850870162524711520757050551501095343922274863779133761468204993746592424080374767256523178920688757124578179431069097147312723248788697229031016583723458179507731326527434014836706125362486194782735135946423604011126639150757837206745114375055137202500654540158967311496035395325435882285001490261362592837359594357702487531899779607081623747986380657634539618912764727530271324069046360049831069717202855920572056782253011447248964413969848248012909435451959393045773710682203571935215986413049351674597066487103503158411979851426575100761875161956993539870652121236832501012370023019213871875682939475435029612086729234850130875170961329284877809399330259057227107165591374994046228983412578658201701726717703856939657522312089415346719959398596241668944702124889457481847209843778074721437283373508819885855804344813518828896673780089628982152060155704896361877957325491156730667213609502059400551053947147351411405050335077933116810815953901420204832368613747090786428796899225391029731035823178372101013889421915035149349535954935918581585166916543999292700159978876499248490613662922213593996014077705487258117068546075316774154506815261078853461135349290582566875338465202124339082880911530851620307076404090590025388815139258809166528805658681285630147935282330044010916043471464396153981268310354311445059709130743417842295625572985742371785765069223826731113483060767852725522894452130353023529608561275189457223692483600527739369056341036058575911252819942354505699644045996494883999061965997946190409497237704873706741342879018254360620356058891138567386247842879321484724088399785789779147497743935203803309075793580096291116653808027646495527696079125776429926664527215870608393176286338370873798466439031066334749841586396760988035599566685169101771049066857227939987169945608769208796218134349720281129538831643707751403889366791189467978773305599569681514951479828627519031311110682213168816519803865170566541332776741391686211245716002356314966519535231728629516719133399564146015817738197016683857070512639973772490275360986345839376493718843332510962299983078764083645042651715208613098763377412179705308039811730977259900051609014604736129545725785604246135814374361685946549278983878322267468316197020488300869151648498597201138947927339452909229947535100343030216749362207737144778082974512563743308799097659539746934780203537846029482470447587743594336266595253217452297761680709908910096078572295495426402170764461686547049792529696759452683462902850134118765415912032375659175423569703994333818339409961380269011610638710254934709728505446956884757101009609707512578700997657994202268678938424595086011847524136495476366898256630144566833978080000747856729320236668784057210734924413080336238205215825611729778165853990517047252646960191993270000544907629445874924508910174882300183221563112766542941504342400669511730988968695561613258438093264776371315547245505633587588793426735189935598527620511534199219135986141045138071309992387680044446376016838081758755069458514631330987737991471233310637463818576174136095577117009209902342689272714239615771272391310280992196762100943598474269261475012088523688039304986246468397018186855925834706297766626051359816344732358636829875356706757119162061098911150385511003699085572184336755538622014916248327125885113265259626675757967246045416510839248745207512397354213575932819915373527222299119642906153176363010532834666989861236391027897738303771068606187186614425309276118941479943413909809543392344502299743416351827366286383883737981661494383552437554579831423723990293165624667551578131170989812157328786169825245269656019785710487397457514887061696210222722764388083255757851780326010968863045268540762277743812287184283838782092420195276457608859499459151182730600597638912479503049579099854838617500516648220719136863809208993978541842020725494157773074329759657004070813913118711887989100968852388430290164176073579927385858519371286735853763342555348382592844854943601541414463185601099617622693956768905397136823026648415988092695458838161072945527746046279473697286744073268163416434228533848080811303712161750739744094532500068912331339831210441211591603758518703894884814192115727084793574661265066730601947951933767243630555757130225309374085755501269099974765902890005120495018274472444830396281052367080527754479827623035695212558487338685276708505053147549877703894964501764077420049367240112448161971052050185157208627117872936296905370977646885335331416280895238182642750420200246656940824480339239251247142715669104177556101290799478681851689906504884339248250449731670299587574138854056367954517223911884339531890071307944446082082137374512097464400032760265327379731700237592232560482090829540511531524898692441433629755347545042840494665055437488553903463490797269469799588037717224420896315226769327633576955006451864858179404748494227605053384090113753824594973943565767004185887561437549538047054206550015288691117244718684851311943655894658099714805408941058667553279057993822176555504682055310022132652602863799435078831750299700346681307875756458502949367740505614020699718293252528248543516206795245821914056414146974882071979490702401501537771263715681928872043516180039887297274998708653906269291819928844846554878014611518216427233818012751980749172144348669849044668631703404818560046067996554481085840095367259882793111217316135754567400812324521196514180663701297859473012726124451502736449970547727920702572499973445210407694781717621686502139571181416261437978937759198116634164466198101822021206540647437337679807544357993979277380630018940419869014583474639457700539578704508976992385997679014237252397109252626559920932844759443147940651610741713430431738762340291909562071259276219160763645514504164871422306973960685876617002371385346333800207038853601487180455306541169541888316026121016427804155870949347070125422367473135455485258209277277448233639067780393745163318495011358711943630947352673410458699561503481678401539424443879218775737873843723322857913799957004814786640394839435519848201269436815046048492510879234480170968844280425826930564896566401323704067901562282927228773041830505325028245454850122265437455746703554480145954513087235229741780645420248842508243424715412947256283303179663523829267559061403936310460732683578084396495947157313055676941429481117619219620910983802015301945765512895842854232359110868224413116061198004924918282092017125293049003785738794606901515324760752756267886133006922485393769411988055477432839608707241531548418491455501234359956080326464459466132455598251864173492142851235598119307712839160474814862796023119134527055126584966643503304468413154825213195933272972380115518910744233608759002549956578735834827588169196470310771128493626117110703069643056595743675337289004721824317936109109618831827565749276055247061304623343444590886668318675146678070784673037548920487895525656153058520366021911017372052181203417087610167459172549805062957374498861230434586546205634529226392469552603326020512926014143692719702747075496099525082148913170397994634014514236282208789029137122460344536654260322950126681608904499029451397477206249317325755335192780976483503775882534121401402733724548006478974368007900496316207699091438390635012889311442784301364857535994958657705821690183036579344725017534452757162893989602740105047310267123995150052163646950803208462012717780308886129593505687709865769573941399194024211259833303150719180997812609429264317846810951789035310371779134157202078160118410122523320696607450283672685830704394640132516743756147723190364177697049413960423363533688733659827049152436987033743311979486892572610063599632400576972320165427404567371370275668080390534514640897886034868817938751755501301133100486127366153885709000940159062312017228004872670756877468495258248628762780103961685102959264318583202049685494855577712505107882435859931522027062073243019939072663226466101089919879552817364706839276472080655973189759827750695074457584868526189199497617208743333097040807718844445858850599275762338765079981158771674794911526012578896662947127565758014736387558079942383374262588544992327906854662897168947802073256616256399261583596206292229865011779393533055404825247790685607499892279088104623782936275024069098193758673983344276542391547751502781592558979787313145559359592327283904146451293804607860458306040086526826324431297459190552864328801938586172962414173343533889740980278119802407433239149008832059511209050617191302075449137947144742828139812575658925570006851278766109957144630482433778761889083760723231207544160498662798241570205606820977713122587084530151777275403237376841166265076912526985602615761745031137301104955559507763493878059075028370587038740779761537547612976190127579650017451866504340835919260250637936140839478958195152496150942020542953736942950363446899776312754061153295118121493593079213659637688564729561429961743332021229626874212110406633218717331178764681198193119628877683972953112118617012316487742305155297373397020253100504588015534666619624842725544919802581971283886596189790368266302354128114290204577632907794689507762600923597052349656773291690239649289425052959675876366077722614578273517479323594019395180271881069477039615795251224459355092469036590495276772550195766423063957572753451278781976340392160112743041314634686657637984426845810013123266622830109919938714149799521623302441844602461785799415815345393526485730206361400010548664360380140946082449699148777705214774109867145369554506211015640672498771638596969870542614845706620761219370876728110625288487389447286333076670724946494304533566480826595064508317002551376786343960607518804251339991822487305058703987986317524043520642364905318665023533254777451879875167210388890363496213706575473789106133193694645662847757378774441940003752401310117497992391201198782387848487231071027890978446712363930458526651563082014330350380629988278059564351545464709134866629285624019434085698603292301029633333357022439482771154353590586332424261982930419061402251422423805585031184793118801301017510316376476414492990917728164533192253886156313814327170761414624185995568569989752497814501653806044471300600925518380149136895845634524449672142532916889874988732860573628775825418139445844732535935287821799708946838173103902410354446001949359324219592144938924589429882065123456470293586288314326321290578922664406379960076325389273744573361718825927572667876866426098061053971273917323188039057125225248690910726361018174119289426064238909360982163715540198647204100921941602205361839460657779472898811914873226786305068394081142241205888036198129915587011704760200274195151817066748844766184532012106245867211104845432823722531435765123000569756348677435442385692597579473496001582685252637446967719820520687025494732120207453668279522024739633304257925361384870586290126785375680282707246398387096590223512796576117785981083249783028053899815550433948433407049463388893647572777457472948907941927191534746375350135188554153786005340682888924958280009774277260956331211069214382071281362005066778631903692945881290502413538652374333144959601082766131257176731948239878990741987984783408156131307549733065612469104218658881799786498600931180584177052105936551186852628848491718862930666737129728932442219319602850070673484910454185381960531719906431546237024241290197779231087906453364119760507868092343379131652899931204896822653935898356066924189461909873164738380753216012912703930386634186192701465778370699032436071070468216960854471305085338749312602825183579837822642987475018379499372913869084205129025716226198413553321035887936374163294640082849009719450994104885880476273761423240957825674979404055818570383297026536631147463012938392039589682791757615494470841396328529236032378213171638633523400156561810405509289472527720907473393474120944834308694319759969580292343711452649984755811969895502044289834023791130495623023310857672752688270842995264826652181213807244618262105869765442957358603665248107067143298137437380107128680445196047797909203853243134178911585695354317994830099057608586277824405497423801611829071116700989938361162504482106844598790206452940385979800453232244903498251285102861836593563400725172547704338465783845858516366190840390267620109408692337366752617501886139110877130129063644018480142806194109204292172626665981363278026119882627252751302045565119092287542227993727415449598129508070467779996147646864204701061299717802685114148858765630971245322211948290061370781552374824029357857820526013804000045647388911054966646565348070131500682236219459726767189546838006737802551667702868303656712956848688666022434926341240928120772980091848017099473302724634442138132182068397055633738040378561719272200668779463623278920782392916069480158802690668480526813660915200194050782934691686495292758956286194868601694405381406050339716352286237193238669218961044783419587372285103472486357466937570917991784543820054613060160108406248834313804994962923017828114329957820441867858549588522955872487255285388579528169404950004857902839419993843924621919224036406111147294747476039192189549754510730863964350501291852543046120080096781238026619228152793533929521895055916315680887901870588989572380091957986344014057794164494818439996251015974050845530642281888041452277826058948318214877604236512645119705433625545497929069182864810649738244906449612548379500348927062423111319931347827897039043311791756383184666858062335522366332224922667057262261886877768035218758298893702218007625824798491861466039363181072565736997379462785349462682557100406617658219072440284699521689398017134626462351322481526035917546146503279191763369859136896246577423418337265049508790544685345120566714285691327775080366507877720465074811764728149766921720905011006066016805864382405498677384490539787093214001746747442347402396101922063133571696546917843984723281041725595050712397754034173152770714398096748301446738901189957260291792326758279925865370692077963321695758491472883697697009463491693772084385550642739857771723246535333100573760388234495134163237698302972233188433114818189705141749364981126643089134566365742859194538858048759206832669291105700251944684434830638323247414234686801509526010464678943761835630807304474868317424411081181721828722059983048484806904403941525844239519142407014467726748495966678294637433982214494963926968234619411974333694169777191824345837005192707413859165585607432644076318931556758448066614115216151128693022113882913094242028382775900602546919950174345547631020245531651977638329243588490486209904438645624844709661845912268440605772208192778752745367109635117803512813421363344779161643786798795982373019705030515510966997624300512950135835876611334085389549643182820383305625320734476685755987572253328380372310055726997364852509521876664322163446619789089119026974568596977907276912714677749418294467101531207932743635373511411764895138607818155558754875760766587232310653110577922434496139949608233402678375880840506178082856687890315738345921805401855916986945134039434151850744080045318129421594297954254650257488897851270289678115034843797135090653268092058798442746593471388685223783419383871846117613133648636364598726704180182427981837005372325171881012753834706468569823582451403766369676002923921965080357551975640454344802635327049277758153688672967520890494313895470210052290692906530118324377950659257713317674652966656558848503052023604479334168592623509052625826024054206090142787398642038923527041402850418015008980678528844615280071671530138717411611285026723180532568437898193662482700903792592935890893181308255605581572784023757225200466717414930657679396452910537047918006108390202454946338872626150438258858767685951879878201410358071413834291599712528099528090782851278006305467054625591269898326845656744477559869514794158233171832538749017898846176206517628504708125845784721914338036671327321713044344490899906247778195210621560811702528676764056116974022239519303185107598716350956308710098970951966918319591562649477729978877279033599106280724764663138321030602462406796417131889161332981160800105660650641460724094207131615847101418427050304071704149717979545439020911857586755038884484856991110316326995282029410215845353359767763918793031297519117692664514891069057404797965628216418743804432148578690216024693899049729302942372953445069125976203985869212751491872601310300522844306373693379559874841128101041160059747531687638126660896578366325040913084494719148406842348483389830161997376578572143943676890522470172077624261512332098501620149930359381932837619591196558545014066611955819142658284647302197622835836913876629772877531818255860189539271133763286100583878417526384421371669441445872914309811910587980474587128418929724895903417903210106006531880898938433198943899536878830998302774987551719541317844133901909693201111934504549289356560262270603309515473020897780184866843299432572741845083705147397355397580972020727882961962719042242338027979959999824013552902132475031345925407690451288821618394393264129200128084443237374120757580011081292752956689373834133666591388701478058135477221445895000844095090028755670654053035454298484667706003821962345861099856780124566238306224418457214243959910339231399610656680279098735578584267136987976321402094472633740518439258047193850342652235039350997813475318940275695115182718855786557981396697561534929954640323319426092154454722873376363050433470582594972958161265272392872017649117857423890290555710663983256055521361902472259200880747853073715210342120152983589829598025069075481173133414294298429427718658743578151658225876778691405475756750960174604366850707473244079586474141534434274938244806564135516944744879209138130951056756481127938884213973629720814205002208373403846157133012479100443945150529297511172939553158185085540040147764510119374439323671835017726667938639338201385712994044844634736868440880415244152941165848722121445108433689857630113863228742367372899559084168720829794036688675248271620891513850941976442989956798110299771242670596106001496329626486836599651816805542562456031607498370937545411204978390146157089088874974881142654114176152365894469967994693098207804217430769380061918655995416628158101712723779437952853526285166307965765892883152141327095199570753996373502839169996717775672490553602933514492710600340188608843449101020289931668816203095757692781940654559224045077356220291805505240350783097073461549979717092178602993847580146348875311578660810908240680093461440569663008657718905454966042451767548830203443177282734314966605965951937556828075908257729647386328910684880026854762710167921027281822122624807474283835175980282318432559802714926579066499492713759268368087968530108357966800387494268110478107218314172426905464923362016602901398524688701773733729614821991867204862102171900486690934942365432353494866301028870732736625811566387100475377313876218258552426977657917647503531509673424162363516064197035896352387135868551531092516250654745369187252119440683559381531691963057450360233079743086980815806234270520323427547994637588888856926516818616431158864321618661388296358262082540329756455901451375027993134391376738247711634742938772830045530308688472345922509252786779045085212578718253528567850243580283948855485459342055250635811171112325159191017085302101455138268065721946837765490324903899608405725131024027309732423714110671678578379083163163612677088464870023924642038633682438294770931246946455639679045120269179584682815432868300805215417582096693865100141350004949456781190250662131993704855254971226041803539777143641234724238769113405956334629630487157406097145383579383897682230973132879041142920249481840741034074024865013482933448862642649389623939329014451831813433706409747517908119718238803735226987273059519846834762360001717706701446785557443241412423849725801909466626170449856499924497120140103331651050576250044469149421280125984641569583917721281280151450379147851012532484456033576445061943062183618769089442091104771895354825990545000407910676565101824600788313179772312408838882146698616729974580734463370999433630096105355076518450865582658100255643914584016169353619050183521555676769618985392381241537690893581349169895718843281005063243279373859907888033954576795208963397297102474595336009556367079456090569478863845623547391543453665320492835075739964414928123921542349472165364912917789353209909691488357410838215990041661187467616178602939358883872835740096948264114502005685486060862095297130722489540599396593513590222229925193351412081526031437755356517242294693440743591243671671402725464353008353057442040982971027971412444018104246349646558063513911035368528979910948533289664864564170963678287203664570510821279229946815652692138983606816855153269914147890145608164266563238923477588349702770593135847922069922729864371152584479785621307663974783610184391643604468693895302088729570024801348464089895540963167771901816729462741917501081998473112704568325042088567670800794460740073224603532500318245063809499952204292545182820492529244925116681089820392905436540114185067497042029598318756620582247698042863888752103454591607536677440487195343569542021348010591123348421887226356282138959088365106538207872175529791683372481638083773799982263658448036957465104619878802793528718434105595726215841335528740297544326364217597523168910762400628505469002950525286424538239430284199370164010916652181636642041441783469910369444828225856592694575867985220688738135720410912106420734441475112291444208136550324805306871704670872025831461666388270892002823719132072176164131311242632332553597030651664785749594424404798293220924686608284358390901961125743074175435803662601094839886290145929941683164864391146079317902436087349946937330223252355908314061578844961496058506247835029931072423746766442282262665824295411637344657253668245401076978269606724139775610911858430649354326493987279320754689920855075094673739260093955124773890058908097192081080877824666565476915262491617194531445960159383872287901208630748058226974122553823794933787605177326970797088091759492622766729531492963874294684194418205157353648538447113816986411535535756855597033451804154694872641148568667303894206631244372946492877901012716558810106213588929726794621280193375058151933051163526864493988224937166069074799469319028093255705078216896739652103057791086853798565390920896848154613239890964854666927605412036958080520561407071151851511969122967643218963016449988779282955720923900776065082592140313766347585149997508977289200287951539096066785973591369435503155636875988354888255722401196174534530203058982824571877343652971544711662099855951595457964725171085819774908821972449462124709608869407199388666099016286764984241901711694553765996568216191053374958121630186248904432501350769943229197171417210166042994277326914289345790126709179781333738607048778770521808970183375452942958141249430933478816641389827190451516277954760570536653639738749978236058285727233980365740710654132523153713616136459233417487633983809848087773901229199273410943518861933376001835875887610695561366848822168327699783986208396730614650280655878788529628778857589690435521679514749271901105822252082062985723806428161435219351320085018457985496115088191455756114948638644412212098735731746913444233736702877947475956099080504155733909902616068515303941897016616079814305833010731749006183523695156733304110864532194717231969207390251865593211176022011031291378547949585019213706695528725917529037820127037025538326568271399323817768523783821304513362028494121899984820691364228120026759036806585618662451012484039636137228317680386962595187683249905918979028965179120640250198137420460935805754749860849235774981408723918966832533047647716444327127713561517853557845440835724239638501679490274215503233808140306401203175824263446815923871564751279672166928306372808873831495802778681621965559909604659906342438751632101472571353903640956666161088278343015561353033088073036792166657942469558072083569287638519555814398711431930419414071813273616119410372117444733778427695896252612400492654577171680324049469638866059465916142679344113267361018130471007111430152168444935174248272844255139420736338738969390506043983493072080686773599323125100829208009430486861214953794579242335761619992786917772084368091888847156634041084772182640008530323467967575842218439085005089044482930700809804185314905580278091303766013230901340788858033590729485465267912227511537228413502083137675686943956977351817860721669589503450817204761491955240709558361047015395721815122064068716234555870653458688477940331918386679485282723096874313594232977143469511758126309779251599557714205549386451642020440230523317297588738972674914236135001657691606034964598957840943680186284195970119576229027841857214225360894135633533693153887210117206794349579062597933054445853512993867496901059520478244884193117350772249366337221399000777771014459139710537140353302300198647591795147499227898113691344548902379716970297098995510748219179474927868358105360768859590447956310361405379138412991949767439962039138454151479504091698265587039349139867498695781906946317535753774572206867140992829982281168246973600352476215628584857907949154895314228157440513444062741431990475171554166918554760056176143817425753479703699696269280840810892914117125486122561235938619104837676818682133865423000919710031915411341531365141260122561849064236776138517123868803161495422293761738463220961173639668381556643145243406568291357537809928192987327843193430250144468148473295385872611104304656536725397933842108043561148392209675833912724288185610209417858792583615238772115025281471429137704653992791343175643239830865118031826900347892955325918435520112317209229190537060114214991083364187191733980234924139646792006372069328565323658992655082148301052138006600637175020426210642207924457548787840006104092661319003625997498396240914037376708781205543934755697725626043519898149924157840714894525599093409810596348158359712764285572997524988873843728886832039272547816900877372230977754350666350113958686627422034512871874781321804426391109446322494922453700814381010929748297754070818050127090219273170281148255655441799010211726616769880799223385902405381489753563004171424523138355290272489821612709144576645551351456195970486061605049162682426615235816833354141405537830292059765458640163728980457172681004789312956531907006861748930980913656711457414897570943508341699699159846836516373814544338513247095946840122766176747033799376214117705599620391737310514968994356744818849126214871892520969716534504113781323100905839449780095091080866515790709675502599875704117763872537035817925841191435696932852318588373330798963237995663974004639340649780873332018909995874974663823434716896546646962317759761394030462433032487919029965002416926232679162983227906105146097525613777301263903236332853409669016471567597221119313600236418127985654313131942551888571689417192286532279747129371249953233829089709912556473842464228656385017098934897336122170410457695470513170674568597985854979759671243832365685514077802539992738709687335676202763638173590474529539465113751313710001410060152726265568637000319213478009920410655045505080848548152500817805877171685370927116862957818235412733690623649786010447559544135200478525689737932631252134067095250373039363884392271870948405465415392954808617401143253072602925811440716990741277777036283208498713710211593487802188045070397451212885221870336453544551340590922639984764392827370896338340572177681471230018643201148395118607110145358296712026220639474084799464099637187391641028465065975522304916298641128971542428913382202591753863155362576083637328435019330093716618644627986620171177929918012915454090309591891709186492193327325330946409673712118304113059773237537131400864142251174820394727278128030532954325026367201909307599933686493764918715081560971598843091130341356999529856754556171909933975888048763051727013315955568606768910333323057533852707141552774901109802774867622012158877317282589634854199252353901329863656085818714080059774597625771960068500363937974496212682205286940972833864612897770384732744469211449611686497528974676684522651508990019250832577950986754727470844196700730446846660368852724558786982215326033743237037942562637661048336397861766101476102969207531987765559924048730457081961066649068869414303707799773317071359930396869222558230911726730770845959950502052944866402430049101819418413135388990390021999346106376937717148130026145905983915630788732030142035881026811504085453062610617248493238662151919772707087592963088599722013340959264644396411174319453462364569768548063414597979851533514552145745825807991210621942725582945680137059611317894661611391391372634731417571159743538555696822249114925828201608092018207475416616516454626266842476257106546845350238557303622137759772770910822705502882206883348548778645899478736915184808756655871443758831869971068539935284487027372847594116413700785284113721061769968366779161699826867878061057283822359374213811275671029871660509596779914825663543179187189118176816819063753698060632505880198048069478574058590119871070166920852581146013823829284304185343362988230605703956090720143280968037722555514536790176230329433558622697493943849829617020527848727518496761172768557101772474555746461857130294401837679937118477029217041683077248488920016382299526500969460185601794543683630164404567254557611009082953696548514741652283717244278777331070079368486117303502255551815495201548297102970958276747522237427109284206088395437956319394886829743007803810746430882896717574573423889757866894804624254104267726793407593854848722496797359721662204403518160128431668722044424966983043156835387177705436829631797813571132112751294489435250093177441449794519690790266122621820111245738671275361091459222734518759441850657753027108648696552391632722527344014594689388813564784247747117550707247208101223339000805571364326636682421286372958463415186884287293436051285408037002489889203749760509965763812450072236493990202918212244764627365620695961946927964769357610238433949776100639802053858746281680132078050552575691884294567028358738974733214061992459804337756616707574737018857254503329509723417770817320185625582270410368764557330355564897073494342698759280970838078485922885533687218758724327078273618934339857817985532630075100935630995371967524584493015059016124220654602104408623307288932150237923411266733762906663071048010658089177321947199253071377102858037981138587336468964742755704230232509511318379140161449585973076560972240433306877945634667288148389376507987132070995480995588701981050348220803335290170558345119875132861631132844787384455903874568500436231422288922111649839373687636751367589902506578125154368791025313925051377752607312356451161590245070742544952073859438038561164887630993703171196274856814320352497702798132636415688716702043874390922942699847637253138433068283499449118188716135221363294091170436262817750061137626701526812353220004821962157252009602459194548865642473651499273699763349963390347306616744057516157426685728780564450862125086781765575630855723911731908157542664357002488030462405147811213739029105210696729516439563756951158986763099537249049642376296893845953132927708567613095735032475211481820221833340780030942511918625322909121470034659486224931262269323967013025495290110248071626253761081745993937968248166399600725708266652968808934546672217224659430220665617376168971993573495102724147300987105684623909042247511914029871654726722908563348933463528656172127913401829942558310780923910104757588127576362146800843046009233404172416019022537824346482962044824828737392462729494757135128693608662801110770816604698246818804495738440357983512777474060230096808705437398444343575285527116677788603752699548795847771287923765804653681571036645804908719741610464196357621437515103172439203619863070593883651398299625252769685434301505210608677503432550830718175579613939532595673853966368813573329157523959844971153082301446640691528644726994462791112959720923473647646905472887892247141057555469687525017833098822624484803792023764039127180847689403602429730675278107342688312622215603287500938225285008541622591179060114150163164070530923033278858566627469620848618826455481103786564557069662329462129513189465374635230010603745711594698426112293719155428886493226258808541517296600589096369691539575596790479568859514712373547873529424916129761421891767492702363248668610756921974242837252438320172299001038974434301955252352233183234123800153137014604248279742173735517620000309169820738850812267531426932412314235826192907855080884602299323268948170201455805424216081940584259818856296535838311216035703134804664637463309591221025128495230057995565836649164688291019433685659740494230538940437115900542271908203019667281850540619307888246908171293578175000206809142912866929580211902111195197093458725002807592198974939420432810857408907049446017304789278412467432730039627396513884626547095314689701492946475112103689456471843061621894424203326021756417480173261240689371635173465025415886643290246847176940261542146670756963270751902545310761855049215843947601067312523062215502476838753107018917254244972795406289291548186270832769748371225440465112790775540377378168295094813774480807978836689010071226258262809502857482096862645658460995398881821864222913142478919070452623223656004245583217194334362636212813060456722276821244070982269325618652282890626748834384841096084303879416083324732003433359658389653194693604406906956209428632553249242502814787505258959608613962512558110455835745452966844083673041583010252670128094561535165228481684812799864070965903523160110579460626288553023812546824711922518130806699116540326434488421894413477560793786228368006587483022445249920450049675699762733810737482051013951339413199838394138121636417931203903927069041186932928327640109295825628727701940570053840982708277133017973379877794392430720876174620917620452626538211844352116555482316619534968986980418055282065085156541144531435651829352263097251546585486359773849616099385747985834359745012218833067212789337720777573331191682624282947663874025338106209916978374760476132403911778017421385576112238010088021218927163863682855183870917113328076278513594086352863937432225605357428739376783285344415001355603469639659422284087752723852929628350130011019094797423689903791667189375985730767741683088919179346725979800472660158507341170615706376657242358287731742444363123487121464428174246747323638258937706808999791660084168759496637364711085628236594200030083058320387202843195008807412429245753260789348852463219683674805588385484271997913000576890686983204607900538743058423615272311810804269481306484660667943358147470893066803170779665915727493014111038677965697034791946429052646668277746058908417281621625947387840744538062579478172312743456827212719895806480789816326312186931160678555983845176243920469581036313115103083111867962737828311660461389685826705220413915097002662705887143707332773115784761198823928127163781261472710845086143498109371920815620018985756145842660326327541037890913929498638322161108063622383785931804922150729223544763605247332043215033725838017640469251746337688117224996650976534790533981678064701729804023811292940904728140057294888462916207920374056311111544169497661955258536588071798610329245938298584978887998911420430132953741834133270500506106812502214824910255593600467032209531385720607088846033371768227277335407402216094877474037648364056089953572273272940841221781967370356089183741847925011365658050013959110289245943869148449446494494967449292846171324208223463943206625995473979611342181101149675305239232821160154412408630821467777691594134067644312020658442882414490746965660149371825903540723657615203481156068335335165596604548511983376915505017704583222073647555321723575048778586658173963740160270613593122096899103667876411882909445480768453851720306761668511133591396480895639685207662617677780557529023397936121607605028838539088424809555327728139317624216622992719391169681968438320490620097516362142868715682479102482984679903561335557212706249511212162109760112196499236063184784045853757606450471785884056147699434283515847126363831143250706498854762527203445005301576977608773638266118550850207420573275506157972428595913538928879115732798992881937442425278082311260903014553471853216607553996342465604069415402150234083322284382529897483706896220943717399217979142340396427531287976267045257723442335057380839226747917721409690401432208516238542725896727764565386526755503924648222680140708405740714439932159197851287972030177312166525410987691771003154070397788020543100563684053677969673586387697480230873424839479611575296810326644732321519563456214022868395599568825637147715252193073893813484892386247733027596329178169914276968349304751308469470420954466001297117216873421824817953019994568930777851837430271155016948614330283377106081963022085603022826065566487283535476985318099812003289325786802638926350066154637014218266452211857859570526121243265920017538586947760671835414375577138391786768484828941157792491873518351839158038663831999267575935352325311172707381742204407042172927441139765204003064470289900319437687411600847728776137058061053623054691135757643794742304904702597491215776058608616855372104978377020718827781497842813580410589926920347245885124191047091892991146512735948322984805617623455790943353677375525107536312111232029232427210038281784023809025863659425001129786723022068474886628608885818745114268351433180282902598445901920645357570761865971842418753906892527000657012056491712759291421286844549923710347103933788048923781619903276697435741876404534405851573160856983774397126289907184869939833234016569652627628351954131829937759448546540034629466002602160098505420903254787208787102218893194592247655183502609371255359785675105017318991277899697522193495131517018479508039826622045850048436680458952372785360994411003319148284109772159820680024830509351233680156674020631300756956390711038881330309939889098680967704165579877894525084712859016522956313160864231598057107840690252385018623987358779860249722228067457680071901737476000277804195165747455632971429949254912789389811992013733363387210421353652366532822329393247978995572282594099660819985636934792886977770486001304834881324420613206444631934071750916926571281494976962533074858958542401346086411684266403093717802798007063406345018994630129579175078116989367092971206166596782321202959517167766271342876580087635760280663830360799316589840724018531729407502407792420652700586848252352818919852234219787601295646849015986978311596091316023685452906475954820499355127382997317245809370135096349192288885845482304613658795460356963565917192772622959295565341080439686213521599805656526250542869458845278559587119596483539004984974898735276564565623989478931889598013062070920828053618487953782003052496853309996927143458342234842192094454468474167940786940835293293527262448230095715165353108880369171453240124022620275885947439735178350703757457688222264720567290227714026853208927263235147099400819473888354145853732360639739147737024990325897355757575178474050803584161011179483421133045224359655044236789400968708486392541931539371898440366519451930172194942087076505312651367056029517660719477916293416256112066024775154954043193147506937000416594135916513647133701640450497276936709771860262590012945351181261326785899201537834224985013512244474120081967495443550475894284723873073991167980673927956998901776530929965384876550902307335973919073886175732647476188917272232512647676457478156194005127070983303873304400405295724121838651242009420129946234513861942291579105280537058965978061970017387773598610488124449891903739344097667946987992946807679159715668798351149722628414845240967667503441435881582329387966998783791138333342437889501890404282288161723462680836324042018467910736695582334010495499810840760440109519699307813946102557773763709251961170820233602079037504809983685140936074682747212756732079138812130782749865312943652850251062248938536647952268404452377609997157960294500882032920756754114192186510822589864417697692677205159052227426769840385430683254751031582757357427584916173010745503319729365168563260641406704194637753948881427335165890522802446074279086389318036927351841263469811949503690790736728194543297686162780639120086790325800678492696786724639812472062506063835155006109719563454626651755075411113771054731201349972314889666790646327306112844564413509488070171140931584060293223001122945137011532793871081077998917324804286793773344725999160146890101496773085158796088602124968369953579993158598712906002815263673275037480512616436949455952067479906323011007564945929061344669285827401605666772703389382348401853505617413498428218178199331713371252874200471691071220086996810823437143896756933780800154448672621816071193379969367731468662242854160135125837875656036963497639091532402673524275881384670511251478256870018116182758362860477204170144103152578735803479944648564335380244453188304119235668873305749681775445882774819957375123070712711470540240670018594219231631459438322716552928162446740180249803534281700005822959315992780948474573612631669218197174546798385288313206276585234999633891902505309164734928410295632634957997935107291857916910519656735369110604766748565508720971288548882864105252338555406454592414462728219493485214017699886571391311552095668051978555143965706337403913682709085612980520915185753576266219373984841495292260826319945443499630002784854092864356415066744609131998218231245993642118132622018476431545031601614724970926576138475971322329736389385549216622516037076743957809402639289794085129480365079961559822696942433840238069625681629823269235482689078478048768984632780194378356154217908468139101700321629366485964274937202458881677473508422043928610383829231468892719068144109772027900794364242028111795654215366276327583391868020824684630749132726707645744349739653555194322719514740778088252542361976273849382546765445370779699371431166983078717744120367428785684596172698791801556878805468152565539062434774720995095940414576791851749618089532123472038512999310140539723553893791095824253693717780629842113123815763054625487707355637055938102557049007348533633021711547150010481798330773940474239045759158481767144009642768810149563358494200840995540582143162849688580571545101604085380757067388563684847543979685382133148088122153041467152657092279357217517343279993743418510648129023463016409078509063862030477781704284630518559654085088096500322424179034754630118198374761053540546638959830860409324682160276723639355873711369553532304399138436979586532207216349493446272989905888449002830904568718601188350659044288140456360469547482969159603389373582934431527210131506170775438686823561985801282383622024717795887076514496864411118570905100453182252315276842407353522177790531671709957815137365593348431853351107061750679390028527900752352269359855618556404598975877544362243535137475529682315329198405219815572501392543576221659299252798419514478583640475550652573259619455092855257001678576238213894890364354577107332623429374004562249524351188490971495147899501147952637563408927141226833416317489836562779758457411755482292545883159014416678704441509627219128034631179594401846390038965169643518089680088085818169433429265367944199151510833136124047172231173385126631707771738147008816220263668404169695864352495551762321697734806352885509362942208049940198584341620238908861727841446177507760291482377245922781479716347639873034386188164035546600602871478197785741076283483133985634435965738621419511290450008885370304025235604549843947587992581577662971401093107461707296257679402807221402046074926863211823296134422453658393309089405472904179729279748016153433852533602424104934140238717888589971747485308720003948213072326011921437540250834808336243051734684323882370348739122545921567548300702498778990195148567661193478260915674622014005692694156576440286701330718228520947624723196426760893518155574958742558376806273947625031035054714270630573386549750398050264637973840182217856288965217191425797716487371123774094520262013071868087076180874598391697217421826320957774846833076348348073282062863852036631440433839204212425365077350267339147063302977489512735962097637513374268238934498889194319381023150174809514531091186048017290436120384300705432178419178263292096904474597992849063411917037450644001718024319936688455660110415035763496055583856292320044099257245984530875712611122367642587479658367207985496487006340543126456121071301284460171726455609288356940498406060834086229839017581086063550403706663013691498711898680858264361849988223536275528287913588569992173015515196471744079604505579700806804627256172596344121251117700979131195213398364813038789004152665143817942452828008776224250698850783783848711961627528316515206938687605788638254421452998267568482596608316382555098812812700624020707060216438092063160762403378436761983637303863790855106921893087014170268857252069041002494449879557737362579935510713384508782797848818751576185267109222392902747527448190052646781767470034898653304833601889354175196077535221507408220945380581717527805866127905620530597447313337197858726374834462771752971089353171637944196910898796736042565442081253165195879361382750736911148887907881697219265576797619955640266361038784327453364964943092506772745545336279491900357973532575105599076680508502477481373414142149212351490426087884007389732217397434380369368790505058093337868753520068248562255771177981329172432969297198263173651432030270986275595384117032030220931837794783933453918847922859657141179479690246290975890254222592701483653453922693160730549526962404609068230460418093184023349718804524014234204329067343429765460466882445449431658832259526768389679813312816541848740504456155301790144761904691947940428155375021155193245626470050216430300888351391593348657573425810819262892608801346776464783354165088396976197984049796039570522328073537867889014397873583626106909795073007761839869298503783622191244325537856596604095601746052485523546717414737789855954936958406123784125283280751778071095435270039573619219965505241633733341790549062222348432833161785446292773038969456493755116451396044320654409276408182850552674929216235788404044221620227907396736956244759787783660655475279238530773497459423222165210605393132814618832183729560233654034487785984997394173440785484104873528433360337043222550854038622609793664837030414632188093002736946394268834409901083899020676201820206869090386650678518760117771518678204981492159407703957104566304346810029755131771501305845074003987022830178654145622208350873207650632949896998165257842420025442584338712296880426315952065751030144668453930514425369609055574452376345984003969616249220428620307501989915615824542330503943850107571916435598078574843900575379206751920523857127085442709859121812518234613767483716139587923863353108625468955392960708421850899406541945754956925744035368613775103464325800684737138518868987934036949163319581451243518819860628626124043113382445166565334331940170737749469009453781484500151472719616806995368819111452847647111618202456837710102790738391156465309769867135351777898692368577456957072095138797842700593258425196653470933308740362806408096816467815363018188855486336819676964799053882885734044396629465397585500825876575833839444683037441275477639882569259114617082585539655260889635035901811343240784808720098071429654581568406741041969117020650619074228485008687808385569673650367436213459702591069786528901502742752723560591439411525379825613508332314338575740953816469980833273119150193978549877030314628964248701059682541997608248357173864132038265610710941002313900578912569025929226199438454020974097859686322225242443232269368261939824016398510587247422897841411101852848894998029088959501285386959504101624168342248063812716677796063291281758391558642436989907480657679909779732293317978982536619376235605650573443782550199317102189480415902633153680804454456156113903517284174579885835185358208249560947037628901152642090744460384123482000433162419905609258186869441392852785687431679836809467306057467385496782800559724488796576029155297957704817060461315796718258877834875093338209732051382374253938817816657839924292177165213369949470469017708820848166498866939710897115768007586029617890956224374315029813717570040917234910159415947115949373868130873361543814964845237129483987560962554318294802369040681905940911084200070273074680531578029740987371138187852117794263776441155466609947654541545089458932471772625582542031025879695705916396707532451567942563357474487324280782549739760581324350006617562396074710382225751318144869675286156948064685219600168366764974597756388710283017432632804911891365276957952931339415859585249375800650429692612251902429738815538877261529139968654842261281635855413407255545495193903268336101148233484698281280788196055673202168362780149678873842359200211978596864627415542123125796838896957511756171320691101209567750647676946777121763161534716001150541176440386502474762897015926632063691577225783183884905272418080959775423577165287686146386658444301407911699665042227632279617590320547728514570937391874160962561412751878974862243026539691018814012759208033110311680917408939842745482762410122543914073154092454108808097368126626123445454774208048087509013081848728958354269658950723232852900916926763901861907642136936913331220044422896886219712914134411272172787486963894676598651127054580953603375476942599865092371983792613043756910988018627005091895721852522870433866060964859311892360160574123033814766540908837080650413298204712063444084459053622277700199576830889382123853092662261627430412366013720690353930185341445457272971437224315598247700895765191362353974973721856483087244897048634234339529041649050780005321549794001713266780752263870338167790162411866580803423042746615934583009573077675060977639245772654386961692779013359497225419732907446937319910093756859292341547296053873569877685859388114190095662828833580784956372435564396421596891955287120358175566668917895760786504311544406766479069484750002552571078065001746142161740083662121846879239300196334176274661984168808881269401338502436717028660276978194387009691353766900665693069747955230219375805418812020026841832862684853949336120117053047163339814193402884099903921510137673203892232600533681297721473586287011693794180080212692054858302393477300927100423786269457504908817912961076697814739486140008806035750824486050493742162965191678696161880640803807881982833412237178463866809637090084918847319233991909049798764087825118826554463175393641602894842512829674318569869368009174585354369365706321279756144700571433162450596431780287519566037655509733251884306277148267128996533637408413973511032149946708873270898187417385535903190316422540242597199620685018594142257752793912171219363115968480700981327470190158884769940296792651381767349668856607180377134559545800160566997776992212480320303430684704767727137078926614574077681479687918041855691969062925156485565800222781099569967278021240551053821486450765519672647877997600267466904852479545856081584585039894562487465147129700043658963639570419491583939810369294044523559665765028680136778055387654072081975292807799648079209078334686134819611287687245667973391324240549084452827910177576970918783170815057494575319417016646925438961649908001470291371026391177766953820891539279860876221002553404553309733538016938670376400327549453533377639759446528270249670613942538951433411146481757265668935565596404298666365476612654826382603192718503595936755472349253639706215955214416685962581805901262866565930359415403390166398446170377557043610145498407844232187469485202310002488703330308837136018887839993819226660694226749101253281734419874829221680493805008845678896586645538595907033806195390551228819394364142221322332816971183903661736155193943817238948567150778032905713492477254957090679801494482399319859353887427710575834196583161003417840216910920143644772765339303077613515509330162403885566765972331321329082327686802484430778687467768638226720453630896256488953108859263240929495340266796929863465410528866747951963220623424038227396197561272318480990307146569144592663194696226637083022962183537910915269826508247977565109502910670031118852483078903650082292212753070920743313691808555888098600707682164290793927457974881161938898517671907277457350546250168325914682612322474615051680393958757810359733395160392958338943979728888532582903064938200871021616303524999208338650309088739274175506205419316729960779445453722215252935574479065593540765686836135459631965452402944104916780512911954037030037432662994643727858197433522076581888644936133852968148091648245929460954448433182237375911577720865988241242454250752805214580669626890210685595620120996065332753218401193837655525158202615806130844389464623490481571065412182142133576178786493171406825573341723630708106230702302371148577587183087987091374235571468547559594426567017966493601037834017303650054512113327756562153771031930600132808762175279591764614875212182872009194612871769163882512757087965954014157274772183121380893104936833453615986000065986834574916346619285260823800010969881679101576323731318844238508800791591976366912628685152288907647793973269242323888352070200526498652198956943489718068202951471867346790652218054406188473001676165181045793836785188571192004933440378779641531721783174097950540672358595487924063571721098087555366811903028771178943270869215743028098276531930731338239865269682518948940106265526508001047460153542660307921551005731289955350697497877812294844419334659029475045201227149681512886986336019330423709924961842710100005980642961366684618480516324518024878037508190097682452134887333204065006918903262933517650751802304477564469553704003010394407104107394478088947146639751718304594109824223080370287173001577167430714868649336904595267085886005427154496230095156643124414744431872399578040850675568808998580712157298384367807376425848997930591666052329740319636514926961394694649585774952421229535990936862838898731706072769478256388691970750317376595363742869331636265388596408513989460882009419299360194941961635074065644366040773737191388444659964111539873690089869906357631884861284015855182661192407615294748507379177273910779556286924402775526233239167711209347753233918877409422348197915301942938766372380601668539431544922789831836448987388696594981870591494694303169605737350721624757869107406463441044870874519710657488121615338900298639060705059414549835296812697094399540345300352288047754216485136941704585135474553618988178684572297890282354875185045100501790930263362826589938651421434894324824820083890825120104835524445101268639265319540322567944346865692864141501378526346663285404534886042841359911607103635457185518365051353202778493664663158615215106292029643506501409537059134291214266509885831135670910756677184803037059556929106667221567940215075398809638570869114712638062447381544465839500059602928395775639988352360309156086760773212193447709770044789469764740358235481802798650182834479836528386495252120441564500874973310237992364161849884849150109167826002140198098385568014573929649322229747454318296020599108647699478434375318448883265686888471296027916997379798642518120622532202959320631525807840432319617330695252774924875707731113877267170896350462875286950582082107624691696355003075738020788181544547482867028727796653465221345695778014229817096611996251804310494716598833657931390764238556249887236670985029290561961534849465811115255443756709765970060680140386214409815036832888414964077724264137541972439935244369175609726950575282304440019710393971062356474246591113388775847073556538514376357811998273924316186419305663653285270722971107662270130468990147471608818686177310306065647592104834651384454622467753045272078635615735728730802277055023024300919994499184654706473233935708285187874727125498232752559658105318478651992258684662844332285722882067518734398975011800087991871553038567655746457221659176663606536582836875191652437093416851565331306139523463583871060119911872330796509854917395753878238732220458241576715173946255840424359467566649912965483357713799710863106717225214600664438091027358546942369272955215425653794297611675319289226905420345930079421067899573502692161028757722345499015887963592987959071677759670916726165945017428165880317646957493209561175353615027707866945122822727770688844971996254631097289931378138003568954412612721963627375512351559196268853391774907462004052511188907140430353717810230133574690132515634446644895073086729696800053270422597938218839905828723971014891022533215425775671653963569290270287628939883815064480552431039984304739713744263905762372587738057428421437789447975299865914587761194957978144619026511168982969624716823795856175956920428517416841228128009369499820704368172690223739849733293672500112040602214262878997449431465075295028391882053978244171457137222949274391995856827384000245299760964371057473452310637894271460088091633613977361389247907399694272402105246694928333686293057773718291111723041795649650839369266876647087114606625467789502327290002230891548428000529855422285670853501980438387881149222986504931607796313193268020478650310157018810232960080969039127176398417652820629222400530406416149739240876006398457279990188787485789668663739261304220417099382085638486955844959888666802945497253173135226645283566584433811721785952577852326539579891135756268364344930159639514757034177477199488269420889082959914075124029329401682626485777769418374512035911367885831090123252699095270429665088191189878375748067719776861219721557282643917327891876759708914449276751747801905746593633083971363676881935083271253464216829179439856716398692173451636549316592380885572579467939487603041580793555864276219810362904595064684208364337876149319254987747811029810309635763067786978467272716314386124803756850008818908156708782512699272254498457585275377054168783516080450252626335238124548088298539555705056580796652320246207714591563030842093130001737656812592800875663404954900907878819136816740684249029378998825648895308667136070734870696606601801780545810293146270965429735759389982867981121127004296103839126132771488379399482646374954293321895634508628277885258570997307657654359188890404482514548744126919894691534592580053277511719290371016825892284671716436511796772839027339808356525692088728586179001024054860795511730474870629782538130531980883213249298795542915721972431501735053810892128635658910683600871274346563542137586112515591776526770279443189073392472508910799397281330858000641963258039477861371554426907138304477203648237829684723001999331917254296069817263921632788113673128749674763600615552759224975064750124871873353480599112976212181330639201062342356664832972710642598872796880105194556561473531303915348097015514924686332004894899245011617733436804192383705784008961461463267175474958019405406949078212253097040346620378425229511529779653539903034214012984710085419661377920833163759209595741364071264373800559040572024114977019580014555338916133001238322714064259744976819571029881254311759146323883501588684256180836297244337333896181724307106678491987472256406916521581279293737791045082480597066771919797786215796400951259096349116101031223286922915784306267520166906214847796985903379815271136046182037462717146896627307285951917587547447047915108750209222361892315281698997679387844929775200640527128035234205865478888719365110411965661997314822514446695203559586279858479672271132966030540068334430859405949164709375662700325376804921078397698929966083242503232240663894952740326956758760515767085938520173621799956743903362706553933557393266176061991846658042615034592750711855842084519509773839874833065855460599630356717985583860331406618634267966406633753965709612481442667090853495131131111653294616053348818108720523528531596848460667259035692252634666536923690094117945136501493217057126776324456526094661652347896732511904420712889316679112972866588879603864474395380148127646282198216633737933477035071069806518235567398740820494399241670740439780763570544172452148411184430917314837699989678598099662171322164891824927168907309628826848490851420796232670658614757179132225612172872583659556853550999220647613640102162967865877361263956270410327101626593679420555130023539876550972254613368788659117779637700203253091926894245566854242878541019559944526407101623906393765612516273695901034001358510365749452558981619722105010226984330486886422188448682787788150376083994425560551618656143720750050530152785543734619438247554431438447719032612773317301898689048750267302558710083428486102211168320349455637774016398241019798370742476095726651419849477555426230067565964133750463069098916311096774250164931840164593977493925537115644201775953319174784165116543881510313684858653451349980831301521147110407350907727547071240338664030254361414029295281956266082599196734231488276068736407761586233526572284499451857696929223354194664914115728113740361823274560226065571993552454985762499013637291994660304890747055228974892944594614022780695835019124787375004489740482821943985971411072898360071566513890079414738918311970584277054019032544652493708333722751679577762566109683480301167261572931310462484841648435798311310330039496607287696414783221268187197557607296930320163364627757586800794526023072350525318804595602792233338919392556908866169494868237709019775827387156469135755345259000114782969963755010033208126309760718721141293042578218908183475861785791411480008784745964441130475367762151938046697606690778622018407557307269920801111824968967534894817727803122593617113602127337608100173952182900586784850709129888776331187925398653923527167614612761480319274911787049897387377619965305532296521466875423158231188318562779328304900581814406833440646228191717084211007226080025125573304630308605791815227557144241324108841103543213956442884735590360064786465089274583296900175121256509162014641588404386802031009189724673292301251906180933042816703217351999811483961542297709379133999583360789707868318784422739686764144122276226793268935689043889662282611489032885813544304985562198365647279531436773661377449672801202385310112670724028053509888533757947733564660710574005383775059372471979195763668995917844168426590895947308892539818624739114282592224761286845591981143467883731384037931065654281710198223956230981584896708564432919236405424671297956958151330284870878395496916856172735050927217309843888327877978974126177261841058129516399147915845911343177267929672164399664015377156309201232295313839360419635291197962015072379293250071295702202501813618422663362140937021802920230528026198901004352800525993403996356214862441910614539095298955020727135670247252507585304835984355008220546137701753708876773219012466114297538250519403642970589668750610632846012929540760462671238319754113203177112901822228611136767653398038543972608439956775729152731722943785874594357265887186242174456722445609898917724113325495877869598759975722301601732172904924113845570342583285424309598771178418062067233015842892110806593960024566490023752990451918114528254574236089062102014416708045296802139469176144203900007585834256223355197297659882442179871170020640765826492752710193593006536922007437137157486750057840055958653019415743151093635840225668098393558430053419656638424661639875467329520357019201632199269986275921393414027362134623981583061471304345545211928543384970402840841288984561769060397707288870822446222307249329175834588731664616073811111977078702884957122807888884297011233132049365119890896916903505610105231839954666061691745636249957894070500517844375739289597996219253885548747799168271405038527367330524369272585452359239176414499962722271568346601547850825269879162214583824616233003356080377591798787240373443396977606561718542156767988330106728065220960968741988398329078582445770933585937336384920241260805201099909368455578795347399690419251648582195263304910847164957519611679133355850284642086688980733171997066111849959350652046315463189528223221301164341338429644122598108804907086545869786218607019458750170417016937268444477684352071988437804809251883652278417736491701414254942700255714700662179167289549585161494648042313773580420733361979953591010788756049601321556861975748821633723932266961595184679790365589860322017343990552427241344177666746083065298215182990465833925331709324844399799377703124365477515294909600807746245806953974913106030898489977600552211305137442538389578417211335481022039413582763138694199452741699634542688808569269525655485471070202080295622996852295395229654802769656673266203211693600855176799711116760212841433418068677094613069832402769312283260151613349524017507277244596022225844423206596999448421891968311830133032223013931575525884040993540017976673096203800641711013723104548087192714637150603340096200138394660647744300580986655059812196988465750899085374038151420115838377666431511811772153744431480885177713206637456743909705066642441640182314293428477740549112994560181897733819365386410418496984628421913186230587279997984803534976200624544722883383774017248157824109873553190601037334891585112480993102684445880439343209756845047557456537761082909979429336543989385764173533018054007541337095324940022527226846666008264770495514407623177604994850918479516140433788801236895534213420992798355870581501536453765360831698015019590568580158643183940735966811826455389150954417970895991087026669102020702010066014534855791764492626348678015953969917428067162194150038309730145079751019774770545582671993703240688003613100707099473237263798963543966788106926851698430812954205267514889151209199164796121958621711411634593472757391416759107325307011271920121183639103571773619582279696644692574769518955799871987249735491593939203355910437806413208085965612529456270418477331213499630064419074492232903009334135557009272633902990624091240948035736027402866579544999785768958486005712199158710910707175222146869120359443523621445122560351392594416089251678323319670038539967568916671818760886629429884479787397708873918950767886709551522185746443063068642672432333547290505012749297492903463462212004158076162876321640146675717028195139301119154018431220348969783700379145007597821819174419245678103522248893559643191338799318250573126943030820453403688461762054813738656566229322721956996786928921311495641315814244609453446809569403836241508351075979118586669447863970523359941742002773380790244123791798819193757364114483170640024513016501484931145762388525271833109806422983815681627665003561483640775162190923423249827793702440660681928894618850176622146958219820251120322394764172350113206957006345818269794824505648297171005776255379133380758551548654796847095421030472377512069530956307216913039234472293814849777679734329644639083334005457502762250044096742974344461445821156209152803842309045297288525631489253520635586007167183676090443315400488510184845959455293664233955932220093890447044886465709417213036256870117663127861501798922248514366025131620441462582226095389216988881759370592865617479544170670879974281387242925924338745050040916106782469787041082838625842998536272805299005352235509953086318848711545736878774856801146928202508175238486776841151206370649043585083035901768280327184150156757808055941770917523612131801983884246009403555964053742167032048645118724359519600740622934267069354516372955533524940694539921372180621920185334752723455263374124548117733707575507212039695799886284464728423688882615647216259715326506118766638621928553609803683884546806510552829290460226047919388845640111851208675670643071604808196387893692553623614688584030837210538665392235671135047772162935237204023204428537425096121715694088747524323433316066416173484220268223276460914804348183518550906601936884122505077808330464441201778738344481531405409344124226565855384543312596528886274735844554928760750951697979551204266294974211931979343101863253057522283938706785664350618809041442249736381950548512794275687090557558938717102125693199400441563608095151086177773574230584673050081555738472124444660876423273617108444934095570869391049508997216096358464091982665826091478495383515652621241770637690810003353238867373406127277663518632596643715650998355772261734473935613737587157878183710972494415718750887994916463964338364534712720855206308723075454439877113540978048182431058848897219136906440849180263118351964378630141303691252725673686450837839345143830819849762846326467905798431863494515288622840292554310451502614733445571835418057043574270746036827927838782554556418817864371275849525958476154859282628093533445696926684568808111216346989652454413073338680870818765703772002362118966111804734910700099981875754821795273723221840285502773554266130164214422537159071673842555083932687408401741329074106689889914324044970158894328981080482324406875357502967853883121559385957770034336425538725022471447861047357211625804902899313664636708688299186086698611313258560105560012438521745506431856716030313764478195049433259684740252726776346272537621542384925946062279711542554464092012601532249829259862611916846697223066363257540135892092688630730335819824774072471823831680066718466449591726363330040649367512307721593763380997355815266162987608115376197692490710487756579624076462744742177671540099119203482875475597047065283767850613545343830173262259694697737682799468760462294831994108966015589273335309686886381494345487201765830021132321338803870892581823459362566160540342262372115107302692578812776703870537422698454720185579546670922045547326261879047391686619371539898236685172519879832705785033686910467534815745309388716631622781412819644461630101523713399685339130309813575328086664345445262031089213386133062024749558183194836011337721544213031775540512764135040342333609997578856894552998107514314169523162926020014537969135328450669312052084055477867678965750262968245817884586649013445650070930775476344307186003086404655023245657014255222707986768276379778513970204832049108429063315633991469243732927310413167382514879694462590051035334378844096244205046835159467922300553663675408422277418572807979164795094363068661718473016390692070558521924581172773955792849592359185228866298277764388625986583418284954708685339428754896609665195728091600459585753346291914530925515752092284310431664579817957185589157253169844041643342865989190425259269025800953222722547067244497454153683777620916325894372328229191520147804265911531529022373367332903906819392642269999864629607835033387662507762551851146426133576592819801888550723525845254952206146607068263189754100432484569623090964052062806431191219571669329729312468811619805294853031757458231578583365515785239606157149440968284960309158679786945904543306862575943992911055831318173508924897275694818655483993458734038624671396340186304324395172410623592432741023916596069283649511817921242965888950307396933715831858015794808247279245937023749733169503968781968948996749229985694698130749243382428860341664352282873142623857160192857658425802328789382152382774380144634525171465835346808771985551430926535738116076001928793075569719928829397001787603100368330716811672643267255800049695916972335982583075476031064204324710954905688034109364302378549343290578800674915600890556280973221274968169755467779035600377596407046887769070532011577054665175648231418599193318210697526479517990249091916097271757919776521288474784873313560852551803526588627432359912533080635936058328922769223321013018893500789862609448023630322552699248240427785679890417527819334800243877663791603153924442132508006361937787299119946628185668968230532651083393092102044204711090247285720390322837162765216703335835940285324625226273744324157099207594937832836519444882706172535975879641440871421046009052472434024126436304014592991112500229482630687643667323304757325654666330762875143194216059623523720832445914842556120742415373580720263822834765939171567633685019474648870330633500388758853957522886962228760167044117423009909501725081181649694939410924304587867607698613414175466655251786348004739011242159456338993408152202736676187450045143506007916396378998166239667479154601722446635260580670891659144216785154549595416180358018939426265059428496971128815945067907209240380989540504492318407225437570532196401391724846009635242282673353892015370692043338077296251092432018848112354494781127542710899940630369636297740300501034833561427683175365070850227246715606752334811986381637975840821647113648518888793425263611358714256171123279913514870397898532310807143202920309396214214835633103416728014162093676430456787414946289857135672914721763207400615953115772345353112481072820098574178873466829135189592525456077927129295438912907107625742293352043985706223976471748484218364943487293218663693815034742683360230164777166416839672092218245686241172520700310163066519117513435970030031700353508109713165369224375279960454759231735942835242579298407671040272237338735348906197537337690056554182925909077131172795600332542419961123154870723228086200398603357023051586394518466971029446181302059118198506951295166636554935446273248082502659547458145874325898868283790134091810316647074869396965284277688998204198718827516000963587119378541943715621107744087720938978668376456770501698031629573709912388639833388843050330243412428051985337996739141060538999910500447316309383582743683406852479119363922082887842877315428859368610750055374622342908135444128522747713072175105058462545145018091094109346876323668250854985836143737628557109805538630268353703549888477664704052080499941838469625160857021857519935433410004319047097092078104216874752990075217754301119307513037735222572935401945707034111182499647701129235390014103824471041492324335654825996932562753687918817904771015141192733996085984928498918204617505949137082680437859278711143297493938629781629693079337017977994140201610855740243962242608640691791820449073693151524051545097392972836494649627614257391612576766231982938814865860848552053940354895331428772814172568461736330672230747594483378689693953810181227966430652778756062200505607414738572436876649484486378106404339350995238259533420842867797718440588204973706686618673922869485311787187322413356653941632712292145366897901715291486504043161601788550545133706054456008160332460121719636647029519159723109539066806784873439745934971274971996029865104725433048730457697601016002613113452237696391700226567554436806072925917782765438479187592652995369249900838079444204693807887072417028401683549698926446633350087663023100542447018476654268477228634765398214997409524290858786363019426738869546366243179561316051999328014917774601784591949064152112516181648415692502858798130159719149873048084771833890073071212577743937053796293388127928123476081389617692755655525274607124241790045097069093758601264966734020092768173895450064862948999697441521184766645774458784070960664452906561810751599899612002701387264135473278541353053417709364943645524026014285234117054693630179465059768455020237349419496997989849490917962582258549920625589563489461011315238359388224605020241304583403651654042838779107302385981285616690106581082397940056751764455543228139302510141282396231114917845142620488916460346425377311488918179199058416238856857418162676390430602057316041315380052273321316732191586125613124944248856752224830996486013769173747913260392551971892306316422320477788066659659810034914907136693836388727722381296285653574462019997296015321352757325703558736439036125642143331890501992160871209214521163046851794860057593987293942155118915891971732294235169535044687111242833378590639439529541707508886643107904792763145378494709920714496710434785769537717128500155681354802442704233052007447522519003517935406655305834472020000012453209806981466412135281070716835918195227749332419218346274146817831563970209771799430410164806766333332496870462825054403104791212849985843515500550416209034534348251272958420798362934028944410405474963494370134503684881113806119776791148228048265829483996175104722623685097806576617559658934265446086391201165844533584373214417836109414487564002055421083466134445857431965311082791182049788102899806438898609125318200586695515117568036023222761732559701158493817971279423543804445473282453214307219512179282631933616554518007191715139648054193000172626552850829006422954678946577443756149202101177199039211706058661949651024979413794009082143477492707750894472947255354034736625916798655722231018487423199503940260038174942622087270692604397271847093630578252852944791321647213059510736257181972272544722229065795397350342694539733995019918347363804990205845317677137832158352106724817555629398836597536257420693161968285157651002701067336953189435876988637515847963036544924639117251138974295682603380319817573818486955203197970696997268224247899735270060002311104112101834557874239668008911038993157151083223649118755460941745825552407054998168613093348938372995497779080407784055811993595689111025213441707359236406098198698319052828112972683567979072281161981980954561007749216075718265285960635906988454456543102144297142827915602631126722627188412274137480616403560138073840831032509403541267929669568585588543348310054421325386059952654506939566458918374076694460574609029532693315766503358003969212974466961388380049555302397183884871445803592046644305801222743389684380193808206822407291479203917170283986097910457576494605491146483442803938164478111270587199582776654014949506062300013447330706564676849845298674853733376467219816448629589953295944174816005060655075333716210126087189329377924340034950211753261903384641689131915219159145690811751507698260262536541634548410369693283233760867106509252246487471599424290355701812321487482640646830336346102930680307922812646465804110835982162225333040401626104753034778304129302344129116338070106662131752711310981830476252463833102135300766603083287222190533302798452078748453923734387876199361278450018678307767077309680606237700341325263886467092029427219266285125725333520909926841353309682768160036057190691586278515919438478368986473710992961284486760039208086900064084495871685409668254564994521990335414460527871589359018763364620227194766422601367911108169551822873414768187197813656366037654600569154011054734818382449400439010757057309122417222547149948020945872253625064941683138353749659984722832677549300785948017847098735368806770005454454624212125901887669873773761666789301397653584993264054344852166390858950351748710492381371331116648576262918349750482646018220813344250889075530268671418594246525429196340179583158989232408945745862143854709836071886657097996425732964137021529703926202391224398947625306482809472778307190438606127694168641907313715241748543240866784581205954074849182956783259485327098679432749873201067765874451783638330254716335132617546134131999174655966951858017286032845150233388819240883686485960401793005754493183772592833171471473859187638429294230718747274329607503500594533826658539343765419020383308865253319785969367947999301845398514248482656220559783938732029497528811239296125995247156738428304285953314429304563586581511952650385956350643686683332890459730831819737069530987772474750156176937332161234158216565172393871456177234240976486954695960134294431797791480630502154987810530323288885619269322434337739556871991021252198444811927855602930883057538111369165883673182189264308790879173421273061865770321548411055714572393892705955633086575271533130852750650896082091308827301531745391856162254731644411140734885570130366333436758346016443864687956332975317313850446830105595606931044832401153033123215437210724587921364014865786021440694333795586656517851285713673349629119101743500413340653412312853087712141610551661354770865103813438852676446779890235840296772164159172063743641615546053575964097785218036020098072989931301195409960420786435797824763617630688729927313982814087544111346915887133646366701612719855374125242272248294053769426987581050022735617847392822259689135393416595479958636857337771389570753573618829743766436751685384378953948277566674525259319180792828027494000850846472589352858434920298901888905866193463904938029884589278625271450273458855097686424154095724767918581266749331403665221404233715651509729286135233427792822517913880148636559654460355640513544025095341778334415719011762609621531437065233367869445061951544020675562655857556859311057573957502547111160904306078923696017313691592262018333180211134231884025323355393485595090651843484164567372550480229640896932130500702901503058119479131457961276045442169519985757389624899559236236049004010362499620730437443800468280576227269927772330751317198158317082285242361725562762911136239730009701121464275497683120361838929245796721368071059327381769470071458865433479477867187286835557884966137643518836374766126360879122527548412993936405760296022635410201515394146078749672798822278343014841865084367567946526999442499406358191818332716120547461372658994029327360245603969979088236627826786117595074108425230704285218457612996666337788450759758900118260789571494465777562989892902341640736435281930343962272390234158877615840708039362292728156913938321679915435020699266882317392369475692350948395591902474333927550881360527549411800236474435488133853660449555543797554350258365032999895242032943384182718690161630218143683337930250749813510027640088293037212222536334405732620504596512760066030207743141626668641684088004441256447552412899682782589633528731310116497096071750184724723084482267252331925943098063038897160088753322550750436161505334732125389863547888569640000064859537642522546097179913413932162379864363807517347224631931841248801905175550426416322365234910048840080144338830911533771955114840443732969753987712113246025093668456202785812219832618586128340595027191876212380829182437724602838111603558259701685849854433302673218183248199167581011039170829063960044169577572530121749300456731418056055238732979746624447477167256594276261733791447897266310655989096739281894703675863020993745971517213341306492761759957745240227609717628297444148129382235077122037041962455984791992296165610291290466758317750190573131429654048029668132542941670775013079505370919301526006732884693916127996339208110156689512195039697660835977474244901268949042704633791626579386170815159688835952138084364540677295394759155596854642600711198099699156592074708661413265472756710201170515108359811117002549232456825270903983028855621545066882754056335749925152432594386954277757330705092931487514022397576043743658409128162402149865013524969169868331335590596286959751218620446758010386187629995566481460104916678863455402450849790808631052843368186101060352279779086764894266038301539635652682793449060345618722212806664133198683470472041178912066341323096127148333215088093787844169602382422990104575233641359471017053105979473306292340898921664704275117465770885106670902286055603332187768385379633669034695299560385052744175757153314607404612673552143224378296868893421103359287431922976296821022717443825490244972489658083380364753190164292788056099677892829157888975680822434722992197113880200229336322238937158098444817583272309656640330290934825334745330167066107755895602292581791448624716146462238608137718295759129738528390149156080932040058752363439775710075844720977597951585850207252422574308813296744643095326569199892915968653011283383803543064669776833630198457806508077479556417064306539736254082711928746009243716686201341808470052806964167381419177612886978023728907629792554898092253057677721816909662945198048218198645369320909190526176606602818967749043536263572068490922234790102576262205695289650593600988302226224301482313593543390944223345447644225570364816235500989889583549692208999796136309313781266657677866344896716385096866278172234641583010146275006882713826892555390020860296585678606586559523613633752064945497020945093670958460908703124193057379480398194665368331539098327501297454980143979744603331484590764968118562725499410996644288229706352502119370327676171536746391767735060464377136998834208408551493507248041015154624338995850720881239590857415351683930145355138890341098286863464900530841973758714666808025446548080425435853750381294480142307599509342292188218641694146124948669762996913471379659982195628866357808332350305810128103919737977982510667453347443697206042859688587978010560003178809305405557340157810638459747626733461086749235359012061587462781290669356653224485937349855726306167314008532942162390787716709741361849919874438097489882355681856489813836973281397407695039191269694902826826013339758292551951401549620519023033230385818424924127217643756423252551289868785906421847678987122323891342090029619623747032737405688196419721811490795050710220998675259663492533669195839897368533105530211661262424742773521844387528532920951155888221344644813658083595350032846109399344799213549675544705171702027475655924422842496095242446893824335392917333426566153884220806662788577733800505668843296336473931708497618916105026522287813057088292145538976630205917632525310236661019950526038652892419146195049613370433618561033680220728216030790915976948937794951338290208251948488495719138023659151441216177307035562210725043060110285156462432884583749523429563132202300238990427634757494374663924115384243635618142975646064720251004634018037564722614886446967866379172211106383674330442603781421477447834102219181030462416173614098893737889617024756033952546919120922886866971942641015672049811498391145999519553009369325142773896585498037481060516130752866952682608530238489755680284073610897689838642846584793020933986565718492551176240851048533160559595762612057331085487866258450255302739322409243754923191672728241881832841237531792595364036712465979189538117371054494268585037377804419017804845271501084111393560101686534841468651901804914622644180237786882358807563531329647498508531236881164515672767405812120144781650343677687937101972680983154602293493408401112929682937153965729546320469140689637808264074014720750825913459288333159521841305998247189608227655855796812005467368642287999079893687339847640381732354154970915232565520003479639423321952468023974830109655404985810938735093803481755879410180646927030752394170706455356726842935085762978337150182776132062183015624704692732910558516319738823377853696491109378256332163562986425346153059840614938398214975818813055611933146552534061643672773295075787394826489370607317708275820251918032226501605679117974241071552679832336527824957577611025309971281983851316543837820755113695850488158385702173468371152354138291057466844463893109083887411168978705080466883811685232811136036789313178859004351359523543389333119972941014149554230312198437647923806866076903241992524557051934518634059772117522079018035986005497620330421524244111981073847591108522691396226114506301976737594325191260286399566887836884807403770398203569055220672074585361735434284543515071441812963057933220405469177139377811394371826280381824524391640040163026835009024730636301307717243022678560247840097916618210390054792471482509372564971234428656840408712945922751992371960760913542738912591127260482568326032845028989692244113285653141272310400027298891012355783258388481341542389940138825454120784092250151367952046103527106616521141680953599849504646655862662888555887553653279005821545696906338249979461151931519394507599984508862539253237631809228607493709397546413915701319264945401254993499666135258730489771983262328295122107401271124485363820657126063428409081220841673571811198187628229727043881692521476734385420853752218504018114069944375763913093688906373257202334118545031798178148502294999803497931134019675327273071872784033157989112295762934708972618071825125829780917342975302776853754968031047493693650859611136604676655637124449245471349770180318283477807379512809921814605752280063561584083835768226851902162304314563967412424239477466079630489961094237106694999936537235192726373962704299049408190402706905838930954079063687595991183942336091279992957836462249516024690994087365060469606773489096711476711542379749959945823864426863033252676955697932356226520194694235013775009343885175140851781039733012178732202504598681405512849764381339352804822833105899858603877111759996743923237369956856798458282256411612450192327601332052382090771072552545973037937609977728076871836595200614883041928059760041469293451923192135735950432348105944047386666228312432596689210515522132671711297251395079652515997981255021678491660152920643663289348900751710718971984365638748101127589822886366670443538122099284746810008251726882784626994551031804628110481643511615447396487881476565105201569922871580554165564977214460912777472213321130718428554851584196923350129181743598188230933857210140924737182451499671219778444310564092738992111074712558501116777224268251946618844639219240738236480032154899360130902811359654501643592775308025758177572459525916028427068857022817660018316591900530074931770251262644851770047037396158992952925150963117150874649890706885230674800874831502248607909239936832530870636375918193141893661995767809937219076536905627299943169744016873103834042256643563111559746370372743861573581157746722952728818697307162845402732111844773595732709781086810529009009712970599885331892828602168032872439409477002559569191448019291714918981607662746828959846178597460513172517524653864369035385335956203545353787021628688673231881521248902146738732583578431761953036760649946623280626421156682716464723917143956723554230963010542315875485110108702871482788648940573496131589035830125441982211422779281220434152594987714898245645699161883886613635833725424756723888891599124753926356716272304978105231890554865964726171530993008273354594042810194747193323788307836193694517155813869119966215602428812264832598206785253872159886186002307683088814303892481924815657643693875672887165298677944501565124285028344385492124548175881449497056583877519470010815891217214942931918501961117716219564118296437107501710998265313971529591398157412595358317054897476982324439084237743999890221925558191126838981302614429283737838380485169985648409404939922802636462211251112323842858372554908462204182806596437352121453612404913971906915251631715353858318185270908416835888586397730023197538308419628409725228141720851193162662084000122255068846720047099644178526838729503168972933878305845261862396163668144864016300196907593731345478713174719796944290805719931769770388800833006842896269208818817155400365320284427509964011872441250419127574654816866196161957051754057102724175988343320374999753395989632636650018152988805778671843801352063079270254774225667710798621085399919475630064750846288292047036532892369030652508439866137393020934063626220008530095152779087407097538748342907227445648416356961670814297739713723216589997576006471146202368125884838792920497908199053774241168278866631484717413767406455858495004461674100425801598371344595883056847530210031611040679966743108439837329371006165806896367002148258249928181452668614909053145881382504015203938679666445722919153451879853437294868553447772203046895473136949081962540865967823337225051720836934725251528731119722371874054646156410516169087962935934868571781552921616271793758030248558125684643781160876597604905515650964747766380879329032542858540823870501734026730000154027544659939107250969263812362394683383949656893447048202281417548004177647507213742620562897273092411463176135364866781884250056781499177707119136796260881520269262034694156287827957232642199678755102998280103871680268903014914840625811181162904023224167224409969373934486540134769708039206554795860990586803102391117910791708539647233374895580552340637265456597391160594021648469308048728662477854875708911277889367571926873058388364954831386145931806573027059152213218440849392938039417883158603733157984189624731650469771297020742676449318306941618504894897373266884115377529662354477241385244621191628073430678283514727275814731353705999945615552299246762825043884842260022081029126850893153788236932236185412086025679017429437718872259631286937531480592407343515340996882580811900121413853855736501544663284566012854493923825196512854520042745667154197614877824803268050628178095311497819123067798349370638243261364845479460604409497757650777126062122453961042425021135000114155668081039748445366303389478597844340582489535089457947430286768476564211428460918434537133489895390182310182692756475537234463480894443460930491399595712760739625131580531280085388098768447123545618186028402513166953527062701434831071403067938048741060482677452232321482273355973310692300841258612914327170611603610187328994080987603841739182138817169892710256323950982267917843315689209497641721245216318984303132932329471572460102185023978787170904189613957510598972656046794143198381911698563073607292862964427202478702842433759954105821073105616296973436085732893441450131684550190981005524972855245305723250623605283480184039650206533195569978041568875182306627589811350340659105775893533606232135243356821581804454335507404942580599812127803243111583457913704602635949576496500703617097959198374255689516388769448565045403512634492468538918553775379680547442660122143658285350888125198879855786728152534914005839124192855076779631741220948577639000162880983143895068738342060472965209236887153064602085741748342843104105441646464554156461249981091547357107020801370665089193896789705460396675037346961161528104758867912803964004687271844474830310317377188535753990816590060838678070605416966512393090369967277338580401858015177738439047799203485061451793413162776225114181626749265209960829581266537999301948373726066019408377061735902115699343677778606844082203014036116830768308383645854234888674611278981570789742814871708429032225177385081187603441117498211279103304294802669561760898348170843887997752565977254935543971853678435938532872635545663916468239226037471164512586393393311824357238966991584348984445793848720208906960341614139186493355402720475654721742204000940832957146482500215042734627517418519978544983370091840655503722994784916708855692213968671274442540223610936541167613191508501265965477565365852714236821282603615195721059537400723785115321580085555723001116011083384433880243432517001573490829626471529089685915650905597301991667655553834888688896136317562346642808968429024725095704045655579165566133262977770519700957219711869710701444237626206784329837373103527351747348046466029530764701888581701778067725028567312648233232290453639030008234654525777700368306634838021046398647190163823523475492874179716401980721939089786658095873281855084738261582469174986831614648755526405584768964840210052894637154933258176663422108288113467569088764154378287967409801545476710113702335481896529629315934168127019107653719955674244008112329774421597034272775372390381473022221192486264727501411467017191459680220851950712596418783079476643215498906601724937634434122450282879179456722035507757694719339110765380402138570508784378552368262485813119331878424830426802964975001423311179104477446448522029288897004163875815737939582289979731370988086703598176020570493355581715966186956451467600753379037564401447034098848538894285440935665949793322707950482941697570798853064029165906425515008221610363011361877910291030171375831440821364242280719578968406156680599423774643804052696373595602420546323049623406080385512112548868517425163597394941328677697315521443899409637136476012638299210100644944525729052838152601670498575241693378759824036682472314308497633258921955087392294961175684658078950840004260417954483668232443835738026078459425657675064754961866257390734939473426083459827079250085099498894672337248004656747882985643471837800200658120014521054162596823612612745400969082370269375386579735048878439911014744356721225556542506621850047744834865603939359111708833360118920027505914571869656315524714234688862935398273931907170214050716248399433517596882917038972605980629437271673366454552170969419314100906366423752578693912021523757963170603047307217715714667207529677696444246534317388803906798172570956212954780432705972032369213420901753003804436086308864085549898002054423943852433570090574013008325971175040505888114212115011142917939089222644034603663539873178081726283940234228345519230059999292330686209596861948545741249792667128673132393275931555031956618194308360440568355571521030110679526725765546059855928741083253233038084662020108498252552291879062928397166552201964278414291502908941740416004347805365860168069169335472028525546304880990513837343023420845450486244700943281514480470059499077422372317109348291986805044212384424157097757025594352514161563236809477938900370606757560127688389186930681310694610959998441134434487839191789775783158175580145195439792375218793750266622673958424848821963339819520916327857665863657003231983150882807337148490012552036068628042658552014761714571889189508230801829721549008035915023154245281110427051400589613731487949346201303503001788800785408084511494756355024120683208602010925924716739636601869596012017164374889343460244664364447656267217145595715694566256483432760733556089508953484918167877340257656655226702693350663029158256367342665603551185643642387354980923694389544324500591535608462419000509599504722276007188081995392668673536093304706581455109888813892660544177756631056869798431213675623810430511503563393737620882513883159254933246175592950224459154163322249410121192344467756975934616516791826275393631094449136107615543822155774583491623605022673896398968437988862689717852273528643493374259155286419237516216119754309685857081647356580816434922479084298612050616362474541991207126626428953484785714268985515376487660170602960453951676750473049745024725422467329736987654743514486351540027040593337933337801408712085284740309046032354315297028092604069925489226270189222562717923817031516501742417759249248261387306733866571558632098207264918146927645351949159348955628952000307530301000807682294087252583810661259700361892702792262632565310535786569076500659427468109415529839654705720965268601628072200539416013290923400742693526085493309581793538892772209926722399016141273455043531277586076599111479002860604056534840997691769169988284245413146643663705244036873215322160002315175809643825573625117870515658707208710891011065480984236443849844793993890037220860977143384031584019479885267401337792632644080304274416155360999752086250220820133008962252068684602988560499872313326213123181016989946470998632356144984258545207526787608222595761090990596499292985098365050362656515948311159899170808173476192562729225047037165221941800471729477546821816478693447627742673193026721249874911468741255771026143554901365666534305045605882996913557346747394366777049842318648609305767468412453675145080991763847858771003911700514447476147442507893169820814529477992199627976979458925129664045735001793262585808819666983918484534690788925161543596676166183124785834062417441806118956729549611461198940440288044761745871343803978251893972372078581247448094941688829768885787270874653553856820494105888252555805868254899845658059483000580270583420981068762917746540204681991831725364267729102050564288826948200866950021849069514683445314053404893133994642124301678877796012316068133268846349006985516882607562953265140625103363725617442214692111482034308586002377866844315519266074853653745954629995869936962123069871843802872914741178883832595573880303873807014416384721332329145193001099780661227178076564592426062432532731790142307412980811015940784308044768989177528610444094388621308099361856220244958230680194670516635640679125002733211973855027350284022810437500675963078931979723416155090983314427391321220826324990780925618396495144231083075718692275013290632358495356022068054488746128404960487140553896538875049898890859094815077625345588610174969916154287557727420686264761200346857289269101117138190804112341341926258968846609526942284844459348295786735236369702411487921090294454114792566814648526762806093458881558813076689454828440985593911423285007447173278775717143993856053378431634510899855279901586573799774746854640452306522503939502732019987917387256488857955865051219981430882774368766435754713960844610606921633325482029729670304118369910429767873075716147055342961876669670008510889509570081463569083368786632662339627354364475209841360800664081671105330715355233675179092808110452168105414404560843944785639636575807659422344911189092584193461164778128789452465874863751991191676811470363700537831775509435515652728904093924151495126182634944082849363903334932446764138720897548842200718431057509846376883321530405153593201213411573208475265164757835758275588454856194086661673008532030410292884636979475736510377821062758326648204810222497342960315032193099472396836189965588599469405448123992345398254245697393735028982504690201931911447810814066650039923237825088321037585905282979228787766121929587444643359615779701810052740852866848693433644876670706729736737670067275325229734019931386175362701259563027060847580409202699572165888299976035448085940308067170342765168218672765113257620499975382619427309953349633574933333266841802121799175543757265985049935633989111739213512803147678640569842772073536174028297311177192057883948743098651866270434411354630257402968766095492609447430682766822291595582637960020600126682697150439634292266281014335168071062989237020442286048604068340593321525573240614622241640506142453888205041620726072321350326585494876792026267681733667557461899161354957493881629781759644140386805293138925952094945377583716893024036201465332700823733351667165181232551079127438968893521461979297713390886500489031953923671244935255727951439952986676734409410186005910693734123810743577785034648108095620926880278343042278123567021381446880281144118412931333667175459475700965373983555862252933762541018847420887230289978083670035449344815663814304991893825709718406726522979322566506783939370049291392247202534867763330581646739432180028078948153540014456944685101543216531352272433235344096721961034816978167862285698272055674276778764322645756064601005102552291362276656334924318125910031809779133717710784037134374525199684023062754152742391418220907854187431745077513134348508123848349237594736698272193645756447486075907762727352384915431501647753267160076107205923060685694879460620778842622980486855022982752844755210961787714019843864558434689115490552199658483708340810114648178529084361883263301023245461574337415644188851813113716417746395982457498615234055597296166192957162360801779039881160527180288599095995461591196093683302601808440937950611217715705804903788922930381640375470614508393507418065777501752398847523156821956566183957302991334948099701476025748331305690945815418350156400118075108658177238612066024613673090343681517009860797316323195960496896183031888721308290161165544396372073205390676818162639544973997615178197604633468392992960633040318774998146658732973903482917663516617733687494081718585067709570356394291840976925820829603482835357455580621675199045382024916033931122299354298618175558962754839955278839803588186619496377294007064000684473559277722748509197702982052218758142194786397419444223841062260828391669757597756504335003676200923608477163065576085222107151655386030441285588142231185321995050915635719990965049815709812031004442756165537917872455342332039002723721213170928302477529564224780244709492037666690222849926933060631282992926585350571969991025623990810769055676845562481809263081024526361538159551769063390599091669886494554558857796947485045952357234886890289818497747037784601149114315921844418117737739943247069835044230250066410514502504040397105828620143848064900500939241963016448293132026607639875198315091412007050748958189683149149061166020640333208437823170596287559459648185036542191081235005430153207527246486643225467606903175343227610382825491068473149283839363049665869364250116214965078409019726712143297129603941332392545578807220739830199598802401070920692295884933966378772914135217114649150940205828236251403511391292824059345701728376687652153575378472512537646136320350556252307661319886489236149572223574441901402036140717449507911166862788495885842132835438067073572174028374137255890416866870275157448407056895802679792996474497809461033242170840735158591407802767987946369515113077970641361165369799621536697403126615168362706060126249342940146159832711953214767998198611650338000597318470964026995600138889925257563121996004692307954440111021206739400918045649922350344485287136227127505891204438436667536083949967262357357425776061390429694877619853938060066317289833765427545578258112382770863136174338371073760305327445029861787907439564900703664969163922224220817707076230483202125070553259934284354425523441511072991836039360184492143281027322647874716268469613284021785015018129520514717133179507400121330054508555714007801422330486064246819998580582651046341336012578845521957341952422543211019953685838400656885869818611602952203083607348786582996982768636519537048243909184915723485880242964053300975651258238873549355946508258643213005652933664168446000619979286118452784933113326711617218757882019198114607675379303030595103329457898023267497434629104398064527622624402012862776065546687712213097347453975219694691080821527172019444364243373622709800045493597138393525818682311283715316211317280842080316499940529409442484520791287288324994665663041013660108365686871893465476784437092596665577723695864219232896898973685644345271370352774859202065222677507916221408138054285421268514176238450369193131880973267826754920978988181489157784937295713336430692752480842493957999123510733378567148899183475072714407083659581465598866211938274045324513491796762678379158161693480680839658146925267550075398625733238955505574870581360712994661630366503226271556666698823534558821058962355923015799901012508335769182681685877013092571867124875545088689544579789147307189443742711241589153260228141091117418143862960002682796792605067085783819801364969070284278499446025306498144343471962959136384170041400368787153709747795752343075043267508277194732537866230097489002488674784011456791133407588826414909599625367074959777501184733857680067973397705974062229503292659483761735184816052797812258194233797110099548783892611959723826811816756549123971555491758843923933502927909021362839652965660711134522160326246448939384809967173841728701872700876723600117664059733222849073558439748397303534665078629507302164543541153642425240051213300103969231819735898657062494108076645673818030946271455855192064125924891999201585719462409003276384637434999103398419646171150874207589431542527418059284160965583032331814755158310710816910120006455821936984889002236475663522367029784512241635313703466954150329837962654160682481995255603586966202260735566502634664256578088798395316559123310874486979815854047409384957524863228569391535849040041255393958733593132746613289990135367732653564833406239680434477181630741826041544823218757455270467643337688048831683960429649687259493455311474390790042853019132016651461893953798276205932175878772888468402646972086646046059035870522500767819738190636646957166467609167007425254386428384559308822056590586851023554945513961268941955605173919231619577729345337930432783044134543954840676754861340998803734299542283630050532280118353512842716820444876597437132069142671679556923503564550384231662786463862968231437412519202010902275226289070914297910008377475623786715733589153488682849534921728171632227336837459898863081613735391097187158154415557139418613489694783286438488336850844412888798134422432954524910876104274129687243285755201668103761553179534263162523161126811933389056381493963794332990058706183573466062992341389712554849816540925558862809207280844783460307715351520986564137234681258341244065741201917579503730468918295427192791020264052703434647906676363809842501747884005903249304969124166856200357971496057994445113441789552663601747585281264605894500959577698410827989568930776026959872027703090042209423408257209219542001567263431242739936044348938559702223436847981398987406498809492468205698582948933824213815837779514593433065861670654149948463763608062521924942192252459263912343190743948114148337910190356500517739207566099480916380152906515734625259190173253147475105547276992732098018709393605278948946781796753735692994732212278792803490516195492445822247321472304536145036640134645591017526513853371708956520933938595603336077169340829772796168572249917974405591465698203335494780225893179999976085638193837159123645820779441305019605251332311570060795274678296669800898009961227799266622259733144220771876511136559417455226559794487153292102965886709944220921453785236794296713689902294283356820948412928851579271898617572957771857146721914351209466267486928102797115246444566589311958639302829403180822881260065970309943911791140518505064213111144581509947578368727288742329613623727765584596520513959707939512957372020637064068701234641303109475855285454125510840459264923881275865208487325309070937719781332872542163350454141943007680924071192382348339352847280910055983105399898054150738216772143488739132199895362772526817788383505786777003120278045516092506301455700480052059537532372581819561677047741071322317904362964285157766475928660368052904228365170246661995721396008887334448983013760054216942480321852844521556380694768711820916718763695406585885571585512565036189687159720716959504231465068904941889164376281109211294119005923496308657080845262056842020206660695655678169479710190042325222186257566499718323365377564984938569795138897269645326858774776281367944014247740895869977962755027268830688072626680847130436621068310303703567834920586802613953631455349078991060132724718351766440898922908164055785598532254564200738591127041180772471251111284333106202903612016436628418454023026369651723011088223280490142565023235867961447455767689991830286353170185906317866016990879038961424759385704024925588255395326523143036182177324578315513621348075068254898637598347176604555146664955370843423789848513557504779194742020020987594694610997360482931346058744045550713659539462801786497066168502144183254472205178073301465761465730426623167023095904996163449769046197708386869211522552483194903583902248633582630441263697024482194676600652802240681589902151813220879521620937522853962159840216394264505438367650213829743978031503712742127466296713407706718511454260505810227954116048156524627222683635868334360388301165477308376461130424799303379707596078972260620066999301366300896010985625465801505723282089163536985651492341127822506622463794925000935894280057941633963517354025350899368573410504033954910273250175574931077522916115108505227244036905755821638718952327639975597688810972052646466626307044023607461985347335741859261652647120393867219308734886815576255531231069682570134008996888889875691273247758929028753928884846321735240758701062966275457547950848215165653370675403296141450688658368803969136049238840984438374024985530574456815926763006929736925231913399032061913154704889391439381324759354749700813626648940422349197802538749542660307288035774680613580822696822135536947447788873145752522575621685040240602603954704663473900899316789739166985422238156151512839182225425510798248485396153426948280144094715025712014016098740357106675523678263815948032817774026309395397806899407577102790321023989935231078726629097070140034338819145425915619242854193763260729931175773991329931969798304109357709497268661566316862424083371579274629293379565623537274140115369136237981432793724582956601222617450155551375164629853004695098992273035097334237139192203669677374357886557782876080894765969721097477123425917499757952061544431452246090436897425970007613143167971622989805485869687406883853039740643601920761868622617458289966482018856660762953159890883836985680276417547542413484224436088523272896132437802745612989718066157930403368055241756440191215621812692155298139392490756667952968070913200094445357683379857405961832918456760625273961420505623455283986321347759636887405708893934615984391377409188985327036399983300121282092543231659318712136392736494379284891976820112013535983411063345469588951047034913916205755484477699918839152493385231734920436852634911103196621529464764700266611768864032952499288724106764625699982466293630494735819863257505609684063382019572646314975770069805324754047367805098281350263743024636201683682336016291384713066074932677278695040510102312022537868916088466084445383765072937583587221117233744889056248564544037298519115871828487016862942641460513226667003597449421442366597212856187389352359517464222850335325640319055672591011952052560221906770795471478204845931194303216369457265889231388962376968174829774216509437994824799460691977006883563762222040369048193847295667479363053869265068769068627592265982540285950475159127379693751658922165733109197208882267630682705621453121271624447040212515345917937021403129435947821122271858010256060903227277147203512431387555331241431435868254218472067642257281621426431987418188787522582291661412217171413985884827358656846515525354944788890285915275088017908583599189550503561018666530339477222689776896760053754010785344265909931741500881589288402795602324204163470050338649180951650445813690401989938965227459920896077450404186529538225562984133530689193310763666839391908077405932586995884709276955203301400909818569627335166711416238293158796196076389677734248455896740369350662668541345042899834650786387429990125149226995304216923504712508016549016551342257218351993797763338329263673463659499380308724100673830433508009098843548986555012399747196771943667652810877645223721885043337230849746203402035616005030534039058224584881098135617633871969232235208073245220866284528394751732647150032884671591148545525005083879058977100403718032523713005542286586415080464547767180391095634904134167471116055860795943455406443238181272549347395819142025395057312794041790954838865412028199690076239225647879690074054646144787106553226701278870806903121266224379792945953886015896733094794734265421277240300290125910518924063704542276716366816685444217901092588052439618704199272778188221906263867214488048159051195764781953334984421215208470533266501421887519817650570555643280762309074478307557697718289893750912199658596172764669748779869580412694546119597544505360278001769105430247069514386025292348931982155633392493119042028103717612099758774207283316778014022278194113761383554317797255184781757809127725802395281208703157525044829989032149346700602776454382365231565094280762027644127689941818294224978380175593322428986891071149966396898027214994349338948545826596797198475396638523420887456611886713095643220399254907012915007216659309180770209914598830875230985093644776532688158276690738039062557351591045017921301596099570228279962507243929756081432365380923503685751325311089703925046003707712873501678240645692222245440167917401170171809267997792847892459836023696692326059728799460627059746237660777058292068035735867000480425034420067063052213435213254293138657124866854832714394048991322441905351278735779341814036078814536453282084867971941153025677963381565710595363611570098520203762558980446711571364290867467275347627479119204466954324031680231486532867580234231543603872613896314788821159478568360263633099441054792160447911301412342316098947451116532779373676955188748407044857845509688000867238584617291179484118415841976879048249676164839509813115277348161952361778808486011440137451104257289433808077022453706202950269767506391276712973096646871552645060974560891752030401826089949253867731970904040133089723562467318107168072363691594154159391504384274742857741621137888280753982798149262603829306987746257192087297221332052627779081800137785023022445708687685459084281326789523366013860243805694248752128741684849853692906601158655105178464922950702566263817370865407444873606199782357229502544249401258157378878058227322873562012557657094710329232190645138766362648554501008408874988362356267342773274424629836563029662030130212032325052204627000028971421384467832664694955180355930038012137798932544982724421518359666560475771121462233494095490035369392294020524895240087812227269968608413432641303558160768686511633161790177990524743106345017432219236881803291951503782433218726096845054279978430319476583708935430895728407171097554552380077802076651884111425298522759346335120860191509537568365486174619553774443858060366660505836665989018562983804202473901403911317769189623180008957902064763073724417445638544506248040553426398162841511860138760588654763954834742269640543984298843847906055620440912710055956804629648424820275812663391568865489349842675687050088676123895302092848226845306005873479557335768628970452448172453435914385502885058995198944298593625075485902342173143345223684764347905061807798172217146017756244992045494138275871633468106953660646279685129886466268593364294826973848163450681968881881813621119685699799143806109193607360107942931918223384780020839090010780233506085905787905647901224250561126296706930303787915089724591710174635565211555359938294421502409187651879703183575659308806423541595551401193675575864272564151246784324413336083950173400915669316602598435104952584919055796055740074796313723148599940231227201841345849938977795156382419960714116903185038269858096970686707326910770941481701479078009990212903749318177439538423620509771956879481271629809032453164633200229155454655285898224407238552664522567161343025888816466754994014436166255187325586378925784568574446542063397983186210579354846782526624008511812343420132497296223904263221109860777202549074102983736667293603034365202346571635065826893640969037275292673045864293101817332618909391182358940349549816151580538067257744967638335166098246956374746011002187591651300858433432096950751301987145335779260911188222557324153598041626484050032848831686999983306494139164287072744544403430839385316116638696926033318198536369049489079657768259041704303214586858544032734115961714490920126544695517622334735135987479250257651727707899944226436269704057416699208984197208544440629457663006358439694035260026432757084797538600528189514501333589422755175604058148572449940914339552735682006101463202001855835141187239605410407791851394163520438673267493442939717098860605829677990959573784400597813827066622283469381678377970765306892965938332352248887859721130156379999408057592481712361669853584520972306503230921028831772781381437416431398198612299216265130046296971090141270198284707981816913329113361642405691863021105977112523496344259503536315432185331648071576299328021001370165860896876244051264339226275461065000880259647589140599128166225489690158755858198595679811260993739181910347893324562407602336974036839839126308050289897914140981614911026096994070453038194131585367364985959610956829246152141769449141029578358415261657273371272590121038950499409789130189288434472555944969230801411607733381601861724798762089482685038214217673041097790337838727170604415520162002844502313627663652579596971274837267174337504365993838548319623853352561105739634547640338533125259037210122158046963542751730234233306388168841127881749796589121678698253209346815905079701208281609568311652077501879463880344616254296776745007127298216774363636001074886450046024781964600732253664737136642210868141324353689209020825541101906921718928673108838881929549662532093309338575491263946830239309718407429989350699674018653889533165331706185982247269566866704564920555879770116050242243454108073581389985589176470443171984898174945137937291549547619663900076621535215999946409388624134432445267373004581324946634460561831284271579356564460794564782845361844053563000132124183537423788687511854981446531739078907169084522815189556821539176204708600912899994492868444606955892141222468597712081650864019645424874649991830726515329135043761816371576700685027743327215138274244633455539103233807774118146873208425371142883343126647520942766738687050483624943916245551981569912209707016801210468953029564613786116627557761965035923196665120450670424622757079787441015712602410856033446792954795329291561714831900281177391141732669952265820003230587466335826563159107931788035049543055701996806347428380786315342815960757165072763336094222494262199165078224496776811647576416897007316363848822670945362230034926587597839531360531245407052996363966031569977137031160697740544228313402192287292916681242045110898453719253822261905247318177910094450541594477323060143255146395226313172666134050120397291622480995403810184913025870629074612870360739160472298276577591516952603827019846896624876594867191718102467592234884980562719527982044661046093271474628974656775234084952276101349264012192991520780318376983501671100053654648960872380219567764637635246893761032747202211405005799702475074812422714658243130136746292818480288180487279827184611031628747306819603033374087255297119639250990366530079657500194263412390617216594825167886953504236090677743441725983243403526331729009822928462853705740925160713724902250418708866030541998228227609656380006047287632003597888707697227562272099675427945490075258558566964400535258867618243816840936526444450412074920886161342800840624688388533853863478325551963233197824650995708230342462880903198678871943743192235023525964552094224754590554972533913306332316557588699056017887674125817839997927806799354333933402177630431510185649420860326779420321372099299745898829390988301481811176359809057549302477360269058950926196274199266896315088310965756546444586022561578927907468669922507088370296938201314529431315496698619853568498675798465585312662816912888963371804415780984369369209317746944353743549908765358007210522861992913438286793758623579988135386245516351007478668979291926810940522759642332025641460407142175436691087779050268405386430396397069951234608014982519305640668858058450638994731734133928422489688164223402728041959553206040360213578947296253553456675724286438203153654934570189432494545461834185917691856277120094512880261615935365094945713194150343712233060561405239690719121279639436713305423467820802874979969362554831702163589266829586877972311819153286272543841862255577554319420861781619134330912760180036281275434587697477317645108576817807983785328716703310290367505642733079921138087997177821266723122235034719277671919665662567948558544097986312043828971780805978199520363857488207661762109549170460333960601808203856761947004925276473783572662923114794852367959005645053095872428302048824739606496322659706602973062595952864632310909078000310527905749316056627519044857537748317979707866821974543842108714505143571337289531916610154540544241975096852113975589560269721122014809835302804152038099745023066367367941644106239398489212969763254775884708517544343944638687066262363970369037349436534163129212471824786347122612634553958615425744573961295133757750147079359862533648774389798911398789083727532441292272147602699846686409779216124006994367936304802717017007285778209232342137110956973724517751331221391140293366422614186603905372385366974729393278295546050889327685780595415388794834746433635186240273914783456978454098206057015502131280938898587748438466568553475118678446529124123306406473697488066364630626411516621062003340464537746800153739907009934182712772711979047718669165997255828756680778883749293415251767955516954060208092462707352044237597990813108063461784954799599818398183541832829756648912231191190352986552793817603687287306166827411090248543388429896185788940886449264119577061604123625298369498542665964187052433038971537527481452489992403421370955298969977389367268847720520473906780642881682484202004695997073033343572092521878258100949598256942621893857210382111144551913153166352238366800437014107655642087276409494774373102178698493060014854404763112750298722942715189044508370701715682489246322049087699381619633478979059146769893563472529886207442707327314187733802030018906638527580657901450679294964905166921164890887658543477719150304275917051186277237142048502774575508712377525937090637933759528896406098281635011324220146782167606638170275653101962935636235179335198868301131466770545056119122230172124714677505216828590567585492580160122435834039576541196893475797079990158311569411451766730612021480045794892052977493986496498102947055027309554230111129673356980269227081537582099620593501652132412205541112757698977725339961248090382346960890132419307107546306063914575383251064973235259664405975694480753885164722169016457667913363950298697137298291496597637138696489071556019961520659774400356484828848140543343426889906209370532784385636659165780858235436729381207351789974342333835300473679016746571916492537149633158723589095949740110605510639301770232769846307889070100466672178282820010061081712427596709410721398911969783938240179550395786406781378384726573390082523575919299792003418016618132496465991564755761537157578859612521690689295955085639246715895397188834808070842836169819559478377669097178018782870571375731285549192541697156705463208638956984685746999360972362274492397438976923847572407311461228064873240505949095922253548995886782956658539141515354272582896668822295297523286178493982243401414204145102700311942384069571975604747104160763129013406391678670293115392496803487065496593831411978066661856095228590471686548012060986591665002834936338518572089661779051101069263542881631695222402766930314119558043491845063338031315575204713956927774912049266478172014763455088153018753096283012564768583450251973798727786207277365345450308856383381065706258737762409573490625443013049882589512823259654083557494264598589011873698118411191335200789148535270127857857819820705186529263585571858813477639786132893478742567387230952040263846767132727594570708991450633419885046304009652156266048484129178761267697003362934090526617379107783437404921121141051001344116584627969267668707573948296769657665138849851702001252335155697536007373000982363630667015535364614523818284421422900999499565625338983305936759274621297394108325762747392929075392259387817097629036003842971842904821817325315286595325390924084528536282027042431630856936233919091186004385701538008480551444254209264179477491296077761114297734704813878287364142914556335271595705073786248695796361278608921750861707940370131577652879242521427025801904170093967878653100081640877808665333475427440478186639317133344983879753992281313189115814543126988251290393864837047256084589395267928477269974584754874720068072702386257645371148689044594505726127701209603286462724607005452738989887131178844675821338414079354915313562743012456638616855961649939786871552943754953518810924802251804807475449459789333095285336242318716826959643582976250316945293790903310448651371008541844552096777294123705687355433536882832521215622252123351802893038467164494030100248378115829822613656773230647915619543442013924882294338772566589127591579659054423879925632763467502484757308271096288102864041280709356445991658245666493526116408824900106990479706563471398797577085974162509113452492283583565582911327468842649690866793192141074806747506599130173835917654102663960045523992179928373685105465334348340379126860760284976882278500910418283586403670964851440051042199319788648892726040739569030525906841267176763111436790348923337999496159447184128327448631335406311505754946574621547841395317123330213564894346300250664687427317265125822894160039892310045115689888209546317475587676863182602057273978239148419415682366736518689532982875219104085663921819579840284401417995578518697456981300159223218501196434837769801723577664964399277550127672596853570540984738298467518517072635280396491351322192882486670882197851216033670085860295100884302532440917138345790081630592403897495540952815978709422797750766370940394606763611447685613619039480330895516175683907914980450651401827208713487383252905010550170061114562861610069294443583053513471147831103550681598764850438792262068737431890613050447361243771543525313600268235077962066691698377213238479875889897750766929904401849375847495615085098107159244405767718598203605642970801498812973985150481052498588995033773430832117663887851046911873923479478073415912196394680204646015688284247773340762879540807006891002879042247755877703860339725628995497573543161993590447355980703123822159070030617635405408503514778281746917803129009430730095570850049673347211356328061679490229332287598383548808763198970376626894136710293038112852515800124334939148358916601329826932361743010310337672513065373152376180269289493156530824557073535462980004389173546532442623124317053184001970304143280245600212370707010377181083391904876540742364835079467394093626532410624701837228763252107459288944924568478646624113971325282794400331916227927642417325823847921967940179919134539212871244820023335161773522851189509668963415041642172114714073425545973510888919555434166155354996172797281867996157062565032908818537171373911904822826844248358151564204600319558053691003476516548881539419890301923488730208723099904123950971537794168165526179803344097964431713136206477026475747253385462137266945288500615127007028551642735640585539102423162585300924624673282783242512839515729910864989407501274684565159782091259533259448571997657071362430985843478030717497199832061038284523832387582198570041256081116070518237270582002379380340649114583747756071753086522377274658728363337900717725699513805574257995097022342677838450648406810409089802425888275784807828674408662334250036283331567094566851293643159507428427501638273327666695667917791436548721317520556019198757270374271961040581661554222291467996673246351108225918096486247147187751567307892261589653578567062509199681408027375868739950640440577615442133617410794585578481605138281053221334453528313472658027641131686178523178665776998140827282826111482289643310797741321863365413321499905283190895637199398959277360973040929662329171984223245606053505260218822029391509782145896587118476113969873701457674913333607516686814036141635656623021911639076288811719088665749787828853867935380191855218817891373866779943554042099168895248399443544812893024059453952505915374994325478574893412997438199827990690323083517794433174842834712882184444248102676452314614305140033308218313980788776024963790651628977500287437160825746999141974157129789909707436307116191365151329220274141317859606648499698335833621668836702247939301276183874534881568678437398760695174832093833107197948570639151321161681862500335219184948726580867504458182468695218410097101091880376556118073939735833725801462407070308366907581381421845032295234037308959963457726009345141629261852794804669589980669236981538815859098085366770332255621908574872455940192702549136726294905727769654218633779390018325375966745574663306761881280507573190607043396111908682068833902881249401014053073133783497726927124938077613038975393062534993372213039380270081468050203794470438771844052355280112453119331465480863685259779095980908416849756392001850712626211708403737658568894034095965285544408077349397420827222718767339686130787240874589791978401668538576462023931499510615709633459110679869248154878356159285244927829717374564609775121118137846946391271966369351957484916806928339318235842888557191974431189034719924777856781985591547430122210266980534715585117240206369038845652033639443032004181478451084466145359692901788812374237692046481272510113241254221916837849803752284882619416477856713067787497921898244160260514106429319163099889285294619696727098546665635679905682587905465789031458259359729979532948655825539737263431189889068504386409173261092562791349728706530033220999515757651664188418499404109055160540498532529772736679640770032875173406399630641593957332467190757310858160188932738017094721044719628486413746495727849251587552470873913467200674434919684865491935880813756793799990193672033762943794779858405680621628058121229552549022125146833810099305231932592217326946174518606732821922123675159125756420579121985312492021010787109193686384119646932787754110538353515612014067155296019670622349188132701947880273426044473890613309157776413350089882560495446431058016950542608163465161437053552946312514962906763020087785502270303246308100399294129105991702340451934780058799211632098851843458022825479267092903488257001355887354560393344709209744271950926607742487051543350927539037477933322128966529492966196297010667785914504465073429634533566088714999392908568992403374583576506730019633504143235931028267974218227203922452327333301815603977411613458695726002883011028873878365392223235391778274318736153170411130854838434487220513642452173130526694272149993755270857079090098670112157888632850412298747623151890021732977860922732783069228669827125871898498628177202535981157180711853115676270278480173672624428095274594430953514607567115230824715495272522619536587807403837630126031139816807650789772140617489642596398218883904796640179002474453558825723957753671991894275106058559676725908247131665207027293996102492753459848372741541422402571691293277831664327531340378634510540180045223777096077650975382968027347557836046694434228096940471995816619503693471495874273452771050742924873352698005446392904445706861824707322402043400888364595301759005291071388056021489257468141955302829921230947246705003558262635975342426908352500297749568576699299150311078663000651993638983933311898080491212618760000250462068142686443165579867799882129889431199903594602090254488442792196299247831814721502445285567762139764847539164657806379735865802928662870889639758855149131964660156412860356955218851561830399224598536269433716038524780921326279646023553946856857291274503086029318838137253926076934955457324663292838665186336067326198185948237612084482444524865016087395898089430050752439791507579432802176775708220615401830556043715978394078323868260778702609093316375375139179903272476436613152150422228741200125162168962273962714874465602057603003894370917147583960584142613715249178262268040733643403349004493080039911635538426403619535754234762940096475906489243667651642719010965988808259863332243417330934409662581139666372990381137276705346635612683859089670585370796656043077676298991733998992399465420538443642271572434287496676244277134909173201625402346768666647380914745474400228327277371344892128322413151384685240786794376514109990111782831726273646788169902938504651411378905386164081631838919431452945394496101891679920366213775921450538287263045806679138911424011847047458958522741283988264611722460223883544472908055524973013166026200279512469658053024244587190236673670402806905848453695249401994569983891175521681110721099537917727865041509692802350736298730820335156695160407663260890118863825300532316001473690451626913688572610487716050719799451521201508432328860065010528605648304698636425849013466997487132642868581221785103465950960247530830255053328745372930218333952439146902181352208945405640872228603082707920081561621200551515320987209619484727824817484495498002548703604976681457843441083718829103155095696053404584910812195812918870820859133671220864971177061130711800058487478460879371905677733989257636652529130875632963266018178050319883628504324089576622295016579912904407626702215118833342275541589744282706588338336606605380422731876867318296353631903368220289433246001641608585324836136027389273306594954116431275947779316552823028155768408809335065919559375258560190956968694316126768001892214592237295815030401192479354310706716484633284255341957987574831631879418479205164484642151392273991487648733897974077209832746185613881895976793356514004904396115152360139943829613102451796200532413583422762450799015498823694139135058329854711323233394305912647196700687357074557304071583228108563698018921358119944407031868414204165785414147583208838512442089078864531296562142387655735037214840274459762899151725042509181086070890299764995874094998264981391048147757323515945403714333663416887973515296365119339018359705509981547629915441629628946006608966825286821117389213119500250979907384915091543435146774134532298894266303168573224565845997614457200988023235520836335001669489155062448989876250417712293879827103844182641721974455541566788504114064065418116824341001974126603654079421103444679576479301713542412350942871728119771904468894909497396643957149804283525316268231117314465146735122172754428492376171605253786198827144002497897102281794071620827533582188245191966176374483230406018116378994438929555183466873184970082758331340583460556867569669231941495686073854608610968326225251417852932942878966155472641647855787952567298098828318881933831014747367667989997998493451586788516929768412056166972228086200831745557829310626265436225457161298431897926281935907796927562507323444697551576278797653095315079950202285887065952192718559707041041873510186993801329945376977508564426046436857407833574756402749787023827835711281958501034447443178868502870621851328683370044751523413300282401486476438311678349717802166315678631475928978513061608328940793629834099782240282620322139091437381349074289452458602719717976566861462719827923362862707203895558348230807020475733973097859747856188189090209489855447503042962314585496908601220564247132950487533647041516339120413468615109411212152056634192661187775924320339735635907409973849905721391690451444944433840918753157474204841886405301915467860365381994853392768343118200978545076332508715337847514332224326735974997624352404838251992504937242998562644067232438072268070529736246543356723964611043397346332228789677017738622108221232856317140070573197252680105247239857400572565269198958435209278762963268641002451211442661763378697546542386976048246964985865288329802206632401017977746889635803882165755752537194787462345058487088470788288619638469337098820019070771262885267722957670942637813333626935859142610534019289902082116448765282364309749882139984172371132227792084140284018372960215058917783973476981986655938507485038732117195020749395017366204442093814652969958344329057733487727022326117599484175938445510446340816253173595120343749423565727446164886563399163506205966984588062982246558504017437128490045464551198998789864627047073510507964079153325472755228147291861394097560747763731995607113955637481466044098518839183120069080126360484904388863477136641190717591135536571522388708400503944828064779185569359209293782244299457511926208495288319034015130288343863925201138084144377576414641928276231342229705171817364431497625998056771077781090643091403265750762019563442959013959328215781591187636476463559406062998371304694282923767506083405742424250196213542715272032620079723048882496378179329875833500044550059313953034699413949081881499702488534420540844504900675694913709050077030172255643888384569350420220136413104082800029413164199690765203153675683250771158429343078780519298503562778245553525551850790847909907420484521477786939401744289066097543730372386268938474155236083996118629520537543386453816316959136693801023825852405533145472301917181621995850453010687517430132661022068403726916520413385083474600262322603139292780284341943504642123022999182239495749032968123789380491014906737296331114463115193210614068823523058744708031221099316873900289290671840879705339829497990201412191787095893571516749589283608975800925411957389048449170864812845958251802443894507841170774616986318250085512851253019070163605418451579291785367042936988588452861963287075710640745634015852836058148125074175491840635782733953441379976151772359629913581169241177818323977329996781931146252410864535606804351329017651576403231813493335297381850778597163956567878301356787823213007492099645937534656110529877112806354399900463730141742176657811124858627298548288232164948873531391266176815510571371804064395108566904618366183032189605330690877724812772401653276690171832194256690676488306821991299373610319216161474179013423452825384662458025831460114818241626996147178404152577820612014893534101972242362271226466848575772761301752146111086323881420859155880601927744104378028445090730351983609648007543033134821355541794965632640159941556675668389363142807024785032925467233827288279477364706578851510487169064615963491297460914185414268047869238200130286542707981093332724120546301496508287079787145870413489185805573304558138934739027223456026845268453481292522285619826984497044858133612991149983520297192985084217167548459431745249382889056392218540974678105224868627202732626707905558498310410096460274140603909730138020176323261337210162030168158916989007331614541532292887698882778884102901029730306590336961858081073573214178827517736171738567971928815943151452987070746709546686591861284345797297806605093403444399232993337697546274455785459362803462881207072343917661793382989155045380586884453741598939833363602477527530533994721721102372494904988388823434755526777981437559897225688852968164292731414357945271299495312969770352772602516605099020351174113457840506462579722055429490361848552078544337169287317529842397825045646228667943564106855420041071607784679762592382045140822428263473684170036175031959772181165207506923190685707060434405696394245075484628476020818725034976763288472517764787797438557706380061601767521802313665292930733360794654599888766748356063125921334857416573740050463517265172153594435644038322341367185358993629153315846074579134486753158317267476596877404910637183322312767187341310282729537152749858511592450270135755135095281513126044005239526425819735580042143177284064293892241028663831816629024338342981980429456698434674159956961928854577133819040947995409706310108188287746532395225374897877343150190431832341021118395007842190445883038171207435188002226712274536925135011947920415265886079772445466713394780904668987650398260974396542733647299866012152509429546440624553540394692745733801056499290275217229443770330263588440072765806250077630355501388693958521711243631165888888144290064140723437492839810752824022777179908838662546388081033492540757360950712491185585382592691877239347720867117994268190268009220068359487726688650376665563199359370868207610451581199996789266346748551728367402641660623091228181496960367404845696702049107302425734992331393521671953751520596987230297624298362011731358428180264538617515100326590249460995230376672646378046379406237190042372956512952611441683454283830117061920224255937983460041151972531145182540781638833079353290849381036972200118748960988578341705957499339708445962213705707538187933369080280306634339259805511331934549898246827630921669243729173193124362178346069737540968089815461655667550432978118747852681246093743176509005403866452835763318089804162947713395856771777348916551793682718459335989343970280409615464295564519734292855446790748169114658125748004224935915360714703340537498324744988840097113418535307961599898813518776618257795105092996794165832798471118877431107086679682375194960764725977589046381793640323326644384213149343332111193789571838257019280101479651965563996968294080077674107809123334410893672267444726011315854837987684601688520145619648122903072344290369930557692338484615458091575562523360183279097532109019217587003858449604753221970266977516975335179020794868249682819681704401243446000483909744210443796610062169121792308812908747833198356171441230673145855064985853051223547848590446000334291633954632739821435518189918150622268798829444946279253772929961469360171148202629635836034142165271836247077485769730471767805761645575745437948453087554971385104315170362144038093495004946922429707089457999992435078893044615949809566655578192345831756328700966828986401150960045553810997831836994095203681797781107348621650397988756154240181430230628903436403761397887008441351561980446095478353120343403767394604109267863857287952410495302854648514910537158437426670990813940009083890363004130748756242271974722293706340592021544535962710242447960214025841872470128293532793534126389402520471477194599016226526816164650902711058200798303009680311083417170484183657245835877570483216175641156428762793312979961799367945751294023630588013787040729904566218796947726977647615442409196693538264202132875251951434310717764327591340808091664947498666973836375568688469091412875163774617131539314735436526257969295156973355594961749843789306425602976842882368620486431975959665996750683767065597750773082323090879290028243039011995716704366667906323567870819056935472909033104189807233548466009751347008519889293783932320961288522859660379235186913455295168777290436458704896690581897040963224988566325622845595765875517260956777254977758489445470925475090091494303986338924387270203210460485950219953820092016994592089010354087900488187129013409978102800299354116247611189097463943191111520273208078129655293041255992328111686947176751451752924601711168908555990152864170963798550591930183086444987261846764195161251371235199101855646421503785753095178052878876284842276812147122866827453325809727735976276953579942211638795739544821552157417448768745196766992132512863281964649966761622548022777193391027022574584756995663665086574960205563705849849327570960709679686812876398066595678667199703531032293026017368566567516146291216178464857195498434841887835975776965861429800333235204825392042081674699906331014193547242432462173396422180862345780408574669103665334128498362272076295466459069585985639906420550244352782869247753928429812191389386377121783606095689083794097756118640757454819449790687438381566976322161736092260035917870494007629973219634861841327019670353665507691017415255169796409788929308963718400918533210775230501389616235534738806994428010314162299975842548151479301052510015156984731343455299746363084348485539989224679791455226371330890783677238346973501074391345021147872859502745375734122879518785046255671002772555225989124495890276137216776518398491390360018627919902215105282546802596361316138690653768087354267117678760774913453792007141170322330826067404212680134024629512010153876706547823558807745211796080854379369513606081688421743128404620598518147619546835655225551581600037636593331496262725110136850628364588993354048029765989208973920201700823175579266400370510401045162307408426236355198692952122215837870631976535825290857019580450663748042117483978090897622309594553699950486015271328463933004279016180618034660528892864497241881893354399420576280511940995244474775288713075223791114752744024517425373061595370460349860045614591647742316592479252589909649574477158828002829322542033017959857676282127540071609949999285959941550809907786306290775627396701577128703209031205131982158843877523157576993265835685607306267985281318981422573089188152198273623959033005640944537084640770564867773063482256931915552847727980942427869142252946621109866388653572874600873046529168544733967646237809639593488848254568518773848695591673407838763148162281422928953999585808886977012098273175770631491990459195358245292055565017040447256244808919165801721742293801966774651456604678770905920803279073457853944455406560245645402739850540945525365959502373942063999050948074452788205381058134778832258788904403963102518499119856999389673086430639298916402350489194067770640529838840324488546108128751656619771780433966984927806569843669738589418700993165109132162086069408452750986395012144523150791783603774318857937324701201572850673807317489062783345795477135144285208996008450324501424355970655125737081556586808129424953351295080044374883515618164525882976941954400163730345848903313158165160716632235809722708732522387616992864391987703300171145126859523573817868638487932534174016507682999074888190187071846356545788946749629819882188837792219653149927095965373357522729676291791859772414760062986565245598824048215085696716249946734690373316626565398055612812593449640140381494737556992658802559952903755248456632783632386020847338685283636797384633893212591466898876587887822930732538448710418914521721229943619737958934197062718033213740268331456467986771099781823498164450098579181816562911948467198898120640579692379179357180879431646449906799724216074441753687677033012613885839732835014129936310023477315728472628486466844799079433783061599804383592693663145370295305530304968352797687457868227683154281811713619441806985618697918824885075449011208395375464816066759932677067158421155233442652606144906598151751571096097113463966010273060067244816491601832473821641578009378074934778300234399421358674628463961026121657190175748986292244417799224901262266096886100603533187974582942847317526262695389197273460240833595638758763752993737809541795828788662465461951982491476606122637206717406125935508949493993033048458026087782721194875452774742567161620369182239223810866973140672686924373649298477002932069464000684699277104056215177455079556825045071790517311024800415407103303007612306406396822625282523438075841351553203036842903272610742360016348336580023622474973253739014230708294912766223990710684726462920709911998134938427310406670932316285078167162550591417471047298053556677927412092985118717791064919875154389184851420934140194486380544639352183781676678232133397027476089825123699693958432521272520684525731993476630749209852484026297736186623272874737752918201882834242837359586899648991603564055394485200113407771621885475177656342478019604617908668636310119178514042594611573590649210648057167508441626170494109335080813327288923841798776467824677835513178750938546090042114413868405835870435723683799755514205338640427659690407774625041768791143420560785471494907728153969836425036204657243484822984224869289256348593190865880303542231441117752819626504037740391767158890328442969715047892280878919584259946313782837536012047080006997976912032981557403789935509925931866445031088343908122080753507460497109860990966366687048204074682987932927097528475060843427106066590378980634441803303850228957911739802748474442187195967019143069906455581906449496253531877949543589699751438157570636208399603322305124507283100957564635107186276954175115508038089952018160086564118954929474804589655451263472341716678440873666697693572556850662739793556955950385796504373341339328847196462167111387082105515091679293347024330967002558600091486255455287855690073345045114185360854753464032323555774031702347668675038428914920033593814172480816433863193095562867650101115002377298691163610668648308098158905556104164856137566245168488307789428839190559822146598206659792092604907486309316330010932324135761031354279786123217398121213050639841345218180365271065748932851955114050402854173107029440904578942563301690101259854772083021658731332315943632854613935141301954743097985624215615223450519033315623847116320763609141597867405978955661255006005612670324863467942194534615173827688355860089503472556220984090501839954320543824016986155824984876352289249185008188033789012922788083073493176556035050917919550299407059218157664769210071304359668792868395386683784455863251536560942809591420895320085123470842387322293863223425494769242175471789140821264643338698010344762393382240686607476635985067937788987188797856633694136396737611641043598896422313834694460630291855208654321131137350060722043203906117138827450546423614565315969190726884934277994706778707704631401489791618619030644068886238894505886602807462345735074883095803473282531847625796680645277869363163059665630688637584697539105879603196291026493742778825725286162556655575310626225654902326693816020310022858301553543622169209912886137006342007973587301104481506363378029780108427949170816582053694319241989397320447293079134960910985160851437384922604569276503308543292644089764905703325517172016848961121832131579938628632178532172476438297303736598242930826808737129776644047843812249732259431248933205792885075867734920549984049680077786919797918002757517851911380833673832812813861292504200484066733840768281053263490749478369313042641621966417439339407458394637371895771396180139697449508567901398175187911935601040418148579188834308409661536560063519387208583573118977356578797748032409183736131426547197638806785101732117150108392427738023088294909614623332219759695238563184638276975584459997980677178104683389311403245149893949332848887893361572470839794072519425717772571616337106109967991171620343233995874051889791339579161405128556771348365659512468120639079280540440903078180042323432563233504785417998356368962226177034696824146478471885259893518411673507070659582910913907701719735027778102249177741089014539956829883811736853038797543298920525599836844604889833189599192441857054563663264639000887987420066226976336978349554227054090099457021952609413339363179820369327450518999020715533460564000413120770303944754844754434879370997506784793245957840757857970030429502309203750124992111976491879268310870059501687212576420570715931654893224988258701744259375653006990290725508909361568025581305791282259177999571157591878843313832332561345069152082512327435183393223846127789576374055707723469616867795719775769000728017370617164269489176190998808823640552043178788196746025245867923560818557172236789339176400514591425449780862825206016203656683281492830930944829362711025983439065776597269818641214314130299043989055076191037587921662004150653619352612512210896920662268220367145238489377248233432034948715136182911240841576528470998296145320111013101410875927730314941865261564925724384671057108270597507109353591732887806861796553234872996179421901233193342145262953681271637508017299349555208276851089592699575404432966620180902250177652994687594462317594581733837625556971733772052009950238898223673683440268828526980777708517119326607471007316393518431518641258099488614750414159468391709823312051668232138975153149545277741513892562878645061514135241605390526086722338446534153421082330879960000590999187215208326641456154277658514782723323032074432041731667248034173083502933465077514537325605661164888967389207559379752936699519399321603193304119555017434516143820238149299562160377595700007422643438051304664761736200014884567495549643273471809808719969203294955183288778458701782037110076692581673805587868275296913815126486320576879915444009238773178595349288240516943935880764389369885400292740204173835466280450676308701041676617638958286105019058801126438829600038538322247321140460979975193018216451388489563263249545825857253216952104836822403398944966274553276552655029784814247373946709824711845312036857264881882439157898525690851661615994512200457245819738671663237559184736578596963243017596056632905552489042981073681384393868046500780058701042483749380305890142564776155408016018074453246373612878081632774303206627901662114661291681027595875847278019644130604876654868987978259728029941686305998241436828134096741131750120316382033482962545114224798185696168868781155746088158828880025510012699386971474750835670838306616852476097355757419830948677533842365390952045727780782397445745112319019891689484336219227555694540947951683161462919100589933129757007882204835936457529546702571725470087497008506335509283653920119297088686543453313098145074579291687970773049048964950119208231954687292148039280784847898199615678996454213716932504353291771793784038043133031475556966082150230749735175926054561145229524535695296518757230653478422076354906918308405572379419483352720144919750843607790915955311963775977005891270489496971444450269450545629470286961249510529372342551284453830730140559255723029843754557796647036832352246176819270635392258873182617161145299478285601386297734919057928299670539839264438794891882875020093909566699864654611455353066653423552886042900204603029650678099327053591149693061151429588853784746976646917746592537431943021775948656913742114758406762954948515674995417389578250642933401380260827200321910401520590123226179649758623532554022820497467675313341121814214273378014212819003659447161828363547768390434588511559439491719557613081996296657571024154113120701217146195998676157951466461132751082630243499745558863044809470238786053883598695332132061861123292716928366615972600953352984856480127639967222766175628119886576646863389598721490567834722501286758195813360915918681673690990907909978596294074068572201030349385934383981730428551329548049515609033780086255887777609777820897310126763131290984497615620301519318292196599000887052755313749433407278615467993038968603584062466099994537730458420001144422237888543882048723440735618621607038747010251686146395037912485646040167200714653769070457329279778386540842958611655036754670662448298673107155747625676143007950835762128254371575050820859442192642713414588660283229856776914619405170724556585685697214167840569517171090255410910222470586919637344054576598849187116354061842842421860079388973429138844573733390667982608749740949889322509957112336521602062257144277802833117933577122807347794285559519933881557003359298367671725956268628147217506947467593597496936983181933340977397299312375147531782207833230887142724209273923804279443059631981782718345025227284890340013860483936088075977581701635543457856157665666172964858944051893517305229483547501321224278785733225150927152158846453486208304096852678364404091239791383794447298446929194894248732193983859003498550348371488651162284640181729861973874229586975007486837807452323877802725422786404209431849591824620797256122991738105033940507964410142617125031598618523665262998889833789447614925064056431685107850831454379764069074769899736889726915887491016548833004551208394341383329371059355230632419944351633401728062324242521832164214347984533075183487475907521752979571933145941718908728419525214180059387550460582281346174595047304293520188749749616138438488811262679846739076463615461254447877280269764306819227683959213729510477584210548570341112310000699356940535452285048843642821420040738517270378153447741793690904413650483800993554805248612544791356190230938381644817393070477248180628407784999565977363868442959815959556149030383077567220290739629830332948616802228507446603200033895828194782843615681667246681180281507431011731947772932157532491019177085687567797442172768459855449608478278408002727040196396242967624921910145854202705252850600308779790735299798013194121384820820095462263375474412929861919582031055320935466097559451447710184282078975141601627117993485337403147148463287406133653908278812224533671021991378861084932128476639323627438689390455928953788081724684504759286903225369951574252624050501551537514740837127930828645137300353469824560581235609991704204294470695455510476590867304008990424300723665155805418193796101677139112630192869099098500520740332045477466348742369516841382956023907517088182159784161405332031979511248194448788663617045639638215651833218530638491310666090885473259137172319301700593286970944889625656422617707899579768699665995657056839694690295123272994623733440158767587742344341974728160727013994662057992734842825017283550241143724027817686828577400369857868509490252211705435757892161827845491640305265406189238096540970129187179037973056975160885070833488519528167998803545791121724408445599531768277029179011686046277994093935885843242728403104130547097055155450310783580651479854130933389360558337815625088827167380695125272620178952398484784298252989977047675844947777111597932063488832028750929251953874780363617407641038677480080181486422612998298496874102984777669911269544284127874548710389192348831171065462874051649783176273338698902069178640471312845729522991840582945337696543866739193976660943752373240340897966483443798593835000191975079722190183815990936909573862072792270841854341933093757806567947836876903393344510995498861224590125156890208290231356687226381542190187733566048790851531632119931207016197473057734127109082080366071650886638804077490055220906770721571441670548782479846991639437694918662382017759546417445426534487131563165045738572495868560125560331564551084816526794623881671050233997271047500984479598405195260880744803315582898381431565594998633244638463409043130745797925261375713686694234305402369736583886866241122751595084001831618605993200007215477851425635687638594278419947994912035453913161601842756066251352263957846732393748218205618289013755222917973186545220891908016369743074040675948180183897839481963015237375598013531072643438196068180820868601090052823167823813156719812894236678874168031327560012888048052628039137349380740267055043742752349783644498986333568141584552234189672661417350878473261792055935953839793906673492968676011427048534669160568207010419559092041055713300221291153790026718278608367365642733666502201263702155775251025339522135232891940277142835553949506760361109982124878058758395263386677311437469960821949357080526024593001293435328154351434935643500418157122963854646488050762429003813789668761092265361538239782392172593570873441900473521075962317851899997453572440096871146028990926958695916807055920474941415718247364307999437321783777160646753254728361778363210363263867177423277701732462145902876598076904820878671029173651098884908107339601627763860551344057437917966700880160883116718823264445318939272126723366393994482507747211869572908774593232246448635070121799373561714683761481100254794403440246957061409513868136811714557999029026328510296279826596154466323853623857919846364679316339566219507524468363010815359139773269193026829282336498259349849366839756702870862521303664567703907426722117770941408513249068309407856782739910533523348639136614788650584959650260124996529182893867855325163101729802591977423337897856139040905893706960486135233681772167465979931282850331214306321391985617561137371399144567797437496312628337127622420806270934440724888338674814413316279668211087680010302227946797461562224159013050621313062781738433233575410325256604627486683803880295424621604023027980856955933850596311129000924964082687021703279613388729360607356313064369852859344299239189854201176786547384602227651923411998755822064948873196966301618356189466059744087366815207290919806174329188651135639340918624664901343982044588134793138158757650477128983676305458865058973811400734691660842987009955394113006683032335864924620423361656746519048572283377701287528884851838936989736972935388804140659636733174735411514417483821348162329249559765872209472944886966994144106163017048050290899228252864284617081613062011941796264370910883322638982189790189243889955738009850397306170444635934500585308089373197367835528954281086006478187015149024193157868015266005175454225816891423824240725771458019116912363769804082014156592334024833279764134568961212542821198713302973271962755793772522800803968104358860632920010517927017573820501982664720541049316155273988565415231741194541114341798124188598338687611167775788886151962777961599638400552675014615926373784088296958961725354439133967814213246480066207361487342575704151399687856673688550321916058004788876640701929166632674683794280140618729545250246707372254612649997942463186548423325725788398529502559717333308349425816214316506880520313212173786146764166293545319905864552320328587133485639805766434087628487179596286506000545087665277818687362398720623717644070499000966861891633291166368074810275368466402602101676060264122204191481739992982369562575090432874781362413442405100506428035511505873559824000758589771774261830902180919369105171948404255541543718838466607166600114817250017617290255628614503851017537021696608931150424168857526392204459230508859941180521269685749742856203619639046230438742544450342002138757444914064960745854949996438338323492072513037781399914760514637568678312258865188007876106486671237352937344554976739710441514067878143634360243992370859466902611407983409703956543273338215904048169729876817891005035251518361106636021809606577474101192196757361100824371210925094313190780966429961035001134376249052265609526033986971263395292969831144860713057441676026126501560775879581794538974423748462287413971844387126949703359470277741502269666130981940179731067674264423070452604865324463521447512738459787587892981344894344034708354010389399866459816774130808311482965166585507062412733456643554318638312008116043771411107806162508314053150161282327873237387274379940443731876194528487365799991418324034002343809838378576152394262541105260667379497324501802649962278792511469662194646301347654596813757282200125761681222992511791385903675241646240288342208603973571159859007702454027406278140697808872145022126724589405780370615280670383458740758757035677948692450698452544486869239080572129206004399818013000294372568897405337026311060111903138493582511670830433226063935026829498433989233023495898667675839410300110876287496460886776102138500723043685334062037022472161764101232184106807653679387236636663435853064351466338971541149100075315768688132168667906082518134894950732052396057068166525759383704291294417016421097804296533871379055404795707898897069539054559293889186935094435589367353921115385346667743425967245904151260670482127414094919391544008667686459516106115443578002752162978776226807091105561682681118240690718910254608917199030313129764288853827790746152804540197762922076493753555465784242380842462673788495138822323494716575352528087740266244252186108231802144735029752628571562487693600966828778294244326115113255779137913164851377582002118691785916058280110096813633312131913056847997401962255973264484756506192859004125141617875154768425542145381265648735095068130063953912356129202854693363565644793962473954066628431252873613253490519060675480723716621375121591282672008768623284512380190233515890849895872685120827901538131105613193164827279012097809108265156158055566663173231440071851702946964557255593897896656005984884834232447908615351314985776978493179467776478239127575618134345465302240068186717761830628713654965635160537999994580315605989916738150754208093959484876042627601883326999455671795288150016738780787404370607855890508024099603329273018994083642928715408936425870339308038811058651321238855953342549008464625776207004881442210672415428833974895206811949364756634023258489187345215557157418354717631032422811954764315038645031004207187457569753980510863604912823104360544450719304722557214644028754609578659166145694396710373144692475385259047759698677234531960163524637645549134587075520203891522025130030154584664335575782103722027612630955258076871135433786576323992057726287445780358156118853125539371101473081971663333395234637314638283625630637067781331877674909219768336984303993803693913297652100021373645842015560233240966364212257448133613321804964518958369022249275607114104666930156850603434824300835608953899985910939954434493380954276491668394489958298354083125312664724340793238342003350783878519601283236082503726252108927107184977813159794295514451177907042378598268607069108165914525319183171560240644079129153794202725036324517331803903922366287767033495770904543244933041441487635261063229846699900221578355453648812495806797239299988583915419998002942269919920615897693197721173113812505034694852304401248232790676322673646473675567933007914962623520713306615978231246259136103661384784053253797167711438446193922044333340858679553395077828446548018881234774166098021802255336473548904085824138708643206501445709788815188705294968897162396695479335696158345993883437499681066358981871937313810863824012915971977521531774526955693091957597040848865766678087954652580583448238488300307545821969628867524689458762226166735101684404094486917209945217562452091581782431680168614737665668360891945073982606525652034658319562891188538583608768127806786826876588297350732877832249288309467820975696516120436174681751671680744730012887591829562087550815063495924039120285327874211467347116968860380443686883305078945580614106209741785509673539618170213924091869221377433173460215093712192092936677412206887380278710098906021086552362832997867940047696231740128565200385157118538526496581699726971059827424502599791394793070466237696098611942067007331227790788708997072134798677525637817998871049945715071556966536684099151112341382765043479490325746996596218890498248699898355439090194686343401284941912763383356799634546881149131249627879147483422281828273098488039632614292479325931961128318943437284790508194105202108685593301165981140673573456284507229466507513403300872671223248326946932989566447089548539697977117758606137378130492146279773126913870705442632329950737109962229154458303221682147265406122817793902284844593091763334523877517139869685984875149820667273155874384585304337417489888833832232961395421619722590761125108179333560367672360305780347169010116128109017059208395006239038744221903224996355598123356723980881713322369007645426903399965822917350859132126383242171855028811408556409775135353689490096460449154203903121322107667352402678869122090799846680108315167148874926290816247911500797838249763260161643222799441646795029615835463640451593214239154926763511037067995206552885863452780129905155434144088966526809390844221945480785285932419208130915251673366438018461528473923806898823670026414746520848918679914585948566906333176195510856449993220469338431538159513621076302997177763520606964052596148556399822324908209958756542738004969729200311254561756943385354686637666537520629686492396476841269644364176754327090796119640711014348019638966145766077865330894490571900864245734971225589780234106686561032547830654770751450544475351211231913581843025871858029892404932556522780855419335571789369227004525176953721077235482925102021409640567429006858777968210564473753123004881297666743354409285964011994276787985587458210735535039108699099370076514695727369931259222871301866858559873261719964268915471882354637556945455570282706750965508454409889443431382799369736330592506086354175388955041328613746535695740541876807237482934600966536966956131649264729279158468490932695206213759569077464896375472538873698694796330808528443581584811076031231515250175613571489259548566441799524270763176935652764698688638215912645378917174481564010929704606651210325858437588534573924392524179417787563299433171312543273946227213066053436857657828297404311404314833297399137120829583928326423334058107431397028528678357182033500628737619876168564414247882218534077792543726644038816632539236212845770589715495580317791796199576335081415696999308489344653236587666273469912939906966075788157538691704028275754179359667261269119768953626213763358102880934967101119639564782573876775186243914207987729324745596333478186810339431653428186232437633939738770796738244688964620142385710180006008558612665213099723542660615846944484202009143317418024599358075744480297316937912670031650249833106419403382059341729883798417011263894019666521095732314273584006764484221115616679702876758955298229595852632846962071969953201950457344740019834492163609399023748406472148687245350611839674026212077807795637982409602677346860871343889246692917759986843658486151167825917944174995654669276934140484545526398387701128631585338357527058899445171797900270906163882299950930318849307646846555370115209962280925326311472749463411941663326272613485924999122341617134142660150422677412096474748506115076043804157717333692066607172020409027624939377986540115410779894438843479291566981746364051696951446957440326910652963140487854096686199628863430400279579550557618085133024339648347348444423326008090134444651415455403851491907393738958356120829727924840529220249854585325054265947185975014777336605209735943707459905788369104927366840393526872569288547693021342017136102413751508702390756027430769559082591075955410102567725507597930347838332533826537379381375755386997794207683385068271042859176866455691069782285713463103798820691660062951134180059418979419709410637129802176497182964859627977030180626470608400227951179831709805031426280731306608621925936538829350217651603686110972102969352460578193503819070688192853747581297802171982386555643987146067752906071409984210725452324650326656735393199788238144686110688075280974393770512693398662575142622761784996577240066519246607035829533746584260635680644326953600634568244622377624327473680057906578522899176720259672557277408021672777748118871160845547133040737869536754315073749627513315878037068980993268762250198208535364472067697213403173643193655709613756972238278138971681418880256099756564318074616304122157764134193900883553410503151640268760414658619129865796892152230311312738866426579747553108779334890149430780566356263395370747614019446379306597981742676579850933446139849043628877980515479084500442417139223781989716178682930747619145600048702799759615566010154823132014662016897386347130827667434353590837611438513262923926670295142048575607087638703813540482479102450209629584869687638548787996274576478999312152390286373099538120539088333867761465030449266514037421297153521093859963636283215101666654368899929482089340729433667526160878177775063348938984230800329810369679483624286672094209122843990467492414383177940822095686800837324407264003790279740207555329102453863386893452036746606469490757210824076552355613305853887177553021650792478562861266767085608553357400281803728870174778980036631261652433082528976759315372622693330454719991984443161642915033468656116066789182245051785543219722051683365159062268448972142157551253579775998735056045640181444651380767115458447978940087768063510892289499917236260896208982628542305108823956119454930079608055819350207337760082172427971349872069302642622026894309559514763632159703002104072241990977602587553782008572933584622674391000471611863945469787778924579114875603244537815888965092196337762702597470119698405440882979440921968406470791414602107981110051676533629041761459443144002006904335189722801216601922478786877284405529675372683851419174097930466108547472463352955159622499158507115450881226776379612306608944358972016502987845385404066945481985231997165905068444446220962715444019739634848524639045076514664453982447527014315418240968340975379584088512758910564386831227378251692724141503486699085371138457821245916091270468585204468030113038494315368778774713949045856720433165017181690846862440693048684004091379347922275183577697924507879326116757021046825461161393666584288698552946550602628489048725820812837251195097832099322813458464047622507246575750507032437838613524943615469112392864473976202930982351197324311761803221428925275505592096735103279011563826792086570627175547589573438334835678805142676269885697442574478907009146623951363428434745621933957436890980971525471189243540345906783743951078176286676370111602586969036811984698306520423862313343996921893638746658736794251655516496802188267071969791734389010544960319984330595297582264721158761300006766862427378268551504002420454601082592937770900384763213315506993220248846999100770587203018931837160623079695202824481513278821528561665371560971051740222344345131150051391792368454896444421328247788766381708076466635993403525948752097918424113827064772133189118508537003170789961720263131600563270985465533453350867916751996262100101909452081187267482986042180230335339812059581843594973396868493546511729102625916289056864681998119479948818702937882725936993501972389003497970455778912228151392325685486161917896891133387484425542731936094223122388804468705013623051943200243535279084073083554916845535098082828986584917584918100163161770991414900634675173715695168018183176413503889344288299832273406216163972333852547996966650575875091596776518136279393986372149431064531804408272329497851857414170136224082320234391756662030229382397032777761029302754699006244225886142866978635213899259588370981991746989791341233549009385750318592323960976830238417425478244335924800960405246745911841879825162223902096714301627853802720121754031224121432731894068886118204050732619778298479725495964871309089903703167478169388660722704685750566543715431610458569385678282186966065178592115674086755044020935838263041346811871003662080584871079366418439126807926044348191063011915681562589789651496363563296899043720021948228459221987180422351764274307453746323075520000857155371104027299790486768758384563033489334341558180655236318109495059110135490725056577512544161500385007379612030430875924477257545497109605655108816137557623611977293095528231018487357890069264890379159782428466354240543486914855490354063339635829793813140202092142478793137396307532402518993489635531367332142091099366013195736690442205451713941074476283243298293515428955230583076715029775647666887989197019227757877808946697408844798091391350910705288497747985768324416650340008208640023233369120791210197894225230818708873769582043983935009317994095266014258970309919232976128714009327702398688728924649173905191367680649086597068536451820161044349346357692860781042440737845588445770766423614114607075965782337557521066567418273121539426989230360750943368246951789327491331332306024852269612881668654530989333307318978853864691405092600605573208001175379693435050947175562302254215442578491532706973608390848874446920162377346999892592474056469369704729209103193897480096179423798735409757403663532460750107932863647549542876180475999544651956145988166423494997684871256136175462961543685162083662959661777196281004004429935042266473074058539734022686488402463949681237971854780078471653879852768999482827424905634200180951857187761303792925066323445873126580582765906590678579627890096187660214264800557001974033633631832222411121311548446979153969787017072687718439579040084678236799377899624360752894018988198366550939143487432233355340700565509138004688375517346673759734178299035970498073217095866106121675879791749527926157913946859149739658902488885244143532016318063331997880528286632728402258224364780581019540187406395172579520031075875477583150271679687975327078931959698093270543114487404780612110202755782556930779381126473074202694822420887194547311648703614631752166633650359085215845141983332261480953946900670024943321619727568546422857294687543432270544443605715679632461372291644147750913245778924214714144586579181191680365017382111815793334844823682932549255644782004149933478080485979255229173046885800743591815834974496504808911240139013450783348185832320474663532489944344321217766512706480520388423526749294161524322667748731347985597087330204844200735048501803442794479787460515461472817531236993667036687602083391291969179086508983298310310719648262704311833964159050244977676725104313025690210236081741029543888112091120502092434188014829172328291513932427233589963127334906569048525987059377245295706259876622003383537686621471449917618340132699702892960400752587542938737805757050618782765155130482712938752155971492323128033299745828743516074235504829878361443827375813269657890983810824812451423906917553118929257271421371562093618042556093882175289035678828511929390564647330913956147756711290985810357730100213193900594973452672326333544810091232991925449057020681976205340689194232061939920766357060485901567438015980029141815332591257311717771603295423706150546798693176714589598536730416366394875025639111333570476893764063914484665488030239479501087279190997693406842761398100717849973977892102960725784742453004756169344398513327803606408863475606874027116111691631376679182073893801973401800152415120321658283236187362439443593584778287724389894325049360959226183398481752004829979218516584151209343179425969026516748737411207695453486870668786449478812863962552384207033719380115148954704240576544043087859587988376773107720326130940048752295981762995144695741669247151607821720484073368537518294856832985823901530928115171455616294893082164136761439070282697592057210146283112740233441518656630179647590820609892580400717529759919723463862428883995127429311245973844453209792242096713910558469599448697481546309440308588495718877957953041610891155252090300146710463851939089857080049970623128296642322400097959774973729822211088212734998253631820496547899765368563992505212940183584218554361204667091365519938229759415947293861352903199813783162863404832068613119376504904674157282000695117017348615619553013093442075396849007992619533824358828367398952731265685196668293586907082625028801701538409473004924515703817632371643206761638029513556292302280403982891913443951969825724806278876457378132208046602053480555949633774699091955208558838506788543975483220817095012608086739049543244208541896132881942413543606525268777380364728489060996385084876310951313908266009065345036289765333953455287445210067930768234563092105388025220073938223933303084905392461805046226073232876756996156154737816414186306786420420876822226613081230287652399720630489089364623179381414181708881138813149359742248316767279178124319609230323344131738703738529199616183079458859040483201001737312561101597110569736023284866013852112331752687267775109617099959386494161890263672743486502973361689933761856656263621186199360906440541687551089979470149567479516596533948253042085312084372347639721493981474610816360130900580315493059293277921305437587723852358347961658875345624608197794523928873490828086556371297923599232343429198962543974590994769489988789360511114270354528554638205249362269279295366685973095599869729492127604470383395811631155596644530221103999480996935187640095164980409161633237945685824854800659679160046026610565630359793044837856076733693841449173579718897549756265451209925508093824698282544725410103227248637311992598088181967140578630123636873357376237148256678943999863709214084865995795190155454869051011145683056063021463502358173298411772962405847948429075807213013836276884927410513759546925713067759874990084929035401925450358251421383707257263379400151042998906644150041262905832258721664193328174120831754177525737274392030485273815516981023586213799234296987037837645652337331971004442689232085413159117218153750639189071156428769012276553242867208262164868627467010783829786034626655349532822026403324016446572121736584348037340655514415829382016924430042676599892830434857725082412072701333536742372191474667127495517868008682398332197288368287517583245029402157365952582637764497073079587169742973150096259046777564232153409816184536278736421180431413138395143159219750014349545371385425337095736019271281322303337919986671090847256505323767446222893769318684095981574061325866382957510979078117367826760705507966169358870020322377296232887960033550597990550064099987325952469261604634843998007769406304280698283588602497031795688051024767620413840928703500709902351132734680208613419022724077114145844722199390681892342400671586964676894221862767754150109426824429875653600890590285303394894433869110995822649977612545091925316051832704175659812727266682333999482376198579993566620599318043831222758087920085923571173046921993909185763552073852227816414494002429928985395967257551111906597853298636702368975148297222547660706367504010167119817741653904593674452317867946328620744583826655816452102947458997111053518564258078215625657991669296824667091426964930161891539078391997764665935921674636017981093909459970703830052194859913113873006355629172810245135676947397778457015991790482599801493102912058003499725617851020247804448877993783983248280594262494303311208545868940135746472331823668577798778526874814661562198559873017622744746117811825273814335879629297191441814031314290925417969475748262751155210761925298588444775463975752942101493066161163585513822402279761081693082895406641238356593222891193980762658557814766708312791655795798425425780077639308016724701596602369895785193351554747325552465072178562713739994201826166398155792997419121063146577478736024295920012299303876258665433554280315258336545764672642346923869654850324442957063143987568637958941343435915211649405597129826665088171987996434251700391538207977952738561310691512960383009615605556717548117189203474065153608501094353302811972332675666792252614209238884793165114073996812866519347844862863866575771889283905188075242860586396100075716815758514060233028670661938426348382781707363350786257241705890436413036154940738605885399053051965037966197222221660044988454922436686644149202908846894229499959747066318387209026002427071162661677246540262155710781593756876550142009403630836357396131793735344619634974821973929254770529980258254213107642550693342487947207885045634223519431222817587889863127012092347270741227326779092948611140784146141398420046557056497289109478874976172554117555169459529117651245050540297516884872923161115437191428268085978048393704173134193864132825370108784556125096272512789415030177208015087182162104170205667417047087241539086069168632550314434136494409721562193489893888050741750796900185627023358945355362356854770622907981108875231154542641018778930501481427261999658791847935036244194020816722452583247712503489580726691543205355518508925552596857111057677359540386526800593668475570904769941842520503419653888582532567918498133383081627643745961343133675007955127022668329930325133962604048300741540399222476012206505116443733419871438677418021236734789292118090489065253917034472617416892514208447308333197291332897467912329920143518927865493667140443008131665294689881023011794527480690819354841114769853821733355742713527613161076237019253746865696359128653634063715609391005554573578771428252868050980368607477538093251770726887809604323596413426407344369991893222210033776830141716608597156177407592516729004457755822464321716966289350869373816842385260382168518871787288656949663384619579376500852062447910548088762050106455441420942723572613326832734972476255866998365455619337513332799487672528143953902533665383530695147729414392832916538676639754046229599757282249475582759149400767826781499738726991238643667231303137210335477690188023982868105526412144884871468180566787956912950342220937641784239373064305659700029220010254651290648587541954716849218114652217438410242417461645534791435013717057676603767130074090049769538953067687505234250025766718719022373749360397433364279567779510686839394695259697221579124184994876640067204603800455080029543069960065906889032170753256527502226290868687090621611351400699986140218547723077299215838427585133776535293307437829875934277766638136754352347329118428443539430099495369855285835422018392085336658603758877059116378063032744077260762992290666566386243103002795590139063865493616176726412012815370578180904954080353761161759952896248138116683057643047215910060640907652202343927129256779124991550755345845892460376508511789431876510212604517532018022402006185747751843992953673187123856262355156430566484020204434394189079233691320789365981082038166941602439741541017439360648011733394012569501863506861983208666465897688962920690440777670535424342442751612194126442311684077682354437673715044109200387250270008494149489141814649812358838565034854463567388893814504592919132595210747401777555720335570263256406830530936924427361242341534336758325738114517101811600684745261427173274815768277336318221491238668375886357695784154200026802602742049009955091358047150982909241460174887965483619319888447345821141737361973409180865882156286423471926367384964638130910387977644549029825667670471255122109801406079609424465432018829678720886286590162838219800797790200877813217214287046712262941611777688675951846235429297133163971725411901792984448674332457124745614874790216982948993335035768744227231621347318105413503857006024806842035601864706925973777182396336060549382128787530365734685459584170214991271949738106277596536909723181135419867373194736543130726869678246254110900784694591134260903966367711168306263646540839491265029841416668049588766488124907472264207786849081773540640040914092865287408418955070886568789076091357619624548128578232117545901867764233385405468198853661593751797910384996802035099291217944175738686254091697860762459565121210894890356906226697930784684814292552150036744881400485055093143936115661670304435993932625034111652650202035785824709094624907941033566890285223108434372129812683996712594229118627907628123769816592528136171224434273454623811780058898103108015784696348144891590035271322003606072601183608446966891399651935628215520203374336768886447238052505027454976100114980544195796564200670548592069939328007505819357201469851771981841632710025530053226948716616847045110035172491542220512551767578274671277478137161649568491140886532117452928987930140675264944390645990431279427647946184457786556070889089817973301246381023124308264430945614073510339059952519583802466319991942294107138414481096303989334660257734899478174098443610400637875722709944205430831648356836718980043323345544414093657383836046755849658999337505316243459013899966487002002109896226204971782998111830184290125175631291834974562211215016358155396391167831778795726019297278938648168590775124228901033212517339343198967478888769086517469547982900066993393124296335461511832843674721505351772221400421880977546207925463414336014084656962052448868320357070088103174099829575889889377513791608070093137473401595587036756470981454013584916542152661952852248133395444533222658494641779981785920786217338566421192247537056070456367727121188968371167367370271863101919288047629682902723900436137839148489695774556524569530422785868061023995456057706376638182190058847049543034074389526845514972115055047438377004560326936919610524203411741358420970030081443833109534640000755476403283926726616238505726472276997268652529146160855318567177147373458010500894655362532222467728570446729309085521055544567665476174969173184262252757623744165919490666040397362736467162996030600541162660594496430319232576548295186497855303508527075438127547523161578256210075082740127891999280404169704788381661311088353835176646143027393451988425580844217702992300279003600447223403690523898240279769286593697543996183358108984732595539315602070305381816780451256532459944764517477354621769088755887423337405559684293559209571603064072578952502572636303373262357274194238965155186832703251616300179115689481602973073282194789022144357892487181283754395844225585727740723002137504258663032589118082452539189633076460194356716270575018193642513499973901955239398072678925589458865394933287512604191821911333438641769580455107998497108429245882217259435879753768197066821869328745051152188111998426123651311753846763545511703249586112546105464062907050981037050807230301946494607659430865481541558569537072054331319048983335506420651920868056797492207646630787216905638989551965812019046876248345120225906601068748351271331497454167223023160306899862397685005185376349132140928589458259459915744284570194905708657559440566898181056197072498609659853384170471065117801035341478281562346828662161302725418723432240554798995921831977238677465595676867059381963395664711665499577696737660929415428747130327798119288982635321665895191775934727172842718826470075784043145403989345826849623878428256579815182038454318505800678214851402400892089065351426655802604968484742493820502135985450979326138140946330588745037893286657174272514162410611439138607442467860397316643664200127050606873294417346133083324218993941811919873369946567578954517038996325899837045643305426346921050237615700352471569902711524240853306585448500808844557182443489262053076951722253631444370593520600965241407386893097913243842143937253087993249850656631442693781992054396861530432947727465505029733780605106019696845288897493158503483119551602281172129058890756956523666244763159926341937444394904280269829755098617910737356040357056188943478245201763832111322449580276154749324752607048072846477370509262336782367449957964732365858049038771153367802555184869949760420281456072385849562639020457844371003083444314888100901161652850624729937890873967093451862531784208932635013659237853190709389628802666474552640251323321222877240687119381333760109612261976189143247438199421156546182267959535977750668843680721681756557789953278064096585562003480451631139169208865598116322120713797365826835265365235716219541143205393625986807420693833142265685320314498783447197415067100521382888118673627435715309498647263865057762189548217589949273243902068205295354180799425750728402982022088474652351252078952016261732337997804260835299530195037110907051205257715793173101557095289853439229477944997912522959182265657670365976584167917939457223009417592614034790219494411698390899688016084610861670121173313538392376797988646164135657133398318520873998767278475163506419214160341999282353253559456724169573308569465849429196521342351065912392669097578882880352909194179715456883692667941941172309971489056547118088758275195255450680253054286916905420274144164752336049073423786113044862595517384622397072882844615520205278070906700861519759489633195069035791574529976573043999724903021784328514483884682382314593245661912187639593553037984514101628709669185669136246465808716575858435808611426464471205674907944697264133975042916165869587677467505624919377636076677932758651718554402888074123278428784193162815683563611249328043179383573800561796551506315659209067879752676618384112111829776103323412851926472352014362835464425639283166058044318190411064604476879166680619001791243657127139027059364233900549339275105889989784700326751859899816818104373962269585051196970151765025252795656007015039624470910398025770035565273624104548370507717648759612250696573203883531280117429171875964332372875515542806332454683582289059127019301267623170726952167559307123688484108498855858694255947193403208497881667987719674319459333175283342831312432585094594372500715746469639951293249974753221022926919129651608044312422025419785983748490108513155552278994605515832897927835542642751664813627101260088744139942037244427974900966827386725035878868468518578358413308925226136991973558491031573537503787076884412142431231991668976490298066571083783729337048315227042625139606705845452357029710493511405156443515968117816234018266063585899816562696587507223799182310899465079380884689676975914166642768884373321381038142695032967147455222853970885681657512877988212208419943774632387488982781329303664110721833202121706507176014809904907251868328465131268643959133215562243055129243533057728691843812563910390236728433144855833101177000977542587137902523998241607590313826268352127468210481855974283236407643257040730270713324735112391518429763850598203118302991100853877927342067453276650036626458225695592728974049642596354250565395343584634566090747104040968467791099397036563460599382704273716910049322394437240336039440653700246394336708000717622111669788109814162005827372796947716342108673796215657080692922240482674446429259487847128074902282941228544852501045961437275085659527517745640232899434235782312760822577652162345983259164412469830551144859607939925036580753977013344989871208923467543608569842954435074261781674009921341721279131914650484851903635315128883863454429756052590843775475679374760422919859157885161258773739514340176461506419612753543688190789695650989167438887142762234124663625287019236815198742548901564214455329109235210140705482838218140816285624851938593710200048006903428617775525723057718795826535241532082504222974865382081739615689535921051507907389719487460748515295116230736209649974629205347343456318218862605581551189290036669099202348897075976385065116078484980840961745992898027746062344939816383239466157253741422552299014776880953840080088973696529831388933695712803017412778462046293487936405521792105702706222615440032098745200305564950224604812166537627659870638000960116592906328139219337922282382625916950366032368758863733189961071699537439320282383911474361169491935830940660755260601386509596495013511191292362263844449140996517628372754204445966839573002505996416684786396271626940156049413704100762422911542895516995605557951437760378067143091655187616235123056441538378224066376451020252061331054112140795576749815906556810502246778011879394172854561035068412881599067564847523322769135365781524256917221195275252772744129766511748768156457292463961078552534907340025623249821220705347979412109160575538018145813857420941017546039155447225111841299941695557025944792712231795168960612430045736175312032476080957077325989582859126334909269256018943579704548886769782815559294455988734420980070708268412261042251058455259155246863318927075783548344822923858168394266133337051590033044578655998572017493842554014114368715134506292961091390290710719397368570606817238659030755281578062902424560812955856582252341595572088582267797722901310717086580283002207137514716549235381816473307148323068867471508146133973525693710591326225308816250625684865277593635177185285439706021668724506525455209359186110072367748278342791436832821938073890633343296053675122691900866856822783215323023116432542696760713261543117842259611071402822544787049228803950825774796909900751477296030387986269834925243634626141516921978741876423116362836711417262240644727989276953452094117293543147980243819309029677088544679292272003386172876269069064436380208193775335093393023178959213536408022165365677316302087469083177259131575861968642981733992268533233323341591877369488678032583006402713007041687569656830019548979694672394485003090796193799388411098286732388690143357015176131973483085743787771435639010419331688282588820071729796500004172082796209800474353038112059405752111439557579964581536221503810080718022307853223517620683419456045403809640074223078340154172125881344281943784106342123876649326799375852535938156151158449373405965576411148303468708307817658328215222242480350432796996851916106047779956786717707761269915843118498159220470279534796158836041347432882029950125963072550736280968272688815346554105261023757290498748412170001076400619095663802383004641660835703107389319393137879412029219967436406158181792676918198974982925724334685636009512768578688591129873667540205507356795148647633643133344648100555607160640850051137647198185814924081701327115375166595345039292628222318403268795498419485699079000728675181780279453422054811662066153560017443553533206331020893816974617698309078231038121486685296845245897903394138740031739101979050315954368155694600885240400746387400832298754637749907902392027852053989739361537670337970057939009589103758562286575465526870425889094652702994042150857581438103184335333618976659271035394629160889359164788128510676790909968837549521501750103511715850462547945094006013327520946198937462413500174857389599581620297216521073467581338968343043169778407016029757098204617813665662723916694623080202682663840976921525596341198405259180351279548766503026526632525143011791749911886808588367647709302579186281548860436777652960625447205725423182328377635765471003086330057079853591083995728795804470072275332025007563548142426210816250539975925242926464255181417390250411220092621125771503901810581077598670731539637624366714702973342016582231070200307820213569706354613784869662710995447492368508948391778175384397815040865688336987750250836196060227209630863915715821200180834721561874319933035278592731717989037365588544462695812123563471368886125763236572976073928989174650472293721492912294819760524557222994839623861766615981527319009611388207445946756302322555558494386982708878617550021419997373951118109024942395601900340854457211526673807684281449392572955592952572404753352274991613042368037096104529810408061245625676895831862685479353077956374009539004119116166009058722290914424384536608939624046798985093074244246058238937998396745969529342725664892370842163094893225791641671404713040864710572550883020114904999266415942637257838358069466504407985775154977992652751977506457899866063054560172197649421847465243605153542440607599316292914048999042719917502068843795276431118626270304835382847961668502837087925027120957109719058158458752066627476960411730471501130247431925776697217828551621885658255477220495831646050345424814782925422503490112446485277459698709775670137824858176025420148251908819182313937468860597540582907327974837275798688779950649923537869300534194977738838942604502812409564204325134256768864595722538125294275193608468677634949675433994250775405583127413908549186402682554711782747739158674200426220045118062808200629101556640877540620584685028113724329598399829512107251036354518072080905489251594090084753694355983904027456095087497134955852946906795427142129853054247297745431453799157142099482960169229209843192062201692015680631318910046436192443581484255626641261458786413032771182660443400549552070282990717910480443442502708290128293726622438086521227385970384159302976212798871359395205608695121431702512274687237965596487216966971445481934557252648229087531756945104078173024982813514285141691676506868403739479680323474297313164625243688141991802931777719663984673392702035609902251381564734804276398104898731930122338779576449919009409609674771325396993853483869966996462305655297625192330963626950407198730059173406322961462469553440307257908999593301325278635432990027150934743425175568793468944991789438427175019525002621250257859479543355587391303047075209566302374407500490814756552333456342945133285580809104960788270592488466218853238523043992306762730165669984704720794135967943756864617044468991990355433653205237502692040888207884939486998043370646948741263094098665734203039959283935476002500938929248991617177327241073092140603876953179139434193878885963019602857205868309660368379772729839166897408139140091348101716166787800725709268019133865250435644019876936058382915945756710279932937797372520719300521211113365462552319142982761374863118090591611323634938753385106721347385139788428306978526088330169541088785871203522007473340867373430031614909876257188682293803472166164575760097040398905148476772010772646008590239904727946805366845052825626235760688723580072200098343043051878850277120670378665744100840710716842606314239347104030317788797916994608436649222417122079061596196607117025286362765303864707312107728564817066316597478338353344212515337293801572912256726842382416527994551651821177179240014827605601877443080329528183246669948608420206556988896928091417323366242231288614936336016156378703779992845410530118123832350272545649105802813554865910366527611148804566116100881948833069679174168006574058139959325679858900877054981933285776567956322197737790999783452864815327000049520521323197276632558770010772019465559561118687322011460192280476005484181901244564743365782460078144100280841922766792520893329264195153546192233108085492724264743816273910968362343874877667211055796840728842084394667781403888569721351472337341770171244378270130270687686710755440440332682522751845651670747770978769132734596109775535295913279444529610092943633695693797611532637839972534065857590167736803313643458023874391225833107638226567539399228579025462592493901743074919996637071373955861658429367654069040942728175093657890723406632804499976989875210659000491009319310287318016130172561859393489687076136411550274864102164584535234287002218605043474779572934642908407123391489088918977853766005387461908639737608644923641416721673254000088621097469335747093846280304747812337630761615601896114011374100336549084823353602612256002658310047470174315921495827664575913660575012265054148597347058389241844798166659716359656255465790439175164350376504525154723016587853970412954143475366504535091917013217880285924675184235589663765605842810595296650300688478289252190629186281469612454123258133970666065566896606577970212591527432414835725563856478131334166590907983999082025768007538379733583609949555741535554635528892763011759294148576305725371794408888566527322212025197120433375287218147028916595251207265499476060435402858652234263403677451826893968319430273200864104005147878223727447033922322144734231025779892567961156932647265021384474276189116788208088695683394607084041541723502553215551093175572040315813306469407784951594163092502243347857487972874350779035000851667891932944921258656902407894360428417278848868045836504714312724297997212171785101256667822121915934318120398847185472262648972890619576002826199170717086855900414478578158081795203163046788957338629188178551223456846530201903388491188545771617360296824585428230201087890083194564320439649043326766513119977057410978563980658393892361330018478560394937975787747454407180212956332151421149077038666373039757410847896420382287550508855092346465261676026975960333931580068634502597757573944032899345044218781443008232208171516430021562133873343025097741987283955863758649615846611891321431948656767144473987502308102260268396980724019633932253486623903594915381917016594850047229722761025345704644954250624200371929076472807332163409051967262530977174464550790383544131985382827576694915933198540810454386826419549631049411105968396166509716175050790389402649544579627779619084293826633963779669215749818711760337285738529031104172493656734613140507953791862208837964979857429859235805513742064726798790614179561871136331824189259754411798928786505094649339293007078219318709789493865667771836915118217113750387966433395989505316887478156268637598630706387768991646610408367082453275266126566255320128482065780033565960236029567918427136233177798130200428934904180112586245455300257034591214881303576379292954218378052989069684375445507914576760578155075922885881933717287890334852690303246602098675354493894330312683517641491965929255001668223253997066635993894250478013783189259578291144307194664096649268310616375743045114996488091365778616893200758602589628324480127998978803160341707523521839000536033092598738064546313713972533270651562394696654564511145245232334749730842818039454081261706642850866710950092543325602471120005487009180587058867370366052310216503058893445617084678983738665987079380279870091733349548705129530807672685792070407592021385217491816947047448728578714919814537859091552304462241729697719451695529528558267919858266269302648293405556826476869740642488601649955588450897946248781186396046158470987303825137564027637649882870949175165411488185550858122211887491021548253940255179756918441147855572924749125848101921815519396390403073406135882276105752771446882588838592943832122023922315769034177780275918880795186737926018102089758056099393536467845205902157692253736489612056653206608408886905052695452994316128185134528440362903252123137230970328004477620217957561969323563148900026487261046373026350369865695167855763397253888559453051005398891481159080709636818352503381705764001150294506308709551777670503295917399644983435928622586554211692938339247936041668420551643904359184430994059509225247955751792684485223765113826723511823292570909060153335059057949488312908810816750555005479428064669419609436072035332735561570821888965178852179809537968998309073918454378467521477468265262977815390711019092595932556541634933078441366416365902968350711806932487750896141439680213330643489830026473004108781481967653611475905236308732804397182077174132741100164731323994562100735815409461073226163379151886627688141885718603405814119816312069249904818744971434602263573355443533509266205366633510008385426360120296208679220372450817939703432962471830434886584301790226317076424131126123272961923815234611754161796105336655984078808665638306275362897418716995403084588949634407008474356399591844275320756733324936653659586915646813368768895078191411761093884603166796798454665779103026173121423659892764543915346577564272585341753995812103299350722024655941087635792729612859078278823121305240395645401474430224397436465052737014829986311261997342689261198774328412550891504946846246933822735006632248771075933543851576856136358027344432454139916877840086871961112210827244865082039807587014622288455638176272104091082393118739622111491147025406734939752181120204848198387589351789318933185222762933420831378403742309813655016969784340800382955078303313331060610313195559455230621743251105950191802350750265945818164787950648373020455986657064285571347166591533559548285615198737618477560798534275971566758451631288927221394352398283182731068408328762420360142675174621027983453548236501325408276268635140781108236286013197886868556353494543890158919357535272063946573416666181435592551601137941016084123657252611661637197061070794721327335114079844719001369128945698952634646040578908633404860772458791408575073105653452020099525318284511146482680336206104232327156221516318088818560142372594832148517644812460963616740963011309562459246500420824312327301484041723587200385054294025903155352921319943989625560054815290990341531862599155462705854133023055709878569210598496839131431790240542688055207311397754627043517422775443551445960863632053473426949215298926631752453390266520852508478912610888762158086374486344982651083818504119648344234425517790611630530747377578681132461164449562840972024279737875688140833943198236050887839133988279178730768845509944876300198945286637908578039723478276047172312751025251888871795223529342775221131475508952557102234065863419842648082188752827750043506536291984500547810117405842049966855130091745004398878841828915810395584663766450385856108685078472148833254130184313876615609594185093240515521704305962924499606336649517866996325074046385960193251204285991650303634251746934479509916700894197260446054071616589467376570735386202672593942274474175118688928791879434002741135591355448597008733263292351322610233155533849035297229710790090426186149924638604894675105605499260145651136070506483391821415903235875435017357277193873895965252423073061398711625707250277421566373622560301664160466541056002375080511319174250054300133178376549947915733507662516149917405912448547223986842685130243167875002639233233561957795360440285584620091306029500953684440192235411020905100572529662659394475918730922697314686234090013932898949194601148719359152573638223906607721423869338237093281301472865463558474573863422756385806106110963014207995619182533108394360668229764172506387894534013911251361847550896611921740862013511071415647026311309637031871111637709783012878582686950298280754027455906540851737588669489230809390943114364059856477401142808483649600896585214400722549648846184672899896704988675783863516750528926992062818163599856856817598460161664934896782613510315267678168017859029506276217992601420539833145808765772254534360231037747936147753542203815423216586467925065257414098149440063903637902165907699406915708052328194872121371004059100715969851710130752832666243257056905501245016874715284248014973349938849518034405015676399967099785988771834284483565002246587413087209563179658833933287885467670171501044128667962200403993704869658268011222020204273493189542128007986763888401641335995148099775810885634890092932650727996209453486131098241850041980653606512973682878457837351676387505901204720687538744142381784386183641809348252891561707185901849190137660277046909332384468597344999511612839228191163982260750662381418668945548133270365227302819081068683229790507959409219392519513734825764182239721099319041022759413429552008532292963055529522316408823605468054614221146665541076840876118381554080603375193740175738968586649163547174188484638796043629675372508889367287097756030817473622079728242871504601002457534003856834726392459022614874897196220482647057585950175774149881888460155487347531977669432513838448770972498773975660481787432254603941605294635908414820532168546730469240127627324493325128829121542354276035900592932883916247073969598162530880379089174998441669610295725145136868059093095700903840338482901123358725837350584869551722439533201380867815494350516344193564463514235524575483645040154425682786292706615041814751344104283838795360997588352115656607917877169883949543754908295025233636361779325967814500024750656945145055555374335056724782346550568871104099652025844216739932065312406474147490702838271127866618018146082851470554322532443974828757247108101327795667662228346520133208906159649562353929858095894200275586938090792464544982108805510409448393437797597881370819140995929941897636715573707285722118613197963608044801675440307464170301271158736019351447912754896318741260512984519090237107602710190286473873356947878343915794364659779475880435200040177667881990415868425473765258518689910510846776252770829043273886502982880448663547126193538280300989893385769147358410994460232885441097910937477677063644645371463753818509788350071081970199939652136351342663936691634923537975825600410222947455692256373731699583452327548539242758531982407682244975779923038455260803370604960541507360985435363966619637012025998149200039901550378452677290099350650739528421572514720282249015488239236665930243503267102475355067835504525307259664392888342631398468325431046571448925844433099797417778874614583062379838470559143541732771472527281949132272876351209014855846442583018086686488500281365017097174965140206392329356695905467327968658320964968680333434526304485749919026654941571440064561572537160505650640463308867132743551713294333080452178778224965069822990171812502320558780617171676947233257114196915161681279702837652107097009084356868329398957874430745554019219691370742830103614633692714483319468407508028681177860706501677813713979517661916712930359927344683381639690341733400196838195702447881135153393826696120400989739860204021764133259569895512107238250130722196256068638134362325989610820096310783015044027324642051809144913832040204043609611688837708405775473347544784385506808570301901119963917070493242777926720695469204992152531938077968506096294731581671532578329135978282428259021665592819794042182832797558197966510012385650840615086092079233167603503292359470866552109891836718155469685611906855316857148150560354009940724836254427294374425313347076895730451517925472210873011113534666639261281311564010110962336113447094021318617693869454243110430597936025447380419265906362805301135898976778376945324163973897772255326981706430478011868399277112783996275179213241742672941763374452374447639331199455752197165278633929907253380539030830101455675634927207633322716532440222650144067965088247485808899108775567403916732139494940085699706852959469009134456531978656657447598347629682787879718597528075557794867896871732771114415379250113160533070732380313086415243703146522107869666964195614505362125774662633589797341821266295604911259630431326375264024142996332268063842216654107837637358744409663985977830725878261047847691617443576101192419851634156488541078588865657086170389180989365272200689493248499306947018811483654996424828470268146934368981549190277024518318430043861186632609212358487701850392601882286064093720666424341112727513909067419087105644517704808245925259533580407237389230423392058124119747296213597328990786330837040581944460437408576924096036737968378660017527128583805466689112587795386703339030628583514375966514844887432958864198786484518802409499591919968656143670740822959841610853200249979571232356041242805347057840321060073974535504285897292372145523919680996343571641549429491405568748476384101578616985897334445151239500944835562421806410194482413918413767250835121078768650369491022718461110644776860981940436788330014904729664084017011056172462113811449776519759699113888484618686807835683141012089554341056184433771228747963768974216680612474025911040105921959369795652948730883790608762622044564163474915796549187015012853791552428524832226771606231205179701663098031116711478221360060629492955355210187352054933734609871976130527769801302275513378488677964259148010434727927150423539113634420034131573858419294111421704718304490071473031493322403766098015764131973856222286932813843382031473977159679315608744356982638789577477320362617346407229816992419032646806986971563293111876733948660504901502339151921913603008518346469545879932763457345676878647508130959345565926051757096178841872628880993379154557390769728857054383197827905330864497881826611297094344231266571052844606119536866144743818033846543298177171516869155563503076868030513504023940862541756680525820045772110167388793275688723743857037241529409657818349044638431779179037818529384858819471805893719277439708541790215647692943416436254349334753398489426964572056570280679186995946978088397805947828183935218423360339426600933279925449780339399613501618093046186944577259393053918193803091659527578876589999715418222944206042500962929729465501036705085382273100852731569473779250825647879093577403496207184936958461836118363362611981218458434427038631590651624368588663231034820722764291842676399232492582201147625793942194639765086570160845858901983471470905873102449654460011016925957470041485024738718353447060178299327642524388992061756864936672101042695434571252840386719637384299144081264182890359132185910869533556578363108408441017115591316676914414032679759775865202162533488113597205124572064064516430223105568866259012898336595046415238149578237873999416146492165351516584913484457266917864219965397925896279602797558491751124981336426883128035849441133334971870132409694070322986577923116647863561390629135169203625212451656249246271921502123342671164925222811680378374029067008878104655474270236269446390518259333329575637993718540741197329885725309343992024628624279084596644611963926931932134760589795165834610049806090972866430504524668417781752921082114428587002865219752296222643604820814236155021890953933413402765347988223645644077322000218613274069803426624664872441430912113485145981672225875630512294173718946700983480075179622293451121392615570570757461133187110789291333719273976164567054982497319711158625523650986277086941735792346773914797963007435064648020529199529456430421825293353951059526524416001731457470965689580395487954574923680292314937612351979735365721872216928460008865409569492367944265694766551169837455556501002670192528894530670684651327289200998508862689808864471994814127868368875990500202500356760920814432373923586227312829791874558234832835761988563965296538181555364533422421624082923822248409630535875873606339375966792408913536232376500456249492188467618159348518096322808108194625696428812084127481922118930542031448891485931624912738732759114800365370529762382003801960507028003544166401341065162033189162565463387721344177084153082427851890280323208795073001113294436189437235827229590608676854714131536035750247447695746455162545207558684890301229568131106038806328526537624010977162393005322181784746262834886878313656849042503338853754559326063393872361678076824748972149738288150601812380349683897000230004958047628920786067648987952117219550445007729196028480813397315739517989365204872046474477093706356906723964019988170244270123266273889023535992877138815071656998167132545323314166823605593628449208788756229524669531445844492796172726876277705502041016920453824921459315029484953760620684458551558363636677796388383793300539784551699766874379421218841396074865536618887785637493360506739923735762097842033314384382986781826272178209911020700569333218371547222306311983950107184481525461121728091141643771486570614562029873311268887701704501124716782862236366634154898673195848789668347099830504849121000204257630618829261846194234915733430093935357638919857036220549206941925737371491821052972666460669712044537230251983770289458081015798204358231771779096721258262503471355005641202388501104200128975876020945022858017931089458979042767061165023974670282834967775986325265281402941695297902577480036117204391830156002742757895179889801656423226318845443600023648887032394698973214229520013574776648682963778721172811955284352967951623005180252349860729604648711987614265452568618674842826313162441287225143383921708779772504685176448719718080398655646530459945290046159870115547550041109764146158092338532263787136594390018502654498131124161177525172973117316959678298347872989409857647216837022115322998595786559532175410797714653588788186836345719083378832340696188493810210916795462185807861157781028624620853976280557872411149880930149965229291054704467368708307357046516552884051152936574085757198325577087691184380040997858925128432552294275749535308604810785050728878862865202438581770542024281957935929672428189375605810200306678628481819393764206759435917556432447395847171544342640910571596361847379282955566611471582313860104564919973572706338296388836494174021760487770091514612330448734306750331962341807892012981773893173259273652305543165428672450700265050278763703662665993910901862036093877279525884846643078156768155045820284439378608362265813295965471448584479359589592889596498253430327065372043965779664366166198749061208956997277833819771508243912566260999015197086926911911669551275123192915553403527059470770898018968668073893128373083126944707147069387528553478385279094831512032574327455143412704031185864866122525085404222694582868823017347348869788665522365893462875371438763786934545625575194257718962065196672838294997352157503314836851095904364391080399414471975930343451022377734682142100820155852587386281486654843464738106155852321934006316829873077451917386761152027067362790696789170127317701653453061647094062650004874994412768139589972540792487734604546935428348754549844610685300389448325651461714391809005001059184647275884471738063556808794693165321965121810737747620015005906861263703423034899912050592629548514541932578581672193846931369483667058964150049150352751217730253061595564868334833032441176034499818341932810412045006851851061068127321549601916685637186510215340544849550170566959382917535722853756853110448964973399292998690831315476778219020912526819618669795056789546135141698749310703203604942740870372164765375469326402098479924268833575798589247028219609466475666022815754259984344157946022980459071648715003069341991899608946973139057300270729267732394800053774529827135933076201736732863912966194969807789801906033874940117378517805618332861100165919147346643099870609901388936006704603625631427767665920016166994390250893076893571627245995647055585398087153016130765775951793327540816607012264082166466447876746766531792902179219221134151851825466153376909893890677780932718887666906106250488726593130501545805424834343033562125701312665939834297077019933833611992053368387293858245831766885742536712713457156960041211615750550605456216441635669322408739979702113323339728618885138239280404682898281999752279840357045094265949820401056323076669668342807949283688668911153608379778521742746797010805094300136065833406333512678900178656617340165322390756716200398918593434054595970343880366415282741750152037259840959119444561094352152249434788155061332696850632582900005427531224664128251991113014100559913090215016210152112750615309641052170588847151480637473068547036323817283302108549837008336247845679462607783504927984076781435901572809403094238220720592814656485573708811908339414413463123802493680435419086075819852607227285124044302425355252858972611881316348972270095508149434672490511439254132394233416691820043471523058364606070269154685280146847442130396159376799070015333853689915005609611666763387560928871503331383052894099268621031044508678175299240127191441575631598827973678337108129728697706720403622170440301179928223701888646929183618316569029533588816469700095815155369723234116499126684437046813793597800457901499921402255827472889606230259857168262493019217720956131714128833393420155901868254630861783568055008413806919117616148237789160330647008076038946940429108593409876632598335520433586726718532310817887621131863262923607511895360233828215500578182565826403941544162008197081978990869106277544295056983021799096803574892755813097416178376843168076455971992815992533134916724548480964467637206813485436278474170410528154352203896971831118948396538792153725752777640460820692083149747149984209483274412802076094071648169984728830560227957451055067206311805308655521907030016451261048363221968479333534314365863466291374300797064288074905678601163180906038047756457831192754129217940151714472021253800272972003419988600657256842727122551759168668210620912621963870481215079954902532003780397764536512472256258483216070598837109438736649671715761673861285853533522353367525855848690604852053028645827945015342556980199059755730337583626385211226993157614221880226222564426279288304599068155650145156458329010840429457639439061979871177593696238649461354152067900226444447696526670073645181490997098676497844705451867267013283424941741292703421126371944361764226171569308054516251906739103406703695007326543434167793283488874738300064080956253687407538389291945663347976585819939813232549884909522193840055418764368694716981439458938092310357841820187282126797591895812334648166915225741224017799446400697226792413829811772701879755564563471889711583618795491579408381376934968552090556999316642714455818114127072401653984886312937053849626547904240448957263696031161564053021382653807695186360500069387079233517763655411101395422115935305322783585468247175828125963816519809553443715951669316542020145888118399375199907939769219410870701969302693521517006200912509091232620592855190745220653710461890751098791149107250417055758596611756695520861039553955508223289337599408952928359044507544531994992655057217690117582886266242477105469593687787824540995756269739259143938077823428776492886221621317369287672303359513843981385646052339137788640862743311413157276398065778365177353617533466252134679033771120727699354351016197995121256716870163335925840945216963298575159879837736118740010635945546304949251479937894714286230830116773400408351848426128804830311126259337757847525173959151934212471724102458769237819972869218719340835730006530790735365073958223364002860794771486869931939235140831798378865238000063694008211453050007392284329515764468429755896445150793764135894141433700772354427783491033115686934203602676527232686055388724492004483102676731995699738862781061886771914495321895875890941815213073066479546870359568606277461158036429299769867237753668347583250903171125279888147679337521902484378811955696910037939125611521745030246500070844242370584836097361769786336298116703413747093817065433063391414442640037844773106180889588678413767663439006738002637372264808233450303687912069569064018106665765633640821257825572681708555509272555694716023093874566549901440742388668704673171504046705550551860598133267039542476946666493844107155874950515602675161521553520684224696142849517832264022895445555018143439655339929779856047827936030791036071171394563534356589662969434539611229172342430091374422096919239871986149451918445325305539936730393678453342715558045194032898204260150230723195584759194583248106648105938404264821918885714993282875235952603075638389241057226923923254687318848776493732872341106805288427662066826260174973395872259925400702365658409543359220026768995145031203683881000008462202707328673115960473728311471288411395463550255575791727921741158957631320202754583542328793201660961592882609923342099406932426326274049175689072834738507399752021904873080193669717215433342041097745564684312307511659038106421762228461990735031953555398314552809498953617454459206006500810570485906947528514326996048864969453944751646501611454352571874989508172556155451173895357649212549916387680665486499082411961446254556051807048548254078063444811943959163353714853799498844303507976989209206325647256152028656951406539212554282055820774480040284814179087956072106650228002269990448163568958433974786548038690225626304314909215975636193447417741997165625903968381470640651794682936302132884165716748602539114145226255033198958343540584841164257789102387151554647755584456904707887714466678043284255723321288084989169813023759036999701265850727852172098745337436875788708801314340276220943136594061836714537086193264143450242578714013502013871575612993253362302102076074864759199982127132419874061003788579430358065015125367687306603600619459270501493770778663760680704898793887045641115425083220581566650359034526748596886984515078600326008753111260679754200741691350810910765860968296215195732833637503048728294767405806311074545854160851332960714352085505810881733101241331221188259303179597954385459967380794798362108428817148118288326672831685915920210135075876488236660461026611645520371576223117555471188842189059950050119524548529966936485746632662155300797988881289053242636916979498792387127873148900687114906144032010104135873142314117583124447371612791842999541356365943964177548099987133224457009433574957404401867105534718215719947063433688609199313792146243321793810850947310778803802880320129541826104513351962452272643465545935697250789350802974625098830654801176034108300650759131352810667241804436002915001673921363452330396721476588531139592960262674735768394444178318036863249484347577465826299629529142255112178224087070985088762772960384545060834514712110500526225221023809804828648294112211743265253236431659820403894299585290389587942621548318395632317159984154623878310713651878337466232058867795798386834273431404085735454523867724020414975049440021516009659150153488843838582373977313783015845023035434694653443805043665038383193809100960086965127889376664154862802912470947277555126106736744003506814122116826256596620252967755878551375059774740930507917848379964402391625295881132086384414741618654193272030875344412004023796067410692415606283304961730779007051560031132282984268883730683217690604521025735328104407696163542445052168471477616653537078539307946263242181557261957938499186236971465301061393911393443028783650488745325546244114555721584978442872622507861079140587555334693675932786528396719718591004008580547407142798347335031700418268586107726040282112480656553008084210312221179306635693085255757468862958923528658888391379027952760622463319934815093565085186430036539784300751911020313066307457100008831143662708065030601329185543384817463517548797702802453247741106663355218383672795454331266144810129237702641370741378774455481521482686277685430165490509528971204270419903477454364470807389824900558781067381112999554041266606149929271961652759780948897303321596527423519536545746304667442315437168432111213020742328567421534495320292609249134973407105713885658514002638823626371022516841113512152394319281087084660844651494614980230951359431346439492746958628250142993281880698949130348866992530956956904947198850597270888632453547857453289551818732498481768938847736444116791090687957373242708693609294845513780747774648562536370948036556671786650660038746879077423858050621621819512207863050563540673428345043478908705223699506378183109571931019024891928466762428618929871180039944776634647807730125125912577057757007890726407393286854719709267388350583535581012650363303869746870541861854830378229691245344331263751297485843773321816161970660762911083090433910744915989822059330206117410768894787324208148748399995894730505327292730298299547299188678800098031531312588531880421361352585204141342887656143771609279909715294712524330614019997517946407524221206888607735219702051470805912048850336731900840191678470850272835191363202976032097282157410853781667722835390975483709421505228114945917703401998967482664404194366571074473878825806454772014761132498287309911811086550517745908430256119592406539511194014694874791312708353228666366058474977685285140154956625300800804641129009333648730349577233577991663247728099690723987424666909980388186396541864962897409864987518469214477071388380357121830729979584160817444637566043210465437547067128412646453320695563426899332590272624797785931175204091475745269278914274755747670393044142174462950200157478972409539017681948241696043760547042207991811148668454423948209030162555331842004513920457290531349548632749729237291959649463904774988814755564806933188845835441439638177215406367472478950895542736042084847822546941188568927281566019355130496322561109112207774083309033885882800209688781257215584874701076708808324721927062622446002017547664501793580925248398526086620553493475400561829960077051676922909248272897354882616951212509732802339672714634502387879004988255276480908710204860005448202194816257065301302988596389350205072828615386129776896421718033409545783071236101452425319980162257195168305527544626907201227197577773325869321428455996883245408040523701612135410273688285193926664428090394272185680815724734095331684412011790866268130653226515367389757432375413358244589580133091137165933265050645919676524107818569815579992153503557667960248557355527429167232115516206473979264320128508701962503304476824378275122080929908898235967097262370479030181359202516027976532495243240012278015061555094597993688276083134091570938933893827424423794997855862679453325517921871441160374485316410575278011230931510103301274628188044170544240503513906539236403644186582355250945899819485447930584412419441662843057738532916646995194578830147724466391019452265067623878142549187066132053911227057007884510447385080465330764632428492458601671637937328956036269387216460916281096010547693613928118810427379105206314381276886301455246749223755965643723169369138457772883771861510808662884763923191386395763956465443364300339908536922846882347318653100169112666381525647274167680535986118384598866547704340678756103621160428567063082802479415909686468423268868957016060845172414758991801402305405355113446887070263710482464158333144820595615496785892060929732894748168299901767135592530797828708256915282739004827510266422476182218385596076602480094373134279827958552482451336498829350466730259509601150676772629714676080734956979832947468595916666557583950374494876098879466879769095689230524028880701166378036186652252521284259337687677737961435457220091579735842289351865886774183968083390086308869664010276605615819880285269489600885857809722929577051437869336430430925068013572004954451230831253657676508173271567088908004823230207788135810558752751955576243820821164523060295948973202798081887464941676019684336308121163644974102265781755067396540224366271238804675174185880165731709566971210394845438666479230142323154729743841838882181531223653982736019980514364947138567822584945633834081121374473778363749194074313090455529231275238366626043934026381493851250023201006876493975151429454612510050765392858070452127996022165090863605854004638722706051555753470825038634746061164001855781632612701801903549267648462655350657366598465065680051970557252867010890440055164850367583939120981040971838680439204267315794318722917275383840564527195391104116918244334444340375775578497637657845681982625339517096994279973287670202636662493703358297276460640199898833006190325765773609236237580971466926691464183975918107256689437444228753546087847309046240855735770916508040791832516983692750874058782652392113597395337059761278345197218645592251069278772776594509779931787379602330933079291792748090358485659133600839461526581038339821410883252183834089788853981089810176223444391314843533062938900917513696380472868300743920113039675022746965789061231226633585016159708386439258097641557838918400606645832175860428281591098356031807509751613880119872446002071344746138363512970410126019480382344806890617640333411775914695892101397132515393777931873696371449651306954406610849456533806915458577281726664950966636023890528225197858299842655042591532993091883250635194211364100165198131856654473233866643605803340394963076733242127031569008624579379021709056517290184183062600993773592041512945230556001533480637920036135109669230436016145832601620529088230356172861786629892313521750426918900916933619713013851311673080560770136232900829426833898519137450809922289513572799364307739534028198721879936475802716652547182344841066614176632343579412150800323050539170717049034341844606435116418631682569360838110000089945022410470948803606472355325786033775244578324288193804930703246995008139300393091171054844122793082580069621843774878542585455826045843070770579442386860672461238011208466840528387880800580079044387295521758170194214763651808933770076448906691030332685743536667105672894419311657886193740491977870736430875968976632901546353688640001670835434711314522406051521975364155797888241666652552667835244887278163822988957617659914602907302126931385183106898393526705192317548775677122132062086378424808818228858565127121722479919350413394680133870381623126544133994490946908851893400668659872404057938673873638052723460497241561786097707789626686110225536227454497361999306801441898865604093650744186200223940415508294000500542723741749988733906573238555959178113480357905487422504986469196915988879017655800838619109844951862054768812791006696064786058561161065895798499987406128468532944154736323252548430319213829602492824865140944296111965503679779866244125117251798982781147474010959571068904475052223164124740139352594831368008569954786534127802449376240273851392593430236945990998982069491413575779918210352554487104403848132277169305055766225942289767729918692898037675423248375240072026167961101611086025454049104127145830235340656047306836611230916890762858475811327852155433286137499476814745327900258262988346494263640801924765932798304766347786817890622621506664603705926044449917941201789970452693289074336900858032009392225152890604909880585306863883910803003456065452281109801399475746425527607379607469216180066522474733033235112074673763053224538630993355165020270648844241796490315776885061000346807808377087889551041556610051257316986051184748269027692190049587702184448486274655288130132944490569122292698034147633932536878906228047551522740101993371932450846003447928774960556552856342523426642725071169964736091250122793160637411475481982468144220982189885182123412682644224189919536995562903225035613244372782667887967526479593522896006239226121424751095402231226252674638250451598213611563959610646546921682007212125744539200745542788188510583637881454051817846396827255431869849045129661889793305800564736745640946621866357804812473105262700463017840582795503249483193237436140619749272867764799062620188703279326131729211045309158551993965889427257346666451133627760020029901187785988623506569473046785264420910743010237020499080720377263222196048938470896517601198824442251355047204748894689652624381695669374926387869669537853698142508747652037954235651768126469947744148824501903421249213406374037483873393627173532844302037646493430869308256753288676437689130781528964675441276356465012264909978379826361414561622907966699145126450034710549280541427124730884760928388267537681002862890439930974178442706639239619648557729046438454189830250637753179656034639954753739862889156821804716428279540079315870598720685823656740966963757767991539598564498069458821018440621326966646323808600059878964992436577745599983268320792097061720035407300988359915793158752840092807543708026392205313369717594315286763104491806391549712040168210093309103280400166308709454768039335503984472734245215531648751480940923648672958800659729908924537368840792963075951493234634299755116280372582498046200692112793091022335771022384759875661263912587457353390794500669512095924580473610356511176207242958640521264846584109226530883488113139621552432576153486634931730209171212950750845857271728587365757291147589300489906854752349211991042249301132894236147518084750747388480528438320027366789710476102520602912919997225259051626591430354597932420357144579969788734589723757426757228455301036880082124944755890825072709647923445451964982108710352384601313361728191931865209572935406484489548122950935662478385094610288077970024874061868337247389614883115879210508570672829034590359201724593036702053990175005393054568476914607505096176724212101285224397054797693150250925086915780492351432435090431385479160204511610843825437826181055986227468246699344409804296237505685484330219370855353245272501165345494356790899023852765499473206732405540422522222836701241794110441103209118749560629347169803226528023880683583701622317462646721453238001302635716695405974722721281526680886900863880592039297152129230416124999696594298067053588231063079837244153950002236658914109892678589267241508242354964420766407977574766276498564780450128196007970064641380522533486168083670422033070749631270459231937835665762238859266998799961149170726361759150439843057989123102650415516819106932434266261696734553719729576754514215246841273566070830993188996840605154048549428260306063461900176638403575348002907818120790866404226506771076269241841548598469879374783116863553630497354696944425789619911907422469976580988785016621319650107150668454275636370721084883347017276342586761528894109600197017666500367050559383307308253298008093429874108313790494432449509210791750023477125222416356736442217246189233390002925517125048293565106799056134748495206605241508840563901899130631456367757428431388021368836382607125178803356570495011147544176993094618249212080330287657258004304702637356967283272503816139426407213369264026480203447662537176510023958282507804966899480381570041212080183112907698436656585878878834761823169363291851765854930160422658772452830191323790463995098017429049167972460802693475782831688864037470623702693624678902835677097451412827258318368832642722308175168406042792653619239615387772362200361977268450343329589868101018828994094530042579162873390571254130654681197997898194926551864365276226131289720783459707767990691064897088708143487167808119539707164871470075003543857365255171722706760757135858229959232685070818448455023384280027890097861558731221891695489744275467432447140403579989266644545098414903627934422072781577120664525287469093858148165729350501353347146968894098839680697204551886031515855367395712879142160331543187320156884709379160798981199632069869623380532110637510405397653544884262196657365944221600182777153066789225287950881971941756985229800685200772870800321665793297883654955868083694939034555700283781452792966240601737790875901752669202556305880920130183006493360317219663419214629832492055516702296721557699137239484827804912535577576259170284231965259985843567545434052455436638344057519912234436598899521354740059507151989030779715066182407734700537754789801425547111185659118882733997697834276493500838298881027871628862325611588277575471277211658375340961160322868464655740593126808900710971524163849384154339419254068372337364109458673247269565654660312068544855762657535955567913324352090045639911061007780158935170855685007029752174837381179578093894828723838776395331605328664150132869499940523870624286003977978853979909368424496265641463997858270188604260825541290754693088635243556159897184753308098468966835401517778138110560147190486381304013329834786975238754989212035087812679935313829842054793381928563313509365518042847281814575478502395762888113529232572199779858237373112270723064298991483053208180623973005420442005199048704739374070207489288095053757327503474074767450741523921812408725972746384390407494416751003693686990600174933094154466934341495690852754981162925056494406441825263301908624845416149424676000184467051198129235441653105338084973612085723062310889378793345978406865996365760358037792734639645827143772293465842831150837449268842623136063712473105583243464924313537839055232693092575548419460737411509732365600475452626994698854444918624483838651408393904887567862895208832441359847509087610376477220811033640426984286150959448891808880832884391296457847263269741611574599078426378419320496697632133024535987607627611121111546365895310350024417465989687743251091603833638625100390773556295423553168556068078333525882230211129884682298733951749885050424325962693075786350468831420708609119804418483467966910659569958441867763767935301815834301582431933273936347869830311871156136888128737583977142976822168363724088151285265270465678833106664710997356688631694399672724760998805893799618355256238195359125725354993945002974696463854038151910553905428348279689555980682092013709124854722245497433396410529748489543897113508261837771485588591377511951313553034333226328560385858369112555465969398410033126635218337295870099137443575205837166510347918290697754960330513626389956150339220723506932830726690254783029159655900926002193312084923554772558804898809817145409595005937732005889097760009436771351023829184274751772528493480774033528511206982393419006793519128804706917575854090617765747721305443656002653592877225878332796684823417579016841631361689837865899184751974780223224973702797314647563659679285450039558012766089873581462987000913176588604452673217765433436627921430706353129187061560769622114396068712232393152585926317435553058792015079951368538934516328453204253928216532712010793008328700998179502633794312328351593485019356451346127172138936882702615611750096709494978563566163189845258526155276818354452845111377936224083233047206236948912061656942977308893238449824823770184421777855222337189649080030214590812075058608176427115747417702980199876435427646139383159685564507288605903830389023762734764406598647338103117741318041717923882969515698685704291093983633586781809874238802383029604112846845182430239731914592150596519861428613903756867241658765892704462498400317795186492750041684520574639301189077050312980790965455512389557317250522134534290670018851387166326988476659384978547113158268999582162904736577979451521547554299404969431470063502891948052997762927236066281239543012806467161858555593039823377676776726945680644812639537839260230261078363669767770078108975831967598648427360019212200871046740450654069714133086048290051792131245761709910576287089158342047038645898357269557518367843678189690076069263981397149581421345821798508231790809722719352886749466133329278097398800498371189578580263007014203882778721625429926468070218624039902193136454812340764037016784227577896254467909175727451888716748620911500482551852022697912813771800115398654313646666340421414936402013223616801804095085004838276701789389364062660021283332860716691510120376649952437114152365047568238297451287966846400568226094599060430543500276562173331903105369337021036146742602011289021053803301845812678109408279974501105677643936797422797554741001459234089765558999491317232826163614175657503322692836196978392209008392369664862174145798636305920946309166193243372817809692913587170882423659459915205471360809590335550020854454288016614554009168370280810504468450132221652236086536646657687876336510902245919766255572960555599197685088165976825301171015032963596637186872591308814661479441720578016628762195856946481986734437601227470782464840446167983852952347742742320291003506761003315319479191315693956672464044494590135071706561541364911920256943937830697651933311134456522356625955264229866476155684309395959082779219895840514516739478828663952529319163515205027991134995516543714414252293025262081573817751468651465251471221981495678891408053098915654839732947643458272525558668127001806659391037363745537134067991739812508494808922583500075934711899676489661466234702507764825061440247301191062077514609602573462472204767433142360576080751960707885916215292345018979096177354760215652663325526420885436909157341576663844081510669345580508815291802750482219187789854600701440828826375880655446278057117766921075052742089585363043836942318003373435443361365701553920911135974843310700416586880124870252031825253433573970096226359682371259051154015952310640361349260202406783776191395412783060038250703040350067396413780796620982788001579762340390027867229908468228483854724490166054595668452156706210285633960614695480317315694480007329820047326926987283413302200898818211138225621584251267896750320497697365353666171242940232332618019086824737063189594058216726588884455239832366925441525780613713084710493491763846922170821411926339350935733835869937695821587410955881942484281558812111483973431837104119142368237372114073674880051555637945160867079546873137419138402565921896495149833044453639982989494939103519984801704068557105898159982810093579446645853309220949669637646138322461535434117088451527329562807596937762282958371363174433508370657568953813358579012773729693050076175679732124710982548308090992311732414917580337262155106313532553999671992776425003233785784371341866661251976340464413634271105922012828225903889315008437854514964433781342225589573743752707382246266450840557840279427465850087990120890094312103605721985573284127432775993157525058067646402211806612546437378061077956275546162312632775508296116696497287768610674212442706027403039246154182847791873618129161844027264454137535269656275456165633965352614977632132336135661724770005583452529686630391457115448208879751032855778365017677766476541594785867614444377029462323316010685488159992535558004040986149158631862318779104192517940788614213120341662016757329158938737376642359950100111498966551026062079832400594124253897440266050305993375006734452295099189140306733216274995315019132411630037036176624145132669852081674645392783745211558261841642928877086555958065002172864384697592187962508791738830111741027621168535918477785567459217955982169187890472915013857553106702750778585198990048308086410702370084483914103479751321533294462290944277554023600593430150756982806239550786628797930952911342769604091862580938317405677727467751669079136494496043255267877585813201278110333748552255695175920186281959059492550589204377325853992348700814656366389900536041130153704060429337440837003855690549120659177538912568514841111588828297559158689034215585948664722150784063782892243668016106408224977648705052074231821284285834162968337521911794239705326930421057479851934633788712876463023880349821414217136287753925887926635278329537714026920636054209158191191103216333894713390235452370508144124071603832713266285447122754488555018284149375168943036723878519585666789183258671425177091951084406490647977922201197428669189833658910765755889635340238247578071329004371492415016377337717219543705101496547709650641599513093710386308479476452687981092912399732272263633116370736115998491539213493903881756224574775078938697716725638630358281439991887154609741481007699512825018068407025503223264205515980569609656067863681504628605637499157196572375434286571419109803417016534487670756417874481938606233779215069638629123523736827102826555993771267542391343575457696634271530896614558288495531662933849476220266197838090425102171697684080929799995785743743281341252568463629568575184389717764855895657091123635639887530267661534936184404544802182782889921069440030099443441291300860003741035305582825976314861678148317337292046344909753699834990002071938616097736481573772594145980443559162285515688515502979238409280986531635888744739979071908730743692306860604941799084329059140285678117661716843266819409317139865568865877815185602262115427300748152409904537675370561523757245154663362687865650806846662230274623929356539512755760143738683759382761807627269377530075931678348372809442000687102435638986909527222228328940152610537674009965625672655550940359630023508671891205616495217321888826558341810813768404138083246837250855475907882672781082070056422197779337925060980123223303366759444280333258964922355938326653006794834749328486468636797819593966828014569590344716507229650475605450919997700915182191529305420653610293923328448196313841112205238333636783666172900102848881935729485296015386604308184897800333414224094018018267865321940693280229174440244862947540925673392387251397375037945140055608332751793686818274006403324445868872469106823278261287904758532540313492298372667978014599412067083890712521472375230390455098282166816116371950500331878108332953017423913056473484976080036764685699219254440376293186107108615529277243802170815001878506232718042213936869671151184669284856323085624290843531855021816124261035902625804540172769553033008516533616715618023431077188484853981524501116743328286121934776443151195394027808008709729071266296555900078679873089967992756065804384865374481013516199271664471691970767428591257808588134519481239922942865402169779614862502638628898190448655443145610403831403787368844631756373267767956886457261223455471736722746856642130083785333826634768095379180447519155061828739223781634234156411499546399998996596381405516313841143068399538422247797305140778643228320292359148187640917081860555889148106535281587059062865026989318950141331033841500224990515702387537581367752700964495421448086866974511839728040025994361315333575761190878340437298304619656424768042383479854557336331382168843036538736120291106592223101190332484043625958731527822182852618936806591485114998771631837781404825490826950816001100668328249564760129779049979865584230961670815038122470163650892110884368848362381660375211256513098472877161351129695877024676866940182549516655901722909361262843384994639962489377267540096657683961801628156843901465973005127063615853887640671115253839432919643487348443673669578056586998970391532951853135363314911720746288788323460141353054274106387727499032806345320812607778590559463608738750979587434756347598661114253381209758079605539455310295029199289026869522580124174221016281784399062607095795707131650745930768184436399619493593324803391300307557238569601031316236628461805958747179985645146061898310376121615708299636919266983781694296036980920414560436407594426685040395500294594913450774872428636538399891554599136797758032032284557270746112156047676455014348139792108729243502187020830331152642821029991035782127324832092046247324402547850152475555811123523559433352994681401977937277479789703109827642005461226102841925644927068998604579231840524589986196015583935560112089603245403582945328709193291592804525961068554100878919812277938277579372269313457032877088537087434438508566917690887420557542594863397643915192244072148020092830008846100656253755384731603309014464984104398478542687394502670102803818270038778178845845171413864441990362690120954179689010031854068473740371422038092188119842363320974919910688351783347382284296458491160378457838328939990184703612873340363801583114217065592571744524255964458265781715424361228288907196678778394275344644653953556380556859888099373149820654360931839131656284854368763098346994792662480091996620764707926372566896409035928162679820995448442342871200641152401222151676197697571342189185034468746443027207767566205672386292268911176261440391203822428811822961848430498986781371726379414462640153264530699624012887553493323849165296505746281831210873949284709124004825663495475694651134998099060194225474527242174398466481560178129566342006847053582624233950769074466774097117185756115939636508859356830950133273290772380797056500388794940559538799180638281041869835486243593831633536550578564321423201229871610106619134657360765745487733307613663767129764736862605127369066428912988343887859244500334171384553806741983776689976843361123231651569143061148484315799001390585942324033366912854643829783261638491746307545259394707654614641004208848681680614803167019564176530358767081176546841965385677279650196376209125496910651425077208166400327397723457550952991650707809966542717879977272178247954455990190742982758716898380478569077379169637224968873723779075694861015666736767787703197327843884718277051942346181117818685767305972610806017439936384277675059969586510082488985389899524180450561836211425341018314230332087497208710549762551037605905908824422320830606531648240803196738127970331329246917490485629037857627672517656938002211537219523775610793356890557785941074350781570257515583982048690553019436536823859970266483245174909622392683855089896211907717964889799889502650426619612623843940336795558605264417883252078184816464753475986896472763698613781511297198345593712997073430663594227665511263244941723007500132717828451529245666134531294402414942076163138046174225154179246761325787614436701238376409513655523423562285758049915258849164955804339029029579038203047461088133542670003626188013383092174410621484086084184087484908964543710760182123685193686301799900186008983563817296799639887337526410652797782981716682867529498094594999928696269999368157036595023516053568284189554346067076077295653277742683055119922799112229932336107483243577674510765946243956816628916094695590274481203677262469835657610169030709292731922240531358372031329762013078108346558545503776057927595593046000400291012991465065572783999772246963045447509370874408011649834902837031024687117145044364044987315433755534575662111326371479880484191409588363899511505139152469270017805878355687643691698434037651433897243430753692860100136792609830100054150332007208989292937027967205967502419470794509206996006061044317909147287038366558267672431169502760888991321001823085871162859708225835538183160886759940091973562094263041989634058314231087107859334329488890884531187492974373137231861176227936716134649700057211884423683393503598899217546118806189255684964247880228998006476908244578665424438597113338392518491269490886699635228339552612549755012679700358852222493310967452657385350257439729022824418893430311378265693537033074266053715095928544682810968362273386169089577521119251967245318026065316972678015744688814702819430137471700068881133044585603214547780407392435084270330404190422930025215223826411515718260003585454384537903426921967544153589070795911968939441802372711504325782606700924912653319082297374321431897772425479173568388951334254663289450355187836924737479304914482368925399748405637069426387505190359980474817096555625585073802499855235205308608558563139056971033628649933457901159927596594517565834550289134298604875313081765701206954581711246338663129210345041233255425765745477253888268893344329373889501057940546375650440422253039343475820247945068917361697879602325573827713598340744289808914290578820048642281138551540113636473558378706743785856019407179784486440555463831130658430247677105920451103329448626742985632346585859506101016346617248789265877280927898148893795471735552659618873041775467755192998499837199160860241000131388178675515086353020802108713266608834726393079594131747344506834361328867775049235000285973186858657458084504802394902130544775817284529159213393256754949500370088681662926122282614442932591522265606105896045591695895444479054035377057656770805827257258538592831594752637571619516969023245935726946571868483151835539027469202052779675841586269778233048856936785387584285686342906294331818770673286254591010348368509002726502705854033076022869938109382254679202429064947249360890944801294370042046071422934086998322769956816523167130712476563435640845469256084148529311856436139657509918776173383183712225735781570900238730499087223783582499139406647798549646911284580996413170913665772223392901967319962360063305152346673738961395656465259102203937583786772635407460993919858839763536053819516306441492616706686624802939978015521014563898802923124831018401051511043809679592098874331332217708263916330765996478062388946391483004902525896482072423649927568154965500914865838120269560079595534312848774191084367357286714392550365368013952759904885789119150453609179347600285949095566292444777578300365924096073505097223034126530080601356511985586134968881961053535457359705968329532888172001506204064582449842662829938863736704762700101293665927076773681460403695536906338980347388194406921666581499642919268565620576359234232587267042776899562906778214156415097699189173565991548059727171944883053241071320184902571146502253708500358256765786338830987189152722987517125540153340595165957257198365523615370982910481063346080630227364421929196843340955869202797787837326379945065907152779648646709906212388817493344699826477262134671687915283905665426595292414464251912719243039886183026542918253888621329901855520669668338252437823160846286650755617445296022981890428435461675830765035801422971634553939395656253535551765164620651394262309505507941085726778492071590087900727460067256784324685537262974496062148144661883601191904962200293046821292335556290936894964962892638387800619557558370655604696256181247311153462545331909213536985301282600428420170879341969100896128088004148007167080406885338593505434207244301432236087275833333220624986238382158607004052593955202294805874047586423680896279231475214678177051918093257255638893762919568203397180723888405454836484832677676826619795216133351894183780782397874058417141531777727753550555819288286316670292867769131963267785161217786493267778961883073612602076762156357257579556863222620966762650985962816152640691657210928069554255884701625874167901667234042582570764515280698502707056859989736963189430573259481854272028754828695438106207178702090777795960443181167754286173774667071204812519688877821927052750330117626656332974766659960372625663931884374711903059698098840354751558575053294054466721704076118714639666672667648565019422756247297745605616966173149582763411966230603043671967712435240094098873479633348041674107137935808519560714733011740529783910136236553813305062967736890204605670443783930641637916300092105193138270318607326610543051363840712733056751575918775512993589948216818851920479808433196369154331167136588116523893517982350432931099114409277601804118933984620392475112951234894260392090610196563767185936069212876519046180413293654745332758051227455244685406335415721044689044198826946786319552094195287164863554250260514732833363684408506488838788447190213841002171194424820227283103888404635796091552414817225609112641571677079582093392250367302361302352817826140858825923443273032328160322023350790279816028889919160740271768280268027842773758089539963069367163041166054343962803654843777959960928094453124489654461070538282715823197761201863500480624071709532061425594198333590731310190592942606916991599604389630919564215262399037153824987468052587921076634125519962066879467843133744834527390695540163065842319833042045172115509636416893883843623428424354862900720665429316040049519413684185884970056395635502443554370889983761061079392893412363853316122912964495333133553485120286462466323772014787284487212318192668588134435572666044331918393173943865757854161628873783782368511060380854268472956886876895135898439311408258351226522630054231702437749946659121489679227738057904167798863529559248231746278097972439822807781190784945574857400775180831182238891691089701562944673882877400155084209974842226995168870470998003286311182972307493362160199425653139811204893289438476971625679517934436816234656482842159300646297161845297179540240315429853329515541588509180060697793615661694333771651594341971614298917771649178391801148394440901725893081734192981506266685510626428527754626657310517741272498199773175772366142121717572768839698751818095591534628515583492785417048723389460670490315189996544874899146321968997566891283452100014921645597677116970460390134103858440109015221899394631879472763748942198188566540462560654821062675168863582944836840503119247559427875443923537351244017576828588077355221211761883553568052095200993857615960503931925615150435763430136652095757097914985298501027165732649166341145773677366997224683427970330637527322278369547216827997424247559609010899087226893932510378992001110376148630827616506928236021587233292968502366249229343496822082497332908868842104882691845052997376487303447926222939260333417290397064930715549258341024350281389681888465430767862590771948419075354268889815539756661989576830420282882326455203293714627400924270284826351460806604815051927319080674476081636781539033653545281665949910965747950301102176364486262112326239622470591388037536702455421502981642637966609892473529196184906726085178558998147903271095967749006592518049962671263690098319383837376738156716498379139661423435084046843002465363580653093414283186795214517259565644523922337790595217073436964061287769359982207179937487811546436201283244072100947481038353815656318908554354375138871073162571653982530431353169324915133247293785577323847294929649582058168567686766041567713061000522746120950153676896199068494525865316654124502214779011551521054654648374435224509773171825983146694122293739472794221181937818504212823333671846291639302585926770111828617057110964214560104324099774602287296221068226010100926572404942812577488144797229194203881891646189922392518723636476100418864056296993649294395456044405719580186559935577403765578030215803397090643688578867963677650775277637576987944152496892470704739583645276847720583866098700540733046865841645293254487020600848155060489029373046724779584148077851201496920651022546134446852537070744266887095179929530953016936489952844528249779031415687569883396997960506858590018788316866360976891606157308070853484805847476811735459358804849741266705628702392170436598509115864848471371979172149030380994000349135972243746004926881729326300717914862219277759796054954720889958045556648543739082801093544635102324215344870777542830504451529235529520334951298833111467626204426157089490790051539714008509933361227157297299001642803529569740652295349379464957806696978429741643196845627933486862437055101086047926139590642186386496178552090966726950189653241899424640389426594781276065857798470595788738283551732151122381515598866329788459830819456025943174923321772578278242127402522702576094124401471955788886460938049658118356455204408625898554227242737385458777804811281559996657151115382722999462546463616857367216989525153575606257155066616928584660858128934546114595438520500602436732850671564386534680285827662812432759086564403962210952559340388131968772240929287930230093115620885127215318176955653019383736688148580190201594045902646484209993989185968882200914597766743454399827661018286291200602605496699167737973546054756345703977398071652963674483198316960102363295154778515572195469343883656981161947825128886076903885405363210825719699538807832574113699305129796439975451141722822497093826652078502815878761991422231147261198968049218516555034292708659175651685115826076408958904242692679205302370810097178167810026207023433625180377766253560078735297457778898590350228368389276928901040649556955246043951721228309505997726620667224488898759974150474111910447594979686971993910086963274646509599662982133660215297022206462559500396133103954953054200755191102824969065587129114490522416847066567221231254628186147567087940165122294734556788051394028658156873396790104475609794474382406229038309835023515336998011822238336068695765578274392363989283647741649452939703469734951139972991166280662037800269072812777181962975285202437489743932553263667848930050177257262956037111116352019287731281751565551778123899215663352550662105888071373528060121338193895290221642172828005950580223734870190958785764282885952409816803581887779209347570644752030887349442151998885131723573800857973109183160433189063163097755074364241927795477930747593610394403679882433757680613077771166755323384176098743200536532802316720607123294558493675924677962340421529548162537073530294638408727479358126797410781305579197446090087251408553775381891522931792674297576109350338857330095500264944437108145221817271997469775171420397510979473960404989092535196706714892537426813996814684861019062309292508102104202513331754247609703401485235561671120753592108239206087271923884616371774725876947383125299531534158948026823070776901919387052621054569060387548404845435746176461513345809121867123906056030485036657612989215260270589704813161272279273908207379237559911584669881827441788809722437323077833858699635324838669167038236530441311048576998557430945539919833092209397046303044955222415630517897753458063281125581893699187349346478627698340301594938472152069417776597753338605443251796403462037334361512724826581959718086443247296499423495665367119956808307367165055914613113787959645721584689208575831065008493193609347919016650496903376510746329527449472269698318809762655426237352714458282294341635525254604057801977891783704705418278211545814363709108980863372420091882265908532160832745140593740334843095198823089863975740731791134535708700142772282264715869760406024704341888573634044182246642767399382502902908088624671015483270930110198126361525448880559004718262241844534065287238145841309330722462193369015232887836633435327827355837172272298484317261947086977774756002703407820096033546433034658500172486608126884626990431519397460158203470173571613401066665720495281354937279276337388700669647265167087724578169010992914373410842906100108651583842432423966742427307754196049099042192523109004911059303059441417142845445284635133404836323872241428637007716209693839712676958306278699689870137986104806938018962700972396393816383573809537781230373463605436494410641445273459277433882558314000559445804411913899886550348132271609431985677236826504533974262266081870087222926751549238428766562688010524414562537934515536177235764710274106026124604892474394331623051139238117182924113458021161066352953903938794479315874522245391103167741714501386662442953731332056757443681921788202481547685006736001069127075358643866899029566125452512231603381854080335394547335955361045108621041551109861973704339632358805476537847425972104650051096224243025027773954712103183485223275901003028278699820898846633201814480536396547741649509720143475621346618181973243228121302457851424096868359019116458581907517952074660509120844040470578434906024857195895984296624757174376462588995025880169420914291323962925069028801922767169301820191397827142939877530830268508399426568305068855780284842622063228992537512610262507314184930743276445617129035540013894528349052983335225808566457550367682727427514304292799124728460027224237421331795941081035698446850858838492609724725313162386658138558516006261338106924447350337693040769067191902275982381075808881104944239682030754831899386526082512057283409951599595362634517660331135524717588919558919932041608401845652347884032850750322338112338957737666474168310894621641957822812708514302354892837893803319562280552150646768754638018455880073568062551219090945938187645611521912536358244611628629531818570033119502898594038999995552310840040904405130670014862681853367697212675295657239913764821461922834750773233443371075501803952503457950118156729265460440981523372792516797035183960163335273612506624631986818652084987566247149149690220598437078900312637902311064304756685177479285025727704816638015600208978460565008770401339301264911002833209042475200904591010637150825609132891983654180319791587962693346787257375078442617463405464235953389481889072105992419029530365394587546037704165591837110625721758244311344068020779183601122956120594567759513269554789813163789592544063891420617373237611252282134851483883275134091985655419135052837820181964577292278600366902505445904087747342992513136870464163525644328122618077811672258929544611545168271420739863624409501133946367855909561640997362796665672581604281000853283874433855563782946738042111226929055753744331420220494621768435832429926872962191675876598744292921786565720053975717431600441127966165120153522270933664082487352485406094960878365098601925805064566835170587171439297275750916389813430582044088784029291560097604342988033758239791554376615066374928860291395312604415108589824908500405478981122220787298215388855224801002029513134236874175329202332473900932494558726808540294546555634110337184431555863464160154444839819520288960099559447002011498003286526556726499162499897963095030481115463476855203690656133847700935744444613956702752683608660364857661876338964439043814332375429770954076953856946689486824209340235227941835086470644582715283969519802296944349725370791703789604409942197362818495137934916256383247115869718762006395719058914001727273081767669032192774021479568887710973771053486851981764913005122283197626670918738725855234348535268815789988070873727499455233836662912236285358932477572185461623288760312399912986501882317489257208483237965423304106127068785410229756724805265930980474475571859236935217927495633850649450677752663088681413892620822053828975478424615857837459505719647054110316802895592751228270801595578480385323591675039072269829487085008136864081119245594598442290703512368451170653112890650300839621216298302527785727895313830546099862866353849171776559127042365538846261025625309731361254342860653239833766891925315147941994087512787749643689445082838003938000606830635100999601977245515120130037892084272605420758085657328214657454896298085673491699098031284625050872931026588231127704913471311588448402648232694706597880382403741617076555196570961847217408651043351217692078638813001232811679630673898625585864189038746718797391657089073566699699095234556896081258786455047470376318346377370706284849009077436146285476555367865626500985219180713265585502346684687997680406943874222906036624289371488680970795048023872582725617397872866407695840397678114851087097212944589909746108659828239315102104356227061728485400137509511619025383879717549655164635920196390496484239319602474804386802966885744311844690271927541900650424625782943159782785268936828153462871354775508164842892960326751976100243082317938009430483157045592013165267592693844582531626216928754477790940017281276284825340856450705428575287830641454629038180774098999477707998307052564080345030816035511389394206345148775985476848970206347761079354749535732062054750866193691653022237572745775432830555386116337734688453707730156547083758054930292437019422841992996721675576496553372767516982593837296953514245480033396685018121465127633880573600994806188281804176287350161119883309190395314593952927775839745193003979856287015883219382809713118887331337662103500991765759806034773845941313470881751942671372759138918518670636647832949335673854893578567271988041408214524444165153891721812771076384270760641035514909764359243366220643847491466293923032587872431329389906449119180933398401242606956878768499516827670495460333880801152914965917653731707369309814676553206767659030194917066801648494497316417089153900908504368381773822744272524511366845145977786874711205151894530234088546082133585663168306105035551149514858375767410354116579232995515016359784879188930661603809433391682565061253683022476523131362577579676016457885911405464937430283997932799800213863350181334965197469068697897435857414885869606962760487781737707593844998878804974064212388090644097817576174272006044216072620763134880358518681741944510958822442318488060236341402532861966764126986504273445798402003309716727216218870039354147111362975774188252696898121365627308239536410744067045214701819735900007502986298878061932285685785797389578644931854115229529881575167732966069599155796385367772580642239829802413530920890001379154928356081895477644366705926823151157461147250204000860950323151297781430218589705891766090330382510486894057884770662722437494568646355902703943902490657963230154646811272572126720015280841858404954599389961666164310295773632374192639725659085592727814195247890693430446334643322001385867789110508281559000641434443520525166241636411484558489049252417059143088787551265004043149133010069617835843896233625229664896515600057379032438302841934428906164229125124896109975213958885254330645728056427242974973879437498816541874406277382498835748229471926159531453290772185013971412708540747251623299584949272099365398329900397388351458410150305584650334966787570202981361618926659941501650845263421077424431703466954976080742180783688047229049856989211601744250774520865086997389810324761468288736801984693251845742916782823969982447796436312819032641339205893461880393747471798352585979389903763494484057749381676775095535474177283675210795363681759375269981929477399888478780599489438249672886471684784275694609373427576129656407756784395861337171856708951485244548988151002804671177535578292895376200821413623519993437928053852611212415778709345412542514236543579812953158084192726862762985674802685018394653426830024625216748234525876002268504283079566582841362985591479932261578301127052135971711409028708826963292781000039208057802614041869489369409874940592454556819863725590821845737391842379262997290926063811549261908603347069861337417228803729621051424801540578963716238299060882334878582742995672834306827433500443793475185638851796092106972824172905965482370465220208057064383048453296236939694802896917082706500139767492556806749765401427192289069941226766099489572987861183701916248290064383726127883362077298274117669769621137578526719091352322430259522528215745499894592662614875491381306150612924103062950457881981862670999942269644482497712953069113383143909315537488187640613575543330926513814511943608255623545823369339101972947543736147689947989762236384346110828664579522772105478668802676068531212698998644993207787221563954306607491468522848235405668211008823610905999431080262647470773984734803537732542700174270982118801046324166828808938903241086059889768199397270755236154966631935305017997848793941835731903537301376161323315508411316465932570497884756511713967391421547105631679578537732852278023074141476953424792913385488397534584001527528366654592929837701574020905852786964572668932433476232267307626488547552227476045153874562253759043358114383381356406856687358879343420637050940716200756569016799202653029632141286495054026964755887463663411523879373444311764230082821369467008510728728849039984093187154686479981127026405270338817126855883662530146488388945337051799163666700785949392321008862314647934323461927866541346006426151570063879542669917200933365956794997472131322470594991905615822264542218846646241491954390096536394296050570435983707402358382081489702240930385237805580823372945601544719100399308383110565459547497667556820334528084007367088121345014902039505189709174791325405326757762400348737320326392579028141323059338501222010327003303680930047089126278848036520851684984814020126233841017617124784923860771947719770574806731114302404891939636083237674274158778034498222302903031695021165725004129580927436172139831302985155894008299685631389523136851803913832309246561000482162616311151520199290125432151064719510527085562647558352626798965924169025692739028819126149664664198295044306453454215036820085742024507954132968817852647050535873149553594421639190447910548695055164688526636136467168669734457365658935196692286919192469579307818513788056725008838092769657952083560523976768418345691125166476994018202098360275858145224541375847130015378821383830045418952049345458825376757849355341771982676344751079373050510876740842114923191581575017382108724306674126353282219602975494103958542838569703551910656134867087056044414754537812904104792040498040730033639361131893390273933778808284827736571134590368223875079147209570218677071552327040460110654628003036455973373664519630274006142267203306195953990677980316153406496919711023914305126304351636059194304572981909440452764302488745201994770764483590459546517335866711460704990277482702239541638727996651609803371527233769228338827538860368296498732688178952485494220551982555292215104808839329624339990616722761549637579133220778258228829358109613297705468783297213916869644538047142438175895783633600567316709624654925744229453801580342887014629065251264613771908767304356434591620457198654106179218855592731792738916711386654968868667515222339530647093637625500851215113202752618163985657945176563792538643204377289474377601249535655118707844523455745290797539057195478622406719980277296821504897350155739605874927300940815254218816689775549201434471575653599539977526553850933100904279718190721256637203278575755237863065344155587660731559437608277816810744522442562015970631733660934213186791761887664981974448268441745822226708092089113902962790753183389519876071394626792125469336814489120624839744347878281410673639300137195652018374690492871110719994263137510480603411917159335893385242549380302338529216635606740262004355492681053642012806537746796699763519905486993881646167735541576685151017744817082250784284193848031404943093896719306585898707330952467316214532581408633582439091430950836480047591671765524210379088276337383338022091001575844625724252672927054525415551064464359602218613809320839955514043915411024167904801829881086581849282119594651154191638957056449758131213898693132675556060742784398208855113296506818019481532589550036581110293449680852311320077338024535325303109068631171147261226375335275599699086513797737743466677386123190599896798184973213266746923884671562455793241235210989981042750183597612440519881304360628336385713679044514932434658228813230045952941202031673747183241671396958608683460638220678032295340403759775943646368952022971901827500911875357849385201286061322581325685370535968094670667805126336087427718361451859813501160512337549256134611927836366716441116833165622366491684094397666176255942499294160007019130632824626617329587140739642959399378276031732211962905430584960587588034626989910267754512234718565196620037639856532593975807570552976991412148092585802967703650675990932424913319507821290814794773284685031779542089192491381925995409824439584783433271442086147142935202147688192749583337645424632205582714772259280883317419534463467727139090031853024869446891508453158308075322013588434273311389623873576146515095361009474090352421524652705808617860489993145205338933200444488936769626897042079577485248147075560322145924676042175858898860250064117602865954381632259489918028421246031487113075039329322077024240085847205221862731059380743604519273270235830975363119408592475681849945378173734390211602340950826275983903991218792204747189987952067475328002357498352499199316432584104157713023233644994844967204039197150840310065564480915270487342986985404733783058683939125500044901278072782125692066326178414087309639630830339589223954945242180936304145608225648198041116767191989088233799136496311566094391809310544295152366854218759256697745433763748765349738276531375812085626057270582262834216044748558344991858068381336240712488874893840538931064490538574696652483944465612320482528828533775004151802307294647969020439390410647684249599501393498581153560689511591507767038206869100787125762433989775097855407912720344030166412638582091099395460769106347179246162035289178034569995148935190687499838114343137816715712983640990975976953358238744579622241469072703451985903782488800830980275056324526949516668015754553340671658467862638816640389817968642744032575148579121344680749216704112248803344090063233045300808103506659408823791217744826432470993197240374466834314246678815926244799048378107727714324659508694787172438096265132738628342338317559701712177507805089661500447159744175500121528336853270006389125856393507251764414762342444733890555173086010997413301848665089548714910727119367982407188484420728900370408131777960599832064255853520779398829785756487150130462246071874544622146850003474118041292086126490886856815294465351194026405993715163672029016356838575417368561179233897504463184320953786895255465844439520702609392274814624602772195082966223698011497933937558072861938402787673271687616422655552205856874465481433296184986424103342009061247138154318123177414622436236415732872570632530467628264033920606888784740452797570610735969859972283688292763307008268874453567038271046820413418670480445705202215305091962963747950664833096132328576001950628216976574587331269501228767906817293193533287815651654851463335983099407792309686129885653726463221021383197411806269716385349236419502094664459366185773088585465568569377155244328305698104347945725871019199910063406895393677268239686809602976269961675453801116221448027381413123249714770398676891906791611104365843113127951560783459490786807690746933041062349607250588501964828757631325665681117981389731814114817808604208343230166843526263412107602128320725497514991405471460896324200202043439704992581470369102722205303485501818010437844834674799110981582262166607284230835023252109602456218894743728545991958596636725416374007019736266150966607441198333926325390222109326379056334393764960360962786934311317841047804186598033644256881536881785191136355790195640638359570423557653154187418914826838140896594788091452918222058073687231345637153331757715908164500535299140930071656586168552673475979865243868436148601527072019500964749422013777700500518689703499487775219412032280064871121166373096766550564739087136870728177202619195964238001709173152706301329342072242837719093221870698871221463427939629219313308301116376549601636260987729352326141943134238330176195903083607237547757828802246121319395142412829198080637100601871314181516095695739850988012252011392580955045302956674008695319413413176260232092271814510642093029280582383587341512150264943453727097584711962460955331840928342960551774342888423412023658001263233001439853076080071031250471375253556951911792409652413070802423750712273125019709085222516567590388509835017028112181854280460966566293928914614711294365733013694427343234737633390614460817936399836184693236119331323681465501055368158390430848806534647335959519884631182133275677067456832926752822231674321434527911824911221669292749970375429135495861622133938188240420705539421223738704937018547087194559687056948704050663024627375769734108646295153640788707580970906397493292990944768181561265477148352132974261904065908490539245069790367843570463302047048170861027504902478967870595248087509204215413805505553067237922147537656155303079180970616428769425273052096498398173087072674500762331290362441434336303304599505899515726429853471221008593904992298103370398034497196881416508248890601474303194082350157555821065088438043800721652806457522201254659577114394697126476098993983954214377069197192731980875645976990052529930867480825438905644227890305266049729973205773510646053144059912163229120355108769790760430145565738287137338351108950356316555692909561526783281430581860872146143243559288796575410086643248678500228946286861924276656713530467484597189807439313727511958600929513544154442889809091399620607656491104087174389684708094006110210586235156452129049906579229146366355397896734365607853369057979508200658070061290097126071075597527830427668940000770221252724551050229760818947346052149947320060227239586582341408183482149345162629304787554547193938439538222686261910859802807690436925748163072947510613957681584458622961451563947251233879060939650534165530225715046671859501627591845325970390550121998775266580395988899738475736781391871031180273569972241381032859622751864946106075703662627663513708237818987119361153010422581547543688772791146098406262731676916687492616840048392830892793793411031627733870469934835755326653005531397577724948475732071270242953982300514964348866237264983722949887423907480096161932276992312240978340921247502968898375379463066408420919340115092599280239498411364298495384299638506127348962279629331482389196920581182397919752103654122784178139344471419212999610219826394269114618115999258302429899693344762025201237389188808961437836540759641090379512098503959952999775891954760830980354408060855474519642087182409745268902201252807847906126321013446085340512293898945749160787798547239092600458456057714182322951806855908891311341909944781754520194594589112116909350661435618259223169126416417090195180060569319783407865894586592535184152908032290615379660399638456846364432120287637169096678251999736127578612450156605891270854744591235402192047143197442521747450439306786092371755494108781114202251332618355958411897522803641537276587928602299227619864944185015935217227136404157280817832573336915863263611262048022416217183459864508599588663256660244877439425674873620310154780397264539499882575490343942120671648777529772578046177978665277846383392265823793590679407318854039984784808508611207281063603284122822894228274795054506765425569941908332328558596353442786662035395400140430345411320398656699073837817406283676161009800343923237286886851884768915844598672865739875294601225574002865921337945296010546163991646311797319001263635439588772934620027742314979443059659297803351716829965074816578346567227656130660254463126368804136778413476159010983392180180252881590471923662689505213841189331496855420812671312142695924197999103845237960291942362039606552896265594982867470925937161963982272714959286650937439698941540631325731165163759467764530233051159496750100460215153425521202291185111351668514989573716607831280003582627170810813667834508727062444616400139384229699237985108345859427085445422940277663061670371232312035948369440622204868697614915171633142810131407798468951464128726603724052369886303804428101504375097811613109538179730755062703718009346653460732915633853115913798410688030094716827841555728334686941083438727349983233071453856221140919946945394845840421361264346689513483573260881777705532091497644195835961397605029213497641846288622048111736494404568079852057421091758906503293381494941480692519145591482768732877184779098197250350424464974491603437385443508212937522436908574490864907852310069112295378442064765994002657357503491718542899660672734001805166445834647507580607292393884213173514525746806425794352931930561446038528597093216710748568194345646514281409064488424668695155612459002670410220490243728569551833637982870341258014772943574232087957050973778115224042149138968796869334021653597319111965347354304752829560538978422653820354776782452630550068569419216945498983890395625392430108584969625635399531059992351850466939617786514480917360817936905228937598724448104947632826419019957826312656420056255986862030977816622297968500821087657602840414365944855742166229499212409445207923085948135209222252960155587098944495866092842666366747604707705918831861277449772652601765685762750494603591252465354567834374677904530383942770159777792738003198220826074808715647620557857159460356921937023755668004240123006901063097969925147964308629636900009785284770724180315564292814835803946298349477220981157123681914328321467492965721965759830777086937862992542926503123242063999268279433365976526155467186774021862843547844924361318149429352286006343080649247763427862072034108714742155504940807649179600977729242872243494413710697757364409953114859288164574969070740170914341533870810156882369762074401930575493517675009811170423393066221257250723669424116116912952917665179474909350041889187456157786860414198221303177281391192280899639732113030300349833656278872832280743771411531165941547161394002817731175428902446306139970291327975983480687978627667492420228219887675358331052470393013014628145972424870995963363993982645826992306026452260923400297731893902850295119698794127603564195606716936077710009307179036449327842035617548406542123365569386163894443771692617556759087698745058775081794440740308897487125685429228338270358240774364086529424166598154352890466587363215006200809403447180365925706681068087792180748545329433155207903137721563173038035456554193628118117293131087054791739204166441987691669130975197925733914848138118119822643994924203811195380124256024583235795948092700927230693932135244572613877441519870645619527001141462131615924178507703022534462783871631182367069250270502958938135866309308492599890873192200575737044446492063070783685895940461046283766059579325325861219655541110504975530945449758693759869544986480223197309531538460281287348130727339772954964430444638605663642983926208483305268592359253573605015835180120669958234237775247610641452848028473149207420420582214273541191444942011560869273256733460602484962042552630907887118037725193577535879067508568088751945064227282976741054163465081783053086040170130879878118491975994189072556126434921585051732643690380380865487289511247820244348689223888697616686340403499236482377364812105629823476254015443834176378590627168892285551388740094921159781618812776563436590158792686941243114589431209625544418245792174966083237289642402207386900831714761284402304966589910530695073860650430590333333045102485268323589553886519031929408303594643316266931569526242632602643895773679203497670194463039670981129613195998642236968153302155640092818252639553221177254196088360823165258379010788879675460399340674908793308473944774917378749621287326061113461626843258263058806886946463058209681588807524615785630959729932692718595346749100371691061831313832736579166566257860946257349457648399128866451976080104839013689731198846785946707241665388680132738821385529291913195155099567861393312078398355012955805116047728634583874424435945519823630785556389967053585243503150678223188207613854584391699412941152515589536160724836483485754434197427299289084183472356324957071178940425228198563996845713582146406809604836091621990779828276835683018462399599145383983659073993511055080820565860281272074048328625259123764933533473233372527465599940107379524436442924309127517181869030835856888312879867239928976202415672541930695635396780634315730250159885384595131376224702420226752566316808332510696389803501948083318635544030886787037149202571280558098947004056823420965628190262142318646431947296144007658924356826443290404352424323208748151659199490339308930605696126814320614384636836544155462604944546928978111404934789861634907716337299272995785190284254448626287427122485170365811485269474603206546532324215287868437155484908132001009320784011809064796923159825653342834754290016622812063761427506008684658761475122930337459044904994773594107834003990372081497424329012951266866534538417760939027388803347858018935921001131679509981778749806979848901531942466494854907020343180907627084171954153981470480325623920481680117865659463669741362543347563745445558027996373400760732802115569443503119395111209920310444237697583768391523405373096094223806959889489348541992471143732060077663785805739738286135062569525847751299454968191321556554832130997776772216316128576279057704676931652862507976037440488770222952966520541828673606872433480235248627057497507833475674412663277139818893460880527453234741077476343780668115521105783713891811790655250721849379374749643393862700049520055544106270013285712622251686917819626803236142347449639604579543854473853494612983910001941568975815495183902447708286331941663284280323429648304757528803295696749217905690427548037941567413153809593257737071987818339315298376977167095403063160047699182279620735067506132988474101636204987724671149939366681513697809916180216187282091854705736244693424899905463655798052522313145451651754466967030954478004522964075775657296127794240872167503055914319557426968111992882595872570577594579804124970520481454901953575051379009993243855041871142263879388828960244992634816942101911429076301724265991859880888706358251602663096227291439083639335030977374876662308137441604618965183640868536849273844312791892701536383766510957342922853808426069265752337965913619129026296618283026105149518238367987501239326119196023594921236607072306430371869971494313133848685986322443108412058134470754281873580689043547422827396447969715064360977200998361734657897424421257152341190467185936416977203777330723553473673387293124150500854870477422869629335885154492062019211442998106690911183731017008646116541740242498017135800003824555493672635596471861642035358350955516257165954132718040200144620803355848682534299080995425156906667132943846306755876345666694628817490544507960259615850695763270427752829986681939150319241312250003508207564125673605584362235743490801473741743458125630684623027058917939741307872232514029961635844946408652714988806534906595393299678997454734272445697361787030206562757933863165066959280519300236335448878784319363158543421631266367104514229045176062329544151701792057870845318776555068829076747690351101252188754028183713577857832935712059596854631661376241011198277308338225956896748679330707552532057361761130275828857664058549097643936019843003839486612699808210039192697894175429090444515301730455533334625051951431445512994665312277933359534428433251161539209119763675102032102401762763350961628307788345061223613621437013212145097830563336388949929362944204398203573437558428897369750760760760077905551006428477520566949531925967733924112565904569676393859006043782784942302787454016772744371427247299303194582621692918400739478595026002035343639823113612524962790801032858074505532047999207026162792664461290608617413549687721613342884029469664122128343002737262412581662077747603643027322255227218423623937466363424450904323286609670029991719611626083121967696879523718178636446030764871728620557537132481907841140962129152920783853861138158170153611249471477476049861589358323522813831437685783998876528666044181628610943978131226900699156483877345946897179993636453523265957782321000574734100883684347016200523527352940223310292452683076449105286896424396750241135030620497214408350484068290180874198677403504575697163149478255974213847812667935532573677407982434588993374567089886237018258632415751767295152224310730844686107790638430096873532985755341215228095135542005624728904122928068521623094116732286835004654222008161495296412479319239936461988827731407924836532789507433115498944411134381935888339255070693809264046165624942234842984210006918450927264025298570758572743944139133835516334232779908368118471836166597094956177531315219585846148414942362840070508820116384939510923286083856664467439498867718312702395556009478966755158479443046248665413881464458285217413655524776022318222444021518821954230131327919639120937540597523203893075750082493454271452727451135698609000409366444402431494681914447229126870194686000070004314755672285569221010355009159505897747976417096788532067892018344673423112654552608235706012877402983239521922577299515634914121310763930662973778585131279852593058608401504098338871270081959185637910799888371714668832473625002197007394278166050946398345906125883683915007765518234463450322747320581510612625958922306091027374211723918486355184737917746086576456431788846559691289834103006611295275765645974703286766926765006505145757825084872727326004815401939141879078970030367764002352008173025168577762082579293357972184369631314094352518048597937231116781870094797804060196699523187081937250700616393091878875700067203375575077910049542558109455240010518690234301682605102095177681424485260397518427692134982382343882709708731036338925330644727790297336131524473616503206924816201588417674957393348467709871969244103040051695418825218883155318856357814023053471001786851543452626047087804250835152908329843330931895983451154527151153073933644732720173552849458159206902559916510328401468455079301890658142699963051566731931694723990284137394021015236465043642559676085961283432127869214762697819823063238207723676660706287653852898203731054237587941985179661822779951074714969099649649898712651698405481259165980199720169197754491913735072127946026557626169932664064383837228776933752714410848033045469121303180077671618702437211693324904152892922857061741494879762901195532402005522424450227096011038518527702236739696740525492757051384348954282812773612800952341204031521310892889235767867625029006029788621517535512531229597885536468658035987096945485614418222062293628252248662527107198829968806854310540331982969516451336051569811982040291403223142651488329799338662602679607049723870600130518003070173153539000805813843862426989178866546474579789052179890166197439162186277327772666642094272080493831795776046584042231936014229816806253718865812447925847674268862525265218921694853855694301364712094985469784869003250915764644316958425284455321974533725271817549037731314529418394101539834268537861423379330841852847560034639915077147819623514572328374209431693775706223014982551948513905229386461547506809936399172617684390256788657168880830193121529439102016626915737781075183789595826079044059073851037666865237821645229155860384182649521338548376804186921351590917537203979587711772603391574137802352859754713607948841191768742876253772325227648078056471737353597835727514020285381174225591511112193341601415002201742236149798285209893094364095722288690556264695396713710460055887795037873342850427724980668577346058744518945708939351335474936146936262791757628365656804291739855086517807578110405707145281834906640986157833096251950579175917135084899484347050622168105655352784168135602657217382884754299614815322139083943188205888110420561965806013826314241415176154221777539702567232133330657951643190465802202922945156201742443347415696276056573224585611327361455796203647813618011676253996627932531885855634431861916904234880277195794462903402753563605230538009596271192426839103200427315525262369574493459603334111627746171067193808920240245169735386571706352542376154675126185038032718784637807852199360674531607401392049371806478030991432014041976314952181871011150643526204190466470355509647452542873141527672909172410738565973558666634508641187052468939625034607374926961810669630603137092352197633894442560707891932982295646753131054573224426115236697151429186046171222707059759204595790956412896804991853129987589521483015454936162759448252257793274381820512719144145358923806906673074506454723326360096970819068748621839714709441809056075209803530051121969721203028418793650696495837336555410020634287915182852798276366051913195793057715319886445668423638071930468537648192446595721786334288415804309933652217383249533584695101526372847833915774626748887038243842136062534643136498222666532014240856900068905050001983232912119893346703218113112132295807213340273531495815949415093599066232812695232058605658453612285075194341985375840095011618110356713271037088698561379261159900294419583171220580767972402087829788552640302215488352100721052005794118791254900283447338289924408996997398976059970957475258575859567422893034386272097641368100342736924823891098794844448993765051537864726833420131705948350308628708608688756875227310921460476070907383353972838513310335057140573643836009324219856738943424869138179757102666720617582665455172554294153648493432063760020241195152768246840900747385371830496906612491930416983210149122327097413157423828602845473233978027441808843196230917264840009514817531116132216492873981485253058769770414778483458796338491811288116261385164784697056663453823884617599529953393379412449213164618976537091571684511504575405383585612224250329330598258485071382770699488649094983990478328421448088620830457390847720081840655808550693588879433290996149711560382600243712416791618314573314207432909929671141019531393894466581735276620448429830945953150391208014729610757546218325746385719293737107590912337059155318195959856415861971581391269806441315868232252557588544445374675214526157834611233582211050294978275045216316097639128357690948369055256574449717830808628808559451729906071961589411924419617426850584596525540544000427499070782465015444146152641136635122956476941123000488836898781574206804365841214833255459107168751237668466367352465854483740921859064107713865832382825332287540457336718982951889333241248781844373618857901303381914071102812461566089560993516369168256978426879368900795277738214392567034214959402647684176690302496236922112841882801605063596328310726546630042394684852396564219437585613047178534519805955701367962855674790025797386717887574395337042596795491695734887788243181422164840024124741251893530166524377053667072454263881080513446859383312263331752810228312667364607629741647925939527134630491852980251930812077945225144361890733355235111830057160853958682937925405268030364841473143208058600542836558461514189616474648880580384707763583830041019014534911928210691115837905894183513005051177049230116438613915015703097759416782940644661262521441895091072927445507520110524814279760351914577402521449156894973680853603229257014213562583684833762654804236534162142154336062595281872516988337809662956166382976871977989383473705439937540085027585783257161345413627340822431731316227251909618993025478896394938595284145829880191742747916206429424879089791743272757649120298568472179612722389255935692470666536505515470865382815980088110262561391423153652622108637279572125833633080559749406808343467697735034562162361013023404062387395966364990436679416356817732194580602908860855323717633313367181158119170211333717706302628356316837034291338225457746109472278589324665119786173997162581222492162029663256749421178535534659642829965469441720427118306153047453375328781049405098942553877773096774474365920336235674647712635643372298393858892111091968790975074748909132558740506095972878112223769669346272017346377863170892964002205712273235219934357972855290199837668354662589553216263576530622355484373956169605758184140866374572174589896424378787953862571098240459418114568408811303590104194863450007963746093892819946658651721829948926190590515548769764495429526279615171020373218413054039052039250405282029473066939180769579534209734617238182178049345484564630802442231038445234823351089209566449916878504261101830694512599875070256039889288068633561559270609712629610090052205833788861074105934489691327188540521666995235148233178515501198722396108816873815589357914579949861634455355484482033879887226663548726473427441117120184034373010215072459640866201459053156198287344783152535737747421307721713882895800675018915205018325866664813076691130437385594037444584570845243345179795372002850683833923809227444455372483370053510431988178967150419590143416778561965452316409921296517620210218635884143568737170511497273464434943373067835255267604131982838544382248186630130360213693353674304915233972091685907958245541844032299915253622273720073356217950614962858829178251268873005070650968683097992268808102912332338713781795240662794190821433559267555139719512603542558378825466461479001774389336577498261053330814179695435967563075980292815774731251898862240178803547544945954478986609723325893128874423221939733098901525704846393246197120954121030638278819101389051739899623700882207410397358482043703763596517713987322778560879994806746835046632254654791679596381748164141675096161528346114735280244033270023392521955734658861079389411335824164056325495288863407938288445931415746294073070700870040394113096514888002115502575046059902739942208870862113145407020101656438798698149332975559148106399801300466169825560835709486084228312099261266504732922769338503494549264687704775272007957174382376680036062183334303617978671786805776173978969571329089603631292849007579750640561060175271866964526219049710176651825715930187327898721125811456683576869587716833330831069527339199277173693855513969271193257880430582160880524517658488752851341738262918313055047169889128514315251762809564645158484971598728046542086905458649839882550399099098458936512625198037444740756970840848159688584881122881603389655180349457848962178304072679329720602003964831208269787209616776174764163495135741036035405930176557627937076400033148934547403702949896992418415929733928378112786551929375150314211111142715855840578995779746844505284868592719777586966324104857367132245004494171956647057462228547583932408827460477870944099569460776207751448570758371675300905890260362102807866175811308358675549407737175685604015538231602868520216497133904183529234922133738618414624847535349366561454299828074082845154406527326563996456143831543660299205789145855249303755020103401407121759420041006250276880005372080322579053551593302266161166676680081237153471795173353467833906615412118571194745042755409957789607499542879799597679648974112521377407676447030763435853128756546077854462980940544785019847443089843299652999489962549394571401047044939091187809569355577892372950554713984023569280857701840852123654093298526885217500999728536828855278965136481253791486054778825045619482487859278154660367890594227201103149243787621836914457626796379723713683298159284608315303436906934427508691948023798155797752544265727579368042382403172501251931528087463102787831060417107556400676257031008872734884248616784566247844062745679981081777632317804719758843779013808642918909774114152563225444588276155806347445076478445735947035782938400376171915269237000990710451118807194891747918548410677617116124944721874473640070262715052919882781882642823133208767863606820558074127981018940571105839214086255339722213730012548691670887665068760372218821997182322062749842747708714566842271842135987072327686522999424139189052223476919903881442539048083022970242197362812568864463340609686212325330483067825562473784384517449467617826758771266019924520746991053401675125414499355480112712883316871795723360527875508073736140397129418272173681175515555616609308538683361236894793911843319443938693398792573948684599338350526578313867065346370589394327513162307334177759653565987626706566853167196643267135616295543003970495230305825774474156349510239942518311885225319062781711512516424518589340744455087164576114681947438907468066185163179314390794040709327560790177581256806786668036718737228760187121216009206894779007306477795439647509616930269313884985656629873667423719842198664583574674878587413123988454974663022880941592188041795193973119287402410440031827340647221793007905120195084079179957446642230993763011815405200200323885386999787383934898908547717801602403904885198558472311893310286015960306309578518743274993951609372456813824273711324891702752832566962003121336342138832045250833280794931335094624550719114846606576488306381279772875520502774444638760113851257773372587626361606511445103732075933304863419810403514555955339966338187259905314267179341707112244581330883646866051922698829984774516846256429898822002583337789610140138586640030985070827054953745143443109700555426824427268439383842844775919723142814216630638857469236923712434317963510354579603886586826703802603303718147075236663583540163751762216010977180335866509639239496844991463889811453796588018474731526278757380855836417379681871045079253108255655140526965144805047652833158824938028021522249467041334441653672126605860820219225029404769428424559035366498125324309112226668943487331095522054187935358504262448072843269260297557569556919604795017853563177856741009053431587110624617035979072069964977154224276830643662628126877014004445690361793993031054771869559343849300678495276576253332785304483881231251398181230317639339511582203086021725142991825791692268767341278940920367111351826709440573111851798580377040186846209342948413638214268900968894946600284361241284405431889944996026065298526320281599807610878754713174951436202204071488900778103234884027942182276334617256212083723229098357373160337775457895688717309487779508882432382740624018488239770026224065314471134366904295708126195815835372326384881922060952345483090849241043328578404873288021257745802233864483021356245215990340709835463121299697616485093866738763364619995868677077376331989656154292843708670159744362862721908013074773428693685627453313772620226982150458366239445329476814308178228110016472578596092611834795272717264325059651303215495548942260418824783840105329864946881494375624915723526716258660746849963296102658957579789499641512604057618002075661961782835479503005642572158153213657533637709727617134500284262105125820011099268580587186971690769309097823381345859155096837672033182210743267726493360192123870726290987290734989878963649259054739530839317592299594856220978883371179887931101740570786718779932789312145336255917436377805191667235374402768932184969689887802199167938748731615361174736705030649318533582228144880340857423380717937168480837066735877748722093036283386857527239190375923875116037299904182611886706062284456641669916429980751673666324534228062727676226475205898819976775979248198726645531596253855018968118367764825695920208963185534048550447658049009592156213769605535305146533927496023540322071235197319283536241914643624391623832198845829197015414373824334890473398833991182914703507941929244291664529219826822030376814605757412091842047652857514515008768060960720019707660967702557542292335165422912739815889771363918405387878990719785924883670251299199268935186350377838209297825016401633099960429936070443684261039201412702909897830300415718955174205135922242774534663172098843664135735044832578108634521000155055775121598245220858665744449382790928120555697023957804860804045228333537365949999975836374311577205766030334126041320729244583066155214126860663887942717612189156598597081370953484217931258476206744923973464424594153744853554231099499023099706410079781686273711927789273361019109923817925592731291661238846583084710572738393767172929772889516617178568802662709056566476141401433837684283238029569186803523190034817163402314348411995779924059381301921452793862203709720285288732148048351828817016512324953176795585043175704788631384465558554562897517570517019083146819996177749124841207467074500153960589846376129220206159950447809873587413325969249783168519052741404772044932882459704189813745063183571772419644004355815690045452960070937541571751918722877548276465032973458107188888244470041492142665695346574733366220848924738317493015786512263897771078251631664501259765813070798441601321547886082586439490253344887802481485670754280615362560855524351912828257253542467636196043131892893390623537616594846056531172103414634084260923406931973071095965814213565057238665753860197925809202546761913731477968574601501030962225149807951175801584997222496155134115736511419601636809587371481958227703253263015120688914101083233294824090920558135375347544199908634084299255940884058443047296684990463153203479148718984982348507209066882651973169767919936118318840277079350678170197393846192385923506252427900788409488214671978230363587825233959290621856899035048629465395781281587132618173809061254593211234502751296136622953213182876623580750483650684426627203429491394408171668016517916243542845665479199424806015524993062686210346066302501936833699023182279108621295100339174182381113094618684200441300024469164300446485668616434584861267227252359443772587419523355645772246555381842383306382113466406899144756663786625160598480028319175972441749742511690021909272757496478660775920987358255803773625449907384784241799543531055788235226055845078044893987648517740515541206184040932993055082870118834786112315356871212849122511336421375516498399908960387830982921082613961886114349541451020592293133585993459124534944102638592462214767432483208518317071237892154125773968380294488734670820483910828598259125410679639264163791168714061777854780282844101137398862578298233781231741744936683184672027900658238375587203494548347530965398229307192608536234441300007047995361303510256428586318922045939390731812373382576262731472955935175658332331079494066893588063684362908319959534958719675373565574505777528609907212533537708677687294159558244381780060062568423151764506572241423434691903124426885116769500111431453440559831080423284355537545237888552587946737565933376112323311957201995885132790388039457556703636491276837176177868109740491363902863240672359770772825005012656981180072858752432351819685961555260337927086347186957947069178440007623571227260398318422339517567355132852410770736400521015384894317437684447241767609045851186643171103661779003717644098357862954641628136638925366331650789466222183258140357126846280415131240910707175975298946186801414289189951160767013640429470466472295202314108989521840162790031366159840829378235951838371977121577780672460040250175674694669959435374606298638109747410438536258011544634408940200114951206041756594561189432601509339904873229946979062714248786141155597506358876509593862039354027571741285380052532648613490001725472021716537470745539932761529050972273426405434156339963459587791533894990910030223647261457761718887439588621846833338730276804053076880066003578120313869668929359669340545876336238377515901162292083282344702679625897611840764719431363997346350201394522615893384101522213989802908891791282313845553179056098508209593964389597349206378032568080658410617832542328169783054791598137754473952049844792028347326783521072555970180685013277694566713602568779372649927258969085599153697793435329063686166823313978036132521015600843065220463075308318174578104667786658538359028929182119849815012938950267434583288972917936728012292787804972665709406187495594495247166519721429593206433414809182255684271488760637989725517945398743941438297199423619528630580997319171913047368389217620494869766834230211903776641401122240201460844111189847974467103512508032077729371466186218622535577938476067541599011101912864426627147903960533352433309322665565985075968267810957355444691581946490874605350781093075085580124649627634022639211668378358131734529967884828319528523767532402335986863618043195167413368519606295432017411608674413704229658960876992651167316213797253407244037655132851266123933734136619604363534614927844787834023463414353854652477041864683809991158880347687703069971318628960235558298861976156045400885329112089050315291234846973178511297804682058678030286932606488127659490316485462934599531202336563837376372777366540278920671982053019664876638483441521960808056387355191260356748457925571721055733512883857696063519953286273420878375855966744388050941433817400312475760396721998394277801891477141862811950537710884327532006332250354440534565023621432607445268003395999045617184686792439413052060805875699855416637897751454595955335601445506775391057207293326461814974649413913633487221621385743288465316526287777386899456392223986501947127111672555217332752995459203831839537014967443164773284848247093850595465308445435632282736447381431199536784422307687731138942109868707733970065939419132686924396770962522229679021897329602131335316215806534353461358620948982847247959849953326933187715238533079558659056514517509743665293656008829094199201299485423347517854694003865126455977454966542037146060105896144300329447372596337447341004567448887186305453942226094534542271618869990242952728080485568594477633080361748257359487549991032279393097922395041920768768394618935986658709010683435168628354730805788589093554617730182130231708263290954339773712554740432134425886992603170525646964710717347429173050306651169276823467828196809208549924847011554911483511677691050932077049988406991390028085201702843256958928073989032044930349317762044444762719567639111740723650203889793091712556472023355114522234133789889346922903305789210890235644104526378468798882820878219884429039672917679101193255255473369563218331785152118643337801962558200089321673410658472338292915806608383567776629414128808116525034373683858772660539417500433758543714742020039446733748369148123948886475902654399553374610073071606164277001160695821747387796517313457406481766897604092313508383312728927528416680368784870810122167936519586340829569965695373664024907520625741031827166943489526115980069876500847972542414579957923610005472044134941957452842156254571551276781204433617143374951432224354689382002848015735384565196923462190797497953113690992892922987657446941793337982783809445945423246390127081483065843607558016741454184790358849104207557513238086895603910072437645860344768739616777766197112971163075673106336124243012489800693025780030477179732598689026113400539819218131158266466101342764936476008962676813803935289622757830271154795851552318536532631048590120140596738347770607281093372806706825681117145538633118156449486375329269943281869428190998765459724820312525339735833426212250573614278195488401220388181968367466669960172940878544156286826909640717714210313404855817123429296792427708102654247055377302568049547240888873856516778578720278085553078864897342742934968094002088221210357118965235206980485752000578355205078810711523712225757070406324499634709162924901228307883998062182258617328929214093615656145853061336287130780780345971822330693903432259910707361593631055318066971393458781874290316854876990481439850057059339835118517999407056334463302836994314387155504319655504586494884157985225781773939158732296974791568060634247419678946564808584953240122565048508231227429852344652550058622340457340796828422517109755944598801876920839531147344977869340674202465466099424582438893627782087711307497370051094420702968006077867797045217510622178475797495993891124976206390922973781616754832419020082819286723126755356801341450969540205900703635712572354555618738271555254533527832937960993843782011719160982163323178732414678844587617368921520327524036760008032725213443789862799465750765993039784892209930606663935194138400482424848038593765212881574845855488727500091145362680159862302878209925198628202572088417717226557140723660396629293031166644503027333902678043166042333274847314687612040456780040164283117560696509160930011070850236356999787052644261582778461113993065199696844072658919455596827769478903542177657411034906465697815617011574648520552407497064531011038936407390470342554330012456675048606919025634196799510466284773131696015328522720558498063483413789888900681233110547423738910323284764230492048396907575314600146103197495765472031512537565509461889811582267030444590606170196113426434510460850605270484119970878930674412823615862173789010415877619501728157369017207613851628601528801993864298014587371635504270726309815864087323299498732989362373543847511885852763662606043120312217113554217716524492304331824489927721996805126926648920455926605932688281838474334636730104657921668255673204934408637531773575187965266928266221209372770628972255668251349454094896936550023277635582844347716148356937560415892023138033329535929589675843324970672829643796917112884176434102694613003945453011840855028371828116383461237449168144339508319709926555838572319506680462673388032501845483166920513100715779789192738405410462666621669512435608139280159985112698226150489700654785739134197310007606054084543112518516124828247163937087604947332488373041430212753571131416936829437280710393491273407375570840010711749733928823509485941744441048053254115894493628093193909367296012887567595367435803803245244797421275235278460267144118590515892698616288071652866976091762043275817613877046164543838910722558969931946987533123037381343631635944137457806877463822575246018614851539192724839846941560851490322937891315809927006466299030535412219872037159782756984825676208977453778611724381264079592495907311938304428178668913978316255897809140739320224606733841127324627499368988484747501537871713448527052721779185869192280908119312469126921966280142075243241112413456150327051962188227560823920523790874745966564330641213484946339877119573998917451748524655555778407540324117312558387679401884909671252159671591884831057694363317204378331476719010887225544850580592974601419786254348160554261008415739829183322879204263942453999797852809851899941496625994967390803766267688905350496058530071260121390602544531774383692865848639920809569536737014058397028038206189282597489356173405987890896988463516645038368031457352585257348763298608881970397843706700727658172817253553703182850486352231739525945259764307619104046011135462674773724350622127999588368798700499953913872639628966050444791720627001621835778543254397083619380304993199510326370187343574691351620901200156265516142699587864109995827265193007368977420174528719731702683366470186286175197236928299166313124831515300882355470943527053851987504156429814928957660261779816783091468919375786640694816394115330372173706205083324442783150971351229463118460914044335045581910926388409370279323700399594737500985138992981441505183919911041553618593456217675866196631073370441886826780706444690064391227888279042034303737483238755256133255964759449729070618334246865856243975932401573735802365393166450066707355352512336095229994065129581681578036418309390239833457867971065379658051640180739073045632886655693941916804146353305480510157776431176396237979350927570254716871184220144454904017263724743035275489368312979118884657657258615370557425830216007604825309240583122320628229437110367775360864005001467414598156816144876366168238484772258127912101596775031722993127068012166000646479962565076023198981848798349346530888792882252085934074792250367575644981573884367709778528636284633830904804496839842960145655316706295869737951026301032420036043359573120559588038368609644695500400252124560118370087897906938928705465505779334806978081872220593111792853890159991236685020393859348079616330439144995437198940713754070193240182702972191778705736855921758763667119183836782780364786438418162030756835345819661287219274841866676217079407309650365580187730235619325559621958234913196082698490600289826408914219267587888763386122225445614968922685376559142519171171087763976797765329623749522351775494520415858646061544984706976761128553316919474239274777287885379273115442249319176774374669733611905038599996999453563968381871446958585771178178272208024893880935329354467202405467923619586260163479314811791542102940572752462547751492786111348141817586854766050919320837743415716656049718208875787646079583897331656151877681896555442575290879248068655319257940746915185221229326886949871968214104416347072979798800897285441744696822451440062170085407954020377570698706815326523277675276210179963410869559121420439374046125695552151604188672104277990054830938445445792298441835256780605194455462281623797952056583254350644802462000442261646583934157765889363608236376395521380009811931348184925476534373105007970125313866581193454391475914462515414976867231826649662548465964321740427230165418754544362367485372533857525173244834387536196486713412596081170523919940025926183046439725763550016200249597560399081175495883996513899076896133423898524486449676520502542869687766842474880000181164661023793693030541024933195193262945159694575446886650081522499640502925795789819750890937336027439530089018130008785477695778168617195474331960704215808674165057938839911664947462281502852122513736796277321067667511612366356080862049195129834007479494320321501710391132147855041635157176159635937185390826357874720420929156015555716693684931204450774316716975396275470972401834259528065748226368383297297902102333549409209839425604639855212226272267083182200797108458258206901188298596258334846096350372707230361473432193685224472417537235739317490098990134773892730545721483981245674000823896745411529258043578120617125579892643986051257811338084498726805446067536783711926390115098891281244826030305197569959894407982763263660382571242959612716287120768688586467065359477073322010702197576082292588560453848425335333564994763290659887792210334663019619843896972091943771745369032874188152268020038526736216337319444641673878544256755096253657753267385215364449596692064600112141388501048475444597102359430032069859516080282818377549793563107333279177172289089387962349788896883290013983164450624924020480154192662353595798084021017081186622717200930836287489579048006930862676199143908618770726084480365845171880861889715526324273715436933278359174962836711854526474669188443508552785619351699190351380010153217123951823298391783764943153780592433678976357955693549954293209592587656606809305150495737335661951547621927529898095074319506070195870677682452852272443395836579302772668447869340249871973906263951706701372460526838438262692006097805342652552337966804588954296743126406926462487086683701450325971432381435888718464814575814996618919260443620433685176176241931579238021740857109823515417138706331453724647816180130188544359009480859832692641243349345976921719765863238447664641115147701056471031908621285807256979137653390776472429555014120998415270968461411458360203805708747105796747881070686063549557074122328131563595600840409688353660655567661859966230597382970906252258336650047001469661903900756858077597392916431280776614592045588995186861430262118359637800201819664389106191395509463933151335840482488427100434768442410269408338520142112091402732638545888937188244703767736607236376856487478817666303150193096715742235985376645195856504251918153937114237772851651596817033143164901082019966913073270695872270482375147825986260201321683349065921312555805908587129001277603622266243317026862877959523375769827897779400496793776498340218535180429793794172189773534263899153674725264684414956553934598628883136267679473031338681706124286805284543273200153594076309422422084741223969053352514782355881181303231948969658749905528284734954127624938194284173922754336153574919097339006105139719102497740720988301884444423991913117015020150424874039307027015413495674637553217912705270497867727553682935833636544733696207379906434468307658501558920933685239907335272704183713731949815915611137138500442591364453506348923358011961933602002157638808695155447456175577551292379405131456687096827693643761426587207065692872398134922038573474360702051438675911834106883206356992321324720672841806285303498656212548303508133494217119792524562842899612502838491961075744914920088916164747372780420780194479838661496141163382123678892501605643924890073332430348423417548758674577337401836832441702502843562135676138088547596935428800305519490216902209184625801188005629747463762465739832899303022510719050877181898450773722413834353108586713461273009081845164814008946898794343988381949068060567849629346072674111869900812584253981484998114118917457948986029965073998560329400366734934368059037457720936006869451565441111683136557687965086264341732702422898455128857861531142437839731493355795527609132737619854689262679001587464063432819008092409780348209166335490276281083286381278211849370182799750270767518530141546394419532469302494272023252573617397031505174376889863549348859684804009001067494755295036348238185653938965502395464458991599668929759653122663790239960536182360217740607171802248730512950211112332376077229897469159327089429529439008187098774230699213909714615588813979594420922072120171393905568060095329573062621674521695855985822800345206066510302011087545488494346140618233084375086198231721337523957707822649012316389859408409063729854169086912382342426532786323692166752872014062718614711739326035939644188944849775138602607139391219896611283362847909277206963518572170455049613757241508441331125593070229734389584339835226572360375136113463241218350497607916123097294361675050309801954156673623737783428172345501259901168206512054209924835930046812130071433547692144660829712092553150508751783471465013063324681650637076280686222678970164398147428736955902813298083937518533698071208403766693321122286182947421181375525039899007351317029094043559383469533059890344645272733104145470774979513868149224513342909309872665175104709078660797943657622841651649977026813074323017883875823341936194425595659259335886748301541754057785316095361052762586421020848743125858965633373957773196448240912680859316006256817735138403860765588039776343552704128265553889206976099061526206261409106231301379886210557743567581979832968017932953246660295866778061370012487312661623469409393642742849381937938218360730959031352942954080137352550026922722875367032401929661168266688755396818584126487228189774087219844770552078145251760845371962122997574445284663927100410484024695473606680376218013178957398991982515052731244700747920237927748228143135424764368595806333964672093514583853007726418563983995571364335965459513821757833756989225467384516067203965224535021212528226533552998229156879400210863102402222056257791631502636976703624583610661772761712883370139442513115984048429172277251049257408498116684465790584041707968748878754575081659102065622036640912716901899392879423017723637309147020694300962966707274223013036492420392659785369089865137284430064217148556436405253061346387810650075841613409565804920704998305524607191449216548152212624486752428651013758255072068612262918540053147734824621716744686298046510250313466330253359560397691880164587594037970540246548875307630716552737081271112412087589538949489282156896242062754144767289886905054506874304238018197869226657701332217998211381191982109529463682406495891815248384606120157165373541852194366227510318193244804389498734637598236323842170097562936509320045933163847320252518992844134928252502309491526312434142783123114591924527636023709924819192181199142778721785536952889861687193939005189372498948021303734123143379291124957333442039847087244265559089427528872189611571567803116912471439271125842887641965482043608206486210739904660073386014835898172720374173807727665532095277874643621992204357615632011268270268363760851997648489608062602929197828954009479632237363926878359739878721715536097605940118574074798663396343191418982979799104966560446234086215322211814517345444574437379667219510571008711704215550603032388979047519986980640786175453403151943692032115988434634919884786805074026421955704016593961294341769678124126841220143654732374811097697045868519975112700526803914391777349317742539600077378812773399646665323051366621256937841658689465400421138077849380784255755262379270171441858282680255659313777705934898916217592558224637290363893343503833188281031087416454981561617104728081667867176164687126100015577749157999997250792244920860507906277858047323881651464233596541101890563283180163932297440087323126939113277174312340237383191217314451495086736632881429588059811888540197628227715492472910890315896739706225950942333117669034445808769001199201500014507986315813495857319012598068154817597038850407437435425707143373397721989636604848698265519078873308885162849508383174101219670249631161643874541249936600466923631730574852615665582650213362893011654418550163747981011177150871388941108961825789187008248368545121948152556779101465785372166343008386749384474318027823337730466366608971875150325195997396057105147284477365667865842633320588114151161373096684034343169359675028713458046034011103246935542487577179574092361956748550018670640997824989226669078403756098705815051080435642073466104869617288575257516871821895636561788208200287012783296337816707437762364253694501187930189750514080785076098683045467322133906152230714245604296243289603816576665059354746049140188707287810458608903416509805845041563398483415652892522798495847144471053227270869422259937978022289526771629615336996963955844727683477664574186841633364787400712923365377130768962732139902070916509842815701795761962623999295411941210882698852542353394344339058412346546222253387165410847473303281749820663626719992862780392484579988901834089097507169362171791573196036870955221469012354645633403398960981911209763438100171405484966701555361847440678733571864451152892930215482686575251053801976084243100375658908888276359553291853588311605636640937304369591646877320971634278258356216056108587743423659949965249155405044719909915726253660849993388275308927437912495580986798911767542128543395371331174540296626463351998170101000212530591071255298110121621416391196704230338194961392624444166514701541370848819790372026029521788630087191721098486341221444118436299997524868369600100521547459922512409319707132633724116071596463756651495583142476630772763287458902359662688300113246100399663695282444356833684464945941316050188281381093668921867970075113871721166537803413437203227730790051483263485384709008131161644184434142648137056925139044865909150117586175144015658287106414840195200021306227581741007941800339037988489377161158894629424045869924030139012302421369195070049288833929203341998013019256001708284627188176909111050526153347967738463324090470851437257938846368310811189498598111340732065297123193893468932583055229095103776926918423150156225918065114285622611168888565508158150726547765952190581909697128395315301758004699819363630077891214678321313116281563270451754992956612672350517701641933052936139644255602375298542811243024214645588051076232347937105589410202151608143866774318570100746979144822877437890666788184530218067827060929510615514895734740206092079274788175941962814429201834723751672296369688064423055232342894289702030943055428886727213381762446319881850700377012886058179239015701654544149378909851711523856904282932431697130449105679698966763565183962327746089040608050299209744190052280563185131789685384819515292419236852337518532689655509176740384991946510517856552319145191321235337939402315456221022811768567575502025526985469834693484226175633021686903704040077601066957943503550708858429283003344859374974777173428762017644140167151257939467753895716541947187390710768122930053778437811893611927512915664574464827512727572319141575236080513520306025703166532647204098314307479916664639170552360045290732823848486074778338628116616747299350016998600047844278725045875548758347973772186925603907371946916447382068594285612564413244078222534958121190534247966261865810845277251311111399160274246204057453983782717503431009819096375414390004660545621432732916959309707848763860074235143806285085876896236072478818510261591411464717928586626999218606431364771480569297337990245026516147533590987621849582291167010271166846827322594593495845014964960461345705982665665614197186550593140598874705788620264415303260393687385863225802235346007275649605197474793661464529225054301710624389016707392435009287608799729866300213518288314946357511612211952356737464534995469576503798974168255369446954629290696980815427418952125569702164525729805975016803162515335242583295741232319463640121188444604524679704224755265500386823489674882142984910088770389876175572652583005024080753624531210043348345858048516384203564343615589645359160649605058584540252135008919850337936602189544074192770186659211852083760996829677834621698451999892514943186917214803005948773882279202831892670381071892937233313220601565105692410027113198353301996825154251833137104834751451348273485938954038048605132844361370394189114369267840925159366530350841999587914014079783519907445897261987159980018226890163581774086023787267919828143990504846643421680725442397226900544500461864407455297313995486351905972911938846271637460675437597471600064340526760550157678531771294640792239079384953176968281813247516301715529173478283857993683990502286072883139328879539991261373102227088425513299380177706654916156273600582570562469475202687284775434530949827488407726852637404651159729488696910829938966914714109787472143759427286118531931506623676326864757447318619262884775808997735197639585619814011019267552561087279138386036679890567709499909140257297730831169198153688024518943174893640496318111279430264249433274423757700899138188321965082683546114305627970570076794763519086517693186337190148624035619440937809453567741153919056101471306327995645978315702556013194528791794432117157476889624898516913317101582271808328275699581116168607209813602773015450503790963621944363719366953516038123890341365667478588532474120882828454055683999941440847880702780202933212503862405515768413246053886054826525968317027625713250284075054893516666175143696726878299376614770143767575731070707473478920312090116082675356164458808248478407263623907145007963746726383588113190896620774330720108784795721534233246518565914841710305797286070045284438430820854924919204939852817345597245040878401219440450477309445933125825788078705828185751344887385721771812641002714856130769335451387343307883678608829424547508184692715680575030517689784580999109609523041068084874138652340360783452943175070964876759282585133968154317818060205445301500731316192672027240628399915909585785322711038549984396910650155592537422805945401823253486856659164896404029231815120458783213717274971356042283929071853285553863963135278188309577362369534103757954858618118960737744270283549026947197447766207938998959090488559053542967388069512426052830515146674284800682968478170697005224396756640776159292089679357956040719760080031965968957263816115868610156521105912683460515497368195677763900317861503620838530266069087120135426334504088397775175053700606992064915873414435902564700825331352627259908648693762424043276393651860460587794773778761187159517718091306583360889663890401015671255420383539427337642360291388169187016433378897909314954532899530198186494858170612174235511713852166674338322059827462745031268186714098029394190859762547698390849988303983383681082233370094912989008023549824492191990510694258917407320782209894487687131511475354398400624680451020806968888460423939234745592806831966532878187430169542222019338585504405609635846938360011556448603708414033728393955511881890083782190130424782918833365131420691893124677966788479538990215114000304598742558813713138797046582570046252181874330526948459443974210530209662262026481985813013533275733625515169729204933680340414569484645227087248214229356493413764960900401325764786221606386703566837986036529960730876457577466271542455626725428713821816790552808772585644190109588617802770922815416437275215774486785045091587376942761502262387573954661843191654963308990901320148920223063322066798471922835937203875500254239893697636053780173172808746196324783265690310416428793693204372478287429053300092723037850460899330862455083938238081136871798373544145941793677710866309812553067873413701730995942789497186547719456288273654038467711266215705841306244675515949383751523109770701736649222242174179820927968293949358534398321414903600122457429182708669041006883578776051800546711619033585487086188831622580451941180320766168068233408237980272224053284642825182051120436707234070565169419178347268191659328666671437465288602447485015836464725765126067237340458457389112413813030932014362086174605291480695164669081526772802029053699753448912700412322102180098731479647792659402717230538541294949450951565611093938973272470635111817943516296303443740115478191189019338026751116338132168572198190833807196299713282143421184171677893845260541940260050820874206141255143523939431466637946588188406892239917716649673603711346812879281150798739129772058355440051866978571525923194300559710680401611107635057720962281447573070111091858972037432218278404760913350237615698682629384841167294589758518797745283021023884352905688316589799472133392021257536256318944588540703329505129115892781364475053837236484411513897582290807227619967594487104942187886659750752767609144751299909809910040403600582505735968615441025343820589783829360803051321571778276248027992341050656245031252540786846066226569039062063135452170658729602781064176078695216194337392684638939252119529229764561735917250000591247484693784880127250400475198535942317582843859034945962360648485305790766282195554866079577547699113856474002383080852095344375342997346365895615474189207154736459637768279315521784550339779877536709263078815937049404688656708006508055788338313105760825302677122852898110532663860126568990202535124481946691637082486985311938154771481587531224529931767242711748431306515976472804433536098211406944889595846705553390530529394733494888182306579246436121170352115444967911415742661472570195332056321462475218225154669858309619135309039457137135628214960601414443528844864546971833481245181048153045639522546662272921455867457138754917774403307026574976111900001249123850761053698692934793706307012000813384447170879070458219246729058753882672047054615175586230820715981327019975858663515805666751392634549802686863250686828755755606328982726518397734281475622764899667633939067276901110745607481222186455419076756887559586059395908460922558368803309963343346863489214317300978234852945340620111088980848762087786728886159983633206078362788711108360904181880524702083265332145895325219305987051435766747575683393049461599542722443542648816961469682435093447162655252326440557439944325938504582334114046638028004557094384721749299860218328005322951262143957534987248090315215186485723530004699931966575010217145904130851656500545454717794554993891657468944011385555949244152539689477517992064591573186204083919434225507579061196506624800957268248536063841803103152698803751880994692641923394838901000285710679957445318518418885868661197015617768312195857074575673563350868344188158888265385828667689418544764323016676933349284839192607046673071696522105487968982676734431977865193231362353305129198755857300537863937696237816446091955731655498455213755199248594008064420748896930047952310869861891115154173648785520354560057262442404940469088028021020111839719951965042694331041263911833781290748407938380278211450369752885399917163435974613969197431003946619748163482959847420584185553469762176824749065175135554050467489372896238017913014172458434825090883894617512159455138224234742544775860605016598828876606622717781548957242132882177697198954896758561524802211799101170970480380008838393543247824306183156174147766264826462356338499327839974611118658162001712152499864563237730548769027745458483696452497752149699745893895786122581675020187627626296157854613029457549952486447515425234876773588486034076721197793950416776367300984499132716221924383968995910541918231353056417848163097455379610669635116532690064847739476455315327359663173321544314590212377080913844906217160520690320944310322264135622987588888925016590109426888152816563550353827742645136480075187897028893628013091089593252924063230239180503489576339070754075454096650387088041299413045906986163795210298133066465397458508955020509956591746454274809502577610376297760604377243361833009296386328320846450038053505258788095686381443185834690405697338131035834681656871179398773403379998588999389276341742910228611316571405894364187238182117769378690593936942099320380145431129016517053677633100757651624474077074507110857150538649198820402817191175630474799275024213097440124006611688433471218823261211199323194272891919900696136197722187466378510020578515969071501345859441265329033212599686775108295722241826051210394030442697300992822153520313878902308692934294514902921323278591431845706972912311945926618546029311722086846900107124955568487023500592108741547536910900877909237252155822785369699943818689787552565179000885337144282783274017406692489326829023025244989480433462554467077646300329435722411955503727206566297965355275807808035261850071511856476489932060144765939893343417490677767044941715795881117738851280306129459868130800138614825664892452052814788676830826321804301403305612196512154181936024946179315425638412547530609680055364158707244239319428819166528172336135483206157868973641276755331828471020274550895166536243444007438574581566617071651107758412680272643070795283329808433428664842602207704195615372017579648415503866740958978307892381839223712056716521604448275519312811109840805730705400634695553637549472072942929599921514158090096865400940423892718412725105556939407366308644207475446444728186051472473497566845654829621153505926452204937398876945635175864364284477316179431084547357345595015938459312768804754914013383295468249594897142932266624487065534750298298335577703256309155087883451223784062051422836469842108978705532927077553802505127690980226982799345672882831139534357825007702319261632297015918697681195577391815763508057067369925487394452415252568895572506843054576794641487814133720251380654557774648802825333794554372916122768606057680798351184958265511440073134295313062949939032550570730034392158531812634185484543000734376383996602136030352900260450974477691125300788528738717785236145934173968346106005938562175648901346813539337656254529381394978156404797845868681537575753493477644135613812085233088052695189205761109705544224416305733017871826611526788913125414864548909260474618225764945437925474092074684721458524082865744148369314186015394560141807170315878280867221941357169460818344345103440871202978651325522376390598129918095664644154016301070983895990629260222516734272871662761906225345239374975025569866817766953268788623333874745549047182519955654271420544963902525294532833284499112559781958193210419383180362032727423953400774997943247192697333353327954011693423207967451930016863022408718770367611537722179523173417006830638300164558951034730988741891425258606959258912039197082235472914248065038575293662806999088142772726941564040476133151734430960553666188535573788124794857443555183349938190053943874733431866793406208582012099121766053821636987971291165248312421194737187401135350598571571488375961492744441190560469948006884653085801387022476796733426796319865653231393370059443792171730008318813631280471975272897903219652005831663158412700711081885950378789230433203636294274688423166233691464709380737845028908308928644151337211491367779073639327260603686221788170007349557853301724658432943738660254817879798016457647951008466898224695532525765383426283315322921052225675252859274001999424115977650474275645829904532163202699939021718101414876947097423112992213274130519027006775530923704921895362087943661263104545286403315202790855889455265983311754375202634099752782652119438728020407057803734774422428380140649030135963505543309335939558659663712169385825225529468345144217858034410321913420862406677982011228463246224539934920311709222189544793557020426307673352096495752670456863154056016748267787658130181755333720810213117383116888399024961871498553953206628240355080288926485731689278310496996602084900317740408109374669394777978141209414022098073094827415489859917399849556568727509940904049686528871888751660164749071281097400210342848880268732954104957159549262422875146093230957626811205933859170165808764620223360002563322584698671070795306281301743119165019373293619289043696419756099046657439216002442229709443488409903843635418626411851763323587203097981138495862514339661791362663139303804810635726321853390373918260365464229907771925541092459152977171451435028936770128405909096868570585923310597166767483600768696178783622980115967904709902099063671148582466147923339122964424782968254810883695498343985924740419350006010839034543155588721865936460976273302458602710090653194802887709543512743825045597693540340577403854131743364611523089198903113639586895590104582193596541324985099925597912623453028327806153553768211746657081641642349882738856452338834243012045115685399329871362767479403144809678367074754820787416523780564451284049090883423591153865655710255766143572804397984662066475526670978370589283550959545780289423223467655622534081892229316965910593601375600393680805584193728776741658988251964697469609363705408665017579922973167164680981189628614194450113032859569915850206735957017891866197729894120450879283379404475963099869092126260890973590116986528767241145909584303413175305825942885284002486098621232393505276079582529096805420334795161790284548859510264759969357705736966466630576863737420184346800063724533270750381410173922377190435919725739123756341381070659122894072475007817768615271080805551242791667858093359476383667340531140057070144403825393489005788107091274179401519109786393320196106163791481664899356992772162414715385414138050297388807736663945082007531353659105729225135548179015407603760320040957530373401381809917706198772714284118080637395167553501155763062778959265423113094040732046770224155313182217654249900735812666745874709424269514761547700483501171662341464767479473810403842750528763927517082541706767559801493878260563695356136526372660134055942557943267319392438341165362102863912245867496205372780385756870890954962379022778772396116749178421161471629047262892390055664266629488835701712679993668398943678999829060363779850591219504223300272075257434568172308244076342305655342413456396406698040616877344485403398879632063793565567332212566516381791738731947718943383132860408943954385248446270626942951663449723307958054054671325524163797282639993760794066034663432621457409017029662591617480540231471223871982728500675177179925070340672754302635012571767276854913832320763895787562218336122011340711371786659764815315873127855459653023397339734719934353335343900230909105271687991602138787838722742640169114052615387858768271488192117237455096183090254694724533022743039465610382558905669390066211909640711623759493730434050620073676961172896728498347738948621738013688479470227688979667762664890763858891069376571132409692716656490000126830675328834174375962690810751626500323284093239154044891712014120298874880366205680357038810232489645818639000494942916439393133334776219827258723098942793013857404396292311141551069095644516511711639729330924094485303237970294608672981614531098372983523362984851536116928993025153813837402428548496768275708962944286917144836162958226807929668908649784382355224156228771996124189986468754407975965768482118218341099529089500715766004420146258946162443038699327625070198384777029101346041716316249786899641619308131387314525305832659483028958689933986534410959306822152227021175218687267464988224142473449253610783425805600049235894811096862298068476382613507780906105696923024292410938835167286558723748534152798952906632631546172029515961640794813473371184657649164750211636801699839775607390695383807610455535869186666582662214463239973846684267151238282856991045549747811555565426253593467962804026146800041754447662390427996170361305037189444783439638523954682069783398690782540491934272319817204640337257259827641008411957188662165660859441238450579139918600510010963159287856657999813924293630200683298704140161464559942907408130993303252941244216742589574853712438566668608100733800866395016685891271427805376731340140433213148430125463793133592903365181164295617045521173732979196507833556382067171866650502878183709876132707346528215514545547287092031088803315201840677685771579369975624840740440475201676415180346077830103404658947004030562840794691297818468000902937723970717610238547015201490974075570426968383471134717518401114117856644378253444642131561106174915022833928836259749717441447869440254073939105050691747098445038672065384864576457496682253687481178313715743198478817304395710490107598371631486573941711740174777261931554392148058145056253527939202777938334985500408167511822120829633730881162663691793632140014501556501554766397083457317829587284211327402721387682690673421549373856892070310229501573383305873203606894152824394652993589935464111384044618473315326002512758949353039071058232261854392401727215058844229893971521362131791029485103670725608584703067005264882180052771444150335367906021240015027263966386379347945412096677959492641797354292291550602335458824436322890611883758250396983992490912819870179842750900605391091620316239633406025000085801870508648945067996379812116097115061663527658220037302872144978095708702993236541628393589833203933086304798375257562599481088340319852174031482759689014123746259874860719485674455036229286812989962972909522718717492256305653717929503913533472590618043631244696661438779219955958143342673500293639789892250833232930564692515974363713248935617084385062682885687873469042799832673050472913226675475819401883537514275236481314070981253207900689981929535600470410743026594030193184969686759634044738623696294784954468668020583927369436161078822331912759824943536069781747582125020829980465683117487440154182863435729390288592071957749922574018593798289167696917230715017376339512268329460053819902716424487547839554479997583656722679990102671407286175212178937975540703009530478828396123964607417898531151450890428552540176102771865497695117705267558161856546223956410070720691939239476599437507213535712615667054603895125394820607604966086438757778341016254976145847327550936143569302375892220884571039072207496361772108831153702276230698295171434188656578606691553963618000626622812414392951273355458737005508060458769994258933199386384437946586872296613706686273607768488831036397213750771271358048647622909756731987255154840531926670309380367588642179068157586031258837900621183658818187286072638906501150506844626115878742432921676451241594823562919684959428130710861636580413817936444951975914652445616427012879720844028611339317117221484845329959094712039506784702227320694847886911193707024373007703996503091141503689296686714039343303934702202108594752299896833265229715787344181522176859403005137415736205285199167912782388493542352694863364528002328476774056602096353757320699756075492804074100038023876124198938764448495177643054736804144100680718104912355528055417739568084884174871274290645944421719308896593949225810155517274701949777649672631956684587120343042732538708986182821139492733430245270004872048965435214760233772207122141801415636279809801112918443491052260288789046923254547017914654605403509600320121337965111853942944654842768381528683336061240906669682053981536390170928829191494300362867215103366015713860998875163870733016680318465562914618235410316607089244592692997128803024583801822439493191357571463468607554539152554250051929650910299257007173889753549554297525981368014322746983825841771609770640206036372573612579552411572089723998904844511974448761509339111931443118432336690273272554574574524645379538013213778026992479158946467456802399263956029607302803578464833800987897635988897359044460665214865671557738137807825338855381851028397022310906710720320515331703163153813009796120909319472041346897477103626150958126210997375985293535511706712325606400078511123367507249436999893708124409635853784242314335744084045502461485908000634070031438077485708811140818841565610570499743491123801567959186037225273552013729973924131348030955468684982038944638739719771860837375356784617090716843044705941771535851497096759740357587818560064331395348155389109064334783607662946850396350517460912458926080264361148136128152092503576555520230134872248396917112762777574382715531314355870561858451221756252035255602266604358115978063010447882642009803380465989797213035692392038001753444442797241039239906918070626986547974176360919626912741410717683373779683450218105725546787916419674746281740883958282421531742467803181240677051007840573049129636759284408010071541165541374338125899109111749573916226170613576857191929439546151716107413907833747137878916111561949403510964831634615811695943739387622788339709101321023679863736192958418177257643130353507520598257774091957397806139698090871467553692907202353424707294075149373298980256815142551925761575549903165592414162540233225019673598925945100357139738583250780110146598868125208463084367903477642841963894876874951673214554492652517217772465194371774076878765838128994854498627324010484248153710065404015569596104074769361750882269519211354555427787282475172101498705755602080647218612778169931187080903191126600297814425486558196885411837597086202090373470435619553867719871509306737857129515988709541717106384977991970024417901836103736630421165267217037752143444248548058555900951500829432149214361931221742818614273003311049901121372977452096504407211071079590180509561471503227014494476943491302031188436152626066908831376176618519758866075468762564181701662808241541914125076764071666691342691486352285619660108777101445947964527559582971440179259379859496319611124847291720716192175644441914898509488571193786849734576250284962691149530185456676342041312902619947974067209107992101376910263737823094076022502151688165774981115818441446745268647085409374943046819278980498065170639388748084701825424892848901447715602441353199670320154742118805522434853352127745500019739846102756726203501127044600466318213780768284058142013533966390693707481031110003582573458413416390544786287964177782476013390521493886112098812554015917178055739318298283040935452195014424107909896597681512491769134750400563778754582208432464415131710811189037707105072705840961476617733628059418366926541205009348297967935343210985510013343746853642391175135073022997834057804437576118067637294167894698505619039737562417673951182688075436499299060359799144342052570759899388876116333228077993942650895461078371902373889267649491856944903074163674814997588449628564080813301352139819435100303026545770720362476136099077862984560036551946330395290411288562374283820321810208761576650737193949965745747690988372598490092985265368177613723834216065317778499199047131544736928714242115198446977708419256318767904259780608257450509485182970859696478382885577440747093626546772025544278265025975164274925027995951565114767037528675103092878478264208403014857449746010974925114784836509604241736653683561684120918089261615549881199056094411059764672013482508183147145456684506692906128101327220023622155946725770967744522813724966118604523362235005717326354405899577458653789801714761590513677299312582559070297041353051534081448861826723881714497730309275921271553311919443948971313381792190416941820856992286265187067105112158888521068506012475358436255237904627174149318176808017686553217477243291328620463956906246068497146187090214373320420133138326525497474770683023395197114063876943524448560407640181055696739779068752346635410804436535260066871607211580738521311392737436423550051495291106236621526299308780305425602264789531260934708180705295280623177853127965139772472125596761189531760028542107229483183098761413826519336961656732111539682925404847503358424765844396274875353247334988933397626715753816200087716762159020944356280695274231850263602762136790015593709798509399270259899738463501032928906738251364717799359720814725704608746789686081698233658056363774472075692647423753599128820114177260067851776965673938519979872143703278886616663091899589064051490907906506741261147586124523585239463256793171119642942180615438665071948791653148639016557831912178632684716159768740595219380987570507843750510883131103626420223915971561759782656501982429887058320691845119824092012091304970083636550517568148411803729799193514880681236891673534562348892906679660632883964954188799009015461162740376223290734319925028793251446368169879365373416838867244932742066099761646093833011754798470556331880952040029215514611108822020962020888051532429139814233912229583273025106894529876929968686579951337639321584450940022989700602791532702368179251436333428053515176212271790448615652746693167349591294731106601297282412098398959178744266117073342295589558094601007059507763016445748002661942436225292779198790875832803710127696793806167351525916593021286123650802792832138731323339049167971689598688844274978792713257617576196641275618406777134425690194033307343162735113644517751745095503889664104844498738568623940936015094457406984478577925318097084391390999531370055175983413872342522229810651031515725247684628967843775558103232976133591172296229887936149565375643083316346153910503665844032022060906776109951981257238926664052011616275569499280275515747991816061098678913568883975321504543367719405897982832630573713334875143018038836777433184940569716072663347754839135424315442073596453342311436724404989358143488187623203302128889387679800662403416125720046988826721707607071834036960569875131826148678887053366599415928653125112140217378432798198013974818624333127334803514659808271201878912576746767174352397706734455627609760762668277391791063084506053386601561546663825029989344630064315753914850415283415353759125571579813507002289515328699853038451211367300901995335273511823414703927373291882133723477992989690437402648687677801509116907579439053258633593227968320463206260775460687574362950663600577546849908274997459699818575543182896185014404638434058822410880642291952024688999116440083540298721201205530393363523878295422749522484496463241865758052220223615413676454138777360349903437774328085349068874590550883740517647973366233827108991047525771427136545069142356619367112839001858115629550817019454144761695137158375774944122556103464052168857990722285785199526148389409559365311078819672367913060999841666877835262751040399707374237499531049718302478941923089874160133656781101602215767333172191955808497583850682926335732755283690200281047368448478372169009720776473582967571433677933198831163610471663786652118173145200287265656505264776759287134905716844028026557020194060436814195599927698427615692997822588724135820868668641780731530452228687009133573571355466506377503061435167406182118062331269613840988222143364667430833013677727262506075743154730367446786106959180885887235064417182101882826356736921711161012334742041477512452834719108675727303475526456052963159331362739587298708415548159050298732051136375977349225996201119505879674769890659665818674536688610757796735223031580228177544600943627411840679740444725475489252212951185095490544356697695918505768636473495220182473719498726540709347516722106070385894433052840247040947133793536698721134976326053758140077532806384054975462439881378310965041057813313627181091172014695157739651656459023683303093670500038474377128510593771023820263875649153909928256848163499182206527906148558366435321033772779811239643952146473417810695620762619478343465269773327421202836780851148848878112612917628317700818802544045605196851179384128722372620516848947174832006723734381295774821004435797125775575342134381082110448383653159462406182077953079178043355451315969742953640544019646897226627063901518029350835617522349762978700897654715037228273691918489781365242917298938017468877166123829431380925967427262670527203152543689475702306970797944482964211684449604368405655355786467903710529011151253324262011058806511677162686690098972508805097095497487750396102551151337246847716098844001122368989676635253795042052175203172442394183949274031466993161872730353972901500641345314483555864318421792547846443081554064832103267599964312755409957095989481778955025612158484723364617906671530958711259558476555030176465553434896987393159799144390003182447572715164208942883651407978241947616131704117943045196221058277530125193409294417943099445073944999289224839957961066859285024968697735851428954718288669619519332546220111100316633167155540842561645281922958108448958384799425415414903103575475727562463045135261831947046859847340665784516416682484304625996164072944223129742819226248364998870720073488458573389417510049431434303923225483855254752232203009849155890048008521969058569111962933437168210934508299880439564808516725561140743444799230666614138209675839156772612468615163969276333431615995228919747389421861934208598577898145909523065171780288295780056618878201683411997567978992585866427113374353731118927538639755162109812109481225924772664938906540806218221800666245471565705540211534308409107451119814279474235504159550642536838676832613040288016998413046784613456055799734350180520629353835317278659023963469363520296893384380830369429618714705840565194662315072788282732616144120948775048806333569298178049862043585437727587913588606611013121725871914742279198752232689844232615568757387210764210905618234216322859623687894821131137598920253215288907448236779847953952456402575632886997237228306422239400773232066312615288870373390920564952195682892047083085916110405218744322329961560544114252489360501269427872803670561837219428958766590920553167313501636237658337815973325129810856675229006937230456247307145598186506664522298849703243156065762822357485216933842647897281086663005423286931082136792413802877613363723093784648729919876441205879105049000563940882573611984697315655063616614699902966316714554735851434437444910015030541271264781888910288141725222430110954143365444354870080962146250364976237216750434989087662124802892251134996078202064112296452692535505738752702302018945893486220028706442856593614289046479106635531219523809764514957228069791182573303692296593783303598991040229341122208440761889055534127661320023422362494787969895379000654768792613140597988785165994218122923799146738841020718285012293413343342745122080674282880105230008205387568043179949276104119687692030881452921311526057846167296526961816075056787690244191979638097772863852038748610398678861360652902634480057531352602364039117725170095498767445534355198020478822332766311167208489356393983283051326241682873847856790682620874490692503623310471798493487530723960835653234883402553419956947552183184711161069010804795796481027819203259896552990279342025956982194167237396794155769490895141247919084437506190857029886404591204259352394971726243223076482051044847712715125204594052139293807204347083118689021525482846599845049035576627859302907904418518758693526711678838536331729070498132997603461589095711068351372019365372275192764025225597339394467784822388073909180973755672583937228694952377447948763087778510065045980680769037096116037369100913059695587799913788263594894661624775353029676075754773694873098130669872947574689834794326910681145190921811746413284925927219716540728150591224599416506986971780894442210021613252696002626740749814756137907915464696389718692650195655215501569824572292367591405646356824641826672001338790381646308241863803321129047230404115592860958048097682850044206417488395712540895914031284811412306580642280192536729176623844178135633693503723000265360437777088817253473698355008063675295675033352522151127502152523261899319726277140593371510769291638521758651999406508996975925195730005601130552091850008224281156439655127307535723064983691284982673166308502721749162566974607943396130759832973875690803376523932399044082523387459299706600575315144135106656118567885427179906690141166217290008684065454038980943442338134825115850082023789528749223064690856271969092476911168422932122044609125708807886145064372398684684583123908036871002999916125466524340444938227643242812876197722089556136796128718686536345751125684328534462500600254970997406226025591247658015812461874988440323576724798267684764003730573497923907235875109962263080707380756646562490698863612669864071570219353797307484734049928231936276831391133868928419690790516759180641449793572300063644235499357708896764016640379300444413728291161690477516958533344522420558641878421702358884454322076856512379817331695453486943491054727198292678862370559311484691145973594513753721872471334372837825693286567860525205453002679812725952185234386180212850804119575190912222755946980106817080603631600228550135911252334802437154961911785974581352577192841705888634092703793952568459740008616740446082309464270031745442032681443713888566080930318542764178317358601325622984435643446714108516438602889131523379665398275389798524808776473489079128285184734672299771388220880962692159176867503441003202356246881777626895893485904883776689695815542769898878313855881268065858950527077305721128409773492040315084110870080578102534617785024049646253257673591238968017121096979933400256624658687108160186096418916745849497737776922815028553748162213016016369758777112934753581278216802414000346876643274122182898050205671578674706436051291299383923364318324430412738389498677627335910438183006155912494163354932784214860873362066807782884930153027092689082257966158806311777683881882081554474212671170858658308455763344878127546908947611927764750916365206573975080187630031660885257210794219663577282897092012157542352355135912400039315320364219167040398984718025069085303144557977082127176393229802016235688642036880251358199911568910986939167016250104944159884603044157968504360955172105439473141977780929280017279460484513253905343376408444660023009454645665164695630824643918533327889461027609082815746195428012191045451937214750173283801831395712438076444125185436016199817345641807419815449730728475999095934028946815859909322032060256621129193439277304139191376908659831268623791110038797138944420677976898224888125179280011643234744150486393903221143019674498113026560924613256494123168165540613145685411718482661257956198834178330128065215959511017177131662946094251252485638915300409964288242826846133491045288491825324601334372755814778904370022176063341291848622975873029874746050110261397314531992761348904291284112952905384158410853814237271787961122113182761419882663079372687381336820958108987837353759445855925926742855863695502830409863825836909976934060810202617133456538907239044690716550207816949670283835406062032779974852329127517228026882151403812102913426613327329506905744085509649927909947249819245242734065284037139346567519838544160835094463654324990336180601556358045456391764763129534892838209096054138177400440136654315225468179552844823809748999504675680774153607142268372659880330784980674625153011906960977222883442019990010898403748467985101285669335856101384982320017352807821551707066013528884595018423944358325539145891533736499237719099707361433529382151021917766534527794854532620402351240327432615264756200069768911037688569068159031909657068122870949693187699222345270988510935878647022648323853982889908982726793490279509222010753335000197769613698822649902891483690133683811483850641353973122259316109203433978322152636513181132136449314084518107897646403738786522922121872883107401194220512733564753725934320623319959052006004952434180880297971634933466671895430411982133404956464538953642799010234724041827533430488754294194949395120252963480199058151373480556458874493535845629411138813177228709764397371079499602498125997510388564068791555119378206663878972345438964482432207451191297726335678329696092215873932277507352475255264116891333092745943569213496104359326316924592698735279390095945259765899405704545831756206790120833540772453918439274311865140864346648399914123647006155142621531060500741019389403657709292633055372362971074153367818525594497257866859182348601690927302729101042753272817005317239669274093545261306056795783238568294151221087856435158757199649189845438806460698721039992016329065079934662590236189127259079176970057561246300092213825460372620813575078637916707710002610032468484315108496517023599089204792419879238982948826328008051825349639814222020872054308371884618072946188403581334669116470224916589268749182036722656651363929540306379028010634916516798592536355404947671043100222269469403691707961978885162057809716162785750684997856130432095950029206750285932371281844022275143120599042330851156452989844475747568214441151779213959407685636225881464211466981160219818357642234989144219381060837826954862060929231186391390938232727319771299458746280426436795832124746807959904106123201155412638849023422732518268142387102059416762445999015734697125462706931993611366885116766386086799387796261891845820976814973073354299505142917620602351775508120743507654276582963036742283413855449663572717757685413747485635240526841450759880419209485169504581238209798474497128196987625918708379104864393873082118296663598314911233933186166280763402640959707512373892721470579216119218779783657290369493265174424815846147974664285270280371238604520869876362732343665251794507691052062498671891434191286817371210630102982654919538586938588520354680444660130798443324161962928692751689610904889336259342576106021526329094046489054153507162519221965532279851656664264499645890300056475790151285371471173956485155514515734977007703376892307981179782536050886973622501834532511038778119849422398490525259153683572915027884865516762780680617250645102674295707535598526133316792722879089527361418090005490926366038657295760259980538203809617049961259544219660644382704991414769978513787838937710224425969169406351780656205429188193131359541785826976895789909216994249585224330632394809220631434495156710636677565397251264597369593336800986856527029219069304148159358977183752467948329060531377739673548335805964805509625379439321833503701564241948176257965546727401905767339865569263227468241602939032969874369895525005438019625158372613144997393445562327035653584586319841609889527476943695534143559094436462716213656587903643345398584368130099100712571477846850660840244912490083699420274438646999349884946572151830741677553686351320302159536346876785939691102182139705728686766620954327787735720856757318054646212425579252208472671634820298212444466643180595721308719335592449369435723479491586660249848008583918684765417562042147066217161072964322900911355437071914756449581632318546302816036324422482191150324944362678651877866242361099959098018213743123448039961889363553450914608538493128351589434611486966176089748109825193062872600453377753535275546761342247901126820373737854604467372437841398201136911208162735789077721909044169711113521339725141992022390612879864879871862968372150979217251810374457579990737984854197332950962810307183631890935652854819894587975026860742439856772497203211745841336501171460941466042156285885027625816650760380111969299449176703123743960305048606543152768690959283999889772000444509769152137037780088167343225340071056055327885928220151061310961208176232084304759959272049585802703167792077463062259079653232023478885440235182474164859955073885865492875654423356163540207772286115061813945531110409440317680458605171455789961149881831767767269295555008262528820196576786256499091535151530524111473316101879935439206899091265084650938175642755080978396485745059958053496208955801486473665429402862049119956035738269852580816637778479925327623458017214681629785931656845634868818913374317692253051095550148601202800815359933775557282278517645436912889029254103682595747034128562925316558451330021607526181146052698086243811011920208733764475093274429509279385834269434098109050363568659161065051973660519899355082104893458950246141892088412457471003386604719300782726783180034151267985688268163323944948354523691637400053879476380226269961715239487346977068563922335056709861312288343596168701419199217227145952663498379307060235398156382278476969202547157180346085861099852503058140598262824013159611963218046623432469224948519181062435317582201742542316376731205049920524110859590426543117455948438748824542900762094035833378353209987615746197047894235893612835927843773484433148590077492162270481202566088502121063465559336050493694814913343189589547848318940995372230567261242817551432040454948742334712278646628817142559152482067616896815081913693020812757006787099617117637081840445559742107737498209041362222319457358645119703444851259199153635792626585877876724400240248282060415622647486363369263767691568252520081311384974210278004592037936596422207446590381530027714380559785101657467883497436340812369414368748572744828587724307060439127197780332051395434368194711443595691169955474010921039424609142651672459917767315560428679186087096604098906833886604641193288810907361967363788780964976910045906871655201168919795576293055842502302201857159895489858222083698504557996664761788263122560235856187702878406845309535944511985024233912440756224026960720361072732647955161125992002680331492322291768349651263601275370690031813488836836313509865960775419806776914343536889007831511123738855629439352263876094705643157450928655860639840652953787648644987005409477138382778728027005600769401214176511343652306344579020851615955373369400820833300862718617087609703201344778102602050811110886969203889741155667047014663067272040744648901578136988107353325563514236440525090734723746427337353286556772003933650715937929939411420129527066045956490886784927321926130102955775975017583987731004169063692855003901748545292562549630782676900501126561114470113064390811574832984140804323693987175369092920370418778589528224624585638272350138361122193669556003631934093500595572128504436311343630366344971736018540433554806151964621798889514890731671618634706509484592394231609998362330009482724574161375544726558104479425069022736790425097547781078739522131639408804193608506536246755064841324951091453812431048767624964668338187248656162060309256947698857852003653140875313979866581419101211923671816968597027651695425059508005572824960588720343640117061425165639602927078171814314927090097464332730616062679432292722785832017280501693461254951611952642578404984356309647881556378711264426200703458357839638580189524236921112649732603114630856881329441532158145720456825716114188997214674709246950344488083440224527592312506172303538681668716037590894631967484163515077514488849637110023153096922163137363808085707255416652872392444744856811608309194516135037099406638269600220158667013468253004384636264952148113955842930600979037288491280438282193685630485528000036089529184620300478054905128282987343292415766981349366768406264009972879336587318065557103516654514481907615895278226000185228373647946194065376196249250632418833096880286667085441658946161568748301215658169552892374476776570870962002867173195031738214820111565838056596083322618316279613443585089757113611750829911406456911247761806941407659874203966997519275873294229825913818557697915082912765832667084101339213499363373624402438901567100268683343099431712166378101385219431216259277791842024511443858823776952517157191938754490518663949800568967111961820663666786361555932351062699053179015726406955531730226510724055632729613821335439308840591993862169257769505640087390827491534335720839175840466797226866776925728345099874837970942606059477540391060170737965086831489851332536086391365075589532349793598566969455940901961553037977750287720593141445878149262567875361116889980558924431679110935568336939484628742862491419775081923810726714009082390186703591317117232089406367864219034684269372144182291628919840659105298679251400141524394589079695708635870497908339307358772734368699852436003184155398450647191238398109006285209887511486958025505679592915269865014442162034477964985304655950848683583281313965429917075342676378876067959068850042932338786000884664316323754722471706324294954938787638633368743376651189144636300288407149747083554399027502574943773615911905817804082371472911385787466440303378337937889011708187942100700965619828513192562938175297363577718937513069864734962451992917572152957680028722695114900351810181050461429895206013397793242355489873065491598184541150306460192589860470137505165229508166063130123439769145190630843743781222655615385779980880054882812666330340313137335194342163938340422333073836013460840577134906616490321038419010891305504139455487491226446417924890842805312201991379244275183701172281154020540329886832038900235154922637739247033381527804970145467237515662882323001698222868931722575699159302015579347614716489341281417926895653946456469594508561472222266012653151822172290760659736905586569327836041881202684972791548161992124313856669924362296429655541871288771735798334404164333346211726264953458776799704381599501631294341762088025079494869242946916320334899767334616512105184971956426253185401764076259220493436243924191294729803282291889558240233685153786927026052095716169070011583999381638690267286953784234392236749705717489633616090796744258639407462426146296137322196369228246171312203862658701633046249836211260172704683508747914001911047748316107124477883518632568900445787158349479749529450149522130323465313733474807855054740413012607733730381009332057207122216201683494669235545632796835149200281632449721902862595130192604073858050259840836626030749563818540088497902227978114401568189423680725451527288001507378471935372040048802157114569918812645056438264312813592145775869058506079695491570890237516018960978206172239754280318415818719288189171613696265578176782825364274575085930733951811024067264849114465174332580493263950714516271815125154052886094946708361527220217404792279623554499956492328269746572290865632099520231138913305125855562051526569179002927948123510308749015642268812662624554306662823867384362926141856384890976397305101292231117140073194045695644771449476772850810257061545893793146263583156941422069086060150234451320809891421119100125798958841039935549360978088546369332326961299795778523865312528891323849673832957210817970706216432072478413342699345861397691096691436998447239644178161362370671519725200551981418173161002216433829174791716034451904869516101143218298095911386281427670727152640910800665635632549099791351912661479376852193459406649605826248090088937418510164030825714701242166927974150603164277333060782826459465480623816837116370950047461720515353919970088443602488825433474405820805253538940990294511247214112692989250066516463678535164836765289646287066285806184237845039327359550174819940325327962951238281292040798264548226735226650615225035086655345718860032565334076886939031230713333383792162349834027324148640713797965493529648274249529681571516605486580727872130250001040583516436526428991995591898817672457424652153393334750774783936275134669087040008836892356093365901354304739636508827024959240519605101971225096278338846622963467872945325621508885223360133964142907012990379751618895224854095059954321080056858135687177961857893196653996008589804299525930299975425415050605462229812788423235962213816119769257803522718632292891649951477143584081788015770737429379513739207268381115240866956498006056063823476688595368478873575102245304177359505591661029284912079109438714851025300269389156181001526951046305065908989594627855450156948148905837085315213850007360177765633516402319885260613164802991854476564339841504849415806009733668119085492625606564305913436602885296155692982564498901929781776196764398285503872397180546059172364048328425942542918238159603706850396039634729867846995417953765010448956759086242956824740278523194710219586545562235044389443152755469328858766355653229494236815344059712553069714895113719394745637107853378126684020684933931541253205895595979815548724117521399524864944908785912896528353907105236132538153055232589140857041497857781699512157575657359200508843447269722025928013103606696893940108800173324770442054724697331501050017597103712105323216600625626720990976407680997736269673723561145412156287600818715874629805063783076715662630790880336652179471374020554953992396147341175326943999913060871204236228987400971733532918067571139532162663675973566723347449105375881066961963722684480026609262707345544023057755203940121244993698978269734970908027504251832765233754276564177263025661954799688622503107103738702646216033510490553625948876246261961833754334456350951312638914606300846278366175102008342104329511926112633437964883714518788281927732405951842593731642482561652605847170774079599942221183581440091880212780488154195753727275693122935169962505953079782000361339769697690037865127369549522644957223030433248896946120635216822442029587549590179109413401633849052397400578661842670073689187923956954305414178924428618916359478496695903764167333274657754711628403657806522243971316664889625059212713857413450207720348580040924444659379567276171073085292253941051836449434071375781591422789748624612617293786709775479508722717039264963614631410224018378245476419384632217131437819164207810721715250602457213521384782912579206140686942241172843699286849015153121338749123431496101059217048364340744816323759064224115515998841937398981878253456319801184996528302126151799761920334671801101176399300065477380364027694444914326133516977933060198036776060048516104009354533653338687267121287737486105964298541504827270603533407621874470084618159529108068776368265023077421152001381126290039290723490557971889495031847582588345922187889284725566914498560588093695640759879992115332908502997602394102828794100676476138695240709282049043946792014056274068433369618852816694433518866828494607637646448372984966539373410396810023599861043441353133456835701497520620694325275626465229516871244772001381068603944296438545452514511861590990007153377728299700591993199855735057167551198012492458394385633709022160700960800940572301832500126788737477297511442310514304335710696340566316748498254575934642292291351178707099132223687723923383692833958465032056104920221431471076898488284888587765947223289208956885958954471464665077554639904071092762794701102178435272456781509740409235937416291419199740421068297325360679385386044550266108862640555710666832574333964659829468122557774658908074730296830896848290405116482768557717218634457114262949133585996794083286776597689366339760267286534580233103981812702920836727715738254020740197003392860684447044147511752985788803234479838366397844520353137139031285903348240013777342613999776998032295920231939769942267231488872795820756573355750574641518710683073187295618225807495740434234221563914149643454953343414340841174114025660306849819340736567657325535852930113799639268715388425111283368012208140273039255299785749260316989123226288906621821584472244555050816257379677776220271602436601722616142617849876318450541486425707045661893005961669658021909879149393646399259940986157595799915334094307475764016690045847639305945280402719469688487774540191787059231482160226160851775972065210054733356010117514553613768818655649320762104151373485030415607264973070333070448822462064590809320978560155337894549089606646840024683503484379358192543376205810193176833079695129501118520398015749672115559866737477659907950672925642828111264558988876888270087176718873257361314854982081864212807390830610241124809075637609972642548441133363443664266574192918890634302429951863129410364481190586421388814470136685929149532342563484921451540404809776428889908224161738524536111219980408580352766393418938869677634775030624916981052298473692955066811902961361376294439592813408239622897099391574389276534346913359994028368253325332018241826941306422817719342805289870631776424395485156675837880544595990500802214676718512401648263639181191366873127349545585094423005957699598619464409798616131763633030698755698016590568511472875102992747114488765202475447605272882143915215025249884786730127140993148051205430586684154869444683484119052004425555813634989587079667661356993671504388872816046256084977029224212349112429378255455160677772134343856752411410870297160539358737780881029181014754265936096335067559108709816806162938961026336010613672096751868726774494529183302271512824609877218324128808758981549033919027989197674950902212264158377362585952941006522100002512422988337673957104531056167135122761737198905663634844406124826358160148823449562154563055806531194603766473909377611120115903076942963375549349770528997564072796613867825496521892379396076750075026957501575792677367977237551382291384034713143266447731586159894660393012550846121395810697652995862285268064270007614654788780047623542445655598495539537237017952878262417285624610808999511802319705535073266304174485183139898423318230279105544881818594256473961024521289349443521497331225523757199828894141413340688407005409034575760920828736508707630723935344466390972424562097093660375044982533380567658849804002102279079426135640640212116640556705942178282015349660448302371355305055189739519390967844761671473854376534696120153076378648852267663506146898655799519312762645878821542647719248286846854127387007028318081817301597503395227554150741665744559790520543009197131809962423859362771825224966658888117167339631268045975041309406425714648860279655416010047921159731179958669949990755345997822832029049606872427056317854305876382774054473391541315088589857117126469930102212285450386584004928982325806734263283060988570786496040077452974152567286153068039083906395724196400381044893500960927265076209887165602301463711541027502715473840174228767413517134908529063941289519569483454437520215741489975750362167067482312157853500907303099095379207170957689618625877123287743485379990640842484899053643318748133823548508159516559795905064907466445226027330312130334201815344981362972822247799638389309244587330785995102868228226035880202880478119136218012411392612906448014718900872867380167122858604943908196825912522589241329357542370945755866200614558455112665489310486484298980825589993444458272751512160875697517053174565802591825562174380708956077043285948792939070369381468579216058488998867840737356668741997478202614983226156974792001823945570581755140207688541732950505605574907702887376780790932284969171962440251874366339513542620916448140903851172051759024589916661132586740122257111865335406179911781945981686518501787859124352608228050218034459220677866063743065460745516204223181861168421265294479028743977382620688280529167551018747618592145119696042663108856603224396862777524694587885839853805612310242594448749962417858495208402547703512844694536030163096792563061936861092454398026165012554445374274904335823976313551516235835618250925947808943469916146214506010496224932506056721236696993081037608350237951660438890752817920545372030569509600949378845622605249762544206162581231943828966815522966792687677173927250049712181642285223635269485263434116051061168389408989644798297563182126932724102446355784208640911789481155742336900300033282297423269368183020672981055618261158367660860515813673346092126210776078342431607359573185467798562537206450277803603680985486145385884646096284692757281121009668654238676643076135556625153374161450259315680506789382023744963590579565951452797634246253185873310841590419450024269886693358560831058451360804431706007771055406780566967154680327135059400705429922398286498373602804093511687523169569621097185068628723339367800076579086738359146032618788682731355514996541830135075675660265991500276125389727139646908287306973282917261144940985762040483942386712282045356414217292929621050371039010344244926019519043240122840473992945456368747120158407192240569882812287690869810394782923207184689861218638898406481972564717413607045600218460603928061281707640707048475577166458657749107900053377558648669529657461459540802101704822285225720007662324112826354575954653294217045004564835753731412032677772112539769951672697463421736775001349960485760262535099616945125068279028495090357480464545386140116005663920409200958537931297556515413905284006020503196561233000791777003395897544152326088244352488225732460068333909275980163492462645268837071617519743473742931502039861996436964052440996999230615739093079673382724346645560597986369777818199472355743727226754536137814543015484085790913383620348490337645894008377015678710798284158054962938557918374063370497062641705440032604976760975865745309556482419809356118612438991457638726520392933128401944120104808407682066073972183554205362291207861842569759991939595162592457808490208046007392687003741694514873596163449918670498410600046642079244208863043211804609156318326208593980679827382108714244452923636073903185579924464443578534802568402591862188274173548170676049296931511152875471102681377031813996385851958111083006808116101130210434825540140607256096876151760117686606612692725000823523196068578823978174491903796031104278553070460399005926299514037536975126868452400659522719809906201305683238995714957395045806799594812199249628103604344878975396852342119281846300489067176975217461942959805369575457392984733803061122193160077669938543018129521497215070586271203526894555360927817904044154745157154362826732007871742951321938957939076535872568511128405395707172200904650456568291785976375858029753327718650598023036494294515051825856601464207284608741238097710670037857412714775968401611056335294744122952336753899848721843995491360495981107184203996750921659026340927203179347497201165276007482731816251601835826014741298099451244344438539629640647993279827922632505971807308755777188713128366452232608693444471794081383840886370072011099354480302477712251123908471625495255699599165866963565844050684671055900800569051498008271725240972129914776186559441250792059277672434882942796752254923755747941771514295232295858028291127386588394723658065195238340463350904960640870894065507052876730212728685787728554861930540665308993154067127072825825613054303249195258249264029461949147129693292547502841302003947608924625893179648106940362829683394994616597867436170970184599721230620708552848510991930968993210388063186159633144750606810027633376327084870677505555637007154890783086799930186762100346489863387850568470476733931617118021925080894931122553840355761508529657759561743363379248182923716447875136023951092963924618172704309247148408617770599919035670626656794430484965349308382796149936466897115007990640262830311081478178871204142434855135674235050412446766066971936377662204433469934085081043355824081494400344292512897111481803279552586235241161602707896523078558861053265530460962884872419888596863607284944727981713876658742879453189156435035554408510473921133727746277840120800187271267404888853047303632358044805963697099057822407500627384507656542811937599404821543117020359004608744262379227648634137337126801802523725000723899922212801919603652541179907077516876498432177307113516228557080160991686672305023031366965416740831469956451207793032374513957649925597989832225104693623701352074053615838681322400204392446502049324601259000961394386429596800530017133969260177906267657014570492022869296292106627535683847703582642321972016339224271951353167858888259411557112982421974173047521311833789419164658263508616599571185577546105915739117691235616515107217902424700988427416936287833603914712613898774032688008195792635485208694741818189240503995871017394879488887329002586913584224270672251631069534021706787427755515734747609672328510007398958891312174488647798360594072650256123351783810515608185534566473325874328316910394217631695273651880161805954553299003990974970979352060475279171678656509412555033079455733052150765072560843861282228172066558710632728536183864977853832112878283415376112792082025107328268946374455362201536935375674865257779001830682451537050538236965366818796282807529807154431026992455402281702409028567281627814657726607735180227497974459617446384856602053153616611130681434830911341612855085030638222508448567460264788672190859555208740461741144568851125715452487322850769756837212313654869529398240353976360495628321779367678135966517388973263940399094413737884778912414418982125361627231238604356632492196549567677844351735941980339845950544449326866996207354867890833021206144745116411895479066603116171899440767029610585374282956269418335824636684219804801558539846164630338380963926403446627738972507280849980945796055193091589872988657141006970096525769690026710136570704566059536170886215430507067533443818383048222203614587624583403024809382144524459987646626350426789908852141124074657097922791045201779617724717143497447851558476598375371258852261062815148899071939519421395819718303091711167000673124100543373912929817975176422090870041259368012739935428359670211407609382275848720344344332737764677553637642397681187401123444443388463336618615797306502600479124918948378292733014522882226953259048819131027519984808064261414249773533378502665302495008511865256010231695936168681835400690870847789284771507504239002378023693962796155784759149579594202905728189638999471049482660189423668261662775694961322609731741686984135968906196084476009287261179991637830002224520979727795781180029678452237248294678031039676884532326666857686940961189204411576989300891440531924038560355400761166314270084739896911008401533531968697505938512825669583740198870725793133077604149528645797047277157255581473476654330621559721615475187743737125739625362999093255340124030843342926839062704444228255221931347553092941797763279551985336204738737947909817314520400077688026561372779578290156265511425066263701776287304713365506271333410110311944821699782394043437030537107995071857390284384920646533957534228168147734015717408258716118041043845559112704913854677468113070288416622610673388630974523170821903596935104257761396737471704828095923639404884898662674913003346857321981068298588394367075699794733121225024506657624774082322239896828580681284496679959318015302428871494932602370133144548449423507055634984843548536103091073730029494145030691678423236755521515541203340045069820381524693876589379098183058018280422664361058497530517004769311396635151564467295553088141552730232884839555073686142750899150441835930290820046604903297074603072336107296832401357697796025753251970532195627234095503550357351459570226530812428734027362547019103173952267217305708806252537508539650302415242428771389098626081656826849669076764463800814141905603619476175433001117215055789897888498404218492620518280852049423476620310270447578402889699251874483363738520134142827096314623500796516899094652336152261573136272540061050472925242439290706637425389077804171951973639174402549387920885845324090509793141085729100934978047647050141122500026111073913487420768944850216707763722136685326099808329914420511661399438365670756199303787089607143708589645619779211103657107768014982291190884265792654187603475424839474196761895968629828067194417056104709778475807698932305707804316107074402496660030844120840028876704942691879985146915478476388952407445476254843023462875802026049803145644733061870999511232011658536889889818211539686583153272083217256145451644206203176436992089673233517095444827348688381960854751565345189314516962081853861759085076078811549324216825100232342549742148367406075033594931754104319185681987557209022012699039169678083585827862868265742475237785847488857175421097680306621812269286964135909069798151017997164267114864552112553975418043710182636220677505430560385432632287619611195835941797266955446320407482884851956774404492985581334113241734519726218993605536453389833878840477417105952698836408451355257308953055965437067172859958590957449282520928030177011986716244255673325640420652787548700784989253897510030640884253443570822403069850412329277546980581065227050104501615177908433026257797173460534875782674975770248543919439526781227049365142186518198649425756564345916715131664557870035247889715857242981014555539567483512779905502492638048616839268016713304296396925670701481676093129919084761207394694410143439826050931684828010733840019726141725399057934636992435623219912482080361908819192916205734773898213233646997997651418081144577021523196237026718180644017938665161727941038211539625621624946112711969594142098617334284558676557059592898822181354947629618609429869193934132209402548038497904603759783516734593635941259866690626164304721477180193509832412220448725547849085311545829684728509245115774140020505324409495376688736960494106184411744477420820421668177686172181632463099687212852445349612626777981978288912533720188775388884856889126647407556568693743341598551838346332907317067264187172275318837892959450257109985589933572149887951371054047465945691915646905039526347585366237007572018969786659351225618184217329822658839533050333205775391900987941381541840041969385917274525004406773772188239160433778740382850936893553453634867831130578335255852348845412616292354785681353713251171119733875229150378110903941521937978831235478605900974861088003447198461192151396189083653592332335218396324817071930273042470585681246347005850232007588964004225386622851849215747439570815213679399771965032310237175957376862277774359781343695398343833395618276674844497620322046335544195409317209919625575952570407791779201745322732022717052244388222233193449187805136748454067408820233073379508240523288588519087699743044230460799307231299276126890967175893251303526700812759395650317341590275463011269896362995371483640692347514571493318922396019969326937167612369370172637612601276222028186625492727561747027822106781794195709602468348967399056610515498505477451787082347258916502523363364876670286880637728679020162055480868505238940360784352704592810415828418149021811126000953967262980454798665066085648509755164174948869586539000154183151079982575062895586294532239934618467701365926854742822654348296068291717160202083339196313972178329742990184143555932950479402056552407730899177408540126599663979581755338224790056755624297348544198094063449938433723458498533416646642526074082021643669724107486144076318755278088016892338433374496810944387138147902513518657928284318609907086640712474830379776984919967171880337126669695826276963196221716825106577182419750709485359030250080047904808946305704835893420829681560588892784978645072246576161733559159004520618473680649995236634105290777863428614538412114651146002900417899091357974661947886152064054508159903287636396848929226452569020612867299321931781556547798309210328298814844396151183036249586685952888549304019141029035384451782064203276555923971390561987743919919548910384842543770132217145537432539379231316054810035174986040071046938196367854761126710825428172454112448272654572949786095519265820953438285035430397571727027126164544864075753011431269259368251757277676375950242213193236755508973218328982129696102265769894582485049603858491533528740670953240272631741277225511191714267448409294976286478483302120710928196519235650538884426842359967243898121576973619853779160005125352784829754142255170996316213256301176584572170374549541714625276622305883322878567606722502634226832456463629612947253786091918563825425518602292179212684385311970560875531871265879082453600085582536262536882590125250455869389146793344607709303785724033371004816670548082846168413410820729906590231773941362298398160209198751866560562976618035226741220130237996022148373197551590392927338541184562363357391051255797811013230082865862601692093627364883354394989672727514073141079276575423153354044858812817765406141570903804269838106036688336132161373783683361462595294663535128701484515816657140933765126072439987239101798247759093876251075438869937646835397043150539874982174073622407558207616119459314963213463018692710025735123590266384776430016092341397942221635921942524453296409184947661426072394950833203071932061560147144077747857043748667124254450686732544484095314516925688457765225543439502267379139187911330203250012414113188486874307167439887335467960643560193365610444002447701826421743179469118667815797621665456849624262844496144660721925859247409364861288500179775425116756507699044810865844191343138392551213707728527013223101628359699796952933296881081351529560196478143065334558382326873886622394397879626225220540017066189930684164429918029840898620676544212783470000873749365241502531097827711069083538152839980353499488540359914801641533110195958838756696807073339809563585793694999981362074501923271997116430659908629327291339851280226164318458424273606310149778795824039662647280225154713331149515185594150051419486611248379850448892635302495128529686094508682495757029073883059358044629896426592041298298204248075960219857696661112735332969281682698998100777441396188701473955764350663398572367282232071433842959772702280197696226218450533267659069758086893572387122779718389138418167333801665171980472363953027980292319555051208789993241837540349364377419242618036325503880924228932163848074870525401882318785159478097731911503046200376621696282734924965700163425187055914587173996867697979783686610705029767671864003643186420146058226512670076518459663220465050344366579637252687288784563405497829880493012525854865284993156863772574730186220002781463302377785821664434783485663884908676369748060362586139433462679925837399141446843603404369898445884617525052440666690423699897749316054297029633236475196809896353670814284104095370250057502086659241840713934995696771478516853240781542434221105916530952489097754302854178749801206733094722876994274464027930292319841507205207728617485540254026242708381557751222097396451975519467815548254359596883322259617920047559656775954232269967409217421337168335465931740356717140791509697523196585074866238237561679787404993698870743002227431689362737557097571178778400832514067870412926150770686188423370901191208009184375823519446311691086162390744741772832770711372206679936716987046958232712773143175368461784005363125511683809358108708778752060078980986737772248564404786303855434101570325954264235123938087985226776309591181016097036834218522660809253340332769752318282191163543057126793329396387025607109401341915718829290194419847595624042132675227429546646626057496796069488737072456985492410127201387516684325101380925113568376026707285418172023072145817547278074163876688546762932288488840107876669242190901887957561047876618704750591418798407168986255616286920535525518027690058521103845539281855394028889716884424160121424023288995956584087167492260559619556118173324505222360609685302383737320715355135475302664553352427602569474951019734999883757739771780110827650976710305343188401314669657293165050543966826657838232488897396476741969249812600328114317438340614472911985771378685795266262411036633215551409691170765741120834554174487387614288889114493612528336778714967976689753175773764154915444736546477384830900144991379164774394001662656776049653168251277263287211813424056990573360747736794010679800353086427410141325857737867168874172022213515454102889443165471082562971458239601897959756669392795201510626963140329558699260435797410332457256116232724085986002431885656912588384047228858230426785006720655245894236176005561997992175878645641472117526308153324712139911504917777009696340085823189401669725128259796806259472037968046106661533378771443888548628218679108965653885265135137969894613913625567242754747675398976950823370972691096213824221290083767368200902829134620082808002686855741508673506182178073647899156068769181706937943114806300981057802127510566298501830614225749263531302090221151313901725534017682136966210119733126441027899262388946502909890697904201573787458958573513548525622099210003669132534170447535741530310053069312185084866716985142637896088103087653242485852929694843200308036818238347684970486424887078569198348084746773591379718931682017069337992470362839208371693272787303805539371089145891488389083321676948306167808210092175523000685985947019522221835892050003483410948838410245487324853290391961739971011551303517722394195418263165226594653634866533062767458485538332336299723352400423889117868765177376521854696934449408008747367230900949552911701408358550941715938924635896408267407124101330720517402360905977004087923118812966987010491165223055859532047286313260308354824598360616814253137304655047775607913515485948483138710255134064627654227529505946738361885142620032750487485620227369283384816826437512879123197855328925420058205217843692015494918917020016901296857880849962788162740581767289662397359539392790307427359192329005978844270955363235863070743985289143664045233354484057517523741065058231003123481183670286806735150537210934305431273196494287368045336088912722767522140851325967121746262167716722646384311894918936860530062129828438925486102114097665909793219407827254438121188294957234437250106100910801169912209880382206448404595316125278051937178371554231887636547373990087958141007419597203918373759861853836609739555643961705929672902723717759204813580187566943042041774129850482063128801555988058034497244047190947258408118846433007855203878647569577967145203295280137240992657917994405608650095855914466677755285748879460251608803736557995342020736503044082919321538578922595318325059512819396441078300911769110890407773367288053139764232264172357059150606100084325886689008166904993574237918412610658826381822334953626930152596978534320387584792850757614073748436559401648534272147149620176317185941933036528816502594220139315429498577770823184221573940327802201420500169727221054016556040568079831086089500782752125131873941399568152088608471321537366349353074454114289254666422584695558109596652516654712413816877466005339473466287708693163631954533368996572966073895858214840706049746499286761903463590701396495296009051274211030893577722941241483195682506586573169491835569665738914366464097393885740863883545797508033371299490879842780091491880145280895083008225510714103418292854470889357109830897028827657283242778989739732266654324590434112931581889027217056879784829731667760026582301221127613580890776104427889369007408265294112617011350636933817257860518011740609032885950133713896535745377328744825933461488947229816199980180748297008372409552926629654668533231425096990313976380570940272829849301340263648349910904619481605527214545828564331687944076246809484629446779694186525913668891436912795523975791244019458182112282855466450962895904616180682418788986150528914374260920172948181505037927241825417790799618979636085312419923208891512326962607326316912859147817250113474298239699492332214905876953598573618238920623493858238671416361438668472748232092019243269255087304328389759108479806464786533790846247607932730858250997847926983400519571000084684833359105542361166551659494226744043703925949064153038220588716058383042214485450575188998161568688773600980545042102404441431644375153463263532466477356615414881636837257580833224145062109636214676014956513347630196524066872949200213158915452135363627536071905142910903981264339600715964819495293001479792655628678097675402683717138012592855478164189564613474540863330221157426285220035371130848846797183950253070974127380629605456809925494611581113848549387715062578191629458370599104491509861490026518214697055618974082081686874850825876146394881375954366822074262613346886884521647806929198060560394078267208642161682481346734348376120404745329265881069968973579941306634565877785428520961535213878056555969100409123771377448280607242913054487239350568353869744599076252629506886767650097125377697495554559605942719049610120700433213865386299851368002547820954408737223016191703272156703845307488412268347306420797851548534604324681373744110587350088036344378565898419741198660683421420125745773556574857615541466737121947504097426405498617864657232774666706015389357722738360007209902450642720909423813400791955772413285445116689788542536107332688807300917893740148796595997510231184206037753736682636236168408218156566608243827159865870194456742517842802783657136864251954189535893489079897494248939901531202256569164658400340558196082167680822019341343508388793111254580057280110314955923764106062575963783945749063334141243754332905190783293633571872332281959991756753677241837062342784403529727877633220352579726400620301245057467740320590366064395082619972352293241797001857932062369153876384047542596860501122745851363331639372181053374945068772292146637286782744272425990254152994422163738066890885281664225915071588293322094831024229032943434005388409516357511441550096440987431214723926878818644369248839670841385797767342077298740198087097434102604497445313510408792449921297629498947956560058060733595486449512233409622814081264528111993054694105669794363121405048936925522121895806515384984401006645423530231378288476241259930056743200247398967580207985999398240813285403881743409125836995400781488632484882517405728963962690177914281148562566339690840553765795449395319451743060868895624153879787215748465033469194610210697807739259239664388377456638161635192072388544297859939047713362480755276823130692198723793212786433854078007042738700665095333549439736233038330056386614072381489815428512476068494328672028677340619575612864207680855072249578873883968034416720123819444245074320825990221104243414457702246869313229315143778488772198600495482821535449585456878098097632992279879215124020390254225346114191695790668881034372347960470181621440945677615375674277899086492856583895309163478438715341767158654600613380472596382046925152756222827612928693152170522379024547576782451928885858838560304039778523675930692613384727635378593517486530425291667977593111594481208176319475914434387778386881327017941763275994046413612830229952684640730631699811701655837468599139195108592258437856574782767923869357004884752470076730809960744567833260386593202804748994284671618117634774077715703710115128668366879796396709375324758210189743829526221226891844295285290985249303606471588360733288540527163527420667022803312812373130699388930924177198211657363660567418317376621948079894368208114006575344259865058770375141206863606994435817320018073176496377012405031305734969286150475978373728875117620605100557951637262847653141770074709047190673492394119091071132101640602390273052940731112194246822355715645522134174495088753602594560225928069761950924900784985702392400533743283347261925070745167840741911202966148943412638210738997636052121452471186018922525270461846274502662920308760716080275879580071479300838507282820859329689884414169044451568084678960071868629596714517963378266107091550370199838777984784173041091475150779759355945982383437417810330546569685449642331413811789931352703989740509040347593998331617773787662209447121402128549875345843636695604738623170044620178659896921380122407233319640230365839935813771895110201571006580737895657243348857654143925958353407935999361315641571607548123691000818209900896821894657712545516887343567762982489110472257741465816262370031532423908384415411285614192537156185098532171427605549502066965488948450221270715761396462660402722269844681706546822839609831808312601221401493727045232920856583950732318540241271464855220904394890836594937667970125514284307618795350607868685857339561504944889465955332012284082603314040645578285982044658660558935544235556728420896202177760262069812278601739272623889729081857167310570885574880821041444086313392294349939019902504760157680798250555361652226414548730079491494660134988473670739401589705735053340705989410840849976526665857596929327287771329512549794672867398275251606906842612242320431568738661675039335456195391190496112801572879321016207589413730676571024203055075260904172755740703131419134774054677357776573998885148894174089805145139347755677348617798112488517290676599854718093508116193138838283356556740187152374908229112061385900745666162033734758833664332207379710163398642911444326685411682972509270399500778524460955157184163508334397486038399993520119745967248882514842019057741247908625819208859735186350972542987528046876164439422713071581179829367956688482781718557874908605513723701149687521475923464239754724799808984820639659088905311986247183615750518792878949216525089278726027847425133373348066269614246749089843685275635736383631552465128498418793656588298434271912468940946888284956973127727442866792787850118901898566485446201375226227781359104875852686081143869119672334475000994491233228392324835689261920626196165512795373385532103354919920372910707204620897335083075880521604074511712842595952560077631693858693628500059886683380549052643900865737790186411503972197521066764276319309583596704226959710342688990185003705510128009269679788327789091282300239996274756727828120769658811057740579623622508480306022722126561985341665867233237350026996229234018825016714469673406918787896985714674562583227068994960980024186668422268084539775523072450899595731449861277851561120825884639480360238638605936246693919537556362270925349310447790840867254628133918015617157179518054664100049256442894907251619002632786792337920818139308489309632332477595802849907599330298479279858064521841481271555398147739816677091664576236246110985413191861803494248846588026506294394606341335661832488804017695883061765121906749638659819567733886361981931808412245912713787881347032582633244537976288694288774467568476365539074034037277952132175049958528228988524559575870216272165725710276567629038123682358916288817285062566976063725422929190705561511380077356042062974179833571556201979524497813059077714187989686201879162112316464931074679885908722399619758285325386359477733621262246442261509987177497560734635531075678442841745542473409103892510190280272779412115805480978152532381049649413975208209630887353195705336283087784594630636913845083890132788189034461401949945261023223693776719870856199706618778566528528025901496308340459455951235321169633793864050708984843023532400981667711961038998228345382462076995778051371221341953981149017791374840525267953892591618187284495516411076853283816102799408870081891489628993167617819733220815340298597994555061984354071275100451074757109031623366763683147399744773956686354752169935098758878498337146538035308562735497886651986966068080787591813221211878082440900905475527912135366342147481339832850850186174185262952593560625135495373795233545606574822034068155231224782622074404652427198290654014567443763336962804224168141427921682243448108115563548342935082651516632240327537945868064278081932088895679718158361128514417666911154931599949092507485574282660021912334552881520808587329649327972105792438304328720041044230153682298510031746864527108071690729505660105765962314815309914354050036761348735594142734286241143245537982662319297131378467645967691000854321841780770373676455577754800324028235947927777428756495032587651206792987796339316391161108706870221687364866645015767735956024660163073214596316008926971271274570054955032179721260416455584059553122502325034522911591865881697615099338522637260018919920544125682874981967407050347908372963150943352275393668689872443933348830452307644397940994275482062816555355075168293719934981075836881129163151572253867583224676363990831145672398340326654470713373326812054205588717753124049563907677660767136200643177959564470845886987393682838724922347068805489527344997182505846252404000381926253742395967339173914955748045848202786346743267756448871324573850199176268271919295232410759631365227467736006043116046792091664207407841883081744025488212092545721120697710938234029834409540012753715272657023546045156242036155613775476277007794307069135760282172397518347437981247659566444474822552670497493537239042488661364454930689046085290819417789506082150970045081782198885754362805270785508974525444543419216935635588393842932078946905401259219128529648496531731855492707372257337921056516640111297455965850465142588543415307033646969519062493536319246252758007405336195752333625404992561784567698894492815313181224167298738487009857951974930049030706408485599753858184556155384375467252931835206518178269326377305142653360791238854808006648258893728891156717654856537829602388907071655078119750772589731656799080918462447727138395913492584045884731580740384399238050867967455925835428351227026067709680064672649697633630575723927799631394437341162315692537704505289273259409123237362911444677178484588369432675334692741984679452331125181797041965985257704181252014794049560790721107609830301693794387449286509757229927892723777384558106835349293661212722592490666475178920863959220478761009632089950079242014284850266844062568883899283362711885305045151240380594414715592544493321028724717277167362582722662547655507834042281231637645970799018327126005254325561659004950169731591611430222070097328985287133439832064791364805451822972730269983413192757275189054106390815994356586882299384424584528170439660892789882335088695218461599546591909594771572405733326854217083680286041609251057416185915132045299134024057677929255176005602500199591985829218185925226523120056671627169143316222794892989576931053457068355626085727314828458314326529687921296216170557942916258897347111253574579895793475031617770469762107740485865974928708844211347419205006087887701508717925310619004581017109716018549203032449336185166165191601531090145764385022494235768435895800108164225539381062105392109157595988845057166814853329562256385233376567697601262709460091068589039665736248231285587148963608944052093611422592138624082366503753224875057861215656442125719290456887768058653877469799484010111905500713371789163717643009326419333094547423394475107338322486982803502105616366942599739421278086923748322629855050120958718451277705760029736283737408072082339691458599034518281722355160352534880833631804120175511419485322051645199411130500409535345004297691186491868832137879683194247815004215033805785953693161792659671983100212529159522410817411357132823584289025982563795530825501610952014266998865620720682252485039410164653177405109938605440666218985691854918971999461031910714590130852478451865163569225674429906347174777300577855110732162715309262388964142320884005973290644894557550943458301122342328661142820116793139173292561644032379763304231462459962273633540743425355947813312469382457628830269092324457990279356997693482655527907304197197992487204784261964590756258165010309428250808001009682131348280468653138130353022628292509452074144068712647791639256311185438781087290881242918421164751404981855722374689573661053296126548886957291804162652821908769781969792802030954454135219218892061271114616604144112502039288313306142736052150245901403672654513326124864943488141662967522155086305908087912009530677138062552344826079160351762098597303976072131134709834572548845521031377239617877799325832518573913136653277974631343207603079618469378883295711844658760665950216803276495270134981113951971751975724500984130121030286662786062182086537795328364392816305321736463136209284903482968503038636723175828623777672806845530541169218851153518363904165247796189304246665580791182175438417961935137200691232987690410112933424639783948311736807062169679904391306526867305524667081297360157996447767179636237900560930661989059788822090432523043244252367874969744285450427307346741808578814067813641979587917888629695063883085466973487944147735106113067077071244899153453100221519829611667189500072561119954592534088539343842130347087762457436042198580817751376341437688084236755730788238240692248454712260747848489657726260977083297445336893681606826477238681404785529303654943314756050723277495876401311233640221851108813901333588066099057275426262998902862376516862346898767722446103233865759399615152759053039678279510850808617176417130093383183806318999007205012280635731325134437096596007902478254638713930928352558768357232932003413141867362100788683869018718283605568183856146366991314820887343787388023772077103994221529339756160320269754196865186118172996745435964649638418215454952732340446727845878022207080238511654721899230341814241487851401050296111621251764583947011186207646921708635934434118301609480104038236965535852507664953470071693692477428678444022543182691972872510649281558394828198261848218089675017213058176458860185603958812113624824357741914170317500096941888361857157967819967273004096761610974477754056939139108119142555482323605032415566154996741052271507902382379846222578776601458959226671741743386551983864686377612925444593167750090049006357162238164281004401849845052481352594882012653520066853586888007587839712635887480628802843404722729110591766312178270889132961402419361727507543655525372174238197848056160176364783668452186834987835428513473099170324238764254888619452126024292265967156375262455157146817754168000592919277590739252002456923536189029976188249199911784171083922332097502966935906410997062051458291116234006187388275621155071972291959032249165844861786066117088267364708094289015663002247768559122325584525808501841755066597416633552885339264152005241755042225761866520684373657329483092684848494339918632132223394440828383028494072976961115217937083623496970260017750387721917732112015114840207002554487667289047280129306992467886059865562524816586327290669591852778721194038182966686921301304657858591898817720164105072994293575598544753008476107423966963177487994432974794989567829962546776533916916606998810464733020482542729099905898193586404286395684867666220060518768762529062340366365565875389444069867829914060707508219633793396347442917265304452908733881559289275821876916267208632954759884359255945564486768831825021789067239384681506411364985842586767208714979599252433688282529194370970472462130594868756526653572284484921476034736715816501611265545747453150425439775364117031170797313510323321485375451463179471172018915696534295753738207307307820500574319046625630999711638666715319976143082849727113383299407297459100464827064858148823397543131044731352371233939083916501377838413646564236209500899712481647693273984625108046407483032963690649316325644470681321568178528296675759860649266074945267041824851715092578827349089034913798408781263725268706200108297443978992390050066872228524880157554605606457751978809401474370078495604825145680511014527949933316683592086889493743524196725923799406025558507428146232792525216663452356731778654655190999580744822903389380095424532737475232434159185358216820490257955398100142632228268830287473969430644176811970293932278443271195375547004693088262136348138402071495793549739166893496123235728175752304609968943573239860010543123816564488886121233230794050572223682962485358133058328519256821610793340383346985595348193333665794950888449820179460273398019333983420888807964130370134361933594904414944127120560062718702590961964525485973008062443427261380757689488418304744890133050539968913534609784517396811485008989088063095861880385636643870270188891905666111345312627096821890840854831104796408301402319402081569312491372181390798612345068989470282396188243954767836601514694857200037852666373496563039319691693322602073250495526633623460355816310563840668492127969410909244172829667980083233099347493223737774266595605594300302573036148693197191320503504162253459108357922371018967034045579226213492166985273868602990712992192405836499774788805631884319662194464364110001482372549942071641332604538138800155952215251472123111585435866016870453401154650558467469403239692172906717639461575550375352263157971434677235088956933242839727891477495156795446676809809983326225763945368626216854584865058023456278599100435132709376008492233919949911250232174155479136422309566761033230217782305720001439118572933207744628354787651653567039948941215310493298883135776770957968568349883448031838014508198791947525998508617419549856553205178912605569493590327652550544728691801049674009848446308625427615366378792214694774725863443372411638743863156189001575211075001613216752114474018987542019241677841576768769701565205251466161692373276148362715798518249515733417049193245970016501927860104649876440440936688859723718828496513561052250659439961584954009032242020054503982174132597005860822048691758185560462662477179564743585353554007969073517966587441509665646284919967228428507232571077284113293771921095875619269315552811267467396684403174527844165830920150619794861360284779624007738917898880712693269827880336856259156802837391702459318500704213576769256302816405052078045514624161982850895732067661983035822541694659647630174859434024685338885383686614415789223252073737725433170143870725563913368398282826416825998543667950121893421073266246336141262557176575997186430394702205506318074567474579182799789231722854626662090769686814498873514466337218439225672171174395623877339034385224158528906208981782053667042426209646559538951977908637459081336610083630105178305032032601588094407851003246300792459728094908235893930346474035681434201095815331897927658314813130922344914842277317834737226613761167730951045862884726701621388844251386885263619628046487915214900955320303431440455658946387430940741591311565791154486863909759519459258806973996289485859483723120328068561876534880066023056078624557069057245244538884434391627510673562477647358672301316011521709889249379003079197286707939623342538944037047902597236521038797302802259053733712327477220824045027065726737383409902953331991226690406262713738758712653171415698961698073308576944678777763000639324963272391989383278538872410191934529186616579244660544860778017888357046445603472311057765203763557171539402984608384364070901868611727731128385240090184401290569576739094748636334806538357100879970244382859552973861662624080853913162299072804262340681846467186046660742078722920636841643385453734707685843622811950888756096645990336570207566258490948157919674327405669249158356602575374878345686024185677060216880662190514188329913678218270667716886972915746979991653609588177132554315204103329521437243076740884747820279874133092757620262915755737601819670405320517423329536775438798497426308556598418430754037067405874907217355051599624814906061558098724380226748981150178178744700103352197574337299927227033708429144281251116865844751323036909400986112368493667204792077214220916301007619681893347788160701888776419338974369817605915020048931277052852117827986061603860878452764475427894491921718276578557061402864561444937557945578108416474852494756068675902269008969593374098156069029975846764451431127571437656528571511910293066178940753466826415017276231213827309471535367553237072166763327349500395196074138326009708595080186355725414560928657411817428851917114735048336847000268947084527099380285903885131328816337626497691672281480576633957769056840444266416414550373711077039110220877447693810766150149597822788681524893880099089193157049757713388600418414266260114452525115495447939398762140309819787282407836432550651706719941892121685204973725292315715063730189485306016650328455290203643148347043364879057150409469448486671499243988820386613758107244654075074765930327344298104110539240145685688919095434004757769883064647446952368153004839787921616865369303073051342657031293563113712396807980842612196762772213094281948516779966111719900996654975111390193040800312131791714020159414578750058053054259211718706319899440497304354153280956261962213721879473603079464450271563404907554087810822814480412823659364984985878174398024471701386543128751457175559722198782213943539090055748062296383193422547504745698669577285447028050389696045817997698684527107362585234291851592786098442079216300724403265955614956985753739988848064301689143597190650348924521162340073014683457962467506760193718366522557322657170293387210527442758110137901088962652121176651533989018621358420285576366277454958326956771673122109079092177173606331875255461735518856183476285623365518883323560936335553176771122530785786502466993517200855084412199346130814269392735913415025062734153825674460331125307338451357697778689820740863261897498808534644959448279890658467897436508236803478522370955252370571167210253062204819324694966948005308022472757805431220279030962703118076876195330314807226910776458078730489040215047407141267789675280167854916468398486340903109124864706021009265669678750014937604443193018654382399339219507269167172750586235523342071911719201927785543156458628349681144849046195634918190562923625489878612760419675925594883291110364504065503191566261614345114112760660189710869920752541571305601793110753895034359978047644126226579924911256484909782863828799296548541371596939046491343424602458446488975822463110000121336075935312902584914598869285450065245216685448054681006510400746485923801891040521228271100761821260870819728320162285321916098503405557464289057555417506054851911610901820204314282875577587707781278097964469306330804338674860600048385749986596545001241252057688717205272585787454099956613256253206974308798542926259891642635150641319231209605533050363980761182508794061078357265124202925975033702290452570299502059642304185231041681067068616151691293335995266275170741370225858932081297209947977639477040026212918167294427219328375376687082797751590032735582074746947582712847892098250523040827611443923439461648620940013865980673919767119871898282606639000472433899744848271979537434385738688151971340435553377218073245332239589046870913108331438396901919827249696886357869535106835097607775268651716206877071696684189492707059923410119040285343115700726661311672048423290344169964526143147189555063663288168934878281546253567698141153497995702605965795059214494948247022028215689026932553230889370919942245408579007724152520069995363289775172098214541285246889331567766156267449992414744687687116189375512231893370173596097763117585764115088179682403040317001395072427888977397704297056934627203284445901746636441980067771513030920828557935231458507201018914373000949234633229622222215354850881617610967306639665750948389076180233505833851484863080586147368575747728054957826973958667586354468935936716648193848732955285562304809346370313140421076737795146350045592178375240950846848518107152190029388431553273454368850674070453833311608070413283780611120426923562603471516418365445961036746966857663079257280017241465687144160645821888258859543788996692364006969971120266251955284150692707796558073943312503513066533089191644924519720283144806462892813305297447782577370479343612323333169307089361506534267867129251234172105442415850703746971384526434939666155591990511527964271397210226372263029396160432259110963031371954947438457992763861336959461153873315173712883549219851974535844775486346632249751924561543650294692230634187245258620287278634750596186374822269725356134903549515254710526744567199087676502547280403915365254844389239837025116854161231944089537378293598894363816461985163488469491303687829847913932154966621294389029430779451608155872765585748852909413189689823183038552586607664082146910928975319482037121769540629298909235925385406922456422786139231562760243772742272738482138648279353531323321407257666043791322236593564584219552031718574043372538777015697852667598410558426753479129305485183752659554134307605339107823056025894373006208613246178491868008768755683447870501798538874298781897454895812263405667404768944657081938859536574935629095044905454789130164347808628454416676271579087547566115755240659728899650432705293936404432541425580226969822681682992651570078062171464345968472332997537886396756984493376846374473947767139102701249865865959734205821531554918613553804904111578831084657479512889563951235384854102598957373491904821275111975652343510874318320605660810257517862786214709332702013210505446657847456313583444093629379575023550765083056570632958017767104245848511897406080553381388589894736110223188363226022132908639399500889331421499777211716397317318882075679974110061747544348126973316825244129407036065973436685412486973166489709042148414312417168010390753336243448948594552377175968170581299218770091803393895279806587339739356598241362585454741707193114953783956546443848471344477140751061180855481913651528653557527671513055414655546121335947172852694391664312808216610328847303595802430521278727353542570456835935565246464586317439088458854528461928635358316682004699778745653944305553324716644372901848062845968564670180286921609291414801211047799377089491231312900424672666011692916384849398645840096683181316002049485412867584875872920476448953759179471404851232559968878655921834077445302889814324994112858839179405577737307798444681454510744787696313885924298196196545012800559823698072668280851538915947816611683579175706458250078966915451531569536644962222673160022269537671984240550002363274936648577993380677436504141323279060435056506382334195452383105679126737869295346026517553651267213328227076878562576383332477091902783895181133917424800030145211731284833829987495839804531935947870762174040866716222927487003593390981375149417968545912233043435344708318900190559012990723580150393067314779041080800219366814975057404817243882832583381431262227232567469273510419856851787274567613596063213497673958033087284547229943728818563451029689319893411845976349077793286736668102202482123445333775218112247108905113838024454172764017565741250009234663961047432192131361210512829755978038765343768424001837236984778781225422903846585405406538422835881631916418237326890368195510161435610438916552373688733298114209789468413883627979343393086929696590215141657992101435466789179502297027595536835599352884605401343924758465070001095959506520069250832770113218572310895107048894316631268671138078608927380141132572487554682278914565771486117967403664865253224147832062566253972911075212819702975467835278197570797595821334951381479013984557362291827782721285360970160393069589341741768291068237724394152035588731429630845209297130875304275119895795561171925869367926349424126167369362208211336972797654807662318720647965454528093300172186536945536733473775501906855849030224329204532830539064281066514387684486068539229538795013145632171757874018254178061126816473721817625861434068572066533804104778340438381745719881369512203988136035200611103236117846047222118992937810062857074467722236741069427791828040833281957642865552968813567024251076624072310104849932886639546707209851321189896574162385152905563508116318020894996134354312890794793090473632168363333165641543555168485691304424370849649330818900890543866267649595237603496111973108885912410143762609513606125146335540171953754365827676538325115974142800622201926768651417379359520196637894506231681968193362995784683543294928451880840999769569015593491269549325149482832449652103885625466303644379133465420259244687494021030391802136958862437265675783782912314779647781560126369582235288647759336411845363948746017494793061126888116158643057847950245149800555359741515952311277190364401220419985082666809765352296551582969200723831374146485274954458826746467112358039645697752623252242158760922431027554579344386241304686898955276674436753044082405656319382468448592361408258393745003318280743662035061910773250993994841011537943658977659584193743174241855904981248837957140523446354473434907956285504573585741455188677017186162336975517577807249834979411465819986535781089815008538203423734042726060143595030376310095128447670682239775825301622037660358057477858628792481510060129321837621885066900873191538475364848620943288665761927883366464092452421175740078321071860426908532266683325544291408179561335134806609510411869705368289647965851989988638287780915900860029501025526598807988856203304874742090375302369593027691255950031654499593338322801703523685885740668713130398056957538679202171633985713350335328064743784344405335961970667824086774674947692328133240565655392805968016405935618700856455492545393534114644368661001463702984915122680096089263453189420041183697867347841507647327791089633093631331030231542104973479672755550066643147755516510100304783487119591191322898555546390059124591901140441705385281474575042315485452852536439363151009832260327898399496197065675745555608033711812641825502432961376300589856037146716656937149852876575530682129439181083985484550127271209342441391594582400990982735893011558638445345577110031833024118357705551858321908777715327127917427110920527410560115470436724104757330044701896344185012788702014341243759765939271898436681152381529018331071085699169414235242487870828020386792764086855987097451368422199713048690861421767080098598443261246784542537939302300343143455752937917853272998070974053269970502333960869603644922790804981872584984520874713803479688271197535322556486881000538413285554206028440622794397352861189913307885226013535512295656251321501181248023127856665892363659201689022584519004606798423695665025598856796095338931061329055517276527228983799246105043364368429990604289845801534916946458250214114704372385868781306309780869964727631810311455116546791787008146920071233924894311696815972205099857352214155794059395548972446240283162325037689277521618207834804762568757460311629480152001810171764715693891833144535159938707316201925041472491107661049564509476200395120916435147360437868607993821939063496656033690749219291699746203738559554553342297827364225551180549639707761896696832232272226195311465744150539591560695813313474240513432456933294349415554521821104656138577316983519480066761809443367757832533292439104276763948177751844937002296499411660413872720265107413182255070394111621379718625327633610599105895241046892773732036830102997752287703802118702753197538730433542215539551447519998338426993738616379012692054969666414007877834496048415109961907200116444739737225529315099405368709244307446764112357978502836088903566828779057537944540838579685987303580730051448354729648147882082392390398247053312579932345656577478415242163936685713423964925540133120065341274900543167165386196113533470339002488384303908067074419216253105672140591664892816140763083214180934073246522161652759868868747286279099484636624433145713044387939937934529659826467566593085879268765970082382166943739711763452796772612860138884438416556007909407883245027324710193552525992113575703722196503032118110801717438753271644921410543418816653998340460626459231610465965719424906399039312755624290581727141181318527839460738318487452081871291975268091395190229104350061690847976079155102436531317951273949769724969166540735533746492838835733750018373426418607140492279937685018261025832679524108324834932305351094254583502185598712319478112807740515662634142080156981009257409737327959149157938341757036074055774842373387969717138034633985907503986483957015069210696428698546328935715078433250721839284246315681412728816882690105527760346559099690381589282879335290062702048424511801757685218219991291305177898638888156137137671170491299369537679401345403483215597291605179544700509086301374544338752923110021791821570542650829138351720613973350110615152407117062323040296196654439398375592254681084704987202745788280670360328228051276608406846772512389764195260935465156756458454811258885842304816290728123705247090976832912903071132467855309838519544800089677182522281811766621649049253549499477725995902356097496107337699177125089591176734123299810949845958835783263470975303564285644357868645672340578902058518446763083022228521504157592340072845604260307750951232074665745330630832162668102666007184946258540169839217938403708259537004960113823092647052810025244081170892953432588302946876721344761369615966048161495621281549964125453395257133135542998693673422364300631468849012148334661217368609106643968691568742673016225547765812133422047288978560957028360342779593500821785363762213468447581172242386935420054727473941018274385502799927033539699783549233463774653652238152408804369197283483337051777713209742073803512029457056585505060445225223296908969231433407875267529165471951633466372447524718563330349231582288736344250551094469179246709744025050390382359663600392272820997093578688046020145982657001293421310607271761628576492757567043942355077678546990093996233054872286910486377524365290728713164674090004463402207149470963409077101123517419646972330212039301336185194515110960471527135134502692121218307468519573081086002975737375424455672193937377197796495935295911517758557931150669691443899408439051832262619536298675983475026047387144077502304863821936511569786517485494959685007513899214082964841800712648546431996080913547608931583018050185271167486557976504144484079442958389222700607442017401967695228219006680413398110798800902983730211052151490308285821975915129302839693456030068940825603799252053512066626329737651834287765292649712556182675375313028418380750824375963753249927429508787994681854941886375199725310527571426606320013645099483827484894561813369343403476390777335137597473584026743368060650625898172975553957618944223201569181923501691413835172540995562167829527331166361741246948207991225685361466903050337924453680761602609110948257173233674623759055103163759521568677111413066440435478674472589179672078175205068581964170978857004076893265107233412455385667929510859079289810944462187066612741071459443861412262097399254029590040796577149742253126248101941725424074987806813871163294089149663165729853682118384628424622277320795348443212296409799193226242357370914338334975946356474804048520840306776283603872143905797278351621642887036650542101657499745095551307550374033406559918459341877791332928248829526474671105032913052825498782672294954066762454400742402796555667988931931916350961639336423152614727818607101957449723328146532624529783197671878669721077663510712704940236397836906092513437174434103665650254441411866843059964171455054381710672127069409795323581599405758944773237939011008786700258765774377441551229017797039133281316619149675379051163160873663698065848243694413982659617296153991781502741957416488811468679967105423859410736007752717445430836343142056922942053884166507336293724891260939425988532796526673322952546611884887333731294548147708836200488487618951259774192380753438010358952700108154562613196351590664871668817515939810779781474870727871960732454235687934962327687593159175099198115910647687769459697043069686810165421733064881154418278452493059681642108130428452799102032308960430011795411043486315109584421946212820539458238823753970798441398996234913731898062515786398997629578542134232178442254481758733791114738554616454100394665757520709302647469162179236432016499343584742931169328399309019325090306312981366688030600324094368928543237876410117271545118109234521797293664718875715330220703028823558232588143885935708548642792973233257090898317057459151116920593617451170172391921702083244344196539490083825824837105294335309062053900495712679175100030284562162773955480979936080096162780850491389989980513042089314565564394805067950546334978751205407796813096157901273240544039863632612548265000473678451880985759035804267666441788597822174203960296502034241188904445998938458036402569604665414422121458580870578530309113648724097618311306418185397852884072749670475854608962970994177544083123340789596235287867366597684936873653900523265290718750853315988118771455786307569779160865766295042595722395499931168546454575292716304705900680668254552401433460606581706983447671562562210640986404724870355469526600650212433131117403751776721454850899947276961669858537427927516341644998281234617442464380790472479209328640549290576938119099522967632543869482878158697992841455194147825093464813753273173503578051320659785855565236432834699830020222787794931202727837818437037050604602861698375387312466085308354973397289001943822730578313483076964275855443470795820108414686570614296450553945332748635307832154972110663657994088083137753244743826490580532941782796827667645103971105773863453119718122736247227682970956644767439159679209631635939212324763489016359532063354720294665710428312254345990913459763509095451630256497223133774047664298882684522053820229329206401472671892638794160292558295170814152899754467512498436987198148100012525214504453296874656432710117236410151636160965516930550676486754890059585621799652251036605701951406864652082450619342007703137126975708354755166106293539010052112813342948087329481898870153083478704921352365818548391375954712778481052509518051338437953093985096783370620557371588769129228995524931778811854057066114371601258227480616473385532184806199566262737025414268298982625219153824123926382057143895203883858404822420801255290734316787646865669312783387695083274938896751153799758614347209616719580795834173106939368221909640577183831732947245234524841479621960639349966680799873251838816773091225334990683562145762913788988223817875873948993194407034390716684322628010930052815085305840335635665439659072809027956551911387890247442550942454820902323109366632610816860817384178029855806351840995509618730727345122088088118404065516809489002269967489059689483054566381033742868344050475271799441786298022600617665721433668495122391235693324518951399826384672935393930817975417651896144926667693084153318471758905343071991276453371757353273176697386850221549377418519507356238587323315978835818188490703686240048153465759953460773919619674296570613342658029629308274795392310414647734475489883729606628956734080969575834469204828265761274668360208533016955278946919656842767546038753110101527729418117816066704906660343091398499814250464239306266594574238968925946655354342119589051354007456317383833037439654558615971172147289020414195160776198232713420825083302979960128015779299342284570142886973595773246756354720288185316049833216520948555309547153139136287475213759593723244579263030785423458025100105889282499586939012930138243498288694799613642198295939202127540031243855159315061968128619238188847076962590423547666533099989172952286339795970525280833445994686649986560745001542589745787866740364114125874583225436843174197795891684680318186200762849803720140808609796036869242623403231659314902191994379267147368094691036323226929154164435786254201683804635433444218383290982413238633954856179591899254461156773764419797296502237588921786484924150336034206871372501521812335144499410183711333577223988467483998584190760595930102554024335095099817396900403441140620631252938493606269214285843558903630559094846024764784543503118843929018022235281035220754467778894768672986895764785244829889160468974257218138180579325767577757455204244458067558683083589280414061099847698810971062855988569741606157686638063552735472338221046174660638495144213258597275790517908924542304133809234897602003285394766543507765002030656766683843992464144124799539206015389604320922020532629531462958583504522437811737652405128725397172922917392236492116613298005646091667550410104814634582260651058312099811963190716946287665892921871285935304659678113011021573563787734445611460711017777870895555243151804299688499636547097482616329788334792450712131853490661665133754193714153188228318279021948853319614453173951353502256414731051453989539434300313353944486706200262765565661591407595103659983017303455798699847683416488660454476835590349161575683685558957509182035383165002021036613565057324361249521362135367659987192414145759209875314358876102012091224138369956411271602948432179073907931853366918658709780986067199137833000855988511358994854378486523033488216570193794492028064734750501514892500359228082046406449769690965933511391295441435533915199493694723034673851849362267310617592751227224831069437106322436221793896245121638639819066151609827413128608837345185893296641936619810635332381361433939562744856221148819551628134587288787912673371184462294152031484112268462185349700049213830227074375617269624774419555121646729188459928532242052126931740575684129218744779929879442218415061603391104212206785276896102267395854472213554651802808200922503419634290468640437649593416685082121300086540623533249121070403714612808625580983696681655723846111026396818499542375278719193941467833038905552470620057429556592574708324421249295318808330293986435511169878617523438189544144408955803705916519125345588023408100684045798696240567845164761638571569001639801009590531479384140388754389740073520967856271166552114062345130731169005407786739340406639064717386979418781622055685074298939315551091570618159434871824068340577245854759888782236238207998607882927396946450996958180004663291928235295268332396631177991555321651952436584875753250402343908191569213220095797244260628328967401265388130960292457292566464514660876461286172500023374583021839107540088990601115132479423528102056639042057386864847341759840126061013220336395143100985549766706923751123466994074960831046098205849684354290794432741668726127719892546959548204123553995187687764202390118887034399748195858795591577228437453264058213321212372497387222709457694590090836351648247951119168303389534926535052265409114863697809832286540434544888332988247819466752887320794179333834420277641986642023957262172750598054503521957425506245191631860266561214126524352273285272540434719495455264172588920218275106327065043942626075905902267778086094239355676452852678367812029999296668495934537453834788241812304549008127193018636885619958747049445305111549890923173932597597426146303486917568774870139232217294361528120807618887923482356510901006469173605764502564222337157704361943147370035549027118209667073702700497054310302612425802376499742958374962689057763134032423275605365164379202948541251677583552372463535091032322946665611523147264256120058023054147687868161139713690879691265052850055246151592096333715903025887435346035118600168398367429912971325397771979252324449533968013625910979112377732737564069069195161455903751881149503926382801410381947382143313495061247280847070352829831059125618708105667695250971082179553240767505628358452147168418264685233168772106437251799510250969804764775419318994838032043701318563759224347986229655338598418483870651680551181542837576496036201597265982544133482564163090841459129772435280130778597812959388815013355507971658986315831755883777712736579036972773000709245981838775185196014817307176051274018666150514875456947708760906284559807653328757457111149070526406149905147304983294969924925897494800408020746758918439191552656578955941687310848350473783768353843225463027617521918823235981909447326237511315332276293645158262192188730836299278198452547365991938137435343487328982808536141168236428854027235285261624184276059266734349083571233897001508055773964243617042955340266059344888692674687844307465421554670669170205463775420042192781225473829706250659144462857170657157728217095349291866909815380818963682941826562995429743846826658672598199439503850925353810086293298837478278549402197150828587996443911456128056139182903027953110967441443478549487643568569262537115419865632337337256685488525167149832799809561431796451055673954987038939528150181060231783206655101152121990755146358217141326484744356730963845811646941477471876098688656572012144832075421010724059972753255581045112329264225517389398351358629183803704408601272750210590447940900013785658590741116527140607876061521126459026126409089071832699423495327467516821604130383573998587514358508977380826626055567958572159797752438580913081091604119086638180139968170097221432068139910911791463390628689114000658303301578543406462886911726026118485458843047410384400350237574459434394353443388437823372168214217141632493129224613134592570570779987397150034914220482584814840860856653709769715818438565197446982424408753849064335506176851882111118960046721448043838816738136477132805684445803764757445914223895925841755030310161630165106358738738419896309129305632343123800838659475544008645898718520511303556895975938550724421873047139801047593352788404103799252253587597158787581721829997652350479183677850461578273349801111253593608468063091357796507246048528555698543258829037949773917140127853700665618139164267384628214684276008978273899726815364242607432314572050533408845364127084998187450152153221299376292657984908469032659356028264397241097403949161908485294947011535401825155978384524337512360178601955969136768905821201960219762598805043115828710243865022484760856158136621341752428276792670447401035945583275062517915848691193745206387181739332196034975551852873681153976611258075698271386430787211501117486246633250012526131900436567090198605946752811682600604604349066405568541730327572989751042220567749764739547563651076282589987125153661319444024678985669654982493722159494917953728915736011957326273785035303210446515112322288653093937029878876402047582589878930771126897652760913443140903015760239100676977875334143686506767903959380974560658587883440901811161098681069896230835190842345955859911498717200753700800500916585400715837912161968244198108314673109006308692461869668176803521531190033922716738885310274561698796903489729906591761572547328203028913305497439506085772734081387974757278784479832102101848303434518525304269609419972787575295095939086782611587835878965368989134314237091521724080584815181781676786332150613972962250185286038703703342370052921744336710627694296792418478918471653347793088541582799793757852449763768440534828294423175372326836109287844806477523429207020521197559533073082046507811157153755648663422345727033825363707245211261247660112730917237335277590379532128426281869508658350374287625063640017876205157884488428189099954739097951497570116319219986782210606910574905498474431826039972734337187572756474018280631777921324174379404483387865600939696227784408095163228515798139537259297234333146505746814249485092563935404763118266362827948087529234312981457278419080007631007706848161548948896074568378438685231348078342789357001225683813010335818334312717564273342516362331111083705635581112295866399427591199090696377388092977830490896137750931944324523303858677388142712115158542553649945635607188088435454862595783617339493067211519548050484897224539028852783710549151099399996093836441453651504344825393527519232806876707294414114379183327128618637102817651349998713719043074308481200800873449126232308228519360193427323453921087655267860339616413404240394967473105596317090196656829222133815776488655705369838510815228305632115120806871044407884045487091402640103317749650124341255455772237579407089793715414173425520392245340476045144166940644022835937835052863727824472627987353999645642478617706158604819369824701051260639401617865917176119103049921987947265755912699579808693571423449277106322468895986427752533481216089916864923350226838002196326221405017907800825927014290173789927415856304437812570031159056834525500865525893931798315746465053466619044233080753473080728710639038293420935210564635755485346457160911859790238271302863590946948434121144304261467258292113227520744273562961331585829249364334912257272057464794411531691189595568199868557239267665986927192720294928134480602941798585292313328701218808580383644689841608854750625447449747222336419894667311788043208713798202372536717867867458686860400955854429623269015367364498954168281899213152822725401562327528920661345107638562182968407883943886139245541421387691462631302003545568302280453868272682415062424656954373205162020423413542377322768135556142222390046348475529333486441607544377740830260778132090849505236539011337244482487620628342384782265639987264588102636162889028757132396523583848895583866262058790648734498563149268395688899315907805012546806896661534590758826546278232788248097241293890438611306577767436850658657149005696143828538911329839934278732396518374081388921545899446907351360372507727750039993559102828875188005661424539557885098727968023381953714521189219753304041335353426470037090146666165512296454790107615900817111193708627671082540440386878898352955623866354268469642372245797500465633455030804907009817559042708770912992389386495903338546285366308164110940401931744510847433702362161980805972419494786209412195566177699682465739239246197906521420686338118056800498925968148299986251575740660578831554017845415857046192225493695691631416004369446640979974725678918753715934355185811386716930723108839227110992096149708275540149120921688864510979855833818181931603283265285945740063406517152981645721174833266995949756105423703916431856536405408108800419842820749886611179998231191992370344783335830887595979909364163393988533331292834273117876047676949658101957968653397136972842682741762865456254110384616162517217673814983730635070849719917256522569326025652022871712195668481087880368838080686674990900078249221604254870008628207146392445630919067794690552407638967685123705740662656958331520178718429317730793967924429141852803156318176252822652561465608218577756784530706170693026617644558400434774937834240702343214099201197632992435352099121408171449338772106088080487198357722485338213634741887671823218894433929326817127915532722752375677171454269613006157601820518501429381365716204169164567111629904833298701144992159326587954911295210918748189692981312368595723269910313013895054109037133642379371460389932997238289951739637087695339504396055437234615711098910519107909095188168733354198390055459197721442587378317801923781302950607389843143223900107762735154595368484507532658850370784440448154235389974367928941861028230074758188303566208006546452274677149546733292343835222091952933534153290694893221080842013317774857809463557727209449911455795091342589342112259269879211981298286008397955480777002180855275428902673841135588214593745206235421754714168104079734308109625069895705490543014708583713820798477551767405543051895340801476306840374425162984524265725880157648748210584449287814003577452231276886209346073143229025522232449226169248951215227587854228310238577814865118139442847262354448847890421775914391919609809031526289326130727070177456343747339423209112160267132801692294742350877029888885332232356384427286851640369730998870214032376837541669402836616854242261006492727443069377395499075631547002720467761797032393856257038048636492472397485509948117878828054157782749542415569550177438867072980612141990764999272088731510608483131444135028110642348925044505581775098285301910557006003597983855688351218825839591088919531671875166748378088079850859514464757538522310003591000512871634163860113063716932713441725202063615896885051399354424365039124482815409260700159848743290967404177898010495885984293005433128164629737518065464830009234780487333118670921486168657256526966012382083768615641121874838598297827328497025217950562265512343293836106557235367111859458414205346028910820853241062406277932714217283390222575586866273286641672173549814409280776315223092000025601715892676642734458265695864886665029506174731086213357589684180163897995603928791378274914176923707544927644154731666273726851996068693406728971307383540802448722020141012658425124581906013041969612327199946429756851652155909381675672505233824058530663309896135489819303132975532033576128051496468177498777179554989450299195965631983958197642137986859071268493598353172112526509442014354131534211391384029077339271107008715385805895101985128900851421455296332900035562629969599674928239551374183203606176171223460484656576329557118862157904880231928345875456499524179505660837289369689833452389270875142732065413563373168519130725569317148868496641749879469566884147709377032349611089965393382014021200313332275658813635628039363142386371412557423590456054240084252359344683476036707158125352227135131257229832695054326307145034093227897928811214517033047690565650554226540637291855556975456946172641640376513896661702810791781948294874519734537746570042159498991944495601547667220140071713901138994239826444454034278875257568866898247306144019023346789416736491452012742923400650258425190785147725591476817883007299973782265291108112979519125791090882917030680082187304929536670759743944070257368947142929251214415083060033382692603975958224400531472056096645018017835822985481241090385742243957046193872767218256604286232043629494649066337792325035900358015016080857203511761606896632775596133782889307395295619527878310727720345791437892920422783116844182172893172513934347994267298983474115923867781515166360596942638047655841416823163068772147550041737096272665656091820826275476368223073929692904196353737679388089376706076558986784938198332921921316755231243548132561311164375321995677946395971764689189111112752785259446657199738707576334556224761078208944522716074214683155398615446795686210165946859291316308932029503925755426869448209967020163040045842690503758311111386002093875683570872294684271451371259848137395948220871751440968107668739830986924823256998840747451183730359002893792843836243429831534900579877585602968458418138872118232912416579216650123423826163398369566588341101219233023995192502555107493897651388609710090079374567366238707121140883139568317602853468917185246348257217400247543724672357449930196305414038786308739241333751862292943662547061229454281075763862523201531033696975416489934209487919541504639555270155796323991615042787763922101939044788028299512941254583040704449599072768867513562667828100544751772374094091249484164804164779318186919072400944058543959230629833992705219550560658026214910335290475929600596706184601201033274558006652305696988304637170167831304349365676494281872749504694333165288226800968512547902252757408433572561519928316957356009319034946781051065414955507013435677629611887113050488069094836775954790860697362664987893823205787137276926093326354521607117048341743693839466143903590753587640393800868324751911090957603803899022788761233747934350449265935036434229096455936078545898505328575214504235909952834887517268349540684119641630296503894022913374581570137275840391035782923853513114393895516115774076726581471357575241995003294326810359461999186882660911082139072901416455542989180471983557156801287782295447799876884409932078502040757466845706671454575270953178592798963957905191281087694428482164658734008479436581778177019209527171700853803918066844456235594568220476580308132425218592380968856128084712182100203485784212578516674607611679594220733742676265401999143722924225695302902235736527479345998696151859125919894145229004436641608453670075436868222744647411985157143057582682174354337127326724798367373350464192051933976772829329211790927751583632570889513253484271266873737781558232106847072530339839445775370167952881191365978233317455596116293075122454629279915588721591142366981767945486101118015792821968557635507841895079021173686166646735955562462150224425654385905132141669221795696834511486204864750661432222549077633572944408356934903596830777306657215241441484798639692761475896033674717975558258249593781904826439414286950639278235201612287935033384715284820663380651615251417583534204882422714933921434030797873534759575248791920913232481800897364716589069404548966756763681511654599458026457702428514896557405836542610157572147605009184502964212813250310863654013800688289907508933504041714401577444448546940972284973280966160362276472122303005736843946390289990249293900571953320609964107698440897948101929559503195168193182001203308016166997569463547603530371581715271137191029064724018185542979006102909274517006907075892452139994733592987053024670299881207506579690375850238056759876279348959581458581356711434972270488275840167616912179852077553618192342622784146127235768711282335564561077785320240537401070265538168580451272786464073750091723069593880880382496060741589149043585523706875432307964919649079120495997535609967446608833113952088597176030434581538035685906505295983451190870521123888437744122395539955837251176227399412274219845772074485918115800590150282214424849798032847349071207261468567355613960892419838183475343152137794787451612074178050005775496927714665835662221805350054611737198786780274373923022649402573249325940752605373543236927741167326515271631724543151139126116356746158222584298994395549115678825996722903884177215994640496813217232811144950263486539085063539241123094226135595033861567918336932901919409554173091000851966824265917160627993763971117732350622026314686450314991610362518659622828281536563336955033007304278886959606882425320954548813046329446584116819463478495939804512272435448334697963598322096639556983289493787863254132970656348735753520548128860730181230912688473710008667300748551904052678610766426045936921910805730399627322088865846771596243457984769677226304668402583313404527253647755327167220731634136970952342225903145361056662670254982193216561424924050438241463859512175090930774005991358475857312079495012573270353171557541371587045322577647210344454836630755133462739420104524667844817636519077361408522408561807577380465634165637893465508983190251834897746679192508254912986509482210299037873875657609294442767276746728270812994029561296766789829124271351365883488982255788570055088438353212909434377381199082172770785716985207817340072790353688361778760053810067033352790583332093602748911240516414257531527048726840525591532470644192775420969288141224085933160702822851020434704300469007304737225131976667295286712854532879001219190163347636062311857125031621094972727236302252326197820799371793778904222752403704245093527442502520534911605265233362194657440843463796768997296627729631113731931073019694849229734460371103759950298654276479417263911597251414556809132471362392407323690965489701657689612985405562183607244747973502538950974334747124573500154164835996884626482414046282022157078743026808089822375921414647173650128308031551775243235651394879267355793266139886113479878782254474540305180567739823218863599226488446986182037060625899855854072156843970851354515953750316792972352077895651842696366306969495108688713347147865685725341034478708252086545221834947808952672350053260354116626472133481118210378008986254482324597795296780805156564577302289063471463334506996683417022445438322146716683132000285289724512914266854226422630171411696484988494129687211624577466557816082228695312396584262268226383804899305672806954092306862693215019667521241431962868249692554722246015374922558178129355513584553049516564378350774025930960344291343867274801866913694572662955674411932772922961406365633551887998609762081838660349332799658383537938765311121073710397039581595363055454986710338789415254628122737549511824555611573536771335092738683296367414634091177577865233170452698830123127782833701178210703260825558764319854648603658888589378072857128883967058749746038791127001943989580127835580598968324625141845223764135232289582074985611314006747997109009835045848405454706165180148804161133215911314818276650609728744083583559472747338644318771851745231458182223410258841392729674626558959892407334116255370000603396936136314511808142565626928158633169356764550640781366553565319468123555029853192015365694174212813929665095140210057329419419434827132737327265549286225814661637561484297491913819297154814669556969514365875365524123899076451209139480312764158786838579618952618331426861765767502782962024260838531581265193126634914205381877599185852623353332012230866669651642598329099823815926280436553144154321927746914637978741382656000684372624411560899860405772007597837127257012899288423376155006797580312464835714675982887630223639512078475467689974721762945502754236226331880491568716226073653294369532112454117881033832853607426075382059519729776842815623645985865242280186755041122978428029001278677856105047786878073623591286352034767827432238737749382192581761559902688315604613588898480209274542755633530478128214890507019582861421259238232836734812518514565169838289006431480019007825212141367847549902301894022474073009365680086143482841389062269438801342948604707797111117955705290593789504896796087803026453024754509307246819382889077098969515307230582370390222857302661457685756203956806941215246412811588137451831015380912703022374842669631306748912460401958043753313360917196983753065391104001782003956156600036989479653021399620417165754057660723659363704787362124323300571191183980582038568981897878258460260679229982946189903325292574721465361263839471386360752616791822435945552073390662504740415474930158470010502088040248921875754505018935105347144538327660799648966743423423743208701029960411142311776883071371169455354349983963579546054452110236607346515872963309984042392536828440927511311721789525140642512839597159195983105173980091842950912034809323195209162098916829439289748681819478898073478473111464008014477406372863239174347735391331918110286906080781177794311063176581027644432163962330992696495090461580608356725356053194918984355867829701698588057829021785851272139350407901080099000570006562416843639480405003429289890810429535326379786911351135468401105646837413853538420790584426784796289358154045577133602988394711397626909859607759478299598003606444362308955101065002773096992587975250945722651752008889722398118020870001516284694311105198762838210793994095093650513253647403452351868775942728363007107351544587656330434570641171823610685786611100476245575545494743590355209845313243620345676826704188574331445439729366882667268989280724586146669832291500041348295929537475865154907155219645337568833082700399961603474476570191396259723544025760255634526622518817365501371535930963331666118035761557116570806314537904930251915586729226905855492305231586727671794048740210855912716879332130812670088080933022361481762819651924284931303083873502913389974257373606026000528877474089775931033937101828598201443526378778392053508965228138584624674793113827128704337536953372444961105043359329477610905555807665136654939835654712885728259502935047736595033652277980529197750847904659700197263730651404083387989021359617121132467071657096829217697438950379124803992940413206346218295713225380638402309434376991406329369388565389420153758032617612639208746233509035654161573086022995190455245217815099750062806184504014157101491254606644496629122529824824193148075888296457897171737847455462205045441149098461579964946447255672793267375893667917821474670491252684671080437055256254329813862607468183303127624205957536619603588501344127763738451268378170674274148516994613292266706186106119817331835746771120391003970155175815849510138689374580520902181356233849228396834981013764949796568762348446406352632121149285223654320931349329956758353131350993928141161693277468195812681446069097916107431704536226808184660345751721637734706632051152531006604179791539479300256065620360100169611219443094566072557276995122015805415145098583929843307283797556194089997196674765004978543260746607281310362837575743471038285700182502098509361439083210746346065148982077449327437928499869714315363174052947119823725262521958266224611811270417506639994268365602940490476330586372606289405921140363046697502794378702926247855225398187099412251820081921274871025593973431732120287870789014482323755219529774373855366758177033256125752776078320861490042333977492104840875049669211672612146446657270689304873179827151504778961158228654669238580408434131151423313997567019322954885864653375470279343655121607223705827436274982385025976052150435770938434667100794477713477331586953732851619431601788035071207733029145382275982792783097423927286774458969191369711190706238657452603938524276957078207989346497528672214485952573001878715772110670707810421690371262802539998269102292863380163995588862707369485296041021483715984028339140540984230133360459629158084842405474453228401368052354192551142858412321448447512940888915905641897412127624091648030868250576174381015137679361029450539251239821447319779615830945926393275840971396734480663986984663770643835687615350042585395262264703846308871613638968842822404012043186735363238718291220364458168875439390055686014106264003279271652868586649179464174580400144051085410741363192355519896308827428479899581853727997381865686312112561901564174601250882774254335213940888918198239236406006209720568855529012434229761756322629292522664904902780266257600049431487949215665430819043273641408021903758081575372465044575300281895970725639949332553124440037891428733142249530663106243332014251300418856466665906525754999980120144949882885090687669175121985485341279597626001410268598350828118543330758844400504190581997251496601526981535366703256107068374075608396046314246814762629306074250045165629831051919242312922972441383587479948130281464451451039024747246153909538039031869718308926870027444542993053393010248276118252023863801963328707205690961955234460485446524444646656880588258267294219878513551601434225830832916678919732212674416558497912527291481211373588861100785636000987541766339838646652541810684817041559566064216759374800462389196804297887721627573240522401961903842517138937142319436746752166515784096302614344829552113031862671061056331425625064209699406534342427774853124603552848296100074617226002128636593555233018616388075112160796900308312047519710915828087013125354823748220149952311340031112866475039681020484649630905704364588741701267878042281707833947593265606112228265042243128605003087619679631646035038741473347891081527470092517413879753602273202135899358915760539105771581627874087837273491153243766223685963940002039119311960783583932356584085879359751893092644245375431666521239298963375707172930480375223076824579016717886464202030447611684135684111808918917714798718599982178348601242759594276936934589664571468478250908082389073965568457067712290248778392382335410090231151023692323201359870722201848908924072502776830695884013811455669720565033521737399464335076830090036649227142972739706705317952718139951912849833951521077611005667576483395008929148777053056072262420591940736836187341780755576007375384653414316062298687549345564017080528308734862894131968750717152435198737158346060330548378306152211929214256456214795400403971023618957991364123690937131677405122592292860561921065671653873843137939169302998328079251819566146855375244909047455741202268064264832479800539675549099006226627642424300601983565859272444209123205611005509284424674378498637437378661562478379106670062129999228776825801488587029580367884870873536003806946740066363600932806152663422389204596170676415766570167007698158531991444378090810431995444215197198813764553886419580033345616704926996328747168312447377520904637687102887157927638761657746097167247249630447621893680802196804646844763265058045972696393229702952522143388152007637120267862460405787591916420493695191439257779719393988461146534043800147966835104667889433513838924687786385891557252627686092190611561646787710254254528727507372522919421494938880628712836586240809580420554682220726870839725204021506111029403566650175872977835239966738307768092714548532774132735070303618099475068614252319835160958078124574173260218399023884332912032481091897426819901444497976922772237057764759924339540871907291093035546188807381310486544336009753541382140833796384039973173755105766787482431542021812267427065100743339575830459227175203567846538079850256909635097866461101844602490697412606771680344252952887918375586596472018937796087716239853916171262584442212059922721490329563016376335168552584827904048969269385560700042206383507648995405936808559907017406223863565618397525640975309674409416465554602300092786189735680417559168122932199791999960241362849728297561913845123621754431579936986840890148241737032736500263069917566493484579836234312984894578856774380107673279316969583470731849786390056810137505595611390611461162375987152981452294351698573324158751061857404047492709495534901846119860270071405568165185291409380701204407326190867072953091881808235497248846695985028779057486298970134918695276195554505911998926332410163824337696296753651999666239027403581467723429584105243168486037513668220379672900176771264318158520393265868064467281873276825488965348824849740479806229556225228566341700626246388379944974724725137296293432080720827782452973666313689133965202098535363490552626981177158653051077505475132510552459826502919480679957372106441503031960001057094071728573748312578611558993163094169497048963919374580441934094192516622548301472240080157366255316514440720284362311633108370934682016014969369168204323961264014319700165603248661942262283830352085058107450787533549862465566929467737643313371656887899033576006630249364019032600028042599159330499212063146919407752877107215086140790428526287514063302005613577904181843045010874036197073865993350557626237764030287763109239319165586522528416136181123222725601676069024991809652955515126284548850891041067960059804929886931227337240596165333694505127845159765940905913860941266191210705613709126153718293231580054113450171118010107721129596950567962358414259454927689392973341651589021847961514604468958216526790730666504632919306204878181707659965371015543439636529681073472390760325917079554913935492579416032637895207160833285463077939921241643010425083915234414365779823505343931584034793544645638600786137981973238376184521264284041782325989120158827386092465553550656900416884726200524263961719523853669158201741541681552377804726198557037590633970636625284232231958083472028306105698839902995731117834586848482044960023029282475154665200896668932119808280732780834887679969538756216807242719803820490791030085481121555122099328134167952218688495135323574098499737801853401162054226029905426196759408801030367701951567316560435689745060296856317249649185188134100022047914904336019776837788810316126513924075425378979041902187542647189234152808405286178495802603895536858651384335057428665159684564064822964449071227442232106201246582246348408773715971321328591691565773934693066397966671185166394143942598816782295201582333174397996597709398338266039564335661130502070234911589921101510105503432595934282783601572303138058784959429187682868959158539600664341018301163302835396165788859614301472923773166940302858700930526160428585484545717728333292475222274781685763721333144467160288190823172572256960578570477230403244683294324774801544458479366244427980627731418401713601373414742314358226551372863164790957961381778131800049159570820144356985640241482520670819895994864048468772333853744001317331319814413558677593546544878477385604053497105046563564758478625245170604804802459551144060026349513354238562631010864964310090067957729479761066265420237917840658690667457936364322607995360171705436863640899264375842077241020328442233733629914418392832053714266013417198531555529660460825031967742549255501667781405592103981702610379188266919483800219735439358210221407037473719885884942385849388865249463622184756428568381359168929531328632141696098897081942613331350448283255599409754665219558164023620350814517627260200366882586708425873249813355951175962959356125376950339059408597349787250997751261886984338477527249315037949555482917218719056761383705296097011719918473441190638689805219254567465952505919684593015598761842579111851592497143157285935405731247200247970017388547609142477259607290852141745345599573940241309373157004736038895510284987661879016472095176524595086514329883365240624851050260296818706048136845098891486219234063006891917230245121075119493577994045458875992199492154621656438524969766766374976741500207876666482600479428552037112383052416772491375612997576164277622293914597987826507834108600017023874050053556148862698455731927859037814737433561269734815482442860911535666683483068993548238806475706741270245178962840364496912141471547011567050529881572984869999329914623403893625375900634824407265412631787063340407208732751840522220626622645142937646080571429977753764752878349837470075022884910649945142202562501053542820977907432086460635016833475710716862426375634387323530288877984800241442232860967898947400604041435841803741689591044696566678691637560034716909763127889184588548786342195780800145171592452440487261005000380813707952588630790217031503533810241025863888619554791518660477261999815381387806260729497480960405993112057022012935310462090360552933866334474764743022777932692992131719549769666192249323348987988049005916177621415871062235737788262129917316162611258580922924724873878476891460368492319900304194759980064738098688893095983499312167240897675081812038165494920027440945932397163593484748298087543598850608395950055259016167785110816221475165892962360026501180366853853850566455626061808063654324793259002508235609767848466683675329590899953709911152791800384047721415772487869331386537041402354490922208959234837949524454889399207821397316144760613158383881824753144081098599556337370121522164216640120344252692252296002618733323145330360533592741518942678709087294776604071426439015385753802655348246185951532406825321310924790035794190779352009180112871459134811045173821899828139538415726381998813029864002727089662162237246674675794272787865480336643493944298721046079778025892305062504575245152241206428130799976539319632775703246460772849038894385237305719564066336522770378283964187463830579578619654961789455492506652304982031578739829500854181528795042140728268689507223868666830088344124035746054798277228334620602341326171477736114833277282699186473623329320224592357962067813323230939574107334392889399047511829576997835352258534936712844368047258282389624426894055656340485515636946491531012553503995155096859228473827343602763285576592632943175728836130000121422611995106502652446914767317898856805126741322599512828124099371296201450759377328064844042293868487503736321199288999655553499211304994818753628296655954995452464940188358428716950970191485733519799545519472430600769783819516373938899162603930057234978642996801220557892427004273246565429835674279864047757775441343973170105454137003188880279768896545270492768920782454527136695634574111874290975530936284259753634742085233796846658538265884502708802625966607439647378143661938315020339186675354570930778378100431363136898029158129299539762277765139114395581808651308654665355425656336996277380323953096902519823615620622615082778952489702508139519711986199515402702152467403859342983868367448782613647560314198297201710329881175304901087725759036995167678518433578148077077476487085936167194234946107345106112513656115461910664072908162800349662042599166390299721166730752482276043811353718210055769897803616581980593377712438876163162278756374814059970535787491276329471183639971594333947625519388325538420239659633900147542130343730080873967180458965848024127615061069364710922536916032375041942611270365931121387751981427505305497212287645667549664209157751160824332471935408484675241986887427033148292239727756186687592161339746119401972537856009571113820377133301125551390694470467471361580450428795530749816825796630056254823161499654804498244146882832359332459839039890027658335828438773275557798607149231124801054034087955026540186902864295282588463809946184109704362268082906437264133238492309418358804154501931076048031533296892443484255790051703736030328401848231747728491979138911624064032426602574444994323985996038143797382181651112315589600895259179103845231575951930722231348868095932100651599137481672433655788229052378959837112662603726962565745628186824985246129954187774162505664717635685644792031868647272392444425999049077083816346617957447875276971327432610709674108480045236929005961091606467802329602047090728595321872053096747464392187257718327734832561598922785184439948833360256659034047438065372647585173249239117046760668117395711301065613943033167498153666235368734790822526725582870284069661472057569478098871094863186995213600620349080840273108448977767271448666827240801363353272031858193302141605466187132295082223269018343981029735140803236371913406635759664732049931142207779230102889105517093161273687363604126283765125786392384512084310686779723999295477512953608336322394381705181146164793672327464952661859321879364668584730251893736328457534719462474967769722741741204747995904090854864115262109489379917512639244908543498130805442817040411725975005800635384586779304899449473120321582540730799408760016082193367666762569514017644542284916831258226864285524428164511244963880486083669925774532931409631221989505860297078976035226885145966683079655619036072035827513884476912439513102658660614142525598489000175115177839020525294108839411672236336583224893616743966144265301152253347349618265032556478013002920030653692870974236038547477716513534848254848015068397777980008995187663418393900214622553248203602678486524488103512500395400080375526495124311422660347969890779945544737812337149203346967613033487096751175811154060024473467885442322480832406090748614210382614843178000218306496937579816979488200314372305005111800209482599901753479690052588269323637988240207562820272563547517318989890688473860683284993562852013272376890399776316023045347389165729785871747750931911429266709873841939518045569965807486426548053277982944000372753706614216901096772919879950105465254383311117181759589060958185174159913888524267180817490498825785182252311733702907243388849526324031282136118519454483302710931408672721068451303736647772034904473321838168835451531721148372200965980698304811749733548738667401785322542307454867327935789499387257198131544506382651902558402216232209582311572935199709492876423352284851160710212119729125627331523271332533944717506647083925581727049516675286192952107161595270432943376270007326169761217906188696716577619276557478925532969756205266130415103567639968671199836084196077329095624194081557453894316327521194139483250644650652287035242132342336028781190125885778282175428936760503436175372353850745248729088597295994708938000411597780644959227875676341187182691462240933719783134722912697432970863083261061203257457718630429129265948108798860086161534141956494623908041253925610060526954689895865575753166944707892591914397929913003210844624708653789620714638021384719826571339926796931256740558282962723200501575524519862114401970517766989733750046890437764922993910740901196997059997385559096243079142208813257529048294381317850268649822010116308873855755336517572243687124466981731040946873595106601664482504380603809526503463623137029182911613740032971172996399511527649863658665115945124136938392209966404466702879890533874001287788405441654943267534062595111003670112788453434046007557584974048916511166680093106287807589541068790668709249410233397056177486711282640692165377066363954539475091008514789529221083745314546085464584614670362741733607924278951299864528816968564032833847623347699576717290431836362187834973737773691047554254329676805767993161937174903814451328027992980867561905508644041412768689792099596013022340481756250983101730092111200685881202996574887175400698617507458553654450472066681685067639045016817635255446400998060094389251473287969880894733259614730459622983786781323915988120136749135314552339412887538809274403560579299231125687546870080955154293460770524477325790250929339699876741907105119258427339998835707682469749030428693202081014879084181948672097406479877890272390521036482933267806300017971109313253539110975672664714649566412197896180215001955788175729632356942058806068789166966380888394665162655157444022693868889012979644802329992812968560541573182144255324610084208322977073295922761913767270817512701648111073213048750606309571205043541372828462998722071676560611201115531674732439814125161971142330304417844528468867752680028682742349613407654060473860268332812152831362423739151211916085275320807677967833881508998731835877883734917922944573125109102032377521399756102759355639555156547067361408325207082458094352139179913104855549662190736753161392937342253755047096110099026606121830958617343968200831127223117040167115932929891802905116898675496683442010517776933915385185045754375018437757255395706986175795227031397308084791493339600469322832903076889143089210918574254506630582986563664194399439065785666389453692370932203778370914940360186676802844440248068662227914601400769254162530901736936879279855223776899689951322865799393996911906534444859596095111586456935417298599452063639134138375500542472672975913994972328322460675419578323914484306523968105179282395359676861073070263575906912577554074853614725399926208239043709074582711590187282296852161709061806651633035684989446280003939522237012254081098575888006038446061838243831809766335709289255804468910734015532016249385129328082044948344411116505408792655639054469068886423607475017600036310503866716229148090918806759228220093134787444845608985311753057090008203613257388065085353577004074199551228409472772010098597854094427233755928740102039522858639043731138010881486312205865373851277085355848782353547540712434083978473375526564835167581669074225621059708031228197309286012385738691971226126790762982248363814247660985028605742405504014981987346861173740199211063614994638224170645719031356847219121390016521643208565021243617455249228027750097172186728428009916372965733823552335923258654052197342809720138454469669614473603982014053592290913687862325634179928611395038235576602411538050038503225113210126953641259977561320262342551393617210611821016823573993825158299125574746478472680512831380842333089905318208717642823171147197548015801003350906925284192340999007574836535967851059684277375646897850416132187451300239858719073995918117314848379096840762869577719713995124459518247289447349265574113160189230555518693121331286084648680630435032912060630099663223064367432047532460545419476966843401554587141442108783051321607175087997419790885693999612158809411520541348740063919569336261993143711463802601396104652350859660992831134708571565017346065135698442349222632707029011238143105884724490713453835272665010837323187358312408736726215595495686272377611787237090227800187198521503497017664715402099844291076931930305637553231134164408259199588991013366256122847224022410250671404448610988392172703016965868571090132243905261537077929056819853965752443252861386615529852601048596705695258832742040666067814490103157058244314555951907572143304948271049029516151917995053086465284608958427424709902197299283350399832249025004721651886257278331383053236627300295283631181511276242098610417090363693230064898307675320907489989470730332869090814358284879939229217495948668652769516033809503742914145775137364014519244002321448501510082396744368126463012894157760984005856762100993001268225678292335032757145128297737189457465328770889457131320714982807725328359489158318706051834738542863370449042703677418332505544399212441813161548887879621688988689867799133155247867749113006506940540719636673650400699693093068918913765863364695523553642248983013108937887471103719908945514221203320609114075655468309829780904249461663561219281441652122159267663315097480516977396224426184612174320039788348793790747081558250835349646063901455374313777246256513822927658335387486475780490666745060304365868864307076575243102987578907150404852370388034022525053555957376065232891071761832993844989747395090378825164217533094837945616141461642167281801538482498664738560810971445219790689383096617990558659429935353133497658346673917778294570562696481034024335879984549688311836715955730553803786967291004243257640297454929190734724708601283444671052900353768912271600763701220336658353387756849830669189174162246520198352756061285855698696587456575387058376015400075624848644446088229822854504573726373177731253934292967616094807801632677441185050557810714932826477934438582211016059692060935252735660138166209657326276894414265277594578955367850173373446299621893959214627037187996183827724279775891313933732197732004455742365290907439810100957254656498357270110768275615786509370991862455728613883599873168403286986503258277573275712164673838559320640306410719225575894928793234676593147778736367748829474091378308039926417507833990166716406385907473726325020399494313530631076163749038268021403373072764136299520462978579504680183337125083202737952545570429259536265841143123011105114374111806252134423148384995114157238541209460775431457823784975010042021814158384483059147997219134033436749644438795730879541637108671817693809694984913597204034847733606027629834866037345947939375767698928679017324639278930196706270460822320462201069611429966575875265521425359399259475220438961999280120885985043813322063682188413163512728626351372548578904475255013071731432784777211497589314545344402715012722772452785353335076461089017545886159156600951629172044175036157839956590194046056528263264313987166480865942063910701149667683109983181898843803991671742589717038475023190185813874011964664599229362571003977005270933892031019187131809081370444578875731280348006373051498121597883393836164479331886453510539080014819779696050560926855329304627888622224682102303257614620437239020714216645064189866014579242462145068533645124526660205055989510319564177067261645773887342819672632814250453252304421613750471228259956310788145726235110535311688870247464994917452652363141429333866122057755398414841886357915656906194667237934826160313487436064316226123563292573103128927770951557485781836649710888396121290174134191622246539004090719773912632764015189022170908003220915876219187861534435555836400459759748322555043307882616775327358254067381160691011757306210149373516154917221108002255190715529417182866121516639105451860700256993508599884179881408847233433167313470955230422172728676820033256710099583561779900375448337681835657759174315752025070353586752912633013945468767177842673541053785396801717008315545094154561904853291532007251974847656518581896893321829876569540465578162820879815500669226712509515715063216156217388845558891397981365870232284784778689630643721041097751702569523458744079969637159006710727566475310188366787866694054517754393863422938682938697362649244102836080031467150365636192652535020323147893704337707889571398748998773459661011759148992962836824281382772721474015936019789655315066651402426185031086383040860725602934326940466037741264307320631518461138789520052971787736996935197724374277195416062073158207888962338487910449176812749747108498643949671166344276438638412075630833795970574491909628763231134556758462469312746486845899013763182045137423493853818254114830772953876825483750169508130812376195324728679222517218459527846873750026588560757306661538295291591816470815168761242659150837136198209336969793005976267311607424467256739622882785249921236757334349675763101843695832215012962771512535644632739590752848096710521312900032301406431576828945314549799823019966953184456013766369401530273011461521213869432033887377421835913438010037410534516406235061325177337209565329899181271880835667783458382434995478338784440760308829017505141420440045590982807088290988859308290735821538226706613805879732968276507861908745319129407802469562110461253821906330590352600028102742197030914856326471758210142486476082469700729986050536488585257263375284719804629819894757071830570814862367446079946788723078135458383179235982424678112698801142310132023178096093064585609185802190880406722877746385923967760254233949571101765429423162049702456761197630317911489299138092639149107764851683960769608205798783656612659817856259144198515587491804413427348785426456672551705320724079971651752413598300078384608964597339856268531229043523747448041807486808111950622590062079211916495279345925966021151211793413386237782911337764669925267939323806192127365831861702545486552572043640730606541895035839040521872533930105433261958673385828477998001169665635523067703108810845695411501309833123429099883525283274264782696630587682270007813152016522405923536596182756247312137990617314053645800333219237689004655007406658694050646843417063754400569619189316743832568597128603509149058994949458981517986217115474237104404658350911256438522966059733950676585711175374821859136640771091327933621381735791638724028130115431795259081988379185169472556322947344102111796519637623528666529894690879098978729281305447760558793063699500923389915404074144065860740322864043025389971193229538189289873891142961120541088720598191943567808553558269346122434272841376247253547639260144791869598793726173863468483282943491982573426001276581482332854465045465264005383865242016963268405436751848549643319680638262722773307363689840575986843961478380895627238699282661926312643080968038854603969487552813279760636953624409823701813824281630788786764460526961943656128471351904536671861996758848934246100722466525715488176737689845653490118112870463931258523160037967421681336513470839101964781774328518477277185504769788322146502517073483736510919966332203309366098139407334252198782098576340190767885057879496908991886683385443435017239161423460315513900757418911801941433491650688761552853211168369806813950701731801040224125048504635997019441500731704964152049913525634574674772315765608321249860425348082822029118029773505215157791459730280881483302912978681212405175471760505882905382190687721751027739269492947954527898979324304224661828418796891556316247079258317651208994738738767091039153947964899443169992978509807796965485991636882783895371826457425558422863342244090380476730123453425223563266971488549579584757445797426839004296715907466462332775719507153213233459303415744088849845546973249001409188870945276471242277502615362028776441063103473720835917757596616829879819924887564144591836789788389865283978705377437305935738866623240081593520343725978967020210003024382935730881276306163098203356703817297337561035687665461657924958718628895828537571663941091249893898865398171737946855332375790358639196120556450855807983098698782769337940733142231607973400608936177153832189692226707622491608879499714868615016793394813059477825407793316695361935108127530381771088353653833881242257629329029756777196284943343655487359331416266394394754695820040858131871561415877533763891184329371652260886582340267021495787940580705175653477543138245890139118852333363580110899647855995150283773778757655902834162725335766847409904555244267227297111333143345445548931749841795064329930614887930896787821803876620037039704387298529716233531117725667954955671688862799768286320637320276787392397695652065724273635572732556767386178163492022047489465127941204979864263389114445687071576695896151687021505558929355220871234866285843681746315801557027752386980452647467665767926741644045416055044841006726170703081719885773583219773398028915831620662765616466230731335651863780695190568080255334212688055918462243982143594172334551481341144578143418055845123879529170985443790590853461327132288784186938564293996685887735146066093001850176188174761887804364745656101295046203403491089364289673284458846492001913033765152624356893233267020439347766519063902348011531541456984819555043498065913507567059629525697002957691574488601507262868253966118371041235368589553298052760808412129935797543262120114655573489807599842053679773127921315775946290410856979688350536954166345173827743612892839184465324308574796571811180988849801603258671984223598380675907490743336242274877912898127734245500543741248993625529275168369800600506500082014251136970935076939516168154369014783940409618156977161035881208845855929662780280475997971635042593208178432211244042162965213649734564786796151185646747420384857603402123801368330971343476038672167479475802875733879634549560193289518554263634160843364251966337203386645405833896459019895424062983730354416034373573508696319363462311889970460892954403351740425410161236421420050470844143617153225468456750493443325034744933904920964086321303403754874238220344923717730121150473966633868435053395226419667607950395608689444082723981211100021580794661334765347538447445952297818418087538126405879163767848213137143076822152929824071528432741104438363218424813407934711807865729912405209403543572810188300598732939289760212028215440838506001568533088711009145442055444853788522871456519397023239281004297964044597165665103484402886026380318180583406980984372250703657570647291475411436737646669954953972533385685431083063827662724837052097658620063634578460713664773419532954926091282116236042457429091180107301007373319846229924549622231226298615696945431368013304805471886956829746518161400363221556600880162765609147279544530469544607508077656361577734265457528862916567645786098295797781270952525828575071780874177725340929259300131899926009330169734578562881024573615519312215276124549794611969716229955332710113524411584755305230170448441057085570736708448078669241054593296125585655205309943511635083277878462163769323516399349891424845778424437869277322230600982860105997218643255254940847923686215515790561352441945523622485410519447459126820934722599237647532620907843566570116468687920486951676165907052714788679322578596223624212741331721592486250461554145266482988829101138599061056511795038437390757141064888523083605388645685527863149711808342628737879782042477775452296846016420428441996202074580847956922909135152882449981497281349477288656176334757732821439091606852315973186063217122374186043532087545954580231106449135427205533928967563768828275431706450550991115599737489542517579592276444742743718725265347328967199070856559527051722904730243883061499030599908326342176401379812513444864539464559200502578297204637242685798664888400234098359440163263637191609372749927367465190229251852637149455846930373264904009422100808624626131178086438271578860471886486300592346932406333946845322919802713818938999509041691213227754218200448774944926622810391069523502384920591431102403066222619715838784759985673688015881911471320497515923670491951418617029201690154317622575158757020063445914948682356222634530912720198346729037424531658638183461485694594632195801944960453442719117400671317347232979129873517285684669261079737721789816646776311285567698721851496601977539530758536488804147281187319402338722247794202691085352209134570998544152352808384975670801311761817961363449059031234080517692126955396209673698976212168805445878354098169011729093739677119162300358069136776958416346967367913765094089220906646820466454339802832988342433724845300584107271429668812273959441467416403960737855522809451102232277095612231390024133570033989309722149063150045942459558743552800929591906942474313438771923238746011958543348107007983771825387666419388293165290141539299306340149990907885598091230804253495463667594416468630252000127776864192400215054285908442865436380338009509159183848517462234883901471537743206742046615488484829472831873553597087926007425806684834960237753106562117281179605724121606243652221607593811258095608073727905238183689168050630125757636015603333134835528571249763157794306196836801244492168630169072293539947640124863359415221075987715455116272718109601332924149770077831026259588664751624152744670271086178243662089640543231801299757804510046618884167513108004517923473151160910162380358196544002984613272195247086586937242163183271403251482386741609761455409048029692343609811942927201659421966872868448719467854164504207249383471120519799513303232566698587163352093424160791014160608817128500993033536008628854001780258063999950768118980155612909463416779278899266276474125952455774577483731092565478952789961723829967542416150594073129979102614483768984281681253533440058697636069564630084621828897956498951465946703982320175831726134463116058529183128824343342112961982458877296860136188827479223487959726336995578475815662643155365884622900371208826378591986398108539880017662358447242088558190073581387068013667442192296339970591894132492733892384335700223301337102015686065954702545781308828005808979360688859666770196089284066695209662505703819937711274908358242710294511490327217267911066768153006083625998334857362714177315120646780356742960220224810325019100373313017045749822730600931563770531607641242723986892792463439248459032823276682526454883417174914927267734248480660176943337470644228605096296768297139495526380235756407695250709420036003180699478025311910495465606373195981347957211849735555740760984248521586027917894654057152966456716236317154877972891735101420513324121534628941683435246190134441350541780404032230140425541355913293968708356878819266181022110267525680577902308589818603621544937800953390555387972255923845515530925709771915093207645095875777373105877016359159266920353331405793949413667640535680209806234625518740856961303450426259275085888683597133455909413476188289485782856924282572420520842984639239644575978898554206661899823404150046873275712681736368686363336090769939974792991265061245310471057794616528862315435720759108854299761485891258286623509498374457432454753250673811937586958087981682059824389847596958495031142091649303513244310794007872974051430519362205743236727388127002831227443669135032778890623937890903479458061517524756504677338269343605336193996959641337313279117854496770375001977837718315066962725620257050093874033062532005516302227626120252827473340787166703242880882508954131802298237173656618882928713455466395092043734705938810513972291323369495762906600679079841864978551199520900361634112164663258088421923775528700852100815739662527903976298210627685338679885586852844479239426406293220495100175125999199138758326987373655352289965259720927072956793436184470493485865976488088260885118399318859283668644865363118843797569485320878546007028326667427091216231474691457901213823587918722207432457878054573234998224123355662541573431546350694654495363621610921499033073655350733192347768176772957869192147005024533747023202706071417043211885170620131668189648480980262849878175890672785726736947083695493148960526703459358519106870401851094952014433117763321321862905614695926830552050919820229218817773703506006412794300347483407211737620106062889173413702161965470177812692410478039304630028894279764666695995038115464183598964263869291907004112973937112867276081408426548188272056625740266155793328515218755281430298855251072408060985013764763173249463100042698198421816236322688561237425736502474179896606236977736158676461680145334208723850335435609903932420998814000575480454128208902703349112810997677267252207353889143285320477852311318712186787972518970811925043844274402252668630868339433902158580094631533589410804879857080170217913087600278688984636361231860165347018574506753320351786339819308644981620748443924364028903052279952341494172830163727174927222970037975642054129170764710295409996685816373871463914154886458849569278682139192483169886875831545585814812298207252600692785195279163414965658739410824037351499647268102411548010940458417915720850089737142423376006934811207469580238512707545597220515957923754203994630944269877526099370187815847918569368600802175590725190500595191560923153314291837572102181264112070868269193176381233336854426453484634284908991247149870856629999449066580317387296942385155685737631242514444821653574431643089505848565829760945103905228950082910060021813549120749092234839316328737987342358151670200301375035386835861283110798526829471140751712976207851767693589791438978614460411106173124261045821348043472673947001817995822723230296658243807078647852499058016921537067620801033381827048735049812476376203934240547139214804919510667054919898203955209691773086974071901653587060479540424764449006487547537970050232161433498978275868814845846955829552027531427131871110985581156778105908513236823781813412242022423864566358283750428541024945999605500623412243068338811490319756735888934361694214777587640500207553455546569746047670379936909584688482227994976461814759354547753134263736388821755778428890453260811518005263823321271802448692902192411556783664591548244242947451067654388007002753559933882374084879754486505175812602773997361360186680329841616410869907783586262119194281699317836520352648375656203170965937514261555842971023421017127317959622987373267706014208488751566549833234594196991557972822435973475555351012071255325215795280590520488686115922490834943572403616078343636883078869656088762681329163420071511383302177469915568782123352244447089131484898123523071889913801840711937740466736845538886595521115050808784052467480948496593801827013071638182161262065810312615335302907225098800197042145655202257790542652984125251571884487897024454643644161800531094819548550743056898632687840132739568144200750079040899136786032230709519934310367539135764198434588924000842528672768953665427178396405326798256037476227744658010868643597565926879611124517455734749331564201517587226297652725751765066337138868817724370284250170877915369208978818244939553591258104789965970776017010661573708315656526768986064360987286829849915763372220542085866873290427449414366314214946533862248579968213096340428660158647269732160920034653608169751169379292667135101066604854103728602930802047366261997235606872651745458323273043028309684650782716977447038610904168270970820873571188061815120108818930649137955038865975241734614274825107589254482873298822958815940774086909666491399209919820163720144893914219633133355927318639692981057003418003665349212227190280100356126246865221936549711480862431924893376711293654356468770239544916068203004301131616591743783211733590521188016311500513214447597865016235496990664572488986892554498147721068836763272770722230097771752155458238710341050593917204742520959673543653348989997877274149564533451336856419578265217660357968823832891570459985770742283403377032254330172576509156943219851321804710620428063297228777922035652012823432117070555969167161619925899429698927904479825853767902460793679152801826290944138437355136353106452802188760184220924667895281046353812530521505186469061334976291540785353051508122514423336497201259187855914716835503509516535317305863761858170667275595300969868348682477623396624550865266100293877051454667528248095233167763083760186613873356016894448463684547878836669782132279944186172972668630723596995960605511373854298054116417974523403165494532437156938129192717730698851494540003502126655331268059541072344732570222571089619094864428380429855918666917454125422723708303314028705867336759454949834158958720468967074212978493668176542219455847247286474079896968214963070350580617834828380649146747797456120002354745686875294423755355243344150178832840303418530862004478969416371567631688590151759586758640881304261448297144316293483071144459890732349723594911265446160934549125799452626650381603902962326633356657788774189582806407985653204385079049798561426543843325178256633905953624706883449907836168563490841516449579126960413499806634352420056619918644670025490278792144215074762787445745842209753044688244901332472525718254553193638920535485952663138037066796098947995463937615729608606571022451856961066577482196072081587595574693795518865554023813974745404113356201524339296981400201568293555394993414583652253524502972526213967844257832086452083927789367012634005318760863979408695132916445137100933231732748129020718732022389197451689235499979184454535285791259797535031868151603079659104956286644232418366079887409965838249307435750082711255030686539373919016417764682593501655709033232543171163227223154608729191749589499923515155188758935112136065816387169671062812811317198075226933103859764313023082748038547840052683768320070547498189284767410467852529620944605100076607871443399336933782697185894829875548266672698862419109592493580008888939789780785448433647685905968730153977324715371120484631509299658256665119961697642593597196221408805874828541315844273714471044845963910763419730397228181682214915796797877937394304523293946138647477908261216808652085035545406469333067993815384212143387505023236511247036078752760747713229580184699662856986037945929125207133558615631715160033894364615063482653390977582389090500786177813657598050789555415832396263837168576156297423029843256199137626261139256198612137449222334774186461916092148184991805302432442277473148798187252072937621244549405458035500249112331879896397768969812596393304184352213925773357181071780565584670448928357561318664025824525184700863275928989173918293528903419235944830643190454034610317214956798721635233340473697045134325406644266692695924421560018510525694993488380459011274456507268830027367662478857135852269020214334281256596748641742428329641286887055340766557596900010546877094256205931855783322308970247882807900190783108379851969110064003191710235184689916662044843959699350363567659393079189740286724809949099172077105019935615336885904998318517121457731514260526488367762861168216521960253162164780359738067950845455735351156778957493560063266909571048354451593450988424256655319442041682726012923042356191697375670446405140035220291756758330880392304356271978466199937842653976193330964927064055390637120202471796722195055412238976603834606537919549417589785089062746745672829863536188330099015257135107387787655740551402121590743016326876914674304623385100559336251290821157119854401812748488008623226277085456210022830401244746727866131345100621858300491044568544336441865046482965001598839899849842568379120182904906767726039897800014131259083124212829897719773080404351195863391119996349691816788783053633288948101527807124205811648171939094576746149697024321305174598798562712484131944914267689538743139435232560602764511589853322716052536287957223494646035511187687766877453473723233545991145057810404824993601958994785884728396920743362118971548552776387451985137436036218661558836319431490067849161837608853352762488660528133639531282856665878261345309028796990706416080012011171389474881603853052143767355223113027562329469702253862459859269386493595490292987804442406167740706532693640549601516934886981077334324585165593032722021332519874701178568941609376746743035905939809788953460908551458695386411885597166793108434934419663965923749286511649703515969513808257199692297966059196494891295267626338434517123485550530894219312390044086267928120751416441330927347199379021610582585669167068584965656493004250690120233612543357838955778599514862578149791852790972765497762217515757744264951122948251444000317042560180473282500236851030778749162513196747726950494432560082209233998639253907099259075921811026218737689018210772301139518107542515212644718461050890625360037629985813356788476980932426543411160432425377204153340375279512398634298508361922200773811248987034764330414204842412842326759664057740043085055633210976766448725230508345560536066301351185742442971300390526682735992069037318403487653230476037288801473825010874310314654458744547527472258415761055210699812842672045875111733558886197870282548564425940066277276380693490516955916923526308903375885542153722961704947260504264172149420331938946490196897461696642804915989416078854009081469816339390930229737104354928973228332534587794239010299400112244738359043599028334221556799318153902644971455322401775689815135428885369013145754585690209179229841592416429242269847365453498770296907714657395800594631361185412435750708632397120094858680136056149684520050458613663448596606955019959897518720321628702299636518990405893836536554618104324451885972862088484804536475119697205841101400886923524840258376633182934240844502051830651295157944742915200054820010107080588502338171811175570785214325915006711469950644691465034459953649002856769165920847294560146133974548903302698837279873262932805847326626473912666487739761456725398355927290097422393101976457518518709529730804543043178983717539524403551335663981271021762564733821999425791539625252492306715790614783677015246809536851902151106953133780639693973367391020061801443624440553196536198929801374357883821124785568640881875162676410933319297255655730952490066966208151913721035623301789620598486070213423228975537374897037100036282680859596922950052943505106403642900045878869857583900112630560154411412839534508833496833881417157109400351092355388696142313040739704377300683127372745633620290739962866111924768362711463329519072055903409196288502915039207660482805181458583620883685241490316590399047040079079923676160416398157421613039829607953802988264403897531300389609743570262000668140079756398950982940953805138331078947773703863572122033002822863917404571153555736438322423547350858054347153880083706166130278379726244512536613393690296046355917701403211210603914229223382838774984718571379936606004101440939424050079296333856958962130727405842790642007725615460520479462825042884368934237612293002426131554341716407349302402994074067061393988493095876697568092930732779091013648164979217810464206834603185885527809574029637212152307366683648862686069444144257854850933349487252352216425189411862663310418118416451530961304174133442618584054362745498215280074793053704570874051631487367062923514024170895469321465429189392827240596834789851353416822765769956707247982811562372201984203093611403764434825245083687105629083457508632529860920299822029677118079593402692450058572235383652911270520102069308088849999879947172614027723148744614122642575745030834772506422560559441076436536988815990519490684895625434002224859796322308690860525420825682069827117377976333669999688148532659028850502550685527316444005008170699254896103322836510790768828641940565055450709568365703745583734697602390392620437086829402606301719547641257365303883338547620728455207618166142665224602000326500221841204187862719844237724240389137600737223606685574152816625113274646634217652970401501048870432659190775662083650212694644499664813922471248241727080927238990220450855002546622980384893303301967902576934257982848802118291243320720431994101941838669766555084082099829101492194661777507543264658613098431233280303840946867008717110298891243999966369508175538228937440860252656569354054054115262321413164135747312417550396306291947871390953886575601666674956911568251681070055633177208157967509324277396291551362059522366366858253155379559001400932254452587807367707301407410583111538157046174300052171879667669112443327421564930801346979725810732690685472425078538808438497987069410161636845039643288803175011974174780104942126338385474963183400063862529692158352266017460343218565999622973283340531028960826471017261606124380657590642703053278393984301376184059373151293739969441514270013290938614048299014198926657220564612930931296364632315164574501537113080544358925920594342935276853455680905657111402957323655190658683880724851008064578399514760106170834820289717816541328456005956810147663208672870687688102414468073218948951891264983819341715583075168581217703215338630183502369642145072787094582050764062244216951802755821343733758626576919205049697841258866985157003214867637682752418377474230252958716763049968488368229995104522965972806937329358960081502248600206748371460223752673040787584840951984657947220532153020239006322702991287417464104324373193708282663946705730573978923793684388477981592465654116653540319368278053051631528827415968980294675997432548820196295312504080163717924143134853259195803758178053209322911299483413533325959601610166349135936149852464018201441140617134111395832772224680860101016744534401924476844259814621208546373269662313432044141290759849128866378821869299423364724868927580532299129409422621970574193552622272725918753568859274016973610204051212043637419785531468606165478935633034493743457386931525061232714999655489521702862868083838006389190168871476234953789905520923916464523781157390390710651526222445219423793597093129235888875877941713431747733622340236154720121800883481007379200943544450822997258481371318118125021740976060506759655433239353250711872718641155102499599642984921004319867855933467852108573813390454314009290084227126175116232803198014747432958510045180275740827651829857872001825568537838687797235577257693886898934395943752916196592923700383309349478929840684549682317736831069918541607098136110132076074737843824548763268603666733347145324695175941215548607152265871849192130175547856118244736942691482205584843089798347186372336262592363226347870580669108032164556871586326087863412653113982728156212504078375759372460966043283118574176138574560787059983754553404500175747630989830688655292234266488622852540048205477408290061040622336046858718939893847045143730277571937725316492463387377145929307784748739906661174587836977413356273796460213795985935444429650006566080184033671593913876169560061516882951818573337242989408630810445121996213072815528177309182466782213579751389477468777145772686618233607449421226668182251407410418878006237818662857279407516674806348960875580989346608134605462333211599364359933409852786863126992967154518494700625417654825017593266552378698808980529446669384295633041208462217773742390965126006266944987424331114692295888918956898620004235316774850871124199338148068520715623143348491875099935022022318050475907548947829298850953069827952327391695436568049404410006207537490838796050088824452214546579254059097233198589495583885201046911609881995138822504832941024828761663402654009380940686367706222079774924409461341528718455323452313993554922472094193221090933030978026414774458050995420677384354171456658262388078244305211254609995771937526953912464712186693309161991883483006213286380793157980426508447169860022578050497860833260165354498250857670963582414155509843880104332075867697289360122481077315626099698369707549930106083596712984347111598201348782448254003543803069631781350767707186969739362441295612536580351560353862847582779237086044800410250259848656949223398654533834446048101124644136673531621837204477284234825125246920000533289772554450289429290294302403881244207897268174466958791686598044527816282440073979755455038584864482679516081867043778087603996890281184642157218978584885901947652193086315863077876150536709327160782194591023507991318948825981688199416553911314829349940849976792333087340202453588364693764433269689022688861182175685376116047616383168316443884083845880331012487583752531249417754018077497632785422133682113310573757046802582548938520002536723216433932061359507604816565754145000893068422702495396288450554537735859551907514681294168614939243096054974528885400973742262179021565973523379106754811329861326591034237406748844332150394166781426002898195952395821356586213541077409790846458627759619957722695497199500101347041239053311134510224243082185542958315930099151564599237969547098263101455827594889629410724183569042198736183248687722261760373741931294085626792150132675147432465790151260006627500850162679971126260803559246774301310538271829057536192856753500335520447323049059161024362858812290778934871669172603693908825264870268278162955834512549264481913084026034135285647124884047662232120814972676359433701537876831286562735108684096003054925398073185057683724773933111655276453147479481446858147272780037431927475027214379133265555246254171488508005414263570644250766885572987838878818889265759551126847462502582229985930745979452499631597788112811191695763288582140399981065280099534098745462056323830093245006796017880851674666406555511325962676921916137977213108432049217371746537396204297760036467440656615961011150521475138636892481181973419928996179804874363896507050259529070353328666771033416476633792208239692787212113198047745547811965389686558376844520437790819778779256989653219769852377857849889318528775187541940086294327016443794784492872152141600187049923698768060058889475715939349636487067905320964886683112729192110366560418563822288449593579796902329547227229263536346073346791568726904534120406734934533773433773789543702245833038555937842263241170270748508592226042032323266657988451486989861118248765216268902070117722366543241934813364857549049294540467962418351299234793870216325324562672830404808346262454973319753923144448997858067225867018452485516124856253682222366190401905482981825486487095639170797396714090492784813027822983843545072492717243329022954262119120687692001795696279698742766812282993555354063524929680994972206627689457611067553449796813719128374941568758448653481412216733811792318629513702803316016829954106944251056519582384144996747828646150558934198369500858199828166262748443152401661430812602796134859999298170045550757391190324323630430082708193562261785528619202052561264752107524975887938780686494849105894329476610738737050517250451010084179922609044809668406424329948241481411558763036374037175072938139552023015294412299297026191634791176378368973067150213524729642553103227285189154964813889216597775161677566069118217945100271357166184129431122203744182648869075590411404161229000890893252912668760057863456004895073162451793921112561504681970815781281652469535560385912938003724991242672935894531745208636544271494924280903862199531697142280079331258853418380930581919646996175822963212393499461254503341147819291393141334680008608847094186360525589099078823915831232797443121065907845352989321233623934490889414116826242022185330089220438645598886405132219614247127458621408530525266630281719208209821191351528766447915995316962224828562082554107574090714302581212019841526837742603821902914303660868402823527229789221440311749098894886624803166166865848994909987984504600023267312777862593686745025927918808735231639775434566696555331583601826853892049023377249006505689843640386861575817976088523992470936366326198406505957951582423419173473349196452924499757022481168766557509095126788631951204516687668162353749703388925862236056012712521010332466541442656294176630761724646894696456632257706242279811775923712378300873786457547703857367212743166025958805369980662820463533825762125161547776259059381914320167135957240907492394308806372176993197083737192399423523728960852484803453720550879678276456826225126896815741855223717769039349750075207477329930705301227752061674202100801447412341398193621033675784985084461800219996647024655987272239683270072179343751018808911010465983193316643519879726564224774937027585045015935480596555560892472700199097743529876887865850083215053094083369373235232192825799335286928200840895985518550449025716550702205277548892000259434566844431640884720240634977718768183651305854507308573116199531429183383795971335917846568008283676995616972682595994978091504373538969840913074116208294634326907759986794350387720161519670753327625998560976913697069903653523329026181880883645986136379720371707575759748739430684268571728857423288902336113601792656674063799015976619605893147188785442678420143272815705677824971888878396190044331627737171022193531659704594659434867484511613631801091675519310005110145165420268430730502028724712759612609377318924936015765928156530652087644197813233076573411876580312702546334172367981742434166389795828105331232501492516164197218746906571860202637923569755552322194902057546143320238384382352659388539660352525115397511188744369140939016451521367640514450817826964467485857550043106363847358669491892100232267297612594533854921248468118682273633241243631177996905437923539832757341166780463114240141001786729837194657774200879670706306274826587993844153187723325213465143122131590883139284119920195303523769255731907923953620304392504911701780515224485732010885746936778315948870395177397506175223365737185548467619841943621350718673857744764687406594337138064642307354079796531311001179775662212975285391310092475152799364100358210464634125361001743257039222440126445386192665947896760627002066017126691985808894016652178710570719860768537849903334832804954517674281960526935560350923601349075629485046794743225507949833875554169172188915232777232886906880139745599087859326888545311880601649069563415984180571802502603121750638243168983350366282906893203949854818946043803055124357667133519815200373044878960999641033389496503541416718627308831694312082244947115518102771114230582664290190335334123717032416518689872101546207331204991353851554222564446465333412186197240393618561915061530333575594499726741191943669472645494654707105619754241442498153461885476841332206038371738584756241101076829555369010622325015670470668893969277063546479464143723683958718578819798788856218773480330340327015542672775878873555709736200726997868720313132419202518130982586773746838611427322218405280108218708343126621816669545377243026801984318029987586762850964877547713601202617766425218945626095777501638429869209516891969819268720391924726477229317011892581396415987927654132333440127487602548365250558354815027807086767258707862157512613040457258786369446791542452060383210863432015636277746082988182968987189039950049856691030596395219542558592856376202917753294861538570954775817742606699354594898458849824943725353544359533049438553395316178738269642777677369022560401469777859155959312188919217117561459879891832739458185165979130702953263840284070865290543996381615449109994914309263022533652737095484802163709609372875555269123586279429817727600553699654531381112985220227840513537618004091501567646567544391757494399570786918530399356686777555102713571733925775369028492194457205483710885320399519259330282873471126515449297354944562169492878679567332092710175474150615525614600241336548954396783743489609686276881144971943542442140709781201109101695273588680012874161022294009456812620570018446598265728325319419858944087496090074138758654634819916208951448891678520511323093031078897172099088950604946315914467125281776318894637495817875099397635666183722439344603542036245863461497680280113860025327759271779318193354432174193233569580138829894020357190663554756010929866852658796893117339087222104143236897517642824752833462727284045539132738230244512058679389919786068284056243727480056604882621926438544000509911469986616806670574922701715112286004224900627163622502570301180120996422765971772730331324287215240427795191045950859501588639847130133626242314446535146846331609437686267387538017848133744846328315355262390962696350158071383029837490506435508710137177674482799655312759245814395637038337777616545252243055561809152717482853908672827855488328884119406224900834734583354482203694951899893877723406388725257147414731739620902938129684924438376783563776273835895099249495190747357861763495289929895201029411256806053121164766533795941870407223797163074507639371872541672517602690929965585189599172446394446112990712612584547804491518537084397866165667531237862846650786630394466141926119228070783777450194586884151317044648702575572208052327877911628776939955764514703015863241233416919322000661416887990590782787202161445045355002646183162080969391407374805381277157601346453182125712829890594720209431901491482731317908916495133452639686470045609204900370000897286404011870303127693756318816384240597370377146966650369011106982835938252196813851789798358299570198169549057139341033633978470369902971702389331390260496623939130484251945583157928208416714813257298652922716353500779630128746661747837851249786559570866543149608725244096167307200831280045280594652810112146771155830275841878272728091733088326678323101263698097263855823583154619851366314171579247663506310134288299455094058027579420402431532628541341146242731728902937215295911950452573248072421161470685913422738096834414281957602011290167974118884832642972838289651169037416518031322260048850561893479628268984093734192233244302709690102887031058029339594022321458119053857157847638488532047462321569690252262961566958478732107995525266310343192072729990011002288583155318043412233511925688195555558153310366876820400637687252197970054908333244311973828310704020997175967617354169568142107732105230582618641239600581688975384357565810095640956161430203044221708920637749694786577773929414823124076023232124437574515752734379035691723218393881053515975091548406224527865880403216569932095677198101148934458425724389979117001914276102461292234719370590351597667887419634250660730305973045100197362554241150243831876084879844539283651759252488230710932895375916962685243673131486214725223009735143752537409569355621123683913847398918798494420335518775611712042835312449426796090008242787228266964526335576482415965534974517222734327287844631258293626804190932310914043821904196293821756624502443823726675785767789082569036856951765712092475395389380271455958311041058877738161023044964440936666267941110813666973815886254717945817757606527922486625748568455158313738915740831513828198720241331308290583560351448003975145987300703362217635131003211708474476749157280246883567331334987894103907420763809042224443322924409929821869347124395799574917662582959379709501239772527423701943971068265844953209277452728959705720155919276100751219318695104687747446029836800011148121286321937181927670826460567207042709233107049061942208546352011128507154875609046601391746944674796106410789465657188413789144090175757053936507529117807236355138199869914465902237800750587297793066287684661955939273504049287420787994861545972223851532935321973436280242365980942673181896850877848328178960160107301191859105419729562464068061789547886240164865214218007984118213361156180156063004578280463959911952402385120665134104732113364409340364791331206095909169910287823059596124439425238649759127967843708282869031735241179948971750659716725790019263825499967824986958484725596952237841793585500082962309578484133243807897789297094643996180505912133776224991955457445403953714655944821020837786016314707549212887751256545332810392417751867506086241274924397544340525623228014678753214990948658504421056515797980612648475877167022479459981068427602724284044045991996715857847563756190933984373877995477398050678823396107713594451313049800186571996379410356882725488739797067876044085470983000783926908369929259122220076261115326639505338800255086003659135589228375328129383164840672152054145659039203698520778953859753033892824208175826912769478851978815476158011896472595221488506854242110090307649902220534966035772924587090445484177838352631326282611816028694928214281283422120041886072895841129128463144050112980774487090417333615627784558269983218076528520503292680584806739388259195164893876318121990576062691768688163843329085485571949846162231452810443584085860772867854880584978591553933302319576011212380347855648831811836297717056604510653537327581749540038450550895238705888957497837973362650168395626401303644205942843956267772763608179615263687377579929708987406115741407866285091845324718019806735407087107083612585744777150324689427092089852912610937701196752506265411684095710847684199471089989029715621098854813002602600800663660709914450182374950954270199775707417780141029998375380776293247118009571283798547487798367554062145125910318950090041120497852483703935725025416838280169302053297302575901412772266823169046775800707098977408583968747516730204334764711709451388538771982388743392877702231477546487482251330362635869795003514829351414180666069920563561326391390640285428180749794173209211509754094600822553528874715017217751333827664172879111110928700900740444000783012376879831619835528030572283050194397745778603680961164026512493298225949971715223943467374386504529014477980123485659244265393176492709260153177635433393029975291814271833144313831390425085537539369555150437626043079940264544881750112471612213338691775383828927834457553858310766485273665172505700061596647629526289474548125678766581827522600699395491676879075808919533181732303591255561068790973224916900512389591093594510239140543817174417527040074402514389588519274397240149528946374182313732639322536116148032308298902788938416236457533346826595887621456961383678089201503015877563020748204985251251589427023056611905705954457561015797743479263541889081963148526105241481022525028109465825466722920585332240430031335381139702836547030767065298857323466515347160406781890601773418603576311151710866810845726796305034824073348816202751926635112459105406900864443993112836154134447504338460361812683067958798333515456547649326503424742413854538884382450277742757336272703854684840069643777367978919494213056954062583233954736702093671989285745078965259589331657570648684798126344059556719036389711573588297801933009155137537385198641336716677382254369507807089300952348268642531306439568685775890211468629740813594190761537368872142915928586767302333104459508499971842554285393416627251636575848300373300648015883098629180330594022561668706561213076425656601839259015208746962566268039625664180325381683406546644180217845566126133996273382715708945185778368804719627125358812337849578890701573248699574514865885970630477095496127425652412750707206992528842213251341656599805461820924449726154003093945375213755843235828075267166460925836739859107311547218434055894593858536504752841346128871677914363697021184756217650715459370917507627736436873988208587422361915638158976371166659874255070625892788641818032896210150615321529201484916752770083505871039926602286294889242511403825686823830602532220657182174048166936153925216920130521355550283180897957657440270597726057445008625938744560204497322415416788134794184159358471204078342956069468700324947231498068834881313742253641938865977237624264226403352983444378568322915750690449628429229606222758178378830202750938001951111515280405620808278468533268353222431132735533964291311556597838367319141588328431112745284328120542394724195248377072588631135254196326129641721739063908714141790988460973972027205684369217182687217179973741910956180029450544583146411204154209499263375744312361711175756299371136834254152115466526887011891709311654952671115787440065852536374406011563085817406892582275102208075519429224627767493664876653114530719297167260234548312502872797120195756197803604945296780214626451303648640245290973273645307152218295356822962925686891343695687581589838772572364716480855837368318210440410767508575422784482194872632360081676857589768222540649130830703515151143803771053500527906718395232748511452383286356665339523925848222975427779818767864118891405312885901429971240070498007582703248280649548164413773291643917579918356148235372006696263236677146280020141692676877173596242265889678417779838288298989750870829098281446399493337832520026331425552498025797047054128285777314638984935735255626221501451448052379590282517482010284561425710733504226970124511467307038917109116265983102676301550502467620278158433022590793791016750008758302535655120155160041768675316543608558758862940237839941561434498272813549214713896687004072994463911394850003251882035771927991677255196884414165624371575812507121048475562944417588868200904333312634483725663968390577454831924033481576998408828843238108570003462200343664436472035094281845621245028246068364433477900350836627281550007080432787084005768512628849969488706581028216876267472513312941287758074595937127764259256911061214159228118830812238020922844396809478605270436176874612432370353763720629603169249115925224144393384331544143317851963126266046599422371017637028110204813960412842631510884830744540040314844552146210318314633277641520273865685209464445434429735557872080548243944895241142041423834041837991250269113373945487681667343441985353960308840631431297469958298301032711040255718152274489813085804914177557392538101628068948119067948350140189129640276744773828161730054223720493647630057202789207457183862117114295574677204452791622975319965017196683339017830391778714681386964591989879890135696227135678592063772951476064694154952667477851228542946221684206504086116355919585766733317800427559223407372236053471070530334715764304604752285169409919845918612710597522883507022484018540055324146091614242870039550312563834627001065143903016921188451929833213638449573401870336388568083406870802403304261473460340722822573353933696109098894902175823321068609194864502758279343835833814875059860412281464166051364535093090504355130812120310888602223079348888396424746726546871964285235968570288542980467247456129038658365715738461732760282692396052795078987412831946534493861900229872185035020446157556825706501343374566400277662459611244533321837129791017242689194185840606168610228498138601381917094791788364862307180866874385246375919390347881442509403669938668313161222178667122431088271486812204596825158240395233306354115455845946592162119499753673633338932820356760027976277519442482462103443019825169676965725363430157717397396604588669482901750191859314756569025250676149812597642791163370120165500608603053322849471581222304173476882173086741249517492434852107282868568463580859214119843927837889311972923708529180168435067333473677843998686871805532295674056451995189913285981014917358630626579576713508074130327282378835568209602011012143360544775447009383666530893787089938130943276323516338747446289897001856053784064513695001058472833554089913975990124562825357624252606985021545732251164047478488572018988209217849861312618056908544635548786641113616210977917555411440099119888458592689398790972911212632245810754175636689672615368291584006192515290878873195887615471770409182365406872776513801408556139124051186130112596888439135554232288119006917567251654639951466086953243763522270920706231619410179819694735785906197182490633951630868390620413250337998121234876820929053669855640743036757295633458832914401778939703497209976508457166578473799832447044836571213669902141828235992720505592768366262116145345661842795719327478206572529176377242752912483977158433767944975857349614698194253398274784188750117673178704819122823334832370015315031251908308256137342445467212882952653127773286641307222729557938429852480762642302065502282399618004618489818992249296048410075770477674227627719860705144725848056663004071299952321217165100495934604972491248587832639819899592458786807880173197204607428278894438640232153936123405841348625900219893817130608213140955961721307234008864014837880645245679838103499385112570739058721617321344799982885850356789911700342578446624245474673051395404847405367825660718809531144166646269195180660105838199600150281403445215673555298909141793606007007360756341308885126836552179490781056835199604175023970069594778483699915618975393913333498880791305636403832469939448552616362462841994564814247480185853192174395079889804288211631953203835858857236519491401673022139576146544741586107471893650269297099387804508298203192113536628038536723666026848609561707764352025351350637532671257099242992057749194034016489208196118289123496824384420770796730058383666853588288355981021953870497361995083141541024291496562446069269876749732308863162084488591679302912207400799456603629505989144213113021462023231686263818285277866331280185754286520795748528473381332069953381965894254410399303486445138686916283034617985254366684421389909303629809093700392237906424442945300847276962811559574617946000549906953113012828086068867695727934956115160790363429171644548062048167056646395907509903373346460478877618690414833617835308382033647742566909149803988874578789853312414491834887442247333396471649313286634486916507432641822351590098557616906719863316415203020767687099923810206183486416395132516469005253687981859808045169728299807403205323969753811810314760235786422788822887403471378823311507975867121953696216836488889484162661366980899175384974063154177547961271879248159764497008010050655151778868187677911141346251856970973130530540129545410171068120972934046789648060193204285989078978817302980103926151798788111362973588600128903696912496847338401283068910311603989306931988891330953162807115591983901250543302413523605251224699592288178712520037250493539909981788893428933063780945255293150174729471304307612585589907026180633805079526927075392246934200131718605898475670626181000246924310984899418171751570125983553819115790625329125029655375369119133907103707718034945086363569752708292640992461710240567015059016937281457864559443967465707184553392511592900952582321038589328470127727459927008519243100962425418039573360358126841231008980737301729956570713504789059852711374347395193163200632115266278452493246350680779890638008805622245899713708750994117448417280500609260026268770412729679199368462512351378337537398076942343738813847300016963463314346369061330921010554968427851220199825942739749437087094522168404464134945418239074016960931193664498946428593052987537161227283933114685876832239373246553076508382432745188337286992093024391656330375344332751003717826758737401689634522135829408716478029834537450171352759307545589505110989132781086097965412138166444468380711182551179304660412494878652182951711257832022264004493615393904645491700391613086946362989365653325660676662709318932940839227265994363738618326535509354420122053614630489495245568423361175835815524899808848994437455864782870316125060469076333110561867652096543300896118565256523091899295642785920503882761369627823992350980053416440771961768963905687722307287440801407281457495223670996230988993116611997956391274528122397834378564138058353577811708283305736271455177816704187535754838905306060571564080896447233184202826547461654139338897152237049939854791848156811517768723309235208092115172104158893596783896163088845276358438895226938608204599104218979451905351835589314091539869755768850186487904733653331535397226811533740904635733965852880071349684615207237190870647703370272451589961324235022014713520556764334621343424123225540781777115045482111400543454428628991505059255628021380557410438372886562889227103826667124072157201963656385401387751062093099138297579256113392653565210733263369863177868377949328976787580467371145466124494460680109709553729667498469146002518048603208387904549972284869493411300444863946220237199490146274781441491488613143490339754242950760054563814667759863342072332819346873659507786857668499038362769587994778132448560764724641171742582899641769223646465878525627662733496279843597113571982313177999021149475075979730175631217309199758189966215472903815797507095080661176855491004045671816372811402590461402413023965965019750707761645840341179239222242036988769666832879945626101342595863967868395005920908645617847668278434856678693286580621500790223284203455852306575324904655503832920719877559061079867487167195742210044486665836879475454874045467728709125663083602805310467722189065857191280007586689674323149920417873574629658947414852320130203389507324112434878360181345262833338993811565542287436016935073666222910730009638779709840372887614265147998828405417535684373083214601259299710654384456329574615957909452761261523343556913896934271446390134991751546064107544701196206818562359380217156691169619435148729641942716193705925068880340631870305915306667202841993755338412915376630477347669226201407371225544828608161368329171420797038672612324217457350829847076325339433562392837562541072963803164222529868006294580224072151727292230530815658987150182948239550418160718072773086259115913333179582078944653607409491025151172949471371020410678729228800269792054067279624894826244361444918414789443137321757619554412071275031616430008545967560006688710580585357601004348150073148378152812490703417723293252544570852906198778439163502790317474688891822070895236346597445581816057087737313272704339748552382777154986010163061745792787282636390307182298569199776578914929163357765087228097960148456148444910653474958440376206396076585397185948828392787308240680332035975149767041043445726805095383550818537303265884189155379756003128473277136397043361916903968152725545968170890646267900335062672646912634491645107336029574632698055154576401154173085643087724760132348709492152711147132549901169964207072574358784970363984241391463844473267794390762244696875420274835422629057928763985638935263785465490568734412810233345422797531118362510074910873272716171466278133091869656894316116592979635133848329160175428891084613048597743868395541172687101186124705019321278469532212354944182395459289030081411846294439987326806503111048607339121562866544574634380103088699014412670846090753116799974789480522854339652695516458753506341117572212091252667219376550641765295300273035072845189484183213744715696817792217726885193059538988145655333375328647809295549683213947201957885994287082669680762524238882501783215731253688474038786359929147543235481852255691841292520589226392027004736075877215384611621351539966373813798268666275678014024473952829060181033406446669046704706468079122993389605387046403244495491515921208995829252435118013376978791690005974616488421597462694821091358581143860323753011384023743484665052909076492927721998791154222163802072688048793184482969371840114347904218893073323379820711467947621136478989292681019206909451323996650595541402093711599381169922928657329312220594010058652434529338989994610286828854097108406049058287389582143829462908550150809381905182215033997504815024277721840945715291873743336434406982172956098194865395390621488934589640622181374863468200374076918658958071478340695143480791300987960402528640234961070178013592741381935397267653057206121873818821336109262155606281322395517799411722173498564606070506857833787399923059814792834064605579380202494966495709280614397146934022470021821674331528088551948674440526078755696137818729761366707714407073844423608779061534958742025555663521099841213933691163148297425465204992970349360350929044950610568942046676635696266625094294119409476826084554283039890341889914212168252677871892430660297012338632848476276198651377693220061262972066625749219278640306233657514143582482621687092979003777650755584602904621067278070947757000922805997003723359603323546070949040061397158222387807457201610279432868638695964608070144666363077657536259364967490661887843645363831073163292660532503454656967259671037126188652824370058743582665671878906202095632674228942824352296128837548491890119650394262734484618818005861435754337876324309240651705937002842226232422140426654503720874302430837253614942054035229699585270970889563292491731969532332343319534384764343624018530121935469599309701929731027997845517660859683924490430311121631274429918082176668533967666482717491546906413760678301134545539473134013506388263146765636495935369784945760177188156968150842115836578794124304928926334604411272121105347381901179781386734603989200035938062178660555903424771506915770755516922806377897860628133646014204577643773133161363900890575593406408011100671326320974070592624385344775521478066202153342588239075013968029857095353631183192280769406211205916946498787831631924087295247584968976995073601976999725328205280137705773150270960060556987808986236265411116364417783353883791321372077855900016180902993254709232414675049253963863378113491877371101365744494606774710337291437386925596647797353745580737798965558447914214431814820986454683964465058761958428004586335799267532221760034387245730536280353512104414964618068410520538485156384470928520468189644180824441241617859517454789257573680731860814816424826767466341652492445979614563364618564774481917789531638368297876728816117795918646356483900829049514332417761402203439388910271634223139841293229396265253853789731979793365979637005699096879394304182837663652574683945483736534317313570387597836545445600795393244420385984577351483169755932779614808127789649772408313661220465293174176909426489942661854611599688649476473944623837166428151676571819172376364181228528824123530580416164425942221251730970135751321951709762764824557608910698099239914002555173480218871031271203202340906336931020612724042151954429403968837905897198392842867135324043011987034658152085235072403727218469192084937803753783568464045816398178540600313586815730176088526153233980049257048647042934378121103283783004084463903289686300176414183499394033060698416835656144930080859103587701652288788422686097157526211077203460686962730190151166583924095249621277389595749735649960152619504449976551886479120028025652008839430205106740198633942833694920536660908154144466712656196034294445880561207189239025638277800791995595399378751240042530804846854015562059640452802734223194676874606060343480634104911644144958731891408049841559738035423002885550830284035412297446085063445632365409437271152448564819204644522247071589334949974997050860528639794924960039901972245191380168696164139262196936880721238579525586050307964830504414867907651206782558107155389226808096651341984295590359027801425316534547773824125449952557743206252089706551513345125329781801288810107037858633026437533097894359049313841461028745666948536717982375351505712445241453701021730157447255176611049476430451480038128228835101740046724854507550074705735233710734746611279554314753171845372122983941984661960301784424204327613348601860760781740160593538544524129418180904579574259387412545593045801858186492240499091294705939374756458677233730446414089284674151208896662197007859460034470037195995058508423337852424228434015488077334262946650664601089033182333200307303065372049762297432029349941842334810195694454184640470540716080845548493949477921564496793212982230334670950025112371572093754505289912548854973413102323734397352384076906144866961769946517069710376728560850238452771489268682594446611705300479752569853633911511633167187399953973224386105309661048792028219541371077017217659089454503647297013975993242598203974223515103573816954438387419510994532501864885940627715455993811032018621467124229621131774380461005380404015732450867075294103011275575107908877439887381267639133134466510969172068557820350803355753609608016939570310100033631875180694080239098838506019047994067845386372421154309660297600936532073909363201256080740257631281850714079278853904832915121894879206299364294678717486947670440310779700334706980566892765443346449586321846177983266482764475386033181710955752761449436041796816824945171570236584479355702945613877471696810537354283261147511788824066888723921372792045776479261562669471402487208950920801432549970930878900603388797689112748266791398111728723845626138612803101666129815829509381243875229886105136859440368898623758957714155382873570602919608362429526133026441676029071228711235294398282429839768943489423666855723922880531737465922022884635615215125014425289360310400634606757980377226278488980599003497592441508859859903996710412024502987145609058710157258028523818290686515709633074264727226610361635259798960791665600194533862237403073056299710223563049070806463398732591315867963841916318575785899675483609615200952073705791249038354716847454223501520298582572169886837538789468730234971843425785982423468920640499123878569582387313717731637966511558424678198253467789740818107651649103777740761522844340874015978622868761668866573287305154054746075711187313784751012140614531788741356827822492746668902005997594926405065378150245966952625358718041267350945089040132134511966624486298110053104340090526182408623591271638815720639475999198900066622526762990956987796675917372798473407637692605316496755214952315208761078886674373479666893610637916673855745050428658955102977874342551037995128401936273702512110049954303689266708337906739377909175286648030654956674073451664674720338582238896392708279124997113879855429215856360202601220387249563697827845874538415068595679845998544614840281508674597646152638412512007278526338996129761880558862021027295271421214914807889088550331568700229920998526816134662432737905573610150953690247573392292528710662430830970246792232327360277878539347514969374968893917262376683094347117492261380811168385424861950230257145678001135012825573279301840134062374605872018500901281723198849663546299123342457175883166366163568829548413205772157245668518335682518761986647532728999562993120484195939814713238554930928670520817509994694227403731883603711170383216637969954245017589661091829448712843791561013778033141042511846363567213374930752719671365214840790535940370132651620370117365641712228123311798674709121049063930122285018268180052374117605942646176306351150996438785885734518762801954384937628176718179252149149106364946960999196995403311490216730177566456027096190825090623309681558191014791608229151599664659774762605716243640826098345886516501699523660820749861134596733315909452822880516787258044445602342742445135429038437117219046432179389328460594682012477841642879454553622755435106512968653656116699738358590270190518365928068634150139821580117393824009668091329764501709914368147923446333462771424595128972417993886145621957643465382713152392483020437128523624116804205551668201868697542044958019563669041265342752981435922133348543174464398265067245099463688370346217196138514761815558431163335466904762326583146036801553690359574388000095411714180893206368191505738993365085712629701777240379746379828389429698779868893442781952030976513014370995709682507590421001072936675545093892376626673404384930790025480069633588198478888342421988734954981299535181442492826931004002491447177181167094206169450778335252028801065310402958335280672284095193291073969961145206660630312657389474936055228287677717138357097102817278480503905372094763598032317419052730160294341164846006242944517973858719881670438618346729374196513312019086197567625128587879263839064822151017299952781284802001212492325132587025631356438524675206035038241769211265620389786610552520335840820869439065059148802786693350739972931159747077034267800466846753910966327273537593335141577520331879639002805978689832622596498294251844957175015666941805403530634890012509681117256704699002574832575528607985292633431819421237093201097581490221008516916027486629815525800942967233098832710027037810624193215816847044689589777984248854319943399064050802333062977009974016764758209384300794697309611536514976243426877194893469774837226892711517501969715149698918618125510302450453132292708745428515466439307890911109957613720295654426482621596909080387322732385400251678514690179286980983526407490877775318311355394444243442616340238778207487214624086247092896976854179533064364119794178220836663403140296212484744302678089865317531158914295163906918236391132936159464273057477477491962641710424214765580889790434522806219471794094142015544117618607715951148461715252732277388812283628345031757754109360365947665240452818079462475409271874527043501043496740167188937772203067219269481406215023614639180483979827316040770051016322340375118466167728034697018385268289205176683687103203408000695663721390255576065504894648906475758311497986868714868241079775110047154386482268497332650310760276129104638187083331698652595753098639011368017887807700528276193277719106202772960095985148426807391546311157135108458591237949373130300934742537546354720096887359342542189723759122738783858489631237715023133325097103261180006492549778397849002487377299318812719476882407173557313127397207900420055492630365155187506569222820977051566476353191100536119485333967173012359825082829213928692709790635340611870556390593193661302239337380152583811770727236744480535952226704416086115810903092658948159299444732668417707605953290811302237194106458426072974883024746076313214031695234423460424398806593352107155437709188891971754252417824072994118415792995252047435836971447778049902300068537753199423961104999893634543991499859785566298182244516010444626494296806617581705263731897700567764219836620216951793656630121422514840185718452268680757333475373207283700043275719973032034714399309647849660301805792662814891744410060589681999250948409643746982479615659636338434153000107381192186772581035167243955331513070921267588551476624514801119939644139839248099589595699653485406304805910323470329836946228206221428607837029767204092985007679779423981971617815408462770177792750230485480092341274383794284531740128937358719094803997562057384520379193689231061724840751106583215070710373495254138107915136629554423263391462486929660436640349603441466732798083294904282696308618751463900230366119201250087485641779198951634104834294764602379201160464033720970621704991014180203899489520871585720645151256470284659563959234168372304857459650751619921198105683886868944721476572153106858762943813534390049635504790243774763354632756441634458311517655557543487189816486671008115428338308129225630925363636487197395457909091941701385283615558685757801134361405430318921187331948898834322441796220108369194498576039709240538046550306297151952581159316857191486871969142481576871472676601183610578589440294293711779406752569772395440448109469335726267539191378088795737220566529451799978256236490470384073185715670137330664670172677873641745122508425865737765340746368467997761304971466228741683649812461891198684261376985393801291520982917618485316686294171305098699466421020962635734964141083154338339333324049607453063776705919053946128886463414400453775108044646267000075467522877077776333501039843442061519519956087417217202389763627160115428059301116043897433325786619764379727767861129918731298829397888697278634271804692886802864695318699697019835632571825318232207069455152138544592626671738160269693241557970096480513688476388395550242887643919313352300334139637914798056200926037553248796383736005226708265902101303369457273307666988153112868947634780374329910486063236438781474171698735832904796051547545550322825816041591340832295769862982424047251316778054941681433124145392507871099184762996003954506138216344496187978212762421090490144225205580976842324029226146380290777154808955679917014417022716217315876237743461856984127451299374390269914151207976026625293729570711233425270972767244444619024577327226339791506880221952686303943163510183300828292290687042176892431168925190964031686882243508939849752682141131681277502409856404770040812426688115727991825778004236969025681481076818185236125699169345685435493287355364889481452179986589591207623305695482782021412001185367869121147875049157272501608518937993167285502057160723193452682233177708965677010444665226176069810964915423985301837410036696494376510261122579367175379198119389591818642023612699947214507734694778083072247154181338186080457915833898314048025062055556680241001248170026569100000158147172449910002076877215444787631652875919854340911128078385232972411664794719659353252804900082345194748513252008840487126047381402333545059677703027466457821444873246319653544918920543023377348870622963802994918286011345587655571173921528215665826800101553087252618780265512757268561725675233732726631823749721277217833985040490625348518633228811317667416558209774060893779621568945567439689475557222508142161291460891995900135502396855114817153377908454212254275658487653028182689825908024846890050685479242603951969308146443409296058274280223510305315532567559718285386367025002886575779085347754686844736632026263607426420794936941768448162450619243003071395852129257253508092452593585680905086514271773997061052134509121237346771064649013895720084949288207548259698741212501288552854718368240451002364731543613198936921890321191824589722233337182396309209622088958538636406231229372687307324814247288207789266412443678413392429166102209894204739021144188631532515006006328064008828093750455267124352471458377906562265282429304077835358403598225189319163567126651225945821482490909042493340843014737787434725962014925423097537557829241657019947599369937577669372334163359231958694467428001288098807246524041813023273031618548044433485564467661760429593003238591831459109751200698587424681371312335380930587936834085891767958535375845410343061802997689699743687158967647620375206421825723239746062814367207237760902448054599403217719199045359311606620461139770272700623258717705932505942480991130052846993795775639176148624354910945083156392291194279747215814652767779983967061681845585701141787047438109169384252714117306654857242484280510753285141176035868006584593864233086987710103822872194519831396332822622985401967554343131760960653909391774459674538739286506788220678235050282199034236128894610121410161696065811409101138334019161878634380396483764102925543776880113211839777625417627031128207959020982950176434547660404513910963474541018842927899115550963812002727707473798902468002404800420497208351822802885709026060923053384115922614074526288134914488907266354346124175335578744647282767112337757487938765850913200909781163893064097801949121541906253855633936154103384464014792864789840004139660589852010018283403484095670332735711252998146504888379293546924853465171247159909879338793371333347645256735018950406009059949203416052005496162453814170420445282912569449567253925187703667702444263416839092242175529723111826434222252464097791351620763141489721725430533098260099091501319692947417669918363744105785520255035469364298189135095794024661282761829469297012614545629609556214334000639888642270366713926576011275954265344156878089229256919314607750622735053130061380924638413604214954540405075277306044800932530521287879997131169304138968636998255766335952620929816067836704370798211002516725609345392691433616745546349943860274904070126608884570535084173382676373543087252428043403879269436861081740782407153745084780305473143702512086052294623650808308113315401409563548226475227597867752177742871830962207264446596853290847741349866269842953052220173628097720152930087860385112073580491749388537397350229375287546725072968633701076084599967173694683143474381499753256756715424867982636840099841937646507653353569849108307205922577840937829972415037678383685202946212868763140724393767732013650273021797085617688491605187169531382671880737981192331707155689208757936381741645177883655739378493555687261313373144881023092427442513702641120691306798244999945821827846495129915076018502982650518346139884623082576939110683585403633020346256901626151948072653039629109277606629690077291498833760212512237850202686625458082011388061798695332946681637732686020429937284416674164513656071806913830935781962639454845893925966780671091257992120475968159683683883274573801739274915956651997629506561175671060851258914954597440309191071717640875470311485386762656321103267406631841572726149297492189131656186931453497184439839341926936128922563045447667115722856452111423506529238739098169541136511101778943316104687900995260287786010757426138063781038607009384201095157740145116399845491588073190891932976634945911769516697535315789198798670815530803040597255062986907571872529153612425540829646105606843222499313428784026660691036389507501495969889562651394124113242342904917268525754724837754083949769598918038926472988393242295674491041195913419004496085245970957241510291586990235063352548004226465588861424648765273898932343590733683689490942464695258967982535082580258788204867596763096356825310293904688332229932350947423228066991422583628950399201790411631502391028369666215728559683894667808702534781663568461902930159960866455747782775478998978673163527862732025060511085801414322689798552066277796615021603076781884422051159457485558987544672534164780535489116433720405178761865445553432896044609146844143781526159859182452496143502718060347717376269290242160555545958481243652999008866747368089957752848598053375243440923264595790607950094488497779122450781256301738872599078800380841485235787332818463545603189429942761038974382078885363034659188928407153010662578044725225012886876321890355317668732943922150328557532219263539550773812209655406220447522959814182717832503977657498038960872866197097162616859431767058179970657107887771589639622699746059967070578639953926844035658396785891136294262593115374913161333675938910813108461668764377472558723027192096933779016012357638254445533155369297079371853609965426559312860918937756271653786571198420052866632178040722657485948098003109739599212075330655321297345066074283733384588224719970240978932310405528443249556302468079156013764383184799511330976500580587400989118286350174559850072732816821102901469283733093778274063329205878522435801064549359258849901538584857025768833898217509442201228091344756162219392068835328630479117894214025858405073607095620507598528592411429820159392497221911619001523839282089620854646443949192304298115184419214689775710471048990657439173123731949396671647203034286591656494940139399194488122405454011465454034155325252867856899016807461704561139707504153432662643054877239508510968723687362026816318350610779944724931952739099097241890310917175139936629746488577371797669207461375622477655824929825151729809065421643544724242151795266312730696418163754457254674533687175399229816749667561819433333128822932968466171378393430086751869365609998064563799672877517181285008049980171410442483034418549209138814560135018393986706367647064545918046131076518216948425192636308368527757218258371680840481228247962327326346905036117098286839562354488945754525957883583084149363473147542957951795873708852463720580205379348132998527280848382116849756175424043159555486036705062135345122609173152591937880659241213023045075412354463286766180292489796122829041842628286707556177705077164648165077848927247826787658980029235765798376883767650191111720373866527988271940077357043072957048708092399981498747847801823341653497214573864079932916397868163056572603325437172531973726432469284740866000652946813938884627930318678819230342640314474059552047706494230585142021450391233991196528779606431792814003475767290848358936966412019231193287020445235888903792454622138565017906342698668977675701995249746569771049948742281223589467748689255353199772012454394528244159274455739942232270959760473618716280868153311487968618716316754005383959703102627742662744763993154900346833634986939854420152212684386924277443496434920828432509367883303325582734659064788401409213655628992325718733223407092622340170276243996583385127464450334697333042431717153912667354874903587833636515026813824270467976873161799479053373521831850098044648953092789006435217579673384231634256809125949548673718331547683244123167129077291573705396678588512762341194176386478588408086692063086891064589762804831905968739979553178206726031817874656383083419633251875783299509968947175474407202687306094239729499003543358833481986257529569138046787013895646345150849468595364503003743462810242523458842711814832624453637442671315847035296668883771595093509331546551955701220474234204527643744613881156926065040018859548457061473568414964710673522329733792322362769861142648097815848563197104706669947852690491115687801377877509908372742822948135334771564410713777909880983050841977684639024994985914378229772834255542783083944406389732593172465249000801315900250360955573027033448088726573009695818389438932487855339870359209050202331063246497189537876369110075299229998287413069338484471980710605058240514531571224455034765493813846564850983322585642581267476019757248436801396788383450444748967560457343350760661891593030573623125890588130430003730064099390959004946729156045926333416601993172154929007929174144452170443438458108287541557865301115927971909448879199163887473149379024521144632289152646402957797412797230112585410964190908024090846075224920561722224213785371359518943295857189920529784288599206902023076901802917735428264431965323426938389447488335455615733783067425757025594683470828982342775399490522798072167771652236742473473356565209679980262171552766096247624115509558489508952025176123572871190031924889142219638745168530961234380364997768242731398889207367477164572578056686004084474131302717218454452562224925509799886575490210879868370811912989299448659798330465508439197498603551763035941129101435719343086091632372648172428427462986234222679288198830425699344833952912228446460726090559926481805468585117588015862214333548932986536574824323502224746691292290675155874289285962828304239642379631663256081206141074979434649815357385987902381905822066145543828084426725083513621109028048537482900087642549913917893257531699924132370866464790038977076453498887071183602307314895862855513441779642261162517200986136360692550690938753292133969288959003217071376621720897156226229615735383671927538733335085207340928714013143955678784422929327973004348729884820412431051040453761074764773009637877101009702087842245869769697407110145622496189670757347330763827688463639762602799962340806357773681431825347524588870842968394753815886190524729192240749484268923539023169218585032287486892119429465540087811353869065204327612493388437161004759843876609601397955460030493495454622006816274563895001970961232205918449866891038881115466357309870786858338055679009797895273482294937262548741725436646005736435795469165046790381702781842292550066038528943537626225989622482306044722882282178646620199234557544508945377375785885183251450366944136720165960065030730259419116210659738734733676115606988584028422593461592131288650062632025499934507050893862830934643859385215043970821601444234968264489679548748081369033536275528793240280935044368376330008332302613200070475118015502778652263120881604858095053287550854162952702741513177334867904099447546870470676640534874114408393433201556143117615748650980198488046861390914980940852437259085916765254859578367517172007757134747404345622007524186681580253201176394043474477837935643759233386251870031848571790316297845467175742804492434585089341158123400781343050390316860799480508571477076788682762025699535549751858015988631254599603286713983844712917159107993419212944159960633323630036367372933142574109455282210245227910932634647804455009808131258723548408509298480181884025307955520229539505765699925136194504900853746518885077959214069804872398700691329702528597160944407867558634995767040800430653888988087809465148598066231590547094084707886640452788705275741875774216123187811375978626486851212736813155015038795573821579202235902445260471881938988826942754119022333282087510728219734132562697089240244117658940012856960690427265125487573662671566416877331864456529713556039865048942170251527755258060184045710176544641040729950653079467248280406609675760577825558119908339981864325305103204334730527269883593558452454064972475916890956943704586977921403818192450535437272557105413613056605784540649671203685077658127988781027967946465748239799407831029829559055839739086171401795700668514995912040794075156964366860167058652023771673795848647380922556644882010128454664062642129207915432952483666039317822100258200234318287333694716016037870538578573304223749006431558718283666785806265527996611665252539284869830974141288983653800878709157146252571854813747856137297143299752456174614299891298676103503513763027610368395475205324677596707648062164963391936615198942656179137405455515063483671879623825993866118351177174708303585234600692391784027270232938040917939648884597534334847134905229397081230745084196400007779447574644579325061291470460248877984119975569119231534129696448279867266260718726826774015231921886297143473127623197142961588470473465669237281018528883492316874766489046892401169380728750023642376095565029275314879599443717793589709195175121894136272919391783815161168404693046016717685396418277600313228139664336119393137544737410884830011303624137415659445615757734916157185906286260840188441224000391509144609800771992795644586273301107745625828696288753871306901774637048208255984742782102144973763121981436787876817757577158152120464078505669326454320555050295557346314114234607258796840521772900786085136809683835196746072519378472121224466106626340690983831231386252003389242208959436540231235902782795274857017610106532208020241536547716849106921970022584629325094458256669748045217910120683491386970200100301846017786286807430022102727409879128696317173451061840316631397482702482318286647780654144642328923278114259653048599104077875555437703841471793020019990715701864424629995609923368713572781906351355960586126816812964259309978645543965873720058747580551530426776483505711885457890623630667609778658459946531054333147363415828019214129722577062631605267347786838324882444742847275314688392236052963664058937940258594814331794633849457506533350387960148857683376564692768882210825658059805493484163220873283547714426799905931046924319169520369773117042292986824691466083193305570962739868573818318065030944565638849586610511852021932787275685169780092905550694399697054090642235162935884398975088947738469914462252585129920467606630384943617188937756021063058587867763393256677256753816023147663701036867362351964915325828947051819847189702559667568810370869433159827361861193187448327063679793247959205032973880997053824193222430441103451421571402570919046056274473267066167173114980538821308494684360547316715408540227240320157390823006954855473610015315915978196190558810957736004472494529027639574541129776574968024058149532973683879866974866289987955358785275188982203011513963324239771766489714240509416660056720645292254955085531404907564394283389237741332047930344916012466126481679276230789849535020946203031313004887254084534132233165512685479718487711493580253842246904874911165033034945732886578717694463424527592280451851162596372284615933106372216455910173748857825662770136902311402105039266475200019932820853594596244552081100153673613368379067110102035732215637123382949446873069077939873548243610264982796377796428425868773290154978317610977354583278214242429059043140018432820654565404338890582414880315614878366872562977291267086137630369852320390408365587726936395043516015069252190245018636486810538105602670810594189824222870724819151515038774125477139768928116810102803891406470774356034721201604285508858770583741339394335360274804289975933275526697389441810837878877576468251199968234151472082357684087185015665738419059041694170661918886559779943610712673542561592914539410235600856230218258957609923697819715178582693360876354704443808647834964288338679524449805624049019455705663753753875207652487699174237318661592051435076417469232313885702677819458974497797765224822065311504067857002666191049608836914650395093237030294421592598993965458751921142850740937104529856588504753326237294932003864712736297851179369927249487137605409871885850594320999023238846130110505557352262979585947366101270312829976217461696036691769601239807319285843859677615645377397093580306698260000988757936563153880021805607812673940260655588071169615219705239188047632801676187790736550646727551767144563287546502778537747151149337341893402275080844613075106413570364450569703537113002691876047376697598691266648133343540555165681268012576751039289615622017188132350177642864496908196195764014969214992138932932865608407046935531489472956749463056250929890624054105493914592245212584192851359969061686006680231063744097995102663297617716524122411613767394688703808748730067041177135798873895137007697673779011579947408846103729989785364711360211171611870689200745611589418868187012111134040819989739503979319903821421740283322755265681647048307365568705396260844881108195170296111321502599218872522429605596309968479358392039136577143466403577781444444886212987682377610822155035385634785283950343870600140189219327284600188909752542115735595478969396259764911623080834908400707565715896140739816192859298733585793043878732473021044127061735714524393980870638529111975697886528197512064605536595607301128759023619135614815204159229044117004142648890273208905423719482568145893502279250938250471032197630925354729500335455086031480945899699468013102211077903655764857939505348167645965811380467013985517774976037112353759635881327900319988287265774713947572123210119635394209854467730747985160488400068574640955257207461704558496159833799212686805026061876625121695435993503165568586525183390574395496354725370276817190752630347121507931203418719678612476109059039591073867963910447597607562004929622941411706171829345828481449670652901168347373933699007995374330004238442170969571048953112800696271634020856506674064841677481862733770590400495315216233025858236450024333127203666738974902501440719986284819862639340025372921932395834803053348754954695076350323658476045155270757482829439311169622679528293339875312722506777200738824327743326977349753684715347887385734992320266632969449831062840378764462125746437478358556959375325737334158596093572703259125554820938956188284270975957309242084989909723956408375606010255907714487326760978433549185564018862506995892835030041594691032410223184834172748804838685071876988712383283808939226097233142301823394033805593905789234805316985378313638293109597065392821830494339887168933685404162319578582015285911782358798452363712188189261907668793531615944040793641239027859903252145335685984177250136088901587833745730572484670626201296569944514055224690085805068549887495786115460398172137587555261131758029421825926771721393077081469881799338890460550794403719677139086227222234116112972097906246975364409022113005285095398155159284693854031597452790646474232551738005206761018005884874827454702963566043825945059883745064179959405912664532337245405636123968936509153450443566611942984998421764502400566845213849700783003596131648542706202997007802997173340509932082381627632902283666561785302201984110692007906352883306914170841016248938030877761336558954869973780814301612290624989637438617037039178808416266640050903314683571583914310355325709677324264760703089577042926716952446615288126718909561955316319523029426746966094192705739263915544084771550250895325904907043874239078186208635724621012666388941895592678948997070246029152935389875917881292472108334095214832751431062234872903942577681212163661718938273730101539554722452662036483923627727064489526157802001700746722566200448767054302357439959117279727492099963313918246309732485651189287789966221006798689940143900883899838562542050991143216002860828363243693763344226385996516359278239290433272413955243350967618883536067439691368780599748200557678001581938720260191901605868334757860560287595720440803727775982067714613774316005293008624471392716184283758356920400376001390565636802344152905588515859683432224960466114805715533315234623017590569707411573675286481248081810227037870481983498984622776884626311452717323047412320246702858582632377663815869799807267984430443869459973446612580153412220744027119273048443647503079285528111829455723198243143587129674072149933765901673822761329653862518584537072893605819795060121336987439374277785919837743140643784125359075279039002554439051985144805971122417347149071194813662834438906824739683651518589312594532856001345259832838770336062616760091061833205466780963316025106716665074926231532155603785262449397643563955575737761731025705238601881524990832680611791048632616810307486093244434007190480054714190656530107534495471246659116168842583052333908466320958399734667030501422395406467788823780838777767169929514102090690789056825888918269213590553499351326779122220178070769693734944596857435528794099837697347850052606396464862763223368732378600295280813658685350599757949563382189537140606850435222840236769959635498859859063483938075750174538898387780929491420609296487469898357838360095855437058419643708280372922754808003786562910739540668382227944470538280211460182253747552189049547336425709690232326019264891438876404855591918879978785361778560075562927622276132429746584718162134446163214953548108921065673302935595263399790451863942620372238324271413974561372876792383289177910841639058058873624680864172892868539170646834250030554554250695294880019700834591073841422697077247145394095712716023895918859132849072481765205535803851912553182823443345706172771772511443254691787848182917818787725729130362160876093869855135899023008861341196626640328815773258985358462275395028078270356343538461111649602036882334818024472646459162966324169946973980909744309747223230653497060560880531480443579703464231370538000313249572348920652521626687722573795110471456168968640421611264026887906507958741926840770405410348410658275832179087256470121093687460259973340924699138760238105508547890657532179059075683007275395387338710919248686481336110055057705400670337497535217154789500189466110413627504527952814956792292860394003881037510231525695555405545073210077527481228055437499570368718520587203973967032039536178797926511419328776632885847218340789043412456661189902102222394440513959807930749311592121628716789643274238226444501099844149884444751508768046940458459091777404075856676704489567727408171478418719640220705550280079693466480682161278107012041260434793071835035141820399720989836768401851022927533952021704828889229274276443383483550855454861403980498843342982086145333702429809753518404069511639350404824542733746377454893937794633136597007324530207503859932361932515229889759135829100967702663912916316686591782258766195769681227910521345576661527808611853208131370222613360220706407074149620044306074174419997413498209867111408116337739065855741792930086122128855266850476051143809238708513604392050799845054863795018138820936843210803121490145593512830625535077284980324536281304273727493460831560684620077814131643335596831257383887793293184842211849583948427941388410941831275651548585350274694761802299073999028271184955156237171130992492781856629802965368966026498932133701794345311613010452491946889499749936635015711785119049737334407564133044157805810000436028729335015310074963594650320129614988597956521348497612411305721476401257833335158272361785817754473609508742933987333915970667443687871827176606418721399730583450339369865103081745453556882976199020071963369960405211181786242149238614121084884477242976715504937107364575838628536249876788586231726568827665630786631479574505009582923591454241728990684725286464306856593849897516569023794829898988124860493143471991970759868735563480115932025950165310954062815582104508042059397957213104037905653514384198206068956632039433666131020854078377880106037376481908582926501623579720899443518166834885280853155119204598436227829026331495016858588911955625436435998254780615543549783460232092637300274051801689368956967585181057764746751817607957778944231830822446803958412663777801424347675804358403390070300409198162351546416633482311824547008717621041123203285073970899265216648956659785767752805947654985117954708809888805593283986807909740587767723282727827743890189935439375108505610579398153085796023896740999013010375598704503843139360834951921579930277144578534625926592998760005569294575202147479748052726701948095985709924037488276943151886051931302159952329435452225810445185190576607156208573535290611378847890813807710949935778321191912697874457025591162157726917486138440058185549573863304799568663654048831041276960760069628057788985020154438225772499014114890579021265545865853048574114457759962156175743050460944800467695360293858578384558667876929367292031174757059047993186987489330736739666494969615074277985220158189203395508674948612785809754817759902096734948901045240539765104736813160839433304768279403738001084182920889145339642823563221759207730177002444340305419334618986286911259110941083871239051303466361491662614182306150527641352778167356213233183094894327932764406109818043010706844141895602708357600876780523113712632434431311363530127296412587185412039119527383726120924644297420983611950154901639676687051461128520965685062011196023088528877251551131083444757746591508177609579434334625855055668630089759965542288563875011580800295647524180785506531707837888669538376842247810657149748519599686319703621709244251923494427471892453247837348834961534359065673659538397613929598879646287386150850442505075562876878002915880241760625393127872708678521855939783757647993203512311335364849703458751412197036819615511912562461415748737146313504732757423788750107519960780452615875681865286848452109371981728468557984800123902191377828811239270731040682099072479373950338096009608943584401072505393439135912832132733257868653784342770067242724408421897271472421162470748570925359543338169205737242582760142056203635506511858932603872027676910729188902247887043599368519626705122670265503256934947518991581042301086609247301489363069051741352787486086779639664377185956750660718220884748245563829390752651569936582420673103345758455714696432628205171385334281260512379554170898882058299427281076826240637187962880967820062680062105890849500637442477538572446318735180479529252588544173715165489778384825556753469948731034856608014839340016895856780330566231127280993556427794404070801792327798507249564524651241389333311852064228553109601855873517117309007146806130611572658882140240019797641282561470912233572335706524557765460194296880407874627149660503320261091919067647979851954095269648170336352602033527509492351997455514469439604390230922806562136695602712639723976175862897492639213324227210375703447636551317542752742372194727357406640390873379188932167459253474435484820948784908837965549487356126792133745462547237143493915205166800692693664114717000123750448730766358722386118162321543813950644715236847963218884324453807129635153800853665506633476170088339052574422775130296838775826768801060695890917288762416309081419301984297552782352800513794275541460012897978564481919508375079162346460774292137905736404014505398733503474551459435574114006105414995187532201216213575535108167580334323408022558475000440543706523385785262381861751651828195758703113313016101892445630846037461481259373895039117127775190524431076041921831028973164694665958222205602917221108304484844006478080128009221468661868785033549008238376462126913340286440667504544679228264863900161130445292138061459511088743809756358327129709465736993807309157211046731804742205168825679855798819578561650064266187034325009434549557232989498350138429560324571379698387077316463341390981572682310624681498162851944593204733355217691353363646393575103059028451576509692475748581645530594571550223037188697618047652814163734025963335256490679190704097038590652368605746569231579588252631343795170011454506232824514137720068161890957617618146184421066113264258717419063826985280085454007040183399173022276457198622655425161562394357735754640548394183650872945847168946174414529428208185174110180855321638530689669432005072113091793182552904696048202302963961578281932614595939236038932721365574603124470057397297251369391344564354146151907769238876020233860132781358623915186236901261499342226194166367777354270032000113388221658107127000729636669767058254511303849285338714683713251289230783021418939792988097266077141677409286527875750248453838022813906323983978688481323423017989497735788324772050073472452191419180153854641017724322291235194088319473014165321778828890125728548412438013637506004160102707468677455672073553543474734270365361037457744623793766953129939580626797722039603061297970786976590147879023514830370113081808231754506464794349378321959618609289867758464857490531448247103592880419112436113244983676211488285143304369613403296854161010527438661678121667248660530174511420114692285032939821140978856264967388233828509153911855836402427131925214808352102517228874420796991749171292288511625049509377741453424158834081043353033433539957306348828103392681353697863571687832393690955434720363167810353894178032548400442675056001834538380154937792318400379797567136841505301973153542462378990096193913319706885386858032009040598587504390306060194025377580541371839932549507511293892270184697270991705384284415455463212309721214012721977430226931702354906831784010551386229543744836801721140748083247855507710497824816504646251104704935354958586405054040896381289077954522869745242372231449670683216636011620618330598954049300324076237091957380029330138028037046534345131724966957293055427983718129616284412488011040324384401894366252574521449668382427043570449975704674700429506461172357823886690692507546972085446409104080977723378068705950655937539945856942043930828340329226897866199411997930654787415094666687109267851324116573078521052108877394392396761288368555400847674254247224351148533868915314004633427289985368837454232317609172302739223022773661813554237769570522397029721187147962428525105935416284936975860496883428062157100631036311794368714898983954361186779314985049280763426734588115692878902003413333843452479580813838555578460134797782587033630665859248035721509861268898471162040576355374961437943545212482221394797250569769055118984566652561794427938438659058914265341886020863721893574066465226155248401586205515190876086392154270547135703325553396739817320408496512859012373130533101425154826155835473742994969465026838460372074176583039922450205510876952727363974038651732677950979890574214446105637280223839527534307121630538882569566888794704554867258778369715978430506685933904126527751533913627099016065728628228581170782534817958967314230173448667002665388929842549117586399799494540660080101603699322326821970353745554012280720790460133186028062228891114137015050175501937070181220748796625669958982291318469343675534114669718516409845916476912496601080708967113539318585651076585064355947006435224228669965393176353558034835312967406186800425971624539574213594391538769818189142048440255851487396603885579669086324029997788201564687608794728525275387576384564990429510396983808427213574806390950248028524613337694968839277072549003957340831810992543902713613047840713563305509186101029611471948728399289226830800983860510197935802242592751225945685446920606377439712000698889484088204943608133851643706643085263536255254272810586236029223171817878957227861869219529819736813226916740938791742042147766484229573175513326632194245336481997141865500894878941390890825402218646153857659703902670896746019765538106442653929728767008410306817337469841018327034443065691471372155356032435885680372100995243155214921305236400118611275709923825280682729683692391141328511128039708911203120620168782191820864936329076686386876957075679201317984798623971368955962634568099765741716062406766420308713103807731108956398812219623496193562487346348983629359399685088741254623788411604039016003778880365470364105818156462282600515335891418447398606668013487830850846562000783816427323047341755074780700344357540967086784889457387172367234648288049555536347679451712760963802911641938395406607248977257315940420696436937678996006884928875977587383483152295491120236721601243776103753371183320085579429325339175303846617387375318686069073562144898544746615424088845397839571973009289680361734087896455258627975945139466268720960667108827216222565479774074342142730336054126498153446516435798640144937039212493663376837787093221464673062247986984950347940437995246107030410630968165824389127638961071638159874910567808938319464606104748467828401310790276164267298294728110903367309160307612832286653017251236280365848388420230975052191848796688157849397514676810453820320689013432915709641780451397328000455012906634153501018678015929074311815962204197956102020394587928868555310581882866399365815167129922211060859398219940793647776868389164907635572881423556459733565430295285195746531489247606649894566786376099712051651232988347780294770338592033827791219265669726571562713916860705802054170844228617991942438850839447494302614965932423351917147196690801926191665109113464571332493354615606887297129174282321198301971130623475564236051639728611271633066814175504443555569287676089625189946538795548499803967935541267217443733094204342225481853716303871533458986456083254362282754365784797065856108131778315012146018861756047387329401668938382621982711147529326795381515772687920166198923927137509359369308042618120260519619781367894668722295910823061236793565416475676578943712480543467347428691604570851120381092709836724130041833860189549619869555608307322006988811087885477960903125887771822426165392585869012413270150684460994384767188802402676535508498843440541053960913776239625187936849423707686220475553442724292732752771343969970498716445707358292085178671207199632799484623676984831459577574021223532743960478026474476280180871290001389559833626531062065471947316395448479322013836620561893741944198559261366965337692096246177969776362051350411559872966367526525442746481015486145787921204892970768574289324653010480462643727615701922362088410789592493436250470654174499665169206785492894299767646749516078633923590248256904479392421474242120734105538467338311196596655590493767864368438815801544763158350086261287336058703133989216641895472188078601553673324399445441298341171461736759017899993322821256596832524101767128323666077455320648295874909162176112891842610244930620595247852556335667109180628921486669840157531931790782445054900380981685761268167834659052559979326909433027415137380170268880997863695142683165777592382575129869355424590226675052414694571427346142129590843010629749959723354501501622898138037405519048245439191441508329872728412107057552986734544085521803129494968874097257882334318561838101822009667457611102656322569410923838397115958261263164390202350796372736908181468144607239869568012673047710144157797448649066830244585209377486021732977913816783476725886588212430565601659268152855644156810197107661950601275000888900125862645628428105721229623230447349619492657146801851427624298565165064594252567344821092617854110595260274860124585072162396527693655307774042746741847778301608813564168578282688597678267482757130167532781194770455838704285678142916711493332033566437618132898138437537508243946181302187673852253238588901733954562421693623348807082331801945790850047111745625285764934986517564609562488384905584238014420047707012134061857283902218315149085065951326509776916459036918268482894297588462290219972359691335604676120382453834358670330148532027884223553466290407463262684792832880556951248394416290421012906110906545830727368934368716819347690364644177032953961993073114444980639145304367238866433993097955909443442720637755973630310817827040732318111410889223296633962304796855618450191982743537530412791288938640753695393374976160606195943588361105014896176610433792770431331062687579615522565510384458603654620807542156013750693357856133840000037733448276099215572717232844470520903425100062764222115397285889094363405117669156111538890847851476388235594141634219291540683700562523977277351819190745341027247227778385115033332611451638754477449274604358583123830252664511745786335326687306292548284712742827929604317432368995615846830267119979540018466226512171790427212373042545141389283550233070701504219381038423044813590449026669273817435519754232713446615207652803728550629241802793891306509514222002696219186802296032614980801461804212664629708713184044627323805257466614798028344231955562343835604060832516619173544998485505562131623585917851084707645437223252589748539142952713564263304829590809012636163229479262477336454927685542221561319379880882954566951049651586846686199795081590243721924630589183468642643735679308778633098910871512790258960946130554491042265661476843954721779712509134845953527586800709950503967614703432286472716797634090863861330116381740293333008830273356296465909241952726378850507734973423071824535697524872743268690513683819186380674704736429545682332612814407707317170485889693390642321159453670475791957882936000067951705848271929439715459444907318346052389672826033813033269209698740240127609913977964779923138864980777217860339423819139290696876449226764863007043428324507842329683524441939179279468612509824842867397150927209740429362942540255995133603538003271506007970632483834433316628836975520832467452528861188674211793426914234417239161473261504229770968888330369473942196576724009748214241850619993917143037943308613484066883644306582857532873079460282555190035000197680122381268411013557186553446019678095752068092483382509249578538465466326928875763136312724566467679102900254701982944342107542967883877461952215140036792881655018254590803191481732665408066815113950499065113979528537413889567102447389626516438873174128892448655989762200127008280974237893528230548430570514540794506690738018783588121852327043916974776241425480251967900644872473364246559253615989092271224926987005680586342163588256820275251293508636076830702872814171655614596823327649498640365651149062573736786100543130232056611579879699164795771447266009199275151084499401468916163634829517672557530520306998540190727628029331072204266434413184508844299651937433807788667681720651861662674832403010448134068642265542506998504209369648240181792344119588838530208346345940121867815044629403537586849504970168506201792329086028100706570850638056706473448641175285761394982615061351028701894257084625724236649221430588031803306264313379456953301793228816968762745554548134213991792858142252506901138080360884406675168292535904666066306845329773909902636052886462085018517575880630574461419862286250890787280687839049995423134611687621334748076472977941938715554556817415941887735081439996926076071595006910769096894167396895724761118511064300887162836724366192146003293668168834938278094944867684237941466410468021416557423637340583416405849608299925972345334118323454096674769055998860458181498974704361195652615396830097421044513681940722986418923838778280029360390207701006132446474383010246210142476397013816708417291254443951582172345952656071786177106602708823858125108126446221058646199431442583360959881457191477269325210179511191939095456594587164014625402786404329921448471393233362450496577771877430455288201568304248980693626156967284222843406553226451053497761836463996944498187699119950727306166503858909570600991903599126903603124313036775201452140340451734370527324419664746637661221883602440851784126865162663423908537497348067209406461033985868040403624799319928637162652386775327261026169838026457620202713457604517886931258538617655425382634286633786824183520307260513251621852159801002498484297610056490385686055560578411328337222028166724098332056743208176451395260201410167691385546328870326218719905234868407132152133641360983532113912725344943919148759738970179373695951007429935209645022087633936829340616151553329588762781947774151670128739099855631334897179412536380153091621574056355520900656597076096339199331053496086779541037132909015845158533712471837497894371447011104633961542032272855832853484598053779982414083629101208491930165990323538549319662315417133370315448185236611444663882671846865985991293149995522387498022143751544192515650079982397127062855234605960912445667181430632655554526703049181831201428466081136639330253950860776665427589265545620685954969187872583838450309250538971622811615610347706571567198079001862512333708817989919469050091614743745337722662763922985107994646448078431057068831678225410327919556969027674872961523872207511940023331719191382969606765064029092501216171383196907163729380634591767524706175959656622470302645037510754000493510306129783802381619081937420882564836359995350700209832809098327352492797340460315338977492066469900584178491428822139647820542188272679191489793778491453621661257686012742317225931850039527591335098487239321446199767580186810200388656333881974527424851779064494687157755813617437563540436574487104490559728786134681831492086485725476640906759798181747419748458189598090358377208005074861667131069979087130405503626038599694636653178668679830340214098221447972438482881938106364684993539113791375403809609781836246206092422018090108861020921449606667613593187961490897285217709354083477394719605580150505140552068930554171307415023404452909600442491976907324657611811222107923359274519578649698885521108986030095565562155702354488443482876325829148378130246166270977626183530124500446517950207087857204580991973152384680889887141236225940846480841650598259588322056967813144434900088688146534040906211838487029285085779075203614279667785250596064685455157197662332106804597003950814379899524549102765775905372704256658254283174632082361262501962344593356406257660860007993968326619930797552843959411243225169780286727439397433329106535435729967305232519339999617560300503812559238823786723130042592096734456485306232264401097100393584777587051648432828908551417805974576682296280221439094755898923393921750458616231388531170656176255977477513317865756657560318036693122461688052217583553276457455299181597124821219289859020456478663230892365932361070089487281484657839579067002664651418480053750700109662769158408958370266112002739569859153975327059591149471377453926960115950293872760221648314304905089532759539158138198388855317534823294414519520934590717314180332708894439640015842312805371904787063422605195108363787447695938429947835510443208974827000280076017766202655415934300944145752691868229068121173259108358402960220334857776550556393310602850383822313551898088822168793080237609779367705145672252508966687205486913353038055303396969559384149198454597400229594774117277419923729725097060649758654693780143285405265124284427768417255189438414792396843516080120029728219236737347211674880122593444078555714162170633470183612384596502903995889948873395089598877294352489953421329589624736913672241305675625722514975229089446091245987701473381458678114204539753416461457891258238324655309958511779593996397953923392461244945395701452677989999232857245049303618497940734996176438109027780669008775816896169510669282483903100068757249844997700093049050503188315401085737196157532259693486339040968797751529440080322275392520743773539191628692272747177925734987137099368422307848118167502162686183860260271885513293963941051096681770292376033786967950110644848718318291763550499724708246941915815470844641932814133581810394077071973396368367942485073000370172044483788418208189589073512642191941243649631782660473636713360724912289128771505020188075267812224903073233531630325789075298420665695468905788305677070505797937672472235352259638677758236078499554328196304083013858980878381488946637882702584017525995845908573956066979528393621050151086041794149209728046471893243777959517187405027242147014173953974650470018092942170335833620972261400206529928770653973922589627165832339080308607896430760157893920539301961890788562740604565384466924915556514301486178894665910653609923728297120277156105388867305582731025878161840771065996653250530449940680954545013872334175548314723239980961237775456833634555085483918109999899357803639233347549593099815397135451884779087376174876828835109896829556323942933512651006877275819189442609800310840525154847964923779786732944861682194214784075214118978502067699023594644569610058043031706318381294776015651189102031088967361339607789243075653056483822540218341080060679452882052316693183790386536453949433080920923226095184037048648334178186200785465557643137397320719354831240389653617289075676241180614171994080056125301687050278583833032034984088883896815260912300764564113842898279279984889083242385645046414586032989477759483698428575438408398427472673881107801275436057570543147248693589264262127119759809544831126384779815926195738524459077457225470712375484575759543499533518015243692045432938983779380411260611690514598947757666132586647329836796108744040763750881963104535207610558070682413643683952003337858563210769610325842637039650602781433640223473913160545611169509248634258897650634193895427187651720096613890283156427288416971054442779644291853267156586635030153716763193103995805660092232445478835630035285625408117056086607727159797164299634844259223490010114600619127873042208367940866927535141616922458863172234913521741023791114572587696660019437018505449048395242039531544278939908332872632389750935084514472813815043823708918665224312870351207812330435586077823301272980636852300365962305967502370204267235579981568012967655662867928685815506522241097924979995492581408466532130704299315613641787902984787214689910230513637181570660522534671303971984161695770175334549665781687998164385505302011530600568914627210483788584928575838269997332208287589887540507718865389657755310368434496532866433238026321434492749782571273626180977907061473141305257051592738017404624956386888788859337612659389068818040917671440801071957124729152400336782035586484209999271655231194297059190086556976320484944573978571823151494745372771066369143351152998764419080663185960457349385510617323217805452344122139920165542213865714954067399935320765027262969494804632699456356107011283893905066976712136703527275570402366988600301074805839277513050550153272027772583382126534456618026436168709118470949804911066105044256678493441707002360614174484074854083347724854197983851517686013678101190899133915360258267387765089529052646317488507223029850662038586194254244605611297169575488300774484517448172636346989710113183107400132248474982645821628073942254692452745054007680974044473771620117827134896544360142903928895832071572601805780104765989473465327843417739715989622038136080074099691468078823668956973980869479481441206216275008274129084173702173485572594123251850938998665863027659633990965538996198382212756273398251409679204915094343631505869281668425189579874699253263513512876905097949687852901492109795959379402356095475899934699809203390005161847809210769201925023580193238517756427762875896854532747451812180810760752837762799091546004127457241017877330894262339213299592439420781501418318764233834989297325921575737633775679771111768259415005621787597103459123281018700962246769341707618979082119071912502393769709995450227751285545954979825159945126365030948581803401968202212648717938167323647526305362292639073138986506098685535963719295433652796999962627038415630173219496028881806451811092929878183237791469386710626414633123363354632953298126521564797056964454014358536088515782450113080432217276967584349617769669698968242241583498551144605451328478954014839073051168893247475511877222923247760665751377622807657096123143173221968642701159083584536325854305621540802835734401166658427260436470047789032964104742738479934241354867101778053256403321893247020230165037737680189297694078042553528067534485755758734156230520330595762533980472389297881201178001553928893490952514044652715650876701455006608955566568496945423066451985675110544876972171688630125692198393625783239666985148900678442096194391418563634869334833277858821265837061383598108000814388171782861356813968591224592355365969478177593204679233453248739400029349599917445362735567561964554702431753624463260629829814898868217374089208588457985329775128772522794535957520273403250523592864514460897176228026305427528849140716146236417221039929437329471751889771506680009709696079704156726548799751084881866264457519804624685091018509916962639115487163078103720638103176093477881436700420200648303835310606189050730540843068359278601393261259415946854163018638293373756086801505769421502877728861477244906993243829482096565357208124649760773722201197022811177178496860770008734403110169356496386994612263906419714781551424243293770631972146353829852686130794884048389577047242655286570025017537457426748626507463280175528202797432622977635299057415971218442175206063639193817977512412926536446854436737013526013108007821933727579265156593742744465554772930729083101487204463342338713509350831547366102653810075998937709990013807278683407152519889269942575956058784140338161807627022244805636892946431947768024953698027580812528874461301477089582485137075760667011103210605197943010173137354517892296566009019996536190435646886538623990761891120388329869267897061951673217233516504755280918673223967642937351630508533506069001555391085438693161893654955151217978450719535043598300978678701510107043393200491389480628950571458618232733963944839500453441132443453884068722692108620923353343238737803871621725421108267060983881790485479738780372636063459862483782174500331229889238022402625291146501912655717838797629583607211684957251452985606317675259023324966750290474281369419313588947984024752104328591977622940137475530132740088347414457870282388538858030426444157819444606352718370443487487941493334208458391329396882566832339242759686555421421401566572694523893791777352857480228768784374190064452088039104557680024770561672520883965492900149691128536733618803018339042974953384296639270540402615914685984972640175554966859259378481264910030224535938074287368196282051498474054498434629874618128853685176812828813320399273193052780282161919174914970180262632904174753009084533872334066698968557376049828207208826381191640651594572000051725203194945828464524489973832504387983360138481236666869069638262922127872691318093917710575396499349014521066506362437368337624528748251716421699375424342571203442209774787931257434709058974472181669930826684025262014893256713165783627518761969378096101544078258646123943200846130122537694013167682232441260414701150883453631337729439737785837074839915395076828363935232272248692525971214624232027287456188049674787081511018202640745527865194983224668988068942462163185944626579798307102023636152978805330181078757973802603948148557242447637836138535824516048057573359282556809204070747613190253907296693147114494909309495975775429660033435432212337121692606966079466283047650983251758244180278670024131959316793955101180212426500141868557501449362662296779617399195148880642264642584049693361942591621286133500878627963230769507392775271463124080645640700575244422545991506710897229075535438151243509859781829715086664883470018215413883603292889939129407366069350141240277844118377680519243696793366783583881088177914293774790856683327219152895450259534438612418537585497977031874633512586056307182826916370490074708177111800557412012202638748985040038018602757125031213627671804096579973681351461114194807365497985563138301791527199504393666548697468886707965072585021495374444433876750073088608250963893591371301127301633241261555464335477606034100774890820685507657437105664207357097569418971470315980723162512911665109293922660246957250643415467677501602017300955753197511804242767408684333706569702274558833963019630050403376189500299548567411744518197099173421250092383206372712916436449679151208160146963397372777834935369205075294596388722756043719264891537998788829883036835327109816042025188340839999730846320451346264510769802858363061658535482047582730879195446578963141838009158976896048676134917852948529240563088754267936500050349583480054241424003518015155085648808500300606886267660759881272935545009439399344433243806506056456311468584244620462266867778940657931946683550574420749154852006079300344064510437337397841276967145672027149204574472875835075698348252392814541477576575490003175187404669045634935622544305116345610586915690899793375846837376271072113112355776570769440730360666133421303873940153274415074356362784353812688599826093022462409142692053911107316492160149447142755807697796236998418156231026437236544119137637249894358954721057034367858010086507670946702041475039288231997760635787303474589617070498745900477280359730190263211394977331831346825920619202817743449434074358661736279497637992578587826478498272236823163724623947592201536038752800773104972664292209557904557812221609360443056308745126672626066604038653840839138465880238587300491899764451785743275359939898586992689284094001830799094199562144111016310815829345367475241457885197124043522821436554680503293171480154136365408194726534450325358704326125806658741471204646633390730896637412184146567558680872505600138075193001330239988464634686762248081196229614370014819849288963335343611143976936076329831190198388744641211413909092519458133616138781378685644438369952033874411201263941421295718215143581880700569496116151238059262964290256107786312373837375854825392421190098181000222393272018316165300529180965551722693569783585695070617738717931460562961127182385803606334955934282930998961214561255449557501897777992286732771270710016697812233508687202092284167306681855562965779011654306445121224409735491737850353914033681379960442736167587270054737980065619115784455514172787355458185138111659223549280462553883154746006921526995399850151976612918187723462211539807018402813958968529812560362206587976031644860759378121133671116366017454204077250858137034196766190083170706282811330469655443091570304724140354272376120099372499727187321486175562444971671939376390816932314928201832306432235311858628388295189857018749247275444013303994628273945262174862586555269613556114979589773768390038895547298597252133207160648254687051602017243619714589907742428231153860608747648225394971348197263172388138758992931494467176568070137184325264473812919183429981955612487034494070730023794594838272195164085082338302629126360813042411040054974096431964632349414090293896840080941751626795125134722313703739113376792719102689272322961044221475967345298612168444647109100361287859080324748487678327829566682579048602633405668456856837498730489851511823375189174590455003087038936903682315221145864627622165855063635744953098448469262809038821552033287973633980500179730853567941613951366670017235630813222711899416037357636028683812830392872544260066451968911068119724016670857546593409175382181733003705595074825160228200810853135973949160766299942561248291037919704794483998265383171929322205380215061351613005840625425556368429067842716626289373627531384283755027702462014851337735025596571862452445060062617409230789470840316452892545258841900918951484015957008520405231901464818175819713538294242817809016898277936843557501015939438710273173784339268880601753801445289852027854550510238240801081888882020509808268956758275028379792040064239006242408839235785572294814996696311145346543278846750520138025897097171683686167184937673096888684016355221616784436669712815606732463790694860586810917542042516980933383293028008880335981450046242841184922118754352957047430047139321145520721680645978754220465839462800556736081707632519336575895376764771247061601007215853172479821229156653999999576957539920802812651547153342337702647909521994184792091304212081290065473380043918337424767359337866263503293466586698529003509526934067964520338952485263227538165261062789557455190165719749574445397334075935901186661714505202855460896383625782648728023863813156550500750856516146554170343127470380079937282574623806396131920407924762194430166446850857612996372133061436178728875034926010110692354606167853070451705811411723803161758795272129773358171160741573135322494696280798823478308023200575011444174782710239558077414243548586469806509286075967982528704786267481907875589047752977610562537270840158387987910490212799384344777543551750887556520225902606735430641771900329616915695228429004555174651382302211133281859034838442059090501148407857280438051686940075425945917033389474617947742356135107517701662508729825106752932519389967134857308948403595464668351812059223688300854277127842569848273317621048508194924004959744164402848011638899723762615622536707697277830341137274494135661924863521239126509400585889436692310455349939834394382997113690666491872230660066722321661786950505708209028753825471011601780926000147305972198127287379655757650280307666891779253273650628933476915219926393904298096337768546701434330067845369342867373784789460915026766007520011246348046844620739796010675164663310201461066730738290565650167070775414261871502364238463108929467789961127127063695476467495866573389000552084105063013012326978693561082228156356036609873689682467190543332985268099391689097929695007006210908422323374141045002216280532829743145997992428221716521303503625328619059404263692155242386077416688866316698694714860004800080817908360473050906654076619083138978364867925776151374105764869146906404714317081523410071932194688032988518721751953145248961462136674735928395220854387490475315523024239638050487673996970229359512291693146327960737531880896773971663290073512906851929024145927251948263559014307898469417415093445320667673160654555883610284014615866477473429999201921237528149821139729272029947918354567315805898111492248438931290191733961514411815299403772115387148184677056574292054080812771095440180964408785754117481760678674419689138484591252041872396785273735417918074091190654331385205969172297042568144156655972980731165352369312580157277570705346684188521438734017402640447692401992073819011674517278917561753729664276371720508212725126080888800802357608430507780584796340404441053936247507124782854401896447067083865748861314609482156647793313793927078206990470670812166073897348160209869319123760433716019536286696475022707524563297045322680793307204320901316225161529393044725088070042496953942822589868093260800096088139760122478136424172547470508386027959426660195626393379608590077749507062951729189565205637430799989676712813591021949270661585908822340160187704736074705528980685274810097426342134674515437144854341290784498163896483306663319482957076447103725011910182375199795666977492724986122154592197338694814335516444588275479108182788214859757067388802401763222801955701694911396541896508922228868359301304944179492891482675650684898922126737797539905265359048102384857504899332160054490850461061320633354143547006492795279386571383573122534483820003359821554371302679826711856255732385147567792121616772399518092256899662846141633983343772969294987556191153786550279503979054508508683384008233063360044096405074863308564774809759382457914905864687841930333893787128338170030875955635867024544157328232295435389609934015122792346294872898077151781416599719799856890485463638147186982963293251066470209793738357419063788168645887058834677959426069433454318071995461780660141726690437178816530711225454320439151403052778918025006828097209217124881342412354096363283365220071026884547177112200826048566568388694864689119810954108951317432628345653810751778056776993977058354530660002783034447635795685616888187191964094505712247657901685564911578697514871920663737597086892539179657341007636053660048326191001885590348487948855851676032333985344115572931442172970631170895906632324602030166275086006016972156102651897797141920735292009424433746291181161208684563177049820877353557907155243247852328320538609723731433722466272511863030451972393191957458249446439013615593942880893277727551502960799891202805915969307565256218840434078187963445260488871855476462260199362219113738638231062223117793869845605134424580690529954407008941903676246257497852085485630383745121212752052267999451939998006340054154074140360809180589618970725570597019646619055778022037268123486733724548869486011753184906179089903055881840207253603898991853997126605325340739879786448452044195271899929922723990526654369957595098642214579879108584683115232228958712256300999435057007428280307161690384178318792160999804379772032370472320150011089064890275681506487026511608988352661290148997133502753652052707200326584315027223439841729734986268305764757773091417288608256828106123673285343663856196554288773751523227062094284210320157947161888922115498108062666013711782521216212619234306088153716168981264440831339989839703624213724254087178266371642854976332322175629548040338636743632961929802805896178096178288479181909044173048860580081362991566587457528197072461202076842395653370419670330611024181594478199604860788611931693689829841555938913986935352365701988573083577992153840295191425880181942370916449421707184740669640612349570768784281546801495298208362352412325430450126074251335947087095663572978491159816740937578059573208461312476386932633546047474399999639511001163948380053641558911027806701116874567373688187638199963693287614923028457430139909524814337904174315530577773683865267129107745595135751161647076046525749322231177660404737615559219664220297936106268133521481893968997697431545857006359119347390648681818299448142276747356002770344679670095122535144362367517615427278749723424772190085557049239690491004198669240337632941776933265315429903885120801993199111859724176618741576280814308861401747839028203199907529298257612367977298853323858111560191712302072523378313165341320394926797103409449031928879572163530029869959527245092040030982208418903108710669823154480076786943857523516749380253997130339995241477330258517177579737945985011100695696917372980939832452476675802359624604901913287985824660449142401945072814069911451149591631575583375737396073674304652778243872068668103724674495459189196236093265735018941687396671499751339298010627815206137771264497079178218015618030646258424823266565005707319649095484002722468900530397395933435069930011609137879556408998541791420897767762500924275050899597559626379624396037086989584897591234472663048976115266881219025938639273931636922490227456716439918906675624436193023645307669085264946218058982734463411097540853954369768941194678740859913533457025607821070545903459015952780770728524433250587509070126230252488867966414373955362392494957982286125496938414846285804910853182363093984168291453959172981337061051580828634742778660047853451875411481562431090355844797672109508132754495426108971852946030020823544351877358628524687850739685768888523635110591960649845965957282554360449653410597976601651549887163783612420677772122340287497814087809827227216403444117708321669768081027810782274348403604394607045164758133904087968932073727690161609357249203267661504619582713662512467847876408182482794030910054006837452286681763367640307107847434272524570599385419249807596855002197652763369514244935581745620359212179219923639559057816772996163066761774679101379296341637995749854981368275165964776532681694578696280274227753318893565426270199728740202658944307128819734932861702431233390978775436984286567912392125699116048729922240526252489496805818799068330982971745179721179887479130050187562273461966262160859940650078666189503914933182854902650785756432149410961059003548580013081913499217672860521055393060795886707026351863016110577272096132134838086516509182400531719751304424301449441600819193740978193969603767276824676451998727998568709507947922325860266816151439717024317151783406179432945410074879655358482707293154740157418266945862945725337017667940786574150085995016005445601178265116494041890545607832416880483181255158288798853361420786962769416738961783152484973877857885024017363175902704870361766765274507365034600359629039264406347954932891889047814626341534276767114159050232991387261736339253598037177079227737041568800971120812057410711140531370158851574017184788178380046232745878165387042339665409192832560889104972284901241100128384922475241729121471761615094211595898724534748402226570466562210090974180539645580471599470193740270337429941757573226370666558290219084079918974467476215835391582642764875094577235476566853371005844452807983840087358531750716405157679795643260212945236358510692414914157613231955009603203601025861291452532965758511330839347022825988938014996368086306075024075677489066779825410900334226074134979809212543072253059334884500727462886814588866039695679650143373796250063827105236018062648770607565517834850932326357358975643613078547842176885727390561831315556323998696453064056499561229522530925895970707709069107504036984849681205064544854096565512178039210416503788796789900432307170232632070501811157597596286373881776953199903900764954218039310467237476181966681168999518740322835989340250827131990125170086752468268429920049787543005844542441365152455692189925848637380929756899713213313196956942517179346232943854647263729509871070057790522325451028552822875506281906169409012400141406508002315321403541571872160826352635773674917536845978883340659200551018264317673157834751355175638917693650310184879533856873337794263193938112034286348370641712095994957574059571105203045882814011272896412801256586939688088669670038503851357681011437206665937163929060415207547423168507696443411186113275894756363672917952159566577947760579257968380022850130383690592635520632491153230158239205541980660147008808915409054959701262569205264026109021906400354948147546920760605725864811910369785011359824379017900928109270215561291030962506927290050974298977365024814570753082978013460145096753608936151876253046102706898355130488497212342697265395390320724377043625206232316405343413385655204893322675824622485718304364278457095186320961128435026456634469118218114236348080599243214724168028296877819289594849725820062200698070985677614921862121414612858558806404027167178357413813991960421272945737742947651904133459027366147070060305126627728136924337310007447614967444220906955837773094559865907349819977471369585380036010564093714023537200306268565120254841128291529618035461913883789295314455074355105259577651017851821153179046265292304612326635338484330704549801748472445089789474199522652584337354239746888433974187259382696580876045118317994580479197937596191470595678258193412184589052877490727421446134606936883207974391910830356844103840914694963127857998928598012826940925898493622551833680447355179723353550330501378511272033794286115913778809714339126189027894742810255852952581680317786988799017237914400161664409432367728543216820607004961494564639728996222388447723851501173142469474402315690448941413406005531989118567925413359584657581829653266295104251153829109664964086503777320266059294051557829753390551447487362064472173530749328083280547875664751734438716676397793114255467337795834827505648818081052552249063698416460670087170813598016575418254766428544137905357534140932995918689393438254799091203342522790876258802640159694713853831105978858541784310664830087785710855534834647311719460158931260083973382682342721786540013707027648799326043205103525320000803140837540120527694329432001204835657273477999187368271893673463794618744787149432362638144073188263790569590204703548500828460301380201501006596609443241900510556971079419475834909312691389079156317143260110566868830314807188552763523297474314230931323472614004823256224516842172915623235273055282962028491186881868958005718407328391971860168893099303855309807028560865569280913846854050904274089139300883809063887249921793508147065258468872037451783874929152436952265674404561994573886741901780620037002359602458922127754820529328865059618733300036790499269316641643336742373460181766219765449646062958686200308174083226175805803350601003222926111656089114022072798903012203035492413118152808409711979514597984175947587160012365405799568798711456916926533543431494535708307501873174182294817168442110118035887366469203405094035249253312009376134674647961683530653771188967690572896396359805868890559266053038342175726209175266033453533970978364846872894359864614503259893082095362941420963104722746282017562190755659729358319546615775381191860164895393340958097739367759683295362964390122955351349937838861825516558160578460647346919457675664923454171322596969029864283370243878743866658357765099764825786867512646531485369131852495708916916808017685619571253660566468911859872947688224313939238868056819212487585533690971711367614562673753317842119965864892002010690512659597541117067760849402684591990204367487559482400923406585089378653302476609976929931008155796891976238755223686898821164145312750126671308994363915808344286711795988285933284153733356044757042934320360815008848133046925009230008268574054039311882872777718616952781012560318046220266491924358098365214963442997705602859467772690697997168006205564791999849958313102831631752440249203501445714860667777354819110680535402942036101991863556988517032836982547838875000039919449077944067519192707161790224631109043119304755810261722783976480791134919297949746019579712545093686784646736116232303209006900190630687327075228176839708738811637379008583914001968562084748767456633445270753370354827403675735971775472633909498356389790978283482073475278529501078794384757085689839582551549687398013000156895691005312862666106044287128467345826789464142523415503074097428865364484503211443548655513068718439782831323688655353546765812331418869118335216474752924154625212454101415544355187712864655950693582454834145164745981969145891354146829853657390073603320981537859958976723035590418163898196638752266761553210730707022324797119720106605494266850047987969670200580626662470990281406412271105181468825589509993814841918569401931959703201969635533118633413352818265100530177211185318221055084603828932871531564206617496975635522109325487682207941279566967202889554693146123225369359749159497696850472628536083762097042454737862953680418336511512083794941316632981452716835421012287424452160717260125975922201544585696529279784262126095370925080004583018623615536050489729374005848075155817514113475015564824842992290980551795773490566900130237802466857954128354317642652292486784479064377832919332465232781054404266028151371506157377330376023331944381093396025895846687895399216504795719545668967206910420201571307943031065444660302250196941311537185846117093131802746325568487669874544467097373412950628754305408601646800220196490104905151946140278088727279021033837685377718026212904804949750359558687193073186847560826076259580683242785639749792967200920899614522807009484946040820028326004453691451627290978186789577109842955164978730477441710444122283354297859823461230840213197298708319869734324008696308655224488622809462368828828962266065983259110933365407571239414572326671476720424760676046195327681647011866536106351374887881197012066902990438370674942632056985936020478896064955889098930453285895880459246530091288314388681317678956944193366188178705140609643514531404339525021466853455650376879932204249653523400244941467719254398354744736138351617189053858203026153391435843729495065988103792316800819891809169960840989794800827626486586938724777889674151125867695360662755087726917131524054462748067885591266494095446122253675623298457425790757697383748736948712281390160074769388275187831847720523217327437124540088763290557536855805973257436298970024498789971104353589075186689043292599066180503664759832459102365903688156336693790370707549693621359829188233525475496371000710205936849648480520459714160339347413801780971990338510949466086956201413840691189606226702957564190193103670598348909961905762197792267019597376316779881135991910317572120345238664448591957186175852006460470176815076321043795334419313381373410797913447664130046549477003653826255973916728350115128676552771918044027954263474882789272683750762630022476503114648965756457937415351667703637219366650906886112592426897594856201507753407128042551213697492099760125790165010853776015008846623888757178031018699475428504949210927366939968453898400824433498267803607614823318408501849724239855198674210371600746575855562757966687818459237830583218911240897820292528779991881123022052639163186506375823631139969974907736326232515835010288979619975314157342397336605252808968640604079784817112991536163255654224923716873776536081691876851578554947623336744362597970877190111768820691271970514813745120731644364083426152060609104540304454853200205209897539657175752883938729781312319754088960301633889169646087217934904722347177114989332924866387481989317931121830585776243142034416511848757071504740034146233667363510553862133557837735932049319511628372099817975881263704930939582652746880167212350212283178978600165132245430561390364817089596035413875253725131713919997064321710475922935958952966901472061809169088301836350466603286783774351781609331971070072448161617658676599049479847662280690268360313690020975230502864356260848240321375191370739896522868432878419461294734668090733807730952341768568378330386488629278879392731752469410053439187491655002172496113835185322166985975013096090278840158139088402197054910876302511719306113636004712772213332214169253378705578274078345802313576930253066126875821485530750032960955554269391479156140088329915900353673608740684329011907365246713601134551781117882535458835382527791592522070513335592684234628399564330148386690163892842719056265576261003419164503370990090879533964779969658125977563780514519109776564286705264962854751809843833047017794078810093389059800120291161479724426268828944876880483868048801122515030385939311052594458606977721879310598415877550986576217711984837938567257870538956047337672954376459636914455787268731909989588874214679763743634572806786659793774236717750081118924034956136619480883758038306261530997286875946065210751446794608977511423368860022930730344383171887498158025570281487049363240010774845923609414831600716227975331616001385456334103606714772895401800796664629740883238549125264590812824187900667737077467112529813592983250181513512713822401278723929032957823537932929569444647555047050153367370909269179429288973170204229069858671665282350683306680593656157351435524607526828449564377625824843981340751001063692861609325705855356445673086537789667584659274815775232192091054005115136294676041340149257493613722538555464891848137863329594255596813872157590599762327849149204174819407413011042568093243144642054620407292150149069114475127979130643067373672226460976793981343469032412758245720986451001202690047314122362094251936588116375578161519586841760690808965364435230279662642341666054091849622700892179739447119554638833229616633841451858924468766605203410552671063472556140425039901740851747656261164555622514456742012448958954211481564750748322949562034450910492284507592341104244742367476334506594746834958714346939330948229384860399936723724382622104443474353444661060927591300471310956215896395766363191701798681634916512996789358398560751622760287483215879349729117498496240102597009196798213655313369168994010119530347109388415993193194524316517816836833980657602861432805066418024807768489369171350567333453489793648475583805750584231229812512275525031936389700950756601838734317519366589972040253082567184075108979909756900033918843051495595031210533648756547764311974776714670662203493942774298349994910826373257741539057910703753859587685598200717158006943753473461175435874368108840227479520935115175876799054929163632669319279270182498831541066811010912541570603472986247729792463975423868333829645778235913914255361354819832268480918064751770202282690085346656542209772193429066876447422825758497200773626566772267473597767230243194028921164880882776826129704252288458938758307504214268081444123084246798877580104590905419072216537461149752380131211742277729756806773160530461568520443677067691122416798160171662571763051659472394443437693039108509012486431585482611219134058704404046604927867578792617348920833777432918759584107637152529590386748570898262478162653315813468142443603333512805764594391914569733411610057638071423281723680993695298352113645479127536564229140812848096610479667177531287013039953117985368571962473688420823475175798917040296815230317253976472498091804661739334312653885537404649567512625470190102955183783609327375418228668332232952627148878493890903739717051238518779615240793171200699646513370580013226836704090341291133327729284968780280676176241026122248250728114959106588040423963291790171756057857287802821262317258083412989515584798362280148415164912172058883738246583632664009653296044498120301821325637040576086734448069330565620838556956832419557770306574404587343750337531311449237806974465067787828558639720276244666709806012117247335317939211426610851215277060397208539453538744959954060861433993413993672763970527669940099678487014090661932519072747894679060781326273782293299263981210628222962264444606192308648275668016869666662460429344329075409633576661809134674419479448692550544043715542546283862649173411248319810433124756301071262394378121924675770319310735562064646870297017049674517027429794211614599157755670097073751650950226529967770549501263941585606526484752136765095565148258535088773270059376293508933158652987296720685380008493434851644550933979579248654600248964242900713042326445206271309805557965608477995343163650129475138705341037436478325687327154493895231296403548538904612584773535550258924812728582746317184533264766415299958624331635353729203403745799611842475808891986763558757320104041410605498482059549098822964699033573606975921998531813535375301123592924757134793679515174977379706074105933273343400196634021150308340345442964072690313069074383921494753686395042878483283875402229913107884731928003889225740391622848490234110513615087470530891623893386346629144169906419768735125084367363808427505475593018951180359510827779709903784810309656287111828370675066929201961855678586526086231019066141361512736789605403659923808291883615006790640510075530937013503013364690503011486563276522519867416913408450913421595706693142612939721278366484890532144119830296120273344827088775514070134755745676717274624992318502506508825331409181087001710473251862148502177068317814071092426076643391656204461743968171110839217327359624167080696959215425407930596507532399093842825533272534957355577673000943660492264692426483350013501010268756776476489739902928708610969574128724755881230515928741774999408134475051106674858047925539828984837361591983517970268516034496727580238580114476586048539975560673879645837497313317863327889438114184321465640586976928689353267370279829855265898395650328539344819182979723852000514687103627398704710168932927959684162285968054112077097862658699630338118896454450658081567836666365378003795788174714654299025090003921019435839998182687760990384148514903741949908798542930900581030439763481263269868808274993241194672492607019568075489735697590806635057355964323949784666682788820041944855317080549827556988410482293262800796243023931865259353318948483453537390180595322687903421151465984067745154305655732805132035909347422413645993556964971876039764924615627940298919551532278493172661862059660788791981049978125472455547628620596959079680185824582726083762936952129545745540879699036681404978171329816250925122857411102425392163354302521497838166695707345658826249814199033021294494209538534268079433788409613169031360120318119477024572946951264076889629107507257957948095646365284452982079643860230800918899538778574958159857683161645522809479681133731138654233200264645708016460994835755781749811853274780556720110961355298368793908050708894886472004949646826399624047066281239499304184636395449660052184365582586276861710768538105749074575386070260569504527044557927899418456287630683682630200200133138168019768931943576258399305783525709924156927215251663377724003832153748797669183602587721545784639152060088633023876548639495277212771929044738329025145806133445061144397164276571904774407118060938252112808512213971020277438998917617274050628261960192577131251222954220529273825657103013168389604227716924334433866435633193087939634299352344009720497953333768681819756934748166574798668890050570204299928956795797528829653613259847547545271047511378113962198330617118031949164858628470685292369608369489197887229937915780016549232919196870178220150100895922255435178352023480277404752002515485742365045802921363835390619993478622819586164553046689803747144749959463989453184478486707212632805800995983119845982563163411386627605661694205515433339672190694658587006619593769876208565668216579477908120117362672079713587172803259211084596350552632221443499841093283589995469453144414700623409924600603977380815225457232831145238548420250024574840360341187776499034729781489892703732000393880611116688360265270906227867590962432643180389756788061769965498353563157264425375204673391700194564581613894863464516939053804519032191886974278346992490345552630709378165750517801025557643061188844216706481831207104094844693469194401216451073630289850021729818652654401892887202081343320378046365149280023725192336573620027527522447286229403496637668065370495495854258107660273621769353822372171379529803370794548391228306440868829096441294033864170978636153303439758103403564270491350445839953300550943222834323410228445965690571603093988263201518686717283993953910092698553100562429323383019734275696644130503997943269958886419494883285379057087507923714709362374131174134126144164251808206585590455702723030223302291616021330941214963301807281713112452667753412249370522903719204138753487991043343300498783370537767503098609987900694431739711515055472707262355390953443028987754092414201417103752462516987745979194643942664429955015926693384905982720224567970878209981372001004855630221018913857066144319124419627076878771851327379861773073922975565495263429333263254139569219952670444427449888072012497697559084062517063765154374129135170646000120349109189251200270208485544619258841677595219237342757320457653601956625472961376173807144373560115767069039145981689352009994925976818739535471265207986939073961138587031028172340800747691164573702214448837048184314621842076888172745430328358420457680479957523097665659116915897787798180416839864177636609006742122715426253090979409710194074472157577354709309951279073362699178570829193928021548432241653271138139996857097806745288315887251174650648742576740830585089915835510615984997466943289730383246252886586447836549925757865761191186558023416679589547348455514879121760521043259044785543177879642028424057831308705815816076737827039724819674709821438767041372570355316403952778772547642657844203869408774143352499697800775989403714262754793871902057196608560801741655599802210209764322544116454845210343551679694728403845499533372563113591661092420864316184394888910561898590210035973414944183893800270369771250552879812226186688257626750302213971099613557721274234280281335710201989699461046997376427249223776928776960403402041269643534299860115005706387058599000193506704485779308918339700224006084850114028788037938929625754356522051363045746693767914920621139305799241028917603563548935251612635497041680304444171285446654418820231178358243939100566244722112475161787996338318438715098939533754448433802112985508466881065472013270928649307714660689054696540026502510377211793695837916185644145931917298867082580857910365812381868787542470034202135864593487886203519360653771063886437218599958802397872066406573296958262443694540992371380651894216489896233100689757281331619233970650992775716259283143584525969625143092371022090361436620159558607031303901513593006130459557097342594997164701103203565520902819163280173448194622317412622922315271013084432173280331423308257429642414469286497047848135419030646936075306049678188778461880234978349279247937310127516028193346023104797997145585438580220429692173839714932327550351361162051665422539153450892631209523687794259855645259416702819296098444558507832373217080568929959310880512003655578946000757839951623006842387821380397581723235995685034524143579487899705547667085506148245853341486998276896606885294127690846664904011561372968711974888415793896999498890328289660844824232087101869062261891394428655529472977110566994695434156818469244862182969157946783941954063003412808899757549670013771658710667136042856312131865833708147790080748404773976692545513799588696638026574445122909359817565053398562231387816519948566941957190092835390979418922657059164841086224549840692719942198906457926930011593413775193280823349643021560818592123603708340310962454412502043605875880448495973441269113613732508777374135190795323528832106263917601230587685651848441263140856501430976135783724943162957912661872898752524125009802978499222810163763504825881117494936169708684072641694224521332391189702731764211098934177804114956285101120187514264868023779354202391206940501184680999730645532947291088538739320319010834777697565841891239519031427297071145243280417654183386705366004068536057532393438723736775530369016116627164519273135602961020683288253621359811264830625494409129329676500776649522238426948424886162405975336353396553435933640698065214932151658851619235796999198282831743393796213082416667474896433385977969722002885197274567121524177350278766784922311830685223099405176188327284369415343614068577933464874419473454456501546484503559793084636897733149676347666954358180351343347914767438864651527635516127836295960991226028957337860000919001295954736258720171233810057958686244754006836877638253574671170380145788624152116944939946019870656095598921092942085374953993241128162205888925564366259293092700630258522543673168288483778111940762202048868787728851838195926256561198858160615176103049208907247365630258175695834070958132719740769460222996725182898947181383058460058904682582773498547401577104647645700043292261731916931838706185032990949843710280065614012858098359500341313338595170454902516622155812782534461745245520222372344093981207807576093399506300274194441216407263211365325885143653739180548324987672721318358361694918244029628582552748187957232260019809942524618540639776671078475352253768622490276005864685452270817766349893376171840249264747113852703450140560712189856854510042794223054111905494956063801378413262637194675584494193105484709129025330819429160134924844839516654822720284114142869722095338181274919603810925860741864013538063344722626186505509086913037802762148802773078915622511463761649784964416744636280258472548139868818401517176473021001656956466752081865119842984439193318479180328441442590824811155995436014915772890433341712771532718328810594954376140386695901094506056321102235479286174893357753598296309195890114538601523699803506575258208064447174247356735931792275461847093984529639857309422807744786452406170991130292746015290547117736112541062653747545778774494877729375174444135221365691835436626390122816518968931343243756228093100669264438508580253418516282151635423125136845927708587018449459785454160532995798071787787452471225177587112006804783017688458807829928143768957600171652090617441124246237503127806913925893970861005724960744436784983736072128451924372896341696282586895189178779239695670432996274225430001819106587684110725908223696657472759995581292015663614648248621903330706316284437183748952798573001013554928442451644130728576456759620787420236517915632444133269158554545008806408470537187385691248226101043829211775283474255092377606704364168969533442649406287169321025504980614691724642514643480579021358960854209795317501404824275039660459717907435762326363783859645307815036597716146762167999928131875001508106741385509082879362394137878465056632674942207964014334524728426257228098046947564614645073815424726719519842389387543371377814398335323854759385500959484009863523832755414686614969989818395595612251598802841980424757247784367353130881221402554042381329907100108733203794310009774710671042871583703780515512927105597584458982413846755735771565294275225441895040854673266665852047010118118042048538590504301609172722623563138346969913183435987023059355642899298886881273174491114548409505968467120250476995971250112102000536141324750647288779699349523319085622437168906664634303182487675195081100100005870133010988645061083523901877317813990978001143118543718489592758457559330343715016196496547217114518580875813946805846426952756555182521774628775929729618460081745873873794815913282937453504547244059833145367085175432461280858842962673617839485840813139592682437420307891022912568187699403915613651240146041062592215015710113991116247053630055954191645176420368554936593177383685016952226253228387578202762355868722567194282145149566739267910951881380950976842258261766534568389712077967254867633998381757060395355363360638290403408848731363123352221869289405184232191769582411105233386687162672537055382754443669788300843631568548970308286263106798399773887622756122677325477832797524500893842553507672258103674690725376261729714810905614994364593755663644265616912327502112928092564922804566512947726570208929927519128325871651486545845962466994612835596979563252909771170558040081319941335471776601950951230925878353016436285850833122289638619222889426435130763325889535753122852365864306802921579424614207372817213506984428136126699070043674967373758839939971878561081791907499224123865374682072611105758844313265117871518727205258935834635287052972546406825556715940141725804405803043436430263745117285179405767607859710186724677001436663524961561619787773168405044484067037498615625448212655470009486547998166376062811250884244988311383461459172193643732531396877359202610341795513473059107622804459520376785645769649279975711867737344316510171574915431290573759184685066493402559056518569800822813884418009701807038366599263811631882604986714528163611850589004310498644372536984458526336576097298037136382504284900874071377120598511398077621203327292332482696783015125550751867243878210184800043286729236898204395897664875749199168154321143916526135940145509790190992293238364277575595568780228489640677224596143448955567293161954558653668891799226406093404453291873769140250500135043247166585509013218783638988696668633649798127393195398870791434855961274048833504188923534938061437461356055545853476135949067818999836825875635744851276132641663539006606790980517453305880714220289627375892872038596261749387070819681168801453153019926203901535716206933118843646087668053829765535881449477074870940549921852984502559126938394406197711669373433569541065387443969385951745356476491316477702765926400187618384901212691230019630978520599274314776703479419764194797292036674804257504364845463912412754695424821971988282438527045823593826919425588509948082093934197200277445164082703369582231823413049225485825344909260186334136856382545505412841825703498150996602710345122744980629467689526902901055270789866892356780614956585406733925305734556550416954385610793084538464361238685667792166473761365624895625867804557417606948869175441086548059698196742778490724957118325085956387196614008344395409465221681168221794318011006206974048245826752560798305639430926209516723384619095702371768076603055035415861469820098321464106569518852386250144763006159029193044835383095197350362290408335624606372160875465738759476929240091170105598486470266717833291490741917642552236574845172626949123756424420253528768152053631848161204881987393455697530218944304080384938862746192484388110547667977554664539688996130367207734127339989387427142913053991384456383929833413781621327692269980305561716722304200479101560468479444005991718516536722511391891028755202532640215012587202290376448156420238070340843557266234808896773175193732769876712770593349341961302083177671774051379334226013545663072417607105798382399279131241986745498029901265007326451157888420051516565212747398976314469325636903624995098536273876296343096593223747757543064332373428624276279664921242860537036898122031606170545374387442182476170310679113924993660420485057410237017602202852139507649434209942377372568408894072585745536072599189863767531014537810930249730663617683704494241762929450972607788609558578971279038747191335903330769789752552128088837583860997996873193602363172403965844880495610320316706735359242429304410391369718113731647750780621744243020097083812159379554130688249598140983531837778518983690054309021184394389383001051461081960704499138823040211328310810985678613375697603981349685113432965346083666605699823446018777865353557658492361637187146148552714457552899409752321637755710430841540376179376884416597314937321054308979204918653990954750059975082953949947136509242210625392546482968556111712301817472073794095789144082423935682706234532476811395051962796117555967904506911090049691259341486909153660990632191017469983381842040437576642546687474055477772337179246008756533960139982862858220579208849437888222761912802075910232831654750057240851003760137771657546355748424392805802965656718983154825779361453219918068604536464975579061529763563641747344034082524252094524462153342961953158255174900895975136090395662641537873365623664223264038213049803969297611906807623507855522308639394605280040625904158538614803428887415729010719526893873635720198155232841161029877022040650615737884540322859094814520016986545563345970963122861943809656425048964762477565306311518358570586325913125129196779244636753613902047234168660839086011160524296454869314744595937604178981933303977618303193835605177298240271400652802557327750823360549606374234143878840383041587261932132006878434483007920567291434670312057287216917101467460545093342139291747243679970128047456451000392540539540046576709480637908050567629882099114529568923229830573815530293460668424409456310584265569601195347875847795124219666918302758840803380061608867789967633910942114011126704935461661015939927143819991233334410827173800903143802483405162696615189243133902713079399384884205502100082032297618818845298594129651930107861708643701802043363033406680536426933561260473429675650273691669893655943038664765705606130451722910362910084395107772122696669200403008737290743758912040238340724323719494097701160731713878636431603950372883417744442409965158670188648421596740320843013862145337958181348665012690787490973595803273795522100133977550977429694454195969287434421303811398415959571006592933023183651105075022880015383033807359933633834792950542083482162011283304786962256723196133768862559896883414353742101166758151131830885216696166429791787133373677792578499839891319965340982981149776612296652926371432372618229746185557937198557768026559709876264437900432220752168027534239061727747041435124398676103621244282703848898308111176073414366897697906471014930358484293909526363125476899395093915813972172279975725820013686629897718629963581650884214240933193095989851471967346408893253634293994709411179117323924471552686311795990687591999877213275469486849756662462769433230637315182651054250727063062728923455307463894295463737232341607427691425032912409569218287058268556923542429426516418410164380064667454748196989854575876790490503418505687044036943479621871295345820057660211072752429843844392350126136223564904229732364629563884713666142125515973894878716351312951041137139328667335106754833497000814840650190398284622980229419555083470426387346218925285675577425277576717306972463486073211534299197985173252334759152242684542944326359565608582706432299146136490720248729924441706062908722087615394540859332695623825154702294927037092905480662628642967366476408541930302762635556401758169460101809017503359444840553099293206462675942036133088424908490841167521903650706902881366303868133152677531391420621725756187916490421168149147779170628297074229654006311950891538212733027619690748410849644761385630225514615100087730999527562987300446604940171201117097048865457060593785504189948656936103879321814160971366304628695583888857021148220539544673002874203726447188309005211882365367008010413206186071027137563868023749346106714127225637711003300029946006251802639687258490328456407922940623219536344709516310653854588119801346029764282786446442764251534769874665965261384070493828993146592461767382915070090847387245550749261045996147774180348473967453385421980237897561580633029293923736297742713587520650089238575355651900550151223954268702673884128021216658099593730148558480310993041828199655688728366463060604141808542588097535580208752768231512682240639829868530585670831579222800631951337831178570314562869109247726032927347540589883301205685489488540809655295389093901302087722202166804590283678447739631217570645159001873943548140093630235405177246632599317657505945549462270541264811076743071618046953508512523751031879942197035662149892528305017703351170483601573480398205486475413270922910281359063892188492638739538679982640448344111414011926372268668586821757546387719023329984300166213721785567915342078444882651777052119950006709636939639627290472022339280696669221517043772889134927747002624631096256798945993055176120361619456578296222364837740307958921279958155778725099599332131211888267990200709362210620287810160541180604590807565507632411401826240002189446008811227595737015066726978854497852877326014657463867714092169949146820227217549050084216653191457061754156466999423518410324511465983990810353333394742178477489238749075167660338183674357397132488939858010757104342813926999497766518636146115851330675489178297037155986498535641058847754777101085964217059322162917353349976827267099187741273638793088495553902894051026259220385848507789706087014481407616859765147228095729668352952782562483058320263373184599320716141231810405587599418384057799650938657604997820588264250023938992828176565568965523468616800549143216396926895390488598394607906564686208246470502964651129644427736982690117934851596294703972774301420011404372694693925634678848968068789736042896224437430810797573224014116243577783387026912608848671509774664751157112466274078973863231190512308078402152728324454262350530637799271657224774976838630526167291387501123897445741583801823362171307380001439484658062403328192220386532669476272831556378322829360924963373008831289746772465285679884314671825179434416676131475922212829554924549716878387835145900489012899540656550836106181528157807138542164030416761904790770322074585475107975668905844482851101683224364075824037669583171527866694614582544859256171743974089334117968395507844759087795395542129643851351463392218536849598447094306046553679013889760892383985319027317489376510705986061683872041084577294107776589665645852812247839156252021394850612390142474467785323191681730179724950232818644931673634331190898934338450407492805520707207804179383764794213769908032065165031875302685676716466987232395314222919045542191581718828375718217412313311070981363047069477738972732137098090420379214787015719653461643780438201887115943283328170926528571727233647997359448351747443746243514064287703724353309990805075846560219097573229904705693287000418048352827652241977709351477627522577392146215202085607903791431661746990589318673997490092575644579179346511021280591617272975120512213242158330438347653655766024955487033066001358451506895600897352760699077286713026101167795479075389849973431192394929344345764618876141983378273879042075964127686874794196912745079362198170109249475399719821785942748022399745357974542791058470203880700827409047980694937802366670840486594557916426857040321894302417547673513725421410040029373218985636860680516774308068797971304737386378537222272226222334058624806305993744462317181923791744118118453616183920555067166344408314872586426379805328289675305556657131370597313811190331976857084538351191625724989959422477397815971169741834504181878335533414728805915988308651884594599353588445686470145128283342413779586429365187090017725014188380249822619834895078113499816733340644576040093102417654368786565440042409916872093388994060851944330834906683453185806290005585206621677897494721467682854960314214239090142819176546596802568220899784151886903481889666149128336051587752692339579731227227264166664717069300762975664150796324187238309442161531661672553603360928033055232873184327591777085518801021468681012801845447558560369750597323001678619068503656669301625455816126526685783522438703706886389498464811567609397329370109990389383851282279522447814174955191188719152798401139080381652356348142668173860581758950192972441338424218108570635635792232471344084766770723206216809114859554081754279801006023949110931884204213971508724191224627682682747759373139424379474723311826161921511608850316260196876683408290743067940265855537866558224916624056143560028607881103327753709509273876141881353126558641659806490714220464111049642367477383095102160142822714523783514760713525486640768302279041541157144339963160131878308913170330184943422468708507590530266492156958193007119267931470288128929143714607981065244734796394852847607197247748124369310847524753771100332156603706309749500828124455242511616943009566483385323941779167022699481896924545273811346188994398513222757896965622335136984171094935625535991049263901831237406458650465839086023345414513431217691661940360402232281397907503881355640098160377208101216444205731138319631035934660191581680963524542928686375102978297948744575783908667508405871475447294669726895211696189989822740735028350849803318375446408920628920622946882347574260284232432574941917247819918080511304593312945749737890103199470482062664800145299954365471034667448940921787054508356218603997280054159709740531770578034914235509478818581079276509159375825197993866997696883461268099690140647037123594177236883107141051967722416866686886531901276894398737536730090958901336188933004558182743046992325210502366447832268651886999375185232746859966619296449308093503695790524856147461614918903780150879568455607485423438250570172529752409395129285681947134329157446147237927432718194368169320449887600255626618223169921366613708899951444917475146753797622161277147767687440392881423667176442708251489087480445966990857500419904799144056080246171025888309087800857896991994401952098402278682699270289771165016188155378083503218120799941731120676860537937902124052883921617103498115453411663179768129975003100028813833450381966161671491071457280361659465156675851516022000349692850632495905247137787425570251987257083088487568771132449365948822366226430560905965157045268045223423289861002796311878057315035808137134513885881917966713825712600163028868620374267516957996571775206335071033141757725519058319997990482784638488607117037613795832677864223836777310088925592465090661043425750505447575496620979829499893580979367512172377613968656152115691695014397872148042089252086290977295226388451445985377955677501241633921729631639634169225382804911016728447494881593493389212211403436359037467465957493908168288142435266102075786799516009420276437186246467533442703766821444441095081377501405851585196791623984290490941700908100218314688277794669132184907735138316589194519366845210567235345055378472925316831216249578102706286914134490605885945182188139067223803940335292050551579462920117610994903569330165449107799903253596015516892444798810553450875296330801202235404805618340879276538839126113243880156723407083690194432380568715536151820613680572455070211380553324660923140521079019143259652833289676643690317881146206875213471117665286233813050110308976372095271275736809184804568190942800841991016829244526367156308982926669780830266898257974143542485161995527444184824923782953276354908361778191665679833796223379731387713393531737444107638599201073030251449617619985089757040156868286957063509276471281255087916646088411674553953087957986780421270058982426911850209400356811968388942084399012336911466783898199316095752422018978362160686007329402206015020836823799583208867009823825623972468768812095373018366213788833544167542433579972528098185572606832424745101220050068646064379718096770548133276753445036044370578301675732114786529826025126955668161775138215407633158369573827629560922123054441948238409973233223156024248714711650692067387916892198950907410867495538860325721937835851447653507720719184168185496858826735169504731600928024841322853246096486192502096394524597301448265630961076718687228387898786616324171144622171465254258839030861563827458567589561384498196060446690260292599971934348449863970716587973090492134259731470702849541410373896327125181326100337055811032201262830626575528457532453290147253785568483615066036210421954494864021932499432736901159040461059694731830567285508221820258853916072603772745527393838068372747148622368240517143058308921278056594011371710393600841468065601850939235581362885990698108121252639761081365467202159504668644641480801968053913111382667017723909483737540397389530330845454992618100349979931489919007136059602637742257863930950159875987951678288721787475279164638445318126131871700875354703817612387062697216128335035317662024092742994012250429917135312338790778972369968128399661761205995576198822558776653452647197485933213224741322753419549748667784457924128737694447935566453827716697868885578029882842376556346837656485742048705811384054718597034465298115815823662259805442862914792144323438268145823947236401522532717217716252156956025057066650862038299145522444496949291406426730627582656016011974022705399288489126390131726522591739761673336692896029411160115207730982800782521171251169845717091472953970816023410433935253449200900103584949376975086033051622160201980419791734833235610826555242103685186524028844632625731179577364875246187352488583192461468227479120660966555989994069757803843506468120518611114422849580874117473868908357667579618457393490536225110631187524518175036094950209992783439252153718534052632063982504133978621959364890257267562281260832459590542504640642799972077512927731540791699316431017780538508814674612496366324060892971972579775225501148143715706331896611936012215627795595606492751799938179866238553757573719184350332664017917760007805676193500705691100753487042834628298319894475000779782593796562618231644862052043410260236271819286991752916308570048912104738710150134881942178496547585865938626542301123774094272884612117866047915763936683913925735518212014332756329807517575011495295293561755820830477858766678718283067937865459690354217705729811718731002390115860152213458541048296816462645969658627174790956438814255953910341195913261461073282275982273853521655834972095257535972885515194064184432481690714724494993574455591716640960491857704372385181403393463536817101100702304239658996027371913253972666458278407870989260363724350574423164669624274641069593532710652707694494682353359057817007555089027276883013389432835097827446769721820788741203527067123135242801851892003079938044030128810100455249096623100026509349747399816014163110199476104253601653023247099506966804760795283941648352894222618150964339687457573446926755186856510050467905293995780966355926602192163284750744387493375345855874426095234040410505836028814192289666128834805614522265176605546874412518409835491837135802829420301465612098437543621100018999047890433553972233407664244779889987948723477273687586059333626983838918936148255907900237081233397521421349073291116853621709309952469615639060850505931776229058454346048011010373353165016107301431199084788848961952562501850178263659439732639806325575209322567972845578996438115390662629696255949705952421922348212826190376695432041922273294025637582092030638387348733358743055843885046797725993684725553037942163964166656893199897426928865218305028054881329914028952082386491229289489583475145759972025089092267212094010023228109735766762454701767866957151340405302973160996876975358871650181519218780604877404794646448745998194762031448438026351881794024899061465751463959203205381402732827896547697026294654253191766610267467761683610204616101605740626766182857073243961581888168370423763717043673613348142700988648448693878788685951157637660518009816783734762031657070222532908080849789604313303559446206524494125121152198631803670913564049294890987498159909005105589986035473895151005523096086274859095059672289309155652359952878810296357218297131665593070294209920919191037082622150592847564064051232063063650951634855302939640884406558663548437777493927626988502539025038959286242849234644815658555121356632011954361643368982845105671536348380331927325671196357851661049177250666555381230584876333402958348416081831334969343394706816390030136009186442558764262258969551233670807977760293753418868108096078017647814133901833933863407114557025348717730825398457605515502339794773370180885735449310774926709291831015796819995253973810278943044749014809519778859938691914470861290123359056896450517197913139509127950342055280258313764408100985398681723616206717244692086390636784676049287727158755903706001329390811114746363906252278642821705106245616031778075480816762858434847282437827395986841263869856267279511450741559809817442933691917533417761102655159297672738592769783413385156651032510636745985120239046589685205743994957927583200901288311259700078509018956776349270020068913848966905299334978247054119774617512202704391749270355421992128777845064164041427589747726402701073049441907674866659311802982857523885513944738708806497331377818223966699537979531087814304999997291275252425727966499922926988937770314636100696906024883026121217148677456467497741429662203119427089219115626125436616377242872168207791597912816874702593224881450927201678299204550916385448957180851843938496361681983412491327735008143207187643094497773259728820393466669563375757575441495990930033934861971411297892327995664308003061640107803074210192256051002040695458335023430521902390701155518589969393093988196486648494763091174576605538236013390339789611996080769551096396541505231202297912674883965439468896478175499433331813280310618544442844794920359491899410392720332609712795720458586278436154472339269040475538884895067022749524767318571438699465001270518637124459785481760702267968916732108932402485984443418822705556974782210226696631317879776826080204200090424354141009991738779958010292454090636527051031812807075754837300030296174383955884221560460957266491229842547461412684713970663264779849336159031901785731035536100188572721530672549129519674697612346774737575654651986144521753335175981283478229096894834453885423970989940643525768720965771252520335126459849169181950744804303281892268325631071272906356371432507341539505215459566597958733733681473664064021303887437829422136098349155961493449571963944913154934957685088363106801814346469929490009954357587174174181497741579995148304229439522105118302192004422686717701710592072619329783104232185496853720754786435934048796087058708486996136490435561041445884527196273809011261248093100838035958924158010462820762397797670462849033876904714483342666263677760711500645246084321103027556710986800663259165721300348388224559311151637456828411998356512201755973759837742164098133903865030906387976571947567286434536622872318610331919956317183100404742548210932575572616500748985801295761607720401147489719914526366551861129569617962657354949626415972828031333923979196438131042256247667705324309495432332362148739493204698443128052609116661943492335175042478005513699047764194395452714464314897853475405694968466288095646191220424704720238998797426577113650885038773920871035776245922190178617247101535173626599248586488777486516475217529769762636005309756308190924093939138497270259589040748677907935833286985143344408262221999918287465435871809922077673284537676680945038709752590854202718101686722318099535206127280904074301265457214265332668641889324318605318269095895005670852772805150962899731180745419022379999975877089841281553265016055737563003915388998663171440990689764142150181697880102086823477271884472698079270631442414116368366538656824157617282078315783484379237185699285992350784738619370153132680276148166901348528783136037304551480186805706677472172612480421781787842257412144099950554489520093391706086047939228045388841104593146832602681089090341547458008390874355656113372498905913768280991057070669595219966739101894190449045943393640786113529532660648190405875099108738329920513816188373440768457116117370202636803913302694690612343743683737174518626354302603662128054204186491118692781383343637224695464442780515132312295600615624260030388694578554430793820892075002046345635602660532220916513598248652384928736819378237155724275760775615246264180903445983084323239441743869888061043636366334597917826461026102125377040889278177235922929202119744492599812879323114219024508840205586842246771508978882747310399502359176653273765950813125597403002299886864844979488812527861457142907845074348557880929116633158385459261875176497600894212097207195147212943258949841481225072370303070345271140257719963545533928476151957957001082500357149669206285035956334422362259640676804562462210886313703569708945677858559148307658345093778240274300691533837975394079580287076046813801943437595218051528355319783752051793655387560449612405015564765137928354073799343713987082502808134798953510713616857612602442570335261028586072444496832505910714620299377268341573361194226265727547185714444721575454060082608723641462772016139265573488837226924098417985694187651598055311192739080798219452996008884551882572370221614434418811371030419977123737288539395649254360698990702958709370972659524224460009885448897041304143652579713581555565345535201581803405358350197011030313658788675053578029187954961004058521569666011625855697348590615631083013854794412617152279160912277221088208065402852605368246897569470241637222000862444741739832574852675592248122462581147166686122295402258484948413366061786090524028344558254339908767859996693892609027032452499159859919547759649980788357778168353965517437132981897359567591133685610014931725197914388294472896258832279314466868533566947093289841034102533502577173631468968182235332082635902048566320054609796759645420838087109423657167519120892735544043068851305136488284320382239629720695820836375184132795688204799590739526185520481475682721673924285876510240591859628509280574066700084492720653713653346363648872141055275110241074162581067233907330102880552387603967433819313716284249965504535916964129070976642901645098267071530972576118111422750960615215855332838528015055455121617086375821868058689026827472247484807127990496993090661292348135274104602409646753279965182283637500387741025889656411236819127309908758085733375965894174100836587763866059552297629357085487660276892117503819990513712467753958428811106003427171757877807468841333528066913295725371813726265085585332122785312441561208034294430888550751770227414248980969502927174620170821772678326704071316014771382169322447495479780185607362135345638314060192583865468346821656908569762567011158252209771790195347398914432586891014617459905288858803897362890482007355562914185635924248918098942571294816996895275065254100293523018536739596034358639201754113675831550949030608032346968824045745208207002451991726051972443433542050127465719160468654702716616316387989342070444822201672022198953292896713716446380600840718347965332491438508096864195153609417676675189364813135323387945740695533751788843410232841643788941398576561177182964342228461994245390802175439024300555998301899290186628299435549143171122059506135377155326210856266927448293402147878795822283365523429837888756699356427365589081421814044716582198717438299894764778009029017364762082737393881614937644146582362317362840662390121699027425416425514953828342863234547850056507331426321236748284448010859453003516579075871535525871537017885559644604984913831265656727005219554060648067909028513570637920546141285279433534792146216578428405295951698688041042008605345154409682614336321461643991304570281918970925620556981739650255814225417272897203142771866521391122926717179736537766265848977891897329403512540854347250028329948944755205800729690337728836541913382009058860065652439572222982220105006109859351868987326586366794237334717024526429672715344493544308894500256301391345822362479648800854562236783293868908290090292374350363223602602490308749310613708187204934768134183911948196984476676337192606674966212571461138421674223041352594367779132214623201523571589825377962327406631185080705051972144191437866060231981723413479469616385628107767684419792883128893970632428815095308841403379807574488669913831496446033704292014834953037705980126144875957960439594279524731764195183326879135919700949397553870282173172918119601205909268680707828962657401262039679069537776315188478918081523116733544725476904829815544782736183814881799351508263384219287656721561188367072001803703156614250364717887187723945094144754034519412586516653201805517085389838863065131696722602911379442708720012209282200452825142360193898655261921869947026997076675749984635032908071762427134221976906654673957222754989696578981150777985226942111482230541816471318509004287407012288774046032173402255570499824050860595662531515098032425982634089478120231510268259386874023988762760953774172416000807217364575168618578594870906862699409316834129040659197491164780147540310542350792589492538788553467515873218294174775741538940064227669323539684992064685308690966150633186459949853017173852038990886385269578726465559826957277440786144912682831541883845706447729807484217826740416412848661879678363698927502823173469217220299770474254514527944178765192316629458080006511601491224236641497148961468613310891398666920193631523204522575373716745200861866345267737322580989096651101345826408037304489402679003283405443073294569427405245112272264719584660885928428642334409943709837106928786702821031796426698709855046481597704666404060504006626848539071316211484681710698229228109742303594175628936679488551961322644207951427625196459883346435086568634785479839361207533422272345484841585201912433224373039065277749084796222823421530563013310561463064309179311582461058954454540193841306952792187402505805948668885242783197141278881666469139308795723223467830516913524426213330441339749239240610901560817344403310585079019896647160626504724707134725236984769471865907447250753901988522950485228991297445181251729566140803354599146869758694110895333434267672051832378660683463456341727410477836220670715141629159469325918434313577228361774140637765438932592558013164556814643682330312436840962583994401850412157005022391158698697992121919261393740691665670742942656518979204662788703466643006858776117781215524278433489981618000856233794330508438727789339503260276384334446865366094700662565702242021570644759886586903303125887525867284105411381202576301715538219594831806364470214461139783344956400012922905663575606647755688153134510381302143063508668869874575363965650602891863111832746895532008591238395969613549781445111439089211327582649652301644672218494509231351773670570263069927607248713128186846568229079734387812110853740317404253302579254143785524776493810082161263780425893122932122812528643555119961131860322541998719030840365487758004483158022186229615888571289192312137831058173857272483978455296266227816925335890565850008889755283375140709338634321756411571473339724052481613121573869192202246916979896900535200993338893164824574988249739315104041531074246969773919003611005782532451060483047838589943632691426241710695447535337454908355209945897959133402279275553071777804407663383844673778105539668525601147871776376617598270358054901300527816291135981705380157902891270892824135181024203698281356330998175275967937995585926462300893887926909730709969777317023925019348536858939757702555110508776098299586021700862952626972522483702715617358553233268978656717967296267124962228172168957944730524788994428125238926399667575922013108067583898452087644906085687482455647439034439346923798489207811901499418379892480070187417936417206055067376765907343542238632478714508854926095333737479720671276297991124327223706122417710040743964812009239547682946469490279267237548254168982493907365898698914977560442542617469780907765538660298224765896007707084035501676682146113105245404840331127778743279369119626135600464453034947386421487530921285380865695921225877144615929679658755702751441406105289319072109797711502263519092662016472292180271312541596270245737067106872303878129867536968478704601595665835587522533322715825906619574068920236909329146608909082995847753103626925484604945764757292857284829737376902562535351757232955298517524124657293485275233206942634885226125560411021566513992369235984669745193698552812158216157022764883860973324436674417824824769299801444644490732801337745748808093885530222295581411398840185940285696647306672657635559557497682717723579832042959221339113661863656637925237140851590934653085138470219618899121960063454475161242482757142769115441644710123489083947997276224397836585065121673060145182365673860994475253206787149989631934861926786843784634963108635507676741927214445664690583764732262104129498963972214164434881163599684504939939240666818741941706704835552054136317011738382614051000783185047169099904227167829682367174161515053100506802019917380496534759932828524856223564179235575608836325006900635533144363435196106251014379264139267527389214042727468323392648163619870191704385375769134049059462160568808652376100259272764256249818611505032388769092465105211651972913111483180732286292846053903113311493031825531975962854345901355318150113985488473000852785866542410547296920242499267483879588426223658220143680171002144062402063497555625540304652794464364936855472740907865912957010195891261425986072257586989043002769614295688886825644915370044533036775141029482898515795562867128112066269925523249970235672948558902787805430760641228190229056216633700854709301647078842176216888410981506420622306478239530761955894547914518914279349153451210035150080865558582272352934522297820878894767134226138002330568524859138760838312390059795949923701892234863274996739562471259933402740759650907184025808900133460584943308858406449258292574024361109314881566596792382886723595074041739518017983344688626223167868173060334296009072143067673165026514702874773867483694094399514236800916797255755652291194711897700580189072776111940157039515769414092011541610131931809590952945548544720435562291163375776860774099564918997115895693776654580601022952073363344093260045018108421945561797187660919573792127498514479390570486095838234196964177134803099939846189423458459887547311100002648562657124648053902041483993369121557665650862341928921781843668926341961592263894901471903831332700375952227918174778836439633894696478083338118160039977510395135614371993555836854713887468765073430981559197853843423117585598773290487786500563750130924758950619809458322355579141105784304733632322028786148767392194421584841562673361516240281585288482516536095885149530150953759757257681436315223182202164461507045016843189043022435513538471355661209061138502407529373954804791791750917091594599237854651798546419566569012064591385694136579245781247715307651992293738018329734091593939181375431821227686235136833525568539576405065721348908890253975870367761949780323992785980238875977930261904904940700995212082679089381481708518625074359325416230461664652215619929030311161268020410925307742977489210249358136395741246597325865823598490243246640406120839153409737333115869974386232839890359575169100727871872906937637464085577635341316668189403847790031753967845907199558151453502276506565197350117627352054358938129263726722239165887530131223951379426509688091091071397749814943925940353477942563511637759439912400979233727065264536382061861273083193712337329835822305127643168831865688837841262643668206915710213350841114847950599447242566943127098305962857821163695321038989281541848072329718140142069483339848848436446070546982339099645205410483137679827700395450280132632768375512426344394451934689872272556939857986218779421673205758371126439700740744974968169668970494372580669940695237019610447877284494820421574526164025243794434125818110716994276824241849580918892709162227760502207937083247132805903471585271017001076500940548345151697310480550364965910637100449848478608623040438184953732288767651325795686748304543176379075039883269736782958986184288147201804143035060129661429171605838713960992700112083024084505179148165583060921338451628338063660643487957428069559618417088789658718158663274814421441237059247222709077950183179467097719141234395861061430738919153330524796972561432094719531129067385803730559879987558966590337177365016714313007057345380526258653380579944506785500059401652170727357031203303831413859458689473477100024930554125448926140202822285391435604499570436088939369358258187060636448035664175923448324609559971210776476537960000285329205365755131626393951617145240386939139085802560863075196304111963558325348844011226121458998291261862312184377378103038797044026670585353039850897518771582156332276852584062471619555523286340750856277634344627406233459400732854410600353932141698133134500741945864553064885555917407201170956330588483595735791056906303341549777536517606164005859017161818521178071297459328427931281893648647746274001340680545691662685179098863227346929254351852994970421684398609749132016519434535338229128693950086455767151559177749111760947674459947810745564929002238642465730584242311912633011176745834814469792206635445409698988590469178363574279652035925243915593615304223793186434904720884210254793989058264005942752998799966878137880219735688025483134014376464595569353226852113631873905305454414901323759140685509826697595944573694944346675735947602979488410777099374197695392220338282799063328383866578164218740385916456156567005352549284550848828436589854903156448517223293155968817262381539329138701032810015361518689972054607684317578979705513126784517688211067947814897318409570494434289925867585420315704901356845919708392532380180666363474937031966916925425921431242722686568691102226640865210818482591255457576164555397259833926968354532456709140119339602209772725986314865300687308795562773253855229209073801180432608450041119316459756795657455708411496711391874422000461677173001382267284370261436702888134864552049823660634084768792693405084021683463079310309137757292771230101631562351205091852848830513297186441495740231617894547509546124142782745485065030030883556388981223549093525710157637206284904882090385348766612940523027224359510509616847734444064779804023226064241152079464740418787899837284093634913750803577639525923835782736838065034081263235568758533424078856759488887929409377688013745852663797280834813042736663592051699646936520707911983223610867783849241851862092453908512673393626238805652681619235727455798274484731621003525895278970336932678071696090571773290396173327473589185478400184457339963336664155737307517417189220728710571403360434816702839055053288555795006579521306315840534176112777231518096210417490639345573375899786775238599124067979223763083114271419244641486937770889652085585830802008072700547077882269163737817889757358112350406906939654197367826487985267237452949257514337412244111479668128567064401018045935386522147354925931780076701032252470811717089757779478687123735430168799642654988347413498751848739916851587559516915900627181532248775765356454787537547596446483298651461594167797853801282679068093971890432644493663489244990967372319279887081410614588081232794365510517701260898398684572314929974174601727404471462142459298725088078785948998248602167386044681210989699812233009055994404391347679888966320292922897033582038190174654974037118380444574408078142064674502741257391089462631990294623635796713074384963086898151590098780326273893312673245958144727650070387833058476343940376472518517402889144198952164720254660290946961039292692974324800815289242375477307311092816771741036537828552746399222894808391455395132900090108213862981746426774579441451121508919185800548305396057072730781166478689589182769012069949209519695258510066877168645928133009313268521429879934346959780353400891211872898448408418784111809579502847596188584205537244827445946143339443132645667559070374287766372833045645854452528556475348745801689629364740978003175059796341456792203184838280817464949610782180148145200596612231417091752258552415609989633104050221459109193968603454990609527418549862154132491623246228926791312576938770008970011228540464090838973124919743253051818434366840305745387086512686387347530641482872101973162871595082647187854816562537875455486576436338878241848086588570343615111552211735302191820032559694916030257654892483998976853340926125657556749402501861697039133478116015827892182220228984594847185682799657724645760308093841603414583464847499516237804181877265378863939761614664381477085175993284807143722618193587278876451598666438194890117740523598369637875357531095420129881419703725585350382823273740349366378020918740488203838121986126824000265857432060854687342910354325538933104655748470266906864685322401367917864372246800345012376210934925107495679233411381737331885758255508691700797238859698845159901043979633033223112942584156986947925777063321329776567818528210638914957802746782523133939886692784829887734233485427229230557201532529787593948123090629791126619649150641400789476816010291526817258260106805974837940219543335933600635393122443600567281417550791642181076581340776417720281867884843189887628647470694498416823341692434643245838276374404562342239988429608495460971880498017075205547813979092044242216307639324961145104968591983125129207822688786369977042746788503498589229798061054989259632747090943222053784866541154241402918174363020281791316921825812695485827522069902483212573214935798160417826921143188741136850972269065024339487120503494209954883080267343877487598097084726737353218440246634410070286653484074160346438463004997388723734368357539317099051958492513715775063814673713555523023998620144007722422453104094751431513312534197741409005350828863646712853651985515514953119921133389728705085857086210776129560214472069704716258392520929407041828782589305583311922911094284665289827251895195631556740732875198605917292757434629251020355079187697010366475003625764757256080463206327143107896807457992863573776387112084150259948234619568536271618423163624170452550386679232531273958946047391265267973013543169358404751377559107705012839775254467602157423838491801019851627737549621310540124467105663027743344220337177642253448201388317572551459631341317767143110690439314712574527542879558928943266314208275472162779584160149063770666880515220548533856580639989965040781800101879636783896745498833563701226809699540472952338666731762777440487191071832549452230760483873708639658067133104192374879114975021359422343912180972641933105129365546438027907653789045233040907990698088463170983529282152731487610213420880191551679983200850300674261270027593123414358556341541561071745345986670495380264183159363664185764652417248468718011116872886915356718267211370175252223499843849325090934396281745117087163325892846078140044781313176408511737301916377531761191989390165770924923366608083420824815991844637046822224399173319801368044299798772334548520362358970594981808976004514544165121462676579522550392251735036046021607095738083032154563969570518560115158089805577637810762536863205867291697572165863408725768659832170965096623431871134839371110621487460455936232767294985845770020291801775079859553309847892274241107365151047764172857405221607934245420597006977206118514341876190268594067324973407564874654403343032114106222805740556853968311125437596864962228111360266719098965920867177038069197189479061540669467889830215208311687014136535123665368663541100840398406234255954004666481297337205624342496982792908095878466761063609459469195515713623899874028083489835306576129130084078778847453882231221357283058557789475629117897335252754136746260204918375928132950091567810883070745645635966559810634682919843467232522098919147046824790367974648806863224938039846177460019047495692793681438211464719640453712394768475089207695633155595624308079774147466688088442200069773582673707423354428729059240001845276734643349126264509231709216372172434114579269390948780643075959586024057657765908877197436474078282717214844137705888659175036222837202551505039212099060274197824247983086911650100273169122566001865903972161200836766297742815427786662849104572834930608610667453307605471263178995399405217542442804337425988426646058400630299606836703893878348542039518730421211414702309917742044703626573695270732035944607409424264873719972470230968746394832718970094982851903756020247911193844983415274845184813076330325951088014734253031434477823690979765388289117461748263593749693795096985650300406958608191218535823783170312645276991992821491704192579469208104216710755986521432516308599655275046408650542677370201999103405256786499847571020374134257017048586428220831953425439213768352937364626762481324908007334832905468770675526917015034164465719230885813659667706757589431204083099161498510149290321181902590138681041793716157839944854919255580376213501892168183403371864516435361606410886658479651016293645051870031518149354021766288907138731641775583100878938368722763646129409812584067819279456591877459723005865398740362892515831713024219744757349571999568958588512436670016054679896543238547961174592787928944584458942304151944369496127450370582458515168839703145521198381275896229525353450761612352165582224584576737635330102662744550525908137533817402164805396684191530825055278245026911790571947237866973248626303632498351754034397523432244853386097400201286246386647959394509396896570426861100168546700204786985214910185101809491570800376304476135379088260803966639090338250280143902376057316292263477417318459249568749536167716820727859105521192852492810887994571173661662775533915470940934542127100422439445959192525306849758131509349851168438001141157861750938559948389739990532390791321021080622090167352105415814903670276148831706588073533502117087570134311826963954686256569720085378042531086871803006194305614817719069854977687601258063704810907399428895320282631166126277917223106791762681470282329197406705603096538722226655583011565591795897127433079438407195251544258308019428044278349996954897089239407737766524858508211525665598430543795263947452117860353246668293505646551463639379046027288736738269892170724444578608030260614777473345321846791159392512135046856225253192438723415388213102641034902341214585114227941839163277874983901912349583290651255169440153184342227844871644856557943290541111137852347126505627521952210231641554638782649225302036760592879782821752422347750619208939398116049332442427977631323255840558841863805741539025542980486923570206128611940064731135333395995672092145044928852616995439138357901614933614820769527622791275474977903762122876107231706129649677383307345380836736018062178064039919310274082911071994031620411944323031349708527292174190249538903360536641856610832517068267653681756587106402401165139394609488538968953250248763710112445185107113676849327524101938635793786371927004447027665251693331397713515518540881735705757072706188777207325835908380507911710565872892514628014310573623733656292085167349840934151234779574122947000182893872907760975037004409704198569308773451133961251814292958959111006882082764183225924678361333384908493575130172749083132692079170133500624549524582937366362687184321040140884179795601808715361759428246709468151647673162387743095205471997932551237042250380183783823318026651408170806466625063807042903158270272044227731110874880409910666469421834532848129652353812978820410142192118690980334401027101445276058753136377334912502443762821681860987379158026353181625890245784260165497476639015215434678014173722860343092920733392686887922923056257210116528651325128169832767728297380785191716284048085934008778468132298120837846638461922562256775226107336302314056851222831627237068397100341287048061638085030418601526253393198140071700238249871769376905886841396856980533600567943946412216638399607609818689572558804024211551498775211350763020934482153633171983797183369488465184398439979790445727400349220220261096453412396741839140226273609884159643995813885453066372180401260614991869734011141430667731420630377327146103109679529471112729075705017587173843678757265079297775459431282829264236507596884734010451402315770369367567869629548796628084968188171710057500370047900588589469628538825966042987992739900260076280487209130387598567746785135263795163360257558210058720190190239487971959710622105556907515527457230076896101652023558516455308190472711486391487273954553877850265366559717270328516477392546948975429061737617248578488156576602405152462141874800510694770411933114715342959911847000637176159905593585382248113684356022113353359768453692343520322745038029282327356989937364955524427093585768474230234941072595056858269050306301150718802567493188450543747216752066947360369452243858770172200961604484919001315461900153318089533698006908132735877499772080082856242526575068752371191871816565871431235216642262211600913301072700412270654496641606314556948016774123332282593859603215049004588584978538175159598677590121796550848846481821776385617505362000945569122703539798378906484476523151403154913046586076981641517733238997246325239170582869410320241733420526296114632824254687182822219110232700639072817416065302777057968079707481316089529411269659177231792251676053311560193699827257937977289363597504006843697377865435786706368837298163929299761163197770220308552266272282199081557847475867796593846070564880224957102616410606826202107221900457029458544019783512735414139679942095529119225166655492917559951028122695362346879967743498889238230359719625515459745194423615741065041884692061285029727804043118913255569986943266333946036306338003986850629715699239898773069604561079850997785933186398599671361057089584443653558316819531321423867235808192121603388022937450686596644790158641323715825849147668407261577960714718908932915357130141702876246854903417075877503147335094974926410744046483553347784416158456786776035858140238325765020846942225206146713298114995155313891589337033959012660352215022665798844231770783072015409481903715369240157913917818838712787917261135336312796786252202749561214800225759218941075545892594392030587397522808009762659170227038133527008134350061841009932231678359530335994735867492267281433765196679076661589188610716882308455867594530440717778386698520878394251821328684279945249080939851069560720534390087171141974261867464671562815824164304410168995246071924626831844117826352129590698324086110122776184484104803170946720334312791239516615141440688587831445000112744601678819005929122264121157066988319488409743704336670116452625347882486330262431038363453588767912616190597243327023593643351203917027371650833768023394867441258085584826856550718564994312686159348739089837268469176981501010877355619579018577846287060278085134389147932158573586971900711986760322024971387603190941292121851781291967075527513205827689669560675700457405722398341356975447049411720024805002434773333743534248191750385848411510085898372071253088865923222200052282639624215193526239231038470064680143210275787899637836559782694418569399928087317111313003490060349661330816811078209211297169870968078088436233211895972856977562594017238381029357929776136232072976682774419779781991665285149371211841155777419587333105957870637826967035134550938921456657607884224900376833552140028935183311866735870520914007577892078030832377570880429375237548167163836063182267675561857862693498089893875457968603511857030452887238960914771674309487134886135311020755265366589821466101779646337795278334007695561175601987003434220151092585991656366852700763792029288041966538677667901588219978932095398788412479644335656381987805795090416266681685878617817201853909646770701961679610103088824940387702206277743564623193939573600426743867083767505317425305885586530948855370610700611645243713553517432003887904249408247523536761942376568385277235921363948859228221086664351389237190696076739599592437152545517256208467371183625555112455837423080895261689818402296658812908301695759459429043658271990822914111621076267178991465085004410419957471056734878399813143105076951917230912938855282729125900411706557602884238760700856927735690654466617025746624910751719905821717328039820063796365994715890704537918886597077115690012364673100141779759543806547977314588462686280966139794074132244235404446258692297420135296531391393826765280863317435556634381912911036893291432805724847468057547943928722525582309530891941980171782183202345744616731682343276259541620784218245559518832857610776125343805337976939861902102415148497433015523806697442897960705435727678594465808529039467478560683632024049928124490205363779399993454035843048813060227470615739848251284515623528926181060806895404207021661518071848779461875301591353999975363452162768101060055983018067872098314008723263713031206839522633495253235635106930763736195900732153374218881290470955130588979071960302833287800947596937250336154207993384484502808741992954821670991804989984030553447470872289861604674098454068612553880292803789319355591332776100210892797038021364054254153294081476727132278491249698976362871847723278286009542973575261979239151191156401262526592851227008003741996114267589247612748207888860317801655932053478254530077748248610639340201305258280158888309741425014407963375488816683602167941155368583036019774254640210209349942633487032866716213111889560379875659298219131115895931373731206654396642784275667156478697937156191334346005930824106856359455880668032701273446620446498027013094867967426833065173065411190658986936402066833242736130742628829604857555653352206852965285426548457618624409659245962986601839768317826254650864687536640777022342808813872062491431036630696460540281361384755410097593263226365312353101389132667507458869896356780620848336842646449385810173292122992997041394670303804047470880051521743351123186853517224353850543237235742791319967057746992327235543511938875130227924251474070823548515646590502667718062785286199474521854216158418666397056913764819274797102345413078836213055083298589982011872586374958903526947416284247433837259870352129353574349728052006493164198641662816476153236418385410445432835122040959977920517901444689377914527988175746974526995756606225141060803028352495025249694861838789757424286355417080910421440376451934798695395474805880074354260243930929676437097913050596608707900849253468080329165181041538195264612801546740035384766610745972438816162442290049738115058504302295875314091278599820275555659175710540061935232625025549500522143076434528012965787841421276179474265931323655148549468349594015684092192393640139711207087488291430274436397134356752508477223726166684568917079235440798987920310824324836042505780381262345133595672520621719737204770327717999480739655201408335373846364716036908826281791662935207269063485915826930670939557133430969245346533389562884327943345111070873311858156020514082532872564011655922838449118616838996627402225373569766536820273856126452191256589374888002466421738114964551520747922966065332573327976164463972429894305749103730953326671524687966455295291189378300184765461597049159669317704004803185297729392536565146570443354363498906185709855818237907058314266877052833546812643543480724680481338056645767995071995026158888300801620474754149037375850374670601351862640616724167923636638598971424108769212914990874014041900498701058464931747136380390587838185982647878183194958728553097169549180293172838773489860761222351658672447155262965764977588874970038498674866786912848461415134569646709142915239405651964285980385186087352028673448396226524413154447544189871481292694691977615665991427600132245327149306398494840087778642081454777509589184078786257413408146994306011408368203001568063488765252818245320268801090806044438040833701585346169150036046765361435233360671357345542579063169022602566978016629364177357505828852556087110124048434572320454179102247064172435413034276486214464105283972487892332459724555727168634923841691790466031157688937629106958741946908708300568338108996309093022886001408609086834126992257050728742868349585558807495551502254337519061985250242253083362144675791641851958794097193188961797149328523924993657515672274856232877540940996125281604252779242767463659122024050845403624522861141302485396202825050376219470196404737654658134031024709721486029574406846355537227854298563756612916497114947265963962579119177604816867890477411648472423516929402569994266301494693011584911414310645628297087281085140961299638477756631692324118706977837616083940228669719314931857036888617929176160480288675327851699269474367962587868942915080035561966827600793111000979533452932020189033820033267537979309316062479568733833474575442981581297570928796601085902218361406411492738174091263941409630719814051099587834287846477795056890916948329732362711785955830827471690260923217662214917616756791595289550408304214777930587949946542678407836432487549005441875218136502780035340674885742892398005189225595473793754908209941592484796037847031174858731435151774223741045479391454908151810252139487363559084231022102548963996242932605043674305543383582863437376212911737342264624223586143684162905556448873980952532377364468669681444066369416021507544422999640117224543409596176922776077333773332915880617434908300061052506529605587251454634220312309264274748373763244964709903640868095394822061601537334112533850895271253338522495326142839579399071130707666295143784570571035379225095678009694663606933803521929078744178029574174845451932402869401699196619909113689448995654267075202130618804483318165378773268793458508544572351820177016228357027641931626991924552834563896317505523196346965596715584507834731485421392243050114503826813364336655701532593095504104555838810946358232740922448788488419676680308089213672317358000875198356803112816842638219624675836871633604452251564582493231157410201015944209815774401143935192616316292712665390986055050223352116613215206328059007375571852762474381239661658596816558415450813906347028615404061616574805761553976677953872149992303158966056331840032926812676882351475982984282992750600546665955423893148132276801786353593634037659735931011768348640264431448486517391416306369088229250579375832330549318660378742588060496986525923305921576451395538154341799670437321365121276268588788094701202948446323866034098319094299758817970227513180907478653409670206812542000807616340666547999814158113213142879864249122845814897638117001944492603844421213779207820589412343988448053237039061173873025743841523375789394347521354840479850010399621671574157136369539633161520509828733143893490789806146651269963646129785362617250234964226250169926404745228001474919764315633081280831572211336236348651263554645057954055703265469352292887912236341568673624681682558222442136995503902135126665956339001655391931330581646989676264973954834383819291853528537066326168598867791807384807299855168495976718045559928915675283080390306107822965935295598063135536890384957719867703379698682291096040466891604494244014369757310433055951515853159058443551384813616365462604287360640257687918354908488835506222277868077615300095162141419831742796265768497029385688873091608435746737793126884536852082171782880872014003380386286054905091105922205901329152232153323633406420041468781176644021396556216580287561522876956727282967866840917275137911841766321034085831987727476806108352658928737577098199979593899496896079779857267185073555317467122004162454825537154418636244417137204050568290378393515543472341238655435387294685738773624969033679764655486275384405473762941158530586152226747815195718471560468987363034065024848591799265093984291594691417209967581650621864990708792346372635571488754613772991772395360625421941534602857742443342441782019039535889660811649117045639199193492327336552189501357594310625472121984999389218140194428349050256359890605158682905334821046176257060497051461417752811499508116538298589834334610005922453818949348305267010973065355064113906507293465330450125742179753022597233021465963646573993192996229525485930974114271300457707528949770451284004072606083175892044390498468943128077794084934174265348148993742962846671480918312084638149315745751868836595238838592934593313468831148036378131188267799338649792714845393983153525649733235516088615657065091938243537340856494420998442856543332206600637454053847081780400789396069934631357574269001487143269260306062943793286203449075515612256613585776946768856948604432785439840523269873753433707742108512291643240230613973173281124534202703056208464484302022547131561680216892628249220246028780133652612997148907783642421006350344951056926007985967468295936595899538983526108821064643984935862022642521091513710842057962889922084431331641087588162986327845053545312235540709170436129598569698049465163306530257731233400974076498169978286848242852017374700797760197197927752680610385968640422858527154370550548415461373188489880818175367473693928062999296192294003286152267359063710795758011697396196947422641117384369724697644104234948682106395181263002582295763893117502272357495933774947776414078652909820311903388936801575917093713555802367393583869640990649315117087469903313225668121936943536790078988490421774321021233622517978234880116798878951479847384228246392233245742033089367345350912450329838034990178721406143558393089760046824002530062892525263750206923197080296601964226118180055973482090169223264816118294613681718121799398883251321393197048409758867277347330632792669016306761807773735697519659967861898162874319423861090263935535598984480649878066573520148242897793515474899322892869019474519489346041641288263962545943727447891543110496958165944388975089274188781853382820909830026574562162888929772978722029758345836337412873656020486928145142716358345658014981855807266830830645688263657246849181606044501165541311850159178827824566803602903404567064888967737487370496674280375067334149784096883955735553664868280924018425105637241960598899656450692798206252891423976173036611466459310154357785995247116206063011835711692716796380835257397046354397509476370221948817517451291131655657934694620658367434876915684565714302317637113756192203957100569127272667991846096102201442332061362352451389706599538710885080120867029856101467284509172477105516867338226531051102379820677299857224175523520233492327407255352650507148313468647355699493123283557654066197112637720128960206944957443288450104395275618335716598828040162386011576520406127773157572737580313110745830810486234463464785758499146471292652100368975360893424214269609199692657870995436353116896227856594337387152595481795698326304732716925305604474371578949078787933230825659185492694169977168645758033596487675382716270879043144092977831859070696751434019674973381476995361965999568915203561343175103749682795299408865934630829185924629390095451277221158998252769801748655429257117458222220761259953138303936767774146437846510202039185457022158242188034654578389335015407869429373512150698502103032662542136064654403812621529905935998967154955905238802040974507520254901835494842547153575715390630093731499690160140848895060644898344517476272289902888467560544123168281347103186077231489477016679463965189764965319307159945848981880082123921156206044915666641808499272028773374112832921959212069920779621739564194386123918952798611396692532150277575800542508294005488488116584273748081487536422760214959055152538969494735415884517275593842904753048794400461098575514890382028953656965146710891309730549846025488326717034026320702505624388613114121997623469052354228168120331639245078491244430643131995738360625800471286830466930302888025462678692202779368707513613280014041597151263579215244374482788161033324114046584088143126185584030413736466135581695872157843183896830458409509469085591030152977958135057970491204668596925025384454361913045091899007724586879969086785178296221203877114879652492452985033116607097822398588876470218003582381486130555318053023365326416663290793500691580981678788240876188931061981493128920128310693734428989761841075077748345715974998783003227390839892940596596168955570198108214626413995196991747550739196160348020411589597433846870670958702017330032709526815410649554682192893864134834441632948254905801161270711314678195164039876262630611256945986843962268648202941724041945913615464699258646594467655265719060878167134375340739961483492907427444558732740156770722124946352861176350327209092323471224981540809078451311585718468950791889089188471010165667686153297505032507240024404009375688449036774818169409790079573942122482427153490908043588772210108431475832989791023341744744642551181680766102627822350999941473453064162234781417465613254599958423786157762226945752098554759774019151300804488819602451419630650447440629767574243807920954487071142927908658650546348975220713722522158073595741984998994713007987717816210686590193153314681079680630675058097114302106920029126673011018328225245156054537230023194926200061621646518378827358977156438289780238485946772967875027392408819950494981708488507812878490081412706986966186950620753494108463634778529689074150259085163388054282231737860009184580295197581733822124422187999377730193807797346303902190113504194519168020285778063812571180866278391342758672093647203422504719498166984696776551573533512816883847934275890823260585658060216921975168121839946439341525878409099401131021067958072940232731197114649751244300074645612507743860465985775906604788062853985959072975194262446681134389602495451054793071566644263987505678151433431108717275313793510279486773698180044116122881833068018548139926219795847957292828128864733524897529193542539470759491627034282605623401206452539986083571920590842169810390729666965003291723578476404113126175158841101064416017622658892952646241304679218039348905361242948341127902663000706488137227960474432358718492060712345660471602846557958655997291396595868589033430412196306071429566756970069212871715199281680760937380477328643839111305430110628250831864258598458375419064433911256891408985542426386731208712639953658069787407284622013440150726027990998778964309002393163988363603989068339621395634003836347221260521775784122455156745175687820598824783816496163811392361818991681744615602161075551258672537478116570047721475255096929701615073324610161731126973231651670124755388096833625310778513556921866065184008741871336247764361691210228940686352697978234047406549239610477311548763759267480918434897526423802894956195869190468850231027138935441707098226808012017499950224504482579472458910577231515196703456527599679547306459275479759212478339242573822159747199344845361163458369458716667260116706664860312308189096015509133602433267631682946773854433066330753215451803394372392149926670960842975267999026733007205476882145756299665509837735122795646598199789370117382896964808071871020258090519595945321967274571377548056028666340368543426355427496547048560677811921045788710764161207200237083583092584217728778804067006958497728413540359596500797428708927927161870568632955256215347828163701881502029156059760197342992275955551551996718956334150540003772503780110610868868649020157248893264866084641642824341479960577384074885695832655537092382095838718582181377441908756098475839286452414708050690311812751515884606483112060843915976316020498380507481330484372887535191800869836597878608995281817363154825481650355647119401993994895876998981220613909000817368589675192896425762895217801615817750282751167176520761605819853641030369589520386295865053240942975497527672128416306654328543260794791596429507795567997597090954037678715780784332721756397569641226957997296684949326198589357756041308573287437752072502585993010149097882406746895232707691210483687603553300191540295693824787524291259267161734754299908098752565604220657119277031270981590936813772840662621329457145321727507026813876189736329241511840723673073697218110765836738735046746586777814239445990955603670181358704466902619759348081465680601667694573664205846626294459353050103832796312138763624640316940593459972121036391823090534221685855073215919521712421453454936063641959952404968778042674027094874195314604219855608174224565348440540728334579024823403867792084003705775008134817991618015681244407451083145396781463833939798170892829124966640924858450110257845501609671922351240376808681280907168177450909024848506558938858849318093559976514848985486911343206874938338428514305023715156719396911004362854061094009475330149734158751241981362987335473086196997729594497035495598933020910900220649127955635988218695273240888660411108708718294148205036007847346928265519793068086367740800094924371712623674785575973936405658170312112066753452001306990753016042654888649073750452116920014104929924064197293295014334972514897167415133522111378471993627834701671242338560476785621806810186650070823577693320434134301569893255624339156721832753119179478032881475276382916890105450923658903051499730325803999572721232056618672366161281903005082180545185671625765643509382090841817745615848185585865085712997422500851124088379038459910519125693857904483814712300282128365845693799669045348552399885525695882317484472693803130236219059154580038309557709674294329701313163710609747576417220499279547128222086272385859611243085305377726467085940089352674115281156627783951103063237311261488773908573725403215609387091157041683095854535950189131552592109297431510951646226462215783469973691545845758538909024908702689362183945683913601457382844968466962604146922341957092149256003924532745667356726138793663950258142333585090731699368898249345376777190655588784461605783055726631091160962739390458145732967292863606308571266181835647477224956641999834687036242528270963981204585534892079858540553081878892748498027645586387766905676942830937879726607190568458248790520866309508315619547864630740546931265491843529309292037263371407269826797481900673310880389350549277009919112731391767302017498472587780662096257771901536930022364256538750737218861470567077594310094592077075041968345829447099161581681736423156777678217715968209833094028846761468702183233411723479871980678297531934424174500225578324945672599312366117728477747433777507347821351046035604722128597217601827654285895529296414579638214742191602708570234994220896916924384213975731419572562778928184116574767134011509405240077530737356115430473151483015110774431450770173247224445248108300664612572145740078525251899526500834721954345223797910392596225305181013720737746513776890422736979549830730574111993874858084818311613622583810252203024206085452359290904064918093414730054265588660179306766892329175125987562443198507112393097310810299533816030308758607154236241491996276886190803360909819523672985012599470191090466206464784420588003457266827219351671027218038632288139820599506988914319539300367237379045362363883331347196257959873429180430521955663687961416993722347999142208138994299944117206060224734684823257220844893736436704949523506998496800944671044113002209409164786021134819310101124706397542902577829150867483789163883104656806199522531954396953621636740255163512437522600773012187156130788970574461326938390324261077993793253995068407023938307784541417317253064217614283021072845590804507560547657019028929588984799909434418865263913091867410885450232254526684094258599629459212824292532215928891440238005278664843454597392287390145287119396867626594964575324694073825224154294281868120010516789139310685464144053776721044797774995012939851699204235440674498258666585348153556376657742255206530191922456699116685324355799164970286648280964744929572745396677750103088576294088830091678739268994153696180769031330501921439781469554711791371585399505410087237845453488386915630712717987476565239264686622677806313384457783853329042821237749729485250618311557699455937284090062360073338097054596104031632479325605341108097565404367768294540478112627649621835402833930412075055573637519107066895827209186342594580832956572633975334046923611052042945677810334229046049757661110687609104326115387974344825070171210313013969264345233359025662804195158890474921183753641771674549277089092511827991944935887088202478625698274831568217937116162443014147574274784779497962151491289598025781849887873545322643890986277474956919558310686259006405326821824696480818054082481155925799334312681779498989693208029553059722608851637260240687710010133549336022680950034042035467609463502316560699036312662440014198184594041238453861221415259388038902801298140600343933338983423441453915801133352961357897076018947917822100438312645258947559965478659308979001136948603701076821752367384651343265869443080560870860052135770764519576342544895235981862640058803642359166632468254180620270675536684207482694522225044922535114135342863563958415068929840010999474441243725519762742108486604795987286601984740204535733582941855198370961111896052489826564147157306202745622465117595931878155398849811942106363242337079987360189666441963173974007069972368790785116423447227089676896987476178829759323875868025510004603591680919957443582555190885172857006569027056589690152324896543411524705076546952732077496217461671054470647093285182497900485373424707821487889655439556285360867161978954208832735389017243795659964804397192604652367494433968844544498511311038827432184115091588457009036472115073940448793247431874353248888701712893729366889159737393119808497310449820253648256852265950491426766508705719444450210677137225494087194311959803373769340556724717153933432573557487259313732558063163173690304955375839677874732085379773176349412080492528423848295419952747316358826399801280467188924665980252676214451892401244600979682292810559484367063486555146035337170958336489001371183445071002203455618592021022633103009898017249470498436085450027895679844921489009357062137399466396378683713224720409342866288702841586123376722527033308786535594402875129881680391620357518383512003117273579869659937784398880978934996557615386553789114061734734594014631097585237714951073900093153335957860985603188910092932363896897603860711016180505663626609295730623258650297640204052422241618852450664259768913763100320448108394752657380154552948102330305139364265597023677382472779146006000211055727894867330236201333729997533807649878400354867351186574761658971106042439175143351016099748870802105579607281523696940073624187605040120319436318244416273741489353478381642770566973684628673075803458246029455140618496841057377211416626779752528556475324944460209077316893543526050443792239436697821340854682004498176366712836833537509154033735516473701886315537762319852534116096989228624864966315236354806508195337277472316235369603543813535040348729325890714981215177153970773118007658031674190018125507917474048844881807616512874890642305314088420916768706220908340829887361641508176932491667445385624707016468737172365064042988420200099320991312264725129995982756398025730890287762048782775641448498324127940682464164777659095500905159444840594874546773118703132926697969779555980310360172039946688300053644244219551161707188615693000160806736107736627074371191774604974043523649995103294296823770784828729358395133628075602137352330145139388000927017962052723942393914582100226062266679904032018477705430886767017612032918963857465055798470524118735361990524970524654810468185610478570248472314248397640972903126510423285524895400367693073295559537488313761329409417988005900579902533370151901936380963034088542555236954881469393864074547436903216580844434229084322892603287371567996661479483722218720527776917329801821208737508831308632627921406694108849413048071987054654596026882449304010720787264483086271722437498414955823175924560219376563471857782251130372602703774889900246523340784305962918341836417375269367868280433343252845664332175039088806410519274359489843330114081799568343413461248878366056666966887689032055942128906563509110805153523412169320673076548432194699798184032211468666088571747671788559549820962039732150487368167091471467533794076318633885980704191017304070269052195450669962654677577265176559455475706523765705075949190954931987439147157781439647926894636003607167810209165035813176896250724162582662100165790535066573972946209589878657378149224929917114523477035806631931085942773971529209077209287111149924001614482922964167842451548313573964942037758919756437931199803285370999727483410195110383644585205216362699943541954024501319131696937118015158479956032077324686155093023284298063770024625522735713688865445548923362849953518696901066269571190217001721693995428413145459830196697302500962248764875333566476944077930712574640055281813567407502440526899586524969876323577971457560805651119675229418898526235639275483774132442718785958448736084051007515645173991009778919510610467258772271342956855195320999004366689916302754058644142877889814567593130340779874220463930550364928916304862791326416336454377347085187228604208293748051494215035116705898482552783063934319990829464322613501703561544433323019204692676870574259850349107193378890718545082370670459555540565141092902627449833418469062695382689117610644462266371729360985361293435827666919077460623062057269860066087500047845133685657329853763163682455224725022811132248979717431280682980483209664500268404267596580026158295077918400824381945955418225582537567722352067649863069913020070525051547778522339565007261576172873531796804646316994133471008609199825563512189112036254067831998099441824222870121505567207995873623103744576407394263603894901460332513314654974128321344085318626108917759182956131592451869871358064835062785365880528867022151296050017402491027252227534456096202570671880594820037104141475417789757874475222286857531421743029884161363177006778857090713975925241424013334088099233866217364043654636673779531072540253282568485251681619064278653838712663287885879054591334868916252045786290370633755184529771196393973558922686323976479095864550992778583590159339490129504341427716333614670245404174891743732268069261365612549721620455471993648130951719403504524063993525927462019680160856377865019127085374104426859740417421425887137519839970976921350379087615245500754922966981698175640001546956938689789922610101705294081531675306935576188714715680293438417449898008333764253665019782911589694422344848732981975817854981402405273384190765561218403708237841120913835146643432676741438945944467834184318808426846233220972974478552343342514279496438195200031277934899713829059562648994651533002297745539682556578863055519344368713937580257450118693151812649766571016399815704262989686312574246966656353882767544591596977570314844112885682810297131955066870687725129610544130725992409504650685589585465082125426113058199519368349074827339931431542424106193057318057905465632144657624799719322390830941791859132604851623227593857260922413309528325622686237444785675302765239165751579475324571022348481619323074134330278986457647561484163519057831350140118723578302739384543899401609569461430890660572367061461673215634058925562471381501398368186694425792942585717292476641039918806333592045777559826410671715042399292134847818044368662780911226706238379870734575030407055794061816634144498761877534094885939855136552563269717670150814846967313641794510574101192719085829629287129998298481193669914628517135933627556657712024445908588452183076642617722571306561143756258202471945026536660098437749858373777184946758372079380737252983027192715977028870165981093610288143499787246407225329360489230158111046558907039760731067182617304558708425406964168286822969140406920458213506986553554906562451976979825250139856307602940061209517065436292372431241355058511052435761456270226941628300670610585988953339334410445907553534875574511274448749052956784643327581537625615302765953145145658049471957517788239895357678318620355229491896418719407988802506452876529150276891168551258809767801497335875617488157439167514986268805594600803545356358095196770076681668836664253291403369290696793188380141668116080330410834732169650374917910068117643170440377359096398788510518630878070025102667393241660687087841912145584276596434611303415221660374971716808874961818267748204228343642617450011942519217378485123584970237003087364504253677380789446496868438944576860465439709659337649592281890094505613437477429167299984663704171462764104202548132806003039277111396125954008125396917730795015940178918641000644208671240076921904540472391628429434073999338675353999766811295801620448388537822294071120188172737940804061845010852625572681576839659861145523616294476228718785679496521961573152458150012567424090997940703200874753839389179379486029852822454540211314690586884185309828048971835176715451633235090376275699081884820781044574326120721287255350473223977728509280958443470505426610817552961718145607512556742263723952470123823859726386487926870106009104745546664487352392080464005348502964586694736179287490067546052030369914491910498555965894696618958219034625014082314100041563531973714357428592774250793565265417562128194289006030938631794513263975379710521368691977860881310525558210695532112494416651281974982885509781468816497414524257050570760872630005527739132692405749631438102114044986255300695669095253381825556028759852624553312146584811041170910013917065630003680188694551049315235262013696680269448126887971569520859157557289906687122086362337595987555289119267499728617741549677743347372905870708860922180396510897346259862108635939005629918777020490869237903546319748044589042049326904536073637112805117928633924959274918403252826472881074335010991214117946892975169102914108003903847312856211878166793750345730217235469992954836920401958183674749523685683475479113650322915140285337285567771627002191700919653066245330982381107056349493264859567115579041522560739465591183309452055108786477646853742006410162782555515503702390700110874900557491304504658435838324149739996545335372405178645230172180026817361939135088507613677056025852836035435719562452449453707667334006522664035785121846781302362150233075717406342242347670709141195666444258289193635539463235580101505358154741418799173070107243068678415331333832080555790614989395879225987128722685291345335117781199119282613763224876121032713510136703396945667153988745877578661746312767309299471945788931001246316457856861721694110701295342341018386137677087664524902122459643380924272026358768132160727520054904032645649587308576927038601316588364670235659987791493004079863912753950436944714891474125942382219643033597299071094553409862486359419013837986088934564400938622441072135339939155241842817895427486393908947021296738550319010857136251328921618891243711777854304896996587227697780914437790631929600281037603271845511847226776093742372881694158008123482930360695421465670021962533364538767242409976053129860595796533408388648733252597877323921393106954991071249500518900942521795830881332773384230560143161720092389598881313881597814281033633633778323655632278411762617821757856885316937695863549609985183741454425423691472838075722732268283518724105505478224235215287296082787857341555932845837603530945501549426561512656793487980880769614520665466579019158168405073022744374501825105742674378109440390752389024086907722957524988466088779706504559904543056457474861231867140546207989531306859600994808122971685579631440896416903702955251888446036552010989326897595402036989033039181277022836332833104405228299861441213698347229440220617698894866135708763002357548794122834123492014136693533424197461497985975493682825830278459038514583165694323983146282979810788716298028599416664245910962264818382611086404625892475059138843703433010728793297814666486129107516189904936190715745192531122507459132331774764124630977614581021726497478774685070249053640527106641417754234041610535692792343310280721641277329869189808351770424757797473914395333543999147179031512149990615358565739855403482714603235298050629910061236232819077066394099945717273888325499741169163705737371209914113556385067694465235237207518441869744971344002969752022627081574966473857329009830652951432085061182704809412637209189041768049181059812950142007047806172696239602863313788492799978766482471385895508131167443988521182721916888418192364583289439587952357466097900693829069213389177173122921247541658093593309475647781215097401432027030357419329410696347270925540081807523628530827518593160933787996795270910058438844915595988754735004669973576098435325097411896668276219677612960212269150855729040535597415416489951120462245886499307418891069484541351891127255041504777319543285048411384012413456558085248471334807420261377614481764805196868296958771639399674578813314654919834507039042556198707759390877720282077222296014059821248484552923975024263909217280245402162451566620265278215409198819131896894831476711478419934198664198022980511679249637209068996057075194583923223674085248762200003981625250442093369091757942152284925812042953595386323111979576327333290608688936163054982352549619432491433993142781436832283109116625809874072611230501721325685608021158115724655926237707981114381810360256163246857685955543764632192055661661029103378393928157856219111411254983856576701933913854463479215923255514616157141782553914556282430184102693251168503964429868536760389373023381978659923963227134253008273043977467341215418172237024368434887299377706465597675117928822825224375084782064254499376258894702877502539410027470195517517496549392451490871307154865159277506140366067498098847850173397581347659924890536743601179966205475160957941500213492122830134079555544760362360890231414297385267494749397643635889347316116484270866756191211671375891995095653601968914610897373464040039370467870451630508789704895211826869962047378007609624997994970367247892477979181911076498786126287927040254220112432122805096875828925603603629238897321360203197293957787804294170407847339507158566420697877088623570899711569074127295031062654493658100377934939883145137756738737585334430268567104315103358547565203914263049899778532248284855863522654560495741329651216898529363129446134789986439354406550107072344918887713913360571964628591937768845654957172714065098871853063494464108136822662504911089338823892293573284030119905685835101938630021040274148082089595137531144726302934648163469770526963157795564153050249240213907074332215715329286906253412246328319322871554057222911957454750578606701384782949951616768024670601135381493269571025245548553873856262973378370078348464282241857807555671029462164100825704097715077669926103420518223156042954959847158324952280473443623020555291835362397688280962510696483179331041958667966578296299065322189317276642883613523674480540965654917499052864019327045713054430774401025401328418516896838484849663144642281876046544462696121992124012252493382782979511411927618268817238802096314820838103387320069047664796899484233534909050743642626972975661529869644889018530552282563336649473052099832391965514649187513836874072397660738409856396841597043874611188292109255104472334352103822743487312434088812381515378110045353672576924742327804091192273665014811873012513588472733429118248645260113493127137815956185263329340321233222755367907883041234500180130187482924131540769395730701685351739128042244627959239346870729158904259177220538210012666710226100015587053591622765204067464880118900863687513560852731964571297112898807154538464418868708236230985216750682600565074422891886983322994100839977202228114176502536817613698231315424193602412838906640976354783736998184080048532400302845385458592108045968441741797951014937033922124195597172604091878273650307222724002662684513574810304885049561304892869593887570449495293149500591796148555645775629194798516931579223984416074306523211593134124327947865902035954844702663831845167563013073612023082423195634168447338496297754315974348012867945394410720021175989213478894730246470487735514892016917735915096450432145839059617743628099511956375715450403100890371165599219221084003331905907040748303445696004200418743479263401405577604643476240970499604261819658120506327276087667695549778907569590277781844871039989375452959308930303712871662596906659493953180183271243650688667703857201471135611304775357042400790412685974218759276009653089881171255067541757631176173229007050305998020490905076761205822506545850720149905975232405335156625897988112753718957821593014306766232100111021028660247747908605716801413070281661302696369425056151720370555007634306917916667038694011385372488950828391106562638964741450487566173584369719293501560432488525492154173875113927281531709666535677523469412410023703428600474680255507980308438491362757515725526748764554214934459571029706325419801825124834113897927721327527698806103247982549141475890152086907151484803621884905269816056481462259898770644994202674737930052513473209277462421216206700368269856354353833648575072910525832108899615492813013809525077558596553788427547761563256771673881254559818351798094815860756370581475801548276447610940682049724507411668745717256264371918869687843229573770309619750050985223993839456259902497313605261313118230878146081470160531831989277964084219712204333822880117338340407316105698656832985167817959713660851558692114123801863632816556669192754982114810310986016613933085486493053116685345347616027525884240715894732258560644922274786522312509792285749157006881945602786350106819785952015407306084641064176044875261086565840734996528757725848413400852076787596985377318935180119258413067396240158682511631985893803212452423218697231239127982577411142824331620417230661337089445608296271032079990333615170853308172542146664516256213382387226005915914640463171501303851537958163972127561674393208413594254580616012464946585361648697972978734416560457632601961311995512817282365388970930928034743635205531864682623197618108075471543229643102744252963550930102623398444974297241211580686624435908887590210331864993209985757119808384396512685699157524539464936435358705805382244962087425894079216066880407384386167960459422777328615263153615496858118352402434602302321397245877241196616994854429363017978972184875820150541699136967157527842760113714067476329217034371372563162254804863009717549215204937888949429312049475544824135655187785051393248585890812801546393751796474866352688495085924811622748612885365589129871766888285963630729858937798683191416350701634058825220757876406806630435355868732305867772061009351098752232179260933354202502363712424441445818973829257102164151848849592947054379094697387149406391168854419943723513343709204830381082511054985621309637864856206174943545148373781729200587671741257913233618859087976170344110956067202345518890583488693432038310484032551863930105225995458334026225777079044730348927712117270193498699599605067277593808994679960261336483513570107729994835363879265774048411314328709522236160834716208440272162195690378061993897981972701044940778063097399458358034413510233565846272747911010985269831493177084543660646786844196687832771125703674340154940260421000740484714666023990374028420615498920371921871253384937841655408117295153668377282943888171546527814127637404640301356080901549896660186387794524066298740763226980264030492884170031779828291880527462496047505170747703705824735235344216691747259330768088358445099282026212541446579096071281395594349713660195163159559682831204318922628090800303096383723988138216481087013335953633784418480033617844460993100122096093254582721481503147625915191324126260792381029811846794420894107091125372462857932667195503542987804480211303695751824789168484291568609549737750253499126523296730727980410223098220176662657715402130955065907312524834204166799515745517713136728280877278857671178563870723608416443293581810580582582453566336164617801134002885650059074228564522223404631560632676965396275828996576471615367882578869582565320041916832327977682537695719840733327316834939828691299811936068232979755168161819654906516128531784690419346225652027207318263039263235713647569709539026901927381965031345969041022521576385752852426460196913638499719607621262191357503087300934187695838207602715681112353338613899323983369561069941496227366168063236165314227631982805785367734572995781823646317306698165570604289696026613751665118846050846038255315786309240173321976679080488482856715352374713414059575647809404332063535572299351331382163725586857929715122557702133007400252716604071164952756707774488759475419594697557456211450563300884698698985098391198316875557088373465767363684165928343923890416243100827969228506412638826784637834717002213439323517068403865221258202791861779357951535315559768598608265757132028772088391233589458038296207581716326305989260389955967274258004781648741444374014538583812721432109180636839802725374521271136832895751433734992980078800664438511584488903844665951670834232742629740146700498868896234820943086279780806811335769158712367018374565396678094265975729405620173399725602187314104325712415343552940632147621050164030499428173420592627421703866315667184976877062263391003146583040238658609554240375963024429392394761650163651261102266196861236014491758068236721433467480721520753020338562201216200546989609026424301442805273426258578050182356083234192983775378969950209707574790232373454727062074708591533928916972877649464457834423787667067563623460914376198667182884916412790422337249927155329816252329778497617838551277433952455479657071774592862008185672127450169480320951842858013762796603173362651053009832233489408282307763709848262843983466939895822093621402252291473891663441405839816673098515299484003526869615138873335269108049301510727659140859393927860623957948868704620002667540583312654699723208862371129717801954502262665765177601209610104051064475941812345542863262439503171063658086264400999737489963919313407264855325095796174734826790134594279458332751469314735946562619383250837441888773073773354567887683607915985703037294764312825812364386446755618135100289379242041419706604038278481496301120483016265023347166611643828270910007492679897299124057961952683740773199049827435612435861941751436309278828350887992939994929456556389275564395542531003010017782561575223955989475342086897165939911589228348361619119825019635889291088417327097188423599350881895344035223874515556077177232285628035720997521378175700811175354100932092879421819075541499864812490956062016748886111180505930267032261693972417535562286376141442874537749551559791937628330901958363141662357905202900361687546959439673369185115742951326978081438659969043742335146105333406660816318227692255437145096912680055583119397380261634014957616266572131305626506496576902926604171794579206138150979033769684784046203807478702833645437076203638226622432934937404695549081070180365740889665333534798800198154550609196260216044880411708993996303747757349299448378215707492057196764488252653818866753850212346743223872917378138896582769273292535734235127383258277004286583856633671813654838294473613022561605745424131172197197172519494697393082672538300805083679760102229249548372204736754552423534363617917164986040144072494442004497879091127635200445127719599436519390905572444579895214608734242263791888350045951790835837697384374865329341486241594540309633781662962757993499657920828352821285988489759951499785805417841204744935274153453633946524348961574735677607895306671254783636421021760490478745053615852248567987100731626744271707528857460201187904851629072859615188010970394035431510740483998320490537999974276284999187833999057579292555771064907403000533452044795176740405284035017345078888466832859654248228779761310434654764262735914388971274363452916710319184958152753290281655631864348598805503058017436349981406787646730880428206162146782600783549865104808948971397048969577188314280568873424676914952025825087118369800992573069042553075676019767363255435695183824330254859350982353514063830208631056260635066697272444578845717465554031416632065618090085112720215494688003326086328107453886861694171471228379322280250803565126975099867600551991593521727643835038153553561339854111946280396862428093223906778117387172266120853159695168620401694987646524694061508780854448176738861344647486416650761569968867840635196658100805494760969995016670151389615950690321370627164358626912314920964409894224164039169070573710224872082754948970400687571015508493920757236796706345941602442956056575591410670666799483195796376136949390706331535045770055929180311114016077647542660219183109528405429821423586682815083112223671398812785764449200233985360234600675027356430788398202328618767435035039254186330054238468137222035639519266116468692870422442741328969748426366359432867161706405014604722238782614992535497248581937393513671975498295530813656327843084775712607384841717019922880432563127512261218856811648166152548770223303908156410371923489648007986137996049223715021698074604811765889167678890361377926136702785550984437014548494525222695812622029046242286249266338027748389681972075746331656015774391765469512081539270884306682924960620773884882317370471051747619660322480999639715040243930933327949037263655087416772163358450556335367719229124124862975493383857890991833892073588701917700832067877802810504554943490182608367499802309624797803867057525881335114375439446035625366044948364298888124762862936605664137514611149292495297903025665952109701573738239724931788086562708215815685398459991262979019337854514210949437296961909210145048589942655402097989552715045094550156929753308182165431563822816819592350505285675286111953988450690211870994468813234202733269225402595309225115952192387244982941685903161439512482491385961390085184362483113168236771743684080334662740156247931159130206826686917108981000964486100298560555960358350985195513314169977709265699163767320103155833890945803039487627333133708069424424501904322595417705195425739437442351062475911204067008048846138425041698302465370687142584697248484461324118370866106124375581114992888886963559770044922637653610795371672776399293477011142891003914402735333438866937900778463936692168394593650379928326025361693964676091960176859786981540968592072290121174359293805386972538225773175340105109417847005299218426615591402057738986224616168976844569378421968575025566211983553842779426478232107282507472911871971960767165060405844584689317745107809281203829271327691706126473174076995950896590832266656834077056517397375378080024542435738713324637906082983514464321282306381202981455735111684814676291220202558597162928093025984908634998338436366398242883564670313489584737330035054126963930994905691752455870994560017713083215249398363131097446781973378961449468975445983105768627752209492297247518320150334068488105352074197775931263673168031822150649935950668848917256873491269099493337748472506674760555730380001441283721018728176997088973633938226120356790604024178385265358901725157735928422602679823994490302570120428208529967985822789664379258076319893007591934319118175449459698103433542034419911165701509860705110880929965385711622314413198234399826760767882710905227010466529535288533286053241527072864653610418898959023976244847829595713940045504454133225107078782127210065668637479241567498262618083419092808873803187201853943282477929141318444505756573790721236732887830153987102818739190801930205438534032550484687459868917552189677730691819696918451048635409312324435547820351299890621250821724560127615920558099070989253320751456942277268480137702343666863348919877569878760731373505833824668939905953166188176329816970093126167721079387005833126183243843636317597267455550243524402486125787295778361292519385563448516626852242663244993965870598972809568129308795902229504924297553783606210143326813976615345484389294056541330349118464963378981046467794995926940850997066865823906293016750491795074073011871650465009644510677655779189142495670686150616821761854741733928379588390789113386182987707180209944997507448259078257683419934626609307279318510354964350008246267888440694536404699674018873047404058697327984726506977746941922229982553224472110193626010862044450783368726858012256727362664345779966660428488872611810018504883040941170047913230129007220703543731263234161895603798752768781246893057753713692900132423885353265866057705709797039156178843423814199850958131788029497053749337415992122738683241860350281520357261978743490759466763879595425010868113096948888385016600430847432033900368172519319673781773757618949353623984435425605971376875642979377365672074761839063353312296957810798118399684153590649493095683909549011785159706756608225104047352271705357272734376195514493771239418193414623024462087955375581687234137461244518076807547545303640826715783244609045564091756714757481309157937654433201871956005047696286664373903072485380393724090052084337183482341454062010977570083432343067613748424500726668985477454418923948251678998617917588045278918626792585608252714853334188764698434798845267205962780468189541945094770307713964588681833230229861338965693822107331508028107261869915384909140170160635720401309328407126740269700857240117562079402873768143964991103836250589834827416914178774648487117424510820630142360489516537248609616932778420188590255318248626812826254294111539803596421873468797241787394788564033365212973210274623769553635371987164228530468364394070725685090547840090654037341052900709031326690236561845361271856933459774094421161011894562948014328120283536633219841597343519082312029329787240219762026198811785164970987742640891714874098531850706565976361097925895067833283525500742201562049299987343437319326064929134660969190756838199936006265902020686191839126317945887115037503690780470240779735742925019466717875093208273597406384589490654603150784951612850204955187096490064664245230115507075531159030475034679588083966372531567940937264836686807706932481621907559802941552580276395925923174037354517838991068262137905120069644202707108403116444672519451000462818720728447900211681644169155201378672849133890466676193837272521095505441265889039974881146871649522145731330473581278817954122229631872454845828183722735155670253343048420083329774941365035608941084117228963078476556664715379304875152229114804906869174800547253364685549358949225589628822858566796294886002080304788668071624997877379479274197676660219605333218435238703287910471400397663725415799443280015575918339772067770807337287113256878921075283970458227931964721544165501409481784656024176184426642525405048622934618982335222583472308515160197703587122974035382693267797316878336964733606133083207800524780898482699552224633898725369118036689434369879141190366209687058028844709268624871428401481681579861487159153858244713325905992545611219471840148902087130284884680632487437560097617838631263790435929389848875095981141168253245256052251916842906719210731813929313200296306523103478913997547018693183350454484941756982619920295814501420148337161261600886616969153517501616094375422142717731700659470254314575464220569550353049036112203566798752702860621207481298442956476986165148751803048480087532755489926877885875543400087163946117026069501954338725766258268366551652467433747172109090311946195145030464320490242228855063912311287780900661772772473981064185147476835926294372715663974124226012029930230575275139415226931153391784456862498903909727190418851170287134181876569892500063647023068554646615031154050471463364774307126104126592466279339791302257144884695679308983446724669489901549539986716952493537456277887553296087557349242854179170250424116879971887742793194153187464166042002894989248103324454259530296264854278739680085060510606367471706850458529177823756983421169516827926499268055285593075804104061917136719356556507007699207317751153065157430633045713253228990830580285332021802234333349492032228729310069048479860718757237035739605975991728578311348200501847094824714501460376389107488480024579138101162008728769299388766737122368083043180658397520704120310444797359268338299766649441674575870180517166861032627583677560199534562855900217442271060328634869750692324727430796700641064742724689361597550493174813466775019963666711713034227749027118164028999772943412722791426122947725592602301004764941832376510200006517889115250389142116524634380178138234065283103737686253252569651642518899196892724001809674891208776280669429387435862924491196586599734637371311309476436154013260117634803036307816862529677326109788904571452764477752442965519549952903765322913831245845403228822607993337001687549323842207625717433453757098262915843734317150934933639455598578713360520498746846981905415660158893111494680845887688535954994410579402517733132710875658796315267595071550284522625966612983320713927886571466274378299612127385374972362120387104693474380557944035468262285561694751529470710631480900319256901738939912819810716429578984451106254346468292526532861236651416229500576248726971337739195659527444198549415656386137173039565482311230464571676857572473147143473348901557875178143658094844700369563946525052939908727349438795993743641755546490515088700737922406641751411218031592106629799501054547679471901606631653617487967267665855264573547568746843001202102391918798592809410560787491954110777388660095494488624674385086155895258342405312077222905321185734537944330064319120726122424265475650112968776270024302180744253494779393487399121625389357205731759532350371524349369401873085637141318019073820928838490156535960708496238456638200363468037925926323728332473948576984454961063160124456328750269887272457279163519111793535386293220762609846942928982855639890389855616812535166524624771178107935063693403046471252962901102727582899274023137297351520403296871586109181420535727442985174839746504622805223442318282766831075854650983541327555911601546095013427744739398308321942836337525361533879170936486106127729694191679887062770426626473534024351613566327268800834311599011169352861984603083080156034010797107862203700325392340521142204921012439361044385955823619345081102391045148024723701299988699737084626299808399676414260745088762922483437457243517051754254114147220491168379171452478156818817985830393961764746041626834799349588117151192427602061805589790968385795364075875929648037912309737899196294719388037790859168747464022901818876734079705933181967093397320113241384469297635000272541334247679413591756135204074134120144117430577080252905491932772190797169425074891319041775081621607154226257552550274906399992455776827750715912484246207654802629371205880560788727554849351666659474648915451550594636055274844182071103582173748791784492047367539623094073121743879615435078298319395028024137856960029212571021483938449268749130975941598888761828117108666876573331246825717752947179265245690042449889342088835694245380643557503388373736226369541233064268068962259827860282788249357957038833678477703683519051673271195734619024078523678623327202917637897644547052012834590076266680791045315437194060926245991072836628202695578327291080016479772210884833310581803564882100216533140668321584511226422376425308964723024088905480457508378241189564542431835087454582832336613875166625373633890240778987004344062602733766018159013816322288672826826210649260420690349707694302078671789037449774323172194265340398231434566618318552647794337635765279454015727967262787985113453560653067319168543658538111360538454075914269961119081564827303623891210111573688142445911013174792479355977882844630263149613896334762892702814153141860113727285494761244642815495304770343059084748995935599829327633968889616784886165298517377630072262175536632296796528473044363356524073405518876106878993981308241805421006064944071916366981374533244962173461171247199186758613446392171390752799518068743401957271169289976034726955873064195391345185853111050731241412634940116906011046312263136086888379964188873540059508570431244099862827204577710672277195974563883577314105761695264753031943650970210319231257481475712525011410360943587630019639219050290496071399128421972722205099376322222260474205991191126438797260736094764313512920820014138494613632488368358300850360847557583590699082609001867957071643590852774574798569609405223085309435090654192327008204623296135009118205575550460997670764351717302365500556380995052451633871942759920264075182661817074262532041025426733879708659002471082057232777191906488139048050483891902575779573194545536920886116495699538255150977065028791396214660500396202615125595712371370451843925216913470358566746534230306678246774849283229798997259726978227322651076361776042009483633574377796821923746347034039465772227688296912636891601433955473636609497457650051183170599534260917693983517010474359729728680126654289193375558307992300878406058189094149152094896204470343150621571609468089875124352155848038472491261419250203509828034855188407704698246608087982520922458876459746750218676315222249684308640555537622840198561460035068774674714650184573669847656041413707442057144880366192476169304547451222384103087464258997934538901398088352029294094658307069148574817375295268460434035625726924537205032419132934637759495539289955417316000718799568466231216166822680180381433765388595723241694998228313202491281147993302490560458648449563833682579518945653332387454990700949362809035789551556827193295386872739958156322231500075822137969079612279667180972543975721902748235739965506158253079965277434543098591744509647423627936360515036659135492022073087788629013094704612429320289016490044975121011580233330082252590475936086474906676492108522333453072380971291671152677084478325488624706058402821408224082190769761359137589107892445267076778521496366631231356039663404775129642841406075500223718186245208583587575924567899657505213578903901696204528848249971199056767346730793866660537735632802245575794921591868913180321950524577160389236769239889270328670222681893219609673917004213758565206119825536151648151372030799932209189379428604175508205764408809108326437493827290857622605443875594426424234090655967956466388200345667620746773317694720336134275744817669008893620484376207008797088017240855409933710445942431321578337385897714180149487155286966407478254169613658095600875459315095272501961921248193538427362562742115446349603356721134819973339366879882568422282248880566155289696302172964652719673048086278050848544173080998275876130321942763005540232350087590556822399040474907971083108707842609083729559380759734347173998701322141280520368047857181340672325219167100166978783715072950302283940501422004282686359303585182900660368497056516553096180461303401963183563334030821236964561026022650261052000739543580821447854724870452770301604263710038894162429185948534172173489512090276778325159899894222377369258684290862156685604476400392045718548263349551376871951835816512090646906484030884493283646730667318367865343317028851581595748755403194871854109694849996034841410620511301672606266279393540048490592053910225690008252320607879446838213963493776952399245566210543912773502939100289472036596777391559017371292040149279022435555713094833263155691975193658575319838416571515389336091692368347697581812412239454650600771082889324003119545402347518673079817470299232952781315842285339908125740443422821558061793283626512438283192973242931930965968782439180012594534869634918276938810187412919402927642792746118887025955167091021386750586078544365937428026008830150322755463226307281636517098189821572906107440489778582166976964316874258232583602668859817457329670220788324510666041477314394177167416431225639526021117575582613456908166315145337677530585961345395492102925332818047433693525687140977452107799591437688802370384566127528910628315821818605528219625559785142318953636514317474905403138008835020508942783642366841093976401149142142447167302446812273787412050786452874300817043142271582238821736315265117985962465131306431765158385534917472911469099206972229416462194359816113902198182808156058617898500410935606527075226564557728238377781943147908074779210351245293537370115430556452934963643462698115224994357234373101301074636677610358271992040508415680555567379470035445655174363914290649744248104835014225055102322453511607455147789490777728202502337370719424217006927370675073603572937999226218768684049347612345963691123528869112380211662998005215968444417705223954748053234591155323817126370442913851860124618835739142655457692881379616766063709741185837089899181941562125219430984827485408484830146254946481628580134833732163921375630237163458951388779467429980926403815033467765338836053342947811864400629143933749417242410582964333733850053904677015376741296026114462696837335336846231229278468061634684947680055635436912161988162256138066828726552582733130741848291913775727938947674704727922004682647524307687135914370898733362686685481748209229623385534736850650336638958476302524885250292033003907819841657171470267655229340142357868267592880689180695581133502119578430689555721874467908800295590236622147698745496644074929592072018635229752269245698420503912363383495725603216425109185433850059722766911966880146485654242629203231314031325622580193757778745703431342585838023791594610726718710179438975327720217549293649489200040255103444193757847995534011047416040494625607180788928898723016039769038634489850640276866695610899783984170012543073429946425068180371632722018327993432620161056958212199711042505574367623238192573063062615656303098231269982129247302842571026069287847838483428502063238724868831282216874589906928054530182882993029943323657816370483215231125070337432365330197840715881085458016614829028038646891096361700502603998843552883956485135812581268545106044586574175602160658709209564835969829901128637144511157967645891788920702024632477818073657019598284313139903353170279219732722049653027623348308521193259207406319439030535225592338387542840345009611392918817763361408685448199755394942738767829875201454195604107652614307514486192306967226378612584131447683317713707558687606426831996582074756869883695325808363682545472312731235000487858770444602877588488705625627997234815601275149571085696739251006608586671121532276490067685913949805890551826972538734654809528509482323284350335567614121495995971350505235487819865232949770470079942231413500847273520655290709695267689937125149690879111878255400907646972965676973911884787900264310931468942479824368326465092905577235328938939202178705026105184147792355503914633207752695957345927321832646601998398046434756396667765968623368596513003211221944530933362405844180788469165918525046664129692483617391591355235777206777444532085782113244204487301536981367356053966025632466239687431108277522814765692157846118926381614876236515459225377744791276881353379003666443790626697320712001228794349424084743629538455654251288437208092083737046976324206108211252995688352864413732518957454719445175502043808681707832504358329661209887367869717037843395433241863889397311985364249042974019998208567117950237560443497864592386388413157063773082387517310812936723051095823039804788815535053447039417509944180670108376505866285624560775314605653441355487577138042410108428465015355310587295085317491055535711649908168631435284867872285255276328341704524125093351263692927256110562777050784866531513930486995663585183924416004304550666696930916402148209269949284222895500338239638648137176681692200751038609736949106491536087712253625628990462337999730485428641693006302150108948590962214019996214375500741794890728160888113580351457445486838850777755335531487338115309977826218021326785288850102573367137539788727801545994925507672001045343668692183705240795050927005675416491038424424082234748841245344359273163217703445383334875561022435227920904365739490777814563092400005200258048900739963477112843330792977350673010157742597743037595059914902920339789281387847381861994019186554332016459983570202427602197591775111163221308584954175160663288797367011287437070977333617185307939509019499688495156149037104562411590260616840093468240147947327608698364739945128243539488168056453229292885874543231845708938463146692768976441301614051706892854478567211967221916027929019432153567500759271967385697261600945878902336719955635148186244957168558751043878816756359641206459467523629227631930364469441165835858589208161510509380657442861492887954341921183344598789861965618690971333594989319249560290251911009827078097658156151353633076396918776872734269366944927433056573416516634245614655203469080045220577850804767683340160901971437633222584138208430367828311959939624515180518147186294027135069080505992038998186484482295876497553441575397584068227360754853049036407797997656791288932820761489114105224023787057238021503888322759256051747401523254906361520711611252326922886611398500108915497232431751739313632242477750466246603964237555503904852499239438134848939462430774080318594138767127868667869751343379660916351526590917812548661060248605048857181634067378728316023746088751061452140047949112144441026687542137253625012754895144612541831897551080943824849177566160872107476885081959184165803376293413022853072708419450236364488745508054076102791308599011520659492240085567246609200982129672145572241459502396756757524175969144909157859270592600313617080848567022394215585927701128047724743107916933701874738255727688800066389448119871608121699051376060123526129728170114553153572271857540366297209307489839044940909558641277943716024523075932290159689375177797596410880220064309110824222897808454426401321049489092097329246159370851035444654039475756276625502679050255364751861150167614545838277533216512728513148335953524071770220982603397504879232610805589918385562479714288772202446623482944598912766057518885990867551256142240686509805531415407229568498777928924225863595392383856553480484051672660818433145379559086118230667457587599113703805901405582765460557871738919919346149836700203379879139597229167036377600912375899517107159886040664426499820620133339250546816390750525518194755160154466999404119838676018240597745906687265696279105133188592634026473841518595366690276557511495677627803236693390861528427356339731792470013084543515245425023990418812953595858218984143578872114448985994736254958279763460669386227153636762886095061148091446877287326146462313821494442851790679686686720419434822685765592529699838455403618819590473710380648225362165926429533111012626759132551205672450161750618518848658895295953809190717046938162035945375007215678596327344457714252082582807022510698766224692370020085653270849111649031655237644320226653373803593643921788059939234211100930577618428608007987740181832380558346700786084773099475766490275423284578016866272662429855489858614015507283589342214576342775671410792636610897654051636022459949760599907053282768019755995755353516762784740963546452081524316586556159811452482912051735283108906703635447792077363270086436375334486285580588970086130194380148254469078508081858768410924435439666438459683350553674431368070837640618367750219507330305239026874633705459492430954313044091671664419656072154518996548779120654881801222236756755574655571813974650372655416762775481001411206976748241110933163231736837778453536433291622329184978297654595886320594196224423663045962354217881219992455997006590586850899019071803457041727113804064569359142397174946644377357940029756932206556543032351368187096266568457772274322350077616055118044565707913403102386882599481291506138280013105879803523576266658700926278630563666411439770735336786982896445224946987197712205255531770171217812572845053033177874465918298508901010156778794309951335655190724021011382490345988243428035527361205268504021308501249751394218210540287397911004278963653515302774100402798276435651288890043207036954196862955068763441973148641633205967567461914565872583027741430288222027695959099364044694344444660862778022004822623440019383480544590291851631931267951183219730308081877772340880394753710073198728926468225733126836564441623047091246464162446667511937407859642969525072440595928366556569991473461354797887542478648441594862064417834870092698551472195875849723965229521760062566525231505640240174000204333384987680919700533609566676662351584849855965989794421346938721433978164933701237060180304011824742197645017486231925253887321050317367993324536072811662056891586015710603067243125670681084854626319320322771051162240780011534609248302726383955075439877235667206722587462954382848559383335388036580512255462318092820458607470570676918137569210469939345952730391908249384118927712470705790202308114958418192598556644181699911651409056587809238703729370184344460704708604985942676357785666792349980758721854095479066907995197246564198445932526171764380160501527351061826635651273103280958801431314412201467818798959305801796767500238607807382312009122512854809107518227553362746004344484157476474580039563968385627476203431982221937400384841095853209183040780655681660222287014740904699171396805193271328491775303367231296809115792599983050187176758935793184603454683982630481932140362399527657139839928460353284489147237330872507727440390968417338241038722441340565982249409283517860012767506983548771057716176360079534207565706873761411194531146634960879431359941911889498019587505022252292667033360452864078542736445682639388562818477840428302196978477568638934371595795551572888090676223884741706167259091499335863828378063773028975858210999166760782683190608419501521106956663731470880193716630759749550759077796708179513547788478336704288340414059323908078256232101282234685614904629849445616791359776641173446777192458890586759423371497388069681832962534608836373315951472286414074946009218236521401223437518578271840126914325615482228945791450036522372814281970803649138075368462055910203949806650296834034412958745326618741306261601745103800792935205708635792836968025189656261731007354290129923205398847016275077473339097526304668484147037937113682086424406003800568646027839707427185925906547003369893436552553841519315819995988080831035752683618724405989140437918402630537640470782953480097263428655813037682649385418759771715827367585415512034488576011567210817513045006977215614015103633788174384929608983896785311548728022495993061865854702610968248626856218107771723806076363248441895413525354513643659319610181735512221756263861850256457910106772683735543615215121536703849523954229427662125672175716620701481458374834204719557891286416997242857159982617717619629071546100869760409585771243493545178904132046538494450801900737876131881794672915614840369914569861467328131627016597343131959023080235508289517729792068293851003283932995964264926907136647123503712126848648253802332437669400467849122376538616892986750700310306743994618934837893129592939506906721488789165542312581370586736420947067805602871267515293407340908188627931170632554070019192089110124889125959264690007065924921015344226193871710183627358421118429443631797058288811267367723234675337458935807466737879821892003365661995521537966967159591396701028263293783465095058623182256659703307664917020967530565075382420625315331834382108940315171290797397024977871046244541182547955186305287817782732558208998278565749910273887154174825483230880747728912826065563293855072170056697640243044956427100963888211588037550038402091674305742514202979061559705925685235922401529946475403066666774451490753096894929625622726170600139687928443284838129699736673399076762210563181133670225169441019499264013821159890749350418833239232128916214009764584074252071255628576341264249357364092125914310504880774224403828250195942495421653675424319895597219751587847373215277374491232204966240865169962368295366679204512960423474831468453394886246479224744568655843521114997711493211406791207533269691879431374423414856197231253066547377807725219028978139074027130341089962837690345752839653979894082760487640923468772364361050407822686503143282425362690432058717668784389460946139511017801985372501887469549826470571921160290377601405989974080681924528466539892683795391720341273645425569215683237142236669916860736127019544279663243945100308364888509317603052115905506727180845631553611359510810021636375386610065160478630324787966517104255081070346373358366613700753724801231064045060218151222501336297008644467501955280945027473046229137790411558377629932332540662059640059970840035647852865856065796726802540167278312044718612375004164837009739613385817553909642578642782991401203081053972879825419718470450697344242791820601635255339163668399315021303658508138870273825151939365461251283713634726221459204743297233359241392542168095716165615372160936489833987380934807756387153956722006043828101770948592370085212015155695229592711973101388827931736220974294848152313180253256582052969572266544955584590959824336182588085781860076046920526846493079993510227832601542559031601428289663227928373015874270814114984644524652461689818703823767049737968851490850341173792102824487157981615067304295145099389956017159146235275737760706479451283572107449640458407485294871533258388599240583174171606290843665863181645446994514277671555847230980758082826727875363455949815439445776889750049477428379541218325159815654339512526964631872220123761118911440981314084306718265540967504812327907860755445415630938956201847062798622597645173716295061574609414013682587656200669276664888594202396556511829211501104975955924943415040296549943204107378128638851709343488585945477063105049233522179733654971887217879664508437873056351724063102990965705285897723107497113485900995038786357439986130322144467133228584142485000970128850075028592453145714943383391371915897156077762258941964429830178965441973749504101522891390727811323445355047594032684860112829446504053986383948331178356355534426647730824805951358684768932755767976367077460339598595049267509715835607811129708962823184308893473446282648087608876803024300101033159458113215518539689578954834529718426271978361556600809229473876813111082915676807450146394708600898262857600435487020630705488658749481785563950274313458759495714226245932046020138844951927972321182372075035497690668011941232617369801361347182169543115257488924762738627591859192875845361360491513840211158621169086047579056646370806319718696430848918666365613282480910041506980303855375453735316948802893754162078687280929936979347858867565939736640779013740987588197894876237991806205260417074061312013227196520048637848294231414153220847639400449210224669012130409778284679634131368988454423479541820584679837294425927715772271148027244764492915424593824085412879446352248705354480825741739335296926853295182607395284479217095172824220392290014169801452394550185753566983109279914554996038295602198845952240646274473688368911566553962362750637999436739340170050074126771424961069838514194817140455222209395647713022331570424742409684107820354694840049424216103705460265277164885458362850632269536361645456742212233295333202750975618322899542849005175529332220311671159278663227448791893607387615559344949326665416572527192457722105195515179664464070617887362012093485053356814540350213512226563022350358467483892795413800940128505139370402587604082422923074909749426217937035803091045377703465002886017260286521224879804028727199098206358581104697404295871493527384620205410926329003407314880435101416560063122966886151289321990262262186834819506817462513664985960827050678763838076053175242195694079488040330246974275313932082113320006329306707562775774370510304587710437327850532833977053905148556751507823703243485995463312579005855689477458994860753674824756098399141608308453950004405915070107415424718734309138573943304858696552964996723903834104385327950918816085671222124799707236901424214796472207229906201639851872432004852481199580379789055532995363056697817180209959724428285139989420410047331380258311633233561104537044977441454108130498480790469599214605962608023498407929266554153734796155215209183259853251028381483267456635623236473661173027197956540180202439562737938509700902767990189191885953513604622437399850271774430444902265876267164792913746908402268588939408789837903213215613708564039974876653137378682210163687581281681606291108954566966092170526571149741573867346897162163850834991798460005789555888773198732794033481465476223357561103243680596313324094618231729161788019746839635816962514444650054718914028270765377704881003876890994241226100748772745957880761571326411410597794124546884890079440900447850321375508954847776955242844795543720972062587864229851998970442798306022720019774145754550191784157016702962244269254616584762594132305043851456494539650983743496026548182170249135823104551667792787867149357474367238513089367244713375034291022719888029967477813973175074165897462941447245733958384182119775124642618675537037997461256576654055819549125097037061534269578430904216648355384863399277844886345624286017002851076117831214161868928723200056541772654963852364355056171340640619687198268496895560351288383974558953368386381482562971505160110454006533690786679662575946359647439785267535434409025012006414763715082208068108774966567858559309493607018638211210098841019891572673869662516790908017792663213678925757818110896406729520273830417761257736869699802524254656507752337706057194108669082728720899590580155414479877357747844613848968732094045382461335801567163807243116075138301171066615932265041551717333796950238655077055254319785205402220711406399702557169708532708693316662830104767971684210510578062341822166389205238637880648982544011404756316382597721882033307246463914403555041037427474482606043991090961007488550916285365952701811028131318753029187970520900804550303013610957766068214469298061497508331530758615623031719558715245710582223394125729045031420231074742470628467672107531020268116284453937702593410847829890810576797521602833015382940893366122211625940110113594010341870878532698466021191463634932225468856046436762480603820860965544674358472444151871986517380792983836022730614294786965535726852227672524794520734792799228572927127824519754840100859038939134530189189931806181837796274636441288187635768579355334698495455575083721729760923595234830840082887512665656954398694296892522610137373425577710632097026152176601411944291714093126747423799513343792925320291877377014199044987044188250084779979380428479349015875329721452360768086342921123306873380268996920197333357206767969622809876097869184417100140331278215995852270612437984850344462957077921751109396324083422204238345458984619151932685479179860488727980168285546328723582311326742993425664156321065463312292472076368009772555202466438743366307015446410815597317929029000307340962473918042112338909557268165472775932828846663850968332848908996191208975395904780782454530475213801484392256920105985121368973147232556628372153639797301126262535552093469452488635872331743922865273225809452010919126411959715961103719119816841923862581918766076527201895259744354503102984015566807014111866003298953653599212778904032382494490064210466546058664758769344958218064808629363963740525964011882789225842268145841548163050829119546249390394542458488545681247959948197498611891088100624516966703061652746040713545697382365058890869745704087050111252405126054487733842322867077597205713614527547835633562788518384099927847032656990135486261181706831664617586276543225567204347716350160341789547865775462418660798762692559452601620153191887949850268860655092610372143364148859142246384777143098340408467294601809270578073732194546614798809275123413179858476908643116235308301614829487137764373110547465784261260254902198867082642158662663149978381101166170728158098313473320681699085873011214595869576527250007019314632315010165932038569948535154933251450513163356235760268908839204624340568880271743456677684082219452348076545494307626186951274869152881854390038228274581136101700718807775668755381754632836221691092230277938042894543607823990616578106220285124980815078046555444958455885059641442873900409221433268863126539013686568475016439198548828494195130558649866719576484452369978520123885131805512767496508469419608116011464409981823605548657644551050655419610155962463770613916073957992570649654398790601433439432224750208973718449595604428007441819343239455050769531772082630294448625418373635152643220603647179570617891850216480780723429033176233010937418069366123144311344378286639418570846717863029915442276924555053082296729408153163091121195331545207982869444067891727420852362311225535074063469735993277177191040864328730785424824571753096111118054077046646912831273418160947597494807157297035248489161931832743614657391878982517440522283468581936910902377582561400582471179815309392543745634790695755981374504027276385574737199583511321071042655148615568634325388801079586419562313611032949010187259449599266177907578501006330487664077995324444882894993725134571628333418292081733354375797229431762921672394154768264409614004215125607949651580879429763405210988756439970849274041628978344881361634271637319403608754649509329117567405096436916795987489002659553384885024802665656862397228496563241364514000145721504065762803279770314481574224383696914116189435899464012383706661993978481227420220442984220623179452884214269618941932057875105890787448271599547220675970524650224436236360867934559285711548603373982815085185275249021989607576253996940763439067588264664294248705102009520265344646038543640097071714740110444897555061098270820325673949889130685784799686352631785719208801751910968077202298525996670424827611846462142762565247672747502375702697315073581076076509044573735188151468123684022531037734997192308598178065551194771336814822403628297278557759844800467172721256057643166876733561265430426634383885682017291603700746401197703207265468271525079226614483606249732917256015085617892149439303448662653610471703173449867260816873489045874801853363894286027454692538239676020938284610387806764214218506780923830079870710354802530930342603688749009766201752838800480875485185515953604827684713111548536368907840389044530925673764161725075524884331019023127418002270626133591531212674002036807542992053363871867538588289233223651565294192261258236034813446460544559502874358980268040433097149076757728797268828173768103107192015849108333190989325600187217135145048742143943216855844064692161261311969418855961243953418571843473742188169552694806602903940693758666275935330497643528607623237602769707833884923877866585468016078686174555541455506769282695569035526027917327639588636655450409243844483386498198618628747765644975732372887231976556112727851391899764934040988549762661404772809479037619725444156744990815286961791954351486329045538728677152152047254552059048531332466726413338598480657836143419189283198658882099204502662208837712208889418685904216902670378179121680193765571275471894207343746031206929471858519370874256935115017164506628693676125109459362793382339187049270591269057077834191343217813862466900287099786285394880536909374855972098588649210421453201437675322281507504321523356413165697413858274965071502721853479574782329475831362703681032205773362666961221299642466402880142275112147448938420216595410009786924364158153918563035525707447658795210492974972521046435718493936812371089286526123969566107046799258772825327647552281950127391065278641582431242321195343178643830386341320635675182478017334531470844815419583330619768660165008465419735413307755836465541688322052596267819368242145736722970059086105044424416256162933858631234653065942682605072430534363511456904919957913222363743836198412485348329412414243826152341233304574260317071054358097558999222591159301119676004441718051287597262622325956945266618319213674342037448800125248309335237499375881521820739042325480192048483329526701907899515182916552091981970194169792481348374391740298229383317313808446812074104825449080099859176412659622879148929423508551126631636666446789164196149017039829720486953519140532993724812656938028754593303555762048415479753710564935814758257654872701928648101917422955975607697954750191668531208163092803671765188042990724960210766554140214860222428708506693001162177064064372167491773937416686308166112370633099279402609578044629655760863834226566118285873699180653137267801649333473291198299833898165065222942660970427382839090451465406489247999981224729803009428638472380728860731305516786542288114241095607495894675051445987806371095984044400755809537953101010448735432292594461331078708838007580614475763957800723230025865833502436764240149207741122803577945137238049959026873969765835940046709609687063389968180139284236716646710100650449374450069734126729702187144294200288509259264871572626332715621653309585346448074068732802200646971347698906704398982085770930254159468347864072721147047146298227471155204784801799289316591808245297379430733517417236270686281071481057608983685719831533205502146543532346351352046783370434436467462721202366192906463989617571084165260987710956517342837085616482342923436815893975097454463285830223399888239965883629276919618118108493484637664199649615825026151115539786427488606715637029031009416953154923646812499048043192121453864707593207391660435504808697181824590539832205695594579273973974161684034736644690918924478364978361404236367661894561470204708112311299353875275719116305770709379190421990231021611737161649055676981689136338328060087262360390173951711960775393130992456257650288921787928505983833551102281885093611059681351930892744358387663513590053408787945085634090442391850685834864535888467573525999687196776634254301190898095008414535301574498248864605687557929715808547315628995327670045453262599693330146556680929965558009496372566658300943814658868941136603352251680065653382838979656605670962908650872600601413315105177805845742778212207106747030737967586237706486485475204003583433138988996431501706838828622663310719177040852874331151267520032945829751835145206653404684709636173557151207603790465916929066508860197973620356148363936557430067521892773652755023338267028790164830274959339219158334630323046297603450233339335050091466473982336502204905636064617930727584871060285642196479326659540566808445372738981533539919558879993620315769565318407368341031523422505726544458790272128924190052039960496968179291241125799078466223788710369090765380140863955900173306329771369275441276426031177764608562532663910541180351230500567988364374456104192183733978202010002567941661017552773692600334352299760676934191357565198759209871292292257231729226082937292031502776669329795822825328986527150879778635623327069477816551828240963820980005011641418559317239171189622076863532207997635300638775969689584246477947703157364049173999273329446063413416971890808983884516166298080976655173214120502447106549061922956012157417748769722097351271262817171042226209195112846542184165043013719127053092814991612049702460876055315931686085981797218138186713391526385682394071260360337999899474365517126750160340872510669185958966166440061389624014652511186561004725188211806208350327483144616798358994835659084069368985263109744943707849115765477960714589233884845801159569625076844688672420011020796633862535303345815958610974391586486683416420077901143818559971746577497349359075378199249797681133716678663207875737095474799107990157708566940246232043686177828181307097993357147096560545064739146347780167590149701917191562367141090285905393114093289520429802447123116520831366510059795217143509288196025855051715863177728951284617234735137747228752640125565556450380359423416781344474948619913449650006724115530137399856488491537871469211605273578905223260934434905066431725891016241902291733286348040138678646443995201808721544790984709790920825306422360805494219021640322829776020459613523779481810002860721377550280412881431617008812916735969716540720869098167976982290653818482288813345473019612052532688247792285826653883347414090095944623160708835103157362453692275238795076661317642047130708620902637615235824965537777223354434719975264647804269508515044675997447460027713029762679494726443862172281151011178822352209695691396013206371906931334317257631832722094396321394943575925505064180956601904906492822973727696342667090312647025717685212297663474641228515933635026283128702505561420483366412170051869229991657378091429956246624703515893174609701504846184860753249896625968740499398707335015370751071511114615290623680366924897780513118053679157134681726098650078826778630178768361635501919304325351713865387585878006649341601001086594233903716566766249516557775737306695458123456732194510004933189859451192978005897192081440344723019924321387599785305786251883534837016666721026649392280133720388788727662294982243782790120748996320232581707733754463840365763359833827565962703669055717604714301067019201196468135112525900681372599035329545459144350667981768083076901900756139561212240020395123909480549050374467080135413593346795708607235721459113350023040247338106161181670030225008535062780781552189881769736209225566350228736730598111343741585565824481072540264321109652729204789601625754680616734065289831770823831790068543011785250913006165759447358613262464855874101494356608820537866486992959901402180775296766711979855395432505277016453489629459639754884866322284117467884608842342297322471790175933066546160578535237186625629737170645843596237118622271204261004470243182615157569480360423768091607205930970579680857823118459637327877472882043758871347327164941736430813168989466957713227597576706433709589995487647328582184972794821568267745946735592036940811546524345939399134139244545573895289066381887794703191846173869816747293532426651988830744555647372517812793944348320293374809021176859279784301107736695085104456349915585304697322578286886750380949629915114736692122705773575105894944687862831805526296829588482083976375161569077612003956356413502449741667462765152812838738474272635245025918471960061740995693051999522697755053971048780932637508737413579974028057930884697273841933237906942669286933288934838917476299351451849593260909151756369448341567878635213944446386440786533885012280236395984952575815305234191889241553420608396855845481418243475602957550895312752539861849218374064503136325494646027386483153565486353034755887043582742213929485796079754238824509905223892555610738258533384679021686222776738037457450806642801862966865429602852355810848577671658860198396214644537119152081814335479000162561002643298040351661830456941722849041161710587875074042854634433882494227992796960089420983271536000398754431969126102155313034501597538629977517875230513112579727502466866407495517003315291769993051411379634885296258239797269302122979446417510007172379532685595778046137516798234753410480483899318586618165981644348055085081117866251384836533587815217739395960363806267187904839226449258389653464595366183089615191761667751926142677462265415170551380877837106336833708442803712123221876615599686237835502386605280830461637385624756377449325239567882165182696400750127502547950615936817115900769056512768172099612089041651781388317842660914378779281414746076548735826371055371199001425611506278464688976039952112742061531059884335279513816650429971037186659033411347781372900282532009816084337965247429590425440778670868496349350526901186438986223673176978193861618304920131555163332172051365918290942742190200915989165874112541871237878088454360921964906607971172681162929790806950603245418631144732625262761840059871581383210746245204217533044623317574769817810844507549311340091440997563540276916080582175989591875346280104757391802263734267948896459763588684560807793111408391555366836137154337656152991621094072551208769597307462031444549956179086381743596802413463498903617222304705041630298720139625647514964797570318938441206883460582539732987308067682822070860159138288321910354288180875299280884641393546366537021304930175652578920474177476190816291176692203054497106273857391558231120823094006834424947280017928807675779793450865140974952768527075410552060412741586950305291500873296459040365194324607118465473773369591047542222433713189713947696788659692366794757533090709185574463652153314326019141240968186439637270475866570712488330407632806486939126953203383511679439851295313237269602199296356363674331563904207313372197439232737798936051844825668980520782333610708237718541955508065326118352385314427492180361850337528705191819316721021564472069509911483247719983637802889009853762369385427237498000355759092756082016778315645387666077905015827152373026108453709015087329164953003668933317614160347587649973264520352408197857620655494674908163210753919540679377230692924311738500377811559356696210375835058095918999175511615936718831680819310729654734362739823740590758511866650335027021256224379257836252395649831088632694373772614453766447947605180715125313503055768410413767483844472338677986646863599632610745457983385016217007415313524348767902254769329434487374643829028656891042132916176569447557675390948412890695484044966823387840437412401907511577231047304573267030048437850817785204492420614377578919036061945148175126035697293989152206901317032870149046584273669761907958079102481287083169637608513962245796347644662681138867030171809235405459439475824877158043295289338053725337386695563628440666139128238296699375515485887507648849869515854590244193597935135183042756337532483521612121861582228583143527061466030763174704127436585731807721310229453387514263275232832331266066132097313509859816387405899682328528630935219231192479238626515655678282057325685518505893878571109388786349055642981705129087281362738642157032804654276012241366237400716745844645182577095231390651444163179098819464950479111508077154428799276619579768554841636382091664915741548058633286534085947166048454717591799880898662972358823228867335552427627571702578892185775760678734961021476120026739891593518613184347707893030702773213968426237964451257676895232881707818819163708202021872488765440660586812265672270449282474499789838829454065470369907612785343994795573558075084598225427680036262962268047579426615373607414848971232208858689697269375406717122667559893355038001995282230008649984467133332721410156095784387707796394201304814638069547734945440080084660288957622750673578054206412664554718346459212759146986798624696124235328604155893687341046285078970436079772700376157991006071898984116753144208160082869507286629020879592162372458503824146811375561013934923324651025813862289323987847564622742712676664655721765412574232285764604558533898979573458644597152808068243345215184651129334453052643524957335547162774420870341616747618416128202926670774533910914334897548662788753716193695488625801008230895338322752704824738727663155171153025461056249935641132561620422545103014193172081382110945636304686486800091641112872112637960718504408200716197662831509988995785966946538696090539264765966203923303223767500092329748282186641093912737591330554074223598488278654396752103277743584456002668158658124804231412793621425630960438416323220809519313302698070214134558549731235623070773764285786337137459351083622253694405016979707099787346327699468755043500122415514950174381916346238747453840317068515950637024716466709102150574378191813639467747078994753116781432371421990078957775361404460867893831761381657281004287174766930790902113996522143635009456737639469147415095555561245339025097629560632785032951328583613362731017276704329841893050371351600700988365856179352104560070176812788949145725280478295895702580573949983291033849222808978518210941777140078543695165914585975269616862840990283422029772181605765252531477062227126073747098331714045328808150744292302334912846667390774000713722776857022366073013841551513939774074467482307987150211865118804083512607831283422962667892869056009671749484337728712413057703645109869200966428093490291440998195560412005668266262622537705761819892890921406565414376615813411474948238378642162565278030134335918646848815595396236564365970737780747725120516852048225486810075439777708281642288802627344741109929845952480240555585360348302472246420382079931794315081806336024268805330949512694931698485090981312786739298979051720020158205165408674163505546312635483758066942301543176753683029156483566989229608113615152597609735651806357271030066196222883958836528416261621053268339060521901193546712953220872173990707723874911118340689438018971994648707092472472572383486323354106447111446007259156180233142141680054230803195719348442297373674381605139224922597905636172119997795618030243755134112915361443744773147528831019380729036277105934754171331150716200613858512233220969963293588607003268058876382852733883013568101321687251529460618189635519498329626868418243117899298231418588047823265590516145495100982326760689894234033129871567976515962408979151925871302874981508524560391502439788807862831999380700873953817455819143753052161498584530435541498645090440016290421302072441827215970590926745817563549354236161193001032410277676526046725797081349621479959727224088232848857946416306781395111291491400315788588363538487152555840976415255552224968692870255127347881178122060423921076473221682012464022626104276313599111261148153508178368780803045870123666741254060924492203336154920608409833090336321930006466450426992663211685130619196256708358384242968668399010138665207116111981641679282924397926396212438813059780748882031012196426752882439593433065719825947281470028332770129639412003651556122031932923651796240840602907566041135682615883504206235656461318016990676973594764609150485120626653830760382340813942499796953099895739594584854855361669188078251336298393371956279135500373159570376068698801043132907568762648059737714856463741968680577420862860157677690309566300424132535070132427179080455566789755825364121033300213261148092050322915864283726948054414924484355494870842866422940206307044177463163166740993895457357336696900454199560549616698835920592493845211644339847000631475730021651206144966773187863868798661000949335287950257160554430137578095827085444831330669738474281142122564804978460206757502363118524241129239110898021153386925837494130703365180049610242932813016723044793391032106176304361910032862975200583420816246821073832608116066783007081767082133786276854146025756882590830608147760514778704993941100521560162001963127892710755146938756414026180712281173426497590854576108456450231920740353323075415836985511296726116013458007765864552834265202200273554061256868576098856416111704005948726174192456951799127746386961522200767685749974501288627157430403506570107613993763902484358308783533276015924222500045016047231149472203501547368162037562618838367670904426658046716206181502503093030422150715766780050990141105819591833452894173428392430232058187429772572254637032602028296038333968710594555831957943527170922373710686885487502851127093112141168589775082513259778136477944010478431474390383885039544938508301574318851683792517279298590621346827709876013893537973886076721250874134446744050762442380839617542452344410655646831175008411636563256003183061210432771658249911150356865747397566082486017308876731151950118042575554504938898432805379835917793731339144386686465722455935947874791324205879766777451097076356051443613202789862850167129711435872170687219053741373806305285419879218256630187117304444782468775100639901088918181702242120734371609147966063697172231898423986264882072908989334988024794323380595743706881989860145196500633604723114068985911369370699892027224026637144251766434830467888836264639932329140394798604340713175255513110251007615188736196611047132081511971503330906762121968890310782691043962590141544497383665131074532232120135441432019702068954610271414574763535689943184031513933379392104104089977822755211106734704506335358023070452892235947902784644405546250292151149227625373109333305451991347628914837104267509787201575287056607632689935530939651402500535495920306810525879829579191270758479431222151376807850902489082077522700782621889759599187933463011186241676633855745993283894661640746339196416581386442051997991376991506513276963400739730076846396520497541615223321754436530287914757013308100200316188209742655692993109714689294908169831783829597179910345767388466152322657306020799237292005236267990888530880275810309093341557158205858537916923052721195999316209236822656081960795562369751707534262367932410687908808944357003935566267967292968351395386208282891532580158812721652503993309226115417708355158948978778480675206835751658545396468077392862073611868475086161104433561545360547906588298876103296049056524785671183426550447771576459896962836677176259443274654375610320091338087904322149756500270280846877803287413105827262341514652897402505859138239355304367904568018864045647683661351140421599856561565016886281852290269523449933672866679884910919998330580573023060532316539087570558916356442580448973944022892479874138822534993272794763319906547271753756388813085586597630225863373176481619150166316752984102805189098246264057597986170541589573651128255311744919475673988626251407919796822077208357875089024644493539597418033211134635383315542089540259979019927527764764537865148794419445423277022207480405077569231351996655210981713952126806856357982660820679826495411860630729438071672492710106764776567019240166526942685519491903359893783814940866941688516661737127047929320870679140122524751328427331705194776141774978658707413110079046078844764048872116963997851925359773432811285150842720063242467228380021075301484785728143698536323857671735744389477513832634478740584604438828669990385031833297268964114049225213185846077616371067652983335187871403759340921200918171422658211928405790293219316196566699180345665123562996439752608542214307221302365988935390936114389862291660981177837706318385514313822634057453335625225382105803663148295363514791128023993287188692799518408441142569269692137895406424995194800915921322426482834201870285948721842045608396892124961781588298639317314667467345086344242587880764572368936359295149497618463541006272043306174195055263018722046146240964963574597338412088681792669363739417984268085769804935814513282353973584030389905116266491596040310155093541805257675981327470942543917572158275828141745207651793427432747968795679271093190052314295765882522283081578860405916393439192961719778341173640196032213132978465705138984121161953251080411966151786667787610750627031995884767525456166348253547270367723534461382082147459613303611486058660540537829786490608672796239508065858589138100587580040001432914810953838162220226154774892244620250131651771541612828256038687933252605356045485588658148325877441027904309364010414780151989935514022227459403902073227081291903219354413657885921398229640760984865587755700815817283460689161717480268709915628599764468588899466880210981059097108682672993389985874676313843404421503563437090800864387905868501005607460002650962156349027138189873790530074452649185945496492718768838854965812634706149408921222457301876057975973865591673431161797429377303890534209223213193609240456475800733049640993312433582072830208118720726843915791140440203556010623238506595188480450036176718349064294360162415326730319579519641528830625029783497769898999607254487812646648464050153075033137157678217819741006971488737086092916189727144154766850245971376138218797634163853582463209981101615966670697430589581885501604704938411724613964086936356283882187456109817993190270496396831298386999734920654621086777070145972173160010406484982073270158881097354954780815191896479386186285241373352551812067069560175800659724794716388206486924239475285150391386941256175100856384963327239343977753012249020675077725035285559013954734760200987229002310864820491413357655069491150990769095069127351692689985738383629221223597214200180611344678862901113789178218198612639825283831874703619568301443589350059689088504096142372562349703818182077326966169622462070946231134657715752022150450560100317818518502410624724555905542761225424493228729840501564151070842809274536093518087606809904251141502395184857834376981618720425492791701657305705599918495126724962418297752652241502127662760883519458084810091185269582274039600960902975370215090708341999233812007375332584986318225802401020304675287328838068110454880046740579436963188959422134112889203836080207884667689368080835517736352217906099063187470206368030849464332936330991725050852286010183690255632697162278099892432057077463947760171332385496600867744969279437688160024826780706713462728141115871927387205417494809284752199412562715366589309096712717512678332341835572268219392438711808192754229587226959618934976564525108428121610682935589107243489461117291744021111995578897342513503010645981611336223858675686938068897890345575529779345216403975623984795383654600648818103699016302722288594922157671745101571248861613844011332556165887982457678073082112745226747230697571758771762718069865341616236323076053004474021257310981228046260820086710818082536132167604092945241599948300751921696905938148818205813798049378611760589052202949063947650050892286265426249726401621435073293499664880246074785595825220888000343726635823070104675938728188729503174251084086763120462114535625493046337247561397195173056517790319826815160851969838901771424758935630055638320326544303170247515716387799221046359318412860996912627326503155745601594292113652375826152506916598446633971748831810975496421883747420660479061767887543256997371513703935779154735793375597417746879224841494671748384082981105605409890873193608812808644260021665499428228777014055183458981338167882639362219868319302430629912267865493440390517091969988818321435307174547453104704903249627911723462197707378766268322471966843827941674681045026151147734295933135039778299567261798990779627750613497747644841619359552698659335520905924066163486365789466044652160375664629378720967683579229374466985047262481325525413673748629285120302120960828994576884239251909189184534997914558312424659780904199079935546085513839656253397819088816914407747606442131172587671944527662299733410561924742520683901547010207918173053387727219429260233074133230576763492359553935699919738487204388712350758904034186661492446216847401550506499219083066876207445020142017681127717800444549016271925209442277404693694226807622856910228582569850198992439475194823345313875441390885015404714650610759619024466224951693313495562248078575363288463074207910367280006420935553370004926186408480768070052151756073441107168428838387766466545858695206626058638537759879431836370771379461718349342346291922165866907575680917921015845075848076256459440396194591926416295551436379386204904820164038896158324730402156600414483828730648055006016969328202498104431040249472540849509417301615754186139835496060878394803827676397563009301711371986494469599746764365294835358335042795523387944140877404558553718859219516173024250322455631957655393104085713654621041987760791308718909288956480791193119686437027529912777087797782857181642722634263575466465846190674214116497624554763081161609982368763309779327032972075158188071080112784272530880001058928771707676704991910349997612577089447502690062117892846206921080272285344428428863951721056388546942822065960128608311792646031838809732045783792029866548214504096474828052415053056792562402651049455944418158532803647681231213635922720591934122529219985243516634967988170506624145458103457368518772910886066623053302452557296844219953342847460493638263957076764829843644074216201393251858641190301316878080630925368323585577566433140630155864469382093439622429270937685022978370770831766481084765141435384053156769943215615188788907220427611625081585685452236271119589590802087663094862218794192677755015807774794593145693981336630959310964245357967313138405569888883099537416975373515743073532593606380608201204970104547299127289823410456548871348357595713140555113803851506518036132590345660703186929144161683766050283904027366518899239369595361195338739479680850755135647404971451752913620005470665915237492348015686780747394253493951394879576168739255089606934991359196737986206977863773474852439349950447170612414102177271365631884391913466221230631648949159242676707169091874416433627631698847589820363956246592148105078435519977035919815082541056850378919811657744494251213301755790600016593602923328526310861736957466189722160735298674706091053307135307092482443613453333124829061579364623692259341845800609824629690712855095525364150896386478138725383572010637465059698834405258751553011551788089789652137723814557805630032450008643831487933169443318177464672240016413585264712773670523642320967644573447377317839781153260712477901065626639441894704058746489948298515142532550957549698450522442625865154011721413079670643427035589258826217116063719252592913734817622746109924517224063897583390565580952815729703220384935863395060301581466838520118017731779405766053377290459514613574466625288576292823354335339229755755986147077650607380386364216936553841471308178021979866903254901205025684124090479256731307844089383791059609250176099690713840321189020286493042008070039702883517441057092261061358821352394771730076007750175889771841487064832082282655365450576005624686638633165553032929125682260704109961784795073946339779469098909007667300897413402733840661813208048971773061564564075409332021481773452875978141500416337555714637432635181145617675108032707817862903154518834103590707431592335092701929278424061352151803793552002747897943723573718328820675548557574919303165726157946090502507889019827069264442780015610697343412617033702748796740718391195540815241798525296407830237198670118006043881215816039509954293701903128958987181692287553486222779908891359666218264192962612262389977520857399622811815071847309434607369066779405523314815714997636548806230656873140933651358303103642075850837598724972221261968546888768726411009968335567113621539803854019412070306041773271993096094301579657436693982722751392904151844525749110019713762734213175113148622849779731601045598528163971271079605928267330787378190955633045556793029833050323721863784181892011152896276878258551084376292363158662251820498468696717375265944364679127718716390479847988582365578974343404667103289406312951478548983819440333721351375302993470938179418145310406778080217105581599202475934013111072583750006420199605982197243864324522726351772165142427652424124954141683220269433926106286069530389977532167856748300723939835377051408788641042702309879255465975334433463027276294687733193094502355087890620791352063220018024792811040644485336466458996719987734548302321286193615850691447204260622921928277728708055812308701785978561253075801524148695363148574244468353826223585001437811272356440060896556317351482444225442845187778610318837275546591266856886469108348668778289993962250020173707060953742986744367342183549447881546354222571340564705317783215457402700749176923934972607489935284685226149621748887645075407649749827900776344471577642875015966937163729867788824314082846909428837116943081724676798057611771009106054738065996920750155555670349394347367939689511508513705261077688112636102033265574968445201142132219171636654440282044186118830063193610177084644187012980764690147141865670916371182769902579727136490060202191236727667649662122608779672984416981742084115012069820982646995800968672782045195188635007423575272192199521283892615122991739884647359370046392027456858492308865805479144907423081264404579855476237974969292517003978896495675715512542805467931824297542735770774771204955696849907563465192912279403495169697641297750086524250131259729176237456793426008992347719174758168447439800718604112318462384030083988137702244009912139610009457527989118686380159744631755722408569871472738735875507719633454128945526986149935807325448313673666743349787368569989049293255848053019543579884734117854465381841960205517399603685293811943562858761782195349482455235650723916141058466991531106718504753636434989754460164313906561799206925628616934706335005650009685856490680830996336248982092445998227339829068493761596251411238858008262296262549582176850713431901267093624813318045068415203847013351565292403273234717570035776074769146221514327306389726299994106072774516393003564604568427863811622266331350765512252190404050011658366712348557388183143107277733860341988651429635637837517665183616964440892351020131985478833051040334895754563734333294340637736237352774667319071078412056923816723945553402144725753015629932794667200693212627332979893934013252965502822361834199443411897876201575695123354864736595452826338231468886094656342629737304444839161876557291759802413914161415241443205655112330801208375339230728461816680228613212318033130643498443774646760490833921187164652735334313007469765676897742165959507858359992188082650205368155849035319679125197644328160333081945267954751126018542459607791721031676546616133002156199547363590523257948111966619634218961046015656293053508766137862549457712476637196330550976983574810067241592918369582309103857697850480469148347728553611602707240471300914403115932557912053459717617151942188598492002092821090584954505605001913751149286718319060408570894101261823006652161569329854357887410933115946593578209528611499509755165626290481778450379350765089872788522975921919929501029885627601674741104739151898010942406102363269600205283691315208099721772894942871051921942586978307579615674094853429598644510297174836816955112991465985414282667566735297449502934310315146455342562645304416752785586928731852421154903294080464314880547586198862074614575693804634621261001654370870878789411236347904890036438228403951403049391435302918851203045182433188974925918799816893711614898805151860218370230216928743995237846263086214720996441875523663867676751471588794302240340545892688078890732711492203906503876510249697362895390731133231562636105454434436452130383551752454061737979485208247730142753892506094172841477803323535337952735900831307487107660488154859931176146166727151156937527233849412635744819382317410295511354557067859198528888309064844972893814762932667388978160169485389247266739041577518162295402340884043439710133521202337977688967217262895451479872351740026652601705247823395333147561697001666324404962274617061076697368540517543839903249649029903062122006035929745230184665487843232772263412674256988728977255176971117583020700369731537948691368501890534415399389783671297727857306747888990791320469990746829101161186821794059022880097609433063841195923321890023554257027463874959627941742027403395013317163724873855641112121500617380634320703064766211693762016838642596064271652984077189609657760632707540292271313816061242185314607965398460868688715008116502003120372616422619690869789404214383761398975242327566395500425895667111235273684551500108831180737898859196562604078825797882826593449515299870543220552589422903026900778926188876068272768530148825256897991081525012292380226151561391770752687031122881169340729359722578781685082514705084087227028773623635155045932719507075418550726851919401658015094435527598403170393706704281444622275893747821392961994172177464906807375439264975610466348348174115272233589008432452677822621037678371023335996661685581444925478429435124120498191445887168370728317010675705170036980915455077941357284520515901027043689939260877633893595132126216763940867714302636347887196375042430987000205406391464046627868222585945464841003286115233388345711812365377565959083064146393797329180508177661226413213994039438565442213282839863226103794681680294424711362928974442389839283730164808966628046613696830922213256099716813775521728202531547146533655685789012987182801643340552437227396697289411873015309636826046096566326495693011121279290212863210395286020704352744915054727721955917682010658957436483060074202607858115487006796936981293433920857939430478783676228816913731912713663247595941497253471396844145162730088632145924147624463533252005259647622888452643784782262078421850223295882598393032044515182454991870907282196175377670928601101760013560297148388385838760421378867511343745060176499164522487738122853823799214186881420002030239140896903375760333568908787163982674122294851075790538549096418719653991345447627095357574490698143526305351531779324342089413481142195792158508222508079957983375352199994040445057197548445870549749430091438333470327344120999966324933983967940794905237776674677197093802270703336537089791711134316894126123726898716299177764963205576356288367860907350886843706001565844339805653126347575414385674376338204764163419740788106829529071059505387314726324905555696460730881191493740651106597308676314331167714977724058108429692727965607223619965773858753470440090957873640313906989155808790355588166293685429910582147708775662424231597699172344505742072023431528286256208819081571350693581489304267490808776625785316595274246283517827989162500480377516169086640227460123967895899692732718030905455164139415754819099532449985484480367646505760695940373825140107954858041000107243697128424388203617070028166164047331781388278829807086501949017993172009090430793714436235828002376369589632070198423137966036445818685610960215898772264908051964042631622914905485637913684296390895519457607075871107511748223755718523528701901028266523153011843644709728650543278825204477874582221625286860296534332024836573858447619418249839524132587795438668926161424535164990458315482591228288362253132941289680615852210909786038465091868302016028329869997413709762612153066128350598155679439073404913595937750174785925199789962729421024211541500828550793707820473496277723976627470927140308724227641832291741579383509498281694210739826111477239398599283129298245907845798117920781169962650109086768972783857970181618690387248374542453331079765043347578119726538384324142339255951378562983876312646645384854328777024492626235426455443640672885239766823271090019154983923072183409809137067650567871566275668482942974179151580680081342582268167956138459137857898276895596854067811014337707202753151555121349647614281079407476218553118547549357256223726277414831027678901559878071141569517082898054441180110004687488013852572281044475490337648134287395216326309478342631310488486903286271173266873583284631478510913017205315920203571259653817254015653229076785330844489949731957932710408798536298191762457768706690953813725043236725062635477884383860594739865108888064622751485014364308713524522447357348029165865509409646856993864715071324899255277111031212991048969103227432202006653537221296649981388360780409252756463579456939819027519089895906213820249701065735709666536548330262777393694585234557434819582089641245860575768332894336532688877527097257911787539305869686106244678454303508244790443837634758113130634076640810152793103858075148289204494479207050966002429974965926594350803235498023642840828901345471694352492832600751596310537965962285557341633074127007159016840213694899044597130604835553647383219333639086450036790614090823453134436426567885404537235437250496659934876162577141724388556775715668032816954468620806040199908441404691144835234570583171419179420647505677609533691084572136113480606970679326909819254054163256541714977888545247956037763174727073678683463098684583316667741836011404138257972967748892749318843014405216735833671662706573294529636387588611989624895169275040925794976655567180547650044777202811477818185394930060258425738265336081551169799478084704566737907496767768316020905907254509376090070390852983245810401474389409841207034431185310772329791336013853127061349902534514922231815442582706264041156397560251098741882174637296215129242922262838946750726520260550415893304207797390378648209917291816213171148016063542189629938651395765427234213648775865228506559646082044804354955141310087884339580628280563344311851408703952534957255110199377546587181286806519419594955246418863545008895458815826695847496892706465975115155854317176311128089167305306554017264106239575839897000487914863317576159290245560481297399564075348822025884846442031919152216717302419476125446617052027718016375818636662645918224557387439412589337662112769074344528000063326348001876304899255811676192946921584879147571028152147289621740731654984030207271156788545901246913361148350781027504040083248678338743087048275940339268246252912655263706028970836527346111090438216739516965800435521157496609339028632696294624519406632844940673005161929404026266580747767784917622363349965624024319389438702150800828424742586854640579948371493158388957359671325514597821507585294814466646070117396742993478372069396142750341302446498373262479578416177642363284806980497381135001409305621854369140561987755101778658952284538263308530808300207040185827646057272830189434120302493719658894574719236311437855610962830753995790951623073712531717125151829532024043925917134760886278300322547023214701657440942858558315869648137476505628013330321540434028997101537254359401998550606385207448178622208504602497147564038544501305946204079335147122279911811783591193028146800441223359996108159969197969118717698038914420860337156006031985032341055766564023133296837223172777777710605540144534638054440400997790422781069020600680379635586035211838779667115519512350077824849128975564732628051142126391832106140103698724646715226003577864351073821266983303230700563961638250682251313293092856843933044215901480275618580602893683127337115780254489523291371300728276514810189018225837820468869543710603167215584356341920739951702837951267116790971958920315244558958612984089582511701976876687071879366700547523074582935624941340985574137028120226765314262611231098129892809380872095369833642579393211532632769628091723248208220619385532724608408991401509402335023144712352025845176549591816310962416721358756575192345024863552422005153318057385213681991736569815122220875873899523403926585630411413370887105051587863815659418033016259019341520695208838553379067289744465138240701126934168074865368817616481360637251718050148168650054300615484483432872334906315695216925650178435937116087794487777594211917356192323107593461264705039222344548875984960606189402668439459385945647586226508468560179272100581296544205645576401098897776842770369210426464751220065867103278914594495104568492661537377540625593044713445774742501713282875388051389041378544909882003154347874993351748860701439259446121306563027738306246561802890264175342607166388573311239581616001404157674632316276494362886933203146254572659089717733873141370327987335637358376260800288404428676713483136411080068154978508715442048299680792465040043901585730397482928448358278675007563872797312494228407494691212661999154283186110450098855774104130599497001838755253454105921319375775719556506290397560569608840465187227831941192438906513089956861983482275860673273549175024602676482997968235104370554606084336179265772895087528033583220589238776030548726182600935267024191180245079050523076251679785600517178752485855512553426628220382357453795657876012966967765110182253721653048094329185237472471928698257192577889623763781866862937351354459610580830047036832596404602095012795648235633635475077458574644500246152553348218273314658281338274545806670623947595544630267950129381762021748481890880649811471120968490836648752952548263343152240575942609231760332790248993726765753227420986703265427258739331734575469152662887100084477865167065878045451965231456507422751631485558917306714327899487240230610823720093420377324324693641390425107512835062621197343167220270126395478515826016617614612531891353277348105360430708991256140319094654883872123731398671100543492068897863494105633870019295437286856462402496617667490860670942287781393614565211827057180932585682270199895600004979667605234601319565943008150902214196326594703458336583925484827644611241687732805716083244274814846701117435046335110883663115073791214740737228879906981519765863077142431856903932664741883363651043000465558097267963081939821664299679963553525825479103988055624795803050115008026828303385925358848016222923130079479040591439853011072984271538810214911887011808210107669746273553618023538962601507423634214248205855098285993035270401882993555912372726949806614338111095438065403461670791222552102405978967578078929852216572762885745956746982129804134451648851626745744199342174841979790097683619389463977308930456414886110996394142841952704558261499358136326116737572755353985708500700739085518745929260458370474761462087989957617656031642446125965769113252597989263506781573808651205345403201514107912402244599099454347855831299074017705375202053161545746504658351727170223157702641538195733737563444604761957082616282153946721015056658306746308548530636684410103212655177643313236837659233008707280076296958351968837336348922838206474744083503497222407814289303336322690954838328091228768360863810844786969622634252845796081515725966302375806301283440855719810082194113749724015815159315933333489871629675851686080099187204446896231246566234548714939406891049144509982595309807768849967451566830098672415437548810659240254347499031241419716306414565489710996849057268415760671583215709489328425998904550740752962398179165353861969767446425982754577200397855252224545210793845548492117020184146908004714158552605441126592102778712775536469084222831616175991348278139307856639900061696224248607746279118463607132560925783130198990797099747656378514995444020074072894360736224214289343280196280686615246856069852728059847979681377049238485604234978598169872621760485840606466020795516070948798393707448331626988150675692731500875835833282438258077498647648897306614897423705895054555734417615880614011988905269450268459190738546937729709182855002136003728829340080215205229273706608468349455658213399429912307433198231133421753548451863227005542334881967044807779170500966374144252125011318328589367614144404438496850529653844775062533233902358335647483237401953513947851072833386388905500528135476813532697441039671866560073980082107348307497995639876161048595622688612441623033716075298686050281180415543252158121491169038023605785476999907083751814244955818888190403338102868312408333982359752576071650866229579930584948744216476932833585469548312893248298288748211030621604298079789905325248525166046842238038631288398273700820403044182174943926149834420646453745300894546722685110093463851831041664221097554590121042516567832687738585904575140075006409628527071992287910306179973667067979241563593219864623613083173969709698330877467876486865716643014912861868742422578616819427494380458446302700024989025702121425454985590304407454835971706065111545370917085079813881294357347842143440378965311837759524160052587354470321496893552628982307200748035929875288647763521245368179918515354389778500497351519693665352913439176042937987497227908721354499501023783851639180432372977947456662999377933101509543393366362975347701424510250480016366379400114532275971013385400098899667002617995272935848917037483252869526754730699380779330351278434616919712435796460008046544198829973284444250554701253113549980040577759593163666407779739562615621567578825446153660968787653694188664386027168393160013799898350848430378839257715006836735186267132886011135450268748895697644087559003728922689782630118637786621549456266462414118479475121647450965135885224577159298941639576972336121991948205083399369182749257027528338162894571687066252639816828470744141485210888879260351071526785505975277462544275991412938957971423254150160570268196409395941672622210909185179540286390537358853982952627014467375967107287183335785188627848807202568972491417049878419823428927147789735772599329045150095697713504305868356457084330899307627040296779229053662917909354649696654959606124116278184355494652793423679574885119317067154283860728120660836443281461822661344455508201115755483739990846106279453903434984178699266455880172383579675692293674694165252668416851509740858769622544784083654267267714536134690322400414838992364092289558033442270242459000207028603519131253788584912937469101865901866721303416693050714836565860878747330309539057431792370162841661946274346783437085199173411253817225897109178855530091321869149758634050033617682536183439629824780122898559657555846689333908960316221073822348434999364871832631575277009440360008062944372193811095247278563538767771553952669902311478885171557907572121332604311399497492631563988371711470909629486777320391138271859546631098715764685030625914818394114441600235017659607671455192021772696675795242767256430229884556076277529430994384884892975163509807660300163975769885267003739628297457707622331482721863542043184735796556487741107447315531722777404058874296556291309628053996256557140523327230726632728541535147253980930599957835913677810491894139874785095406794483415135382680382589528729998733450320440133378438704613130356597871328065095323547800919902784749142001284900294897762753602160663128886001726288417604485887218342453335352705137991440567475064541451436774881999995933086371216762048536838946268361129011285482529792042690921853703492445756288998859331133474797868746064348370212623082452178293407666246332110187478586432228507121082602600310777898969807943221176461694349086189363485187966979882530718548694704721130303059881026181314125855120466736392692107252091258784875002600467138033326750399675274972852344516043103940213370878510646228706102647682664003777957676435130654473214210072672140696920349100063724087838875434133269375309709062220722662199902268072326163588900462661122303140330296841101343979492688230444904700501404599500627095333837419826285737255688600233975500568743987570121539244216591690093602857600471391429324773354398358988102497420666261187237119614127909250324197745709998538489683699451881937802798771474009535591091733935284823856448473851604803436954933944762521742400024895998031141346703722128382271847736369155878639997452651053093175194181911483820569832930128448222661285309217968746249200727981392725809407882289555369589096387150167826739300567972386026438825009615705031063378717029693815003801079300275986144375519790714205121480186735947338619417687938347870430243716994547079514491545185134670774724783004336545163904069114299299088284516623670444564984824044018455191004339175857038931995812544428713753747441659800099707491393566723800172211524124034031899990147363155606215319808429765119692573996167349679283632660213708530082947310070789118640149014287950305557338197019523596322837901595872302472925018599867522344648631225924914156401916603514096035123234481550076941457534767939832983861382284568232351951396934928964451530375458029346669071621026048788507432550971619830769308996305716216126811307826574546909870737535186519656757112800018043394154139726815425875011093162305393709332607642415401716914082879715170458695352928221760920626659626158775546866138886681744018363453419683476921349887838324807973488191892138627464269481824890598953867968766796240470244616147787892591928311677334751792779061710053633952414379489380359055101682818583944046946040264555018709030612003531431416590400112067719486851943038204717599130126514966988962700205316803494401880062325643091792449575708512028702990624317498530957728246359432495094353396050190106580494776000884773475399058693654781895377584608684261992929496822518247402091589329930665915322838164347466298320069875810138099588866698725159155218982835812961592653188334999721027012803941300197238685385794787038227479352132419039883957286755330287036692651950220086316776795129868469944653916888508655293187097522077088598391843432868207178497074741924807733016998490761623972146651542237555757189420637752585876818735967882552022666592001145278021067128067378983918945466142459936682063508129911309031380705639729485921397164750408391892241623003711764898314020653861112375038040515775228928687176095504854403029029144299433123085048966205121382507506192855605704423730665334054967797547478818770707941472981674786714019068726937689021604952130860339479429075131061026519214292767158286797014349192117011867661099027140508280538966773341819279318116128873312891709363934447765042166718720610523537397058218516257823714011300405967899604037658833610730152033487542979755906130017979070173829586504127672384965192276262568609119079270995953366161652888830029593409694051589375887415733047152967383867946587920316305866505494691534808431344436458803442480029191424064729769507374682142137971202056947460759133916360436720098397125624653515475663098760152379057959882718629594987075341411543778368748355337431346232726829089593252010523177557013981346775735570545858591987937151189190311234850433085629794870406770796998095948703652462686121601669410214129010727006731652956361037967699305477735720167799302017835776527366421554088970162655885874250037564035867232997627055540768398761252326184556541390421413230185630179347033813438201483679159220437980111419272230413900649320498795858857871555265710817748644529250838078908472787124416108438709030692712757779448108632609094331442969529017900391932040202734797627769052801758749500620403260941779959609222272022591176573231379074224312037208576730020795797113746287373742441762755202942858056417048668453812223370667172721744021529434991994016719506910373424731893887914708088535047195544994520489815183025079947767945860288267888109306337379650996073099678449778510574301377006798825009770529866854054744313845592779902247558264794840413252791122170775927349384655717362171101004141431682750650855752801554064350729625701805534420489048354998179418926366058445424748135660474812785508833095426096056449498757831568487152350288331958593134524985990825733323935844384207705200145053931506161399717891541815855376802556638157528076048434359719768471276026484007724461557752774167760538633853251120544941584817654295042848131987061856206788266206308849570644659050061591875583802957554623237760828170817439877321862077928798465306299855769508456545150394737441248259348113028526023270344095951531678320411127064859221913278799633260286324302108260488348607303013765508339687470825823789900514916818765322521989276009048781066828542411429976092149151108794780965012209892889181837602229148279876615285725904658349343686035936996793880915049430416367647521546105424532149498768463729190466137596698626358475578517773145039671957632741732249051171549081122938812929453011910802144281524547353772327969656710372036119410501676631108910379125844753964039895462063854351541408582679515383386363144663100833961909427072152739535357911172156989016574162644733901392636288009614179200501723104042517408524725452298679880980793142968733381426285923833416094021274479450607846816797601714744613280787688665993427381804517823999009893612166322708134774237466831481161631887674488348754274801290909411311953471690750169966455594085347762728225723722052515178085512884992956139262905052394258234926209849204265247977398657704437278899560853490298843770823546033162358029513824134237460431147792680927852677194337911598538254299374813435671326316751308907563314537623169766176496913879584322456268745234302179751412880251798626189698872844792892202666550972044129121786756253601406977170447352986389588558045324392473476684143541099000449957784816751107709500960647174026833249931076859567617640418642025569654468186356301264989940397824448167382378797683691796627764720025292159341604517596178454334395365062541681637734735507145240163517092578029760386591180071660503558966257053340476517840137937621681093304504248530886707006197611780468998493109582556647748439200327420862523895795341443612719708519763498103320726811793667732297214112222912947889874258868312354696862597052224200579721790371462825329514058048170890092769107566016035511440927090105841201320100549054028291284346205786703758642024877683120760429697928266668467597806253877095793531895734148654686491897470449176197264440415287581028950348738151851493492029988304684237572521325987025169328807361958026930900550882142416675468852167907346034738401839819841220819228989886818253120005990878139465865212118774674213933462022459418827858834492038264798883349148084746827019635208544646693606584617410372983254640624894302309244263612673884212739981782128942828861748748284208779861747960758002643427247381584993449963992897539705032849990781389145886340139248698037101804194981724965887414501690858103976183209426162203796380893459566933247963019588100872965071652245617765971357129455150459081336984154091679696060977773338522306069389561297454623859005228258103936986886604948377820431317449310535296198350052155643491173202123555876861519095857154989062725445742519066778947055650897127843564322985555268432437164801254133491875658749359771994377742009078226432716311511519679773996775442651016652564510843424204619164766187892588780596968002332938685186733342061608389827309062568562935458755439405433695817866091036874406888854336644560435388865151073552560351376063520586869577005641135340683421489640864037908979387688217083601531234466743950588088121375388163937510071452102946561104748201837313115162760351292731802252073056434171613518099005837326549271712607808774944641769263038225415120139660596155791983702449038872381150957364293926417175074994538320589467462962302792855002595835735266141707861456536221540154426622058745204991014384594039074585373189938367297575219323227744450541299768009817785706497309621262124168499535894796996778435989008984892297496549854936307755711867449568979694118127803560048458011278694149005046270077680659651856394376923289326915714307911429745777225095238583237623941143112160282021934595074361275139311506324866065531807109250285557339126362987814576147143505633026904125412864690983859334130536780325995336930926980077503164447476935594536431326123431884402606041180589167996390147967218419784554259947885581410465748486664342031557654989622690530101484065755435659002366977223966567541385364313246128720563732130630100251305486960582293584168216207162083070023753880517755640714136135517619430377912767572339072700418695537387352036630242093978004275050045361703018730713936601220503396326064906081159941797058912835592198240145318769144686773089419567490941172441262346234542883363496421086721475882818688508981565476654343293207279313031341649152240478075481473706263172223572948205785163232817167629627930012484584579708808892504590639399458784236707829526421250288833718103711322046502222361178175237307912147844350371747781717627319077103252030999253375372257569622712892141174039163153020948192407773723769352668849586735864788672561406325148642257795773469377518355113377607431165404799102463091902358927657349263213339188433948051423585604231184086647502437133232877932062422793845678035307693405751939363394058462581859272888209713618052009500406371826531328056406886460472419536543142002195725296917759521865873378128861368237084704524237039203815996554899315035941938441310509064888685093755579775044616134940379981532289731574835651512955451817086162224977087962674989079062589931789375462364183793930379642542257769902305417695701853551891587790336592801077406002521102507699513020181000439468691686565605697429714696404669159188548691425345058218257272641057733696261673374907915460892677323165686001626046648354757277295078368679943788505500942739256903234510494655947814209261377206279978295442142216827646418083532508646605133615599035712767840617955387511422714636440292281820347141145775941728012082092807086606785655594747093835694363978342709050978761456886469936072050655301098531477303817860337702240472491412813710216652941339657691517691349809571605731548671881166688719071062979756317687538359248252281658582499476593588235176314248936764034324240671783106943518876043331277652343617348130099695663341022519637359511879994187457404846911841655625356002128302240209554543529922704467662776615353110495976568876980122639836102278077790364659123355623454238455507001328629091115839349891209729314839017460152434045959107285192197619940183333247961117616055358871969028345187414003850507306741802716521262797409047014011126244069859822373808130148965743414608812082104438816103625631116203154985402559663725486394042649730113336703625824415805253648969734662342375914479765603193976213489486350396127645546514350731767785348796611018020605210297627457331216679314896818660784660482306327092375361693096772063351098403052389062499965376024622399784798817160875998172960167414659877419902021504228938357603456464639152596177007069590004738039028889623674343832494639891632666613387188161483307458939332697233570999126145060048371991133216630378066588143340007365812722923369476834025910529501974399985523270099867668981520799443548493735423451884726697156402408227389425423007715367416989485709756891560677424652279957124305569444386026764835018223005530760092962281242708319661137589518326830670273238589232473562102221589154117695594063933506028517305677300578156511857628943460343538759305787055570363494131287361704784875086069934551370400471199140763610586799161122081990657526434611158257805457106588069415699007903611195357650034601895463458744164867413217538942851349191865935681726088396742290350030432157355771117750863602687914274991436088826451407962565972468208278685124198179778129375211572322029706136402304469570903394423289449201647879518772263255022819128385397406449213387687906229111910420482507790486129167448597069672059891698768658181850865343590127672585046927058984548540044753463273652011819214716714874866106271847950044938387624954024206834506183620454060218843304143439427743276018192943781713739970295415258816145379480076084794656492357507517562030601803834538659737578519931170767711622522639296672879166659441839946548002909135538917690990729116428293296830086636585743771746906478168433258704429528357226742925143700223685564879501010568272131728258228341773728373867701177357817420602073565386911347861783321113794714318900623459444985777353217128605006491847515076247762525227012573507168871270924178376478090428499409819388402258983348131280309481751204043315724558020138998163054325930621394662085956385931682986667538644124739658231007830616288441963215416750833634123832314860176332824156350654440250600879487258938403331328690068156297523470721481297417724273774875486487926482990459321781690534072327693822890385546073783544572283150434439337093061539238524579117702348450733900814587471392788464098970696846402366295457183655208805439762818979167947994267596222752944222012181151389153495106541521389265749892035720930229302924113991929532123085853951306136419940335037889788242202860192465839434226389125288716915530649652617340707025467633238751199698155030822893908915321695302435491178800021662899614055294347937072561046837937319257736359733603687371652174892422238808369041679311391243786437305461159203970007718101196252349826316454292763466150154763834731435195560332047341297664276962879224497458702244978236795831497957262348652228433116735992957979225025708353810749790510615142160073676383675791269301818778317640247854711235503723240163938684867381986069369008184434751730448346433717396402223994065976952222310093457748123898624212755621561923552505892611964210711564908418185795355248227525416988277789795671088588224641224681426475893771686051797113888804662388709974720735309582320060373982101049826415668026306119071987392695531237336009479753592533041169268636522221119095070719961496790678774518803266469237760713821932910264367403199340791494041140470371873760043879025809836950457372145978842397856394840332234007827248728685471877378769760953014736210548006363862610987561902956312627424611992957511547153528742464918235935203800013462298058835372177392283039810998848724846330475995760542813313264176875581825800128017776542731362468090507758909295834431678854428478051092296490743626210798376108419571976785583388401071860394760879920261886937668361637591970671405905878312198821947171217091193734489126762607271486568484340636532179503046156143480551152550320381617168342644372306167380916376776689664247841082883055748262361818153023755323981191014512872364836706464147381426967133720921251271651423323019433561099053394193156093312686483201322008053578822147002932321967203531913082826305487264746151043679459762213896502870505018868800719297521166353297801337098951901183186576101811349233278564951683173900886970582818760980033779120377418308069180937117866358609718577381553039444178671771192020283030067489011613948600184873757350686960679613715273071141276127307144195630621374426538704799511276329909631311547581478297837547933165015022357677005793288518545675463372068358086331650869145086162847461126923061269112621331169574366169880747984260094944184450503810865182385447560754525211638216815684958488523988355989515091335655311811857602710288363578038971901912903174456997574958117347953014688562381581904693106996822382657352505482219941073733674067163352881248742453831745940721527887082151263793499317242290228001122632538827381073482084163771187383376839364649154717338934283154898691198249626891182470360721941844266997992280192101232590871499469394387197548478724192749959478443103660709899078418624684237370206404833689675195613763058590110881692934203997581504981499501056438485749458115671030246020660430084293096979844323104138553208212183700999283450816499455842649433909031638558141316415044370885428231432136650822639027571947837596674375820846997370117948721211479360635223939343037729706654966981723502279844254857524772325766925457187737250162134406535848299954368339779761866057031169142996190643882645016033728912319172343599797042525268293844298441564756799701898187815304210750570025024403053921552697817157908728324652819256559999245382226256937359208219882153940782223092431912453680337430851616144038925735110920102529623994851326387435502968002541991394647474736055939072709973426644079120305782166559830235323524065342109029726790873752182890006645902301358551342256024452497924523656119900279207418077524391084605255932584010613279019387477648963071919967754245402087560633974084627933672024488739138831703262380923267577872289189143452138923167220526128376863461994420665479121421397055730839544362332191129853900367794087592024528898464752840497252291933039642495244013310141712256681876486914517398498890174570408979829513020930610109611797787323307795644937922376111539206587236673140737021394113464493110569465743675721928495067582987359632816235779928714261590520533577695867765048833094990758849086470914624756970268095422603745653132376683684942403763600835254455176765405679812488411967164751856179750017342073291934154857654851903288470196423313721124917851001418146277164593165697452092201654431577185682771980953295062930518507426016875190097034799301138968316927259749801300819483038329653942753223099876498713710366381019295409274788179048022816863227125479994674575541732622147143687074171141669325382565932201596586285450080567746880765509357415027585758644025913381193192574457253417697890826501024626077736367687917904301220869408822993534378573454129443524804824258809080087416051819049532252696444726390536892869805988072502831052731459251098228794308673308645559754914302921292376181076162262383513561753698412706713914182474405294761356781659477888622301086898679777465969333222666993634542400143812635328876544071323488323328692953052966835371909205422224462322998210948472602944197565034668699551130073951644743743532471220287067039917291379708090821669517104746900088993227016456976854617987263290305291929504011806693369053971316974672370262252497229566499475790354059197027471648104538947254306669887918986861907207573962028581909608278762915405601184441818531337082409432172619063871500280797341664743032902550064021624197245076855104085968232157347659634580691240588138500900743107206637604423008997732290393080639221215350319224172002710598218665344458413098726774546609969594590641594822460894248446028960959270286668939848397234515009911886892526427869736997319542362445997398445264214921583416802654294493791435115744633541506621928910041192724075298642922877108635202634048958949737258091556861029081614103024534213899175164221434422427115878312146388277882128581738406094789332246266558586732123228665216426103629395499495921623457403962628699137307021865180172625987736472980492770546321436540202008730845971275064078490649551584282374136786104956098449539356282017344872761639112955773818571034148947424419495719859419418330820216967158808542348654086404896648738301299590756697482681925806146872395539991945052702903178077969723000724744853265649879312543841669526237647990209473428076431381274687661304121447338231067442625921388638776997658921347829175883028574716906511373267170376175166699155901321167686954547250502181508771753395880670877584480175756998330018445587327874142533874104520093641057832351946012476994062317966819198927043647400312300545354046572396032750954699079860990306055003080717487405360864262932918740858873149257225486166433978752187510093591871141816882446425564576563240326742013348574570008789505100834337958345946473809463202442751177621424570111806163652866904724135131138169956578301815058205100543265623586678978612442825811633233617595723490706150360799383084495062699897574282283792648860903845316245136701238742528700899917888381878562042435706880036650338020412514169994859894000741910940703112995798023849209007067629434113188998272948654145422886429996566815105282735123342713312215144660555511568041896429283903497692352163466569457410887984611202831563126473216319565309721257923840162020145063896000318061348730469682653143883501121988848510403756784038664654366589857037132870385865596987793208366378718273115681129828137829071792742436967068839808782797670199057978718628892804160089623086212006601806077618101425355502336973626794728572836971109941994005686654323587617384982552276399405350910963513014172149118618096087509182813569503439025487532079243471948967692185882284085178405196175090722819910097354299128462070026536376955483993838136573074578989459647518023912639252116818692396051206123259880530833956243404358656123703799116946167716970670073635912134651603569607813845961895569974968166241758281609259375961229466844503885705179826382939435320177273898628407292664880923823681954581727524692425762897926219624657661786805525659337285725154685392512977469308271079366481997494936427174115432403966206156356685088823329117144630476340741474090744189464369221104291331440550285772297711268571419381497322131740692352573603947523811344019199239208334003713610306090080843871376878540162704451130055795737484966306148098655624920131796399015166198651867659696281234160697333318572034461801839332342223331576533780024966000434385023966076861334346895587426342599138354972754308881238649345419872638711289874580340733818456166085158747088095696589384728470936873908997413770460235812990286563954370905663797327874206017611899593297853006359176845530905294787312919442580762969519759266032550077735452198493066289738951992409057061088230212467762738476121131994981568577966463512297432236612822857438545766295614077835825776421756100109357142118368215186252502091582697988904933394848003364800138611619420940004490095628590378303000190877586815680194799186060988065293556951782390537946417326476210142311625766785011467114641087897757188464289528185042075304117141567738293237011063467607032452496927660878829052255385488392559058432228668803860869141353097012314917922391903364470714004776014524211993924893214488392401597963087296536802691447685281292367225792144061619611154263105257156320404815852341388391574835419755856270200630241746410240908945116073025678386330023995949106136956597120119142024473819810428883971744099235241709413867069964599804431016053939683417136048243337761819616465354929864814043128521315349036604638721351377247083044428944799470071886021500950071488118195158417570066090983765721016175415510947330536190904554448053835377681401791692318185468291783306608194524141713690506343168443684739732255897453663154193049167664544724485698329313099288800470268858049697062703291033888314225002054908789329541304066043592023537008063386403423012817169596685913428052155955028745862294816559762073678463416525264702943176287649144603929253296959827239295958640001948723889242156239595008708341727558706794459632755868577175055595924841564123455894681463443314356779831400262405566742807681277862062433255855622160931391942969739155264535888252836582257253023316520964700913114424915395251559340830345686411515336417883986881361282113697569881305629209421877419485111273314890355829405462464604503397222212971905942432577475503325433541485746944000021767700972139919617769664521164710778645640511337693769606801929398671794674810180347305919216125088888408018323060534013167055231823102265938107970066704306428647094637227795412215631286455085444386351323740840852259672617828871052353547867830686874650208262806537915339898770464552132085230012359956529089160314391658557639714038547753431251670485297545960145016256710492479988096111434747470583874761739688873492837445855001885702318689793794863277222321842210614621748343185836840981082392701691804657955873160841619058639357859406902850423481516214946879866173249895115268350300710234295656061586537037350872285264998233869397794884693462805324423974449319009214180505114673955453934326439794299991570839678331067046873375258511341176405451761060319908610684168390888584630751446328691583826749943024574167936200163777839069605976729192989662551325062386783603735655173289469773786675419689312982626432542694888355435915724160157581866112609786667992560897450965357221259591291497221924314994863610352075451444814486592099528745133521125060874520632578467628903744662966360207725997346647086459505401669784301811643690211806164622165342846972415798726405139037881649616586548880078736560570351118619351023787240637795553823264740373123014189000062384597171341736501625968450172187237951409397009725350172881002198677350150749302380577157647608936642141198029711376148862930737806748860173507680659996293497851089335833497350131895274200477048977074380550854404372718886156395574297454261998239292479067261494557926640356229019249848000461880644357234444533294075235761362951317871133460891734079186525280689128332269924915768814990359699508293647469429367920315488087793421968695975169769365499954074091266795740465576816399075649410254977648484582476981229426801858933420786637074788063364274565084982090176125903236348495019069897919271064768823478845201479532600900973621807990768900200924701672859229426035234830851595116048326139471398365417810925910368485687551213190606296640845349362139966128836446376678442989104388245848963188775257106220746103475516451138164990073106871009094189295247520629151374399761555650352544732197034213350804381972239034689144418453320904542125508467041904470119314746396777122737809366542721231503477709475750883758447824712548271615979993367551363314873180204969936420837624152764398662931215868057028647185388770560580734250652517731243123937927996846431792275027387424247315484493612179537589635996764390666353921863817636137451219764482199166582161693644908524337708938077181537938977812559687563922713037072347198080147991152519062305179856777337474943517455549679638997673982334990674360621484963312517990638952577471745500633539447813145646808698887432693960354659008522550111157690071491683047697050530745527195750360513869932822657722669287399257451835888288948983841984585459422145887536744998102532299814571329305450395213228207299336790359262923460614630481136380365067218162106102802358052889606191374255755723286239875351978927897598291407749894543620132149973657868002516579224012951923921594800220216038560821349827335856360369053729628857854950178609339719426101857427419730154695394728076774327011427083599427859164097315675681969310332197491006170835532764590869498935465368340816750720093355832297237300889628151231855500729661577047121970801636535745162204785835957218764823409864024481619671250402062748356028138519193261756560955277788779518085105733341832158403525060567289619012227079749591530683238249741250583951605768580772541914563051609865608897018001742521028034370098879922585091646108600896813283554633505978680177583451473309199509192526636797272187539280090970251206250862813010347983345618984226224536169448115538362212152294404477339520307082699558424114851358695592351890641155339078045918285696801597376788457349569645501567406726787426954699730037357090904006998424174292742700855837359048108771955025476711011409950854442198016186788147351050334729964274621043451825788652078556722313581516745563027725187184202733559538183729791343260668066337012442672790370751610790506286838177733233353613158397154977539238215306145523511924664484799216570280653461580863814919235664050320201090152274103612406736135814810779225729023411877957050289518057642502510509402199970068157156761249745050736394503906819848219893209414301745648239824519889380366866775627885136944696382978125646629786642488014086181776858010145075904126128482268191438126254359676133927643120088717194740250761940221400557803920803575519006504491152302485739726747894614745652898082436039224438922117643854511815914770294415676185276850921082372736974869825064955336691636841139497683342289908674827663890795479185254055807827173627692051044887880930534851962479978714769270983174122411601840396775542185873034580024930354495289860470478462188823667263565974703011807585978845727130586107302612377693700044819170483376544501540618596902774658811553277620399250957956830760288512232569981700005975317866735778966773416757464290499324911198227194511005450351172646340112333214638359847579395136955955465451727134664880009149560029457232419874994944233428795068475161231402530405498958764456794669758821301408036518737004772893451396297436640978209461467352085531621217108131664355916410825880118071807760084446311708801270654147945967379786214078160755253506306596239629379288993869321128397951891441999799141250759657954798949076692113939311718366747363063510910819717339092082822662439864358789723325305471242823211604220370133345087997185278971897617335545356944599671945282204484699315771826124307864305770768733970224125822558276902858447052189555648470817686983745398764226760479699842072595156083229948554350869228331023855012572181743779957377544825173357816909257927806168209120098500621952360252039278722516395486025074151003168497370457613816830301675236797657649536925259160897285496465849147284007083844959230376692916885515136277984156660606019031725111087013885523006597938009722761329918286212060916085991174495208091198650192455454807648517331631349654977363400841475639244975008376070820553114489447479028239604563716032580398233713798969468167742788465697209357167335902004104883890893251256791157590211563917373909143245427882805350049622624083129078905616550133255473282449630120416868302929411382389566664075244829856058715553101993699613427747465143647685109036320737617385495451735967519839959313222387235926974084052259655334048729835223982496343823074974576486287578793957000246120391656260069551522136883947258081117974882802666926857615501518402435098496062390596894076363316021529285084150288817136165691781028450760077147913103353196869151630267690840708545245985004221060196267325800762845746669498218466746145089781275455795579624798151162259611498525446945285472143350781842753268141080332131048818158282503775766695446829561526653518979166662133616249008751252396316984593975445730113716223371873897434524662224863383813749306112128605163174189537270950137348360839070012805618381297798593625429874546983749188617246684888270885845111649222037410092129890776640017591447706071947438830077874503837910100425255907662287595080635777110848967865537502744397480288375165609444991575164496854819369508010207313637261082933822853045437334000693516280392315597804439066617069063500716506038725736092364927980928518896712483135493188270143109036267749571977588356938469741730374251447054229682499461342838743623162461941138456176537183603936624538769046943332182137874765579509651470888158472167369448403681251309721476598074322985977901621661671145884799418324863875134046822625107131803758164361307115204904458647842997117370486965048322096958567527829086317863362155140814952185869411564192702038358597604500991736006893743529884888901131684630751346285996744490605859424082059530751973350788364805346570994023068367126242521234063205378078949287273131015217903981063470269679629437120375767066641834780444435439787892040449171287861243520077717885555865674888832618705351779051341025255785189987237294573353641747476647297000607666634114359834853897426072362212826344827206614302181434591490462767239218940145864601414396292635871854326292704341090321583430121222295468585216713141838151658930354352245461090308133394957694126302738275480865969131443088829148370972673201725680326382788087794088931134106171877990595371399542416690476642229026829973088398481767700994485859474474165620167050218807232780636946018546872405798534681687798472667942628526071253814601819031340867029656964109217751942113226388954355985587174078466644469707045418923278398870877026371574885179758113076469928793277988398115713850420310303850069296728631911202154092826713944065828617559457039450337956893045078998580231211700684950477820460951939862316022705042671929743477497271683058425816522846091988289195424698522016733546787216056008872586951103126641675594516329653611717155460593645011956504450758291508630081620067161084132203508779111646449430815196630340780052907785155826464771452796222701321550218317789912302576263553662056773330172344002347126570862339608890515648641498462409637211790767128913076959730793182467069245429781819644392054545376467646353297550545577168054569565514583099615999773161180954946290354795930675219612015368441313923251868592144958500293178650938628103967536191195675473796772112766888960583488942312900248713077520449380393358463932497792991044194846692731048533047623506844702503397831188639069761158361863332885949664198741410479441188344076889825749690662973863022472785066248383530493784561245026072696435445518022970636499422067105948578373276166030127015944134547196807194852465947561350384216749682381567158627411317483168342350437111496720633847753104177368618303744373364057155795580328845283648705959601651294060335381316400045553041901576493496888183061641047618578116461293411913317085299822881464899004281525282055320170110403088010724086489576481156709757930696694519936664274133611198564269318085309515611785288787932258519256373624068520866382892762779955157695723707574642844820552012006463082724026043142995863888993069509567962027049979293349110753021063590513297743189771160006702971856397145579499130298836170473616636213781385338957335952592931882177694503533029274905153268740521418955353154116658652842939969380659417200421107680046296631156006358169393261649209205462518021229835045168566927767759427765678338925079244436955413589617069166721567494662391866497138411452981270044506813098626181390801658365664828559422415587137145240379759702695013198046983915929123362332225604852476307845257645018742067528782012851744540871699133901128910361006811213133859245314162407104031635033937414575122377612076545678838063608720160373174526361695261459489595398822315334845519807458171148149449742459611696774411920127409103963740910789939462561927488701476800231054297648222208045033836065889234782380897081429090193562203535983738122100821497204372838786806541184418717547378831495465360010407622934629625444988049837011099875995023953245705654130250577189695523226097965611252908296900711989920938963347698526410839859316478050984614091127288330549623433845013515775929564882198325376916752163287236575369353518457493971506747814462032907638152713887685791684607664656082678193857838634542573384400430276557573514779746582877718948578361342784151333275383432227962955894647560493792511547507384520917885753099412082502797568930615873014805002460504784657521583133598495075713201508688783571746932606869247678555722510316657898071087202795303029200888330594889490667479553711637179284324831402216058336332498619190063011229464122946483812487057574844215968823171685179102368250716553346649639204392638795458105644418652828917715223267709027274987385137817559091156993694086483730850254579559877060548284880405389631765853651526415106947663288623250039595600351792908098170190830340765169998453188016960904114558760402245453062019687886524720828733747488612019265025866476896818184560813841735030741188245644946219837265894179245551134636988174526891370322052764597764863221169925226535725875569989630926917735693514091203105962546782110579468726769133227417613541844112361640586421113669264409070929021537402289598785524589897669835609065108211332225502916547381360641835703181688090919094054935624229746773473080280239379066206743317082109513241230833817204280643628553311670058497234854505053129873760155990840351935469915569556167747580649225613834905838584351647194347749734712634325745482172215728205228179455413546638284042382630604090788360391919261595030433375306263020926527396898309959631608661849431500564846589614686259033047784921571742350160127524054841860960445627945755312099748391522512169038296292571282696074741544547930481406482078013402023420654120406054265020140099188570290808065787039330739146808108418076790324921316182830015907094038222380263842924038460301182419972359574812518900459559653944429876501250692512286916828044558898799212072438027914352998991933502113475347804878712272738903816572734043152386327205932587742348737994093206895939945328959644716437642253261030109281995515095115774322473120334206940744971903016550954489155681498689968271954394119299644096437414475961499906069286860083286779836106395803598746790371849413294630376859242910331208262462705490134352792671736969435801276203317771286174317048070895079522637937275325225334934612898110576079089900349486462572662033562577529729956313704587866841762233210746052285346795731530613840965655877423998560070378597709872769595177355691453542859682082921945435196624119102905727247150119511470649107518030180237499353473164853328850900181995398162427633501205955130309108383818952763306117195360265226729658984456124319334172717806644208027078101633249713144003089153538168738074197653584294687088704365314647349518158645323109031261761420963409975068212392209597476273384697764953708778287225255596409802606026601231576143823783460151928513164808049977595756603463075164373983330106226669863788093839847791961150218911766151516696229170679817248584177232377658964918565878548652651287706536063902831726484603309165254740936158996621045757155218663738072894417192900865513959529094313427134718423951221492257849768050301608738239648734142154561960431500542660862893979371936661282931434896636734799730217307313341670814767155546573896775974053863372059679662657353594660200087165498345892021172929297207804849184396591125140745618513792074176032669027473527039407124017087114030059475586621050311870188584014705034741213780154948701945457526642315141126321256668672419445856753665432460987838893631023923735546480703629027662936082496563028147101164145602494174830190114696084026393603113345510324455531497322216337786269739664027893499341351676966997864983440546407916586143556440481672547368931604158354951839867085581811444187434484048444567356462089265996918992987799084911045908856609937017662550217707892455516936914619314145724900070278433035666062382505845140871049309221502590106089869506155831463423874747762656406696477476079229710360330598982939131404441034241730113067019768388614076360064117132638293598973865085722379936034244812278550578561390153323319815759609191865833977821254557436814463349341166986101943564989928998214965080819658764405871780014704320073290237228603175967314261351347561672696886309875293535546748025735256957036982604623321045009650428520270555836312289601556988628060452114486602716612829688539736568542658137481564640611141365887708918416197266748142542851372134564781619941382185660148971111759524971787661580798042756468038318551050598377349611500260905535759738674443226873021317680811642756506838118923845587988596766948671965627201190332531738840647986303332046948474721321621413345221859072197181013280147319106486079724447770849651945719497340292630519113503948591043942403750043258157762940794961642005191417650547309544854536007508751142238699695525614884909788250835620196613463140195028921173107948877120661344758128013731986004790050072890961380229216846879256532295196692643537382900342124327273841166160384563976069298262624566979406562472187397947044167253250120858058723584104153547251539949332510878947642127174670834353139536456911028766383986831043955905403911735517315644492966480058482283657788475976943913265647910369599768707290777127466361137764855538492241915602032750238250212644203362222950417707643078995046778720813276259298168703020804610785973320063077336641209554057848276238432582904884415044557122240167051380572907215846018058242282245642393036070253966997434706960280994936003339894722511373984061525583233187855477451838407779539100604914828541002931762925851427996173378897029336577308119934835101445701827910821979203210889940031774488174944921599968603356880037521826180519582841802067806121697629973677320852976408244339685752598071785576848369492939638446438260000530991342330043766785027995843801984481864392654894626335329253441148195191901384381110690715758369099265501585363958371807726894255776799056975625517550072159996160740508937315526762656681692424618706368060696324084351687844948755607515178075495239351033701639249400393230256556627582404621038222156153832129957446343986887498278875304942297238154917600816565193700422134513543977709255284966944659778870329813327988395351122115223652198293930635085797433301476545257898345510597093362151882785029860785852881301997680331598977523466440648395492871809187858763069439728695448526894517586355813738455900383650682702714090473199519321516415102754957856507687443366886253991759623087572939871096528372164017532382832861879958335222942945229822199310007955381039799648906194953486197746272797804269904372796378774653423389621210832412534832163776687485843656500767519952035575452628339406695967371966962903222180618970468397498944539487758266128188737438455392670139304558138202761026042033819527226936552466548525095176351927315476565067627047711317711924950222815448514519560653673167307733660662021711169869266476034645538911269105991341955998482037584220836112578911183695213085960241137094101933648217113364118253484824354435745502511137448111279775131869606881874665665377851701770245495507953440270558197129472830359479758294484629997161471565133680367610278571141699366779983542123257951208505235297554306647783948855019253582863000721733412626665757605964501764851356588628058954535900261860484112160577724776820415727586655548132110688962729344251673897830747713392420326221379027980621371941540567219919289252512623268256590041028224375042020652818113753192915057943381041636838744030301643482548079656481861293989851530210172910086201639252463544894939776857294659354601784583666008936821660214645886188017467155511869878890982263769740362499573799994872701560836053356395260131700879320640812116056881158338575566869323240208236114204820272644108902625098022376392378379446701978129355313484163469685936106930611699008614861124162155669076474342515800237727044064901731402515352109266712725457671108068951202685945879340656205740548526176064371769689139798966813099804106473091183309987361685683961616522440102308740655222206933239148189356281654209268275937798067795014465541774634691837444538769518861993834609551094547498145766009577055450979515165888105546619761517704261650245761196326049919244081590775676612621874208043593302927041495275139142576562348867794106282096512999716199449614755077246447652066789612586683207542555818227424503282653671951374541896423485459582736564512589783190425687839604761965092106624295279986223397498903092829541151899188885148860435945958317123526212983887634650986188640066037982044482872152553389440186251308495514545837505240694945914175032014410189333710173322533717559312638011607875583313856068462673828589515090535892877587194684151398822598581006184500124370905461037959208813069726595456480106693479555962278816576565900750150848208600121585956899515989148540385223011774433149583762795248992569895268545366147808185279110095578965662947880803230878502201638480917164424857949841263278190357649954488438121657154323091329555719484561662582121510985021741618170224784480713261819975333049284369503571697424923780883840971249659768150621132201630739756661999779851533493210925933001120627961390926573144713477638518516902894380880668149954526420564028957956285902222252512093384516116818299875285478321278149460820916232698034005058227510323666011041653646897037472609967177852967559485440854649998127905071683503246610848543002392344361161314189360844614181890412194641617570861044371014089193240480717223400145930151809252108465615045070848806929814676333726911099709006160158419163784093614480831709523421179857953560181876628379640399422051242970326881337793038837962250347626060439592091610181155566967037495679730014886554609337049325730417672029019713008743508419748356505036279769851210452668671750886831718620982244832506680882029313338412876746573382049722870120662197161284445314992846782099945763355450976570565590237285458154954618164650420707731519459791750975495946879886162769203172940061042742631079199029653585065692622981761132624287315204482957027411446680103300310028125052772024988296963309950893308328299427198190317361688464274640406546411041449234773488002852294431197840794819391892106323760171475635993159455584872987301272707252754007064170491782019536226096008756346652143729636129853952235042375960596205340315944708565309395922525476481807053512069766396693784896947815067069408199822880827270246275748136770453469210348144502604423681252193198685756735179199874531467125799738456346104218810493004662953895717778750762921704888634310641706247728487605046645012560672057938124897754301572548193166697465319993478815876653078118488163362000609812770848205899066810179432110557441037119742131601264166225243683326231873993658679934521999900725837286757062535876829992421084022224446096596545366032308500628948869251395977782492552527864968185650100166965858888557787463307112051540139028224361814327541197763383892331437115927632746741884703191088880494077354670437411924231507042479605443680786768751458460083468853662551497311895058332646468092812945014332399131711270751010080875915991471486994554694678684680259441622777538043469054497692138636467704564444511636704997012417999259394812123536361351867698305271459912880353686076053932477547074564083900395254645108932327920310129692963938288801905340908078310728165463840689099936705904348718966622245668350458247349647136752699517943244643590808418358405478492934060243151290648361181196009900354883945664234784137935688011234153983448501274400710109087846665497136207160242271056603297040262852590142103011886374826214978706445463156404056903759049296981934341093200775417394952917582683344217587636907603480582278965066692193105958995964021924882615581666549969116098279820470085945276745108577837451019707401740189576230651569196001693910670280745016007724042323429309716603087430184088073344185422975884784664106216733292641876677015856164906613326522968075602968397411304479183556548564375640903809410271580444712577744332783802715217100952553860762270557609142133986570198890025115792091647098765413147306408901848810827639707680041354459835166567023080574169280575982490276471560609518890361615435146992154549968641565425177982851376028596174137473690083619041897407432736230698188065562170968632561066708757048050563011569760471477945950227770419821804788287160292622687022660312515142473698388151287420105325511141035100820994517389005508502231950168404279438115685364974509126629599745659960298453353809524296774669090492618870630235967025326086387532135406090423141190868305198602422436994814582421496906882618069116796540968601582282919765747533112291791486333832904294365275662786397550836051977421705143732330568169942945496330219584103703447445983153483973301261654327162927639948546158049694587647750894274106102042251257756323272709533566854469881368917295962556971461235364376739125154778183258094837647832470531187113531257731017812248684518089736913928339579529416986507980247098155155393516625418613904488201815699405752993378908137302332753974202391901356805040013767991996646999112306557596267140614504079724119304550693965932459966599160049427208468694358526708596948004223672725251211579621697492946212188778757903228048471022546087212264500874939923284420703817339185059089274105665186620829569580656304020282216456589409418000314266011144635369286738327190854294554624925865227664934252501981802370902556648013620069186173367863303817962813507375567165537138181423125049187990657151457385839606353706744950646866856673021434201390157362973479429950082769434449688789953590608439655864179689830717022886809935706673166127229890397829916088031431901492429571875289371394836764124694152801209426718262355564854534394788476856552019791963597325144473500339083313978412196333431441171649127420685884885670779369865613717004011359793815567924371967993435456173474246530686834768193901301908781652330839011739747409401156217143156297595863901814599369074325357429402525025550193712883628059464721480518060550720102129822276032463237357914945673075288730863614169529151487026157646617121165252416081038434562986475535428990078215867808221183745667093868047699797277297091314443162590605205586039913049744342584704319072748899025288616914857770797528503059268386999488946721896691782674095940431014645002933540087145532092064680551870770287695874979994176474620563714611297174815716130831812676580564339637566786209622760589620006629607316369377469137703021289762655192465814219129093593747145766894839255495862456384512093776849283031126459031434343674336137413741604915050094249978225640444489054501895715685592417176754516587231542458516168752725130316192840990734300427036990817045259182396708136082395124900488708921298138962041711934040444578049163901092604426137402142838991095960909930482571284915455938517712245559340006961979330942624430946422954424871482184294427832011565344673265645655850793586306015717258735320665332967911096391872370016549430917109125352841082086816263428666840019568976716927458588593280824695976975542234395286581088450157005140605851122939902347037235148889833624565237121703009116474227750948054357877520914585728326656198336408437654752599675348224262161982849261838030829365431052226725747181226596232960438054643121797420480739342336829117286505104772795993691170928975866507783954868177403678307119096266085940143190621591349524252773148840237024958407379711432495265671022230003504392217545101235786090498675586124997582326911807817743421280027359745356020040740905135781774868161383277247116475341672003796984875708620482348917602137677682740319986039322142017121301070245164837156599242158259527345050363870010884010610332602490136745234900489145223268769847963083797115847151784983167194786738283242889746849573413189592735744697313574002318398188218214092493558094208406123521008562859072538620387880408478752573049602191126610941830663470391688942369384489002449019801811463480671427365407471424090549365465807379189977777946816934658576744452358239899839177616172478129283912235803776829567006762832018621663123210543627546058231796082004875973147501573619257834883275101363325305088090716898420931090999740769137984937757844716111350431776450409444722887433803108983712323406226113576061100695356245941278987608255365303028770919796501110796881076197563048416342072673578656657229268405251692822951861173362359632273492420200729730103781159820485626684516573968990941026688655589415732228096432156537481264953204091640689234300886338718262201770496379292918816849077842193355598569244000713269471580378988696492165169327286065936295895194411998443385327725335939415268204006018997366689226240944569063720268896886707364242847827027900078528836051415561015639108068799663438149402142104177535570074408357354522014688144556045579167373606602396136903254957141430106293683509192444346778642919966887680795710592754330619896776356393590112936640000323663809631371400860645785981242780051501967111425593139132005973172786536985057255922623482132635846810543606263249580114081033928471761668489827535672340237530943642170789045176435053488514021797478498227553560424735062043985964689573938174418152588041253161216009430758039373619750654620022228715541856309889167093806554309858769389630922053992389540187580565008042223956757415923890155810965018179801382309352091640410596455353645936447492199985390973008319700325354766271015121070127542579930690141336245837563596075489615058180231604398087336779652001136200593380048978438282962066395011053842406681093528058774158884016838717313989623400014282528137211493589874911645004637914384416507065642343190231357311709788043086012901721018350176427454370296328714588842096853249664932558554836358719045749424804804745516438758796826728382250374924162782898378086247580622178556603981204539414742678633265265150199148652906531966629471063389320021643747375712551606603279579899045263680710101489934544218549283964689734888364128210770827629246375714344322692221542414303571985169835335182808339179481734846062875763603358215266086693110096154984866145420247216083790388134545217988865944346585501979798967468525900432219084165091781774625216888589437767657903981548465023859656744540208141545505915407557618010609813382155448979397491168727351299605008157211393546309575455390597904846276033403194290060821643462871584406657495429834988095231779911954475461356285124112532353628732230663228613286900016136865434400496652030596485103964185162741447725443424280790626158236234797267606473009487604961103410046679622931285096229680158134345897144068929613400656585935976587812729428513224493241703723378186208474968783998732147593032544999869315401531303289295836779418482294787570371667175457667679309777883420217951497603543365189320459655753894774737057199413868468005109741623525693074740133885749961484550349692298215981286462643397231399858396657164547481634586877447619142682167583547731594459318961054023616327393878639269990758286062677151483752914959086825000049927060716233902294706912215762410549884853065900158860514938680510559139986519302089388786128138014433577709393227553116761508559780323594745676936708285394820931436994699846422011167841166334791790920274916701702355426133041283565964686404582721645024813896249787697429353204881152401811044952934853820837578641313898268069201667216240234626328700915664697899413373706347437360763642858254005415140240668799509121136828639785413390408456461614971790967683426195085922954420024366927366296033448634069411162500116494538404960892321038342736903550854589275568061116209549241757351865933336949090563653358889525485716818461054195671627316402731329958012572275618389144260190275236200680146458362266279475073413041473819879892466803393507558954128570057588257078085482007579248152483712857521394128832778901023923804727733476146849862453637525539553743189135294983192976055365693284370159530597721095951445357530906091736334100966288374898946396293055025918205460923431800113225627460809720087884216620147309980323894708444196204189836169928215833098497110277510086863006113861678939812424656757052143574016550011923539020096108133370361573834775602415544364741384650842102321957499244356148095546183841850926398774214724734143207765709529438036005686414877312614493424605436044442914339725495346458192270883806939658037166625685419465279354726421368469018908975543224968061484752299579528226607879064069106735940578752335639362342322478888306687284378980512766623877387784751927005466099476407075525163957240540701659028066115446002057109614811397946661628872477247089033593322169664977820264022709419223214844511440758879085124363774102613019565284522043943315166783319189351941087078182398428272949484477728350320876960933250828110193890823578305378705665917583059278700819413796203107155591621923680759522004742168134679977345798898960352462993359127652462245749363287549330267799480446295080047923291476284812772217746370708058261987449659854049732080793567370832352924169253998173245201371267591179049520937681061944676536175291026515491865975694567528293964994124555427463819512325572560064234541152056917378176093080792347494538469834773988008914739917508054341822962481849290995131079802708417472444346645496815357197126068924809498789589095907948905050193911826173898166432554061067418263765308394006460817499578733880726269400898762616427550527079362217903896702298871577049264911741588324783834230428804981223417040262160146676868008763975738864756496412023176375449019341311345487566024364021452978428562083517201138098666032081235737272800615320560245508581121878005336932639132397286412170218554870915792596078641767786769414623454918133754946640791629777426994939309590362863942779299653543885619272453822245812931417409026940175374614414645517018004473976595090242750623050855758446644848878074242535752907080661996796465705740688895926339299334943594080991209980646875709842923483066794155140913604567022483072132069262436958338760897500218480399013931765075760307908063245937209266225490563618105057577193717152628020594169554717177948502485878345874214334812030756170689732771862215363692445998522863758269298572314819891288663530989450867427110956108512693604053461346520285723098743894947711301769000064285512882336918598924763180879185926031221931531017466228343104342995559759178088030427687316601798107244507587276149572402596295299226729289629638684824533553598381157332464104650243762740912533599692286472328930479049573864229374328448049557929435418403829272721928577678073256731174550081836766630320129466082876932576593989286865289201469523283662227626513302835079523023133453917315896950925589070536591245886351060626391221453893702069649136463849700245864872178556436067800397162827549646100038944882496090863644193662635994213406814350334671051329752525568821120008397365601069013353189225851460681505351130056146026091767155090412205390530737287138581684174620467173563377466096037865590332132718268555829088526455963801047389589990506077355411822718398050706579745255695665123407045345825074308748944810292841514956123839291192609319932586935536399458021622623335043583930956840799623696489815881921871578383056410049427559112075079810135240091700700306903917271546533817239915644238405520812562454690529491302100739057284590381734405312327830702356648323959520566028977896121360853002296762632619169267273909356599246795246546600555581530642157414745977659255813214709704423392878243233998867889583852031436463406228013636458048233507723050304387925012024615025440526004181322841507245056756716092286007560820691479023606977267520055847959734032699110265082753001377891602879297026179216502075906601435412042079849998470551712509168784052321897432654738681455914844151467586851401415435139028650325584399302858954077442109355033868951985721545913668360100791312769893458618991141288413439979723544792818241822720012483355068558834033065096872483635814828556861371683315775079502079016790084815080712479172065520734112638894477305789815219459617586333591381636819137046590425958557119721257062411386560170435766584529337429673454660409271082954111815921569737254618415689648457602615025096489912098754285595762064524262012311064715115818834117847971584215479095034093759697073167656369153512544612800834833557294656617826828530366727267395703800367587320964990222250432417076119550378224073770795962287482812466582246313598182157506195375490768775908531969070548179259105534971139480945800256377723594643864535902105867170628620789295070033091574042669044286413037208427812145402959528663559753317383119332085022525999204416306542461298106193166162203756475775225242622892657172902334718148272130022324213361253092704908917819029987239336017800542834285183944223530888879028778195968322420399118413150349363865146054472402847067559213910047425679625636618325821150351641006860293693808718121793041470974164128245954600128000522012343459090672603052236083791687774140894826977346242055591894668628525904558463852156489918400483034416200079697903925812080296576931549280307642836968027537647975604213703538330962264385637565183486458078217822358346578348999876839238628921938077236372338921808411570153612837719924853660797032771723408305920493711343237002140325850863178742254887715480905912548348779230230129077813803950212218220308742112771287322368454590079232259235070280485439778373273458996978820230186476188651949422158521467377808813995455191153646194472403742840200880833704803717825903084388199990575605170507700742753421700557878840720081631067796626417727509049480027586555005120119105004105045104780184813077475452815888592479693428893954854431174893833888580237998827199791321934074545815493636696615867886988178025033021609643737771314249189195582789365163327785755345774999101291543229346512233331696950412470622881315881383916518975948079773040439830075529196769741739140372404806931563945471469602073755725609225444333345393803850051941678872123650111276802607624345692929696790627945738646598102475608882175459218303953692111857784880686507727067760112707693951615498350759874802723300935240851624745143111043234812126518313041866230241322216768650237924291505375278048058216930451674981071312720205149555169435718513979981965433128009462518553833465247591787939648319331140353274724761823369240397963033505317328647231107889552440630975866389093277418249039933583090241350443549601627693118623904997009481037924475863963308012459447541021218803773275724306091568991022697226521640206862390746916927262616252343228041187454285523581351004450766040744072570401587522555204088729680797900743407755329757166380164287512748949246368805509583965626603635875536062199611079056818360720018766385626813620338088856793932335748849984716825056493428632415083112802427557523062968416476010819339913654328501640259199195589049807271053408298113049357935970174254094717240800975651595553643853538815050755009667742948215393901780728269780048468843314641945942405671697155041310086690110474087350727242905626173475048527103704474161398757488431925160290337755334589407075617235314647665428154344537706399039230751148939825019763670078480053000543223667047876964421935760558824423574385565239127194992535533693836242016455891882839185943527650036956850086933368982067472840352243289057894993164553340351560732994261349229780996281509466160187190613819786783561849892060817788908388983732924260652331559941829340047189256132343518065331648645831287592986916163073478636556055388570524239350274989917229764882547123756693449622108782842817405491053258759259526979559638670995697943240630720111581346185779437750439627357619837574385297284698241273432195580887154988597092681051848765339286432163634652247441539798695129762097378117569621050840950956473998382580476130736095412592051133588465853878665716814504116144776547854893920968184456981253262742623070304710541972071408322402365779181510724323770326779950625015906621431958892224176337466234574810638586875145025382340719712903361301448214538835202823112214823203022091135793560833017522026704559522905887079655328383733563717222356833238278469699185585474149630212396809566239497093648939747304652612616784218250946662969431881245677482484632146417056460375326338744281834060017536734540427761158729087629603347525445170559820919500037292875795494727644540319835411311430243452985684401108351188485068263226855521409995022393580434365333156195840840417015361127571721940417165685516084783600424286998570183146745229898921878821479267447207478752268423953610355113958261304296375834210885898649838195040917960977369700086696666467582894656029952624644400458548799796102022743256200644410681911839395828305405818491855544951632187209093532539064841778771251134021489539028098940107901170847666557191226121566552185634999666068119190171827555938597057615171110021961927523357983859613508821028828584417911127985349254219101110172894319103371200660481368329251525294865736032964502462049667065371704281028279339095860785948816441641241651225123325416382921913178153674034389861059296822528252973233389122692810556755811631067781682805933538842922549083186263132431364439996666458579110346516561506987364192387701555008587382771569813320421310040195191029295208210547745453402838904837168121644632396652988666551144476837451803663452961907727301572261529898930631824143100536816887658444360209791930941412511031060226080262136092916330434750793395257949242494381159502740501646229731414963363296362198297486683979979054143614202941441917064624066637569706800744610338256142108300166553546782237957638713399932105830388869394503440121502563171959629743109666306306802462486073284363772387396934288350889145332962128115887368801123938259836666091026574531994151045761555385453085409521554305427599992278477015250576681843925965620501431262852249787837750798630657098884227058665171069797734985668829272939053198567399368294838903184848576640292409630013853962305148462982794842717237096352055271806733718173505974404617683791812458152775011524781371442793969863694332031309019020355829440556721487350974538756791276498000400133734139182532637782797577774166118546741912963343578171669775141822941280973349891430818449433802552413235103794821267214537378320631552593098110003681988453361979281682438701842959782496853127468473223802842288892273400159047991201246281483908732525034809483802322485712220259797645724947591697623671420111124701555855350561633253898765529579511202549632533027562123169241668467199240429382368381866950671934793522207728511117855132486260970497413304340958903233739772505854342461355713247920637666873485817829052639999346217930686668640603113334725112688389196617973218046091923587127877044366826543252650187865587180382946100167193158570675933461103421990263531701353838307806299889407244497649525513961210824300916550588096290511215665515585504104466219671641142774907613202506569822201907360261317996857799923257131568235501516122301826025601525723436259827656784292120473701070023855602577037954792337699507662748927369330155145015926455221330013788944680182086523623681340198789604498696165971267838234616578057101489104476072093591263853030709720262941063149969945473010118026328899879356391950643068616919511106285218749608951365971334933065007011488964155373525572589512983157148497234379027330337930868655472031966829924391085648652224159926291503058661049396347831238634566333598925050919795157802632160838533686161560516635767014514052675368826472938979196675751102634451109290149381500105734991406217134966660437516879298450658542731179887380876403510345389160252072795453630118885092953328694762917772826302031488371858540689126375039061562245680061572586734885435744405525028623225115518287096875405498780714450645375630298528009291326609847969664275375421709242124293222028637954869671184732179873816085319374239533476661464474129407963493858296985013842694154782546173127328935528633131357524406307508843379794286791922211160060102508534153018856827534736645833129293875500928918669150470024672124514634522089022275990675444282061839873222456038467499857958021338096128642475352505264162634517867520143584692129949575914242925024546307138311395785209430780529247364936561862956647337468001705705107149599809569608160775166118532375015944969444963177748170158184866735977182254745267407405852656703033767913002255609253525375330731247291244900807030013655093868116139321451764935460365591213126934494138343028694443447178277391154336654607288398812604182766459552337025790136405259406030840328032527730984642114482252515055695932084773444632075411950922784147339703894466377719004008107722996062270287923948896971519522541307776222760667784180279957827816708536170028187353460931152825604527603112013272140278757589654769502086873061920584120141776265364363957750995057533354163634710465239606794656590770722281501153337330410739174637948157988906698804711860113522680621446339452096893012386057062599645802886275579093324278249999309276958793391573674369852437868701648395697041269307290292377536840718006712159282819756698978289258991508315633313436149304503972792985821166614666119193589948326565367987516059031099818340468315908719666805058108585830486115003726353024853281244613763460208723390017949178068073236788282529817201063176686544212501826138199564380902028811418700845220754666483071248790277329382556602864875102084427412581285399271907446140141262532553271537730975864152672346452143084904843958353740940812139394786804062413084615718840011273758306421599631580709677980836694859171423514265691210885714335226805938287143448639326015559820297415340478978450915510685009830524965218764442536587983604261084475604215744563980064495759231707021053571671497995695426150836803581409211101746368507501343766348362054413757694882814917659149518706788329484293875940979942449772502407468598171151648667495766601588817578503036277417224758921238005851288111631934582891694270484065278955141970614609386447895566156005718654566825762321789885807812497669676175567293382501841528618235184345266428789695543677293918830630173331096209923384476965002996051427047480119322514055210686991649401652079338919263053929352548465974452675704039923432803831966116186600756601151557976308142250366921736443103627320603715634800995334950557813011409978347556713298076652844357005100847530590316498602536919257852918159876350132946876712181636469838500941837489647272050915719488698446667881555184174211833867190842947641353444904926633264918327896819502618343268285290052126607848379133582300298947895725786710851554846539351689068696728659760416936356524297119212651018246186921452670776188704486985327476280429411952087741571870625790402794753553020446085651323460770220764218557947930533654800467805162494174777552911530049619480838829358198604651283975328714852513762009886360473220510598578263231949784072522059028603900722830305830199800875647296093987051197134244786350825929958275999512744312184219002368207954275401225646945280161250597977282675351977907645255653587183487056777581238603661830541418692151092766196493667850379610812511151116129528639506853495548466444136277043942285071482483944227379856002536448005612467278007671885833394811022189964471138298482263047096745127100206774671746967634749045459026458191157153710118600250445273888991620793887918352153392713803466935158118496611149009761977850912750995545186264991592065412925375505552167575254172953985706655753102438018380593897972360607525045692612876331660754992794668934052423417851582223164421532634626176019905145754357552646499925292245973457509690064171084703467419829163825388256456918404106606048185208626005030824579534289239853378670213898636711378222812323372589961771554084737838896822226696575590786165904567406623780270320913362718976249088886458297085103769555757665146682201522226023692151079227244495049125806115707343966190099101247307439868482619133876076873253118701340696522531839358575536583497679169607011836682805969579740340526550274918223194019388659177571380291063017987684926719896535990912093931493506576839744214858895945191329495164174044552495770265324603998458037527982213023382251373368250584119972739467447456037851355187423414376769090675986234026561413300041864566685230626924389496095609034038001954658297827349753763350907053085274414022575035488999075109494530343770373690939951214477423703513913924747326189943326782466497691864976665062420488768850268980890511473495956904633259482117087748832459992048753831403884195964177733858803371077562248073924323758640502797304928363691213643946966331781910989074841985641666809420969623714403091755944661161057452215591709724056558195323474602554806098901665925186868475269697331125781668442258538134335563521070965031072943337395925099655660479832603038807677800738739148677808761125081031269786523663653465716329792845940971962071252710971304189655658144123301109458316949354136314172699711269332803003258683120313067149636577358353772429435269872944598728181550786202860015942464220063678166056042061269996033666187254939658676399015982278185263682585640439821522611341046848172516761891648698652813529588824472347629826932271250887749289825492831327610187680820653979105423835189306000437394361503974689871100526466746376679694708264043304750750224262840719598743943524397860542948995226886102686753262115311499576701582039797794793646657641184983510912042995950657713151330517969802596776769271454284405746109491963658406065989084774053530777336548550948433330181713757476652701807195923470659208307339700639723566044934654139287419454037475483632328309927498841487999079486513254210964745764118484597185960295580391575406124105072639270546887375994409460594555076052144493949266413756856261050473679017599085653326122618115178117842485979079288852475808165193415921291545222059547101814638523912874580658789061325262918379393035098719743646097219962646380044981393808485794707732095278762599385102630666092279800265939398008440035628209398692744247136512462087167642373679692799117223705208935851613277584617741755084599679670115400255252251231727338622575392535254389512205915860058994597511206965411305015183932207652145239033740684697181919384885661875000235439245097546748697815588647781741924047878565818168168916958437540196485707824169560634402286449519895435348463152120407656783200504711428822265258982378867121163042546478690015037649193098436539168291585969497163250974438777512158515696201475617917718162551958371090124804159392382573843534563430791919530614497800460355858128795986127308466841323332916317020182147395726022394345238417404899625049381788151019506504576543465827170668126150217584339108705220124040617965691910683150200708410013503453048625799202120098593755003840562511470348771412855521354963709760697629401993495034154199751476302105720949745127834862193607275957378445815356129631935327412053255554550328732299136825350847304921743441970464256931684875721887753267429708508279115175179912072717439678006935382543335678286532550526550140599454314008694773135723627404732228002149971021315707067757619366390143919590556607523937179904873659099853461493335664928220639062393460700789963872398863380129407320236290823824592674303578033103151045121156739619852234077275533914489538674951787120371862983511251026347527517998826235033740506967003718021543420482483259544837410171804539801048508063210008890835912351315740764230346742060737629943239223352710896701896254344032222099790200345279073914200737745946204164461829655895641876768361495417211665663169170420553225421685770778067769305925886689860832398189804755293801335615213323232018074609076975894094997324060534234944087585080958740809196389106015341932063015379545584446323568498010395809697073546249003011470903568008414039767453710970788469637241375136350109123216600362724749465901066861547323975394352778263610391571493916769907219268916546395528266626689337892839201901531911540479154814599622850774527753125140995203183768909588407772770215839647491529169648461549713425781109869251497783356532325719608673325669334449031493268723077859344034246527889607032919238225288570634020715590657729126727376633604819766790776621377002057857380267752099482882899473228628756429092950331033047704670461724917195560142197933945481805863503687167749544684665678778692930346031422017851622090665884778755177838868625776965853135780190498130165372189909024542172421296541410994238107837461539807356751219026058647180432266149460057469749801095678671656456016221862168658885245243317903917686601231169641063218224422184076886083118955333721327871335628298792007918260039932391309218946619387674777870121895234589154826107950493596812655407163988526839840705751301974906157598281978144545858454034398727211963591685716129152688394535630184655513479744322357579959891113706309377112863183931484602275455937459946605618509046101927490026856314989405774035630830949340800580577770989228360493647668836315976659595040998469262934502831640742135896148040224305663071501569115833951643967784482190592481787013830669719291027384353325070479989934781216798291801732907134242800673429666557643333522349036042213121481978220786784547876475762308862278540669152854822223713455141826929356365110902419837217481747979849170821935544060910889350463990219512695842341442905685525011553853673242297539685145530906560566791633406427704088443778338629281286943829095253868930622435099900207527382856304132521307069424633591886122499448545973339809965928272122322952399108987485565660638418263587507757903624045883626746503110194791787093654165033641011937426550812842641283090327143063517358345845352271911701085520606591497112775884064952911036162351139329934360410827528049851386096259454958963978996993030833185181831016604003811247594421718087781381964516133004483361843914853621142957730221851974899929820284047093506844284965850426786518025496243930294957513290856815181667048021447716773764955382527135883206101618311001263773881321053846757272947799905028085165686426661263779587660916464149774663590260643782738976410225814702986703018760920746364383733726633941914737809655212788030079915143828543659345905030543331623532659938670708110515703725575947405185916530324349196480371215682926539218970962858198916338880412358213140776660006542623768857462287322704338467465673102582593069681694226166454854067256724569612513627775664075831308130636314203411273548533027576187418604063005014493543698945134725260150550803511695150342159319195492480167287604550090839779941089088701330444131799907460807067035696579999078247214351215618482880173658782536913940210246012699158418777550538693552417276753862350392653512559745916510594671071290880382721978665605656137074803471183110854369019066748235790355613297823742417767456384232544551715947827422814024310315580969805210203478664641419878165846879315345004276533792074517200727263865682084841361921383163776223906450211777556706248568394655674174801874470586232004425452484507555896206926240080571504246173720085211249596651131034256554451720582919808425622499829714509519330097578622639195556928580723357056668975300966898965333270735729589305387949729987991771328587310492543213688030207500018324413608177262735769349144730156757843161376505728473176232279843678487479690930088690338278716933287420755058804542783753139300626773782582141016663297928713157502529865704957530289807225064336215330365367203885360737129441678942569523744815666881925122144157174187681269063543346018926195544853003910920565119570141361146323715085642635028065702652665098624695941105351483077107420618925844120366483736101111997677030221108198463135958409549461083923220530899764579416171549144100263184408540997171499709582549674162346514071209545144246154775423926843219159760193347080860515857420429410296173032308435696458906709470268503134175232306499211989910416534580493967781682330331367085600456448269192946089864290445434788188297857753445926025397970708954877390441681969391981648823969434225835150292234953642963577799591637761363010316266429295505294089632453127761276303782563563220927204422916381071715045769527214786763388998936184722644362412056734799651706314793792766821372448345707855556241862009111120803259966010288797121489743583414387493578049939461208222159130196928318797462613526552122989997523581138865986456289785604932589796537644108525768902058839954974780574363561718772624344127772802736674950058707032698382794542474513935106788138471024311282652750148360367523111744970993314455596671129193869852596415179426244354974616183612603487000729612991371913178225325143699036164633714472227760150398572787565507354820029712198133720149629416876855691369630407314931528086823129450495931593949781789079837168320891797492563293097521367296872132854052783691891935102216983774046273986249942940818375376462781499488518621062127869115840592451274232191907237919146221234168122608326491437894472688334717167087086555025177695820087682212922702116667243557957291570582712722361200255655169193731625464842865282991509389757327679482103769242935330627128319969892425768514634019264507414472162387344958861684568324831177115193666725038346092873132369556139132600735226294552620534455459189665828214111151641881247014240858367867340586674334773736149347736373377712547290722775877112843043767323171275049807458640944335087874659263301389347806602592983688822932079246097625245098934917377449375856073877459876099347117532760271891604399666341246644860164337735633651781122633565205847978060340785316406151099935578992894374385338009445423883037453590054566015986815923425198486162740770807580751759479343287379087370211281065671595759016097968611992192258156664789216010784686844469461375103077618381365364655827940502402541643974371621917204889766488764718708786299255343186080367659546241061533061861491624949694016842656909960061838545555755400970805961625674200324671376080393566294893491929511774193730621877121347251676110779078181072066039853616578695765986032998038340175490848161736708411475097938632257822874551443788354962325319044495467751825946818558485477798259283468961679543887926015763257639459839328283198231216990163398637419845330353755101117683348848651961688228002913641116637622580017419905225973022344604120278866629185051706938451812265624398384917553530148431483969367743724838250717661587011721548194435144165294367631739095468024728467231780434538302120857051795676099024005049108822629638985787143971906499157265867036704765444037564030054624159074730559800844922884786209951555106914841759990147897836809979145458241498418657753901295840023935305089169857399535866138611520457274796778277381008756088935159605695856881000171994041391351730749201556014104745224950691266970370893040218396287896094058969112112659881782931938048281588395001639734351684226528203785475911005523644563994421752492356685112713466367738651289645670960842619428279635903879304865816870725325268385872945867785653624267279298052737429420472211087395104901785965183211841611309027422553314412603265139607760373641205354949920602345935027275952145136402950745886745158315360531887669704651818441316105380097098472275041240370276144202199498575552001541895193924892534100500550770354682651698367227676178677453112665691582762255172211913463010730292375913014986212466355777405196745946567655625173231597591657488724617199685398847138917769442248319241412521293552080563967936178646849207838210066061208286961575649953419203791134284665111218678649438105611015639338172056508488420981747006786815261167945078621887358817771224405822607143420312789636002244079595299819689985152385425273174999613161166695105734599224360072135493214789186632016356185707997251626024461397999549510755198368529960540821584812779432574893010315987799859962818040448895651040957993970614109077852861619270459330908592783961713445406882394217448113627240424918432644754705242758055234813604580929095884469599693483790195272450559929032752638741985772392510387882025272758629606276190731814574540917582544826083018133896183118986422317469513937921192341242905334833859837969158345086060920285246627921259260760890695744962599114122110602175820516336090943405124665355648223798828535571433006561635269235934279508573301464301044484350584028693839143548746879155796168759556734029075829014947983056056737017649715589365310434182482244441055594673771163478653981590839902557574202369768599163833111980393036103860423890215339622517730629709212929777053380443703147544120259648870475367909068294944563963602926660518905751818797066682089848805547361556055624689256414802985870926299479538526874109391538125030652463755843226013148246591055807627627051313926334942250836914386583157255078112638206213129969131277784430543045048336582282507348798949861325044019126176136276296443052393450498067260603808909613785373037350958586475732026266388123044698125756983637046403917432996826404528057190715862543108131462943871559835214178206346319068171762871807835385629999387851942395283108768461264285793387485243324790047312830166585321420051051717200808183509958730100850134330471980954778765670769034706303526962502866430176434341933705893970607227955544494850918370491164805743716075650049607790931107451501160772956414633553535558540355124697642025910440388541608466551817612588435646396111930601784020728632693333835084615756356292578559428707859845764325041872237458842270907370619126929118297935147535508864302384620962337089706415288705807502468564429745773455631250574642513426390689131989762917801072442735405548858495873071851223501438994513216990249518298978513311935715050828887889133218422146914009447112776805524311226255479991256727201593376253092965125119372687582014789761878302377631675348862789301702442378319331086031132763064760770670096606912009255244088675839605961187638962669589298119840707791661226940278898928842613991606018121688217936163018045785938049124200233399710769576201640924296349657114068500651828270296993173823085965391866371902261696872259697485457095632576460824378553802673943388394644917012937194380335963758637592891069831939374121174803779543062995544136707683432774729760292877903547801630563524992801334578819318909016329795016277733122059322332108858769398046489133463165769501495303365566980157207263191101351693476759598015893815320027554836475618175851144427957449441909878388571656424221458638172456775063643111075917736361355934396629431494328081853002260423835556722810975538278113722956108638853879414637361531735693349818345873001045473889721373938009951078953118383422300837788664725436502320341287242860927825290543189046130354507467591718722888209786074248834783317023064482612296707831318475204775018738259610827412091053135207883700044349117119396864487346456228107558314193607971266222901497170522556613235108225774002407831076468345186213040854707365370528076608350700822100988595847153199481582866265224756075257563388496459543746245152392540406633791589103637090370900388677883840403234331505332101439035776509336859667039495659905900920025942470719517833206415842258889728005344520940296663178681023056932816967987052625199707061872868937102856320115452695638978072351698992949857789152142993774226350785109887982044789386173564669374786034835218896248539049021426178694829962327637875175626484623503481371689314619510743532083537156119220342018453787383894926507502515211642191356248140202684379473637018257656881581966841656790845698243940592419430900851705816097445830615479346161187598345409276342126853441588725659803832284773895326425092512952980796576574930510824726950235566102775565035488547108462817470624996229221035832148645913253748662160759939091734195814919268928450319351820100619315281445614246957510275788553405220204622462905527272414884814986578853855963825706206460190812185853801976189182791503829258132196272369251133548755244000173796451502712561947848700582930923276757757104560220623376841533149324405004558111496312921605503864578369508539195876101066813015584965538767549651261571288266762581992411124197333845339150325913354824893444189657358355406050120571136107833657503495782519918790109434421734136918544867450939523631329397390649402567659270983395370839335865047698202287179759851123995711623720910315150313572468241816095745945550121732641837210470907009968939956815138444486391777262805995787305950631323473803215831264877233318504431423503653993359228256057992279815532504714415190624715982933325229189241144590636868740603291940036728492053935562071862928362081388755313095508846105868904342057663119505434186153465554211653557660015972643285417015172027162060599007389159284742770675304325760826407786230443164666645832199867956550650172723679885238302184082190706448430592900848480733975238510476065068838211280703469526302080402211087177304307804725254883233194223256742372044507206040108284222375583342794154010527618361399047334175261918449157912535829659492002845671139842944815940328731997403368008935922828311129245482076794569103222335558720525671555425576034609377578389047357093915037924688848662696792987488775445863895923470401868708108712393596692284783611010980209786484637986132157172368091079279950490046600885376636895173404057318593996994104368371174546869989749749661733102148778047391292857959110851061306758086970075312885353205370644528970518820886283972355412644936822112899157923672919861084763625092353297888992380969225303741757369435401419063397495411629133035492467974162528333406008143552612994028673264080007435718056959398000266736393202678157331519448999305442921710226768006655016420114691702913039008338103884773531438977701964865389637345619368008575466948733392803508159276815840792109996488305996565265090438048343325724034418750279694178533494735142975888547923069668314561897055163890316448131528184908342640489996471441285743185287420651000651066252768874831754739236135497972774577327971156278378485976542284623645940612278941581162690972831336918043973238830358545061506983616119229049138792749516595723815813459019881885436457873914324488969417871403094298956941135554873911329839067736651861091785751653929910869570044775926475333056684413214607223221162614599852754018785147999119340612244432558396707002982923867238674939970563718127695062084243614720310848353623647952957785371841999971620367742936294912739515071935320117090796238887971466564588257701048103515337234457848969825280622529589762877780806651810880954731126132219383371472125678660238562590585606888929339653668014592225047428293385313848109700247462997873493321799320701938516825451584348478709410830370869414621851548577281840428552957413104545154590028520036221031013932529021937057111300156139598843844535838017333865575349441227310934574889245066022261557722956493925797674521966054289998007744889591857193670306902051789393529760330557485965503721797347777715898437334796433895472512703787976655459961489933648517211984787107973412819294272539255597884883004047896504672422687956573841386741926355851040821249309943636111015790568476054426981506324239696900210618826687100741588455177811201739296520512677782321474812600461332628134242255365824284490094561665801740925447328260279960523709403416048481464018251671998429049938882296980110016145450256233792008818167587815119909225450910161170212446686055925880604595915946424037773697002022627204232681230991042376557574868067203715934642526246366386702691557506787032644790216757384454675898116484315802338365210404367940589063733003854751019096331741100716917974491131838107075197473855885856530354163323162299302633551745086171076696169432953840757857514058554381626054129338576581237497229098392329129693676676097160488532812504245226585479649161142725214057786004248057925545844555350123035496133961070983812363689089986410124681485377137112026210699347537713254292642036942928854219689494954850873787682531031638633472619134579045877785758714716159096020512479217141907967146757148521775298074895788334041800486748228399483226440534016745199826426142507813067383508674404813567780877607877092959684064167352149684248825772224110271533918887997980050245882995289204680236347337405124837255496016459417951220414520267520493748230682107678856919361397096206090995900148352719574666327564660897045885868328392671868976572995997076931029444891412073033068907907929543664088174987750978273954735255289596277617039733547945786547039668308283097922400104672307783720090447803310753581030165281407946277143446968337407787847061972420650050073544930633286867542140647369044420620512840657575703759454033816389084313087655892094346570974134847966941261661797867797868548606736946181718141420123678030981250345314995443311708392214635819792712306548566066450961413067516298651261647999124416021077689557877187785114749048568096356143652714198620516887230577964594255955752999096349933111307733345174568954267163383487272433734234718595127452639489929264123113962684835206247005877574777715746104560784364176497531909050663798877773597060323425624805670426450647665859652525762327649913867430164912442855159907910639359297152460274206593859249340062566602225302845009917104142680123702421295885483482123331474520821078980308996104200886851119977174313375064118635585069733948180353633732411886088841112321699148779646462830502981796057926955585077901436458041680270653950546568895802257282152234789866310870497700081217864451317741882189187172866978750258867653932674468369298600793614539757891034908098157223502658191106479918670650680834951478343114786846699161810905338363477215413000678737527415743977416223995246689535172749154831135980514054888014795781196783353710836348638106578603831211210562352513741156255172720033853575234068537145477464819257634257252536232464238463984632405416801948266516062860474469873758311871526810521686356247158825900780221519749083576811330265372556027203295824133424411072120099868159584369769558733607534564015540288745182228913472772476521950396460220123928282119685929505559767470600720031074867284973757553727820922477859419095614466213946667255047337587837327313364163781257491451041819487692730515720101361982143298721685974396908810854131954761121257692718187901379733866061496064735881851247025255541753723209132804223379939576151051117612434648232287334665344751481968827046693393536106005576227183167836022528445964689086065063109328858597864672942107607349953721020136743892329377822801265716098414587047336349630617471423909893835838757006578258875503692850968201479106560521881131730838243019887158386680419183665775649730278650026349561421459780617249182578953502565327687536023689027840985761108014477549805015840009642303994758929736144996039747632893655073106980194709156710105635433798279389020936751089745132702875837164407168498035793177263428635716962455001838280748054170192987319594261168002184725337943182983241548036782298214927333234914101356919976576591343417763716533369226810701559708308468710009412687088657998087221382135440997844149765208254059868473845660015823103487757166000595805381275589620717517967099667731809602763355201669917322936618329339361425324517121912429627073193785979351641726082558468151539700639592495091227944550144196199230917185072717375556476301936973329065739421315897671685748752613902655925177820800057602504110540559039504428450048184921245468459398852980097587204055570174763252998996157695909544584067819621176461651758034958647426350152858357479522180753119592810967471205599345742692154083454699156671811467703736800792318570779493788167879040437872013455733980526686644172475763249603582606034027152911959879601965180239429566727186467186589909336541098134050648953748110993136360324770395159387345779655428526114028884528151429419376147452295971714442958171302918540470360508279702530224354504724113254907394825351268035862385578325123372988602520793481922887704696607516402875711641395287538724657541839654380742310158281904593147135385923082630383321503877703322386105604211877803225830541211057377971394492509780337097537624953389684904397897350124271422677334367484611629939738590701030588864594798617579781710472766374529853986421558603985856212608498400776330342211739773589546399533574443942683603289103347204482009083309383285582425016828573838327581378758703132827294609366511168063760166448936509663366080115992384198861674744047535537514366975593583173263032048293621289571576967620689529165143676860340359418148636561515280008220192686725291887293479639895839746117040776058111601508180732342030133091287464854284192062827850929722286734796360870813986681801272544934287653196541329515791226920706902763160642425058795149548266770082567418859175751872864442654722332989202781691088928805814144209168592686255453182370599319890251222294853509968873743943816954852936925118876330806062509965957121940902579272906954727338857187039836957948610400355583519885266125692873145970545702607072415152686157350782873029524043932975288365549389534977397904833316728656369123724038898155234371856016808457841473225231490839240658281275872799456910671839881498682249677556624293700941693966048631917896995505113671012539426395717166502279569995070060194243739145494150537661657356593781888326489051515286864541168958410983763158437993727263641431213490213861299599486294797993371119780190952488966438767552989324888941777515851236808006268329745242093483188249415924868567967564874734766468007138311545656777464143739144744517483738810095524527049579556373255879716642413557891732398369562939359412878423005419466557737992629696684524635023510105530660584821236378086042238898144736120691594313864711972384063358890000026551948791627884412373586413297937378428008296628780244772577339682714541253186988161749301523935856267747543682560247833426991390560767419655750613572420940784929982970784849771498357477212922047904150974792166967273198173273578068163376539224029777515268473623368901241778847946011149816302204035622863744727160860280981072831395481486516192257051071584538966455295267392161525182083432424891319277517601300884575107373234832724486683798533807241468633164128502148605088994341240190580624400784610305313169558825287917871739796444402740995927511365816432460471712664860319362520263826909875704561624644099440469006210111138612285996135471041570179369834648589711498160109402900121695259777104379509629713013601662247189738000717790104037965061478793438690487272035977913996454148760181071718962449573193123558965485662653028600464425135906816314254481014587541149139921185251960379065048728858546030960234888880618378660279175334779880113247805727639501285039209761103419966670593210688135760957646771246668890284212009957103888888514402308418183822932069075085720730433841192585033788719195364915307176560688225136086165594195248291746340898288663292946546570239203317242526194906303937520523042387737375409458029827294152586808484398624107202989076226435917694427116465866133300168415390737728422204749684287941565098618270687552128194039315157824387939983850473207863210565890677330354022432612627066316412896615657222785439057597463675011949208539800495056162401474593247006626538791058563637596105194015276642661918605720629117502310268940805900962329724893826901522805159620967715234392767993606136431830232467133868434004879836179268526985746497204050787046551185685544259679093576070407060419007204440471917770405857488740019748869545176108435744071539104505525803173049110442218942128694067478891054487116181807086353234500615481261051172286861259172294382445287798972066976558758769277205297977001127646952598814611413068083117337466242537634878631387302444509252141262201241717938053860138265843171451544511201580599620238819622724950414052599083467056126484906995711389769579324872956326504102075603780556379489294526667374697583716727923730532482640219739327439665268220873960333074671685211779909126281354812896536967452163511641284506724040161355776002652696086482067569841954132877821356030380776647125950580785138960079150478952518736841246588680005962957456894893957926326195009853675286646920811900006555435588217365833934063032064516667162953179457105983787727689758647888013019560779698268983507052661177885003365546791526328155161751093322753357735685571444231674997902888736268256316545246450821456291277519172842494447463791833205754657138942016425555312696412583257852076442864408432242481163078640518954841093238143056521150672826117553895113579638178146004325581955350737995311535173186604483630333325984507966206373358537180689257299615076210420793758560182127685065313092230198957932681313684817537887437996285868406850269892247574246871396811009406972996095574245465911532670728699534947681587059028553303734845959164377959840017456238922902695941571045887612233405362817444220858682805998560923934544137876288777292087864006089316915181224864733354412321052549317334629401717822629074066086506959621719158729753421936119753063015308241708359759120268718019136002149766062116389620218858305871536441491937227918905410532457268573361016044218644910284770044443047569352510300419213384238689229058620218012809476268545825881061387290599070142255933467146993090192143440000900830516656741101192509621028054092724964859032806149225580665251360328992298381472407339524517834281152820243859145228849009616228944155687042171608334306864482259406033984474544409605154306116265872768103626562388489903458978685151822076042702498953934001632824634045839516926775648132295482178169616035240994696370359657104022435680744275718710968842583414691821416930358375742916033445397400453060387914668148535930383334682699265880616106451834180695938554803091548395635398161777838974831641977904281447479006130669808736212444418979606055595108199435270216265180014376036999051839553711775581205802729633961534667134769584897339171775317545931617773153611617144614983685232792865619225231935016874843367339876879101146683324096628146206034904871762329596288132076650862084103805015283173346579185910411081340292204060428613629468384384116461947017323970984433076951461877619423670837080801813035690869068806971367647127993684862030703770937397013743617658973845311716750213154422783594280861833892180122006713627679340236805562177808271200684146231525832007130875724328494902510721751388930179712048501205791863398771874035452000507746919319164198938750646589318241210485762561487772993004338642836768578246684924092076465481596009364152033119348345524290951328395841432610271106146526195401580926159643655212268485676148631549354455752130112280850009787317018204676611401066456763653257434834381255863526218905795754350374559904139116804742765103903369949984109052430420066038065955913482997091189263304287474142510367528441028427688321910935287535793425923602097932284364692777589317630033821460611628866276098479891353314328210649412886370128257213713917805362490234142883484329418693726769812935675858382935911227806529170871662942836385081340831327811368127002790937057534635694281339956994359555192612876346945649771343104424219263659755139859584808977611204329619438264671177333022452468477035014439958074123183489710261136132745811294342275896391318405056870400625663194499274432566947890612119807906917041350739052601444639352784381440839412036146678492886831805556938102146642785723690367405592994223374617270289702908605138806788836169755286306267131652103137390876923000866760086216368747208220968204619204226819908750759240593146046596906786361608963351906952626897905686168958437520934549345565363576756308377214611440329018487852602903455393922836580832255656435400957251434322473882493337230341100067476165431575997103010462328965179984386073588691327995517355517844337994569822492383506221241925741709252658791986838210579362983912957697504970983442564504423131143485132828560128049285908531146911540980547399446965024878635649612069009762409382879365089694824766433549070404860072658161854315841193712333281635125114104740753521563107257783681006528809162727719140215991543369345044699760509080619628242881022529973965218922519223414507040752818738378723998806302792856704701133067771797402208560933670876956680056718586980658690981340995233476363276690939484298552251078831553476676835394815892061855970768123535990527508617042473090466113197735834541688020037472434398537428758939787446835976568902808002337732755653881988242019550045762334966339146458961663781972624466934103839818988956450231660454137938658963915892354498629220751906546873765004189689926077240491346953509277572682478993786642986852830394579005527297172392958180842413097929110566060765125408293945559608180369656400466531495475595623726699201102345207083647010428485600690374513841638907500301099577109649834503068338647692375464720679289726465611342288187934866494997972271721273701142043635269615147940444146287402804832382307691277960882900006226187648301694007371145380690852815844415490884907305526324897131579756492034692934099443784748218345988552249177562951077078019300950046725205640789428172320466869183001587027024036785027276871235650063513607293711739784333172414480879872607954429559244139926496056733577127873509968854222236634099730801984317972102563090780651342363489156642793805692299280708895514761768197957826668920987176030055668333375654003047545751377454822354502469565303687574559719760643183268277810547512421891831053620416236430126733593753886158125581890674097555246647306715888318535525822392776777395214437318101427811319537417887376904773748886679245716402586973888857487289134066629347636186617141454959918543640631257761420355275688610923031048207833887166538695528963181280466867877730325315112020224463695268130759896667502030307655187677066754891674699364915378277914396800363480479017393632365686187892382922273279498318759639130412000750145518566300901669607295274309349997874098335934427903682923821877594404807717953359557381618956209401162844819782904408432584331464228263462158640806333585467175298011290736842138191177693883655647529371758968046482753095353158864741447194121176567315186638527839595360363940125284381271062570844710625918975684752011497557459556488076412118556262544936814132825971535400880192522099114824344518262830193006496821260771797159557344890235901928189943771605588219678550414014378983797202572771001403167504195416636158693157995949779620141686473731209938648746876305739669727685406044528942856319344109183854542818360375774068497708786028093263156877428304487509424662148546258158555313772109608105294467892183549585366296172388323290936599518569698536468798188245575457212880067053975281597314420726747627503774960296724901588071742779117300328301160489490541524823006799870714082733640417555958527853388107453566558354140806396805549041407567523275683297685866642395597524899362367366809704658331273189934346166506109315774200732915988695661748034817215867621512643636934038297583242169822482884567946174921336766993928422006338571568917022851345522207790583025909721287355466283559626258054981883491665504511537147897591089252032498242365755986950486019844414643716995236849611106507360696939437748895781928834164186443807854645103046757592895830269102514886276065141520646665922832013021858414859751501917826540923353472497529801447291374840697968462969161966287492339742175287949194436025950395237215105318483345443210056995308396253416318138221144591483841373078537803390478529388561395688219954505720506559648275742040490592709485562446208075376812494527172213877072395297698460953050893872899362147695065154150017123639826991655504742758710464792794180385867115389948750677600492039367892061288027883212483495854483274402100531334705487194518270845409488251081640098712049043428818146425061529750568881791415965966515563698992489281429558278657632240202543402391881486193758989576328192121503238494187470468785618417282275164138864594573736769351094644794994724804230591353230244769418148339999622963061832248295476943575746672268591753497369486737946009502653588469777902093586242334589675276744095887092562337196961869552934374088738667959312058887989015260100126986394286685188709955043304457520631470198648379145323915613576928556765409173797075307126231677920226922548487098461264152766332677422487091795666440472398442885118643561419971747178794248205308110794776888192884509778816042338212873259464228535809801442441240967656549243346632399754163634306192731635913034681749025145131615112088255023310752976478964877246199161411597767752970866417320865619073764167846820911938667950893515895255631088240798919191259306199749857255044451523211482945578070418499005991851358075465332594510330989954609376149483756582231251749552860246746719694210579351058475293442286088835370616911703950398784619881940457715861610012141336578846370688047860331928707379862840789340677086481756756008750510426573505490766817698288211644615142507613038714713003883270634518786072264339697164294805587613839996758867349867247286502657843910137649753857206587564766999696087602646005930547082269359745632218573703737582904567595014833252255463648505069233383558994711571575253107123989610996553664231110066312755051774548974962355640953801575300447841078212109926652353091847964247342141232350480062309686919932442614196225381649988902180059352266668373557241438820352240925596779027097833790210028199997631562585843990497005582422556782248315389009173585162855226911890429183534062522110113763039730767422817209875036239394423162541322112621408828878566527300736007012666731416865980170602903419381381006342813727576657655530243345603833964988480935134866269831496148830680787996233946374478714907591644287727278375119029609088182792851660432420731387576011068922670726118065064845943776837215690476446877213665767079294462640016482041030850709600646830876227681670144886919591240932410615982018724773498808874320333912236895510480942076199404415213665585122833588290164624849346649103417613690555457889763592454180766606678508528358919883394199589299909432183373533833601429892112876150835353005434993380654791821076617789045345805101712529318674039826136490218794433079836311542981214935577538989052799540307835590873594214647137278477795033921484060965438128032452948103052470486395725367185073507241387901077723059415766139372910097313039877588027366910343303636870842730559467918496141580696732651717848202997916599953543931013062664198474028688657614423754702892256015110005178345031785477554472328383849567679770577089007637138466854912010234121190865375155595676635460650136336213572359498611838798903002945492538867032005192654738469743697949742091629952195531894777030713546330117245331326739563588280932916697357425595365494716299101659299259629693490337766358211149298256242027942122944862267427853439121948508427853694192345101690893791076107523341966990736025136158594990338181626072424472108970007725667355109856734041717272416513094182876038866060761779954067669013269748411777972747099685362384290634685384343797772404070130981043767578294500598009718723761057195211410042468984847993301817844481311382383154817510914574142626690123480167331423992069979490130838607381725812536427672920674496877840374646082463404708842160761387528519431026848244772508479352502241724225564748845916475180719103150786575205089095392951635185587970101225256005661908139441121159809582091622610220711858690957903743675269624451112208616843855871067763197212401235004861625573953359861975242948416459057935565357712381627295030829019888907055784596656487159900645124570636946078753480776063320959069074684612270869063642611262773305686948170914862977860854304351655079913637239561343657899835467803410125417316898920113102691166008792337727736052563994919041090051734368504969962346460324802579301803789437498372890525051769656853772402350473842528604483311418621929030413059176043840106764842766707284577269869410301959227822643548741293002759641478746721989744752241993994529907159664855454853462136304577528290457750623539276929970215606710982602775360726317349911146900539901805394852632136697462179209212439045348050502229133437294609233968732470294452863882560459576763268842925638693276461264667858378823814865359881770700655292447152014925291174887412569045153351127731328999674324976386797407356681358808738575523083472286694666647013830477329644000845722045955897064290155581821543119013866812135847395213544775016397340163072582757393073813279860443748890307362629770463746058904974143065535306625915067162767947533283114170183282102927149559241325737068973773200746143038173608288541490607826771183845754181531896286726132609694568243381082535851028414986934072232156159725431557959710394279821500619563712523135980224195736384263928317767738249384463699401588864780933362555191990875031851193215931094817786598607874160834534680274137896501758841680438064163849574377038706919216335073709605001153103016101407836078344826246186786969825112763939732489463226204126457262448931753136475164411196495453462235443045201343949189240810674179165107565817378955259809676732147938061543212869034917929176825530950840711533639969654533150051637899210035575742480809839506570666894160817224739619790355960876623089260999963198923074633565666448255006456929449022783722872655179406882095879156337977828039193111160896900337195092885026973318533123184771340551588650292276371941860948387766570817495936748907648278626467837775474524710858513516629080494291265009936309645511873811639104466043053097543244760680605313830593073625805101764277702475658185383737633986952864736877784596913614241886364126160152636216080703203566431975340138412833088237473722775493763978369119754935816007070282092860851357789623452751468697927172684400924766463190143323193934472611372953051285898184307711760125183147939104588747957052636033929529976574028693914976261176186207562956557670624632273000510100853690950754686303344672032019562834121922018602323517717899764164761423932951202122051780869456312304631175708211604034914593184131993351930854620803838057895415036700038409718101013783456167612408344470368423192455809510076135683792032585140744119950901156226159151915110681263628299996355230359985199306386056197919234918831161292833362738546402603671732423424305280489833617747083335062087424382748403236496320337877711666839654191080424600076371668259861177384879965200161958672054910043320217347400142896773284717590064862138323545475636689847099389675448665257472579437028582824736508114484935500959828148737531810415315477388889477993547153871793732851410579222984176874425554833580616429198388833605768492984514431917264175465163669472773194370667833394922950204762994630637386870993859888859107797813958019353484905846567869880350754255382023240360026433598980710391037430774263886726492700445153316767779674859800174292279784367490504542563504633280099683520007709424105736847626393937088239063610748661182849842835896560757011901997950490493997644765438695410331307362517290666290825146486183391753326728210801875097052674674046544475756095287234997265824235801250674895849391801967476345630678118738685526373578339014259513129743255961420702338296517315028193443277076536272543533068117109124367840417497986521409242858152473080722496015339868290076147631246155836952526806963168033916417787150368113361737694889465502714714096943593055619408589180032253630198783978654352275880870618184359489498531714736580686068079283851022551134508514314258691635162589003296753970975869690523211343954771277645759724665212561035434164272028826140610792358938704553553079875418333908896137354521515862520431927250550151292605835647645230422820858802826292366523444066400926990225729340732661607001872705146559868919457077193364105213489638003655204139503412946684367540026134423954751074657606304689870701885859914055271217959553814250381648309088412320427007906967743002327784862335263957771414600897400350694307868168264204756186585907114789037866768596635801840602234172935601080978793185553887480446145835900876202205649425049890417406118203634874586310886036834813755292921373483822433517050810614912678532939831928409718185309627697358246171775870439551367538238851715565173633690379797594741707021771477982008367081780001464343070002662059120989625918235291093533816915314969357398278664587330890494955885148193286848302177128583876087023714110058673763983830240669882895126804923227177362943742540949586943775630181569700465590968641014360622472717689147679257058837233822172959314282663923049701450315864704205668780916493149303513026213924018629230484175050026271860211645945933211621666409651396201765824910702303110036661410412115625151147475801150083994904126907058498384436878835912497246581144691795571648677507211632650200885819708878200636980681618828263437042951619479046101500925474469187077213845171339228867644885621507414246138625876118319801036167066907472457914766592336930768105075940942296140843287648743461626845892754509780116540268687988198293752732988853715751795702310192533101253927852603403206866122956739649984951736473193775469971898862646047905897915065855451859251938637452296747895902076128842620936068682042434846285041027216499929280443127717248243399232845541753174395764779025933670256352555473521400912880566865245658202031397102961356488329353997205921686571824301105537650162307447018146899037414676184869025946066643475221313913599682910747086392344328911036280326407727012753565683162268166580200506539673942188356208571661407319892911018535556377721087598239185650908776983700905377255072534764034310526239713808313900459416167827706312387992425100147028166559408878236464933455366364097233864988377372216704555541356634408500338981709468569208518798970143847166678841225995285102651780579940947792873186526850071642221563075176624687949757926271535021135212914653425188912638577286768459081949742157946018939135431158545108166476826290320711163128153568050017287078236181581048021757392830522638753115031181717315757796740624809160920633111133485997480075174872588428549174754671831429859536467313595132364574234460348163997049955488521402128590242216318017629233683707409343411344515435251540976805841606778862077636596803475944377165069054442010096674450177929106774963765990098115416330172238438716633279817571055800649933784762600563744122085197868022643130564347188368207536429480165972429449344214888416527614598079626484800070686345372958625637036735558058005191158940348187462836207325843332680020452714667003930198582084332562346041829421772723320623080782803123227789309714326009805170451838913728864086962643135468147008434388688644552966773147657162486067986056837395172592651013663683286563069694895054001524783152243524672242450720228130571944170557644051089447969170545286296261323392055967120679886894005468326276791578025040265950636531302810126710456517498545157870564260391702196013495760792643226270815685699115640453443067589948864375764293143032890894464631728938372298446157271110361266214100873469889015849459032559948888779457007547597483413618261497874106295415644566929333262732791997959181055057706485939744767806414315330082472258056543874196237856278914117473963246180177394298856557659767057523289608090235546015070130978425140435130367681777431533427670791962663870516352904900754271859465680670216095565229121690116474875386167288693639435379233469093817734701149520998231743779459724067711557659766643585459729936793007063269160140187182647097155847883768212892104311718513185525707457021954647866522245526173402386501344963506343323655636893728652441388372169462214477401203693776399206631870449777861433601425344200691340525216685823783021872510478657634869566039873375470452065187067474085661249447827383728553792844982001628544980935223856468499368461408030687830349871621917529167374311765721942491373719251101709638049155292708425627479924191001031270264840717198549888943724482217926303613407225138458646192745706302934810258499801718748220706504801498917987592985039065741796760520532312696154469632465258812990126743806115591724857384909114786954201698517158931561446734120380377469249592018535582246965173231266756329452522434347420925260286739679971381372678189111315182943797742966049530111539596445588155602399548285266790790685649748613666928814016682429310800834965213644754204383427478125824088172399074862719078021280953607020877764277687295725779792372021952003195191317302724385122519020440127383199031346436862297707317704518280802874165187178709377159766870036247881695245535920833700152981083206390615163595152699841451757294615023563041370079144827126650797821863976172722123983111150096023387938668720306619330930138790219803145513576947559525887187871948861108201094719598135357001104439555423467538143373243785887792944786166406908529719979780982947421788941584960945984603023093085519908340449320929820796982885787443032835505249380286335851634738997512147818775340051658145877157712857912367535386202314703922693630371430948364743194713775976489323859138516780594452305580429035673073129482106749231117668268793785132590999225857819055581310501833465160086612055761932767093403570756956807940996733861674706546871831366369833446482369723975744811356486646793866548574208653564815800893788582667110162401010928983129312972130689982737776986976204072971672578673707440903279243374419066790683108668299030050608438651169017691154623953352836467471489518286841236103499144459491680394917026956828448848959899043606126957224560996161694662705330954153176049788470649569726699782267586938184461374974873016992283973761542120541834245860676521430554096394752139731505865254684265323031323674198274322444750413936680875894988504603864137484901546830487380203413735756561770687690357432520289721119989410852909264835769253953391563060964264400057360988863345447773912010515088933640021184958627579544617480872939457266189828305272261041244091805662532655432301869595331965877996881918634012326694668712716471815606296488184252935504149523494297670952396734773794598782326700937371548274195328368502193518452539220537830773881670282244426964888796225746026841378083851685392967201867138668165365146739347414409596412842275519520176799328478788566462226207048333609576610605266856312646981228503417454707035965164081407092639944916855938484970141782462492914988642813228939926024746065145589652094723209819547255258474057529420903176306882993841343448237624299303916253389744784153832773439599359091736349758768300885614512976638383382295587285367758557192694956533416269542580404941427369253542935455207330882734228653357997058639933743822644620786755964841371979429548404905230470581941423971604389400184236280782433139627694204604931173716762038846015929575149636854186072179254092404940663312233829132360313854124145762434425533670292308429235749902411499754406949088512179258849518691349253521878461552172781095479722643121780236260987741943728171309734666906238711942009060431946012355934082937520455030247122511184399003040769923520757609838316755293181611687408156837563708937431198694252044844182993773795319695572680797880236865582800052769253180638064619432381426722620393811783194710378412326490019010963260168783221883874449153774373003675885645813839815127910929931536700506461495152877378243732816016580294325983144928779536375798483920642042224587013924709089463060570618350922709202959669752083762707000923974092525236360104873994400510639181398073519602310727907298654435999989258264401635980645482905553268030591677163158497802388178758514154946263877916395041832545657782638962021345093550547788315675079966127826197827967684449055987613133760026028314510312522326797197764713441795204529586415063788207128600903400982805594113477230276641679169396342728739677106406314316170597629899898042543455549830803322253132816549563963778733275497174336352298905267455742310780364246787381446746555547020374590063560621253369240212187733345565865716963103541266898011584909179137889649053930071067099197699685783263272032503609944510762807236016732866669252817379280708687863302696263194989546457739267713425948985064782446033208599653606679899967040043417477345716371437957154974061215007992303212903104150960968770657514040984957331013026096520612824664573121107245077137267941445013283814964866909337126501529756454627722212557151756784878836245042533370188467217930020895832447409918315255345423327219449700055677139664880477539123361619932437908048396414415529707081248580028804108453600989727420749025696232260466491320031994712990532974169935024752460425180886009105233638299765107772012150705518007646672609673687493066272194255851199838114140625091568892800949327862910665686762679252417951311189719703842393252268171035191698419045366164328999831527466911164059968865838279802566675010334843322915100091617381240337810081177416036785939652900558214865827728323998701169064804165829354406254570524988259885245522234587879943050685791659399942510921705324542774839277908339034255447678381417353067901245643182839063981826581278592876484763226966943159853421083677346163949056688919560338629654216996823603036807080170002087404884086943282119715838939060818366332447095316614439075335701064771907139747265351967670339397146387729862097377769244854694104473571258372015073335831275663310486321265046327611536078689877589348554850989882210964174433410833654627371918512860791675356303390231890266351007998769992672882070903668248402881727622235236171304291934627037487771844986250090270845095691782548031666131535542509854427388362898806709231187732793175304082375784696299177910946950685098371390714593818864563604431893420230446928952291098595767358254429487078577266663239768707794097243114585442191710922017289843793335209145808054474309992908510323769238718211487021444296495657112062968596553326969078895083430290306621143322367066033335806950882405911964443580064364300362578197986658244987393021454598774520978027472866684728522356827437085809390525093857927952332347383787045066631416296571782770778855442127774709078640663483008297247434909409791379941818911799623943183814296949983310547436096729126512543922508581051849087699942266007015480249011873954967245285686018172992262123769009209810728047208460493524514052809606425333466483294493938249797433304354469105467188804952826267155055536341036390645220269325985555434750459274355334677743832478871457693183536984541159806046415983654783083620164041828553463569613409601524372501588255185350328183403857405911777397493640032038313216805970200784195264975481777605743280297779557665263977328266260881004725322212052189586785175406145637888350502731442443785067402152617035580344590802289882348183795698888168288220923082943937617259154651594121228324406759977402785200723674431795346960247479938616240605389773043806193748686307945850720710027149202455220818558238707542803746126372605221493447867109549204311478322639937917816016019446318749097701806401055775843579921175478514746228656282209748066999155587493472325770636778673025340819931677746721575738541687054417361460697982218623634185265212488805600936712375641291085006956649250253610303780305358537017119041884296006759056769192166072708891539676203159481306104686358861862551866970248647593880302337793562325604487747274554916327272370288471116699069929360143401356577267788841884094168512238750350305125610832207894794989094114600250954179470809127723888546419400163918485914357443287925890923067011080977783266947016914199463151993408330810267585915571729448585810574278826687092763034911592018296953498329884739788336549126850815885489321788233207381551783682428858628290459151881813807500426657167069936520034148676495366418306999473397609848110773912365250004409027319044525461286107362713433370776123760895016451912566701827816378967255005668826548781750666469262634525133918629830160590594565081693369105844708785264136976866964169807164041073514804678721368290621061825371211871631583645832504049129248086627395915477887544372954226283560645123417244234257152039342082991700883718960699754882346461317398594840339567646314279986420626913985435737226428420149035605425326809835314159899645807256980460877866297125825671286430081128796284261904477032353008309284090486940407535839027418550133509037068244983723466327394021074835819035117998997733409584855660951527124139759642654041462258963111086297236769681743667404062139143120705213870494332307566187169375403116912217022570902198350916784850963443678182198700009036668641552145566959753518308422364493468382736189740139379891855972733854950609232877437986746100386204134703342369788785603174416499092909669376516628606630189303251601896677242828667647101058503643704062997011040796574529774470683146950412846281786431661317706019459445776182408400111067234241237756036988172926729408658849959732258677956452614228374870829728138831721997614381828786880546324629990282693887827212280197871025012645109935346026650097673164067257882656325054557742701294108389273472255318162411913698728860003413664924995750479916411295595017785193869563812629902260395927132174961846277050202201235757290726415771428289574418524295378812629891368582026870184088052627039827001567609853626010581023865209868903858669304600557556752837462504953050994382986577116850571293144724846298043547533975409988578607844391353674485465046029123704333183085778337934186282601690734370351682742187829463405790379726356881035950245873991840975920013076059984838150676738055753951352741441896989039216249648455842246447170335371058641854692262942751171869855865381603541080196702022215560489245718383857976457033456874692387607956048317853201736024414157679442279615002065402133239293239135048908767864882723178745704828244201364314806277628313716042545272815588022984180763893618629754005411329893334012316506102649329435606394526985607112604622225909281561688818339532969992884009045965033764817195552666970506130325304197804453872492033603197827619968723847912080414612106307112882300377527261073424811547238195213513387202975879739942667328880891202594838932538907241875403283357619600406690453509230993874075282712092489295778069972995484965358164798705703864404717943920749297564164859709413504060084790495657669998688920140778645625219125279587730481505607787425322550617282618404483943113712684837303857416424933876583138491461570934755472368889152543760375762393815519429430454819298183108258383480795163161242510814715599641753405027795603808000600746692082007459323718533980332968233870732106137968005772044210717587547208885855573680784702087097674037894844193377667680431375343790000632876584731884528202878738063596400527192125945720995193489872933609124293430655332884993963998563952590701532203688333614561643063729407784647937436130400135089523970607820087227890222310798709013402939771972203266969603078550492033959660695811809337463361819986363760512942859971018462870259818554722640568991945806202994195526864982782464355765291033283900828090715071712713542232157528723641341127364473430990273577529760172520744020729615333861124909647130799000996985532264734599243149558680981608085960801682177912385589554409319845381726658285622956924676785181415442771067415385331791905864815225822217250374610981049456500252594252195348106815476561072681121480380996887442790834826077836735271734803926440368606027729061990211619590660224399940731379624637249996139217103630940725115549706376433881008716122528776577054025059088974841197789419809773207471526960746416999916696859610597796296671253748320302894123121257042696824759153215562351850456694369576170827233635196612003418906598509368098079424065889784642837629094496170244197007131429735787197521084171639212743539907200734086887039742286601624622003971029802575934934793916976351486381396938389097565161600482324667575980407716580532902552391879756919997811938738333798815438458270896801463333841858394377216504075303833572938299694190450021836509904861678131763534419903384809903732005483147345412635244646950893498990862333702729036581554671560264445677730092087451808198773138300028795384527930084731017954365051359385856871695658518462496503317119297113822134006400107423342978665260802823128863001877718802269632352508854553494603734307029403950570094298756393341671471879429736555129201470432746612775437766751919280690407430473700885083468194540548258083659898375505823322029683817835476701161704350809246575248272539723090178285190741517929351701928003387826792714029228390561578428061704223905302794319828384285431476820938919188804769667139299759947582252959043363899537362959220745195905012982460134571081647851743452158474786013482663540731204014314034240098943789746792370105018772191436469587040279372953935342769075838692483540042966693430401314499193152431873060880262527534330638500202362570409985377431421079728577362156576723305906401659141585764472390021841984888978613422810447069796076435611541268040255287355069720624737942252112284725032354920339413514637103508910676248831337463218659684788144745970155562736024368356228560229240338807751658439693491284926951291160277518747213410965982268173388216946208487795462776652232700147114001015925839769907309074665714865481351152836352595693220041082588639711210332170004500984934359616566352059070039538278916382434187171426847715454727088861990048302587567805414693135620166062548051949187867390158768371917941865713520956423584223130180997694906236796393200451348556386707909231881127214058513780421197096883992162280480684968231564458084456605348141885988869822815119991270024041580227676055906963019502500757374346456303408498983452778247481128933363932501354045903205514611230194411750874522597159649575607208153736069727462173966986457544252656941355249505562762626203229840000095675425401604662725091340822309114618533177762164713290304810171703668899689017756466967779581709265227604789567485512481398118396935480405629814106976748043982057462741003700223989305899137968375626999415057076464530802397051280011931570874832080628168412569642713682960471491541954642923876428440133688466113818379223281613315731480945437427458051969223033799425342386331146556919784534226124775694748083790085262196934526666136062721600011384887342430123249629170392303572566759910833505375966675577270941843643711926523033110100604520009137397249034733129439668804483119098396289749237311039440164135874798917529732702616245646735792511388474470324459602010867264871311144335995676317209112285741427264172677187523854925922337251108887152506338957550312360970483791239148021699402791226268972435663009589017591157854731214564026215896669144833689591619658538203084356605297071488893082630920059369663410301125756712999341073866048354949474225816928475329061446907934034919953622959152598483886781618155870767080907351190810020195946000182187304604887322812151671505941521516849657665072052610572339734198722454638922894010723781922829523702611171579934109475664846849759512975830073029639018795143034672929112935973187270683479139269404007112862277286255170209653441172808373348821098910013434631542383615488450837346596893917377355293605444266346691593399149190713392813842849251120364835357309844895569469684980812886362654093068184227553748183561344204800782236489173944211355836317713602147832246636403413256809381799600533787661109850025920883703379578630408851000122222615571404796157994731488615452403724712815150256054420560077457614801490238389517880067810962149943863373878920065306517199148256133810570921777082261629180894157049516090863425176212292360341042973997663329861585115573318027689695937947279089691584629148407912389357185559616945818532972423311391751926654503141503881048320931719482790613374894246085238926888058961240987385441572724768055562910636398270102240732487593480109541053577124568227665337438904719344991251085962300523215101822783185021463747908235693334039387319204310264567571613672730085991834275920104556889511579091925828348613771329030881619580606007129348437576262046114272013616279191206293449212002381084612920473768904162854049055853053873896523900600344152511851769542174448438545823446138456445245037902648952008328367844934319216514056222462166223914698098801217424797955357770512364197441072251964861977681811104589457272275965476589170461104815492919118354038058004069067147673240750298152881041094191999916651766249226964109763716714926579575588215591696079128959564848183439288153019341119394404745566027962984129379178504908321097431927547352308548815147734271676523272838774115017587877937426966399764559625118775722351158723876682809837853772601559253279005342329725063686284513804940917071342037582152772000083047359249546021857789507685248973306060770253367547089118780687608724473779446305137134750320238921577828047905828329511372119418875920077155130920359597850233536895022468365701128467699497450624631542311413255381864117845965761702960734994498856737549149184975712581228331178797982488201710978599414768419172903810207512831070278914909065354416832849457100862229553451768797157666217838992521352203264100185782984998356339218064636883653183907883213950903569544363163099978315684936932015087826386423347324318162916342954319939890204027692780166058852242156295884057510105850872173460692943091145394914123372349682305076189979689700800664089270795979306739298496113859258449116185712605477652001771314851215678561739849689050303369341097824480251045176026802019713808156146659041161428649928385489608366295868283722100403862768711314794568370066956914977445490517627041708336753140749407861029607952992545505502436475884109545586105151779633950377527441534349520520951115640593274234112860416457075538788904506574908785632062268743660049536733505620069032125574758840797188310080753624898650489205831969881612826100858559081812681713049295797638294999451397935637464208916560310247480568327809569529507222581061979943552842569324989208587757832761875022303875134555250526567442209874360874779804562502937472054613840325398656103923256923829797540857969166960122717895686639256340035265690796089163879746487149333790583904868930696944257288109174593635199137340226426889798289592184994391911333918627850694380823629002837086188522211208258288166783073817794791040048715868014812173162247432656063222243007981254488787723000770651276906598311341932751388700127513606115613168419428460216246487856622377864767077160205550848227311377001107286241682783280892033967810505855255863942439503434079641857646772537251751575674142131697220584462445227933833171088658425011779466459706259159901975979032090667915206819209117124312883878469603840365484749102628405604199818566520517814136615423830471254237168324208646309979718549379716356275214075173218207731170350373138481673260224905336687905468247257087194850296820389945023465895827554444371853679512100322414420596758207487984029222102014853354058781512375491363056436863545047499091296534201879375695715648919374272617545635260059241229633163160342983244044688495135875075931744603227693617441199785519494389616448718783351526177356950236364580858843713585904196816462872735102603084454340182229778549622712112068440293367283456956381404152963642806481806469994386386151053138084574948778221243254413232310176254733135434945802691854688586601501170458686486007376335280869720627332252373233662420565208140132678644618377742232917839320535449347076309617874139508701100043248862224800765112623699453421834657486629428599987149968543804618549638472022791447497695417796396362437982941752632064574018665830544841082496952455840611342642093288867549981524963382508080599975163604610720975483890430464351931883271230329661621189578707298154342255943239925951651523629265515224541582821466084731034477269290181326580375505060805326951280972777202969851370470964625059394516844350375211021195149669059008815994457361705757030175724021850755557508892528506629555125437068395731381410667795375039067362402954241600812555374823395838937781742244337513968603746496477752183400382566528376919189807572695551072509755782482869057283350130735321988021856405235024456122268983554286691886952310495475343155978799622804243810448185619256944478717065303820355004771225004454198861171601778182177773834348654387607154763403069556096452889503457889127056168523219341666795317573123164443016593182938762663352097617659279298981575123325789243942185704941910856444198741780256682585673017815050149668003570697685341726672410860142548941031693653450033517342417713966008493391818625957014047558356505097279390820422479464641352605747725989317608101615670799334421298199414341279988866113444728590435672386908333890896097397909094925917105850079852097611172331588789828312589748562351412114479943592551577255115009812189498203485055154377184590473753045429506031175999474271297478662796023477794847613334442267592643008686182263040733473301810265510532103371094414538450740727448247193793247507240791663811477452920769692362168604185261491196824449299030542645449277684886807668133876397713636906968836300762636398950746946029855465377802491115955781377841862192144917768309420425564147315255450666829851245323232860221873996372821618163183431759500226192072159088460753621883150775758852693588164450456318595284066965967988137556440787306612430008061649024278067881762387816947523349826748126135772756423087520237955662117372814607999402511445784146327013680423202500067802678135241834647413251966175005514593268229147051706845750617049871444263800125714233435602169875301684744834229765701431095895071209798089154704086389382594558371677106144663516531385604011058607327937310745315212605755358197784464463995158522389623896492126918329386504625574142339872015118992883948878028687377599628652618771222849792835904603608319738686893652407218817724961746931104813300338928471136743585871453800371653543346229540820379497309498808849973814291363622902799849401949383458315719687373602663004318793348331442219443463163837675064812341454036831182560720867188991851508480189450236383827284456194728778644986596876959737074609600553785078848889319728325002540293540480892478548428494951351965342537154526083278003900063589634436627221619198250100204091196255171202789104736803594691778240900169102057736950384906242045235793224711804006906591979536452723155942775850188490425323176984588450678040362539576776781143163427006567202351864941229681084206734348981996239200123313005145643160447542111394158055013468954705761970930569679708519369687359144247735178483051030886595800551867639260703095089558142319379054354792772397360396927033683539387787128384711194376079987730198213325091110947563090399107036381555357336538797108331589951244917671565784556726925387152459679935749758166399050061971984063938195357191745027302374309856311646520829730414818503781593060864969234551113716978095416924245007273035123361740982373243394261120959649686667096897772718052402880623172961645745219774861587422092171049917168605762769527479402185318453885582279323096336993858268880017839899335696866962888481252447914908235266249857458093289687973727597288826765706404093771365045341308538116659627608562042986741351014325115121622570902623136180918190820845562674832788535645560233176845968126732503650305766765735366366176830911471421810757268278682781187062790466431453104418718297821088473014372570782829107515084532766462320843872667987042838949714402016645683932198721931181672976798966400492946463920776109664851158965698496927427347550587274937844251934732224970187938450384728541916725297969870589300152012722017800853219467781436615441884676279603791650083905947203874374034263570546576308906785625334527399326794638721972888283094898426465566884526942618461568191161742358947438252006802279513333363470342068092248501939626177863131255064780866898310484920368133736637474391072093044478685854017564743776142857756483210976669672070611757063345556404966496543387127095717184325720316814838674182438927349128203881420820216851577701733804286494700826210952234381478980146719030344192787973273080601279509646583619974640194507571485884521026711280964166407380726903770533447318018692979402280365108301185721665288608880408813930519115626558499929847965410950514553833408184470064161247607733580117429481497437672943974843524595295933101419693503054374476258012599135959143370534577599362782262023607470402485763445168041036739256369399457509903266918838817470565756131012472030416573224735288044879780116830877153034302477361628313148580486403397991432754933275881369853953631735643449498908713189518918587230831827387474534889560882929670855009496148610750914620766374253086398768899456420944981038195904292796586843111532724450422260471771902308925661401629539130262727288044543049469509973262945883053555561672396176001309106865070347903510418339894825919057675507264869521688735937720207349216059455938371985835214310338382161407279141947754532766735052253361731424113891272976221809810759551983668183312166245664761436623368852374327882701551391083332865589142732428435729179366237702053254414117347769247885045392784872453828460579975294032673192687303799689733347907142515629487432423670796358952174598863230044786252894433376891000912501422111519099975951198507814034104426184398488802067707937665929352041826607983706985836209565739613628913787218142396983702707340964287222595808554139240782909881892909299319123866924177767656726152061060749788630263525386080679725869768934287355770240329898280163813265991944971647151201379526565919831876315464306008192124490215930492642602492046565542033226557667887461570556967745510878812247238769041410918354912058352255976868240808098178810419215418990807455302201652277422810357182727721639083874555426411087278156485588438814586383893959642750934168009042802643305555992085302230661067326297444964766198189744847635602928440577900740981307208240548564404991553503126006532065128754325443405370179038774806430270704972306897195776370398070953681238236021283229950289237582553044557011419255644970038944639109591741585345253265325913443622491061119981463137802246198436646422078222471202795998413870394536377885063781554769266145793852782578868465757782539183823429829374450908142211228912489018884737912405007210882220574952613312616784828376196305287381629994582348704670063823851208247867647657052396337589902007174760028044239423412872273808624936665175028747300761198030856875580387587022526943420185237242792087035740978202670105587943028075042292820476256559688978017707384734765892960238753777594703307597717994182775825100784640052446373490343305357251341806149572902910155320077855466118165834945842919325013622170185173675493591402448612975439009515460131690551972477916174404174081768744662785420389420315039397542865375814632957019973195288054229708111512660001117292304049068196775170784187841436311777236796816172179726885852697528396076422831049391134662126444717799934051767337519718290091155977635710957021281439798387356699132611542032751616555134350334624498436849369792888619197079161145686131285341344253690770769212709242816160225190086339605638709570943723238530336677037142899507103758175586301945392043210492707505173605112887629100985889274180573537405178181705389863859812205254618694072010296500796564714411700627235562558453039358437049168816285903122156991564627767902262729808851947620324286758787770736604404498905849533499078484284177670299321100985589952592733493719984683684240471543440621442677427322097332828234246669554618565598188347288630694785182939010663447847013620277280648575660339344514546517947773433123505924148164801195887364263187039723655411426894063138138286148292926831165135886719301882320244634262376231642227843829517200637579531258715151704823946482637623270172593914391619760098688047659620643571252000738628994172522924824771465905329711248959777498680211977437056756903036268945589131556050507314640776026548190499902445507932479767536260294933316538786491405911037898375662889912775081560912096217153748339321567372137846596037152021414321756790784853341548545691930140594153610027059043769936283210102856025552875211422123520768234884868338036543227158250623836643491923613904160945068743687442346642707885893561673263415281691768477463989680557707312849062259416539641778252714687479625563127352676147532166877058711628463389787065798799038781574690949919596009957889631257538332852815817926966505154273598027787103100122300972079579068766182762747326490014142518484812901529266214644866048842963109670592154437714436190499634503631609055100893561289787403270234712151855094608349471126430274436515457075458771288209094553411419324890952146723790043313496234868337464327998580147935938113359163048828821971589784933882134002937024651744828863436839009701329871390391721147411914205794411912190494910305594053342790479613916548282639492200578596775876853211413261683617341129904850174302844987873386383216888716392291587247537576174052223749526380319314035402608568298404691110364570813848024653449044103272566862442891567375596089304551697719529947609019400707098086291176623470333542666459697348097367501773258847532363706915479052817146038144163819366812798147780658720545298004574594518166662073081395018019796445049128538022664611371728966161377141651892109067429806560232692417155471344632781256297763013902931319898220857853888603243263214883995943892329644854606624887854810518886966892780548747203285394633093749522499740864831931193073743587426647427184483978499820849138906797418602632594827490555150370071384948224503335684125188939093712825624737113352827252197938464021112034933156399399581062378632245290991253909116236639436269709956068943875769070123531170320995762047336547560087207728590812127572014766157878225791429743907011209738072385671736361263606374687644901275436228950513445433975624484187225109574674684088710516614934420155051438387653771878017195210981374560807627732198307178594875912495500974332060782701755811934978839484680214552538455140121254974404292765434492401000564619997446749240378461842342878421293351128835690806389131910792155455976814878168670783601200590903026718726215204148285775161331448917229894065373808358446361732090220970427575431326272196526248448872434837410013838524905295887155778525366699129668141848813232117581048212767041160493962382470226719118543460261931499572865247055215357367419979129114700073102671997016936375565087999065292577942124379376222341817037148505544601357845236514305433379918389583047238996785515998667780384346665272148343901261221788730737547522903081953885202929424320338174543015714614911345015693641372402491995958460911989266228250798614722358652110793423089923361051752094571442076443613332875160243889180283010222526089152560922665293348686354298639913247890526738390670673551656085617091895995146181056631996491236089682833862815456408246221625063907883996512693228294948159672459684692467868334306913546118945788594680508255606397230301153452480598373906398525043116315497780287763380754274303488291530267536763691584386433892930546757005801277321468791952153178476751642203182403377296909568565207498752748014220474422828056996813802121434842949923248931445462219892797787256383095083208454990304386100901299615949467619193629808951733415021072195675696952611663693826507702001526097026609190025249605717001508780865973553861627468744325015529569498054227937665752877195262116300683313493281592835226033409781768103592898511992529850552380770255900315488130953994140103647138026383722930333588039669298593549721829245360464944655631782899240325277967418863775056865365177094449709506261939468441875846258757828857895764365265297029353832765210078495939647328516776758978441506040162047903623366586491274861478771362984581111693997670637796583848268546988385517163725815642670384958055394842087249488451739194221885474395038173259742329495326329076579244077767656322012237819807152118737872405640761378363687579895049011223731799804277812508002321526205353377012633364440353460742109881037647874794267013689555782610167641694446002884828843904797439705650286135580919290449610591999488515994202835250203526827398411989613370626939912133308978131411207188750392982573122059328616824745662633511079956024747284224138238114768107987381977886279680746446635704080314593614507249076047715992228923153356739979305469460373451272261375524062567462630587181403612606543362071801586350991676544120589893495333260621023369196368632596185111530724650892714861538637665323947874033768416285333547172469833359036881173647914330775248062668560355109546064659885043013192038312195542033028694653541896658022587415456970017358019172586598912994345875724837401647703363631237857607281764217902419452860416111412277616093175249300368149460697597929269121747596730367769100770446637632301080700541727011219896987177930716740921418456021296676649885200947157879497278364937268708577268895590348685061452556913451748735165115876716282834285186268348900022928925877955330183405541607487759445175177513453479144939549156647965435081384727059903408812015647268457281063987126535879440405989789040939115511433853085390628601806879513273699967232006875087405274043817055446435417472187537980283247199573069758554191252311660497775851948691009583606441124584711540401876363679651450385514325562801988419721885159955055060785480732795806865643739958165574357968062394083935042418187824049601139949083065254269918526557837888291199268537423912811415089455580294990903692242125123094055879580683488122022813687168401907091837804909138732787757697733738048565956293350644109867778830993944312554509267308185563431680963380015180650021386463540333549061535913133377800710447160790847169992128525676618082014161365569148279270234559370507256010824469627121146605536125441948746765275274935203406480235285289685675329839152804253493457523714012173507977394528905915756561349353707816226679106954837476891000097953171557994134226374302357590999819746706531834766733143165988088327261662621021467558740019454877669275022235264056598667261454813846048322444871229904921915773256856870907272757338292332817349542419819746413402103969644336787125646178199719808153322522791825571206178889470830029853356840496450753140883820745315745307527363933382630754704468396602165013420470859219246968580647801209350599565382582989623916502519742382752715842815963612447578597541750330157346230495279074691323093037496621286531423471181894448019159429783206491960760013565481037164087176795829638084936243396557816235162898123883893541993945263966935608120968896924961284305033094703225704847127322133574142506165625085340919608356755707026200580436542269337477544778198371833084709860578123637165040293188873220542712644564816334742183964846537593990374100852773419148636476798607561887104842487489134101648750250651010593033422134509048344804294516068218731403178914440991381098167694204157115284636059831998844102373201340853600277676503796579957723744137219458465019757700034159966952459119784049278068318558005750676186338599419935839779590868486506685196216728588001384116302538548533523022956711972005622193676339599466645529993710646375040474002173178987203688760699089189031927432887654540788960030013086822353288152675174286322571590785793014516561017848514106669831339945306243930904499802266767308439454708345243641047819843645358855070813305356991151324292700547255020983983081869832876784589535670146715739574524237855254216591770504171308962564837512017064219519472715149494026565095639116984016956935996266526953641126687705380607378376298480169690771926667430978382070339495984201067125561011868896545353132668016511071072460358404198596329692645500417218341924384700784660298070048937856737826635494226745557651886858786178519687576585030303386516955094715652347008206124871038277174114006434829258959791884446257607598582997606496334540947632064195158496506083466330982707941818579899260154155624824412170224659664482726674007251453188497929975789480858717924185997631655629267049541254119257593828436681717625393702437423798485208809909726549378826957998215949979812175156265163817834061710760495452127684894135153810950226466012564742662748230340327715018282426645885899657529757771010133812955456714596702940325866115987059434198173133442822026048934193595455910156988387052061114627618918967389704323282782026735893670955391399066959508227813993418984613276271002904707665110229551525412694557626239636790930792055028247688343922890523324898854410358289839679813255478045956523496087948142369324705635083719972000862742026558621860466819641350955249383226817544308744426846479854188693479011442542366105450438226034381247506788467363207609184617680763081435939474387749679393251903353385708921559949632382101157174077356201035267480146086416342258650534660877969123518560294631361597176562810953532516361959026704041111957581438921784826464260621498019435358671641374102349594382990039159863649642202717581796744049435311068372583034263851846517277019057375669129836981951231015947306170511271837678770718380771329551299258675843887462102832866457763767179276237945351168195940102420135265812609462980060506716021418282082612251044212044964243781070189559435031658765464590739808644664470380016475001987089276518555224835015477881007314722377254015726097751894350702514291030636239761209701645970103785941860115062510348729961147608621219365978165728559149508058784359238110724010136110834619651502035091978626883569012352537667598159473336029558988973420627140969506964440035082957980492351057606070694647596024924041285830062232555351689637494657433287744210060180853617119905138492550949780559545775644540341939157728897162231329003533374459897545358303672520505650773915873731051276504988211136530882385919416063090396810700480441403412708315901883878404605837553198920560303237656815542603528943689264384015893693346069454779392207863347206412328229251584707554154061508568765769760677760079149563626940392513297956761383274726351236524024204365059186735973529459849739487699960231898128101096950488190602388667087582187222595451385706178779431967018639470138637544733146348614599583183388452477661619529029658928424220594216700841687041400881802707024845569756954473902911307297638739866659638449939136527504164716316510907566527192296448308677605089114570189501738098990134411593321180611868535870061380767170459660308353697426544411198741206967328448523395819358194038438718767247889112997162634243331101295956839690812911527548042868562444134101977497401606436492073025265163158351999121518580697714506570848737256090574321841314283277058842134464060313188195621252204604889046398144605323474433216623921181065933552628340458921083769394966712957973112449146796366032960346739452983785424815660325451230489874357209438767200980142963177576685047023157778566177835083584548709629188315949515921027486346628294534330943805637704314473881738580993086129019836042227483791934959813416754197092200773673196982536944337864673687791859808003757086095674388565920571887226644863521983021082678309767315820738146302312626492887356355788569109512311157477190515938860564655369110627613800559363214801501855182217140576807315458958878281813626745366753225198671220491839244029061091556181469021588885838256958290634190129673663915711800187755563259557043484271761385980452365186939468025705755685649439202679810178745375339201479986039916405374636885357719337045971069107473082620149094702168823750146756786648147331465326600077651883642084259022401908563148774909526092421864441270517614691428487267745218709054261639621714420439484901458646260174958491677335801161303343527878682226099209687446786553799379669859558700439603251473902269523762923271582410756799066673982164958554791790030788007493159377781006265674790386860266534900726440258037648775072116889639200291695920963853189944662186877079982967453612809277661087290256989173772470849339324624447584321216494593803312518283644652879016691462936385727787948509829795147955910454764594958287131750525458155082052071826010286776632587961636488595225489447261221591342479831693045092211827489542050040065223343192321235874398478081227337183878195726834949413629258211540417654899995455612664779737756418571257535594020018075550995953161794781241543030762647220916993991076918733973450365376864237385347452915752221925973490137443152714573455731622228459776753340996167146752583388544234986453706368208784159403481291084023212682584472642905487670017100289901969846351903537566143119483264345890261535877751722195678235607835309364029572059245822409211744937433946092370182069870440505230146873803414443086724393531806452190283495394467432866809039812066780880190278140504244909610670611705715755362332239740666440479536238877146928168048382191113436251385020320449859333344111269309671078922030745506947546252189292214555132788470530407112403555014047925680596985729405694775424038040846438024982712995668767384117656134971328490953289049463659847292870788683055282404992729946682379550520906045642309243288023026159371818975674968351207768005050227506396493785169801924142972570652510793184313266227536460666304641567421936534867667821993537345399791683642339599462749347831238719019754193093318869222236032155684200377336309204344536937786982213663272853194743281979325184567176849725808345850486961763016476247118185279765378093999083137225659661720539507635211579024683035696589243833635225658538157322374798197794674160329796307403777998956283290459852918344019123794473280852734004859967679868696419653462715593636676256766754658574890394639794807935593479270991408525207114033758236675490716301635843564037365462422781154027033677768551325960229714561072232935093604058778557989554464886349383830821704885463411309297552111397949369470111184651044963006624959606604303855784945365796419946117467101306995929138828646674414412601864636266154405210170108181591624618771540243000675600158766892606007223407058327709095672718066179631699766849866930266150934453741342268972054488662385257635374336245199601179334252849390323992433429445038780150202286706464898634669300910379852442639345114577800972308833036517392459517458040954392204135864140728883599731486659683705655146534141498963331919437480311204321631271062311594657215709475759589686956275810246516969022607337866807429779042579456528152260229246060594065146567357716374472870064053287441056936323968744227921549981108334960867589597244514978397462128907135945432922019382290192169234492378279413255579301929277022119476861901546649409428258734990450730949101107771945291535159370487220613202674721891505972331389067708983469776667485929944383380527316240762290210836977679462655060736928516545202051692146047347990565221197330223203767099730560687081050636049698924043505510626499694652074133263013378188333848333034653272657217196584237592906995277771270900739038953693458204190122240859965799816551070979236624471904935822673649971056325299732627843238310512508578302194142337813970813333792468268335713367357556022917609094541321974324324128486643679936336472135184418631864058239662015924081645871904032368042263538242036225413452485508249400475383681561377172634711941537959306242463186397158288554836488073165359796293153592730253414850185469930109452524523079341300229585352373556436475119544372131038029314087156439461150664820018271938796052683942514877711530381618416969784056083629676869457594327637965095989426086092896223058267338548475358834632762499832483675371162366399485203042291124759616701606373012452698417729835197603548469893483551104956246429716743739465713600987746059561732730016353347111187427036260256670169011956179785876136099307933274477886274713019538973895172046833180873088812629109846422024274387389448251113853673326243980295983955316058788473436293033723023488984910130559912780021374098698065322398923160236418627961594711597751143587617147216751763321696815039157189663299815219762570637304044768163757893202644406531912060778777417867405443427024655531150668431441842603617560744346932246611889193233040424037207639667780472078321590159707577289424851483867518236666215217049229376819589112992164240554685294075047427212013403395831600519744988640951289401932495910123564991682535386269885164006236033483718739903312927929170904568123822392122870188780074605885380688221290878874227083948538304868887487413955360056521442288894527101474321277303745065181920688970268490306885502255951956855974654765166338876947436075289924603529922617833414171503606715696078453462887615078020994695005673170232763859241403319692962929201008364581657344321900843822315866998904715574816898569217773988297540122557539795726901249932855781061981562542011377914428960554095184440617915391711750309969363998012452679663382248335526486894227717389718351357255873012533305214610769067945267041345509580919316595938989157136773983946194483326029567475040394524085308758738691974533016548007545713739023635684414669126300141742366426338396536710656742738581126980082010567476171038667653889268501001274246887395583312137467380798431137523294484898528726365128483059060324481954718614872322125059443562396262093430947895872304475332996534616784121415226277890075300254041688841865652962037082801051357976522256361997018368571357594548608967180382848873244803982784193682255688797808798437790315104580695484748693807435828287890379216794256498784953148470489957634052300794464004239831664637456660716270348673545153469637527424950898179170430801088213337949196457796074735986540157502965463996963221984348229243741853152851941005408085829739607031991558698489453733486588872183569977891983553738627304351679425246025386069763074631465983941744382021065385539092152397011466294960282941242503529107260744784362803681642593454065849852917221174319272475445325502221715687728729976340870105364625060271721333839261321936316062431193074254493298869829835499448244541790483459987574002211921141014770319489300257217473598257986045762701203592742520918914555045319145665708210785029045245516287646825975921063207291929152960383904483399930892366080211432025914505867023356689783618105844737268302581795283357299512852262996794865804127784752734187763357680081184323038875275643306400977242114996936626263111737099831309905278531099023114239582408897458716261961241843235132815961116770927202127368324680634081747542204817087472576698054517835437461920438852330923318023481626205032554541464888816717707298362684647539915928160060657894981450334413134890038960915647733284326551649761398497774043071142446192174168299572209351892641113286526459603590195426321470952563309307696240703489606687323458006521925231074284801034115250277853585591173214683169483411394037924125414265776776485568046560612157540610925037939664121198608203143106700243033942629098969934823923375879268498791020869389599147857922401433058822233354574907035294330008175160219030139593170530949728065418826081661471389044553999583542352830188199057910272469017757216799645888509865691419845699090433662195076212615392960579653711648865147359827093866733844842935828456865255410137499494304310552392381692139731940802212215204375764347666653536567029591010332809096856896734461247874729742949285442508177566593671773973922727104694832432991999042616940983235527846232697007833506983880210805428749968848162677704508317433408057476833091573701627458307472867580120779223517881259455263786498654530475252481240782725742147868751070376881046934763055603528280838089969426872753771017228776990636331290317702532302290136199146965373535392830232985801639272976449175285943173448915258310153883902794558474157341707424632506299289114634176655291804253086243007812379619076927551115783357691836809152655880562556198478252644825170829805537511162742292326504508915521889738972599521287210336733957045607967481608419874534191030465717935255461412116205632940190006081125474283944153527921547853213203752303000014277476865331763958000654725309258120640306263712652274661443378160959849277117925427127173148000193822768450033049927455520830718250844400547968514768138232740469446928493205529003485832229014867147177202376210570648402793691197304216411646434679868084048479747098536702371701172967580464214089643090577181867738883723169916357856871815557616576681743598643503769261039171246853604737006227825431973787614154638280624081027035293370473011798827701644887777260411571251599769195680768389299284525248598178731383120112016695633271377850151905024026729116931563306604767574133611802275720955656834859281988322305377703234706257598274183494506879993121736928034951730381318927166745203696718680080254738796353647602428542798238674441296526385182518006630511745245142765422346201437435606340593537136176323497997470516718921675000127589181951762318625672118556326866227669929313283484625633076857409513442950703268921990475195350838918309633869208295184976015438616456265691157792638775384936763610978086715003527794747383425057173436982063298216147245427618929865578181813951529492905737108956800606081911402374648922633688232560708695029603846034426770665874534934786564991096019225989413716898922552107123064029938532759077760852829618288104115000100377969202157997485974939306251158569494490646473644898653312299890799138718647845704708660278508575683046254313367453278700403849364318719948255461177351283755385707409233375803578629598353873724550361787613458336380560222582902033864528904996439596701063074197110036295044348485857314552052561125231691780949460503254235085087494669714989358423625944604976616947666463764716979327251656530354886528537506125174334630409682339448207738704162952635760473508795427876937414937763019370143395237601576265842500013933142720396860883242066321730039230458971919591553774991400566075617333534453678635720453488451896661508167822473397327826287684645006485671865380052161035219835886536671698004835887161228615851716648859908259311694794549219460546431722195655866690859358044779195291909679054395227213925370414123641685411400421054967041373762895200350216886947562873179840131000193935642848471440833788092571442174961754684111947865888691291273816962104199015710114989015764692219811992367542102259216398577636652175385119695523312694163693422235228241601275695839697620550640510809935527441115839567150804493695876434241666407181035594589559332270716401121719938412602777930525946950199358068187515006261812214201516321004993157653656662644190211009300531557953170238123079176926055696602603909488131132123763327295056302933957050851368397335070706969381071298638944287069585628074793114002974154725934794799017177212230405504744102731416151645408648797378880829176756471644765301205680500126815194725705086403408471970547641905177201294393627641148361261820195907610002568104422968589542747323893829619907396381804744803798471620323246696141308362994100617826682192452368299439313089010461702552754112133408150728379738833188667099984247425778183945773315147618952226319734504864831719146458090755975494468920470399889665870878688168689767391080342384394977093693209567273711430659758544607986432555255858555735073990814882102727259966391905409084733186545943898365585549018216759762976188418284077466812792912613452760237049300949607145345435398368164031332665143614242603005192581078253060854779659123366119330215351585887327413290544267896335715672386399664749491249097730650897239125313688659656921840753665775671348797385152871795267755771257100071131874998278194999337755919438733640482018420480408881373050952202045461405923393831308526773606202628133591116540390502945573813756204402330016008123606183929289601086672263334147536855340211016821691535166206635082348125659033255941809316237508048722593650267696245632963481505576468304067633463476982660030277165865866730086637007682051452717353014022009132625370037735672130691799461310826487706963381869493023483956050361489385527735223690003520597392886410818566993128762199364534179169348123237617493644467399725174649324174767902364478333176655451936232204166639329239934607060482121127746187555289545957662840381915612421960675078216803357624124426540252292874298673448922726775707246227292324496139969664319185598152252258738178504696582178690524235404472374419497185128358990137528878805720344700283020551710180020979431136200305279852565080910313015467193329667952264711432430964646476436117989612091361350577268456472847708323890021890009580090113447529698416796527453380767081362772444065406749630165303324648081836906265786805444543009199579544963579273728699112158748865845494869661580419288865852667021841438710080899398193186554159796456894528720511190732286895206259686513952495435910347984572930082106992541187698997421855399554395849854091246465091083028893303269128115147046940295601902541453045198841927694457747817735952806836008119928662755499622685496704072853331182864497874975441115466136340227003956123812127231704140708948981634190517609642361955978705341162282276074302959981187965748231766980605557662720465259516446319066924718488055398634143709841599237360855903433599755056423711343895603297024036201804341460390180732059475889060207952326816247216584762842188110947248917195408590082098764945829973428247034311893868634502035353247206355865869255582791944262378297791587100321568806266087031984024128295910973472613238282382906498854022260277268740922310187372686994269326574254612374131983320988326174250442343238915820575388291977163987363043574063415195306245663209951527332340726814030760555484940993402958731133723402753127081788626681070486523897663277165657417377183959952619123543757428560176962268720734884610270699353770113344966099706950181790029921117758004676220617643831608946164276191415626391842063877280039337825631107798707448506376715408392496499443526401179469526506298813607110414137124847248005843812785478289760320774680250843399390069841731816265222240884544247194914164622391028393023008706964016964648778361411781890389380682380664438078246633309878484955034918620809799781744385367090998057940270230493725847827838866762799248211097115611511158129080276267329087191670721023589068366839389306300674987725905161230534949045913540706391558452819388155596360150102611964505850098987213580872322327921861444281556921960384321277256866542121141456946764108042316796924786814892021206176446532716303809217042055683367947283852921248826580769002944765630095321018155841392016552999786661041443431254870053402437972957798374579595121851915172292037387555679945844619162314543426687430397967810615810547664415779102655364517607486792971914096907546299292780085778018217810457530455702576798917000549430655050669401983436136716664228487460394063852960225216271925521376610981694310600343278155617486616690522468700315461321605572761480205917803718535626316109055050256728686215596772189112920500722247074183211918865617633826618378552400807058478530898572759511120675836838479145474478308848908930555059402488779384955761505075459571767931204909896210832250022184514088517709057388970379427644575343162270658133072105409224286109953154684087613614130259104016584714084744741280185218923802159434401008449173724832389710778672850351644368429938124775426634104848682717586115908589453711861063312420455442880794532412773400449728416253676027518056101708260706304590736916451499045221808484423391931794466131996707701064192290106837040973354116318309560638072448510506187486381354830036397390634088271580299141075348199444079164031236247183149933740546983445643699864987452444584141550950344813607490951281083547094552590276675968157444200754751089844596381423629760566887119949786184038774273377269280209946925925154473122865777058216825919161322278235368361889278219073501007440762148293303306954347547581809271041761975316395755574459759374304653692070901508622028576178177042853825442512650088144461485017881343869661681067430833708924793712083492616091006561087297716477627230635230744317510071084352831899012251000261664096111774791051439845648722608022798666586821532696862641459184420350066026024436740751828275951441535784762482292888887236862934964603901827764003658015700451319162066425042969390063971166079712500762665498766986084782489224338706990426281619248894327112792530845662119768392545228174904604775233549726467914937880204237596229101391179144507822860909105631937609864232078940961411362262073548512578343811566607871877204097983796658376128549235870457093732362325974205206065561995306441898439527694454599167520742068559402335652436544300667417048583479410437921386566044936317277614969144369168010735843803871368591921651425382642753381054576597186516748421428829911104800484951658569696882671201537607363920847226165478912750346949050621779831652359840307492939147601085258999095539457043436195685683211644712645017784500775941372392228582273237280942389079990932353396683298524414512609337612217946619107057219997757757314683726123139796586823341331876662699479595399420055899109513791518606622603721089316642232852413546876326901078597679037494817976172291649999863839304403632739314072519149251717917131259221680317889246411744518488331741111443667063343253132625292670087021512726791911484534483548926035886749761876375186306370181761356795021037797206654537959621526943263165212265532517395296605713187266112866353368956695382024960754793922934384895964165924977089954159348045200327829869536938723816136469766259603212747900645305453734294418880216906573445591721547200333746031436458344084520438420759415209990955788477066368566496713217928688450229194438375757758502980443880125327781078933099544612533381276969278898271625917507518367153392803810688619775287766747308371903302502503595229870415997180090975559121560397552518823702613936277672667849563324035908807502516539383921305240618004119972430005644076742526041786514799767399875597428167681698210244868167202348012167677512472715972178222401601424862881836178417151918636042273824195899237060162261064578125054308624234782290652529474647698089027715905677261687420883133106975621788396586523975482145819278194933264659608998136579163361441414434972746488370741900863215980262661531032958213710994290499192681248167971951141943551558444278340138754332120095478028919443698819086965678600796838140809608342020846936822026697740206984662504136540254372186305393566827139163211828754111092500558743548061673546071890899565977186261730924688885583776702964807153215045196542525821659286036666831475504015728811229170775877862251216165265297912544387577555126429904418681340752596392640785573296560909683541840111594771983618104883545751461864379326740290358670267087029435252761186225263606662573249616346508373134265043975161573893241720763046311822226168670248564909975817569462700962482782945766022928702386438460791726404667183950761088297713366168007957089305406640272911739355819263793556783212739997813436458239517157816209251817672179677306515235715928152376031589527100806295939885804242544977137199471603124165357945591041574094848147387090389252813790987153367351114038262507683082549679626946355995890168051902833448041919131913685587317266327926544124180344974546569048940747928662764002431126916529882129148317630101837772865745950621951246966345432652693854411285924122749052909496212958238824751141141999519085845118566338551387662200557207322750117237084755883163712697273352790658138573792414554543958857736410790003341036694098017775682220365859729930918466517246193278262013988054054932614087900591179590338610505045045823580563378225358695215497453332135741485051161541095621451781068419951215716845577036415575720267210147261377270255442381016516998461756565833142389105727855833992985708243774351131809333789819515318421350076210133280168455445550353026959712783873680628770014220698169891749991245123585497625528025951960457146519557240242000201074941974729435668698036687757886251700743983508834411755958787165168239625296239715090406826514360974135359321649979620487549030330952722273650366616879448097950476887264108654439241720534512111642544630756447472464052826559268598471532424462353644623681303255668772006304483456547872587658084505334319446151389033276342727463100341247330928885183268591620007334851706157034937079797839830653467282714132731163314528923951713754813689953490795095259981440998418035203741416739389562569407934920498116234224940788831440125509073720377858762248101192134292914506235072503087196642907747734699941710418301163802780786569388683245176107157790891852482243318104109186441568267712119700627979064842824679923487087895207042593115401265661309427445044710738307952825653728334724836088635046637765516397425764533301137604228624939076296514423267810598914938957160252166907175362175897219709129447697797530323542838733466823217481242370970704379811668972980771433484530762797193176132253520592204181703201413970818810375010254442221524553228185271222342662607605179933977681273746547125937990452408425964643824318507586201047900732732609916676753876323439201976332032390508272034320719377698585747958504677406539530234503199497526084354450504056159683108875019237172884565893759120064189404499766109970116090910047035310585017880264650786340735714954469567591177626748445349363979101660949603242983435956342684859855692365898514161331377196102237326492804570177717000067355094753351282302017302438362786168989927418649789515455296558210452409085957356268542271638801385445048016222545275016907845410120108035041543152456849440632914135516300147999139031520974494664963138429977198382016107236332077006201233706511391131611864474630663852487501494206287926185574952880010754372404624663805581993619316155750689963800217652860441121941337748776128478194040087664743227040552669550211593758315509332541292763889572205446198965081732342406522076799279745685842679653877205703152449288736801194074552707160083558956680520270684678842794596772800554589425928989485824179462323182430195947788078754052369904053811544718072795713437999589685261624591625227083314677468118305153089245839278061572644840814703728210226089715296299646222412692878851501249184783852259303642389038724244228692253349803352114881945461637937398805389162974723818518579452683304662232424921209524166374259330622633344319915230695088112584240600849725220737896713427891316657502690584654763319118614217976877617417862960940726592739330759697513620791204558198033069022862870073851694792171195269092705500575013800816986780485368491929346180351943132621715683018621105881395865081209128237319505725426222635679542055789599251064729766491507139340203539611715152217890851861162543848388005405528473932349007157317723179846183077194923242814664898134054714519101105792748612805588166931056144183495345653809368013874040330416406031079734738072724719264538937755992113790783692541449993902996855758198755808512266317478847112504681477860807641750922560658227016374347572848678661546784599421311704152863168601456857196320950373139075695001876967928093511907199337041854007965659828854439457446106224044240841059597532501563072201899358800443907806221636959504041524685533638152122900921800506670155006426644258366266187120718016264064223074965028718322196813949772578806433367928182530195127533013021454562532674422825306660529177041274497589410462306299954147728452783470773383818036435225837742196869167777285688359256537813109225949881205219368332455503878457203928647727272080804818047991317905695541405294976720648421845144993669129942103287433274788910294377751080790604703867333061259808577579601769306621517136357404661489586542982481769930155184822510411465763767573279846321452267031325345238300501949907152180080525010745703678500367060369714222759876550859980754775131203574378772473958330892494956291617912609750476181895869994508922852647189541313281020602130628611175297487655974055898957071834259756037769915514203625630148199584485510451266079700248991599639744242803321103562764172477243573689021131775685288667148991454246564989906709692216761244545866753202992874545829412593424562889679542095805184728671374344110904674596240934971885816719895899810186488531824723780988246997692390373865954771710540888560837342812635591570058421374053997202166876218109218509578535095131868773362641560864469520275731306026872741559533401231909120821824445006896385129175336334506576124964701625598910500037631766777107270625650527801042440443121670883952964833988300597495510619601912860473935018508794468782267884307313505781875962378644528993154311311150956494981855887801847833379857806247489122375146811202181881226697092059420833547814082502211740329793857766718467375690948799434274194285158048020850871545474313433931269992361230933124335455558569859635887683002856221804232679247044292859313457998472708756623250033669015964393593816559712863637374577891475756313644741256526894773494075643743308347873640116649607699008858876249305758269342220396396379346653986523831282637087984663736338665644530213145743554649387533731529012224637789403626184927921820565452960172993877827232155156013463083524287635754657475666317672107846732888674662828843606621676239997339418259747254955428764467149096211291635275464660516907720872793889495676748180176245853742682116255235243273844472170981178334510853488776831637506818800375870980212560566031108341449740584433094128442226668663634493934241071628667387145930403606997332383664305612446798748745761859895419990092128426822290672687160928851123180672332027300844085868472292738057973721248276628627005505459167860236569693008675264994983890322290904087478666090196233384811346355457907839609071489799690620084198209541655333161467934800402300641855842167439021316037889199837356366047039004563751442881051789272516758683636435966984946014043654719298434393097226944815893200170080657204434679414791101581273210200290934472353026339186031312245407024992018654620483053315690287295315105864159228543877882889116315601666020643858575566314542965373663778739309965360891568307815650997386708046917040350841726080771312402445952430439113944817274991712170974852688036327792053104441900758343381637567868452157062336992718294894888964157194385137458225998090758674446877566082012261460764762049958083824071756150931818356719080993569421083147881901466148001974388097018393377610068488783767539443660632512882931432039562208021379230071250739665134536127451568399374462475070779585681763235930888246256209991515808137137625505916961072815364261888802462559113715176807322646997360770158885824162652787667289753576509024569693791705134715790394771724294943444453474703743607027581707913066864685318175755945617501312607333769798690126416106349126287810121128073396024216912673208337766170558538725518527160671067549035546301629577918793849059932106611241722644044482107399282285216843024405732522467765819606744420811595016467626608356042195436428205658325181748991507619584097916319621053102753128461861393194790198027654626424869237575949506184715616887264788179001918572819405525969782093392141825862890289205820757014863983790405078123261636623135499104335894909215965216235478059590166627793794953405408661879727233975161466475220976793802737326576856522810435180152747919757431532443484605126206271717401157678087134839880557491739449920942839979191053355292262662410326614892311945698075201255214108077263509156816727751771298711817738491615212283373299741468603417220991619544136905256893996919837079660720870190227461761335512782544812661709200297928150933670310262362546756007622060499008270470634076276128553093807802192558984591184585970468899430626607844141328560701489062504931509656985391422726772985952017121445664504388722179526705854598675251479522664318605606536193089758583684725211395491453102277372764182880016717956960757271760032150163132546256328115041342600415121017818056157489860154175034658677275925793079772679450543383205985972066779742440235724659326778789121556237257274662087556944718456949860992105986536944461629491606522890490276356889761575156505086571750062683362189287298322162387260194119673827972689015377298962156845158770141179323506348394453602784505302574796061626803155074940454658099809026533781524316865273370255429759713050701972392437116978839399466509864685103894811889111172189762436400495290239618159172740598716458520100893709049389589822319043823560286591940188667985003383249665657043780769751065434215116828626167369478636122686624625320593036923859608486641333003555614668284142357328065622504686354876870882236832784800508032037722744926174193834991013810988476745954614693701118180571967881006325542025436972259235697019308849790800775136334600977985031655833872189376851807146856581201687313895813889293926791379282128902222593127267060621405054896382026877545044868420569133005535493111920321572920763393646794497942920338702993755459027456899118218814109226465457425493724163990329589696182703435204307874333115262390872141337734292650995371027235147755640908469750340819705610690518270730583240560579222190705873093151716434784821282000943451964654139221632746215691886024133664497831442666827226504570694400410199426812884406520334629512253399890305578178015338841939269692312451677784879699537248168643053969984325606799297430999035706065572653666701741532770813191012551322989496960749504067434273098628919200459609861777488696711504618830824184514416680406699105982374127012813642530334783847238731142075703856913445715095445094545610010480665259291042863819622014929457464305232470951504492914041529678179240937510932443227024127535201122673560776549563314474133967616881981357258612915869769119239668167338113754268701454879161719397428464955885931198440895668511124674926099662473102033259826055913047367366557182315222578001518866857001720009664574383293104810989987673955206728803183133064621142891473379662058568580571379549220846404074045862962774058862196639541484498916549164575099656791349954797216694024230004981593037535756155894014887172813467535246163659803522466927061186173200479040563085638999490457155528505585886769999912089265704446089729675479524307672002703286401485407456347178246914300232465689647642812243323038178557947781688521752981840700338716772866534831213032387693404384024320884988743583392721943537890354974114458990490117167823293648644339971505205125935941471205070003603322569871817318056218474301815148277042649553803803135326681477624856648780063164233092606783529396550708109908946260974598109960017209956092695567248484811805141707412255839065045391964169978285999351048728375797749745577566115131502990475667060703405988010017507905534865953620838483240092541183508025881471326126574877400317816297010088651101001386311510240436730873534964016918502628583095018146688387590359319979155286388921823340129638564920300393560205148701717540337478210089658497848327018713811909416756010996230280799242172813704815843285345611656516010123949813723965439672379356739963060360497261207448134981473266259042206509273339741362940134347677042691101655749152863875712234753344438435813019491794004304035582161878160978088583374070555336893867906596314878523982065506157334416304565960933631604699782437689086240637926009198920086607179810246370174382814300226668611861265544019161785419861461048554778238336814946598471541959082913520514655043600176806913435939039651868355454543642649273576769808391010058268964839443146034226941565581259072898293336030803436594288172412999538765585377227445437844331946541781165330712696284236710719222362343071089116315565541729320303817240647674313774720676211462390320369092653796192377860509369052249354268387227699601764366367812693505743786729243740485067744800187171189853851409701690885840803357625910809117643515164424077864168115353203120097116910338251987279188764878965618647011886485618741465224258966126306195413722705509740185947577250569075438479853981927384831090466060089774131336847136178930983170018476504316113844374576149050913527193289427288026546572505767396559545806997724484943038171355739647190002035811808847826930356104673648393639188228547958349585447231374289858271269813952199317698885925554145826993763063785522030649999652729625675537172512285992345658199161008326502168043563696502443889787295934213115337027273161431307633250656859195411140081320426393872422586923761452128669960446832415086993921719722565733729456137529473594509562423842447421504979665750058777957393329929900216762906644760476317033057373481338233528195054716043272021371679334745182890905844909972748820230407352324725127141729238732962573305421200974595789433893826195216316399482022579772170940500582848453293229777974731759841008446130393014057321522979752036575121872775732445215611362658995230659885568768335875798957900755160971146785528266269684962321856595641857199282204970065485234048595319588554472298260670120651549396425002683326980653837568877150430978506885074617212573953640176281214733888913999912981989472602138997866534394648143650728573075770181849031835139007553683385359383945019166679912274760316277412782340266622178492950866113596351514345702758546137317147415388724199811623606563034187271268931849530535991991641718269974953314492308498549221934656982163614683821154747492218201619569208712946154247757219304790416622461798727926469666909943287027649639824130655627996108581626043885409127552017209066515055471589919344871953223381669718078064097438836573333414902635044301209207487502590777288211525021868452137682002815203465852492447753983499927845092309525668145801442051843428468534396573788201741413735840477501959222432234937840926091011608086168490179881555106364407212774119334410980123066899801049774559131322235235891942949418747261221382381802017807974073789933988093066856035236637152231447567722155395456393991271110183177888240139700630267488380751398675001561289162610853993410976128474021035861928861785425311339457202638856881856058992065554494243215125397229789963188419057365851398411517989504789666185104871245658712279640038232713515260358989561890910474590288252826988465004720292587442125105094865440155926819519475599184045016250845199359866737983950400506235451836060010761179171856939514431858206085663633861225430991330682499897812610025340777183527865962387098291724517483942366885441132427587204236608623621551462077682246466114397806603755653804825411985289850905174973962580475497433185779947535710158497838697967317155561312851179023669557149132430664414657722377589029036666503770600754250976764358808437721329375732073660236533261357085529088936344258481669489618503506332900327918475083075794320731491030958304581654679300018812307092056749908229366844788923962594191340543424160680652809862571620486744881005626294446883831070796577254920326002759072251573738292932437777040430468442110276152509433984517764100151986790788355514432241364832939706215840006197614534553662877704370983299167825749480809410291888596120164076857388839429474047026249449317407631201330453775460733691642808141962219172569882797645215851051889625557616829266464716001216750370347280433933856011439862670374470817757477777390748336690995326766177262747686103962066923009168083058768154020278824012219919114064426613541444142233682364391029511280217503405352908199809036856956087104431188908014111466287343636481798536486804354937395292028123912863715663038984901428273427561357971448074260724064624410309847161223740849166517853066038755300232636600275183073587094093767035789673062933410842096515439830770596252749606020618977104672525319592064940589881738724499797770208078263061944439744866077485765383399274931014699541957199087754977629636897628941830114649780328078955444023910287352385763561104947736434992586441979180618981417924975034340834683136921011335537460807061462400801047825586030024078228271865897735733338714667909848258634848610559288618301316389098631388342393596891968097367888735352791289476774752826583261449849143141124917707221077309250967827019436137267671729070632608656486163237742518912605384822734442750627786560077540205967260092542920612710138762658329286011434199895789473078141568128001198037297397294107582072718603482763269542825670913004714175378397059951133318371598693925442157262653048478989540328648589132999786502896530822130122375479132251172617078251027048480803540787968597743003093075504223229942056273086207757772681845392831180306912887344613591156405221201682085596001611990374728839100779000048784071095030237493011602244330734312411043080908984685824484940743531262813984259978294754843998901652229035038599327164629700581079565839582141250536305660119613987684556326301038903475961628989426219076967846334682424287255184358956754959807771326990689911205834986127798431858870979494469248870531060858181016154741295120864221621831193563858729477006958888567733297944220343946166244702906891285772008451276242715060843656246919209408601246102199644162364843114859572574125324803235208231007106282539501530898467153130483837450114322709167805169978482049177744778543900593168695770035579476437059813160321210457236783464419517189956843845923505189059796901874985680789797456549230124330143267954342270779332600032289841015455641864977927813299674400493069812728941751563952656649370040018682447987327380280111726187300697922578452337950652463897316371152022276438464400626996709005563658538774579309677433174491628861894109564411972513786897190795133163244170243495622655804854966353503282377079907842828538842669394585323541899196534255312083184590473119152920566374224369957033274604343857770394334438212416134005700028889553265687059152946829775780464006396023281922397079357405975295816083242527968800279429969289920455409020294401806445436567121134636176943152789609060504769758915513308590492595398138879856659169033174449035877840707921076033098846879927745330915679197043371854725381484697380474234370597301858835179882950930562201658860662097253855489512192548095484008597277499929942727152518938625949525454281815756661649504048344724071429452391275242808941640918897939109965020257114155667986752538080193246668539412023030413496926334392655421913310463950440634713716043407545335805025601850510257299119241092122842082564230939962553343641536492507309349622297555232456184950762309135635140409860409145002831823618130708030357787107431030193342978451320243861290484128242963361123551662962464229952047197998683900879620972209920707275970418915606596514055054400611265223869551587354913857696260576867458725525765306510154753682590579116174343143287577592153113556768996967290858697188328777277503461347901538409436589217816848613133773662900153315748555020511053582688344739971409044811250388569895057390697935010449363159337069708243315731402860424490198220181550751994374872510901554114232084414344592893678752559197529980432317483044479409295788524311523183216493402544925822424675124893592170011604863152324618083183769705969259942207718149467556696777840846101814748594732827338421698292802692189012432986235948088933929892403368688307932126262374033571925936537578272165535684871137777939483726619332481471466878788995148192680860518131729645855268926195860134138769924626517305519843038945397080413427725064761794237737463714940421373311062993873385504647334545838797011801278317169470116686085737015433808697041194851880235950925701588548877292919025201077704637549468576938629548134878510680447507545897234855732613304145058452430382771365678764212861157165621497725386010006325663143968292885703949537246339479322255476800631425409657382482000193868734949869727403785712389169218163713807835954678559710434834012034964352352595556256343109667210261721560997800652939796039096551606467123360057077433191603834839152649619105327302787043013104913765311283783040692751132968872919728554248974289062125024885830152211988991788213956319032909937368017041852100971194337676383795838236482119674245485199884679929688599796834564358472779946227006925239659039541759053675413050126975748493304536450684756832142058535041396320982129736064789051732725631433787483296960379497103831442922773716264445083746513425264948081906512563610809278445918481410022255039826476702878951058143854697646898585120620984973533983826313817344396088791812465188202514478730093086818992423577634127395139111375294597696808978437385389411012668925271107771770663724185144220133444116505564576695451781342421799004549644355015529596262889596899947483250741709922693357170048316799720052762805799635420402923065898430497839602285775123299776533303439434587834940644197646202904280819218313542822061812569599712948898300723579970510549603662708849969976986062475203549626805584759632483608588966064205951443319923649023844848317999872317277860515657903950063703497709632993896475079722597532839673522416585697977753984291951910084593268696871722802400310993130800520821680783019736720383195692681379344170471506431135967919305201756681126474684072375577027874350348700596496343955854296579175882987562830965351330503857371738791263336879941862143576279980958167965182865480508744847400392411407094753378627152640952454287924114690243793346950154906185156318765202626399102059486924443617133096137972310887526595267279498967149264560603623346506512514990995732515430386517645577094340096103746351232573646187790727061136929448461903995687802437996006677610612495827710689179621737486421843233476927354275321302138167347475644949837381779199029685100815446540972485269829582739109884302145514806995970818623854465551693876012102358558128011150970253131155550087525612949875770540195527905266526181597266558389661233679825786701453456356038093621886922921131205418676468297169353411233192855720504941609903337421175894242403598088086051603828598797626809874449768924822134410514413735291108728183474445488536494064353095468415977397264768003440736884126537317335594551204773273390863261711783409004836296821515754139871904179875132220382693635099143691358106749036849979013648634668376472499418336424458464631140959783497522553098570771209355601082233425379237127977518968703337074449605167254318510443571655633970524447840975914269936987846811434825135649077793629189128082912691325950971953866193392681921353194333266410814094560084006655034440346825093903486111365559663997070290175317716695373823623164996043858996496703287859068728755663773700854301920282479811829949343194759717117224811410594500611267264503090060565788577734523108483805003986241515238357112235431948858859023364054469273529843772018653734673328312887271552352130060550810123101381338633532899563591828067133713526401850616901757949114293364927975178698672906057176390811020349184970466269242532693082937022655713644972664914110480557204439124510403188671973481984964100395640313153564066984160129909031381779433010594869545186622738790067708430795255958926129519110993597599957852580892393231298747924010542374960334863308293058934417497317542466746473910481990277489163369988243509697794753742945846870859804330586732281892166821381611102659661070815267950427681009355085051142974098545455992434372566968337971194383454107122783442718146769773573555073318776097261093765784069032973110691730113665130394408481543695961665442957057766975499512839592856028501476543847224829802155562886027718099686969873375213032167278415357262244061446906301169566506353569282476658256829046542703728854077189160665839727397770949231572647142140087462025144657155728363186203937223998341221976397488885459354751995544446642941198171741501188207603846457501910865436027204300123266634018920481032903624099540318380613521131362243126932175241467167933318539040095624973831880117360110171098806161154035547438070233618043729252230474074336555313433582804473466296105814043453607344791359466580502346837839538258167452303336499302254829088229885130404205293424706665256238925117887463493672260588472952175467648490386060991406282883216214920224158858034875996588631599402996307686487717550253820355774552516410666927188236254423767298936889031615903654036166652890820232894851916868220049095930646981522710418180024166141164079882941276969771119641712818953275672765588489288693105666482462162915627955267640044086999766848741834518887892869289607290537148398771765868996839841734472537121639149372440355870304318336657803613268681032385163375867732621787741092674414384281651135493107619342965953578960390803316462940379487712426080887107420137448384552913660976433084909773721033301466847849743544258157061244260321707813724039006419327587566450864216179173992878904107464361873837389928230820212216099420236284717680949922037038754220384691083221160758685703064168481559115039888648629745233036719381746515177616550476710760378236139941137235242236492854452553601680008377312903459792517114885589551532388984833150869810900848393308332235328605503433184085948714553546992897419375934206873514954341144444279275322136513023967941321088235105899410147714590381285213801370921625250659350595590042628437282853314013865905218267715431118968758555285379054543616615075251242863728949274413659834865515950781271279644823898611198925204910283760909410559477385136873651177041837155769390349869904514498066919966287841963617698287933047863383753456361347991650839623218329422688604404536491276512283897265143786245286738446478593560907822707865782684138096410909535958449943799110131232889561991823359109985149543362113471205024013543232784189403968541201344038384702164213707835204670084052208235967915738121435671138527641706907471013841825843900944467680656921060810719225513372505621185740814437743704718317097933752041042134888232301274341389581583368325444874137210973417520945859304452257983536224701696134521963990074864927517999404546037701532853480312108462623487405795361412432224175662349640156303469221943524214255210702733941553584236100307286523427454471828589005218239497359893783305968878688126741319457726866345271030562837926127750477473289745084793785464224059208284245575834969128898080118642929204021024213624222685401456221914550965114578544268278661790809107405675621425863602229993638856308192530009257950984261862132703817789629725304433087348411358970658913838725508793000024767213391325381106911421913566077919503242067248809875607121334635007545507790324989292439269580212029838279573171974041912976669974872620971872021620943431223570578615129973916404610652375513238389694822844630864624973702975381596883930582264254284102789411725734877473163491398393234382529130213902411727816823443059493633535226041514934643787931460167419823960754422250072202173484384578319637119244614815323186316031325738081058390818525286668491355615215450485313325082435113539567716926626570249216046625692495400158681129133733565299743291365601379797698589683660035916927255206338866479883217264474699935440072116792141162522810892579438838402563691000080108734292741022203839405790999410929788656045870799506589342998117539122584753415170489324480307180997014190646727755785089787786081946329129177961564885999390235490614107706421695911546068949324897633328775536602435606023899817116878340369614522980413472013330958869314782689839014163169097835246693115746228819205257456800103543980377199096739318565498913328377162363247278687647660778135337212167956137518627081080527812653488769177452848894703902589030722406486625573616017579127461824995695163144980350846129249960325131230762508863199159888177308823399982073707798829875645662722215566805164403079118417911913423254947418411645300565129588405702838248740312328047074527702937645206671003903437068294270050984558594970868975857950173190499128702065748040436900105561363552127756142903499495723140252365837139138339715153781055317855035655593540926729265108112300222806267239558819412345374046190959571878079788390996519590471309014026388519587592373188071483266841353494432206927167536173037812815936200776032667935196269352502597857616844482310385127451898873598864671803710556154262039813598476967701672003880134187311857213418632220520530769502521059667142931647036699138928349587586635714781558948146921521704653334778070274526795886692552489963984904270406089845666269792130098681020903839955001765258965901308777664275774216666912209509081455627156405610647731003858257852644037462016257971517342908044093349605440517912999777586805513724175162625154968947993930196616745154256425134836272545991636634330744582033495671744645667368284613364759456454288942434420439232855908558075082524189710062312466154574749786040015483182128976646143137742667750571887135919260148691816597211680564755218532826959025337262786105064907452730674530970783399257470944721678141577578333318061018071307501822554688261067368921737856968370405312885540504237306789772888858951247577717847219741717867760787148373805848419303258267536352995083656804187751236597765759328596248443720058697148464645361695476785251402650036584787373747480486893208258196027952621309155962555951740918674941227094522307432656757082396567730251338718008943249734774915837400188842929110374227511539098454406590883378553343390690748899997070404577736099035087637753865678486516793069249948351138965899896483585645639480471068949325364979315789081596943275281020431126143866378433050441483205480806228120887499130360173568054874754922375462374489854320826144176573181478470341569471633647942418284409342344870315066378245112787670618669785475276856977332802017835964675800082852711062102170999798266669431551377669816371196024201392300309117066986314076859140318586917798797095458054983537453504133134325919389177459425835754902312967921984404364371275774182337047109608266803502267923346565594602151454795135252178808718049643220926500942790055241067164864892588558024026057432328300481210009756866071064570517770474818143557971684924492902274875166589193304071636732990097409190743436504161731133860639191186759383266379116561258570083833402202668219332351251057650373452651304590247404829106206748793000474377324484325768691698761026379772376882808856590634781280993266683031352999676019934978489309564975960552263100237651061070985424953645250216358446921401652684274620666758150400885409122040932513060493353660379083493806082151655728490826044244495813767885736594361455522928442027930797357095648790519002231026031967994325448600588359873500659395723938270332071610686851267654035492206796051342186767311426387509461633886555446110084210581839848267063866495515307285148844280433698836700275186932390702254121777834948480740180664681808434108991955414825081476892985961206919473965019072402758951993949052191229235250240102822805042332596033738349973940238959140847013997113086067213997843704965346992360571721485417375453794292956989323999494857179320982422338689961730430767610483921601603745748518467576209251010280288305915291748097175854266967533233014302518842731652434800172698631485264519481464807252204224135895407704607772649210126825559611852461798601640810389419937137847312529362752706774575132995166198573340805113527426688761165032988071451715817982568367707413873268309176317934853103310764389899485274891341891527062120185707808493961921756703993674637252912846034541262326165621599703792156247853651355985424462061087649559971575173277531284888270262938993988605232181219574250050078896095209625949649823214930975200902175794863001591282809008542342262340930644061293194076504038725551915788384463712736102035647578864491382826360723980748593480299111098294116091628045843273193754577239728371603412625678015490136834086232527536183814316165149092584357759697334842828160777633307196429288436560572415401792779308934991460179551800786936655190021273063139049823807088192910415033627895570475279173204932318623400732279110909171258575248863345523618766056441031359554997925549956153384955030128847386503930391259811870375462761544580034426971814620166721068384581554162839255939881643601390019425437588583093282348065278187977894561573824237062743450641585655415312539967157226043893856442095899463749050858143013722929677598839274180704705988209681900438935504911112477177294297181206723591169644440762508807316025249803311686589835335713998062539576326450910451890143961570824348743725228217410395175772283366611955309191961837035826495216417549742734170927814889180924969944837221342275178626458254876167276456769170133079669223654931607893918841973759607246644277464741949969008366543320312889004619095168588810158069565086820386891135632295854779981137886171972541014212712665545007794802126162791783712140178965784783111738609878920804738391357039623765137331314476891016890565097569774772936397742592048319658995186956391200093026394060276356066115136607516455660528125678337176677443196243306264951538550841228537305159390811692289583028947182433475912024801334598048982217541770894578996788450118752562785355517537104695284942916622429973767903230117046874502682643516245686310576742272082066836092567508208342873786083789199748822012696865909334821716007887389196224976795367857629659550007133825833407299042460019009651953512297306187977400266322139441725631564949834636075047987920213764979697926134092908242168111529421069594679845542932203678869679176186942139893507924186634707197258962201423281223006196886589166686047077393304544341500567298987780921650707820751345752412098427639951647554458684134917022955968239860037939107407644058563237174446162480991575844650799712203758839769556078479344561857642307785147267059854228818871151461553497268971386338550933511116192219058130834565834184637535518244882799936775970191077884873928430383725132591585558159061604639368169734067913081253943058618650962574188259641935169279602024548274515232171551775957018949708084541299189487050755097975671881381866761194565326077520823370829155366310482972089155297170355132640704243882564234428791085391570257013947910760874936812782156238516467037246183555966851134803185345616322877728027918900293381748347573509805501066292745330726538619828894465749753224058995740933921667770486277327916673932908119798723905410297793612697536387842287477863667230626761870185855779472218135952230335793383369510716845709609895846851413080261864108097618250001769370553240133717807305649888495742265533606177577800340354521957567446396419177428679330118390822591877915897447347479864613175943826074227806624003774632463486206322590689752808001778858161575695212767162011672382041814974964087498761665677752690606330558523194205082554946191750582234938373322022629138499547186577206026573433039893885736967031214631045467789430029224390500884182927959652638525228433174744395808820280854033359535241874320231525608516369158850976728996114037184975133724746161045582203916356544561510027777165811800884770118770166359636925662145767076717058885058367819504469305858086711441677663844656177443827423837624830134176621952598312089597943110914571690167394193820716002906383280485177510985517044171600816557894915758453429271286952912104921853184407072112573018870470799346553099269904446160475232258573776470230048894941579053899963372077969531795639722660124635717394956622823120686274424160460266559045509344546180494400660790258002363011814780582201150985820673378275924851937278585688066912372132492896572628075222941485126891046722834612841830506313429081266899804270165043162913621965102041593416187607567874080118946555222868536086007937679663160473816678056917217116208015203832208253679506493263563952502360698782577917482532194817948692891827159294201852125352409794914885835967371810566363975796705401729144687840370042845016643023919581902489955465078968064185348115202968270602630596919903268038339665726860305629553010639976175294850508239797799016660736146178222698254423786087232903965818909380619225143296958659884662456189650059553500725662837553406182352145075925593244610696884886531579733529609000491856420398948882459124589474540119204805373632423434249672717148074782081757937435184275301500916556687797603970117129661382701161512494763203696250743009269376860068130837748472385443420206221399931261061983070822356669672034652488128512008468361941741147860872181619767934909175731137200269666922464633113335762266812031781512461670155989322295008205828287920219107729890354258058331334291552662701788087166014036408980680867431094040916514790125756031309915103429800821893355726737880321924744357289489659539693069071819811997275878185927766358053418430487384916030418667043814313450931370180732450988625254462248295581056160533740362014738695424039329461959913262376911282483273275700698763112558307704119130962809558959088713705040869444635708785953253582284680839685411179233907889083414068349161692908018542815556783238875613259932146989386418254501263382954869235063085043927507260258674643792454488117752716027390867105862418027640581256081495097685013550316659714869189376014646253644097571161871479727487401904199628429018361828363367296510954431219604014571250898969079815400431273558175677492029441630509219053200401368909166913175433256389337846417243293336073613884141534367001582366837801042638575140983576586674170723865201207603184994271766156347376198522684820743183366126424247245941493770540907416779203927567673829065827007120453597252601791322566086217605816002253580963397685055794818870854315047514619618345076278985135054545871685961905882753710218294100885746747881659804579440379571279521171182023330233223347522619413403329532038196227123746386009151858421949224667175284038628610078371008194120879224364727819571701899635914154763588461808508806034441357553357078916768768927609610675535713400145821382333463396505516140149811438275219999001908046653509336226885320406562057846955547697752712578414554120970090626282024850245967285454561182566364486911288811225341543280658664712769827958265485256665358596359095788257159456672548013414390416468602216108319358077879728269842520339371941125664260465454760408501060660245273802462207870201224331775505735439791140634630086093090635986377219395976231505354457695700606981981632787502984510139530634529305570301027696919986106073804855497191729755695604150938885572542555724305010760804671320575562307053648285140324680873272548484352354491610108674351351633872511068164500108633810162961122210852251388347150079859143096519609644121002273820007709093196948786514285268763610157647850998098034160350731468127128180764116602969952169333858518436480191922572444971377989661652493310946053644666104257022461118934270446507353085348922868733572092954354256925746527053043121827647415241814793439091633633363772764249333743859533202627385835120112881498934941546535255145616221538282188081558647210857036949906288564844884058379769830344489301568737020089985337537782184962203917944127391109199988304395071011765436104956584711254895862349434865473970101810395240579322673862385878463497260338936576026290702703162323482153110012622732120582089260978745962935491256858110873453846895904411849142405055385337912483585900296150273097243233207191536526444350701041689108877523933588490373671444281000418995271270544318882901639629497173624475543338630504549895144267219063404801236469752430910870922414049144491003515064797765887040081193468443886986219311413689659541386509865250018877525114604036999176612352439209289957743164204441976525640502329194874605282688132400281372418308049232767250231677990121717306459032038818378912032665017092312612558192794472547748682753689808940083167115829946958450242654437547583710487821477898514141660375550375253429959230655903720173285856345137321522517910620636886065121423643905563648138333726256731147279163688378119502491925590900722470038287021187231463585826586471624859971936281810786238646181706204627125268121224284572921850125402363450259445743967296532071417791888425527480830063213143045507308188519803067609270520723677056096026751092941797018278730953417282951146442120657108572395386831883407378707652896550333405655934831730989391428904284005601894625980114686473390897695953783391604265146645081820305178574297234158850828065681102711851391390470151324274041644515682074130941852958644672995853333866252746273256415973935608151130735153950706921397016634977678688664771097424983335738024783413360147690273110578660198465356244016683898623516221147757066547343774763559331013191392436188039525936498744177806236980588718289688685965027256845943860806309166265236106420772922600134645556468327240029605311420459348540412826369516789372660910990721034280719106321044222582191432591660808917708587920749643055106599835011715617578312315840382610780011666181740387188795508584560816338225887385644318690900890456697777116648058432163225937467202238712663496465939121599636056569830986543018408153968657135307262522071205812800873799694464466019948479283304105954378396416709558645854887595515889670246611472983657356698842008696073007077128455518717969037228031885338898507747899536132392146547814712799184783390930073090362906495310452465735082654955010960942039682713838219721498368292496261674117053246164384484100451673852379066085889510978999629769867641203934215584587331957204378880004185396816396896523720005693219886876563053132358476144944229309651785662209771121277000690271574578506948491850449155073240101456719309251809680521855096925911099039516789444937050069550969156335500458950202569695578963259642519220861827022551022890073966747152109458473642575293520555333601897934573248504983461399864220795645709558929648957816998200595320366440931695943465651721583187152658599099963696481272039001655983792217743747857498424863604238669476038758422625188537804371948855466122496453850827257352298334195251594189635548456567646317621235201254038690577267743715014283554680220155866099182417891419074449060298819440646168311253943966737341143226915912921557106457849687059693478871883489783905404780038040113498870065006266410195550464133198321144434796869530625657355477088352827414568077072432973564478909727600721532729685933341484089887960657298386539719295430982656506762271949661517168714745169448665968391670811832245060540413259886701363651852232270640227845040950669505840315469856071636418151740694571123028377531531016802916242054545459510770290305477706018073170640363211433868919939371798463795691485610798361615132936523755098605958945081252433001427560117737118722989860614629331366678878788567078142143906513110720124345215332600913642390835021944662212643217388768124754389322922848355168036536811362054671957417119412915403521720479112355769962264855116660764067107787369076159511036332548409681643137648630979515511702421136859970734945580693519595202356883123300191235284446536023632317624976940448594394555650441514882835954901863574482294547623267530824533400949349119750623522640190870684010843578871213520867655087669343819770378436587592615576589868859128339332891831389960760468794316546856659662662468038702458270418318269489051142828032861388485544924098665732064010008238869935167277940050395949232494451250365035182283202743890027393642493871960051925774826809724390666205852938954729870586009882055515847197710245734007621499106025113064276258036633424465187664772972011304372700768922935193991816340111206168792883401290610907761802455965230281830931225948441911099238821885832837899889043424739291890212924039435098594469233168725733902717670846376726673580659696489488725567384925893448220113820352563030252455465444137208141197635468093791036657908266991892931397123281549650158957699239868317266851038964716766866960612449705880655261207564683701968844696550523621105145891160179765588186957169462699597443036214994065522462197081151682890896326494237261826373594122236702720415228009594665116445019704410666978192799950626118770743912145290177334783861834566325330404729186389886464247774232097240606445506235934845462506203971906119618481103002253684710635681061368599840530835112995278142714823543776715312263685723170764442891286740217665989649963756038947516934996412436427607230507350071419766083403517772869519883018280061467143602818652840618632873113735440457779444725565303826686235222574985894493148801295688873428803221866801570922427164290784651360516761652255813090873840296167951833157292451781504624708867229445626059675326287979588821151643687941353057463936437117298793390814236687381095541144391708161669226374114700249531369565274779425298892226366821917742306188114450867818550919863587202385783127483697213493592969694712933461546359993676600555297232608770385296609569199703133955636333587805794259151339186471380844256946205940295296634486109355775569411843355945137982035536583228178712829456862309903715160472374768532507321000390098366318970961527060436568182297943507832954480807792425119199944239597464717719041690863518111085638027292877642271018210077325202959856752977184814186547856789655176790898993094552169902688569406333956849800879149878458356960254853736460513726915354782098964551140909861510017295823805180102661662369742070825817530652677107250449612860186986380961263327445822472132411553188951126813210721717503400372986151106145134092506840103105182238298977872523000702326700136999942166426436064367256177150162185850337724548280746289752259385914253598975416462496912785440051675923042241922710987376317474606475783992814175714586759305703231606197098588666801185199399082262395044477298704672842429034934412037375009937344908887356325578067619839372950367911247441569345763149126093030700288147280232066462192330198963527598088085211322300027000991622964602616626263731038848565607836046829660100649497056156826220322169008909256202049099102816511738739830384721287128782320932289910813114677317809443006753103102610788585259927317394877937928996729136684080882048893158288039367945535515928576773972195186163812271938025834883548236445196967317667561510336936210005545136044914027797117753362525321328532547355869342135393243900468855808663893666233153260236603287245444342127337278275380159255613395029013237101445121600162311809654599259071495574058844580584090567449565285630244733254197801091895415772749622635820123138395980845050341262256771793002838688270371951443512698154025209871583740550842255489663198591310987851044496052922652586035082137150864539571401535079208042765664222051326301422778559285527271802485646648139744175706332848142219623024965292648210772881764474816843426932616181482507446697228233480924030649536940779782681830168977810676498982257478002231579046877779358626295576892255585382493281078092242116540692308095193177803363721175358208218900160055486804309333073966070969448326953613083279112204275591287131672701846603622029707057197615755571348127556547789690798402750618624713172108827476933341339259336192504577846882359179483712207133382605801192090310181281822497393805174211646095022404627570589879224092007110104920768762119656231533771474561906884205274369494618342273322319524453528381385055954513407916327600267122003703599416821644649101304777181134863400905287034706638095426680584805705251820262124264025957036046248861419221095083490061875649930800486161122504314902438409090992874105953917601437989728178183281325102746675362367402982565490668425297872310890888619867344152299775805548556039485986875057759990743105628240319535854724132712293974357591753823024391955123945812180671217798932409405380545504851108832662149859891902620791753530705584100023553719152268844986032174439989123968906647750358213169081441649588323448403528448718109001637681439171390429530577545758915271763421813351386346724301897037603229328112372839702650572385211413244821664661400257785162871547488345365920360852816445465462916066213991348659565970453957697778848076328129108547448971500203927609192368883584144085161211509962576940308012839973580642653461300735483146658072282479913575772169630521412693219461380351709390806615717839324345987382977605323090917272676610275583949000934838660259285145183555417228287246246492518727960423160318230285572946147589479970054713272010723971851271001883442902975133634033348938740045770679172149434292928334140936214324721097637629295355174206941575247689622590619059832925892043732990620365142806159829184075358156168817311461455839652658720030203158577182576669884601449160499479244313870533519939967812687074423513704476511251577194842543436007453456057013716788034922021313379354386603819388472359264079177336377709111611026761817552501617967960394529880254558681816206841281983326311927638054093371556331394597572686336563642369953747931728843793292680703298099681392518239827993919934133624475709675729761839763854539774049279155169171770689833985186981672834454930596763359275496252207358644358461033968584616598213769816332480239451921459610500722036105597926556599651550311526274830292171257484466700726989619242260396767746929935587333807647570422590909778665406272719576902538557002178204293950539805146556111768904138970548717794201097525359274702926495317256117782169188834814145459892017367811280161233670691694774967774739816663671828942472546381625270130309957570553529154102719321787145774191384809264031078091667534822361421513384010649024759439674513092065743207430732388929754914925572971641636953681648155332971028255198505406110062380308096426516258782286878117272920271363348137005772938442459389369538359352588945836610671652547358849993300238461942846192365092910661750611729471587823165400718647057563559278098742074764793838592109535060797610203154055654914774899639805270803250409719562899141916561397005069250533541045767883448494737311689228501328829556250896424736908820730065137701646297277475155053297804023937397433733198268705224672741869255891689256479113488883564939010362139325589923145504320751003816501238487451833880920275431374716587511720993756745348860521884435032180279294201595387924463799112083601686047311743496057397865870202230910871388365877910775932721489257708542619536599710594981838058827442823667184296489965145007456703630122228025529273899108237510316848331773841451399267247762882813844600886368186176006766396025450589996042105587449059583660287462771411283928618043469371584268311807966638625854471845236438282041554533615406213738655868392918264020922568788722435354517789289952746675249459798344209499637678518714003695522222690368306058515274206233072293208864710146353907131524943880408627698393654916294710494132069639557928232087443544518465360102291176680407866698406076527523141919911780742037569731834122263079958762626246433082676648087028399010308100319308686579495927451653148722676841812820361825621937379105624728121502593580081136978529696786411680688641029104222940243191659067509718788859573638221609050085627888928569246927492675603664823959852598239644160875462455266347377678645621794117867216057129641559811689685197913453349041429673234301788269147114086499366595342097980591045319253171170490685687650963714617932795059823932275740005346472917755748798831912163145870385547737532062315024061483061841147459876155803890263244338614168625716676853085580731529017839432847439839032244962657365527071435753920562117526302510263869423042420142229394944295491036554414486051323431703678104591314982067077009469053750018439894328208707762231897621496673391250502152157420092241339668164751560103055114187339884654737991840226770908669580066058697246906154296694615561350062730541804528181421915541477128513630063016047332050155347275639656243108271723348024706881107444041957649731965495147716649619546469178061412513441502971691704154056483454685460519993645962417459688852224238747845278220070144137466295345434987507743640725536354308839244313884207212677787064674294328977972957082717936665594687926081367121148594191928628721435337502041701820860418462192431893396101821300986697595662475786840688281179658249027601351758956230700414985445803608842590034553067171478190189125394534752943426329938875353780432582953512964245818425149913429122627293512707570628093891364798467610483322573033928886359955851711810386047692447053694774543118150790294064635109368771004078465569320841589625579757543740954034970540654331665773464338573200195959714629312658932402989686130503717954193927707696934218965618940248912387900579272710910730033532178753686581517474000561105412418847220356767898928443637211502705537983152912967048674455536140022795836683463399683390280706872337976798712781241900403869083935895945804495914899107341788814637809130531220519998465751153627618950399015536251969918700018545533951168760869704472418393768978416091173801172796714506023190561981436418608765306998327446877551297395106340850535846272969553830562053456048666130724650878374463476774117644474824107502775636282984249928075894652221466140543389968724440684486152610795389858268766517860576099585760762470222131391324668258104271498034183847153049343184586580116817940372261048460045073511411871744598136521723597511852404001008017406087245588686700280749184031656808648243525913059595930384713153136105810796646782565520055564578049260888213589159715196286536680167937021665002728120229491819765303913701684786582498588007288030191951790569627391713633328382099143040627311924092895508823057674255935777158011557197586585480280409232742945156181158529527133712442519850823996048984566320532632619829138022032987173278295371346282448532618783011747269706750185570636040816488293436114889691400219955468773832954383828878556006054669603509655368208237350328669558944120094292949545359350983614895108107629806397682528671671234945919999688880538445682366486189711639601302302321713936929212325109610842043091126328848095534788768302414351954739529673588267448154982334062595705391674005434374766856900955610652178421337702010700428183301762314092120914960379650548744355846221012066237818920533483143996923216920130968079327493395617876801063579270114005793810390444069085912690130052229784329195627980911808551679598076031849442137110167869410681462943150609384663049966699098620986348123541006776896339922666447830770778223452317408258352862542119288049122994784739714182293958469016146540177110116798846938586374611865619415446135880522603466298051782595398364710797680031808493665834878365762323511455854760036002875644232711002771388453857750250097390749961890782387267094209191336628769152132382314557246502808005286041560313602759764765050031740723046437638598107688119180085961909945885518967996403721642780270592417874550882774902335579752114451433504184941324376177040676460425492061723811758879495013316244833385614187204714329755441788448411246564584556513336629672855007019760949924111695271462072383093263373184444200103152348385120300700877549244536991763699468746175071196333858279817812899546294039681755094004427541059661940569997254210370911742442207552106360652598963368260617365726119905402012710351921341162404326659207249069997117266509271773145715434397723703528412302239259671248345751721687365153991365734065790075911418906098907742548065025966416222384931664854557211799087532607951886970683533889670654585082626929144619073042367083063612805256216404155772558841405383555662650850342717176508421341374129861189680228805776635344780581032900792488573197252580923497855124082601630193123626524167604174053569750126688089173385320770093694464314043407132535223184495789338202951340814435000998069963932331619565286616981527485792485717542169321754333579211967663517172722659124321279039795797274357149582654005566061884014100644605182963073250127216113368118973391647235880846205633250786019744019083380441432013331373135573230173672553278152225489278789934059531356212304549353284364283922956993473168273016562684631930197539695879260822431514631191316056013903595687988412121133976952770608422666095966163430406967900692604050732875131105759507941573573392137951811860215354871959947036452814914679350736600867620379499788812378305201310374918586247059698823653294889880783550560276369947613418449790764335085385796927878100966975458906544841132560769904310382722294516310999375285265542030305618919801525914359356378449319294280833529150340517865636136247547230830259121915757544590555606279476784081749411034654608613526877942406957692969264766376169844946657144435656047202542529099974028491789272129116222303829678498262784388112709167417502740627982335988849716857058566959651646768373561758962366302232231531194771728016648348797365237369618525717332644966277588139952720412282749270768241700959310376371143365250439334918384368395294740462633708141415260177269522048301787549846950085192190832037016245530051393940094594938584167682940899114907316171173961159580602822681732206351818206434012041230429741718688729311205888941749695010980313987976995369831606332146068159091369360203443746821281838165852869524781532232239070361499163419803697479729542351032394360657814627919083241098153441058199327034029187054776606152618214214374786547089622297335189104858045871670763405799607730614515398780922079844237456776290032585867465826485503343765790162524776765565055595879048479747738423583460906679117260916038979162522152803098541843527872271578181094648489119214034235290520524102695063315811523426354424155245509914595205263455840654261954448308621933980692214561512728360996556222742985198800071185395314199125662744488683257516476835339998675182410464927125364347211425214143435004566567411140221624488413795054593543638059585332389041198107048602922035477531658158620326394472459247118504521653571155377382320991878892879445695237157993893932328357527638044602552580673905264937150874868927639673849669201915684770334574029784689458783639238787963203358571419562794818631981237676846012939948953972005805529645572743503799062469895759848492943465466786211847521641488618375320163609534451332823232205768430520941919450831791715053283112890742708662262906990486597092415792656708807879004125169260032905507985160791886488352058409180570457320603917492621831412768783382970440167067928657349669314239335986918371820115198519641934810960814657187839742755280037538752680795051149036861722833634177340704988017046419065597550819889675179688247062470442591904188447300608047492185975391964028782733355021095325396392408239530712779822751924226834553295423151044635455910315592233712456945785253394528589489388371576018798545186252448304153862689741615388958465964207548640929274069156478199747984119931993683730989966182151555192869784389648973785687300006070806108555628614581328899457664339517701846219268633176059580821193557701918539485389887333025040801281494435290310303172237252792312950570583119801750318041091797438109822741859810821361543915632999514102637086197832930466106731054529203777032159312905138523298437276732837628186868055417274778497329058294200938960267695012652292565946997694045606446529872922458890505857378252118049056624661571273106151860114149143145993181413662270308687855520637239941106753951828317753566253933188295871868144516202070715537073611036880239143718078867635811705101389652942783827505747431460823952047678247581039365883648987243352535749485870510293878540641355063755941371683148764606301481029182762347076180019487273754147139946660398337463357324376539792043728700012594226368507000442068001308103026251202284970945641802623269390775849593111686969061123842079027130297927406718629506002485704934612722084442700633150464818336436492122685094518750168878903641513853201375503777352227851084237392272547204369945421239582456198501922607677592579485468727635829122204027035458841733120870511815386345567148589726422338787620747640672179170460384613026433022686103861878525030851160297914494650543655510655463178815835136804158845559941716415192245252484200454592723671360317744305481073313554776308027405895280616857169478503226946356224750912418325666419671935810621659025299198743424160347595621529857115643309199800768619073387875142450278434927585003518006936449170832715323521086604423870198509766877106451475209661735770750053092061126508521269972447931118287222512701834433154464848447708098746855523800380876009657949746767580300744624674480664289690776940606848917608223027428680799921395851475948843439393992151763929600328404008680164003500941920319228060606856120716706496082343946190284313965017035512255336565801579535147926823068750556506197978367024985736573190283240194971466000586399844992262131888373395101610559779962309353129117925453091557981235744273047873722455719701343862855902954335785439791904491681180291697369324528760739256110208161909474860053169871757668912665535704825714635622248704217102479397554854965579962830323565999651296675701154578369882403558734982087758797086263072138335824343464699123114267885586975658898571016773664667309488195847964380975498273314862578085290011724704588653710808944745401012351194574349319341090744046390149810400736603724043166682376238988100837900529312757433632504554447214952956871760422517522278349361258990389719903381203589827855011006416643174174275294109192401663817839820860932985074425808824056910614925870537787744965624009348194950407291509985732045968065025663096271089133117493319200892736895349318821657975494230647512607955920940921093339073571281071919437002732828298723038615536738515404799797622128022588667383131427404280760218612832945478256030474303202987920577260382155147124333719546768692255884399361715865037715756403544805545377529566289165925683888089501336237609510278754961741762459691822433693928053963164543186012296337177889593179114346680876323338599341552740742354387119280694056116202891503179928685794825966867073992878908301995519531204064657036544251946728442655764933997510064947028778511886615997109761832145565440940148757817422341002530898785451750240432643758416420455311902747812556910919412257303224249718159394143754741661493381341234479565883227388556622824808718342840041317883634333730338546378361116296769992631975698244851964275094445244856607884447042362047669090312058610941258620949334805845769214276980483153869905894736818656931182467879720578697225417091603279119030233824152563654821890982309835453798099415533871683597795278380242419325970784323664707745414153753077118546418403561600891296335616396643675882622649083235256707741569788913427263728043653980829797671655296357787883400955035481666896670202157276923226350922083997753230376509572186190887850461305136517469187578159306836924243576353683755074182263664549272506322293908375218692908633954657106052078558961934863686218463720095168348678453538722513756148441635342010727487918890582432455926847748563911529053523198220819851863518521868349110688368200246016199885435390257627743810724184312760341471876679781778704459587851310642827423592349421391005668828539607376256746793450253953058122462786648515234510282971743018008788592006084705830133075892965030028509114220204809110957815935352690511182559552858269263737872585077230482226674121728489536514017785041259155771334790798754333576575340766116130328609274313155065603961118021807800034985452439039017129035383963484495896299506937178463821387884601407822818067875734919669507537234676436532782289794014937664891943929213308383004271679043501543427935251624719709310586805953499892737729518744317375846415370844584247280061154835334115391944578304211508015031953415706763863700684832836809807729676082749202845206935081089233513976983217300995234523857701400826438222814986088108937057469939347567083304848376126754523342442725038939174207951239553175130028689268783579484791901102317810904106478742534833456149193942072394729974213463428514150112940610263547523339555069732807468683369120186122117991029949202704804278985442972698523242976155367279022755236941876250106022555469131726458556304014028662003848259885185765783348154046527929227214967084604559679004141751418651393008791318328793363862786996127039279001989502335948447441636238792008896784232097759744679082443381994280724136867417577017943772997138907635863749561101972401921749838826789684771932350028967065548446965097962750423299407925117445390428065235860688511936347139120928939123012902712460523812828810441570975588984528153418116855521691542396902245963672303056247258848748462371379482088337648546923147100875960245997019535067338171326938765790446570189728032845828767507134582069389160527975452568027497757878937083486180274294201625450621434734977283694479411420657635407482850361988680419761457967306350098609230057531752267368260133071234368942726951768767916025846650642704807182599450991893760339764868281766565217308073299258916791407971320285858653551803637476983114400080894341768040268939983168929168817939851533863582739019020241479460580554885925312884229031936514733111248241793867764428154752300211816045229449257249912661091026966311960815699733986538651011052973516592346011484600098958061860925296300289401899074130112372991635244546808544254272305326001829896081136504487819917292309214714755338672283870359523707559962909888852516999036433400966004625167133572577992863221521206057826585899113560261552056702328705805190968287359406402401903662424257851646188783081533168813962416936733811229662005663124212566891500484138170278067574487358008293454317604721514858333153305060359424433883493520744677009630433588675575128082173667705297808200895757083849822399120552384679382017651009299013539446481869072521837373077825564370482832266799319461948786478636282874719836884409650919948875453144152475885169278097227364438333189230886721242196993304894838937055538652663720162497233276263706232893106769014210389323809153879177569407629214745070647072246052614109066473911323413676598724950203630975571448503861098023828185622892990783173825589518860025405913848287480055889413800674725442004039421823800268017173095079339070263907176567388341374295926535115638904272506837060711402184236512053648718594972614858944718031351583718035671291224009475823986016381057626082165977482258701531834285718810672954526530792013219010251732190337150491137228288387504662989720016089494949869913399563522915506685254385975842547109236060980668768241517674392050564978125804351872842862659890728047620806718869775571250133907224753890563325865456481578279219175304125359784552652434912593726850280628674427810263131607586941140331232349428104575600791518760584964907297144423099265287131651408910401508265890413792872508036493137266750068816690610482515448601706346872054986698876125950489243986967164705426027175295965687516419569591830726418171721540350130100687512696584968052620596594451233766148186672237567525678455639397370592607350300322375244268620988748920163689076524211838877612281087594055423673116742816004623720160022492570119246125270151035325500714200187681087854312925699472226230163740321972229859346110968326160464153432567209894082833433409603166932400174506860310166596892961066673541695784622607405138377117057266306082425183693243153825856922970770301859967044645689002800294362634693598255217505233345853349924621783839793486552337955735253181804983687420352528043017451788661441170565328035484344508066040095898097896403012873373800224218898841156930555404347562480903756173600512801643589567834385773799733839972632662574765126142299316281004322989407646051085357870656000198470565751385508903334109904254457234511874076442242741329780760856832622602534965837592032739835760884013692176038235646241006834371948255622736437872003433148458519887213393202406487649016333824101567032127025956116812276904936926197500846901279238033798656073435880398580677627794776459715961512334133435163617963931202506601526525675745968653050067230181017039017638471779663321428390315111334686133859831502516614079420597816239277890898620904141751173848379515995376386478542497477942023958671005122921034872713639507290406731773277279595542640565140408444078103237135718343027665271038646477391471986144652664629016803084262050548529313693993152915202498666499745992553080300553514662463564724426229786076486314047534260892070348806811213070805775789020896706246436294600789879586561317289668900696919248118352763745462887130780032047991784835685085610991924665869335929617768851404862767940716984227088557160359487421459534457032833626939098843851841780460296582051767350316723595057747505187840062671638175609407658899456924722291934970122377748844951895166896559870874057144541653539933224532284490608383063787347230493372930285591511460475269098612023794966799851847469480982574029612051396053698244976890454464633926144197323590250321181854983870057534989352905315526502161151050867841429016755159906998667711265225406000617384537318377711884235791968575797785452063889518019511838331707525832834011554404527941099279513641683405842220066178333456063718137662243896439928525025365902600046274898113904955437373315261521879627604390786944935973953401670465164372370007095367680064153422001722845040337245610921828310014514463264512210030508641467030484428868723014500431036956371510226704947498920228249039114576480767912355968577854658264698174411378175708192867018435840807431159151240656388795721065058867498596811668116972897938606802633265865264762223744698027077782082782367436904542730328562674049887683334616243537372125442169582769463224249535612846557893343481840165736565586710757565076663600313419557103254957013258641543023854726784590662232372588456420979089256355838178020750720946150251535015063612880356802949156982542925445211462621854288159572161402520266578065884611540376968102852970662887351578676470379820666298604380788157607704283807150379223442021690362310797101156162193982198699230081125183849270090818944200641592903925728044520308223729745346177562144733375735813476795092965942491956015530600885682709407281391468248695916778308350705983630582954969419774662443325420607999390197123160429883766678175300076453475632038896533687844948115924476039962011368903755921753572967489886778405146236663879433616323627751177468248155228912733814850669236555559595846387920548168163400522626031339308736064581626513840105739002474204294964270543378637932674702936589355103598268528532885155647853828202857808847883114172802678256648986220964702023572694096050719111507235888607125118429208553043340025700622855565637266820191977344898344544819100260669393644541021722702413979473394027655769000584793413937604876993008908906016029966119040167827772059553633909934296425899987773201001780330642192984137143696344376051563960533709136477653837387832646914384439509179670898047108536898093348162514291835063592031804167748861414778465009822757013189270137691729035693893746451973285025766678191373820925910800849491488195756921360084922620294819130282399321473795110351110861993456831769762380508926909857849021064792949152230634392884078552825855340282075571039063726748070486150899256961360476337821303624077768525549884768642045742795511011390028865249921014530698435277836559671798414736102450337798739686702609590831372296207733646369925507699103658399215044808134219856595813966213968015011492958583627273653721023752866548881270169870658584454437889056805065022331128194106105053557801073972301539928036216113319647013522438985486205530857723752497827052617642034861854771687250902146440631700895431612503483506687873286191856462214803549173317486868796816307190822483025983306726571369015465024627956224061753827451057261715958611471577994790188743444577443022653286832216629060919269181819698399988059640047305320855170800310637513707240364400902595292815763966658210540172781718502856194295128991570076204361703709223316018039643515773150270870712225029354951682871777833806095125314068345906108483452745233214995338486765213492058151921921686820550844301002932085658554596401801096138229782228287786341568236185830984286662537926188458646125695568026589029792177257387924753160511370092461241076991111163998425034029616094939377606126288772510281877934358239375550831117464861611184074262365982356428068802419162683332156475054052627477472307503102211672881723479612882876794819467435549086302114723352294881740141774410836216765380596068212197551471455366444738374877948865440664316457177043670080168137715873191056097015529721136240183450514375455684131898745567342718001242707978061593894648600438329209409609499757951621275597452885121379265268513207721540479893941437551292914499089469563078278079260308217062661851753694769224548621379654278060388853328770961785499401519121111942343258480852719758125066946818163690850962638673690048409060346030881766686873521967098883280810071896631982224896191385189574717036335610503272322228734874097339526912639940360573714680099656818004105954694586939162676463137966034289698089234308871834355887027947498953769807800079020587451903287739758926165093382255197310091114189056986539239923500158667556074885970090324453921249560613681794746211167159383525142069554239582397761206729832641274819768781644056304246672514357010395863055527889035460907627123716191627529112760944753849488548930879590815266127351215299390047577708060673199541686657722809867554760884421138671728681043555511260009592949160952078299284819070430809934676971627780670169575515353860398185717784498204923000659262602707876953946279898734004863567149477342408646252447229371780894499604008873056322204005498095257897139457224222855733112458079284526366652738770562237529049455039835065230120158243166437783710316395621588121159811130123436018361060249946823804925278263749926273239061708199199335276525770570812467339309751620669944648096826899253219298225112049314765989683617437823549842422454273793591109553055128256859804017363155602748802375861169584772133771599711850706495419285216431927022806880786002401196545512191048255972598111619390940959590354226127448499071838039886857804860809827196812368461935288977623306477517490363502733644612728852160063467195013159089102220142237345548840950612053648782596627542915420683432630581833566027484882250240556205850834717895575386621197029783133273060876712246883611406054247760973553516449184895786141829801593806188007063439461614156524405581374535577180151950759211780029350623591604160284277913693079741061884333552893892888456167260006338660213331087933659252865524237136705360546300121610194058210364359411050726250383168161709427241976805382964722769955133970709475028575161165529776506760786446605909324223910089548046494215918955736356883266123166984819515919236431953631704076390195038187285291921018959124028670598968734507062809871374092008989565792261777818797256645475549711802061714189012836073199710041401949997471946809697998249378294727205314993543281492322197876082105212883449234315774531722456720364331352051884179710981307453553797138014103788360845786962730789508360517900979696219998605927656930035167926248922255090058890053002406332980860561138807937872700716082791554114282702994132384631617646612354326124377709997788109556104979143441692315209206094021222631751198602072636732406570413638893473743394036191671831990039056818576185265652611043500761653064070091152731238530193643987799230695107775402388209846031176752408036383786120512879439666400546237219250999521811714709376428074647528351139039336559153837165558017741650963329443435644244279817411795033797080194763728254695148350285887709923142048532280732521157480022231149859882008744676717246368936274262135218935265143178492262885599923604751139501573819166385477562634388911253633208679291732327979107123553513716599185445087289720763759507270674454645903473167856321598569498194615570961999316722586188844168385727022774942206627378747141874547635834678802629508954548925836409511794733165631896096966589660082345452742303218008713365440103399865830175654096649383354034209124820090673032963858934033316998006107370203601605821025165779826111192397066055657594137893248802908926211754729450146193901851592244134772005444002119563747697344935210641547189814792907753920401700759445235384454146747347998362957826760657238292133114890503009192355620470126629783637144155622925228666909159741907936487389273237744051730122009196698333896416704428789570889402354409126034499103416174738581101104089071883290850429805742580171568324840552731337964425813211674835185969705709518023518386012240337868359747973891919611191749447037135940656903905147870232287604325052725013893649330068019116201073219783537802439725734119295973937722008746209145148243454307392614313332004079147381775228417042039514342647819399333923851212709682235907941961818506891125704386249686405431300657837110314107326034211510566844750747548092629879228003551479783734846659386891230155060617454672502930935694357964876518243630608116938723047798472480257981045219186302426928426053252805967656768799993069211938006315106926135854051415912797430324318240931876404293515383853512364145935535285126855121581706787001224408441446988258275326383555198117504569315256660240720766280405970666817521713344968471162395780095352543195691899087287477766069207452018958311231548569850858829569942232051903326851219814040127358878675296128666249295768890376975972057128530357989500683080894912160414822566816112288444977294924393188656271310910516413531063376662784977009085660345720767623811471444779974481851316947638162786107473901037025754182373927220656767298267666939713974383541318868872396387979948043835368327917401378825472748299070860794776388833045840531645064058527743706900683019741858694462473136767931957885799184052777396879860910056818405887335482181154830013737733448588469259516234226066738534369614029777168769081051333968067664708522705941177740584792964258549207093452243720118706363814906671750339173169160772982229076082229602346863565137680133392635764033266777590041352184560987914843264136589564716388120111783736886471656492717859068540830387187387118507775923352038184898964607626955673343104146448167924462254112880237054610677326073719217096439813228612351933730534391629901647165232370067947483049633266432140149668096094369931679865255757521094598534620487155932255487242714787659915856077879287904231717126303382015659737884205949845689336541611585696657304657206752067243087703657026847165637136088799236741437576316477718019519663712336938907440748201842913591439510351009279702257009708191932449862719222383708026707934730262845443511425554831175649955052128922198587269851012834272356147183419677641408252925109803207643294785735886173796587712650523127894537326784095093282081364125329877702730317550039400523253920585649222886591709249066316223879419295776011603824914401568095771907115353830159326795973536504904759548797893899068709677474834875864374847336128937657068856604070200456929190156404043697406580828614157873563912155288495839287120169313403959692975074803799962884069519282488811994891021646351676474395665492311091803894370373756874972509931540118287659727448828755991345746638347761274015645546762808534212124101298391375052149825427124875131496200366434766870661135165121008886042134756099193148980735645971583709055392914405196459720062949648748004005765789456987193271353037753225179480934081685970511104197656481677545513172227337849539940854063859711276211235363528771157615907396723313849311868274163539813632615274976604794058182601212533165755185534682305269800145395051785114017987296309108030526370461577319458351086384640233969745254336812019167902017101946891654340644632873762474325337301572895465577847835222855989295706120745108839518474739554832403292709149345026836885041361826410717192888705309162033786316903684892143707527636396912278560663385210752304650809095628153817562950955226641666323058952913156133996371498867058598764445832541216744357772443004593561791343758097527478506586999234271151316670601408068474692599733618707278971922067127632138149343487940026634432152780467098742169005070429442020328315390544947165782929315910003713939563638827887584157261742449208678270461251468250094344012606296190241855191205682467456882389528903147080061637655899290187713565283672261559689116465876221261305925390377070960953934316280967070624152053845485253061502857483676136410314658862336664391734951794861034775103457475778274605142897054316868275001674825173658716128898604670508338887376124781657574474427729724949730284677392771292962105567487924501444279402385276934396317707108560827780229221203656282283590108162998111012142971584338567169493062341852426921418686374801877620775733550442978233036452125977677528682668811410102747959166577718582792437706577807646267574198023324101560743645585693153836481333133283320841479544325424250555826463582608409863547878767896076795293359562673250512006385448665818030734202077869777867049169723013190574566728884251259043416685134758973769631020963294240232739536733383265603895579088375616288865388395520669575705374245483399719274536061839202362405386688755067223609788079781933594766142153055855868650529772203828440475752698472789054680877413674752480239379947553883650229931464252891735346315975259444133934780044358981050951724779753062331019357874347425717233161915372296232407622690023825324955250816116237967588138930904896927538060304476173204607799260274526540081925017293314333507866476365906135010877551555013802816384942235418316490951634259446887345098394491891657520366439941448452247211878807715423482934162871841982231871524786839228900317769743844273466916113195827707755997545728499029802791319199358334246833245884338828641668128640547424495314321460253918276566967638273600601389167184396720118632320613750869075100429432929569366968225866213796352633937538844800510597744114755417826202046778660143757482864544201194748466288490262234353701696570343172698059316363807039747936948350844382498657674047710435749606513655093952252219755453247426585637097214958415116055229386193146902596150954266147093965583225306809207919761526154739183282319707145303986732133227833868195797745606236604240534595945138403827623371507133402124278434139588719187499546848494542102072033135162213671093067261661717646272855211757083072827707965569741831586378071906588627044209039885662255663394975941080744318473093329191947347007685332320977178008199734051778360615690105335936739877541166914764342431147480438430533621348057542696201158856685662877859004519153725201006724507175657670712591489538382495221519838798298009701759393881193033071617006844596140634516228344448057251302462623890458078114881203686821081753753723425899915126348307130740397427095008399685886075395040293540921658412433446842683948176777476404681267204048327650353261579639743389255160610399455920221041504842005909923967180201238254838257336660995338020764219006440263652477858069583110045759639415961657080832448679970566626190144882382834233578069541478023352338923959718958680513764242769155035664574053463643888941813434182270365248690588894911901194769478183275891475034561182362737145932458732600487708479892268128128924807598594790559072519262987692022862079932929125791005249479118769476382464115085484087180629124614603665663456714725642785268061591765278283566497756942400742856601004528452375922004754346875096365926423231932683613891015511384538772357979425150899045196550876192590343967030758290882187470250330552957229874022675044243641797268820739129076041691726856412963653054694596074201566248709653608535469052665046349186585082674419582985857313196432238942751628019016632183792378011210038869580138492514969992317432611055892255779734759304500976622693156116165734096145929598405119006484423767811688440501690919033974490839446906341097401601456093976126644986495102094154717024437628884540985763054929699894580537885838080467456571047689834101478662087932070069200705952645269722674583844877152149857520774230681088562588337787295957068286438877233543321707051989795325989854130586128844058696181609269872971482801107026423330430207489805912325116433153027003418350574268156141431260699004548353816221060230638722518606402187355809765948898505599523306804549335975319648297211887083315982170714574681002007707252238945357190608855211071427420895335923824835490172816858469333001529145057734602944809691668144897802969379911392613378483865136400292138254807936455901330343753939071074333855663448112374415773696815298710646901321781570134379978115174767587250033029664542215076264820741120340605421838634075705687765925719384020012107602024656854243794809335573904562890500213995105089538878105265859938254463514183092852050284626330341795901211003261847062041820209500606484485496641653668821455367569616521677453508296273870625978470582023748907687135131069159123796710186149242813022503495328599791851070152084511605734626553987803299866881977887127969729547166108220856221765251208132786161221457881910676416125649311358013142724290465913999223055388315737319115900396331258834337321475355641010693292231562429799054320061516138633725149662185115838932690318036325804437515312379473742744313006413838675127726426704300526125673331561570271246617901341112724360548645668079867678928376003075863129907492620819725273788129181307555297514550160161163991472355046158563885944311202074586096964224945876369993552417354787116206573859599777115030470771686604196532122820438364654416484968839148399729039370207100642110421847895830858948559131916091553380380632441546108206978196175032307358717479209359879514672508643962730601500882564576842227134091403423483498251427839086866459582244224793026206920965503200023537397760646842170998354780725199211992315996528692040155815092441199798862822270398948761259511132813419470192275173186751082176149480295358348599907603936159056285379865968026435019177814417763708850992661174432647793709836790496593414480319009973307403453928951467908425861393819663662735038655177873683746884611808683629043326109181173306093700392875555218941835196392214302502552498734580117894124773207257057388744655151486504771747240913757281799377980338568515426604491146547667091355304120576366027330000016136508889062560298076000612630925664229228078548386349517304085489767561405912872743255331797479791814435581948282007673871478823849282791329750576280556752193259830020645546175951745989464668201630167611914332642711228748134110554319970640149028224596672706564103013607862527254047597681122948628732235426389277558024857060151917003504243460816262801674727855440338074513433515934622195364231654208045777431394680155496120349421843214305296306745601220911932832299565760434130137341354781976254357778702561355587122443231987917557034590124720975845394433602658721719061643311443368192735932254265080407783510559033601548994319968053752333482850992611156725054211130644320310426377270383457089906934378371844075468336079683975426735707046158625734008849630068117338815747859679354469964202121643539187983970114101261420728419902356828854736240386647647428184985324578928796473734035762452260497567183895757722876522357226070797479879980313373074051740521939650696759399673233834242699251242964547450846230180938933962565677256671715016476428539410547820016271841570275533195184223763701700076498250650420823561747887511230720590170127709257221076743740833472054609419867966843599893655120489348224356741293893908247964150465408796161142181241412411153812590227817524161346388013183588506957303195269993183305401446959220199395260807762571640233337391830816953263809648445690608153013230507352269070585201007449760660657590947787510691816342187693067328813808673660386046881341640339951104678899856546405214628411434077253012806267065019845136076224176647671117514980258827959280210955982501030665481968251397150995632373591804246431455518137268679805446303230254323541127389608696598337455194810098398779451500058665010029352748314550555010314542715684044837126758999811122695496643663865409496372905861300669574511574477212783933853095026327165503295646868219115934939474550752659166452889969306838909701108632218858939462387477779792860677056174655845062040546195768614822895570667098855807273854950723224997710053560151210441688588253173312522698689782398675895864486098161589781254857047896848937170458205295259791056304811336190502241300487779493534445273103011748330397248027872280728726243073676742307053221608188252127735313015178579565746400786182340052660523886906234350728067858092418683034719736543106602686555218975925959346147570520886930102528963810680356662192442789141697811248182131749755807864824269068735198927948958003153379286112259806872393795044385314679935017448181822689136107279514337410554263348298177403490078401638356942376212643952611622986168739211510226744382184691141160924264549890541795090266138173921709390381067828708695904395872580571749476493196540597926754776316673464553243552759569820736845055490113527675125015156904554812410764595113703652885835757160627254329970373355892476133735947343459299503787703116583925433679589051403331583900080791046142776885579311266202529593703915934513988916677005363442365409930838925842046127907355582288932225377631234401876877726656942682661826123394017991199719249133338483864799276840434021547668897121745359431516774544505969138385891639494018106124593331464168314563668560506602265583867368512501581658253720717630568556687600422335047275012853667334979086239234431134799330618603741643667252132818409774254582834807481161419992362273597378690051467332100456309107687493494100001976472727293482490772814421359378733859403655788485140016341326902013020884622607614076890145439562183515025322901079612722501238014444183637270538856327400219778768954636875712147922049877594119705198115178040235881416536130678124765361637855596312687807184595081629582300277917553333959040652098858556299977520420212799509722696954828177356577801818471291143318744086580458879005847296578981373567376217311488140917804203666893343686146527255655831861831891232753171441407811229450295093036792028173131141013713154201287461565989747221077250393504078545336341930803907032683198434102488660195824382382622245402710558696873184785172913165111502060480825268843343487376948569352809525083394839396838942540045629832494967318479936216368960612993169194934706235386487905954698369919164352072345533390367855676868284990131455914523030268845384005653358399418515215295060652079819903880405303020982057437870790083223846765496714849089905800317723116205610710920798187104840841226840743299216526546730719677904972556916827289691941711160759559918314108065998196530325033295799470575845635024750997080467118353423737020783667143154890377114060572845993368929907677601647632162859192916097228582891904835267780583792323405787888183921280248037769168662769611926967410731936798600838291354861336632273514399496348066679788560784316762372906086869212230573692032946717690930710258333707833062954700412581360109862158702038238666711602435544695390630657736214267709821421094900907330251640816818004306571123250578550570786397457688655388261652526369815141310959581268028978384006638932810827825880229015971889839230662260149763172686332038823620272009214076382694170536545649952338325695001109347918625445054343373575878659898205833447661104231905851509146105990739468543045149482028910196253328169920425079097803017312476304782046344373142076357444974522865106995464721166499368833725782622178388833190148607899104496599024310999492425551160618334456427455890925212217958998685354718413175167250934691642249910861659694482183253243124916707864284655925541268798160060285451811639231760031685676431089987987506660109866842204176562925185674774614464641085736550320908714846166181304390667837804763799698371295700477218689001489341343830325320244662098540834112934462358851164916160807209200445369314790924826751016642123025871622190446846457753491665628888379606950516567363799612654522061053429129646179807086809645646099626749635444298025537450220591611631224983891165958958004588771325254682192561864092266511682379137498765423420439692739720123423972165675222848936456930447231583810502757126526757813666473928167731619588712419118260015607232698532004056845280306432722036989039078151838858491886949849233561407861586775463019728836418922644146111520745050401901371681813702420636680850895476290976757099268525000612756620275819861992045439917375278011977357276855087749390004533933292817849894063610311427953720267526270506843521988327112785987251245877144864410520626837436395335787198326226222055392415923771619947716631453378297887297856963238670580760225280369339628162306881032805567306782501979746940048318467268147230948564417290641319957769309930267318962508794256075055313287087383153435724522003790129778176936131863770387074342428395871128667992712409681933373850812641933882915915660278700246588304284255478916552832005688057006600571950330176148358996154377052683374989950446782888439328371237898569776784272216003505329101441692789348893531717161461052730674300396775737860044665508278782947033515508306631535333491370715335868795810023757243067935311375516929528183675315237803989260260142613010074193369145824559311864492489545616107854038204518415324294156995591939599452728154826755376371460544267996496364071282751149355173271740596171500104652469444813859713065175688096782662794180523332945971543371664374077677621837774942913394294715487830059950561028998940873696384957521062634558199055347035382549812484126843049925417455257701366296701640731725094770932799921567810140543399668343131376783690280943306111323523741237057829190720599557558721049707111716749921125791704152415855434536952967881367814576354662650959830887418632615004820416584411851853033235732877455978582667104250039676896028442166241175136178667709691558719598058844472296929460948227055823894471514283253080830224333625732042725500473052725294155685517895855062734012591446393884651360056156669101068555410979715868362067070705354377727182129053662532571277830073255880001625763295488090409170588084856467316098257310872797797254226829845951956506463579804572516213699166675795498160552708688993001926712506795937949793600109041473477188709100737579538020976806068311569971286617234425593678702030266843943263911574833274255505597605694154246286576754624274806373015508398403018496864800023086621034726989028853461139123812119397749931401145568882060133836341723204543881180141396035659953170493345868161549025414815640191745318951367182688282383332326063051417938348029731862756725955378023365004691944209205672297273592942376301716786690825240294248726770184068063664747095168140699970829472713714335665750253158995963607671148088351704006287131170337362145821147940310347295869026324369774014269446594144958127583687585787556052808440804263247519690679545260054848630536409560659209714723744759435436621158246512775084134964957368265682993142408397179066692866218472790003852655987449941145745098237711026606837799564578095214591431148152422132706198496105400453562228924807968064627018410491094732230069318902982525947012517564353616542314246873650983174431628249396879854165888362226928012921566227167380697226173846104831817519986380259128912115591236823557580879075758786948450140181281925767119751008101010593365666670226268813130463180824740209188000521978117905747192780397644185369298272441830526898947845331250388196577850967523332686562930299457011208660517411402543204929904239569293090077403527861324070548914046134540292643933749349937056081897394658081407625590689880205698764929936837478832872213186728033397809078177345182340893713862321094270854951317406457601717811563513268243512443935076509527927699851082822851962870632731126816318113434720255675271278815160791990434841072047166086072279633436847318098478047084397223802631458176664266802277831070410189740005595525152275015423500650465487921871750683285084622082664994661177147796229659327846994358430580341429359873556641047633812469596512800291672493931390903640132116985529934042193337366973752788595102344286355137905542349012386329234131209661193157733300810373839788050935905276154117319924799918202256540047458374314958611403601860470482510099062971819166660146768925158926804224922660236831907258421015559345826454426500482569247798108801231785826795481469800291657563802198950076350229494630994061145146783912295184765857990314958223854127768639423986200616993330619465650703584245444613942978028216083505529388879408748391874700221423669083510445609344809963993987294778107956306879155954586810396328429026440604718717492571342444180643023170400233601397360512192268497187845312888538111851490280995366386835757770185357140044517682448728685856064870265687938553442312151323456361359671614945540889823467187009432264852462054209277414043940899850974707969536608032291660242834789078183200516099717845024461540213542004733404717458218942136802258675870058946656360617205931217351552106023468850328890348362028760848959493520533160027747046992365500462586915007536271346220681708523465528467800094478358804934092823142284416354284515852401364265877790944205424541534242680445873446708355522447879970492003331743039903199083410105115161084614050385712097838487538504764150014397497635246481227750919311950457631454972805850863705109502813845009803474482310082790498656774293272125835396256168970963530768869425108254319444690608049090166472525156829642082815810883662856890275178938994095329154934796871621489672325096494584833942772387354391583444199725639046112639033499461328802754191717599984213844944571502402156823743409429712831840247448666851457501970283327801663885141255849937135054356338662238170862784663970024754191728567682097346786415668102391658673715168595434455461500626958750016750254657074152636016904190973681278194564257760624151029185116725613670292177414684424082197772895784067223953703708842905417836392455194352495440360133384172871817318543403455207918866404291351054775375017651555818302919552200262006830685437938318155987477680617878167811562327567372002043036041820362278663364502630104759759705160281802504369844116912956588327168196012750123406985205409541182343635796731389544107547318540896030010567268930042979902685983434617092734325906271562852173993202762759273210965656392619402111751157648947875972679819486014801371949275070853494802822303021995235895815678855229039568648481094764590382290904569904374736030472372430976140511625570339041337363584287471364228855434172310939596467929524740530279667360350045914508958933165129864991017099692562560974808831915638400621869179135056675216245950586766217744851910697712100958974138849900741078310672677706296916015024247322734968554729884572146698061648230012695311770654905035736166512358653450693087307135894625738888455850397169079537016064671320100162931016356605068859985649666015445314382278380181627410169320768556526702953170856517893520439115423791075865695140188093631326536503282350648690918987055052676001959390277878972149043111110308380878637127181475961911419882809723611109881614954094815870187739542288593055263684446391391676972406554722585669447033171914522151763422567505306485476238288432428003509313815323663487392202828210440351746681658298520271196119906161634541902653400481278814696344282916866240513719871077661449580533326294317084427434452533274723565894397094019103050781207692380898897573462015440861478778404270194331948341056163523045842268467317772060797683564912798766359069512372418172181156737426567195719720038648674852472648017710988167257821560087807653492653852432977672681536596267552210302302239187336057944587917146513996784503179428942170591897031372352885257512443498837139516083432340737720932280584593508880136077738544736132576753623824028695959730954312199059839433174880252733836638829444079130344045018429718033859380485198699420496641751109021973200350043852215719339467265325834943304698280083061422888599278114275762357540300901031157129734694911491657700463389901753061840242306313667596153959121667716360960317733221097079908740991364973586741538041904903129147401551979427661427062120700709353964829340109857477761996441392442536082603725755539301864332941462056485479785839121767883673106879446201432706322056073343476430759698343077615305252448834990845043539527600842145187501723064092730179295686798159550341905216317630980220549225690713241807098444463946280556390337413562816715758528313756702593008926754815481091070790311165036055248148158510001001739051820135776701051213140298768594660547933644135230968974516783886210103961189445065454070606706048196112908528844000473261943194355197338412572140484002784446688065109510536687453790048654975622296765897330683138544075828838728442790218205914448054690986243942941625401952226352078424097111980934781891254480610206222483655096652666998001749464542416061956955540774220039869091253203005982508831538531150329266385286911274744630016325406542070197808767200326182717708861512074095646602335872362232869025868629597944873857109230425732634981758127611278208663459292311184833660503005281272067487724531775593519633589077348250662189385252378832652166171272470334726396508931965909171446132950645767199400612875254197139626249234321967144415416148515873251412061528629145556676931876353283721742321293350461136999457548712613088321083966464628737755534319401029685845830338333915262850203306395639073419393809721668300915964184924507411839787523357799947155402603152223615721991960531060497074834370704582633318495097550898084406917242512638128036326366523389649079719716875227433903514309474192670653552316830024238419695408478136365742301096326927391878459850423198095017291499737088144711230618516543773801892753603063716600475332954885567424822948776795304342748094850446704993521223089456653149316082545332046921632188025872602301561153755510947366621291623664468842060543512375123598254374576344023571322805479283679116578698918379215650012777958594923312131167502268762808502813854574670945226733432473091126253044104595305716392122213586875376306186266153505904543860685382955310433136264584105253632472500631683203852800383931057883579373971707875588331749972031837501637358623929659370965133920105826345245857157656914617940669503048728172918316756646156524815954384967494294082251195119284594057777051108505611243928351881643208417380281417911507809106150118471294213707312683624247011347973883757051085389788444039914007699277903779423856028780120646195077807991361798921065335198123795807527004883307082771458675160998784783997930394872776876583420363744338490334487417116013343175088007806955829282878283863278141799407202049412045613219593004817319618199092931491220345406364304710955855613524198411249270054913140003411477734244259643912159925657651745513139633277141703875390857008315340640651646093235789622218881516662145439722221141346899100281436651763762127156204226654932444074196675542328341319536618516742612948677457765917872701399549450745302678832818803833825915190941043540751107957898463452747065284430605413090493653404868941635747892931184232511682348142002372757225150838894067893416822896124836999834854473069096261776930400528820191565343231532104654805591511978088988271043403926556759520166146370581780485258691736597976272954971932907796140482929518091310848960068106258760331722337781737858164204047324387056669206649568713084893622587640567841781314381308563550011875102921188031632924525525443002481388533349643319692788395016720833815124905186252972266908443714433867099736131005880473285462221259042003623459128695176272683157435631272530714452451778499664658618955793809561920390102058048501862548318147243847290575534172340440994446068276464867085856494287209720605334641903970204334837389726254092891303919639949949948321210281994853342508566018779243495308390798265328331043372964094100862203576502275658278558101318703917800808102799265860500410301292372148093027978577824257191134571342474161100037683679844815921971597696168958401773860696304740180740305645187449251537339927699113313182117815378309582653577625924484913596995288794886700241873032020726686390325536228808201484743396268345597146006413270018274152077508222654756309921617193565565378048907493612799306906709491258336022388738136489661578623114601314749203048240521773838438259292009145787689093403137387405413152187087144824354439129350095832418696492219000292130573963014366537625953916668428327972194031429680254083877796569671933531279502246571427007245819293828381510508187755114621120857294006457770588467055253737653465258502303449954783659950344371184655247690235458620142609085452843354905571128563048571697396057987361193348493444239034243460878292042101832573833046274483621936781951458334081372665298099599321115896219545565620758499896493970409900006677969728985956048884430983289299263182624842082640532727497744549265852061768965350417520302888085386015769310362384686181203182187943187165024144749210670103615162105441346693823918959117276469942074721241530214613754776900714243332024918129651882085058319383483135170210900188495102992781086870798890212776312673086038256276786996372583955586473398692026687000900645629812518026222950345128010500917215614111046867414751063307113618688744823696489479372981626951018771827522986414903746827932619817246045367516203969682051333948747039934271870730922323153462324964085366551147501946127072386037984863482630831535268442942153437695281862511307340832178535205532816361856339584657704749097761664377624257851001736221904040159036668935405589189925481505368196797920578086097568249656041763353116416967871606694899404452512710243479954050064986621474745217730052853370508764741392551697424009241136563093896502916928741543750301095097194300060755498406895738456178881554100323307199686981385753138697870104689369783899500208204363364747702671377190322006529695601588413109161470734632550584592898397441665893214927467444097206084471565872453593679027443358119447700499131602200997695987424318847405048907529617396343812486283943145236391357576703186234662018535374872517552670768654896066386684031363109976095028986112507892981405803569588725912755335497381351002626146835893933198328774831592461172474130522322039939873011838365252636017464106427390538527985271542706665062402602348431869591831859823223622748498102683336551856860596453016797807378462837004924906376203924533007979196830791291350900427258017387427307182032733986381555865361231364368919755765959187945983598603555197115862226960831413766096359634828779393711561023107068833290184419214221794531183411734294365442411653972732410285798159262508806597675008523050881689925760016644083109137134675888460523778591902108314370366033127377224616068059677922212345945564538625620331009240458912633609171916618162139858100904905835429122238678521431076249248722629559613415793993843492318005655208020956796210494205918482719819567854117872988514410665602550672301555582999567879718945917362574996918088262860548994549976193392902204118300411008590417982794515877556058507957602160112809877734214447176563114477897804182138561095290429404908368169098235365919922098511231370332908110097014972576695316621982538537180170865752889581263414832185431891290083025629336538955131177783065477260853707604095322833681582374038691196917711017295664645122599550973091428092100487462127580933886879866575609601749499966980126984623948575683368319559568729900828504924172981903848080374317384196659914251863188738804805881627834288187216708925820309656701205490426050273237333510596109878191752566341238454115400474638428094551836910111520551498678008561767054215673699427989688552552478693325230865691247284382584971575299800141377753395047409523229366449119552246306376889666621555641484250616836309070291676976399185347794900988837500647917897489956926802984759465136068088374296512175747003406552786752139407485351318437913942710733551338220985236731470567464171456144094694217118288251158097721534307514796502094235368074035535548340650066429478364491340928988616460102384673741347681343231937004790496792395559255873461148950741815394901580047567038628351728877254796002750649303913877166966095260967768496966347055729291486451978463800476588158136981367127700084412653675686797085457553303803330396438542733675641349632862576265908116689724120866229685572554761673148251146140970381229173701752195127874048055618936165932587170146251662168951179209203879684470843628733330474567501967514510594972173721661181551787103115589658876079652617506253656939912066913179828353075601320991821503605366049938669685548550709948702585648448297286560455834011411900728265732167333451380931620379197948560072167355619066856926088561246285633571298226161837229840347606914388947284491460999861850972378034896645318046337278667609655417644149398449961771521149469987544184516200128949261529290399280158262737878836702185550286450793149862997395205925554913350174603515612211770876968557322710014892955134885681819572282668349844914628242795162138220375461471058438126657655028256280066898782445347679919884439019056521035818099271648052517118809874268723899013493858243020270015106858518294209836135106746333942363777614192708945108309176093404667526972500121927513302153955681345370575503529388371331985617928193078367076812401080481029341460657482083164511695814019116193175203554330643949295999659276577837032801570267479578595096794298816981403167893337338827493274465166212335985470716958651325369114299985106214810203031557841476250100561523433728544947481579680782474845664750439424495628272073775952469435690179705698482874197731033303361313819546060067949795475540443726933536495099521658007368772954195267718668716962601092502478892169736760432738196850575624534522619401321961034054782551580800133872248973368099305399145916029805792988008473761145183038880627467922445133560921254358180928654137792399935490280642415849699224002304879038791917929247126209062456696961148445605110172641689962961032828773723221956248677784980737682187926195752164180952125132689337429055817413868839052807858275367957781025976896662539616917242315913930417820351957311972735447106639970642620101042587103812691850024717295275432707202300347651883730685397926558327006674020576174417699319545546312998549125246599133792213216394298095339007924224494221303337509316260781541201553847697093701359258873666031929478703144584254893169641716880315197419212785210099212970270377582831335646157720088291976302263192298501102790244585744745777402804674527165603754319045846915192004324506006613785517011000499733556220940779043259961731283166690142205107104876372136192936704009997568740996841062550278631373594855724507556006000937533663034809988958726505269223775348960620677336255067916493451529150832307858410743164486017440205385410087599114927226754983640721631617644033595022130846489690722380395051875990248079273739493175338957385384779338149131768647687318324987521393497739077546908179186751353027753211709304687403756367785180348261115672835434154641114227082373375664907316763260891195631655929475881263053835660237259964315131577246199199699947325527638478239217223770738821392577029481654854850384234232652740106626064654716037278387865765510015917041532802921375026111968432298051866209294020280875536650521976411103272144586055119535847514389055693425049001944483575402242982472732930173074939655011842400359428791907696324527267814111131479255997403894559993258982892432007143648593038677701084935516104553681060763945270235791681361714686015739267536717770341024707179502374511626073191640181807015207235551495503801907505639750841320512516635057118491697949949993272302474933872051137514361845389894903753518057481590363083125044514756760442540985501669092243142395748011291450706656578547673186693460759905623815749162285976242925767013549901370250160355789143735398503057026481961371300416954760946645238918607638437256795217871233051471608506501222286177283540435690039732566818550687783047201917971577620065234583596631471518852288808262262842441362367758506948553585621498001239794202265232055673444014971270001826632018383349060184728991381764871016213957767583055236110636686498225520949201451297289140045812379967992481909227997320026940304790003436218270278202004200499020417802581513752182208576934018518559298989188800835790801839306570740399931494133104698335896635418783306224628189778222086625436511467561826920617245314253957587342679483511885822119702604633099666023467186275834206313462444335785352188001957750890190844337699305774599202418940402161846077900949750110523880645243104541017450333050964298533266557750670175485348873371268378962110711276172032643108213811882447304760545442492937811590191431443142060956367406910762284791240315890939413059588407966848575137653027018123758995001054019680339138351050088889499866872545730117517725655351028809732248627144028804925778464192492369312250881921835605365378772279355529416557828356629383591028455153881707670755946753094775219578063259156251250579144393359950905580322323039962247988033443222498173244688154353610443506072693799521065193859071985160012689709330265789164139498572777909331563676747626064542475042289280931465804306512420306059651916195178178661873074849296184405849020723217479513815429358109305011069752211248665002593626995130195584484688319991520912897043074138898286776743997425186155863531656965562885037011315371062847640802294552051184876552800076045658923627464375108161685025600989186963896451196272934986177737270732011805432419827817668678486874894361510513043026355860095425799529154241115448159939732776646587821667661361660818857001726637811015844772701044090866445596233552667351347393404851304418029599228515611824003821747480230887990736588772705414404898513934283683924606416630845421060262508772435361632499974910290057650696311483565798657022379328434405021789155567598324482006405686900761785193291606589328478321566668557816805266136324774799678124771295394004917241078315650283031132735948717644712757336792839947334765528217018696362547327438118857307303570334333895556230690669448012421733868884007614948701045264357365844220892552218260208556253028242893411277328930119871799072050450565222359269957774411937542692032678795432104525956542723678281226300486290480188833712198475310384333389178015124569275597384216768549349877414345989366032719178326116166570895311302716076506501734507946276693282953223137914238938118208657203401855227649949920176545608632047770437876946421077048118197103777144432051178429366192195156994753065059103892054125773486845702152662429328169085289835062521291039935417610210628975189280606926844103201440904459046268124785312364057809419238417709429688062604718789346684594481608038107859373529280607426190226361045081862505151779393875994543057712473867978987939144610388461553525139069699825135153976654472907717461535185139843743200033230010824607746759653672263434052277340964626843817203274508741426446519891132525338598902350296329822242735486294007347450034602839631485696887260557971520849160022263026842687711788745000216674897489683753906729326151914781608255554845786478926005438581508900685735095400423879059097443320777214800872166714814123707364895988477679374662076731264433886586786573141551129640709850928121686792634910426953258692102750125053067775195705908051088286931191572404824960156530969137916710707622674514918483501714508289763443905070050101874617183665299886952578376771664453096920359113394558885775173992563227760628510516613672544290246697517299921264202359502241779817366198314771230796862528664959425163813438431482453475556434228840967189352143528780396249481656000253157334993706196694096973363369425187316076888342244166933534411706899679454451193423847113133875953981535725825036414151060300324094771943885351523124983589487912012604342082056286141713799904772562020942007835338089032502314965394174471090000261620594816578665765204235119975477175622551627613376456027811067134768573429796018862429634713754063966596659634125198927717173736100149842369693637444978968282152733243440419516623927909826506599996129940543826992870572980069166527586308994776768685289119448147785280928902459901689295583815172996095845827429739019795815228702621201341871770441450949230334964811559645321170142034254526247181495863793673959531707396223836565501868548906939368373631683283463853474182024416818127019412774434335824466927021627098400476812756536421300220327790774233513849921518172698999374356095537787033020422736846438891989701490483638807529291860864848879137780478090944892255289184962593086704490569328642663742543693743226926446873317470807505287131151969662741988658374204346770571618534053320659358389804963446309084895345948656105713871466002257483298611363593433024855446351289415111484261013902949571968478192990081541911914799265680684688360636612211640179999925622107057449293222114539517355524693184979276997661215579344109017960079219413434426968908303305948794469153455485403847931731883805611814156991652117628318414355000764403691974732814322184317325879278993590287410053516985192577890799868307186807397066993415752111968082340603569827422240953657819535979998999989021500284941482899078341556999313117794026717245340383359934191664759847166504767563557568176852955865914717304846222774520317338073736771104925794694462446313888410848906368607529059069172545789406928561966134823428635105976806610580769238106514897936526039293243574622754275410014892438859312922814877830487731278857432505836350409064187910919341608907642094734357100503418252975842326389068562681973165574126772106438535834810829647994841018397479521773955917425405801597028305730527599274542326386307318340057471227062219572234114859991993889379579119379991444012318019779861916931776148511968484202827328859927415735895812240585290546476182728784964078176660513177011527813310479485051556905044900298978756520736005954357367414293160034365604460670268291826033891673425393957713414238807723947328440055235800553395976558474775762196303548841408309125339337159702187385696252536679409670594030856971410355772065701432043281881968047482554617986369711710405840775883663761967468004574086391308367610142403236891446704187924922669976075436196059203381062417701829183031582640731517750749802331316591557157211089393831600006886402284966104935002522670205705905205574519518382655457394270336821723676830697398593854345524813419568993565912534275444262362476637960470798932051277319476207775224994797836238085824967544900188339725271185872606015105838262774195291302412442327780497438523524081992458642847484354126383694183578919436810448474400063459866123726549618814841829138647506778567606452433519128206634736645844791670268483321729433566739811589911458891840948208307931816970286456459933794791291506472325385109173376630660435470307353631898286089182062254871287282108980629397905461140389935192279226027316529998989103706555970858465320711526253824206642641377299437358819574684533761656744918586304184007751682894101936361481510199979296426721999588414442860885788146692205388591103486279199773050441104341057459497777195818112811572806418652371241135486151096836319293889923433939922733270154659723274967072476207263466261237797426412841337827549177622328049016241927391525698175046866360562861409706686647204975363871528977637416102140152233092031505527691437554050464570387305391356337854880850530568749731380379179968279574140594669462768641449337593360538653455110161558122861876094265695611282453750421656145487907928157294795627148056939710857723158950485128565605702396756492486180306744026156198285096057597596180609375452870668977961890670553005435400083186206120184724925620307514977160364400723402091661784944790676689207657942165355887621784167135472635516122055155259146225826227233348639035331980578581207264425891876902967720733654691750859094577298502786095951446202872734294244322492828165907404295925258094749670412256384068257042648308006704751858737768794488361772888364393578911551117238910682047803961425928423038370812544275351457306256572890785862605448788774695205393469462163517398510223053328191641264533530911364024700623372735865433179102551677248650410893560263523973380450751200462565112063759528360573864969952111497513370730790418157281194134991402942645026845818919401464939640045479362403544300311450793417116575712781441566028487745523457867282175352039936484439359647339373040010062775961746409551123216414787733171098004552429988405097775881307430603020092934713537667844386172322429700062774898777280465837380295470434426289621435795536661415868686234019053879905914195688394240593340528749391538733757371855129507472605260469433586731895606943797763528600456025556657668805777054335046614055705933356357575451088475426287344969728349268915589851735584739168983127149443407869572998403720065567978336828078442444557574256957056699309485546656397737865403487115029428879273688449114001366273397038063493573051395749274028120210312234542413275747533898619858520228478664616810368591067428097329217884872080511093476344658158921572329964219649123764516177519419463857324453551926796105031275776236371747191872596080066654547120255603111811392525159464183923773674504187604722309499863763398904884718874250949353933339760568543365874561099201712809329524300576142643926203089661215836109559299578054441015371875199661200899844669234787318173721511091891123172728183581796735514065123282771000800143496695923409043144793760268806388545296189112322346065812519368244729954500759829732090456766337726764536046056925189176212012173017781735875747779120899135899611202475944457626280908559342878137645670527013061182401938108505124110138178845155937326185172360887696530349782178286312817706807110603461206462473067388474811617409758724066922076290264113847052374091485182302769464598090138095371641020866856270463092196927846203719991943852477905758746803556996258205794874742303545447744410170648074058086773101446971054097778591421679542323758001729470821629008811037401033348888550855884476167819036620053212289365572734353415778203278081627784475074956800477892311876583991975058277641305452114670562892832319015475338363600253170359044318315022727875978244348625100287178780191651496213521169200090478629164061997325693813411521012146945198417137914602439366187298114971470995943427609251976637611404732030640961049266162224694660194388001690604774557967297226900307836347929127556523591602238222666971933893204008122878002127882174928020640202308042670967397314378671020021743309349301121098218877761528995848418608571002269988302860818931824324545585394442078032096054829556933328593231547339570528065065546630969006565978905878149786084615569986313968230935061911422206110247855448302754313745522468377247380262410328485972773283388517211400729722163452895625343572301027850392574229684184549093240655100639060373673668166754393427360760871394868958595314843434021526009049307553086537900278553658836154190300493432333376307253184812364800930512832874934544050254877318390063781661328813137281243994112723620392905793270927956204688743893408754706534699152915069857612847381677733370706639950188132894811737552015525630693465791345616525260114514450759701585401161846857665893793328660969310938955958309309523200246246022872120379687095534426976470183180715668132729243485807921527192968512042441584508930267191689229670911675499406469927759679601684722534301133597221084228735613528149893009936769491587148256943527798171715556557025832213311534619965773670103721863241988514438223390631682630991508575498152780173845596726821685874985817916576285780966817463892686743887762437940218141050046385362702436514313515287137983312370599021994888142542704300391336436897080065441470026122706691554827993349931874329624114238306816635539376763403445031953036306841851669156604517385778874506811588465838704200722572392648758340343005582747258585062517923650123686916279036932524571331826097341285224288667133217879672477906124484088930400639164965083421839810823407852890326302881409543148298191963535717829177048667887726329851167055531944385356624787113662608358315570112538092446896519422822667376247226210004323256357143736222147206341271618732478165144448883141658582708233016127507881001826089044954661242020425957582381770222228722533227593854452023802288703866606276462380363313714650312646570216937598913880942692226875899123973780020656208567023393131637334831828004251146447378003440864285694097946906815249230152338299103524548881975167407253908616754069700419576665145113961090679648094327410022602911624529746854252319709708534161524298021793591095249165981299724136139428469362277879578315284476345150692245693139132614444247691299623910636673911064757352941798948793123654199246950225842270241267859527961452483421577619910090299933147647085142686843761444770630621347341718862244657379970587423104556395640377236003793120435871855336058128512616830019653509802594345321125178022120733890478498320257621145486032590902631509388853633773793460957073948385275887334544002310713575463754405472416650221035509071574005901627862659814099838011288832707594946347307096133816102788524039015287667177404230669296071497343986096171590977720167366842241965645753337199449169423121745062904287794426498049422479804309647189255652127148084948081217640922616779394392389654058511428075341860764284784919623800597262927777794217254621366867649592345538358450275763608188025599360232453259080098382236950206004135757511818071365955082916335183437998146383427485795062918594719247726522736514974269064578413300717735287750184454281464178588679931303255844165151648741428809592285076426271688032358577851350554404465055933029290436896450591860025619753057840102211890492459098768094181622460619213811678508171137519471694130836923063601166369102348825835754925841043163450382063677563412652141402847670965572095583099023971504089988510989319961039847125640451825520303436341340996162891117740359768012496437938543556930282822184021304548821505952933946360580808011363047883217148817285736729940607325618717953012810863856227200160224102685423465937740675615968707639873487544750564026893357124626132646792507068850449372825565609161919606746856092466617370015605283922130720285661891422528956269715244128009144363972463374026731560839677929848360962188664994688134159754112937098859180764288285065617626626239228445650036148166075064856954155213794056729343238243893405493591477474203243966454301979786515307981903181141865014201851099308626429902084010013779385984354285811212219832739794991595188436341642161409660565751193715495930750723793908450778368896614333702735576234017021860274146245545914998469733755615557193346324016768563368732406838754754921041740065466540051248078311612978097215252928101738192305551806430883364059409168362770020511345586263651866721464433771460546272155546514779541306151420853911286551639912371168686904483909388912041438822454805143936673423289006665588981245146177759244138005636293579219803802084522294231088417769890081692775959050576465377904911686964292654449044634106911908299627678800729005073004237890025869321457021606691730189791373406063299708263391096848663562863045147744877030923130130719212021920909393843417864985633360387114233914601770961419507147092742617057784360811933185291796977694592992218760411447115764738003909372351777072400781444796840559987301019911010824924979714551320333117953455120542249938280869868083773083461657431264310470351745446957328733201925554435202077613707554247696578715214947448176068073322353852646571807758370059304020481233361283685559831482725740081332827478136698030921009023025731038026534491483910092166818057210961872017556920037687861699879322567823474384312275517692549979513833743958870431833747368893200677670627466509431002743886461055261805425114782574004359700620337668355317954693850563685593471220048231724412810482190656170864920826984102517314896480632188906998093542401337975530986250220627616989143040875717156618526374931447598078566273095749064924837952423340018650492794805947588977643726963815246378340114095964960632320165346906253030845770124587018229910908840135895519695907648762448623208490472650389362595340418818059735073675952052962877402308007112248880777945624966721780086943724671732496446111861580819718842688121702958799400091284121373269962619848945452933920961894725255499063164019699289990656646074324341513103714289547341122657276619080476438529772913194403414325835464346162431360181265877827026755964127849788039077483747924151232047298920272763568279875172993495961462785687968455678301287030834143666950092543501606926021328456490925867330775403896457148515860509297713127993573966584921184335161549191969210702462311353475172498566238327875150500358959107140687560358187395830609028097915868397343526692447807788222060089825636418459895634528444330441041534288553312180071718204033306084921256841052310702162595803443306678578491429489588801388614884953105647119559740011399036411315283050139552665072074424264467788917575783465043729015608162667955927077561079193919610218376906436517914921535467547810784167658842209161380384852189816662878696710307965618391137106991172377489447408204431331122792201413497879409186713278899389440954151330178474823347368190736423612743315329983837119673959656729170014259678712483056130586882204905174939342816279715218627539521336540552570270938195208566577586849011775110112057023790398351135739075215467374108746133263918899912453265781463060050290403713951828024231296706290955606743482745436078861114610082173015530223069994087843396720418825688034483857297082386745602405224583030020539316291370060398551902310710156106730910901068233933416954862999529291568425303652110641568738782470732027177143822286857130111847289830660421769829599416645963765557482550009347180127072699702059974998333346870997855014069407026830782407178217776234309677019144525545598233072377522717867172261279105424339494619009447691315970129097966756746126159047825984255154088894435688351397093836751711255881009752531706064557330164858567118354796400029392300110460773947978683730364872691826619734731464426927221915234345179244620782004775543009700334882002146910845325128120797632952163285009904300789364008313297673913567259443730882553929967599819119049629986772594106111382320876044245541606602351603461853129772385858342501192959445523448134906771425486257969844170905159514774129646983725762335393052278982251230670245093902878040290166142743384943027459814388828492719647056272721820665590170436363405928113807967354787720576254858336724142429318565974482791207794013611256849158620413691612137100028461248853543693262062530595287305969827995986839130815070846325201783594783045050808728264683077822061214925436476222894491064241923515995868493253942508722573727878378788060826673171308853736742542210468616411367138648568535324265244807558236242898479290959311181367102298863172763091876500456993117851602490267507236846901594734145859000682599642383831895916925998927264836772234838375147531025806351694293723881912514294065173994107940499475994350965413775677873716455577383593598293935660721081923280191674806465245391217376335441181901053167283704693775746034726291858853125268150455351119066683901570003345106155028622408483736873530420027565670397930596301278626181867195550785224787832788112169557579247368400232212793214056328427001833946135063449973056324107699667086233401440691399911910138580380883506245517838178558570815948088119039801518900855547577617474773967401184246612869859928470908513485668354393806083059910263599766080331066777090251889187169205485603173204100856871113616500541792397358520338019121899945924232860208451354530463643541090191825251086154182957017855232805860950409586053048539958225791727427514535353049966650018609674527796515716958766552549355542044725676376095549990300677683309016321749806606123292487567587116797783432293053321865868957342230310984229306281378780709335380664471293781853327770581303329302917377923237886133709069451946851870043937899840249373679624337427689132545813368395759342227559130224081579703780034696909087790134467166667954020581981011156147822374113515085476714057058302762678982262333463773618787632195819086995318038605445392430962974631066531240362737479695032516266149831647515171135848884628679668775014203210628739095886565020563494198916027786158771422807213140633218845350933874571608356093748555298313583209145537011854185945430865354323051372324270179489935742954250762309575146943718464948586607741997088430010348041628310829025624027469235544599556791585286643052296479006596288387737458453803538479307758965621268903561560950509113282038598342609854317342925008911425006463630077299272504226452997957233595814495430771300100871608538362199761785230905014850378661003018263786114564606119916602117251521985923433716305766880379459876483432899658559812992324467940473156811063748252829102898362449502716470965047659678837236514827452554963438695207190755120912516482600867975706540755211844384088659557687753651591807698831588137883469979171819272195552726939822910106359632057813116899374041738804891399525880617094170910297548279875713510959909875650313893703726435778715069932725180600944582991106530758657358787136502186256644501838282867844476491390845244806665755006795155717311290679085297458028646356365946548229133504512865063394763868319058618536206069587077451460220103168132779126207323802276366072441721080901871296430053479312034988652426575741802648020662754568967255084105559204959060775355978420296198942338297694328188582310680186156352151133111678936574713862512830166482624722884268298520312648841509661508185010877977231060423429744949831604349171781590976702022583316608237485256701117056470984866881504940972963528547725831059789006821526268086479945970618796945268259197092366331718316376412191693860792974351636453881479943789032258290912987995417301625497105490980376674133230871782359266156252790791544298854447108005649440267372417616041508833406065999295698970754039980529704123741648722032118468039840114334792570767813790556833309352042536306767086355426864959946783707506450122485443684831977678019438784733947159539704019091457438933368644995633205576699141991049994792919346085233091620133803905821306515678375551910937446065457561428286405136753612906203402429849498578546091947374909593875038752016640604142693170560465835645850255424195288587417284392118015229315519989624013309494261878612289112155068681565100011529788907019786711710613224848329247291595897252620025765891438153619175172933573411555686635167183723488185539334633554354724919552616013409656428138447450572946608992973629648765515548965406392658248769829937834510414886957328331741064589168242121966843312466235017071752887246188084568198635999540624424863964718423889584184307165099514423738369162384201115473489981862290107023211038170020460053177432585129260531556281198132700410868683237840100856373719847003538337604043598582073677134467491537912649291878410578662455871345400104207394243498278280470461428264320870494270672534316267474099837779361159778054646207404459422334787576054900736306687245004817940523322612041084104623633757420238268324030188998804808559957601280504018586107004758352932149639990979847794035518781510297873882915408659418494915317407344335535923338715022231059924715475320632635357298603013218228756323219460796298438937265596969779242058810588765841188334132022917321205813802011948166060698649914753509537544859249941540891497655322698067913498169852688603506088763607858387760043496643933299265440295110276793515671805005915882132443182664538915197847388297403904870314559265301466303948991566060905829650638033202359695071529636240041134807762342049343380015098448999155136675020800751879557702301034903023951265609760130676127059383925165922339787697923413156094038644682865025259493915597979984704759003288291484548910626820684230522118223491154136055999887299433373460739889512698333796328016346792909029494387772526856445929587009750297860134427344254840386845627346153393085724849154952323513509216011868607081323130009168066180754876538177805943986402035400822693297145351697301341989706896786034048367338359308107654585209573070231830815041588295541448792351710036897126230714697792585918825718868255750880991081542074352613678242051484800505203307776891123441117941499482050164602349160105262596626284175194756245198150616474325176292789780689540080010972430086701141180433248755232845881741821813285616761748663235148920837047183978075857337759068171462983984611610304195889097104072642513263990344671321120583727637062852569067015260316612880948499444522849262917639056172713970087362055221245740652516567727087602538238974214409966749873695686903818660058104595116645815044612949490046041158920512533774841225659145619912323128368842927053991587208825690267869404714528795295301410887799422629984212329265579912138620221789837038426049679111181930326544625464302573706770445417003290737763722441818372477744349079956606799536021638038515286630358571822276333377353479204260849692702858271456632398741438693174588359635879100475753701522247601303235902442618039309707172204880196208603585036205119519901443301533190270078496857909845758927028828746481523118834691815333860242280597849340363567512934444203416188305467516778190832909721035739049286142226226754078036361410927916431438186997578502076977912760394062954199859571439427521545683272906152278789169658202834341418675121657913528382204188838992507991155542317037033876875798129797029288274524866055287660682058765018865398628708636493096083737584321203383699823837420172354396152121409327881814344927443642016391507613264347574296100832557139925014858419533043796597641672224432484517289754329621810777015862421779252830607483735355364681584657476982898197762886629635608233982850472493425821460178251359685825496269158623946210542379719841767119297150656038453163252755353062345122311709015057763102912911638913339385994219939547599232470283415505240683012163534348598717838698368254291935548331984974442075589228671012809451196079450183454927309232565912887887973220621956509877964654909419703650073415641038158569715395127439986624000055616305356793713525061272578936336281786210359248413130173681426721087566337293438418378190653420190177015788866444204307373731451465787167243791256183620232504496084981028876128506611547468720294520010324827902149551825579514522627511427062840530356887178158101223393639876867591099498865282699028412680432657666606271463931705965969441368001171726300012642245650418105752656747751644169675635367515839392782519069334060454401988280076050463693327041025508647676939194110215468977895977566386208605456419742512333749728808565407607096478480379190030511122622515836884654920792528311256863217303041334097262967583189314657630280387174208206534650367834424907398329988658958538424393491480296196038882517425721144559260242744909869727668209487443198774120053700128639134217271791130743494612580929304297832480045507002181371442911836614266885471984095297016384591989568984441151332770030389512353020924557404421519732996130242024723873777215509536165862162780369493024405488140442305355964926649571446588858184762629667172053373877410826383460724080592492183924745561948263019303340439109432047328538921005604526610937889375726048240993876353070417101694975862604934162683504454995721452935793433785151804845610894711157071749139497203842334438164442578421130382697990733297503024842885812331661958800864967734972925328316805285593538237874124329752264095123807273094251968683586921032830999257647120417531648745976013426066746907531950981917207615147565965375209936045733581115735470825211439527652134370441626505210053608401881932822100577589364573330170991949974469272472446299280633640175817096057232639497393224424345693775362525514806291304436988735416940103042247076257134804423521366359002418315235226402209289147422910170949296722041225581968279630856147778711371638185681862687903557840029161099959101009058931369429816197771501344274042257768062496888229984071047690644198056311747792387140235551987827109103464441760504408959745677756017683169926356666740738865295957997024171305396931336209470840123244753043009505031837782662665735353534485906064282494106292310832610594518106366434157324105087327639731353209819249882410216815225943365563989995073656495713922063069569361509637904869993540401956779989972272995977322413445797493011277184502399194761759511181261440114155721374912453445801965799099079216844386137270794611423826686646749185578630582763889170614682792359956538594306632295953594732224441395907030753524348950800290656685102043432695693457575524113152742433640572841284823686653065525910094876043915871433712117875200131696545744820653897553189763701558401023895705120854145859806566700957352311904097793522452449983167602858007738052977500266111668287255299258837079809895596880669089618842492432377178595874069630425186938350237535046997286821375911869332653286381273634259071768208033578884826293376642810526946042716722069328223081959727017612241292146386025319884653649332606466445920439302730926152056589527025248135483042210025858092011090269041421310703317454235811049028101849901697652094484889419475424180162412109469707717679410574553286491542879834800109042919320186946318507631306954340950273637030399852706811379189894456614224351736596795290979878798689200088834280158047551214038246668403610312511541551428417500129926086690022829625905301370339047786381430609840852984277139954997222237784765791864078360148121807358217061876729523236448544129456580461247065742172979332184498374061337581230109903498891573396669873138789691211837686503819335143958663354785145796642694504985693915612945218812005958223266709100992267041880540576378665031295092261304581173378983402274680866489622932242186818692046071082533352884259260354577154058946159633358746741946527575887100830976170663418349423917565217103650808920166150075420141689062354993091029825575275307092689954076699090454023921907492632424649691221376384496735636992831355133874833573746929655708727026682496952530637718966047658421094609127151916493940596440366908366138932420999004835818237584919008584402416873229090623784010511335959285572704158166340297383965092040894648271001744195333117693194947022577054967970891824963572772603692650131390524895053754708343683037399662034918374543453642638599659819086123183104435674541898172135646678027408564244064249913007523713884766248140913375004546740427535579053164493546281260475541245004143185733839844795432517808393415559261681546081858907264254427450228019640768718188551265132384378141302278960812885346965552383307361669575429474222378445062736946040430507676996439393335010302802053646477704194201187708267736167739199966482383879350332107036983019854804882196523014189543142996870262951816666319370419986374840656573398273289917940598797890320924463109133366802606890263997849375994200105248905117932347376583202616784489585463034027812464273647613380946405031916280674253375555964934649022370647491997464592952469129896728345353457379525435468925850788787797001767543447115299339287599998540940235034423877719338407160804192052898162402749321945616766425740969500115863199706039682715180465901427063643060948842032774148072940893842290287192383704675289106787508385204822558892871434279447159776885357927861982192616538287468643225975742149791314757075072860087972567516642809597524747957121998050532257208701377241345693885209014523523343990142576002203440299292525218983710942807934629452849247985898336608597954108024108118245131433590738449735024609485347970168099680555822991496715948870945274999966969447115788977192595195438474412832027449981066326496940616570633553824312185803026398985963849288924448430845685575297290136936935530071748192464002721534264319384200226006203006655683080320829230210882195283165802258949921178021323207529555226027005747916040074537396512733760155969034458325681702513362002390843277842413412541707493933655889031826514564277677708496628555139797269082352314652952350284320082661228014681051737796913348555867296706788375637846434697720722115495780965181755949629073457306437315392349933939998042280229141192730756881108585059079433621624470362754497232905760766877034451577973350648796067280115525978312995641546916560205479155934676489839816607741759021435473766399799622836414196863033724600216424172478670340862789257144801740623359038368474919954097964577630980477113611937728633273128374974258458505476537591808732818693951324945795014485159664884953652117991853152662272193960466906742050274295476068643588050908079317183828900675131955862163324965592741443864643682846222500585727315105601779198488496524234087470060807642630563749019316393061200274591039484204605287907593166808588429878559741065038465811717302268674575712923648532563387220674146671137669124028104852847693835218290834301671261106869102378986207580680802978870525506541825051353940182419356299347326743657454719189585525680572641350408715355693494734292536974970096455180850636668246373401532596039799779678656706201550046666679844094097731408172123397469351562662112405581539613792516278763253874723472968323710298593697539815864545055928929836263671719769263505588615108268401209590933064258902563780157643205212061959729726540289881225267314537069806585474968767034188614830648625549071753868840644589245067876298164684205076130683627263938628422335150820734282798467795803814463795018829533603747282367472630946712948097313603522948141652738153435146200804624721754736406972948953114834575014076460959940864605629928790316592003037529404650981508732917792662086347622750039992776785167802083897386051209607895904689451460368455793871787901898515859302334885814393162739351263565409759969512885126944866575066658078495388410305219362646575486961727449571557513296662871338080276956732681882503685750560559423352090932250623411830475578594982245218196971902992387373663888873514786651476551393530623145468380582241609103556206227950960543896787622030537593713342220104262476298719004487832570539292740257049356248922569017589996375222363262105959706547638606648229030973892065977123658849002575126280113046499569089190625219375658031391945967727061648618747890728604579425997066181151860786723528579761961112922016201683371861505837088679083323229708694729901150772963645382910487680541279668798771689201344389659083881948309017944187027714231720568991014175573906318944243070503949398229382420760989742796528147571805386178615378273862022876039512735169508236694294964808879397794759600580208259420783472614117712781717246544388595425203893086366741693146513457594183527407506467722810879253602371922726103014976135976089645290834342561817620401947372464536868167106972993343089324497593416440675358732406696284560835134228700260285093532661391253312487818944701424551686382159407868491933844754201340966994824349217443119646442230156934158504203104113890155231723486355873194833143214179486427663412057158426189277523038485264683594296779895920606064285755436803911776438735687103585067960993934832091023415507370277468156300067933968565515504986998905785965335545312208495785406332782054239195118008306301530104027574780798610058146321845029988336896755506477112388569376751396898846405375754313258826663478434588056891075990814165656424421589045359267035878473607766413722446327165590207232532520559209319407561689697853287841197373959402709394414488793479095254807477446694336755800542340995132089010115441773332075634512762552899261106583725596705286684371760423021826450295958335893446069542660887709725322981638328937492517233677694827160464338388511240581168212604614120981857766299212241970989387987953185613487613983089210437975565682505677141117117165737499001418375282700070575631693643788491708383793115455484989071389326141135364020962112656887278280085305796030487618623668385443359865048710429516954964461470035051607382894443761642364472390208685537806137754439446861521820562699701136962306100155044363377021915480903365866720972724309433602965255168356888954240150255105776150576572434430806233369170254893614876244099801052253163397974076289161124607616999513264395745179343801525615026925114892620273830632486469706471556472316351521190671301885079803333667193079425431628012114622068981244179498375642499108753487561010894888936993439130524073354713620908665780154269600174358254429533932421720806634977100551845149795367216752008744805703129358693284783628892693394049648462851629033129899600030975544965656682444702159385391396757168110882650125088820380553771950278387107803748970746957562922702062345722169129230870695819869394893174973372799347574907328119805959741074804164398865598122900561698130855135858735050641056752708549703355099097944792980949614852901156380626471370456363089641189211237986298199155005107881037529319677218495072177142131239684404764418856419717358081438213533699801847811799757426182516060148190362205289549687179602094235006748504137103286361780521063077359528260388612762724601901231776399538905318962386201632686663595323071956075337036117810757278944394162383772421023151242931568017941438169548904261425159969678497958203368943206874828336317290035872376821416752324160204575870417297529213962628727902157768932845435635184225465412212279321314745490683341505035234336732819447776774899420159932593718208651715599499460417602106509342091994255513469101005573704485037593694747795391114936818521929124141069818875044431704336351924150323406883565140095803519989650833585157880801077019585607755249210409361588287347466520330863670721229659248537884190748572073948690127421971208795107050553198186390088952818154641069001684306625146313284656083621383671237050290285147990690398163192610813557765344090736663249438250136626966817594666859096884369591460240450529769009882316961405973397798380103103649465467387832254535192195573576305209470290909643607606812889472051206255017388736071522195366046260520205256711157873069502605344067699604501553491108609243200202316712618373577372746279841390358416505634612352911558565137394536033882758342785191098759985125579498579548394252425454407216432346072438748975309162033214415882286805336804913209134201837295292505989138889154072061571662612145806761714830168374170077753095574818764887828168136686472792321422735048936311479141398400800170665081740999040030753838079286710841541502901735174067918315835864671991199899962603170039222368507242108202066840841257401442704168104049310194978096588915223376010659757488728738333438160900518546030695529694428458418389636007688433583248862160737301420123476695810821480677371985555972350558482561865235841526982591001723418658887185016272618337851214645862084318785934061447308964613733579079074905996907033480949695113328485667568380785299411218659150288096166135310227395929396619181635626690516615864155846119087761031031776674749652706302905950248037528435151344930162196148987377162971284518364255489286701616635707234912306934411498252307663920177436129971201624814467190702421989052686460997309896290981055143294859885993085413601091485440807185535960434639437739873947210332280340078767940583908733713665816756623544195228551632557238129657426289587382491482548287215125916499846365832038683391718225368207494856821644212794722668648964487646092193052167110348297234415824892012801168351918995705050166979007586043415669292664174515143082281741375461926873976006813984239142925893319664636173237113768057415357166282481056410188046226984846648525637636327282242523231150325881727493881574183535403967533952748819440909839483406372629100402496399648523449469384933597722865040748651359387200258738789656100412459182336280534030022068828010380279234086372249622002043498744195154293240087810176783245235723512721428055362452998651506072304944250728488286177814639834665422264519679830219769312736119336244794887054097460253404621548103110255533872869738218801990133128457762541756352722973681374918391650690532572463231634841479317404436680066888623972501570185849724848493995723139390351242752636104272434390237084075299756610514963352162716568020561306051918250461556932756711978642032109047872787913529485914964567924546661853471280819319046942885277662378424098233133151879604122398467539366824329653851387496102175870898542492558521250939064126608162759512241156638642438388876977688517857247985345239424562931084235855574666064079090959698653741167183138106420039023542548199108267436080506245861747712171710266869426766069761271401609378976259523737561943303935486729641163782666593845076934766094047475290131030590614121356305613767826916672374054959810965514646308216910410696408064991118204467175484236347224598919827577151411027057548259576158688886905175361823542987410264559867573611519122752430104421003150716777966197211560270202638046882230996852509198318096236855355269251575267058542870369145259031413846350630863630505402386954183058855956622722204061249087381723776861383701378147394106064253465823620938464631461512665133725231607028359832990939836728732622557813109745481292230264709836279516600013599631951367164438784102591075182759053301577358367334422921888141946991278972384856388837820751563396637877568283217553531929976546055734561497172708909078124130908972756252078369791879627061008950287026932809445044678601843390968015218149874829057850250214120563855249485143442065192851252475744669623262449893483401030991520701485211079589911618747039471882594839389882428410475212974589710452102817483429326927216153426735915221805344498787122376860009412497646471114786075485814082176487574494246135609744288831685010214029485419682015689816034638026004319593335747141006306795039003612583433726165312875579674100697764171573664874502370811184601925879935650708152046859799499695715646202768746462122122171360022113449416657687547502176767159741371097328506912911084644002919073513615357788506380287351048874967352166724194704921816750263753218126244133032351169708311236968741330685440348471684774658979652379899692194068423746710518994863685961770472808269682555200395567112408628800151533628710123570780150756700720294273813824251336468049768843895494908000968783521183883495782332563290800056961344769869349975569115401130584429448618710226119335384260126822849861927985141903442419162295677441294409906942338864901025066464183197388819707558497144408157774936559692418478690407246566348325712565391877413086778894177343041569040290041255569756114446659118743502295379581807179952193129852992765157266203293621757455939667918633808688719331857172394213897288899263415466906712043402413810294254956025921064898103908147120944470851888433710619456191033205010315392128035289238860046511038087279875621057030507109925032628221704270107796358435326432558040473251891883107218640387443142445596485371686387913895246749480054517568198707098830799631471619620665845228156000559677309622716171095347479496460328013428262809513407040540271361309230728493002535966661339366379786612416393712507850775423753547160298665078367119581907904595456201802248780271748643131157137319051723838024882836237631195255733766826077189859105415183114029052145222260297992055195184680496290591847369618686767372011905263359650218539709192692419672519797490229805053314028209103822265878845014125028816637414818107838105106659567565186841471268499324819866630867861106816594706610919831646758426483751039745496019617059579628695581034807123170828189681817905106299394518048983596817401565297367916898024874184676015357452862806736464686664229014956813663875495147170655944522492142225262577804628811679707557120677296999820145940750042314029722377624497068735610107777148508219906707848432714761282040861469273638730165999480108828550451877639241354685280993719431149199833218365871649132774858752055662850955889951871765122073900165780631399657994028058940372891702472328361743500419514943134611323695949948193350431153115283014711196997067200018863599884879167158371069090795841704640851683975180650179264901955653239526696363814741544357216894515995196630819596015403712000937093565982744478952020953143785824902923296028285066812164128245452787108318272281701584708803281655166928791426632987739296628915033842997751188927574130985054971835035170103785595035317742894067061770277467989777658918569652338084549459930293738220470154609710720124003957483350218129260330710140744728636701287925548329457520213468990924742406586633347459068680724862960014503148632564433654725759256463868832669237104121641330687154322274242447593849047574013862169115172041750040700585188830760451853578005975057670140711056201375411609779532912468215348747919965457802255822445978438461087962421532829907966314920736116523612073701408579736408101040457440298390981375515780146608525336190865253868964427040538642359266770262914375186679112221864027520066123333613115485662931859197032045886839233807192616254197131810001757789354978783582592730907355501885449694358794214304491493355126481198437554848877678405049113500427614663111317455668379771220369285197732518209460307873558742646181474323872634416687094113552362851553110070782548094000362000593318362287400667307520259783108716735954197190284014223895429218932945721524346139985761187130007823146673832836439261330275132496322817325288234892769182540735360643056356975047263412676330771538656486822154533222744038876099811735840006507903204047518657627666344624319186009002006554880947844734730803923555872812202320904711087407243626219140158789443643276092648676949304431313099502849014989231972407988271829704534154249215458006748059941248328895918755600608354791633528514764757974200938063629770365236791954026977396388363441858511679604455274394564947048651618735612801017339536689686889828218197703152542248875684356100017728658535110604168176332236502830998863222459876212428475668813896900074097270095225399358228061153411998104482182187596022345016345758072531701483714874744636901168397528323647867842164740852991194014064276668008516889167269694469943566826254896609483504142479168712283121728983825292076036339241183621160596469516005606079891169007947046278721959549710710443270184293468680496182218976557121019009337500000010784449601851593563584946321398779962397830395590705036198995368858345424945373889650328840670389040117458108488135748891482206760191127582340226458284967300663838953726123540297427435888208799173457808914530706690143205286119492407044090972430576019362676394227287127292714035777189505025055080037701011282307537601348261434154789663611109808329222455979775636759937265092903532183751468430772369647773649885983664605897710753671206381837005602404829896056182659348656617786670089725897431255389928947664015087756283688204628578851552509692090033979527123419151116170503852915820253853957426691162383848843920481815267776915433074232186072975747776861524112101919025035243839937556697109659653923732380063395624745789226587333552443679576162320572403506483299565000273232288993784806546702951822622025325235801596701462302642812708905975789407681617708199316468068801346859766960165164206547127343422863736736892894433911360886648542612105505788222768496223745146889265119805940878080375424099203305797454746393045548451274200692298095380951231026812353144517328339531874016696614848023188532907195339026663214929592219686589311057990058306950032205043678097164564240120300622283154497537870163191211148716103547909958294188801795097417779990550684771625851811296935215682713957453510638034326362467845713018691044482840848014408419568772961133112270045968143315800426602375402420644386424563006751994062984418823727896309400032587574547055625746077376518291575760221438568837633231623067546528951803718338629613845108450942128512790066524776018646799133882557934780476767703285948944306262802227813738541763883404558459148720555048267428222469727794005451548314972381024729062672041138427391189947858880585371747397476031808241814577641886470229797329960118909368599922355582483755822138108744052440213922494362518203226121237891058476192857462256844079819432105064089026956558354496161491241910525775418165401318987592059011598810156051907621506868551694257826805115787406658088911439238386104611430732753894534218925040622595172690906861604655615426472208503986099381570909414346967619922964077353603355668948401481438963272281328094728227970106330366019207900858421558018443076279446855739245339471990016312135867397024351360474434965524307499963127558393739442644479070676125640938467917634051265012337046928916429507941761276947117127887840337656098751846915175474726535799898493382320511851230370716943324525120031340394181677241303729573973282672880563820161863655859387000610675341305109316464816229448751952939748649970129830456476729386120017066575494936189711311360412659652087544056168018648956399261674771864828418223949908992065043085136578467573360073169263766249534008962919624247468522095413333202776489615299755359566442562026892469710834717194126113374551675886631623558773482617249798841087763571974668097741510746975996916305714769969473352153857122064489588878026498938373681810348061205231510335960468242334408178345496994424124973256263549524221449857861099554729770848820539717471283162143456049987123352107077552219672738416602177531839516627911123347090049297357014321809332716393972701974388550229274072842115941229336121504185234529586092553692104698616696657294760177472656247967433113236283616468325255631616352034881351639400802541409780216504583226583450071090788228166340946351130318437408825733592153980426024648456577664862996863446473749353781411868973522009661232135784490326598994111167195109214422787221012495739745809838154576185731294701180941029302643336219137900592359072960319284167618403065270848469004512157881249310912110301384379470938648838807417037720630579310928124006762968925578618638816016284676744926205071845795699426601202919555843777517602046637245850068043438053509597009600274827132569668582270811615558946670198118905207539294547847900622344360170924304694538316126664001951817706663486280302167808549862757638186232427142677963881052916422282338315659107677217091582169559662634540289964682011833346681343399533840915707236532003943800750707774868232397586479930126998121965996421765586951804633626315823041270223713668860671169135613135398188778252601591172426544660444932099686579353462880071379902984604143055971073867870219956026730395571020729725155393810085228128323214265618429229963439038973047180331935620625525315896959983738400905502210408037687409135863896614180600366694378945364505585569550749935187784953678732417019028391726173544169721229987846184931096124735756347259566890685503733485239227954580273289407659581653583102437897243721287609006191377069967418933146221745747090758850482355056496039013624086809929885272697220025101929108329824215203757098321920362364481679551097458032968444023496157886219825640409228022208979153770497076161740271568394865792941667919957891578904799440931473766788070791241459802388170223847763002228329652026512832503628258212879671785030694674107594250742842043560715362879735677676007073071754311825068024326464743070724643959715608092073576710574029927445103952358740344271987207139907653579774330585009885208939416067647956056722001718189989154326647039611026002140479964351782504000842434065508985758761931466833472049205737081943504553809661454494680529777046970644486289665207862739048984731934366465076518970555136617860383149170663963478104326568057040084675354756615162793140375593791102905551843100097992221314782335485231169489558171115598135939178113593125625104343405750722908611338332084370760746718461401391437401486678205938018605381199126304233855416679033388585715307631328723134398251120792696413825457601437993395157999383946131743936454961099777105388487910098867272760031402708472960034956244117889814759199963452417089808270538275577362825724235296926030300450236799833564007591892670002070708230422652270700928082993329885301553175971174461567395367784967166477453931586807806710018080587382936705862748448479367181308286021340374782036998711608979460201578111247633817537178608312156777464456301266566741177980018041554008662265441092706520832221342971211976700225501282133334335086983792130189342209331746683888760710682060503893865815663644907990929329621142100664496849214269687816773806583412456178987543913916297193122311190282575556818605220216993839155926161448517477956580565432877593003632366852418565794487963203788324230523878075840774522891471922742700439638547410642183505291620564315517185647914476949015488912556559153224139329740943633984576054758109627589758904813764403973230842536750202586766619804424366975773233506584068385734310755124001442248945683877387651756216234933240652050716559338043191541541959882902497212512247634143317788448761437989090411310510262996420106322087843107822207380986779464659667400317608960566173526654627429147202199907522534896928371904938228736676870776386968497598132488432524227907231457134660924846483477497317620395222192585087479226329697908284413439913526528319977280587984180336316885195429261740249638322294364832380781041642827900790240209360702151823034774751756356683967663885612767031321166440269469730985688250561110124192341716067164080476064685361861706029500872101068437300559254400701455284635480895817049133633680403588796179910216943804375947355228186404343286770092703553918661049739128309912730594968105024194951834493293823279684019567429696141124463754736107019648400494377325288451065407411178888527418127394622347188241145046875882491369060087121512572629682539970954585236535013771988141802330528424786731707599135061664122849017598055149612998395235355292784363486974180452282922999570001642468822703045388096634405694309114645492193433491123782325269604514997522300149098150586557563600989134004221640782032605303995696313261330849710783058700864503307736930822626177229210251836011398539026173246022209827939133954497791748909681531398987181200564989475183490594311342895086861750968061974486143425380406627057346642956581340975617892678446016527595705836590826976646626463129173324071266550008931731306365485406631387073723097995457953072103386731252211135147044317103698448611338285256916786912077327674905274683394569596273335773911845036384256708300290820639729708099415978480933312344981070446302286597053017926607832916655590546582743858455037460426090866783701971217639935636159387863781388245884570242509019501115595992229436925295079699757060962835438349290970365964956927085128173478439879523336727952574635964046845695659395605343534964767032388560071477948133461245399188809031632541943729285879679728917568922275233964186707908001307198185766481075845776358094723409175272427243601822952641016165442891484772773619283611300177254636189773209079759003722337635971939083148930730413510887346876462719977714851535312538335446227066368557070496639719825717977815426981530024457169419331061346337486749769137364139768101682558347864007009293604446470560009512373537221223904946571560348011403064287193177943748504284442945362014159972710896902870973643706254889225851647201250926672559674744125630282659657892560276856221025595065443768451779639937138304146738943739229801274247644246397290876698519077690199215315361483825606977022744285840727663596730883360730725297126973333478733502695198702016393405038826896508058862803906555712853676189166250238000116111987829391955028358876295055007890372900622821555597291732663229386898469344365042828877874503758532537801641373454167009247637494986946775145079780479579653343809436041256014673754394441425456237472841241459866984335538584291871080097852004070251079313530925162870648926680943364312452620113618311567124888060304579507657212424627548061455566394484315678170828730116212351563260562944978865398237782950577691459544753515671722121860408554242932672327293825702644261159063834919921293586454418648136928958630380409611550745084954379857671991921795066016752849786178090927897863852214493693918627071802611080097874154586683135462219844342352356099172674034186927426494237896372087446348963003651549070190561681461527844709739204977742570639041407476552755935069240577100468109071330996224632856021015109113442453182724924918787002032975705211445515437480795766842072519998222428818548032907203557326811510365021549096912099029701172404147948096097256124073524818046842822709641538285497721856756811601942899394069832476293440503967647377760980749475917716232988439409541032639625424083850005552485601681206808995210605418934129173175604307149784718480513227874729197328749179107331285151836995447112632866214905389704964203138544676955326647360709583954196516742496400994044140869253903796003688746854387655788835341305660096623583215466174280160667656914341820827674340143092277972730500613955446428151468016431128856453147376861365628911603455050968574498486485308315200003764891013852639606477249501284313271534281766928703282433242528307995978037418028670591882781261372037946993659496940657400612427074438756584448276187457979582340672430655285823474596497080866796767153927038425872277734680522987804842486913083817682767886900555445786807175380189820045122454931213961633655499916493423774363504596229367238240421079050400833269746400018572850077017043394336829698572808622106525958900311252963430968796182038098182047777959023391550847267642774764368237788676114017217354079437813216081721052311633092946501046188358206046507433154740721752842048710509758563760559014537962265168109997505483138453568611959419228930489168361601011758243253235054730763121835212149923030052200233426020184230609133550573735131443447790557283034871319154849137313289310095200559242249709712139145128890098078069469791520170266064846146062583420310771294636817311598503045980538945280971007456747319909006031759894620568748127903724162034716981131432428144148514971120105849383177270336247087559268052961497090525196264041559868988203094559222126111769252329744415248988481572087618933946140060105632697750109751448353081464524265142886569372752630412758925523456654396551837793761612599594719404912236589075361008702638609973631002499691696653278944899759837011528359460455615450300537839445694735637385054420096949616643768098711791976874534181772780307658582032988339433464218746394714758778111643669270179625594448742015318976674435912698791084036582255982024974009649688282611541021214273648917146484658341791442608427020889453390792350060454988104031987412912332842672439104823914902324200844457012513352451458602301796420067663426394550296117170567026083324251353075105694567059245832416534522139244034924445557383631091743695615961391041030882998257948147707266721852259914784526149184969807559107111064166002324516894585716794434730481593476001064940227772423193447850671354566464229045435879213027741016243971206047429054987085127424878468959175526962224926392395500028360914315707415989088712448699103246724401841397227311248233873869760134226683324029021976107741234633944846820003256957657133428040946291999006342897466155683477404138011933423521351411547065817337071407763863418900904469478632590902832087367354599471592928102982393058965943527359554042964092010693600609055356996396459108875592949049323730772771510818302982328308928379518259500500870912147455804199504729202185883189650652936230005376881981254412929547520868795523509604985817853983794487461112000422341838963267987185728539939327623682024213778043567346086688464544261408504880524228110178298510420533455299019761905617784985579527346539713823633363835136099166600434112353870024850987018693554539778759130517021581983019250718537849238189656910055594822931599213656053383295441435287624056636350913240311606521888181287689664127694812621814363737691489613658137519651986277274329216632134625386814579327673389034546795042423854343756539199243460186461415640076964617079808419331522988563094544730435387985520663602587426804498025528309661521344503665177010247194102166059688105318259988241147621181071759416694752105878181001794136038179680627516200675664274897617020079834332170090070905147226094842891000752245213725243174069946927973968516411400153890170908829986316676728373787832651479195029646711435364418709388190691009880653532057481065389344626834183815550938710813462663547526406558153757724550534289110287964785815123016908577578458498751340312567886966900060090147979758526418249310473499450894854974158789433827654383702502692084421540350181050493362859640593872207615433342776780810123777740476964502027464740240185788061201387492661613479936228854628646582675382720985411209864071907945561137759248654443067570848573258464880938694247055426815702237445783250870323322557313377739175148139198006121266251497953916965044814401545906411637430523641201667291866477052941006246276325674216269308581061156450468105409605414479386412563353582379069530316638708203921818089874315632568716267941882059999205480929020960792659072439772044670283677854986741616348581598860614855415329912977380205878161519112761866202953578700809603111396695767984167708666118608663609739533391544817864117453888713519914882117387603115012214794540625171240709462765810683510862980277896609811686622352617950657573919025896532492844014305184363173639504626428578055910839822991810222361547976328731255460102435269168315788904026383048504306653050875079732669163241566181499228978181910364645207440934518143824585060957030765697544105549247421140713049880712261228504319044669562785994781930827329785003675172076274603658443760965559771713614911952187247524607908937750749314545402908301587667887059227460443204337661763227620662216283370376921360956309968840939043343215618637566065360018199273036271265430226315580249171222772121760272803398056628216450102412366132111579610603483647134527637941024467017705680862935422827877522815560823517352310041807010978821512262106384600274078915249149110333542047684916650092266547019566163804113386928562266389057098462314814494693478317893803143607006210807917465418031637547920326661542721244331237440455175612012373566031421568145051217111491630991704746129775011111231217373050643528936879954336791865460372669764551557871580499422392518343549824935652850710310110237709426540983906903562953864379137462091767954125901616986840348520278129498131003554653525099414724976366867778853043283191795474804227168680339614737319325216782357525816941902759089868870670298683554253726338889645888471940173573903363417412788375381975707393289631331928738075573291290802027905311389040403227953505626275621236366325763034650308754208119869514561818722786501192190856538329500286355912980381362229943250551897001044376536180722499326673709114282401345534036707892181928182882904423098382953154680961201556701820138579701390854530245099845336917175455336299538859005751498920528534395542249043645790493151954640053696827173284307480953939105911157845158192959950932976285122807961555828392520095763104517135232820664104149835571855724194389986419447330300105598254906622262606005738295019975441670950203853093422751037519859918127612689852887738533888748987618296300004792683564946524193244435460255035086343929715755989878644274892453957996948736871762619914617764329973682119055271258872819104013550560242503086663056329873608296607217831838872840673743854291940065540212829295285097651258558435999323196112598604633404645894111731847706336387817574879511195646906535891390219187892012034903992094677552757632544813774471130688496248863387724739318503254299591297548632065640694335846639435700197195036639757571231632725869764306344601101913388411026652356215483107608823540051706560948761363424861881165118265893709085221553062852827089273745791313109131095977838914345106573330547604094161738418179500243787045339828482446149175633074949805694234510439872984013446158485936626020128523847790549104326284693564590232725738109782449249243798659246887728489877002862874506772517772554714133893280563188981293652901191586923726714665538393875805714364081657966905227862541805605829797412999997259644781587652892367094324110446466055249337123762334588314869041829023096502284731203625977976669850074697665036664435099902764664512185479539767622993945937339444706865403671995764156906044822531927123927072161660917306586115773712945612915895179890789066127916839887848125949218801928798968250229491755172298620718456284362468074495878751756668677549416181761699003128496389546454842514718892552200159361376465289416031676129527207573430725131414263364623993618290017805978043786015634847099311939502370836857196354021432903850854682605821279685183913934093094860410751132977273100829693019946973566392197013534144427393187933504668357119063254391719860426005043048651520127332571148107125912433776695422414874053906162500645119559661655682760372363684158874829936553981955496250941101319039820369295737045563781950002443417590597382015267875762668844115141836160596485320581060048836664630110209707732976826208701937756802875609549809456786733477228476225573923366616347800482454423737693560259581734316851411988075007577867225376034949100429407416158952789219111118088752148465205693556331454899871853238515035244738869910531476099924475613638538955665878951451713171540269589220892026669745615549341206926232231517210611991588588143624605227085842918975798762516012783160482280698536121429128786734892381912633020810484502167392111850293888578628157426197823596000411357972422065922469984731951966667910907689559628426681976879050789619500101329702601992514714482879253501610670412640236166671562439259330133756180881555499408742817051376585112700479901175808081998644003747364754403203720110688414850876608922309993250692845522273089022474697640261519510859087967312134294087849263983136256789503091005396334128757117811094628065797430727511178217422338761399000836846577625627487767018744561701913075728299072149226534590609847043564004221986031542244030096988803088718513421402419538493219367805025409287227482379033866253376326386329912567681573347188015943296038079847647157915403033599357020617243382492567810403006592720379002634657505874127636755728415434437347392841050446429744361802056388960698530845088472228946187831634034271288925172653273340175323504241033743785389046687232541306403358217085348603078751582561324215012098973748131166938545367337759664858705188919530806351994860599736619677969598132639803922222193530876261318723082426021774125604960216262439878020427997893409562506504522449535682999150681728514036122735051969484793783694098869786582855869599029524044300434149556631843443382048089915349184038132832273683577347832735343594102955841216266696516723303314013753668282951449365311126592794828034990198168463732871083749817705659077964033363576178822278689174649704735363324043790391927721849643212235913646278032775795847364084705262463376760981898680560596415091809029500090863757101621998721631990742448889878846885996516850865471673005013036021001602728967123055770662247153054407354756846604657744811620482967309162893937958620498001056617746944608819393044692082338769198699636906853891705902169499652749248399058280640107108777422669071178328860455755870125452872907236375633332705493192037841704354563874833156136928892856803456493357598783832317198439502031465391505906509829555674880675146180103183602613312088449674414704608019676776354265086009227168191081498121145531476592415552957051575315912901316664222798078735358452707553323566989767102173625708733071973575460327823231656030526110668864915367010763849132850371551068830926836379877704979412837736697566154606969671599461211608112937619246912203236587488093601573501540508499703943508030159105751287637535533673738731171550553238761253673697221306456479270441096088999050714892950857613320632964817120855720142217523682407677625701053521416485820149423778139846663423261418896293218088701699627721878634636578230680004867224560077997881883514115632855054559339520181426719413298621345887866741225872129841071069316832920524445071374570256496440904598870536125525171552025852191230026851439118917677435930753994524569927017313011559189085738950347094258232344356748379309538687337189467570581850506860130592833954870696468811754014912708006000798879856721351541633308112004361298547033698482766239919209481481822663273316555531040309614131553788539228415753233961929883558199605258657176515809072158045600656778674886012350016546414710101397597928009563096843715838864290253980348340567347765743934810425986745360598698038847575678601002600087720749143075129975156269969722774254255944656923449685691479982807976635543869202409959050753814828914625246183020131559976160230178673739697343177233282557789592553133119697104271509363215708047988378148280539788289658727778629545872761811817045618598525345759189819603248566463038316501807160171247356765761227812612504940334344905612822727721617200467996763581536012894851206708357319570275469827880251472911803420458900529757630005164391316700975618234944716210716919650758589152252603551538841075585094291452857996405717168517577969750351690922311654575263921364422984276054114778133681979670200233210019355444301851248721363418364274890282928745741727967444429868949991595517129451130547764158234638491962500202288951270332172215091263738080535332536443666639537215402103169916505806123486074516045724864089868139360797890696073919244349799175806580684612427127484200549951668119038586027852116565254619237873131324223347235134690072831000626544170400707800589992056853007956053039348659820864018474842709759493399539301875384709335467697188620805812473452618929827917479159207202378959386880463269980990230953002847194612742027779998005974423539601661270379304150280683108142505478703394855416749719211877605203344228934781592153071318472665297280555239001482682829209095377195349453843859959714335285977687972396340738716834414167600823191231461607830216562462435647194871420685171403342463276326579161934432139296297923434087478032633393070116534646212062952119132043578840710537849717393648666788009199241778109105171022990228943892204591717490020866722587097376903954051702197393621753048806461633198750621843790318970594016858992544175162586854080422784245565821126217679929875472769144944266388213248129657842598171633709689081828603334305547613008667715813705236691694159820105431336356760067860114197435521099499345784011492436315090486024540478189834367329840552092688230902807964050659073630457661119595926364172829726964094708458962280005923930549933084616423108270905442687020679699708498229165165185000692706002353567895403876689990464849133097301339766615675705364116760431722627314703128377850282685060148004845239968555632739389991008159231509904110986094533734980406040329728876830787771414398369194387961189162288975896241960068572200000358145591063825214894139408656078244265992544472569579107299001858267749332649381825079121676490253100559743261733599517945868274068851354825291667328789220196257138143089484713592534644483733714226496659290121139610886513912332560439861130030317248026857429188366886744917136565182674097002490800795041694688747721611131376158161596831647292798154433385288048388189027518385004102469588199014381543012768087605607863398399891900568105502919811226943312349633894378676861210269250686057402710718286235992298030983670002801172870712777347673452845224064590247263216840923969713364066267049375916240325635817552038278758757184461773933656014512260547178494501604736902278633582669062021008094249721327908041088872050126552994027035710941294023606876993501802473280586623646234807446718912928150981594303108586718669422843228175339446407826640335490594510325723431494052449327413924387849666586214050251750320370663335035250689167014823492587100673202328568878221182386100606375192434194156999550974617299664618544879609840485562989132992743608904736134345834629396563586219689690257188847240321390886703770191185258901409731473513881758969141217179508417637119175404480102135659797826700230265504331188228849061106718702885614327488818904853840617275786246212771820082776858110841778950426638547481018095468422020281840584972971960381158730064861546744764340250878870800300645616783063704471137748095951976831604764790721137442546961290324520476723350566962620083940708880992952485711377235958095784305439797628119282921748545161954400974622747043569348199055409386348090319205342758430342671765567345943856268967175310158549128527345202538642398687164616515290500534231129176983395335407890118774414628695288337860941722575792775114533833997501290466867649785555139118835424629100269235313852794813948986552028531318772462315965744086860301407172915692734628338386574228512907833053399338966896636095516432923311298926976188727151514618658178908929744130507474197253231043288253091858167939776861089677132763072616628061945369790475988894822658985806625203332453710439824750003892159457929786545990958840811470029342863813828462804051300656040949216376858525528636308133610181562923678151606114472073613763639421032850124889322307616575580390346796208687714673175438422134860730422145711581464191255410141348058704029938841136726440251479437622861650390839648194242583428795595499634556141152885876901924074279090333251883406097220081058505811857137597456668014321202396068349552244999206319744000888157892787095700664762384719152815086543880448115800736089044116735688710931252089471985040894920410665263187284695057137846694389126824446534595082297533946823655613877896569530924010593345621278694383990202176098280895086425514848818991040596278416063524088202117610047449999304777540095591897757912199905787406614399379865996574323585233686915792406321432510289170487749348573135393680794967702887370378918891850473312389060461406401386191516401225806757736055272682080961904687372798663530974334547816900294338439884774346567449749585504914400096311872198043119452000826448368965608988620933767365688635987839254093306971664927266492744543799018905036873566402450823683777435056338000883246244912914088080663648253065360821033005230756092054527982799041924507753449174298411245637474047147696068457776668735825892435378422677823340351238991501433785825709554245092943247959084764658349698538920699352091842832622468331795814367211617470454757663060659617879341554858165025105326472709394047275030844482721765870200097465136042149565414277860029516440576929806914810003553145855142837041340163297099550442806503232112301895329723864860208124314839819622730824305136696542915442255359580992200433132652768377665681202934853541246030877479939211738994478680359045358616947097325975216403194534579178828900589998499031766818576409209973328288105811599849442104688074055679458876329561411542073650872441268664438233101209731375497043425725049594175061981775713303273558998594375216212969470038368902807004564477876394232572978266649387598437345811161305517345877442329177519967460084837997200019143685135291743619707067608142160740936820016445242121733076361806856395133615986550504866967176898378438347495622140527397159846264991181670841697611611646375154186093003490740193292070287742991527500666005990457358193289092234870892199629832814740600453977375461737888465524768480971526669053836931943260362998878713194369021844951358649374868754504597029233389903494206221217031036868415825191196325852437718022663561027365343670247988942900295529551105257527435656348841915519384592651776981663742360928956832444823483979609890138042271541114488208566577497884439023298856399934807240469195007218835865224968168343374677419465429161073514289187784479428953744907113770626793488494365856918047630289225685254827366057641591337345198846490914139690440225956554051867633429110650739545043490832871605140459104750531787077758589433658584193032372295759804347235521894766235353534594828482630760285847701895700994386930613101174041650847861649825682572649794748825935834250884603771142946003319175986394518983767472933490127361737915996287922872062584713863453027744758098053254895667791759342056454494303356736761101884521147833016396276320298176760795900538214647035176220720455796088437941579401632587176625256641353050849593168735547061200269228745839739497426874396580914651761647545348097605213862246383705838975051468985553437826308360905803402351844227214437319295004870394119765252914514585207816543559655829142199734316712203574291704692587680382845862200204153361708097148157011161592405742340923796839239747687802808200217479206264756959554924546993338549114430469012731612961888838263555959557158616303554731383133643345521305021819354000609274405491316077827412428119398125578253062929783246826336194736089164512149503333064515117369652304198089880933524018916802711111030108132263129999969709089207727895388161590236521668195245673430725915917092706279821960330689641759438060868873509255903485249837659976311240898979794519257908480497496769893413363290381109772751064781064660071491364544552274386027617301964697642002946593777671788152193367029820793614514691995674388455483051183880011186419180717286636659571734704357444084007940563050999941501901015276652382251463594435626873785477239810203912854181662364769900837280714789753545880202588134146952225845085221271661566773763522297232932000727237043919237904371452373352931985109911179279667768420881496003802780349177237251692060723776700423305824070355360403243306207403623441420346233049034561554355694388703878464100719714667232110029426952908108369350796143925238011655168078996007290232247965234679098639448132201674804064730269825591126303314400238372179028279052874879374472286520842878316944566410813499244649528751980703404853343521644721967380624331399556111568292206491905416743228445527934151376517192633115506950845671326947046790582214644119476181947015395782052807861833889676175035191859550115062924381995730439423834405860473842809945641923784123073056208026734042961883977997515703562248919575603661123703640762824131456520031592415656697751234282394447706714806662061964261119818273267185127946265432449021186631753328388622733885589749274039965357555476823898525747242319259662167819007744562805376791134860971946037012101502258137800635618429127615225993843737399033969083300156110533383594895941148107283805152533685489857594128081776650694042690368245727577704209557515251125812057003355349648808498072402339471532361338179862541269460942464639987049057744816031436679979368345456659760437986658818900241186770526806646300927546186852606305884268190839475741089613933533266208792555164688101637981920488374510438512866485743442004868895254428536948603796901526621529661500128840476158822231026476571177220120475457628076678310834029085608524295668125236696607363307340359601165613573854271955383306776674317323644930938687158476290780049881574732146516734619810236091000124750840837283820884266037664650224109177835365658490483213237878043634266423973724590267740081708283361267433272649678725827397469794284182428288393352895296894947347922052156757282299772954000125837082006888771724616311098481571813380611201704601376143908766051354451630229395242281306755057085215336113025176187262231396679137027838323722529708260481552083348411617428684672688591932298868170965243976330251985626936599845404778155997929227470245767121937326338900474934915186235098479403683577912638865030176368966339205758314282220458111384149886900182592061013600468910021992636859860812053523315691499522901258323557015012498414335556700698922489751377022979440957606981970549203093429601204579967466640231869478147812783922618764951446307383199496699574049542633140498206182414330651227271025329688143748328250612253673912216646060118270743064902168139565827992815052066902815894073083353278486343716464859093458933708242137878645924105045585054839405931165831182325487101012896060143654986743338769144648304704958453174657020218198166424601798537301213327907605690322361607275124281534937187028692101321461219064870002054778049318837958543569726218467344692728357923941649713664142301810815467007367880385754854033721028910565113412100138734583885597886136148161314045953462769230375308175424419945684156329220882925082025209192116607385650412551902954058520394156969080160484563647307858720101742647157700368765547716767882373268940089896447573305621682037407144129192956315209969159429758148604926173702467421324684792567048006276492566092417500596865858953525305736194267311808069005013802839980111889886868274321036706821958687654572218110385041110461739520433334025832352993901329541929363365069375224345069027551778681308672781942495420430990022452776438898324913700052139684744794202125497597406095917880696982658919528740654383880834669255670258485288617684798263869327679311389133132996781565749679196722402650356615790772426089570885407197949580925927481813234633905519007092417700550149945268046860556499949764538369182598501887355921662362433422282625054594980785773303317463402769822661833746070802372187316669473040264759023435721954562175187181309552533674776244626823563232847677826208317040595363184808602456846589581969023994759020978244780841427771892576331738658753688788595106329138881062832152248487572561365196175144561235809623526312375114121054892531303326719075749149063499720823903013424469096460387056063769923649871715135983072219907840298334518783533538202050889519762084018333930872860078007981258969168524193765721840225575731897661913605768411855758173006348120120348061743567660386923437885467167570126529120353015973383361912185643428886105096287578431959718707130374513965909811986714499604391966586972242069843571468801932016856923099402333809943408117019752550029037604429740104449405939230993073737866144174644772507687707803800689579254831323355551725231146925924052973789782339594210554730091822874932954627607008988576858284350543422840095894952931539423167564356146298221835696916022036624962685918130461400624552356944291143582799341268908763345283608171551416610933958870425587751149968048918204678371994460665436700969258250872704708651440663776454192674649792201553746820978579935050750761475767633471774514217746653720769319308659855082300065201392759471357557031589043818594788638419838259112156964490321944935041476791677830240035965726311603835438933503020860971067895071069313759543838125625803146574506567417303967228186708901526549655499602821357081786168859486981825706254896629770326504958793803802264795896332977632680502792002221338468386436989481114947211672770694822684409030021088441365976500532234603161961285903988197276868251678064156650768661351331184216762576063538057038908607968123495891148941711309470487480299072767607997300699019104068891435543204687118743645451110855869594231010187272864057335843011166059638098804008921057718906707162800879727041458867447638533263201811983555064868391688189291007015443465869168934277578289412242297619715591644247517449566579033756808451147698142845426154033753264136360266358846967289883745156778731518940178428765740669988167763923397518445058880385546451699731062252672782633076887952850496407887027200530899106866975267485751844824833398806940394816226203269498607203683181741287681636773008219948769993612708568496010351786486593582929153684248159682818945327916794250991780557597135795988805049821652691273270162623148723480600658918801273004969229929376377317067823820597371498367951905990229795202844013537677046235876887534580031454195239180844846419201617463394718351857137607952390078014863007713562739202701862034199218772533511138944001704127227804896581110841334185637210104344673300282899937392507539296998739947300411976626252518130940513674320982906397919513375366174030400750953003703289605797286085482142346751210213161960090290698828638535512195082748871537599357121000999677890366272936066570826540846261465698584794578118706668591435970474371607089151506232026271210609549335010968206186363653050905399496160201838407972577662098800377226636529528745172744803309961416923154190537670963556455687156415714341694453514987629685911706454081850853292208306161210578992132929392930489598421654662800046900131255211360822030553315351863340905074642860620518952933785607998565025557435742121328599518613490139248869182066248762404509989494098458392780446335140236059583034919390586156068775123487148777612219219153061975354926238935780079904783313913100883406227424789004693409673704464289993157463298177700413839700354329590923259481562781887116132969882473491281481314816122724666414464516700484181427997057414445015954253012288881156853612528295072188145650147749043908727875622337574150262914391737041847794231196273042080757517047276074273273172312814505852175740490482022265407819259069140159119269032957874307238149278383202909996776112407156815528544268479336026189643700339689115438613883672288184863955445214205338963267982766704714178501750267670013754588925702730242673875448584524076512462441810294848143787242689167152511294113945671518973776720012908160007508306290185488447143638119146691301654581651748794714279900262042566837838196102754863931683268671873998134182527702276532004239617378156582058377259633453420778619736932680601127542588083424898743054053278070116149622646410837677583476144907553289736574205365500753760475803718793180716388578037036075313545073744973808223411725226435899414738796602902473941881375514763543570775201554660606131474555421987515476739438282747566105220071376059514452167165541023346769889794742210460695026457505304718204425292256847393459251400729154596175178090732222941678424361141478942108428940324860549724017975238769979769072383757734422919119136625004078775785477447261901571791373742237214747692415983496982167265370403475673595448953285137489558486183418860170696734232142476858481805458686289080567916657331406622419676357923489111076978293770677379651321820502120445380600370029303855767333726109712191828982917592136795070268800072963499783765294168774655421947279711800136485377237211784344613759295839194784098845520309916286150016430003832026398709879683836981851212665367100181680210715377127386526530399473959484977074192923543765818018490530839748501813945611610080550090424462772346793346170609876199796968033865234191516030057817844418634139163766821735019024555877161685134449057430397757555396791781791803300928573682677047520662311816385477211545184276492760794268290934096183532553674477397344024244393026074065852432946938474844120925398345722285712642077741512749858298862294112504451470696273152143683615275986233963463363193124995065586022954081986224018129193123556817318333300356002340970972617231478771000182540361677651621174291519993491348297063192318878852763438492979583402141756313049087256897032097889601927190463534821333232380333019029573317760334971622117083186396126057889593173110332607891646898871019564895193662948267271673504511583576462608949143567318577932753920405976126592256870202212517444802882857532592561981655306813755007596805287820216103803989860470159354475960065738171559344206614273801848109145704132635250663122697773615865282822467658435095305377416491084802187980057982360978995701657268153427547519377387284817753324599281871320193574497329782780040505210516603977173066812909099811803420407569367626713093372591382381985640059450093875618797456611138930620043637007697179733437562732421841676142519425147273328661851964030181802263474616935799536305420909135849277249689626883114992116819457760472572819356348721666116336229152870197103454187851828116912679644206289792429057805349909537270602235413729731689646728434878329891818358604655236367394877371240346430979347240184753522434177899598529618891810482786392078913698283429688081443683390472887850077379903935634587546702033283567485110491090878152227161891431721494540547621945316176401057240352997236807781516997105802957325081530485268855725359137082915700252654302494901433245993032541245256227551465624472552785460268680216429536296455440445091951235463315672553995274756108850840631218821574483562024503748776381551127068617191889125098926845796056326547441281018860422377886017912555964584827651502681256395264458688154928209562748544314863287248214832208657654449959230302241894481794428059604531317061315033150005119943633473819972128349451439967618093276120964378353167492253563190442643305194737174245633315212029791336465548206656799347383609617972818283040925791692411538759262888715280039899848595736144585018883720223794134344340025292979044596050479836974041164038384058108476282177668671621457451494480388735903052684794441430639944407608741853361191706798818289340587256368887885887555172980247963759752161069413286161073414311157910642047932019349271519869180749011057636822444553648218743786141660724431557996630409590723400918619863689369602906000434996424964351825854063493034364559980426236084558861349760027053782684727288206991175171299074114227370218720875227655180623386505632150810887185562585242273407647814581324620937242009171559145249598328385920044227224707722448307084803536314879062766759096314879361618674377052665235315837938794018788096254846302896356662601572068761467391739000015517123010664541295146722772372357432745241223205655083041983008254779648065450639754618771629824239032543673030085140050684289848682139870885786565135795240491766820702168179079276102083162670319932454877760499448531655355939032659109918324004489458198660347548655295771420290764469855397537408650204174764677926565083329736825853843469040956221643851126859564797825536107276936150225048941708962279788416495923418300083873262688377504481332517583099287187897150394250067067088584027824158833385524311063723543375423112548623193400648723376512848991085966829112835188500556297875693113230455991874921705321775020318901701561414948505016367306493695194493168541487318755465344870002252326248496159371228510185471796314328623924004851154451392635599367640097887311068572899591179865982837636638305693171322140832425172973664243073093186306165440687390478720821763099644748159616758693429663592124998398354881553628886291140942252323475418464482120119040108331083579045824872755149557007467406449626514006558348884090647177871434150425901631536054767654429475381491042697637465637037689976629115185611474803233896349614812042445240101263330136907624355578911682403063699991950219286530396473574374244279977739216964871691321244423592216407216870531358644730004409442113997170452549477239514070997554983614169555840833915415855781603513459165109326129775515034935951151462549651326300015374243991586793999248862471329523227558577412258725702652567786216333171520593326574201923786238403608054098510641564812355221708134726773199597418338523392690622954665544975224530039589072041137546301506289381897653426063439694379788069695051271291741200141141672350794773131917189219661393501176364222796136002778073036132107408214723721206716621543426270648701830990711343697749036175251566669158419211404898843419135443455858029604698639700883522379566435271267629651239032725554844599999809795821255487676790549006156954911586051729129120375446337814056538046769525628902624009266991074559252330246099451100468151429345931229412366224633169571861555663275386626036170515687880554648742280466433071995864995755651693035420120885066796511180725058396331868619058358787632336881684411744134282765374597212279657961257271433182637584986998795233921774013280415234481443906738004752556200662574962897345297948317171786704406452894629692559783749175965894069966734839878641393833390772765288134163156404701279651704919895440586249211120922917256355964001848673620552827128451788397609474345116667283423044122156097601060383591851208214541370411600479747021476042012140352957452316525350441713502654898522000752302049804753624199434802260653587078156844202438493576909175028763074577059914185922142928652202343924611387108579912792666075512453857977900150412222456937003032988339957139960486607687220813984875900681196395143687281258878451853555854068033099664805795344888087849874850467590175807673421715730633320428596029436264217397153769956856205901472038429850386292114507662509516189878811367365978200461273258419107153787582033816680346824350644826151745280206479618494470047587104378942610749562034384699336937588824519713920197983450869393051940773266069652471767573211216234245276645137048069347393072858603993134364828591439192803597156306967729108176238244086576040576326138153119588060494172576853529863546970055781800098231912494738117153360084084867564626790942619567991599596077427536582228758409243363132994760326626540287864686775643232747792005960954902914229566394352469604311765709830898258741597754222591021969149497112527371920817023164175712932187281990892514138746732982517774412989657675004314942702024533191962360734491160130820113813191817825298452043641322461353835119801615611064945940486628056070704442010224311010785821909104491335168764020217231733942776045900590289090677769573865560893760062752576710586811497817231355263126195631372411211972813034605921730399536232905328006503414449207257200799257157440066621767339531523008868823563360890735895267236460435505012899145899353185199251448765046335610704284817823254535809773468541013015141682781418202703788513187796518850002331477163528870950607177899300424452540010828767912328327790332212976335696610490153785698988996593465757301377850416425095990706496413698833920336670964470562144128566187386343885654463655727083099900420148553776618296771616236863803031352078978490384004351144073230165585651179627086972594595356936202812167518595549251675634606857234451100830728751363114924303951473296082139675485661037194065121016480222742336097690671265304846006639753699865431015056168373218868152357111201157910419477222926170173344646944724673721193045786625633718083800734555447305525211696336010574774955449742144636016248632290328887427337163353694773365988366585343745631608784078850491018365512420927509425666238775273761350328200421161646253523912708028783223005490676183016145576150947802015760965481609989526287983003376393997448752082981281513555554839221394560171594232188720467888960936562196590764884052486969725013765190668774413320719499671964026234022420460234517820433239540478839972217033655030769190098791628412170214203488769517711936402383772598240905269215181091354162177568033040106766939074451832186174238403338262896733382641660082368602288554581264313086461303209246267198867472321265344799735198892871188249446328335216858662278060848278814249968366884341157048257550491965388614541787288594585677886897618520337962479722645142851819238421229381855816582241200448412150487104903667044003310428599053721988214688907820226491843370858134955636806354511321815567147999957087370033256306281423432868403806657748502105401430190621859750933008855787158701269543567113865249880932802601677694368174091110445268573573312115971152241719677058064848809151732361693113736989647549585355021037221130464398803227387581534813958430483158417293401062270675090423614053722107496789909032710000820324942158133272372967272787490330754202166732982399353937936425248222983085130517516035115694422783539541893923795586926132686205203661687537706116497743834880338878122693527775810438124741276261161821394543255251682349330404678454558471193674395631430515810168955590484330965254738570809545079765501638554671201184957010891553696212152219471459410125963947233529672264574476943485706157739698235881894397754708278793247271640024438172243477219772229081549277701632099945467096632543632830421050712631788333637626841744969997425418323947815040363416695406308969148093190849426030795468554812521609899738965905865621651459735669334035297078681583926220109825194156877375392589436313432031208078551145292709997568266528113251200604428436021419343355502792682755185010464205689894305962598860583298807794163210375949337077680511418514583879985189885255143304286736329802095535477924471359508790766843178281291574752446612256747542371965051271343737550841149298426821794189773426994931356721360521065778444734748825489277852924290956496003878590159805095398537093619649129400160393500721743771109661169155257510313060310185173187077932383892535261263572586995520414101553269263228319935008260335794828391623776390036419618128538781038459042475662835886235591034577569643766093273133911390322750210013064411420430383259623276977639921839255295809102207938678459671472326023100746481946191059847748795010952703132348514597569598609839782767781298734814648839931311229556937656145225089784591592490733624673539708067006704633067294157100688035404879781451387643203621623886940603642209231101352185592972462650094916528081738571776667554322999151330764369963348513745881937891645283983739830066914417168341523417679285110040125080346488341920995946172547204279417055747490744225197146973943100762486831863590882358769221669071612146002620913767656656058958732931436060485364450846975382828976931032656845958820416621908859262142501335973794524946806342560048192210827576074067495817760494410825876827749188258186436331320361715570935368832769009780676824685987213276583341651391824317525351614687158939153773542524506827498870926729878988408026382913175145263850170636175324719240823165827738807292635041232079202742710933194179211923582097723474072869652538172088523441275079966568455915841181709674108988337754360206374921180720108488895811606201713440699326259341184224606545791329384235373939946401907399128978359186583671198091124403172794137669280936236778712320139543836600260229881450240703932545711283035958853581047535944152130347195512308141166463824907838560986787269674391159104788874164714596054591164311977268280792073143697263949744070323305070588608546294223829964063376583241961228430466030451359565368077361571103477478499579419925572067928684453777775412331958016125471872684231102638616723992020881937386428864997640785850603286801746449422668923721214099971194755132947968892140704276076817545010327723426096131381746421000382044478066647550965943244503146101751088556649535192699642089638914335702690446146627212694308599534972461588332991460864096006763084905877126969989476880984073250147202541284266018232319171783962710341437723407560847249332597041604518494703397735656959275666334775960199249428901481002048682957219382241244291187275902284869071736399524634124860628877226071929665422278927895937964142994185400426957162052807858307887745868817722574659180479138165432499832454283647039756149513124418120789760837532443202133998569754050165374388313006734651390026252100784286093460659936942803507985298081447746713495758841775098796680056907729637298626118213337949230989115210839608547577304009870203509847691266741014217590478546817194709554099816658868427945936018887879970867383239963415275703163582877465220446776269220155830930657568831037634750984084034899137645289957756432720215645998880564071674008275932809554390288468431524119013755500806950441256155192306130970580234217397637912283627922924632263964815934183579116599069682397981722904538728056816071739161906614568077237751604373077706381373419920391177014248595598762263786546754240332360446440198478295196515189666612626794539864255404705443384186243855698017435683649714154593514151362570110234464367797263320724158961651873856213200476382098265429007078800200758600303425896612526743724842182592051920463068655264705171929566601230845595101240733440261133796995870473534095160535018982339718377966679853578986200360627237178495717029763082687640427529218773982081778016924903103568738322610406718722523932375365326889751130863603819105190269206896884896067587426281664460029988110645835206438867339024796886122938608156353942919802038816759625505625477574343233411945856998033898367737268937975922531196198775793124302816549330431749367899282235942101482883014395651084333584281108468601928114651282554562120100413029226096260004672750476907684771953354958620217565282968031751676737754226097086892326381573623624085285733956495174806505740667801928425024880355935574997348503197935626830188870766272992666651363682123848778896219499518812119139453072652001953213386102224668500380691202802254648701065083299175421816646483429602622203075481826362116404551795164528340458498553095400353602773950374771470733852835968643112138131786247225621063243733327972577048022662956100254920680523867838066704858980313060963416706385558349953955358555206134550239805403943793768382137578266214037614355472823915743032697813468136069667297697003477711936925777004189034499642473443190612232450536069240477638082962675821871499327985317535666731640703420209426794322008526891604501419658972288968454012132033645474250264304858177980073178074492644396556215949400538763701683103421190285329258994715902889808224483402059163981781788448504566993619869054514150424519503600851244526630203523734621149570120634390483076986794684775923964268539512189900087836944999572465134847171687600403604276220016484689225668811360123260637489525931149012158876313433365337384323698856336303076245783031652552992614862207141999161708004227645377136728872688525077369324098070320484948344910287187176874438475614858871536075536502043588783665259422131051767795503567829332121333106521390727122538758946897293243045260225619144892890874857484060144885075167741786460353185892672365739395744480386137113210417407385221218498665354397098106515575095124074602100014624147042572359758766058728993767957675117339088141425264915598226902425947952140530822473352885655584072557296263100016600405827730736863193855243734722543063084743703502436369690897968466511109209325046885025921882746954297710876711846139974116154238984635419510464063152302276832367973111237438441789145343621393773134894506571190044148784960144805616183737909747624341088815825345476961215518487258902761724250599160969911156798214755240302010847575203960952665982617372399573152624050291405220990753101930772338300858465499584614561231300704043050998585656963625307244066275764765010516855603137733477978891135435124327644774487992026452022239903523273944829830383674732127584474156107333562387065906799782991303776213596181308939444507745548076807155355300992145531662101826558641716842467200960573906938900261432228026347174074631519297762523078996939928237810505023647379493379884779196217063921733675283832163979199513781352749999759495518244273416341723586598531879297433939353233281610774425433082398607744390244686738494339478307851273255362615510607130758721051942874403717031370056870595762201703873958131493259335085182401264032870057452212801917415327483774134624987643900001537280793799670978267813079062524032558548381834930158076441033129800683501689665504492714256571398266687447410910178543650423013276483046733938831185248288692379803246772249143049493149626392781732662898587222333010396854092223911770023835102661754029638650527549015544562940633188699223481153148115307015739841082171145976109130972426459441896396402669066858956553372965206986103902368489217720628650874489353801321775219426548658766426216145839719623107559188920829310175272648750256482115319376513883074836260585932340586690759788146432351074412307149624813282089606274179369571877837376988227865869859690864630287145375215232036879399417047879214880470971699805464776126745424278041506726367527389518434588223327179545956150662054141579510879722300537783870544382061622139851087978121969448432758323916132434773718507609306480163612238868727697544490194085260230098570800224587809269194983804764506188727686744475915830230215340874159370084760263443681641209126953804450706185385933963246026821065309395762750919004145652318371169441040809049207614467367712868807034055260370179577738762992574884622914375474638895906182837737784396567890961457690771029888743921832208202968116999424237695841231134954222126252311325623052286078278104009861928525737388743019705238037093885230432350969867892646401287202635069053110464814598732136278661405730325751318566158434453730229160193950656974035016648990387165587207312314309860325459995970810191034608872876240647648812491723691054495134022464992743545993973169614801042908924581150267702586995693986813701740066005773293686637288893672482954379106726573090727925654278302334383627177564612307509019179926484131643418350837828865916027886236250948849053022829777241438811836428050246620543969884622835343013787415225624406374561953792869702700851530170388493717127084253694478775909969801750357884719710820053892048868895993344751454423811524317583811735982859465582300307562216750797381102619098695533741426778133592599907177289094328419152286633154406063915956323049654424373552440789729817214731735054343795881639196316622159919716350852774376182154941312872003915936885065962287732905139000862559298877070721144506399465645550041847337785759807703808136443275386719911394001283624668932928576075765026946223451116548431580424157272102037899591966188077205512216848536316708444356656639214178237901388509113927930815032492096444710344276670112265714758981934546048658806425175543924169451727437827161484926438927698417188245276782084415608191059956634688589341102323333450227376003595173726013350422182133287167539684517232254367032591813065125439194461032712206818784475399291024141317902617877138256837848016878000118116282160735182942368941797057876525599066973093556810738343324128175760138005115598169278495176121867640764431964211986923466086320253951238701989067207174461865337944626810721651531850967283246372964690472606840194756331336442746801334496033740379248033141167780644376883405799751160632851761900148546981294222617522048216935370539529828850605283398162390285297920417607526650321414270409657541631720682152387806851440687607421904393975150562939845974103361505226664646656416780887799754195750004882475405818863110716257807534049925109835274657174881272208720699786660652612909162621691901298363787957004286322046129829183945999692979942207475652341234255207022909952005015992060860038716461818975267679805793074798353018817621508206787301624047378724451612419903071318380614833031087066772516260201983836444844665312839660363276753348979283525279244439719611219704821621679119010074006216338334662689610894473056990777324484734896789987953795878989079592892345935447876628327187531806994134466858493171048003030797246507768493896904730478979935139843645272571669076570397989744812244420352130585745753231693785861631491471553593889414289441086350700881783703185005811846646265112721962328189925061046249088478296498915034963798243311780891806209024628806642920148015645427855466403112265486655584343499502816439128524613987838771834863410085206933162352670229767566695376225855181526552377133227443019997524229899636000183454197833166108527792046566022671679677629231172540354450995632708111469148626968340053664725338471871386531292897805477667078807480460258047937711326745858782553625846121068611536620085886878108646112801527199812461461181083277608434035005545028923396115774782677309846439200478908811404941076433313616800868340213220786626525070963311937215247741440170673532675079597922402899890198632667725137805060621780144445359582487468349816752005866521577316385162386838346286873787132677415300174884696113137891033506851483870232197883155960470845573872157975280482527275445045683479239512049085550601221062289636212996132971658637610357176088357661803977583234321095637967081170873392146722299876361516977629772201035291201198926420910907117747514676132450036449058103968863371835117566413091918814430681220054369710637457148808528696325918435248970647302370708978591896409471945508410453012667234552586812430774568219888161336325596403882433496987587287713018078731515016583354166276221780964565179676802416972833347788163207194580023486475299094809213141459080678528170785404778854620150517170030764958793174249357647476436406868004139506124093328257716710726317343357880028328858044752475992904853523224364955716868004824535660906327718874250227842238273473976202890373725458262453192818308915642131649939948762198556871238071596167804456054659620320182555933140461152516196127182701615990070779321084733772422472759080371780824833739936824882601744874728200354347814904664391030565504682135234353804519610490483285626074889131753479102817404728054712445362958780959402722770988117870043460537489305374420373283413679790201587780148708980492123756585135785919635669799233171975757608006720866190900097945161117364389038842689740035024226688906661265578071654291378816742056937256994328507061765082309432305578213711733997857303318624163624048279207768477886733001829135316749362160272857654268845456060479011757905276414779665352408259393335936302895789104037371049046440370755122216777213581479835247660250539360625441041440004662302903616686531523618615980217317501627179451470125565286719943645738774955012320445476123763290665331689894747764572512780010104283337379410258640484580711566821772705117091011442380343507274274938982763565064864349309627922338242912874194036153055578707352847143767515562087634886437103531709526509263817312094467548001986503468111445527049274110151594243260529268170442687854129466760862959148812230320177303887537948626680812948414402945839559631497733982759173595966786955706347973774495107209599309194906394079137882030293781297477338327166409475032479869575046675101080998849905382610243960737593022935297011563481436986169606357622109695083630807184438826495269596821433314108112734820823911191531457979016594063064036597357145948857171096024249826541057117385536157989549805733346941958318771277536463083419825135362955757368119294545177795226577612070036043324383555430761253859295683925989157008390716122695836601412122003875712566450590585295335372373258865963190717763118927048939988101384050051246812045739918522626214819721494545664702764633415779207225844005747290253488826315842981607962057305808696499212784680493377901552447457864459661633326972809404646618738405222270396528819274609184240656856163753575627599337142269860759144673774998422305948782884255151926841358497978041529052302701205313113898148397214014788824365928835118787204650879613544954738767476037633023844400464379483255887371288519441349964493360849638606802332070331313489253010425803236343372297142854006440451931653207817340636371737184748641513048704288980033579320122531801123854232763155154642395196943936899685291022901559759188245300889200047663810442971832947526903768812612476889051304410874124121654797064350512187072850475312090055455190113389534651152660503963347940161080604840500258722553308903402421826392084369760383366511775698986922101556136967384158060711009586835809868258821548898250473136289749239639743422106955801162408476107350156293476480550972821894301026058834916570380922010277987315220365496007434876965897034789348363095999762135427341950676569941933757124568868592373429376548108699517212358652981666934094163452153193611572646369559559771151289902419477852895166568546546876126771538853523462411157397050146326415903505760943486855375439404584175666666955457046919544521663954985169481429324404357436052362583968988115368543024394380643094642994706804890752663344608187705445783473383260499738274182938695395150719612748793196824291231282886201706847266935046227173994215753056932618843984982769532676289405698005964792071091155384002554893943827944677922731140479031991394226621196799995647520920890314690402228048511186005914270568110763372849056569313174403481447500251096979365276559608595818050512036621829550817245555298595025137210191424501052225993047593486176975048115600408173491005760019757314876893036183444092023023521529209792929940878385992620217329963390485746230770324645203730622604862645487493548393511961552690997289510948534207578465416626968372849063853759327182215804450827208579801200248959142649888084203005790339031677744650599527171939183999743214070302519637111874352103650474841180111436794935082519170042775173488968686782183281300548942256379058643371296902670798725358609489633750486697285221656033931226812844388264039288386786962131941838689275956513130672752820641651602678605508991373188738390159134279211980579671622158355973837852447083183785452915540839452098482387063050395831127170754559929992173520686592784514802971502123881226656099893723448288308834800753765921617616189826581698857179365488839875508759066507531775132966950691349774358088566317010129342202447545064861903744321222717473873857387185153044481052943337325467289836713648060928147578600702541456516364949761456440959422059850193916708017260509602145462674324062251077864545232529036899904999966401699718783898966591238238753253958732610241068091372449744500057415370682347199443365821044606371550048224931234314575165181062677895634049547925655460273234488635049259379466571361516096972876581296507998880743313978492622977232648296218848710130125279049456765437325502940720362763855605458835583444951387745484625977816821036075294286486599399235444090340755101602824432130644766871300764490109060155452597624224311845965213741713876672961036973021541022870191366804411632755486747003283006341828364978673798655301038292267997939211090937166291854500455697871415927577898447577406506391845541045797110533492671349089533971508633701195569921485862645800057221354788544171333696652640685807809725037634424528194521570486062299282194330126010401954466568575796083882864001495944380560917474216519715057748606433549523320606254623342450531351310268638516350356293474777903241999895592274492686193269299839186122610888102502470023777148904019192245776272931998909022941181654975382604325528808018216536389817654064683924487444786390023558359012379986633649651425352674699666018147753168926025164661999895457326666358113415493437420738611718066126809321742128010664323242867272489564678948466472179881970582943217702085636190794197502158625718966239359669068691331621228212554396009073971813345625070318826192281034080311784321892238350880196388184714892640527137855460040067482973564637566962071622710664196576513945139500358180528844474416162711905750544949216705022031952819238520573443318582469027320209683381691768730192723978081110296329647371806366789200235553482350346969396320185714207888849187227086061216626891985108207631821621436262902132670962264888526982793314898259690606540545443573504758264443952012076262025005559562494892248869533333724851764320735655850595102115539685449914772280067922128330259141035856656667816060484859066216858262904782832015377586020581317580830137665236211232726273698294558449236974433548276418749751023711721391291130679482095030608857581110995118925087909130492455104656814481637406283384912239685327701194768082134120929253074228410409050810066287338275196763044525142148526777593980156175636593176759223550229653173882987414779270516565474200737056093555009511112135444884562106135645767433105595261341451250416489770160941349951316193315348614727878769267619033531217444096936329165089660316357307784792332221506542331516654046730857947022901124023637753134365898608133755018858269919964613907823100974514134158960205337435664299287442499296807525563595562211656470727072924940950317943107431722054947357555085375441544288672749752030059172619646553976569098053108086091027931503455946804048756790995624289140378171282759775856937284419021362063328891434229710390399617536945793098436586514059829909017817085499557648047290910428853496173258985087770356126537748234001067521680976383952841292976858057909741055599084793662873066409719392926613335464446509663070694732509486819033318699683363348250345647562043485786327207554980588890855057619145230041809078285902255269573014240191960639581357325483312385903806581748423844652980220220887078799098814309487675569422910486885144491349756863631512734591705149699015504212635481879608155323790210810229208754967111195402209315609583435560510662572164111749029418973103373491152184051107194091292876413550480315671258137877494714374630496336570206273088677006174931058921303903465006493905044268192399221634381545693729789574346962666106296643124254921241917508036023695844507247267291925511322865495795509526281208979851839834062479380842963570065031035862713496737756690293853343635337480127223688251778455941942270581395784136826772634755383661750112581260180689975697439286575821296988658207811129331667095068056632025303541351703999677442440408473541280825015518551419089639962045138492703380581302237145414462866666444668498937179664198564464896500931226904637749935738725637074494051336904195883880169249349184699028042054577898066523645845294039138470860034814173161288099077926954457378045218264438605148116637969809979881598230641199657995757891084136306393292645188687168433974046386217050650756550402657694800118595279104056246322321519394521838710986407018281186777235451537508864423862895761822462687062537022755671104427320493135203243505290620148635975374191670756134179438550806626749157639601043506938678259971352524794809161741865712567291239278598298341099706329292267897110120112759114861460101018708485023377080327582552656336604973574118740169081746823030045064743348170874895406927242092284674325104122036959299894234409110313823723241559667692990495149518216312996688251864600453313126348703998731592736243313984040005710385620353094475840396660687171871899555779099865196389718208602562533895452984495386638165996716986670695626528802004295994884044634658966426600889553671287776925281650566888215715634136145066675087348862828920946675746983087127161425880359391559031373096933504827072390992878988141659698649707095435779543895136548259134847632975347113482774217644822895193566594944074590196838785386352223576767809634691893025905672517645694101035503516784724857070003888000250472388778557849394450221583892390503266020486842763956268451203078798613847267255906608984733396831364891808552085576573901318156072235562656278614024264042104347516302518300083367373445396776084122370668649658122807184410918442343120306544946588929136961500959468199116573956839511048064324292499749652703906196208167531636050717085098722002250953910340082494942661446849404873392991174549153702997902591740475550032018916738986774293669203861121944992779420227630174040469920645744923901452729559582838022530834801240764971163917430031329717882107357258411593661088164308126075383132516914004775020184008966672677747208969711878370052743873982668694155212760480159711587896927537515790624018468990833853744757537193658926907825005166540017041051533294715293308232445516621536204374456254562782744615713464303018368729735519722203089301410298561693203710344711913857716570673566362921001854406283566445462819395723627279073966493966221432688705128728879227777763909947664664039526657214135793859784060839114182404651231189010610683979414043813293448800685463410368506447850914194246210205790853752902888731255558817534365914590022620012385944177608374120063534433704155781967488004481018608742488600224669085551255005127248776101570046899651281972773810166678310834441571680813151449548690653923663990766501170618888687435077184882749162367120575932050917212581338424373305848482586967591219708843063055190665640610198619139736526156284588260982418787915497743281128359175980862870687163601429400099539956382541437401563387519499609262764527368587001899989261060020519801315181015041491274339175895815884796963467178107890527642322340610517550698052967000079624760039858617502311163288974264546209828386437318205163288954434467120887906242888121590144375854156240701641883219059789195163366164626020610841325349645994407404952645309646496038628733488091924866728287020139563256726400995951736649348445356318579347456872780265272619574906975272330393769805947034251539214638487929009703413077859912179407717093200954127961900960363348039061732230964418727573333224126949004857446797980783395748205172787056888005962963364523124969969987092482267713447087632597645142765978520878773508528555429163727502004843089214145497544041758647918679774848776521273610949262209500537689846205477012280815342896851917824338535381892650544703629288582603551112559684942306157955673534596074569637766060173446137963831181236091692770045810200088734437550677036573905971356567165001263732079701637276255849598646063415586060712712313756252985691331061402604285433784719036117531349605487001254768012904027914339079321810146711502834497571256787304659426407690000535624771359586290324913284248847533486799857472647421021600005684287345029460045277206412833884413626722947418624594098361690703174745175018446178249723983605391504660696534610199302522417953958563851325341025199877526490531881974287337339376394709971680691065031429636407128778277869430927968663430211786822742972315064451701112372201014205340786864256893706905305821960204673648715980322407827443027740464462305179009133241682415983580579912482647196189524359425180494089192672664876508814421900311847048633391226383401893689677593979809613056397999017409204584842635480184877882879686315699607829447084965229568838870014926344407460872766628440963310385451457051008598245440353683014308826288331136809691626291251514794319342708951135128971312926348401843764240098268814655825184083571606141300333483259608560592022086543250930052835226805077239556564545027558007471585203417674535113394595611411994512820082127149132059689926843834182886051357128526715130871449343258975421225584050135908941436608448215880692992500748259459215746796034429566424279860912344060030959758858307176775578684891911679738838191257679324013412731200286665814008117413007673072050090617337201921935714440297754534701116959087759762934039044456222304403171111599681214419699664636352651347907319733536437009968136112584978985276496393004367334064992131675396261959906423780626966731242526382054134840889345564554224675021904005636211445534631759850529164760689854382590294805869000244588184821097552794145297212745747183554147095585476100829398533133663471247889788169591679705656257743472206386258208356935942332823794692962199848444042120562554643745188988086431776007680651346553146787321357648920100791617544263748655608409639315221418466872562199311204217671746291268340813372320430932339874972902881968799436136988895640769174986687795538779154774173406859460452885101961944195342970072387040457709083242102289645610164481079917131525164695226432233073518434222652632830126227446898521675510195265945445545906188604905945967059361586150145737670140407596100733550456263630038812858523494499438605515080145621573957948651732340743998203570154228553784067207092313230592736143828387443092953235122832774459332653775357743778866338510409600434791420058613225565208062046651480276099729803121096026567476953299182615578921440863554378317615808224310694936451306954762811625033063652976605792481102944351158812757162236726095138539750060011656580961042367845394752119848656298321341055166466562561171330151220755674255467636940571605351059635176271048040590696409457469416039505150692400145658014819924359739440071552772021717861405986053313816719015780974763525261055734319998020151074495378389277715811548643346130472027652697626949545245323103249156648565608172644654796926085466055730198290169306694172405288279829650212559498620651199018745600782176860165981222668801266923340693142922889212531190395547785481582205346621334532479297700036381000803283489475413323837802823164158547945468000322262963128040845577373541730566472993922455039402072544754922296002575441532885381827601608539336081169543288674724242565816515573636371484126864055495861260272189300280582708946051096588074416473667268169198368492784899744548943447481187988909306617369275605338622068897788829239719272275243047820812752484817124063513512682485381064937179009781618724908598610416220740929706393671342448170141384885399363010519750585411797028457272768032249318873287043063818947734909547456096970011374429650790684854957453094991034416935251996946071473482061153704010558448158923273037289040504148413486789441160286816202527645726925970969809223124844894558170512095858737527649932867303713652346298518872088583524893164165491268562751012376248179457905793029849451861633966243612387472045650771170527643877799685353134510817563343965521702982560645640140741716359428959393518707321018550086852148409968188509718412501124353547554969079968999495235120534444557387308751633967537347231810791813327967464691663997756451175220538938061380368591975278430553264110491961834283048050634198639331128968409563897303261124734590120313689046189013381246822752606456445570597482349980902350009978262110650096868441811046827240190032933287615981250016780679055275496746218320930277653827282025180343911669431245313212918403739684169506893992332234941669262703617775957451108113668337610587947817696973149818178719886417249208200902401260304372840621577602276523362339931380939197044312637534877037224082898883126126768006380436785892136190031934093466324478433271041248880644232164395312484930987924123776059463842897018556719206442926278234597915022205144117822519973021633304566303874356434701974030563605562010350203266502508340330040573135470596798535799940045163878776328783452435759963350418412404327842529514788021343244636318104233959970648038815616161892975465600377337754867696399776159472023449251608593001453495485556605751155892564509224606249879797570569472399671813208419338508203626932866625683337552265819171604097322222058089104301283108824550606491491514960021720068193607103047914571208968154983272415495879731255557314776347523863248076154441606773954925491743886668040687337183509614129162685532822122289516575452162001104300501055922422896342700548377981545845517363565842082790434196323435348125562924759901506339728100450128427164814447257942173483695989194552629419086488838093658510466099396543862171884851531852949831907931642389807700646506775602541315481198932848085861623965264778171869353056209297797476636303418242441286269824037743579728296708943107262721947642810780936304785841254084904315054153672778751393372251403407697795590796591796403375133210435170782439695386081771817953796923300996742798652366808639402768769803991245012485490667397719806893381838447522354617205885146442891677146841389448461459121652068507936947537239836442174702300798686641933400156888418724495033454558438319038884520255587431482586780335088686732400168250206549851426020127271276134552473362686793718380609885619777829524766828767786780350499264604076770405302966354297193876708779935969194879565870151527013869512094902966986416347835627365260668652051155279842015191291930852208473992100685398453620298035831212575411485615666837126817380587133004538705556184642619313934064978314407390627070178094004701250208987278333861124716551984460678537028473278496422470672919459525722093949080676893341847362136952613937545100223683543951382176751676234896676239335337487287163239840995233681763080755909405406438715847695348633141340607753242744367423307747491815969747312457776150010092035198070964728783863455871072066698012334394211266509583784206526504438469730026483297919096659695758122069108152950328008808949947110617319126931158654048249208181982807581796081759009226440604417729783184092148539086898863724185814123119146781656856304272053889919668112066169527362242776525014980302789869210239315170241360138571723961321801573407750272310911101458624489736125883876321822930615913856854571824509865923733191253632700187594766288774487910979548874191322166373062512309669968841001541605121631341804375450458090317631445368915496522569953589125677941172448763904239291778352029394153758405018193313707363858315124369364295737192798526473344068227313056580814538239962607762077090314292150155087511294687451652781930950208742689252601870618557686058142099302503516969421921927924665113052387273729763004624317916369988568926373799361327662937188533000062095894982338685623930232281346017454388525875301450265086982602254270275090508281314771799220075679318668309123279752627857922813330963112706936477429941040004494272842913660596159585766136249337653166840853505603715961223198208665438571662695532843109911435138944431866884876497047477718287201615362408436837238713287539379668129449918143820671335805221189413948653418050453617887449017332738078576461399017234090262841552075908851636755355426969390355670408937369494737202711875042999926855139621483799128560824328512465601846828644841035895319781170575775163833872919077352561846323429187238515056533671849002455823438487339611100585468538965806007986533279884943046437869643143001514128430828861083974521704766637187172873160795508990354128584173912547040555947797105020274799479678076869699518649759009736878431025486018484934289676597948065103215484101506031003417655194942495835749349983136278359866933475407136010974774523968543508028068113552955174472187797894065793563480266614400493564794147407721350002502593477611986051467015000093058092101262857170746555577780071067074628369386596500799107786454045327017621492226175204382963322360530190049350190355860743898137138021199658947346544103551116936533541238136282756374829130839627296739841528187610922648146398925568211499042292877229220551477492985341331221698743952080196281587832224964832219093470013593669307997423796781523836132104178686264416737649164310196913317422414967549799745715535950078987897446812323152076852104055896343922198903519016548597601583232127910288572434493184380170039003857108230034538712879318834041294239014065141721438504734581363517168894614636491425708025264438116952670202486156607707709479372466054136432096460134766181260250745464174113049278237582262438387010543792221888462270810913442596660887698491077899163717839996936075638024937726602027555320872200965865445338744741757089201783507124589322241297200917278965937607508781016068092507835561399091042119994997443607157370225044184709228132778821084130344313948289414078717755624298281539541190234006455986019075003646568348091422228009183898168428748342278265857722304451337947467238564789612914239620131588961576130938327946063570135280817944730399835603455269508275399402379700671337260061617262544851114731518483924542683047052281956407407244169173786117057034646877774774004023023847758674221390476520023835355439947454268695423920719556607768314607128236201504072389589486522238708820312768253240985841252829437126800297584627170515141742590343984696265002918702589348386729236286056873999207049828313733689693409162833109867331495498801847356890528374771573045480113503740040694667114995858855474986014885198351897657938657831451873430295931090038027511576123576173693249798249802264390682043375273985235813621819068945783985792930030672182321894781365155670529650165219880591196367180635531058603957931499238914538882860102314829808039817999403684113632140279677304330434636234214063977296713123587828665312548197337317779729467231601985913930924006583121238092634099185370477940126939532218112785195496159278031837560754890729302583258875290915149654297936646034651742682164843425079791088902271226297927653244527672524770052456951431821056928209198312199678551538526398918023225249468001600898343994803751251967346591356416178963753244638114611930436559965839927455360929337996832091711020965686583153212588035563189337712578269544153317209090904291537274036077049031121570394388843184190711012560170463803420265450051855635604095422949035992866460375124381437659176272822974578018015584174968963955269475165076979686955208044837429464919746525863329802398028814662332908079046473895674432948367016293633137647232222336946811161940863601746122554092534725591326746857695033710355259680965747467984612117171239211087526078384082646223557750755959950542032428033299255004990895939954127984695740886281209987114906486693095512413013482161418416723984798250366773535647095430763612941399236158178403898960910918724452121374623025552166380911356488293962999956188329980818653890154095277459324437066285231725672945777701292118777653559635576271467162438269310571407476807247390999611522788916001927688527467452417303472498484412304548773928871902584078273746730014048975081015489817682822503388839494999402662361347715818038245742174788919543474775212057427320011245831105323436536933132429947918866233399124505569770595238936704495070431424799710916052697645037773904400316331446969947689048977035486222559147297344227880340583895049278893039656292081587024032084778313647621153960464559628704487483105561055177447708001507387875187122291836887872975365683518970494448866357935024288076092956508674682980904445650714634137742434962036303898693574031439377232225766528855653451903026947429406680041392235607779122398756431966729785879122451795773130149058624469567562132760456325782891425543068747140069640684779814668681982590696743329851206334663802111204327356059372837768706141960909117455637036121449334197635915692200702740414692943442281954404822013061070011801778828608237591993364185291871486491831467940368492254479089213849582573317167167222843368384996489144973380960327784813786504587011697958734865851674246815255186094577118155406113035844105536734939751821319261783779408870496787565845323358862184307175713164627730806060935479094270342153816069541158410600362735789096373612037941975170540998561247432691077642875675265495127660068932136780751528998322897268545322583120948705205674238000479556978313738420136731282160837127408665635918167508816345524359867736743466747434711294367530331319630393254953848710643020833799273123641673799250298696035715487095721495194361783431502272858640476206212460894948020737860352131741595919629107093015370837170466232849947101164503521635591274876332056984314175552745490488178016733198376791571421500765313069515741630592168890703099584466412835147542470446538769945979555026531883168131504584679086167365713842898170799569175891929783999327094397269199807776689201285365471727050522545253844452746940014519669125531170457043452946636985212459474194025256157848846660695353051671019337852203372371228090352387678729047943422250270309885121581549175523779053974851402243798616163316342792914374756624488905139751387522436163052879827824924674156819823183726691164610211314353733022027872351393530219789740780849380978192754840698989690920407571686148965687415109939991950507510191458269300046439087103370243358201318731464087087860969531003755720641744141047653727309890565343517133760430968400644462998315338261073352197151645014569448957623602278252182714659604548024933175445151499911369818333212514432747257261522361575959218852294547906800547835848437724529008883596289068917960057121513525155700643830220410433853698595192906967756311833116418635847635380467934956175130752170347922273008334280603754461557097534148360770101477703309486793825865040014606361176379856403688030592126894720978726204552460086059284087193463987647365301526531568427508659925911313253590668568362261060030507645731328161835390449885785885493177338980134049644984079643728169571896422212740958039425812747728238354090032140325819958265868717136186540141450693365318972562972008190823276327585956640228658764774531831252234666025797001910102720471909113502999428463352935455159777464461963072089765499260803703717703528984002905214451908850433015935163016937479761239082164165646721912028148149926200148269744678305308459174755011787818006869542925408911614175606202864185347588010687218742241080846332032429736254180277641703368918407914672215882193958617567084013809846145305764131076804465724881105073528095046416350305063926734319164659382938705985073984115875478140074538933762134923884552353060157991938109732420108298999443265825764580309588893894270885386814157705457048121489904367887101505401337326579323238362186881165586444663216302678057260951294812688393016512827499207509381085761878075154743108280500455341411632660328163926047327751790782605849140470660855698578248684493207715202803430405423842068783432105194670314408780540559084344235753593605838850632734098272423366375700996393839932564236357342343861064772316237645493739248005038845019912725658294109968137777615300763115540277615141641231776676360102972200318597301281107449849913928371494193327838885665469056374945286382658035464531416592860785581833177069511976214293563512501407370429097170116408237577299795217023906774532623646348969215773724409612873586580018110092356818191264231272697366041846423785584194745400638086167544373670864510108821995186424588633194372871834357380188969846970096647589022510732307495900753205513601722779268828268075967733415564387957278460660635031035631940732152498142464700085824297845693232707556647601102680399079428891457581060094153245330083484459031205199535690975548149306539128694782677984704763087961214018155644928766390299584427504601599505809911943862672425505478095226515765907030957735260088248014425468995123317903166035245241690125913612306740958043736711367249594275150625558921149518308334070693502717419633788632447410615568848299624107883965116141920223465963635080168836684820964876311559319049706860908329189101361049807897726873635273613584095608964472885334600593098872359464364978631625781052158984005770113866457632451713489382885688243423306585947964113407646777910796297298802283486498744801196265326258134716543382857796562374818243700314204340823485784543968965738276559506031143748867654721448887106113289621724985271979786832057141831492918290249706647396475961649060375303520247184480304530239012122058076448913947620649150637206638733775076193707014382671621563988073775979022066673386157275052887297209345325444802159090288929533307258847090783290310072220886337251501764982915477979946122476088575305902532022478579732596361649832566183876221280369813483187572912197604430979649351526427316104655073781158855970345095448574788310347606616546951553074473870888275422601398444762206977403941476182301224910501270679627440166287032847664459235199123973936635210860368386677713937782777463242251205644790610421495357368388967312003189995902985258705114050748424964007007746924757759980715610801829432792530476939540269780188631248441014987528132941292326492548971514501757033981544128176071214367251579160592040634375820801760620704191735227169423952699999856670757086595052326743701767986468767888958238031890174847394956380784636838293779851233530018384054632679958615964760162888364559308143998972442392274606653542465936379076523614966881303687877501734003465918065800619004685806622025919417254258423594920858481983509547484707862223096115864305064366745568992403908237852821528951738449374297654273791734994497564083960663680225682215567129009638300362441085760867581203132020963830616098504109801089690101959085506123761182330946785959523042063222605969286549654908433491652682882559816269910159135619453240178180249994417844997839775315274700015953301132708668060972048277333937910962404206203267368637689625250436343508215694570597201639111646858371276991963935521912337965118968381862090251818899443723965252843055659334610069435819774606558821178814462172294021148429532698628911356065230416837884725564922336687736093121364418020402183424487073746622004892551587439027219697556944223258814216880387102554061383652387680991515573383840440939771127214974174654904986035861219359968701061057027201134781790466049809003766306134182418574671099306858377654020065553095566054310778280048680841547207205160406111961681783921651510417279563210008706340084754396301031055263576075580791781279363747349491615669396557902733156412844237836748571946088457737151782206964720875993060861934415548581112978229291464168340943613192799227083898749623138545691365355291341673961450678907682319934470926821766709674758027962821959722124929115312377564124747756611016271927677849687053852314905300816271390208171452956649982426988367750286720481051337522420103574424440254455107387919839245704486190780827874390454196819784626861452816672896999625431504686978671071081262041087932992668785131565476888203558375501708842700893720672354095224423484807385007829496274794761123689023032339102304913758046511436996842118669182420503266454768945352135465652246458522713484010245101824963088007364208257167452600918126997150769889976840001589936910992060719045970508345605103177319106573870706903601109636667623247944265892961639061157655881967653452510172324539076349469823235441774689470816115181570821714331132040498155136634781068629675085147695436658768086314872431671851047974197214292988601749911145050029297325348290041836712006384354948884960205634788344458326492747839162232474397933206472072246029704423760635832315562045069809413749389185375434471335777981114022353030750664753874021922128672184884982654496429504757465294750151660810133178038650717120116487669220926889247537411977116489328179848473215617690568863538480236428260704850147870986372608311013724300766584091386709752954507194197582608654169872055499308113026589901013965457291543755230668413621538939899647618289102643525503835804148807498182747260808083283434543596308162862578357651127491079059917599851395575241966207328951100658589272346598581000046419528820988938401674802641298311921486046436970466340137492041844649817466104101611723095963200083854373635723220690991705530060194734132155455338169384197208698266339140596373151410236614018250547936294762844985087394356002177852717981619628175809850782856952804351381504030306897263536026274255225011658262351892575491741567236567648821783997239122703083142508987449171451357021752062349781244228784048456110436613118503250361834216101579060471290318738562282612294072913806396341116605469741111698285337497969003596815184556957110863918727991575667050866240630792355622862192632504347605358914850263919969335353403547085989612476730113287835966985520241543638825638948630685654862213540922717635701538362767299372395843124127424297175186785983437536854249698496372812116467988366272925659160615322413166274409985843821680022061961475012119726872441824021149850951239324453681005092294852558517049001086171454333182884818609657855203508049455487944613359512601170478617467388560076789041752774419654262460452535223116576433174917511867744317534073376462833511571108843485975644842368410341492812102358824687505660528309291588401746112087506724688589326903725693256110568027076308456492568881387950378261797705789209125854167917242610713711653510301363079508271684854748755207912357804532462405939879023899488783214373663073478298712621062344360204946450844647200513741724477182647803451237928064144987946034660795550890228054153321613731440179357976454877477715673796904311548869083446734990118103129331660534706370623996188980112209809638121796961593170282571665132581189386469986450000231878674319742678610830657388309740955401344578984842991169101284924819673184304730386541678155517135254030820301747453861345505755978845860777727964507132135569838959088246629863060924965571595784553485157287651714991455070471362231604227301972145180342415207409885261141343001960270910403029898134110140471618502062915199512852494522252097900402912482649282657431690276752247617218835433772825929690726947755068610902452547607735456808506068470427804687898081662463959531267860017879320292161570134058600072960346874863589668656889850220935606484994738196968455253442188110678346368541564894882870018330365575973437776281649720154600480947670114738085808132981024379198287813706533740202159759939813734977649330415442213647411911951434136406796447389321236627224072892471297620230448844757579319726343732085611944397955542948597394959287348959741019456390238302031291719713916968356061460938624208828485466788529255740851606326010539935862893451650234526638294915605623813347714262251778438956530104701852616122625043865484170520759409150323268608818830061781020856568019143041572850136770178261662738790598819610074675885439745367570181589668373887213308609241181233067204869724208918514681137464383713326453206654532228569261294430386898313042734790434904190637370101421206454169740895525379496368253969330586954840238367139001361719244709536288132569536010390763965388908599775970415640146677259953487843935932790630456770812035430557229079987085342586107777756928081775887306833458748977342103002754488582827889179583785485362520913063005834895444233783206565542534473866284309289371600214048475536120170053850652373251817587877540392168236481588071279199434756852486600494204471281849272987050250415229589430616975585974950125225693774283143284511530127046379973321509592480410307926134982014429085492307579613911806031137529484079810447362311133669165600139695544209821929115872364773167581444521395137323435813306929701894971457322232197446628255763159043481722509368168341228615148244816838882790331753030248732008327835399930848358895938571117516223547456224791247038342249736276402822389724421691174744158903548449162372168652896300932089010790362541235193866234943945102639406975636177957606849085813165158257481397491476930455105122876531847545278827639647935295700819019360869824884071866112260406191860887454516574259591318597023887433893766015394773249899281476329795415835002806176645323172505299309269559862772010525105944506619655267830107121214951100912139211097344042667505011635288887886193013631807549708840073934813485910205032455904838748255923474822687359060798758436865631572505277979855401389029799135175879525921137350446155363960053962881118151427700656822399642555530195179170681161706974613342216302465882856586382908614841045848854359321754979720461127565856914469317611710765565788797028993027775498545482711940963852595483950047645357480961148037327714901946032393079475951783325001333674592307038655975738537157678624028565407296157420994409673465815832879279439912267775178416664087216959089500928926496257323605850095736501494146911040378366002763763393896037453825307993897383848645811482002419310523512673161466760727026930925910665730883500069266418826248989574910313639530177308141541061839129320063441945140782258747881005928159228506861472911554410797442571883055456856587134258749605936860072323302241955423449848726757195325260494014055760395565760186545015441421689908300607086383318142565784649863211912043389243838382858880041115392649737371915988277131951828068388997419945247142864301435971131301386031452769654910333749841280940049043765466493841491084679649637390639712317848679298735940326639762808403370980309371542825713488089957000287433468161332606300377528672518296770605928756249291908031015616986122055712774826079701059468844635284087393024333749762158791750580015244486211700500625282525860597151530130611860621428854797403049071665369220633296181804217606625765947877220322941554692319038841686134259116753332145295473787282342342193440624925830817031566044707397386287467311051295213479056300445972092193512585935401388926217904304450016801054049318461625828857004427902594475856214902172586784768567178573480897109545959837021244444913222340581519917066810966592590208077771592792008439169295037253213746254713241876086706350645076514386935330069626992046907068273922410582297385599789088077114861751934244631357196130861368293749380394804683535618293831862937441685947862178095002672039215305350306402705919792019094757144435088408274987578438751536076861263590687193208674957529945723248268776297284649490842776233229312909005368765793898083929349532824641382116595785256648425321676730366401287324785619892696910343256001847633499429038491858506866371420328904666463261632398031102639885109161513027876800286716641629202622596464604665800118631013512943927545172155564990900697521507341545732182107260505256862024884868127675856708501949054079229767415155779109026982801398545346317386052388819081631891129982097620030782342570289867518112384190581755896483288470820378731324861378572019267000146164030287027325551365602175166713658950081357723460360029220017418323385583980435883537955665348704901359418491464667552711292985161487950532034817067086686600804762625514377015165372159918922800119506017842437563520007819251153878880600172629195868351269614966454008121400004048856355323366142479790930196184176894532651023026896482475972383313543120568651115837259609510481960822099803375043278689479249620391038861483661800701185971267148755219070517578525352741338698741807282638015446868063757361024788792415124156921145737197886516304068728056071634601198472273771615929684051494798011490911991360930130975085072510873348002655648747963323644726933343824110116758517029909870578726984275505468936938765484426511238253045094642497824811331853225420747192627107770969736553798079062489701760323884340254535058512816217471518350820469338173951169889018098665733322299766533957320321190022611412918240801326836641412261409949166401676413178058358868872270486700669355191633235209562149127456298777039026945494816599301354373959625797211513527665653049811675352786824567262853846421429687096025884340021502480417800142621950539073761651559141163356546620716687509024076024576832075431836701096488692272757241984750888611202499076789543653494706817601948060732344441638131742570572217397811803213929949813858407521974167740346148014982937483366690420670042514654352031378941158062160582920452180253842178984867729500704300480348810269654278170268430974203834691811808893955881862238337366100777881322024448189739223383748449589865189098695554666678274909764983919325620104983455125966026113449087242165359966494360617675228238005368575461683093805692156660990431962929191781650307517429706624106199977422591214874324000489633173249799734225463800855624373844265209806516579340290268181571031478410152662314471680633089459303425577725013909448277083340945834312814174990599142856437174426199934868655403351214115958542990181759437962591186093678341151757806704852728548765735416442019499430283441899329372661294373663219271998106479556750329260740357616873750951609704029822288140765115481475469326254069310792356759879215569200549195184592399744198832960289241524484275136044450953706219991855681742829321466323059744586602544426144945891246125381103811309720892841048446915848117006015363132275175505821914129027033282067288671204844891780598107483609683214611895729945866036564800201947419847391937443710150267407047546529490821268449480252586008744667987828687087825028573030884860730495948453987551748064185387832136189947131579574938269182006279796377121392974555934281566876371613619033089812030332793184962860100478876740741584855935947148906981945711783088735711336390356709699973628924994182567540876804979858848155695182071541490732857757825639644095650315330764802279586477784296933459110599498411716031780616036359460966145228160768467816509842578367011577822891405483573460244498334553464931546997033135714095375871671054820273203973672144088507756904161534062921513633925340670627953763875737149632332554297368405660251912047636907248912319498535758072728961012412979690265711499531371045825630757030180381590967512417178360006385346830017684031637212606440237242358715375982414025862574195193664476658436411148165170991990285529296879632422053775163528228688988691871970630377908624518787722664737335814706345331402200305895346037833387859373583878568911857429704178075377744026907189979897324199765353322187814310931383282976611391271524442029202521894141393168466639870078069421500375256286763705830303217932769994230530905647057227108421948649034794886988935341246748858538179252292699304791192684281974109851477700032402179989206926848551167692912987405359769875536604129426046913219451328612828864157729691791884342301045434776958784643912309336052469334452575512617606153971177579827187066602606275516981744403860145396330948274234525669221154001748703862194942585250892458068202611673068385279929048770316377044662668106611980496780311232162050905271079964886875203899714867428538832592838793012356965687667554974491606038371503842448420444086270463853413071971185963339677411512813407572066149367004274490387281719040342290656966237743801083459679622530724077056030626682563497058457343192863510557482441602349501252171872266501933977633916329763360362514328742896809390566944887835541883778335199731165850971769781325842784589046561649991256970425070791767200396809615922859566402795598425586406518517166053059632442139415479750763517879092679472619026003375928470245713630912049643624476225057173832138462534398748462974624042469092390715585004735396342995636788387959575055933301345242138170059391939410012881937694666349519509914512287387991696339606697400632479176814689382972130900254842766020187223299031593516926891722158940069657649054038791812101388646648255886672526572135207118477559130062071995305403077709439472810452415412142000989260207506843587480155508182790898624839615157366901215899596929888829180328286436433913095265989848179639703824031760921381741895179693924462282236473595195785042250017357743043740976902136004553440591958314254976242734422069506107542724435008589057525891277977755178198014024845266133692217508177435724223287889695981818499821885756095466142221024309694513812180081372129305439001757450016869100983407808587597229199827042217650034897524569740795315772373791386132122919200058867084596383390215828396886803965414434131593480791445164776625794309228111676198878524124567830240663500074119645295437109567061932462992633473877256477548023899373588776169799185836920762510827323876305623143738758127083164384068430804615887914585565449925183538955938830065722864660267971414593890848687365364943153406306255660725297109407589202441753752722794395235228425081344758820828938275608455178607573593677354048445741978168788764201067719686890646056896461559077895704816323695526918230557204036979349102432738539265109080771035010080196988973556910129008118942908393144519862567435507198496057317354642868636069154207684073771525583263387356641262384032124042294662179413579223076495595619224210573770857838776870112246468953662727781590663065616875156553655885802834587291013087443416643938745509403613199118984886697776211393074571995065548389460430379800586024282051449469633354500846551274799143044007145628619465672274286205332984378723003693932139087577504926180333810156686062470834096798223011998706229984108170160118350123744568784917727356901689428765119375614606026966742078518512133479174215147730531971375699389320114333210754286020194678685437674611949867709787548618776341983194990675263712446412817589077813534721136342528560346044830590087167255780061121089874836223377591520064638261829221968009244223417466671365936243998043491463726711550081852087343385274972658582765592137560835905050759120969749339355519610235763798489437138719676511071680227699340703040011064875001641805942562189431925763142886191767460447096279611772263306364950149733796228945119678637632510947572258870279110235023998597569215054488961596790802739198853174326700023777788024066522922563761577668268173591750233873868901983226922962008888636874806362219533371791704149058606729406255441022535594510875782358920052799841635570860636387175507980122833986006991764416164137145586743136078978056990295876342301204558255247372246239566977665813452040613434201173897011100630390234747110246104560204052348906223745572879983322716120571203556691286277573612422050770496767054075980534391133501255914560161195811038444166938913139935428659377370427717785879000940764429952847055151901326124197101207692662302866522346253303414029123157832171076887666354793447092792550053229781956262223712555904170255482850454986967189344780779218856191775252639393928186724580493426058831810912638126227483846336187761829581731694496603608331517889808243122206290749888924288401792932654791861282999638451874166367669526199817373083975053078544401600286642022240127928866977204986575715150948203665347554530862378514652158467323682486429364293308712762800208924862259393081511957944952160948604318624905225924792999961267086110797987298375140463685432883546917365165167007194243884854453469012022616790144861907471656745404938663494573850085733639978541044993413374974092879645141667652076062390275988717593639735532033674512272344838507554960055558378349106112857138970434478666928291835818063769080134838205459599418100918886818585029480256909648828342302742276103295635619058022514121788679694421376713409891009182906017592987421578392183872002764492895362100643773944019386485923434187355742275169199680551732935354212550771118751013180421871588590903304272835295544911133418232879432757934532020677501633028552653955074137502395352552318078784438679940071695154885667501316352040506173416533404193905521721120512014187988794640069938602228892989258625817684180956149147613672060638893659657888270793603017297588529037224508232311349499745096766062442356386853987698402597732522912163091305347656908232442359410085547852151358649954957062259757492757617999859523765885065167691286383487347384621248932085040092728747667108100541583166181672575095840954933191661399583183618289049084187087990580054883788562170553527039645385054182682038625764075459243413205050420527637308296506679920206582399166513812507295192084842867753551492064367526101662518393445703204307274335194536673774615233138548835449198095381432990985125987338807112279120409301136910842560622994227864798940814899219116967921337662513016395381850797658938076761262011099404551729051690059799566941452087752658300547162016887855273802408759506409474021675170183315586850049166518444400577935044217752167426275447622979303798420134418459261676125434790260800694993936006113484338018612682004378775004629789363795614443836468178070776038184655117273290800331749944804721871233670403322756728044775225062614009578981113374382456518794629270859390715744472093524037000902110663695825325265512040179250582157897454371576157623236026597860175403881507285795387279656406442186950835681180522128638715080515473213424270798372840188764992103720623148335646143298905296681745537327052769026312983760577867907463273275529937332193773138000026382041055542549373318381459403856322539804772942267633898729672342550079459861149724663227757126295562969797593215865451755071230677740858227241866851000992178145980664621162657859954912623787497848855467395192024626792192185052263812217790080606387470977857892348695700224281354396154931884769945546569793409617077389737794277879068870448959803358469262172936080109278673672851697042831985147057641855286250851544045937152875289324350158616511311042740646193566754915824164327160805640745668841289029268823089685846444219385105621859506273709532865166817174523880942587684566021157159525140577957719842101540731686079169840429945302518073016909893351967978417299354700378680645485615298867212880900508291054897811031258229095633499286796954904221067123948021627702193441018310857395396388465042134317225933573816527163785139946166740102901177767038264174435531535994052796924226961288741886045198061753909862177980716336571219461990544535902364307085650991655238270036769145667664786503434420533232513347449973706375540649653555384106384741706444550584624318820865135336690298638207247548541248502296161240702611748988408670182411688502510445958048258562099268951469219820955424566594212381450164699516153144233990119727062434275746178412684294965316834420404815102206911843401071534919331858218235135492387071650516618340533730029091982979256708580591807450825269277580818216672440561516883433224716398167320538925409285856492194870592639550955502362662462259978134466793644467674725799233083763162336133850174448408820273099677079184148609404057019016391080391292619069296754951125896487932096870858081159613330262169074200460778743031465182712493331366359537845578143733663971722117203224169948438671518202598289136098132649344419691334031217010715920501129561008101128445703513162451838986502455883438077211704709060840619229201499951444132235952244365302062013201652559623987724672609015845343974997342064755674368713831690874801945054295125944150170371506687224781891475937286016572019774112710972833180525263030286705245821547038210466725623500651404206212078851095500262890817648508585484268212165687344090554786384286717145159249085719078931322028562109111481933165164252692448675881285100673913328215498365958941749910485590088960653936785333923722658534442480282889545160188143811321228722569613240169940749765879759323222933558976441436534302580674142221173601731935658492948857871147155750279568065221658323275111858623955820745793185901010609478444842443167008272962823119466591013801807511775321598430181983761886938348995405416545736885167109710451163038327710140822328287275681137055536776207322510925167537055731225970131514425212585411854494487961321084510003401112866542020095103032822177681873609755992095529096174081640225514161157729216777346147319805916702429121444954572626204372184188821319457564692511158306814202632643285398085604384339122875591806105250341884139408338726768340242901112429078999866576178191341453282146663715342758846051465202858326475674315767843100367108534567964687837160154978478348267606161361024452943834361586792766302787435674501291329274504216721134141773013976987144905495664185910467637890782462861524086152840267897147152157264429344997610517116802254787728125981553716415456523011633678971190279218162962045965419470950297080191345228856898636442966364944872551037235051696881708553804598310904076033346671365695559123071339892195253430187239509966064208513765889032750556914106971983407002581954026514885492493988157282691921369291082628376574461467522979423754043614173130061504425646639372947623759970706276263720377355027604594973820378246313656929175306996411216071542587562435026185457305464069895379300928226265563619068233877836803999351295767283374009766948236434852584050827356769210988747466430257322420302663216966492252203305474556085601289689265458617236022139947963525276071424458307327100681683538624892453104693760804735864779417369185101519803599523600408079832647736697447606556956929739802718676258693014526485525450231343657447363152877992437375863864178300223386060021555480896281278362205794353720367184415398157020131544122606192345929287745957946880276659024571959292103955413842304343585526667190405256484502975322826309883060190691501048639012786403317722501918264429559342667601470531306048749143590201194641552981207482420850619761115753412068930790125075542866317365597957870766032502330048086066606136680074330691004458642123188182469666304300751780150374957287255779822883855462702967287201761876534226162641145130837646060693857733380394390259872956054041689673788702155276861636078466382451456775562597250064176655120780440020255568012826612631326584899205689616237356668323546101446766802726179777546788501454597765490036827863806007334647638688917103090956429675638067623072995052917834795960759622236938038018231029382768730244428650803925356580676640691610215529330774757383115878908539743038225402261160515783607795045636727646699989981233224390444795797534653979645706597731120108558763395597827894734507673768707345071845557257913762210923572092239244038027189205265587419262077833811603215526419953509273618674169461466947664086049796767204959928710941282070457019801828969328622912699255744972977188888384814305177771470830423966703066006449124697754373133633893380316557847901154844121762672000379104292861745266428404382651997234587539704259766563498681834074106103151782132011057641114030522852973772210126540570730564229166533904061622631984678409091340850877859061530451255807116336340499714063779069468297089404834906629542180325169866137679953411403458593501592741178168656117822224082142146473630979089334460354943323153654498446566154477010510052166761351163211658933143650638482955733455926881522257387894041512359508202819588299083726633024147013274938226143446305628163262391228282219091464572998756974447871750436334875127499124017506434930101927160920691837879376471282068171753263639568894730206147462742548589416065890955216536229680371264131051182009848650368261173287774117756006665938249299067817134909585574596489190068874898384133646339968769381107042833541257637409195586400801988749081895258614260381482086770891543843588794705286645300365774080375218603987896969433014393428492756247959555636988457193567537701707925905233469678056494686963141025187851676577388244710059174575101094836697957795166201999810529214600592947486200431957067377168003212055396974124455966612764552020362417341774491306007752467657182722385803136724591834325087442328636260704188449585853084167511525165551857722742024131736375651002829249758446195210868864340878035168876354915820228489945068889155203642140110301249151146643537647675485586926311501566472663847810513087096462284022889913143047183360648504844645142381591008192779288017923579394428469264081244950600737074629970133096037042295343164638303802404951025101602342883140447766097743476450944356800547729784496348864653800601151315709190443654369798958644388105389890331698026952641645435764133276127208018963309904741548662366860818093421264838479004676359253637251508550492207095303871982316140570077778435980310783471629797664509090381892530878637430097997325611852654698532530963238704074666674925907646193123213280087200704428067185921794382738279996069759262460331034990297513952660146449024808229101494778001920926653707340241607462241297910443772735412992925298117994790024715819713245309944197296976972899630899648783694047824706628376443077391996800227950760305219495807126395697285718564269897381321020319465539744989426651980834955885881765435314182530696419598101895897662300154936021054295623989285926659970622323951095319357086898551069100775894899220147992090910534531959648030830114257540863890798318145511459456648624644775532645892941764994587110835255369803563129829618465285213493087216906314350765572416266114750002051171689735180775202837585306591829440384679093683966910640797406776294531337162043605903156695187640597018878540158749974521545517016272311125876060634739173831556482378499669977934484808664517637622192701803949521122168517363863222151850868385529305020537639678847059774923866621139614924213182921376227444979759277610514170043313448830809093441649017622678060426420513997347216441342907555463545264520101709088771840244310053069255611070485378530229978513144860257477269627363428973758584555469700102640991233464145398663465663961822709655266813364272277213978282329263053226341604782769649417028239887399004407284623904806280421475076125351248995366353980515197642557071002948777162786238752253182977389917432342145791923116999960480925517318286078668094830882402048554939473038215379761730659805914088037216796155559252923189115989584532659812150017535145900290303903095829521233727186790224772811298671295389968243750727264805100950455985487726711272551558343435779835528607191948695570092009626075855587878097591889345437246391659509033441175988170256495016337018031630451678682583130864320921483842444265716623662272843537926821818525235961420007952490438857767963144063651203836978895475797943074827330215430157486278570216844396851374660096378672070976030728880551935051263393946188656920900095142657146862902132455686919143857868904164028575883219301662158568745800101167171890542480904929582337778519355649196153714025426105441830125321686090867168949709948789129589690042036576959421303735112509144929900237780350443598767894431035441152730355482186900834490875426112366832948248788369189828671049102797119524775797937828057771349843427872730896777307950338295603796591881242306240963510541290623746724696739698813572905945210523206732319896916252017419169452850130653180625990690080251506282482110201043128672219136082160442766862984600579715601638969087473254509874005072734688879332258177188301616837402223408949206287722168160779463158958891726007761238714464007870704563300242282806536152640854114492322911021181195642801427293683031264617503289264102323675288709831209359946337838130175788761958096747971523658273988072419922510017621364315652730108610002082118999575742287311630628472342532029676642549089019546823078801836950242650062477440262536760601236130817628953997996417317798819330941114854655984329870764320409495315103221182627136611611558757679663435671845120486440943162814867548970273888834312800342921468774341878719575018166227345430507705322435157117243846005905987577364591342294471003243730053592143557589395627809324411540104240615325671125587631453521869056696877305301959122550918974385049894192604135605228392424307375946330063230527148416173126151071224624387616637601322396727592980477623379359001833104321024124342559499329638973647539694057434343773305944581842614407039596580932544794668610824532729618247284079670644964558011801525958287364862303797876469653884480331094114485327400744096039632503612012930894696757981060204582990417883407804302380584110489895040121226908966276912352773253514079904315281509789456214311301748052691383319037512371249305239670691624562076465947440711303612703292736061570213870671307117460468578875769266853213645910265989610825570156552443444880709643288486754377755452101272000169477529777122067705786377907551343173033105773459035907865748515357997233046358684568412031701938921035599169092707593181663528195135833181205087059302373580669198190207326299096105704134239438493539947637070428397177247271478486532240121969977313019272847657278394191763925012354796785629601518308072741881359108905597839964072350300541986027389194830202111310162872767169088309128132653411001916286527268672587225384492367110847603097052716386461245401843100032447312062858219508481030610272709387618379593111110677599938515601760690393156587523720536002429806392667655038676067113997867418852202730013816430189989248148447230629316960039026066045130063867054025035603495482546052850227533349597530964901210784903976103467458176519726460902681120452167341525334792633981674651804385951341042809110314428336515616916163767286206976630195247280512281920024322977820956419912852048076301051484519720619928929543008463471876747664981509141253525172584053793209034592005757271645095475004294193483497791158028733453063033183320334617192240490013992270864107058519900638475213944762035600747646803963691137040031295233045949194116404831183598037707259781680697808263244569386181366432000442407157137703690501262335069293747182526538627483939762064147508464422761009539756053433050034176629658577458408125252256137759956253672957437789901639941775481131635389567068254104386634865244908985204947940360402908186201177908856945282913254732673814293531387637743071737735373238626701663364763254932218045122240590139724194198746949750603417806706309450913575943993250068964634412730971199896322225555953476409691506636083157250326160748973030751458803344612506958062901246381683670259974626527011926898545923908460875081741133870373690689988497135579219163807370557181320757784782965551873625701346752704703988890491263853069170490450946916002603124677357623329660747012369979478217635549142979257690244567594007878216673830231217314273603494319110869102816347401766375134441112252626388606864924982278724128249473636803155909474409352786779771992234548658380226018651535818383770373714739876469261449271454616622101058049174512547877669499670850152953809046673559980607209517849847100639219638825435434246162220750501631567649576034442071612210714240031454601286152651923935996750292281680817834855253251569177244018066586429787063319071220588169830354697518945495104711502202327478267027498230403331894351416600439747985423472418670506573629386474927847404272448310390769245960012263643345964015553122144806763779216354770113857899141517576490172240688127189489845579830633548917293482409779622830126763006560029435299585435530189639384985975858933476776117157735737628082106936738625774767525275968929393971859814773926183325275259012453965165952063802486660754603396392913067309911849621133261987403404403980091785165923638607299086112483435341933434073589199006787094255132764433716529304405713182911917368544223607969782425368403935536993478334612991740770226051437315274453070751937468209124797661652112129558630154535791870669431166733702676115763647732910707580705529847617130025875657861249116830318289799965736023958609069908676702569080684617026921735366641833228519123619451576327849569803440439413904311219872554816886334450672031756287813052724759227968598366759490008331348343734515110143162362383799002804524009927166198528136428728659391028371312919829740915075800257560937608867424970662982836563845317730781242870049752608006316626128921244035613701875283824365916178492043652740990134237621717283341249548562989772420142927307570236209640173480272759280806035008559078743456804512136228095233609470904721016367125303598864115945179302703821341515455679596960430689788690960788094337482797128081102701207423081490210306029620273951011346551592831511871656201361957445354150283724078956983319294443777097345239755831778756519205544577716007357866817619790790979334105260664986471517430526192455626839625297194587363216620880240651277746590372397243016111731175433348394046256975888297136305790011449889815480712223924220350566018509944688667834540683157365464639927331869445463325714240311140844860908168202550497014508875171509914658484653597848772053215048846807218972369941015538210447679320306384873862156394943118811243859561596476149485022849994251026324054396586180148682193990252165585371938013010641210909233276443857739553274423217322596240412757750966276990128602050885744270113199884006156534495581814114624776284525190439696906033499033912829572827439390953515869576635804583974460531018873858407924600162038671240939864763303215148612019577606437415923101228893694531101746004183807292051108868998980900421685502030172572899961887417944620443670969363381414544345028683079263908523346478973435448471315884744996607595056049405790769483410018151443115201165264782118063966438242527271414277426551379848061413082083567362458948843555236229945001709297941357657133127227250680141300107827857075615479591289249699988254032770326838355231722587871201603485242480132534062132546303465290122651304755859736735591951769982115401939160893523397484512768112695708927444418594986874525935713574875105422548857328907264311699787056546560155061357179944862623644713729530642625437180128152531486386455267234421028885900775620819933032567916009611938553838377510508707560133125547078576993459170017218926579655431715802569743254640329380420717851388490482748109865601181717437102821108779914890584094756628406925250436328319312433698354079058781282599605105828977797180299153731346734062741470504206509884616176731360113070942468033663126652981611188066767818222622787858730561300040678295478016355161771414375315040425857742437390484688821390713067055850309376989013615608459024471197307825738823209973561309525345160899772788144583914215764595777040774728319256468227697868695425034515573075216717838955355046054005528905793812246468465486659325506254973825085799818580277441156755948818443371218790276087002622090153622416032786945536682573295203582391058812462725546147456624055631190759747616334397657192965994007674089344653634400849178603858821671850124593019269503474351984665543711346075570989518826891013604920906387102924876506630721594644595936690127528760470387232256635820230052517166205048442899809524353568898594045085296996119855478357354319888001595875496017038465392742195494955987655522716507361885796519380066568798284602098854485045576998797094329425065532176116153207632187371838661316147116471765102325177161868368500194969380400186425462981385770167049333313334964924840383646565797539894202654627520591057076228138231036366621943652408890603038771048745287268942210681733259724409067084536217601727373609392929369995999736007366810406906284892441741542465381685205613916859478405255917569070606287670142622685236242865115500078756528448503298896741426485764296456578453775388227669307153748690606819719987607822200861669280546161367967801266755621171791795413815301635317390465558866434288173654009436268550518620986290449673768563752862722002347501646706173362245116376151597774979618832678203394303767361320663948323930704851087043844710056671761148221089796769140957336958727424150521462114648785626439665726159157761448292149696200862916028562650503303552406954513576297265306135669058992150038743167189404904515937071427926334993787219970772878859699884679979720848651887835554473214494146069633150433187366373751867947898965863079737702290083905733049496105979845643554490589160463535958371656212857193471904102020843656587740123579394423224553841453690344221081532669412991431045520357276978209836485676613016328404765756765190543920238178967754110523910944045713903558673507075626074791316692958111024349811157556725124788372714344171143873393427283690255009884209623325302982946174734196034507964159584479218066000123546819030804397326494640667651573825334931426033894831946296764539547606721589192197392391663776879718272126746936786832791382096916002973806570745707961651334830578539807354678762868488984740925462386184491216920334952004331424425924085517085789570163867749565383647377761295078239341574081320656881940556006833298446792981481947165577022781051260896441797433848280984873460955719015456916065154936746289104586939423328227168696902857613124244484732568947147348761521075513307975791570116451085598140591787784363784641673141333474757788450872073245360366241682113929251556216562086625224374749170508557429089348990695700672125429675584703564368610912126905532344137635789191381234849455895917760453387978380174981222931943183020914234874798344505591507730267901377629632841748898782385978830607564887776065575683677612693491548631192716457393331680713305079172445508137797302134444222696992195609709883946229134153455074970620618916392803401010757400243423885090905453332023289053255009332765758027528842735374921238414247634423034450323533176658768307521715484136000890826892529272584457190984399789025832358392347476869633993547501420252738430555450123224443159379045609383016165208731754549055682515233581893794984247619024772719190539263618810121866109737608684401450134400185311559584724426794485183006704596154510537700232689098989488688499187739650696952902049617588217098073886261229034834908990317443457525569458540021331282623572899431698668045923289227262768615093896202088538872778068129340399243473006529506456372442650282329358137170021325161303450690339543447461351420255961573355634085888059254119694916719560753508313019787226477224956174428605254632218164803497169515047836031732210690199366997093690451548925438176319902678956025638198626823111603236907757122266928519201834409023174940747431537637796477935619421977582425713264709627254043609496592677137060592805041133401384645448225143039603174134537853436953358122149985248057317218580802938552434953255434902410543392196301933010285781495876646354378188650948281803490982265011283047773676520132816860248741376187135674287574841187094039292246142407022909626455086952184818853227049260467422845581250384313647244909217063509825148710059443015916085034422383679584008244925067208949964073850594798580131924886401440461400566877082131882913319453985916091990404068687701445693883707304322822402295609380314946035993957350813923430366712444168159920348949339550815664160127886992433520031726156963257333757161928999242323592212585360152846196968654474211826726663482308662326990871284971423011437047362112894430341120337894840391559488285472060305102675218186959269654529631606147195339414988814678229647345183558719670872757435641923406688241288753277497988214333875664463626154412156681935534181796976823045113913236021451275843606173002490467040331036853784679149603018864051284445236004393480620716021733521046397451736613652277095965009093228592083391519981125677324140033575052792454605834521818594219022451384387306507601277321657950832548075854942389395428605193667871484362655274812602982658615632464924899518194891284364239531839400139932977302919285344809677583256521875297713010685188356436353740467618063383183168490445607725039253775828275964288151872042836285986089083532576541051343714022915712260930115089006670306110256943024687722039817314571298652300608459524589711796711884225614860488882756968907023186686911746051083049695406236549682266590569104356814227901140544898202339339386817199261972155370057189909701114726552508926025905832820882126253590882790548478985150864857282763978142196241312186943583159573480242736090747959044831797557005398678656848484010613292109324268201585347831355191623360647479102448881244584251241059832218197589826711358095166994448424497847462334409383369707189781544911668411131921891466700750207161752726657470518766449608382818664576576260338041406446038914015666521391124030767909556441531989979992670210812637697182337218301260736342065948828608123619786128956833314680031070984487629789695618227847069989256885211121259959814739004247447045615967589386639130547352724259893514772501535545535752946066558176724029505196722003482169115248692011102114447077733616882857467642043198781128310211066250116733777662537825718557524974772029588644866980933223756831617813220451240225292519220467318709213390630219993750712411157285850760787060451345492254681956285295625669095384775726194050723959417888501140761668127816989030776669569158262597373518964045966088286961622719091474143084363357745167851344626508102600030428734573052606157514177834026155740360084154560006466751555512074637856339704899833655632457089935003400587730352457875420403010435435303230224726388752214780182674645857190502098645500000727674613995677867879656723284446351167337284983262647802220551480354975760559918868522129624677231294952713428571063120884421152749677204203737741744177802224850751771437748239404525750605642598207131659337173074426179664028341317344900016091251334899575508754536276831562657661089192474043437623472995233925374106553359623668615488578666486874788132247491306606093470962514523836099688170999534992672291590928983168985442064461817854626839357110303834980129411159422497194437723337040920833252828869856660288022010763271469763441947668691625752819169914006917781267298202080158376151728682386145797469828919777355776245949201804372378472475043750166157805020207884421357979799315959655735823088585129120115909291053692338688460455774828011053812606793970882459674249088357335135370909117321617260680654012274682984194767283917593673505132555195542167362216896345047372155910210295625056228651969275168049612158326348649560099956976581887094847623668159929060127650286102038599291653968907572107085249360630091830965866407246782122738383478163434010108908719561476483583604475265161470202510424480743193950098910845994562351006918882322695485943138516852504398378956536410366361271001353576677311390053583643630238506125773590621725697857511862612707191158149867977563259801217674498701467523610250053027600672633784575318582661390132427015112375223250535280274135167700964778819927812468930050390486039569210299768399585609592144426920185211252487322159910293191890400523030100632722588645243415350258433172736275685511187162128393721468632934838499074914271540248804852018471446197039031624104078308253505540963246149961635240566595020801231862880319051228662574800182746503887183954886087316553482897942179235349673658530017521805099267744587466295872183983772132970906736320051220578749364199398613062398153376969284804220626898118630038569731205615768796877084252583354466765908280089512058001296075245043958871328676072731404379035769572529005477916326413592502452837017619261499216869826185315874641148536290024571695321236033477378698329103447940484213260572552279157443546566812505787084507846623894240762576189475483359674117807788389204075043543009620333532737164124301340946134851046679401712187609760357621308533996922110250607051448087600558107188261097475001271860715401185459128540978676372288099873539843648506501685539304948626547935098371391328554904735462025550863421559050629464532482003820948041490014131179400403943325361696829963097348313330644857344522739481709086354361712510826561977301262794875154160961894247508627626892998281008282450517922915308851503512061644820313145894666939106598345230891588074738863401295892069770676340607534955264180669741430720484744660064005893473569212228901135525404633961378752954464150648510170657879168533631725906252178285104042904707678209259199260472604788414509700684788893545944521780443806307197512877670048433354388327238626103225057502600075942104138762917458957145453582216232727069763146136314277616051421006143161749575009212211173813129937726598152475567562782062966957155984639479715660735842989762899459815699173170085317643343564709796820781837942720385646872723634058253671705712740217075841438754861006272274789874134420827840348583226417420692554803370814352180174548380336301628513412187196911099704041053471948912555686632692840798935244643243950238540905139422397371110634648427327277811186128319499998803864953089047876057114705879658579163181243102910506963464035302779894191576919959281330674223547944140273458205088833464927456756076906558834743663146921810839744582573292104206796508821149437664945466111406817861849226448396220671544488916932545109193555905714967314688892251682256251698573434237692970088245524283850010043329512377469303064845360486040354483889766429489598951548545580098776377579562023321103938069247883443106156470820210197584014427954610273666922970016973150382315653998304404870197508632346160936283978640387667424067942867078025033811899836562278743832780448942110671533024747940469893243108354909018477626476244754896489049444242124076174058962280431830303105904341622885150087680839792171616998116372776952514966089866415143421223024971943650755695535810321802327788512134586571037000008417764319703043092823163558499997567310094227279960548789588656864914208821819776586448545440850505540397403646698838125759593941519292164658765487424932447091666908461602173923634165500345698517135705211926033223927126950078710848713823033236568654047939497776564130740900854296483884324495325511932351172056717148281742345168386657387263420897264802592562542470092045485028351659844286895242369034794906836381517007441839277814438343035129446289948930808265326037889423996043313859611080285047007112789681176506362501122528906508471915931770487130540620275821881554430173693566185107972583345722298715901861610313393446512959630058473914444103831893671495672028458537936019815441606956308760799698925683063618150729535909158438411179662838651994333669042408163637741443058801594431699372336558806117812473802397959926180360410385160740083041696894799485145331526190695477157112814875060384100701754696385368160191103814358599387645083248246777512808908547530600815256887256331999032033781653175943164793519303101665180921344093381128075181031656756541947881291133062439072047874952859305339845490050007703092703458215422292937766112885522580308545312115693822273880574822267467508208365909933470649423433004054495107793652586667868587948661273728440146436479032558826495013201790390090683377858558514378960214323510552882836797167080660870517443790555630870179417195232150686570846608703984604348724008127637210597068595348205134383104449007946843579053372414276690700527063763346151135652409951295447709989507521041102435193390504559430401251924087383297570930821120863235781959164372122828732594344472410626522571694871186918344446146647322149801618970607317601436952041039652462732846942136610492563731983091862965360702929062453517259917618088760076146992721747107545346262939959937147995963466853145614963279731306133588537183514706113626661600226284517997164031269632638067408581403684931000680992871482796589727850557913317984511772566405492245247422171751758761517807101177768106224348487101130515152863970683173785503677348973485399156368626431558138499650284988286855403183497164470563711792693132018757034796787879636456747643144347768254107581562482349581796485728359360918667231262506718231054903059236864549061844529472012726925845629648719504725001067692469147383116637311944104797609753140327011954530586358250858373317175069926657784184308204617606386187596821631010143447064405393669648475051741273849994916382931267678231108812972667174276723185152378038390610443565530038787726790544842704375678894088622160683700311129363333158564550100220926725876421753044206173957860522162486558479788746201355946220915042758793075786808139217320542503387791012542023602002607961180104558927218974865060229713717507486226411859831854480773913195475032715734967033426883072762315665239027781916564317603037197538563408231332432222118659036423753267398076183725112470024249399785244199183212692598425088387570410627427865942512549130176149446827987215355011250647453656194901704584579560164754768746259883298524985317781894504395006891927698793485452013421794943783775434550989582813643300004265464907302877780866146381431764897162368756326413704899038999921841339082411265388928276572420334211615974267215874770666776548312380950998044805436123365847769186426859779769102367439488973487303159913924409306548849152097051972125348690128650081086513943924896662311168544806838105837139286791017510196715250027471533765229974151717982304732626610598649876971991474031774783692803253157598914614370124091468687995983137256212773924119630744260573607999430108383018993437275230311477500720265225822179111415663397488271656701877000110070854619934794015843779316698136395206153603401278977353223609269478686418499010634575680735863535437982329896768760105361941594461302866359084416672812721024814173067546959622745269740939193738206277687795834322052989906858314430365823318617703467503277007958023667698176588052196520492890550948498362083968812398568095765516579880803772428865370284930869691620531397919011808613334622244399286377786003680146520971858239565918480722450238936499739570548603612648662415314102248421479128670624240029959590476737170828402199563866569163247711935444465842345871762382609227770785961298373914269616997042926026440729948928042518132026859306096686072826875532351001650699552647404295032222979762479713214737121381204826743134912229803797884766537002837793583563428015547590400729749845202949768065721685719429640977125290362011959870640917827386209316443818212166151455474800916271777543798308119964224146606284491052029181949736944652730759251441522339208004211618386677294131831376693072438945468593892236017813953609545378077215869991523058935097946867513906267048081844585226683016920736062565190838433286036012800138813406711949931171301797321723859035175277871622292546175371194886388520676232272965303841458963880641338259804038877948923743771760957738702448466112686943070162396767920771608839961117212140083113945915217386932259605565472251579446711517327365812227141301835549040574622428959585773120377333484067314854763779414213581215498374245941916990457390754597948952727339505944593332503778931626348007261832565045066968822916875938655163444138009732052864165570393796809060758092766082023528292001064934734871961533964343697702246375374213840967237861373652495461579801629824627047241952343057933317466655300173947700079897008705162333421224249066352165057312431909596320401018047652750710539135609735596241671967717409075709869518551212278327369826797353417061535357067278069950405460643513462406480484155277620094592531559332599317273032267884958310571278916191593065150272241222735985713055671255940267220062449357518272387058851476656938168583255228079343442830187235932906697633032464887625119165563005132515093889329021853083313505544203975643891117066785789480284722640247594814411866104707022053008820014654554329091756805244378765236118391554640750940868581491161966788610611819788099423910864140811573874356705600805163047793280837576905737673029583613176159989767952370620626013703468121570020880318216614146378159682214137751890702758141728928805748259934578008421782760406841439752069138075884234239880539342095472758963295569184692310300132099400819534295143620945089276876788366957410407568974475152271690275290606134470030736084015800730959638815289148969365402575916421914099673674881107523011494137004813776002106790586965148191807633634182643235971143614421812947236585307832129969677268668329354434327223399707082242029636108190071886782209451783058299680157663579137529170386540407614244151491517971684674363036609176057172682972481496873409533861837345514127952766931660504817541091298303261395403708602420153587507265424014288179742600193724491154938801317554074635989350740813067453112307697059455256773264867036707701054217321490227842687408283312153344984212589931137838154384705968595490052513117576721008189053998582705514690091997206135532641253876069831784924384074193487199171125418859640332645036091131430279340870224249953193126273183887479618199000045850299605148066486188562918754558721741359225197647435998747756234493742085950844813211917249860091890626192377245684928745974934698043917296146272661910894707878069256137458512951713193730537027731603834388942725111965961963829588494059274892549823247834401558009509035347454412638788077296235457456279108137872097222062670331611810219108694176879281965584102346789435209546380829046713633361623998844966578636972993130610608086298906984732570064703008120044998728892690743375703419638759122434462987000638957034578206531625112320420475563936378334564925131192242417429518277127085008596652592501540483864418759054617958727126483351908621555229327656650489974975013531172465995296505350779593250190154810627979214052212618002016255081784806695562314392884841994281520838695254971871312280385206878899184094651065043697554216553505622031410034496489341110641141754414317053670526503041288406314755755763070721253804626641688754982387201898823693217782019759628358183463497954991370189867568099592404883433598234147673921639579796108191691349710348337523464477888726225394755128167012655010200185444106699488234940677147885378913057756410072789186261860739701703940828096644994590474653663876186015843648778676035352988206702782897096084966477741872104117003480143304212849487642650552832159200666235870069844497520726219444691094927605525426834453533861481929999785966035043336653272932436809228537964901369906276641645678444581870549322218397692278580237408400898455472917772225664655931615870326569960511289891577225894749719492330927997816615912237889469814933095238364844968739813616655251829410719126509293302561501671710220728372954917396875454650425302627875718962624150130965935832391178749437173744066299818262228020108090241183480269550641219466420570355552785076718166421550968523389920321887890928091441816387568215375009986414588151721705324978108073043484855753432787333667914838442908200306427334862608401752622861057945978995723493347633245904254262656379966641896595122748493360056723653807210321002123480158042939912264745441122791789932608641921254028318062057255019194924690712995250540095180541392459336576689850006153413712680913426112332899181829133130871496492643945710371834146163709689976523589363392344566793595076078365070244002371988012691101129992829674381350341021180127666353099588107280383090918256768377666894884548812658669924708839332586563492028462199009648506065561570693873919327403641793361649515614068464482976087670368992837961140804965070286558847918260242773833758143914076811958059925828186600864939263465947320566035635365910152007419638779181803983851799532046614509317909609133060240953817873024568246942941077685971185518438508215144674025221259916263079524621398908557388489498600316504898769889833582743828421729919860272239022889184265186710487546490975387347967533501217186527911658013871056338886489166209922414337377061101960271078192513431013887683236878926823958490064265519062691511374388788512289219083861685331698308870352141674893493805493303114545592371321643069848078676656265972619884943973410279748929461349241962822603591250002613819895641263658120120971169905232888134056477542283133440577987967110794373845413540623111039532857778293591642806787579867956303009833654696081254881148297284381224670023829219514270550088067772680727074912400465766165124450786799674240496420450124195777798376318239337641084756144296955404209714041214110527708456360312090023844842070649535933456116129571390763612143720506336488238771598443906362049447453889058778575604525922851131134835816256178020966445184274495021652270583709840916954757700083324174538773657222113226199390397459217659736395261328031852844428448958957696456392631727028386026138848611217738173186215389237268246458632691611937188442114799545376758007705241144981546944044432449355126652993068842677069138338179347458103481546553788894192110525002534079763811704848440902707291310642589353504878573253475445134505224282397327569091354891962782160940386080878828589255369643657318412332184434696486139453844191818281444348519259715960350123796375057014192384933105461207902170959223683086346207811723307039859921883212142335797067117398643148147174817174424922671221441608834505845493563739195954364137538027916986478890612736885109214389173121651102623574268571880872729873908594397181442585890077657951704662994866580894705712372844960113636659063069104022641260781855112773907602196231827508808063905874467918001116123238734410071811638542034193947761962870112703188959367885027856058487856222489515969609472906244160705040158163661137842776805426526258199117638302068517547090179285926667233204445351490630263530507253110581366622339812362000462324314148231172434705987785612244773629526501104975362015545945439242732710465623421617177073772564686236903863361861494459093016092075500543390911871706425728567382891704308993608672962677602560501853062173623942481853734051958007900646674023894280253825048073155802526384199820429896378220824335331944780521991804947267283951070467301037465405925114545065193710861716622887029639919819983211638191773952141961997687566262443742916434082053997599468679880350534446555946779410875491288498148075623757219373731274692902911476418981155660910653699275684811023807099004483260525248934570504698481196960907170313194929091514036334986638971169680384785320177718220913964140509812272372486296708202309559085998310572101266697111771369782618968343549421386534787381885626506928275697923313121743714274305627595727934785280600619739839202273535947076524805150519490455067846392142330358827781599508545615941498967661170120675343161791258479972371031993356843332217860533851485775980185177486766060379051049336817841933370724017574541997517813690729613268236746368807633051437264772913091674103558319704269942539615493619333405455663675721749620982866355562901290080135827780754547672887488684486235212441424164870554352954844053952206128147951065064401471222035952415253023564941412529901553125331329760948604118359201443169048935884216654429180991220418515954431703143826105034776794537581540889925182793817714975239469115354142741636189980357914909306744008823476140282354010064110257956433023543802986840788831521187970182614177744031075537922999551557316509749931739710298541421235150929755027740132171597248694892855721588495016291318551716671625706537019332589884256761742502749003076824100158299016885481194160782398165127009581360305443536460585716580860653223147915245429357124010587093236452479685398475309273040734981437835733406129466930570965743630870850954471359134214000661131932662050530691831484599654054804899333197059902601064655500352981052450319481938533432559214479318365498538849008455980588972675783235264644577211897999352641385405123569125380805909677991072392939811709055050848936157113372416556430008143372328417619894388852178948034817857996128180557841054958808899735307654363918257569976758169699706042403544156648098028229192418454422262239518440606440189742614558419022980517553582490752008104937843407634390458299432939361089697244167791721488045851121832318197731175422339981865044928693121317071646351480015438043146239463236031340433021035348406481401890912215972963104118895938958599286988321601217296687121551423057284486984767814718450372925836698756485473741549975013500756370578202206470339520583952637105126717363608542493761377355456380872110801228653264615893109076874609652281043679166650503513301685488024189840710433940320484747415879589332093116701824591705808256862904712108950676210966664743334660054883839968553126576800014921969416996523828226072354941678082550793204308421003063141387135564002378127892438885410661747574796328577233096988697987594134500478194747086828876309815491816915737979247894807131095046946811978918653783416232045966868891778415756040932297725891528928135115404161674857329889032011162100324873347411101621328899016451069309260538515826011258751181100100068842967283066781732299769672263062408135142441396639561977603669481536630020328494472739810949607504648260767285784242788708921487354972925684317279010916636100473924884581320965736087729839201534074025025622819435470495380006764222577385038492487636286813290229906005320010962388375185881478073772240319449317575073894240861723605203199486278909390780267171898375226658557228566741331600198354326501259356902229819693511833976435001129130232606399874774444306297565794621928858363381292330928736064557821285659678098776898131709758202596806256421082755034568728347607672600454488204884672017519157652916020812913014376188464568596129637958091025851058120108099138557371444677239255149013993096079305077237589712447576124306252560978540319341214671275270476516073553144041214490223697353649934342597598346419319817069734000284307406503016761043770513759545340300881376338316966362027124878035144222322744847920536957395237631445215162804352565125194860177774662041055388179209399264773723178053709473529151382395244532730785179683453265017651303514909648466723486301277905086151177529556030805810596143702978002360991353353115599129996006078963907269062432326143265238909861110780632752469624286092888671071709836169941168862391788026882134212702252686282237422076944355942093844662407736986986586640873861447987241117017125472092166313390915085413053823245115381624043253898309542894824571274157680107763136159053825921358638787842757565754718678100140388034600994530429650619417620069579932325241314849613158394937435857479051645303170719984518646550071071674322414523661963268341205928858500596307410139598981923328684420691077585572276273800184577857985088022052902652706279372855030509866403683556392678639922615597649432442243806680775677288120888934984442084243948448380822152065604439762505685761558356318282569715854513775737436980495308091769823060615102533032129727275456014322976887164648184225812063782904347260438686013085010878105455319132554530905610319417728279608458830482685383541987473862714201805212753183488068116845589351407545272119288405942910919108884137726982787856991175683813698055108554499387952764842505558553658443360187947914019083309161589444044590507767664488141981094243673018988477041045376543057104533821763413811512254081836002963281472620713463110287390407300592620261236131526689365215887589194783530561659501435042179202524522183328190570537823466314140884393921969085420183444735971528908288561308155903590672385552331376286174701424218967740576421913040962399510706432596931498771241844506247325404564303636530658917118364786825915720402623449822826128598737080245218124621524551477429904564106161636222320778517995607055588483741334730074831469368529431133311907248226763981643365693715781752453203498916101402218434833270144949666012977450014609327190092956003915171212209382092868611114864804996649562495977783162144927575142293634028885959647286319239369962058667412917384308933998178965032480882694050977110912550831408409706434274406374747626442589464295586839230574374763920640348618505276024855001019880410553218577774022954677510762662888762458204804101760418622989964319277957201801496912641054532051864520324430061369588423264776688365208672255948159302719667592377819463179317852247957451682291848702634158538297014280618666948009576057708397493848423030928638706965139937601057070175126156646771761756337390074862263995732361600990926769360625221099242519205709093335976024529248253633519994930574438784798161103440138263962007889617240081933526602699233932029788547055534202975235812991112197205371854302576029382029342286978870286495968586328146616195296130124219751293527682412198774453731501915851496002237195695659396256754802986557171872294242331818081561134299952006451638781933763685968677528743810436694434290361125427419591496432129615222113069277820155171863945556245747681606631932143751580675293428066156498400599440040451822708180116195105225878759403068356093141060307981447272324781895163399470570202768570060747993464852916264895356287371881890472176093637618196752899665417680736786228904738505448823194884800614273709178427540307116802171351193463284864890267752038905043082699896579111218013586991431999365540860153317551224964788893693614174269881302972248749804042697037192722607529148836415138726177179277069870966779011597465128644540950171050966600030020684134997225006550326334431376472834628170725357504157577009420819551102662722169087227308639838884297788112476465143983275385362300852901756082601626100860836314967677931911941695202015617818357351432346326667020222146885487909094309173747851584982827403593239231846405888200262974222568367875929881850774556707889573691018104205597908852110850137413738583914824882825242576953318169923666894737366293135152058405538000409329039124769991043090664062592871899968357313173455046777656979471013458585521890489958138190873253258033436453215298811470886114020433386130438790320041883437186132646213029060049968300670271881189932877238481474832454311080011380182747078025182349574462403605637137845067394832383085365827934065109485516980167237940045581867284372699702079652309765634315658599554715515289588070335006674119824293599239359794119035827803693365979348494397409138022577190969890657639193087873814433434174578188076481121568016707009014578967154275941346892197550826281583058671166636291658980861014012719200520604728089025352732109156463752513731350776888215859736093699096307664380962448406169400541625116391157457248079235741152488225330253408603194466442033576896269955827795457289127992791222639159684768630868763159757480017845226374816484868065842884991410415375440376077330261271846691917656066855804252257897210571439719974499758391548094947966437827201794668317741572645453926175140076132276191152436047567006644668348984216620229611770615606188302800845077533236249780660802025832827931837416276502142795335889313703847464103862187342290696895884656659198146178105253000712218438051851343997903193616334811781076183793478559300262570359548180847744602820177951210642242616888931617895046440325915848318235126604980450420651668224646426659970024416569286686628502790496313100737588539063026279496555520018908166590177285660480253799846472169194938014819924286203472403010660810469423685455324634384542907153104704233257202216982419500141687190170034340701547659457911977782621966452301638407177091124676815578721755202676760357620480996772780375708278706451350521483556659055255090849525246502967724732543108812220690150128156712002695597501000996083091856781911477864057965914389122514783566417194430007090731692231006717994920759815370995851018789625122655194930783041628294521160913239655347365368324088432845704243783371638366673367676432084371310160149251615849710833236366849033003587596945164396162838462084105941245381147335431707097954810155951517894245472215272539054359910823967226483451446148144046616876670069145065253159365324720389792890906250102590768672716014374245796876136128188758491412304495378389231024738247460441352978934397317183028707126410391141829578435349664324503297997645956928742453211597067546744355409604378040131413545605190262517272418970353134878317451932614596967904773980347951318097319320386793492365017892833682490250276730113697893733617764704107410565789360814013471552344995051420421022270054516182385122501322936573326173383502969168336902606358229829481209496246395150332126435323588198776747287157765955870241190240298854980069755462266661206407000793350092468723688501259848777285599955593450858558935782712507304456421431277795875579932500292774354814114841181165928775831718532857861892158647481427179525826040995141162442888330835111087781007941772087880842360263123164413677426635252323826874421197729249054921304218958845760590258826326004068156442576921091721992856696899381533208005692952301717963334805295199159497784931244519163659635595551518623468251132082321773334465669794602844189036200614174241398710491567565117523014944137378237225596180800238231863482785871910299951907600265574728080191544566549647172970645356062480490488629425030558909422670790394440089798198140753227010302239685027714282253568706639660097285495941066771361716413077217879773531378503879794875413036475252661231736269247617006820085423576716144173435054250938681119836480384228931695627336456452465652222141374028952740564535697154267491073683567380592061668700921766637415177902018079784244393783202755885473780656290778815341706451884459616463881202134329759656608647668702480617609586864547893952839999226430820334901118449413668159941566747706591818583163165218465825056702809708649846064212948096246880441318591164291977816318666306746220686843519384636883141169488608206825052190791068994184643984555347644925389341461662631372599643160691322677877845883918961690383542792117010933112216444840127196507074118395140058861487108336764480362798587314669538142266926052489216484412114097292719982779102667259766321170690658268814995558871274749895377586964561848553532294702482316408263253052624587853829514122368332578639689037258512413381330241123078155419797083604893649203059082205707501070912251516985069794239451316799919702729440633952165460598700324952950855432112720124601243135005550524480206918633495955751551903048386742244017235031435690541189749677621224379215014825612227092772467292104140113149967463244889228702590342310662362388271190083918439938332283896351518832180719843063896893953806300459964641071956272119644872920743401604861557000905524872300351524384705746856884401540829403795171722283772941988310193805338952167597190724035083746922713769436692929450657389496157572597142965907118850225594945161890842051354268393435184465819479556653386683601137188577697798903217451343651355548083945430110462928971892107303882186550709208851854941385846266043938651290839938198292043118742098038183985359026533355300747896688334398705191704811450696510222736164147919343880629527721808721261905951236656830915805987769517947059232442704940424209715992775800880930657336803464558446283385396654431697911555784134057858364887427088246114397455687497220416538046304548086451979341626280804548412017813947807595077666626950383065627125345112217531943357678851031812507577624964776151307037676896611715703405980407668415828656874283356647333003310863119881773867575832554333181320849839829443083852060590946992849740641448784409619897368620321574059043685781598744002999560221322327584721158349940067463237266001806192319033706610932384335029378354462623438713701214691363084043673363634624313861612837531269870214260066574914671824424811834973984522020252862458203905454672114979435268317573265239989369750540512919627560279735896864014835731406750442783325916145020053922503140446433242302480130190290526491277431038832980058770953757245766748356700157671036105507520485565879255736391917885932297378802319138964269032207866570941611471872367172173842095009540617686813146948919311643440200241946463129880752850813736274838902463223219633489899555866603822100503938247490160606486157421625982873698020565885400342822682156112396685711689373176002922329714592140851249363947689569439218499393893646888509437333809010068088071666519842195612922060404278732708383576301951760139452769692444043725119142204682984042495979207735474732076927114915178664503205832172883869988050176963083255943728197522308656091732649492026274143770911067524462479532267063593314804756519510168547710907037352283128029081490925639844726633505873705942004948015333194021406620252585599130076628945293767241014721410912795784147082990419361680140261227228686266632586635439235220443733323925119676502080390975054795956317878616353480298147492781209570509118286005082213206666325999981778653327979833002595202873850784450079376417778730790777468120976427826739129149495571580690991716257314148627026079353975758655998579057976696824671289381565673548178574383589162047414828310481994774767609247321133047920289253820705400568479550147812473482734200485318474560189594214838611586062538830154834730819162204434259874182198579448048136224413976405107091156415733595675518235410074776282720718525421972838145612856748270667457819939040464241762869608753258100648242502864881329490981522233558059709948611354609595461306142260373303298030938252718973503937181243590766451171368572875869332403118914939133648357276707123591946167470200141844584026774779752925149830992024834797321852832871114295632045173083631396712349471316176770180557582636213070806043710368752281362622716273885489495114637847907523791042656905406622276740462307706609407294417520772909398760731016761631315661533774565995036249560053704298004345618812645300012686994615849903065464764805106443053939390088002063430132507732068672153124763271818074964535298269102565177030392182988580348536199059406694401993816792995024611589195099624390292207466568917404386952225076279991596285581391519169482275451416393691827649117429179636446476931816937489839035441672526151241130248578082055916917086766567601624591849738248716586601009421536312611967675848317531749950819419008744751766690593266104298983786831177582008325354997390060389550950792535133776832153559010108706742887727106439932179418025861213301702097690556693392538797282671492045284323350435410864210534027421547212045230140791435876231703911106759625332187450585536540047443485377142378565150606035902216060914573270831535996310492611760101064182489100291548204303553872999900075636223525039444255965564190186967841692095499107539914182483542124243388627490991296829402175885707319426269589584496473633623809991003968170304613298005665471568733617861186839065312544997963938002065943430095963544044005484712620988637159063693727290287644307633354958684977929772339560098287553895296922835354556283381270998275087093679872444538051835246066313190577507186200418059222006526596441852402201796516575315203176300431895816191339599683343635734202917998019965041385401315284526876789389039841924137687884990784402517958364376736336504079046526983899737456152533296357569147382272143222489291982861319418853054823564336733403427632471140640859742749064796562924309589842681156757395021925372654211197624465082117449054519562372676098869724704375148291881217849119408181526227172839204322658347906260266054216494533048743327127432297966698309662339969036792415361105389070357272800079253284285962645057536868605798048071390957979388824373076704582153920856163175860891899989539001469310121493771765055939935240103728732680019800319084388178284475548094778274134374812663900828157525799902448741237999072334556745314946244757340927641215546239216337776257370698521311763255385560315175884411543004319555160893633667632594058688017042949776538615128618788528201300227919467154822035727508215852082965832889015269129350427530925981500122513532155703452756043857604762862145971994277527361917983294813865684850072727285616937229452704094672328300387694836203198553377756342358857817849035024773968928602413484234849510758282902242763723437665584824157733788210582295466587234923718894419402992803650366064805275183345919256351071189468803957154423095496113899230908803702209378257682515320286527924689022232966668624553334224961003565962719171372713462103841949430399045812348222198459832049909391395115524920105292873209622751227871769118804107085132700576550343497107140450732419390227863563485461146369875358706835792566098904128161938455147379013237585443090432653644962474755809257896219246845484511680028845914823744877316883911627284069330573840538509953537522725999410881727991665278844910416770248428984013739209560329167518726473786761311066386962211858389573182368150519545649106528346023068463959287460141464198261780310988257366535566393255495822582302843952839705995453550812284457036431676525685078821422659650591557943194317163797319552197677140686150798648403143441248995037193386568169460665756193487818634318834042409005831231024177815809310615464790789964929315562490222011020103336321462705346805258375362569426501088156351029051593798170502569670995290683237084061645008273032667926386317914851412762096741354137384688509870201724453248393532650584646487718358866761391647268487525402070704389145119664974864445432615589907342957415059822888974632045764760852208729447479257598406273341199696351358187690914081059498851474667752935352595451723952796992564892393279679438582503405510274419251416947955894212550632906055962207686642714961862653811786476458230333284199746507888320868231761341343810511049414755359724679016464710284382110921610951048845275652729577000697193237590455678950280287039154200431806549596824255247148373346422438202999636008921699233446439750734654530956802937322158595142574195874505468266165131174659263808465565602885897745943586930077753923874403926554505296431609379948168781121729197786109380494239918716348478431740659404960324474486135439412378268251142128136771303448935735460129654225278295660648983184886240337959052422570207230575283507309965613140440914628493338213362143141038114595950270040856776647105204109143676353615636415850056445039083329303296974477985079694257261955769818856679156024941446894284798355564672604195672278524417517117540809396554185828648227965719230996515965891409529692756185308000831990039145045387045473661075093083654104694032109582147342233289903292283555614575362551193110378720577259961622036293180931654681360681019905230731210722441690039206019533337588011055012742581708589319227373005203520221882366249752525524278861522285754697440678249764782581555041101936223226196839383888649935180545417793758664044255356478939375059082535983533965016608838481758204364411489189631140247218864879620648458592089678404790215930197036782230129460725402240848469746430979830023945228826245296875622491438833682704295857847496160798313684516004476531329268284301384549339203915714965702094072949517744282466491641623673828215802605216750110889420712995704285327707838889890926330109288564190993323676388251062937819309875368987644045792335069995133774766195288742164985985854666623494325508157594227482768931149870715776512011263246226714856161408629863786575921720723396973103770264441186331416619262823524014042204017690003534354104529927435859772853516369818232923304497542948729783840657314094611972726937410846905560443488508925142168953297641924531259180183062108829315536751737331859029845029628673163435434168027789205018689861876281400078794576277504317188344073481120087322323423459936508173024254513454076672384757138983900194828622036257892164318599493650659090936789283386205399177602061652152909283350780306155334566060295175238678630996261631221862709363664601589444075179408608191418697080426051468739681321701864211238970194697832495517178939837662050405827834019249111633615313942865021957346257846265388823675262638472092683149835773652235948911777609646659707724612679911744626051685178660265460551853405424149650996391963266409438237351922238479188360788919613288307404625138266501909215330863775077979622899624897838710194134821277615972918255805202001967402548578400219318607882679961766197544809861517854909524357584892329707617242353136418256630036215554290771603808019313934582889533423795507481665172780049150183755821981250507927926513604378652958109777361333297718610333521316311082126735572616076774265509955433345329197716455512359816093037953634373827573012304986723418652797063988714949373612306674463740844248901243069413035525731906268775598622850518222140136078426429305804180712892235372989309998723399488397835421675226400080295564078292577182132205352682581516749168474894720584176831945197433494654644998845916251091028687012103428473466112609517665443390219196421974335050013360475449752752899242277838368618835175942123559309870505508063542726060737914958954381631941311146051171392386944967478616398059013616200182731397684371618413868080855502296090451842233635801347821090511942399163450365924893768668857806137238882139335931958636505310399370118478922345807940605255885102327695440113444045475264958607562286795671070955470703140010838975575305201771997718267205414303128333485566575149452064921066987267688351910588417870897387038558879521882714354125559692355603344489279581233163451818993055560199010427758298230588081594728259031443224301063750121383288102164122137466463859655901218084665860011859355249836206208333459913295269850526086249186102492226060576134832831474153268289487463032200765025510403046254048562421252979637784037837289325331744642925309997480509961787325587517376036545616789783929166197092969250385917914395677280681244317363630568678987723963029754798687492840870433023315364852678341246468741373657322071712210018071621207091866500255165165639942293430933573109238873520957357046874675089516016480789355466468410796378323636462233562771171802543429357631803698704643277571305740412358312053994883122283947433763587882863074171109691582364618773889113735719778908528281394277995240320177056361470390848327314976160540953944614259581498794935599790713648270150069242480351208080921852814491410332011769719083881510052825844677628728987377185155423763932697129660757796944902601168169469884246512813454375165174840485624753528552066311181639563816155487386464811278055581449403060695316054565509900549127759355965179793328142995475324323465186948076810713503951414278811716951026184334442729262212059028150601331940424980238457694561743308959253103714131203249339370187423392909559831580274565382841294806520022606969170394701650338710516391059895676666569599508242139754726262407591392111543046696598105231603634501222893933239456317485827400927063874822946093125676509485953315152484474478652398720474952490275598299638057007374878292535094767060904417057423904724675794332543939160857731281994480137540881027747721444551282402745269560634938905157648452820675383539416347784013840216064904115860079857935250216035571261270783199824794054598502939364349455321009114462150913727816088148133426336570410272282435797542254515178303109443079498309288238263809032253660053515273560732914772394085396159994655020849821525507954839174990713387108922291530632455453109559060988005094393280612758860795052036351780569699889576663075280982867345097438163346859975161330129120906534164750272894015537870162566456981635127725339632988277408043038386338797901317144354685502437582733919151930790324021002799032290136135048821639297283229188408067298760480972139444937791030554823086188263130483697438289497704931369087866480862104473914290887296718473359308944235048301504074844330375173190136297018127549261803328270728847963808644755358767552373546472773658076378380442016028377921419580289159623713023940374436632191200392351926180697648739227916998437631736638977940559158228073705032062692408778413702999317667317707303221731732314070856105617304993358228045087474288791313523092159724185997703063970208853978916072329461354440143353116150476330676484412618923746558499974637837715446930252164723692379620779390047827952590723140499781474223425826143987487851189896734650338238349766010400153259367088420866041876168754163097435301489379703307721361283778692780149226835491354266967819696801381935304114211994087028074904747118028912251157670700731495843674398599119153072401780822401246637133163011889271855015691650362836323631769311019829926663134506061290235342262203053419933002438260226607164528032853347252152265774756063244432801766621678783589162384443644649344046610022869640819610229029575560705087215760936030088289800861117337947440406090528459926934237745568359861511075373025523473400691556715618503350729628223743756204744977035483275536947220525966296566053581722628237103363466043786656645231770126589561107949001248145295027768688743654829823648525164554127007335759845922917224008538750561765222382051986219464406617641679996217820235113322567239234712194122091804774513208579256285987401234219422947970793846104969924247625147520946906432252000986544027251584463946007569726785205357410626286981374424984734778593082132723133557206462794910354128418468305070174270973099534792132364144955903722755663320841694385537300775078935035477227739350235213913970040572763173851740929336445909939265388709108941602247995260591976905694029569587982874921820886380597418689795910213255726910776026386740329905098221462284490045368741613421815274054805813209406843332353008487776216619878200764057297055552921359216863166561897312372022167923775194360783293927217119297148381926397226554106842130447222981482252487104353110089118650902719922048044543868805417549727698309505508081398778544604214434999918942103061679909717923286151619606166971427349415290937945802609355641202618071719738811918925893025261574897517311521842610300677990222510685431860015683672963104709368739473012959944644207251080372328668638714999410893684193024506390882450711150174563639104277004382000530107058293468459998370719369358711648488028562029123764674924777726674848607422873833759983591689098669740209882834242643058084054498604970943666225581952710339356802638307962843928204792725264137634463345696537137498124917805564869454407966570807116738936152335579375042216799446951723661241893342280158971181492109899508780838064330526698818098258368176851254274406741224392514457239419925219243291595982146761016741791808447743931779917031125643621953742553197622491881913231795336578395692911123122479797691039319088408034049175748372635189539066518037570773454435737281164290060290094054399090103055482493342575760138040795229245543189816766901971770474997415113617078060460594790500821766129617732668867607074221324837401963245237735158944120336290795698097960405840361574249311593974698612836632821127667794872146569110804156146793335551985447446806618944745809244469415266600772101028695927436021694837202160608727127999991957948106261253739299840284872425750566192649150722860940271997230613268476513058285629127148331643122781936210514256310900383500333882427001264647281761963619443205351896763993944452823692148647985666498628963043393374262178252570453601285127895051222971528237973058784973389546037726687120279019836669323479341968747651366768415006915844055397961896099635693758009855353388414312024049044263825573199359606599525845913494898982873322560725228344003991348759082195954958839050436425621393162193567714081688054723420280317907372109643685196012785573264551647128584817354385136507513824582689576324675980595720997111454164230841019407314772011450925692149094720095368886210248185117027703005915734795167469765081603606166499088022254551617653846191421411060672725443800459553450618445410103917574849175245783670324221362485342440658209312251181156638983357517112392118424566417651423522107211237624535133358077823743259961873505340204584131770948895766527305890535297989503446722075201241550652231223217126302900844426566335595431218312085838718102583016888426122149582414613055753717882216004709199839596792756206165311024720215545459997537628344538742799257432315628354518015613610257155597077945846402552074312062694759965846933811047096364689709141894404665695355256696522119078206468140842529034224578253471477357559345208299400668142967068931728395309369753791305274396297013212944136183465358838397555421205379661897158411053809832757569691906772153925988075166147000084100299642144449189322578697131302866264641352731065306315564904972614169509565213105760107666395941514147789771849086635948863163398751133030194274674857970986678655183260618925935567786448440668248367319832374392752006172552589084633621886391104828076929542602989412873191749045679161596123434314736725080641206516118449253455320685448422290192913260862963152020696120483934748776327445344053774058650903963639042142261416755553078122310794603089106981281352724557057394207532479249727552790906045520552588801312769940243916867557768333165955713017735342603486727465432424515018827637218306010380406163483146869507979459618088359419946702114525643746339804815765896289054505910824565102670914496076101421798262748748929260431426663947950892044342784494281910339896928226087800665118059060318920093534796386243875453361813621669193851536426770764567603523335439822035040100001775678738830139695388067002892688521049692210028155165073453713075794343349735823551227799679027265786238475732835183031401452689554310671674238595040974939589689353908242687567373373893559126722142681009750563593436753949740489601006998479467339858001539296598493590514721033765465169809258953542119027014227314158424156996520472867533761614316496454343671178570408938684818232053076465103207702389860037590424706878445536227231037930012799102683337096638300197487527592239660741418122909380469819349535296289407531734107978081097214541065243788188133391859893177395330350702330754400194896781202102056538082669711689031042055296956124428849396622241935450217217338289661319825384735108148386264359550767036206730607896594956573887465157020102236073972452079387803905524273240779505757706107990419544422289871740508444660975641477950202385844372816626685436922225879582808469856129268766117403402254760807544871796756028837909954672995135911662821230766048331997341929105400130857689107807865775592715122553140423116787065836931529453645514360939798382632186245494301153133317086743367508040684401471272448282059832932481703840673076493192585415733712869299259034498278896907624619549380588050787914911779707588770922546224753794628198717358783171120400688010363762578316755824541910027743329161913382678127143960998281279318878770565970753938103907848678628691137169233621164707787487253333045559535028981145067475424938325296542242645742276654558084566664824651833453567222055266889881308415079474952238319214506959979721756324659169919993097152453336806578818889932196353794096337898938163860984408619154760181511830151344141781950285239217708189126962004850031260762228817567313810313943279318774875797831893617383121290933396576369406629744580914792800856977881039797868447020396933155779528233626253190447638450528476375895035611203060626845369930288148258593694803369271237782373019268174725447380134913099215526356688727877422410360536302616078743332088089756335644693394200929082433814589457282666453504704238612640799432242651267428302472603174869552102568920694221638872288818816205708778795082824371269527465353811246208626136932478950221954657161935102570332140204846678829186974025136628026517702623296331762035514469653137103774454678030872679346080431658003018821926853471029072827366782744051685618029152525443385930458237420615784697962114662750041953836465533830023519623750668043147302891123939258674325971740219514673167293626570628927571886021473215928581699813793951131282758571970964360844948085709451949851302451117661365578872455257555451897250138013953016475153991872765202819395776947867926708672557676005782730223220700458141626350864327197755678498072194977513733657791022147112630212127268810920508493845070508479548555331548153907536421996657979784931107680890898807193662784329087551073222029775735019717901575487715277913852609544027428887757155922092095509336260784426599319031102386991895935970041363200885089822123423762107077834412696681506760078857436660544936894125829999677985694537782055633682551739515213680983870769752671592302959295925234115235059436095825027746101563210372635284668465344024662295995199255002218256443803822717472506148475365015697614633650608793763766942384013414129865754890083789845591354731110000088851272702745411750038634485870125864139217659333451061002119554353433712457189098700039579999335729585764323185701619932886256337643053029513716298988293372338235518654289861734186303110161499021407516867992305706139421426072417277658216687956218649658893775807461011062174874313446378043251619762019826027919094105755119075197088042037516614266054067151024202046963251430484672963147525981415101506822197205954165575637958191389797293745177803250037985710104716890000285718405437906214138130998954493743382773435689811494155205757614968490985858319646316385623883699189878586250753152003517805322293694099187421472903127839318333815448776596831510523785287389130709035972076067192781613648187345037959839389314514449487761158172585765236349919960096606622598857809103399214489045730910488427472866818103648903843315153798354268681681726407827746277159822993318383256699993967834815102253322437639829172350754973650894319353369078909110468900813000455214267411961695603424634839316049432013251791870036801114800828249344024546448083518247228494084689269769266739157552990791839815887969361532144862697539078393086707450482675220573394787528279809046042499322433229130714054766654800367143570827090289497966623434904053723772321993407461071530726435257772216582541017367017635115237861145483004426015114994120701541600107126678976110311122635044047922336351528681144434228623581844112744692898154012779543150121385886855223689401472115702476434302158980724463711811837688290462240073993987457917174757259618633510357373450506125670489813206822045332042237405199994521849016687508557689864362654761148292506478335128410823268485042455423162124764113500796511838207660678972098152604301411920843625665823172844646467495958327784373955851388243053824097637602057308965679661324167917177457661273732460368997078557654801910013138800361503339408809232061341659381470137595340785541068817860976494182626588951775903680410996595214361126505803084106529101882901220497931149172057156814432145006258067744850997628442322853411590670274628103687769404695513563316761320984883587693468491674497138258646542968099274704991266630549333168853540117028308589329591917756121137082202407596805399345291441584086465466991888902047361247753034634478903585319861737656690765402081850271008895893685980265830354916200106029833424330811355782648099359196767616740527015055603267407913037576511994370186657312306422803199239519918328102475585353211307743530675270077061480075140725331920599981048938530209257958878084546840273318677061275248670772540219960815420198951309346141991003270130021235910050773609431897653371890794504592132616489640004823671596637857235668138082312038360237585863607621595328486567117970786040631947484951578902184687582562547268936043535167648259710813573953624705891935822530170938915768939647586763589070277804766621664185366026926796508648874595925743726058985407254880964629887605775575214250532718469418753883407203250253062989420069780011770943398439908278179198632520796690315175103602793240023580921070402512051481591669510759193965383263607131819373291409641880047647041659959932377678218344338439858228719045815771486010906149302807037506082759775927850601733161252297841192034614108423140763196337566290780865686561543325208980106677957526235374339596673740817769840732422932815463353838725112508224768360444934685366893431000927808972591344766774011024681362465844835085340719311873502291630604037908593769479813892240228450430624928797094953341591414738508596724617583587971446682577289489324973393380644886646160152259786896417590615449873018667119767236675913682937133255377147773496820670939367770327215767583077116542718038436425099281661517297768842099175845550895223476839420158186467354182915503056739587674536968950120305289531073026357728906439847120550708147667131000466223830317573337154439738605555856291090061426329869486457791126304996437418632228906397101667332988244321885906668806135474415749313987741706194908194391274781958858789261152384513742488031688225237991487746224204510075170646232178163696753030152428966292359089049322266874957572146783310042773651780804205930525006648490384992995950721076960235513301868132422011088835591904439718030349094366121860794716483837009577288775998534854139036591108636416692820876575838270445852963717685529941025827131719056913751568833293193800069719075616848211506646657054055768075214473668627191428149733427651827863281881652622302525279368022687262309581207325665438659752672582102554186269932291066051242049259483559422131049933908808840492511215100968819898113513379048000850667406084037976153870711225000682365061745379811436318662654551300562723170044750536784972264202759273630066394864546020944941186072632597282260320341396045045473067647017625325376168450642854865571600088155065925298780042714446015648635314885991827198778882315090128290863593231158690007906954781833348665776029435982081147635588194246190348382942621117455481670440147087527416255436651502094327602079458730341917779019215080850041902509655467625950158649499395906530854122925986605184432076525677329325822058583318999298780035333439304768363721525434085558844103662290343353981226219801021956912812670653972168673815854108745582407894174712292420530962982001874980155958328796178717891827096177864286231338014566840227755690013823701177058469736272940409238105312899736620653044877262753767074627892831966833625676029739512031049031343185171795854203653762520706880451596984253362470761652525817589481976063285972835285955048000549070823372576278042084887434665484361124897387117044580090485202282788797961627939811680527909265178325970324455469315184115175811903045113380232869600410591688350112948568471102413463155004665639665323147787034572384481908343296612253201851819977569990738970221524885059969170011782821554027718041226845860773172191007041482908838939391026627237488891723848469630433048016641587857583570903627906156028715871226316151782341661038813376317130318573300938296287314951330759022861551316865696007415724621268181436369717067395565672027535275049188893536433367560463959418969696585656872232718768148772790363852319437983627821662471402853607621202297044820533490520587474351470321332593273783492844310735854089286063450658920801829586471732876498600275526289622365553252170705435751039624434161771548355460384009325177157050320909144341165415077419805585785733878369484667140937490916720579525083636525507657561817278948560989769115966074285511186058694619914030114933150587191066200776650368299675594035071800938804901654119172676525339002779421802245556426560357171822581744338141710557347754412808253607822480409239151708352273671698511009595757841886157423168024057030353683510928668063305880280526622249931393685974683055034410750607433438916290339509095816012548631711337071530784385790788652097671149398251461623550332163494566176776103080988852903551899028500976134876969688689281852635998333259484444485136232898306423215280671334491324123318777555793182966827813933993198920656781500998253986318919592105677731327154176090287135342988342682172830574795152561920872803818809627817810217446725931499826270417782487398131128873783178076107892441146989778687793555245001145867323869066033134519238918651392363258309567318343282863945280794497099464075722733125492080862056193412285552876143508440490502455457397995748806731109991222333987503910646940001980375125214833382390573887346313043810428340206271019290460312566689188148614197204103368130037560020045315645015636980384123427000043306187687357739594384489743170426024574765349304976902861886289356740645833474391508877979767037116547347108293410192881601546523229364290441657755527570744349525597987710228024515998122023562434815285799605003283794544478769556916786127257036125179572427450026912281476235814423939128313952914361730557060424860913753378922978056168184724973002351866596691884812497962561546515024015188576896621687127745559291334776225948244618281587978582796595977964782997779501062393004646582897068311839214445326933586458306780930589755775345387778480257214247392194836215591413268365812119099758485796958621639070678309255907455013159197213248785691583399356492473617062015124877903736202764179562966572553925165826192441593937433205076216467697130211090962043586378698221231386276468366829957385208073308238159053221899396693396959420873752179375258130996545852941888999661158290374024847244750270181994790818128771891538677987727374054122657131642355267735662993169913562706925816277789476764182019910555047215792915030276794232382995283097722266790170692470103002944799101973837483898717874135065291366077020621315979929454360253274370980705816748252378848302490357621431433082700478833854339160976645628537667749383682410353692211543088226723523755718020212835582494294824269066780686445931699365794332560316471635393326812193322550695976547816820029234002421148445129219633675019167873139260667879999778406758145766819044703058004618011295373243098484401698476090258092859225103319332582779050026567997452033129907077003903900930190401929676034149236527451787623235599757111288285574513058158376950985586262324538999569410822244979316911175625019034472362202911969231927032445256079921782281088923193543817942393687013958588047228857758725095760068997414245069137073977029522282024460299275530587288347518553956178642846695462436986787275786968377726205357504104212732490436055469592951678627618821576997507264719641242030366430198176333156503610596017718083779066976861682180285777295256468301063484840988485748737050941400672703814489998444774431115414396175343853297687541261550467752052349182785653516419552931971531960522017365715390241813464768224990496228836209789427427369175981548567774367893716993439545279443396799033997773458690667587931624963940296410402491204482743288886258691191363260403969056373475608534625784253481693473352099763364903111248213032051545735242059829619337317513596029480825360261999518785275108590020492381495162115652332303615067135934086103000458926455363718174119872868347545106886205633243278312197092702002952788593518132566528826991412745891637531681757537977365271224444536759334158043143536095554680637776035904386644511095145765426893610810088923795264070868542135692884733839832635447051886374044359782569222220889632716381366375272976963637956110840947702482190207010206241293211912219298205714060595658209843973836770442744739298722974071059708043637294934574866069846540579866517925982476961965495468694410845857181914101809903588732495723212566018126707923228100964381455959847682206857656298497509978835501838214337212474776582068248502109544802500657750185329578414507642260760788202765113335309885944488385106702456145737650755156403579233327509777762228646332663055298907156994542378343449588057357970262754842800867969699061390229275221118035054996662673784718593006804969006798424788693858005372385519468420762580316566735784377430681830215137293101847527361797894477992524147395532578091108873162248519582431449849103326105588080932981116355275720686700863626259270780062764919380745386393779796501089998402665323537193429957513221202351440075506799853989768273617964934014829426520615404786326745455758472202975546662976339124004877726413200950120094011787814767393171345899709882488866649495454725419410853829921345635278437817123924969601059684714298603040549608421045652778925164788426540551309269857716628962550212117044498608114547692751479544477768605282416291950887571767857218436726949866305113551334814627384060884239022025478204565303118748291897562801870181746352424193760367577144259505702944619843774777717454743140867482079583331832514941289053771860906060225477005936484739079754089263933235086820586150936129891327200725128120145609556301404669324158044289375835334806903751886060296916570345172605021211752788866759314017809846222702413814939818753620976639733660746422640156511980399396132076731076477842693260580699002634057718463940755564069134206684307974098080590035306542597933754950147768806570202459566046925434990717337618267270668866875549502698140308319151133231733011954066963463070087831110508445600003904814752850709615723084874172202279738509481061209898637384320915282779823324266690313587298677854809328835609092220357608928020259458956300072944159355762331093978312681955578408956891189140211435494178908668463092147407920778345336944371246874964496845486740104373548956790408513850084106026709094575978236785352961716020029104345943274648850198869593823504886846886795311403415069625955972788049528642712382763216282752949856245059857373446648123931351111868588237224920071938244757249689174066554848258026450812954294031464960038828383501026092390914208987560003336663499881840603605565470963596318510399486317856086557838981865834050134615526086785968096846480324990173384237242635579901861037761125949892880483660269572956253612326915992270456298299624707095864279070731796408234780782823793379532319833513122234668322613903873316865392770407748872085493142219944319458279750897022292761714828800139686205126117406686308861658893647223400155311100554844861904559793721102571363079151718297926869887206017025678699034109575145593224188181890793378860069699294288607439920730387542684118833816489747340426257735280127285746701786210865266008107891125218088200305821330252706986921391930866625841009776223725703368388945348439319164290958279898785476170703344997999297247983805513269041638342647737569545473953725621017510330301934934827141352355035891788055261024745584250580083426012778033176828687213924578962547723744480073129500877989497968592509771113408839487533536148534339326393515922749861241293234299870531124549301115401611295458486548519139728247690851758859324328545094274101294893233335641305956683933255780988357380655769363672856755140765355617435550367476578207649118664359263425609686058374954703513158761457199941029914691910709482699673578019697347842184981097786044771709418859918815377652348009344587931580231388166659929155281196990969385849074953222352412515185000139061130352349858052467028945475944794787573993217566155098621054439346897176649470557868512277208432518131376154825260931771317067208726456000944172654976334492126826241291251589355101426778850698551216968616499771052966070160561849859015797823746112914422373983142160032035944618451699765034740193696520216971510557629728366837341595208373216346237148721262869216275055788875936756151824024978313329631990145720919398994724576106675609910028341319815861332805943617356821202181087045480067026413397005920113806856017624496252767848259273281685636504140529711504529925057401783490787020200768813383665991846509348762187325379666506653938145995280541502622037475557407681782612931570866546601116194631804102794740470113613975330084293194775688659724784746794428024675062893978274124729744397238551200024441112733210994243885665517108979138979513228262137740277779930170220046435877749069555403486627103577068958606415297914717549885222142152965284221170276293559368608888415067513326412080214257074668676978473948865902461338022249275078221478076380120174034674296375526454020015540354976952163398219440508212195328616950178634573836832190820538318087073985311508072576906008963664032293193426410778201307877541780212865689428641654384327115885507719351821605127612401940505699317352569323824395308834799079941837777185394082964016415495812185374754268143927418453537759693029182345032500161615382366910571950556570883246383992704015605057908709171664451514913361161516451582969780671045725670318116649798631840774985050897317756317931802519281236459079921694927168482243835401141020153237502791007647236054470430615001504594320680725534521219478621177327481516688953292417003826699681845639004726745993615471937949369494220539761352210510360749064478818154776674224179725827235942743459146306530894093299304669200913136422864600772718637937941960360326463264968848044685373946998560183277799117476130975432309048197388607965801372590864987173767148249790846665956932719818493294520982019495308220193012737233370020368153003408058120906561894685515813409680109872160350532928124016418509539341071814084140361900898099602135131810650904146600627188834586258105578373622409240299816167335532837120351056485646944941108190383089605161353421481002366852451371226981609835901689497097880399057017897879815096841777076780391616930676134494012600017137416754633667833830527337859306148047207972081018670740071734334741821488045087636289125130719799936365611973425445720654798336984445668325679756865333222244075618201217721971043010120456885666260708281554693906918653029996008405667543505185384859772417290256410838959455064672125431959621645118348559374781875761133939618245931307581205369391965876996193934659081307167541666950677393923387462727406035998613705204212213549098232473413288615449103759454986077117589050932782256535566110116024758760149736867796809604014319313147321337947043009622501063637095309283435945042601314937182010877193314368589868009572616806875267863057406851935334562005855742501250141694786078595648441534477654989623860034304254220725205239628102746438918205918478159317470179367959879277983327410077712299330523885151356955599613356238452575907597371623239514362029455385013308731962855032467047808734228743129183776000331811391277772026638723039351093707097745974232547316173760455258176780404081142183417219986550877983443462543138709975730735209347223794384735675295821574924232515391508465856661144565810233028699189703445790870693892675790139277636630836359605786461787633059973756395205727083979121309850219740948159659810542078974623385105772583576018280271159403194987480164974522184163863203089919146252765571517633839923361156994628153475057984241114186758538272787395770767581980458251854868171300805217577977955158869286647749672606715056721042075882334707872759793712882755914594606411931122278820739852006131986545093439620116217737886225454827572537321931356021983494926852284390084102487446952091306471512071683577286709064358929338252462094652233661041761027741141901845067889005191194147357635991349827843627817548328562269619319576580729617673263843543705875434142144857768749880880038816299268088221889899959122365971944465871731528424482317554760121961424952084675099553599702028911483115135474746310703932318525949923486682114142012716152554053816601260900448257051808875915665378697180870258420830364836994149103347248810484108582904459458924984543650387616299450711871665731346954153087508125495826981302100833248395753754720217900793998252803013923217831880895161222477324422988804463398676340899173128110892666768053741094952113626974476555830037155123898329588017230758471229561286108444400276466687061952250335691593598913229005714962881657841805640763569660304593503123405851585609412011670584193667087834080943857202197581515599098989244976355755246203543208246348519125692467532737541562727608733617130596891744136704806253526353290576169912186163065317771868433083370287930546181754145602364105367003916509540386856022345459671458616013269257421692584320409753433441099181684824036125041952038935225314857865161660904755961631653343654237521464132234424765204683476321687934131034289590957860292409601056048640163508455078136697292716920650993580201501644244801173779813577780106131999339516921601279238002797604182844360601418028116289394416576967219243510308964050026279972950135096256427764521281590218319087167955991556102122131786313913037790679454184835506429233344694527688652877315206320614747687663542909388340659247494025489695203691773310453542546218569594367423239159840043285288721837844019521903535114375048955905659825966923153699209863628183315342483502504722259584032961768303144051090888546563015107253536254332499126794284399060568817982988580206195843442410785594742954805384469561432668849534540695905145584852579825327886497248729819870828341989298975682219863710217977459577062342317801424579822059340750110025571561241891351216624217996033026462841848096317930660022357001913307531294186688863505473553088086808475501327956295871943854150180815436611168047959108762296724446525581548801025465358060549965049431521189050164373969700512936418572732044503778208720953259849637627544789884790701942902096364016093281369066234346055624415883009067460719690715908089892450693511821063841098742113163400692944381343301165894363146496516068981810585564338328806046096114878951716467680244508414923105638807135499558177558740790371490838223974442501115995408589385336190539952104526064451220765565887416181375976913813882064045557401042106448075628193376656347779030690591403673436051359520843133351540745025604889901547311676595679414632346320184437083900053216928694462785442373297828678607572506090515524610768614281032325484063352232511780088740547678313218936733689762453661970853247475554124946379654986571709072746401285365944600781061801489335038744088191721796689266181155457591505549845342478736739872275280780894374145172357571603614746677882230434981954292355416320881696339687656426776869531218470703512370306326127425317528288131654538769967669307182798963950547903123826129109435511111646825830127871160667669466703626975791359097645752207969422185765889995601101504081760202412324560301640285495554470634615128654430888663028835357528478043335191800728344164105390015698833940105483230299821961621479424875838738749037845503049216269722791613173830622791754104631304659917212900614420864476015639569473249639437038037863681686256201713572091715408238952710879433943569406637362328712043474658875684768916158987095291141644768503312786472382023141874133915687132203844193073971828429929140944615814974133518302361136047333745715046373159252196876319426178836532158574866011013523557049195591059926776229569511113434768743093829534001126738064120386186720375508798647804385273223981590335210510810362751474194252368905873487779448610644970884139428597409219163603444845157785972871696198572520743569321279486587633985314512377492743511403129460025634658567652204113947551985615175044582368474491087571134962093735375904247865015480949836377681648667448349489052294988893286558793272765858889925689204391516213195214648063994626155629523073464314963213073291734278393128081015405141798147798587632811409197479633458690374373539509968922401704818684703996977050496122843083273207667565709072760882105274061048754208736537814660912206235631461554836382067396756438523464140420628828194208504344990319933071233166654382879973475588586232169935334871424876533376121968680528131414968087309483383172444973620990740711371499697261908172150735213255176104306853894283962326832351895526003283772782621521196455934361716371092024952642045402386207379826579643643603435361960021688624611569560888056689215556722381173064251539412588480679684005395874276203097331321666350276700130285736642107566129961210677897916415097060578867272469562609151034753713185597511501601637864679464706063093501925486335679848414368487451885199918462156890237120195447448134006292723792372281518014118336816251325841569679892279984071151334026705981555276248445582588349934586290030666331452890704563237586889534177925642568718474904053214806421449252228058428939034352658583392719881408422351801737227412913388904793550618231989300018555468732701603237351577402981865209309623685881893871542333061922462202893141722141350977803583074245838350352026134051793696381475308943750564671802112476626615144858566242587851719310646203043921579037483449022556735680652923426031617203595064576183807180606464081937424279908168160984524155854280974291625804340013501839088200035157661371513611681452467272531498216714903557497264340338019202587035252339683739004133493149773833824681809196844134324645466113787559871855280087687963298551813778730315090144773659622964934891246991349501418308228124235628914383645845627072776630175229739842177126925102565980566828997679898952432501470602985188379935519310457113595696218589327026059978265155033658848656266305535341281508456366408622902404701448451554503578067664535572711758179941535538602105930174670693324102442699328105815018843195310919512551009336521150320118228906832074435959122326635522807159763432076396183174272396770450981128688447911389073061749699728670539433035198846114679723071566634439513791536707636602827647048265750306621761516763017228101688406259550120321331519306238974077310552545386664618180005795418909752325115608223203744341095700337326757584678326781271841047586904073651735923682427411487193594114699315044542578327216960557092090299390133034563951987565579004599098299965410579316330296711545911019622473272958893056661915622405492744119839542821951519699910354858506767283946820181952863011520416287345464285621073530581885642793295777725911357046874775611655825303457795124598689544490188921864152890932813218833209400640706283362839091698254290764126848358479096193319374541344207506093053128992977284660517113524509636777988108674302590966120094139529908676373956304715047177695075262940593822253618765111591552928350784100942126635362227360024615794698342038462842556069648390697111459768050711378307372803303340663020045424562225752749861173081448970853531523854916311291313613824275416725553239696876304377976495596210722829653945516016603431224050516123483269980214416058512960026307854110584277482849293659742158603013783748235630275641372852830681270156351090738188039183868606004525035116846025468638982863789279295494529787506979281593735551558095019308109524473557921331452526844344793567286730366979587395408715428763311455263084807221765157729895349011622766610719091258279886943484962751065569673612334716510821534926855446805958492286946893353427492586828163653155895388940373792361312186403404160608300490602940070176108238836150498076805201436405318670064331207998285608700900305151407248452551581030307550256001775191507771351399991634901560338283097782210145008270392801503453709241076025928431799280722956620752178869299833382005882362950157683049021089074563211905498670360305148339175485533339046721372264645733841520153075323419406221194751159311829912792874228281662966169070721534425307095324622315307281324724106463866066888616762232916857900792503382919172862611854829389483568569961848652546841455245502549048295951496747026596824684886744075626234638711195259493260257617516867764113359288476443758197808292522580152812805572879205029230980644119555782485709021328011897437324514134802076485021738007123208802684256755253932594627580916222446035532361635045027998946384395150319858484942178121262405580095440462598159615605933385684707431013991796907807906945831165152718845248016305084164935929451343685175563657345446076908395889488167396332791107581740061333503819929852463831270766126178939948880180008084995023193727934555977348440492743998798543750145029332859069063479030639046847095356457970762031361702891577996050130771842126713031606204039093357308200203940211484395210386215411168635825297165154257414558919851935491437662967772825550198072270240731501332852252108641684772483426751125341950594772648180434028596097084926647484761285694262554223891024143882951574388540002085935160638847270111743529970819436474122134755368116865220120361823222881489451704971789672312951829214459324465674536983302011297526616227206015785515777307633030669936442835357111175161453121221062118258177882559706047054127677365177901572274751010998016455148251699477921745875529802347208467632379829241910894933800903599700879494487163708845213457405535021447180090547744550364078222051611888711913320478490273062747722411500176621785025331062480799855744369373704246144064943821725051169720217074955499447332582493529380220450048570636084723252497478778114438014310448499023703241188582500638810976305881340798182143498208524632314694350030375480642132410877564844202249136522724206841302845264235232372670735968710629896934657807809688157133134665136717972302043486444902849883371433465660311684446552541541288109952064896371483281935350594924067463910530163293790194795388768996354482258295309923089735434516270005553835524957580637150331358243107679565205070085718797705490775392292255503267049111586075096095639782255496575396411399545261885050705199333114081767346648771745819203949570690796355553299965961201396803765843814591075214216467141776199750036919875025456275312625182105823260370568089929467849553405375947229973749022372552357073168150990117079995036183468360960791954726430412934610388831748947497781255533943573452795575478391241881736970229525016729584026968025060161635621421367009949565508292848781462198609419139142896070243511269827796602447830065360536843884425565407890245550740526700920065656805090572161276464433556269548838676394990633598538883162117357695063898190722596917717134516496665149125471981197433864277912195804254662356881503690383635471406965339370119942789541471670105238404453017634381745450341421160577166608457449900788363034705355264811499175079576253127520901207182399230842374363965694834253473305470853393496966014922406413691885286160171330416108830321191313987283057362569506255879740623789494842029111129274873133711609763752291642744871853351635095565198530899085324766272598055153809960853364056023761602138464500345857022734197032355555371109678470763853698787726894508962446434395263821117840323148573652076352874048812109410297586361642976374114341416889649259299178484559465038006717534418501957822326564859965320563248741346530766407024963060269772313865977068870403382487869704838430742394798550800570330031554549280686396491805247404453935705977555460792879644669454472818598836556491061627952635194736653343489212776113808120207527083290259035704995729554867123395128365993514013590455421438106361256256334535289708950361551521529409465800059497379724917813032359275919762220899751636540665994292426267867710912037351198051910770829109706449694400787116832009455546387941386237060333704156453788272082868859446930103194097107023728027385942941818783670578894328366771338214619035379992245496475879993696495979622668591629494493986711225600046427284365677470041433965700923917500197707171441987885853132903835025932727761642284594367025047980387732319804681878244576810924202626960282968773670240977779361580539817425110240158369567453957968067587417079657473992856659936489562600923120817276978673743268779603101596388827182223556458028627309756693814645978627897303558771846185125212340164072620569268563348075579228921335955425716385045845841813150504674078331406737285700806466256432823677324010525819590902309875984392430840682328257215901433963825475620781177834064203820295757367021928564115824631992744574011184873006320201402102236062442296468229503852306420586479514046368135025823033601712337201153642968734303370136661326615512510244007078525103618560283751913039315910489995201623106531752554436612115247535248553799081655315888332707255974840881221704573791255236561200421661040557580643862849677015852235637576982475659801932157924185674197895731758153899475050197094817788958285059238344385027795349825495207234870951452235576731264467304666855100275143180601472490750406015676400968502771546781773304863884123238235173349956823027852621070745599064437986351912620223585183562102619433556551503706199569110039984669691610495035043844876755946386657685588985744008067366919805566379533907241237245357788186371272757650853879030829292584798335294141284732316862567560551503602217968267165788226217946266879172366195324283783995171265556502310008153789472346651621705467092589658815608612671943556120555209690830973493682657441064040728438981866963467713097704419160912767474516334008331518743177120397250750152774787291768095400774877427501677917766191586622619726956190294910609499486862548495445528357601049989834811211434835832502061334434427502070374678515861156221131426785338869649377443361812631797351418348118991174390136502980660309038912295188448640607416834944266648619920029173848599654524823990118361003486430983586570260386858608255451729555677981668297358066467481073785035303354231704267787896084970130158130094890174349468643956314747445925570691452794244963092747882853882765516535623010260718642987859086596794299959833176790240012278241453782918636465408090343198172078396014051897537937248079110159743270956021613422856151179754888516383011830224261471606692765495089147776763502315352295766667421156156625211072547999700779949923043476294518332092524554350312700335630162193060544383568490987913790765276494867204099159320486451427938356761040928883155913993448570983256855823764819046845998490225462807971265372849850180583699860253293847034053454330416863499831121522308290500931458510255818764472993663656700474236536887420916534331639430513776498237650486566448248641175999558040329299068137276044736527295190985898039817440110369679571959157031870178027475169322948425368919951064101495576376967568181173516828645442903954866949630852701028625345892745941733233308730093226204379060307138239446155095002708481281907953295540482286109637610268699961107880060354761649738450447879442568334968988143402766349123248685336247193403728999986351725970520733885933037518982380372640217408251868714825045844753948922748751239248052732198950689213015743699654186878409521864271060764584126561147036157005997574155769221426076266189824449791996480338362039805364210812344322440907204649160651822144521537373225701803821102121234077407498514076066034389808883021476782039564548565375761937589035393024754463563812098020266189509999097456154551509318569683205262073363841626419951160528404053396014213621221917298970841280109598646045194497726115315698689133031251793358364413950982405090368058417706285694235317762766109620207030331265414028615112409499642404589934146438257159173938393974092620749868349939286268177246579608266157522182085411315529333618516996956999114044310928874674856303581293984421202791106441864978082515617771055622382090580755389571070826976086506352914552503620376887936498776578943507121390753625311149725864457733747655346986858056263703269595454977056239442474282761843069733663805266526108137601115518045644659037524626993640544657409463549697895902559301017253395800285336652767013321014168102506099856088991733058374439111171395111362723318226393146785261316756850746827954442240030916091478203126914708346758404043941569664429251650070917125204296873936204269688063158373140875143745930489967006586266896026933649057860169030026958013872401357059091435983145617122355001671216048329550351601029265831275702015587147652975263759834278035285187071180794277823076670842599498536900611181300449546823829629899223494257545673960425713222513917611657032680999870864567597005774985728975339949661875558122528350707158290193725200061308449605715944216904767027497461430071426793996309369909510877715561048308724672322521068896256308139160230879677089445081632659347597862170048036224308626899653831066316117026370012912198681918852895632492870594426948144959362574820839967209004168487941842195805751026796972356778576957071199890493783899225284785001708542217120219593106557213032110325042570551737969090819898387801747447195555431317848599381839109153362587404435268928020344518470615095783759530986358461637927778741332015908306488704494077095575304982818965122378150691377951420240373670859535962586226720747674468803292300222856365275865749041445172043215488087679608253781347575539308789041237022262774155291914347134674404870805400544679427405123709985869699396005712597467318309249795560891821917601759047244440167801516158640467252697841622517137521754770141893112039521722691550987211422331651403375334725725193864537131129972352559120858377192269881948146055767939065921788666406089859151652069642092255231477171408085116097913153971808745177160175230871778896850305685678632787540444905241784471398683488357625376213297307646632140185601997104972779121208325086595136068111085457064780752659219217497311704067832931558263424402126422254010618715036468063798080792779106312884219310248840551411948017173497167843123680935096806464294641545309475990793254851991815322570621179242441007145774150961308254917851031452877428816566892836595612669330057736089150857655046868707130539139319308792330505918797780355616864397933461835944811958509290933604322408699122595428787949672651071223795801946461861134926673911870142432448742524434494776751797967636248433428832729406107067009253607170078374238024216000469795445748091311794311663241025361716804310343500966607918944489734943348563308700156099343060344397924420117705289364906131710982533869558644942877283282728808007320466909255445290642184660934923165346436925782319804072296310828613751218994519391212262318159435863198698272324105473520496424147197816810231511637596142336087852040159341661587154925981049127533032900265644497262659311269298261860899991505576339952306812926325605560826871488552367981969564038957633234084602919069348026663544742070896124980813087548165612354567531575811325757553512458360404645739836464751781184703947143583311711487673846659754327233452514660717460811739896275340566565701151746626143509256104076898337159941096793947897406028754699364175172798836648553431980436910241914351688682362723447985209160888170497155404592245918393616476206096861378545961513905604893333713049993418126411465152137462573263634902050362122278712835927099377346962062741864918313049536301712573727460770228870860157216901472501575241439216725839710998419916290129128547856755017652129005965336968902079964635885919476210468365249482227719411055437383050988208854267335892838071033517689931843180631185675976209844213936351218650212064129452244330760429139117425234183431624866386591697757630107807435373800024258691116578478909310916767237168633907605169249423818993852795984089235319739518463442075024855824061066361496559953379144320057795342621965254949766851926817782212402636397398113100500469145558949767820528134112948958802518282145614925347871359143301495105344809871337896511648831974292808800695026288391347335700820329585482015170266373335044672503308208615124445352171287807645154473146429867106881311442503547001789818703619282861367328199054004508992933849455213739003560562596340159743538206191588752507966346031660715906072717074204341792594951616450111784511037206860744083878759951773870485218731025713481673315621013922114829318229386324912601267583033488841291413457075562076419044407555881263169020327663809176984482033595307775341538456888299018393437026622976014294549934209817996977519769213538639494538894157126417723658418407472232710679625680381886842758342739449480674361232285925481855954842515758848555618004910453520609853771440360634210942618368124910257722730469732246338532305891008492912471486518130176780166532015818208233667578230371968005395376968254908826433665529790285677332437047941004732232605323371937232850793222415196432657966887958925455977108399177935337680752035768455129840877360961918518140663810558262438598225377191977247313407834213648157752173720812955087540746068445017948208928968525913346339166028826139704809307299698876361987166292837253956970872933769179467374337719997891050221706484643499977977100933404390462412393145539320175633170441990407141398071174934861143299628503538792490920736834901223819474342000864282082466085295458568932015488193542676772042312586966138740025649265492061372286899580823437946432090851553865387278585574072927662042577646767778796639381431054011893161660657475990745114593511025644659713771571194595955230180061684225809786372120731526982654050934596370408778617729984423660873097525089477478521700597798885390782673280517058969786606598613517370795958828579049703564910890797611634270694033373666166001095155999250148186436698870284624767399620422882963640358985193703491339380116772201724520075055939178978382491575466005385726764110976784805536805997872389288978373792596283220707269186718866034336977731597474587564484516074039054023270951462502683075019754539399809170217900247014379057320512537165454604005422101878391563563049023341357642953867128193469361127050902325764849520018005432086486235096386734558608258915791819594911741751524064858168362223857467399042691001747069230279499388224998634701610706870830394751219361157776779183409119934543048365829477336022237810548000711069478726917752540506894974012910747046030015236370630167808746027554434960824627027321976423993301949925730259824204537829500321556987210165746501535534868319255441575944540269209705100188186006020757127613587988547386515246342596492950098152810006760117009605479212349529826503813191127145965725119923999536490677288866719813957412194499998996684943184810315703285166686669782375778655995092620926975646188252702944930569696455188497912571233610861491738551203533884975153787125814511727544334346438205373959275273065409497231132775809198191355511042606087295730784616467136221169766152319887200500537930828145210921872435798362662484544243765105554215110991742471585180317407176625906229538782842187944667547999471505446330853513039764346604574890975805984701240174843931336041848991914535791234090129289574745339567137241882143830276649936439706869522237420225373518847609737658057000418495480523166782602031570342388858305162908267078592857699193946249351865047290381152553828304092791954366275345365337331253177792884725874447740977231699360998840044697047172367793739077293082418958921960578759746480083790232381959645105414360033155904863536225610964051504123256742887856474887638330885149865886233027133105535022651550979616530631815992970622326394113977660737752941793924707774239795255377679458348819467935301179108973475256626613973054676550717229347210406664238017744595237930471334578425050374726529023856283829225332516972953983845447181758386578732783470086217903413967341436473795806608165540156940722658669663210959807089593951771140929219995532665363664711848902713413074371727609497508198413813163630546604045972805027091658056137679954967252861870863526899153589171646276909332222623501204991041709330672810292797844058232948811913118218289127164290697700031126656443772660668467128998716236676693780644557740335635250857542823148567592815765385320629338724357590110362735858351600167332385857159931181000980308866732755387352261465082584664278008150865284778290862356347703441091745327056023613674703898552396926889397044780006245475896972641733719366113884105008262443480404433511968714562239017620188646145805677349394619959882703203183412759185239490646062530136038073603345878281250897241653811146386867664203557466409607187394138426919651695409944449355404423390284311565248496598881336693475625359191519565220498792437505873765667456304842944289380450875084853223642840213609519585276673012396278551925247886658224470275927741946209879215532274637344782008027362516611452860695111610689141114089578173503132220897627144968796547573566896329075839836596075494689505594539020476594099583397873281373366172408633043244840143894477392506879790641703069981135872504100292984492697248206682689245399880280334602109600129092256265989711011364399943162775627747308088743137714060906962934517080673926549905241712389442614677128203283362260428544143297644917997297727518744392462395709166468851131280616884829480737734698855391877347777569117559013678409304342143636691644984931318132784886527121886613770863890097104002822978609924667747891450526179469205109092917805783812479642845247901917524741915570657270013368042874901571813857250583221805321962205127492186908982154032019085291306057600348869060827483941705277041918861269650602446257530753728015576720384184390784727699802587477247577290491123044052996885720335100410530581742577859806710018699741825908023674705447895950497278951309183365570837591158085961739495316303085672619301775380339476231034950064497161525132819163515669632401479664193712165558930240116217729389618088018825141659647668690860648137227867614347188845884832429906886968849985792516401362752713100997640385264331953016157462067485152293448025208741696426396357727990834626427567633172379897168863566246745807854720677633388436538155109488709584882031397036747240584847500030240300367270415565773002254695219647703801345958824045360102992396355397824391081308075698850856017835204988562816216341195904516420633498403557912564381481556810563516476698209717689550992552546696292426611482090726368558769606051237419073013203108075418721434011973089477501317628003282678679722282119274774136219298350859707465472028969867966397652104239327216995277904434271603221410055833184610377685338753056070328379180986724383609537582700139816416728769735235330800957591399974972967326598942166027219244183900063481734032528121686305282683043726513495925520722827266955193006166632042895792894887631623910223244008573788190370250115180964073581894054740119792441984189731660325119038834774658614523009761376821553691542465540822893259823450825019557178261544214701509905158899038125873162511179127375158109473035056055397970512602525414674020097595350100223911838262111269582167817002125190700286660542001661798881649367847743531052388544471005808110602241200641546600354679691596398779327781710226628641457430299096663771082693123440180963164629261577230375811191040532160954369561188343090889415395250702639147282081376025495723327986313886254698905541714811514345113395236898481296359959295547756742910799540467495109029619820556093196086748993895675384710707122547003726787659631827476637597286422979993185152909176742443540021589387824378100226925609832430880112982854937146279763225687924325895817417441906271499643523746723364506457097820989791881689695441545353676969693065736317220030467048179231905936191170719478474142023841610178836833872119397828695403411155864669326224868810775604109143031976319795141271766761194822185127151813818124582367573929756198506853623510456871070454696696069032712578522992702994543556029547065124684721582079337707913283754546427055107658431658419619354076315444682598957068033504135433619917721560890023761214591046115070594908252372252371236046119558805701005901252764786486247733355042437351591670149109509854051581326073635624029397376715830971483198364839948340857781314595648299111553066717796578001137340968577130285760784679695769227746296975581254226602677281918986873482635709338560382032224413337991516075179087297149848454876377505831243634136765743448716098726154949086052864480022823530242267975820223057907538057178984422208436419165220696887568083010221535601845126769095101013621598700907358351838287904679389767991072272665571867800833279400288733669881201460077186404485013248557490317563999908854382338580748405317743253772233385936250456871526183971118040355420260368740906679020592142198695509111569794924500066909448532810465448520132493085828572228523429052519253652877551269848043057683103587615356597617810900641624975833585351939341949828159501546207868566104319270524647740039632213095940838217044069307925177272913320950499031765055199258890173786592220713781414065114313786566250532690127486465905404079632815529017220645560545327259526854100566647010397174233004830589344478042717227588997425055901332078299641851451452916787068718162913388000966953624732126493117088665652910909919395704152992904381444001250194901222100331226458142994866695016327511552143538244298519087788054619808900189856785555196211812504896795602838090016381282445304386673436197877152564998971265517192461820662004950596300983283051308887293736776218313944622833541668281669079466512922657318084399917054440888185710122566759978459015773897853578164493308475693787441649197023912203288591239567160702822772411131290246439079178433670759531983681615225715060040945364584086155627640518689446171183953553749956436772839962762485667947567559914535675668582785986956486119696674341711856840516130232111222987094748274173248768568992835814981166661067609018530795241263992167919550554072531350317949269120585134326116659130262893630359292048634099966775254403345105900665571500062825735803987740836156005387315169383613712695631774441031483181144603244296701436523071908292776390245026336093932065129004273363282926790258995153024036778954815725290353441263926015418621522372507438331056399400894038519120957953783994802450022682589332240286023153963931792388533322267557263338977933744361388496303264621464327113213731759770070683290202823001673280777244813487792998746615508989018133818930667742322777163434716855886241300099649642758001789753829320356128458973641291854415613645109284243741262538366592926199953148115193478234192806796446161331407454420690294603601736539336096113618863538157780176881084830716776823980118508646534305852261203921492944242233825510667136326041209675178691291803984309068274606861006495045267160021284805502953594378943219704170663966130515188924094738162059646296558298900864382298784883206421782327802817065579353133322039998993159798802752108388333031461753651688676865337781260211259350686151679744400206975648808563616039424283047391906912843894988686046218169478279963925131281257401030209256106789848742110995637450839166656781373105267520659705908605184555475790027497002499776698793991751341977743383706331129532356444105069863079459367056211259925791258428652784924090820892557444967392671672613642526476426447974032827057616793161186646226736576878489553785325152076719199752482611946413690378943349886814193460999955439378812589953981639899049604169322752328289306054834631244359093212119281427390202180710955376962847580545526634544980775937909196191221894095020405892279151986501097392155135130801187470545674514718886897749162534060462764918828632791106003299766585449271232758725184925454345844795464037650541218864016517291695304619415344066903882935409189899974685493427060054348367507939325016829873838282212650163670872033811390461928580055962265924698192558326383238637564178954883434436222195158742421472853479740723392068154679437427742851484426888214047630677923003002867712308123134344040369517780423212508797072749514426722819738342207159118706128117425323877218155450342085640166975244073342083581631208001412072745515190985567234580061745701845804834383330744677747750160475326542234197916324635770960058499366757321974028818295637831399604235066009568730985218493939559495796177802596605403369773652055182177556943782969917342319381266404582339090394474857725058461585303797225933984177394960057914512418357386028274611335117445550387669014607528017586082978757837588919981027168937244316517097584720605958353099881822864249650779906590456165749540757286140856653250880779207480160911311248449824025630760034465038082966427831953687409122328372828172632542531601444037104553820215721185607256306343963229703906849274319127686790143976084638185171582733058961548315275780677975116167623786757498319431920981944945570402743815227812360850142632694971205177922670422643787066654412693610438635328638153995215390472324287063774974305173529741867155766671169417561087300399927418847506729028576373366775023784903306097998916303715074507480483545779851324413982799748261823982422675546778327645704255388437525823677326336363032163070478160597491454235403122832720500641402506178793613674407562117853593164063536480067458987656775479774847205302328135418431914320768365614932999573845572392843074371142393749965146329243470818224439415727480906809636805002635156924296659950947136374649361003527763709348283837418971677756026325147766750316732993601436655529736202570750031863514578742233067973292429555721082329760556155682582065112259811713492391023635322735900502828674368479445497121646788309642568024030830396653302870641868069593289954687395960783858502299197996502502057198221643011812213134522612426583551712291565131663129446735254483241415555264292391575304708114959147343055557155791572741603704095683520817278007096811477709365346799855706866985079019855511634300125668900405555465093222083536757110941343287995042536132149602213586365443259543704021404790771534079802959466991718066106528085745465494261848721518876085138032468981462001713271623256960014206231467391330607481291171491816911751135941275617755453235878350062468258996796511113171651412125231447306035144496739236552050339829638242247090354897235113311929865470895969245417392055493492407489659729675332911344464407101739338569649405722858618113463703695471902775673583308080941337405427062272548193990014628281601782274566789453963097606389244609001438711541465982868944096828322400708792458481822546263788909817744221089866801350079168066891623308964003450127692537864205108551076256224277376057130371166148560965960620738970760846169091557340395435599304464396538893725560116003890848980396033499530986325730811942135889004477947607909472110298082361306642268045710762081472916030287971530039866700334502545538531696348471455061261865870569744280069330789440975934626597657517515459584738777797054560007596820054381890496254073962723840618572367304248211389968619902342213273165386116751399726124018824161373113376122362879541660183304597188774266630274613335168640307378890067362249547026915595329041487606329237463212137624561914333175052240590671241332969651842625350793502510304041499394495192036280486928896345689310195421968694464153620703704574005071040302016083960263154341180817180159581050599078819424913469294697738843596668252731229251339900433456155858181212593493606586125529365395436117482599035088709132561209762161604358342974691209535358222674868038158693563403386626587703901701137564013484704497746792808566988813362272504751684807068340481696171692551893035794350614772754424325178492098475883265031032648809391798147396031461754206958808628021730526309031095215982409906876139148746012555230816211565757187310906546454320133185651712025034276641030453541137409576844550443808499772280396492468991430801211150422863869257475979733347999649164134070942103261024980305398612282209054545923078510343373646269373481723110375673104480569134599535773489625486304058002771072515968713869132448441069842443227607385893425428276547704312295479406096722627143016282910515111627959174907322634615361221309957905443490615530107373755800735525871720711691321851998681394511986080758668859032268651879087579474191237463616229794900395765020238455726218326801366571052167634842377089781853637715775851811572521206668356623055390675012499850544953258649941445281637681877924242793778870646401067990012927394010668184549886663802484866085593543248438663768081189852707592465537883101766895520179523721395377053363267823367110572740379251679331010254714897215980471069161851032089406959280930198548635060649407528380136685039587676659666503886659841009851883335006771468837696699940683384436785048549253730326088993785818399529407570187950202230401109059544044041520909049707753977451656636740869187331282573353379172828005183161802866471856261097175044670534477491015696699867715753075357835767972309818585808378797284619348814413595050771702955241601350793397530349559236928498388867363194747109596881770063053295905417643417799945440323288137979488945311693095737685638046429596771860747719386656201305736630600171083228689262469659841653275209104703739950526551788002548110094875453474648042732951584270137851448083812629203701778049459826023006859487590401755606250657226003769142036146540656643366141585516656429783613953465161837424682825616419346567841836148883796414669523315953754125209027965415774601265150381432158161426918639308331089694833312408625047373713341599785253555218508991162807436654769708935442909217084162423964624573774426226600501545724755280702458803413239883744427957945199905816611751996788685509454747698572366914152723837072358304745030390987879372425614953873047120353453234318942119256631762553715664613837084304718682962687066137670755619807100347453641227174627528075210714791456865358976632274087099359363394639051396078920642900592669606379653628591725558863315460169991488020553629483288671673106254125441084401064634204200117691209834230193000423755345770932583083385762574887625178849188965254400386765188825356683796614938303699382491774212971142513206172303758914907886432122686441819134995111169891937498436049077033885654905476708106332290932892265188570391114706326428717150404717616861029144090146307435838140499836321501523293376667416367947286050840293067805495775258090813032908470084204151893018143600153790892342320483139023135377761250396452141362786611997271838413203479377552804139976059058373881675908859252729731396403133001796776747680643936695010388922382289209832146824832673548398082702522685812192037145341255144973787536285506234205562545586216629218396155764948438437976169342014835218390105748044311608715656068766974604745122263075821511408415004207646549594586461992400625751718151022103686058914908119119312469572816823112544151185844092824789789962896170703085649536041510551465884108558625945161988256081660906804487723062309862272756516514490846062328683492963168977860790723075931277021646542506663834257021334643829709329967174819125898900307547648407090968266635556651530087451559404153087693151911802054764259178705805296133842109039914644075935049863119173360983280282719097974609103114625269532586250636349184643165703346969289160110644082995372059198689380881736041623417762666378728216273582499881603161353964250588474747058663878926312244430750558290339073776707625123247318391521920483504200612844506430062068970465078481630735940649563839727780106049938259144594443839826254529252564465691960830355872258589955348723365159827010351552903448976571265352557908708925077999626362085327591137901066622519243004300156086427757251475296607033338863138688429255489130090136317239816426356827381784441829823547330201369236748241737637037448866375217239562356295784200920783990528521624171260911883771527248045751432141207684774155981056346215576039506959529050000055030499832147087369793252686507530692860961598810116710878604302914689435356032886997262030746838336705483465747365637708600423367127693181447194800699234821765993190748053052650332588456158658081375392906046019832048740269353278709294250692111851297007342738916887795112678639066779691941317050380549740221620749336842501683901861210676486372410692980429915786343482094555123227990535455298648033127427898840295802759036072748314033213870033962009180505217228297838727662800988788913676240638539396825824570329993102883596944194250957301593146004444215074776794706993878063101818081356704734793157788232704870884139014192708981707796856183524100758425602827968550328920139600643647129994872049336056737331121478882816777709519588191739116456330411531647238386253748831660883771156952101852749565275797910554508663744213277136633370691138196425269386764528166075429343291731636773058047091095998449906577773203363568610425684962561941796295444723797357842880927640265683130128600686148941960326218813193331338079548257834915765509870937270701901188689523427896913733783157923384030517717619565408870737201273433953455546791883803670986227265359467741368714382542280592698858617531098069544298631030501810625283822182820033879491378791713643852173823016799953871193393717564138157031007105476480590047175221722778465572314328519222386920129564079108136301035417385755093802643134487666776445489840345645622037174842120288363887645531459963446687785764268914284392744978698913949444320557568043496796623815877351930705272045353778722140714433420992565514886253951942801469516173542108944027994513314501391644164238705277032006100519674093249334629987627095584374987567431507764590752711269715256893825107969303611926058148122315389659003165390003351820899794528267251125272366844240590259993854233777180896509607363792743395119421115586068555591357305972789233509692939318366190675287250918082688682985311257918813158702080320579898501245624792239739442665662517620063350644052484837236704578005670957079240112711941760461929009907941641841790324345114773716422664097070751863520318996898361306315719842298130215519903064431147718515980860923432571915446812820596111337174672125743765688247523317785554663816413302130042849402459312667205101782729228933072134727115157676828652966856052458783487815443640538937083116319691678488046432964407660388579112469815126593842376864661845172507400558733681787204879969384730685404119329472243502642293672483258593140958046270707439117620799274435613684466979827309352596382257025784637332291956834514768687941994809849123307425704542850171971869923538294807780263336429317766675910110080721506125850015354725527448711848726078630050701583405278368748088158079348472226863646948155987335493878353480696531387530302722481556424074025792750352339871658107513269534426055977846345116421350171046977760668675915810727722680958834614607476376201382344341274330796036087533307656012598599555387652650571217379246902413358304453042871982004147532955753119212439217062584842507131361874796708233341659622364650756240980128388577101215791324913880772121627442058949632045738741365187439879672125627006805208044492267830258828520792679263444146793030873964554167549908526329972777963684435598085160133790670852606364914893659120209590838402807828718554310486125614821042418503212074424691663300322091902723907203072323287282735091332285213571064032147380240107089016211309383099981614360219253179744090483583179262581917311498581021068500231846716979992545115499488464493892048179252248646783458288990843047345352977345041831493925345275616189750998691085044425174780982444194414886872172149040377224730090408568258184205442263414759628825361456400514492856310160738915955144948229702465093600586367603465521411199742164495046728298870132826854122592024589563389785043636696338906035589687147313442558112365608370108530456262308214179290349846598787940363216462493901110566231941947987186746066287032406954682094171452952998046658418643387234469035585078103995204789340547173136349870750029421961382014985983565756980586673015918964827662250539601337659915233043743816369417723870166974526824498612411600211707572651848234791486077621285277694659787791414684506855521075841841852187309076157926079376855119003041776065608531970484623654481517728361497256630009363147988585408776982368078698543102921713193459702941055044195134405729311045192146462791912844712909790527886839000723824214218482853296251938779367889316546043064432462490577257465084666758361452001007920274954820538282253295647631484857187485244038530271836794079623656852925466706895350885766328988513733513163456857309814638684521968107215744808485683147762950889216462793664986318429792858327524091601701901836409781670809262448558620271011899335480801029337696054533955384926740936104803932066110556125837555045736406381382984611966364825359210743862571620075374681754682296521007140082369736467371598708798885730331897828307370476587873696054843489226860040529740397911411311560645024249529299119948913216023434247740722762723235210627964298755708508800888284328611251960182613212218334144163200712440181428254896502281489544994004335446279627159633418989057301072261249358095060282437019279444255691239428954418590879787877790883214759883339258182421982506403699325158637290067762018402606393006896341341966314627370004441048959284896688695653295276774988690681719019722121552357159799766345338736833035673068222016727237751434119084220445040328672502671171510984906100940991567454872682820778763965508950477188807770229016408249492275744828707287837495181324951755141965351642182258394802709216149404052290261072800888134539833513976427981990068874975556309968556109164123113283654207064778297339109611413296963168115275076021367685044831047267267894508349225887703250808602088795949936068746775091600463335476771571534099896029318322626538459145256326676788020869016315581689808031181158241475259164136307296373544400482492089037142407775452238256859898686844692774824771926236532552594205869372393115933789649009636933823000836496062652647145421657311465431313845054379772738758325106294017608429820966856064710579026199807319756583248160130659523349774159517852400303025116499596088241283858419393538042751184115842526192058218801789610211842451702505938997696048873425170644549921648908770334831964505746484759565144730488607527283031122839114209366524801428115925076952565186941767234226478631983888476382044789058966828907364337882688700771112521264956496047796235928568565491375008276332601670414927030539978182629283627032636055929940771924915273056379291846613667299975395615004738414846715709281686515448972227365867634553868024691321417660931462402957968407118182998176650947398039292381448248245678752257407570119033751989251812575835515399945626128439469363833831079921892753811325461708588896220367443817505680814915114089803345537302392939038923106565517102741333069651469190870771708239111101684398186453517652285651872836464972470451088263997070559096189538201275521282542455189665608984786964574756495453048869837646789897355794107241322766728697717877066907939237070483426898925071833257856211451612273892258865204021239683272235203344576560852988533763156745715601252507607021155916577931888583791023409143917545095243330492504387385882005948087730717027649634026531101109840336378935857295772975283278634117127778321319973163213098967252010924744250823167561699870400495021752713167426265804438604331980288412528816916695510331423828837371578818566778569367619943017940485359020430253524492844331827261643262831670310904787001548776295707208096905474338210313773181611857045951008212242497491997576642694652377062502176290226678110504062242887478860112324194972210164109327212522817593247936250169183036717527939394679746560325370081481364551925087193581949541308348889535273244643745938468129835239632847691584185898663784604222874055393974711169228368416047331819344321738240925117827185910428371172574664136658872684417792337098994629869741136387093774080610877693251945136437091457660032962634337147443128593574030373363661711305836205302480480946382971290398401719224802211426091450881230833972317359421276456207450239899686488536940877486586949729783313032174814118114671780191070539956863827137475363426956661835138455640166979174060310736775876050862679911206591172940018689584484550484855168330377829466410852795290689713073722788549458262617202278435878381153139970081078511780956200633564431123465753443959653665421059666553248260128085114740844396402111094333041844289133508961814409735249432049493730823543250758169396689193366646602992796423713997922208784809820045847948876732237191623527803489689680659404660342226266857663813316010878846475272173230501973559067497790454786562151408562769445707768561648023045658586708256709137003488419847806683809423829869472719473326374258997364675633126318456491867235609774266013111335738887937142085539784688045367491663992406738972894315191831846827079659702329272858355457923996342794867225312117715391819166566055340277977933947261612398668800965450635463024026376015588374450269631956386217258953738439717835631010142407646502759559350986103487996425623070239264712624431523196089327699091567134619003318517843314958956658885270519719563737532544313837794666373527099421934403817003312279512157169292815551348307308631429123110829022348399138597828399738875125584694904863585576346913012046487765011974269316765543292212969643061134516854539325794477034445561154924950266851437583785134326922277464831758969732011523212519882972769891748980197369009779081949138311774403822761181650960064552950711834104947875788353319148930237490327217758390054761017060392124895432460252584286975313323708950387630945275033755224793753435546641587341780119455188692321075923090214759350675501090399368949093524402052382513764203166173237569463143423856109870555813363993494625256126769724941835860273660307607897718116873073941415946121411772013821095548066414719816099371522815540246045280270386206114381913660548952558601551129357883237878353107492600541819620323947999286021390229239092318489522035567007109429110030400602494517725131843624980488967539903462955721302524025784311712929532563858873336614813106795342190258663019172453347211685530745161918719671806579936654165893553350894194971600476875166678142096158594095340506759191497713763069918066044648981953139664112989238051723821994856305993838557668377823925269080551563022061365945124461493542337276290559586952791178658858710927338269037872869650338727652164552266851640956812627387877769238281691762111565171469136927024077699090512459106560948227724306360113740326861733187175726387170841582593656926042927287168079712568793468215740294384477592519824575411016855087323952551109233838328720190287549185834517487254017759807900085933014004562601560392857269565292715073778705255245888484908816021519116134209583155138421396894278391649268711383388965698306421546236903760696140387717728772787813073767502300703733026375188699011372944593863143385792783887658490928983318892145807105370538244909826298004139729126541108906779290001663912747011149411607357000203669112420031462020090626897597652232026239524300887914702836698048103336751330346501473543261130657634657236383795430939502663168676834109288101923217258158082171256445960236735080749748561172003742757287626925908282174522476299509559258619538942225059826827653716079182194202077806029206310888571448570963920219454570845071855736859716211418924824753940198021518953753388663108101734020211549796215126765714939020127483840560254674599949033569513056040469499226604109136888533731838958628313907275515551071861503565218159913037438534309983007956266122046899686972826732400640207228566136070166791567169382137368897461144045874388033910373500951479132039413612278836647942371218934154349441293702625019417001421262284901957034345002308437565004333769423019150679339470082474949857592033882983449313598667317648248102053116264386961461220097801031632518662446096826096892229773770297923993848129981574029466379851651492681841737858820570403570562714802007114669071433249765920321586545979120793120068559489032578217307363444678578566932717682500991926491934805996830248039431118989954767934967162816343789692729940154070439658779852106224904159646409229865916512178325453948979332816615323200461561130573419180850817370816486061691710395955099891431438442806622492370310209692000804534876650206560187144339043402883061226048567954702872220776080171920757937625308400608103229374622096515309453523819997568670278395643551986519526634178043157618047121145600063228464543875314558013308813291515948233023129473598797275251303517160890061821934604846562701368860025076867237907071760288379282594225990306954781276638888444099872289497761440779801521930333128694120377279757073005278006001427001684840327422096298422308365289325085498489835447418176123747724049086199203045143538303301830962649300758637206254610067717582411039237849327795650736913933117128691769409293660983055641955076814674303003446830718753994944077080875770039731211449035937914079783914513808471745072350650399120004808833258008454674430368142827487911318474478788314074003314667275203996708954855095424081302065648952334433042327679030678256514885553379755980846902380370533855633642504385798596666556175714745692187713167614525206276303631685025868392781588622433016631274549033657065521512840353890204484184315869149039629411639364283504175944825761798673997371703967774304895902692456626110918785330022620292719742304617738252082959158889986180669259582859765313759526127798991061099882765264668429605560261720970144617793998306492659400274799454643286188687669623482799131173696145282643072983651831207968328180625163073314818847291990937985960682873893177973327498059316538080379095578463945930826937031550555039756592395878136024665943311595724960438123393275701322542160094936179276781974842632086293706902718297332006681159236426111413539557487278326692656708295760270632839289659301296491809563825652711282562846530892768134793718897835963568806627008370109588481023703384134542101435498122715748462692039097465536983597759179329024757673444812493639863315619241624496679784326034623461503234876317301824789779106518002328378728178356632631408115384496165678719948405135489830294206173674956612260774486210708525891979352606763923503101794949167580721528383377297319171835275161685565682436085029232965099775135188506332266155904236418860729299480415972742565113315550214238524691536666442047337358641347430227337530864753071120446702442372864906943522944610468817793018259094599215124958037369438248500927413608419433505664522859272052604126407240152406550213544003951983205361407556597895469994376185466683025707781139421630844902582970514542178657514350583061390379739275888056275488399805153489629394126188714188579547557359573062549348688793866506457871236979859855643993642166681583740384048539740653715662340172148883749049140575846898057496579511986761988837297563696852966592073269866391037418381661605438898738325053153821775544479194472619797430827514436923825545853182086670415971067001746249277589198278428306564878161271968339408550775525316283880281605878768742875906202178311076160443442118303176572148769792948079626612055146163982603806846066315209900429607794319131663833802554535799391824515034854620783214297338852131159942719024012969818249172972492105544366918463919543597514849683020328433635323013183152395248361023892222559936805489107047274478444403919910647153101724829888478387611227106381762254200633556629306716134343222961559534307511821122491992622406768522594175807608035310705323677650055173419461950910670757048533572005604199314402423842750370776986652490726292989646964456119251320703852195898016014631764885060288547877949762153188269099345075831381693833640649550099418632793790476433396629741336117020266796159814879627112699603982383677470191576099738221005712609605089136582153900264856024349208480159079353333395456748540853621519565627151167983805796653704128229039466221470669148206553200083744046287827940206048602273311476994706715770673948229424914777867769084521922705393951852627118806371323567517575195514514832870508225451049612945082269891264918817236393249781281406989165751032689187574515618830493225862196814107896615613029892636831678327279720733128890870556334923110658384822142466142488660005017604093472293757226996180613722636639754630080641541981832608113875055869494354701961564798307805465990067697605241327235577166513948145492041071196084006685398024284023650562665262193153077193143311566570604299647118447752651236269287599102629103703447592714433398272678450197014400819943445277708438718421202706829613292241960366603980589032670581579313767574270143901315462376721105190769009790637477597179324801628443372928493114056941366411826709959069318544935093999480311953106339563654207946128157939409510855642893576805385875865639690809011491486687170420724066911033436275642521937811979293915578707052073743359022610773190953480675986082841948839768405185466496542622822598939104608701179120614928767360916259986755984466877997754911119823568008932515996103150916436590911614937735738488954455748855258312389286245404777398474168747978805922241516167156120848811575068384770099916218658397197893352537351811123913087288191258470723198119665586902922139602983112893761181424880232447001154173947938125718948917438228230412645610593118839942999487689478194800794613264247093904508492762846997289028487075132629741833523707592367254160607211891341210966966848607590175432429494192805663551058373880799751861750699566340965505803176021754115772382555745583980337544210223449230972551582773573780104000107560522282125125801286004244774094741621286228697524996157223100285667551695582356023564737371109233591903924202283308611248335617025274950473355388985127435433630861984592121323484550992871261536140297794216435435791108455361066040354823693631909527839777762545243730043444418994624003097937703759006249945782868553540193077846760301920569491972809934927607496427639577412281164592801783086671662443327993528854947694475559876819944216350235087391856737380337814776286926419892069625997352679900179233336129797491839007135373302113320612132908724469291294064319180074392970788652276275365728801699257880122298050170235729224573157793481773136876077815952586459968259658180725972894697384037491324485387555841220331542388826193647651221995097497845570540733781994835199911650132419162674875592068422338754461260334855380554275419634030403507710633586054425435212319463004971184714768498655846776935963320878821779700446988046619544102861029375017274910008276497008114864177818798621107860219169566372365558737265002288039684388091122853685516988231444284336100857474314906089685055638097520738641045040140164740583576165751626917911390309586517687454284334956741934683078526945631324814203621825411996680106397384435441554173612489700984692764411233856351250018867236833475741362826457060265200526955545339068811374546618894446232960726975822560450226157492543409234571361425909260383137417730066999213676109622341540575065127867193614272189572117104823376281112806676679020018773182724129172430959248172527398707090498849840710273328991401969745128229730246705070126826599255156498682630657500239970741864057908994729390167569477369022241255420185256706376627810414590320085773506631591048422478915830390712207804300577093265415274169582186044132992986669874731863238769106509058456556442229143676815640147181010174392957393326413785584051590698171557919608177883332078817110162482466292647752174585322125898807733707011638233312352781293096131969456799377324327306105059076959845190363586283966854098491110740796986820186014822289686649730155707278789226448343951758840469713031103386893833489667294717214494845958585587618096693399636584552857318566633087895124091777098925393849395293075589004669198949240002190912893183273185473177184677910693441517926880838694240299734327825586156113741108378788327787330198136173496434437366608016356759111973222073663796146804642523653159245987438764311010813275364415834890508539757106276546518844870421294668589177774417649977743157528882147251135861951079487515709336782649489556888564953069872610840586578246639476251171591663153928935429538633469678675131967954050792058007343382492737492914231050779832100493660696395941843624144703968922632405648793610449994961444391681543871750414948341537521597922718064795388199888663713046084459365016420566471041939595364168684705788545276129260993727548140520314731332927175588662781814013809083322494713773567370469653600921001409851337527363113265065492502826113944728111927222989666201493682564983316281188109546913938799698128718424760719766355413357117490013382715712625671048549416653865463649225462985501813727128320373058038825992400156512645285427469604150489417360954816794955444458812900506283610089621679858281836815751318446335247271141946432133703823249663156311019164503730331238868382543385512166856256401160033124430466769075725767402044617915902955885711472225925261241099559300367149804264713677693358344783016823177658555297588362786183591881811613604525232896453423191501147516625903995483622562504018092565638319412124536077113605179412903471886415295931284443115901013424822856101474816810906197229409302362351982420361119426807077194413591115975779066969545009798132224619666384694696481780094771157735151476623759781040979441789555950199805039026098030659342935063916924812722189714854657508841252528448824720903005999343693038655064890804686654316903291401962364742282480038776468954040027905072993445988485495335358237622890922940151471646485693624197729512945763475486523337266993931396742688986772057068166735427819441737556144469202896327989290532810605067586359379469301160866849809047654404639221119929905229758732885779898978193398891099966310602330064029233029067610388580247343340094371035942438458630162438576634664177372984139893638943997868745293036850070485815243554871311775148123287814061810015597013253479504854937697519816579335468451547400413832126489672439254403738582043401603206729012649009340013089510502527115284620715887597032281199000712536985354870296942723699320793565480684842070481567545182137034079995111540823017181824530372095992219849487925456063215734732598088681311226124225234831955630796804543393062473988040665049483704318415962969981598669720486464727784130919446600798695736061845009710791151661341500751954244951161155641284995724422053604485072578713340691112262452005857946632006603288687027405033361720925680031914503259175482497154855565123827853008799034612754878690743288565162943154154118086770620662628976608115267883377347728597527204573341849300766516399862999438572482456765425195652710057509081832926052149529066152980414940104064323660344601104934699473804107468201618927583728156524918624299655525022737479944062339294998888602611499227895843254973488358069397121000528422806330219565564545966530459358610258369289606726943806868734877873493576922544802009594074267187065368042162205624087259593004004080176251853059600257155331544723258387758591356318037872405683495919182676364060428852000256446445006588056319910748685292801495009431060092944532633406113561176795194800843780598704270939073747546154370423243479476994451929823213388055635665366790329933802844519185226537856474496509948330588773100324718700468748751611905358066289325261900173004657198902717094062115305006896675745963513715862687739169548606666210770923026495725151607723166269367253465356794246898706515835114821082401447675957704737596003503577196691659885235835751372261577877847437226828883268856440661531619442615796306639252986534213605245647751150289852176710029905211974152969040535203497741752314870136125546849230598667599788855419600024299479650772378981366451451290230785365536384712947281563000730891755623817942580485336019896113830585561314932407811338849317556759198685529250177139219599853389915043599804259297763457327973578183066341492235400316600014240478396335181490828871368740528805772404961987634431133586470127425540025411432219301049281834891916246820378917646562571909371468098250574277862036363317208334771102472289547832020640903005326325478821294901143235298820633377632484881440380963862966504944752447443548452471896531246232355260542635921415041332787310643283585548167679914085170890713133007687643390065414357928176598231046254166141665919429712686257322029402147442971299384190158663378186220410503713714657280230197790539714661717151628941258689826686882445556859168882456695533991511232322469897620488158739369258523407972774672996838317272814349948578323277380980638620352653356922047293544022837857127228470169277635813203533341915440387143486607960610188506079019997778118765928380566341874771341385702474941767994718857350241780113175665887264956115430559297393134047456282056986137325025128473917328111463808567628420892172055911911198347441459122902424431710076719112103407109805735727955398533343175260226475038441005472786975322513078808927325788082109879186876964647272328296597798180230751904593108503214309256631078924109383265393735763266034329635214742792901882195566947357400369151027506425148463174861951113297423840217949558632565175659972262635458811370708985577578195008338593813264010352496353388649362309163370696359595394596473119221002428968959058361063378709641116699286616793338245333521138195099006218972206275606901116119554460477564109446134895001592759362192896103136402317299747539315527325674716370519717181608728316891095400254525497042571913048521526814836062833539556094867998411617818556673393431322130120434609290835842804630541357686416284894421417177110305496785799442024184637150748232042704591262182816110828891775034147078236893565125695416654319193307849852334398404368395182888107712736848754714445918687999696512767605698008469480674830735796635247745214842300445288288591142345729448744102902476733250081651974248906631709039189035066437622844158608765137737994806402145951127026477085993273151978177456618763620570453975053412769254993281183803867376729404092677887121001686820815545911544655443822434483292497415588875607477704851841723431554993599309639334843065981297361965921703843704189984978189886165403745139936214334826791552742964230987101114989996764019359590223233490342168383482696389722884293456055907394027621740557079361554879495394238213542224910496215270015768215211370059084504654156705445745750232899772548425978576367882803291855803392740602140320828050708066740619987783831296154368549795639133787293544432622057433742784781375914809036593070433035932323920036533942938590546848266138456985308464153357845056643616512394503612920590945260853493078770648148750204089700256367862985907975637430947701081204288826388091236386123393456194483690760693613897831039849924062344605931776171937535223851923356351859184587414440641319232610709367394608651495662790329606912901397240075448478652575022343039598923308346492466768114049714532124566806266429174038013316763313722920351125917879218439495757087751897259365696512095109146556546715969857433671095250297732319333875183188877621239969525642952370002309715985295335766601679123979904132873729462565882250944725116990752603320847138654620905692265965638142151081881531799188520656740614001910159760590662255206459109266673476864413568419060672584095603094256705889031080244678771843265801819297968702139359258174544036711506412161441588743915592101800121331799514120245089469288081514880789181889749918973063062799819838296083466783124145580801270855981106345837869545335440261620193047586916886732619046172947606956036018267620052926101860360014293491225847571220368660971325399487645676700927851865960000081030316665631008625635668783027191649288810281505380815454598872106825577002339835701905268948135632651054942509370281837238518527021503297636029745773565602748604747455120818357600574783413198654135734557671598516323833970820379914556018380990316546110837000692072629863907528655576311129054326314932036184248931132274401818914128027656637200972549005229352776644890051660376113091976917468659275921905066758699786657118877145525182343677553501946837762959504833879525367796188460130578389169844666163646496522983788696946800824544167228119859648027864631111300104774113940340825243779141215090091026675717461983980282087322255306692506210309375681057276604037035067183876103149293423235641739752849269094742129221284542711967141766991609518773653126111166484173290042481703780994086209024664287138663734390124774150529297057772619213396914845699765769664102981593048591344957980755388970333542303857263380258173319606232430501950822438707566264753574729438563951013758079821282768788230385057225485807069351938475659315966613853904670157652795004527889269369546007673042448003912143107219717395958407789304000094661949904919544822292135387890862619439278566712576243066586013761996128628813607303435809294863022801249101769577895171514917637184504961181482648417988828189653133281133719473672609649620626059947567171868139947137053917811084823962626721322041979522524293178947371253531947914527547041180340801949769207515916078839994121184777827721853537605406398852867950276798217192727680856293223938040734779935152222553944763080349284289574694028968124387364578739454232676200044366023893821883279187435730198680959030854621034414103610306388248060260069955415093023924579683836943126681571769822762012526807497471908906582673443672816702269210945836319681459422994185422544331056787756061745963777172651637885298486922163021729152439011994146568086189174224717787062802097228790457612618944449217454815613193554746648572930775489060398180938215479144979008931755923244279752470707779487452743807144029978843588531441464694830155377939516634211408212526264523038515110327179801123815232644535725564179001999148989691618891961850686168437519374145024014440855722020269939075403338753079557012901927378062445401116488976538163958755911165495022034126928467615620012560180426680651061613282849130046716900227277828954933246507774158572829225378061484046471815788177920328921090046310088578957422987351409733445871942041539010217038010754821583408258038748579968361482321989074536595106183992960491252101404358372927614058848317654926020966278043073562072673463146320440991567043915535185553120981071325942060148319346193141869601458008843954873300317596817667961513873483715776074815766334769568079588884391134110824725408332854199383765474267440696050014317065211669818163119696828101430490305230238455258333353830923120848546915474315986537872658511127925654342631274461520990449017521475374588060722602634162589318958359385363075732953424466222556362597076136963699957980496738663065398129498335619298994255953330476502481034696502519014912061309121089060855008786185652257299995258123698115252284334131293102233485967946379013154698208349866198630826207348754485859559581429483923007327628644745989700866661073538771862758039600856760585386608435656810357813663572503701601280797723795533639263252558744581272810021971600304128936230071006115960118709430436855554007703900143153379800454131618268641569450183716780212286817489651123590043683746162347878839178483399285809176815377574224431075090100374510819256173735156502352060230371277252910158030106875893326633963429976988297556151887214638775320721797065097799002312580630537529005856599102215822297545663076632957917075564360037030154994386705196931277587721307270287521523416858505454620715700727292271185145753513476591377758297236156760996669337231612059098458480526225256995635437578152886175381079157257271644014483162515240019699654851782762309013100985258935928458140059394865210923311303454870179342199411818679344308490165551034657972192326436946193869335781909184970423010186566482096701968611642235252617752197819741284552708515978596657206449019635424041753738042172911629813982282940998880302088999562789422282409333306284217889657119414397497555350191702622601059378940290415584509848523388051020144488703182002945619224890853593120092835688164648578772552965023739094860789616299663049578577253167139308294245187662890296419410371418606387742424495629585595447499258902477212363897617152774541318691144705700270707806418704302293247006502095805680424221340671514379416986782920107575173795313959639555521533022618451216041871788903895900031850444603281696079035801146739700715848938770748413344020913831002622298341670868035786301885636966001571737893776288244103132313936527002029418753313707508658508526146740315240866499629903272232463106408441982279458776373638176022657731099453012335250465083776192798983844162569482398733195299714773175750861125294411118949090081152768345105141735562511528992595083465668650677846993736960384349587024538939469747625999719966200647636089471551285751552182748581717648184755743330789379645239415223465433983707397190317205415522604852910152578040221665523295765350707016866115766943247613460418524032544951759646524265898012242734445066401518229300789106532066276343415197154023973252304052016586021635931139906874367374603624002542771623078034121488745099467566602197459980638477188592535437152182335905048948271705953787445664464223512954690779524774138727450273010081530714510985030454620001748798924680464467583845597783885484317960313696494866084938866780966398517186408233496105791973693308899874162216087313469552370013342246462723431729990231298867973462679935031143495198520869952768568965781710051176397474149335858603224233396549756326907161395919097942653670577645058041856956861257617796530547013197805064049985716175591310511747176754085888908613335787954686540462354556511497518000643206777613992481716418121431755951110143032928810127079384571491181617096427403006896048335132307142381213384693021057500183577316538832916618322072025479952339595690982919900066081406762431781223734630310093128928226732058280477486000144394676050475414367044442676572589679598419561066943153319466465487481041058809804842424179934792147741066086524164216772849058157355234606802372173182684411087106471974658208829047809286678175448127709926777571912084686616569098636568627564943825568520517417974280719228041374899642516007713955806085297106223678027415320118802905376661182014565856998447879607974271025893714426570430020477864008559272874291017299389926245540914474383514186249664561056320521879446583405587541698453896980923721201327685755055860877594864170737919568617122584811460535351284069049240095651859346876443875739198951994413449469284927278915334746600969539072154286504442728024114452328911817299084858959820885613744860986242107731728115922062303912969275508933687269819372043478169010986781161542625334055845833208346126569050649472241229366389601282711944904772926779316924584605927501663086676496427612602766275081310569196617122583891993403066423908267034441004352944443001618219775613516263084841767453687829850367048021558437721428065734442495215574648497818151206660211341148917505189033284877407681728179537389252401144019768703362305302110268944507475704286032894142350131502480759727491110274780586568849598037652758236780582070942978706738565767778350603935960877828719110452373850838400382544250734160803261366528253292551638073310721111519123045255681356562356795424410008346290240108255940973664727911114900580829020528617165994587047327242282854568299949301859784747766938911339721286379115822484533280248891116549786067230485086568123782673060921538161979769925337658725469136551764616983163019426214230657740797206828038985909068065327754036029786222840258463417659457033226392548068173647906060601711459908941856064373249459719144996701116087211315288584054980541442112741150368012163272083961996221904005158464774978650821619073169058231722336676860759617703186217172661754240266677042101431527969719093615160147889725644078895746648989006827688444024715915458810708863094918125701659916237691880921339239664118093016975627442351810254217131880167462857871434987408270935585080725086198051804764002232484645269582663805414196831515741045549031789786162053978233434537605829950987144048316764448561124452306150886058040729313488131778508119858634156630892743554090001126371552528024552333464114720140840790422079213039035527374464268052569239048042986637089651514915779913499579391030956301054380738780141310624579007155629526449667722965451384376111007867443073526967193804132304837070395816280429833376851994794737742206546735577182049856260044911974649188644929808269642202321513250224405976051726703145469316022711634868287300161395354057147394671015787599774569785040236522661123150389138409398630764171114601245176798368610755910244780242287382004647403713169509460885991198786353280788023913739683288489897136582000602573254343433677894564100548363491854051515296254886833763260021436116678632975244456289293058379581034523088609415533650340409185872894885570880971281124731098355952780141565900818989685089957679047735628617979225467789384104934433013302704825249637270976843225555928734412140447203034494961768920962505467906401522700847546372941126391273010067093116530471940357469161716538794935218345672055829600194476021461220910276043378498097892221784818267918212963457521724608400447612582874326784316796819153292991895804165888432994540788081046532031121879131281055537939197939903926998589023074528347482017538208656370839017976437795014499874159901345573960076037439189679281199345608369986763135851167181439298372330287397797410237306211572139523857211831972350347357775671170312778672528750660063267000911131991159591201236231726959422206907354288089479616975439748514456601327287531806522084779961165812554156193070824019249824790043181763933498084218325140664494338220513247952851095577622635672218670136096977475061957538185222142204097900771236294717018924263390661464805646558338774031337958133449862180268189985442672676660763461573486452103001452334609080076637527491602339051347118515832003925519716386994664654562831333462896774275640720712805025305912601927152935701490187493898057870802901530770177242815302621630367990894667310561140923907070070051792234019160470823087681532810422832104497794825707884921159074304910472406730868678870785164784238745379891409854387442272757634548963143286576310516636792746332381076272532695469667407510398539509726069552329519100545024042807077358685545127059689613693507145557908365868892177744773650053380347662906116024986423827797320944852477632684719043331345032520603946426217276005032819970048696831141569832943825054906176924911406676430322031544678794267401064449532962703436273330072369277849065202318088375353220474064078860362652989171527080153911554818926281560842093003018845649494730279879693270161441811563071467972859230620326416778580456189577028054279869505905733633119430067000197599457448247448284242851670854859031038637373676281187844320746399595103117966188445341668332467539087970071100095354178278683808828912871883616892991028919427965159698654048962959643810902542967729191196870240279012307533777352539480033906748284974669752445460769041418524974663637117288706730826096997415710637640517764599257076550940253441056587657245787687307539435666836607476449138987587005621656169063458419980864578634856347656688816831811267127433089954426925301578660132740607246537025894843147230963168784775287839415599569669466768745785828586080189732312537111226533062768735459789310909717595268581446465656497886170594931190677838341084999264427195054148646283382844878864115966928247106607637348222628621579400713981360644698285230799917487638989111517701615966484751449007366699476912237074054606867002217953354821327365751787529514060047426166376190583571789713191512140864831828575581091504258100143966412739539030285516427769160726876859831440316542094907586328724894396274687070579980200168475284159157983091496172685910099210504428080142187649251114270345499969450890181691552580251386638160926367092624275137573552506742549941981966468136489434543820341524991803974162033504289626501227142260910291330191641943519190842511756498717433859744328901354579062170347786166053508234476583306184114740216711724969764814204732939203029384648278710066787991520116655664801013065496287584804218452664463307945528075271662942466248959202389491252234829389365941780341889809205346316005878268453070584717926913832930737589230043224807747072953343483973262046507276265176245439787109659459713756314499300312101474930382015184094574389707590957714736909894033775255322449377502542506165494390487857004699381443961637622269067764061697762460427012436964956554397061252463803509766110851681513778968122510250636123174877141866214099355462256822788442460633346991980972719190862880634834393976384627007243646778228837757624761447691586664854746333292631347114323070073097385481303660575172695140678339854942506579034386999312536713776519923841218833444022126302728877863043838566593493159958402516600180105380960047165499939854194844340712689542106581397363935005729383227406392924352460951131246043615875553110540192368181529403782940878045050613368765362222096800623713832706961381704981139645587933730242494677882878745397950810383169710716311580557864675031924786081662048029842268713794589458230254659698692908741452603788617866829316125547512975313047673867795598325144118872682762016937158406162859848385307655272547735113350399851704129612362678836846593437624160541600692106357172642432173069962962778277099767070386156657626377459919452014425559710858640334832184739920758945103420203704790995243271349787180957846082097044970811619497611491373122108238864929894960622702153277976897757870355140254207552028966090514868854256229994713380404002823164555791677305096618007999826435044137325671890426715230829989381698775824504305804429677959361697185830601708487103860226081860529567084111878360592882106965152732892097346863740058209686753334812832870597484754469842408712871731739016919226427996384259356285381320845252750709237660843180445898382046776370155678325450670651542154449975579578175010197318690786521906214597221111342363464374370482391769819623867303818810469481888628036343953044126939105427420456690082877759870384432828937039578930495993725715942901244839140842145289538598518533452654772682959500646372591408014390898480605885325855741254980139641273132275000500409273932466409082314473934844322943529209155813593310460577212241221000806120169111814659959554474996400304207099809634274583683975550715718893806185526389414768771762047661598813640616505211733246502246588642307510485564005773896734305449677628097339264380252211810154648254046914510019283594869421925936187074984237235757049694656015552078087481449790006649626653427238310037711077728025899134127442450035550038086355886204008025725678275118223237751448795687560665644443863958455162007438565540533306873576678611587744058202513736713308187082475837139421319657194532492028223287553748933309080322397495510959757331034081717645506410466969399825259262351170582434250088272879097318061176486676610315842208144158261206008747240564225438136924988788149673604501159852652573021257423478930422609807086124934254333843316483994938960931480468928968791269156532387463500972507757249939374380512355085282124353450817633905077793232132809291422314664774597353156983487075793178638360878882354052908345383134722097627685848287801505864037597747795183013180341907733095753602435389540024932646974438292936385148560068171053076428440377125529783544429559082591327271911443376824959636002824129836176556948270710661983013760781383206141623584493768683304287307467939226554222253283765363769345912608469892328226682634646910188793299286011126686561403863392774528075831131598132166589887103374602195449473933921046558861062334454947855293205670680612356741836600409158403232210243442561208731051009375899974680117709220061199092004183939498058748482409325452229435370449895905286015010113722375314029648023691608260467671518358937477271702912215216243815914745432203145762987522696318518778652512907471319186854114176268313471847594505819810771862062795315401218252222240273088830676309922376060227872384124787116651392517753067123224750402299279652870162115546183944750006638749091181104047261471408695049295626268489075944806079471817076045949303171429828544705743906056126824087638794361458900275522600346109687191953655216438856590989650356911580135370815113562279994680992409827480162506668253595104099856641554016659857485652601953658187550245210785080949269152493856015558056701863561671321686259770098286858010648810625900740177835761504280664361618650504964532030786050053398031167470146973239075672264959092912908065793415860582871252310910188515884570242797704116534036943377594251058049620440222719958116445373337083899610475930478384782193551149767688811862452514321839671016813819895979030444466619720997175337648255976590698537661787775098887025850532240171795235327955054105559620544394340605412988159910897898236336832733661883228690845742495349036329293897532320740381789641472041515895812003180782441503994636434279395940626712006751368201342886078984471135968765470671881337416939231758264827356258767498892950344623139168548192057308952557973304456540462951721064062472777291675693585531233464575188673933590105842925089776966478862950193150051002962042802265488920379070037735011233541955813248700663446611308273449948222549572401522225921445864723669648192576922551827499201651330951386617516213796449364138938821913832933077781488271138716874270497190890618150199454669144785773829587093419073452660908578228929734805545105576700512969009030048808432455300381171215243504855689261421450695551944018523863404921343092033213564654429662905238594895544954984440389296586718707487705683361099210546557064426000634397768924993444098608779917982508162427055565443556787522874004728117493424064904158335084855732326321531299602403017713765933308518863129906591480913756104372258797732348236756239061255878918530128356194109930141673746593494383067703133761232447032701816048705104735733514566521201293775703684777908576816294465321138839280474611577656737240659439261868372443295316026258471866465436619436832908313826782205050087927720347619202301198680820994040885456109202017280244942183775984064505267355731457669259249035652290726400223609705683553611483373811595436741498946184000685785581863948226303065765495883329171146503641716441880817170768346257743773106478357900776732401229292094803422351221627838060068347861667918475230298207793252278868751993000224670024764912330687431321601224659460973761488201159400598139303259184407285667175953172569882340973163987965570768978777256994878157122148076752926050544193532375755193447333288862022409778653973829777708159225564598032325132915703207139932352138221464536453763774813778443460184054624934076409809851772351805403020211475069983249371184675305257657506485172282703745783559405253905291087645579982719230265486486017007145743761189505614154963900876397697237831330953812219358510904368406184193550529779950820178731111877802642128313003797653837043314418837835276369543436269186683687961242025746373367081840700602533465932662556770736507152346423218588740879098545329128245079610239021010476977908148829814288426987316329050629136139124412686252520255628858163592482789264351099427271734819605362661150052402529052460957179440374274413243014314674221376838428170115154471748657114396624641219097297615716678179776165906498708266266833926462351252299368397413001447407501218128626404908573422385826864242133616729454689068700973112167348743026845877471527522490027582234620651033085680450457598098231608756468588829506794978558074632973368397458207858655946883363975003088950742354009888795302506564204820586437912172246345887519069462055014486540527924870615513851948940090888844338311872418539058620638342436327314999410979227708610874558453195639795230229471002359432085544999023786649570455731868405147616003466751006198394455532614967796805557057445201286268643337107200586016787045924594836453389864889861453770203662122408202720073333241993920092519961791009188231913305303697442565119018317665436313329592649015895511851161035268733909664459879148812762058485105525722421364754979617896743307636175134557006539726880361527727851661702062198702254857666766681082233086874805725721409121768976688677254708114762488448773972131277792389733886976828659226691978925674492613411508149948725943296394803788191050532432938545774306769138206707587227185902624130696985966697281669082275792361131759970238687862265824981824275762660111237430197010037790805057187307233665328518881539736047752302752041020705773655139794781007006457638292326545346336988026415272620730112890539886957395729250752317543286582847102134923351715086977356462533690987802958482897614511793489614444548077758272522292777490814062788159708688280964658840573823784890576306209159357193273815870958147260597509580383719352104799566169993572588212750990810575740544258258908053708495479379056587355360250010551108723763981980162979228817804357740679175406615134071783639450378384190639198654818284807622567968786541734954411806384279652103887007254473201550236667454011007025703618854585331737557086072482303856309343901787792483200684631241843382281306329780010130386183243556778454245271469715427625702588237201895373589856154322536912346553843923144481750829218562102995695907692726852477731775533176859045794880016510813516711319895954651476270495227712210255283753943427722219305825859953407274963461943563879641396988770591330651606278253795247302784930877705489459041127834073350025544952055135602409512886570179866189536254452952793455258825943683835740411661050769300455044944623727717359600543943950648644445954028184819277802916769901005865710544034984967345226344804990466016790752637968918918117817065955630208284896381170154603204869604207150293072225152846698326470167953652641526180080641258036186450680149127515887094417773219203766910744594626079497620769099676066675906519212090934248883097419723281560288814575577333292543779898778879600846883990097548524874568516897766199902765518307571877570065060321591210053533947322043852212144172060117468944575289469278351084868010471797908033458894340390162113306695950669488479173962939767781523335755247012002592213682464116516630439350890983633974571945414660608726957925366880140984811553602276135450633865356270857107411354631513637785950808110955602500302754973146572588424878770460500204612399175155872569198266886195586050663146994114755268961080040073412481955767081637486809953265394470701666608205394231522986203471170214730495322959639648560614002511332923672596149856319069913139421565667782901080010111703192320850835708408734029357030044726013853627970263018257234194092366457156169959450483450968035387278878714358491584785275510632593927376951186811578706060876906187852213153090203979947617635301881725632535080770811905798998910284752768968361609763064737789123384101814533986125265456893800100964019365064345806907553460814238477200999694432183511936804777522316965456734516678398564075912009206920107096089691672780828985024760628197694067171562011515904354275213596647923725915419639284847270816086787409200363792938901418583939005193245154773271265925331137854784563722934049996365311366291852044730013490795999302255705330524085657306700148691009633739897752862632262536973306299049512242912605787880431244144292884984544246067391739807740639366342365267130120532640843236061616882708645335222498149002005799230298330117009247078638958646257740127630956065737769563412160749672250462656920680424374920369868450203742764153927482384355220648806794529335925402647534991286524598633075080788607772922590805389368639779942117857355722002000183849770958502558987164829726127560742978243185842174102996571154107242434202353513646008354312086972044474606089412695233659721338834697716625891873506781262616335940018364469084567720977905826384420436058197771599271424646276875695320117914083714635486282548551866522169955692161192312078652774895930879102007858036805966031391998278165584765913706390233660506091667463672284706671304578322919236114663720394056403083763267061437713030286047330449108315875716268041304701022881112181434156415076182796199449836736670388882843915985522523974329191034220603976395135980378756695082710721707395743680715871096078869747735783770547569884264202274995142390207202938513300288378021078115417249165613429065592252913251313855325141185641810757218308459764344137648648965376915199673748388693880817613118942890169968592461159818278803599125815147346985161873977675630698688907052353864893981160350777941733340771677190522088836950509720359084786731353738451124588478206669934920939331013673107151654865641035887150175018505995760903728863609346166754551948413794184454040831141061682209427273461867706993594624446523585533843751567087370504627788793101650106754403601875319764951229995184906582813060892182979080990111920952833816768597366336078433454705520103275987501624019277760008769498503761314743651766008085245758243993010131788173083723233479473048287543444046074125446660269336459418978531493698014302659204892450844166364632427664148728232477031332046664553599728298846681440113722008118371885228140878389909257228033829239108282103389584268601941707619007224525978486827993032195809589633388109830215248234250468036358233085493663173388320202966703207106617845144970589259966291395360209194413118374599969761521916796812444670207410485253748074558475644508811364936432928316658300423993208387014838749210630661190372892156365229853973783034381319548780693892973891712396842360009830598014716902265877923156548981772003475114789986203990544645187071444881387530224032051178353359126391839281820331595697138464444184517231264185083065759791789679627890616004959912475791587678205643849044248296619970203646056111675971585338882394209291407940515659109975163026793715606157928196563670448965304123274299401064515193028203488955207860190193987053790198350312867220649784081852372863540983189243022832084701933033315516394444452990419505768881323652001773552464706443998698866036896914306347207226372261713936391469561618359967047083097980778149215263336504963447750042336153559638682646394619651212288856723656739052440910471032294861801850291481006080483062219063566562198348749684572504056003495471296858791112946038673018214100361344930957291954977963516793080004542321072012053758101779361371884847036732965316508918365680691985367752357521124235388119364636654972500071779925699571892114729939031639921066257654677782482741293803700777015225615264100264281438619919647991211446734361110142526461909328494209577418584219324399400019414242303523568270896176413488384970064267590990906252928754776663654809862323659894185256406730313534278879248155127839792725089568809812387838733538416616707049609665010215684935376399077513298733087705642469241175344607981193041881622993036053121465991863738449028522170865329000862618720993639898271193288213370873142428305559634059317349458977511035927741066658213475542019916509659508268907363502251447325071017148939825440718011528263526791983861533284493267099523149388892279788024690631166441409389064186766605062518799627403070594360632362917232045453385329329692631665322840784829628129846377680738588044794755301356908176211542509660323820169879009636255676965467602207531760394636600798987629738936551123876526494253451869055351065612075347690144731825855566236632123579776707535257475499855559878443682013521934303654279696037444993292859240682173006835518252063241432173843249668378940672728659525601187460275588401930942590645353575016202718575043695868259670385325660715432629977404853409983983975513427109811507454578529234590815166542282521563937815667877662794627850267515827345213278384148578025056011370785983335117728324186537600293565246301623104682858240490592172428012268325654149872033697434768438803275810662006828120280468228628769910896838045040568239781309729370134151782364260672660454968862387976831184988928622033517247515411737836512772702631027198715922997088995526787614403029613740320489760218104385693301601870195479653730888391040634143416771816833082074106515917224485463812018114603307738020086545376782853413779045893917124289684761404858077831934233182444866993765394750538388103560183349568546155455733074784875588028429342382579451998625038569113467778088800246925694302255008085111452172659208585957861769333058425692519570313693732067292060102403921039247564612150441408755671599496670359708796219322176925296066268821795595471022950491669761887496789714386472532956331304132649878297504017374225944922662565658245047009798304479439735550295540051600453524697161250728198243145101746361742958939845043565584311443275593639343983179569762825878320890489928960916382120098691469300288322702814671656022869174925741904707397308858891588783795804291693046062219188654064239330965495918660700439988094431931557262528713101121752630141146714632245176399265644747719184660853196885240615310271385838601723889175695250843432928087787111036399544178610938352585349355599764423308357559747679648859797491836110681061524325940308473060462032697134686620540046805835235095097202434251371037082462860144300020457722486224180303791769012064777206468912141663609053535296019889550839145712006352248303105451369190679017072186188579765555638050125892871655421814504677644689592335209296639800726336660685235338468071334054967610885014492409126268553464423860172811076480053497406502314207343761265318957039928607473399830123482546414363502286446154123641172577352934038373269082370862389203267541537843719839035352864562736509819540148166458597043067204132116281406735913465308113339957609766306025583874515302269773158419652554450964468636821212874015064462286196728982770693481185693788289419445239329392277363997718645417332854401462252603501592632946598457824344767774998439744216566559710076764551678700288896494657202409221594733220425563051489919146275388425025705722815498238470632907066600139799002078365499695727248094646568383811908752431091484037244765440760412298855174178083754125087933206041081988348595644132069917836284671045614026435008228587928072496045667522701246352437496959256265021962489129068480140558256068141867597562063532171084360264553496914796585487618464071573334488194411587168478981819581644983662570018538644433564177191442973901219027671675472285440059435174303483094745133305427120315285405409383817512920971645877628642540682894193677239022758573437990025859868705494129964469375461074413803732908920091403362928446099073673912053806731164150180872008972787200438460515513600716811636579921039675245368693854145298566087403636469143225379537139467139897071459088424624065724485294569271350273894347990537224697562621269662070532693325718303175099077203810115712429499696262297917897889581373761143036916949376123749586152643859804869115640257966713878349779114925565270389879518142368603864562906804366182591473773876560727652990199222900289228091520708026623373947098188806368770646106640766448948386396477156513404048371191178410440372570013971678022603478710307042581490249555672127904644672459621862074664821925349240671138478674181367494029762271693008250140243623956186256971607138184280185681320210532917478767693955340424982068241848768203498214259066385769770081144104200971278988375425110977762401107574975167741122546276884514496760520676123063838190692333993995071508949402259583507054192751115214531916362401189237276740507103505166265188292820223062933432376064865884918141082085502674086476040611068465055265615055793702377851343676138852748696022741426115440376131337799388883408344600854363268137499992437480010350384342778159203705013410187963517870824267132130292965754601218205165451338659696427751241321376805821583821322715272713558987562637965234953735370101643457090969723621415871188204701535330363186400654182343382373843403891575069340430066011459081141374509830418585371103667047912851965811001486603281995187957964080822735898432822947778401083033577203302021943571912408234816111929395093395318468334180802612795771184111539824746242524298353397873574004921624473065085533692000587269130177724967741524600163008178286264149761567256698571883737016682423784490887883072360276513783562007995666468950260206815720692757296789770255823623658791510404768471668660006657647109003480766153794186573565328530549494102261844873791955846404498781430818020503116442819036608062268620238550324827514151650801746942971466248111688966542620271369814658279883717930006632380584250122667791628791988882198928370448518452769989198274594769540861688819120774535244125998630783330886938883684473366256637629744487918820968823960715333643552592734795029254944188007215195383276555589889418304289399032322359375979290128431356461401981479056240336297009754526739050580367547186598450636624602580307556868016323270395145659222349797183197575288401202977289728285357457694979267394986840289906254465645596303922890734868220445554170957791577453759046862160347822125269214423436823084243289908409973799209712851651871350518593373216267660437954721896686045721443727948901388829727981047464148426631185462900902931797231821173417122309300858199450244914218112659246815635785738470902877075035113463555734282700654049787950660624810931418382448782644966830443430249715466885975645794376406856700622268719182482633174828731178518345397553409764948304897845197848012952714273047351946438746943404425689335116345057883759827452751129639508124577035840138848102210244858857755514556600345844727647125697925133587756229611457607440089450370081591669134708608630474619359183344913696620476568534215095860675549904333852415184881023144541450158372904969621532533651548199575293953932468882303820366602230978815384407698995893018367159893680871584332891977295646987959449312821269825500287360601166405535054078726380466009602970920644060281651683945608458192060514094111764807192462116797231874483025804566374190569359076478254214702226427913852719726946250004459908825827819636979790148302800300129640482363724577130942177882072726770929940503179070361278663629954006044051267476945201067105920909182699937607318384211755254821423931368208272753627208605288727505949019284784184716763606698426268540551699287971576944208262046745825882987589632842566228436743062147867997874683552751018866372254224451790788377313524331764214796133557520692062482906238339236426439021344072935190884791463456386489533286719069735024250505731305197952428852347104368249021457235997106357188207722017095052825377448442111241488953511111244260678158243176286096589420587323266769353458904357198230575160750377716298066466696042937271159254272962539968866999692861541531840368667653380264913251558231419785956254573765228176095232213129580768460479613403715902820191179458324877591613423610383444916389551984874987213764189725411886531633189627397283008304846473032657867158571560131156966453295181524575964757062374033843748778593215919873951000820853290992867172851195951823960899977228100293237094454841267399377498645611568570237471450578767168180779659945708129330927874033200062185305224322201600284071817431664266206389742936786061486062971005776665151738441166772198833893418254681032187698665061104033507867570663341960963867333764672193389610601081979939306762312837913066599089883489266100851005777589879165253261279834703330399937295537479493000380186745018721495331375006699475177689973010232526136523453882831008150959211854626668029903104897102270020275788201186159341925681594604690519586784916738415751320500680900367130320490509922316224240199387460046731076642033194051763614985082914626197770633399721947856654428272025264425105382111693104935056459472492973486578016560312308433108509820082429578329079779916441169120877723121315048603101151529027286970793871881644566426776864541892292019384631687416270635187273391326159527022488778129845461738135189950332529642732530523892913659009685180741443907662779402273033301725076872143899830752841468397796858154104627714461549027382794345957718786338663827615394131428486889957717974349129115157699591814805574801912803189993453143814422028814227241989332404446073440689241176173382743877246895384942982336832431439821897545107813195588910158191652866624109714622922385195369592444897074724765356356299066645165921353976155187687336691035280243312052034088954311964384160207147344893559097306728605776185811395816134633303269214851223782956117288060206164933977134832537932204721421127250531097323946365371192315099113115617560703512065087472208394692944235156151147463349408797158818366247045053366090230553923596663992267108673577494969563058393156117091424405607441491935703317644789523848069365212643419797683705727775392895115683398796138244702750785430842521597745435970599684514295179608986603076806323980845657072368870980998033665337251547836043088122165401583153477102131580676054310543720108598892315826651480186330482552259830364506601942487942028675490365445759783763356538021239733009817722505861799256775962872484492785241744976953767870653535164759898962566228251479276792044808137525382535286747199084622273280509818290546682263691085416101415436690358967628464179035131716130482662071050820601613756206355788352072282082848102709747049657669404619014452328564247642988408482626702628474754562493622807891964229303745365949235351195712997846260614587911936115780631824067971300268622079763334270896175187485483453983035921865559830161080402763302202188397397167382852263555819133917704212951268539423882583081252852617100374387574210038674596243215863245150361594542633391451947706233393090062786946086851525489921500289236449862952530113542144618041505074985074517286756778969284893406512363871731705260135531885904489924262960576229597145692339686689049391798493150500845048845954064308512747454127661975307891534525558556090177508460717571323392753389167959521378443056017946455838771388006072665995738230522405286300431655963843637548335745971639077566939816551982883789182016711932094252635339569463032525287401220554036902219706040441409926435577870111218574284461899029765546835161549677545459069178894565069609671516898427195545004961112055964234630724448145946478905667250479518744295040115942310104558879033518951703451441813422513997760427987298593124918487421671286244241226927667141835806802097020565816048619307477044751855819070617184918216463767875814127374168324977780686295388918319609554356054409657733166323598050843774531219393505441426385439548903251785294088927375169719610255577277515250888213271807353004427375044607789957817460002646740499830821485016948761495160412052791905047998257377637824810684715555184469178199652035573741259407937892404148483362638805195220637009852914083838229337365529101931613198203028350566770008015807693501352821514834717627596949096116065350952370918563635041078050507788028460901997112504621603723070497138020472737947138588333813262702095442996971786911907606487609731020165383487543237736807017396256467291186629734809994623887954827241570985015817131770624215920101531860506664692943817871473360331777503678656092015607999477595452112827352815901768404364176699965568185859079559908251028956594993367294431729712984216824537214108964577184484619301524301113354031456340111066958537429574727593025895185844431816395368580572141332122900627907690594797146889072721684901805898364837896724330909761545095246277404774481861162693863569595196025323950304016037522144950522785612165422514053460162863376461900468936415403785487069314668191666638511756867016289239667285987578240516661942521073094257696359207151226348971262008162424285959960793228375198201181055462904172685534769863922380785484740610817676282484828124011013218664045771508652982977104417834610000239845207797896782579043686617315145347808694300148570937800700895024565761198995208059720464594649792221300728723149761706658893508725308411702044603751827596582094205676522437176111504716028246969778107032963022363583785949613116299517362086235060404347971059267340531998398341515750720119520978141176449722137100576062943037038810770383302665066291124324047102877070923780651630510192143941277824739644686040226229188541197054670889161680032719756295974138692636699828687961433592776788117409617718975546950567499413454868803488919714558956890248871041820951492178344626226616143081749925376434791335369612553293299533991423900280621672208575478239515693420781896521576286553867929478169315604634077371235988874097915249142281193815917958041671741944407148150168857724993735298214750400374645831929409963069783155773426003491064371013114878299650383230143800459996983006172846379113637298029505187051689637011793861133475560284362353917623622087732453649159693465250807747510178704333702625182196029945470434804603506238813710315476944875523082217933438343781830548578664908582119469230675267207781675399611588385865939121522746286219357570918329917221150622806176937513917707156614257527839178938781856966082845523305623471740444293974868110115289811674906625361700818074495761790006882184816075768568680101785080809924338304412007362044283121535473910583606328729892308212947378470133067285533756087819552765269979333316233816580501333494031163228752779568529032066782280530682442929764721623405615208880335570048368891764774215201152425255718328214306673912823022404779321560418181480758276417686725379378604866609711829792538499778384912154405684900392121176746624227677690218735656083675386817429531619233662482444139148728572326996242760763684560258127108210317505193862193634634603575939549356095050876199002267169426363231684578249145664434008257240838855329654829715716327879657048747845718973034711421835464045695969906697182537911149912533280398087485875279465826159813518276107950677535064455491698757569085725927475504355873830317320762619722035520695444712816716777963532188977241218420748183811927852295472177774676404805407671787356321563064159339184990724181690071681628298198198164573851710457412528988269919316700889480259127452728744599923039296457594675906708254939612699913071136242084702617671090113101800618719349684100543745558595862776019010214588786573271500663968999497648697230762437059166961138199651523146308054009746358725243432525588740007099969303641563770754487151202786610311218051674240704947340569128955093057484906557166509225088356500998183630912339951061700036080591238853539359102963465213010436326168695674384560002651125186270897894218465608993625403617864459093288136214042373702801733469179502016115448413760517143833621313925308182900464584231306237713550918098042408759327459003871532693402561788610117608105474068156653595125514567973495086680043290907925078927093637685042956780328672100408060730268683977882823844430961090560766398444938437880248106550660414759056695985467477146590037639226075914340827113429288972893194843028790700617428839610570758383949449705525042661230560797720771002678269535668445117621108763125089830261185506476191724108957493215287578653366589089438693975979545766080828132498358196945358956472016709983408939508696138007468321582679044855101162397212398209626828044329779600136002150931138611980030230474672419660381780681740905138667274475287418334411541701219555378933940888811322172239802528602792359723508991830917931397293669667134742048594484459706655464416673678162081915369467966775938066714277669053588388338230336669214730181231785275334513032322046149147080755014083219926018957323876532045909603725170504339501527670246786692722919871692686025772575029473574191755499374581718668114147081060468273967782660264481014160675723400648177605533721131703857855816846740259587439186860221686453474595974724047847342101393512330920809384122080423717756418962243683133255420760624733068927922969603945041321858633292049105011469970748149330149328256233403187083482183689780746216015205817352690998595229487345145041857418780624267920033749736651742750766718858629363412022556649237010183794487229634938588488593906837086190594486212185444483757298560228023902606093988351818814416554500579357530812879458824566574761796397585696304990410054281724713500539172449839163986494024650436620377703234364307822464814748496155290414095007409479307429808178332673108713821399995224527704819073966075954165312326393296631189381920245513065449151942332385231100450421148954058522677223560525710387152476194113055038485668738962578925085989798851290267457897757891907349893538654347400745203120958371006254670638609799070813064525705937662402837252773419706503047918150746160173731238770220076690691247811539205722428897458104853191376202517914263734796865025286959245703162408385982667749959075653329531568937150034682936401404846596655798697400852478107472927330381582925467078924050414228240734601382572250447388455039303412031309606616498883236661602189061085007371947264795946980379806472501839043300847504577571906270941394369467863180765333088873451774446053888064695378783639456300220243985882685163251086805714929048491159947874730222592933344031772870264256388786987895064099135809219894580551027579206712499438614323906623523462670425435805077950798229479087776152063522786858698234805099493285874238229826993744620736080180723004954193569981404135615463488537350434630978717319573695806091700883642520195068272262192358175246310723424169229609937047879673914158505647222763641829505864912427583870182134001115532534905822880001584022977008701567785623021765601158757784750182220970391424063825744333785417392686462487877813158595833324190564957166405554523469608259733268218476720462741082726620586731384758846931028705978858987684448163146796715593338567486793150352026533989863142140591457416815111697005068289998364176664480273581390733391836007641719859049506227925960565836896425492379690544895132761409922561482500541286924039590684598023349127450583197039210013863016972008982236710918272831316339956870523338566015559750876471713043350406115612091967836376365678987861734377316150766165636321178585394690706582332566582059436043637307762968976101638360830390950549841223825562589314695487407421018533457157430441334615260338284234634946303755280003567895014759570472132465020978559729860133341996294871179457813388865507122733397381345273457894953147978477328151716108237357542459635821595966074192067890319647041506688929713417316928218158852997658492826752034155284975809055284791682373678790821720287963762396226075267339849636349362928369314762230620229404825073085671928824685681815113882629259941322285535873311885857247374137818539417626183966560206735069040405004093550993479413724517160414059292494385075356440091489470031395643266052286559650552980633109656683880803626392818752755443153718650989797818795721312109698432691874095008321212968812885997539507596102768398212984236458129240846234816723926466555949562293737723022988421824750965209475451480055155579119113228762324554337869213813845056022401104301485968555014460401787141773918404137848544045003213738289989465327897209563073790694560318822494869353278364928443587973419799564465568192001189767973211876502269433617019287910329055805144997452888042755224261060689182655641882887219239167163119601550453972483729019655392352250701822431537608943915511778839603675725404724792724628662016021645652859527189126776614601712644591408487220134403892607730012240272114067255971553141732387707025866026368894374605238729724354281398318802770811585892419832989010960837715407926585779789996363516159303702240051606676811073342570882157180316162318109852800402472094979045589070533775749653153466566448099789226286106915477084817562278652492669248022732482741927881237052583506420769207313865817478309054844570687586569277640899051448699579686227702756744970662975320807335498474591504116170549547287552571833559684565196827031573492011521555205975657336491584648322277447791791355094006519890658577905840510551192273637344131793892309203890557254478151152293247487725264111118782852011726810479819713427743700455347734504764210007743964526076134099663729008128505676281785382594138069818840538480391947542101157595585243266713444711767516627826327165145568473471037188903687107518453013531179232537069182925403056064592323547057911332476476705043562703699948473691854686343998252743684465113075929727829634161884326702327315337514794114097860138848758929110442613717797688895097451015801027057899792015310839178711180965778678466228252017012753773115919450878281219259812995639540402973210814806958280869669143618858124782699235260834672025310496784050325047709597417009587323287138191256232301195464613060608372305594958181438951263976505464127189113276756988685359073491650820115532143532298987986048780480893636738434384471909164002187680371245568798774992466101169535393454571177435248973016256303041955463980239039386977087250407951667682583603571792690202431863471667408008797039140809433424048299939462926704797837372249880630388178903818834624041873091159909263044065278219341046155891845181345344435775642638804448592235547883031016858973195647517248104638441230129396713900445725212920850247247332504708468145389364311397608203353834167732712219574298554351744816800676567599693963089197329611213225199427619961416547493687358910855002799265009305587291582250923358358711670645895005947554431149192551762610774983663537255184139315229008795773043001955447776703540868482487100560237214012205677271630752083991316293629039397459690194178933199787254754649538813427126640026878871412614950685250110372601510977337714361924046820116346138695658128622901364462889338707138005413646474066470258434052277739152579636734400341863277348169532143357626523210269350175180703098503017059667161711529578381870345597165266911266209567905710275994257269641969684311699011627409875276340114030685800556911509706285175161858773920921693092282097767649770880896628758944829464905521477267190626268243432808844434386460258724747624544259120418471699590981431520861391778802898461875451318325381474115459235688350303043617755629434354443016828849815925870403215435533457386663765507011986477084276340371481751712451378855391856302702772123433412155600922181335258884737944495635611113684801227205474451030949572806438347399178850202770090525480027436069241043574813555623698181697503234028075443122320016976376239877301787434901730944306491563763008848574694391659101932291994658559004338401163137312172503406464352155308568856469877035362476956020408035995977781144487075947702411809270818962151851281416046445613900386042137735788805038525464906202156216169100171467807701937955920637806060751678114339092682956236821469091726501858335843863747640699973012737927243688413027685047678739768408248699342510096187210731648059838968990721801658265239568038372755000549415682744723395729010822334517887923385721507188270368442845335565496183312035253668014003145784068825570040128143944314833971671481327282201693738181507645753582448237643141683251258555006042694550628177943098160574430490161403626974193059360071979946699922441949986540162799519730136271129407261451974167696456933831838090857148607568061212709744195801092354268093114231004120138302179190504130344408898531118019413410403045677502935544186194089261098446923791598842244527949128637663305366896794736342881533566688847782471919708213420189821295623565727090610554396337841898998299158956948199822379070621250617354390376081213075607229759662823291467608595207266692783868678270759188658645575385579033663919905751483417527064939609560065852336786973011458656280818943502030892232687660590961936568704803214047890532246830325072470657372873027730669740052304212569751189122671945087989925812098186195082955289368000400329452083002742693613434160715685251490533366643174392561508454926828227423292799342721504036058645062089477552631986284243419271871284499592566387829425668031430250842033772619703430623740994094842359775636666330685279835142677078392399269723484857792903835441098090880215483417144886755549352598152826082556756808644066973553866079101409912597828518660885931486961963226033564858326750399117859159958773881721170839449758446634479244750356166430095061110450350973320231619147260854684250774665393516718459294337141515128819032552854165040806657264152608890573628279129002518131180362001605588294356785278554699815065065735844979469533667939884668465599023831298488162451914199198275006575172041341358765233442339198155095663712288221775909862468467884526911567291002830983322571270497635716527697140615720608413265689690856518599458048394561450796730021726533207288898942607182094988975957797076465498615928073686466988618790204175248534813907366053915297244455303997816252007438641715840378637629829041308990491809897324874762454081347325962105360981407438076750165772027139274484509208347879646751357864450757125694432820612612587295060084539206456113818568100267665361943875885031560741138727626790756165902952120268210834745823591517467659258465182257513842524154296463034251801092664683524605826223084770100041561316784343253398715372473367204735489987453217540688658977112318328089343184768810488782180967580752481549560348783473337818018207608348719517504561029047881305871859976018909563802687393180895558975471430650165043694230919633315114493665017269665322517715284202605023879011067609890080737236697983796345717398861667161487259213156040892702377462925081610316893682806674885965949182090949544429910091774659566546001849947526433500249723276687813431237091999962367525920494859835300901271280122106649776004349028505709351788903450182303717416222670300258010476339194844801270808914099731924546864185693220255300818384158887591633078190843781534387151208184429390606850500914212326299322317666958312870217740564980901465492467247586386610372008972031523586239888696980546466573724735685935614132346910389077167868760083357256198215956624482510707175743727742431967417771767128672270708224608891530575826394897213565446928511278772543844152363151615670532373111302001101398275979929062684812823877317042854670006630975705317270837141913754784583408429429213301153050709242349453884270228378143167162519640194432385628810044365723037567283088208295614821132227763811369637142333997761652980359792300219728365189362690277433080198673497605247771156067778918123471105286485184614201184336195858069882510326927534041082969426970039638825083388944073447768079450074847823896332478450757850217440730627925412974718124351357376540849376758461740038017357800547517662732447600461795696032382652301140405871560067167719657140853754135833083849677261963253986295742897026177308090901984818393344450684759439171705564655251034441850345397279500101582433494710912913109574672317035860024746407497868514104566843426333785230561302774575908321244668365653522304134989137681505080008574076932158802279103340265282837745580083544161956104075723437359712106934380352847398218160931288953416747742616543908663422685299249918331217965026346401214004735128019400114345702538861519841934954031403536109254025821519423716317931320871849019468561144954521526106171355308110311784417203086884999246321792685847804577820750872467935398656013884237910670122715376441274048970422630926849834866668128934665278199675191283417320695906242698246074836701462262573489906182617672077391419101959654533800451528949847717019913765784998174378969368333407771524190108848479874543056278687434765042464194932511585001824147467561389217608725323276366721226558278157240146129794916532837198182821367388037080913427963319100113736004556698156327828090966618909505948768149512361423426281369132602867036264137692489846037643165801070332194654640169199397185626047800567425949374521645892004708259051322314521226169323702158449416274622061950404739309394212035623553970215291498760295093191408993937218359337388664667307069908364716860453659243963177534398138405147964557658242482596897708315164297412674424439951856695500131482311844655389969288248055025323895632979781346135317252791979970558541239174877293213014745419265951590494837228239883333951787418581768649878506231441823278722710575404623689794428493863810184857020929682638965480839008924703137605764470331122327083132951888333777939702388300787391912177216438750964097316822134293265219399319013884900669549804824043485146132253492986567728426945100714024503599028320138541243499831757491123028539220471826460312927156646754444020340439986175540406206147521108090199236679433014797881244305832695042442850831346397642941979740877975220086493691123352830243477497474430302843928742583975457079686009381342158124361238685161714899855846089949156526830160003387036100719511039938060909927648115340032247374633424251538167945945013164466031032067924419640928174892084998350899915701926761940282377278995775059270586977370698297300283039211637510288883858434111213471210367993485991870993553228176887859690291954371515741239907195623966201857164741184358076776877569183770861850270633770340958267370177963178951958352761005717576325392157015342520971345255849763792584557923486314572157582591422612032728523859743130164527380607027282925142621172676856227105175070180050121285006894404644953281749337649982530310263689725714165212948866975376088302090843041664758569281363089162412685368955560063302227434832642161753141407304096983939621954961787790213902056699250753558331355116031087692816356991397790000030422741402771927736278162989655729826409363789361800601729677647133443628645856507508809390206966510497747367133840070758184670970823787680256527517695558210617936334238423401228081838150847558720660453617789855407030433310403068291405155151642286741034024244262571692620347706107656883672738895804086846726473922273358935184329659292482594992080444432273574778552602590594457244226968706879270014662760027187264028213363673904801960614978101967097420714170211510542491653193090366521032235329455952562935328887093528405908661227740611267679929734899305817526001822202041512755437059226574498375068766517666849411071749721120713881815624496117893913119877466081634342700970759873365004024111600016881118207826579926079223583326149536203351991812221413333520168834900206742048979485574324220278030056160333301791695104653074974661126378788433680973846038178900073518446737941671899750755463995922268637061498400377818175776533319621388133590801532533011735743415456822128501151679214067673203960808205205622704238327019574605242476282867014365846317911081701316165689432978630540650391884819285869233216404909819251206091118726194515188110792174793469820967966796254368206767265448045281672023412519467304777851759836552897666469164098614691215428463806063136411081784824803573985054881760483632466600022949877885661344937504116995191768732413002669204600766759652023793688131217979867136201369102624279416970220744750891204090101414728504823713746418004694228703680390873071832990695330603194634135679390053848279784071866595033293660514993820545818227979848943425869838371623921434245698522416590342581152610821111430038970712521635118459782558773866237587703176966072792564561952165241224606452270904417307985138384546921417344083975448783354851774187383960205475160905938885094050893690359188827475329434792515203033950148108677809257887023250859384068139025326219825677639267984602848119761001741632520594552913291487037562948735424991531129656273803907657551404724879730140713970840995929812036568148807542196585757160256360621718956791224173318347030263222022045428674886579918776876299943488836917511022745574849759662720249726639166447290674737006334616454810211432530448893568604664030559176383971990737423089138888448585139940905301692246081582366552823351189374010406993416067808629852671327140403087374419088879814238747705134184390493659560556199755675857142651099692877712673787032928836526044058802213194597076009022637255102622394727175740990740274903636827931528930884816158667461615860647485961001354187822218838262020929914800573793931138117753151517928961674188051988028752350253167566488201867828835266062636556552455491317716431518204925723128960106208240249325782865767929786224835517557049979235193067132899956354662966868721945968780440757382242990693277884560838764432864784299015919161748029693606173979054108980248097640711610902127984091255494503191459366769024310564489962561804108973974717280860108495889653386958950493043573037321074674920900405418003866298829396461393655842630604507470811792754145198805348958338449824043363186187304739123838705464151632718833018648831706595223623810519764011891094000116677212447148551908415124057807905395166093523539369384880235605534278320266379464152816424161731834700293015255184163384437210722392780605740281739204037511439481542021053687319619457533062526383378645017508445436643433218493223311265381918317380160589958184195056935870173603229950999832648180400654233926632455666686879790794365741278962812920094459210642078602351684925975766446143288179828452930116212681874288072004193577666897268403969663962545150435046034480298178158090557844270719637859370623640742975309149439064333886773732716961617760361896978352719570546281129573274720485507612173518568433495122683469233075224594697838866380367147214457583015011175328940279804091398662166258469752566904086681270543188571797318234205232026545456219999614307318136951561208431294582642204914156647634879266477661496956267562624507943862749249060800654925754099794918891418466298003894761711151665219837905260523151826997514956762092559531351092542795593437761238729735002693858613588171057944392621824545232006477941632966316139264519248432104629036240784097482705298928139935137755980211131565057228549822091916872329744610619355608675823015702429895449083219075248499899730905870287903296570196955894827872672972072206992071090877185381233762211218621545002313184973985684475799264066796628655204738984080709244116499823943992236359679073291952041983518443152449683238201961378401100942463002926727486475059740899689774816449655900674930520320018085167287168387814273393968284807441943592886831561642402052338222514974102577366288642096383063785222394025669734884090692273524405617337504225469135376073208583478904296300884568065634466352258456483333055707888076132431277822137999045061459042114084210705826216359058355225705154024880396937600174014259624520047832122621143936823333832083864327698118596447883449746457382857563512155287151965521945030315322581838219287873004362978146262508536192770400142389851602743796186658751203904449055262805884397964410253744501837109319881487631109341061936092861282125572479815996737415831011284459353746021833352263662834400539582568001231500942872012893490953372644715709138382445908190564948717726940308932721032480040614737502461350915863422443936476532114449534317027527040546437017343268229882673378028304814164827682087680058264255619480048983098240268422837028564572448062079728251494349546436028687538464302529272290592327293780897858700747899684062831054304877095456850326234755654816837140550610874442998423419258856841864774825380170502706884537042220355605900451880337230402575148553577291290118700102817512643788617051875809589279232381777313172302508493130033925108169417474306146971156322924550646636034378915622337852987079978277701235502958500589236236695592813476509406527113571637094902962722971908291385372244076344275420886872218628327664154985846475147773717185384817418210165857879268884098904677899837162201859091017487811552992983767212375511961096150610072033159845909476600454889958082127533422825156326312745219046344196126820081171442877680118124683579859662596997167613029974255970734636287984870889169784233694490693838489622660280282439354161638249865879834331239107534554238965347297455867174302299116045145672169189350363877994809429515002822264448634289884087053346720529267058056598806867494408126823361706804994016608987002156209366646863162630291011028529112817252656196590786713516643579427340789666650438763291781674266395425572205017474915020612897853252139446490534381170985756766533951102936433871860852120972472881020963585599864082862917018282522177477496408819181619603178193783617027280999158339382526379972486580879762156034142831063799307538815706980681634326024264370560794111701278479001174534550669586045282856316865869415858655253230092034211764038371219153310148471831946872862694887679197894128922760626966066256208861997969470215251014128566047258208005356372197187690749851558583287593333782949854921729226540326314010681303202359428805125136396340336706548528779402034705436972276167738820307949287443685776528485106744783754630074470479354959353469927391152913721139077931493828287301516594330518274228013180171440759000317093783255165124924088559308668654631733180317420764078360451940050712794328358359652338387705372745571965048212170328724155389268289156589405013852769165117456963387823845638439959176582550820310297243798803470964590157817070140852414689371980908221539022741043073987511057185103703233830611319213756155040851911657229600530135859059530289271394198872666279180956147356331760664342539536258294097053377466042867884178623649891917840849754114176000316673698594824407529520871395861263767698103669490935718560677525668351111204352991461775552737887198216970253950809579441425951220337808102440121433943234336457492417637187259049693203740607962305391996442165404818949189857852468154471334259732632891606007430505716003056581712743966790990238743113048910837403088286193077803499626705053420102060643429960800430941354344740873751861439082261320520209295226197469861332810141598696549525653369046307839599726119752901145386171859516383417930603383278636973591521683067321649660998612116683142100143427526108631026695174374398415183952335876581408618659587882169537002071868879092228218097519447297336269750196454159954539095090670883030022201568215923995341106580042398217605996604857738712006206771668948254492537748372006327682480914260794019635513378782022974136279146578576249369712441139272890917047733732466821371822033834233952801174883747375008328607695658285220139824687889187126188877772598322229131410518004558807886453927004444230320990897683118445034999923530716576635954972744281590831655894118973907034037897452476313788866196703017844817868444488888699065484606466058976506418833735264522884704760254073537986860616765060748573402931816483161944069627975586012633994535376274009873685615186341376442523562719664664736373806847703231376953195725866554025275855550438187557364133205398942233283240998872510349479199977247748041326821221378965415289651749612841052047533496597934539297940235748057069709883090456584984598511712206580222069619313501940547708095510207752943748624190184193941533321206732164250846318343403308510545923503984290885027284762600797393954542216364210134718636870926999043997911794655595743056039745192660619092679042125944896956693750620110550690782334846995015910745434469443764375527797031711093147664657516849898390197520224602274556396352442742010937646508128953840869217681842932423943360550072394430561850245857237583510261984479426475162866347117434769261846650344980597804776150604176413171529370947852569971940863589137183344973131935082405762849097536026288496337132499212255043222678295026598160348042835225889963216107291449417045403369856031782267398085774154035053170599799345057853269442082311705054116998966764441806959574887509631506382585675482506667291623517622248788271217807350074345573323927711774454627641585863245870409671795289459772783084552865460149953782945319718673400352051535733573569080587549748492517759385291307133606481132972356808990445020291958698192087778835097862647936758831773172182110902579362924299408896438691522696455028792438365768844778551581096736617996415510695549858793494136901169550614903168279371685972858244627674757614053430475206761484060136462461858427884050212765212169287231286760809069576507268699645888045484937751526193267396639832745870935733459764786398231660872079761999579521256941003589158115321547482899089567645317813692046577435540956662115031400764120808692672739521785901839487529803147226058555075581911686396024186717003419587628054494273533095648920024466239214864963208699088063158007230262693808836960841372471716072383933182600837783157807611166860201767297358900196224021489922211276554490713038095861008721602811513548952705910403156665638486173632465438925121851775088790130572594792305803500963989692820253317073059634942841379248912006816359732981154912150074867252886668488169755252107820191126022580738662815234117478473457257707616974999704662686258332517350690229540527044461558437052763417187455600599616417235304732811436196032093658638271574273734465190862963550928731692527033304048082172800650151495808307488589456434966204774934322392387036156047084440784562350046174373674229988669059570249456493533274594990367490071509839039304610796417750698265668552782843543309793759589343677326492785752249575220658925498130056225259307523659369008988826028530074753954616261378298130332681839562453775063355651008817195441963364741178975566807989165797008389606822894548060525647923140862635487787793685016157980783300647736757384957202668111346139953572138360438857822179022104729597256930485047633501805429686557496007350872120523583472285976923595478606490038254777352415476181557322949024552339373766033315477686325541843960349338596526159314667168708138973558897953977755520514803237862634910684673814745549807913697045685747798352925612263505334454260553411304550203222130443169894216932747271924186420168682283713787403655610554356456182521453208731556669098665085924388157587339779645476215673809083024115797927087880764621798367146326296283469195463105355368743786621885093859272871090613123601876934031976476533176137303134284443652492965511678047510005025847161584534813931761937362472145442299865625896227431988793514798207752345795845698416000791852325746152124797471433989075330423819804064528959797661343209560789968730132321803860052956327835634951847246116681019936749561012390474937454530474999946471788571077109235257655088230262666999064695408049758399692381584460864901375640075251466442349152741327439481708152631996726754817111421587714226200498131221666668663163107965035533141891662300254403351028373760751435481487458893283476296098379920438199005999550770157899249281202795236454537320322775441851613450337623058040674098082429799826841836847393205008004849474756586365842740992772358888054886975352089204444379221584276665759057620864196330941486045374031982224965774379355761390052413349616076069005338166675343170770644897969048952894240018314472257214861120351364937474102949591061114103483112668919127126415706684034918366691775760106071900127241573179246345559539862733714719296424489197880272890877851385054333398319877419392133418459495220245107813839956161437161880921151432253192009027604831153445772109630719449601190951966063672684127022878198388583225307004768995054903833030715093980416319080096592755379262440011499328477052271438724322076694782318303097430664264791024651997799331985289541176445097977401612142413507613614348781151646355865602073084130910937473128037694925750130789270197806047889362932717551177395261354198676554165838019273511161873435558113273654208342924998987614649826790649897935898127307664630710447576644553998218605898179003468004758872435704933668760030225318957785250895552310783805538198432214539840691769502382574637862450468145118443921012556916507133693222745312129227250622992942605185667119884440199277832399341217420323659979942331593888655019941756697906535951052531640743314860093237984022574706200647084505423100859480967693497354188708368425148967124266732839804506418658030928338513333900172645350147282500886702063818386530662305543339372020883707129804368065145273027965837724271338345914474841284491446167457930423003171207277835788621598178138868730317731550242226697214371428923231573374770736431584370825733234722617637366923049338485633010611720113810038555007578909501985189246073826976674620185647567912443938896143111226768356422208123438332156169723938143530974603762078076466753187370054109566439020593477377761442459677069947214263519498418362408426877951949852994955839028440454083794077013737831098688748836113054407546064903435893098931139167485837471662799977056838935792725819587194061167070747539179294153701336852560058497588336873911241897463241686118690955711695338694550515489273149821386075256312267272992060358875400610659721534164178869288585791105195782793933579536237526984959924156280642622287393060380783281860158893722873717732358069964693189645068224091850779553770559811986751113396466574347415841106762990126206653145841902350286143320484836279529872962971997427388067359526404273508683443587624071863674315271127937949299116399003219108135237307345524433713252190781859605618602925121805588604403001009610784624269122499464648954120943472219226617165789945482316512415766828564789082352325157309838644137143508249038597736336189176408243072909195929531937351307360968343585537970088834823810421882650432528122140177477556389408997994902859476968883978955952536661925932059562953698821903751904027358552604087030577327816839285437865197289577973160084746784097583746867758658336323543119648830669685241357774459503951066995832589207370892279057525919393167905213129562291265616238958904195589550463170765461152453191157803834096405754307641133821126600255526901519562655196879825506168201307387921610086732315122233484741447612111222553222708223970738029947115128811492968230905352309103432552394665280287531551923935839692848544273789011387943713571178520704739726517760398900339798003900523758863770195932284442893637568811379398512622048705628850509016911360604257510337028734116539370154527454642397456778497945258969094883405230831187931825523894409625313135081047766070963156979815012393874536340671057625849343626994809326701492526317987110173094317568887695858568106847545927894364669954979504780740742042663893255138303997177967017289805127007994291509333476010057976800356039235133554384135459432259084515915692480025422345104965775563283565092307467279458308562998177181571811589796480888385389350354565867443161522041975368560709921495202192023731602214173053002324995383421638611864394904629571880459865885310298446945532875098938366045280129250090181688056577402778942972015323028006836515591323820158391038894932510776411842241241175232003919088434674357359040530555530765885844205147269618605841368075688649914445649210319662423167106573167502420950049849811982081325616725698792429771520787567575819093225290973729652970075365623231243937390985147832113795059285959448153550645935423385990548741247432809091468643129200105635423562152400131281556770303682669635786558316137775024165251802320956162103178019617297206506743222457195854506564225200319852090913423367614188998899843713534266109875980681567467046959672761703218110471326265526800830262662457705390829468034989704528708025806340572807230419231146521182739341040194866585570962041322669954278846997191240787879883917493101861239777538705141569941243255978402414193940461387488456555746974563655053204431518807427545855423961603563832743635456507435147830644277199043665406276081094029374483358228646355320695814239643652516118432834581560176556358696383639211717784436178003125086711818390696271586472535694127467509525432482915820867823153529035507146746898826513198646778945279751026828817955379122886133619973528418194588199050871323761377534635618834073341545644734155535379146210487076315224193463444783120773408118873658945058990942659380377791934830238277176620841794710422476367750094873508298013333704800436723444417992274278127137089698528877600764354140060877814404960745240858808112712950601069452101515544564666797751640015683843730742590617183983252003344054660972309941500787246482770223657907873243618656976691916147508586573518455459101575820564876744680764410346434173449507594639138839404577367575901311866910645815515421172723682292557747929887518397285510351186865780216939534925156062867154876980537381770370889052173319265674156647545594009277191507713742013535373010758354751422234960604380568527852204887911451084408427633910253561153313937138188365774764456138783247751145920519549843763287073283989438408002302925161529487954364607273553880898794941177575284406128988791407071897675612193398732588972214557041119629326048405398667183882279972110718715188182024033164813145122200180742843513164231687820845372609056348251564685034940715076618103814539504547767200990179124164716487909127583132366797535227260469123600828701097910055555458026198710927605475093528252147014554369562076259890818779051199441735905473601168549943305012370379213831637280603984262772662627336041284885071670068605368952073812239678354699362161759002668930138547938424420795291322458868577313041623138106691052198008464250539149037834344505352182231998487578005381236074566022590050686822435893641039306090932576429406183719007365165164142789624583606606850472358643250951275174840080783451761600789757091628989102665655131914534283599526162255741246429318524209299379045126662940212472628483525626022098027649119472054970656711955909310724744626665858011918658593631865834021432011061438755498960515609093556586375082509024740720674261138821266910335369620604359603567054804937979017908114186752533338185088822164765455308562778332924522259208669374435824464634056241637373910378558881396186978213855299521510450522234242836417600544148993781043641883097821490803891538502806479317485405723792191328174982738199620643907351573587303757882330864123952239840018436642125411569690265061159141264527074159238079370478337707773018130928876701969774589976529745654379577924449433485425973338834550512796134792780285750749654286484179071656624574168803239937685073423147268495016197167776328805343176341496359366877511788322236370094979887335511314150330036149470228828250360739693192193737356515806990754658298991615515282613190016572428455923548079357207563002570627196589800056342398046392824754878491915574046231694962705589897376977328983902429921323620556996992140023122603400987517010192081869167407262144311956346362876748608166200811726153294116575420622828594654313094786204438420965331665259066788090414787220496200345322285232680842314636948268837599432508518372842600543998175612993348148394857348067112255537934852011118460323043836343137757311777019872876493482996341875090214043121099055024362326285558558583144100179633832213512895736229059786409615608241720989691764504675055791589324819507732632334545836705423541151379965727405413888260611714608488257677379580011803059110566647222323293513314239416040319611584449337185453935950861413324955141072613704551431918391862723597836823900410131090377577626958791975606063507897550691308264043427655782259794941286873812931483397705590940557584300059119904701338300826597680274522977197596938771552331190088781039989471552967686470736121057752165943014976167468041497247983403635764227233903048827808629334907603959042349911886055247877763684090796810937963964109725770970282359215670022207901266567615880569158543898591481532125780518199374601642419313229610427005823710412524431167369861524061105114552397187014547604301102839774703893301507980803973300632662546927376818357612637403567101373554069127587473558187188468206438634379080142402110445138716318973526832882690470185647258209000358629620752886188312042880151007713698271471238583561104381127267351235990327407251023919433522099748467537215886657592049846666812502410162673647362780726382610033756605685172797104129450893889456977734484154718297487758878393140097991878608481716997091694579718447592213438718849253543460948538270914684080384405780954096272889140002840812521493104240758643675809110568329238547900515648181521882558822296733275734226149217850866355460847942689196949337781790982787455913963931269920560519784429307387750309273862881613526916318457421327226987783564687741877456197133190455636298998139806770362362490977613109167168469296905415289487345652689355636123599062887663506858728756202241691402478825951622446985410560870070623519178783995175274376566554069667647996270960314296624630614468375328857651080229028781304700132251506985205041187197978313366644546028915652214527404652037921063729827543489595734065928492282356213414624235842232176374089290594634296819419370748386359363893698853284026926775399345564736661273131361864958916746971496041465159431769463745468383450671112289146149923717173445211420937102525412213914374895319836925495284405021362935661376789762739335931324964847532840446081482590783516174562940177540340036802181436939971914927780691877560484320068124919106492496196045159397367659671082896934112554330911102186154455011484471848773178794117416822654853826303086027284731880747390649899159107240545665325799003946150946120539647670878426889548330183303770982853009849809817181439751330030423113202709989799057095037539121167813845923131618462040480662722222801143775994513306398881033387480230278222852019553830617873016257351394440986601196068214535378459924886256243208618961407027445579049917576290971760072309220060617103246663229265080885657697500781977569332364993576837009831515046741282507306908765313563987762972842729098542578644317584777149549198048751456350278513827970452840513188646336461929976788137760347823993214021881927669883729448796134054172729809286777438254580975357568614671442398038390254874029945288205538681056836244201517628450211032510057525825602572164220945157725877896431496101560815970780500115332860280218515313099141408046368892876259807461265225559310164864869348211563881656586613731615754309097614074992286026761132653662722841861226467374708065091758155108238623474312618884085416803802637355025872402871100713390139717227559960619750726215038187778167395922805012193291069207017879209233484767921329804072519591957575871692362544192620701842173097291151951313250579003390659860086090157150107952622641015209380181872084419794703853658876475435649915438241440673654788540963975440941063288652138110247531524149137334214548414081398337549491200753019375422551040696879662287083192761516814845020359851738303400628389228277631553673822017693271021627155164044322246189184994253563916130940879176562950096824320633586075169341283855763381377363998173760192565598072405816079857150429086594590658243714816363876406744212442818841131430005157753343802605291518530808917504595707558863340320573219369504643725299066096162220343238598217295598596556994403909641056464053508889474527272638763454802890682120670570706759091919254036349537695200815328583931411529986119554184212467153764421653974318211038258905516311130093035277396394027119032262432699545996226561403221291353295740023952257069919930328101179707250558976875577165971215214878976815125353984717062758287768352013173033649198548967005641444404091338722218250599296221544980148242219664313288223146682645472718278929336415833937791100937266566667787866097126507995587145389868325917081096904809208007502434238891172671377708289051437635504225277860001048733277514314369934653459390504343371957001158306091016931137166795632297298912892095610315270269143497341601825941078950263376723076621548947320998688773845205406338536312407198961037056551963856087011632558480007267025393682023875791474197646458384495980044832336618081149015067485852867229785010474530623382231978916242192271708368444896941176886380300287709887766366978182787214823978383267014663289160135857836795342900624826189940641318888793509413611392389223434108458090450829779670161335270207578436502722454364568291182152441244419384403470096965146687429738964174654847649184621156475596314321174194407561859116316552877396246953406234876306341672365399917922267628293856689051595596144733559364410517466014591423373692036091585061586863491516091588137282213036709431532456550393844955414426324513557716416577556783616106798510308198506201224236340620158122051030212123297372569107315854765979897444217067812920809209443247076534751020442488439298183376807965138511152818970723402417484331757363973471686801381266475035696077578353704166906892085576602631553700069975976738543198942022238618915773085356061470039126443817721231416765984888685230049954489786223275520394505438268740821898393019521178862706762478565952100620507987376619513188540348073284348270727962687586643940597328919870632880903050752765520980922612522985117097749933371257916366620869203175793769096007148573551248561132918849134607708707763474740584935121660292190235682314855050586486358283162027497079714607361484931756702096311873221416425297884127603153825388406316833991149902840613062709758901087836429831963193318404690274907795140855644790021919701157546685916932010536246101677093336894239867565028326274027639716207640839531701952537454030265950618484509266585614936621755272714424995945593581685265665520350487428645724992860862867553350467145073944841308110299134090732225918298673026195017944838752994391336783949097381928841512456834222665212560320625351812569530574655692297525923381322962285673645973176058129196404966123103454729018950342819525279522335651935451842001528035762395037192792147986505595452803017993984308955633236335106187562967960087215296931912120862494108288225596303350475489300608797010568426547834439861570065737562351948838703675312759868525614923390955981642762914817843052349564086800038813296025551235622543503069364055630692662459771838434143683945699415756740283085305327387945847784467013498402195193936936531817780749432802023156737305683143098900042547685992975558500901059117453912184089562475725471788140003640672592039909807354714256899514720789612497183078689722735990403692561737627978617924023595370822921879240930987793634758883748642125702180357754585605796487888138494272035024277083141697199617340087623075500827460424041373555871799018825946700428784418941391165755710393261136435420831364407576935639480919734368908116848731925115248218707944468395479743429380974721479293414396339728963120583658317937083077849635429867968888747694299292163401848792743853065271781129929494580651033427477187009150360543335041600408780467600705107036164893503444195972904182848918572447837612947961639332410310928036950984776261512617367450717928366257784979565475495063529326754491333435629365718733674601973465778106345739198693057341273297008906007439546083562144549289817456324613281149546240360176610149607255748665553786711708568327447236781341214982001811105629302838863056122669452904512293798170379421612158406885514915031903290658535119091526373803056125463997313083815079294494582005779352057507496034398669303501568671026746210252245205164565906889651032955725060676450971011782591080099823061835830214791589601969014115416035200434779221905458668685628572315677333016359404520813015961092245627017317193458004349076107122288984967763278981474938779099864457534196504421783140064495173489825729762473853483084466956590661811766151268240879578451719855930552611689049070521760347891084388338400783637305479856196572281516015221265872794812756017541824592386461256041612123093997220463693215257761820236644150835966407200540741653134656527160163823130935918817555105953555707411070425779265024090930202746328229875839216748532534835590304022638592870017784499360827964077786522186295192020847605064744465820555534883190553281196271073950614659252057770821397093455888581766214424040614662730720773159362013441595740448935116354271580495398198125158561817629261398275802573488138696194252259495532082853989149360453603599565895956405859905461028708154059424730938921894105670737411696538521673479657721030749327117958606583645796993486518438039569885438133304151059140086516034322256763744375817861917142623217590867841096387146842734100325486165297291746133731291312327218282456257077829965285947257904440476251975070317227791069007429966686250005724510910358083571481492757431612764790163317311635473017506523098674207653686119917189219790380036696789954216365592904640949178348060762346803956220927023442907148198727463296800576959035056903293597668628903136260365748573970269320890287321677105353624714493908697570558177331547960899659885386144801446240999398621674673118994686100572089960577797819446879298343067556431294717530646876112291547170566282881923470894706254158655797472046569992814627012129759261800170282740406210408022048912684646912623545473135113728287759175448184335801975053809068799420975642418850469229066040895671228991979633599300436472921402277604076658721967076769626418325105119426129997197684692629277310861730181216363451687572170990124352464597171268465921051462178478835971180600123392045377274822932192213198730048586302847227274233336191127961081947980877541406122868265470412176590720820509093997496573124677863335241543404164204644016653666247293842388777841759221607565511137813553442254952284711071574370595070112820472646336271147517075895407390021903106338888186413785294223273151027317283481175072100633270844436380972408984705301776880853773452765059751610738461821814752942050835250874120416071617822421251321499622813503596392323726635692580205396995016891019106574724792640060805776220814522505935340797950040600227531264254290953780956670192774610895528114751795786727459423149299469367462712549658156412966140514921282347944136131547348067425664801016264635517949258636782431702069727789155319930358068253248980663880706683583871365229667112289775509217243231647557016382189418296655507432034356890216755103818654078555417020100130030156168926177502209499176658481297379137734682310662305886741687519957436369209401526062654553429263457285107183539628790016145089548486306101678651169298273058084883383684751326928486925935251975771213227950464140367096843410782285440480792382312384435492990350696220530939278734728338508108492877420382361445864630108433260336404759157267980434145231134078145591823925682940828586515833495205261779295920947486427909847754285315058816124465956539546648081379464063358720270826167455698904022274357736341439928259901241570092825803187532444834028370456709086035490009660292116792787575966349940158085043887877255263311001272854168610165237719601281321841531804478272471899810434288980389868032192184216777739191737441236492852313142460406442417019271829095963013488351287174791634414342112466690772331791305775984494086318250561761330558928186022973359305704792308778871705713519164111803568735678052963110947080896011899408713447356139072837727830074556142085922642842592718783007130309764442815592267999512860302764375670113697510602406695847240834270461983807052268685902067159246285075018091589826686288978186874536000597148073541665573042999566772062416838473857558317066504970234362528841034724338065678182513163611342749233930418031506500245804888720735907874588239660156134552403337378498387660223149549674257475711409124981715521815354238359625630592530499426416457931478417103114651017308409270585158273736212828122163461143518952963333360681731574954135429862149978638615746323624989222367103426804911840107314352703919311984497786472797475168883177920625433088990219097551980301537304677970515575037465665038600927411178060507711468091878614466988715956854471560971847083152294461955934710965036100242914108695122639230127354522201640642534734776280315987691331393730175466174174772415380869115639773667154677144315729860243562101270092992673852477234522337157438067330665401418655024746150516398795138818558136318039752084558970321882265687724317559564273865771814521463594817091950707581826761197261170699138553038144458398676988744152257754952770354832314724948698550703683405722647292672879696414683166411583902149205882839976404278569595253192925451032695478731684296437779360614728113227411537151660846227179316840802285768796766298475339007429559645102440277098427629622521162145992425110984193386770095046616259761729345455415265977968339873527648369155541583236038581672942493735010222212086785156827939646689311267453170140674942190739201575200898541813758234371935424040648182821947451965660792493004464990012390015518216824043679604355534435206509281315790708576996545481266455148346090158459249511317696654410554026273142853115451930225824439842109838694540750225379581906496124994932017851140317234955674587812178922035042966780162327711469821052239282094982901671967258201007449977190234445368950131414248252702229366340672807020259304823587940963475078403195037546270731630987486134911813677642445943925395615559131534038349219414255717797090260256893648700300593989236504576372072086052370430129748721447036401481584661922760771733646138295627221335797884500764325994480131660620290354935475383856472774287115052043840329858910463430326011624767267339154928988341819985432053732708414863836724240364139561658174549283105546092133489097040786682619021867305615111933198310669909201489103861342314364751272545836316476326292507146448433472547152662794671624975735259772126187479525984343936559515962522197123443363792139827301066474155344332984786461315774042255925156455203068248012609589031313456950474408685854835529136174906591921941254048523181628970080857457550135234742920174109160577190479590138907081010232327324075020191039378247971707265392815417049026659060351743848691343675456199501171809064510914924757188361570433525006300072190138108245648333460907197980015296880519744276810945933129204286779575894072713026574661886060788571393535043624736258625452232153001452395797246726805036380687263365024131798380695013521350849214097667752550863006074750504490414608029525747155895194165851052119617647676770792353200941089207788140710819949246500992586825360085427638781373022941291887745196374583787287400450030526537620088034942158777805001944165114680839416198147837877788486936078147113102915678328848928922549913091737107861645166069345598611205954717117013817624590329203992756022388503255626243691942436613305243711497224016425686380730633413304374923460100577124286783797164601353810059930072012685368579060349679381982453523006680986420478111491562308915259596232611038689348981286627917375985231495477259057292781008918348177434044275509639684678861438816603005321470711658262490244836628585104022883343406198931695031175273211459846028107192361809841133239153275511970161228229950817034229960385366134653484174259727119507423649591867754818415016451201986930273561209321627920123782271918038122398323677224918365569953182570800958933868631585915189750267396346472805326410091360560788246748183288514756407614334267821665130586810879370318890374760024762740005417439804666160231767052039940925795490993354215920928764961896757268238900393973025155215698443591922185057204968159268718095611506438801013259027037548201561611288444554433494733667631111261392943810165579592143652430414555603084828025659297294407884949088559104438999078775598296755944278677284559927086727425332772122374432024379999024115324671529831093575578953592946117150345119594430809287669817560118372396025171340539921149844025190597376702053135914977572678492150053417221338104926987429425775757697739590417591260382051424745933013421494124534355680772745694020951918950703956871092113378045507216500125221721994160931824189864266914799737004621295944006688056595512411130652005099986815601043035052452387765164786965886254330620364158886544441873531339688969143681993475748143226105415050200954173517780041530056380793108054512571763567075526246336382273583812934648684402231390672606658699023344216435894508479843269899046879812498745147123946505599254383605515866434454216279515777935937544508251098785388230152987342321083094031444284167078436379652306383510671796872312765584646927246400012132995449746300913401969296777169379352801244744127621719457894253330624686169974067784703093863902047080192413700404496490654736438156285394829873104542085682427608022539190023518107765630198185603245229996685610114961458839119268329671356107188828902044501376130196075925472182662027298507266434696071409551005412466415876561788602382592951441987503474556492866899694543484615721321603305143156606559499078036276918276843781226599972640531278020809089037689788087677047797250575865046257841369148412190458806581797922387280906713063463465506079936795965572573285919669560440649735730481303134543747483062717471550136675890759260457475943868548134696926945193436936650091012126956259156252031277305054784679500469642990589749537404868655302456314080763041928436087561568525352988515837131347625559752194918734878575774245104920513882779781041524577401875629200094782597028714843310821316847814436966948837653989307284847928336432676912255313348635777518949741752163936563615217854239109452199149224194086075650309289822685370736331262776690794483185901991436311301539181155762357300387706304848543761597033781550079835326131296049907231579386493013808087966257253936077093803928042193659089105954060106316213965127965013705156240683498743294995044874319472418054659095004796106851736325662707350155789975489334552983582280577258946715547903035997141018469832971531491075845988294563114810206409370608776639216728367328714565901013074032921962863838092048159105323185771953637658761286213376191299706901059996019013795278364351447359751034964184635549227097851272760951433173359288119345308252870428107265384068961949042831237314815599779755408502478624780070095699260075569346058687481849899804616971884050270159863248811887579766579155097014097480732633074157360551177110024596220060895803723001377257275508259044369571203532564145693641572877793687089511351662775524187692393823697091279620948734873845245418191178090948758107485013102687633387971480722561847505754911541224804619385151602547746997370872420857287455482618987389984374109389225184342887982696413176336481498226558181385592341543140177110974833401178346392931778953411216310349532323242721134263045291983032814437596721497487224907503054937630650272806241011278301930427527784711340381595260563877405726320860904313251949738285802917294940916630182579819163503713022004750972365576539581290155867085273990757843690838985533518513399239864149646838814863296833762651402742872669846095167369161954368406437856934961366974520790281966678280514048085723270095441048636539691734702023725354489923802680180999281958957763640543160517402768375033128339370475154207128054658026282210456473985610944043120127294667976395422956297091724222831233148080356844254619560350171348231025794236234788807296626182717533813342319720656673414252962361136942258503975993159776772591072222101272329040978414712600539923445738100927741756289079535735686839038384704449686478595493940696879127685788008437736290805456053078699428280774538336272319051742807374533258592118997690177272741811113143444485151847488214876071442339112086046881005331629610474769004872675957724885355978972557104212836616446352368391609747175497886251293151527825360275269633922463908021386772520103986565937833065804426686665567498546411019631264195220693850343606938023940093542354422618692551972308200939718782833955654572709920103003714859176460426567172014615151804053540398590633396559029909297412242989231025531743699009345619391303778614220766068674977758771504559487975661806187732090429291218721364928689928311210049274415135222039741040475510108114847713958536421056452210084222894581805430530122629563510703341350535858433701862000300279903987091478282209556802794247790878892626164667634225095945009979268089629459004848071056284925364523382042385549659348671748951920407069387736029575363133728708712698795975933779674333634975254498625198192255670365383246655913796562649182877398824521277790943997722093459225820054434361413972726605646090320251509421546736389580063680946914446480451338654512507259435364053676929243495699875154794812562269010956929342971930845377440336219802859253613546487268211317660646785068040432032114764146980404584236032449499204819011613392642340245383484628704098922175661794627836577361253756098533604153523229839807233427853137437016371322747152668875886618224403447871912839320948207635605812287848624706976057071745512242878892389539704753417245941332152342531175391526563710460811042943161746782575606186282023988008118841740093738679940244673641631536535801803873613740706978409772458692438537067437213006242432142183374718615604389783306843620626546117767536666694153753812691570923726726727731119435273436617289959179132511896830024651479916925596178906834646394044251447371359357971561402462486577844508666235205284168159433783965119146503146545930826511461183469779867674951770738299771690866639819113315373536465133000469628467948879464918045605019640386628824083936277250735848473167267103752154688611677366667346960920071918338405845077264496885996994644813788007461405375702543391479615059885480179281759899924319372271399091773218538596265044240858662943178830934753516468923333461696907717344863222595246873735298311488134812282005692631773973709441370072679514963971507126219303416535530213672347692037726607774557889664724961215139741701978848566064383927977873171766950673054254929835721949745933372297576551014993916724067551783285802787918533938980363198992057149281855956125036901495422414838375619346219434214687862411258678357674639686672591586787628773672438300991452974704925527693157782480167037849038425404534620633936746919725524690635571996953400261583143363965805777946828513635910945937781509130970264725617455661533040657319892382971862607200013167291638765343697294588381713794347117558330427880600283633151752382330345977195265714018623329108073179123793921467978299172902839963361185496479677866157131006080603794689468456567821757140772058898499522746690775798051744384986714997275998246822938859407673479189159761340454655021696236350302856828057077604316423538491293413612188186872806379068878725354233698071102323913710157862560327136463861620152625977005774017889505177268381579993260690718538826339286102411585891497625195401123433361157277230064672145225341976782171001547673757405563028259752048129740668010457958947702316354874502285326399284458044809234509607798925538485372290740857600795304323739324630793729792804459413896360611046535919576153173484408147618302351330659312193912766493934469174447030743401496549889357320538162350055635771371795746863421318065455165057260875954736915704372140587259041465408919556547230912899629767753739933154567091520319066528360073977959965232598784838236082242668355040670516262401382078665807079567360199924650557475842940479599686589049657112742731679798580753765189136793511579530221500271276336817824569401217198548816865381419023061077175781204166740055674457392697910683136381689260972829574974178321891722617392468857418715253635048517088326384326312219564372070483014494823730056277062649723053384437155677038324094971993746417910627098125601580880572772604354282367088544382183952871481226877282817444655489811868014641421982742515028256396190454683796780017707494231065580039166256435556136691090105797068381635688342114504300077156845696762066638584342556851750478621580744389746053711533385841442285558220192108849378496475486299492552461401887646720804743426719840527494416882762104198060797489112378937398982325803141117082735971794037062267403442186935706751364802843379442739867814691923921471545481393220554247829565899983815758371866045279202699114898840824308225201065992564790794713974907451597560307071738477356449369291873169395241920356850513245780243222296683184899049556508340625080585930385128282270549103654107036567457647264578561355098236042716924506109398272021504672360038452315006284897755831692957695355249117180272769105946253460934923058590408954517473501675914116258714719870028965433233164404653301994854873556131273058390874710592782898358414371292228757168817553867257777393391505751443606250334629803933853426889934942595610455852800051121729122965557413067462804877954015086800055163583979641985102345557986376500717275546160394378133202129413196287908768789945218367060172530535757080069098865444802189055843416647633032867919433528845622175233296355740527930543683963002138933779269096092816906073446199805853559890361627554468219414779632338895095764891792405969667540494456950512767206392441120993894555810026537214693612268327135635324997218641581757061963128387481671509335587804275550214988577474563059596237362248576456363691052122681412564866837701685225340028918702159140453837573056231155317631819899155788552096545052167193488322207474388937198971335250438861086451187481563506818517409929890208748943730560821258228394411014349305120927104153218446260967346532093289532377131944576701067557992620643329284186284374179993146826529313468691835050808287749113357448784726652400649249698683082458380053513591496019102700381993585163288564218633842910571876283762928612882978769504945551697973236974703350517140495087523867095759059255789799882017855670999539924224981942888898623684186653176097693146433895171157652643995868737965228962064293151452101436137853088804864608630388077630369151484363676656421603764275368253086274381829058992291642392170665403601189737932536078404475025139479485008763719380403620859132879853561229106904016400854848267200604668828877914083695160143625728190851132398910686880119063920237955834420613826286643350444293240596948644421035696687059881731720116832177880037834401554989366875342535148352234234263117363988576831712965900767621624779906204602152658930991815931345888349106228451823735399474601486996021284832849796965293403930765730842198387546320823678951650309835823475778826740968958639550239488362907397205121802987379078117340932178488578011142789286360405371641551981608869603814920015695639220175133606696977132621438742637560930017589230126603738259832644494558023670101075278365070429109013064918523481263958042390323227197690362091030973119838886688025856533384012491651449557241112801620547746690971349234770061928300643030630590913347161686795140171961875634223831424236336757309142401752002794295690477460370510773311848245582838211853395796931772905401807208068939104794087047817942955626910864175224125169447332708901427159374226946291055132126907534389491100335858493541547630570941793055876578546508349891443374720632140257120563440349297244889052434869257427771987493574042166623907045560302691833420517443670827703597492689112317841947480976418931949697687044653323583357347254386899554253694633584236026747146391310179153437717013213464878489481077248049887569602258070062499662503439723081896819649693441035505774333597501853884896701987600121563643035779922970069607871885126513948896246049776839603320034221545901406871018111591847509757255909192696839776820803885876295390014601664695927706602036589561522668182309892112564177093652222669117685460059596077187519874471352301707743292437986167346836725768496688661661017273783627662275891752539632536245922610138960743089055905587568596900640364168879094471635387692645076026372424278616474490654119768370956314812842750608511623112589963028354278474059937807592325807218476552114463488446152761233026072781885745852343647109206341738107957158248540859025097166487072675500435915963238577413970659917569640037024296590640882209224131493346036081918613347834510431869986013658160804779355673134087869666868037000341248935698215918165590088224187567309845643518620042963944083373222971301036516217595607960352452693393672440709278955114514452126009784520056167074957559408603291624344469842776984906376792215872458601948135673191146766066118727100558660256227488856395519651417156472250621043224855445063616031630051255768225462206499067198572537587913262412666299562289235553401924972219612491050399345895836278504909497246684435185216882614417393681012143913059166103810347485859955119776895426859897731706230829127046470785068091946789580570349541332159023523076670746586289423379676951849087219226436781859624510901840766339694273712535698099039984697302302974377667787781035670905516581544084077091220698167135271308716369758613261960473521154789578591563730481553308194107340048369781819701942130884325824888462756873807732215704707167336082658401829888195030811882123815250916731776778916600918943760098012041734320485657857719473755011376289986001596180152955338452229552626780824962489216775605786541012960612079384487212262461402380123738446790945101724993935309135535115550431688621782699628450340625188870470786372303707599960263705659030582193059979567472221433742633079057217067991563919674055338448628341609306690603276394100685965991000150374666899860112285589959498471078966445529721745379822537293251709233206802616870043360327997296118499725186570151592751177432342088441012327419994965040837557300939898874130994267184816250205402802383090974753025960168235625394506749364857408152699572286789505757351511381365170060937173317553703430909291083696144799159495431221742384193021291596193193317019729245199195160929759702009078256948519677125533675807219606437249791983982601479895745884939848002750019699780354767349587480386516165884758184870881022170138321254241332954008859729103597929867609656197457893805567364079051147142852160083724776813959937363479475104140264462225395267386257557677069819975493569679818595719609648815700461150480630694517098142476789425532085675851646128005826284009271534056579039850299237419992854873902029629090552016367545902060618842550705541999205772461616191282493329650352160846473580953660366714043145707030964489504155435812023281380149762714418847896964975533552985012435655179242123586636147731767618039523001106630113907520306784788095026920436016926728962193295300413699937827725240141717847894380962106599676006527721086351214897122309986884437160961161486741814675794388336774942685962714452320858875851821583419594713227650066057693772774115130551033709941804818348936164261425472623641708119338359337711783142901072403855457752730385100259378955236874204102110274561263766613224700602794860763129983379341614185560634465989814356413808868057660256369128533473083369518671209618680052382196703463272165526723255620444516590560480723152786336500715393173790608201182881298327666103104257496287761432734615396493827032390516529220597676675321924968250302450154830478812693571842036596695511423539601356120391919673734864842260191938045397265455596610224207144112285611956721426836166872796615453028702200590839901024198357675595383224404077455042217891783885477871110771367130800530074191774493783467573754206461344233139869796790060727123839063852327020524981638487414596177019694676627761220262970638406165892648935311785949132906484657339292298472438172392178723212322462989939250393821578605912030310776515775330055165963189881711698649568218322910882004141613579501197198006291626986062867995543395748103202651992357012883865756234249283398755570645327427702695046556030186855676840409231671883420380267719821909702993519247474348253243513522958736176273807187922041847761146987032139753341262964132592053791644671015499696594516214171888362664350106152379657656184031092317841091512798154413289278773851001043086989075758753344791964684331394679951731859370764545094660154675256293175428917262443176043747343103085941318720970534232134690659032190771515066015774472962305318895242029516578640991890074580032097168747497321692766693940152641002342362799422538157437720198803304515321269320565995724687648770275267335793412377961820723523682273654365240048706846627451819616844240626528807714975711638139603560371954385974952210441813741166036110115199103227384820370038370703168124238092901599166584055157217011459485881489040266389549208056936041406006405946143339329196496778882283633196317011918261676316649399806316506834741066703518519199517007164671189236688084946362846639511935249699037975719654667927428536516454397695591791247890906077276889719619527158379264035298323300649855316666712543946846958805405091961875746148361677085254472263419685981649793585446140122721354510716942391231948426032661998535787613375170306247398181875151968613523293644079334918196201667875844677901305420405941341885290973260621831264815079170357958609091249459287443533174812563760043004017217594307514968471238663588944024072241150510334532889787145996062860804072706085703547332752933366562391201948797780298835184790621918054165715913052634504415913028099666126465055014477484458328310113517142267045288858647476474139451085397288599299315528511013001754611305855826517885254388812869933039873438272431627239532213024500360673136909120265358637340805549683653708621372466864198883736603910575852168763285236408016291535960361052754915415679868464216342462788827074424825352112875351950480377296368023581480789350616645781124279629485644107055758607115530197820426938911625552058819331590487922576884272188109964605573165934910284914710067109893008381859856776414589751303940150346369098535584757286291059309880339438420244299126461881431430080722230088526030138597338423211658254197438846725576341798177151865842599406590079873690461265615868987363673771532820974037492826750138648327907339041296108521816150386802745370524279947939747464973104028283156456439194959230982673412601651188560193182508073487936041096572729974902728237060491901073645308008665214803670579721572377543041377831379053928401904103311728397683574655701904816112377311465711394608080051489960892856942722228570054750774430471595231647131188983097206762181045190834849387019104333018369889313875721804385930375704155178482772681273400572331079996789078206105890984138507013498837184794958831398841267008131531051858138840648120341759777937748462917963705248634552596459567275686840168417908203215695429416041228651624537525084833456505743142214455673341532841482180061174964983079341959313799841823811817386621334237984224388681086439230097309292121740271769421349713175627513365431296199663222078108965797601979789020945193256723425774578702119954154706097104449837660029921480614720382772390192945542002427282066555750446632216718513670362683050136364442017343081649260357885385459794453171254897941559849251633458792491374944476960110717349107689847765545785439540903352350348279611416324628954478226044268121704770178487379677715966062183098587224517850887001493076364975591378722524554473608303932396497026784430871444068361686790453711905873096126319215207614298447567949210623862843787782168975698123971137543841447722816855098420417033853867723309994355787030068467561513866866012487977251531803758172683344043526572212329098347091085551546363379606014237897489552904440217990570725062502247723911560994074341650635484362173731559717045147772018491928690631217297912452831081936125119932858109890597394460994267780614991997301028157260427291308985346417897669022331501017179338867369048300731984760916674215051751605623482550731145704992792847642630196604249043789797421758499058070795015280081050284549404739702185849953557442124380143239348286462907421298334722816937754416805722466768666735845381358627598955026817428177021762581026780063303442315890791500519762516215047118849917599530181440413214520196205165202991301308233322982519564182254487037609957967578453971218412459034959801492719787248616409472673619589135731783266206908929717998679706537647864410195358347931276483844529334869604517646151616990309484459107094579765939708346595394840188171956852573552772331903621252238402749538127137523442408568472782831042432485146342764904937309736554650540671923933264290533063605640588772006604326196949684851335102249191310386099817330080620989841715693319989826085326930177298493964430932684712899568282520056801648176802982590339831129969629785360220165748542380423515437998100280523150018270164354962544514906179441685952702424565148010462562313820044908421782008360217138000907829906468762991671952743914277255613444288619823905093691645204360062308062392270631236181657578314316459549080444871945270372570396747509049693050087304943591312807989949998233750494512184512815588096346971574876598791450959271769403055973218118392767072279843950412499884299348799163491358059009149508450528130412872974370633432170352217588866080143700510956778802284276966290041258806234064405413443827404457053731646907305370626455444442195895511525107101818037275871441346249170844750900833687985021563088561487807951419746822809669025084073313066327337077438400644080573570173169412576206693761427795408608956916333679598262687012286284817770364288785099149726971363085959041662978767255086442875657651259869280552129204804751196940123736013518782385040501010251618737483441364797341975936192611736479372288106761462960329530164385767219892565194423935942099089267806702200544852399783961606522086563362180626433494717279507271345375997132194158332119137539441001889221871072209427692242236692884984408996199498437532821312503697495755663472464313836548044191762403865235342290317062541301499067946307087090028067949977304516573251768898591472884182503047167647452735746331216842542287962437189295334109425111770637472363311680038786712619870196341523078777756208810877861657752812278023568541196544100871870407018800382011713634228655902243312087682127324153048956677719402925964299931727379942178553261651973782244063189485442319070905042664198160187535485227773244962019739500441445943191776867513968702636126464284403642618703184367965235400647736697456095953130424901294825787926176835017537385688461469622891877638878090224516879487107942717836439179543826164142480949061411892719568575393343751978366347610387919937747190787671040673387489011407595763053829726982037687683590740873005139030329148804069474635739867224807011480430257922088418273116644675804544263722083558312665989325415834830222588438164658787166995408901187474578189502960750573854585828743526976024197666765562127288049606623123288620293328602800733772095670951330442743663693628796525970384408376632246639545377216408077986846438944420387104177350638136237966671851249676182904373790676427058495286182499027406419579742505470795578728471237906957223079151941964862245943721300516633675289483656421334666366965065302279617527407539429444697846991474848506346317558796528717938929076039573087598182185225582399092854820753971259647240678191816209403688919898098593961875240925640236681709014278874257017045201084058043540812551137932925280775876722972062809867771566969296808452797442006387793714618953592142770048927051269497552015537705357640659194401440412853454662879319402135601176054082515807474306244417186355913147769304741502325244195640926274560017095434844887401576173697956541825022907096877447845221932085323737077313570502704699473752242487613038899025247574591905877141191499730244064337700473973491314505087586572761521913013499773415047469301259708013359853310593362220508451142928942820247799275557711690848401281823011099917643186145495097089177771043955351042394996144410628241281075842357867886619641109170845918619425507406246753295854932957447333597514843463754783340449786649463395581652085766587958066812679650301686845117127359026499253557405064429545433441042802639603281330872574418089711755556210136051214803104319070454202941906531417339988555880722631163864671332131010809573891875197045474410188214080326696344503146183619338934989512248747497550711731160483980692462576494716869277875503991627669468045437022065010993046897181205044400505490170000723850520779723808422918186548511996265100467387047097597312426262121335021053378163728863547206235506844928442902343117401432690094659596161709516637865747507364865478841361019499971129878480042490969050554206353971526198395137056215526025734255602187005480208370084341464496465284212922320501785761301166884197914322670260329245413524662067329118006400718086849129554111536661166310990419963637808840641942183281874034684047072119570792881757736060150442982703628328750773186006766022232397733145538702669990515114326648113466633100346354122418494563557414823487260338587924391002867026750990157429352391457067168566346664121986988365171155779297818679010180521513415900373067551520178524461266637957011304951795963108015452036448286403305738501909869519505876508011644544608083755588889781542923268031100914189025683674027941039884516018703097965402913419973385920286039873269229420045149672369358929289317362443273658708710723039672002751402105444728250007103369526307069247785837527034671876208034373753057614325477471056579735924855830876000444313806619170685844777320583201215745756366656190038950227686538396440556732074812782104236937606346948440829990118388881266138429877082108465796246435762986597424796536310192107186516022240442901693929805762440455791114974961825535587300537449708604071068452856392250003800009657733175819591741279057576554457059738078152550283405935572611433663758361613648137231064063283180974054999789031831668494066795714771806000334727366880471854061099903816042664762353825509792661152870602875945764895572211372870054123598027036895389849592865664603089814482257774365110523580497664135009039911277892457482507576829828110101981817012069978450874049719231834678994686167962481042241966513580101670627600386818844489970075586067720242063793677178556334808380879268158939084365989883957674552076153829731272900163982503644589192489350566976989717581554460383955636402097037961492803484702109814129757312856590012356403017634817247254630745767193001183595811881103688303634573951183655594331127534340684824056564585121755964455792062813412528536115090094498158804685792141602171254004518432099828229815199991730590340695967481116851256260626214972281850680324381285349637803557966081382335099603881545881794141870788104830331069730411033561767227563301693938498457860224145205782464794597653997316998846576543109648368209705270194407925654981673085860250481299189667224965790394707520800010871700030993026759441785735671950244389965726126169865404265216425424534413247437363931996525705710551936735421823451460341753273583855093608405056368700047175782493620086524060160597518607605865778516633683915495456451821019765206592229373478326968098868086628929430002293084564492965257569422101666610511835913375819293820981983692201681476905534221139688461931219684033154130410253635732737610000768938454024033256410572088131113751078544601918521249014818129255664974950616822636498235211209766605182526832650401376678877056980426068030259431202023904204407683290951794684839543232665999827985639987768077470801230185981529709158428971662332254204817495972760453309019707983184617550183748059161757946309369055526295116939418651283074731297100072697669050121538278312242839389472604962988329807488286804583814643303571977934794126308793244770543877261364836420135311124071675085823422657153483963494446317501955011275191390338668575458079225996153841817104723972651590330152015156279141303901129358270224104140169084124107095180187299413806692498764506256838001514812556504036080190980340259040048186209532232175544769683589191929779809401962406204580386976528097816345001393188045279343121361443696719512451786075531281455239206137905686940578554303576070544783431932596878557051464746989267309612688882596448628931779493583818183362973595678517804837131268319254492171026380822444397540394791549712826878222497706958142621878577759225970802997547314597277906450726081546747663424860808683426001144023891464977188569098326832173991152756064514251248491985305237768495610574426795540828234209672162774003933027117664358082186933680256230333028432321263781899584967473768661400040524285942641457780726342145090144124388981572185189459253683142458076998470903977540767615066431388783424618414144222126943402443458437364791878476242058207141082561212639449154510673673896385142661734875774317146335840887196300029263194506814657069850077178483235840607135822766191396440040009807584079084705256480528387627341791332753220639848796379185637048898531613208732612339350422782134805024970015988034110872215039231930537464719209887472177749800968542036510830733277912341559282413818967528815878115021141846114108889612265195351281076858289275023449411926287739607172876024306575390429892495273271588341652755776726255319114565528740763418682614015589263315037209965008187158959024611881114344136005926023550668851124927029700205940494977409489444977518354023871831002202985435038768021782589157839276130263872585958751299556797995559028403763085778592642879207746104849124472746697484837235861715043762745797718528637685524693349616369002568301047892949536434377976516560161221259294666542210500332667469996472501822500292264357383099415931312239084577047347260073452053916544900698740449897980072995427840426508293301174405613479589428936704901750311138474022802720945929934656778507768730462349806410747460264867728173052000132396236661953704691505185881234065037537320443592786114854879076265609881813702948044285166708571572966330536823971586896637348986559710816899683001693854342858479773787291522170151187070033446755196503824047683212730240767996088457565387651707503733857339466931680931230764778577927846679568005448754705079939773698364979401413025417653840579322360085967238675600350248380428892898428439548310025233624927223900659593170673768725305790641320947130378677880042238908582228612530312560511282791428853113648815515318132395453435058943424531051623277239746969948898368819141603943573518792108398148411585522747869881343707150517252231544942546011117305393790678750557999375302674296630283945916011508367635819029815249697585003379489321007476934668228583507980474811395282944726721478171543712721293513191918773667679830040238960226160113807670813043893727161977837306635663269608074715115919712455462709000967496924238263690572278001579902423056045432797381262236578282506577227566843270864128961648526082568085394167713437098113085932871141419206627233099730259377497333831596033288692049285050550180356887120251315355369262026506236604301528177691758129588650413829579440967595897303547574325935956049249588135550635216291360122262190933351392774667573370195219371736255497524439349866306645467036328333451880199606159505682472366354774115099296493735838589507078168342107306942935067749127843987269188158372049135410044613475016567416113821938328674085382122693784548265545348528750834509610245337552213566168279566076798944507820975750197671538762147966908907178973089026165357115089063580341763782581008093184371895779801359119334298118622295274119990219411069215435708408276659446718662833988657795845306482504378864183182138893940085551384130916484714565451922022600082809814158641370580297585426516842950389541850521771811514063105694303186647251731559771362833573824342821057842836344841412603049790079727124446395921306436412268634734925397380898569424788088366581930382808568225964687510151734127144498771823995684704019826249597780827551853689349368591797705914330452275116889205938170587144677591509177996450777828283620873045215732490793399855032135220071965439499875761827090028982502548984165063001569139051393445707666529460075434707339575027505606702615317583766243323710052493651023331309649325191387561501749711662294625787550994663945951100086795034203347920127433093203086712846558635212410041248558805626466615689226000983372057105850280228380896137618230865682768530542369340960165545863804059406268811284022135434267352897363047135508566347338776469395782174463002843224970288088407883232660069595886035424507252556897213084686423003877421886837272823893015001484036462314714630697570502950587673012925923352871565421931793433700073225633376458573672848652467748804757909476636703897355464191067405147726684071341968270257287646967341512701927020359079299397674295288279700599675163714057961442841625577632909922487307155383585354713108193481890410995757058456797139090880322155508019798925926992604860440619630518002870472153436001549824126975182628508434752516116448466646058966806267523295606393707301245665758882078087667429151171690748654063777599821067921958046364156814483532444710674386304596490312134047149617764046416890260741699997116150122953425012919359157377764704394060758113706333870224741092080323674375882851136090335866299629531576752198768287819195997187063870010415449266387669668936780307057155858844962874338266468628540272159154073486948865932991283020238932337836127006250913410539650086542797986651613912014632321574256380763281407791859121538374028537777801019893363896750568634934301331642225686505629070871093778991054944199166615756295568913822243217458936198073107009268480347359501682036312921624223666742823519968668398295010737886090868932539134264174814114562365573425345331293472498647603364952623326541858957227880678728641436019368997827417466974913658620517127652992520619975227498233020156836027621248955379482287495028384887826834051156193115118073898628871262828374213159558803463542596088160729993528841164658553380695910975555721844271564849053837945248199767165459631378281649357191351235541896110500039692403960438952808940620174974892882305407223841091049947149445710853322043222809562721444931266300864450689337214411984065540035487976554295982179782062078309016085579039221571691181707915466916825552674576039009377011197130755388055239331952971637135732023730812198967627966831359584586379880656385180897390884400852036027388520386088154738783102453980479558326850579030320507455137424578648386727886063537775550860513743772364806061255133538493056386955428491452049971085038582135067673053261784426386469659713614661486819004083647623357700692524937561399399114749016834354310808467904233361563327793951951695753621942391822895943846349587850541938660236839781097069351089023128915968799544717038254546543259610715776294547570677166513626985539749210541938277232314190368794323449564833743284024849312159361664022247575471914113230316056592963656934633105696332324986695779328695483153488955489631517859923718992091389703382940711023168294555021075195571502884490949962163464339989593093819097858252737841513706327093095763674635470019042471337182526549556238111680562390080985304947862780141144782607059575199110999711983903278973456713336554723056120817650207916369033812390009017216420258360718562307222686241234533162246758496266273370373952219346763141983941785675455157392392914577967730852444301449626625022481843350363184181661597682393749154610378705138004338441068482585427264557870985308605899762611657662790841696936363918597864090530177411438548053134696576421275494321230880065188661575228563015672648614835242573708219614271594424598607595476166267858103350932190819857213576777941250442640593251570695736721035825810787878969519870048595071857353531533770089980858350229027486671885257951239568180565987159425554308049100715990406613560168755092008804948822829477126302008581947173624494524417668891966556257610450889442479152518996929493019811533417896549324964300616692857753019708099828808901175472787587902708365004751672216702479031015884582361632636256863141396599126325265311703299392350657062433097220506936371291180753077463469839986841018968940059057852595154185157825087103964664119330250805222578311613013601384900968020692160241723174762081277683718934331039916459157709816997598712958760442841252062050451782947224065825620958044922966543787619435176676743730116125276992552328705820843919135606421163587998639523852126543936469649092187475603540145363354813736995470464474043342804037491644621450398537340991947546149295305165870069732994034924615540595113887447257937199334329866852552127959743738238854812258365087641529514738647691162659079746563315254794770912778847385985977908556945539067407888244573968653862052297718927064155368249379547620981264816716100913992960669905892323531723628242552750296453531190411131377276624725637898829953189202246481068451704473779981074217744898914040580248601257279960968673611912051141405207340940159602828724663400606002091437144247097053704540456455202184007722123317355963899354337815306283008584926742431845977597079072682857029398110491855414021295946339921138477660511785940378777123069993147199208599715272316104182092994317498431708324928074291365545760263999455494377060026639871369956625572752868968044231969254037804108182645822912006428152096889883675848859162289224891101181442287312425015313545035992637076817814876739619062006284230822292496996599166310174528188096576405707398905137250176901357932011384706827790797120033104480106996675152832828618341765861162428027370940480796012339983624765025985249344069917067075463181367065128648588737558716979172835402049057540932656653660927039226964321690032814683979146163524576722792170605834503080287944039928722907535652048923883935674333147018725071197475795922475712087116672256505556435376722593273103380328051077296652955623893237933621790965255178425847787563301209235327960685237457423604840800283809220407137351091848086345481531776359372648528712430319842600268926513747844525494392652444446744625604979937905800457743364547028838713953434979089175538658934434337090111138858811610771753451301871996825166790366776031130885091135135397260234132647095135930663246693373478691920500775838581689228342264137278245211943354740952361634932893474002218702026774023358488979696392045058500212671610835568801658446608043670538592454443848247819867600522562769779295093209724895942131614174204021627369479097294707655947336919692947371586594132875823938053439116944889350644163592352705390581339920533632748049491865348718810755454401252275072047253380054811648576783078330966941636592813566078276463425831953161545397684217892901887119036825344579073958076617452614292746079900456204563568746005299885108287095036343724336279477412203613863311162772983136354464289839929511693836619894816769178131782320439630325348703637457358095871697025764836678449901658036367305490412837133641361604173366714944874256359195202572066170048394276100579742560293530017336201548032736175364716525237214386710802987795061540270786063133739527528451574638079749362865227766861322336196459940035722326832407675501333504222491843336074177074675295746264534621220751305633579641705909896469843074578313084337386098243372567893604627724420425354902078112293740741676620278516622900310931550581264664769118451006764270981808469264865956955508374406125521066320178318945905610442167317026503185221024498488021546361612893041679694911958853886385011619847237929900901872603962741371003555936886512655375291078492972234101038377604564481888746703507526843395517115773653494611313966884906971666533693345425849563037647604221365574455801266832933711951377468937137570094898900072637606755087478545672073168811709337883689408985591581833306650476487097791984847191045083834001223811662017167205617916803705760305881017566354293359960812210522190618654978731738081759416843952179004047801280613363611370369289783427854378089548335778088105157938553043399871872575677701892636161338066185419413237843079298692291820234734231800013425697529721266704485541890598114843860979330275138558471457196896189368899619034600742531989346276398396605270296161097735018038379115574435179927694455343440363685957673369346768899061840628100896206507147234377753347688940291249135636969201209587489936059426582704767947152484256366151284079402878646840795481358135941074188217146208915385955789075813487220504936985928356234357293391416057820374380461999301142851600095353811448384856360320004301472424927521927815130649279117144280230294337619147235532692793441328513275708240184479454400743536961853378615531122887032724712054714341244443800635302061875323301381206059600804423768831343081123094742789575081094165981182357103598839300338916450890270187494856624715959574560353257262070833420151536404238015145283956517694647079133362513228228717330789098211874630044033945040044515664619597425914158624352986812105157759288220220262017673828009790062169984646779058197361435689321016868147243393068884752372636237258310570419842523602299479327245597307062950973874305944645107639293852213285463918349783529184765615564134135083634448461484574353660158708590048323988885750305802174657963873060387517738652519686144746986329825312962111990854930059628198907186564014524001531905828235122355382643813137741665730899533438095787280449084234413925505887790928066588964148953634457869377756476913927849844553009918844687514085060303325807987951648900123275209170609951230417452214087400996730250466229485662398404313664301410040187101712047377913600059845972986008405897164318088618784636495900605332943110904018568461252077281251661675857857386238209401416332029982387460861639421926771932782763741774459668724119277705964419743875065842479633295862239356483169181217102871923994564666628829971680215455590505922533812009479784120621815622238165865656436046727638803411692252584368098383764639815965321209652293176731923828200474349868428424341425967222119243680987255168918943505683002009614873378055391768236193205850505406141266755470275910737690299701015620477529394066828644293678828409048508150188481509840393886738829752377211384877387014959392429531584395237121009944139962096103275287723645399894474337941663095198453789896461253666049030513151791232275551027207352529004896767543343750048788611953729076961785609672317934295638147904371810419358623324429684022946302721189338508804186689420364879387748188871754316205178733465788398531966536132437152548133748725112499122059730567166176480172154213842241892856735284385962235810377003484467136511870104047018485132034701613321177299421863106090257784329983193137844413029985196702460218983947872185426219946188434851457137596046757795503460462592856400204855117263049200316149552717528768461484974987493595140643171756506212067430956903886074687384685506890609474107521124686677320200240176031354179171911061694712487564082971786668933674362890443781863784255423850987973139758499977420864451618015164216917749500278060388860086012028555271427106989614469055437921037158190079817062444590792523930776550210061912394039756620571317164472338954206526670953518532059554986544736706078740952304200515820301209576286933096659960157679676836050537396275804608935829975460860310375546794739371749261532880145254635846418629714452270044556797848700510696730522720418241842430447122201433586277008985289531123330757923159790273504449785326057727724968117681639606600724406252270980305571778787048923574237685398647850783195105605526655769536450507444236059361853873020701287694914199719136641913067573670696651708302808294014011324739560738306457687483629583619246753298728535505833972637322698437791453736840369749881760857723747123037283229707840662769291287934756223393957435628886976369584087448510168708925663707966224274977270974567598137719166260821015972548990005088418463936422756040800403922738404258828600909418656813369822407962297314779634723077902963722183658603280061761792240515402437584605141791438101870093781645188780475346952450355374398086707613540339578829801156753471417590261967607460905562963783593910409669507858459591061637541057780296608648744705624156167915922081323743625081661625071353261489179568962638988216164221743714318174577832518461521402160405973077867966916492618261768917836642627846029931341873265365893205403668442413065830330132496295069655744496024257433012547438764396944325998036012641066612000123816490777504680170613413795570691482391741271913776993762458069786804419819104754630992511045484921940351502504075745641947213016637034351393375846199552501326158404274105989021326089923720850436776174161669292282126796462266867380579470558480137817213466880136029076190736539594660375030417320886480787964070490569685608459856428922829193519258784627687692390579820162454927936829769024021307576507252149723809088061093718272421375134489386176666158373770626842820433338678380706146490876243774743203426885786711342905127825141061532287460963167256664708414146814429692951367158354057661761792342410537444459065919791764193382114129043197123757355664346181456421299030758017771028491891882452990646844927037163117974098168785367312006930575546281769764317581752701102560101822552522275044726801316762629346544913554777224100738275242159022907378356239293800712265665589379870433625584028997247360443773923115379217575569113632376871103518407056427795963311524334507582589377839489631031463580029355379704049482318662828963049504732020048629034668129001092434081914959742248681135480108614269878549993491853183606153087325303232119877533846828504577548893764848116549607486456920564498707071265899782042720839070032891802863532125147568334179760763808211266786177090962933841823377002437720364603770732839449581785047873376411241185067261379845142499423929598817947822475191607561370494780721173154396061717649142407957127060820665176091244226615045684652903341813081367737938042865900658719576153541790156497448277586274772174154091791573020923349444244703694904447911143337656966176936465826051431037203684374998792476625517731031618224053732131262820407741261057741608711463872448556653428785241340681406138363169490851741198515374269299394929687551975717587602252851620716377314047385090293658780909260129097890151971000788044906976867276818107609382471121226988159754563525190335542295972658271205073578921151936077946824768437063851464564512418044473178032634490792617958019428262015463584028342265168460062365740736405107365192513295609146023619559622530673274065809594313931613721623601994338005390152610531647959791903805739053522381363161820919186887646095285308011024626556988957200646303241734328420401242294416872085176116576469479964645599664983239930413832101844082639902129074488053184018765087802206362694946214846363793072454811435824341372757616489866965291170628344777904787606682462925914213484999268745426385710743721850754952237295097011458392215254739359141085586665020387211974176061353572214651763361064920322203154787442188791791158890762047794209250788597345845186048691357576018715802613248790012407411715460607986090609535459021044109548609341622772868436225135761455046624400750046214607408982953289166477158669956155571657871553869487421839824666690990262102022260284467276315261207558444040232599534795983573008342034690556443127611402532282248695732265834020098484421918593036074125051090869847754753399406189635654847861882624282279853750784410817282133279925794402960386283297502061328883271205734172015063965273730362844817620934132266009045983686229029035749466209517018030843200994282841982133294855928606026848202086140336858572537454781440929546454024083627745841984232731292767016938061089351914681269080043678391194805967510158673074563366200865024124814844239904091519350392081994874708165480594038248422376245946592371388668973485237069747143404291274987931926685288628576540853814784173451864109967727223277103940585662972418473411174308340827182468111439946348335911715162299112044733264406338032458622687949445346044040157751182304202532799564432457297155634684178137202874971627615986409765760196656282192213288192346272769746502819762770689211054917683700005298877113204928421196891120385061140915952160999518489980624968073707144141544469204821541498139953795695600477837456063817505188493823755586475454832662150451527074190015517596935134619233026059836055587347621827059817115508495958319189547216568167582748290662886857312488231395840400327998470899200080310016827234099122603914966370329523944018609378196612652261919521838186101438099044667095522006845552191516107642723002233622230728891546878529562478067379684790304209817944056704741749875756816350786226751890113531974533974215695458506929701498937705046912416371496430127043061776002031313228497790423816854043437601076458963361713955609461951718216217166207010736898789786921356054115326125134933348658457711907076546211086469083542505563320924184299775743752728225842309208806382134485375261925100900094505529695697633397794226217519292717005247339994550614681495985273334798297551901683698160955014960551715576802938965352824163496370454150752649574846380615188957379856352882844667070538369982455743424048182793002639133747954996128766744707937101735928991507735836669391991848657952825418290489197310608264529616517924678216703420129419927133995589737611809923131004329195396476563321084657284236787899376369197283627413567965496201282034414295522594057669611245839564719997066599116023339188255859269612937402512489003032659794031653904731060995768234665682522255539666241105276408400645053671850942926596788253776593643771651868508339523096282721306462641015482683665540920442810323767166258575565148107590232587705783561547762839707757227499566893644624735566158258990802232159095229830307243303405472395505759444337679579985154997875001528060363113929437544940894486179636304750109755315478059745488684569969426409825173241987551936645850034482176579393573986907853199803125159347353984993207861359967560125428555615408590895643945046463311128546965057046285854070035341143472320812946323637237435041762207775650041450145741681278654567450154499250899748907736679053014357360981905812488293057321871281178859229655699201784555475934485039063542953633826493073833145730496395316287936581309554231207167955204954319879823681935128051540511117514621583179019956559810930358101767897129400494135687221800092216299271428415530427919140655529231163232018843156343218411781160449967003242814237252403741039233411270602982921916343515513655245272150605449390292588983622183284726230800860553845300991014576129382652308118209386065141929206874057580407539702459184653068889520297877242641850672867375393908795282001202349959151556251212350681845453040121585322357617439969945402882305821838407144876021163809242720715884447361961805365594341994855090068247931402222428881454927103378822146623436061548640934725744626136172354157716139117075822198552739567114571285620082896104119348786451981548745456329191800452133956690604248318480779608356748756556438273071377346621082101165696975583812045172278123258035783289711749741862691963634469594835252652951642028360228046693892963238921270556999716502993032310911910083812380497510075230675151923143478982756564125884908497501536512824849663286063577655301921571214265219812616674251067042330956725802305534307724484871473208013945566437300830086540526861993002204106471421523481274978316943872334331315004408591625025916833389598000193247091658061149139355899212389490561884630200456009461722854580434914404516169328377950799283322136448840579184193055200395837665288264488973789475320384853161226248410827209284740076655524496689130282916200922827282894779674887957358779637093184577885679380394977723102633272360212592144811914366775775509292494178375446830779949343766440031463887648460673108559183819339221158840467181348112601294837647322816825390098956253537420424570284108706969467153193324567979597073780467453289443426853586544454682764883286011752167727663624643740314573288223718132948875943590219686788756263089329195995141702107829728206552645515352794269769633624935881839671690200684301119922358701333951468688909617118639929992559637061452491909253979570693091598300624691189322987761031784008099083586279749053381075216193169422611016996063671047475906952206397754391094390215313091004811451072581686042347591951455599073960566874325977599198172696275218758916981625533797070714160827526930574861770666677277293746255981587074511375627972912418572389444644678031011543082785704533600053965570147959504028636195273618311432430438794445164045983974986713478046440174929758835790266072485108716370538924533851199011801646025806798916726431260861124834073616319359746527147323634218084908945270611392510245324486540493590265897281894704100342707217908719712069802235888376214863455022250330088870217438092810266669137728806821910521796742919286614531236870471644200342273684256810509331746790334106905055207516433470256807637183609329005047668847771257243091518017835569902106993808950709600297432905593174413088237773053162176319416355720569248334473890812148241419196358246754291799662232025085868300224909118436280772231111985401241111494077417895759500710757359264103053583660235211029661819815070522965308858199091838066716680594134584901769265916000122822104350593312988065681682573223740614911468260240777659518378790576782942990747751641356731907032586101766957211828429392201560836163827082495062684512193589438668626836611259890118951604371397373450442266959209989553384778431396228100924020351706301133714424327789414953969873340315389709952927998685142083406787354879943364261200552417445428954553956088262693890348477426884593005440973366239586440191792946387938389505785685232045834212596639384689161208549195809539037414563092817454469444649890156887302401308676570579531967255198381989834841195205394294107406629459231322314971103994446283413898696535497976453282734577322681473607060861201254835788299439630015436289387752984433930841325193739891789438991483616129478281367253439709056320223247369290290197465071662782947014576003261591927920314558875810112537398966529390004464213330741100755426153657231404497199581902613403023380986833827915419952041922318092314130035522734029540215101311102939263268015993255128064437378229730958000801602738042827774291580302684641545013090462896404755757507243039702215609590368855548938557000019437811262586578549532269770125142168047933443927732322475067853207794701768358486719894087094023881143775418809647094572812436488393073137278235864411419838850703130129888899674481514116160770810639384172461949797827881781764222746343288506247394164256829403579184074945398135614726880803650882820665668961465845934366852177594294173890006076711270910888226781731108249787381066413965068562501779264301066053444394583601917023658057584943976498617376389575506130442195023886882466416285902259131943018640159433154027124567056776077503112385087509320851340245770929101574339595208718773933189203360124037210669395558842086926103256843678668925314066795300492976933688835760061015210800880353953400712095837285719799289340583889183842169284588187599015375699738501262953746812648640681758100079827223134968724581200624748420400236617737123689278937815220585655426774825996855094553654742473141925595332913857479943859082473601570913168615349381360045648994918227981632528831514750108265745101612154174543524220726264989256907333558923867081524900758625662673009321432130292399546438909562645966610643097231555316348812942768299144764264436511791168904307741127892076719650404326295809718577134716327640411459739630891074436709825856383783520097919284734498062840210313246739440065786846296897240597657378952954327545310755086358792225554309091110547145114632292610512168353350225305091556542186626668031053105295122807523746227913166944016616695730816913751558758443592052499522346944287466951120864129760150179809460022781824031114231382652882197323863312687474004610703827758633285795377297508182375933277601494260693011347989354450422831058066072114262347429126786941741465349297662320728176230184763988781463371079183123787501842211998791080911643185656598036266153745103329890657504374830588850762996319941540191701005206508522983232581885526379204151082516503267874115748764797403872143676855252290322233786348836548823515697720730757312481385272828269636749451928790644339601898090509299222403234114636829021919858024375472577994236001842969974661360011345413900892231796584568474668732730217494620558139738383062548977667956483793830046075619585742114604411888902822777435049184846321389213182679810535868566527749639314431960089968115705773587660304085328428075046144576332058275910962168929852880985408997607813255755366168666253309783975035981828457436771335212910088441228505979289925567829695099372689481185885567764333127423177440329484609532083520819439515047762726002427433675218993752011483512151302168912356462421806948000121942760565492682082143829716427872738888920440737905929363003697188560859460078480613918042390396183634314798594802791401441389489525396463387050525982311728515005913210847910822225240286740098091445907570667064455379271753228713402812852987686166261251988585698627704928220377805825026598923152362721095991138260274660892844814094294335417007814035820534735900058535353277628155050289612455683705222280904390711664064914466925934820710465028718478052375622021078509741337973607948814913758471884301434457035076662012538920495959537624382560668955868711442097790492625821786091764603121500940363885381714784015526295623374744415454796390830290631289937376320889961170828860921295291934464009726746141285935268176944514336186641882869594494239059937003995249592453179618313973580038937103405842047821452229314723692344907238118992769202939855208453135299850567030953968557378978798452530284221628035029385243914443670590120153594687516145560678198078625364169519499968125680838330587427652612789945493446210695498644266325392997979796535206565819771868489273018857284728565836293157483599394120568470687883734793166862789422987288705468159453723671736107869536918840927728072602097930617233758349938749346070936455762202550779451908554339145357950214782269709672571767374244833574107552739414962586006475344335805956606580717158216463243552384404383351184790401099172433356831909862394800531359764335406279467798371793994921935210170999888195099345349960013822093617774837561965429064623491109800550928259167593400835250407072172798669416512438441757534746564846021145652149216772091831792588483646333511207402886248713942852264401996292615131952354607254685834561764965441109477495047767590568183137542275207134928387604231294660946312144947665578577500007655685741342222707054960483278620010881688007161679152492937426416087451571087737263362202888967372591615025616289568883513036719456046802590676657297359078382433001586377837840145596722397855548571284954295626808187797287388991697472373790276034992749767972132230552678781912385161353712545983889710565816573146535101777731768685434478287608392663739430903651362827806249956789004230903379663928796296716261013910369268899082956431737759727776817259465210999827541630605500289209244265459399781742326438592845856780037531561946328458858028735184877675090949039172355263982312448215598644796063388597218471668573216873587838254336624134946646630867605988288799835961662486131372004802467939612747090255378059126123895296047844404632620718373118518261162504595628743599193141598086267586600595349312797484986586448125549896085224317908592698912748108373008483994273800550566038477716937268178167038844693727650108433499763220295262496770180957237179200281476879516209785068638118810462939724223985149519904971849548345695530342842161897027744436700292315150225549103934910042916165388276506937276067764110324575901910939931890053314927587906059774907562041429146268095454960096868749648869745695659646278719199116518553135463755394651887801542804135061665560925232068833046022440307312682125938512695726307828428169373139496023907513226971243272477760292209373272872337096667732652386280180895409196793381736156457764994174102670899053008958580762849035808069826670646973995529082998468082523868029298593975903666883635651624699722406106713171992637298508782121784275077681126491290644799854825118773790042588991073192892432009759612056002583257492793150536029046083960377052938589100321205764910305211942794444633545007859882008251438088851501215252735579707557891267060871387054003609991645788174402652250995493337860289289400338569020484723154607105240490462217303725196577245507320565039387581834889708738307071137026109137796938479267546941949513712763811172357703900786821215078577834674753038109452873573262682429793773068952286770771074908520799430116152405989582217520792455050684936857707294684409561345863965718948244853617710109158696052413465683920006860809201518553337032992451141756144014050511017520208173701873025171507736410723681538273489550246604508427955737810315598826980971658748444563154115593358761133800265366459918940814711773371044253936955420627224039019975955576152339179723927613648246937053747650907746107143359487119327655713999672284042447882739198721620267785081836662340047632323257546038690851055080720452361115871447701657008573266260511973976751439748447200993721559125612270883418478911352856159204367831867464529639296770058882063157782547916363502572993459008043262620935438268393013292572256792457984873945454041098902446522767716130497497250351169359386041719754543497207013986663282832932332582837322021506328980628553281020766441458895597436260649132766849693778231591240407170135916616879483630767362063942189200160332031396023782674631179928516973851685599192269416981902741627336808287506841287297672573675405044208361528253088315002863408195013180825304790757153837275247670762303790315509643008469565815591680377942958577016840027527151755414636230894534764536202848002131650365655999573968358665652731714119378327356311347983317115841621939164889811284940526898049212701374223566394152293028512392148176035026472841346799012255598845403987073527524063635287159177830336368604294613082135839088396574249002079617280935483077224417783073123172769339989440671153192056556392106356972569450877378719334951511900520231960755361723161626648801936566952134292515881752193927657705539495087826527811176516330774169856327191460300346168090837378163406180149276481638237305395349840923739742951312289032401217084057722533535224562751668951573347604598112472395198095246581327232889630155957333561786722291818191531660829838279591016106833061933972605295153883489253580945958593038679879767990553439882522744223151601505947915251010221925280953935224214911001101226504545365032551961761441953005984599663146251989805600674602740871313614554240917284450015868814012042479486532299448723908015282855769552525864844235027331841556569615478317706410830816390345237670145450887646225513204163599168482903482600678416162378830391661550749956506081155317158536475569390891474116128730684829228499046224367345057481265792540686824863855200157072538263660250941105062186910932276616423861737270057409439162818156653066260432997986202248717345241429830916050620135691684613476445221145310463122274868697845358798136082784456033988368372148618859887675414215588333550046777646728202875012176493722841775238382329598814563344973185080066799388595077101171001492187244302201211933492473936216011559145586287492203113362399084992624194415389375690751789272340092797772547858336451280893401657731283042967110727426707236000637668195755066947272256806942605545090656754137056779958745366929048105838597364345944294977277905058827008717984420801218591330891519510004825932259267084410762446243314010031025196824227737058410242496518508498240204504114413900652583996716202645115869468645216717468460039268658048925495922404941336341771607654301855698699041870866798154729500607367791134812475122234180231134480328878155830558594730204292088407852125898630936551276920637293853969154328090713780094291578013990084775211241207124098456758952192205425932928136743188573318496077064571200414307446806526690829662828339452988750427149404759073515714894509994553397648264956095075449358445895648726282019078541973042451023466723939780277112700776558513208519822119015134270807832896193290768037460060540052906800766845637211329686173636657346166540405902446796164006551794211855195544637448159696940095197427796950182260864917062196737799826422656117389978914818335939921345588491274255662108625947140435888723543950698359429654687598092205670777752251740554749785015252576469713433362706699240141947078267781765284749203562245876558189359234123137560535571671122127293382071578648708933745834853683622811600872932364148396584990480802189102464363190266289028640631992032524968246941595129788946364241809473755895870236637067095819101586787650712759018631501274593935273436375475940239458288640781591573300483278799453124087958240067963083403589800275737252192704436867727112337057405563536300067863335764969813243580694164067380615623292460756198193692280492100197721562073170978102157264720250927236545017886932005165331621845149146799912487097865887898481477700021328598186694467577054051997100894856493536278378930547378768504811620979643941133820391539587492178600096975043935698640157748192265251461955013937920256186058694703864902963735624910520212025741097445620660756516262312698110016932030332307432727084487922951603991809380278147730000848483654404967796219068269346535189802355616113665348321334620135387297531524201031706331268889553026431775438374612849588770103281869205051347966164589947614572426002199970664880595972413650842377937962523031942138881495335895822016619221018849978185119447481501555538212523999479149766411788182152341032203633606958295367216274313409309913843346305937028703155121458680876384424299528215749864944005466342897058748897989580205228505226661405245862165704090816748378671850326525413010538826308466878969784370773158042913000202880486095380573422166542452655018106218543938600521048649613570903117743085357736238844985736326495939153818904545712795276690618816463745785873470929854367835807972721950203597784870074384408933220200994400660106316767711529742177201987616312843671581248843183701071460164765509189187188758447172667878758376202643049295755600147586915506111576021763069834714988707525779567850773208673278744951133629870243258038150610153323818847459171293735165571598995716111801263885715103606103045663738016471994700879388455262526695600620956559955967242471139925294558915996198196835674462001305117906453055023508945114010422652767570595527293985984083510414181345405928971735745627625653925266550571318618050308175077707516634571709847192814441732974876539424928166762162803490938000606047197559572600273009405941004056569732805848521355116475724546618935631477509407564348053332705751379669613866500561205467659352465302857579199312982697338239119065309935900130169582620958018948217026723547616358931454393482665228434250526081886001039716420161608184170716884491126137523299598596172875748554821631407038498152055754217046204142112311335881814734882619351945611912152565697259624498426501498364665929259044409377389600708674682009016170707523251327707678538904544148801211134847938248395176802123755073146551036004061384222041161433430823735847385090709195964135719283802397341654254458252678507088634774035096646706648112084058811366338580106102179070474154421160169911583344257422566871492968045736151827223006494924477415509526736560458620522883070996283281388039298059814977329482919542297958199793374998405466054518500555301388597828205029320418981262889995142996350903969985254864511611613141002821279858777361696360893872737372592683047673617649484242107774221732279234527700871055902934725096507856792606582269004405336877410523717181019866341841572465845835661823118957240486566034264354647319160515283161538008380008126007995269188316307311813792904562068461011693948616751206592124973648970312329920685729676417525444242187982864485440421239534566995593185250013891607298657759705188204350561130538560467560151883847028425645559819475266663706860382701860470726337826547683823349439051950899938472598102953247805450655367757811433301956453744170214805738511239741629209133055104092098143429587722519256093659449043037090041123386842221742844044261454092832791402628202759794809144715047803678599779301843456443783736762135584257978350782875368340465557581464030840120860574020346533512092684603200676855724551325528773558907686046796348352544229001414936993100634186914527713939415505025357603492937234650416832401612035285436192054778129062115800567577492065386402081742418410151002856793833977578747384799620845864501279537434370019533609511114659970261305106515679216640574737423136686227879285986497200417269490053274415359353789516951995303183287893997617000488956863383201527139548291148386899041147672401302134083911146561390676733460517660572726004037789954805492538981538406263946474076032014552588172461610546361106285549178262567491597709751593531093596088290270274234016753791916308450642799947835320476319395453345279645130421754336056308657135358628396161270116626104802167748903734514136524472740803502748543005576403822255397798636890971673639158798208671131389848924345328926022494685419311734245025717031042531964441718194365325968790336978124861965071304380723500100082907495406534571422143812428545395668839108098723037133885649684660449841661856442906830328634896110878104311639533146302181079898892354185359424355201165237503555752343558797123543824954507473682776629206424970564657683825917111599549224937382076617438529840638700312840623333652674062518011431934275764229209808538226385752337107675366655989161130282127135519331586700399326830457784708303509832597956596701773014040482039121297175455828565728919141793076080317087222023671408143386556881897612354616990042748846582413421090541959743232329004755903351991518609762954768056224636370698764210284616221337869478845830763050129538252514684872206485823144913282806714976587179340747662377804586823045693797141967209889862710980124942895843803029495768776167677969688091137973960011082284047066136025542342468524432642152485772744565120558336317421457655699812934621027076358861309361637299506449072791206986760923670849777693531044511674808523621802986628789247573506386682664531701016247714403823494817574632081757957772771408070001399066078734048375811120317952108016507913052625819429620299114897865418054255499959669456599254966848351310875988144036534386635029276116203077170860349864656348312062808202597805143312942914733671816859929469633789438903985057265106126155291720123432637613268359967553213526753788869152278242071237851060884586214772551854438776311057263526984249031149226001585941776000039753361006618690476589417586840688043808406538430421969537140202837451003500472093854643686473203663395807011448103660793004955799531712546235252682489747302819388731011506327519172782426291652273161801540716742112068285884944787911413967760711768909498010663473943294732964559160751751470171361499838378630609022211149272243963339793037734036666778742927387952207508377678868516661934846389766170370561038703613006831507540747141067416871962970483300661619294655167212181847499842239507628484157195775027191114111076902039580424231828473171046469535070428937751109935127843128072230343451196952166279949941846103332292874188494077854332479048789786651724318458770336381546209728946734928763718580973166381265627416823387203762790715923455202644449935289671055490941169690962667690701529932549826583823679387560882733774629786159740826433382844417143355754145105629168856930222959590602824200990761669924558657014731147654162777114088962507700126565261121448699102675199674901473216424671617927319423049651517835162808438801961357074184082328140966988590561019357664248297420139467680555826184234322547624415433615751634451156853492703759625718940870094622563912762228435838340908704923839934256949315771106508638591008396308415710706228400479485276010833616995015090710901546962802785330875509299470046109807761866297999232875257028121665128456390796718370612953450235971985359163985766460133361167288374239930272160947199793916274236593196890931584365855371559071529783857882477209691333601057698920205302867684873523910310141878351162037470050458644177907326405314298578796537351775295846068172797856505244879099203338200261899393682065937301944792799451244923311795932814562866305328436121272053521790047582985087514565787311922996472794261566273336489954363555462566572867754815487922240692628471484109087299991963981039275069979955148549068246537369851837335178030993070308755604662610814702813441480266675345005188681760941830159272156661576298470207778035865522391264521392219683401103778795247314880606975866190523189136477970038700080722716049974252149465662907522460442134507212780198875392522283726482815418570497260448344610522984230181010599865398334681907911823800620050332191180899389650666609815948131891821578516981054673876207097598897658295723603805223930812603175506696802676480555108086892677780215951766327397903209294067277999754554723291562367229749337361320308752711196240238696670412658443223724768314361721084610208476935523929739792114595120304951498442289605852769387328667222722953319298695403492837220519688669805103181649500482557647756532920218159135705630043366193511539324038118481993111342359654402885541220614637367443061667808844289352286258006656559596349799298120322709628760035387473868021411381240581604242759646168606497523775204682985301766433889652706721317567294026126555795634284230137115441494355167389667749927834804512458930814575893056678657757114623431985036102573687326541079019893510157062087911510154801499525315922671347946956584945864839497895295572622966536764806374323945207133012450417155513935787712753056038931538794282380129872001880656182638443988868802199133812707920268715107817667820535283663443030261887423116300155056168685431904457772782487878453562185293805843768156130013779872684398185176473466863658579315375529219189347899658463525641699229708783063059483416811679389720069285425301795726557466077438238094770017172036308673833209931320751275852052166079239852979897676281915975900525088310286179883708325093905285514986882819393990589212805186168191808328308421209931797167532386239171163564762026334533299164534636348982542585959661408731601883074617980703597450502538605239175014035775481341003850586294140867125775429509570633748356091783106466214073097771643980013868202664615463618055918175248212258777288399072416547815130642880408112407652136311060721975533153727867957695460907203903647776490716625122203534099070775707007791546576589950519590084352093667138247793459582879843412880908688888821935299116624459430578693654229028620493144046620508481399868732961627212306526697822486580123297044020642064338146840536324937040175456208128872897807788274890899584272558534153499123647952916433187947588571015167292566650336930451283786411724892972010081045454466298270466255675732504780218944922601317561413208857709520414280830661804554773285641758624525331802446854916418706119378413797186675046275300139379490515531037479430900141357837808247082502843836505805869943564782766824335031711614446546404049036578882990175798235044119328206141972082891652221274268000049708349823394350794473943045462750940503438703120261371692035004497128006544785800288547720950434849728421158466141611479009069668543713596508525064156144427830222723440267594757341064551270723405388093679368719899677966826351248020416478309925719722769648270265366095175856718148186950267898078924409912098426332510851545850468802975537363936872177930082950268714474959675364425291334831709048362522349771592743747403955062956796762294918475754015625227742424912149166244318571061525202434821656891706541090829001841690731227187568454058572322372166918474530122052157168364078026567076857764074815160041198720514044417188813118544099183382632914958902466227321210718191471609558548399375154541478252630854389947017217369068565604404734980264013502130042591545643402886837208796932578055690186387272861148829795467351631486179475654888210495358511112957669681776365193314573352954673337835930566009556235004202978749919039714098536966183691209069139942944445870509814078001500098746341336605752734757919302432196449119267090377199786533699838167598684225334998700960375692829433024512335412200622388988088640476796017066155437400937620746013353361007106464258447171899745187273421869233152457549776819643820273537689434480971620759737437938422214352786751680406129048188500585224540321654068637333331888319368545576797212131913781424380188317824689819234878065689337518245037158173928227299247018878602835872144076917716072049033828860935899516213586062798381865003418595825419626424279249123498864746186638705139985061014199889902999812998363871002007500795376307623353371178808288896890021111432173711276764513317327504488956453336805452536057454985756098531814064623721902288373860692463283862967054307923713264804399968359450717373709315154058961081537038096557569926016456120885196417158785775019232758176623027239298155800019757105404651439448303745419382500554959612821130816490277645779802133674778364715840618220390185752742042251110197636313157803950592771679206320091646196956884931169972161852682468714446959274033008351273742638330345800365650095743300051299856214627013506886454379737662850871294288876730412595751534214201581018695256859466859774902145397065370085514150585003055916141408205710213146485377124928999849239806681577856049776841891638728493419528839935190219713081373929606950813231910062800881973064665380871674675119980855679239621380260734164221353805755279010735658086351534986223059314902546755915395959030799660226682274023478336965778996765170211408878383479043601529472838162884047003748061000622745524967360246523851459851420650714404990715900093584759931981803794283496933151186291667876709385002474644507636285121423392987729151887908194995054675338183069151791273711295244347967711398642941675402471761447033172777869791228350248317127366197355943776657294019740963943929043874147585599929801199420602466203519224315769721017490404133435176262308559049776306947786454214337757616417752513651592936783251638708483193032782503844291088027282839789470055819335721174616872578284723205314769607630414791979477962500718020269136680881872222423800094807412954952306486690997985385442175992363448378286462551673186298285736446151625108656439892616117478370648172122975377056948425637941682981450441128324057268269760872687003718029802611924390087273211176490630721790157586111122275777439901689571834155314032359205027991827770729268888745291824778150181742200891950163781291533861684910549099738327475910375013595244384605026760559125478043715733704169416506781327205021649712906031813872132506785095896370541997760048823583631510161942609363841591884503619654720792464037896796830823223688132600457237678288873999977181629654314468314714088529529814026457834328872874570823080171989151029025159837603623015594022067027413853264267053061561644037430723511926637924539724541130484589683103180469175644742719806139146168871051462248988773208665521514445340515343841311660380646950543656851221235812944786301934417416108045594801203745535706801228719402225179666006202936860042928451326707014725705687787567203504898509571355961256883435437629986134255616392741871529145429228426705474436483059844664258281825047609696296803127529262544928463227434991241194403991888454476781637710087501853907255426228696092616485258743780531327088957482328453188510572541935824623956899222045409499344780130929728186451977124631388857804448998422679781157367245494326787488502354202151561756390579488818856448351639540749928170294482504341270030815087978152568123414501752678488478095715803433013781740498746350570774861730937455314054226057874322046955143383662623890776759323437134403758323567284009670265465968533101452801391886391680049413970070588190968451359790438366730720175010978623267310932091636813562439821215853659030254109331875878120229194997644867901986160725085561669420779253982545650565940587870154219624728107271099097579417993555790815293921214854266287719500791037465758881297349770205588182707812473266298443823567569518695096252980196534230366392418812432268059707448540103006215021355510131696916826224561664832777458997532430877979266332112914686434435205791068285327619542427322447373249145545173287966188834615586544721142473905277994176468233987299588476807122329476855833870625236115639055992501967518390294385164413359098512470525977935180223086387522640091882481246505548691474812379109392323082144727571397410369583102972026065328333473286477814663147837828573601825469134786458313586579351162592373075442938001549073754087176635762074647785703195621233872059486861118080626923329374281737565045797748915183476021132022020197907353923442399031359754407211044979415581337140725548536436244648831764591338938623615677040111359197331417839813476725830389831493287556995454524558523090812271872870053851503123011122929657612003054703667390935643343654273487299417088134896208950393526989144937226334861563436573000549723036060628370087718315610465450382660456721486196399784563484284045238161907015043417796935379129529743206810869208968156973226749716990315700758935554029148790809013880177009268372572229429520619587055845269808376245896030677556951126583089894246202816689474990336072353702575767315442253734640005849505855569254008500786194240086387357295883072310030123325073610478369636805960998044333399971782514054128440516110202049131009357039975311879027792599034000246048868571930752754041138176133210655524991567472940139974377803968918064883634232574076644551031195703454252646221209025287596379227230363994845250903705513511187317748481518763288255535528945553170654621198935612126258324569073796944774402685502023286580983951239661340305896575966867323052706140977196922047521366423269316056525497886061994814173748900294226276500126776592532709889114020779457952522281296536545184964953956431240835325910365107013770591030551622766405155821055632558297905749881263240793615547020254921466284819931433837293923233474199772647491911857863822439971155409828562074314279111103487855647451186744895333208753947691904935081579173156528819990936033084589303599945571012044649423827401981413057578043991293010210575381929006960683730963008877400770216659110922748514620133320433122200853496482981440060895349778095861361932230351172977982993735554578144872165736787038564150956483106000109317208852763118454989175799150275405810192307361010052942488403453904877936955954809395594691543846027553786624988657875734362784588407928764988228845181510897246904421868831120639712263533730067168199956632341924957194351886143871278025314763498746508452176248964136290547137486995368834307174046759953070798872401756492801337035199922869879681689003015793896182560396930342283473663563876109228120892005891467995599690810322308371733882092840156024114245094979616750107104465472666131328259153729437637693051970508075300677078791092494281130933570104049268097329540727856904716893569148692933071080196994120258796247573828167886921648570588824008860481068491158013211335853241760132480515992379970414892847378951042427666534789108453359640572353220522222301555090059059340611019733624455497506084730692414839194628187134904504008129268825101862207476588223342408190614896829952872217174781785455185271196796402852828508047423799439530209295893829706181017136587170242088395975432801306884948236042654070901563442509614866456417310999817592376070834908944004104335490386907974635145412000378706121136848522001458334380150549774511192733821370218051746596143766802936078204144890642069045328315302160730699736958600764655785929368580812305546375197751231560146073251825161767799300961937871730410929345972228854936979740692003052569506289941620322868238791699677158467972069876904124436035422459005782530496808803775266674074039045196555509634824700267127081981770012997295409065276555566954566998555321202184585824910899827912252494001319406624010542594420944817319539066667375958947350409002210624785380771601389604528739992855677245932436118555224094673338999524440089668508024127678669215986021318833457170035999844667761731110235665851557302636980201883325726783881576258383546484863338347819743192632559057823851398331472429951150849009836947331163727349898467556122047980369222704827442566640892694876303363999762883022723702057956072419380504900836228423616186460228429006300031597890216970738003766257979523819817847648288865232560168861114210347816505202839955970696004429227424629652434261339902434102212873374856606515387616497027048527913920343798808434787724775777193128074870486246737134370032254249316739506899067046128586853576251262991367909659931723191439496311989473806353318930386635480732216340369180085802402017154830132731872405997517027134613882500866843337263451307944667965888934084185092608020864079334334734746057146995791189153460032269791621213504450182217384301940406066450455956118745114959443676770891966051415510248218861901682769910127930925042671206314689686713670248762635693737500896267444342131288517977883800565912574969418465963975957325015369620290097467091899489017805697596808118081125575171136451503154953209473179340528132925220418984074015805261570837327175121409768014845458194808493585292112231063516138750665062788009303197033931212324576675998382132767187986303498909120592321334778007235685826219688225585630957235318550341509184266475728209039388291346204123591822324135523621037928780870780493227509966150343944088634026861982109258217726667648471981906801455768579553675833593758695664801715593045048470936919513609346497813513285004905563519841992247140933705121704489426258954372731717568384520515665739542656526042630544168700161620377889856810069748121270373757593745187838649708700272299201364367231530007774538591261667053737455109193206031463659084847695671844541856498087782537929291343802795348314379570156278487438981730636570173252498520535169422549992110246474016381397650431877928046226683709588431117739142320510100221476447881596091743734815844058605211842982048101778820617715888201999055101703524722717683183913969054101249799990053607048361628186746098803302746338675194781648687605533730970567641087693066789387374892848931266989506540158609473700678285960501613722723803277181882408834893839552153399068867406651492882684672407301326975739257760452454194093911083590594228819203337868292965634887808325974337626966609778908422560025897747628359376004027397013779665395395462089481335826907004291192762603251290600170630180847900319610812225987052743150175399337420210654086133573383827500774500885335076590294575789024860985981456868010945301003600518111785973497037002949825628865787514715291805872190523985038240572483442235363429365211840428591783658306152507518202238216367225277025008959598027808153882635603165429149174768984247850057878505577227624103727441101857566053345117107954394070743394706516188599662587238907522522854298972370138874867764477156950156846272836369830884260290974039419263996856435077307384707779541031671040456714664268871748577903822870078060447068034256783413053477786843614479334416394913822048047711900220931748518618859645106627643708045618981831176689376051359692995683894952697592026261200183674310891157191694645010114033566492762347159153565920515387460496955155743979606988454599174988980945485757516117439257538737649910197430273469114094365278853448419889938056924308233004504838609302072927525691662592520213719142242377605179497524623284498712294935019379990195079300828586895321335460168709684622456609557471922395013304995397719298839131577763603061912098876690387341960768623208285297447273847545632201289880285056686814710959033239406850737612101698721288003042971326442360722726587052843305567522954381657069154771227937774127824011215192587637016322372976939300422136270633473941523663093095943722858460116033383872582715994980159681932910766594441963080884642995970399186079314058725872594415617430732901544644150056304054215810841811064744628856939453824815857673678682410417399569605315903963054126263623898555532096711502596421099388303027217985630218573032483559875585484555085668201051112741916116390317529412724176938251340129063386813221190248282187907325427462177324700768777701101918030088950558194953144155654326519466864885052742737396935976043635783319021140543251440070496933069514466580843204185560165182598897045854478258127091602280680876728354102731753320195105760121016208626832408112585240926100133000418353664549850669901860089597138935478028693372970987980603781933512392497524235061127108965457432584139959145144882567507827488277494821189000117456899002217724301220100369600506892088127559687775770100391032202656743425340342651700011938842669157401332885803771436672537216979787569952344256937371990519523549777901988415275221643577703066755402816772373148665046204677412560563746334296828237220712563252577479335374281589680091764421548104447457310887470156134273042902236897896209325413800211434653733429197949470463536960225630762273511637480669233807755951965591811516640838181063225409069621621046303907406091620677432774808246868173263437738443018368005162840430819767900503790567532631092932050467968727733173560585057677422551375771475444782684957150084182835206810650591378370117965463419158327019391571446822529872977255100333672528770934704048787065711200469994514994305432506043239256928755202524323262644862492787767238228501148148909919170357695108423465108333570969999725018820466655692266739926847759335369849729083604571069382657815073614159018038807318209197898016848362947845602058718810491160716112204644922502869831562916734474937955317963614729718050286775612118185107094702383139190906618695424513381763862387091807326726208516955990299181545683174780360603890773242346616434795113033379018921020372490477306816370441519197666871376573916634100907844303442067611464812527091995703870943103461264477976408123647775818632457927311981878590174159700666470752907188611049533086371212243770094350871894730467794104486538378865745929835674378484076045067751363762946686862083647593657175622909607401313235618106430267554209813028438008610802972045573362959035233603547350085294247358615779312735987025994140263855589782679699963390272537401581686768600965070741964998734833204121904396858988913259553721656845355386243680182782304955188410055766986287675908121402803307259977646856808014407144933536845431289830130969918058833953929838620591213798801740148212191417769472429153356027763406352936999231086093049344329166176641890824587515056887084198466976865224042170007486050455135557222037178470421380382465639273816700106834981630757910981663031243792652526063878815479194831271023974512978529154850334965058051585098109534123016530812741802755935545088644967843505190211953074935298109510381319449631969157977525088819373457851369441133762700201019887131931956440380406583574400821055605424794085313353239169274798728972118718282177467829182936594438556874148664096508808594943482232581742455019337074257290705117975130071432647600006838993613106265851139739748357194599518903602251093111629664773069900490092225750774084472818539727020251540446977946279195142010453663369356424793786357038256036013508346348311019314249381902439100275575953284164756170145064790925338659890995397068300121741099149872513405295812422589826145447081875248948123698561014691552511193444498734963397871827394838799647878040276642714609429827023065646114239112872272601881758980034506243023395965471809060557666320245374312599611621042217576247548731783514843613455061691198056250603795465067645967278239744215551676214949147522714945942008753051701736699893600998200559964976101825905441095321136363675938860879434587355058279798854565154064510436302321705749406964018710425534674230277163095453311786201213382957568501086460021434296887475345804877272693757743200583117503218680076653259519943744555170075639253840472410528472467061098113754461479154534483102354244298671110208806597197748012229120578148350077677342660423306669056325034754866592373454589133111159026774895378918261294705307730924827540264216698457450654760299870517394409015204616317234276279370392891570863783462673192323356280525153804789300866923573510684229918825553252018474845508517719860219497575831997823912215932789372575571953694187860294825260733554099223983667861969908555170575653723599747721913924488441917772433011472633616691934961914796268126805878585423760152553520563147503638398682157808893946817792878762863778981848218527736212790296686388057604510473221869377488451937198015323936060271106067471270898368217153440666696629387612878851814425857499846335832231019162685737669601102273461641988477081217271051506320308912294187886003668003880899661261921574682054421577206414660466734417764099306875411557613442068576970976412883983133040268355773667135939791499921946339983417016601857603536352503984499425870155067839784286107361430258719856045537028159524612853922714702479809085843443794598429358058354557791626806646058148399066692468186947005249258859524723717894422167578239195345317448527547653957152003311888270035023403258713824088997779138647865947959172743001986195535232270851595249538591045511076677113644461051943998435567042103111819472088902373026692210548118996361839036253298962279411255622006581583413236415771682863827609811893758568672767675326794884038126169444732829593048962560568468391214921090296346203896722057513181845012606282258354135604192397246555672237638237301225483101731173965475105519184232387010248345236545721956421802658197357338251964636797397763106590009158614915376200286822678535693201115471774751498482744775412007082283424921838107175879392960726294540808258767528550020216923750159013285808020180209664903940157171496153894395658279313439180023821363821716849050571198627515608939792804754937859256464122446320307366892115741889060719690769989454770204301421928301918322843183373524436040687023490963834863104984036897088554482353643551169225385553786495871542675314111028903854685597136210139941423528655509872030616984699024876507914837290026548711111065912454221871162845697118490961526241096696729373926947528635259652230690449657035429722508179279176096589219522385278917978212643702253062562564511731841049661160386112619379019607269493278776710937065901520622060627404870999493355998908559706504234357992915949049921951504472248298976448306693245406122311489195670807591433897414949323354294964649320843494007805423842005716088025505869050892334423638155939093069010947712840686977974655914870962034623832866056570634479014684012714392384553153410257731018051707620765257846653845153202088385469947096404277053384222045925017471329939528032002764383182527825062863450074173191013717360932401566381410563499989783352667010623290345896626978333103620428776656761783348668086484815900054926897482441924232728065893634054220480909214752345030020842564083557460757813662962851786762854280596640056326905237296246750115106328141283002752316896013143439609599162194862060138343496761764528183089497857374481815378010244193492790099224279940034192660271086119983584233718564977386731541808926337284444816511807227407038375354140398726317804064165396060130807399681670878778366897193977649132986666330652401839587679473696235609884060410631670528728619085912643713456154006334246946794660964617867607981957864870800941284519872663760497851102518632888104355930592990408834112354475591072694928770732164318063822420936924640436263514867526130995693459329131300216572293399652036558193901449054789566166831830634646934915272353595634801055673889381495818886842247802242559173797296134397353232014486710535020283170722131620852368575650242085295662819377345579765032721523801379545157352489649918942432712926415707463583324950245392035284314644112041211604710945050097811882382263521922408208231672521522713297457642747592173158492573319011729637272244229119398236946160988802648502368215351303102345234640935542916460041539971994010915542318818241325377307605663500282727870330608964352837881563477445745675938205484349591084622014429806029073675526627906088611345366885977899165857191257347687453658733890093457678971454581745643584199381593444472500073526155843873784670964617395055726532036929995062954253825512624056821255434546151507405285285079348948938025441432401614828273230136354409420565339724714291426837968984303194693441848755636087111940581904339992635562254658873856445651544909351587471118225741492347721375632437641998265861266423101173186814939392615731867205910790924813457624899687701175166667544240566595940289023989443569241239064333218576517148490207983752378696004416587833888741790946512917203945518428122924888874017905016727181390734009302022509396901314365580581827117127872483705856960374320854552097530952999908146036833762224724378683908620216526949807042978643085332633316451645743809743196162029006319390956385362191355137182834204379834384838170063293016462093025622412682357376309070914762811886743756321172216720943980091368064214064330901175982575210932333165966071271621302591617169571775876819006291508068810306098268246046150065387361507950522320539927082567125284159383774477428004521133532994622213714463928670779918987878232517017563095486142801712596795316325488690947701966576254901831577350674397407929565680154120823616160048786055492897425939874717695367200048584980676428047160663406346052085047580606206988241746401555313194536945961651904358205125831535674770488753295885671483576765030853124619716966132252954579539935282262886237981107288381963573198691772941892130777672471641378088560044585897420097861626726792685584429387273769923840482975531967418529048941772418144700355299263015975345315594662918698707875794752467968962251906415956465009586130975623870190805106848493134301791868744020129063542131145521016737999776241961902945157517398532041177614903202116351731443775179487346235947267619639578863469738898703474679205460695355876338706718259314775657338504097967662546340011492923634579397979109343670502669431082990242585812626228683255287655939563886108869612003151794909505138118423599907628480098481097086301610623083382369531372528881530417861079126767481544378659971855959490502681790409945133192291768520365608805860976385201510497425682726959556564622814156857717552551535441437678396838994851176906639654161320163970773241402256609213842150219349103186014021920722132921584513084056432658093682886772017092156109529606865079536332939107287439117363247205381155468328741629602306700871218699698136764902761248025379013164007037645179527635322834072771511808497944968940314912650950105124332468730924671169681022078984095237101447263339066898823179682646225977791676905069320616362515063721243223421579586481296607523706863009303888701501656996803545960868712229215433096326652267568527908784806667762495044117264607822795686716922008552543253061309999966420213968690373387446054061925718394799805929730787271387029382763247313683887814911080585312252116916743586444976154738427142242566495601104095185088710447057883738202837347148925860878161538761077860438928896286959034175341184402673536645468752762333553399845877075218309063437862351132416067374251629032985098954199262540017981342240047601701723498941783572887198192262478661020521473231603434342906993350809631567831846169390686415804021793883124789224339320098560086710532165965184798912879391860319501178936953088910123020559284607106074014382660247151106979938815549755751052250033014850124602777539838229515406679140683160468456615811513068532269332561679353045222528777475541531071950415463560653487916986744372029095575097811629661838123211786521319107028087348721663193339417980148724687593669576811739163385147278927888156271468692845005890755902328849401336257169036342040453059869660604683559646529358514794827709539106385835364357947946756344038167722079573064630458273818853550030476263290293403960774474750593322087716538821316679595377023618306193374613906280526683056875088382525528095538960876538634036937633624547342575582113868463683042128895093021738234538854956421387952722815859594831034505948977751203810003368039663497643299446128718556625692203468464915501064085013178911952939633940158881924235436748537398359096322734626632034448243460755516741798170495738840894783939320599079291830157341889412272637821959019033260525314529165067857613814263111029512890223254958305073473838991134159115066665528821273612874930684495280527262024185718807285923087845198432228949007700132023004001186461557760676624553877901827212719487299160935288781360299981804660853259862065286176303159069615924421600379092323082970617515321482272339959566712679877954417176019928089024727427275246821929581045751439138417015821318848858560317232777213830357972418716871141824319871665215194977225761578868647401004644175708104951087983764067378858478973631609475608178922597158573315389657114351939974910628885631026624539169019995384642723351899924713793476009651221061498724369976804122773151889769094061959623713403648788954494225599764988678393441468459039729981840386555320361818263804057797775907527099791051238938408593488931268569449034322398209394637552598048028075864909630939529315761584762550637857041593365633012181264696211193545704801225576603856204765353288146847429756823793945753987948783330287660218999415100384074787435195252775104656338099764054876244843723488905463103418645603123800191829718833168125466987287589651814880720416420391945612894448993370589007385646698375831726121024485441129034955977078222003120587642827533967185346033329732213944001269002778714128222237168282138417505276789557765395976200595376672952139028556934289169690083899257424031406067141366262061488288819886601366236368290397506241642886454262732237941605644189296967641142808594871579992696031049638516392632040005769029466422390882361816180774121069206951400381270998974855569643935640766615189984876713778171457479504848624710791122772294954915572675546145934427707878610641740179784995247144733232671167790697314518304420036274669314842064304229838407146616973135184503524640977237495120068725087497858345176785312622197343553015264582520181946186469015513048913436052735578996289885833698536873871935573494896013083998012298377504431834440780917546684482872640596359985370439659875233370355934726627283807357131287081544370846433848578912912831206683154414606423465858783878021493653760577853531684636175441461687854451729969271033259572673229875824292224595780098145956551415696708332166615082943958086986680354196262419574127001322309380550046294606328126903321552822785862235904258457347110308836452817614307658728685154236341255996565362691371114887853620560026237714377075064713013122343704694566144671700626246410417385827524643848280468558049503512852151035689216363427037226127209534067544959000085271138366822985849881962082874682390187566108599258465337003845934613866469398505646321753857050468652075997347565240910900323938869117885929098155207650497345189645132942223192291508870186217633229108899868197404504407938153381343560314280465873334069896237213211572307940454822949925538469343259028880264021813401669245818345212228457981709939491208375263030180722938369701370282794840690099348791370887341163212896147900913037386390909315584528974349816320387220382137778178773985329201497262037074920825733269172563340150493861020167006940956912520386567001832781263920903019880535892553161246046670892542849290064316625161304591650948813212555610557496574977359835933695834387758082929938525546235280434163389030044655093335069200545031265373756139363595337165523375244433677023266211696588642846536756981494989065128310385524522769744688451179522368795762726702656548355720269598974903273285729151845021750110072366964968033853226280297690492159436928060889251935865995280179829342924268823808970585818136260304172940021983228737204158947652374898988751180942554561352699774886746235838322430566064005571263170086262839231485046403909704950869079030638745523668988324718435375386142098795247471864651297017631048631633964906132841082278595497896373971364328380830568651891998439075301954225217475595795049877620535630481946957402003479997362995599576386736055477222476172018110938706240670687255853743404288084080670739704865765392524317771365522442270786932434153482868175632919625955241691735501120776628860500379517780015155357637773225566307363698558699053346859350957779240875163199221848069249338981171486756232407721113841515363213867250991041841937616341830604943984241666666596279033274831819593437103860764782833579376429363280948304360491127467845558528692984379788781994876478955748963722346802437925484168753030621124551008698837709168222052425242473850568518103307091051723391138854565797191004430449600375594766178383222722133062484770957915457202426335226642513712931558218973470942629954065377503465705106881410155093446138514021230006977340841133158221708639231668405308860745938426745528862852609422242841571711465102546115361612677792624975619286312349718119698288867390161933148197939404083714050927073986524926899965599841649466778998700292963456401978840562823358161704297363414419569365633680461046658314543385804363424318299488427940916226493211010560587407586138878518928556207330828718160983818667608648581966533769853617841586980638657535330107423632293626335017709759271520720340667503747199389251844529527238664848411689044469540421407537652541968012936487835283804526026065867508800103202257733783449607965571946053745132387844174548073136550516538026294945205346727177396953506207530042882660302686626511838097128277314707341621373204701327431928062957794137039110918975567901268398294145108192740074117548557813409171256227188098751067110644214942764451482580966329544327638917176611577651357916146928219037483153170115102967573805890908381493883202890007084818364356953173153749134935414382350587818654883469448096338281574454673103212375759719621792584214795193313118052306831414810569665797001858772114216076930749193619314694279555907375078923395667296437901544984834877802925796932400998043430386367251514315755214358902595536293923563787279441838822267518796773675272496937683778122029192077960970181688207407346419481765354417421390655795683671311453152664674713631872457470159190030144099308537879373610966041356892902933220924310561643965955052769851851454166570879531646323264134305709622342781656519973890755252360623591673263384942554815916178076388468669354705292218765436963899763839539278950621845507701611455547385051226832676382586334568245442449834978599491729086411727466609755396888938525895613816863896174416391082159013799638693160592738442398595631823598299204105628497831610002245229792768906136317187370534225829106056257695433859660755200629584424301910992423950813444718589320860291413821940167444848048514383462225570239004754842702759488297087483281924545684154237341108704616530142030065480049574884096506931211903867745082614461904282702414867918834424627629526500827040033828543564066608521441045366528227908353868117305442429366460902041483493475651639161490920955359727150869788342857492811111331018412577121863646347817305105547026641008822800409290633402850672472285586470143931560806435149926048243572490239407976506002094081048665235141449419533673456320748618195527985763706154317586736521808086331495344915452647865164795780921975049912291959955569312698679498537097000910285128321883818803293880240885527942713375506863131424590091134877845437201306734720113946877136297152059852135119843909780698891084479345768212762948014055718882047182206067276535911224358843731192111957618106561145952064095991509387961455755690334858491622817455039188944506446135594283413740693259621988410939726542337221317034927738291644145267509605127515699992616580129202738914244545320619115896315612666358165183827045018389749128040419363345618834315860038292787835548476775904037192900257192777362694746571764564543615458943523381019432658863051571691668577759381112552983241587911858819494848277474624496884481071739930787221219013415181928215723268958782040675811595487952284282608712227196720524973932233496651532739679093647180944954521895054001109721252531746263609247167969946859820407380012356422890307036179656974814412194370452613211156347612992589637990992272709895652120178056249743792964279476530800578803829651433053676586943930365885589759096339464273768284652977498538429123751942611322417620868565804119123973862123876144235858005921641575755245757544492193285951791048439782158259708696024052648175045888213300676104142978171430396776809756065858476958656955752703153513406787475134448416630809902042029599750991132327884451491590620841444665714283901301185037322614440592574317844447893155626928659228690208931218391071011833372535740068007343614019148827136570165868099854141742553935547296552654054068031151878253924243483462818147458508150094266451465086187341131184091611983457728859129555784389184249563556489849509922442138333227820517290291610368888857023162927105617702586199889222912846934593547517763037622105847880086403491200760666206920982510023452555973942391242200964735380742008834577203345610002978325467117208663585851599896056360739955507576343275527987644538882587874429200653860712549247093360642109385264822473329104148303212079048754608720765422520672967936328467351257009047587712162226233953347638093918270977647880341671471291803792577486075294650515467846983880112487117567818350543532966746531625817368077417503305802666677060008496444050108200813283589867876896947481920819302002897232391151376808140367833027974405948414071763701402281235657078853550445254628420440676603645654332616268210396606564007464500762298861300997802792562122230624702624132922294616017195351566367942620918698559316475037880223006109558930308647601096340390520892987377858253172600047155086573164105635581036061597372350368097198764036156305785290726755457498902395786511981010096343993948501967937777090838765477572997285115943861569864613468347901375726007722168492886782840686041527713498444858725870058918510977183964615498400015145276177423887210116519485765921663984448738693487264568412422728902804618153259689996251005598450632847276015914928018590811218392733600654415996642438862411812583215577569688489245864328570677328644563310932951151107373502373836608774518835142059817598131661608353266000566997700158387110639640953448587602506007859585879847093668817400465491304275849519550953130820775513025833779148652271796019294507251986135416262905059057950187184039050745901845950761359216788232655661249172884642644475531395513458634689023446200057922929049525475759891046743064487285006325554243242178105237701609669393550594627542754097878304972946862166842458020845806212943206712012888317384736972976824330276169594224400261514066836022664988490821395452247873247755484192509601466544020770273993238586518239857119540661909464801757502386550939000974225775421349847651003786029406266574798987854953417439251580960717697403342555191896893496146878407907165850768379166365288048388435025423963619572499745605872711096495067702529773690145916031178222371583680943494524155292161561959156903347542867071365149971295540003401079588611004231085453313061565476323983123402191278193642759433519721692190629439977779791247141995168145517531234494841376820562630020351143046286351030371240968310388615874765696254203684044730469701559466902980939357689909994114076206825358483143798848892935225242548416784438827074183636390972625934722386955449737942762100591713541970481659521579365149233301082054028984042581036935814519537136768372858562543171591471954214674901950611350201927551812632480247597413181726170135292855793251731080954103648585501949395473919368949231628751856305818170585402509046545872776696581292518142935229214222671314053283200296747995862841904278089830723407702391694286614065447436051450379743024043364131091143558527549197650119290137181814604577520624686004299246057283162192051440380245399509753809944460522249081376835119631122757220861431275952185636769314902681742988110022026298080559547994437939418252844706168705883447139014611033612070155549412534803170873619567492455668386137336440491650528463641240235468974850729795651619235352900141779953884995613333235632703819250882735842884893326091311634707067383726234017411816164593374736282856094125817293261213395470224675052314399805745889341899301972653890527542997222584711428907928791927498980258517454744680322694833516791984547184954168501830467555455260838451451322739173380042995242341289627336301497746055830249918966374017030499015253006748712042430488698826248967402760331486955058184258258735004673372731481488713316409241518935283006337214993086986763550734178027743174522432392185240764772491313689611866326492188899834036645106618708832003366613016246674212398961406500364670173726805694400898997302459870448780794991508431192417739076122691288859880765807434592933216629534622276115191138114975246618678153366798603694007092571441401699548113936804262360202522992133915139928014851748409977348858967329370989531905859079257084154965840814552483529160142429792144409225658072286344495968994826506138143112930732363720798405716956887867141088743224333747529583584054438400552146941207081745366160791648752121501367290687414723377135965340034642966271422990513868031398787866215572463429423350959756714181419043234111702717212763449169382543359888742195248960317063505308394650761420707456925493845949391365136526253653850500231825873846210612475883125882876266720340529152274862013280184152609960694094165913715715649014732322490220768263025207521448428737746496610272488730142146243824901491175367852046628070186686314576927677144754154394741334002651857372027827133705013607318009322164459253901526880964596926336372843160537208605394813677907943707352452083445411048881450715834491744092279518258075919739855568171756982124531455151787563276281596373620913882095134729197324916729061121106638725616631915879557530050622964901611858499184498630218760657470114682355002418015643904178907929963817054611023476147545577065449069459629243984893981663091263189629983852971940409345890646008953988857032864140134553805424344652441731238038746876341566269423232015076834699609253365983736361346616883462658427652018497260589070242544900325023172237227454290612855577220578894314646407094453123348596555226213354720649479790908686489899320806980338882081125083610614048034377757874107390363488117821222603662888760987193297283249314439229505652361691573572415567200279894623357223728889319754813188875872324690567066649843613776218496616849706735310382506988773985947464679139955864361483518185422826391237935941374246137648200149336585007322564321526925512589412524175474122187274699309843747765504059046513678925052453987030483211132451161401861624310115567940268988774447075126959957466796032864319669074649907472297191195074432792956086410787949231050286877053423236555502317382234034789730987265499086419269366797840192428131620279150268091245537357820100502364070083632673541337218538857548995166292546531308940732862553953774591050548781775907727003614944574062655401560803400782577716504085235111205452491314494940980122944354370546022459512720512140746591493094479588524004223148556401883680383417551259943813121931374959126310962161676887912615014053403210145335010344367913689343627987080618283114703212975929600717675173047282060963788833631137937302954098909439122891215992095413442998695481236656970070772663798677242154658294768683048748129485531324747251248433840545015575805198969835973659319584248577031626663444840273615245371783539138928591443798413548764032824314654228339633595915146462216596695472269741051647371421648258993941805482758357181526532691896717461382764914601290409168076897503398251534322010859062186313532495261084628510629334378566234566792707286566012545770947844209866484025164819259375747183899900910543457347031222027358864595929147004820402819682930488340806215311442596193468712185715168033506796237225114992694417281622297027984810805883837166285507936306498399994838536325947014934926921710546549527428453724540694835163201319982124442451407096544479243606046073867931183627556465495828863989932380586695551340672076931850398208836406167400757819597767421303963477028237239480535892798846105273441212043105347777006958157364967070590843683086201266595040848065952244326242060840881825301463943076896389909341084024518350719958835808922838245934838137724298438446980441253739333440122313212063073884094907679028232598005385749852127285446182090244112811241640746198481390907077041222721624003201961258375417463052563823608692515665748462014492951520460278969132479610209884430345929033792551675671585625277569241438475589905615355019754804659465371109382718488447444519035134446027606995096546545123763543036923786224549020580104921417236407441022385379816659927596625045565587958673854875883832247891837688499968695315710504569541964742028051036338843704316229424269371361067500857142690549750234931029211179356948205865142690791919477117609566574347467214788424495600947444822098177674051335997966249326561272634321843230613305200776683084144159326784738428785498270790025062959689638442822555413873918001066341063442546262573583925865871592466980194905963077478026415642747169417370134352925772837592366668997621100563177600075542700994319052517303476784611189548008843112498878220092221002374996111232232851190449060374126042006137070403090961329560746521728737176697085084940726995397278609502362506724704048449504463554315405159574168409371570210327135856969135736140729911941182054902234596345241043835183571717140769444019198094399065526032710893846875059567819510779884518232168143752411155091337042655814217256328127045369490732619195069654740353388513137078796415527059025067750326453599042708673656041029703112847984528335164399960092469549431378171639267030302045542933102302903607072285660209829791913575584509711128168147678601405462938653039843918934282056035238088821430072258198514661748653027620140823860698831350141848337065862218995252523636077251136743348189812908063244409120743841806302768727750667135159694931894979311044373224688015707642268702288023986289091762937967466512226700282912896775459184587106408679806742117332654213180492081706256650748985472830405790238443211083150305230968522146837933897226078494836711239396582320102283597695187735756007295925481333183722559725577195188174085341718954787388482436472432965030296880596859380480646143002794600811087308813437750590270483334352600608050516105093976882167786743231420449723937717330153997866183363460437122031466584252634720713174157196452896718656808802380771476018469474564625651288647947692839410372393294986261034041037986226516886858434966922637122253401365720294163491557417633982628889929255031178341257564728313586603958002363242418057241696917481331921114926132801211203172610225077136718294935124463212622166534665405979948848021362923948383122220260145356001972912213731024266154237600682082297570655818607336387684428586949042255549292061022861379412300536570976769822421546903169158247433600134030672851428969142670200877742864515268978328566884573898238122098752937608329011857101121019493729150706844062240948770662370107898676162204229040353193205806755310875935993338373126345061788314492498904288324110116445854894481457711348045228026896799805243326020279633046837662101400546371418193080290109398195453760438812349521003793456136851797680879332259618247794118824668604426926541033853731066216426394262443806366894732256600100509151727518162626520625082710223801807602836450883397143025204868725142544571533499640446770560802304520475417687843617700650948633558270589199793309666415322409589508074894336017903769442512766890425862229148054846738358480106245960898027660734039876160461822339255509310921154145284101556361478776625996931262421593629793006133761026115733263185755483164769311581303997974202415931846740876704284230271061532212137678402951869788239350423670988915070927339675406753136818778291679178719227447006662313543685088899354618975120203294282187736349047733517660978345576081488343408215277335038322105128265466666033677704950697645218454249452841998693285385922240932052595063544627776703713491877009595654238842595248946934908539673619800285330462461932439806068064312197229141588613633558041170080062375245825014405404758628531652283775160932009840153416964718511237974854646133208495647288001472291243050713888045230836249303231201743864571078590125629130369625436261519377329241162001284860200596480643040277470979331751857091182068036951922103006505186745365365753046010493571656583810171191251728051126614763195780495753785594567857323980167857025017390095666283278695830289411302627415672583735917159610307346198524847500383678761200011086142194273444395519274967208568775319231512831902613005477065396638323410583262179316796470102018441439591102680937513646779184652012138250042114477307927324506129140460836846384528790282904499309497245433233786297254452858539601497757564782868246693350892826839127376040930933418511029128159356262558744523096305215130524727655263923886038624052783607316556821505271370991490759186937537248224059151872027007359596120014334616173804873899256377423643513029115260041169664291057963387879576736224623096238245233105456283336943686471505427338094773995877396858924151856289176044004261605021981348647367042012130848890113857003640125342291332084908040761989550790938211394464267021736003108026111097329148821650680863000008097619433564616089454506963877326519842829127816288081123264190429603147320055770714839142688983758614703985551309142069811949865998862937355881272520782204824349711199589954367160724984598337177423940192305692183407381188670142940884510760803164851313953885654347318739852102308577885873235849275379276007915394835934361213286597512396249910161700596972740815018986932458533750584751080348269960949604445473845892229020873343614361712463117449930345229237855575830947358147896338155898068579043260302860783616856765645607750794822646078804249765016713419539785988832772936294210429105873199167839300596168069667083002316324958022285791784686172861862366421065728594508348447452353717846887795946928966825833217391471498808603472075717143964617692632813132418002655899680548890215139493740784967438073337694041023149422399122862281824504611021928465987384765485145380625203688924958602946670900145208764995244830114864660557555509300117652531872007409362108898625234739163230834484790120252052583440316366128427888963972491577133228837745352252756426373766418370993390668561963661687776162963837004677968945151285119944541547265461886960383622820305453621694537013293758505021927165892649430187255388464036370404633803853714259927441930000810077758887697693955665802614613683288945989625719698386410954340537167980472572645084772947474403865886966980779071809445422951325750572952371446395939684591734697106965804312261229735705996078568033678308043083749716367064467576637301112466318208503875407711917981717079369625967922395042623323681281452465103284395068998002883207992472882231201282328527112215719369432568230613599834879709488590480555394225444926837613727799245640915696428395063084516173491550247948421046444189102505402880744199319593554730763762675374495872759845995658014627111121447809584350833961386153687860717664308362821863766167282957741106367952195911750882522220698776133399575544692181161869536835893270085227282386503405182595162719027411601837415286074296152997174601894624106965428732217906480775959339853750387463105626754107327710423119141758845239659255250018234465418164718962523074077870896032769029253713636892512830827518774424008016021097739076566448368996287825639763847117049545423598812903393264998233124044740534672660380619532089511938908608953005577478071545848471314341760602205035807027815668023640445895206816831844544988822113917614131427911472745741242671933123913714891472486070729827819767055589287674421651995013455772811024365573827760337556930243865516840016172017835618611794839590616378103754654166264096490711203243388692409691122861187817390916923803307271127423160707408874018919418918628444838817238563677059552195615413083292220508632406915094458155099706747802527421606834060931140350690367167039127751425136907011779745729339846909852644352509057987022588606771062647144481756765917308875721941846295728895970505236112285826249702652366770428633394219858304037068318220590877393922264923772475709261588665149393882514294053662037754683063296713956621200294334826994423651034178394818712085206858396322472875691581980060472984692872445931363024941050639659580058360132487894324346649147103595034924115795688855362966693452523653569795257369842043009765673882063358309508745117197181373133700144746099868506555827746466616475409731405252510212755830013221048690298509342429520569635249826779116488363872392883883736226388111319698762684192995474981305014908419477661882981139206048169490456720894174609332931562586255544303985366415521349903325519655806900747644510425156318114418931027376515224773738922552430871152476283723492771444420912155109450793531722666197528602810242939604460063783028459785253075426007971503977264186720003858055899940764205289109603375050411429396263184464656804698634381173915636223541558760768795328757635370945933577147651220411787047240455497909485995842868501793654017405980043802886616914346820639492719963502625525938229587259883675219206717462232207379030951616661892229775464140983940556344423917373209205413004804233430180953264103087957529039701181587717734211245463215968771652427941372973657281061850447847016536956424569197446324032740967494426842800827738383601456107225327902990327006579229736533959051946187727494804331156023338186383740731213218223057700731936441487182855138220559697583392733314750420008277754920573009577880311729264954950992326165827206839466385069075621768562688351829714496191047371535049121021236771534457904344197464900071155475584128550413496292815028624077936248209701182722126462698325860892693408606892024907743617681974336580113718861275034541167067284088382383254834257650531213056564775002551804993549690446849252759000032705944762256864670214009833992254290724529265104897208276311695606999519201996123137603136606754944382422563493215316224934767855922149026672557621566274151334598243327904572611848813388982653353849435452149359005175397424382580394181666829790085579276220641396060797318308110351229769256319401966305017726985350381151280872276387882033273096149203839483221188676582022118536829691811589985307749023061570225558604998595731080158546161611953795784383934596171009621112057125994768365972562878966976234744816182855024725563325696525107700970640553516832711767220743203376249088795291822472003991636430726186354981983366107151940302462458719599688851700364511588049970366393234798135411955260568574831305836088718630100831706678093248457485037498419066096653902435940810952275843785560176275031637860476206009735368049211444832255058188331011541233095858578964807844969461388414064741726343891852556618052745747233342747133211884448463547320060563939409422441123974981172695216151158964172087313138529106022288168140781293769690025215954681278966487890699322592906934801278187859707155338476638409395202890138852600727832802651151055743359035763724720731014925295225202959378137159259779717359634049379812802173980549984092865368562339439210090611376247824362024263130174736813036839345274561736626640889775987352348232218367269198459091230747750065586929584915773299760988856950454629412898832096651005065805898857899786599147306698272010173575083098269542316701527509022604302274938158281207490794818483454369256215090893218795646867273319366579873808738967088818958757462458252310240517250994771185475084412807846133884557457809488799168793217825759352593552873015085587627254920368016343815477451809224293969928132417986382677326902216762532477816222595375539063001704931363960745564229864854194014769679165411401009888089867157256395739653765606073920471713306963471105708078773018421933300825038068902574051530045310506487439584075040445745322212660845914860557234072928040500345722978057327414027463501201094292880224068764658619708676931752103901940321757793813540754606192254566583219758117310608091441638024178037730613487533575215710511329719430459321917170953760518719924376620422617149440262922878174148607965050044639653934950515047932897145781547698230361036082524672235157762155237936988542066309093940420485996627774275984680420921715202028311227659110251433135926111728285816549473089835169902120963265556821790880600165415506757842499669870056435263434921892069365990631108790529373633319649491456710036648672138541973100258668490758914958730786125609941423025859813395146017121388736227263324709667278950511182221883786300969608024477536423735070413963222794941537139448449275539771102750081687964594425777325495257366682059549317432998205813586125639455396304805765135385817077838782559197196824195625541165343649806108098586514541396346982788419430797019678898027640296785393952340945851840500507756707309568540046506208704282685476771814561562751076205445432858412604013745555479561962215436995497844667007100464106833762732147443901835182507888049159150366331627429012867946683168122320225437248922285070390273218481352891411650298736168910914166167872804750110680768628434973046215403103262375090745552279373558961974620262128540003645355089502685949326896707606921538946723056220363085001785402531429297340902121972691750233567424024851210704722260676842208916119015175833156880658154435554063003429454002045272474142892822526122738561806862506142651729568794775333245089715900680886855815599781014742099503623621687560669577385177797657403900243327373440146024796165830857072652967786418784435032899045659876045220615002824179372776311585765527373118165558896302836595245227944655383920003354313442088439890621394570390968496978101922927793031531810491337325578832179617218465031725678382915100476912095032690471558558566469992354765224739825907061898155185164581215923904208469565108772958452965932298936982775128361656294128282680239253952375815396497873893514987330173460414457483152138680805119081287764940926129094890180683618736067266254274116680476878907324371628132732384201664689430328932222676038074281889423934191252186288045478690331910144214355184174311604630814176072831866799116128936707232581500956180345842528858702405599358660312150303819264238652698552646104102352407775927087948669608284392149801558097406495077977728702224171458721794391027136266548248516158746201291367512148927697308543597720899002350720593414206556386170848244479070378478822994140484975758386371039236202942570645541042880021389161858143487233157029355296354913337993998989578752900072075207032793477167081992498088592221176644624667347493929225689329140605357822925694036825312664265568190807438415905536665236916740032532794438411178199319219338199761369556292671672262153434895143412806674212412802833488140533890651812235642731665082823436898582080302195573477963563086961408964617071228279965673871757422528101430921741047226852359466992535255115365931956665466292333453418559436713748756825794765338918264167318040902163097247882065108521278468198843774852469951122660252933803059499981162101101603156838506495632129254476430286902328804309552805786705442954358827382103839346654611452313621333235594338815302641560893798884842508560283218856637763816499865834456470273479374520220489654485377594530612124215655540133273227900264699888648135632411438314066990905224840916080455744116639946621258017828808937710982695545969089715459027526906047224946928126664706990665842341340183099120183577281602224834602775107376679233500155815196382566180261000150810223566584301022173491051332978330611814464229653073451967897906118910179564927905392618297876166576068322222818204827820832322404824160654995359834098465351319481101820164186764363170212930501409765579846402013494058935507648517913049320963514635879758189270709085388081023723921434740982805640875932482317923953932211783517580437945416993770310580491551990528890598590938167677641183143751235625537003238172798365266544672510064882096090031410931513135426572158574747333519050400815682840591086815628939538969744188457595127000130943121941651122052159621372736894733412183630444732404082562723361040607143098961009014035217121674217689354615804143487056353829045504230877099965577061265939012997406588876703228862451762888116976874375304515524831984173827460415654182646990225774090710773986310328748864569732858299087205244303367543318324447243259607858499512500045462847050423688723161094116298742119690355204959157954743602175937511444301341335561438102996701899990633044152120415764881381181615828336948014678002623823117320975805301909438361693163420443354646883705587008572650794966752852578756986386033853468171075414506342269198332821896842133087734383036755774951306432657362578182980603350455685172411015290645346026153737689233254698924902573526425465501514378316992821808287605038543898769645591412989254546950927227556091854631443912359134576194039819151607021133402722155280954808092958423796670875408554791359526351795915259589891492261056279923814200579469762345413449236071192618821424064623172828406557380909476052846628910447937575534636108180876680946900351247109762090561850539585404157959868125010274389425119605224886671550051563841110805010062121274764983693408958570102673476427466037647364005255671475959636184198620826033902544913348841839686237400346867909905877011500964831989045272460789543464411570972524375733766051983233394275027344214936029166341671830535831187957150366763522508164321343492513172748295388945784983950071209687544108488843356143208842991663221109272718571763545782254966366292349403680783568846705482194046159721890068966045400243382691926452872403582008230166778606492619582651840976196144077770463770993775335729455124861343010196406939295400982333722059921090544705499419628807962969887948550510891727954645473327045093155721811514036416593877178337224472663139561251679303384632847839448950858913188129123954599490107707013088282560608771995134542961894134302962313401489496403967351374108311631290525936348699122776246431487455309759383569863749027385113663227767456963116573618734055504573578384598421706467065240290395902883622713391620621250872895709662274964807157958710524533131469836323283628126795121589568192196639028417264593691392205717506501785220119953997563037626115890297339313269913753096246161870643913941730733555228812754809327378197296439842691869309388352112137901085355861904802065705901887911176521720525814203792484835873566919316605098016240405121057047202150767943599741828705012759138808279587349662900401135186399684764938663983225262005996147090446327971992557917144832681045082919213058671753303321440102734764276437524074793820764196544222793450759612245437044659001484245364158286844802950207339569861958118329569823233054969873731906974645057933013927347842949337280502998573770484220471906879224080932801701023700883605638335712653799356970175579081926194130558541400830773662742395338420075904065672366134602428985780812530870811596628441511585025601707295441294164325924972004262196863006211230649456752165616247657818011125578575193068215363865074618465901080101818174267234469670219398298072626463964843336461659267473984555861813056873322532910933228063898820105606532703378715820955380910300573429516503096087590569356555028674176540980031733145425593313766149327550447205479731683528136931061446899038870803056151043690929046159922897528243571792035425637834298903863689240007123264816468736351606585085112796556909241931515877254246532238363748279473746261381143617987201856283659426076633763682383019289413087745581566530582531073613533082929228170630302950387085246164531248395239319072422900013037052934043117877877015725809937831946616190608421273670437758680353143734192997781079112173572178291566919008354697380997757291083930969492547171243865321615400158687204711819413191166931884956532175603486936820801700629903578040549253425389372222449037567545002601877397847200932337489998074492660315994417000712713867239897103057508960321993100818596675281070657151504316856857156194908164448235769284186275424144530441169453633548689809900107034595694709131093282910182019885340190367678684617171626783187611357232904615843971417348337476737770571053907786643554127902524216110315029071837921532928401433214414683787790166725187846125618360256703170887252852875614493279883333202489266473913663996772468437808635454162662697802619366365097727762143731684070637595002707291154067693941327624045996263628935702536579362613445408945827591155484491528924000013232257271970147091568209819015885458026838221546917378113482928631150503497568862540063179197094686925829706374335199498027423880196909512987360017144713170417817598853445543642242355376127665514374528049809497433735418917562936718869837898568000745841611422817078590712991747792650441196827116249900886987889222018775703231583908546167864122044996753023563799365879295888014753829031335217146770224512579429854418813545942895274080449204529029413921587634591108000557418155668583855097662644618046469001411052719566327700104125217327989052278906273379358645552240698692498716356705859263616123937309121071980826918917059517992399615996356719558532067633659654932632774075083881036885842487377831013191518950483382171405411072788353250156931686267929218289979411342137894749956484411352037082839900017998658771157437553455774050765989451294249801445961002452163946397752733877410813707525848068884711461179273183123434463676858537546989436372692304856303484660317369189035688840239016234741447892118380342029518785445451033255795226185824184328780746337559859109820264172911357696326138949922974096651296585283644596040295137026216798960466762373833735528856831498862970684565628995422202819609409183235295353436716202138695762075623330176337107721219055794670545303092960931367591899790919762066730344481857487437239800267076202458372206213391066893152683467139289873840626752346174510066046582978184935614485770181979937378873303386701071282154113566805181996389575850646342156445492535592315792601597416760907198720843652521311211728321229327721869397113951828578256653088219698500234541625364604226416333235353384742025956953782199003625050581127299903078272108852278171381242192441175455509232822164203005387671630468289148805897168256934438061569278401685966442096107139187041902075803096202030498442190413505242632254897466676192983039603206890662764212594339543355594937997924676801304725813649374672299313736034056422582466436496541165842454920733269622460077825280309769816505216177146721321115822926730550982216215134120244013678330556489147184913921342321950253406289219668241893871259214406271132730784903445655784156720738728970706228142831818607011993666841210165384760446744218702118056897748262779109997168535182713429503309168652101384396272980665083201334035649177860480635291323941351152258801221429235860568642640420020119835748878886585432525862121385011112132919149642541807447068191414130664509829694339519877709673928386326347032308184795474939007320826512377644513836012444235213505220623815342813555868478815098043257840959747345664934631914380877827161062346269689479241555189816344946831808417634421850195979783295229572179234925645348468384647314950713883125162478508007232038721040702548601245052542122247842185412045643062702484043318155223733056075692230873934779296910057637125363113589773223710947543072165396076866178402085393927747588240833622767958840362389469911028338730153149117982382354353360292155235133572711365572971289551575760742694742203837645234875263181056252835756406733939498945970187529501313589679791141348576958746259036206853234247145843533967607203108127984696361391160512518303755016222523912537686167432678385357166814538138761338973418733664126706309034201736147810855108151008253806498163558889461217230153003280720721154807976786094773591378448303833998593050726052700087522922896555551484208931765859035856438528992430696326514945047857707463297627441536708878057729855582157484185608870701430106917155253456325066162899878938377887312069565360292156359527101931425812857690390568791716088782149396088147118663266780042941176428286929128961929359764804794135987431483657319622546286702527174232667291773357933823931401897390231439874015715088620605515865076939350116116332834579328518762183838034170379694566675777885073517096902525995427618336915663309913248297827517596982029662619951816482501740664382294763980910684097584827354405858262038482667754482274470612108091159323023602098536327971586970279998920200612214336422256146499073130580478845572522490549944559603138809155637990165103773687917618204062690748986627611017803707672826414369777119133282979369743436872365092711582004554366002596878993810309036661670857645596853514174238411865294234834727309391595740700922141189494259406455202207248148028112932174544646593829930482131775496070403566940752955168043864439517549991203620378053384084081642292283525702998829398377154363881404155604513479144893017881576398135678149085456552466657984263850022603953210006958031762012270965994411734027234646318943376891874631882164043020118129028154129556981899476846958687131209844077738715905608589749801049859202915962577253319066251943423362295950419356066818634018859478823197903761669081784421084168887976760312970361478624642481591959547105431331871490117485758255212988046273600158473461499353280163913397733653029878142248530448095434495818062914470814968285538803573080296131926452108316086953984416731758051896995264968497380278297033734326435610793648691387936447273140453608817546035885878415627675539751408110012998145018030033754494240516485625104411664407721595821217910562539229590048004276788116747340147611346632107234314646625117003171562806134003664128960065629264976312915244669365757033550702377388034649547964862555639253476705093390665408940654722504146367615441399881388949552151378321323491357582061416746834256574803547303872314201722105441011837901447635749920363706257903063300714134588531484707294607579907513242821948492508281903948219087651400203223716292850299729610288556362762503924915143423536019530000583641405619098039427412141273095658531879106645117035616529839820066967755978341280174941433570317868612870192498240049478830481055644327201712805151597073868778767068516695925491489991321465825762802372647245348926653543693866285203958283876548092230561412788519609373077482066921181205904864530706586214965316315327002135346587885746831917572492287266006074342393628562861637873484090233379631495636366812396506575887614178538127561942203990368860100614606973646457236525276530054294004490270257826287701695107239714875546441343753101296570739522637024921908620229870767602336249941712360351888212799622438168941192184870946563603305453819428378742622545030704123398109250902913532829110513400746345439042829217412840953610685051590837646362921554418732919814584120701944219007172198578451699304634513999054277640505182034947243343299605275777288350373920944002779354941441634736203258481394212911680604297162768951135074838959852053083481811260650558448918233321845746537581892482159726954137875760758515446980928372616861644669061514421420466541120157485047752623388905619105078962794524234746166894205069977516327673363009462161579668424917198195248081021802423021428920378373070103211982456808786153999852277435239769643006773074538010350918168886013064217119587583976449398352796285453042823321875878664723534585789466013047602741174637437511276769822017398482991936556143901755307844317775592118104015889456432914167807840537845084503498029385041795142716056281137042178568714490397526696976771800958166305630190152421189201968950159661594545661204482856492130193881049734273592047835360375155191603844126201305116112417095810923897518052688924820231111856569838556759903029020137545115260182487407919391797662719181105679585082135997442655490796706175013801026356255253433407499304260193238598288669580445394047149561791650887652806080112032352595340294472356655356559486122953966831702757575528798829218829167674511493819596993908223892980421669279842098854673976649645167685679035568380959342316858598243546425586073714826693523233131048590835160283149143363459210842839404479180083085928317888791624176595015704761517062826385333011585034510436251857273443164861988815119644774665770196978012125924709391922626657647886557269248595741090453005444465204443886387971245659607116796302228804239988833011749011197435885265103162490913884516147676904573427895876506371444100879873213735706962695379411480296120488952009184818959898192255093419716969106767800046394517170084437504572793259235055003687455848502221072257223617722947956277885169642496386807018636061672773385618876851100531125792541960912604600829781021420808617681365047328110284207719076940787777386942790558254402682748308714103968914523169550891495919458187121259080439015523347592596143843051987399068777966236497036253038472444109411572679785937530313273675520400577549994347605349895987930178854716875566927051590309102524550723044505470450805637746220514021629972464218444828879078072234742675307752069448076482459999621144253264375758457490901327050614290898413807002771656202741055088872830718695093868833702058221827399463436744743952362819697029049577664869289918488919523597412562926863285121396156431379917431753294655769783360916696503931017497081989473756512085860184895462847071001384038888410519475951446048871046258706028052386019837379974368531015085372722078706258228914625378808051098619502505802887166554239048309201712385256838456934478122931724106449276312508112740545359238818243675132047364900825324393311641787254090947125929834926821872095039277339826901375225560940954256438314236582479719996220224389163052541372288556979848328105701714648184424638857348355864582507120863624655147218437603607737893186091581514579702263410902489883403796856855600790069034366597777930719941536996180137148335215913485371921101837172420223856666445984523393489254959502193931067932161396582986162488010255905418939243999073540287486381456874186608180206589566795707515551085350951044404073548196785385446203146172789184924752436845875074625795402172057065269218598510678802761375269900202940333346499000399324586078019546848993509393048402096059428219849588685143692258929023883199820818773939308112497080443519449878088989093953843569405438951442883380890566043490902903479884680702826711748259495731434262114867616611763292440309878131871894381930577820403929011720085647331176164420863435380641556539122130864907655554554021404791061844203694451605745605181830779708367162069131636142558005342371074019851315009144491064226500536980597062977470867465665774468218769338175678777963371412163281574625725579842682978088157402865185749134499096826865937015776208554063359557922814960907299120049876446490432324458627630040464446068568918842314285195243919746970056252874950409022175002790310073277564339953710069170439680391361397025512938122020830857987881458164151885328451522850311768500858518721318768809172804199780418019251948835273072152345838382768715755761543745944163332766634368873867483657671894098375160467092541323667645364965842815721350817619427072140516472865252612503339386137245643279559167355136468503851875142556974130078807541702882383503050110454152111950213941935527736966595532600689549683359579085663564218244232989854181071766224513731372892411445758246489208002717866318509982384041434843893613435014860309501751679287082696004751984055345198973244652408271691805699985996669316834079065036773586113956432366901729754998184912097339293761851950875168922765026584132393380952159226409585968503875295397461217729064387725917809851670492960264254741330538688195818877183607153766237814589583681047156304679066083632637278614115676982822079454494817843100881694193481074637221125812981609044994786899600733106750373404849787103847904888381298564316135058044281991631506479751698364160038964889473177623060940950727223520709043431415926696503195565982079242008493891284838947210386345925165931179311840578298405546986621400174074426686197904970585322492244535265801341422687276001121585984845393161079874726931987057703334895627414558007771184145893326386019739338492417678265307207093751740182053064024906005512934376240289958434958669792579610441987074969285569552470938186630791983230737056553701161973873956292132937445720115293647479633871446885457364873208853160516714429287892008223328369391774108151227329470121696241158554066782834441167222280077396006531937429003999327843696788561489878971566948521646164894704639107209686442087209955871348488756262055725023836742441893667794875517868831904470949933168913421591899564766015068807508357730775568460285367832473468556390657717806489134713567897414577368846118389165307346308016232876105497160699181565663798022804066479333598645381423471780291629243448658207282554605994198233304061421994248754105577136780489153130365981627044500382651956119973526821873146139364128739866604249297689520074915097340480579190116397548148509546455757766761372763603258005745524446418619117915986929568401392682464970552504102853340611133204809633608299865732954096909222863973542921957410479422783124241384907474981938184839668759295939319255535115457173345110662895552965118390000952669693665046183611827954332763182444672431718202279882680252680584428671236235242988054633091748470836888934060869249752940140375392528727271232454130316309718864471984039632843343615394537821825466711541630572180573151686268952271147108907161382523082974788991045524508407465995252670353623087064619920304517134775391760051745091012022858281323273862621230992615329842275624894369019781744606694662217519286808857367290053546097731888330901934034342034335168508649982534667156815799185537121054714487126368792977234715544498429940230626903847212027177438688557384237211797628786802650189176864501049581902610506486732067912839227014733463205431381313058771583951515272408445854737193959866559464775102655292296129826819013691406859103346144559804861644480560214804413670276279970013555270521790673776727514319482446781310858755109603817474258795798148922086000768190222028239789605571646916196261085066306487490852534237612387397228870326720240069995971190822796213916239482255651564031199980040508009001550223620660006341141370374921253828178887728252083086086729106685019373912291270404667369933881388596116428977720194031921983773347561988456332245872245238416089066182504722403907539032372531534584159113184207064907367862124614526546087448271763003427576235244292190691262626290727872221249766303120935663115094762138045340404975192333190737796022093008781632926702655293983190347399989017130694713435503242518025084131030402262798913724907298937554618049815615112481126530676819187513518368926854512654279943563974927782088026791724569419708922687727300858209597546004285103910458603072763208710669960435026478888075826021646505047040541873582075755558410882730987983977581620675705478976763740056841956004299484538401284140919485065882789458419220651330068532500458072391262475308683602423799539507851518612752452568580948823734712840536420345738030532447906255984597768978642344243635356707830648131865094458348343807066248391544842082933364787151078311415897446633908900059750061836071637421491852920391718451226704483908593994827642872287979442237785675904244281251318592879968149692312859704679814364055523083589827515795893242488363246009793719133852880150625282872965042362757746698886610775783933150654742866287663457476798276479206773653975037017926806625891908651983759940654156799286721577198075245045001030091445803148239513093132332288282642269130980739643976909995486642405950398847665732927354707688259282902803851626474719275131417844635833883658122039245594786358026281266590103015888899915178239977616982944284993681885746575470292452764446789196433874790172340102707582248928215995504941747407139343070815705494419552138084231841887297537030524398980457299959399956053443680453206546760239664538518347861748483781774780233589492725509036636785617697851907165192399065593261266794769600595806232853182852200758653866520051857267171212677010941087005549335193008580352692878346375976269240312660479539454880291108851528560027520999296661881760630432230441297669945788515555158915082195038882792863994207439086585330776143424982740632241054450791668928558289023301032463332453001435583519826298571594680791385265194206664245862796283145990373966020111565244585841665744355297697010347923524695561335708408894401888343605936316682277955769997243949245630988524896261822413230930969300151222990441482591599499816180187700880248076210845980857191807064188614411902311321716743045942706731815250986789814914811174581401622810082152403109138271927010322956499068741160721434078778942460645649298873887026014336105418009008774162949535239889750770941736921224995511390481667342512139262455394872437379622096576393647158711839955174114546969916321044732651647704971462695363168269812689450780973014914091778030156644244952568351659909769500130893200490253732580050181867255230558865236007054261962792452577106750175757839468846801638271981824727577705906796876135999935150685017265504792999407194657645063269947698307511218162205548025701430184025848149014506091702077539079905476918999139128447066762393762026155641601336464834192151207042722888846863839181640733202288023000576624870292849862543881741720861011678306080564995849777182612084276860282092391023617481629617483806604594771275559608595275344169457507321453787983935632881100649255015532804206972924108202538942680930105945773773374338256942071658001729620623928266573963971525110064220944370085649175166183104294945347297239339630454408226241022648962382175330360533739275883380348552842213371780339651051586163242859985729821800980351780652952067364095122306425399463779453074197710725634831787326750980291810720862786260092847529602972893958780778329753943177405981931050864736428540201574076629325156369588044209828771572552375489543392028017827652133061847965675559163094644854016649697646442223987724880754823222447807451265764936023593868151823527127120520111712147264995129014942631968436898184966286369466721129432462411213371019537044176787880690641421555749673790794443585227000765789860021073568791840665806849843328911523774907465549750725149731739253926882628088820199150738082785085262310589914660102048228087376032826178010789100917006928756872987468680472532629674960160679133105428188452066461374552608072140261554964143007104278419243221551987278200225045809197817172270884605958122155045899079543510854280367335662379560404890614372427571789799187709828168341010412620747253625303738085797663663506439155812009085689209182145243935139105567459701346763788458435905764475348430743650649850969717985862237020049630355334179725555853139865546339782483393703133198156478178551967582527711368388016970102407243950831289104582188201782915132654592470449086704439977325930596774394145315030437835673682958048268381973042477592020913432063668605209729546470641571231151111583716727479249235173639032312060702544164658474987568404964972748487701406437220858584054309966533402940613867795475434864865515721888127580637616156169107966953445533789186764271231009284696819813349174910948253500602619796998630819319423706601894019211724271808069555256251348069290064466474866927487031875185165728582669642239072778689682546652613369984382584317851218367164475142332030719166377887080568307953522743488508596427940886548906888040786996413980013210017628378974935361672750673145158302792539407765940374884451935757693062310161783518163677453540644674771028498432466566228310563153046143874729041833288564915547914992891687176874500167000239071875229614974603573996660291364471186193280483402735439995857479898383789501530654145059448882291379917570020620203739890045755118546679940242650456121001986156641534340175863802832830812838342187097940708533690567424586540087362700421464130491061568963754280702401672727029158115030192665062757326526162802488049799303893324944759187614205515054247414332531487608588356338895798311157077440134081015857599631010479346859655593330195623793183902174981853439559901661649200621294599901164370096606462582540846014989188714132210212864849027176587976367897297497090710716271157872073582937881101346526776916672841869988753710271089728619560591276474676151711722059999696738375247519788005930799096760235558611275227405973880546456673222678571306340862422264274063672897631868684164821346643322141381597891687223222367307202529560581731567481428562812438125083027698384505454519381305169691901902237658388982103967156602952039949744716469813567216279108594685059193569433423575965467532827050583417113133140189502836984155931551088078573818472287927799784666467524599817678246593064979806280896003773604126691670379528897721493478237267371298243036351910386933826471370406825558071718379493736403814883791185346924754817479507553415430964478413546192637984353141945166908503092539695551793068787911909364950709038524148922582631396564256593122531693465512428390354076264525046749049515185683895754152772653997344249277917783339571114755794715225879597023092299364443208923936168390825995852891714356070714593370407729653562133827004671624325109404227772269068055466822994718215540996368254696863009063817581917745677609729014774545534711280442750858198213458466427825496184995915436968729031191618349768541314738851048901912002608294059359187885089293022130412171363481130223159625791627895211010765074049243150609761880531606004423066133851701953161525928718997762076635091762780637104779794416223288748281543329525232629490076620150785781042185046522511895071233461272350947599552229556199515374339456981928173564717056758731724122753528049980975614903647920752745643057916695091364492240751428840451588957286341664855244121115337840793696387754027359806512597542963867960291779846207167466859766503188908260855018261670687811402662089394647981419429380499293522523574553606933584140183189025091227806510332531878915862143788556729720487277057961547205827349402002428217168550004488665728977681350926864298027093526729068699665164782626283542742747350921271049875668944180080745614069162624344037763152020497928698120815634882128888760588052836887118450116636544592928746072519509599940841395527895029872156738944241605922261921796326029425606738306591522831694828461865302062782378906893642730293395265070141211695669107660719600623437076771400837434647893366115592470598893655771874095912413353901632302950283734514570376273106849322166100443435865185843651379941515957633488012475613062631360396268122529538822278081270267006106554592726556396442991488089147110032443070240577566103075724351882306916282853932602318548900277959039170104119403369989217621391298361422390201492764955648273992321192058158943360088971113414819013541604132683411148435795975444828163510419451017033213948514821366477140034168067036985408771097413378982622813372595812329959898009628850413839642837705415711050747210157005672373719308643117785314970818376750085334846299817225848077380532324970001429984351283951158384719137753292243268070922654395675093832787974919544079569235882418167817934435612288842593277897104231278249579908757915601911180368828465117622242155864480966465211316126386288497214766746523434249242066308753874437734525511222865028070774958564770840124474221770129263115624928896917045023906942243649462226296947484147232613106961124072970062689105009364404980087522034605046467515819971850133270895605515475939765445867147627698902883253466767986657850725840837124697671025015880855477980656736216519857390806652934754165492241557499925310677570597729995257091311425967203788923178196492519685298045668718760977648299324849650839314324666591603598119334361404947458210988067208678713351661490846447143424873305565377168728025292597814818493802728658022407150360404509654472900263057108701030403820763116208761419864147984693253618555481140567505056244112493463107406953971271231588133072410770398538076352465611994633531919914665538122820012008748638353075399447517549659672805498615444718686702682631349671954465461590422956638805960336412877464385717918680067489669907693719323591725043720596065724313881458583489466880531951913825866389424755000685546704763003673373893019518003480681415453852725955848579698145816780263880465978491958027501438749776823263217903298859125425545943511635332132902585630644776349796621128555628382748787754585430872125241174027048047620669076828046634230734253507593506835425449899395601169823926253221985769864408375397990223824636037301256154737821778806310916260047823494343492773079397911168155554251359243000414229998355920459647834222954515719782066661374551898932626564440849428209837596421050115803964016789023833876544448359742471605939940799813508369596074410552825973604242782937810623303418478046343449933034047699390553688285657277164765106620227425561784414410727982470359838556573845256615748698989153325415141217530187630285563197626253797814647013456527946919065045187169852385109463123418654325667016606019523123619589669274202753074925032082814776609226426344060776845680213417012557103325314765779518061706323451476349079885602787188641746960896088797200362220454251703185059419156400084821863157588742812594979872934524985609550938446947906542758687499797715937613836588437424337648849623859553717610583030041408065009183617247550594012662759638626501583255083363791016186544109969394532859725325365975526132069139974475206489275305327271298241509256760768287041651823231819855434130476888164021280880605328186517056186399563459988463983329062240594589071138795643693160656840989826305222589764363902722917041382943622887825664197178841074601948890700903194236370094347521389943619741167536730361139075782333699916437281078685211633118588077623494907458178715087175903155026947294779320702135926905239434555549038881111163445200255603982810979309704296796539885608559004567738926411287139768881819255813563528585544948060122110719940212198006520239303992094921033005345362835855191016762802390386497881005869523780092624375864307423647500269052550543034668803765881380851734850556976319644695862364355841995740306244959633522395202401357762566485585957797556273523511308344613405998380236007421183510649604872027902925852021659451476258378318860639674007287841623904048083206396368054123170788522631035100984308702414339305682460653613894563226943758130903397530382454654514620299223051595046995688884872825736329941891964941917707107459819529859082369062191141835697580664507421259814652661740698320206887955197392349847053176577133524128149415403996838909192015409413139783817792368661883501184768450590244885108298506472620706273337368407806873697617706630051739897616886491684194438877328903461374117232302443476247317608544101413831232074867265864975719012420727482720572584148886436548689855659438824225592915302102537028187987399168893831819877141808975035511393761198765777441760435228484370179728151284166058417917349459503083078912392143342605820968301317717111858166104155822504375266870464581830695219290635591670805048997438920008497965902844079161371626564834615068477877954569787358022546786768543893077628073624181845977168798146858428006272477030243162579663486837790967570060288464753098447970801535262930198073602631570735657363799049033296196693220838731447887779945116670981123679325352372183928746697392918480203115873106548089927315117409564373879745029390382636423128828601506527035131470091487280711906476310960344274772244801261803390590411876235014834148153107765156393685908464831284298111846946021682833867962624621212016439383626928474440175337768183644527590089207817681503243029804957066390907275964885319380312890766105887177718704109687737310284024019932953836608435591115555970948360161883933395473212985440861265943413455785880138650322186176824584678757908493021575302376147887110497337086488596585484667196497249352253435311260350973681822731762987513528305592743919368813830246195101807534562998367510321314304326795312888992053239597865210596945840167245442125613473059187452791685647380131011955193189081118255546306558113378664011815361730576616465960071432240566538157400793525833674562459425530106372726551942450306322594040172275389761901828827829023137308825253634143533369021721798837587113290022863552347494486931289507815391214647877194536771869539191865525502961074801656783873342407547300130770631676557001537573972905166966686906949953285197424774672206700119130324502207266227418233342014136820714406860248836601360174197929793497013178051088539085136433640023309004947459250412432483940429706757278071126299756601935304710903478770865704006340284282225169400378192147739463253040281779919916682846139319385902402360583058061697129005330339607280525804639083619539882678109144605281658031217653431957431206766791055045196858823239990656088543628820156803414578507431638735531830995187657923134368249318718276151143092387851312748153617855844538453431863150756946218363918297642302740158363685879275296751368270988747838036366673947523656757122573781999156880370988935907412428696309906047019667724911075347261788751167093533479311315046724155085829535312069594101788016123119325903932479052561198188982592612220069085384320847994186815305194897033024327140190154182760227505753553463422794568830972399451513658613669518378049107095616782775181099630614832970855235031923830253835733762658061729363577098714961868144658238405290182405526224119379033221616843961283312119584571111040448421250800979159136580830741373951580773794982902855911301289037576219129243276725583938896193089246554083303514349002065303033138004428937981512111957591188198550374619225272135465389993395748839432444108803528108075310766962144998028469984676874601125453057898924283114659139806103837571093839166921594978948037155074371431160594214569988269764705160531406096033311601374005726278567874647262410959604888565136841108474443960726375537915003019270688862871685154491928276449621490821999433227439478992134010279330824008793713965511067098446175670737775735686270033014018392627082640046857041073660786173863694404418448099331700914288199856336050117360998820657458221171984650228444317283870041040625875105178520946209511251053797841610675236427468634372962574982458431255479407755040157854762843868421926361377269487289239614442396096301483846541875860791514105783027039165106460507182815626476324964084239011109930657625581359057214598540099619294670156216485966712965627070301847086433955670914132029985723355965239837227290229760039095975697168400189582872944828323793236433113465047174409041332955893782919764515594259377278831049157690098427482694974525166389488529546484803627201371566885166056141563316162549471173452590320357566643653930055175299618732374140310919806522506567873755046686731790586051156663765115249659853296056506430362145758971238140305400030115385207727138396957322543616875067882853778905101603370634676858515151909552058809975825372724157461210936876766568115753804742424597790664741416578346177198771634651505756524247374733913434745307423737994648265222200612146884753625862254612324099820057601244508195106498973571316080685638184217192955346701282295102415116517850587491735245068787928183344809226826400304390240397838900056261242744668980218219348883487991542384428972249282624736685251617472251701544764921496111041260990271561876413601929744822299368775111439514025235058826310824620884578206577703936860616046310249625923060926806870327445281636658557545499185107279818748992669715653825440954043438319961210232011631298552853947089434174706681098453125613210353008479666901676845851288127728742988414196876167725875387347595072660248773445725442594035967570860223466431766571195943280107926066214937680955438835180016248668828588697008711166737015122913848463612664716272189403117486727759393748598355733266536568078968812411465398252984626159897928690254716800979814823919165713143309329380104388253220445746937790396483443262193807035669882986367711231163868524857627846777753275323300537917909383471785804453719019376192589360530318811287305284535822570824768200905111948221902935281818376355525776459407442931329792620881267894840632269211198891015383595967742585117957707916619971592498105796167467096930857681182853292348759437629414042807361870024228081015950857655368273362013910823504978153664782308543434738147787283482029171533302407627255987286402830806145860830308477351171768621899135109791167425255211397646636715146606771652356368786488260862146734984759628793645321449293533282533741708796085048809746468368501806486665183099481622311837040504962752672397722579006290272029696952349973509033803781503438069572899782617388599049239188796745285848925690937461200368622483782015233332957892743966901325368756273989133041838241811161389493528867052188340748947557066210062631798429991261036644298508239301434005029395324067799900660742202365435981976690968503034396549256758273775984916680772799804549521529680485007366012490593984023567823552509349280956545286058951737563396651556171116056076007837780889836365118294366607307383814660254495277319683293094615411262198171287583747346743914562777677648803328980971620031733870012231362195355501595734144281524215708483060837884465415250946307518905379479228964894386651568801891742387461358427841464469736514305108891755160437675228278818133980709814679633534442457477596565250213456459309038377598205581125946625415208641669080818929010885090567391815555656103650982597983011050573130241473080377156250454179375565105856508014026339587950483681180780022919133124281749953898085387419183602095211113400920667617419058715491859208087552583127558504383247465214892397828209689884873763912544105687344076296872258201286896193229597904571986324962112566495629540537826850195640649228845480576856850252889118426458015467425311774093272210688611815621026435084057894413123572997794456393079665342048793774700969554786425195487114280569645040429792437010063269730300760475190184348652407670867356491366113902925457657141913472888493560370626634309079416010335699128662055008126716798155631770333991326962181432926814376489495919102014906421300775238777383210829219966732357868673724200327293563946876276581492518019132920727838003691432236051183392491220196410697033888651188049431819265149977568698054603909473584790750494617889802354591374076455555117986167894238121662573162541865324630924850163393093949093250964689370792019199499888476445512196078286426063334807990656370536523533696264147360411452025625217818957365354647675250007443942139639273996301348096684092300576503714154334636723928552335684702827779564691961982035197455195020179173114889472194160474816319155949120937017087169021548595164709257247119983037734194940478811919739976661762462253076516325076440883534638367598078689100300388555188836744337685325666317462736412834881066191791587937091045789605845867212911730989139714837599571040510974071735433890461061391511385312949732645464603409934120109408095141905594760552491049104872022846917735030826349311418278812085921437223465188327582024448115946886299831370895469383354200522782095924472913021436091787398446614670807534670672153588381669026461285259144799040187352208746467978017183502879307825743847043146665040179803072941289245955118142589101177464297158177982977338652783755281522954215351026564862378157348711698074871478750755792405282272952751660130545878744184904979749941339614878892631006038081592089130801434439703713007437697280720816688179939021502392132210691955883249781087242708677328413262949803607174353367653004959561285248536954952340423770555147763726390846436339735766918134317828249677029133992105841063887177221559260763786972850204661572603336265604732404113460839312024982120187628468752179920885651828934884260305140029705409869725339013881595775559469585224940434382855861299033209654061517624096197791758480995145682985185424937582410416189246314484082875202356936120393436911764874224505378590981083958300138931657374263326093620131093614591057169483204696983154646906112174226044266248238541605007149344856723323729575121067956451741002098242272507300248413724510784236857197260068449688151541062538766617090665059510062192334159197758552519331822628510033385463404044051952778725603718679852559608522080606967526740355734440240144652817631127151122743294209727905765193424304344800138296322859999999982845546082294895308212349498703515769819994747487293419662707759528060503976132242283412798958474837032666280056035166100038606666483579622443335608102220096951173200238856032666674762411009305672023686929291626740260350789712630562464682961834381301862524177503817644376396137087753747968132505016560811410840849591209710682480377231120889550815637350824596100221908959012740701034322282727564669961084217255312726433018930869821065494888655542251897049629995573703034534252465946500992671286381130173003434396115064941112441608826510200779604499451858220019427459297521903874663967471697804261501489168424892602835459818150166945935883204652198225620381526605235897148158613977111658175296733422566724087183642504959300243732069591210256883204585985291774001977013565837293714038082143779351316676603498498404813752534952739141347130991271360928715781494120838952118606070826975284363784539086808530769396260193456544368368583805914427879146625022350832838847950426285979844526503879112141170949678252134390056011711582676355686958769626089711713051434284675320059804345874165452410856788731314058606528085261808700703497837366344167131572986227490349615568477922510127844033285454822722293201367274191386629294676433519383121793758292270543440057132010772658380836945486865664462900261528000365334096744301431631646802253795628894112368125414593894193213345658192660949877816700581302139787477045706774165602343992553117960813307594826617169722068554928824658653781833232599155875987983441537535778657870999428596394619438200503205011598926865582883934835598609035134776408855062600176261128458506570029658918480004686563861223790898198421475385050033632819988418653779604201012591466545935705867600239429667325165126987754022261464266461631577777420906312135737260008127920602884572741772022974437929294126964077443614579800206568871706048193003398914277621084310717686110273866144831409225272716806478823286835962713622742680689937542920888457472717025890210584569272125499829717636074296368828810673065513490274036499085058474362816137134218016837662768205956612674399456216958699613619486727140039148686800640572804310695894348818617024326348813384754958238558152625610768576753195273741253339452453894722817301856035941498401353810534974702438470690313091207382855190941932978200074419788990020705059944467836599877758314094984250416408201905982303003814511246341559713654094611856451834910636217201853224482069696300197420547747760598931176271366637898044540605649469537779417612246659735019215969983588729521107374863269885808876532877593367763873950330495443714481533448309352503964245499016891885011559527093749900793254758934909879329503746791318432936769858180328644337035674552248095367751211404448235169130039765716126328450863490038246743176320566816289987264648156535950523829630721245168848084896041451784616678587183213795951003404160771696526695727433648955937927109111659349325834964890834574085094874117751974200423476356233279961261173816654940379450413351535444889290473748367448893050770232181023408112149859112703739811428378707551448228462486466049801933178839403758788604542762362573847166486332516191059416110647947095167844442836850467890134292929465018891484799877443983813707258203025245472238641667458965827729254838103322474681263138802252741965071116036323576479863044594917814901103238229241819622059682475619768621962978448224840945346745500220579586981269124146415530608111025814926992240018808628439342812639125710691657619031052414074975737965007934040935210193392311793234501551372754641096495247892593457635577354955187642844155650715322571071605269669444723886675770648286181880763673252016574182346669572742545491335864867241395095129374234080695785997689351944248071889202182523076362188338887404691086457695423949742461862277016836173913610585769520760114899096108805282378175337262626119410977304383797503378983757554394583396506956696628084609100147459059425927514136649913867612275482319947425220041610019681847902976196153366516710957029404034807602785326500170428987703427755572188938457823517274225859842540565553653183576934325098733501057215610305244238313282331318179262371443644979316770514418403817558272579704764553305046064978078112787608937001858529598638292143139863057832664099822672088997628266713704557693552212448796197315384199626136866316686447639326033810506162895280085066771533616841411575175474318730853352637622163245221253414994576166745975303931874473437414938375324425624547499858012943310966870288322160969918795491887726944675852414317617517301118577228785391988264836895216039392657772506575780771302172576516501082068212572107546499866534686188273877890676847177282994429725620080331205605323989023205293143215205490038265683728118129045493582279252126570917355621364947662562491000258572610885598680183037248070976612659775036879197214744898445801577578227357715793037077286454961227792053608786021602006371250205740876308968893682504632739731276054839920889937319635589934779265464313497495890284416926880275841626517835979362338630033492575865837682138857303488559752024025758404186238960343789754991558267592190537561053125678433597754346434449862806302792496459438606987069956301109340515707440704245521165276391125967652640199762649885541060091398504578492473826428309244066009633563332693592688536157745804620855685352278906722130280883305283673107231575982057375831184781174775761289588828321602224226474731715241405224929960060894345489789179362158339895602088072330831601376655315586561164281101635953365268296670650819036636352629883866145079534169507358877039905852407269752272325198187930803725980830309392176901850962644178785281672765730019172470100842168297245255946975522951880398504051721024223479337156467844466418921334943934584923786204158066984564913537351445310689960427545582488221815047034000803547611916531960599172373348988155689372319478144070190583240196343218212837154936930097647114890517333239945221552171336184981983645577536463500109729489241247226982563994604466795805506046451011567642543625012590323268308619871176714368537159424462652236642122622509720974090250735588965529282517804320851608912814075062725275929667201736459810622974293913064424158572192266091820157169332042009741605563427440679496777013403514037354954360190134687381148170396776202951745049685412007664347277501498561805879880752529969362146458421010098848243377868751679340314099798237163676771142291816683302757770918350485031216669034565046022107932144455707681123955016547580086025460897321274255287911686352125922601194838091497796484890193202727677177134241891422213266992082205839017614596620447800155113963645462805755715151257251543938277256482928104515827372451877136342704864425111189651909761214033050067512239010754507440708322614599091767851820674646431002930269869620198684601984837850218721709340548338344999330743853544255019484392749452677354554475167091797180860551372167923022698060914946750141499662352387161523910838395001461299036897219147482728288621836166730519886956982590811510087102187374860996379616392240746821097126317348619979894485161775115613290761413990619205716940966860226723177679378424454968101220741790462087824074848453535796526977886180353652652822843511897223879059173513343886989267491875693623402594602725502974232022110472957731886136780933536836762169211418680512494978699397340392639198755761209008391347098952698026976605865006613922273686641711352684594091306190856016441442633854060802145207277404493752890792044210270407390970341310739558005550135109550744556961132825155176968636230830890970489236371313733808258480323657152032937147025469734725018575064280840811581637452881423781300805982886787683144688072434720570407639323813162615647905312558216039679853342826037648275656843264196078159812642817886201757470331561443885328881733277534811585872155168135203462773850724296449311697396114595482070011739484081943557008160609641774220690413720145524349553241068076012804069057805594913087237762217867570199765847029141972882434497444392618278360120870258764025701482324632836914375855730301914383553750273315930447353895625533355980163444944794206877431114830665827787306853979644220796420314179720485667225229853319049716743075424661435554715132337441618359397267121072783634488943681953828200819940604089307368964318155268614311690794368787397924048760989516148799905764910924008204381415765984367581301517210113655465397443100767451107885029963277484699147983323515700348990174481329847755813797026312005283642644213736152445403367562373075628562623557763838686954425139793916406830031555812009809099603346511202616954840269643949888232312572940083767094643331690770817977556152956174055381552078056910136252582911553248365923627462461250363194674748491655796388679742474659307132522774794940517707383431585054887273564896664933157758925288380093320851583861271082586388215538736892757856637249556367080529752509762734913437956287332941178518138360961086618421513831760788579269294055700709375917927002970741581308558446824477683582478717289895775438083822942197325590718966411293273867931226378839893486181199062475087082457218950187940769357477019002399967553713142435876327633064936093856258903415049783379929446987659526975702425227860324673369991398340867702441431073409064140117490546483454261281204283851638999905616642477132907121932846464360319756750009171142534179942228706396794929671445980236054095995023026229997867810060121250036811836965077369226165147442335219402340249527509728155176246530146297784867875621054390145001654791495291163437562871917553222633278053467731491024611867983268884753287971990134161992160673023740460180442229322791663909076273562181546578298573599448829216333415105537543222781513204768441076510677042593277082280965887635158775636730610869394242011995545136000671439085113531390342506340511405668971856682296529149590584892158101110103914419667477163596084820147759948067956973438704419047265580912626203632387459606945656632511661147538413491357464116964179812739187371858091622873979516170820670570545109164390827145461719513882877429777516128313061346201700932485474380331933187254332629150486140153597992065513090036270754102708159710341341294310294941528777722316196448145359372127872318361115115510333150545997008069633034997482725716732230650572722428380500247353258761424228913927223405874760856093214510065883413946395107743338862683513149994862124002359955789833741761783259655409507709668018906871506763382607337837193616217628730531371695820108317679431559844344813391047709699462630330862593235453495690315572536228961327487254975154477771460896924620357902654663260506746365813362742513314871508789421210454202195579975157637161720169314708891689257524500573638759397607137768113665842223403799678411986113025817392559284374379508863845869591218818470158801727087354263152274910477832580294339965849340485548991896815097613278731640838044844429244727194388686084677959705104147006873470809592197276156434346543823878088253380412488822076467765937364678571058228780788778182874205049251564954715309094846553936239914405009547392001881341502590125758712368617955564210321755136054571040495056000975923992217748148386520491255424049235398784683046219422686447798678352539164015273566925879038165185666353736591635625322947669496132940477297981609261752727254846003184909015328045406129184758323096716133332630431251068933313742812669620202269801508013574460065069088954913173085557006077611970067653983008181555049185133939255339269407438945917031868436506112070468982184944893518736576305953038785373641988455211879842586438873896684095202913648362791822731609195786344972597556407269586522677810168728156911285446634647490054851717424237324374106414729945366698598010392371549227066951638894609739937387271038405279087702454246383089326802599994362300527605749815068385530990558790462885251628428017381214682008213609674227770409101928187021498217350673716067738704789075459114167325619957224252596459605436112574386899592420849859130470292481146143811203457063070915958051030044985763072396317430957142260822957524686778985213724997828355124227590006670650048425840254334430243590912955705957704730100937272893767185957130183103891322161509211952712260058013676503168157917593829806154865695000817347226793758561436518553588167907856336265713104184971880791828139942896865475566714186046722987495906993514786079242377799769446472540371067836517952868483179447504578154774492665641184082437815150767624432084632636713450939747654652969688190994827680251794302225939778596021420399597306706192127674371166662251727502852969169812814333266237292028546491830422577829743719860435777595369396627277621599073107157969843285263978043579098475406826398605762896062060406178922680181255448076507330065017774030233468476250100387460759350687491401732888190938079134803577102797839804496138574628262491674814184908507515328233909385213925749699307161689317007238208848756096416757632843440180831946703137115777365325194327356769842965325216536681459388896158119294302225201487800254696040388485588141149456339461624137217713637926695632474337117291745637803688145489227001623988720818618512728849745771902919703630873976702059258525149697165349073813157409729287490600780049387240787881517112598278902600303853434822735077002198707343125387643442645126609473411501226858548212414874967531975566648857906616849724933310685125268490774037834090741311970346923036163805502068867017667642345357347996676129273053289264039751727585293432752959192497741905864246900473342912911993687755198377508085301819988362001637365602318405765763008194802696806313488719504455893779602592892069827810143837572070501234642167925234732525597066244284394383314060494344582188550025757897957134522748231450150954128698317383240318501456412788588056498959335497858650223060657825766684804619613085626242649821235628494916414688584741828513780053873423334933780095357227561802642869918511818847684446763965523556793825055430184447214162666016653673334063877332109796591954201702836634348894097587843691433209733839245064220261901616404954808469081570372857515431352759537340643620749519662546370942711174614200294190889373854867248642200164274393055118765649646017911457571226268241704025005666215002314346352802068536615213565165677485083713747214548347012167590590700825700098279627972903014369018609308707149492523033346452981350451469754449313068063612325207313338718350064844802285548979016713007963790295307964780055843728369063157265936520357426481022851352918199053101332938731240978547181246088173263240005085351283806217856010794341768184262689253008539118470025644309176252784457288827144187191672871275451968325487799508351942088654298935758965310249584460314489431396810706677962454626299414908565579182575453937878767387796476256062985151535186046755528227247397930224073961286072521994819145023237926392418349489491525082373045489505509113701545259573182619437249725185710867859375823916095007175501661896014007579684454183437541117391073861827906282121454081055603419126178599964016512034960092248002234255661725293932258454214753848938872154496222676723028457930855935057343990674856938763510240157030064385772800516328269260351332112261328042995234200755861383539129222153719988058895608553394244968552150187792477243120375512021529642382653834009013131416359195101170822916193278294757365005266833636506997688199759204884408275970183672196694033566414941678952951423730113472703569690767955889067677292208375876068476280437657171833097453935325462782305208100934664584100272020848074652468538478489281473951877477285250866376471208378351919440605520804577892669438005846995811704561588064161050193818310784866859596767994871301343920416992405710347242921354637124199126003818885321718594131164351113449079795866501179907261433764663497215250882897420631427366569484782750740176344034153329327589407347477148244593847626413763501787427585035922139288761895371867023351366201871150307713926323570915538409942508797587646759551187497893593319992899731416817075940560638790318543250534476228544194825627408508856909360085475042399978402051874278090432176446109240658058762124083055036999115597763812507930920967013104693509944953250764511565502367988005263996395824192818566938729623203233233209257379644410964410910357054804382669766443650636230636945870238042689638276551626427365989713498576116091070894644374123444730521602606274329928188606883238647891274173314360454931689704648925957098713479344838420457319171937244127387787704448254893851434486680644497489805212311601704597125590978526145078763732823098390537144130382692417741711094082367639811381133731862466174329389037718125525268938937023186380992914197576283121210704439557032738528819153693293131739198876495908927912798926211117513195752066562008498632561802195271719078282391961020266211032815876755433203963299629025890028632938430256944110708655327126581286482500598423482730974155818674449871495679504989498146755671627451892181528932568307240394638238481115562519637127136555348744046945065699877029434806044265989934946665409900658391470601747110662038760470340023397761922517076212705468294855913595177620856402753358919328040581789804150498134044908675991307936083696581810011614828613847460552688220082611975485959804740645442975798600000622894169582517109390417599524221729193232362457880952322531305898832296427580138844401420969172445693012669398531518491901694458540450908489589476619022769259245500607084470648357244338121578402694807260174802107259216292838673945188769614503700878763397237736193342220798683049889805734391465503518777694146761711004539133546102710576680792180531711245688745696751332014157222367617026318291948884841477714007137879688177015430200828029228535621949973757446820783378754272730712735080107423302045157877544426344988340798852150729774241854423645634665495868345936959565792051046034315782767838146501815743007649632428510519440330991848692025019107963391578144373661872877314785330697123515359948749902052245137971776275293544902700756044510446451635886153366845173160942342118090407848658776913314089569021905574140910369503424164030196489201120320290658613072582204528587200506838263411776463303607764528211434852275647563762954377402515005615050533824591336002938741183917011464367358987381608289979769898854377287165059081335356335939145026643605217654038090480338313292636497364482899186878916105665467380997596590748169157677772373880012440992103255767368581930329075502450123219337280773049295696713800613165845733584877846140618348318410819140381647024420392467391877071858535253327425136037738823265467949348659272622403732034037500618339617923216444270056879242976358419586129733671270565198705603341513741922522280102711922261294429844236582187515836871325053598502632619343379713395124406361515008062184943405261801633644157822601010352073563411815731821116561631025435972537082953098444823911143800098293109856941233248746651014040032284369046041842987326025151520058481974935627328425068366084549841695279966780427347967927759284401982796617700683128537376900870119029833100808690095105674664628243560792055420491882053401191843146948898961443851582184381611769854121489050812813669762090215987778744912304300824294145569751987672363180017806961734256588514605666967473148099939339068605288407633721829895775154927944484356499175111030517279744561623677073214251197728147793762709401454015413673987577436409743514938522444958117696286819124987455801076171460278594394419654062111128760471738596541166934989147078821048273095610520425035912011901882579900569300162039333814115204020294880653207413538150732411436487791699335523995394171392287723390757939542604417368710265553242742994215110505599981652435666115060491839516476800437636780683629794865418197254972475897253093807201260220924350706594356430315259650086328829563460635698365222102860831828747028639628191334175321348756044341505068716432880754718486416505957075975847778344588560914147269573774790108137703509292556953174544469676679378376569153873658365549530625108159285928758393377546171329343598932333975210418949344576495013970871097147012191287188112668413794836313116278207183824620213029306478521843740385559308679650072883638652310759109884432329316905688919545371078595724110968868568772403861234631177258638349907276534821914338625374764686069453491202042925032206080707735011109691783375135696921730808805280713621568435565011513252050303037105071932506429161888475057654030061823006364203448900711261527483051371074864182473969247209069561209000065175587924461158126400357362613172079151407030699693270097452834818866829877535904999418824409193101194215078199062038872006823698306713693198792697419723329949906094497646926507261510025883476226918618803016222872754949693122457961539721715611082383978538274103628482497997675681964206471762886479225185806292211190869435215089869846994360558684812684994268999776371672932652692614155253448971106510096627617219742566838079147195313948277401098884505067273664759851955313538665952519942110600622788203444988148761458209478813921691148020613367445556586343367905363749127791872844753398801638270757525094340492612473009461212999204120559268225217866547236470013341211100024880370469173838642493269868966397665534456099438272853519311810208450547566954198947874512611941938674548268541407096428177127039284744965430302672377750784649456799529235935433734566334634525242720394548645311230267521879831763611944370274735968601731403148781205969816873925238190739069707114641018646823284554373892891541025364729189329474808004732139083317582651184746702588453490723557697634219787833087036869288082891668258143430583928574890717652443582365674541478481464745899858571726819150390014948512205026816528475250574273726257685762438832177342136632212585313382075340526748700428875194433654631990737090709185563393254973848675169154817929609594712540940943289477277099133081580039480967187896187379103383756718197695593995227554732384184131316055927796330211810004469878072451331456882210423983067726838129699600531873222979534313966510785892325044565137400273943056213596911921135732206101623381620610505881477565883213726367192109402210985732497829602108146119941606530312801022441276535597090109837006885628476017882262135885269954542965994020349481961489279677759218222498499614396128446672946061604200075091516242432162592540408088799998569565311110639503720637528967153947612627386869434189920215728621532065524605257600145403759724551218354170633401898327945075712367520854707538614724728866923427902170627438551135585002739223226526111372580399940996767339947943969102395979897455186721569138621133575446541296415474073282892107409070132223174865970696267616571764998813063850068475651606796647339905152182508203097157917558250349057837579122754980802267724003451909518571876110170543204281007205340381671363379393486715661054856625716225402370017726025991076416708865028905226161180133270504438170340678074854965341497392288997119422182938625341236357140360570115431759628031799806193534384433326463040093291389908593275193990259484085405161972602188370861681936112244114329297261994028971156482900181836957550698764861486385054143948580353629917031408160902160544350623921609142053882841223048982701219186843742907330345698572684258428256170136109560519333623914887509350156604663928248223783577817913151093010528167717180191405030834222534989716863347799960645891922642801753557194767430757847503207027658155552889115649726202020688079400697438492327161102158219260555419019864263957442912805652161125856522714054233401617256076427112042946692562107920027820349276960782093078893114988055630454227075215443081280779401442771072683539189881313377607136705165735635110332090338396496590430251498350980234896719974530139534579878070345261923604622809563663166986508936026951374560641875606597081121166724339175792075689975859672827250096469919846053511786986327110216925177045435497275553438609073882081416056470551704675085101834563512753943383721174427437453008362462989545921394462061713045545470345331439004082054811801301857174239287175394543513234860287946679290933910123838210762659725912955826265919521662049680188636569962492296446492681659622601991280176765715213803358770074341583030990231287133302962179367760415588833599568189009776544090582522299408217823584275743303486743734492454250678798313539567643481905802194951315490211094472553704271492463067044231224875539358742917261462462910011985448846930776076603633456312867303575626823878253265698861021571659575445707136364848108520224760503625838234595908688408773736024174996617620387241225842257902924946711473592114885617196786360831448816800418364705288691702700425701018798744438277522019813309648789009873636571799957540684747879353200280415662343492434781546868769742877731502804849613669651830321465078137606017384903756294158107828294965483670070461714081858003794180661517763284156820329216804743343437325742624900388757657929858395068830647473360776817094962791385325592520682941618799156624375751785883171425834225084595676625514679085935175709249415720373685942076915407495597644829154267615062323575961631737656835330114033528270359855223287990301189341432963622114071317925500922341537301092140614310486918212168897767561839640373026327820142276261320808332193367373999277606143995208718407421616907831613119046403766386462830077649293821481620829005238354545520249182890426549781338567140776341532138691731289235918472510057270563419094152393694006123408360499543836464261140244942134365960694684224335798262539968725488430495547255413641980346254100497326724178045784764495652403888750505292568813430899148006825088780390418356962613057524652022227026546675436796026200983684192998056717370236354250394720500730558587893620812595021371170001904798536022278625664569082270870701888199184197765240517018976462875976195688434465451302502951296842023582092510923200392223040585858900325025785339171053511271819305973808741091903433563552736720974069544487428429547834866411061557318208464890922230169002885170951417579781570895851845100715624371405893366929785769367604170130017454718234263667908971839795052048276915197917965623242808119428109679973616886362428857722574793355999389061332113622944340892755128736782679733947078226179432532488952824329246680957467184271839189904180996457427044139882402028221820590782505959404319663331854403955136127746413648429142931545782065285585098073797107973641598011391056979824715313328087076508360125206673350122427001167756548780893987367467549668474247371486387250295776017475570427514806282607101833243656701938167697985758034968970473012335752322023369046583324829782854925749621462424767669102235716854501478917292268612640109541332738120492180157807946503819222246509776270652083060563574799833265025871015001806800392753625652743116643424309157620528792942899129503347245996208498319481079043329153817212631817334085790365586752943404001634349752854194973108535570746188213436515037334639822669232288272576587768368963512529686147796450815144714724753621014509785197849783321521324788563373054652788784955514335957407480516962415546991588419261680658557184049464938286712773493103895631859752718850020957801786635026378149468335600492535456777267296137680407955830090712920781232204841983168391135852232831072235555830087848336434834022442129897555085234423154882156558917876311041016470892600185930150162678287418858051907168201821217855137921806352311735982137907611015602049407640869029849383619783366167783312541140264821055021650233690869255505871859272337291764882551524006107604715255064796560894199163060675779952358537608344073468852028779462707464284159361340705807911186242803214287645151203230272250249897691598113362033702874468960855203487326816987859301966731246202717524592046823625637601574189480405019947176864613674187757308637586060793186774642049039726978113143366692269458318419677505327782114933375234528098076308290347932036000478146700965133476468568113386221770910434306387386508494582070017955687044616505104475286105439657148506177334197375490523605699415832324968440312632177496017784798272887747157800671573642598200700718774153642869363785838827060181274765144382334133848780463512367163707248045425824979776733129732778803656254809375428150297453822391136939959531046899070239539701817226823999380396912983378779035775199156701049532044080649994795864976328359850341944775288886270189838012605822615787439990798924300193127338302356790866732484491783711669820653867842646369952291111544267365671120871716924205750046793666593038458031066352779278491248860208434493145902866094381235341343322503630301547120529329852819065170863771805093453150658229700928953335018285586999673589030269838256251222999945916423433886771014905279014682196779615770214151232497677475619149710970734096020858660190648889931528355864384816815562324981340365564288617816736987202049530009677961325572757517054517951611645951194083255700964487675053997299479381611721638562336117753640079397421674953767127270151332747453283235393994017248235310112152839347477150715796466889833548543102788212923473264872639648198604354401879043236910909551716670598278863990342243917618339075794075926812268982797322775624205627013232545274782691772144376525132745314838251816841692396700968732171258285559019339412460611703111740743746451527651521252277061915686094709394371233892502656139296945664661525503441950218684688227967971492441151264658712459339249793599825926472314255890108550809611531078471089192496259573386260324377462607032232127436985463839452506157726048892406732498986634861289636270090434112662940263489063938489061296798376815971652440885551286632132251691034847059106707638642969684901486216508821695144085638703561214488216561173647459500096400704338783980920137991821816678075757614275399510603139291624023608042843024554720343356358271916747161114373809381859228132721188297039545845195982062807619541660635396786909058790796022192655015063523894255949409249327996638916776196489081996736713797213559711145483510021758620647643029453019558937496746055786297735383511730894371107714034423555139226457877456983586176374625725601324923865786283196001597861322072230244191929515947381439353997549062715525869553409513446652942805456191199353497188139654303748240469434071228133917807767835496526679995347976373134259207776192316396720841920199327850771771686457795171378796917001950193152474849875868524804882367899732359564003074366436739188422005911614242955718232880362299421207538973924612718135276679036379903030832047493136230266836673091368599981438191088698338340459720774326668765875622399446569060359087651477787290248810356019766652081077244014217483095633925006295386136324563844101758457945662481629327072507955756265257123021589555192080223367640021316016594605022879913737967414044410355843814551592786908095361888600751786787537850436366223840098052259445670661301047664421806322875561616088058864691898896138662293334632750526216421071933245446543835929546733724073908175660824307994081160048012384936444552452217767881396980759110282742861234283012504317956396599951022241413881760183207395222121962890149410987014085922746402017379438592857243884058239861295036100545969171433472227156431895493258646185164771930291944202351003225711654652865849196923968739076502851477834559664126334566714127799755511258824771066723451227839702310764817778972485467042977750140310929682671435756160706869885782413889022480782560650380150454242113261310752084317472869581712639844617062427400369339887437095261196946120715370924716253810068964939147688140357551211070600840275256751570924049993585791598791037867536464751884286168034331309775298398370437448681051537632380196565631521031761264176223820612291811121508498320918346189537959025000251413556302723831210484375117690651178721184309462690123698482881898398491258240792455374621274645862084169811469656203866209261837527600732037569271683690115656743749787346975632500286615712421884240310759154753710754443989864538924687575646474500735492799543946561315232884646043101436256132588668497693232553432250222805694006699403396904650349320334983994868470110189046249456345037783478219587123333835857825273424960869574394933331696714626657994177032134476131395304470849441573660137316069147567872187337602363757150293024707232993061834051678618167659528843119494687346888816330539802557278026908100635793080371143234072363086950250000038903416239786960864278123588573394628890003320261137368724818729796292321021301256760244193745807522691225288504682048299293452905980148948909581661094436588188874196240608130865869059584853954837356284893845946758683356761077663424809819174928868421209103137363358000449464931633653333830531531171995318346512114216507657911205362265041328126799330971388321211904313288624108433980691264639260066248260542034249972486352419670471195779476114768955634215308584095888257244136568103231776897981470318638091112939128216864562863673064608197248781274156293558480053989321115385833806614426896615968389904761687540526684993518644796854387138509348477226055554055015999514919729739117179917723546028373712190277652132208172159418614951878148237488249067187406377182020462602409798259975963792820902954714055194498860168728750469693382901902859317644878820372200112052026125368812682007876347582017667679245509858293495802919489872920705131054388177616624612380720741839606884955223439794501600509232131242487396446022180623353517483410846487600670704106084284596055354987038261742291980604379360736779128716021522007162941343465775399253494168474554221924679855705073033316959529581446303630144993290247257017728561495428867512461522583946327370811170839908148731167150209545678015448528429897979536713271164516590963786872490987374573337389495988586987195195647167848169967227531919007995910096957762125249291128286935280036239686935364841432258037303738880568473054596204582613096626118968422445741232290464596090017128370508854203647369020549015915486494880154903715129834134827196349531792292654121088520583094460427288140006044584405614283426974538360322918983987612423734893410916525669474549151358046052777802901761574120123249311174510338689024134394131994639369546023963036811551490901362910408756164366105502006120807798652930482471570037191303062208457446714326814886581426699491303792107882013955153517788803029661717641628914746449825010373380680039368409978457569231474640532130116444134700112161021306191125867562337988109382079287623685282953323626791274066836968941442309002619102929561876748919567034167527280109875398373389985784910481341556814119592309507620438410090084440039195894348526175243062922410173034970408368787622269166905507364647867833502379338685986920768433902480472311592565987938379009375692906805390409397295164672307560140044966556845248807318735947250407748451527587158406528151777833974303298533865191099987347016403839780630390992509301089461637721540192234045896548235853363279796429185728654322398987688006312077062123064634156539564830336491027424236953427055397386452056639661052891350760144225981311364868554102499429608734125265583828508390205996535826046117021044454666842626141995569079613425024914213804493854625253195420593034872230259166365950839592496139363316185143333195114717464363232404303895668221573169864022917569252499254515633039131648895873976979847182724511435111819764517388627972329709100102190277293012768372196748409651349404848083277666831681500389113584735299111862167532106321257425948277935656722109337505610496965527413404031675915697710952240371453086964144594121295218958641641868608849292506829069044900788168607040171639335142967869794706823676680592832840844632050426328708381344713394757867006551306486571838345889049629941130820395324443372121554503329535928966491434948632503393233141325083106703970478992560011927115852581477343044353399430736761502100397463904688405978256034169829843307171296817295590175632739671427807342567515122634995655935002057748330992381262219748712648363275419550050168809486002095798319583401014324775987065067723404016653827626066554416599331135239930882031091684832498795247873033785936724458003360131299876251351788041899766273781928238585105777206208921052244026421603993790819826112761237718114502641941381793788861550141453799782268676976776182511054577423640955640695358444405756404946579917284835067571917722848850042964180227476058032310252288566713095610093667526951860518090042386052952210888310882649245329143478574590850131122530420272816339237030313744048140077490494420286417703223282220998704156133114161062721510202156252003604327243562254856003113342735332721455753972968178032438782621153504021636482285656299051557425911437925722244082627058812003041176941497353822974843175744277390301520301654372110343089695254136849740485817612007519355231086896487060001833509758278098180641526529623058240044779880786468406578422693458738920359340043302616999732521895988867301910725419046137095680749632326741625709575540894940590302951839951499180714809605639988486102730018036937742541591659947064255531886809054651801419440328695228065901196671886919910910132996076307736320505820507370222530577218323880338866452591222331533856721054500736714364113315593718229373090785049972177327715534205226707313015909911304590876420070296874816734202577957712699351585848206039506852909682647543348816965428041703007305521851394569877559734342794075126459585727541803878723204393490746180036618470437244654961805561418995907191819060996850451497431675155719746525034543540537985493160902321232722656848360361223851002238662129668347489551766457465488829557864589177570640169558943345189907633006759765066936393624220418865714671309843327126597773089548650832629954100328679279922831532238175480666386387227989745725179605411128330941584713698163715535176569877475065859616488695447313433368812735742041701639106992397975060322915408851514892548002867597158051089258056419190881018173647900121359160401343987292557484895132636604803369321910686764301577080327231574328141475163677327356911062930796017928803740693538152669316527915769883665832025670477933978647465800644558676154414685514288381419229976782983094570358199806501105125698381860965598162803371340854751486038947564945661406440602142796053522283377054730622861109561905882467408117323881682694973359352150269395723630468828117582523041177498205431655133249578682151289110155065600449221406995365271807660999435742154190974528787496890457513539216394155636200797272660460476319853957553432394650350035003802742248607025213102604751076187733739702204347376187309535120363066674619409309530137622465495427979263144682495079281890113055013326566042231693445958710286294186910041408209613147872764606762315707170666803080234578290163873204885185214700613404122916825455523616900706505401931840594753487591125959253346173379329672223909335469144580467705531587734985299259462135297600065737830397078144541982762788256885179582507289220222025513259276286699217201405902028272616612898417434274950268571669926332399185975260191261906621436423471106126331437549655156730185505888587505088665195580939498026752460871831298832965805235176721851934400956005865429234700241140321584788854169932876019469110601271990030765507768722121029022149672585430374073535893937794680143256109270075936940045751043747920163323095692036910456275700938910537043767902280476054014795668214590941147723042520086154730008898589921865315049111599398524711955052458933554513450233855934320210445143737493265293720187650518764018800299832159324656466257739538447717352805695412126479196635982573456410453161740947912665038473100967361748321440998117041541855717497812582144007128397685383753938297311478223289209511572215976915144928577902292778150977582731054692382216955320055851175882929431978268113037228709320654220046515959678333951866791145031776112655957373931177096248859515701595957955674593001938846265599911078291056018995073791015872071969337937479945842261753570760578291598342480611785207794426410618427105426599937676976654643719499584753144571208712179372226108097377109972710637905319098399782655794018138817384173822529531598119246741331011514136200989939857126318893551168391971831057981056855135261633315579164324434855876790454748466712768750268899384222302669951579955149539916424459771257362974735490962543353601433462180826009915515210472479430024902310698960869578963506173066198549973598752742665071410782105640109616153329158588164445866948609761940769839989470295281903201307780309595991658818680578986552878649694333953768349258756927703987468185540824527236260366939991130663487672515004002271052948895472457017165577397767220013109688018432146500968406599071495373666571383653875043090309551664839686381411692550055758492217456584761176584537477831247486184546116693659765895594175547178253766246455900008632759984939810134513189767271335325767803770203146169468411878989266533851954279154999580493080750329678399408146270285178512719135251665608552157623874137219979602147778846422105514053600052533528538308023938623115977844098457565283871007695842534254464398463065983095871994239838469319311653917255280765900258045375083764946871753694535329829911909424077822175840983698112706214645304032208171389280980812497795767852836401252567212952084950673121626576722644607668581621855679541274349180732094420579170726565927897700283258155293272172487495628748110673266728433941629383349581937072572649743971505503632483012404560579001297301564612185499332086891732023887333408647116765803157973139930822007319218159925093496154654863807057568728617434176223023984960056468156293647011947369433770246929540030525315374443630822373538740781243646210715463657296071772311947203891989609637835218859885857009586646840205652826895563063566930647038228782058392660752494196537508272444003512547449967923720822269705312769162812447575735257704187158108681733118478093148530920574861001317803136437543761112871123393670045709188325885424051736996829785812074709982993670575031106220172069284406085842521641871988690817456295679467070269137834886743438053937167582949175855457432497475894391150743478072640937124907866224692617782933805975293433870697858667437709954803227175069382167445641131850137586293090327099312978699849100241641124591276046662556876399933423238981060783192437689301248277720587131398660514813391311126736883956791032947046950555802581766576124903781885825972396945860986492474646027523602054382227883719597696994654486508291369491326244432380749541133488857659989648180773392693244824998463629648813748525150371471935362852997504310445986399402541895115892871422155993069887155968428745986955646369916464935033992910742613905936627521601398833898315372843067736487450340991764492065334835308136415902154062194484332735074403254638102178300531380550154607837706559200476508605649458237833912186972715707921972651510504771748569952168339915127138776711503554235184749024178507749149356951779425785582058028060301056776464494402404294951883340435301752229439013394644662654942619777870437111811872893116626587749879748051188077051349982145159008175069091250821613248014166558848996169245060056533155007088008845465271801930258384786768710993041644235535187206380738761020616614809175846240038855051946695386429530951595714086389611164167320842160621746740273155911757361062257979340692827050114664728817627302444121018567822046691359482622719658938821539767679169187091053947867639319769492117735944977781532264817013775438398410696484762437151444237421429461640014949148596073370305011710983666202480247193809657639576396947453076337351078342303072576262384482708393991244941770234286763229589539140635911061569549985691359186196067776350437016968048432124625086838180275484588152359581665793517526362817958235584392026195046194451482945727764777853558448275742132558564823263915974204232851049940386649099576065367386606508953059354430363542514872684390355410599707044650288310750056210369029098499300063901243516894038141170215748095341571674671259693037816209182857668477958032801808062995760717739448337048521960793859315837026193379314428802568061857359726862210699768130418387676115702965829174901164186850047768361848388878880734988277941563822966069594669073887500766752776679930601044330248023271301621284373998862358291849446676027035413406046560484663056287325958195631872518990864458095279615345358577931729624827122765832277940661540465778092985521432786528754170587236956863146906095986263145765859271519539436392432802416337744496126363431896165991731084587453351293642301212234073607191082653538280286588116978013335455979278636218032170054239911322605537203258003724041447013038799865982824465761112444094496024497782408579610126743480900769734873149476379088126889210096519358450690337498178456828022578736504975305021245161469414127148792701420903811438224564354458345820251921100228534857117103685072978472890923231084646472948841074774779989395477324402319954043372914467494294293313868630525185734768249216246160532570970461176840133430310828182887928852761756870338544092296701519728949056243577861912139752991117408551228593365846820358469518356693297720502079449289561851648093855890618675635251004203531432337703849529722426835141579872471302818595242257237916446421349404675760879064335347513358085627038513873317967685542453898461471492402469140731173299118301645584277234529709902573467452315414177729549740721947822113269577621605035450891011666565653706242967708057797747516460410819898608672892414308868521748825017362618906427768967792571833768351717608732417572694054023188722715925390722934427993479396350422408532671642047888318245042379112120807980168091673433042195576646001774831427536976050110717197220045062819740998778191225357123429352829836142581277721841913388066579773034232086918470929009560396072969726439403344387426829002842004562227095406286269856660754413311811271893842075549371874100618539209342198596697717403231340460713315863397626929685741924156383129965728655817760786705632054044484322920759121226876570494750938979190715406532170290563092112971462127593610383991805168513971384616689796578079706145386896507258175200044297817246975403484391187270460297920923799428106762514379236032176624481604170222276948499673771312298123698516300992529782880863399999715181856251238247023053752242082561834379904901019470607059134396546783233848179428092216038647204363230809942934900608770328742541993084330493491618952542386611466922453390315553031317140566535961989386445269529194319716170852605171306326230657209367394534975485061863829176689735355751798252484460708689367786692560508921778773696468543386726411887114825522365474084838394425626158114030110035143946389913183381535187798904826295710038303996699334065744593014314734915744306245610530260016511723040992470677586478434782239357861665766685929010166456831590471178110113623858605200900497370623713437290870406953893639155916297433523608470112554754366946658143350191939668303086454053598367378044200992475203599882960629686116044387535345925500728469135961472848569156108849848952975545771253608955588778955422511850976313293526322259547921857489100121024155063575333016457992510776399192285459965412655944452766185492855687100354417316206929871036416936077191322436556837900929843283806004991893014253352888764468301087365994984488640555096518334211004334161966373287860054923894329627700340920983212269489029484543391510263130798124612932952564083227730875685244010289165255609036491115761577752385884841186713159962312600341232367835919606989515831577423255100563705760332471166819630921428858052184170264366928157782706276284681948051358503121354512783948289192464538809180243509432529757329061344329146187850132920089240685244443503510696558737310132606598369010010409576336415323090919054780959335990461064527738243138817592303828419164707534479780471006435735004481302921022725896353613856902243254664935504852749010031683630000891223030372071001526396112584598432478608320643346412321665637497882144325491827985988712353897787686186065324258008104378303007680298884423829618612779503843231901901301997035102690841746040895593756470273600354096507185453252790301311890808630802721741319844746295421381899861780688601156098049662834340454331092593094271927182678066882286552005093579062913108853441393947305696474773869218156245864031499196545855122978165156953969789061445108403070795580631421275422325583095772717471494855484983816373223067019087681801809143735472678788053088500546964621865914607221133090276871412957902073427852238075067264581704835755577393857105038443799338013599214813206262378544511775805710986314947234329936585308621436464954504245590974681478797232407068928064625081633543088385929445012950526179873576342685823135025314644747409330738197516884185090900408651961934974647204761323953476233365147934721290731615516131148965200436107429104954062075956498610405997196022163966666287570214980366472371380067711434617261105244256080883187797007426058147901708955099004898267942497784969286698701406489191003006443388141694946588414480404097285790995890071591212074190005151301008163994842859150882828832056384575121253697985290136802687130855829903680300459753099766857074346515513769048480913066432574000265483735814942043359362489863286197250159810381427979690040940804807146336152735336776125638625794366280446285109773915951324210725908913193507447375926818638608359567409330693979090792848330941122731828836422510097837878197346121878069436200361191161185396490869840141976055650528109453426819854751641574128102794023991777810332817532191269383849793150335336785867409042412451018413445048025812541531428672785361253608465490917139063119460911148959931786509605889440077378757095808804655970207071808058043636431579031186701561855276896394920180119612235641472606152846120791738874353899743624902521343103345788130203274667743461456107655396836721021235342157536174298000632884998105982632014352557738371591860517315295115840486612099378609710030178896460949560997580469614203211557283926633512448940440633446647866310236252490957696906643802094104652996356077966868447983618945010135146521869811902163341239834137242763947070954164497527386483795735588749484253624536279467494358355461924863659314181893360701963163833366930176011598828105853053367359120594959427304776250300535222004488649268282921783654226388387367591645570597032215277393976783650709938786440535822779165668756686666073511435823869219228930809701958152147920009812862890146798549955791876252732264573191248107879182786517001305209707355573012806816281838267815924768386806937639124908664458305432137209056179893622641961210919922685033196228893226813240008359880606720604940048042034072297925589654890195528854646787927451497792857110051456928293842536196013006900985741424591007314353752813815003553950428117486830314617505092652660658078021389134610786580385630624066694278343499177830742234912960316329896208766835038481373743031331619169598177767982867039846497177554435149540537402858288312456130343469539540074212343327343844497705604116166524293824063933545951637753991206822362338952264842676352005710796769932306541325980261317207130320300182690031146609046451383078569729063004972692194847743601936370855698872095691886479702790538352136251746764827117725148231940488061669130413375480990233074391355221042323079006501066634146937176953661863718277627726459485013414208154627249883049947524596992434000858763448488889908777941833931092647829184461230382879284695784482658738908456122942499616580222040275373861940375182699870848498171401889710601344392983198511169537223694901919210965885413184919617965422146927592779021053596980835509300315732208419530638171625249498208518808342778332260063206707517566708395646930723337390130851276177135004855795434589165954349192202889706352091301901129193167095008254367709841007711424686269937238417664705197558686507343840998158810450267081831949935359127190512077181058939806178937481521720288857161368841592936231993494097852569001288674847287900604854557474525969655464423370110579280799412487391110582323673432370072160633677308279826911000386401170828849252519880745007084385760160602320204012812823277420705141546394728767954453390657176418537020661392031409431694615245101307588686563236505358980916609844191122681793008293841571810117179721124321868662702368347900193843633002454823438850118373560653487121249406562965217738420449805547994547866653296579013464800508178205641013281045977951405172113635957740559499100614731574585045750982983305489101460037900385687459576153230121505417762619579669804791694089399924043211257903396977649746185010362956876109999369629560637528458776004741901563785951717753403187128525973228850369991352047169568900175179396059310852912082719068677018671395587858301498071574304089885640968337536255763358436039681167959466073896356710322488747399972694129643061744479567029989158177578515602752699509056894542004503549261836780837199341721807937881835461777353974181433927041028508746437994900482545841740238218148797861278122972902860913361124432843198256241195586185579858793334889535655156390435709392089706546687336266459384052866988640050844635381654638589579688941874596286546939565254288730574490451847572666458553001647036653816637535147482199958753078823233393430145709837423760946368018384110016991410099197705489017807443877912010420639381608189945886389315460958865252618647721134449753984087651393147130178602544901339203490355181906488435983411643388272275440849814787808105511698106027497666529599753170340664794396428010890877104891255757014300564145660284800076682505189583109721163635768495102874537783493618776864315331454478856819955260061987063301637577467069485840690549611327891947871449920743268994953497660549934156253681529919508608788289493046639089303289578976772352071766139548122851904482428410715974378629064660767913588676949675466895361794812141419594981370765734462464848779744694605837525371909387025185759433544967126885015011057771613710099815033443750211673255590280442356882146435840017265372715084839600943076745686216996494510830115972383659624103276371440922341554911801863906752964578988419930750250693016347510320158821000539578733218134376297478349030786212488072615328677879993799777814545515460032316695264127405381408787297250988599550507043990244490281100709781829859524530500134048448623826713246170884356666008488059023204257444120257717689452131324487993297443645272741521718188364311921340703763436833483263079050747517136325964561583720145852387285085898657329952230682819171474600378906848901426767064323026216789858671580253860453566691513744320834448167581782380437021078852099778548955370408031374436806400545818393128872104755222197927134265551080432469893528228510295662969377723824306837567861501265812565384202160057205896935256930513310214494136328647458209946815126562631252578852102014162425429380722424343442674481204101957896059053943457554425796315773674964015354859594136334022630238400687354912201324753762505725924964099749774053120807359548299760997075979645896964071353822544953364907577023397764325063411865170695150678230567134523428061469855783912756908700607092770804049685608352214390907281641759148235627676574872688876735704850335979586627951257821207032644206570911159221071936056991004653886675442152677365862024790428198951538316364360842010302151131125625994589209469930324527004992379482797890594559281520077563728888233112801273134972348053898653492847697287587463815951748113767920445801124640583017333660590104474232244039106096595289189889774890621872918152749935662604626713835409048798253194797826548127129844180838670904231616392648287365025869638264271220410451010740906477334821707952363591244753692664022008568496690093003636425038685945451257399130176336436667600831928864734312450598259116838542224642181385790362516914701130650700777959612818793068128298177665126446169882011930451896666935427267980801336335934980368945413910917514381882376396683101355877917857374883022082077564746118469982635268041615564631222587029923397737516626137265831938150827284138886135664619339384579469179353217421088507362306803121706736689663870855690913305210242109684110829453366324917374852926125889525099107856394563803590578518930493579204879312743853688015239141479107286064198738939513204696843689517458013766900701453722337944449034002503238471188158709641522572004731110755125670400576472175097245069523071560424663689897721542648968924215642147728563044817799261532407092128854690420233902675226314474661471814287810450820418987175845425515529978552163422611855248631359566991969574132918156877605895509529011222760048066802848275649290702795046071929071800549263440032030762541943748768976060996055437460404240278214586485836009460809889886374637072601327154784342667134722175779482870693386712529126633840126906184592823849499321333553316692315967264818072548572815317391004965214361780245535917471030696734045311057772511991848199103257503340699813847512107113280612710305630907437210236542895878512572877271982155185449196492337803005008390189427816590774581121231813268767328569947122783267043778252229303227501398335158847478294123642368214677859487198242779914382478799441518662194006542712060784136099013002899658196899761555515478568257223031814059058217462896274976916133238463021063817802126387612785798655662665168566761705392346196953013305443574655068158322484583420713076116040013278988142239785790035684275955112417506233256986501178250419684654137100752405773097134750391040115973512818241309961999719159575786990316797135913741465979025168563562970562318606241707825626611787259727145451803331351186388730086595520565436255875234525379415604696662040342957348550431400952545306228290341729971320926046433385446933021760983815735063137841203782538769225364745861876688468794549577386186151058824526296196559568290907947909660155035067177436145038457074893027400440421093728635665661611885230064928621366532480816427988538345640250438423426320287183357238326576370632872775301640653499140581871915483465889326021411081174118511215628021278427816193667708263009370270807501759575599079122947073640111996740143515277832699340697655766850677672571714537267432000985109652215240835034797287705534073495085501079326060312603085069923775742497188085733942698040371321609642899349391478345693238782109585102848468849259811154423755757153038728813895475060304534512685413688413945459024769217823206164928081130925863036790429982309960370094897058914006887330522586722638718609154250752987759903346014939112618566734441683740093027325649463203550226146014518025586607035537279126404139128161089912069478886558901149217157095180201308802208077261983692059428785601937999192117183738893874304511863603476411479650766750626555867888835433750045842226561745345935666248042014915383484840811221311703132778850126974899119351421569307390543856702535872427338511763346064890140905761694486927997874346173646672414544145099351535388391762398403317942471472410802834536665972146227350761703216452788474321571319047587202470953636013192907501027199953274198506511704986688228047113370976585633577917551445654078840777704681382040057040295992975830040795516456651375507566827568003915656571006057217428333100455138335802071583188522947473006049042098310022281871678387966159737201949511688415086018565406754015016887162685423704913616814128742089471142725284751405143039322364524427721530139200493434913662483449534866589151322972044443199863561875033946361050642347035399181228486583539798254280596341994455764712883804772877752535678888642704747960517918998882012357418922918752192829985171442281193734682862800688818710416017787416997689591199871878192607977841957590385938327960219621985392804252160383363784316819762784261641519521323198711274523533538277321992557961297614472963465445342399176904404312440505280021268499629786474578923010284803800175499877013148894310797143037361895414396649609485497402297778587018164678496751482685890603155943294045559521695984803082488628800923617238632471633661700172632937563767214604778951176250180146794803778872977183875875866651849524371141050678332478463306583935479266440699776219683632013939278463167533965193032228532496372263375132007578133706431779092699898210722053337198665578858426819793728914786930800682974641307190705659996677556612074464706556948046239988445225774867651990794352283959497150435364159071615134699579261224615452155254091177124992673205082113323465000401961960858396687208536828877045168116434304327219629516930071391935394049690967244117937634131779579274231732370959320887099358613103378932499308426989728479791376205235264017607548353343647810705533258538396656983123364454848807126152525235810305819454382143712397813810944670083523759770715392497644555262911961798570719771408872757374290487748163308402126245653343125088990008857392644764980622134213639338589556814851050792779945541141621973870859042354544090202225029209928979217365270428980067142790027155749734763327584497888548364437155072271656352066232218192861275165334241127588098560495492489146870680999514271631060987276561944156858670518806819080460812343588671283656707100313875679304931690202825570720531012010266099584018102644110782293272569287990854914758578703438642662537803332816334636140408075869932468674793564790439301910809470564807763056500599406328189973568523072525542301635757082117767265376380261648952328602735753302885889684153426948784142762364426468144459455894685900985147835823614184393735145657191899126288196316982192849238627550515770371853351786178271294170770562324174266498750171895926727665683485357989719729427079142878092017886449124896959521104040581135452365165279335026011648862275320179570330859196959754266470204182133659517770500657740278834634200150061641212014406431086215516315369251130590711177293516072556702914720558519506358065197535140575167294576961977760692525639509992974410063294312712741321048835430763275917521652381646759163464567216637510980963971590437047472449936690094941516426998349658257438045581418773529005428096823179528683514170228270671944677457157388057266330533727147157277181768163621369743403727891853215257858129201671272473344154673763671582323377753500930611807556058453113925208662404588718223114498588559720003042755265344625410352070462411113557415067958224493044567802595763743569726355761052707132790476066148142151184776894361695508037064703701806897490996901457886332919951117291885528758680579877586200082895498928207629109878069099280974026595637659673110953401600784524214986905211798861035473570724489447323060574248395514151590767875710200277442001288787554767593390582909485004886477590800770602206178489730949847373244266080073078148547386877326435561909508574687816124094797338663702730768268518276802987198415260925040866131462054956336671492144466645671035143329402182538594098991373220041467598594897553471699298641225923629079133186176744112923845731631104932113546889062761194397865595961103484821708699269157604472660023629712166136188926400525458517052022687814461837632443392249976264124214311630591086296569345817750885569387531414959711961813717992337058913605318428888459411801489007152723956828167141558322748297452018391450912560871360270054676355903193674713061893018817638751172550044386768364124567586711557222825579830134481612901348914282895413015799230134795549350361826524840308219442351862806807245528698552070215314617925065713129463526950787423925742779301354750864263748978444569067442070767996840009172978362753106603893378401014989429109837348121587113511505740255316888071055354778094448935277235781643336630769894044639539705499699400893056037151761791569277952912388799105634126932952378373682162761704571050332628551122377831839342918162438299511237992761751570011169217450622070902834971811024977247960747532515177256799685484902505926495617846730608055579346051699467630435460835205163779438716065056001123801326815732580707402747050810260147874343487490026505232587908786064182848263590117339233868903762667920193852358197674738352385669156136881748025633754091721573222816851542401459366864183133572710415575964595054370342612595204535850069577443306888723426159927983719112109585729581979048182192361905892630276717319615579035940947585597360257258825632214901715391700159290456165392599816397264252960905254421461844831114815283534143991489809744146528102055263693412010421963690948142723140758887638549538526125526825390898263991991421303530171387996936421531579057814942946169481430239536997393267690336784937283042964414998150331214895238496535808033597587644657681575787361257285213985143551654445361506238902046379995414250047013519041085230456241692013653735059111876935873105433648483248928889669069572428771072818729507623100719054738321581028182165471903755327568846682780211133735174145699759474166217590967465551669140517413721184939843965727402032506416210710472000624881720359486637913746865075903773554055504950922680943510103516867203858779434933436815054741551429220674818661048025403420156227653086719024920080677865033896941474117519682196933772921255138670079717198413996062385198948018620630258026576139716673974325850169080715613394128508467917437803238882960708841030878200709925865072652281511039439676319482674377687271822259064811525408652922134483669112907447847713475267566858209943452791135863317168564814418198881428805528138365021106620354247598855626905012513551569257726225364345000975151154562392968731530001803469660456878519846546798702536491480476104217482200777449750282851672806987136658171208852493622364103034000197975088368010910152572421029687755659627686335884506691062071766125930245344480327262769305129462566453531290430222535354403994866109658264229819505698110739217765416603636689797967089733048459218227369267211842276647069507312279243192278683125280302994226359555460109988997059728894332528659544239742886801813433823704145526003709331640650067556513743467198288239053504412881144294835768831083386805600761125794594273519001794515908561492311349920723529467103953051444245143223559403686210201930575422270932439628646387804990202267313116525067772020294183699629083324005879178329417690868321691205767528644093633054347733036486222976406250017385818674352339056058027368343596400498893649215224170037265818707453010681310217082276517453528954522696597443044737161003810405476760530012612366948163275724102490092600973037752996719431993720720456151154424311840595046183395461585470099714140543443414947789539955733122710126758735842510008427243934773078175636528094920788522013817004971724284739833903525580482688076244553493236587676134420578618077395556351281113950296875039566523717421445541464175572290599304072155534051118136524569562462237627400257775309085328432012386966061662039363159378571379161014628122974187493146015264120127911864517972862291232147706484313245655926769266181794276991472790858761908414927348803948623507777937361769850992368443216430954233817858277727404491009971556115409960173388143562546807632047564017817713182821099392704163142230261141948306304132467685787856396814133700034844706626188748718024793908142598650038112397906145172348059623759903854010518461738835706578997674080533958533758708487369034425337503288582665117816492178039591617991220657249188160301016604867183359544695724357373642873949628121845298516331830602742785763874870132127119241227506393999066305455147956936363189048937073459971902579482036648866725292723043655962094062901654638183346240958256126643360795361653898394884304532612797753699733784178199947376015627571014128821747526132236491364359046114199042737935921129600915899261660496197437518030604659330299755378326915950504599951559813466874524589020648215201879463474500261365876811745346866835727714502069760601971395814038696704096862624610726693725739121740951595877787137297962850705383309193649438209533305595564284313926168260357497739144530364167958201452837895398935073650307354411718699193646148914219702549365942651110483415820870539125258599365217822754742271042078656419970243882610563943833337328578222670614175475260693838877988418307305872074805151277438853923360447776954489180548278452579972443703016523231061548961413905958323008379667672628116619161034841947578904394667287033536766068584082941014937432495661607426757985239314531691402617880629386532144798254088602955833229898438903523674105243029699909786292909470515259183740080964578703540032107094792419584740249783770124342179912881487391303956042130045174987184603595810831192912803744677453754102339358920524356097645652434100152599137975892696411551743417415381088984271134091793416376844224083235507359937011094207727876531589281163752349838891229041159473904169590849355093902959055064174973659399612732234604445727440701116534145488531564497651628133769702187670491599730497330282430101238071063704499994770743540133486555362767088577366074546029986470566525094487549487417946248685642515466551219778840494124866307972768681162979835882109553638375519962081574197847137689794938574961140895160426067672438684474479272437024375290621776731866390085215762111056076482005631101597734303141185712961413590960343764057921192451365802187056997492522662769295093175174022668966372821936125722032801368131340615735726646341098406862847663669274928826439466007321348572452676431108403457267519673072416942444587866072541740706649704487343223480232070872458651123050400067909223580822356471004185712902639184590691179774915451754166333982266623262519353670547604578344137373121613222159044917833948911688335231830069126065100392247998972851758089214969844146317654581282169531539484866212615687608027577674295387635127204820386327969277138161390160213201202027816433614159296744306910938055781406646405389491870704283393234414665813691976941068996592977962246529735766380028198580758129158767769967224443196506500071932728315294378758829456636481280569884060188212131870016810023901485090580990172151832823766180585733817141877820517471056023731769942374326694679542353435148217342522630296855557352513602804516699088681042454345016586884627070320407489163848298710844115371634188009769701764475878541160797837003357114467051174912597037209362247309671276666071212670725814472567529211116308475778957313806570698802694310082138579653912940339885019136204562144672554528712938813528807804847061666055709958253281572143524732760836071909569315942769285722872701724256426725193487405779411377682182551097510003453813866935220988261045691216867818646922108303328377799690675694194188162096399057519868941162554641344099655663485121574283197390517183146901461331436504864436780961360229703706862888557283026480736423496655425281205038000711419994482685211017698998260947032612274631470009343199045750381102326087230247686072187887409512472661785304221123229622079148327383259207806187040485401792873549209094967206196282323305176619273883234495134087386344453966559574612990586638044469130930683074718453902202101286753056829809651214831051699004750690578346231320174391762480307601782811493090828721496682833615577481930253689224529779626499596970629970987382376348928216284947236475406470445971643239122493249384446633934383133676978452451334231388739421114912809015538474939971143390648896952808328633986866189348600657686299635811408662143167428316898555717793557536027468523537967971166460158009045939550323158709760398969587039781512750695158177508517868357916501879312453608560093646220466446448709233870989370125245116874026903527602559810832082766668691516720223109291610650820865136330571487348429032069285966300013383309081221158529570085463640808552230689509455079439558242990634909363294181970937974726807354747713233067691375945206611004025923490007140757803212734621728535759402565721595927711761275679879563016951237753426800299821277688200634337129671880994950002051567007514080006818462686154537767932699313258919609124781293008188156077767628649127566757612936047095844468399964485827574881873779601968547703999806823315339466783638042915512454286679413742040935875454529155559262089913635500076935849616916242572511393698743766329251495983230623262546165655118267826772764452096012473835864016840349056792732340008945125835363218678015984037169074544841910308045997615189199623465510927788775153525957189067569547771376456246837245375849316305026780714476316954780279756938822736553491796411519373057104924374205999868410711224066240263136260328115265054686867954131983046072183285982590894513805918976980964970280149113191928946112163820212058523323566862793149383561618042745350533229116558924105101126170857912324578722493568990843929680028094802717987948801324351533436730855120817709261621320001949885617200907884446100782284763681347342403979377427541991852738340563808178047774125953868540910793266606329901180168821987853102727087370189876916701648737161259552641426360848000920885151753676859242455984200245228971698408031463348228249413531702235058262301910925982626270998964796981632565528887372880042095725093068898629096020931757902437851394209333933462959749018550702549398722962415574492684926167887780121808848864740746871478501430757775212097625090986920109550097213840825918992319518714413038075911023806075465231573733789644557762241870387898616684385119991445326998283876866550972395196825999387740122353930593930666347808440775320199022350708215912080731631841248154302837083433065209179381107984857785243341595166794743046485470100040695770704129989484824569673375039020117446460771644610099887376718671608938814737368293585635355340566061924626368471769688987277532714352071643291001057651933537086978019986078714114928613121373789843001834194832990853157641664287267716046259894539966468240782943787620250821116252755720131876951213448900571753606534656087390200808688961247180219879513053970277138721067261143102138687895564827345160134136613302323096314971123518614444598108369416332835978780287478891252165886501173040271164266646613017579683899498177384676713635203568537813126935496350986243770047264541723873277973407253075562768237641751363184232068611637238869525591656375678804823619876123412754662768067470541419504439767428185419515472312563417613967808319902754203054881396772451017945152300089403958789237163419256659778404405220825082546726575480043937394492536985748738383163473136097349463580061212561752614265943160338827758954188737153069338172399092659744868947836223465198558065438533891387488256386452207366183946513151707877811005831408499490005295867297630377007507461530584286680877672629736937902847920304020763381533823064148689423003769524896843257819144293254354212522785931597044211109461793807241097766703151454927248110126589637714535126329804196799882027044609307770479214895955575626481723732355964905841853732692484038741113727559507746063886746490506802151894192847947688953431539689701207716454541113494894232864258069950531915879894250257269406069709289216826814295374400215353472592659697730571896497198507479570266418379904891522342481614786308514263882436368820800866574438673186547350885624264238097551341795591220665689465429385663894162741893379480550152972362095457257216614788777502112664789853944432180414600309239177418067640981435788689493732927950844668529301970356730705342962768762663642646258743062168688802986066368586539150777465234891905124631537558437315902813997887337700449038446093352048001623552496662413744555924297022727405661185792262219417426516000227480757432855112768080262508649797818657729408682095086353127885955211367955996779511410011492005037499522585270792535461460756841018986710667775260163020614695792694657542046573377169699336445844548094899797544620337688705769012231563468050735127951015674560275236785813873101118904561410176056183390341336577059036367071656350116013412723738829028080833790185285422460683856712956263462487877029605113327539867499813846441959335841155099290042183655286489605249077590484480703550151764871528055973892808955335709309520338930155073542200120544385117609941389660311360412483754265122820339510769181511048821311660030784993562200088917033834956771308803827742737329230892293470836434618241875655125010732213601470461836174946604710571019595411025817519817149940733980650899045397155303642453020030403268399225092069328513314431552210432808444967481230207220276392471474986620526400384498020474766163322529106590670250581649819796518565433878186574243485159986879372071392167102664188027194421252392440536993202287057778574447148502905974747459625467599701669978606778768958524843470219643107973028151531433883369296826891258578661306865245391892023616863159096820264972688052887828475473316989166972062310844442299403760810971931764426804837918821608586241591839180113287637907855206709416255039112204398080710915805675220128229679703866740079104761541875698086571358074742527024992073845582479695958652428485897975311711993279837551722370130209505682830139048076625986233739676921783185361749065304101935602593382863801715459076448658771005686192628472070172991712258857044476739848892626776015563674289902963977132000801637446240927116324196715544910622295897313762086948756098356929036485435249790973880920753151885578653680959245431033738689832784470213310136484140998147040577800735059744737491792424854828643406998755603474480037111563241248178713111263245147817547888239701228239759517598784182762186853387183574060178013998147584616177690194439527325559250054419027060326658644335228663908888660928529475850266791420677679244275180414157337573848539147111314924087085119476670169356942857841063086939916036542630249073501866238196650022208923166512402072870621731534347456687491587367387435047823151863963348166332826914508943188863203847490010885255496697244468010562262642373544108391982938428604126899542984151572052635136965800502910716468396909852996952201970796204346098782279481562490239660027112006238993191040866737670061128613614823710474038478270994358052779119662745162072130604900754917237303015307500062220223707202626598385008644992792803388299431448634203227348807824257363221262114319982875903697359357583246198887056657405046968766856073565962041206069584863712576067721983943774262528811104844378113463316883506389673390691266752759856837472319080277054909534681993783514502934408491364310232517163701286073680008506882070073532454393820039220492604592478266495387832825321470728313876427251650559689599543319823176136423790528420312544555782108698764737949436488189902493507287437742180493591055101698585408966657088397974802818386913606768852958655794334531955619368874267699174091942568460029017685241537730492536223488006274105269842464988707035853618750426738402367791192351434561028085641378750650460544292014685278414812739304562729012097523793906872871594169809544385182939562466934546954295475917532675650502876545024626339810560427464948779593752369424958474084230964738606186019199670710774574799725162825055149333491489213502831931886489959706420902919925812226304694332185872883969726495531181278727614582185214669673015594285147949769143562047685070220048622926084014158597436077799822423983524184972251877019162698569555893839891656157504036179086230635674081766101738379036900329258762129180851091933385537698192424763371432051402367725926263226532711530952408965449875994202235010129760989259679362173994433496214412134475978831326039464669771130541603656056230139814479934464395845746812204930693067812735116464543385113333849277442694726821332224389001734501776162663047352176314339660594905385572609420470624214398103675153883746104073121678922295035722797384148437207200442007676122494501832815685751897409511585968954756937889080504770187483795113247994726189227349687993848438842336955351596586260380574167867007279891910120499958258279948976888464964275825139430988222139646684517642036764151150378142704181314407698413120193859967586851361514910329732258082882672231245092058299717924542359740291380687445067114380471545645423710328864985879242772384887620353017578448385058843425099429068431411493817113662647188090628536150292425881728364180118551613166806222304032742825777926987455021668435737469376315882681865874539307532470210217828022888537558343676718253217741977195540213177115054408181041378095405977009255518968538338324799902365947924520935622747764565086638248898201739923248560381307588740662104295776314491780596869658938833384656390951439541127486944293089176714373534739820100323904625286482137302786498224093669668983866953209256478646692582765784015920460631904819323830664894932638596213388396053377681168148394169937741599372053232913472057113723695870793716249908960323153090270877775741521186470979111410655079303608938472226177429440044514579833410140986230918586636165976613700868675733254238044327944813777349951708724843424493658003608413468529994776919711958941961027994483894107144349314383309694432187056695841664198880670007811238827930689862264766859686206917363848020636092603925573824044794414323868494621102813328928579763494545586315503664587181172178679462946666392397446770244141027902435486222877541554606112582681497951105111606087343915239649243762048717531320943495366453814806856194858079822874020006733470050122992135990586425104293244503050769254923692898360139633583625029408019197137421120310648659150622001275369940355793687218630394056805825221444278618007895615187670882195955912769877363531836726816539384387525928615567633528732257340267770462916508028684347736946577269808089542014204780126443063557447268620182816931990834890483321097777821236489601354555486132261638566871521351170888566852805464550507582566128789503007784403799967132827988790829121167474145137837059023669462130287963180129642601665458038773700793270029188868339103011549936327991980824700700683383331912325504497980381428062636131445195358059042261040311005646969942825746827229901131034363171715147881143833515195425694701584893516343301768766522080712654223382673806029496834543908430350460963488567989670455716070703116662598063683280271803998291138372504083215982482543783446860826587569364262265091561032552681505849573449778498064943965402292983380232825851239363402456960332520280454001010167842172926360832634980002292422339847897300763008959794838351860544721146322502493647828357708352420771263039908878009258237434591881889434061466134096700965102215491056603464225098675597576723842249356970856984030396174985728430411099924608040986283074209564794970270353906106186389999619502700934357495809744772268079743342994057753972829422796233196313745634102062957977878348922869912128786463747457392182066356256650199570963242585917622531690986057179605103939884709769266234830391624382975292336735932877322418417881631628617675624135635622532709056543990945309371788667784447798074320842947959560068975273038584597164704133306673871779111682182557680408089722960719168171792077799839416827714927251518179462987839216963584961759265993765924227511024221364144181701137679483305324526899866662988513993384895325835991122479539308183511066065942624673355483560890167165093328410897038917822194410753359102394645271066680346577834623410690294251773137320045088535388844441068576496424097574892932089740344264827789278342859839787951677859761479420637546494992239788765330776088268616987228724275667985121270611509438486527939492276947140931325224840781591900089916203609880826145746180198119271246140725774136351320995800679760714738272473357529708623453767669691933441042681940994712749222293674010023703204419596729050922001863270056608603656605179704052353796805186534555861739652114318909119005613521496883886235783299619630347576609574258351203154219331414592197654995828910821766225572794365314925644615372365212771989664641022086739088286476053399365653496382797720959371730676448882192883247707047477532060173879612288388501603317709810603570730494162435677695171181416357810899742667345468317889429081981128365524402666834249513701929949105008609500621614350929221375964825156874923342836816777591772514981797162327282832631681382480386121500444860687768991369293186931508313643034597571629267471700056076050219017641171278726727504718870762040036531800032935051955132052241741489003726473082278821056899132937357013571079989386304895815015755541929883221450924669567648862769091528114206614269643396031459615914217086662540807891294111448734753064218541201204078660937745711993812419994234539676696684731245454073782882831071291304587891845146724325318197463363371075310098190664696584445205007685738565419256629781606907721323997369055060052610456379017175279891530140840445104088143927490240198818086996135261326128489596038379116000229564233305846592221600715672601231053884286768923506154782918037883132594096809721515485234502931070654978446801757490510059134218743639394593267591964362184415831312761989053877733926000759743022806336525131901720014102929576781179179248461925613536536310713992154077186728237586693837955178301966119571850447940703669061340851314331812512624141535357553860046937959247880950440248178192052464556311310760020265381746450255655345552982007339145551609995260623827736421204246772487155869703163098454706896354337207506201889682326333787830644114612434579734338244381608791849841978653485415212873666828899627668766112747296557286367480663425605650133576106346446544820482992798584524549717796171663283342250472819853046731460702039955800650084580395219386025559301897751354368897233275016397346645954523593104842512075921191138995477801428343741859295218080805886992802689787240015152016952018088781864467617391975282057865191270665690285145800887716540325837154816531813512795559833330246037632901542766090502333628101624956559168442744401327618453393123311395185562592270627803746741757841478973067755215758607151619058939272124799983523528521359281942623997254830021705434639830024482120769710506106313957444944483632096377544551223450319911015465620754023377772292217156175975715298857949000436130446937139816136538403875875734502426283379425846884021111338333552766976179189509492223183497517472186012660368769234913236584518165452337380068454362908953916161541636996150800935408492260036537623616449548814760664300957454907261025547242144383732136236528214411171674667447741606398335790388072856935188668684365059478238134540365806030703461165320659557813312220925614201546336506631812860626890898524808512640212215735262975703563070723945784280373249996591025025407760936294927191072441169580326979660428137107881332316499291927274252158726722889723469203348264748376909301285722450808337569820190689228495172020838575742076370485582940205305293503912704575618521739428161686321993717489041572901433061470788376810520203149561948525798552438622809226565956724295351837462835958048481562611801380923821800564983019252785878663419594191890480044605577594956228401538123709669470499436897033845902455945402462978520233153725686969694939286382983904988893359369570395552161471519920787276660232441149291523280921634226198558702786722596927968168731419399088447694448063483636123884971129676087949957489151307265383679739594716079370066825601660478622966030468959834874569707282942033737465551247088205061363789094489489115360151965595170768218570198427008347975092559161024390520425475022310943659829064613182816005842400351185226122152792942410852772941243352319039345242281116355920651576837457416136777354091158906847359914452654228353819329394677363240413267401105838400456286663054292381261586616320969689134616411824972083355888319567376827662104867137537374662708585077557506154111037130501268433777200770066127719540006150080775354656226291866741913572744844998315994814819834670114017289751618260944081048733565675652004795716177918638181857819042596221053871448993250991266799409354881713007401384719784549558194565436604160339847022451258391249203725001840619164993385123763657221189518339778781615441646859015417465384724590906569506015852677545299862702102771566281059231189786656819256694827375007527701245731525507979520562908943164451762468910860042056818355264674803206316569144802486799190617243513351387429694188081856953096476439473310675729016790724074439541241406600805170138147870874084317773387934247876308954710407740535595447072180928445405351394250736397082689041157562612456568778295742815349925358544389946711544316272126457438014924751991243163325962651197815659026053281563572698056967561512757255902455297447302181660931839081952027544308265344112497489909726869779358903844850623239391924520830764742015799417443407210058452724711594566853527193334715852153281053432310037971993138962781802470002126092319468447330847167874706081215688509021305187519978524074185822574028494615193732209473251668053280659148204336650152492444688951212552712884939873349847304412796316066128994437749395821347640423584883458702021601718673037556151865776458075875103714573815882455764773128785406699793836494175982922820361023166658646853072030883937709525760930590298388043203226281338021754806598165560690996554407335753964773288574774166245322057805694044835390356290806186585341129985434923633708457201783630956174786984599863010842028758830021894068599772138825255725536253984283407316288590166950036449185906353797978300714502339569726863459844245620150444158166021332015791108057418062977430021478615854851350529454039253694406289149618147283567865597532362512169807558536924264825323660341650167465998905115603688234436068817210314125911280023943706401792052146748355883386719398378445693641028051227924938877343083571994310559507443055435488218472003623259294423706562286863865964714806202094626162670870698478472171484800105721151349052068845890513849798329796651480090269479151736059407226364595498440257302260565969947623330598698638638404894091173129072304392227811314021051677578784682038375202640537851520634943260453667573857567246754947487176217142429873906859600842706335502473776088879017593677307988014760948051064913133657939812800924370875644239835127278906433622533016886773616307329236085867003100884611736718246259417421498779689057518041756062969129382551723298109224121342064080488088333852915905795808920716439391282832385581450573956747281311809642679550964758816924399064903424156530158267943713799959493298036907503858779362154892483956717415859285992884850736022442096136651850446631352544823035283884651637171826982078507632591515986923406089006107034893541994012018879449067231252169420039668894025837931182370277444378506772146303084094853610411680162230697566476514586790177035548182082500639663966932061963011083395928410877180384302038915609324326016154377210678862795604265959596919412737768029253407802250422937738089394908223878444336291911742714547263286128515674861322945471256263615488601913483042791037960974655087691496536447194407381689005008489554905031294012323723996873013464106907112658716460884116458028923056184715393334166634351332578928375336507515724474938734821758514614495694981581708088480759642870733526844912712328337853957841217348659264897318042125784487614190754866124416710540650997098151883421018764646152282244595120800355123975184051177838461522216474846287197992904533760080077847336658637802468736568002256029355922295291577637320912857296519101459563220323114981731073375423068902412248236874327958515185696633077990757525671935214320420701624636800843918060236366863219288017408187751236269508092925503105270331311921869589666976100871166264424094435840873584679597555182523703980292325478494531323097462374184799032112250223392686858130646852679947524324090631334226514158946356146554977749565168898647601535910189221361466635041539811722629168730879845351680793748733513935336294316413308623292922218443437618556582313462962047513102906790713318091558953121730232846868238194356307848605835272916638703147798259690312372513253661812871811633319188270447376317390024876392324816907644824389835225999445564395671899428910850101469297665981097791822925055139625654678408287182168896918267211020695998480708169010704044964361727038750954125647032519470622999772491767670666569072232934537098817212490536549388665192771026440193017560839425019566811010386643037675977171374262358615259478914854016986113710348217479505549034358919528524357250927212231012727317309233050823462529438082813327534598945040546923965760534984374890012618099514501100111762813705912440656302783219664419832868462838582993297803586650058890483971244550871620923689226298723651981165310240812487863981522495911311681444675775529966214901368350860665712187621766003878917512370310135661868779318552429586803766880221405799926509776914332769742874650544130073712508545306803754591020571033248847541841311969352370053244351839560071108536201574713192831055458779041802334550398530066512589938811849457574590287981789239952291087860942220031692827263814062301985416931492904888780123979214096125087057694489146679522636287232451207319904938217692794886450903372958700097106028867426718428495895557469091642594748506515732998955168362856290126141951604996648282268321080636735060347535028714883403978526082363421057894043821228644169804178679657785102771104380268574403635092879106382358158345801676049490830644187325227731330764559063522091883352345318166129711321983611832790458357875016536819997370850066711762936849667344301520354399061480653822842508897661883870040291771539310372569071190079686974305459445298579488922309386196957086954316656603678489198809214651814155064865878533090053367126470283414743133459205914505807153729127962570970548419093063317470634988653679101876539133889619852915737730810623981335163612617201223054078723610926143386779397855566830683478578423243486394196475777485815008345751611188697993419075891422922693295332256107595040181629801791903196986612650792615322894367960344101175333293437551615543645584784788393356632649207045688412492076983936226125889167614964847953701503558868816427718316234154706936533678749345284609143756284617282345198685518983520390491503835188542683439782233713179369147668972682705955130565613940822998554460437531123047865297083405621379661292833542930983445282335059717128679919025748094654097185069221253498862059464707469397993333545669293957628578395069095777959344897174813981209497571228515656084899343515132490416337390540632797025745239959156158070233481014067687815694351994372213761390141438427702561452022847051542675797627932777747576361493429851888657440551372168207875110250071675896643007040233952058608920887583573213693211333677568278348220285941230822574621706558380052255550819293935203134169976861849349993018891371666594262034528754552950702115176591279996976782898652275683254947125027760372441026605300701661333324111577256173770893061416459940361453092869109088098348490802259132141330469765730085801132552695459073954369573172331259592332402819440159442460208099515615557216298647135774601738852598240045384234281521310105507173752581273213532416045473200976232497613465479707848887774428015572065474195675915124489821545426856261536907293586298681134338487977516437462852022284760995276664956637753214100632609517795964917391123120529434332040382938288696900743418421173211230009461011554379177498969717951479251905645234695425571261922534032474832000861334658452998519293170313002541117953666670703329005706707730605538876498878193410207339899497744111000927859458973552791741291602579883609069504646470621256554719568268526138076546238555800522922743994285685103015302311494777945007183749679181498833015976684980401151466898353972276381685407349190703261416035589906615880224399942800833863955969380046762805952901010190376291269682938524756472661785204447351151773024676344854987505170093349753760995754233196294977037397398717881818050987247234672694367381133382478422844013343767424704748520458566008059933278760434546901356929495317463339419935666214009620949382794799735922985016858887065695099137492432343566719591110609086241552838961263668731485642251068127888661077862837677144299640624922952683806776946957051390794256843907325295172227609595312025936753300949389416907426012530946494221277710439074671403832756676365244535176030348985020658339791414168502648325580975290655149649698426171731832038215884856973961141432833536423518171751472469006702824760122329295138333573297528697196327195371585926195896431324513927925197802616343904108245215785569807455934912398061925292421841601142076143095322599708503421155573993245233886634094995230005068200373178827128790317609822698192591680679562413911904196921892764942188003879505473270104832217278815071956608218595452049465480964301096780600846045394995438669262316157787127128280129384258296396947715979050173194754796515876566914625673244505446586309369394739913696988754622654549704421251805161351424930149586037100639286564647456030940806506202525494402031397335366943077604411940810240872129177448471771358718592779153733676798667992049686119995212670045158275840537432855302938188195693069308550858320673350838931939087539703863031932614100392876746139659586696117666121730601453175099034743454453566005155421339177488651343909123812193237081300564339705423804769457164633468059812699713461144827612503109303500759696850089159059937340117600750459347997536696202378481818566106976248203515033791078205195473766523319298931884447222701335633621623947278983224493818130606673982124154483378678311355580710906071471547925539280919524762565051268770270521337220889277430106355236575080841506330795080895345938835366826653120382715727737771458508518517537121447588195113634937766584865624002240823615847104863543682823366505611942062661885642275217088813948315039309427766590578651701615888789102437746764654189246532293546121975519169301301785238089651384993700647019845904807647024664488155086453314878127882510894292831731282366432406288025282195675245784249424391771176244565726716853887372253655668110338326859651078935247564037792714456099545560599294678709867636021389765015985141295761892361276840703771175939251076180332772703506810841105669440387322469794284798748485260669900483890234621269230260027818785618562375802016911001545927883389712291871494001039155961430985610232945454150762337079740030152297084742912795164043717324675044302697559207313522377320040189997865963843611506585711367092283920905646291002682794051628917569937830186588413151128316365334980347248386531463249876018760186241482328735888178226538145664097393454003438098286021178039878597411312522276208095073301353182849840562562528461112245443125951020283186450525393052220872291937137780226561522972497076799974865299424286317342847994060660806936977703642349822313806781920430066735385907988501620166254991600137461842682572310883363287600365558550760140776672500428159165438119160149199863420321428011822631932439625497638065834424057858309876494284503852804713358053973600944074546494834030486303569585670626284839687195746257322044957065799194220849303127144938784800776765597075827981821240981819961141254563241362624199829189917187721482973560550782382940089975922304972974813355826702613969340185430136865125677434503171275840677152734274666823976225510770994863029447581267423865107877319456433884396487966248025392955646963081602933237371389245558682268777763109999185580631219857845711025571026345175742430556799879528544203589951868058919164958977156520797095678001160952410309008516994113640891400887191671691177441008126983513070235256330626793717963876924692997110583836042300259247050536416492609039897933420987748047252587017567909972439441445936510645295766078736214591481809624034308987154355065156708294908446439287456255441038399049971918655775306121277954097502776312720228752233579692648307589037876064630312638803460033786323968571628382732280729364245683663318502623737946103283815842928869411838200229991807079761954976379531566056246448437598163496546394245651197861731359908113239205574131757766123612971281558430489764171522653787921138054728975718184053654153699756832515000884077439968953614751232375589173946815632903252503544306576539999169087792404270428129648703569063734522621917317010585883706255873219278169592378364253735223227911720703404800506475182690114649357636715086284171339487419442165554754336065939555192571241948524140224411435605586154589082906499452572249002898233041679923913837995047925580520888193515782734565611091778388430219163102810243715827992067505695347352727356833849036172267722489644828303569531689879626834939872495205327703091085890353903839381083415071315352348307524637832982107126363451392130051033589169600053890768432041815566707817958720935848216799445239656060600099633961515165585408563066558611252936395248441950206462192884028898672866409845404362540385879246346693227893799216401988997317392814704093938701288543841543695199332237088680555812758437039561201754026543008676712630311363556146056825052507363065224044226790159174369197688803859107401396550002102915622920611294977178049642526094010879362766815262184292430010596926099432989452443389207277454728630578836171635963173800165150397838563415150652487977941898749427260386844549157796550738056320477046339023737025451507547788105239130991411883553694543916158405255553586971782270638905811272139040702114683242621936333639815949899358161311130719368214937866464300341824047375428135012252053387655051276873354920076605008683025725831998165233591540180946581968725607333522301336773344041904936070576156085072679726038842997548521072092072176251451637199558288299180522714609679337438690856160656218472909955714808945503270281605649935298196045058830086408362077373598067884476310361392373855497467344059136732888832688141438880192916274103789036408794182973199795063288825038209762239178288800038993883149033903986760826302471787444734778275485234664390344599461666873052607323626232180125644356641490446935866212838579291995625484710753519152230340217072629794556902699817802666933469134449105193133028796613975337323906638281935950028677072926105023632529602455427365168101111584433201258791635570599574404451700003203626863787763330268609534133300196725322721046156848688219914355171941000281488291452526724590870269337130595882562626963267940038252325674596264971206741728657167691597034006129421144356346940137575010002483476398060516132344321853863981256828369078356240647797258799018763866503428973942362260632027190331798586668051983159717075371979324653173057755995100392437688089381192550184676663900641775663120538205694859365126366476726937943866952766372593036237471837330594680274074172482607763346160005507787469935082372518160561619472281272833967839351612204416071857720304639958638182080310536944279841749382041345929655888972040727706885771891766515274587727203827407019605109931894909326887225651815027229163036169993776454168611666667453849987794027479092622241894920439819245783060137908001997457436307818825324028190644111088994354028747891321814158378268081895235276467340444934286866245724617645342152394437528192912780232916908886134480735148793684178554063147650771827003174576663084746175312342863096618074315818667455096529579285715080694376229314036598376136313200458260157579402265661307725301538160544751309560331628329362086241803424328215055937160875978300063149027666224342743084981141510592690336592151732457918995842200751367030390178474706738852207036589435795068795805448640099402782211326235658064854149772144389280219496336642131268411457268270836732463450506222407567994354034835695589439270174514694368019613803234838453487278250014143250152084154153518202596242641555831513475463425767843526270078057333860160542578271904182418670611505227200493386943339188818038070107426089181665938307729081400049875612809692369850769190624782945348763697132806415711683380797083930264587083342784329825815282802993183978093334401914144543088057768833187874039805797027164042722073576151967095699447572374180212495531993582796300697497783109174140667893899822101156040689883021269766359519841246049555923344339984716958785420204757316305061725805520594503239270652720954714678139512585983964238878615934415614270276738975478017956925947733172411845089187510311085097136793318782858444003370210270203670351110324145788847568818557060378726788486755780746135441931747885266452332852092485877970119175786700594477619769311263385279163631103314117967607473632492496101645921295047532446061090524847664754763845962750737883477623285532326408298641074752547361965796228573786638907780696774607627301479357219305696482084493385354050979118790343485504080362967530315553989997373798868662769866771110973538959334068650049746070347522742990629885644684095590019252235200768707041876607289615543458259087327280488067321338166740288784217404078824096070929246199912988587694038088223794696730836551809923233898125413844952010707264377402675482199061497636229596505961846288849714252259011071903321270809896675161700268897355078631143549473030446717713005188779450823392520987120495055921463710632445346412181254947745512833880809309730600272802808044121533317500140598690325967420710152922827567142215779548699388290662635858239605314901547134339987332797797216538823652522298529535659229554460537452465442055503593305906037208366059460534036980048564840638610558920867883313640842256582005854369574184063343000999714315859616505656486486165079682004518180982639950838232032546944345066581159611200833705745836548628582486248627475780791708895788725954624880916917417619869643761822109293860533379500214244043950990288128452127562890323166959242408317991256115140321072896283508590950132399573947718369730710908154177712533607816314307193379677264822833075377253268771900828323249901664314278539714720666210727397427780681005039008200634938217107614212531560601434363834795400572936995753646921084665714192163471105577729176315174969793401054869052982836330221103938643503195846578903340172730020191269293044213643451063826316888160771370916816541027100438379768499599679470669698484439933609641224315080388525039068183834039416541001579873343211916523739882957226974753672220171526217274573921009243721052428107537144436148745284745508813318482248477465257525189189316091640441651754345631567720953060234257623873086619191184377926956728536244628770000836833611715862100375177259615400331333854024637241333976310071261906381774525997754012109580671132235480046761400289534624394135510011810769412872673148335765146405250067674440978758576694630219108951909316962004500113700013056500720123821989774051932227117643273059749612301103561647691874348081592916246265314068864223127113737691351257287126799214146327964125141924289112948010965197240112399140622813589402392437534587772854062280571910904483908524010565127412264583427898400524721619544393088190162976801941334680633986578494334265794153409637743524741969473570458024906615832624644541357352931837594737914677403009449093307123713677330503106126611252107446002412498530631326221925117409461086595771806590522078083818194045247633027742024878095715734014267212375225530620019868150446588378601634373212486623832054408357032148647841602843791154232075086117202980299272951992544735127494916597233909554179680339560420768793755129279541214000943276059382982111291239063101042456993152270492286165326260224638169970100522141195028854019088363911069464687346518760676868456313120211811060966069622657566004345873801690182797673295981026784136489898572073736702061187357477641841078542768780359566592769546198678733471262089702114592421071272097730205882231093907652240672395758584732663545612413274804304071647596591373969422667774416783635474855912253375832445101471531929858680959675889133376553685174382655777209460160939633710719020572637663112429117395021545281325424441207058522136570778242861994004024685054141708577931862934864897004517738941345020656424407227516134679460937244282747572060776197489830271354651898278986382184123796975471051163864143457961712826977248675045134040237752426001346424176859181361998091713236889234807013976455359268426661742679195617601556786293051030100491656604971653694778360244884844019741306734817341068010418226184422123622012974164038130795473153425201381388797271118905754728225772700573906960241255174274033570414424583699740865594803141107750067452618483347132915850471447293541464482966908527807259744212188135968526212412935011888094079740469557500223986189157197247214291064934253702619088819210201091111582106773668071103387900854807424433321256587393377992115944099650739814514376452099310430689448031344896843479778373447174021978172468131552243625915136172430159520231063123562417505248127058516089674763781950555291305033371899273479194846186102078799530531264789065250176082728695807639474955154944353543836151621960116619239684638367900037793137446516674469455590393716271005724598110859226840484707322395278062545305227263312590415128223089973615842098456028489993710506579045984177869850604896751320866465974905310850183496082066370044154075177940769678915045528614992904920861757613539597725736918965243319503325045916138478694915166251444523235276560920146535086605771452196636321311221167876640997161591825042042090322207348350397170265941424461882223885876901061794874383322426760303652709818026154775640217923173320462009810150805196014308826643636757715754689145840870117140976477142490074137633364981506336226314346150869764564557555381291191478162931575381708964799256581213349459065089837021858670527064142638692284682186120238131813825405399955427657512745213393196630551270976231283395829856796072754268867198692300087846432696826619045705034248911932185496739085554061590738867641413295084038140528145439047265582749134453145411845870885874225550813582252018956119252573793418773571618155951236618505550267115963069549182782663676293452561473510344241678390819462403478842589485814864208268826086706070915762507804685695820431136759185876980662030056161331271896272251057256379793932948072584274814730016862269325624902479279982020125082018605052870620622204276630904612916694404850453717245776956790341474852312375771535551717790311286624179668727477106396833617553395501768691664029883062598413742968351326068033420092838978263895514125738564977195986440569883220482128246576023158173626925974862986670909445622429770006617048259387982740404292962509613348002100984330009499340745767772995996175867334534567355639744394007249441795289527763047163004211548007687642314400670106615499627841838921077704553128248656215018426832960396538402927060240401634212471430738698663658478016990419571637776207878888859201605776487708255394303595015409428003969901805563148942194335706493049482529255529204102774020217167589620848110803036397324815670298753311962394794168623720688481281394328305924613222824579313468233879096933671045077644510987171798109040549384767299791225438665807846839521015215874574694285738699267902658623829907576205085055714812537948685914268917431235814201298694187428133401630041941471429247081488883389352656477377532669286788944150647972432145960856835054521972456077081067793046945108588732577368866970981207642429089595397626291659201096821976748195617743052946558511331876103601596032453939122826702540878244237397849299621313957660127554599380922137321228674831746930867815408115052820143682460857256474610379011650589434171523934305743957459721116815158372234150619592771637331975965796933888430828790672344230147581336292261156733447463995697520514939834739601828384831644176918047248505344924291303561137181229635468576289644465136375986932411950632155307428454108055481219903491344078562635384417756952796558462751879435215908102554657892635906501721338170047878779361882474853182022215782342205794596442200784978088365772708401206750305431898534189817327431504119213116122578280925714954999737131654757736681944505853245402043561832120905122787033382151347401957079263044057442318285692219724623952779574369848515666404412362124800107276673877161532563832159801936545635149484684639903841881484897256058114907622034690851256173100887805115009939406739782782876918467387488071856742959554889203984254802531538212087993775191043921494907268338716679275798996309099914654966298111553767441711864227038516172655554338162280148101370781255496496064355800398219306810132999873589305215969056213316993604572472934003666314470713358896645621511745886799055012303652389754419035593515562218592343668263688828459407861971481307867674568909608671673256396234453263621981291534127024841580175309302244348483577229581739535347809985489159627544523840658429401381677471160874369594884020653848617904649931808988375202315807454318379172152313823452973655839211549827547121651008945044463290499496776304791033733590229968737935012633708961677487456482252808766831095680509662344748866925323940785590718883172124180005423577131822035018664555048160112882228502072312133002552615091529722166892145683116270857878132285632598032783664769225127412696365777384943735719061994932385752975987729530934709892966067505088959040991890217178897081918486862820895919024651944827030223171580355767352821317115469297005465454508618247323344369811515797602433272043812830679245339637249594097934019671047197712283222258754323322007626447006644005567105188521215375810107958936940708702070787401200407374506609073239002599221336703612477339769605253169722466033612302581174331359091391824103486842326868027340436764457557111224881205466082608548045233567181671062963189557396566888095407308056713237446548407806413506516471228439519042500892319831497662614965878604025557988795376205352456898620916717830969379373584583717979549352756151118105888835204194553117207394663806036803254593071404272728857275208551680671933147168860712622006066503904599483227922060452209254406173191407289695224304423624467494656573745106175188165509338621375478550207707303220437894141333341158728971227694428692007578752165688881242410194864888794905513164894235606856377180241264529208723304130775878684544721386656995241171872023690154742036519037102964974046294063330589556265758399137548306802329930170367109381191300446448396321618069200998176704331513864765070893998531545077723517590333148803425276217420187039873905546372667740879731027666491449886029991173615211812996174038144429910632475439971760212271655007172600553771706563597336225602649758170278346559599112815572400169691292929874547730141578875916516951109329163030825377845443178147547228318428666028044425131633289563837986886430306366699355498434636376199506905481860495434762249084901074287356463554022655812271162081967359716771680817597567448119515335147879578602362398139263523622219737132128253826012304419278922675488544333187803953173214142494071463386084170819319034775640909777602362893877380103079513651691927513620732598103433522572277139456009149681529022757629131373783025329988714567531137358519769261355079646670893708593518711974833120623376619869914449088171654081549490347463420272120459512585808770924528712492502703255720071645336617722504847491138674227249991189698435167567573353676453397496750929504263727480713627623516259483931375045350626700262801899021469194686805691846280167060103821530953347794629121936752910710380809757737546856591988637912913389538244040222925494622182836709816598946188841011536108659245801575316053348454334976450942887058814973704441903944646177592566725343892851798446365667361880509743485441659829925009099701152783825613183036647379177020926138765764885737233437526810135919048438945903213258052154595081153354202625907990857980375394858885898383690519647874643662471917109061976983563805983417898184815341289313123452050759669801740987951258865176449308066024741886821688350002743463111121233490856959674652026231240475100742335801738538241623120176202146295306131128071739389503637699584501298323645322656522678105855222336208941173958771675019878311864013342486036237378147119419971940077129056737390965844213421332570522955325900271220676232353120962448782393748948918629473132649453074385813341887274366885020099819463492276577002788182349833091441136129218411246914206151128570049795623391257871911668661438413733851603104447015647111636554502049947298921024447683886420302199041101275089391618240434468697921751669267452504801517895253889722130922416539579769027360239013757373354988938741917980770192573061626344915730530448611599851795033698977246144511191301399859452053541548205146662592837417879225244513677585977020252501215891643697407228804420799405161567770394288913561728784885949981244268592593127167259522708285489018782923048148807467161671170873035735773060763369422978486610356217520069580918308416964678948044067117421807673704018282334124605707874514716189008591730576030501627728134487302465227578122056318657040543421869962142630897025915403812385355993828308326265873687303960799193748537072084176740044701749181464497112088140744876883624458865918121050598403968325746301603281869743411002696159734676350549415872255296926966014149615089141972040487510062872656830247308543608398283518457296543640945592510210705847493224638346105442959900897936098967130580727811907417175140734932577427457449665941894789490460806988235915840862980167426241989069981725330733768164102137576603031914043273993709996680414104297892506421795604319182214452609740733504899627292799220459347217596682328670815051607862781858814695492311974135105987311359479121705596899449105140570105529204500719958845823669731653298640934141136455792179188551332703848174692031132125171397353799874220793055157371161796761256642419885122761559330301793587258200638263140249676939023638568074364925312464824262867677289571600558569797819839677664064450111150279130596021415147460481688636006405476713040193628456636654018213484730365067330055060217947356045629043737581041919352504396308071611922013461645961824891896151064150812217363615083818999389940904344268485851693336582115168577979293595253654536041045632947064984694143196862874239658490143689334170028869745716333364541101080750059973376435493485455413883648261404018251056039993004317654050443946976993160318874830271992524396792786068944101184818877145075850098472713993364236767880613928349033433382785461615016738768577514285055624130302712874837142104805165855274386833353934774360328907553140453721901826736903799954295041948217784107058104911548025947563296009485635113446407376058791074778821861131363843763950796370946690798233805581017246008035026452667512355433256826948744417447932849853133728603461276416046453306364593681999792983368786751547904943823535820826722524239194804552008730601044904278482950813053893229296454910785153635010727653149522798214837508786160202063918184897080760183164015491272661128696903652203092349415420095279241561715641921707355724316570034452849571716742434877527713669770267717487699978406130400252049425315188055267331476314255473813060056003175478761618940568217710367130403952192041168425239988363166061604090460374124801132219550442326256922456855436999278014191942685337760057139731065222878468145219506693005445869503985188723581502715710772066036724199025953574497965889656543349251581001631314638156754315821607104388159333526993805939827490181221934520742720174926092748494602843224901480845460380842978487632944486173436016020795381175579250855797289870119114704831975441142853386061114511720624819140429281980836182979061484519901209566883841816611810141103683116077255737157481511802799352716513727575837135732117914641829320551926786088009982962337348618838891979635193956890363604492628455315531593721933721989962561481540177175083652663566620619794043826169745071910665497149327031852005895737124947232560387309989043470309055559899031867332267920862820840571113211904368529056533198156699453937388595501461192552390729473010682839817688488204396899647785284974107762313704684161804552404575540360085908328094591001526891460601755666453852628324936944814363396519848760566524740032589413656458129197803834516343629639133559295326507190320359390377866464322877284019458903088763937737393790001477738752913732109673292762390455618101644596644632716537517688305623964798457491373910653253898483975097429098360162313908472287376157800755812797220404143128120236973431659349891623207326851094371219771902070356575212808024594175866262161033325129064403945097011179757991350635508673972213020309577895735063732139667708743007642869518919528799805839701714725668943504134346292573042908495518573562542354277039226410195078534395089295209698991156288744949735098762740401765717022377841266466839424682044018394423057358838802118204806744652795380912733370432190481677251878494465428363236604353286447978120795079831201609698466539027944126431408035051748502267015180938581399424634626483934973315221790498165714847997498059869708623704209728060146478613865187908281923840440563530476124083921942533764871076307813969528747735551895950569845179817240051050325178978128352118255051281018470992687512825457289667414897963114127276873681400048063445373013640855390941524799600117310372686634217671713176272603429981296393872608707734331499052797793384323810358192303227998560284074265419285821681149478050554924120275630315173706332157073022645957151796509127032077346852403093680725287785532191334278776476893601767889509505476974928566989820235999697789378109720875949018585054751429880789124537450966018092840615788854932782352987667442757931052902902224509784189100001080499193193529743244741379435009931115614242510081707939952971424298360255011657458263575161000226864890515146479901286006477656083962980385589029193942381626506148335039368936700048753591512605791773260056320463517167626106890523931923415968361282262122072957336147640941710277192244454157997209760786613407876987817110053571402278996531491201876038756571176339648834777272582846205357781781736915156172567290895995964820492139012494976484101833403291393364928838616835251705852499295316391164888199930585987530722001171829814305938627769913812365999849401511480988030864035547603598081970550489858947725713024871947939087508049948389887984424875962332478262484269955307027423503913182295663770025355064934869408379921408985963326329366378062280429052537178706031048854194468553509530324213472013699901137865791943625181254343807179732705510116304946219363596132386051144650888573473857627558174561211150466380185216637667126001480796332812366001998957789393175275210278783786930393155709617454802952398044366393956369179852394578930262627124406185464761741491019360693911031311495183371714510074698461847840619859372539346154482708393873663532144065539773249910489584145596313664548154314740495183119933028755349176452303672820628967984164416775238599007408058445644652621262273770701511348716089299028662030924588003369589314347634484666135078421047047328829414879610162142222870698070442106294212154327630104081366893072679931994954421070145148329753909224044806403070220230403280901083984878210409320051498696311975685721118571376864645176756697474091306653398700581847924996523585668485121498929657624631591845654584883746047376005473129654390013216805446541857474519849787089112912923149027562778261036213453972973851201290757432234580495150443374737045882634898884590054206063829916866345266992518834348941564461343968004106529684866369745985124478374995210680725087552019817418436715599323782004065808479769682019593374884697979298092711133683973816897383269594909989453171502031540829459766952981214746339699957305948968867012887605653077496939105302832895800179574578194517446882342287561056930949750012226689330988884143975277961654526731461281140438696051691885177656228616645792020742156126369670972412984245098375954286079220265525333747504778887916776789987205397128066846495213356245835208183516402628308590534871535847477843756130515883988285950465700827094697957305426015582747286348913274924028794633894118090682395175081076971563515630764581151154546350047706544996763939804151150808610808172380599914380670665935292501239441691525331963715439316835621862608889809737387201298090990042083374534644217558774921874811690000657531242380888619526170260476631511482928008198833067511588285570891768653661812276133741592032870185678886716352118741665386665694276511715158455755312070829526084042165022242955918079524089381413065028288604634217114837460199510362110461849113175645722091472784929605768054874248364320366020490523687105358966126930384806795597739862791467847888627258613670668156061581218983264177388662316727676895528066350273618664888846444130735947986303427486303393288390630416286652853466905744710493796949148697115610867271325014744634530642481956227671361515310182128374062239467058782076502082755713952646047444973204176631401963528211464233062858038889724942973241042722759155085960963723798019568434109367547012739676440227108977468737882620621742290478579811246278517853165217741282042778928557770141973369945764628534709108888522231753010867511597140398995166245311557136669458240601428323934064072271095451632670295081352059594577011048136893830900106332053178494488165212274350560763028250433388679649643377050516914691119881442463883863715533711702077561677318325433806466680588989360324507348214391296165412424457513107413510801628977925381899436360647370789177856765866071103372507737105191283408974147744154899029860569720206042055485796056616759747294129224118005550074070097253765993518987268975412725903251389856541148647725474971889295963245070983282567482987231382243280372599693843569464632495953637122301272798943676099436613195430016673730855750561752250906302058931991182616905408233152163135759496220457738298321739518996945301835769851797815974795067949622232563844908629514877424600906268723697252302357769137795154778130707343984074696462323898001261518032106834850089938735191169628939728706957214509849531188649813952019445551227182278015016881890328228743648720003729391567420822037957965186826139007417463701246438241502426770983045177672142012977194533722771886380647978065535795185484124836864527362953209690317563990389260947811224019995257664258315459935668904836108277128249533118650529343737882118799782844451683922060996737868380796059298687852157358403342313192976013176046253096308650052746089623531704133817705318631995864162715995403229075965421258664755917899876510212190000271634078438029737652177523514984354302682121693108977129862108650214663054997876928648450826866221475654757030875617650939859256716570582737445780438747835523311614281714437505864246291587461179916181780905770859905163800011607753565759995246565666203817538089157413090341906795759845715693666561967722040511640940240635871643244177010400854358960905918256187278024024826285857176804547115774446780628742842331834550897967262827727914367832718238221369692510662719400849592575067470821821191438667734636865070476607626986440670557860625043259304871026051271398214257632569892576833889464503261507997808548697174938802903165691186694322611318624516981901473789927560355212081855802032614661888414758821979258431680367078480126747733814577508806108219789791128161563160206127500394248144441266203457570738449007274625878305315605892810627022199774470130022864567160422546775574845347867286444906213298168993418017613098268876240608141196375126317981318482925544272115140409985558387908035479219847190855769499644644843894473150671641090746814455811714674923845816321828254500822420586443333778662169858966954057295987402799035679480761837341898705997848657578525629940628467251924393046170555527209976671374637686824142963936256064313813380855075389036447709490177286315960902854858262864816658553530921111363730472344833658067187859037677162513201266042482774505012642742793020781348977215068255978056742155574387453955101188320419558028061773821946120526990244628493781754288960541836280423577096523198859759789037923205910064157556355072872768134207243339959741309523559529306325001886665645227036611103819617251338580369589288644264099670098341142467711689180982233595115718331999548800323408266805296201736898793443393026718423794465089907762770148354729314791407037239729471128072703749014480873919041045387478102994680362797494340418842032337468894980378786941267124452023191897800768610050612658255006502866146810876922159921500598330115829175530501441114401243389112559194570474863507387248065149048689233487838405356131805684655138006488961469792393783971501781455825405047447747247280764544723118676681743779623085992539141569035688985644165301460181366566892572286727616175699286762179229628244229678339329645941429869594576206099458562576067504258110967460882967414708629519299761812963728563402062910547610444190996410720937049489569113694733835906138506160188690016166504971073420165530150353501471625041508782462740697584212505689964799388710979775895338113073100336796085467857247043283384931695853373136343518185974974877773412073247758139544123783878824334709471018807410633657888702407308952784531242376812588642466400033999590816140032394921036052726685073742877972055783656843354638242709959760979624543540066891304783926563683128549776748030473164548598158451247387613213448511566832947730237356049215304404744102806139029610281492744810634214955021009074629872793892303428327658122345810566440388625931892169968942722545732195966112196768219977556521917572039549959798774924090831024832794418769590996735350284610392156077130836682087844736018755572700733753016216015027804041801536832318397019796288835593728880277007180545104979543337871170553956443387793744875527469683512690855338183870781109189006757024008370186218967742805968273158745515050352911725733295791101178709535451830955838996277909655076844898674368347310990957439048503727514571182690072943641367312765242648946058619592364086205233067924766598438954439322758610645460602233890619479159429584798253060109999860751387494134301587018214479502281144852288532285046256509049237180053708291575441420726915280783182371739828943888661239433588483656380352811054912196543723741629279261635251948671853472358697127541539693127806902201039585214140865979928201896242760040269139209671349418971487884069498720187107241062724565556659277601257628894032920600076838515825996444842981849338493796475877425146295996313721261803567304616020342916272273199414055418716949286638875421214822912192308394560642536771647101709586126922073625317173106571431196409232617950644502199666119898685754799621181197051513640594773218149719725310869805809177942812649680429306372766593712471778307279881563894725452684191929559693700966566422075118511785681941897013373169323302280215243385427480888950749119167639454324691594293061036621491005445395844930494851208762053553744111323613151120665206754964215640359773025329295399742369135853088790398159734317899771369938307026829929579106738917062387571823815019163854705695200874775068926045594959137257744604794104068202415591006007093014740178919456718903457819868356132373528625765054694228506381196292578735981587824012847043683333067929599548884732559076285805512118361292960622242036813351327961819230264749736968666731091695315821462391943530581916520259167175822644834026237951689275375425974852621677607723140460644912777972063627908316667825425093483172602369598574285954330136118666119977578666992060819094588559173687297698662966747321852078834382159906499588984545179538823816837478720794412914557907486124385522127657368161150149086263910983719446757168062171920866937566771689952191398126091673664479646771294763009361403422651366553958716411187651830725719878408872488371866938592579750028104067047998013617189508925181041030199949848883535473143620693632987701401646626499430092111250250673532942906424003834882302143161226856571138216910354907069129492339685723309289793461413926372489058202320736147153859656131366269282250819122148068787787780361419449303233065389581862523172084188269250343696883610817381671105613035453107933747486704041772690158021740613610754956487054810465203585653322247061899816739340819026965087259488463490081900612993768804737156437230185855889100577845882220703846449141329402515768261812403774864229162673934286356412670191497140653844400877802537235803834286866106087285650836387954064178326790507188982340834246817601151344173382237475763998805163658753928476945954617889585488688458617867850841547571135935725101658554995339745103002775632831213627529061810088782685087142332116257832604183125328889623715265068461063242139585956518577672731506752230823560879813847527694888027787952259523226796789135365873856060293282918955619287383112914622402600285877584761441251874775160450174449168830682708069510570143193072683965854949962780265928891033827248709681207537406417592433079243519748545683645778064711018155888802673370435784859121662921987634466469655339054121085102592856610755122111258754504604153186125508244350105890481596816026255189357382896738442485542642067095699951096465182295487121566151506017860564740854317824863382364052944507801149013673114744625598564066197683653520891349604226519531517600230439577752524092361275692120353648691029394782274950020503238557243811490811484035335479788667124835094075608283859186262696352813544502801996420763474263077039252357339926789024790452069017498856834214092377028071283107609291785814898162256929939369156338750118099968620878221727628750156957747726294011929637056801363395115199140745301118853463945254788765447223721541881185372183670439845455206432507742640230468827150220456530160804384338791022156347371980843620164668794089325087977557021324273781214079089362957000772140569054553568811279477345851667481505106227494021648787208433368344791134815148980790215413333737472334555448922830814506523926169342959327517108449767313273589542646537163637215007332342139874988004692648421108672663826466589221581451876320277246196624726606173010492870161772001656330170212438897590249952260177644650386214276684744789417172649475053385606606183778784645272729823512092978182091499040630746513848221836766989259477022726993185536477354885556770247934043362711177522684844425007601027020048723605728686695355259899134563576898893461818776751933959272545289090930099096884790206941525557201897588919647567033432909230185006893960030973306539687516335377389255623913082066255006999512006378816058537682719144511470198287388506298272511521855291948237848927617170734185156281021304473923116165690216138980126954055748320644622555264981225970535814765408844617396299593465334032358054596387824303472721507357157227034837004448856810823014837481764802870807950844665716366625864055195714705664836688054249034845953745964992613311148881285461279198842449245441513442749631475759820984596100979576571543662484573160135029412726238855715815078448005546044429088337891684858384807282658228617705976121728264511512836755434271772622346469671395725487781782840751079123631740344097668592799530221642904710317646663345958018685463608856082269188083245754366691924688438948265199693844181043074286724760022886384846379746834720220400522928646697899420701890314914467458335839735076592852482562069190334209123970157137491429904110414436521340073598481842338439825433972048728426571636563671419942523720718321767989884812027481602513863219455359628273591693607155726112695226077470052055029546145534166581650697222017200486724037221872581097493348446210090403871907437476882064136593508257203124911058388863195876867124534997820137132139857905625924337620681997239870420831308039507239362016169758913739767235134748085204154428460787749050005475339281011573556221043782096288833180816850433339143766817605957321866595531225500641866868865654427970664375799958050941140665297193864999112673123963778623034299536785314013993940998228154780806691225297317021576836301922907725468448460234634646130495828509044194660382312558072680283720348759818834827053384063202602916049684821240885817166516762063784315310741944844552644669330072441889182311086940448833739532269180772952687434495281077380911945309230026695137449772684038398640284860333613773468725843164126381684848650762382418695260035148228424288627368162581389966371474197372548995035120998974306248052295357293479007383074441007285375887522010589408975949194402640149040434751981196146883057216006650974293630704607657453158684721374809316538937973963547155726842590759010352967202076743500971258918287802649307553518628417652269487270251294510087142674114902022552867332444526327176656372872844489680548510820168813005123932497834533822135537508298586563757246533717247204060831175362321114718066806762787709160735770214975059154731306282516946779085500049052115086903455924233411318642604122141379864431826914645184267418060832638670459193174542679438192808234367807011270503689033581342046290902726374086991990164357525792580401226424475289924606183761959002511199201907971561634830305501811187951384552975786613622385126862364109342806323971816418600800047803619796986259573510266364207024737167559855479898830618567332926565413312327178152263815065964145577117532034716737173510305245235569069362986603551111599925291231659086454512098296085231360796360367458940285927502088786482793478141757855740983829137257969102932509461313813766957347275130111532795758363898625989214288915893869349254337559572342703681677246173251319862813503226966421217608600429269165180926718813472718168098803357471374700742391811099271800646844369633243907044998435472283483968732577832076918865337055297999624756306456178807795064225903643944951122582253099119718361249316967300803400180409601075042067984458874591968585255850447602476736643901770739546367338814855163675445735037863319101170306314356152247047911098401562550489665386287321718913953544824583547635618542649259635576882918087944955822104417960695869692393807238262991737504523809796773259100744510910090688307407049403841357614534730441564009647591854039239422748553870864660071990824817434426909731306836407766042001033280475402910300389357739988655313172001601339432246895037249031231833091445689324811720761055985423960100014702663066889448842108349703700251528580984090629629151660546634290019624159376318855547831671246318481403743590598131525120811595600412761246420453367955884387147579967960855124932676629076696890471548377003201980820583514128505644010996650823670650401122517147069035269462083611752339183676091183666687233606851509893752049647407824542508319909287779539502180839992061705611384412482241633059439167740332124350815814451500877493253065081063427934793092281337728105523228704644720748649412079433048226723676474747829300893847240760435223281179980919391845514427046990741650962695773444674927725767636804491625304587890417159211889175506255750054771221979807161332572809514049126913233313677951014911811593375686897493989919803673769230680515787714139876459168528610622994254612944237097774951614585659136045800467789056568714865678251194150025797325909383239248626670532904437065827719199367862452726314631925744529508610935161992724864191358677850988779711326125507313021728235698958112827524437401811578416174897755545149223016862304961533830903089084108899329747329517544583633486756010642999491082734456758988631037502522778538602560946139323360330685311129434774342840421911335048565710725316617955670275718563905458965588824900085409604807663529154125755192723290844551727628768858923231715595878341068968369467631010158417700545598655881870405709203959540855022854982479386010204870381611091894293908711452659874178920158949912395137730611145152892031575434023778695423149830742814269331283114904817409258169216058735397991880299648213575558271847406485271977510795139642563020917824637480124952166943890770686450121451117726207780232612487198982664472249718768952646670368325296339960058715248618554106835890776978405522943005722253854616150806843187415338350716565039747951296915903003148559703550189805347795788324248386470352656694360209214094641825059049740177711761628400440661322474660211704955865050109723821663889003135135279865129451189184620262085736092459667298000147241419479371747046192931169214371724931409163562247421344191389075181743610667223359194527096483285195318744282025231917996848405112745149153286525654973293024004335994530551553030412452224393818421870266704793376087498534495247761141584790287495115920236171916909880724491089301862288763297769332229089489587794560589877093055111532964925000442741279647108215845800558964995783572995606785388874228979214060066156824925232723862387250009135128177332629589958928149710879175655723068602922494624693395801357291203491241034675221932677089965384820991190151706221439751062499491241838019589904127017104853821357616482966936681469858613539700750112370634699462928709466200944429635104985844529354223074026046871736384492126725268418252221813680578237790640958056904777501500151312589573116312343676410776452687326172355661943789347722394791328641599135309963029748514178704949235885331041400457214248522192812538664336592775651596239198714700063490803953122696261445088753231575093619385709341615353665850521571149156490399531601472263629018621183926284635688615389842395976786541042100578960666200902509075016852977573162714626608841021491897348598872205783073122697734965716523338545950707721084498822628001050996836552801688773163302136771291980452409230970019390238544773147994601009858168892584514373209067335403013172607997895396388902031866201704052793217662149992060789385799527005809670604062343540162600027277365256557740972251119945513065331345055686192917467213005058341898266786138873990125780588380215507032816124578676746196355633782471365517872652719583175896510090289509563072623292666362205521575918731792618551474372177113889574393841230643202722784998107427608665443656719478309320507084198268547962572215996169449150057783335873918204232146234612455268457131157726227631453398816429657903892092521575160319833572268092905323830817298586445805417518352292630273511307701546733607868178147754281517597675314998567634788310948666538263076935725849986217634990445957026749067461868721954459924846310860449159986768309278863702139262482941233937339129677827213843332680435134671676496391739111204822627130429590239782045546925979987832021758783790733009854637809671399896392544172127710159079318767310754952485939724679320228814236348452000830950698635542174137823762759325144517648162062476722172229870691580714526620420047935696024126562982506913523009737841935781773684859506996772152629640836143123713361615740217574842017274910644944328851980292388742303692071762737264968545977036476866659387684679917970430023349647799537165134223335357917391522835121928420429650274832357301922415329678017508278053112279062122533616918070601165689166287234612892148513534347765470439323845130805322286821912696952687246679582956561670136335952225321690976146806875595452522292826954518623459255543811029873972011261517885285373949598039493716761484045900409539809866415687608288844064089599910743502485509693424812467759438594968436434004315893616682774688853931795161037448285185488475312883377562964475317602945995916238556832187683802405431315092750357117490412366818836859214316726600264143724701437946643613585765055225084094072085699022120599017523362051674983529376234296891693942919632166325693754870993905401783630142664742352504401936844282304576112508205164350905798839696370073626126082630811593614645364649391762821854821893215973596721148103107203438658089075892077083285903910066475012206824684636306490509999532850995842897885228952924817137542833847031896880273404223249205557234529076067291585786654281309024549009854544143470808932841708335165357299265106339619056669721967830958363245412019145461445413556564389509144114241519526643922187691751005822923424759307450135144763017243172765552372100382287739925804524758693947332674455262972348449417504763370293678695229577915546147596481659626148640979005051624269258748689511812064041974155841425462348014023877968407454675033311244930357597395778193528407055293586559007386165935751224717480010361209705639548081165414442183481679452671957964007678877160900834703289481614074927104600444056978634935041305265355342504351391483885167978592572346578962967221799526432251112482361892304132318210163353080425023223336058692936670803080304645680937068974699059203926244898990086844898352585704872213715093647748989033409638549318711927314116459000992777453294397995782983089025462962986627702476021813547069797467731907613944725946149769062998923599925509173757846305558180450780786296730252651875106000295740033209423017101921524210840000162267405180480721490178471886229488133117059018467774949556218661205223302078037984190359366691172787926038372817456353768703887542497116553492039439749932193697260898800843592182005976973936306580936841722346582392309570529722065482337263604538257764262973658699755554034776122838311861941558375243996910926437969511190188804206672707641856455729597053324060337582368797945178974898431577342965263556270224833565441093340912611561052700171082995567318194888711167993057233087981071172150866000381904922487076890674931172627663141460670904918439872158019572203467005197852797422929341924154088724690176097666802319722461449862328766796118871222229905687481035068444673922596177469792416579599846320505103702907159454258889706548756248870443350664695028893113247991696096113347974498106700976801036679760380849578835106874305453729066761318798916522797497564778483411798890580421528655842200075875404875360374937059113394783596101247350119705572169676757289551238760281229099394526522106939814930989812203847759815648355072394863381968480837741098673676610930396477610584179930087573832142448424422072259236779959312368755567416776080321947532932390009461031618990488889008516877732829286656583795216869281807274245994248879821908185609934238431465319980436045464591731868421858345959300323509640354676304360171442724752405293492782141131612383023578856949803463515912099161550949479761698650049459045387159466743606619193724981592743012033818453756276735147738205158805144758683457775332606889043128506232188086244221863586382479085263537899790651661669153915638921306337811694446584264879870805658232019150312463984068787293472443611557165546813954883684164085123182499337235562069696964564996351956504257107848647729817322533327572337251395255704430188847922748850133188169721676888378771857638099598126712818346768085858386840450622385291656840929298530159618836345254602694120880940877258196218055667347405292463259767318050264173851163695639071467111064456881069562991445516972233263255755407745841218314130023697725236554325455352469072531378717250633497769578566375702930848990364603841969767941730378006585331421240751335799154540602729287376389285683853626771116761127634934529433447689541116150063632367906409191387302955585383777511808996639608995241880803094089599142872488606751688194732641820843325299863261267104260645809216130447608296455082188745038133055732187646108179257239172974975697021071323429525904578826023544411052655498568781611936986367731407549128159102977601123760751423257041973277746813024260565425291897873097963894932326250802015364648306578072740537273589342911475509626197207454251642195211787685561248192715324639703103852485641177307440161280765776738752178583307966938010152361131215190265749589550349463647471644564960400497831266817635248542735614022412769928469435093150226686185614326917132129326543511369019697350270000753074173439494331902097909404520255577733143029064915032525292606841942248979279382368863312746895779064639102503521499295952307198557622993874129256544112802329250519192424990979830121303311845768913210830594749849779768784923781402516596789282588418047629668192037350826918580650246381936850415140055057621328217599243715808672510950437877190884226484514189823351093896028070263416367164466492929513715024815057246330352242782026032806487119475668366804777465998262005446287634655358778361175816649638034158774263486592165289869370403577269196233818866899086682661295310226838719173973116419811083958898920449428566896759530240553111473252723687516331904750427122625705969667696879729657496326501827576402416881689269490844308377223809047889776454378856356301274172981923473694711306863746858882921178277402012326232325210614185960252922213231725079845620294088842197223204631884913044367911901611719688070608124070415967574489226679095457291530811733942171534829488052332878161349691254543059774935124187506049359382145344951176761404277640341007578892583696644514315091843138612443285562686440939506100700321997026487926211058137532893135813942613678709315727805570089499493612451217159887321942580186244973080289769397745183207020422004848238690305808852151597778710648272686810584045982808631421011853570617786659123717890466628384720946743021532370159166514154595595654860787222321430454163496646413550856184980152326745103353272017521663433855402690638799978939916942737677653800169797864074378032890625300184857275406485657655818983396724000520660047652079263843090710606623093047415600749996373132192896952827219232040256998671260832938531675754323057103883813311078625894713100480034113398705347890237149915005602817368798654437250720365742659361830264237490188085702460215466673724109065364294595106522577969667782985726664767765844358892247522141513434733317807624998178336829430020277917145042059299766902227129860552168963718292258932824385123747545303360259514196565870624283039253538562947336006489732706157460354932582200952329930193445180978621713720309326666107869320647143883131257966058973717349844503407959654248939435488594067000213097243788821561903914261749899786943836828521764603413514279153878138457824315797438167887948041009389590503532652101932409381367093642072914388012117975215711103834502784610798660368857114053827455652476157330100866410675055838789467175855913632345970425704410046003178717565748879488251871152151963949600807743384404402172780197430308811998835276400822490677357950395970325492500032578553504891046167088011114100635727733334812207963745302127800533759305248150377325657420985414629308547481849236647308403083616608609302918904760264442558087211952611163718331415965771382592843701313198868805144504611718176414444814727559432527081204119534693391900308077368770628360728751682825151030817729507673170607869494144446741565135290532498257387288961851816613772612070379239492013189777801196917174442376019820701234779142223214926327018309463702072434594984335018871328204672608424600711850543550553899525321099435259256733809182314436873332539692567492279856702154920393228321104819593493918848386823969107793341252848593305389484642508012210208813553831906902776863105116979880804924483887246519390346196178621481196068545977731310716566045876619982730054428989933678883544447727260407168446195184571017895093324157045338507792762746758175922070309383292298722644232495687475776821696739382767082477005891080047728180989276234936220416152268665027023251912014203900377567566107790225882913594484849960035196226183732476341685707609371219386819827564087655969214268241072450102306428973916142063681165013023227986825264965227889365032212874633413593362880622410111012419545249905495098524876540482152725080148834196376113815684626974337313548378310953366724991859612616355620615366416789057017136210257453582911775058889165945628854216263353197774360097980243959397567788009907489519335231892085214427865229095416794540273094304938463505557347915066677565921704775889750689588501028911039389288839690958887749221433878040044619386301658057828314807295288982921173908938894023891442833366055245501173547165822063190550902764197327487847945461284571507682757140591126146245955231574730925295290005192143398367694792429298308435595117614988883707687780374239203338291966275475079958953328606464461552731286472559615868802865928348745153898915338934333283921139705026512396290721743124790335979453859846752037449327763699028872388065707894238852014306286316484061821498685402016643096497741372628679119519110516707206314895768374961752792890993930276268201231715375619836545894322762379093449168726711256699169576637321014547372674634888425320542857040136074714820087730021789582871902955147965142753707660350204402243958588768973824584712931549569738802857863483562666729475065386665756219209842597234064899471398359848763271337918834421711785714793192140495005196457402013630263799356602848639444958080535027912943760718186616474340972477277013323594768161476649772697617027374698880418776937854610051319322607722719218392384090718930200954242881608370217201395534638069523654371462302028243418917238087589199312624063708285778243328903202939089017054151072926644452716545044039068211502519776438517881872304909645870681298402663311010455743966233956077723697145481764813207500724334543533074633284870868739938224159774923654875689640613682078340436802705367540361381130179086286860949580617282485863480703167348843856129538686793496139136740095062580736787359146249116016463738621896748613385239778941961143090754138768498134808211080399170660519927611924462403457051375610239926785212006235467120559342286281167387520670048886776224778815712110026133526529709570723242341452110680955455900633999860308157871631678237737451352043990206808401008799832715522033171212799001881308248082312625261459336197963061954978686550939126894092576737562287903733338888497897919359384445010047851387788001431822670321583230970475082630136214956385549615550145991748121849075781908422015443938702231606748145944054206189078312419850579920507952334037086287107415401117806383971251411104993673241953480342599235087364885927142584103552911245709229613191392941189971204578618222387191470168351294094004305165287258179735711721670542953317504415840358699894245286076081484366905005284959917415331904254620681865618426425950693751023403283289780074407729619462082275194538337867275690604996846257725997779901719306224189626183846359946123643161533054721811624583411280849394722665080777251156469079516385924657072428823766611814418321975412431899036624194568689761838814187254560010934950126490611496489486916882954737033794948965049400857037442875811060982310045839421635122052406412668591909165372887213081375048759510285068574211792005069726533612402599022509342717476259426189439820019929808826513758603352275732923103623860698999752071414519391868491436032073212899389628965789352297510289686911172766354454328835333537931312669249665713722937217231356724253200616336850870805948590833833631412462801138016112139116153820371622496638046655761134792074797225781638071729461603921336142979600574922117049837865952422655142578572273637334491760260894153189294027126419212538103209845472414069401595196016768977532415117443472102765583064066746572662693031024377495999818204996988119872967305440132356529210306418918042085327429650479921105704919641165640652519127454535821021992674591402673872615827552430937425336094093108924193107933019203185915436164269414004118141616530019068425386604721768409436406206608590254117624675610534330275141471721438611063335016342159459082418672556353206727999005023617503825534245100657200039260440025387631687260469609393572552321825510843734390276269993859583373174131980400279320968685797000162674623321529722276956613024649287626462223910059419234343354120329291063013958913338247499345625305745067025106491451307525244475495794280502540035957029489207161665355072291795030733533974474888224011829118790408793182767971557905812373346181250776268580794889951211133834265234949984117726197116470128314385779119702507055652722623182553887304841196080867115910392418825059940795736745954475608990055363916659871569297943595491515186081686701937165639824095284618298625597342019815272238978496666048305939352041163843864091990891606914970829108324772117061790977168967219075886178959452674679904044961728354576323235230834548283346779647495662557390412027899523657035763585651542565121888873680352050621209550657249758280343524603991978164983017172501331590164442279523104610999863056873784645547674758605315994206130269500644306847189956150404957390346560984865131219516670185075818681145953670008956014315016441590570089165193546991845340167425463502133855675809493501551198235691569580751271430619186111758598362195262692195529365228224728557601207620045593654907051400176202732689245058197195530315792310918224761479751951271223343993798457741301446748656016024858240249084964114329193545711495439136997715375246804813878370550288872247193740340249557499920404421402120795327410932994241361022244317705537885973872296321310471844477246685460683333717844739400568013053474868048729968415155387250774406206586332344813907463903305536560125667548270891219427074950619234953898216293416050969665429841189365274868774499494535351955981428571861127513178993694563214464218667732160991703606934242975814725052344964980474561803808113741955165029455158172853390337542524443113243107634253395232740602863016181880861482370651824601530668380034396323940459530871172297038172108956353470682883179400621081449719122233549820276043223509383866894769115579765789581283178535199299269332661946977311632830254125771994348186902047587647486512886145316617858498312782877796408180905543098732616192127398626504934544692070019552938140419048934710099190425796626414414736243633420880686433030260821930115674590987819572972365414667262238431827604941206015104639252185683807357667641094719960921308633494078887328371598231496305377349265495431355496990453919925101785286719248056621585328148311551108239224932699967063885921032270819114184159372829800453349513420693590003634762241159874574175361628427976962651335236738575412997015900420272358180882347267608996087790184619653370290525791892157717560352160096734599958626266344562974735551228233105668246622484643958291762541674250401671325421550212082395639767768521584894759321071466872082977368192160274260280829931282090765584688987652272686579471121145285478969101906552391558770599780201104060694735809342390818736188927855282727172970264883649845409325696727683488000890051927412454438074036531423196608317380826950495133070407722981688416349590568754587297218749811961608422754755559676391074073767841803603077094205528869788123365982617755878173723381347065508905908903092396360399792221444540404322233977529045202484370338509808524770720397645360811492589861710339771516239018774131493478289300827935500958972257387076484685276667373997550256184088646228767797011504951362305968046978298328837007026069025330028294996699803960042223053428538710420167528783447286649730202711325842080884793277414651021837955349288158860966205060234298231056528684403799230210703411738930156597486850994253628829781224522629819800505295015789348722318150858798012027147110742519863876227779991042015168037207929857807039452232665916085103293681022524243869488347012682620918480864789263614254682516748897786421745418970618596151944455533424576322411127134267987701164831685288172852551017441660157802516513889615785713119234166036350462791133703147554123807585354331772105695424530619115667287414088425235078279547858527245976009487854435546323426110482294984533721042565468712950158172056111077288352293142979690470922668747869494292660967229120064342313514467698797309298710331134904910104398109645207642239380607294602144541235093262188738170392528824949690182244985081970803038224580003178264979430035246664954056494350884150292885337648174141097245172429960287587581637436491312543869228756143702425995257376452499347463645256121237280836763391806155349019783419220195257167698716294806983259699623372007122616999769385586411103910573791930378634517784414982990218265464806786533491936254345802387547325026278247974240041100764288290213936367415212270455003011984303241739380400370859339978094895719797371995357265305369039604768984437359918432359233338573361090536382445914244808976330038002412334702291217058447486865765531297353142634956305051585638621477608193304960498766734881726187127106641347433681488312354391911757630611784357373789958289589026728786426985160034060741200462341659103499151952473493551929549584548564936372978606400535982708736857961465372714734298023356422070305752241946182195383563240518155451035647684477319222382078984319658435743277820955225106466277185241299129120955211112731228242795723970187473487425743847931318313793299544629127027002044612147415450690909380331113770797074969223501250260172529903578034217966453612276890097576738791789814142794755052778671908879882353258315830525740147272180677860665840994828608721054028807522685220367079427389471429136682696069152519585421093713680526727274124170696301500728712827587867976537612009226630909914951022547021240248105876015521963348783541648819768893698804894111057720712133451932851997521321008271896804263035792091512683937966938389721109762695670127350673392350431357312731874830774708586406158150654805167303286950423374309722663847686984370151474236436985045779359465996508736097466219628528486569840753137699504668962988847492713959026535441813105188690086477197591933736958758858446874749962625528699896997390321348307400142161169065058056699060588870976850290035038720088822171336244575881065742811483838461710979988789409987530832118180552498016384135607459971916951615826207858921184305023312736815926303329715874766638723638096743410333580305557923997876661906570119680717516154669447848811645836481049734810127648546139440544697086902013728325852044194841343476100094309835408562220125693013058536282477755158941745414900330205158631636796276985132478022238579944474430776039221814709306877445919451870639760849376298903088686533542368915570334444414900364549506539778149261019097637059598342485634945464874766213544428688365183195452064540126965199255842808123795804995120730106735763147481930067573180518555973049115472434782188356209016355348295489079969986126140822565173507436053610260042433326404875801655697926466538868673419431614343584166089254759725611411277433225217200507567697819752088448121693409033243405414139863930796102879092307597225652387666702189665606018761183170083340921594539376712696848563992811384519999239577628929785618491416944103596977949515193694661907206325074208490155255310505182074700997707996943039503223057542535487937883702397962346928251773257927216593936158312908287668956003793168753774918312967201760392883942328776830773262964679613899021754120723856110343512319522491363807312384863893506019640679463643731463824206854835494361299608445848848488961262844591802217782010302435453572205824729148685295685907635865064803834840350193376197675633121009966072792330180099767762914566911152497612665818299749982756044611748296474578937393655090437609018290338324620600207638056427988494003418255135745192432970757887167785305916489642062808703357734461122236826153394628518562404872802740762117550043700147384659146055684459133757501406262253273639921512367349124879214631319256948883531536666600726957592299566016613532975260627911430508290082416836685118954950086283023288803011472339721806673026660440745190825470811326617149915123722172681391513828232723297176943377025924577762790955575286348100017883239745496267591473899358031870746097869798024957011900641325602073889584554743657791918576226596547575343130166149427909482591883028451694835443690621075671450221811589740552899074062128653878881672710997292358834000138429713428888971825335322867031161819691829469249803481263526273512155710079376158985643573817734180270875119385097078416894906934404394607221344597500474544894032258305002312089333481339327935935806552723509756938012663425843210171615765718139037317410135276304923819904426263664212055036588041692461903155560255526805923754112095984178075405816064425932239602452318391134556770372181086002473358872273702613779698636068446709480872662897023531964792452120883696287529074475568952200398431887392108955064904012134693215197528210485078449410862872567443760894463633662336086750121550374121519516874373584722388872702021910697206694074233491827630662278380028839028373749125063335657563126952972958356409383824710456054867050285465752377040322937908874992085825139579823949097661744345224766091090819276365210327392972739604964443073853712701946825427839139390866827661203051656337095531362684125697079894999801225133609390664217180964328164082184770665655404645611491792268608160168373753370397378856472342965581266134093084892283512442777047836269133996853790739506386230076585806003004943182539874785563164441936946818352333224929416023540555924077172664573814570724824260141794939909146998057705156057514376236951705656213196872734574371719348703858896727619490100105078465415784465173292810411823812329043875085637283647228232656466153619363324330013771760061737307037251638706184358931515519527231954129837395970726072929087584290226934867626298127673920544801312972381929739983916998304696460807163692240959200839396010561473764286988558924082168992978810687323893182946500102465781500425095367650387463920022486147042889941324010287128812322616926512717292982383808707252376307421726848433144441488909768214674275979311330361630796596598548947900634680412713077173054457928672999417731674660634185652361937595786674760765924218475311164012877849890127079945282230526371348174646955397578145772364535023972038766721167823675912371814828865911854046055319533564033398208763662888625158657713459915698220600504828510263259583904986183060861967785496334992838931437556532231988942286140946231915092807738118283577410595903918271270152074806424634413801564125122939523331954957167624285670087899993845455549930286190023680164008970552465535410538444801971458142777317008012605255515583312800051269768886088907369973751850286789350637275405371372729273535239443051151133376638486679194525398864878107084382237951471313437167259771584748213176659011044261421879022983275060749586422513339458084636147578169058923737550844107267874956492578614651930037523473884498532167890314990404406665392577710968577752563529519951147259985845491204940741080481623422535113258969596664527255064185405352499368256950678264878552440551873326843804809251662219857905395409692541460708007586446240135036375771623786086878353554904329822646403142553099667668237443483841568711315231290507464952965162667771537472396474191530435913205561929340335247092403684929513315332997949241883479881571119303239487510128232081286586265978888902029081977179195795060112077945442171753203505409448827765974730382063526791221026903292967972218812931443594754710322640402210915101889785758011488481666384064224219217150643859740091745641587890662296852075857795719374502563273461628344258477256334688298621929142869656200160887020322598138433559674101942555252944230741753956170672579909021167677032067593422754475982628643831571505183053462865086310402043657306271913225131739110904026196868718704300819653288085771382327659497253068442550710435622081365325666297037583159385230088329024974482917241658677495343141308281061393011543295649919359752741103209556731545335061872489612637005141597775443994614900376615799714667013815395295310313067887784745426897106461273206225213404006254814941875422293340959650274086943083412005328726512784762361236511139304700370790001197865456950853078951442941960332967409649726841595721161952397464327836014419215097685558354103905654386407008110092496958956718266070027152515733031629366411364253004916859865577474008476022456168534429825915537477511351604588702088348161830344162361697277760363456730238881522355059886625967197615573783497601369102216953865392903883209616019175525062082930018175822681162268119480443569609799667789045570775264408523714320554434578400031051029071730053056589283452244647882131003330393938708745560972222716624261001370174603528906459530762533806278056242457157154370686542858210878253728982635860755528212915814010922453537228772273711561361559266909848383476874808456411911094149098616594952848283346673383264230641791319440573362285395958674988620376195721822084202598446318410366332379647429758003132021223141079945865736985198719474293622290849379556182724472082650171244077332205988024258653788638197564035037447407116261312856243410562341220606851709935059888940669522578849018617949771915239557395917720799121157013860946495428103446098448930801927502871775470206351748321937254596471413013274824421902666677935568700444210888351663657253391582793328334762862160360678286221392761286804296999869186343137789972514800412862744990806922821527800468107704130705691422419763636680663476327526050667678814616296710874234872283991120786750377464573154686688247261841988516950392256720587069900673692671792486289616456073526490879789062366547032787429227894953923114406997244322277956616818111717811279011979788484910732681267135009354991727877922893766321688403172136744262733912076811703693290323194149934712231121839430899759589060489912692472997052877607843387865637410211155335851077771877072920233888676228405630963971140079014762216654576927318662141970084040947454727511986335746993316256010633027653147162263098156896344502872511881422251281196788336013860790018885298191534451288298339188003467405583065139339613635266842949583751275634225293894531458968115522750826336441796356739922468288341651253446698104271097406805759133482156700459990542399183451046474405784466919544809820740288281548358244663114508061751475771877252394263684039854436131525487129848250850882538457768442961774186345520881167077769203914671712919495595540116905859662914562056268339853334886882760918356078141280099004422728214069633562108069627443838318644588300432451156397252222642877473763856736772171128992521609154969772340274502125408439477768180752020074485990484529795499122789936247110656944476271357972573472222837884430909397515081889285873450316044920078423331255946319441753104420458380383838112268933452610633323406833751921336083449172638148962031628194781511426392676965956058250100888052725334468335464499282973368774248933886067458370647504310436789828093618067077809399569664967581411637484435985454514889417504149902812644292590859220539629850548779482756502807128295643656174116219276382247183693488452668410649237854825824675268931966267204577921192191223423387381447904289445182440710489067742222182754365673831934217424421119003119903174277655548824832910994256916079897235763342495203633980754694009064542892133660615418811067391764395130707981210890035500665547889445401379064926234538529122180808331682747291372035812021936822547733172349642091038129549853446292040624204309429492792375485629867562880469047022357637287074676735819905294309700141802352717214667735790316806204072656613442217713280179133197298134408220265613735082844187768096324402560558379956997260510200124136808779036841489440123167488565228228353170492622243105404870241700578670841217740833243008889741840560036336290232649224142550956193910646614454220593367381748276958887760175127071138022890945625724249750891150396970597396562768415765913736338070811402019721750677241616939223969109758073945207261187899993114495904073898808296712247759774932113272744358271404413418201095789886473311933231935657902908043680426183911666018940274025503681558326301673252052398753488746174868436653957051009880307934784920281010091708380613956526008637942858975225777781957302587654068469502351416463640400206395564321983290681635673359906707703238513777565611546771827688677476333948423407744595451158084032080476741290193699232682275276997480642035805450571358990165238188298398012759503587110589452715396520867818682109608531690120372447655340851867156956691401456126970296260805841515664882396717775302900395457218735719169058509497862892889599080780867736437519112375655845234083887284232375118172299855542841566681410314210825644924035886619306372464460180980611307778795514930488463309443089709282746639818579179812980099483950013784695373078968886264765716517980357349098132152475445542128563975956915082513504915414794723202943349492317862483082813505129191377061445933555417983577589752761611045472039602861162196355856969375263097589830692023005863889269597346381655797977137468579948658851615560595089248701740602948471747438656979704545644380744754265313497606641955075633269751405966941885633460732933251377628095913150491773716378923216848431821478945061890214867775365943259809701276254190490556006664432392990572862912836766756111882487317367530056261141707746497677006077464550266105744936114975032363012118498472581705266733019569874835921754964294645313763823971790885326491826169715932484259163330037571606680380819767091115919684572748252696678411785815407165613428931572666149327492333261090864932501770450809412227400200010802721780756911399126455548981016364684912818567006423098131033028713429828262201539732520622657637517589939363629922641995923117014074796045252467847462619786015419234866574194481918950286170303147968830057689276972649023031360462804007282356048458065496340037135086243837612200277377382202696384916968198661398981302347052591029100109587246051042465185679467626069612604957606437611848365724356926086509029614601852469499733481924842167411928133744918398973594877333090633674357125461042875566017281591263640731743879070498566419624333649189870118931234282101565958355414533824175331314851488082317950823544007500990557043803324649180391043839972117191249832899567069860698988253051289955550680013603068313050860022438733752631425831526102066798193580280046965823845365850880041542190550295446326854643612931048846043163658330963420380858548786862641906534455472983749410906234029465316037647777486887950188850052757094618400913599007942102403853610670337297123672925284272106052595019312411401428871755064580521106342598132484030624205520905492709301607173784119771239503768060826081485202970726444055452504460023067722033253674699964065584602074592720217844357842181548584002037998138762540061277986215461784595042699021115912473718811905697034813675779125016607895310070419191587835080876693621234013661693108432803847756727423725406969986588976882552780974951072407841987314063223556559464738496768672495078504629307151632116094694903242055670066297468632517262446119087170422589225486681785627825682324343068972820749819121493192708340499118210387804983724333133723454938965890806373701426678749462446386472305309637396192444913061314464798312531945377825632488324356576270004252968108504693341532559584613057007592425055864109818173208564401050850191299897008133239757121510126544074301260142316369429199257711133767415211750590352485511899902009795008148405875337945994805655204744806107450098897618663033934799375457361104748145084679808413694194018351094550278879303728976137882160738842844049669646057642763953573798238379963699809536999947366799808489312021467121956489319650336714096063133007705945841702994964914538838540625814706914165075722293658262604372440638335201881110357627306906449516219139069258451044548791779797294686118267174502063990431759952563854070991900559962183269637412694751788363241258859824896106721662680178888351306813605665309498853336507383545470476970193910947476100126127782788657280994440495360069210622348593191718496776091145398134465608278573019064767563148733519642885249178885614511287078784907604521046684310272134663224462328537646436889889850077948392906847282444646202620860137759674083982318016522777527237977193237828567432218342062284217518253308565189055572132119123134560738236849886582108357258410355948020315919147112504478948467215364377154773192955616753819744229715066885426468619617005822214797982718817115927792062446353996490536810108211755495633150276624343542553880175937955874013571569248471561057417852507191899756098598233992506926120876775517543146271366640574132208454482155790857338231143866487000831049891481721127865288240664349463788104890547124457027620963579964009229335406216235902473838707711156903809664230822097095690760225596630536173029814553737985595980184313962678499408937960020555454115900282374717530690861618821761565711498760115116203233219605074650396483667338228625974668541839620051240858162113675374657471133127151699639964305076214388911615649420415510442870843119616135836154383676448857484702455651596568737270744603605011041375891549223982802245759372480935086465672275565366429607353109805161183817075702736194486979540121548295946757763263144393583549594102368487082228425775176126697365223658182799312353491820675865579968051130817962342725538817502408844856346689274379180154207606411637894513909908207879212025139123656486685264370619748926294530192259865073098449320277328479870241495235699407359962198567532211989747438509500263958171446017262285338973988460341878250159095222412203550448718680913500298899820069917360607407161624852437982592713635017257848022422462872288928918318146396447600192477660749411179197255620119204307328840723519067345337304346120904925935362593751444962687903206304784371014921911309897450859638349473222547151024058217130615372081580892549364815299726587888959899171878363923655803647617057260171975094590621819435813465510547010957925824987510295081466456445190864070343705161611837006221533660750170187927472813974856318788585351870499648686501851474993007106057542350507787779726039100610817097177155613623030554324087279165291623818387593868100633994359585722992949472226549603826565306996672123309914164867103899989956612619281118661078035993772750721715252374781545655830205399622759886558329407858596254422385749867346348501480312266231446140097292660631692211315276930331276008042419632451743045762048270971528219855102912384425107401062272705298506819068327460705915286213522417822746239100699845081421297964187841511844087330089182009664420782026348995336669689226272434234601541491696802095464823101250997864433524475524659450765610346131631540674299916844996176193584408388391208885239211749684877279293208015429375772704580118064459282380948840384772432850654017274311401435873828644812110214154508837828365518296169335393135038302875556400288997310137564077456418725379022767907745227750375995661572847498600914242731957830257117365986107757156885505630610213078105518525705229074440450615136105048297402380520910839543174317054765702292391383495814369843788476621733928669904153088062144611345209799524249095180942834209537729794271044397048749604568641975739054718164047757514623420456823400915585794178806709772356307639570418242752715373813236456965122395040931509864803750393637350184419137688996104639817223632777935347025161844560377529519479594242085790710406538918171404416795060318196740578681195679194122852212007780778510010519196441218349183552463499433459342612291288049725289675443570546486319675976800475258360507621034256091811037081092402281629075097390481727919381555103105768910495390208926713245399238278163871589035725263784012377013569276269515930395237027654508061927487837504525570684474359028497647304405163537816680212911286854920573355688594187457256601916595344630567956993510222071197179408643351861350996049642838959009816087939126464533894469893878431272315795466483765976612403155521508175883474925455059281623069241155844944222844652909204783350083895483335864556705121200466107716804548044690934842882420071701354541002679269379319284000231847415678637903825219715121730959730737384799004147283851443287757847743611301377788326263242306603010004941922107626545863499931040342199329126200379600748212747893328203352447766367140280617534943887798955021071785354665103823670994877863467183181704464513858937682450143754894761116726757768109237645964857892504442721272904491519562159902511808697653750944392612465013521377254192800119630492339196759150325074861828011882698683988232268335340326501729076995311039101389688257566347568919472628272751349738272630546286335019357147124100765156104383130094317891999821652097657061740547401069306452690358615896407825621322524899536373219582884954199324967384078397683817693234874552324220352473596636900051596367784869043311584050826063481372907625635235566720786857134505661677303674219507519626276931399763135310570548402888733388647308920799781241939260005988621092882603213183707492180856447909983782205528191946149975837964837090239798288401735024290087380401493033244562540966097291271617024056367586470652714992702910543971000346292154879595076803957229418128307772881744361773616973900330675874179394132894386370512547728291206235863393680904190337782485906478152864808487966186590548954134825348494419165018423403922088997438115308076731765514029180066892079333497745193824341117368720063149783533176391874673926313963291229022177609474092963464599198641174708240010937768756221240794849120890556908809939084953124493685261251927034503723715547588633501612046687845841214292973476714279712919150054459453265149184470190659495194988960468591576508395906558575766111234672530155538858868128017308682608000690014652653511696087554357317258535668125671104041563666407408780437705107424749636455762425125984185824162895508612866064059527216569000037597529718481173465193637708252402024511317586164053655713129225388978232475912968418701345650228417200866296794702548544340538029279127545995113792291704248849670926506411202519478458364326883258353194149409438286736998004840618560383701147515584434758449908781729174184076966302159431898510405920775134787431347254438913932278661035694067992673814989737283856409315238083722283263985394482544248920392042586374251586566579819367368441370845275912813082961576424674864635006826189969263717958388903507912074001558657135137707088820045798555162705353377497309331216146246646215940245911486626075055606318519246037392975115604962220109647435189033070800485191804745478835833262938894859483236690800504827929294261398695148311679991844246413268495128525944163322093576622757113873877767911313505373766545729301745110350525308687770150038804792363221791638447997960824700170722876434004204809803405339467719452975163975249346416317793110780634374581525455981153924985136135220639166775392597032686923650742358487718435847094675908900866724414750153930995365232497359522565726010243258931821125148099078290352451296460296413767775783817312466233695186837150089186354684906240815686010777216737971069283622437423891067552552181326692990775930726984278934536222164396737983141121308370685714177930788121564854557246852426675887625730552311047289855954180900756337879160392812147972769517646569788228936433426145834341458806907335431071236747810714624927670871261549393439984417649621483469568925463376708522972281855127409634704803160339520105667324420997442938626384135918244230321178845698216769189107029272020297458801818955927697455647264448660519860929938630053500241080421811048870940418913279920741289274939588514004437687451070798171685972028965604623933419994394405283013812662699605670138666573483759736393702567025821958337753687656313514211111794919379631245374745907936420661123476340272368461600636178624549587343480455737027826210327433989975574347449657530963250597537398376386111413816775243315916094814105423307507615693718533205720680253658365637914755931518368375210711130179295952735419996122430732440822526035850595989096228233008927075121739939695256763817703074062305576466436121253476389347386320337865955718506276724081236203817166925718698419867229385438986616786509978606390622201994267175717182596553502875144528637715003852643727917234494528134469349223835483956863546539997173201046626045721337742610555485858892123838966935470027594775202366240691173682672266456020157034423272421099886809377356255862643800303432134406823391575487065495019472500802081640190734355613715270623734520822694462917691150198943648912789233142957127257477274896244292081244755708733544074451510934960608991183726340010610554432136672726179383974963461149748740424084605542844685268179103246386362068801541446501529308419327058002665991837024909560954027185103966637793982237777091043882952659845035554555914397668303598800241568378725368869914797691053191156190399033436007695259083608862562258310486860461936295221525231931315358785184535696462313949571597308141200462725441980850375380593801907586688674842683360277947069197351068155015031393622997103259470965285217095290492859784964145547727522876039573628224300311818410194116009677202164574178346294968948931259313987300367342647343712750836050155930012781030835568012043649229977992907639875451602999058307045334832152288965005431620352374068073109835623218368467588233021170358274399691360557785534000854833783488739523688824465037688536178901532651328495620059803837168212958983963180714229288459358875317867651191051703347185708539063205475647267103676567970011733655955410734914203642709912322756183077424789192340369079857199174314213906035199834925555324900975610389358594651453117411677584433489447624250462164676422462488534111951694417430983841628575212218483102016847717466771828509439095802904743754078016912811995305879749031658121504028373746798305346377644094111168897309923509716032409558466934205748470403876304650607710123571557682709331453999380051151981278580048886409567053950298295964422856245797433918961396924838958938186753869237250491891749104793137116420944217654847822104408707826840262260165017322318979607409233228305718214710198611123628071459645719299375450278527593772361963054004158404638341700139789873252155184394976304028502327376892264890466874582991989949674320586323531967065703373996952451900041415910650049158722093833842392588152513062762152239656458767198926047541090652205747494119073258130071895086918743816513704935671712616079074813955473135905755456766305209898930717651483578541161808731747698751705002563109916276585621828837699556289504911361177950991598236378422063031055407184381846132647828603854034806737300996505450343490678251824934662251805595080943882029275371891205559704944615611210641057626588787563675755754189725380724540879214901557590014233185918598149188600125502998576498599387213736374450207039502577981851555136207401130283965548650587534544104959222378136500585250932052763266365886074502375941308807342883762635550847843714872169463167004067968759936368754910053401314116180306598744442600011340450712177776458457414604573708640306108099366964206222499860034400451044847730018346003258878985775442463150755609102635284833954255188546388835808645029063705837573088906687902222835656392303267022622705761463975571215034910319187086972654501605398593765102712673015318461069538128975487926321858567597438546397498925463186802032044660473278023059753997687812276259603416463503394558495400916809104735425095136104780541573706357607800487025430839091728940920283647940810719341445875457410650562348356104591647546163507602031402456941503141178082780163121725707131046380323847354514676345165556028115781020928424331857419683000580115908230450112052016738587291942891310647144549245249155006625180015022611299361148340220258204614948591347256025996375897123526431740171364042093864646912655265587506490651522364997121740203575129110347242807922430489346081286745289825855843835228872994758520234675167048477643508674749369557968392503149457774791799414134026644382582128471576716645009435022157764041345963958087471173167629359516382477669697938241635853879773137091630168618145352668106512173580280937550941864795388588026526467037003625165987374197737296183932669583862463986661314644374551799480507096732549566842013179076870273191982106174470143809175479004479307657132332620252137411672547640375476492476511245141465056656540108973685278045815206425662911345556072281299584535463769853006140649400668923668709238638246338224345855380928498582412725531177146947828374188375354757309253908572261420851416091191632467537685342387238487391211812284268675176219789869983797207636229484787428741004856129052958985202100151584804283688004938416946758123182658200544362836530140177632804684516613361760607526546166628014859657428916917882645219718531549407535466518430802281888344614467752306272504036951463419465223413276537196458690420441641320896301028625662122601943670099292561006185776439560643764038893863542979942602140827021511746552760514564414454020690744986441069982423354497438371142204637149918242100116313709409868626415000428265435519018092890118821124743051791611660306918655154883778545282302673476059804668333394498787253311847921353641775396244704030289186662113197022765940196838354215020969251257567469351155468594725620539634193316525558077457536262350725364782176574658756279834550674948016403045801388738466315849211651793690041981500061654601322485756298007785985267719937540374255973310928284196485707051577551098673401005465539885835007275616405204235241359659643398338160901268679982773864594304528091066165782542781568795005072041483779223292082653700143003733699023480346006059893366987847715109809899833448024978809203211327716752109382666021848482862126266026276895216083278923069274658345391048751019237089208625732820558171321988249132211640045453133353241362694497386143573717517486055421296979179489692423001206340394193254667393945396650247853023092841219286727713460104977427504536389271523997524180215284707010430235802152689338427865206675283646168303800291352613164817437852764646499497691409499739783020790887313771231642892876570088727993435397525467503497408609923231431959033298623562010127762495029273093825095147658217500696896150126847579695122502939121842270903545734112055609394319295418727879552275907619685219340857332030329794341832870338767631252987821446858945539437330140148365286552219164688650783342682785945196413695966301592305329799026050974862442701763621675555427525265379599565587691309138768599910099677303092782059905651675071233627947378686616300595017739841870178175139455220063897077578738076014925682728634083237720813721740258559882195608801292663470804281800203836988385726427512338495881619264710919511730577424984087002530941223944593895409380890663179117210994046665318937149438698586980886318058950614481822679407663828371644339447900809741008990957465182996353592136404441500247492603972972192317596845170698450223044495858418916009803918785494330325447729001461813387506014197432661706047922264277119165403388248561431833450224064115716518295483919964847517929645997576793439014466516871410783424247300808764488291646159051884379292006824729174302362761845724768641326094458816486614320663608856767401817523409838153239389356173943001128975564254189288565451410103579622498061564587511179940724573772309959904515834704254569987466019030576762671325931591453159571112627384906290701576779508140155440700457745929016457006479951747102471789458011750462176723491572041078768653777222934536167300271797252786681519392827618183007711304283754246429671436052703780821922322438750439435272326076616549295801793484815225785360788829802991901376163822641503387418444720172144623724547962451982497534250075136653699274578766378218232986456987883837025074381557609592053189217546763542144159563568021073578806308062508973670311936789037105632323826760107123718388456334323707987660555999385610355124778471867160608401399453550808227851451795080286224478924404642718785984359241384820218896218937028214173918157033259346775903336145309696548003585124656671326492216075109648809681105441819038011730209311323003902430550332569110961014564589878409577646629586993778499358352782544134652705695483204295679554093780611621252951905255768841974575174840973206599416453820070984870254843742192314267250896704823648412984074679699021361010722027086498611574945553407633477468725471438917772418282506028504330068300957821098268396898297830116715029585285584051070014456454017202238388775049712016016935301893276388698323688440053333221295648555256111420606559680365538622700265120931550167604225099075361713180121067602590270327123307012774348773741094624680066573131900799845065647565261920154067625886853979227839320019043041282057702385755324275996361575945459447919463243254799577811368680809004086892476416865489802128966615444057810705964215423906294823042940753967262447015975997007342502966291887090003529519681522217441655074359409290642850136197378086000811542252518216411173208855123614291505644865948224758298754214047418010673495516628723613066196309312889057203870570578499531633158557697995399217071457625946490458726384271611712196810521443369767080338037767689072352106008043914978043417615942563619707760000554400715955473583609552818754185749628108227017259354503747398137506238371729456942819142717145850316875730301449664141365166366663750646246078636928999863342349557909702283291691106834903795555422180720815430993146717255858373989871704513958753851014998304017269294394124617336870382667912115163392907885104474268025855401905352133308456902733063651162225354164199641178346172058080112746544922139674452185544744021343939425262135844749981360255708852446107679891706039227096974801158888835179251257213163522318096559769635262740483375798613676975099221371874849307787666877904021704940536262531305871845100730082494477707885658374746090699293770392929767616434380868773042620869798982344925959122491142120119598283221170384632501645824571399948566565995296186636415676442845981204242456387735445424981202964031141343902242145501601498244552831419524572403662553768606441222886611086648744753927620253028264264887530650373019024321460667575984683008946770456712831962023440321835643592357753890994252399652512333206991804418561581960772819709027851301883687472601211345749001148959563505917549680081565973388591163939167459748284562902016731126331773648745689727086997828266999972246145542481080302324062297022119496080665010133374704616608836541620367671641654809638025367378296012807132747036636825232936369005698534548913157216346046187842260705657240731086084679909333662534101100307533665400802890431984065195273245643337781540236320922084123143520020084356607488585362590817202370381570403641226230677009035762562389958021566962067856149827184014868632929164821399910522790671004817791037635834764220904524722313581900603193398049569580944079394955605658869466151102319500343248515833961161876810570730940237935338441412044839960273561485712387921613541977651908785130017128381167926903742961915084068542152437100419258571063874517340290894838951517309809740690189378078149665486043261427316843563457444905737852481594312371641665009558534990939012183321772036675035704028021674000433246113724139107253770892107299718048652265728526412864034473978548305057255453750491241070668223739717843772516120721308875231029434105439300268518010669959594924393138471649181126502432672971275364337018582910095106367457863409642588200975361447742557719109038063525272709173988592127429814187951792133240647064983337809221903212968124752324999178570786158840547762364530270293983046229626104734596430185126415329812486880674532188693240803678846685630155993137344170891066994648137062156512003632926713229071106625339725422124796340477274272797296915224528805109015989102241330118320100559903206853446613411340898343766182144758343868416865771921979298959626165834028702109457493975648428543716927916481241716533089955683174262554264547060714255046256730984671884233515555220964367353104227545308843678385938011850954616562460048525282115419537610104231060469776426421082385326090615383768199855229297488166984325608856797346073471218758464436867969254218374591369234307606731427044121541637296406758317001337509448616068610243953600553860463426366448359977771747029700461592711440017289060537971567635381252434822016742026277729058508265284186308709044600504216541656742365908654400838390132831590925246966866887117528124231052409252871375158735078756483208765505717796549838928625413818632946683067063822421842939738329782041682762789226738392346394252970120994846397520612505381226648207897166225135692090354890929739198501760442035380013649205372545585413923903475246538616624132019925951210508737256229573120777286945217898676128756033918748503755044865237365736125994745574670780689520436086360327153602998103198613401750285729634251779793800770445190265837280477444553143375198342498539309201382110838899053049469379479461075106107439595298239326425075211045672650504408497456696941214847944133139261691062411030173981937348752252922914618645393062761376698575197052725161759365795070031041927168321589805645909713225583377965597693254517599181845287952473328084780284346719754020189588768614966978016446460707975284644240089350230951412947256996543339000273151804410218099215115854114094775636390907363127995595166692418887635403159035433288786722957688317284333377273163285976297590747031623495448798865620674177079289979346961342978236744066645066338873722804544249631567687521220372354969058419591197693830655069706456291239828905535970730139847684952257684998860297913041479505612640012005258700393724646732561735728506987580673489923778704841630921951986825663860258389470160810480667279800381631317280645864971654764990302301535054259394681564165080080961293217640952005641143554152411924480604767468596271347990034487514174018851385116138032102204708071411465571767297372006704216459054202912830711109467015858271213735746154812200859934507162456907739570577360550039022969650691807775948951647699126643734320477466570679047246826492054891728569438110968801846237870487261262490830686656606786970424790422639053732223369276945428251943371707428615139029976160376348736189424791307013980278752277303540059934045743523301072903009772723375924869765301372105583558467429605669243099118201457272954965816666388711865749748017163732658468384606530887376172340829893031978160267157302154439187284871510034930965533990428287856588245627708824109354295735320013320459275510694822516572487110633271012502902239043667146725716503280541353474712639996468266555123221708524666637484430786963119386621460681406779879659398162861311864547832050798729399482733414498909741674336894912893284246829656540170880212879757996207212776880316278573630389750478489675838429920441733232789447300438203093126764654858728206188201604113019207833094166919186586617418470457832646286210711528017215064418987503751113760435760380899925910440590050269539891379390422053658314067762064864283273824783265809498095033134881699769439913401972737609831809707772857498241030763829424066333580024234660217846076279922054125170594369911615567884553476518836106011030093239100605870923374667093414939764245770078333665062181177356500891229148503003198245292271125567296978377498196880294234158423661095557046113383926085481788315172171674324930286261781586289153281200976978820766700082613135347182162277341514482568377359904765147595393082320431487422518094044499477806355764368962329322917868824394181475905846051672719012124027291122130479255662198168779449717271930631790047735366827681932430431176629684998817452067619657591889531919991247712080380888652084796411523583272030056256764762481437816194624645848665686503158922388018367806668113413141955979529321382193596392216824420550831381169447641329143659685679601096500694363575202762563099586346634495146943949857398663951376479109361426140941908347632007050953026130753244120482197210980437437275385774129865387635684342380248811313690669029210863741817591253612335834229860872954901768669813434979252484471207963939734078016436677718063524486415138222722304653881839959595720670427087970350919775847991623133906387857026751600721387482968027367929839118147653854169461651922620223431675083240863084527928259615837614087740525247378179202090275653503054498804367112224136285700025143640363950913710755179547124377689660424403644030996788832222577807639185677441433909210622342877135357256557518653163499941504645794533492422530038666538851858327992586153543816447386974074898787947832616974024626115807890070356762418548632254997822644264599809121443100678908778964337676762902797810666827166873008498240033312762408512352566280372618816881702190263956098353037873676465971829503922855107162764168782958871789567990872538608427900717987843184205833253469671246242416124246598439076209800216341322055269294982945652063005461409664400418195702712466308344487494037025226655221971793067890789879507519866395650082684864115691834264084350629340075298875185935506681441867388915077829377551122526731268403468941131182440112891943221371167587141149045142822084374911401774447406714219481655597578142555967531251161433183949951254591723614781220891622422938694881125343809048773069188381458509284605353858262419498094838033202412711714607873851439681702198158139567439073067889790405763587461806088378099168654540586398871596146615511973066571116091999029430449462804451663312817990319161215914192870306643185140691045103489449396709673422583794636761724224688161183193872535526388327272573523243989613708336599482740275088057445943697108930879565730520706603181398389571667239390013826543781718769183265999382723476493205935170327160046909069496580650158202958508567430483239516227982603875538535449591890935182192380165170481593187413698053713247487865037470325463263530145025993690706294177398712967429455731165532728275920660851972122342371198984145988784491837972845600417940739462401414527543579938300968418508405072797832946014010367380899308207635232830502382266635820510220880997199573694310084540474754650153336764600254098097121744530028178575986660820179890187519698314938323731955852779147587789580161794952097041837759970018779007137177945971621727082442788998330034441505471967323422447529904593922794873127875734362500503583063060430715765916025382383763301858464876105858650672054404999643429304567496508882986000312799860681981196790930131253846640054498223017168799347842123446898660241456417207139393884880541649706369182258986611485292905322357862308870879488976167209547518794957964983072450299748648435821826655121356166352572416435273611810189826195105306638718739348467584063308292397900067551677860822322713695424550464278720644736317529599666866469586718100667961035008737434823874668333607268307866414618669509841740673044754245494316464144548100002938760461770408505912358769813931334802060914886036923833011684024060413075984538951675136182765771378780231035263946831227457083422263377417062538563564870784129237173615124203077550843928472586765689750275652806178127842522949781050763911641244600483463351980730112523330340583160329127779394292310392973070782648808648100570873124698928422419949799673736518734810896364841479244785901044582325721177569544986649922145601485625151136411716489781923316625812975860469704404113582342311387459385497411246780803163289034110463008146865095501136685751190185289193446704642904862516252159436469661027934310723520505031752154239190478983907752874723924009465979919312203236265723175018822268065770302768577494471208514081345212575288617451394392113630774716750981812059655387711350898294421502503084769774075064334358177229516003812293060794093339384230066566500737924927754405825273270115541139501304706065575943625135941161218598274477152605527396485432285991519112048317215060953327963835344320438373219727650618108819847188498269189879430871069495909025401066199931177923595752645165416688553023995860645495796166794409759106254749856532075025354876277487244953549255300228545646270460266479330165685369533632843084951938065972761234105064281341177819200262690477882720061194137231975917752941443996969420973906734441815003597861462398242243560855795266315481051072685156029718245999409645847483582369470663090794221892546546286312346413344847195784365618128769431876194883969261702986739173437277762321666037659176110083133783015053651529864470936605293365631842210537625990927179792041893281902700136735744873586390016210278197872607940896898913209101681999997659149256081099004971586422588455523055656316220763770992269275442781439774551149594908558467881353956509370933412178406123734417987049663438047687069543934386425467560679864221460240566179418760118601405023122754625094004230600496970243477323983229632631073293167115567941711731388429651151264369149702427836207627355198404333353155228427787029445794335964104341215392772136599180305572973821981602833647526030063838959451875242791837665776822225597102266044848469886816072878963746055962069606990680482072747616798849869083573983659951714309445283503013894375650274362746933992449657650832122088072307632289189661743940765671545342886284532660383779273108667840015658515085046738390172935715256247802429959457764866974945829258344658285213942450822438579819622184704300536471049981901015151980441323016929693490072380735119063008980655899302084562437914721835209894059938481020093620659336478351286738528619731811906001723459244972867013955713550926290135398638007165694326561195564708046884759259638979677961411536127949494694838986564016521356105642445208040738820853205089531655967157892626944644783696085613951665968466853568594029261870871081825845235506216903062574922230903421127810472838208426387125177311380904172448162019226395178487465713810284088743226979740342594911519010652110712389288639341283003910031044179096309537501283656692132089141885040128692610943829136352068654210492138500649941661648687990289889535102744551442991920325587519330284814791748877626257717852912152968366303972963515704547979056632130345607062041050871164188828361105633817149242767107614312482707122731954299173413030511203155506349097446724069915635025527249394026275620966130582073731104959122362532032223771803031757580600778333763047427464933556925691487486740669813618999089742289894828286837129505825561848133703765995316313924785317881993813991726480103458966921646433736542612888268649994351723329509010069477874754300590779514186711854704593678734678940289935399635312901476759738570329384940729326967658869920261053959615631291512339452227008871393894656452592893491808040706291729592412281208654329491810722707727025700351949643136440288031923323988454311761926714000507529638289156168499126520373469737642662456978177123767352632858391167192097043342414854987993705078175990793729821782701434032495837512589760157480999833833935074076028144549800598639896534275838208138858878285058215132044413899753228132316849566145566390977100314038734990841725929861627639138657897702114356492772402718001666445264987715168478904020131051279599515819682694313971268709383427802821338731042882979656021418918086324535271534523075959519164287282068805017320078539665954175850512663737145767054490931080644138174429484366006068253747766771426950026927120633829487612484526337651188039490398612018682335435126032596294191868659712108074652924188363714183524488081114924343108160175383556232290992876666783356989708648848867036229414951337696804273325539214697622876640866829097554345140590192275509552144022500107192123340746811091932510630263540327543741320072341162345091784873352606348226030236054459758357282585619669203789902706307955933688745704129674107699423303643289276960210116491977646987970704649080898528415637356618648304501728007353559781320226889502500206256859797063418081698326023967835089560589133071614655992321465451107464912959207289628121398867298176785528465806907387521636261266413393547311677770793354614591508774035028952644672011949033173908372012229764355958251395669405382976703460485845860721384997939124791177354220449228158375032451114785200298980766951387885404403460572816982772242302601008448564136629911802642722961481915833522622414134047628695535562199788971679925503372782178098167601758809554487863563330404553860770129669804678015529661263040191245494503917917269760987307212892704941242648439817776493050595678857994404476504467642871922361275803350877538182964920186373265121156307340829917057779351554405384826616980264923701197448035850125205851163678743656993677827645735726111449799230005295397674779982353385356378802969835322261686025455085897208798102510368057407924872235491420449446949978365694063666075783398753006003867206416551798249388510109623960670337714503413148547569502191197858570171977989529500575481058187199259307369053044365560292895140284902639117930316663765593386487045876176684114740715224423856616278519168866414550758480223082260173608781347517661635888829423140004602532011633822916424690913216885512421515274962213443059138307523166433751543975949470519468353786502604786626124707736268919813911067843570292567277170561497305789949749988219551354433622115568213270397285552666033768512876406387592915156989537087374678716521537608202475154801460953281012720920573794733560329389417132206368092110768995475175427855859119284531108578998387840987190094881128557275395948796325100854536474608167980293892663039460290993443855702932930178646818755833510975584190193543439649328105248449489918457944277684632662232056056682874450873881671359251011327014803563962289298799193486804039100074535297301884977502302088743876199714321306789854911083535906907625677734765056335746693103919013058006060227508257549742772316605619723595175264821028152129406853472350397771557582733586494654479067062429172043950567881904809888086950701756030658838334539284057161177302746924679411123295702530382255963749340810779164617201056139858139078842848495291835689520404506155904521098423937784270053250913109070125598814096681918082162126540752480378053532660920355283789483906523753882868289639720046513902468606754474216596096446860962703783093756099764262924480245258149151801728636169766513118616951099430138862152616393686422952355036742492527126387223947762109931834687844115720142924848028244409773169328618953334642168662195361202296003903894095500688336258459513397250870219133167111046885118114289520804789160907959694502222954914606449094882124498726842590098398448031693367727075757299723099678687619515796804050229265981012639056700245861825575735774643387020333635263866500826511189194953329680998756409422049038561001705940381567727924245936066061817941483886966768645097930307445269475697536907217398419399581563229940148836919374711675106892389616652454539393891405901140807905496325922894914684184735125048831820478569378534441925116181991016919688621246303446446073988197600171148747935437512358882874411431410699468929027727997631213158368680702755301394151966835213396028207850292291457782168356367867986420620817128282016404865069864451296989005939356954100286447421243011423961125468397052993577600257487007123437395590350271462984448672500986188462338277098687200311664139968287550951243733530681830759371535726136999805877125852746073484570423650474124472114248672933932478081287253457359871171302440194293927969833578256876910312035567878737143054466076287646437138967988727385018538958335289983438141898929375307358049733190612643689599228711927729529761675642591531096456979967626399749238232262145256084873019263311708744368364975152227117797399851159778596224981838575886090140005597787909487243876990127431286553779648073006507143893159583599172037172841515539563829830503657674186981854794109969735009035547325394552686258596822955335995033820246955096930910994445013898139098838328701120024044275120980796085766176801594524026653017615934561068386277356779244308029639441737607432399482732736499267254223638502919995089494716345590018170267191852005939327086119568871521670364479871727201018928778580449634455155763066313230354196467013384172604789982167541038194690069974220663070833675796156176214471753698303213054414079570512432020419302355621845467390118967199290720580430788122514300093191273042708675663900146250960290107892139172358751285374824591865828457763258077985034050562863464431264006119212630448628436640297413136544501598928649931612397767016095441629093564999309903327258997165256400732250531817341200626356492231801256859475810095300167846202628767664318691588464191287332811908049822210323093204040486183293157913207570048130607802007413902458296562586760283482256538923222516184751545223645038806567235358995278788523278509960447787894875307903380275798237047980026651572830041689675529904727073939644564238769617150024498538724321801673907258219525360600653751121110795186018048774565197810437239519654319989324842319232060125954808324818020098785458927078554061063495025799571771838068376915703779525650433059433022192179916990236515937527624153342153244660496851707497062194614272555621883026799394439215625039016873301016945610097222271203342709747898057730532777755091801159039125552657820050157170608299677591755403100858216746645617648370377011772465217040348154612810650563047364837960265076002579676260215967628932929662156957171105119723375187048531302341259319991599720191975517322186474491934122394121249427903234009048378370040565657566561584924197901013184363177813914820695204284188696212416920888375002804524099890524661007538553590758227505286220092098133005607018829112798987894405882062577721859092244013916436879398067881085478198251887774322182760921803020531451832857539262660209093712761936203182464945585660185222784429729252607575401896723883915568336997934074155639453505038352299811666500474041895791026184940606124054808979630836904674441895782067594356136309969586299027093151726108336365675440905113100826709751937052452667179012391436665846317956614216281564144619956332910833954035247238292199381516560620979931203356358699171903315435591651265607490375541888421822526072280174192698726148763129838812696880290767986694270837282206735580950696807611224339273505560401244760146797566987086466023182247640724577879205246236910046406998994761783212458184080491434920930679135455312852045536775811279687228787137831616056243569807426788315321636642199736328212461192970999137922195928399604900335761588898021761496627943764627959030445942353707986640596575602199486803296530013294911768263051506733501657566841391478143144253837885066960608259269367389175057142659352743297861659986393506180540236451110737197574896531471712599427667450484414829700249345314772800134989453866639096072121781691818550343136906929196431347646128614248971393495559165215341400566253922031282310855047041503801911453797301981759167156476291797601928621695278808209400999848096719182573603815395490037063068188109609502756680853574749893042079444967167596068455077739591175709630212548893464506112683349755679290849019318215791374694802344269542802618470287338864388855570955812988816223459101763367837146140844385728886879014847280923971995159689843745127931908230263411158918877580520392754915904553606332834969346798901549993961902931840077175275971504396961101424206086619263508977268839227101827271613992524151993504372584273534559494504338979200828345138339303973738676193327588659538550393843689824290053473326482372866357831146317453119965268817553949548013669321172179698614448286663085720765087746654182614201811643552443839956181627019224005801575324841594770920349938938118137907009308702944441712053180268921239253444014783233973787381756962271186645442989044161344914177765138443926435700704194722358129129661367363053764546002855466704553854112333649104979943890508754939541438006544760925513680162902247667207690660994990426147057870958692517199687646955275239939912712641513101167389536002053385329737013470593428991857041114809591603235143398698248248025213968134006406979821446207265064510078350982050162985774236931889390774934308559554284651790640395564992479911638944698944087395447089466711336692060443063357249059982043469592021940908280122716765379660936529876105574231996465763077051416972097788535059551043459557176594401792671208009608857203528329966108639492460703093467104387249263226170880749630057476241872753639868568497763449976743705492334361314877875874304482027637954453523571478844867987352304554865517389846296432903324588680275521277396391603348607133028326722851504634452763510169901502416163873671295292055987909411782934319953948082207457687221300398982868624861622621414820513874526250545397632616046595016829049095348060274607894184920087711479113106348934430301604260649415481494975725233414753808819561588085596179221974605739387468347520435858610826151835455524203912830950944001585575702258181591260409841161745287349675265044938071217064973063977506307580063866567097052286351666175902572692938710061440884647282942115468715295827538022620489354128717820827375177057040319151318627956940671559402005436433836688245519705299075908131417985528372648429712929410387581212505346802187687462808038095198403831590121701059000680792761722469158592845227264737419303548533682829306093952988182508139918087783791148153508334594858468966489120496228173422954103338924365650765876373302471219809308748767167895225591088000026457699668334900805953373892767000691341461181144181371767484087033596731584483420320308526638807654392613473473219823953422462150501937269202119970072275439756682759384577962982989161023168926795926275352325397094994972895564683807402360690160857381291045201281075376754006629323178056646791616741824942459041807351713777955793155161479854033517428057915905319505933470504240656787610057988310535686839219668668844434877852177623181492907804777208306947145250809844570167445898499947963318267811527679352947371308977402363895458918643097849077650302112060463921522776648550894566654376523335668916147145422268463497329605855585569834667034498395653328600484344247054222692367566715514267154648280404824012957854976864185548733259526441666868382153836392469906230264427697599489746996485164157272840410138026115116194068553477453639478439191032998315928806683551301620150346771624694714771337152031496841710974064045725952626268470465897972593584132101944929134771552361918519775183017431502092370860221882395264565647341871221838423379784147138782313944966501690116620887419693881875840452681922282852290999262956718749990751532240846504101933234555196038433429561407815827503946006420789558635853830758451671523488605049038513676022860996504703560916110993068559463718556723557383373970611726582727748513601649155552656697630214309175729831916753657798480709760623605070865937073945331214415577751237308807586627876153052888566858109362074790157554063021133303535196555291640383096898806253059491980856187913272918753095567790634815627390666089352792749328322362827852580584765398150422939719697848260417410305486050617930190680000077348180837963762317902823701184822837595008101315282239992446551986896667789928352903779865280801082021055408041819982399933746437643163638546072168799031131296490608994150261129877150280129274868764979629905766916146089858208340931885111742755819486912937171245478775106783364565720539641933207041334906964991845945874531905004670261700228852887614410845846210956580932979879741935398912733303620987941276864355844133488174852554332359421279062397006946860027890526787175578235983126425884309078538571687298369545352616815761970592515124562331197515523751572668734774218218472308361122883136377923403801563672708901763407417447328592950292775687310448258464731945074911870859080168985843006780443573364440807417463505761648499823554528379108654448469582826123726627348600491316971522196626319823838578642241788570908040285507925544416765735177591819424831795223568606948973510975418946379176598902649283556666733700573266146801556670665410106309360091055834264494382832741082223444502466540567359227492181921628118379835640118417357632848050635970073480272176240360866843115932903861277134952318516044396663010974895052833055040956176100006301068551742165846845619116454975283359543058319889631300404276839198800168069288233063446199587325767013467299227328825509126618330543542282649424325393191756574645367555906203684342245918322414093952256334683916473017691666065682258785290181253453485761816720358134962197806175345756442998260424879432433942105383289035689692697856120740563749103365109167611765366896791669217596385160569056307760624497036085221817221444942978011614884891426155372276005517173408833907261970599819361750466234546694690564869845967986683590398076261223800056131538477585178470781413576076458971303406872368103080958950066842830924411942270451702127313457690359990209798965290231031637038267222997982207872400575467989882878456278433075411525792243613565937504892680346629131313286226293750388117584555923222901342478557601107056544204698260620230656137443696607715899016840865029381608251077866788587995953063847697635527098411062104539998386015588214387744014709687672343793085168153584121350298137845690833295661623478427630518568404683764605478321779061464844295214241897012371076774152616469773763971149238705665257623578251386652788563850151743502641644551192095789591573607965286967735353918919319637852528755538701610024264824292143797882152725954205334138006208637102054429910156244953720935042216492882516049095788900282425706194160491169435808135648475978119473883736999110703262669569583322296675055897222744621373171077462258662109368924871925529193973184272641189173483503047322474969833154241833636730568396192310912395084896452501967470382468964169968939511471983869765974369196377013641692264562948994762145353855336249973808994730787346789188202514813291967212470123832161921873616989632632355415703136264060427663282138657310796476689333553029270259594411285232016403523167968847596816775358367122978487358514191456481913866995275060462507601079513096652028322593969596132454506786568580944088783381175423549484849689804001808574526770646224852623285147942433932682975594831464768975938561008312893709813055516649172645669162019263028323208302253729873069366402944595503368977971819301402696282603170989087030485831212040518762643070413025311696648925335347017388141071260310106967358101876250833745474326454037180536112254445105977881682828243245617497132922115160094197885708194542144173378575711984576144518865846573518114051348194796253239703257472651750567464479412213983884794142558119414932004151690501301284260968895088855190659148847050427033119115217906119550386109498711227332634102139142777306369832844667671896545009645690679078356882016208057988874254870486435074572813795844760548831335869625472517566146985422228356008669132137348419358198610859198749129321893078768263493070116823134924464602953151221782080251737443425126435867062640012862061851576195219542132120092568422781847640237537371680368348091816015604527633598128248682230821121407123745685073930160318649114594517130040786424583659445620811187490172948292089060478360704199775625484288604362679425176176992411355978470125559357821666286391082697740731647204851324713930921451717978070998519075679736781015642337105210371981961886162461248309203171818937557709485783657744819800624991358508115930467915738519775808340185516803624683823829361307482674696004025857999567624282444511202545211469182829377752888604368818164267195935897695302970682815271908115754686599193999646949653367033982419862851271210474220240634147940147269372733674015309286069110467549096055792446776426591314484675468359791207953513274679176116349202981384182402271302460931226881150790510033063101700199579025873645022107107041377915108710559266804915508739814649872957328837008681279386119940753828683051408005232761213534216939834474778752067963158342597383138628663402880519688394769636168560540129782634997128258100217154117025905493637972484921092856857292047577952506686900934462214850922341333644960020625862635755168764420679566458414325804617904365207435667841921688339667497977006968460043184801618212734030026119796675463933179690610112331270128737901719202195325035663665057320029896301726277910167928380558194147280082803016851566287312817746324633218109446506111358812329424934849753977546419047236292510227846556019693245400220635943167992749885662628602216711041152824816807125684665410311089559209970107571944388589269101407363692904990125630609750254162964657953159744036553830506325549772798793001537897022790119043811039662427387990015011983310953884587878784028347999402388932600632589401660147526728845678199252827607922044788744450162446424483387511604537376588092413661673996507939633639748373055933311843343409318622188627345625269505236817717386782667718126560703688356992465648170676655387727294021857134341063557777049357676782562085612486323428526867064383823957043173407483576486554828272699355502224953041893632518116054379710130564256258421715245626639717087634122572538956396445856429784586694759320118292956811366966970975617465877099963174600902330777156019945288725792677080163945611887576513292502908024891525926617194753681132734614984890712861834194583072980022328180069583678086017676551157111266623855098583128041102759510916166393504291732174433115866785647485899378328430332455210629446723823859557461187388845056665214774871896035230072371076293465796886604755919180973199487589349922573830850886441883852056489006857895588304008307494276985830980866049866864606726258779707284379462927812411318752548251580817764876278620376547081627421990680200765717924490731873275679035716474099492952185488174100876128366115209995594067625715268810182674967800241298104058902033319348610269650958489497517207451450754933162922234689437195518566493643475365984718611749874527559515591293666975207974460355032052175145992152026456738927162459995678411786472690680474074755222399475874496267046411646518098881780861162068766143225123687030189446367842515606996652185798244667647561745593781479322481431946114876587457287040265010212529414683335073247847778194906721581738490262268382037817400093929563311561610691359463711395164431024726895163779019685579016179438713435674732833638656941665189115215599573364110804077731973749222832961377359947047455755546433858627288575069297474038532352190766640148709037135705854489019448828656760138463950385520507186656293900710406140218960223884978358401997695479999034054469020812293177380093145193752707531068275223460447288359051848219540787078499855343372763088126759095181558427232176329842049266766847377001600347152272177841491707283143628531181123700648788897762841495693126559991649628242053844978924285810207039147848504220032298952266911702812493218754538769168470022390993156594534471881311183513647999230949252278385227437256789873782411975525228306417640655912183260125372638212403474465052237687908849451996148287912263212438760446599863104656823527299601972503268372823175328353041457614751263390633912963211591573873397944440825809927359838983577403566162929161151091483286231925061667656356777408069341694466253306301835476248693311056993096808104223065545073578593171914551370103409341900141557323065107618686416298525991350316297904876251335647278596933940868265717334674338661143594761189308992728519544257862117082461253718168329906811748946553553845042062072335134429912624346669187592745329449331991560742793456357022495374621048870025541285105069884097242358963473556038233456701483110223501881018600706004521122146870482752018650753648228598590342712423401483317797474982939859675388377057744243811925829143082514477318937288961444833833116788055106965333840107629095814460363677567222008185684514886877010659572682047936937022778085293391739418190551988187211814095224327153799713355147414760694424254930467479323688853184152859382256532540951354889928419547037291394155708653474573109487279922944723052963659677551197864384495729304504934702760640573469337439065679378769992395462699138293064395973908622469102121180986103733106845428331817273613529152713675422677110552333089272711274640788249104322992003200045950260746629034471509011647588872736622653379126846277282789450290375065885980865617137083805253826045100912616535663942736961581990974361362113443113666008992544711010125738706241824539397347582378391210320628171590233750662203673581441199608058440010809813955610771415252650358286101837013512623620552159358796942420929749471686956187182315108420529446708379938797179361284580871731238657160280335796045847018638893026553994469548096908382069314772922625872858981355330839509268750284115289510284748710336258087805615892318659437634353825174886510954948434485178723990934852870675863822121954945563516603632595613856411832215094026533394242303236275523236078683245999968135950540310279892736355500225877923256397602453402028180571342667940129320245824395238302343491442599478771646110428027001773842269999863768618016496294220042641417115662841800076809842552432857008249488991621929195205106228406962478208464026706723601491456420109970631073110258061860568212710614316078599501934151529221417184521428621537159150303206779314336118957305842047444486511399998474690736703478931980595009609684220002648888572162482944078304753990773922627303225635228947955434216115048877820201127048023948538371530402321545009039723391622773908558037116450404834066005350854906811342530521958144183867614306246285744477409070855766023322225802385028620534074778316837048694231190067076190918514591457414233302925258520464027881686761092880047007786057391068421513535376207801553187127526408836145477498183320802725896487687704726757927848974946571857434141058313561459340503181365948393253681257118726295558794328057558594325607428368817055863556950729147705897425437196114614982641438663852849569062280172745154156584756832901384157436991783447873530889732552046514096706643492870128240261583181814916034350877580907320788666868791617639711727921451662408294184719600867298471498787433408965883629603989137894833656843492028059191003474644441448384114173280585895708907967213796558816774250203768790635046668293020413950558984161181469816291290378995400589168394715732460445246425623094381882625360578476354854721854840515957877478849296939323236225675865791657763842119435882431300278023841466679240153579651460994315628322209169179220062459958757245545321209466339490410662918577862910246085863433209032711375986318665448865927538018045043723369753781889459071387070316734785297635416524505803360482245611011289701423940305051243044117497610015206609655533127782606136357433467940007436216316986250445863487709018669514986316963743692754260487062037883211052742026155828188053788113821266092827350743649767938110340693430267770062463002948280033760837569218968054316490922541819021243905191139628925572638553317737317201824203956412278399415309445079769313297215595484711523074446687256737973915174441934401719571627730072212720638862786809269494877644103481554435398359963816305652483296882417624758385822547974315425520070020874654266169965403555659562678917395701411440538132820121043443868426661558682590210673642914573172225006971286207318445324345758013811052836930109307595894237338359437544998970431874995264425933143426327618276643373909399830564236154186749811647463107993281483979255540106414082762840837091477957172305292241024321085619064480733974333976246286638894156194086788028605791687885767834385291331232347591237588485232795368307836022622580671789641126859309171209177817511931677227822986770955481282280851304561368717471600475788354271277739313991557947337790674373588748397592885207157906443910836223310804824744570369176372636238420962942400415493109842869215259959958210393758795933660203540074822787409927778487794578017360077466066815142524472110459641869870595129918113306203057792824935405238896748944434160062961398956090247638826143809140115055789154994806343324368137509720887076373476992391943576212186724996261369960510686165605103875713865120460755410549103550615377303154087607930184984220803093109717009245176997103370640798721994900752701103803159196787426168800476392193333829018876755312436852905822908112748791051353804709894584026722735683030745521413081938113578540956293105235420429641540865810987013454452685363670743558447403126007105230303544420304692985401658300693168937399549611919814543741624861544384106380122624121600845268993835705278861838564854563308738227522147657858551307426285577338834669442423247756241733553704271981243510258702317717315479080630823763222419400646173476971083603682526107905747199330971968546625033124734332454334707672089461953401259763657661587517059588096436593490853809787215100289279662838208120124763212030267445914508386792211071326055333999507540805814726864143781571668652580157231765113140962663052187483251016998777461766385747902177927020949304790585912467458296457834584286069620857322131063798801642968201808578869697679323066940803786051036290625642918097794007575580279561526898884023572753630852215807406169681228612437573909763476252433631766938540350010805447132571838084797172546606896363207525388178006165702131068529176518839478120828394655636605311679455455060094191673588650263367597414028336664330502373108133094822216654041134372552384037090825635806802223424819349145555394729069342097877657839050404898013932680745551613385429879008058574269008161427080788317136024287467816154110988225887597183385023883618588372463421386732719360929916081969921968569080803060338504465647594761066537504756902640135120376789730285149086974574769716275383090629901608465453895490856445415546185031037794319672798497053335267459383370733454572100781308632044755491363277860011326467225285006095071119845394825868715700723134049404604483353010602139378980417491411182670933723523048285231439461093148931953762626097861717353148168959213559309154670221747064752935025085487900075679754955656023737469644187986673985410205980698441334041224835677037929160491029850519032738762254782869754023214004866797116094244278505458072512562418652783786162196949677915334276824729710058753287664840543967793315575378352806940020339380710702635695468774960285272950177712063291946678381349114791241733944713268255992072659101980459544814101572018573593890623679114717943474107585108099919821464541174207365803434007929326228757740388748230045959205826149217623401633721426816346886931691336433077621686385404530426088211996585311228066937599398446735715376409140402140519493031704528989312215875793607076359289849493761510315269102692734045053269184264241303021602923614008275773241800531737560615681746027948383394725949171271606384017485402637183865974498339306526163043075097623471982990365570058714147859233853930734675538397537197074595819854690947817881157392448185893223980676673824291644531982358785383060419558555052892524088947334515723947795907407811970632311492697616368932852626509503146104903403975601770268598955173991717402398427176130392889711966653481086919785066170506211091496947247509274631486728992113627198245847534680448913915385399101093904015506023428760066152889030352211742325469359073380509650071800945437813437120911537331858949389391574629184907750771092913613753632956932240306887593034251577507550463337843719112608525068306614654754149185302709160459028749196949222000069977567275713980656971122640092663306787683065966075099449461906677972335962444345592425176393349937325546354844536991667954263239752324302943913044731606512480406160637713063325009726043405607505633440982703547055443152777775356602987060724248458504368745955245968010030438829196743008250849265873087018349759390259831856509435095138914432559914565321476136496816521675563025825397386860574367757589148050756631057834932218836147080221095237795203437434719555995545532417325694941117364783249797664447506753023233237900876549307436048646847397767592560811821212812096313329042697510502214480252384985536703412915463738549983923264175577294305262460176555124514747409617376240726859516616848203311780186104750403428977186668690630826700445727175110925897555929523954735085784305466608381253648231623253075033683274543477777207645194342384988751543803306279620393462340387052311362244861633001306427692665592602394198162833135390789411240781451144878629832086268282995909450690712322804215269732793339601212562700768130233632815974670663587272541066716311811507287215214903407983267997142197984105974710170976325632808359440836554747956950971592339710304975431512147238730221782072773935735557657799349172796767771424764808830991196835781468755354029414263784001796649656253074590032510234424019346917607904881867669731250552643271060980889714419620194925080983406569197375874704057803019502117614053977726249285984442571984674501944761129299332705102775404159414061035085643924340565008637029030679849848106045286079363994864222400058513511802981331197365786744497097962706210282714673212189565228966553544633830354387525796120152699830721584168896635739088061269514272920450208134060571130826282633018631118103511918936346387703262858346588778869213289100748160638322974296363571275431716780764608841995548071788798862598563924057045706474654178463605945805768095728117307797934946560361185524645768752948816669798738962256885053758621201109910724190737125442475339785807542203216307438643450392441416670898790862596810429393613272346537469115187099718755073794879363036778752054819677402457523328479200739994646540628744720323580186563733230911390849817763820281871104108553203848824251387260257143277359550749801849856608686008943573837486550113231646613598441573921690218008570637793879997138935708730137836989691486325621945184726195750067400915264875632572610598553444430306482971155604893693795285513586498809402632180036929970808602397997928342609941317929008433103423900708300052174737091110234511479447115787556444867433483750512360354061721033030095529839974635432028609272960924863919650591080507696028477777389433934135261336158434023211245762846748358425666429233201668974432511150834800167649804922096007462488318749370801378629282548630999396895553711709443526424431894990037726569954719398300729474060148510249580337769785506870886343475156312553247701788463359812892966224926823069085835953700804292332877315494268904917795940455042650725533961626025208064565426367771133186401257414982681515604643784111483969054417909653592856679061932351512968347309850051147357966372527223785399557491874615914400576069942000646081849156170156275258274747506053006503614806110227214149325746390412182584688366672549794492832207750004271569558363671620386278229150199308288836315171104778498452006548021725403292635790845869109238618956865342162706959433999108304358290031180572577553651225812526477482189483194375691460311219874512710725416240619079739141033481098874125387387715011891551635917604821378974096767963678546006061014323576893454140218802710662080285928408289526095677899691473996729433020026260424049990293926270808810265132923916548699887740924606963485785915421521717346550113462857645819605720813711866014071841805012235858884464062777289825082277307221175215362213517468052473370764879570788342515686120741616904944025813271062104798562116133643284810610314181969031054399032474837776635823163049922509766024546444049132234177150333606801842807492861644481772009511475555730514453603193588426275555546418985873736258837648357078268026232907188093377828611116868668122708835292287505716147640003193503357111463398340000144521498082582493408100275027579365666334200099630240066471904636885209786409546621627509115442518796780301625455359354825417755469026291701561542884132377580241431284586749832335050224548022804532042305141171385101531781239640959520975895539811931543096865958123745460222475982841057348208930425773055518312565636496672928793940433980336361159897572088092211447354738930704255606540661493389625520767889203958194413967279368496024045465332853712844097346887547571919124953801381976992633483800165790892481176166484404828627015236137446559079105944332939243876675902174972535873814905926684444521526714659420169010686716925105931678355153913178887714205203245002959412292707668081254980841678955005076819945117723200466320764142885302014891416865446423397841256137200984074317251335709821480721084502010734144328751641996473712322206067486008243973465932693745950269450343642559539029226612487475779211288841781694304657801253618069737576199111655080381522756970724706535090245416410842842780617766773382218414889727426257616900081338816028518178555954149092499778990731285312210061565262950721393267094235194503072126592088735627046528147874046434736871629473125353505990903237717746401865657577992917550928965249965976536834205221401511898797752292440782571754756553577523071708542270807336587489248138836277508136813824161069975501266440487762244257461291087094189923741776112597893127153571084537009249048232875987429350638707959745031086725551632670435416839462478228180695432973457295920121206148554187214379323490113433026938839037461532994282223413721605100230344362578870062186200109811555845904991590673068639114419876344035178293704676007552806473096917545917607211103228556333915194908689448901355816782732539025944080712150969611212308929051906846577799666587878106502115407225959709522687641661178716354926153690849341985890359356430124579997592770296889795030707726890789370819940413662409758313933010736916995014374643607133040161941843860649576454613480997672514865930903478738170567407457528014047267544727056674350188922838991599886616094764638709420088955098289010126544260741906650584744529570879961410196338747512330624627794402870660519774001299309680389802294583893343066515752920000097304362758896215979440888833472053373379151443310834476752732218223199601058798225674226317687613807050341834129386111774188597566093916590404068844125336388154006563871996514881998935237308144689030951377073912173249300648842427615153385592567418291193994045945773082288434991879117255852822767833307696853991986342809628564762296243614251474223550513271645511106111392213200685657546302007829775242983048178061174428760931266400260069430849442605175213413027620538893229281920143867053825626306087842887708569752281865845783583086274144021056076286718065159914615671185178672631163404366484572471139639423585757873980482522047248317295903347251818232978139549350887481297427955640717477332278534135645243505915171544085739009204610064543512715263524003110708601179160400070446281718343886447528882633720010927574778116155910350631834708186327165007788321499031719992578978199415550411544775673744038995109217074896924479045300378293919072240365736513877597401512042344185616009867325930658823996123514421494805802370702351391516326798550215027555609651295998963257299325281680659264398300985981830201764520052596105729057344179587906587425773165230913303959845828655806006035876183876355562703532578106165455662404680482233350393757243188303683919394629651413483268214458822204687410476618472388224545864839308786057457023612612250513985290645869841382505522966719345043918790679503537306389620700371863964025927719090978207236549520929062149200120668384041634185031569272204475858731882160280602604192028720841667910665113977972320379620054864138930151197810938612940538647423827477873520211243190628663883564032591356043856700022885617525165872091262912664083089138753464352979483224430665573089604896943664296712101513880373588012915522095597059700270973246380110012992602444009854095790299244457763150292202389961990854492476349023702761776247602321820011559812985023489061140095277342092731905820493786365933483606462484284953749965917557345160432669693338504125405785821825861532662891467301954419204156657915291103722639058509500232193197392404097737404147237501800677383401672186336363654691728811193665087402991152646393082473296225064070989482657358397446976460413006092135368004877440568974358592809362074857527790464847742088352092869710554805518486026692224721393200078752576088922350961983022324996065179990287366210642060393282500910232913491237924649542474101891990624324985737767771228334390648692819882341855273877169473581678394018172704790319718464745689994362728645920209600984195155723993775859808031853608182668622412424568140432326898987801278563209345888987604641309849784760028481790257746896793622706794037806636371950625377224631607284240857670547391312571147984616215523128741319672918163979167771869218295316829293819668411540258620767273074809673299206777772305323535356233573903257042543214170224534135603885164710589957116432788423835881645073115512621866368709828274573644767044634675471860171567782665252130700461691082887344633728376432484412871578471289705971400148747756424191094869441355455842036378679977294771557457762588409623522792576748618973324279549119976771715326432461376288452393410937313750329195936156507750303116496287574677107532638415744909372267310333010506090908320198410925540711734589783367763304505883245243694942122826980556164086034801113606441209873325173249675625319235578783603748102437668327261441843944756611699288160123708808961622539128369125118374941655567906746444388955767534002359797332410004282569139151896556885009186532683248307144026146320935540479818323336794183397878119880575755656743403953418265487531104680892177070728186344785763401480124312266405042206965795151653769352331241640411613327256137773661791269915069113183027025619839118427943578414088381856682717390025726647909950261091631957954215131835513266723389662699761221518597300032047440099296407143969491331900929620278543532373114551132203102437410269770874939689607502383300579329452048872736570863531907889029072330715823531089779102807816844853318094185570535693037468095255806944538620002820430817421123008105227196544567633399262940355186889801647915419156678797975192204649100654038103656129420110051618226366622036846214708921393229613137356020232206490436303778323287653539333147174331221055512755910528806231645108132466732228028563903101771989908326178905041195281403433514519232893813949551806637344611472724415612419519893395186177429232018258097966880179614071115640254656073282162366014206638981760885486086843426203454975003990717795114318437099058362716665965137493025203348838426603808616206155371019141390085060292116928111356715241025509245989817991389714954444668045531956113891615142005946300016407492642020309999154195009874131177293432227059013608178074948359928646512160023470216411764238347617371282367126953008966917155445802235355722630635402520906029964877842904522883486646754399527814637696718796992875219188479519080612345267835512775091225391960353905325016996645392739277804066645006935209583722884647722970768148793425787939789141735629717424087200790649695408854856290884531266178869991028511356780128666485941780314814299045061164061861444668761901513683477921982908498883094061003012765997422876413958122298723175953325257115267993226638342303961786718487636470481265640038550932369788248812124282168488472657098562635808817589238236107000993266161520841157512117299417854184041960463228594324513180921714167362260644039784595745390783861916224833964371755099496022076499230847721389034990570053243289368915644251158737628337560585540314832358539626467804650755110983231133145194516273554034616418988081496786472692925992986008971670272177932473182387431442882351978428357595985831396920710780306731809402176395902101369548662539618807954941836431547192879838185392897166779242255244841593709832306289356576393047991971524398108979078548708211318372465668188623943403764775759618232886712182978195301982905623435767185003483664043077013239202488254645819653677586543355840616457914327742497944568254359263882773036169186962603011316622362997104862265689812298301400354688889779881197445645520399237643068670371853204141509509127581367332590240101836891816109529277354856055076930204063514599076396233745782390119792060204205691865871280968487839391846703745286857844795621458891917401724156575313180976949539175806976094375863369170708982137090091883535876920108292999275211789212801048073660930238998472420137933272775009380936996506885497705501253808332353597226900975899239434266349458233525724752077462733522476903249012758226328369593187286490119435806358693108135115810325564684034984459228435170680138189584989078565400935450249203185841586065551971553860518753343430159149456086120981944676039505695199148912026593305490973376428679259464411531876842131772132206842423016044623515310032114921123809560378821504441673319565387497447726025057181892577999411298165072730679582683403038250019777489311410407229707232456230422733411277031774045806657901038468594800339778997758658918873623713249004928583832230503814758297588919534916801389491301784936522622750603338589215023644178986598262115954776050223797988280760901317142254062492928576160875038683267386900129517163640096900196692904978972509733556830466894942197057719841247511933365950464194762069156815682254686802795757566832014041066908136950701712850350821101317300803655253305551894495147260735645090259293946527355833646900486488178752364855873185559545086716564849890504876944401011572898985671863845133985045540815636407963759713205928398758444729715330075126163888208296746011799694051624752438113042193138858249208974136438502950618981929640523347177037094298692790764825922422113031286548976312019844806911610769821573803228139532831467959103179660688768351708124854913084012752478897512510418998812407420736804964627861083944428092481655728073596540107780849818726561121402577509745617062907547273054086088654176390578112376671071900536050717312130152783642465941428458710396288367633501746409375308008723211762418284184239093769126231645479397928502264876929926244909046414003749380729340269380557940196683743979140757279266636135507314078220613879742879475653207928977718387344665184704451910438764544528730278134149793767360482351468682081891384526336151366370035256314631426889892094826608704182502499313136767040683368210953336520543178430677012522015607808789820169321005714590954642156080112922231089587227190810144751864070438527198495910573674968777257952357822355618958662073862620742778357712048749195798337232570389730165545026065793318692877808071537244206185539780158791115665329603046964969767143677953625865013187240595016672819556541122667109822553787465877382647902292133462980162089707540981222439054109434749021153675146775728228047096784049945496251495901944451093077298678757294874868080096002222176177801921493200562709915441213116575416673057195621371488605036400695603002655665943820627289027075630298888434804530267015138637786762519447471240511891210205865256814724631198732840559326531878170486754705265015123293708704975901718116874584741060955074817902820189521291033675418473966764409181914609137885256609785114327039746268501515902694262963996901872389228105864880436518466286016497711344482782328680194438865813271782512986135671019136929678179667173094278663939224625645249830990892887386182504144116964022305433751674738997324314996430305906934062905966862007579243503782879422287560857632264537480372053041619304677637405923821347213706521695995034487365019007702190375711785240229326087909408761368798260524961160634190923792403692524102335764777423544091757022324842967911454657025787857090528874782981465704313461091254227838913571037157304510393179721488649156718712080085104689137786500905164000786393000182665552869047355555563495183770578419680976594263872336302163916103865707176220001553529902338703852448602563690620988299219644523946802886212000889153121996630582530651311551621783541534547484147448694642095885153872747411298099858624801871755832232060409658676773555698331013273739074969380851443204329772689436059459061761006879771968077664316062433296482233673896753483808219531678228414934831349962572951847149977535360252887147772812048906470422213973265050018400789550212352885621636534429796551619694959888293479339237424666628930076759504735117883698728028625206351440897920050021889238058145212505304245421557690121767640231239224154589703765413011224013297802031920694487962885193626071008771707626707752900010723794917506976862228890735918167863222427072626780420518123161616140633021324903944593324706965455807391702166918988797931742968303584497884220568636383148455990056858470764093729149133326949650009923825199500667486921409479201493255839952771228052397423216286611108285761633144434894767410833267669015829374681712776703624317191958993336005126151278753840222939545042557935368832571171174240985135725944372700827061135430890802043931882716683456764571099237256971904967760979255523209716051321955776736481813866317156707897792834018778214217018434626699617165988063839757046986371526343724495167787246331525918379066210155724791688361554584995577939891119074689280221047717700724181860394685260772058793132685873642662589992568877451988297592414460142170851970658846805692259037432817793178536839172651004671819917183553014885787931798330848204178818590810496194895324610776150479802123798700303445757652368828229795682312196641472403331082449801960588039593893869063896310293859823123684248507060233241934958563070556519103487365389536946612207971809468498701695411951718981544248719828468435534813491670948081840179073579105735536683425977245825557509317834396063968966276866457589595655187149546424011693817944092175957365481415792970275610331669941014906529508781305452485601328871344801123227274526252023450411620479902373445917276862515512553345976861668599867897603161172160898840066867571972619842676756379308768427466472273281860804377599984488462413343954891316655892870492907881577366752347487095298662008156092762966617214898690811305706511741896277377376446874430615769897824286976113399869093180972852912287257442048919026818755246352709535080880393291050637511440860653240865766257634904311764379947363911528747734980371477904685352978528869915662797788188747385631784285627594145164458654331761787768600906991483111734684239750945515414018337617610336021394239723121937290848692640753046491785973789178756775328592041196456532840298031217039727922476480559868005120021885177295702980327620196176679330332515779150394421023307397498050736805194436960711249405308836454935063928863942835303727198670226743539614337861723809287743660480019552285378681345643778023285500418556831692237328178888073794190426693031946918332980756181731718090774933955148866821905730138853711706238693968177035821666346835322046410236578655764528628651267552540707009019622849030521363200145697175778583090302504342739150485932753043703198062743388389327261269102074037592110646478797275800974061013029320343776662301801487611739446564430462666084620698713062960495672221059652080146971634374752001717301287283181797005919785485280522535293362524786632410906061297527813320519697636774203151880459610597796801010326572756573687580850294070614256192621859180457809423265498490166581431821445145312330374358665741040830347792806493534050738684374044874806489031319698590728977946804681865272389264968609146194583127515614941718037801065060433384571962226831161273633625349604282935322553707351883889359967705321920766979656188738016505098800493457413399440779557475809652144374085691345465746685095911874589274254602102167204741846794656362938495838414371048499048170090385693289809239690157136113356879909839063072633223485225066272306621016010325395957930656638895194327627274236833525570066373228356887461595460873248678872752146346794676912260268016645119276165496334530512499927704928050214937697725904678960498315466816063198416888116577204845777053433876440760450300779826531241462053972098988904084159805395387937128927535566759321109043644360198358769332782126556614191908231234098205791818771581328529467445384173846180653624490362990705198773734107898881640337822762914770768064459103872680294357471479281721781161588624413661859266173438858276140091015500086671297928043982555743481163095431640407793277823152926033772474146796780129825032919752335976991674457206824561333505041996084288709580353443213651128714302541375708226561881726956031729045349800803572716485485205102656723736684194534465432553982918996624160899334342913628057227713213701168382203896614195610981245951711827545089925514081786025868409300782708903014715026447956400572685932109938718483405739503548577313431155411944416640188072824172807892697942552563668368172578968130517592266157775855917133508827181036079038478542394843863669827836093690399190473660868690539423960560189488670644353768796638469892292591652832911725425851145515268841732125247910914592674069433793867285954519834362548919222683503645118543095003892581164580704018159678636437386432140063013145024943973674977051711209218927917810734536508486490982895040372078452581838066620321455946174231845047787241731591431241690448819405665734895777606960076502984239015105250928508235630116334172427481491930962556102927599212931167153852983256561447788971615976454201444608611446485865794493800498933132065511726871138922972779783257689858110778325786962862457660145311557348020931612779097329660770191565829028362000345893492075500891983992644318218043868453391332778664291307787473301507631161685795930504295581834535076479953013638440660335822885651175101785670844850500943379327131131353646540142956995954745553257930491109053637890374477816366460829924478758546079463301785222966640192736927882122337226442107433101760243772904158699321324826847259206869167057567830940912683836706625505201234976588831872110795789394654214044985598217162047503759955611704379467582935832141955240544816190686999361504593261010519507035213915452563683551352708754273511438274239302750563661556057338672206173023488172572247129923609788101630964567565467322871177347300957158777350406974329151117666896793785662998982472073251800700965656737009550623638143647849768231604347604750558718214615298315843390002825255772770630882891168132913090896934923141520760150523203735218722565217061456766315170653003374900309103084129604329759998153680351330476112268593557671433975325092535851365905108990668346629077840035763554466254045260136541777579599948168574758401095991245254035421293073839871479462746616770025971271381859025782275075792484796700652713927077972742418957500222869520200918667100024702973769027106315412466481247088651972404480618172157612569075497198903863410130267275812417080134454255297638864107549716940782261388068621853532206562311367634698411362013814697010253372576778436493530491937108309105403681572229662127322088741791847701968970528477049689251860078515753757246846107915877325679475893138993793303554719305094396423991492647062799430234581322040412678452455016763486390607998894328073589817810254288367973589189112154320838940157501496870308810006786103479876645380344433594238018964249089361130707907173686404062844355744365476899553841721139699898333619687579533060009458044981171671190125227686733491547608638760821055664854838880332148017442852754623463983421390127647131509288420896746164051623005967214737370142168491606469736907059616008162673033416855614337865393647042595721319267948999440145370294765221046460945733750448235287298059227631757787742825619672106788476822584636091769505443603321643740300538281922634713008355367606904535798078261982367916180923031263814987957895550965677357117068313873692183235709243693872555536022523977497143204669198382976655565271777904690340551699049964246686485942735067764666359643124047239341438213678089819646866565405708165537351011648449202915838857943453587537437889831014243058076631016069899987134950071582749366925521548936090050197176977356238837851225956893514283101313583252314745559318637485921515685332963613714645583569767287174568229043440609907850945723451194702374517154265810020551668212005974039835378300307088408794607539119171673439739726856357293149472525386572497745605893513520428748465127311028855443810029991228668572894875723449031272399249587147014805951025976098865926928586794444652750805694611536743793207175656601269573060556328819692474539725572967068691155336517804526327118383489999421235544395908494845691047288266846515792586935205494323182172477701221129583925668743285515800428927374945444909040126325642086329283409130899285471111157356376182379467353073668454337424140288471596455915634891466504562625299819208656098783894074938883075095112581715484445228316500908218394868174613677111574623892265746635985189009652581874228949453721485432072669268475584639575302083824743873157105141858637765361879697112627681153966365045599867857489550034254803415025563459989534854572452600124871530789360135376131080729356912555743604067103902315575066865767481355451074962236285373001542480713481373605431576604730293271535340155504819593010882265990205672453951189384984275994137907376413048966457049975280842863043568575711296670635094630151363576838677160494706746291421289625749349030929246054534732222111909186034931095294814186638101115990752174553488200545748008290954722963751487197470795709256656241032097128605104042463595107131052785587630838080791941089773994690437881502859695426108694430388718572548821091393867272761220542139577054683844011921203374914130969122537445992502010176590497483881736756936143704779958699062242339511162127938594324098992047958899571926049022374132000551362686314002250517767857304071289071031044019281342357090683576259698406080818074784885390776889819365892002690278138091360039436525406593961977729372161846813215352204193458329322445405115079412176191168585745497140010138891272167608426996624947428308429176821498392831452190298790936229447849661830280689055625697930760630136873929548021974023303552517486889383561351678645756060960664419872557078343873832555043493614302637229053406008504614274682750073623771951969335135592979778888613560601233599710587864152093156235100822050042781640915739711231977203655206566675809342839068059213824450965204370852337921230291206148878788111394238688829688722673165903556872401149694831744449647510169932834587705056325475130750056946874828519337383904061879327269325744805269369861988833210294584476968364440793326721375057579720930617805933029194308243288248486536301332100165429145220414459249388853075135988254168353685624795105870862910554858718404260324082260087582958786683405913540794012662790806226832403801255798153779493599288966640599682749029701893416523672661064277229328081643468048700099087403101805234760802050115372819417479965385719291720853766924853434325499570382200021348603484701253673436407053192648826474755600599926135505706284830473387219829974148585611760967064400734854423165224154451533625173660086630490517167918483913234061928687778931355547099253765547218775551982144503171385239083901538853027820543597942351519613312835250060383882226972871869529635583173598503464923659061741648509327031278255245498443538420624502109649217804151190075417659713478274076898049018741255115355850158666475916275867496480941089576649227993652468850393431793833547145129200011909362260729755784448897727266975703397240032653749396228056172298035632180861946946225643739001353587036462258069415799440114419451126780532992488680137953107302514631054234263233925339402925349226159112421703616638130656217435723707641486194760880648726492488258175938561049579621471271310858630583671911099769560587890941609933980011115197098251396299267849440250095658255686464544164144446578920793153508722514774287661001579170499679763967798992353961369824768928212248850712860780504587864188301588462546499058659034353728189681523881739194829103289877052946096449565239102956177244712105882794136760172845492382592237972763608637435714088089082159839026241130393202005993620646209738174888406314145897307920957523312030359583031845938522018564313184606424502844129568272593671142009441900836260202076194137882812535524319146434432544154920843603821574226877243249920493447770415763373077895156913125913440292409314377338029440199449922813790502440025819153290094852337145283933725222343346829436578829312608606364254171279521186717651629736474074530853008202264044728574387337151346758136668071751319649973340615914928341916497161175420848877792325711329308220509753344005105182088268706772399426023391105155541461996155304174085927414475888676605009536108951430713527068131694383958505055424705538277532878634069086100269866339119134576823852003009994128810775631133896908402152892797887018283259490772829942307403432982171645138030682437455367077937932409053944025400234182076817314326023351347038379135263627068314782382296523942822022638041888123114896160306677006090077996424056981392713635276377444278495952243092081844588174163803900374606593484872605180742922851018355811670309089101251980930515760228647318206263669972110676023894416541607917479917655241727871301360872248663137375873714103865796678371791035330978712508109230370438699618097038878411740737017431921623774366612958788594161600038198573003238360892276509198501790218976775173920047931494570533974164958506801462290444359710736721452492187594537570522880157009819901103627596505156393381509517874523810328284880281916713380608648895567379025832136886117449211496260183803294175710532520415642521247710746322406349787367375020807300518334407684395557641892694482336182420931037764481114492479488653261971046483279973548412434197477380214474888959615989483546069371628527697882100586356248474175176688991413416305939253933305676383183582126561727560793445093879093698310892250107215825779025680957719784398555576880155651300830603405697827320293527206649418874707187342825608296778583302383276973501049399054888091082194528288406953655776457070762251279483314432741136599208980965218476323900977867342343874671323606846940508326645844663772253487119803070589565333021333785934570036514474413652978841618785430308274714991501481826865358948024132965164674375405135861445130248268490476774538855335531392031063232617959416323079398949152908827173759138717611105390393062230665556471936461873796654827005268326901587651374621908758937964317786419792575510755083994226107631567287968159070968529478806650435285064933646036063416420664986069257096732503044558144282106780999450544188955414989874841954142322630262498494132255182320622592838438923494470335421452404405832790125974517279887426063294454816970081787599831718900929014509554003401275613174807180034054112467512917216638701936297916906672129138160560527226231580242347494487788005494506342706692053083161654022047456177188131897322315447835340175642666020267866433722749895252371796933878248905789015856773347270827254922530450262726511389886229382171385411034203746115407867067075177781905715537520769964162684832077317933694833304194510753702559825347432659666908547197841980852575793737010851397223282544595848446326677862093909725759770740106500569111366321809732900143427716143626719796709695198230240479175686287648119970372040252352903720620146431175128846784319894682161003128430645785998802429403586966980839193507658706894727104705073671389493147568183344751966146316128005400873961424969123057543163833738486781023511881364441989803136839347167453280404937617637394535832426003953960887708379100425179020895332650952163330319437631417091502800193626362809984648851911825543703589309166657056063426401251850582435742190645847721618808979677385795850358403818819936720556290155379158832145801000026840049278761456953534856518902066441877942113924992650405104178036989821239302591278793653535617357527780352229070107243101474855708720964763738071711086123831224153548376517087713913013009193207034452776320168122323377531119015685983457118777565254286883655373287811830386537173687809513005064562829417796964735610816970006808509192629247369646740258185905368342472143496128836537894753273965858213407268445654990938890671906947331980765137940670845731438183122047069090964298706404015548769650568990798526686601609148928852698956854523378027648227056738890198811842026546334449491221176063825673534458130171201421290704346503270243432595932671235461163029757868004329702296049336928120755407238898302832387847395516816699591131523162052949164855531154511185499170072624561937758006420803425441947437725770231703505673144165225222169051493306895099073414377446817590301308089602935885370795807606256775290037950513097683534983011859743035835983456350083074712247575981192979171884905017710561392833916259389973948925787446914557546092632779557157167498729529293780128578969478129227447625129168510086267584123413412601303088735294026669880156145900256748430354456183178217158306961538101735957581582912867913123603693069751265125360896404718345822096176262088390523565230331143314918116854082352960679712360990160832398478618709190710353961485338084807103330953481730053887217739614925336719322497097509058261242272618931083950395589184924939778898996297754231456242175654548667705396593064794886658709763578209772151066292840624531110575494857979542576514435389535711974715437483534963980175141106327504141655322849046560852161300416372547187561524828222099721374694427563898835548158597254128977538623097607096943330164410173383634831496187177585287616927629800013178163653880813757460248350231601798112409243613444432982747011586155264043647997471334928534095220472717207108893515310374413043163245215395493891097546809874044422579532786613145441999570193021690992846725125591280961285009511450349431006314612661454665625026847147518296512948960566025624460104149216539418982865464458918628901425854352880884440824343324856809252061915768108350525243462304646834978908865247516130350835073266096119950274775484637966927663541475825950326177835954127408691353942463818946012903526231698575597829984825521587333556352449157324551920073244750548179883591930125402624419329098764438753907058126883363604950705325654115780499747506311858014005990640722747879340426586213012369864240258199800606050623723514360043562857978259652608054340852839446516950224345784759553095205537382913791157860002152455533760818297452641735335521574565077847088874031056087420271169490279870088879705504204101797430720132547527406902373042081755954487195730850137243164266488800483882763992228724512369854702095430395523806186968938953275524909802373974107356749810698169170955670324488464134228002345943785086003297917083239795525387590506310042572778969945794234543585520892058217076342428026224098495875089137871671006653256483755604909947708524394690900704370557687681248427439784058417887314034141310147506621082579521293273842417375248170115026471852879516426587630932521641244359388547846565308172607978562756761017846057332117345962874694858655937102794508314595295808727791491471560276317335265719580377557833956002852493862710647539425125227382567961581311095770841335224967788774533765132386001886772691044904786088855065040778660098885542841067561467709864741375822350195190158825737063497431163330132389099044335349974268370602491061915395413055444499515507264813416491110413329017196665922837853282983363001686864904041807610065830110837795203804721480693917900114361757676411147150877864224708950239718655964420344463343132633508411106445197450398938264058135882635208161267742993955017046788083978240926460390397283433004544810693976941146107408544737127732006559782644073374563704206255279406631056366368770617274677128817646152889460456583106595730984945632591376086961400257127298283877916134710061216598086314635289572117051650213328729841381288014944247371399966585724867778635416496978695107986146185047747937250039007682506759776793214740902806743393556303762407243346233423551480743583473916959918745145533081081495613838957622267111796270833775160252966834318780553612513429098795111523729341123027795616951602059042048224937458703569842589619848961317646143794130558116914139195281344167229126594113328601919106102285007856493960530730196213295150335067323042555548047457865687207544755144826309838693835606752383525825188627368800094989441879827282653495956688257831175347003827356028300818915973071244151835839356977685993175495656941211973103399789726178432172619125559975274994854218304920124128038919182083711863073426106261237979399591592120580171034825593082969979059769599488942155308113717405493653919900261680834123219974378626059894125637927549325186816778086820119706780367747042653707672676188739335608648343086289483338109359493234979328354819698436063676484347042496535271740768250228127318421846756498736482155942060017663036150572794351042705670567491122359836143052870133265741435535230624037673032477689086085872851667085114238924637959799785561202374487329778616045549027872375933246629220415928004474121513656627752898751569778168337522174586110658174649629189105771339243932793701174932669262562491430585419445435793632061629045566886971078993969104250944255275554346854052964901010223643723227896260922716669641085172395996303801959358104884519908838587823113387070240239716546664365424667941414762179194851012566032018805294300749843986072554408922017392861532343034693584648296820493693487676813791274458309231434578100770979492246705953718791026238542431352138466851077668685358870317629115561921380038859466518279672164050229585589672597468433033475378121735412024484099589057885831225904220416868393810292524484690171214862786803252098523402679792251454713031804377454601507634227854612464839056971070186089561582788915880577944617119710963505055122904447355217249856086911084870017203220447390237374653511800388306078796773112626774569521166924920536898091495757844294792708503264447283925990873938061737642764779762490211733440731967256433098619122196145812547172156245714333322234411114233230831367520809608859514505623779542403898040143498419776119700980407770825699693436754004079676608820068877933510216044771142527050905333006096018492263744535123376840418172247263298115204212062860369580218112601868881923038377699426886575178376418645947108165032961138732069520341156678999662553458546835302048480549670537318753285261422568982311173414679689158130957558263872825482349145766533198431065531988987914468762421881582694413439168589451422710248825408976500688133004498579304253966164825019826820815704235610130160176164838248118059239936381282525843738033421186204295431649950066017748414973111558196053063167387672146683174942361416821212503816536246931271637456548201654836241973315571737217706454126579128247936991881785817968163824949677930808357886390542412391726606746504991554158916852716809633227915523047643455879816661658110886460032368290878900276134198910582806920480920494225988446693151879811984770842068552295690983113842891167641222934595296380702681043963207294067540828298342713933846945158186411346094491233947625519018066660810118118054165376429527172661403194394302465917867480897301325051205199807770309877112820426951803380879122221914338283742604232922086491123196974997661611635746422766302553402550316326133177563989375606606666299379842971580855462879525682553648412035955044119074857739709168884766101927176617567917988438070756548580970965599594960348817557563321528830937890058784366616582392734604049772443605672463846488126102497343219489999348914284173519031530324830114572301724854564102525160081621403102684659436857794917967297908470431894510802164996539362219262346670890899613241406996483683294414092499271038539485964025043514735787813124380420263577208651809733320921575725890618789383571392178642184025270565507257754005869384044904641203620950888366077711323015483258282155490391490643395651536104723705813723745106507774817614911501110487340275337535973626681451118630205582702497290501888391848442261001092362252851400767642741754366200115064002971713093029276948189446884459162312702021676160078812659158876599245027464248913532974314962466591968190615375742900215034189538168072326754044816413989331692153742697626300150886293443890613252262483279954216956966229449569601048888030486002947677918057290101873462502683816029423630353237184678287223943913497880484042834578943604990342696495607199750365250586638124953521846156429014113032819989374458772553034325945003153853301007157366241788709550033271849656866048752500808005491635793776666173739128836884215855168558535251237327701459057803148140275754654071969490922726331612032369453424297006256248464379533485452806463949904347709492481312159531330057111243953136621892874926104931860141645909131554173900808922761800176434000194528024016993973814264519918957713923680479767437840814290982848223937305871934778919701608060615133081480209650994020397183817233332940597918686194536827303267165621302097069604296470561462487038155898677850609964765051581372021796741790249798174983177780178543964510388786864088045156365002328793565486383041558400571392236668803280096722457032696502992230711049487133421525337794417280636712263783796596003381996188139110518433119593037832841892618078145474868992057427602750390301460699068136484520918492405440082250993040154504016365237121572187079732375152433095480417216482959163505399397983969848656123383022469176519913596424803790503205037316830179348641864806245012274093201129571528224591571702293771966000202310162183815128825703761649679313891665708718492230558525966621638225127187311442749188274448884992404871423180941082093029502629547194792435454835939053601779419224220227211433532261342281272432513382798350849204323142902215625503600917788111711640796050492130620172190819808206570040982041952650960288709990261527397616874326003530497100836439265834388731701897592933751822426222753171402459672684903636136462382296283097436976962022387532645063615259921837471324405047379289270744393425890114373103377519295788575743393663716599322982887078316599909000459704367239177344655472419816225814216563989299873527396166847930192229118042054743797597691828134873347139600271015531217086162495899071479911439035940642514852829580455369262596602539153358406784889106149550776171557166023652428446356935864842610082300342855804872629829499413560608550308967107130324550160407436483209209625394974835755263641759003277023191384965393167331528635392782401836129823813924016995860816044075764389762865249521008341858746976519294221308583297211387277678239712104720788773113923167712983421390196403697170159429469034799571582110391058253118450839446225687944827341334910015693620279853053238870661784662631772719469806694331627437134061655832914416537835187424292307478220576364419218634579777717011672439151213639026611166093750477320410325388306756205384143443594299882719685070459465194190364473159737472449757596829644154971925483612672976725862890006338215554754697888106542575695742561302388643045241125877367685385041218828932491750393310438907011033110652805220004839318858502540667249141267168260114404111546970073673037387136188823117449019653374684128719222005931425292638437082868770789670399740497211317187821106365889331497813988194698754939378362677629853961296250493583738690932790247819032431880654564368722384659281479230814130354252183148333360613864486649979127801119828261881149541901198164632762666633387600002968104337501652139787569094110356813905652016379474884934890271103408770442888080351304459947291788784618835929627720191910671931490921266918007286334338649043566878297328680643898071434664962997926371901206559754490429503664342999713705603591539634000166370568775989884414840752562473212541837886023178011049698469667294538193393408582534284396298491350987253255640382613912163588727849055591041708847976802500562321220870021487500321311963440621716694459836187193210138818013910690443492583665474272495953871376540814681502917781540592352751281161011607014347365488967710367940793613359337765965453114149494254858006609966183415293065576547093259827921520790026165605723242966102474738155080000869806780224898331197174798248784300218983302954803202311711318372212745639402368977740381381826342106471897785420521168012506064503504692819106230015458711379795270602850594958977907271732400983526829821309944234427619313337301822306110792498373195518889326865603462046152135423665747033149287163978340316630993763963814127045007725914021476186132330185516959142524240997582219454921291127867398788958784533710086672456846292331566692796365867408552727387819695601681319838271984156747877760119130315314734999758035351087182836576848980918507527735819259916248576881955027522613463207138787740852046560007429125465661237166377731801923265668306057381270293163976590689498101711767499256643040180548591024114292821764149371245939976897647594545490490392545299846392575732259731027671413778544266904305681928604566967626438623595062416934522907318496386318131164208166370033575828700170461624206069691150459585187412072751795261079517788203346609780290165717810381938084920195213977055369993630364181462443035673610506923876632193627250457338136891294893651673304211189633607615014623641607279495596559441116254038358495530225790897645171489615014017072075547382311376827377522097992554532688324565397245010951607034898753397168920051633399931793670135767720709792814831048513752950597137284958936820277126193672744513996576448297393918388185448029589179839393807321522192332017583540251806583104213914832451782863727253028184169707765990327030773925501164669289496092374272397604557058857021100005018409516403325817682066171243780674151001198668445481413754535314792562284756496259532198009257655513152705908497013717434948057347195732162450411675369305339358320457248137139845685587880164210267234062405117217105562233477871828274596826884506428460280172601609009837486380741614619922782772409610498491955017632865855427104851163760143258989163530947119503976946627203999219131139564263834539988674595188861465136495184240455612449328001241673497995149840841845898480990302988421233250830308518012099215957498844372742634221883424941727371687671060670884235956772415544520817007564733058920566898957014757523954550814629003031444122223874004006676308585277211467235908558709959991824213169812068657182999483990241235511145845719161284034513220574822952680843787875700815348198911587298357860713652857913766766568632726830817456226713439430135317953461517649195619949565018864237061005994769805065818167207683150918434446073806674923729249533316616233704455911716250236488606213891075618671911458391869039386985199765440593058943155365035029346507901534058729850519689381846659068778370018919240649399502386320050614089964801145170963963055374848017582691500869815284491535895709994784026641918714197335211845528444037319316714607673726810514814444500671004253412001744347538672911400837535052279051041161122742476981732068312764660545736506224269235472256168244262893238918570700421672472813802551065157362800008134423082850888233691410286633090101256237567280217536204878304224127543727296785575072976457474067898569510545870820926993472103427258212753370247899919889582303242859045098795893607788686682091548332989605054470945224770542171818696405554187195842604507843262962676724080133146472347823109309823469855677881818997904844181837586189707597542137122264441154347917195775693828958764999109105249828994278793677472375400443166316306419181372803150998132174440337215946876705254842431104509890846213195107397939625152988447144553724795568405436818809328454180373423944486302205122542281707912431670834792528341694370854002197108391473616273966840876044827503485964058451023045074725167003830103831758474387300454601257978019015151834511882652786618468197674412646435936000269029426933053323814154245801214730665187328030902969856208040416383440145511677277443196750318231607825033451543033627831269685695336936332206103914197233928617479247378933217478251848518095948512113779587499182356464162647981361202274365617358164773445591958931192199797963647418282645101043341133296889859366191371284511283555005903273651961756689707450585126084189906972021023017545341675491042402460040254243435835252455860185004200438001979865734258943691517722338346559653565666505992929032209312341747444643465824099526841856020797886284623600087364337612320851330602260178980841769548864732770294214631589714126139012307727077000625756059714300287582150833245085500254375636505536786883001126159591100643727451017388535859936891596880334364308133216173268618357537045375664078085516040973712351422596770578739939164321535597973554229573924790805040031747788028119419741104828943968760898771140541155204072772762298627639837178802084823514537944745243740857352790642546202431890931824770620086459119318112408771389499719400202002288522123427492333301832460278245671389803814235783741618288217212172104197298308963947338709861843969572066216488158357980113272945006721984921406049879491387245951926535428636625056322022413169883072505967537082712537007802926324606487679469507203563936134132857081346777274356131437649596714785848924565370691175132140826760464495285663316445502390325812026773336894662990521106835813393985834541919054028112154678616897521148896530880467018764071998552781379830414719497201394316982642469097663668100644852609303373161286973682599559053091447490462788969363401135479578288473629169827244934895312948122831652427937446168254700848290014682355170348304179639622693265507122358429472789238230658697110128446290925627459405049454158573841476464466016692604485345287858940641883628381071885277926668414213861752408582128493067998108044923416992097091562216805424271376397159453909927249448013097354499994714370100551875458597734146755170791008112886871417597103041291090101716847447205586908927284048614790283789542074983779543849606578448933017888102877945644545558479149277280254886672950805623118410689662696861862144330030006829208255957975109989515795673469193702061374975583817958834765194117655979865267010662644861731674319288389681754373770892323953240594383503410325565419044412672717182169565867707387920204896365786767240540973587148376487243402733633624851812922534248668208840054623073280293104410974094397801275115158682401523660852926136580856627685293267585111436321860035058316470242655504000133956743665872789090358149516891174166971863378998167549797606018235171814524627799538632956214102395993233560090036048735726006739984795908155157962390477867961843003522927153920361161189398066140929282026048354489994386017963061076068148671595502509630575483623163539780628964121994139312319792557586698048812709971905639458062493235689731483501629121219684629932754179149235740531646514524608130385959854970318811299756424941436655655351162293835157918161105767734732637354418067108803040530610156433312413460937811690066408137702801143065213329254916132190610653992384104539609308290050958010676211355863958459557540434527250065775393497352758070176371792471458857283809719170431446036377607575209893272598621191635698654776658564187789486340236793663230130008983881271437905812936858207492542401499960680303296278546835850184611256932735447839855281219507756604784770046640188302127048404502742435869709131875144437751111474942406539718483369031237066965210821902333867283389582061397809003609249184185167510438701899473886649086268998049144271029850326736438919274087590603173989676984148859874130079829444507743033431681059766866820321146148046577227671243513935996747103297428451379135640542413694398651134592472626367181948879692741568077129600285248062422173157085777735186655620167532942205780381997197069465866184225348611948617513317624105406487934246382951053304677148703676204464715842809186066177263175988860113049906579118177821633174739037698678727652010182733777558604310709186161423866094642836136626009349826585942342864500948042888969021513041068987856850515122978686562777823994126429041345828888341687783673708944211758662516108148884872434146868266395869146082302767063215520818457741976693006586666533820098135394464263005747147494424410014293315995247084889407606808694537692408271541955942802079182118272258000894509354841095808237089479159819528314431545767585848913400118092043268359191399077130862171147567157355890832313818888264540051042225648420764515689994485037555371257443543551988661466989752549902641599369380086061564925003709717556204553068212656195585934468136704934462353520467736771893056934220721714074726343577507092485983000004303457950009786509053727889257405197793779254359158832213451984249248651111886698315066617290248308698691931365988402007837200890532223306519226350220389525589562238771758986770086811160163084801833899193882239792563922392192541598862064294764601396444870394732595044817318841422675314868416120508124935060025071767488465016395308246273774187134724883952073943524594707658324978859793922239374792694909727501212922166391847024195691370233998718250600786841655669851556027469405158543334818877074507469069917588978451349111433125615229315820732810349536017482234952853733326457260171702284711432387610045100128972401969253494491577012904502356962629097134263118057872746076684498874608827427509923187215682884241101926566001719280354275735757718385334842173272221411254118014715684181832041240103208301008240543076265123533868624355667165494198690660413996830111488866196648800528439976687655425587513353338807062853501190388964791808317389027472796903044968491637694999056345104917214484324004039784138199314959147740289999634148514411768557296334174671193020700807107739131740044639711608751098781951555642253594057810970729744429760297362538429539781750617583239539588786519199450292807160833921344774149610820800273214669875768283514556223017802453182070358377905462699026909395368971942809248699036221046865426029931353136269504469768604443663365762491583493246269616519963873753754037197204148261228726540329578221025165071426897836911502976775355428511213328224297354035853103211423639016411468877628349023568187951939826462251936079019775810128011119310803553602452674150381896483945272475511592592500410160087133496110599076118126695314997898167138779323975157653564744262120694489938925445473881854763638902165541476220738577229372499482114290798189060921570990266285501812887280758570032836024309597019722735259978357888402799110587341696657319289371608898226464611834304437438592858524059784962952255593069362107818719520599563996216660600965076238221808584278052303891403284627176957413130294516975772381546819425254574805780383111372614407971182225626098490776324806669592871078411069615639786385531398492231358712651317957922771391577463158230246844994151778315509979768052615204218870033843631269138335061220802840872683849026993672724134043022270315858336915798285180786886296210890488743666193845777425670039225162410597371840487310361225822379072584723169348866078045116648563199876841554047923522996625442741522353773455326010426418148868078570172969430008255227441649879507122410638276887123442908757260753580668125900683620188685493387570015321594741606838258558409666155928354926874104785090844046924053279923750855719537052364749381393653257478367869919394028038966944316037588473664668973670660248691925812912790007669859350124379699281319938842815803271427555599663200445148560074237984064233625527734105827199379284553006773097948678393920139186400156032168799704667133951427955317001547118839971842406185040871419404298360431308112308600125039447396638223001019392517729890594224292274400136687427760547489563251440087632282494457154317232334638052124794166136544582685909350797760777960562259126553985744156089353354984272417494015337846690792082909757704293053465178966668139103509462106438988235389106853565474117541946911788233802698127738258497367553581983503180981560751183631354520659609587818183765856194463378738340936795557764972167601862259813343084215783686841000818884235550750370422890793398029510693522504777771621515707155215864398536679468370003930364713946340736576333959240191295036383983386052481754544872074053252841494418760776040005596746507365878599042434560314433803232540297653065681972421987147356859652868151953057141852129251657787366579534098055286621356538666643478215600987559052374709519948908949611937062717472925021207174608043394009242050291726878996142022363891788454629667264774741946374416122866577944264297285588921067299669207537400916943569651715263401747933010563933242908705655380826172321505832921017774568490151718970322395200199787634930425976242938635831995351033048206314389893404344411197487883340077592236167444992376081498485777418730749555921837423871385603654365680951282395759765770061882555340009527869323839457848759177274949406163182810805521986449937008400077155230334555701027183148302957457181608485682303262683294832158224514816839511416865480389309600851054444116762089878239174134109667913063650775658559590244131584557110647652432135208993448048763426290200288389688572311878061292094167272162474561645814693598617494258326446001799661361450366299117605534272748952464662528749808357773271371179257365404243840166392657284813901579376720279893032650411171209245977731494701529161482583221332797261318563113749984104227567479857126436451675634467372216198383833582826780371167165615185533983730376711341002155723992132547775286229500089334056415178507152130597740641550864661728384833562024207549815481449863614696005570495700269778379394656681354377503186911493782435379294989618427052329633082056204278209564942898222650204301211537150967531343061935055650749034003681252917986635437779278272835583675938634235166446855794967197187167249967446658259151547827952711357023494532014668871474817232362664744230144262821991865710619215422140548250259566094356164337767434031930029646871334322511805126666803733705283211681304559167548575508099474933190317539080095771627388755035639145949190114331888208638100205633861833285660287106741303560313082679654072244289387747238166022728405172178204882026080485258442135323499371398261928864930642195844731762432570637995851090551851605511136815840346189256272326907413051624735755607635110806462155876745335784078422290222229477386187022903956328873571771835023484626269246123180939502381133773460218012417866093547034682391232860964286044768403144204938247987713454231573583742122947491473341615233287149845180446828812171401215373659096403153696384499806212333647627100350259713136264800290390413769633740825924947320905548162874003052197294600027770319884942574025889743127551780502558714277246042755119367387540859057503263964600035763610042308625865556478411062731827219783732103072712897345419242523075982975180325715836227113337945745451211171775766044369855919061534850822135963540274594007321842119528616963022979546172357036236635844067847779417584708915167294870420920314530293665762346478741670435014012140429751991286560839472510894234228975118922062278338947572461108903692816258773694962933395058190266359492078787722760157953392880498521899567419405230634122969285881081634186414127185565231426001202687859087361139282241440638930675556289793639782674910004860939984070118421163528298896949797048877651681286584582523927962250431600449611850131104769668970702434175463825873943911479947623748046422695824250509797147850665701325000809040065185789173762896739439847070520807349414726806737162795050390966158950864190641320218763428277636908074499871978594077119011961763506288706389804909099448314007977796665633106716328932019423944792222248048821195069455451292345120388132534143007944353021323036138261748571167601332241521965875141406883383124376099874197180764156244729512551291382284907769941986058266127943493680627767539716044709726905956358422537502684301904037792025656179357103895234372459252394416623572120692468673953122868234922871976227993540863228687245273496409655688707337439989196627682512838006145906460671331238824735830184383287162952761773375844578061575966733980215868659583309736015183999204156999609377299705910874556717814926902667156232554570532327675611668147713475430139010178910798168781229939991209548864962624343353087250416884026112588753172622315922692881620800951474599223216485289584549756587916393787482911885920041126637627996094676694050327677754903013840967890929159612105331757490314128863723920053087249663499582134060723987048413840868608439175917418197144651348384229375531857334984067254237536740102235225545213867514911155948176262479010650075473225727247465799541391744682190746913933249583125317383880400095257896170291217722437117468889473808393567329819766946090362998456738054692288272120677255969607762572732998958503142875583099847655456606620497018868691004744153598311123328450817913176805030545243925552596146417386730334842724868074445929492219809569314326488326436795781814507835350824195427482871637379098421393159605546906948421392444198381018233075131307531619830890920724182537244454221559874104072102730922975933872579586640869055514457008349759883972489463022348761530997034055456112348931772699515205152664574592560843214511714920942857457624476314285149210573356732139024265927076206230922923783545638605758133997460805401138315138489369707335481088049048523220338871119238297437372641598059999104238689526691615658700484194384403676853640242666029965744711285799962297525495770541936486898730779077808111703356421085917707841085031738285692794923829980748525819398102748532169724504184283015150628849895340172295445355757778254590273280250206094636518701418531775717457971693169782587163052046820416176101792938935750011966358361626094268472896901963815488889556252451438103127891040416534213570398360257324969837425229315288228154453921002344455953272350067967105749500141747291104051817509848881270157240679334174241028500371027324455343940759294458482300874656470901360344383226560501408410048954165458418658155278945262153301276428952791277061510529007317466600172340721539728466202235532118974969829285445505360502977186536362452716367364763181277370267520466336739677651663200753525923954958055829873107752589522501761877729849206015425262911604556288732559314696381096091838295978266821839658563369653623523507090697136449381222745545147033533937550050283217030344446448369812789646958587998415253795204861878112438174812774828558175862040164996930058617618091087889883412723240934079666505446950104594539776444390030201626109459946599956037623313521529309183961871635779416230325513865187503704842105497109095801149728699907386345175917041539388411490835403399483284018538544660018130670185431463121625275670609854747406520145290381457849476345157114671200974155288524532933900625566658479706878283519498616314987370793245289807955260380061497271537253564230089144044662157087716674324383842302978660416966426478371287363089971347677915741959621743261249931343190146722069188768466984220078683527740226396713482874890452857709328754013360537585718094117400191646345435030696235307691550630934145328048860983094482768959245460813791812062844614154507127430152607525730348926068217571254130937124152799089403454803396893161470789816514548790249530110295849156465544021128889473288672588359968685158054692694208274485000992747439172342633475123671656252908476492444516278561518859711605145982412068905074635352547431355734266953243421671475921908267939861301071910750956507490391013392679410910334031725899133520936725344997874236748727739056519150960335724738870874972944909184766157326895007611504103697094064387485383508140040437115132661720863850706011889883658303259558487222755826374343136916714889055367314970222576194113623559356360220412720840574185982620224965824396016713863518947272139724240543593391448721424231713360838794896792363373874667698622812478909273079283848054482065200660186625833345009985185759696360940288793557651102395940595104690577702315371266370024391889652737357117044017869139820692962841752875416520354429285802510869710316082509259229283860843648483354800641077902577357021477707803978960517664166606458016702798961308739395282321458384050351151152801910132144872806167663366375464388669210060270484447025189493995030281486076248687582738199587299920301784935302275607939610162976813409412165681878637808802248642711430315000273352305703553933980418900164856028737049852600922570798012398894596099705259532546002458362589077124215299517313803143975423396557364046776834690513226481010433969842049085701102504790151086630223828810071078439591864607368796440279161650425487175713269415884000390154068433803915294958859057177483506824466369413568013866973253356783679206056074686223621149589146549461781623016317530723850215338052101493502750553176495752814142336576798942589705297826253911835964389470551040592155141981995036091007800753045620588304694102049487749616918428012066275758686666414690583721759024020614110676506845034285936239354216714244672239496687156622007950306578546758674058362937659573036348814660830208706477514882354288186795938669681963275944970535346470988454895168758947879093759282202363200932232552059815128313611931631817556561769130412228753680619066460159750101765806208533758096445268526490993348096304614075045465341933955504808817782592739228411212446203676657204517956464852805173358350188175048048065169080890032464677143797708807936095231524888287591592784582888488547855863472468398785925668008537247665076224104249762276014855347128687694102475763742801868494094006920520927674877376656031929388858515884657428462434053626608872887258708273161286549948077025429613406000191862817874320000431295269466978677077534481954765167517777036623937142478763481071959591355343056658802723037718698660159401928363149859469724665674347374197960328154906813055927621523594683070129556805219729305059479575837663076200555136815592347415493864759485092013362175593230786977291859979136197678563980175781228668172497321467824151820432807264694718032352867803509893244313086806552172491345948435796301542586492898439557594900443032182022215897960027293643623940141443541097154874302201738414454745724445664930189536288920084266916149297567308462941208651161167196317015835258616559336221161570945998765441453893898727269499408728417779918492177540697039492295956762681560799287902321267849123753248045472960296024160175175838774962921463560536070449111360208415870832327913217943201008975822665897556956599810202256814934885781886520542344797042205888257816456307598916427452635600795277637161883986511029046913724619129514112182517409306810860541236102277363733928823273994627336750092598537992618544029558123794195255624256223752947363823246604832324280008426413425460588162515099547510243024662428985861751022301151589574697123572176855109205374595098132399268756242478840729784494825182135317993573014210353137037860737001651180981755416443966457593798432968137214989212372956941728488610088836494571333994612419705765960253329728588227794852680474099707384563145771935822319018133715773974949980193808158608739426344582275532593793924705676147230639121332927124989421997245559280614252788836315511890830454265139150379735640862900904051355712118510188629551191231804402506679872628379398081600159245590698065368837039955615483139188424413752137475703029876168017598752271021005033870260561837557465762234263249081254861465196193866382508919793488296896819328697128144752513065565521571666254231167039295824474802771481033604696042505474434937550066797432576186400410176410269045564310261807406829450101806518413100075531894157646038956078902552268502827495017494231465969434728345758404405222825356637505132485011140090288776404614544598817417624059119121665270979237408476212376692283838847548161482091140165972847593647532421780794335267032891368538225687279150504416646474375063494517301356347058662581268295416741705537730298515821374555978085729747510671551638448642314795968415075249416114034921202679930450170642234392547788251245659277334776823381606880243986572976198922239121148478920722703713085344981544586405460742426484517923270836988734562270176689732065380515403440709086743331485993087683069837446892703211137765619929937326367161775858330732882174261343108773133584688296990354399138148730409541975343477059512834518398009961166180523104896915619819421822571031794454060081354814040846928012674135480391134577799737906876278853066528546512183242863038572613821171568482240178893770491805116535391707700163997118778338650078513088790155033334527980628018801323436313027352152648188140463704155088330688979224724985751698324313664812943796722809631804996596764021722723405678381144339662084739496750994136973501071270558258199608181656721346361834894043856130818188262735454209520377212358674288321100779781481244073650038639762542168380156583011205189925973754902053067861429279693055709593864363178367866120874837614926553892454645269100709187608286550653306172717962939499855779892362574970231081719537730524061554732779116628168947254371917008637784832507391591786580872717793385288353469006157318312413182980429996232479433209371472307220207177310354133201862795008353657266510650505408273833847975541268345069592905353550528723697617837981136289737336817090585919336230081502190151738622321164775240763473813628116037462248899701892270279103454803305253225794038847737692331879849571544535046031359617384113915331825490710817691874532726363726006812658828756538453509167396498253966742230930028575912710514890984428111311065433564950410750304394651731153856896685413490009977890912148753673693131995876541919252651213445556647552193233266986030046678789009147381348278081802019366245461827174265818301314212796741122095053176433571764147490817177211562706482890087389690896462673956194521860696077859932168486068779662471703178656184367287488882552240796647740282792867994737445736318336618142534148581765812597749382416324954791340102167016676704624179724615960074646713952086878354500115128295625919787178122971978040416925543781760701042180157722324661760362833023699879907638734120596094126589337792650283253468252089180030705501225309633110222943107360050993690953595444390844510348836178782627127969176365115421397270460180923928383974042170004475697113380331306112592559416383120727604091451753899622648679036348635382379175181915712311670227370527894229238974535499688310682718211286436250216155908056321098002889475692007027247608516551657900976864489480251253447209406609613862378135110447573111505166587036323717045574783398717271130205175242718134610129316110642648971324168337584513077520331165710632058191959027455122003884232019194468996343192202114166623080466376663874578727422060069218700368307739309784443829844680815586553822549284366649492510605876061404575415364004540991854865927579340048515370211886078959784972914306031927709395899735954649680581157762120474944084427436311275957936422987797184364062021063487054579583686203686346224641934370616217094398432309002861006693966116279939506987982229939175752654073779118476472683766439532211831075273545157037647400352199297202541354139958970775347406934261589190251722528588673792816297358120438710330825133828722730176136383974084533937732813669508036599407453356069939823445780955159486190252033970617967907433719436401630796558129825036249702649907236397936890352275075432211375383811561207760690209923923105881417117978036813903674180685651396164331735474626674745643728712146607254759681843775989940967301918329932792588416014912199918412708749902833419017959883243471447544991258054417207809005078372041214578634423994974659042644753849898789023293904913880672488411917789618302605185135716326673794696157475428780874180048310431362063850405879301741819813309855828144689724324647670720114264646985246548525538366279299207453428960745535499506161272770464161895869670419888637309180047442301323585792986987563884127018346694122121333372674238747624733463236608833488769380069928763977424579906958372702330186808717809029741625764667772792809600042237970147441256879182467684332363878555939117134171411217720945372168643918025192976576372192450521366770124371266168927093230410519578143585821991111404219626751741140822339196067510038847809020550938927188131843594453490970909261957751828999813398711689285398163001902763823664903847354948636870132218465027265591724670714561268578909046155205325128640021295676621085842278901261490079156853575098210168816444177713423746286170399135823030390824222690248388687567823385988225233955558579365239483342896822896664785609981113982769087382229361938363642067680447920542278190284806503295616080148428331823688121072241591979726202498641940893211708289526978666456448247395184652271834915413601846150656299700384516878628022771815165705682593346817480558559049217763302086248218507023948187666784518462038152966927821845542905645658108771656718229144616330273299657840632141401717828764765182282850139541343584810940049324003417146434170478066282888210136821979728123598384574680638374710417571376604639640196212373259514285892528608046351506293985395380486267980128014809912984126546153323721910790351761311906333397660977667196088288292003324662056742610820860347592664439557458467602603659785747591852917216435471312639464638623447293859036401948399078250408629474243902198175106764793641919389779305129856257757148237229883353674251887106760871274619984140980846406976517966366994592836770783687062599518618971928228483563407571006073485882839908408492727261790344746098681949323797922264597090375363874420764548635261182907377075764652969627779619276278830086572427036823790403154545462756672064623640176687943277415439295552022954658001224655977600378839175687468252916665967275444908131002542301904366652680690502818157074724120890395928382084699374741818503091040245393256858832899987240334238492791177769657058001554086554441519526093809975297997260325017897315139260129170538288187807985840497743460514475970603419070878318714673270539037740566720960532163598281385768047223178516275620369254337122438511335612679395556201100965536950938020508192877538667237818756138691956837661696020360130240099069335538955650610911479601243820197631507992393444302241696635439723419721999054243879105354783273480905366041114916934724988973208407015064942243971398947629367998704721236491318988632102415305102464645779518886760788189262689371874717378100190420223648023581157348644767637348693697145144985201252171275034018035946159400273598802040879290324925912134162891323957458888869674111092515758354184058526453819701791211584980755695353349216087862855189657277197272493336312472163954268283388587191468240936468855049475663529371644691416462723927240733568950680145714975127229619887287653735942008787866244318963587689874335954144402817020358558680635826118358608125814791932164704498214986347090580872174159326097175493351641549527001790824743316469509549430773879018418202740739876943834742069361846305279323723244505228971654713803005711937011506658865343533081275944291313058569666793002969548550091493466458272642584822120709070708204320131716173751995161955374319785184168396213447199277878981089331055671586751342524166012933257826849614416450228897136458190795130390743204619066111210574436944969472370342514833913126462333013120369778651877740031274773578833884812943379001462331849519512807327960813493862442787036322050737668023938123275288893908833300090229142888688285163725161593989790220342550686515419049380702317731789965184852555436333922353015564926309132650498698113579397233097100310983072207834144107596135789689098421032256417297381829725476131061488208675673412987065770428643496285662980724568579165583612312447511739821474596367696798038523649961128982758498782714302575223691538429401396732375500648303667556962736777311087076846797314790969690709382884004310588953358856218768105578510583823143801881052653653812817443143714865044786181485853174148952883492643936921039758091017199773453602583578079409394599734942169302584749194661777088116764126481899522641901011431537078783374610515820871054205787698624237366527641982152226267035007561202552858769791143141068368059880113945927589586116062022215336629255269693613008668021394662047036658292553745038461049907488419425500808886116634205358928359397770028332919228144579732420865499026871562172916017418454571841336217186304766978927903196985734683501662268156054793845992019277399968902456454814692282474417583865146666949619996293143601293125269957945012836662893999786181998796614353903947149466824523631365954887680133106686330405271483499917211895953707552070107911119768486589957151950385107762461487072489601804621337970402095799973527311738317128627808630381587236093630613595410997547622701712246706553580407474580878905236370640827777530721264513421796345645385460909494609621128911646550382294006704390122415036608484981928766305463946704098020969071425730328293872613425639140455798711013716856926371291489517324600412393018343053484094020016861638731705850365390483815271354663957829308261033158706892058169322724841912365587325002798792796584617432277944393727377746310171732126501594640895985748215675466159556814266045990888923551352158670357466208802191918420881697608924114930198815620297483064943752445062360603992678819620873588274695062850844439719941862971418918492225234875411733913565134796982870331622540532924948007703979658424904208165275575575836915567852426756232779339038954529521029668107950825020471071883285634738898285650197029795145182158654569984607039492124512301020558768185883825995936060591357231273830395600940248085512873340924656735299659468057514138098631231831041245749098616137860844827890129276162489164127128293585050643372049472245248997403178472018870053783795519477508791048424064678482168383264622197557212388190938665608327802383546408442574678333955162735980712233702829645351814633458890257305874713456122902470342494875624658340962540229191092804663953808330656005886919934042868119213717910985451082411622444045713711490136164488940039503384517501896084995566577329105094561441761473258482560901222840166363284483169037787257047907380202030029320066321724344681604466531616115776279203428396063368144243280232785866800784416557533853323675922274738409353131086792232024226586756610603203348130094025158839040207092473370887889593149215458372987070598360682221872598601157788436672236357909954045433980334207252261714216132326327770743716413077495853213567583460304373814335620017069255264506497844263474792069003282058727122641479554390024245091231235138021995747069687879505827317361913834912584555991408300046977573236336814420104188383360501188179883336676938687353381777905040836618832737575630210093152402955586490797682392469277457934605719462206113171726246300937995841651569880882039806900531177484238917353037197787450666340463549524480167675955839346287959317037691097692531645005454228936598024222248323755765733840176930939132041000493770614512080098009166674362081878615480375466251380268601119697601825681543363605019945323785921219395826691193474277276621187853913988257646052280390504929999267292821748184337583642156070172514568402001580803415777283970741685728758096192575812092703568130136902927155405731363968876506462114496807560682064096355279795041942596709838535404897472299609269719323620623643656739449505607874402396918696658243873768842686343812292786009054370651674782019671037315491423724574563671924258667635551017431076741890891276225116874647192891954630118363074469477915710331413795986940390675604694550364171838627936850929688913326343598863480241353276942352143179133296291396874244533776891465836829839460831617317608205074265921502910203251127429910563435890241026225774849151796361730557043365382624545630131340146239922987209611395090350408435821822317905939176077069314624903805160535744955969274400555892366461015441086808845993468112604184351649292408301357351227858924385689686835767259697472258869664787029184003966720819463455681521314680403367570450561579977997888099698123684449499807515167440474737076751134585119229361067885241121708812432770303044512340385902559959574630980860651594324546075405958680595111222950622820673901852184592419834544582913522483082374968601998513247823780393401792579578466984078820812603524709071616329910199633674945073959995212300047481180610010051598321826968836750460362637252137538066409494043139576932049870345227780208049572095713453411224361545804603451674171003381477718184769821677161698090654729420194172527370873438863473189406109219041039669123272014101475648091670389059076452129841531554641515778588384959691699110207317902682775483019816217462309623806675428558185152434378606430195062498256120404576917466262168091412741828889925838251291871933939385396459156438562625118392294525140348502372815097559399353228390211546765952488530528537022942763530468028030444791677484707179165668528386164445149300610145845710468882052001116271828410184110079694726414589350699062641918871360349084802548146578785404356771510646845878699402800653151871293590319045978882720889352420896623699145066821732802570978286929136876992677613259015150573526975660563153478193305776950672296646671686032210483859838960005989549559114989203916702835116656595875030818092663179141627528655394500120190034988323095630044524211386847117330915528083703991705100883780592087911209272909283292185625884457902911139434545723854904442428980344396215988994690298954540344257004825297866004721658165080761627894461789200458231224256383488928648962893845687307769821881683397122011498619368266480400697257215702609435126339942309247165634067149271109821606022315612409847664145484260671366067939170627381737204981981734820576447433801837121064995424693145951808531256251615987183792605759058015140991011284429339690142298622707808113442973159147889457622218870410398738116019241687431518409230545619570819692576760268004964843982390658984490229933105514853088595467024604017174021030833693046996757940215639465808363660754912995134330817190157911939104645119613896581469779635564553968462966118881224517503845758402147247104930813766130594396911309535240142207951098092672558545753159821678682863925331406473461737200789048589052859188286086699351319893787194340186564503354974725650438823617355307910690734421039594969967370978977226058603534760798177874701027838879898250599790249167748997457619105664300930514135500073483857818730110057390917224747640371249181231383151922299729918442814369944578283546397558744471192323910162009264133433678550370237078603337481080584684204496910742929794852532703002561667942027436718246777286482934269346817254520602966225959969385849303410200290503647086302764998711404837699135835230867422397066062931420638178810223389768933601336401547077087681327593340775239275322541650126445211386840491478084574090742440730420526348149238405279572643472805837232353027113966575034241360200002663497844709733166965220580442917199678085787223313584797628652173043495833275301743132993480745981441250230262271261674056343848630014262033617574636189573609360853293455292748981155324646294785954120629920706590788621333107277791919928808326161080382293156551448522168495147945332175028554137766814181803986204708872810182692720926407095620635736560363718715116984304760761232273720736693215605876955387205415790255115534560469631858715054473493380298933824134831156747485961580528025569249632345309804360052548349335115567019682123105335711988336481875669419549706968020648372776021384677078477204505287386136570190308686313126871340542535211534964949830455190990735078705554634019290116996309111982260054940625069402671491597121324342079817369325197866024350029812702984657952171218436137881779986814573466908862054471649120967617199771128478697612825554255221371306995045834006063389269263913622886700305077145771787532070895591253752719899509504315391014693421514655770003837829277937617445538536342087252560725022819587872383383265748660176372025980232694664353649172218562766798118785570810251674281851772463390773766373811472146050402589127874237581298718269548526953899723622013297599232425027829827606121137945620076644142605449845883443092726710782589341917910786154514026892176130525713801645520796410020339834421664382751537030450650843913493092039509941856784713353337346123152536947508798185430042705135491899382456758490120173025628218166049249153027806972643023655338969826808803438881888986077056029392038799702853639546295629972012960221338735812236372684395820659859141971574527772073208540454379254121736748886380494111742138722743361517018569750461620579537659663981951215475106838886987002328301710118684725310382318359849077938953002831180418325399998250938125603051655757304245439599770151475739562473283004255826779372233262391374781174451573130302072562219934736516892930769668241674305149572931226076044256471968314798190159761447989694726146617358726176531434894745974766706380966158749694519721192567820092246405062998408187746209451473839873622420454743099339252338185435888084563599752441683437016500303882225371318662597988551550361037137155583301880873686370714900820730528930119571954483592989906903376437630033415217884230443937090758457544322555045160683279851584931330727972158992103549276651699661428034912205216863762282915827487248138137991653583949039933653835249757899142536194653149932137908221109647420709446772787774511423980203338279591056765698519298048070009612050115776560770804426055415711279740551395145994385140111528419880320919719057348118695866920801355595879583596973126429523309511554929575501938733090414997280780902463355885236831744803341615426082876731306988336698269641909370821789093148223347482193746716129446866201459009702171515319839699441571344630316971550539014437292975041564531721317472749070220881107192828357593949012139751701209717188801326036872038033920775039436868795519582157827637975532655138250813416245286471571530041933623646723250219802690052825524127532223929618097261142896522925030835459448424885258888109155141267621986287384203107137649811756063964633271568315227714503039499376591901817522554651285301744381647236654171750660032747606852125251068190864360260056468338237135794087722057375378971703950702329562015152398511364301256802221820002178222205287006190961821366563625520260678424911322701779293039482097583271677323675054630958276508927062104126670743421136577245177388085905441495727351699249238863044012064741454772661986862149098504035387558518249198695499440223646563338644143785506585713661208204346098743735411335245710303951966444523930979706088075320470285170564020531814228415829470936780444103975466935743833528702200846801605381194478877001576161368433350392582688657032797481525995731754263834347444953241416884340318761206299276709649638778218359287055162943179167109155068991651095744347905442316889009110435122502379222149646397942290909020974926919260051753514134894774261859688586561531291928202706323045986517302889589604661672768445773638074942828512769245926928519396014011987563795153710340010746552282551631135379912559911402163079911656310339626520805090899527203993024851182142689893578454757491286613711774820631070789231622940177647309757478637115215648875109575407136551854256861069152045863707992867289037465015732321928979468057345827379465522964173311765341726793999792437823616215635610700051279163078250601054234772970371872679375343751928502196492306796630426414755480156504570527110819642795640774913157482749335854990926727988469367708344196622751213461877396506231754700141240424942172589611059320837140533208256675747324837279721593103752960341754371522606813723663634224634335914870015130648733612151675333210396650595288484636442700410227724952159304115791572712719188361414322389493866152281746421644769396884604749612520878429834841214430137343737477158425362386530507519688056452038457289635589247765182185254621950344740459538801434893545361061334752918385551989187971586975182557193407548260122098963305484937149411437903341009162420938598125654258960391667996983695491216099113626688685021404671252494872344659074739475361138770423952276974103380042490077741643056982212368835239752081901939249529931787576524691680427630741002542289808513759248742150153631398339561310076821092245437780372509902867007084985806176916192457181815610710849806120229133556405421540746888942181968684654567692374084860235462530340262564283718600049816089495595139173567590153925952492349437210796996110251434814599699548031236031178342744312717945911893419237038582327805600383002534706121841485144498542317228886603213154440204929342982336584159319631985340454098147572816972145218766882008600770960146909281884633010837465025639485009286575734788912304084707983826908220632621620114955101099384046757972486904673505218794034197260385562400880202793205396611977848826726048141049417488327626656851325675669603500930121297233599626996571619142484163308547004233867275568677313264187115200783172656934303439960790349254019811387662221364780641171326011314797808402369315378325232771292551212150386829710701515840197895485107970248817836961295902181441165893184421974208500660566515353377871205097686109161083044882128342873167612424131523290916386921735380778423374254785596250098380331775909611969961796962767102923923903441722196045935693526306708785049245392549020191845858841247150420297804877944530080659376119118980889115048725621755334834338036728977103359246306452245824580307010114172150848438105532687309077163461271332835456680531544548952249695725206365174208982068080812944507265111541152572792055627689993435668741210797567893279692533837464211841467778163105775433097373771579581806626160088753792087211674492943299733148006920876684943565446323098033261429228334737549600033832842822857840788909614003081857313459905092367710123985371521292645102947851216079743104592646231267668032031075528723396881610469128624684008892754158563715503281524946282580623779608381276615900408305108365396269226033619152368701765372523001084568094791879687683633001772320402214294937139081728052225317393821064278305571652045503794267428474478529532444425578349387365742299770808022228602266429258803647571438975794710623323400693981497284271500847656429255748912684069528333639205129936116410897351536871480391365634824500507170887286662641309593146052125946538760956700825401624766085858884739762612266246377260045585637397075991796464755404100428322755030250637147776935700207245756869179619852867540530485171216402247133770910776623028251181701120107879409377318473645731088328721116715582312560478347434529036996764137812282713697404116184292984100629965946530566006019476007983819998387746442306325850575965999884345941301562928411266280612647384115516730838754263533580649842447451656868602662626518723830413917926269905074955445110542123710983168906666436885447306220855250929270429999321119334990475174956914761622787031367203188114681901911836336306538230465958372486485792601568869378393360952146465999994008370056575333328219665264398152424661043856889154873486251681008287583569576704786441647069438903633674356141011114918035450953966237764971957349581309159938133515801169264523371073465080116741354548392275051829076523755340814795431968847298497166309856485077394279125449541171070897006728626609027191364791450232860264555810455774491457722173924422810908217342803905401794068814862506602500086175875138372053184930625020932261276332636336506972552152053947114868999002220900039199349517674347762873397421819157647173712836405120583412712648412411234708008660588017881048468917925374193934538462665276092092044724330803030147016587681358527616854882167758789968249917415399724240093359848029272637441515345479553936477808557591897752724013586133346313295654109601942057572615453566574406944535024444134026862785606597382256241551240357253018714185170552832122875454361527912974607083425867928850048281884494320699703666334803138052074999842223413789352101705717076852074105985551077136868704466574177745478196433499626787333048348470884842330182662080726235958208355484319766626085927432691680018462165509098849141392736093780253183607741154446108448485547579493106764913920766378760670888845893523787763483300551671127836888392329774484303419303549016975238705331944367663257751268241512698054661158167179510419893984317167215109468142273931237449100308306030707784897243591300677487943028053401385272658668432084415016972790099478994790662927120217655440583643800271456081607069958949824384312588668473357793600314446894952357229809387222337611704838987854165425326588511288156712540586734351612963097859110860000834663363523333325076287540779335888804077414711394816778731756581651089490834771111309384094366047206891161395797883288824116461781134424387590123050609030996644888373853751419002800156125008367654288053416184754237193966900091420280108770959713936381696986404454298257392081736162782817003603881322430628865396401296697387231383815620068597116397180918995132692195257001477399436944495456964732178024570177365071027355566612897981434785626198507016654929878074557758037158919689269750976331764721961328802378845331057486790861082990312825647023340329907683957519888246991922004436764235167140831336825272740989713118215875304322222677103095565241217138327027036788626806113358237628817817562750182458731581007223128853831968230986333286075415565685922801622226544587092382118820557417765916049605482423583185709126534345342802095634616826412634305807813980545734163607939215945554930683120804374174350077409555684913633053686416108880406675976220991628114352857732932061203997086225499567787697156452902140869676485563454579760598047946709059695135477918545222551389220670448025218290430010362898787215056693869581609680701681123024989031066854046075331051408766802652907234457507230275716795821445027668388808520368116518011206332285545999489622668333888942704182609301409946379680608372030484578692066567515408674577224347073716865544851507706042155258207237304126075484356463833707689349566083328433085014836057380989391996419606707400032689508970213015028081391058475456179463462985594303778903664022673177009640219896045960756620167104651850698313871971557922733392182366463283635566632859529055454251051793103866032698604084262608403330784064301654997508792784284506910527574568076026275219323438227234313378962966428256148292198636974564310719438206482533135091147282734280871782722496881031363879029829871372610155283170986382506371116747527627483595535225911093638039082180358188369449710280491862552024674352003745893145953996923833092922942455218517993220975493685559227760139652468112389529623297733539947222600019391227601168052676227478934169395733917778621184481792853744717299849497881890125860122769998115558767597616017768763154657011284734691949953369166238714204040596624345608569207146444989290818269948079277616254430727133459973039902635225596297686790836509676551827499172732931262999149105889113467842268453240312561827402841289222876134304700522837123562970412976096662676712181531899078207736742176783284736113381637434097497761013823255485442149187525532019868226173912583300059976169052240695479242248679587635843315604572452612946585922606043909296340402287768922720491958531762861026473098579262216129376795444954063388232179630920893866133922347883731657399563129377475834735880987668007058873000149967498364720174306817493944829930311265063982747948189669958077672660426022715618981987379228345977070493242654975140600386178283555908668166002061155654119955184817544405988822652514606027589298159034221588248550009374949209036322301251134412503856629090147978318735968836973708833977984165764046387009940020058911493985382332695513425341763862958112957147851075837006163097393388589731810295993847112895663899843390492563976333792305328680324295415757826846272795856835639850513128389979213047425335100905566119143528829905696137471048616033686529044819388443742178106930532856584612087795722966050102775312796948708465602646468544565816543572662007641837905753017106912924701651670541188484232776413190539622829785459003555983164405295605684182855233633303563678886701964096408794238821974304262294515944209419105885843737334058893006907629609899080390015956915555841875114558993081701256953526374392339786464765999092000977177019927296479575429232980140643882309797870251275811864023249907837993331755777509284960321446481266920795930994320504783996869445348793016258832742660357521191961664209959003082756067929608228357106949289444199163294339077829803430007433659283626467544116347537413430407243406136442776188853544931160810291462739213655963932848457065659435784695459447712077544780740714770674820331586923902801855353301916618831952255554044736774079045366304129860814170921999572841943858450902393053621297747816603826508594009103306348707020558654276942821152077340625268825651898714001126506062092796251187361924963693702340924984487686904889513885917749735476352412575303506900127890585795939999313238651262627650679597791683448632510343722505791248446216662705424446277829183079207725054657855126625857406187416002540707108113681130580080926008283740490697267726564610056424236008011937537050292060798400942937930472335669245775752030393125077678579967786714158874134157052336532756369846231570614937215415017766304119680342803017704100682726688962686063683809669183319925624555550601694456470216908317619383769839970894902065138141182112655442705089946975350284034723941345177741772963357897208173662536400689942074024041641373663488107043428639726998110635746831865686593966274327109367545571237080347491547504778812098402025199843295827907750395823306751948474216700426882516364002128890953809540652210026692843808907380508275272061216652361768750278450481767204268478232007993180523579175776242555143558274635880930437094033972101871020395884449056778418137666018584650473367603587671616257087538927634153411189072780016983111233392918537080657402985332498813551693454392310824677866381859979171911627036912898637294496425570766625499102605165866596226897675011081546705846779546864936977245645972208699592000195355224027151215543569388682010727408981505201063795215167246039353881227276945878802729117371563204923178484609163225630793502059697071389367103023522952655498386560307595832142258103492748544442742308277060755740079473125942039373992210622546628319140195615145915960263924345412531857257297548149774997914691850627032753687057236673141708536805404309777744955572488026493279214806205878113344351584074841131181038859682734412342853805881156561210244158982554479189625744291922986414935776112596609530611769957884102481538738562289810340723199245613887439240933908518755204829866352005951995341887911254413376446415225707116149411816809818346535393358899305486123422895012853929246772996804377658096278220152650767482612833992878630230539188690051486699172724859629744462177019669576504734904818566149198041143210329879388552846402210105121029963785523799346956330056389182683690050732008274890488131119462319526970611094462390999099316690316630009609344191057280035509399252867254146354937800545633811707887940004497985726160616070915240837034003975495176045780425855882635593193825639787076056135829570778058387172411094596293698876392648600765448447078056213061889279575347199750216611707165421717914432277131669314561534272907080729932851183581705293410329958128292951191485620150747246894970091558972946290700607218535140642419173019697593744964837726495211246110002325545491552020162279818759088756598684945887291217657219505668359884306616517081281131633713034089014900530667133285786068946811038201927472857849080190734034210033676393042815008365169743222376532375429647677831334709644568664510401445772627255816241527900000142378691073300487858291780153606766705384897510369043746623665323478793612985574626178677122635545903609405976092036008419962582857650409645853037241207769817887880806254693468484426860466634188480611997691007641021189873344814730672141727635408316066900786501065075640600038258273628822592689727005798255762982658839125388019562522728272781893751838231169696055048420364933459874562988729224955381888378099573078053082983717144865964277692207661862426978153208271885153834147220939251130451742140054101256856501811775190834098807722795999801259621899739723165999812271960764210763826407166810123449737615259822851329995746180542398688523404397042604669986896613904452876367372171504070050042245835879611509337398942053472820237536523706926073253217846425092286320513301369977316227644303585603972698176318531632410206918975732910048014352362394639997719823727868884991818790589210690951766735493363089388415669400865240768557873640561036814802349114503046062867455320728539963305257717909454818275213025932578625128653068304656023297040076788330814455089904037827731204523636502887787292316695816808174511296259584851337344937047945796965126371006384748012746769043675159572330278275224893573613739167246014891893761377010593481588252081402992041507397359334592742599385227046161163583196077645445693590837116544272020785781425425534283596304643434697518185907701523491502126803447165584547255380594379846726725612819365234426466684956298742458388285730367901472694973032119025965787338218341393554886609789476570143444750457810303325406804620947844628922366617353541302357327013208544720422525598667418711110171574877025957178189005059341213691999109510076349479431383389963767715870982142677726343973503777427294044941279465895896088165447158944774311697146429610816129403630842330631133395552387462938654545881355370382168709211094927764109093145929746534969677166167791492876105344115120813081275663700999921272564914052201881589075885831324192376674196233951091556710205595005376038797958524565511382625176941815647537885441695853240159268426174817864239190439373384977700248105498420353153879108280642909452690493506193309253231780339383735826449211689821063242125101363371697150000915858553573172790300745825723539245120152704356537999249263954837865977401436842318986726132324790083863423253192980652499590250056519293860078904699850186733377020675314910432946799030867966175988391161477082687340105960591501004985976451695825783801013195703418401731445442550613456083094496517910235916400506053111784574977679149943946627400766074020656801812924530222564229602066341804354358055074285303867302285230252812248459907194934479503914889159099560559691334793013229804480194986940468140141626750849398473325215951263485888538396299772754717876349975828590014426431393570796038795652179066839953917833879700466280625968270324750158898718551902697718136060999672874794112333586248198067212379691656854820164796821871600468253033102814567436821095864330899328020228381373060925186593365947073741486281723302110354484064707944670017129980453678692009049786211248444100068214968525566464148461484899493943233388458286147196245607563575516004342795924014003393643392858911839461830627963727514611413816790227026712222183465593917616486939476284299526705697112444711619030594352339585574185088697214469187040435432115715022075627538782645382754861998348430789916341265762479144981533316631586313253718600762609762179254993856422974469151565554729622491888091447048549258783462590814450652591129210039832865298867124347398611340988648636874125415657191345685009356380791602925002761978777851480845845861300748407359394028836171358582847603341940261846929459947650343878556112763656013474553346887751884565094201293173420478157696975015602595778857042569542348654036049643725466896087717447903563669337861433264211359248462221521954952282142348651211417646856181854979819547119220018485715094185829354264961151792702418619675934281826392527403539085168503371606555041990681568696891085126537013811916251438931902962290897803990669741758460477398137087214095597513319824167039424027318674218542277706619487977820517470782127648419420581713113760580359538167455556460599437208019142071956267049620565161339127462765744228497853223838140524907278654512087277522644250493843733681841137810618889133647060788639702092135592283826050487806675105754702498923309966632748402072622211656714102942222558824357312867626315428639606526196465149509324081203970671105690148542692442308237076005028375312746038750599907018674798860570511676909456685447295207003845314632041547353623027687863080824291740297864048911855460369528058283880109913913166862731332911654244100756529327092637548174711605093014823240482794452008297776215131318862312270014529014309331078936063995963982437284074126469960782106823213961845319365319193134169114632445058958428783871173866014056469118016001462290876598842900540139016145221082007276527150762678620462869223801510827321646641001467329930795752424533085725776610409627433959333073078091891163844407127101004879202967200002386942990026528975519091178651670439690395404776202309524830403042939889888951790222597465675568272175667507102038183730053634617419048927619060669373338997896608106873605649382625242988427282170549168638563126233868326592074037477123737912800411585854782851800491097005709306771567936176113552184490641308221816802782603907577893761806477667877140537629739931459484644411711067748325335927353210446714388799274400062981502318565446007596878955858014140778124444066263071746118803621696329263487663184875568353452363545006967991822750579946025645971205829529800402731558555156404487593095418907102478375519985845337291503605478749052329004741364449103133806413272962163396010039244730787005089333144000974988462979708607729221737487929610802243821644970184548573306045340500099628570617249470929124251592868208186154831723233669558369568683569675089375593963896732160449360943114182716839338048417530539710714144461926100928969428247562429353654628484698394648165665370994613823005820434734041934585515507754058837547007766230010331001755406842989336647780364750280061800142892461246824845595209159801024551677537029701028248857422561307472297205800298395807645960281979971219329483924004774348403688180279396895390133515811337597030577434888661310229702138721016496624659929965256833772207753771998239553192738548482308510056591619699376960429582739093693305242808670543690160255157459890254502420822590940552487439180075120454463322083550528534440772175801130124842122062545993605555636561440933086087141849190892871459811169732475447166027609288301813045087263936245849703742154678893280989537276134669337296224995406173349867547602467998106255493850640758094888178030647115534392708477464794723828767834199617225124565835911755924289757185083619608139961175040642046103332120273482228376323168985910340709299992025798949956884223908429723619447749719253823432812804719252395087905401182619564388407296950943201032053336387679611778714520407419138209212502528360806402210365994830389809473646444419921669645265835101958468613929170632827523558207154719633136805402124840234295594323485333010391692274166366620841049213161927905853202380328113202710693998602004906258786579063175460053315099571297261081734674875980395069338882616706719266612389886890686372380657844108424005376505073928918618360726436899109896208793409135817538135026241065211706908723819477649295057640023910519395622061647619354221296740379322430688638259085097889163501533095137899332646534478967917172625788905824437868893495016120602116683464549591251317851076475501184676049645833631500551129661384055609144091105678510474741379131743353690390848247877537860493050906477409839059575996270723205392115380880806095373198002819232869431895271418639648440727724413276665914443381629191505892816370832477481904163272313095414866684959776309779976814161333653654753096361944460229579669088259058373277936319054415691897135649408740496337474065161859602935603353966180061217690349641975459073490567848501315024321299479446676864343618965114062449922741311520012092565766313112918817453425282363280560024467197116844785525791572209446686347607630660422428908287035151631329883163332848513061888546120370350335628321281740877748341558509662236514593849286329004514077985992666157126849615611553343042613823349756802906700772187216195616634045677276501116738782695639616048928480225605241051287480492218853039495973039654952528664092401024263596606978939699175500987248436828339399091117966837663164160336387900904264001724412642822937561359430013569611166603818745305116251694360814328622124970963107705089193134488456504137622065092270282795656016272693763042573501349940992934678634948564200640380042488100465150294805101773764495277573754778223513447021349408674380073518658649938324037329281115013356409084526508513448293838775161479073427150017696619979053944998794449748181879689976968138921304065126331283706286404628751747195855855236211328646392018095247093185434729352075828026189806603590746561650104187282484158426303249873356955309822527284282362699327857459856632161668572157538473889296945678228431775383886664802024502745132976274694790293962840082502035125100425622815575169894672420514068105021631278974361314499209216155204783720010218650990294552412034879022215522390133680890258561695983393729258158714869933321505367965828800015464679088764844467050594366483609622164243491945821253698007174963147710362862606919681026843115795503017243301990677196920126068281070803074020393269099823967706358288125712202493639675757897481824869573396622171514836930218146859489956369623357916602309626518092802820615571667365255626195351268888288905428684036058929599300454977224641839712682371953613737356937948468088074958725022559179889084656695664998694891134674314727029943306557969080699436441860777856820071949242999752972703754450249181000181995805470040447874438839788219608886517291150609520854452401015100060690566968328132885575410051213262533411061533193213858104336408071953286000326513968096025489488685256342253934659812238717981860274445101343743359636211860258195112722856592375532990262191962735293061507592746603206061132253939665878177901703522768809268339734750397848759266300528386268204243557819144232292653196725148104440804398380523100935264105084193592312209627787384949831113332143621593003837839383703773950254371601356421944559185415161105335097296837575378573687697199478630877811113930380993984706711915600776748587603525383550591155606779567509678273496410244178683734623292907546851889039419021373306233126263786594783034930010050665214497210855596482369325290090940897103577359407528632344897744904851676256733401180251636094326577899352986785556772966582019726113424471823950677526859336839974478049465857293836952469639098903790894589335319799821797101102174837668984303628400329188453016261651351213833219886094894648995516955241960362600334030182969966615917074017074517122686002130001605236391440768994289658824977609142316185415807559079220002400124982289123962116491266937193374048803848460697330240060693423968611534336441835256884246637585223185753969741297787128883407988424490824261095625711406082250753226167397194235266394563587912919391324625660932414494989945454606329438552849732790266986929096882068117150387394160738316882981200208515176528900520912811035024942696689301293694616532615387210931269229412769572578289990273876490727960316549910142443244760361556752539220285566870337607218663615627603298994657511041626065019348089162692398871194526302785507441797538341531644020802363593458767728461489614490319051447162158523781226804565256769673648680314848758911584662039713182671784005090327774669099975923536289703290333758947020374470048408984903730837993410233227314863960674940147729069725334181354012750657061973707667858297151583975561848756834746633836025391416895879348323887205311968476079460716144242014271419050256498428021892334481380830085024486461480891138278352149553989360843911148635141768261879840923088094089229565795641391540228498582994579842402781524716008136809723906893142566167830090465346330142597394404394795532438961942967197380434240382117701877280374143360881758443713405960118419789898681279653892616742064082221278431342065009742000915239320533039063993106142011681234201121333793878125388560541969061781099872897870751912085183818788374549512841594191220472353096549829228906667168940434246063396942712075868048465842693348464464360134379128522125370398285018401107805323927126421264360163589441050504418681638387355635438048195554699304207424456350496506754510721945901229248794902274655656043636110896636414661244018028145066214534934710758432978885379010610499887732829512990622411857234516978974879633481921989924228000690719988113943969912128136901765900232536897372415353590878575933835017718643366002025747136467266760971229098213807332244167138166269719920887671823013546020414760020314375799854383577293848672222882340260207562401460084498288295501527031270938423101057948879338129385131885639242537207089657833297745285670716525933157677564806241956106812434314532642016507883303377356879650383181501541756080689292305600441351202542509375908767929704507992430132356249873657169738269567298407814985873712426361137247638858901159952861831753407950493432508589466138471158589198767290764910714583564112339877540163021072963752133516378424860961322425751497007086184048551575889390329676665713833004939949731507451908423773310112028267883102218851265993014646198889402615679845954937846205335250009185401661613380343904031930515623630509673909466574329962912183413306400673282004964751353997218890018120125673071955700000888625424707283874360208625549496468985480464558326624740327469297653429696939356383974307107778774211419486570682808012152936560119493274465124077145597597788904515216889636245995341007311152519343802860814878415565040059568145957315282456537884678298038655843462752737492918588266060813900995452823909009713231664406200954993900807235533486798076049932890814306707364090686124125994036621543807591364909039297570530349077128331018435842459366494165720176592849190472907909089188325289628963846413180506688346328751545801294468165739922132374562498928915776890500813789216622042457037333846632599477765418899407088737043543805823360168877173732889560652898463393789034001349727460655881843649567351221749984431623720227303116557334599961209880897649946496392125497281256619459662837450832053153307765697530404709180344667182586424428685258107040702983850997791407456386659655856047570599107238282756590491596002296236481616564860578500048538820396323194783372195973184960508802771002851900936855481775908501760502536578637681904491832591317962457717153827128837493142879286884969081879198940094705788309841868542853604563661430048058396082932804652284386033018616778569827007645902361685639647778698917799400260286102526747496728063213677914862311594868258383015429027964330974163939799454205150218950827352969071005908092245955283529835628019487480136418002110814373052640258661908898839015706495082428902109337177768165359216490163834993163424681903382853340991542807348798290889670654998691836076006417127193205284194779987043686486439587382587799006374254971878103878134939613817524006133071502403891879573906922607137665394766159277638606825846516724686926668791857529028771707964882830544780069321857100471720693089990838907820594128403576392129967654623252398903018649301702534651397890425109096305763193647453351091417917726339164956242329455474644621727067613732522669322312256114297433805850616127437485921419626305300074074145253024916317040694265770827920951318360531934867290448871208124951401109878680401302874744996131385340117661757891669315560208469093246404848553117260549146423385357691897230353004165253452266473519431086834339248232730679912152232526897116967963010355469688371844776916005914783310724764772372236130909997368954375558331475326297506983716742777049071777587117862571315014751312191636765188643047178662706735991989387600307411054563529852287907452126634433121628179582493082152242757185074723523707966745064728817712227190097599933013430077757106359620806531768674642624655806095298658655780741447559950356127557519096263107170366850104213382158623426827720487446370987286214636145781563904121522480906604006530619929103084414600882553447412308079909122042426107037112775893273094882631888346068122991199335807078291743993296327580893917228687903558627321046197997316238094749396935439052644764854434834415770161488637512837731778943275316834963472975222316942377475170556589684494151431852348902688694835121375651363244636794481216506974866538082671581179831130281035857644863154740576025756087265347419453464292921915440297299397385177890279306834177368875720953769711144098375619096811135979624796852937267249226507984207187751641183611876177649119620058068003591489428489551157412877817465695771027493575932314056943666611268543423204409866738831664701193179734233407475489111175388357340509497407725422288472076224709162164059954508790961530066944376096210709722933073762876023136884144168451139172317940523110205296423891719036696029844874719111919231723403236069043549820569630035126698641155336032003479844706290247571421327933356128975695305211605523590064411369243386961190876428394352849872943688918034533812511921231865277581651243034174563389428293606098362401296636173255312192841811078777548557387845965748638079452409426789864835341166504713614766486850081890277915186618388666163331192704036042055045698376352153740347146617156204198501790412991175084682072195680329262812403596142099982520849625402776102393958590334889587397462822255276327690240548125255824448057633472004564675235682128635460568546474802365421669514961029076332953808673101288699875703722544111888384961934455962505023936463457161976965206374270485123273601063469083788331899610969657935899516248575359077024268306311691786178210756791730456544174549463002007904535849986302074315583378328504936877257084670883735032748747926371834631186741133668674709849081084761103889898843411609908818958248498244804652544870876766586575325962279471451236894365021664875593097447681629324545520640479571490206977127723934894966571567206074180999039694502289534194044194292238226061943549034586469599918737102898138275976322359389818348887385872687121867129162459144746754577311343802110826672770191139237576565941748341238756100550149497957743768293210629902811933039111950665794708030555776667512652810127206438320620438680178922335031801808516448561350920077802644146470968877190583101767440867134345582752107061461251426978834870350433090331142114884417956822289512080715373356602921600368389127819252191906022384136215686463768291603674514127256494743629297606534546796238726966410144357423606447930314762047046042821089547074321030343341729781716672356176432920805885591797776253292509180547310443378028375441780641297556699336022912159991284602390396040573322882335532362959134803574008904228879480790174344631492454608020968868183755803330052172599678095899571012103364667539719280053996889358107578009932674725894808923860878532455598470838517814656684071642858050661391376474596664222986678871275018897171433182566289668697366484886516550546796317426131216956247148434940753965914041235129383847655514601718837060450013996315396231446434503490415495021768074479744596109442217398120422565344532246030939256633442962537763407032518221603784753618016424187253235187333493855972530845069589430535186199988475945877089750575164842021561199788006291417909369390109472211972824693794098262419986093546194859167385014914074982940354776992897582497470145652171232879542744463605882742065130433566221166515601698709747419948748115932630402389650170713023207737504760889542709190363102019986282396452131917041476275103593837139273647042913461650896324771750478952903492354695032606845884292998080968460508379447457092154673980364172359649883688236385380097552281365004671863826837679303273298163729996728455363128877525240772436793507135232676926747113501918486262613852883878565403923225679737716033318917823387530928805988355037218227775834504963255159416513695047115602821035204761184168833138003180905997631322073602117943425600646367110535605355465497384378458692704933024590775614372563694325304280126269467007505039417746645251923255578123617505789207952458615523848018142583238981083302265719454444791980219353765080922292847041059945733857159096449776739107043454817943004523682834764287907106008840788916699268346022741696844123258638787739496267982629285542000313524815221171115334389261911288815201150771923896090589935569523479205086332906461961616491035704131789243581197827644824538945203792276405880287385371133561612337743481054787287372310435460609412817460515165979408256653442083666407309111957895275615724501437998196495356508814524221068199429181338628998719174157894691878385452034183101155091762365437999438876751648808700491445974569101248214123901697337086797789550416276407396983457020753302803318292185571973670789213428037489875346163999521864385837761564863550858657944058954654563454083601748087288221392535316305102198816280500844917905572758078618356876719429206160420440080002774976351612571443436913886611711333675774847138651600275206149298613884931933572265316001819729930679482607903174000041842204630218800547498683084589288245193232759775570479043177894197929540217222672003424983840551229654517333043896119780840225808066998264205995177492011141364928726510087599540189872943883910120452034842464488483884884445005104996119925020285462124861275963200925134305319248552648815198693638110840651603337872822100762802033456421819529140564219672985252504350795395360909019738628167755711565802823981135006594922701945342236130281078354397010998925269873233517878264855112685358339775679060786560838121950015508250344122029449797035718639319509235717656584714289111127473405240769329499836481747417706073426513776565780950609299854577201828154228151512353617457257680163255852220832125483979522411306428749219103936529458884075129079137275664634082390182208779568513366278842523335530350556718055919832793058065838361857674030774712232612107518453566789140753501319905895701843027815181345844197146069807755368058114782386490458565569336985818061319382281216276589079118262292064073276963480420644634275928889596506090472542697764491651052333423289879008247744220194172895862886949893982731422183100891257857114431718021712167647334537382606884301251861849832216142196100469581572233746874838177059156205161561176302597956075401043095009320019608813429150997126314384264147424865804119754537244102340967851125521914030899453433484879838085078599419169332351443472508604950081224445748396119445430812603801839856651804622337255735220221273008756487853678247051722291188615010148542305615777485490651817007819452890634213133650886293857906180430496391603659722587167618305956260969634718847468173478103385200919466142309320259549399863829341628069617884696019218245913936452761350812406487051505449004245975580845930741752572078546530600377416314355458834947528666998237458464518210813201453973174019242953869237214450749377353149994015731502760351219958826735151814136597518694420550632928708734283675317473426984491591361270886276835576157060008345440218655693261080152973357974989018663120001967126569012714290481870531527454506835368797313861333503613252928450802116076353535348857536185971252729203868293582592265835328342849489061020191443691334776139341448443334140977103021476355748936709115655064819564476039246322900967898139115222216312209301221476020238999664615318717056927705843487523030171858938159514057536751946747193665235261656182627677391854081189426040843455384431884687755349548068761072414729892127015271494132196400242459112599502684830850188563806171507700324077822346704943717462609005985657568713337885237139924836992366365164433826959164482773714101541199052865604234843054677574686948443763228677962727708718960733177523457392187775376678134878164755180737245303148535241132888333199592553430621444623096664244702526295049967729640654745657402244079176017746765802114186503126292253489841288678848285155845211435491929853005997030910879256385219735309895240816265389842039368568485316007993293327194231952699900981794223649321611775704349546173945214394242139644569832844904907958349398200366936379948882223672255908201980712013876191026975866036882870816763758275585805084566627140604068025290682255591670023153007011443675392498293507558781779058568128016350786849598845095348985375224785629638121947273731357536528000591860702847382215854735898680367209078459550806971560788198479368227386742368706710487095681596684183391818646999614764224736874986889911193585550228772640003097428770485964660407826726902614536445443148822147136034482244378910562837807667307078069252423823278269479019866206983145062365598599844348585671575647086914294332340300269505586136691350339892165195825899422645848796177277658740269907616163497821919456790728275854447922330491573715591443731197066057611845052170529722192221511255131256438062829297806979864905219482445310704365890830819072651495866506544738915475846404167186094463377071288443258923211201893053536806565408723108480901191011009731410283840470276288953585757068496466031579628998677623636078917913479433803654641613649764941431229409707922794173958647791853279399991256090882383426982101301978726310070183523334340119752899773088128383898643210751187784527842252319537572932356663766104066682730879450529346929707351592778620226883646693951783874768707496121313198022352024418642453695121852334330027389050910691765461503712713501170511397010762792875366092209001997079379751236952005861367742732084711908185358136353369929600201406804541477202259419273165895392929183478409180455242797269193205296575305827281919198833380378506490971276569409558175259215528361704588170849827287499694778986662270075748439561159925400224821269587300667516959907357903636010969549528005835005218430506585027195743385940005353462178273124721044201152698811186145521165471322929228630714674598471605908891973147995422528573956665698812957038311990262973039787889040885482736765113196436834707064732164624886560415573161995260157441824411705758357261716427925084152109217390699951369430255068561893068069912580699538111225614061388200873406050513392970315170133051909771893545437687847962829997057104639819606941147234086154568063079434507350617327379077710905030056408445780762096380561425486323114518132070016977401012955062131425163905434802438335359893954614446130535858128799344424658658665186030594263627932683140822487138021500272642635985481240749780038254258122635966982325257020810101589185238846759863456736546091262093837978360809128310207088286029257159021529729932634858703957344242260481949329095079705976794693894369772996921645404213278639830480353944974814371199114332952724724272852010694115005856434017855007621074840146374338787669104111686780077878594189826059091114201800320256863015870016161647052918849533983888518909102288683804160027702040295960736115146775657389517077076940183185572710370700834931712218296206940839245863965712769104086358331561049656155466317082668562719385358098888216259217341404246560163644004525520402611675563040859855412832185795058914995560176972771011060713477036612540431911658304934722096510084392496756551854824565109175446466778814151481940543005453825131052940064963925574007411133503028488770215482691865927631659608733169812245905744650936093086901492763397752587564472190626297665681164052330034134345172753546070438013476095052996512643282460838975033831851065028038032727654107945913423101267538568063209462752779797072509315029673833410446614017161981808133412567823094913831083097517418008854040811073211153522387322483570698223596553934851818653405180568289793918754684820343934733897644975513194966731000646866315246885491693571991067656003542465326603576371176182836348829728955076314704889801036422257179138732344154642308157728576319767408420858047498044321701073336616814912203365391470799167817370394841158405139693938946454490464696818225766994769329712398149297369483147492074818875293535280227980689783256778234237314856797493012484144932175470048842230513852455298163809308398976371675092713586109034969550152991102665759021101186848102444907775301330915499260829599217634027401153605243744618437795907687002204290132546384681134918201979262651094306129419615956590874608404184565769714973843398907359135320414583512941276530977074172051581298102931034874864267515486245415054366990403764422381013124589407681546912802270829584254250279546225096200361948746944966417629571001711426189069336734618144029566143122067616007751214840373127025061160991778893865974413786201949639093569065419513699385346891182902676145887092392897327722708072499717984537449254435621082640932638407158326001755535592767586559048996731507584749549988707306414230289942657736710593300177569612549947197678054787227250502183314096595710533680493741839716392901499527507542216323360734753774810102854525426546361006471670759103156558044113948580795561380822439715738148950159766579893629096173427856924929680201058573521541955725162862126531309703374073578391392491170445001218172328397308887367056509390217507378111937195894886113019468588697685499804960303518018193857918766072970984068765839904347754475028356079658470867829045794805127819186973870101232851369173671553328781104179566554375687680695713338514546858706946259640638396968716304409530553441666912229825347707154534658668914382589346378013622032999486709990691560623273098596292624665473487693281001619601548316921015252113111527453945285667656706617877931547485458377459910652136290373499981916081312658691138401881796327715467597291355479045927126155802186513800387545437439737762128039270755327618069956414637245463474108598575696255793263043678424775594682477503697084666875338429313236582734203476611158407114143470266802395175411619662143311906795827683056148529855425921362808729014917175653459987763396482011917066260909196717099107587204557103283671610823811099767225529330237113052244321240003966483753057910119133269574052012685304104264062688379815689143109573409637322923533559836252464855277577414197614260749068317481281129936003962056007249983867096899139014142167595807124810653592355986151283718789964179322137312026133473795564873849099745810437488400741637991240605642188507312772358286809950887350822297744773350643858047230372333428411997759372237841495542466940993409489335680079362863770652524535822508196063729014201486088550332856987197041973179830600494899854055239739178042819680671570183299111124661070388654535974373914252773766857790553951883654552484458626519286586702397011826273200920885280513975024208215737552698163687305634670427418972324967444130124253054945875256969014482460627481236060697297131520844464434271412919202304652918643206064099333554050214506240489466837576487601165891821059734547788544346866887588789788185524401650909079751178366500582339331993130386578558873960471073908902294819164139664521671232267955657445084420164795789454455314656775954886753033752335997024142854904024154745334842094394126963838811605326340769828485842501409325194433923399292743652309322585696866787551037966971033282905700038776981316659511030121317349212926608675784609420302463151003240558699867917267355441754857222211706786462274776555143613310690118189567858069689950010722432795187982036846955876466462311327228579857953988740020136259466118652014746082656564238045992720990988059203084539970002567056061093648108486085828245842941283384879479092980749759531979725445701993741524137266350805141011430321597827214836337032273347892201493300133704166203058195089415303902038414978701708194590804954877560155548983413976918933167129134711733013546581313296403024867714281652859343617824754454992717759987124517127752099536405515040149232232109220858877928574320660961305553224637629291696789688126024634976696123099397734921535095027869535482466735250879121620618671053427475958473109245601619329378530719840216411753136516625445136921456630707705153463588034382750024081014624909247001226536332544838528105804159790257031857900334352515671119921639266409040259066568075983538410022241265067938557893394912116150285061344350691043724779946928389410609480933236292585458543236766016343101810946781816408084264668932256585643129410254377341299088641194899672105773056138336123574049120274161640547662924392543264869883019981243726578623583735797483135500693717261867259514686373637233749251833384238457899594380858374715618966135663404584342574252695160343272503775799434586423232479399138276858565592208148744383091527973559456038903628080906568621532596277553959807926867113704083617216620955732643353014511574756733875454929527941039510805647462076895379981503719425447632807596779453350251886075024577327554222834466207744773368076219119747564381666113455535196340580631709195423711264849003420315056836270313383612576601519049477032450496620481853938220446720153742507066254436643936235770986909129512806878638129272074434776961084636325741676028162891595686586834255577205170991805309674402754325700494748079230493813952055612726054685779207005652794732446468658214577327311307572125384717995935740759254142514971140212516838600305938064050054068606796661924533956872436904658254038307826599154607825607556949137807944849127629534355606691262673694791578805143988352051883429094560307254685095327839889102365512572598079728342906970866918614310526577988360364041505670357071358103334405184755361889235308702435322312296923783925404065042379550891221457976725910805246270610597276200852658079066224780789084492808153265517170708480789682450631459249606712373268722338399963651056254863303484001689193559238168255813974802822509489788617926363793047195602055914544624141216421062233052963650265779104876164756083614606831133813154571660273670382810894731884542119556373489333016158636275994574229442702712565444963528195060581032740228767985070125208347179364340214507630452656277797583568882467599641188340440141726590611461829999635862689027115036372654546284123054173514259684284630017944797964878168318461277992062709218485665348033453381572831534305723190433114909081514923962211793217884313023098888465903602962983294105013372031134124593128912444200346535406088653732864940224910031131594654969318807753703480609571602786894229214221940105816413329415015160345207676392920527491502512152030233368445196633370660493538787454153528942912404870756663578461381026073253184495478166252702255673140719586293219153812403644283005868976659661056275908835445508485303958362603591703247570134823354767470191752295254877151397998870636874339755918415155031254401795175305109829785047465994167784266902833492610331595964438239361283304363573853283983886270074764519207608747853008389870945910734723013757684138521244968822889620528129765892842727552527318542114412117291939936091194695030120093807827509774750975265109092063503691523549503360213439000944694399044108698921380127052073495842170631424544752274796161981203002556509348812412399862575683669420778873460059290925073161445269566392360997027385999480192516241627602532485191397231687869532128130899236416876129464633130366213302036783501362783227733564381712183695780446040033377469188407290706003219105080344716366090332012851328923717211933597010785941565186931686801633899818881509246842305645147265933157868277416832865962475452105745435256391384925750357927400703599212068891025026966352664523873966164522829747508580607408049914899936434403593070601611362088352649783706260615391177067342876418861634267610054148810796191280070294411269428860125242130786388533034956558624398303680710068094420206104004286541491959401476129372869125705815945599189674936719662333446327747534786325027196357254812167617730779545440188113682208791613653345698404866136621247738020914990869817780070417081507906063592588598193058289227973415894517070097574890716940089684098633509901728167722459031823007954672357985999350192403391911101395063618780541709406093542189735396560597451153928695555771276093169777478761645591525039204308626978145113122318540551120351695729576119285593838453080297837372757363866271206963108131569256860402635496357647587386885517742448696134211391413076881353001256485748361615397407326465946181228667236324862193435498600910403266563918840333414480766082568316841600166861240965208420675590271261737827396025167708669829913648940971494187630497474794433142141295161174451012177013119435143703172010483774995692615746455955456708921123211628253786894658341796439006137541325561149534529625095844095519897911166950721447399132185615544600345855552106699768987697593816813585916622087109470974752262114976522140404933195755566465816673650722872997442012001455785739321023827657095718495489183039190852691748477653604299950868477311393390463093987278794567659564328550907605731293006365249144395292688452971020379062061522542062319209163132831123080976740117409800868160563326286403120153394671893701463848945310860478426042962557837504564556048941254035294039811612361943415630880087927766484155204426041625301123747620204601078467836058296569808980334431820696713269169001986130938183343240566956388136713989107242758558144541304209543192461578600336776599463686996236585783470688696238013769524157640790689361495214999365656879448859988613291013639849103273684854638603167281530697670878160578909982172988013193020556329711084939769647341074997512447418002596909855831204284767689522948614719240601707287807043211787429785142825767953944684036117725459452921003068024889571256107258359544241574974301687286473962447494495611660547282880843794260556046989162101647029848095939279294832045483297526959567769041206835557769931307475657360187823197145789476128583515310101260149002357965618420861470126354847153739749221682911213294349307845889460505807590302838277380029480980434144696963943444212889182842925114567718394506386368585165606237656950791717715982825824830695688412692758831889795082967059892731188580154026663792349290082520924522154018212415358795515247008509434392565803937810166427577815316405905164680943801315271662849525201921950260759730705191446541296146777281218082548731597431989431826704377694673863006358333928856649650061741828317368174810277865689153571620593144312890500368557690155761055934527566811265206880629361147640160092158835828723784859347708379087294680950254924168348548564676049695880764819313207544603515990270993705455064123309528144962020327768285275153009884615913849959885096986587216051916838669422212562301338967012763409563003880583820927462335383865403462207042166411594695718763659906125934070522357687527000121337082891115823452613670684264352355280578535271446392479305674699906164646841619951947083363401324360301699282106450036064562312815568582105958374695588890358644148141895203050670570720112192011275092744272183713463784633208131568732488578763901783796785981679644439986880429101876009112069791673626033482863373623955381844281182652637652022229485166840770470003316352831154875899310004293908698138490944842039832652278716587576851476385561012341008081800373308795365582833722720688093231992790718710373940834723641392824555041826873665630874724147051883809414112058123925278023578563623503575142047052172150532996603607752489286144703638567124026497510501274300518702168687663795782355760553681391142594621237642926820235076240902375261922633435501379430118739513065263693440962702243967168508550697520729479745140288409854543673300925732963609254987796569512481421933993001255095401803864556556272208034759409347832086585640154940657736889376076665048477140375017123652217959676505987916939860958794833663258323343487425371453225203104685680082023247197189965195807224136630044989045787748485084598248083345182079232907332534097887134837884611479243612356031631756645646100140285336321412088680819620123034845906131736175164174779573668509599055252674780869394474308402935170371490022215508630981124004880377161180305765049573910400051790649193320299166081398074091875005768557032442243632670894161432114529348724573608973098316188465881034721071375482409503496740105003963478920401708942282576921969244064536225197757630003806574032284621828234581220240953850459549040340760724870990066113717117503783370977044587781125673168886506531508072300772302378457438722528418669677809057325345846531488444980732200186190871941559469893354761397859318146020352125278288292256329424628289268732693383530610130174016590505404589616757693470531382404875891829588192480842047361418311960383497541843923300311942634490956100962497495651939436474162882499342215264516124533739690636674529974070775749130282101219717820382267140778150101655668955712358932078691802443908572148208512850917109946826665647111941234065677667413155768749236306778428769638895310044813739793284611425552541261438208483489891781904369016299710153084401174993520373653897711420051258041181206099890250613245182747925796896555810626285628352702028183601551131747942639549820354432323646985874827224070257089572977589672086953109837126702127663115639717926195309721925792940685648829613305177273497483209446317091012478042494687490689891697691010872853329304382178330298746829010173629837143111595752098213228997097283381711524260659652812052401605791788819690257006821900722744894069811385414304737890250085092784864292924856344176949253567793756866470447310149473573991076625458758326147582891968327152818972941229710072983970881049767837314005457459960227974551936984934969815248274273122414712723015703743503693098063994773913698953929418700794260104216138593373256687195127962613888112646358765689856330890359056873622569364680462040484374805663544729083139341607893718561085701156807251301369099856772070860204950743731405164411877631196383754499103617948350187721728303116376848034692220003055820438519883892750267255592232718925539309953482447542164771484915375139193572539318577232180733647634526406722102559350059632411318633161331973995035437889240684405929606882103077017922027784629997797512146184264754165955494238020452762260159323382884293519169186674512902312207458442844346314070269081255970805505062255945932378325650303220215699672889174084217701055829957229555067119568103385514880159926083251000003589377407642636464761635701327191314140086233582198043620741195416027827392588091168963812905567623410206121117848929976450236728542239898944793291645295799959777420699165740667558080206615433621923996124454273616910613380130557095921196500316990075315760915368606046558600414528412717913063611763184910564015165185280988978489255889761423609163274407144257230419830533542123851501113293980258309326671372869733464848895360253639762668657531766775858645713100939704790642410882094267065208157935518932489857323761609333578399493239323161382194701641672488780332313587301718703057500181227817890261871438829338554096809325094332596524519580215850900029035209468267616540703028332644719808775835334058061673656997918324275023506298900719599226023788836930458237881663922091580573602709130800539806943520790968647074475931038694488139082832684878138094577258680552020774919444983823659210048266186239489464587865072595659026810797220307555505810440600909145851573933947650907559606098733479893226159392436698113962484527383938970336986720288108680580333367685878442421694716380613179044696388351940341368820918758177479315613185868452002946605509070596263250703109602065501734513590072492986040805854903673835352027821960321172669679005443647624231238781998761139513895116283878652179304327474779646238753669083328842498072397821573039353857878801427986492933628814481074847403960290361946639818466757369462915331788251027024311206193338471036459557264544211059720042716458378342615277820136508958872248659924554515438871368591793151385213818302440054485102511101494894778966750898902117621624961679754379152422379435354218229172243586607226491909170643046162418169041539523409971142674703815405564919317962902265219337658462287033918001876057092002918033690943944108952911587051235910363696516147287001898727003718347060061121994686038065613081151216629048070009176745139109128534044880503356523247954298792280386893642900601586547953307340697735209162086872252352197142868151842831791236684963706729562796914860279912851886419134949341304850705552211635145870089866746032745641805932678801558064992533080103196213939661805562575168414325609653154892750512096377018240869083243670459708561976992357353650172932009325739616259807624841480580949429057652411939522421363373793239541008983240144829442971019005052285927404566923748081693072990293961135727682981490053838015135296919927325476301525280698096638020817269134524337561316473122118980065108688511799913993605218852266086296065193682066791737170681252949892399326848444972934794945524579564445082126079833987304893605963271116471400923747439738861581863513323318198533781661135128604850291957856706472105376759129129307709587556703896592372507679469950855516457494724007521207425408315932329944230458122306763763200987368982804749539788115271415201657653886647064296572381351797309114379380708076820569131362560576876175476440676244648981230831439357845122937769483680055950342800696140905694787211990818009929534942590941699269730008502941253089699971640943502278104732922069279734007866564620422009015366619973551462387279550872863181748130694958603498386985331063121764271599487389990042734157055619994614802148111699154390083845418235984664919283188719364785239154695577065794453244262170458399315420928350327629824276073087646583105351410266460095476797035281153006751134893262775140499275660271095783664753290637927390197248549910637793887516925109495817819088386886063316603617914698259351751965175744623143785498483992888794949332502491877725654772597875006425566266227341192957454008491779353403242130938998879388132682171512322652234793245006358307305016114050944367445999273376778209228178251994495596318279959305968154656347430365687739591026082749419796538432872195550451323041628545749803166388532628063910446145104635836274957686427146410690730920712972264730477548000847161864689239840527323670607021633669850198033687309692535682012799209646699356410576059557103762895611735596927185919771639737926164741364612826740724042988116264101701976427672406312113206512873763835033775466867043616204479520806508235495366358572868107765722755186575824124718177832925845512622058033164807941165969722752933494869951077500408057401687839223898988575140704923391405729196036484635390816963571799348218233748887866911849924464584483259215561058015314268786609912120698312797024796902805749605482536910187489539157503641160384642319280074711901340632920846162588275232356849864473275288871905872289189454637183326534883016573409347885021140902440556516524899497864484654994713752424410332307544668579542438656046868679473044531085304189964651851607323710261042281222885846685961691745517183055189064520090210111660644510064488291954758029922525599435211292002245410623708100398233450468377651235224836693333810790478163866784042303845495108842411058928641618829727636808352793008925537481295994964964809628647632728562495087059749682138635974274510140786134245996024521905012001989973360854679520919017146647322921933144754550988173023020934513526836730722264919895778826333857168867772158437567286448615852907827409439275951100891330040930231515404229145326376039534547659189883540779835800885323372093223369994176313245321384396042370141203742634221226560229517872562607316621722950628131095293084625597531587345434160251163987269884604335315264430679142051872729667562309742779081270035825388797534208964212366436240983479915197811740204572347018585570436573083085042736617144884622578331666605981505491626171042566601328347827253817344205349172897511272977734975090729989731999296969469978219027866264260866887182438479749829173800744912850977420979767901861227597078610331130793592236769197737834841588110534539242225330829267850728896138546955439658702283258105511168741027411094602799930344792041677440403034893098763370382007302326991635241816633412070646410270355578752756994972070442724831756343595280159811745132297389222218282152664832061194293501408185648649967170590613689208282035275644625691255652576562822841428907254858938354132034878902014655441908079305544010189968573292918575187043507968274719990442180066587861475096826037571725365360606150185331459064273441160113014388912665266954613814279766815709419927311998953305021134464893956051474569549659525990278944612023784977157581949727123316664180705919691148094574088393626236022796187024451512211649623134752814474684031513432543097392006587795216867745469113547277533804619197066385259210260885056494783241034964107342951246414867966460289257682344068703018966718398500508641883262128779060045596612981544220656430031153656975240611233668587794977684216030635780804474872147444526785888935389364822996205375986318263652959719115574313550565121130947414999751954515776619121443032425017089729143747606386660807535274431842481849405587200670911449833097460654857146358563689086550855010737351262654207910021267172156246626843475904118455972552580444140220782009209979386570427408992346351431153193779901007377410463216173257415683882295332494355229139093656207436368128207440883664351480888522570604804355083063549803727211930303401315073812613425819148771314581626878539403072650557339253622875107328920956449668126759553936414702501516742228027116331228356183889298869886525256279796467336263553280736613269261567127096849512689603316488222807621948555081362243418993626104935475355241345104447477715365518870456385637320363706376885838344012201513845043083703388889954798500895089269686515825191421679111334748124587828756748592736337335599512512572571404380645795033351381928742036875830375446048672687647639294429084069741106296558208237992034194643100321528428749371835952627690795004740756813105626902147079250725922436820470224905589096244575456460411094001946582858580738877777540830190960965555401968092120420598978826536098896173639386353400401296772952499017854259675734180438943603244136200205898521561661657944235552886845477761298757162659494978952365951355235454495635495543211491010499357278523738749418380391169192204482033833255357510966715079737750480996474788090603635334132281096633706946331114667334738803938007037666194633028469979247077070376382292698448355692097683218639834070456637080191703229411536761665702817116918631417149758299804577092583417399408926810883368197773096346115380316146123378854786573410440492836741775558228435437914802582534741344883005758270913393643970026510415406413080145451873325313640077179882664688775966008225683795876386293910081286600901084556571402740074491754241781278423583844662265348397076371886129213352017644748810253843469742277638845416784647502081410268831687820867940400195694790442215102781654901424246720181665802973944659633242563797313196334235148347373455186056148543172869210137817267236885153179037460802936089423053876901186766133263536442216604401327514936046503232385864350384136693235399483807808396006118516613118061231110446811076417697387510194543780366790677446352435031215039791192442962308221149519052497983095985759381008430494673832516033248378936927689495452376669195264490168617058957502117317856646712250307133535227484387575034703922974882688409517631546186259033629125793899664227536006715070015520343264958252039175085021900595330773864889428617103141712019823984576492912079347684275566519783283577310529511691044898687254023342709482963843258746044700017061117235540120452698518139034890338441171413235162105137765159876229093719758155604621744819911901566874588225531822594906882438046697289453478275142316967936082527709439978291357576165526017058349889831513969200539914811105986495752917351922009800364416759831248995342124552467130258477241129158648708667142082674406913259471866459423945003581196492778213295068237280794291681120887896242361471451887227501333723836974539562435993087721133890668742694058623525362861644986531699919552921521589923959153800964258254759941657014251291080128044784578491829515987206150399624721983114098955377906829886212163783394720157577422192591719986536113875816306154377870184929031316184248924162503441086564750179589581054329197709671957333618572456053557037092493585425147271393998966286604223029422908540297178088256158649250201539067471828573637001375948860922453507854476760242112059187350232650568023703659694456350458422485083885562477068038649779667899673480990707571669873101963599381297803065467840491410998978615446843768301016812456604024721397215583838400566393954788163109833192105940721890539357166536217211633496059009925253029212075662648973953421373562217376566942112748422992923752698253818524959909740012686274502257593170379095274340770590443884929013779380595113298600413672176892182289904617573288319106147453134080481543471403751059250692128695853744349980625911132026998324177477087128374272797552478635240556096022779218217428555914603844712222142067364715326581825301399599739947708841461063691507678293040352014651496098077257415984135200941962578777027274386149648824396369463354117028159915084958971589539406581143603362397884447229367213816027956551095139551521194249140583023955690552713366861797649718632337851614345674363421713666681766889365491978475455705477446095643018350657106642482984460624072136864316121933239455577656023557044661798224535358048467674181040243083662846170324138346220156983462247127808372684771349824417720943519775894958783333494520620307696855352094694961174986480881611545507693113531836270352861546864694197768599558283364471733484130221500153382947056328000113642177254261411180271587087303812293716696243986281486610807132420221489339140774166256209145178924207899960047014913958716082106361673502815287782389595099586359995910115409001713015991699966338566572370180002415651958149078931196202327866322053664951934077124987570922484698603325155835020996846703268526521798425790338886706356366024936503429049318642735207728869791162774488684141493855955362942780582671599978617024625210025059572124626610642270613162745269812085086310007225014551703031246703798276683836004088999341125634926961874082276864563644805509187331157813293506399713573118866934316500900865213127408378630003080104733828443060372901170017392434066702495000356269072420366315583767227411922913663661562784483765237905969355287097901836652812651379372031590961748743247204115997165718202813026544638376919828813379699086523793469269041572517200441698015185696617585540573737530063511909714667255361802612511887326832329024869813086228692731002557681268336834402905880294165984881515483460672432511924203725946091467310056149020454167842960688670177721019751324836010362645724133134897821512049557015552559119218934591955805756040473958083855163963154501992023450378413202494075545185171371730875336156336683383087246202940054816928738661142036972661330414354104746424526566780048735798267578249932226365851126850940511042393519709274246916505604566792104755464443343026161941510877424642585372816223354232379577770125228867852302864876860969223609944932396087828633720831851053439712104923430909555193268596706905149998528880156434956494879016573554048634211777604053291447300121445849025230245826256595240312480794668474918180174193884005713668305778651587922434107215254771230265502577890901123390228043431779050870758900158815880601116871588586319421354301456520825641403882101485300240274557178469120589246461647376096530502785939779000744980941580845114273856645743385071201984717495107874614556568930444658766980694676930910298616870258608807851221086810768101233183485500266931892813456463408390823128454567407947110143690715446581315184286008190367686677280989667085967124346113612567940481691666267935195993724289686874123917215537513223582446904397337084005430649550300810977987598782631565329353894618375899287827085095104647158486063177495661217677722126403374205637995912831952051197483785191321531402440916337251054991970115884196197427993086731062192268704854254176644792837862116080356648579317103289851795815534131657514088983524597149498405126674481336289564754008829843598332690831476098396737274574669348205402115522012497278311382263754416139732131060563623331330931395258367301078072308121250714775495183303460286535802135899247120970392867894971218421714756497343936941829001865677658410893869590514814240548158679312457393534547328991715469548771404304070343491792107505428335959116505183798694364135936017444944284771725480247667335471930437589862328018984447784305542730272791676142059861822960522475272742493701332779251392889721625713927291566206667748034053848111967506308815275663122170597860551973342843135654140382587311611553935902148775411385139891374872422482328940495500940224529840707169063378213195649121253340044210850285765112870653704541640683201304932081228259092227226849490686873018184803739490737638499621951842234969222918102029975040439472574289379561925995750547220665913673588656878423337335417979936286893480986941104278155474745353120268443663924067258642539155770243950583800356263929732599179776103210240210071604789547299995557781446033337721477768474916068542776121777856027067227205545552144268242776850141631792647190380658165157776894707550947884483280888150818002750264646037459780848291971536654187480702170766983769069579227340078554536506088446639084780533554361258406878029053657985526242370393617384505151059627311061262393253384558238627202676497759044192675782218742047024080807264216112376933035134000177935936139549410104163705623212678333081577787900048758220117548526551441954083810620189404587906482158420597670195809502274977351032953570879990004723191952401313317581896033132252830574823204749992118384169667285886079413025859152942036342457997677723294346287827918309160597639532337241532577496186643832544610311430106144222589446109619956353762219142855756588809303937576309835000230697237040141437060774709876105805027299189592121917762175896784725892796263040247470627393936878285719691415172205209487986812507529908958814096735166091650075086795478973762520985008193430575728514823274913051638998724409748692103755577094906634306872511139097034230898522012945213268818235718220962811520026929149443035821131117019184319002917795655506324480608206951749562462208538691978482868145343902468230655788982653194382677485448798425632228578079123594084152176373148619134513474774127471790579039588175079511474568537976640395907057383079893184929022046244118570239115439824668037053424121627676080148531087838561020361648414081467542244988302521830858258462278708094632145708576883315642451174878681042923896647478376216384775469074955177478799074485498560257780075712932729378942839566511972584107672130043878863489292333043423957618562078028616667619228717802691355236151662987591595481245169107727453890005753290981286572665046301121472382513976120272374751464801907843986763178631968442258660776916108539670153898823986697695238240601888705192536454118654450819642339830639239513433124066795111937477927286825623321601577231414992656365270712622570274524371849181453203200684905026575579741626787541535609591264306029989321101861365004348704238306059172775770905040885439765621830622821189094677468038363793653045187014361811019547022795939378627433810878131156505592271497810344700957596397672549549629750973895722682184673093652308944513577862412390552552495294763568209203189445386889200474962191017651258612357690806509142682784559205340206366615809168406720037173009076778045711138402988467321110781810952512575421777757798129136148761023740891320880498229446595726489194124311775077283391218568067225686222869402093746399150783271582626232064692292991995903387311427006037281216365622625459472879076808622997950744251238041597206197430332517390684250522166835194078938456671606333531888312511425687807930716703574895764240487971997708112738208171567973030409954152318441115540967632142646040040435607136629535149601105045148095757792270616357790641998395245893022456898728699320538494066666743498044867935730813425532737234713105433268751260624753392830908846737083357490155509394172677832456919761575384776443373054663671340534933439441975701269208581275548263653402340824996828561808396703780651364331637842652049930895332375164890693404625023230945505651841753147010938031063817323122657030824298878867359619550208932501462341227994252141162207344429770483173254249423812137011077755884290932151149722891639207083187365502053208789484655397891814498726861067106402016520798719932041113643483869364578386385133596861710755526011220128555740549755564518010226020190660175908613994158451929420098815333982269849132979348522191973250043233479357083527947303514175961375048099849200031633422253025675833522645829477543079708334278655714457447602437688580345463993392787869951458723282092830019832939963979566235073670199823076414287739708387473253469663197014068949570936277058229287228217801848000179598677720832925124681473690723506641696249010137679015090229230971892403092034956709930702060022774859019154119866852910705218351926606738601165286723426010113659658613106113359517271915140893359161368776617360012392309459232477334973816945303015447718238535969630463322028574182452874485998260060371623690674016088084195828109174792241963317998457381607067564218011042864239515973595070886983451069948439664173869112405910787245371983742416431670765700225320757061878636857034772150203581667928142970887266216795926837821288100635885053376662871428476784158739285782084195185410149413605604598754109089944661445299447562772277628561586700406417793668472628589429564693360775310893510706802434615403111357315514212618707902692970787132873066855858630060405942965241143597624569894568683321965912761196285620912552449521900551143184797420426465305262841745160635730048524623935753700700582092336854654967107602211721327809518062914260691341163721407562565923575820013484836072155997978023076222538514328025478477937412681767125601639181422788173733679558556358052006893515253896754921962721876769652922629534472402897737923344357824327600987717705827674306036776830457555035409995501008734324585547336462282199671297138569129247439752484353594532377796358673313983681534567436445880541185363474379154708073438590654635835912979125444189529459337337271591470675638714538688412473437126763027133368887537557414839205623594639698754316034774935261768618772469553816622796891159380243833323885120855671747041352916398269694144519717229468157002536872389046174260205270945054986400040152363248493577810638639982945089470286846168108452482079097967935906777743045035251673088873843058207919088765716072185491004904772129395951693443228203843280736309502476477508042448822759459624195699587949029029248549745016881428690852852792063052943947867294257652143598082525191806905153758667499623897027284651726702550088996027568702438468190444547582503195885940612702608639292609082102120518445411731832546846697312559168775055839863565256072919928142186987933609907487982205832387263293609732386975009996024395648073909557783717065966571411350924769509897871045673985958684468873573704587313476064000274291219601413824211195974060417236484864603393805510231031286467286652525453924591126756653081270882422351322757503402506319662648456391696552031186336350540195449944496802849333668366429581521199093510668404823383994751503355442638436096901457162818674719429231619985151390050127365387042242977050426974367299646029395708349034278161312506299814636253490536235526471654141366113337107166548753821397704475384215582550950292426271923860810874932926280990372893924644540000751112460902897717887029852323649470372352576757974915155116537548745026916600771787552916882473638423639729635337265436048604335773140679627348038126041436976030059908928756817605291044393899490274912163797801005950663050710049062568673410475343314931191595782125164629808719480450787835997051096495823263589174576768453019712961699151223767650400005561150669790401437524368617099229321796282833475913442777413746428423170397818918588005931562148578189008394349527480960575316779493872176565342239158619523185772050328870406330087728194016665030561727816001736899083909217362404966367097913551725230287025113377136399484763258660081113200364521467345904590898440624146667423512897272482542590202407051017330860270708002324457956707357165490083326349674194716060382936749421511856818687231993505263499726546549443660342728912141949247469090067197847637067202472589114787827091248340287441246251428155137074325613461725006713771970222288665789555392574481461267445630231292519449391310361688387754179831301174348087531733238133520462601157768380998870897958304101945439138944147229006485607561330096686535799426984096580443800188618017154638471600606735849878300939952378100919290386212174768962794408876790477430523984809499330626614049451083170974811662660868025068164036894032070687541612050431222470269228445922651364086584849050556372344569678560586517061588457956753373754310946676966353383791904625965254586489706543212479305992408156037122586886566861864747076076199159925188573860535850552722376304175522827383141935389757936022761566041203365115068923133017204354448729519727655337778424770088164889650990928786787156911136063091939570489027851167652880429759673068096465413505441455399345010237606377493668011788123418197392705289576766531365021199212974483601156372075518401879465906975661772022990901584860668490161135438946864074965957321366752079747839884584171615574783586105308164923537661007455147280605826273623619349980686720410683619105375727181304724664062774763185530464886874913000959726272644753180079441885963775344582019275524568865962671083282027711684027835036361694385537402875300994833521724118083426149286454779580190701873874562035644684326417429603122663311437258820518270400493112786757463109048233236739814992609548653036553199674377996886421291279430341348279339481917125740526243117770951824532572617020698359484414814818303312264986025027813893622921197567111071784998932874000576715440610562677942666585596402617800052719966860848567263878222419673505932448046931724466991258172130166361265324259187939652355079998893771514770350457648176951865011620734462844723009262879474285276938632683680830899229854558738731719772098062684255702423888670197859162383191064160599288117617175836362945207814440244226740322244014650568104958720903167855019141104778910292072380113029198919327607630359483153565681156304574905943340128416320072096098532862832406631393973506149172212704713485178347872795286377907883348638516572248723477252597347810546357690844671670299018331234785550608403486597539085181660638337436179553863155410502511027377433215751355906400323334515548707378218900147254013326559834317614837957103536625855458683182580113037329409004626359981605925712357947843681522307667698364254962308377412647847381961167252317434730632132588107104022812040535536279031419265831990789243561939833817311135275203804204309504280334498129395304585368986493143258097940157334764928375341872179760405073368736001673394123802919369469715179445874276285151913543369738625668511911671734553734092209062222658405932486495889033539508103722965157378036142704363345332561233062225287301810854414087699792192154862181153310645030021703709914153494865552119018272564347723560078255373604414433405739857928818941003196519458861092556546315350333080201083953850774611886573797880011878925732261498300711654180354688526123448393965831851594165041211010790640476160621188059796680746412188023770619775473757294802321482661438757240021638349617447444048593051852474681365109679642870867488482819537763585188771665493554382153552860936239421091525789297448379231181482844756058676308528420774228299588159085816065862317412640346951592139097246578148088179853769346830464424705025028184669354429477187485643994670203821021956179310634972064070029472720374814481681469421263448561867224920392553222847320511377978577625633974207379381372592457041908289965364612763924181217403702728220746219188995152840327726111244043596033946906670368420409461589589467745793596156183477436129081906849462870439325104710553845701848097923568485370524674929355581771067789761897217360224639794701690162841159264712714645412874639544419439535175510140121968493046154946381749240700396068281995499529200979530341136725856057064480253129125601296703940457175241846507190377774333692727097525029390035718335323090739819149277744762646925422765933583933997186539568760484183202464789411776924898166634924276714336702821442078688568781008851881698439895891739238359755372524884625471354887325731303119755812733377756069663723319126115279803413713392747048678834855443369091694456487802631438522397803021537486720438824594365315400564524034285427272911652509557892549924273836213569956116869797771167238381980081427684869058831587207314563861020544989619179079172496495229824959259115530753758401584133137339352272342286917299166402815452892456516429113646863065047828052375619528776661299938477572832750662817797415958858282524548985195654299996699053928332420531925317227457419356218053279301223215918090586896256457745113250883285818298551964876354396134699281540169265401892293261893155894796144951431698821560990096695240968268498636255217397432363959297977379853738083228573133160749286687786307779065077459177855131523499923341341877078877956579675340795392120209033468563666074116854656994545944353999679863380657511750954932746068200161594264602363696114241181439013797708730788420567466227037455296349634887733204337531043404762505120241498379558878914283127236134011370004274274283323326270929196722290192148280138864279112516150704717533892188457930308807856024271305467499649516334412858802924817364083153324986049986090979096075376552084128504574487370944599437625897497657910069016704454358294198099041797374777143474323635856820459806679502014579732585804830796421240558029228520620713222370966793664912422759395155917695151476873771718442383887861365434572817348858157446330531463881045187546410052379258287212464727525304286370743257092885092069493278459012460657563854655339503370468610030968019143198190426847607253335078846919655368480010576394088327954743494051167956835335329466083213828928034608309982851806338817147464696505688103439682305156679638095314749718345263665597912314854046951063246563096085968213829779006743360059171611651950181062696663596442650756669270032572107737551754349304218789771574070602010537632368679234934422659754974762426397143641439404606857218107719071126772382678428156747573529415918533502023961422892669599555504222622750130257734242399456222016699740313893619625281266192524982394819033561678407484182275548471870075295666575357551302317092018096268895927912073493080980199694341586973758272204610258590331115464087646377394501964376328467481993615549578431928674003099443812357018496018612680352639612026900977259687354497931814150027652640603134246325819127208872050483757768876393142855356703010340759075570527955183583398655492411971070442288480478648364664111579668623569062521870668056789249435995455561369457092088578622440839055047906757994025240750070758678538000099939356115444128587130326094828417600286172260302670830465958545633151076829924633893627167279733917760976367446643097118487144183386156846745261666614205104672846319542138929859186785884996577172815117457381841610759483280234272379117349861651729930333113719069861108319982655987894766768372795727888050963472119111513099118777956690726184494148616733939573460323433764943943802815594746463694541185810406909057878079744929707245038059290749425322241524513973659629602282860160993255844865682940071484287016570114005103796112095137099325053825656162711147426727374935871001545532718462928995058386766456252766544832105199069471172665996503387325349876887642887537512097358453369273105199086919253954787162149180302441769838286224112099955145588763273188855741611190941964678314117630299775569496017352841821320246822849408617908498478709541508965916867754676894780268128636751406203816001913088276062003660860044773148760393171074284006825208754380910293614629388960349705195991217689529381342821857932158849061100815563042984633374188217171730380381874413556609128949680522439848516617360000423563829106337731819237996390621487326142922751048086388824117972427202603219987803887284224049685551485367778764334697124593879689177419350327978907643725814390795277617584802071882137443577356208591548634367161974711732775117957360061791233634540081886756228576379623172776550639537502693144988255490639759127778220591979423935151655834704083356096116945077688267715398894848406168677561638863773793878006801786673550141945522722048288692454072651157217273407781230203740924165022459746383449502894618088620933228037911047086645595444853407352484838303340731226337830385755587865789214890661300329805921516782290977576347592262799088946011303045198853534704374873300107867819060884746651545549085112728865512100349485664714189519387913457960101332942584327107334678579242177369464676305493618718716204038465444976618616961174590175988635742675810542261341120688980095179748494399242846916327376903606879784175465331897261559457974439711537988748854393627964997133418372494458356365836621266565004645738508758532047715855252863825316243413259811942868592683595724541704055612300704341428046340213740095720954823836162979784630238399476105330946440899549785479062122019588021201386736772182496873243830035412779709890813415265532511783596238555803881709312209953028869052234622217026167924638203853077436193053395344910688970239055271459696338175611842262629232534155665450691062563972191366694557498656872540963662537259358423566048439409554531772482170016994295721822928676552486086293118805037346216842442825879855793978047189338282169065500317811365343010696680126387605092656719791459854631507712012512047852577470909303602855132434606563730609476704764824575973174751717714489575738924273658470094937453012010616121306221299485791962543311215707500471141559688458643734327350384935960078388591249890160577692620216711060410218440788129748204913679398434388197668790506144638446126484022679224682038229522225057772710286459835764297536715981395194702304628589807173168510714936418208166546153964455074155209537298149497977090909526465295840386690288825976935301228756478910494538602756272725271636518953518153907657159777886450996307885184764223050635577293595743642139343561236259249506021374317106718228952673282485744314040814543407809108074318293874001155263062096646031853991821999924600539879752895438537169172514910104373507543054035247550453309025510103649089788838167598786274662713285218802698030728450014791882215060338615714262233687942039487296527538633214541964802321224349549176051340870571540343976838182128025219256659762410048970362756133644486362489683107552121723574370959289430762950069980281200591160127974623770421026255484030701723190478967187713640478547272302344256999203171082754658246098831318257121088167671063034975075596459458423819505915889919835394396742170609199254313192980214419362510476212943564997038885413821817493259498186477796334943971069310501835771911253541801489363284964573263508740353803815073491356891970730437503940100103469052756237688332780396749592971383599793894347999173375768699136393515607198720340959792937019754417144773641394878962215277492760625212739849462155732801358361491429326663823293735012659119667766389684972396723085791750813340773149332147715704266968904765689887977465334046845634048374227233525296302571720737268859404394915702199913746270412466361214407346357022000686294805541744735099639244821140316396774203891911355494582785118703711646980376032366858754838649439318628719894914243839371153283922687982182105135531792279807347916417530672932810327296778339737668065223665931701244616987189094693530906322390467120528928704354537042682525353334164414246937343770347252742667354564659741264815766922559647233948226900155850906586994212546182132531610468875209352604942600462728441758234757052568529419734125570222401289280704758365659962077161637121026613423843635302875786092045369387945924229432136595196449185792660103798046187689250049383515836503322548885889704575640892028377207464762147649521401540340756361459482662833898304756517581030399433162748230489847633081802934321380986907967739197917923310196068156334383806390704054858535366932517867163315121460146570833038481185891892326414624496625457132592976754770969851399865321139943534425891886061854711963368199611051106321876006490922678587554388646891672516192583370322348608212159336993905509798879858089744274208988049409000944771703827460312076085460584979437709673688375012087857963071044440915213715321503706203717790219747923106257296183617940908842059956734460501373766762567887392500097715731100451610489843525426184951482663455016226409636426684998235390780778919151976032352920889087179863116446192964136992201034696393322657687804042823497997944732538491409980433161851397893838676093388464034436899215330008402956660824505849109018390100916533364781994766482382965181799807008868847047721136875238271392205071215748994572330957010898390929285345391963815129111515239868283401573407820867723629913273589444669370682462946381261517281149803470674741652907540142730178200378019528666570078774695508478167011066327248409254629176424338141483604914698083141076141515282962373265553600000812937563500193966826077620060227910511867678307769508570098733455314445328115950585750435456471264489920998728132333458050049929281156166183702977030041682559467216429576715330202962421198979766057425183945885796800741519155931975453458674170840701620671210132051576934995518430164597726304471732267319091365366941172804849368791794311985097004357405172686139384851280045225363122577793387237109110049199053717045450113998614863878832899633907604044140455424677600739966845148506452665769238025459097526463121287776713651829445316546583434529098997041080563302285880149317097198274984933871587402031547411459528535533158314688221119767887497427251421739198290057390144600052663925409350652887441737895947539573327387835839532271628862389059700283348465711600280691289687697847702676946942574500197023707971184994177675751261415731745252199627823073588721586556983555379086088214178602234803636366077609596528916125546102440445597763687540799458173072803063660831639352921270798709508139935118416097387901549006227586983262362697879615425324235535339909568536495723951822621831439220044863779224571499374608533722076128774794163877224615384986976415878437799972699893873244950412897777734585647713482347339277510895655331523534534245148649262642894832495151480091264289908144663860574067829271251128544231237354848362980294202109537820245733104437097742148895503770158277848625602923859983331713444060433674482522432117593300933447862707147823255064357853846689647070940788370379130970670419582190080484242233802614330678673970899296062491407075283694331122546062356851606014809811777136646937083163826500742757783179912202089707397644413242720520422679583428997462737356519801540200456782377839439630935860840056033033154925168432013617866086482256205803816403775841576958562660128957593609341154010930069333701103017610818957894641791303545249514637643763043671585471109541812391177432703766681982321675739190475466537824992249002142378281609112595564635456999884448081686175595780707025642143944746650810677381870230808107339120754191037447316269613200599737068752783814810534210108504675364689218027488025596250021388403251365960124098299592549292310874606205469416633779891821640238036675104635307208768862121382278532474728472572006513638588048989474938233888349656078057711411733576433845039394233875838669448268034596404314555755660843255476577574271687892028680474284412294121590466341706146093079641000812249062731390962758317005619635996771529200520493215759277301628283971782281317233845481733522423487757050232223553918767199244513866953146235181739623840873720585763993825681716103823058886962653664242525874888286758738830366138490092352756368325153668048257197000277998049152940212980314366694970138816597458368450814968584620681357201681673440953627601238489782256390551144128465725723184459436368886517192197619867686208783645615318401055637667423039527058850212174070911587098692562267948936717769125567303724920809749925092739953531569226899038622872272189805173890951721597472976808121337527766495047464999171905160242035745530052880161748965934763375315630022301242482852972050246115659043444879336272246474059416242492571706521005540063726835113893299688942272872381758723207977499984446258324631194128119099101931519191920319900211780909456185749203464830483303910970870427855290456968286205027390153096459697655513184389504794817059614161454377466165259929757308264533022208580359802058055007997752359555594708055045855055462815998235105266124373955764117502561614306208763600450964148266808441421130166293738547151445298556984483653819016576977635899172422360000233836147894368682388517757421427202513247348405115063529123262741058605515181662711989935859290790155397624155947301464977392248579585618553616467656519763644210283756065967321884415442716971034896598619104637246125474805074577740190532552758835218932960433983687650181355595609390275836736869981154926482518596860509624289876280737743788559178299300809217217060263805109339871897785488981373967159086194967871649693128187308738678296272804228550424697373418289611996463073931431465863815260412265909041572546533160297381870630276332495330059159974690875779768831961090481356156763975876204947810098921427459238115120449905340170349733359900519806347811389367990715829797302315231387098731124951243511426279996257621585572012314806323195069482961025972533783716942779645721477426486701655584931032454976446362750690728087329090906836682117295717499881405088497135912665679816777208316646977435301267076047407186317080089681647585313084014445387317865934766791624001796583483017325737465881444571194722060815979787452246494405300895478439370966757689567669700117466576265909559129942685810879635410108296458970385010229275122057819480305736696554014790731193820525755912429057838901191461588707704916887851486770754534710401502603511173257803785359619448327108862320458491528361609074815138808060959588565234473330615961310182150359513785886236751512690115355325521822118037683125558546301750194848633910154166589895968697956505733660721905093125598007946827514081829375153431179973880052259388250561657965503666548887050411492576701252441775598578228834099944804926855983269952203434268407183038405974496911097534924558528368598128961746009690046850944024092625799860941060428844354721147776493668470187199211541961432430182712741223405074686126795535184176498349191714407030360886640749194930040799622385232304180555316120499325232342383533391521662145035894656681797957309705947358815533526170616224347031164821380886323075663441509002170797414665277989873911700166190078741514091785527424123445212624087358130204575741218277424409939272252606180028349498091200475270706939257808403552043469146324585505825428402285072799644805751602936683981521231986560517578059571280986135912345562482605606117316639867756101277471579881337126235773802408518156738280194339090077533198102320626867875009141223348994578804140924338618226071661725727264738444851442754400910749126890366807343398379360236333082689078862117569076014891609174193593169312595409707204886500077433508037423913760664096830577142852389766786486237394328964513412075026676379059071740403240180362623008819796279054767980845901341955387281609868073653765562514649852729878419555586023107677682281689172775634886403213496458908226773415402448348488623652644367417535255417095244356085555481671863024847049483114335919549471777724458141276524950355506043150310798250843228543581392331626397576456837763063267467418947702141962502056335975527013275347523555120455356856438889678746330088724167524153215504296028973989348458970050262939366334539743496013210686759202902530299433770859000638656326518782760735399579329095509047564718198836347144536822519979199833431267896735894625645733156211899690549059505733541136602836615064027742130200939148917933921728626392846377853678154760763802838621991704758053109318299943125294492308278556755877713813790434323962320012076999919286413546392498381510934842457200102275247375929233254509998306208299960413522280273618234789063868104700131123764618817506176477223593562169169271678503341473853314839921638472381846312484768263690723343339665566735470160384979051158858834365418220281621281415769726224297136644590042243805237097354579649748596636077340074290688940940945621877591088317134767972806666955624428809932930710602621705169493423236446675787124652194321371219266487816686544749010758534323666609652143756866353481426590373620952034495489123968171013828219703276877363477636457951187793964934134519391304314113031990547974321058851013469205012098580211541951169476138398387229363492741168110151333561088345038752163521904364636053146402672037156986852520855328153319818099081189368944171522570579445744812453053679453410224287352070368627094688301357068935704733957041151364714091622004751710575620723166472343463754745002384200611289194800076072571081788408615592353095585562040412107011317909870698774727857366619174194757929033856716349728833931930930111568795620076883384388291947541150253417339896949370526084754019753041423318090698052030820896485511248301085732948196336217392932457517481934796933466894834513386248437780511328539153056614501448789579778720187666515569423815743324842463349590664219786009907564355849568144069445593902264671183414496894189820441807196534940534878500015099465622739013180169478751452423601759289438664973684614240786403539090009104960057725064358561889144918593163977859227723170262075793388713128988205360946777865080399245275153463543455664623415199261910864255307392791655660838828466661329088355482245349347068308009777988825809521658056529488734480654720982869673328255396187841242934065452133570688942541047752512928518076865327591972542501138777403422782511393268619793977230675136520455361430751543513866741857059308159293253506178269239522242663178415861367754275449949966405346063654271475237073074581927582049356530750612115126762310018537434932707762496069920942158808864117487880306629708493120217507210016242732574906618034875695039224735948468122509018537327481427033152432970839219431476112980428343087305927827457113107662313779273129150293744024782219682980823451859640702008749703113501024180675246907912561909618525852563763016946475891211109622618785719872884166133645862867633292167455515664998890183698509325150391547303316117485638709566753119426780286975859389816616007177516357879849881439088679468548252429404408560061597464325895884499512808512823418725325509192110572823024682890286583363230198103258703993145435696563876753177627985146854226723378131848624855405513890606021531753152467655036020436558124531818451989300344087933031267421128646720582307237948663526629610121313179493406839747100802456211319120240154941034041862935010776910138525498205266482125781050666667448769541031962931547070329102552689458850064620041776444146688024167786830332632373712762300197040091447229492069593532855848745560867620629107758117569008630445586046984714157513649443572730957942709666051853359101281050871738090748274022406415498802770844297006760938416777838222187094896717969373619550636070496031634013299023715486107024114312100499377803419099182764619717261559602981632275496028136139960787782628726306599475548418450237517624087402386389815792889075417162952625607731593696539162744273473631371320379502543616108545302514961438125008342240261305690022307686939638718455624064857502925124762383823339174657138661028316666480461271164006587701134561904228321848332813540322531339226804727698727498006721801586651337004800143946616666260109976127354878824668691448551305741916816098526311779111594181379669718154885469175264734825958586051855914545286396930620397804549730817797610690178665779932932338316175327199974616076450130816355353538525595831539246827719538383833098633128105247681909717499793176409357853973742126580429975846972894811426696994656010595164504126254318053584043231998565650241405605061816736893326921730883602369414616937706471001102152490676732118966062432018491321709908011887533981075999110753433037255075489328982184638831115940731080577056867849431169254187595659018391357206405327981104394394335889734343160242051557267550958630004125346385425550123074739370575099518182334342355635818751525337337082641039765989756331713518635818858161940251912983242425193151476928980609772069763989332636978576253532988329560794327174094738022890605564807200207795453323728107298264131418710680528245705611856111923732680711182613569656832587056375349245707468149242619969922196046869946769811619124149000889924056329022332555165812130977130720793674679007841405484118387766171515740316108143657628837657670219004388269597369419063433382917952646503812598934619387579037099217019636074729702826773668335517638330169647211529428564201525349761070771891404663836682420182615470688553562589488757478064978057683423302022403454920761230234028302258268617835578328986017979377794197833917397164570258935113725977203440953994968225384974129285919186323184588477201683346908668151102141360286738424088685044380922640595648524525286556811641997670027006571399994011729441467206608701079287395035908975417036521856277332511198587069037584160447250500333798309374149410847083034839130745591919026762771599997442287583388426723513881562067859468512466104353134244101764254556833797530081186993030596496113744689105604251424381572383179287371721645413954752919411180191913871692445892755238012395048578239409823212230830160053420809491604523597021109187430511715752088716512237171843112802463805415786485494047636657337102512245628181152434141287470457025183028857652415019738285133448292596208728946973160234513616596859286602814571111877335884200118425000513402506989391505473177177604637415191336918402470084905149878738972023732298125512174132485867781005333661973067736760655024261049785400519264189770370986662054091242988360336263107687648293250463555377627731971872914644890003565976772857777471739348625457817467503547692493403223287482758127030550643201049523603219002823116387695889541117114093361896460668283668217106409696835640243438059961918277572069815327294663135616091892700053305621264175948907873690851022193260463007622671899513785984485388911215513389977476807038909536923799437945848160261456570446561733649017276639972324973187065626096258920768728732009234788149870364294504186180098497248468026628351137926512482204680130181560008593947638325780589966054095888122972527207234371403541037768210918518864825211325611530989651678697327828626032908721373158645703824770015106099879179067363987873950905676555416359160453046087851012650839222903916739088207039760566065355355016589582847168664719175180941022931237953837933981131458466160408106367455987799597096022917421846080461680047443630377452597257066750897240088261786560783313875654772452573301904428946944791887844693304054621043932649297335257942169896562446251395224400438610845885184540343152031106475572590267961823294296983941823642739742355782091475284206342400441363035585417960381973910188970711686753158818243624535413560906174749831837109062862379289876535138557222773463912896883785372439493440008381891221678975802930346156687299154632098931019007261261788974670889284280172993037410477740190606935642078626061479051982611843214563696402470151787864650327620459083684834311467749325908146369668695025212096147878852793003813781498953885532474595490174907758846411937753577173552511945589224756992792281023216107501402744508039426642004752381637162817465941919206547777136700883877924568700387737888997443668099652465764951492878213033193976775376243431050315028368075206820051202148227643695340117794816118373710926110924560069345478802451398716971249102455801575939194636027587730610173788494053186386555829397969917333414401468782073795305805049518586313874291333769844207817286562574366952927876562640995634393394278507586660117308921090334838352917488180011866369114925422539557008857036351972489718780072089249042555264345452059775030463761030280900563958177981677172904025019509630346601561556797532818838980447215611795107871902611342545562650863895904582970576070368277198524386433300565565200545112346983335552622750344603216278950034364499387473289492518915200354657424056981529175391524458657716033171798574278954149208346031958935818906383611294657105299045279891185990029837054731128053424005064676912340077551768209527871761934000569896680819497725347169907593001481988300287806563407368689983202876832610355142969928388027062730566209768665599857448127482894739948120134664176450868987989194097483321129481617018825367956563574664308581270561031185123749213248097289183268523081644661038579165909012424224497680519787155818068277867375144172271932421560017766127464603579253229089216298367048892284438355708174362678140054784553106904147729255281672629656182513271061861069455424628801863172834550445058698924696233727860504546247143439838909522795498653071796925638898708053884460135963584578637345109336371872514975540469015096292665245534064038665882136210663134924521649383298169882333795932645932071165561309875441683954865145258955337053123540872757626524291391004730901114343658796353048626013327069456002487458340174355716268533057958437174877534683800715356709191076750218765834447350391452806446391543795493466062970880348544267560397489379524341214076557356923984491686978136804117724926550948253396776713918858161661730087161888980601642676722554547653213827575843686508767361947024386941219176386753479115980887983428465796270478821756993660004774852630300251714559609549185078331144447252267173833450997529347763649589601887144960004046130610890792248979673313107198059495623057486434820342934889163775316959889689228567761243942787989766453107882606043424435897000721797634299702214461343061612566029899189923016368930731006387108924572387162902154308593823722003785313946936256455152296933249533035349310869114679918824650328925108971132125357439413545356468484019269842170632216243656159810872898073878454556764632175729408926790793986355665226275620320609464888005132074881593113507784696984928972328560545767700631569951280732314244036336383495121060312850492328238060414598360431452443392700471276762395475777357794440847923800903204402573695087758258776845365552918309207778632892928810853053111712325248844661601682817067506426036905432696895901630937140275392566579208272639232934884247021584906675502550464144148342831708666583188942439280956366886849843209015948524685453211574661239920754760774005609780511512937793320185579651286596067393750946152380804792275852900513802629413022910562276594702503061418934308801537207869770973027789778073894275847013331822842839574109614431776412769635924320944695087242099190752288139375816654581128419022816777337374937580026864967015710548103798305907418538559957882370641341222766809651708546813266990268215231622481925035530585543927652489291932226463500394305721217086106918924305407080477249100462008908375532185408537346037495142758490679415061036547802974871161747619608451687267416982260013659897925641045685662986990052242385431664418564645573294823905963945411294559900737732556840098795196645270539651183357243215454494268352453132262355232300923098178026217313209681907677483337942196067009889589269173707992655815566127033929765199156070235782381137902440683868623118983943547110424926820313820254675896123458564981727457703821278534548632187039262305560251421061910452121937011743473315268940516472819031124019557317791746874002968635996167601921930860906664513157904210657446124842266866486033208772750988739421496158619355832039899947490280536978903483227634054252519994949367682271047347674116138049392328065198393416170440708061099319785161495501957280672224480333087098145955461458468973972902393714830176778435665335764271472811131910589708621922604408059561335052002243013263630991117061164209316210244632162004532810322549541978540908236554570790428025533174246077468611025970725337030933791146356069493375232357896426066582689908400356504848009348394403858177824262333170090368669307442050084198316656236318662815785168310418101858805614553256330218452155026355962237939959654344740964372812682860361931167645007092582110357527191216829328810585788412991309855292515778487392919699296146423499230059866081296065801291700298066571593507625894947345233214046084446490404098937019544078405291973431012081326859118437832111738459864290998267387906749508652050632883786211395306265409583488964033536727544458423058848113228721431349111505006798421100731713259238466742939923423339695491845597675741419142089864758084173824411922940364468670014843885843171850780373934514887763384941087106888228284967089248879228976777024332742837129286717618798290844542480175939975605276216544562953245943014685642629222814252747672625801653008340445012555694166592854446462713885703652992568464494319666516860372307179922426383648171815932628370797081576963747007778648698409557249398825484726929475406567680728648524250230531128205303327906856531943797441159914602340003591483863737575225481911232530103581712038105157778160516922685374987839411124514703444652838208976465654358106015479880448924631554659991597905213365751732257769805560561407813315258933167701920538901775143520754034168729607101716060146786549302021860028569541993595604900499684430661807306021553423456473041343428505819193971360188950504646301603332540622464045242494798450428572581713425233085723421674186243381897080791168304441794994747456737763359841616544161286900512859062834395422777023333630258504125130295123477697349500422306397687882746931876637759214635259986368533433134640365777626285341778439793012888802928548917338427083459327782281219030504705051139840700531899202671352425940970063465773213686325655929929613372656969336710093387896317695166586412856359847480841027591368898772436495822948883809103099034292389720439343549539708838260452784460791147452922339839257445785811126651612308678342542482799948055428552679309957991482853254532882667411385980389365878478008305344975368494850476330794047314815199929168014896542576900383168311575274660538737365552781143456410552213115443353340708702272322321864173370187264952050512635930343213338264685650521897117539462917103227378944888902952267732008977238676269217832061990179635374644247963433067330286965616636460650124102830300152827519597993734368159585246876147820212062347326815832925629802928619900510598111778635135945565423631251450315356949285515631856083255635907048243347119163806716035845418405424560683113718610332193612976689450188609492815063028870260581048756241925095434001777704146376571176891067741369597669334907309523348135765337643895748115827063904464779850273919600474686565732137416098928947979851184804941497110016461349020273155054472333801047122469926027612613270473636463972620104447270631186757206235390757336370378548038547362382197247342310275784928205970210968308982503868975525572814853649072278506425745401526260420336835993346923136446412852701877668441654687782373930848533238404381884233795186072353992790216539545117140264805176305576172050104083551363649129838555440641740066909537014297111101944659675390654986136931728458607569433411965587452081380661782645051564827135898636763377040859895155727673202369904412325038721709536520965907908807677221413975959719236678209475800192021361901850102004347484919239934449188749979832005700434601570088821148977842126477053379558564828323022700163139290508298533159766004344894513125464240467763915443159287476523638923334589719018177295155074022989579528715410495513352067120840360449506121153946774557583686775541040493054554314926043259053275703115046053943232356361462406954736396290046377848100326758463422401014800914363760588888196366691213497799851035252818645196196584864175265120238930190956517180320379572469661168811759236687746801185015554002471276753722314244327482210077499816624103267813795958955627213722101250981461080259958481203558271367445451336092072843384307998511351946994391595185477553568987153205371560144349649009404571312179316773547202576276930343648465403653510982832736257858441666853209490868038433475493264257746486019888934693722102599745242262153894639738363941132345367305227119333112373010558678237722964092324689854249210817657275578753587647479963923034605239130191352964317457291366192838578720517112147411978768822352965021400667885579459898307718796811645169646302105833684557314559644182890090928212960159552532100108048831147727736564008449395425266441525786212474151008426367281388704050685317397292441751786253361715536359782804864319243724289479440854853397597619304105765402699333766491176597711515256769872771563219301519386284810554303899818118062143897690673323678772021211713683901526591951004251473320396523443568926789773648857753455262435155559494491066257243687055575021597426922003335541695324787983386694608875659574713701835313155949809830405313998737686856657589996865304905438650022320114641842941029580808946071103529777120269603923517636592322257402441414720945846067055669803046378634988888733170899211027789711525695028230193904186202787924205887066749750903373226757941902885912609563902067983434931034471640570678264823307992740048264540327193524922078984516246056053009561871422366062297666968471761038406246776415678745163740263224941245701406424762335309882782949334806517871402233329827902541572633700387232583517441967680170723654832922480074775220630392585925281893888550382437540155430873177546932819780167272458605397163054842773606065264259651611670871662009835481732260625299374871856946797633622480474651251443247497642793964921026920408530710560864171264503398266849800068944740584777407909519168499197905670722549871992462100573369623087789814903175658494860438659964928559940540108838076018804013927194630137067209133862313820126236854040141872669837877009242535480159410837688100970675788401741134947175903940789029964781566005944282915490490247839013034213192520726143309686952047410216808625412218838720667569096334672598850640375234584322721483505363247382765817213883979207561344079654656395600292154102742816427598916897731214935787022431509018366310238855881755907383892339190522953158535379340716561320257669512826136581393938062129324028147185464702857155576788584904691748696557796096251852238185974680160478715423121822189799263681805266457724298082791848432130141102761563236617058815444683759124895058713992335961692127503527732879021392349979172618278876219171603873175402882389571843772675922825667090482256756523014508376804911802528401475380967693255043625369315197681412373302219802719913138081668430242212336121862261698589297990899488418755146725315728856664325374021341849825057848637944075386189877246902999792852480516027483855144302131119694784993069050547805611285613737963638697043673433196568420846318847731247619238790697262669088798584490952302843160988173536433938333519788943519641143491169027725311347497626614222742180741221402826562189219187182642564360192726047546320673456602231420487677742732186797754099708112165368796116023244890378464614735433938899473294137077135287680743086534193386757617766875447152863790504890860865380354673923819561589606485116404422731418837682813812371880294285427228634303928937945986613608474870773765623269520564913921448355588684509566694901382868637921079345069555568264750892892706358250504128836641855182826997836494243608977157092975009964372470335175845146503271855918678791401690348350258746824078740159870239942667671382043293119082238935609374101402373980427490181039495458774858956656698333734128988892138045876169227113065008292290610579496698031591993813249882713096428801652335173145633713606218032307629541475443838313933327496658108085451225427743584493188449292158211972496472559498489241163040635599278077091774606414702968895025494076862193779996208537115971794392597019667401126840576317609206044338692962986453530560653066430464985934683209239435921292440957444217025497647231875998324407764418921831576743191600767174966857680053800513914900448250140378748858485827487774745228927722437078493504480692815733206410606396245018796772139037584587878977271044353480802386958253294447637776230662830485368415752578688162247928537122641053548762317424282235154728211340028344525357787339297847837931565393492715806469469240393658595199439125466459991052727812191993877425258591182037017298287838891936053645964156951250449790126970135547733354890171743375592293273983160419098707818260160654661765288414933011424045418979591885005533857167022945053551600061672936168739964667414073322592659752689594103138391908473377622814864504088693112131923119169950717709343484989453020412587788595095236265967580223663195417462174526193148302864700282753115671633792911923674208139693103418832692729763869481567121559112779063369171250281531598014804669035511071767184104974313556448862184257670215832212366891086850901308562604776822052794372554767468733286843103881489672440141312436814789916923528180764099951793759480887567667202418267134484067837572861399951753469172599366477253521634441450413095585098895923259787944016858638377644626231761778748422340710434039196459450267666224455894337007960985469148952844684145988932003646387013994452641967017986928147242837601737398469983671855831819812839082969594730671338129369937191847349705842491184016590871711661796162611298036202342158402393426535988277444839102749402144398485944001794628839536581058496027351197458771127957976868271509564214869294486495594469897173704611023478106998238728153295292344401335381564026559050198528833188381213245619863146942563431535771930084059883275393723413638117832954009205073424869964736541931639011742715808724303347677098461688375233950323137590466264936451344516330211282193692007194650929689924782309315474598231362656072905618058873002621882139519362181785960464063573970943584659422919533986946012410144688941429935359637576011735717644890745760673120972126395581205691335219982428174277712450686740446923893706299195255148208091661855923568253987794647823910513609211314253852368775726864675961011487351114492572796616205163183794775334528867965998461524335254663781531219415913806609856219597398828681333185370264851376074587006612150712041969568086826704964764893977554815476628074180436848477623346348728290632243017173379518877759243209504622098625444459637095358183941223873769242552348492465138353060265409054006379114203312434795083000381782617929589217647812620470739582729290028905212465599860777850724472661269274377943508109220286858058485642765152603103055345040476655838608970791167844420034808355116170224432472118945658088340497138311215583471881729928798479114970812261303141311496472710629385167915963602693553051092098222727074491410851703102839543732732132490904176652041987906652414986151951314595575724339403692609379482328866075034632426179021114092618266992899936441108010717456302591058123869226407287967874790879352418836631651190584242231622440452056166939892634325436898715920226325406691770302889898590497263636004332050980458413658572419675666747183779049425198761039612370935265064765975238393931721585836968014740294053389410321944771125059928094134904261530835361085010440176235835216460395046907188950067252709136252365701709069729993921663514411664208587534792731999265760490865767467626753542513071776457930646805370167300893726349210096287583871461582103058293178797655148605752908249124805180003289357222875954340033178677931500047452979119843998538199139674606766103981873518854107062029744768787022079706213742522475541448720833585226236821586287431433634765253294178456783994304171086054336283519803861273868615159580303878769733379042823071314480830903305107353349852349685276617628277419824845150095503183332990987165835793292848519866146887773101612810255343520824530476314450503804222370703237013228648130015430068208320955012108133801818510837203711022060166423836616407614315526636843291779448020990743238779962410869869745292952294885881799004010399549532245540465084258877580642354223769679450341741039508900501699396484966651165797230790908542340400535746609039082963292246548564631562444471200195609406633114766527413083744916015673135924137472705139498570760871927981033220918026522675619071542369137936070679258088907067339064033287730907947114777452857737152590603006700050587035430826000280124060700540862907252096769571112650376478000597774427982267532725926308254065124784206588732411323738170059331944463218997963209379152374490006513348378813552587600743136906707777457962725259257457967034542362412732787299899756765510558817508399390179582162515467377090200465775898084269933837731118318902320006653675958017297919107584647999549319681104217661980860449286367280993251650896982334131975836636629418813472654881567877278006484881049109347420968896506352597005899278122638544914553221749564536738968859005356515794123344045767535737164326267611922083813580581732690918444442488808087005940497646643570750834359217467429454691888429630401619387879057232395927432247173208472186175014928615448061201055073124797809628412790320630890764711503653838802636305626997650433996670932188820223640503551621060987071284269615817930097856051750728242635026548540656988154243658238184834843801842186915747877970983764548818242930994325127872284440156905998175276200540865201499978304791120027238648630120842940493753225531946199836967065716582020908159271727985347874291906197649139330773069698719103537639227559627742336099249487399343946756377929544602266096487991397749580816166036378436135351925149838142740439306449637431570629494836797526151169254104680657929020079282349057568781350106527248593088490395089300002536619776849641932076501084241544736416143621356763092430595667844341020337822094145849873775385947888385245515240251488558274034879224557026978508935491634840949951172495517650346491668590155803252518887440231197632374300808052680994340752234220283344734016554810311529632745840540796070909395573096375239816943039214810623723705924231597908424973786853963665104878855556341902358601467309279018484670006044438515334150330092610501344611581627082601710353964123675429085728465583881079400284008519798878960453911030486585197211023771939160278250604419044965488792118421482753929186927579626127658867348745368849806677861803378961988188526090940454025263805852148811286490140738111768885799019880187037155376741130705164472857914550362740811290967845565524917466294131148384360753128821192880044825110555780026776072471204268320602909660133257777809360081692016934404163965793375347153395168196514365060923975369032965853937429702899923158080461430318663476289087734528039716586701911876681533769892339576924369783921203146154841929680338163250584556673091672525847115344735764632294688813859431972581054950425167274010998044488465392696553858513300271331669761077922875813224365073889456881378770261646480330808311051863870692801026247369429026340625651661902258604300941707831836745126393817023361147666529505548890341061535708628669403480692246083656994155713037358365896243294647742309835465172086716882283005988443315885126019045299235795321151938546065188095009858587362412434723280217502495355780477460472274953725170731616377956148269682336222444150132983474970799154896137355024440872379074103085289072530156024030202537625313229689915434266258481739848269886164012235040631421140019724100954017338587290555349757208802472762092161289441880516034262431046135715383130199109670724965667703644035829265494058047504538777230832617032421565867261903779296312033680499898955957181299471655874172701141149723195850485333155909003495557857651634111201831155266870787409922718993935284912998307858806385622682474484765909151641109612126209969722613849231743924410718970072221794593187239202321392617923463779083595639322638525906121845207412881949481071536291169024649426114832398416454155359093848898269255325376906470335671403684558049803683007486156591874372854277953965470103126090338579672028680029115309260446991803768479011945221421768381379485893674919867732379426598370503522261916200444439226234041161478265716929350548203480235225355928472045408631803435293038039786740994901165946260424845894308043469533978950062824825154792565339241494107934191030328233911399390394723292420927691921301906358673627010199007527515768055939029566038232275427653902672864885478342548810612753448381177308581442889848260632789136207801251663519159393146882673325907780139859429003513817461725206100022700543770590940819786368918498387283775518410302853521972785300567416975507119064036216571582967360816152925496649000172188676559682938972089863021997894140505434952272730897863889604857463708249827379636126091652969691102848730573319628839608447767504332239723021728223554305245653915549723995770418129919942418623610696014900462280223251184798104490413196449180796472792963416148701860604350563111913749616768747298313158197861724677390257475959442236426240583433140434482898237699574003840869648821294694889665763882483706312380025966366220836928097059303430285037287951352997098013549742574259806495563762223872777506646234969905876092916857888302345681280257744417690101834925584520069590084088256167817597662805577263205332043358436642705635353836856555055407216443236298102377488230292344188631472810518436669542115438339190309622740287896609653399328279676857096940482327709830140172385291750261020730498230383116238796962168207402374973646115925934820087156735146613079529670802938181364342306340340060913693486511137787717109076286446105279569397548728990503236526309937692828724397505195957587276512227085355146855500547662108374305889155932801725054005162809141185050380432395376498050205159778375532986980657090777554449508855804203005073685094557213781686631728474652448101306913944125349013162741576168388879802217924667563940350565263713787951491123786387239156196623387580467818485679861197686884274119339431249074476165760894079001396431805032341677762567684621000399268419267745464250023299050666042595295324975904448612024679864271374568996578345718262677230174472030295689132044563813970572950250777075094218992325090838875696614378210867502571225273933214409223880932886538567122570184091911090585102959698628225707277290463629942996856889426905968474440362152942101240547384487494164848815117217907829073717598405300892508859790550858447031964326937697281396249695166768159132690816568500532771564011956284002465826595054884320117234248343659404160015890349049435671322753087423571813307348645072182752306631522959514936501802861284247180648224071630142182361233099713638473085632628971902292417807186433272407874600383889705513727186032168185553218274594800773122171349544188239832775837154736852040647738014632647050154889159997003813530492079660104056241950234516165042965356541545936912401001724701630532997251345424402064328608820484400918165202668280542268302913095606761866638579495355934398091315966553709730869756686387777563042843683356018841500091859814007688121084507169246179079376556403358442787290651065125256814107460429230526954513031771593728734472469243866567345847381621041802547657113835549777449825778312686336561845758451935281945981466837923260635912877470465352692561953934178985983464786207354949226487075331709717668122913671799871023546529706395559303792545455016455096237912075951023554048422752514343256008698448478109211726538654353658292158248630121000333753235635397039340475279104578161675501722285623849044074282079446675955752779248904813576017659846808977930051377565366931937925072821038697666616322637694406226236191145429131158274865167264608676339410358452565968131074972643504254210765014687877191208861426139168656892880690071816094770850999882181580105293600501477080037139697129452755687462911131192355792230910753774583439716477577891148902606130840848058693460596171024896706522275573793596381040802683612774298585155167308398383004695445482701697604651811134961759303008632146579081655229332806289657344217825319276356406526664412988144406613754436423401792331196702743953994849480000190453139349937690248550500086072701130154629069134684112920636849443576814844051694950410910304359136913491855756932408209500654380015769783482822083106305462995412583710016738268651180404074537987734785339417186754853499182561713735464024273911358221128687079745654707764410251353215246249452955989828002415912797724065599329091602036820085316647270512550013185469297575486145273471226007686589169072649439069353154223647825490323926528600885909161802634461737150752094868942552531437876734693928489131342784994764487541348794721989660562165753806538565714043234535867163562350847095118391279073921671851024678553422656817599039478425503366512294737927561400838681707627916860756548887093953080789805421609173408309535175133318059062957689075624976429761088534592662285604766679468423030670825326340866491736466686860772123699515146858475513133831244629012441833145723861465724130133519512371273067766898157239058783896250661289447082355781904532786007071887876994230741891330427070392849331408463661144628160155719714108364301122216879793851182282955362279129034972282886471912376860740130511815098913136571530088830586317114079455993438368211900816748810568158669016317934883787650151155386057981271900950281805499052465673994891128105253687282666353347598550925403175789834266992321792908017777275158158902758816812496314222911396762287703243631592813681248772174433452330601124645615388190803786859744173780208257465261322252664091691463677206392575767195646896081272146351054327613266080493697348043418239352827874889123300243407527825380940139841772687889841017796329779320707416908039777812281406727383735698480207873109774981447748163118915778051606775598759595557822479835885168111470896398087529509196336294880439005548557930024832779375549169467971874685140973572993239449743100376947452685164540013141699922343408744271439437796826708797974499072005283810095830906241462922353680903950382992465563006158663743699885368808209127815875202481509663915270948612739348655394395297485146781512580586646371284600975479020332013635322194912406817916944457368037935963647166447720024686949403772689142376585548454476364916951035755355891245737886418242969173340539302733650538041113590961953860925190423765848601445537463898505037784634451854131965605365552019260048011732259465122375422106071763793629592669087133418919291333830912797693252313150393184060109656644171831215749726487170177152460278892057175482992563964625672435076763801271706886874197731454814902519598418826721897196341868003419637571472196725901599104919549261386178965421797790726733833443063607731300676414556314176566152597781748867222238635771246246168701951008264214942648660572257739114013771755747526775924377254557103845156502354839214398377627087018332469408840698494915441086497965312830751248232430668884250882932883403612206888108183059850617760022319637595488007115381369623472893980722958873288608113112272250123471078337070184381091137720982624960345426477403570244597130538788904572810462792241117281236819140771221965049185559340286117708512284343792418589327060260807586456568898875487953066459774662227011470000854536892314295196121032748896527924583572391104912671918623787403646201828011646363697393073079349761964914551384345988646797920414586257882009727639044703478407678298566965977076606698936087797281209250388208353615304041507964795484054475308618210764727691221947226990238881191314805582346292106402228326976340269930275027015150380902459552386610765734897346634726949113141072727629293301165080552361948818250290325309271849521637700836994020748341652789302162370649416114671228580950613433885452175681225228735012950539948132918618552333386368728778063618572783438030941629406035751929725304072074748470663807272626427867608170723638146332966127040277459780169774342333629535774357566212727753242470831159627924536371134373086542545236392548577275831854919752081038249555907204012396193177822823636825336872601223668242113083685236594770483888665393388510673934187687307191359474842239899172507089193456113516891886283725168534226246088128742984727530510877111831605078915039962848829161159001686055384133590427856178707931965135071228982388945274731403234907083761600262900103881957224410821268632293424921812457415679909744055339771757986226868107444622424003472960472574133906723923165061281220557683360263661459946323008233959661010106375291317650663658798444654788242336558475493663446518656497057684910770868876939152225007875758188914322190010330716530463723859406297275771398564104207635613943438787053204662999086578440534260483213318451395579814511012205343527784184169628688625749260721206770770554942361433917480929318558952112595917488155926751057621738559016048355459308004467656577931224945474707462557515437477745497871031489520965838341088479762637210800119006514019402270152465098081215871881249685319131316495009938394384405192895884132091753797176484062027827477523326836343964157833612800950357460157728893151294032669458252731271110341409386379450751871951830813096516443237263020640141593775230161339638699050048183496360110442535033063358848359660019923293024174819179155579746200042133282303429018428149791467232212949072474666998687286130888685820624729373789060756112678765961487504397533295028838495572393002883308213164874301391502013045258689970738191738215242242113315107691017854310175920196901996381180392934590761748513222594397768488590338789214997742786138744294316660877196177574610473356760213046841908434120305378905955216986389374972820279673595229925224339386615099472912424911800968551457773404321952090158239930233072120659902518418720217976991353236194980276942521202675145331963331569781171302168996469515220750701040025927809012714084517138117426763176726778258131737231773090175746238273303076353338399988442439341060049012343713397744709701101233748570693017347816871328646689313800569287329232471761918064595869434960287546045088955604610294175574876947117469075524459636204395244232914916851382930829286472307377607517749506796939667013851468184663505210182593795041073934072059157609737809050233314175605322852758608842594074608917180505523669771012736441836510302578439854955067889445266415255930377255477602730627172087274793541833027947602656426328926725820598565887398262322249825802320305571635141003466061957933942984960605833671103804323889942410635276583636340535991916354400576643080559349321902853270447660310492385041770627109751043708882689956298812131560043392949737569417109419506079364457201499187040167204482336749527699361381263147788577807618985635911398704454841468845981261941217939801626067907335817455420788883505665742810484505186789244717510927915750493903621620668009479298031759743864633880954678314136323974353266177544089137443567070773467173368276595861260141327650483413820700144461530401873750291009352217620086511243202397644248296863156365183064883882393358902983685704484943423929426763706168836923105922794244666065347799497444459037123883014301751436665748053509271483216567162482764022229179946908371196175003200988005691333879065109380173137636030507145743681281344474920779490840686917281170652123880976790647638591753073341579701104311711666568273128457134017123817245368913095771145327531760580857049557297081590424024928190716182470690884367470780732711381227144404975239284543783577663234287035609846423721220974521213207241162094038026569509712515510497920465292630307983120913296788350719400248488087681833174741274360948181596881859159188494434768945790951510053078953388967082482898361154013839342430788033567635017362049392176688969689106009380490266670530709389406162793988827478686302954522084853480856770464263988458002228455507917397339591658484349094021360975687864527257624643576294206419510585541093685262042476047239403455676116374214735380018792811659792755564613539284767732351938587875263025251364187041011052860276135696604455820058029730303170882261346380618920523253482071262331242823064099502119031318648335084901274101075374820844619485001396288135702733497371311585070787455078853039945400970071693366346877112448810002229025224764914545567155339861971158596865284414761432140268399681199606508334296040307069172762599642812376443530893925886661587669941284205653265734740587239097784522083305378349449627539754863522484896905240199736767928549684613641134217834007929657483431761103542947883496344942418139160889114763768336971786139854684259509113522114962880728345541670681676928789059708004395215787339331753421933761109942157275403646244309733647472249137313588359563978113395176904277399740895732420508522030121174430460686020094841204051043990802418142612521963583078854764555932132701169108346060027721834008046855778142507143493203682737213772707247726717175166772658848111017139895807316874763679185881784938020903878981809679240106459931572841111066696415362047937395466668798963479723209367022836462783056342619083178177092471032082078009530925312095006427874878083889861465615800948397650506293184880577350865924693639417551752984939224532805968517991085022098554586664804167721789954623784777934993675888119958302158912085028493018740997544986488801414745832855604348317386584521524386277942608050819025949783019210521876862590511810817076639400506151624917298638133422634362965296890440820955632776101481000169481689806774126749276928620185495859918198704304417584862972714777212165846738762548250570524199571951115903937295774745109192058727524717607243670707704778849573985880488865911244639365402312102226382901204863189448383033260233891291410859631728697471071153752008110914110815292518732949215507595279566462191095451411053461987489758461692762081093549901892220174532894934223700741412835748840322957532000314489699998309963638148491559375713938451692027896399522940998902104885062119311066207811046751400161339219213829975688865174987426061563871268538207001288441245248819447056418999349099065401704701199967435750960267559826538677689597270920703262651499077031375358342568449593815443386728277763577808484250892256925664394196157905591418887435655491390459902636913054903772769963780153039807612285435954655302685061878933969189196206652448939318941763668668024261114487804784819028241898504346243348106015339497538644226456599600826945165022382229553429351455627334014916029117556448707868726443688365728498647400173822879610277705861588333291528840100316898501465697238544735715804313566214386973916882149532866219907267256546547005466923725587097069298026981563230880854923884375784682525772001466125985705419727689784284149493630765522479479770432162237469148790870269323341118488235526723956025201893412759300944609128418523123471842719382900413769025210818328242516635846140027507778764650706936293412377752475865138351008700216640669307253170159880630392563983557704108420255081271599224398897718957101453803291332279642134800549113923844682146901735824068183172971712128917042030299703197533342958238640269455544144402964389561915088635990838375351081896608139091904648832480729879668051067785021161875409699370437097050762195381237646518146473089989984807469770088313809050778379366677644215856914591772546162147695185439201299881544832264976174330120770724159501999417822889853719437085406911978947870876873747994646144581737029193963266082299896556307158940978380411296794198835015678852888618234313324143047653664665200884733899352044870324847512982360857731627303222256044478419558806262841052094659026383528490990130095258371123165401774912217470591058675615385908212276299456502578816603872062062100950961955459474047578689963934791865460938125355594243094345612357086343237970298846777715868615171457341306506741259949438649333174626549823342744834655788664438626647630547679538047738883618424749577367774422251636260254387609404435672337346847818838868872359690285132909917846602861153770221676926126715854854896351852696771123916993869554118098311378484579729834331570798892416355332696006046445613842916449788354201281480136483881462815541613231635764733710244496248826296963750908271884302966583493934333411221663264262752662741776429358799334715725536026459975574731971810421608594081510601811439393440218631434235379995733576554204061592706174249347825361162077421822433501679557588507690749991417640857790370288778792604171615130431868071696770287625799952977774183147130606374451881598176255087991108032815685055048756551160052459667067835062777773618010993958783317878828832190433352521499536740589222001928060890476990655066119819089248419105270372853836640457588280147058039793812103901717289558561087057121969385094992137194633934074386269145013347097878174364433816808217997142403658204919838647028579393659925251593181537834769374679106526031598281544612810572613506633036029624874730109102923926381904721001748575549132625577599274578072791326981254066703718813625638829125470017609508455588887521895067992834903927050397247650073076105623688555139770082475479659552576139123536314618294604063669567415255869559044443747726887185973815021217956190972114874438280098992722033776552672200452593046239655406440325308831552137017207038359495397072100829790403652188542684338374518564348941062293497471559428104793873794329344144673990716470934167378849586962453194949972872744872574167864612083328203979917008012631263614897013077122065167279105296324963221714954537828297534198989169196665761112028163978202145087991084531565934919330827976305048211409737492926676667481052692893642316897908907216378950060044375751636299363000004836158844272370223062612313212458959858432840248104288122395278802358806540361421234182407075470407981261891619774531832349029108620383795001164466455423454410566463072984097476147350611603649170984768267360244391748267146141623456724527028276051750093456016901316561295054643330400918948081985299115116465888425226899720314078346768383348915186446109216984502209229745537328308715084038924089954048602041035950669298310461752663473536434778199284414482933915387984743483355188911376834058885083696168806166968422372282180912657741070362327410900599583539460057489870323875164581984185997140953269206659989329488150220704597428382811112435561368419157815374830513566626941346544317020017316222188380041119430403967449462180412161140121716530896122512726121567444082447675200545869164201400076094176117849473304576110148698593118755659860991960456075219095356979578792002545215724164564782080831486788014150533787672282190790486771701058767409241106787056955522186575012718374086709517693586044947203008997531865807578935022303989081233646344288729542878996542368992603974014735419046214060348944274252164059215742241505226143920518762326936129861309971586532933600862003838492637076064947680611875682768033277981760900653308077238925077380371614556247880381220615735542585498476596371428656468844622987607374105477864579483214371751553945906797891284970679869916356184345471517573889936595204349406821486855696809579069687141840977370249232543735229701702661032535508264316469291858447675892779152031775038897359996838254345786860722537686387536137767917708189561228796203837359371827415308361687565826879388363914968232788777273522233440051326833742011343673522515866858409536153473342019864469969230397387588687127238926826115014212539840719243214069303614740794852429499162339353979020858517193547295426297161635260240994925614183758940379593764109371107496801502588396465044464004112358359773006775996388426521631145366755884792643100648575252916746984756174406759089454082051873210680350729088581813652887106169606909168046760419076254714127095508190597534976367338922969690010991176058850133380154908150559109661999361089548842986575887233782822504976046920264279919679088850986748828676458897769145191680349639158632326927757410593866398180090655112110220404994582127442264532958464529446626864732099833927998565169198140877317557796772518578901456010064534866533274267901518262931125108854922215887433405850940825751811100706459022456060832755545661237288028000119064184865934729031596352327150413289987400841869027751403671429091096166179459185491954408560906829841183668191726249882403183184607146419810920202099892422860368654935261574266681066105999552412613567669156878251598566509247096181484929421662770023917802033459898950298222654279431206858931604205914332740206542807308349206123376212081890407565606996822625094717880688834650336561846181877423415212187248722907397702411212196218435253052492842268454392961338627934296640161308042271727720318475018648535853166824135694589525111955792112308479471303580575603028419063923353934530672634488139398543600681711202242908006056501792931284702691873060720161142039255239558406035784763475615484511865259635905436954427180848670474444293529530282948362907267189003420901361505587754419024302346264196197989530344408195744363608695456344217435929443291262889718032612162903464421954460087374535531399149663152249571088156021351418206382231271250502070042085265140668423960380065713737341726037507760078834415359421509285936330482763127876771606518757484260137517797113313046216514103926235093582555321822175074801263198352350221379455711257088261560179831478799622108130441620568011559968442872945766677060237299027927558570676985395012216676833437323620415414117550859777746166319062407071175797286282425319010571713937626297038802766343066052455512427450450591872529239499462154580682607540682953928166676758988565955427154889635810075737628231726305998684500083730599166993595503448830089571454510863766174725901494021770208983816845102156324621947685456077212392958837469845443800088498346328855477327722345002626009829765338526590850864645429081134506376198208231141969742115903267981797271295165370818296190404740501944390095571766575866758254337238667964613425132948361642376113906507628266973599094691265472233930242432960405256394684034144602024060057169676128498105315231842879797767664848582551083845811132806340408772726502457948644450348216037402829804890632388233702638138712348212136042563844110134055328683080061411287307430679824541415361228271783182273590217829664630900276832538468646668675158761143147524790598059024735961394177407702526834154704001266322501235193814762059747910382839503064848876562828406691539100113187206198139888980237820887341653271607152178537956731361793088885181735553169398828110528415922842425905090767762665568514748100771706245956522366350124213486267227071671954696737901929586661473916403152981980020066657347522449012090976604721301556584653027913544325148882601357380658533145301323408524782259880930274930665262144374069150585348773401129907411785356334662414968369868649721816014282943232347648034353984388543203186104640835701858660984123754949495847714340075003570051099556444377495679531496210265154321264034633336973409778266648017701306715479498243830738590287290910984687702872927327930297871344835561230874402476243411957867115841940968935327207480573802457079140645289732273903259820518735849579830329563572635264085129250572010604722116459046924572177240793866010698328936988245834133382852106186253466542315633413634450828977491870849159103647425893838598262772259726956381086905283572851060957076104880757713794861355373968955754147936470623405167650526135554530646381583426397825162439621957162048256668997275213930440408358796865071038872576851153485485357388634189780110506389057429535901348368479012767899089876808944546206234537808039087400160390704351583756140403737065998943789271635814763922901410053360827068453617648686327143145215849729953348184740222642155078774240228706118912223122560853984036554288446796079387970381303741353573382587127230329582993669014547855531298701656589715057146003744444694087491138647743618593839453808290533912241866403413961583891588750033357257213577384582502357682585542757684359547035826515111791647427844826146618397788284629521320101936025336961109311499245725851173356845501942228081300015101341666301225229462150345638091046427369956619876820926642470157979150620426095632277554980841970730121372228487847352211091345539841951699856406025704860527953451667635847434111313685268088412181790322136138637624371094764263744613103449556224424699593525192566966457393057115310068490794223703825187424475385219603313384438824917724681479801524563166373760196810410959370311817975447429201040695887535175428686880944743884676967673362591693333413404431712211656124261036669269784242166791628531705407914553479683986913040706560946675392168733055022641593245801534470524556007480271502982836744324992922424651278954023543147279241410860237408185657007898914286826080843718682707195950217096165802027666859735425498342051351141826019087042032460625692501586640028139317869010252006818547088512810938014033109431573625914246745677337158801865197657725045431152772268514975523406203611293791283972005309294827457879697411642016017071024680844486236374793819158727747532369286041310014357311963432038248197186808244761475331567062403470208937154593907941749490287129846758314199208104884962386242735822818264289509466064183914854515997909591673267090258308862412890454710017028973077752220184607031675805232225529297929654064179828402539096560346009591587784115179613251990479255217286286453660591257591163932432902576613320578818252794638061747085116138852341289716585679092161302819512481221075705564005418624820439363604003684518240380154449259836800121557817487288876677505529006211572057407829023146166609321020914301078717783228630998142411474497619060752844919928543775988473534226798729364493860018246721413246237342264424668546774242455088294751970543177886716424464026509742993804969290344579356540059177577913274649114711476958649359481214840549040184820581481539506946585384924525021562624192325270848923433765782582032562925315016523931203147544673280522482623405864015193557361667368602529567784773506841494068533423744333875374460235652328006390004081012523642863297577667555406852680064133241822465643514619550718185087847655736057036760299613433087859141604664298201572387892231096700838240871477528036016299707621844908535493966571330410134241170836145148959495281761709431795487571421326179853954899858869808776932264269139493518407210846288142724809780591119980566848146977989283380267949305936046302329475960502296653001753984742625923739392439104164372631233220469900807008470798004138235585821619932714569422361218296596259199047729867948942122849076188487215149545648127206513599523194764372242788491454281506361468828721406559618695204321205080462671159636316163139140818976379767055351879740960200845281362501703858933657997638734015919075482895245875133405954208802080033366701946846974923450972615548989056013686464819864124236014420388047538027076248058279109051242600419238097989940231843447212706277320571675604118042341724937589838504643415487905503110177999864831849974575342482248997093379217341588079206915393459000068132339441743727144742162918851320361492144732927496893032620543840173577876358331340596602518677408373583895695158876283931183443875030875409393989797863605935562746805863452911660599570369365258648996976445231138859237045377261807216406595592397556407206359534138958339976148400382534933330838853828637652356583652143532231267822237493077440487807597692514120435859142660294312252477585250215278857657743784465008492149934667038914117970243128847475317169586656712127421042295121335952075981620316358524228662926417451672543380319735897990479791197732714677154218563241525113912198281483622984080524640301432253248484419384778980638807333536844963219039550115535922630434824346064883997694969076395319198755716000136199305410211943143534192719451152871487385734592372019255203899650620947299064811667047901772643402721527633943236163712056102242462547936927960879884351831001299199016189580507036519863820999832002557472826995826086219788128271062863988496446578105936608103831715400008249806283875636280353817173163325075900964697561457952643587803128966958527695033308651043743000377705382617174007142149023324096023127703481933060086838111663667932411022500654807178347444498581178616354007449300228314084311005540590032945254474806387640107648438840759321371708492683595849556357680441510365410293706160977213985505392774988698975042376314249909952767803290427055319607970228570467896961165133599203661429865957849414375998953942121750726758057198088682327606095170092991278341730162270657756004150728893141329130023883189535590826779020390467002749748291539876353343051562047550879240908387238968439330015694437244853264333636729791851303264555850349780900630877418694477672895322714215060552639652421905517965485490396347245735018058383713929630439045298295538187107876867134273248164661006727282263628412211639728145654431773092890935588523841975990127569317829496273182763770732822327402406031187594559058349456876525457040594094760537690234239190298581684929286659060034246480493006263047189521891158943648734527756503936311727802821941811831105405073578801636082937306797693240634259779379658439079152339744363231228805617797708744289435877699029407093232717681091303447654628008847425090251011129736029118324214047770115929453499882638546007974570831516932909604225020364833082539318047832027346301588274804478379920668941652115824034658521090333549910282367930917252131624435561015524177096153626285348842654691389853204703622745159678125271590564571353084132639361281022987771814440835174456257771238730022513769990320148066351307508957014674952058172818638301416057764076785111941979379359481275425349379598020425765109760746825171369677131333212032295499912735356849509636980889722542118016258187297487282246751758795977685633217210656551630045909091541053157076133076127314628720270796357194501616429875337417906621275842859069610449686346568147458836630292354659596597422863754267666775021306945762134772501746366078504141049579460267519858938668882545239514310673937029171209349495393274456336976213997214323698663406603834939488837746183112265586299489065499302127120947180606554315445903956708331201053489374865227167150363877514555261050802927598919205039016009466897289969404910781707850005406362993102998399583782567366312594236866878627718587061651875028537499774293466036850662132766355634613018694650241352996187638475011504975315312864282959376703238434432440713345125031057144418382899966268103169883316252272079641067123722910421655958639835528076910753674624865065848825309349959034672724884293752683198700960361990241358698879149779706019108023837747902288094591033325056925859358707908177283399302371100118451620234279423567003652156944186676820069454812665266999340736393102437010873727591091272206625542432689403863750029232742513741047998751820260221380607219965050266201361039646223483689501658953947091010841420532586784546832815525682963122906635571473376230130073529227143393565959275825042210494641984719503561861441918204965353645487088216163927281348066116235212154493817071430344214115252309523761390354898039597990587685468331139226059329951628233999772628169762844060997931297852759801260605730776410002051744846005049790825925604957993505394135668244979029677494384843238638731526808159546476203305724854537458026245712897357436429500905962640178431423908797070376752291927619279962209808813505221355142059422377711879543794215723555800587495078695680592021685998118850433665177478455775449334887820602419048866415491901559469439823915019020295520334103470612966073839158404380693442345510881201592692065651809328668923281752912836032237409382721755026728737867551020970703004219216306618457884771483822224539672151358983608485003224082002861203201591314601433966687615455593439466484426429870632643105027912602594004603661810805150548993101041216310249300515997729488176103217937826508321265833445558238678324626227016939695075786138404009675149579423546112351128136366568673156706358753565505721827495805167424446178946396528359212655473091811456327008294211089218867153117988657770841559912433150585284341598170669560053208400914340798690748675871840443199645084884522340131102756572082125346542517517397963285831096746268411436767459716024995158934788306102531733798741242522835332729721887841165394318373066231170779470019689840613513030507488228656111962389785003193422430918588341336380156444035456521839230328914412841870248873163353219058870007479534602291597700855948999369020737143764578291737147350791663387027929613003997660918855341689368153934369656733478475320745982688225122000934230815511341232426739047326552708555486717343671627950662225702944800561628690771750752348711012383126368885664845200072825355591078298751328646877709135851178024186392355119366886056321248909187729031073077522993401922621228545398337028100227314653415549051768921261005738246806064698726628990833609510568425351839030930746593716250444551519382202961125861067423230058391576865906750080318892663326099484317710783109342092822211209830514014522591767708912467935206253526215897811279159772206949205551216054658141478951496315642761653168343324229366228553600827420277830899145386243884018873713743694739795434202645702507445732084026835737863709625794189456996701643528971323105342219805589642058704025993123751650955094818725623040291739400657991517504793389928364965015819512036408152995599805440207233725309762087658561864892599688799931686200525218375032930382096953605910618932403551173944887276879255516374125366766985764138668111804741054467993697074956168749815211852407541883562823675254398974775687545250340492295738362781044823325430451130758416160363460557597690470146420963198857178012305694416670178453041767536967592955914191704018218445767298982647902017768137667275813185566192964509259266619644091359986013745347521158604908064744179065757802398141090423506293640301698994897363592683548655548476220802252414535414883469308565924645609649036907975908476955264303746822833607932382867118016123100548137441125219177952401967299295158348799721947226992710107157654755160073763723631510314071648573674908947964308421473691900037883662606384048245261618868720702549858926385604269694967171271601088392464122396249287231792162663772349348857955712915450200759644232067261812475994370502978823188833777448567903635367353282076076094012182121622389940734433434059327279296224370729045463986671423793750947954506104150573746550115810778529152103538217814215837179064565280692482887651233119018063328022335440136748808924077167517728508512353775972878951129395924660553783787647109711656772243608113823227589821425981852201047870454687691887631941998595179055356867923468006826696104985354553888149355136972484553257011090204118157508007370408154644790392530819927947077818701218840020972427850225121656470699846004237703770080639404018574456698276293352967539450968667116107725536183844968913813935685075297968363389357273665281991414767744340677886004837696075854742237705964496910961782220506589287174701112612061112997661360354540637509463180539597270864456490993591749430294070624066093800743480038574485941621546916928658438812180714309368822963168288672398056609607870719903872093956210850024160751089229338153619892991929637615585059992011825230673367718280804597663299334011730709091149019120481333725054534779953686739234828313960810998963152937550936982169821744224859737813021612221234732804996238096127537225191890938576834579247708127344570109717249422520392212292676706417028768375778183025786422448363937814994922880512013281486804799904811319764114016224043844720521770697787684000547122844871465722919817823577734514811013504869844293734147027697572343171169758611302530126876771911540469473690371854551133327457800207613196923438772954135644845429937505496120831522787446103822568782147296049160221130816084802219848875676487382664307090411465772389162783254094000653167416676731993200604941370060837044462232011058650069912374948365146242178010562883652137162694071145309775781955778932360874648457506327437876624177531353462706929539589694000657210548511996541770404261277715433262056895481127437735683794197883996108098825819784163651756669512503371294937754546908974825054240723089226209210887931013106780507962014039466258252479833872625736833083449214720829656375988338826610025059274517255937201963686431036006711478356406767857768431406537711466268350740603893890153598017589355024387579803788991027917125469888777267662521008175173525062483419820887284102135072949970185374951920235100793105729441208333774802261204602922566450217421754701729537830505950607996428233289684392838759741618703063249842670961714440647325170286931561545394394694181855466806673961016483912230154698996851757454983082922482727158446870653081884989537956585375598813384923469395741785397353562405250851754404367314828664377633613558738097652702072632302297465030162429091527289508503172685624165808049311087814405929885002643678597186001163445950175039327675779636836714159490615960042698050422052536438708349061606660365917924084326579266840502932871797132429512135798220044793277402301277719291661776497172163536200035790948692424687343377202799345595791093191167931662285996358382481696441412970221744400596465962518668076208607318386038053357379737669541741669416837783696471499043835550383579765966401380639165054614039539857141175231630571451242432298179055333984327823598716508975403036027579341950617853401018239629166572403898445635810321502716005937164672301859571842257556447368903676798538483567645853674528665541502635546222031984542762033954096164457656604666717399893819670847177214729940280156114356069388634001504959417939074329094656339040896482634771198005881119299625446687720117094066856008346766082969307435110708114291162255498955429122493361228965842560403902853793643904856883375459925160055274393204452188658975818589685725644757143937646592219230478108724254657565261514838292450769907025733057765796608332511056223952608395456108070687402611788451652944635065950378686307935909987502404695895320917499041414068948790524776708192426526805949912633749407270230563900259963075721154760986890014326154184476651412930950731170319983282654693811176744099873086610394320675907106941666454316706403077498749745770777607564957168541880985131623309600337289780118085311621478628127683839248342473967364632911479423768641058556637568700139108211334297384175964225912081450730870966877114621754566140260926450786213105181243229888373759973703526314841923751605989348461419271537334593205359481642233697563558161698036874767222188962830900532264129988808764576314585248864130950288656755816270292891780362861491582723910621844523036608871634143207978924409284553745502661370985555047363551269339833944729002953115106000597128069051202257085961509106033200577599688619275453930294868585279048872751340374471723362747242943301920031221427187069235685661119507522626584136546722911289420017485636384877071405100772011696793387852853922532551684516572123369592109720755529003106169831241905589804269250446314300171893844416075371466194449118833467716879869551162087746103384319722272264076647913750456806381985231997129681501978012867299433661102909144926256881685220710440466838654065458933767124217766437891430902361033759507566471331902863110480460703267077217944500175550234604447896372728410713938143498488047357342305929563394214464262008729025508794920513280815276177003860631747874726976665522153864054705599319533498757037048528814006949875663366180174839300978530142449296398783846665079536459473196317802663540105875771553113472063984379611137740777919208669529048783270609939726111111448733953275081375978455517633366918235035613299365659322271674174692723743407279102064716138197145110912145572461977199228567650817085313001252710051129553672639685445742278359718595527601739989377137047752328529611906788351879855636146753060116764118105133831409434886724908152932023701348914021982787396249271080434470072463159992887154478100330025181461123926795751450190070417879675485898895924852141552489198694999359489272930292909579040057675383307239710460943719602372699910094957621581623147725444725596902720239695605280612430061165162093703712830399594982706365329421676346498059978997991521738163533952200326931725145007432658269663189693310778293321006636491433170871153862073976772166363991252198190390507971876069558431790118558973738408701327989249705613718479610012594106762662279449295701748920512934410182150818270412365907477786867520183133249191822335432526241445909512866207391568489808560933930269843504481497859404282710634976260798679983503895257903320850019235160157683237128653601436434477847067703774218514885015471157957364996370502503655027109607227274739680763155607684104046257490332785775061537269567171349039452711507157216927187227460239259282842441077233323975287755618624401907335623509102781840156137047195089281088769908294390309927333984066127147073699050371272232220883135114290309997499938238107435817310320982095658799331087713413290695915385808302096196297298135656549563583954651156111341123500577002431301161569156587713786211017813594019432627205874366351070878938622802113741325781846804118527240577426330722012095529519671302045788170183203189134045761387915303726592552552318814628689624147121389133705003811773184548882311074719722296752597085835479616568396496226682577204227058897852252349984214674066393358276367039882611740176056506660805202016698037459244138188050362212264589233346373729107355226571179089262463149294805283218825687314943920132862985164430650408125334578165916663578020700628805511710916010662324492368732769307524457369635808269711251670792265243008866053020282989107536485182682086283082612507825640039249284619744583582007073755915859216061387790501741275314971263393299701839789842807718859554786555773649343234974552380780315859328198995516104173273535066075763518162389380431363015782065866310460927867404754902909482282931520653522855161765845962569039973951734335404018536888487340269258522697418550357729905299452907143931487537392958792719900926797141610375843107046765006192947041697742556866070300606073381839919837358647999443738458382631199794150169947839507073307304826527131406418788458948510714853043304642151254569170708503879187253446549617928693455510383791828755583117000446397870757397729404827520147958672930247178113650388291766169767786306932720779702432838525433166009514165397549991862878865119174515955403825736139439624494929654922147071661812816740339635836252200442530821250885962983538277894440163949935057431734551955331676856845367193146049623306019853026871808435397380587341933598281031960442365503734815351591306898056631675989329860948757210107788541455236105429907850219241857024566637091424877876326276094188394986526460888583761777440415613376787315243131871991387179838348323430026066902559830825247577311219025433117841632441448818642100310037329494395488704221958534340966742698817998461100435386780351724025540940101823177061364353153770504981743811813589052959160926524162144695063732684923559322488718110856425728149751614825316732839863615694536888366812604403324472372865685125508592572815497628734914865781364904366335069883591831048577923699062532961809535305885087807017514166264471284426814775213787783872173200988482903597951895824327874139072779631634598532490796017591185591473409765398594093155376320435910431354736453541490487572589776842886630880882847627452884196804979177301895313482770634298566125532224757138205399652511777698375115326080390177779039333975651740958640000052066792862599443203069997179414373088826457327322313349327733173577330961453858597979560528941123054238059447071831514657294023425222676280860747902604719623821870173078981480054858198543249625764393716165494183996766629532960598901231880521125152380771796073865180390490438439170114566130144356427005935942453826755965294079268942922773819219152224454107432910468026202795848555122725616864158879384415445898846969753959895149212199933870288989380223314698149311870958067099313231485348088195991690012349911199900846032369760619634508841269450846007384532974627086157058670660573473444581045264647826908688895451318519492704223532216309857859531753262874657755940303580408925791790735088999491087512241642911883272373341481740276442494417370417929742593605384155091891149302815542945425020979359605802210567442988587777615863283118885808678607163493554417228081731713090751907584054785445054392746712180453232329332001233067857965977287116750897712036134753666107931199972851282588660975200936527537428394588308727957803363768097394580865260702554758453428061735470874311954042181645007250069230663252697814792820029494060990416858594447297003451388781850278648449975783997398782775202963203606133942014497860455391717302735042532380758613649861732472036599348585983732000879383278033555841751703167883090143729357582758425184304023447936260922728972046483188447312161606974304944954155509775988768559913029080270879502854056100923990025663515703233754838231313643597094793894457976272810801746458389348355337992868520796272558081794378133347119107795673390699873341511196970947222811532265148486749527395095441603449314899619880565487498284913794547187522177550511564115187518506117551421069702172233794177520451926378052366258626534974188610577238149275784501410239919018027615489322146145422088482930415551241225866068401722641588671692846428110753874951069554849355959257217244719263310878383690214848646711894319801311748314624860808143326657843091506143206881445683611093791974354688596879199143830864861082674938737840931552124483235628605243011147183983856156667437681070626183800115550282808843347661632920028440962309027373302410182183910527412993115164906768164759138687151877280823132122223135755439065158929077268500197728258992896441143772999780304542022665185157538593113596095898839182574851787444013042220407144898329614764972874728546711031193861060286046729246645913286253975797563351940219843841829177597570545417104137959764020797460193445835835354609663223894876319303067956880526703371907171934038365237079791875468258927160120079420798771737528925982411863877712142818336804263672866948510823812162858115221479990664103493960872746009776140405673416993442731720793733188212190371744115299322634310974493590543366158793611285133383653764212464131494494568740933395568839763946172773775813392898808713375399958023638341721838185686185729822308093894191444347088164365525079196912512725158890389958144448102350032564827101272793029878295220272456861218803445767249958282962879806808364510486315922443801584213084761570828597996051653302054394830087582014863108173844791633782796663772624547287953100809920935668062543801429131963165312769360621324259103027149911897921633388184197704769338309840908194304187191329822299162141342701110783823531108261028270025456167772864478971902204683673560764034302672852336468639458338486912332253072848914675446318721783563394193629208171088085343068667304101844185267047612672976663172520397119094899628628139598366511501492217497308476511255122565732754222153798553433513019749739533753308479422052784771742775798966682927117964889809543924161323572484515361389886141505752627957812813443782901748429716859835042381832146905802300432288290474189429316143690174973711121063869857406572353133398126536524409893544988073616276434235866538287365601425898487636044361694680167010159339044598342031241164841533741151728765936961149147130292920973810801348965011120137057782153666410243995569983580039506438628489564920884690754768404684216187328817784428126535465664435019694064824004538643204894769455319661180490474647052751578974389496515439798400860740671680989903788931386543089030992867203268204014339199679136298828373941246626067965023276049090233302650356850196770820354617356413828659534119444204048156649659596891318510438066238592033718311377594328753942822161926265481344882557788001583489237731982510575017276816115040609077516337778296893150365305038467712710406491091055169742482927076632056384835575196045028983139922117916042402679133486945539670274631991354984213035696095686039253071575850298059777185270711267130313718137748560603073031667994729317682316539853111509630042329341905673844676238400323961488098496113528741425442386308586637389159987299458281946755402566592214967537007887423748612659401040304444201271002062519482706856160855159889286860247025458550303966493756458483077064768630823823828276326614433122148855910422452932661506407365043343229381232136827690666374525962484610753990269824243581166014347328371837759779455725954353071292207084460458134700580653347790949645954033478694725640302951640089588393509359523562706676033148367239677241648835095861622201910856178934681024741839182595579361749296035963853432236260719115943108519822013263127336145629483009982266246016596922256716011504550447189031362593322967426003376590272518975346288889112291213595707184611492561730063277167027141337002359934348081598043613914076189145471841834301284902070651303383842230039057651392961072518863701289560270999909346956401097410643348672663808461924292521622198886604885084715258387046915180940331322666499663941695869983295835758092483053728827413518235553261723062073015152831072202601541459126436964147964236746155505799466207436237209082065442993064295824333376924621024948944195348504711651412418172343990539355403264681682257637631563231141293481806929258767283840827120062730011464751080408446519116267645082143543809634090393434890742793347260927540316241112096377561477432100577364745072126975566742798662843805445913766334390728206553544454571002888973404453657430040608230375523249849591507290661001048429118411082367499040528850551039710003973373324520169747658292530302773696295025834551050776576474597591109749813084381453490236339273332146595212533729890720430537352717729141400607384817448827575510172845404443798333339521344136838961424425342620489185984722008675222169506487410430582530183144251058154196895195812828470288387496293248468638680581558323204470296016288762127090968436630858955033477696929703398753075507907448298833348130424708466670587967572032532101136447986657541949602646058726718045781061469855455626620914858018889321012697837580194326260962625327082423322507806501072603115215099225957955032749657066487919020006559448284528481948827302747161002705232218315973334609253272626312996641880390644045668526968842409160257000303523149463593322890147791952946775979453159710206156141056608899820135983962781878821634201883366821003486350639214615005827709587859778749236984547396998562907701953082607418804500640372116830253786206494579116241563738777107670123172475422635699624795602546092860029906592184100851249632534155576243317278111572024781279491569419861644664150611887334869058419901238589287717457961498391207000543193091101420995028894643944481738698145191378258815414442502377599226260303806062234357436313666196428358715074329251638313300655698462003224524363044899651526396190109922178031056890139866892648557156195734411583818976299140133010124083783791498248896546145273880930773307245056585189189881567731536654816776146009084545294367870523908392367974775652240747375487009340993140384680333645519513037742228991999072619016537626083999063889083089616685786476076364902058360721839456141613384118491343218365059823540544349720424220324822528640663695463015632752628083113885619522657212050315153268312973264615496743744387646673266994204625323640296086674062097998986358676007480058817411795157347152023421609221203668775989505795164293099500444694238908064267842080645735875183068828511784204768529338213230901058004732353660986669311550910493824702004498868644535525464996628600823493710855036646715484687887682281437455463215674988488338890878359974262123367666041019905382536719516308531518141575565964761245665034875383163204651899194570671680963266106822067214335619504995724872994855101825291220787466720437499032270172853431598809635229434709435669390295922460843489330383795513029760552460708104564787504286851229758639099748683343545217851718047923771191165959253600342074818042148017105534746915802832015004424900718847430485895343733452151303769262070518152829694256271531958164807088278147077546286409590757313522876286041293694629553131245343388581071425547576966657215728040711178553298093242212532874482429325027084634787967738495006670459495718287525032347615500938630895341735415473398969955032705391987170492093905888231216730704874213753968419810273024041251456696847916375927847066064226197696840580356428899448588646568278784056403932019311529674006100249629108684177183024573098781325731460023639328312943860455849308232883751964873843886713344109484353047836798919981933055209414283776034655989042297483982274481971475082831172911064090571736523314017518763992810404774734037328676954793398656261684777483248861814554596962141806571266479663240030496112527690872026994565950452098520761750751809697955035609880879969273490158654785896115108797478916287801092302324571123134979171107914930618027435967602107292123975348592828983996809663507775109103046693679359909837073154828362093258862152238645928566971308859365058419996848121523506121491644969123959782867213787682732182241250744850544099251403626934693138869166865540047101321942224007839492213254283412435970365636759777520486468103752838169582373831564337272554061501899226725061002689910609944172212621724924048106273863584816351569353179190203322807845763477555229166834141431098339287397134805982250338160417030349258912299078939625228519867752320786229018032456326591874070972802638788653351814957485362080254200454502580760578102736967632062465924055514147698997032208716782352594424641925119534324159859688999535440272815173609782969173380668905531884361219107180258216190303254241314638635064487524360925849965052930289226483911569287237135183534968931326253358159952438449176933782534813278766420620997061053048017117124202293716886379970822064635267549622332488919559424730063748902560530908880199091716776842784832118058013996399541838684230086067002420615347481413866973739392865751830585074630846447717348978587423246151291000584547479053014284778574246325482433347125880373508514471967872428970725549021184046267297487069974938050374365911231909018777472112057958994017905005138938135464053984394133544692831421391579125785615512110678326990785281536157708800899578835173628109445735618369289959722799045838240838612025618971608536118009714770095459861347364233659204841478663212912009433885670154108109798726296466663866153679352641956060590388218222784474926174716702216432242889771799909539996984396997160189685318226122614473471207296870213260289842492955984137331217398007350795816115433914037873700770054534183377095852267712415008488588112971717646009072783929789160094899726752696545548867870936767854459283736027727445363426730359351350259817942220506635640011385382114865216229158803035139642951586896670007030385342214669230947427062264736704100182489933508584504034811376030523860807802241961628644509878611981298176694930967022504726857951239373108860639810493166121323901870783092436642154506550521278486975674309981725127400944272641296058634361180322112792745427711061063792020555178997263685544321483438146158252867830940937471998265151614315230539703200202377094775191075288000709137813121197870110248329743627809080141549591952070662919114786723301062017043594364814052719455422901884977946891154386316434071461834327593423943716124579150124806959220592815916900817553659422431000399192576351163794225239337674055406192018472502730563989535438408746506856998144008960067136018347794790945511754325572177706129516091911503837799615039514388588576967719630335041564855217580699440810679905327347404012475905246875958573019292757972919082369388523186796525021022051676078792067994199103498020049027061842800082248671693705002176067281316122167718761311998093090298062901404275532042683615960925097961729054942565629572733834627394666201550945756289418577829558919380538929030053044270059509632882517643346659222680632798355491129093704054953741996389351559476642040833653775985239111479599274948984887146580401601643932092234452205665316849548304693350856579852436079209442521619398894095094883851652739894263346393968121670745174780072501028671491380182488349310869904657932370115236866893821051135177434850602223965705274795858911245526886198358255585750675166786041723633523593551434045958242194418550487647680909832286575786373755462344036545386765929696158456786225536709169684967371669948182548677713055508722080145297040620464201099462694494767976567001144223418288291088862069983622486612889455349490436786260523156814981111771943308251026554677662463662260654380173906381636241516860423826835235299996397764215461107864335007069339816760508606087684059451111101934042566919773926718531587252610639951256318144639304111299954341398017342093404011702853047381413951748783138596938042653807942298475755992485603208859873191672794994534976026858039627962613549116114855587382063702938781169567486980132064937527655918956534218324772117907029428259996563819939832928472008936835790079502958851850793448226967372053830613762588371739626805443561380786394720752386839725815042380128509909940054567676483248739540078690941621910186365279962507036153803613914846433835063675082801989247749310610862364500569330597761788146969874058203365124432567359803324993404848901636849129862517424977071890365267985597699716569140172529461210439008479541016738870051649425568116543354109750469188945775155522932178861542350380681687205314168825829325584817845894720343890038373235863011213934323746280551548223732496781458651026088365474154406762806750890482266996816220993063557713503818004743489292123962431051387470786343168157150005840250153843346085839647041725735632280213965729715985445446967064100220026198320481331232523197021546720074219275925813763100390341671874786979430944963522211820534290067605638703501987273429369144990658110487660266676240992901024792738806206075126668183354372328022429126954901577565640816561934977744636504728296750106065764594555800072931576081872897139898661832108652560280732662398335402419130903756140942147647777670938934128071284580489471337428202199831278470776363341963410611999946999841702190253314161835423918723360443075804249043972927428760212544333712844760788620968660955559766879774692549698705335029707067032334261716809894659950638793716220910697543786792455732786800425914521492894287142055725129008524064491489137749600752782152948284107660517753076731695506245270829137110241373721101760903341640484138856454524270418193496795422437697746132298399755022802464657382163572458984268254743469880374693018775163894933834282706133669454416428331951888969347284238234151643925443320385165209590152517194460499800633717451079655070861456596931321483704519934615571663891939341625092818752862445294992838887236977316321758018106789402350850241934997366942776986556523450255452676217962031734416784837763021810077168314333449246555566434268589858715682855092351117996812413692762901248480987931608197018816531977841635039009680107253927498991343546044876000747337295811182419993934468118887837367329794570424415907830798619173055399380754857551509350211152334473384663533309239633910791369468623906206035845561108158322708281872030143115362910609424135158112645622461126864149724900350640062479403034394794942225318636153117880289904873321689782709903176791338762851265339107827303242523554700197340315660005874183110959218625428295736279713006889623413627175778137124953329285800988462059952300943313928907355202150128722456512004899367611494400241279177940858205632366215969715078722667320242233177851659367284075468496730553498009105514190718181328044169218855014174636098779680321545228934144567816471814319274416238964901787084855562819231966080546409864605664117152004633899109566169716889098269177601165669234141140931007702807190864743130810406670138845432651171457668960359145232934763526127100331972423106089468097149230869475857114127195729130304719348286639101772296741883307272277736495072343150849195342455954438160617802094130384635062523832191241398336614197829065816810898154223190135833534770999270184948969442914975799915509560872190133576678600048787826448734752620113078678067167504078388640594817473109498772646020828755565907908096459728690547872540425902989734079846399073642898604605155173735843833345670583824242470620423703179448103046244843450530421714488495966651899551576499329775038572132355193691685073707615405811459802296176069739133236113946027413440877976367166543973086138097333581961162453608820358685715838865166109219823576155972704286998265787183767875491501607389486226183080450397100614575225023846630630306359944922713437177716459098312519097566135141572206587805722755232556946272254980419736739269664697125070027778513094825575869059645862072773247585501340286129637393301823921943208076195315521094771690845755853019785459273904023651205422610739148994909064833190131459211043543932991343280044409293596704307939469290374104732982477081306228624647179044233427007517257566607698437094415418208440778251244616510670508307840835752214959598718015810183343326917062112473102524005690604162809284579905809819650870433581826126563477167479182847735381851864597942275607998356524159141912180140339470251420287258222563118486712933997579466930715426685133641691611168735986871276479696167196718648109735926450811884414959886381283829458537866281611472311797078016015740743607322660028110995532382097328762662098782469729662410962845387760542563557984652133488698706314614439468191843780968611166486718701604585245546025651499465092024404430431458977528801075325844900000269106580050457230702477409279103708628023879835695877694983988766480661456467597683653703566186214219517946061791346533908983490376060585711586562504335634562254234698538025320723667852633371161156823278187801794143378585416450007751173563344926733847431604042075942284581467369034716175177365092644703784241982494634932154586124167948151047788714115457321186198848953456253018152293009298486790130690212425163093112525139587191016500264649657291139497069046873741337585028962728279322338269061501679417461133165120806069848176445984555475583087296927165899897087536713383023520907588773383222398232199152633952828544048242769973503684756119411270080511179198511871567165317273039655108873818494354911110582664634970673097381007836652863671224605221583834955776960801700394635864138043245900455320411826937504172426759527061965352280362627554288974022945723253014516481908757013153624739792741697312179598618601533292158363785527704631933492351113089570026542013014648446175039784076988849140739200424730019901959635019448138477921457870947300254233000713120244702692420004536116755301412229789876666311417972305952430744845139933839732186876473476945418460275913608674613820228107472540199889600437039287559362631109573955656815042001644192371805905155505163038420600729203742758250931976333045742927078251083099786420072739597629314378580917065636895350086881935315356532694763122974018874208743746284253645150708496870407698423627634791650251970064260210322616803018321817632015559948874521851792843493818789941645826280482424083860448946504545227408802681572269397993920865392357255091338327319572657152802354264350507773662614130388534857734789478115918276910666380476447504928752775172675152671120470323886094498673645902170579733175132731940777294875778487020979038786554063760087511179892104884907054733255987162983472594913169736909331425543085890916609979967088234941514321761432195735101733279586176651402036077317235865616299541843010960501975102672819468639961575091281175130712786034571980039321700348098099378784648887142508252132494485245580147413356257798761833478137402773604584999723660758313247546305639053550516072721908526241393905690336270657230800153328910281663921726720598838372280105947698095949005266992038804347505748198379343884561137020285544601229286465511124768138485968272343726722849852549496503298790928306992327911147892455807024062371718752399963619595409032260781511797343739036237114147867831716942001553470138047829794810158210717723564960196291626841495388331755517734317160080050178001289386605684818584091455287259362190754862673819608326965373510370430727779901433926280090306533465795793426921560146517776652644680934560539339301668105233807586188829453928218819453095721440458887850054202040670402149149693154648029241462544155528317522447865550653136890469536223928983090586134942939575473714626585921033069962692639392365048964869943524320878119502328620423740097803577651871637642021968867263124483608560432291402266875857119845836564452629953225938749699645094080633824252671495778547662072831689744341283600884350492600032656492480440635985641888881679784471433176860068229680823958794111042077662555040704295356523056889300428174577905968111871672624522747551249208626959377397976958655690316682705546217374789697352885791682329280164914937471864879576327811625354012084778874553337080676826361491087374188570420591957473131418584491210080720863478490645058653841677347482843393786641944205736024566248504239504460955890921934518525112364432704381431566515136483309568837362160347564611078994362122151482829967760277572021174886616351641443447747457997676375555131253901804504387540217399080809424518375708891026985236528732966595875158174293642151988790593041329553040809076193695299357492741482351321798646753339036133255110872417755123085856226179715785623279780395571242113733183065905789786220183996100605942875277909169023550720899479652321760987102683719901745536938781541962451583685481684892332760856114982342783915132345187939342255578776215602568199514564895691258297748727010923680382012806055242790503994970126654937041953602978965781850593594626383193526498767552231764028147120938318801722267741949176894362608910511147221933671542658523015450985897259018661380540066051633074399896943479718794890284174449216511686876578086548941163604624550006301399401492709808136182930285751396493120733840981391398243821510498660910563369283288115697712780848939942608955910807916541792534383397225190933284504888245936880165267522475918589223688519966621044850951304089604219230361870586327322842669554577507975430614594085824656634698714462109730166994776603397227103389999211868921410951618728133243596337670004279145243506926903599206397562454959599017218655694885659351185821980597366564091766197369624445121938924493046021637952759716728852583935886409210519859655760139208737467293629247133035921800456262727131983451397042946140783419556100038858371819397812617178860599980942339832609493357586376725767718450069154933830644384277156960619479016757637578338685229753430374958993374516335563684996270134992047268508537414729273586512911172992444068421742378827399774830205500225956540271750693501265344259361108330000371805248797679971665004871737129170319093105586832475345770968699418772415321667685898329787375047735107683209351832096278954132972102353101180739193336398969846490439806370242013736738368131714715355524632175855108015729649495170235241666871248937710984915740250760761975631392165729164732986450756312588558246391054594070759476117368058187094357086331837079385506872970394953556064728704447039337661555084490874760526969741029366454136520910830120079038351502666254517901607539542268580175376528029877194365757309411667711807858374620496091840708925288721960563142255223808315805665702900293360251303107851183765442702441517522414056125381062272002507246650622830541006474205821652433725830472658734854190505251684828386686442333676123567808052426390444007999424206730788557277468773389843148318982300898768278267585221434543440645085423500241593025884743081947618762759152448978130619267071600563439299587116575488758197863753256354446440091689836232441530753541447228408374871389665224601016108995735043203520839663942654066185297782409738025794101434321686336592861619871497469449151079271928950243781798893440084244467561837684513666827864148631767408941354915373127632747397924493285080241238332420654143570091502708702586152324585858961643420856982075008925347354768689387969547424741006346571549363453221778599822291513803594450053964412286151793366579086271469456738407020509538764036843708328962807929583632210957537012681952897237165881038220086245595041545590713705448575717736327596367572346944409973215781739697641518919511986969803550403437920047583641152626705200170721166949818507996991901533686388835083498000576675079952707855584679087781252062450686725189827813193230625552264419097294761727785517352090289738514108610389056076925646984333973419969113185864468122457119617536679481915037097018038299583998059244167019802681347194197245007940331322831428046086258495547356292005247520677144728635458194463872161404560379645363612071485132713355332511469271687237705802791167462981650457596541630449962135252131892572905276435019402898820006314870479042612102740008337319147721233915760716139322210250706928198544399510743452237068788638460984988834858935809368089222453843432972356291708400051196204617155057475571199901835293621013234275319584146867899749731379392931045919019464027035429772296015566759921369941809395655538238060530715278229045322072747924674269578118046699359827223112782103377791591685780183375070986450124409355250050499222582448664308151302543065933489373431792601438568314026634176359710066375165556189164177863830225282466047620941440660329303578485184798928703216203773230005459338985611815238200937696972418317502006587059064763681542708433683111064079374945166447517361669951193325930862298813708306029935591233040634477650253913366638167813090617293525838626534887704224874243199808057677820526550519498321475477494459395271278296584490464773318452944578791913894711866703825956924726279150912649693098216089867868584445919279549022345938019295703914678082937923050851225970384301529089050340375614191820668021290090676210382814657146238870654641141571093573474855237526361290749616458377854096116072751159128494821427525993436230939709377928559037393697857279239783866741004885281341911175628491773222067156984115694235488269961713792622549260309270762140665232870393162831238539662344774877042645789366303517905523524885931848385718183130408160379724270116097197167103446156518337465950864072377096891876472285820626351075436143607592504978313552214875078287496299608191055884992780522537768445380397203855341507934565221104270802731849856758918618478086389746679929442834857911938129956158043681125631095978872695275806731601801552461567255435491523562249823894904460239572605931664887341827248587665581148783099367827728533076801089469315525504884943462244809620539554607970259088285738366899537938409659029693767946754965559075339371666648982436687855812240384212774816397469050720637007147633091515611902330859919565440577000814380327561685032372214856994043101529590714403185918052392629521550876444949871962312691482537894249584153939938843537552389491075985392475781552565236195917589770720928447751290051325535397566771956145663282393983737500866367814843744816986062216981622654857997911900027170296528518362363211915891004769333628311591086093378168485038609833203887909655265787604991764388023931186411511288397890058473333380348572828463526260401595385207579577053003563770928194311732901610898584979208562418263744260240938003486902800309327044850517324231382355796709363225628428993803261653497486149797705450640005890961254542817011010082672132984942019617760544415654098434066782314407603545760526373143697079472469785576808858927945818578333966303022752039786791517921637531538735717352011549430922153839291671418862834365256385860345641903341417632593398007953363242172701761052769739217398971000284916397458356867731727575954312779703722608385527496831119775172994866874183564367529059687154424426977216898277391249933975158718970328513300691993365156510496872791537881912350465006982499424506352312608807732725230832032569540181429316075318164784666456905069833135357724851666115787534200514097727364587017648600364205871448088220735846963254109131392987355005053951395971402445291648163270102369412656543985710471164631734330346132659612148392299974781826729822079922663611441500571334323769519098645027750894613146560652105954845724859948557189330721855288350526912832616637405579482043777892432366683154418968573102222851360749635509560269776556920644635342698166135608339988119787689730367049000505557814465849310626265869442185981841968636963111748410230590234692160922975265682062961589157837263251410709088600010878901275015018115376652159728604982576024606419453631449252069221943191324563540848219181376094086812297457405472042134042281482645764937110009999888935209589394330566276797906101966614629971615216062084037181468494330971293467524559681122801210521253220253491286513998408011568824984857821070713135519156925652588506622943042956363179940701389076730415920774190101735173435305762051134454525533098466901839099875372963562846773320155672909327860494730447327940905737161839473062102320284491734141768276452082366712536600604273009651472209455076191832455396023476126020814835401325094762453761945502463006215962394328802271281776544975796799079610110453609604019226379043341278236776514934402845326568596474191715652794719780162272898688602328723863668457073350590430695939054092680896009764067614171796076465013248412323781993212487165990278850579769626481677504694659149664560220302210644368976708854357731711732042359610232108225999999488984370692056376994528557069123725922667149015988790931497567847352698503244804739498128908164116814588417394952843539132700486662491537370010987438901908564554007594665777908095821062125191578947349142717149774241928563260973837062306099293458963847782467348670203305814559562242929659397304644230787866575945286254876704300800074453975400720981624354155770516738199201605913350817490674473836028859342703994348507720500881141251084707295348936155847320208381469183452054155136587780105428118510883373277395484348322798031719889200773807671505096094422371091822419278823059532919663859835243956100208277041119009413329764597954356072551992933311871387490720889337711067062690092533429029852713350482658661721773856274082147697577271929408101184800769977323405457322988134055083691558746735840619336303928162974971849975923315934455149690458768581018921109699333038945216765724447040301209761474265482362278037263449727321304517976635136801932960133757861228058917753119415371428738193345194467664281537107037239252290847460077652609392640767502234890520349992515054973966412858045458649568941972114785299876710340469288024810488719978072365837200958565164008275454628093644722065570061426523363659500118631495580983924874738896416691175517369122735697188262623680157345347350213998846288239611494992759391164354174374907563292036417851571699184434786909828408178534958591612521931693342812071898492609756832703689293529225770139873850497018209866456289796681650766979497942061192661884165184169532526894353243283284499706731415917723309219216668397570513923989268598831110135107146649517004310886377837970929793772174865855749002315721761608834469585280553759809543424640649108380368986025496334942686640288029901218660653244543415832749894479602316471525926899093866672312488549631340978800946253217168200642558150284435480963995023698918204911864439246100159730082579486486526748303855113940857217560431495308820457744153843429456210762367980169946359532256454678733114670497192010551293773451136821719562932797697625418523667123791531443147769642635979491873967274962363823650844085786404859427661120923020352170536138469567262694822191941527993519137350046634475811446246501660472401310095441747967118609602352337433421238018320876198682995346286652132397667697455243437326884425534597933742648183889755677775858002158775679972190806106783291883509114517401985808108316411413316785431042500700813166957101131700587059760233515512133986691116142274685655868399278564345171158290174515147575908597600969435580313747127756966484328707609572914568904786780972654191990754225435189021392380340465357734261269207857942442500173047585128701896527377865104610465988436869083392902209810029920438105973569183495859361539172289504233658053825888923541273527674406393932896057250864587574185904060108138260747115544169707519340009550807704489329512301437043905662687587961986472931162294237782819591198220433937348459921987588447372553831720114131613602034099301736676747630269813037239150775825050689488785560058397372144294279779310960973339001404314473588565528059336701663220076417358913391530310091750268122428391423569021009679721709194828724339812896402143947056449322627438249580822546999745462390954318847758566454291250050477805136233827615776428585033648084050457871668534510195684803192420564815280644016357986310961636560767786772575186776038099402249408261311558271687280338810951809938721479454028387909656801272416416132780447950396384156562372214950988029810359945186514468123175801741077565286892265920931759742634942259467763526663557530103768631949335128986597246236732438718639456751613185281923867758535929399887861797631459572168297505492148261008104674555418417822426199168613613314331466784888194009134552413401737437468706737727049148637445080226601451194168701500497361312472446886291203594256524475777918314569197604198367853144284371259876809574411556941316624236390151227916199070512323651813362242933613565450938583050056671503240908227085107001988756756157964338794444067075651438188155164376788951749826938294595139051464933522349259322273092254000995160871057482824795787726001627586591004360817401578303520327131637283150443305971714044252837146021376829496842542373079650713838435717011272480765953490226511843764704279121098630702379334761809944386566025738471952997700231492392929027668334773965409895998067605310292839073946974432533908356757531822725407514917592282453601924046501254901675161617784947928067904310778435642308027125350086588831964854784609048544176300661981126605317548239602018173608662612239853051210098552707749691219391974158276773673670909484805746080991204589847900554678579497847210663265367288522209527393977099270506785595692508801758736935688668221271948651606564790375344254473850558744378178611858706483174186955696200069845678251273017765669139444370973769279526439740022129912071841035219397118909433901401056911347421976438894696170922331268923086639203661539391992237940937019114177317378708006077754516413328275715974771141427369425152687836022287539887665527044340876093779611883430634954706054898162987051649928558772595783848850895756533435500729200282100526980218686807353818235048599950536833310152883606282530451491324557045212623776879847223952695704347113437937313139628842068420696936549989579239687144645511882449505285865613828193704963040842446718402025849799610768523235499426922632058682739170837429882151843700830321491622626683574813133837906881437047844158012105336163687904895777570599271807205169882149741491018343946142588320245262368360987800707927761773145999431470493999058306262889210964350862115245307741028808538022586401078030492596588010069746803957462589703805900771311919492998881485758508228984667048479107413283756060385562767663775461744300394107807171914481475815495981008982712181898605930516129565421107238925179874245817769715651530338733874093648167992600323987750530756114231317692634855409727246840685973459844350425504687722322858878858606303149405679648574373281611423472754512738087579800423608119509467424526030382878162190076036155930675035461681941140272752680498125935058078333729650689636912542468974089574714084568734197689902511710667878663357519734450529261579145956097796822557841204357632101326490890633208301981481285258203099529205526759660923911731797229428075883764647496189436999767204190356712301099470933841624108924556113033510347532348684713534198055787175810309853915973244033955074961986114176805292208357934743298968000787634053555417716130536834645715694859560017311724011960849719465610462147514151873696999210025269848044984935291836765606468695550940025763167713715026010685449983193112500281944100472338055397894347943243328783869073663136440600280794490070469014601098077572422400904252697248294762097283991234982692329851614983528707916107203004481366365716436689739823239420114839350637026768306443205046062905535726452006206194923278932570441764781193158834216826005551133309706658469803011499958330121581905123245601393316947424271172234104792273633141934582786503111058534080387799019688585731254175899575397334252917996020535621946004203239260800708396253737720177553656405000072282381644632939335670427175110402155657627391279175470956320236847510220461086012547888858672608375665008333371443727452156608749795962501868820988532813782481507484610987534132160093258720378718870394115922935547355085528524638200912841160036754067862822288210506037808207510132721704440615137217803594698123156014084192281215978841845916555206471322575319694514557800467730730854372254863800250097514260715918889067510815309133546904135584073960453972932661658052296578215616283164317707256346069425877013308585832515503183392501598306761241912626522987146745901151526329428439986358958025648071190877131013303846893425380390345442712834495642343554765759659420442982902839482526692167704674090004708988170830880021362706778512252283902058175849455947782827724052127462639631360792838484586400784782789915793607971136699369865037694771579486730761269945845659228651215310020691899906083858563833910624310205464007505921097021936093196564073357684403827637141662981971545420308684043593642474779007710706243274521367961407297604295948411645937754911634229840259207321990807246099250149274044752578437146991706355679134906075277058945239789837146932504421494214328370853440260734100757364101011703939520973686276453312045921264534536535930420633044558686899337022354933587387487028674085181187861630357956334177833630829568722163101420114841989966908145193254978769259526054903524533786321508482918578542652542822218402515496666145515323966263910951085348160539738447380503339009794807886091213521503079357275473537617713109199251598388977329713135481887544031889882328252111089109654508155885209493591988503478835010343455578274968390848802530120682893507268177258737969742925256136303153524517259085993244985738016996286636604576338014597378712660683579548305328229294880186954710293067988024763349548307602810828059356910305907321057227881569747244667334488744048670643507869589569685290985678928133595916423949362383549532772803883697651267109210899625314239917959600775566387766881558293841990531205141122157173068238252133825604568145203789724663677798574119500724569680721117739025606380250958753664463782798450218556532308451403014584529607512463027647461391122334748930391283182566401664586526166442833193193434191335497240951861698808624783282999845817959452269996073071558381328943721796721611730327182600573691668072693365188253016420924709136586473168353042343668282535148096645383233913531024456574393497030633341844906665379615617274969761053354417146339123654967467470287298240072225452628868083437155883805978341920041598290764718202438906391577793502281488938923221633111737424317889309074760239803650908052208154085762527219893232980592944762735855940101505995187974653954091769017000997798567945346588478146090094037190520851561179219313967090527308981663950840063101598438187906863157116997049875643572059767516706462770119110294990076856405463067442564071056638766350264763698334332244068771869860433794010903166744740605217446205345777071931911082813184740916564348162859212790775841552436635571960017038027098935889045994438380564487165336506292255667252328670453637134492981735576473699047967396293022209917874087164621064018420484242889813883204701440306045026696550693983554051032530939866572181536508807993234800803701702938588981211998004161285587483767978443814324838531287875558950999626543267315913366959130943609625050364496846427242177914049907959790588058972436563496063590591668208502490386816900829282136901535855589410527241161705191939046895906954563728312540008866731141157480579184885487284898163969382010682810329580466333242794806350911986612525632506418210161905781142347589195441004234778429612442415125305009080277967919216617254711778407428505991133010141659739802854843524797255753482814585000506630389689290972728533770831540164170030183336440280616277801863000197804605802856439494824852404696390961757637321288463342397426955141457853184669110417835096568141501815828855122124650703486625005944241180312119436420623506607908238386559880628577231421576659378757939217834929944832953249851633813007702501606443506428273539126585779105975184673678488390500788562828716173177288403823068173089208736628997473537811952255847552410225737777075671963774412643931468936529871973197092211136488704257358856751662047807961816342896125019286281166268292087758140799763504355213128441382392661607683292060725980945298227720923395670874225062463942599510616764773032384137072356454241149724645939802349688067451350286371653803651140603532005116406182974742876872602002030930426814092631934023713324160957216519898928083460685365601654827053313701856047904979412981736250628309907412141924825804106995105404958699559073249768487005283412755982321062391805298437903936135116645816050883846590298265071585930699415223309154771119024385402484432222699673322529815608199919093864528027654246534687249005477995248858889519003516015909899697805850357623567955880289966360536561313772009088930876000087428638761708055700991631158432149000118275065473876769369107441283211848219199211994117909697963329581784757359241623084758591637053865194687444552383709687217874485337205465482051078230148230878300350070122957581715985531360035934219537953591815659630317504894318235683899504370421585774153185984685071430384017645693751145407814495837766747355611413542533644832150068921788502944967443571331717673712317887137533339646788925617229144682336264020254648682108759716458001168458553489817602381129501856284666470219833263256329099842097527466627383533623821215668758239874183292781801740897705027201960940509800089366017056317401467527586780540840224884211831225148138450783691570077830652900668323920351367156214096811346824728959253302146072083166514991601883574569204149979888238653223692130080006876766725358615020331292250969315096184168996077927022971768157272042885125855866123460861430396355619103252843763280801678885712958586554735552099523044997780825518869624206349818466679560524300654545308849111228964025868149246013383926169161087019751210620961845894555519347292759227909342203548945380009782056928541397298130586409191336988489324474216426220400687762800024593330531575395921315378447705909494746202977134913476857858125720790206558582278974364534383838940526844513605044342103260038473446711223313579372978757974040854840603518683526409340340557698923319250302372359699024314680298989558070539335338620680480607788976427101062005032611023332273287589971899137783562414381256777245776595532350148307621893956128934327902066538942615078834567711067813280332996143467535337206211769302128973395754705676244065948313935157606925304215571235161709939795676051708646563404705829818695911141010694414466721468660698083059992246269255794262474136520748338255864522570346491105553106361693554041840675466051292135333151738373260317466232266254994607444726439223618035956716405393846771277351220140315953011521368564147498196009072767198738305351588940580072683700519867333238124343806743503596981339105881448283477405655642526796864618638999350957892829798738778546684762395557801131808647187487346634852043602247006942585552184666395831554046331832200852190665669533445156870047276342527679661306231975535328899459184406522518440521066456438403601963720325783294927878063558006175304570034522785707995894690112902957874808349078464853475132444021259129636459398469808103481885383143489495869837740958090155011832844597118933233606173617609578966554710787622596549339714494727263470837386551417733610315722085548177497362724582174206303783117136189582628636161235545858518191007062577426298596301100653469022321933725862110246395768072153084193101501639509563416480603269748715987603506709807434447069189746823121307327662115517274919854804228674576555193846299291818822758829054515737586102554401038129437589042225331629263322100682084330216304930654959687162915689840862620295456235842964308064734395590141017356788676742751924867593248164683973140469867185063442647875745232405049628312181067098016022307450210230531760618815088729691610510583447701580351384769748704386159407616163679801670194736922432070784262340021494430222751142544421903029077656128799517857540955168787591701927740324137163604719573696495474750211604858757812609665822425952283094722758239979138272682222158925128534478347238711833901933435279870793388718122270454942774307882624944521174425137693220031940591451728072733365116060372507959465561993045111401084468434536595147509959957929485218087103164753549425406385146842412633278831994733035270108271144316410197122817243530945125443205764053588744246628017841784989583692977398518366335035360573997107156212895531690982708512908441623544100300950296974081847770981313286485982014625824125745252967074203188572937020046938386410810648942716845433272526278484953303188195931270989140375995285212454720959165622935862253282467515788748174853691497029618589208155042566469415392078158048210013503345628832379509721056735328266546824003804069034747761677079629176633419555581317440055763400966149718803007218887018145526190682615945134511356859361790563415849402579470674760324343252602727450552731134425392012853474881727533131277083130107513615746937815990140775516776068882993703999989578585645045673803871679438799113031070598345423989023168584639060162075816962470210123664421961142013029361310814239449523249684203578820523773160448051218862839493190800109979599036020788934829762989935551236547121807857775888105025354059749631191806893041110798455956420660410654991929898984482203238367740812406109239105894772290170217565906409044253828193035011425813890050036447436978578747891984353981028117323966158272339770494665640577782964527898501980745847565508882332985457654390945935503481054796594516274926906456263867145918174248810279109977484362011878887808899541604208619943784039632547905871845413933445656425879068004787149227118484525656276457822087813621637628511434811575876570472136909600412748477167723691959628309338543737374690631072356185711154757431348491591636261839257248972961730855720872899015246507707331851401104186866317345331100840268592727405881773308714545583070015182766401422612948722981841743805095031583897352158200177469052080635973982131329345855946341800993155181853306116737054711395348682361224340201195743489912078906374159849513550603356245186165296876691965937029808345112733812448010665951928542216913641602272503961639138169794524579346552358071961629797180491185676548162894618028165197501596054244964464474933340283312085011075996434354482555125742914203990931258721356196466790162438908796330619850341607978398250777448119032955912276871352495658780959322704810899201916387948911580943092680783359267639765255433117521189118256552897945970387072618304217143887023712155196340434486657946101397979886976768621368097232924554155036487154074042789051226636341607829345259444744154807505510678022757511170817978332087957847913999701830423439363152706971998661314475476175146260863898115672908587520156217919226673626423043902999817677117593096407935087641923770595665705886317069840890376861709738223103728411720556813040095203724274448251068266240266155659988815436056657592921428695595638532785521527079635920837998699536642607840080834839234544137962100177446901065641081327781459809688913676398417161101466795366131557604270439376978221494656761801147848741872614615384803844410395185161688276843674675676734047891166396577352794186634488389885377697726562527027751453085321416245383161047967199293410002221391104344494853299699813094442115811367510296402370268235523826792592377836705419430502620409692814489661634245167173101317767769010054473634737733947882606724779998020981193988605977960688487726431828428708615278832261842035269615439521739668262488450571096368727456441294948676576294734336836712106165847260470241004013257581467689813211767667539113117321301953879109063465967365257731897460771689231194435452651023098594755638468461705417648867236956436907807356426888676120522266137979089708782215283212565025794174605671687626160688485398700604618036229141049944256968106315273437768021112221574663326838288962388263165085285825393243276745163717071525374713468764568837943540836892177052843758789715031981706218105905678611251267537592154043749294720545016233208503432748290237648403360137409112674876236852648048078947053407857317371281207072123853115355879842175593253467245506994849085529785181367652805980758034027235996790071961176787536605579329961737521076012674819712142171025816147802324535442920985802328176681850037942067007523184852787643713722637579680072881531052352823406233672933215625120257869146647719595601920718837663862495885254859067215488296606042713777775276442415944726838660571601944607414159126800373198437677064702302980060453405023405589541222503167277734490265095670956369597495277275304371836324418565030420320790090673858931962411115934125756041765007320437285683277077725629102446104388805768954670541228142940870823604826611780395364338151336209588523156043080424389661844298475920631322286074126771329114282262728003449567157056500279227994608626767427638949346272512019152097443511878876696129048033651800346539234692982321934450246022862870057376660633938275643185483335395232946535436339671205794980293774287438465184652835311646437343417075601473755387773244274045648283677091206413575083155577353625013761942344231544370580435294052396360789543820403494507332572040102737322728083583107411486434574081930322787079794454283646369853991500596304395445995906746996026624858728580265489725075076847262961134390973358032404416852967572796377323954518495107543966561109894247710914421786950816128706529412609700750335378588294793992682671676949881743272568891443793788819529403687805603379354150416827464924942593065990966975740624287947044573734867199072292789941461465340894900413831600944915795565496086426195979560205790890740189659856335461966315378844359041624161257359738003773231534483715491901773971257456524329996588067552746512724438693532343243043687702094818764941643239710879550462753830535796334134949451140124746329729598387034196229717733562563802902086265044495365964401890404118655495143896697302975057603977822288790514436986923229948653699954620220621715240459224004988466621009319546421634468726646553144762005254142755500867881516432608074456122381846541615319489767361309088030223271274811288739558376310375185103965481952472399648891733564917899023918695711149124574624117975783169270289966508523079848524998337843885342207817428918039916586494698498114622859085754122290091599004752270735027161931540737929970589590378221725733920523556289097827359245762649354924283196391472958474684540490052871823948638399701040453179718616901089814339776931331947443625504655462215676485593684190094406448188269214147305231173278264865696574818043052689498797622764630823023324214564402911554509778841122045176032679484313253600745752807643995757327407487187380171567746378872277749775151189844276076322273413193632549460387800746864981312142931225541245101751937798023312754553426431575725676192587446062915560521172152498333357951569191433471265506432190767801880916505809774284421020338928708684377628914096228230521468008138229783580928396888341772599992323034053178503384890779914629873315549348642112268995414406069535148277540118357490316656414538289991938226275490304938210710742692150232101111365954548774484284687995303577677016226863170811510864780162834173914317542797168424043389309395037165296910816762992626129196867774616152793874993799316531964648516865598341168155965820581950199751520337059508442628790773510878252278400522184027380121367691504349981169287811802328342818327509643559879036819003527185448739590846886549796505884220471568003346061394568317499502673645677361424327792961756286299505082771717897299937820458589637091473933965396790203438173133252143935144660027206984412253888929292914201845280703461707505904257336108853328638250484218997564790640292997502329987742558019400516892498739949971284386881988731182441497930094414531823874482869253955863675540639159962799749513465881423157196261273994665710464342762483212249147588184277581430462721048218201225561966452932994494542921384952561670727838025240944211094121742072700330020114269592573652387976595850268642531078351241060517805557844310769264724635855993988623748841080826160951081307843688394917790392276816021276126959098476237118658405937509077097224113651761021318790876061508976230240260854693371852021764882081484920418259303228403262791483479406540366263211249696086698241218930913962301856562196413945719971032141963632722237763825383848283998732123185377565316773894890096811909480226240511413436687053689806227611327009415053942261562377494691638204459392718288225804578863169997597715940811524204764732294311201715113731484515605193977157039261644176529003095003041721743649419421644005220569761871165315133363473113537508406621310103434322212935618289530236180426936317806530398229495635721482446805369014352124165525552108676262694970013929983531370314245402379913902353894497092555347857291390110484068360778686051230297346546236363716676067550511950150327834045150790837351628540330209973145751779849752916331692030779319888276042087183009181103439477226538592216298196294635547253857279393387985851728955726026568598988838984351150793739721124304027933952412850375857322080413169378885497250300098107807889907055748086155450655594731012555878920706740455238566772233135495226116552486765040506438757770069855127287894630963868337006829478776503383126582310882280128217906815949026078892528742089593478053375985026936932844928526556998668707123774286540015061083540690820850487780861582803655084926824784015645276242069544148402334506836630549489584601906830113720069359039527417027214356444365466316461761140674380641848848452076334323145206783920949957042957608022729141065241333639094383196255310834797832891515973013097849570540470298434572243405998309200986418449734246981323676494966496048062069313996329412590577896079780913320139870140608590686412589648701880608658596014896858285546482732388302971097548112240297993467159488141719502588244405791637211096592610536820256957172984392261880149174737402937825077050224455676651432562572522579758917590990679251322108726231558925015598345053261644560660661138082521242433574763033960757789708849760993118551263211464743981117851151943062404738854340234418780958779703974621569986669633147252238594559817858065506005258581487317395875076655420193535608350585590917014857670666376946856096023686053312230026639459406069421530783345427429601753529407618104463171022928768138068451375401599388330805693703152049664352950597809887222842603574774100383372506848283047012352344848468766300457006097182054834942465900107077795319243978545930445093802315594759130767692085395082932158334802214827950305328823338178885129516396737185187330116170440620331109239407735202298956868677564708198929432516185742357895247528089757418399295014843779334103009385662838716252191464455386276905522229466413443087712323243355517701540559083786829368878204938774367764658000978668144041367439897559930839237321048750650477658054770561172967131532510108166620029903145682672650200835749790768631345737238429220408961302956726497379849678213102656370475194279851270214017548505006578131628562765680802251039932142254079435276695472523156894107565303617428784360058186180969800396047678270306117798432374640433795261630615317651069777888179620407395769244198159290055555841448057624567878377619762117022029404122036738849777838588869099679478955360997543796314586193510473515351344313120502785485790574387254419473746516771015547363843826727405685113358224217234878613165969427993717486645702248589592159472448717649017125608926215472909580005361021862537203180128648704304733083061577550301137710209825279477785295834944805541947983680144769847372499002194510259880540260801426331780172329990390853242146278259202639023874944865342069243632452469843177372032074699236575595584719092139853719688393236321682354326057258338372065215065979182908980202680107602443684759501613867259163209008734348681526863731938736269255463450956132514492995333188595225288803261816464964286689152447060905711772277437732329450064767935720247778648244550879615191210311268184959665962366242912907150922901315307165517256060288529887666283566491270757418188258299600850268689450944225784182037547078091871998301409387995299773914363031093652510912314414118202621600869579837470578079442153600757090032929709089246272972509338031000212816428971796796312539944441324410867316230590064135738087216102025775597609607844749623362665904231169738546595304188590492082379120329467956363944911113130823941974131378509133373150516824640330153668187171250792091550058101310546319412392476733929213553526648667297832659156928287632794759720306892283494935461211259521125982736026135743476649008149982396712199807913133347657910762543294230462750538875965025095802965379038470679560617877061527952235909347118507352629295842342644650161072004696329703194373250958404989966904809068528642968749408188333694534168268978155624603908151042606415258689552199265966729887902970558910290307854473162776427577943238992434543888012480959404973518663840969672488645943886458111663007767140763369516287579030917064031439193638386479424547049618656298175877640544236251481940510960943025204719194524513445187413209426747821733309292870914548608617046400417349690344368953485287120508912654551774994303425844522039527521144819311354059460227889648395292593669718156553766942374517016961801280113190461566735838120238658103993061573408769039596018012110761398083146821875081639805593830399099982112782215463329284547107547090463807103441161052350282184730011067404084452850900323795038686646431462792834395880038268420320905798977109153819727093912766939923326092974504227451419255134698326621234177176475841467760550722399812442828722597934871659256700530991777238906799212001151350852067375762029022458716252751263181988662525885148764247580748665960421712304934297708067633557925902737116732780716176321648458732279182799559788655015483455618139554208618980162343769146751684459123658015962447586862616299146787950062732242825762892410699837975938032264755070021931793704771966784591183240511809229337093031531290974759608014235343599296181015205657562804618813681983592090411354842025982899875062221851761311339708861191526307803757525379203936052414973306842541207510416940701555123797691998411223934640670890305668190577573297201987887229911394162932313578333863057904919874533644589231185819254190347958626995071902210562271153489045114928276999555892441810219044774451745269390853504930356437058262790227536033188555308445634041112410775554370755171093145152834474806523479182768919899808823133852960341806858399990539585361667323313170285050736094983128294914121169229184051453187010408296823877912435387520554299229751639806816983649042952290735056430887451623221268395673883031358687778294861013062278750357658107535204618101580516784771152675669310686422537811175575836053793270788998023941210252841421713601209740336809174884579347896586561301987317198062895691861121679257557715174795587959684379698778462227645357977722672178942219668007325036317395119077181774038801981804238641004247842648144812781157566057010985630548632742291175838006663441407712756975590002041720165827472990609507573869477282774183726561610338175461120524870464764898096144893481101168513886500864313352653757653133796618428251544808714149338411574760107226476763100335436061341413705331636378341780081837902061459364436167687291873418793397168809335139685669031645956953688857736201280585048612274848497693596007301313110433419162985119903953043524170763735412152156598864937908401382938627854224894300117517466556680692667118478862872497687736117139077703231694257025541044738013203356101585589292926498267858797134388351326285714196379924795246648045123378299292310201291081913045702646955422649685214072832525621998960383076754912561505296166261093197883187713195400270810960984552468270648406978280560097998167826355049250808310863170851015849443896650309730176898642630312832638074609036006258768585383045328723329914750404425936197132624341596116727757993727359511117497406855702481779853810948997898483094380106869388503495891892276257742944749254407480628168911764257507309053837827261755285614639463583940421034687950978743721669625428104493555924359119273660358323243755012429722127966703685489594067803578041819641514900614925606336983108698051843184550951897119632180832918620841744832614517937928198076204283253567148725251943592892827372621976147061513145818602789859391332766128043769236192437281789641289054684087811705662259811649669149878075329652882090906587254434568730714811691306857683037651377874979081645877339090423383504636829677853780820391304896424750530868768418624413231139536022114146968376663232902073575801726440422217253537523259521337236624603925825360641809281085347724762353351228607056034094942634435766216298240764081057629658714645629757236599103013564744100727219514110858474058663349568061716045733059567038781451584933777031177846032689465727694996078143817796347016351814261189686025886375393815946225066999315868060066105041224880523913411953232057097369257531393816556526417013593512913754261499684234479969608348863693797612586613913745253221623871279575491427515660443946980846779986675358302094088889922960356730961869742759443043542230872450656119909988161832629846355094990200410605306285045573829064489632484696686088409435669961866276735024935955697882840867995142695314317801100036429400566336902800270126645763808030846055872788843718354278142762790336734180262021947038662014549936702332363578647795999016702823923002333557052200794591179283928759393437227632286278053175023691671978004621209018229494025675297381548649323547609545951686386101929326134283207485994706538066581994520117274273353663158456271935117044074579037569712604099802569210077487249523284875106340062400423928529690544708062979568688544248218553617713438757456564653468846837928055717437443230427121228730738646229942344536704928611633000538022178677883664785944681424966848365645805895243999593881988375345859921178926449671986767095700096287568592990802197790656081569298915946001893842639928562085033577644070027840091756982746327988260702036172953495893124150221215374247038749956168966024966294956396105525181310883567304764925778756878615591395720203147101333344970834513971704564455154632508058264185045099818760525543368709675374143301169407484171701383901598897747236061123492171219906448253794994770173218941918615352480296087519630736498518926065113213058084742021757456278676194020230647046636243931717910394965694611423965874259228807830390687434704218868894060031117775966398307149579150913930021278760926768791090269929670869183870032314111087965548052604141421339068998206893800175977389536299192441474602235066911087418485923541111184094283626073540195969644591006549067334398546802052060978080765701258527120899626464218845187449532228859721878845025345575104738186631053973238715912135677721904791823858456340202043197191701503136090030730438783492997491940259386688971426302953533623666576646553352391596580226304334487962856838347455680573836040622166233263509601816401165170057651152197295114731604278012764867041669913908779758169711046131966290390161008123147598136737840520713541336775401837307915859513126187274508745264797098593149904280464180247273293263663324357741392836332932464623068313630504052593502901066097360516353629029914183853602334529056074979940054140443168246532270111833713571088875369041421020956747494638863767555500653321207380587202557388909966958843862390485177909277016797181479055117837420234737408614329930647872525300181959770985449515720942293646460797588085584417724544506166269299428232573803957425570828924291660563429257051135098364158241691530914718112799286294016483069114372290860212487147320452076970772532323001866486760392885067974640256138749307125231082565103240948130860385289962122289288146852444533371738938585224267200394541734378745544749956904103434495217246224544471459410254548417359159803303092469140708522557779496541567923775400059300533135489774184429615640718754247022412649868045630337143871857074286677600449925279740421561702955469937122108542969066899162798656298115303676446557823234430743245458966396811241661981004013472282496560559849669609010065074622747685359914846008565013754903245903186573725815815846715326533949282117085775524281837947294623987627461184286906177349929094737833028735479332872087723010321961142098693702090860458075186229593388788161008944857291409545846867903323156771104468865800593282815028681781683271159728553999098710509486720636423171967051053374666247700755718791991463478725319024669226271038053885359282452115554844848934337695677350459103354676313724082917267020672256540751943620450964464907132655337589317982143169441105925508577512127544226570291707924913460092309903162501953161878480343925602804803320775324380062273650292663536534722063299871342028518098584328709815196710118967803458479761966920758019963976186797973875149233902089081335222370763622705615502332311362982841198566262797027062817268751600449400569526355311391825706107287032957627170533168646941335699196845974616091954368109150702832167263075131721481966953360442941888145983835137765062414310055607983208517305346714166834662186892712176409041575483549118387958331914883963547024445304505014394158429120421008444313208880657834688476805841373914559231539073742673793653057298432577064680606123475752548454205011278297523009529567143916575914226826490223863831053899443668411207287918976301214913474500608917445016423632673888356528145622585597388564857828671476480319302779229058202801403921847089343743415950169423759291559196016058601988450000517624013906529572508851252768704242956468523350572000910418278936667956231559314885671462055622781827033525404453408158088562149991521063505017696147645467596673376643143117972391272231718390509857142612540339235963576580113361123670226908136911693716106386371035444763390513358467737232001304306820109730162998697048724746565237119379149808476518102271741717853014870388056000615790751261635923048084156409171292635380100451510281115559070857121767387016011117276183861010491110209684632706153935291489860402155707607634893247921074485409237424973746800391188701955227293086314439058640337024289912120572281211493018288423097445164943399915157846514674179531948875474703228849509418443030053645863379565981670061996670704969606610119355309628145775343905313687801930727392798827454355844524099568530959348961548059221316258126894953805365051284062219259217687428768202787671579824315529554617561887153443550547544336269580228602434157756566702079819111688975629534238723523855491538791897238728875703901290517361496982669536257770962423530086103376821708026262886048169583875060667895089906632219679675855103255498203806164364654502728914601104655357955175470367739973596251340342999737033458257273741558601434639077012860784605392768670220175410796762604484926701004630430344064681503600900530917603044749995601047966212874713144342483715774320913643895832881775306981322938922475731757177004669563809514765367781299530587189190166876352863480050263915264990512326050881287890851550537682968708780952544368628796177463358818073838042545918350049649801999921707449973190333829375016710271424380911423016330908686967558654608790007476276088191108468347056566873184599050621902211223082629442636196320534860232531882757006982301262058251044064429379752590278089177096362314812363854775203448302254030507198848132886426693775726177630605466364921857287369729987982996408429805718861553334141927021556828119873846058562799033107076096779433463670876614253138607064878377958261457580373968141361960748501692735453202698577881305740580478354719823787000250711098085340304258283638705775341330807910782962255734895914846221414137270408008123864478250037270029361424908133732488032576746969144415445174441323487834521405497936815035716683946568098037116525932160200984063916186771864343423075031835769609426849055741347763612391477056532602282172938610911471149875235221999307042411952531917054052832319533024986807814753710096808548092602615940155125338690550571873551404236116246398233987799391426483225680999961899047206563608320721414784343658729579343676008241057309898067866443506102373121526362603154893179954142925694274740543963909669729524177513042256943387076713874186262152524739220546503894916456472342498365054403449291644910287819300457473828590750146819652837839528371056616785626991487793736331843602623104750673462998132230434185488208633681833721173058650960121711889145710700356721942012554411023236446194342762033787935107225678496907150466977828375385263173436770765724587234781709874049397616384947576847468294407323488303268901368254523555700882728124080215442715775663382940556080917799044769247052187125848874953342736660355842929459199614682996498332934485068288920137838613103424466654977072412840880586770554744920052030416538565773121397702434028648600312529931144333678148928576416035502731410431221600853964380415157659865559388859173800613778978111605792444392037110061594441438846687181795982968150892056812688708769919253847460847223151914659248748643391489382397995159427456695261167345216182922318525534089150834799905883618641159320920414053185071520385733406444745280973690723517979204687397786488152957456424902966453108274148428989346180429899323100677571596703278772875843541964466171625621975738327085809764749588843860775667589695351749455708128363599185273738563439692945166828916362174876311733298308393225767116284175776922575581999214726030202987800449592809164400470563012892627844884921464356897140814430430157455765480188119050721137242542561546303231004303493199220342654290537992338279880241762999511541112664098585044749329538540703289623758114736257014199719692932825047830103650464918238129472336194453085914359874507539841158562129576383295126762868959112286304803906358175925749165650048489257689645329490963766092314383158127051756317204674703403879920032650662812137730352094483145648963690692234821265536323940900252796063020354183661968703071819823351349292805039841643826536390498920700972622671284147141815794779339111543096082101192998765399029608173516887596547416208985155562539475307579284744821559550192118406017522250318926510136375417275561095948171067113233010940331115762660988602860711094401215049306921931836371364800232174126092118710619017171184954268904488497818276423906798770247758922690276345877406703396246315993042471397074792981054805481427846585767766419735204933161618406731381092270523815868447146005775824218380824677366954990220299997129713912963253186320653050219056617957926955133767060982356074766766609116964094682388801258753944547842742650903988150276620996782039096753497792323584020352862455704126757312570348969835575373467182831909278060822079591493732141098753237501171331404220274888624469518144296286633853019720852541262797182817570201030820205022241836868020270772695310967144159254653644984355453247796719401871143165604432363859740242534420292979395468915384529586669946846320292400142485779651948683436977206455185117132847323658045667627031517287554701730440624733947825099646798787387673539985203669021997039913453735036538133499197505810476961467145199247369540083469982507878317052547293087243247975360303407096596099019433127945682462455002842749561347139747528993405217374043346854852444407815187102419279183568683155621854255732030239544463803412154909340385488660663136178574387854610457452146454073991478928884151145757029145869383677764010899373034949838840989595600132000437437128685443863553424949001727558727382698383148140140834456409717889594214706235603349332829460348007100966189135259298107575776455752201362630094120044950225646669433523174144106801085426988713862767064422469589435376949357523549845316988639741383187857337548057247252510174970394589180428293980188621912214915698128410670839202021498236167661986023226421328708643462976229451210002486717453956083624501305848055824967777999385350670025800735626599256819547538063493059042833474605544767524123200782805162089912647963342421705371695332196465641025236327252614822949949216325287338188657678416249043740647122574514273011642924893504868834856132480594980719674249810837092555798841960794974120649744282513049871859411118178637807834119440426234978600209555522422674314230020838099519147240107240097149871196213480227413687439746924473542830978633830247019496968318422704199527588271278469578321714279717559481824614426165540775777852904270149257779218059734994313041217335348687801043740962193627991626677455571624126442482531154934832049425241787889634946758720514513098623599012207959543389534180593680790501544574303751843068499128135124578965231325552349029092193175848080884335032802749528425777539782068780246662983821947702671369355981473917141507734000310059294856986689413409757755098690154312160078992998867946725266271418616656518982329510756213178337071066732046614590163313269981895575780972326863570814025915614503741410198986885664759831070071003162608088901458158438013316679763213670370188928743510050808002971629749335441869403508204656675158064193673277836980949435519964203279480686536609106622234897932551233236558161572276932772872496641067005999962500751334072417249229456371516534580394458045722584080906298272283646379546105598088203605727195896414850126553221284501975543180575021789931756972965776946132245275952688485887747736562928230123738456582731892289834747182481374175516286795216724777731712552253887440369408375909602251504272352360908090168179195803091604411832657067365577868351096846472589058753175440098085113957993251479185749622170060510843042280279353564878493340440000083398938350512200596733669635805395401355053086443807898743253269920829102249407584289407976125973156957246150965458622952944761226444093552606541434122421616837805976467965530016769231768101701478521783457508906153091866955087704539948070333275954747599289860675168592378013029806944309331525632675204180016874748856602018359519947095835331289952153100847771205378384729452984607760276387287649202922975424832586324756307295733375536269668881596828941037221757915072039101621483484299168036660220306917904681509835941885989759179370206750240100189626246347495623671447859760143784838631495828358998329079580820399892907853189319692245295776934336170651675909132476893447611712816995936038496493903111272751005549451029433968357824995848958738760518822025627955950672920873669441038362766462340822689402231008152811909978382766445632854040460587268365103163576198912075875721495655702197523059035115314148298540262626318537527565082950901607536203928096367045344761156600273852875316410221612474025794501273663050988707247261815826755165613524271404617025288857096158103953847242459914950962652095638293989101199905052817188737412581022974738663267486982999552411542958910909244079622270541018807995058570737452013607619672222155242967822475113355200889759285816290003644991193731892277677166472557868926640770323072711238425138672372913336030668613502994523464055103352019111239747538318585982194578708131927222359337571117516362559697466666059670173279913845009713562746399891670722877334228367342605684550685737487305895569756416207852233235417583008139679423135038946293913069566042777044729489479891612302882874072412394080986427011176726717188589168972045313690198373615962886841490914651653352618182805101019140655929541940662859538557282710037960314171231961004456807647709462171845037164719394280034463226858161770820220841576841180814693700431938858282857757742821208461300537593205062598533880988878593572459780459685734637354253327171614660766128086586913632542846406295374851984899486432723653214965764620729446926189646956237920228788020379137946359673547315761873774398247222365193978578815735013967722592433763688160757269914689130524345067102075822262130120838722472126355587338085790098654376320540483399389238707580992437019903728207597108565171295094135488144542199002957737320179396260528863198595487969040656985011254864400756737130149514885701993853556857839132065404542623144696290554359727237054347413621417291875515062172181621495699639222189944301249871334443562379859675112772464523141470526346351816637402656741255292023776695418747024774449258147653330123156070706834378512366248902463193084716492703510377748693521227835314245943853355509196916906423713074907790228193481046382369916136585753506979123566474651048652215854471792714051425023865432546374139269821882677876699461994820640180059718482064716335460638912450306550783288960303685937146352827090688859385448730131943679455502575414968795760853240888283138253435230637971128373206610309887219654981789048262396801640077664268198242301899843151682355267790240355121204039984693368824443570812701188267294094620678300372737309560443502119777038201368911308308557563407109506849702540354193337483045454094720044230419331328421551187283119312088512518912549512299766958768984095328912152331326833864237716778398631866356287499761041645291087533155802598579252237632952566645456460614653775943801482430776390446271685985436113647631044190035864149083538696416767923521610622947578248051983119267512401100602173617747788023927222682191274896223213438012694682974465053829808679655388759207679512992782193421711403098170258971691165929538066012168149756112159600533121580617748845260794069214931319852746784710537598028812030411695195603884701516598300394064914301286466153912069575319180635657724417069711845446155509433664842589112989729126999104348335425451250298825646976235259977951290429014100188853725608172895599591264049957164922278814188420669454929129340966643969813762592471270057323423639547708705831734920978842799033766371818723861315154316045079611862573742460303497253905108898679422892021867837231890211974585855834365028925478134331226640015737077029821335035468442610542782382457630278550482927635518388058038989481695552465244641048227010805995005467948279105675778157289244823178375709162468300896105513016628591864359870834216785814054009947801886371076182182248646270687751456683437714482225709239394867511737773160272705781585020063883672186299023012856602634545731365927482050882739030547031676662810868794302761794193185205323786978602126769285264267296858846596044456971484928806684777349552618457903864203141664241665640794942720400036112687512143285286301085910350213419123695299417121450904929728384418900960731853563352720077664858596635686811611649391420634748886676406439190296686062907777833493257937102767480312231676678927157340309186082807825720206092653789188049388414339556449711583315104364252099919478241036460677814037379545585558098130233008133653297244670815039081857314887233288889127508059844390105443830145237815138128034769911420565651668330104204730169472855194087995186389388349891719027825096546517933868053558376700827260105311944523094024001441343685041540728376415533360642306799574776114329761370168180905127323533141202868097574600057699919771895063505231852955292997260767262244581248301432678244027538879489624083843456189604033133385331997189973900822089242134682088997227237446967453671745737997114070282693985001635895013831708870364190433526545868402039345950477566601344839287676740569989977484468191219476996879165393856032768978174108904305270273854345934465725351492630485699936295185853851325973407659483064970207741380365962120772501463891908397941583363990886923628974799842467281634007324702627079548201821485124350378820293048380733851754639689714295946719800550330016947147697240066188170007931297721559512556533732436528276434978659982443117926051123575944746149748743333290633970389531732434295438543616590703148445161915598970452600174469706838805024339016830202616520912137572980992474683646792006109833504926441138478199472599997485446327640710892770352169244989723058972588701720083593699936748106157633082124493199828508652399343968344204571577240182965788494316461288340016699908066528714194529259964876001870989899277681005935193956945064634379599481011846016585603906996790224185297644204118645661324077067032096259658656255292301200043923321105684016742095818270838233194994501864942561052572769701339685046974587750669167353933682955906472703748259985178868132015800678034201998799991867932551948848453128222656973350657766095364300009005821484379221211137748061210091712844346961967295293314429955449812467969442116367266028511873371381390732958127499495430685782977241691547092882633258117738785324463237099931339169887141154168961437746153639238080022055128646903089028674950217563519542678756021542557193189107798344905231214055122607158984955601120742543187624513938175344272749620664521402478943217502479964157515572466588617956694849123209195540998792356506874142582292552768756527820504494928005232998282393583704090778682850839450599015762200848290428502401277656245524944090729674000324649766978926344269950454909470809535009776282519042404823717116179676335934522188285310299630680839957659465683493395709242060586287910072025157359199134653539837943781768075522632024757201982526363780212582261594718048898425046276845241755840601593449572591937785496787897034129840714236462030637274601877966328472945942821652805500950806282126528389389811469754291882968573885544052997754907530128783568566158012361225525771931793061362290109100187461155842962610887803426665825245023031776818084643542512509783520043624470880520165036813387483995100194169673693994639287363216754877231901920211155873342180564251262060735883022998834218409154748003001515338915804536232554343455970621319918022060864280172228005831657081345386265147497274251719330804516383234574806634438837614344988451169584640260578577605436963001855851257252357232288714280440021771644966108985222310429673309202207952363599838065202936308588634952086502578850204507953129192072570016472092889045358978202454595077074016017535501948737993754302020361661867127728752815486427566680891429024345622598761776126807094776451848981774482653032542505929922181838896840613438558907438723228855058340742851725572430845093269934213434261991073925778452167901961473245765505935483107063479834126519035197977847270879037834558013940404925337059233243411279684033705231930885723093007211340344993295056745075781438364549123609908505932480024969718087250297919204997453899870242030995231833955192954923333382611955922392578501978614861798028022029450363645882373852712014617906404681928327721601274556302395254305851708854532946422567288717960886750378621658975086429201550380168570110526583948424932551175323267999036370987067085656037711376120633223866203423680910627187563644306872895928628600926891395621561940421496116618453584942630194588544693748976018540720869008837441184033709237123951550141164157494712117583034446775745614122502710725706851291855488852019947117644347604370771299583530872716187641060200987833274132000709025145323282647088668126562162646783582807861848294238292876965031904351068554872027456510079455400425739255440127605939191377716355712882714912270634178965186018017840884315941193211441204583739191621589154911182388672937181508702835158778027384439818114445829849565933281319452463621995569612782414026533479732782402391939661749003776360747629496310743784494707239249773416146152412352898738798519842146780054356144969347896551784611916968172787616328101967381367138972298234290291427776955282045714451476278596585686722741557802119685086607609293597934814589809058749715682820547131310520636587667271926342902420489055881869245519509043465656409969644483171933808721618549651698625076252299301291057661273009467619422233015222489112886445731654626705029404047667961557270652656646920379667299853994028714763061018829957281519258159829222105746955742342015261343239297491790952807765175125480412906873194348102487268830306381425319412118370040012058255002173030765035329841088393551787781184437716412106673055149882432746991491091017139777369423442390979463244643556989373747798444473221059555488780600227607880768934409171973186778866240772656096780623150402355916972870306594364797839495323275995924024754502507977295169038082099513782351759162003992233281862157506638787021012123819189865249674210837688529556620741007572129442688294327426745707136991610053718040555128166345650027225032252089467391869805608023308531185432502801540499405020671562250702112263482554045728051935572581645466890649890431822951760551651575622289133605175687903904768836442872734293817419975466808512648972525113408481256539481998993142590737579855311913367184041218165314178608386514663846155550065931862518702441742786371632450314161287365186987505812406038005174432116734478893040429146485010918546520068072016108851037860858414730423748362865125799590305721288757280979757437571282998442052957107023412727583503471446631834973378813949537361231155711291507392483827011935936524936714917741854527120378558027860102429018481557991343863994351971754369191265045507260736976569403203205564780885732363712295598120678022777676241927904714302508537770566983227741010898636641565998981144353219915304998491704280793124569500275533455862881331371811529820341704310731279005980676732019311662917401228867376763604925498657915602467450814408765216515458514883962092695681455596192357358824964958075695071912500963741228601970375825060807007770568214435497136779626148539268377630659787163000978484748128627307645321966953612155816855378514649019776494774115413623484053850971669305035923141082652061949399277007916336929204574982847418209003697221606014628616468479025214119869427766747508560421462337146176446920633685904540327036604297561097623588133984795114418553002788690525756390261214462905444528020705357656459247040740077611978070905415605651116017726494925200783992800065397515813721689784378700205269699782130423368124795334107126314567006638161615880803334387485210006829055381154772045692862200422010502306774352883509563977934890264522892736098172448177552244945539675680223704644871575209985308081763756778760306051796799900210895293489822243139206974851819930200070284521610773791006972579292355445949998548527061541370267643852389057446085364813839494461889621971251214071163710894188489438669634487911845737045927243829343351855588350872591244256257939401798875806487254626131366561321670163933725934525964086883827984186052694842755580210113447606268501320399878771560931530921767273821563978749164290120920387278098386848952038005782687741949528197990948586983134077335632789172820686338579567761516388899464782761355416350235050221698558206697900019096842770782080653000930342120634292625046441968402860016795182562868545885237741283526872042855436208938747744289923971708648756787855662821148860603184259546545423382242916460866584458592442955643879069068669238495400394581261774739487016456629425636482965746170005533643305742110009471056097641763708645364552619293043446644049314393102795792698568251485574138647691516402459850121189583075549993730540787994782849033224095327229659682832936902914940940245409598853447133189102927131154085243527555157534574681871920217520150784023777116065097760281504535082053668499000995824563939546492950247498979819999977678530256401814604288711537740256299823973244191205213656095649045824154017389057442105239052865585606942501329179274324587395942853298851952457102084433014753098394202378337506291482736030108425025940134438095278332763437942234363412491698431181767498868287649794335966784268270839693942506737822154800100601766812882017656153396359511448334362319818692524540268111076346923810517138324377809585257784661721516031833569229891011574533461519420711738574492023006518760073409330710665862970524666635151487874985778874140881524568759448581031939872096863214227515148531867879843284510312596988031807916619166598530468044154896732476222188692097559276638881326322832946393410436645913841034792842032435639624660741112244981073990886468270876110745651866190762998614635352240916527221449433241993264685563367109904605927890884242337696843403012743333478343781674561907413373756111564176711044227065572777361211704069048626702921354871961913977634869838828046419400970208086388669553422507480668957568293093945874131240719497869431471818084919853083364774139698376809238672169432590395277633227967646747469345415356874005459427329783557621792262473988722354538104023781445333325248733130655884057438269437665318042227355990145417592899315655839120255675918793307867745060236718114665668227630727349808799598464948244088506656294959756703439603884377752351013066811904462632705216539622921755286342460939028869459583112109382858866233445862874280963835763715663741640699960147474135300070436621870702492749675418027670409672901014790837970771648871822225486171572717832095929324288341133935487018094992156079356408033764029586665267914735248853350540078578876157835736883284843395963084685238333835850434390148679659151252572382497349046080465736674332772822276956205436212014172743284130129143093016797520182360558002782892859943400752165030392448643630749459524513614169597613927270240385896313137082442776047896414838028521965178449006177672004833522565872725950125341087747929114732902385722974116986002182288195102497827111749191927710445420835184743483129394139331669955564580972851698110309294088702639780304115124682549649811612222140998850418490385071240589732426126969215633133239536156803579333147299935142500052689881144589875859206450708363112186441947246332646295807540966994297795785143730886890701086942648650139795219771470267965959853200129087508012771408591281349880755929015564619694101687969777171418291433233674002795255226615043453938738445391721470364078688789063902008007774801178134421310028987847127733538940972881257350320774956261351721042197584775451595478915556470611128077151709460090644260979566514932886668464917182465925824922301140165043072334399381674202182001112998905010618857484097787423456752419964427882231175698181045470523912171665011933567749811510199283081769450640505956469103335968843191700150192891899807581253863435080662862363779212226327963898145331069377218519686504546490930263574502471515313442122931327229284193975794024092885538187108181648831762270603403390637876125755291593139105868975117074977460093476255754549272499230200321904384389381043214935095827635796265615797974375993416124280682553776733946891340824497487213094877945026917291413482736568633075877255228143974667624738697895184211148859874191166412464354567608523304802955206637580585451215732363933805952155745834383069610242085040756143226355703442087122946486303044290112858283626631011601905339833285917583476436993103860709728584967138432220689012528160453882037406947098101967598797898756203457574314644511489577557230924494846832374306256250954106905674491623095807275198639708047349974908788355112437533363937733735040332212610849241946096296083777990713607958055665135012158779319238251983531344455812018865448376852252077501762467831700196466992746505188072114104773535940519054648661944249833744111298489456780644188870213606195415780596661895004897902335457999603690318099485214916085166585274003556118173892394296660190056746006307390494486233112415295708678450608112313453562204430706768867681941205584030170700779039368868721304932329880104550248714440367849572621997627457747004365600711329151174173052328869071555790905845261111764960502419688726835034289294592350740337940923030572817557958908929940318744370778955975650863916165410080741852530480008824620411333653432620497892390524920315752971068733893040519306727170131803310201105346626597449535254551353419300383837039258010124158798092529912252587640979991783539563885520933238632309846647170002066642544110568624423161094124373296060317429080852901846311549828161976409292137436279674570818405513053000370423610734122532716924799304479502793922108630418092472339669307642624656464198222821287971734303579641060669334743930927731937776419503853993260649623139702712431221340342285228007378302447451173747974396067816157207813018926769499814260593219242077866231418564443457569083528141712768385014721502599726825873006627407669152459874003031604251982213247897861767635227916693400785990032159716293127861605812199831835938926737548810029803388083183881190987514003038979797302613605355411476029021997281290445159386676161799014229749446201925810966310758500533801615009108252110982354299299790814862678553475190098678464482119230634908719621010912252841644172879371509059803614630739931316050357813965116528596837476195018943530572971168662783071438871259494163604812024714540126587336259073040224749331052189009364355961496023694947001186505080528347988923316065185086272297574360369580680013567633747971446379240186686436868333596360268892966788678819203347483095504227488055312502322877135562924503680012270657267316857221280719960825393376686370982966573350967906444613189848075481815263454393732122539983855550064266698293480192016835711909136275064369349549542432207097372764241915873461369430847128945999456863609462138207877485300772659070130046359369791051597417464756631023050053712936460228208580842096835228665939656833449438567579559504014628402625935200281082904382015604830887389337377847229438892632604677993247623271826596816643627991188828588399369894505913152240749027338319223239932658071271891620382106211904866728926736779368211356605844814451075123147138784259359226961662571172571657329764057874134121588746126983526663661028627769237281272309520204785061871976029647766731401773571529728115010744056604524672786241895043770409249923509916989700980504606948166160105462995099377471538716139026870801238666468401676198938070286844607625087748797545194001034837429903216321620277786728210167227811177916310729311666056537137078824823104287317563184784648828566666208484755062051418520351628527283024234091102775530546813148386339409383992700339339766067033847053303931887965084072496560008084834377755523889853840590140778177719192746262754393055046591848523613575187807016079116583621822409067739131734553099824546840474086513013888357145785051249672043855777479945649193860866390904600263363924543985740955722021028823422305336127250205745243645947982233908866705981827770095803854116859387888319898666305224849660680358052810437377598047811013832656577749068008256228485010351139129465175584558896729278062598465001743914782905549558106863320136997156660674219404652462697889949830286407562853147925072194674490893473247117543448008371160592589710956024212523431912077348096140648949881359530787942373460945037697882364967995242202480993035563453168946777134186315641056520206020388264732954496401922868499966821039289975134377457977163495016816655534212513267150612454976518951583338927711350786208367249795748249484412799307912162300279509964269331609835276472555709164855221314919501590142818921713664365007978076093763130408958924726612709462675130279407974147047041804790082554298469475773544174031673062770960914907459206091298791604136914354810021331920853640736520233983186402914178337958878993598752441443801284331752481984732198957851462074289540983770096563663093388012030472067314345601170118693097323803335403635093631060426599449967662137197589778564582915575732238734617070312999894833733570173133557230901381315859933286622335567593957755234817610844228178309631082434518278464427610234322654353287865710532138589700788200691620153609491337992084240696459017059757369708504866881870479243895438460961483303310464832286706958119052664467328276698539415733061844363433530159990471831354665277851319777117904852696488111534373612163535269385735387195314772985975339785308173999223768982773537586334891069289187080001666084062607496303764238985563593128408003565218413150048391475829178820035502189522471983085582983907074774764066045166101274778238034355169699049841920484204253815128776544620888159545233082713198467629286572300509117290981349766734703120609896020064526744175626173816386500462009080150870629785291244805011957049804738136707126526326366518478470656838995615194750359312079342467875540634198663933411520647722346460991059394980150615731134711344630995498124842625989022762944524187124101781083275093249776263000370537660194822649758610880032296811119692381183552816019261168723598160443799405965731835810093207932188897474343998067438614454681506918643312176568162068460662501535095385773075776036785474922520034550867943145107176511227812554046018575721946252914874385467946710944799577291185917646906231274351869430355528738778604471566178673610525793359860852737542200932552091625980660687159363253637290699334495321053940106414655002045240639081355707456910009695704972967572289361083162867912042110434967891635990007083482878008920881066605638250983757367833789002395393180224590727682171744991648107433138397665590908140445220083220704357912701656151641102553568964613449240705054097479222730982041631852234843784671547488254030743145189925923893460466620300149380379306618324306575286967117963811739296559943662955443686393759060462835377266780509135604228999217110143001957091908914014950093678255661725197146503250011691741505705233537251865043396787694078223313817183349195683103285871673180647370528557308383817562251640273507086357368472494764599264612810275147528852067342170828334016731759779131534290975621000208172326233265981489849095640275283646907350889962672284760918135719287871162551161411021717657147645765367349881365383585281820788428557252146811465303000309428290275159416194697454724136390293821635601269515669888190877256891183657948361301943853099189228608119458926754501486426441032244592486303211609599180303354146412408890708458908626561542392888448882418824196386021309284949843647300730086976357777744642955759452268270696425994967860820443575605680730155338313178927815966460251325434738158350532157885933631264372975306618616645810398953385210852955268317401844536979972785970465588634421419151409432696560877668895191050854530591296616032268012780133174681167498059869923660851003989571010809523116050940950660977449410499345506071782427931005966679885128168128001783695320151456649425150791857002030702522061025572402007720447751138704407903331965090148810794503871494997070628504539742310940106879439112789369523729466076513109435269169954763751660320299173693679814321234905963729703089087060238328852815215106711753246461525343333210052807884904886677593926160156247565546318132575944703698320443416544597811817121050461439688723472853158846658515913628037597958617235312900464889581852796944425207976782695985928908152117902263651161517452938537020352853393196606546886140987813057852474447607794612858724588428270924038341556086837026717148156527799117502017721936292802100996069215479926425433993298188736789729602947620943458779542182493786259538498218932166154538418851211708475053657471985562192132915006790144497355610179333114646533965437120540494068962866209236549187618474745125555749218822100856986644959078035815304201761655888359670796130114635873422945622258946598755549313391011333115107228175991528653391927721236304044558465579393482268329217958386800056847200476076340516685887776813977646033925579636319796136197901599596229481246348714996986597648632215498774513762354736094715305137028067493348339728058119871487518530713630700743236882534362943508172469807986341030266533122248352053436934772268707890993531504384308861274730065137934192828810467597947864791732791390251713121673999958498463311242519218820367778968361261901184153661043856898371782296503150655615147466352239215425477322278952075917553523191218942724467002037908914526510786366688561636332873762751138898340776403927555836887452742964407250810251989837204682571939072988297747893103995873126048029485824144557875792847594293981027038097687208387655152024770725283723511926489695738490802862553469822009411009987795886680077543187737636926514575299880247079558371833563172865144335827612926956373430212820955475569413663587160422963736244888533539747455227481995071235404207549763810842476646095107277285395447646303018869684106535629779841563226900994690257046643894355017916301262245897493904158256149738088943484534582224759599307165799651342246450904220686022374649621027676114856249668587054214768871869694781206083626303638470623709886284554546628239996125202630552610647035617384309432438015227597364012120499814333160835624857908158817204871071377063139667630694664988623592003041382853617568021035952357704851516517450840875839073021216974971131718066462533505370868184068382798772858599123619522925529116525366520883585791684992741322181987107816544875204272410684311427269969254924994638948982399784583098164765246105986334897729799546832563967440173013187709996565589692722825237264095698021906316593517375684611621343974074355951535920515932738922609476829661114359871896652267444784127616607083366949336202325414078332980342531856017671737839816178894584124628987234816445099612434334428873807599651945918275441821849034767958000099268143678425279063538883644344921075626139918096748418689300852121117477221163654040694033550340183398594972154638951036304599532560014190862019777680574095845579410421509380918086242247876516620599090669841480655985299045953136117044935582309267381553074691526287034131888245547517122936127430838485330109349129956010958716163637143744928927200696004242037498611941129073480248823067024730439744237431819769496541899351299672728528402082064393362255592018600595383303489781071372854612419302451014661828589110145498101157013078890767123223988067387765086772797761326056278056595576089755019616403275887017487489956488323187811881872713387326943788688020355695712125740015193457210851923828057069725655325547091656406439358215099696209249522630773650596639721894096781216169120941835547412494304751801912693952714000103159321280755478091672772399599689468218147610531654236168457922554213464772931058208639102941976558452158465629307099369533094687369262856277086569103174193211584489417728062785428240547095009119141517107751122053085046253014009964795599343472476814279866612335253146653557794578907906488038124715796147057481030786905803845945045762380489542565486033421709553360480522045652482836815389675246851884496096495919333071427183567079711574580865166328570777295355762064810744417796157816378206678375152421846256528280735238941593884735883271167381671699787826146019185826196805874940705094958125941988428513666945061398902972055012966868777302823582742314748121550937211955711979753788857208940087441570763510366335018348903630467003383424249601655055149266726898181189112502127524951646612375235172536129120618581214311768007371622247187664579742654426052893930791889120100653898417631454855829297775186810692260646100004471842451593672191719566872827505402043667743562454006854962220278704251262501560329824626824077352096807083924864561996800937870758044651455809598623521684165359925197081723871121365520332314947007984844532450559792019037690950570277029922284260810285823015129132133343282500369191526233905514879622020380055131299616277742094978245788044424114956382858713504807911917898397641530069241732637174854863612698823122379822294391279430385846769544296900775120671530862266303573389273082550487056044001505013951182811940973868615258803305627005095883237943264700937868256182453986583955520483881668622291563066270612388570538336292763585140656613246435877002185490543215542550974301614553232619620429354382522114505656975777844212077652338443602270942383564831544787307780385601539639096040555499045202855792074255045913193648553547272833606990462091057528826314203479946915331506902640930420159246272224493086208222150588288185770348835185075597710393764752854060097224797460855544064667865762933841631987589043901079376979322559600782996292085415251802537624019019538429356871538308747369262899652080889315330103951159734016626793074795285398925199950279151284664349396320147382450214479416228856277957812627517111797731497973123636930985281191299966849056215320750225671148919657422966537171567011146798863018209974047080565440911330488228350560014358536833199214903986763204977067042199969631825399655997940459582167396549049615365717004338771972878755760463464954160113140804818295417907114993232367331775386146501949257734735814658337176296391937628189606330532516344462192543493181089076907957875852547746150739225522793215657638671420842778608932610832275412563994396766850377777308695858237932842565449585217496960167544090102038140277159327644078288854403765209844694496492455846820710588053842742690742154425321962729656475614586654227546707823194500389270736611267297963777584922001363629900797924213156437104839145096570443325955617471487038825911071208791429154635418852414833081793457912765071050381919067550748836902080768615708490773786568124809989992073357392494613055337842734364198681811944748708223809269573233545400031412446315502944438168987589433784594337939557943419398923765012108023726837972751876905724993767551136569328267904249440095990902701520991003172586660212925765169654483550855254305244473365774552137707078765753522477489171838544558787198460313766747908930698543579618990294825409192349515767438981831144013471490649832974040341742843522410180725341290765872515084066952540051250361906206295498824983369907972138653680739645463489825637519266391953730244115516482663695176272154320458259099733938372476989528679275620392274463572919185420551116758311433108621081675891034072590820317892601447538653588566313290274846522018278677910103896099739443012504472544634266614259544013111269563196824601398141977669429477044335320817874081477997228084968709916338956412404082787377137980258580302930919727385618247840187556174682342789325584909518087488735235451657895551516008038371110105514413215307278498402682740372616883032430166016907105930499881269196887240797671761732612695887917347027429302225371739865141352830725498033182990599444443394403909257294387145715262742934012256276450221414821151494957798701421346414234280046655541996032859176795219856305768908160138646597867864686539458923362318602020843920125816157589044220100551772364969478277872344123866435939953986560594438800301349921228004490071288170889237063497171235736150712264190453630240762186205791522306312960895375890097499566307032117316392108571839447922153261884597684962549704658387643130242201914547138609968347712350773261758763746631954105130200304336016557553797369099242161958936104965785116022082233123102793406828427484051518093551502749476284762101228589683109275326517128481638978159079135390996266771809945064727385160207583154703363851963985674465704342491006214768042944842796372284474373534742871305404686835290054061228080652939233092324465274599011643036074645052794751395597627143661056976276808746799955674420568659819109138676135560643775561739734095661893052653865277737949205454051053697946439131861682066612195283179275393730947581611258341578665914766573809650493600290379768936565371876171904678308481932905418118327210319062195546372054358876738051602693450829104942827839451660451644484466096415312209959219637586698671709465583646653148985210188941769340999197186402041579719677548271458570925754610875099554145770052990405235332056912460670057521862396948365945659111632408980486131030944281239481210794372853579605401339642662905905611389579069600969398479234212712734230761217557174900937241771182563025823335079989932570048639955534421591376558873357724465554511061201169882089904708950736793828104192476484348896047997392762128266788702931136330010753114931649197059230823227346534926105336761056711305459604487264962016811959155924650522169681224011548174552427846161840113143348651833244224586651143336451133706496088016542360905849174953339578626832322068622649868719505831959956396242621552852300966675846074982372241478509417351042422228185524612738646479226582944385038765598335634496502961210810153013596558253921417627297569472494344723625790539909492913552447905238314452274361141512556737046244064803434871439906663622417031665217016699737115412641395288620843264708559745479115687163375648824008316589993212912712361197351459488223463511444603577561417212304431790900144569450849479432660914466768236036649879629110803224003263197315803912594816076732677537525394659407068907902754222129894558783253919523734870654903608352731947849255207062253404108445252746271701696939911862166048559106738563192588011576063613832090483936314980962292911792196744241594878505863113329352500061615826066289977996099833749213031778357152944659284019050701254245588296018041494826757397984608774703022978539251560173497229529727430349900971469556960328119509753076284065495421565672650651744281661244241601924193190601461223257147695213501889121686579854485869849915193967474458334405697958970390024738980362669034841830076142835148196763635116938594127625015194261894159665549597389665214123282609695813295935935791165725043255260577980548054476943866933072313597419631423452775810793759866542522635281674662475330831645273965605529089602088598483558940688687618930999693994101930586165851268998744094531976383521525225111223357796050221575365149593366642820712182536252847384176423037312348420382093241187156885867509946237054586844322446261133703005975218331919228649556682355688640189551543035004118938027383069074652754632964483205916430002158489252652922453297763494104299623619658518653269471069571508904546316620684881242935342368609480844368244304426581888020297751670518133472257295854897982793264487069215137712706901204996492929493873435614276980527955762529189090080608362917580544212377282166984420199943947127336974715101901253088647801255112807347069912838357900919765561057476482560828972266334482321772203495850109439955388725978107863016672560979745779657656862847680565055636431951323097703493148805419314140867832221386236760552381229565106994136789644778826972205586055722959498763230998223698450508415104044621305465886684912509754795169497575899227713135805136263556347544205088571445804111107840305139371759959650928492921251923648130106980911577100030954104017503744255319075363189056252401347257424581380390044424194737398082401509714059750225633878307284022754089743111532453071889572682348695832242786962511412571771869518723964058866750160092930104037211761593812331145430692097120531566391702826953326023913537358125062033381747831355732642015225740925569083116359880271660892140472647371205869198691883355914729611434488581710476943135699613746751954759752016843168317754233797116373557143958760794832135129765605919018053021275966546245086092822752378677778704225187871833176223893546512570482343579674548760530173591127670684855577419193474384645662291699084427560217247009825650554923850727073730484219203324834985622184572061848273556631177297771626969219217540545291049866028872265464922472449978097651678868198318677773224957858633172574988613883738732799906227980610151684450166086241005335154719345858522556428001704351855037766096669366914855850282604411034883443994342001961916445232201815633412544748914672753165352091136592223293849707760825413526530869885052695689562632236453195459084801678392682253122738703042602394628766279407774525643473897793778322544655204072586832334460397893273357266788531796219708878433143321754830643001738711941665842472652613257938341345739262924797222235617317756344727978459970921178471748402244542842508778397055459543665095119348105208495465312110642145972217062262946840921297783436830773352535713442156496233523996075993903074764620446589953130712335542391543802018274225571959848726212116319788192855366565994745692338082139510475738993701934854685833474082243141057919793853551917360648367612991036448186146444173536412255300816086353693795169104064134472659785554702715578595289828578960228401603356138014305014378211216626746411897031964641841268634408036519163063966207859160462674011684429518636589086657226896017425209870073908025971049637590952826168326302957411138738392713260888055128855739171834429884636956414781950691480061979247996637538124803777916990940375858389114380075301353316572996640621153947798434123212395700511338940293314626687437223622579653592787888875066661211491454933468819349738400367704904179696378536008064190235716222723335442928618492692015801303052324625740695650418778137180961097252687985210982897723275376447592668442460096942141442858001891184490450038510161086520558952499334904306755394205151131262286943833927173991813423295472664494403356674100164125609543630829921475329443506909748277698582572080252548698834840831597497453940083909945492078680679364175118285273307626902223942162731111654739441402509559303222552712071360521692924850320387075522270644603562896962211465146104184568347368450090464128652896813340476398411915898855379246242851366172020012385825745954948474547281439159960312037466303088912688715113412609386050300893255284669430494440300494613485833117831162875866846904794864821121560551182725587246108265477343769063534063138638027552866277936089274429359540607990116268632536604818332531564416562789366207746577174285696859845598914525169493267181266070510313724943984996651395588271184575876251105694784557015416489424123433108542331069810772164787832883724578214874530468300479595780774897413402373580888315204450389355746403737355086968759202997894636559506709034845527383871855250520240589155513649368390276207771357215215652658265963521824675406695789287209534058601869902315022320258206740337071351271000491473963886744250215734858585174552841852521006311455562817698994380784752306281464736828779337248249267736772932194491655655487703745732498309168559167840227906069381489616119853403700980845114998718937284105842209333056325779337013724591837807509189042652355980498431714570038565584832854228802950923677290298643482333352791536036692511452917886701576542871579672654509676264569431118773500168173110945666972871787373137035012014769151454683976675177782075059219528220496033613243128741820309463327279724672911615359670232741936556912532719347210508338460873303829500958559887179610872398861356355341220595640923336632029960917366964334305161486334523940762604307886574669859050114680559713615137194597804180180829391261265637835466487175448976612831789614984522808364992006418055840337889483468911756334327063543744532425287227135512733028164188026048667588903125162461943317861917982952821046673468296902527136781686977125252523923161177429783427854579770452451993887297136269760760123862334190781063591528734146653799050814819628305625464663642085412029418148922275488301591554319096252424288572108424413415452665766063537558244387938261761482566649804843696444669525401994982702608571146892085695707564577696528994417774486891007527511720775996493711203142659350927058874753544167076769800430369932059577179919460925224631293624339896017315251733264739813545176025771592310328635888225457942807544600991987979098016028103957376094379027779560984463667149155143561601814781069944361133878751904398678776386316478895021923393050380615370345700300358075086960624544476930888273194699324233375916914148020188396693523204192468424869278346928764790980535717235625881006450942814603896101190192085322784716758597322836233023631685395747384908520218285135573420679181679690884803529260801789856095226182100412039604007941406735152206073625090766568626359185187269773138661103794259821792613512557330837856701095707967122999268775919705575059240441687359377019327081784189831499562254161548540239921391134949453114023094914041366818286569776016534473958373883269656970749702597883200844197770381662027023762505314553339574977065753661916097758471431725741594309567082595223250388766978264918000384828333263917888640891187436813977954457901883832635913982131026205425754189102926649623930256418923510739817839760646938078982630684848437567783045128340458607708093568611003269962132266994624609876878774038372013743478281486728934306125398105400727792199360928952623961948101309768466919174464346925660252943732480623902025957525189917438766084808148444833429245133299836051142136565965098958258162860053006169798857668709891350511502982018305996193569700946740548824358307726213666453391797611498164704349792455787871985333226569451368750299212469593460889085626116750127884600990955432975373077823784222416492262326973571433657893618502539355562275066807335026358997374340749864679985952948854561416214224419160669845691776084455670724228995615342725603773579225095907032814056620675057575832402456837518166107750729966679116364873070209902135249910401671793244077981561580455971494188976176828984647314293072443928978670001896211964673578978034167341881195795710452588055593875020248134413100205401119075502565835317663240377078781388572605973383623949922772640307958341810311941694611674206952691483565839994367925891277495150131031230276890105703196109608228770414524558150640832605670187278675445792059055209903071922849122015326746330542768782795176290525555333962004996313032586866518836245035371191414971810404113316090781205688857109700168544183209360359391638637416941228878678930620038992305188525434114125173112572412974075534126193264811713110869851924175280789646574312837371855198611175443260174621472806625634418959934841310300796085013288925241958343574183834210812713479105878730208036212523647904325142079205379472846611786028031137524528727468512004608947370409841846743635091173404065482680690631267261504161460614549741747145204755079101178703081934946805692529551342260529505502547680731994045936509104349405685811902186558444200197815853229903078906025738127454617651821473716785269607056279067077618107229783260393059149013380196523519278103935346669362708792403886093914501189388609129551444480487560147692544335949204043918835102755669841754575755282600599084809646039746886119922646533448572194157532563808511638934589998995561595166527993974738855349172384983239608513150481013665392622734657920605777800515323352537399708532348888519090365426764394121315866973385259932009564722556898894852744138480609339827589862369507196632852445398080233283580144718000914120458012213441633275072620756415541340461065090283177430762857462940865604444990176069990876202351298866873868917841411804810612268949420660762845215689014064080470847337696370744677742448856482508307093997075352825784227436881506896326170285181427399990425489765415000703621989314868406992236110609454996010337220528104363626166650073308839999473229896159405432793691780604306923292128721087494560877054432585681553725910149259572871302543474872347327173015549068505632512320189192300168654743331665619201886970417106021996548808175507330992160277545065065596477533745723536418640209449199798112493811053924805509944040724238895706914416966771957293256041862751408100892990909510454301198277589211368812822525334857724809628016284212895765045542719876374942447125145445791944654810154550099353223230106631207996876135399000652035481118716164474985428080603811579471707416387259800820562925441304961430552906199522518563767032641502069931557934014530882902567448293646238314394169095838411839164010892743435664378031634538472597910942280422899910492036937846991409205622511925138727868669164927065195917606760371289283427739554516594068426018090739147049122977571393947446109091474674065667078303819066616838089098784840421688540228404979942250913878868096147790271000797466563450752408169670954592607930332456695030043411985075677448290674244758069288354962664871471456788099123643185094329928165375458135511232151735605620238633455202444412354274488173050501356441309430966092881927584524197726143311042658490059693128584651089808971825308185924176384495189216438365718486154815658282136325701290534586954964470515058511367286417884013938907237415102135037373917621698318111041106685689804497505542038416055083323760710030668757237470837004226774926435394449341578589242419886724674105664384198694797564882742491954606050117486591262829413878619586389498193199394674067047555320831523496214327651378818314363371361986102420045297632835221293964933983983103450206278552675664167239028741669738730827510687864908484048084475647487487399500732492402140080478616731508420411093706129879599456873266836955720131093269490976516680569074924334702276117565040482956234928305069186460318185997566895260782156907798358357112634744868039412650450798684348177525245819377089317432374950835365157225912191357721660467620107756423524493674247337431670677614654470094085944730879689759679781762556338501602378480874963107108784570339406711672119633703771033117190983346033384459754400183295597063526305642844441327691521977920439192710673454790227952272204741281133981783687174817715660093495902247789115565147425493097273729501372500155561243447121843366173869016481874252333681182734465485865354212862854089954495779391661997696375224953859747229587438557714873383877085877305110164578993459318364792819181698383808310392738197462390525937185953388310885067816834199169783594216118565189868130588356498867803278028605613134240618196542918826059534066523642300286901529912876468752865628816397305754279139900853403012685208244691582129237466743617653051064248685463978706860469341276422619386255578397435503967656452857446620623319683237667405230170173407962627149531003265285296990748134821961030312188505069847973398701340146987225517285601381223924321656480492750833403598403414281880101652834644716066436178609241942189011722349524018586748454579401903604209392052396285924553753260904202163594560807886861207294592786234031036412975951329884592257211820511247183940346484683238071579343799780682845629473965821274933552949190737461278781333245258760794658394817398739797982665074203782548650490766097803687077287299494383141963031168362245573373246893606173138695385860216586786475521644673934401387222791297967273547101932105057214347843036390390279593452673746935750631769359980334659078102734339014633472333861419524273020672094220393336566280448695714015054598975338548906557283429511335796055995274221439604706565204427061916074227756894018150182545997486869026686271760654956231987756403277449450058935404078387624906722904883409357738137444105501564948759774348297606531424839121263418211601612004130411378147227089735467656507523785789960430792051998199344357284343832610330228302399820879629248881447636749618687544615939059186333287420485982645733418480760650442676995447306275182328130777483412300400139680644198537083245075637478175196353782773832299502520569856918996102903719519620298919440163860867717777045290217267762033257980158207709436623162001219601907351856717954963074625570612434981518346331418349217439147160104481007739526399299872998779643160622354762175020384185305939576105314906660897509251358572265203370683237990576001012202938242960828268273836842483517337323913073065101875250668474837886026381449990969698986245202785986016800792760694192557546707483407336924100344323422138199457102499863288856320955767097971854674780731143064365487126326853054067127448649913823226996146683003139675868142163677164489736167763240351675932589449528663866330390151625713382705991950927299510128121526981840618784559162747103216434631475267411911165593936880742622116698669349355202111648028403637060250432550776712929684894079377501258613963024910537607136351382277078941198403260816015667941556000294967544842716297816207213994913670762570571097023991275239528210456623034521175134169210697298271477282928627990788535451511368590937116370709013526303993893332571311525268396245120337980709273626302962403360937162500613079089078407325163186614415914070439888415101511040792339680836530523786554253768472100030539082834814754324586116676149873878455115439325812529800195982613039900813473777128636657425102743792431674604141779894285688750978682270238876997610092269724411517077252146785886614755772641111881863093712773250401985023134771443826461247778827757146619574034173967554246803086283903595832724347950388187949256687056069551904831827740795736272075197821565890306072928943971735939424605218990829944453623543700181194710121989322358705293042529440880417005823077402961994497683815972078737030526883714487028971698598041114212118378099801476593217682549889972735858428043346838012154505173538688896071760336298142301938344381980225747523763220817391883085908283780987932795869352337687321130116907637414207499485542028886710956609050712620435153799129671927420517278552206302093078536374507500636033391966707239009028655530698338192074961159378451619174987108187543829062116083712673884754358644927703691284694519786663967482158388629019592043860775926305984186929913467556014632133741919020591059063465778448869624331180780065241660656567397935931696499609395966391583927593317874394520864355407651843292774609459123583739909478173289407083152691769274403953081677464451687772933283130914291214473583911688535207011438285965686387762693178441796992503981089909462056902857489216957483900788392279111157979276105640784311088156843915083338695619116702828675441454553087687933880149861299939874083613794136596985006906814846070257983794415414089442638902697428103334468995401150409133311568432477608252491978994517400140731204139131003082182988107291642190330269472457220421098489312118397841759691399191900432438482107005849398083017769657424215586941986767445251394300588477070955371493644409600488969449714649621164504448124449069534120864528395335401815220143536624417641528497367926394430481629784328492036521978577622584700272807972998400339733651088564482437160908737503182832405546888014002408628997988332188358086947122143600739410419236425532060720118005841430279630822504344242834164482004265397429147166604195831907401705246771554476423858060288531668986016936768998494449591892083982265289255561946566937924558388244186698846298655086891727359715859976605346461574192655172324510274027420274138398371884186871826559977784539866737382310490103379799606837531967074227638181570659773141097974884576064840218003297375265002262405605664701574750534139384041186424377968515492423144630118151569191053442909295117594070892271590376060500781398515408647999297920396476938911407919756918267420630644811546677475194010457389724804795475114300726609832996938892291098123368767456453323653349624294403015147880106839190715038106502252832790126011093397141397742389484741274824108406641759900864795062520068572410196406404677524850884255664113195858413580572589251335193877275117585511425215243925827854990302015536632141685332150405652893039518822956080926013922965911889912655263917733411806452859323563410321123729398363857232710333973963177196844124245593246458758882316788978047200920428283036192758382820026207881507867834514995219552094973768363737379836845942776467175282378889343298802662878667094111710195322530115487656670903903891460181785798397745761125803446932337106168691031904308520569271603824054394967359697433555264074937283220254265885027745189876344786517214089476884800856121093551103879755039356606531118419560995074769401603720205772556537248652004138116368537898313649677667846942917742950313461924205152943919938450372372208358768173326066837797783600434071466423968785608739125968293255589660283921179435958882688988849465881139199700492401267364591843014527122219064391121397171656835142317569320531871837240051846930155979427680601795745585837150144188798128831845687366455134389370319402031687977492749666966202204883337984586915880257957218290661301136022701825827816650460576222393281411084248613840917933542391106953638515905693302717246759554471792286562849924313558990391041733510187152245432401445377747059829653101794296224989633993842433070412931820648493706753163762972037315337820288761369381415417924779724547324972983352966730852094764074995747151499327679299082603753976800770457610604586957110362950943666059703984386105593456841668033635040447317468268322840592682739151630927427184486368546746176967036594525512132600598559428694361301769273529646391597706169882305944244961811744983092274477853360661799122600868694519325274449543026034475650325534505450872872178272597992195798897637218609480938780380715951843429933448042855851763405073552161966695073111762854643872181669253612523141596604786940666709369955425087322899899530867782393030096957833844420397708926737775186131832144437142532461235967548340445581627137688708849557818584698042012431488954394510216611714992312292131458826054647374629466995576197835690791334002112839217238164634170599440753681518117687926572624680848379989769027068774105404518794483350891066594518855106211727671706443031366125004215755301625617463417466861623375227167293260684564183415462805937507019233967723078282799257967579917897100639391252724684831418822075408114297932750398846922087327871145054604974063921699122826626234545880089524990580907647287509322576696283085974525943058419058875985976077216803217246034750172839534757960225802989916227087559626439314663326065887407824367172235696892772864681652555960191891272148832800822688589020849630323075301637562879005108298994074637938934611473516264846611374082067408847152189729634771661344461044015938351192193346150803944485762254716384794861983369255803378619466104516937905869638844119189711531471583802958737665159677633702635556032018302013495188903483036158111539055080490773144637987254607337853518323638198726710994739175825518037286609275116759212957383138642671976623008441249945376770837087252120260491841370243998136352635490437613740837907343431456831202775696091938544822199400655631507803421813113885243484414557687592153584976451406392065864058483199238688425951668155994044021888688335566920607931886308473677834717095558355496662511530085586329080518656486423572610843005700419748891246791193543279820094709513937167367297115026048605506282746232547307731465750596446485352837563337151733618302812029822338348663027914104100886960812691634255267425315510830331683206629935994209716952913214776602297675421782439133046469596066312793965832481385179431620802422987261865595109171489935811478148839194864089884694321689149423469450202541440575709825330933519913996387614927832082709839960307344467559337571959366653007254098134623370820815061659635349953868795526096471084028065713433740775442623230034814935714347755431529666161131517960937429195025743100616912495958416455957305831282945522511625058165023718144223847961916782657401644947965811525427368818610150853496608295229374274952780055486651658047896901386109306616289820726593737573142354261284553713411098201463518360378779802248268630180120525642827774352455046051663448295214516799969619238357225015092272343136461791716820810870783913218721661949379755326354926381370988720856873500219152266399656260379157638754508800893709106385050272082701165051079220070921351025115158085388627878135947736228690811190184077810730821767213950729657706067658789127562922764939534015146352481036681475888183672261762551203572360538542552215169599042686670574872428846001568939312479353295415998257590652301447393962717127074877808824830234112885213522827783024965610740096717917120294076196966802585423029659477577875138129201605999667935173974025261097188659986812357400523274412795648600593217580889173454789729451983919691900652365117980679268826088550730706093301489119500913640271067767352949177581889356468166177497838693630947627881058369395554892085926066862781474547261187538915187412664511553724119448737229965837152364066999881411419753171819935053722867947048016442160397461910417723223433967943988874958212587758983125108304190576634717029615806791220591936340845708591593746054688261311976425552058860111260058443616674588996689933305377431964489544831570172417395539528345355449259837778007017100430381600820173714247712519114834436009468713800698866891453999554402775919774587389611459019292316130609331372092799447039260259437218759419801725676987432083114205412050068923808663708158452539947771915761536946801486328059636473054237853315394972579618269580392083353984180815717190409419808803077960674048537501434831415077557927621889770966450653281561645178736103886728605320405031226009627079321492616311763962683384248151796696263008391394150962471925155610617621173860151461349650623317382556421714707011207730986185830754076600793656800543836202367264339154280445289319992973769462784932819632037199096188620229136470029215685351189472337568805049694030834326515642681495568633828626181657068161423288996816825567174623569841106653345435128611474939586019781586698943168118232481987128835833316200069024847634021022512180421473804077290247462746101053985900258791424332712016274328204317228867439632190822385925491008917952773570202394062298839918496832341095131420933497404753142167369714347567894568923847916050180844775216827578985877807085290629634851037320322260411499316017730662770908570706790176580605284991049946870992777140030956126905127645651790253320598789482737920631307188191153818913304571821212088205620107885985730643451776120468252907255662875239091946544417891393510697152764787264848788010820264472913358198669890756845346139308959996543958887005122364121195530796883200699710909117715369897726280154496111708434126045853455884134771364138426454108679134291592503663697988828284988833879119437546528879674461684710213328933895529617016987052827762094651321026711627749020431097689209327848198629598390152643317667282596669745201487230473501307877178518281052130267874624927639731657458898466190684127824270052640703626316118196930564961987858498292066708431232640070870975688248584012256148794467387101601752248245001626441122520044609122248087500056864954115639109503575747365219231968294705951820204061358162234730480561899056658665863991824727883750663591072470327415824077988469799364503361848797089637155991308208413807078355887219425218676303550773674759948028905730456996202893701558120130361611633574068336435349088913945035500616654703554053399841863363215317135199357989923336047798008590271842161962978388411178680825946654005441603150148583398345988677532060967430170625883541619356497107917266660469535731131140611325433539746821676482828112325954252994054859207641278367926590692577841475919901074718077262429049464240673630612424824976911553064875587311605251082218217250605240373305624213504530849710125630134939198342902308042885811166073237802933616300487345349490599687152912282780496656549320395426211393535520069398965244788119982602382106642382354549607858805867871181482031317957800094094808151538173020152190046233964658280706610102801412412468424978742477576088487793246922442933948222842520605786587965669329879828265193693307019944362863163101329676781394644264156261206803141670995292907418358807961141513875985448409962240872353855308089697396503931745799035798510820137020078445525446507241918908602362301975568788199945633677805181682496448139852911767749312401935231368460113972689075379163913589503265089615063294494436913178682647723459883464238635246042637610794882292956950514847892798926370154825546778550849460744017066957813682636794722320264430284246133190905058113154089575935669764160923487419599057117648555840736015742986264582699972689373378194834569917069775572462443921877550188618118986204613230009734248832530359496541433176194615729715015724360537736207839610771793376023491662574392005810326491404619942446910362203366429980421860268883613669456603180701677474240634687469841029570312263476255002644484035169823974326606906928160541395034483423422817111608411851781502578732879845776768297055981052994739633383239453627090981373090166162381148863918798807721323435965432432288798629500619833286420841221087665271945620918204025321174074706090191407035228105140543331416701027292245385737138991470342383967791098746574864277087359730514691494101317973534515267164557060846566336163669913314468382199458662058460805624518597086224342823935346901695662421243724345947612910638132352156234667679004803007869481777503261519695346233620027417667003317598166512508888288150334128982118010280506131594429675195863406878590805114178977939632529009596449319449673204054261196401541976232266194007562562195232732013818122533551921623543128788662690960433195369042402345498170827222441648545653615827553657143191797814294534471139909070806190482468310037962981556207398081157454418454102122632157473895639008969808909978267148453852944344525570060458128074566736546973869605657346496665633058694662141526890952843382518165118817673181431114512813641365621275015183707421873608162069450913374652690528524073873000820656268199135477728763928155160815986273348689480977731702269730267789275021724243872941508653802202078114508585599948573277763024775702512768765476095613418607748128973310307049319448683024822753241780505557055341917229995994175429820050161975320702219469993980980841177022372176407179968331741172773707536052947326912697995953472559136437754168516071914401230080551082014922514128542046994118379468084918375029395740741839210976023999068913376455781463449563834958785969248043210210911776951212463526552994125914302025152132790231881332280699858488276341575410920229153863323347738186063993253022506693855750783361752593433714269294244299473549283611040092545743647036224883649220273109859515385568824481481498981529570820296523302859852475295414143820193858155850466613341362363146977667817955760465518118706421340016321868380351299325210817843227085091843799385087378428484585014684743306765269940266662379693780693227757846582907668394838600088026614595194376390224441204426676972538540752100872826037451610888838560610960428318712365190110225055713842759570741433742183238206972372948118756659769221432961129889280930940313260666683913938812769555875122937670200298705297452169183552608289281902913904448407795353535083239922425436777572788525446689207120660026403333029370302400474830051632956366017269344719104064609666950978981993626217559971302601452619090339733790866888398630653318636481828747539382256009297356687627399248545363457120242476672979652994485910676253039916861991792561067255374841556849585313668661865515577223921895149768397415602453341046479523313069466773103613584549559356386214328665540901597669865035193634808044525487742697366737651894892124915802461725796613137035052499204845008209892933533874462461808793818326376405210148849106466494366612623246803590008700557975587039715760833096378485324660886390332876651797002183602670486956830594060312527497337673785207848299868626068777596476014191264506819796137257289586559669213583227530345165280582498946166544705954763275474481217374520969536791902816385643186451831885158025120627935757534046582033384589297661989660363536380979783521384715734465697145542503253557959946190859839816668542975862098769499548424743443249172667082751938965163937197238720729389972701778554492488534718582222115194528477619603204061272849642199233533799862478676379765174096683145177173492478922197993731187483849814671876702948744348562662047576668297312970195699474476031584192606598780324867937375678199008699527282757592905458290433243009901003792130264883049659067884860695421482903993968086444594884400394358061314660386654475549518409816418179304021013241896638495671533584378944114080823397692069453664429030951032874801474656803469171630615657399109942993190702009422967923907745023457548882885956084442731121022032951536657960523699967504031816491352464021242556265946614490302256226898582675388234896866318128758548088955742259326412791481724762444253527079956331019734880118255235171019182750146645564340347879431719126472165719916023548910441622163725532303009355074530039014927835418214118990887877758534840758902609251032263144668031383222945674290946284533954338668751211405820367699486986026064680669195605801169420212005431491937984252482170908367827966054532719865551809574192460158095430810063953670591949613900140804801694250791274557631649546047650325694484899830964450668085606507854666377802715740632545553534475795229523529214706156290710209650517780619495957404173092585173106517175728065709357680349403434566482291830370098448205806808691604982241306006431746728748124872162322137286192649422074858389531892365657472988260403910283023120954476911055309401502722452730989627306929799000996106076944450375847083250457138811111666038922153978976505485778357445402384614831477991366136470008304102267558459410432867514447591726581448003396818133011990460800801156787900677391319030613676163363447861759173272580147189430124350408406292402125018183112666072941571122663904124429791614459342429048716100074161849890190169656241980804424767788547899302001245731225520074738841989301236680149371606177161509464149580145568047160760006680981741997753544183038044631027943512073047675159902550678023440618247812569908315652077147962558866653840024657446895823815367048498692973247827003575412271152928485189853573959494667116474876981986441057036192206117240010583181090805630263891055106575177043061249244893220978518018745035429573753924783119188350816318798125488652560602983459297389548192054657914378519854571943853133055024962828727644328913474539204770253691820262592787760494249150579621598254454393517357103612643069282189424729835948737419162384857408902646918311727242548562596299980360439617228756122052066480686392224520230194883251548556540052014669404574392999037543019156503530144876528105344337099908069324476778655248904057080892392307847506089660229977992802324028448839296525952136724475276522884709307365503479633403342528964669155534342057488733962083457968600291336395699190112110201942651273748148816163894753288035331811876322133370840046682667206116653068971733517234668020876398801605813551867854317856673590497783635257570026078745444627466144936235757676640548398888107929669606061698860860716744159038082963598811117848406469473623752351385756271626110243146385471631072952645162820023760569534577068649765301193547050627990596861796198584880154835326063538189829348333160570786637989917748785088522910742276440096073312502263143566234620652442204796684488729828505640353036041715147528252299345678261303128911772101386087252373330687201220516584181511110633844091187498624090136217551639928687736459504958910517385937499073482242127181191423677717028754674418996516289590903145926918312564457969439594249490119037132293169924403987688503049349118712228654394392636988034867831644333030908973238797279603460458477590618568646053755567353410454780691763148067732261271240104664325011835650419609800749912404692200913260378965296451089030840428329467711824824893846956575431769089453054048344662063958760516168765311119509242331147574206883825617421292794825972858154513918047510544091719096407210469375252869092390891529822370365834613947924897547733009243569906939909025803977077949559727617154989896802971815159310825811632753278896973427338820332659693367964718416502838605883826316915219041787459417567738322919396990112692112395405280969814945410801564900385348162778169941717647798375598881807832783594272587018818843829934048080025753694049351363046678276099747419372736715187871014633929382475625340192621018883810787066034853571029414727962594231475362716817765252297284190661469869214214089860787364233995573780671678683909375496416169488013721119129010140549783180857290331882613147707171689111139791272193437275951103560132132549147146505541380696744625264664373488068405309330509260136968378004698096749602889177489541293423222302459779849327062859947239822744896611743242915266829007175314060229018387149174581627379918466958638346374862544266115826347695797177039504825499564998721343181572020351445133693611581214122107004484373364363025566165652992934135079328670252270124912659342139653671798484172729748705492770047117346342405919821169244354682530336610946992749163624933489558355287759767522477135135455568883515827438897822481390059904554753095876329359611493850443008515045822179156809871094775967609942784899274492721376832362325252650126842827430249603616364794658637195038645915210375857006339258964872577197823362465408841648092233752829041176118744805696750563035239671188223183855331680879965764606920860302231566927863553156884427657883767211941072032416839725525263439334177952119306028140667476602346547816073777931865714867173834245259263789172028641756562451306118342412426588119811473426777049040994977621761763719368447810187442226809535724963982473271971089645799650558114497331937572039243596227910502033709246496205263831442131380864348530763366521716086913194530814074465754202958284324505938333926227884934262465078259660872244881435298346869099136182842661057621912556477354482163759897356563411143478268527997629705735747756688970132579502820295877342929015050210062934305900736260776258225306873112004023166630991133850998123463823998569195401755265942322927991864357493688059870045823467365000965569736742575809136684167628013710587733089311534885696828201708613919063076677993641782744970424386194535018508891706162182819238621327328663448189812856084287280101880854961708151498478356105418561501232617999817018027008955748595056558215385997617055974385658308884903990131471478055284779171964702109171802373823005040860655869044126907521052542050041861178628547844201130199892782207939254300432933570984599746017317312717397955515273286382765686781493056356329369105491438539228423259674996310084260412158888745850680786949888318282024240325426505147355094698368635126775153977578883282151289304272169161991065835819936110652743152589128536653293983593510908047503518719029834548309553871421525082734059119848278767001640474613605770711524764790737321338574677619764816195407154116516942186646028879098107127351550985750458949935183214542508654378678421920138543194956119398177094963965689807084170146404426080418232808228889041780434881567861216712639919783528629038262642275657152886006383235218027003801410678781292596520354385893675905024359687684978659605411796728115929047191096116708136782030198642720914772954396916152214293759619172552206944392368694121598544924554170825971728438701236880545919014896799167786714804363394528042601852104047893723574136857997659588906806846859444314245426789671416029313421167894953093142141495431027259526623557337901054165111036266605995409407331736717443399584603503008530267862569122769892520975763678850835726654203556935824009157128497135196415248812486022359957210554019134746440209988217216639707719119874960489406189090184781702806607569812153464857932322470823952513761410007112774296202375494269359434999616521935697771938056253442704308334245921941580871462886137822130232343549862901790355899361511840194082253784965611544917414177865271758796972102867887614750125866432022503007930454262273302292016685896968472397892320299034104917720296107504664654202279281848924402153764805310772025853496373627567463211427703838539271103452769958327702260083449034824639915278838692007785815312022880973342515417710715427363311078199456924265511008206204051340641689498041951169902947029003648199713510089128920521823574117666050557708516937241440411720605769946424233736123298202022863860351220647759323667101742792885606408273499105888904294939016924615234192150794369840749596370934407961601536294063920024287420409767662135409320769212461642606097594581885865212169896518655665913880204558809019403130862266922488751577340506921221170667422495188461735578776614741173617360926389152136829708241544990684354789080264202466996121780742018349629555727808681128331977775147216353583835170975049050303741840951673475414625483761661757858017098597441813470563317186584417527730081922731628699826165180862455950630206184852129211473260154269627066352961058021295644028206977978990395487690183116470399451583990708991189816804534645953375438096157460159182960449852973059944438768882720079677824143369573840035825861529437899607906052285172341147257440514993162607921441856414212890314783056590592397250032271665887761554021139455433461347216982455800615217300775424359171742136985219554368969596215615257914988274862112955188910504234935474242671242232030913282155583423000820353894148756101526802191522355483421561029347637454928269426581069214239296609142622545504810011614303027481818696909704467020285454221186369301499355455511371270187808598423838659937097800427783106888356335189776152147544091720465531823335453410176957460645490733855334110141156708562625658354378325954978817725939151108318000443338725535342484075894411928035856576359559592176314719853786255310129032762247545474032443960792496925014104811724668994966101782250017684101772035747080464573370605161780763577018648117245218573347664388060107239212625441582224617345893660147890143421924282833414429507996720118313016629993035281112461294995809871293855778363689494059289489670112943507588745396293108918733638808925187786687384318895672894884681750773892571435009628315897382643668928740944651169187454070350007562200014547938192264736698438234785807596569350306192291098060845500098764486515288799988746607012327552211317403456356291995309341392858461069248048376416717313357008079034950437041931327544144558415715400855021137208944790999598740444062669492141826506144189500003749989205179352990954520665342894510996555975342755559843190496010971229740265673939421757100885105876176699423973660708184132411090194275004118956308988496658493750921139813282143491799278072292386115307749379370418359227432943818377354804205367786276157880769723498257910919996966069062779955105759863217684087918776776702229437724200050467410582331682193019408904205013671576020873036568383077865115585615032794691054161290772729040654035672055406904733250197560542160271606370651369880474733001368180278638304629425782321316920864601303263743623828799683763614946943451737244211106951582065763926604253397263314915337019661488548240038622093958194022077219233221664296504221679964157233556190197256969750268553051120524518397502992279649148181757330671543798185784862339564763760937319717788922039391934849535617838503393061655476800007234688268911735058600622235423631507599946671550489930798661462390360425662721058806414136544778581403265384038323248102243328401269661489591215492147664519231146551848420291075206140439466216676513399540536908049297403061293510851285051986330924526232356725375725947394917118391548059825213227469417647137474492366559711947806098101851474709048185753517593373434074612095641630592429455228820679882590080729379721644458594435104860943929454471894114775647556551654364741157255241088949476102234293389380443933372452669715680763616654947342396409729216665804769689287568903715899290692006552623346291097334670304291472315004160613276957347438304556248098080276898815909360325383491737953728377158876971410707095994023200889382415510789894865257344200543363387285570553149122188810603382252074998253175896349997308347351261338092721463319604114306014490686657816195113588716748023961151976123130133363496854387552045259466669260419372955746316713821039289370423719173531757180136427171322013982719970271872021665206708765219498332394583744844462469356111706620876861858674157446956696312881612765047381265843466275137003229987779485011099565359625397205774777262858807202771472198150543532276480657153409789769823355067164923248986529146359064784810135373917729924476511465246528707393617586973093780951320942155660987832508828568454652328719404201016432638050812527048107742315853944771841209841179504445106482076384572679293625644250925982400720959031649160798933150994649620096618797666580591138659971324920201058068290560640233789701233425874373398618586837508480836199413208710163047194809318940470429548119151841061623490522187388816984516219286600087236823275662588008153879682877274493263777548908013480547753696712337621218604178120022822669351591140701037081962405105690791960414091867322203138500848158935006213350365308262449477624099632451453332309954600006920462078824636353430827624945561052238769336466235555950314277845339224905113237540890922791098651610493596175784062188159370041187847366804632218505210945629694694892307618446423280521391948068746091113798818775249736580856587852448741684939849336201294210938870071827924408160430696784960384294373759445370266108585358895852454490673216847000138194622284432659748886421227958598009261207616811956800649485854031333857315243288707884450174635868460715733535431011107224495882873015630373372717057718059835925581038983644745964462549490934135538029476263200930229336017411331085920403064097238845751034454689056002036469754188550250904197688131910966474083207662109656815366656901802756829190506412735510090982800918759460065437080316987977299809442248552845629024623803770764264701977902668210629168414963223105956283008638591682484409205691954336696856063876597256373170832850767539766859081708280612997480783383020284685243822074887639416223437857752615915240865616292705047557809887719087913301619144217104511269614176061552429466353525775689465229074075652228201881905374620102911367904745203093306103654663371339734305955053727127100501420596945637297965723795871259584943690977556360693616036431499336515948717773859485886449959534549550772393350231770633203223843905602270808268157331532058536227356379440320510616196004061184670245225835388214002569044152691305050243613222889329234032864194493882541417478817020439926064025489560498536821388565959626937101110560964455167745686980079775355488262354322928452658711471349376870112801750428245334924599911607100328165730773353422476216281494026222512289559133152694793348501366188491563484518057821780099788355249237668260924805787263355997882420197729636598792963294471642106381126897333789519465622531012168500102219570452585215311627508641085933939719246370725294038881735752350717952047536697999475788702148080000742900082621449004240861609554340016915112022012120376724493569729722396486243407873783642574302179083124595514434751109482044037856881156201257250035462664705148456319605170146762777630988424125264417687167046394986204940980756704179885302496932537897621323679351263608782297579404132926783069576495976646557528768725854315998401418420228763286182657563278265937179333838564995909196286285984991798233031841384619439976104927182974091787201525498309941583572402240263885183675416279159760126996663062806924821560175094777736564520943791036443338580261465264615626352666539526360020523398636561661801931740759074487676927814428958341465468985840341312799188235780984525203884721462496916628038007933014213349500653560013050941573098401410296959510597958478207393551523163141148085823521363669407802647299513054127530046348726958248371700123731471724480054068915211570628339115589075081934642677362626150845279447150317025589237112332407125906561763717701520229672350786993800733331291420502534385849905915712280119368815113769765290936149986507430572897648023289080600399767055764164184053828736357692431507412510759391568963596508339938141452823069412593696639539380749248954505171844069312757412391916571173773482213150729329649875570924504420274576810655484317384834204162519608931862206661327357896002938114998789963890400921883081933593556083778478641066847307992572834216157201771447359314169291821947920678263792553695185012080731006216748423435089047134281254228314663882047408864271159341791290468909200297041990151736431755739930727441918416951862051876124641329431453163533547482327670878105470549365529152385339312896066876969884487489602782034035028012335776129807577798705763138786873156429602411646450130290949843071125715854427124068270540994253704044195111169301154538340916657424531527429949674113169298221815697993940000747724418417186325510613184856047580406186899205555374625781748176169035303782012568966006403992342138567511552018205039744669925756522159863042554929053312843776550339032185077879696859962800567516451368096298867524559214684438910094890973937828482605522580088632275932434303014772774031207501405796410849870580568059162261795743215635659389777809894100479354245746917285201898507620425841835104540333360557775401121205699688545697772741345375315410739080905448489517043935246717455746791085857652969023795932189539645818617122194618286442887758445431088027650702798466949278358249126552115420707509107260164133911031266647704380367212402976669838656877497420743591215029533292159696991975052775063774555677751352625950643611126365426038791038918151078136594698922370221901782076136157413300916939596148340542176765995662188717611986973583018168033912600960558209992566393247940901419381344606489500999730507633634580406827457963956757850226073961538803672577901735994361716789898839246142032003861404862050139679865972881538672073499685163138289532622346596008283532798840915859945369092006137268556193691299197326557884682925356858223894141804834978613597245031182107967491235264310788888518722876164296414540303076986869188897128489118196896003656302526127253468409802197986225107227592662461057769008872969867208118040874347769060411056377266875994872891809389960460156128161314084820516510110788213420905990456384268316929767555277864239461188191990174122464595179473577708247708111479962320999290138830671389548534163012446035810157098013972254685741280816898454928862126918423345711848525798495228033134264921042149893946984446735785029714350006736743981508392471114077543156282087914297860030327756132928515991609675504648486660635394315774791239252934277692122507245435553759744022362670778385045936463981197750659302110209881173096405319414464334109952857111870054422254237032311867035809152274087904119571611213828915925697032932108489282997809898128569991756248867376480688933946797989687752528357963359941813172432498257564993367289465710410951192949395416955725579699023311660176273011627437003163139499905979155492589387654004916282856833192924888744662737822258089058224175857542817021866159167796006910180654853431290019272569135128133085031979569010957623219445771736649660038812974756004507331418245463296003872985593712561643847880393610716591625052458148874515843600497825306341632014208281964031450558718069823784785149363497378100678559033399974182465260401976275646297513417358662049663704441366451924126127740267224032218830574706221101619260469991534805122137849163845954484843492126078657936128569909987424428582554634779154090647826294522334783889521186670637403743004055973348993416444730051073698748014195567079048864348733581697307729197898968293396016956816559708351273854189470619224917060918769011552905541446827292169577535372834054339395589911326579018595145184266030661377643548774346060377190858156970261446667163318830813030586953098048863559777536721914884611245045845479771008984574050238890176649160743175889401356572101851784193808144616723953032752774735163267020716302964202887239592583475902043487246751714871210208710816080396510164653164488321763412965109342011102427670803774952698447408057354490301734222167434022487893056038303595238919019405251281986390201447806714184101987747475014046153069521086908966511363868215707692742536928983039444696396391174919464406664027759559226795358806645090174400445584335356064636925458975776295675928162934472241645771478406330217099043699032356546148246968666900828985962251211131484914554291629458716062000096050249326501423029710096394114357688112716478624615405686089450896296894630826366537887312770387141848036168483539434047494564457920024897881119990994490886191121580986172656370426465610848179866213327984577857295586627147020920626994768328284637232873827679236840599144909068620935238040901700100986130354951959148043789581074228369035059469207666216355541327864085805696708355328425319496223163514490957425843385394218515752135263576572941524930067634522297943026968943579199412459897424880039114539432746119584090994921224754276121507304456177810031481664890491405545659965219666843147079941388497541407067028103715238661802983871518329893427013484027164687929419582819907985132065898160182600550613575223206826715577625287467960469347598797455499517199551943493981227438575735413257983611332468829780243405242384993782316073389846523460491757698982145922944274932106386986612815213752750254962532074238142292182085472714201714747831288631691803124743233727178435866262110612197052453544445130291805200145058419608861239154325476428432446438377979334439483901153777009416588949182034386144569485826691203311605231075071545687541116277560382500823087735113624580303715254745620502734611137065585052366545737710269625688659289104201588159287254293519459071218604293806608923472935641361823800250910554558530685056415836747648183876134529776919859836020718670527597822325043531164848184017057994488131183399290039073466591156785460923836890250418847915150448823579614543169879180920066216281785525558348739914965931708926769739373226653824559304013239128278421010887837057769732377413567469486954442678881987125710313145428440153164143167539664147011965548163787207625253528870403581661656043475281298812754514747607010758671559719334144854490423811809035779632917474035966975410427338121108692781618211240494840630455800677569578952732044643701383495650048580563198192605854443087667150519376528363987127324146831060841095573793407385681451165792361317556348696397058947311827194119049188356521965397843946675979192328524596961709925036410919227899270150370815088649577393362695348823928821420126251478255550219269545091062918222616699192717256167735577777321099486029909710331370075954700668957907645780813190534337020208183457914068478483714638006894909640715766750949238129757347027243474174970463100399965041008937475102215597912453977829740182545880835300759383505807234480254719213762490002784061771011923410547875649606565753761623848185829693182028820483586135320684604699590276213948486530255997809135499732489422117850737597281815547255457668319142053656500205027981063000798780366368043983667576676745601308824778587947633932397066146026961997638251665893105476051553211780777876033808313941554057083963450129729212301200972265879014750756714787986448139015397872833068531552764040310071536721018164038812310834506486368508395686285172830065176876145103221657121594702482494044825534367735913865520298437607102239262043430710842944693064534249805886102379779804008056077260274331586410270018114413353421582112676222561165593414892917217328000955773074037876146271246757189003239276013001557146711128810687350208884636957082564582446505293379072010597552812412381558582965742220761699130969074105918847161153513104016861632422480075739288467181712826236262173970588382807674663838337025421926833102135587484522191240736192122469389138603919438493074644036497114922157806120438811826127572331290818247448041302998212985766996592556999922999413427684812958846256364899637510413125512414142932614136811993488274075431052589937801959013621099440588823824999541122423904683448298450940424148983558075430959182014307181777269283625497204016220645548417603306355340378955466535795764897869591362924597167094805910290627022511633611011778799290437588618613695424435203214988458858679142676818475650441001257970184527825037814687979316834937351399518842732730265070056638567802733299782441999537019089809366345253076535657279877388490210242097780701354349055476761806229704054511789836793802000271097780261587994731853839689528776917500070256132872156503591929232177679681227809046805394613920867366807512629830131869268645288877611849904259471440580848444067381562111415370053262981893453785451150998453298008378313677834879296797802314782716975270538593822899763094378205333704892142775864647370923234886825829429944843505759588793783846815655814277034975088455308443437688469436851652036062787222894918457763304000162723131039394515622653291739733812337663329215867614067568184197582814726429987076719318710346647454763057215037935866067775498856863068475788374877341877810458113751666898691926267924172859885091344923562402365704870023060664645840596149778003243516752614933569342990958891599613844095413824536561861941948660412449273021971186838639136445560592280249889619670767687192290831272148004443891875595960990361134533409569277718806977320925453189895280460973512739876389309722037659265172190690354538940588604304744598587203023485613124667568826152569244472442431484741277670568359498817327224022416327070794110538894722729446378891558093724130312725863394558316520996114033535538420083433507441786671217641093156462665215511809235155579552889982801284333472944014859723514665149678799792067580600843086244224340555389523648822517228946452831975641104394478184145929920361392073022529026289180853454517747458532039573112582685143452698287989585686887962169823509983027002866791006795557033687033112922847959207760219373546124892117995693111852094825730918724779055190579373195562110818394637703992489213126376668682662141223045441819078003927563441590671864445288853717527320293433724215992976409710408495012766163190881824886847090341941775201596547240956280230524439114243452052535757574323145333143892107290170184101185616499461497940272136262012095585304223113519609876765288385779797595282979526100600737259961933265632512378115654901410865629127546223750439855039187418334230779157130753576561136757476862458619848394249245508671809443365432704120006676377392964471676049204260805038819491259265667578775395917853246791455422180908040402292224464106190714148193287278348293300269117891538820324892487644397239082615449086476590158014838139996866915586846718633373507001409701969121789483432226705307884559323620387079532617127269836353525419444485929795161104979680347847058934152004738593472632774952552917081360810951857654859928840196452537956249855839135591123251561413560785533891622522266879916559036669362257529709599530030592088303121176004709279720891141502407779688287698445993532668395674515517232510906896593342944453923700056401006984888901253501818169853667616706031169360237135802463155058789432567698277874994201484466263499764235665206158301679797116459597218046177668185857318609037267627649798488704610971386726446944173238509870654589153568311589776555630234932879050785016098255037285878081605914831536961554646755472770440767532691676419064236912907298285866245194482942579944157017466513119377197581255750543896921393869292585523054218515887130499164295450934484415970774638602371601577176907646924853552829721328729513333269016634557501839312201603948947441576652750352181854803200138670585558386824148561680745578938752429144155040478460247690388248935774678848378107181196759564369585461557767982571711729660613178936834516036957021310032129439390425557876416351833027507787833353977875309253021376676914076333809139304528633907262437061489785640284534447694727728979890205665973954576255356104078136672674157044677761822907744296284758922833270200168345842383170226458830877430948232789859794075650828795698973767410273534593923144051651681742206969571139289831906335929256190403732854362917678187782679595941569953143537780840902457521455826366034040557266604814998865412943085654280337445584890415397380712773345253602747034815269934296410500701756542519966234856783394507796765563250230441354902469512163209753880724580173339116608734622883654116170497189223206479203003234676247168510661950237769200674719245415992974617826281802339717134255142992971561987444162818541581897858427994137292575722246255173344464435529120547647840968715916153569982502007693975568367481820928156361602844781616985477012361052522402011956901684322389236910946711635676144626659174199227147882203346994113074428412858343549858810233666807173663498332172302968343029584105492990451177083963749990694231640899122303748759146347256436138271155580703722531701529248146937143198357720370194967129310780727562692495810915894312436101706976773450586857142926445517005365623460127255339635826864268731884618380054170274380817641982644590609301334237998915637170099648475569547844314588151051437512239431174016348142214233095159365685497188183840837706833421771788237244681085512613897492169722700411568188257162272036373316152869858867644199556785442797178432456082022832047410298366800437600240796991603900120269609583904479145531945905260860935578696350190230474476672609884478275865654519660767019747214441117199783583694721433986211724618990225751929292638956834941866627916083141518973675873939927123926841885901608278930701463309359523405240668171677149186934468394651900615554638808406358215195550699604377538956496747937553106031249146880140451800457430962089283827899197307459752471114618651875893855231457263466759130177042410492825362103796985885966269964211379467515760511866227902179921729857118100765533485091077116714343081187836008983447136141157876113995664579944546318738656233960995634825702022961772035554016033271441557696662845414647238674540655427973367543118431285880782776528599733821728824851674032835696677130019433769794664122827796703342196233511291943675092631267256610297483646240854170777717671438888797786364528417277024687920094590122995790518357649394260648542022607095871446310614533338598294800883321761177663289911853126852594505698405665496657690864735229184859701169936633388661503294737237739082950876898020445034047295498943828334434612778569104085319174771520875016114166852012790800451187134873361773292040902546004003987283319346435660611705614456079126488878475593345442543008995425630213436603248314439871889499824901251056311756183774715052022605877244755899711237034920016697263502520567057147520559622779817666198704298618561354026084208162455943452123152580265932509490444474958637353612272796276200272008645448497780052455026075006584344023179334627647421535164301835014881166962097292178437547230254972072227085951447311966921285486693097076936831432514447115840866462674314442031526112805018097656672763487063972861138713246422324765303761440411507279611365497149572390358775729286922959116843664269962844130951330655416882317688918824897902482648317819882663595444221131255398939235780872969598696712936118058562634532695575781390328287978682070288324754078519682633226223360653365550494852777708368198849643294500384583301696595740091680949753445173587035574492001043898062778300290316872801729681794964201834600484158559825559602261246570032584808136571153828572696032048209944793704285810694947951945634105741113154094334457793513302140404030408229875420656461609052537015701785142308521344758132797650701863260123455716669381128053525651534429630969929336385206082263043782281646019297060069967300134418439997857363884971647342404491958650210891748221553357073457801880111617270233510514831729719228663872955685343462376213436522740310484888577496174497621052730742458156423995016914486489775302190448093774249853113698634574228284568847082547956082543203629312391873778142401176624783314499640862865083024966380379115945004402336086494206079950126075981924591158195535370293391964448921218130608955599091286089107630059706510070419676891631497096315376879913333714498092093442440769415410545571897783860470152612228409562398573363786609226657076557307962248496740432177293525809654918158760898346040183665274559409785300724136063220050533686109906005224129477482538131328423356723429974338441504703497232518113012935732195923413652126755330758936739421977194081395268784312345493473641422138110352249778364344757296618916792841784227095686017870670993555509449806370942592561064714747640665237243560059169280145023271029205063118352593709219899687383280617842207209936530608038323464829188820692882605688654283333741897206735583968175219335192333215289733716016752616474565591290104338027431177718229068783287442202704171592419061052404132916030164909292535071493149881089492888574027450328231167110812432823538398853593555287313724220283874725335883048136877355660437490792704681387097726714373929374947282911192551639483634279875297899130887798719477968411062657873814837828931461246731242384358125377371196847302799022331321061342957798261136776274726162228816504107412999032846722133280822842058890254749242161996602965963202695718588442047773571012297534386989683885700231004096949020450804429445179773755121240404648154132723809133272141283323624138551421929907420179953100954792996732548710695973306911783803392665430699326249371394382434033316166653156569489784370776666921933849537643312832349651041391848565498207244951792865673127865851459086003124836735352585853880689233017874338854785515178321404147235022545871473480733669614147794853544037900720257904474153316641571324744151027065233070771378696870646433564180499412084497571512000910734887793862344811619240095076343126837919001131548466055570025390879018127193811026101703004242706948044539691960848788852899811400581727351458293513871925340375762860818906485824203565860690737018240873608771612243850573222463000323178321218678100419767341558008704412608795432720126923794293353380971024594447440081439686935131586664879529004691854965000547063950070346466887759718481059699361460293553185464725446851043857938668399379100091502644039588251443499348753227498842724615079892708714759323657677431251598688903942005000086023797941873237846027235432566798393294366674364965468025914920135079395382318300380820198755711322144449340086994071888879265196867794120913080459621181421804622293767077253267201411258404214633322518372222700033622131724943293021963600051732443470820659977855493335095620035150399738061740392537244511850534253942662105813273759204428489001890629479407125253328430183847113416735662311214915675922406461095861607186314417107380486453128232606919252689928878721099665223500732684380654302021788496041638373297818364131687875544212560840026974041478784501664825379648648642035979837403829073681696955804709416538194444487473062130766031495035108142159451535271521995165868261775385926344945171188520955509994847770312692103370071131891008949178505498336380676972756857875751912131480031003778765327441961662340728357760597508513919749766785002521809052348162065266883169170066860363005872292039297065258476147528114674302053649309537724227540437092042923507452306884104322215522393246363718709985378990544369838226819248846759979115317749386735705101745214198970528077902369188530289035286826360370997070725206579542032807853057882679657001643447177954058986906760145210842726438375211242739998287039529682591767921631404323356036529447644894406426856558708922417676098243737863966393928152826194982370049614489399811406187233362495982120553790226150038814298405195507669596699491406057751611330275459754733928430020798067815019754928282919936038532064560469218039741742670766064534673428538596948795458548860774983850847665190868226805715636455466540040892196903247374876359104557551007697929698740853948096349877408210496879407283525050226852324217285863616394326478242957430645822266142281389189434115856791208207282718701582965069620355654589760168844780856797325486887427379048901272798464381770158758477777514435320137005898887048619151580655948721438805564806385602704730330936283170028796804955115771127994896621433372490149492951222577667318080480889779197228220397497797794640823283982622477846066632931788413721785509492341577468447517487911030399786352866586616692803267494812119166048899286034846997754747547980005374282748920494869354037513898128229629533419688443989203933526866097037890151000912293157977342048526238232524729308300413564064895550758916842555540356545724150603024266748744925280689958701089295537646451085959145111596907860874255852590825985094663379823424830040529817592104672535898443397124059218872249409975183504134760430106053051520393271322001323202798261084290165055861936105194794785364025348848508759225091400361119125464092317485700134053721240985509470216848882129305426994744908157738010641254553298124694894026197655824098396352403054077567150931803686964387170468981638648756616810460348658715457824720429274336303382686353436801086351897769762671921487537037471797692284919691244918838705890672900619644052549768385360875448608459833772676887542842927646564033926179996241214612638328898234722776546997904586379127879041263444298847710915499536453480121875916837965244165298444224086608889731118964044123976755750317981371701277094621983209849680837444357175640486425445973525660684863296614973305520872008838510380303805604691763062942914397097804947045553666519683910437407175976327269791259302660454581668840591277567653121495804770347363593341448896753320046984079521589551309272210959603443295560524009784743331354608511836912890886170315280121719179662980272278344174409179965408989361634499648292956665947221535818568480530647384466212202799822166894890313530808957847840981447194037679903644274197471149931491183076792771796300918046544168072831655286598950999233599182336062258557246851670252482270662329372075033338279868444075094591096012699458809929493450923638145196715694172583144366156276265963053223847267142093307399582948433581621900908468656122685542940960089769144850555633701817502219793675152931935459536512530498659423361811391177838808874748402110069933390536141289690243392931256707564400848963632522509193753599333084439062956953881528571356176151699001246177935543617657216587931025876085687477642320077401356898542304061051442832509194041104000678604964225606786906359413142759335185931793822023466707004122191939710701729476824708589334429291304023973217598552053251717688278986935514680685449662827431678317835634072723654836872098825391844248883039939145147302491478444741486669947326103001455500348222875080969396249496642805500522593553514932937931204121279417951821304802434614470299571080097577344362509554909362720680386985665604961490226943395279987098975704219290479485836809083189632714999682723158182235981604601448535762960115548511289071327067599515016107212875629194926334440913158210976954947985970611587831489840696607045533510661554687866416159041177910470380634337243038106328168590448027376311141377082054790359731788052894263140562996282567720948739263559301421921281128988188299161397482862262673965664623104968005090592180759896051402940616640823873958239569937144463427544812845124374407010015719057276339538234101903736544001240325563465299271194901168613464469289797057779593340523904515732670816383999427646540230975252647241418204225402789839412664873690215392998258689188791744994401350082550768236738999584170374564826886330461826818235068046810496972919011245556763159536886862269751231815195240224254156470711515572864822994424688932166442301394878231967902455143475489143915323118939043390394287545904281846389901436284159291017119276095955965408817317082779123416725004539643560855498805900437723644444477864216305726983922389791510288131896549221714105737650553665877293846770549123273432163856409140789284015595062333130160530826935243470628007620708855305237190477459800431476213437738000912554917095915701543540205584489123872664680664135463636308664284844877940125283223441267713203869605190468451523016294082623121881637498097132478727573301139165414861267525304634379509265872673224668764600407566369148554568458349766717989564623925470964745115191037836026352627806156757748519882536988565126503779719573478064508549877638473641814771927361932760799557976275012556375929857893632689142735311924757331027103496581609162867489469453576434139848340177126937249427814874236740069200012179941469450019175388566543889177337060213306900365361127724621149986761943071582050584967786824362193279210763313453391338205743150379768449344954209033690767917908353635207322646349123571166626114578262351230295525905011569369881273139744455428118610453729764440130953268485316726817702825915798860271295295141131167886773725717846098205261239346772978479453962856381520823723451723032137535612106179701225579470259352935377859063198558257916368592701604621389849672270555056215410319501429627494101734476018443976420573109498535012778848368278224426351412941857327694353682137973821989695060563417041511324752187754907617670351782849685565758020467078461338233279656000563629837413749591731688434449029590513380705311049167444573734165911193384712869426937295682804593032526267240024893778382120517328634011107917804102924196215296523222058639709489613272798341251719413948980808589929333215637176180122666841759834132532042281967072111866415955943080968975225451413668466837550673133700121550279474910741762507498310497793465948998720894234519019878518238189255112353928389801148038609560661333304355515659536321630794555476689461577926090091835302354527767982272159817236304059970890427513196552686642374928490296464645583240095387752609438159194134402182448144027350253443739007669983410943583475733426233191008973586867024009484398584039549172642998470680025416424104086207205275190083673285176921206708882025253366345038243327666739379851471722020891263268109935515986591099094343461352616951504389400230065285283096747483924182573961975203662584178627641000504016838152523452274918091712807542960010631144138023703663027366174642510060373796620216415409299896479877049602236791577629208931243796563540254635730176241628621639328974345072719812540466071383169994050470456823603514421150514977129520163688857881102915459038154645164204511803789058053127824881786367839046689317573292098190778917141567097551133517147805332107524064236953712922427543992467743865574799155673206538208444452215315069483099340838119624687031812936056447088751018373019648169254280695065180677517427839717645515107993269789396262652587194553504616312642614710138941737774727001943261270142028077934409299490657925338645211687882763282202447404180302917717943443061518443856056817847139002391054771288307139493479221606571032544262884104765528434584846078218231275526357833785638076723947986183521666653856713113644766142982832117484632951200361344344388160232599900532726890315845957611951717128311523374339108256392198263437963805040905219741207900641094071434432976541830407381572161273443729000437685485480884602303923454336137288404298836502859456937903571127122383657218003788070735975279238209442258202058686583434907090394690318511057457327561611896967568056521094568843701162272847379437200056281830564040674463789735203907550260557310892098067215449207445888815948633094413417559275197219225163316323380238977505970448752508596037405568164956079521265233612451417154053211866517752660184668002563173783381772336123861036347242400837913953414763479201222865430598591580564276488361399170180083825999773549829884214626369928690958121086449279457184745488145044329021274948827855060727528735431779484552490110736986791101132726436236104013513858646654503546356030413184471339049588120005614631607178233834224336378614285750266458985925427693908379630423877318941866176087352306305302668383123525365537793122503557587108321297476418139522849433377448827846079671196994991191863996538980332832259609194834074011132308200803265687965926250909965885058594697535803383298913175179402626004832329769307419362735718685754883950433811745001739449469165546804125961620410121200993164587034274378344927571004924962718364276508543090030600561020566137421883639363977065006335015130206998781263487496652382156181858560103864203863283491434983860351497291425191331341744082312631337617274470133462024105775135835350070209148935857737665769730269326779578259157991972805263118118897541448971751274217543745333890571660912617818053801901824694948631809293319716351145052885915623492748324495468589210609370967879857601078929407179056856427116937763063911294746432198544411989398624167372004706539687047710741479124705483087891170225877853173979700205043956851599121479825137081027195918307985045131642849735002358753458057280611093328889126393242556215685172288557768403069715509741433012820308616638817139374125935432520262053733350805273842208118317952871122457930545160875779460231283566821011007714001800837949138374256387750533916859743798189077015021078340595311008569585483483899886518767277418064265969961695857033664365340678191480656932752626216108284742090740297374157745249260206818006023032733408854711340268502821087083339984855129212147444454511009103728208028759538806555669986181868027366489890429548285352265129140402449999960309936868943395440968667299479525579060021566483665497720979575700917505241957182905099053544834413516098186480135061318095391014707157242027655904376599246536851946189352935692856675661700441480636804910893943270422908730913690559374222566598065371205726215376278538003277683978703293368207202291345560077426114429423343696701114912904084402580725986414736273377922834092098216672047236757030874252815896492069235416603735717784995135413333749211766760041691922691832211831349687532039369458281667294565023121826916784158572443144811214009495184031099380844160535632180564197326406211373066775832123883220585837733325072754238941787504676157012270857451988402792094472190471516902664896661878254849400512829053474554757162191590332931494249984905022081791657989838779054976384162897478400482677553264792289210598839524231971758938478949920982591474091310359732283863375035426386077662368411162453583970915853498900628806221748935370471195284242634166153842816481520261908997964756410139771752192474829627803139466387147133763214624649129218548913324352710874027610053381834219174072392510765994646287783201741037864306043214254248137672248920722194696064529128784796568290505921317347865049738083038414599825799241095242289824342615845702199721094258237599017553585832355486691513773753589865816220086873525112405370407032292619267292995349675598588506685287875665772516591541528346214477583573640553687722433211529024801536582302941564424062936662234406811673406839302124930055260103617730467856235651191505476937524368503406004963142429978188775963741720760742300183344226909316661635997460336578920984242648013774835277792925731983930926005474876604818126904485920307476954375899622613401080685803457776320688239064655015337222102688328096051594856284749650237588154000687527896595807080560581331943429044238047986115895066967735153411975134323742938112228703019078726883324544825461746491028045333891377708604121127340755760417688843246607083998910807903846400970162358914978208922258171165409496386258056406365788448197718306113827544148825324996562300736143696327952854146535555578201869052893518845032893137361112627567702151657066740021748807328345760855383204049589437748111240137747694287719543522158434469697888771811898886547297581198424070801932487750699958651586099879868128970280083926038644400124529274814020298338390518172418180034564885700665904169278325148184986863664245384577792817255762241442817799585337775460202757519296804906395709987275625270629307558617659219708933232964953485203575175035746740506422735145764410028793539342625821732399085093060308226478233763262811667049105984207286407883661583703547249040623070780871788562888175521289719800093677804893089439954671601104868632963595370135845135113391466513446771391236355360086328974317520620303002945857186130262165305896165063274032323851242370218422943873475320106547618758752383910827260871696616772734348510527167897334127594070820778834262168591194015324719059307303166109513963895642116642208598272346903898226128168412824319088916235251148260488625691732973052847672499322039131049484405652223740615660594227872710926840083965820624719210638498604401326002275472857735976729049235103042096260621994529115069780995111538395725584593000826289773743968031128135694123393500702166459514931696944929921561231218142930788795745433896029221836187921448427438863743359225610242694909409538351379628448641062485754393241530103529460758288433679241594755210737347699690691070988263298433100229532641650306396763582045639536549721563398856011155074731264010205200077836397028078366496649520227558035779693760885095930780397540693282511596496614073810101626969998469882169459515970130472631639306091440597010416144257931472921208278556500921019465376321301363341630457252681074399905663681746519890429143339920212059064289297705139990648572074827104337887812610436902631943294259812883899527639873883195851356831419036397855185180594478777997437377570354806353281210178722472108209975230892037807024255495389414914802598301342151871086434597691783735388104935912140294149425503234419922105446181620286561452121880607334146555278497009876148197608701175302871361837817113857124887141285377597926953765279201620589480501663015910491398769013537482258678570405514189582078848458305210511028678023751370436748999118490547463555734488810229637758780682744441966188989590298695941417466743568441280543381204264446830474965910561351947049047241704805981745267705541838898560206262756786154992976099953853596360483328480440575042598119086700838341181500491794735407123368724591159317584043842080497383394694776575947450728680781145015038076081405095461725151464117474329708074929915445120521937003235583331910097981024433513244313430108182948917736820215241997611917161580062031817792954908383888203277195210675770386303333079029846380384926624553393158055957241600114856813032489688512470890204070545707790490966993294859274829798606401120511936161486329039913829975551356854523581877743076050842999536110265990082526749761594252101043906379452419113775192544175821219695523095303464209242024775919613588270497072215575207462924649650912412494031162092963418533321492163479616041239836068182523241647428638512771386555376930681453967826516032638449702910936586302061055526527098027767115672969788664027806548006161400473377485566098363627238754447309179189825283785447682143833700616716186743797061513005302626674230720347898494992002394133170346271125874752249905785584314036825839615156930479653781064985080872172943721883884789244798568165888891476551212557502680276144521924327691350874859164110070404520129908504832225919701800010643301862941553303106618445119116372071420854205236338735272650230816792545033330846313990996788888711668802088100753525407464138124340398288307795733886767809697988704627894341682773663038793692844900972358784834697671196842543234547960872659604838764979453113880191388651903157550942396004599201433570570303537722231600844710845401747045154117547466979908290743271620717671368829136205036360715554462308239832885561949369817224410942912981478112843758557646536743325776380574402766370547856148581739260598481139530222553411116417742285804740768389033490450876363007678422931547221450394693807690086070268244710387387676280840256531128992741381337182837026176576931997595364780005099065346756486184578938210916359767557136736896024207316774616502982565088185925411786835677006450660928439982269347100572024470613590571048760275463529156992652253843957001764720073452982637769853506060444942074691358048797299790088605893466814044187247622527441657179840173324763912852439503269713571830549299451444388043507165970872299655523521242532176933346782615187269534106719917190807011941909495888084130503728102618669922516186217727078147064657925401635452051944755914249822253062738696455190679005517826188224005891731383334689778015050757435127628533112230141552061795825227289922192901328696224537371746583296916989782914654377189793736380673782566738602191891891270187321635590676415538034503415745229301578786681016677149268465685090863872294844785084532273198687032893272390980487159770933338597734052963813854621557012083336317971903233058773789174331999743696983005391265786006307102142670828808853141921293602636571148532957303193150103976561714128464900228021571391642968391829680122683218472593100967849755734542888132752697981500983612478444108923549496058544195604803156123626677976529549240146992899962333148919897655067121167760581476244707962146763390908127450474309936054163865014511253326450828033936205785089228398220376044997756869766430046564120988970208130704779597770181728457276591449510151140264220850619210915487728574850771536971944896507372254168695955347362251188710669966737335200354789190547886046526687649566430317131237969193753107696337528164387535724773324144139706605238496400858734478184549671694633345730167619584896613540617568941860726762666108911613110029404618453387902181468857994653076884313425793709694278940413009723807711867115716193340772521054407257468145876919277162848445702183360105790945626620085912477492079563415601718072708031684658826310699919981853815429464939497684599260540452291477423837358573894513512815787892754277403813518158685227666341381976898101135892685373908922860310698562358371449601043917442326004219884136715757459267548361616420870146953301422959480565286251851617898622018162354771362871096357937676826766585204924521361586434823780699401775637087928272388665282760329476444620004924432171639280062228174912109198762421347042400817491263789862793430168716245703240088289396815810943591669312386948680999198724622222902193854011663422631246036787350252732661316713813350082213509395996801001342238279733218072736524001731127133221191126387096092038594823639936646735590040640304835464999324452153711575818224394756853351394644920568388802060840181782821385797042680734725282841528406347290175730459368515285093800286543123216725173128952962654098997120105673104571158191358867742871230202994792974336535735781059556280587668416945583783032040175849390867900814441642982208860651158274722206584060028094525859858285794403547838636684773312256144687692172710660876412121393404339076418502569079083600054914798171736693025982141838579846177635733849246234258466315191000370479959132353110416257921128805083394039437582621805968218595482617429578269516379582900841278288376814078507964330395322428435542733300243591345903202480438920027841300383364682903467254938827525316137287584092754702429745083665045163535401850454949644976802980763837645092284430221139258002542436374809584414098401587037691373562601408544297491441619703667292242259458377811731382881705972199958784462422416255751716501087704205469652492166947959292061163374315850389018549974244777629690803039196950429142877472222444597391332121421862995392796665567134094532605896678347828872519794920781436378391018003915111054848031523237793252160833095261278206430006289423728919576435722917886613390139816914857378082263788439758524871678517211325139875799975607384957982386622141609187680215723335721748618359822902046569106501266425080416361787059138455846831713113399217334306248286406910823134168565271108572992352977229280714425197689708483076731786273361145524596592165934345888069981757373064723497971853978496645492297859006687917805453160147039193630702806324386814241078380862541941306936555745127487869645614915191437855072430278094347800476640254325640316884286735180235777910168514299210419620519901630251478078354164013521697593530331001152351902129353933929606350904107071116554834010978268003464879582202037296464165394672435049644844533252406158768788785353014425355469305440166533984008812922088382395552053003926513754349729162633562801298647192610084471418255473206261144599780123296618908876989837412269719239464354700839679063481565107278664160698706389188651184350778682451880385224600764911295874031802000058179848755271711299217862218038414418962698402504019887215496830073194676520883653455410481437610674933139415851004013787341209154276801737699767405327881486727819264992305492229312768890015503150966489789595804162851379339662701107911321876883027085707094450245131878141155804367083510665781045431000074434599216969873198547116224954213345441096783994004588544593128560332115021597215954613154365999397569527710614900770242075854785935921978533608823926988370117587253499005196512094748994364141879243737122842406274957322077872338050078460444446567111749888113657085081454774761562275142357313556809785806187831964040427321273035617201783502163846627544749932292403779180317575473043230636502984965303614574621064487783919127593354028699744117664814115096574204489679246082014995607404949692096799115643378132325361278377432654516887871963286050771695929945790045294706530944447119938791680782867544257743824523819863114219912230402890296825564444471181201172530071895105745691765310323948143483667956029919872003538750597518677996634573992449916857968835156257792502653705581685673287872094684419790785066662541263399524251991273484002831278150015450411799582131294041614044721873229063325046094548009970121408883304720837165640302010611575463958690146500006103129234956997517074767270471419186713548618849248231429150473678681235221391914375326449181025093161940949778042412675804259827679130998487060536913388675460948447448880685789513981018265109172717905571921287550736213518620888797030917355513423658399426361514194028373722912512046963692355864111091515464248371216170420167742225214542620976381763889115028913890103987550452778370818237239528503867775102551731418476256119606097627078520756284325563950499991964812876646679788638199556520685420483246652734751981863179163160342492897852805391405483515706428630068069809056178822884858957975828491103333516724293851346597643383113588021765540538871133121928727493619525105369045404896447198230886511397147817449480452166726987972973636655667536155322522479139616688467677070217892889756815759463940639284973651362772808718459254218810248486646750129426214696276166420293033545354611301877257848763795440690478395417205141194870722413945824971682239474166828510242005470240111557159056771445765834657969212633039896458379766860564458279937221356580774896459017636316095726068581775955246457214261193165274906972286269802793453887233548628329309117094469042442449069233961428611002609247134236789642389163264109652307976238445347956442882290105118621677333077096689406399579466286045269162076147242247589528681480069912615544266277032048993485874410518539197625012205492593002818935002805028785776021330187452117786581964004598765755196671322386236014624226387392012105846770638581537626493816284960981867695659368512072598202852617152429211292613401926916523957466967104878493297173285245000083384388556212387566443423941853306981032583816663788998363583154354782321361804262016637113369439389869957531093936769002010865318345155450741514663892411080643264941058378944062473190937699353200332934665809534617031965207694288623525120315507868511057917428731734550638256839175164600470702945606135641496270457746709297751162644266881956964113033377422445386982254616013319641103078862403109337500201494752100706611063260181000602844686573573838178121650471571558658916942592154908860284313720224938929281358012348647293414352194373666134127740504953357356826752758426845869384881500616065462005370686572131576173104047789344187146583833969730133978918293450925329508577332901061925132459607222006955011467453304418857373520991436180919926490351028456263395056673334349565427781120730924767320780554667264226951836624689964653709356866416689625022578179816034238396999646295609317807952407173074924474316425712171296173580261064970626294591061842885165437323929289864552658944065700882415931312355032595611776798672598655099338341702210167944000272367472019856331360280376035843686722791290842893069177782231181859571637914298147281778126231427404243920768356527276836831893841382573696185192578775711043206405730092860101825417038467607511029252733698217091583070658785535601382431505964327997759935939750372008033966938472968597242567380780630159755912513513047526678870644333666143069752180319342034745925712625268899578070380083921436306941353774368184089994673964810537007638124296633834111061281819132719580142958540887525476584465137611104117376965451584282312202219817311967614572248913384857791154526864183677008044460975063015264455981109800398375580734635627379997037944234888364839622759472159546522516029504004618855711793588730813936607759448056327665301479776686297624334977391524955899087591739220810913258347104151872191039082708579993026620665295225440669370482942586012983523299797498775450445430265280026987878522259833935976980769678526780337433213194464540590053432342747454222991364033174641006881068517365944680618631819161348568402865984297599157383651557380624918531149448015194770547842786868435196406712767491082734694560467726655989069226712220731933531767680264616216605989481552926960490753061131248532865823190021955119541883017913447049265174623333225830124657812476998339087130132303472329496506450503075507478911831162772641110821192402207108086732952525109755506566012070551284348135565047977441763010413877208453536898072881707199571502473244268882608358985230158397553137276919460212504492720885589196436093431445333574365314553531263761035919919257480240303541122957250165589097078498781913168704231976267637985237616832215929188069348147630229536534541219582695711415099843692724303271178098632296587321783863668654245377020063281812860296987909523365462958416514391812978405328919925954972274866229251320759987481092830507975268876609768602251031037168362670148472052286369439525544617620446884234386312353412123955499531989443663130932621744335621146941494200907097736039657413816958706601520633989549858961100058686340890121332076261394543690611705061409810586685611690471876222036053986342830810092689240139291144569486284366957009581162286700431547067992466088921405183152629433812886985841871489552990277624486781953054766648695792800134861119533480079746503599115912372875926144032881611065605534552580066428120297932362664116839122447000845495724050475107476875277554564600963588653588173897938032804332901772386187391324943765113516140410119161045749144063136702108484986183156332470311215869095957379078564753171059199395164116283761498005651217580996767482338776414731703531583823707314932440589395580393637069253330791397754200652913588142385060814107783997025906007691344638280201025623942311791994112342831243038453026735353745283320465262293891329542066143083672234162336547935983126946997925857340206129990066070813933500427272098523075946749929891123686513255239825617501730809252236112736990654780209669508257989789098260315041872068516222457571423209556269928291146477952278998976362493551139951192941954850948930101598441507075639716724669969384542711870400992300798076665005406806413112043358426918263931005041008496747806180580909197351409571889010025702412332563088394923042938003437404760418812483193481740074640634634589347689850431389239064843942184330668520346640045269512258060415282494436142880737307269107141298484696983218808239059805619577024896113750861405745941716830956505269371261420734330714145840305010720102391432871625779077659707808142523828782416500865263519902136070293071305225140734661587846555521873583024226882437199230281060924330841227804110336277867516369181449325889322242421726489323785699682012523186219797356434867669776148151225257368361737563518548491255651323907725344594175934333981806832361565986955573051654880827438346879433011883132137502398845581875761647774966805671596297377171661924285002248306979898068908525625969841652378974872152244056182402283942810381532012312548528727172478946478758144720113176132814717823197393794104337347963407699278727901374159940452970343185503603287191142241199076775838089658019400818331198117323404931625212582256595154008617574405448949427883496855933518658953343395644677458366540169950493807188922426371771301382118928847497812673071328936141320780337117511726792792338818236256936976492550282750488004028816368555006662974898318752430819113203004143271825416686046787375898562551177001936209305229860676273104026717543745264316653654554960437547488767184914786862908502369722184579105734987589540678110792886166027378980693095543318128059621155304405003993651251974507329674552108251452909223321872418205511043708606001714329061790506977825874558632665821448470790207300501013025162877295600973280537193492121174353837934916677361849302225329072440212074732668621983941047009400630207524681980313031212992506810639542370782081227476680869029661967410291254129997178528147999299027953585724397961513106627037074077847493350975182980940499014007648477776902022477245511073076425746786756486772856630748336432284591435408108626314991848655457477768085869862130903667120839039773806307710572048576335346331491788428223286136967797372342503639195631725221944875054138666489084139606682193942150718518015601338042888279900134560288968435361141699084409001887207475977489873521611757665872939182769649082670784188025845765063853793436813677475207124033687258989776931466403347980474767291317679905632841014341007197142484564640905887473553182950384702304294290151839546652857158779087164143257762193929424996292636269188879677260553699279179830202418589896683355481422775590971633056914158050299375707056365343773342582368614323788666614859965797543980417330853472951574437590279946521536721151433541228257400188289700122055287330817459766746372733062801929673666997213685619841178905974991499481485485886605852736895424046671097097148239140774120734297964578358677212439494893141013762833601193665745948096058533506177450972933550023986378195516112667614789925681889580461318918072672182821662108190894629459985914824648721490035625975389992872215850191592103623556951290300099507162917409618995448310042190761308503707062660099516565404873774516465541440563094448404982183293133828300355404621723515066458805993179233444637305471257006806447092291151271415906540208473620917527266063603707781437261901285991029534757813453633869887384368863301920192629548233316796372127646930751170384053189182924324359037159368193028348807232344222313894664144521991848045341439345632129930517520518984351712764556732364568739473998145028074790335602841349844544549682641727888750333563531602796698519892681017415284750428604589060585991490371622544822329307027008863784541090036629450088709803482363071229874842697979065913723275916047619238424155952805508555663192782608902909836421370233819100710057127993148733560597507356246313482954913339784707663165348133662033177744805264224964952424793175652520356449872340685310049488943912708335252324357003506818083501890308774566270554269482164317124858807108815213534733214576197791527252070827904352958054695799950215559131861518380098740969940345214181469317219664858639993457531864712120745923794808755543190332434703315252364062555576131370796755989285384382844651222126957147883927774022416233073362271659827379826332405227516445398258861148719538474925516957720397594186098437902595830634071268251848699934389000439987601390386659826121926234528268654247527298482068631212581479641135752337868768721813866893231467417546014077025129087037983414617844845334604595762420398076661158404064158222265025531205879143098134700664884811451740177246729372329862117123551528497124825742717179851765848058651854538993878613163283425011131030472118018225839184401049901902765185465042310739241657981535179198606559822097539241039773703500446380128718968833414477299787950128057247326778768873770250845651656348570232935432846699151479077828932951693391794414695638218087744572770916977334202294898161850280920383574043365835819836623102214901243476932130375554694071068297742800203494458662316318602952905387794053935792629242970780790476460839653843400465766899328634280245141149594941280254308482610929671946560661635209157385292259151811707017972405415558477250939895950945956864658990993669253062347986530221395655385254990506575423177637756295252921815908076065304123028136805949562294782027048521834913861933110715162964925110605967567747432155340520450707524343577797311813077648793362666338496900734569823221026598218876471244554310764531743804509634034899044155562504894073738613560475729663748727392436243974594210102949959890793845922048388713510865497265088805703202996708543414472431736043298038263903833419921153272015150278380742229414990088078763697837869517783177383389791852315041537312006333512230658608709397801456593784477002336392833314569250776405931112550360569809171858645466896440106433957489050018562948732196719880740110222472714424873858011027496281730563563732332128280621276974268076022199192344532928499905367403813456842653061328752363373700042882310413433777740062736465508010363266354548317225137892056803492623561492323846587608183262022205150970613619830435313826019857146451418990287148298156865422528480720900275955723153069445433586674149232152177744434492895990578448214785454146781257363465460344016125470408873445289182830378272364341758424218541077100387335901608084141651566940546465933895530143465506739724596024454900109101044903231573064165580726103675326702198035379479325561219708191294804179576854159750918718341609282514777701307977402844075824589990675361095352509504880388265842037253740979746795808760071625906664472684897160504244323491183172826038102559680803665024620686212063093738714921208762169434766016333109189076135335305188305714621411248233612874153040950654565154484371123053385592219179718071499230051955008732170307686584883810425408250765858438727313308286739254811966192753778105849067720992824989453912096800076021775509971267199093458106582623779791295773415314995745835551184387060693152568709378198956874983723590840811663996324922151616332977408305938131554213999492159441929981534984886989973593934672142431075140803903041083469307431943248257371437183118694086272007979877635602808819374998599967211393483899886743274942372389172259741710369251010693345106766877594994935294732302473841840874788959526920290183020687597609323820129007757010213177341834007752885810502177662406992366118976608742557225407707569218734497836454364849796361570113618542416882882924472191404995946653438334895956650653321041496651386715804896201375052050623141257290204589794509079742960818386840307526361606068149022982862010780027984739667586779901248973532394619877178745350491039801674220105249858692738031574600467453224552166200004385934680680172483767644278924246385650561616644135662693347435348925200153911348883525241035668286635450443317644830116438616078588597725175552206760929253154328147331879461831240834574025420652484295201655427011707722615365034369260145956942090510606052295719621540476133135950457181523560079196525956839807880666760834983432896367191337051050644005768042234095573961081946684339378573593059890461339683220582962750867408254115120972653671848777638798729019904305160671466062009732017189069383010430986733874001357903909520187492873171468643790300212300847791231861090066331715877579262948729570166240535823057222949521963961409356858714801002353635407494029100750741762897198938024262500128153921187086132942512356263846791456520532757813855431883908133409933994314280589211028137975909165084311985781333271003464182989369649627587562882460182492952238579702336339851317774638166342391288002211141873882924781256790660474272393796925008173731942189665215787500287511391211780098977342706762666665568321569256865685229012250087669843204980367027704518742453106208856765075775860908604353668124777941719376841077607793957067701283788574358301953892152535031362927721991202666873315466054092251640950557061844985417397625566265348853553988919172530878943347795039101645242955959276126701513116029550192274186940722077745279432914131721788774206855349682793478174576692579606655197031123368331581027426225896338159960730559723288566052523854707407666761681572258244031281686943063066667942398180216160672480833513100908037166620626190350136598234217373332237744347414426599695265348789997620277071372667191031783648021340612411339557524239137880525354387062340907238931900373919672155787982182593036747456798952908466596170573641167474176584436963327800235399500850868282111605000243953968458443463025798837110552050065217444865573031979923024868740981191711284476547478367362491765220882020700585412640603015021003509182617595022804830443828413891709409660164436028428014242652651787841301277279543002974339413698649869011693353932200855275807078693475839653218542121988992077137822109029655663122979696799820553498577547835162551451497319518723034298928124752351114500751805453211190673771352707634845431837442006780203931279072565066732326838708085567638409531892875329129581964474901614059209425979862188131358987915198938278958345912257249481810397613250061912014932612886639887654631077432607858384319464960676750014224311048015148910574873032009927015965355762492352917847523064884035093729056338918732382558177161759437645001072807255047694505827252074036693624908300558400013863782911224914888823550368232490667800783722037922025229693151167347520846579560951716300312174274363354348686597649888086441640364262558701022979611457104290926997610684594267602719700119815318180161529542811523073016958480000313393865629342141954181920682614364759322043666966922995964454213787050338992728047949389302160632311668156323682864961295954103218689418070195469534287768890185394487283554680747314541370502283508477975592309328405540005135322311623031709163294693299248321499579066608388988934372976699536880559676784690650716367379956534033862201379017000910695963324762353580767269937991480762551200323952486267780115126186608124623380648273715906421498765700448120908000055190263674531075564098165088241499456741187928119033423045598561443561289161552664575377905176495869101922821134596042782784319771417600812504269628981634577866141793733207221913551919108344933090958670934232001669387681694434381835201889590535971612980335265125153792474885561018254131738986095497896935942299987941751417616961054883525717178369496941328591958344808756092637371146598449056056659543643778497404392573169891777406574763245663731199095366948019662745652343623685062258941552842461105787186662501454091649268598858598015797367290407046231095351099746265113559306640025720508451518193794242477565874252036581097894622509552771145270398956718915694082016628194174663558154785781034105652043544705110608070876708621018409290689929088024515359809660804185081930123721631369289601011721602461541956005226289561131743276293901002662714745017000491955912664485685537917392763247303301646732807801933874868799318468393336243737481333418442420184171880203401042881345346965698527784983784868503226538461387008833650651573436841644190001593265695344280796377959411141123940222379860729096897896791107575182804231263820925208402216986791824451526615894088177496289125778785256913189349053932880979721449918445142525954863217374265632026794380887355272280668978425940328953967374719140290239508248878736389937759860030575439705879935524775663077206124528441007106412929844176476990678105935165959850394486324154885590157322974565229808671245325709798248340818522307081898618048183095782436670941974395961066579802843230545896146995984627487635454216790460467702685486004509407846949207785956543989177115441908793512191066243035473784526100519261669291900937319713150347703416601723312227024776032678320286504625058555584131496724057499874759316432906329884770644164317169589181032260626685802281900637861302326674183480165016584782551832653596419915440392412374095781407461527950799637169348142982107173514314985922635714888565015434616717151897889239910612133799206215822091200671020293526835900699662035976630982341180846164092146834525443871096551177039354709140094789410173276013110570518647114685057736161678205528289407046899524545994894550811560724914237854542491872535283927002182855761834874212774488887310379429313343088281334701944925587889770939341881968815179912124765658718420068738759389204993301416266487425382847564173085502752694228813282800928974619209044709003817013056080848102430911772874329734165813281740591419175720383942121825137397847178308549318616040901088657342513896325986256059283913781551537716943981452255384153355409104985622284493187535638148005397696169767534522922220192136584010297546803236516753467627647800576095519331082513524023313966856217741645365756172652666086245167024341869314565426595889937712344630979228513431214459295218444333400453505595845965210044047496482039649416246724284781741654518799153426951530592325780033251143089160422306569806936047945363111616942214480014565299799974810307485452453547523607822199006876627599930227059744922617821750921251087001348920091369752575763566669578810031003007017253070983266843363800900374283872131401437331632041205080592902580345815926750010298253840849790844020565298546954140279708213481531854685663650625244351263657170381765687594510547775377269014659580586037580638242822218599886148765561673903456611499415818174654107369771807449979969937766496871369573141195007973854963604487012688196716209788683369393737406449510096470162715310600769149002841987930589326912476913246974294861356344300349433460925517376609626804399184899712329373591658672581085866722888039785582817537136390704701739877521773819295728945035572841747365024597573423731710391159996844692800829074126750762321692822600074084504900359987839355223759214884994459623209136416797825180179036971631849457612551745879043552125067692439710552998723179940852282524156576736544715665440608906304480674482154149217736432130151033785948263165519371478327388311241372873834744169452327629513183677687783454469948202771081185294291628384518702036499922987136866399300396677526073947282764618666945751375619923362223670121391507603627904856013657328845829046436669692036449291243057706592683457923650738740425992387777543147191018034837816547607773877216454115790194869665243381579978200303289132778468880169037266708563349670696135523336196305329295074581038584737559677956132636037352429928942741437282983483625114835266382162281041594578322447630048625505691297987741344442217674583457494587974914986907230053000558286317962842655340077879367665275762735599309781032453590073184156104651425080112284712772189547816894482641852436618566490393024877971490191875714518898490540602562090185985655961745936404158605081434149588538308752538874980498110410490233773676415121678452574538093311824076834879339388524337624977014288418952008476739010030348541997834892050577907183257197039926424994588275667229159630898449899992482747810874376148001011055097365271283966714594256053091411644789417968389939407421516490717371177433178378306449235889591400149054077383777887635741440746041106592073308320362337728875592770962227708459802438789902068295022498449143272818728665624291783742115623902254712558012065175362847484256392270219421531026532727129408904876492831418109851470290018359927221526832977660921979221755763380889262627400096076875819316090668454289688803616416417104692930978920486961093465653035674925795728646538789084534231319250093806147579162094771785769180001293572548309447962898978575197980744880574559656107439415822305674018508246093623353610145835499054909468525925012324098553792914054085153030957864869854764674491048300757562974269716766065623752153173659379257645334675584544493548285859646670062360351455916461203026790507446212962317167797492164525255145254373097286285328525545875281887695999972512474996570788342152466877109453180196784564233389744031286389207465673034501061376353318716923413658572799931875932835403795609283518265536988511857772680660818874521540818006610016466934628024128782020475541709037100746459931146907170374887942210482142552463965531433949705377441631681577250479287021761489232748117539501562140435909837739588566821517873718079980551630068459130357340648861771230717563164216072028226789202524987879057646609975345827397851581857275938491763118590891114726710419252704677178990113777564921360570043683511708160530034108275807819370397137703193839322107011244296510435133513012881084966631668385907027378050020528567647829589086845125438601979890747704012507445464683288793163386169623382178770975570291117581427042763351936118511102319061936878284511705726580583401247143379145941559401078200248822458110495570868124961597236929170731301326182830037431896197684643302245205820162164241865822554447510954965227832005907770372817130089720999592430530122709049959605838781191854183667978547019724522169407119720406858631342338555181174556961925934367321605831449080358743148938941800624075534493678299960564713505356887449723501745464892210088984609817683316711927408960543003053232769842386723221372427433548260287090181427755295001208169784605903825259038447125870653903273688674308559147602048122505905861175105757470286145804845064749830985593106988597285216667790711390359387437308999973322696872168667726179347306858526215459270752400110544622754146854226905267912377717453363184894074424766432318011408221782465244866861790912203116708180328715916237889073866191799579110405608598824506915083595781045495548255767318034421518033001629584262676253262729603056709914112353024778352479299084339230627387079736334362187350849690401216719478186591746157258990331011983129150245763316096200352123844539557524800707897239691539074589594448495119610342492336328586205435477606962412331059006353856451676643033685787950638450901111604408165168491943679808417977712144657287238277484281746206879512190554808077376919249811019678747294064228390308733896225829292785276334670645115776751939564121096892811173987239272750059989593947319390142816656373770058182308169091147996351304786660412826153285390535273017841297357417789025610442280716924330670011637664992612174125029880085595286285216846980839312902334887771276206652431432717149214381631236871204910674714946856384190872912123321517257409291060581103419888870758427999549018841612287412160221614252766261559885821086914242036541581000448243653439484833796842117872323497377768212429556695357393153691213756042629785297313904874665510693270153546253456068586381289602949178092864172386321908668308841680241887031343928567384354936342571372883986205851341021501604480390533619995834720567054895746611395064888973809818553169206228397027605547568057987915761522056393627830604956367163628093178412386892605253348756223683669958503653954746768991843694685934630835580400497461009972808577865083942857685904183664971034477910944883348876891075559129097974899491773985638640496459978396977050154733669634563504722765546146996381383716898723378930411855391973086160262459229216028656854417478381705888325783592335963769347375518766414952852933298786166991487097954249507268386840568250625464954308884546754193018856698293706480220482754741756513310700951803481779769571709422823769925720268518728442479754570060981804889856323473275542228985595772242472151229352060202914398094544722313075594881503429701554289020111194841111961272178133882465991039746804836711185417232711318162456746012141940526079102141496028123498315393186641774149424959406617053494618027777735837631759673802307616406821037710010905078175421673038597371476125153620461326987594591166894713086886336788435836405361575180295843299921006329541238833027739768268586345714307097332624852026577075708091974212024531404325222398154216638101034717840361353398557459756275101968135594272602706785124913037391880699415429317819361955522593967644392689266555759072305444854813469186867023347472084330484082991558933641820365343201014762604012853225576936798619863570694080538371185718094182794013596286793611835983967711823494017298361348327602473376239793622809012605036327542391022749505751741341585081181746916740088114037455211226447241579484401266727976242607048854021871413753995885723515283301816121802180050584330333414216888847378721297408107686865978519969941870636453449907569181685106151594867493501089103070352848793105038601829817982425121046350109072531227356810402798349903882489072561452906627787322997581288306842884946703807250919943401548476013813736973039415217026852447841513368719152953621715131865858934575002780243259537297575375831780872885003621106483078958670639525829280810828407335951505901405447302101291693216093823336457348294734938291447066094798407526212808793201195940010588530699372228157749617398007541405463211245574878935662337053788468848489982049351886370623568720138594084845390471428574775749153141462738065902084257318929262943053972594614163557376908386871668873204506764990108066344170446153160837022382407433898088353181085243837638301015087127791938170467863519409557318908509065938327432107744452887612526155225391215831123229127117121949325725979094331217286949528332238296208402049053907747917189263276616608230973376830193127689206013551872056434516664212895009995731154750720140672900383217091034727671751817907314233869715250248960779096638237977394083966831627562269919722274317607969634919054404461200843927709430664776102019028767067212223040445178141375360273505739703073846788640353770401957582305046654680434701947902689284625252604374687100127671591194202916850234236375928685825266376552809028434505287264372318563471389992992508327792724719414899690667816643082047448994958308225868915301105199610851521226929686359662047615764763382407739913744843731588154696744172887334792113544737098643454307028103264025904080175401297662496200756117518640654899114751211872568517678959750428402134641835058428992144007602810821563634240104097792777581460641522276649832400495888015764086512151433293451165770796540785824723513659787550000336621442710135238719860798198308522912435383357848511592066579990729153153903352679949132484439372847636119866180035982365870622432287700727486836222982759876462840659636572195834531822596145550584793466032176451809606247419571013610023347456935349379245822072790174884797784308406850030816239277448363020610872561765942680624466101618748885537100378041861901130954234712107193266941398888855366705099403679450542058842972667795545196440169422841350781383292380550396995247878494536580731169183819336423773212080257467579913401179592375692187582229722810991373730435611909274540177136149370568851141572040250501963719043299570563365019281408725616023216535878460537486524321829402850826103570129228356662375310076277973572111799297407337133961410307955397346952354221684820150891882087804227021581384386935290860674810482476969169563562751020243370129750446225400824172104524811170623527447640163032382117899001382668732960220549077256903711238323643252090896156712951585700685432032592209822977597175462497093129082644838057045204454596840017907946063289827660845923696983016821707148294754441800966345712494894891291888323054221936606964054001210774575521522645646331934387780179949636611468642653044542254098700346447487926496091359396876754464188009301582912123962153124306138782956861597459839739058506333275934526051155017360534056307446308733479624792640165424116990770603074500937057395034711986815690893277465630246232649515012742999792906721180808567762855051987174738256466143247680108180132795403048126205623213522485085412253976877790529464367574891420298109023097970803298659011607314428160139258614842657165776444581616740895210955559667339439060310726023883755775449005076485665543499856147356147819267088823279371368842780318140476510069332699907209148887032653636559060109247010050222369416303101167439180620166902755561473395386955849281280415578893659193128352667189249840753494829665593361667485001363568370788638770702482801343791758335522723043818423196160428118917487315714213940110743027196193262939389159072972460288211921578349967032183339687753163212257530086098389212584201289659165657857527530167904594337602916136930517253767051807122508333011798529291202027780544713125743938314551153319928898917306384714731945610630581904734535069643970124893465564794533572995637770699458616743875807613148255057726306123464630075012112755006512661344144177646781325341504144813649397408629402910579204899149994804963909986372925117815701824643003545570481944445324118099094253306953255383653472683346031619191262955802518308488427606757178141230492043966264086134821523740628446068295009485551757563281693418114676527267469979422441192733851416328015433726506385717085270151432838014416061259464496297867226615200800911436140084743384110723765194475097968303103338120755663221649566876484610528525895140756538161963911531856702633784971817328844943958895922413724013732500646782668471359045248222703145492159462126264347882794943262441225961182331619558295580015274424810729477677121829367993037403164884409919592939202778462314301442777024764204705304702126385124567702493908069834132606735346474205217098069203755393460431494472316086254019714166904391697648214729279389603806606484540598688214760348625307798536128338566929165714133611872357024267278608143280993874912579476572610169796433171110923091696755719306365912471212139780684000948760449397823499181519731563454370566056335129069724939250815352748764808550647046470233214740865020349582853666965381532602988412909012820723205940311788440419377447963107606719202160789766696391737178074559665923244104137422112390483866536361030370857604199451333171556504121741026648177806063370576191335536695012257395257046124350847891855730714427289691434271472074570804425481001450130342334938064097999560306406864016732216517229005081995802867029511566841184287070442857659232410829645670083001606012543431440167289136565258081561105136613264870474974279425627561465820182926022110477785880458375653041438173130409416326424881947735764426965321081437991883292807012598528171521171663528167795999231773694898608490052401606227085986080979787980803377546153798483805011054050437242978654014450190447659496279666292947294401661834779153183177789157198298076592714787221360500873287226804552065515592920376450167313332482751127148404363895051105308788424820886794380309706424890445493292221782656478748378870665811641929166711745003897531856183875425623419025168149769025571637366179736350150638552303084696660292068190325121116983208912179113352408141103011820618843781470423718339212449634294806813137061252454393337048320315389636141291476980302237555893897865143313697377333924554692476679755755558497891858528817381295944092257218086537890502884034878925483129354075159555008374695938042889743663015293974075109251208530399203832706208677450954042960337973193599818227492059877868312060939927711462612364806361548686951077129089920113808965959089002836397421490118993465497214832121488962704728517151924700184887096350878066698228919785645720123089550850099527893616189168613456033857363960176508600062783974033129079081110725889780134630851804641618188145048172581335665657571247655793673636985561250338933149411377691630826229944475987456915044692510859420274479526696104758770361624177338939934326137818173774540097509057523475279853023912083790919659953190540367975928321263890357289327607920236774459716189883615831512548421331414962733890294296792103533169097740537913861548216534979447662479276197024234353931859908630378389044285496952870966063008158466981340384350337199905964193582369363911199543565700602891406379644470667061862390371303115270296804982169230148846791390418806514214096491642927343685412515420787588364929575636114112084057823924181468714373675921589631591053832114903915858900204235472601055610452924244359279646353211339171835449477919951871591859405484596163981746493363589106819645653127915556494405624437213431345178998028402680672117531095085381308290864030088089486085182757593379195211781005539362078361025158181171987961103660963635828983377703621978526637660201790148471201089692933615912267372093486699241410578834560794984865354214110372318533698627190187399859733216753308615639614473520510565687597709655268869989163334041824324840130763673895832585528871289874297314510435943029299594813513093734816052103995862410529625033802859826128302550050364621851184998953729677750513743713695213394163049420796629382567127744294442518327996181669125115120320734231598473491121373633771762930010224574299044574667030397415559531267950753788554827435335389424543031231159617167381272572167074253620572938122168040257053145268965399404940835799554630181456208720940530745909466247708473459525952478699699900702371285360956692078176547688588100242992133881595511177568115481745879883799425795380758166913932823655707612016688051531199040447269621743387867897537512228526595942881945455067018621933336890145349584101488344094595108397495830079410426242490244622681776638142963601011143297006552426505336017378317240113111151750261299136145253695544408231737464898404066008801478494016041155762810825968738662817560701176701745587453968383396991104877057636515872271421221330662697836903720311355177868220008155266724451496699924467955354225573903100090564934056729347884870626749586681522611696139963338916210613368415282451068021199017086483173605651331474151882745656090442932205195982678891976607261985346772114880262415424411252140813058207214437437995140141882937477090700801600293182179184093006306550990739707633976123191077354694579317807695767382601141619204120025303249266940331997971596588717980663489154263800007002834828298466295976402381801466407298297723945453627898824839500177769170578626460748947980109390306941404938603530483281502369157923805558481096547422239481122234409861087817562500169572225562697747693119815527199625315192162907053151888602192761928372233155706580396896256115683919053135142390437800685116099947876751436792448780663901149723692453429069799310656079031554866320384824894730560997736915950420740995223597789491182759684888613074512162132502804230652474163982276785221078854345990321548529706147677868586546468957758121078679873534779047198915559233826165905224914318613454733879751460689628998793383720423191007270392947927719863977635837625219149778990334691862920031487436656078280992656489733836569836688548076839225838979933822393616580363411012342022539006930386404420341446684433133454362025108552053293317883025719456393247197757570770162135954096821459154179097450705640900440727431804408280956917627402192717688936327402728909607750942369827110356117349562460473994155797833885878577248679743386752499691512297165571552537429346544213283637876661354973511338097287275140706275163138148733678973956953961862355583237263170521068082912865358558944127559559431038868508296439812768439657752646824711814953906103211623481428988954258028959875083371028876473836104027277684553817882953187397061138417261285007913410944577078921669204808575615407380796288031064377549164449040369113297502722335203658499269633635265235839762314226998199004680892283692917051601602801725759372949462482221957472089944571565350716647518377772403751135529285293201050459659295724464609502717320739227814599908066853182820087735513540672414838084390528736232097417343744173475360504220148870747892844721849323638160944443307083792883553376224285012402261279434191419587684882205238692807400045132701089777264958913973258791411728586797644946283812456214862506802065597260339692850617309418676374747437185131346468190066045522170125306795663576964788251136601569356674255781549905830930907129243825419334500224970118053457914786299207391685645734790006138320074062461879577759242471096029362385695545779552225852098871226241985522370952222911255707266195131645912647495266709676984609517107032549694348027949568064397851846476517070591218025970372785349079145962444171205284628483734012774780751175347701402563043243266546299149181508532606918928325936476858314203877013108426712282829806662839414941652592655930428018891438451219789632779276907034187218414725987153781160676888820465222360192921468125910911837442286823478965191133540647024448541527164256586044695786305425889308573835451817461013203237959124033017702415978956350758664153337917293541983398410484385884724169482857906858740513013418959293470676257260623082126382010969858149254362687127582128631787784717070694198610411217305134192540961830177248041596924510440167290622980227842560978604562413859107005427280889589870601483539531778157991702788231419285529412844262994484427481416256628024843903017276078465886570373541286072842096514142104550881222335173545174331355862621098164170230544481718836840067287111643204996933231611171479091126146486813323634214847894397031872015234676037300903634184720886053450921964581092875222311063039186267179536209992456463447012232587955421300987638336402521055499749120445855107477685834920730268455017241217025867573933252722437108298992905119455174197181694620241140742548332623337238125455490345898550954558986706327039956238446510726795076829593065643823120728064989971325046716218108638002353316995432155211353296819849845560273926815403463684586003269433313355779422131832917944105051279338454272033939470616849645318730603668420613725997912849794203788032391890833127389040471570083493010116455569023556700331798639570347743130631152617021117197607674563784849535346247746473647748736917162001388131373896722511386441098335998113395755645853159001764908878824885493023679518655836006779766958852185282484321770140492994371127751359217296004446811965492761044730440671707173413625341518413531223302913628289754623485361916839177933305766488356941853154615043767528149189433168917446763449202735603614578070400170985861214286344509304376116915328444016563501243445290575934126754824062332187361976813022802457314104390054752086411150815596629951895107994143226025566834008917813143251345007871027769702077947512403459959035498150420573250382741478636520901574302547904662955261654223854819612363142478183638194209842600199216925487749593092121737944340504919955266824162035514583822408453834975390550404663695570166918625796145930664346370197197745995992465772132805222223567918139828470121835296812713732726020129058594614967759949126547109215086651197513899013368925993364388445460573841086291176725440783125477931228821952793224518895501863586926194499196589438568859141444713075673218201341860016246016325167775966342465223355979597258072342865456389868273971646561061387476916656035076596666188949940492874366511572168881674000197239294223081406625862266563045068205895019774355925179492662020105815452524465193128666236043446576676032363001248687941176774140866073187021150009090701029430400851746416809775696264347543026541825716793385487350613916227786769554968706157599286128739458538487423327299866832273998868629786631763414367440044826279418041875056774606814397536397015070619552089778125018679782586124780045437857386552560571783568078342231380983738884569693499304901750708132785054066461033674168081595616308065827262489978133277666145313092598016051841717138251291059253813222021943180682696008434621894798777120549713123139114063618203928617995316333723483832446245625265079537840152901906251578188571954596323726597404329261516127467147070134422352531583028136193883634516184102471064874502013582504902270153336243010582163767613152501291239362673136024596671907751834964914070000767505060068802872496534463044180776081917509243590154083010007997772693479609339951360135121838298493966650317420889578659902987819800845619936180945895159440904600594691503121691905139960257649553710983194709657290596622472371576730296004129384753003113581062815476819068030637402887861039329615699128942563950402047833080106269978552479962764471188411444338693752007645728639119997070127913529302962071252621229958049881944927894748911741723397837090176041262800086972889341099488382655936511869144137306196664560634794685866041354526325578145175960781104197156086927085398477294042103906947497469784805708362325232865036210859333094284216926847919843247035160913594088045701118453550747145472429398672489890774177820362778260172252820523947125343074295626579478826738458499169017009161123674990791229248278174037730764039371646253151758956907032603137528292714445459501645158465168959267039211814645567681303258011369783826296693147767294032728910073363630311594035851246679397141269362777491839439534623717326989733159768555604018019739244281200528996227736886965287025222257791732722850318992686411821417950583687486667972467437401174738322383532569361085787535579379454100452114327792703513510134749999102628512331716796015945307232594098058497641544855497457548238221075612016991937424465964347357436455204582519347363380759138664549320950123936070555284867561044696066813012832558536015975166146324401974887910119593359908138497461756734500385078105528975963614404072268836194027503690251714485148523067518395954880437592715534368077126118993616590788080078136694573383979258461029984887726123387957960844797759097998925632401504070694458624256874433004421558011979166713395401871310280708391294661356523719741516302018911804555899116546451048192030529799124022218702694912074439368226046834788291502485120608002170968044125708150292639497283305928747493570243007438208998070779432833507072679379885592663500680611594244005040794272878253316580920530645924670488143142422116720675870067832652973878107094175912533552861148373202071090963606877677544886358042286513320734422881976630270181895648014360787096884444285645993823000354942185473746025120451605527946410388328788273130740944463067686687815650032718851415281869948431050748297131166501878038953733679606085940837782517619738419895530987570836427056620705251616356259561957447693294628439824667401912982021007044785847553304916433080215792058011548262688169978123765842277288163107124555606712748076636392181866001663169798823191373024904520235224806823801641357743593964705860361944750546233310608955383070560052255367113476291091509242206310616741598971934304400375705648966741006213175412710033748036740135079948787332593157133101823607460794308227912202971109093640747678645649538074678644498207311735941732522021559529028458577972395401176783213272443208965752484092903246250087645519863188153514368916100804754576155109009656675242281577437652517473369451480271993682823997599376892013147203643308198331594951809251502865873826762731386372339893554624857223784633099651597856752431329113297502275371398589294835890656782965876486750853901457259326655357012648359171742325525475782340945069403665882913246102493286644143697131598444593027271423629031855934273093885225563476155557775506334019002554257416437277125259626080759263294837391590517301432161642079502239439348859474432726379871336735470443626194072329444261597738142150024201792465393290043335868044178230340607608927289577669885178618920883761501128953594301297448475080325875229685320304139630921846272911598514932244903301231157801120257824596616956607715892959628853107292627485092025025311987185410764691339691308488172479089197400211379596237691711733418108586176868072090045101833494036288513193518262452929130245997066416059912832301253801341879478660594571270827598281556723529402678363409927967058686959013004833899907797549327730127842909201672230000306470597987267300476405176975983127637630180661832828314741872927009807536981057148331238660050171875840837024191655329364031606771541865880853240848186746954469692147354805707681382849488837649949114861093681324958280139484383196568070535407304320904043655189911525896309722334788522037997298064320530688513153821527439335360400715126389743980366239854021156067416093237606389498448051944055126053399089763925832699254048057159607335262084312140106727960286244889874076176363256966816739110968267306450047607634607766714309583195679705429210297536459604082637781740833907036904246799692109300456301585335083525145636024824747415170558167452991750269945115979237504685067693255235812266197401943812529668186914028463053586302025306291141309967215106565557982343401899700490348562639296742938583594795177521809110627682809858922373615805314967060694337477446489102635947943212922601198865349986447292639844062667168798690515165055636828807312721265738081816492126735071196533499687428940353788792707974641248317010204491486063184905602235584876706656884357656396700847956233039641440442559321981640328643383499921033141522899048401404247995600367459975444911218624194825648796173989726072739008917512525758903644754590580983348464649034354155046546424448752745591384659461339103053906221329762579802906532654560847434866289689912400384202327174673377107706123024350126473744596453875142128717883061837891281150908059409564532614213062739163774150608716463839313275952623438187355553497049253051382298520750370346140622953719064785555140837994009482516821950950435144584551529173349900377393924029429708218245122204591817335457779528261638532502166515921524319475320370886696219448331042343355000343084770086465906489631068517252042464303245406843477654634632315655011643144648574901258752748212102540591772422580768080545584626272022161755614214225121220449274120136417573281473372495906056654522986323936136259623118693436027616581125032011474147161713988647799853908099082483527533578177404548928648137101458738097498231088450061085663153156901980962360199486719525001354112486708325986311540546827783640368079368511466730609888343049755247620754893941831283509003560921350341826464123676695467341943155766846138269302519725068836428820847146539663200467289115309666437514181782699660372161309127661076925163183770887488679570132899369139555288804383339677866528769123282744975350788792130344338373098931213398326023833798767818769730060117550329398306282042820635652911712073111589797461720189012397534758381345957897010708726880936393478968767239452201456154286818632316114101784486215651026815019634338751603192084321511554922250326809018346291715250237420779797317691077418970902845495264013464955756619322421898425456985853789309180449987788935249433052198660902604010057730815840267174341111342334534666221372590247858690308532822673736106820975074389413052099512140529011525999027645553931123451816979388787456048285854687401498872207744342374923796227327267265180141783926878580673092066157956617703973943061321871298388564495009376856230323660272852959424565760402527717801860331886497919063290615698224037093524984760822963749359948479195409623617239234397171148488848199290582153339213285211540337561273060601768566627858372315944472851660272138147620223566849163458067195753464423547079897682404018637703555850725403453322647820158332833963203798614546711505430351000273064734182643254020030918624953628758405836566709282832112876238977042010265482029459187733151115029444019639632447766826874505961110022744631468353463676181886500664084573492133405663484053127192243988761117247544280546742957841882445908021697106676619413908519103131060300258282180988146082932610670161207690727946400065204233233910078116374507485760699773603914162738702083026086286326602631449551701973186576552015875804422220725899727667775003281615920885639248043077035080087309684390103200130878185283656406550961817066985559044472483623583802202741929683964199885165451084067154975120118070352481510295042918827590087045453526305762081509835202500355287283724721820543923113156846599828623113398301479078385851759045937938097189493293177735543878858604070381692259442523002971446528285813191855696041289111296904640106921697406216463955663419677201716027250211760981341504382583431801875529564945627780628331193345060513884255765623179361580925528858165375480261224919152107346344648093023006596330760454755870585858601459384629409751491016285678715257014834757179859402054774220252772475608887652639429441435343656933127654879637784259212862950131536038601123896514745712146683050978008414718592561448956637898203341305412342525450926177292931113527234482804329084875237136637773991883269661962241311247952878888220021773231098138656949797488227491910592111211006137812968679578514836525758333479944025030640685801860200046087125206959492386927157961141463819530359678298610439879879096039595551202658430080587674226752092623878477856022008611304129837032956240819550517714883778558331253083471558484345588453483547250777851756307524547365650358956266462254644026670642452323139218986322723646554098268508232126729438026063575176273753117309689299506449526070728210089875116308276894450692859001351386341868363251328520815074332401623460933202147104810187757237976579220166845970948410494553284984292597681922015184012148922474714394335337189852837011366209170676558902973144162873796665963464223277968808465989491998309768404608907663839399795084424836960096972219886391829215467276646294749341747405372770533132104359383273514089867327805051850794771934198919734708530264507369903674155579037998292313700121563502504365886969852188097900151022742616087418282668560547472140183806360028047966929790910413100264202903117654721304294934879062879371881240564369165058286163319062579280529712883035775088669053312528951072705329617310831642063492852169635091484249533304023315278024665172090991629131592235242505771337956675589680348758120533665772931088600424405500702770174782213733232311528704263763599554339582812502242732320580401993305071046231625286189480734071398552121600651005875306241653420167883758866247331524947506268082301802142085643393076964533878584250400050047384797741496769507677164623631499623810037625219281961264927212494298349318635791610531097973360958543097666562447098303633756125031516037235558248143963564443966041882316636861323659068998412644342393108089467470834182506485391387824371019475156244588804884742190248087848735738213535948410108025760373551118555752049920926876330257505824894826332755849372376536464553904435578591425104871164561850766016509160534757204993417488479905790636766873322297288442045115767743677150639401225090953000837522693055085054929642034926898907774759172042392369684910108872987642958391901457822443861226354947324704639108468710179643859711054565025132743020992000154640339269532389879947182854190590874565467175896058573876520795197336666640708321868144363964345299544635983160165597461819777371910894868039575997786937298564616869697527323972369976916290137544665916718073208758185178413512910481481436675159740230921704934820583564031789616353831506494676588758571588530457962155092184367794960677482457657237506867242076308328363131062382889080857240761304462730719613303065574693811970567176406343698977068241988131070907752756451213720714808308910942691357243463414810616002300381024589470069827868220700106741961724647601192473892372794121839684367507071683953400023280330605870108265272808515035770835997966077483843502017664097354346460024826174996012753874208225330535585932995779363154196085337629790255782857427290538775435155934432289276617283823588033713630953081109487423790306586701624923172006089651832063359749469516800727704351914528513135862485410780171606181854351004481461888114214925963064437080520899117287509469560910538623077272962230210319102473713892196962047197083889251254765897559454395051546358167326264925035967516659568138861821177871357610574969243038811150001810856532948456213683317602393955001642165512270133118504450173592354843317289238020436784856389828835846641004471377727703482724668902834813802536937484817925589558597477662941520472271035595136068260394838845413353335933958611635803074303081354931364187161486752307579531476478663487617902172418826361269804977183326891558192396129547025059060281438312885125158549428772967191157937266071016541490446255118901411334125567082255722996557726758763278786951291803023914331936454646772877069325173222853821749229179791125761299440687704342456223007967896367737105845219409372511836350276480194999391244678125044110402859224461693884847742498830917482707140016411075787072517334794159978931050184437436193435847764518646055398692872021655659688787277341761114333178047072348023878784158364270541864446783861223491859074128321029940161474174254353027177443564740178293310388765563665494860843272184737458971876639326711465501461706941005646413132805240007664840624265918738992626554544954245624865245060267741222900325819017561913067806087807850225793616487341312183828452546997350624126740033688434488284299948069772509236098809366186718793413741732167901036249123874783519355234788944104383583127173719614335607487307138714503703391772872135949234699371582654961008543829292957867337964261973591435975222706233645159912363243338763114231430380981741332711916125499881338148997248286453927027242013144187966411850821520882508313416801759881462492661412964411714430400482387425812465492811292571451374604321929786551809301142139264798428799174215871824750583694519054843065855027028388193278495920015444279143672338383048383705199746256587634697004883956637402502441672594430047432520741739384731500131169215851262079733700595520284761131875228931542310434518491774343421263886597524026981001977211814028240337275307344585687443292758674742829247788443279174703464401350031412548686514489062810057437496895918219040827638943183884062954361802719080151005862488743763203599999657274054702009246669472101378370754877306101886686031585946640806176584796522908243223281973855667532922386678894572484721859207486900138061854257512665322984868712872243532616987862298910708020436512079434476785237133431080597172021126790651324163299124154651873727142683223475165653225825296154364535491720275008286359026316460504107110445756188633980117343678255112065259720042281228813121240264962834825518995724609306457386818821835163329808231895748733145061473487299457842801868336022733794862623261759748247498671684937056278979330116264121844472860143027469155860894521479252649589226335579413598834765422042186711159868416638045744451043703728867089030953520318292103877477256018703122726258863517866253120813968453397899880666539454740389203760106912401030440977852357376905647765794237610489514291818443803879650696762241021701751827792719239023859600148662835104240151457178041302855661452717884732944419045850026091479249070835869081719790993127667973357534458319272406839227870559750697421615667159503285968356790074627268619901093098148168587273041280624616432621646126579440629580537569740240328300244768566428751474413511090185611278339237475028311653990718721861578813053468572572356203520720064958980255772575106610392420768003468748480251848940635345686088893511631061233418274898278489819705839210697588314315692907441198532773381685142587259491057853099666886622690202091409545295898492072397788312088002304372371509447023129003342874014758502235234913669023614936767409425558064572088698567304149726632116779637894207648110075761671720289611901525729700197022367190287569220968624279208565682965627590733242687260309358237088698159895675242265753118385198307969954574274838156760091198056054551278037713261802767212880082663266395629014181739147075022739067237805655513306315983691942315062217627356489799649298987784782225039076660389351959259661400583645164767735198589714666311458722160514552428990241087885864616839747321388879502628551805092731270791055734966851471691313818333077530429942062085442854986108069479149670561790261734111817096373470772810675631048008518811788387709672075281730547310183741554409553465777030434791569268245328219931228459655038176567736105972558906004720038077410779985195801739051356324414842356998732387498564934003394924648899833039154894511682981326279053780623142478733838889335406775685884283652384112619891398103669713915389890506363111055337179632003573171098609275976057331574056328392323597005467176942484029305905002189333016296123995107631680169822583145716241955398197104734617571117343337936844972005391144069308823447781020718012968668067358236125197445925732609358963654052592387052050265858490265248833176003196049574748488425874113214458946496887939983487889850141408087735777936010349571635181041284957606012897033778602223665270972947233369246320551404968092059811871667989542035392368359542585257080429062913247654101331080038684819376283404425129517245453003062199330945673096224655708827247672050962405995742754312660933121801803358391286861361499383955270606555902579897962272549626248435513630729675945985520407738089100430894787279044722306825008446894968108269037872577671517254785225564919034860515299083837784998039868719365939847890714983657114275156883940787169638475777190815594189138580167036635169076802307271975209734716115139353013568739732257080351402737874618424165008437975605580579509285535268672378380986569470448101939823458658623584878235314884195479066205952449790452020872762093682829664425518539618713713621429118259845560709813264912912008249753931806641093153856807154048447597794311128085337494449069653729496543947524587195118595837544780846581893598845623420601468564576374215214167153125793745346034115664451423766329676527064600144016924769121972404529286573463275813602463210951141026382199045021768967403436413405769681755634497306199686543417314063153760812111580144030983780378589280123894691655974458000807341707500731294963271555757709479620788045784580969016457509838608601384767149315322592852191231550447652556566693526045916542430004564458862860493492029478317290426396015714248694408681727533359589063672031115127263302430130525132263975690391881776169477571747561172219440753455140592686685641709250200786454712337945132224648489804552227960175104809793608966248600871110647790005962475909000667476044514742517561773441949762229591128636162311886436036241187752914916756964609310793701247352073414226130562186270287321609529167604425014288273130820475568610890079680188682531615531919350690403578895703329513116822256386721359051031729878367989294134808493123687143156545920383648626252287886412098683615414698082995352243034009585589462110262114544719370608070590293081720899100915733966452148611619086734443169111257722480640633542031134639386130908084095147837259238046532904383038162600630864071051352718951732702004291261813128383478431769694765215711770243899265389066466590735708799120128227960704628216260577778650046900722034372808847391104717470135675999920878341362181948797720514366925426914964188684826866196561305007757921207005442965548921935232297922778079071597805309144491195834826082022129982077554152370619865420809740261841623907785675942985371022001432252766101423704108998438720028687995253965150789988268556512645636775484968129787271469666209015983861892068402471314372748014731549277826785625210003685972909719208988932308989539561711369745749599894649070214805214585655258745257340922294626365469465223411820627909011830313708752540265409039054094283634335608297787960485632079159487662796029848134289534643224428854623334395691690965983732297441422528984314105044832438599674947816829006227763986672044562315326147173539411087039419345927911509289333652214773446184081842032226808321539061734288276511280706413547827896903722632930534075624460992359516252432977223309303754173790678729074620754096836053414235481475059275994317400517459204745720800901429642371586515059640580183712709755156018463193271233691692420935339622311320022675820819259274249881325900133820934743262882634065276130836134269533370099614159096458093575080841938658668595823300549041841652176767793094491764814489212716828486560620663929028462863344481345708248098013892142715951422905469883175717674557410490446772832591481667626310890136500625716969797989965207007785067221162772992630961864385481003490309824314388778912430563225170743023346544631287786380498727456356899403970538679694827187139275406712984434962890634081752498758517763423787204189370800698126995734874891073319199892793044166590322470519860351347259802973403295201043208305898017041912157951094634252133320869649804516848184471810062308356721523957762499890886726324465328012006050302518259532417068780908849324775015738414882361262693387292600837251993444786071137584477981938867337211994397742006944728186754225206188631023346359163775164680901841656148841656220277359137709241009388783361023976417205323307456585652648894058237577919045837923112586011769952056269516283094490594054260966790988885186996880813655895423173256858665563947657636792154872934650136361648884150960610048663212856039946183584267986895920892456632292913322390918494537827795501601087441935455130906818117505821713767837970323034512205474137562393830655718259502281939772371795159922785155909651090888877591606851872656756931178146541705666296557558603757042039927971390008046777145498286098857003681574762361086478975276137360557072284238146087969271352348070327605777923404618142012632165069480660613175099761823051599153458212829159120114498865423513621458464472009410403083511130829152166006629261341030459645358689127644318205870063619221003394317905672480084021100615442601244937523308736316778638315097753487116118824648656098783689648366204401108034081051995686514056224335315117153242357547965425082023365228698113895621583017802875751234263567317355048103629592203344628096338586700422552581856428173963927621284911600988743109468093107483552909940390839875697850797166477420761708096748751569236094833186540157424104562507044759910139516430858422559807088515040264758853162198204978509325779215733423126152029788345499643095809333741161929988534012056569626601479552605645336806666968445345688234375831947639818368654012455629315237171714640144760275197439509415970306100185201906072850404740204221422350129256435317045054725191135043541126924405541758629060110782158407738584876123959332404765233522611499364002985117996213878521275743225851478745664480197091920889821559681797721513434378587766532648348087172182091211558745230905201491331364857047316915487611332215916832357126659437691589845716572449412154792629716420260248745986951537470112438717857967556951651257613610381472410507014033325719953198804879634916908132602583949951236425156292378116897695430164587104181379774352720217496582000041557101983052964136372360825289542130546363494568606129636579987325537665839780725860040201051333043089161617616575087164501332643676672727274323982901290483158930579118460880029755062618344964349245439562449157778716857103564244542155130031188228028057432215370211162404435804831217857278619661115911915827041389923535508928986149624299630568586395474301593262564700174871467929138814280561676700623991780336934110570758010757657332556251453260884127110764201992973478652326630414367693040783717959531626943023115929272151998367655375041123236817591165081223899754631292421951504216894298421101858957387067023158423669915157473907388481295602965557817688671024181059206673467359281041609945065177250564899362037902386392687139951172153627443789986439622267482778305587540888682916154004670142413239949410970552804494014206567249432605977951149502330156003376559807450213419601682398042488676130005158593074902502893246465791053150891590590879357529888656353666729683014106661821648392388351697850939095223523473580658048011101396940091170305686489868784876055583310803300713895290208669568207226884623544296959381235589156376163537013341255925431494497437418846290712475664965332275523410530353150281441578377855840494551702255375654073125747408960525672341076879370802305978035324080188312607398888351489626752258117530113205242486439083754530454643141389511860016301287393052905783673639060613027112848536072563673542547506197112828220960135401410554798978791758469653084063929884496470230611150365275484073442162641332474298976492146378386679416644209306599067128414400209154852746653071779914748216988337176001437220711939467875100011762397168621018752139479994259621259884786065601314303180891778327660827317186152986337567207346372365017117639950558535552455556755030389659878578242024692601255772866179646589938418789001402889162209239396421062589447270979035618184844367888292056357020490961619615412742252300789686606110016803494117237643536696060845527253468928485266313579550336782872917797310556501425008171605226225880296765553203982216690916590844385160935850944776971449369532843502961694028166201748837427558204807716733606038329955723684347874018268099079382884935831221405441494776796481043555871072338185820365826456611181910848841709748790877135354905853386845115777321747925556288043630470516261464272421258857719819872852593831451753042875318174499122827874252582412288589771144418618620445800523003125098988913373945155316082415638557036395346801424672391963207611302070202438525539386898991732689471500140396817744622806100959346525240866545867278810505395391934876483396365025947625202479790845119595543327628457549176628030169936111610482786222454636165121803390900780279263408034457697184166134151034812824590393990023826085760192277752259086685560058161422824251713662277802264596888407017977500277953196856496539149700649349649530960298418199520979325131826194618909891810960375113724740465711674721213558599758492960135619772767666731290067266677399673577147072309262755199137612455299043621058658341259106612660996315557459657233557602556364238125443097508099447624710228142617701821746651590054582679991803661263915471410132651962655925583742912839398994122690428770170175990875874043893946717118583937952468534819702021075167274483372534342379939074713181125914484937505141622158709700244954807143995352169291157156956783743765640810037583282084703793748801137068669548549520612694953427096606399658617664798599080046512713782831887295162559568090725869360322748570002543539700152444466171581261926349949490798816408896432449231301579659896204394034665162435754668117085879667609089166256532193559516483468729072183423652749691386779712732406195717506721900264465857205878014429633489319849607248281168416680360901172864243423768587950260297389836605669934061072130005330610610129309975347840241218731838039548096302336660218966529945994939876038809031842273843860407339914872892869968905339363734391619337256923702020702145751941443671121882190675764716431171669756214801343154084112603975764210461176338383726843907877293788277977311749565308968839933190093641564434701956842217057338568067641812634046415950607751221097294705620070459296351747237325525843382434062576553077609154244300027651255215488769869966434713131090215435193166072661260565726110895732793922639503573431665058886543829693985524179838285829282077365990756985932983402990973561790283566128517799698692395806086696250711145785609624911140447329012650627793120993001473628621878711906586185984666795579573064055339486885030463412895455037575494313866821460039926129949387265494461169096238377030904096431889888067238463333351915340247753893609497423864877161592258333806822517267614724568859917881498089771883039251225918144402712561959339039817873569378434216033796201915942449994006053235460146972120287375519299198113868515761816406653657167911271294137876584635815174685791464584284881550498987214923001566548408011855958485725693272407639340103424970503559244876849988196234420150234545525987310562919481416968332940925803683061349417742080497601436327494294627017189688967059247731461715242660976208293896737823788526850976781997148350195130055176498022326476731361705623716049863163286818489282394637657645957125642870405529598181529650285130707687411824789028594346205449137575644878699646013738131424233214992673372573392984214720106388886881196923479214060438679056291062539760391220662815555677992036799525923421889815322453775629095209642004193321025216759900795033864577449422486292126063454503515253562847039188966990060215492558671040077378924777042868148256318429029565192370140307288067486093280155130449787177750222727072933300465204355336639395908827036461607532530632559083511751780056614964562747224167953767998878896586394841191813351114807920287108243666135562396338189203452073822838482315931985434721583668350609495190705354400633390711956092443654634737174959386657881640740711148239948504309477074918711225293670133853735821122013652224920743468372844525822743949546303468130393844182814231711845285649011530841646608381948720985242759317720566362383271035915947683738989782186353519992945050500068191073062314417966695383868003624620699523178858061695190524334498226085252990643294297814229783978971025203336670609205056799990737205495669760160131846606547532400263037014020995046009397843405025460156407228769785765808275401167879528980025649518586890031721989197221988466431580873050914060223851781453436256451840348445081627895095208779895758403253659528198307641156962050228140463347988099553380810739487905384582986781834622569890301489347684850318406905860468109656157911709701632351506982635120735633826114391776336992359813267868896526502152667087097753326489166898013056028990346471716786222945488349577794939549423292473676573706940266623570248827720267530664295578444656098850005329549664274706525306202112798177395919677351625089665365260989827711074470013469412734592738318568790673776642542762341381198458425911482706865289271129470545459517165948981198723334173512140435983107863393402659885058043930282314047070663097825108818329189836883832048663885509570584022550472451191094105669574163002941975645726226293037816810894957886729232091681027785351884181921736176424204151572347545499433438353466922873917933920565453745345646609421963218101884191716687093569366898528421870616173155071313859476171052859643224066308273987907555569718227722934155608591910475601760569481803507117998247150645264221217642267490737384945376751113803618069086789109263140794656156902540619156500038317304791669031645182255362899701108950734326707970267184309491193064127726500437255214953370601963464369941943425305519713475936246788090030132685706427499181286650260756052341115338354235628661299095060643535760396794475051463069378623321139452452269060231248231453917230561034670101065826688192344207739942925528112333207369229564318838612139648360856507274257929247092495086375706179050731632901205755766630774774991137866315756602219313877053512019133384932739783490981672343431588977087625615586605469590952841039318954543283379315686388618505829981324032507575899383079250817761569329796681210304154714277620794623113878608820871503219300687997519820402475079323286198940295909572778388783990189394424590761104936917410836945888413219798736101231062266102751178997328047837221973316928393057215286225002496970643532484645115972424818699539377990783351166111853039375706902081864778528164253456601261312505407353579837485444761874464390699724747384608184878195412251322980208508313747235488657299430075749441674729469921042931132141250580607455175969173089645878312031096458124942370616420798993720248925141040305121001949942543898360666471225076501535853571861508779670796237407367627618048119798459887767144876681921171158292963150106078127753211245587961389975062668509951318138295485713546293995290189911147602320810814251389700549813789544654437120147110117482391080437889057546249888258951260360386932440613196570797388925663720677763641637794747735655209772090714299687652306217778383093648973271946800130563265042521151445806424160690489153026615599111089468154896519519201485332788948205917443180921695322153627705289670758371046300483743818907390543635960962521575640949581082939236287724339103464083555126135645263954119336853979767384636012435081846263317838942840052383088731531433228949534218670644281399717345852657632633113513057450958273515622361487632844462827831372973132795106890964306207566687616577232161413159977402156517373270167984535160469657583577514934799435529135829193063620708573627571193159420464446002495485818208187787238030689988291645296830649920037513011299020420544686209181195188893554858580957720183881652175013566009708997308464326817766375587653847815776241551600251564973323762868189034225586531907956512005619903332216864596086790244245638549937011069386329752712833274322822297298222002057456647998476264034115535146291809926869892931976621946986321762952279357645744436039065158467045310832855893626808605938769408610121111112106648076261365759052705140098377756773576543799995078473151418025156149202316730362520313898133604532689279939402349788191299403253649650218620905057152100263894615751029081543341389879682846391785853894895909539001390007419459832190352831712927008002711425605612996088963651070171575173279182654333147948640790359906136230429234981746513363948709238687199199696470266484174129559260541427333352968821317929248946219873062845385431243300912226247649171965198403283072655724754063992008547579886685024339308976748350356826426813176165137361403634199494642069458014173818093823046186160119161659419025746966687025317207704976728135467220636118300111274286178720411331700746348703645818939040284522228284700353354754168681223617678287975502139125748559938709106782557064815479198115074858851059079251683126722473129460530613002687171275252675692632666540895793799447377509842040504613701877371645431770615669151906712716424387115382560134031450860105585388335039698393389314768558846745392625545321032248011219736033853020016316517116525059737235340581516656257051640852674430671801629826395821220957185232341873328028483674586990517975827451328009734265482408855057898090485885130235216936271219256017091627944986899230053362536894760019923216052552948060293680752400834433508898491561269913597344183558257719678708790803062130809931728453213583768510161722940605135607471264045431818410291962621535543636291571575790337745153043781773071912917240644101895437568649462791204415631347045606301784453582042078463397988453238554141185575099897711593120658917982730096984348583045475290004722507921970810791421069739746197241885684695583036034450558450754711756609713202606906656312669372465234604466747793497246298250757125730771559167733721402229723037521075768017217860308111753402407802924679839413125704958717784782812709168392316515658705923633167362163031715689195248975291683776161107461232863728807888061630874449662706314547679750981842085510296906803601038045147231903004773910744814076702806819576967568347629842619630368898080295962598436400842409290690704816479845948242199763302635769180239196504216391850948607901394429828697760683374763568615505229668058548272426978036494738617760494808073560036274591556011469858302145550096655682386740979728235059072185579666897526876403225843337411346273338902060737593241534978830315260523691420806891241051209500533943131169091491210675618262147774947758236231804617284960971919332982425351624696444447698144012847075436249743138783056753026110385917964428543997632148069399253372144946206085998025529109579345915601764990407852964320910962095320032375366868283539669731860053763989520143460564467630774847368041088811413937521370379086627769773129517456239881586390477248321543928906751191566281700878254082997471692020579207481642565050183040490672104559167507723198826016741578010552388155616662181911112780622921135160510225279985061996134585829260176264464430782670769540283277471678689383776918957149676054395416627682432640409020908902525063631101182082707572846968753167017506056091558832325313727791771942256930930066986324274509103326690868538867389056254901721426535539103555743339516014956363015259488774497911008877957316704194633777352978200680666362303951912884469163623415533547059432719221312831111307062847356902045210578244359755202991416356350683468074360436693426495742079114628092372031180572763699370017563399418793149479486225416002013541022911967395096406668525338812886417241904585232636249641945820783354015813191237802743391499815486624100081656573794798841725574842765697746656005444609480843190259367433272332761623222732944952385466906704890109044794677090657683022885645406248031291174097014143556493090543565717964059235653776060626429687614581622271545410614961761436386999613774997292811978451902611333992452960749735597829108339156196854000685978710825873840384557009257002035786774134084749348037229795958611222800634637474046218716011298882830177049770186453406994383983446642086978926589978473847680836301285177449351130277396636468864211487797106322592573582239815098600662326488785500590539228026029890923534061648160480765318766777540036467796280210351277043377190197467459667506647396140428968568280420608653768891482875159928339677122841919595811737828780759448225284216382039986097941239658519479304012511778712742876362696328423475385110922779087405491194884333281069745137105197548254450714210206541428004220467447054084573083113077765866734275676254099026114686818377459590235449289540560573204463378739654972035641645205244227250462466963004570483112474582157001634966725546066854402726856373302816356002728922299480848066888277975050906328329033184919261478536927433319505664178084761262201829006586023054333421264628992990100168554643641691643132634273938142830453297836579539224599480247150973670811455742024761226965872008013673746382311968479923480886929868369634005425569917329944764964350593734893403750151417173993714213541978635782718879551436323468725841691088027671337198803323221993611621291885328219987153796471322387400091808281018237698070373808334603896152099024872886168481717415442836737075289455173782429644292987588832911771910540324804237623645540221314048703177704119329337430522879180709924869063413599550513368997343503519973193220167078633255877781896712835124544739009761119455009106779523552216397694153680896546770576528454877454237369612886042723334842573232296408724074034625916614522342550935341550334210856126420210681651276568420021868769959707152650500508977880143224547529058888207150421439128897008209265939163566762617749633849907849924140740515698003882070648084982767965566359732164130986055734784756877162319598869156493813980074855715382900995281352013992443990182747298731256512939392620684199420141308797665958833816490080808129823201290488813272225507372076261394625396480975233508731168095786393208054360595148315303354817604823465112069617454637774855894904087531023669052922170615384268839617221849524904584340639358194150518937817914357570338564903608013595095637489140413323892867057804534679447296110509485467107478551993718219461848548242945190707160511037490695546959606247356951183602585939729677727716359079396294515843637978084932420907859763622315342167891856010144468655557008259206584077700764219127813767979278674703236428449035704291070155788793594802020642417334407102164192785201620255293273618233457899284239303564378951318825267162757951666919598223109831083970118824511348154749194029495425469756235133889544341171348432854365322651889197222743644401888572173018151119857578045423772178026549298452515618228070635806349357926955758338502050295942681712855914904394208021403864620756760444791945250051178832089370627777892166168042278947081179261076315017886155413745618600454558827174973339665975698133939132064915060831991727398716625852563691074908531384174459800689258572479568060882962340010951217246960667632549518724918391143976132147326868394121604233932346055751479561244030604516289102480810016304195583344204309249241322180054888869945969338881430442379065818853515045930193959987048739302404336194281395430268856601588321881269423756645785929582396555463804618213720744240888008992545866257163530081431775566038724003913245064088162831362061575195135994933160265287196565081951086263620639803846258749495576020687131008468895389777755540926410171877344429348709121212538334108190438993904085655964374656009337785915746760870115729753927101018619014239351647141124823915526745425629442133312257777651281460357000655556570240527953785308257393646046030986630657756280437944003593323376609340858844750135521468180083574116443787311857466539805973629408691053576039166148406818098559892973239451721979647752638770286961504069416245115656188065558554948591392776847393232183699556636952467612579706650966780303234255560189802205510540221564469614077454097994284646548321523291953732871047897927282977579074911074733314870718822319963374138515923798349691915357419188757929259825114744382680622540167492880897820715336074187400538365074720658875762674002068116287826002325765490805514954305035866255544364273863868401999341276801100301394982221852843286822137075468198551925073289213296297389761545169356244802262939949076445818626847104349578315388815043586359189372696774842421899483858751533981737318204253213667840182739000064202708265936189436451115884882890555458520863696163698518016326247399317981059665615022102650242570864321780047200393464847003964508250980270022741182188303623524395923921392908582289899320355404628553000091607981496969004681318970675420453765043012834330914045844600260232854926383397028339765043705350430294325197161891692114884554286369325044644582008502284844737658422496233875460886005888147265623248233528813293720655532453607642672961415951410423656766178079181205699143582226211723889779008637646487685246149380531454916119923639914611330247760549098086886858554708899177161742164652176932569823420637818894601874363675658548716100491267294297336986249668742485526863721972537299385278917802695965711379012358619645711178088426676201654355495995183381869466043212610183454938601110962691916780883624317069167262864822231269722515747618098929853483608994318133511877355430043753562819793943338778172701953326576668106307031022971939208377131235363819461157811420793763576811679869337018483297246169951838599849319896849763598785711713311469289498477914630547162015332184294767872239132467064734518901905899183283178992329606559987299135320208933693144539710782520794086152256343648301125996211002173226649323464000900849611818617241876936283982746581295546582278628584263766044465196232163290139735623644203855624426979499017996561110858153332709028397328494606721212730482485931680010434190914813238503314721257463829168260656768244282453823230516512338012952071859639967951065000997741619043708206071665258797633526296591077251997050421489919709773753590117951667733126976059034722565143697852484294112046996679446960968403726677441243870400987264684724570371158657657589952633213646380435140476496278176639239562876385254563324441265234188969417940761604418344595708043181576266901228253206422026288353901507222963193217822466045756304319382082304845968231138690096856527569826963074690814414902378507481041241612685028983421664713634227805132790114023728998431417668320897291253189179006512875706699403157286887991350434220833049872254139783852551061476656051807061815030829506084513941505598751473797808863172203541088025251973576891547751397808906050677216464210620528021303977723027113123892984080515163724588145640653465052704063359762633136819550368476137650160396884507343112634895915140517597258787380784439043764244757749700976233249677726549367086766896101953655035998633334587614773949184796491353478644259269257697144050327134381103709370971910850673837941902939507745354621917062006849245887796344315345950057372002220490057329091310001482624731712644119306718050620466768398255904303506059427796278133808473795079579712266675096879891238515530829468603163311636371091880337155440367607739908662552640069805810231687448356586432412727425432830060432396624726596878436928417398206308288765172633967440880370523307680268182630802656169438157604841036991837394536047569621519739209601188781371335246141158423136258516650909987328148650670710937255635339211503824926034071355157765352730651029538262855358753150965553868358576555686064498757525376749604635071801863100212778171513263727368313504778339223651720427671911681540688979872375794372254699223504525930304506710861814958400928823583271722441389984841807151768828435189113314988640145600229554227281442459317365175788087984756724686915944776337973945680178628897062165594683357762625213113731518882702512812465393767565181031587687968164319391633750387808064691524181580638615617209456828831921694568927101722878645906466244135885119531016562148591622553253364900659017562880548008273940863365254115426091661799830375650550326623463678583055402750310749833581384959766482730448950091901310207366452226998829650298139034150639689654377278471546208195246479948998104495494266340690154557635118524757778233386168405098876944019483549967347642198648521313912730607274540574543868509363639478231199630336085195100867309164493501633997872636965257638328414531210833968571371244553258755060914518497000902757827487520502058979452180092481593344780834560920709841454971394277504116873480911493599864566607293346419074235277610849670806058143586458063318386361292329179224690635674242163237841459046234286780933632330498684907199919868508097098863564439019495349734220041886188599620450892598854339971952354847046320547204159256623844301558145361155612601092976387046198561589944745061277022859041044586650677104028424250779608273038375204398315124480220482811759166662314926748713833121539601387965003416112906483557839330872935030205872518913953088259830221122197122257319837243063601312074185304653053830572182773131359398766321369583921397200883405541688542296370900721258160689019009638447266948910243049850091381601457537512931810798283851977772023072333059838092326184075660531530062240841287569469455593078963248847637538811929144910935916271883396403306799310824555077550038662228677908200081296510748995367077202385099397482352269405875665238457065960765780681463187677823079322925842245027097941574045873308598717695545454989580008772241946283417136576254458896156246805830254241612176844447797526287222672449537057847772182953765938150787249003906570315276545865128333629988851743420165559778991680013745248676773917216651419631372432637728548113966913126398074746633731019771835184004213228454168510523377377072159337719635899441306841963649947134113591273632853794439711451822207422713545721269857247010918428794214593862254238666228463068240341013112134318389699407850078327172676369264878450591621766978878777180311556704742197944156995593443863597444817922014780381164246325776518688651226923434735670950587546190774964769134011770972040490984255918870466194842702239002115748900103486377339957489853082543319914666407346254321194956949200718942579835160306212281199409706229604885346157082359496096191056518286775050765995037267966222999451875381082791626047775805142028152598087540552992986053456433523370302247518020657201249943580623148067432334542249551458259498645742441011548653432394228959174511240224643519746243264749200330480391054896540634586891189483458878823749543975192149845078238887505811876895391770729759533226330412594708306411867880871691377444903516127145859162070964323755359504064525200543165429095932596812002590685660300148478640159480291027445617467601889261528106053110825056059888907668975112487845226013963482712588855844756965189234801142898099012708044845603107029162168485605526909408840467364277173900054250662246751109696126067749702223218381474707529761677575186682066341042269089057554956818451967599266392555618154089125682647480440645493108491474020498785812467540077717355984154994580730741500539142859204033307285429565975924785149554328095737762988617942404031441571806726777130418114889020201948809972849973505322034899392879072844437403515733953128740220852018856582726075889801250398415193328067931984162355012260696093239924950650570913978832540456453847681391416537465610107263744981040317379227677899739239168812810702456893930608164889442606736251739408783083020308413662442632507205415708366660554910755352007526585762255855336596382421231813966549168902737187285811857654620988898940697296928556545680972873007245659184386420585483554563367054144109095978116459806166856812546452632246545800637746983397904288034275877978056689225366246407841217836925439863185789354318497475223788150847586690206429844425778661104300612069231269175139088621449341075839219042956249620823134084640388914455257830933049526601055105837659326178714209612517200767008154562270007735888312871769914376703146231589703823030754813099429791281842910883713522017476132629062267856069436752647819685186493025730616982890341957268192734705394499207498686012168525407573706893924376012122108369438128831529021341776771983671021769392503431973149922186978057411725025505454520949065470120528617330908717708801770889506981409657174369299929432127471777756013135427307937041438862269461156800635541097060711422841465829565878726459357327093711650276926990969774577147983046170463257719364185968393082289254561982271125541544779963547217497571907625826617026171429442064134923790576922228552025372724096531147196244808870263494933725365084042540887904710242676482619856530814897852791903438126821948775126874259841532318568018694628505122991718347922228378043567827001099536679654829775563446196459466025193996215089983508195091017493601383763247379038496709599454439699434888196146880408840087066812253723704896422502742792176610572414733021347326894512430625550588865171937548204883559244915328584461259048056386232570554483453310015614343137507508714204336461514623909286678552914566653303198980018098336814788239931462322397699435557436260602228431395625580940042980469470662044056279863507851992566125504793131360142440298452692002114489076975513762514864506366933709216739320501852960296686550349770343015496940629328251982980833123828310997457957051457185959035213901179677118998333973805946331388713387569607899291644549476279697494339148602838459654883225210902409427213458195456884090502123586780636472937771826863223381685491275118802764320861509595007859643049103902324575237274242104797750596574951177575523681117008988897689360633722850436970356994883044031196713101893017374368459960682281519882530152952854367294617884181239452890466468278789115438435808856466512610969926193250260680307751680056557376102641026716813322093022105100508127419975238859719781321244394949768938652253196411064451793094199030584741870162589885284801323071852942124978243373861279719550663126388971564627019000914388671768959433486442782210198564792760638482152788049156705033506850430553449087515889761608593214372254175581452562510254082961524986276160775720379753979689040774779130332982014030704564419782451191130770540694000376766380836607588730241269735330016033658264528467351580801579614319530390400037789022942444331924514067252822148031617419150085522047053690276107179144627384336048038482332738968347233778122318187577721891456879206865500126519799261421025041364554735373322421221333606380724977446647570851298141528787463849655773079144089661128539088112435202165656591699657766973117289233075935335016759379437758027745622124301608754793107026028873118281525680367232900751882724386909690500664457956302694676006565019239751408256725925679487858715773059937053475943427778160411382870380398722591530664036564866504282420533660069136950960327674389735233957396963460667777889288231014143686696469823821100416715688703841381411401418734786525934280919875729281744426640425298999738631223331353957997161048541787084531364937639334553589111273408823126871896372617433613318650982068123661304901768708984889878456760528580988310441956944353036344441891431891389256819246268197839006757700604869768832916438388209785298337104162126020802616545948749399874867761580861470164543803286560035073334999309649827436303290397505106798437172075775288740601171887573963904524559267886939677229892624517741406490072365790340058148718617359418513873508976914284286481669884459598702030656834527546472388900648174028581496492644275066594215081684402847351039725443332429155722322740553649267964502587883147011652628007191330290789634258007552991413426808590117151938881127402678133787757694270315929879642577741262990493520848816590161403103608796155313885912160096393522010715554041339828245690463064873245631584339267493520859771724924694475323373786716207485790197334435101007178132084813470773008979614503988079906900660055355438790432988567732849305610108841809541414044122325313389121989698685340617803554012550922979801862817508516887964290545410655952018167075851784940274011908592582187876552808148012677248822877276080774449005524951444806869044264739359337404061776916030835947504030649444883290867269596956510070888300967907182961584539570135737680587491402084668757495708145966891586548176357104349848885730744666886508206780754883307431961601541062767916172805022884780638026569221270659321835825798955949472176768942808633079862590008339717405588651824413671329664849757247614845044367622043658738534336091560872858179153922754685433023436244598011479384174151846578389587591157396089557865400450055772245508587651066760303134862074623945499584920616981917885197087211977607817623213043640830739057171646594041569667126161743575587254208280174937854942724238261699072256721647956306580746597312638257228563810604333222977048603079606790902455585993328252795196338457046532790443656134842774525179704809297880827852725942774251660728769969236900663002200692083335979727889166441886281155861882760039465490186621175701106253022806671949771090420745064367713469115756285507909849823952696702099354348961368942033915142296584371609838068663115934260287666845750501909871029034566744903392803791560418754629972575997284286711692172296291810562589564282348630388853451843387197261185370551636193254860853497317200700519227942390168312681328409506553885254481151430986099351005673805503730808611788239947788824000792132723765754983548688974208820760877499895740382996860264520258188115065679486981696995413644529686369731785823695811769068409096136511373861473088514059931534357133756573695608958014269571468272180679079372753185373661402836153894210838868463431660727152711232829530975416934934660320252089840052275963884777712886868941206954313927392215118827222768075281641929497502390863416288309746288621845184086366991481309477390906542325863788874999749362974501863741610451413508452286644796649417403890823587008901788499269169633754947733086920991575131633356310893877702803888454912574104804569462244710108852199394405579496473868381203108228657302475813911015859057404416712014922490026746283473722578507573099278016132471959005540415827561107778552352646784688625584919510007675241774058975723084946339673448788935154687513673105815811113689652362266090613359166255207018941048183248103175183284290973828195808834378035916290217004060071653183901607590849793401763863470550458417145455814013185008591903931378531635179327152805716930493334828446675058732479025276728343515073888102674698866540346093600208573646488372063170497945815520662910781350023446634383964103069389157377131269720788473472447430604275930262421797365898607994250414215706737960408549801971656162795928563533323290635017999902840407991993797715550110048964585254342299093367827869869449430795551330486069565882213540772619825866901463714114097507292630488295543274140650768073301932094664088997923968385833417313891210747287790746071008732191978110978815215719239917185343749260084738583346071251386063743668614288486559452957242300064153877868639358076787155527516798498916774895518563516856994255165652085946996025522987756413037219413390561927211562393371841189330434701035132690775938190379223512289627209388230047424944909942560079637107296609508908164979720056172120812467900718186413783129916394024949584311509053608009971842135274989187908341506027143421916123394721136385417442867564229862392666172258192945870783320959715536804198430928186399322427679988114590602272110985706315783148823250641492591557530066073491132767646236527767960597214526321542429916035625501991468835104768495306827223269609139428096617352899317069538673832384564302555937058146901343945428514479769013024161896296957310736417366475591095280798251541316367286737540363496325699275748880668658935656460943774010893924106147349818836321773399203759295619321330532454535535930383175106485407184450087150416883625551862002359790300985079782724510035115847795106518907901400325309791267908871740704823403824772558229383054573481575051092095369023454575338946849760899585512643746846060043139826537213161286707912643879774059150552700357252734057816057956183211584387718302492419310139899190191882387506436259876679645499021980437368773589706712423463923972712112905418623796788608800995126005778949877142894006679215377330229461721490245076415866380980492975834886434654935235193740453581163278777608296991914989518627827444742952278048438994778239452967735322881275757983681130622736714862555057400009417711789195770844372051088823154047072529490804932664417568874088962639581787314332581142723274447334793780319628993830775738078285644781122409731399694384909614431000056402702791079146393772003626505571460816620964607897681675135269900870638347752452817358815185170275623785057997863648956050756611528259971645558006830101581510181527843212789814445631537915189504058548711655780254269402381625753846048039446855530352472859177709615904254103040859943702693900024426188374471973883299902561391664410808492853771707710483540452978794426028627907245592500488454597694621253436393826594731907758952266025567092328916944590114597972586065696479513325026561111558493106611111003589422128394181530476494236912101479396379194333214243973511777899043357692013570355490449528575651378124949437826551113233344854232557965462166483987049110401357128137688415670052470847016686838383568977924671378897070791435151831499860763581254709704253394401694354293334451356809072569738291541176282522124464338581134704584451189595986932680766480784294706306990435050758152527487432767167252319750614440161564140900134777134445855682488303623501736371386190190603758222277352383317741024676354985705127584403257628502060268945390736832263161961234298837224516979668295206164954118917274325393839514490222879904191961904042490046862305303128499854632218307826947463822938029515392273253896355965584943007738815044145908435592440396456570394888264232479074587409099360175927330312401265366932264115509420898272140806735690551714340915941986930337672541157970384615771173485323996605501799742841873299045120297691189072476809261948411073493751263964122797375170548202216855250830291798868564223514977410341866514075537730157765180090606160365967966252708774794434198160816663453812165510956726367610973382490887826174628427778744191783381288404424186925835959110778909905897721043983636244995012506939196356870348014024828527789053600672624611730015616015901024271594208617799993750602163873716017041779742564019274970033686446199616897653026584711655057182183388959623890621116450416372877247329331309654379457137219704380838938332682648043598428265895967902663354367765459930603712024189062069359350744070748038127146378099074395009698916484327402355507729044444222144240741433823896693722612938467757643977722705696264796446148911535083016917794286270679572582785570573118095032650700465131441069372391256641498864727720759816229982444227116573791355092160181566105217414947260324000287049046759394067284299500704811576770374290173924670590658695176782515052180402464391328771217464893495433551174065465300023307071037910000341878627481469878328190626346728915602713900235135299089454177446860157645208754785789459713607015482716257965089753308478171624133332088068890183829064302635212210862160024253755824191919549021740507094413787680166969274043856113877842472821647149759681257997241744348876858952894762484506968365467420970979532846168661816930339046779168037273171838209502276925088203813814652547588920267241597030923452623982154317332379779536437461846687559619901050910101516479112334869225621819546795382673754549074109068101515972425714043421455479724123951930866183227165415984463426457671964549290334974916225475907564797257094170058705572357022193134895538788066061188395685758896105997405061300523404174389841616832654800868573256824269335340689767407928674900677043964983782163242604032837845268217892761491154156593142787429014193156180719219779766551274823234290086545171592768091642931087683524864681307319063836730918003773449288297754527514092395464321470473056940569983557116808505567146054241199769913805444576597121887639386716538805680098556958624856281872934694794195176100981764070393756555042660499167792250245322704127616107750369369449031176676438969354410601509419209372730701165689334795792182773278154627187605075855203039027493327072913519478707787491969192795689378592850737839286038397737906878937449697908672329971227890502218571659199625115482799299196084153666897343904389576094097066018430697224854969036598727149667365751558940463905253526554898855394594252516226798000135365709737325610984390632868706083421989273361513097474645660839789850773526434601722474253272732134321398093624136848972718960707207847282756642158886586295919533329482438127205360270284326315307269781950509473921569965753169636250508435355213527603857413118660100837636972227594077686024502150890906018858248308931186226032585655589657298760359723792349865603613182276594086627820748683226721828173706656269740353386063149130055999534524509601020792261076309645865181987378877105953836008602454786020496648731650788837116661232557102414693599172133637246419231305627135398047709632207817923770564765034752517887244573078345748489347603997453740244582322185030688881992452428255772251499107581966072446840320632699216093437590529806529965145504224577002424061704739518532360927095117777136294279421140299535164655812020376918989341625617259341444509263343270204447449192208627022059024093568595535739467852634617236474943329595645805848718034804154896055162306750903115918879191030116655610486923046176544681717873879171430250927243462473121248744817751536685351627391153689996651835054825356838618737219683572385538436421720675512550631238714232994981576453248385456692951206491079667412360382901228283514164147912349367977449909230657785819467502104541900030742228380095274107149463710883888903331823798440753486741280961252291885422883439640364348489101253631367237883368036409148220446548953770454287637781374280269941687515178054162641792961668219177407793823653585025830992812822753960831167568825689308460058985734607996811196974629118906796980962825865411963375170267537380677001954447456504442675396994595953009448922653527133346477285079153908732011952139198015190748360907738826249030669039954048726820690148945667021373232446081712837520288318852781331779040975896224929718549855262143766402723428595279029263957671994529186020035594488335566373831550321999019053692876128500191904677905404795493602440072957649168020822157173318057674325986754179349646182747585428297451694124777005914984807985689008992216395017799057249111276697638371026024095867402595972266558480941105951383022646736290204622944219022926501249954853838031324496551510887554760361002399368425514787031456913688803081720443625637143982428670261081790983488316200882353169758098556614788351237166525849487311832726894852930362258040222849044546659386315019393204657819735040464091000129329858182157459368671810869216400581226348794046225557671997449790265569650831706807290909483429413365089360134938188184847167182926712961759864786702817774452610306503139636048541185544133541863033929199605797805235084542889318258432711307184685237635614030601763323706542157094717432572868575971928537042626707418834535045751880747327249599613326083901904772937461681299286031625077223302195236138249968574248189120972950582243044401556905599464688276903044473956215615831453353130618698574328852683700820337287262925719756302148227232087304822965953299802511437345087750654536400296850393623816549261428281496500132609618979738853542087317845870724122581776278867010699956152986170249032645041200770731048208964150559970005385356868434652695033207644772988951769619109887846998470444648699775091461033783674098125401815397244296069922982218831182678574015810350363313883979966514244982486195838279852635088789402481232601546163179980719256174351133253853577130542733117477582208644645516150341424899569568029136962079165946360692734960051091718202025013890784160059918847554662140946414676058336084199930513456831671184606098875268614085521337039897664648099619733290009165784026677791522535795864239916978258131644358479882870749159855462822899963148571277406870109043451655713651880222763787289849697247035459942267869180966988201799028655381239069825358760931457770166249935598425741511966713622882240893291362473795047055613053395865966699447751827601451945729383256306499146654648116803787724496319109454089374287220294231447432897641150367748702482407652268335175266958921072791035244832732487197282011763966427393284385959669242863337448410741043564806056109683203446082066424226325449530917342470256472338701568672719011925927498230941439720231215458633464596960084093004050420199642072914786722723380402703079652941200438299802779604544274079615716127791747912879040368843228800916389480589379980405278355155787418882292598103043440808857115072868157425510745038932290756754179651924316114699811018327657383371314454843849593980552513283153142376329113041148610224902675832294344431730192611047548479189897276739102658898565317632965072966893079974954743417964906288128441147940309638331636098005997573905928734730816904651047544012434410626033840779529073456653422673003080999454683623251400708756368557319916934970773933529261448535671671278746815021887177235272571656622422936315289423625432219686508358638053622855801829334676412388268048379188092398939498612990995633952490283322842380343461592943656903481988980600848829271187033070781124552739581959831790099587946222424786512869623292364916852682609696013022250128912106843137674436047813092682478122451449444650696369788791857814837432263259354624589338261789172881490854966075395034067436573256945456271576101408509396262210706450283368797951968562689355021820433575075459521294746627271382738757755862122140524224677358095777296058010626328416644757022546306299376205972854395137581957248118479808343400507616919839156464573879473023534593250286336153667850292483592831890314381304417584489723529830864670871978592486062171468524821841449377316464786078158273991696469623333191104857625275373879027193546261725086183979325408288122719425976622320666462149623390663618564345802464839878724472428776459848376469029055361544033155930877680218382974065739427398922667987244657154288820089486638115969724879959277115694191355054896835860830852623452132628248104984914260967761224231694220705133330287369811174071272529166449739577616691978322505863619031322483966258730165460647976914847632831592178635472489146824049255770487027600987771412932123143567518749475850602200550723035976024270447356561515921314379976854068211051513953281830959010759094442419721660264703492151396635121739436009419072055767530524589178918010304673432909974621535579930899788824583141386619149801657618224666953929530025858661637478136329761247401497890191786440953264533234950476043642844557768130830071870203058947385502796132592904569720241134155832722678297267829965634423422342506527183958044203151358997240656248909116422344039042204485350763684604481399340854153391339825590834129125496148619361108057815878083441412137309965828091202176658261018877497989542494304958028622925504915563846520533769760043426891216612969031970720729435787818772492935378221693298470175667483920410094452220914680830051662872673435669419754659465341929908797103003875134433513000543137917725110480278906465877314473280025840322544747978433498779401197769895102975848059378632103802527883417693076936965984464422134772303423834438925477503071750692215342409595816100547693231849881426133970900475526999515513811435498498673951822540149974941995374296591648422054811071880019594877182255791274169798511250510752556540278543351271764008344228525244695774492756845195699620662220510423102672587577160971872459662431713453951729590932701454909616243580889389298347498997710531093482706033817383798392706239193907927062820234386555276621741458060987172584133565655101154508940910974037691296316564922637610597657401875912444281612406440334255659974652781976325071357985609765366513684619970202492336763334524502185292269216346283867729150249059552238216549242772413203455586634358801540824247262891317437097893459609899337122129886080575057031008941220564778271855031061591070842665247326609147589451191224171797113621425988234491668965224862782184442776245504810554509731587688555706222279984622487988492091389869784236825070822086067061930453041800302519343192166381579591678357971417733612004299978270892253668379385692192456040902176218035926187964187224403036142908055529111703832173486754632245514992446911334672182917344276295294007645801779164343188972376595007494399807342841515223079792790029777470389083144257025962352295803055200812385989208646966187042737021567335202035834413840624555630749127669945108505159658122150593157593921523991552844630843175306354625679810402319989689021870295010190788633843108867765293003288520587276682201853921044920560777283359774799035594740978943628564114929697052988734699590963662575563797333462006242110210733840779897782225785632656003897812521782957213748294866600886299870867579828841903761761584207322436422101988766678843864526825822903957574413900170794942862162669508698721851545254912071724623175299274732598939682263181181175501681308441956765473339241296519468897961287422154460137207995997695504472642809796535153698815743387546685517692592656904132972866883095151564446181031863490221302068381120102571032850276496383714295244801942411537649765537048378182449814869827047844180907293487723243658409179206894277776035736513410404985068696305834047751048148372144740194143514868140670781567662160553493498334206196478837755827163156693458763636211256429027825411900239906300032817116828380940824781028474870464148608130365825310349646667482117148332749344515949616942631440219958911025162441944469887660474387589076538400371126263723128032266945480989847347997873127738710603537629539360879428135305815459679045313144252568323210159477887466703152087130166163219753410028585913304713825540601139052799512034485736829375096782846308901766076862275279281182015729509858513723394857678398308780824848091150275450000281166912657106377058658359839088965077058382237416142687705876710922179901402331740229132362404587220571951982255429026777204968155568730425622743322699637562235484532341820077245956466858261822491096668270696865563208838526826231835383445200770853463355800670499581397059020439888830036864407269591812802996044812153567464543330504891212281592595409091922105067970109623798006010464822553392734472954663547916808918286417594515108360538326832774629958363420276766219612123805838008382253691305017753894844713558410100574654807521100097811803525302264660349063230413736246645487528535265246142173600178766532325397665765768883002400279423133692090207156331359765773053001111492976787770597030535451309725104451785786777317911376227741722042812965784897938533121339105037562769541057297796909509711712497803548114332541828231267408692354832359508080566559338926556727237985188821849916630498649030640308294256949634417918511742685910624470295926000738235558468470770486903904814898208576405182768370734258162841581055149867650691579757586183051386160248398619335131244410740143608266304913090828890399195058497945955796482807657712452425428494285787248846288842570480298629855651672534994147999971533593808685598558358965193158356215430184440740020217008608012158470666070744448896984402118414053910534432635731987311947708365502049520066292339578478398631108460509210229067860641265194641666412210972945000036029828169828466052647928228519022135183847181762059295098174033134145591189237149388563450829901677973367520403535831332586351241863934085195937514933506016925170240711276273710855536300292953449203327341489198042010366176470062996351208652823489015559475309699722280543212487088270571414648036420600783721439499251933874655530423631923142390848820749789211917446614277248434629194403303791652806598844039477001514840522046839502886476338086434364978411852620942935208002495237535601802621953978742981999753005068472867936669842787571382101281309345229446845113271473490805049844513860456789106837887399735462198180911703346672460100335136630620102879375249354867857768347099184208559438327674915158206688425797776859998689840461883120747573856863543749107903493307319448864716157174649294291950205251592928138863975961536216547678778517175223098292382814418546722960011364575196840440867916102579983271303258406949786812291476889540433827646973634629487265317779156549023209887502640991540632588228645295172108039360665944441638427073594468722509672780238143775359290554158201631812074449962751838018640075528560572395942615944104863975996452375585224890537039749609901545392724276581645363402780941653184600492942646569091090462989564705105413629464456331555652568195967500967194391427063146893999766875309988780418528927576807888012395211657103835385400832309369068497181197089588747459296381409401249751690421776647390881112870483809814834379482188019083485588400517642009793746123350193935293435575851769803246628678716524186049961574844535285654197531531133493883332633773484538271954319099260900796552741170910135998320383290668518404888078446389576852469227161287498070015623105298819568890516693738251148012651810127178180925812511558710059169435799842172871580023510661487797859788248479233422072253983388443588041981216172073160911567721301160137685518538286545190080194407584343526755123263223787324213456748182359179847892524091014575338673889837306857135996173610070035983280858765077883991913585063432232521398550914060581534542102413975310646977089076405370165241785609040550591937047585091979343480922784272423243979598817198486914548298895799868275571683087482561215311067446712069866288005752423229517925317524057521726506555802131189119349395223193406840896722432064704408353017366436358324138389707940464321706390424682381050431692033320345675889553921210562180078730825291615069160243145850199002798181768939533146435509178831520789371525037205379888990464789275432998835246252206185915784602401509476472117080988845800371518047450259471377590910939226288605476617179869729284700656801835394363830940062172170280506555308780198450457818889497225708681456801411438340330105776015214210960259120917462964407362492653472521940194070608649053388671090091909786673563296239520784058475451962548155313395717202483405373002661792215009928813264771004253013521298561384985347006866158711115925956154522021369590377573269752228668525569888148110622643323377741189880869553245307128360628611741037210000934565282396442413818589881059319432382504290978608807489717221098875393589357310387163993183549981244726756961978237864207075084135262229450646792109362621415908163407504869046800461213963909159276684820359247344548504191498363100059867984613997184064227362297900400985864453179517191254829202730033440851207895746840446875999494518406040701007177779913518795288308764781716844650186793110173516309358404776824401941507845279065743951145956269649661274037195814667615073858227727677101307217216220771950652907516795173145000640027482911497733568675420346810757556476927068365324938730981150788916724195833041870569186009298078212375274223593500789716612946027453810738022511104090134139379792809373975493246810163671088214126143609336688198107245484439272915140049247677855880322692115449428911351590000343069278419996376564043648736825228501241880298421601286518818645578343892116243779026652772247922577792117405189016043286143952599029789112545954856559150926995919683707296723588908192768210222100279255563324447662843173794323103083698707075972756121592682377886867276480678716473639189420424846418414361264520279159328140661864426700062771268333147903861939943650083191726270504265551515293568577625230333027020086423273020109644792284166041835388269632080426344383570575892445588266120121179334082360378439318511424015003974914594670443735523681658184808996809975639936593862381909933133206998115619833601877931187468382279101608427404614184816568576957949253611158535325342541011408110351815060302480029522626025821603603821693224196811291539337735252405831778458299992530810119146945572114908070799448167557520375200520883248207321705712151790398528795295048063821429952790246828400139315074126816584298201314590286366585820453704379585974574193622446678026050167574978010632824766073736426600214380759178253548081463832916400268246585488471756283843969953601385164960548824804630730222055129758062697222906067802218736765995504358963553826574389137909799541253473761101114335061786253823054883797910715331822431028359828862658376049705327580797479117055043230311763700122297646339255142556615102167166970461364479894327714446207935766900374408388551205215469945184485397807972820890716355349766657102562526123616968153648758463230381751645950895017225923169388917909940270405907316525817039349678147424135651349241386135751716143019338190021406671703246953384382518591931807763665619984640029998022797747797203093296453788361274913346505378580837750158692291665895374028436143762308917829114217234746099475809498639049716328933814163385947119826454654951601812214040792767918617114378115338891972152636351503799718039010521148647464624128684599808104491671451382107375294664424891400688843636009173444783176481680178849829440967359088098800568721924812311162557771691556831959497078492785788127594846234883481189282525401370494830282394488902746085609174920764200885381089856508641214800130325950191081402526140588153999893815163055304811223688904197651628992718585279345270381995151450494410094841415847867924302434034802437205990997959307695937884073732868066777766831940295949214655085501491500113176441347095969533089911129608949911777432602947908461662085959476103406082676774116125979232619321188751617474676130184296346240208688018643277207753356131191522126634175395033063959815964462541663949454843166330854128873872314843856871984913491978400231882225859450959028849336985081493557004819001854177289468851784106059096168298760248402074026312633460594592561345526403680053051738835522696786630239067698927173051478352243273588981564017236558072698687331929059175786814704502227590799386337203556164798177620161266636512445382602305781157386230569498087787347330028092325562595625754902716366922750650426754473661064707421356851619095272224495671737607943066992701148707705198471644226730706279719355841528250655624703056566631115777946529034496283671718550940556639833100527443433458625060075396589120061739502448406913109560971011364339252137732199821689748938008119604502045802696101947039433836250910311591073949342650702727545128405445317411839709972505850599749141478589826225603999023827664350683218504591400537163828831321815483169317796845477141124213305418061599136970216381310843680321919633956665033584534921464705156396193078197651612186982342631715584565748537832761971646986418370777479081130737276830264657366870567675488704950632092026291349952481323917253898557442207454582643179975559290312365733130036572168156169257913557296882188196369116198585534254697243718585772222234912931575735419448942355924172147148306007833096248420762941083297889871226641268859889276341817414349754604200078347775073228264868638284421714870819222360908303642915392391295461091165762541484683696029519092451659556995705957882702719329966531552914056726217256560528225897664948708080749899539038662093367879786205237205424864540488700039283693769074839309045447486151185240579607355617963782787963366793251266146830160421669700832581442429258458565407231756034001821596470276414470835956174487455187231539766464000979633902111314708428060900803308037143334104639962447883639463124116607165413851397534758621449098857938888035106910549121712126928661896997391367539568647834570027005862088906701945638267314306172011821209678834940773651665658023374098472381064198607821478857336674180378404559258395357658462272232034967369477002871462611062156380821027807717505701572703465270586518172629136734925284854467910012853174766091228624802353007763658827383366171824534194965676800331935129275972984861092120931141692739812749058363218727289246138652154305759857213023551120789806819818369665428860682751478419403668340969208664936057731111021784210243687429636281421335911166912472255694914852809289947626364277052978239597188722688413354309544861681758856992077166563485385935965378300734860431842680674060189964038245638542392785149728075776306082421572355348362825203405588488424851607091808639461026665267673142843966948054119201894268601227660334823065018319492710406091841701639906855928205833870082058155141365316353443262663536321589624490471645338905716312170659682296246188761331117796054583795673007606742451537279483384055921693995082583788312981380255382122840789903873658690908357070938157888929043327442538847091887928889596799221251936452092755486487367006328376593309497547664504031629642519987524832808516412979424336211993549216412653481920469726877064890344961172686932591108308240149693156416248024480673703626889766732755524406567530931155539164739084110447031982741644947877965988597628301839228192468775620691426073155654277297676208557347666786712919049522848090339230974644773388289306647942205624306871112660481856184983124798849490932671282031413673530261347749343032194258480668275024242871988204128989897275710573567933417877171504528443035798688174421165931542175033844901436970422732224352020525357422212313188607931464256495649710466392219655426841960460023401640181480532642725582555870105421977426565541238525700029731099218046428559350162747849769887584173671577202285506653227580523104236082155279574884774933380006033128919142741118902888149154770145595427316853297459805113998999623301605836099770339058350567547579789715076744501889720603266700994307006988100649186111377735709058343391023968760162011282929424848271774939780153673219502408104739043773038413785231139355342957298297153846866996617672824657718893264882228000043058118986863740516997392272536432566042006663693302791837242196968627506957827910676217963504386677242866741178568062500902671342827651513664583717494624323131541164166894226766213933240679642935140350231280828460215669348976875986623437780245187104727154833059459342886331309339506068737536230172842604496341459975460444834397178890328356471773153719480534913563999970814039472273323140777240472546088556330843477788600424949965244224734690450051478881370983585594792271423153256992351256342954972990490729901166374231672326492622309436651289427913472449359359648458306024798923111519788945422054184085025193293566315053165725920496360741233735300537784885667521873499835949586006346562546131404452913767987358055611475145834394811453979334146745668971101601193169037855198008816277178751046660916466871714013214124013467452922848553425971268880408182726684060737809289414463676964174305864988902171578770676110762350977262578438870727335262980155281585498410868156242607266512240845483612700044180289909028159116900022220872583854194752703892909012750261118685960407968488239882485774166208875392383599872100360668357188842230940869643583760357615656777545602689793585863070694936183479746376168623529522436456996760498258267629058003948937834479731844681528142748600418449287462227998667575506820851856868344812212773501544783808519419362178391230345423773231341349438670191798697690494913185138696631783556488303281786968348525746105426222210494091839435711477417371606782803340061452554292669381847458793374463156792690180617068618053392430251407136674110755059318414783290513095510283543987484627340219006408323845728807909131997780763503687512927697061083802022783255219533996550001496933807487615226470840291092779587338669798834145802943503624226452215930394727665748447377924622024406224892432984150956982062436510802471484308877992380202398031434934523361425437422606437098961900530761875131897382179483379551950238286188681708445416984513370740492895775846589050800997603413608353660563720328217729427608105473959963817259545785510344949435257301655315521835978880898895481789781868934709801856392878408306014702755074878998915690809359387312388244837954713414615014275339794682236528563150578231143514497267443622614608597863772192237469785455808844957772765875424474927370583697342928580089416048717417045805141845539539568006916359453503969152085985991003925606213300590867176190922681152130236307821445987151096537539096818238994541424642001892808808394188973653645366997242122171010875086859133045837153411672480764535892016518011360032358027547769315073863361095443423267808817403508122302964119024206964458924978634961878026137831886133279591589733816568066230793574769757632717142938966922533993218160540119517132001350195182450761036266975337565402207361229461474918122054456078322716020049184117727576622900282459918920638403671499050805807002565611406288701986897243081024796701559034556381634295869309297893301955160944585174251043375087398290837298985338579838404510342508309194155432565560297524493898882217526998426238966843631370872303916377226108660215699835708936839313134472794056234376029433826858347493656439850243930100991547245366590658406163381760154091456904668142871572957489281899560929229207440153067215681886701358121809858359261609952567808993487658493588567477150875710771870317169396926838286275614969565652021038908474403757247120453837439314353631570702462495944766490317191204031613572848589437460666005440114686001920370051927943901401114508686880199395540448909234865437866833974186356483354199613602793106462964939140409643127851428284829217618963457787943836051006267262127467897099922177597053173296154255636055530878570024427149889852225643076074360049645709788101624923570160368756909437374161186621234973796568539602310936843286893793704779693319974951061000036813496472744583504406084230690449641688313323943250785693580600577015270805559063255411263438722062509955565301603154774817635046102740085367832322173981008215915174984612949044620310873763044989269775746962060988352079535597194033681464853607711258222831616609327648592549177623749977753850389527454912041914921623911994576775613454258856079170043356785626359338632703224720210401480396380146147715614916022300294943438344011836379860687140989621803223406140214870858858156546905933734752345833036856734104281127223814013699204246436938585948703508551810647218385256750296581390745827619715923999493397733349517358219876870558292037916436516768884182285465723020965479238451002711507818235930470198320851272682160525207946884174194587183158731962032114433994093871337283024183784982279737641218898387049816843955813893043413890499657552094924295957072041842980043843059792554879636080551539344955952755438036515551295980359763141248542090077586374295329041198087082065024067355825206892593101187026780311417830662497037921627859380017206310961199973180495935793645234069003635736227226132065285303209092480753347987057196938905452493591692406815788576008069477485425812954667256587438689024620656216684308173823209913639576736151795799903250571214426584904546399624646956461163516935633315986061245173545348130134515620270509284419152083835430089942635678176447694724990500886896359981363976078687979574203114769493297845903665853440153685394348438355270636589693815980083039164719225767452511529033380255129292730770977644206242297165499332360863509316146961313977025376226711936551610637077574457381747479451553287552708475946576825529700954229056652058737809214191440288212180113389595691173618519451974183549232018045045261930306984756860589827458189961801950278530291045302448837997395260618249512619124411258068184927034285794822371564549966136886586417067004915261739616105088142640813337091233699132057738798106351990919959793079908261899444079437803098563372918632751659118604592279135760186275456725715573187031890488780476365778897661700166245654524987032334210223676113792319080494915241681461931773624264037710027291052782893509949525472531657663367292339467133617983865614763031984465393851758274801639247705683682232206595217999790810953414919086856339805844050118781439205797154595898752104484731660288206363007513027362938363071514886700412066523273933882009922475958713677322559133180617416636592737434312161177091275947400992453176518822919754677877813162707335619776961442394307462097381036193957482871363437906021710121828788963845750037450481233584300764078501091330480890823163120547862469914217545112957305047657315405439460466936627949628540462704289085244789023133043708319173082068139609104876055255911830495313481343472643268274846731200461220507612724768867958117372770723834043459747152357609386772790477971992489175045308203576579315216330512287329188234530628262859996051551409359596747620077595813729088190051085821721281916352132759826359974829031995981185425547214457191381551507667727602533083633006127380792732619405188207939501063510484088824965041541162719514406607089772972631514155521541575772878663503007020225527961254717636970134386019094946250043089013533433502236931049548563583365227699507341203893395048302330436431234753073685092459880716828356875944382418809417017947135726065499081770767314926423970881360055460064690133308466479735617212922444589107269296495058924047074419150129357291016933503107194419049700359140297844398951606718792000443071119519642378921841519585649890826714581023026691150751942248214297564096384541643956985063253512786645040473884341285736538023265051304629614923187787606279421798628992506476703757941727070267734793138299046088452243510492101410315438026183011462944449031014701097500043531359284060658453564054709222575042802933227550024159755199521359535025365130880257673905942735687313615114429473098769876788784199731294925806358685216584033147426886765347341421902398935407632746692886901765306739953502530581725696087771862630416281175958160321480118220446892014149929701963722677907058248516017603853569314223758947873989834702555540089268888726605351402336699355466113107521285289947136553268638405452926922507749344495373186851075037211837472059263936418571233428525883003953077042891131701886994284995782550409072303035227089194889088999475879363456480469730830737867570171373147837012061763453378447916215953556661262553756579240665366991495779614949572524708602599056462265302343041375493411803264969119238227085557978486749983893805267947933181237456614165366149175506308974180453520275953376776437000317828464718076307797985208131843349822126996801284210290872217358042342117207495628364403222779524957032614489576208082694203667481695665404774249330816895116529640882935216264502396850824542119778996180448597717622350340622121779385217910188737120737979640389640344917528497490096174599487524866944973250243410684249189379682382559598272951527921122284540505784535545759587275859864238320509247644995700550460137975500845658844411444740432793960759646757272495120523437496535768022271844671477325091880332413443537939078094552723924462324182618644464585500143907364536725437024596700899669727918818402908567436285960146831069743267273507008800988319665679821890518655806077532504408915202009171859112374833385550102224622462585249917232850140966546411315867851350583664476826521956298119945163947795174570265553992363417427259798490925074156517971272693227179650081052355222217460182905855721373812765717159018712183220642027418574803281202811296690664565600842586247753638313501219279493399005997283092566151314950126030467051091845123263713001118846000686225403041948113191695699395552637125838668602742147473772953229476942755105979268047030428353859670681728430216689146575244321708729987036164431743446715294483167789298604278667570089238874795028033372066185976824704885538191995136741681131226395251697993016106330501520136694292376170208155484641368712492192413739477017631116467197732416623961654602700134273010037856359612614699570438291212481160502235229685469747769654084503622804520824473424248750965017434412209983179417326363417261223629060082323873472355684417859847059555935045717314204882219560674029920558816416861746468307235581462238180372611588394085550242317164221352588448158391080788082786147881861659076416569002529217474752565175929933303458255797182776066293125272669980713013108437526498008042351819653832440258735154141840283831180714221844843694383768409911938511758906805440755799217362796647884517768569405805881200313328667534647051687020671161203457086902296976333600464568368981370327191522005735008835873864514113359355890296061323684536687129084298542688038919422397886079902173831473597845828179182566994604192410323265424357882940900658306541470613766948228165604110768564076204357034231284077564881891389286129154580770164778528407356729720099017275312359967472307846197501215702618025748095615017304592301236727402659300413583769360475659539749376979498682560989825473603824030303705220005318480549017276597936342310128258313528101570058281633339819165249540808700680726174739121609765753053683918110501031593045408061053378066776515090239427878548857849639863567540574068776924858534416483839653384067070253148149667942862702029783450203830499804401168707552413067002139290498996317547296538245324068986358189086506375987236429808752065010582528857079339494876187988566942718970599593121897708915825185098007465644382369661667178685176130704460481911234018249584546665508351521991467557933143697751065553441594441169482453911833906828284818911024896761888730585619901069782942974658040709285146007588426672493187258972135981205152647538106538008134025417991581815433988731590115275429916407993832474440899356606845609464218217588694351048657041363169920140853034973538017032334128386342527178210894106058586411900323286438951460791171458080052839090779154324911610546598182268917840834180739043090354309020341913672455483052715112254091867467180117661327192757366289326454012269320555638901835113701486478299690065512158311387337380054186892143620859492155317810441646683593526471514821213406252870300131947892915457194016327019456163925500407179088338157990568464856167711756560844765282513429522271133222620787767860233935280735151527415795313597229620484456399728301116525083907235548838649531376067782480193728015898300780452644237188788443877664526530795174148595589960974545168081650651597211791791622541535151402401842878402589127291171466712676391529482861576991423080304003575255146784270301091247873288544653325392609750452556590875546416496543406089853946918740397835636326403361560983712019600213224371016145856793880032460130286734704748970013657305912818255576741961522228379108350788895174085626603845207174159956263563025664762701868974460188596856490466129952772414670214332742481970863399585776600203962098057705544763163971793409252255260375036823670718269442180196775292623666332019271319931939112546180480115609736377043507759419288607326675355231266844835632815792197716180241601007784678416430826305605676271012897402080314327050730209524792074711943297646645966103227466280589037097655143089468210956682129858786352591228019818424028356061294203876210569853593458790166979382485389755972263042137172608755749731977296802702672526755643180392075884141392672978028765483304308531798814947056704735552035723699694914889813657293325397816932900808787384616173361481255408296451483156743744036654430208684556687184712522206814017632575041249691319789492649713348545184981305331077408584806580539357140922611802475276478284124386477818687328705644360779521471240004856379540520715867060469498749716926250826691771664397361960847616565546525922830429269069543037936090026025056682136087850045393380920355168227513796920662285557545941221617484576066386556843347397805283826878635965356429898996477826743472549191194275594858572939007822861065737241783403289822321338834511215000629793075619513241468201629474761990041268298079431665140299976138874967498942993194150177335638965985620545088042675967921765661271914253691152576213446714742878193989395609746687669148845215490914351872912066867626115997676241292611780685524479327457416237296833177167595037458234345179865496804677188503086048249682722841135372489442351530719607695264130675102558906698722902977990076815811934697500288224430269529465994916682058571346842501122858049025173064568914002437360269413945697439803259888932889889148561131649893620413941339689299844091668037033903742101281637006981210034438618289809434280384551892195835041603143638676905417551167246480680976528647010490777210268043035260975939942251050641002126301922781858488654613800317142844655649874260051173512335657305945789269686167390805760933192158642263755126904915979371974476313071414430837007933047936295640836735477124190055384201982966296064297546439367694818194837250317279772704571064072192235543134281960986862159434175604489095486086225405467774037994653147650200152013629159900946225247852693931171893880939107658485861558328410311043106080470225517164052804265973332663632418587399650416277612594994350660704576831319062740635140286208955661267522180985634355730615553022065620978431101817380162307142997143404462262323729231265610746444365206281104700901054932669187479849153343294298405314108837913042506410848404352788244557755395682168718460787975874185664297501421843683939470934160776679783853290595600127330192877440765190800837624865456879408905855734993172803189145406082997482626305663455917884141379285011708177695644313387676403387289891150727770841694596054748458964382093585598578380529342912609008865966057117516271973591811746667156571310822568752811000845407925631207611566990207063550304963011032868848662048978951430925549348651290099460832339997825390623480381915715644547353320536699364532875125142979388953499813877679856387116136402368726253545773105911789045499955763499837700462440636041238592181153259787695617554018804019039800173966891562691365506969928316978363292549039069474182381817863856022061116315213864941545689017339133181212783133469950394987320021004476344124288609263469170680225471806319075733684967446360520749698298970058018975390612666745273554039219485453103949018836548821773556850553174307671025588390392244730560651119539913362284993311904174953226737618985472340044403817157098408138260643112886807982210219615269647495139159308915862849538007163140670454470298511469020887778604094679764240244709859579211481857355161535673077933162660115704990553728688492158631375474958003776592798389154913206510036344627671410664299802353713350810917586834963462705122604449322337713739512488495226822200923141712922464495163673903086906719725258710781222035514175913539226698773514260509629698996285225441537575940829867174895024195319659470368907471700793735395336830712037583596940885229250831074355221572845668000252537643030942596122373951719319345543439535901007855582286148377717892194086573381073057496047201686473221560461788312156322991051382213919803084779808863406967462034708246780022948430385916184913248546689675968706260062520969243229818042831257776745822217236970284520290608535408372135935665970757173216611078203529549057068038056448818624955654343381316058882488117646885482568043686297499736972420740136433433473145365364576039229860346355973568342810889312269003486814640539377197362782704393837702225456182139991221354116343367137465699677228262444472698240017198434010869780993035200047752017166915028171214116244346173256894483216856279851685391608794424813191683264387402262966864725730999014739903141249746930497887125608682216634982941793156872899546204751892821287697743033001940637226133755065303733501076597294686387691240638573208425734013527646971164309202391653115221982077947598035774388381023618269847761034629512131106033528112893315631559284166670680048097708457856205531227894348577019206203379751750970453734862896628681582510022502459139964429190316269191447070877291396156758688291679342117414514986640297628061975337319246884481893882877532641685128704840857075872034840164646019989364726709475917134167218314840837480728286680188264405505366243490547134049819021142574100289844499970211968227649310743134992031074082116551788443977642508021655054012262971695343450727387765600075227620045890053728789859886658899316819128580361521281914922334404483731095937625809995421286303194156416357121419114627106030316426351829475496319123238726102391557318763546561694996841814695533595869385752172373794115480497815701925784637755836217103630377595630320997088794941132606741889183802928229043198835394624465827226932985811512725636606265157825630393496984311594733782731458978648932488157440411417411333973539538493770063865882250815385433897309151932476981779374767957184870752053164730475626862782643809469267205463314755461460557614876397499649218760695935692942700203338535395214406154888827716834181233511935062162205896795224857563292689359354779455647546118812720189572640904142676767002189045525514384621764593760329142495375993690130148413414772994524314430839540818804988984372402562040362980917604863502919267299534177775585617309519895099762799917090064870659322033493853067439996370188565956255838834208444281983469960726443038421189446225732164303711491637301792411451893202665455364006893389073701930541794256360220257513003022713720485677925867712232904310450060014266644439140618228565509417718524513855068327189737944373177414894938755547893571534695643436975383573295890371305747976754560579020809690020514263671388679713378925324808550714629262216012648814374088847858550131550205185477208210909630811764307752298083632865722524694426786376067441129952718923757660788503471333970968224515143839884197490599124901127529869888153891743894557934824416699585587952905562525342630625937287223698768805651241042400377433700467492970186268736611055664886706394770677413489952526711598343722739822976084349329085693663659336577561772707596057642171673510247816592413902051465831593769103699244080926104307621027132849741418958739573509300550186347284988154807668589715880248193279277071997518318279362190226253791445614284265661208704732688935732055002813821649389001098813350428590811989409902198626124473851187787821666270465183256737169021277096584046593966932273714959963468110862891180209059121762080771860515201411730896548812538270995571550993586482890262907783256549694694933008285150440044778698599133949043882956155605951911119001269311953778725265897955840007026975359327051718052678080351595850239485851935254672609361848509245411135404118097861745840698226292926251348448610391042217834202165296560008358052214504435832195163412119205293103288228808587185613616253905018617607595698608116642777338185680441856495740455795688504274272654054664432871310947994926631128141266435311565117418036654029175327063681526016655803483838527377159976382695062204205701228738546218778588418490019827605154307921391301115408494538040261694523772551899374460707541612616598593335954638865263336708596735305900081446078007507348007306117996997687743494292972468819175415588012434521086748439877209256847707091838180950110312239410922294396154047748262731928443934437645703749024697297835681407550260606433785006144245066308778170613156085743172134142705990476153680023917430191805407063362430110954846812983524479254469085844905150369520417371880615810732287810580439420770233422515811576534656277082704214126816745478219186433139883784795548975591444974443367102717239429981173645440101182144299474775622969658449681529972536533299729079119458386041624358047204678289564438645515766310436132342401226149704614288508221593432349224647724081190016639902751625878201493658532413309686965071313931801206308178205180018811901509433097742277825697733428906438490868806796405858659605414230468684396672803241293615149802034215049186361997985510069190737395521649723724114887997353577901538875708975369473704548929318993779934887121076236881217106410699107884447887336114484350298826193898516072689974178726537062292201594486323164365303405928730625083335761790221366109821191766458602636397860549719597912758820519108015626580890558482169257883721140571527770826527540277923392456813278988093790570864945989000970796109313895822453010955335605836453765864084519490419338348220112930143598980677506601722198344020661432176858091289780953976977035307582641103621490405284539888081880278595058042312863048645133320962942040865324564381549053981225415440424618761141796035849663513155432556539584772244867447013465407610345057604440025291923349835117012657991499143268027010830736472670912645927012228433603514974820960601197121870642058067414992434261296309200604566221977817326746191956921007486545754954473727885611237092440756783852484736193956147520283034645562109871069818878610499185589917058703202216934192580754508725872644043498702288626038578013647706883598748287480489221768844652555416764552768215785485241975735398747560118043361498207681394322345520579275751574671263347984146167929565572190643293514562449027522714426248694679352417165325512722824818304646076937904014827986632331403558784910065432732489584908746659636215818689240814932587167497099201471127905455481220385039638513333419351555296999797884540450546532239937508606262717765077124447916911713426203432005342332457759136621569278075157656769236751551623377820180073577424356991711241771626606448598218936088194642937896964103962854875478180897014686323352299278491374951779716401919708112498354800638740886019631095550315482063400048405267717557747624283597571245985589859804168734166068945685569070250269519997626378783026227355237191386425515058095557560566670628669980630912848390893530125200455779096452735584386248218595442941902536943696889717833999228485384613174616517185210175979386487683023145608669840832523060153210821362792853241917827889530454890801216384954051311125907211329937884726858578655930373493380586380054611779409775617496181460975501863926995450866916151660874042808808745389948711511324112023070296092192074944995689669721606965914294858101545202969491992993985987780711375866114590717109940222013117316707489035333153890168194743565640994261405272645669844557715994038839329691487317708490896738974839439057995382869019326429737973137286929432547803093409503959213291369908766584586314012262709317064782033836178755805035448171921730243225633654115061514320844830281301234215618145617787986954761591780383188103873131150558349256517752445067059949420091769364646377175233080617845116574849845231751759108298841377389007761516725351005264541795588109064237115775797579169469896812859969391203139272461642598347361526236089825327892835075537007212165733556263739408361636921598687960786107157492848329073144340944313516686550871254563581736461744562586870477407820401419666644551363211227401667283028020869593245633986581900771597004591172176834079197868591097410072244484455450486571382888218134273177896741695396358375434781043899743433481730670691369840736005587678817665199486458113637413109647034827674657699764105175936264380362022758414778429511906461247874908975665020879172513444678215649641511152799984619242853178694214677720757084852283542716916524286827096015445491867770598441780307440148739096854088489692288467756700082569660017037214324038283452476362945951747097362882321050715642090663796496790439275862948340638265873096741059222557912860597849359504279335746432539962153946733120327673599269465368768103323082367157828627421685314986220765262051127007477400816555119681532251472475744716540429435100716471426227612487819523421424677454444601682027220974756794967993874222076627007095275248882174781498301615328484895613487876410357468759235318224849709245151489055054846796072670643042002617269780172585982936516770394869197352900643971129913984095987532214660001579397040650855954072870026243306471318060818276326726771945862603634314093491598841563193480025076804527547428825506618255218250652282429308355956400414596235402068505840727391893048740565473943764843680832611952235726990843907832501442553092529384158381030774385488764012926242972478346015741875839864596699662211092270190456794096910677503376299701165221211562073072656446735140719661042270914576541130371727908122275501446067010167423737912008628398420388002239461032756709322645868494220006538791997001054275986006888381127014471900845575464825092562745596749867259512771491830416919216892935962117888895316247302845458944420578044353701749151502818495525329015104765542341157761958564899139357182796606127957581366898897466952871633030670915192063505585128846420762257774507263733631586486894852931998180932625243619356013046482105081034071244705950729137543349035089533901394351936448336416101835904147617565673819362579386051752330929083003433755438403153593392406779550486800490436030933178535675130774077566508991812527672002234626583083157107841822852771740005993195239560079256515896928667371085266238035384365493443342115537539339913731113112675113515736065002258956108624404718684664194390940937733983278243411103738606115210916882796821233699692395691806401955651617627726899660370798074435613290115654734088904820607120166204736451044455417114269674588402476233711237942616738168599593490902854119347616385445986649039557032792976453442931823040684527369630080133410515914828193186416193034774869790042582115769647224974415312070647162364609025804035856722393243560868652030027688313200452809820136285800148234370529061468164004663730471939941274537610242039354896772772794662082166405403953999445140438632420150190219201759331883978166869209242300824538122599599065418221825988181734220106025995788069835384267118319528084176732104078154955045180751924717365690132662016120739301319561001463847616328141634523949322452772969541080236690449692369638477772367643864772814642078481038428091583253452708170914449127539544442756262614741050279727348711770981721855901003687822335906921484073674608283208595964175612882049875806136608465062098601917914915580716640517804356251073234411603818407015282139212482888662610552338805477645191547294985902063819689865639954555034064213886357021857656583986279291424791485539639655150646704253526832733481826078581562923002570530655453506509965080544510040475578583387302009774296676249126327982119270668258958065974163258155395694235910268347298222566048438694841958511290594615131295671685089688328735528387736397713290656592720127377210659341755523429731817135755043028019268335083483795146372797113963631582640095607736606288780183439936482360025241008836738818583097507210118537628504006303463953605819674649626760142561243231375055284475645274854912243338577297734267820329122107880784575709840581039286832629877307038964754651920564279433670310310389428180788166695679137417099339456612907800453314534939176544717133561177781243480027096811942248333789643665238463584976640118770169690605145029228917244318240800973277534244277020362314983275348290909905639518199581316125283896539892434901471444305149520741292787978867980380980974307056714332000323206508349179466130372747027236738018223808476757179555534264701279799047819635672936224203311421009102923466753520638951354095733836934691204974909360410810978448361183878243046832676170124925971412178960626127674244238171970297448858906388598149489489721450406008637834703248500960689253889149827072862235482764932254194581653427154008104985213738640806058706892698669550169310800681971173670552151363718250059633180946730183259716091337378055280663235595618978758001079274295938823979259165772190920474777790258145023175876958727193032620329404563369761061103794382702764921438322713352343816046178749189536801222089953668564135299818004091238051858456297574580379259532352096641716891689728701657012358586814040796278097187860751404372361137896718777486627920502373532295646833522879151448773858345410469205987483205526395408979182151921317494094800404749606121892263587831690879544584685630314276608609084312032630484172813206668440902020681409782693896198897502027963800264110491205898793973445430526716527455420073007318873004847419567464200492533716681915728591195012614329873232774186658859470462734757632418723724192874230121721892789824837864011293016670190155784583584379148502860463555665623408124933648743166196281964971133206656952571957585601207944639859359669963710081108438427941427076485208031265017522469789621121440262624444417716181452403801655160933920062791988470193925757342719038086985639634839292410253790628489104708843557278319550920454702838633715963657389838314967667969832500030067312564141574641278202156354057753442639537717362353621830154295151810415581768825335610088200387256538921044010502282791736035191848159877899105113451853049430034524443465663742681129690665534767232464696139972405039916270221395659162577710486746114074099883891764360492619121380097505126146595325239542308352990535055159071200603380304300667627973445836915239580469559474137117075886470918512424679087175874225885759810233406970041083519631786333547204054751833971740411647952279758503633493460157352322029954743338552513614460573158174654520437430539896355307371492250451691799405853917636818710940446626546177288849959795548702157533148592406761826823408771391232629644965683283798001898392130959418449796466220791086882542236706463063611836513208200571946972740575124072120956070595797531615965944079070800075440134749489750531193750233041335426836612954260234523482702321573014205767943680029528738674887504800160851719368325079744797968210643834115422823284130224393302454298671443621064562655568227214487525014167384923262615632720605529961544738315482698894278093634504588969191855558584128746104448037254095533816604304912088461732118679498910091184240815002473770967446252931257632252991153714847277667784160094043431040111072239768197381994022643545380364871531201373554677722889065224940678793207658516154315372971143885205597190682611535868678258706269806194639620095193641445792007458401566903511984944231393239902793735913001955998217443087186588474035117954703238865534158301058014367997275753770519280604554747740426510930667134023670125736542408722159039622026986379111804345106653288955192607229495285275662295123652994251522405210768070548185030301933424395788246581716576728837227512395819506024880550118173143911123782186930383745448197574296895910995582402276171088552157290048397705126770568626756778514362172282054370571394441205382695419642222472663343114524834029412665442375039481572069778905849365627442895901084116748202661055083424187974180852240837406035799152876951519814102698640207423526687043444551419528202052106224650703801915963455745976187524862193953181953673461263331044865331446372913212088728920759867249829244938296403270287093446509581272865127422499726792869825598518762307938962361870817347982835753643139550400790812710501096874226687331347610005623455209548450265593655315313142178298878298250682144839653249269763364163827560292038914708727082455767177263354959995566219263905816508703881036982242834172266941870491486065903719537036106664459103260977558264145184377894408108399073486564487615728151743934273131547377015072549284921996038675937993087014661120995061227542030357665539166404618731508119763691212956072718664411981252224223836115021049017643878638278637163559901160169996771833450587953548057885005112858350285609739493827066046656874620688045333162841334711373376045329615957596155956577574785651862869993167005865568768796706830557920050147479490029615361087938002613770800547059065452244442184479203755807232167169693952043484199270452002299536752652531420664899354218323715178242336607566785992908767706995723496158943513540739456609133878028761247310842387016363580715452836402187352117390046459483235246341560350521143756271410226872264781554565798568590838548841599740827966040203803362943710045964467701057431093621796135740907746396232710153274327381290295212552079159062168029133454530733182800549101166603807497541081160704167775507287747681077419208289922834232114418111533032089903413213449044251948706231378254067528901146065786491056485371779966447264484532121327199317403423087688876499690375928706666162586426675348328599697924758519707510957734947002496726390114820110801822911983359218464231147561958179900230553823423857466470648591653796265831698247197829089900819122510054846396127345290968345752317603849765286926010339384108242552475988732827204924150296961271096592216757710079341522733124750774265791913392420783118131487821663327357981038272008860671270539841598577154562506631658384069168207495006954092015318703523013358863764377828297351708120783781596403054106069862684167532898599744647016121189725876882110773632372145648246453477469015838943810097556483191916328952825721189948435130905868113432550916354070838937097257774937000312868701387908360408590224862409302857814450538612600172779278878642443487005864866234189935198406812332578115965673009726818201410827605493724244450816483144752945550790436483320868059149166900088268754702713430177138200990748097388152207363361973819708843596099887571183185765041409236030648857311504946802180578059138271973738987846136819401674309544668548191815874194334557534772853249797876775274105002836033628314051280365503402000117120264805256793939015595722471585870213848254806602911899392235614755783049857207598736914931570172116517299411710451426565616778082903977397690058177059792183733930892156376393366430101546287985222118742782974447823833219550836193662332758016945810913455483040094057443554499369134486182161400883603790844431290722129395138663608929132742087914035495863747960974871691938912056869016851847350868008163489140439641421142405199231265772771228243508035786156316028474961386225411943554350037237184427414116873288159690230439435964545923332720228902872533196704173240714471322132188328735183013894109166329972386916870704015448538976915092032973311441424467964424078023328904990647506838245711747030560425285134469242159528180025780807906066192947992307138191080060653197691590151412012595471593347881500853965309501443489955842021733171568263590131254046895024132773471687944840031443765256845274822393562521869727500756809010948571518931016765126635234174528491623474830113664726345293717873931611436143185804549197409204626670353952175097009245297293374269371119047248849472441303355331064297698837098997381189591975992318822392932175818974154028181968767048385819434264752127589831015786460373752299312391072353123339457853477889700053993440701210099926367119600155270588598656520127667758040906351431508869516273439361656406981027204487400601421946285369314161183117488668691342773258701104783854112396685815367078098758653251335143127803851901532320855288933713427481185241874214542216063725263039914772404114163568481519874458922258794162568869244899820653372183478402472962346872855623922552103546013303662008912478957142173259294328216811766923962764276874210050200449886772234064265702586826896455907539818493713460981864081405373861002722952727970676089079427102821624608676642574354985795976372591009507522981500270558028810212821711360935246247933142716372391563736124910469162041128916136689955176562698595014952135318003402462016007618010666903409262013855381666795113869367853082397098106634054709283751849184275173755018550485938570634585548272627368630149879204149541082517920709967077094334354822469011295322560651254225574196950640246771773306676828190255903666964354294558372180195899176879562439024114125113810464152706114196911082474008198547659849923010863207640187873753354135292732295939390126490819396158740134475797796738393260628437177883487364486795827141863701203310082939127758374906895181756708247350994785762380332489703613997171848992929968285178769279122902323055726444636709100751628066650508986825959153074349171308288357094898884469259201629524184974266108261299876180948629211299403215171209423163951073091870292690400514721485446254066138432771987837160244907911007660940443193262165527138736691487078109860294923137776353684192140491667372701046503256302876944731730523051190322351559991340002205956544323854887458440123510447105365329577266071040486382912957888683790321957866637375004363256847456492725172935713111401482042027991997817620577108575858037379799463259240916634282942115043610477899307137809053151767426373547072925977947699272235573808541834778152863542649790197096547962487651255519255857236802350642538280528597067124042897078735878547510995495682207190387184554051178011793565578596596307014904756281943047889043313415590872675043998478766973714666369323203873097267749670031970204870379855766024269088424712703376272829122679267001958414997878425352191897190413736858926052111365439025179216217997444811343969072461363697423779042486066149841091164734517394642172265231355042490789311577192319976736222547211322540345420463417866394626238496177466440023964598202130527049747116016382465004691502056444754781502881775448217472319788871223359260464967142203734820618725378490826876013455884070155783756303379255445956897346499230872924564651912324883752169663620781868851850782785961481627804602993156511756401922888557206555193355910966299879012934204357397073064302230836165817268141946802586606047695622359557038830655528574597278257418271470320594651800058018264033245724307069037890949672091144932280342219814016205508868081429814601347235706923845473139189331409633723206219065534827984311753828551558661638172248625261724513885198928338504114102255356733658826726660636763136857425753559655927599988580252706956675628160041626267790203181298404025653947382945556824726997507979441837919327360022234602665204880207696213280342516048064787153229302642767591289199889314269409434129526768014037299821935771078907727295525177723311001888517104951615176167447158428422722949641557561618464330032081138089785809034731417791035832877449136381168109494204196717077330775833983393226968946838706172815253996111198529207754128436189713276453972802623139911911036824699990355548557614889172637327669397754459646366164143653052373330029628637617009721127078793664282633098281478792848190785293757662214874415882385109420493956683727591006621284260079777533571955471183185948571984664283240127183821586498139551254752016741190282125373054857347870663924621679461142818067025676908277973871072072182652603961161584213170383839340818441937909360608469677977622155009796996431781025323798906357304786433483501436353339812611297024961793392675411303148582284045100555466041178945860332913591125338480419962069773671254903578539984955488402522554857173354807191801766982927719179475748897448715399855191921928234285338835849575389266154904851773798272207652294018248979169605563481331352290911765584390361849586309334110727153417033128440994121294028822738875832277402981707070082956433039237125501939412544837605476667755049518676315083018217071679471912779330190232906122037906688724223983014215489453309820959241485598217559604468713853697459943459166471809739813673336162089135487850365635397188071979441112572264595536339720476487678891664856210393312473273452238010617367260631385784995154132067476711112603835389892744190528927469161908504290148760149828322472570705864164318567471333872034862469458770755228939172463192450390924551831168361569718818138159582106650674312482625547276263260826619365155760519870447517777246283452121320362222880766119217119310996414387921275143528325113764899555612814148008299576204890141904185630568464859937657379268002776260206280020637871752027477684746325601721535648779013299275284043748783532359033658996589227015766579646861426844357785377213396812146571825174535392556086356294172960617773089136800389832726289215559615235392528572053213242299606730753346132893471293863826830024194515533288783911049398351178784141251753697114595498609719936303600888332693429411279839546901159121937114466561699528898355790495309674912468900750506770252444354207977332817077111425051879090673687142275623020074523413816568016180851688583973100455562952034936173425744754051686421596203346524366183547392179344055858124110510049253344629532497130240329438254673938749340374051711506796848310896030802669280527754994414239881541100814057336881154409265566134308492931975755236321493542341529037725797576821361952708925084456446008014454800334120378400927116212032680703486537256252347970072389890164770461034763723817932387597717077021725270444342014385065050499829002172476555041988869151060242663426924809457077527104888613280614359179587392906901949195234470004420854150926085826695005873300427840547129257283198462138224985703856141192692899979056186496561490468146675341683713103194189295746738660335527900132636093453358189501906783819272040110744187421212357202153014443089685761367853815264051414513575137172006025643348939057179729008596299086804941129133075619473126607394156541304090445937281037313871159864090625786089907036806265372424656077819965994559626879174971431344203582231762760253804743561039511871894440082614635265230233334563468443892551970981885566353811749795048095423578476512350258846590603564801127220680242064839874211927565775942948288891149683108899859011764762137200324382160541464892091604694340984403516012785902919649451339835150839427335988605535546815216708519585477528837321238861698603664404666321724538786646352555568238430574713000230498462004957188731935608397821637646561308716554038803071623754535782377049132925149216624496766996821769860805136256124409362140882188265319802419210409645273348558488271626354362863490203417422920117684680536527389932550616553761750491956276748880835059355544676090005838188721357350423462310621534314659632338679382474921189904304782707093833412319402381952225590799119226566970167880229539543455649366517127694995536819984496906465214594732662298493002114231323933233098409168156161329252451177456959930964088502004188174844983333011168272078213670634267850285034520021874382162482800025690274428282336744150277903660496554458603760830523617871632050673049644761128349092497674582200165552315333459538749484567188052197775942160756710657731730742442622047057123711284431725792481371389226736403248295327186859673301889041733396723268102176786591298443436309410369852737781060534091973265385104954749120074507173270202530121581776370450424890913201352379515420978159808026871019667735444664278521324587053936716619091712418334489750676410588348515460971552349459746020394248757796905877441667898742393385959714835770535155706052493367397951191264516347573294581435406088072903195213075156744511676133918758959054976363007349328155602983910581616704847860012738679516341909678541645092043856232318031284555613705314155148825609941649802155749253202012987130133738899458774857621360256430422307129034101359318123851090649694161062748950958408322234504038855700552910419629582300542147589311512094147319200387732761834186592453372034867777840478289844561265388350385621034228924127683632023447603798611634042460782507997452838491277242941298023291923735578789506937527951189095330955304753998663765506348624627657292846812083413168802744471874560057678723813766638951526759267573358718778179017650886686329829411640701631604026090713087564561127921660450072325723835249940259028271549504211349685963783593432046635034294718944482277895578932877542662225146854200402596731770628672825170408278867627002703359828086431162997104906393345455382358058222572660585328673010987463418514162916006829040346757673792149992985342437597813460944667517735676715737388308517726367387727747940096067233523882433912849252001941884434546043200319222980467755618119749646436956655637360111098897099720268094913423190120086939998373182516565490398449618456148805819234862322052650835748922294191023340862471331125656992677174700103765789551786343683139123698180339393882433867286180659228687794126947989012389684588825466473758568936219800260541034475921571551599542745724337057649241002799391136521323920680278098523026850147265854947784304895721231530536559255354325610004804063115449164275615826978545003500823667468889553417790211536673303145049697090599415278356168952294610557641772336325171177605542144915442047789522057273315378866630612844651691933241234023383859395749863212180649245270358900692532629033062371245658642460732864221940495423979396919196322805268764602606016679985423050921256777520119286776412007479923918554808805523455796911291868585392045821392801580428945080909710347800886781157200705608201134716300793192736097833404737106694929667350856732025592679359189322585136456380913910842818696338817908057587476226280379584365640927219781240895093324732902053455764850074632525839979813341570322698119387654728328209518498098746618819392473253201505797354650164872388245208371225124025975673316096770820288233960569716585554782449027173704266283582756894929016321765308760793239030926272190935389235474951830264352030320447362309231456059387517760072315419524867225070891764531886418859546587238808705987040867677215290139801710980538249140087189425291511535070921601541436028017093212258776569602306373899781055127333628390567006110374468425560154290045578050952592235497603486543658354226604229314446020116142964664228667423169158886857457166176809488954318407554648627199728052585858037727167733975929099906693753747743920393153040356720697631727974297587662459423307405538145855571315631130101385842736921452054079876495041487257503365643693424515969985562298520197481799268133920693997304602090804979231105141080979756691019675830057129330475729647606604782505784886179079025772626893754164997732325635588560857506247324109561358890317154614797418398873660497773566446553281450902360242220704898659792302569094761296638436189307151842589067310395515669596193990774308606865394225735310250573675699094333718968520255588635499175929414143828482949663697829928256935225942925670137054119273368819832455169009166433250039697205551345751613908110912189522928627096984149362534835481525568379543601901148599334213548822538103583729302285198605698362891911164466628137488776227128556866461900432773066800533976505771770687302794333672429594123430768776735691868948824860542310593965847509105532037678673765945784252674534413258970005783099415733041044780950724971487174146515838809065938430024782427151003684845064363807430755033926193110891171417640776879731010265752277484912752508697412252859452041652891525859994598090252280127949111564141082967081353717891122959948862304112832876369986393537969101475216771875201424956326515299828661074412367412181390557685757922443058672777155049808175156235148674137537638296973541282507152679590749530224720979555836811587335187688010598384518452154633080097984482314727254108262378313390666533682153338823561281347246284993838700444534486829914608844428297835891347813413585468818486965610034961505418703630091815583776442918500071024947688404055789479483880528440131859223968824490620777490726460150784793929007395918440284060251202316588552311115937073510532439124953509865347570208040743988089694433485252205642276920007618617076507084273011483513327279853236965647291160855762980605834133676722390339800934770179286979271675013912449028906947272156507424285113258052786138086687292389660320782628424458981028667917171902913243484828990547921281062045438465819161682047965225283458238775948265639967221189459037567396859065958018105894868727668745883403936949186930755605849429624748830944282310966725644912992708306158796664818594586609688714597624651728415396245895438907382575935985009288320853847493770511912375109186316306832766858596495219866298665842090248570265525682920888031003573375095133001756983376979631215675799843949549214253136089291879694232861488951103105376505964250615751794018371074558004735091595848345514358366082343835820527962624821914758686396869732911787636931446159552214364650237557917516510885491583982961703624537329765413819749563913831522132721200687260737512083954118157690460073353869892995414080482027346642228495894682078496529447556307775612363363003945793218918532212910768758081702456603555522806890725388020360070931740065818639263524519931312222364564408911655230821900215346081685590016061317203778477752693840297659763980010178817180350763329409312983268430156309614600587322602572168803835747912433706872396958829180980383640408142408739839368081852768511268300107759118807559828567314786619456732382737637885478862785215563733277324016202299248972216868092276185085765436293030555221480035402321309558309805171987268315644125430095438574420447757064366504508112993975309512218472750734198999423677557298750408158069314911013551834531590007084257193466153972603436558933683728105937276925329404052547237952035615603788560687061091259389344830884447041653470531274185892132009863541299479860210034884847494568205386938185806374344170834260408297162383478066287357448981845402986080749016841747239414225741437726280432956463555954620666903472866432455712780777936520116690236883226144409123290873912257788708460029460862902129017831059018045257121812732023716200825658065288116053851791842910101078270467788137207883969932846315010871215127506272383913217714520598533205120386040178616084300017460964381860890875101990755240186535046350226235085516499515755966024975387996049147453541852379179238363390371286669735661869878362007182366752742751461372939779371237833513150489148495155186977626910562014512104373973126719219336117591250785065686401688954470548301024834722772739468681137089054765493376908035987536479351707925553099345512310681836767803150840368104667057972006335252540483603241183338308833220724908411795731342386933338737854575901294778059981718583257452788596082012074424608683305597226731544635103779117528109897575700172544568020701442120622012204461529124393757328187400504108965397011420576385576280239829930339801382252451545069296713869184618217183176924648063252100379083477894664152854945208086182854365886384141231879214272293292230689620316796150582558840126518567517904088403253693909028958618561345205465091671088254293865178792780967387729580310879750370148555119398101004559681592226002581856829330876091669081078710468134264866346514496859815482967662000577431598245015061524417315077394241547399684649238475881397855467046892614253041736275879849785503851098122203561232748031245836854872334101932352438303583103362499928860207493879881200332248260206297064565874471626437319165419790952092632716821368453292803333035622932740094026719201209965842702088930504618092310052562800133692620719258989605460721325521591690033215926693485605758257587848604963012002803461171874340574872806856554062973505622765942079021589587578251853620959654107134290956051875494572113764163131691566671017359342720232371852698661577256296074069280483252290354895575913583267225008221630886213972375645680262312484860629491763621956859119853717299546742741281615426109335146384285546332583142285177296722620036897247174213671511775986910284203775427708447168149434913245695479699096698836068271811271673897693869339013261010471160634515317404275241516146373043728162688055066676411973660014111764542007997645811061374852392795615885218666377002664007386499245618178812833025264906429315309296079536037837225596462979292091090002638278251796294139420477338348675353743833667420873886505712960132734063695444692230215487067646380825517279446783211967893624385234808981150325724592442818213752224404931984600873752952109034980827955009668706728079450437788717750565545524893537560824450096276786270777822267651768745093789076945314366428955825955711860025638964423246755593177935182413660660005650161681852289367509487112101662675282409452647384928917566314681882641470081475622075913213366510841576160369648394076386534781582047213297540095881874146148855924069958810804174944987154178211026253448050752601624943849269466682721535265834909293924192274882244736179279961053444820736540885413966764893342987044790282473499155287100880415816979993804622773781344847190174994577748250153045399350269175334327148309075913200630451838806233768836323529717709859679648987572536800066600437031564884450204227779821607275728808277255665642618591703931493860706318323648676102532882807918159208934919916809947799544411534895191307507210800692933836331013775259974322603082993824638563218922709282386729493728217074813749363578765282044971264853740457588493607068979783952059330705050109038866409672981959786055954898485518123789846050014914025888395508096575227030016152024562882728028907216002920414202159727210283858602019477533173959959747343760320501478960247821669287378024048108340528614562625612235494529526534423776239292662154554312315050880701088357841526063171776773175674987569055458254894694456601740611167863890656134507958789063727204159243654010868882078212788620138611120688317975090792704691750928383181328056611690864882392074070897688179858820455539831235173272263625876924109742719651640052191746262027790210588801547181484871047661165222304084213876101442495569602576644702493063559264109441056915398552110333545657723993022005275251203186473228694403950728240245399269568444177784726835087806455611828030093396305031600883157093913025506822513767294124419298751723338102934377573978892784740522088516217664554968626543464031982138049018616878634068870375403593641909804716579257001944236431447934105529041904551508086663668183869821807098348493264771065261692300782255063582873519468221355067596631005354541522567191740377557402422121176047062280035852596909273937825678070637956784085818250887630204695592627238261014176683593435429807419939398379199998808252107007950328973437368314722239087702123852660013298514417675410352455377938294491166598739254003546560701663706077663411670194681966507346667101048394372346326575263696334996200250916804062085356071009634668522735890505649088641213347106557026621776196883895408834982427389191984388966550094733223889174500421353597186639477536758440098368254826446918511218335200546143475327454956126630077039714226583316660693345820577575611102921850499611200795815254431176829340056387827986917595716708320985240746190766926788314380701421928940644504701894015752754323215222698681714183906872352704000939482177227736111427512491759672843927891889651496719842055344819421417532049989208426201563248362914488869817035322337516381904082417865894724621130429484224723839900646414358328389990003198643526843418011098155770137917196207899250270460777922367053342338267585773696528751429262587380319954383919762161186083137026161873854369240426319204318141010555214830807494734705319986573450985481828540886060719566698711102502129216872177482212349749716921373944627880944990231674174942638622821707013608585167082151376305473558346902132602714765316992614687058711450150596935982929191992176472749631820904150234963414876380189620852705452112251213477816468474925279318430682080725376507461350672482407513614263949743940713506106809029267976763274791291220919507608954533860295030707283392855189580744839361880438110853295400872706315827554298219140671092232787295416893231025603806314422931288599555990939357274643496871563221776377830378846857233174613859793353089633242027564411579526641812267908661371224506959095104137601174029696809568943626192175524127390691887038534319511345978116958901482845366335157081592124745722686705266638950968077727362151943794975245291033848342181922703036778573665163302672566633334998497907796933871786815960676158780193295108906595256659167593838203553872858208415516458283816823567840907444765175742494209869369983392538679906291731422497703902417102666782332280246584874196267454932005434919886336621366307206252494320086191724018230800787779429983094126363825472219039318088256379938652220061913449635488433598339279827818737896421617170309379496849311075371398419360282022718567710736312087911049860124626265986817239758545793676336934869983332669091025955547302135792947563116047767416542329213879060502387572354704565104301283138192920599689950673985999989226672486322231733782187796016483597449057681879284851737597113435281564973157786467255655478573574548378826149279986905887296000082375730970294551253814146901942460142162635079749660705266455913923773075080193767162180539272205871488188397885879405709267442582992790526160775339831814677667563478904605241621169544844539066200344770505502005479154407130837240977463627754573466126230753225916365119391252821691003739389551086935432421672027919324329968963574315221504457213621821351460069977804713968533375075906242316959917660479486299276061501804545371239115088199234711746642980036120808336309303454332719260465336673256480209869824628885273664385275812299508970921341375389581071973256078089669638148574115713828595215088132308251643984584672870014281575565097743048123954143501031064965803702828215385056166990197782166057786384443401048368131410216831292892972608205886001276613987908288127437302205006129088491307036103652108015537236590329292333275564053313292988697215231976474164285144463785406903041062792126354346398228288500508350367426563334867468429788966619400932939548319699060851522442677161389286577133374801081755475158100626593623406634980101013930573875834295238266092963309379967716344031038940381761775183073882631409746493821127015693825693880325807589239561249818253777651727964287744419368798325642058058140460963916983816686408452587615568259088566867521872255058394906788495443155440531529938492329709198185380051990164525423309995996603345734413748175810227303328199227765517552873948353709705233530628950328264652827948420887646143089732249291072940039421448598878481724152731134436939469737994835230728048273651338764707334647949167309194622505765379577002059484420830130000158296185053812541921112584547280067360154169810238165961653458434544754973561101968324492812950232380690111352454904923744855177006463158306162335780111100816922458383985030923608657350702634426064608035012906486934134246683671629762829412796188023950942206761071923888636088517707689211550089466877244619582036664142580715418642906610136998809809627405484612324606738371159035074418520172734046251706328648739081222948455294678751035461696931240932876907614447511647242729543985106967462307075889865246392320763611368415421217062604107444920313861929552296320996896335906793858521860250046120149245271975667474263217712647906923108685911180633867356554092519813550001129745054567302639994706369505670954850492968359003542434531712951136528579566992590305891414035747404403367471593349044576339261701092898570090233661725420012415999606342055808069786119955883773599441334466238587563162513544455650345375069529033611913032341640734034301716417358670637510542325582771383422030344921031090447484324126585521444188214777519430832305400016391293959862030764390941782405968992380158977092080175940867834191596490836976311001001959289397348943309077039030232335246535659852224358711947563438415226217351395568997971545913889575826685798760586894953210646317752673128028184645033129167206458931741366653803823207333708148542865932120483351489535550791920839601512356488225323315182923789587914260464015093680130680352557756652302033305695569452018977182470326101055382821998022618589166415619331308090941368731037859122736292185516869548454934599861184867976368720691745895923868953005981144279291271001519433257760795605898421747666979892886988204615511212267277698841286751907657460132317649298692062951979287739730137438931787975327598820103720461272698347251006652400853064911649443683240769515064527843059074273510453921142806540182014118729887029052774185277912954821654584671985560303975873178296951188649942003671565969015325941810939927184879607781545448189241759766169599341831488382304127184123426103705577138733090837720370670385129364197280785500835363294746169986496997513115169593028033292391151932044024699768059679621860977433961935086481601653875547840938927038124854560655715432585031531051570578005723676514175318843798414051406700502571744682784669886729837643532321412521024167863839694175567143502372540023418315347519555098717907976269083234243321744575382802759045356416696965762985843747032228376800864461393276650319960404126969858481849258112458944125904952292544488997057717117118311743319587746495572013690187034273266196083108393074717152238801327854149189787636149380032351649396018392721347260765217594075826080008262224834173620736173897119077381035448950812458201278080194750844525477780298824727459411715882432689243788282154378663266987721105983632632463971209788025374316242899156775856830283900174996846721845297285115463123467892865583213351977249232406517228846647375254085165653615666484123535508356262629650260637222590088642172644052958304354537840279431921734578556641019060413344680396538885230707724098722868636339102903179071442417538132348655633398597244302446462786475651824877327412069413797384295909007156511195402664217234600980417969803111481752949878606780065286907285056355248609232905041217889462555016330976923645126961624563879649163157348561166193028324747546749316980804993984039958139860284613678884551628190967364216790862387608137856721669000957493091146259105229253950657003742648388450775907868500008959092350968719348256169622160776796485995716554258059518556499301559550013442489743462179038445251102804175304633682055069651042520808664504584234034748776167535899806515524396002144166613927053257456237433840213345062316958332576091565249154403961891074569507077800708328836929399101792903811966446623543429401737209776323595604731204493901204824609263850234294824909175358811790129612534866624522909837727655754415337146963694572802683033092393949177832858058080989415645102035602867126444990582936512314564292961208407189474813754642115196560093936164259432537953671476857866792807294535208078163705642625022975632909893498334870674129537297049282485126625569704339864445672451999603518239822025987340080596916124970488390721767522369992068384035244392367573100155589088194769625240660916479121660774146853755884083815493526599390343665862113128379588860160874275557192642996711514184923470616254333951781313056307735073805333958939639783870591445675506933470658713442500343058402704037443386487737557541395199470533594168200570158089843156603089825552878945005580444471059152309368676881195848111454365950779763122402909255745990696672108914701128884432099220479124376252190853422503632945127105156764890728635965063086704206220836765969662688816068161649329160432420180664340965534635484459918604868048923503856076054845458895898579813322865180998288276620160666743351479448659972388002287862820064995568567799240870221549533932386460415650222287765679591742621195254179049866810004433244187879209739815188567704750643479919269979951913082445088765704148091413848547040917078475903823118021629944949395422726442363371937366663288604382002702244229211713943389194548269843466564264776095821877329874338386051205161027136361417676349719189374399068242290432427617562590365736566823385402754635788501682869394972337419040506918218282117556276688108225701557858593785519206308226041361230647360455537218581644678996287729371463847061277616606691835080843262946387248450767953476751385587032970244649640615007350163672724757747209238490821607759109339391167249932870477230929185757049227192639630347312342046934053213607941910545535898932307457016024039467072357232942800594638579570554872281093831508642321405307844517614729518031945747586166309546559539658341494314076678456257443000020358870082431728260197375687936588690803484313440122308412289081787295162796718641954414924885297002711779113417858100291931322041685919681810290307296685350145534051091153837461900648949482345664797341095092550247996479349353269316973219556497720724760540666769330756858116796739539052792198293100948637938254099211422787687190177756820789898112521266353399216805432970015080642678932132664812260647921797234877826842559159177750132896360480373854012166491468677922500656453474551591517424451368036153762902884339012109625163210276734237919147015204522131142111453836558998847185642764243520449554889997580346233811092736353101277356048971048917407546244248417106794573672185113132402298144535363686624347197749217125136090182249904408030627674886638938959408003742634649407783171015377991487001477062387016763929640036451665704657073271191865750266394241818792796596189170432250891340994273575427876893900694596556069650507473356763677642663649284920163110178824381375106239971407621803671636822966556887321822803884990713083740102553582843530438139395445483487176037027392112007855265341033272164020870772109130293956563858888545646445361666620301040506801979855231503259788179928696690292592830566111575499118891339148402354474918228622691032912895087663870871859682142670594396959444403995784280434729584282890349705568949896849342830857635628376343213525416174497529114355869670386202012164479153680486644767371781313458847941685121418219057536144831821164452996669025265960950235223614745570369250838757915059053512108315100504469481370391321504457411119723289807223249577413804456148545951723640945230938143671823759998698137196938643143135672164004185701289380842687004510540241897371410912453505147979392419665053548766012584610673325347522936584953199184609164383424484742697975757811827872700396963455373539532318591281750583854880197239852514042900383572450146833416224655071909014017924941230335800874114398495162622746802801040480019829413084316963831907771890860085696924442412265538151187556916401336466395499405173837631052267871432155080588326580425697774583895781705297849310343465480929615556289271812655274268604493267405114133375932464782056400350430817231541283955905540642540698384665922077183467915338326206168429422351141670120857833419875201652945942655078076443575964913380401650259412098848746517924719479144446764290718677200454056895756566258874710946399363492766330783290456577702263670751681478798172096387353569768844517219238273566434047256874095230752349644465272751094930733411912251089715542516145963248185564319315602559851098695050491555560094660757588303194827707622088310631517458131021914097084234902075698966344379813999352669830386915108859529405518516626934067446324003839205648302717588393753049336705998413797935305168817081112665749368933339097421880885061717655325351959196716740705991504464442072592359993277275520348314601273238038309033317392606605485001983691017557376690890116407604291809445048852293088269957540932121777192603600791007747779222380834842138800193947055216197284023629877097676723466240844288844049928131068511149140872763706628293651303486796700476494571880047281713717090585313785689385099863951765309035433123268694838637388654378548569260769579832367151325798460730811179559213556047252569765379905501709745916890272676117017714175950515258454669762483402738368238230455106738783045086327493387802311715430909460996895453271597679316356037904901515412958382161210943324008444419994418078063783289420941856338932051615414583337276965274581925293703624272999746472365353099233608896067328041804282188993185859559830036168599626409108874575509342099063491213806882688329372203952959622892880353581494746647177243191570580239316405794518229278441791632777429925305621936752261785364401708698148224957965585778711341809747312722038767331633221474188463640532988633181638833059708026432607411904910740128699363809333599425892834774034001617636691345577733332602661949180758276806126373348996732545794838227778977567456713000372024102731654604524941285829676641280378265069221463301996767146553055863532547735839643139872601803339129722410939126774538262945196885259118640984094485346543161279486914499121659910566060039756375091631963407934713115083418942319830094421544944243801781742915068189713737106159084154899464504568851014016918859152242538096294520706580038575474570240714139201649418898945476599048704878081608905704061525618031152360089337541169742729642730596985075883490031663120038369179150467899417361643450721504125597037025979122602531948982897579949584096227466752265473265677907088620971827276014799445354400794182406286981921615014924275911788004080714638682413898706403888182034996099529104241867140169547403390344134934574396929007935394036007842054861200552005752720462873442211775786831058680457711675787224276605392102169979764615095326294095709306824152079663103068747354384080103931641131946882722696573724706724000516905980427956417669215450720098656363178151718179764561256611478204140485893024362830341338833714287456068250177066187023782999148167206463116713329272889556134840219844799513503346975483919320182983260798064171572296085987857287002263246068194376566423093853684506321253701356463159627760484796300776720464846616169246788437062609260174857776999583287918289063723009838479932644229891365921471427494516045839123425406277384048217416565448775391590125061002032017197262522295423532697097677328436980855044034606759707470247669346707294356771982447479477725377327190007057136476096251116320913161176318400550460116334152830803138890330852255616389602418600422083508114872392752064853346252235717027479093730829276498611163542565102264267466541539266367971421446169712692193143370847678742728669730818281921585109189762820016555803527474147302858281409544044699859502089087743863744050336916898108361855545138575113183246229065966506405952596759329805311592069304976510801455791106163659645045698933074641292934806593246465983174638973381047909857275700882076948424038833432463748804788296905533102490580360052247132274120221816305991309316803288780099723392951139238946236172593935818414742270478325993635078063253270213722128043130773718816896904714754055856143821344312853470009137065115853327077981473525858915431017123664444818418747708636827737195971260136296010170970868114637029713294277985311617857452890068557227304255943957187118449038959217234950714434609303682322700173018972577450598642964570743024370085095332029618194822473571932600414357267221429152507852400270714771842484157406110563184071602524286599490409381235986879829550216831593828605115743453711548183511925657205799676780920347820102033425708609783460193380530985377420367357462665622044386570939669446956252987070382635275301665358409057915024999403126604087601054882151531311403767590557677102372438418238706032601490527901362863375177934692151750998712568410295940115683125710198872074912721800311559829660734641813640228770326076521628758336717411811196875803722144104881128126929845111714137306212932543158061394903775417697707411362754403441893652791206677290045955814532557327155168210959848014847306344160614526340745289124979889761659858698842803230459310268035078293999865101916251604693431598707911925319569476486861613563836854455351954948676686211240146871807107767751092547762166833609212028155616902280197521088380686831255285093940928278972848995839205027713664219711113909571785646547211565386623035306548663853619619939699071344629268272445102275616459470862572347818145653307577793030680120352705293553913610835978263625224270694214024546797862778335827529306087272140044506518548357633212775116492578116183765041790689080498896314713689238732721077791176470777510344038315280775427667168002988803247471432622078555758105446751422755907326824290412186677562152965436103847661466842357500038616020631313802292914032252299186531199900183815357730010379289590216985205646232917600137504347937930862567633269104379799669245778521945335618265808964250118949830813937633937013961128229520586779626597028030052519158251159027424528315608609359314853591253603271707583197364337324211725698394825247266889719275006619476575758530598380048486405049881997424853532127623336956615488515600900077847837807685691439551338120242415398680537254083981751408577320761777758229752849021837492591523054258992100983945038916860477296636638380043076727652191223560679914618227184399242062433697962462330388673489602972595448900361376171626038699302946470770611918929589963699155458303514090460800518280577323611340315753965335180901712967448378373025663240484364567329277612381504275769516039648274247656618638240789247758198800006456778391503865765064661831895099907474204295506916286067621363505170620909504764585196525927154944802276794659512141721583112765757951307376686088943151376844537028732748650165452965871626263308946277414742427320732792105543511246712371215405140386375676746180704305057122535859327082443353297709808591324214772620978591940074857745348136146824989310462572295438061145882816693506900008862342913911911516826278980376965347950343894941503070070846548593839194792863570768527063177179798887317242242211441603823258168139718642355414087762447585864674350150295331710235952435771421660460719190090142743495722170206311138936468600629120123190730753492735085999601567719087687777861700050279568735481455090611358740585343265538144457052326113088369715971441256248547349842919096699054597377561992861440555252361741303518471397402791905110335199716021468840418225951803773350648411933922954856017045337259057228972750193057544930649086853882115434978508131643380296108841346363345518414172800139234529844522481899740978465987562407956617682857605523305247235216383420983728534791025771037093661246170699832072407047838576850593517155838797547976414079431133471194755003802974265693532630853435370830857585460205073696835502811452002075676886972051899987668027266518839406080739492754502316549600215495277010238069556074628036071187301018051213505492332649443299267030676045031313662876448398580462348271626520361410415058428402280462623776519342000566653791345755411163455064943620141607917507780537727974030249798355300507077794332527642510657392193625369276055352926458841731350695030851386705683841683625523984087810388831799147429239680838419871575092484668756483785859742561285271989496739067451532324343155023849557658037912013598828493482128263907472640643377372560726128339942878883228555890813385812766637344089736802093012820746513667660541506000988908918680610884411045700328368184798703048393180050329477979458914128609906033485653590358555730359330076195069430447933196665430279323048914669645017674381967524967846089345673281790936915290529188123092179967070883076059339363584141305644158468887253644247838251364031732829847512481120741005645666680424610371524134770754372059691154893794990916503315207493359936406890055527837539464693971754775946995205264506757920918335627687760504419846358752597971877980183868153646689105244178578540787314160683386073414050273901255559769474640582307830734478335800533525488158473880232204943736731935146480506320249524948224890947320452939177286244454834410747788827332789099209501448998551234596989733119606357892138211421907214441049276872981375119153748287476899036280579320044625811287934526861897471216336364743422954290713288096549848926844187604946921850831419976825350304242116376277373859275322699275956527530011265885932825588192272217396659308186173316745744967474416983825997653946811754648073817792363793890016086102778395515848246019343538185053308041455872493479156400917302863418686717621966550180870601362114563173936347822729006773615539903802030856576530093197871358310447248828700222870942538232042028091672970936126454395232482021628945341812090769256286217266239148859802260122281879648914647409283353297033183482337690628023203776121308391169824237841978146645464794534056717756430292069659124206658597755325428506384358119712228504337947864075650665036389214768997834906161217922605471167363565690118130168792376928376291005015057522724914063564303577807960014224492823018618345801600843362758504606696664466427007793858233814370087010349601921258472726704255643448567606754675323943598890695215899696982879584333458116458478242177765421028161589406638544068558487503161397291950529136362112767908822722981091286839282205818918476084637332923780621627649902165120426138052718133021818443466611103939132219158363486703285936657840941589208584995951651581559186784968244738163812479116354254977355258002214428390823241378703998117401133233823921536933751340690585682241932886897225706018430079167370212131144572659921942560621903508792599422421468034976709757602465953302532135679967461070107169709485366023187050230408880357181389944760352470612290214988117055161830320599292141860202284701633553113497586918878666968670317104143256880021390881899054427588968372053492505949289376620875928784334820306744352509482036167968119842546847534050376446144329038239962468583867568142456003633732563249151316485237854887478540536701428736953737634881173880430187396082619733942638017735251685125550275173155126455474354926847136403434452161884568875545005266251348933782021415136077072271441275975920028451905356829948985743099441457399817674086138738950107734248547220052323648920635707922906978244835234322144875630106666408555662239523851559202701951351446896300310882662013459869232678777395565334572734145982830919814411360553897830514994909221894703570821624092925397846221565760051230400241011378167549692757487892109942914231129241391997431400733487393294000181325938048591007700177230676410568593346818091999803664435761177345004038918036488003157108672194306762234716713086956394897381863245122687375918475000071511882003358968230206308412954392978769011574582773632471229641372109392045311423930440121709294246235424415222255043708996129717923701524464800023822755507265414866994691914273270752993883331537838160724622284398053561588089277231417203200290222888218111714974119373621680888091324700625357042809253881680685113533845867961580628436794304533617126308730164344268355985795517325842446071416026895270900945021436387210592335650683580005639550516698888566032034941921044768785930199698888167902567137193971467054230002980938763560334544980453479135804769974946113607797846888408104476461349673836607682457461442040718155855258123498380047670099723564472843613209631625429601668360608199143332280674652513841612923884359652134095790491072724413621128269198784088566562064191130541420632104223484247939943894761312511291995674686901771813060140242701092733899339846646595729652962447026642729906193792102183836073666264428568491388800550503830200562258342462363033392735111149500372246403538870202524572171404688684896564736065363974346463997370912571971453518822123226838336132302779980548888742556749472892334859931288957352989114693616204999923690368911570188655439400680165611170237537279606058890173886440241612027557845366089281365347023654364344262793304193715468064624295051347610758774036831528721372800156087508130931664240960288101881136439880469633833903358694929446550961485882339701942283256833018296096003488872486273741968337965744898344080924923571324191377662148596425804153368884014484561635410759743276954400256289879881648774994022597409095265618858403235374915636443140491057437880372605815829964546632394898813174276100116004948016976996849054825525660399678569448173819070655941766279916617658765562248154513341677896743913180985654755162689105099026736389420656772162497152262439963018593021939456278183621012794566453067382806164207204974485488184518383896329977860403937631313353369612233038504983864010266399069539759894672108458391331743216264286292958422887850473264739394950166591764559279343006843912297961438875525176784501052782966161292529006133242783083002232026390061835707287451662352156912005912446666754945124580269148975438254561783351663966065105167039482542373269524542563260838814248438393951343796601785894631308723199571176242364738779889070696537027147577764625648266619678696591016911967602074852170237902109093246318217978812144756633205648490504712780018329162568507237306368672372608855253269179351554514856686230412242493461287770278421287802850540918074230837634754788397763873927917911277307208418011439350274715210457332428034232359169039623422016947938640070769527468608536519330055627597791018681857153987786938930448803910966351871987609199460433680819526887827461757689688295210552146881572775561483909006684168956711144109708085851022827915406193324421605648030126778068261387521736737984238605336313946025119508001028559174919637933041937887027754302168421032640369489185266086439874209422123159712873143504464725381444320065818270776559644474512010220341467842342520734890443132769267536637848359913973067612637423626047385586049813792988708887408975017399598722216577778540775491987841697599188938397441028639759173942085488138454494403080227192809590791310787810084002113368567512053939025196502670775886598578936017957159786700876673998536935188220692540426193412876262666684519176452599861667444572986675218267372461300613506597273845721210063118378464057739520997961496892307095759847742154620675425423088983119420591283889037035816648870009331655639220204694416613817611670413981968349099412925620172684522041057630431635094673879895038634715510566140340793764265220664443576819808464980428646766146802470808860339570154702781371089145086786131647863571539920978446652283876044556337079806449765367818362841349243131354183025747872242680148293135751383495435101598079697456296724504572093081681806463692671459031067429822539956374055505824373385288978270779519569709673154694658392072269417585154652163192481877998641533757726707512937502308974194709538056900751702800638404920953893239552654657171348380324220527454681890566640982622927252733877216706995163985698850543627711949495472639425453860122575246116016567635358000260674311409631325734660644020977708483036962359825272704068173093921841284246563564650925601427790981547858492548741243874213997560443563195690778761953708566861402230635236908829250139894058777461110426313491664919421338660245743244808786883032052726689900185678062635099600782092886827124997701472690139147367924370262942121293304837432970799764091565167655622711831880419107115390526233909493886883324374470313277509653577926749166949970242035063163775216521063978196570826827976151423456187837014446430819904039542671217461550354730998733939810028185462001924628927705860944245415515703532083447995421480386382861005182485751539633148355792858884584947842848687440887738539427012118245717703274619360062026986209644726947838711734252445862335470303063259403745817863800034435252519621932948130111646676256876157918192974197244474602192052698090713983636084980907895079572468187361159664653276142014776799563230547289271830734430873832285212859746342569120890608144729738110228736577813217288849822371986275112355061993139201439286150905319073345681022214237533837048771266224981470176526547871208103390919361318236035425167815822047192277308072872372330157176207077135333090681686679288540192886830418185337523178416859257564282171100584639840702975792079945046226431196216548461565639874624496111356596310736809788723136783501735923919716453773421978513477969399501589245021855013316126046558953875719121901074719180717909813051040532484987976335394528787512324801993770435754705185197658807308843837070161283718702132434676149636518558954796669407483858334500003753739777845872280814703981858961782497227971533140723782672758984725956917136107113308784476341406748291210755038680462425620170824222014754826544807033828064354860217765357889400807074400342532363877757858423908719819223696395015255124349639896408096919922374707593540388447851339667136096966915516105291526100842510286529744535202748672109722926157065726214745143831039186468168060980658079572131481728379348526491846518500371316381818172890201691292132925019611735480974820010545760913950119238856599809738946620108271598312037385550249170744527465224177141975498814736042408360983474230816067918970110967922673506506522687895605205481552792203762779223047650016190466639018174265765514787763190822455759907702392014118349775787983013972650743138203302686057767764891473373457778391604408989241555237413479560777819601077211262865040289815660811549981933864323088914334101078767329281517298238276742747985548869629602281332264763441770165922134630037531096740942545497088503764802050362777124018839331361217101894709747841028559488121398526856731502991024961558669599148783465594841036455398198124066681196903559525361119287235720935544524732748914699565937219933946357548928529077885593368965831360732433115930103024332871522957580450883569304514520773760798529866592245955315225362289381358196449322387411827689734767737189577331166879401929488290884708515346833078785225473537599458510525437716905155231302708783129340519828401439390660242863240919978766613066432096037773773643911295292353499426878315940530104018125711345642523852745844604151464246588324993179387335333950884119278890239929613216931450936607209714627614880169262570583987431763948430864109124237447925614801239776718022727072372244771838911088224049759186903379375344752798274796201657417281894470766291333250206017060894347226576178993705187979368797770396522498993969161393162227852768462639761105375559017647978855807416851100717811990947115197473912497493045748655452516308276806115597717225311726646184507399021215128112695418172949628414466251005177173220879297984048339773094309343381582606280136877721671794019688569738149002566954360788875302255350924288390151150829725778124832076015609422789579647924626305746406171638048578545783871085042149875834210427517157048200549686287735929834105247569958882670975190735759165400873145324733431039208250875417154391365585268434829219458739209840933102535436721484529131229743051223338838913426181320796992604638053720338504813858266548506088204575904287975030731777864308078146060941485876130479596327972623598785414828594288549696962289974058336437323570718122482875972724353763213747205867337423489398870895301928985219996111286144555921558689574211652086299181640823369575099276896539485586151594587000659063796652405906194176684101393178578986053474155456997792763573740305788309462702991381161239494545635286631314754386328685016241123924140414715504580868069020942900732747101813365733830629968524299103474011972829691779195163967526825572228925620490416376107977424782029661004829481648671100453103153370998092918816459136742495453986670807158208764309437872928540857918328877548463584113262136433362592785771462089723521289258514033736000770322952127051166249761231233711413710762522133024381296973499242595586286635027003323596338380420858530275979239142217923462017945935534144175537326739970068024468584580918236332319213272113671541975041630082420615486853041268757521356190518986778121495954115078577141936023324532311539394800098989280159847149726350616058008140547945120179092130436769853931171347975854262657493331050191654494807431704619951984206647936212605815167203859433636518265619417097087923257881531165682209735085829080653220925856888432104751627908747227375572814024274676227388192621227651609485602237268040187580642780121841372944350920494488917643405061147705921862247000009707561899108969091538822989336901677770200531421269197888357083023058509385344945154710125696476718518176794532673330599284593416051879608376249842659802771023696356680615157230849578931625979982611151280145104856297238061942602786175678572764204340705708013060870730496271970639742747898520285686835030158454778366339012457870064128488304306676332831147447506686271740363743146087910641096499067670073961085286214567220851393112739661515698452320526550952024177839393227778886154468938964089781547216467326353571882504721568912326671428471543974439726298531175902289440405263754453642343754231172222980270186324219864930978588819805673240717415838389085309311300210398876113985449304672519847688329746151257745685180895765597310364206572835163987859336907834075106560640037793899594640964614671981569383938159458564857392949608660407866475841023507429071049271558520198760902885049574641172762022225961528337784715990729407521618385977770407057979454452874611618959375964153815805934783886387456852650557878248450510319082257330566999433687118876364324415340059178088196647781395751176192920623262912039549674113120615823286063144320746485119602117016658737255971483548970509139282610123386868454711958065081656330514092727199943002354202082105834337492521739808102236851006519540169850973639238979420255432127202975091524765197423447703690733249764828489263130137087713070621966348197087664061880209213917283231685732416373882298986630332147832555638698353967600952047498042278278926799468826060636980097855031634153308250101586669596267905185574894856272874654232971958747024195675710487916587742393812393265046686069308622208739622482998209777126628171539605939512675184636910459044503822757860037978822973655982878832409381079542750208104434797682499313648422283890348278742497249029533091462072031577107278943119819838138197978730500172889374550246190363755652012057129351499047484897836205847050503393840083145162435300805807883041628723426848039945098877205278292246660399197377965451522302019280908516980501398775487865498479100191071328358200540962436079702620385598421616149160596000493322241231925246295711246937379940945252279608247129242183968483756499780060914659445806788551254120108355737207272260737054707186064568599248721453264391438267142610018294627682444895339364894245810348989345400634028492847249859745865567390497888400631902396988205165872890071952632842829415440341526813784753101422289102888181248443253793399075062398326625747905208430560672431019622295329570826732800726497582315451100437515617248939823331374691256197437187414849776876458996709312003433310547732954197360830748714645143327284582127238343162542560326742130329469778097331930144488297117694605699039753694114310755334671981819808423023195884454823762155674953221228367691942695898641627493274802098450041676560761628384335829005968060056688878611613999239280034275713380682710062965915332204857577740456092615506572259795626657605353435221779343927919986803581250122713771734750717133463935571239297950611862611852278714253613542195432187094410204515161486206133739899050909532811991730481840254278138790227648530226159190154640456014986290678325529214641300983155045826944452052281582895298393162086537966081294056625373625996212136121628092488660460217768204067314662548892657290991983086882861530380418344172207683859977845715401238402188346360143087227320862076180487795144919834594620493026342919883587230587608664338173116285965370567449878908277531312367618684252174482608953524578829524203716993350076823339830453037443166148317003572788905408275727221095411998935264954156582567028855982105782271373347872178239949747474207520910563900531965718495097789909719201748142129588958296725649878061467465242080282661138116246961947271803427333588311199304397636898754477078856341882601789201189607722184252952049696784591099951524887500444179742113530826368060228818760857697942203319217126640563379737762242390324832228002472376079986768494978352561591717964997875508881979551864016954849734296908258834829741748423923290921474037750363626325446557241016624896415765182678739997976460532249667449527388199670486449100550539573778151034746410686689945903240744627145062759137599990496988409480282951479544129619383186456807768930400734096504386138168102716454793985296773529440646489700104386571584067069496529719636895984820547875470554340632465853621544829779480380525922260670469010945343181452645427561076530182728292669578263408245267225459382329341412070250345413602123401684779979784603582913805012602959813181314900978018709029831258449754306906538996317449799584400390594295607714050794990212668494521773737188951419709490680481770666110453457634531872821267500141913952508353751367949456134586502623287742240628442467919206691929136363351836321548991498993709461024065997057877485472774217959209296524955412853879068910616954531062049038976676201733059876725523771163114461273303652312031486184816791750262039230122778674250683317786424482245697219390296324095914778660303364125946440649065730144404587410809227635563662520771313582409887688278237411661930544832312922554243787820853000543019012881743122612622013583826456432799774407262225427585687585758778779288657404594631270603188825478505041709914487733415919747119648388396553873145467050187786125427566676991800692528443416838105741252461918725998364429453204058948228029107137156488253304467443054599739239847824097067861560923444689782649848615568897432694493212892289825898155725325490243792279589162118431169242985577530077285054927448030546912318849686552513810352572760531566467362878722919526961597200813750881654899369945598878980504217114847084448552192038702348863893030268187274056631838115320993306350224954795720893487198230597806737659698422924458880917686774272962676822932110844697687385297564556033307649368026139751650705834488349488398068868967250069633319851361090750725980582266598341424459831163904478859929709251530378212217436361058585318973541000479701686454822961858674300411600311812888680492028135623933919026259282922200473341587107136261403299019074477778188982125971319952100369009935549879550108374652844314696248015153174541052963066871926734500903182979271147128723387409256032854192112914543790656635288010524214441177706952637813133753367407738566277211293531389069284412990514819741010712423207191924244099678726946594508887257170549428452457179082082674138340058976442439663702713135281453166743776029277480832292086255561449376147783354230743528550498480655190149754426141684820810751435664428066749327275227053903321561135882671512157770601522661381608183305946799137467211322061444605297646033102284694074830997724807429688140957085791425931699509299465921085148462310211637050995346653430249466132871486638291000569320246480992904833908724329700454201433794208985444955489231090272392404807137179580605053451003501420774605252572337697221049711412147241111441460521388393751968141262092862575246991669955659321796240893029346470386826417212802056046064015875626548700637008806422761398196748084494209478717873863096542341288554034564665048220403856773054231536027737712859168297681299407604738428764106564984438851545641304598643292810801933340685033737546214662381697989059593470000317201047583679649464863895937091737801341341637578999553084455193195720050577288661271910485122302540307467021829942325425377748229103345220918268544903524077223084710941455424860106597045013538173768891335191382658929651842344996833563502858808079061838625970403659145600412584883948979868736563024108493495983872198097774384294720360586454658830938145187432609161425722217899491641285706405614835408161375118426486701890138736580927224429756327174650403755818990798009634770530789037558056896040341161066783602213117624442238140556451262644937928151523930754814136408081978437254467430570371259054023617114922850816926827765598198711461869576455863229800994529865618103567022409140077331252256645110454809257567791008320576639483621621796156303449792085434152735854193367607798978719537307632967563883975546470578139259855283024009497785293694091859255161068905474875400496509287345421679215392914319790105844945661757351329853654864409436954026823624035081240428541499593637890916038274076571609733378493496689557104374647714593618215906621180036621995183255091228256294808069349407410843866446349677752155568064926944214775314665118116116900049815932843362162707962890477070622027436441659499897820540641019790317130131679932357165120058923795874141563031931898513071080867238946518597097008166889737968398180756808231512899698412600063570786691543052938916943743710756412738937482524392746999721026490017565067526376426464871865651645201224688774200154769575169105707857798416478813570621884178181680658343043187838665277825624444660927947887928976438211593152696905107619125882818928436162145804815595868238552793826692276560445823793563972318514328607451433999500260940116346770395323333941519544077238137908925230455066661096783428079449151132653556122169211025532702476903788035208475792134449940980550449037485861870593178375900441495989450800483678253255902390005011832829436082758979093038107244824917521870427562704044583154309200592636901448196029707891625807785745407611343077994735049130443451019437705259167421535476322604416579643067442884524886898504193657182196778333992002927875141617235710564383642516465776087986397137731046541542060717222595878940844803675760749537500648186347398122325437578574381249454045472862982869001942989757882204755953612611840356420612627490039861948664912156102666727633818112032596916610585116815072244810029597537117272038368320106631195531508487043308031230837529312521005085760783091452008478142947931657464079581469210069481902604071571402255138873852420505703217736980971149216175449814874173584878720766662191521392865059446187574462918184198331185871958945026721694839758789633772634539540361893657671981450413190832639060852398142955284230976137924616634516796533956488842500718935088365786344511116272660352159001341579674354909011688730776867491084846840116191920732281752892948881038575160840161341794318906429397475900870617676249678389072991237428778753124638447435636032347543903262546490507305918203205603609735796204055000968350213262078663290502312975482940669426868101917840234575505198795710313435982849450823771945403188347836530842550610970968273793359933807918119766689113571322385814306317042936573401208482445658177374795455543643830653272465491362806328207149817000393762196758544510720954504731734177622588759977232917057121234708736949908748755305766777989255067952000167668174048548109014846024399729958369210428989476445416490812356111888459160994797411339118098413062909110219511610940483023283630324362963651687282026953622707510605062243697454290114927609736673459227221636808408902574750013534460178183926637842118834489872650843103986041205573952906156540179986406604408182420384023675577885283532639434457596170062309905185209447602136028200004097106791600314504490484862131637583003559602827012783580498690588886527865155987547983310024343582597226201565412931257240238179090772888771496553316524770497283853513224393239662978066199879375044594635395107549641625900288424997297659048384399739722306852331065413258198123008072183447860530160162948257293841089133233619558638644897406795860774498550583956060540016576456454598191837476190028997631114683404023767112671552809141591791246330373554115251860102226156916368986851028495112607662209277700922121136059986149666523487198908446436506511943189065902785458685665573622113406727635633955198850609641342640839567132355979260404239836262281481126862775314088938395754548416881491294963221855354639548171007266513208804669640351461568483679423142262302354579916892763578588988172333566485746222348243013312209929027476081801272964927902939554461660832266780915444560028386074634713276636719822080231275171080932880939105187192198765295153452402617277460491860670466287056457337940601543518954868599634522791542809580537488457972402409148892398055743943845680936938223876542743731221820535190894497942111477423719418002735686013284257492013012915574186388521286526235382766808324725706656382819576132878961244643516942186262458099228986736578817106453571461061662802235754815508671164071823888215464068866459246797769989432087321796004097902891086348799375824571066850318485652117174295272062880077712234711081004352153174589530855920576274163671211476808607208780190249480346948050838125456459383155006280659919696931679964824626056779851818128738712305427331777864553668068781793478297613883401311306955853044201517698400687190694297295349405780880313856532778223001920536921305576460808987584383510336994708998574914122149979638926782831254507165161392932163068584961293503807976973184029340525452011934302481724140690165864592438342951356931170494647014748078335437479748239021190142774182042003843008839325272560611408023950509356895136394758546066131391461940334001340628676476106866213085429177180260910248746124634843082160996073961242190799980396276296050675512212416630846734731124473314084236106113701598330371766753703481953299521998247544913721349274860622257798854752684846109714928027276964781717055988545315603402864494585755132484839843001515452810144140935032507208381051730187793870137148009523531162137149887737210625696191105791001616071999900786534424977909679169557338853132466400205115448548398840179096804062049960234469288281373674414032756300161229144498194830762307765727630767595288568582347249651742165868372801348629289480209479200749379754635927054701230867123154284504932787255403858157025869926343732454470316027821092979277620104003509421190736057697857605667986772682134043677753037642135501858112810263968813928395287656089627979874216873103025746643555437629647012415399409480544798921208138497094220340366456841692911657547065077598953348112557808131243215080876941817091787359849866307777605365730767935470210923818083994424422071150055353300536396931172073640027753330279126546630081282551003482126595419983745369245786722065346383785170122435659637393492597388940059132180299467807995417437136299136162876113917167208703946184359462163741559817260804811631854900167724636594056566977762142067599052390304738303950094460681407555190111831960009447168302400354704110843910771228488743333666474303171791076693248218832994472452423491108188185211896330637651263058896016546080779831321366431856358144978820804018357774418104257656358514149474161388732656641019458218682862084352119157108799233831797444125145281530199593000292918610004329624779288255563107865786887679060986988504140472309033963489353277282240948230730944742034926351481666117774364739187413319945008801312278711115359852030514964626628439403984885545603925783891644727776555386830591001067198455536633096967300959092743200395073698230233444806438833858408484968435858439427105556387875006524892660084307226845937255674483120293772473257832278302628240656626534284295635328235436299508693179563378275237441778378998362164064796675616343976934697992103832205389692492885622147851455617027844781131011558911472102335661618128491390292804844286191393917948670525611367424222269467773093617880514011002430215126171120468976696499835506633079125190013244363938914884302849239448627672280677193973744641114839154910345398677579657058321388915249616703858851546528439781427740251950795908075833734795146094727899772633783052268556271245261629668498362741902189971886658101102028135976877296716917831082786503383113218467650478010204741732499859559433386167639018006516940572312638042248958461546375088447203734938395590127828868914974241645958423603702461181856228889719936083576279169639887494620813522766841730889787420582764061148274679902029583084509914722424794551588133062445130630363006753613943965838972735940846631475113451799966485543485437315441384388011698374906195895167884278581488031503047045111459513374308612608900817784884248253880366465285981193240949039489347214825455830468666380492191995644278907260028403795724348883965481116790376505973578311781960237084837922817937001533720007159030814538739590518332827713387963447202915895032352848370271124433855032124146618483465374107017164570210450822192367353878737368966360283068314832827202767491604974879214961983450476929931674450425459577849831834519976373182141386061148982795025482149700008420410778512813975416587715924573219113932137177585849586200236376174872322999933411106046617073269533976364375299520832542004951485621420638694870582660973628860633076767734028030715700010080123139049640272247853859671926572240435357625820218603765428519005449400337222515261327198712375902015935128820099754867800336232281804018467277315343315030300094300281474917850807171974942802604332141410725845764972060662102749379282039104070398621820506827389086585498122800189205323654572065031730977501476321265889308093867587722437514901314799270111323005570157341875867522446096740969472742726913872971005161265654237267406584773419028293833662327823530275416313141729225922442638713902642082145664468961292877327431605754966350314423365007753295427379217726226997148300499324544492747281537482709647650533162605993239957591955431678448309258018842628587244209559580731522570030245198555976115484993491877384996512284973470547385428407652026579449535651025800098320163305105933066286994123948758013591689436641998859763072675961094795906267875332652759673127570619495144863391844415341823670986425481150930296517097344466678321712377790982165381833275689624727280724795629718415352157814645246962713827623580819332779580534745799363620596869772203822643436099362223814325424173555236836814133887490258944695889778596914483723963866545052718914741544828108390338391066732618701050304656775635575101030139277307712470352430789952859147187268059830278712725886785066400521616700361345394688545741058979279870298031094525726013937145404982497923246044862012547829141203188226549139173582535019258156101355535829357995202823634337193769765333176683041322919774544849681266415862839548142839997426973715334978889093594891595558641731462194544857702374400496559856700363810062513980492312653368652673183001385491342124230839632881349722534718337253236989490130604128568566682682897526979485100903529746473088613589814433317853947465176854439483896233486053888706827824927668135276781957185074741453722076370443100102014897413183330928782809603492473115510535719840016480450179107681020526782195270668254611958561568243376077070876527631691421970715618745623354521128856863959381978605150576153095559317302212067732712696549115965726969548548868653604790828706675751389144737868353830952354792846911248471110292913264819858382329780948993178539341249758019536567202258070162416238569079612240736866359302596635266024010928105984220763805810024114641230305518840003532186179581726530887409678370687862980249628711085007539650062544253341978113478316515750291443312456410273136267034289214105681279878754055554424131176086063331490057921484407199347218609427237147188669779216130996084801533668412741775795965207156182742441581269389151405525486440035680337291665705599870116044728047608957723331742765244377779249269741045367538487554719888741966751169883426536926821126138179784055535995420473335100612803927737718418464082930391010124910520799240896926355484586808523817069007702438737618831173528752638145396640964441322211257222929611188462378496779774548880393934950355328454609323940818351455066226976445924452259521753311285443926048854023982292936981526029202276757891546766776357372385180418349055403027616778414842272772495092011261307742398238501776894674866697051721401150078757288185200445446378648896807539242887760532729369458207057301748245259831912572292307622266811156602025743452127300100748849941191886261736299997119432141981906934085407515371890039786671779277510025204719405717704565874181317139422428909857502177621962472872454734607113120091713605068942171884093739106194782664774509053601353344204185047887181047837929381844158683767883766514108086068818123445507922827698261154370614977192966170728629700736874862043018553491815191624796684017382443657647679185737668603853646091290867549254583989552890409383183137406603249189784582104141825757122663186490631695865752307275011016141346388494362609509791368662218126300600057276776954576857567090660310728356559410353593579106323256094759719436038385253464580541482460593474734219888713187698662638880383690200342960414296611222257919122403526223135754116577801520933828718018182679701545691529292476454417388274044387873551769482406292160047612539264596443707795553217080436700689074207451447619717132523404607459466147200913860270616864769073369016079242537945392477993705031337652084119112586878685272088805893260505717681008766517275846142907940170902065720259508994282669368126715582074688902088408530005787879263891109447469572968901029196310551804353368934953300071615051972260901744669180404960153368893052868827530018304148432400025041998566663349294445839693140058440866092089232682699773668457044409331186165027841087756622034976537559662802713784550445369388978455496470405696597307637925299100504191544224720650138383585927077400310101545963206221251494619979498553579624930816700137848034336171597944563702726871841678024444518536644187646363779418431267958888276366524845646800325226512743132579561282909219730734420606528614202701176289913930941671686807555145430517569383871786439124160762248776638957300339089917495896313495407773213706198672254629864994561958858788562994138964821717198550451879884772645139814508037740938487108665894248423228532550803166171360044469828018121088654524547305651470320106638726021676717387865410014539908519015101721393080154580048235152773351348137613478134376810590869554385066259478714216580136144730542375145705404526113600701243614164534012115599311463885990866147347572629245733740411158651231920379899384591566608132500715968067845961273161788442853205956055027493409827653797437262907811659067173253086187392936391904088620382696410639758268455043939440654914548671895091567622559461790479519588358949268137157980362255334347915397223415743023782255501927794761353006028171775315029623532853568984660393384268849928366848869224841740462640222500562192491096880204756213097745236935016083960472799142759712903887000215439365584682073339349522628244842451790718657230969528932235532241306617542978780554459071901316942107998619587948072882074623132960239240611455047202182088180455828662215342844233870337150815521744874704013644737997405074411170242802507177019473216035857236534791431347812328811086318473376753173014913404824428201376024275123638761495892304800728532428723222946778117683740962243993527111299678405883067504494059138544706409362842868848495224630622798711073723084927967170226740238865083659142345628754747996299184960957171733572899669603639052235929891937931474499945654425670362561050098436638563655115524534481415992377021781728884589905870699808522922039202812868150765222215459283636630028652671959051960710304119840993418931012696829546741379996846665190317359799162704111629219833439990056800246980415565609361385248414398845920151363646215222665791304574348423575389396946374451750293094531615821629832172611925719796042349064796938205203601326443936198873883412002070047771451616340640012761419039397560074630467069919515210897419933015452166468113369079530617079110833762678709943036994319506379918610353687717787038274088180857728521373959689147437689324205964684163942413666661750248787889191803737727172142323242904724034007045055817647263170600787741475798849250459756577566134152505885671950083232782163572496191460486506834048275068005806321681102459831841734413795817538983215319868273758741473811953084113632131675369105896677049680512573494332740389472299143804291449092204207966286681812116004687217184948232597761155538675639227616810630815251227971683345560672168600044723324323295197898463450455982964777092860363982520519271409564507487584563833106414103099827593409552884986741718105932772692046841204826024815562090110380303330568466375399536366075152015902033958044986522313752724244914440202305660124837167608739500493488757259399599581894040419669781002552284050715149745374661732740391860998654981445525364166070240540179506717382699360406321386396672085187202020578413892083258006390357030587420980592063658369493215180629748383344723434105756385489132870741654918431728673170678717349267108214753485555275538843052285774654961503881571214712079279403805101110312003431139272706584813134480708323878840613012021522083810641603779197469443453974846756760791759160650079774690917352876194795627097742258709912201923637093749327799470524688358793031720221873031026579447100448877404187153772334038632722551296659255482091702703727772006591051897841880128833888659479287918524892159004583741717092742168234139176326872364821445209356980865469569199005319485227854780275063252441447703307443377986738986873568751712649869575350345503794875209952222157028986566471061824173682214633398641416700959620752123448615084707810351485303922121863521152982120637250356625493347682528881605148397598078653998790130160346966562519430288121167962712540862003754257808772679008487944653071661767323979510273571403753444460613634057886886539508668142498945533012685678518199915299562967707930406372761384696858966569210968511592215422492760098856785336597647608410950080390781015499046040134575165251862479418397414538165748392577446512599943134415838719324298365537920279671572510909844804914725255632893635998336328674301056097062860985639605280221466497797807058865889485388240467365879236212010118387952157331307460444115138108953600858709108759620581406933735470305189375372021235998018651121368415753210248464805419056781449698048813265146743568610313577891619288831707853715408041972979850237120335928640626211402398686002406485897815155791679584692661894024672672951517877709652037186685040085739525402014217684440620017752105874143659201010427319169900669584734935747196810078917056743183359381710031138292495288107873643002865412201264282033906392214825926679501912468765410848008798268157946871443818782555953280019348091236365954177014323669197641540029362070219441382394363222612521866673051570091458822911056262024463569908239933201896870701019931007157699981261512999199356457590932401264691949002279863787345084216893759433264549892363607271768878304902843402401285798288001604452597386798996736156261053491812621819758572839370464256824389335137352057331079379259193146462413313497312828562104326119845673430946746786855519115222742922708062128708267820574895906898212131613233585826490250253011649950347898160990378828664094136610595733961912916064164003620424618459712813312774187140223714833856237071833216180352502571996091045948427158206582636032479257246786699228045624920752128297703943491655046625956445940938688765476022075116270511011826351924673343465399605935599262685759374214413423966971285164369585025531700166978671339398602785623214931207545667264656463060862901062206483833608354068500025606930668342389593847662631112076169424028524231034744307164480470280437413439939451534773648859942254607922371865988807431757744405141647981565664208897699633869071286982082225963464083945260005781781408788459441633663529635300174159166545226124924909374339109750036612968887823157988600959559072191697046852631842983434630231536313759687111821122011341838665912084270695092547091356239613853937912397514212644770191879632097030201058384484871628772239489401931388447885497650293936559567633283710941662508796217606977041034133796811138362301951815659398731262418819400354521383910522992682980923288537373776913216559027875023605279364572001699158037187465264996441720654149200786999058053187856253088553999496404362151410969223724797468350922875115882790108866051074687844771542121158778754949977996621686090561903630855343349660556431150290736197751978165672240739315154332748515969517611622046006990573264691238186865856667391740592694825902452700942194758122034246974972252051480370169468318314562207479101738173539571193418262887908062781999284364368567779613368750742971000093363396347331527091173811455476225933037087580050913194061428354583807061567370135918977029257496050744176868500923144535251886255969034080124692259406801984304666530657757672353515980085729185933892451988653418891010893790181109198586292692865717426235091627087115014167492838910064144557835938312056527537211984245783164012434240064118796697881380283002119911766935182188899976536126544790378071233017503496401079769415599177572123832716183977542377177243182580021584610429351338963525009960898024298193512378803743184815168346300554861474898492957720642221799103198805604519718117084582725285001927300423877280033647457721293038712044845298061956814016832378801090436485357355634721438092306588550619743323981400277726787441370462240170132814075283018925615065520958851488626456779711541253033285582701750161128226932974827101155092178888017242646766173742803461695663246880243748930704850360004245708308251162225144154923997552588156099844977541253602266340971109744386848123363700172690176886671148487056372915494768233703635598461806116169284292657250819880685790665313685616746107626850171578766498816477773052942886674246618977144559728033085800858211962841174236660917589712990563292456817680566151079576629365641833847575869505083071354523177908574468244818303852992602617699587219616047770407732998643957949805350791387543869777449805019868768541272502507006762136451615006451769985652882846881927161313050714632128985685519046270645552260670225456317834600347000823955445149068615052813550645821457528191516559644362924753018669057311580366754339612302438285102828339837145399899821794747107087037256902399097892453393487889986549374384118899566285831094359639913606698860138152089445704203506839918292726618623923165406926412998083849521350167142230903200764859778416507985744378521157165970788685459121257548141206294932526340184378895430039074524927629501843892767001772341772658570728962006250382627584241126618599866431619289847520473579033795317378474954169471243355713623870971206282121569014166454134096808629915841783273879027120444354721159116517593380619128005293861439870170687855095012232315033198346106150691483634266771654552475580804810869076506474662183774089783890877502611120263010511380605997217192244900241041042193959513494405908987806729574225174032647079498997605240492574302283488734475441058308951568849069844867472788412333775609963828036935028420077767087684153636451535904718566570296614474064436561791880710114663034696467195574211876966386651150652236581354618616157101421209483129352098540906694945030463269139934027039009649794209783913198342716362669720918514815560355138545197499232469267037458894679888057316305079586661322107926864407795264785576698386429957982930659354247565430938770373282644322471077006412115600069144706511176550548301452461721646847205828329566059577045160570616160640299752519985532054949796578333612778740647247419798433969459128716144163444613253776596142989720533114198853981329131528652312257987593360711284641666388731473367061378001662295538799697681503585201873694281769579151433548318818956944792403293157941370936632970851672346119994924154679964530435169144134663513449518841004749681888775629783187678922420738236542476683288205427448715010045753710228246877841590594056356970987099783306247387427388716061393521994492533465787679977589500142612289140224497815713805874107960754327458149344334014575453378776782068203410131493846246943225061884968333485619061824328736432788921187464698353372285821245591579707203927791361818590222760920014698234042450953756485711131686211332650783497567258675190472765907840472524400045395472234838042773901567731414057317929970978490180823815539513332705383965435718690772225002657726461467626389015504479147547419182894039103390026522708262420953364236129396151179919132481060189332878520581436844576238872627675290538390521179383239142093735537760388300361995049637382302391142095588140606926088200224645950166496646063799927456819565265169628049711040919460154968810621584735285297085641509993750331295784891581263067686858491329018068566795421841058129546177386792359095373809477715998530163781893035507585913181875248293773245357548495797608593546554896410281977063311258142023087800462849071554912728695049026442510434730543932011796722656442230804954429488786360471530827827071156303130777345489399016767051935476994782326420815882701862534536951090767338798680651200526829665229586648378975841736383557864530113610449989338609121988474083242744554282333087987478381388620894135411309917309238652613197959743090865950280329385854465578662934801931930810433190509534921204022649306886828508703895877835273033807505728666570778263202320352204459646331372679332810533974192893192131530832065289863989389837968967500044481957316831233697603099493305703387848526415149198127905179621704571350041767085812727807628511754917701776383180934342714809089909827733825629638087565965168083235215626797729202834353405907288532093783479098680851556837587352056399226117385790124085175359935062561017848288706984347716548884369133865172121336589566944363817441686310368779578746178245551740879186611696189305340145997166195830553477513990713334587092175852151183058401885998172812216479226532844987665704733063942950185832211757059092445611568043512951392041078524431082309810410823399877615113452257779401596421673554971365501128105657561352742124201989752453273054820845467966536013943062566923598349428517632472911822543649867433854697845459073419092100751273219210786824895873955511674623635797465404883823938464242086956343491592678035701013780703938949297994898746765725615827663362924572873904383074700775976547820711624896064734420738673906027332283929039219815354464392250924167856295887224150261487847222001828114965359098321653495953753139995570877833225751281544818458605180182995886383064245898120241429490125040447278358237526587835975043664515161758440721214415983610000025608565998794867543051519840492152365370382976460916806898235978844202185504454597464381585265081003572058751933354746234302151529945389409474408673888209294634640970526584443279305960331713273129325002405503425140485133456340289392513602871113652341605984321610096550401183691996437870720856331602642836018604578724714534843507428835083168035285875267237969555729365588937365209415878200948219335340760559154024726402595346777574157216895932944538289814965208514398433464296740248184293459982532914578449328730721856068723132878780851701438458307894396942429217532709296824204570907966244354694331021647779087491679549150737515001655028696766727824498135392131497991442425947738929326816729435138871516492708405795276554364082882335301768341373280430980187911513334789820315643598517974638129089566521022801024806626614255853063713485779904253082835059894627934910412435341566977206409903268768816591949991733885569083342009162490120492187131284646346382558489644250374116006748946619152103626744679878363301758977941464309769648869393152809374598540858989235492988688196472161647481878417575081351318452368357570676891751574012335068740512380818365168597026545835457370307901924269743935871744075481660755843812200470794122632151438705839251895416788528412146705719766139455327939381104062552026072024173588114742279846676155040973923910435340814110595810999048129000102965339797067336645649080194666766604343268399718667784747209011730956984206136760486178799021938032331444014404847306266853760559663188393585761645485832055442354651498517154984000078992604461646792812411388121264831804449438693043408317260612713656117551688350825706840058914849532882558820582480054280742831402466997903267271437738616959963968730161535253765013687653256742609311975305465702513919873573900183507765330583539217534451277986057201204457256373572312095501736052646519733985487578999094040737470063282321295262819410322856640820955583086138163224658161765949413841593369058165309874769253620902882418946729458337368066745919768791466180189501292395542897103195225724532394781355100195204311920902760659718590369196906037096256200688034395224053737792075445145761873650723684204437111372919682102890982851927720654142170197524885059355922364173341464173702316770303633245081357428074786328800831429012665544977095405623233128592015321206837459841667930824156335963470976537786586703553757273071970862353824145465526656383182891880644672396911681882158165563516458987085870636659289495269971990117590531681496736961066890745704956328628261945544730091446750939779757575919717094437613804326406048926396810965696225458232873650926656695393992712277246043178875911377167102619902011195835012640488990562423679055669833473072061968249405945007455226079089138831785885166664219481277723663824367438860262429788845786999881090240819225392904665985118830252232333995774378304012835191543583714615405985024482498846333320041864901426937669315178958934408661000041245944251304692120454451397096973554305347485460542920372429878444442986551326343961361074007319509469558309928546587641769968012019832511072833565590833277338459178637770396596023393266159620202639097118040546966958192274711896350008955779045320434763007679183354397137326814017970630414116343055994683310810688408979628292581112828794946109079861395193978946310739762052622049865846213419217506117988921534714779241675682207739978066259452228226422422508299147121406987693311591553588522275033697575048621105385563573915000121898607369998296603794204220873006870156685005650651437203438748529163948029448275700255241118523192402712563078582337810170321067429627290982819955158990577619131828236920982990992271162762965215954023179292016942520585764169124292356318654359042302917604956403213783762657486867270963057458723840637229579399884115712450553792846118260975863840400099631774501699319761800273741361236923698717716969908807637861247076719265932763012721738872744293133878238406900876321318798243264856855252380867096503232878278375740164635139771046574568767187145066076296022790457176301564749724282219184792045886678217607632702189196663935584800145429133423569553596064127888850792867693271740987599329870146934046119101898120616620384968834310023357851452372452581453095973287697538516288629668905045454562446661055939973968413641760728377234991646206928585354875063505452636286553023599686596026417978019855797544792551085704914395637849658452636524168965006335277352748695760560003480386676617450233109134512104859760075075914175360618804531754128373884374774205304967562474924201313948481446155782343927045885810290525932096809507010226879756213907520995852271202971016078096687812242303303161947683220024080200258674295501806784268794366424130406259334699502931946029941454003677967712946503826117352871486025938098077941651329419512269077897583572608121163845577091218800450304270995654684736598969542767310077428721821827478181237036600244457755671815064931231568885975369214656982044392431726123097500318990602871919414614439489338490022383331968014584596349146339650588784504435010749684142027101595016320863786885034632714951974544748298743425493521346860957297362660149224186876617271973809970393186883953890554399722334271250348943178030266355427403505244859906386931739019858759242245693266007166698924109704577925314038057235878368696297342244387565636020113196796131157954374557017391357384666996251983797827232443912590307588122884611718810647023878362388707121376833710616807618706133207982373260675446518732750568786698995520088680712411446304593748878645111770740586108124498888650149117222722724501345483373636675980917407618712353152634985192269092037948784386580308414887101477185045649116429007281098893921853483952450647431236691082710519694249168550145726709335949509930250730956772519462012008996080672712881887263040031003075614265217407608646041471508460928457103413486581277972857658459993798869242927293106220046701313140003989327313760950303110903020915495521849527813779638522836195809644964609513278940688110186093838840588690675185262573718697849189279707919831998319062366156140602011176814857968223625099011388809406366329444567187668026242130283890101559404390805571220187059801861938411538090547157698054600071030060111742670692293428290816232965839383351994341794476646188423567993053771767311907972538314524512565083717854964057004541150063024100298349876717081275205333953816394012163222554648975371062541877745984515153529087534613147336917283120661158757275577110962783232529090098933983052445013159451301617612768912298941957834401511897290920767574517168430089166897895834602392582413761626369312567073835622298992766498419556984255603548155397797226100458611323034397019670200835281254034928363743988207397036456865929725799066861049902719268922105435102587160460524628630056734792138521600659033852209146139264562999435288575977916267243015546184699494944723605749617610988188177365130791446934293863835070103221741383768605579428057279800617448072084424750342570649199831824792583783494511034770832060513212836633699626663264228356486484584177036377581179148700276709520439186910543700566299608978880444857015944217440886445628666953065333887561976475196565940642081881281442091720911385076181084442605225763930712039671274371515006764618464314528319887782683001473731860964971261834550388161259552636612996349142130775317394984289199313251096244948746291785670706656366124494892056517957645248909508663287085160032697518807887746264555417184112543523428271187444691570651418494758496717160964733260531803952081289164596094915228512368339073574579856744169892562434593892880810995788768166487708722797115578735795436704060493626282532546179994226657306365175951776849832386382648936602895692282005264767180705933799586326428517851104339340740696148067347356456530801823283985361498487861358077298598472206343511678188984996815334765752222101369271400317048715819871465334556192174239963645854817118121999729904420291395836501922259934462824132174954205248255527279022105879501139405591564949169352878631650426424430685829287153739692953072123848369481978068505706998639560903205378015271743188287960605818654991583787387043536679843020906095325928167600517702736198312541986917561191559873170583099565949591683133961623839131533308872754317156364821782818579241117304303414796224344478614359308415002868361710869991475892753473884708831948707932152993210592414173843918840867278042566376443982885296521402943777160034543702644219925805662678479419216968645497089436795311181848247690369251145172234562346017089687644028571048278130650070544874417631903656895559524945653249890886934614595139459451145376369171860392593951192055713929074122777044944310795771351258311911800310795381901523407820166654735283762961407016492461509059452000853342927747832256421720016759769933489394195515652102877930134223186897036670746036357278016086632238734235565525857760047074761884707267653183357123638420838205681195334797931524865589153489931679766860015867221608686908221727586719682938129352661212222614257938825252852624251490493451780951650657905996565613373138749651618241009394704024971915391246786698027252720562008158584698514872325060088873374854574523299249210294409136819044742814224019786496054920935217292400264294922179794347460886968215785127044678864558126588983082958215240213812899273960496102335779830932234943113808865484823054056437897160272829294488127315771442988363153265084540071487527986299639845413428591073494659289541005094288095399287425495076310048926494445195184056528020707902320388326575207887584879977192685347297822046560230775697769441525060048675100845250569166668416046696527406027458364632894591896692619249407822415195702338884436607815348720600786049953586545987570281937554461308855591184115920917375433286668314003141604867098554056565492813299061435915098678808176721371916541883189564919677577591792532802298315284255340493031139863580560294129472147538036790657402317162562003833178123490051370707375210724443773321843709350904285622059735374603556967352021360085560138952031773418146282221680145678172682796101426036251380626828403437224800857945342745080085276622229244214285702449099384361493920125131473845520741238577864451294887853866083255210512909170838932207377019409324215974234821581943689617099935159363013464319673404305477516517039248545462256242245258595096954385396105285924610902303018074182770618122061994771085977992700198731890130053008994162045448338784893075552565566397408488050282525862319850537010996888971480616767478589328784092620637298854593948895519275267642014404744611570359513310070418323386995371593834334330038985121412805029671696558364712224402149483003188167991917028937873139897170932397121133139704008048349172181887215487608666779450685251060155602930428834544414081381598144150503187031215296518841285438073275110357293578578483919394054142399395793500155701599337264298087616732603623887933783864330985504357839917561041469106544048739097373687060493596943821640363348494957475543478898990659203032524318268075033860224472688977608283699318806391728903736452417876470751341767692905243361886833331477303291905100510225089482596384594692872412106501732592371683417809381670768244266123314187343523791485579057886988203931178994188679371708905191087907244576828999960328788338520770986184710453335822590761362934341502119556761840406281076621141993436364057705553836078009488355408886036899791002078520952696292462136778602201206576735562858984733584218312824560901367192071550137818873674902527725681681941928659575385853254956125574630512623159630749736768816644502911622271351269996993641585923347315394239850901130745541603813127836300564716710080959407445190355037150251059472350703290539210540419381044957930324956802523735622192888761326450601654869019321206610293470658047112356757823032600031525666836885504652462981749771893354350110606101431857337621100854168784583654201743731299002593194250518022447728719582957790387806314136209328128321397002522008649895557029930582435864066664628767576336270231469022654031332198723044460517455411142976905924786791049637698593676376622025761376706017747314538616753198554477341735942111871064693993140910313755603919031936094865939554505729496260266524381696443284106448239610516835735141636256046370461927945520210737779861479952799251056632279923827298931351571883311528788152899022327281018000290089850250299961466421390783863579542272200098812460829575341923188923391885537625241162988765242719205603069641573388187358933017799714165095471983855926106066206378986733681499338778727314155059981695234889943612284325331399230005937018694669431125255770972061098551677372374819605115841995788485126399158369371242619486281451158736220825023096805102084346267271994488706219626012490401741150934755372802790671220704901506856771237756774115332876936446104132211670054312247831220012925068258960936139693928984335127577925320857676045114346641804316993549932075074226022348641065770560458036116544503788895528728179583112859755548969047567769010647710178664512301664397203266280309006398671970533992240883134163944710873191119854515613676637733924064094247589951167083865495458162663934373502575896706576654999877125846730231086775826296500120678826355551834194028948745115217915109283828849999502631626596819280280092643501918844283827933959134823026305556347562842130518729068805864174796641250777820152947036202434289252103077801683803234339508926672505160209584525388716991186677881290630884654756010945831000030949124145995106245924485777669558541780031898308675072367063080836301760591650252457182600427977454643787474632446371243574428981527200258129649523223208835965446155170730220016310625644546761254096707729867419487105698717991005123924388465618478793312341037360766610201676274392188396450490214491386663992762240271083823863555197985415580485106783232635540602581475341750105353647964325757082118679291144514646748005354095572176989366092717132288150268879632496077105162155221083115879682115771394618897592616550244709584115148999331994509764891180258896882844606512888023512302416340059306936269805132515792183705814479026370625246013933604449348055207596240476822068401843462377145595167732251314960957782344314367098433729956485155521311030094180687726577638290255946986060073797445097489677160875701366605879937377906316843147170832205663513087682116566094195730244896955319564417956279930267650825226951615693538417351189211178541486528991106209909703811916535112238630242201601867336898570359643050482734626806997985131402229203952563539994561844066128313682323544185556701225303187992778247090053853904526529594075010633861790290777567372971354691833881146269410884718629584427713000897497984222340407813418614682351112714816496917063082226310824216911032253847702886545057665794079866392611501216227925719453885266172523270815315078208361683968232776179813756069794432613086546971204109801624382146444315769946134856306804640319708610705883894488455139469053799630081542278311727887962013689398457287646766495338055811191056502960827546031275483693541833774838541576348821337277665169701100714244416495728885121112330880125538974636225504739416909009543177171273164088567320823365048682899298583317595915419816392406706089809535531275118917820923593101479152923772555684222190001114253500897847151679758403602320545698214128076334708478941287972744637984362585515720618193955387249282377868240054707260492079159981617792396038312052771257953387342333774454609322709218999078304235373750058606687548235821687156771799239295922389751444840086795297004485675804720224729953800755579985649870820479946104371682970208618247233868414704625362725374563846107736066606038637638861824971321875726396190480355149719643859566074630750972496759079382912652860164102914219362419039229965797257771213047775397804275959770383753823409554409228939734707814401713499050590704468238183372954832956505238066119520644522262543217771276691422317375991140801925673128053302252797853183631548785439420670207392903948508022216108774821980871641163289416065194852353045514649380668547568776711093631737543299559003463164972590133859243354808505642031281671117860554324755428927064436475665329573955490061828527817991736140107969232181323032132674915440004591052003399160961111971671689701191295055467538112770247725046605888288898522610653065157097559580576426777597347962407542645118493788810472339831310130920339843230475167134890480968663253104328547257528260447432372034193273847126197694571045888787648531619070588705298705711290581708628163893119977772184610461266824589702069012612869633095463119064521922883187702677913724601469008845618937628511670930395402464658888368162171392299674341297165882110132687296922394500801341509245115793504463525717426889410361740058447640006433896315122946001096576749387232210346968201251172910636582341772407833330418818896765650317758874966852461193398653112811730849649835327345927224689661293464582036752406783121807252707387940808101834648210401211548946709462796377987595830219193814881271845264835488946683917773361858523176510659322091541698905525375820448990464535896240808495456034114389301417724297749501140206008730994440327901176481296452307268705513045004816177440349677188413519225476745978619801111288979875531352159696410377011585494826545993688374062402412661843430364660772356707099707478489307766494219107626114036876494457472103729325148334047552405838968284702011503379727052324988011531969459111627891581669252147987041391694088135211040348105552584065391161095230293694388945762898669891636314318466638757443623624681386223253401924140281681761266908207008500974031051233719620647590289492652833467890771818048756797518669005471472341879633494212217748408175151474799726379919048058147034806144434581838216983412313479027110596785477825780009521045161733242693872356146847613615653646518831463675244465404680316119220749951518854268450102250280082718688051244940445373933124084886125892097631388290427067690539594839741416581261718711935340261540986884371596307773082256119444272821194246615689938983406851545899358618301572170914235024032131244184412646836674403611338143227254551117981963353016396031218205157428808563611483377326413823842964697007150998473745368833635981172230508058958938178266956905722932506383935047675426517968324215110557093944272260474205574361947698035147139095625051940957128110047291861279897939655685721528496058544076260126896261191515913618242445769672083519708139027221784828173581713913784997462729904520212691017203489206331036239888963239078471036506892793092333098453864365599206178881359700952919277557180050221434097748144484545469634330661732769614274304504870766902634502065139820149743737894367951872737161220728707280373598552132482848165718934362894505286696433714709385009347735851586299649096978575284374720255219846200228871811169534239647781111580324262144773794745576269505780419085886560900269781619868489765887537083605461786134278025017762835160956213028327523849181636820144168554413950767159906164556089057263154831544926883402297796311807666527581650858565515182510703195351915928816777149349042434518321450921436442867079173754485525235909603411942930566544135139966348107374209858768246586417964787766922406049982185377689707419589575708908680713687904909425289214535027533009810947765287812173151549108578963181388725359707533754232213370967987506555597910889572919503117250701385424857413965560356541420117464920250313641169652536936053334732591990607748247296133586574815712320374969397478979426048239842476815010629018268402281563668110404811053387115265364578994247071337589399657660481216789573923642971593840210002462724182198319729598560370853165471332613398010021014288034249037404154330880908586080513176362175171396457873020760697430637771544544732823400014097108435846483992893733439500974632960370534278688697025368271930902610844473552357834694413662546084944445097810434795294866599748098902482052231011873192411359584119975089738132415014581734469821332960932120105576809919951180567652781875732075085366971942331230260033204910010805882508028908032514688755623921664306268684992845334791494604949637814820904161774614979871692834981701722801037526649550708305030159268781774128680056106099185397791385542602909469752064182451952061189891682530980368387235210318450882593932159053980475064472220412412976209230032841817426498871376157314591502123389124353445006148372183648917265963690576231386629905469917735561659938196245553269765002089928897092882394873073792748774513121223289939388058340388817307086367493109335390944499522131229207473099835253519021718577260701939500136756241522992181057480675169609067253020911207554474102076289359932118109921982945979054703481490164939640404876030911067013916180265243870985114747324915901223256461034458752459654035207559725664541338100856365551907105722308018329894700342219306021299815230957402480892715979035612602808299372189578948709477587216510335572213264788927673023524157323783883515275966526691177820239577081170574292795442103015106765399354422450208787131101513017033506369501194617843140992730582911999138394824499621195147601104443611502774580186889121909664712935491306054372590935280472185702156272776159109934957055997512756971614216538872584598317092725318540307608035114786670511591080691963470105071086763509674070518171591773446025621373757572997419251055793791838386750083060667334497067303454504666354376486095290025939311722407812155393047332010577032899584511617600069879706847868964807489627663688506889023119582100549822238521641926634131767614960773316072365571919622938009977225717657631761742056971135922679818912056208616919017642176116117297986283838199801592439366982611922863096330863813404119456224055048456137561366641093816041925936254023328667767412463934651341759805508966130274826708480647146207446657031199915767506827526631734082172457542564855917828466952605269001891202702344014903952300539812336007941435312461722085319579043507944624042870129246472218692504466461134286353059688492187873847655151185739823210269748648877227893935329856062034037164897909351756215473267004734682942920178737436452427895438927327490144161889868956660691635770914487025644240272423083075530647587055749938153847632117947524634315748275831776603535508791358791464499320002134768366503033642440875746838431436316117700989009532109218819439722666825977698595866314748793884370835216932434580990773876419236138148162784130348996198532652960806040145421947669676232506895002680627685648091775560549719563067596088910783399228329446588961235249703713099387000085779617492693217106137486224233593696301624580958264776471286780944946217615862478438583518253062893788036652845565780162582337702994688677304811644337293946847582629118423679639127046511258911229415613962331367845544831964795604391789086906690899921019917725022147882482173082110986686238726131583434696599773206764816921601721706916949972341681790668177929805780232466376498576848557094994811600552359099177490838832154256714459910467684421651085734088306807752762587517687659918152761193674153040504862067259487699004159284793281254762206187022916618406316198754863942409579800637755836800986628711085044992654241484329966333075134657618215080948094018082840521594871704570016022149761949710756704930670418927663073620720638760763469361009976882429290713025974989134378412497162664945754549973389215255351244041928555589223570075765300979819711354514474675944427860594071973509782153882514584794085039525815350211582892516457745762094806859113034793004162153378116717407820615033732796641217841255439765665631337694718918633503890660272838456832213937683329571908312673628864020903376420162190682782397638825104051970933634966639319968447090446319890870517691985526539820202762928575394995838049645975088819885628528971129911794692602496758824320480732388635149771941290722380098659234825395145104914124766140563222764829091967594450886968511855474142088499059606822975042552012122985926879341970254447946102395329866091716958341073509958282496088194279013875642967481076356861951999194538956860582030573457545009651520472792326990947957315252117200992676212555182557963196350131447659082160707603363545754443322012453186717962855349307086554426829113203757023786877983244535480274161440450283118625395787880400924581312119917062650532502532047337187512927851518452030473331815401340089558280193620883909238571606771954652239674682660334595619407904631052667143325923220557559906017330593228630865915624702223277392498018212184902459532670764336840909296718487414765582358065337991141502154548921981641791433132834366739218693150891809987013117773181109070145035933622347312487906946904104984360899252155587433079470539251877248607307821635625891308083268438651744956066998060006437725286198739341153698702672295280211400093312066282400249716215692680155762278619295120795394461611971612591759993144333698893350194821100858851869737507230963017625112751057797464035648274192752200435583998807949393293604301225130575977074837075985657829523861761049908009382522434563528106459920306501662621376179541541903448228737604629609505837920999269598134672695293814158679407614404314329658933406690012955691473594361550823133267872817828395489354510089572928922619252674555312038742505357892385311447724774103769544471722554984997764583518270479463523918619858410964620252204952604134932804811666447527208590082491097820236715775752970975684929052154978033677336008369225306357020062160439522870369981403261327671141998123068675337246679478148357404067541656452181365873731167836806128420342005009168130945028583663994785398610510134248265528809651484441096216357071939497409663471456078342875495927726132203348927529492814447174717044913368320518651526936132190579448221271215396491892749859874244049052053483405960159898814511698111611056653366355762902480969442179575358413112083354942224991233888279300297468070495568438473976471290298116655433086402307038595278292654118810553967024993608020708213897389101140409082678210752924610026905915110839951255034171952331606275374332687892299483393446640790065621434890087612416706871250552796018324282588043247847576589464561373107948011751803332173529378284705218320650767496491837664516275170475810992864561510239617371924820899279042279376409296508917028669952899344433695602279522261700940453250197908666821663655990998079938701984390261796637456772428543875061483013144785531740439328156344331504048868364403865626322500656176235600285615287422383853823301294290816023255618553182619009616455466590892673891225683651472660805922514628634754045433756667993100919857321385658830455827000385866194090381824400377276427313801004202340531208281792111902730276177540035043611266803044213945037617591690882946115886170786904148880686099259708812551160419602461472696514570934021995492106426684732094832701774458917228020602124742318461823362591529227623789193177390836918495435849367213408234222107543574611591344254283348637533595895239254722199301644881778923798781087936554977375424130232482162290209438108467960965508909278100690273554244370826435538301677675334875566919629338664257519903083229015985918011026631430405492518788063499902481777154395692034419041490569900593403732832315417303637206945542934927386462903306657032175212003141781746697741854387762899614042228038055011958182741722270443359781894293284608317912469320375870767898267234986266217001308528991562207726303773588955146374983480539643542869466171803996635868854258436702278822754895447811422629591596028203716140365704076580034267857829398874783182588848413844777162475055867153047082409324775880330295168833195878045733304807960028097856900452481243156247443665786991293053651683137676274318028529832467788962423182489353411668746745690014334196910392140079504784613757959580628361555067924944828635406884504073818673805677347471013359067099090298577245715462042843564820077789787428419526712851786229969659249003499477272636955512363434597047086476686299343354502483436017027748137265645109362703268538481200897609026587465756629308533792481646598858608349236268722687157064022988957046992657380785214823074866636313329646260488680967295142646674823607796336357872377687593477431306524195248614678966640207263179427539900741203344854018407065159128434988649459412770578197151162889123362640407996755548594550967356700764356070222530924372081163304929353391593173933100902309502518069442410943969056483862705097194416122616228911892522697856241877665879101355707155929209704838504861788824630697510395506140268768580426947383153214572998777682302728800000937475906735568724026367710452386374441998814063972937273183945598687476910865282811673722254695856291225471405154372054606128217697941966747303019256225179741063763466403252156235802145516747005003936581838435760698430679178022320824079617545666675826238075718824196353725894682704596720408605620524776421209259713372321579053294547433192028456468434625233315852404455047329774296986276427996629743908570168306929715563932134586700788029720741626824526492282023874673348686712885918382349060778102843070863788354968660224123689665140773679769605898864364408446538128017301262257940845630883451054674675840220575651580228990389367332891887813429381916111582118488561276417375889600168677816382665502286286672231590402610490860850535785541325602786575405010544114953619086440729072347474702691619243662548367857374400102214442932972674905742690953940480093646993486526983093653024985577490080888329874073554371562414652594298389314874592303571593618221543966248259430518524447519243433515778879214225330642046244848288211362805586930859162620861665063232399876410632878822037348138084390044743088222641745499292113410223472399884659806029161665469685334310952956039237802843050529224313871216394909638891028646017401010543694235554518634951133805680264011187023249502038170834091696522311493597597391301926957476674032538615108102561111145092691928739723960899342989474333637059095190461566595165678912301415215513303728551961736910898857580669993588311862473355432515353191798493936373274276316201757736149479246101901159897418234153238382330171814635577623634576159539384062978044070289861547955633399018349699868067540900859409227711558869406814830058797480770519848818149353793264672390162913412678621820724489268283390908858774078577949605080728635927485449730001408929510396864852502224824433565244107122824064157912043126635534559476021813274382346462798239626728346818183217816061630341385094858660829855876579986413915175768410683775224357542696182832559191169360963704875764396244086842772278317673758505256279009732386866169398893225119130693002694444069469497540747467461082443950834043981039314539653563604959633256842332523944812745115353937105899588174461022279423949970773103010832975327262629472374527408487012375939561920567060994461031947992342874096922568662876636683823510586777168961411491390902215684524719330138552361571826954789277283504041675597020142943569255583124378740169813839077623179850042517463725728284928463138330960838404856202033729528164149845996526175410097853222366454615394756609907109711151002257897069198495283337225090457709626716328872580766501319404581883132116490578183683925573717298986394822428265059772507416233706753293647564882262409027110394553064342293973144006397807804137787420146930333238277421304103933800630718070963481115494332395430218974300004596887798151614816983697535726744081904262193172137864524925187872921732520511295772957192515768067913563387594696816962192206552362291668380336951494491505036462603087534369584741445363344393630363432631436497203802900668148781734867429035064854381457750068253019586682876257222778286724280779132749070443110846615391701170257530695767087672126138284224252046169667039376316922829989058388416838683645967229232815013509287287279596358180156379210682984070022640764391225940541076648570304209098822884818141396098054674030267218180152704286588740614902927050251354030401985748656021254541165093594477587890055059350665587749904921104946609593229812556681400888096884491517167199425318566786694936562581702444023246017379721729489709384169122747577724173054865255642179493160186860370347632403189201243958626666287360691855593091850330294807055067621031634601195319877290860706056199052220456589274248758560257208373194364736425151191074816173505260102724101486829030399899323274097755782221933013850674804433814818665824174524451418901340987789783924800644037707954762093311572011651125658816811451203180344844611025418026848826713766890952074492817197856439817694654594426025347781014580435957413203766493045184427930461042779169129328034666907542818678388947261181350778946556999154495663389106466361496236865294818549991427830948985922319213729336528902012574065164411954876064257520799741879191490094169685560463957045342112080215936571707830573617985278215917551766487517288952436844494990263978837890585353043644417378462443868584841274113155388717022062397721998643447175007098488348074382260875440354659611173870176004270844722382865788433197809710992589910416138582491957344971848486220442165491322638913143679000817062404990350046990008583098907890165019107477534085892523171363025387595597385767760064134054695694116641939219758953456245514538992434209133796992836110213992896744033876464336206984256540216182102506246188848343002637872613443755890326826801812527472284729957659307320517146095213116997218903953604166361696148617234685632759427897368586025775347670805404014585292632295602513757260912855962554169401909454795517009191933850905475723818087402095828544690324804038049787372576223866895702602808038070558412251575466794310055414428343961265275695074768425234633473975849374908504910595075627764029754267946354185854145863726576374536451788374928863616724315217705864164004198086266379878217780050973672170854667848154907781035738794199611606128820751097296847791936529731422787694343399534263901280240410349444211879211541894772197921404246459828712683928628342883780639219550480704526947052259506868568680153209419856316099911653715263326035869752581730255733834064431521595018019392420728829062115556904400412656070786115007533157654527504591728820515142138721394325742219667176124907768895689419482883335980071558558906129460209662514777814820913068950382943357174286080812440754374205962041325935235609214807381402463248420392055881301318982035615321502488236661142989320401646048775631128838259145426782774002553518676923833284847731911423666988100005914681908980128376863162645803397957912090585216659029471163557318654443344206157961741190247689318159563519457403179081350714117579857698276575197599939598276627265534929969216287915258346486675339326528575765976306677832637755850289685761540089880246465849213552433075940515310925529289776972662299600186992078800930659156025632138012936168239772362905313699211038719289510662485233451629152550501120073766191349478293417058485830456512621400316331910754234993342174551533569055915788813545962975512371947709738857225452799771294821207339424546466686037878970446335574604497892828191864631718791574617848928293345948653863201661405619688358440803766235855335624838189906101931105354927684381448346670029687456574926391874891341053605517574989322231483662645217178679435198550774658303741626800391443123656366900895527709266744480772512317799274002042229340040507567951786129202779515442615538636649466646739952337694447541869287760923688301837386932714254919004116721422072339917481653941901027752465774319755122551498281793480384438824299732036782886032831497319625668366000760650580633272327134377581376936413667716984974119651087018430950298231886179539716744780466102880787300074695410324870652728004569144389909388596781673587021645395779791142426733845886018145648140553521903610311923301765646623387450110840503920588419325642778521716258691949969623828345153225570171502837446007938229380897578405342355512949573459008680948303455800219118822691847798910530610119942338049593807420965057585076547501607701727197463831419107830285772071477329276686249606859401421806011580768111695090207086909051962969165193553178073732487186717836128890503095973050010795181397969919897908070347236092569070462518493347686763448983341122376703057791194141605489935621223613205272309642615119339935168235666520820072808471665540111492502971141624721637208904659288602613280409802942698768977541748395489808971334328999819067369851317797340141925079195202331815769325883313534952860136163384337829213094603977923784595291317535258748779396114402493245908062863918219968427739760890619940768859733291168264120098562823142512438091686660966379883134261101080872598061226248238006267986681430003199300286593352892244309968199240965088962069561487992446009782952344087253642511396303448970821452292045389266915227152720631555135031278873344362880664579394329421280694098468556987279227824546822838221255975979510017044913110956422733595327247538574762974049987449420989777171449374445690665609696949039801763732608706412926853930847106980910070434652904691297882784606847573538367480750615388033558915239496064469453360744350520906966042249975553271275985375931661691022143675964219576157231878661996886049639085596487603379761151404115282039952760858214546795699248606585330910393357750679519389165041066087291870522429747711409559169408632739977771366702292173649707610217463355276164848860379423151206010590672102716207398729211223307881971586420523205547820987851207382743135974883226424669544088896533820708793146245592888362309209324860010903322356365998652269730790157099418006048274979168529369425178524231701278459795163902032632221446529351435658719474477455340913983474979395910741796172683787815923814173388769658898460100916479866015846491684981600404658606594900214425864233901907593186325672609673522089230109371042972595350114430142584340924312471399751133997587864590676000172808765878933353995944420510176623783379516287588579984690520093838244630644370104735264440670057335777738134652632671770207852092366019649694135463156688975016448655385513700282532934983417240049555892272274141274798745419914931693844576674824467963145314795442271593439249171907876351265254736184978551883838160927807949347061680059735148764853196683652070607735222878235469097135848965441626333758964310411276419294468052203976938821383529324413745605337825311273891027472009981575806574448537277244193955273951707747245705441480061540759413799560466982048477808853492123523345074212993289845431490740136432060664831055602661049897669527387061616924315380007431316194859847100910896114218254614922094708602349044489688726761311457165438720819140070732802215223888359224208413684575623378228003525473918930130340147452689880332776740305860335990650935155645685930370628232283076280021457707216784874354047353027924520474848235741454339548184486033658204991180772581564283143196484401944418691608556769801833113020602788529032171555280137207342613287212632757849339404079863953531633550617203961356731748499965515940548536265364026253583297922252214219289774322115175092779023707058662346347093792913219383945650599531866496593119653307781248347186592456693296927410246523330431144253832121911076540284481387409271776317596063098814976424713315604828322574414139982535575683474205079962929105622793967035484272777785995563295883964001639186171772497033516214351081582660805735170571059503288177349089191473156224467962151019886617241181702116233046049411702838494685746005431962668924934643571211777959149481637271127942616670385955132273585220562899136969927971343575992065444247463878285101986006173528808110382089266673050585261323630101183640036998329699978590081120571032115170210479582776856280770098350167176807709080180559287815594460966498721154889241703974367639787148748810068476360939995194180522650851795332590622152432197555159212685219691902235671324619155738877783784972083659580845425061598309261318597613643586823199132690902503507978014013720561261718203801250508948666014994007996221827157259994106107178498557520633072621551014090525495991527541474448176778195836156061351594118138474229589483090620421957769454624927113182090484939952208755654496634719771399926739764717923796601349523879931387836442307937026442531625661160465860022843283545878129812353603838681666230520477647725907241349022819903398493883176412991358308609381441479256927033518129583320258744294737330869379199845562419205710789754421649647019254466346341038719516307531268912055319668823966579352460639365747537241854772942954676111539524139790406927382980580056701307651519690842464671881176989603962694158171290724321159343763938650759320452463616368211514240682042514488510050714135318317676012679417876766155911934233607718719037293034109687547320221145089009409451684059595579197040875963105835591323510762445965906237203328246207772570051681780156001926321093002869166837004729153577222265041853701357678025932066178272118573752666889209348110994617819867825929521857633345919755932629423101766305377375823498280314253903309101407994329494678587400957033375313499914193146738600343131690497559604426516264026013785179734109646248213600425216478327070384840796585929909464852567924036829161549273364775050479333743334800635644505868398555995785629686988921516713855369861769133993441764580913266703631288096470229130382527966530929937889683071873743524854511755796558592734672181021616150010168811281949128322671212583405476587101518168389409189523701490735655171422418845047618324626879667535747493297650627898188769599035373880510018615525526141089576181739456642597822487852527678938872164485325211382720812721690701686627287574877351424986036814989973125498149124960594579436892252483935161052216005115576146784893247371714286485904962906700422669460800968750776900174209170759425255787677734602017299548075478569277710709730139037877156282494446410903340302126289476580888754828047667543534035698204352449205908930516115692772774863743356856905093013983567286391921741366644662582609349791508576458960611160612394786940704465511288126907738263149623798059690561609550543150489640823432165786728095638278246068724349544537323283854954630065101231984146933961552531915040692599245345595307379697139363860264342129920730527906805033297835762878858130519602966776365826806753423146839689604867715679902253093076270426252144061593818859380386140888006145380624416036511838940192214805761295090305575988319765353192574073597813868918504146355484388789989847456079189804064004971523128214685919906614875232777791128707511332190995719591501926254000953297380807879833434488971246465890839434846035363723107827576177394149153020005977927835472577676156900601804641460921666920213775237211037214087281993543288694584072736625460918809096555499063036927004155933806339074578440665318780877576952654838173945928919976986550979576692374599076184633313143510629709352851783522916827966419781994486344726377185529270542683490697157112943093555935829222634083135287771956394514023299296705439196087553808820627967979234520199310987178849719238242383373727852693861907513737136721010857481557298995613292653253380370718561246319326367306265864744006003753917460681850250586283424278526917413088881241159984291481004746775715037637588158597023926897137753066744099976707402755085722672461370264079265479449119868030549333313659070368390390679239095806774639046223777874804575782387742908128942656577668281636028002047378445182337121112965701449320385397856265452892286646101246073174686188292275735859646391514883378557726504850136763464390460127049755279992235553877434218262673332756133899688323334482126320766801949092790986553392613752150239794470551568593679588503086385382895253278340546162653406345901416176750536076647405357531981521303053076015095699187550264087550917268140827944203711435611371642327025114731935193746093775719965224068470267234013081273712209590116449727371707216593132929034240015614718127893250432268832541052733742664167308373447444418552055999856374525000406116815343720130325765503721496110102280956632285366206977846526385513530560751040447460241560788345664357997049067988466732449365438426267176392889431060946270153619139904478968380456019843212887537368848328539365897590725653517931643311733719249096853969193645344246795883431880039177420727911367981744393090108150241712702348992556434862426504303255254354674290683640381563475928196181884277127561225787147676204565547682226156458060771297251302668896874959601749036549349712225979451473965278605879734574624499645186368004233804582001197431063444370265515817134281009290168970934605407653362230274431961982325726834367840794686411876628353137874290406812497893029512099536602527840386028493779080894091136705436114545033582292594928164394653695474080651080364721353537927413702040992997441696734339903418020356764325096742288926886987044335156682248082780886638990040567737282627335451328527639776705897530558730311601367560306985686287251902912611310142736520411905823604733202217563953759031144911245584367878534079680259043321969010213326710429784233779184262660610493652200190863523003234323403402927672609912730466349438395779074559869092306785850077586689643475896189122631186021947969155727963618218289070110208014187146696726978494838805051932893307394536460294964189497678153278689510669758273880806276344429490013605856220985165520107088964807738379079705380107735151082527667351188453649351649440301282796645213544204246124685155052760687394744631829199782490314390958272286020309008673498284714020613798125245019998228588361836551039914128398705645026657893547454561163279690420166150180922751583597606532051862214853450194083142517921454674184690331109194907423234089147550570003710779260837313270370144441552598030021311992086851951776092199723029569346668083671996247972663381394147644294349082050267052266926148414141991724954798301377257317130231597651636473263913978237334873664793205377406913354619103784844011721904528455773325305385456416003086970215941049878440014621492992768027859538647487136333083596290758505172369552154277004332010998099409075843377807982926065496971186924883782476108343640550178248298972273504770111599144304396291488344924523877676395953169756968528573397849666631299422490461512491499692428373894077406176501419466972231055880913143393419767009767585524897531935957799718205436981889746730141256897104080795591931854461802781007162507063576702067186890312859106957866998088123839513260060821274528171098401687385313896051697091953525382139603078577219261653056179945121533887931896715173353789291094157221500469611243579504917289466034168997739749029555479949664739844585045570915264954051648774062257639601043171300995453357679850434352389752662118122970406275814625011035095512856909031955541755238597049383114630458801142431544983487624577027459162886009490406418502878452007321897959253704147379559865083897875132843495324702116993451951674736547345233946237219125284124895445663630540344830705769701244497311396824083008636366227708094043402032165135258813484786682342116227666006371883712483108014426740570100972072294985484845759276085889092273360976553580238472997699161714982572749889969888990193370211398178094886791290343726995736374231224091817559498545211487322172455119704430277996740872690309903980238300478137071580158209794668224167618785243155433297045202041272810281258457111910487928600483227087042539686230008963487542452406285257741640262231765288824929574544663412507853870434642459898487355726092897825843582539635737656133956774430490466809942433289639447131728970384168906106818866379985152879039414321280081502328889229463847689357785933000484969080489181168953378279169575928482061276961178982646589966834787729841530310721364239623675430486723358146337919433327090655829167709180743499869899550121421633036246274660903966142776025867871361461593141555109048768582725584989123362283646315868340373250491557359572783157905468678132208727989895209436092554627068435458357613968040736592155550847561798633315404023914789374037982708597115558421144948671387464269075261761463956397165382094918369994543229392474424291267415748037234705484171070550919915466182166103578496400969223683483064722446524719513486228194888507220250534968948965463957539254669235597035205693509697973279387832861249845982175307937571687436456975175953852480339664323377805927192859983951789973097223787633520824136813871705312252246872011671412999429370136014538260637729504268379199389813869724304980510738759660478296344718739554251934462693240806477669446366010537138380392326999440286498749184924827543505319446887333142115674252109081385433129999053450573836204160044983370620120804442647409066935678410040733205728414446652293255799894028929709247306260381372586395289047283703067919381016231871934969718123307858413109223026637944279455963379285672340297916629273953199692674307168816585723534674911146450570403358071606629916941736867278234213068677560499475968455444556646960364287120258560672007788364323293444317499032218690498779744695014630004215650466372707970108191112770369051221191864592805731408545750171586775300379200072298041594356395965011047833665378996853708325814361073848101852289064085740074182480463651222282067141364603635501967985662857557724486137906603844256340848026443178434518551400574702777413355421099575949045386356618436816679082974912024614622362319290596645399094777482426124647588980497165554784908951256812226178626222230362347159000502873335984473522564374706026404727690315982901091838683138972504302055575843316963923958431740303337011395276068236114922727404828667632697076220724653098130715756822843965327700565288797733438079126476882285983662841064178889744372178830793363371548569049626609088977493595007834538840232039683511062134650447110815533290126660116251453361016758965850918789944361201336816099649894697994874800515337569532212566903715215808594940464924587555166746703666816196900248152997062028904419926945151420001045115400335878430680612609175386770386999919173337022063099794426817839426495379903453486448367216528142572152050293364581262058254561478927850951844062235966539192770054866026437555107130119240153435721576695372284717688255199933834031619902736920327189029292312811279954993229296260085371424365853813074737098295060321742432618675763062297624915541768667304325042957257865921678107266533401589659884734938968715666836849221458650641975691743064656414406937048725653802444474237858830260558037141823346354625862010508274041381295709471773074174482823199970427792788408470281842481835618789941373519144890579422290580065160028579370538029771524434919184271939930682014237782238085648525712332786129847901681457877411003379593549144149931038991239670390603477117877913234605708744742545135827577375671946975570716261885254554158572203851053807560161743918152354462127236436471623955597957259858785225955135613495935589257597845081800407372269062122623674068164985782979842405354836062670648068040669065783072646332849462309276128190325422554637419579247212934818053645051367759877564759137234980803717183846041492663209389452957364036614447678055673034383120817641538886392666342705987519640232331261755328837714772441703541425350595366168044150770781777462554968002428985249999690201800280613983674479231838274604065156870273756232023050849510349169825703745816543107437521596629264209075985758282787663870783878463641494947365889550402807894838333141113621627928118938737466121060611663399695170365028926205829639311121409888148514954046025706254919316878880835726148888376903777397199324973699144123033404371451007826952999135188443549010611158204460163731818907556202652292546419949911429742119426413406307114244572240200169074755155604753905268007754285471797394981987806640095155810871751852650132272634206537928356378813964168361705435519277983874412846046615775131286652422904113869992839652571465236288184157751651235780993061835931100480938811119560088297201931790073977866260467883757118513360879428559874040857459157230903933703638354051084551001544974861873636532644240385622741827568857142142419879791606325700667613013199865302379773595336700571336917158850109559358925177381688064426055004600861137715766096678055380446372389796294687989961281551061899324364204585041947106844208054805020795570829336549934200896247914162496945788363380617231852873177491800711988422177332932408462656655503408240424981319552319124364419741403336859479614651127306872386488208228718721027958720633779397130880184248040314005862898784250000966713077983742856126900193110878258302855357174501664359289076346709946642233811751292167981706663331050379499296147773504923489294947416735591136900727157714856225796409656549843734809945710983117728573761812042963142880981008539206277878277041275363840118891660579863163614340323547703137886808737520839845879013277073699726245723954075074476256103391720445144707762375640126379532314073306621201703601735288502391915395870813689702841173943652385222044312542007392219318901403995108202293189748269684139424714696364976506802059433401846328077483504984434737528907591250425370155050040009775097503971587477677461373428274157547923870904380125758309834025758385720841155440088797671338980629834429882800858210321359182376945593613712531509056264111030389022562984735659097052604975432429803540968977422106565936538296391912100231414223483424156183209571852470407795088952610396735746755453269861441531311742619944878226310210999105647626235272725037785536431189125945140203095132478211498846904669570324215884587172532037452384850216308456783043217309448874812415337609697675659853514949210764477029857343343165049034533154580177770702914913244121070785240530700161827826182404240223498775667192729380319520229410252671452719988875458792617004772819885235428502194020807371803749417554759020809041640686860549968707054209395249071033663211750216838915983009568059329668971702331194689715382463903128869871915303839954469559227044554124199720038648462397043831536169555452622058785599048048195043529358074666824294630349772670667573209722361806785310320307421338386958824660711459138490762531514150132286378705361283606642918772373609508607340761529293160704114233749832087460541991221000246749595200029561184947302099958293092266925600407705516641461311692055865243226579076992268651412504846772076295153480953943234849324015107373299889607032713150091329243679252186433657307436419073178361887125477951136448465099914116982566410898903564729320730417190812725768412466012176017798135533235590552594177402188616033137347033005154794533120373192432179836130419201620067242853580131964477584129469510541400868084822640513543879841594616324474569468895694113133721012492540525267390734794710901797739226855004016243292982138030284316316276633657989763301611877083845182164207212886028299225976266842586932586281818895880768541814057077790508473349887889128701770935604517079013247440113457130861726003904074392664966819358085249526345996569404075437591435129938399893602843616707486867001351941748902455779230700998492443046698816912387358809336992637222846760100786744547937192382340269410508100289152553137016231715613548833850094427372369313373569043838842417709163948119717891261476928215328828253522855096387334040647511666343608484500613456085564338789460000688285002238920131361476999513684231507419596542213256962834440459854472414637251739108038500154005633823390947891350400999849105359855991133508673289439246912798672242909279454998629320177251440672264947552830995245660554625876887019868765357204789838375282087852145384161659644729119274521420964400123232192034263445404401489282792533662669215667401820908444770000788188767533653280595666480398366024658516826842389935013610959619671559941441127661565312795703418348083784399672464899219636283419293292564412086285748657816366322549562221727663856308207269496729477476578456270127988669367721182057055476540989378917636663312601565070895675599194076935089482220678905526746228547300135777024389995328787265679537183181423946173906122781141530666072703216295378863043948291777054260932862604219852895460803251282876278010734159457684558853557377154248408036905739701223041531214410377452119309148992092505718059314230095622855712808843684848161595574416209041675618463190129651584522373436807245029111304179921052573066205552770799284586297171121450639533301372845298094490654394093268541111888446894787580343243697424315883509852484548126774494269617687732234202835863145805868054737184636150382519499479798065965247306764219017057077354721878381382962135531428625246962053899673334129091627516186429295646979372341338703327000187441005153933787184816473175968040187785018498685260446090625211665511683593360266414615829688547854030941293378471236608663165236584019431977565786942440709617960286933644629376324578658892395020666213659707977996045830242464323830152165992334249319060560929839243601088382332603457847870121623422472233559196910680308378438868345939730970431346704136137393053811280225210723182089136205576313895259813667202266217090834102224025134551550803790368206550690215127738443599543786427081631306576479707245292649338192868914809006509568097164019500422795654884964423697830828452354716145302824109328202240026565307636569459025217143732465291268508173894664681725615974136145909475561851443777745489572233135658877978265380347942099611608333623603043656451309455507238706880747084356161530604013224723489611137234481408524982274887161124996651611271421666419400905804287627296514599716682053784904746163193608300148809145585867634388953224500765602090892383536642163479682391217251536344864074050098822108285873469193613649606737802529299725922614912036053383732746294370759270690834914665897657750495103274387998207592795323090059719199896499791435752867479571898245359899464244710769153044760131616853850106449393069569967373780317922739600595712847325037705398563565569913184841723894678098624740164196796692112940102593006811654023288532637449494615368916102507657540275057063343091851691646543591005406492920409506713973962786474563757747187607475193200971451112408333639294999189928223412186868881544260068335406504828472676544172475024148375166340006476328764592781821631461440379481771596756276414182363408138219596062955617207017489233515840128120454329988802509016094248436894309268098104358381094245788675478587791901962797877117931346371285528618922158286027524248960633900893894752731681258984240327110439711154730353166290196941463906238288535804540666984341421593656887043003197183070437219725409651701991066842641157514855896376154080236410223742336228850736105648249339795751327635267538401761794039854516885146557366341106364191991964740020625359465973688292588556281648098108985449171899787023586301726135919348606155720530454781191630586569687458377317735063533134788853996354836741474052144958754382962857324813026963115318519606644454770417628930234325653396469187902872838247036645914756612738446193045804816509543832410257187771992661784083235009155404767824970068395306180059319358191016485908641281288962632525134464489708029716398967285536750736613940045198700516035964976180395983396250026040267952953527289304904093720722286455085678831926593284425650874999377703397715224589001645358419913810959165353356954546054311490621330694692874140832805995650463405479343224853420616626563845982671649061250912297787272822964536758173947372956439176541391218029146245340983898786752213915039676610782431503734510155670374905130355753392706051274191950440893552397742706894094641120469902767136882296118111750691108784809460537239576926912115047787158999555252379831187674596558878713301421729288948810047798347077610015418371053758348326732337798403082772486981513718312941055018802567219471935701118023844792727597795984909005865290482114663222291227011599093742791969360323389883505930341924514026800150978313657390162915553245547523041815670939778217729906249704441233787283293308407182064991719168392778827990466334188444366099989640302732327498051545818460749896914100361034897573174089142768279692702425699816763981582238185852395421720670542726951868813423505589666822464590176430926450169017892482433236313768524002643045432635937189536775023344540539656912891963135625726612724805273756571942309462611725759535575373216203483967375508785019077077114926620724112718275392494157109788985458619766133121785559076257436322247583266815122189836400165295132295055271988191644861169692732496890945028924402146030046480726063319013465043780752498247277484087445956636432971733747791442387167941637734517977050663503576552308694505910888299028618430596979569242021056492110205488967578151018133080690837266834252220605026038179868641735442682235790957019037631490440814427108558699162241219705287066685188904359325464346741951070117565370388244455763775692107533773336895017349593280398495169374608800997146796193070404383134481740151735353970324405668517408111896405918134302747084806707459352361532247990613061118791727900674377361549584391254826645149124634670463880661339081458853643755913458597436496517496114752263322577265912299993992282305072774827346588546963552561671062622648211361642630313180149606103330772659964104303743932851223299760926873101192452952845206320978365315223023114776256271604839237659778462418809405225942319906559725776842970764485265801772658123324775092534326647706487810922867293783738736816752414777426727302867138550359521858280081426000833499373987001716670047488883038064757225645932294202344585094921875596675142189217869793910834125907912206014211388694891504881282867806797324095697772531180652917280403654024129643166328084007612230680087285845680242013631411990420987446891764968611654403971400981867164579135352888013508336344772763327912173767074434976245687110750212207806776620229643135940115516749066597560112337308194591392284652945528837344608837419806853180980113145480483069596791654804097631927028462025501854232529968578184232086299218290422929366020109182539260803296964381942000439045065007514486640358921309792431162662510650675227439726226111216203391084753850869961021320730283044965835585154931639769487379840281532935734636690673840278891330957487823503270994807753028800374887403488123901065378846211958405777694641393493619132797991645103609762607213576473285025898504175758896361311936111592534693358542566957556248042721856960892226527939245374874633962735805149735430444062139519486222799331866218792517927455176103789412806922824118311389161104062434584651859338651923550234664482820413294366089426107697465591683819426518531864909391167567132034930363044952291489815205853065262349569506457882932988918444375340903620081387249886752670652513186492359993922991706817305336472454805288111793716047524459038891149229745020205658654281302647769680665481434885559986123238615001503463048691302718634448603414165202936582180572119861785686596188178402719327543731790740409223209390423755251300566464698075817271365462852261133633393228332757561951280409315768616009272270142057999739936893338783086468393544811025955654235640602615270762909797684062985508750104662392925760044494213666992239830874769094543743962823135073847923884545454590947248110267373990681565504308435787909549657201548380132244796387705804141026157102367655968139550388595593240112134521218597606705698487833381060178559831874185899188659081191235267336016417154442257794967225075544935152043109327627181762796500210954048553420347612930741477215509529759960331171882319832863191946325068338370941131457618352340288168153487210678004427393687185276946002807741221097383022366488829667154832248412035176040509017636563211578972747804560747276791025571962368748033770626370835215946797607345686171710730038461665828350633594184631479679344723186028082016377819958350094429513736403132115919765027867642700867368568813644695126300158103676741429381221218513119431882840686518781682014136826610312627540870145902775072922729788472942478156609156357561118916081305478226209928037691579889093675918467229602527320960358332275627502337031769986696071095547840682207268677107490936458487449518298135758960275134483253595117235690310143052225412892193066873281499104141194729568946396542913052744636647906420500013502658696808114493638047178333839406565974563900682786127474282030601609612315170299903158803626286637124938958430280425807357104378625519790005831736441841508343085304906935119337184453311593734131026640592778510241895800962041669860168177693900167324774249899307438972530582645827113374322610309581226628799641060273620112990673943940108937972843385336696500691400378257940181972855346964677721753274187340347626967208823994741934946931503629008773139936097630934153592173633691979367890558383688874457612216172562880750259882469605081369669330404578605773676096476165878040728228302809264542377019374104803965026507694733792402882184644062083036795376419104911679030332323893874978477781440759644486870177174209203639800210601041579283371374016940756597554047685830187603416927149507684434318578986433818922790743214163880925766652241509377748918452487348249680484736873196348387636430727138952152764486018030727381993934264661291978308952550334758479824724039830958310042278736118948498337105693981158687027347683405029943002303981498759283432823442283188791463026188896018426069869851165145312410942150542052968918242915076332554186030788613962375752525857757075163260684705105304117017543740064059391760881362669387267980102789663308366492126008667587542161342860176128494200280170093204963837910895307074841452156004205386136986091557821429604979273492184248797959958499595740799188177928400831453573708750281899130132928851265724297001868127614986628049283901843668529345483320810643022258880736945749906537825327999928599665244694969322537754175913995749108057679114758154557968316360305316129134166296452325245387047348946700504507983461532803066975822648193324572440948050741826424484690016552293482710468514334688979680948637329620395894972958565167175474882303267828339539403624041593317581723222994721468487373133513289639010026093719535146210680405896038203894967095301920256614243319013593925006547325093986116012191138186183294028041800257509428489092017098140963832782710221479528077588813842154195862630306322793000511754456146234631194649347038824211274694933594699082314789649436853191548476101718353235920410158833243223083573510436876813565034231786550455944462267067610874145367003022271050836041660199641593130129290668939111596069570117972927316787731658730636221912303086268825341374697225034142081625564535746357443952018051636913262137858447712553933330889173748645592150475361505531046179915994400011444090792932142520604423844466049314650859053716473539537460876209456713657143608998000967046574146503572552958229889014669420738626734555970483153990476297747913741725706612532847353783223233024048238440834923202012139267502902627466465710911294700255919491919736949625895301345309182008965808445682162032185698703355168882816199274957666980412915981672558219059854557680848559951601438597510131083714418619461961885769572383271937164138583735476374867492266590562352541682877810742114586723428087234471841178580483555360531440675019386327724245610939846780232859546438350407229721416528145534620098709816742249985346973342668087619297763209368422916396721710041256984304093933637627499016775176387198910494947430100604269843878146530415879329831915590049825781944430061082640726925830996425871742696359411168786527643989475912128688079339435286945529127190237948529456317147921937532400382919889815863703672044400454868827550829479037324196099516567776570773639491779926505604727001880333969357291028678542283256355746121634642183492999898111237206156794903969432286214815589367814333185303841628375359993084663709561674195579571692537998752507507983019291824480397766716553226702264481901123219498599398699032639634120181797293616962518914024117685434026185572789082965517273910161127134363823214402336047745303853539098928028507438091914946963605241073096560218560241184665293020123086297506277905467063246261497205160060062420280504535965866882963137035909839524135633563063630431853601436659393658174656183860026564878111307970737765416978509953625749456893549356178406147719016977735912058394809492827161563220489283393547588921579183710107992870830535162992119510641124278895596036143167936043482081173696134094343426921578481339970066816316248198297374660379027742209978188402859297687743469978475573169866564016528089591920908727164394949435392044533972938267324288713590946855792633174602083637428566222206011390147294065787592803490089153598478031175729010390587417638268218007083020238977962543004659583311639266699955203747826995386352652202205177868211083162242718132256326380356933270717243674105003607247296615192162098701793907381619762055400608459853348079194312551050862953859241099755401342741414411850700519466841473793029918462730842014965561062343860035155250160366744899315994676006794244025880984311075264670253104545260859071862642254188901453941028796592112653414287893079630320733812679814497492390228049016439512412464296450397891380505413366020826951332921933468713122135037410592712062110565058434069088288579255444219648151063765316203562554984798973601160594628612054035402420512207519527091473748314831791816557363817627260889791849536251778937449594664860661022462091732939791398317337053581116948484485628636980997977134021493051264264374444245152435931774912845183092540975632260321756774414508385124903297108331192056699166427318702474980296169824624366965726696960641365847366716368716431859691120980775203016421092557502425717214805340025707442925614271201951961834326674167891800491640830536594693765241862612403422018760197627938573596967473967844008772136929981791205684821597457689716413526636904727015347142126676233286815277862421495389523614731113793953944526129474995291569416855466370914757665531630333750322791655801191775145888896394847798894197762900883179290302182688800392802756010903174066327271979953995402473749827945035209883837172326056208543909523875341287803304720786052518812866555822733340766888102675984843335835745720019625744928891609022971698828725791551391926423276257087374192710995244642835274782076856330388939282283069462913930379554754780189066161440261646317481948420875775405124496115752869024064641968917667442021623508883238524042282674278999724036817531624201152420874555649925272341240005364294568306775614581735780390362363812003753154568236973556466768663124230181910020813948430516113312118251444522784167559901595858322783973567012433408680297973728965534751018859930579829000293653363228210043625077266106480783997303970855117799482656788696856034711151367709969169339103347051014746722202265418361508408994237177916791812079573927646567495281453914751017614141792984902158018498838926029860067924267251637892349882898682390352106459635795413005578432702328142053964289657419146306993215655627051603045295528824771174212985958240126070507732379609462179024064221218028341362744420942889288567678933263902740846772557158334436302657569674135171851321530441214348253060131434683603888765386030074022950535755122282471366460383768102129608766703253407964274919765103100949209422210263373532971543978050038820705358599764979783545243180258482343207039405508592053638816103640580082248198561473147545813650918162217288662269179517509929515936607683474395629309934788171871672808715682611988612236417611562133428868186497224703969779502493879984357141289019094082018322497710604183053749772272993319036205422645851357770141869316198006006596672311119185257263684670187522125278145305891323838995006450555322547612285513564431956010019229631489243344677979949603734167595348411920641541270405274787807548105014467882377329723910211492104047395755922250757273119964653064149862793050628680890894906046415915339723219483526525697310218762849001145011248187208449886238245031480708060713661539982432492422167204702882018021536151702274332469364660966092779912688665384256786694159778408137944515415049379654370944224018798689851578121506519690422848518660136684200988443163442865048666581247740744526657358378005604144432312702567159998754813006748328342674799713168939211574944747517760135414560740409620609556640164489686548192860862927821434460883349745618777906058102478479022990195751131095707485761097431490337603023882264874886493066785954193050015393052089053907181763452155556932151612049202705310739565377741516840975319463189957257065102784459998966781237202299756021330805850543768328487952850962798656660692226035704855621930825321829563509311297009414706250790175287580573211662758835873509331203473310620788164014854564263197214958903023302957321532527945336608170985969038470728647750823417392001269021912531705250310159495779006006520811538395034356730939603590557822170437981364648710692753656671134391710492381477606674310798211397668718300599467411267136073141263525243533849571979540702161914793973715360914532842045623091971959933848161895354805621970269321125295698032978137749455520643653192592033877967236876758136647404978471818382463516878210799079151079619411007757060389656735320375876886808507688131377079617024535715722570740482336035027059971146439125627224615670964137062286113461820856723325189870527524228820083094948188223890739705696141645369403519398542866727062150571134373720915171012422414967472874048104950403849819060923342432224088059948036385216054245155402402702558468788085791359241877472079514032905861014814737085192340297479166676573649873192935353470361654586874392653205710417435571917900730664789601822311590490090026124396353100406383471653382428475174261495588800870307234792579630837707622818009315985890852765964429024008467089283904270345714221367132763879026115272805057769724863953722058809165451437620795971522603869394954748614386739910376302916828125821703416159350724296230917873266819304960277246582090428257569895558708106629151221255199288267105282262351460176416423086255821629241135036335378578683906082704986839684684162265088229689369025034226755316682797149538860370334022660411820804932035901381703775504692654178707334403342270344828578270354007859392211235687156378383951663359655934260435542901331105301491508769390866815021163726446188194725478848218793369604941410258068977216168179794303998693488665346192416796138146529928270685871022866126070714810236010028086465331941726139707582741325667790935347945144272428926448655746974611582017509041829765570463283951033054985925902603703048832745572891791910273790173903654152766574601076254493491529233040237031971263572064851834432604237155963373197822013841970953065191780407508726423887958153169135696514367532573135287604321460354082501673701846254259573473765692690234501344570090442680456642437097611854446856882379471057080812151366748544156355582949851219679946267230719265452508382788165280438786303190170939955384935657585793747659598924968781340661891464199223907900575217085922287553762411173280932810139451914756179076218168209838788199487038810317443316281720808515715678163429957913459951614272941419625733249001645971724524007057995416395624901206436997631455841244586677553368531039939121427576148031200606181931877105054732167503101794409941292982699869449207157415230531710481706710109127029045217374649726961068938186163884915205063749943569397194809538851929405962414111411955430078001365218427141359823550003810141530497532672655090468168278714837499569807464666551904626473954420807517414847628651116478974595582018952481762804588337034697286742748661113309117450849874430266469710648992439135538726851882324974400518566230887457409956123218946615737427287186672081094225487444230498860011698528868982262599760652938469993565481198798553662656491789714764089738975512168088572549712376936358038861749092903699379165123700394099446158981987043228478126210599940831516098663844835803283886665083598828922732409821336584017001511241675347382117418510292400121891822164018208969537483404892825356882725592271578390271228996944096464503085647189368558740159395897846503969971856896692157989187773351309526638220289724762727438877006593267951864434067220179900782641927635546325054421410796653313161502422131207427019753856104867305858473403811534899416111302188852836271634551837748830447208242997146699837126658500923884596975287266727402782573992712077588211980318890853773407894275908465309405762931941514261743655113318188378555862381642696120995760427273049515137956218565935777469471383103921324430599945647905036424420711623624407363647521444882707499928785307031735419358541329394088330136730533213245542794641149357722549991704608872215204948341275205398902481714883679824362403091623571590556768092788915977784824125136445696680774084558242120380064711498484154862238730642752617267585942933040347108931924664045144708176895888710943821448110228531356333262848333220941527618858936563020317205146627783570047107044514420328296196491128078998056176920532732343569117162419165782655540027190156579096991384195386720304105722546944668101393484170852341947878358281338177429375795178429508384815901054536162043065061422853452748401983694327489203691422105870231158178916892319195759937469123823758310364152443306694053796314916382599078900704506712802354497583197042767651759604781401735868362021928994883912341027898637045858152553422378810229564735339959245319486068156132731985272000068417522155450033028756585282057255764886019232475169112184733857809431379356994681160734476456294314267211852803951725871537315536996322418737425672612397487474530436584117335676289296491030170637417925874560579446397980213607887686380139554131706746537757306920476635950602606636126911940763214487787495479606462515800583400715993148086794751420507838013236649733123598677983939859758934483060900152958538883213053519789742406007471538703903899680663195979643763095537017199028253467280397394249966987941234016004304668462639387685760245808863450673627045135357865357768343885600408673265666137955020634949986416773832549165982952845804648682810056601552886180924601957789191871620172483932025214238301390243977152808711034061387052073636243728617541782772136071367272774745732318358947137491474787688674644046538701111649014666328910987218919747993266460257567574666200223591135450819045150990009810125767111610954566822841859182157989386667786938128744731243760477327472767499544536265970360375980259990559114931982463278870142703546385714277358421199917485737743156323095861785701995480747636884023572524312296778311820067221934353623672488333343146034221826681817718844173594191053796636345340241534968046379989614685750318614881804467729312910224676778128718870244961701300140421692109482336941598042712916247242718408969594065283445660912838749496361622089475221853943380529613699590951715892695436588304325118865958960158489095926624488673908454179777687288232680176041095143697210683210068054484298059534086593085907916315623605406710486145661176416459666107552211227711409177549042454734775606787251337666056543441394410418836837974848476531904692355608167068225117589968847350169435467956170929195135769233342939296537625131283927180905526586349053154994414934165614991183847324740833664229279646828500459799762363328021159985200495471863110911444705008062890461955259318631930757518396236403289840939302728827164247627897104805613222242266859060366484572867477389325757486477906635619837557590082662122291021133583095649309674932485861484144249450741622786186731429329355357334700455951321247100915226725569350161112139659482446936729938473150160161008643414789845283263696843664662743570892024778623805290341359888475025916499877499918792662716753731670192616644615020101921479712082568029772795378013542654137781446593059144616945605292282468633064447118563805449459484556680807973829918478489208992256895709824698458574151931280833715594319674348780211757569830161894873617256781954583418093678335354621777532028942323106233953623735634825788421665754826311299741111963644520440300171193495113106962154063438363340819704065395212045811884657317161678635511096833607509130478241315731127505427251762526822331879224402992944493198357304919003869870063406632169305101824461409231325626620378424108016030365532585728756103049292947138943986491617327840666606813788443541096826832540261654902522301473975256887403260441883788636042263476804901901020858980505959545443524329142933625704554710070942617134947091335688081949437939088385485672864210013227661448175451919998412779770620644517688004568644598658106807400485480424257066443667469616922322281404151631147139408095831818803370140376413681365030373087652254292157239761829068427702331204118119953041264065788848919488845810363050077968861834366018614952393784070099925662245634992226561438454264428791397071248086778629477407968716602328945647526580313298339441579570703071303073071057163470115356937551767864738997627845603630954153107641147016013642087689903736931173992535166169350650446917593047810896243152748326402923443118581074373648887143875050351131857727350489271473222534696428239041366403284624876127813036065636815520150553288239449743416831761516128088326537990145562657854120777247675252317127981624939408680766480372489415565739305103441943752907996092547839279107790796187300565434784527312797943421435455875611005311083097731516373989774090191385838585002700628449961996328098383404017689612203784781030017139860628753102006973195599756806703423196197081751629311743240315518628972004650054767922842642464802826735840409156977537128095965801921537368051059416436047814462571647125633943960801167458361376956836696615385384432071453994324931611282781449773297430642565534679201984888638409748105531041659524057695457351889525450283698798197160320071688611254744661143956336109094040206519814830040341820231293851776186727469687838614101011009452881058698545485340718649124589296207279786715916243969746917612996776446994409945419240377916807311393153649044573297908290574430709915409429298355230148972057875816479103728566779591178876702116656090920585496196685403753167026799589945352895478000212825431440772168866801750466915887038552722764054995766571308486540685111900271630490376864858021775362780728854152273597792720820135032491935918293670550102732652348373419806341082743900266068098809382845784955240824613736903528197503517638244229677026490009516602882168032005664052669336262793131350171867638085900706070264683390203705022478729269150215454592691229526726120292837901093849936806870271420758009601671867484843260953686120249437693210328518675452105228313217542835744600807295859637527479023319604518913954774492288747662816244710451005882333334024689289001124030826865545985676872868557828010866424535162064531429745117132984721296882258924736821492009608903323337565758366129107622109008472416175498435332197659398316691565099469370343620380008921444517282937673298278791377934823640726983500918561211543143806430398938127466323033178053464623847351145445879299012491877712546480867418124647774683853507493340833049532282215707364449879431256490221633203250166214304872323593585891088591952139443215360754577637177640551663016650298615632305260904546483164106607025221875948643224797052630084378329507672936571524105010251920742571617969106387122587607097796336584300392399714471046790542039286825284041624255837337059256763980475305127711865952681601681541045997858209569304334053360126726615959792071830756045211812154210768541252303542366761206718184919703955052247105875829010705129353991860840743754946650412840797156943245738722622691671962101687694817437207895885096356382304356648141905571728068051551043229504007552791837538664110321827763323656271959560573640053631686538467204246303583833506805987452528136735821555719563710681270977880390484275743643314091213151963221190762645389528351961617368899035796077723013388296978152351560754900333209776781454070474566939920610788137315779715631866819523541830011132573306880793528801493440091906842047008492088883305870130574180621410889124301148033628998460259593890442672625102575188013862709322791849678077385794210418350580140091284580188413648769478502465857783939351281551999247742123890571572818471925849551245762283702366337878670705751304717145657911160271434254135725205895341118584326613200800114021425132511269568234076154659249668053337556624766759856523645386047476979517093951762995021573160907190924489906868969099722010722032223512223438322340472057866604795841976734136022884503838011524649539196914733403815573061038400699905210723356170183170792118665640073858001342686261343274744475183004025211156993624036186402793484649808394826660584909204325941775339857461119071099786775874568638121419987152340034714575414517211453018710874284948202233844447910603080211169755220587179209723628472707578705294879619098348611483493046214941596972229878115076085677789041422657060865270141279679568130966690592910068894471159387609549331750581375098128027784804528667479831110215406067779754687858857179997269652585421091968044981641305839578669148375367328424973582551709914673270693694434156703913786097807635870747737582463388190288683876243155429356881433725692243443864602237026566485260615597928084331125697815640787406004659206224428765481835290681564041841020574630923937677078859407291440027336240588180505812418043434110825022339395190076053842069710643309436781980261509394540670618659025574362000530716453891681110445726705956238357903734265344839942083899128244906008706856390334066948237513934331199512725577243279857570627213502026995906682378393506013555856941513582454887560070707535157641423370064377297078273243399988429473987067093864836963571953934313680703946983141076713049885211761353411415514189545956578933285723675932942263212811336512661727388081469094260073307147990272104720874630594434816845855335107575380443473994332054050219897720509809790167088888239572351798020663709441599815731647689943328107099194144593948247379131179415031518350263448399265619753145365028674760349715752162419088672514826723272147569897234560584504908897497795381803654346879692444771975828905908415033049444697374757627236836155180785723566027375735936584833855565122868179152701694792063165080345121613565407994364744461886694531769839809720859781331979771441139229437694722846762503058402590623570686902317984852437540148111026517429539175836779196758875848209565208664209698414814416596811843267743311764436485446043895239394595952889025199924439191512495184369984673033321197318121516679746561316529205075118736952569429241376382500426366232192157488518918730421347945248680773457842408230817248793950399180814757891683922644400826310237707293874230615957205249244212482823827441261598360116215970799126892290140693327371244406076631846586891948961582483470479063222974659022587163618635653663959973869057347293764230932024561949387170444065931462301080030490049616020609551792785862999808567805196565652054855582466428140320790681515128280851547727404278055513956999543419484029645650151074053165918486459772606807219133786706425294234566117255296655408148867226112190303927521709337697486152439428512525313449707059910519009042761451147493215830112000071910884818537835475264431285414743414041513322274314507140895637712413240496670630959410496112082290671875565807418734029153647826988883252877414118994406304864164625555579524068841234052570314920653474616237046619716839618631440414996030611841358358348318486142493441220751373732650358958894998158924381563166587730565452827541963386823533857235911914806440403893760122194313765491803345704370471686674248284508144804813884578507350986122456091338405027578008634117498445714546887661519666359028377876131191332028351010547554656501400062616543676173330898758161279714101631582565853005175767163467549406246437737341946835634466111450159044902925582133892497066714465554411434773614311043387831267645845112173568753359535376436312507892640274574792204033509851318976802310179753285197832083483439541713903393596546897704514457839773861930553333751410537273257527233671463399089583302859767188666310588261587059444564395668106041067893706659782740194266910695595452853105259190798156902051941185379061467058958486537878464763493983094463592562551024059129032167412783055318541000126730061637346590526183073624226547582931241183318679687486475904375491275881789487331185666642055953969705109411009111262102315501240008871550197192529015201966750424183648396960494893267274751130711301907608245652644303982785306437047016302913673220912911750319506644489368085160359821000964818751055178684714557060226758615202226487181423578106712184178178241784922499174998338329196535479513069464985744592278016411163657050212880066090805307086819450030072491253861028517297052974665679280571041075226581738183552253774102286121279450854342977840850230411885529640088178946485202473112521235581326807711688950527066060441275805240194170862158107008098883296165509039928855727845907714616067626199448269249615505399366806120244592628227935058622879601703641299325093288049237362170034510840056459047301045403613623360509857816395212163579767834063664830279419254140614713882531672461115479683488837788753345377807933825945612912080595012582631925507927063056672043114689873085928105135675726975632443809525718872147501003881172080452072305745695227151838357404103254236843033106750583336644383594107122174540986572627072611350222661451237146052518382218150333337987641878970875720436009177240371017159601425179254005257918606759932826097711041039344113284660159106556029454436755057281182017038063823988051953453803274639237936512860869390695833779134156336563606069722784152532522544180036191245736315496241846753506966540063515663145647525268553951112088833586837267406357182227950082343780515247760215991724922140765966104177435949457586879364474854782825570415703086698873036029093140582306192754280699679785969554976724644676499978024515761898617819313649675243552627580551817670564883461071554704350334782196461750379111392857980919887410550650124290990990346867037211769492533141972019226705786701579064513494338401604726750874449558534987005615201404066005282401131590281796086830498219631022795776601414164373816497966360596003210914951066592816728555421654129025465021698719101734750684444519541482386558326313389756094126453389080172248173965909339414553508260684853434771884088052396150326739358644332455471180848201230773669597884660089087565579638574496089191279797977926615530977552383348408358256514900398356459786794453245126706489347789694138473294182136642813296333267559795521446133108394785672882428462701360551870618203778388742101314962265663422213769831905406099245883044360093171766858994218209401771696702754436723250301816311554956084840428960977338423451998924067590193329615336505007402930765756513627149795532678529011081619690148224427510472044033132351390546608995072007408700940751974762675889091272163543483653136123824011444713738032703019428745231252558317804355876989180786037720348232053749390416426581648506919834394600490018189833905980940938556027979591741375303167752291130325360549805369857787819605702083470994181705625670533966533941021382529808856665899461304628348177316565668282960149770855843520898167351502716623100276909222730558472259703233504193185540566055359222784192843152700053754103290603695122163323529548387475461761550385799031473833766899261770636161467559152837090576766254918234975327839819180831918875250350421440084924941977506339972442442700571034450854299651075222492612047035366756937266804684845132751855066750036003343641214249187957835147470862513629648815635006382267813156610149857895009884728433066563705109877244811667034256523782617815541407558037645929896753541958238060572557379691833705397482548739976721230167777134285298072355104740338591978974987009589579106950858991021185970431657484629701689833100530138383762674507910975281851012079939748223280408462126442886143277872527341942908896761530112527510845851334978237561655561895819187131652080335931175969218768226904831274747941053080933091372388056776020978956922072732029213698700078386322140307382156426214096186223597624790605344509351359433511846584267185415603355786155614641524782132903405731316443411244623442571699270690935718471764359960204942484882758371589357102963198296376401042794471467000729116958984690692480827316417028169823721200207815705175216589596476694232391562683358023694961878480830490401315674001238005301559329442335211959696329500730314247414009383300220003969698381393812439432125452864589737796238202982590920502219110760420691784372562591228719202967600322411890292004240710509089008434817741668666094562579854103706584776109468529394111627435125344793732697257971376564681881795510007515085227096354797328437335612221811200043213153462576161946992206893581472677841781358674582441543950671007406493335881697861978057948212716070201050923782023420688419525454598628003622975344386989599948097903832673317548296084978356026120267232557253243941088832462808168617981742309314815803302506213883811381381963395738836621935370303052486613820381404088888980603939799497147081250553398323507801009261172325705684114417143808462572291001726471218314665812331553470164144264022955563565673424431588744493948865096336958433994096753084946148673973809960542721464749002536292458081045917592140521524745929505348214650391745996968274918207987101086476254097301137277825918199873862225895391219392617593870071210911433439217313146437201066747505974957477382657152934063044606581474491577265401615628681217002136028350995781072653873182838612797515172547298103027732746343945922227722369528415171201784564399935114603957923004459303428125695046698550169309404627507242299057141170043983336118049702958014336958091156885252515439399417353018002172800839775408322803933716790945861182427121670495515381774175869839402778115834424982753408969125370698537549591807396979386427448876554808223517634447568930344729249013212470952440292149054783276033654769759683388631344227331247340880755659683538357062447026913300279556265078452781862500369588701961643933544338240093795214514414320193902606048207074264886496996499008244514238989943926034708113965316252666885405919269660143228216269984545167113310897926332715167357513511801524314135003135184645026437570742598971722473441250657007893771893950749589328378228739866369307990471508664752789514604546454892951634809795179220864377196064632638252915968283527259971934801758518263444540670046591543655262287960025031252701583746366624417308970539215893913046585492720746326962621745956015605521558273437911503306165090504152284993601428945573352235188026543106597482883024583274110243863795688601147433241818733656054045764399129348680111594304978977953704609569997246436667776898724257321872881084255011237326611684712123705520040534839087681451362029714511958277045850035890383135712536535544835274549843096275966569715989278490331947364397995597359796897021785564485841114823734039074682099149077885243182573482434487288234816541556675635042702291968989767484913289074794939580153077410702488251857335427947517205809247550491784418118481068513331056999501124868954371477579380533408652881064114877707458525455711880379566138156759157579659687400763592748672414278515477516869278204035778523457885000824382547664474517014475998162096671005839214492455041121919560611911170339293543770144221075584056141710960832689341068571546833712602216440704526489235649284712714870548678579857188323751296682780385192594002323242052368343093094220553769167751676716352356926301404737121706984887233825012571185091176879252997315312851181657709410585626295414671313402147628814958942220782390811127844125792499058716459894637546405846277482348441788114762520776467390461656060501821092738456533229914195727303601774012138667777784955782779552795283305888469514216111690970453611592107662711901312191119891222201547595346029694100915571411154782540891596833482515973145603193984978882942795722280137249057231303678252625442541576525949186093414627606020702072013845936968042344040590305524463383519543225839143466131373819626136331170577768992002156538619774287236581845560272434956964236746119191019239204971465365026307507978265665628041540295585762105614501107443477721439743510344797514522642101421355195476819300170763770927186044179639072035655324445190616679885325796175567058318865929895045078833561307445058149064009420898936306179119670355446364673903894672045212023435761844649799788502785682102494595296012527319654482557314975191448015182764072869620597587978205066608382619407205945666175306073784104479572993249928253755246617160005832916853480521630784517740391580777857724252381303245764812056039032005267603987152360729027351053315418777642210475451091980748254973709815257015765235557950419772050006638171392400706399147535327965880197162553561751260230389026379491958960162189917036389805038871716391331480744802821976757850708763708574789749780401563561502277801060384867292307803672160962327848232950872553118085429573070645947107788597905812652544948181237002313663387748557595896190291123873203187207401952165064243643539867998896615850914748934142467444152340305459454662595496846197014519834204434692135963027578589431285578905416748513510078816938769164691278403642760929119526171506604585598552198142256514307791675850392660470559033464373186743715662923294437585965822470494067181227439197935141047503721122209127075161008956762867423467639511347918104266180095839341650532731580111517993430468637036557161610106325277139966387376635301873777559877032009595804109314685217974468427250515799066935711784136498699312014784355469131956218007354850501087998232445601676635773939294568818957711515023794558315974449212105038718712814467743837574778671290651971158424658826636456278902237043967548573314910310304374173593804976592022783079679703070012591288482937210724437315134464675912697182019333930420213285446911392028047329567306130783873698673318168755905438014180743832725072135806768035416926568970952069772301432590832755349272653675389764636791022655658387144376055364976987331183515831736809737386240333540362391920136537729291214369633407213759431670281192711124761193015570403991893528565570962752468903534669528259124729171440770512093645883475382823353385497969119761105806640991719062834109188092948535348379469319817555940252012655487856639876113761961333815132705189291270248748992228251326079613414237976873029258096153317607130117548709657310426136630025363348442485729892845061956617396205936951482128498083388272082342080871772418708507537552740006015405600707918840186633407199548759775596197651882332208469259888663203015112771560891965267278411233836157335655187198461754875161820560945703017575613147333200237924787852527218889439180586759008145385940266374165843297299242405227464401798952530291133160996269300934387309056712752723708738457972779697528122464564152434910535565475193121818427606631639621945676493409126034307155510407760737953036884861114912855030432458728537129381998425662953708121840915006333348341136640681759252656405171061368385586332786814397575968450167632590249724183525724996033299332921140233744405275102704422471199621861194654740126187850319292978811904686558191097022051502930963765472925441949471714832137979022266904172681982066774198542425487733218502941149803585735333357443453464834798378917049723075260728134993964939331976636412436448346287732993146771437538351178959195303245270904185317129770123700186633740087672508072264903467294003682430080073868513986298572383698696914629175840568707606896791690503272182646269883314497228819069934499932117484204916411907742360458632358667337303070212300586106879570296563301232826351550782041161729504893696064813217693940171007789895297855002865292217798913636024186251622444332135072877400277057476493386171422202693954645262829936446232669319983362020041410043051085820803354291383228345832373148011229205245566430407138245250731859243097177293249391883948749918430646150185216006976809998935464985157176324642170728301587244136872846028981351034411448648575813727068156631845770030383410724408298367177216373198026264396745099854121005995465083868235233531094318441301849732882780943971679212866882556280595624900963632376553946065044326667204874629329447108123477956865982500577314105414675941876405276769387571043217479509639645514492298674699205071261935923676270078851789827294976206526154583676722297557365998200474222211425816204807724675210499139843267906068309578295275157356003499796117690549215829775135106875856501737887645537320630494913584521445914094383557080396139738826934510417253325875390143364602293370072493654821037738348491116661912329194575969333475215884984122718173129621438926551096787803075920672134037641151488051656830281405093111880552212630086328192714058728547071639098725696620542231490927081790788465410150878638802485375474097650766429039757531642372603647424886223625731834703260068275846356467660748836390568739388955104223229913599771296348414555798586891189777471746390931107901431016886634885923342369720745514886121932707678460481678173684244098468909646869658187758899851914116916889153973085105653301811797052150081955909603598078942577785911399503863371739294748311395507332590010256746338402904582665229050994452606896567921274433115311385315453692910112801125487736234418977367951620425284844708372680711890920151862216665743017135888328720810862597969574699154516846714066431987841458887184607154505083500170515199321562938632239896690025891212140836132946137905979024602035483567319189461331902177251330105471137209315484492818453025975616890557350626930227526704812015165496514039367313478927974102248935006582078860283086307980606892573876174597216097041193742919787655109221484319950181714855940954012184966750064407304245644678166631020059879302004481271419646428714011147739773320864322788343116486858405032781926061354049168685642779232342914208087824807308693020474054646870037437060316766602043343301777548615394949258756143574148809917911739665013220513874459471608393838907467882639476267006198676677274383001697587227801012521235346913989409224133513608232798568965810127770818551248256835690869938572304373206253403908512367427763211584344573470739957914034900559927767931850929050171270868331003548717664736919407628444512728803301394080092017737308810139298293869945056074454937354942501804466316303926494208741254407682130571798586291711157628079565210573318093310472675683601501971967955133448805191539532184647563586600224005890773069309118598093685311347304817473458176112146212932366606016867485621464287758455851759116092158883011725770269481921977326554183912363248696976549723535077458900789936077115438276242045402790797442719429731090153380153694452825309910295169529075473255770681938798423517538327341560526336207966388558742512671676781626205407814082287340096420584272216266484351423790905231739451233502542683222125931562569406269563980455900122360730683795715600573793855572247194215864922962594712317547925984680837074407413701402324690650583215368574025804678443103950651109288692835794082104096825828754632089660965426270817155246970934336247946476900823140787485174358212465323011788105054856004279596049759119638579058364764826700342929861437311780691631134506356645016783146485113087446513790806320537509665063347373259811849545214013779347389949152963740283582367609332852768687861688320051061656342755187431185519458532969788207511133627389250634870202143659111720388311095800343483793417205995827296612333277786759173436169533888625308236198857381847398162112077193314007413841083699306027731642947631916562901857556749300797639734102219222936553558013750710708593908992194500158715981920317595237218129494723272913569468896517145138612801629310943320517417196769049709809021757904260855663559459546085190628710362140760480126689869681003651141140764739189572176581866441264178359099486896047066416572837047890375543577282678896478368136440934010334855982750731872281176178701316026473708136223003117090734088101855539031245118846265496946401345289104777932047968046460923703433894649364058308270067007238189326124083985286434548601769913909774817081078198964812882135797124984791031235050767818904527609362885028345666321834761627035065689944098180667887380192664924197975887148431616606654063319178932740647973369765312803208494505328217433117434044610801957370897779773027477875245064251228284102142231668998105096403633584573249560440571099374881021684883196325545952684429820348045008855660026365203944140671860510795437281868537466389391459047069891853562829203029101851678458787447515444226602004627419909223103094137245458669686925693055172379791625995013766820959349878687291504474748478538535123725876279347333645864268704264340524166741109814447341888350615611705357297063997791959248656438274377082025441909193887577675630235181251341437582756662152894728555345812592239905020195417796570838003415271522954858943952075747625669881237614899864059542228990332859451836739570222239647146369394906791712929867390106275862853788397540632109311122076026268358829502236632380721989772680503736492931453988783356693389944397355346701256248018479341787405075913814835710970188538073500267651283241000621753006029871403927444689188063593732227512774911665805299604826818555517853773997526295008763042656856374244763604618164540520781750698610083181195338281963640285204318319345094898217687226952996625292927255155671815012482658467397805980652417950865368988289018569296748236912433383665314779782251491999352189702476370842900411348343030838446284476707516811437067874604700347787935715803268965115813255747654327467433683111858806439219724119539506174528379399388828773327590401104300176492206481684401041237477280776612103339604218737314020440771639355896935087540925806689974219624202737912844680148103642456445407294196249641337044518499418873885787168229042317783027356546490410510480272315754340600571291455602099466759142871386187264058404351172293012817006361327150984353301102290048076281532934255525617505729622603318854140845447875792530171886452254501238109675011074768338713548139636406211417495149788187693321520088958219628714148690598021911537632206986874060302428731622245678928273776703143870110639479833453664494983807344322926667205572996052492716829522802687534503076123551228901433285436361775625425558132983383998636320917110851236256872343731074747835763901114975226270120706807463410551119209274433999875002082187151028637433568438666502650960240320738797657087360825036044832486008323228366031293313629930338425477913699396602275939958873083821418853131733530518159801859021740375939089698698683311964583842386211362047124154243010325913964164878723787164848983195601120250351856273764040379375362152635886498031687607849905216776543658459681916719080347073768854202521363376099308499083245475700592523125384506395756489367631935148524241099884283329735814161959669363404382251648828746792471199254185018002201284974433733394739771303725826154068110783275313277461278322636674221905665740050594038414506504066861175931096047639466211534103284367021034352934695149179261185793882738711713244441374286843796508581604587929424356100631996752695364961589755135835028307643205337160073969452245035893453842886792189809131632812547941343040812582085888222098815915799802456579834036935491510709186039394319191710307783820800417705827563295618961610793652277779585934495279897755303759384125612310526868079787947340037726445021091741996763023234886928184609534858132435097238636853851848822466884570887664550033838744402159757366138542834316232702490929003050801033678756771082949270010732361835460238395327521291511648078416555478792022590428811896159465988173077796706446054880497398456415919419255772609085959096061058285849583647216708603874023762605944955594623141232986914501676988984143303015554663418213742621673175534107549262012206589803885175802577171063890670513197874607364315657599328223204432332528500243642164581936021546693155434028718481244221319044180174234573381323221645919347106718575962603640331721806873368956982546150903547365551950611396224475002821982697100179335447946496243857757123040431104362823768186656469863436666413086257021305423687182680867486227661652565623781480077495613749436270737030241787209783495525280186075433510192429916572146237953812731235610313033385454177610832333250269922004993853280092114024346491815959555115479573816891518668034959536593551796738235251321409118500596242817001834576751200041778357156750281274859412760215910250062525557607028711532302001486778721468698397523090776176441979368903621727540194152134128731206678032020179350128822009823397528825014195961311956503538682115809169130161670862208874224036501848458578895607729509882000626341961152066843617002815237732227433122317738461826946999220310241838588102794558033853156693737491333236419976074811280733464290362447680298340346223570311656424556743461355279467153503485325761533655674983768643336489198162206803106569561627137845385123641969609117092684004469096855545576818901042172861899023763210009408696154761498392798884243343982984334223458519164552462411131307136594305833420766205452716176939676840879996825700178309925444100359547033495991279589763946910563533821635612517162539004866027158818621728982397235836466513144519093377550125018790380005525395945927073347042300904324378308352069797681321590801570389636341200254166301061138090518314688758657453623865736385042239175778306582950720619503822730475679656326178008538237027360482089868230426821455319687736494621548086565499039517468576495278810664626061710436268203581372388067933465270569196970938072514565740396232721087079677083688121181252497019729414666365745658476345820859660016777033121487658919396797657149814520839252281162061677946227546913484090908494836795226639142073730814084379166204764102451320666096539828250624448974432231235142673052964160562229201260159252098473109611822589845625857762698946849642490343541545105723741355293317101882649942290717983582915431404369304734686096808073547673425540031269626459496979305407067180498427982749460570272126608086573166312119183956232209886163299228096486807682994869852789485910078762978212548010247934291552360021919411104200811847146776157643897565776904157628506278036586004522151638498178904412114453205239892063422636236614067321295653429003184819309147900468636509999386939374399445736435201082552503204515225259240116880064011827659074831679958538047148149390725625729599431409442300150889923863817919423562187285476039683282870738662094282321588853058147285190159642031009316693217762233656644213238814438322426421282881757046237667363818207760740887045649702068880713101183630584892113562747051058869453363888122789292586237191467620690693909546206344320948365430662732799413732305724785209819870919946532099501156130410430752769490581279921579311921798408536348147629716287381955778318962170021158620024657395129041647544149326296159990381854246258179676366339238597798914403529277611185313034787478253980506446161806733274152774174346931706828493062892111601221651899776971163322922871912731545610689582337929564337200850034430950357109963289202253625970491060774827189524138998867333288975670889526637958334586324725610665994143569815645680811522316414566412453935722924816423451446653926819403600847084025092298518730285943832002954076716862841830589629211886294053526866163334814739372831123995814778774900098596030319398528432507876947733609659078450928877812230500435230516195934282012935140660256284055980811759935283159457287292606039661812189034592004626056588566117105437848608662436656247979103457801210685112000130067021258573598887677227416797391423995672268413195595347929967142350587547012306605991077790067311753325865283670990682214048478117987918258076159643214257580497438586509875631650580938093713756963884241793013022915534928023642932577032832316281196605762493746280871071924890067062520033210331220188431553851046819241607767447035673113532417964891088072715513194537441817682588220462235391088277958080351535931101527363650947851851868181052977777103299325293303568244413251883446850155651365940947110039115615315305613598230725902294311449552730437877727944655436836058223133164829133642347403139596544511571217786274941941988805969316012582868638136876817531115279667742409006114580078676941050192212898720731918354069446287262203970080996842850644025551591223097337762172935141552143874830023622070267469151857135111266677916422087490301168595963180727691807887279664614712052350722167491584919544245230640568823988232315627538217007543786007434980865040770988982268302855086573593300782524801812890337090435120796023886853971152554710503910851550393535339807826787774191269508599660794516417663950022875956676507740061438272984894399500686897447319733666065672555016522846332969593270384554360653186132054545161701444069684659524466641545899559836874833015867535148689570845747198156299945506838778422334061009776389202123908974704219063572455330941357936979759737180662200278224068862731831373410203496049011481244843222179096255035211125825793610121475344264291122142730535682208700452969716082174980455536065837564376474854332990500790017059109094569574306776187797083972786643541366191386104037810145768502092829694152656139086610220904890625957805260344617799604257151529170927359654910877926440103231564034310880992762571501734571291874789475539376272599249294759275662688996047856477503159858566060788534618587461862472862085377439076680100299308422265753704895757724555281765319626791943769514720411355979446721716750732614714388072343912131305695365619459116667403136308538202399920382601123898892023635512691151405470613253755517585729892634824543273226511109091450941637162304356586481756253732735808972612236591681273757065175553122234575836841240353065129307079916463685735331243878265930350726008368005993222709362313461407618785279849130093325874426701943518880012615936177295553777769158432428728031996318331710530164941575082995604128727605047612849423868557885427858482412175152228019974826624093659534983408491520375956805756938500278201299353229573483716155233440028923491815640308120344143078080854813384711183949242352659868752125432397514691572850233360681886914967745143574146132765528512100324050174880276711017483128860877474883914016902937803593471219814532695713518317622804061130605827385845596335933393852521874922418676256691698505034663160991921037892809055367170391875549272969385121623433042481319785918945139689330664205027831622687273362445602093885893389998190355996001835189126234264663448748391090698860495414600215799600585354311080378577812704973944385529894103862559754864503337474747917361758772503399243934915587910844360100028897053618975141591961208572804590161284343478983317959172658956676958324041421103499388004450792920065026079427451279844512156971589068176044850464625995650268648570476755144144065754661342946817315797355421002284159746104783406396858507249101857715001168868006049431382930018015313099479844665276392979622207177105852028610277719113147893269711272221902952816516528094663771667905776995381283796936535675998189760845813464782783612451132824831466039216591417148870646273636933808346580997270427176140811751953683642871427801127415836620723228660458596738141027327975862061017034647844518369126356430884846321068924279170685087143412736708366982299574478461995959306197162696407864148105687892248720589160012815814401227446823461222484601681721514881219488411705640404911842124590678243010046832430910015010845386937041730751401344138161622350947039813050505855779301882891533775002518237774699973924338368295405913851196222257475501591543336618904134167074150812722000383432472010848215523521041058772649157861656676727326902810619178045336819317401596618207826597207717883297747208402041473357679720544051650541720460791710700937711908483397999855938313686098088698822258981059603106190146064911420031013574857282953185845145236002326463784495175311610529498959395820628047431879393496543546517109682292525966683041727219436921253558679583832745559452479976064099776393514616958797047671477562481612962876797496256604660951301281113723854427640429465171850167406915667453100327203311322696819179364780424532282629406641663128022460236405157398176462620878985695250880409061221586833702372831390546186051098262425887586860504302915688146932462145803802372792877539941964965646911130941941907331077077904998705565433568777478792151575094549285415305518379475035990604570712675811577367945024207213954465746279125122074552974862231546341403787565719870175465265049418889680180692572945504605379425104213122573397967477189460209252520808347162557970519054064154139718741194740876000678847236521892436915187162902422277798022913292884925225292615896960370838857513238034392888413488588022133612981940534144654025931522940703866346912210827910961191627070268751882498151739640002453180912887336030678576521709534447614070035402361471653119082472165675733423767244120245149585624332434296799692761319516276855786451522879952044226756291513152352790438598486753473483303507928391591747869566389869022939715355567253648091761914821918196587630132893178301866429491951378383424729016038308393426246223923825358697702407110706563327856072970069853719855518572068480145990503667909447996494167508965970096858499765343163147870751358582047089746176237234713806615390409543167193812779704977014863516750866301730151394590706401136895412091045808639775033612994042954327314108055867561032694543106090416930464279900915494489013876371319073781659916361403590235713413488118261534143909173930654198366218536741619733432650092247788962773124040483293375033181269483729373325383714012622513069424038639727642291746359718173056479765781393669278377691553043235148148892991326131026118415220180963297883356162120006678810570130944285067507050916918923437610078226637652567478283634752205771994604880894294801681760706521307301095401064966241213812494051350102679869266023325561042203061648929883037766111428185062438589064500218992051704553348956740373214179034087280190052727149524046403662950403018157097238380189736973469593168099120612002601883288679944738303855196294484659879292852741681068113480464398716265663054356656706121314248588369131205671062233894321964301881800510861879269779230852900135193028356125686444298994268421796782145810692113051553360782057491458386421565483691937333015272805793479055559099581204965986601769635595011480186845680981318695172147637924743203111460629880953166163483684234223656524221012891830778337611221364265831755317773757341050067225388713729652902575110113035916068568622084298034528113361554406745778706561232051326768900519298723554900071430923406270429526639684809836767947368114114621058102446470416077644450546727794100785321364384416705933574360844880808960061346854530520730620570100165732477092761525071796024116085691686906181720944772767496579074812337468219185299793072978103804801285318792885496649456852797785398491586997845785354595895147446292325912069452151011378922652413636585352578795834460527513471024813729340725629008088919158049445784234529199119092414075489470111426546357460290596540265171817335861411154846922295910345109082005349573365674270524933419529020075776569804652182929703728201092072438146578972943556921554283095656313020860871284867317138179234048538854115774234191096913408236639485378842700516900602854469788696056380818687762487263204342358322238850476296754237053512417208429783235610860380186275287923332244470140336531956148868118673427668998429156526384795772911338706155374780391547021427361623148790401140929473811645184883823661732009759246539983308420626743481485386000844339102706920728945051457476240065335520574124071257167572434433312996217924298725794761715667828861463633959376813718060259233803957200174196839532771197092842876106318240465864516924490752850113649344217466900813994666422650936772714021389797992312976440085420922768569178896671726877082816923456286958231038587577959788900331720031102790355013083859650865972031118950334098001602426606860477293013621490214216795429846159507771204242800760574893116385340253986075073117261552238839066658939844856794896919793070339052866242063508333516493628538810959607500276455508359070862930471153609891898556384800483763711864465735531930310533634797192006926792067518550312613646911821343744964636239386707060106121502043333875154065208396241595060236922270762211465546732036581205430391245465015887428353838073139372946195222973751991285418528164653742920703371209460775867230705995384093665385470016817922794590510745124123963458412547140056320442288748561890179853766267753288523396680193621856528489947883738320210074623785280183374765552483531184628937510290092289691854262218582706006647132036597877935672945487158546530080945644550956634391928660232596723207445105848267455367299464481863790990303402454805052807833850845129361400667994007854259488110156680778117692314662657254792296184422841488212745003232202323659555477093168931794227137994322210219621813896599283519239467962434634647409318578355837524630552204973569119891703695075651168501257712973447901274303390163619797370337188472919200971640545931435997856376702322630107441841691560845914730904424287388006701514769863488860437601466625827191822465885299752128828501006295878968886150322666359807540517116925609433813339841701650916291444633790169192213286517550528628717020159701060381705141177683505019120617844778892511396836385215569927113890481348932950576214748859506841816289919992920583737570522949468679759925314337552769331071106483871849125031358303165524036853511377349768215948520504896067441075455663370638283639812418187785926447342403080305640223517294104861713640645803763517681920915848971731637688640020259807383047579828019689524413277986909010827330050055398188967111775784611678422574427506840462173625297490560342335544769391851724586186967078096754974687168236224404356026383400330959862299450534474876279817073694543244938262677886886869635434980625107868664210369015802186820204793982893278000519231416224124518248461170676788501764902316326568671763498119584217480765144261196111785041229300285761378512673719101380470190250323380643638536322799105874251113522212265480184737934430322821373763456529927056152861034743013302313669595706815220601363728757855454781069641428211517617672328078944649026825883646668527777598138137585472774383059353477023330906678409184951970423834119955619049038994018519172753732520636443343056302476109448094573468868401735925632022587983307593766123415083146810885327188110677554749344727469471245976707702138594371650821071223240253203898233991926423062920885162272569468652983069302667753819379256646590748670284120421287202402613038829078368755147766361399301133818946811668497618748439829471970324914468075458027103734190762038316822247039245983610835041993613151759949869409096533412606828265850910886455481263886962703083844137699223144798417363129128290679148782206902599867882012351325785414714675082974142705725222406043064405859468371198471114797257548993218204620971050227740498179887772398703823639564536800633960142508677476110534770459216780725736401158754176112387535972123042156061538331699525174439611953717706816603830169277315155460558855060412530667941075711273807338314467003273892465978351454079045704416298029953362731893097218491304474836157642257682528190760681668127957926057341980910308096463511514660196715702538387854103228482950496078078464653448035315984990868785789315771544410994181431520145227304308713518466679305354004224669453494851751690524532721466553335302167970469307315070839001456592529851329905239436402455674003620426174945902709388758496559755453037916690279582727746369863813505922557792374556073741550618960090574963502879929146969507738651983657573993681747219524283621586594493225518909954585327038565349528391876778126476478645455565990394950741795998296056610587310273032106568582769272487035493141790663136635114616825119690090099207513563437376624582403456614570637652847362234708555317566537432031499853521755512055461183443159047668963894822777555178904526209276242971649794245701890938365061002826007359306335537755737493572607208178177141374893201284655146717422873540395166190568942998742185056442221331082206456193904758285633870485434728488220007018419102539108867086632622907524494367277098553381630257948679221277746894662824599604818281824711514097683083778662563315184455041137265782532568033330377173903554812934851963020957734863791127627834450927366983498367955453357226559956830248784591041609716864791226775047092841429921144116526426035548217686544414733216041512975619808666252039001455853660644042653308850487029542754552727151476572682737245976478787145394406181742830008469713444893878496299184674761533929758137290547699283737541017448397993045471075234918632876716534145101334485702702960273624366228786420451515568619934812013486204554271364840497715538745539954371689081584927877039935129768523327108607767894076413347315207808567822936131901701797014799289295251152147679679534088368143822942074355307439168557830291072007798603598378665013452746207765714748330826781691927547359781493738712650714062012504551619160061705476102862186643711984974016283327299695589911954606097036754644423033958699402143490882737751931933951606382589839980800689100499580699099177438759518852273698475129835437838198273715059800923015630642064654861696772759591799700679269572526987603957139400441369217464746209098039195433220546415235312294652688104865819591520243115435686274523827001154731662424583731664614336579803979519259097927596031927634781775911462591999953150321598320854531610047915875089218309789543696699073596645099061827856107381193192247902298735517409440250456781040867145507563471839128977893143420098204430194372532432115798414991059391732172701423367399629058148410462843291080961962327732886081333412022804024896720206780464241991808033019778763516185879138813255257969055153106887447746626365886873109839290686768287816521608830201370505948806792867750262230723947303251899726914878366466378533916649114852831718483858759454915473024540932144868755340213891950659271223741373894415182397953505432753011214059159600100367699851321419229262535242578516991791423457926271024809213433867965723244103966136321119226503823203582398169199668857783283379371515425038206897792582131124326055955681415959382676124084349125235658180333903845629323686235583611576347701515443158993349451475979682780033870697272704480103991306647167894314511539758068401500163389872047374940764699627303443779111877516046253458029118363422960244251914552128761760752090697345879795937565862518939827482207579342752577530382731676926108732686327233610915953703841902975166678985447496996334746322867954076281752979928478777613120374220497253094116642070446138612415138802073738599841898519252552247597770418400671506470789112066913812703196077539839835466576805560873648106474857340570507394463692881691333378594412545389544915884055722406178058174976917394808661906741629116608558205593395101807018044250637906562269430100823734744871222884965858300401460641218074662294791883977685676057542038986251596881761502938587053221002884830744257043590688462804939644356119001789067620206230924672190047911304904194147751543173424139696032972644928614241174047736200605557725039676461562147637580133282801228831336888936858472246139956464786588846020244778370439037558823589546398250305198232239489723946412983353087360116047585555335602511008423691063216847586501569073217265750051122396774647216511341532494962009216276377312358939587766628947864222681156224037925957079866452444974627381231709311284723852533809522876026552080623213392382193876735563470618414099146208377082426025543514493333108826211704934691059803003443377014972942914316623147379201329089583679999137689103871049628432629520445126992922545703595031142741648910356746284143702201912489375803330419221547484912360255565612972167888281846691784306766778734176468076728670192759988156858186355613936149669966466242982113450677483041589508973004730501726560459138965758645381761004728509760230555017406651028497414004326485260360518208790429858762075776614965951094581172317254751106735107793302026002650673443157966712177908377839270492196561460538655630770441552173942839440479436735737309362711647337281101838553902886362888763892292318477357984293689260637426740094443862605987853176171672935715207754413270713541385318214245291507304846105858885741221577550536245970970822621537663449750580407480892569506964597987137363603461218558305809164065877724728511230724074538979032068295666453735247609790511207892218706550449687268613653957035888941502751113710282834064149006891208132655352871460873360495016165240232823321766757386272724440043172175951822000295879819835127882608179551865293555507440619287397874351786601898055808167275947760472242604080021713082739241584037647906350811970571741172901703826020442670048622044138435723602771267204570959094474168891648337044701227103255664459529843983920999903215046419936150227254536192814749355286765155644960400155242955622067305908671603186475559876687004899092496929943855945579474198599657167650140165305405794989992879422740683832302292804009509061090604838386925201687506065798781660494019531088981945576909011345025146876471994814326375010372957925421010189734164031200633270887273850722844760090386494069519964402843926947896762967355435898221152870443928529807930992941732889812625399450291562767502998393988801471697732716094815525401317767424550267440731080247330760252984877274074737286308106191314015271506945304047596826785351057950305964988884579934113907578211906074248062576922348699463094006578004031714848486521328546298148055929810869910109994436833907753559833978359467533419303718280346804726206546599481386048307981343538855032309772848936089646681332261078633594281628441218264700415496208586326838560744445803652107446604500842228772728017144204393538945873354674174745861500838398746783557969122547587737161654456242391858596470315046801305870356827087200491421778954574969055193948733854000821610493723003791793904763147912556886143902869350088932609224124696045576914623797629093171963471675486855421368135307101267244861220377490200360072486745995664727357869236877482628590852672268108224493285203878949788597930669920096095531927997808533311876728904198158559036510802400989232379406055518803050972123924234244162074676945464508687871643575850275130131121196381712632593728003587619307071916079187822568199075195923898811142563970944847645350333580181250417392503393014737744921641902518908407231770577434216527782150680177952844631015713484386718464521505212372501504557403759796680091404273312204105223910101160172731836268467687809452526489159705432658114992639943475616841801851887611305605777969229910961186951306928913134011836283255874869525555991397710616799821322771778108795621420020215788055102690130223929659777631470559904683816730757766825928234991259037351992476704780778915829318234075397233560650685775502520777989926464906788899695523916053014403608316734286627141736212024418831920071547290322584280287711351671566773517665587749061427437444438813583483681053297141451253427776032924345649653867232048087691341894875283789320904387296991075021420930220218999939516869619068351611831968453342838582758887543419223759069946897341399940674164709789573527637358309727009391464090992573876042074854584873776103632219604755598821574387836177327069054507832927027710650609429714312281397993302316139139449568435857241774146011907869941743237754671076652722318111035740533475569599273732769228823357919825639322029562575870295874832989215410854675885286068951220223509024106878651800865218508382535289300567295599890794714398954319819498947467155930123342667804357099636796673702747116305891271459762457550475482084902841779497438656585114938381998572557683473273704408693113356595080793292183128467370333111311003271766833262212183135652543033837194748492328730776358324919033321952988193807433137602921520600808399229867779782758381667176369226135608391537889284379739042212591682307374112045050189697308502916380850328459423661211217286025796070763588806026576522615229266222724089405554817830280751126963404491761816425495407055712394568700090961882602535603627198214498514896561898062236830155819135059834412878514875463678502466553495131952377655472417304699207222167647621563473740512256362532856692923115953420131063698302557938531773628169085215591933656060802603844805607059468022503049986733771713243656604132702512921767484176919475299024473923664145471164617268884753798632023401006701383446006111145694346696308183997795923931926038862192637526052187425061700582425765576927262794370213492573252374520891383169205318399024025162879025624152670398833759481624168815683829520187565022206742206707231198672173424862244805062993698986067737600266775701111940771264620809164770751235720462128690916447195837284270609040154617573719771474924356309510376296919860721020812103065589030946155877140726100544359461064109351791123362255860004536910091617125730416577930095197930404580859740862970358594367703410546437207245805702064491316350636675322008912038183900623240044406978903569049642659945687990496914479126789600858738243085982183998499570189786838404186840009688121968056194791325766031182203685335127124272539224450116648892233442224236813081229265307715579153397844834854919766319077078768870086608252348577922236840411110958828911980836281971844051626340336410605299858430008220148527919089671045586049118387326737006208303876446434893541427021405872965327200991742472730679945395780135919773533329858872862262099746514888603732204899930132116567233338272210827264556025916594343808646112339364255506773290862607642958359717818318471370782513053046333370275185861506637296675298760315957496400518303984047160053445579651365370623326339128196701663754091110698283565227174496986751065990846439969364640256185042595037344142058273830360613166836504780991527179535402679204386595784124206051376331503527842810427005958463019871569260956869039761145330217813156838508866448384247443826193981100951106360711258774799463018611489899057515847319521666429579903933618355581331352289100200942267837987642081680581440955520346645081801590549339335121189522797358011602917378477119702375546642458282784671277745466681035522347237720590670594874684556657631245384672914135217018576739003260625767330108626721760560032173920865766325562175628595676091862147168869230109537714485557533649751126579668492367619597889128909319501155761116700544597259959999776129360242637379662549455673979080935527963186251707422495249936862300708517924527699098374334828604237795158603503855174080624064957966847391893990522427917850543545965708460936934986448931811375240064517467346861167883232187723206062019393883181563413050214798825885224604871433326981603896278329909067479503490064505174391882271171100395092263437925295308535186481631827988182680092688041182346745709335340606571574933185679714087344457519474137399820777919080254110681859281538990897457439404620358788262101626100911448727418676401080395056044460054804870650241875159240462151454755351589955397696425428327728265468593178851668190603565629807412987775748191860658389092922130590436796647798330750226553192339149710048452100255289317661341823718995289836444885120109336619950284865437607282414120692223464305776778706467326918962411735420446163863891658510798889375117657048087610949848450419162068453524005747003174307344530653859311356402055480467326094768943037117222305623022356269147687965408474563171119725761726633794341490968894570335057082886578050167406788828964819548058097363342196719068272634992279067604249829409351546252498560475206454942287833155504597828454555099645479361268350485125172786767116716978517542491539444303139557709949251105176676498973868345497023543642664078166052412517905676312561217681679612481947348847919356346128628929924542996079251173549819658300676749457245349907203294397215758405633480210979551025127328621645346636644763696509373429145453259195448908625621291262922665489833080788080323193371881720398501725806133386247174140267827316628252159810363930257154008658845880307291745338127317571226804725941172432463886361761893384045972245688865462943761718680967080921894745300611818806193106734325230051956109447500162878604441656895494191931592233882406588428743572491520242245007439431481594016854195445166681811905770039292867591158507974692893463272524019076206319205010636821580065366346407250159029063356756196222357717736539113306896703370360957256260560826672414874939648468968431708753770131527819600303082576779720205198496906352146299407172202447575521086342039696804117189527009578557992767838393644659142078812716328733812797031112485108237187922874510615798599436124835021544526538390622542682400647473577914143318930873191592465426332422317202817161359138559977048618133372327098101337640027240933724376437660825662299035723218832335397241757685446066844188515846303553479203448068682131043546820920331070127487145545898591125315317669672462580280417450363617291104384180871836443439214485246485176117909169300142519047247230520351149751973476906495122731827376920267235623629753032147044445960560837512080424006063743572973901742488137571667967155221046730333369067964580000090745454828817811281322026118681496732416677790197537104376626408343160398937972866178769266309245894915925292436958648609084917372730158860822875854600133336416547901802953947630941228890490971255397627488253513260068763134561516845303514670418055376431697796411973519424155045051635049768383711537421935043575943769875238578986710100075359596489098324766434491112527529686573999545622798561091834897730107887325486972295298231319168530135946613860520563177132536899226430992055901529351224941039141423879662763540702433822432394232766550422760406788415818107840825079399108619274221721853489354667940654619102119419175759624585930667428944763260564796938031176988981243015730023312745062227222899857384282846134084079110777677929677706237338837490228197335854338135259561021881104365454827931181193091601358737086465513638898617583385567684661874528387138446265824331884438070833790512342239070238214225908989035084442035234244725867292065497814694871006449130415536562221884842616852204873055214085627249807013140163763814037958626718911904236890208501251373515243035666525633044316186251906681342874211627952609001092585407614936471777288693948192294860925087608317940721846767357477317173737640441079246168598334628353455577997284953840299463636973186005669655114089458147998239176934116325738759308193949859988674816383835817252108420648259251588782629877844633829669508570311620822092559355284105273692460927752731715513339119095090258326084471567276116729358678594069938462002991361858999495356643641099982374243680547341973986327141393686217949343923736885658834378024629161179404473255894795053174679331804789438689343371139834846607824391871207602956686284746391432873114812022686722122021167308142739756724109337044182999536836738401005138904128157926931155062406653433703729993616115882271966280861238375707385234443816515053784381132804064061941561220303503833582083739767659139700163163136494156384911749249056422728715809438082490253813944626789079266905524734192748175515636606846546448821292083089695732071015977205648086323465855899143518535087922712062069611124168921714164301252543756282681428245427565279605991055263627994181575957614698334386052845841152721393169057798769657296065275549516978574913786349881420556101082043971376517532951800811345730007735120627383745476442994745942105629438207284557783087981306536515867763288721447930747266249630255466033892993300133717523124424512617524965673764139278862593278632484123773108486155344206621286843972190371904690725029575575306103600803803546695302093149316020462061176918175249836614297312304376023528719502408765939326321772103175866425021685442487443813761623951246447635750766941057964281049609627245582387256402839788790870606746419920591903237088207558608663161745360307348571739578689493586499485516182365614980501583595889536905547042195837827079872740327871149957510883953577237966903422485842936232816024376365250638244245664553227392852632308133536149572797413996339076166188004225062977751002189630486063684568919110661072556836360725075024931332693540550932973860104358886606987096252477825305959378497600312168572006090796261645930020842274516294226720988547171558775082093566548576693752112465915414227476894985217832834038069821962509714455812503428612329314418658693629937863961709935021404418226253582653832962216995546724125129044886754407707043912460559619560355294400545615557475854296730327891453205724139070648626490180443925746013720204157536723659862577901005722188295327513816408458118870665888239063991184779927114001449425397514027340001395140018432833705586315702624741963120708020872088158807488683898574637534805471477885018847084804462376258628311245222301859334242843581357158287513174253797523962117924779747919916364663404186930537197709078023434366101412060915785683527131983873997994227033720944843130256463984772210711529431261020596452455859306045018780755624452722420569290427669946486664133882791950356652473705475978069639667202379291647085334818872570443594074660382965717987075734170833942645078252226989089876913229665340065960746793493967050103928024294340108520589351562760161734267434803574535432454513106443811392621526364316727910913434553722912583515900302380735570121593568348653233287675347197895042931581262463606723434519887482854832370597916428415127154465780433859993614778618976958617460058176852285084271580420272597364742121802156445752632377820625381112604672767868121400755863590557168871234937426989609300153244224126128888283808598893282152819861249371833199145631021875710619473090299812261009859711713669379473547917048048189330054637196762625912959071099243566860689185958937975704368079918056082496879461595119799584490415982496690589962882715228756915221050513582493001751795813782735883831359433243101754852803426462874656408994258588592592619894050929218154995617291164353685753578817922437334753203472949351348270510229886790268296051258977616388458630522992186625613382953363658344148967985036603248522231604748577639148802182324516704337297710064769652654239110380630618746790433462698506058761940654309430640237123767218040411576474515267856544607212489043561721385043981792460406837838213961535288947509198996342343328786252248316285877345803838611926133060998096642514418542397268416576195179449401197496019936171839516340848859923048055389621679731772945238904797901450194068776367818946058979093989131820293954932697257346157702909754404455931523858563285097960012697435107185635336861613701871761758118001460686865124973834397856430403502379451547347662144907638956592292124255463631396218244478251577071814194850989122575568748506378009686735808721792919628828620249895537690454516317749280023310877704190338304188382169019122067098635214611731729162516538941649050769289208785768250360494872865901125824074665510740940605774764752450105702252187433936545987691075953872251520705814395448575403368896083691261143072142846036201786544670295061915540753676738805070757947024162548794943544823026701065973517637219813897844488945191301678588560531065909748251669854540969466544623168923685916042944459446941648981932699439133784642120102227512887883856930095008333480936230521323365066890466976807803056723874164310741804298340610128911720680555344425235974587527549011482454069227217068270801201826984866858207064168069753746676449328407611726965660164411075012978245001958427298614132193448322437258718843860127738040740435878283147815243271377027265628799507516429392945127255908762247680444325282416261480426103344649068077858063408039713893968692224253581547141875708679950444269345510791209176257251953299287598779228763121039063728670945120662071445894384414399478434078469497840036259333250795613635803428163430344078978130280653519616570223874743622840697365644663284282625214966199619976582941001692607996124299855683713465441405355931438782974242897284654354335208470822287373793221147098704914568233347090961582679699084839482909685954712170240415905161320075043211305120207962207310157281980214292357858696876891468029858372868602920302216956676634862499125455878962768844139349775815680121013433820330424548686953065615679487993223025238884186804890213010036079120765943417680711188050745278227121197637525353312065611127760606471109814714425244300964769819722268177221530504125864444172362043948373060047615452481007546126397371476532837597243011425834387270932577495061286189016756880514839340760149808472416872387768192110396045868588544610738240736321086826443508150522560671781983511909985659858696018102879598401118321484159281415573318744404836042534260088923662259585331948661371732869090512944051681098535864682790299231775021457660969510085151478466975269197655672594943233178870462388870449617961317277382575938810382093038135141207362218850537302595132268246382524321096063843805449774743485540012804470605078671113695938278073298874911098073305350387445036205898365201612420343700313100127687437330115251408538830527720731305726443143151354821779566271064947306797832838315831033623453214417719001887206413704273437795419300972466643866363048514158853392445133615776438727390736932492764352335070034913575468152392074790802781915843349941993774261554989966505953883586277597362286408891816782834698432428128099493923779811705225467968736420627073511929818174196185413723283927015651468411038072194275481594687891442402478801953074149702931434886327639016965245183947812562933350961972319528275604895231211982254788555295739607170079484414737476022104723786890949250376713242682424279731410307626273022382686359694830203165978459922833339508260132880863597506630940267910140245746620256494196428451009992106988587945049892983655561499919187985499820034862472968786782519095323732071073100769469371845964892487405812812612421533308513182066762527896835854687298307451008584649143716737692537284283826850753777093309426193481171623166606352028722522821562242004397570226012934161993648356110309230158404143585841072706990523074577764506490803981839197652548149812038175140566540470502055399767125974532950388360939329186539886740499469155548748853507606029606044235765517548291153687695829520695686323494688724619581691607094827963963355071339413368595362709238788125169770211593576744119264597869023174427889286668671643216216310649334116479057372521530561370804771481127937134383209507443082191330003457321064903023307173088283537013116409487669171009379411847516892697651889522229700152738238455200338328271103586609907748067954742395565226576800766530376655051939163749778877339699969593274177719920607100248309252505248426044220323503499783744672492364952486796655826922141300771316152829094046275795694212124719153437289342885629574163937974057189018444020050759426948848739048319276125351236877337763431804956591097926985525948716275898760582741193655752610786856742267716147123178240644944906344756900235265792144397095401477075012015625418440773191901117200115584150578514151621277633206761286093622130620131837869896534441453049393818288988254541483529201240587389601594917272594731713852787174973037524446854966998035267419500098797304745468442582412669869164483327254343172207211559305577929784296282206162584156985162709133369847911973139459542516608276453066234365333306050083497958432639458392326903047437234130475976264551106067412781414711334926793429644778912125449631864179019522249115742339752711222935514433568378796630065577050246461767713903788065797615383884293840751815324065472804269259637837266761954912400242715008343205311890386928391149817121691905622540372998754716841061140138224766227302713807397446733135381080360245742811902369740212918963109153464095896919778154561044373794931116774418369043093478561400775925478095229761229806659860391879869003518313097459668191082650050441931124265903358606055039076746745121827080847380030433794118125486323684565712752683493771755171589070921571785115823329117121591004218686716954385534293140869321767863539193463742212636751263035703540784952834596031520371205633360611743049420765719195917279159245243106856510016078772437201600568022678594773593275069888973930254656666720624239760415551872802673981201249595337636294823808682131627103487374575097602603963262019966255370948792030293247103684788726411925673217459301549764652967710308766221094554252385680593885057147779949238006086260865842145555568920302691463818567725148291316006408167887009394032149778107700073000782339644316734012552271470963376986792999288441109865637497820708990320262129520001895776303728688033117210423541177950016983181771890196653951487514394923537084885998164272384136397765668509146704491040705863833172691867992920772673604460492831782026385985382713723813280331176695586214520970399693031092322265518108870100327056521688672337440214596151268009202604041800993839575024982591380296785007691477467699579803672173513025309429384288849178587750623672984707034603283554790670077548551147824012928649614976469437655525738307588612381826518716538450841591440436079836101724317081998878133635213521712641086318164854001715755468466608992407057202472051183447755812551482652180607548694446824875215554043237814876323083379211630883853473913225866419530538588790504926771583102170576003071892122134085619232661677632501747539427047362479598702928038672355718637532518131890648207337965239467803569229153119808459295132734150190166521039499286968852070814334743370564911010922582330007642633607134850558091512083378185506343729337004152322488595759435106020703403294744017004379911403670113226242469681886868203162951620676644182145667288419925899074544401292201953212652181676286082914902408956194039772414463042028982232355077444165072910919653781850581234998602028389280648704885699887228460758891349998551203132721289540803108869277360948621780742878880253633666497135893816756812872076463596173947703578278960341088924626962374721791041974056519951966434191652652334778732389337421947726770221733384928066939189149317764984730570972961667702953909246502525465989365359827059981675669345623789555821216865115928177718914610031605335714290071051698912109251429448588309745533314350814533702616860286795010045425582486977233871776373177867606378081676901052771842505927834536359071394531798294788144271481921208520378402844531726471425792040310794729622082263957465331753673129214621175247865390621266604080510867021645262543512530169242639914799220369184961967778762284338860695139712042969348795765823851149276806073995995377492022929166608990868063557797316865211757700755047525386836837014608065118186078216202257719038170598488700082649621081279140012780939347341455688765796193650511201658905545256871977398361226832662664286162173994374995424650805984920320996448027092682366433862516240396500135332776191448186225726593402199249179847947965337042385763481146433231689969637030053413225306329258496322335445152199688407375807485022135969312920081671003933499634078988028284236564411154844509248136120741484208527194566867698668333822189488337693020448512823272389714987690415027171145454043626089196644991273450918377500264738858841879058888127040010120649178992228490769265099089200863135315182171795997674021053438131562041311146200533710680299189607052924064248998546824940646047606811042312840076064107823283778154076521076379004735668579932937948905490869956259597654118107972250671453487665994095338901090000998892671913841792713097667270660685583908623893375302379013776134904167368085461493470447222939113361344073585799058616286067288969697638551794566476772899378084479898961118146887819222394433857857276673068153863519322255873052127547304762179763081439225539267427534663745628704292477704344418085166464160415506150716067006760710127108645764413647521048376270851868016075162975963825463092473088909533620778199313431751538031108360596656544933321068183095580067670737602460061805413970387741611541598723772475620919566607452255931258188261535716998311206657107895674231880713013060738282065788431162048057880323887236040240015211782323566805851446022976563220931904610809770837454106228702640963904327414901672165114378043570065975102963406357324010608263756885845930793642930492289333940838309004069709318318657849024806726721120268891430355679510291808875172213608955482144374403552690647314780208716274506526620711165005687770812521249693308757519816976697645753943328349701615888791005385492554950247014510525126205506411550808051230086226595661307631634116678520441097667425977373310646306230511626924759963667494435452437300308407229135729437038897696275789913268644819420896925987566906748239236168251654107145726347775595360340489880092805837999660833670322453848589772214149299670847199904890631364440182324471157104931789259285843424275379319123034398767546575878958701606531784196389867791026652008022488718077223229502056797739654071446073831977228369003171126764854133375337523242307725436152283598079281316153629009645149477017705173057869233856477610521354198312506425673009956030379036554559686380093980848655595582400773849397417936809814069105149358532869794500844447353272399127125540133268865910936878820926529664258924202626663439818196216760559429679559640036121374455325629724538662860418620267573031985122070879486079458633518706537061193674929719751812661427056358348499722012118940444428066025550674498163666884831725099534973079430071061923150392320751815819055128305589540921944576830963367022446218807335213663189940184227553172470618284679179869571664678302582548385413830250741294736177607038787568129473399945831460719041932880000275075832264710422958938314571876188394992987977304543427854797653202933195098470145777814940000842616282437453646280955621133089593991516480915403846280104915645701098836859716815691310643345889460606688725826983896818405295332424241206656444052695419181289782824938926199847248661572708088092383114072670182331276038932183418890354700714193694871503311314004975663985042625630093748739337253755342996953442360218613332181709360236328504461280872133708834730909951193336181025410903566455106323989009045958683308286343260605214375876692506523662378892627290678178498934173323399782723120475048735709285790527879522652590568837680957870100001153053244534604251640126810641196741178437987713299440002325012986945702728524965529625259282262846145366138837665235202101974299136597388963954295209736727823763831060644969346165149916990203866501593299439001409877281078472006850512278625046139577465470862218003107342793826178748509119912206064243058745594120053994043578292783523328191049289205289347429153551990128151455402988968186654453488583588762898878674600297388519344931722235769392006163718681378794664633399383924540381120068950079399767159957914809546533672458481555286137045110707130175575100283581005620163602712817897053046283406223120305664457190921522601793098536360626161878269584123824433315057267840670589762518329782903118822337672441775806505780489732370333866002915266613350145343293388911120530563423997503385704017110643939891877390944038310336059279965438322263739412493259410565313574206750864434817599988894134568787433967822112718083903120678056046862336602252623924245526930864624501157871092858797779007381663886098493093355366756478497696543620473648336698113482770316088701937730897753916046276835499269310627215510171259568914460177998863495826298622106233667144720909292198949213723106495536664670611617232806399078882869512284034546574656462635686426838118441003407905935420582794706418206729132726099743042510582862688225067196852645096686130706940588619502468375393344725335431632714903583178806063552561633895768273919567570075241031184822192425106159894738699090341606451487134103947931286763306192279364285649095536314507594948741810377754378070369235232757994864945585814545182824844690038915719032053196029907594322957229351187895009716003876155558362328748067056403909171884410930983209428136447268694726079565255679116438626834945855670593351400118272375927141330071762138496621701194929688610482669349376014235128380120984568077322834899507902947961009102048103090565071280514812016652439380772881577203580180962099386074200482982330020140713228540970257364794136768536170600451383340191846305740366935880454619864971747801117721487999314514435166575571238798328123732960568956646058922681683255958570317479878183018919006006636902480204637639035742201024367053160225639415350181322822551277952095368577201878555337028364562920676830725686355086903259791499063153919280659966776945230039305553103772355121908607560457850990742672505241650168701823457435974947634845166477672780795225569111186740318179405622626342814891697188605470563047319380353996410429445655502951635025291997880032050385215966600903045074871224724297090891631727667663165060184025573783970282965888588394424866588039104312506501352976926350164061244410276716404124051005363978052856220619896143083904129835009068614417688038825440595413103695764341987955249234817722221303073953218487004229249692877344135214511739672245718920798390471972113547694924718586624386480075195924254587548982550516793695501956103146067117261372397578651828151240632228780089484245516525835692890889791274774484663590110041148681958418997641316909900894927498570693284964623965898839657023505407205217073490254346718924151081942754655875222338424241257606234421630493383023609780362286059822734426710361411361139551202447082164391738837446533318780918270047181758227721421874724943335109253012769637093699779266852982973099643301721779404215945953075656723641410596825413704589957579601763784741319265021326226381269054186064147704535555355257036282031671317367321565754837981045356584421848882544200652181845492217350298875312235454517294465909744852374874978539328948856930812091556781665226607192708880309650432301982156984696804070369402561009400356467390058851102280966870642355961057598507705695106411786175241428925649882743812783070996810998807835446232724654482441324093096719056516897420654184815767522119953401084333605394593667623687121169053955119195547289271255074668260307613069608582660245956632815110484704308369595717729436587371250454880691277167996536352936689531734711170047935405689987133708584838802928409957263223856034220450712736918661942209092881219987882077221954969228107338695691519514706657664114781628953974472056452442705641185217877278261804641100260846684108795665107862637621053346036032449867919455633867851782678406843733563603190364700178319002487431396566048003038632583349656498712658249491100865294402204349757316957106649795128003642604480065188616554219696758804943637103542593540501188430660092057354295264576553949424212685610357882437075753160582543031172442394004815904461279769162957773038276652761704744862537997233471283749401984897119240535860057677921802417596443588896586744680146263056913574751950200760528055758285161987624975500438779831354703452333552192090363854214749700844143723270579131936207852137582319387400222306455013786579732716515292885823841489689714439693848546166485706540482958469963473838368238234427116455407830498958081812166496352597407635054649496664510022911613960036174110504062243234851225898771692466867587161866043102231340320060967535628147615980367333026420611797316824469902955945356176558714909273569877534011535233296696474798377897763352260374071271413461985792637097143680083078754944330406395608128745636758921169474050119222313240950609542242013515737424121406241791860176624054663891466251464305237840007539983920529536414143993471781154913268067199899629599583415195900479509750138264709907297030770608822648133319328355638456958164437612210821815936787785473441536555692562556336817904516908729634664188788075109289486178364845491931070799199266401378404020803720242548593660358120987092204896740895879505525494881030354602660234032807935423927282669889952575101105683116203919726577050695530165214334680771978827517889958665921890405215850249302015931541593690739792454203056254168878305725509596728513777320529134671348187004570324433910712936315239152159322022277100695695450689154232944085150903085433756130109753271830121838834332638877430308019847650588520401389651803388543406247837616243689940265917768283094543077668708348514429621648126158912781292471721328422316470711194086928084987092632552552300050521529911511713812878746777199824212884852092652027603087777614304846367403418012375369632466864671848050282735790469274531614510077971238282131084928333492358702644286364255211674362799068922910054594614589780763280103205111311725964442272970434131418534271314116268391630212812014314323491405431511386978206371636406919553519415801857700716488651493786226083830942769091288561303216803055402949326555845506657586496096292118966817361681290715796329553115093015739106279184791471847398709816530227002705771607580012577419394882424298679999894604653275019411621637205821569587562723376822164152278064890817743948119676300830136226413242747979696808145646902139066828745767060594592204694736707652585216263985282851394093604922600482505728724122531508409229318369445819176653252630506463701567316864141235410814145265256464124261058092816382469275791021007376770319131802717095098735672596653334906032272137512143963761251465867995442307173030234846060142203904367550771393113979284412104882940391205954710346395291795670132176777326739569991263079839811720359113538350891837214812441680800344562476566707539023586411677173545624366473573413449803365955770672325403930807706951341565277552386691499752996225762655757225627110180185214339044279388182943586926085735730379227880443004179460676236540427323336036430779860451083218620530922720083645184920465925801101778876045671694363423234473620334271551593654100443425215109499431135841530321611300300296315057644224103217855256206303235580579703906767226463748363271998806385578905114512351348042382826043234114425195668240825663664934561073026691429080122026657737542238578008849621881574018233636156566657698509779157669110330165442888955033108603567602246414991724484785270179705048133340745438227643118645204528220847436887016427829768028457687804374345002295243105112895525235587507291227503126401382443752199789240204651208121160557249350296599329978838708925910924895260799162611500661795046959256153188538836433668468893659580660780296023228699859336957069410516580735555418776815652180675685463159255029550527658219967322151546015490498758147562163414808177724345015161110978089461119900064830764178895683165728525424193480274409055444804135138954679044485129629493355991249857198708006237697237924810870260420024885469886180585499422435438250314415991814889702554156953474894684907467262209376004727240776934946111605181002855476370904578241936017016017325687200688765377414391088238748999326828969734687429683834921580369047493852240993170916163363100966429563151355122640279524587094090913466570396287814724574638716325527241969149579034421994757010762760551247668614768090975324159778791940542151971967287222570693889429625467939714090012587945996241310829131543311487598176174862583017699547628961246751136327052487571629066824813335739423232108279558608157584871016361449525752736910278716106043340056619535478200562175009380804240480375387487432241610141051696445432127391949758992146922864341391322483509466012804964434768403979609724799895090934658220688184755535171861401537266460663871930935319039897927188803738278355431797534720128013732081910707460143560835963340797694231324839726215156010670575293551537585655964400734262229547583684236138971985877011494582970858831349268294608369586007313930993528851991533670026813566023342535414214140527925207561494582121456222657174727410990916602604917942259220091799728585737331648383298107836485508503400679279692809139132653000234654465165641033193861499400558547157137730596813513793529559456324742215568738497759350668348723164617190326972712088346405170131597761035497543438886124610302176991565867263076902276015973363811111225486852387313786993996044577202938478344808440165278520826971374834950182277247494429227704168425638163751280976033917879415611320266341491341967466852449936412465594785955383033333711030597921213276615118243078863789453691060270708971549448636956214916512850893613196357684074942762419498332076698317412742763735609793737283521840931512869778251030989806592484355763030168830031109892981764409317882214777219750512255286218278593391146533516183965962285529119331518586480518624217583529130065808944585595932593554607976683912372796238694825756268042595609453046051161936389751825209795062319196470381877461356158074515958504329609392359372088510750681643473830994504344379039837164904340258451465453796297723977025390565327589736947548318184598717670248419041632638980926132269201987057057919449480751693927130815276880232401583602083967579680354455639466280944339073884937817160620876935687049619803841793267571345813349110025715298021426344970775178909668082317769688390810062849217579435362141922978109483148840152421256055757967542976207864864916529942359016572634748320149891733115165993341026126748487400133841762268318562962049563480620462848449797484687112291110879855387063634573833477078102766538744538802429599705391123450981574034716021780793222310349572566055056774162507282454222481642633353045084838788425004146010617641001586206506110334909376554654715149759997558564039571582975366629161282360586547147610280205774099501178699887482164456735711322737854851223583788751158396351155254627648579126132601261904251017983606068991974676080080990896068462956351609392900943361887364397179623506857122256664506828223214445523069600429010986650937493842888018269790962085621956030656522725137331511806671763806880138943047359102657661281194936477280931330490769347060147333615927421966471972318000001065704115920521731218570801023904386463163947369028640297417224869577338541104652702982479319109496383316274132890537487064109486802816055610840925237371697543759844471920173669362651018289689928650097307840673212279574879965448845680209188451637638690864014527392925965842876338929304591299005561714985179391045550658832506142362953552114564002097592882136260055188300938957054364536272082721685603995395608396571044605338809985517506839051525119367134511212587045228152365974645174894439299542042850822350789646934038080432318279104187279380605351114995624864000412487775497945046914761515133984975443640454291157198132905405854619311184205439124762219443476077391876363790222455278301282035347837269978487039059836537460061848855786917828608556996558756594252933882716096235594805055043241376200925737824532846365998970094509722653044525640985049092309482345525823334063039797542695676228691074904818692845048581668566300239293479153469501217763504092936518550913575038933306733601030799156271850273311444253692330678517060249200457838558206397395339895747989440943304596826407490886861315420443892528129363078326087842394825074233962651669299074484303005232848924778181658292520293410030349001208013235476192035715807624332639376426004028618404219166825256225334349457372493075023263076416086940826576484235283534311113411963667180048059151779950127797788084173516918514501646602377964671577345508779637958360372481477217826216843927603317527117054328441640775284704770985634883537630516865473116146528434546271461986396399336448774156702539350159845819086822653643072554651432310262898161049457785975305848057590482184735839295474244891488687017911213699718461235271287432646491293614562444490949816499406638052494257263365790066011039567495388508600675675283748205674593955370406263074593393672470114429014225449002636474250035824500491894406972300851828988308592059543079310270785490231906895948290722935849596863381954414207274173256704327680506958560735208315637366652758760494867502284087318197700640672293199362394348790821112359089371745415671133789521214342522585430337901060919847252483482615533561351876151521463000962246978311989630060423995464141366682721957000276882896324679181810841917630482992553353740999080540280823554455332261404231468563028448104193556194992631339394742203688277365632195638515922665168405525155336829811032975893659819216914568934130197772392619787573354777942040633435669889495593810729470859683042259577896526249771063982776676029486742898279360980766415952693046966373324612558975899755583917036224627798775790744656756687106886135295295226274393234693201067657052930737081440507589415311509767630764774829409388771953069741644378553083011349945653605541135111251067782238969543377370371421916895016925810721024288901906857147647578767028733388541809142304269667398228812072482092249263790183002074820819043997360599594135913924034078653256010023593104258978717222406973842690133323023799690725374968606775912585639667599254772363369836887879782399336673795347971949357699899278284783816353205523436746587160206639967734743711136366140719861801307803294982355660667759424069587847299660044479152523926930180268718015596326984948414933836026977879121477625936732459338923995851083269235379844524323665736486927969313067760316148294945954288986626566170542886713682528183034572139975408857377164101468727138852886632099839323380530253729273952913590991484689775211769409040892573343039854470547671063753007105606760866451470526669932917939568616127315173541627427731296694893564990714106367464187233670123609600200516299655974619161516669344247782150547675881906770091954343577313902274578504802924734910032898462819184307125634827182242281153188645324178008164154522221947807768690511157159651023695202290888829232930607055624189054182465016446595593455541728301285955858239730722456433121000322639936103306886085648859035545163897051128070042235974761625423386018704763894817616411859126981786124666249481134782888706204992194357923613343080004110768649632236337807076926768419019589234148534277697906755847610145086178210461115655409877502167911951792795879838014089189840286372264877683040226846468298929391849455994358813517404298187334522807257594373857567295822738237874383304645545500597231279441027410342318918080300849440400094481932354286340882897599601792119097603747493642167966219661723563046813462828741717123911729418687125024150542825874985021116118588439318177488188366793574399346336643348784832512447754599814722232841923830384645941280138024376569668613188996945360889706563566025147994940453533820875368148013213066811817131966603688220973055906744181429077365040998788471675280296187304660250940440547774032521802435837316610558708208955391195748430097445537139755455043706731575789440002371060170604707436447838423084998455835409873446504121061393667204264463115156366350387200271370925229003768983875264374559399763378504792957988305050259037588020417720058053764816721586173817669898514290786127434995842085894581803703852330234655352424842266786028396750604655035552505795960658430610259200327314354451125555981635782335429655358061140316654815595271906715703074277502884602809597926458104319206157619853700783847653599054763055387130789718854848723148742642024100990857458751542362062844783122706485228287375556892897805282728315812285756660115906715475058805567104951358713896644625967406977870208480090519555980755193015107410613184140017335206878551592561390251653155229077614070877356780292585222243605026837154655779827495684131806525099485063559599396088401740403824884107456325184156949627220214743480698923418849768269804892357481926032859606231413861774751313887894385893072294797652522139239667366205615083162289920906763184576512807641775514758716508708703939823408042111284512855861505780290860220960185961137894044110351225024601549221094227685809937798736882024410178422357381117475585591634350268619800049606954504941312738277257484181729199994231981459087873113490193645733154305374320928435570847035476521231070258892472946041955739115896650227738984934298349173056792918467585505076987638622024119108174436849600959265702503627347613758508690809920555620177700680428083153722285888920661447971241816544318939724436612306091556596409472948856795275990556200909076002073357890207639883255546762234510298998507350377028996271269111407424349316076917053358635340877045922203522422731838515867293626252482047377127458822741640070962692990571325611353159939190637271530753647860926683735137359936168487765068771267336606020322503642001115899182476328573743338042243964622238662467572957941327224093869053890171483409803193976151853213648154734820169177944572751156510698849608054911626714393174093807124555548618712884381919409329311495200856503521218361011571868959944912244749819863398334477562900541922590468965071218391587685603535809261148809876447687783613949963903062550195159440035445992772916098799946079060144936497061184683920907016182471070522460954895947698370526673374715872828867572206373915499216180766377825168866520413007759894796841656014725799041904206047732278753080295190828625347185882024587919383572003735492359518466902678792326834973346514053509897138090507949810554474729864814571302734546347917698039137129231917521894011548269290835356058912639987634667645312568259224083898996268389393071854282356676903019847044840621758943030428940357700142859381947396365518395229730078676633885236234521593926811686466450736742191208777669648672502954944310213839374922524407109429745258668722303771837401235865060139510731756493919192374351945468878740328299490855072779359166192129608761461884472351428484226416098798989167681442692311380320803075685540324776501917452756698399160223909634069192091484807059410956764705687117134181961320153862138111620098282615247078612164335054752482623398564419702079937950398849348506070265412892272460392947337653203096163975119055856838975638343038005259791734359029887625572083185342237910797374262651580573808611684868433724443203182923536145229991648400945880147865844021466007408649310681502205003150931964654857850725020818674653207494730543200699981019613912314153347105810450597989091892690141420326172495059401064322669620140253917255211469663267031711183767986032381877707357002403168528018146039389987912390245949569471015203581237257938249652838675926048623010794716515765104307188067619341644712303627003258537338616688165684961934978753283960586632392227153150701512694880526419381915762013175086945673465087587770605919844558337662908424859116777339367540486284045903723264387863139907028541102652109241048472726220430586490325137836340326542963238223834126314671140356708859024921499856617746829779494211238473481757357246480284688344842686016415276522776402451223755075238207397191481070545101202504657474857820364992196608966079652605017851502326456719973221164359020136638975160784967199111627531592705088526540170013375931075807784064691516508040048557025118240226541624425247944870857687533661511970674608331445177226381879987823498268626620139889928883628573902998269413159449330471327574042717227821101814072058439609412008861164776860841827878674739071937839065621401487629514918845384816038447834092818854469170142969744414804718814091011888509459709029752937829277259067031604887857754481879470615186948248844985776440371168696367244699372115114638570211928251627083073196434407695943735312768611246719377671692485215002133207214507329420342101285415319016525191059735724302263091245441045888520797803711254784553180229159142263033643328487244097780043239472441047251186039444283735276657708814816098321507639316655319177900051843953342225565233047427515745168273776382350021973925507114977737579789859536949604940234017757438960371891647306018381442776690688129663414727571257386574766738510892000269124625380341210783453864074724770658756728032829648935686706210607496814150522789215027465380138641322823306157786298223782681851396830484031288082099381703227785246369382933808063955442903265976049052996311700214341971830115026502475730795462095485867840285904379656826460357090693383791553625245280969519554322853919212498575076527313165813681937630111960780537593792853180589627877276559190665856575269948096002533491516885379556221744160030410484507736751583696519660063087250566992247415606813415657521060904137060492178507586349093131330305957068869819541689752602998389960871010635366703667541779256022101801659416221530028774261710635012061179603425767073617231681216306237001183034893912077524339110356740037946180129224875162674783909706629875451752916282709401492803206326200503922556944150482377711337028089318561613803634223258537106396590893612012116389351517673274781249854387575158003808597359949717262574903892629452349248306959761810362968359772605348273957557900584650006380377427026235035425179581430804840934200308553524565821356340160441949730645897701265579633294186522056876207620049861388658238271400036053658978222811854422619039511540448911526758266788460872662142655533985384515099611500836525355590357120029941548492517899848219190227554111795823944753157719504910971783316421115602694791917073221565741591240526809261992506919601940431315624613043641633983899767616096524040171487778481171336149411954008800398878733954506498211656392016943693452168192965623256461123927495453203170800051834272496730810621938233840965698895313965566376202509564187309358790828852963548920519490982573288599104577279958701991747602336026247278858124011447978758374476223974492064555996280823043137185070990228742675974176942679862746091714327130189964204203840530975833461721743904886057336997603789382605418715283924516721984092282904141786594035968273169425968033666905693557624411830532162758922684957425227555125335006668328268582351229251869854189705264780095150283816553660549073570341647004678897830074837124872731625848339065275515249979897178191564845371227883975305404200739259559642663553766810379035001825737008885333878176799072869869616128447941686648900255205777763657421108024698354127432682293418345927901980854588276198559326197235740749159212927143876076786421089528528173591090404747647762062737289891531944621789116068024082246402135414827164620867296998157372315634406107070263999911910494364867298042252035811081004603423692946274923923028655359755570311399941479343533911603338407361784575087416527731037351882564587780171496443375668741500038480241347320656079865437554766266871308312967467699750590028715877999604266488723122062997832877037308659436837015137956626898813911912142412348158749082087404413851060311325660293268090481034986300850901529697458762712247105051224891944170319751204687210970068280061098018264216958056024194705588770806635358893367366267798920828651744087345408260486323413192266364673948104544067703768500986828487015821308188386994042097440924650994635587608453658800792384093814843969610405987404576072084993838549152330600380480611637348169679717249608195734920227983998894032059295126326476881909663969569701192970026800825213452260503972756917393054365963361798644464340885977331845975355977598430025152250899227307633615909847870735676345657528689036158097257810013466584542633162332684599083846182649107058428524359447962869666629523708542735522699458720791777745805161626860596786149574536199549055359735236077217233970892936516462356945726839453613281285705862728754572247285560812960881902441354930522632097078403634258585980735506664072420079394514563550551055035200404299688004666571167740292714684685891885625454524966451446020439178205300021110583151573934258885699600154948517329323979876327156868670557994452601772030179851201588224132204690230606138825210895298764380637694713139471615159290055802613813821257312474110700747572980637427005406967688005304509427475034588057096936086547263608762138168004812097203703377482179281849414105723499051049924097627264855941582393903731916236558061944625988820689637107411582161525859165805411949425533580371347417010354665168323432061603165032371104195712660070471662679388373094566106613284113510840018025548749755317922592387276994729612701626898754582262473876741844068669087659243982801484172596843053951512754900670310286464488129398361698253980854202649468012913247919688078852868433150634387524455949420664241514916942111406102041160053220042691839042258751496456725052715645292487041057674722014577430935125020021116024695994311445904318477568123295000222878619243965130577891844255365586936666526483545292762520332552135967335154488184819933444780122932946583158437824476435858165133282213725333392646622284663483497805227912293590385299994117996298724311208783373590683803693776381762244946139672299914974112681819461991520961374419856660928848920349761052913742215477504421732440567595043074490175048455217719467178011090079623006412428522131843261275510806940217803222380058795037856552873263453827789549072818323674875125019192205584466633945833816649534517473943511575973516536334248409270460027594572216326727262507171247572236252279856408408683173827697896282520980044849572157829658798553124691141132858974514350479868413783499788016822509297320124016861191063351422945389561908638861847965824741997535464157180488918498686516572129812735655746020208345711459150684580401511018011335415466531711515947989155876574446817369881766525595941475080277532135139821139724681847921384355643003226415373143104868693009054097893809065922245680646511697143265501134926771972183418943411105291779551317317477537242911096871702188851195559261724419269282236080406441946731159069540967323245563378701397963135145619391477894273142146848748419530241061302943747610222919177432695972303455895268021254879207631142407470192698730946695924375136352570252475432878584676505794900828832910640354352791741098712752009932268767902387137577959955977474658591628279636200707894994250903058977173494897783787026154220196001308808857590466327386192642762470792241228416459352400721638789174187551081370689389531228361980347380795876019571131230091320210467003318392464477520353593221440104598841271923009438207392463114683779943430019998540872590620337788542022213125143439124224548483147973588874570173178680962394496611093705924440397552390967057544215350266261045371478431944610516861566857469298639818250893551887328712832829516821043610425831009537333136281379427802674317079099143251167671542761948195648613271109966998932520633925965692316749353477145545459867550940544972803397357046870259740307000290752779699659809116464530838899702800070203954110375760608796538838368065184516478830660322675031203819345571415798455904907325610977360351999064237995448273500460992671103299451911894161752845183568227599822600776569186837975521659868737704045516631851048544888323036922404104069050218977710146107644949421342825924741005919826438888882464052580288286733958803603400980737849301875332215169996677690295566046524034036127449297853407656534616136215025925703760147019719021253600658488874628864101060711167044661156552965067361739563122886061044631070843368935954904121365011470338434351128872934303138006972395455837168638262633071589683773476443282917689223318801052776961953718304108876258546603851624405863977802935100210023336082774880138358027609828346194713201175389381590335234323947161685498565930497240270249053150945382079695361044564119299866439366875758177591707161084621805486695580652719201169766120040649115380893797011395896117009133406280114088637784911330398866502137967635470244421240510871822933928510209480296417741020493712555320631478159783615047275107084655592016516619786043100150568022794914994950301603835132953068790999015113680323332348549785681952943799789224839840699758961870653330387668181841461068644555471644813916180815485761424757866623552569892186561517563274400080646925205895694193054387098049807392265613250995144176083319409630372452207307440714223638348972970562650189368237602146047129826080466230298008273210816786729024073691298759963496894569990691817451784210527868160722670226021487869218302398349529949337294239011835242862589660366187028227232374011482565822359506726571379785618313241952674329368173875168101647864223883415250520409692863694676804920616129963596673649716965269998087727008205540690239991743277509283708734203951849081407433982512682743441099702374196174077552225869906361015608953173130650817441475930604554657195489291773202871316356546178269950907963573994171564789450950733084719247256451167674937163246407236997044703052060847809681018569015789366253102329309876738226490928543249229599788423391211693859431146067743731044991556663750814129956373432017662679630075088961571361145534160587647937487164865680567968393655202722441931990243304866419872374609118042108767189584208863071921004337942054117765888039367205058712771030028012147773664909901576437653800443947024953048704537101964985038486598416665420267758310521374183850657755997403983954334936350852772789176508510774118691132986232776144663752829052068270904860400823481923783571542030378297383991141111317058831222147937089096175789534710188208515301572960244426293130313164145564371594576482711150403116892860649149990845427211005892290121981944604678686010206028544810244593870560885416925685694818448316169951020311030840183793797923473764102391129606430998343614804351428469199489543440889401688588897055162716097450771937456924566569045669009520601785555775542389741543969777585409037703552849895207292817136161072696634144010213472459800337211450614338636725760469194664766449786855355756389007319187023641887917486040022602982469069500397557532633028499562485415269866851602824796958528581617435100572113143879973812250129157285528627547920001239682414291296317251354813847086510614826950684670559326046269879359441645109727968092284864626355455352323532539289571644476259261463774254210319039671158180508140413187025801596990310782313809815777698973219132484413674954873691117942039207401426412644911104113372552824259042868312937349971169187572683692134295768059321318267620183505716798149671065537669304448009341101748377786735032267300107657836275250339964947151829322307907768992102993666799993849551325747819190762614770726691019750829281689079027615882966114962914609000536964410709065970042567818795938760700197258458460163214215250501813381772920882303829685021816081478555984984262825864611373224355589858556877122012342079804744320256337073207633531808871577165158586642325838505635445468120626882497205555993379045244796881897320102137025019913017760770155807455098691911107270845785346544830976688682344202637105435081599715307564537880376271382893477161264708809524257651366980723920692920267181394834586398338707026108726791819899115039640774584913432191829058985886728585816455268847449834802857579666754706195183422056865234155684222604303729746679730197594742029443401039813570442542678246768896041790793532343984360787317941981749615892180112999672786946269734550351843612428821770983074387196068385884214427149578710876598908422765010459585443711389155862396105509077070822707701406222968766355417355764856755624415299538680856607986283946377164620927634270309280307611889608754821808211886463108643678297997753806521037169210069742229284715753740003777919281998047589078794885334246802010490172280532021834578340968885501552550477969845759158837221267553852063983242380217899062165372891952411682825509092244280093959264309325608136151533105350654748498097992482301329666571615721915182532525030762742356867130808670570346322598354589089847437380234559981423355578462219975926685061414783230536743156447867779210323412924301234121147613810506733870984261660760105072632216561986787506710601668337124434559104681138845605676652309400827487185784105962008536143789846406619316229329109977058818546929794730384050868258823161633282059635579543328775283878000696825912497280336931147659816884205027410954532675732335520273382615654609776529646817812973821751256916507829547051351902900097317481116583200313098323155618547690957321747181092584508444481171390950661571099588015160505485411960272246818743142910199799311877379456675303589929442879742061505237156844468396292547094271418860714902334483934103479611963679889698351472543951523142401032708630136907849241816020209293019541777864182180739416913751614855562049983869202478064669904203076909448883336814260071085597599436102580820800576491275237067576322307426518159237372255280396440120826971552293748749985417729758270447553154295424141354946005903337044316015939626625011206028838950633548359941860867052929162135984331326514765366306251983474207348026718754760448302218858656626189119720435444884752058010442806015556021733115000937655283750977593622144716358064153729404952002451577975580808678877660913457913587009832825003736230052680360424089381261713889073923315823979320412987169747742685818289442506530493724521129996329034679225966893737495736756203283635764142859353142043415202776246405058559826783171915882039391402204882533463635148760061296798598141342385541359227644422742497399906064160712431251762017909766658072361237043547396957693590350042128138758797388383141266407578996789812374186942308828476306673387591013543656248524292001653962643624721420522671176622473633007774911844395212796529548883469024063146734425911338536794851853104654868321860056125013710135526701061720716832047208600277255149482316342705064786878005628973724131388737194262764841113597927673202134442115868875073334836323707309674179659627621551292265932067046807997832057080783259274918017124326681995252289786837141603503285593111453752649162672846265890114000546170728711101170816931498042753195377950501946430676776226260802385481862495133780494279287254253376086898648426961787491700374448699437053264105427035548430962771941792497901391561217054462770525083299072703971900973329326869528780794913825161037953957188829367324136855995405730651230738854567832271290537226279289523400725893643026137721415077892115940193416448328418104263441531860604143732724450156762140474123818791320281931464671154650959898694157418808632615671484082920898250220716456900108591549867310016037319719481679357755277631245520878301322665753488682770938311361389550335218384451175660885011152207357506557378081122822198471948266495114427889074592365708303707174871052467375331750924620240108852586523248248794793038959915343915502428205689870312081873426124217941553303886462185742657973190111985462538231256009623051187147540652786019687703360573876061536191807213395046246365934894074128288500848364769022772970111546964239365247691290724594490162869682996617426637534792976235345925816473568083314844299272672219604268902515501902923573774625083870542145778080741555578355914438064852825188612162101093197145088642173147087953175740953214300609783610106447279846959141422097611718495364697657998024798540439152935134008606740391392586892872011970005473319579691633175004616344604628419381526447751079217851703491849898969347663750133127387719749778934252334067600059851916264756384153995801640598075754757219136180527714632030638471693247658202019235003457931199766827680419729918780820454312464328084961257135283295767620897968484383823449984239611572389038601598154199535740468548319701764252248619153828315877432298493341125122550214645056346249544117631144040811387364103048652510479702388451498215343460789063091162921660130625482925756169474002692618511852933594189060914394277807084289245775007932443948654726947463066853256217968793535431759884677865947089658204152857730639560225036543786231216239822187018306123827923951243244314378234780556233871394886209336731887053802178920625917451829471289747408225558670930618582229351089134117905741329327349635812323827022851676504994111031804283746929746844603685839851533366280992614920027213188943784334951001679159767453572242996830136248531456279806689624566261600279698773728906143452120616388462794754808371542890683141192691872777063598376561302527877978504295174890599325244414211246802639508089879497420306851920585435495088019563035890189477313909293405424198487205539921751821031727397823388999190525388048077081335475742371017182740796666034906495544273808898787124830740173344052017251287591596661100436218732919023849696716192152936116663796619841904012123967567733506009594208855496934856356180405668645065883415336525034439043491411832797105476121421040672948483055784971339248869145987651969005496996136872589981772443845647460632390357586730604628023546184242386313663289816104568003303667917471462260613108416043383626821908468360724022000293099918381430749587223144664635693018663017774730597820378622818355327864688315674094047641410179702500965501013830681947047789292904652853364332092316366181423488584639492211130120567882454697599573671585403033829021095572189502091039439720469409144896479937754810759807440190495885835390427291116122734809585487583168694044535429502371352736481700802973372865465503766824990722407480215148750944706456728594708013381147455646403054639704784692265939955793375718976374593625607131070504038704173229010576917443897154063413857662635332265011642354965183643661096661985712055166250402258601401756740303879043423810196921786888955101563435869452306874797709094132289166782356601174480770204724808905321652609021208894050869973141382420936124926823742621800757766603039617589745708317336466984433486606827866443414930013902118003083032491456168650999882609938638622586877844860303064047366663093808466028269046191751812877687696128993836966354771740218628673497979640127367949863940277658199790318755403909369261252774207346110206281493548260557738775613961031952861095373154214722690766595274769466457895653912670971152175241199519920822738107203358559186558667836967940615219496532430293360803441297009177084673278404067129250178941451215091435955348844637741524982480705752497189964530252847464402962040541256175340883145064317572344039237120193931084091782739287382049671867925344018166305113798147109190744289651750579840541080893153293951110706028673321894570379000090354202729483581410117774175892773667886924402121163858390482146157990628393375417629598760275659805902150805140863069262784408422985037755176111446853726867029915334786434049581966570312003576584853799579741188291316619676770430574199232064856574338578250828337811033170063884991019709022802317608217303740575218237784593693585210785868602892140396838076431642874457750306959572630521800816617785041823935905424263179387839832255332920758804773195820066361941985444591843477480061784203835766443024846632815128119942240078475738660390725805613621540980214722969823948247540084104732095433279821561990895057172830046844930834430081213162454937230422802599590486191538964929756231735658594302757501366856080124562314327101308318287939433800866558623869143346234846767511367959356142826697447632541313055653340745871225360109201995337936363587248694061563822416954525327749634409588409389305232112771597862779360510440815372156838811903589257504345571810027277806152954132365240055672670736641768620157906836353479319008179080299074162229334125608420986063992710127168946585930519494696372183358437143929479362239894153736730332103423651572079424605484373033596862096174703908087275524756839098421221119621080550718987326556620192974988636823091126316669257454975907839153043695092726571377390102015777457526637599198868567270873474545324785485334084137683699953143120563660200811602429867756058619611654729231774924468259921280438438460388644042532133782865479568393315047487996746940388999098581206445049524766847492673854972063856770999935366054422082459494120050879154564305583920212119586879961656898076829590964235072476848314779375024810685568977981050213392086825812619306999848208800187041114451500549576708406314266820398625592266747682073228928592303272105898838042884185036113253258900382334488970680541272024228339880747708195077868587189493334550207386094722238531084664187560502637403772929324373506517873241909136338708502781303474372058811765525814015866424282943809620504500078008477096505949157598495841172042465826574456505200532692362726737567666130218060250362954186706023536238450346835492974817224454367741960891921799649303641142731172889675795726765405453348341164594798057984024627954145734129329629198142347622580729812495820923951491610183704910613104552072824578646432902990732753219265492776646501822538962391862852703697049312810979511253228620473685795540448697113105851332175390155358027654678942123850015336342968918830438807207931722585258285961716768398738144384666241016314392234515136410965232456240890966087028330659988551086595874095951243436287770305743068308474743760536539482644993332697394583139962614965055431067919304589670402011727356942731167788070602547624079548266467205332781559436843906529539856972720721501222198550291046952996653662585541153274576923750884514303071795101350660908041370921499835688313226555907634071105355213705979713356879515430692520372846786579209522716691425368185690885013334278018945390780192557712669477634046582261028304144309382053593648196238917351495515196979565784677083519136213654859337274042859391851359487693795698100279872966266389666585671980723404956917286043729871560559345427055449968481609141125089864156794580444273731610849297741957272067930507158874395373013760422613870926492810267739286307910153864242926606911259995053349702100814314783480540224784871742207351024904252849563390524288936515823816167752922280368095881013947116105454211090402561398167418436324850275430929764360688051701079414896671280904277504828435153390081634277274684866070415513689529968852721905758793986079088022558727698890324897172456112996354552303656753129291310725026603335668211192850676334543505484520583177975831741558293343402892017569946245912328211127253388928977109677390560326347461784402005088319661577310040970657460821685861976130427271935206614902429353252486381345143101129128305762506075881834222708152234891937028388426605294880614221094946904923728625246851334141288079214303960148535433356398957670179424415534676814028454354174970393159609570427647156498965658666003984047928329455606882603325008729709501162455806344037305410354692685187605454140475733673778488436389593780468878801695828517163568972516288239926185393979129037651282164985480796417902398334510898768005707172527188643382149143315828964421239356140865642043375703790899723107795417874009066161656646837996888587438965815055653235061976660116387359004963543030112603589686419060318188836262213227918684448744181451398589453407423604997479176496817064801997357830880059555019680914137090396812679127667344053939939151352968575861854136907226911833835794999217361002706226030752799904049243664098717566217772619032719627437988496917424635289129890821673337291919085245510059266986684488275358217970174081612737729244867712971945666680799279700187473966344884092545924071258995361426999751739039559682473390553941940585089334564990714673267286045166686614595838686481666185824791799857026292294829668280442427221477433975956970494202891014631336492624355494628522774369321287580548567710642589510167150562568125275429037895601875627271052646912819263764558741191399051622261407178654945788701599046924726864214635879783264597383174953093028452541890863779144252978790248807717430157336817574584003024314544063454781706180712787449980611913381111394422984566230967601233901867932360513968351755084232804525142974222716887723942695368730720807998431191554569868690570734048507951436299926781873234128512129132465901048924458775069834176091659673471788342626345866980724412595330562896963540394074253107268416852179354354076820418041584826367659005024081104932524616263733186197188725380232955598455580027117842534701728195402068986806782401358539297612248360785604130792719351914092977848614611653563599837942186903996825864532819008475039204446196335065077818602227212326612366884824180724447871351609828712888110599523926963806925456367983794414364854035118218039210874496413819870759166642544832252619389590298245525835587685713341860469427917033809699191115751675725864967702009230896315456391428564748690533497229190910621180892457867512808646795338643820402491903424879834562380115565780193666876251757609398654441551923928180936763634402434778512646114084655725880011230099696110629796463404984584670990965568334753574064935506209402180705181279776230628518684887550460691612878294828735017692839014548434499445785465702978430069266625479304607651084637761299669823037150457549213992676035857895962451145071056779141331492005321801055183529935432469086307480468599912797132989315743729397817721013484238767923106054909556542453822408575413182701294262798570169779115457248931488343868649283004862994988369339794658418938065707727192373704556783210195535892607934973183918693782005232680822563983669821420930349923419368317884030912367755177601462486008102133289427234582990948398778238616651397881970699013415282988902369589583794154346162569689407231804630905923374255478280812162854396799050825855273021545065828102274609280967398256131486726936757985669667549978710940070206802047023547771894307075050073710106657144581565011959101710198799125312298158415504822027726854879145878760294765949565051717329874557844237782592521248618705232505322369948336501186570273134915665240115785998107452148430860846974909105823001123944349304842044070221552232615718241088803937423686657101275506644194562230092052286399530348814570631591958057164245329851340199941253028678848727863361081174838211427135245279398228318907231506298509419674195481788453926407215890452879427489635989502981506272157791373619475300026051035099283619831400857972604802654680294440714507746381497397558243573479548773354124041808691252186707994073072032564395247366929228338884942158168741184735659350068669803076570025257562122900469672294988195277081900959612790028573758602107962428482413426687172940212618147227011348626883576872524941286627366056605182527158874364069196173117294871310702817781357813482762880034234456517454737987468715439902746834382253490102765708710050934494993614434659125988864594381325335491666379278011611882287836389971024542826261087535746620293772562901451397552526214064008082542536654188808919920738964286437658670877470895836533385393943704268497308017790615484753226040606147770305726231828837193492985954619114254425205395634205109862536930135067550590875426660054606012038686695628961352836015493511764134016538723398999556499770647414744375028956727132132238718790054867249860117434320026711909409261769522638181992429333280377314612918606220389995286541025640847723568562089694502881213058165981817792744171573043955914465216688383154649424460799727662842301751177146747192407030333432763648064642494945747020923291771314798095546455035823633411610199672646995989981400714916386922125732379849171884111752176354915561840159820947336202567147672117762005144503147873598900208114890202942834618140712692783277933439898718639882715361200459328205395114729762797280210620327999770538009685734484267928665022826181017686783450645669473546892021567161824744900795492383367135769478778083954424146065588867187015964039531269252778252953633806778829409392324098212362824229428807919455224750658917382321988943889391440759239821143416176024980079966114192832404513582219624203211794394588672185388243459788464127751182490153088108710623075665483702333968009563849288325612447540017899732337683239476334651915176277950916101568036037762018878677969579813623387885998712084308290940736247521886075791591048377141500076807816814328303487165461022678636019830194061672838131197940358898656861703837081873695041617916516076260138823484261118107523867055358898182747356320402981671941791744686556917960213931496368868734170775600080722584602278163560349694264349433221426385377824531234839945408806099930035108933652349547158861331969108811243899296276234006269226814231423098399831121798427074974178418266293806541866841314328700188485634199374065801598664601067435021875195581348660635954308505014376526960802354069221759016987543236226727426613262959884068077065643142553258499309068762630696741324599320042650874868530933667586298694950196858358874121474419938083840318936744529507634541163052004004761055280997711227488598834432032414905150918827766054037699372274660707491895400833731744394191628903032683858232099463526156817755509027399301176469917915554078932579101908490878130920163803014418269597530060880998002579600341000527235747102343336966752625417849770161946209133870171907119364844641676400315045895106925676048746287889260934743533223348047153676355994374622335337821112944301532897405188484774602237688177481220039286055025098698828693821814660011683813815921076883119020707665485859764788299958785204093516903697541310022826895686020967648922839377342988893536744370294739510482047693154622807449133906626258455826446572149811248022508721409709185606716436677129238251969232158702546622619717718929284063061034592114290986021742959962083495503404106444709840179332490530277075129500233867867046279756691040184414589025744318680285672171117003457645455266180859338482649467364067865851912188520487644139351079315118384726466239499349066809497093246625719242083564185377309435613568458479230469863001535937737551264709770939607463027032909671043127744532860782064612443165298866751606188711417829607655482305960473035545336610509170184323354243907608746250306554690040182152288574805911983802124513252807114388421415291800383847894743615626394954866839181312069501475893449137066610014148189438207245050081432727205032875845513083250327298828182567568841706166235993725826699726893207844888962588022155838352888774266663630910002291375209124464996786105154575744290377831486128565543573775827971202543663316790334734461971281931082424930101538102026395786941817510065088459322718183183709316139335642627477253696816226736449795007383576730652408317593085790620886982835527765139825790978327119439186452943359311677120723064297625343414439287221946394924898554811945661692511989582890190272008322759222017041773466314277360537400779061098288733522774116135764262842181645222876605104538198299552371288283619541696325635191194234583999619410890223322649167555187668385677345281524804332396622829908379822536621187018708222670301989642312538278846583084332993259012300301643177168560995381681196975706823639243441285939747693702721091883817158256012834744711143685587073523740535741421086683300246802526839687114287919971481841502268421812335681518329023226190564418284743072793216088831934091522322489575205099770210626924813299825298950857284057909177275802050754373674389058845663685169021204304942502104280363420729812631952638021083334246038005861937208689930760385511212211206128883105345861730950547550280973601080696633992460690838775539675324347814995770844236451309252903382737828974743883238781807209538997354491509214958752925054070754970908457730471602850104458400273634364118628914519871072503231584667153284718601066496233637923953094708404029357146567221672877963234528194832233114761007975337649095560153697478982912128508922501341454361274932356628704357438590717426753284068323434794445687114498793405091234326990293612042409274496347689536062542254068005374854037424480077475694814318985618479585849684100944481903137619578183011699605942535275484492419661321695679304414046063794912880599802101788275997398718694841855030522568667220032667510295457110430901310680173310930330416787788392697189023926917467065757138126442438061531204328128992502472819211328537579945844484767990380769236073567595776200162649595043111420066609290393545849431265917320098172804843641984127946938037092827070045839929872654731181718751089455982116529209182611044082379000034224665027384458003787436632303669356429649484201428638897648027116577722173816655721264603597636352322908521107396035525806467111509577164741692051467528376696900361646899891444443684389526126025607101682307603782676351417129117066229934619607724744452642617587314731098848378349948687343113871636886165337786296025905629554925942161563971613244846224678910066621565802375172925604072059970765822523200076601364062644567459356467550546060632466491414248699326089442896634600516768525697971895010621249437710408392878324814590030197893679331354823069736980385151909092634754158392555918355789299730742374858682509086569625851088143709634004615786241339001377089069585970016537103964804986244194140818833301721322940129426979352292644234211734003580996177185561052104028101831881934473827770355541580628602874921365325860573751652858982770901702212364091640038815840016097057255566693738982081422969024729568763117919467740070472879356811560299332813679646051827237481712238306784345667362802966800262102021134900072618909124573203134459846490700247043335880979648536193277618490492032770671355845067153097327881446227975219428916740412466934049306096587684970566014068822449218738513859552642441313933109412426650619489639024728398774763323383903177168579901248371328642903811840399025752508766834702497399465286115541924732484896658088774664950234395331225925302906454881940333243128719556278093735366620129693671521410309934004534759538321799153669219758643396982308324699007193390238775215296798216982717903853878476502474623409086837368177658810503886487097953132716790897042994542957713848552673952934146282580731608017879690368237579165901927184308217338390821090252645087602733588653545738358884363343918548345123059281469174812929311350769638478822809458793049226065693227346769048001292595809269576726230568785131105115550745438896230275848911993061656230285437864868475104973784722075132912790781772268250193877532600566516474906974830200654447177945596750397202258463562599250250539704688951958638040850204179442446022411441499735739940357783506142404446971246214842067174850769821239660099827120143121089830538319620404127961628092040545875304922168933093163314046461164100840706947148444451495854804105304199423217762896119689429189481375464986870762730856073610508763003373845029258800900468750859209052689564257014608946088561070650497253552412514137822147406739615502478105149012114344835868677586027470752682518544637507196661514714262059773639198044791856720157328521607516218869995475299220419854438687889410711257711281822549364373667340485232843696009222594468356454441922981418843076201378526168728426343416049090739614204672130086315916533077888918270341061637772575298333201003093338397127147684186887399332591934751252986737056024612395008192195424498887815178523884397415308735614733718543788757681769858038096778179638545009777831627476565007633126773313090073271117193066076449964580946830691164882038945884668358774526715860707157510237641671417808767872808123081984115748987599551479975235584418436718743707000055470210637309530970438610530232961693703312303672025610574125874663417972484707357013239232396045203981309613023817911910215515274975463589593944363993774672079005125715222418349582114063246101394404564537292233327157265571333719733501418129571393565961055759526463174832346690990252590349344188854034448232437856999537714244684153183075053541406880772846667877081385008455345017061506440804627053498593276471954670291007769038316365530611788558258574322111050122322888578287180710749840869945058058720865055531356456601624541957897099045644245926449570311548024976089240030410360368113463851607360189245088844682889457834688539896215030145522750489295038900095288430783912424428077809946762202570626409163191324405041257650072010533072965066545749971814517849661858137803706549403541198278078980839051004951266184269479928393097463978430606546624135453376758666685777499109326868000374687665791147388991590347171245939672525678966802680602554900889298709264669123698293637737089401057498578096150914279781927291953089730579769652077417027084193077956582859911338928572369642152363880190306117469111444757281019636724867347685256065852466518515205863076179052398374190212818136403938531089492588152452103248899150923049474245574541967586482435290510556420205156611580618881449855004537536214083560260200956316240938909404486460361520822084284585427434118278610738532137107651810367196128519404527532364460176435091846702567586851296137792512754251579217677757570116554554279606670382336762303248921309634679804829349786133513036384284198917781755397006225706769930007995520060153745962261559277003984086848011956379542631661088860721384201122958047958043887153089686292487502650788384633243457617553940029776324033665132158093703576734024743380650441925785167971358411162429736172461301024326796373719345164163074051580254275089570576674280306507180726703718802368805767098902804067316814051478118565793215395546520907324903035889118746499143895177180405904179936166488368975008302274132333850618139980585037381537443472786299217060193176993666512425283793311215171097221267788216957144701567207549195104163337559275353348529198972565135633884324854309149346088404346244471509696735850701051617681023804458767957880784987927655196262531035641198086884138466664840831620792875360963830320388041657679735371792627500758507409561645900282725948375487066050915099211567640022074939594391114241376105572424045304360019780745427491677634186255139403775795635831694660401566832927302927181481979808838834411935358382797104936015164817012963642258365139564022893728812069931912640534430218951845522511906209130718772635747642137770695490545566727990314676361703790074910848286049717990671580218370672146231184910640410238534769233470945957140811936633739331001393096208260108682743395680748277936279277000378186892638020003663054929928706943003661726679920568600708221956794740178051812953268474081174687408226921168878527961736720670672262104951165421795773079819860709266183425021894858380752616455025544118249611337157874669468812252010441033532349899401056932921845323549167962564386916202168147356576337930542543752044983933801063849679211208541929170885533534886541773455964282730767455483040896252776647660883111798224578503521545314720886758558079402465826497200832073349104371035942263105905776464166861186898475889709221583741887766572577681690404537699915439968899551100871594069588801643773326609791198140257063902308969894980112344097342556653452277401345180142741146463027841027375637968861864328449608801284689420483832292391952601950969982238873090877496456668048456652204256303852223684579351081224520033953523498914699702043206349255732039537328569672278188832662052517573738708937164698922855748108370433587248660011881445992814884358657078885322604837507347847684020818330021367362088258659484114601853425148775502885767776481363787858252286423200462439632862438338572073584980426063196464123038352007399944629012269877115952583312422168821858522705594254153503996796101959083957573257063668651145285747393836098898654121230903894952344367188096391833938457340020494216413625817712143107179667957190851926155514125320901092010810019216341788319424053795100443372816037033084631318909731026615437296674902420505447568421609328780768030692498071272425125329501074214779990147847996348698959436224447646714003479586751469714909893044299141800632750579553317376760459012537108240292233475677172964050508701709595712470528808579773481352051556338495879154376499570670075707767938567327213903647443281284228102220455733549932413652045808657858441125792806902670303589545632253635298788922130561062050281449415899786264591258815771014624046556142557338394079357192198615962475859464810683082539022059256724232325012293070927404334445657237481727089547809452629599121773216483618533129818669990490588263350071694743341006514785941787594390732784184080875436557080579353297800997347652815194490367878436609945495897729391356513329673241360435761740123731424412849067674503755752147706703954198424309043176914839954478317812614998351874823947084170357105871876662074563528347756155548782192964891069895586519002088865399853737199075466665785628897931725238393641482036967910555157043854787969061153828213754512991427205284198268044956989845820312665907747947337467744083719501004362352211013652699407503644807887472162611405484303900815723020120846154726725560893825370578844466721023878925399888263164821462378665978153456032959174562434239695048988914161335139069110518995253320869013421467101626430000685259656400286103300214815213056023053698087246190931827430589838004645585572029807815610560590088857698922130104030906443469260974614618075527140105030311540212228243041452541669602620691370893196517434519214275925764230376405530517301192801453300413511785481648666478313098768854567266421486899621215844611142843206269562150444893408137123541549473432233195023316521906562361905035482302636191614947988106042382106612698900194810844592645576861024962761888050795720107390732005708316190104467410766999097493504829751324548860667804033085165508586837149679908776720591537231305657154269825689056554013881013445306544058875690906047412780945893699317736057625065925080657469293691486739396229535801721430178250620287948853049075783207056270453673817504100392392830033555896234887404016749058065331096772155675695212422387315636028660823820442245328594713600690155486928113058678649833410849934842579133767065488293281301482607490440385600068486082734322533799719263567846882914524321343580325924236023005100208506316652341232408977732032951636087468893516209667230122836687230059664538207942396986875141328623472748205772598612042868122692903515242494061767115531524417086598214064712711139437275988835635111508054666746158598594067928853395981056217110520027498454968462014609416471815928294797526546846967581221677331783984993972678532268716901850387946917738397215521625341287881632057598859701209279635079966688276905327271050505043584703465401232836004264766783790637873558898100277322778854826178392825031983712239980507006669777664831082491270804299780811717619289540108449362520371600964662205864690609922479425667694483219326725494210223123471785036920153926330569075226368811150496111773298474026527709370537173518057495729325789386262359506729037552795726806513455423891156826509425986966205976041109050253197149510007335559323578480517435883314855823536722717673505031169996182200939120573748492953144084494313594810046185984366954446740428793765089353603255885688100077121718835107888239455415740770117711408607910622449127946166334970990888191479725151666897884685591387752411004871872272489312646119547479202831101252874780201981241455346638899020108450078681848424890531761574517391553361525192554452158901556115370755273217715412681244805071320313593490718619509411873970195748342925521404013211175963543568523162981358857865705206337866612711540303353725083726199789457397688662001667014174143193369057188350361742409718957308719822630232432630016064238761345929574043959082733477010546873597039423592986542122566882558339053433674612388676648575553153942968925096347357229741834644339503035317464487418663065229663615560935957120671342059633401516877205840511570255996390917182557112746294871381331351137697949187628033766658010944487719107401625984192901879966462340870306134077340479981172360797931136678648823333252653783094324140560177073697402737359913313298183586906227408102440669427746263961732090455144720658962708060721903339297740019564095617110374050317058618064343463757395689932011910559884927758500000349454623217212652992226165185338021116771569112449396925371077442901520616408347850247628521493310517110984123489457185206713023112583261434707948169523436870510345474677755691116557360711994567744474505327677538686589190537924166181439126240579553320680137259832027410509204785858476658497863616905210838177993354711256332292572915828074317075257590769621022306519806741350414752263145748079178730415049836976328712653194406966490274308775419023821234422472151085398754281341005984616465039961135105045532016536492299241533217636117484313147106300578365901376812753389313110233433566626674633346941738862716251412454647913735758313391465187375539181158409122230100277100969265078964081002941270913204217280124866189560189848513457022177278089539292788739709898642737222909545819766341555630919549565872071857975069785888908661849865117495278446134159575847649734555702363644732308533679047941841896002991465168890148820306044894092094140910790554292877742877812523012195001644255397640600812569949685828125280394582916675431493252150232621953327904968828533317703180491423595189800634372827136651678721977388693650914093727047678249617646714303760475268836773382739345568956714298960864843901001035087109860253751238216651344093550083064613395968672813463498777067432672799101763573606240142933379703436878229129185689997822311362694463189462127142422030472064526461270914673979734372731120104438617105818843031158343835596599034734984119022417390785030918949746601118322389703933116585831955243039975926216414181115613398317278790897675576914733968430639831022968632077071842199182586508697190834828803038029702763972970992989948105384185153266267092108791202382125608041489662361506575470338553309671273794411625426252075980285604873708924540897112925695974929528054062395377181106955085782283073348587709228685960763943962279364003970346490154208413564336439308236393329838781764103891768652466023880626918196776123142558954921461516247878878938019598631303498457097909705283280587435488592161865054472748427179450196906572901951111835198804611670490705477292389674738439120866868600617163100623160450642035846393928486750260300457141569960937277093641274168602118120975595616546507863358693895305482367554593449323018115292249743763923020806448304458547904973614875242338572669701000119901874849357670243874071638109921137033552668546541157837979977729390045797398126473127383344548074919351889539112075887595492107033058215670880678062922347853591963855922788014182710709372895857781322780787922901954846496334928492517329863600184140744445592682251291223073155789761572902683744805604861769067763988368542147215532822688120540950681889379946875276374756637626132614391958300012541502708866845180063609757105417223790758841010293361087289079284797481031267055236002210373128162414036426962890050660775684266037862074861437149314436798970207011106394828619616359811297803509286668980788756674116583626726562638316344673361185384442304278061559780829936546010038025020380887119650886821675771452629655964228972771778823028184454057103393955102111817318145326480212203161367505244630032773102621119101531084108501905876708001851897400777159529077067861369769344304830688744312133199985520423970281811946034941985286505341662495203603251405320080218275954301399415570067754482978276310092809158761690527431063412553259903210242224379628456226273831458401045873238920421873923585445699950992537249281637397664887127721715335230126469375489559795576124670853284546403453049413844453472881628549322022792690441953046086925115004682392319493236656993409453591391212653962172481696274210676335770441458590378434545133000539079969231648387868656487079254353422549080192547846696803139921280950272438162733245136748292112519371346170918093615446943126641681709918295621431732900072214444579458020137752847138016607506270916834658511162253563572770208313799859013037915183028313461263512594646547742667281093844905343684233099554838664582692767226748441706203074224559862544048242449257644813034485474495850399283876575788326810374592004182162302629378293707210600428391781097640512919068690463710689983099179631877370047162660606838927124794704466388241351299310208467616454160143064530664561551900600004843960639059034718660853282977499276873367443387125764499903979320510216511436888893062066089956555647259885646649567781661735310715074449675484801982645535020244277795578303230453867495435458106511202805214771777674959150884020110630076986171620072557414235632042759674465565170325998813849700008747453620481505425358294649167049574732541575140400161183945351755803462359337101686025675731858801116233948109488823693530624532369012572192771434464279502795405914463024168300195076057027262848821772804321157662718775908725798485366276773139005198603866297494647571877618564101307969741779501260953164658059689704220950297170245991264888587718525587933030009442732817201981630261610319665329258406183156335501010997642939145076387592282134693064779944219567788209809045281376128807610612130933782022968556780063021631761691940489556757801543439148760305846316330866577299818900268446751932651544906692853199475491067958503325666650014565514113293805539405520324162448521989472782604593264059579874513186892819807152703709378936831203706392761769552781774709994559891462581978491263344905988418110226842972856383263652149661458631084762823619304233848178335711568064379933602983374661573304385410399605223385757160870365471553620473449453303537199381876465321479665588956514927346496069322982159009556563323940539582269478651842918133321262742817125365346258061877229103414094071921442006423602617736649358468777736747034281010986060464445134432653844071781499142440634780253670014250667702333588713531201920256382030132228131079114773950095976648147524292566301343680156871516439894212751278263154744382974475909318846422154597860057163619547236959668266223930367185450422862830675031808946854426748713444533032698295852509843515735059129384699494676715795579653353500801355041200178463677659518572641091172331045313099924965131021216585213113099175407777048387512437799057462884163772010260833767738046029144223171043978054313573934920803513550484114045347330835378636760414149796005591497239336481835086095459829892351032691035828208114022702324525251723080952204338694436143134491634714768610781746164836058280877671663818167336854686383033559131187688699044356335991371926162662754865693767648456095804812902555230028574978856272533467232113883127287693592784239905427877651993871983849196617697367918935881761729549633746322885211115364377808290850104130837108980635949060702793002923411128106863101417038856360148458473011163157757983440868888834207814558535588176203451644772507834159056516066144968897604873440224337425317017938425390313417860594647576039534452089652915413939055470115905299852948862836405426624985817419877703295540960127598421041233352446370025864798941035924655130166626778999228822099186982472925053083777365656544751323393194222382235658950958601857362691379742222786432532582428369053936230231759130690819007675656193882058804365637480173835890025613678682461096491694446978629396143268519350581004173961602501127949168756800567645976059464800573356037088409783051039764572333695409820757606333171831297366297864973701870339740961322454337476529932191382389759241542856816635873382552864978409337958543534961831922052383748821124651683076336158079914261467696218189119079367338527036674437042977732375533028236277210097046987674381724009470210898967422798314822642725861034065012059652922318274593738508457089869664366952949100703758185756000873387303985056747637734533725660903181970974449995985637006662959842302048633110811041384983203600779271253889954944390661289737248964843858796987726791139340625166034477466292795155718242568205848989513655990479212378772862010909977742522002111300631222640804184454512722664755695526142029306159196486030814436731615645798189969973981580158307146936122727182076666932459466825619021537007898280590652199763266409454653186899538508951174791661944358705596336099865037508750946220027729310151157655266739765793097956875563028385937234711334632616589509809468150544033806645659102101550398850959073673121519629055865275316535347178447204500186356559312137983437636217606975628855498706720907588520563083408364962997762628065174428535679176227255537713992191211603474373923112857917438816863276584924212105256839874578630915723028580901494528240902743754176127088773306521180228950743471765634738877314004094424079356882732902448113816759194656470756928820292572635023003780540216341651996020442108440203276195418629296704906004740059048470709888266321898622136554790339749441831986959161929016489765995095865642142590232911167835744856404608738121012939689420939560035781607487062757609059598154370419513690247471443329157695696968452542054124282795436816081610894220427478224156928317924218774382805662242044530833488223923735347109675847113322631191336638059206451735901128171655787833372222116870001652161317425944005760220571392262080512784887166340542417847385721058734970702820287570894155181685718401979913414419301428225568281779346084954480068284541739115667596445585649055100898706819905330462957472984119548394495510146562621663983276913646787926327470683684209393063123120512054179678188599095614541335750305557194949495682422567640655091312225064563350432637357826418187162003438077662293784847763533789894174273133370573380389330038479844343432730087743900207947692903266009116301758232550695013761797678195629531083773378287460698029992124888755626671784138816372751779620226479867213447543138461513775972351594254577825727974875904224780531758716407674338562738825231399953946195211094023546248303596588319877405737144672440503802149198072138291302401491772160050415879370668168937684606947956189872227309978905820661527731747977222616375443864415875013186154368970237436749964296260052533677842449984529425859178662105426712066450620973987555093441078326697344490767026220655172992959939964277772861462537103429928799699400113814568556532280067359777451826536323820409451900966643482125665853606286758199634836626399649220545298585932913045342834270692423073998541396967384521361937780628859004080836496560292514844971724298696004598409699755057839026519717075214807090010531629608311691557690279270161141080432722919780745536585505729648016172476716172302260745377543466003824341984042320431934525821280881719529630757200291248138202581401176778081164360833319453924088280971087116810061104818916914363992773564760991483058538716569739276131858337816710463636987275089755313999419828727049090641059544171305452863406578203432572983077504808188346797383336801255680042078929991481719995545847551564904343416339103995564525245448999637718434181642598070233893258338353075000085174764669860426024057008823102124130485356654626019756318371308503371045520075256033834089571716036131861610075275622276282828138684420760869217691450452777148610924435372750490636169714454937578574814250158946251458946925859585899944568674252533798773702816011599134469517109957493408174845408321531453796904725036937210069600148666333607360099151060864599072995332857247128989100181042225595668090802318541981308729874615644105397915033387439169845588579839877840197228108822704876596686392796512623962534498265770102602283681218360452694490235061058476589449742626857723137707443077590419463176797153881683236167242559590313858371685849982622875696024380448456252563839493540223776952450134960513187980907335686048205402561187757199640632189481818615038737412952314508244097468326654030893624879658697057571154503854673059106716022287787639431813244412148073129231809887392392302227683412334610174187625626307604694561456943961214167144023567647171847079310291978874973418636587219799350659297939668058912647288707911707459997665788296777350239469815644362634118739385203469426063956681997745577722202427551806232092331819040176116038520167454677306832611453972683602979873403146468913220338406960210043535482492178150831465970100809333193264933989600272157671456527794948723719463882447293846170238920858698360021217201719700679222828462759948891112569060237060075528275843593765333224546562186821074682088631812753314949154879132699183555074379062122947383287717411521245299266311327648960067547783877945657799657204653564153362701730067691449807381433263483279176288326286539561450154398112576654546556460661871874180469810393063585921282796134997821895082226619834697719368531638306805017325352187411240537187824211308574398691611977716111932906333457267614484041215570007208417936799523397021491523795770323024184316643308413284437161305754283844131468825906411927160309462608595215597981188119687349124974032643651377986137483937169607539308671130289008485889369074622551604981810571687793471286323987490974690399973810561137638539119034502224359325320731003528108861248277926172281102776355404691532930665212400730589337721369187384288380133500686686489107530113752330648384075258795384734511105891953981733753591774494022916401191861825807576332466455321427398086035824427729434166673421799691077627447615345453011496489336313260983839824670937548070423637989699866514251628450306630832108496928595236397193638976544656507291217317411117240636332278863176025916002492236788847333267100190062646623877099242712336967025634872877890832730042089753774416277946856543354243578522107463185087355922921946693309621946669004020531684093381140865326622032353982992235143893520486684789664185673326452217711108564296159421419892997019136159852478760732711696750132068967729477469632445775416910859617830357817258619552539611420590247970569026468699048023751373154089831212254173301084138865730042003136936066604773217804888984345736004847285136128881395161129027464229465589431108835640400808942218646843436708992245329266343031094466279440121073593125686606813657697382246303452135109602004944372226019844357471025557855776424616783572634822064311426392334908538000651355508273525044296174256338882759930394747976327669464210118506170469677658201799041195701686299761966968050460251709613595841053676447706613418724622525757600134977307585757350241045181396633370752984772290040098242673170213315328417320223204758065224736154408084629469954110652375881031184080909347342601876244468609677815517998736603290709148927754513284874044917931401620071149038086366999747879992623644918447395525362997099973547224301301169021242455578568972501471131880433137398657306965168416804974005647077748126483443437735153475619975572283132929417301788622157248391498717188942894938926583913233211587147701658435736526519020975575654158610523650724001142131766374061118693145885527136939814575759292430523934442920378149804755310328115737808818924053235854838566900829592305515558730131306502810625047918335566526379753021185684830772874332334808062080752992076860328202939360279575479549652235861623024083181154984533906285785873966314286830501766752518888686558461518811503163686283977633681742504178422164723888662197308162479151294447805086474610139453776879307989085935769613865906196010007075292509244860820837282013807960903798311036581186705511414783920644067367359658438763827065549647555717744624895266571510760232059836355250577504680684787411474890378387205518103902420095585533030638258480374591122325408489574630548878718533577379582178498560556175024333512984789229818185328697667352915230918655518811028598218807517695698453461885698487400491721729203804600781705953121450115354935002888181945502923404485821217987344312323009624458246528139163074979615852358945757412722036706763500232468165570521296196836508104923785662101974251648369968664753903991388039052499491326470223323571044788271055457033162945338536196756849572500414957204496979088242428178433082759193137017755134437493894395215928056821729368339453862223823054340486927619844639098121296174519651404212260764468684087105749791675935677688504971589505506880796574717125728241561871205219977551169902764238842599296171633727404172482281043463012149672944453133431093379033100822259348154018619739785157121397180364282022342230424867559353943252146169584287837686982897589816223608432316594784624119482643502817076313268204530930627672917708102995393226627178141222288143916256898988925324081175714994406173376882913870234245203985481223924894205082588631580108120334158592408057842316099080653537492664438738009719645900746394986443475139126867759768823450593899932408319518459374212816925840878212346055971803422186684439702796634723097110096896819321356393238135490993606030467550302238273986384949355496392313976726445943127953276499772939616292117637184765835925549923851270332641152432762322850948643207669576697222243396999712140799309428830782885746807287330325732594868980237700930363729926545528022506713203798874965517945399258742407476960963518314353457703491423186188950231016440591208455700681473618098120647580589294446173773392003175191809994920559133702180682305699332898414457352718771776554246810633362735739625328590367119667524937919095884580647364400624609080332990745339622433226528610661674574357037477673339996360978276978220427830600015953062666722301912147865611699926057391233056914684125823062422696763268287636187867821786234173670113728000293640130690355603749555316382191075775081716487698676525514257363203462674798166629990209989120042480174871028984664689441011127691453381980406314261804026989483134208848210072127153667301971603805599012467710042804827059829252255458229174386807263403854259131466984547838461746946928209123582499219018901598055047351794864959507889720854303038630700859465806704833152909155614234203798392501382840589375599500866687590863374980395928469184276989219575886641652700793278851370955536525184724495061379627011886652181388661719096989499362359403413972952424013516750090249222014815442023423922312033330104279240543928178490625679475405709478072305510994449572588960563252279826059251615814807684805304979907915605496140370240107225063528410422783688227716384356981652943272303110250378543006522299108678852293223617828615273737533136471923667744944098398199676510455499532400815512195396105352979387267976924821078276638272194935220545889291038357172393184481833235382651802472252873946630241446498220135753280239054024420848639462230029032697837263293464590832872822893212929525016463116867779890202996371625277162308325183100690339039553959882816961833066994796003578793283212548209553999920500567249273850416770237683386965906001823046643343037670234630580630319131592187451544639131711932961479609648841106074988808951418001608761409290689523335185304418909653384931579579089120267126116926693796126172541079597178931581552211675402668533868641873557264477672383360971452867032797694666972244845323705047152765067007611898518463224578457297648106950515178065715085632799905793103814317845344346713033360991027191381754765292106909437701194021676549831050230878572544135561355417069225245827126462133297066987608939227827612019113060476772313051570949787525704709183518091432552350940115393526681606004602467919261988968496803027123964566597361498767787906828829109147777325991570497695406272637631676434043393405135182392626957116736623685446205977527761296423984407703288997884110675640730480403542119653004344195599609676046694559788421910015817935337115672752329605656724023048859997535066591650891897903007693600693698404591865492891852773516520137533776529921827404331146720834259298022883374482111573448957854179149798684571042935453486817049638818946899737159643473199034547454384375867666854392656506359186806314245799850709355655035763855930630949820546775088944610115356041251979220130337810446241983452806124610802238459064656044880757007185236720812049636592065780143295954230606999604655338388207559934573987465413455385256994036213334841492108949317879748283226788477564842009754486048423357196163851886295238731826796687518047985683698268354997982799396806397497688558364669043322379630655806507489625459872183009928525585271470308327961492106094187459366836334016725763362265622303619544947599428777419775132786047693787896847643481733321975857301427600206361127896492695244453323204439462857192725463657191491845461089835051068264071174073508715039238754878672114461860422175452079748471368960281246007739045743803486653696921144275630856326137789229449628868398216812600496319443250545506799092747188511442587652257942396897370958180052202967024756311598934816536652219191902031233774544348302807602079414731380212160786946770680944010282380073231186684712975592406817809367995909703408835601033947647976531936407379051719861408996460013144948448796008099820241244608570772149462092974654397664557571164062557581025222216932634127746023458174831972726214703269437785808051521256737172562545501336877971822487145789931672930419485068487064481722905984680832917220056027924803799552594578313931603453977722753898303337325117519392723651720535300826529462460628615502166618456947158329002733855112103965932732822888513964205230347118919596124217660572723995325514289332876410810724631776319941581028686957251754677478285321737300886449676828082714608584580348525317178053016644789591424661376649782900193274646034039224085913598467194068841011346289355760564484856972422628870552954812484607158339472618968073592068687308725225574709100541063068560790865383131555222535490843461053579830098846419470166382113895261726836677029169305202226531262388198614605340681576642402142892380733840335369834561411701925409450315662324296274507076127654453334700023513033765916522584410258043620500794143450893395964110052266607324107309442236474890086390825561385511810393679831218456503022856400235131010874120637486827424405775223735405457273105649450165978393478912095254841213985774791697723524381965104639298123756521600678056852229204847366326451204032463687221805436322148923579288322739815275430329114191603404567683528500933753201694096609089998653598791539469830078475298718870833482271079979781698507979562156395311395562398041305956134457409601346085378620929281834015230147194441424527893738259020696783944453683508998669037704583059081314958019248511489339918436068622558730197875356675696228024132605375747216739964947845743317574792046076177870067609888222436523943834198659278670922656207628339521624151049221839226714721259078346615184930723641286210094560561867380504030190970213449640749825612450352668473172582728449394783243054448463135212071056457835086990044684716664012316250076737646165853177344249480221066736134761402275432877641457495515817929938723641734659482751171258654727285317638129409485808266213737147616561434989801949808363867379384431951361039050179710458740887150158079075718976437754328898578033474799952493432485336017931666505932904193472757810861468525756652275319073324506769329130255866282363496944976274961512898342923313664297243566302056328409489281871857684137095052125153490086019992669273009372203927124389852211479429189606400598775711763813939050040011818333762137870929624027207866173181240225243558755272734110726515441727632345997046507743819223739720623508614851217687687004224560237785847026363844362351478074572874117152644374586090737321205953343350150351335977990876832796149436641958998275248059492232259515668652223315755011253109529045554066549008137583282791290567960710486940973171273696681076456038811319171098031991769425111291879898637294212475483752623970846047310682237229835567306783383352509024430561674888130347001027119396431018654354020561393557803611095978990280645912232185399910357089817520166813584073445577723048174363242618294834134747311473010008558814870537647189845213093765829442709543967280788886896997551829788945630437212102154605370447687804921416285498314832160255256463429723736953159757809758573101206021075933692391893745810280653731592710355361904843975492338273060848396897846036144291961918739332334101410395041392408670207150212167389200470882555373006009497104948577624176389490111541713095058760227468160932728822825260121455674434366748755572634315981115515642319316560922545910649918578680609066929084571824362190025208013805513110723555517727851172065469511481883303271581229566569251190683849758687887114281053946484339129257397141694605912307735462925354934961974958939856570730019297571687231582749391115418425125000116225039143347023500939560373775717431767966302647912531187430222668431724981823409619975541698699633315037007188638294079048760276048448741565979373440176673425216098080524716444717297162881073511117982251550435045039368818793374561524939434915821029977956409383481493113957441529311184980532983870596873072044783651738057351999201012704308589766412655785884791105304917028729141333702279090405445582260276051428878475205987834111704872907317038242721489241336579039135017306962880440193202997239686240074773013077567099899534588201864925402603912388382060972055057089868470691973067669984080563233457380298265006847924286032681867865982187753117403411094183488849117454991823911133609369519033160957498372415983309565641416729429205468682697823492340997614034188081977832620054958419905636395599752816623565410571162677888688466694517011186893593491060046036107754845417931034532253500269520263115944342341169181562204561152272218650059175151508700553130361926604925899696332851825014665981984430628972619471050502610795244595766164297581809973589980850602849049798143419758171530880988925790486244253577487495453825512306649779588317464363901043102186476721982318170962295761673219239275891241500795673495285146116879110336400935970485061726506548202122956579035332858368572344012578806738362359891892997494541788429754519086143556181836035967225260447098640297812707336693959251527484740643202788529331090695940168050172702908166802022350928033298960926729285034112789142337464856390927904019615273630041814041176079741340718964400557805954670508470296980208364434807702222884528260127636206287403243306039385023548533532935747189581375145880919428145117208729402700747577303411795728427130764188792742659654210580512200094591392991663822483851890207448991123644938017274745861492684613972938533413515247206788412756476553381532796387865378842062330696555462577798808522125946549173822504800605607497349551261499773623532211816130256502354004990080000390292695106402974748825405334204817203079131788156084439192617365223962912375956246935394664328047852049868246762395881215151883436769779176749688413899394501067437459103510389340037011291596675307519334904900287963874953759415445569402723159204212600567934152837738695989351491298995974697561402403377216978000122011332433855550401278038762845276181007707287646048308376741974162715505117284256991053556316458111666317592701852549693529409251375840138028154279568562567523352535952297431851618532888377357292763398996714101986691139830295100840758015215504876118831701249122553687967792445040563623921188957397177490878384792994271326209929732774909474530324172384570013015568927210386897909343937985002457567065617143022845758512759883864946503910983209699518302522017822572341346904085076084741669723977103640499260950214135734577703539108091850621400052753104347783777624241143603785553597174336352964446550082702226858084383738800167917015193020705801241473234462861680443359004096320816006770669165601347957512470211530330216950662322679065871238179411943781818664667779566278415091022693096203835989046076514672974110581067190451282641544874239707428036954902126258050118662004391047179168984067365973893266816465470400915964424264409361954210495366216356721134126323044258072565387328808607829420976950932579551945447692754167396720153366389007660363909071140907000979124548731594229097567533838246871697311265736387961084697207726241815433971794334874558866989836219116594695828310812523015800522605398595306985355508807950923484171847226129181553778551294504538265370531324362487106331314130616365351162650895765222110966290225587453051669397192057990173099526757330574670133418674439232057091399234955662268271062068024589353924319205476003031921375449569748389309522171469737398842117300543219727855377030304913009973999964832063328137167839575844330689601728082980073940326692894604903807098178592548015702659714770885637374133515565125083570861607005496185706166873175000029996019619564909507182192762882345420690770855697023891788831545559565027612129624332214310227610374676191357547423304961472542101649490845068894869895084699305603744345324097729678643120435261425053506521560040416194608646439320232199969282810987780230531345552135612535899448073508900911113802176660303961612719716522033268437017885473249804451676408553559471677225128097827075615528342854844889777495402759181783905924312834520997410131136223774916853540315843178020956748928646003088856435051526979993810431257463630131927055907874221189080519650927324537943061654426990760375394084316846183863560921811486765857609251713161286713928067427271476040576563000542348737153946741160416694635410993713277303412809417734284441266167131616553657826993034989506489847200899006931084450137183937352190655187121813017482726161320104236189292117613275972998449289551209334614464531865440475642178395293927485424042935127745473763033461593716374494376789828751585097702734124232031635994744618205203069362451573038441895163984075393229205212805359581516307874950764751988721367327001295479838769893910923822817259150000426330025906668850984673283469955951938572566838134105139392819319912573770292233095234430051839574340811850358188230421346886319079595544336722421515316955524858782384466570904866693141339735494311196188546845826218748432247682421746704282521503022003529690302832312843336428111780949953899769946856215968394696013954892640395191031174465730410330497390440320319015000363550311421134887869767569553020612461118212630253390636933638686575324044039904291426233828603173672145543731698713982018917129961735171774542408381124446866205589240828912717834839632006543767279639264136917762203556727427125281633721325550767118240607755238125939297936552882634642380234708569745471025050239663602935668459400731946398045487518901908799877982771611128466184018586123836831124372966540120601686909046692864184557657008784409318250383865151424289173189728996420595183164004668352323065877560635953555691115939891206058415560801378423349096419274951341938950693379523422855069301473063073570681420918102051800442471101500955710847516946891132660525601327727096080793658976989437229746355964978330029944038726791822740107163589798650423607880086816725409777884197322447147549770688146940788018956139469926457784536497862340362863352075889647149010014533215766803886546687833511841964901782805397502550706778575905072754821043067620033686385105236417495081967912762117846490710701334111289259923262984368644086120777190911894302755810785449727679274485345656903725642809330109383785453808983167334859809937219107270137016179475479762867189966992522707790275061043956909839034215673935946557287487816818065359354760739084187897365593023482617341527894015079482283568883265886387564936660198670356865014430190291606670513444020831062985831500475640851155287193433793910318368429745597040094946307784810347574524370249819829832885042647844167501342675368061582568061062227508344763174014237703226564461355807903697448869198793925283005484620275405639052241341601792738359031874783165643815530808403895151071168674968542219424479064434185775977085520359452116161382653668425602943972277144231007833183110460021819524758523440929019426473376008232706134779488213572204092352815092440777656371686112697863874242880904036842296688567065059938816969251662350888097156629572852514047608673828787346643347838280112885537721675348989044913686099293936152116277709023416582613433422255416736536094708717697996096107838789943773420493430459196202761577146062629818419565199921860111627923848196677233050078148579594327871778876748164658656319352799587686125726565309690173581318169196833756570073959328174096624616401190218342025911275851308109276045670960396772526394370964503384901114174378699818199291665238445450673205057510346043895929342581833965880664684500561649922480427451154007489470070245499505270815653828961429814651043578404259206726992127581434892195329971624261956127928229562583633636285165866525854515915989728149198630704103063188175095306928026227422601249528754199543795296362015572246692264338511357480245574441617000189198667081285389377284246533431739468577291640819371504306929279510615877730486389523517258089015166386262261560264674937655260033934778359705384693188528971205069839451250304643436567519166056854960448437627283484167012093347051710727950726318232475050506022716571197752179324253696864299297209606014545230272114318783948828414545762708608690467866135780641784510911450109899380542112858107179698800324841234112660037062302924176870224002406733816243637455439274694433964617363528766258817060383976937147385812280871660119124556440241343144618159803063521049661312708712107282323167147816155208669545182872281624642438904665723599126625415232610935673246022288991717908210101984275465101078468460812758983964464930279304956953518467007620152305028204976888315061311366817399747716743097611795673031489544804651827095941338238491509653677891295766406568593566294459156546004028314827756774592719529659261895509622316990292056044989813670986388242301520912245896787078707622221211047554267833096380377575812696303254457475717350429175681188030861610998560246362248311957872493091069768899297075669663397864386609778224968504049890280698388933246666635813036615570399470716831234375838161323099244410912191658850357556369276210911574330457550255137380049358921170467785913559878741626259145325465880792997723454065029594574319705370511349594675125610143120507673600490359768998094047752096791043101812963728698377868004272976193585787113545302091032557041634848662782799358282129804157206193854572757915768412653723724655468323019622771976082762564924944436213335960362612569104845036639833797698246126737260742627494277256892494400031657193292693249593428650738616862138531800329616034217189215850274547852465335722231231729195907585083552645562793669140181363595464701587404506920014308929579925814029416857354105317737678582654913686330382717225305705880340354588234408839185108246039311450029733776945982907394626369596593837883546381842892087964297000152194533321428773706588106112115154593544382970010846627884757067466668750645987388560380284463230258912808667586989009746311928093150361917033807481103354684947775159687654031909332307212536529574706033810645170980681602632738758884102940866997578183174288736202984345769577697413175219239468821199444997748628197545827515020898107531105847664738261242730063644360971155787844834989989597028766497057336638188416568177815381776157540961630578544104117813448243201711061610608248457149314588835283965514676037322318234678352086913092745571180640021527626710837127328924705741747043826536817365271168586845379061261384895869357406345064162276269107490949230480258892589739664015250381364258265608761234830663096678991213281600526219933751581192497494605409115926484621251329725210184112290372275247505096775389244921228810241090050172577836728199566243241800963817496027183983982945725457779477977419926989957693602234249291198462468515126975621832816048872733763439869789948149118088402512785269195778066375657046987188894571121220757836179809841368810085567587565296402017898824582523336273884399408923904873274429434794035070490662865267258025387357904950809568412775352525272133947520698430327914628025981049074735080369090810790303308770567534098249655780432146229828078366168188768998339574293375190052611663179449439485623953687250272091604584092517316311541148326746405562145447493329740286114465567457692951492883815853714822894473042461086185450535180472975865020998590955632642655014551694498922008651352149714241394322734340065570849859258758181509950316810462575883055092164262749398197108860957534666783964211858908453180302883972111531177701598782659553682702368620497503661465969559865926420475745237887191296227386593596381613600601086283011063709961570639343398965012072011880988318172839281520189910379037070222593813387333258082200414837364923924162945414218653626805456754353674283297646765805956004572628396839300859679340474389048226291571588085714029998678468375009965864086094164714226464345703041633347981163729239004668720834287882086160850668207522638314078162934226161235096251670842127625424426329336012106757812932988874054116080778861421029319681498177005208174177803547641557104405046885078541530622647388305379176374416168139624115683085095872307438594527507052026447015088762584466783848419195532713486241148456309630922917211891070205615675327079070766209340940137286012935010635713950826189030104704788776730415503815855215333767775536918968535352931116091659865913731174259875662312693107402412740375983760001246247389876105356883950811897109803325536825190542844201182180055598384361261880111368258367270478222099230230471964248476926126976057136165517031713410013851386857523576554205859866705741842882951291437080579434896127291155756113863998404409036252113650935716208372016697430382633332829453498194313012886336333060387855655480558271025156348663162775374910251046286588768728382590211442747094700200568443090596388438800349908794114198215383993225210333463729079535437230083586453440980019626843590286342499327379928808981398959451163748923570772357934153174214013659741185131027179505978455956404792075390359041939102194982808212638981818807636459114846127165784297857156825992376038652945093768887324176492221406872433595011436937936885629856208024954372283905150209194165423727332806217805919708015636207889048022096482000645406468497990333066766133174567273251841102898255145671598167167689851619424868222550950564155901329883073481077926074532692099977258845128289505628438250081416348963011653820276667938016340992879126444284332591808256056755066695128229027103569046484370403711431337536632739363329677400739756302669303151066146529111405037023660329557416999107014114414182744335416583711252213953589093657880030857816454532183251708801863643319253957179600931756231269966679255235819212644834936839597863304693417601970253154863372289455058757904103960014311084274772667638484776058349328321289425857620414620304980227526524677590898832663497506201412151766248514208351154362056098150247233738357321265989204186245770725840688213627929799056891032874710024049361715447614360480202130033335248349627589121088464964188611053102299907196490750784011864769155490767569048953966711415268370008945491934862971984452022751954495995505982807635584790190942097690556881721832997751450895000098884014171503403469964805706085009728515254066578177614055971499680079315007346652116746828893830287103711614130345692286560290265289155233367037790477399937570451576045762713686615008566643587939959457245148393033266961455306360201281627291776113281790751075242640647672661475958669429730694661137497948868946201275536922737260328549666114448413087167962754091075744237412995243090248743927121013043225414208635428673448740334813928462223358547214376165052976129627010066288344479937367709223270288843551796045454054813791711187327299836693230476096027204704882245448721300537124667080114805597288867550111490725749767381055311297267331641443877549655188480140355769576340026476430701037153359445244288692991803547972733679222758039434426640032512997456342820011789724229368383628485608023563703343508759723621429540703995254416568196416038784946265490847748642706178043754133194114491465541643775052700233444572490793026579223160033373849378654101071735977816781381559215284369612029987587355517024986445525478111398861741015414402650976912736433804139383848675692522785314954242353178594525414375028088863690179713684749211444554846796023618760229725194314661805638680036650128278880777154426703537115509507262751056177707546094471805737969880775981510007810580028966673442269401259594836739558970925331519867026689100384194684159313300552953806079971853886584330296326905280357843304597168880233628924510731281993270368765051536227973827947313710121557998974069460712619309495639538850664858517470206512174922419538794947138894699538417458752960998679927792161986395540922023497804576202248896264960326782918344840432660628005169952426081820191368774582692319324349379396285025138514645421915617540307746513909936409148374891885425278851847385028526107455966775534362752662356359927253200996877304194425208204438550283328843370219993654258829095037617694993105835380262450118377028024884155650417540026429051626688353957868820025024877323665991178372987367545155024567590958911108929827119574232789071884599583027700630779045389538216190079743572083724495953153930191836490911712193648703602600734743921903474614931041471696574235858456964979783014475143708029801263049020787778144277800286454944218237651565373524733662976817176643130057518693137448587077838949244679102088226643962759508660351093844344885887790625552449869943843626280845710615050443919223781627922596775339840859366482028893118090849637472608684253816359315491666962698131403206446911163026761130540951107844209912535274248336947709844018651755001804768806511135616938670890838774504739667433012194581139673681731378880066914258121264085883614961289082010974331113118184253020955422645065752304543242093433866546974999289354669013717221670002137895567587677259716497760109393279803067892332567998190539109233076790430948486488510937529807168225493806358321589466250393604172006508703946903531728292724408945004296336067665108483016690062547445143459515905601372201010616031614754458433656827385217199060369318303637470252461452209267733936480803150275589047149097022533714192526163465836785359349488454949628735623974133560226779202024243397808183107766590701073422776864603193613618580633968096366819427492877373344393651167397708372883274210020758402586294816982769585949188003433757547415259992656174867484875558857463557531896418569738866277246728981395533181503946475844996342533317715900619129213872606006150633563853409697890174330621549826832680773632998848067753314604523573164006599339313500702996276722793306595089839300695565416604359407008774875080874316998864833881448805771279848302500153003061066659255065703896182698421326092832777998345323451569701189625927562977024236656192537885281924080898476587440321513178381727722685296900222636680887937348274549035672149324790988584337184780921335006520465247891793797449949946928276174549976569910076386953237485213508273105791206986238854722650051837109936819622791842439325919429548106360742000193146180431862025018316113245455796566525037562230783589371461700574598524230029453582757842112204244252540006938174621752902415178421548338367293995043514792428806678652952839837411814426000411984486434330156502563543734046368380809413447367632040281121011027672183364072025960997899206253901870347933576788142428689353832807108898972189557774651748284949988549424978426720340422571986612808253293057641604108305749528066315103659400551841770173104750586669898818013867305247628880140334633678888290613563843707137601529955251848696485192219332377448009891407466410260982085173746095812197689402258423482399627762281145536997378041219215285553406244850448617062891814544081362942678473938178549450336926805145732768153091712520813193996767765420636117064789819049337424660859824973634592749766510964956673515735333726884353129830120756984438734444280008588541433389828106727586214297512002595215505755014568140630948832946503177714049303127494097287645833712139587863081735965829822748655716178639046086194851745335201628982751409142765708748059395127104780658117701319864045394684299814275199810023340557039285576689310494368496269169647699315682125867425807337099360490716466119185051429057303307576529958943651384543429781800278297665307101942342658167886861116313077909784592544008092309513643185415069339061569988527147018068302175184583316900497079445362595892297537627175507130148841389510383181960475229842762036505795482665250287279598955343332095622600439275873605192887451487865213878662765560443419460952234033555757296298748172266370708812147682299471024884753243982286243225949157618794658446218942964801036435076677079331118404639909062166764314286240344003435091319319940184188891330989968325487229987423079295519003948228104235152460636659362431659200675197841938250711334734405484889215315704325159814377958954838811158119378934785219640295037634438699497829540772393617069171885025471499092017062272242388303442043923471956608770378173282103865541900504031398110733408089976386409613056916264227185088773540657000333047805568713154335821434022320535105710066071363223382945778557295192925275341772545379871353486551025177961270962302776892041551126261371069172994259355690355016011297176042021593897317639207571997133511682391377444717465747883651944959473729403132789495217705746320489407942639986118324249558850271200796149192237176158776416751936489872908857484288328203734422639510911660197544398974629709187442662168690815049936700303618583055339801752979757653577652177205249025946161360868533921126779665547098320094134148113468527457432529298835427213322544005677151481266723783637664533241164229058574453034229951518019544521936365796163245837179210752558284727152693656334293606396909656132719540538756888277335078067654668507431907142023895750336563262833426305901971049977804262227593430621727246806531022532795743279488739982209167804307031195427517843480107761155229125216585070490817085444707492240140054370179160018440037164517969178179350323982572821267833658856641072161771785103111698545584405714954356184123511344967899161730279540691491645375326882858096756161961177258524551525763395379455122333824200675947062678702731942870351073570644939897258558016343005009785662297406300494688664866724747597575061903412442031656609896137260060299520243241094042047622976427251370279682130614057515453549833810589745821296099440835651060463266613605865672617050125044797105261133355601372314266466704721576330216907454290611745014881058697742930126214676918480885733452875734588175220974894354994789540788815889980398623113402634624416032272802788606343985682540049783757785912632972490331870816434966406268481340525291709155292177723876875171157173164159834953332444185866703117429764762862033767620449464383333802005956939847339569378272103852167438554714455100052391505130994616808870898208671976011697717481598562978380227435596797093611257083249336328622816805324603751496748015181631923171376959268987590457312306801089180378805553062918848540439249780986187141571562627447249309051172747964748635218226796483606288776098223910330957115822759050450757613232976621086799780622871221669586298073987660745763139824256825405352609669892216449726590142398900069018702790284050842979482588011683617095945531001568109990364121695426044527267221614699757492046320443854632705446915472913988754438462025754560001440065515330173428482650333153113445989640427328349101802611180953086127202207470253900598873758569647837113971095749445818718990453244887983714450580295779209622651198779026727282288417009404907822008822248543761745495894874969406131938192813679393595650428305104060381883884483778069052830715608990843574310474847867938397566122323843434685103339214812737769047240437202848337155607785704082700592480977177475612001781951936918963002260153736444331777928888099414395204176814817774944882764390328238747045336758951562228463967900716171930708794518279179345917342331556812936316856374271763791848857296539174784093636888095841271107874803608347269459600399140296949033678774495573655131092074560629515679276601209116020827781959324966854437428759670969377352471856236873832717375218224342646277516411551319450159000962708031840009245122644918368833378935633004662954331385273550027909325318280628601765005621155946886186781040236318832650131443600075588453605015893861261909489666424994721642411372483028390458502492248027132155385476151734109971078450268906504118951227347123260431290579436066325060067962150299038418391185200147167506466959033405403784323339667091032895993242539678644855170769527042784018151279901965942446936994619055167646664476422848044509226543604922528226219471700547601948023584556331893407530134717827929952878422271734147284232071290953991786256774336529268548224540419161131855100227953718045957657288175103028851881913781504524866447496995409734565328414708263362971455286955629283177218563227533551124893738895110136669417625356744427367413333093463055350454542600852463662045820044789901574402041569062681086745044155666021391428478110653387802365074702104295342683931744543197396480855374534176177013474131246478174324261324229888090832350074296688265217344924286438346423831973449746923435066029419853808138667796297434391689180360910827359997019562408964826052153216392305755889269667011685260762365275501367223670501103836000498925001167577686422454524787827188881942215129904992431329299174615218556787983640905676331412033380844132569053768746704678720607213515937844194207334017312832117624714331977824768152955365165011633142317509252874254095548723054454975567752727938624550884468210219754861384505342088474583090015135915028233516924056703941339859063055305747931816206538810044125213690609928395652151068261380734885741191298700787377046514574997353724146945440104205587402379639123010727822523438431654445688435011516068090517095925207508933016731159710926694308716906684999794030587482428936486224265133380509176384088723440771658693381434683212165745849466372973927719496816855226746212163350235078202014684210700690095888035970448949936418108270062009994780656263407994918559515487348698894533454144910594541791585398298835326555804659212716443678129740685999330074918358885034678430166433327055764217702250814283773501079457028565171729896842131424012515806574105612326308928365908543156280043447510864113297660938891004210035552827981139942184334059434903348312389090658045534809282354519819659060382479199118690913840015746467993019242581607926398406529746172236026733408171330457746669281431644165731857741694228754418701042007534223861747645260527319169136733446862834688855452717603393469612355937766201252105024200955043837355409744187105618167680303005136194928153259825187569966228229610369101647102473741126261229362524965509056341853091903384323042622727112511035017679880774563225665266099556972748019127728878712815202197115736573436604921626930361729642610986613950537271352007018928059025307517279200033777859067050242905222870101761450626522740805381704998082692021966411867085599518193677962188226226234700362247083693589680985137382992562399579518991454668643077245571073032377639761282831026034830268420661938469711383184085201707337587432518867779392098581706829882672339777745345263679314443334592441508496892543251995050234506325121422554911311701909439812694223209199204138164157767192974760392952141841664999772116390290586237150832677390244669162748735563452782753563189444797316785508858673491707545040003159419369765346123448556637876613798827777049266147079912134550491826894072538658335498647679461374895265679236938086779892164197405937310794368116817780151751935909379241453639986294232348857916297325606865443954849285979391053014991563351501613957547589832734731785263352272539902499176831850548187493676017633363732731343340349605669698871108346137024364966339562692725589889418939201038119513473028854059769901680931051662806952390146839634510578457857108705744442611590497264178119133095998649671721840968481295258213927609450261898562618581762212040853801337537822167827961489318979425688823040316044494846282297356449190358329737262409830144361857684483139981447883642594951954199605710953253774178751516588303908856117149011462711821000205007295699261820485518524307956018143365237491574623379819593687043718600376241556834462285987433367928601867367277483064736064601762728377845267040672001582284483709107623335957547195005959129606274896522347652719216396036255865724539154827884393985761829775805107120327466960632524445133436592116348094518020592503318763508511978261842883265158164247209492283443187734639177863500982443664095763088956126311305560756689602019324943455196574767913676411091940110663415506947307004611818001677772719333628061841042768710175449324141277832904829329838104804848166302829674304436759593382381112028171278050608462644071255833306939461424890069103395380453492358023910701824338608327423550052422845694201056227729105571087051131824781892595465741946265744023188992552872416223210092574426528811422537571806192569914504443005922536897340017048749311823063646896651420590230512964814958699981385567517316787418662205164772869553061013197528013821620849422316699477090982767651965357285638500358082953321680479142745455954366637781585458852395202124808254107423686087661097433517341184693180631998288451604355465666271831083286209076161082294591846984516351401900592090058685351336193912580154529996786076578209186038303867884287923755949995165258996277866689172465915302516460849936814677411837015528825436695603271890725852138705427179218243338281655117304728592501304891888951650824876275736445741693805841381259556341471839320668466697556813496287400250678708180258164009050961989687696550477375304967693595579898170864278243425507494319032630489366471726468926477875781124499894241986392667342076438079732606943963132666513712618250302940631584788953592206028545705017805096954208120735025146897550457910748323537016081763570639457265230342682457631361884570594659328607574995114385662260534663833341524732467795653156396923713214697754724498406254999454174865098802608302099110233871582261018127639836933920188258850483060262890692425029902822529369743330519345728359542791481302922377436704251520278049155006544676354292443545173153646489334175812372867638649954092320952383192163369599602585878357158025462669783777039602524746372598579430370747173781635967500656070709018345297339871819862429799626335014359324129212705533021463151558845819117034941341439475327162859206345019682912569484480185634876534674920901769834509776719086695435057783833243822119523821145436198090327242615583257875779568879702106023682473923667040884063494752240079895778794715485282375373382495273803025712801828013061479993221490199405252940673280895981954643198931430183994692515630017205317863905909076078426116362409234016234767720324929109532661867547869104124930670271075314648244944698328814946397390315601595208372496578762764658397573800395723557833347575343247863169642909876354401983441082930552054555633116524587733292013257528641823747362630971771574841311240829335068669083332409266829600546332149265156271715116851536436156128804214731138130516072228616828854525291094613187570180871866066700101174968364042197675855942625902606629434745491808613574163262220702422295556476164457792402413935212239193705088809829711013786120334104150222474994645256938025810359280537212757731762325407121655177867514283181153374846963041834992068543284454884040008494699370001977466428236551156827066474384122881902673780581421500976346539176905875940428287358509520757606407253209178545502763959086251540254381697041785223096360910959388474138047336722733328667060842077653826523890494613623574980532636969899004288659119582891538306367039932282267897117245047765557136009319393356025151566086229516246192448351085236523019548181610455784248939583848189394553745893385938263590276078713037251186649409159398889932343956642094081415139022121951497449591739576411822427595883742982911515835675783799698804270531516048188562170685361030602811596570499987177673976650929399618734533936351414559811133715315327110103755254532324280938263127458893201225142215749052268177633815666848475400031776714615885932200425215690175635295461763667042111813643400742725387601224106903636735904253916431537669713692543146673026299247786594985077035210694683060058984975367603562493932538207281315050050875327535191074510397455317989624716414727557431395476832695385841778275096022089944112787273177500139297202835697737467490216236103931767245024233679393469307559961283398469506780207893658223186034415647621757061346513483630505502840428274437514424005849373926688228976616631037382042486620506477273722104387353600225962787992447784367288636837567172278809395853583731758689543892522858310123934344461569567896099760877578113614945955889793880417812052980867107399277424884533866660809356712879811004682670979179771831806683806800043272266883605745529494906025279423615563417423824467293461635109320086431997190748941144984700643901193247429985519978964405558235539939960785596666064590557604191542201584755499202683305295920905179056186634135975341443038841797169834108519707204907294465625120566604474933908614972797400717626743746337624130971065462834993740788763157686167704810451267498928928459355131260265346920010959580335553224809357971275654380428281492600027643514997101176998273293744814694593044045954664405128454801702041180227376816497513018852204490144371167754459729823101660495464324805915924496035464698116524064612521083429321321850830862618987691989328583706787297692086910263651942470515792365574613648069574921265922387687470621393683023986128165717243114416411368720668997588349178172697645987073681370599303079360628420380108734690892207208359213774172626651669423684661231164049552979265156932258804785890929230268670972742633631377514106245630966790468622676958800171420528811306797969054079931540035933675839919585109356808893198289090570081187359974426017147777123002870653302023612529120970370806102883749006628555198662331204593917333429242522619037220563475793074244252722845365427536199575187089907538445674419573336696270919497649640585603146342815740902232369554391405836554093074892927119364637960993483584577375036884567733522884321020021641193769497031572492956995294115401641819004544227213410845318883909151829714710144218807452349459761394760719853542998494045612785899043493143358891304639804646983837009249562609337750262722261145502057599819662080290769752498539719222638692025859370961725634246697949244143667057907956557198410657214254757529724320384596174280180538994200245286403844062184766342021278237034845372247156387672051572926917965579131255699400963729280679351270502865649106500223942855434978790059330037007891524108920638492529979686216487649394874443836640420565565273177224063824485987122524106636241723357560664372131053656802782227593561039279710964845667155893035311582588746396966793128086446690959351704433405792324805645834825549739359693149029382717759372936159082356681143220276624612015453349860529488115223135469085842537101736770609933522942449057912797440930080469435316795205254915103631388525649271697673971401633808224894885693722709014545222877646320383822281718275766262950573693880174384624015181065747103014994887128791917000309255495505850524407265497866694188833390386237664409870949689230668836039145808451248426740012375538088692562975031483116098873774521327071789744953944421137003052335424388552978968133659301750095816995452971112078991352634105061833315276077768983275116644484851701135995858174253594863678832197929137706086228765356515982926205965587049141524334248472720535641259395125463271676666737698964101569517214040914777475913558278630328432104213073548649311002495842942324267099753177409255719560078749336122866535010525479428552549041326666769570388339115420767247330860317182424090180813685105166858574603394401018304481158735771491964916197873872380790470746226003942148222422149096316342067813714016172960968319495049838203617744033242613500760962051529966951593696417879648425019079235567631036079790346499740432572298037935814476678067583413125714287886989795587418645784959794273210910949435411761119989107493009130474094616176296200882236123441598141535967894900292029960544510757688108499988142828909958456495671293450933269018363878696534513474723519599560394858073207849580628384663236927173059710607265253921755515643451737414441231505291529557763843331453855497318483595398753668639860934070381338475482117709625591619838868968616268637962564222072033649921496649738145625651961048322162126445481334764948660776899430324270405331154364032871252815752863057617544315120042166029083760312533006540424297949648459223366723230246158604764883046500548283832578539505568604455022151172222110190355752518215686992512646041460544382795548654401623628347182988262386967046145373918167285899016018108814934124649198032046166766485984567480805731775516298478446315364852823018740258275202646570256243293085087935091444108130797479267489993262182090694726340061140889096603779383189848693862107183184251197631371673316704328316174922683485785236464903779651784710834355732485550119010633203005467733129224216252919766761223951026257305664235965451598308498905275014828160086650739713206019555841497876179094491181524346205827277397383258878751475139635453395629956373958853900998197104431543076750021357134866005335138031805968575560785210721453807600767901549392405636328422387928755319187582535625122299587163239295744617851408065810348909150608946908988827479067949196017708673847826986326740673252010478977594966613914576325720295488048253916545377966462699627627099194095520376467376250068750648491861997423777274677917019239005681886929977553952157080965239287863227852302702155299995401202987531863659049660617198763803050096167602622176242893687351988111773108628094025014980862911440153476730122300580975091046062486415828741488941723709346784963099535793915878276321249989600303172944502917306230413398836519075955662452702625619972158444229230897195050813033404883357337961474385946999496136563253931242086058177850481726297291544421299794190016998629920451959331716850011650244650664591301811463918645072967937704375675524797697753026581317494063067197435179660287639557785202616808764879657538993027429429857389351400079609861164990744388082208438770295446492108978059890972369372572159360993510201680691182660688300177078717364339082265390150481261393313797759186351847676364509814743078882958791955577789084885277293108493776875788707028389497532491713152009644573673889090543772062878923495387736278546426643094623515305418816635414808163485332206827079845611016412668751913342524180248662741577128664063959985305661607625718716764211866754167985793817735071942947732129211208741917312511963371843726937322663482023374323849838983913520845427844801374776238415902203274692869882619264165316415959903362764116152393581515689718666457889866811753643008341770985162867205981894264643698202578497353796324428224607390687172768005117031404739237789566048501241815279141494276373542962942071289347800515860773091974558409528345448815523655946268112072451142722462145368666376914241898375519373938522809203007217223108656214745169787787345315219955558644451684319866148555573446536419902446599279455110232119527359157874135983217613545182364775575629014221507193783152447513185425371269085480277892538232881336127374128977044969166917782432202988480562744246753014371784707433323575169879338908605017451515331585138672037176719481085279332816672193416777462582002853589639642303598726639161093746972711210247594075708838109966855243470823139520754304929795732808184037102870126490377248133389628145442591126307312246473373163014861375420988984685269494502189775030172733864323201583709830677572402644926954216529104733949207309352832934179041384121671476095702004667016539747574781566995704188651826453501519774598661402140647361839993394212774262298043302724408639431823787907776270934234174593627197872734353441227705685566749974637626069263171752778656172935435234949096002454665292787841205877310534884983091328912859350891080426508579865602932211986523847775014221769412804310828051801615311138262623010111140434914847061461468704419734698179987944576072197008581376339561723611797765289136014881092493819702248655248427924336086271900767010094886503121814299822066893706247636023355123432610871560628330070302180226687393130224889721487081840292327867238226526834826558117288644602531745125402741239156080097177672190260916104891666921618414409770839552862103950526129617384885086085812036861100222817294993754501632905578042476529333751062006254819999352445951729444827504141937335016181297737163639100208014474276254369325627973577602277212414340085305097421077573935378422546704919505254698958475338260041036801568573635358946420566886905042637807079614555894197831138163838630414752501514446873066200892549047570912375141589561339956516136852634571628227097355132437998526007019581969562716125186486026183434185058563858876077778492971061405831929834016273361067745180370932242120323643674393578736459816865329865147185830174629558088446153628156728030538766084809467899347314733001238962585317386389080966782891450528474398624785699657270140641861264506034339478598899729723820594421992117731747996582929618511782544534013592198814169546701799347871959632523931077216959211165952506940317340827346478261502879442803614730925069292056968406730297896940095645419880766523085398054315160740640218709514575157982241936408527917902821601912310741513835668954392008430209517138320522521113272330509396583351201399434800072057730903323393518973717178898237514506197268831771637638522009648262247468428729648414637026637116477060920947861479793209008372797080975388236813569997676349390345317620750876349961636072623217991105686224085197289196984355624087518797037099398574262482972685252811534577804081383845256155992205101984077674670327236898878804511470508284795527289585178323352127698715332334343919114769737139604180497796115481333080274586184651518289859815699946624916976740575270776522283812068037097005588707621831628623137511689424635245347375990184620870270597918377655993443476961648008102830588095818593384623585700624786252376870764513612486903572578333576315557539202032620667424748351821478930114607865365855130279881697035076351070426294776391514825559704609066385121888263228497593892273250226231067906538833083952435794399859676372863229056526484706355723511090105849455182599114148908675307604635726929288487630337718883171006300359802741438922856409627277440877766990266961110833246294694510510608893398083627292541497794865682776631488905725586171582614518835604917029556847617929827113002861778353935497991020244011563327870693906995660553817350690089055131855720226157629185788303869766520805622153889422349237870986589554639358772717731393657370184693632380906939946558880309742312068643113719008592144090820868963473979285684370654914047244538889878902344263872931117513178298418685424819981389470030783608208931201045583048853681395157388690119631865125872490174802890894005996955490938885462948263415820215719652363017118647560608429530410150111242838979677703578241705355260080977094863222682831392500511228704995735214992776052408311307069159465620736612184034332632726393462945360789683541177768157427983698858369092444639161319872967168662667631481911568370909955414596863442260887739092088970979471450535537302919173814903097138791373358738141688533974227069882422105071528277962266013835617454216138518341483604698303173781726967177167669070133200442563054226311218646982054883003561597902586981315365749600779318283227252673230646319627449749893563788813997442827792786359499607176097520983583541684501830552106327640453568234850149627285293685038239869706263908131672489895215574849541873401073925132389731948912755980108083757032164203905858320255972825406479742301050993083864014216736445206930595649080909971382180385385858707978430663066148849285289803126065189056472276377663208790942863267976685828675732114954460555070705589075402739134396004677576965248772557382795479075110472122554125902359177574012549476612303114138989137793619296715420055084918242811006322255651909907305650222867331773121338157296580364178399767651342773627688715063291467886675736558018193379039441009646412991766648457647832293907075994746304251299468046364176606733233597073884697979084973055672102211599691976773821536551932137741142942107109197498532720133088053637848432580570741839540225177284242046250096994396922127203400002164757130425783415368877921965719705208809155985213544676168247902078824357802251900287102073082755974975344654671770088026432837959447235301400340744749382954107891196325441040957890436320153913594410960207978814982083445958733055829491664143904344151767714146899373090806316055970871559069028734584121049346388976083053486422527994870692660741098547779750668375979482419514083352320610833346191332111618082774918161767026079398461809752199737730988365867946684899059712495598485228619921625659607407748615582957629647813249114274859365782749185651247305921592970692656036816822394352820756866996541506205852197698006273679991496535423637821637079542886052615001471814631929822496173440663831163437267850284748629521808999407457223073469281167866524590298217679768450879597908807450384272625854102333687076793534029359928109225119541578920271004239670036356706915635507283954739645993503183383817840960296346001949630176969102212533901179300188875467277280678370540381449713263868114787628053507557988897334299547696942453430913610421609859736912728151721240551371108271112367528055090571613686594485941106420071255981413266797977655836862660253252398593483761611064357896869433665646494377485006302486812021452383471485636804173898186144762192698460543554834577764443334303464941981600017570794310414548185261719646349597249970281201600904012412545866849619501057476891364992106702423645206414187513663261185006818124139807759067931967799711721348670819700009525684143344754885392893851818293853484813461318413000289224004364586725171225144137305101652340360693358651951542585496640335881288903338026692424142968990872178733600344860742488538207643962264648461491721600917946551893813342930413027559932916496796008328188042935291776699601422677658907579539868525791185445815538348217571676163790407773929390255749856738782444518108130520253653169646608486129575636641145038208824689452357496698629925281902191744898618546617537218874636818072093478228970980469415470104206177769188942181401218333103735080028618739305914219374935105639977205277634037142735813947591070395187173302776969631251504261881298214437186806222480490688884408471319997797520269026084160799531043465770986010249600221243311331667096266904688176626199606980397035612872365447290799144518641629266033451054925410442225087562813832482217332868605597134399516388070256642882311609594865384079699276792459002181224592699700102354303293165423729330985798703879539126802595037576854239082392121825741087346813326031762644683127772629834799910137533256372026583211776572627115995310827362603311472341240019305276267870261831532725017006301774561569361371421540336194535413018594820945366867493568193936802083408534803751271514402405109981115425369816854836573519754486503490321175287685313114020957127541568514012202802226419500866907545758103646073104521659887647330000921690346237151307072045902789699363850127930361728849228941593824595846597505196128562387499949222216635690673660211674900368048160304857793940474255502332162136272953410767232919970234708083811522678730485306651595389554651049109930352098138435045515059426876596656450256311711351534814599956011000159159185695925862982159226449668447629011375069284803391551454630163809932284776710381813469554202711669062813266594865862376010668466321013453598913561126875363588561904845722997027475046598473884462822338326494880409629185312513441052935304139184636060221352706820900600715432264499498061163120994982838002909535476005569102576730459568830043233662808507412448977688205650943236611144158932019837162544340914239495901243682151692081246018630743427195757048056661491109911115250316331268958460480312125903756439879061783932583101216998875556933811925182051972464591462852626426344713401845233672394819126716342879499703937877960448835117872552065705679407595941855760120572867452448219558876446172625533295067078532656263828819817669553633681914086095557156090711473352964583652136976928560518364431559478296088969408638868137450641917935119593653751070431922597989744374697252662678014378010314903314781433713453337870885787564525530152912446874015654948463759733081949508184102051276711511067165711261937052245218744558026006293510967666138909038775363959470270307821269047227121991822890878017109891930253529991993458432318427503318663421334025719730110426794838547833899422475115764400600489295428448267701902307438701650578593999443682927933927897596221966886439309512925021449431816944712403090124344117447255809358856751900512657889505830948440502966953731584741950692979828196126500418320705152713775276988202484600234206027597768085883965252801798027651192213387855808740462586074663204632997680010128454261097350887192799130264954635946565487112062106023479252615718103571549870582394017313642994566982806269340203718016296760044062905921426500528429376805547645069199344538535031018119646399764841907411412483114560380959686573480166298101856609436604500412516938484456162625590924516447527780962787512341986117801226797269195987433924754386219998373050178798315377251924395352309997493459006775544651569683763584494588291256430534207321773446940347450875022845620126982943820721224200466710160682486938796794232927487175935948284952562813952469903606950848558640686017145320681501310537717384797572823605288652041092300538504832497442262519375777471177029439720196318175443894561100206837583625866572370408535356429085001104066654529863103620524630945831079166612082645224890182598250111104837868235178257713547346544841329151654054101853729426496842388859870561712493441186429718821843984664518252193493994839457954374078460032981367442886000665802121636837822603064643764245568227809961265081792973167673501497081583696510370809526672233415984761820108237599328566398815847090955849755645296470197962005139895720180918628198709852402708164810722227268064467121486423572898548368518195311516023116072600003614150942891902812467085503005597995495861394330144977299287609268587383843375093015246313062801229847765521880791056733519307803899849204097754940114656019952463598096277022621673728908257761125586729828825670377580224372246030997730128424265334308525536012289709038580800844471688382444914747746589748581941091860971482258991971183768620799219036336232973632535522326136360180887228343163653894322618012938163115309316878418663988166917476498688611941124540418165669003070341366454860430524375383326955924261491241152123584245672033389574797762547801481866208800715931160723695203266961067896882357279902118795888921604614805280754491907127536353573093508344599607333490734698209750165810196336082716791209601819046030587616984345384991229686580571091999691187403269863647470185322598518427711997349602652689882659355157220278579955858683038161487311022087849569549934722036618202511057192900132063627499907705660816764607817233354829198076228869705510420508048335161370479657499087719430392973034611298690200264726779792664499849516034482332030058786744507443487316323406320968957021156261156133770303353088426984108001626953471637373822128066072798374900007533269116240304602491547621599593094178966612284771278488263329250320176491260307796971672180784039581082581323628319630360646019782885064748410135055172213438287305242838759914858321921600061794108615926813656326603829265588692810441800323731601302985045469146728038860656381487657040462889833218925581431390218808127604425111729007428873598909672939034695352990028951490525421911222186640122801529232389528433370377611065516086854447791035931095219053048454457311433019055205629834874182162946918476712628374225763724530644794139400827366285331604300130196044032136103501624835581782916313243738065942922457121468374924650528338249085803054202425988015821331135905005152054929483808215935527422445636489985818460344838248312295927528301769093534207526569154545393151753697783270828799281265167049730347810888510146325028970290181197195987934471131842751082974310333604758786508723233182552366666338191839241402549625569309553914913571479696256927779337693209960971433868042678259386648329998126235194035267152895896506248439402720068942448599364270604026295291063846392297552063137300709952868528724711553337449501614117889938905867940068696691936803474731824040011215920580422818615436922746620235862623745454735939737399656152456118718796974540980413390863406009286518630072945063783224365772069515868250258691785653543659609820721395784731828518300458739904809669825202904843193796441612620298355283345947440492152862777252496119383565344278220654774322059991775247394137582287512388596203107286822923310995232046819245110819837571744267522771069504063759662218914655165999217072972343514031128968312466663454461293136028168102588777236521891213483996252575964081921705299195913475739325697010574243192140103049019074348267182539999502486302190976503561548271338251383646896815897256322348174984742777709593569780638639338662742712112317915675127633550808215943435113504494667980324969821716615001016166357835644418603241979517244552086654359930317782820547669475966082826049089683748873151607326975772802564274514169316218741671656966076389033678096170576122114774807807070336771688202726038401106831817388124953861602007756370075688765275880304163956372460056627406474207725148725162981029832234951857639970934638570531275621707399765124666804240103389228696956367816744240501522673584486110909018316681188094127300620675450631356084859184834646176596463998192626383546079575061213944341014799950005947508773801235261676550594764034031142262281663228903688576299560477941348434394939192789977298156375605478705426318508832899554577048757494961316551732455421658497344497954054566481411556201027683959464198723477713436510681622610990909748119758078649005405372233618968943952404881995530352123055440789142955575417109898059560065984376066154534022727032028771875144226938235762306843568887795318161846931556563747407062044164290973167702841821088213574961509011874483671819087472824833709215079337393833606993383548884693713921056614649723490553083857423358155357843495677175862863941211293514559234337923185180758894115026273372466060911445847778512696128442529445453043484705841564612345155147293193343840271556420293792498301945679707579694327163869798594915310353743509760040642231389792480515674817845168198191644338965483297651457802043115469575977068683492355138430522146910859582024059412395651789386731150807966968183881268643218988912808027090612297393445916689012319354462045833467271444038712684324696564909524635716139848215479797069505358536553329616611396957648934905657271799816830030523045144090146414539811946548614789232282561645082626516749256204776467805475860757534311622673279591898957183021900147848010498698725365982469185836999132859258024413912515661355809080725853676082621656815042824392660829944519591759493359395826399788606979568083375759880305815486220894297507504380760288573073767691601881744649009435265430096008130547654752808757271444242078659356050040501025165924549475035102527167729649365278103431429977516408527385796598607545335015917338746209310532527612824663452672669138229456303550584591361101838574584661827244929950687222574665910265273439542144571166811212164695559964271538048165871635528754350765487545713823242709953439202437501681515780788840369427383029320328477850339611183784311583879095638108871347517217168567029208567536991418805560597481083329477150805716988407321995487694927671537249608673979242166780848279526055526321818048728589465830370071289570618828858145189076174660096106436193406026749840295091427198732212686325042650326044561242149804190288563182375491971062598412172886686484942999998075948362088577724443619395920678190334382618520768641167564760472469012635837292739294925261716423355122552522625402473469881420030576224930991070890039456809455399054756336840861760807571097925180229093210812201622330628799464802870455584100380047921178241174110386743370025897402507664113169250108950567082732945360667807264254265900725047887707410531278126584218664169829340160692944843869721567028304239272148010730200891585004080231637106410778438158962728267299742897735958663055671595638692797800828782462463087113574927425925091906834186792839649357491526231617699391269302821120002101703910038463478821027797400631408754548789808967760016925757757594107512662658651402690916066577943675709928107351066331426576894109298412368346945014865206415527346304640761776576655049079609555464982014678511787466657454790029204351022865751782922772124614002575436884276044169722693390597216170590308918189372058231140818265977464550766247117139403941537716451012341830243951238346403527254976711286930114988979861545142699084536439077356464211372045096794662752811434576580500837917469911818522163153089831279503605821204039775080131299181361510008226953207412477115525734635718355335473442709049691482103936507819748840594518419479852407822834544906912109590556492480776146265262758820949882294031362947417417505227928867153511042850701766790062583118190807510814417040360542415927834974072935612956244174747822192989538844717965584471258589027394585174712365709657950828165741498740033094338085781593362759345841596453345978125570710420119224232562658235292064181119626850642756780399211272413328238752674091431154347453500924017014470533144280967790976142749486942102852298340371483233460139004264280702057881130292272301275232695863721716980412189125214934699423619764024607149897080300746369315283034931491864862780914288356024562936116246929706189252596090248181529202785851622957921849994905149151688049099741975158293899462827013598603823103091489551914399076163985761002488041462580622197280689593574728174508368027338877031425655799475265767198958309255779548111142400051360805599529840328014091246716850662970061909550691673833225428058050018425542977737104352968880940011695197049080549104487425269421984835289033136224777869299024344930007068260247349035758165898709178275668575747878988985135143123464292335334160221049558667123799620960147514515812394294276737412281351975925964924088836220398274409215395007319857359472938011954116572173496679789682948467570369229930934718486014784849711843851521078514907774856016038363417472721309068150687559765116396483202542749989408662835516352136636599541178212635568053435877571553590963343398248829451833308416509455726581797734353752940803971176670353937312070332284192174248620191673725390777348333675633597250248233530740922149619660817967706276898086020168063700246554378373222129920461393285092249250557612176712818298747897479629330126518362481615861335575932413351863046563750808062354616793612035440620339960977481567693088224702631417990301044165805050883316152646013646310612773191371592066697773226141786800773927138860749331861517515135376482455843106002676591394620377328282584702078305990859283949424673978120483502415875868783793567472606608353563530825893614641571053093068156222893344754876182022170688998630766926314287374335926696683420019939865537222330814762383141389347845399547200896932734371718925433941870821161322381155549463476055606434406960177976765217305196709177002405783827522170265300159314094475960724091570588540979623407795695734221945514667582592498421314755905880667078783308728390290645502020854902681008585296065926494227901096793274454854289343496687182757509281855078224512076047635519538991061329579935207536386171667971564282641273221250676063878139081297380584081923976168766041989513125320017650892695419333766433366327542916655149460305302420630575299211271532175066351961052327869792208424293540606853280337809869034168461452704606491478469697469704356167942020004316518958946839899969508060162388948355297609966703012203646534708516805039568729058353181792475118383346256464786406276874544122476144229307001487393961835390999469167168962271708539677868722189050680155514342073848409015909164326279083009453537223901484560528940650676588505220913937232621236484541133689004832150734471424979011857731126845790169814795152855372580926137350812006992244490557858408815863489362675175425463043283655083423735325079540564546302331030868785062337223167121292359684741275207309195724542182603488380695070125621110362274252599767721081422681818799067514946544203758293717862851521278103951131601878166474322856136424235249990194023961035372045543094603786008608022143988021628574024612240328308168557767025097616757740657305574555320222229136077587493771191712755405532375300416429525276971169933513059914093888299378509529763798879668913954394056511725182133771824781901843452605560230891572415436976496869502450944360840219688139064939811087266627705043920104322944913020199495342290219668095375523289090572747332204723265046076175063264593808154545960190442841173355531985758832972311552768525744022528878416298760403873501252893918269435112560592676917205355387756463501109682867810945864088419293553583086491378287220412030634477532358119732705542245505784758001280668191354355288073928890245294128745731187101360538581047676928863265827572050520344845624941914275574213465284105582172268533131239448727318788488021159616570452519775639155821136181746098144127832602979394261573392660933106238892588930271895079532203753769199544143854416850953347029256151211175487228082509575020982882258608635832959496257447778094524746619273322830777687844621142661639502656598669466128025410836716196421926984447538673688023494085777984775217131612631751420812093094150739051894335551221905148715133322221084586983177590099314802832371846876372188564401710940482510090333508173346420218307345371596868400243150041111598392403784938550568871248885916351848495284379424386458167760244074749317093936391788026043779924654038060078517776567708156792764240909774410799463040655202574532725521701023197820923926101735243169946069684221740812625545920685438619489707821846965218687877118443096661527882915467455373991959559597955091545657058161643380097589646393290083221820122124930452123086778196229048898307584011489591194670028706959315074517213293404462608636855401385128777111869563800215506701278092548933367019494709472294416482857122299678312717875877199897521315457493342846722903769848619790777286320445974226612672067388326655879484095348592411898764287666465993443264049494105932486357331076949784265063228256906912939609828551319272588015198047957107579797204431063151235814837282376206674304482558115312733484796512407313504423191555448839105597255878311231794437677495890054273808293712176064784638475839058869177027043513622152467424389999726298796802098575479053686369865214148454467703105406295521737211491628047286540246774334356738601110080032152840407213823111109592478534519523225919543986506130940924320205483266938032445631703118922769785924729210047431763836511792916275942771213637964941059489313746791249169887217584188217977025790311011601150614971862442394099843196989377259523190136759535720023647653418290469324423309361736975165952860981253295592234829995807198771502011580741820759234119983173036744672759813359193754462355987503312835497754474890450195533379335165066226230790654049043608379773371017273813373691913320341877659149189346558073021828286872485060719736323264628678742168627836087827726846934190438796564496048658015641205591860848127757059102324171247559027013291565782026545377125651659149842457811899039459007198751986290760524596753699746237113144943630285821351433782078310605168242287092340494651773603753929841477833264761685593235703490560102111980168235470278155741551702235037684042327628017588934288393603514769226162039777006769517913921502926549943540881326968239599958494489691340760954872500831451620134357702516529470929599498702667353582093912814019541113398827566748548117682557433796221347656182709636142325515886776078610264670760670265750372886815558048201525337657139302507781002915373755570797413687641307966109232415531829426366235613466958768826158446826363015040700616600562529188578507804359468310687341549066713278028502816697705793490646518683490135023154133313722935891198303816746488534765528370476366000674803866264337226709711027203753800451885281069076460757090262220556847284422581606870696682953660803740330607565782459104978286758315422816629658586725160547470295055018770484098724214021506851189784443104703623620345989641094527083244082220230735892111839925083742897819417053841751018454768066881594036503824913951598655498869848102134454926705564666584707193513997867302722470660053972162844080912216299247494115280648907674537070117092515828410018602578136273325990153346727805139420140687615446553483445855127405295971463244494379640611216591186626824680771817136313029511478679771952522293182279690738384556054547053628402015785254956969676709690684509277118598408968956142642468547498845993200814442393247751290577845710447346021444475196215081006857776544104963662647686462176479963951793093917645523006759632655178067767317671365622995081007310298906662926504237182983088505862445561902823002495999044058956790727750435150428650773066607536663372268695751087842095073777361677937459699260344838993718817238714539914552309513678714210819761150149785576616471378174422220845719897300570040591530662079800568162641935201199067033938039005709080807829440576633535688703875633146445393881000207765294881824940692060632137077603175273428517329406023888624956201886689920808592249497238198471902128824598545549634835700185049471931498214717279164800236655311503177764493489508161327954107671062780505158708117684654802776810381580071307323678595153211583129460883029093387208903916473754851240163464106818013924372884123940022023936743974492908938922143332060445003348166093531449197151587350387415787031165794215571853140504542492722714689410851219382006708278144069946083256934212770168905707909603399763855855881363485231410939509510399437343204297040116558893536511433794732901399663716000118427091043148963929999885472892036713987603688722889045024971422858945512159355400888489524547599042789018644972617051752027685027493175379611566029899747102680532206006427586655276219373042224258279134063056762230242042612639837930258834907927438788519958967741466795410679089008475258447403025252591386616560038106068253045536512757809567181209580858156198968771179029869173529509175191118643803594984036531342984154050412397111233124714199333943238222141750026660268876385675721489136676195223855359665542193393519000084471348222006602242352708253684725791586796074201259346114400186682485110812191991616274527153691548417305622766147414899795764028618188642327552733021303377626916747762423961270279157945229266749902540563847901737662068790280987574410032446027972737798587002468686748094020681056985609600811148366975849429328573491478216121431849252348409991957075271978557165128165724912071410446581692931657101396368138095191053412902821986640859253478197204005042010620337280829198544029589092390835033822770690070269361691984732377872096952303482863817592191822136828035515350249960356363480438742485469824054529755495804623730978835821558690118407979781869529776633670276454360271641510938232186809944339131671125464638808665505238045336148587438175480411316415447137993033209221981960274505871379680090014064473499165576432049067020577679417779141811485944904692347835718407229531127723140527838302098202638209201190652281037413321732634308784989370053083838759819264585633069517691869820289706299100733874593039250624853139550826048124206081943587221831016567061550529850563412737592062047140566453885882408359976893152835780212657503659635617680088523850033416264992217487672821146223899088660881869959993536095696456420964657794007645442916562049566072675314601455615748634260286143377511138368953067699247037725604623463888397068575314706457220643002230579016004035274070872635873456277511385694702038393385359106893650479971189683139491423217529325415208758408376818524167034318425368966622206840743700390078052023434997896234407379564962249810521357178556602568392972516720499218867923864192329905218099487660592046031948767207285493157356127768605210275987607239775184016651066803423110272249620196030603526810225689608495580011863078664721133927391839497269404490020265518908748881731184627483449146257115799385003194302258029845175796514937264887052371089748193770793049227095507340778854177419189474858772966982503290214924537871834465799385121001897910488334300191404359368427755664411140909096024424345394317338281033162457382744945110651963337213492031670281967895167687130253827686377557384728324706614528320633097228122326542396470771653170380189258868224868975648448762814042114324387099359446194668076737969725093432582135877201117389396197190454398599924642255110628836259713629529122154687328031436584245764951482858544910722080303260342039745964002087160910683179274204935471839616821902833374044629687214315491422726203713512054457409196371575964150306465648104759944435564620510457260361012650701928441368586709868985823440576801933111823298312854792179850850594626804468187506838750664182961897643724784783867236408439190877926843238875905207684997943592435302875386867302914018464549272642930791529200863962158873826056539540093333841622631771479283300343679601561284040709914495294364494976734627104993276437203007871512125880990953355711920695682286862328761073423720012722390481797422054002224930994739346721378577123844079158003897984194520494287262587943302354795103838393836617978237187996668396107488527632761925879106527809959078823425439426228853576653157763159252098272968827137392110491724177610644546936299181274025814514272567606013172199828110981081358121387612717656277006394603415644510759824753267590634032300543109540073557595975942404585699462151690318410893094852973579992143291318076258880572853864548741308648421276354923789405748319665818133330523575744875737831002916189937842521741643874001797675966512105338861184906619170587320593524745774308967781516509442656904571503730799004290796426596806635844304201473543498520337651607625160880304013137798815064660406374771239094182456146056841871378793990365613919945204322894010152833798781571764264400745735804618174937185822931347130841762904248889737233309879317736846525073315161205548520512216488891691014335816763755447050250384469984317232774405166337335219996055408090895173616851139714623525061900653198413201401735670484893189701661328024517998262673072457832798023612183122311242071842205838850107587944213555519112852238228593450829888585167901408527595734827952955348951083777440468949106237035266499120280173209236927614668059515690505522163240194014118794686520988642150777285108240753714612031196073918095546189729657509310472108360037666258263886414912831447896429085488153518003389152711806248887503791824126535498846709558448901472647237033209164767879060110732786266593216258052776016471867130120331980567901390353505849612214604519626926475536104498250423843504189181591072878720795565381390211552872994324408373208538931623868719568891682194513969508683138995946822566161045131963704602435946318571942317567161366301932348433748438335827967589488982141631963651745018498885151630806282416427232968115208757566252829656109711510857419346649188571020003405743893847861609886132201560209206387510898091841274782949071924658087275769823937155577189408296717203347786762718982401249558948344244777633711477289864661802173273441632295731690528715044639000200615275069258278185566662751225638309476632514104210924373527268493861076341931030498001236565189802667171820774049215299055669416134244555481605093558525271788322522794109626969375578086184272133937727020074845556400019278148749827637634719285950837201672852846660569357404139166101513483236848085138358656330508424484362122241901841399690501042849196201416116882309239008535362487667877098177686014938183206072256647809857271277374059368835632612721043392252632859313492001368340614840374905091495158052271257908237355081860922947830193692595063575486277352539364071820596776992140688718361160830020106730127603812642945721082771686114856539837990416597629048293248985314841104234321507748336620283514426982543409590292334903607868494274970078315456083715189413871808677383565785374548652254079492412283679555621921227635799461460270537206609893197269159155535896620313693239317188713432471254853717186774982855174136590198176841228868592309173597690552694170357147574553216769249570820072798205313458470548010191628833840569902145816444611444820738661675099918177924768395066510507885234179828941814602932953513914435515982225580702294937575127672740599362219275997099185134712593510150587256254122841505672991493264754110997185234644236322272674807061701565068513452369113456836247126552408551427138482553890979694522714960366553002150892504006463849902842816492141568212715245918494413767619889647319969853325207147705905627209591945647642684779672179780555555125032415093153701021839018708913455995067412301164289277087589500460284264956520976544472961055576792910089164935571636122847938805570835937856146415107336209232489779229886386741100263896091069907375710244288361118264017939926288734010374820611088100156990410927148259493060494288353518158395551564767126515164228617071032825290590436795146147332291678406059182785558207153597273631945866063867336390475739577403361274040162925572493813161749484770266233732695575284510616763610818108066277544726072666600698430411125432610391882621042469946676376320104616530802977068516938966410010177255352986449237369800368253441640517353688609386769739006077974010344935700671808967348238534774099010409238442436940778491315755767692603659030572570884757043324946751013302122166383463581808735100873124276235091280282051351581447712908574529875756019604319173172426458206523625260281133162741316339294702581939653043910937474355427784751437879017192577553128397813524764813545357978521750945418776496585721830005174928996202686574256278386837633612236187221605538689328078929925161502985211599041119989149856488486470704285613047530956491290020044960078380229846777548031040542648018711558895064401058253351285351443459961677051532226994406872701370290874856506326103866470604345193656441982237231765165709394242279223374898187311874922152793829454997729840946292508342668851571036888411864679336816550330080363526984331547224553063814970956712157741828542263097286311692838935847457665812514556940658781086979137199050255807906276741609547173568850628397468041295908362462832817635253907740424625627494528742518418251998355982831805159332587629697811118137747225829509025156474454531841045175484217822561018879111243244527430836974564340233283272688424500267270074112664792511304892268923677748077260463199077263830840291697184094998970423060011191804678244521646660429156026482050610256402014730820773547635105286017342546960246497248885302141266232288976240244872573486170777457770238302048586419751373045226909441697090696868248591470187711842026967502123260380329787104514592643084314144931793558413750074642818878723352252249803244229946969594902144397410154497238807404436273960470597702975357571176712379863203281536705459191409070060827863685042810082932323188967310420850200644822607125618233610035598210909385360727658600653805202122849926936564461245909844389524755926196060021523969453671103123172863291620577600740805535565393154700562387550029941857983337863233370642031076289776628597106326033823194404764398255992654847822179578758629080302590147420455164108011647562975920702860391097526290232048751632192378095714482430663896367621290439710680467184139652967395563356418909477068367549052151564484811097755880587019626394751480351821944819948080966052270279632539287260731659222734091862577310421031752708753588501043289576406816531149673835000672187615631908569432396755027178414876216641417121225570507089734004310463360227098536599522742137565924600969947561698865072962647345419726079567688193755516693035353344790247311017776175379813748685743159498843133642441275940670078819741053584267984547460932348040561591941264931832769721079375067113701976268484903948408018162732064393012496896797160554893446062381002499029998152599309777795774327013671746122801707166607384267249008576170919159540001495711631529494090047271507584174334715062364349495595416004736067654023502241006038605409019035629345068652242698021548509984242108994394802401164013896190259902303982682099787839671626911481459695563783172876893103839030924606897681853526206910796952017102107500002291538345400135779341126103017804909049676902125148953441286582409982834278273829391442810879356274486121902385700293640654191314729648683692689000127032263154852756017865504355699883167622029316704554358981491783697771409766241064200613174892006999373898542162530448180667792074735716624527599526677012036577753189329026277485062720919512600236971956477775982022486473067662919957211523313923690869111963872071435111446631775868337132323907899840941124242512278390996335962805524830685320678679115270880960902371791385740999344026590272138442626219020303080409288371528961432155943915787381821508552518394203283876356701182894053580484687699055531710872765267957528778407090432440247834264884673267828565693408235119264105527757163729176963324703641478299276073366335438999597383344209567829733114898434556339386478730184161945862175571414991835645971899023569058393764553501362289043231921908068734398467900617940090993498735457657055966588049498211754179175092645342503654474191286694771157113760427113207531146385954255031714449235327400492317612873655772208192049672378437673463304017701755414319109013687479663665155915586396552353624200947223874870058673766512620152590177839257141925947518536526180956307604911835966330251030662158137908903891688786039261689009815333960395882398508588192531060979447202895260234491215803584493021800119126191861453615584663316380725455517891862583439973053945487114801669085962416705151428815983656989003171037718063336606904240978274055641245948969145692505741528396325032684434809604191271664161096523540733258746475832170341189056411654699826021096860867722400938128318733074720693562246770759235385587798995763865206951182415809090672272478908680462241841996620300939168693918762815674730446105529885388575682172349634313420918361664191445637322396138519761815901058432891816647196730361153039975788844401258024652065095608516919228092663842591814793402762750073687060518025714436686045760163845965206167132331765666862429003929692988795618017766370238787884377437018441427117155803227236073809855423473221669772310487236609000472808447165033603640189259133521186744628581916577981450957629318284715848995023315691642155751444338151470094326382602559956427120239203791173145910211319966366318883054593397646158186325743815599583454170015097761144537662622350051556757810062925121637770465220902484960860559141232946125551835748457388716303179788996011769744591867783953578042465271971595340556216691116027042205803147607803951776124921986649841746422832109920084425847197254320178632899277012632343552236534605935788637374009551004951291901066745070122705567339327872778598506727727189532757840685514097250088500077758597109343875531139381232506935980552514812423418814782788909110445933755710234777567614942949242543742438073192694093763510739841832731736716721432207331044751943255037092882765594904307103589368721670207684676267302275641363445691858266915184067159809283451642500162920027636462261855141385192599475101998630248732951042970749508247162773471063880408482820908287510500896065272658995513478610489773428315695845452587904406683795696744715686345369909763992758863102970134574924233275358240040236049945665467821149981936888020576542099499152636585903456647289959533158100722150925307978371684304526351686166995331958130072480134179941491845880491184958398326038988460164103788591113698065191284963962195608324460455493764615334044003432320747302782783135369301974169448615220223173283185311602809261632454913953159778668905341667465998517249969611779636522396403175998998708013483448522905331114029122613055727404366234248278094983081776206180111044783379297794219671137011641762496980844101729590441779615940745619077647364249458352547810540594153441294384660524769431682675569503209168366304367521097860908374622831302445366940287625463144181558008403714409747082885347709135303816173021030245902966682006651265106124390996127711017747585899272536059511833816285347885520130337261105250144971928594794693540593868278722435150904252465754175965327679971360579376650264428327949126894761580372539475013913539620704538178644335623944725953392494714211812776213051330506413965102910616994932997914652294128007844398697642825658691380499126129552157879095555939648839634430628694744534447171103337294245949428840214153723464505157054893520496450571216491432170240052389096133527331683738651171282417810709032587149260662748063277409884297900677408636251732614264637775065074856977237340790068374257364684493189096599292719419375512767918729750594232083368838841684104231168017241736683019189689964559299145550470733156894362702465581800930859628574897372637766308284169757496308558564232962981206754359491902729224983343679512168297852111176573974014653174185644759436243288085512549279577191059442796556372936070107340513158721725073891281645650860921755069402021574313262731816229299209426031265941877660716422632284928368189602095209944445953085621816624984476919350791459152128919178228911048100877177859598248299643102870985126423816878166205711851087597357519169169519992157419831366868884420460651717132031523541963599511604328899207608513970791745224772667416676401378760693939812070801565968789606432911695066553579485352661929066892174512985530457741151894703406499824259196550006763083291464096564123000428149677932981869517435604731867963981328510108403109824817986661072064921766818037543394004024519588483923497907976186142383328900137346330562656624072568226186230204095127156264200687765004902804460306507937353535405049001757692801701463990710857255977498603387860561756569997978644341556578816798940975719626482765563819833433741976283939759850744928970238439119512208911496256802617370242828185939347950865747405249620937022036211228027771091303871478497396651649360802363670865130480583287948342803238741879186293395158057196165203331727616533125753960006436946455118182064884495706990831494311953761548904326558749738074366218146265405944120266903179248165981535180764421772152177928936279512668156884261413685309214949901018591111421516098598718178541050120738881508599852433064877060906957407654250169751445841226191976862896730154820440266244214586661288906425563826751197710045393313612796522416568197831228003452221208436963246284582613247440775885385359431501267234295910524697492719883929415307063274597336548966623233707601777408297830818885432462462701377697090559610780592805443350963911873535931496650829053053014372144022110201204680489032026470053602470955376348548716796231085048299033946856309778627577476900444101741128539951557426517490927785695424704563737879503006830820504184693396070354822359448504826391790706603592643235049325602691332068351937318125120746566377983183034977184297685761484954466507349572953656409639193278739998239943033959516793929658211960977646714781488081960803829749751680720831917327019597940996729430379449738692872561060514223105452575136048872427316253371449257605366976680273840539618943954396026815151389210324491134668764133017747906156014207010885298802394562184014251726070995440780747006609812520886134268953485552630390055114220814781060842810702054927833451102297855057681727438576744980204664000206526073284988321428523287811765291729242099825728591623386183329030153260844345767509649062822859803161898631493135880555860180170714581196648224553258417382235850575637106306155103716192145355283223000800317767167249386058927273052452010016454218884198481650144263670311896716849963986957971030631551194647532749612831867919613148381249345817426516557021392518780404226182758736223215761854326689731078693521564878075358480280138588851682097401275263521782953906964975636324459639119921269661126034120029024735988167553282691954900502301847146178658645163611749082499650305558922008890452622283923916080371360520031446835491084051781327547297884693828260915467621321878363392002821863333434278930942585009660504853767735224451974249169791960629862800260662673491205445345205722512277090237837737913736356075256355797276175757166753605957327266133061614353842189260237548502948192011305885642657649657318232629422974062913049766528100324805677260886912300451944014310698926740286911861192227602803622134483558588613351792922936586338557102994197134653592179593610287523979154451813399683540174287685896193204690334657464776391848237253675610585753176380464237907094202396530816075423670191769528391363787180175948684946949575959897847374214485679901943328814383197765657546458702994122570827329919815941191010093199831113361878405884264783221408295953919974661198597687110976406085654994330468103036978918779981219267258817322877837411396198449620901538613714512122926431844984586132346168681544423745594335279294920241728833905405816915209135050513759686115604178507251079784167253119325916446559013022412662321701903585220811832490177518438830142148440833238252201339017632820246830018491234787947379071058587362025100792689095490687792253199068118844579406027481122592466780434254613203849735717852497454581568750572606334643111812232036180732977506971815394246298816333124469421756820864992804241236268489359503710888389353959983463065664486213139372963765364053612078164440865731072308531656013745633530917819604394187813699652300558287275506987135897606191169394786134748922983406501586931917364023973505731653171009620509646008084711149952146797263804801839974169900144355237718031708364210679418676802766994325785494609248887574395658301909311121163547207235139705570371606888086673050536115226822810417902333255347308332999532704924373987358823403627013702680205698399766356047502745796694765304948600376948661249376685156031404319130225015755960713919910934004635688806209271338000963656825527530097118479607417718894379361898036333742275089355497751834024365791995284889856597062924935169940185402382086136266424547816087497707315434895063970118258422518432282795187519028996616376240300326669281499068668194147765537604677708089997595573806144347089984794303456979474851642860315394147003955897423240868735501528341534476993541162244197018752766780093510050517387730446479753167875771870562677227749805725955901952753714005484728580963806043057546818033962944093393680642098977236095603315874191582674364844453728039812896092532671689558328927012368580253150689774351697048539887995329002774633214449505769891596438467842916283204601055602800585362802661150575538742518838450299077671712586431054311384389589567159839923128895881975486142938677796508351379054064845802825793304591269106111108710687579452826725128878794675406847722000428189234187203676398656992829472381368078023131652336879191261948202892738598402197492407319742353121158802932989431351254094878599546998638958418483877255296628146524668468440458705941979905880395342904419574582787592785207004905960317810687101690914104227740794073266618047734098840076896303069907374982899386813248313852251887711814576005771325647390494459625637668096957188182942505212731668786111693189995873933881498479972477388130126303676611983466754382390933628882134229872519630050351411336486828416317723570610346610513746829183440563398104039192564008885332821018487207828192755256715941114129110843655195396603927710461371543961397515672082883252984958794879121754551321155836739419830310733849297214770990404099639240967865924391729894912556218433480163868300202552550300945951498587155592782839642834701932563878775409927565969117578408680198110582962950742594760899920311821519626622398163342984735600386675688957668046946689333562216484221488268314508039610921997190357744956665863024969948252798408051385825436947760530163950277765786966889676842068456880132163726752014614535062187422616522142674630583540517755208030958589159652330394745762122830133487974754345786441423156733652440936872301154578281480980803373025717859395534179444133363473088097919403738180189491950791112030276707941547470253885184653643895907994275332698157680982296593470978422640953813559287101138297898896034134518566685048138288714036328836739888566105432456278706969400173802014850113120563882993761560806796994745615114682831525397445431665528842230349801283481129344114053484449426461625456786940777080099923442648691678462636469140787766710970105878773475307823467982261029082327314256123801316579736440407174577703238862762595538402282269535146283878450773637237941079531065898653158648721662771535775443707882656657140037558274622203642573198090800704227122815726264592869170518113251256363247699115643540915251491909797727436526748425589212037090754024862694059237178167657323582580861305465591231383571788267677657262518301804993621487598736456818151300942445798708824086965656215507882959294241646166248274621844780595434520170193406389699335282136667279088193861579988341407495422766015157544052014655995704630310297545972301902558018274868381976737253628213370419033970751918347483135586375347965077716369836772215883801943725416298496765612988570296423298221946770638970839134648591746212452196113212441721802320844404756644768101637962541219904336904976563319669025956813113684166677276717729038194140054937456521714833426348847358143733671101892848668829390297363975580387759578855215614732616238047991238922823597001308026829800287606973973641174971543539691903500937694713046273313396235771636046760938056768496845851720360395272634153900461487344424110912969835497885786890971249989259613556606236855435693753723566064405985600862880367169725655260372161933155666569971791586969452476971963529746086706655509441274075793675528925438651624261413320325994682694888797216881623270454093415360148790679871545856522670600550392963921326057962802050048100157610323271990804746914884859885437219277396902414881635364630854292272104651685740072904320336097786352620313986659573918542149793052043822218966014835113855676936950328206324757457230777494428737869605925904393436106459799905015383537410211341896245821319820752360504737948414663294168881601681128866223126039679034604753155515563524850512646519933474237814107687453080793714563860780463270424624114117855708186999788065574105506559987723613102966991574722761104692273888003696075392863360245606661948122723185930287808989324770067956061512390063889699853424332506420418421618191434004690243090682230372198816034549327686051975566707110951726633176312246512596938864176359252026250962621893144204373004678424208785343296486543724127215181152503852089461246295221531130043106808050102277548872910759718119401871785961154077108272687999635015112266804328215123304772746704884701187938342529615631706331478405438285597044533120620781393654440316790537765790625100241646303006470633313090380761183888975682434986187690501855719126979863239742744786783806841377669547110227615267102131026339864982716282538232808155259679008112992099722444900656988832435828442452522444883687855038898685842000071502680334422002221649545939038255383502269611277658837084308657313049688698494090249653673484600866043879539701988929828756757942758963184842183058111999234926940838901712278229136887567736720330813432166668538231817914108933890997237843686362031558122046516973610951735109823053452390701496195593557805965039209678308131634137411897457817663675832683027690554872107002539309292152876034219756438533066021513077009882434776000886184667015414310776233421893978938782927440158595643702169306799362279713154186606643105014442131961468436629513797877010837559047783351273174929719481018328701753273837994220583916315601101530436751797606906155334992902411232543357234332557064287211128373068838595845738725264225999078189701722067928382031931057779108936958739777037766850197568800689055770163404814321418569547192773004403354127345898715238524498975322549530621157324615968544723468315522802757876820416464513013209958497028761223721159709974785594780261130686332171410388193524795463757413489407779187201140198130505057156424301456665722767217747725773935035916666647944307407694529519989397661777012376939973271622320127985481085402079548156109019860238201507981689581134568078010047894672207083013576559847567595338185328094760324629045150620123048672145679154898398271569129327600216253184374463522644878420015991993084805379708384372077640961720795793802908104999265465610268435532496467998969037176238245297639093649159120613849583866403153835029549171915769519589054980363232847180605055670964574014855200558369794838798554691565603369217626417036614844697383976264291994775530371910707768303728342086528643103755313716807508974230891231681921877107477504919273884701749875251783667551431390320051868551958997607715015941750662394108004113689198840609310099567396492074245421908801665700231169398818880037029931838212706904223629307376556140972659665330347134653588103851088712003456027097573942553864519559165357784432697195321582211812088540095708859780253197547631164626524876642892291660550919012107198404854111420136602630278645789364727848970889940344819019008132541251875460779038387046032601721308560732300548075112876493157772827087543331091701873360456622003689998225978067603419612461953208595959679423633876129800443441803745780542471895537316376097401637782273807959886062994988027668938515810647339685176776802554242511789945595783617754689573741641474911593684307999175176412033306622410147306526477266698559412700053226657818414977545006275614998776299087682113049977893919715713445468992482667042101215663343505053287946384668608831733418417019985570627755567806900106709638448896016803697280691550273422602910777631175176685156281376776569580946037816698847520330992438058221820760171679688834471232117327132154841831992299882657984186744002659943033970364788395625435993236911492226732056453597196093275692930046386022332603751523425034173939628520881854046491647539692312870596389614845025257494028543802430391883925593825752558561525022053264266950928422522177915274628665828961103572933185925939260591987449881674802917095122305043539172629326615552398315285497543027196027553657123258422601025388901937207135201603808268344798779034561341010740780769227068108644319866523944427190796190561949517292395711310101639173886719122043946888419447140223519030558204214475613248183867341977749790439242078865283335459432429899644921449402043037914373626857653548743888040071670612873927175522432914604516266795812129890066300136806016919929739839647956502440291789799174318722504258915297999209783215169615726685194220641602518849084657900762209483433393509822160078486454500916404243414853244697836846949271587978167149966643509270050676103996717503587320020063124070522819844281275417733370741696644549918107466247660088321330497814339327252474909954903797286158582457554319510501825973223875766346840275276550596041587045179183539026801172721655946950632781765391114909117447869531776259719914303025361193975351668514677685678948206607109847521306547894573268300343384667154993532162356165499585042539588634149280696188291321423029136039177980267655798082719852072109810536608780397550738130721569355272526979867122791375191945417272119307936342566143646938660725888515354815828511213401253606658153852698182402229466336921292495731372833424721580374615072658436541580829884561094036579023199500331357491246644020744513477288412626801657015312596466385578534839119715570084931537498048052496414889763040334554354731645721262845296977331199804889865671233800302411661535737193303586174600118508277776690738187835010849173222446376240372222887679719710414861917128836537977769465332801684625577260589189253909821426338269904192388619142728421282946118725315979848009178343819844562398776355696793135626078020458135850544211415760109616509469968961515435094218742449841202211136806467303734452298130599470693000883785350674192570024682333696035611820739484898169372564592609327425655574396711085252103479542728739063494211129235091606259318618005946557762476839451122995830230040872254670697323652041590239803930011581912739583519469586156604355923889162303803107940014776986605333969710345001864567931027558319314386854675715161499952866674295091859499720263835434236422054451771403465297182265800132660258564491815255151620529487908768612965903216853800149178297898239853904933426099799242381891102507841730954007323184459520981889672039943947849504972000168041571339372660003789649819503083271928941509473344764212611349893245971106935332434066524446321390404865170905273102950610639791106541441572399543700927519643504499701668964828681463758940922707976046000878335327282246675195813132190445465972891297853611087588827177527825756824540708834924092640032209111448077027066632998797836707512882750653204227060347335151058418181232555388796159218387769791023415506418059013715788005192473957048411651929396220881195339156096737830844471638200085181207357575471304577116427113808835234037280928949947725375347627352705093648043397147714126971809969436544419398136934932602718364087982892755604315951423937998790402078851613774774586020825255683756147223494728416823273934639510583486588842401359987582689567945339352651964134337756016367646637426887001052668313146937234742691659061342586192321345803525322157214560766086821323752674267874763066079300801959885677541730081997755888922736869947477818978072768716838444585852948167364580689127598020505208400351078083370658901492265746187260011984225479475483563118492207413342190762643495738973740327878619739219500247330871770353808523177417471513749631390223884656797637791361448124894893397863295968862816038531956859321276204048208409765976036554025757914766893767092710820852537455356601033867925840135371905311766489637658833127226080969514835222396724626213672671420595206474513019110527833538816049421985052815332466101802485995736759699113115023095913550377285691117498996798665305272315828323017681964436779344301678002937475916041097708777130830063280875387442009704262092606575556031338848299562296375136283257690457490475323934660710730594130546180214788463654236196740984623775412810668007067638807798229596193319154065965989088054103133870150769246546209373433648617716071933599532584711493232171321093780660877042220705811461437195471306560931592052522862256576571990960482928549661294399054575640166415205757273468706080204117303860591592036090170039548130897352858659811624248455602773695541172460586155970596437903323258627608423384352355797333336186955906815699103562461727804982277665849473874782372900152926010064693342714258813085188999717771552766044276634746865111824694948488434920510248282843418310740716569778982443037073050316873049496600963638817295237319762007537098874608899156332648229549251747238955625554257856560480972326116153690268242647951558721398327350124463671262009445591202823941966181823684211903766415448904215822229052450142747325751968699838556874728475079176062012579264598375143880473994185458678513150409666712694272371035226360903451113343374185977306547713447445075360966692627914648404603351989566133880979991338346082862570283067638841067145947671691075756368399529199276243925887161192573689340435736899487719141421639782712498222520194800830079358173023217248152214987383318107576719216568189645302828628774766302138077351837002301834202167112637169484899537185371992896289709518918817707011526238811782382531168809213012782395688450440224705015044230966692669723418383046553430342414077881220205047163146263881489202771917420037852251001371438046237396775393967040001131739461808756451348805226495609749696681500404053158970577828316146034928980081047468373487400303209173412489667037217799618982657992512271437245354638737778768292157294104947552332100994719240071571479846051771914922853623251041533684453396602254802786550259944111723602200832813808030308610860672967224192798582273598750567650786580368037213641823846446058992435345776819835202652032665994972628541429974088088993015022062564802077764115325266367908369122518792952748669861615762615861825945301024669867237981035332156522058070600593230560132057936831190600004225044688151636684600336387903520506061917673513376983068461591565790985072102345377632358163664580665626588498708227026420340379849212624263681775023373344412790308881914439927451481284852005274464312614632378101013858901844160527860624535222810487029640702860737210935445884031892777442252776073795072805469499191084761515366115341863490284294927327211132977207302611563704027326604486073764727000762424534909322904501110355385932890623417220847995889322206421165999137588943112006854057857519024367930364906295881949748796614367958423776974577732071995156898199137733300940784379428630347586833041351590109986202996572836467002079677136582419365116657769949142417146327630770236101214312566290791018684771981731762301482776364823253128668030383479091982881433454880155977516106094219120749531876003585368205527747565403289690961989342909992687584146668310870269045747480413905188626421244248611313714739081645012996052994848770299100900607292352639287421643087022574205947242744383218127136123491226337048169531891891249993421746736822881074929136784467287921231658128880617473814257806829824840609211970841228334812329632692651410710569136624963032992768526622963491131839870603689057487950591744583977013981305375678773072993530433890305821239865744622980185170009537559902455992421931335613232865675704751979117493898925739812961214441826161487251833154122334601836894597822227818764130430230574349210926765798430349777814747045792573035110411764286651401184539590920423548242695007842517562074024344283075216469966021542360978928104988977590060361628492748156709602191765784829275333674510306742203284171894412374572825392207478374605673883612477105388204425846363403089867213563631260717879384118136363606018238127689185637292378768231591879476214759521425524231566207467069921340556887127916007246175249004609867099103871360218172958297103809542747874144188385078458319237951804644094705178708929931271558670171464944327654323622861584811830326427368697217906108957938113632121714737355290284218076570135056594174474331122880392798603084944092446101221472378666951057915529659685060494079114476101258925981974147970336791427981093252299392832544077540594282079717720067669849243936833689784196557889599090179870909658520727250489726078678743734982371895770209645956416301302512233871560821636283133988952505990257810758966688761692273622933742285980210645992070680300865606485586039849187119004113315315946491457853929859314784048309967434000985685192471253983180514739998703670180831729683618385743876027841923705754632756105504709840478395284727260972535924495485920981518396926081411207186662289580589643143266991569498247059547845412861297338640744234236169768105340116663718547063002086968692300815504619834532523873550831162281570096825568790407161322472732229833188177024817572667922550190701680102413952332181904590444160681004648747957474182663904494922140624213296055227476652139925128744645917853292338288967466576020144954461146460568827148319701956753741399031130976555665149277499352114737897561685144604558275487822401652123800069203090657334234713874229487665218655049392517389717540537082776984633570752998805523950392403224991059343233113237442062191955083374871365859146374881200992581259422378599268720125294171160443592241429487635973751097240031185604331939678601299647435686337449106233946105926002864834640957845143009319038948097719691233277360512290179407224788855504675929882468640360745044808019775318126330493576910616728153690973743903269166194604408742869896569390307229737596308164655778489402792603046655826043747265247943978434183046660853987640325150430283252159672284113171159394566857867160013377170372769653862052046114865267570085832186760445425076281090737556817504737415776070680326726025512548755928613771834522845843132863995974853676587651650136737408860631248179783934210992711942724861579271470190648207072603162275527624280909230675025501175682024504252854180014760710514534043796704901287220220564802352819520935688617355304279623866545152823993228044210583667244198299013995667261605270716698574092146459526916487367819769987513531708825310274977796666212477029214272219280432678430292660618910417946013149115081054335371458868020023607443658528062705745021072660312048290398461867685934052384747238276393937441827133792497095934000134132129973529707194430194067699950177773115430052837455788655102247802305599278847927473221603996169322729067668529804550709544072446512936615276994023338541614419851115493655211427931596834571504123921875143416213239162167310020639636777915110209533355056892982162995105303950158176640294048746307328370760679957453218319535880077087940393765455243338296492498934137003040927710294873431725977273567357887051116075188817194031815405441260631710260912931176651296272186726842827836479592867947791400757200772796539093683904298346980410616412414172639831274209068873156054864168668510177668147977663369458587695379425342586369633324504992641162075745264645013316198492729581658184919571731101926193254313933405123027257857842242343529322741403824253382640638596001929904323834437100169977782267109660158235401712404855003800022473893902818092153946715013193253912068045460660781023714400124483801480534177559288692403194504417793841319178083423839869317293301086785557010004872725661507901017648918151170516327329176749972591157042110765372110888642846817168412638845636315049528233133056943455203307482049570474210028839283381343212496317143637572686784194534497281858438012890952959808037753868852517728381233984490584526280810325229018841964404240827546165349363989530400559049445419155559646849354390629088373057445443485988731014424729038437866287982356702482307588500134728407701612596044661736575939996618396248723574864177389156611317640307924604021985894910317419233453716638140428277342356895206151061824639196542410371676043421942542669182556283010596825032375772067204035264600107444376002797757570448423968011121455547831897397270285429477747141868687967367128799792433672096213334299919365487313743173587913333442592274206771562914853810911702788376182692336658131009161467753448587599630450995190547862379605970966467546659654479174123222290342542189035760422123336130472458887542942707342686900227289350889252811243868160859107493018892484795934615914061720588118671657654240644028143988064239691190316254120219745508891978066120771861955979728116722616028063177984783671812634158134835359874624932751690951169936939678277195660549902006540891841448942479815430688713747370434945450770178834690858840814961220043971778980792239861325759622823693344462651064521632443707669733099997505465519787474415152960433581069786534529371839067639156645241175224650876056610478725383081039807862018584256160842587801857334725623241798345066879942560690462696926507399301977929564365112358022602851390664264289369276534024205530005030229666337780922603199688254263844066337188181169432489325031091711969067845267799166278016012169522430320756921532492263224359758646494072764263480003939344227024377409110791124410747030064463840090348192186655368413189883949827325903352319497120805477889841949404559278553188433892870736575978959342374982432354172356417749405404414532397185026863595996345789709245354148201349151581546817207137704644944607446726445756266763333306073965005540960545308653341147758797111141533576101353609324113530677084660409596601157064434693767131695178968343437662272666037592794721324380701447914217440330729255755353984132012908027416362507173644473325379333672456591085590206930333469041445484396351147382932149353856967510404839368021276037999730072214677603522736225818005008130302256341772612291013766332318509930640615003939824053164996864928348208633599911819586588835106503620792927808412918407347115235223193323297388369172720864282216499672031757808206165697507096330517433498617724443539884090428709906465257915331103875826367009090704334214824690537646406772509354070606184789482002134641115849692030311059975950019447479027452403822837848521079858510021878064312665807990501680726452576071680720055034816112270729085681430457888563906348915218945555872635243053259827645376885554493514845668623876049562074021153620240901305547548863618340331412606751003348650724735801819479604915247590888219652551431681374887218493985088950798297978361218801565265955615411122250080274462149026558457852894181026763119902506411768229715394067642369495365232436116857720035815381121546053421360506219832518959531103195428584427388533564486731755160449538728203523715976527489487894879829785739228339912408307040171757038495761820848263106795805746108996318248646150208274849824033938605685697595890237772781597340399503018112670688776749420937618196060197173114771590879581079180728502708021268521729697597241222024562118816744992073127720796445336878834371030255891313986182535134232112284727299895995868712269449232539866819605653314392953341771425620180396683565650710060615773627329690219995737582975677992438473790869481022474352416764801729520875848835450400307949870280105444032640539230838491386587775820208823691431846461502999121997707297095812060067520267457245013089573365436276763541839986590813448351411110144787593324750535576931836737438030059816018927087400710786822329216329730002124510052813716653024816785455892047889084252357573641523825303269382212848913656231349636504663119747378385775934014054113036698271075573562182524669998725098356744029712425844178369989127852436168022952710849461976308655341504151271673537531487197587604505246336433618603568464422819296842251815496682148979518863044043947475632856012356189094029448387505133077146184668784994874498455190594665361730630081680423298510186924840885868507914518367231066739885307140794450332963901622838676394316903182557287700997447112262210825793084921969467285740630578693702764205185014525762161752099111315350296875419804862264816961808439940006881226433806748547523362642343434132237891466163846231808457618708117417515132704735527025923616829020278810538620194086074462916882379576556560232707554484724349104840154317222095638238908889235414150221242529983678083680189671976435823338686128831722698011439637781789667669622987364224621620436629206582956398885315275326528661048969974853776753681466104292737295188343401848907521932201549069439844987659199492375459181608216465649903243789526415299307720547932051524669100078435736184428928565476541501937601094656973918088978473056855077233627608532330671726526376454148865046441314272882057370567878143620719745365499193265190687885766623119203387937158736406329942965554838738364023302308361408866958797470898162003993404592535486266208514175410408935413642553872503181147575305960390675269027643263535732103613848087794680265340825352861087011987708213646308342130308324305940105530511344389202843481832890003315697817246414308271995305226997898825321515609760968383248022286226987773485063708269302489119499593842072600050713539484830910479733230387377183797084193511124150017927274570082814602754786431357356244831577516422462012055753382891979471322056547331050867758409479141464897111209877211420335211612271544957542651298391355161908726779169159780700093204351160066737291794702548739093316334024871309948560995934882434309385923965845067317152303186874414268053589244239915069727404489806211904834703370610234184144624945510206740242939931112070055503432805650439150531073240671785700281262343096614620563060263997906845402374765471847900842617328568123137964245474941960950844190894844580395448039144234430656992977524681998839585065520700386667664249375443566864888423662507845705558133791018521327167645020289953639546355364000383374220622506818833214213296872396743518918459012186814111939629019166228698268808868329055267019687486538618530417579167745289795247856049102124324731120324985845234674456790498100659474366991967202054504126096396940114222750352462879222961259214396210768789896582207163301987661644114839839747250647446601524658524060206294415245829805590303958804411713488496494973512279365851663276664992642355871436449615688936457504851965970608579021017384471531918365983995745128638278017583981891450763291204832398881948072699587797595857473443688139383991301342025583407135390540951649611008682524050389572289966068087015726300024309769769515431678989690961458379835428233968703822727966408645208932905344481784117977598199919671799396598559388447106255221966521676937553680192696063490972242315800366597696158370745235474789012659822224626175647997968416542872576402608401008120238196933708729378739096032201777655261073577625713694213404914976537004109868698833459221835315064474874500349767731923337641866420398504747631909100683691493378221496237355865331638061613231321929698545895478303899121120219146505468939698134934938683701071791541676350708453458385528014891893529976782280025137387249147470203540071705265022246017770276681351562593026995242536915815329616195638905829732079361760589393931131157042551508189939397861762134830608535557957637305943920797103697938917028597369348408911957721381333428749377738847465569008910661734924152936544470867296691733266441074945170581639926049873042868684460593675531204277452664262717026322771435152723305190615757647903349894596063314031412714823409609964133691775233909599562930228138001972425280961353347024650023419979697121133085237535807481317452235924106994892529480868864103685437953306955188499348812114088222822328539023677838903986525109118188520011743707176565107782416047758381951103049809559491028298053387427487908275169914424584030605445728214535461764886864057355871319398825464262637785597312102277807708267054486028280986745214929143233259646675212316202212455679785981442984189952878088101965839970835202145077330668319550643825436528905069880088984784643199524045900266517768488893937838698166143999825741038119368245534975262007242575783671891136125783915900170088215298886487304322224500380758897424355555692194637605782581092811099268742143944272476760219078225074866351225739962397315161787413564911134977885699834715056719269335856228510472822847363266581941058186331350232379751029058375662938576204342140821946857037962148889479286953919836469539920024733450832164920749322026355397306889835576919000618940666702556415549876522937175347071441672111015096127384430972578320838642304667810130773006473147190342583254110181126960085800882222581468798384740039920633349055754286829508824611659311944135330337073329092405728495582769013937001595301367088181560109988847464090225287638161695246456659822400443448469306121554376075688502375971354581150051580935616651395023101157165308565453445107060301865323954027495605225885150596484690986865025642229097933948594269652622249640334458150612032819747547842053639579600785546125723401575944816817435580690712492584455046957019264212589866681308644630909451664288250730689038602372749550364213571120104304739471604696288303445432246392375843186407422453674271081721221738760481537240337716851242365272082111691833984117223696966679667781244215079779144040108071892460177337800233659726591786884834495415681576551175191433590209643835912659242450118130903498814213441919274244114757285543612650221710463298048284836631763015178718888573002717528123818379574707597272932614365028151002814270693108713192246102427889213966311669670176727903600968659514097141323920174106824637064777844481557450611029620267680893816731371284950386873995931749610366393370476461779584231056635632709718996892783459950749731944049328147036736929663382482814713274561576660944069649102276032584654380566277140684909390364557044660136922418840471970601805233721163133307985931343198184575685861182192799518604006871121945531836276906107010070672308396565344260418560888655493227158902861540874634799175541961285133943773618552763152225198048114832741559088280284895605773237798101397248218389882877182242051478758606805207194381671750402307119280457589334469942337660883514099638184681826777830160796918112798867442207580002847553486373253660680471940848713432279442723127163284656167433208002244595827811571391711236515104404623906422169774994098963267324789519177480662315379758070099405254036420258484081843959356837946181198215292923724215079028635744637748852579209928159048224157506156178133815833048655713731381527189877287963938887806790276131242402769399411222495794845209706754204859935913304130153196206357174907790674552912654527517692715129706971773025505439668563578447350545344164753097287483253481477809035690175398410890675309973826335304831724078620614225392487347374114189695552654269361274705110932996500978572963033531637542987547327215810999107431621773358460488745772167142114555595582279950599060776873085817516574305651231819520972274998231689926830586821446204447353025953227753678646945220072714804747194498890355480574613921466776582729265299203852219302961779208112677229444908354739982529733577200042291399755060726363646960305320423632681194529424903996819386149558266798863739084239385737960901579021705387860528220593618191064234176339779388509504667035717204422781034433870802796224815097570343476030098066472026490661022926625969718033094683650462806417524200562484588350640360300780719486832996483268388864385997892957242059189913402139626514665152006591041810851278989400677392556424540894655664203312849419960530640222769630989002261778592318054100536691765499504590452298636254175610161800593584589625518539042707450720987562410421565133700641386429541750161572864535457250904168041905493806528487734343295473275822736573350346531676161858362487094926335241235967068384203196008579373092173587300047897956121317060075496558113025479233449472114189455241776541887849672990557044270587298690795939775327197956440853106603050685395495530580310605480736709217152609826901406212675018483958131960579782837725889895403186660358733439234422239694401550674898073575582025526196107043831415905367990138661564974790530010717562382873160768115429933611461870326269627819615046899909428898668572653065312517176382057819712779348072920977210226594236856604368574556359078440116852860282746519998598682272175587109850527040007940982923113510344759944063403849589917527285106702284773643028386886435232860517582089384317089655539595672567714566317964630184850753054413759750296658206321203817746146646767840648721687958092161876481238723618569448179464432293603736930076597146549845183319673037677671092942288018441365324187001109071582098038072608819466021904300395659031987281971854170783484452798970199169800554265607557387159651832964674007318527691704046138006681983504567604828559533597194781847044885763452346615527246117908564618003032425675539807091588152671941521927728644138780159564689357988294013370563443359841107519385010310899828948527470535502223309686510911840995597778512196397858838842971440649071274187260676240112977462636309974418184920468051235082620483382250975393203702690845664980645648186490550969901702946138853758731142126690826463357039009029236206606439792647136301621120767404462253107868967079243028343224588921517449794320845323963952360323927310558367401838237707636411938876471636524226752624657255292947870217172544612157981462593318125023661220195564977557165564398833587344526146593362040392158379111519885218259442407630110746577232900766314251046447040927471674243765593436203563784120858436405117148111190512878363007820378789371863010021801131534099186566149007099847525050390124750423594748111166538684305896337681961649378512257742880624681873138901506600295822675499535884887633062531114120421006554638304992853186281284855446177063522826539715486811243585893417292978643929416570948379855060187450383590022777134535866112355456879471566409554213620414043341246061287046119034168409556989170178041799957126461899488443807943510353450576006691320126958568021167520991041409391196314923067259019665943877731901416802758588659489992765877661492468453096294954504532375735132129730337489225224754450245141808373930245165568578879129780454320300428678109802372533725433611260333399232205109817205255147700052910648615249503961330431726921612749027175925014914522248849953472365061599781579719171674746811906161772104238359887946158334941662463100701077549654490787903052588536766939618775520821662685129667617266296033188976996852809443399840083871140215011031942449836199902218293109166419194320041631447465910462139895778150057302396014391142734925244774546285486399686628880728589688391928819917192061425167219452167525067494543029227140479072548367566440646159262457585995104509202615571889156307312422290038363166200249474935773370441549241918529280676280545084328501769253137775713145642378827553335949781155421634042778500502406303713865825740073383530857796369925706827907263631516877002606671340357386569162970648383785071532905648825705051410017239241870974381917584761938419793351217764719243892626855411808117437427884440404074807102598044082227623690343057417902187524948092050404504489768898500621202905309624375340540590013408612923368119917653247760276473096368702913455809159802025024981240492253508268576476887907906396176728380641051002522483122793310574786540940991756170712513170308586396702829251984293195109178921381019012493292070400717016969545295500370770816813374433539179313133298086087224691624224418973188213890232169003616827679601032549545676910744753031716205946889927935111524436249622906632024065027035114578265286546821159267497478061621903217883064616067230593636366971298004065375778790087566434666845331904662326936931805278991557032818315575501754849632437276865186577082184451737183883499732769500077432626306968896540764619410487287955282010185205829592690018399548089636460146049987119604092287637081611764382853511752258907320124246129108308388427642116961080573187395079157463934037553367571930274072808080668628368403923077310953247809222533328298299418741950018353521931974748311916869555513972163154740529867161900987816446295072197540235000342502183898988467782008849961405420345295478658463389579236659508589454781487913288459423635270277114223593176121245504591864011503827016591855134352683504409067426120095180403052561642421110220505280206049816603722667724911578759625040856988924178565316269897327157089077650194602279092036574092042388255779060821995596243723145388921500514170714098742939509615094491196072823348451535935634260447566780892116831757336938702701441278146741893370145490765943175039580746401923396268198856129981832657295679383869469603610731601337364623441080417712345040236709677826384121105534477510144775165707305061046361097969631695344068134421904382143922505826660666719327660795239722011077937836751390283369990433670770626094426097107044180406123317010232383943205335868883090641703880601180195590037205746120505487266347354198533299521974877874463754094271910376491849728200523542731883661077058552550624587095711482029524935659650227091344914505882136411750388165724805053168875012549269194689319182602501052337239061318321327295478065164121824184988660895703775287150071024772023908115431712857672825844239244915918094885763704267884717683950389499083364637564836791954329019893134019265792836352247827157802808875161311073880126737711483066285040134457997232707206529010090695780950733890139866296637394835340209398249104810984862579636711857630242135295544039546494516293168652636399182286104729377815846036932920757542026919568950291856177208695051486258803327125114171935756695820800421158055237364630191075161374841388649612574207073078832798033637404153573790933433949456525396724134524666047986370622549193073260843518449026883573378030163052467984634017953564692483460383380763406759173959829784531670248319395711388876793246863044217579875183041446249641374422597102588648493297271482998612911989988165403658754866785765884404674914183539411632137361814255114792789306970896216433326211575615922305066635875149932481775975040331726803317973853261146491911492034638912200040294539589828523689657958564153631288413055152562814541300397044051268582912692201513844646792851599107037393471797160255341593444252278182848494901734154065442446123523608915637989135046395889000341831022298070310815506645322909377294624010117808357882962282672005819322622943745949380909198356660544519038666428760872747921449424231969657657412858959701796129884078141322464583356638209821278620254083653753491477417413620632868880797681127978987959822435762194749987444878553665554377425905949953286260183260944566741948154731061028866792656626401147578429855768554242126346911450164235639053389689179843171307070497950621331279983357610393310660487989658129647282726594901345464805687817777634085342522893946127196141961338599424539235269250612888738434009426554993332735199224089082815037533699508307788671613132384753988692275378151220391564410371990820713986142226875871903505130737750091977888438945617665589079415773882541126062821022914585472596978048343435256451647202979205714431926431768217087733186941780035842024354526140408032513192858118011857380940704896421501263396233792324131886709578835099289646093235110319279291329571721743887758477772855246432415766889171077535831656087755498745997624916239201099323260909310118361772271153153261198478254660677360102704284518313835994268371192893065824316031111571755569002409394633307840933200781654327079933636491013704076009813720760609031043070431753921820441389331178737884024239359189317075097659004774847586010255813890202024935383750202055275184639226490945854151639475054315287008635674682715318435396569871881460097514890781659130080082046261708726914060005297210259737064481248681000212689079090704258697653657942995733376608492170367785183366562177842375478247339543396729829512996439929950898626527018436322987427855121353373260396651370788795158717148977441975888447370628609771327273300622053578918080975347018033295778670401044980731615975357643054316284131979541009930699826831554285105292652078735976872517997200070853499156117692221834926366335008358859082047919841536713954510822385645338750569750268481573486980474630946377610464545401419862479004001607131808922322467794262129329455717645476579441162435965198071168471804969941213203105772676571138177815438926912851643196386978847745834969399559217758698566348534735654313718995262100855719826439589393266294645182934964835221112777671909757676400599022684396738495250559957126551509234437507095367867610237629165131575323676478547378530763051423912013680450266211673122834582062821694417018348161950835120536968627546265208981501609719724212192951856816679646840235190939330453881999462843697904059888684255260598405153808497212649106877770357396864869082083661471405671620037745084985695936381659202816813448416901437424633367986384539833748024556378299615719609874563697421407608109734268524130663039575519898065374584181009842544620978223478567582699554932374056891059095482463042101374557800090670707892589414572718840271227069070580896249516985087341286391083940354347025661742335804635426354007576868926333980217766001040388467231797956722225456663260630751907592146357462652792105435793686277573324434624106350633444298538347890489962556322575254998084499765798699116973720709283921196592982253090499702326278168605900166169963062092799779640872272596095525236937500517550583475937324336919592337415106298838042947013955612943496574801807552133993839856173730518443932453931076040660361204072477476878630841650641417493370852386516885509847553664581398765029983478469048260414908242595900337327316899795971687757808742258929413981618949061296070848362931479220379815539150049909295538409214886138833913379911693034411775382876063188920247344241280413919414775894896250229912489318216112048519828217204694070020172325422956598235301836008387582522836746971117170078831202567743666408610490266299005140620085812628456233722718686926189537205388999635455020694637210424162062782005638325748546776170654045566256582486324642028235044382264309838731557384397989557683510595853899496951289858033704046328422357922874272707832769287131768356017329292250549063351370171773721322444322339466609761734310371081920896027245040472586319371467912666314763924176359726640842107515054575110798200151312576562575477074006140611225829147160209051103695900893790676506312087137319232804724555002977215303764513242702038670695628197583964069732888343863140007278088831430101930742283934618180482635306914263672934380347815611184854211100827785703643539353574710514842893921354150945917654741988904327112486465689269752092350966532816343421927501270898191316761333861465048770394658958657190371018309889874923922936318172861111272490501775084102951845713471256559753652359786609957422072169318868363182540946641614705541244512423280711230913878759451629738420084448415263666453876593338280655682662166983711746852189868347454508566250158120290923415098290596312465409673842769899627672619003079879438306114397642096671108110552410520243513816343594410893232961703426368013770262728879781089592062672638556140408696721898604434963135805873396510869837966052254332413424742611152375242712709819833499705704174419792679987478434236727705243031026678806521451966280665995602704879902652888707819685462008236549426006976597436176812846386750553305447273762072936158294530793867092301276577309569986545047054136348041951234173543476456787224407965728574601028268879803127949102177073718614130769742601568787493778597039011791642611031108729916597659631753511894432583925477269574577497529140852023977873144055321847129904252204011281856339026155075228007521648649869323925250582478565851722106767260880118950142866665203041919081332103391188341017697676843655498125143893927747561902092402307646264394307029305510477130909711738294594224041417422658382527119444769954580749028677864118571159851097604593934537634262641097862688782874418082189370056943621500284552206526604422045676087678781320244741772235705976563323112487977556345927755399221909958796073390281308823784695164659837782034450311156756736992613442105694974156502923320772527945568912190740582312529461356150503282509067324283291549952738651384433282369885500628249776488752828846686283442756117748984005199518202382603529239322392846239326421897240796291739549107353838020074062114525200347966363781803922077747795271313910037576608100191091434054290212597952696657013109712758913411312561918338075759404857837421679981057544320933525498017155966957801028849479455030564375004491621883002738274430853363473362697578279133269419473008129182344698550862484975159088549528522692863490283611366911887960812707345044868817629654986286665553322484207784088264159759948556430393026031705676130052178833796029156935998342271989018024973349611183381863677341269100244528417314687656590472958338119886432147436948742232433303605568120640149547183788816372248262113113219879999944854105060053425022759291486572510574235895619070252764989253603898575692078466482555426172365159816496069539208749700789049941772088304304775881766588147225251951782979378548815479498674070830284267390556221739309327710381133812577897883734093291666157636790829468168442219354701516818935458049932014019935417501943302427312807587203593179216979409520228604964352962668595576222191192367962339149101212492960306161139584188412902527642042839608596961332295212937842118729429858810582683745183782876094434584250926764246867925525963644855254616019018527985217911782385622023345909112113692189112784052384671493582604200270400583877174598332663647484436833086218250634817245630303327449087931686095055820483140743192965862143899992138136247358305095430405884041806432387862674502854177823033259054288497335071763678465850557869321436104618958552802937294245231539418695506946767850307303827710966796881605120262942944581450646127210600165586977984974132519401738873111870280479657015690667703860126785130831925734222837610607143021372882330592705963141155889192376012866301654217438738535858696073004256518101650766934162912023882076129228511629098894932891176742361429568528772994547328235026522849106085271000102883439112547870956525651334918317015467029056297167923004034672803478879858318859260100268348751898411852893240379534596946294153886211115824575592291891657958506537951108758531526274377558271854880036483141984275290481854023053789072574781282928105126589156913462393265520043545664846491955885131677231308970914496571719465579560048691014396548386145353757416935889635165380520321853823878300352125265440999321160572247272195638082767788963942057300799116860487691174417858634840886207152274803795233314294802940882048064670057919969381899581895583276758265372696753180293921230221285306785284538140337542110366219931164105611799461418465415347303310559471494816565457209655784447883372595638476584740017061058013895689815158034037840191543142031495106363522372843776836956303109652256728176103085800932404529671025611624684317302485694184602058816008145030147118573139521807152242742134687755703401715412561449195774563451643403862634128001728095366215209118910848879077238170218347977831568885006885579842422666902772153050738944634138037677774585901096842337542700322404872188837844200052333741758239787822331683240708688350825902846800555316341175561735815911866970271278984589317173416424665558734583308252185810886384801986608459386088021521696312842899176611237839595439226871286773720257051918796497092783051639508583898629479766885155493864184337996885609544516025352590252847815431216053095617608197015668975138375913511594066010564038635414538208966623158026812642221251936272672475559944224638001718728458778452813574453204091653363777428486791281258713025572934902517415336964209607366785636149204281099205142038898844673793401495384998289880176598274742815378390998314242108787409187418400586356377039841448702393394936721729179331188504124690951138415042924730207308636440761407170296025531424445445707298526727887554602725226177368824711066796771771528178355309717134999588519556606260205545492415632107340144839797435431709636503152628219107516955097830796813337899270612492051782506332832175280770441696110183887168049530267552741970178778450793294513383779833743667423640021492794005576917241236052290015899955759244796878549165493117950266446939777480774893774073635490421395533272168267980842012926011486179717199882029329843981094257887499129853206970960446726011407454646167352282059569314046508724851457328390045479246053159407180082364984256345899277518771934091157069490834384853781633988607855324112328996647752101828555635186638122399679934576473672028041865211671360284935405945238845174268038442209709674545033237279690070134368716386960410857535942377233457415563753817424622216631266696967336263165151905621062507867863839667032262495563352198402874541119903340180045978065350037926825255263901361356208720956866877666841770631431363699179809512227947348401161020194799540722539593499002362063619490816832969923556960420470017920826334577006436470537191745606468659505840227607155668231185744848964904889938456209899617702959201835487008149868095556821035152947716933165941328254144533959765612975088471372460163362226255046322404168965805194269995412593468141321600481031635446150720104656935219534935708299307233905445585861633943166781123611105939278054070037900591979327255436877266131728869027480074657692283592434333883852014563915024188906160156102480206389759386867047070000255502682207371648024293651936086012233092685895362899093034716900636922022862752395765512320378385618987868494372370389425628734844057860636995099336280372448100556900790533355276566414864819663036029031013758378276675955948901866531327563582663747415683121093751517368655958295568270058140207805847955372771417671239068060240509236297332913861178809558434917298653862347359418047956126710999745565773259736649411333972208973483964774115584253674032489086188600561655078550936852882356005791321313335378928222870423049685499839506214686901428448329781201083660859558638071449010852947045210824352618157930757798701687226635436822138000807009721739174513304266026213985721442122701912784652050217183029122241494609269296696179176548421754114583819135094018426790919628795949530722860686339558181012776856430560229916494347111424520428087244384673853015722750148111048307840852575034367171263498728566911063629420194851524031324342663620889464580157105571903990208140236812387722566522564339482304798251361055271498660680864028443236873673455497693362993347169022179215072109845055629810629410199349693904545734183604041856529145474562878576633033872462787521201442448510547635132012120195588226318758659884370940611335422716599744257080295355223291936164587517050402168743877988314878521681489069504919362697385249740373482587970846000985509194813912040693214251861403819254168048736303067267895095933469958055476516155366435668453582498491231314553844350563102918775415793327552095330920859372894112902595109600633983759057067881579058867964624828859629020313910075653365743028978416880110978513064060729570908043053495088969174036521874307495496562018532382711801282862186524831617151040472868657515111364142123415650888969846757181649092588381373813279023462768715939016380620611918022931768289809356950098860487717974833748445239910151565033135000094161518664430568287225718102425609789215126126291344295651275058472079166725088311560554659778344507357661364124100345360732021028495003888647162305326694655967549270635875564277060803551275798120871339202170653994117868983653222578033036013928375471525374543510158751646521796640089279538495857984380177797093111658235298066861930929941907076332426787467250835953225819324882025307961060133653074134028191642296707062044783216459721423742390822843894847569731704257601046764080154796723904559760388965154063594073795259024738125267911533424842993129984233109320438665224101635635636969034228246418348625325625834433568480104524744104670112331398103209374296625063303899341864177043815318546392575992263621116866224287866699272895074078655945199242871206691145631205094147840393581160271702382535840076984931574681993623046174728559780465887281769653090955687416086351500943093086905714553907852947603856690324594918768082741718557763243831339163228453806441660664198673828435557501838430238232046747950850716853654996894672616479465305462111895610542961654666996592075061707978879260954173402122876273758821996084912137547462699533820488511590695939890111955669851245964218009003813250425965549795865444638917511902227109188681333027497063661606977059995280308808282295401685392767068644729959451554601086889136856601343555488310607962658645917634473973520404125615585314291531583171153448151755152597077164806627760470379816924705644352147881764600210901188591548009532604815735567979726184619420824921630870850249556365303075489214549726776231624206366627379192050150744611401003635622246088489450543164882799630922835369063000761846938063962253756121723314101128064736751382956777928318825558618458322683732876597630285700291426667836002341888349046627408923227359107450960227756539362486195480017831031443445339300226059076353755210638816052137576591699776912875167128775515126377898063485547227735695785352854054390643267750448038984678952473777829226257746015215314231764622459915240306830541259342007807118583487132857021416212051317110236149752704933077398152953135315346479139541250064115551669461326498996503725307537826701159695410150831921051090601575140754158838567007086362712359180477737868767525399981201463189428698531437251721819936437472449156685169778173038553878644931997156071464610021143128036666587203221721140566518670274588534233277914134758121635897995150664687032341458847455217557314590981466631454316384233200660658685829473243360190187204599440058636390253293818341149095464193200098065015044035616679220017865678260822267709908067823482562882255984153413133547250336925146902554026535609390840204073913598319086043531474545939194567499975784462653936107233207518937724517097290488086246988212557694820475395776426399635508347675435308192135779146022473934457696784429359928199238781856804698366139255011505193301086964811861581673920959927314995729655280018360042250213472201737406619181875977769187284329538704465694194491514825044490932175775150993311840773445733000493670243593741121479263773419705662365141159740050286754305564035273669366644104901884843345431579136259621391383817459973989887387310116850725548287627284807022134243302131893645553727892952355825937815241723777694216490795482463765787262966197866207786671626757995078886756926979779683091470800158637717786294277356785352570965679658147653639946022319288693916147655896479378443703485210476889763003937700535518232343855537755228290676269253876788072433597916742146388463915729719368038355522181331589278715766021463160819368567870727624944922422554385075319235511487254910409094950545669300241284552132079732201700156260904972205193138675417498580469050475609660394382953573917641261802491890366850237473942631719354160682628528133439547906819575612820768164345321934940217129865223450965882116879256549397044232355806101230614246065179592000440838268179676744640736325941836460652675833173881198970356314302840382115524998156254076243939945578171873881598580649949359634710866059743285460021587157780643371588865511374220419837194765580308749187124565074743724720520185238300047789088475728663262438347123628330074173953889897206655514279874692368138867577362596347244158300796618786824466065564747144727031692481870483573422894537150942563106335016231101005725518180018778056481493105753108400386817945905565248635387763634576440782581029473361636801475854851325435215017771321808454648545246276807323193132771216164406481640207153979243376154799454787574384638885558396536088714968619800924892132413789745177318867880018261631752764062822946132499811756160955876365024955698952939782867410306837260457614251624060058081723807305437105035602209931200063313659565575248956943631889151126107666211161115606663119020583737625041405639876902596262020104007731284800007025726641272594045869792641299856402884388294253842021442231071273064511465653609019571098256246154853195639472651291427276760534859120298979199183071513230624752161329759263697208198618154332104588358190663945684519161058929778034566848605041627830424988675551374405592227123179416752005009019620185307452314048109186792407356144882344047791939485342465187224455574193909686701703567686807943688242938817840513704852540280412810784992750044905290705991969118123787282889663521183691976447788388094698110958401086968821830013568829622532134057921324499229110167909718703284345200042871910118292156274482881613809816139240527656811824485926136061563004591958343039556014048327740339329733433886202765468810753876310303593497496618449771683155603870461460186519533817259136151938634167618908697060593807659308666487042277768401932438511063080114122157063795421662048032800772220049629530639137922638969349303425932010869332200632340830571929311872493468187697526624462292968444822999583907395524073693673324410688524748862414026466942285613687026454624380247087443723721972291337524584936694258893557163079035285771347213953304842376987748086443020614513600699503610542757526258341607143285715286924113601001782346058793482162342119599612969607743245030097858519080694620500030930388158995645424193606993564088065755186773094608562647638116050827832271319673753739615668870219207727804614483205752281510661175436567772180692945531980427822926045086639673148759159505584179442385914456299224359151621219378912592203440649191887172831685372057047719419032220306174027271361210563641591084232592152614738915417972500560318983783725427282296872111279401320323344141315709116012679314288818026172406644265062327031089425617292012756586751470366436673540286016502068724488932475359895140901255177485959801548258594378117969641141708647168222816452824699694432338857488580578908536844596939254525787843631020850666576897716704336887492098407820477954002130291778788708026679503750970363550636775478171466242483759722419010796583337689954824706001853854676394757094688361514209265219084563375754640801018218213404222908968840953902573626220385987409076869318355030027061089100304302550597688216569302147902838353978785893962970692906184750867332122990065939129176654338002584179324708415507790637764757677107441530884376082828149052895500409937463958410030421735935079180994665862986245949712837550138569865475296743776766529577073556445349038726660285776056842797778076286771060701303837452717335947360547111803208538743842907310919568998792096084264294155008880229358467787473750780266044411905372607181324789606906604622787799354986421312560198872310717878383360980096434928624753969828683333136730191338530064657881007960871723478570012914899748935792997355930801986662891729369517543150637742298758123308096753445051283721099161979381681618176670038752713552626194583221252022593197020364368870840233669003670974083943425696223361319063891546720896803013286700630021198187573130014999880192193990800073697051402957060239713774232839188540506995053875013641205583086493947545744425554416538167187709301452712661976189940706523513669356787392889208288469539831454490087365982653288630311505822386761427006838580587307341285709452778350882983230463957869114074305444928464944072633699517325289461102337919236947430388622663783568592045768158405461120210010800291629220652603975413912799619732554186018912840420175087149346023467545986006047245609030916361255317989821720118669935916810138659307846733029272110697691634335644365177738407031969317718347701170151617028967300237524526261746257372698817725415599307445694933676398632677412140475738490766575696127090991906796697372805802702844117548145729266086034047754049635784785326056804094686489501244591116076688107595723761240834647130340203871304793267428582632906474157183033084996540223368892391522257544952207662599750537178787802845711415874722790012570855037825020419643587043202871142910561205202630983308426374396242829272789876572503319984467862467227791283753127755189913132313624855857061597705817208572000058150992365811665992143473762751971189615101442205038865626922792303930335409799968001001515581250122199172619531689246416775152167461340806334991000462982773286219006779879686681687114400674673581579398789479043417178566525841293907516945211342998508397743303279208644739773891941724260971644850903720586938549209580482282708853431116364761195699188869007004254932723859748039087251502590365547343255760572121982115863491393898884220021117078962016978769093152128732735357469595601644224437028449743558504183959271276930736395882340696320338245935369733826933517043813309186307779306468749592604416810913447389041626947745369569854582218134754936176013648777690698369256607659091844879777627945515212266924250398898262184153946527608491930648094220462885206925548395103851031101027403635612082302217486559004242272046579465706195707160123008750659545545961856170161517236899611157049224069526431216422082149586628820489227457695822182458362583195415137280715119824661145891009151288291996087973406538912155980782378084074639758686649568714373977290807545505965989698303611757063666476689246359488526593607629880664055759521317454386475335937197856282970501910434005352216408937364590859309349380194636097017832977408982982228405625443329028922499420283865967411099002140983676072705481135909007105408217180640320899646769668295219219139907443765835204971526300514523357721663693915434359504361279369860446838650934425048547849787598594858060075341268938923775313595819238651046791617992630733434630853437590201219232232668726235138312480435765886993609319854243872044933849689821178780208551377359842906199917351151499193707611710720680001203415836286501146434566310629692661992622914191585035327586088230513885889936484803069697827629758001829870226881955258069929268176775930034569332207369701971727180002736596216090555321849263557283402362331513502422309712471874858045871946517518414714738948378330134007625194920424444088149437849192145016373262936652289477967584417641755946786806966622141660468285047847902296895033885563566589162588235005830716902946974577509935387001478907779271955749121395486381811875050686686762830861694128927482808634090980775079592420474347181913812506483201709743929455189127947994518614876226341956994641886565022723627545537445035574872347461018060710829596523068521750750104174562148653647792300689854898825197728850469571499376014917122931813257309508186847730350706734384987229251898257424976249512746977448532669455284131839318805119828538101263433786425703342414679390263276973517866561252533592366696331291125098132602666301012577720852593918858066846408876758555135506524215181555544521920581574232669969473719470946086255367822812065391958799464954068217883851164002369735161245863279379264290049724460490463166154990856145777961595863952864242323911137963825224569373435143295173132233141566557590515507327729643937014523045383035549313550597944985692299037560238439676187580119904432356544144038448934083453158516217809272010410259523188801028421488607876115882162762209419026675439253901239150898284593538660512696945176544143074830400966650750000073970118574649727695565783746481191391573094761831456394983283250888651689424213756068989262570695460322345359278897793312856108925968196679316490817588670277426084819079914435024308288005017284435642435612713231110403008827701801868977227827783739424724502470297821638994365582735914502533925685688198431670115140802205704423351785412334859633074565669860036360930671298278720931324058552371070310568131816499321099316291463095792853550959548054435657079110226580829806227113388323456729016089945202620708566258162029722870846489459473364936820715070209095612088849609770213652225290784672732655585388771290267576332894287410203606979513956744746042729374556180778054902423422617943575852901382129038065184738410300747892530686695656062400537763236201663938782606260298247877455610462313935750328754090294020049531966633555395267035114097956321095271444888228255113129844118166174695948877837981965141966726329305068104566805531759075847573740555453647411110423487762302987935525337915708013733438417034948236218401555611844514181729898048156385607974985786896014267311700178303122014275126376359602299626331402158686847017769407706628136488334134068004910745846801339155233650334600237786435947442917702108738629497054019512929999148721864484984121652875961919459835537858757076325590948709204933295074513120069060940823875316661850864594131215392555908157030372648621532412813736333143864123123943357370220259849740108470153074207423044963265384678665532363417407950637384743864892244009835960883180117603957818435071226368083625950842862386432075436804373929812644582141747618921175957155432281869998204256637836630189859966110693377604906228697210769697250801041230808951681917286529471144894085295565955589673014863590961993326689906649014307612770925849599287416048967593914841988851524072396761272782803397752057741634706466306030621064421705991279602680775978352128335519898155856865173817804970654458062413785575845842777133356136673077660236631916120730867377844592376792846281145232947511589045628075240000642006277687425570964357847836335906980742345222169524688396998271838685694998648518063953393205800355325049612930387188685660907406687628808800172900141715010928197343411281405488455714327273877966007075693964833110651616862519354720398414441874261504034930191028456190252635120693054529955186788692806038342682667949111537349302000318657706919041573143187226725651813449281053587675211299878649637034284432143698274343385655429225386725293178422407395586835738060456645324911434161074042697792663371968668364525498718288459467923612568319796313603217295352351588199654816320084961023104094530065356166757192267360831864472048537660011978196547199261887920464551969832030935667673106143564718562788093370803809189254082830835904043794868041969833077994851177853145542528359354063073748849367919839835880944284187553213299126338264715245139437448505717262684845095415317932187839728959353271369864267942436824598782609305379974933063195156873096844875643002819459848413612090697099101972669883587639198373099368766902940447724995374026368329090503371288465628550914209733015238042760190307255991840351351126264621871173112160561380466172995919797819549006123444190400480304014592491546475747759096264124164539187236049552890635970800399252033212238903731614782995328324823304379355654806404261455135247294775636538483179455350528613466578425356998589789994010054733530537456798546448203320758992021093494304158612819181074813312405463503962445665929794562941547892385298420218893948691737743006796782666513432098486809486010304402855916018413769850292862679585219622645825088696624879007463212873935462057138957097539017786826839065487422000920848152105283759109198578069462614304206916872961338687081982606500194920799256522422332062875823251901942327821483067950414333124191123405983354593126455044361048025688478667599845946676659249182514592689800618413740730371382601737187437535087915251091730959435127275054786200490556154911268901232397547533593876964592861119206780194538015751160124144448837333821056608142192056828992349487351812452742609091071600067540411516162425845566927320540690583205095918122186789815970865838420159863936472760125273578504794937683208278483133340019664160531177347420093365238607075655266473692442168412575546921153169498990682607976886564978174285430085304676414803280523861530220896361902144901250991224712141860105793806055362584208617060244481150449719813174327182908533059053438886517721011051137184746700637821837440018304888151537660658743328456545760365496952585738589896800506331420988040409535321737390203341412902414921337225878088265796696123287633862123748968167749831767635345207150549266203398755048907047336970535734653458094528661192810325256755989077771886933207982117841637582777790329890825062066871909141055395688927373529028084282045243905348978393275366605891644695724315582878249076368794467059048797764256770833637455190583487201802675607418506478605595270624087008374106640398284206229400765090467325405209616540538521545755148951265425630936998657553052508669624292388988336627609640772868758759349810241921497415134911489554342070336647215746274109992816632474535831518731316924191704228334323516237895301850542711410793293041329688633033360873253983584257451268252826894035483387561817255551873208959414878079224198227968567054620386645630524963722606732455195406125880296019245405506822301936321559115821645794862488703232761348786888415476047127954877227477800533430596235744979349539774787236765268114312110289245215513844343172141159381074950205461037672759323987455491252135319832772131558841624380778347262301146901221987918901207614942020578466121904497304347288541434121564209947449501425385986982406987096576717690141332336381006487028052674708818556703554100997276567289728484837334930233125495052472766425160298731662618060427644945828966710029697123420711870052307884871929768586297879830653508118062898408248866112520942757867388035257505096909320516706138029203662503988221594071677165951077595302668378578726491455232919824430386954635552066280043216353097692625887499061709879327175800357985626910686252912027758620561400335754914674346172829377737772937382079849367462310818020091475193596168347292828586910247810197766027163702179002173676005440944513042719094648188439381170208598783133106606375588900990451925674470370592669285150901302771598997670405590252529112486052799294158347858761098982607554571867566272253375775701797283339930353202839301650131843942296582128955637816642530520721014145345904586711440641788100457175455510981405082737385526996118758380483638758619849117004660688957245446151097539758180429916139223485452827683648121442885107997079507915427701659217667004481726871780380302514451794510864883766065274068100565824459211325916013271445553744409800281174152102790898067501238509148004365177348834631773912053746741552624794037679943515096976940158780902108477616330253425458966507564673527100285187186422172571529107157946373141565348136710459557479801869485784955035033853671008229606571895071182285557449009320044968376236470814428868803808164941067230538399045597410852114973432342758722205267803453181148882620648759434528611793749915824189044158390926390926102934471877505346551315443814924399645134344800388500399433191261082131098628752596397919883253341673671798977019645029943304151051388053280391396743571947294527560396201560049016438965718745565353192573327535587958081337145146687963774322281853207555560078188712579040009297225140998110401173464074549527348816938347237132734463096477569868986329549963925199573961614928672765629409071204152328604360360822287678278362463849637545006218428677688216602714580611014877235778875949066042435912892648729616741413452616349286986821866918079427171614169347239384241868051442670786079924984725323395024004538778892422755533629427497796391232718658897817884033352216131765242571546386030130320736923954952751888577544514840762723363511237244351146037527287060219158940042674340845526853727776444823413489498987610224800998670928482333259677172592917422738656333428140449909816068584596344194310419301356656669134149461926620953456150350415061965085313571951312528824607036715336168205691941072729407547904255719977426446549094530396040139956878793338765364348646071086173687286953751165438889252093171556841206596662144082077888188075241342785351500374440089206233188932422922081859776441392221711232206018055725578290462519482084309721996804599854113154480336630546820078262464432385755896263621893946537617379419428981995651492587923035897626644126739549925125608465358648136841363318374097059170329739666224641806091884983414327154674079214622391827761932740727861166360130880959949819758097222003358748660662395585036905926268913302227495009407845753865533979941857391630392438599873856058026409402158704297630184163637764627137068369589668866692692075299150005031804777304036871234596627491421853739038038255922165785529569229954659352604244379425414018519821433720467406399008292137210027954603035543551769580057476715251603505606142026865454783636401151555890091397554278354285726976448333283151837822850306666088392884651317132050234273620419021757249844489580295035993491797804759889691796455778328392168226290646047882345338533089893953900608070727493688898403588472041311289205802508064007930757945136246813240696532025972506477361557870815137638881275225217634156218837905916912219393725367518344804931858003490741432433297224853307569170966650688895412387358403417949205075405586189078387332816758107279497321661700222465451234220330550368758287855279883517701021855375513480316693358085953052356826857092368048537654477117175735624044350030111976957423743102382358646488521124021023463879429966440904652312193739614002092212377851535747357132010920777745993204081318837679681377060789009377710968095532545604305000465627722228225765713478338673070021870966274144236600188578625756371855279447841920277169974921089512659363380084822969105660841501310539152632305531881105656779211484511633949052717657792384250084154853479085086330043537018758097399290325585845721474797649625168881390993356612085765165984135340623469276395446011047745175821055851667204105587817671648165001630724651528107190756072276150431025847499410964152229868807797881430748230834011168609375441845894327483642067405581954219349152841979621673273917480878867305739893457840032580024242686230188420132780356636061000909939662286325225637297217234306462776870252563028094738990074199874072641063411746927678217129162287573103295570531990008205779712978517282316240619273113002247975795613783826759975655882530560294009488035270661483093856460815321489098075637499386902872303423229660898607196372852314375405765784058814170970372261803097659418714727361111978411270761153610646498270486812453130137776866445064437817414875736634837123340111732299121053831757197146094140123580874102211238262572829427496209880549484852319527535715384099078571879563434248816890067289386473313262535174936077241985322654422494537761821626136353147599668581165418014694780389423121645566734312499516811119229200875825900457411727384498630757087041512121647295957636073762833932277484530687170297477810949502883257301258050359205458311482315168453580464098139541348869544674056652060768898179357101036619452310126391547164824662357764377497627518119250997850049644970423866532500490938792030679201652786409313227052596078132413801556500624580449637234406300007438586707094930014205237054714059530017231887392362043809033134598325125184106024121056875404824471805028146638960980850676415525316786591207735060744662566112312651358306654265185297986181379874156120128314894864872839500124697511932445526310226565875865293656562261643841966116374379945696791384272330739545244216350415922651708196296621899078441561117726454666800534095740863357501040489563812794456152715116846740472525974003650398944792390694721444939050879039810060282665482090090796093433176799495303267875055602868152425141403452584061196926326818108390874206484910358150998472254714878264959101210724885938785061765832997870957057964563611930729596507782174382616413760986630261682766787447442389483500363977577453039526348853689034790473783950309134214308661103015704185965601551247546909943825802569977034330451011738628187960772935269476165582964196905092187178558588520162596785994906654216821750741822097401413786769905705867609204098940075512037513754176486220828175082500544966716048427652349740333090334712862698477911367313857628216275067134436292329328449798035644102928365319395818586869678865589432813829815316109949802658333830873040388670185856872872834297985820466452305049545566600621453464728308922676641210382863629243130069207907910405471476757658869695026051033971655489726479439269419153338473239155948478031673741323658804007457984244558381859176104281004163528772950427265315460701329717139205550760750444891428310908915832030753475751198166355471089698800287766427452935548107223113205952865030602922411167462302475744580196318508285966955602414245236869261131458395309715733462068020023102894913071937578458424462305102091496089952578784029151357818184519498066351334354793566314034892180394412950375851052732707647682267049989548865706508813286020571275988410407055447876769534137281166579408179580683163040698819993831584479755639396651770518834430049246106676876964080553826661714714402084439767028109665731403636210917629132691350621492619732693835928939615329238963849609895243685686225767328622092259279037822066353429540637742532365282097079709927290200617214148459993513013339638635478006414359031922820311124768849188700528871822717461544619384684483145938218293857702359712352645480441816564977312245566922218808230087916785955036488801234143536226593098225699651883792788683997091150602938670597381263289737186215406668544528734404968145259164944703252312251322751331025335928235714276099662851001052605513803559889302093912580814240736648018375982266867292967414594473898565664281103681639176438319779512452989169232619213499163090414223068301217765815378767105349452999578610917182203522450045271648523368572993024427534036485927496394290853750284108288339900656995459580250018626205964798858543591419748183684260568680823746667664107744225927202886613317639280401905551063025427352614924886264627813069590126625639873887113067850255853499446324268318356161065836019405522892591451468028550680608054758008500209466141448035701280994961279656395796560427330627335662501524209254328382767053907600694261961610225622204445409526132160743408298719486451394497160668392668819092785207258353907967815379540736520249317035812582465010051777791112422451272951890554203805999224675941630266133186274098111382170168249212845514106129500351010285849601803646861591087316399416795982662173999269707932450209259703005108665315824681969621067810871158372128710354959578403482972414579066181440196292182746837490191827107960731950326873686783145638261272386901353148230840372706230748538347876676880652761389711419478444105112892975202571666223634466338642952810866997298014871254093465704205132460558152367780871508273632199624829036922781867174578746443286469337920823069077156070093665886308519190386938078777637311388853069324154926680597113949110073464145568482724096934806461090085624648087123896375201636690292216395162305733217999623384249433096867137827224314523720913814011591312258873911843596898250600987175890244848803538772220943674659945008756756477482455728739683178530402600129699123283455936143022122487904842727936345590350236366359657563603760445090436077253589602012134768363845795944049454333173622062523020023329260841426778270901685185545341957502038492894039903006797829575222684040509821679058632916637428860287794910507164424208763682141753743966791953655654391145097425858294457710665514815018984319191761623989301686080753179220361584870356086292054883506948126061061279558832407600353809731950651855038068954392047448066651123721983971584242268043857140002208441407435643753757070830856754673167758062048544497596280091976449963108905435781124975989550840880653101189546317957637021247459124302637747414124434648077075158052321459683316865738427757808173435722470717896572480838290902526402400200166043389284230312569190427654948690581455359863915368088855608681709388832845579994208659837555982970041470419818961362267791423170020783000290625435665299946762242547054973134088420411643830900741898129193813207339505677155401257364881994856340114337399941895250496185566318012266185334883447941313497804604859711874463738840555507143616099019647955138727491360335517833220848235765651752896980557915713694647519437356916357317853369714269382001870732682337113814127942334371677798044437754949499211661012096803039231332449531975304067200816385273105860315986811342644814977284525614117440598132386277698622803483506141885184438896406107092869051793407209045897085879351311874109750086125494128575814626385824181066624300676960773293540512621582723476389099731705307940247493058814563523210813823556374473194247095640774262227762550596656208948607185033151138332350536089002258074785417419356281108480488630526142304396021393019050622788793966532649759920186932349793245935659833024054054196017264131375275029043419676874894467165778313312206333298904126763609522667510221886636924579069181444225438185024156752246354210616499763702245963580944426778564105955023249617604969839254935668638068675332573762676284718966001164514285628615318613701676669365297096053658015353053999309931874000400230050056410507301965171228209135865028329500739961129543530215245022112178204602634862983691745485535419251737215050328068371317813060568613285724677365341185571245242072506449404735274625488421588811807553892849501374737236436848977375115654030729906240715234550847236604835904480879084900352938850528519830584944736180349910819973826767563162652579572083474254643390488590547372593710843523700748628471017392788245119558868415829628230126704099644635559994871094332012438657017369494084076446594074789311604205584957040515853987006921741040601711724341761557136262044790524037841120366191860087161123281896475021662850284364122262949593727881243910789459579651472229204540091957492201829620944008524159022822961644191988318802644038153924060759118969319189832947326507673831029521966768411297814261707306103544274473162090454937797008901334400298676648440971596843565727651074082757438253012162436530570677702906918275007501034820530635141304592557671455837718559224228279692836820720121327514797749578771600313740690618878082725017787756574286874359835010826068064375108697291110714918882882715453882173973212656459470737229988978900082215700704653715114890096531111356513992649156563856049984597185731936484399422864316605400532909446168002303624230272806783399051632629245714564243626415847669092103928876887076546408401936462409681796736740014662208136966081944191995557449695881289480990749231220472878752418925546292786788196984371644468275707675190409863054732142612178305084512278046200308914424551320534160558704117155224084085157930008879509094533192121626806869291325625605279970691478891707419138836175930191215470212578121311849897481824643265499563877008492157970208708157780684288879369332010194986860395296513717034984670931648365032905489453391886269652866237379207458253661988089551312626755590567444976714394788196539622146181303718854443249195086841409406763391932772061815699709000347204809083465822343671120565022960958381780148080298390508351708746736554166958136138914977218317518374169406028134648934980350646731278638596239521217277238084058056689019741691312226686284653547410926695401592247760381560524749755544085871361796113371695848905833096816920632199659529800160142235734777356286253022938594979428657623948506397344248342755875432812387424984603695562874086513166333961314996059672827044903886679416614273195685155487290421956227782048710980244491929378511074844437014690432269470780251218520478173761342116799840908005375998009207803350870410531293580720363840680288608565418804134066524073504665580111298148043641527126527404666678057499581428111266358012324666088645108457793073539123973454237219163175098030334849356271447269059328049092016561691207927275233204536972035353837247404031783955993228534786879566608707189103202675470386905359908374371994675305962928274885449971113871912422620360038077041634237936355626906270024501409351282067880641026798701275134912240224016412878305511047068088562442627006342203438371757171785676777534473231121513009398975523374948703251292150859916471724846963338631305924832098677112679197877656821610857814268063667316351810154041042306832138806630179456514575948631479018674797062470553348143294178964328940374531166094930614123820536707819221837742028218337347943204695067475396871082063549650494900572705638102889646734066059819604568782561518781454231789762067544802132264727760390044043898965010305555626421140579123819229699976766012529760471253270220024041919292825207618055234584193540592136079410820726121119586521277868933600922329627012994291228474664947966458096408265094788602878740356498157289298527870301412842374449217602339661370155685556777214313658672282917774062568302745009635499655839665041992725805101419669033776223292741001345443659780563012486139025051288413290757799727537169011008440857873474447003057861293537510771032332806147715214458760985374698524859230727650402661725041624192145757422410727647947794556725031834807440126328780889509980318997992153825413937397450670279948733847706816176374205929615458824390909951100529176855281720288471012114680802219121910113708054806932462477054035533046763405188856861850514663077897959389408616291284694569189177466061432635631197265939254345773013623560852987353211041890950017459501066776285810728054743963034685866331405159458351096869284782411820044518325229150535043079363301596139661709400335095618050649340146588921237159524247048228168092310201307366099121142035848647287442338816083596161259779880026556943176874879883829844759393624664909129785816972389787058758974402514809753418920606661348950106557605998726533237033421066706519538877723775577605804556936604814200703043239563429104842364699279874610249402718801454559229139749994040493003147307277799696907843473317483330727808399476575537086617832155540539434098353189233073423877181165505952768881559254403503345342506842019796530922930199544364481664653170283486297120110676325179213088600149026489836515101993210308131372746220009113423969278745903735381825334906494884567347030415608701960550803942724457578465857214031411181077293649396720127838477501691033523407974465452990908804885383482773404739422886917168813208715095063746590412898267191382954112294006070739894766331333489740405741730359919301181228810434547534197949385592521553120436404615943995376681644588130468837903952360718779446537356471537939763359655183976435856725113301645944016619385686153483332860657121253065803848067895179331337820468677044624302562584614040648816203226307337143170095496117997289645094889265226034204445745681074022411231198739875701359025377423271549822988222710542337915268816828500957893580024844727737053985684306126668563957277777954461513946250335967828162281946921348151840446492732474956071156579869776502518927214219680056775559085328183042470779877950163156306723935258842883384306378109459671075704550220732805933857825593356830814855204847719588573751540362041663744981459754212035623326936727807003333676248395909390487906068410011084126472441126630301412573844010048778597477071474676899676865720055347119997175722819926351013456679379694182553693576638073439830063804362430749677573199516913037311216291659671344327352002942846467121873057014740858168587788548871907354773134065656483437924046517768803422006168141427680685639286919967820971950807866263325930075341759755052880317230857763260380259816207107981990307964093915953380007194499419673515287880683712102131650110095437735719529115100575905221042361590387499486148559927274478041208532302158283530194550914063985078263921143955621643693159091316905575714930757908944764813906202437340268438511190217829799745315605936233690712507720596227173835980948534318652148027193480770950155438225849044386529603184948702629231666854402761728354525692868555747549578488645424154972424912281275938115894716191454381585687513933038537874116567276868405047597234125994569288513885382728469209940307330779437463866723417788516580820448341312292743809374817907047284910966729438211564163690004117744548714363266217481711675464707568416441563446554751272885190289386995544068451865945762256233329190536196173452474011220290137854295561236179647624066834471813850339994078773992564172226431739402207497595775698722721218408588105340638719697500005382832177925200170932252169080208237459100283288826396765863865851944272941233067555060194657157174722700316522924373176527533114357503562220125172244535821521660735780271515431565464080555515534375284569144590765289615284676359326643870253595850487631045387665720547731989169412083132382201791123575197019406507504469144246079524727901623396770583095552510961264424470570947413463712526304917185801583355101881038020783568657787372608434854287987488479689662870720528092426109591621081388567014587163087426801543961568607631003103802642547471801983823896814317702157265352609074193914553782014388506650040225457127816854657905499655352835537968692822030217999891690094106442541237386402412021116941284241499546472533197942320468515190961594894380925086323051374121314377890082394897351732051500468296528160189482477865033877251438580832269903880800527825372219330392523852326331065791484054915709007016367403454361299821312066882509150663670784473404472359764143109504458514137446085198020082773810580192475017179284314713899679393985630915835798261988638710815297196512936715123707345820851769198924258801788100499426028973583253154242216707697316159411116134614526480643279473185476758843640079569539139120242184433810175803062423570216303493177717064574919375197934207343844902097801871886930998682537723820744563332791895544065203508676132857211083263522467654360461191581376372877589292633022866769772592161914482134459835762225712718122891454346995098971180166955205312656022380554613693641919931410593681714882359693881584221779223365699789081442902316756023334745371989330391286607684793843358434707870707552009507006037133166057573440656349441452212206700303097168921271463168378529343447171409974529510756788082283138422465334724560130291873892580700691978056418435821119772482321026496866173634270644899206328875441524766873105171364922622930671319340418162080865573150462209441499520401784106401895421117184695355119699682342774341016513409284071566129154449754852111564079181680383572830340233843370391938227372502305662355407734477774904052836645920527533189186177816409558651206070069035826890926402138392241969395142865935220395040438985329272003197458792384190926747323095074845644996156147228809532112530456660680558482670499101225795063107751645126868149559000654355940183790793943367419486773672296481698320300029042751303164302748288392289889155277519874218335360014866192282252592210756071214932743397629933376513178327375333270769308719778003505745238437579456918227293466391449552987471957759482515343762091841448364721057962616540579855737476314942339462031839111829071771241300489788640197157014406984727074013839792085344302156857580238555802431143975212775998882840839506567389568070371324739535313148777331602561866078040233785748769285836092638518816489466226499855022399433223235941644900135945376129618499696109691607364412954910497636637780135638948598732897858384439498567281232748491523208188093445623299090915608226052578873918610896101923953256189131325733144918026456251213734975920509254684883046564720450460276411876999595075762330859469329761395640597260714671240070420315163292145469615865267549777784891610830458749806041978669324722008407511271018077620196094439611011037354214827130956939714188736564644878416952807359051143219283486495230922003717069302135103920220234249623948896879676287597712201170008203562113400352951243784028799390751241638284368693702041390773133320820672353000474050100856730082067990880472947820066695888415374949370425676111242653201360566637904053065354149679728851740295541549372480932436270922024244516035736293669560930920631622419742987268213392604519206120416117802787619784112036729906071657982652265410804018445361216653182698650654252145779037448712537047986386484686059902775681932494636282984552213508363973132340175519987348331118304596353686474006187032873100262784613651436851387370881699127979621386334790619620892657934507719169095566918571240983234381002882341747993818620220716681259904259106100532362649545380413708660695074046842122929477267768078353537917472519803627267065117800690619572363394167722841859843613850273086859249226814131700100719611605343570428430771171897266374499055192295713418903371733342773623935033604388785466946110605661943437828283966142994954586135742834750679143650136536384196668593367473762230360460638754471489035196922918644815412892820157666554019697689174695828396002358325681640600614944189478245869282759185438482411429693660483580669883373637801542387938400890662972088599940290221291155843924898499260198611534507058013447426256910866993155010768411175686665110258492301446056769789674777515060951427462597842781951774402780623025162121833999400526371176298043569415556409580144420755301995475264831934820962587050608974025504894471693356314046432385094722652794262812463990189087628344153962000168042566759259747326595549071064697474285101950597014027923089969478816250294104381559909674480822715838845771406759764704223124631883385578184663970314006892688873832526230881495283715265731891500548354381627959793031004008348467777496853266310046387739216264073271552208292633276913240044150872514444872379421412450516091336079027775522526809483629901487295493672999241197680797064647552030481709154793761596469959619238497070213406573536823242406717935252329946931391479571429436530424063588711562691182359121619949795776238915851508695373422428308611021952773235629908704979565204117352680134396236638960167134910889550169745240561885429013695044009097254467307892617254245429199888986405202759386169130477855616973047831744071866352700781869986277764021520662859369962950011947174238181334450796683361218096524871903827632696827718906793911356461985691188237226798012258651198947772140054648842413000694627182503171956065262846047848270872470512959015160968861370667489572287696121366054089938405937049694780386392582400679176465213463898868625643492909730777242319939013772459620932126654989007686813738873445287091795149906530007349529757929378304995047668651483147551664458818895553968100950438237179727924759773763220835255156978949820166425907416373611528068922652086028883576375880112655973721175591049850201384784607507532805532517984100906607863116719607496497849988974267491964553760622967275072514104209886563941899349761209899572219406731448328618723611673996410126685353819183159211466253145635900862048637270676960906038513544725185127022071964429576106506112191718400925907280429587011078773086399093026659200549603554081923880939839926714011197957843676900868552788680720415333057442023781751054907198589108038463712117192481786753648736934550497071001165665963010106778731738636792654051927092886273875859939530625142010490625583277967975461277225731718845737383077142078336259373228139881419950117397643835731897565652378368659203392927015939468308715885471850118315363955317090512394712407326743518471816471843543282652135758840809331388854355330019429356525090275334515994799751013467786200614567051053274501227079914275195855908760588818988034193337182732275281485884404093350920899559249496892900589867207837904738464244046474296088898968142556873915377654120595262143993681282131102486180283815953764375256674679958996670432099335380407681158690588733651683177688761002138072438616036044962922141937992705332404378460870556122208527917948723914865242616128529852837777753545460178263159487281076427278307027344861469895623845401555479159436560762802316640269889884613928117699719287216381674690141526337121887422880021975957586708403069444600655364927927280971656523478734199627695342105041355895242629996406291800353970047924491363177027442877937131715647003589036869203500627751227866195394285826928904477541519161756783221055864021643806178503588476717071002107293388521046122049534025992590542649487989711301537569621588509521306902415020581801044509153674517027954618674686218876095620545879980081827538590405062046648716454014210993827374220524138203480863188317162007374992509700814969771529005605842519686617354947681897980429055789964749450260350356021664286438090275927373275639155639737753573192810896275401783436795560364831735821600614455770649107187134534359884926011881266503483668985041045985294562540529793432667246685051219219833413452104756048180689250551984698382658367852339650872709408737994705152587725599229163047735516675977262679245727874055580283201255993094593893516052557098121279650067258563086314641737715754237071903730358606050794787430677835988540309957226233749939308204132821778147697451786151080398742241738057101184900671810333186988899935265047683177629976616627676430878634084967097993937271538477044281532352936073823031883707385045747435305182529711733501147392656105053763624405998690767697077938819026405151303574961881230135849493088961393592487275722882641951278587891093457562056960327865531415955565150356785194892838924060084875660682658198525613262680490798766285820830268127128053753534175683478690659428758366155426236316516013892676259410419530777066443494031598599310886309761580614275753557942217206455959812056147402666457851686367339857774460970607561698919738136478393814323745050986066804294678016419375282697357650919436538326718034041659290659042280015583148006073920751455633732229752460230190189558934811468602886095718709625749129697589623048739565720337895008213996239103161022548887720229672203942391051650329997402861385125494537060178413700185831122308495886236487233770821132096619735357547009004325455904606932516163983811926113248566403851645358446985208905931608308602990752436454959010338778276028877265549229278088354725088771982067304503237487578206401499668065721849570744503433649133399989468773299991290890456457842324126476057187466570274353161092245452701870494498635456966660253564217682437487379902208503047155418265681044094253404733786893846277644429934423922125295468993651932245753422076554342153316294859008707463544679049148844034255863837293115323412771782637579303011320498211167371659595484405495317063943623925673911910689472986199576826631878146886622289301964776778645201228657560227570406504982699223126146460198633957306371510828362296343945212698709111994093400821680797311780759084767488002613145694644932489106736517198514215264452660693091028148115549932864590719142261458539151264689376654600192224071770730852735518178611868607143919440001956621937625959960642458618891874341750982089441966155851300465748502556585804299802384132623710674440914928701515852941614281944534098992486819931381567852125447040698724419052710234909115784649466331327970572138237072720084511588289269216187643516525879571487494445486707572172218988990282611078812227901275146860568164302180074639142241127065401147450243821503822329347426501514291835649758826320770110867088426414109050485944047633692706007304922301668188057776062230059507772885800898790492530553437874433736648076154924041365885107450351351680458969630043528932607760098891387250294915989038845828151490974906299948847711701069661335045226911514683676436592594500151675705578305301753754479530024845456616540019021384869255012131291730241367423527655376189288921551963700289202173761574812229331493659257301665246524820586842850249219017620223550770050178183594899312801286925700041268085799176391371115604338473594851938283831310920604410224727858737235311176772370751405436884357891814233065686569945355958060237418846125741690538869633722450348886487025131069908211925858802197322720718673680684219043417766006465144889708915182877140450937903747186907378699016522556975902465060168008275299388609001319844390618870140719207732945753911729450822363589146333511235331095702744890951254856824289584437964734477416654089814272727605661943094776623116190578178345511581286412811783563680195966772079593437832222732604675137577293841378219597438567446651322799578074480818839583707645464785182274361029988257927279317603065392402363553160823755633411605612881992304712334518972580258789768223921702007295795824455874216133137181033793087164410265207297974781604348156429982105857716174373435664881983224942827858401801265678566187258383079969528204010672029009068229183630692941955240002205296688352193009739769659985952852972517505512379485238007225749952539915881793387476735287787191290521848462579472743912668005304175419761008685926850545376889082299774425927104773521102146792699617025139407265702166958841942971740129528713699683912640905361257352739665676478979547678498572142665516738047103217994331756757528035197875484049283354112714037435438021646933942670393157345088342692448114800063875525868374925489273848755706202134398187310214572081206038209331567627928011349520224931483490475716041220031708160744796025183015499971400947739309421988305688255450714186044731499337386517916653150421025505452005032140023596929769490573871459209973492845663390438951262981527274031998671684246700118460152473868163499398780687515597870722283943485412405778853411980133026914409891617202648622898135962331703643007859030641638122997977796804895690246830958819222446286515009007933798609197418185131145010263266493266448447162775951842905496214665331636693586784704142663279138901085334129905526821695913935951190180376906989878578086585884984985833542551725984654171243033743928686315371898566114192286398863885250304250718131118442507827417152489796744868392205934265663170207808096403718463044104936518261165592184843788507560145204574193976901955560999112902915173322772100842624116945743389035451421184926311519440372755777729470787790273737854528162182310989206484535139857980111454603485429153634881224528261997888045755758542777990661805795428897945299127184495509084808414258039418289114652546886817929661483323463112932041838477252005973629286101635549690644320088847920912864312029179036008616074152527354923251725252337205539350565032152916018974826317957320465212296387305956479048010076911671866499573234626655768693769199047006126398259352711262171373227050031692965788795289272620764214363158927459141439173337922063039591027425279285555528683548990692715191317075893806211747504118217395610488118811044148817782016836197395541119336899133583950422543727635143274213580279652945958259965701344811509966966922462676619804718106120160462975492777889036616665818157957912047588657908699930160470771877046943749586380884632746509010195573905464495900519143179085065945984287927556885753512191023653946791895366288874631473004677238534837055370916564767506319856488281967517895258032735059752124915933975262515612062169896050199333644667051471601616915007897399805870296022853501341362814620857794730760541847368088480806296733983202358690662813128098227692492124008699875900501812218983073990369158489836047202081650192748649273859438186211064613611030836258912311545360535078716351473751210360087089482442169213644891233389635789900940166992428482147462961492416751567179192984591682415024188379359126044592063619674708171321755914259226688687005220971483353487761582571198914702999062911345175278603772911449936403761416517721073725455265332072918330479020497841531042743653490898269201854109932918036242722102021056152339383867002758863586320153640547730831698070453749927458761974573095188978864359383534877229774412702891249639912673075910458354518371661526967393790241903892321360848417524808529425976334252167270840018712754999867447287250681904040071446245300680704977490734564686983946164128588072372008350652461042613324445987978292586458182350272100934710151261505422527431638354282864442982210179512220524676224666209086797614699457520657278170385094374718942341570160488259609585527755883375417077726954396989249729065631517772069390606291258119700034056127455263674748528439496749481965455357520837464657779377738051526368961224293706131677322827594658692664993986515445032004330431855678266648122634802396645948546466900765654220097762136684542078940982747848909128813023688323432781396096086976446858051886077903123975133067564259689373734516766972349564208333641214198175428909464352464787800172104368342700859048665393839133256171576744278192799035159732380783888361729508376930222904685623951527292745982020176764540902441381258464733967467280895072801172212109779304329259407225193098841544493038415665411403876154583006096492319357585443945451384028935671972048783522963862577035863641876943192581341895782463058104949762652001131716891263465936463616260427554177953689207277524792039855930102962174262046650723107938597327661948821766128593026733524430830952238877656433211227868633592233007402103389861291669589872485361363311608411582667244373998887128697113169672851124403939832574844643612207650800964322487067982651519098706796981812070799307903280702077669231067209201566080372766229386029409781656149284529600542363299610417381061405578181668180774570781344387343466211504533897200031937578833511009242533494132143726894970866379296124808250537042101302875674325517597675111608804356039593979025488663718515348606117405535311676246357250804870617545805717912983232199349300417947045619171681448180331563072230309870809293532313081049318515915064710020638578684414313429084279417274202959976242121495815587916076479664257010809989801631644740288544449802585113535746194452225801766422041703303967015397758839360625902907957470171108696631518106417786841684024600126969071045063243609337305694981873152096400201204476864009826516175790488461659652789885327688776587713660302576477675070110877653454565214868336603575437651308597689915795722436433791206169090711255558369241261465551329200831643995616655844479910112495876635927876921162594871034637832887748566414903876881753939184805478068337210670518567063156598243563310293462180481624766036957272772614845771428103389351836482611325322577837342254244539171221441081820075490370579391427641576267220737658893136195281344896468381810213552537808270183378995644667301516852516854944590199822539556760913692149795041328453842879780720004655977168819779802660303290541697853242862076823927479101181643308231848375175040622843018799181187854359557699610825334128029350483946144027497999177989442392920227780257865056834419490307158726896812980605314427961655181018860592486058350920051226885234620438845586334141242485620478266479090566800933364781555846102660974767840213354696758724448703406463411162064153533922967699260651804347343781427283263919584352571822759644440180130611169170477724910940081480244248128564478740555806267278606498933123494333480380271573204336624700707892387207201723698213195792642231081082159499489809960360031702622152234261590481863179074575262408718112387753923177816738636085536839794368141636620168235540733237161942495984156335324290983317457819741302432422615762470970117579790652554407047633845515220608594289901266098061256167485151240494199923505630856477704609137462519213726444357352011483970716032826938142140947067418824185637799530198245880795994030317596700572912001111614970106092924934283689435524568850619377479909058857404805051127503964471349317277378671068448281644577616091044942438709016839212926664343344911438829803022981345821182933122192432766258347815844359503052790293940741727343905057688832384272503412036895189334868989441361593517851770848534655023583419272036286403377480468950784062659805456111739018904536867363443058339291427390115233631384731173480451336399087490531713892115322655019636621738779032697533732419535978019536549390330097443879390684315948082419710023726899734041134450577194137897281418519259670354523124084299997029334437592083715768641148246493654244800813917220459546236846794047309076136473301076938551619086075570033229298957027067049247289624526481842609289556591114236963405384549379935967627078789513849331065921687943651628148426725268906448352054780552170168018951601830816190355116838357376589567391195386332749384390425818438084380814175949317190135552615115829228655952732488342706746615916305204730750941658727559438498891623693393946146826218491898093107379560029753907760883190580573931235630389339982781298903344780638720660802018967784669868327333303788901056679032293295813816814630270366990834256097837566091945806951246079596894402449080025551105390871670046951649703285269821609550474840316029877614561727984445591227186467715555100838154215402223828605053496283410466537888491480358882195316499835474720521341698113366530621930708009349345591356520037562880773618337931201549444118173026269776194563196968527346133415518635291239908453249990614869282333124735944428392793766592456466601735000794492509527626455413263906557718403143645323079124585715424831111237287982661963697534636267095404218282185092882460313412889553428329153678348471802304619139274275951578733762802784839512722193012841331159147500610610562359816237263966686763734985772568751422386894204798224411093193002529135115064563924026165777743824935069181275685246808502438970263629183516577492226243174439049017695461639204730802752257331612986130060683803950228744787922962001317247482237611071886661680508208317096233049243961023381611761254215613418277106223703458845583930666185526759511706725463003086875735414608820412930049467132641372856062957634219980968553325443234146073504482360995109579460428043391566387582352237134201399696693999871988771920257697943072138105480157089306464984294394505423716427498395919488102985451677549393808857143759574373405930618567029897487175006496223689275141685728401154288878095393267408108403886181659461534923066695889975541704665989135500594722834337545287484416943979330888950137154646737210696191278202303404509931897675578867759902692794952866288799246176068620110678521357455992065625567052433170110783325614610004135898721299190768130175906070216209032193279673354077349842224457748201782446021640332771853587024923340340861850673016267928534393592409041369342060935333135986561823413031923517272953134689082247903500775219197491133464344049689759389436416299873129679654689048704503187521401263787623021331940123079716272610381725362322542378064681573420845674678058340811624474990408936784587150995838430464495046294605733339260373340984669143800017160863514949057594767806592605333382562466188652974211306343362782198950532587548684960394526726145649615877572394114470401462406746581004637712942899512219249929159081902717714104166017862668840062508481319709819381839067892194667155636385268972368394525660705893087112168357584173006502817809568315502599814753199578742083400247892135222594435093831193851776197741937853700899902949939799798963799775178444516866156682102045302662693648310395751710640766409119275339138252141893850193663746156146426805666116814245283434249642089556668065584845892509177681304929082358734973677084137667370137257291987375368932191403489801505471488495009282533863238512640655190962939938471285296016074194926368010295735005488132757054291639317263036991154316064482372495590763143251927850829962447133444894751382734367780336023940790332428879851212475631923331574573956547458131852225752765407449145657733190787473650778508745195817176983266870129033357246565594217440159126372306361080618774978458004105776361394438158715122094660198149357892886204504501312532522064045158349899517682598626820877103901058737185100705466484613375762494337949428817816853673208546666382569416206838878753581819751433686120974453220579330585582757623641212306878398095371853481826441643434815716223484970816664449118153469884760246978416195264760949613758795005991159297587398168487067602314250625734967031474745798605702361598204595341262944827371794028030559928056300023561253484980644184244056837154256952869536423836432594520661034813613618375570469477954333221385679676938437584330918127503603115894939963119839218128386680287177591229836233268932760279083305561517138413963781211604660262116145447804531095445082066677049366516911173279767687349352631891133990171875592304837632614742400344545861939975055487808719025011734943892650525105172936272392212049093275044482722260576678946102832898477015072291228845157408881226567403752627759011871675108612080213290922213853594620559974747944436858422189991337796853657896550568455044765714678944027113242961205872619725096432618780625546963489088454109011130456523941785632037110414696791612657503259816449164418278221270790962233789010102966607198170155783448693605888270387254943025621971697746321549926407702524787991043426890475520573558988976408911488271081310820195647071056602392102731384271021400987201926927257833062774840187093954953379718295846401840303669784895159957990940190303789949796045759098234225963653170221482917606689296645962574681874223344808117881328048355786621587771796697968666013308537938912616357289171572728092985994678912880800038426771021894896823992528820325741212785273429189440364726452314915390023810411775942428184435828861899723650172157521415040408402724303878192551365081276646212821269161939078798819165346011083932988701041560102803056414104056439594418781768875739886520279058420526379173701038512720601593779442557435519905900840264401296199240660180373553743791333542298701640758701983682317229109886518930312029859768148414347375416877190123339272531354729942178448083730706992345621952163448325059243377027299417323570970716452317111842415219906750405186473166385535640388307153834924104229809859331734875270421413464544078223585265316629718096724137972844420052551398865009524101967176301342915343580765764991906920352229635970352700814065921207855837532960657593087446433841765975463220595795633984579684970908458252865927836029291691216707842154137207321488867720369719351847099230659572774704069484136583109692659526093769985403449753266431707838802669692114837404670584871676846650506343266813550340046045195424555439789940436967190349525875243694660636403313814195902117064111144888814566641498637409930269676683313217615771667665325856775073055464390197831170490364658954785639075576841242482339369080572828657828885947152695482058747617007681938694473752639911998483948515210077495673048661580458309303522150993333811352419573105762649201737309776306726622459065276819664944212942020725325420080969170926192884220753278224959092560784166837167309457440353413176727759692170843223875438837414356994260967155578272804497649314440124218836483286265136468625091858788061906246113710488038617475252851152925166021680344290716888241259448010158818677018834360111151981244901558402489430273967460162650865119095762212182745499957106136578136906248646828045915038206451437958500829253015695811103309516123703947122306260464569649128911417921475932953688790861390460242091003230250495669366952260560028001509582942182313964441012525609983432036742486519677312810427713681762002840892714100717234379745077880344425272066893668056463513629199249431841502740093704406685346972124556552028315415742284895574512843964195966378775050271166113397062539591667865320532499754101742347531376083138693055965996638342061199660591865926089383450755140908361466326187245548945058226259069153610024571976846424576967570650616839213169279584726726744247720438638208598071361394006549954492727513686183952345245030052522682589690286361676317935182208356114659208732437513044266001708609918657627777775824939178567364758967271168812732697810832841344954515413769767183799708773184624537259627729420308478928230564858080747648888178052601409344182987862489162137742771975997765277160341253988729788770008300682812469018500037633163877699303530575367223936995709843342390843734480405499273450777488203240631418684800356868536059156962350269412864618690519402066769282719308513340941536610931200193370335335987755855580713479629712286969818166167466134220069011504903774232778687485045585654058763811522237909717880299574961570458747264810636476151951886271043378270420345301153037379639090506019774241956174945686400332916133282648870987873777473395916416600556607509909839980139958823659063555852690073301259617796445945223342778617160801276356227015491706184085085693818330839038426056573774644466460056473888387291778591291894866452145048443346790853821570100244674846638079865987172284419183354567809388832068812173107208536543208636134871661567656264027538175808479355817904658463484116762893355126315260467386687616931781481853995151602948299379091289745265026951993088023045437912221015215598642794928235213775246689269840550999577550005499932406467955843393647112967258306420149337285954886134520648570376262710880332325702524779016072350144812401584933767005826066382627551779556871274256482680872035287589122184994522936212434380626036488920668275591590354070087883726725309520313240599760994709790048578265687411022441223496456968917093523921673944346505368039414085481314935992008446320476262493152598756083405440159720804122821024509524822030354922498509478634393212715858405727723286477416339926406926675017647246856619477132114305529048554178475969240093563554688345983105633256371663278369848116732471328722087702672450385034668180019300857478665476478907355995355014561526049122859736756432698759952954874443542908596485283129006670982829511948433631283900213193570957655579523950570619350664764665099253988531050534966577180732972386342334738794233320232435772707926183148862478669349692810076682897598183708613188844808789081147807126013853894257231321553262835046925101351619763148168769994326736247998899167118001721236844736016916886159433251801830313095919885854023428883118178360780676361344954137152563829397538738587452026022208057626646278712104232445211168319793869278832178089706748669897651787709782583376326791862092204695102489595266421829249273651426529416904214328875833130345040556600984538221068065109250548052722217623444146237818076603262437852225283895800894619743843544219141126256829282160816743168171619851755835494181700625047026780263146109973981868582451949675444833442689108842533333437449237663540129309878861259851284968485738653185753896855241984651839620673810662293656220825159480623073445472730138190643409890784141665861514616985451621748170049893128948177848895454599297421544795238455127886779654686713948848323943872572518483622745831350662088106081566679043803596104253761455841780367329354078077387324875829602092415541284833311418968968393366042903382195738307395872854830127316083795892878672607654962669899719998650324501253038236237964557631579594171210226234114783328961000646949613060511996307930643942240904886264196272818667400598211166587821170781063572293456073480015003969585854696020601225060357684201138577632883752849993256362763058136017743311892187307414580622770004427686825521581305363796830777803829668238801506376874828131754441070171609172989540714587495287154972428568597841459879148507921204704207129542153816672051054507685171117871636129946484412889355816897970042809616692246817576920252577634514337032937557792104368301378569345278304215303622291208261767116738360022423105116685505837100932688589926955519971743225036137491842657643985789674621507438782363409484720885996045172205947765938971137025531126247920720433952681525552483016110138280111074666413435424529096476142668707856391026015986333423424699952186704019609332665677930319182568740766073311774254043921289563072620472361801197008538592006676548699058204564778655637319893408918697507419493165760056586281069751083120294215841235374982876317031413700685532303089858414150013865468379102500262983537779019842537929803399249074790895904848464375926316393975368608980492108416701437016675435534610297032565619987204468322115392140446828382883443963044596196659813460075784557206747047229039844384598810371682284477195715206430417744272531070421032741965761094322225022999079857107593953193099030916174937231777307591774426253551038989015612746452241245194345048728455308073299124780106064793408169317618563618399547893879815944232112045432883632783253281274308562652675109248611150819812662118315009013452932108404285477915853422252923956075293041217132911032704063355212364037150007996553019217629265477423014692059434672258448198611179954541853363366319443653747110858401019334828130859062058819421869227493377451183166213281475178455547754814289986196018627291490966097346867483476381412607367484430312666329753448800623298070924842973090936186047045776880547649967641556713310520196948396554368868751923795082468070136140170122942989239233871549216001286249045304737995596351402830195172804183791655473194194802551513195857877385683905132806325862074773142961237115816220001173646158429563964863192171534610436997901959350582616020477989512560207225166288382796414286997443875356155566156196270977050154131648901030193200485396605316062783126007035278716716109595435930114039027998225527501191828471582599139941601790248058992178407207386375934626153832003739754877552180403761641329880405237224452748201140125863975451517230436095799490221432471507182512606489468193474975797814120970146400262360253679714993623613181942534049807263568667913610179827224433545178457203464473399880662094051376492022742987381536272155451103877258445234719334959266607459912789506097987954360984022694202712779232962341462130924006182707715543719377234793098038558922064722757411242848926092212891196462020440651568492390739591750099098365273738621102527271823441993165983372061378280971928555831471000532747777753748911182440025796229849297777858130728525106338716816891131257387995277845340036935877438658164329081543010676883758340707202956528481751020125359403626329017919238357705606953381098909978345270853346209666190766213346456645752200409435541980562157790462756019665100045807498114122222355523473825933999958940831808267462563130275375081940374354841307393869722784073276057694539913806686769848443588714665786005197751579517917880204632723383897116978762152571109306783538697680231775380145012428243441761489803016381008021656606591535176006391463482253290270853988656901169018871347712786033277019573608229838333974949230081610994323269579021436195946967460340034336860722427596270903994936890279733868257367110987082117539686356676704668300816268222595921556101515614245731097389483394960723605700251986607949749653347769008537061354239588761851233218220124558938772173762798607554819356862609575703032128874286219793131074283900302743342911972404830293466648005803915454796075163127227150491416344607729569483842594569096713901831551217475059879692028246460500934524415801138364671068385009255467695638529932696171978048093784821592583794316955880584723246509666183765101146883589307846473872691019635260037850834297411922286226945890621470355196270330318303669871872594567423289115454995431230104089324595417419492908630466521471060418424417029039089721701691767974478580958573128897272041702411787816049824572038670443198922567599397644577359948388870403946058435714729222588748884934562371185920627159829825932244916555626526106174392537804266527876009386364566962759099778514349623294865485531289312418337220407349953681577375754309487876886241054329865759207622690243276309570932803281241944894809678800070524179928396131590525033724875955008408174834186097975057008877504237093244425544817899497696478064326331390994641239953591573664582997689851571838183971761089205395728803221943081311834443956482606207044829397105200703793837977228980388004356434823869525690586426055333903894463972639211951102902309515632636229879889964002280700882459089738499562924069360624605269919212030307644745239245616055294519963766582824385113937480972837598816787506691867864506602960002521995417619470513762505904571240512989387845932039670305922635819647723525056481626666867500110323572380570395322923931635192830224776413287899465382630192932335876779875000840104647046407124058173377129975663668401980877738758138848755283733322361455619682297018502776956943720148012902982138073472835875757826260218760044950805357944511127112263511659129245509903220056388052970454643166895706641827517981219125345784588735044334498959485785581705735529788266601345776105710486996107836571893163806423521391574823828860695488473961187731271901642159427802925933706982147885650862783640428736458850613968926831334951529583370643812687707067465516471710462500164555510913981295453833626562815272531488770323114427008911094383350546067773408783448928301424019965789111841306393542397616006897729706389202816509872896998576891970391083815521133648963224252875856781097683546435138039014450121103309060627286432879817548319159028555692276122936920930739763073371388993173869861772511276156097153419651883937997501082162062025310349264526156579267918191277034517602849015311503722473544028447712506973327960236337397735430172339310075606110752311022402519644963384046759381052806556836059054930144521888285473484810713006128244489107956931560293563616052875070958770266106331996588140876198570185219635408132678528269283521333274206430902498135007310723489571948980247342379931873657635154637866423673265508861535482109029965122065367664971466396075823961268943846945320594896357767071011853256041210520924657209026309399292053224959240870779443718692363724356322862088846508231738750685776790225945545776172154531811290819593255696272128962372788028950894423135888882820292310279428344836658871708341519095642979069541275718302236324224185553670230279173003108619067966565066189789646126938093722924225223753271765506615696213152999953970805388703304270264802492738946371569453865357243234972831519948274290176529971094605692419197587784619275580558219915304533843686551265406568955600862987154593557107300781793371528794186343219487676176327322650790549248087646519570381394626483258058686719466978430383893469542149439706592227120474832911462379265134974303189060893172275181799840604702544918991160515573638651766917760130566641765969604154764164814483988860737880117940818868945753526492787878276175410109221267657474870112258750247200374885929010895941719003149120430545144839726444878557265709831084367793223680513931958958737536086502069835696109614335815629552583596704586124830052496359780830764347351263122494897565229226713696460286570033912505961164294710204001524520597653783814450482820983743164310607879312534806146192579103981469975979614465602021998915892323920311158766430918327950709622053212462627814664399434037669592528793862862055912174450916830409782029257965828412068581814588446746370816074299391093345976237351603275285433963209951945240375823717700434525720911715803024829841953596902337943249390067858115890435989906219327583043469719207118059976473400338617973139805533327710042684166684337243532159159549582317429578508689973623829934454181464505250794975119923375898400234999505780144175038046716953830615496749840556770121873387362344018187655739362511091282065543984705926089820562370356339824456591401670656356553712390712888158576669977687389621405673922031394864826612863049246713108569796028411639397472627492475440985285152591133011677935165042958195574114578159932052603720985732147346638617317676319213185196984250953062506215100419215989438619137226050641798261168526539389932938716308322132427336544131306986701577918128834662749182042491968224072693139777187483678211880254831553645651016086912362295919427381629836500758423414525867450616182428035959560632758977863942561941114275207069713829679746229314680967188765691652224922400641470916473664362618884464719388461940922391211502820675804139886073266971432356297374666758701947798359229563525935903019178912007165741012371588964530793655263210315162188734144702728882492846373713075560060528154774382896050911954839594572275334350045660947918869741242924168711065891395061886368035139303397057584762046378462460788819550110456190247000794983320956963757310426688429047168856574288270222945010120837510588658666120604918869207853313426817762138450721549970532439213486345989931945960021553068054931671202259425415595245124066507336424081379504464690620035697659444387123700364180674499597928415963867391892966952619154806870869876153546713506206167705526441810887557128212050312490879727383525861746259958697161809915905494771820149897289818322106138361837368890390870120087435449367520718490329249107636528448909175443421334907497772301832008205182020306382936399593501940842293126787215688586093860900905181133631598410582635996021423805600322045351827113781772336764176465739079120342217238628435379385864610078886743871582927041976999095568855901644076636980940551288702218636792985274420789819857499422065238302455546263175901600951843990975954335382724687394734578091789520608966079415200418975711986742701481125196103627444367696902860489188806924298311975267745390191779356448850867442158606376460651659975180720837546827937141171980850717593904189650016176681856413713337909294602926215389915657436573825218669058687644733102823214087047098829721650356905292737559763986457677003106276202251955464718561003438477076779275748087012768187595723322832849256034413611025111310123498149588111540553169528811492742461861374609365023155483081490559107748657939793821352583288979562037376450775198033425879478892696526746937805624663506046631836320434649350803524197748643897164898245757851204546781602233869103016794489219796892170753619588417296440786593765719315396739274453714281037806051629908335065212336211558186803820757745815321620443170259977310479440309888418064247899189478933849317711166751626951919590124329474606334699761256323058049271926503796471562288362182632432636180081196027029046299725158537790524255310989062707479522928260642271397551034434256495639183612847800979365926398511610176869273722951847356620666763653533879930670062460278745308332619985870480889655757139537348462397950527328063694572173127245045150885927136019487840979518233011180962640369704385117166338110257018649013635570504688008298976496251078657303001586325046724238050622361608791741669056793023582705411913417719939908021696865940429614906022420382836490609835659957963391469615546375883527270010746066032549884517570301094421979705799691208126904046018836288388940375807972321113258580065510618368143262871655186017103213386224800332137786665450198154457298242219581652247152583926170056986964867975781944562382922031274036234887324886083014269694937269163996552564182661644665353815849621986742790455634704418370190193900290300456381414563709272188221922196926843304386571223271465720044551011660832155464078236594054348503720431013796816063788112534076849284104856836360773969234410247112584606153525150739109118364403379361109555314484301852041260087755613019955158761859424296957002162804668826814477893271166865703169467153222063351372268385601046389136092624306799016553095911246206992299008943337199123114479642667436077435411090050410019293732173010188512429266149700346299682489017693219248685353338526549060071157824056275235801087238570019433180013492060263243094079171556291626199616464814275242387009557421180183628112257478857364564973845477066411147309081185087657490151920912910118641941137761539619255893687266699483532390739934957816791125769630585220257281587656424391225807012779271779018263354021361942435527225958357581309746426286816940283221835339804835475001879182211903850268715891051501596917709935323127469200603069966729600038992183770703205599258559606424370444437014654813808219890641600752322325305966066896176353172178398842156664387557072600564196798912664175280124740060287984914080460459451518974263050177717741543549826128652793679994974895925060909260322229179097293354032839178751024775725863409313058204105419072240700516431801418424497798426754180719358212910942239876242196930397582480299049345445481342386381123574528935133650050157708589897935570427200653620459195711733609562578454263198490032583716190241150677163723603136817667940835850263505086203835053107020907416065082540473290937239518304264730582007151670205609617339442367240293475725135702090590355533114585685784775410128077339521976648183974324747579485070405086898605295637253537838463205351633567596943472357512865249421353589291445851413337365681313123815616397733154641681839793627314682402869475932390761526407373948786589763944852611987420243083180964703710245997263618405959775283374193530623429921650956079331582685149228886641600498454866828754231712274033054476964627154694748742264754606349533652925693202997720367414256581618345924351805078885015030656375209324299150602987982768034645758808016742511416066271391410381466516619058229921078526438155307920896420929344349979434114797884000492086969283715649309151469785703097472417457786592530472763266417201817810244151927298468718476559891525428338887574751366671232180953108066245856942887765776355682699310765248712127011851363724844303328742161896230940158880895893013738940011799103063652685891113239753282395694581194855127744510762304454481856064889671100172336353107663854560180816537239190827942079859694316264887772791019219483877888522382151534687733308407888416021511135664579447942492183989521869270655978301523292088745526677202822726419527651370200051210521438141177980656478930715431646010213032891699831919107588154248725879759243372535682017718644212826150390659651276639229951351588705619621130847610692834612702391492582252871599867828774164401298406101068764188835050681645285602475582117181160154817452306558857271565247645963921895711626034923391975435808871455304586986126285746322523321157712340548596576919532074935947428288236080894385974191536847475771807946911349979436373846772702570191103887385065470113243811039770630378487111430585319829580868845175843343464150517920586293169224591007359286045536160722694814920321779702346504705722822067345312616055680425649035791337379948479996279005753628719079093961147464787402618505077213988978089738228368049010436877172683435964171576480802323759985531932277866462751179323659441911974968943345485177718081592132125176124317499396402071489235059825430679746479410587383536181034513513737462754007763277158159834014625448029801528007304721523947133400884118375324835617093520203205244159764773385921464364874782334026734508380426421988329657366827987856930134963501413733449409980241100928457717405390106668114205854504887240436580336152267382281884176004905960643329775342106331768745313555306742888856849177744495183521641548322851492564755911814046343910385759876130640907092609510682164760374153468885414510986858702822401508328706617814546203026340974285445708060281566298485333126254072496978492455350541393084190662815322947129337578948449676128138700089844653104096642154737322830632607655681633217654541785880567215894962383561122465180721109974426696096898005620321945224677632723781629083248234964632147609282591221621824305187002261232745704134087394503787622176614747890193071213704337635752072721315764788524025519012874145277142978315733595552494349654517492165052443446391356891494027182839710624409205531531306039443546931378453113092531701338803390752060864512305542962415388040423382970190945759241538749155363933255747049965444402046637897557571954826392772499310676206486147573045393524764167381938723478444905312089588557506982998217692557788491797742103712939084547124645071803207367671060917892796601312342737291795747820418085501681901973132775502461563006295662540548147475742827482258098783065863997383948536593345216086335163858069821869583593252821528281623184691850914764113575609032322498956585596168133789739002457813214686151239616633311703273088728197369859139213003561246023465983851216264097498447166861295330234936560195716150408213248342754533679109764406480603155087258215922524461030900128292679305715798644575515406336478725549313456172196087650210786761778637456308362242020210110132625289342371333682537964433883882111890858406910672258472871094970010515577083827780951097253892555718470310585666020339375383345690955300804543567840441395611369329972848123511682058413986095775451417849074479974040468339434536505076176146575895075941709944856559924084886128634882187924704898472154433427503514052073793254036520999230794944484692993611433770789160467644398518346013363403137680622351358010431561891613846417707568020964690822693853062805178325157381108907608868905297507550674840476980866508915041295982697875740037273816313189252338149750204766340224060318696370613161216708061320942336971510821832786659176926098849385447706479721842961938689877475858907771021604338802078517875884668854987813137678667883302284952921038622479481187220260393639181640224396961060381118280414224778937426686785554032465509349739213178465420107562388155377729662412754733512617172313138696692971800595541380417249234393302844730634673465014889770215376180256946771461638935272754575349600372598541891422354719377663394153675647844324435909982050258846903359973274794547773912319040407059046264019316012502283279977642128535769494241183972628343703631542714920598325261409642416539546157217483821843256148567295237159546493257708712350836669307483016293060899164623022163746930681536236830409704616805931897384134573091866184919718913631662597830672073599962242832150578220658322668889204539603267290150417808201721627422975299965939924798164046002003964124035702718392154272333899257375480476334629626792624909676329492534423850155757805551078295463938345751563038463931602347690627532601096912235179659699959535749614434942020575846061338686934388668795366054229306019529293310223397628603218039941676371049886608516854938714749281627799662619038115324665926424345122190720908664511876467385206251751644047884946699158301152457665279955170179491956761551056355677577332294540833061164134242703947051235135815603219655411750660815852743845461908592849228246693896608347487441952940223759579941234768526643774607480504529715784837384982176291320076395620944028356160650028482688555471975207717228432268738823325871883582951818439451813050405657804230422555874340893792118999124818946793790536882400902187891016766362210448748863748933884647663118825869072895097431036284265724607626329605657191971380632107303326503126396074411456954893836535201056859791678313455911768833838031306902677244270482923693859439150434044790353510570075726882091965844550627857848438331365132395227874846068322002777048250114026324460322402180634028892244316370586300574072996617318766087123240772179391101356177393545385032241816886888857160083642624600692850929350288231443818045143621754535681271424131563683096169938048673522183355150597935775020537857805342840425858849794296910182839033576898352973171551101896782729107219180654245260305488318756755378361868652476859866019158003204572457507562020080252861430724834597519799700471903641747108919161273289703946301132346127274877790236481112815330587746917036721449097232357879198902761558341651972972333678073435686200908205056660105719877530880237717269391967074581911377558325958230461168340840590845651596178529105159819716981935994914599032811047555823710019730474914051479081794978439262392382159350238272413153396948926616830628064729697229975903465397699566179318042454205180557422726381879944566986134983914022002314265547686794312447289930771905591572030308521295323899153478033316049732014552404850916198835209221282354738004407250432345418514083655468172186178518272420265513621686492494291868632398686373361774750283105966673599968618473868558268898863083040285524591087626541270435459997520749895491710188899566701153069461717669942311520054186504504069941388134612377779063587193242683788268771187305275056830220601153772609368842751982137208081888621622027513890781213086209164625852514081902194417156841656973686248671809761750196641870090663304260605728527514825837572045927243133702598443624245278059494349523814311535648686277924991123492774294953330503034172991552990801585583886072844272412728112777678724738052874428197859776793252881679914881628737366797342480029063515348672780707583607224728994188953018942681953951145862509427947489168258494434586577077226829491467484787841701732236055510266087739253419704715583507771656541235431223683206354012224094729885119217096977278407558284657002662134675246292689823687867068063876901218300251934534274797406768751410674458009419007701529080301252671920574259579397027097512340447377822548778719241320986665469734285922926477582304700374231931802567694837976756404110251795776542370259507500116781525643407978501544753174139168636507595194874141521050364742888906443992243545316191638683661039341110093906599923906078206310579971761596455701541008747852837528634445539543723811491950070834756142231544437078360401489932304598668294608885330534504704641688789875378197223569993847115655494035070564744724995776965301927658329582856914647025329407732332963920660775192494450409437025568588535171820239070733749830014609905211616135022087955097198729847699039988256312551409066645463783690866195007314412062426118914419637526660687909656073717665590708168312035332458347643053179264223554277217023921145208357607241038976756850602388640950019876808829114163267982925817101191974792373340563679004660060981345262789490488834438594049272535004630627651983241942394994016480506440238481018572910461061656694044715776899245608214207442586436707157289413074136799262146955257299872465534258829173258017631933360211814103653529334446018462618898675177417650485826782356993414005702965085391222364472351609808373777703639568895560704695208489567992867880607229935191014404161527644145063546744448626298931431840422908878914778021256849756945483032128965854721113078943068937062903298688462841844708230215547355562816668286565160215791494522640560183797955692163002287119977942310214668756274020721617653320659694447049178084375053503348735060083122509405865681243605853800078680704197905162960426789421988265838235641269650980993481329358239211499578326459388039328704788369071302161507972859193717437835897015540715701725753913948105951235261347559818899704975251115659255281079291151506094796994719553810904652239351048070652771088168753854726918989886360717250363536396294425337332056393024592567955529267308327206196472779931633362513807736190973888574402911810277165086737723760536781493059538219271623302321182107756180917888189055416084983412699188495021358473499366659459018904055852975801304397172528712161997734275962636439669292986014898446177437571003415171997390763496202765992529726434661943124805377501860003684997768373243606863694447637923213583910618429726766166348944720304426273897290841006674875256246639152284083450121587069736686206988028333280496287852545235171807088777297856334290193300701482477402081851762824152475734496745101258984682476281939387951715779179084450724159261092876385418600767639728162083441012586546561847127263181102676938251175360449157979585052370628027988044716097872178739359377214930937774720393140474409770515240857673095143427135658797398700520198424964236947148419062191843488134682472524462982030765895609299549669365544293986219464873092328185673812525878616538820934806497864290349927652948029412947286402458728833095371606171389721970355021449981551804502068610815742399047338231822113817210769838116554641613753570404318100444910933890429203400672329809526194492015939019364879572991673667647131333728387714399376178955330402367586568775361978084738820831566842786528564511710440242042348671734568663626075107411641799343420043071519787065036678262307891755006866635864976813189657835444598093677185792933389091743956537784035641995473965757955804810322238990642253635222057340474629571579162374901097512955140783674468049654271843156257035547886853370560514336166711233906622134451886983473652207877417141817912026542099105369670857971268878725944317307859276788804685552118671907046076427327650118737613796120924661777771570168655084858011734725314118754644718505821329100037421770440803874567449980270150901388057660904293244913216410706796316946821109454070354703894910068689618586908965470820387694623055021387000702343407011278229357640143920318634603910072091552327683636376320947289138332274292783336660970257228285779723653149408037838438845741081545192576851970655598982779448984349149818721513421962060896444043093630736940961006359798774443054507090755163388504935719703134205840070654679789790435435129868353108429613322052766074072846500201418345867503085551065885738636238812351274461996469314526217262757712363260114775124799185611122769831449205038579470168645134508792229342085761066825453523219647333663754888057959264633313145816572643770507177955051631283161585299083045275046689398183010009767555015279196813478864297671104245259288871455314568804798590062831253149448992983326635972944356214438053385878341180109196967049255861960620897286119394715572007317639275957024275087412930008580936682612047484174059588819494550177820649106232852804907256699333267398077818857839326625255936612961380620686196088404314494096340905008730873379185018960387163437628405366536563550742290690979720578889428834609258487177267367842706321321247782988233104042279734422368750542825771791267228735663466911687037394681859912846818135948708890989184551539588821427917059579584657737970669667365051259796710445310469361873062552795789261252497412930363201982813818242119568343868415762303487605896509809336484692810282314606166002593380193234128384040136303907710709786481192599438010062341363140370944504026660708456268106198220704394365450202831110224379794357265276196355003623853447533685221436124788860662051798232434402839587642908171219425617539159966614279188099689555772709248266558773339850290977848503960474015765896123943910197220011155754203824089157920512699443380144272094611519052792330381499459283885645622633247175957831581269338715642676458208928150459051505124264759763128379230914681103784866939292595285302183256197689203127364653250983407432307033578372058948245119555256112825928573961452794557546487272514114900186415046693809072673628135039141633645610140844927301710567129129968620289738784984673928017365574725117002835919670510361211834630644384489656448002661897869181212720938767096083091914849630513688980608472953353422536088781650901457914115309194911817301330887902208833738971277199372814115178518893409502262279913247502475706063248188293743404110451742530790250636887399639707674715898037629374785987517987211380501615871045371329414753829905595869856980336037983683493745437396355658457280862047229799214880318525981671093718501929095625267043432391098393378704279207018125162209800972232110640279064130513722645271500039797447028725792628667038446412383671309239798514788915990935704325363059576097057857669477854617239183454528470030435501378002876295889938730442073239189319538809653581448207282789131196357681233490232737925943699681878658894850064598687630193745338736337420546594860731148240061379562710129260419313921401737123705778118155053169238396242011148042247339361891421955966409449258901481790200168188412446520167989892799753154112601345660930577004725903176527795133822588615283276178654373281778511013767944853368879946873857120424193156579485023415173041487685680452855236529835144143990021332152296041410222365769027070628226244027054834513445005679107170269925599260364490781034264242419756053951295183653171296669193799283525865260736517177428496777105785977320700668043139001109854843661999805158837715115772433633811415828969040268421707446976836501682544960695199990433573648074477981572294723846814716835008125914881080135961188735617841599735624357015146044729119867518786868236289649357614269165126222519433744504335843205752810204822092866072837247424092297588735466032841073551979047428041433614275803443875412652530718285478800363941517189752931924606645485281854936452800177548100445766238003585652363207323393927318506402119691626802568529446692500431062399809516403968191452227263246283197988282620355768215087482553601299264290219073786072555464411485743494201953235647000457333781198765541100106476622416781177814152438992100411931389404313812094570566601655002869793762205278382793541038115285050309801130293738233205203137049010488214862780327407735435970537290841381714948594223442624103007579764166336218891469873663762637634951171257518747430905682600800547806956883791767126292264072989373162011719485715598089919831626501579964743188318429548532532856082668986791051479564336067418304784609918561023408461462792516593462297740840680326196301525702307934829283043172071813300494530706134632462456387071620231069952410303106536811648403803682548335339184131652253305421874425264266491224055853326497363090073918834792768060709955065556537234917356236375605954643076094810878913686557732189404255280864438720617686641929136274792148947312606545046093846604173288954553856993336964550261287713732383862284359901187938210158441569906889618901596470663852464795378198534567734570318775388486575428153172108194036576088426708087644743596256931425993767917901171459036438940578641689831215785815490257359551116810485684719613044842687429018709496132505904324671682252572656120313238464438528177263436044271499029733086465575140700839512568955407752238814996458543355968773389248747818768868295885053791585678829621790835671765513134321138942568540137172055042139369746226978031234613762609267518845432274600682990721022353986703820586614738709741454696657684029255161578702025953590085315023714946736926378611934536431711372336073042749200946780267119371946584290316399224482503384385456343650577636921971196680919943517966076919957078358650164027846849143729947251738749504247940993207818617366286890123805069004958031690784681991363997669457791517697957252095467028540049795677095585297317081223521507748505016766645733158892008196570979684799053430884309435847065783010890209115735804830223532725773526563914251971009871688276833281544894960575367228013843063116848596845822915915065290061465164846967038958271923052432651639814650026162205491203161157877358607784802141847462154167848313404962866869911032372889120805208008398671621471542815941535728782924987042549345332578385890220937997231584665675501772877071423346127687669212982456557303665787530421328162076575264602654024113544292047239702096886285389628962765727002880534250237756779984118075062631377206863556536998708088152089204575097056089964351532761394327048723161017803358943721929503607812954041909701679153371306150304116867906159844027471730874965501922840287398249742337535719441979156043095693520514606030491058152822965370364443140412212125106518831286171030060411633348216591491207177835616296322243758818685852312167375690301846610753366764331691953772824328576979038707811409103740563827289275779966763137301935876938692264749461703621507131471649211972981194834788346956195356090297761667431303785756021181728145923230320300918085957944329451231327494873237374064868709955960767379833394203897723298265751723100818838542940189475597932755707190831084369238757091935650376425702900973040985504246405504851407356709230696893322575588956603858894472972202752986239752996129803898917389535726882539226412849578945460554385130909581511644462329969267841806982164560574011196579103972420794457600745845647508531798626699040317147977162392185484258276039737276083974840394316106779464738237589480354054757063434643521046129823095659371446220113432017402913851828017356011369236041369458482941969337947169336987426361941265862686827729458543914376497165652320126198466026127771855054427580445122861299060066620691661612103089390551826625662178788592861735055001441681826683412057389579544672585054740349095162165113272321661940957742564830852272755828864804411633115968046373842402896536935117704175058727373859591020513159471883766614022409157526210318514197311669553185103500913996850574728697109165048641471244498254299710128736169901316164889403408321086618865243598519423004462401692594510842472491176481164038857117824684582640895244560253025913239071829957060105471401964034276434029538600379072299198423843992647292892554161802109276148067040419874752998943346281828588365592585618577288625705187055949478916193059417444923661917621084423752905244669981347290454052888698768849007297953594090346869763341355439040129600421309817567849893907292403640000342374429158410748491999846955022869347906188347983825761399813089978319067680652629308070172767029989206828244737358576700544250881830653489524576655654983925423556073132704586831023566729023867430655890936477649845453728445708426542108467387966263218551664499136786426999989013260726043270327885086210915020462982615462365760138155922888425462741313187985384694591247665005998541530379310425833342591749527200541753283225998799101402962203056444999742270183872441080746549631500572401645719487514807980784758746977489344191085381965569400966405070758251486211109853704454421602001468529299395961550208778259447977698895697776918001288207556917176028249849460929368332858103544566755572683501301403407394447949452881247165110796356971543265474006942326055227769470551945452756846111445430041443151608125060286468075227322407954462714539368285646694649811900190707130346362591321316400950836042257078537172249443157643737081397891263135753263648615781030892228097915430606303583936074263757003939347634205502473610229883498976644874015930601455648720583272244606182852677601873217458648219589525441026534455554626549968029433511112563875101506718750728105532617677725590179773734859150021892302634624580809149472421889446460569264983621293315304910900830325259364684221661874143009521148390924368813581446342112509803366184376964161080087822090383662759108059309601799475034453868556442173317765245883703816928444955879320438969357031772567019026948354350336958928881164993977276216513608769233137652845504932072109352383632225801439397989840623354044684977026110548664081585209671309419008032185252434813041847575649301293159961772367111779885234500282719177056688136156468562393698555804949443807671106461349131132778347868059358600584816127025720647948539949747223166624905883200378888401156199439607454291367195557905081931554275806911384793487796257677987513705999362526665996141701362768485781426548792354107114283484394747335906856680166040218532708020849175744311679361035475083043662899158441869958819103427480427567711082266618480785334851246796059115164577051548604620952974853683826223983926756742882679707156843704825450960660913436117727098419922836566225092740571747467674127367196785466246524929486542124722525016533128478562948690157759121674122793406188316713008815489750735959050534195731658847661238200453548221746884793187898681482972755636069539073545935971554006039583170422533300384706157020213462546907599670192859215349323841444034418227917269230011264583837278121515694014407131403278383719785197402443625670435916316922320832348181248860214249792662405162597144129582672123449648201068832973078858817606478197667083797283771152424866880970641427935745475937117479923989777834932690923329065582510009392691556295442166052522073602500565285075991966092538476707050601535654793294265792232528463036238804020460159526182789275873350738771294764823337173625555547898390099276207249524859726167804163125610362142417716629784628547566283764301692097401713265803228510338952927514886476768715731727343909435629053103297789029677647210341709601625174505415249173572418031264633026255552266672119928415320938202995897155190118160294290439084720334808497192657144050395684087612552178217401800879170245281158068773771252289011248803871928896599227818306050871180733736434457521468960211497539474371852405835322406176408338625845412009199096494599059784239273971129292365728929104524755110419439278740125592033299723068982173941734241215469263685261979991462789198156983800394744307154137944835376517487847224824333585650474776409530055186826747392583557178081560279008673323188971319783211792554113557292221462249555939212088713348621979555681692739714683482645111398317333287490065994197169318160394388456603336015855804805598246002464538091704351057379313940202882175182576744506392063633218581508258317689780651632483326829705381323076411620293131575548438280445356249265929038648909946802402554152685730280075891132050327131532601729814332892751837768870053196103497078674518950231258195349795297237761469673517351640082675676658356625010699251350801302135167323549091246408571785549585457045513728718546220520867559139794051079504501660119363638714910011767095903710302621578908206005695379762203360608475748436257722786568647263863618787236660704927624649745751904981154087093085490804442979778374682381396374301726884360230552540708450179481033815471304333134237988384418160923424217291762010772148630713892731976777844971959343441206922293147337890290116789521632455303213873559558264393947372543680014435146585290457782818103518433226120430460155589922111139888235851807132937382496942397596900966544281579812965328764826284741419140967361966300703187030740286063152141734926098121037156092764273306399660286607285310078784284714898792957756624945704660387593371778747010301566925794525391752422266147053047712175887989356146609594560809948180511765287081230896892810336749212658951916689385994736456515844106992487592329665664534864601070774706500350581805904472612745619557466760139580740755754547600583692417665118075148010491706875968948821961569661233081803411473338989175809129348819554510081539967283403605322091129413353879388000239501273462827393393141313882657821767628961619343506692001071379346182195841688984770562187771300101384884802739542316817868066670810425556429920397127222017966381734195637423368796511561538974724892378745339731961537824862673420852718112636607991742976998476256358118291818247363471570108618683328802120286866717543876420567041408905937204415998028783421111001453324253063720886286599399441178721941944268683336047306810863021519368985076548709232594035721930522689927720179085905421927234718252319351462677201485788007087839450174030884997856438783642466361325689398578876681372383674566376836762869679744877965624450722234196770245958426813890286851460582675123803182090295809190747236019087213416457477696620632146413939100530932920466294051895803153300270953361975615133981186214121477870543696790578218782413814142062956599061881191770410388677813755572333104507694671651723770881567373700699811742989356069836263238550030933357502526449196586358736858876107838401561985135608380059268465140212366249734233127926714132716270318429919943821383750163467011870229553928953463027385828428590954408636108736264874786094789205336260691655190429487910591407915716871266718950063821926509076404039549478796579017262427622506046858330039605251318193067644995781144917925566745895616717597104373767076273105301896174848942438816570122507397236715007676831096906487309057827553594127419233303106125960255342947038924593131995209020209840261448706053576557473913255489151597598902015959083694770894898843825697734698056573243442610696533401804862065090264937375221203074284614072341694725493996952337113151825480873004269985963784656885369000807312447397014034004885362842063362402147052159493094462066621260614892813290027159308407460496876893519517843942219109571989134229022390644216569748273656403022427431177680427948626439920745663334600913590143297981711655662560191932293584482375628329651460893662054249891681443006845962197237630729467941569507545363550508824479435443181611580579376880462463481540297074005742220494905455747119131508649173972758045083462353384531170035680679901213118019355807569139559268129477621001007085589892660474082707843606671945834302212470664054331100183484973350284425612404496156167631148641476983406238945722984974119896231655691957162775652449003951462584705106719024282320394884300147369069615212343889458415875904880337413266796897321129830292571502189723540913537485000158877109323622101302038416236813633033978232338766477153216982754333148010760550686219704884589720229449400622318111674658902517174082005644990607015545629835015680680592606576539425145288507837449779504144172932660989684210522228308952446520652265415734274681200674795198659569255867807262263409811905208024845005741530527527763539757300422161448290814717415392307063458757225516710472929040126055588312570260184865044671420164922005802035133770719710808395798183794123145678926210632856476007502788532562021510724675872028650134172491972418386912961174415595200148246260170450097803869026620238016318536825027784849389561635324479772194782592997232259709400683288643773927154924606445274519185683283225132183724555831104130968103561740762610545203223437624585305396161315377603472890047670023919966250098418384373211315871640543627854207556518011627807863366461447524255710598867948071112011466464329711838367013098198745438782321091965102801973495897896842318525155057465717932802396624627770623438982094272724475922677221181511029457691528878882222357636605303037134055370908051349469979228897337719440074401889712621347764847894293521781869385486824083570579268739576295042346867856459121055148193789711936532308570711855111509649527886102522358784654971852205518423327096491914479958988592780395731041284935445103581161319815854371238983839078636890415030580657437226778566342965839205349260275015891431013723189222630271987765644212210117210157994939517205524326545785282698936119979729529856477976981255219721656783128605989613798618121293550972132437312801255187870954268205971604983899739130904286970244098761527228535667499887308966461863663339868582720057798785761300640925220189507400046477968547610559381227915045875163994877175084192957878833086543391099127708957913035155364838398673042654969292864809834653915503012877720935687206653614123828470481173546840205114972327742194391976457402430761590394441999564982402137484338904495108136498405298194874015467272864458357290293158832803044992406273488696448700460854003513721359813909889767688918310078922920877479015212055912247770113906663265898739534013994346857179030443998893855835463460284326410966561558955919992485870478347241247608728925207553812303965748958890183495048537728493480312204599049668948159138215972504564604947131925766876486870490418080969007739248743809355467274570571050238486192208315245229773401747099956185902033535033704671835898844822103401593638954110827268327310652069325199307923698369160399915594514465633642876331699709071998923939812405535424534349359797692236285408270696474966467016340607033013880918081632467105514433231688793079501813180154304160548631042659187260277225015268809951655269089508563372641397153675896562207164578684123814884138215399520639822390496526388717996722319423749601443903602509187630838237624165348274588567743395435918858432023636286500362503935915431234101873482088244998992707046498650027530830010307899856358638255534030836842889932840973269207127935732501461471453401658367764671564472463733989631840503094419045089516861948477229012770404404053472552205575490301737509400790693381455232781266408283379687747280613604358952693586778697232501951258530663165224396597428632584623500922267054177619221839696916803885748041768024017048290725759719463751011827282787117226633771319785118236987875850455239507380643840086532814315528658127722048313653288795280720311579415212451430680048891795878583738711886814329234086173046928517368333373897676708716290203475672601028997271513007428422550055593597825935798823445395212022751226732975809195676333101781432852264141125786065561310668779789341267830267275050371086538150862359671560613012415840136105501521690960442502185682339176959253627405121800874592362587867242974949760193992549075280149047814078858287091238249430489909645097641102528581489033392196211621017233235283470641578049771992763117477614698519170743051893201931801228262235463960815560245841085196315818501470047439227620247243326182300303830324561622381600288856671713520625825600463386579112009165753390265384650340455611445375148647409009860965317278466341908080513163872195539354245289264488256964360232040603540244151815784274108112316872855660503003267357427434142376516474341427382541522048906240885161170511480918243041402476550157616179401890031803677234854968486585832879643025832181767343982381546731051870097014978770399232844562666272390398035871741714310874028828408295549637899642270147511231244022195545640287612100930048837202524416452855295053196464714407206855141248723415798007317965307410735631226365649804174425367611041658109601110462942843238486726090477159767709136291872361958378610504544581359718267381643777678029269579726319627257269132655699659268275284235160375262375105713911860482541295966669867144641053830934144749556330907722378997753813243376301373153488240902414353285851571191759089927712076709179383097096689704757994634691819900698453879981154572010308396544413640148326532101435191357720805589487075503711858529798064881905221776807355883488124685395001180694212323222879457950508283384033097111707209729691637729011654130422960680926214014986500569716406342082244098473375151988245829928240328345909712728663335488655210989508244445299843187375878434007495648676535063574078550659410738368452574826687081535491362283532486275803776258965322632967486307664856125096574016357430139776715625969489132979933912422988949843909244457438450531623580819130734559629228001412247891011833640462913093216144040105033678796342769992907291002935219697417801490667422115013004815034610602383192764063232409869070778374924771995799911411504142733524801619805153061611967320257847066597188519262973983713170432087276706125769284939826037664311477422722782228337193351794254504501368486040894029792608945912803105385429156996825643907356600876360157301907563904683960598314517486553775889409687777108439293412564947077221469450979166839011390514863259493464915996985437868056248674378548619767339777503699544939668900405540355007329527951130706276363052064367804768866528329587699046845444379659075385812404610484129698422945572581060715720783479802475594910105571441188050047375237083136696422124225752131672131878668579261552911630613020472428164859384970368191682124567580533816968098367192358393971446307145358432327716011770861843407933351244516211540163010403295797159446165252437816113713171032592624749543409146865705315743334646791359447648577403038669409893354292141235125583011249354528560949309889056543758506650211291757625531837312888637013019822403409086903975389674860061807772726852605079192992990730859721477853362615994303721473596644063575906199639255427395041636445586347988669802840256511779505532591427528384109318530357717032571954145377748090923911764679895986487645790574284756392189884092297036381342065980154128646632394980127205423062146945380368924727681971705571421249686782254363171056520333113658401514335787177977946684525096167169692934489511153735293877575970284937659064610082075124418938307907469279403748239616820673268084861681431207035042580603017529935601361735548552094829606783761666229107830769972150477124268466725177394501209845206581285349488731174999986375451693247589415796137951933318460964851968579334255159889117863090396576251064106603221958224492378851578557809302737161714697623602098919814188619237895980972964736756588926101315931950393750232349018606160354810441675881339256691881028089461100998057058500361832760652533685152112806759020997024118530219859055057201518198386411272881805328866663777875807423781297192573015082227325189568459932553353284813084147056051124250489247538736498505343407773055433584814751978221435757396753764285207257299023250844846500438085161829143856930276830060182525949669926337215212980925616042806911610944241650110839347428544655157180913871553280607016300441348163054884047625701736626274694142718096433541820522423455393457175833681866577993941529410932096062450840319745168426979993914945279695384881037977630103149048069420848788263164174435458086482147027483922389798536470426004752864910827307373449257971661631210345644899354007284815095500070229100624068572292360145976352647781485026741993711747137906391682464919626691082090015846994007381660617334923085133254228674862906416330565281720544358707086716533070409958125746127902260614478905475907955148453449994231007771532120413749582009838542758202904789007928723620428064857901822801966836873809107328185232441917952702210035329838421458513091617865924596530792002982551065321202090042308997844427165521553984448646947357929950808307405102136812252463530903342693885485149446404653156421520859761065686880571625634025276727330680100133234932649809938636640409187393381021504496312397136563764484273183559692757067670661293068249635753549603082916318530902830165632747509391200693739340541111443793281443792772295553052132345421521159024124913042854349453340679226393636753217785131994040704478823787229801228921081515654854402604759349333040568093243600205301000499950958856928874938400679681533640815310099990241489272762508336521853990246818725667096784414193905069340903685837847547262424605438692161142908870718503016743000765569852223728721730993525285284433354697918312044117292341292866253933532087833292733976183206837917980881540803479081327099672971660633353204519423015184122777570409536983831134131011546915159350692409663523637247153444059495788491182352500944684498057925050833997406819848429073433848376704334177857130685635994865091889661190939643789386765649465479080679413262020405450063076192092812577262351075192713314844996752610254959556761730864752344261763325743949999665832009398952923963005114936671910005018957695524344520466381525555244034971745808353656772533444559505566103801548981517934985494227216725425522425867003027805586275208767022531720012601630919825175510118453092891258930061934958618207152453664835657962760287019214828956322871037935990315186929585990902589758649806835886369901892343384184992152670755449555900674771472353377933793671088746092890330408967639369914571743398562415753871737091202073125768567926867509800168171617902381816034911624363102983821132103341033127628044606534685375019249150859533481682313283339867702415941209861295256932423178574238932699931737923572909783970092258345786285417005780168416888160345833923335572506710046017668745124954016871042404434999986584700091618531681175453823697019445412695814239545277570909306759380491041717427225201199639227855129644690610415967125865352680691640924925111526796299682451838155258669885380503848590763191170382600049074792904606828966025596774557058767922207944235253664634801452376492947704349126379429777183787880172821044522069393150823817507284884181754595470905957906327218795526923271045853555911376909934859779519237155138944566929712066759085836050797542424862115254903156817638596884072437643405021888073726632736301880153398109642527145922931944125003892810809643810849082047042199649232498649985384547308739172753893111826614005113069347918774584950361962033323198687578726629332196403546280517639052750255792917947512198341972173606875371122372891093205506433830300161514691050726778156862087721975797310065408874485704943095928396422644550665686937490688370819918292440715665076369824754429448248255237007227565988280006480160327890883436369023788332765638215439342746584194709181996614677787902740381024784121767447973775481150559671785049789220315753778722998949536434488521238301757526297326914339921358362213051762864846280702902480897626962929810982419932131363090430328979797403578616665576068673698583910152703364514446958964079166672055782114497638362324950038947882880231931043801547979508963632828320052093021570446223773039087907188025332069115092298795268268320667575690504165634378290129035999430957674328623783042597828104020199868194652585188682451670492382376994202058049573383889342632210415074806560991893590108876306290668122354262925494234915956893278862737485612509672650345181892217890776869553760074784712819406143663511252061219795792343744255784699272206811050979165427982280657730566402469055155280502366509049235352284392633781352034869928183843362259550706107126958985189596859117478781253412421955136940351459256728434739381183902574013986736084202027942377170214726108306480869682176807093993241735464608066906625964466851293372545086018500460484780750416664833559926305798710995851162017120303510841120071838841659440837962789214975448888769665025969584756160322724517734255180838037515302748717319786419192106023966439172549705819768546614479371372034329744630312500225427734217908985159518970218161353054083295042006142705440448985407117600052162398050366543367115011113049460306800400341273783904441700057113891660148905752644490778574735255460115732646859456907847621566143613615247879239091464880287334155806961220446090078909384121974595139566039679914614739324103543634596571134623537992777909713912535297692943458458625570867653672816398032523017464901480678279855306605577337376500205462980599836756330097725080206328427848498202607231294595657994836706164193489992401457550040157652443116819456711828186985754931281906446523873025258433029348752070702157622975479859334409292611748940004580214525621791955230582514806616735630463913303814693168877963181201286584219186114267010609376910977706763710295749747206200104814296556821031455483578861683361663912831971263633642814673038322185346573418530034598876560880109919129433334375678087897114674256630117012322291885811771445104316176040390019480890687998379044919283571950571077516490910611372063163629025540669473525317621099889009106321672550218685776651433981666323247664003913548735948917175523340797113099083547470063364122470174723744724515606878386856659688134338901378736418002976111683715134713583796077803208745752911820989086340468039033777760317571409220520065783852516906165902731779463788960969644990203270204073507400332315430907546565297351766683882050866840886438207404594853778081246690404610698583105327537851552706375057721597009872264053474137395244561835742092603794678787270846703222623720568321856232774262599160361737003862164779716903719111309917989721321809750491145690066919412658594865276366398377646055906292618061630588281058366188270014181482869741686339058542409710305754079530458535001739678692910424028826144946991629340961061269610940409088292205629529037855723088570058011639739775379247634833303466219301036421843567193293489944729858620430879104163063907921043768006832755001305013171173432280993142111909651881221444370249543604962857491136056429137978090411449594995258669928292690034615711687842527520495726688847721752046616206074751213521334903842538085614165008514729331349109158768774329634788327723295771582588439052087227863152835415152505399738310289589650880058870346141678876769542696596129500934737446815306948827228213126424063850200025767853545999992946890235978280071675233362209800525826769667368789846442435901269183576560168848332693257386962461439819630515249668967959343746405896982451699780037540682656320342532975401959150682860505297996300361208689140123545523200833999518037342665291451961855883694412207124249137167433699074902145488003696032171505042622984853119341249963505990009812631257257186792047268399886063687867235540706788513581664793434216278559028749993815555149199028585923021036047263825778278539152066710726116096143487945498785923036018324130983077749512340782807157576610210412224436035313630045269081874007162186615603085885767751982390511825473554285312616046682628415534797500964462895422830522869124464078991983769452924500699796734223792695824469595488994968710402048323785625928614301813508208116254599458845009168246108984278505450254192835396068684681641194411762014843327022891284961831413670256686715838901508779429936776452798086707006809717518735744554545306889328938620865726147344089488818138755721017813389470491047698504027174562462951994535530982086101947068602256834184279134894343054744937920815710673444443901895654408917023703080177228670216363056003130205741925436788940648621868992786790570243082789517218089321223212859027840640821174044137205099123011699662466256233678536343331456009860750828316496574527912312243426416044387240298918250324705210845466895333202482234359278179627854094008307906117639191128308933069157367323503267793270176357524553532002669752722834255226397350650864509711584484564861540843799657896107860167816201473281181644342136899539314278799337023421137530293378691887976612828947226100903702624742741794696743567777089291449951328284531458123907245920041384641856233551954181677962806696826987390784166096335986871891739394721753373467620461956098513766460943072862335158873755746581265018192984925544255228994166712662030083439012885965099748512990288198197527476748417682055813455980735953246304872283817324888824646566730250808791327053533871711938957963290150414962990129977144739357092033301364695785882620780683969185729668439118679584491918820546673794710600987819675438963886796741621563422400759122562510712788958698909138578935749233149366110096732288779340050690755366056284093070836298212527378699851629512397183813036841722632775990467657447426395872784441620103823132658037432425752669894855585508952733723021367110744118077670391172005179617077275906563324129117048852741005617863156884334392212973335831732147580666900739617658158547824444844352955786105248627692033871805718928706798887926322764257599038178847911650213403012128189588298740249685740423381886225552104763568970221154752448584079396647203963978288924899843878452040595721868620236682673443604239756332114326602312967867236810534414094209340055576982225147452844766744316058810244584711207381451678384766739789941733588609968690413114673309586660317455046186432569825291094550421447210847040091772191664436904050243796524428758660668568159862196924248700326523818362384265014910791042769219145850626885197988239186001593637377901531740417925483615830182262813745178870449235585764000009334667880108681191353699472084471935267623880670809660737883526416335128028500131442997456088111950381341654491244309710676376434738586610412360644625424244857221527283250960279735425968667457091959379568506396546494806142051661666237917180066281987336003742532084041759315586698897966537857940772110871878422067481962230351488097653567835050892326841845885304730985455288103845696288351643370855760499053115820877624066541684264930610410911173132794636870570745910891740722870982594638941043520589055218495514152453389504116424763054552463273054924457162967695951988292049264932847671790052845399990781651717247544207322768465710805870212619467890438348122885043327380843183755102848811888686073327261032440079549604309856381863653453406904853131790085694301037288969453870857151504433869139279958700798258763608005436079011028056747637334839377699744228565334021571090581038968671973404115944911524565102393396838402678183283791937973861691510918732498380206114043884648446214142032037504441133308028945508591101237243430097407720035656302784121983864141550908475257713540014727048657615957301732114768111838098477731498597151820856746522220909838987870226748212560198716172020497131866290304566677249342556616512970327386428642619301695721010275238768126609707598930997063967142787112500205745692273568222284748957805220923955810117717760381491915375412620020043281416055171181170295238720229122444461661651595375718024062426297840255156031810058570802578621303623925574790076903822510500865245693515583615729909001565430158321581344345552611544970794290388919821196423876485000408211432492087850317590595256828581121040184328107707465079236586005635420710797080464890346080548446360610848760688092519781584394375871672086520606979103556418742091190660643044013056423530297162922102646365418920229960183562328677411198014004442609348597903975686995991260090932542209107657488347690627843393425600582049312259501095273870770491079148291485240869889480200570379449490265083213539055698017943252911677033488556215311402561178493319588457873570448230412321865215225146177563280552754483341865166174305992258459856124832223001910952115158384582190663122543829315960978375555030914725635519490926285300380256617959661707029883517372533675022167000159536265093978506445122683853541875791219244211559515018551673749035584336188041848166098976499202002944393229133422746778115402378289404184523109695393750867662745163786714910521402544664084594357107461705592202477974189637904416600466623338654785451201911029207763243314111182123342572654904100629255259565964193795576801221330802248368781777924076795728503333161883817060468493344541915401266526505468649635857854090611220183288417639581934111084275002608217828879247835842468394369930211209852574054986956089079215039873043730620068868639660086711649268357495482064218540911044050723082880497129689218172925421999970882681832482088954727575237091202906247099589585128057910126860947180247423512332196997539962786665475120291996980079153396960600114599530359694757501305942922111728333587251887694732308858550367220902278092272432863182705164515826478448060028442722758010741260187117633474646504146293474049152872021371104757059447567181274546770254237748866687547994161641366189114262912165880180514592538074557059301550996952373881488661666404617161620467529774851612733800698432382555160916661372253759237749897503124022783777956084439220970275823892270734460970771026148531577932037570897352182932968177487772975742495499996225796831779066682575830236722085055541822098546972016684558663813592154485776824693821913004215915000652642988133901125860457410733056783036776755729041433940717719961141248058731581031133482969002050089609512885235538091339805208596885298665897898776782767282268041466283639447291467502541685771551183942433880702608955740957487126442530612031285322394112624932920930274033564912162031950078490855469702160078751625584799920241432759744679168188126386246650922789883820978683626928782208948248157739658438400268653878229684891971635665971187506786110197478716671324898529673546645713148472128226939021368556010835828160717207262197469269748160951570374056911577644042228700133708061341244089865365924094103733514917796342967079993459626606934997655069498317135385806853504877689323451485848987097109790926431951042871199074398450809286910417571812543716290657141067823376396747748208213234002357872135192590359697698530157164693561397669173622078669707224235779531331239206521307454617203741174872523582891972338306417044729471480824627484017776836723657632692898713914573386338029896965051083427353021712482763833549305732589861789234208866278403611000651956971458586365028437988191035118266502970390619590520627653712648179495589823695864691059476766340005635155997187601824409755901474601134312583834077060048782202999770041541692483246195929332064463690053234782254734945829107058895964746581903304342950448206364579477869755876417703521410915810488971071752393036374860409463545677843609946727004953719621879509597087448029710747017801499173524491770405066173925916743998319347915107362246309945857877833886101761287174769276689194413495773346909274962575919949828431243124708221810725743442478806113251728062526224968556348110460355088560253167697582474449878231150014154660394276354055583593221453466087661425338879847707851930299302121915124517736014101739803688107554174149368514923981950940640848019604510913877920974861265714391485777844996495291933597893182098572588476892485727254578165328263458106168883629703633583996865200797439268764282030557703851372031914897324020137151979501900599939504046328936607530202868305665208839650527550276213525777757416497396406101466565788224372995036814947134408466226907147843399542161750404716080427346046535582468915302983941424125134118587967720545656393650584272631889471118959369168090853609872982582977732205188074369364366034833136760878141196461347687014956627380924992656611273689976405533848205211345680689090219869181207035398624045410193538254232036662438798254553854661140811453339492349559031741741167783787572530502268805577021418889987280476967117448711265565325849711560789182759036277290835280506063356420167229796439310221731972336414837662513985407950186924539508333081131360338347658767321339125650369142446392763144310407695682707290499146986503142215889189703519085221175742251936324024921944769339513565355988969811577141305570066101664694813649802949751439012217253793106550140406211014039076721213972729550636876694687278436175285452410335569661447717406768473245074402934223417713329075127326359926762915158198244099399587164478119805925218034438739164150116811625000400316750894143831814611064453418040236008535014892670231764530291606767641940291297811457185913572286443254349372441945013127937323132652553189726593853989336148165554901180960682652829725149382655254676708703787295841828333574760959446790930111495678991023323847612796261465435410613118573276921719672039616645699278405174274163056020325722005593566505234935570690546524415640514342750594680196081752329125669454903377286190928495990135976058791154692677567478381824395162217999272168869432192866479584935581595278989070953403637248034425619709569332226634167280686870952480807403248230026908382375399439317285447933145701626107296386633298814221209919504334725132551665351625346576683116917465613569088259441305008740306055558131535268247120873254321973979608349714170313828462781782889038961475805808709681703181588834918550169847306259921388161126215958046459609897316759249965994464479659896880508120913598784568008441819651033855901651213202751420362383232316520040604184151011546989060768918923736576061659228368246650994365694260575801817150102276172950564123599131420971223096698319004249487496702708658692518761411131738415498883608380978881381102689675941160301461271226043947517534312973567470072192078540309010949747689013627459258293457116152831760833723209075720183717525708512304889288308391903408258628230902308780938586367989597197836327035794736833417438468290608691326865398588630375974482153044450214522111780472209530004646521757053276789208672298962211588971891695723013132957619775089057757947698568780860343588323299042188740233150672825151224661788611549257058119233492142164804382510842552128809606386166396242730106223132443071876527843293444241098033689937542877864733563394950195103194047050913098436096076331621107600814624365730167170710823889659732171309969544568204545212532015585912385518794879620962313571396388000102601486795341199972553655982393572561857233066020259337292705711400074142058686947282071729610824368915870847479287509731739724559173985048270771259238248491423634779800955081659971948683450220110215165343401418887085353737568420076439261077235207839471066925158494722948270702167732541856317969092925045656127131119569130475688600848960980754689109100083972672279518147470933350855595357677245455391794244320913299706462588613041772053336258070910934391189905489108163917331609795713509526098190886769734766368026481440337715623238658202059335822962276695807736748295161568329768811129027058040161024460786539666238416028969294381606001302406245432063631542528902611110612980169029134947701323187445862313646800872494738597873175849713175670843393195202708743613412558752322978910824482084419246076369341896871976226863844960382413682567900924804477252004448926662747672379765447484073080687948117715847785007573660938018921175685653716789760688475665611905339544794470878143122560865800709375866529756558876376418284561563855765047198167549222748868878803870434360383491174669831350349706275017673314429513329974063802618219450996288361680233858043725666700993930384407034730156932527304777600847026089314274108914778583012973007275977271260137951276043126022181390879688759964734503612971153942740433026662525236911392884818576959730490439714843338770463091965871773546537270649349230092419179367446370054447169921419143389664808739153713630604476471034032232700391284764199286468603786800601765202568534536760503481864597399823773063984559107146999424126557532954135884594784742521410486260193882968689608010785351950656558104986655635376798811365572497299840489513996437345017311333760332802167843927711232794894655333289990631911000725341810671381114899121876095664639578736345693441642527977340422649027243204294902164746727234673130118522961559552762568054158936846376684075876582514445553773982216282272211801441478260394049757619279784666885659526393843225990160161479463366758638270446617327520103823384130846702731924494472047878864804417818951151000121806305174689076246812994025200108517857129833847072501967189267913076529347803081382475363139839057441866098012831732479283720906270979967602953949745413237815264422024987100686133766086985734469922718975612502000167017291702591229557698815503556815980352398396086217502570223478007538909537399793378702109705057090529417762386738739117983328149362322273649374462250051607612880399488060542799446429517381706776303922730798608250889902170453816866974154281198149599011184118207841609098216411908836607640298101941881422879992092188715088311743709758687910101574440401032347557865792047820775060254848853781745613483801117990128959059052178616958454300157265610932456137351632443839435096983083882151237841340239297859747115064843822675030918666311651159891792831361383029049939439128035887729860151844718181686559732376039814823685011941797373402714956741338554063697743175578826411008156386136046843977660260888622387403843531703969626823604457620448124744694244455715381213842174206222679670166229826859684104572115967658736339448768312154697083197275875853921711299600524575560453074010804724397976633154366022944196803462011611610011574525510454873952024468968156645506084678371921297364051501533233716264563308717727231565629217198385635580743881902052486243224845540891891818027385342866111413399260147686728529245798577975836259155092144765654924846924667001272420159818271534707135062287131680746602160110477125274589423573761355435201953941110735976975036072240767230493185706679183466680724774108849675762416417691591765232135665677483607470118272475965085847993302763906374188325190105096779447451118198011738197306505731555112054868150564366381158319716747016052351378789812734910576639418637381329166688679456168918957083797841539719834415254001710666149042760767071109965884496918965553129995167744354673686491551008776583107010163923977209054880528585426324777757457113359115446814963252290181333949070733455601808131241812371584441429315770557444190527226097655055745452830731122830055816035652063149058503966270244223076970387617481884825312721290676527590017334839739316127281957085501144647068293765957919222291757260999294018930604743811498727242025196502059361693683390832903531192817359126783635879385907733783288440482123230018460524188928549480137191090123011669024030911845325027765380570526671130236485858541840084234269877863758181713935209226250123833415486047830515227374959195367918779201486864287961061522017340665615994420022564975337104795813998670988994712379694861752272335964780778185399716480339680952463333023352730811830739086340434372327232587625455871493946800917760119446684375879803400473896336306701246803592465332064862910854442783569624017139465770477517795211894279144113007805122029546102858129466376814407033390397367834052861648967752672306555601020944335217822702005166808395549554478140415256438844560515484038738002630388012104061119198926663545715413196356900734360427320440873014487970041125502582132409579250905360755007046452150270904125385388753060584576498538255717843948318316347262602011026711637130587550623689163863591584052376913092799196842738742339225176809094187808624812911922042512396339517620899276827875592958330659680725679782924566157676727698364774263209414824505474462826518256573605359497813888476989187517012397685512703672484859681239652861459526945208808760225611769182376774793893079470791362462310287652617364608629715339183551118828721944725274898204510998519107272499760973405651159858576483432047299779189842764422876222204197251536292712926371946847644256050378456087633446734358232316671100579024768174331550941857727814047849647273661444147441836723555157894202375650739062637078421123341370502018027438521229632797303214869111900053327961951475967527094927716464820319231091507449533066675808782939962893665790920371662079572396758089572780342707219049973581947345819221505379983454791472805776448176615433784506330058396575505236706912563925225660278132961673307789805208297865055888985931915899179533743144311060233349905218602161598737778352409996831409925155049940341054077558020753069574914375207906479186107316752574018436778068090595523728038714365681137897957926587279247485085784974494185435776467165072215603107616756194861617379057787323573360602797305231958481921319095973555981498947613132159408441903803417682306335873885988034098286279030331749022691500845885544961017677085057609702280631732726520040099896646610467782814415388129513054927435250940897653895962876032582643679328415153515554456331758204557930137469045825886363901469853898548468091808469892247711940520979455635795926408668649468466350583311988140615709700433996446256886884816346483414327232496852509166551566745234008244029997124017512831621205110006349361051819051529216874781469555389336954724909230137821556710588145826700226355002611834073981797815184880942942295196197990207193370395545119675695780376363107495793736091107173616098197412864065748695231335250947029008228231643455312731606703200061035878833283598649990104823983936823142919300512845085875506886217425321544824377290990243214603411362470303377759220318246652759563869420152886633185086370124579810664554014048453806777812732932320967343622442783251657842666442740066660844659826708087372786741028422153066645760162920746610650444613414844773160533750439424726181852218672172835373562203953691828584384683064814433354229780790686910119263829710133454394317340721500140382339387146844168020351565722602928477300861338763524294434554928395362163019138840792297674651519263117699997846601911821047748422604317607275622016649486828741287121627748956050895016827800631017033902826288987319952063113110015054990170943486484845896603787261365394596086012911472637189110239419279343379563586314772334783601234324557003743012274553377753539062525422724587650968271025217634274772757102478746510225087613488506626814495755859698236564461395265596992651786085976428423297881289922294252208497097926213987277524109816911850934321730919930396163571999408937384415363632504954459214930290423839975888459970367637252932578335823535017061439969675788724309506519660475826743874044378946817477403960204282203457724615152290490383715401686419688282807410990972807188426996894020184077581401295503460186107351434997236615291607666349871150771486046670054063369850272928317149384336121589186825782679217170400261339850129946021872810708753030388343783612038092479134859679773798856164907638389765075240173543523737663627653894732929840643057543316829255014966157327355175924508786520428186428293128979524028100518117475015506605301173244281994372134667130225095908199701862021356798468116130082442820299020626302947812603790179360694710981987742402271079713367467311606453326988447741447206654326764275772849533864656108999977148803162572277365508513675337076170251969077513217345003364208970422126263007250738379343852180817098069335580682349187099774743720990519116904138035158446317929857859690142266657401344602460584411538917586494048483974735141203203515377111618880961039401235885385380628671580589158466081616613403761855795892022769303651235211061714732501027435848032629577007995394540415900567919624225089921671498398109312484187176773094596315608071659700199418636698817675942994689770506813103452420325781229933430098561634938663859955383726065911769558903190982207336231528008250482053044647139665863393064708941012395503206088062434513895507417983771511677208801530446980292589563361547407875206512032985865152095640640489754537871988954892316143316641418555475180502694929131094654934107687314507366208448166665526807373120723456765377176513171017053668273790527775235205216605847138416589594881577256790696616235418280138740788028756840241418351553092486147964021056130635932350952711940342209138306709592168062830504986941624274168692137679921031057861671621121874723940652912977919874179278404203622780346638870217302095967197696749906419025514033504789792061362055958387141993604836034966932442380607874937093953226269746169716673045121690019529649959596582797941231967345161266573720808645083153061141239643920911051903408341158145235588703609391740798621548605633915750661903888625757954887786054518774644224971624349085085184687741342459891707629392578096741595371299899097008418832251824206200967812225041783751284200016550002161203429227254208243108397509215829188114125390411331445820599159385547773199289689327222897296251916590688264906242013524298888949143071031892843149107657633084963956640087852107106888588225199961029222713286417294159616834464118395911935181237632914711580414568603320151428792821143045065140133844999358546653185891211831292164628755409980072403965197110633684054388450691312999598968864338238611034557579677722129481919312870842803587903327373040577167650089307536265151907028980431970661745998863857915167746642395658335364200800754895419098053363600148545186583869047207089668866656860785523556503265304469066677505637936537265955426683105404022436339739980190725100618043997421845377084255372820745991762803725926788337147937861068663490868468028788527959293321815416417584053434502560600963590499708098443494725120263718124955018792057966490879824248995203317682583072493377233305632538821258421978167246012067166238773462232798039009000457114024356371132189393166960069066307936250091729915410348701052502900630714478710188621678121228177369103731532463884526655258211999510955812889769029904578559866273171615605637581867500739253805074222765205305318223199019084513067981131632502360720074051062506833530469214541630573985120712536333649915816617262727118160642828940562004279526945000776006346030609812882647880038696272915144974525925071457050425699064326354360272560767157285953809740450490984893266557693360401494649673681991964076798750885208432127113322197693213883798149335607108093082668610311016385251447520368921342331999046507355606210781751172672793121232773272552344203873019709222919657709157806836582867655845975316830144521343382073134201526194067114096111303654067917634361779739831729091133832538059784427134630076519319098330033658983631397559595565106752045443031978907750019890379106089221235293994585831655378758180249534638951438747550042256140513543103511959024874935916634605667786584847324314465416852289125707939458571984521130701401522298522206463314944395834021085978954191487441612115309455643635389380453079684261573698098324173300243469906522701522126265342590795651326340575395111560025095684153507249704358932816126287296888859545249243567861030965521986831689884869155965588530927411678128063904857688074544636252189153688656088251365787195169791747803068297768532204394428689657135479539570095663246607945302573846605126276059666564035068582643314510010834276436825884560964798107151879512467555458175376835157850818072377593866870155615348483982729279987548484466673403770978369955106861140394677221369584282305388296917537297280536211327052828127100079376035549652781704704131650514920256639152185558738821271172951966648817035409468580925650243269620450615335711399222717134522471706356749139183622633280292211820815550595810302947361717390074352071066007836756287680504069633473087719498464977942507362633287357452596394725380131507888579052947409858455498449970772033638488306928332535334334456816334958796605181875486838944693600191367772628700018801969404637759288115750578257625032253435342284573278787905762249230218767727189955652136220624358670624958392854479250123343003460303452398025656032787066422586822201819985396807309265823364365071466653143960422941298776541987885828382030642915123567532750458680188257632195048446014228839522060200801910052716875092864157502273606620696046069186697504296583546876252676836071435320968865657457824881070461944959959976548273119951718826221432047165627609173685860009364424669959827724056704426193872763477661940020291403544933798360685921307530890950206685681474482080951064151525700359227082161619959233308976817263024475195345545859470806781205804638526568025138305243789305305615458512968451685362671218539719580940376219316895854216631481376095747562603387397670281830580609243876413795047967682016982977236129650064174139479313038687830977300725959091154752326108017096368220340236548658594610050388908435544948377975495385556573151203351315825850185095016913648061504154585411998238741033163263436939448894703441580860415769220604688849505190524760421419631557487312512498475235568427387997707748367451934516820267777344073429937189468716386612818509265398397506931713509004027352653860899128756070321652628735653826225065009545496423910285327405244216655632600605196168582255328271434401700534991945177825791854799378670829615936319169086135180037532250311908247037890497545247841978267547851820770933053801784666687878901579534189644501723550516811808251719278716533050016035898149378571261264917769390497622573285682896735132649173542175319095274936219037496896049470251579449824288441936121781900763246408755718936797401284661399048614051194259128725722714883965278186888385243710760068715824434393683323402822187224227203163290785455938984992101763346307953822414183890749967733859326969291256114300496396931030265092508710265927502221471040533099289648692942915475826349002182137295305620192571843660637368736700945042799396645867787941168954802879432357463641456881760057805001952594470848140231321205824770395938483101965398913549987329968925497577909800946317839748002520630529206575070268040320945126861883375833327348909113289364592517931740336678647562257283196696975747510746684814114464193441652717026933348853820677642789926479673348418495980853888145681608952485616579674907102168103422624196428396175191790046230200905519567683891597499766110836512929910150096891028575533891154102872088775510341392149557896024233168519139533277447679499012372086493726169873731085041207416567633163074432120819688520841134292434369541174070743874903456402217689452822866093999619924463461934710474315429890777779671579549333085303000214424430195135007225775524931822532607145873869422479936352719757553586391139096455186407172938388851750680323083415579229281587688811367542725171208576417938470759764031857576481763952815404630935244573042101107090460081127422246826348331007724946065833721166524760710384669955941623531070689964810194820931879052129558714996241868148872930411979500008210668636662643462393914369617985831897288172011721422163252236091025681698796390932015551064748704913766188254675613639279997881538633089548048236251569053921278879776313040638494146828040660051248935830971252527641893139344773456615759623909468451283190301951794837598565199333289866601411032898679126273353302701988598554568335402963929363294032262013523621725088505708979155713266514159010438250072020467671234331278807392121517335794976782566241216313298419936366316879040099680213611080757973960883074859427968178996835812612484345231747655750935066014442866550359907495770296507230851584762693678816129202117812487388780403869690313098373241268782176509828940446670457779365143134555711967287663638410788209308189444127871807683139334274442501178481643098910032938048569977733779803027712344726428767027481775397933048978022008267724520602503918693320217297881333232887926898372834577189327286844445141449376271960308905932982895060102131103261645508045919361382646562181195462448032264577300093782418218598188334027987405241005742673535347745107396986098380942838287933377264719422418763100579075865257260029154789890228329454252662873790087541310201567665015763646927803237999652405657968013037198249801766895062420767177663866212452848560772840122823958066298485783935480224917573657034213159012052023828261609953789991512498151937288445611316442198467825250268395470497086298994269537652049307053910439155536860674404722028998924740105496398477620981573870630335283534244052645696932374375150933086740764540382764172445504920914937934006141249011088136884110531897918555382578805824656983882955550660213809412303694158738640119540212858239474472804711648762393802137144281769929923777817060399244342171549656486738579354092107233725518491925344281852010892954654657674197509384720693689953554579430905698866713319484017597818902718486710762120238355233569699840182128121651816488364217211608982457478480182416388494468774159387996242184003063232215273362311959998487071944273830698257225119577305557479072243993071509554067640098182522705333039623796562839472391024272827161328721174410317121017009324118589616855359043640212312331644358435229395729438563763269690738489792388113505168003499024459315449703565572763779119677071532203873100529466977053196516618746386608443948540441454890910227019496946617247956307344612699201611331992027159537031692864583972803500470602800128434165157033226815661667930308083116150945695761420456145616709120448755959290077094275041423936126726377365863565705394951642492926160821228176083772435491029463816361445864616035184667274814839872157443105222651423288516225971851414541158767325380378825203591297373354741344554217978728052501279790087033393221797871819357900736349427310390457363663049289340298493629090944585282071743211687990792180212425484032682002503174448053166689411295753536707278195522125714732139928466301291021988292092594638404690805755786233119512951274718063570673707732505199847518455436695047214487625484859868838195143789225240885074695088470205250539012920666631532879775447139768293978391939870884033752247055691355313077055129643396922963766380275540266963604755124148924381259700611744730781375241424558542058293872474479311992983304521209294966670450772921087790013732416695236280827907590256466991362486702640197025108614632153963892670827751122938425130975224100161628809289674013351176555896722513390885364927101767893955152399620594106197341200152637461886195129790222174976422216978665349261043946882303686877700833115082359026880374057798128833919468599711205956115414264304579919908334665970144925354406715005878090789775443531562268879778228868121895993692954436169489438813528087733887925577787094428930266010061504555418642732529223234385797172637007770359017726837647446516105167146023548914194818125801639843605553296709258762275520516322474644247503053970939763663318740766652851737719691746772452017997009731212993524334664828518937563317575635567880405544212351197300369707233424563553460298910903948763498645615239358068489631948250608457190254132719897798084886350883282257368601313242913325501221432939688947485044510670354377468243711195899586778634808162020716591375463250972282395217792061525169203287731812153037093765556762681380431783489782247201523511788273039129815879499823882194083959098851271777444474055258798856885757694207081749859466526217871056898148748308937206302608817451363312244522961765555181228379115326557902796638475113241712358658130280933262914065412076677855763619249182246920715965741983731394677195728553659543463146185671879331120177726065907542549607720499139212176714633418782174298553116498477534145300064088037883193756420684594006748247110799073914623087458736492458584687437850393613328790476714214148281405040646511317783015277925831077315885592530733468348061659618603805315807599807650194956126916043188569967663750163066500142660922728501224398841580861019144308173658964125959323802616041708985559220861768986089746376966502434094564445603876290908308706940340552753664903260115852257166465675697270264536100999295184888659444282767336978987364349013874780164874859176237224128463475848327615242715835933692878899016829356492625646619255358165099450064073304214420341616012721324304087980056898308364065212322646777047548224312387034913216668498099717290183657056973938181579756073699877444571981086607010251199716707717367191055316644276237425881590891868651911784248394849988353490842552551389282917608323649987860740448718327316588205684704333903314285036487576481370407132350224979045709473642664202612196161525072981183311255695622311343609236195848296604709147771166820903147310218576577055851309180329993958463277080074749330738628304132419296198372519264643264763889381506724861917177977060442624312736612850590738425335052380685025606155955525558420772029516067393517851430394694794976887062172740681335165577103905114497799780274642981053614521250675165659529110450415664173916471957464762679260647561058279105837570026046461523019444675774257159924176262691705250653101421899969390541823086911526458998305812556074306513044539154944357646365979051881832454013075036150232158684855296565244555891402968163142633393485224510599421866010745785584171333062862509962791322163896528449784200337945762520226887629054453201906035748261238863470112377320207184369041300769432096065173264401705990055405675409194698276157030310489821485825699046836417787428862065244076759695035148492431623130909092964832165258960463865164096121768277523240175447889552229663156743951158809060035040394655400071494472037832788609782589636567532524177692490806784319452639451495925325791408633273249581460321014686088804228734631701146628909145144269326040961128154553656806815420290144351256101100310429515818288864427485836717988846839109667015145316177130656502633277295268922594288788391247315474180673258551580380678759776492304866466428561797372086508696488775328238521573899647456951656459883227192827127240902688067115402683961425445313285331651877359493773674148079254447626718490783044173612687110083480849583867876237073038277299503979168821591387713558156127839603885679703271582446542791969177852150266511763038806656184037695777220980660225912321071270114369583226278724417913898276331102538879287399140240804419905903872723175920810769739541744557139011240944358442899325606550526198200951755934960056530151947216969407749290253538457175394105406688532829519467168155908575868450664598378342212617748832612532887092294544551911974035134225096412420180840673537796627775724926698709120144059911289846408170196980465367065557578253368002578892443233236322766560973356183971322228612734734919645899627528365741958037551229446112001608740220183833609320465036747071820180540493449502993016049741481544555015103617556004265440522117388416236724641868377208920274169237009991402788423704437329110957009265527598845317221863965031403020453663692741111126957880886269182135321783071731920574110209020821146780358480204424966502606090644291133452506221696289428940356336040500787573800062423715277167051187295482521975819658948260353417609685678233161453173297360051550421520174484011123662111827088485133939335524571760034978100464228839601385830717826898286277344094664182699672518717398204870875739680978711860513267987452035604038713815854926544873376114255900058437921167795627846984308136315651838715703873173376373766454062710912887413102897242608850502310437315792199177260857636712149493092092100600999523886495099892734265008891475882659253430760239447188860022728906163456167225303693551375585299787149007896560366796218975407421998712511798014569622814636606972432378602845675314669006729907967616952207084061353479213358085761176338240413725869396556409646926669110997972363907980758567568383397846947887620675985935247642234299044526327052379632269843251568953198066069050416293935509514146861238944911713074953005071130778316822899849750090488105149185906624976478156828818306037920547368307286840950264476262002643821279940216205594433610956110166830103279039433317944347736115565406159241145046870425715341385916021507964221413177193308663518130363515325905695121402886521391920949899468477267428353403795186821741516944704172625636013803719578578362477141733975680636046367431746054233078018970455112362948801983117755175276315522441254559834725557750365639379077103570949308380961286172967621247290565869309797294927598477997738402660837667279048594572200414988631774715897036096517067806642457414882662979968081243994885035855598527741382512200173855801880672841649736378754050207813464367350179556983356716010860370623249275097005902609271193358624592405958098547135491902712932181919138616264222033614023243058977131123374869742967142673394750343680850051729986152494487033211531432579123360222468161468012334653658034934912221886460835476227526778162470785639727386731129638035883280061227556848050174284952505910208748468505063278442682582828961576671032509558342225744629124112283659562890846180100174105395591192661103979890588543880942219523026036530393435848235478958625501768104206737093702820303987256073120130918894198445373255605193990607374242719184572843888803594431536661657365699742236822462416003892738597498236706510645832646072802383904716986996521180395306185520078290490737892019467515545043353523438550344246190802511098694886014639944365265801720785752148557439127018148553129439868219931544996902251571161999732464649578593664291100078095891863415855010582743600248615028406397390024027964545548105336924467293488150923210265549228260636140019646182978356211387408916624396234094100790427848004311450759815452910976694878189760968103663862085066374881108241437375434035264875606141537027074289327765765835273300507659728070116292785663631282407934718612002238440058645087314903126671532004997614749122146722053174595722649140569631686391417040416006369886768314371560251218218143697696936824878629466111853995711804592523968619472432290063422238766585958971908436499574408586461712162867906805743265208005106308985267407838190349519923300948637302820253842057659512484194739108594815411366147323043890697901428418640560611654824525456752800054937156972109054310602474513586713503840750287134016767201890457741340166894993319617533923184943276063993993712999910282859584687590649704968348098764618977151839592279302410607697909508283876912530251126538872280325065810269924270331178333461743711386980556635709325519846444358205452028565853315202989669099081816264932759005611402268042979027901516663784520978346166806851077313518161430960677954089395176138774514848807040870396152369838189921056117509512392526135716115929466466410575814536837872964801544090659815057404105415575783894233738966954594458366299300645673814994822009431993332971160979842305837919641191351920741070143380451951478274381676449162906128997658888275052117907555333078481620086179511977404889440448641470004457492544102302323083900951156722132891301707826223392222981117675357266927964229743556689776862387734913857462653481261945621692171075666197206922184012313037765880649874152447200219957632387350336991027409253723317288148326905911704954214332477287192887407297823407705323314740257064134843945325424021493473276339927033413349557155305688772583487248882095920347265127055898782107989601125123323307850160159386033129626664738315659017157473645978270169209540414958415654134042297897986536550372179828149466623144165680402803045317461320278784302281561225219288466175842691585496050018021254625145038922309204346456189330388618548315510680000683574310701123404057025743995081924040758436292043027575891479719776287076256327613233675570340451179808983713025925199956645462569081599522765905403974347858452985605971942694161720045448500421408656250224234469614414987435717521641158310889818902171072953214069485465011207888241122896573467580227726422395908096486935332031279687914795118455833863204865971245273518122669837674747502907142435780744980709488145551664341064882663844775532773301691504443989364387533154126418579328359501260542567737329620582479835221822691915494097610087930739371069867806929397254912130039094055661061339679391153849213027240028926168625998983050389786391596679833654368861641590833110719443399252286082519319714923872753562757481436121484216410867810033380006449448746059417600283563126711307923523765768894636365113368564078038409407079681804201919002845669577114012155213930683120876921638911961252350591453286029788097781108460303608266381077291656188350944085730142522908126203661223755380770628066332378283691409043914211041898191685743397165094914036917966650215258408780870790014529059082095874126300736052358160202435671942755420054009143768755634774787815140667181148047652979740917866224309004778444561288433093644544031050139965371425569793261690549529437421328239222328154535668201311804281559248011458648827460153328084216507813119065178951325691919971444064687625364532860316895208344115199218422750814624991345470771784688304594181207599052074695629976296806983212324478364577024063173776953074929614290620221478121108686426894245264907253320675809459390048361462091709931171654291263893902456457217171419007270681948245425552677727131658800008232191875311311388552471625909824343131278158857750780580404439356614840377569059432447858358442964989868108272125307197543998759596185444408480569361121550500584818990307890132385673622154625284406383036703088038194551983379076036705797504091544302947970341918877840957709754041219952179726265065513038481254149968623225767288859557960763573980857180032681862332717081439105125627001244831018165937092436837063566848278683113031071042978550947759049375027149708320937846356484610472610845171860385703057657391604527507564452041074099458795399017799388917511386801346271143797573159300402134744572912205714481906978731493227248578279803206390999020016350529773928059988304527415082191886802828030555629060124188130632800914078058122522637650148137131538108886473581885423393068248482766016068209123781268693251431673736252443399196529300899129029141556746699160120114919039567207367286623377625822735116951179645855117041683735881625021229716599798546056892810406904969773818489152509751871375428472289255602934226514706761508881621138271114517984685520021802087056410251545290276918048263315075464858425874759569343986465228981278123160212886960977119754068305932732641238060242797182186827723654030582849787670473485591288534281211594244039338591357934249544269521585607673180786269060463327129331518123499329041178946110754957147712938075252337422691196045473035101312554187045118992834583932878047594658954290541712768375073431010323550010228923651174172277518791001484976722270786634170083051086734668733724952972499730326724571180935579031137292273995136472361412828690528740471081629340785535591842671118006705560527142414612379592678824669636930902630697123493188919306405322412824319177211150426798601775298632657419787943373651933610609942004011192799024097283055173810937541266367356837895605303526346734444558373682057776142254006257369219685384531691356621985824202274826881900271128891098514072714884990205820164684100282713453860625597917218635840414402276013857555954105005531451001160177785046665381282438160956559283835838999243561315898171366441971378662658925560744628770590643620323322742107679434975492584075525647631685909251516285492357711749998384421783566553268986516248134647656264024630554825748131817709686488653769919460525573075450154608654165103559325797952330801052103497058726763807372838789606798388535471146211914098792535562045926766137829239885521193465619507843705543262347967469206122014873414337337069980516252702470869338096105636663947640731215087558781666056438598278835204218260088835910926110928457051444631047122714013801560910750508857853380129358787706882906070506097869031252828577373222021353861834314586149216278107437721331146586482202727653611444232180093480675511424418094628472477271381554582491255397213011975334758192223967757085406205678638434180938909260373345122628543964891497710134946815321226523002463210564758891877761839527332133673337587945200529394009710229616159410607370382940776848276091030207771951247221769097966135233868109627813749619685793976455905127512379791663475534937763747372983028029777654422304239167977630744640172617577636871312296279604676444461917629632278459031063269669879206688969849444510119226348219963707765229372557862521339003229630621809362986251863031367815794122793519353513719895316759070455749990442772725624462596779000292805682601268669110963352491024756134739494711107336954565916417177340398675285844856354763366531702913152023954106966382875330468270989795768029525331848895216528909898593526962640602524110725065262834237247213127028224301195728153244264301833361315312207547402543176053300485800305174162636087574547207455485091725953384487915463268416638324790346724567132500947876747916600730432364518728857439497546956952205758198614084995393486590404947133591450554947839093745377732811826192407451345506558532149913928607050548794927997643120922016908077491854819521212119794890420035618643199882418526288489775247757545495596189396590747140175960862923641905211015870593660827752034970138265344129285450272126711530698044927633324937555065684402483268181679697703806199844804285992275033309053024492743589308840656235255115012338874469054129725084645840120808745048198031927907239650592891005394714735724571554837384634702679407731180218533677867215517441226292743594914617631390772769378140188447767250751361706758952296888696710056640607582206819514916208210199727483695233450809629412038484962626195821368134066180335816015830629615495571091558362789141394041948997088683366525609317755895494935291971164990680463699283646082519245698176618814090948942878515116460732008219942423915106027404516986632756510274101114221541762499401990398022117470328243902548188224329087276063212278445754362283190590336464582639329596616562401347984120719005217905201566279020598036770985138043469575013740648040042999744659587411184373594220001722027568278354327808382137296484339776837527693825872775893991900666351204624722098146516722127158700772104715759608483527060302433916012935897451873931218753022332161138797565647889912581634741322902132592048333114551125249927888909928036207113639608698277130041038036642992500668674542024910932540049037067494932020220858482434621445111832028153615069458864156383074494648342904652242346419802528066105480468165269001588651284906596137887112665112957488158588750926452127860050653770419210506881463917162259663924955325973643280094770211646620418733037556516863064755142180272787938547094431455751180471854742191556020540392932823519409600432238425607420812189849150814579799304507834872542803841910150810349651847351569254781264870215115330425179367003147523839023205146164835324489949340938373573590119783830297731888522917551845348422875243133697721162860799743074218439316737426220230860048281984389051907985108682562796562643559399868699194853024744618853344581490236984799091853418641167358896277085108700907344678515177191116989661016365413687567358194358804302662034372002206102234716896211270073134402847757235464260072876101295961241961714288279472968939161279912919290141894458366322320820176246963973743890568053108353426708878672502554622170148567535151739122692915291978017969687779035290032042607409324282767589692654381103801565104571031857337697003596339934182623770188082568183358415781333460567961376553921724204485925085985682964508784614374310921587842375339689757448339227292543721522250220517192843647869748948038095819461794805273989771536099363264430515339823886070305279199714960052319167540033775766969444209505532756069870116331619921538967759226347440947383937990288303154419420239574229533209076578745296664164969616367788137550658512985467621091964067029750431555572742751378486456845426541319010698323708181948048547551262823626841953766044241841992935941109292848947154803106662303152883901779935327746499142080475206905671076805962060638558727646129266808496368853566109861536963848095310787711129256256627323821108419406371563815645752448257925311569937025948099864573559288322342326098056912114752420433921083892348082884860601474560604630038890252390751762616761732522314171852171864534014282816268102864209488610683527778883202077461876050613356131457221075105181877239062822511014792283944057109934437127607184832606863846320201129655355067925700438863523717582136426238204905575736960985430064993279283244818650975547645630776405120465282808365931429732298904562214214750210046476176259670373125397804909058151818648614426744346449385996979430339763927809909339277863065897873318121541663401825366884123740230472478950245126540794059176317391899518090976214211848913873335459183041377950617928834159423372486463008897996511132900778055643966117119667014243569460351688453195328198739542302462854775474304834410462181849525559078286737287291137734688681352619311268943189772502470562575934144346764619510718552408592920617508203934191879502462058632851267384689497760369191900654100279026573951585726022713386147953597533777959439596260548910389454376297132127371419999988497888773692963531355997679950012520292251857119645051940170504254168051416598664307762413618796936575511036746115619629227489731921128983979420589325665101552922939130236271018713707332611038214362869656924748841401098004973984207963143869785383002864442291666641237669367405905725382868894210038400906066951275085731423214633565616534668438019582824875348408888496698726948760862065025927217637151497142359433066469389377087918493101976011299849802177858713313948281488060861177687088315718186968519215716852919760698743488696727240486493644153125823341412362948760531478799735362830142941567064604793269855181847881909860788276655488158488969384798219222680208733886677132958253109660781641392981529628605144663679431527498246356741296970203549603892918801831354641950859748748772975677794575332603874464286419818214042577359530584220023549550975230064376358014524038550543898655519057787682704273282193831287491685413211178467286141766751455850695435124301149242848060659683250349473948650588671000129386423227181442676407035133338273903585549353068401010739797733865130188461523345659619380148357934111690140008708429411493826980902255265134338963810096240236677990108203988307766118805411988817108868864195293391630520585704908849607020475948612174316259863097727878179804838124347612089360871493247139866962732063451603862536964468922105134950826883531329099571952522408969116843918656789234168664811737811865399304616634386370915998979357147362005461178746031497164869958267907554450190169968371368912085131982556617413774415563992916667162537382085754115461237727908418050747160097637406674427128421190392943057946705324464506269700579025330332573431260310994625915729787164340702033033711183440298739441718579182395454204894178458453664868367065005996509197554969389956320452836933748917594216861169338273828598079768297922752331333619101977195411642422184558275380024114664467491889188408079531696195899043649355302892446212805044216736664446735775668649677248437497611358778623455816532837964725283017343386852460969139375275572918636240866750533442200560888630467934621658831144558302576153845095952958695681955259613203050663382701056020621970568936918663085684262541001205352709632572893990427015576699989520419987786393111540651991190114138269335239891399059411622360037570241872441404193016876010283358546847862041979040759904632832994594217954167898333228108098314233351180111986253436608272216950125524441354414244789592343665543104987944224631367970720145025871940097397276119101204030791130511255257844869500630757756503468348502381878395753959042948888974469434381078434835152842091535711650483963133087885210236118097996043529825001273116798813432081197807619388785503228611765301239778116071261539568406819781038751140478284142398932135564595996701991757052779217937863720937761449061295029244932022009937991570660424053997551392978102708747006528975541184436143052361203755247500592694187400116733423389456902585209561187578456704256588760771912960934934667513221446011441307390128319009605534352421518838767291994404189333721567371527667422837419134223607157616309362003367562364389719459922021096836002621548456999042760196550170427862052790123458848970041496913973266880135900536064573092362478112190648964561493272270582485702955958699999681830890910887226895083070914226253376308634370420877983101652385179476114303879430815631221256646954107818103060476645776761487520751513691683933954623610263114026532824651161293864953000672986287569919200582761217931665863500112818766821870150462688943610914249853209539292405757716418687250125640796343702895334108585249148655149944355107588828572964216017330531860978815609083235039146498671886670334208501806143613283090169148130790391034813427576972087834023192777619421660705403417868878930542053950053985481682640627572764534154738398266645975906821604671514354520522612044658203403701707461698650116845333736461651236901003316586004021826733713485128349801511221904725060103488376274572511261537095245807626298780865546441917819367511023875513690701711960203828560432283517156396500310413961760279437899489788578711173868768005526530531388771644693044192343724088617590044160217425441079492975723126530615826786306761551298261901505453661326660477068229192418964722193412970064858243198759412314501531443410735733362020888512327866353182840958412965701128641489844404333493846952279682352503974787100163509781371900667368870558363111810590982160421524168265344767718341795868286809803903384519389175593356235076640630809211378771915174104578446327466523807918033298781165808132079187855924762640768289540205922765359847770624366380263759768849993844066049768417242900572300867411837762448213459085364777289897853781234397171920977384342911297390970745762751524751971385361369670201971691810662196975859161481730840557367736953564293382767945073060216794859743886942679035994160874516317886005834475960737392490955351005450393002790637992500880895071477487293910911822488072257759275862250629404655416466121926102687213646015117069480426653658182056703198437962357767358668886456625444850373052177385177536971409231576614901448744300551407362703490666060591846908729213410962049102821472591488561836295728467879921161091067711298560267946983087362485488687113816775737210147900828436349299225365193436690740791116208826455623329409364520291839003035248322875394046862313101144413380116376071668081204872015797882671733743666005623949058842673123365153500386928262019247681440126030067378015306285692104733661526012470312866332833006577324797090566132264208097973981076815256397341593815491685912990305862685305812475503728519517563987923185759721432863587981372744559459953196708802978263808898704957141931894593112907496313284526655430188601681167227415587393722758156122146195036847533881292909053352110414087618193704451121884334177002872777310025203542046160833901870028565615393204706040037824225822620052442635639781930387334243765518845325946664548123935402397172396655530900780303188372176819180904218522824142697080727590170716579897387794351443014909748572962530454067964543974351648221284577983813539318664284880570861777921143104493296161423413376080709670948409201231862527856840468160923863060883870218071716836069807926104051717851372895587727096256591185456732084389582477945351140992188342161132594915592874675632704586910095637986750322575646359637879541318183449561791916190587432531428318836927447716069063297828421380299478882540513343583452629789404817409943995714877257948386477622098486937499640785620070380565105437628907522367171482195138235665995810499638834571699656173966055735939395433223336592313031673669444323818565810384905016230465700715611848990676165796131415836880841709406517598796945963399653063805985268720413364242493344686811603830057537310807592879919543365652817196268802192690045844208885873885459142079690019003715954260623350175681779513472060306388330271557955911304201336598704611708663193450616425834075050825260607852509745329707325535758097080448219391666007862810737015215693029151657969293842772291041705155847934578388426612094957524005021209280121016213291671182780950802114938135336730920440451781718691521274904200386406609036926508956506855238032406876232384267279591209542421179221698090886647096928736149610255306878424378153094893815259074378916022273189298456701245825942514690077679944600400411319320719908686761116665548752669205288320469755973089166906455559490802845458709048605858581117114129651722815268357239640923425937099668029891355011138933059623326942298612294247696100281299365533928378432761975623621661374908476719098852463890662389124210498904610237287099550538694017612152014766648889284423783391878229320732849712654103454912138283451057278493090382282198299747378857329513222101438273401353670607065199832692713983216917355404039242217443512692393790105863998454996305672361172497883731761788606002819777615758203980799276214703774642553399024373735608443512932361371961554293220483886862637635685535343741770532514695728632841092638419807152920035723313591741851153012255330903483238370981448245181836788417907370046237897646007869663897290407055384043294771526954180276613190798216233932830680422614511202773068018574849901620412965847361042485359771512337263333658155167175709418588764594653401749543829115495196604193973081066698645123162972527354811279246128683149135047554555296494762171689525845936676997489507673282965971663626849679110855795440697568407983267778021742692074874317344921354741610245017604222833731595875503862780159042178219625808556949711613109117056519873568974903701086796273282129865650919915460053098797080076557526226118674721173090486323917385439381385644210942011999234071035980733384127029184286232893359916398366287004752375239957040645976397816996423297187971722864792452879767387209280180625326208999861135818251831057691931006629478684839203326438217887247138661048429535950045410470214489342521643245185924795597327096471333948028124018271612209293400458301361347062470581285463355881727743129896215416096508337691565368528069452241652008218662529221655274526321222324140725811528857205120679252578438028570226660532215631441713454740102111479904671655185830505814066830481882859155165883493212901729774413416029758703504313690360618103468247738854307180304549876136587855134067038177357248561118176617424160094527079451267626043829393759551442054151279729569020772805161931222263458590133907825430297974863312562172157122748168971374314935302829867128831381382298184992886314425318794574413118101818781004696121681939950175842215661240875228533236615052182840680744491417765087594252054290053359861847903340404638803105342390134890976484090000562629709012815356458700130892962262387094527298947559937352942761493463150582832059303468424998803587506751388462766944946325331792696135980916071990498979560724562074032853018109098517274709512505210923904073491337022374921270497329984520963243245738755853783501789063256186889333281424773126483280038170741839549224342335148577019037216444452788045834803374670026494418275806192032323181080814993688283806691789968101852933568896396382186041527182973042935145749749635745673031909019082378216695721792458119843303080138973587190396657387963109030934635728008933513347706949336625142574935700767245611998229057470693164789003428609684158383817884961357872019836700280205061028919262283288411382354754654424016740780027982845100894193393720543609695649748290924050891536964854126292224908543336944645203250485375621672207651900025705825651225553990646959975580902700545794506092249578099016784010356302402741563331488909373372349883296947034310142029684066210309164795872096057625090992926426462674392753807559381200275884784249490872442521475632027394288667147205077658798059199125845195277643053369419254565937780752999863211800468144802631042678701319027557558617543526922139577293617794794305799527041393605420848404533956018627025670545749657498467445114935120004535251579620927749077401321692517641868838644682112565337966061845235066342043209373394657237951227719784391897327754646544941643108134439254785277562204866954680896942461201282967944040208902937784881112054746593137703160378179341071595689719575504172486905364789741605454320497780014847197027453015827307967236843120015681760490823596957661231432296106075302578005862771488109857626604150844627188931654948043422212569451828579301706097899560500960754459606768072504787226369867168307194850469754980616000623465870639955247348057995937389534393232475959079492961745390049298911049299728306030473228996793371596363786479627047441046244167057600704014108892343311768920206920797900124231987144720234053133049332262667035096095512541243354874764473066063848980349775793722226238164364458585300645822991911424735031787855363291771428796690825600063835003129209912395260060849003200815882399363329856501135759637623302979966589289541067255945232633070833823040686273005256386493518137027868025782007323668773347736974521628034877048182417846804359739892704419487406348641687236028273445621287096660589514208879887982442127708170266184894052632298927495391184443959522702942291361820260980065487691476639476966233732014880524003109336024960393332426825922371040404045874504293396139025070852765270919381649409302590662901579339518670711462175250299408264331064284777745361798039192084573750154995697217810108079412325550210029187197221866280655796702778080963937466986078284092731965494647777307852797269411224607693298366911123559399573564460839979193142414511984563690922680774834805331368779022298531054098593110664723011116142247977093776677972599077967038922817760379469972022263488235712946946887805727848884008444205833519993632215923082841893132716447565512443206515129518244079900832760122755514640116207644935930709076709836051673253399728758270894603197219689276613877876955648738242591438260803682865531367118924539743221362252118987113339307918339698187619459158527003551790202829731320906207969080320195353031758253437746751653069193724413316432797896794309286964717855095395583316994448958830971191717532596830338072014530514829780501129070848661052680255419435855206269213790293202247735235449791722665061784262279736288379948313220064943686708798674882831099580073157000479123829133444752796347733519208916492571623119432490544399044091850722389956221153714089667227793639170603023107585673405318387776395556020553228555902487046328754126621546042902746132338337753448284770829667225521763193795657087734826449375169119429332235435837617279246843364690366484807992435598077897157328736456873689201788964311772826349180314121057908331864523294774113943134329617101388996775983047661847759148199175882769543998710830208165643358933360778579939752162663591564084342291898336770068986355640141091147536138503873936047473885401756009451061441685474793393834574912953670304560609950154228042879269949347277711529786770173090595728350326084406008841735476483698965025882106114620019030496798462735025349240634342904307538858703534620005940405608212827666953008931332746492260162303029776283686502454852176559193584299219798471863277184961369341694078730801201226455941889120115271089732177768403164198699928990557225245675535724585559888324660933020542328504101398932582587092814041877886546359128572088514589580054443751920651020112125143337206148113746203709955573938144907473236650432469561985464500614309248969178316394685756850153066237421873994998236209427605661709289511607268927435302871621675918669424782777283041929408719615853025913252004083559485903210454180380937467129232102922296681301938132107207713337008655279964368859289087049603086143991798374478058035287453493295267756974136435478713555407907771374810874403675218126256843321646703664345867687853345354345409376392365892889836808388801481232708084036901223610086818557178852906259216413820801015647344985890915948876781603861544946063506896096453779976980099564420864957181775484038512037957241807483201297685300394477416095955023020402281358323749385992049561606782587613107512693901374003651425336299136388892964804769576792882725484416769925760577383208648270386412976096514756061628538984538724985932489549926348054049844866985546548127906058183917983056087190565859923079435361203633423351802849781700903441318598324129602862040387415987710333242437362936818060550984446439939800210266801615646248538667473994841639232048875180296237305537121874274964967912892609366496727138402030600149976970908374838604346845461332944761316346397948105575322283170508048546994755831256602000655505580114223086038297175712884916241582296726561283712637466457788402453711248749085879265010872645662256535951097818541314324660544253953624422903315461691196849600850752694531481222678832304755716723115339135021142387763260889490654252634484019386855396598431819040593554799286649002852021167453411471078604648809365578871615551775327328318938797126393739661500861272402695679570162312989434013295290517184140513704771728095182411509932908904285820204334706263252472854080830658508448731165368993971638670833449371509903526513433610729168669420315793761215935572246283522645449492591779438210618114622165713090935345347189895952753714274328240090404933361921934043021541942000413038244388166911941492330239786713794722184050269905157378213188938478289248667808514215309612232048423008290613268507884413915693945460941781568624018206672081035636934798179074791225864571279019241246149175530198445592492305079263232486101158259280321173725741429539341245477289805302984133834320848975245086688507634113337201907689613205975681279658939954787023999592443348431040498875152664072254381258324573323879375369678844938999968312279004928006553253203436212390861028010144244857545548390958832551550518746986525756768733733100713549770358864802140600014549693737028945780699513086314620490517051419474945516550710152103042885566026996278142708742988378647760479042629608293864451279660157296281096130969830082219346132770747148649993713025169844553717684133784866448694465429934345473855389638846211126478928601678877902093850085557089411853285585735536433646623355774793926489192818611941369412592550063482009271076270768621686118973300098452893638372423102253919036053029704463050375570092120978499529921562728122194407468823964941094486817140978815254988236746467331394575012606037605127007558103738291028129006236644126937448502679075436363987730338026235941404413000663895606569247715203521235257209646275771963696544651711496382408833582542354089543790474826680196585225552319052449523052980127576227044482125583719642188605173734527415395003502474752060813723619141941477290190166049036017408118199974730452109013495349669229608641027225450201627671041686561205350828725103488139016727642852584784498213556944034855309450046677774277514799713009942837750920325231259548705791986615506944378865413436114598958354512246550788434006446215956764079811793621403269232523600750427368937909482457485127660083101967032127677851193994991833438431601709216214987319010928296329133332599573462147968197879679327944156488079050473789354988130228719476174076319475161349701968207557771366279895995766078338764714665981074665514043911849146674580078052752273262828204781176110298692740522502316291034930946226859635122223867691806507973209060653007935847812621142834519731050074106993799328081334271207248135068903323661970121568620134561939076812944809645362389284212462737904693017578183306962963942772477072258488191139247517536868218336568755671597443725149735115496660758962614856562666354687121535047888272794578775236738268653943498858228180790096791573372152891606196520030329627520059029594563133717308007563864284219958234511682458369855363642194565807729872323430618120169448317040357794899121436892613357093114441437627601630021679873318476681863313431773915178384221802938228275070437912588673438375618791022711368748997741381127802965464916369117469052132485369535618423388350662002637328319317480135224596222510007816720907018138932846810412092246326537898140767045199164209044155651658380081603234030494134504753169766220602795957583535116671150793171455317097797913184254647729717675503570004261091026940051326354759892703849582950019570985698640407541926984754212280394442803627937791514484028228050092367373773915824543486880690253524849690040652361556701199440925153978734204052280343602492023810099009301364213094003081313151582409721408017053665014863572209970142419997960603505463778711941416908596419105065929463450831837029902177623224005362883223448452445607468853233328336586449101727450076438026151401165194958055574819042444928406956790143806361340773311033115872962114420936466410339614521518600612282390427142398470903032779628456991451759358782500334786826319022672426428418816566102067428978459754738788540986007023748622288494759107684824932404548519271649012339299797881678452083386630025013289046896248195581469527206836140906351304524806435282634997363141970300805027697157299005031569363304059403322423617627795659557629508099197926642578217302963359891253320695164032912687432118984450822543034530148962160280686575281318685324632600804433915735033114819503137988588693050365220175367867580288169672312609337801517697563301878169874823769087183102962559231731516520837842410008965248282784392395528094121689041792410847125008613821485450378307650558477561953843643078807114965678449966753010898999050774662714809601739905953518750475514982560215429743226660445299284838638509260637997241898493983690788303756936242783120605498250683083212253637020696881971611240825418569161574654073093662520389148360784216062866231094940856554302769410482864973003944708898983450737430224134776596859118886490786998662662869648240343928298520343741643179653828699953302988160924489505336860730869191168630069546574495200745141786942808502404530564931946683019172693253222053718099696883704976721858009877505503462426586198335715341791143367532762448643462686382146719556822221170012441276853525053106506995458233364069569320051672540102084468881279021354981631189637542699094701079002982589089656741820090613321654624026972912303820851078047824128703829036411847522299330888012866019342138904845743030699581432496409778235578406673923000437366131372576292030942466759806788981707212106305477026291708045505978719557926439763535926278101180716676691305523779614064418034178700391042755493073555227183867574809276658824057156108785101076403429811233365266661720852738909661249856080202312737951860201018633625860752072585496877012539624727652990925283886739288347803194864235977418777135043790708406921409089778882545562357000490009881634218880714347584516495467847172740838608313277220895073648443900981148144852010977375559432119883664179297791517140654746372999043165046695243520076567279530665673770081547394246060179062627921452763202847939759512984231239082988156953415236996259359374604552151934930523750873006280643025531969687934017032621787040496632901239493387618505578874955337839105619576663854858073618422847921720617537257161968434181928223793257143707879291955923949020608436442545395185426364210870654344337159866862552914213902415341843361652371613686222609025757231845742583769785680196130824513981224581182125461943292320296828642492522083763454343150721610227980476266183332588840523712115324212008142323489895688768331822041764996133464499860720162418537470047518293231350901598570682227299318612143961262018562539338733111968585065519425593614228717665110413794025411746195342901266855621807963789936777330309264927181733605632914047122024516831691023928248239748055845467654647358884486820397425582026911548904265149544287676975708836688481767749985227019013598715389018177262439849619065969366929760385598281275891118656698112624409663748039262999848351565047359874661586313846856025910279741479890038292758805509158290723025670134349213389062407374617749747813858176687537887494118159052864840508539899746483147899375797275487238084629686292063902209206068203602275595681056555073549890779998786016498947413524526223463346388976063195097760977495224907357727462708711723837718402953647218776743528071852273065088838474293836354655539759871392157132311908240138045960941762523297358059763071441793445794592888122325865469332285253351196410923737476207139979646956012528749455513473944153210589212300462488691058558978706788030232440749045229419331010407639403304748367732962914680162186993749157139113986069583165172139224729011172739795673155671322838221427931018285396725087610861489146979280707635787804405932576234645446329509060360218288132524613729315992651059283329004987164692629071242307603991844586985054057966666319198890203071514716652758037195880716307428774422105480037039003035029249285770150088404640910050727585321364453330987785289746162937968233888942780766043129609214364317699192636384125290143556729518647802589532590308356487849023841998254429735968789798418606504976454528415031710854398571017245149145559755210497697364029400545917577258374674767798113919331642590850712248203653551430659680587427267752145129881231324017536364050238668887863750836694683902641120947176827406851409467976613567585130943357594209689748929383614445111715734861297233594545213027231204883413289557718190532310804576052989075254392827083553543319887174575616583450918292322754147423512850902498659389963435281537368225533595070758219504058097815524472484214895307822111653329297575992438063171081153887748192278706757899670087033391277593632310042093597070542935947395838870357155659304698390711671411279092982207567480873157614898451328702048255900330156173786505774150243979513340512875748257407288309276877152349812376730890231688799184986287113473090258686790009931231206554187635307247992441868345965812055805216056580081132647700402822381359155724502275251307270951405014195076687107076500153081916812041246398071727163323821989638368368325402765082922309864588209095866135889180697422586368372291773849300286281018481338998610420781604765151590404720972207319969970862890101573295930894659310500391252186733124847362353730196955492199416812906025676900455367467312736968109894217642482957159820504661288521837180517829915893199443579537718915502082958811680408285481042164843095186458203703808781175767665483748222723790850168735710857178561706339924889706644093298212372340374901834300649616615013986863166540742230045657890411002368205203071526566577754538170782962144236864291061743646045335208500658768000987900131908041197419099944375214069140677636781598331779890436230796546612829664967515106068992314646661851491928666271822496344192356211985731690092039317116416086594113604175205571656045572506805671743903184984772011952911263684089789331829712273483532772548717937102025550925394130208386773670412784496828051055916701496913038127452879673802141492536569440358910096716502525700994278857657688811789707847478405643175606896440190571395508115237452624110593501900844897677923900354816102116129301660080591017909484652509020377133762579819382169545958644563073780463860133976248337867089182372643214086724413307050997451445486951772473985872599267972338144515054775520918647308301246742133790247708163216801091057165203750848975845232220216452034712830763256343077854267442187499241893385641106941921750862805364063199405099599786765836260626991366323293428545668030141758290401555464105031836057818469034419626105665196768208398651251531360672862267337793439761843394313389116470802681701364232246723125089061386926367115373743583185210332746973618369064737824122724817646554644548349524495395667623134452931360727417393256932422218764551803343742458149000299670880629359621517365341011397551330747779361901417081123938059290049965387305083961508782291043811098750250050066864829522264432536294030694425665298505199546253679452374512012446710665463935408883640270184754750041861199920689143220743159113605889306961934958504884967593045112511851415477225451254443144281551071242858433009298719407268491793851854424378758945128352662739891598950701744120185440822554244578448815801179712176749279199790222494540339930818487662529847268967899305847239003431541657736526486516868780620152237266769553968907255312736417912599352533071885676030322493378015509877260491837091538197026158740173942190791437547617642346295890700754544262084528092081188519249275754876098695351362211910133293771005823846721137535540441974402431157606928984238695605953989183697735268771364562048102947406022942288290601373688333141690396022167424900454193880092360271911053100236373061968550024886914328739363155350442347267111399598898875192485759459766077181155488027182979210235155180388016722429920427860005442869273115891489956205792545685300012813831408818869712820717804505125607504487163189103547567712078834287058168105916918377351465649412934197313022828866290556571900605327099127058047026568717737221747322238486994875704029557602741569902109794930113947859700470746820731094103120904073426051843504163278332181118147332220817472235495476277924025045705919645229229501301143256331953782479162084462825599353876417081554226882694588401281662256116299655500548587183215832821044836813933787993302971265502279409401330721118916592993838028740169336055933269414108285058412618408463175673048044476949180824964460533829581347483354172578144985181156579910185730342420854459029937803997714890849080140173109777603101546014850994705796595416728618489477139929417484165974229925415771869660990791178209732632405964774416675415432759536515623089615308572720418596372135374655466328713824985002877169575636980916501649766685783370935237170026633254191973129199942343344170364957671930967664707543945238630173200282685454248330543047888451803136070097349027123609078131102303409767575997356051292110255518684202571795032230494045321963262139144677462960216887992686044863888746393011644781675822954970027639539640366234575123642239506897178782568207570853010704450576750041703334700423711716145767091062759154507166468417898628410077128704951912271888759258502996205921081349385695350343315148580933900664500046273240694710550372678005416611518169564427846210832658615779893414692023759605948238351545530355688131201588214107312209596925379572009038481093431343975831242056354914712892020862939372956502300549298945636587766629664920577879168032420628432604016351133590497757187088520737196346193697791182542778394239491018694490170532744295490623880539708028465101257876987328713963055980166232429247242037195569864691075829605508909968533836516123291890716597368131655774938833024478576526250472230240649934808023654460389454213730175372109615829250676421082911015332028972239241238055895937512605842335018447136898176217362989398110348491346975416555112367071228316102083081833787460989413128499303897072679964346947132913170958324130088768034903344925293649481352428696262379650078769714766278101443183970417085973877268571319450489764682207805757037539650029198704924605288287397352723336720638055991237398760017134375081507068298185803534071075632943995726233322989032407952863179696399054399389701408657840156756033267445420932387764752425537295936269197544519980787276200707148459168712790526420837471504064557969698845662933623714979936081620495906941494933496213979131903293530576789933389501393885124564960674195881506615822586709030572254454013965303532604235763315602172722961874386963335319026268307226482089859199698722538829135615631249455092205887656523596653633375428030235006844986409623272258947076402054705165070764931165798883633094740887239044205263510370559536332897200226081157716874982091402587916867347214615129295632354668967998834607691199974678446866486502146985241761127575581484926201742344499314889323958642802052488812936442298276354037763032069877465784098278378303184163289684864129104559949007279252007660137416211441813128378990878981789320212706618960656869881815945292725981739703021921654149045862112137202185171359026905757947027793689666907329853975291410774605022314234197063114455590965891202687572282400032208601125354685237373968927869595498659344535640360757238078292290203458630050182620421271523436406219112899652812057385520404566900163298051980203284285846313045260042955689074406662358774954165985814215386934480327814814572133825820107444617156833692964264379531817417574375695693246083340638023199418985345404029034613648573815712596122994041835016022948171723197782911727881979487385951461794137237660790191719995040072837763120723580816005717593019255685774139548721644680815311822828271046548457713762817925503677720533602345285205357338748621813273419921288757795804712190523485098534684790175130426421031229415339565180268258575002879619576275723800544484385761461675624783128251601355986536170168854410126553303258931383006921682142789158901427123214194106436930295343095110917464063936856538331770326263925906420555064026669479187630175240549418685453397885551261526145839161883825574221947519114753619587382841956713533195702070825942539981570374236273803940937238448851165612732909102297595800911298240941505671132418727943041175481625112900869069771590496481909067467111567830299168944268060311502632109299457115421925863457040378890511041257627613954729117674966266176057364316821127277543696335790072353693686101248943293833059910274606320839979776256075897420614135788074344040430483431430387216351454646616000551225643238870323643879337668532073894887314878327878637530195600942964441766382411735012728130635558737240730583131555617363622638397493169216922845200548452147614790693533630159827693972605672940708929047004480347805742247833201941495078866098932878084443577867542553818579210407716553005964406302718142404228038312739781869896512914674430071246831393229607509807108845618758395589204916124851016388779230254987795418887884528873710689426269928741914474049672665448595937584186666073256490328409210644615224059808730854107624913775735204641280795622129947077203632367708029502990206558563510221246667710539920259624860750364130142744778047043033996837039520329258076738197394039184734942365336692814364981390585376507378830698268488542141537704663981796403933561768229711930412786907893524664446635170914334300629749290916955893839790698078577942061209757636341826596726659768295842081630143470105847961663577228524599253333599538068590144022237591908080017423854095606787992832959507452790959274653034269371746625790554626463707070562611489060656763025420884267208079126903477699824706883735548010364733130383819351648923338473356894038878600408385898581697887915720585712471325330271606369991490702968191802771563613458763865430418738600935462256587214295352808563357838341776190787605803828529001026474727210566483529907977660183461019534162011446683864213675188373798005658131867920997922120157243394993060609560169951601051370695542356142823417211056200736221563170100421831682602456863168479393468739087193809599471347672149579716600874824644625808901757084225261923188690468789718835677195763557505639482016870366022800315229603981074913799996183524399362117542118398431982212081449110992708337276046124094689333738967744514236909562750514754716027206319451467209619659487847351683947761102123993743031461284458764716613167436012560620133292039330762411927969792402276599724532882041166108493000098195728739631394852832966551934602200081782431218948512047077985199953532246767182368093447975963835379328901597136101161898633520381481856539352031062439221658213964638622872017430694929770672636099533031332129021301686409117436222031699352787015831381413122916373113637108621861702470825057145745132205167189746543807242140196896819376540949898350451851333942675135709766099499249941626021391246595522542301559698126682153644340500801276065670527277514706297695699359332205059545597451177252819728723693727747400150311064247959250777015093305089008675880423617082377436675417549960680286637114168927735937675541209817310462565032204859685140569116362500222769512287654969089532481569705080380496309062746823074662951426976391864975878012698678315754055460696192142163941585238629478296896966661331466096545025755720123009058010947550449213480897065723087776596211484930945043933995702700825482564201437149178200399479112239061350696759051911173567887835919592244639100894041533783052707719929566371650211432847450200722453132967748740510909642366739914341373545002598230667465037633830888448912650068034305009904955683978147756148536012322918242812385168249992292242346128705317351430444855381869780818754208372237507560878418411823067675746827821721872352663693126490461693471341015711628235865030564686474847652367298504542562179303908678442394245162364490301383133968534081228980834369548347541627779149523345973640802400576451391337008333036308588027796868883454262866074783584612210841587876584931935547063713034907834559634734102237806932712501405313098902395412049443032214136512604194423863182329917273832197598333461109363881142179325350429715992008698741678537926135622947294479513977264134469917635775667437957517982406034272528363200463875896780973280146708917894064355206501751047835499305601569221709185976004491170457311355929261913187599945206466915546590912376100868149453483094040952209773648617289327378935322442412973339725355172206618524980707633119149865873776185995652072617962744241677679447444567236551329655860913614815141193250920896365206146020546115232870792833065857404401517083077967039069691105771304951164919165014615691918401211076199564758802232026637158380988198896918107749233145492959863989236478966914562353982601331770492200773229617207000261409950581020902392648020704854232301497855898677076517320362311906697489593857188592559057387768004314880422178352285239650101842579195930097419057088352050813795402176283638157379367234784035127897179389142435386357451382717596193983974177893206288257186262730738480069324137826951044686866415196248386024134529001350485519441468115555026118413034444648419103670650565411715750377601594334362790905269531204660210548225164817332726047850842927537240286022445696700867218063190688135206822310610387757787406871000914777029142090457537354295706364120307949225740018402858239538194304344998299212650114991510683427036296785473178068622640277637624118446043958485039222490305105660858682293550297887722596203229812060279162012880475648861335812305199732589446812513255452046795409871752597572029896393534487867293226625752056706865235880536749352725627740212344480180036176025411156176282264693654702657126542724571226506527973343238313828097047500091575817236806378323614395513532071921874741713076501028665860875778764950136910311498276764895842407242279591503664090570602666384728578096051202358816613636896654841203048324157801824029926041156935332955605028083495336888551845946002302781032707692916842981326091781689989018814675297734550521046202557315789994980599859960521171266241415455305892487611209879184570948075906212866594580470163538284268508130943544400143350699784315409617322836889298844182314405638094063318635538638498181851354172600496155419871880988181626241500398708731653180890276142964631140865779438966717542023104448550156951863978348812267731054832380765998404217731906640683708196987582942383985455992485517201293723757517075342467543203646178984058890040381450801027760706284026817418016417445844292303049246635219235402178555033455806962113815620627538224569095606327144917446006006361072591859530632636241497136588636884983124679134000761048480081005958699078103741103980691610467673303096959594356638507754270715264434639674552441687584160570420364861802361061222731071167064574154843394387861173175324972336381712812163742020895719203728203352197640046420784270361829819876781465484488446448761189559435878383760208353774629000100004883140633058079212071095903439651388303028462660325700143156022352742646927506377653251186666750515305884921741280232379567674642691572164601835587098915824915053600759973047796151221556903943476192226480691127972695021635232631125430850528762584361963682946139225129658131194358489707960835668030498911718233348423171778455255199840388127640578077879175262033780976952169634978370930717470523925619438500142823191368942648242668494897753534364884946245918360977479191602956624305889967637575796900802313384406309243491812740578216125786393817834059532735568712758412299187488545596903557207040481075900995205676723803791501951486298165401079623051175601430076173757909007725204130395744377157580248314691078821951098630887830098781202757006015947039051109085504277539439100941340014621277965284098024316352485132451381675573956002944308733183019696123968308684826981608073405514923297885419274376554298715382554882760751116337378499271444598732966522168546327863729918750804637445989367180768278575579354936584223860541139777238426734489579902071362278595451670912907123140461063381889016375080913635268666963575393098294865766609042442598109363728595323886358642653057073642768376737659311205755102390512973781870322325883924428766289062850008834928824140213130393707418493785174811659645767203674606339447241713611860345703210912728143311392736744883909930022714496609880020589485506586563722531879088524537875177081545566103664685439386543167816735979866817504817000784451024686636807227818283985494897572768811959714664124123003438671472613766216874443799965224174364726288398571824544878570088392139819257170413354613585436322975070262581718629816364822053676779212791794401441653648463012668810728129814007328398783488163011800568697050256819075950631267377221109378903199578411454551437545305809105640172540313155686853837330006104244887461809150187051411066923928389887212803478501823728668118896613099580597719971401653844533886773609671566800085674197084768149748027282513103270017920219642391040798968217278833816134561949488875961214175946193028251698443744412938863199523367503578061413640186566632320830325403816105470732370521535677037144407917204781576222084177391614240287707102321954763314400863335368934861892517910987915285093929137519352876829277997621144324510423722899139147121762283006609782945720979877848973701017595732882048447632401620428321569206193143625703365740218715075741772579959347246029596074545038343382216546919819929363128978764176489447826876065640070188736367142625230279744491370606833600602175806647468468841218286340369481353377366879358101060225655647931263068702220022443561960549362679592437069181191348878103001125967760902180374116196434672104774315109951849136614228896188100602160848597698612869073633858511159133169780585194683009152052431952830050419980644497529774886597002631721508346266753887822304187172623577335831493924266054566957875469938055668747255388174005078594495293320475391619065870547361921900376377662376426049847266745852185507116545360446544947314007910040125827082230619617221186885793367368585328036015570563546704297983362240346681320028972078168831232291140762907872346201031845343465076101919175110171365688950652208225627764737664178990256350832372726960623440106100637619620006500316584830082751523982763133259839008009980481532217721594510007941625034167803983423825675772364671310527664748287595186505360954735727099722345318198158831086285450472502798909481365286746064661318518186854684416179979029624484227384307685466766456245692179913587237566273639824346783669151612370189439206586892898678982585814043574273159736740058069917047241819784292309588519765426934222815258918184849973730906654703581923390901668619421482060285972297958923672874878386079752612847481260952247116588705040766877359390292207949821852037890888468828051807905302417168372347733210366064557700492049351688529148973386536558243851413317645967602689576213410203556397400751465350682099223077833578992097954085692392643678496067719238218369621270561574472071535506050237275113847750193028524104775611281140356301487936512960108890317324395464479144266866717695624647973955955190947916870070886360156569746129830992607334247238426865765781697925489590768127173825561385482614369724434591898777221457679857225099785123804133778342354243680766173561640525669367231206072738818631240847447727267712958725079864790108109650182634650161942034657373543926759991525790928842399741382550527561400234983312794140257781519947093604360610587911041024808877378561020125429081129966772876132811900303037336933790507664442728571144163474904763395901942887842354333210780333892835929741119168930165859556402981794010552382367599462812417408958431462937142717113356434070403812995199208306829650916062156418051291655084026860613695958736747975599849572889751454236068174520910249177676560120345914552125625919313136699640693657157798304895443116821159683107805329156046264082898303965017223208001033529539811801883300179521062286861333154985436638496246410140940241267494461084654530704925186938177705138293592275356655675286759735877252231021654608675382912098726512440592788785188832689903155352079242193566429278468639583122563244204860159519674825778129260789986634866101686539139209819211454243439199629751031065521584987151939428981208536972710599672177565525583162660083815734052830253247012245742257715970010239728217901375967521213814666343468430077245059573193188792931488827070495451847222294529524230538958858257992802498332496390798423853369223316516496516005447521315912993448577808208877124170676953586158352914048331270737536499954217188434472058791416097935575346868642590845059349647170592172120568237599879561634746225145273745124624352629900699646954204656991556205692836624320450283890302346566623808800027957684841852382219201844800542094527180399033010282933653644152665254109240147717581027555295317763285853500181805116300152014727830360339489716722855118769121378324969882459356306193092860051595845788083801754401687515660725523701323303156699856524084056608996003745838203292213927812085924234499021996275961672042216505200798200605460742456822772768694648539747444471707350698781403983534194119791461784138955451568245660072474652839151217036327262651689996751128881434461085333908746233974697120012669805165742868106361142396505103470188346212389375761161543431312705384898239806106926469725943397528387574245278207073706705138756355822307771878189152027775120713785842069511385407020970995693471871449543304398244365275666257846316417270284665642226048814158031114995708242278929754653947431455046236527835980411063124733182381859112775400744001500193409649587221432437466529107084631585138368988947223710002643747876356576720518667548921067430375168106757757024085289998999334160822711536777504210411164372751110165996634460925900251932532237651081666687942590919599054741973584153173232103440440655192039594892878630631327723036165250347717010926227301502617645935626780075195859816187287340542521631517005429883599176182167702273630762334599725861726343142656471789383131547960925260821179302743312743070937397573819209742373899539032747122457654485046400611828303310189796351283691267961354944910130473762976589699533933804722433447904711176301632805000118518510335921495495519805482416414241369286748609865381641198077920632114505818487786239602887971980333881874448690254191149832795413244467303197923806657042710817467640304980158055633066563229543360694665907940831178374478013335405249560427397721103657673907553684127464442341419899218604007570055719979006803140731906002614706157985952341744512680202444172281366099488748967636512081652767096392063937625427891528298849365054909153199973782552533280821255214673096786870784214558433398762511386783147383996926056165145167293472404586656281812093371466682220687008165079206221442527563607501474485281013105335239477086871909718610111576751542671465351779274096380865576099064005477817243419599571830608414406272958575268187714224366342233423624376329988179252872736491074749064019540575250305323066245491972379517695595615085139519471871586518996736583130946529199205905572053084308562377627786495621153947346085450944655234099043070207744875949630582058665443776594611456603694961287585935951352002816601489894492159786331329678703151255100920303479253938121798092710392123641405398111643275468549367105591129054830982710993827061925066007570191169515960342297942846093722474751439449246123200743925400940906074052780296238477457562326829137446302474292176975467387450585396985807990601586722275131516787559261855832852848867533578248548716039633268886272394174424781408658627663842861025101005296162901375070759525535945881155118483354598512041215071804404294017329129831387191701411674985262593086158913600902633485783130857509036732136464507473940733119184099155813298358333964399573329411072145980281248636747446544019763553659339356536394499239441131086872265654632947454555417307619855836146643599958154068539556003105640981632993602724046441282740952417676197162391781088039808763750895575092716220881389845484983985058890505729338801346639142874558821350499981372191067355242687029353261009869759953469492191412039862792867479129907829036462846481247605107624631475289703597030332722225677708504396107249557472275419135061306353018851632737964950671417149822336614472276934733187226949367782683081988149504977306852597564169516602549238618704742636397794508496541528485735142295896172048929297895357949122344515827092419683788390009456007256318128588116699627210261813084899156768097592663914024574059946388696121113969445325175701300493338618230495867746412898979758887380297475758000867735173316402057580345124559359991070793439475251195345878049005627322565052060192174533902983696448007257616211538237597466908340960497439458680492474495176027611638736394243219408693248420134020352467054595277026969008138631458399569878066054143136604140083589671417326939147361265808267941093200021397332066592811196684889853393990037000117691765287949450274117082729297859086096311508033193841310091936799092697030113093466181751296353692105825218724846087387733865828629278763618077893804369760931180127308915458040478266288240217984267000056964376009621232758796379486447659116880426578750607995160087067405285353436203684569150849498777430183939924077690858934330587813440228583712084248884465209700292560510040581494998773653693637646480400388604013901307290248029842332460772477014956911579843904528810644197382394980428869835144053390867123718469510309118642068366461482667264413518952803324104892662663894061118109525887652260771024375227935029748514809887892389592498891061830739819655025463130252254507328094544795423867226144549138745802057466241199709951979271073525167367705253949875107415740874533126382858267507146074726137560976396742517451606643041744065236091731669803460122921416600562027717657454609658594568214803750135306489988867097458656537678253789796070200875590301053437425697648694842176280194397733769681968528622884306749290132689037450270971741059440016135163807000403440423276472732988805559085659072714376855211912172651442105895665354612179151307637826585132997878734440473358518044335647144981441366764895862693002476178555589362325838075253859811586477572420582879751635252398300736645944682758781659036662679187513107105757799561474968286340288495695582536561083012689544041917596628479044915793949204932989376426759061133182922712112090858085030936291572786218978612461537533407022804435577166448588278059824050083024250422514364208541320002733988381963333427356377032568359852831387020667667450311967718365977338790499467354136226088459632206505752314725411149664416024301813072350501417747861142680361977334103433932292552760600436952312589112858748137058305273216210301081817046399376297163222578379069520801085248722159913188551043167536993712462138840169744477958924918328166557707886047829622983829892751409401939911795681489860500067336188704480437103650064140217358762873994270274817455537989835636921704766646493171670112608157731288484903911470035459989676201949628706127422518425219818178826622943399422550328972318571276626952855719764579118737051148011667633012329338161204508031317428616660505236810055939202369136705000394886995409219802630976074523101053039320314063355543608817697225883629588814243555844313843397860463221583356206581691430305346958016388156605444944995358710707348776614513926981892762747934625019038763710479144979322659744959465848533413889125592225221138357417769807138354344289036881694318819694151072631411377278300686850540462288760656000493683832327383069234181469747148603496665711362620942044130032975152844725624131834966373469162164064128180034686134344168829810196328137217863898627267130239039467757527455206637067365527070258047797041098614245081458790101497445330615168901000966672115562294828910078823748884848561458374447890188824355717494510630003514680085247272204034989940270044683696585004112978069137165011880311877303771715839885367239827641512982933360391569257079510594439850138213343543223802363254079164300006936618502837806491420207098707424449599573597832062223183165905513864688033423353110681500766962584781849004702606481459651138034535806290016109352193211789546781496022206298609716519542736676491931318762169790185952521222853392127256594837752258809635433879998179057230753225710151179370368978318446648685591822687900016736355600923918680807458814777697945257835201554563248501445350530502497211663359977604354234340619282029224256440209083989604085889610605289431066131741377144319248429497696993398919762923434358684474506311168110367062875504613576077725778871221487307817395401216949606848741418310843963516276515307853781387840441184907505953596237821120788660326644477493657221425685178222203923187616709755254341112996764845284671759870557783173301196625645573593751401671546752573822225278186283212933695411507743492053370439345415156748445895959320346778182682464508412446342742383030442387859761520173164171688893596066261752247318187829632064804652034143278731522775492549763180125112049155521645174080283932829771891989193552510577507700965779739326059476253749554205430500909028275331282046812504637283978048947859051672264187555725676863453411916769558890850105421967765735534743603362253423205926639912025552827764868925184725978091893244152388152427769199966959809083393626764739030159501220548518240314742399591216843307038501076388276440151781399634591756508211626890130731070478158947863046388808608589920890671503963302321525847188762408647839274784057963469841603914774828912609431774840800081230911807996823160977970037534576395407622167456628339922828762229944764950633936893760918501737576231467261164712207807665321039913402769833192802731522696804375935355944572237050026796946060390945600335668955998249408212772447384590256029434267737108284349522103051435974428170812995254539401173565688373992860175141514570510567086884772612383926218027966466859298205241156971417676044760222437894934883389007922759271833692976140254969876579572845210229295848570242065696984344429695296832209129375453006952703661900077572406646584946430110701649791623032428103965412793313081788320382056473973001736092656481001024247171835371050717566915990380671906135117075875978046899933156757060984339734508483687303916665881813160083043715441490294267259224796936396649607976683206181019194616121410447758769285955172738864454755621982375470480982913550287492057346624473956445304049455261890222164889628540355628906865793398167546250616841048711905739387122680206385058361257780315312394490141479465170333344540100875949867199775148719952876018809917998872263345406270142267991727065785476745645705580460787389963672936178747809369639903859029289673367261534776249220201629944048823013627965142441197422298659998237485731851602775546644290787811776228602113938996711457125134992041353462197024783154925307879981044681364185790843556806582633467613262399704735372502495909508801303374612066888449801018299748931525629372386805182323872227192736252363885306663772381582510354261261822228635403050752062537367576702250911773274440219896809732190244106829604742629596468389816407420510108262686456347553890829570570933475357452488516862509062476093713290087478066957339309339483460713032833924482129610282224867620464320555154957358976211871391830146347670225681311334861870700004903369188158271121155965869627211374644906559055109416642143267792961577328587268043797857916686809606588582975420694939185337567523887222615020294103831957202744920696735321466363130414723935072283318088809520887142524038379278060641361819764904718253741747688335435754213536043053246552743452184716780568689844043368840410103567624073022625818559675613008689170852306504146996310043430639341084063954539497121603484411689992929739398919383066323969280475398439119509314698664510201381228341982068212626870280667948804900494090155089968772405921776103768668554263495437696720411404411047923787941961001372648579558865435119342545536066447312463525798185096864989590551004867305932120977757326856224495733953656426691694512509979425852262667057183331582863883209157892545688042542957542802631434560955548664887051645540152083864028968045155365311147632667102647633869569175711065427677370240518097494182998002792430764961112043857797813613262648726181908976961916327091946034261262474996585803376793907583358540455111588832341029510475982629111041734966886433061390613661379539011331423761772556238369703632560688135091626387931630548612078715531051558504212579699841464473974422736482132356765376015425750572553334348785684931303856440601817856836464554754968623694575127854382680744699349931113401376181426829962079632730481688226648181939384903985002564238375199947304032225690751765648652557542414739448184568714305223581044954661936844121951907293519018223845804385477151139094024808089395663267993273737600363020319802396520686431860248378761602923208614957076742268738246248334951537912622185650133520637549767525246488674791278186552238066022950277634169373498176374890924672789151774580553560643412664755069788585140170498559255620909049081166388182392126008224667780063346435584929793840762209103975745712471515196771128745993116501212658675465480591162155322663740434893483339857569741623355746686976845625706214922398684981362820026152504282760853668927784986316004958803767073351931698853138434898156817123547002989170285330626118190901966428291253673165105698029226175669999785377197635428888099277902115855570910738451369027589531762139162587977566354635596899625555023406772211512088104613128490722663919656380359842506393216457289459551742172354124055532836075031493574194635773685585456343934873215095317811904329948956860144572979456257758819561078696157663171114962915378616076596579224536773859386966784889237575349012127081732618184981622243372604264348635833403406351744176167503778192784460880491622432075000884529794655206238594399681881956908800146615969265749223952577040787020222040006573322891530069623725212973493051181393279171912636096745141255948506111412040835038988984372447760302761887526933637413398832856220176451325640494627542188376702479250835673754007686917921425532599642803206328793321180684088431586176347869932371899559160007660061643364632799242536272185780204307822908446301431837265723082423027827893181976260133625467756990009648074752606442653515283632257213010354321051967877974154590632338984323838939844838346656809898371016499621621094301623049742196619066962082322581678917470774841753987247908785923981725185214196921963376625906247507826030255951471859771709283925781285460209247851676433453406038346817722901833496117845234295588543652535367224687829734891612214874780280637021508135501530003575684822617459604560168229233289424411461199272291971448812651143273103746928341691940936868046144370891572353641113520171055142818219160747045425559058517960406483088995154632452351221571267100055606409105362933796219896769777359758688341983094996005882478286004918659194035902360997196352306382193695179587970402600716939972448777030675328952503845607538154754063243329260354910134998495975330879142318194287720812305694479712081813110971706120328146873427064354084064993437295679074107785523970097460020519736469068770902195648782948636748673912991211854281460929706893611636209403571430722550154700440428096144859831321970842481987334328673523210753766724318689484006409237677553050345587279214952681068582198590943338995812300628804209964853092097703461021821443480360901783004543861111969474047343481351467837111883035184426691184749906392764776136514088096688976153325391127986973374367184456052673974180076222138082469218612474736345616452014981484458443103153178694995849552713804559241057946659264510282518674575896142903089906738083001011165107302564100459621353230998392343331949022180078774479800886359861577776044291477343869546098195964532673656365172331750925839561106324359655949066551881394219893416177492749407658984513212478960241087890527388738879524313095293579376993062314785361505490350910913109161987552169170799618161933808501623128392338025201498510003943660880429119699089600923181456050510761202764767324826794783746863335056464173460397402478774232700489084349579548586194286418701793410951715587668758845458168780773588254742051771197148292023237036174261748798624101256002640987226706649724225689845195202523762747018099393102287800462471231536225933717456928531578863735693572291971220650292566585066512698433621790103070002731698321804181737182563365859877423475335945560404506418137197632389642369401725002083118281519396156720140533978782509064692789077225615221409907316551850564225575861161895815155941325665026354454494971685468591386970493155755277036737126569746211009527420050302188658624888431610691101088177340950495212429561433314073211906933777431875726085294194122080036771659419981246718036764895470823456587887185839217011651928926390547904209222277512619532277215281728739971092772767081018045491034070423479724712817260769338459730418966391481841733652112888720001502159371952931526140580443863947843830412644397346479839907184862126172892040535652325636862837039306378421263592787406941554574519230680244808927251751314606839738138472592220483731047780554645634992653861767860974975189142502899773781354876037276267463032372281170035174925668789387176198035719465472866281201556695768722110690746918038600399849543768681066433334479245917653055488316261278170767781921163605744534751244247325050799742439351258769589832037078670978376818720191515794161819272475838144876301291230317382514420419507208617037982772676536925536171143956848120140516485473700136948014706759190152207832869735814956280059751850987283597816816629971306000519711511739504629368885765465129534223781820277752387692212768463675913332041664753909639532109535446577005129564934507918564990141965681701880914473164526370743419980831519022234638548305008197848966523123767589874728617351961527798952979253862870915021072342425716763794355795854441871759504593798521148959304014564666678786533910512130166352234980380332784754492588166177297823419480312249041066943063552363542211678070660411560523040907384588400180314273292829056445584794339720835363753703661451232563862648033040122699692512468805075898702009284580632821366424208532827961975946367687918933050635766531960184533235148596060181182360697838696116587737472030021449370024708333825519165255912504123130625929927743571027790071822747573082367990184003405236870809408492103179288980688352780030163473552738158240150709441876031156497755542818295523093021852304828796275669975530386974960530712858936385779632704660462794923144087601615676604186995508105410666203648821993575915865394856185829132509677853727479214844785064944615971281436788746976389054113046383120224270742121621808388435533853308431154893079401826683154758407287188893618451242882312024438598624378592039404695187934764776485243829315170731986445381848820335210326600936972803947423595597496362864359071109375001853316131709199337610258876452226718292201445626502060926003948447404097265087725343768114002105672271348549621078206593757528025605814448485145375930209006553294577444500123729570572149085643711844397475452673987623854981934266448800544323161598584690139999342612025464955529921286813424001366882188586934134338208821868210432924217186253834692335567112906568162467295118538145490015463015440776755777595976584261697563481521394206946550384098049628487601344908837979304493806289892417081537591221576337991083695207666649025346962976909500496427140386912496083147356332824839134010088357637679061428518978675171973452882833481402251451122515993407017250240361211589096471199677443058195866516403585254314291148233777755277046544320713184482097356762647362473883458675931459213444438507186379063365123084035970478013178648575632637916052037149812758258884075779908559431991943058592845087492732147045209239461571125835437352506775287032941555029359560039805487249611825539314525098965781014705295431623469235256225493578161196959558155225419269253015657004467188509517373476167774865140199035491187605504784303701752712668291189052020146967085930576748529969588679085182673656111887029534497211231043339977745122515892858931170921354971308578771458787131053260537452885270797605804219493694773996325878307547339219401293104651777028862134748563069188764176942689388289384898474201020297077135778156766191950122917213033970873430014255764126471342206496180956442521473527849712881980904408907916168725699970956298280425036363692383118502107124759909745321903977737338410006303027835967180036012479367271992537931196438720515194145983969606525589557072185426683384636708782560408716981341416704575021069339955813763208416256020790612128214260638553722674171406351696850072429439190012807831451852986834461464900778428143722010706172636957613269547910972063472437998114514367642581361304798061683119477619418049536214419532611534896396498387386835342399889904138906272251028960126449216894850344725320099727299229777700148406431668927653636338207468601214551563649447842304520205165245706180622249348852766941965972570994359071817005783898366255332678538423117783759048710775674185884393354051894883760272919345749052133486274361625360421139610008799257288846307977830059670843461434442908304498478674559283408932436612833821050704487494612998084613036278985458553998016971285818747455990152332452054773130690237410959297870257610583032846493334560936819166300072066075974038813840913230056865247252193272471288535088292809380981831728465909999788095461985562842966767415958340790162488099467567068058161182062379473261405134468807226434649590730893214068111466838347241426108969737111066904225905519198056807963989420774965284999135763451522680095885820280958648163533600551331960985486994756205352477053305438573694235419896264822782128432298811640426698343774516219081344468176502693522556659030258967607155294801810971305104705098924376931255300958691435767123944596413353535750428290416299062647854676627094963422672085141210255951989367901268855423943512829345051370287123742654040228549196639412102921424197088883704163651748608153289196095529572990213527358966936594608246610967364131760695141816693961623946164092987157554036812283207987829716682913942936516325773850213521780166762414593503754564595138031724848999025125906779554585775173613304162130565063661001080290542283739936707981981679634440578914451877674257178645139120513924644203399206764589643818639256314063051867873039564343270256830720698712774563066290796050274238408565448422955184003710197325539495040060747177690242482267489716833237396764650064562920703818653690591665450844167718295051615240920322257659161413861727712479602598282160578681970585339682395994398663319651610507617205929494918508311816713702761224302318344816746759391713848561283998336803264456471648853509127038028440798287035856564250675220135243035513198610029100737347255096325447453534905612189388435444841853167974266618910798262155645713291921460815981376066233808659099251876860473940067705843379655612018213000968995397814513624408738329834903498726953936627925780294121168522213548466308361486567686817744281152462572084182002270857256865735916924239768015065551196755591064147439583374128539353624445426035874614212501340016308127201235570023101287026979582012797402658692576654758022234735540918061353504245884064981545885413441300379907887580601051167074967780177907977026246033933792214785422570014065894903020575559626569362455784210112363277246809002584245409623392199778350497332577012286314761561826887554406882985113423311729429134629442237969988818816880049887323484656985354407355502519409352882944693566905339284231167931065319600504799143792583477147174897883502550816269505465373967788214186881099412879128036003794612226665776724529780803846332538637550183078557035839920108850202322349950810144692974139352255998044647759861787260878538098969273000690898145175469445581931138854318405685814988852080675361060872184023974784595586662901222914246331339258775450922499781478855445404101434778895224318183441202288066179972760716293582131710138242811617383585332954781416650286254333310695563808743964079669115965135239488180200366509364491883663241703077573282755501316503848236214368710513207819876002327144739371838603128772293982823413986596800908749181507458071801147027360319262840943326636397509234659904960589641165104676749125174239997549185262422084651266116623293725654350464802622544762692496674370489419347996201916301649838071799671596153278560016789179683004126858857914006434447208059501684777789045816242703359028117633896897271791738973414105890827100659430698631944663535630912562408886513123898843738176735600268899766440438493084388160570716788527034903916717772261521077133170424726868799732659179325416390994054059693211887242602552442340770208417429989207260024521583801912520038140406407906246640899892588695357892217435623970615269706802218477696122251958891334384906438248176197615544331753318476732324457157822420906149319453238758373011287041565606543430889272097687664435297964417515312682310579803408961736632196851205391483783285324482145247367582362897416616233916330198034955616766441407105239148488106139335741233483314367328754129808602482018186833157192518055789868059749807765964724050138006533948284956196256164031308848197545619579919759930408136819303010511414340262799255597824815945102785123677628581099621609325208185460014633804757584273819963365621452582082995887543036447964347219725090159536377463378495386121505173426778253089089182300574488639411117903122644443058165896662219104318207645658487961885211632834455038477568836254912269320276081839960005477876895207881113522084445727953394270174962467870037563237680527180336840373558881837735606803547964319050994455616937552927822608105238756359652566032069387351643887147172335865733912325401119275793717574104734636433049137265106805365855076826574757690799480043818278112014045563284120802601589301721558159651801471798892920871286348068551696920264903499020693974675184276781829617133621431231399138208694900168765266544521067684337009668503884496429445970304115552634017192979232863130341999837454531103484136743450572880346233771414618264271134980951486345787875503171017598634893318942007061124183317445583353589523451531167473126249363601549145778517346422464970876677823952887733490266785756036232670086404794918479038411969590884731284467443923109375340895220001258331474882706680580747215210173227083147760953968802298057736330466080964781362899307959770990387844575742390405330719076208183346324942922961639118210239555764204598525516523934842275729658135656190075782176388168119758835808229953005156250494217005321187727171351694881670592788048884554642414020189524048563860964361655221339928836333761902570191334393199404408222221146621396444129311606179782364462898271777418136150426283215152271645354823245430882826706153935097223907226413341152641260309434375176382341239379113852022395040614714488968364982566300679096744550551342446932324736118382967076202067411911237166994855494704793409996346688078852558131382481919539173374854870234167367321623460625900849779803810453480436037417749383458582867498652880396729343877968621338576691309981021061167117627900761153935729066861255945630942932975693807941995063244337565313546607034954579025424518552275892727863840344031843318520290888599438606329392413628181841742022416004569482919387076800370360578248988213937294848858676528545397029922260835663001716290701392009298703896745018513058775806590919194226273300702078771008000415040473007905089032500384597654248692532406008672644550151937628388087362757625366468275488083590146758391272055453076725292833946999872134178758330645994197749907500043099256814998510153326895248249173513654579444778910607596010639932882835605127426706944806241631377866335602381632895172439408211903417731523959457617629174191884847689491241594749043115207938613199614502269419901579249370742132650413659629726318045783221850600670392130021242320465723492296091920233997548124985557660096773240790571129582041986097515285409446587915813000510490405600772722131685489208174095393315089356698504406509938335051760821640394702877127519573798392286286638573639651899214630157812572335205120076657368995815592427069351311600123469324616963359838423979736790715229089305585189515173045230196367948568211121451861540154501882293195445210571939830382599902046932980235530563787185434882354752386280771253310245312502748964805076609231227571698564936544390137885346532613240518994369728385069403953307289170821387677841321255331174635495303368895987522164819181559874015852181127982819607873548022650168251996872264718865269508193808710919974927215277419971620098049441048785772152517925022925358164174857762157987143829032331391743284999065430149305888827578307503021014716239488313844191733362471738805546643360041542331770187090625400548898947963305774542093571859892807799333971309480210051582099732548484818437023405047030064708095813923025810312533337917366881195125753219743015802665192336299592848970427500711705750894296722512539634485969815197436208885072102835599099523622664453806391511857150282568781520388868357143285503229959334433217675445519985974013688049431896605341070788985565439169842824412842351883164347455883122614503603714186410643435425685887119933776002192521014854032791098497792195990341211312428968811698175602250714825133512049300995571375618001323492020660512368821407440905001893887359005932724541004608344191620753727393040304888059490480129882264000881064852548106933831865331006098911540502159450182840273536875243867731902867623134556255706117121579157106654371184683168160658349727410117204051675060272596460561527709606553050558308145017795290851992123852273607390826604496358329911740632067266738901837855049336171342503808082834566284359480570392318065008065444782921565718402950646186580016381423939947269889535367097090817154458775659412300593471569203291695632749361553087019039679612422161988620667416473962427151771104706256746349981007496269946900869466456971487026507034880547757523107459862115336521845547668375014802988919987917118773824611096557893197169150053135008834550793968545297106131241984504000838650121204030230195229142600060533311540065958860163400614345353616767512870887315399595901665398045096017989036743268238180891185348869084672432133501686560972627406746350283469238311318878035897073882213041998659769512774224847255624904519814201314698524473659588046861136942870827526896645418040765989055720199148134918244804305431205476459225516449147859634571584391670836242375487985323353815481793833066032365057928818889210345578373576576819771962873826949910572275052942813326808368570739081116912453267456400957649844063484507870567874494541489745378602559997553585447124277070318248911758014822187171307463197883651763257275957483723136344325689438874406479838645226329445753526881901981736055826596177886127913545676656661955991195587853222947130366119403495587745720378124255673367562592874387010282144455984665028578434056623562801274105040256576789274135231901425556692893063322046199563995751494028151690593775600239636460316466351786579431570360078857327369500902840258286197194617645311571263793215305984198818699738838112702444427682238690100307346317024675905701697394430760214353960624109917473290261133393618635553672899033620142125464177960216045841011016999895393416827572649044261441741973212470835444191104446728244332453807154958421908039598455563085219588404744526463858588671419284912967718750282946137296685355971426993255152008498781148110706441945463482023061337986188934762007582861396783702243387107008647959980160513805292077325514843478636737299961060706879132627294654693741146824701321225914010964112360297929763246429591137518591841362643057096335231041033349767835743492877016604907221643347338155336429820166916985195800352713494429339543683891477407612544965227996393748042469170484806555120771909147074344598044986515886320812166490386103349025028752156780299960869840636424892235853511330242317397219228727279869414208019135829897679062174916982641684008625446682352257058122061027556152278004286618585957049423227874190867135923928174354255005992214539363041110530844554405879019594103418278598079660078577549619930203360471963875357165109121990617514026163767187475928995761078839296011018359180193625521691353392689196793584688079222127292699620350987099383430186261870198863565078331190919495939875811614696772768877197113406483841441505085366177261946743248208678812328153586144842295654949586102967574083336103982345819935300538129099397379353364037388376233743617803502044345029177458087264654577026726282381657723968833082404434026949446418814755965354796024077410457974239880007436797022771106964389499050897999175455304386476792364896093672683918574868515394566675833727621070665883070893577029472696209445117276014496451033031233756998527652922900503792331160358750340626335399730757857924895785097870340090797622133609176719638840860173723765988435094102999422712071245347419009538657570343011392739677306379361670562369644145212326302651654399958243337354398298267774948839173117379673863358951575638696004187350571225659696513579677011473656488610181950500052337587599472546332018268073747002763606594726570803477430692928923050022967529184600474948344069995593744751659085197369524835066047599432227858864726520535865131001239971089730435159897881196181538471080628621749116849385446393130717756842663726860767498137584324306250754026109738473760232236359177196094082818582408877671682319535206684072731845196650208611329714709831160108569319288449507560612664387731043743861776695577668871156379389840512864679472781123996426566726737528330741154588784847283565669947892482161220350807521896760622343936460253400606923589398982902040938950821409444013723711273444192073127004282719509539385408457416421776855931564134927742286390779680705022256273232109506074197923948327888733053381225024780285102654424034814794957284317703960298599523632595943651860317931516680294988146680404303280990269909841073457546772870453913950236569549304155779472948822349090846888024545398942791244326032675715709080881145034090264156714455398672104863485382974315555245897933845161761728473067403652882165938225370374044724501129128324211490714942336809843445001183744653263159155918969601966863300963851163379136582467208853879613910023132343477783377911372105257241209166849286364203845935033635355803533458917656635578138081545303696788816206323929410173157869877776824650285080970813878405249769018008925275489031087856816363554606699060341682751903722536337737255416443613132173594303196928427028082329080352754639808683333275244389708191470634475192557347938379796646964455146255757074379510246826267652269849750480465440594254766866491093428777978836903573013271161754920907446866323251767952260146540391168646998840559108766374374669808797653130979992037469866845343540277147151699478030620836512784491268651222284596017925486570082258095776743097012474153595181000779980583127420403201070173849474082645691428576225752487235016107787047260135295465516204873878768406952876206916666490842599826984121462875105535326401681452884812222587164123728487885660645434921187143450987855005847551136223683847425004667323455490877466075495358565839140192854669271770931125599989263981621304203053977140357345180766014466559131790712880507217346454288348027549451312629476825650430507908807069341449352415961490949153319553130148926208527908076262698422466694044559040625884000853155822972738819391276421842710496228071045981797647087655122172628527094304462129617036685173079220314990122617630057449006377801393886988503099461537011937586810277924216948624203356441694684781672257617676090472608321701847112667086467644990069578471213748407467565163587532368833173310376105499285578168467956405534289372533830218617094604052800878449758423255440944370854522969958393287332994948264071062042242534089039423854222758569025750511126291364470755082806746608227713814851456905644314568089285385896749251935978256685081703721441094359905417899964205219059924763697645140342370770674772318974034270069747775334438117413122872280479866138000676922120020792977068644734853855951468174987454254998937548436617835498885676217126590931287981069921179035998609563382839055541862326244616725011280897034166224870859989839717156395334059706705310654952311068413277272505759147193924697026146057080251617644464683043926341603604776072459521194128200018253261776290239505586046985710412275112644571311761443107761172686125033847253953091712874321943110989399359933082905184815147683708542772695665610675474396567936897509194681924613880693765349651737517289456172298780277327058040283011225636752318972203331321360119312765580904779413354326865158843884676523617362702041149115308781910045500921998910069914893738675929019832650743050084766277791474974879982563773642847833055059741628479983720654458317899639012614579985565020910062728381525315425548918279624879706575096046685665633147357481565955263931668105595358753510656318842934107926096277975888935010377737023788562435120991183308288562820385579187427186011715651331726936814251887595661546323939093601770739031767088299752873284873376001609730968024434112148561883705079740597695440823350625518653542606169889088149623534883927505430357167370735895200599206448465485937731263221508698584870998845777070842989993657072864774916182867073986620323990747250420691685714710943972004972392597454820519245376829416919022915037006245911293372650819578445450246923233499936669678297458584128573986051319079949813811163333280733334596672238098508942328534544014066089598823586088729787085564951231891679027399827734155496114350318518188855442995248367294359589232160568833338530795353646092423018754979382035540487970078951219734277131864042640821336374898103861754941771267787181914912971447340918351940820924990741552789055568743434852382171682304614857274774461452030399894527957859162142255308026425558985289733854012963533939539936757089390731849130063422718430130321966211678498747445557940872274419307535031042296148808074281973619390953159667978761297659592016721030971000877998088202516218428946413454098547711902119088702257868611349290233366702834358419067256047240547510104351884552499380826837009826261589728391601862103689253545463808992645763203639220991556563392680191358119850108719078536669034899342207249283581897207267860130675066694719819011004452950861031842586720872095211481047342793592656286447159952547212662735137602608263177905199474035731665362787758357180957717102311977419408919981358575042231704087375796514430736909795743127676804510264219573454971279152809329783298231233450997198914140666122624281349025940598949634146982275932189450008480261347641317143614128930066703748751301400144621554801007205595441862917506022593689911198933392965376427353481787341743276295085573428317461626214072604553671151066481086865754632083888773098172160128968297659389456768564292379452428213958163144988617281169588388889395376869796960247450042588884206660974398275928413741452034707184476733184782037855928308600832844276244739761627790547163834816790159985490539353760322874141179098925555942267857649709906741556549866487505801705332489195451951866582484771777509237794258909339949570028661933207617304862584191256245304046528658248537643318255695574320208285065604548861962772706285254710177260806835705888430032417166064569227411817656362129963292008976775067203092340817716732142935189436309423941468251055710615509530752677080883674698454269991239774442043749718683898239367395826756871310147892740811326814363765007282925844345001799722102439911329258289055127826523408369977667981946645614006685267935524975207979690609624662032068841722932919883671836912205000650421272278775490363719586535993339131480676286839675814969673915864574733554832157862024830705389965202222848981853343910282121044562088294634900325629320786405660936765192095302287805763971772876318908348106270905599136069968093182987851903003193853330954811399340138223514351778000521717940019718658126786268910271975389964698597002721011324780922715471267788077249582337319578612877713674578742517408405839631776344270621740917616814511472237763760368800183896638579310388810866895629022872644170209018496741235995053617163357575818491435843321574376634671558371478506450234370872152055812941554774044525411347642446627814293242431427005750061527405584484353434046519171061689318655172544171399249863456177800337766272086274684448358377102288067421194272352713316789167982013759324105468898471971301420493483277999695401458918649007462376542912626307109413213078169628512883933240687819586463822243309340000349010780186652226235005319438035899188381797471267361585872135666226234829936048183838854017542077019049885518258402875521021446882231869895493376493751977054513904435059006806987312473142340110609468995045707180775659679237351811874756879113496990742290785879965748103263386858572570510752132997901195421258668556675094958608122287639623785411028456446120684955894799567382890794701141847472944680326130779696111748110670062598999489383742437355783913743303036743622359629246712928620683207528784907729797642182939698875505341880668741613891784885509938254609362814449209139025498561069004186655353994873247027503804197657081646483544196755208592530066646287473708557065156727187505685248226284933981548716349433434420103949928840514119349735580908877853633209024833270783895105672842618330392873677883021111120261197430723345035083266527868755000771160210958523242365022598752075756062602059554039310230250384762725008244473890811459213374968696638765636376057337292879618321939184832148112354557806202441386463017444216059633664947752042471169506476405104630880908321555678789963271477682713968396529030565299016368389367963088187143908677525683568498299237797353665860866443319230723974826192767779801656251954042890385899316906503813846538914643041500010809058697399722351346578526603688333047081792242420856340683999849998644300916419713082151369400921787832692772219069689471761433169883772019966747771915806127736813709987297470620322279557782836038032367187583106734752034503497413235718238281509678750426516001535022343452264934122618736570734297117888176317225639158564175226590139599202655848544088409655953679540325682295990917083204678771987053230916095680420067303948195198458999664948749706493629693822910014023285812906080988844881431639734170090826152212926040481806995661242311383518791216385679129065738136507951691676265233592323595809184280848278020548685879709542953416184424866634070285988228575306394600708318006304217135300667174000900708156373605100991714781575217007642105203872132593859346834807963237174652582051233713132382373355835522235082417012887151562096656351636581676828127976354790049944896216904076368506057464149518565869745233523663140367189514615048174489804313807796329368081461638340133591279202312708425350419636423394357438698166713753394134279067772162373871012766776253027309227869256126973554288355659292128348993723890246184336504758255174869639212292364732392126442773497510882746821184566195393453924324783779605393425986942395888433134309438069984615144689051508334513724738528807035746894267651708230274245390695123677399037333054441234545726042646205379397000547253623347798682773644097289969238054099191493092352099474251540321469089669530711867240422221505261424585625720565067862321779670077196584690541471909803825151833405127565943760038730418565008058287498615391448112644778323334273672761804935030384679172028353785206447756357165305088326453634743321935104486085443304387663786202782843199342270213913530660480829561049395210744176932260056605733376989389052799537784949762851514736206538001502320925239427847958111871193760940116856326154733908344087444046749849957825326952833293345002380605345472745192836401551599393854641486939761965545046310577465905850132758829019465777977941315523760735705034692247141380274113639461779987554759201375050845236967258117410570443744415171258851143168572028776769710440687266173502054680275043701502661992343034662002338450289784464300030377921368960209093090067448055974213551984882643292293081242907560027897775515901924782203279563307665407901418839133109992845929374528302989028874446545744107760990938854888222565943616597778590286387281984380876116220158457740432851188647714276800374157548225942567212361704733539921851881472270332721880900799311588663507770799871238233898856890160747199630691920036290596510211248861923141288532423843010036136893870026066718225497719139822956165700479838218448809433565557494433158094842871632653640537600492392830926820742911382154586704779682022737598155890045637998436016269583074166839320746935052815425936042279327155795689597765753694210459332229350722486859402825601414607503225173495087679254025444793508957743183704410894850933954002674199630694899217663513785018554144688532858259750568102369179829338793588722905923226713478684883244329993500808280170219142586095981427476002383205841918339981342389961265567143011645875468188844731525019133454260360256133790423887916757299005831518503333683444703439757497711090036567581618313963802009375512228614426126348567378317768565948604071123789304134445301178751693964548430106035487262197877053364275042492576943761028467009067588632175498373359376158681256646798672665142555418403638733119754765559186923660813266612323414255216139289413937931763747103105113091217349780150077766460762730507919053198662553102593929250650585515363676324110613876646420593580203674577002140729285447553774472733409106982534579490497474162271562209895319209129827433495276257123116499192627941033123426982467061728948806958546755615772640943645737372385552279875671750033419881620918772537235508989606932240747277715570677227875603533836785218378331757362077214253077844213273230393386896439088266574154873329269831202615318239289553768202008515923013392732865585347415275175728149871835319337680212911258337291884701384085979070415395101016618142187536058346734555770231925819427057564219512093652009217653073858888775638951846093249850883621562588803259773915682566209729064047164012958655801713739384245206424838476161917836931988598790363884959911590750972986110977735359225092500098567882526489689526667446498362303563639894926473539246387195229998426613305842036307828316412975310244748020939627796645403970594350104109326145697170018172401842566487651186095655581530597395497740448978818622677927933299574224396544663915627307027706824937223553482890403535021178214994704467105790630387991281202663520488947840268646548404858743159619474410784632050645973067019075881387017796204064485284510500431163908355960541968263646707218292236513028220856436838401347345712141083225589084967185448329399400277182297105425858753397588490194532523102134214755511621309925524173582077602634915241764552045285974041363673063688858865440945091232748150289945988763649937455762889670866740179304192492565401346342559041028806422788356942569497769192654529517482196197097807592353947579899156648017145788053214650421409674223211991686340146571225969791729188191113074445008081549901961975687897672427451480236062409373874247733489396744031260945983005873545560022862751039006486374480967271297090092104324949096961423464253333677845956032967643570551353391003931793875167769764982946766989986192367318629384512517118453787598157363089573004316599414001567948375263878020358571225827952867443473091374456649943534811589813394158198314074830560066731498347851965185068405530275158799222145921165019596572744522625085215531680532303781538347298350298008607024148882028214667095420226963068286384925213531472400834375952044504504279095206326820629957017164783846207649576431806878880483424590807154844822519953722720594774965946556876992414226830841868536996014666281187861608924044650072890272737951736550210799334980144921989987653938492122082987299049520074307565583188528861087243407824472366415159696623085106289863924637205918593421091746635913655688998392804911392154007498234379014655238734299182262754723772724842256502743237504369438274199877384596008963898604037727541319504229533347087089931277843960811685543650482940682780405315860500012876290692708050959226857937897247930160664100994062680416395168781783848077595319613815933749275724455226360654169122260200626227546247343034234737637569974951284249794160738413843657400676867358176014715859489552896455474070765737508620022648732728852924721589238706190191330244471158297518947282228284544938600144011208819596211353531564456731218186677716310159249377596295845386448592642840243362405965057898833183606618490281920031390921540681764628596929047450194079179976381610991622006997404879367601458918899074021169987130859853534651140547568703742345944761964001987195358205194283886871544305640100679417011993667336493882843817692565551436922629836105620077835463859101615538211722718165316630399671105890864339505807283870497821377473815453843245125902060416167977853136489691277069372646612456704370850541704364427215663025321173038863925258774805201538117466740926638166077464031606027089120329239726273162732866739777559284460102784980922878708556008819782433737398926599236196034529562634023618029223284514251422128032589139541587692315578804798874404768740746625512726776838666147671912316554741007355544359946604747866752954705034879543251138702804416187481645257452796303647416678678597807370910783000895589977800979193175971823272043285127570491205540311796321570590052565396861536929461732006285956775185397343782383623707911571233958919360457276282195342265752330509254751420950682938999724260180996426440283201588015130565903663010031312475262336482193828149547865760871286167711209359792856314704530920000966690992898763117609594707313780374898887575673099855989969490119468383032063508451448448126783998870202010978265563279176048985635378121718402125177059469849891367945579777491344930336006115503523788278886184920949943790846122086647852567928574318142705272914151987987393043115754956979686470057111397976141283419237410273066513566686153524232036018410016557621628717957971139032357499257043254993250638948169256837493022602402218050146642246040590919852550406532338663251006266887941109625478780776322864049106586198167404074556384259482190941762265085183757858862389711098266418945548561820104650759327738692316578270277105379483118036527867150834874231904613691354828432814831882832604821589524487648801433633706614850233441246010419200647455754354472269007691965281025889223779037981465944740579576463484507089037880702547858215794209113525206381071932528064619388722940052065198317667353216416472285759008347416200494421705796123846712285606955669852679709106617317490663921399676760165127143430505767740672776351999777620189467405351549623217140718159660217744988751837901197062403286861158321470958878646855824925211975314116233808555411131400563293946522667066031714711974158835822958131736439743707698234312425422117300104261834060361571959439470460334028685188669338783736276969445855684719927536232223967514023333326096361324377611292759325820676878963454855114369830236632597678484301881249225771622609073247747706999343735798061413338937839247683762289793639820854451461895192794195661720872062836294093333979133239896571703349166812151201543434402384505313593822082796666363276931235492577148832893300738019393640529085392546982889637571846530237713356217461473284187735538665645940218101486872706007131673559682659993107807938448510059297824339768231662782875309445758123649966079336021989938609744299748505725675126231553828325600605812142669386562829997828344587121795260001366974475833516867894491362737708668511652799363585852490135211944427282196269001501856551504198064977990680178313146674097255926308144203703422677560729091112573789400256782544463179251060483370809304200347295367960913998730153558229285299136426117673743965679017259976692640458881498790900063969531811531925337910390032677539863515849339768838415181104827507649745553947655748623380091320498127220247162296839019956471211638227971922173443852900851115640594054989767930288759238080201758430305242870188535706330857012852143176396070702676582148067426708131819721569565209852593177014016241755333067815254257408808631574503215746398438445193422413095179202823159449248358281183572082469072642589805445069895579370271500450368698447320928935092510492527494359606496707966648550045954632925339258926561411127018943837660060985303855111491243801376558219502592000565541461352833757211570279450086549818544495118155831027904546695979064874277352469683272293626002401172059936824732259033157714990639600699130858095986781522026947724606854951860965442121640606791190201578198086703210532439588978038116671675473524252447732134811277454948598691925704225662068206300175962772361378648305606430097784824116305287874905502964440416225548160297951677931331961584636937563327229296338859806429773664085914636639712109729695238111664363530127217841383498547652755168367848560010151391683299491026112413223592666410429056228249190888432242110267012735152500556196375877536428662340955759771500727850800828425319426467108288209021175748424613906843368287066563036529271058227036965099231593941899193450113738879312736275520792263204032170554646095035157621870649820952205466859125587809117002623950883537864749631347578799469655580792068693274232655504609387766254587746402892271459606472022217055220574490620415899085553078526820734029497651619368402024012902264594071850444788135468221415979181931758387508498177056185954455485555649340979220334968861178513548310318611024457876387921298861810573998519980425009381560756596035155310558530438125014539264773359782735570449016666281955782944610904181800653039774955579498900535616572395659467369027995984749018697733042602877117498741519176107445265937362794654724318437163013383101165681110749521133593475256589972671353395223780581735533645139723691819470792328883101638456611644467393513676044399697268907424918118830872581627491807085101812893606056296819068106756536609786980808049724170352607864227309534350107989703498225226346776033730020051085826966953396107587618740491129873566449207905974003523560413224511110032936567875530190357518690772297217850931920761924334954601718636190960943522006933056806913291833318731990292802889174062779296532412757128471988754737554682201934476074684940015475312999225946291284891004713170213613257672349741608105196400903183832114385149480963819626701382695770730537581959259644861024500486147705038858257779331465247286293965314708477071516101456489580409582092427757036895849276148063769706115175572863483069089389983867416415340924121955225482022057016242621299761324324938293574145290510718067490922243363317488716313630797648217236386004246156543392054914760645503942649053452199547501664168453684578338342377379108517726758816888259603751760784593878700956024667920173509293192577113765304726460745129377315755259310140027011062751516122190473778511522346111303349871052297115205724222183679819956698105518017514092209481369613903754146239704694168166612975258471422366620261692919677818380555297184889053427013426759237062110259245763520751615973784443746926565348401305534203341001943426443952347286957258207690100711604441101990674045789409292181396384036200783425059343995100174901858316917313605149873423139827731619867240846567374420148812592024840075446294361589882553127015603997019551687828821850748030625751705872047731407815996195570500971786254646554702508524705532440644190253222749014652185837707972926807830175179285464534340379359569000477717868004349605919506567834149364619804945812133358877036436941418958932915897347757718849933921787429436118175377957794429867471099598817200407052167479142229774097298320094249215101952253992016617427169361549552030401847814054279074010356297132121436066841567091317409557413720973988285299169490515468231747661408020654541175827126885408088724497019430327074885370150070797520663347393340503616254990782013724597429701340349009112043519607473491669722172914449062439226557088857475061851985041170276831436818670796562000572956539932020801343705823611318418052576783358459901882666598621046693791673422096263560533518257459699651564426966178132800767270692766849975231467423658823243427829098731739764353080839292602034840436145174570018564968473194802196466453093208140564026093192043839232441867626872704024350145820193807852707781638400285377341968595890146150596393446300587416787776459641732601942372767882417997846535859442531835132528963882176677628563763727959792919499511661554090048437765183842078527838539963697348324456070431024476807600458903849416089773030498938565196120647356426037591315701931121579086406270962735220415061556343668085041107260918773833121182247613576405974997301032492975037198405381674689229558137705027229684220882215539471951114808830858669405428610482907985513917272930233692802475956603399316259936545559258660853325628209860258139503914383593849198513303464090080288018306302436050820260034991402596383312113732325880016626035728597909126463433313316588868476850353319643061649165237490721001334834373123066246942434827499111072263543834912250267567788463890698850994622006754802644124886516567164771736775588590866726810642439124502736990353038361455825506428210405937082516983096078234566766397433409255566524288237540807703146535373491791400701753704499845046285039965429495591330368887748977877408816965605860628516397262700876656910046198347144217602103445397685144992690903622847199480635143008012044969958069951223444846304924369185088398027651738069198208347157410946604704363373419845117837697599505172159483287360430961471500799267142658951101554537058162518678072664448963528803746823771976327864851735873453357062537293888819892541531051556993575765770967079356972320375114821115081905440538388279098004802030094209234042373842019893539465203526832135602124443502882420983948307039465299371681266622735346162120224366568562332259523045871956330467745311347388230971731997776519641349142029997829256412898250403392096942944790220543420949390899951493073735761439860551698807092602942206908639979994345637637452586918678284355892719250283263407502704849853607715716910361336819998080340465071617193386045922447026580559334079196385895011897577548641992569322176359834735391795535440206156142039673505541198228580052484991011171311886228983896072960210228159475370745244303035747858907152730357013448374069814210994313640842168151547082966726698125547201557326688327899241586618195513031708280107658305965401367865644885579705925397776126931948143280430231537982051967485064392621442745743265012646309724183329211710886721800103208564156463139397364173957638611241486635052552241213506282785224855644161199037337989966609812473099149831004092015649670899968169349270715629495405059711657862185610333917892655091838400192704752639700951726544373088671068426557848395245722533086930269203329955928535339883160562148842354224868796872782226687178742169616879283762922054553997249764105545562636752236496696025033798436162177795370000062102584251011367713121812492476717378833867801474928350549443484138281645642519411578113892050937239454321522881427995031952723077697072553187745147666826945120331203010353402587042365976268565377482239056501195671041316377970682738769394556327248289625641627801486764072090965182325506559273022232169447689227797936983979283536892742518626159193518210364639481148828637795994339778577381255422820003927857287819574537759596300471109273504036186907552882128242484382187120795584525845760391130889267680063538135979489400548050792332118120242385013510977456815464881412654682861436064524509446586995607752651501551123611667242363481478549011530826643685791035089146970404137575222882998657683165901880371768976195390538625875317945608431567528996793779656150189200922459763020221430546896325177880603102320934564108980746100582395913612429986989074022702504555272841177716486911745445495152935163763335238299784271338471538267703308276024411299753899718003167764928797682079224408623331516397087465039305988815145441853005327090438816709791735161093759345237152809860504265592231919475326705466537917343692821184363184478566338365276598578059059312810922104971269605943629858582183055710368250910326531778603492805509338938380718804142400673789617598909173585356943907975415701025271988645162588597440198866210399101881172746496167780954473325194693366240991691620044536362456453251820062698121232033110405244403740313428961190940285618113567620522449245783381594906306339631701445379540419610776386659116541714362953116029370910369470774723432367142106123235205207729047876381880439997288349289531991892107892009467364753778891010106513499585008867754806929161660393818591940951286403859302826031773178513035240417612502287921646275935881503150018014926295529143631888451881392236981060039379825894422214583360670080206817685437654363474307230525079420253967859370784795327099091545883627373219563558968694407385917067047772406223949534950396054377629737883291084241271579193496956112488212741527712358294712541226593059617723099748624048407870758342118043998555468428633761512388879595762961942641658328263818681920781052769813315617993400818556327084787571234438845705016371662898522040775345964733635339457592705304312507993476414221760943093398505319983920987636403696788330776305251814186868624985625418337230386647394425793534167290624322118686142516981927537475721650356536941314994760918483033299953533036441775546156115427338746106685820451596330193014675286864457422712098132434217760216999791202078230717790791262182598007862196909879142811286861563111679929954700586763579079707416121935459133992401450095983127192637142695865841474826994583859190277557960880577686231089528573118434840508506810983207087576395749575203676693257368890821221066183112574056298174998824369373970060421605622603223727755169581575007707436394293958708663639769262561173334208752040923984904514219501150604461584549414948510801769028262875642377565329807761117919892152004597596652197443748361950909184631641270438966807730364314815327185862836495229297097767522343532297023881755280979530428255860629402392486045520156527995197481824251191134926512004955484823265722711825249026249654376786579311040634051791916545877415092594808982540416919848814272725522227046921509303461170409970796578300271775633213648839312566211793971912408418583232947385198225983633959063030069194195175976821694826747510502882599651044963311712901568626306041094447509569270513220415364081303661283973477184987007197630288769300582046118246640505894043612179307046116933185528379360634799986010518368607769105910259320080693875224829734680992300867730031415166376959085019724575521142583332244298506739136657809271289566078609191922123751952108989322980166864818372793041016607669923488248848657058737013464104877082523453337662612413238727908279270838638472241354367141569032403239570800788247832830010804363285643551541810123227491231832917534083721566740709155159679647696456104594182828819152714605676922225607857503440890353760718037753533181195933316351957300552692242658296697294490127180606157387864891101154254816449586090899211598221926977764745773137773521554374506343826598689167241108856882258945168300604148897876663037348619392754697648860356049974908853858544981223369701825388604590264155003568984396339927104651074213564725015109723284709335210631673364718151686201268082480921873565239996758710103219799576899910228147150679614411897805013137400838488235779268504626001007891463923299747312567847599577723498283985550266448712433794906357918132524580143020033485813433192688585108691918253839931425932414818757425521827119695821292581117034998272115453383795435892652206018476555567388247937327263276841207873165557293807933540665405251934026014908433154879145344519048779586302901197232114208634790545166487818561809532103166353274842094548445856591029921572594813205582770696967770471433767385611493530114129723587156511686243852251092147319781391418191105285456643187528528181050917037441831540402493214861273191549553554417678207036917547472220472055504601816668922456295193672684848544158764411536417501314329160475932204390367407805022634640493036577003757927599340291970697335617933034709406511587140213561772132310361233024879517885258349144974287270278627254917388508326857437728732901261022156211353671223717978502148942272517320294471077674894805685334959049261571506770898725287874561487827810020476264600802336212552441284900984203808721025060337264308330237409926702873462515589667142364767529850714643098034425515649533441922622920944864150522074091598722044549543488539420673264681615054444708470621911118935751692195162461953788483460423053805289074953405821526397111268891922432980786382582650796118409013414965846111495419636600490535553452652817985602018266191064127532542820644750651094880997001557273653652388395335766146029654491069719089151884144135344492691708189975610898804609031748205744131452134442741081922061807035038308494937948477127906344457797229189571716212955933215079109809585994814118745205329510413671865440042357282543898799327420746662888626953429052673652471587332517587315795659733948441032738319048021511706568393147814035131415211255910906838691912838002316500536848381998873043833995911030133258736039330888491808880726606387756024472396451700166390595727556732669768915686597315773651619959908963707475159013387187991453710874149889286723018022226472370839752295208134131585837411884291559867025183535497370475448805376917982687317884477235687392473398068340663911596884103006067151505282972639367362459469347114244906090851566775270384822817289875168002873211348043063351658110602131065227808967750440112977371460273289564384455705636269502424954198568666123635508576982705061863535719821397587120159477354121825247530062929975402706820584661934312957139961878370230891866441508227749497922537470783468649309692852283543956953432073013961986039707067576668042849098424622187818555896689099976425592032116094815553832156089739778796367768315817867489463766739229892606086019904418884569423103635020584745071198600555398521181515129972591814797928300886642391828062483806245665813402358088277971646623523909992542147779060585032229008793221900911718684368809920388080266864309296036800752331491800465666168215506342595737118114090870380976669239306927887242726798385513958430816858054013575099468294632504030046653639888611401296015130445169702583451543215331721414343255397950077602630295544251324242250423164703188607855537385363487614973655646847466630375530073417051532576370331233422633644176918442840785806613427046069521602164529087846871659659249057524009377584164612229512560282537875332352423869844273971837516502123018768715910040962356106349478818702440791702783879380285990608278027702594862373972639855230445925511511348051847229394961380920178770130411560842857493698290308789094228492042083468440115265290747186042812488792712737954966712638944481014564747202421589521249286034223956872081308143915521538662312046428404524828676724810358151626864671838488650296012063910581021004547645854988047864027575052539982242006684291899404428967331203870127945645849039444667757128657995775528792454407603251698031556025672962821586748209351373571847173337082302275887776981875295971241718078319900184336754704676063052236863062392742500076476001101324636006572210784464083232770068099400645863747645038541841051020021585322881737994716795298885937977833198864417691855553813757947366239771612564137279795298880088254446389715942882332951734421701476968630484059865494154216960101091668035064795815557899922575167813604007945786670692264912042805078923092632476014940463600907422069663073514029706624198035020502569418436193542063511250225886127179674260473032324125883433862622724239213426964877294546281595178288374734003090190363752998531376124618173541432010674792459135640874016810799273967486399493088188724245725948494325891877449769091721401259765494022447105358527978509757390992641618564838443198607298691067936074529580582806842223363068102460032460402315099054277094988257735736912767640854401954487004324282484498665983246959032707350471163678686913580464209065483843218984950689721274693632486593130858673713591478499827915655252895671552428734641130035148999408137568968397615233274855307785502178601914960518851471546126507846650703299320715261642394767980182716205294918232644544990394566929583563885082600999220271711193123579430310473074687029325568939841070864424964023328275115560034535605407695644285395403732210671660734845878084360284233295440181728952688460162896529671959344278648406796366185315809754721694009001641900073612469107217254148323681841986644180507603368260614925201651400092442564728020825639547750372751950482076413665871951369644464602160288439214389375528299174043582421425311466880749607317488852007626258228109491380915481264493840894222977778011014795883897231748560015667462230766141687839675971087362266073033515478810776387604693204700820562415360173050633793951924749940075586332113206102331111167230716159244651052883477720138440164973243870583321838195220596862432988574562486566009349702737469971086570673869351279665772709034761128232228086230987486294720133455096338666153201646455879826520519505834562878389350950642151996437920854396093301994346578590166188883098128231656769670140339211336436582278724535709685568838221474951823514132829031222305406448339588248883110781174249152166425751590215520841723797610451630137723006475676649812366128545439310296365853325354543712397815694116265497550660062718186255012052817517806354594189677335199989429231990381569170081454334374215453314321696819226318189926870176405522517901550110951882420731302420944279920065495955656156475107706225151834514299115662368507143198539628058983120618309615910535935201628433256472496876728028157947233832076525870849288683365876566564671315576098523448256520774363060108605157759480940234938742058410653706325701088219492376570921251557266010562721562293244295316709093588904041881658293735894099087660483441460324502627009788274372321566646033758110510248513529579006956416542096302737865001208079252041199709546722880778331611169964614165993623646968906079019744834405336504682876908692414529465328311903446434491928631726882601269202587559198396107286892361018208152853927900093266281443881832500193077571298682275728850236074836304371679706764926685003054578286105066076409316638707746567043915973480130900167066650482045766129965422788138657117678012551825052880951923198493748858274457135886347853154340295465468556728502619715739213703359586212753911946324515876708525161413350279394892879031944729315058807604793574715524689109651195980081065323371714225685658489911613238956151299548273470447460941256070691840928804279924100853745411898033206964545273686869299174396653167931451782988570508365885651733160689229784731332787038513677210179818990063598291170711249009442481628061507930002523691577534292375988652416252065992483426967024204431968029216627709693552218412163888916887486196564190939103437976553623858485179820082375838940096866146956249023838570327438276611219377527119145094384875479024574966437386015738277056465030823804211275779835376559073846594866341560570739494297248181869003663003852635255728040786376964147613004606811264572406409960489124763873288262662746224706558702794216893609208303915278411211960608229820353474025651062634707461261434406538592340619216054028026468104014676098568224875688217777999424084040427024937539576545625493817488900905956160237254324362759008245780155816778339591370026199857278339313632632878752476965752076215919979897408157503765467232538733092466779201583745570778590539033798331577585572547427020505434447196104686180509952604416009306412090033067744257546142707766017686717117802151608924916836852468696975993880679807173514248661558218889801179678956257905825228313374698546520174001990169071168811377262948825549782740214246895375207310760566608220769518751414392336193329664046956047667542332534882585714934164671337013155069076954132054282339794907670355346132090044075870315452215704377844888980485814334439537284878987359403571426735760863197172418010014403447443844070921036070745515038812685403093728029650598763090159492988431240110130242708616420593562232529541643146913792542556496201012844449244928748292798702658527680516538470926251340522881110832676958916299528404831522664685867239142239323681779601210537489746802186242346807378629901441904112932520585725807528148146391115864439249982315208981273408978425523061928537405135631397366412179675312323995715505696502600280039685036335637333064198523699107653420995580145910532336709808574877165017541415941398570452754599970398696749375192578199499656536570288573815529379279837246526338830918497068755012621162054586408422130663365996022839582310559796925809293184826986231578334560610602109258366673854411583612393129250881568451299275749477076669211359553163320679538178054557456127407962773395796035666123657741677886984005464659247992723126522320022806554214831822663378501585198282023283691359177257566495327477300250296978081277017478363550778561088794398811640928179182070565990518952758188378760606016627517231054466617082816704913702684363523446732100962350914333309232254391044925074702931941358877102548893023223489601760839546257257094738435017677200967968918470552436195024084315750075614172226770356108663301479569201196740531947430914766289195745724274260552608122338819589687822475592726151105943005368264752183271838764918819855688249040544167225836836169102708900503990045346811171534223644974372798907052821346484308580113624978954346598203450715061238180716229239387335750359330353920738749138668831205810235992206981766688903228963730933266308484588389489658016266054485087698511839880956288379467207109429195321841973948432892127844450135137763467640841513671940655657163977912408822157825767592630181795911841835546301026216269071167912221642754251600518428273663950187342515479378437794552439560511954715856156358744824960589727419470508880477161390958780822397460844407953119722370065730049724195037683552484024497920531158803125475206961187391931430840493457527762397006189951605734342034821341070631084186137078776336475649455526227479662877073042169809906885224249088146445032236600975432887142646495849629212235677642135128421916982456927554710177666547877226079531372958847888533786387287916425117972332889820871350230510614830953853178195269012873564846897233584659692842667326292178150867130725374421551225825314148722226469377473662567801724454887260231483429240131937887812300249198870295715879317318772445834276765381334345888477323056769398103645008713801444205515182587629364602232179246302716240260222513967039655479152306887100782718249458226610100723172895343793133781590926794056240777468547735354622937343934695243721115935532816035015300840094862240461128081161432959528676776869666767728436646622693629398900367874094427369125099176777067930376597752384832618175424883497952143950500614228342149516604721281762754564072084888103353092746077225993523118453923551695504133801535155842016182416200260788261288004356509840285913335275892464118046267859426128749167061442395568090176559750635987892987812277681493005921433651325913416686095542090069957060854194876952173560159693313773641140626328331973319887909472715963000612191291672235787664858635801408635691310170825433953526029891640417162147221035514980951850893545009067233920309861840374283108320734828464889707572462314495528114474787712737220854170127233784838390911343234065458617666845656250621780445495996434461005233153260835780553887032395847970320739567613765789437235209495419700136288108157446554277017075081587794896183872783277658420176893948698458580944075927220352879076277373903711406862627796823212170566769846926481811216841208506914578270062789301802053293604896058880080146668147705563384246742352748448041673266577155893612495066736957902218701756540372384863678979560286038589724228000483743723659845486059099153323506533223629728140509212904747994173976875857532749846906701113389124969749372358577480152983965590073164553883014176056223217670542835492927595864423639924903101578138331895919059986413897500718835008054280143504282840415455242816612031126922023459291018876796198469715207277399680090713057176756437267036690332820808177646161182363099957972137736266960230291777513707963715723446181586607094221303917975640490819930425607713430861298130447931557661303932992993847507437582772573440449234847300503801041181372850269216102249136304759792849617947859541130569669550382834084907068161401891672142147776132445590753531069923344627638342001653206766033247117217688915092166515767895599895344379850546392981166301352846171706678808450592068827558771012313960296948198982269819962835419434231314373437994163367851111534787742866292886617417720641579415304347278664353927608689470197308691984473143117519703390857119835652925656491396413658930793550832904583992269330633242927987606221714504923118236768592265209531510599428984021487178879221402574130727972955437983463291789186100052398480374514800426123957690969864990340075629282669071868417556839949974561570725271397432062174538326798605584513819281758571501977532355564590223879925333606194251845079072550358959251298957340200127180060230496201141235780710102639707768782461906905934817768998696815443519238372114602548263811061546207179806528916575622814309335191200541951444434958571857092728453463111489193172377623982777180336386408606509228522935340436682208309682408599190975001065764497782129620791341587422176369843634946518336232044630241955989394734135939766234621096134811515945594393328660907535141705922446441762150210912927227869217368620930514609081841729819493788284611669047624020622191507827732967921692846039929113442706775631651779449940293890724333764870262940751899748650043602977684871365223604792276360539346158161524798034338524439618038336255380930982372727359966761646991794444256522459096241845940098413151727380926067199843330682895186596445523380454219611702187262588905841577761449294736546801683132142501242544587133437357774358616749511082950768884450543127014832368972841763102957189120077997546867723425976407265527044546790665496937361113565377511702796354806416623943144015236662130503521518161851582067389733285749196116377039561608979729446676637433204005811202287689884989220779366782516344553110218213245519213337130478611437364546188121721633940831123516323872284685222007402149728752432510748510933680595561800270158763533859689200563571700040181806907483873735134547029728380103397459233666868722912461465130185713979222958540162027105168303479335755535835106790149886560866467665253210320308476251424067286338981551589015408791377805919918066486672742795541095453828763592150744126221913464287015797327137303185377780127317190108943302831726593386988778840398233716329174961881759603836859040309224697681290054721068308597517546961243729179170882737296154867361256973006814952470859526381911777307211165244948861022545067164298012895666644260136747484038026519532059449732575081967615392436383630736547351862822663004304059180815291079667127730033480881464094412868148730018613350079238002666192963398483764658575723320369664286507360812878009641796617499848665052473535932391589366307351802638164419859442119440466599569068777497191962234735422212340437426319141782973476501340536458957719433897638554535362250385066807876647687641376995523123066600073486167290288778560592427875517278433148641150301156325348947882007754591936165132689014761235161135462593887753668948928465902947018660057631505851730296287022535577211726151270879846382264296458924675964426394382894249338911701557145480610097346268842151698015653222831687837099975311261453738959954561790945195636957178253701629367148799767329035965014308371967675921891274140448601817614856456119819872946741431050393563847630320720459542696635435305516877408827452847372109600907204574793366513641776688256897866394207025871493189865785171156329341282777158373197588507902741301731012270640649704936868383805705376656380080543366722101887123661464000056137408141035657628214132487000290116983076791199184761199688131526481557470050809367795433193659461445603574116617583802974181708793736149018653757015455995394838204868773658384187015991256691111411354161476381356981594417679101266327415191090344762121088652766911541657557076372055517977399808038880315352763316077261474592927451023962969234431685632679127901856744935800470747299519525567760145737428111990263643269789069990837008151241062334736127736692560064787362831688689291939607935363545204341092981935856632634646032128308318360848669785766685309341806973125045443363556638725301070880237883630447236238677522781817892945106481358552136776617360720757117240815428982556848606686199498257031627831893745834242179855304873673493757409801738894075838621423278890328702893146089075901100369086891200882815639660025440067741384372108163784034461380928229245061670542970381890607666832212158489073093555850446769857620592993938121766061707608537654361508712647709452159570480218048325598897735392831762447025892662216260961998682481092682144035307663125434126543420604415208419234405558416173198532716126244500224971116070156628715106290285598065009601884670613495181995639118152213641617744795084285460755379591395589761288603372512997846334391058002546262393221061474972965053453035285338872485138856531808819985017298583178084061308898834913632413026725407976730158130985413334441577987115779338800933435697771350879899356547426739158667862903084131226610183735544464296823361549062457178755784576852378926007185916161379454197972647371012150268037114970603063050063347151653678613757411499227761015121975211903128208580270484974855056380942220995509238645590590516620677602566788064840401288484768012232040377403727024819231552276313716166033032367591715507374717620981954687496695881721604732236607784887552663421869892387373734287318960941354792114258976241487463371024072591187011331055547487420076034239472744548132631727215099097474553557175872788059532993283367250885653907440150057518011070909784887664424409019651596682326488303245536542609561482780917828210819742804991314681647265830060853866221942290175455923815703059526714251501901562388319589427195349937781168068712848127325673963014019404366222448530827802274833374997887161241641322633511535425448811232012817370225956102993399396107003417442358624201245759378094567852006176841279579133988639809100777604238243739849863590320160690801629908304391434159286683636907908060051970068417388459350499259892508964100526852391038016216493151025004838527841301786001610599350121101324357882924396180344326150073888198344432064893303790463017558352739618109905629317303981936402455644155210827244468767499147335262742729744051169186925824168682670000426048823280969576751484698654585859089105857252383734423367870502380184450525171938251435336816346645652710815608429530017169554620030944595616892749824560970191445895768424924852660089795638457364374701264392206821035238786121599890063971925132139340783317749535807737642789079768113930403274586402368514735389006376590295964855119332411195282623072432762009319847085724814824529542945815055065651979552191380216098948343112618492866597546458762211688547358792758779895633678719376074481813284494887082883122939885594791801894533513136533981054162252357814091410185763669463841027297223886211071327436115569923241281930800339800702500615300210519030116393624667806007974835240284394732420894407233525451876751084298626709002760634184143523931286426144978888124655361229235002934080992916293497386508285989163059774605991138937190857964764869266689339949271863686394016183450737982090124474949715737783210239785561514618241164974335491957339006038876780353338780664160718656330719193645151643223219884175748994050240400126192847893940212828347135456246991407592890335397238426629334854547615670229371500935423016743767194146753756761856989340446099027473623776956779742774519985488646554564996807401801388764388436452665417623811081069163557769987671576368201825230895480280464294917785668987870521802277757948692477141042025637008168485652310962816607054035080677036962461205284039691556684879363718511800155845427844213356932503566529571949567201639086669954783209357337961455396322984490655091357299184051095428944315801202321746751427903916514801308746763022502900869625874372762210242919894241080822494982424654365051610254167122160314688315185274916196834262148060344534480692637781840607770588461653757397234946056406500105497770403397653563957326025346645854195070843140292956055301461666250145273548795959241403486781674196189915752886255541876438360729053034111658055764528971813357976359294862992044365650181201297113595455614430536592982815111641761056201396774595542295432389057975140196947764856614255555167083431674644135724018895391546172566269487065295867602932056196406153089925413395125627424339555707716955590779221364400194132098660584385036777765654564892664405501238891173087855062413639151928849828576420703974149436548179977678905572358800518391195849600356909487502057371099858361570065804769675870326049386013116151095620604397067299026530302194280789479880592159435221461434265929483215090841798627757871584650282921989587099861941023263588867630878660546394300462694703385856882979657070787581481240503558467650962363915199507484244156746390674014575139912768710705973567882547992273102502140065336498529315944419056399674159031577513735488215133665245278916896240491465481198291295405137761642406464878517462350210385573337282966026792002160257803431798136448161388252484414515837220715784353029086955495644421206549416449759297058898699501322124133691953661385444310001320115341928501077924806591588872810786600928700891048820258393493624458999810134243562922809631102072761626688072229846816728548755221489983463775889349957280100217139927564848998288142758330392201598813563610540274699109780712264027557590217012242580999586332755487735803103957505097251079046780233846155763019546405975826392088019980518581683569666713610069483645283040547954993023358730069705346594033111465855672414607971324097866313235379666185087538100478191221082162302977918194306454672670590385867836300092482707573850232654094244142516689756010582100664579681830602980153426568363102976127158556295834544032786000693027972673446553465478445096539008128236203781250374475031564985504353302696112183048243568785312162378492609992315800246513431148394378360471707475666800326072803798036746175798750738907880703275305745184289512572769286528938090165394332745351059167145543023761918207980625391475776611021695730125007969395317038812756520305041665364166472363923974015945045392040434932242537337412344767481679891707023253167062102085894120848402142514220942029036312316925311145681662161869143462821033090068394630746182490313034285675072942347878430179393806987872263050953939019223134211278839886639751046268022014080396444079773819793789735680738139521830107771051700809688709929050507387525748715143342901675780223871661637976253575035827651098987969089326185588811128825032776272258227772958381757760078237153160635568859805736515595523004334197419927258653548168483782827797438620067147526758934911927272069224020227129193366359494078143066374357964315379118392139780101611151953893306572803641235289384808391394101893119768481583305520886145671313190487901799650364399380480808815910711799887671886093648820990419411178927120663314387728707998629047715821407529491075666272072283645298034371476620170056892473174422247425351992339261748706125919722621138575129861074946022091579506322927804943184561930582560576644655027132570624894025266984009907377777916325551593787160295242448156935537340869932263652880886612838322428464135388911557649512488717333176407698358664827888395322669902549447266339027668573127427933380672808267927380971944111508293771122844736186605885982083475595178295119326609255390151883172472008460839250599458650832470966987042467170399748329729703221388176358484015017550080731169357662721733986117801290047467993080454731892428672831048887806679740104816357851619326717516122334802738157009762918847290937440279457527520885446284283482484833882794254358094279811184269641437082538589996165675065217664378126320148810314579118741425823786354797286872271977727459679065293175214618813697200865279701105870219354819867862902876021118740885649179513418017160371901422486739714651064436178493918041229276437732013232795568232520839005632319378766382889600388903662113070920015779025037348306805671496469240510731242906994951211962251289716436533524234341728729985296558472728568017271602385062898908987849970360860767857328066214559253582727144543310528180820172703570271100517137835905183963584196650037479626140782196941678276795470364821532733367180906590193478321206476454821342593619811692649027289257133691467885174583078327757382539973503088144825723503397142605568254947780822124883937873350085511162520837025449537663776076661079544680347824892083127835920740266396447624368613222970644150435402333065283205564220344219729171668800389853659144863940250066634954620351748352150968575531775719869845563755568256389280485591658924325066812117531075759489487656787203552418712241899402534824212109617531589428290572069985191323709791282601976660520307294266027389512285830168571832460484794452046817151077345561559705413174373680305674135061860977586629683584295980867500694669561436112020321530721479061183068983374176467300650561438644345466512158003729904136570159151014924618204956298865760901054176564666471674381885849072845546628992185979593315487084888061678095606812261426054112244190061952316077039633247122854581192587206327064696173026884092600073523509463925877147183171161528402703223019163919033036828182332813948339516109542018635546192192205380942664680683052300304961363757907554174420002142688461417972519592234170008357092540117691878587496551523587868170364213182570692069759114888841332517993901593705464903534227614951882317385001919236731169071432160489949407733593507707381769410159456974504774701312220231088678837378425837416279190081903565408411316265416496911977353342598507402155626267819419040884885322533937717259238600303536963997510183812441959137063568559534374748779417559436472264071441107380283973570596107299887976627274697233342567035239388174538369887829789413158770980593635803240413286621922313249669562968618105551759923979981071861341745854713431504662545014957935751307068505871196173606198607784801957617071688613239512509842444907795540833898942108665911801094255639238788434208986154971596421444687446149511824980369382041075623125532373818983623505107424491264906509427452924235939283543623409815837863508463769677943258955156872548427334444427223384309993097235974506004842845223618486481521732399639792094894816904320690213863370249822554790578092232689017001616715240712806880127734286460227338223360805517843289190339709758528968498071769427031145332477371030831438831363195278117602126080537876445753643463167370722403952104505271370277141848708595209914777001185989444944202852484296673722022359122240975397879548299580380242328075300947231360466337434585272424341398682814697538612973769792317673535875529935626357641306529491004717210705599019989580737746396858849945251924254476641556331480440346911879773393547774712613486917990579141738533429545716004281356058031632751790634563606764897944367880846065611034889381696362384735125210053555180237726706587134793351426655988691543895997151910920962346050568522192646462594892457799628603652220799357194109483937610944513879240292963705881829929754760374643478098353338067561283348223870904868805635101087957347081500030842318757400109492058967065340657146387780676554081232880659926654073208507443922739000763361710168480933698409420095157203122058348400262637151100971932707297554123043462650762272358429895548206343308639964153928959798662955204678768960244542429732549224619971493878630080349572859817629843859777328296141540900772768236939096889056155712124678777178506261830967774201694888637346178854285951666378204602531105078002556622725392598049576288822061281100681126034527778039101307508315682108228652173447647974908361217484926497135742558766129216776108607175497914360612736300509155272251642226716098902869251124246665536727458576679321321136031074439258475895190344174954366929393925246104827180356062542566367333329087471959771532688573131422180647897332327396461807413134091077976191772947162731580385601633497229466663790876941305110453929511932334884856970949405430623931841802542300213378884797415699180749589437455312744180361573138524845032354371559524575560792238210294151485035152487409949236574940756072813998111337949574595239593102383083829858575052358192277454638162015339417854630084032242046313594110689492963667756357444884642092778487938830346238716536649922383830905084927967815223999486539753229250934691598788836907616212832838274936577089223544469809460000226788111736706755530205076841784052287212227946749929329021141390028508386129625780606945353073068128784030212821300847651802370498526233677634346450423804834656916386430100076548851765266974094700705355072650371882450980765509756412633018689707505457156710245270740186870552687753366840332147623065067105560336712525402572388702788162698573020213032625959059526828137669627027769909990739684585517300660357500245808687206582435502785487877419487465254070739008563727335926174774565833580452604735930408177026725902589028354232331367711002457111081757589549702769434012762124200659926097039109858665317919687531518392096984656325364156870345176605153941012415679988885249709338798016722760979847119244713343204090148970566592406674545643429286500347984102922258975209472856323413515506500451156051616916050575278140205848710422652886579781730043384243956613513296709247572969578411279551839985168833943534533182757067965334099084265336071355413978421289438492725464709123415623611592968279264108366286611723340426984919813594968135378470893247970198676022389402862383474426223467249024599041245159618761114878544423770535084383266313521009114248525835587918213115003971316000299660799483218627054567882427577515277472752598064456150687345951231280977883074838340502930936753628354018151868536854819498745883663242894065403710405719030860893889203348897620732466332573054790360629790657193113677381399967448343046067230334630227051381403048513719667705511568963651772994713764887899972650581917844726448858111738674701926896933686309029098885422377364933620472017532377597910860723470049931512979496254680235708739646621009323131740758004082272725961311206943067773104365490934856695561493873449159946326119185519031379405923340045866113946875080128017994247569331915747569148494492462518785205229414684109679195681866613733527223911522567402013210566200511629836422997756626215733890026934875653726090794000565710646957356607567929695220728631353893146531659057377344398725059404366879480221240665105245115099108827100529218517895926768365935886025607546933408507039519641420970697880927323529944670566731464778358017329584965360402217276624544138409834288200728213418046863851584392976554269172469858014163552094035903499205347908807012392425775243670947536053452445773081604236997697975112312340323267279776838595568145132093840292496136003647379167254532531608617671966009620232622166157487583112120393083541040225811999065835480667196163169515814572385187105099957734837001508255305760435603492767987920602417808267178140079410062719606261169080589935079130571534349264552597801794846200664424537790144974328362894471485141939278337355567464149909300923753811373637133430636629147431235025793408296476857195418933666590851998252587204903253863083717185417911460820587291509170632222650027115817908917908084644335544016023705917306763866172391365850257042125132818429833572545900881987694890555270238333761209576468481755151723256497385992795750296683101037188187358027957238211448098936821333870852473983362149278686280611540234201738518760096444613952272949656201106302247498326839074614221223937099181881504872857203552377521183840065299745951883461205712079509663222654916963731522842381645971804737741280091179018774331985381504597280128856566532520253681745633769331197599190271714708110178128832504930058891559377727930815282367425497726896607089406625534676565647158708253620217781960364222334370305902696171965691057872526879663269051704200818698617444626326581597235077327331993240590166969402012898552184979004709816169502878319961155329836096949854179448027119127411398068045251102257060336705592243929782556936233085580188377114758064201192824926280478806840759400911850822908615471557042809643823917588806609099847315045778008629551272206968213369425800936754197441145977100523284901971235511693577270829899904466697867115236618577474091705004687701438346802740867522804996009849941049650442951917417225512191674911536978749365564403373357491358439521966135041165096670558646394542786386682174066127457992489253475891255810429482398840110716602786230916794178838986328996637831188274974925957838342784479490471738875788431826159795991560422995202696664351319856822469208228540549665066805850128947251122126798516005949902764894862245366711567914123449622949896635873080298410131067991247182652941286965184072339492087361758691584497789430382679875166521156762933240991691623313455239957814469498130812373136727867164664292438860928750690690502579731439456873963422841958036837136142070924706238281479026318679721266078766176741262353623593959989486002299831740464335517872746085936475209533387324471748775539184691916132034880323390551638848986105516846701845602311988282126287338662206610657303613639387758904320793642349639759085785821687543337389501964974336728553941453208997840695451341968185318474695265847033415137319900930292184953070124223181802793352211972943658040821760331884401533464137989806554773028088392330621729506797293786853532559572143086038347798189182173951508468928900011243229714320904539224780715776845396211905211840691977002767541637004231943071029005228839270293431503619749123830636797331586246088340704913288626065086815733713914384546632468002927925697586600641713775749949802830809144708492958551226808599036139270897843544378550500511489626438890678600828349926484238952227536996628960097102709674040346276896148647852248244102771087510191897272304508695852954883462038664541839297386292644881563918456774988878201716863787936266963573943808920069273203144881802892839687836186105661426443406516778110483313998074948103663371056584013587132855949433950073739071652802260099273562939916734946049871028691580536074583498589849423653829770875845155501299854688024316850434698191412476966752248080768828550141796026159994566139773082297564628128794494367028948785986071110168329350264101337057671949373117916807177773261986640019192303479175594336998965260458054396059705271452654584164774826187499551189391494970007429976830601317547155336955392538281458764011530475735433557454695320769835024832068881109440945522644652988658339887693074363031348404762789514088152002466736481759999407495043530185065896763830692595424328323343587010320283664050512831864529319171142617434673853326702344092736142929599844175233388798127932248959987252254920345753165857012328350411681466305619176471439936091275331275186132615137017630874631209612206117370243051162970667571891294582127547540681577460262739897083186384300274682322565464269991556299435411113357730068447449560599187960042667364829533640578067394569055940905983907878712389016225353835457594518768648312457093261730867196037097061450582416233092250260269933708164932754877894968993654933609630669261645103328225366970373806147562711917934772188228779491466481742179053920889101701492964478815585366933772532938913862407751006998791340433088784673074996294405512410611097183485266116358807246916229391243151333624439745649281844544597002002420867064886660656853651026591250915445806055853612671861469435163578980690106459955575149050151422165250634647898169076121696993946538120381199730815972907526946159476207472433844153895549531216833812456255112991482607993750223889222298223030596563995974307124730687138888818347409640323929775575250576789752174172696880117712726510361792326539009577756973571595295951479414652216839994650558968867466834271603519683585570962966340180460674781775555183248366420136432682868277836466973448023489478955905299840620391717595823562910279143699223004849688958012745786243265585770831458524099588506020366667361008969054532121925520563970340259343616513759393673687750105449783161083134125707794423243645971423097849543897480689518471737799615216504621489624301195361763696472792644411889211201813937364458121995746571936692063804950919579216456084675725493109205657633254436319519729390814416211666647481608104244062520857458685916589731229470279561716654391648036033756671912331887924075778818643765455968323860860460795425884121640758356686190227088741310508068421014073996350178411101864297738405800962020517615242272827517516102252059988612518301372084924324663587528575108933751425151949095690582482180151147943276521743238534281586408863365710281204353818672904208279140319092671374177652657769712097137349988533484386487437544661073825219993609326564146394370689185279857414916771257260396883017557042502903866915530937611073209670199956047540530589969349564181242949511776580301085387811548861745086571065961979417435713452204914409392713928638425122710429942266422924705162482083055186717313443377644359774321987648072783549370543885551774055742356207063049070430843927055522149383717971162410513298511510436198603796984124557934768640513239329916020036870003656361687006428111790698089921671121198320740033900941582921636247719885706959600047108006002463281592972691254211198335787901060669822222954217004279332797213216521772162869110792546780853605218152864931525137144873670093249318928822487290499886118363318410891083828949672784643325164544814891882325486723475985660544127453919064440825538126268099407173372064794068624203793471074159006406341337622336172352186091607365611646740010539400654959677815924463568162910177574008865636148673118132015093633343943610958002028991093399496904938605159606965052856812696074925481740591786500908183173985888533612143703823816522504231923024447380716348571689088760598492565235622523845993802505843993992633782514168576141982677305610471564771773515779513524834929332765254200627550875374569596648915611270797292238780621689001228851681997307863862087143952166531896112253004337229991816685194225855779782415915889554368208441540926076228639345198944399062142035643890059388862383074942065752647826618950800406023939416922419377288632469102628568209437076287663062044835672669832505623023278444893605499065598696688673080610718029227224421753286486218506731915470118833444963695326007785276996196988269444380036965891054942068489051348704681623379157174435090449915804839117043803363435472977480813634531141425571482060314579780352593926939302460436929609402351616383945942631700887914902322408372136682314051990875676269078855654071641291166142972112653668478792826712332037269219235697226082055721846589732679030783118296101874339843670024084283614038935817809631466737732496220112770888759590886155060024164267185236261760410123349125278122761991011962161772144562672092898304076412251850085017495500758630720102345107611397473038291284724879418739385154634803981589465491993728301828915854568686365511739899956277229232338851875698881659479385170049852539483951767350860128354340864383640754195092202456603084635768679666856278541978463033111343330816404668393446522218142524211804225068744930758294717512081095809731950984644298152480483626675327360959974669281910535844325700451268024746885458201473261036350715005033190904087947439445816826776125553394498854513923444369672478799186894792502261603797241572091800903436461659437033819112525568566540048359188324812769836099544972925156873097505084559081426937784413629854820940557854616121023530815793789279340016076418455594179551889207078476045486197949240492996234496561930425874545017391017816854370543482739790324766404988680793751944329965022260484593500328730385895449205021230127369376948376645896643810176747869399991851476950269598546298040726342984284402005159418689860286666600391199551044271253274675472611625299020804099077438766663592190252367253057855586234506048352764665916124191301952092223828546062866030395113210233161441990248958775096544423847738479204749806667344729190094314027499954498674086363112317043174523566256881020925432497619353725330991381175514934113502062462885652659333895440979490497937767644907099687592976948812138987641069820017107393882535049498411374311567456091237525707444535631182856246143669205024407002557950399853990254059369060963053027251756612749413322650151458382020205835575774987188396356500957002413610615642219790394201799175375370829522908574325787222888106786265474975256690598445307194351123418372550467729603545341003241594950189486290821328289396866997289845731461596313996243926193601742142133545131580393869091355922682485284828720398276984926061089174114657396509786617138131910236869724659606224560800796868076397224701442751670087261093448267367676672647949733523411814266185818063824006414712086927160060004663666410689917700922427858001149674836400690730410040266495796549539985002262785223232244174471529467271089787561789915282573017016894047344563349960885646084876318880247093327252913538366698723193101357322887411325747115302886381100961110982243076659276135481156331029511698513884221095227076343137271640718305408392476293985035656536149661771962938063155435312623742604754803517492906862082040759187511171487712617988432904513094524064655067061026248362285820533606157342524396057486987505027967731002627520801358766343298631416847608077706641405465705577154464268772394774276245816167745114078455997130809293016341807439950282379628535535743363848275054855622813053877196630758599536907413863677791796651875657831563957850924078204377959512165474789219514545033525116201629047354218069175083852894970922244453891227116226124852813032079363987339377887926649769414250070879353821499069037596018714034491627500519918081397942641785392584536807875244553089724395080868174913905512224480570137799310224863598105889191177333474933467559818652233634426844284420372119866301094710143774619648312814255458946120618554960374744654894414073986216909306318538662352434597335102165196466885086308576291943703101120535482400546582131347557638760191568474499642598267782928029147997957375841139748218210640526406372365012571141054392051740651407783320960590050891198304813146566896783448169568242091620395035397560857190275939600157115427211507482010048466135742355036260933609134586914522734205746997785609311894295113020926845093085831219347155718788924709152038731227949471714557965722716702316164374267886626203553227796211672260794195630627460378778707692451771961035327988665053155702918915694672835639296996203709766054503345763076811917124887280129635736000691758407050493453986769974088267417790321348892934786531081840910530697210530531364828292047856644773824177331355315172482774758742538548751172224136620552633149058206017265088625320892287428144469614954173229918093242061067321129897150851784318411848800004591102380609120586479283590772998220346441469123411579671505482838765796482840980270740347186239394340259605807784950498595259237926156527336717463993770278193461517177132456462067314161004855399776196396865259543599452706454692433367668482582691363134995058523462351748648578250323361483870948242489093396078013445060700666138693449181089306918848464846503902220201595341524161439702863016595806371386382290250695992443751392178835909671264135749791941294842357288873885880463654948309180846095780669424670041353619741755147364019975808935045528673234256004357901441048838210617622666843453448950530972137025994465830699012319753653955520113077470071012496158551906436918824161466947248101529822975745648713583261377768350027783395760336592170880494584141340133188903238520191195736351256439951647809776384759434401825866702226881852472375879638864601158714261084794659822336458145024867762736040926613470252133176778193325774882282769810424443848391442691749401120659034580812392047545445824900234473456958061558850412192220955167841687196643152078661170727449623001002640151333066226642091742760686850306207899181660693357890965908396997725409689968338458316939596621053795935023157990208964093889653065234770436454555514390994925684154814924343463612460433149474065318851486611650558250347737023908836726351126672776406176923727180614850007080300573518522708875766674049242696933995720272208771972223539909270939938005379616160068342887893946390870512405701970494188548919137185019864954390525658954266019602070571626018053570818888148550095359815566653322161598111669923828606915060633130378588714110987687750455193944387809459531247759461331616237439233868451799597759445101643351022915651481589912614384170093908626727403807455659743408263749563159946540119753902678587484718112040104874023922698195045630289373094849991678339294484699542312006231255428646257843946675929137911756068033104297281860567105980934897185208774526924892850896233101281246828070639942587919022587574586950293144870157657298124083861712319044354487155417351233409329593767739587033003006811201538066290151523308216013350106685373147560465694725821159886110042995008885219388877187807919406387584454734921491123011913588577752111294715485378917104459417587584124196404371615290898078674203182921297882239762367618426674458538111036672364367144395316914480505627203185911695929709958074578021054290266178553671972876444777761561276534328178559429458197900430780396573729935891405259804858916037350774751667498019177147284985663953016218333018595990337734111510164080854334264657764291380181002805980245250566070694331952066599879051555266097870278718440141597938467464832827277363425560887375688812412717570104315418951392990947515735504663986579532117019924874297989827086199999542354922723782096873298831022647253346537007448067709124966618028984728127314124239029797522791091265461866943401516930430273333203925863967716403762478044444469345742610946622066815967551375726133518305938016823625529633735456129556155968077987276381609459937690892767478450764429985543645910366328683236276230406434513646545295797423092092586254734083516473641438703352428583819655392657321782845599601310643178596773112870861937807854034949432865592621412287601226273924259934344132903943099279278970913494170217527804723308149193108133314069180917377365533702503401461873380944295590663129020449792332866448981984580306278758526573230498600125881049320881947562498796958718895912315672232063617370410833649143146291296826659205660547562892336074855534074869403844060155559693945728638243931912622357497020261130450698358679362315614237990869118019137560716784341653256192217518395533506214239399534281087243972508648708660557481400311374286970744999176403166997160131769615392725624580329666074646621227432116983755863705702540404027336665058818586896519532174514969206863512460561318873819561560338279612805041399716376481163269342902414769100399375887040708386891871809144622349753758159496678025390248920816936218012190156743187103972145667494606139038733784963429715588143065053266784461224040100005096696049855907101525260616486343249963292951410589979438683651762368462750822419170663637127208561358646247100499681198691103826721235981910871090492895073132153544419400191059626602706302069107480566595876639133938232761439232712352828408129616184598500955486827552792651538881631443102944802115553356387929051978909118092920674267914615166571514250574405065872661674639883152444804327178058458384834847529028372509286926820810962779695856384508855478108152826912242097947399549297050283015995580816309162063275171128559798164863838688990866785090468298335673492841702538702480947580370420398051386792369666980956887109642734002436247487104099491563811062467037769855364408519037160686675606743842705411586346121671961857158617175592061442080687955207972142659244695138249201711912695310048570833259532034652297921608246654738996988884637331103358799898976271470226738989752089540501660627194524267426905778190882036003240748560703282645271489026978110495911009387060964050154289434518883576741374315854928828596429941456471643930143200740572936904348353395168473030829089246991880612198238596038161183084071938489206823592239996970138250627586157585817165200593382778499113420185602283537915255622317156880758756367450740802362690429334972234756844899424507597303128474080936424227157947492156060721708919464170619505117572463147282314238048634989698797385357494657924451867525240080909219434806026970821336182414386320682810193743985218320919419318007079799520649911291481494507804231198496768260808915071681277626223594550274103010345890353028756521626414477334146151884142626040045309345993484320173868408105949119369943762659999728258349165280148759753289032874827632772199723205721054375419743204325992526061719688998163612352759919653335485785186020181865445306854440850687432903313320451841952909788900737572418267023455422668254826400492360100981873414374210892252136320871733577428555701972787265586846939835555700546581986131862159939833323660946130067620170249848883932365903339030191519963846135719387279184008597419787678814002489581448991331562615486275742912149689812985596306928965367517324546843369652345663560643369213959060145909667150452488137398030299762763507196868077572639049806021845356190441860668835988504150471917547591941249311046017910989298154812663182808118769771559702389356800622621957426258214571202930460221130178333721299843896958679606656838660599639834418265536796826357076312765491736653480508240920134006344927830311775174221829709366425750669860662073816414846310628446660246071501565958404346542799020743756933293679803052563384700190021557105462547909283110132886985766724023462085010805608340656220650110855289881894953279218831273229916048877709397537711735263459784833733249213551374798676461775272950794140150074477377408357765895142741055175226507619058562774314596149774152281073217506550605880390195245146976917694388201610372326649708508421581350113905089589088387636846885288591079167001189632730326346751226923353790988000581177000964215399295898113972839819647371874235284759319064360496136114111401827935345548512425843960629036124462822657095239015762451892333170802612323455203459418202820685905355763452922804134873671925650224638450764187882947747398520068579867339470058779562073842164604759163235928177324426408742030454637211290846641934830174895906198830150168392354331935725115339700893738350518393457689398208030827335329513637880431958728863514961924896301399518278655860673836922411299659862178006447533328406009502348951141867577695086992298319508386645649824272883133351342104541930616650998533577044379955592835655535947274383555864815648870377092010247186305601325585274553080347435270730160502697609166456185237363607938612059411570730068792525660680167974116339812417872486085997449857112917398430250773061834017477747683774973789765192390084834176224476789739582150707424639805377289060043604207600721280458800189040791548286529825872261863202170448935166993387276104824455396052599060490275896856054077340706339898986287610180774850911808921372511328972340281820311198377444287748161522839349270090681765257786468234445523226193850319874725631687379850736286746618480676491102344287867977056842740520606797782745838266180576995581118073630923751507122843376074071793864440734032989281522119357959175005657612413687620399869244040835957229705093643542892890317924888374847168522069306738144705571291967382033442616391022709391209219925281749177519161625355454000808523046987541064732103756600413860632820315227957217252045772078258565501505781338622393595595916417157146817814907056084127786975821880303068650811043174959750624650811423498913490050961368169897802487680491668864333249445420782493233402877690416882123377305001243928520533061552676863665455890819394842417661617436694967517222615130971425191842068546875328625606044991723215118440195278600538201900746406732663150864768275001717194043516026801434843208778694723334312002291380236167924411069911960042322414302215150969059564600752586574566509935869888267497709000984711351553904524656730275836033250159344011425515453811641717958554244891422169605068681868408580866412389744294116861710329675557622667397333127660169304633039903330609539083167643197037063610177108486045206321165623034744907623232836896889855007729115579366276087719026970377177051118882583234575834453278509125859324140551965953567711914555430842146164274176165010452907331933676965774302119952945590174642787361143200342810148489745918263284625327450257885806254326794515507097889335354901240012798144028143179736815801239951011981184754483948404574893366718805739308248221131554723541200505899929534850264502390988514831625571109270995381805509642655658192174771750919923546936056247901357533251724933562841216392593299866704518913228319879350197077228983654789619408284192837063889922193099895764127338100602657929596608825782637899241849059097989961720334674293690302259483386974828272247414832005646463514893714047036267465385431017138230010812029391779079363510920712876906076758032763404391724923599140889061039869563343790790381760735164670840714769072505092094779628696484397233275060967757521745331326876137658165182426780388393941580513341520639190449678737288807154810659974064942013637097967660176416692974453286137423685062943092694378582116833819829322489507209397032251253474796711399449733028966495946363013496679953187927579415058102367622856635457793635148436198104787649894729296779270958622814981547894993634381141868270483311206090393677255617000877008888361086639716153402972557490835685055673413114361461532297281579746412306346748501017208282515131406067194082576444818312079241925781064773342760953339838533804640267669917911978326645207824229229042838632051977948143929284682844106108126762955321428126452248196064866828181950794425259380372410641203137420280006482549249127505571381556036647750657138822979273030602942609770133994599439680767621315718555361764679822928034307339838523477783575233115414349329447800473603987768838911778697123738409743463547139315946422337787611369403409879832219775726166562040794424698525379479413898535108463640157159129313325395041588366416343631655759632497002162087777220607043822602558346617812887539180939042151196591567127272655681883355327598102892549656974573328692391152315455876207635437435947715768103256558765280145673763418250153651541624345026214228405436135400233024040414836261490909049461636579933752674787916858198844872144538052663867116900787998565755337372644363581137996768878534226785042482715829570709871550030565047838652881583878350544574127978744079140846429834894794470179982529662646531336232429114223930614293068317937108172384107792811422151330694645223602682226047182402957874213887025195009001246279072448080915272946927289805010656364600044549189598219381626185003611713515358371460512679442838952423445952421035122219025208264972272068348070593141367971713825865972005206881069123258060386670397349651305331083654797426327361653304735238889790715765316077335432201972467265429215195795289240719266252467000502315178143976331507098040993148707579661258731770075614584589073594167343878682424414806562507729301831863648434578127753785101113740260436273692477786634264534678640355104556055425643345544824305026292925972958788234553018429335744153737932480284865542998338797035418475129569019290938737310163475818189153315211411241368942375450980490879335678036585518621879285781133523138871375087985528031279455738201486033759327267647142266643884224674489097927358453887642485414269721772238744531145226538194975461814934183483881630406500349994917162490384922414411619863095524434894114483332618895657651622290219020417635971044632432793966475954402790472449549972121652483627592158241751949723469695383627105617106457036979865029796148236535365956127118569765786573305004786819394621272223748164136872249425571884674413419625194022052547919230258302732680528510187885021585583380541343149843616411013646143323610408675271992852680724970762653623205179496811564974808338155548294141072639971345472963704251733665795474123338530829921712051860146569478849828197865573873140520626868458263799164806050238426744415002976595232510259187799221421155900098075771937584373647665190743749409409045395883281063912481606747523763926476184647945576980961694726347962360963356296601734391920708144480074969245774596324054623230327442385434186629859194494843181279658816971275038633169784996789495559786686042977976074844479881309501719367438027478869650540762538121904265856809218292954697759110072210156086505805446796516879880727023409947383878444291437980648283336440277133328850221152568372693957978830585212586215169852800613408757111080748250605248651739560404768553649592348822248036925679121222950036387595974765737566868610416279167952624658127939971356020669362943239987434625508627879645301389165668660698714611912057624214200633555689571223542672248307075748302454474425563619729318155922746049036857868151832613108407345636523570583446835443466112372646579372581315255486479390430166934779257113757279358067188667644890727727518082267036037412000189893362431286137270330751731949448374935759766778555072606315495113824794995689865838350624533052803493762929983207940402642142417073003512086077180940349797168025300786002907915980126265449785620846845567248557897974636971942893482142534400589898577070386467541345125779494179597382310516142383896459468126251640177209171500948066893885310964487129225360333621957478258139042252795610239197300517116185373229252703334727190505837958358021154148864698860748841789616240903820239150980355693870570808891203112949672303971602662930817633120583497071593991297438046077503429487026330188235235529453378084117102755388798796954985838665462396469855643908293324744879650809139982339105653658561319989647338196264563986882188608338041753481084905750555626725382219560365172994923826491009350518211148057216670951910407777323815026751887037469154325047069514022045358139495242157160502836016940962126784553385504919236937925816512751467032123298654564471508156951282532328085267497222392302364111622387962802144306476742705912266336864325148376646688409082628759917321288315743032101117794551963389167054385381745513193664330596144990381757108046566418414200329069488640199471684414043384600653643240206354309490663724260789583893355444497794578583010964382427942458494946123151036424102503197065212277127260832467166536939015033378730850443490836512444182229011214360178916827107550628411789110026024531858348466909629210800285104057716845814101921918044081174724106485497618912347209235207832922906744246144442468010085995742471307970988947677922579433369520606740248320837347872179599967241695998991980428716069753138554631470868039207553476380381919810014054054737702570565528481257465965304461887661732444341620217947221210103469701690466515197462525589833658326831755713540117446897188369957195920936266983899828003424249828444377199436174551925125160362927680823557866280518384016138216022007596006075753534555353325261830784750386623189370179405853260975624156241472639669855883255200492272665535989725971685002217154207922531826443746797490040861720919827057093407030641449931418361004786318954509900504005779282015672196324135619408054381870147522398284205754368731732973200312827341890077113770657993315575424318930994794117527027472763506657943168408212341784326282073800557094652942255950744243099743464594457520543011421810727698022420117244437839913755985663724501686257097267905816584909665451614702042098958734401582958708928154891509705297445635850306655122722740928488992363202513684858777957340691698209676428554408794388976908443226826966706319178030674495997799552801144943026995381360907646774131318390760299556055555204399501140612525364961572888271833957314818620792184863702027373400882060835385606604310842348955011013994047085278219209285331484635956092093775770546336331645025376999244855588088694887664319674949485257820715516137531021019326605417972971519859306007384226862688705070104184470955219350181387399852868671554504054391697547975176372351926761455999653301121738752426190790781157697097106420912676796519152387004869347305674916435971627644756513810921601696728242969162805012591644954475796502054297838240393614156131578136339898631965055179673517630163396685498677928858335147633099586957950403346967835063014766451871418269092674959712257558316287390899745378855654841185637822193042858390069593138463108025018825223252492150971254605920057294043836260103309549893331523152569639436746511081154719404508464891721925408813454614171257424639536073162359784910745619130313345346530073090126936478145791483089742807325552472233197244481225209077923988582185449335629671782493391465616664520488098589248714547385760463899408626061452642064066596587842870971881689923467524279871172873020408163078744629460812631167728272739748661733953066541250061909440342152944204681804566756694392449835055010948017361138586010807818980923554510899019624175942091402938111803377514234639132262038788024416344789472684316459310720259765948587815375521575341370039597806118199965126788249284924858872395128631507683919704993608061545544536539457413072536802421982247903385822698755339074266201084454860625015255330831746003457324603126287154497959037017376700084981615883428782759609391199422187514314953228380674259764804033431251290597485548535651910696619085464876980256712213450614898629849375588589176199899956269613697195485703838511617849542864776154071660349207367534475439737078938186731584857451680002142764440959181685469686156635680319029061356271880578884839903425092151876340963848383466195893960567888374866902792080937307051154913475418674637051473818757183671012362684331464043399828902114662161457721292122330143561820209695341261017506296362915430315747322564197914856914477510990448269096899630867432820121622693237751438904080636848797246935795863667667591647619536236871008296864394090406980223321935556161963363620157320054232469254968484715526794450426498215566950869889577325810411312585464289602084201368739180984712632414380844927600686178582126633110455060534907704365142253263206900199655820697636883765180213122100318182145349954617380243312864586276163864899613562102397564988473331618097665797888865195820428498487430794608433497096262845823765986423516233197189037522428987994137680113927336542533362375560847129329738877570749961248262417140537020529142198882639185006333245542043058727258508591535580522225969609737247791662214891124559566995773408641272848372755825503809515708329280687128694505983409397098966617663226654883224608225328209251745250535516675360136345385607246115236869083644846662578412576661606074647404810574990045576268995348380713267849805659530718620248948019528960678164265339506425898833213693201998630983974450605121585076033886972404153270016019793841608008052607895151379880009803688939203485384058280374149267561559301621531310392280927493855261308109567735951775919467359054392466258073495500368250876614918495719359673750869834952480901734796366850452896664461962037704615796523055862173055175841406841843190565509650450710217866693715190010698938765711871346330513964226059556810564765612840633803868599663520958562518577123682429867893962932938119974682659023871466718318504820694115634222734686076814978996018789179447600012238656061952490475441572159073925987611203957288745901472966105012062441967268183712208683916777180693276963517789927337134500119181542780867437735319243571884905828723432501520635629565277598910787402636173730561998174325897617494045951943050680762603096142625345800531802397137433533854189341453983901729024389644380255393655029582112275237037567554362864980394613505877293099193740205187273398969498366405687224328785637103608503058122155123933514000331230578439592423775772358723323200830745770202824536979743909547005151864518405420943439384712209939792934006177577135085944756130838439803098952957958786333474313947760031284107708218492348475049453261333075652243621613081906695146704853779860120707437609342469126570429976888264392137967904258858036208465421325606607136960923467410183214221835271324481151900265255772575076903017348622869318334969927457579639059141221182964949142498303851504602475547513147298787474786268988875449648671404830254732434219713340173559992086717376004247440907154254403808492451646038908746239009319759699430607785036380969407799156270040022746582561249033523183170165819902434593156573520292601946513582781488113349923153957748583575803983789309113469350810086643489485410143573718413303246577540641308595879665787893465619538608404584059212930763192903676354545203804001246527549716334908407695132568712635717034541951361149862108827094371175722152905570866797757817803009323922497062428624094918504689179502745717401992473476397051166154619459295210958408465760640082933122327091262759390926893387802957375330991276595168899901648140003522135051282211071567537221803943846869915326004104119477304125808205267045592371182994186648453720492722672349746384958667970987600959375171881344329994347607623784424705908432604057502314963718905280685421605997900220297722104837603922550563241346349711028884709651367049849704348748861261035641653552315927549730277303621613536718586953472463060875690568703662255698002244266834196511542628090350237988624131461792253305117787438807082397654284520008324170932991714392526393350369884735312703847479269431763796038249165213947506848398215979792120261664944704835841870153569246363611063985482507272090432093577111417308805205639372403821117988605060069232514156011251464609418261066936264815295546466258264765828253004312019552304009228504483183263698900659608192261403619256607627615368681312407502737884951046520166902960201485424591200638399044823596364271355397859750523554637560815958589391883104774862706463611980718686481372050461845588172894240891890225375881744309359153916142820610183207444064034411844427742514776745773727164479224691614882261323371686406725791304103937887344256012888217737651874432547321922799832943904219620491327088923471586961409018905835868430998231696159465710820965580382063454732793760204805252660983999661896216065248151682877341243131506763015183129931876006450137547250180072413684105163850710490515165329872139705481399194423391547794174926862273073410176552134589369335479356867077771710941904003513854637926406433184581633608741542069145634439897776333145654930635167130624831522214779808846902383731268343437767971961531053665037236952978250334399304224838924489312447497951750154214339546522230850981262764743487274475320236296157259991546746201781539991405426410154403652572589991373355426367267533765667865316877320263935873481644971769316389486647654762515546000448851260873320196233849124567355682025297997405710616474593801458085299513231486979037205540820823221787388393288399703334686334161561751470573835478050173061995932159422590487380317533040847800303536809896525172917447031436412778746776617897130255771259372722551574403914346855557398434519310098397611453339677896005744417886993143721923036659639009297280246826347448962370761863586799375626379623011123388194923206491876429058535965042266528309413639162576835198366141658892824005317120146239760993081633749036817924912181738239537842762424890393428922350337328982151559262601127775413667118845191487177581380191962782434167215815486744295879428080614693766306759456908086072174384392797341181234745836235030992298094927815992021848124120237096496288821285885872441266298545847490637041390639782932765058055094111669573320284113757263454955952212485830796201131110902152264258370125774759640527378464989963786539436663156810925610941011875547901825359088113679466834358144428368003249004996988625561459580830744062146821867355030931222561132665113009323245888861786598329102432734482234112544595106934052996840580510128607696617428335739366207348090942143522050213935784377023001471094949011380644957665334524176153453288299827722649282757740442877557089161882437229772305813096054288892145129681630498893825089264998105282031047980404254965252076160261341431661814397408385081783843001015440462651428543463958507248552902834503190155191192914614791673479783248392905885868524339654282083028903269754547440338013690127181723533426870571093926579506359715349572139737678986042266551802172672258023626614197405154461346458576143545635762410221483626962661510359258284947279088612858580177584527797696774404111963738904025029328515496943262257049317868784539244243870034915232138025885067204778782146925297315980566347227928137796867926741888870066420076447398227861872831948182306545899446731360649162937844115737805514698230235573587494021418434541376163387107980730153627565450979204191080871082917608195312451310639902375573055954168359416734230086090228516746302551224358188224660464247161398935736617173673439710031672903706537563333782802813492616966050943447123836916981661512386589451838546819982251082466055595085570763691793072759156883654081854654399752648261515049987636595131696781748039082898239243342973686297048022906132114890553440640000722110775485719635318557222854564197856540052143098746593936205497442617095244487256044858124657864941044920786273574836152903232180061928571802722337906813284249250039368731149367385311155445150312223509982885960006631270030055103865256971682080909061662311702499070717509947012840507164001959927730228353973308227311134583049467333657735723145458135221855278759799017453428850553493359482928803856591313231378418063112347020220676539940800303014023134310855428596530922102258307012384663921296615568017684534752310811292085932831356159317726882373814049226327763652962598178399625705737835550038443620030915589626892923702907368965811913311069458296212101713044249050027200141380865622577647914718567211337603516887414788354854919786697504035475498140525089108874641597285420658192193528374792341818865459760035994186423702961904205324910517065400749258516924484729306057243850641226038607972955906375241924969519031644897001928875174067711089501293670138937085058764466643069969963977609629511942364384939422111503729279549879802662396434451468478655540451635608902633374084281680843595109714394315855117138642103063524628670836155778940330730472413981134532724257696900498348721808342057617730667515675289447512776629145192633748718302782362911901860729538485268845090805940253283636158436547204379799746439243815911987826680978880278152038211620455589369190006131425766932593501518420895124127120197470345570452111903746657555817213188175107515048073997013126964226419136480353508935848616882683744059280948738762569569644630733980068132946977582504777037976262070208407306778189546856431914444183653502586398760100245481740065663717934735866414424210968439371838657010230381905290948084463574978383585106828134272484615237733416156029777104718963856857606692107771245042025445791655139968124077547428022187451083166258301097790285430534057288839811871996536496855127250969784639032276782262028369860378479277985378715111853826059063397858701348876704875567039179402882842163478536890163207291924692681023806411078633857854681169167922886246461864288184422096181080155950785846890348042854506542825731420447212698443998095189402472173883566062515173404490319397016746601091398858626344233436006128407314681802523226455214285342789619462756686952635367539054908571766599041227578881774993129386700575301296978455883923257847718431999925498092458389846118831121819553928103504813725703536458824084034355061336879478998361479197961697674747143704495007384787739358980183153244871404133902565886540767300075628453940594169722188213733542538341657816157325404541837178162555310676702320540122725540487790000738455150402664349874604393796053724544038749130328261511955490736880846639225136829531684164947261104250131797973936258470492980237885536381293753299979438505880761575509889851106636409047635439691737031241215177460279675526849628617410783658782680609595147843886355190455154753142455733481660561994285568736269083875434498155215795388392014770001898570118910523022886325960956045549553720078365477393759830187809045722239147593134674517838022919562544324335967720312593818964090673727069207669341653472920425745567273645236957042424717049277959650075836185043481447812243380622696094676582937200028530042526363516639707382815840735703913650235595463645264738721275524504589752252573741255917995549289311729078243668247859753917922144120130584451470420879555573706983458186630026960400350599321970057162936886602511300212991817695313560669550049686370193075698345805947997427405319809031196951946229991853024262728301993792724294982800386766922584169958778733441470306889615504807690668496469619413670716905887856263944036646575702132809942107452959824705999521562368393473625635572939001089760446765932480251159082689257472861951124373047918083849688669247658395631177624275027643959717476683582703113215137324712297518032518619894004127114591991392253168665860479259851991824694410719419929043926549582695491385225124063271438420371584114626720875244052632602654337545372137700383993803655589301483366294163777271372647356355960189056899600473834594505118263084490189140905371394438610958485081165847216362639848996571128589624869394189556195885580999557280821641765891669672904595639507536317268299723570915143198578003487789903306511443225223739874104624965218773040688528329217060741909703800045135904363036928607061311668800607225714634427591069225315774200019238954305692254786884480630167444425233459895876380975671976826090629179934814488550861224649164252717872128090739787770181533956956647654456756918305327076361042605162446718069441007330443850355259814655797813777123263819356401611078071793248368618931915008886001794871895205016566418226373878796309303530446787260009862999883771766185612700419032985042646712758174096445330334202121072405693715844646748907908552278184044572469854697793737591727229322283978602967225827469985097261948455281815682409312209002043522513323693282005809808357559160509264637757999476369582356819545119128665833612052867942265840626483756539301129620046711158514014829770058440971930781064036858921672009802262479516794488729210749499053688695606642355664322597684459318909481991081263182424662695409151196754279569465118526901823862991131252705493769507954903899846026993626243174382026100400427204443950528693990781428677932594928779766006394451530832906380362016929222323032374913011955325116603508245496852422297248572467611255201477209145720018379489214655497396917124963950480255363407819384582916989900294966515894125558019518273468014103662315808205015643290345872713012596125972074153776854121926768090361538615245832918170330673315559576407886354415926116542648384004554631045924173928836429436410026056576346882169788977279889002924298806338646002118724081547533338919518533635728115065030173291848447997578507425085647995272186579157829985264946664562679194552598629052641623990440066336030945303489821571926154041254876867735464177959637208642488220809630863837700498386955123775529008667428935331844621822755453130066375726936072062061405854419671580696909316130429272931470841500980702527964728260763499780293717753714508176864364815386557775033820260190720028866041156032259745093797758788562336202168746659472180701458092337969027839655844806192870330992298492438432445650069852810033037776735698932235432930716383081209386750529853098601510323986532105741375116916055543468757080912297920476139349132675421131399913768081013453156362899368627932402497486930161484884909132827143034007919659249528664207394591892285520272841540403974954720448626529430770965801581093104192490630319259757442363929399661983145235001589880678271723208630838343354254150443991429135798585023272521426373567448044060207237464731244688422015092347857026082832235798208117551241046814944650333514286567459503236068919245737617199925429994785108663625608202187442084835506995884553790854429452421830078203676288382528596846467925001419328307208823733549070884818089383412353829036253958848714039269017250012114405384080329784902584987369659464241667457652433261675947469493244442983409642509218914974983454553036370318003504681806957816161268755790752352244235867529302291189183760643508576386747014839085193487284987252742202137505823937766631080280983385411399117053730384140073085865978017080048584956676575682590221004084703218462161483416782046135856463494304155539302182651023155681750474543342033321793882581080134811239373428900845032046969585518503141369509805939471003667659058890616933907976421442429470422888855140163746232514506680394705990302556566286098878638279971033890901157227908014554887368434264157598914068939716178656571374061797694466836387605496809043365985453367859609830886905768962509258380123916387857455373701672849996925038594357329315564955814159411257879778173044738316673255131988300814863130479104837974774432133375319853893959350957237907561834790451764258009216236744864594607748699759136561321884252621913115011413520487175139496948597731167054425062229735357352686519987246538955747260849325827388771341427239368567708661237059913535180722954985757075546320452220149458583289171228095609083842586457979833177291304513796189537230025456540957695223231469022789933433423336334768587444618374384272765093442340368119282901288369936835261429071997831223482693265787878005301296998475847061448715140461769485250804742558774205524114758724511528219389062356264171290174591582996971808892740529249821277426492729941927379206293104481955623968508942699842641704167185733278467808125114462138965509850452984864295171780383587615843331902376127033299156992653470667471031583312942982739474538155328335700953979603275321083513257216930586865423519280426907600610228254463222658239457076776265411125583376171945485264488185819930000513076030848915118964804320490035770157643615862403777270543372177948522862017455840883508673783171511929807096249114931355152083791789505185715274829597720154935811122298340822147126930935621187620362245753331988462777688060827239934376434033089193643555096446329080513875003393505039607345813237441914800739196331459632530502293400167766447435998431062903229505217075438814143088587952746146444520450450500037182635915864392127466182776711869378653185218786189594788693421039690134208322665187829913490123954684911269624786720635185238249767342352896542259074094390172421366921261447125499536904812335640232961957435731416434727824740029449458823592140418950694735741546627975547526067810100196684206643277481814385098034358935333059732582061800937267942441841207802402203944865258485735212500423474559667205287057008686090547696674320366990724779165458447365704837336762349894717258747263614924362594817098858975778387411179538857992681822611007618319199756523960225091379839844911495275238123484816528024721743157559419722670424422842397955128747834966565765064390216061699488855767665583822186157674395377752600101672610608153495366185477822405465859562967430814736268190245770948235883339984583281315411221211737238330269352916308558099826666798053508508514647815907234396507112623151021315140005160151089170522640871550400728864994007568088691792347868285917627205050285680696212583490460706271544542489790316784430744242731102891198699390664318061418497919979889631903770780004837621545987587533330889080969832716691380469812137436096993426095030405774172931630599697513713444853906175015277012527858048153840146276793464168797973439028705860567943717976902938797650663208057043788708760442296140891101350580435734913213988557642420694827777480910649929825718688893047339780481165392780431326800231951273642226109324601210694497260672077203279897546437648419897568445319878299326005194778085722022340013834590060150716122239906973250801105064185757001005119678470498766669108478791502346250286468925614262942437819766818071791078508923035502078456816352904017993263776253836754374762675218770906856466188411520951266604212114200207131731990543303558068367580981474267875323072190521445585213919564900104995464966004377415871353314257793923330345380298283662134710064708500003271013068856473842171839976639549473280952667111400059064591937478611512213377764334397177066840393205690305555166689253701254543961289729631369646668515473628634446461313073720860352682088672500484404946374711326795639600244424421766389392867568453316873051992101682010840739471010711984916819041416952229136412927928726086884621170252274697202884458680531340370096694271442766938350293503699111403693060248261984485734448271549612627200922603806084807565487615508058471083422824061616234600170612809798439533328263999043726624560123622765275080417198127680714402811346030225537102240779688049997561356273187264488818709030414325555601491363366283315442112534659838873014290837983700270219023250706028056991529004268051863791810723538273234390744634872530483504073410370450330760816175287503988630280317552211934580076098194306752038730937712735665424826508506728168452268737914901668116567191647434584298469519441705758057998602065131806771219711051351938918222700168609076959597310488158111784678788084002667481271935818567728353997658560636202943250033430698967528171768912157254649740587362585232901211529316749640777079184069796581206492994088445631526381610786189069538441862783581212799690475511747894333271557282694102199164526160177432696935215910405677822815318905755101668686388298103490130292821583762487231430651021231137169571958345822648736481132004457287666738930726055839649661402791786338893164049569758796797348231657984468465689862824987596162650471044190753376483055459683320898563016865658184245595634543368345087398097138112402649382822348062663170967511608121662694197498887887502987508927540043526882082014470990586001696660028344725042274305534899359447728142065277995242433836812439659594895002467307911652165866460278003778591727342493494383657467885818277214708550569178142438564358398248367587350902461641831706098712327132194776867705665093073924193601453365314316196364425823635398840087244094054344794309247969779855613750085384378778464846560629364103427212107886598546462142461732419611298570131264392652966432837798750724096197571050796218603295489203419655735522028834371126739931669630360530054176839261049619372136891007690072733681075877234920211099298388478920466892771282269238294789546753913091114325807483244138634134707799416070687849846253376291894267280934319028975085235121562884222956976939522479201160808967749217063271616654231125426134303665856201818513360616679781088392820033680659588393624941033472593344441931849478766932927030348616329420718695168829457579516040479233430371472370405602933726998668936225923963344330028531508295913472003545164556261044898267629365542567577403744277455616124255324717950375689423758170951343623276925338782737065327359911444601911858602882861312279528089073799886289541229411208359773641238522795799007173579862698841484513423935265654235206036961895128697651024238716440668397877305963664054092208798268724508407146094982474162037540721116217448610847186966409958699739345401014304490749278358942381987994070026074947919239242465571574638151050667054501140775866347348362058335117484690898529200120904129225400846168391459465298788406092132204070155574964827283744029482636001948990891554052999849700905022804023750629308314843794508378875888479608093672727251066217949948024512881685323215398569334800340363152053194078793367783145204745354498109451904022140501226327410139403153696827973875612347555003034692975027608103720249851398940582863536964623581432114808845097611174880760497135362066534760625277170341995211356089604587127374562121676536796665511985522856000026827223910730892100304243160788315793703066268520714983270773002034253580816274680991356982822617009212106786724334429222324658043057096275656038072084014192045368993297540456224978371173406737800901001872215060636268106251581940432024824636541712659873553036210979663423754741262680326635130714023130782620150514391298461942662361569562871107770768857975683942582257059431466700401350550891410973636729373286703979670466822664858347257699434174715958055264291870242915763091858877301287328523222084170926908684743374970282176772295451691999618659216610543525722970502509213027035056206121456347659318531132821244372702647854790803603991787780200880133360903795420628413326023464149872303962890151827028969060330975719362253430972737512291608275857014944235699920084132829004859771111382439796643272135658403697549877777724773663505343604904649035775694537623411615154539666497133217953662676616436924836111551889196174384704648980323561264513432832883073724549132201453616923197401702489261488596007423123891904421999039450995083649953764867882554667414093578009575461073650672717056854690869298783556570760380545469195201460086764570261875988454837376142678839019421446235940612243116383087204505640710592957428253578332535191998877609233674584269932407057493712851584268231765087620495441497030476454442667173935404356711082683899687802251245681157069686399945112096944721661482675059665265598528768813421941463927467191020039219722490515419914221530920558743783835605918422361143898165384827710448223208092908777166503805882806923864984521878029045178620297606795443866773917836835055742332767424479542051444210810547448672586511915300209188947209901200910473058182553077432002130687235126676130094432614468408934524149632301296781923901595778709724380131044832004907273074226930272260511745260692558505757080854876137847512598566961688590085744602424196661585335651328088589148799090517118648190428074664014623110300223152158764786722332968602214866755832899853296515126887593800350962032977902113036312821734220461412482017860713432567768082586234007726605341457450585616073386697078789728807096023812606398330379145952389196495182603395605595490069054854778535476019833565716049246487808901550022733222398479810839794845464858399996726850014849085460757471166563983566341841850019567209583170919032253775212920609389121823720768469921018586651493307290939928613255937242841605143131105815915587489613446759949663108620597617132957514064226051631054083108874168609337545880832056247864355623799877175723207901993908170089560708165154023353242880855653573673310430390428955951038313317309760641038151968105206459638470900598879466130034765844588604214445563376624472509432442539130890257282398858346109609156880887246219802622893530903571175333827575782189962351418716171418015892653953000535112939428594416258314261543836961596461749882107992097386843319212762811323789421561082026037612886814106604718870771288457691311603538492974283300168963943329867793448584281512584178068445012961326371112308170693086903507535615286163766236696104947132964406309325809079137603726704134178191427592200879362547120121399849749816675134683439906891329193137359484219571659062504415768068418187495664866502996599000102953036410943824740613104202636431980294227473512972479661830219657823901258221838675784131639774268652375801565305751996240236753835602414408472575919040910144488629637908988896509627148726971616919354775896896559660554166675615289713612760338593959224386300367892286578319514459533647803032849896345380596021847431451088773653497517666675404243262176089603454250234525999522822114675129109633535158291836376328037056289672306628758840369442806706878605508280955428389378297159723817521326626729605499069170307446729962688983475073117763955356205420175099267413527358248500332996700150912599704392901932851548171402062877965995289325341371742823741429889976115298867626357894030663317805265702063206820874024528915254224168511102722131218834734652393153776406094745604115425152827466769324884375691863875380517078245722527729359305803415358951226925757873951251625362024469029016900905445233570798367728819890966836577794894283580208036353943279440411076052009781563271949388961657917626847536376750480594603271683366001563219008365826150313125124168701889374390994594294141554314184808799649629976908388919867272477636892234789704360853363958916831506192883726290514887127694183589986551589897907437474094878197568175355846553979480676593787311004005409268629145339685208628791120256539725535174113475992768741350334921577164365068913011681282276967933580456039306405331740761774389911561019793428013677667935840060785277313286015990251131110678169381826710237026588369585872295602243521343995290911010735053033302986721925356975250113205619072111272576434541246713490217129443469832637133766884610177880413996096020930080011632126283658856878635109038650570145633827385857791792496520030620880740944791128154509355507982536210728477387121509575520596971264712949625172627034089923242038656696063095083026796199766426810926560421257118201727713764942068258449832314903001273597565782361649657198304326599124510722472903278769645640884578452309001487065994518168821952146884817884974773953621825888088922470907218368155348487277310835353193099352602563174962525515157270563700407813863500295673883382356328478518847693831699491408376064899902792040890856651468598906602073780860610898398530413476351175437194417830566173875525979545746364794872542057277554709949007169719575311519898945859602859432412640271356146712933042657183688764502847994125026188788346224505885495213532192754468750859302919781420469791050603142205749756538566162523905804286524014608612708814624179611979517542347639000903303861970910978886690347153527047803484302714667272087993513687301941194187223697994222831180503825582709650567985383351223091657318776194004999840559073349318127541367807246674814248779706168440188937448185012502657658097229782078112235214808010038910347081308969323381092299687511534625730832211012425798420446892254312280406647721542703102862254211840322680182444709452613645090517889856887513380842748519200384401292540937881281503731331280469711161668178096366809417658971335047793025969242222783781370418479810541913674968321862587483510254721061986548378610990845723897025326958728108430900505153774890826920919809422312340871282837093827688616655172557808299821877067843477843468837473496601426697913606159288691819526502292350215232064776064237702732705243153821751050547661269666741869137242260489669522429220467091966641621017231922852830787630753171837786813582938368742940896226585953221153434541925379011230266852214883149507853792009309303654628128252556853701728473697295997400252397612614732933392444079256138203466237471717482193943084828422511731768882915287366371520560378114025836108446419270570339936618564102392300372157408084543772724361382130743307979013047801192647228054279141127996709732004515856860283110122818398092134961636333369985519125087123733482715485896200334301331587433780858338905456684998537245137668110284075519579521787205360736638291458612205375289658402623802064012512345030674467560842413547766358224421259066157779710796877471307497488374174615457548644593240204343464198288737894961022859954933338135188530408102505228684866291978621321705524974427664799927673370489203452033216830499532150322803970516935024312695958263925343779328222854155665919541665150257811293362628874685778672542871449360526704753357113173484472772466502357525178515743592996438104985293087077428725033575802040357945646631490181101408688390328076729359054312718599054228093848425237100556995161907785119783949379557900280073623249461606107141714285322989255698733601509391054721812664377576560878083886394903165927971233221617839257355683487428143925900278668138952828417631295999247051208875972616739983309058556305373082512711233395010737314212720347553064208086468680836716865643301400093908962029582300831476239395749511845897265934658042525432908853348927344186358071871305738783623670153605380944008568315034546605858561995712243117993326517406251994669558241301291539280283024933488006191334961151235844853392005555646935286546056295460082105377673362165054313854957575121393680233031302521387071708999358579655304973214709042495510970652340418877872106070274090411147652231533258635998969161606630362687331129565444913273739881283554501307228792718847616003056909959678996480857661332073399928816609146911555556227409768172609070693558047876351196878273680695190896374828808070443348091404324291217200513529408559907304550396228399761057980361950250008767278347223375474310199020600673309228309610009539834187493058211368450146884009469787206902529601622849916394356107436685804888945067625976964594871621429942657953999910898056579466824296988975385206070698352386515430708193921009366931702063395485499244931640774884794603761697933783914100712991229962288179547486712963620216226122560484096037322564435333040347952685284638257015730183171777087558467414126886624264507674467389403713605653553126553710352228273334789080545406438075285333528350391368654401355193826383894646636393664082396738850010166355653070897801185209508740861112597036897174568790343141188919107804933499563931363196110957238252994348676032899989855466830906257348716610665138927406536338922872450984645974100829863103147867040713873308002019765994728961866653105695927827775739508993712445302931080536198827340277610860174394536187026317315527513402215360250702517940602621789067994661282926114399630487487212277289393691142201899031338682108952678495010972477370017822520032175978882217212349720153044859034097661326362501875681483547541371654208662837392769981741214676089311843186133161006619431370719064359755082722422095368224827426031167726549588389877175999028005781467418429667411923909057239515275003549663318041266022754605709216274384553945917331267750522746248324159204339153394926795396131318142503851781783247289044794557549882812375346896038300936302133065511948722695179978630765986023226696754319445734305717305727596337668699281332401361284113147899844805888619601167429727429840947278464186281634038634536208807324566248309397523039919996297147732892755786600911508378631826057736404214966231094650206566776119012856633660549137240591902576398152613023843292977308262017896546410381847940708700308878516868650810794233392614342642560848334195844575146312937628267259262843722754057535954001578324724588292824218664692759033391507360438641325547449289890943646619346586651383126870844673665765525308254973391321630284407305236485139346087569767811887724010832691884911609775079900762560569863202748571809318272849604193573062799273722247052924884804781037291161603586570625215678822901527374973702805247545297010287564211733232999640923955122109656880821392628752068494797731178219783680741788709350370513721252825933897247530160252557740061170448588258676842069312208105129325765273477500732856731951023783956051641371787371730214418606203351894960901159002542871802760248441967007131641129270319891191773125334064580378372267729503279157774528476461993211839845177183438395806382559696350483593801987588788221663740870541705344620805562217117526509312150146044904666761983873274194905552608333803809637941506013429762847810052679838991204757628730943254237866337351298877009211643896813815457518782403919214608642608125685590038048975655613190336999957340700866665789341747403155281106558386523225384385836948946340998222907477157653689821942915473444836623799020350873081657553682690871629468970644291060746101748770075785030570724494885115471370275344162474348199939829219013414212290694093675271879928383090960215016802601863827184549439907643789639666320704796760010473209256288363988858658521840898865594445292450842258520099688055690108365325489420088328964339376824267111579674208163792736885020095029495896479671412867025286966823013873473538982773734684687167625535029964588240494638407835106210906735540517416103395361263926721912075345968286006510815793220174069244864646842614878662904846446326978346258720325486557064062443762641316380093077276828351543330414352767375069473993204258671550269080600353718849655293924455168910044554296270393276472170353228130310160915115408535448433288601911343573961532112649402853952196631239095429970454057063650229959091611361529892645631949303595906908896653995562577515739634146489026821735353963937301732743486240560589352935467678617519179858171902183405114874738387038895777060132434828867430037491338382892947745745354299710647423631187069652361148031155512477412732370467085974418015883897130510961402799903499077578370880405077702440018986298669891885397458114053187066850880271536433512293562381833751973363622193359482426737876602610645378696003533439819186586703650620616749398532294367077234182634915659991397037423066185012052418499600199858556627986423327644840196402252339862034991158010785988368395969336319311595956335015892980468639375464500211419289658380467470500918612612908899251513559042823395942294010404565917473543060700896630548090934326867520097300330367185369280217497107330371197293193535208407095372900403834565736886012853160154850833412697988467585608296721593896170414097351262370400801038103854911616726165492480860239822753167534444303465379819503403533684124542429874915021216215062201834780309669030386897253418872868635273441689193165272607917433237590525291471697542656555390765148579371132919818092599047244267489681383444564301663602583853139401630835030512291941103118682376484961066865849751452957713296694940350029942192336185790328817334362556352417639673220786812567310295454981019548420068999775310214031227328666434985076147715431890597747396483332335643094263124483134873468629162102324202326882055180477330794238529463717890372109732794153996296841373415484428599583372341605004659256770371731560120505662791042670444449419721886729346296723322591448559049470673331269468311857096816743690091489711019303239356821451408912651326401389399530570832531931969343585359307972576049330611857047094479923145046677993035085388354205857293081097912440214733176280784710721590522146744792186581724459258244974327303408026058702046022734424507537052475629635915546962359504928571227351596614164547591101457912656629880778392669942582205084491827005449463877564190345144829557824249566344725809981241152819622832694093514201868952292508579363973654829304521339290515709121320368419117095702143987497893375605016119003386098727677467180817304174798155450774801279270970734743385073489109792673981764814757550716210676564423752414104080339548049589866843627408664722263162715252208431823492247487749049846920016508173692933274443047481081917999466690844557128778703506495556767642918182557575627131884833431626984946111408228338770945809210178543192146524229127824027188354328305376523648214015502306178140045142665734940902995612277159567529483623006274272128055001087331600853300008671790897685315340297969637849990560303732431046227785519684858644152123647114966539928990631818577468302639084518415601981393775383435335334962629845284975451588288664893480873514211640643947279558890188391734420103827824248157956014283829056807708588963783105348371561189403112752228958926649722037573043815212106478187739836983213907921329664577185672740692954755431876053326758560424840103310825654180522146385284117390505999168626146878832816705765140035277249993056733789250357722137362094791041224619030976138753800146397503549471679765087796464361411234126889741422067509085215332143716634640915181301334362158334819824799563300535655257205888195463165088895028171680931840833192418829707500095167092592476961466215949811900403436199989658703228340973170791619191854689533368228655025033840566790975242056947414748222749853786801857277243675102842411958336734174446889756391143766202482798066717074127993850064890719222611095589559584218661936597394794923678013167559332055224652670328561057311147184171753181233900614743653875923298431241305304102546234972644962409530939833571233690320539524469419964251862932757795173876285148402633091542284809335824903298891334002046370679482870753302041541502153784965903005975672647259115933822543202596185231821654296710507828940424917842452742796664500525688334683429917530400624122405168269903653871637720266567584957165395520010222909409142369806209001877713746284712855719462691781990218810538627192347164945960013222786454227153305875992984894250999435030152539539187314549564700105515755264160766497985173232945967761557335325236561348045687947214979577772110313711303728296106529661159833534428171420134769341981087517592315416813741105339821762677341239495555713509373321867566935000405587368340429136095040845737803727340454794194985854962289695740353481711375144559939195933033633058376964474079677646084599565146570828203576963824149423052534449924535020419958970854670131391325908491878206725688695330371546964216388174383702474983653950034896316378493022152047967246739448157829027059849876926600083156693223874558815714876535786262346009010388928299885868915731642647386036494577864098716539848686667852700109884358039690635108836256010029574718385500748744195095025353110821890671422711019222740289156879673794223164268872813578842133928224282380804149567515815055635859114793519814870804208445299710172625317204967988886660132175148612394119606452411878925183778883593634871573677832933443958227893486622169482056067884922766322393359619125423188612553320511282809255766922571308883650708813456078450662537467565327482306421294039042031371036874678951812765403232344880378238173785788309533767554913968984486341025832439158878915062020585951599968790992570023972489408694948748871790472178023204163748243191049715922684245571742689791848435687980523107254956122797289937795919824087043478474315233490713879285067353976129248023105232660466776676485948400588787420537434426748763734712667977305418347252011590312759536431010952483957099237958597581622893008478442672932942444589581256221484326685359024874828458659482643269385314210041392329037002254074700993282212937170250934066485475042242290992077386400782286529287180922492483965045272064538285614742460631260304455353766569795505379530877303298474268465775560882299289966741762032311924840598958872651482690227861736804766363674261254062607356903023057564602951376509815122319012661878250262437038935392123077810183108066845436751145067033899223039849009577938248722033448149130410608732050945632585190182179561303324370709146879440970140727758751163316378434670028239380811360322506538773936093798318358287524609502164765570373457397410443161444126833285192019970540028046155293621698599243600834346923458510567389127148612045259988995497770693280123085328334749672806094958856992214275028784271433563983395255466164938966795511959767131915197970976447034154219993542313756852103924869459595925263774561835187471049397032398583509721629583333257638332197959489426220591950683438287377869495160946645876644756958152228279850657865272484897057623792476020226074626603022910331983252674303633798141683257862118788159587008165973682051620800225079892181011534616341271881478482342619521824317280821678121563434313053341679876876767320052899095937345637351722799244757673696100353361668500003014569542023255711264492857123388621093584502611003434510775385249155049353390352677405755355669313713747490895324003944418826584102709925667892730881118689563831771783375642144087584130200587627424732193463921206569702018610258839541971460549953550939881156245800164533518509375619431942938540062764654419374471437043634825815647116907771280480482139827190143729369841216051295322178952857875825906196560962145056322010092140714082270033326191862985863408870919799240939499993671478119206547171089795829697538987162943312139118470061225870053793822059817130964135193664070093646170292614697597543634209330127096498287950792174035139317712070304628460372856159933319069372109196248002328493734646242601302165524016429743475063395584153493797649501827073882027162244175214393112137507657832697128566069143482770187082853870034278225631390732937304532073433180436763102658904277927991450713448613868124107589788364083668200356659237479540530988724273211713225595354619545608478290584618944004856869456286199063870566075247984594296679022206299350648302471733537727514203165677582142754941247931700900811151497441237151311235145373036763043549677109560731652977232161094935076977641941887526724976532005008925974000510521531104390160836376082923066132920365415675580757041022931658655863148954953402961193194853148276785380593572270288882796275448568142941781914853547454557541971487896604481490316967063647682523416442406567390983054374371462091060025594391907688824525157990644046364623841810843615113463606138923867606646294030738141222807298883986715517338197097836137900527865121143437446597456261020804803798459305492231765996640409211915726472500723322717621001812631860322027567235962401916412213776314140535601344497793352174260247569964638502185860042382284635445571188090756845176501808040837015801606720614255366101937058040599639835762936533766790873341386319176431029130239318014672981632156051456795219967754367206918879156621757481758983309384055250364785886602004055380572675378145554796252770850095738557442412853283320593640042839790340263227889696768445561987908667434305170747757143169054091685815355600615022707214508459739728431020424562985739353928986884509271093497572251519550816703948454746421819121205402681624300755223274225223178586657949586481815343655931944400017791890858115443441331472766074791526192524272702917489272252452937754572790155138689166462354500902748173078326615372251154861903892487475234738164689573280834887883716706174157613765554338083241020634226463387601960937656839342803817543567185098578286182016006884897191145079777965805577904958271844793564906359740792204856865935900715558746707116286502986214875972461468117568434334307412827647722339320373913511820212397178523293916976323642629133667194296564614631896153240884749779920520438320591707924250768911979994251723277124150353257313506485785342814399034513458155400288872512861937818649341404098760190951312928268477339434548161850147247362415906825268407343462857137447145806789825622194738274765525781911685809628546008890046319628488536463582232372841046936271320985149292444360848362402919810600699834062835773237961563745513243925119247618924689976477139962545019236493434274827553368934609023536851358473423101868576342842948314545085782042947519712681294879297984372144362061764145489557257222644384351656365352129401087960506077451373579062285767288981369968778377065822267048238629053973325456818700015704177587222638374388483314335879256528208629426533479762702951118921423691168716130111113119260988287349826912930610674670984599031524525606818695204760972670944793326410315267129351904652217968223073994055051674480879751720878172051867921561238611851670712193689057400112549800505130750573929473192189515603172648773444310140610277898674581287058655710457295393410940818294114131311336487107049313786005160669582676792328540708196099834331327025241465589713723694418576124347948912526328052258826683710971672397316737495987848268335873821890603847921360766268530496767834022002784257918460678647962589828399333705909218738119848230832081167468801100442989610059784475593542161290847516709159005808590285989090265813274965315241526619252934310265803544880982976877348077091314347975732040586792236631294086403628509746768355168515861645855864336955518509774604367804016305193225492464512091702982264925463339565295610057576428310672378649332692820954622952075425566889285988373159747644008564196174460469912163075477240579765954162276401407509952978906346250467089373934979944419754714959951407849055030834045163416049599685631148057820283120484093406017542458616264527989689678232062922636098701117381078876517179439471740151777817396036538939481956855810655514860854388886625892386093352047725577619276685186349304604256330442566425267569367097705671085157962890458896494249767262108096336522937652646967326693226190576117259799555982071656463115362522800314020757261041679039217040177940425580371312306790537811149266218108509365822566707571888370793603581022560556121619693710210660091931649510268824474031971452503453167886637800841259733003294120853023192318561690800339745071201826870957744501293202105612965436194423611739296216735690935355126232642153305037098997002442000452628566508762799787157783895508821528990411552316847015224898711819056281757385310306829218892816715453149637605322135095936526811520539175755954645024834804792484047555642716120158611097003964700576770399259901503954170326641213946407514709263848695484025522122871683818708150793720247937514400763836122305087121842053647207867868853199735525944866511092541436773196503792568357161592690942217247366959783818137114195496812844103233653409472307018498498929272061743827802329328194388583063687026382655064569425389179766243057096365705640119902290961349534251934857320770152734079877995217357554231501658539585822505585843665466347703140773802664844707124310890903719611638409903058129003537984829445402418859621815727106615058983687030592306331831630130112943176265077743524464921778679798434344690386794078427186950162979055981476189436278590924969089145414727611686280231087230647338368502311603978622061480417804485423303547942229603181753127553064409570407792845116706248024339787077881056068203345902475840017008271282543486732210818328384662501122016354121389912240436256737507755903663492394498692501817921639539738325202339981116955663028047142836972846979376048753844082876690666734313015475356078820703964606741445767391739482842046771107072881093281477605048816513622810432066946048218384729549534723732526071865387471946295122582937077059589707099233836900533148933707370695435283234678631748083073639475251448186516707296972950299351461888507666393011885395893070378394143563273439360964315941284519933749161257521525608870970331949631663676789571874607773282553374975078961179469086711840560556160359213167479549839225342415773319199541330064363235330701862993320524681671391344235477766362190942951978733086770869380058400690691776678504734385229474340014143033961976782652589807034889090609968883557854058423372296503619190256507536661673207698883077550386611878153506257961481790306373656596841172994975547540421439329552583588553007920549544145904867447757621341269571836108948068845735271406752715951399966721492735874794424721162631703563416386490972021260587905286225007784307784027247389022731883441328915949804215077711334822075397358066105104601266584017681848524679466539320667976407660397447331923582785943396836594309828724796951643551981072609308709701154780280786685798736757123077776504796581491187330510253962468045937897324394851748546101423480175035954815889820523082203429718007040850910281579252263334587222753655910307182601858662912487727441001458728600342326124224712797673204425307126284404488654148414527565762920468033247610395128516585316618210544232362288650329698588031808381617229413858661226153003234546773348289173247504905253942669946152772515335173254577106625115790834226792999033525474193160007800810946489156261062748261629456389680466847509116091865835332548642264497087389968132458660963422304427411035175410583202737646913494754117417962942931873880115524977443060014166554435865479872584895979844642907264273145393732170613771234137364762391342307873636225547454333434909150908345324706405875730743682518772730927900214788099039689661375953810691071515458203136737723464956012055994305707587376291774636887573793652466644331204997722327888824861767412000010624843249342191929794483726522222652405313254723556290334510155603738005895436232885556133060673232162568354443247237922933593556334060992986128354220587989247074025738900181793661154281720543170542344763314358715612848037927121186392582764789464821505451646802947438682697269453312336849550016779689118168369025932108753715167706789189513384649410167571091858986406305250945348929107328537590149625283017828839521201025564523965868800423104276135223668486809389272134340924389949168713926737190603903619747334059378176252513384418888355737925880478908058525534154135150047995317393630275073462439839513120905312166516072989552003089162570450601331282656422112017247952726424674393460966804016794530349261676300663471250903128301393775622492690892041678635687305218031588865788649456410348556536107790489651247194263385701883777447347241766801989802384885687233237332322984284506618127109060432055234510376750975550421857158385630875457507016379529522301586236710983259088385464159168884945756497449214547347731557129244503063234715184813255882766452070729124365084599758365740571912408074975008406768937089334220590602034520687665459752907936347141098532958780802211350278995385730597241072107828992898273194480801796910765712032405460828010925665640817953670932231680792453759762140823313009383835516340701422681173591801450425783962526985291206550740940510749314786720132021447391011709959819879404900801472943478089837036243215318421721012187958847168625023653611090317115604388179038909842727245015592557221129759403279099612432627147197981948139574254082947505577599522755365563721297485656357979627387584012025238190997254433723116308447699432123010654449553677079439889272459848523384994116197107509989283244205671015253041349561014979168630943162480221229180139909958688994518118676348642448395205598297323870166389785456958945444225702616729673697148400499520628271460947287067294784001674990569921608064282068156547454589217230850764751287822564642971949454423024069408709242943575561757115928613716207334183038951987969631066102175205193324016752204901710953966883636168386981011393610915320746692746172546152981983219274511456169804839167042710884309914592221956238536607457049805131559790246130499824412160577711255472665130957652349586791800518654333092471605018557978893878502068931116931949273403188434030451217710405906127755376704330359955997034726265847686178052218788997227364698706210917069689987992982810881328172926074408846189587688446427512595280038788278416582933737548961938171259405601074668143889956906654396158288877828460610206887465790518070817483142252242735696978182592996328967109356490791326011136647113111372166850343408992224720935440776505567997215099422431671875170536365883963591630838380047688473393276636367846967083621711168355540669524741381800264218612704931047475534366565312031780362342361299859347415935100646677626229821412658899680168068336738462223078663836026623417743356404837984187167097883510493951385723897370874828099270589638801671266894377191177344500848276260644388092657728227517635807831585682734751335250159922911365550909305100740186728515688170094193907485083745707323295471992811207521797673619677207840670072417921670813655881930928338252213208027863767662370220128731430444894101047140635855115321526185296326149304575276571958094901220743219938274005741777761074583766066642866873823757885873678328829743701613654746799233828953815108564918023952839298320961323584473962310016740636285453805399874809457990514401019547404518790378001521432660149124280870202225377420480147900530005461744465339786091473939781590916280531223221683641480553363259055027573043373785184130053869651876510163854602137946402560088438931785979935229324243316748011185209154719611185950197423814210330875114756413067816139199481530107216334546824570905501200876612926476719668363920447848623511868527088973094239042447215418242259011007127048597374557290318479469414095493157199524282595093641713424368808977991803974224117617619007652177275020355826993871933676719235025437113985047631247625825244727709094402190489559236026394168044710425671940332796428241018860684328328090692283445123860970555235720329265535452519216447918936114545882394410348874366294958538556635152896340099396694380720084890511161331903569246298911073502377533669451540002422130123409671318826854012772948896668333420987260898294203060496148971197029064137828083705846617236065862595972081957557362808365461527906210493241728597182142578363443144338127528774563178839190290569853607785552134923430705886356218564506608904432742656779526416931092400854947056954117275562783613844892634514662670206621845497595095394554235035719651628810615183756573548263401252557604585329379096960183343456177969977444740369588370573852770792681517613900484589982552672679091501023235188812895881190245399269459867717532745504433561718403209287361550783420958035559072664369568315272915816190700893749556228764684215211347256149414175075639610173474415882440532183230661919462421290058990511486595240225189796334000124994549098945045890903930947054185026629347177809459418525148251951828621231556255548527182935837947511168920576717291765918327534181314888349895404661594595240521021798937472738334388425117061806546456149119576566945625707165547506351016094142317002542887092906557054993159639601387790524207351566486941382394221319987136025766503074399478939770544776468756934195051799497090574135083242253649196891535177902370819159375409877225884285947415395259843650564922069589670102184036444850976443532462681739420384162710275638922008287909936627249277996642405052354350092053906848918977408813743155398020503204595575307367644375228728929662971041697513775111225957823381241947170872087461924538622101669137471651204180907623812433279017273988862088867387247868817480013465907009405020773832486198020371199568974299208993842821078934721537932316419898777856877503871364494561933000367576892903248422903291175302359332871379125363515735959788184747782531136315286316259632118373477253781449739187989361114914783377195943277225768457603132525648834313194253812085018322258879766407838766295602240507156437195255330151604030149098262984726692572159875953872312240648266703555417955516884659930073823099551184969290524339478544782432659437998789985845396082182426145061875154614977365705771305345800019052074441009731857527724314453366445072070649240977817431418798886529888423781247267955643916248345546867715846449995470645091477491721362566145157140206110405452446814377856267501870632048528184351427891496705495686321577375594592508816104117433272096176887394810302322916870865565161288145172925136887797827460821495600617099180903819862901360903958024622006417409969195876485971686771804191218563627248914797553462762425533745604877236379425639982540120340222673019221819156811937874925221599117009488906601923123134901875276081235971812776888620800185406146036144830620546963942796065402590789652144370305423214655161696631196921910720723687165382336403194879374080990268682925953066606302065240428273648567735192299953879953756370513454670568243975634445077456202496628948055167902658870830207250915137127135324775598248081254038117674714224655034322895360540897018885731311003912296385396226765776540432429885321312597387534302496029076198801685657345232347777791237328129117790068227392259904694603073253692421982525734779738518851480219778137439401564763106362323920700516713160671561770438210146825414797349180367945750902024989457524333635567592336532271252553660375383481042026241512175041402404028292024536210332049572033416269484363828734754500451762155032511980200900783407805483191999934717100527623742147187170400232193580680310802237711057276005092657435064147678731186362938796880652004915354734061888942384467790830690769887569572815147115570262169752305025255439016100095586163935516997785351209507581125505706698466870928979333518730750890311174599512244553199150417948320238715942855347803238343991418204065923858910766463712724729224085272351085782043891818545360394586281393482666951134402499229598406966987768906293361995317780325001770299188408349646329623609836559460663027828866381798570118322630587054209057734382569069304511678242272817877432302623318989447475241701147989264015669895243018342737293408388900177596558491089760421997202763562157733540865997361297708916430038582309885698248433200835894917519599351060229852000519638479446650542645113877489814715127738779753717702455917107844690754074002745294805604840403356073588161791383920592828644426058702778188219880023656729010400594258584471173713381487210322455140417305194498733406121284169934430267294420439584120683294491255773947781186150534465707070484675786941398935924764069617732419718899536911436920612222917877467549254931644039403242064518321508344325489621037821653988580799790886307037927889691589567331272365531210120124354568269317026565555299004118253805940168593963512655849479923066206914572250541785919884384027399386271047411268713463429470270585669477016768222662874186950599667633132315766693137112891048129939828894811157188967328419407530496475719375508406011316218323042775193963751039916914602050383825458469450657830761329118510483443428309759254471686177891805839271406687631675044267894659665107732119576196840807117344080080532912969038662294945091840697284401193028177436843228848022298647391726665657933709217714744298830489688253749420110416627981614439548973100562988956342272326740146243951525734051828125530361685043539635594048331692582026358496048087992926397179765451746267265822997669330002703715029612179969587611442003678051654128961068654938881746040712152137964826150104221883932530618494117203044199487162148809609695531613488399731193343488136018594989236839440794917208134542209832148611976992174167597594110947299662122401608226950703730104304766902957538594244131550183582264251850473117466227961071865898641900803878394649965306142232345705532373793266941320594860795948781024853976112067655285707973526740146848243566445352098986848980137029816448737849666667467692782514615340129895357609422407468712230042827470736575607219973702369770782588443224964915672330999469348732395665464276348668781399868721274695385975306623716618134371860996334455490142517538223463957510735916980559459466904619550216982066528161107856072397260228087456649148513644704245200857466069970169409692382530745727568971215187840142795205797057784028436126016994912299873505521516280346945504114150558525179357900816181102467353827390693862823041739903869710303612500712000434687873830568049504598459142493887791710674048957461782001091268844874365792649501773288829321861932173081595499489484132648001680352929217461887952095694809980282845046912055445346257309522272731685764819829995653491398305224142147805681202703267241608677867735311341095523600341056256606227505329938101206500366555234937356618850716896440046452088649248226383343612905869368679932261844489354807798094109356024277388584410424191978466749020023205422430966403106907627659255915188329233437575898510633478999479794538330267383873866610997286234589509497968312331587804088264508201060395105605560251939539771252736503643061173409597043109926015909275095561696849139397085316000611529667025178293505288110289315886032986869748302709179504384854787715875188886826665621714492571888323638446926862332321715305167158039578798993235038398721268647413606675108789562300852736355984909979613935537052823141503701508443282401326105744304323021011938855986255294727459609503048096172953834865866558233524830058581465171272164272050742778527996560838043476498547273546837528765952735900983981010719819069421540874858400453862491481650030492400131204019787174662318578735814306449061454075677667038996884469896371526884583883293112721258502218225546005225118327618045658433369905654565023100977206955842623301062179628862847484583139876862712909611606116678062182036651731974920609946869267044194801951237571905770311995463248918601952155621825208951735401918032363988554959506126245092816797928472795696069069943813804869338575708785198121349980081928271608325835790454599010663012618507683281198075206507414294498729065476709335607624279773111546588565317949828709226205723523940068315112915653394040077416153393819806932283335127680679894928343256246456834364404782017684254482591743270500190894296851738583508776966210262330207481407963205101646361544990107357956501259880734877588420639968309205395619579862436241721290705040144096848979615983418762950412678645412876848615113809508668161631353761097049629621333578911406855972363727152081652998382507453217091943116331962575528870413059371541450312935522496931472785163614932558599672887976043568017261030282509255540732959385605306533861756032639556885875120317123557927775269073947074917854478195900741507063483565551923181911059660150786739722674538634094476553096457654355516469930238073796718906677256093251699118548071478962340267823325981291090254159073832456844728632958132867737320951660402518653264512660659032648064478773117201578795489494907976507021316772258187977976672747551636564374491708274490181920040930762170492333635578815981639687356607037191368736828951302916850718424906624251167397608444341507874026209469900394234472242112598045880159411760445882512526899487636319033105375662435018944641991585657321728102842260186628859228235234518425734101339605672809923738271118901852857397686731422096939075709983990473036771557566880943701655287752511824591515788986269024948528489540471254335217906495638298170104778401043510660515870797302732891939381693713872322879998331809157424331524627836011217920472544833929204169314969938687640844954084891608289294780887784055333288479944446069572657877353811347394864142427113954477637832776186363149357597944048452559386047752222348442274778517867478899498524929571122554517464778797888408159524622972927480326775108529274961449600265025223537626556609228184497534935729586638847767499144990887967887218909362766959038492253106185629107700063473255220737033131279485519243511355904261229151616152863995343854052846556960106790429246948055467495713676136282921170945201357740556388559587256081199716736199920384979974207890047367662432152685142932656641581664762563372777612792632668609253635995366072724374200558441868647753671727601990176580160389736613485041608067250712403239551099644314239935160228272478983624738741952937133612917339227731203680800275835724299293659904107071382796437287583640613567836618731307005410142841731599744274409709980273101234238913148918678580651805706440302685535559970711870275124542591388887919404007336034132054834117796810698504207383020219624133117719953676937523964620740261955065011738930560250154167216536719350924964705182306087811442140440576002065582765099632203284471807956313701475527774401760929269197183711833410495000292186270653456255166775673579787982489756429380096442333529746306374978497781712101211137118533429856691002701457408945941210092528110903797259036889466404925913621444509408183175342789101547863829892643609930887513285933324646543825666453824579373407788812214926116205806069522566417482675558062643095543215771275824066890285821839223885929932068822027034836733772570109008928312661065699728191215714808003877182777292222125177522312712664349146580965062099964875104514857722700477138508074262547621585617837535777072072909852882434872895057389273334448353195077493976146969234455582342980736845248136458371611373572557902646177334963357761627633561279971968174383233958228066266147693802867573968923210824951126985116188436862564776389153999383362065210461188698535069217841515205380811573885342930226316790473447035999785632501506349983102209160413588442271160918962813182791160511266375551348320578387905317154438560687627449551813908901718169397754068649931035363669446985025736918902109789902803369329420781396965077163284624842422737249093011531053737084456977051089624338844885288556307622276207236024372359930708837021515470229296995477209838681939148111208739119978513265677802782991359589144976153795512046947349580737039559063041076272059418418711226735795374976587059514088441158463006654422663304099032449549965528847847855748682264729526731006085843913556199091889495682024358198983006923245511293020920689971468470041531597009496906275190448171128121534786379848166318022224935036202937830300154647431945212120172213048767137753468452263292274802307104800888317132883606702373313927751235959001395538695545672934914192987933847655197973786643820617790092452024327706623543267192178697644609016113259552904746650829598222605226808261369674395567584889854367850518538980295295883069170291805181387338179556763648058952360914111803484016113410009858083721777486741923697921957689300645009009104969912114938901356363899559507522070213641807452962553393264840789059504149445019390448193442805829917998407111100117245457367822748195453224929281408821656259025728251618706067868175512898770540853328614624194571733836031991678072025372296866898305945720662524267837882947423470502737735055657986822792448488921271934385086525327229950290288902973248021089238023333828719588402732249426997392194862362475422445717785250823430870995891948924677315722160273346673156268355082849973063059255876563842327680850888175395412379484308878980145799613326089864450990787013600710444373741217917187415531912822841724078529868152896554292856420348461040738238807545966692698124600296807035615300003850162814614096810812941828122336168140066068279417552967743589371750824866560894844158104374280089233062633485929845996972585235074405749069528547573060890784043982960448998825381890710416925446367065119998453905967025924486730000738508234223957885965515209105712498770942863716522737384933051732348538990892227993762194561079662738878114977405187419209957394059364418596600911554227547223633005608368956524568984525121230190879724370295738698066416095403004316391128074404903940348561836262107336853162300633495361311491750341387273522122443571193501361617298466581750491733676750969478726768381596516831843038958272654430107726557923868429998230633496962859909007729855871472287774550474151007257412527558659479758669073238176090880844469664834035762963078887351616225718075247455126204768558758338053047976230108741594894231096102274448885527512114843706287083276663040781434475538066497281962806900767654105006032081843526528583621204004034281201635557653026353154685689730803412002181227390861315242200848755583834619035209000377162910570884289425482706164588840293551994023040472293613366602950702392885419866544487117530438918073343234017070169068661441122064807156799496521363380379198894231659073404037758924498845784420405643405133547744666569042025823616910523025672827235434667607578975229489467744837182768933821772994560938224657314076019632391156577665311401570296508024817017296193726535407364739120106199267184408548853490271022302534919797765188939569874558842879264343817842397375248396667954623396493831628745864868922573994101664487319328227947410229790813675724309907837038420636633029722573010637325808357013392519760004232821871977641171786910391176373933223414396394240329954944024439633678467440111177323407431124793880579321313251291487445826195230960137874683268785543696331848036944484349578270304388325160162283193888441264480885230852666291111662871887462519591724726544555702412292248266983261300986910849987120580931788975422308558080239532190475325399156589817894722170036241577357999923606407847225680956907143738817241790402411949496608806620329175425676285009816926661727733200233751779225604657460954560248192741358897719020303258498601035282517478142828778530887215658929832691871182120713518613277443013783605566560479456792233957106425639284720682734885227010450619701506036122226073014015421037129798090472207608004683835225424281113290293388552357361594773574035336230977921412466725594448614271416647522167229705152051822625010611298545773192044770362337299776879964641162445307133378556111135751458075027710070547929403754728432255176290109823981892070746507337319229202733744434866059145473740139983669724913250956986576340792704965321256461245717890349803006957751534951425821061782898518460979969008347052284925512561457863348075014648323770507150462185967339950487940669369314756764608973522845539283205534153674862228808539147342106079020102576522184068558443988951540694060221467165894379092559913901430013085191188042322228955653325551242019713981762642708065440163226625594485114450604421558006039038808029908571131176542768456630741109856822431341415056391750137499582848421511310312769563171511290469766498255987610113006076331702479268985555719077178950921237702169238823754745620112701069949102934686916850727724283634294754494133571839552535223859787479893492142818762180685768563272272088758824720842043736482676482199443999584283381821780602991689409950126562082802698202391275934305465619590820582555170106594508423294823933538081862065666977154429871148587455770816036645285497440052876033883971710439656072770395471633038037231366119637839907930024073298851302597655567290011171684615042485583328255372864375271791091774958005485778994190238486888703651229457257494953974839354158340513562346149938765673748965611324241258590405053680646907668970186398622650238383773689041151588423398370873104188236239641948012264285985055568079016455436132141575908187170820768090077863582607272667035637565820700438033993648514434042451587483078537600956952098947009915518453122609872952528463400109878174086798947921882842935439854069040382051879048052190124112529283508316541660563581866447288960038115643605230509475860766239020871520976467776138855349239321960218889450664260479119650050605177702685366304154475432834543172026348849738492391497494087202110138541765835905314698276833974372304455796396082704587190366687310076719637988032155818370871565159865872335695826706995281010158798325420226140362405553781596300414508473869427448739265742303629335396199956416804786103826978419010074177594189098810214141600623439834177773125433968144012565526326473602574306275329744723928417830024131806586801542652895795396155377683024087256100946250520061421558793459673764964427315053009634647901190013752132235539213663342023605138665036497557072435858700513814912052801065005505164610781121698384646429921703152976621183741317168800414367884150480956706522586391373498207634639212220179298062120646139873665192034021010166275496399448490484987132090014010908741997567441295148396469988641084292989751406158291219426984432307956741233714711967126230703484279987457758623017321787221022853029929594852801217328855428501455180518377380981224578702203417595841895812555948407335390035099186447692256312007227589025731232593456306673257669206390403824927781700441307073880204681464119021119224138229988896632799462688605994168603248632720449198848704204921275924319385729142648220766950093557689048056182655154109644187790770909253849536616931297724541665311544915305207751514010276877902641405908293020926982312999680031149861489828143537979390353487546812188307966589002701540075538045789155953831827693637214592749225413387548657829499723908659898607174327515928847698783176632108545192983204186131830436055136973066529462489066493656414384931160850066080711171601409618028646887165229187135619426204077536835165925477519355380451047884889718482043075247330874421307115674365918219528689385613777491968695705337721478450725801748855408592772814658366923962173503413166185664404009607319958028973134445886872846186066757448373057757233848296689649639656272831256106098911329434346617124009627067598880020142924127228303737223106343239362110685513987085437856495781789431604166548282322938520385604933391123294365835414358445213150275659206530912858055594207860384781756521833454030159514146748932817473140960740097131617530119789513505663165731639587069588602657167223055583728056564148320781567652774480793843527219503278113999144854557224976285615816664474773996597896968232503560877500482609070889290114671253390392304160501883206425345060479143413875595684804309756268015826817803041026740373765055322962814111205808391777171808697899716487164110506582561759112717451522500829799444633163387014695774715497264978001785874811890703075784571682860797184861534099009544939068101602886441003532088085089816096411414703364207509425561558930247125511127726368431313907470234169056753093109313638011521589963489568900035696572028607108352621530864956711454195939180406976431424407143671620106098461764266103565145145889826422047297212739390228493591842484478749668650914680656483584905179003539574675397340425155193252910053510817442792591179177937924365704826301294644614614921114228799367810944910805520431936885878433574661832627516708272628126322547696434269567414433114617143993825275082208218771721639025148663493251776647888738587965890794110184152419632662895457743943825083603668661383837238141115129394822752032604472035830910378883076119196245988188306951960213724872007233969243860417831060689762898325248872283313720737124245135614466780370143065939440898772536741033780800289652792892381101505991131472159879086990839740078069303830931410667453033405839511482057679763666534999138085235262246794407246781355597604732465913543126851471545212554311570164729987173688974002633576067903049340260513194782472638444227892072319937697783133222233896682167561079489454670595561532940596154271357584297739250115345018122793045754702219415537578662145930620094928398742409081940812454886093164419598257117025813363280188872100996918334253491005612869549422508692926659362516362964107311385311999971615447996993913323452423572272144179238106304820615120198058601680419444681821211604677903201780178839858025650662115216555038934487931759058801183603158702982574867755327341346165208166949361243724297613210536123210532023334552067846078398666811051648859652793412446389637037271799780687388111072030695748393115996638598039677310508592177948263437896159648756441553191575121969127746691754535046897955738608975504326920091170507874616918555653962696289532428312423591333749580525350258700847101216450431501145442397090315253097937082652100136694846360817955793011608552757478630683646745212441935130546039069622626437892726581247888185917238381216501701041035132290022786170387507009654726572484981491852749863207849499581505230922403874613962309244793363133364622053481495822905231863608688413564395061318341167681706629647647389756938183954897471324732593188696576206630156991352396400897737715734134350721034286405432309879812254833823405187686414840704987682899939532127188978600981373782251268722416910145042543996364082897537181055858112129103228247260169971379451373201885313458688381463190911032510385676945752657338069839584508644657658514032953883831120621000761424175402627896311185831891256321817209137276677809015960444601871430717330392863297618078174563146064988876367189513341676608709360930611751527715629685669150223651589853730265198677410956618812609254140075403357070595081466162091463693201202993768168414403999305498639315376197982089797991680047542976419933573882723836657748359250044212350534399900369958051038512271383696599271880444445596037046117108809090868145757957218365890581733895357004487070209574462034239990779319380404890579149521053878561074097615950857562267950398041660157377783335881053269629498816045190772141842523916258066570431344765621252430532807930562708946209752012372399101124167994109267504401866808290164576981803064911535983377170503432896743999861967245310313596200420510415986033637840201268950534993948636861653345274855486522903747455013270629026012190084075017448593098777657025825427153095443062640210207711500868107601090422486055396079479314416062931274288362306871161177386156474838292796556265176258648389419669804377772260802005663073460636772795380214727250864963475297740848545445446948963445444999755406131109743643073125807715293194373559443658603213342959624809011161718471648411417178968728602416272818956999888534427695834806050157488234301975149146434359876396861187235431736315515436211379430977629861701187538448468075453879877976306930955770673695966631431662799947749093425560379563788390244273148481190238198376846019864306204684176597963246774004146970143004775993142473617144530381466984527687802944386760387173555488618927711771008242295024782028917567965308898143163399831579733742918408315249533113042203044556784196367779108245130030586796734155044535586737088423311252301660644298160109772216462225050552438844299147104427601035377909735152405710708648930403710998727774629393297125333390158813820531433252923743889442621303289484278137994761192999338773815172613218390787217936084905495250675710363969919733543697221878358654686290087821896391855663769468424236545470790481771817818260254657045326410133047032238284503826594633855953712980228797303926028687439642381378913895360344024550453938835726598533196554291870110201361707430474118018761249552075633111841189433341436917754048810266580445451719170685756868664127568492727690676851883223021602781451999181232168545545002086771131418841833124182146850211494792306282893147563276519315436216791029668360674165151787259063299147769106803741637516664518298048596565117625179956956532665899872011702396967661583361369847772809706028121130169114986843998326581351132543036139571543556816131201029107751366244920009722763836075133925011570861309122198056029017127626320109885128654718542603017899979048005459996235405319343393168846461033941223354602340191085477851680189741481228543636306239168953505261243534277697534825390378663813075818488337307901121831343382873400525355139484115191642807142932037523306269491402874249499057907424972139468549666837595582726656509576442880044452345029964183729567390280576310044025816227162236400912670759807258708744326670346085381085817723600841493505648167526863083487516554788866288254067252218547955963712309909144535525518296850265294834157464427268559476107023703844235367248145391793167720056770006657530879918005597065753962187593877372059415549084125342003452604702515933874132932202582064159121268204555352809774506246169698828135378602269371565251266291526656403703031269104878415115531945275169936114764216335252712078927110661518767161193822506108738745905579792812773212460149170650194549753637800307463356043598692285346447666143502914265250016332135325365496836362572369248996020416845798650457977865924656923309904336789770909348932942155689249824376364610581472829444633889526161690835315168216350006648889564631093307472602295685579087752622648623448840320017055489567943937556422866729619837678502442242425425766034325731356634794476483812461370198404980165969232355743926592685979862548289891854099206357000316551452159130260119391767345914135367967540836105296292425453752943825171514790695960905235694842142067563720495433474510280305668470674308357778369019016345137945050091480351744286836446065942233958068938339984923559742690772123571516698513374267530368815445901063347253539163853614440172725380300063933497317269267121478348046384167653155613806636281442816013859292048938333828083599482027293821491255386525965028540237337243832317575405229166098538980685889260576116650787101105218425416363096556025070855329075429088970274662775573318404480020850639468865926409351583152817385752410701014609358361807829554340558994560495900476746838572093845922507938997401842884434071079190222515166309098351282190054529724574406359708348955023348263675289085482293291452155282901805060555655819910543203712808805024476713153039998109272864591076371660014143700004025590705972704604573033491628572607974317715542663552614519192014111277280485847427721859607838085454462393580901900524822590630489342213843562643699953156310661447576799189101123280320006955891868028464067534421066942609046893359058443319401795487299521170419978025102637973746482773399587186906025646231022025137008457455327589795599559456159198105461537024190981219834655404502292960568220737753022177201574474747665543551960010196374873701848912854044073291922580200434707912836645258930744965267650065624473760773280971252764414503813538455002798043171585276431001176594798253016067487110664484468838975730155136523272583094757904877093798158922713399455476178619263376721635042753710415675605662697214400766330068924690324785409238622715926564947027424027490744168100403233247638000020348935930498650018857061881772339680085288713223966776720879209136101099303257916689155410522140898489845284376718073124627324688070058278471475066008800902633457835987717744692012444945718557250373851406771841432433072379492022234927494705563351346684253086666559781126084901306549058469482385906900941028749812731533746000978546988781705777106603319171888353661052508142112849031950369095949372089030179990596396373393074347165930639059793371110829092719812545778552469214883253587955287557137313886650185624910891940670565337040074090118797667663947808582931498462619362141353562396907996200914549261079655910235325184165724250745872930171066313737342598272763438255089692296023328172828799508970834422363638876331333904501826120569243239871462390532273677922678035265657252599737071089277801354745100637555749976324317888700391833650726017474162606010401622567245513085100279770343655763926483440538153259622813114902072659148816117775790634297058874422097229256526050729339110499790490457532620845936598357857564385412567389551454043195563992028464878924692724085017435111154631303235706443478059598658124478844555162826270033627220841206955395145214931156226689692735321681975462218600458520974042228546265240218077625013762346987996119057303623765865370972863690510594790359856643953410405071724576940858455546271831729913912963655747373181194446784107327295655772140541142703751362508340610196558676269486644499720283845331581607381270818079970698729286857731662202958858511313195596821746539594167608150338977607977003776757947825319397283850303701104066953649333941783522517855181988787046246886605159429991685574801017101377574599261870699624316663197956707593022199807568222063725981877126339285518881120253900063402152392666505217088779580846546927129111441866218221814322163577309098867128436479507098068603307157778108381284432190604552308256499694442536342306530517055313000232421300466451537819514397290812709317513616119501550232091846339468532439183927743459244583044951077237954858860789493874508840043892368544051376668188507964527049336546982434764908914308736686689532235068461890758897486407812872469905345756669071500686339285867829028339914079721077897516119453807201112400954952815810552183986034866154029997286743542909548121070197350257795823871287748669184080015468040203310806051985766413769387187745704176408976542311625881897643009588626009691483235227447835254109775005656808455253106711728889805656206574366477096762394573448811754111937076342015565977623414733869309224198304252613381771389222029887841455129421237728581418926145667718989892695798500680420000875605347694259789632990344450216918802802935604278798585621192804678440205209270435192055577106678141362016199043680404983417116585020165970678687565879143431224991562333797529783468700622858513562659919804878932641519733910812984192086438398913699668425516712979260399530112398333293372351194676942036071327045546093210681272550876032518404900253478161610912982719529077141372357418859976933241080349615692006702486911087303897596277217003203828071882146453504824003227025573175119394521697570449092820954221790053028705729573765899357269556326338696726380579819661144272319090399040934330904489670978383808885379111807514451261179001110350534973176553357985191682844766698207821430869910716421633442044375520600522075153457244834452923494161100324283002567262804439404692968475367172919743334930723882834907571433647589037942251137549131730482770525181894728017021187207386415668271887631865668610744596459937529112188755652387187716959647367753287406598992170907838608046315620408279870610246957607278041513124012446103063421805999273507614110087273406838423272214793342220854220820303768056909687642813960185865783904869275728135569816318834824103115386820561334698216612828349898151035365475270931882270768892454420656196634207196953304072807792588657452843605748451009522171730847043255817646317093926441426156028901498677309626348159014213199959844689227885355012204158967174629842542489630716758324768049008432168242866001022965507632803187619636382141526238149558658168318783034571482061754096884659832611323359956688306380802898758889839297487639049298181463867138367057174320038111946447836770625475247607869146679672830796346594483674633623164915995232546034184157969512908106579381880594230966348091131470695480383704842143203000661612884880296329112840461874050313386797765910005869188101158755530872835076290453698645961620324793566332121463982396748791628875794399870969545250370854377371712613705060052644543082122749171189191335130797419498326843246350453703235735302123914091782759952965819392286379900128148837327440722355168573036689237910988349705687435815023481143763779466746095186882333350538391340398026663338686269223716429592082866996719600220704592878718531499068974556111243356537168504708076948014819427350932574307758892023622655381772652815413763096700497035660871998397507134915814643089679084076072190402598429352866839921474292799512771194215651720408204733250547138042711546560790207742554907226234927945314971541462702528642713724581271036686073077287528373684041376120893224089649511302065633281356646914781155238579283706556013637430708608079576616784968006740511657088233201074481186086398350690813949699754060840533224222066010236117280364050453250491927132260709048571886146793784047373711881399799492862404092947421165605822329886571902816602692746439173595588247594058868880554120105115391211294943634190128279956110493216603748136851474948900226785031930839483015683133730345400577414926028340204716760451604608193759264615610328851426812642529643596958042086812847189703277285479368973194678814921597852250616017502311372585801635886298417199067153459746252089757605515499326262060714777275134226471821933593936710244192319207256460910243683160733668894159975099445538874972712653812894086402208550494680131054775682294055879656383812545232870104151416633673965794446133652494143367239770438096624722263153184800282302166609596577476918768898077123322277389339529953797209963798055306346894646441359008729952224003866448134731970604008886623802422497665572052984258961824735891630702386812471309568496636937634482827213741097200743288888817989010708418844421714045952521932280770650338023404285653543634600190830692302624168591133527471115888710529606099610938246997964036464982853496536027583421908879647301079131088443573162680362457284791444932938354434124018379507524979256056961591079811711015709874566732360915562618249135818279473993002219065124490852831500692684507917234442623121833122976380277752960978109493435866347668409663691288454184435331474781917959349526405379181059990578609616430719284180129786033751258186595936910038320560067308005041754711735201339849186446929173671613449908762113336943412883391772864324453640470492121782164580455887674801296984127563483203889885158513636707623039316516545964961977301459440337584371313299230000278152943922135665830857073843314783198049634968185630848744653674907247357555702427746230847437146437892414562428644899216318275764587366757862214762685755839537265107833044751765666860199229217738470327089243609266026826935652917762053018447601234615583283936330638135790857668657683813665489221182749680896687176198457461286891425707657267410880887873429964257269310142219876753371338152144264292050021852084989400487841502295433625101498320474866217097108516705932828047721823061231477216436357844927946020661784211600362421522345213391248498253584447270863023265996936993184950777667685319093737307581075006060483246303528220392225241375561097463360012872207667440911428770278078864788008627596573996913402283480690520944762684048979668078854160411677617454995107807944320004196130805765619189056861801731551648094772874960971359628813208784853816131844289811550237559230458881382308980938585989440476816960109742665774993124052243828824798670601417725458333569066526176720032209212230672336071706446349885900598572997087446209984485942388983586872946726692785200697871334840441347173719680072976671916058535824044236981240644255019590029370672256387633561274900216475173356854764075566714442314091643728426716660363907525156493641942496345898400781169073421675258224211162368557382211334729409532877903023248831925969288830752418498354718034033830822171841859856038710620419061472148984334727457593143468060838682641817954479527970429077728526888349150885549951614125967273191268635205945839310207915768382651160428763090305540352669393537932018624429052339370442910126226639775537601466156615708528503887423238449244814640930871955101460074509712323817858160283101811264026529152679117582725188529080760433018050436208226627905330498083477233395051984255557775905108224155464274405809362139814261822417029649887064159059717863585575265320819835858548584992622732792836416305347531389607433245890472532546647946667930076415883976005083569673669452541649623703794146910335308679661691743831945497893904804826149010760345750432844408717491290958799508148579825310732422063985589278319891853984922639000517139032299727539032932084237621875395232170639737402201710491088123243678530934582553344472072506965799257717992713319306241287240567636481123165999958732531814606710339517952992545942351746273429495652796136490447685019370455317058413897642331946145879290740134779587875875495563634350308973791325417663112416482581815569529361200795975080774250854719336297519506419534226028035190192710482762697959682406368505066496524101472352861959118161585693929385832589407601240498595168851815931398867207390352924564688051932070102769381383029890842005214727191729482567333257528942053159516083274304503336718241787299124817617056338143636038058784365540722688874069435057111128085564282920163939362257045897774762566197149340788115413393189882069080087739418521402339631591036429649660473216743199776173168949663032196594169502286691200340165968856452739982680636290529912607210421445589717334362921301317597811014286493473445296561713517337486304451826724232621685167606056984550525160834248474280601494297090956796689213267003916131829479370178186710059690721632503297220236806551579476085053557864827310244887699101952988784698832346085482799276526045189810018049936573446766280353286306562733624569946359027462225647642958934578898255389890520674778070619276018483771118437799309729164310929135269760667968884782826471701681952075445721313031453673155149482979127156524536491928220035918874822845016880668544482931294203395104683299873151041451835462873883753814424656126730547943711323473082083282050553176459246458234837585825856081621899520424311585151064091286194021597008632265435469429994510102023548100213691930920979468710453712703435123682507402981248685473493639471219771142454085510035506002503373261379028077380785793151192765411044278136602805218174353563667146749801388844778631944284395495689497938251663243290472096659054585878999387495266789786357755499305596996256655520903548147045804004660928294679113357240460312427932713143212173486071560485628242920786025283871801626630996142018833478244090856232876533285575729936649803402486809715342063787874037008972737489888307011503837620831523266780236839923782292401654894607832625288226800298301641691958093864845408280145563167175237840600836719818104409465540780853527212586399665120448445026302412996608583535689283988677038051757132383151888495806045795724713952648660000705783246884168366594610715421781105018084746702296736555616166420424609678962678359569320451031143789632968303653141050913784128503744969288775366319312744534223186200244930691876160452575600602696221069290391960774330126547156798240830174128690574892240001547538795606500678539710078769984110603430003874454456236670991240157609157216114978769872134176735136185435989489731473555507404814537810040060021112850495445275220397198997065606594107949846238011672146449453609143965712207807238547784233678852332884176046736382230215553170567343512556007663844651595665143870647520397459476852915589349438668718038380570485036250694147083863318444425660754620217646623764092333197447748809908181954622861401342326923810258255424837877812894473619096318181855222997493459887912395368562350456574751803316691057201069589346430522252376303429325653931462101667142801115474364152353909624674195937281995934298118249540763694054040307558842175927701759720547730377731850242333228623204073278246297604940042174831959269579244945988284303055373217734058781388903747662823017748055493133922691989888393821771170614925632567187453104113589431648828029625306362170471463434108821213891948954530186812067304881938660546688685938988585315410951879379007616067883769224087037531188684129998921291171515888088726241530935184010788918280930027285703809013081858484272731469859885668098055626445034895522644294715290704471368482267203742643926453806384150361749563976741945996811381273549977654906723469450488458439813497834563222711234777893585917840310580314685925079116873215274354280832019938186678692136730426774190874960097834066765782901168873738511686706725926986601676310604610818118225744780775999524133974881791806644029572603737355595060530470134189193704709286760683904372766022411566965139071599126626453186469887093775139160449262378102024806081893862032076787588979542213518374814704941614201768331790881398776295205058545978824879937526916649819884721459287040486680138601351997620032875606970961243624832860361218042608431522550932973188290363725432489578037237672287190007362431106476540644800836996543503669206689125927409962556437467585515620742242503190845069561872533256866012531709934736731837151939210885109899483699453633195668080587897923059900792596517859950711136162937507845444000129335371047289715344619565298060816105632141990913144162774973905430518823378529031488445052895968562687459421659261031022116001095678863364403280535869698267454545184952238279399186709697241910614294893299461551853854791323131244044137805681609115555842186717756611372489679256524661164139167649537736938119752230470963621796503795929976927885560775742071121157723930166164750185886945635990214163177186115086914654543819862724639297326199276285103825959814449098040861300940363593218364492444288020587620652849194777544302773042459772725253707647153326533767836681705687274639159466648746129133759280955143546996193234222482157692742274534473571690314524195648643439171072355640353519218980139066649907567202372112808453606649242084319860606130345333014900256085631263846729152204010184544201235191170268153995963961093350044369195215365854702045085937492459165830569449040283448773356418876391036310958200489893647147328010832877429631404427837702808768405932223102422618406665102173710859986451259419216621191185964420085615250822532603220753359616419670746841264566272633770407913589151637445206363857016414405427030778181542717830464655177212020580723104768712223350520991615834709173186704294113529035613258711272851661576965441259262666068037734741865801698389963243581290591897298328222401820905672908862098951052081443208924450511963455478897511032248448315464282302942932703859359682182311677140907211449334106131487279885690048301763899603493768397285812752458841291372072098041487396433573931765239396808232577125128165965554281216775244492428654943402183868153836453435455344209673090807340100237614367925726649130425566018071096170694927044386639356517837215202650403230998825754190332809289083559616449432733478733454656901126845814131883590956609898620091837863848142166994191194765186891852905769775005953830882399528727724311260473225093069328544566775263605429122822586467163819418713541196036295107693248418598032253575835427276698679562350075281966853795450565700516268953803946702112119241809298339455168163577923869612693857276916152159123623586800619777067636710869449748663071868952228562883949597288275780838845280787017424948257972384236210779510400622395244997853580416262897223578890438736996706180901317156933638377196297258182555657187220726176433443141106303588494662207757663417839387507404383124911356141225088284936870072880735161349658263858513954312831685229203970911665727245735049669973470510032762599506687002258009974366812441958587051679104868340721425500722304548693067140768380570638873180370726767195434265024129680756566571954361543191388905873764380573329396835536643816394492686023023183124364529153402722970463784313370690586273388605013264156138234727416144468460279167034622867639156969803938168001265631188770985975944939581882308874353234106019055117772219923624178665687415935828379027964772482939634628921845829377324264985853332729644643112641796463967290766665706805225225026395685681872055957616552438901023477161093925374124773970216691166504172860781699830247784239744881325226992653244186382967613425988910512778747291502672296624727208132427731419134823112281424546111520643813386691552862392544891732240814541563194402691590217674166607240656405114205772969154862450899646862161362279798298744973425323083550629685513685622199912715840738331363679332318286902886871597207870465674429591180829660215560694495165875701758043941402241121826173964732090953995832139876371946157207676846198123684458900183402722528705337944664445044484991064644542562051236496139578852085521373667415341810476954296180561355476519436497666382177962168663572919066901655434081078754063915065526763807798163655982574552221400556270016978452454129898614933267177795474902520611951438288020502181756428007264624066530413211135692767037750354084590724677465366140926607276624849312101895215115396129591153685317237574432742049068687231647122616851734159690584465681941604017419721936861695026037601833627238577331884571104377833983482177526737179922537633911761843500465444634900409288296282708866560253191741146177499335764861096635579424144921512395435501246184709038081112993226899447349273596152062531281123831685655810974787083042575658264369365630443314871557824208738170529850288041953323799372512081959711610288219377687146978354448822853891447623922053951358796694814004697250415123093608058079809760406997783531021845705795667291561267386188566054148566133861445254853129442539363608695041038399877047829115382483692983939829801687921522441153554207842666548052737534962599401083868058441460508724146204546517051359574818417635502843038864244609868657679179840679717456640880594038934414720116968298236581033210846377754544909824741490844131613365944694575880806951572144439377399135897676310209860948760583078734472185407596584154086704594349897295443388630943013889439863981161209769065194076478687353708095655923623837598718720272656254444812008230546070212891931159326337815662822239175734892225855943930573957374406186038867009887988614311413599932002081848224350870312009683733483655126909530351290552447907225479432161798478866924454877793653968513524079660228022770855356561437715704602681219919489661315356816963847817300762198708833232789114440073871376251637196935745365651051088979887198035129132799514268169952237443577800411543916507719192637197833554020588106631210686010310177752937419322991268292561967785850935140595287774045180007609419265817337117537174022830761317220254241324551889663681611983309740530704465211295615481006159102157871048623354192202861911528880561121586029957296626708703512960939587275708179220493861609178247305422029796747501234928233581436948850337577486932278295721571153425568441089771979485352170354962403675056981194564376148123925590817074209994993054322252946267011447300461625041480481709467692236865245802936978566457257197881114922854637869670343299418512676191618718803610998253448222072902015633666603936241708225830536913442987964711254714263863500174153861812954147351638455452113664853170024219288006101053848227978885069186406818869655939546114820652441537492673453988754315816876329647349898639779213349257212431640215194994331337115578105499379001109091337626960422246815645813691602065844386956257042606547595907816512490288537076062969206591997144393546658603134597407956407172785427550221226203191347925220516427125246717947708317847266659776073036883713984548019417060623605019857236092536068395733835611026093372895953854700631674644543260900189901964587658522748870044039339838108273816040306429868512112932948339124334507794014096122739210204028594790890760597034864871861419513162094831597598832077590686984890545979628688643667275079886887635441637992342303763978324755300523682901126262746438035712074296545773653349722587993880810579884008090808104033859647430270267910305173501395455605495756620197685493231415688765826597465632746923920235108973784886316121177506508315609394647857985715880781367746696996376642372856745176981207468607058189730320938452467583473514353255967545255040136844381855842437168133036360806694386368477635492262817032957850210992439677579834138987306592448576903779488718512892432639495030167345513160472109417210531439691918020605355850182752527680109125012587572379891467382972937035239719641252181976337164337386360924020324070540863675629044129054913378689794825010451199563348749337948554069081889355669530457868035297644355698432965469067290820420616638763218498226000361208184050165082982001729349599696286887201154763758961278016110720530482143160417389509176332546175325443703546492801391671403903982206861356990069594747877563270564213757935069932409869502283216417895840765102043852375545249542184030226724266275149672252046560103298319054624941775621735330674042205730290504731212776239505103022225711355797749373904337316926599023900401483452919990988281049638885874640690751218445066028512460026805857144389481710027366772425174309363207007801631161364399348057700902339301122009884358743186822247005756275424362351314100660125763635881461053355200561878376911805696115968892108934944482307723464821966351609325769026533244814332308478361767145341509339771387222185980092589382403713669101198346537216342448438747876472852152267753194582112092616802478544032393673401741420152735850128779220266496369801472188257120871811857751774441547076656485692632111080310154562877493489228479026284874628938780588208510713495830382936442008962120143494463180443225382620878819068006027916306714823780298795139108911445262700580022720577572573513256112006795941622423519022100944751455183035639687410079835076877192294642395490000091116163643402034473908911511285745758169819470877832472667856551952859806171433707953874042600382129571912378417085298947201108598049877414538270278343326114582865446160093354468245429748848339275226461456745183297780435345353035275364250260912062270856958276895482743516546004350436229736880990190659589457263924183520584131886807639971519558587688205990872151897960292504055723352031333556166660822310361056387103176851044797380810783291123880563060342339041986744005173197012870423327732589356180811051980462917005035455669670114440163181100810710576175220734662301922077834839193024462402283762233658960958511863251476444661289108391157243433680976569796105243191480344174155181058276974872161650179424684818396907030330315135521593077395542636740119326643525512578948697157761094353909825469088483566598272305627131872257676258998795980819059776200219599497594892172207491168070802271334317349064175928220568286515633647202339725137728841877946651134560692820661561728748404132304911245333481201023795330719817969626752647076232523499582205085194000088339075705962226711261461874627555753348313409986578361703846625780229244509869336050922875930066875222312589552152157645682189090261656460988921896850555566867782797768734952415714049915801704233073233497073345956758645980094185555579800695507244886729489985576767532411339876328768174247701197662630452093688299844125291866241384443103452017686876902799760236061815142691801811202053982191978772650932837137917856637007385922591582542438847947579690934897428393362591824971104793945775053563285166450115645481851862527096281453423508348807121357923830796817529963549148920637601393955610249953507211868408237441469226221330200492913506575116786261727303287852089480653994742617485022351706451738343075804732053265045616687825004813539678681156559227444906426561289420126569121282184948744424508256288363700969188915563722269590785952809700693683791630050817263638678667816341226566098556756553432090327261848782696265663406943634254959670407592360648575466627255286752362559952573402946349128692559479737145905173577282322424458556275912263952230741639375988607506723952336098989545731119179056173877795630279955283220739754847209230785631310340608653411100654254244070962929690964741289627110167491316356147237785853467395636685647200920513451817854489096872364389618955605729340020178690764657725157339707845737391056356272774708647338313886294294708722385095993532156392998234222451060990333933440463287616140207127227651801790800494499894443393450479558842907778102088833421193336874618244191288356012179244127363292280335217552315084328179625355654866383617333872105264235324624272349282225286402754786157828631318882288535793477505076136085631529372432019301118269181481165826445162377437196874920585841253869654748741801061918798325369658449155417175452317508619422728850317213807445071947477659380544708581201648910938979446467893666634572747711698374625709618171302789067894263172470491085352990094975694722965521191331750168697946334088139918867988475911179172483436812638155819449048708358615495305158237536236399094782577592366892716189258986974990270107515992035117487723628883828571961506718814703741222197537902472188762781248445361448332713573474480904154148366316382149242644311684979853547675455993219991149576234710117409944166126152192068424009257919723814462114882293050888166939611798790189437778095095047672596521903019243027995985574672734921022494262535596062202087976177807576260696120729326705466463871547196655732255627694315944072809961507679397443982427352074821034477585152795672936247861067406597212942767270875070400069937781644389188883692737704823859537628675143704600355601686055354510588449980430255017301703332703891688815516965591677561123599370936874187686356047022171314207831422885472278152692141944940608560684567582593785717881591410675859929842962267454897423089887306947969112562471706070344393257090774502378956471377599362452859879601199675875858769985171019901313772072620567365046734476249114873721822102194364654256800813301787764138263446853137064189089721581237726530230598775234055072133655503191738320861670020001338659245625853722419813621183310231149745737974526349662449292056845068267338927478840414093388393167427423267680921433347072460941322428331839884757317637070400506411716932736411655334387080714743490125641881229606655831577424177961422767327077575013644963527955547740612654044873660755166362988647278347396252794618158192779821927710837128805521001564018292883210729196020181638443437845193837840137560198834635767981880390270915139550586929258650579247067124073586273089248802498316451692236870289037030573684317752448569327388195205931002965927743287292421699450923041136338114098740858321426868372893379483860629754495901568363220509468752193294111197686966140996799334506155827904510736382552234683160076157228062818866475326354200189884285216270374823639440379890412020072037532771564261628774948769873188349971837917787818912129039038892577552245635106943327982165748108969486058500250763744639144936108009643125133200224663252716865244174389322433451455256785571854959039837712317080459940109398785823511517388141453586233055991241099927452356821824178604747185419090717427260346140642828076321860772358444923863398003664466546108547713151852334885114428566326879093358856664735732042328042315613456502290466619169684826017257135725108820139914687435502012300692259518291504357149875732059109379365459538932420694956299800175879975289923978500791698300794160370551999029342174682551295968319268934953956407288173802007875884522743928295290980885140243525767346788907628240197587689750766036352936368348411641179545426473235068876049115407599891666466642024805739315407772464988006924134923022252289396812728875863406014670018123729927141079302854408747121846788358189694768455109099496184133574514022679730363240420960632052711477172162981692629330074374220602329904691308034987900425738482600004754940879582590911162176927488872060902601352774537265163577196380365342082725289582500259093483974487643834392707349260554804537961382482763453389529757782827944153488028930986269636200967627427865565006625259135394351623674501404145691191250710426017904802412224636689365534333986743019670698972622808378840456392795618382804814911575697766587059081604257986260909134393242863301110306692244864801675021363584995560416017723675996678409762108145705936308786626987117589285474641864358384311581685447607420076259508100595802438876294009321908986322748837130562909286720432853502099440747437896596160208750516311905211427490831902842978124388935502573888781054587887305037227208675117845732559100313807727040040415823454793423317683520759652690028580893049007455184822216268733709785581726425136975368654992889332243476730997568206340844821031294558270090074715705546229299390889372211336341762195573159098191539043150402596506869089981453927750942278781573869719198893280751734812647679248828195545841352799415907174218020958322421053161440957161955990047965869957966650944766321157787981989130328933657844984996387119824507581316165461398281791506950464243078016605744180060941128685120161563245457475725991033331288201483520916290123590282612995906864626576541993676233664956490195896413864187919867678206385941868878320758128476037498994940272130914268914727615899224649801745185073657585495812617972265387994159174366730249053041524975293765033928094867621210490438032446068478987247386393219320296951434726222870872442637606133857509316580218895545522256000962744800645313928272881154930783281395915061977450434743118982555338687297926196754894311778961895764206892501420552067552001523502075463914980997866502539650781748556178827519084562607843794279302222514450452484537688621537163539286942907920554222885690186594186226056042686298382622507535032869490489294948986992195037415769368583111518270263709854340417356961461432151726758261235605569368915089033638704988685572139517286831627730192274645496012444683569135490685141526596364625730364792149949342856572131115924890925957407503553665201992436686932607381654719726876937721809372194436757943708684425314243980397975004305144895383657513695876829741096410877026087143587850046357562653983140560856202957496706232758098519327715093507619598394832379242585472283349890994243862809605013445678192228871747019861878854905281343565253464103336480179229135174302836450938838384504564347792784149672651531375534131641845193971032127811212739075996294311831251885350137443547868938765320135243415304023849613227423690450912852792611271026286059588446403174975385384918872855643085163694819688880672218935078127280824775916785708673879414998365676409110837479646520605457438216788697668544345736835625416586857782178882919859106527080978654699577387848810676252278087826383137931749156691287958024500631119805096087528883249819452637881070392713050574708549018751577343126242849066218587012478532393238711668443408156777495499598575967114158312154623603245514547891244558643894946536612977914399314677566951351837685379028354353233034325092756661652960752579039259197878260703106674658019470410627863538837572775855462796547664165810018072340493369622231534934506328858244649061767868698296898815891232258970206461192760930192045207293832781687208341722978627132995585459068934721300821758663221387630145284753610207218565094311614585045434988287170019491627880112767754740714857742224067936666235675094403933857412571804034609027842305648091526199934882240003968470020469509426205928317694710209809254715783129225780275161744622981860823430848522144270369006194525517102080709801923751104598358115096528203337487226372046260573156234417381942507305662136946505274255294535804986653157041570946333792302743520147314754568580223844490500538748705541438709960385430557647740667482079699771202810020380978894631196192080424252276049159784506801422630660724639096915959361806779492788947873739022476063052298563003647885927064311417243304134042388841362602568802446418513210438501408777085420537257868171308487264403711835883343316762649628247645290296591687561883053885122319168592084801408104928577266455994914856848616611712535946670803582860137737750347959463118589065402401330211707609111101253319857436782831754981027432858289885755335615302444990226582551621299654339213955471425383223289687741555725899576167392329798529014101366385813065167018220970353289622525853510386605332187788011423966757061682926042623450291866204667134114743730632644610480580254183342527411177968664895269055421808565886125370557481397713385320328496925327966763309226755454701817646801118760042744146955152297325474140972078120894667369360853043507000119944725395656197175848148931118035046981063526621950955401656687400428172995415335448896637941439562287775698561231687784690618155766703259250365720430224988676816419076729892288387037919020206095043764407108919841672885048054128930895317323893180429506670255904605862691829989675128149884667669312635937007242358390504830442170817981251853267746600316337022057456802897938136418532327769714132814298680084752773056599201837148904442117765568953973954952768548079781674723557063778215517800221686981916819645630751698620139620087606909064579028693658421547679761328967865932347429375939561008946311463864871849987383878238343791643590593657816328632507582879384722983562553330505712440153593567454924500085910163971882595572453957646280344694906235887981068599169364664033850870079246929703718360705508794350131935963619272421446840876931038873278756530648111883633196701930844973423298055198089129979763174654915175539870740797853939352115882885969958913055240233601981895475245530644345912797852135639942672466325931206196718150466080608729910026187490767216948568004566333851132441901932042170202969038457744996017457974525239394434751512142423838690201883225794668448109179147869294982701591510945882092796662852977022759108859582290889312837418442576672046858197702186731301714202997078879627870233250768201179768886804781692681153180857176365117330517843507772611946836371786559971556179851468604571815108613900018927614013564486227509817753445419064658375658390143390385213966957083712730620945419956303640854626447502755224236822668697562832735690739782428485971665336475950608223145869782685259045759311595063730525534171467914340839542474934860069713162221558824252358409661875215260303880356746058729465074704169613135906169298092260290132289507729815034535774005898166299631930244460170613187431423695674160074723172503806131159947579054903955008403524641607735642363968326460789449211058715670563288731023981054961461763296626806274001266801055578782584121698899506773386252307850295931160611595107038315148381944917496180940885666023345428663312573983705440377506909603698388556449288856591623660011303693082392931726863339139211351729369516300266315459455014466259661363741599296830839544359633592733188656950985103171309252596424926597311498469018771221586714779102035527545737143176367982920424613387488541885048216121330405252089146795362640432689404966455081273592235151546596449686230947995696330205490351354061955155744869034713534478823709143343971844226334796974217669679046205422161394348644941663328392853001536285685123728686659857340682297238237367756977086697525354729389612910752178119319848270980817482017720844663136397659539558383928887523194167835398035976466795278367550854889116551003684385457252716795421349887258950800647000577165170682458684966918026182970048020110893772547913532144294667728242341977997496435765942895752282319214327473772575753472086792017036851494382573638002564337156906934154545058064388007595147015449956630370403938064921299246076223077936195425698321012989068329582857350902930945189720368164932914738796901003921752242495506863338420156490099064419294321171311169836444379451423605787652519049583611439375367731685543012212031085520351601541176456844328689282650641550906411789015483056427353528538096909490863535426626669849698726736426616646448218355563315444470582082125170158368299205907652375268773801191587434336140249242745773714765675412306679535550079511700166334929143701446636136682570618356703022702099077921901792624745510371999955387533692531714772241516655977753835022411434377599997262182793025527469899417800222655000466484392899572694952430263570192655500304938072404452469376414470677028852360661156180774106395741394924289502269308905999281222092671524356019521305116501579057674031082630257280702943229416890626987048405742779659372932759853083349096774562577409696380535206654657131163210619099668014920281440593064831040574919990449078116811783307708835827860771101619789058589810922081360045502410053519557318188567496474504181067651133660953123216429979861730046998287258490859699370934236760556307884562949216969917116612649443166533937209190971805105109531981982414785223700614614249671840336336302962741526083229975488347949906632122201364832425537950139454745925632632656089447075964990808454322751979249063714857672474341096558629583720122988364247324474008029621557159411267724820871177214732832657614333872039900318608273430829848126029970046464458519995666164791456014611671128631954824219827641174042535467381784122610865784958624882146428650789132200782942870953378199196547581357174262332268430309841269211654077259477218996455619807402659293983349384551297104467017403082220839827388307483139467610301095336973388971471578359245662846435495558949443974823621585337231652303890160291151235559662930813968944308916549763729045970695602506867184105191340677854930211710819575668162692645969515230622376551377143422349621458218498189677316089140198232683088091253337493856590649883336274685291492991861080582748748120228502528972389521210204687568877506915588108517799757187565894653448723078908143575001844074622262285263635322653406464807130376146100860192554484782409791613939649742255414449896122923282888520560409945847088849125342166853917098259608995099471001856848031923657972845268102270253762051790761526267044541549746608568186667554161771718949523279785869886723360599066160309088026828611809573431023611677580612648410606530880572315016039713262989829211473416395304878623053244413068165964563329946690148838632595858844882740717938005175889076186522907269510717279670540676628120597396740973150265709515894599739434113774060710014696437834301034829592260006933512468507464426532492584213655595872358307642772278477357442128472993130757321552588461993078029690514061726240131379319546430835975710354743589316948110671215350468347809661590426973884834935363349699983200316367746209959134390898487808942533690970009957829882144824817663716864087095016996733718846861215627445375481296423835599084541899302547114927291609050948122059845910418262331243191393784303111177535077037195806304259168779757709437625646671411988934268939734220771075392047363624826334664603809091731358763183244589181261796909446573766701273953436593180818865155337754178433096024479971852767704479109566878435113021720487520568866831720822961040466641382643453494363751831325378058262504165485664772945616442962579289506080416704934188298999223388077734284532313335419735674654122929541242654955695990664910504031549153889716265982830964566226829760974422868400415759217559370966555043115411325716378477802649140985922814716254078198442178118120967064962975364853407362692760359649164514628261656661617931265987625357893410534230151469841122448237803695067758162917288051704236211241483019851386572114474128817904678161903350103749110926917832355814479220545949482849330563667431029011377100437107136613204259960488867600046686644975828453970256126800792922871297364457574744943491294664521665201216378458200664257433987518864276395335892330268288052067154243498426962898527386705479231788435464035241536921888029354217649518181474562348397122314729858792419583917359026474503504226512345290153985110806610615841753592972921442858925332839058591769099230891438529980140062229138753401018850353914968319153230133124287479573215635207364813992359108741846779740176233215224009159957657018871249214075902047281328698658305682759432719820686256653550676131913728724825130112392940234760353417960575027894393753051652327943622293470722852027900693929967009738338158766973211111596268992891477744524454528664369292467841877975231969055541935234837515231148593230483321879380753232335246391769824535102962073515224812098624160545847657673615446336368912726623689763125703435439754554436874964155965007940053430751120427414996788556041241150691068034189635053589057191706273249500548802247380535050215214743019431757077898246151673824508735486919088374677781987078862568092933193505573204614896656934639065603550963480481501868264440414742736207450465257916563585749673334510957925533476203811633395256127869896030524523641811421583230878817717112253024483082984237287040804206732020639350238990163454125777596976064505651261098720379857473632242267889674923594396168288935886237297948666842544651339521574482163707759523719350012180100453073153338759895357947485229039437028304606587917039488056740179179137497501193932400824669309480097332919651843673659631680312849915107705634155865193000634993907114011608803174048608371655679542139611855626316367435379489332278658994251468907568984059962573590542596383583471487968181941446355791696941432715591139741264259404182573042550012959991215097408810904133626420580383292425644180563309671836130645655197359169877767389925131761262956117769034850801027087625414320283618794910533841491671498185784344148516758732369846855505596781181968274675811234197592633481612490309352000470031471319031397286476529566632303633434378818085469303355530646316213484615266857772151889241524200646177902541182609119816534296934732869655878304284732790264928619100236050558700369292248365685780169914835981349119734568162099118737063976484971881965732477534787482339275509005501538132228757521053868699698685022409919227057983278435006161423410029126534318589321112327718612233601559186358788529830910035605534265314871668166283847971780426122404351196452706271331468248000423465095030253191911802114004070684744849425079584766170417210853120901702274560233324528034122324435117094943535364081970720879784654209245020380958072468470812381752487046457887668692492105753132786430277209826011466399229488012330417871829732481112468788525968142189996769181529242871420425316619618977284929524559327889808142964219845735256585922154253263508925908003214472986633435376815326638311375578915090185410015354227883424256039777009477502987968900890024434195725101501128837736160058411079732710719824905212777453687385533903292299531014793803985431236324854211400318832811555588984038957558582623662638214611579769797230230587656448899178498156755666951373377283667190885277029391929058896859261202672819542148519291449273984107502749408846142872242705817980047549550346741941515559822217265886809425252254775824704052788987848754189628293186064361350863003693580028907679279560579841481862468985122038220620281914789661151669556273208740903029131762403530387709195090518883709211813066357094356147833285044305080499962880564337467407222951900658036541188494542432329403275057069133598933895009285971320066996801852043119457412792812137627597083396649854265468111465037738602743715390448163382949818391727101563608777922212913854280143353213846062679520712802978406657059467532090281232989161734189571371103146712066078413417901936671547741134589585734138102619048848383015582614044649070914024892537531347001710290797618969130761592321207244482963482232174284282266707531048346892830893327697327135282054008215074379362112971201399916887254690739687541067654089695639493828122220308348614052344668187434905046151145009340587021379954105216782455522187510788974311561420109728522259257880031251391134806259006987137689506539654257978268755711628024260228081826974238126491791034003031479440157952366448495640229885020186250342105811649920279370792932101818068628576410351983160535336091204262339901633663087748151987575409743130912272948440591387148321524145572613770039895862537319637676110616170316110761376984650773223094669953497994096307650095374651481685279652533944330863448698918783821743226668096649138827398962904340769223390045354382721084992691808561396732895299765840651673931377377822557751409653929170764892362778525385217801871366611367412576976115504833860020974405268481069432092317472062092831652305489679476157535155359650426394020927214284626665755704501123797460720325186437230428204584559669811987405164337206578547938615507611498285676284258988389892081777997966722892444891347474432785073386801038926594692222722406303595813757539768780391747888477925538242513245008250413011148318599295481039603415567029925749767146203855724972464876846731633172410572422966396387253352976223569820724189227781117426276636924710050631118080941428263674251896555532474900582459454566621148852967382872530993009604203624885296598870522252192761639505971866468577936043185596001063204620098017590060746479385573910578736184240927614858348420204466151610069553428002401762977427475367837301387579795630972698259737159841896346811840293044213853575599105985283783501032856710355407982289962023093553394632849928804380664753900932589928941001167025848042450993909916600164186208493739798123130033328752090146874571657420723922993430050473115869049622022417568487734758204764385963034645110360586874452104661744362138683409812972979658999782067269913649951936262009199491582691806686532565234753949197581891228913797645290811518654259042235875114608860558158226796948433586387451378665840198746202889715303829224610366845586181538702182252104542237599229257203735941858334826276669693419729171374707812673553082842449671608378776749646948748277651942881031301054605803664290517569044737166024746060118390308566478047506911867774959981054969999147264757951084344935560912539480600294839843288593351486040802716959733289215595220847797666399521200816452238619382515128917472874844281265458764464449201639891854366130065408632979989402086192238465360637905032324083680988416924503367637307367027328830895313562718978655177819467617986930600504468832078251729971731344499748060826804203274419483597998097848822171309259382192856014790317313805231639528194826306597495265334166681412056096526982711680602994479055408998001106710810077253478062362896733764997505217464433501674551234070456706853683324913088066913996931498526317430710095349659118471939360847738207031555189095407449533040443803035670556282522007932056688591003165869552725445162193551876619467216573474167547635543762723740990453354843722952787077798075589627881822980267620398625247704885529036308930040229244039586669280596566070712510420202869957927217371286601746620908503799452187834342029807801772324431744644783144621013948943657212837288287949219256568499078669418466881186616897481396205220262364249287181127063655160311517792456909505163370460054260297327840425759757103821710734303600557653599261925411635632132506158212044885216181254782175637136451217782280763076841769178180510560135604778920393436004662702776111649399957052699726839906466012372222103379818266543311517259887766453695553249315376465306168875987949453113693352885039332778112282330050979332575176310080863131811779448496113670763279779692555671335278610520399347045234450013113696727744813101716315226063009380631484756454162367281040044344623797003676995241869849358047597028637397640675445569442882080098206823765230200986856890412450921199273494197718428437675686496121072534371668694783217017508968153504943342897366351976110589430961304835097244006006985102283813181316022624236329082875602528420502545219949204247670173558396731125268402347645437262990005623340143327679922492206960651448949887821212086133873259925111489588189364484744582879174502357688470594338796150018030725660560021942107049585236803585055325714664306495141193272468155369161322218557350366087072300045985313830014661762055115533443582434316599661355470648280107728477081057788273979241088841712027160107188390267099301510627503311799476011509731869116492367595776169375277735334145750759413666461322291516261223174073724542290679189609021506263895370019135043034384942698197327950453945337903329647050932349005511480137290743741615415641722057440161996030718424765243325011368905052935344781274154486987678507690163218293484383185719286217582101440744443714560775562968564388980081101739986257029252067101919628939138916025351945370974075766185225235006010712813375423242167675912370626154685273644611079522543690653005995534880657875998700699238589858071322110391896303958202077301130325385624218586330660055601284283174371395828030434343508332850341369408344670893828213915880349608320753968887881152150109379771099586332003871473591234894872206717193182460242780988463381294956562727828710627096226845184146425875394083490072433932403538193207123661536596177659782900029296309779699874032162359513595083719516233477335263260750009962483678373329106805104996670431409104297617432178580710377514545872130999987821735137229067020260146705979611396446333842445042791291216878931669797449747964255605884882499934046725062565967111934351213710991888578734764954988825388757680806044149734161122857161197998368642478721593191174874701221140936379123134587932481442157630182155280221559029853943983068134281015160194847909904731727535358246659720031404454958626641604700741726282948645786300836581630358909231121942568918556943499525344194310471229345521620073432861963181656349358679341593843578393450351591996596960211806297197679856414362132774343297241402648735672516042164799759418120517183258893955037715937237626142929832710887961878193965367554550079678697155762497155836385334721248794295128692888361858213734878071697505424222271759222750756294098844374850034919435122224219649426983585798851496878935690975865544864711869192938963955424723904659557415065147187034401379383849539353052966547875054705096054187272409298054678915191274792836271526666399877708026211691319845012845514033961358763011350836996506956388358922139876611829575732216566673393992191041701490638265739853255582925294687652783249406297617050426666262988605129766397831437470787718014734460753302817037803214090521656179699504710344164565334648083087702598857793658846462057223686937869663220520415006781307745576980619152591015996183600287574059831702993080626105638197111742732987036033670095247598740921446536180578401382282218726112233740313360393289384048896073688956881474604168367884693403066684208089244737134238566998673747681663219649711869945966753381542647973399221806317252199611480385865773019329218097595240643095488180682779661008863638754644175323226374642123022806398714145813401402241112782295217766823794794018218491912496019965044952944048371263643432506687725729048381426248882290792702949444237675629270639037414599064895438586745487643943726944898802516769270157448007741295280422274743836114955718501119191721578221199022970951097097255317848379088470005448314366496901448258045850893369634736679236112265089996992262154437830121351187303787072614105082322323427989669646855794903812500014899714562301560201241498565788283846594469169133374378878859420816368677560693411355794862743095383435318851755659004046876196689376379525053037268741083022919126617099671630073519527293278355672236526479305882782703669127866697998430396002029445585127690739792172778934365003964962739077979056936605638712889791220557802888951416014836848759381839330280934915009042513599249065798984535536681462372817539141845888070200555057176108886339042164926159140604251464468075746055470656490497135154907327974623566702431674185842505876209573815101022510586277041480220600875157492680586410561986233502022323640537808130406474061636644744581125927991698601674397838513352347878747935956796569188649203131719617673438907021643274967622058008306783955196105169425983602131712403444951393825380304135591864980529895884039184615504287954048250870805982318088400317074847257748229832194704583384782615117188266156115475807835269073434855265727470792823760250744866829147989999707867482006310772174432133636439880208360767528376463883193339010480518840386951684571594070170377769327637283935468275553919796012375214351066544302959649168768445675685591405576623135194033011098081427922719138788986623495427391844909173217939468610415531670230131965064589152788422139227857574438721310977866899230148114307952887981855745712587935566855456926034660630456928305365918902541740756454965170262593016025609448310203642804291907717759539226548077515124973738365523157964660652978998938150771290472798033025227564150403810069501134924991443096407458983613441676374439213031354476169982644871007321022138971435905572918745139847712473071721674325415102712098386512908184985974578560921222853295494405720196565923418279263894072399401602208812651721618051962168926841388903889743661263514866683147522224228085361418029214753469833780571015041924827329257647563348569311254597371621450322466898221525344032494158103216150241989276860061629994986258175819794369154293394761576803002802473810122939445169561655988091918750930152982845894893557338964679554789364696013939858755584177920472711561243597853103979086815838405876547510367411569552214651720391768252163294723178147307375870431355759706023738840686096452207433462649225436752775851314971736554230644148979131896050135470776939824643855871358217833800159450235926696642871991667001910670895379800501907256701743124520894086961596176923790553868870243421110307704488527412047198602998792346400135611311908948313375184105695597714796236636072039664786359236406277761622031627915760069034969362665835297712884626845171632218254991990168353587610286205866606008821253307684684652062905666108947792975599513855816147579262386756018638714104142586754849395524783221218234153993114276763547868796344841398166148672517155989747761118207319009088097731909854398621276440122199431356453839201933217849901080071741037918919382721556708547473133688771017013920017551395460020705654345024982137948586309437256186375199133326040723598014413343548224034193085968884239581451193659258981321805194672278132686635816974174805414509390130516781600279510245985198379425017416501881673010958572284288860796026683592121631634980393253801339806088887281632134777379706112693732687374217614128671909746282031271433127448562904808487865062954302822575871255670856879120045435066629363737264048197661364327188890635497233379715585913467926601672353899359370773627662324167309519310130097648356219205122547002496915243197668395773858610490774252023120790383264181344288982117877159687403289272037734160390551299047928569959501589185630801459437986900722241749540841451011406599503073983757009960254124417284635871809920396468922231576422053254364524645108301736675048986693632989769936999462252473937851332771729990900719502301626501407509649170291740062480429695622834039084083415977892840796133000272807451068225616606830534199964040593520139379655699842535804670592230846049057984918343431631789014513965322473414169602520213971910355227017945008997473140382521291810694669522699704093813365078836993331021355656160066060074563320666667407517034433320948712542875270094300732767950295581173750343038392251794446585677792691737393176028087315040408788492537831158368285307218220281018823837700120955459500906895565883252248359074187583702927703982769884776382561628709019676734870716981960115727913265419929299171299721232968490209916044853291262692787114306579750685089164532251544996446156257167266361782398851527376724320807690236750457994832872156756267200101891365145636882608520278067034333091047144107244639482891612185174647575123853262815795193307158668689856464225852717170522158465206796894750291231158052138264960297441401224751443990971336126824170000233789851935152931135383837816448047588334847696065991351933158830426367138423206124413258641714643802245951514989044129974103666013702510414288675215458894721694195915899181214692115250215734700261976722562713908025230923685030674046481473762949226569535434601615949150727343817026046939584829380914882005368722607986295577376304671846134021423033539386462103342708595794316775986664157972771543318836515611827723143169918443070873240968357539190427627154874800758312061903421010373122939272970994905629105885608797397127057934500049451608718555578829919248126675672937730612525542551204875898862762818204306079355734337143313488074983283363752570413899241293297213185930354541688647334452618997890686342412199235311808655286322909000659304852684201850596594384095253682410317213278837808950152725030592288517882484364107860584760455476967332166469358180911824961428687940522676151609763905000980362804730435789626226637685570062819603511291657940501116594068384062449017452762931783111717667472404897090930243775150427159562755541060663634781764712878105735136315012015420810718363516662249038105332213253044338430190608976190085132236385615718013111741986614493776461054997017015145359327795922004291122192461525703490143682949867340647745006137492012914363860417109678867064655678255897685649307949643039409079214511353274431292578232046186865461229061512121503280993947550616206777066447623878257912284136895697650002014971497410299849860963180741784504913788468050167110328806390299719096358773966317633481688782292711032736738871705778425436971200550562512532076589675509610208276583670006487991692026761168644543554751969201305541625208201649790509421347067358426851182089909898410317279136634936462925291291662837469345027496129804571316485261237394352943573024422781562660212847468550515554811013374225627065169310289859472957362855154103502454999961975305924587119810378517150005935499119619733753658371571530111422722221510633799468957686781061026395233309168337705510503936850771973200887586748004699333456982922256780033669253403858199678963512620149152016988810929017434025603027638914332989451784248114725448697639576230149786678685270868947239128194010889057375419904687888228635407723666185187668464810886850653807289614274000165013840132739499536126412585718615770808970853075175404448397018637211198342822195843194599145797549107573083914281757396024630813686909770672858759314439148679510100516791701764589047066762166422048304519603282722489127963099677093795155715619242601329406977948567958985109661759751835576499438517127396786134142487015428839000178029396776951875333148285182344996702551904334444308361608443230374853828058858865462211353403500908177025832416295676496501826611875535566733838695556099352006771238389206515103129587567276226204869778623236276831498484702702075887727216844585116194174019346885690414446426529967252912271136205628116477245789887534971005020135560662440127942964672695954423295984492206736992911994503709053411114534249116799738789366992180314853746631447947899617130587259603421886642028644853028604118276957108392797701739986388783335620311959881659505963331312965925954018587381205148899669647657774515032015579157171913999732672974288099603801785268880969912153812885704533361959224934206602229494759666266991515592318683167616615535653703042200485891826781420599017091605281644147899731528910647471254145252648278668443378322469622320361654426975326956364331779499610489606530075481378767869682171013498188045336587722612803421267101730279827784185266382901758185358087103977176049059383721962861130935854114819069303637783921843392519726443042729584405914474286214727845650739797908005868797170846667700191123520599477399923580013443875909068383557938930892554637106320173660960858782358665818037261641101569036386163816620069259593542203622154238500028841314925889912234748769746647698127974562338283741297216131251737976966649915347306507038960577703120580958387860730698545351591833020399812496717870984440401138070147981956040972543085541919035199564727291777498864959972416852369990893689029497273586439013529261574180915900859650751588346539446289999263546759193159475505579023682852125307694259462332285893960799826453848495479747380872451413099704837912712203582398528807117658750598800777076472876014178880788674989124667480719847014208901021882168585216489945493593868608437786788674200452440867649861242383928423181424552598583235534021655221840025950623653107337924048978981971208576125320320630825981396945874401739344931749141568092499835149714698689022946672190244776986495796016935641117896266498248171446675132030880363780417932575754402271071533968031405270415483694046472836830273175724061565445757153641973787211123414644489752996461480590731373963952916556055656919395042990563883946347148922098407186831841894667640138630923739394963596489738659104138607969205950221729017687234055287900655834825565542987923237958294578825024218086713610271020433191329146377503343668462689028116744968199301813063281146947025435934043773254065986058983876539575904192442244919147101635241746401642649844369420186403563680749656371038275805332078791813042207850862617451072499256878754325342859540412724473829987291603437334620676503980449446675043829274698155469234624773476883322709714749762664981209929558416896712544178898745502180193264733873883245865899596841784568068722018161806714625984468802600142348099497504609611222837124411422957900624394100597806463320047436850658275431276818861790819366883074476665118279246320892778743898112115698077963390713666802513920364202738317636000048378361213073335574614291744652495144822703966821375450632056693907817454376860595971022495160657184821337083940942888296989810171068392869819605090103971396893417668818587807944405909400338033831030619246731802761254995995133655676108895790478080248825325078410236758799995503163997004792499896228757314093138240919984009813291848307122751996092400808989411602598184093710587475936061949362127039478054244055501832920603859300043667601752811516246562617478285138772639249431435854976938686027628714355245580547121276292402238720148838071093876109075326567379259479789886681733655245708842928996214844650075396897612059928197013825557757990357403653021394397409109965065740400550488482016290319601998295270306404853697943992832579591926424364186566516718747105436467618441091973095930154813269656507496464303417713005597867701024747700042004065668397144424064018997608191511024141997594820087254613993331968599182025598249784509215100677295940575201943765462997811325495014178839052958166934278736782758802531775577238046638589302710391655535752586835815364873315405858713171466994460896678674358977704744227709893659560231328704066618517930691089571748423209446984480932451123562354216854100788840888806207184366855158276251305205008407643688957863496379018688543556264291049520305406561890046936583937778135696509320092404151731758486369826533759275270405929591221993347641687830120098051884995917368761406060731730364629498317240354985213861558010018858706739025180726278181062407611118379821054797651782417630515771769437203624866051844350507711443531098633158032371798815245082696388024284773230700569482419365552453661362322418212234624399388300037405516169344080800326600533075200788052332879701036137200642715822746827528169255842064296160564292141453196996569913807922895777041745414538349059364295988887123149548199489902348229896835951207295201002487080805429631246619322546006469382795881472408821105908191546584119165308750402748134688411470800609500885846939307867236811803705031150325843015823792506666580641906359340043362731340749010104750097245267122250627501499470905359236338719732766141827943213705340049032432994524303543879122940189765051696060083029697366299969435236487935826126680132104430529028313262206295642848859831440901526123245623543312802164033570643969998481005675699420707852939684286379498308970550796669209755857303203690939695742480620531431425111557914935235703315621747798485150958264504854839178484084287186433532240915142397957836535843130429570805824583534410276490490977131619477845806092951934226695521643895941647022212686856828852998606313316572334083608573878719111840000417429769293615150370941659168836813797900958129903962077973774267714574555782364327622260781993823503056187369132421490403238216729585223969939123469920008629239271911656464573039152970425485733560825114218428396554038378862874792350214334434159231220153391923671059507005134115451616613989732130700234915014208518426632719415030808310366481926587695835568936036528131368312517634233239693628157790927941132844865386978529386699625724454997872803727300176558981035230271695622928847210389403665001150731550166298040481096246687017189980353478676171552470711575049889361804279007939306048366748334479735583159117844880878784065365155467580331993188875363105957399916416822274071531084354268594772148924439372481822102482591677392073856192374399879147053467663777165846945453920148629677742048943807161560818185881354761826051778201291178321178914100867091226716826691400084121418281730347714931872188133691432915633780611413448891424368388968390458559036516756147512201334208485580191901700155198216950325389610808434662704809596283744201096403629848569765016556301465091800502010908499723008037231138127535800509076993149751995112526835042310055029491727257152832211264433286734176777091898846589117639666538802952041541467635270304051597749650134710902675815510511296641386314429079983273829647251796535302020877990130720242598036394016203924592540159161821403144450723881483318062948557455839247966626504139232468462106542015005424662422124798305746467991259434602724456427183501772319050068839873380634355199064201513567232269786941078047079929917486194731868780179770080336943934410249926021952911211642396814463814534350640504363991375039258212301060420119805401404188961482615563135136162192935517060451695160153572702520639743841121246060096940744561417121599358109616224211196180873059127901430128344256047481708666341392553021276948014804910251374479900966574685224674546177212432329396367334415367937844574347795355700680034209036034958644782724351348306384542009121877513282784862214336197561337414345541673457357367993525765370365916140112063431026571519748821490849482124833327049319512944217860908327001162758303711410000986011633407334418811638115371740401191920810274321237457846057759943985825724434319878211025036748511656943366542477663162548750368026276992109584148136933786544850666395631916757734468618561523558662354243122209087166659255035380863794514238173918964181190825946686382355810958858515092581021852158966546652673369380536972873355432446738430078018727578303421230391295111243702379905743347937266852399054981107539342752562859238001558066680571830905043818101461688340824801134459216085053534005284880516868713616481664995810138987945883009079133504081348131269062963333701185621035714328378376337853835227237393791863717249442880662896344733309305526311674018713844410598603270798811957773870545584941143804393442083554784984034098997287691047608050999209161803206650797541672492188409953373123754195503454144275333774731279225388128662361857975384629883105612635866249235126953823477113499955926354346617991794412680607620299484799039065804121789487067604573810055317873541341527458163381542610144184545364103318693256262512766263674847872661198542593364567327384571014232089803571157396876461412298472699025875562645138225340583473439938932641107662968872511505020399217821870096528497804449428982041860217279464192286064855149796187927929268734308586604105192638490023085512589069699078633759219216753952967384508542461573883751954279454121755246836196470776627550149003046061867027572836951430583053621948441278510395613410240295389027776496740894721125528289610171713073560390122760877248956103226705818571892291588850189543596014286209121102134932326007381198364536469260743084717614710829660037704284993208427998930122238608482990878627513487757043565113089553757627759262546643317319347358135709694049387865096113227094546722166444738648087245585746388661397642534741815174829025124802412389331444795722096688852492382586509526605165275191734789102561840414703520239071149110534735956899135577935842175398171571473903196769590412504790755487085839495210931441484771886562217197709873965591004471536463836845938862296186616907994963617773170225618577931345411495465244960327621759456195298491890693139642725095751474946716077257670713526678498749746522395529183789015544178311488396372857077942251623448804530233680492290488257582135747107831734480541530455239643638839984878979926997912919490783155653426578606540880224121832719451534789706967535112608470190610297065202362051070486672053695461051234380477708979011732253395561569762463797964642816906517843851867661555238462339664896782085307126014737524349371554771961317687982047367633221058705713860990252391436063518442882821369843019800893016150849631499636157846731913301879738472528406003031734474930674785981817633022183182827458060105762658214931691611094365474304333050007001516315571664718502522308802410945901628446735099479224517243494050370310753648438163790703294833650478946059343812453817271290016402620279247285283984664289155645333005065862448382814428052549640002675816278508232509039944560929064971732464944260953927992559549245606494073073610307146781933021022626774655463673783070244447314441952140033525128856036606257045203311238971677508689061498009531737804695559843879681274928897589837768344739857408173530989963524411945391644379030252736691698873956164400066316411379155256270954032747494684341887896790884930105199025616671979693559610169555030086330874477746379943703151451186963376284952469154645159052088662202158830018255608158219812466477938347996559913805320977542608699680783198715339670505615255369617668491873860982348030749341394474336639092899748978941216146041437164051593844511127752973348482026645276633333328587962305353354499302759785795396776429764535403163580338398953570171045657697325079051443420285276296181301391895517471893235529492407558587124441681081732275743669096204975615487476836220919424781300883031368890039865922599848525034810526940014102840499830833613114021227109183688498495746758393453757080328290376278290717887461534695383277118113293617134223230935123383327911658379203710119501503791148475659874538009304417847939246532921216110939433447256217204120268594425511138729386286015736663272594107190623143242740701833244958470508396955451658117136698755445482654649600401523968191802707336452215807242735281705128269132315943990925047041601204823534780057806148445844838161043685277116039341397496880914366812493100287364173437882469424019494885438522351699789179386164396480831692554275154575338246725565139134619048934214881100609785881225475342801121148308436867118517156066354167722223145294409873917814876603382900395640493949452989723716597528650084194489521979467915810676926601293286317751871227913027587358061655951840272506295770163212738337239804344546385773103342370133799292653578312319006738570404570998874234824843290495316811155213452999301312925087682760057528184634347756505849718155547375730434780552960539422446559568099715256952189460488887956648295976882112181505794010930124688559302517767394811629398902423316951455274558109610854604825928156021418946066498963763302264564079278344637156329364332203506521865619654683687822231514891261119059419667955764251780376063460991212053498450724937973184309420503248720124668412832069187977244055103829811165420886641837041465237463077147137504395622610764598471275047159426410347768379575472581904960981093654923205291467667349097070086474257482595782850450121748475444717263622028014370128681841160194815896727427353837900600522187191104808128987408378673366136193892308464819611201081346329428979347249513528514455439238238979188661279637846851941410807061605944622371853957494991990347557223500227238628333185738063299367156108268396531178822147680156260602915053416895291106003918087505880812114044345573216423383845900501044880885911271778382090337505865712286745043328003199643028222597259230011016714832860433014334799601922856652776207481246674420107447377608375385172901910630153455817356018739460951093840135672326368715962472780819842895804407727254837560088197021092224488938872286618476984711994292641892191409877152970904205310763393169997866333866165531933515633689096272123296694471189147946650355376415086631360564583418896520305724203609652607992153840840829260254579349672286242878328280648852944544001242487628026039601279655485447214838026586324232877457553408151331546223223321583595679142937951548664362390072382817975528415932229951052044781214428781512388312633238989239376487541111584107978005984088233387190816632079282771434861393863592956872956821251215930206985288849198583102818227978599226100039565504498868316124148394323306072690799406631804765089543559429085747782799282236961365643489195313281572004640338509258189431615731523815191456528080209038133110496460825404744751838965996014366318230952078046610227798500526985557937913006222570379325892293050718346066547207981159094314511473929876465758446840505864971055945057053399828256249954720684508572758953647385624165316747135615950313997802424626144296914919167802370532392654516743601062471487258757857627307919411072389715393219569598813573824944640894644382108034947845736590569515994999541580137978223037422652949052126289011264291639949081785860020981711044700739902202552848934252235167463100205450519680184991568106280552082115259975233773513009299429735775999717342719498483703383280753430098661611360181384796662088455522750689780794489289023259100063942380761671617242877819120696630745423184610859178432025828129228319021323730553685070989894533134830386950753233018201610260657348893708955943462275439850571051696179859353966051341365744754523767513062682420581611519883523162785275455464751401686235126029454612808885853504173344081137066039701500868072803963050034400116954892359587379905465901640461624369331542920140864110450611888198044383695349586407572713654337545991073730540997866018235549363781706163192814046930602516319619538366796315971475413700995817807427901372844277421269341212664653223015780995549137423806540443443168738429495110151390463106507166376548122480713745203903641888827669056737310464755818994418440278803786570617462167066318213214757125194913782878962173204270416305890749444250537407573880354648145266125140893094672862823659573880794052155624483123179023921855994497077948647364127308950606399909265229845753090192974822728391066270373882791151546386942560027690336836367247587873831407280679918215746699837130714800085966681000302762596850757413596086769015859935151814010999996267145902869012550084525334245847082902476028188303480211347034471205406714429598298852670256613495142706773571458775487220431683093219132894411884292998541822834280416731469173030710742990104075379147136393268745744601362154401941987171703867997240911345053119104506732441242171089007106751960748032037115019154834863599545536574073754272282345730993192130959492401836594802038307759431983641674501528562775228749927133476701021465524868912665017329929569842743447720787441343790081588129653506659822358238303456024354804355867027822742937455554190125962818073716752805958193670739029628012363517828821527144253158091061103528847140167551293438577435290422306924314099022698596073559903347611632681612524200285310065159052163493419656804715603795114760296843814317955069746183933012566516697525699743151094921334126909942747488754069291644537083154990844183682867783061982333746409640808563291183090885464385130822447102237390935545246144038371462845967695771187608711152164259596248436922716919616466128606578167630435787030736828774128968779017892610474182883231693101931789318190077172758447414093546512089170312952243512063670415996667914252990773341843865613953998691210796297667442056296580674345504616278197764018165787819067426155506790760507893759884824892656313231107975564899958231129689847000439004476953131279789017667710625470829166528538615205807097780306646125454853207737190323775174978227931450262252880194056350288951943338842106115035058906956195180769150408989039635689781111211294766176482413310581106814830468030544281465858827348181016445765131151750776764312625754474064524342416058113972836250379652960409251559262388893603435390804790340641865005795887964211393891332810405451468257348265261410066378728645561812036438050505013377463191511272078764810821986373566452934091099402261240246092972149847014303597226530091607185030914933704654418211984812522212694146298650845327879703572372785524430895980835198559474379533708747990424082986397321306924340512570322766096353850661116285058315574797527636255084639781947653717415040478381920696581862780638349765370508505470735848105998249206742389155781314973353291507801723061819047244255594210689940009275479127716980491942328470821004356966988716012526817005044236283697399904261722087943873289233522651534091730411720777141816213388397478444489217591692975005434678285261515599861868325336321911231093098115931463540913546794416847527581917391075220078361293239231234035802679027148303058262233273439175727623313484664453192597228156882345023230438885294513282714918376384845256775245242057020286122521864420607127516726969122558623320990654668965349418186856786755527858816251743140264078083005357375344362119670248709760580153073749470489056079026064535725456013269944858141593303794159599757753304909967518825311337612596753254564573543145030021996688020659046882040757517363183779192491975993597615399962187645591455693113191543613974388474786756949060432486583602693908322230261900495003173501117448558498171603307418719859798291107767529358332681216541041956890174077721308060022064395389252472959611022766786078685070593040477582784779602508187603424030387137323407329148644019375905877095327656047839028288019481518455029642657238023012585482382511970798652853502659849252194750986597525877538986640856465941046375873408125415892632078186154254646884808049415958173802034955320479952597433631411649741817058501318823339922427309145719968856015565085191009162245835927764346350449128881450767153214710507842339766062484126091893381861148986819784711503081786587981239559184934322272055276020416055448108111525261287655645893689658792050034397236738917566585535497347271559002179059985113120834438081479207488302298194708818654421438569950051276684360647996571174700262895673406127959383774639089830808531970394508876092289990300670080538960350705151446756896764246342304673058962733728246778534274023711009290343396275038190143713082098652100499365490136899856764854518342308394557763666508303376446982949851019964714633386092090716905751594213070931954802504480432499261955755187056119586848684468368168671679870608278504756728170377149132027515513029177742450017753220611999386513634517388250173669499335584326087629932531953896833184628945592631803842306268108725645258210155194548701073812146563054946185845992960787978851178022040578790564045025981976425204277166496765071331525805712720398837911313819953029453539453473822900749441890515821521622846111526089989443194683164038699894386821799417010654941259146480647665735134064728526025422953471537010613830685389461010157274032063818253928253214748515083776970652399658584635281735756559578830161506306079155097459346614533443572448558920087273764205001056700936770442035285572540539666516246687793480734185480389028033904994452671321069927925690270105858751276137899520821167889505787219218997854207161127863582399850316576686750236989174501992369660932845973148144594310814026652403459097916008003892230619310352439429517992970203568157513125063639644760496378491907736916104907137945033229232406825991590959767831187989338801389657914876329151633560580526183488773927731091019386530151707530565738351321517582873467762427390073845667709801386099295724642003101637841523101600033726905551913251066745585447501910737128981529994077009262018607002962797972243226525682276256202012524729287895801432485668988396930609138565640572096291139180656385283015241068525764730951702961722464643344114487291579862454759934107926920941298779310484644099621094062562794249719002135716918395084838642523889337922438622907870248474712090459546233453868678132586970653777224223807890614729445924874989176797873432854069097108281950203291876562173355796820017229290819549070408880876211511254079347885360997111783533501018093363279597112663325680892290480656559027993595369841832351093727286826930366627420347784735163515517388085222699364617308523126039251977466636848226358826362476915020494872248256415063865456071034250828820125222574569547662172812692430755617472146357307428815604971945698374146616518391200281868989587028216030365616940015283472141712067180931726352806920981812146117498572247546283267971686492752971888763651545813375605837186335732136390942022662487904497451264457331724214658203656045489894024727070160774429549489953427321372850568637929071672317594460372928699214435643681914622966680200376414658493434947578294952343823830645542871311309939717648038053964078279957026139343926425666035741505012132473764424300399941736217739396722359867108202548357628151863139136770365874524823164668988384350596627307231842422060588133767990537693159949085320217003100640627506806919042493928244707936747375748271857673283282936891946948473888246955960560025109715251002959232022999709719020100489150130860178587076053903551606156860420433050822934156130318769157628417556531534946666908592736135356563388823481915925876500916705159675227920777226153978400086611288068689899379331480353179227738392158041861992985719040975976872196295959333189429600750361116111912909040760141652805177621277832599898505475668238436377789070461798898563564344367054145758166413548300704259874107585772037982096276026950363717584161621574707996548258152239328871903542896173641630196345088513083360131172811399495209546495278576101441013529290680000676587797708719469571559658984645045211483786305851175060454788589950997113112848988464560100896546878505512858364741695816557450979901849359875948940963082415791778315133082103215729796593158214793991186042609485137428169008804650853886387781859375152038935291445243743707048468994462836172338801939689075754207430580832779365629433957719649622148676836910110964797306477672435151691437104139641430966938125881027029418698459991835624921695434349280116397845271067518631993124351081710573783104472822307801063599826925648518959604173474643653809145049507391289954337333775723128041134661065664208823961042676187248612614918562788131585061699257129847384992362907812333933052183632919706845803446063627186154678349007403506510214174465486161856068011845611538075348987452635122016720822508151954142043725335811028233589745522895322329292114484613389135267759135465719357981072483936619799178852011702083632069908751279061999610384497181246632166768259818054895552683465885294201802883220168958918159435019241771971566025494983577728649524462340076767386743142418260126379903276910641989823424898023451397049653159418740527068035818812606029355512334417388783340710838091687160826943464692946342521459879298002604846588541749170338433964281977045963157978859798328117665235693313112530858735759365587019906678491698933602233936307961201687999890295898596082978451450706550755083444043870678573898113783459195609960768757929118233152974626671003523430666331049053397917795237280463599369804785474792022961165827177170167945113207934075269901994764612261342660363056739256440948545928982958743754631074030045268612831833708084096104369723509654402304694566863901604474782464291123333621054810757720014716826907391179284032024830762797074571934324027114399394422775886327438759582764370743260287401464573068517550297453289219464415968301459096105046653332316880083451862393363633448319886330454901419195738123717466264847023008100621253392708753307252719037826273661199512721223474510145182183694909681315678422006286437888593833187556036425510797272498741584061255534151124824609437944787613035484355231273854517466782521687340269921359005565748458771908068222875121782723174321626363821067773783803674846030247015096521658680568026118741030116412144042564783032242319747291872327349909301253907373571018525452277932103003168953148191201901115178325665834683169355348992948865251952356831845144111932078736546950639987210917229334545652276041496813879253567617377547876450021258011932003139236062275294924145482717071237225233424342390770622197534537898728758235568698116339263950825566683386566009134485049238004243066316531030125745113107462579432423809269069473158150321641221791964775202747581927689416810755660185648620050618637143285895534020275137544804057065802499377138037227064699413293573714117011619725650765176289335533311268784145252934296097649432976840913811256921935313792166223394490693286773689810728762177953346505680943795734641825702420562009194205924364412780328796739854422392450819943079744430919125213697360916496677972230458271763218137523305879399813903533989504923096143682804215284495031524613584976175929260279697366488366024483101375490913731185591901059940625016262513677384817504831976113345475801752255745202005123512078819275818376622897260086835475204969324433843238302045753419913140998205703113906794886043529040342033067541642023857855570770886682980211609166725846322654067487116410465653995322122488113545019243294287162348460667916829780726448647279330534592632037318521224381144591475040789367063155659173232458444476888027366868301545403467811925651647729311397852220010345534675555727814610133039379153358376905295343884342403865432909741546344293161023335004366519211830725424764524235546732983184743609905967833163401319918299895564977957659962127814472672477616936294611294877918802834730436239332712048716169117662403721795495128261407337082175698707043885287307323816819956027777534101492453862877026934563638937290170414928149001728916057152785733798320622024489823257336979074160423100409533854149884753012003865620064353464753556925039290652826449738767590068892344069574250757140323318137841040436154495202266645211078580848664839996266049673970161484679700086101079136669405380886938149355753696725120157811125998757325496706700093604486870661362511887423845883357907260344203018905436249193746831341961006185483617473199780952826310563768138103546290519664855846584400429936798849352448645269258269109629539130643115529005754047220984288285554141901454085793198200215113919723389993899951437045526006026837338180597827130157571276938345125520262074156945767780727788685295984604607818197607770783315425988619604125440518506078042133244103180921393061762928764044058194809977457503388578107809788614724765103325183086615331486048397314872076231151973386345984920720188069375918537677562470106914563014272868473959637041791768204540480729126344611742837993014209992444581584384132942108722849405833459572567506391713540650642294183611348203879356588717350524412873199106513561514741134015859428642307548121262949835730158515106831578235233708755526606769546798367382000334670742810607367127484561254571795023044824486048409289632771433156376188489590127647609236782993060440966397966323327593654031525470558710352161954276224932929322071240951979758861896864512836530575286205928599934061547520609438393465274508727434120476453872336833769861285370716132581677810308433334500212110334686372947001086803289534894031790427457952868706263530153242644980627942887024439422945328354237024059626961486392617083304553218367722036168631028923857365912043901843690611641400323326584858282079665141849103318912377069232785628659876561575176838386488837541735808269003636365486528296261939157119980628577083195177634739203617542137868851100303576933311369206642883587899396011856570430122270326162975153090398957933226507926156253697623713356735611229010856570304577975748581894333259275043924135673463334327058620558917758519596098763466652447787472316613676151886913436530166953149081723897335290325196758821669394538937564716308585013549267937496685438458233437924531290367625875646715687832636533250335379070680777731226263920041268149981403268469921276963409853946351143753498295678621987224254167992519160548201208415361551072226945925896965053573213400350781232892520911690487336784308830607262621313221522299197902512032265303066957801564660685749339305237174589474831834724313406223695905422092268736873791300576896118574487429875801489246319032112344074310701108101724439775684971624713264832379852867944159729608931343479713961274825268416104537604544197160196547240058887384512966460207606999647767989428360927073669108278630980845128748326722808185514041855304819982807054252861962788985621346453040090496260497351965861048726384641483530320319719835361744012562160300769452991815968262388423696700475914418924021946829674296709144771007821840245806125173407832628736366313436738249256855757119175244520784159938818183720022472170436685243241133682117587646271931031017580183318519176860701520032820933294497112080200064527193221203251490635971801935906403959773312184652157766084148453042221618392105631950416131658151699500143079583260704125073009774503086286440521186750729974058951314254618327536691623046932600096758714371988429254831882146120493403983130037901213404903497532490221577277327997125771862620627259696063360020756285496886142682145962592513688636403529354256424199716209285476592774554647061878797398168282976380087610723830206398750210424860313560476350579439410149760296543900807807727039833985974796765352940420249687510518776527361704168892118679251990847451583587527876671369104224504758192689031388555664415543373177244658807595117627763952506747480991151002133290541934468219792894445239233402595486669734792072214600617352125394518093864244886748468673405852909736884872943671406731076720063173746329182433640196403196634447551801635141136893441207598852367508174982927158167337303420045155946995245662369655720521373837961445709691533089557444554511946461970981996845685405530214527823908114765498852344578251977534682734977063131075250986458056087125281267840212949073827219480618465125917141288257608950928535952480583822946724161209359804130926024280827696328922279833395405734671822613507717022857656924752926352274715018386699592882157031432898117952443578599450590624637068662331073694168567907284526512994680966292341757198915739005455318685528240944135143384719077103464482211422344304497086278553558913383515406447339294013251964280490060823206624851212822582585260372783516073018334813274318316961711468015932770128044338642082987352797458028177450638977264003184697227346408424061044511734875813084634603388945276958044123120134909623420075359552408482080339490842749911994350518015007360132971200026299522299106342834698803182677600139507198646791091746832556585490515363782374076627843708923001584629968357092387046360302082824317693558789402719878155090920295049432544888814048077292641225774160496450809179218544222094853922499103029214785090315624775115837834839655089551739080453714982791218350823298256804240741436189523113962201400482216911417356218897772938401294627002489891787184671912632576553528167486424094562292098647593303632989800978626305630436964349563900714557620596276523672856666839794585149599129689780799365939498627249951334619040532110360660962112479170150659486032556011967436238192041137902942321193401272141784292864616934053467856251326188282077932013010464432132132994555689006263041536557321434042410888748343205606323071298673800655736777893213286404324530502267396118235062303122439275568036864404172757340014546874537154031682666014677176184742116669777476448873044403074413726405443207371339734486992304527750947546550539348291251936533369540797450554174555459152194728814025542861610563776773432899265526733611820063700296799666145752009364294831880966386913861276615973727670244995245129747414954015372529251690385167488226893910025719966488623101322944810446733960473015200365884418627886124681838778394907608809260576182494875742439157420679409561296859826554546696266599818334001986242019153730624617440495317699339419247961514076713282471907856571945926784325193336056899755182618318130150591369311848862673900699133998043168046543522474796135015667739877642193116133338946916498234278745420346563348173350595630567566206038859127880512798618137333180067508106339592067651505984437783172680518248489102640299412763457498549979615400709510145460243605009478388736254828556283080290408865415647744969571103098578454580982100433439960400741369561598836890734505178113118037824552725628705849262637435388387063838426938364780966254551379711468180035828851385389068796914953129597144637138976279193867506871310979415591457602514491398556282210166058581125093970379718468076834876984556876083608356153593901132041460690033712527366439645140225263405720350938462464055389822630541008484773908104947003971375355582661646478234826746726466368398632048521216219061776639378763404325134579526730775657621555550345766978967734587028768154807788374286045695154760106142959495923052955362290765423794025402865975431079373297530930277764641241133722971723425540276601403560594090377121752709638839991220604086451917365969353326941544199742511237298713491689732022335417573073962444669923698474873754307060533485957622903234633577625651320808073211070069337618242372001008773585527590394427975413621351648743649551314499718259463857297797152077674956057612699184385472547172786347564937916663239201734750263618215903397463144033981859247126126739597078541761880657378383652171538990689950773263607881948015722216098256733509021237513092687429784617142464769343815855536986215844472911373170473055329573029354180918031180645822269457148633865160958144127753755235389837652360227958376161902161592441193809469478150561452801886737908856088226211757479252277376627729969388869995293782402076209580574387335759981316349306337240616498342454825058665263402638888786729978500056853038019423465421971911918421091757712973642869101228778040355920937403341936829049552508495348187037285046873670505373107989805802751809307849463876210257683424160670793586921101017091260436530455440826435620963466180864862613371580772750084861455786045667610791857268325371252392614125783846934366383955418835120915001161954110771678688810817252599994949382159505479328527057972091860319345846126180822788916222202770029424380113414980275516769152754767531942900555314149141870840575006588986890261435379651653601270261001992287546800835040389318311438923657354221928552744713572407582646805141912836166751750142696446564833315731020910517933906944130034286687096776998618667598616408929388853714349744306216822500081512735690846906072709037840982703846527529112812585361865229704588148928789527783321368799826660042132114086265013055191574701048724388420605384275833637057780743191999225528623176431004356126905749845879173174116906362296136067009140539242464886384875459249571107296698553927467127661941269212040156638450691595829015220333749935895511059075764478542801691201680561686733818813420037992212934341307473058254864500695411901220296955118213232193325945513075108970989385297798436902236741811393921620412715494193083062396950598679422356181658355217813291219562065300947128079405784078573663123736290087073832039978176169830620444861003948349734763062621182547235811898057354930594609145324720185340568544936549489360845057052298420769105977488242553719338848069343384462629377381985841902716916057187594862340539050452528029561249573303944885263889149160372381440089563215817822004032828169154410874775283142848184727456749647888627158877428855040843183391851001865453759717781723589567559517274274051648398624216006750391870719341928200095011308452296919723499065065902112080395791652475252257792037886490924912146834198538905767511195425737051980214784435246589002427646414176538465496912538507536225373567719345597972386495480794940821660132129503361197241075772902135558244982575742892857611424700628805699300887094097457663035173485062262772987205989181338418771166470128449218014207685329177959763807939730786828542955446432906438304280245250519210471180174187124037375859447328363015667157895886088196533884858530890598499362325714950671608616337717660535448038005653631740588510683859410126544778871974225469715774494651125759528855521267089347378508604746869787377099319080695446618896765014700995573643260684429941842269261004401485685880031815646697073440285958674401386094772852457633629765808743895479328531128150636208364000703577561324269758757604766325159103196082559370848626202928841090001667653829417024790709857885940219425833565813487163705679976886137271220845604806778979636835653618545055479528331084490548899340668858431269033780742416751488422503974512595739088137039688820111815249339838696976765046789259665675733260809443016953010827867207180067694805209755632966545591158067527140128608159260812337376365677367848527764597294634527970375686458791100365423553952680890036677851909385306882268758976387610720850682150483609593667250388506061288336625057423356851017538833955594560328642711689830185908795395802194155156657243024506528730735804359025596045452852339863825925546781610748180984145268111789239444803119836544830456805667736417231489417564265859143960171865464294076680602810412707908414489234047224579760679184604250237625972573877573581426994258740530334047571521669463438406487287217612653410329585979318069236808093316269677123881883895189762758780110684555607835469994370099238425258810926615460702665068711441529802167571158539384548279215057859130369989448214699306600387166715970361354320433826988203632204013906861711705447288815918672445922440362783894955212633713083732843297764731916520124578572812502449715360983445537764292096726991046283032298773511261360400617452122209271750581629322797926936660453125859642514736929762832255588142141162838585852920855521736036667757067668015704561815751712388444423733202534327921213077709813709965144519869810776509694430201931785245104027950703769001290752944830811174024268439003233143433530865002754780416953043453935198229938403776721523738081437669238259137323686829846646774656797101528165438431856793406219461822115592953762888900807456493119349631876162098092647937083704902305741503708695180640911010952693730046939145216460327948906722706836569034351067970612412535256565830141933362621069891045590850401869129328547373368132355397211477179722979729333339061620203291534046423965404685810232937693072591698408193710906227039887099475823279030342995476019982760330623311373321943850721298670954990651249611255915652623198264277667130408202160518177911979328588533106778828061121745696822721521192648414366349302338973185486794914850057730819811273113802753526649043198568072467481970923228498257650178854294463263678370130149294795164711179900799671224453267795656335284155591593598531040207019431378021373107418361472212644178538439166654306410768908891609939843611290907028904533316739994866912954282557277924269814728815661359692596563524949600057727191764009664131905150415417204535611090448190666118345690009459728944411054722958953359373941310561805462330336970428975600415089661802577444684750033370128323157124801910393744882746321179452228146311874219324649118262747937589703754787157170854615643483142189780238782753095673055869083547961888463718643950693320632815357469219212845326634652474486530077861280664535937480104519451149574638297265758372016790865786821172818059952600433508046042944041438807922427744796317095714224534772810510864529478265203580145082741154897692248050903951343586437318526688928599358410300820906028284560726898233463035404711700401182175319316767481915107830276004674924675367253637816136311952937476461432663023891005501530768235107516417780215907546630358384964147169606688391478689049862830011252921151541732232414643356919786164800065586424354196406181471685434670581761858056451540891624135359261766684423923371450991963324259030925045459760712038671146451140445371488259167774521769757304187827918345078462569718509241477772894876106949973048834897610673940519991392661350302488035507225162300106367747499910214645694630764109934710717780466010121227224522320409122316432863063864952263799887938606287320135837196480809002120609385265507785663753431558614705640184921735548552322839562968423633837728192748565645099542736084480063466892955222281620226316551481566232564473439833507054134076741505058837647213833605875368609238606099862559964353352007604493720079785811815581207246782799029870309248273082216567775075094377844308559557194754668489615480661589905031365384892597763555486804905114492338433199346320841574233363266657364017348176731621081852459852701663691855716936291284242346095824988504479764013119299916210861040286175256136941484029106351060725282253820167763194931887917518725423419159253276818860029385848921194841316246810494355458191311499448174846663583445759792045989913299815920040544157786618487781034245666950141649552625208474492535238257437783325669944354134369787892308938839839661166261700386527120105932178391979601065083490021700798299507265769124755264671470548519866441995853971691209618474567215990939335521376350861550281078048467139453673825882970391798540813380157147423878828316058781372772433081273637353020045319509793635909477973714418810223332130551435279591000524112792170460173152359548436203089167048445230226390975367844837272190049265437971687560765353725141464185724402570326332535483961958639006828064960475123979678109766697959369152653037102249206926903923090124777964508668350173189387496027238003890427518504588105424389333071050800442639885668154016066471535257490031677065834937642696884753355911113228221379133355864730140611772034799316396156694833287599929181068116507779643272871088042700784979742767426567870837811865486960506270717974004857911552042139743430551477094963628927582513742303770743464378797333738496433713334837879921378301415760064395130888072810929253995687803484163262661108801482975976284894573247547274264064743333576808922907792411250822846594510819076282990128649172244333939994247627452668821117322988988249708586121142291695696292523153698069266845860871791258567324600097759799721280676002877070750632704312380519691147129969449151082157397165423782715197531902003050713064819375631848154266552139290801526871295636304083052697553265837031710589022076374357344508676699024059264737198705973144099627136326991451203462798197003672772737827588821629157049077912504683492187172113842326240769840296854097283673353971920235361101108862398943177018559680078605576034169670844823810300479423386371557397440232244845661978495181167840873453045720703559538433692679374704744516000346791037881482777085191566318235715104607249957696197090085524853192099136229522417440804539970388912821815939885482671823562756254065370576413424680395551942078423632358374541482915202333460778278199698320912487697774533663996819628223193164623881262259520835237400214110289353360426015535080190283533158306722740889173184701177517734149003176099983109792557742130366902514282278799604285523957976416971865199245135714006552062980924147376508785648226508514089698380197517781634142881189455012551734125796219280365535168934530532899933780120674932528583005025487239593735456765555490732860215800464750028771784312711212079411691989457291044041823415096279755466217577492103683908212123771765573246464379599851226857408433688621827938894906134419880676767377384163267924603392336158853836667501272017457051228286596409280184822868309044535838856656136423630548423232798884089450785455949021066586428745865502885950356499247584593828310865910601918837845908704851484797407358163017415349638225697274877251558530220492622254353888672098824131241722573054347455208280067689534363564362854859092960578958380457740953248185695004589500322705419098778316083352393524051305098244126943104785085267825026743504196392741111800853344647252098975769987224526179927896832853316095420291255346531790128034713078062808128855146977407127113274996171505963661048390577790658938462899391258874738626284164567323545012358104077876075299336399472834352123486765516394492710234381501376443892567819465352004830892922981734908284973067591822602479312507357343473265447605275956110389323559499650314751359152245473282003283284340175455151910249589721226503032111082715690028433314366647179034556687394723552916830681593733580443362376694233910869325191552395623498281340666894276412639136373574849383375601236423134367170029264168929225715689036194610747785307105582521697527813868717266968711220088615562900133712284921469781561566440542756681954430786696164441782252804881976801060737138009407938496020229541246486206259461021399244715866249119090545295847955238046958631844465097610009925819142117397410343685192844533844051545967321292244517464471212603308944213092006243462828319745153026425630555808350628534197104423540627904311924772397438042844204408267408562796092214082686809210324386729002791507504355132886443950575777796747966593591853325155330574382587625879966266551802747301549654321029968411210964541653083177422440212046717951139578592973446108488400212544505286818428523892860910757998798485965935745041768615245644711098017116753679945910922639909076626766342034882024369317925465010480243104183353284035347702566811714266555383653104752176943990976894829152613605277133839734466757213632759705090424253467795191567777583481872987430365808921196828790337518201876999923002632752724261108887143431113656671540001993383452270563953285372668420474150038518061404182520743433105443630109196227830608460735045402696535570382184961705377518532034678943831994861760093656694012242459941460173157105378529703136663798925406400280785696890202727040121524142296737859667153294838792225101503108555124808641926586366842922771493928353531528082109202143554901960117549696385931817754977220636517838971034707637918725381514950170369029832278129899718556607897997524104406921109396818465690243842524922654097830390546473585698448785869945482356768522294143428472771271517524168983537136271247842442080073173206399077497055748079292785699328085333212751906635334939168404716879578126359562999685993612209528108762147478639255348094892077874241482417751522292500108091718446663982988798612293610458155445317734880757659403946332798075128362565422441300404765845009905028351754412884636135386020521144886318833196498485693060088375273512459485439527238904967041195640403303623298214665896129864835301590201973572229877101016634472341274457415870711140837397764706172110067485066681928569645476957620945066770486866530195969215667829746746884090302063687483641597410611105966238965521233260959213446422066215555288909968633909132334828516772524882740138235061137259027316426449482877934509252171167954609047432206784111495629785125068822297718255732643955228710162114016873506003278892923623187303114021394397226636222913850414871048875742667760814722945498368074141120092254462903168430899507147538491122639257720917976885829384430785892759591266551424095971754692681789088538640651125146901082342504873167753358866428154198906924417385778558195150608733331134151004275945916933805115396485011883755957139882874346795529101402527533828637624575402763274442108234496518070951545253754288139001916693383968075536237938704089287821292933697200016372685663171340784211555908464302748932268055326967244775099942340133718372967424722435646134105435105707423074011248086754405266119097951082381661273318060551041554639992626760359379200142631532806910212151532634193635950328736140665430600041855591907333470385783045930860816370634441225459587295149907698889364580560849490704057441978405660511510729344643089343731544648506242093283368108440455133671210063293603360530043762223353614031421139698330920614418267754019713466584428620365845467086129074049735681500957389140631233402747554268017183576380165805369691874245484564435112055414161345232218121375768420339115589557042116312860048976048821722199700382203254149146756094778381467155919156459979137069262305504638324660054273936232261078438409538904845747154936170317803430863615818189474626819080138096893231481231668480929817114966708782430033249100423879432685180842879706675769232832393567210977375695310715690509942586294635217546854823290854682975618464855236651299293921593508888875315423630567771705981230218605874259717831526878391632101422702993187706376105321854124789179651507356552696058216800017942504030414171244073874828261536422366017156098008013300766188547949196662675059067944895052032210575626581205365773150045684723815368597804024842565511236384191205877605050147799943632261786865465076650585733578431148874098938094330606650713775301928337960821382329724320092753476238955397832758770577627892978809403985280251660121684667229063409812570582045831226977344053662243795899792396969756959881468039446729842292994515924870213295478435408248160491124284780293381138406430601709119295243389651890941471135086643474597196088143857639837577696110131239487974190036955515874194933234485608041480995297164254965200856050393741774661966719203045704360980059842139434270584931885995209599520977505283936809347729192727257406920967394944921623202379814445669561215618123735046435306564201498680087384537377647064957987558193707937248618006241921283180834555412550686214090972713574786863293534549977649592948164778560430386337748806818820333055331283308910274026788268049942716984224457683668828032695281557412355727217750782971941229265692462129839907423856338285678617721739408987905537350476888012887325807689035831987046229480987110566535285187858127403847074496622713312491682339153535670279421794769678113679803899569308767231172133047978732641659788829747050449145352005693073992840404691249234956097205459579726956390976879113238087186075229550606140345721355231563815832074447336368491547140194391535871807812068438452491958532542828602294064197702807124790156007573322558962852345678826120607199879274709454727224149165155638676497394085037533037086693632758263319110483959895319477114568450002655563590855978983855803603214121657840657644905946239733350065313826130275451560559740289231346930392992106019161110448536601909660537385265518378503148040819068471290056737838245964701673117037391514915976886514967914864610528621177871367917112083325140597127517042300660270971899722743551332051535620820892429893190806711144897080106245297298714926357457336106126222893683489645555468467868329744048092566657601499176775922466532145767927280600311898223179939975099093386495143855898850926384343156747454008848074570319462104434411149682193442371919173890297703068394045499924260669578264060256368673586474655658277157109685003944547042538409744421903823830144262154987553818825309827170338947095619658574249515181469564596605982305147622778934687789266722955602582801029687215804282073815333511845942493367791477509573837841909967050253953621003765354816169507698424656252778176472169571922616470805779200997608212316579476312043151086913915402898130815183032340779453812944404600468502033313618813000949998907446957613868812828407228818036101405495075234207770318185539253902693881443517757476418700762244083895064478312412981027464362498913876334252390927204781664982459031920341607177059809527396760922619512511236737946278472975142092226960463878045681728545126706611292489952448144299963196401865487656195468531442068042342960573468323680149539170157970215192688026314936439736384408441176558706544002404369709017503540188430060354447245163176731339923051115794903386982492276532219483774493461817477436491032919953789381319997243461902484193267193985398573570327229689684768280680383024094600834552539912514932084614843965502695320684831057043488893675005243284384887861174062071661177499909472728280265127692063952393794375656757077055367134580831616548854883108896715159116007741613597531093711519747143111209501754469424220121206603106063129740979393454187916960436207504280469164279533724118643397646114663953017216686143869317300196411867281642631464223468854462385926218678202942481160953838467776536500277610871822529121146929285152535688723942916207569886175134843553726308599665396740481164610814207805149121052545985540226376486489939114207351331720865796488073942133702730390167549660925773246628588538032677542467279796938058390323849537151485548076071209817359487996235951811058184259972368458482163876355145961046583418837679057050948950407561233441010179133906875921984434430117378471289346465661885397445409785850206548052845797688665751331990604368415767423525918526637974660196019519244027547757286439835131333691585732944086760291964125768169231671909049607062956063776149126748295692195795189489574017789369104090531355001709882391625784567374848197283172868394308634988082949481100433843488842032851100427742294623935553531314077785360767767567889336110342159316283567811000481775367991503704064080673933253850510399959197871805495777333795950514345577248914576004392896356791066201832203206393739154401125254194510930312655889666998294341138138135869370749462143719361361220682540701579220440590712227677097287673207874908460510263212137714336213461399472697809609786433638287995927734275519216070904265268467916364615131590547066910009118537304317614737946561206429235412841094187996642592699679312763398454619821611883826636361524303889931110012281504171953660546845145512123480319788706652574960720446203917231662155649333738026876789139515349750237110577627090179131667299990247331852071614017085162418397160856424359233936380415887117009627136903126130286315245408580258051407113826720569288147116232770410961549423677551871084564979638533532316013709575266809134084017988180233604474942926303581753173961045898273337400920378717160031308322071339666437561427931093095733783509434514025119249047965132818401012609309552907030744177093503562062105201919448428922360020047302548035275040047140589628842699315155297744097221474444680062332470084844037583790505483024973702780044906800486613133284545416653346302704245309213931099662664620020627937328886608551294988780442152840778313311240595256867063252218276654428150422623960908292288987019395343453641780102123628078169948552277574021679668547370176970236924826519395905418094928706200186507862262326592121167662210740202936256419147496809284583629005484012260553655267625209989777352757937602914850197498832818121665409336714175460941339640352762022893648454227021828144998047965657771795654523634249804296221970889782730094336857381902044565571357531389404565991505800824660355124218924052210936842336462519279627957045085463502913883094267393839702716613090467020176231491808522478101361641761732724556137485156652638559939210047876951108597168581746096664662257955709725617490297154526751059738271118677702521826983751274582093737257202506069065096713614584922607300531810817811614723427517860176142620137058987764365310275694614648934824728087956163540878969189842453658627350106032991326606373989999333217315635970983789057893875048431155895397140112479747255106571603943264173907693784281430395951550901904626441913533912002625855080986638470670534134720656694523811387135407617779264495336529641880701064693237758110385550298655864692967009916563288130652734237876322783902742884115792435819542439558179595581589840941059506238433125292476585544359147782842544373276079327279383935074941021458200474283528483589358659215819149884128038165106129300996249251710278128508577754071670709776412079084012062770267044307286999688070466741206953778144534078285403796395087741751036806581303205709801663052482496646311779078593370695722103549927999323621488126564478424937292613243614970232939106752369061451643332840906636695593449238991496305306724916818311350916592133229252313977767013526989395682009148659824883668787910640586358430850705243611452597293777264434594861755914973046004089826408832513053604540322169546852047101028109509397334012890727070682473085148429272526632838066014410761625213520784734219547424933047635203732355930822524569174815793647531917558584363978619512896250124738711920461327305812163689360512236124378319933903881498032213683376909740472938677278200019541876839395407536672032753118358680709714829976137700693331042095794669338711621895635660427367573307602011545309180709638866130163720324750932250424666968320741851516284381480104049579173356046190905095061889697938007916184552784613671465579383014866079358347783850325874722766096774087589207887571599499010695025682667053963967421295286253608646047062592673753615190106863902763474849079872055983882420971265328862485242907856252614829876372154707603527177159131500128548358975052812348656954409482688236068764798713347879653357495491928957292777134756478228950811324240106083962677036581081562810026049587088733195598563210036666849496954058270117691550179418218301336633697262409313539761186149797483394583115457337423027303020125062195972841161775090857017827685408701429787195460724437412685070414335045720918902269444657281758000737449488012136548594106986294297576650884847531474411756264888191444591612656377514505707777680592209810861961315794407102080971383683551352410571716593278234416849364251899701876938343320485768792761649575041352215878034271042901604783058551195252365113972861355377148759936720553168137138700376257211842607944123882853010698443136907910263506048642433772536387182745079380921328734732242462681631196711116102892719139710523635062006655695868438531002563946541591337213329930822803030205899616223472421227074591712839008587674418512934526167434334484178276708207094952872336438048520530976764574588031545061318962895277388124392956380050759972203462138738834675888979787989288548162932109443294999579044602900456950393270988237401566139243679424033266395655577427223504757390938717012821013302317511056616165737153582991757464062860787882203106790695455016507341974021760029951480599083848258505785478259958113565196111297619599852502267641717100330738681689090525356137884928623624741913054149735518137295390225751836095109744177064175507527742679576993678033941592256431509969245705622255294906054864879793381310413802454003676663026790633173202180449824032643523243704248197858079564131211854726265086036879987147256695990183134392875269061226252763130752857889942015577973305949454281139900800616692694960324104863728358617009144138527035449057989804810955147488541664475602094195413331633625950863698392815722472650397832364520600707587597599648222600453620108844280390772048666633375628382964000487888241974413740275736381070108207982997061860331495314990707204100556842898975872368799393992738655702948423871838015152330600584774801392846702391345536946192576698278015893501186930512672677027916467737277544814761897687706828299222285294757773258314811823878627586563384168397071653594946701032819261427711231930635827970921993602514521821912337340532958977124125891359974100455488129111163377249717570820584541479617846778932244493939949975327549980855656038495684870332340451700058339112893008252374892885570057839586648192632930235795382722028797042842027207343512446278557478386308713369852343165310703496371988265684174205645002466750411313628087980139081507736187031914982738229323309100970738718427539000096560591298130905112872967413535999234329885759645027316708442230994765951871076344994490225008340161604023805722724503603483999141901862792990666444662691372847076692716868398608157924324346606875247196987346555691675438903581058762686887617181796235007358971150131367977191634518836698348688700782509491895915473739970463355231914569598807727969533178846919348012091539300073770293291312636147266880954541385990363720239103158766192637788378431738895771844183040547094519964037489465035171365833573787365587106411429421647618228076990182719442070258923371949855294749525149420226018002501220462867112121574206481091287778360741530298640959174174373678122222662261286318580096431389626274148384612437476762991061465943035051352639406926050342591335850332186129248767829606082483820894192236959285785310590811097260979748493885892363842181902699514719385832399310756279135719697446161344321587189988740401210432259687115745938357907180277532815357509744054278864731901696355808418866864998670057096115308521576805010049025812578135588436200137931295096282921573833048581521537184783396468477829635283023399319846542008564524587922970852541407474452138996270556818837540689278396340845189326973309629475300126613772638043095606868677389005092056750299416882883357710717810913947546992352886795325051019446413102714926755500511208479278616213683472970078686859353834207870671977902971289920408602575931068797051816703030605660795574530672505920315758383443349060805812162310981442281057248977846864592988055312975967405576725701842004791589325459073311409669335125358675763979413904018659508011916095773746409306292185513212784506138978569503675907207789511153505592541135677791619873787981361118698397193761235850911926264354526229973853754707474730740897436669828468885268795153965883197821370301904976639101255162720756497397139533169410372779911940533133402500934526099669141082782087739753932313293467297670602072287637572373622110267916790465568196477258895310759074312915576728762127087274989597472283626103606299723491098166442794079219238385274696177456046769429669957037114169733626456085300230832708046675291008330856572174163954596280404047999683260196544015861979467529101498551907832911880198152024779044642658305785957044876802585727078953906363954340189729589306193077108727127669367909840116802685665502583314651781682023058173688794454335259507778026765846559624518645457620528797253112323687999505250732277205355713383683335332031116916522289822438406891596593854959563363010528559049489279348764282770080304095456893302424177917020564517903021727247324285002404851484204389398680384913448869871805074940421886981703573483237076583563184325601286165557416996976002051179762322147624314811892030514902043213672988507331185198211354728856741565570217186708296599059536482812589537668029184434723255423699915386833809310930412511861748166673064865887498954280685307469315324669912573098153906343032233822070348108225932177125873405564462508050052127518865423907258255050118275436415386178053073249295229547170838828402434208725957303754788902219537402569819446649180664920816614945700026690922561486619271588325711471498772327760896100829833147733146938713768568813118329905999300748689411061123864116544473824209537569756976600325956248891429214517731459346914558991455345285642845481894898280902860107738490176328940390133658433814998050171880663286142922242960452313211355901782140811754820525254906521791763875058727519856301989737273812506004523720541017257971769506293598281531054597680133815463857236760840114698936042836818539859052523961720937023341853376899335812270409494626530713187577973769879215443081221579385744471730170842260665006653591219558360935569810769307434347842596518545795496954915735981679276151894874412227753509604868969884317570984300672182100836270260472006931266065713817014271585998714537057161853083531908120419134313368230032751067666025041332909930038512765640149096676698040893066668575626571244372137464789866318424840710347667664647479970565049576050063501733894351216227938488784859718880173279141520247064383764925527006986314414038502689478841855560955776473362491641095560681026028260452868965035841186087796115653408827184581811817403722928480443239313840053627009151822983022684644386637818315392641230248570355791824260454972655427602751536302218504829271113110733950915154433664685622235884505416265194091610555960616805039631149689837674186998405489334368061230036668953778650174823447181695867724509637021995953177363301237711214240868537369141611755057061576826403324337603613197162856928425513638861013492785524960811416114375797276608757748177436413397777697594323773634574023439756064855719591127641117855439244791627719059382242364963437184753087696519092797755000695862357212498736543620865449895917687747833729500327796603478046429229421496766293027656117307934910472177488360141329822977953671627400023942713615469747039287674661713067601186885112182878519308251069268667766942230885685069952057040081971113791208012612026678433711896141215029487883896697734523896541115546561071211761386350274417160416672143727679336881475113339171115360417546332957520096900676161781656637179251551894519427720234498878035057213776282983241088264788283802530865356539958909789923226707889075090980366387827114347734489549849171874023336061395515704969745926833125063216709401842379206089203684665259391759524963532167421116185258426581595412999868008770836885436308399033061711778608577300194706454746267656957383286374418054582528991379584895936417641742795278321419821391137595693161350001508849998725264362326120077840696409588087002727740302589476163670337118830147596102230157405079727465127355478834809214415877695367376502616701841606517444578693414850514000560367495156896491746214963948635421460792623225128630310125671776744463683458862786184750692440749263985740783355761542319849217341574299438489942117587511578894520014182899860266961755707991868245875526891440074624498494473287957034124242728816909482161257759292808063217316795991292947871070690902132742079337549191930435616482004496089636113296321542534659986218331554588937277421302128080599993565763809803409401814632076173880716330508994001863986535924074568870486820722484294730284064087821520416331263361266924070729616783228642586885154515889896813452325404318960835083068799917920093827013687850568884906060249830172787424755457856834645505756159469544155684994761871838607146045794047745227845432817927789968849473021755179125265786084351636919466996444827600138924395794229455762225848836519240475454846432819881708694933302698967334842659211935467431112185459200109801030834100219534418369554555980536386689644834769327822246389768762845097725787110450646878661230134681262305136605692844802056594734207149277035080475385355198483356064184281873312437380681939117791456957909218645274096701739502595812547298235214314179984948106388605704759500806677244745627774462265309392025848963468226872317721753564770124365427808331977940610975982191080192314281520367798324571650933299897722119099155665821273913235504368100433208235588078276511791650319477085359738829259506924892215881218157794963160817480127247634042498310003766504190655376894647013042622570849892331462950565363628666392154300084406218792327183360938225551024500849412936296242544122324861382387821231561029266389658236225492614684744451546545702785413704791478952021783804093451658208018580060771611788027379293778988718305647985314582746990280338592041180042704835422224378963341420007471632449107351342854074371581696975691088519921170612461435556524259527519323975672586137398582112630190289526196007573932407872340894369673635313803953880120643215265020826672934777604649874581361415414047097868342689627306062754218382258907141527419733186183152467330439886814010439467661370137302099081531310941180446252839202852875870311110550943851930235195635340517380357350786320577916234134148583525278267950800175909620226710403231652893581705626646155748155896489505283997988109818233278701635700814509977637881749303565444810360179059425718144246581823176337079325165194192910611119333596092993095978264366368176076988048189416029324425870064920149510931720160626454214172887082336598965898210179562064037733625737125922210210836187401017646331922065589153560951716771740465020017427091668118323717764441516770767650226067573934914873012637732253224000922259295980631876897559454427571718816135661078400060787316384414204660351110836884583932848099009142581157575582530140056675432551491133142355341661328386253582115171336839116084591637138468086330769186199965634693918718078534228246711716205227529875309533694837313842530044271280100807300087157563632274851245414389439110131625636597872919953358561221891116943144882052568307053938705759259056270117274829050924728296849401110763969153187602018753473374295075426973426448589703529873507598190907443611300844447438732723973826034772784217675114196338220755094441382743458157918828127623724696831347786744067775439830728489459279564003537885366541638344205699976338407628007156706098167199906281334657778898119601476687598464548610440322389663984140036444728437683495839022840747309414050956482660881605471245168917845595853739432251011914183057953447838518668167678759864298347008250968469001374093255461478016830987497686483791013397769295344227599659087568724612560393535582981532251864042698502063203921164864142600153774242254441650979721128297754518401469722210240303251625194024240129471623588115546047492387331798612568023270739977357013252699922429417863962915021634229973754910955354924468507158939573315397987135885898787829278768816578982839899886786173207222807612634676900323190784556895206978985763194651056487655022414112362471181408726642670790295599606855651694243022133328291750849814126315301771006391019154165608596610476795844285248360711944461401895452964274917021370601551776235681428456338842487207111806619440090428560158861136533774096645378780944049175055422188747847494837783109884006800975836402880891898725795294110986322294950012713053452238378542115362400182167936566636067309995505680854954885574415970732664788528556317335640404408063817231918465552741039533468341861792632266148038600341778603769883234093530240090839931285944774501007369758737123847451366192476180768782042659412379327466666458348500901411176771625367983361878969271798079180934415177115473040009928126912030795305993207402147437868095869794597443660814655576535675303885931564614033669518640854057011203729248843842991787420946304044825141858713453271206049372267426002281587037697242959255824429711977592527601617958635712070703543709749651375543379663535651230266228635298798621895429809957346879370314966413664104818941924487610097813434400413884338582309520513489841188495501721442687904789501871518203398070419114401942478104808448942396557510874468215299382871615379396387170807303741899395891280136530128690240435268389932651882506906021794595341569269971685282371025650187853770443632649262898987973090010893876409954862138590084743279829274337424356541701252275345025200564110629751362259983666465381786049724894516144081786787048868207381311321989907842823502112923238664255207928681606490059752500183744486282815511421691886931607684577642826469291426068838272770844186131582987314596276409399865386070296666514425204743065531453883222253084648289130603762232693227910679035537688099248581073244741706289501003457928008863978487325275363773559710527697915394529583346782866393125074010800034231844279181484024177447329152698089242401499438876301045076730247788919386101713529507333151368100483833685446198907429825793644840501963633713058540558838283347996879770149946687581399760201172496589505221364437418108900502635774285943251119656854329364720630965486678166172084785749909512853621690425622369216468064841394829457433304055268835098068401344080422350681170449544958953987695814166914195677007173025169496861863593135624480299863471333828928632242122700869123460504496804209428455326640476416377525746077533026161265553963015715428871419313239124527065124718459201103524600970244585816740654537876571741620878743852238572424992704959352549389422285733783571299202015818765675679834151810937975634733735071734194171552166462403030054909073610438780993581989058415254880332927403060090074065962801038858135543223406284065185568541790157410885953401638495064436798904075812271474901893696502014436530595374335977176685885891376302579629441819665660610536669584909809483394017851783870651395109029679180462088644540309905939726120678081247969220850257881472211012090741701691888844789844818132299118542646120245202249989561527345346224174348603692932564319204646810206293392584550290616436181894039667402262188873188208465629366928275552176906496878516036604031105321752226759204665543789617431633749853577314576574489831548203726960161955689038009763197471908750533903258476542280779147994300442059739684828372171333792393641150938886028986938652883796137137226451118659798536572454059172234253045525959362259148751107844412769929185161381416730648900219257221739040087332583081945120096433755627357635946101675911854839631543838335167136918091790083136002537994966174072389653376963229743350943134243639814448618421954449471311172198967269484920372909236279780910181503868492711052837845364590046358116590851289157948727888974034283898872215412694788211380505198204799828130826847491645263486846572295311597095210597358279818561569594815148202649360080126538562986470706457509171243245150094533339342094137908325397435282978071549253589808284996869109223595425569742294379836851532530881867465856306268875253415171279144157810091348341130658777307952684167430227545935597412031046266925950566441572907529622559738242599715577731804782473173643761144813305068857799242955254472524785750175916090963364058731563732190062296125392057622320516809582785810922454720648512906630392574132393676714885519065829633722989679584332364335413885127721619277207686636963660884935651506107045144649675818691309966241327027086964254631992801626607613565706778464179274943262027656884325183077080774608375336444053677330698343445454053583059791224103247946072791553805134127444364977444187339045833365167440747776318202649052706086162877963088924925942829841849103190239584738727349972439923900916375570718735026268789163541153151157988311082368005489943124790401904820190125706529562184474637899856011184468346075424669660815609498831084509373160790771255018676606892989735366471050956110733419228738051692910365338370700602437887794844330741552062496605344719565025279632554481173242950225354064286209458215379335805911972402109405880735722278472446766998080712568986232879349348152300202318774624106162134756436901723212812438200983992038666630875820818280452219816633731276978046883267461544492424675272630149496512764765777548330153870529334857578676958732004624711499964562615470711506632969607594076804843122269461658327425740592706745686453395147569546626288699091724724402381287721725980221513634871667281317048081798008210172659658579223697904220290033857123278231240214197154095162784104701901414175283858609027258437958900250801058221502763125511720846170797632532468764463016685731323655180177725148877106691307400167017377073092022287581732256691982874486711107618119120824989290965097787647747187474426210036643651436357576701279186055960349963388235013374299959555795646330922767013746977296234831017121528242691991364627090450426199498884450438857170638307319341397610180916690566569088033543760105404219117844011711324890460317507181712141225220200805009890708492051032914381123312855226545493665796797186860901694358705676677718351217279579458221291612341780938020575454590078488027184539053580316237640243342263637584191083195086920355830821441695532987463391216282874532845396661689916821313125478221810399223371231566282857019694509638235636153600895528772286921508678462872741224138460944403301397245723411167195102267500471067876611165543496583038111095324025844222959240356427124116493929606053103393182635478430495244655694561474895334722483404570282636177649353191017508510263499030995727930346743633200965995638410467068925649645368859503058200297530528717544728779186483073608108384157855508876832777976261773495136995048558386382959501596548366846208591190292438031963477210075257884019095470833450578303745938922991447586266054098286671337305504785984696443971605329911229822305399820519448716451162124454764408135885944407407328442784420222785270464961671721990395227846889424373136245075820874893442977332166074840291334475279687697481218451998166541562229558743129777575564353102968332219481856508722197330455355307521600363029234334096890851343567921767103058702960115377506899039399607383559684126548619376939127239944448334409576636357446876465261412872455050347231562285884788753754664957443782480474455834237592160326917216638668158956426490946002163220570752210964747296169689824087425962093984793160939337404013564607250802188994937332529926236582239963651471890602892365872813619141811857327789133517476294515427321240046275818671621505623120375222379245717770546286367494183708580043028152952068195750225044088719910226676978633048763768147096220423398422449527116622664938327731253074905874988346224326888194322784661447651222846881646557021604271352038353368990347088238407016826280982812651018522549677809137161548274587421244657550666998979359478144126207793972062164618551425915052948141851543927184846565137060160887194576825782011597598674406187799837431508316737743035801694942776555991558294436945566575017140920983401366035823032108242592662033333699997828970998859822166714417123108199468911021788121988170244855193978700178287644834289384267974367656005545528696012422957803900521788985943278707693725016688916177228990495253989345194651350336956871895569683767772940789368134802775953516778552992843306608537042597460043356720742092126858668394736641593464364790647469284952051344254101676458291766989667942516419829858191063337272609612901438752399136100177185478471672100576457581082477519217732964280452995967922452834197115976136367184388439792247389324853155224072612167593485042410362267672179494170449077187536056366755485262556934302360858004239718252107022475453946773086633623914839847733078628453551387573764984047259146204686053448459785698220254391506373621549237913817994997203620498217317052645256929064491001028378302054864884641454209523393767294645321818132041783663167519220414236222867218033518105956869974730997375121322889983506313888314066687651558539479658974330757188833576247399741085377158231702517718497476271497967390978331769508897947373825089672324812881213140822221470874646519953634613976205032930595788651759960468911973216919334364126969652030828219344481989954123325875775044913771388017178609558019561900807396522153916502262879227335330904661459967017780074446611254040787948004274660330278100238081065447238518919874656833572443683784331303753058881960167206951346642549578719671161873067838408343464205409622563478193827527101829332235962545459044307191688855088329934340541897750676014336160694759041428152715391983275995197265322624475894650925411935696410519822892864796163528149944253898777592368828086895040496961309016871639923125353975351394454260968931699422317744928909589844534302093111562522976969052448797964873040711458944594696952267790885106468616394798774808071707040428899520376915380778303970530685928751503307564692796286741829560495411930710148569806042028104119247824064986227814653612172611232507105631483294632374531978568849749714173778426886031305944393055616933313637099445495492803746437154887149810910262365520335303437239369436105398206857941512374213260253261937469740426322044702802565433163811083241537600605965982954786812134200074165998997780022682483464831001470742027426191462683153138191711521801187387194588413221405330174708177003583137393240190352665910677002189464100731627674261185100617713573204185958900907083703206015697538400434661778930330771155597735255971057881544633812478518012010635518151013405688689868962375788701988215083295177962636215285501546031796888798766494392718918281228718685453446144031758364782816526718285124073843979851790040736019847297167754153955759232023464247326093795317847135439227850710951298217263408916594270879639483185865787605446971886417921194310262931502213535678604361639117560809711502101543208456848347180528638274853576974287623435648131356758202822305097921399936252232729528082710923013155800095437090336380892901345391693429364722265230025163765358096718334567637858653568141612532870855087183044368014288380912291187127413490849364728560548622048047984685108906631216116420816171529013476782962098118760859402066226872203006018411919904280504911724291043818493721371445006513974333658162500389656475744628165777512664894042253569689455594234427839465815235630321391674609405064214090100392946124602835835499815330580468321152431789894526146786535472298366223028396471471117916438983588580887435237640336575597453424885450538460290446805049188391070096503024072059733958029081338673554350662129521433325041384351198935310483311193733453305037134931755228164017516443358392849964436092665112738653565806506368001463062495232055105322795535472326725106493928446560211997926672439122263607982967687635184176977083325049054776417356835277470832017476823338841253957174445789361146021131795673956534679549513728932916092201696479511311653601441030018899242246460698149418130253316714427209347726700296024455132287167298052423049383048515956143695316484145577431659466948355536623286469452187468264458539297329422495962024768450226698637697540066063593692988687319013296424419523010628022202632657020212636349852540595402513249957723021564099980388454711276571515350992605258972581286143725759329623722855302955623348805061821378672709312424109443236541259188212403135678512362180916394736489731015054503157735816406876071956367454438981238018109877906880444330523638023674952770079274627613541410057629352163744975581329054898829857202021933372803532259291910972477822419849808387631813918924037046703282148539606268559658781710184779999779101518722125031400939618587248304814400441957160710561725324256341132649827765701199603414796552300789202137749582657424360750277337058562779220162071079133148996213826035398782841529714061440514738942651894204107392349119921882906347797809875309059530590972019892743566327065289794496819615330463328021710446380321633891094894263449805642907023110690199429213526954691490127063586693884665503897237828359512147596814661528222384323675660296425093133734934507229820712496987900930949377910803983532640772356101516954667232587238302023619342352036612581885826047065240230728910138185675628314164859658570144922772300328701033901648231807846638723220136368984788147297626458440752320037727131374510207000759716486692869353036882936853480004740662379389245282102532722095462467877902967686316656232939862759599818784208024343480747699167608865096800179301740299509060339358705721932976573949401960060074245077309061131811620649483291865354481855571728281855487262594889430952340173552334294073537707702546423573438861515355474388990149452315291902936370465272203335673671356438903627199353990078069291812312098226442137965680526566856679884602710170951273700764376764857678302072820360716208854776023538753500114003672454681306694947170750284155558078640288026509783124768496225302389096689473996348600632569456713751829460938737182004653722251795696002177648454031213419200998016907376035181866119837790711537858674933148446853345104927445402372926620357001480497895272492451345477644634201741982209237429886650816463610145147409940325609020591304108244643558556835826236048095878099592334645799663717875205987956532487148284351620386887870011587321845858348502071264165402234445227387051587221539410576286692899488580014636401062084487039091463851392545491922862107478977712469727764990302334576998576757220260094191569955435096603028535280294138452721189124134742131751320803402107043238410627899443849647008000305772941578916954241548562079297978614360224267469499223661078041892220039657209209914654724498435324151184441532451503344340212717483414264524846223703401222387316806968451187733122336673260150635936767009365779457057757967317481193116765497774761493919713986535002235429558380866334309140053781964248804511316452780048404077263251378174368945135121559120860986539329249810771915948533348536961628010091811335617010438886224905741814350854322476095511022162078286651226134383437460992597232805051549978192764686481287617572009479193178846423404375707946705142532832510853174729324436838361656442051926113374332981076460145655131814711554163509509882970051030099579091810618505787285998131043465117519388473138941722396672929000681554126296773415390236953311702607415822790643057228328494844383078122419527395559242980311952638865919212752629455446615902991098279715808307886333476863224090335469532823955047198628406536897266229555299201153982325938452157478252604072808853656866446145966642533434247913741585844879702474395764086347148724559245149686637553729151523020056092135090939175363188944142395031107010174973000617243752853477677244908771660114136166641897695535430648807416114392052351563027994389875371498148622838031632992862626477648985603009441565273652243773280753088384540600852793206817901849812107640607244608996398795246568621971853222776730537825054558316539770418718440158702331160418757879739583304554199410223018033894810187897743002859078575717657266077845820231064199475374768168681389448154008282252155262229990879967668097094197057017641543299255925743431813652922994050291633745971378667346483034498412238661266341591503832254134754148134022626949499874683562370348029015643666521384921880726415370765350147101539016053170737745647646508774660081681759023376011433501659480619329033159497342777086752027202862276295489342982400744829141048598651952940839327753484436706777928454841403943536489212555885328968228384888054694435844538079014499654685364016431288564290454515759953371703922066114924331986875198216503344334003374851511727310883721043404984361516778232053881187287038044791388810270968679564978227746270392164219305888768714758019664216503250258941666133604650401314951221849093290708621545298734610850656917063098580263585672743310662886524647256105441393137698095452470205383203462496560774233582708707826322440502649981755044053847048726969039075094473922774040820819084572281295945721838211476993161365577661483446644758645328517436006873296013741948264709647097580861784506125915297715266709129504377834782564322419421941301907684834312444288674863733875478234455841037287433829615806260339406795601147916325057728909734179493702454453723703469496325535659184013231170569799558297902308502761647803278774429740503757389884188305930315501965023066044113905314285879287548497586213151586043995731318327945548921388458291133633470712803848968561192339392534528615058575329068744059401521329978001467584417644352033595496116287601574251322060394662345406335571192953479864838198566978396334680829740338882505166045888047601838572774061449522947126434398763760330523191816578532983401252925947531259587946710184949541573398767090030493855395350532169014937097871191366817883160016802803857341005242149865533788419567097741261662396908207013793883115405405290681755075268815956397507775859831784783091249062648929113495772835629323845244704202464650965954560485061822914321213895891741880866805387622725258134828725380653633252180926178790976581913094939906689207823608053782608277875304005281773683872122729763882674298108843906877260480031661754791719095603415372416363465630018905584446431464137605137033235875796569662156398579647058843514722892151993538859248540793512121245418538742306990860942728423024215058813737233880281942494939944305570705092740447610596202199532508298653398588491312606949465353680013540404485503128618577247152696837701861596089197188890568638622455214389294065175059473129370081071037971978713712026223150169608437232836419413257308511623280587681127388762226799061246584576146672009008455865926487100232548389950271352031807474600790448245961074530880027230311144684837930975130199485537898962349795548969461612045514590296208031703246995035438893178572620561576962499468213762888434828484142217847001282209375528934741334630496036599007389032097732337974543494668836568535909561242365318118908651599499139734075374863603713649688916271870608421751331276112418420638565043478565294216832696386193705325911716012785872494341366949734924386420690456852630561242750622464731366639241367114939312285595556984070641768361752460586554467953197352755164433651491880129415604345026151684095334361613778101992379192674404578439823241242258860774694560370859237128752422327979584484437697300710718505158810639767743715028047235457377018896651944702221076703702246208602120135622159557946922220523936073903537196600085329298755014665759093769848626276518896560944731558518186297611469658801855094687721027070851706586462315274361661268117114947822831686029696282261157634235379049832315646255881608826918995104455116888312156882008846646215916234198739137496301384005896995630761145305110146952501056129710424943075970875278223640359241792381427703131602085743602433503446850812356781988900766328559033143200347790915204923333312200058978332486899425485972170741618090476793636961747377788114553660208677937500923365376454743342436052414224269433086150370360332754256545364028445891835395431666700733564259191185175284566828477019477593485195470436071592236798672908652008261676068286866055867231090826451965517850188049902032681920860750079738148566220923556054683985435039849932228468363994846214286769293315568307606187310162321307599533834077464600334321949655322826158868554657976348856951637007573842097537169393496851850218572194580238774854752121129964265219738599683217770568889936763459941145864284044048490750180456797869243957503539108858858094920439595950697605163737564714467686159827467401726128658076325572779193285261250858135458968513408834663407192658497026979884667492774160498592428367717573736749086544522615701665393834571986640437488577975842027134715964406869121985920932546311026318269207379841626739184828970509575090164696752721327742451557532695009771392821665967578493640563079523822762682123973321698896298848168783434314385915675983309017214066709458990238641852166525740605595995333982773661476062796268672857640582463586310874192140460524867122151357796417324401057991470764273823112148198354328334213747671189901902651086321130708217096634354880151089140614833679072243147794259317963589019337685453902585112734913501370280448293261670339934111985276308459883953889801357764949948717896478811654772403140640558118706653333734418518741174384684546438529939197628021185344934574290614039629730558502437410179322536253731628317670311522024341209145446591756353446620206983507051589874452888398879095151003177931233530777244961830620267087160978700252816902502402438411189147928773622874029369916715189567620644103685459341661712999606276839193490180912048882097525304292290864889008485788156053312014556555276571513689574671722763241967685215601332677533996920002982939829361033886256185718229582510427112485119856508621215791006007578082835041676348055105947316469102017448755016541114485532564147525097623728927603655941966158620163921254553773191205180300860808120812666763091093091926686650903772057248006076950546994364411894779018723862804131969653240435268516329352044285034286076054014018084538376495856616452676062009622836601848330652176377938927060994829771684041061372728563541401584358638206287370041822897935302190595845314248461010576167990881822898838463101859552921844683727966647644118607802316146890252280889487277144690503685773226463278791330859881187304765187269666555762829670783808830853396329437145284059943583447967043501952816620310787524164127345362751381548127980975915920048204410770736430790118228845525879224870322121726067571038496180186540151442607480678578349315521162141382531760300863102576723007564987107718304575953447040252451363036213974075671265565408037334599256565503684984127972093155177306655913612076818774086108224098181418430235153301977794534575659933895211627509668946948767734742448130454047600681536868365751142217301942426431817032448790952431429941104248238706036762721319451673679899302763532899754084936568597931975085965436465425824389095417165685182986590706655360144652525768851291185347292948399486111300025044430107105960961990797405516298613678089222606152612289472716245346369398423386952707193779062928277073647881970776075735573667395074787813180818019907325195304219938461809534785706205716419269620164635523405865012080584417566006513556971531044404910190486521472168374546125889656782399245638820041975380123029453683002818502803618077703197806039152457050751321379786928605082597032172418286191465592673274241681217334351624176178788662444776449229198176166317414064448522286839350813113147677351409983636155010679388143490923957764201572773126831577183448638896961987690474714998169052487638586583834625726805308953724359238674051175685421253277553438971090342501534781886443697654708411741563972019314258388452379261968970736228232243847705150533626645090341689714306261734741981481358861283505536869871151449777626267426744194508474842502411991127775330068765784658456073800874426911666553543621482075920560264425957399735671422780676046898031517534843647575684426681169611606158322017919512064428919088244762984784377333150583945430066992241982994576409931455732262732216044734357591567533152670707342436072091897930572783800231746356641453311938009969716395278310988504103466496314137969617617774735889222164867919429181344164442967891621416760024502368236282740888071841758637155174280473300402519268053571522915924346783187179802834375863251718886010296612684294661719538399564457416648771320155110279613784163416962550455620710127853821210527340999715380833461901959551006296165021679980937312979750658916419258353568805843032181103399920519434924684252587341389940406894904288921182232607834899592037691888889605725033185112779282215698235895192781186422440690109014769118856667126616668298745164791245536840407817930486514672202445351746191490864981235753216258832328897686613528404922802717915583669749572772025929146414057689842133118613929164498813725642429368973109678852677086327237646249946478398386146249761491931694476739525930524539813107508986913723528547927712284727877636319929737990188994910360776148129337447795988253480382363724661750753183995433045390800559676859109908033249365037583392146208878225983341458287132673512786950572424576786230076428962098649825946772343051692497112663833620911948497601628437595375041509346858143719836837062359840715314675643320646557346643090220048649979603946409171457052068944392503275752993757989954583051322718916004273728043236657591066985300552369928640048603846247813649296933237841070115705513796774565911264763526669762099040035254265779505557846367299739289064075413706254689539210673618803839373038268777043649703109421821815446910601395874020988475460947628674316497397712329839855408231803882285959724570470292117179212643537123948661691208235194098597243789289303870632105992403215848312756853651249339280735617931947423863383728754022859047236304749278436727834945813286278845700644158677375357398496310090713033924856537515764596129582415268478478391537048660720103881900743505242250443173803813168896999028450572038591473409414767161266650776196641211901351333584027277264643744917355947057246236310073231256935454663678273034223169793596993652051936892731298678325188239765909660800014057669864121596347125772850736041066736925045624456010302732269318806590975259144201212264744544370421634719782150674688793221916857407722556218433335194256760643899882451441561996675556981437676390082981064519687225833841711288615576458699018456395026540930221491323489870688865396404528422809534632400702644982093502362657400703729343628434738059498153597866921309636872431859785986326957790304933610377158214229949171085152956017429823648622361482840733704397207741742105313716260789621855605600351497813695774723542235587671075731024795412360053125791222383758563470879396679060002388579926685818219789641677851430992334208557156449723509887649905023426287154014214446915592075302881522728437287313044806855990505896709002700707181886152098446808437783558189922549538415664568027526244706033604318317175415646092526648849228918740489339659455879468101653974796403984860805519319214033456200008810250069379142686978723206666160204401635133397752646004232944160493778174187971696558427018449049640450085913461784616581054110083862576006171986479137063543891344649974042970810207827174447268468677619890189791268717702550900369890922782716490922319131160086241838266488495461650785943443739599774542678070325345955953235437633655114354019959657801286129265185399932631030840520102238350135636543467733119041646765999895710012800986056368763210435763689825081318600287067278613669215422648211435699094900032946936771075811739307920827444429365650880043442391731685340586453165417363378647806283202041678681727042551093846132151607510813619455697688248678244497013361943634301297116524508718396093775185866675778897755830129225717360810626053887412176267169106566300479057416921718802018248773137782283985216156063490587560549686139962343525722507572743117918456827522385730846420944887214992678029004847509874914073750369577895049979608557004375187065651633530180782698953118080217142193952027531043860928490071088227530259445913931369195166894611932401040260717366466303963069959520354008996214432481120687532049353291995462698007720870091901133476930739284739302246442548986682725443511706050016845728931367442834192524342599844542298137537791167959399462723272103833134653389771841232074459185213238652002194446780772701954948818619538945704888398740419424544921220459135276803341728327991699443128371619643912980143579217702694971567878166634880120099137793965141463114949775835721718666618605111659372691133468136262467567757578816551280356342929467410214515823664518442481884995641726045180759142448615966716264027153881091580513879599080917920321203565586591659188449080832591176812215262862102858879210813797525596616886536022122282979097985920261001704166456156283821616427477150189295250383202631614971623635382640572039028682018194212574325639260970441707217695747315253812519632296642365013394007431425146492235611507110610675832198315290814886819986258899417175199456868780213060294083166075874820596789600175783404919552498344910075260187042938754876582879456770352531848505989702880756206630513495834684924376440180952738449978442353697201886162251451448895133745706819465339388705358923941888152683944422142781115603035773090973671051932114254400849064042725798050282654569076121894517079141980711942806101949229734479022168411841263468031492548662397390477734569808116461523086754670621014281750564445326114558276613358525444215622979898901485597912336828173641573163337181912298419171143195993758431359985421488882301328839809739234350410812763685539262385138339693922095286461449491845271759351016747059879947460041121613322068025041305818559964497358808880255343498711340768700967772664933877234251093723792365075554968696655331448445726763877624824863547515961534022726298792782179693079617307261674387980813412429927291302929837068850463890114854029698264038492771182115812323090268536469554775547506752466817702100502396858285288432882582807504299195910008537843513293599251783343328682210818357177495884827375308262015977055907567943746580565086841996599317642879894699279104196773137948321348277696290861172093549833261118705339012073794119735376610502273875414173797200989761551947230188617835781863500936732329574169802627626237114715201809999578167428861234889814815718532952473685035927481735203098115489279247891056554078044641661981859994353995758235446064600964440081029228725457364690932734826451832963098661480391551850813848958220487838599077590122497996515162948408201203441014308918317608261585152665800335066797436614265343129588873715295098609131561245192558623787738927810900821596677030906918034317119281359849535967843055179268920084031188185237282189691083300731460316167406898189858916652358407367890067883729645539674116563961950883837486874058226044418840373854392336008702142648951926380813105535288418559672188211540251417261392056259514186048426225531685039806187681015953688010675961296442651082851387942632962320299437158533384850811157271168545098675279498793903029273858186803992054846263056107775714016736879715470860733440179384099681995846847941259085008318947498941623907205810752728490716389676986309876508272945103899992409481156974265641601152054118385995583661210994489420969059870665971763438683982489871392768207904463729250168867848137885475177968640326912889963924913870493588497309499345424499371417167472594369413933065613063851728166564041477318841983140392990425779639296640068685483322547951453243195066318529863834738976550518104715272597925329947745151645852243245168872247379289919922303530811950456133071324796773792518856224834422759906966358546536124581955670937067250820937087504904667127083337434463894772517785927719615083645778824813371216017695255254409144811621536338144208002345882689535102034432770423312673816063047589149025184860738780502322932782557943241870347735824765896813329617076902346058673284493612626408952634428005808134823885658379949587977726339869047594195172727988716312031552587202348569339737051017984073189060183284910307050230157324713559040149087663206592838157854301547534064221298408208508323219268857051712536912289317322688554881800007821364166244777750750020076263085973655235820216268679877904577822777635181011793431344468577122692454377778206871929911474367842993601299880032501422469527980284091186441314318557499195045615685844443840201383329180244359580912199707758595992177688264267658249928400912799317668728602735632694479466488968165342573829078512716273177319548951403535832146739960206937681800158728111361825683137055218756533084596901008095970112422438418085267600385723685611504890959113893622507926867914276063793110749383770285685948456260713130209135552913756029154268805802351429675172650449106207602998071701327631660244422398358931003293235074248791434870236516872170372482040859117737909484136220011521463258488406003927198703372531549943326944685326558997502042022698969134470898582574483247944736615676944547554829877925531160049118203344126623522162098039234014094037351631356749004951797431320418208539505211475338517129170008036042673574058990577384397108217850695900836805092236441009603200611476188545447117942957788501990923995989218581018092500215509709062540085552087241588465457151729329608367881262663623638543114605668915118450094228732855604375799223353760720142318735507177081003380982812564723682831303196937360821510867401239686840183490952979785549115192687864817726850061403651672725181526162177549720687415463389420976396400062049169311887481229785217453875115434149318753846154773336968054790038554405136482371536646761448589516898815577594483574924803729931758149798746321555258363255855628423836512363355053495706292563248565673008258032185313215946103793461821351012829974791905896909156302259862389300611246740868703266088359948236984278332955173312451726537277098506440557813833578296800917115471588703797989296027630745514929937664591892273644996803376568631863104525986619043910402622604503888881216131534203191319603769657349618776779874434607380356975129221383269719182211532994657409864365208474746066213543738055677285067915196738770081313301545811143508374773532816925907202160351031273966119388308982948377306844297578087112133387835341387201866226505431171467544147480684387425952472558154473258025156349269584094855639005461220269734650459449869454382757850319020152255828730626922118317994315452561403459143505149859279791630589013186390292007760605996405094628690967169631884195912688708232550065598898316017356019565187565790375878486263848868378797306215809686669923901839877832319020820275895358920256857081915597298119991945683190194423127627965387415460821241767538953984199811710299958211792235795476615184661453726156413480232084618899973825363268158559194640087000719907716967674290661386145258003072359860953970723613573493126523356510021340502864582208356674207690414330042698210022010044342944888292283138552611743500553965692088589060434860565659356492170755640097948837335459539101755605554851003389579171034224964506170721842179989843117702252342420726131099789583774497003839855104076698599422716268376377796603047023225229366763544908655028078105103783408631730402059447669555360808380698781564679022225806082185881844016908870902131118862603666657182199706090691345756306697980983265550738514524181897510372164010598182655838585675300326629364335650712086758433664499623752538362382083770110910831635943445259595141936464744422395020471487080765700272341789866653052228872731340929892707680829958921545802045282946379526761150868418050049129348753273060457542620117225757119430569684850035974476588048423793277389928165735059537805683045958854536066062103223542158145696323147931613662539049799717309490825904578948418292184611104900910317173920154611921161627565141381535985691288070250942105836795681864675948862373285253397904815791388082654002512868128330171302135881858349078146993626412353509044704714414866438959424942155122857480987289183012721977932639517662577978229545991824300949419893306158049350454708415964920642831856843777481156843776267263236945435556660283156387250344832804141350571673896579380738979797441694332824324903295235055919316355609880763110726883916737970550625826754124990628590735629144104339433766129049890753370045826925597908939873208325529819588883543438320057387783851301946822245631020323842178426346111611100233681984702949753799982153936900436987439857782541931417452398954086536776962669904030277714614433512067836278444850206944303883574585019680997928885703458829862429003594435166250512791149510782135416631893750363170016671343454148294212596777457675297890537173350629266303168208981154704970266529354970266604581973281598093470618139447972519836128889727927884307599960406817678779441528476081013512373000944671299399494826106169757893617949194661013945788962329213825681172768338564037194880612788487455442236296284131104839075086771817063794709027744611720423848614529793813947281595625029015829676942122073605157938053864512027090450950495909337177233020353407788863706674302295277420535690264114004237632909604577274536068558267851616551904962741244059063341402821810693246456329683968331914371037930011611146663434088288738886383170059025388140031814628430009514922180945967915554793316649866947786678507237388962383924488319014693713662211064315245588619159977060708526794244106758305095408863803261084209030543558594397471106150281716934622889564677817257815505582506960805998353535437160860508321019410615532853161650727227930180599950596571040351452655139639673712971657363931378348300488903896757456646775073919492677016917990253639490776203610532540180302333874468889953875600880734889095868602203295056265642552610217686061943436507845332060054588882635760935777562614212378689245722497128182249152389327482143275799261716118516982162177835828875951204442021539660303792754023647332474020552343359838739452872350785745256676461353460430291859035760092666403920492640572988234802876070758907175763672603772206911109810388754120911558907298997541957585157968132733109170270523494488392582978517074393869539600607939381960873639533410524189554247806092789286715977057158954740597509501666488585044782629944373749926091307098905224218387106667705903361124698060189577640532241510940842752417693745236895002705265652478596291459448660928889730887703930417490297510439984286785105191788610125554660246010937077185920126502248755910093811202368952358814673385484290345499053085743073227198717510097135389577259848548176533412157568362839779729872782400877178597378993054375701195280512325425172984715598691560060584186719306276712214032663323055114552419197592748859327904534468837896198543777344531301530432443599934394801453757782508790260898937714158344744329991699197611918144255849279864677545959987574259420441226596641623108733745064493253203846011614670701496099127652511683749713497902817692857750006571358296120857663251020997552397234015941436920475862018465944421923981766059829894538255460364831930887613986961559318487181341324943838544630302265905802677891125403463500102074300095330806176712106109286958478599840408331048566747061650814650492836789883661716644241601064169851310925129200623944051833663049524216049466111419798165207811023342745488757355464765882559771491314945897685049358729502917054704913305589073082530574197079795744065001649664530287120440538593702590663796611064387267127856005077997876813531203735355273194580857460718351637264577939151179745081673094368832331124042648066819400414753297132019014372941165158383102769648556810872988392292782593663198265481794478529104418375792771076987263694728399502915135006259924097439436136492906806426979428172358170631720452136223331768746861216722004741968571526298003326083070879471058349587476815677330775567091487921475522240905444452855572532288767146162242458553270247881773977443858909551715060940153824867538945228384608205646999777571439476505309475993677907482420024364940625263950832947278978407257045516618466023723186245844412977934816979091230020529861562468256614012511148012314561451064232654046948575694165071710089880649740116953424124006437723829686074183134747680363842480558089191296932785839967736375644781564146911239473050855500866635644723257908890298358869033936985532064208809975083806768518078775721961395351211464718268339499005834286713170617385036872004668292774373671615446509448124118463862785931421579238581942742988825845797594897426486816440176716627904405976036686507005135258067390993033974915392081421296030094293467353811235400608649312747140592837138143698449412265960211800236123772265370758751567951021207943674429602922456356237981389811313143562147386168005910167057240839791869538479880952287279841723342599678459236305088680690071859168820656201392241649543599320273894991562823433882265083008254430966807924816086421036455548737970973916086264372986607944617150197871517775350920981071561333825810322526620403162394114028720838975922917675371644269456833586271314473329641975040883552045025241560424186219609412842812431650315949052633860965787086648899717969939750839968433376024197535346192727740191893857927329315215564321075223360972192621493140483675294113674736203863891242415806663754312519512575015839756895452225890573112760822752232667504630334572071623285019318107813298307224444325067287514329399257123966327718751917325171095890972765370310163133562447951380287379321927640504787510880069614527676445228172327793405975663844991097083028923663933442773288547819125922615345613390702570835750556171770245864080996442536581668547300770772578725434669434164195642334136742045065366445423251891493325337658379108230904914150856681929063637350009898428120918900683240663615117886658999308049347667536938232050954057703689686530321422753821805301317276466883185927328341837735348925006722020858882009114021251985464325978495352159543340645809039385196029958258811148925304130406815964311902245390974471212962594818074836999712256821197356283450911051766451993397310392355491789273171552189475713213429691432050353006780071826241917518415779311467237081440152862569434727852996718543523103077422123375131254897483269213681624210703573296673711995621232026373454562075009638251090964196876193556120120767748196547263011255416974010759434851070238190453154242669519118402571475845347799556181940026780424064353991703013172826578808753954089746240976358495086446273837929910843874998826821761884598779671014191285281726038013362703451698711340392657735076199286077691535347100492982456953590732105136709487889270885429636499636682762242524446361124498250217014012557202924575363156291079931356674513536297930714048021022997566135727205497102688209095808842638703266769710250774977861100460990603330392122985098394559563531296609738743725542905276034702349180226345596720685807727349841443725793131272517376079919008359533926670339713423920155989256287604609578922385899015153821263581871664814080839643718359280694630432738069963587831107685598773052385802208274351160153964568969045597111534048299656872181284746330055432303320658625474116293095856374526451522553780794679261908818799400333383982515879496951811882431938641226074084212645427344275557128256730042030951227268664743022560998885702075353177735019467566198678636235379475537283777568110639603355961898550182856277158906530689773147663397379950164447693481468593076491326481377358850240827869493901373042417045875687601824354556898112301355795097157195113263908312808697799352338976932486503086549164271040915253728993675648916494893330582778250690259942404528771490340528747830636336585991086711466579092462010049841752959479284374734888718889312262745394574390074377839913646433409448164089131841698091398872761745017290049821508272742947861556740706671591109552868664022457490031626973602790633431978536553710820672250292307063878432239989518969718090759496326472726260439135731972864704910672434054821820013929467102858181865997004302848947272452065939538182576491275561432940655291048139989219205846217904727922757546641867837594545057233363058252310081551078069254495172117422589478390425259724724808438793555968305037297948175906111794391359031190241471325825526176297356125818802329549515888247657630582128995452886400453400811322100496616443743662991845556203188618092169785111402791349086768109242483455609891938473931462611176889491912644151210399147793380843179157091235252044465776075421972970589597430598435938032347287395294914973102398101742128997165605594645226968046769579594332376854854874314223500709024734903106909495194585512506942345909407363827071777986080672497049991284975876980225727178081364472092157127574678295389785193718316686044302656700697799473170494374551700517329441355582807236121827905278269150419360527405309235294995942912156708007827783803125463929045232058438026228418146051691947071074792744367968034164809090220709217292058044622349164949960604476068300467974857047168380412111527085078175760726464191749329534926844973702085210001388835239144782371760039932200445742688253221612338459447194684944578674754691410812620480228199460196376113467851646995302777051087108766648572669487411758774965498331282320536066775884402082476956813307075796429515346234891407011438902742147137593633702612818949319289128943250442525080376543859155556198240448225207558751006028646541800861651887369424552910522242639590162932336266393736577683391666274254899386202359134707009333969681930733279996556317578717594465497663411293294608577544844632110698610686258015210447863263341069875920678423202983518575531084886952443227771542117371532397290345022732189496447473184109641598178351755996740193517495762976038730878638795490148612089542885823045021980916645393089337681347101243128852048363311248493827995804189060920955421264461709117408693025295653074647518132840472855743643401844708496044523113588258352526415573652012470849249401848083328593666621109414387631402035133164570781893962623246427435653630084104879830886066524084904116710350477414559120558550577540080449602524188660707930322122933880377636975382761446312899917734887068855261096701676437797436344795065568298977094826464526779169533144383047252697811608025238212773982983192049265376819446481193504049261992245259105188378669912726987218933695261684710725377534074858293771919425567651316828520790453001703233353353302448475311318707034519655390474981066369667089134903079064854011185906577439144420939878072179462375481190182820708745133935139502383531799831654133994202804137503717546024372605591273935255804204720742989081028393859706620702170391322719145819216381340278571599107623825466783482476853176499580225627505193658360173229646943223244322377478257318090112009811262919661273259878157315195841610605206530188313386904370948323093282753673677251099828951913729458455131792249073938265225329474647036799315623398283567070138502694661180820072130074061001049392959746543358426367464723904662273631704328856631196457412166857993997373785052312769963042355461040424076492921896543887226136222772634489797450753001344920508964698337309032448474207145710340056543306528811481959611794500503743650847798349387247291114380050375104940842450675796158554119478301785023498841311203844544464034977700801422906829595048572147666686689723305616361291716190921686007023218397558408309994499881571742047145093635136417315514083158316215926097539191112831796122231987266391846536779380704066347489286657875456352706943528534951875014334090490760625543879646838634230868783353816349028329503390007018029002976397187180110543319484982885241675353758185940454236733931159930022231526949692945421785870464478640904945506099205819512452375544625546555638260612037176559077839292137988952975782232318665351856693836015635775367555195510426484698965391173697930294305255801276633254370614874026633963557474338518394769429656852977557510731912586314117469653619209007200557966058941293496480872053890417821543555916703471286278701125847372584624295055153148781022845467835986012186702013442283882007939940244196231769374713957824206670372635608539371859735420322540540325215599482376062692935879203985148919559991029638464120369824707868753224321757272412998650915332088414225740293972898564027392836437433056035351558486810508393381903476519646033473431446828750928483267293428958889144848962415945619561792367343022528727967410132966717677787362526470353780440788123541212920236166615456625928962735171058314453780788899500708640217244259036588218374078917218748079170091216974446150905684728646969282489863461423565454402806670171743997398189088251462077577799138516945290196043870595010619799238509138210532128526883190860739009827574753147466190419592193932824492480066865157777343335307276268025587866769989035534347733996543132899305193145238123523161995906788689155386164577035837019296306637827520192743124931593368421991600391380726930131591632573656777149591978824094680023057356492442313836179184533471368743443405713899407391289057057018014389802060568891881847971940079246196569582590304207152859879428214068307478587110350083244719757738676680806113714184855745308285900654659733298705620115464534366246295847148618779459612169451785068711025699869532727259708129617324684666835892193841671147799675691247307098844978085904214246807359540544866739114635519310906213774206556516174392126582533748095971284818468837656670939015903517951975866329685852629293268519693464068107556436141532308170602242110664714125927998436079711100032194813316435197462843908729233906020490961324791263023515621506834518992953640579883363433909805781737444076732508050651431750813840286838584943905722618257452818506712989019678888230705308737557553819577131488596149751974644829023774423225008854154457083508794434937290530287217133073747869815768406120344213453336792924812182401352268055987653080840659577531955080731277626352900496568021626911747049937182784707137831680591784088210915445024307305830310169206106496604799323167905626364801763803886196202781385874875242631376403615149193856266233948904071413435305150612265278377066859698815899112439306106771212780436391069250645348510787852259626772702729309174073871068158241974899687861525107295675641157068225432228098510270968046294289714077195734513267794162216491260877827661666815411455881576315300563786610485569738070774297845282751981662141056505631802260403975775612006020745839942998770905569197006808699994497327004721783189549890808962240986047542290033569519844342708056140633019494487157358938889702110367749237802646179984947718127403772509020080632087634295536161104946824395619449800146561514353014620901206604701119494138934076129180189688489444196226938332568697334248098410897789753323070284642034533635573205038161553523224231317498857143035887101541392389943345190765415257612799540700226554308833442202656798285273003418464391864929675133478956330399881004499238922577654534644717941391660353969936306003835249976056082186334297689223178618862482270275977931679396603994876331340995666952305440043207081370909629061090815266021097546286976601427188620055695256993049332518210246398439820338806416885910273538529301221738837865687282726743503282925952742908284204879701591432407503869161467183336715999321519331295554707912184029322918974276214818512003639250643101440252731542580397548314696397716051947122717354225286246694381989079794696728505555972853366323247312672393556429542645681333754503789770891520058338363081166197045817351652162638898832367324609406796036931423096025298927073971098036842466367292804230255085622638109336780581833268384586290780539638671221206272031559957577250040239506974097744253215477814862907199961228253333420584471223221722387319532587567187289850134229288355134036507250466576728090810071152960898775042367385546853873798977565514890312948557221730764454414632302141776180076034589004404077217756208259573447239722501557351603592852122304319924125744737936045311993538004689256652784520267609274256952732698018506661037968535977116185461812519133296567101931232339131242213097159840590916284517576704564569954810332443990291065238498004675996822629099604449679877950390064847649206357535505464117958820179001693930575964003240088021271001686569889902489722983496138915898828024170793914466029667937042517930442252900385090552270621760814436298624509948845455929163959017555906859067204666249424067463465585192032062838419258470482705283922943753723578238849695086472451362717843022496952992711893470916701416172401436478406400352742175136793056606515487710215924546401543673098095084448937945716574027083518904731913205278628156485558287291904390627813183189524808124031097205266933720665303187682124940303792406423159426094151353127592032711508440201779612245780485636517536498872190567361512324581821234796320884796375715244574086435393847663075932274229116674418961622915987221708884861028396185004205594482002296886516240772789321762857524209542721273138459712304037382773732310057087059853850703437326052697720330489110448437548958676682234619066092245474410608574827193000205697832021575919137409520186365509076008057109472170526861079554538634717415589544022551885136092012547974138406031682889162286675356300577578441056096542514610618246689123490588102186972366359090130844402856995561475144480618825175899544466824991747746970451186386871496814005858677527620561668696190755151031864044619730535188219938912418348066283082608832004954047373166747279092620715717503241446388044442390377329692989761291987694981788296759790928433012472653576745446188809840862095893038243584344878221183523625508357073296092092153048258718923596389346716576910941937454386901206436922905272102763815490160852525524905988023892229344496184684914400279595662238976681853216000681032268357237111620906542335189460147387790309255940636526222938587338885679609783618581424097447050118795760007447158212802162327834805445237882939442733650224114615511595496402792984228484480198129687455083551333541494025540942023623420261232675649662265726669294801553389255831121689149311542421997776108174420506960695614600277631718835578101649070876506954368741738274203809694114714527610482327202069793393249591080197262603131217796464619111398725227395220622189593490567808994355494741208768915886827644882099829504574855298540927730091976576675958088397601155068902721672930105195500675552505955957019553036763578350676859739190859120340845952490436529403583857449455193506451793437287232911779822113499700917928768025089488204148514009477788352272067248365474788351992487202603940992339810553194506509960641622518760828285205963286195745228651431363803234695217485835561718482119615796491538423684727846632849113802753372884092131822259833399607494247515407914933187899575304531874700256011649963069287157017716614056982424599333706267892713688698787486530496526880193633564535782842000340736158384344734198217713589402910713073919675348562200805925204521213279529176243770831800780518749473809121203236708571451624583470746553007728795510617838872955354269259383790639250450493602054740507801270420329632633341104800427682403205320371894245065745624367046600675053499320729557382283320098865290406538027525603107623258680893959038147860373147942749499170164569571608648641124654213564604435305142796206945787765473767846804530087003834885348679426531967733160454286461758444500337509913878966565653371498164573189013030033854144369053290356800170204931818759676689305607792624009193134222337716779071833757540220575607504924435218371174281291936889362297609919250260986585224543893951595597887351099091451666869098900646097897938107284759854646113638468076925043159907882858464136283767103216329575234219069884324073053768413250042619344445305277330672206286885352821263168919323774722662991610142224983710118694473558321032757597679003154797598454072686605396037455788539965591876140468150318752159851722320264525608660763727032445981269334466990515351699797882721610926066482721725690140073996629178716828512504736161664194414917206065989146369163216601031086109855806757352315627880721373331250443686359968717283051699766255419769114447103202853105161872933410861010728143422646999645839487583204626533262510674816070152405817960653374233491265173168222246005706694301121754815460236051316423236591779569447570123383976108635916245014611122402702650109636271325078016358980188470811436157097980299931309605985811508579101876122278415950777951565335340986463773915696031679663465627983284321188440169295685693190533651269937954411855649287548487337068980245845779678457496722185720748481689771548391922086516510706653509225496173896804227862189833593220410774430423182994734846327236985524624013537871933700887126819342329651483296992178813244529973463548035614541733242283829976228611634824246729177746858518807082916195037792071293407891756678091821522436899302364755168745822827804023937412757861769645157267943155387728802371703254034966867142067384838006844385593843600034665583102134484820726486079700258729215423097638232652443146260915528908025981256224956478395384316431556463702918483225577907868826284110230319904782833368369381989244865338995862945387070121727601644803788344955541199788423400649954566229562823093638416745607272370162349885126617050736532414214268545290705422797030574430337190492308029733539248365265812915472664253282830140138444464265815986686501836731839572679825666561485252567891304470965474773240005348873184442881332053361685643971038893290686901320401781137694935425877749283532316918574893749545074287388303854921807602656551674046609845075400598721093243041527478333996700969789480959251888427629469910086501308779846279533141823310366459618749296779046802411434726700062398166190764840462918912405891430120381133249649510888246780088388931278004920663053247291917668725637227842635101972549685835957892419594357755041916882651569714335718971060969114343161862299230860902349207317071449798868117507857885071131516507997392713685236830322560629390482127413072694728111029087297664131219322999538972458445497391285963376198242496534526968492538070232038423851433420281595877635798561451360160523775816412501361713952366251104732020985140980773093246668811222358535661903343242932293181000703819736924290659745480252681589679598083616877685631811264136458501593038955975109057165250875180951530323676734627086820670604677639253659808979743173059294212542102680041651998886175057256486292198038500758729552547256302416060359565699858761237092392130992780971302450701010490339330287965800370895686163741178652937966614027279650624320466721167662785623495526440595509171800046529137581953283720826660723584269452908865290141031622395881144808949726067315829816335331146054033289609949848968859175825576526080492316891319531803703533226678417060724721062004751520584532043340936218162299226129861185026896971397206925155880445650625002135815038749055343783702575831212417448607147004767487137912250519199311417742740014937313111503705601444313920176619323106267832666244073618748706603354813659171614705248931569183616257545703581291456790218601891661160890633010673136049023713230625276473174763251898162219461175055906069821288865458134208829752269514313297868529991269847263559976770687479391808237351368187433200723052306405759713754373254465793802441827560696193054999293837912393346588238966393509896596770817073899735039343445130695468851064190447446441541350285516776463591275458955447341923578616070350430852662036452461297747110163858356002191622416523439209774715219840299313606412410494148378790250184621622934082478499062465604027775947522448055609893537186187650756887555652980686518250597825131494888542009664493539951523861230915329629286952586857525655893910406540837722221094837395507261515020527003230238185938996793824518979592657035678102442523652145880769448698453940897109528230228543914245009292731202399499425526665213359046440484251469941225428163261710456226581134156561701954255792987097519399992800468284583045677063463400238036439962294786404287467925152421070532442039538349817485478761352414157967893144995819591104320367660234819003642414037947285767364171833590903431213696628713272101753524146339379811543532745551501119511523830808472206975056472786055820893886672970509398117591775234668812165101416113925714213549632962910382964676293700426511916403342268016697703024737305941063214999372591733661643285237628893864985608498230339063853932884312877955591788117601506037437547676343365702226276324305516074071953483707299205005631655087834635846649327729406116297090995501282353984303319254347383217457218695167612801551872270661577192619559878314853982372362143487834310415910123597057972266553031024440299150552636089636007132239705696101079261415331935288449103448477042324651028223002030228458972790402647920541468920504482236034632125220859538150756618628045482945969796880108397645365322069812668510352702809738404162838391722690803973979242047073047353552349322188576520389739781195455420937319655494146201723344816258408791852915681949536404020101785664983026371382305064618139153657481511007429035354102961338107814185784019133448571898508406282269288079873294705717050887732498324904087521313471590943586154123595501407044002668457213031805317120583952389574208247339933557583577445140973833317390118232849295283639489636646767346973158458473747651681881178988789082163886975204107252688407023094375775095724579086344405656308336501839879775016296012062746744990296387683018428902140062357819245778511598899469237845112654047546217643678061187569053530247661691280765194024975685890166558309642324484879650649423761158544466329636900468092151835821356930510280806980992287209484771933733625963057703396443398201088691938193899888620048192967911818750251273322885194785046806271738347184940531855059525275496680031449028294961564195238921666345307636917792933459571451245463938210640235005683185340041015298276767109537269287230809557400571243351565450645255254182207209187672135651200827330905719728924441250178818296378383318775890632952220368112237604907304081024419634176661657053171112754832187066660839216295832444597248941452393840463157074592139196341338701108334195056955716098018168938846953736346596383838764049753625600326414413050586015673767716364513248294903495851211073859840393922392511550956700300127669336347236921923164113995572454839858495319466161583988345481206663258100150008809711444405446734461403605838840981490727904789477274474045641107467558724239422934250280561576956777851170489503999099811152645542914793364306724130162711868633337988964263639954317423064222800365265647745335789859605930600057586394129257229028437105464974118868998029179762504883613871998323145612000843184591882176412916577182954935796042375873618656104333964789075207840739586502371606545398154899130034404232294551516517694106469068521457387801882711400596635882163813413150322286641606697217389197866019711159463075474594350956150244504887344333498611695407403126670737810207311435359439058055345916115917325161280521946412537918381432633231912039803111476025207349753002918272352271591954351000112234841100423792280311319530674959271116845458849906643411020251448839625031009168975716809206408166853252143043689417465264938204448352091903563846569493992487712364706914829779571914684357017965179645995659122684730299192359116468075226546396469758346198078717602338194390861115465591472350399080770602809003539721433295568896194869159389573700946139156369613073040491695100407884005088263761882819298055839842082753060651685796229253020967220891967629012576360467391589231321963541977383696741202118002064807931163813484695006714443506614683761691163881963099125495754391897439998591673039834222480397891589750353419071041405828619662593557759669257278615882456433628043249062929684348413936330591408911866319117337137691160438413286145594565826653332531482149821850914474273357520260818907612748768543453969514228898815245378940901192047214797917020836589499497603397878458147431164611515516466775484027547282183038419398888130231588814962476712030099620261696269578362498733039714331504649809472201334260010809228949518773684263985035958960715175612512218493990046676222422824905835181320347143036238006704108143816820584367005060105062495542084577539713115334125767795297941205206270647274571795548985741594399753280104838046683595281656225750606733140436504415313376975166823152355316778242162712204167892101883362851391926600539353788604588074863238820758174829297969494525977666417937895162013095077603388138657272795023293279241540929175133514886456780126968402256429095444506093202206104235813723838896040661675024084815693188014510389566031024792676339216814434892872379909490080422523432729356080303786215065970379720884029027519714734860379030898697739836963204885276141597583399827948636082290710987526629815694215515213933912265305104336353130381174313992241383461759421308428769662224546102510354845080925758990160038375714008527112020153141225820293111382952287125353299000258125060697857354078543173928936478902158920558383970832099991125425028908999467685832852853922036879231362436580580848662585568349671984094230160211948200535183693635671401098595934915612483813750038456566239935313917195465427886250984257793591139910699647312386524456887659948517648047126003533763435860152617635415271015488752085529440811258093519293177915596433875751297540240876225524441413906072798135174081428735699843025258694544879337826662424376654754254472517999125994698025657405487550651927956594793806919358899359721615421396320649213008559816556564604823994302743466408302124607208868591234495380766372075390724132180093895199978362304863649219833303996518918396985268106063899368586842466365744213411324342126422030141105127368166675747514734662110683474228799692266969305912456965990269359189929200479570181108204357105779295287654913950970409348133531877992815875917686863334027301598225393939485798109207880940770392894053819354057080570816578200201344728105935086874214595846963162831983403330864661594396480466283396178534021123250084845320990293164415088354070233366918186511009690020280779068932120173534440573877462136742228008877193496130468440503000217490428993191926104430535874135104546084003293679117818990170888020740245814162442691794332619989259374542388200021732882283138400428284847608505791899615182383871687714973262697413818218782721834320018359424654227321532360495753900577290798680933425011743921178542541373438118133575405396321941877080536046888003346511696926513619597405208996695833117107217943988793547183532447330061851742123562526942373554659700465648870222121454021552599009661632110390146629395414506982431268318999753827094820537711643802400010319008463122329479315777549237485705167005988670371367168013784212569862488806711715651263915372923937111428346656066759743745927561407270129206037403242661482951713751641184826785279466493198534645737289008349527009314131849010791191975007279549603533115669907101990166527170192413002294008394012029108120787680361822775318559293603140799448728865920029245781915535954495463055896539879973174368882349234973851691721196980855353382189666764336514864577979792178948804819242922476125662136093277325408252374106426953324023952452183821580431841977139572848826818632224575370730243472850279344262274105959303386152883834091152639377772105370589387221133930277937875335674382632694001431927577883798253503083383288021384994503783467151754163587402799397388839374470818756008124473334833054506764536582464502625661137442104910350618359231902033652199794066698280359122384295549115980887027171791123556598342418443104738657041533116239485038532070761822050711882008165956010916066473550407593418776504578953150321564627225735836401574478651021457572665902923199902177198013305614791037798128051695768161751041107001096809285636858000137940915709920369651528292114161320766908773267945871310412656934331668892899785292960035223637323882607217352415456683464085995409450193315946035870786877505953207153303327175756221060288249799345682563055367745322627865154319513356531275278504047385974691934015379131631927745908182298719361360549007940948453280485360944822529326098002540554630519760408512128764049358586136307305578171156237872520502942980856589263226929913701497359674775055022037581820970928227581868310093558633315183044266442791775606334797315281438108439323963986917353526072712830848681444505027327481546809434807594387351634255459823293886413486953527706919128538251951566902844777449991488125849982848190559989485363791749676326801596609415425595117716442513497972359536695723891133590539345494144127508006956299317410063641656094011463251540588845975399716642861777998898659589216211675158149595892364907848627397264644366320052767548774380858681600022628815769463906772481711822903573580054637108895698578574506281653268816741698882631242734092889657636210827915594194934587910591770151951943783138255525947218617145406231378744345657492218369722955244975070411115736042654717476787549268711987725595404894254580785878861825657926233742858490837687748437554374414149235467496923137786721005534555602278269597725871565944559265645398399064652912222341453599580482856986629803495926553971585489106047850393349639578182267376393279015710068454890398833243420536498322242006205542797391849520832731214130077965400419044672940163413217891968267058172789488511320488697325562745088251833691113888230654680261132819397327779102582919634010323273324223062288485142930168445502296930612678801018346842142849158151029506227611115368672403465528186779777723974674936619489237246005339376253207964531074504426031751401095256249445492983809816413650224978858589370202231242536496162412062534015035493546569978822391083535723631845825624802086873091362370404814910439462177831041167991014802609217064669866533808890331792487320212818256207859481781264425989442937605527255169143158884923456397872931569970702072822440267300697008507825643267175155819856437245469832221810616324527091122878138675947050367263919739939747922331358482588740458652340392588791351250212726322203479609812515002579415645315167227867899691371959393554646031916250857165629434047843020687554944238414046719026691728129595515152649276031674371457013440639672293502935828386105244322755510355537460844138338558367320865124746570374113647828266597184412838782437956360649190783852543647171280851435222326469125589169434110065838776805449662207398979502961629879957783121244674964555718411841262859009179330737124474751305812419840127116033765511728275234968400202929039549158571305982601993734605608569976090051594459246957620008126252271289145332085508840338557745132977582745142917213186617689884165348640641394787297337182172399696320109101158558163569940326121958588475284370122569504031965865154171637778335598876976905330872203590869901934704160299611088323349176174315301267031035081564082633319139230110017615874896466752013954778374583190399076758551003610004808249074182942295456256311763846334172197784637680159700250679524171082124988408602924321743286125307450505684960226039212859893675408556527711617699139687643929653485201325221074655308379503183473697895245538438079837458124924814626742948499657372353814712823783096946664252170837452446186833783490846809197664599671282229622482318229412721194969607778166523094222800875493941959644983145330945540826704724891560602734296352783213655272384711143713131385541985271320423508435509523106817479778062081047814038315209361531953738955880546172345376634941744727509528668989336858039058771162187408868932287134752480004429212921421862537122331290395240997987990053214778837495458098167416396737889892436103842565325522994635814853611384756593837744298806795487447331155328558750655572739103203257410797267699332464184805436001724142486846804229316487495953136806156211595497556768304821846132053765314120953772423419622106687668628769984413386702177212759707437341438850353622921047624155693648615571203193421031713056127275553798111124865676586483757409174030021684918585973492878938049865692829639284919931934907789404374846692126940658527864929511411692816400671247427534680644005804661383480315088117256969401341565638616249493094142337497925925257420520900034701052717958901682841433820052487377836185973048673038273204156884052497379207973229304940312705735692052565936435355523964739922913408538056358779313204062230703582854368275379846970389141061344619385880542325662887443500376667354611519937436688404014909210159698071270695090515098291704123818943933350973361250506524043341317011045206308611155324176321287265455289239797293749204746262691174238256066607260830139383093990731659635345543593070247466959277705841812150365362703697466365532430997570455500922294178333995100273133872365493440916493291189787005401478241097509889316676604381257927947149540176136584290151459557028215041458993314937695888788072464238227173169933288167210602015279558744177775235077456388148817524649935044158395210055292747242658159930246313968970183266971860257133616819738308337138086848674445352552518001795306703692030245688925115431076724485931804370628237665046491306198409192783417724837526194810137800414969386096841417519570873638919681611960363112435326263138744419313813253596513762645856549742891283178438663176455248965521952735310141123450820053186367387769219086826688789567664247517189311191663726974974994361228560841492994520746734229026396029885495915600485071980463588807868279805078843302366466372305135504089772526286621931677245601801454615340232838984245962982066895661675463606888622286769175250209994563650301909795272524392418970856902927327225301980343983469007570088570703864065736712045359011731131223771907333721286238950478926368555711096180179585444142305847801593798867055754977938591030215801475870525457495747338513425094817325751310726600296193850489422648288566438597587752441554530816540068554902654002175813079020678502159671124522484152864260910409798037389925734978617664455188060738927983181848630478918181075916555031331995873448507713631480521205085463710486607085213330579944423674495976873222494198617625977286674578296424020950864013044405307450576828132159906695197301901009869922306769802474562072205219303120080635504789816494148731944057542963696499059140760201656157695490951337562406521391862242536400584598298359960805313173853933055222778859543958822192639862620913445518380766633333324047074669070301524560693354958997759491270810395460108670232452451685546719824237091580004428865871866421612065996656898361058414011858758713318593579769002698842995522040437349908763101350739505165260598433890840949116005476299383530472544536593468943062180605438191336691818498189211568438310767027590197383743406681510584019507498367589960336833859925484925958462342619997074296645218617642677257320593071440710420680912036477628360850454924229313445803123982244524647234827652111801108960193745251290489241310570166837783021644246650903858631863810801272139838063035270671268627698958096624745306044699841536486597701246016558202042065171083695004032329057086036116219168618717512774509479021285792802929410371863852620059101098079976422368967786276676222622440970401361739968305650092673652520649313936816761624722538059928579673408394368719236752386270595688465757948610609754146472184820060058024236411525230112488710177868893774786448644578781042764159989925659470535748299489627246713854458834127560171008749233567339086021594920873221758310972662517939826956884536339852083464654590775425079015814692523813344689716385124150270115314553440907530001647761585953857966478131247957068413153514765366841748599075126800161613129857318086009700057112282208091616524145887470424527431890024323522456242409904880352380856350549979452762511116855838985529974534822526468390002290970201819659539824088143707298619202204488017568383633421467909361922129061099892935065504286613270173885688649876101082503457107462518175153696825482874444398528106311210179303312787358983738269129169481054006383986600724809962735068703762454700648496414498582065290038173234325566107532367273537003871603495170588506109773159928022930843162041611063751950680636123517674656346247790130118864786508303465850375422067301240909023155846791167213341622012241373857364395777307355602642387719835319400463817833620596055223088905877286571890758473307365012579622213088853944049097860568488043082282933628053073364131182070455985292750915088633460396542070862964392815558045793086163825200976155402292910745516030568093167337742704839250537806244258847640932159566528514778405034839670161755432366854545632155884736774571539671454099868274002608234356296993351557961471759851886500004149271885329210041681304990922565814152264394237036880251591166269917646436214394857117082582860453977365495206418257011293604560542881917532579361528200392423477112412830254474227164922658847419693460057640689755564424719556186488606722965008500018321437471896612769921320372288775059756267288042814607761595370807992144929155042622195885377387031328900798441062429412287467427555079968915426351074467465745503952754973569209743484899669104456664953466761195295551007473740836479897359778733170284291737171942430258920850149941620710097257015953810988214824856624883097773968252639283404919430794922299917765738024459188595271418147324765395618964017298067914601035163670893219239112652881922333553151424974833159336824108240289647956958044581650701008761509599343141645931462119928953674553654958261938316645617965674701912256929641793708635517646276133485727427153126631259093947268354973796940787461843720813812376221033896012219166817040124849936907888699340239885041538708535511613408251933250461092860788759957884117607184367508962722155156337723700651280732527429531436383587200397552199368689156346580997869182174623069372203183363293581679110707448776162240030431015565842211574119670542538720397767580508799805853306190310353108699676287772197492773375237710433364087213564924358793428378944056970617672090429966275847761415983123253375092423367297481317772031251389249871063928848181984782884873014354152425393083204390333266430519255114464249612039824035462848099223446194851674228546940307596555799381467943683057801795864270787716497688830485755641628468947761489562166332673704000816391633914681845514968915724491024619611272242049713931853167813541799353735486119085070275018370778637753424890883317161540516389210825223437661447615001212194268133444868953587468640478379595692380687236454780536619042146096797042264507402132779871830364304819033271149574191790593430593804330764046440751456832488757283218238078245014497079456819251965644411942178355847797349169100079798333585328174700389141440300068853186119722030444601124248934774277582833435021331274519978746996929324502667689508132883038267302465933452918431868098528145509605024835631537534464571539520403482623210883580845644193411812817531523630745348199504405145893901420103636701483763917478691815682924635010910655264665628202325424018434685455925497789180679633820189721447431293955064501468090290156555339084380640518295019271695394700368765398955208440893931621529157683478908590041456365213485879992267184920268203189276116624396021777168282943520822495843602451919083852547107620849414311428505397352735938194595877489333095910442795740772841325087139085745779177920940779539421957453568388926840365106285276896643466362708815828151787250425088282277843992875244934343195857298169005262840502177260967272295456342735679359022929640075690448020429753647400982539247001100864465762225421422082975554123767738003200013756975055936533730126829651414292563590876804108132140998867587437149442366966830756597295392505568399443872739731449029495191219000995763116428926882747633683340737335451750088111343976816486587242572975301193206115653942238747101564996124566286189549783512352424963607921536856701623929233317042512024602492349509647476337668364924991782586107668522409547655734833834779680062436167700846804669101250015095658412548375747178732538232745323980477536975374662949270244678703452003674641347452258253471982169305195574767630211830018062788503345955872206513091881808227277613738908836013441065962455182705371766372285269889159664058414663876663790378513533723378617646802682784085410596707294947884642224806512990505398681234132289844088263420003624338712621885638882940652240030618960922753927137341897853119783590373909701773368748770710547106842570972549617596921219839785715937861058326224288787730375430191945780324412845798871478958696205082613888618647535024950754996126139428021832014621172821261779751654146446483305256530852533214571444461051492808682063505186405952300648075334525719636510140671653601489914499290556378846161916064653871108293634705469354366135037924040746555351909391788761331034493189797852109823129183754822110156114108079790820137173678235131167392903080127637496992352740150751106409131630731478687782545672449897582984279349213042235287992922088842546761878716022828048757998225780913708157150546017274733881216703201427924285289797683870535934199859530988512112072543482968377329125772699868709011453400556776721409352209164591135021841686281230894334272265180664631329598491720497961860231127218748945171929228087792211715106494023599385324639306396924616343382719659563442097297591962419925316125310680369820715808880474076806813359860787761588717822968875838442549001966355493057703534098145178723548211397851806832811454963119201078248204673585004203903053147116192454223889438110483159318468712685832294425115058433720699218106586683598631658166305200628888104938125143893251176358970957736408078347803011691851620122081662853859666875638642525296973163264184063432839452281665118899283547338779675046593178255294913014134996020283378950391937153199330449615079933180448844493418048005217218919881729381829107395781946427782453572744577685676549200778237825168742634565523299833090088133204208649208744782524761017184614245777031741182827969390673751834276050926836269464430261338852534578804576376631871516525987948038586615405117236920074649549304990152873914498209330011996366820989741362659884677602311196217917815801709007878960998191879924638746405603459908546286393040363566617760566317990731417634568675938105986242227446565878453440487229592645819704900220215584805900277940309583415116535968658712952413218824728964658868388761124805575922748615633353408659590480878728046124468657540883760202282491967870256558895312702745322379545740515408713890412574157230034312759105368937448040137079894873693099605591868245639020477957782031588365682898219332692423038379853155336890553036295403919586007326350375707174500870965281980723086909685441559214537585218068795016691613296431851825778198742453760509340451253715113822162630243298454604709873994095336912183843323489582026081127248953689445128472209261619599458118435289403933681230812532565726679780176560395328905721874649460923332155412651694028894314819421821221158343664807884370941515405375454441255042432762740281430743063239452042209541113573605410481859820579451975701072845883404170102874019139725623886134692486512171425892681191022827223686584480460822647340231288419360527680042765032361952859927626061092261856711747307295857558997625066035698836120047605369174277415519701715431887694731728822165303654376829211771827794524034921977294863576542280788240855027065220157664649600398859318902719391952553812533381510230368953134098873735166959930228163425454868269030083476744028470265295672355205867616344919611153727523717057496253434574011789138941724308632014603185319791445571280963109080331669218752492022265810424260709985130250527680274022640044572347023941919979312480002065685475759173410027737419848994818935355903203960966180214756769717818177775253526089057605373086001794515480240184140861071569975065458488646545525231121012147169405654389179950387691732680127216146274462487001959208215029208007076132735739456151942928259519472127895002175994560362930267012674515340223254021372533945139267277600201938827130934790166368118030697107256234508612174186524710490309807493391010135821635741535188979788973739913003751091036904653407162899085973544359614560015283251955824124732878936823027182282485572162462948385528380098717937840015956426380745249644306077409882665050617095840827541285284776892279133324135215926943880865166213058859175470362687970570645541009694605123677198940280020147330286416998239358343262810790581977699855811307247420736537138829850967295834119824255643923028651907000375621315905794961008792429364691839085651267950635694471718709814900897999706657886150408523776472496944584933889059045563995675793098363258071970024318690465912353254799917622931088291203802326053868845558556980093593597282926055752326039995320321451110566567210348189567436194523677623181698490049862730482458581559826230755570021553134335941786328089074045104207796251876036268932928156449557172139059408173210508982913493191339495155554839282912734096680311866778724261169732791808290617854850293917675015579736332084394157638341524396181166810342686953208455713287569325025026946450836909690864248689912955229340325149497117359991831505129603332764963455888881240099278457786016270236104307449946653368162140554429585274320093523586721948113023995863036632405834985238558794662971894496299349042276010171804582528198751826049652204584504807639564369155394977151434192651762987390222910539158725435436107179598204431264582959844442199746964946303584570935602048168391086231717323511196677865780773899141215953270989646890488983678205306399065638526916259443126884358108971209686041382128574700348667620555281163792920285048586070715578375501260593250163000488719469001902018767645480577375957490581477549558612951001804204599885672224552058606952574966888865069220745809404841014891073379517378569290710937387105791949793346625933145193299544426998972445114298633890927821586732113907427722401351031865049161586286554814261868755220808248414863808085749922875257192511059798722243234773991765306890450391834660898336372503085623105455482017020884618631560289632443368842433413660071995475812486485946465506783493463042813977100547894692836857531506388054728244710509099285038003435796585727761096432955571377979665286603519687186393426448823708437736546487059301280298524698657048268978233990827105889942309748852693925814064190404629845762104674487032696390459306555207180308034553913947550147390211250252242821975776382925148850066763631036620811347336005111797286440878215329582561248463565806055581583214852335077457762929011835208546126102378405451374966810314405018627519721243876754162611354897854281893911402922143078623571756448684357010298995372090140846138550323325688101992573213345989830743709318307210736419769067917775666318834486124063065611102915225314050403280402834204256235054446340216789901892466544308796581978858474817152658374418646112621371817480066748126566973437779447468711099599922480489771497560031813334415427568935081591149096044935454373855537626584940961217568141787603197082489258861161971210088213756832173284178730445262658028559720717844029974006863098365852052360892574150544789654817014230722924241767616252654156009828316651052197480566662083051462671506181488394038904199411345455321830659347308763842368413579067721308364469378589324094489730210370342398729228326144257500859803297436501326827104992071501181529565855291503976626348228288670481725825738417936641563451953901721759537323078840165203800422171048289550490565705084130484706162762627033865148661386762851809139630227841623534025888455928547475201321851180094593339479325920601706403590990218791301770394669277524842001380779747584343760176577962331745295024537256113939548405879212034892611780090841600497198096786810545964401882902759509851519370037258302726603687053608438777621406164730234418510563096263224084036196973729982544210873204902475948212796027820192377954542796104574737842326091827615509991901203737036479782121863721578836727948191812943194892463866754030179222864664479178701592134293495080017567766242975742272185646672586368089180666185359026684034654372446831773976695632041126299338343871922967522655271997914121894006082504907712859418697366946956401736338517689764291282264713352499801974757360505785267582604256611142317644693626028934306544579921588060816473628355048160936297153917822761570958272930432782746469902068032993290209213793864742612137971912716432714606405206982926760366617333920117515116134381217866738156312644288127475861617228275921456039592268558162297228593515481706420321614263511198343875303350743186999130333347023103443972961146430470786520809885722526311803778099070164748316085422507072430936195888484290877130716118378447052982806611192956352523541225857733247688813951272743118733241286215782572507532976424919745078187517810131816591569063335230362796048965853294631808580973894554346056360529608866392913443175560533324213470420655707760520829580270333883506177063146994229952361103852042156817804792157928701001559082408146964272320590040569119538133816168947306371393304902776151048154941669738041567667698197236486607885225258372205253724779253839727149631201967280213091753239286816891038503675255227427788742713599020132254574146922827422953275771343186170811804086783958033804155487136151080214603409647914706404707467274675844462626717703864703212941262516447292912916646916518725744910664610283125605276216810148841740468490169197001762719701952858984068918146156760444411376000879115952290946526565822949822709398060435143385353502181971551555389574812642052420648353361290833078331649658677157288595195776836092589304087738233052314479113520058204471920400701662915330883111446076236144484015070497318298104298077248300805023953924856698967794501301722654990170348662588844154932790887875651777459915925939712615213979748902107201834951345786343395596158514220809295253982022921480486508147011869531834526988850032136661750349573735117999723968862555599837048761208196117373210669814511267831025425110761100733077681804875980029163388727380517712850202841690736388940336675051603107869268537514584088030195357614119137050743966472221698158539328228259556311785460457166424542207986983341532177170188107539097214387203302840537153051904522075300564373646978381001789650065553247312193784218176542189977108714540256978814483412750843120328993610469766809895930641849460300541916552194174579158216886755433649449765200274187887975968239789083569041947903493933481261741003177026680887507070212869200871738012871958166473764439835105398237465550890469492179010635752987272253963980924254052462976691221330063073506678724560698611526218990464772493043091348622942618442873029271818870190615075747167351390896321852057033038657236074509651619945139841119418139807315513893948593502525725200896671469858652306370217968010265983244617515398502847923535238266688354766542788927848624665548091139581338776956383198873561318934552932957799405603020285816193675812883876916122878404491874643471056359009375075371224306899112409819057514512576974768208905243580198536743829235933128417008893642747513321216007504079043425523005971421860146203675205968779117631682695753484840675633796448655494328246773871830687627207919191881729421913714157677163321372602185913554273108194822759769529308650626646639670057920350474694886728427929698588573691758637129861419844900178747419962514279539932312433211269735820837260098492841203487074306778707941278412891449667685310066284970551876091941323618599019329466922558735090235911641021064071336746223462592160260129814605942076923492170153439466404162004943510678133895064235220649071795387850336069139955833076664729765046677165956335769504025352563245435895506045607265841230723006967178813994162924610494432670224596955400076046837637172954328596678420657296849011328053411695275215413265331220195631847089015781599034821038627636301824088614733456822897984818803567388710872387792661500530893614533873941581281148150917802991046439288993073498406298531636485588708078048303373457326230981719652293750662502061175158396262403678767937528037616021544118137629382958315737200856605688332874113204226709643995714837051043635831699707291267726791983310768356699432816112530701491438761134034524915462390578817019152736712994739483058359672565792036417817728018343680359179490857120023945498909229691673198254285016404118978172581455377997042302125133120819029485977611396258907720695120321242313066525333727234670324108639409919979468725996995541624101114889849269454636936975389089299003226401126096198396664708735317840752162293888869428309581583011176348178819759328894038038205533649440346571150008583278367184888237331696101991742365566783055537224383964593541398068328528507736656830631186230260154729146624148849674985956341677299902733783534987766708138164127119327501671882167303897699170111120977082616125272764020882297062000242770588116032467957440031096541947053511956294683807932231800798658937651689120552281167859502150170707746179684948928682226200196203158562708436290575463802535278702822154175613890228847384531629639431170534516919493035822017285827185241226451825553132465636571853607045123854174758420191743789641473359168088526207816918310456769669208537086446540526552003918733059066122493917559101220278471698816143572857023706538422306222153466517179269790483225212641222564073511591214843795548584836213367308491038015460969471212617982379808800428025618055049003371512710537080685288914865799390494345645243707765067238114284143143989869455883649528056838542435926292139793296372445897023877631434747898106173877635852534200324141062250056567373453017829757848984717473090798362480579608040743144322676697476286193788337947369074256082583888567800109029508780134363922141453214883463116400146848131066962226340827169688010749790915431624673887586936422795317636284171240962032960715829144487424839525762279068422177478493849001513141947979757351168567461433427598590858062168669879965458762626805957646092810793361990318008853964463512947488345222565398493406896586728713779840432790906661286165012801873813559168910687444771615973403404632160583681041247328225572483531545439570707652832483723103629822808144396270165928933608329399314353136516331451560576851229028137061822115405610818181150196733864810078462636423207923850582430102179396276096965989414717411295119067156581429080277724247487180923501702733381929823766101132309915877363043526446148617894913804509527676956992301197163912025443944943614926358500201135017295533364642476160432188610267664539672715144126261928239352564136528189831250300625787806616968466549365995312751647965172819604547218952616335340528901110578627017195552525529816919925972637093741043780758252437113432336560735728778785448168354208141539277462074674198739207816284727723086081301226335271882280079769358435617169352310434330759901092604152801708663239925732071809322834284477714009180712792854922265540945067198840740368089311196968832755237313589610121409080115117568093345603568066370034986961576246711583951172778292010743318467621635780044757477023945938833752141193131987812420413752840487273337286741493618346494142633505271977554348108763199206388504388469336341941402304870319903547085427635448606469731118473838114983530279167757047525410347480299960980461996638926781667061863011377047423186491222746330345271876473596366523672260934200143703863669133484204901228721891924960767715594717048415213346285046109873842606007266226046838075174965417451576425043171785004917810902810211320123399878229273005077133312482636621838234554569533562126550436485411074493869173416751883740621733412697668632217020541626504945943931091708473394120251304652063124568876896988324853308994388872166172517848115659791938839593632884663181691544942979818731153389145970708899277017113673075701462345645485220777055959370106197639905873553725137003705226487451868275175653715910399504189879198655666475425720535792857431419170864170710485693003833394691925976982653964434749278158873818896354678489470195905007802636326960109752759180948450857740272533218762773171888923235751018214067500939392693830716047535951965763233178370589358132793195597488445744462444472692586546551310609029709313089419143815906104311569844130429544782057473596847825751779736740873136884546875765186393160398511275054707348940317667695987874209914355753762367939871375859348393061074834475007214358032705965178125417853381713406030236273797316060643594584029620415292541903114210535174896909921521707985254832709539333662396389877471652403646979849399505527575367633736091543657257656333343330715329984200907797449566965081254496722488296542698639042646719113031466795119873414950531031350764992965659291831802722096638830785459913824051579479324489448516873512051155236914246939556316999294988973985822650928353736061938210090970637438231982335446154424837039447364406453443920902798693131292788738261882829893890288165267245208099364876581427447276734250075347057972543501772501476176595327931034409150828297276989948930562791938770121149862241465179685434941191824044674962042049162981504538995665748827842137903389521265615119785762319093615229736969894384276576998397975568295277372253235412802455128438538857734927248750159561370684474970088003242095927996713312994053386605530193331623535781648321379388157104934859993875409921049675507967413828314068490043955245009230311133516368500710532552554171534547222942178106958551206707016804781239947050671534726359982589254043093730753456005805367771850188335658908361908541211916170494690165243834451079507916401342197646339983355442731959125769084802705823383980587204424761745941972327429710701978309851324831440247799636865274380647963405198518169455452480343100775287997437174701651563348976330168484585311550716168171512309354297653863229116134411252437405180385479903950024923921599407327612712120580986654987672564722508345266265387533105075909677136426937887869545777656692255604923360677518293773028600238226981452177428365298622758678807596643111059462409206880195723538174828781227782069504870047949276387674752780562228096540888922045041460987874772797782279496005158602265375729866768775692356371719447547071313594728931134743674825186021123943862592666388592583442747104681507688321893802889290925256874084455391533430031970097807251809460902662557203145554109001516743683274671068666126514756313247610419593079635565293532897387970383685900619518504409141307480933223989792208692559250822361256113160753418568815377106431580310501388401110747145806274569004612954466550063021205913501332260037538804482496907499176120140520745590963204845222042908627798023090483164281277195542904528558608113529705046932982600686768768108356487955747047167232196961855676128776261126429268657352020910050844497295580952721589713693837402086443924476696599212312595362963254371848844777278265595521551251046390896811099753463643833576536658353169453451610926266020795962693209137020360658768427255335637002510579285213250712777634694446196870446860801809527109264187215849906975953250203316388476493794728131502068692151810232881085039924327701054229428490275405583106106515718255353760085167962247228743289955443240154955009221661361933306883529577707588293346002558905997524840750240408331758703967470906485223455611564065997487790163034754225209824831594425004888017139671303753683208649383572717499627035698349964012260278094657028371720817074966523466675363494959986847497126501430785576643837203275331158568966466104758709570478206582335061529954028756937283482620233891246903726437095430666354343045411469702147315643760176009675378274612881090724281875405296130467109068464012716045453057868144107026835421867582926869568344847305779179695383253925070279486898661154047674977431145482259735410948401441081300780489431524067039951921959672320240282787874801091755003862405036980976284834130283214524407149621739180468317831915653899043115755664710902960703616171133501413460060729944703819759419835155802510162911358312791293358164141032421894068911957392041838692693817117258480502532182823762503285166326690614708611802444172540531969041592650905015394951870061210964965510545789339251239343012226284794707462154294392752071856295380096428039521321763137957895890496949517275863531014105326219260625193076539125523625404774194914477350740269081899465673463741423284423203451573773552682024887130078550946009039082124080501635507510234225573319746276468871060249361527847125006124749162513089058260110047366154816747950296225785359035926388554117336437218508784055279363386297944539886381362028565110571788755267850074183474691061735957258655528538515375202690698409359728479196785375928056499297218689766135416619508832520307652306342735616034514407047267271188468117926216707808476001225440814417650933803880251149814152212167022422840270383972768535589106467490753260614210379428967948143679588228881050680658177529499250358604870339938008436426835193275969616370196236531539218737385251508355691001975003397841129673148369438620639195844217024063867397054681990335886918811459045812249123501576928510296480322679415484698173868542385032157228424190997877595216708050500084055308672338806590267444300195745812293841780816536522697481448124112867639990845395269994004929212165883364572588854165561477189661988000744462597241180216826060761054529302614792699422013450701666338660330380478836594842688107319751099498143906336530440533488103029802953214585931203127925836985719489902360633111843333433995870230643149202910972383911614696803336318782959705714613752465683716900401377625325138434593799725687927514838312614437454911165294668721145071300653219960229386437894964281431616752395627696378520305509233623880250831112419448559440432832119894938191128425310445659120274838116676461286982813122229865942843809126817401817705487514557268691596652933638733011701429042254684886938753461023699008328511055420827838419791025841151585580587000531104803472403258397804396403335854937745308005168370133513305659598512105887264747118356002077305773099250837848901888793775644076066443906687012796706733768217224697268905248652913049338788105429294072499585177785266305152468056597474707488963363240069381449352728878282505326330531849187025349900956600578805969515250913724423441451236243801324103372874943590775643492770262920648636871056543967285173615175142081971722060469952656979345124392847724600831737194169697084869789317598111751781971583821623186107905286188589165140553058740412275446318677173704995803717780804974493223553743269757761560694033216184037639452022885217066911796464828160142870169299893862270106539540309832651468510883765948866174759207609082161299116701681608990198980675672759406166216889688819361999026201540594386899085282566340244904766294286235012248659733138485885313147295690483302362957176411448893743344799645660018784490194006894500992276938991159463361460679423216107585513370378532790941825985037490990985352315145903597208734125457560757232977364579541812165114576070277913218781500919608133438815860861318835262341558848630323848045209918424292742206851219169420397048652160898182028833082525963797048375910569024796687301217808077565403512220899132070525131684549559347710737177395284639018036269835891664984504534155727491823569883931768974221662896864159968040268834590222951083267009050179138591754221959986792202055661342552825944611402346864987279272941534457615076208933176584782011450424213001900882453842260403653642626737674279085727506181433670850141786558975783134466396375148141524671041740013234627464419530220874459246947479589568850162172329987058288018787081676139179727214025744150688065327546257959156332848740531037772521174615636415247114072952649474021192202736049411933352418348019540617993008074047912524877200376610897032728405035710857348664579958055425373612856947430828073818002593094999141206540028728679684002949806667400751075612811523358664669389617494344982726742668025543328939923152252368270712170427185772835645646108196138214575829789841690320808510049417006185536943276411417951474874480976595585152057742460877455264289532830782494781484070375257476955503940447984557273849002728541338693031329413761356179330342650552966552933492727346553259097939043802705694866408426288565337022141611838969929585638032511188382278138364584826687322915599770380929558464729991344042726665184844521905915245487804818840452821769790385348245801103701489209596948259049921198726692255827061300158716689384385851481226046904076619019784506177714820127309347461397441201687507475348730827618969040522429178782894747383951521142330208203898403991125019858879415789000735349093923471734447783960102692361668793097910398685001825427080397084368450276297245119098783736861888860332828614318391336214689049705063741770707735427151687657492530801640392419133707606929881985299393868265523507648444785186913242146315149026868877379509334522283563960454492795709034318029880795670582088507704166186755812425851634936958735660622510410974440829146084184887753159904876463855474098384414009050692063415539507551382692030517750446098154909912855983664567028245783141844307646858544191075597836056925441155813696473572967925571653126731611374251391194325769140113273375828673470179509094397669334051299121294196064678702685391319643588350759765113579693501860619158848781441612761269362068129097514028841813382280120831993291030693637948981372755508884078046003375413252954470912142154920333545031581200683646677581082271627194999384916050806436975234206552124949913193843483816985520599727422323025732387104981399783809935131250400546255221640585423467129900669481198159391176404251808509375193189515670017035561850835319438138127670176454477764127354241502168392084723031758999830833280324422032998660274408681992681084417141627803445000232561934787897577387579684139123358563684907880387458783741451961505843920366788231203719932704882923305454932213208747047855886590390585913218417008822898728721615830037973222444789366322787211503754369332820216002524998611842809351808120282366769745087511205065240599212245560810192627097152943460284673183884383485234315500653213765648513314122167033177355650504207778511667621858084415461356828807303709838836504918284854167381055726524694194861026080048700223361442556193561003491674750157016230187687377823925045987074993300930525154750403530234796409395251057687152165381512917747747071716797815320117463117388073059578890762714017025822303684483430941561613677598785474543641488224882254595412067654891503861987835341736341819137720043711164168324562260679700628244220054906443175886796109224823996403011583289311434425647756377117031792097735105393808793037880855846404074730809306420464988603086005686762760692251536115700525415874283889418108927778467550444428870727677601788637687492012951305709030278685804386618990296973033925513665814828253399353097535069106000926992024351262177185084230887861298451299615390562010079571636207672890506649724684984572066798544810320282558033840056898891147934206709090559602034473056574042796475261767746820691926582941787494813627173601861972008548516634858810249881895196594895439316918599868150489986776376615941251616413280511726068030088416115886500450220514400076320765188295990990141085516082069400810522306295306729986160582176035793293904294585425408362528558454290703227691026848881014970919402672723426457602115987051444290675436989830872941909750805469828408799503320036424621535960153211078153298376957578681622474215987202785325571146606532015705764917919386318636452575483425804763036492449265511851737657069469180373927428706990115904532920325478366782556953816612756059081228298156564222248939749633153436318223115448067946675980937498486541087113694287589387604959181685707920372479803123563947179313343257417793982211544827972863662821980581917695152050868764641750330162777876873214535662637674961433471160078230177435284004732200233917980943014872266560654246046658890815423536560288242546319158412382214992497460165919305639824264811131470419352675727442398097852271716612816065830946764276888530950681313688350299189202306174604100155998887983156754994101721268158323591999391102204102350052885583412170663220657768752115010886261531696037102517371537071010659826153268095884722336265594482597378456038118614985698621324853016128812293928452568331636232364039949164260537219270767097187036566246969112217762080969135698013696907913708737107268299789126205915913926970092061783843279754134027602105752411184028950701469706795197616271202017640043153221462297050923649626290604406545113634377512223533408109355716504649986065876724548234839832908591977179351895300326773018413468326031765311722836575630545804469158786948780756900357718077807506352946067198834299500476631437870526943382069086945832514429479866061562476597199724980951432743218783196117856411203926225716040246178711347528074068842293795557402864557872153488820090041233906522617871281085364017223135866023304579004539732258647456854017493324863567069846146801156220115529021413845679284559348267963884329831285705506613178974145525695763399466712638030480483834775933971491674858092930907716850960807979946357074157633614958565357325057710171544644179480146998254859138040435266991035443524021506711660549900105257015165316509580644904156002810812436319491740048757067991285214587058916486556067126963902086462473625103617532239834006020759596606753065290961823889856774086898221219029134341347593694634330258247833052127616061940847358846437492216901234930611083161522877118956436867329343278604191690402567971390420778666931399834757154110764516062887936324531799367574418999705239428312747062799598761931260432845096842725938783955038666496742868301773676054618052812656516003314176507753098939286487250355919026275561156768098507975724810542509920524544980485271639089229627734402707842504303884110641014808803352026012966887590090725846492773081135060474852246327017027321681391140280341622648092493920011121240901477728741570039363708293731991920015056687902144524716708850767847300382953973658715529317600713134322229457328739349726630191883388122275596577660923464791037290455017255315014758818774322261873209879186874673498342494062725732714868687188455036040830622406120022902157261788355191012210302564911918148952253513393416645808798765021990384812658592695958138929029347579262455658600696491631194422744029697696956319206223705424319174544464385366694627183519219338400990747332921290339191158777238455281353859576815997406733766122036868074270649722721922570829905889574934952392298198439916590795002702575348539223285322858064152412593384563031171394669480660697298630497883341577045340945505430470815569807820166384763071620910693305679378896458551168925724848537053080113649390116794746555867311537268099210248688680928559275849252147904137226381418065261468390815446693994102745067601709647332537253085759976716065665793936827469522852759350965586627372087035893553421404521334779467930079593978622636960253556906458554843090736852839928631293270317560697810580301072304575735369760530094040415823071621256488039347812068098705861657807247661149579375435003305047735924094821745416766725473313893211869111755974396895418126972050983284903508803463420876812670410417431692760074424868590423244651168722073173581238634891890330657156014588384631073942161326514209943855084928123436596852594858630164524173781638229697274803615979540498014874598465176317944708807920192036997682044222407206025722314898107582995607797941509680987064473254141229578319498685465618837981275412159540444925050324755596204082269215966018135194821133029932254549639308687425109769992639728336419379606365473228154591347930500130186987258252775321413573148823544756500670937259181495202500196695565943454040510188011428312632343274514659520239461051177854582849463838824492082738446769701790965879938426017410877041017522117288167919440980882194952056336361849775708571777263838840847220745580170950420744311854593969536780807796224692552959971865413028829929630096303340868685371185882747304392618177997666756519775983503216315396720856442372832227857063591725090872245008047783359097339659667920489666434816991613286676697305865936504225177052275655742251679794757125018104333826655276959082270779259256383262167312191776887764809945238868353328695006861771860534435689905862128644614345469480528011169570890736406910367730442695432207232163400623991775944581649646912624951418740288255149584428492605713837629944620590863311237218545911984251579941779166365437954560648662174503069231166655770986132570898595466767116809770335556164987485035987583354826406424523087801056906441214427275129958728969272229602756775807834286286027894488580089288793362545085173331774114397197502979913430953919045135447224442181334522157424731564373921746746978639654741560875358826506796510007540542187703561378269164769158883364574027509649076119797158145865399110601495411262407627003418778685194829599579209513699304251648289528060423394976520468173145386369038009206045261379055791617649713481373338093651065135149472063264773723497514328250679185604139566451604097485049569064095621273705129202762676513751589013602856107008459757919157932388141960140406088890681608356779256966758980006541788460871548723332636645244106287646554602625358084945177712354455173348546660302644665874732005758050432474817838755760772593419292692921879106351090007383825691266217550800694648071869399497750408437506107121297780328248340854149159943974757360902584905165095414009462189733707744954852949075054395006887150428475012553160723839872638920118873610891621633285170713145470990752101187338815126902768490797063651061339679362309245597848269094113861903872363586468964719879961410210838151134421327033445236737885795191366036983087303179154364779442081085374166468293084480133707745125121695424719027804033874487899803049306950357362595340109453087264681398708681765042345706510747918086439713371374039872540965909337715197705418190114428457812311704961361603912171162578376108470404222102852094477650522789874694782023852851130806092355609722985436072490393635425997152171616736266069448591627225707700157333349680073881738256845176217623637410021956785050160483698952260012458236359990120974433354580811705556956748373520793274303373925814999666294513309207628541285295986054844288235617481274021229103811700479548191645847497841756909474274761171729489538419720894096457178327251374361283203126641210961118635695726475557280319438805158972931647849845417537070550480273352719014572307621964864652388075595246943243180138027859187299482270376640784660110227749227097345208495086361382319548230999779161435025501192625877535020369033587960401509854446609330697855900895311776439694255025405177817695303727249573233961285085498415564993982068208604392704113330657021533209777716324004234595865727140848844316511030989860907969088527064934394879694358821514446870671574405985147627104277240532633293180947489401217589270470341162129452119081922302095802295540415103100427707606535250953865707268812863734046180611042288387108855508357225208838405824245740392956664542540583505495743659495580787307329294752298493117897186066485312213064912533385905738983937743632007332926860102853852063425704951124573393553114847407264593832599897332443501620798896327752970571062496211073864575423780613671780916600249212165512563568719820821540887644736461300732389975616815927506670845783701949397939604487452235040597147161774961482869618838152488730871330424827464870535875447339732156587935648216440059763631330888354885065657522673110984731900827002530830507035230124308575158979146230941645304007968617514561181977478244878445890134018072727273292830131611685923602787663428792572404137273215033176099468867126103829004721759109936923420055056891542869009956308293721699772844690753773087987047693384659751350515607538066112929894383239248174391499541684190806548177373451136336793775654724643319934214097481718849958895037842346100196731626726425081901495553863849589095879421528861616815251723527587176391766946608401554940911292009302709991569186053910547110202196547559078454859826240920371599221845383113390581462632802553234838894697032514140946403001218795647731524456976123175431174431721210856592920711714063696598096287512022844594253038974605903254056158896626327662994029096568728189759979623823107342654892580950018160272887413927391217843868827261296450207384204030934562807859748667643593644282512708024687618160047122830090522131280967075044860710945961772063505048081764993469015268140209928745428301282569315993708693246888774698046027201264614999527251218750029389339327849514444900718333588267676902590886519502168732426615714767003028792884834525104770222929945502332832053735227001842934977824388012417765773775437280828216577016855490770352636871774281466807482714627070172268730991799347643782231756407142849487163635763990446581227694273797564941133174142749663950042650502263744572709796276487327289171694366797061102618708507064854579408033132114321943516578827656502133821097767311040107750372221533531076515912788698002165339252537522767803050384582746806167065020503512689688193816788366459283236961291958088476697747609237493263329256068731420492625018786621381404802330187224672356930486537870518155721947349281879265022332038815831600477451162660572980911213494993390854921382610946658756592308237784361559208475872430396905573954885525298427536437418536711382567809103249749201529715844653812342478075564488052827976002993510711435284652768804932255957511866927825592269353358189458632323330373059087968920698340315910525099327364765489934081943087260747404484360226270639604342387381897549754433646593704031203484773331673998426656693902117294953014533919406402397625656230300876975663824145895906207882392865008808597294689843557197843824606953307983228230237718338774693930506445269999428817837418562881448634856375926187743371448553835071923496843898531998214639071594023549792443855501265126809314931092628128683166867720159874540620383854571329556362245289538105457111617270039182783197916996729757900901476669665716768592769502457241828160292272182179534647476593237178246627854218229037513685961286557195215572028058379335466962061913423018265600910958239839753695615479778601218009489390693660024172374115248618558483103909553477131445613031073938236236192167556132230987340648416928282627736058386154983526805604438736984523530066236721454466815624244251557480475326461595647919201946970302403121152953519667032593621172485429581569806340574305985295407574377074260592491970112782449208027879077622601046724334448647934307558347811603651924379925318343628326293745236815548699192183569490150904917484756855724076561396072178596371905520311812661546760138217130138451326533451098826359618375939132551614187482286228317863008500221663810445019397903674131895647985788784046852700433966461807552387528090152221194460314072973516133253977141155926304450030933335647452536580383898495964581307907269348211318399453354829507976634178377613860539310103415984596093851807357603785551511718725422642793493435843895833461341003682622209304685879386127550033551490975882901647280483252216472157514061976907932519406682043320583406018648231911504791408199508600696687764555214393909305597543780733395309702076506724291449219854943267714423020567075282509225184644722827402169242868164636832970278303467129262794291787570138866441685987693848756034227800908252418613970208708296108394550929810588676325267652334798493401539464881674101582892900754974727173577885701446523200618666570665099691855283996198717890837035936775279753418624102868026326299316998293945606289293296390719149526430738664062582894157565061702269343902628095500410481931576141264085094429466175884883288465440259932087349765995774559703026424855277486204686246763878281329644435980443701326753933960480984793883726060903615279294198746910354719504016764226471649908868898993540530579941875868482940984825313037372154515510442024889125224256854895721157737867765967998830972275189379926727002820387289841529809902107230206266997709277398512984692521653084713921218430813014721144411479656750489148634457334489616948805662402214569481232378550655542668770563019114722213568640293586926087287237755715373475985565917432095290784788130631997277802152234065268880842720977699688574900169494060724333895788764695316053961622660513022189356703507401942666290087429724698836569920105255862216017745788488069767868336629402372888126634028887940105984909001304975292078362475024682018651655055932700883569095289763179760752292686236436255927777126996582510132145703613102085739388423188781692841297051969940731562937087227399742045761980443629797728481644971951144267448803740098116800917587303215534253743876268182997960558145816071450100965563892949976313434710727695291002368860955630523182478615754567422405595010188480995564049012933482122603148371802612907545912845171108759975252340953887996334163948869203675044908948229165615649975315996236888790429698868330247834146231301925704991388430003876016777641474446640770448368001576613771000361253099774223889980281448448281338573617800577700417197524526334488650726399590426227449103864590908798841309177144724067824590027811593913931591623081938584647532243086204053043608159368515279123418916070449076912102384904215573127347197601600376447672525871861475321364384836310889717419839979677054425942985899836637140553526615791477368524092062747672122731666199751930745679511745025509270228959460152474540809044187411311424215850954256847256543542296179127626950497160137636275261284115119186138663061726203616402178881405075691623300356484670706438792361191595291543251470748913553181093401779486537123259755616411369050457264365621421050399832347972099777870396277136105152448846766391573834649001172191556734980898877988945138522489144106830555102154033007194536160981817065148386525395456591229818858512000055196719626294675269199186441825276174360364844632126279260756986059707475942822501115801567325396088528667873747395709577917999661684259674798712227862736105961892224908334232644574184983481286847039865134025929087352882464062134907121496088431436294367932452932130956023622079193597511000022433408785257340641015191244953110083517506361373607598365465656398781144217098246321058980334182522828278286710872500407190901251973035734283596263679795882494225064827756536934540719638907092728150597433901888847236058290096912092409675801410076512723391516757140838250474655288443787474922819720355030616890448165055364539265135249225242047614145427364621634826886914626705261306393240120169051576548543450642542419757072321984281397178591972208657384357473197332087323784091534469220393458726147953088086448439071594327543583411780009294930663308062729392002098063070042731745848896898661184057922563459975159920686476035957904326387416530466599654962811139846584281906666478263544372203636690946910201244289694332545739478121892367737400065577461546531307882185857727446407928176838388586021125741824071739472990717691102587361419883056090644372335515576823070744868088677148919526459908038374472918133083665931575624820265876567367272332862518578223366729682772287122904762599604636236680601679383062222615064236340608563387630255235435587157121748131198772234341400351125720568434831735841896953602621063236207626621874616549612220527564581517558961546181997091906639124247725476967298417849398248995299624697987975095014507532186507727432456254545604415145261440106657225097794124227860831113891896684463561864443636358593733187310463568851854512989653754168527227410133947052564920844969574871885253587504167420871180374445579153752780272892230168661974518512938472266725736729823565078832917182400483014422208581203087723147169101399004299300275116869032850790953241392666796601076693674404690861503888465016728109818940141099557696592025224646541380273941901737057045867757830672167710052640068850748827742199034561402149407099269739088744092030489837793383986610799106234288479954744381803704853733558766937131829022569549417901378183266723815100650468698287308413390376817896059376231557939911381716812956552105667859763948622804596738750504531657453849440887834114021609625036338097075816746527018219979785888678857905289677155631800899869380818081177447944631217364059597958381364605161979277745295361315805185097998798532916561092060726607133076553802599775113531023162132919600414692755583885160652721783944307294006968488174571694448030852359499729238172420677866978252553232955874843969837776988670828168217548050675000618066338685647422991343471679401966826512444801563019645143551644665756643456557493527076366940041816477979035034445646099301382359983840025102585735431294539966710253376241861931143469118715585947538615044512894556934580005151705698436321095909519016439658424592243827440241754375982618349076027509259122074647167772590326626865240238205076724583929830819074605108401086104645868235024848442031312864703147731967703976626172213396319634865986904046813106843735143540198818550558065952904882025841402587380399768679295483963647743266183258090761142234274786848157981488610122806806735989992957109557494960890201480585357112121623099649716571460515383700146981540993827393924949085464961487168705251994635003704024143795770557717088778613404294149406111506776910470580622858548518702671420308061658136213708817841145263140748250416216142304767810312880676545066866668409906011983665837987986040511419053063531263026382402042737575641454530874789213255969557239082414507106797558508330555113824664626544549788684441083416692388060742776096792171999023626180217112143994088569905697877600515085454258046534274977992226254665366698604314425174337992636869808877804110660249779988593057156772702097145909911791423446936091617136673197711513744128607766281947248365296843485781493438010295095725616101659549674242773870647675919649897073520498420561939495601679939678094661911963370998189752128909233928078578543287768739811823707023866956509867111229006456762878017926463788282560739505477520353167568606476618420372407869980164148392212286719385633581520311914951072103270694524528964314924506724693683459763591261613598601323725044186603419978428494627421443581194743114617625656771656842733206504482006492438425983718019053322839379506022963866380475826913317362182358684466817537460915457602364263604406230503324649164089677584029957190879592423433103269570875718851836544690848840188541555910618881343207953990371064109287786625581364830306256326433865200999527286012130302365847153873614785333428477531499458776041610637821071870320735183528401752702801528204246810892323208782518021046700285726230983548888515833303792334433304333642520374465707110037545209542807104087437538026731837573083276953176297888471068098057875322171106366682945480441486104006808175251356729356225312018296091367174740037369287951725068707927514524080370774189469583164575327446921908358900828203124783441180363701933977374105012292075897209547699452190698495486418766886893759955771916718168362615227409437562524832901906206229829516340512334169768401665205886610568369472852101403026490624415849074705832741763538218327581478116598605092605928505224861918689735255205376318332560491021296904204079643025410755182597693686640598127429843688522435825329219852998683504141623445282893114474203572215249423585260825325525611774482648628923641584793173116883059875561537993742940869691522513809457727410835633314390655849529496641152816827890166087820892722639225096190367554054769042442436484527417834309430431276196606844457153997878599378292601084199867929255881186131922833007330548483076533182133674226284262737169051658057505293543067654956679595140165497318036986532674945484208035832335989998579915259335217177722825277172826027272507673261084317486124457083018972234831294824557316326037490103503023234274428587855614786798090300368824637123254956288292393350600784002243011035473820984112627200526261970912349453700994735060035697660731504555078881949170759497548220403783796100915751418761135081925978120264114782748333363385089186754598297997150855721020425228301875664459948878727881093686394539874664682014442989874704744449445417297301023790900567755485184532525277070062506459768575834087800355764096108084500215517721954097693919357852747583450871326244311418664565641090548572169260620957372608205874625242180949999464094599566973079990367205205509974366849518822317015430782954171653558465360893303513217445806508461835458560034941752629130854126617381439584782036823714857413981021064103822332161858304585783683564179164666212927756096635435200683984522938395107234014923800338311856663873373061536908372603985580416686952652629469519968114544400985863269836544136280572008311621420694211365970160181893343586182984486336956188848937823726431194221917360413532379180944238179594148553977174636035208343936144609907171734400439974112103156631214218141517335240271525025249629688943439586042107159792944653824811176019577279597075471077523200892674027984680915847319803098535680478790064150680458358094492487357037209413437663022521139750083923850218109211482090515303642683390279368934851692019930329101234159650794847681425548004193619963122319208918264190836806027995412376198169841724308455657074593373614029913691661878619095807986555879026964875304917560054271039897023765344106389021972856596144903757207563363909244180590332408711571666619585813731522834642707134416774549699020086341357216131214372951357372584273318374195934696194112421909662538336025221077052234147932126123609102470325925010808381406186713364940272734181605212261521131123724366471561959462390912021035716567479598107641477532298487805972954081588107968481747729464524488420870216445311711420765145831195770605500831487459285202992758328674108040210303040103960998503799708809620747325175720638903149294335499667647793937578732426861612392361595234203326982396696578755312161952459858543267413537346981113069013707082769503295876065989164218838611797265781151659514392639508000311934641547443121622227019831071543227959395249575716114878410745931508227539297218074396701419027322246324567752725705415027060660468133267556515138738580136020195846801303838901659507659598979103586276226698632857593332860902014328414328934470652784348361493426317041597160820713164938551354770191040811347741763195182973687510507779541814926997686330370523433311483977156771960723318253588104986982854357759653208351327699131847200850937288396626522247692822761315678611379839189857735173074995840472840006698890151138374172781546643190208001066055330818524639522922209096993263067418213375870080718336014171094778225282965258205671818083665982499941899946821987162296614974399944092336979230752981755480092144865713912713083770690307106158480645283892041898669661442251898639984208125200180154621838528568194642289512782500405650413988108893680692227721097117965992442424199271197680041386684564903739005322099241747940032052152262040790890506098115143181573648965421863894631732526274007569823072485919394499727619417759821844194198558592018369900947671627171931802832468331759193963073806761574604822216261063451294741227635953303742796192863840409808530949330122711261978245271816531968086157614634487886466710927662660848479830682244327533593501960353044358862352016062187390712368804117564927640772525092745619147889409581113319799365218468715212348142519337047426857780810112885087326003288820649788403099792314660106805289029045119914209031265769591617581613363361338964875458090480777591546977537140740979285896441106312328122149050648595484705419219301864140122487372270459643429132049732542897873632283314463927116545840971845612378284409206726213113682366857920876016992843976070781552654867940997765010429197612955516228216561582096916773224863201851056013529868646212674181821449494143193086886324436373618593812260496263004226098691427392976055600377366698252963275791172906987799009442184227801612233732336150784955481137249141812321848948819404469833309775769445364101792335559877396732265441704072088085045672376613646941278857132718085031617811633827152181176061623317754046342629637746915664906197548756412463323126557045074416744085210638776850276885736760878948283485177144684785796399924792522283691286886561666080883045834638986548053261421383249028522593268488594793809531908955942985092159653733354583057159125342331968767673179268765727181799980757601734319864441979419596682437613842804313418734762659506044106126152397559852484049553416341490925980196472818896340644598122989460529335146344688412968938784743553598890260142482830085880621518332445923674832415536608638812666018821580604815627823845898832146422155255045071738716217914184933500972581854252157335830382024615553211186491917807720114123053043290952018667199910490794245946644270606238579477758514306061463428974684279966861342735594843848684560384193651502456170982738545770173314280681822554677950159181873954552016331048079633921935757882951544816979870393910563135169802697347543742076382850641026090601826893253855811623463714543304155182494551357494711036333090318804877809387202665770001013264164938831527024579110362047481853879481811279765124807832699846175484592885806142327097062775732298850680997683210125472536281202013589545177271939964006001697496887480433059871205617233430652432639089356380381385146476859002745690919692884820006375182633221177722674388929951433955131187058448808722035215567012510973463999427217951966453852029045552400317862516251614344019817533361707199398445856819843259560563709433979755588151473620677517483005646705339843768033043160156619978596100432515721653375445444136400725795320213348641437301172558104347824820769719854740241313302334083812713791404061179956608855921826891333939809907081403056647343951734191696408310889384709292724775226650990052664017265452048914633341328118720879523386402231361249688483454702083290587319839552351947349085700418900782864769003337402756119682318849147825938624841828889366839910471192907740698820807925975201879071160971767689885364144402409421425518988577952449868448640121042280447427352964251483060945663788005017597394469746490634709432069525434483455868426830137396933477702492765619956274490353837510379406437925823777110329790423091757855243181813794588111606716823493844824143902687013739295666591880048329501130792632159380827553622073594836359419295095789911745284853606113925325272786672697035360839705922735351010453038928967723024399380791730708473680843498559464845745133059245417155567073725238947455209894614617147151319667899485681729598770696844973911192269111557188074117797757551381733306541460406994636181717228442504213166223823462890304964236968419472075118111785847118807504067440962854438159136067005024489701390350115837342625811506742186157396333869413812518300326092403395673665942460982803846918770222962471641915361285463125141151149131277003081787406499803974375710889251432751306934138883792916483943699461118314126377518666890814645280493128675033488959685632951438287950067495112874258890225608892371888010839357799614673370034285087352030400613885436070772204389790707833341806602444805608320172728461124471810816569147800356403624947890986748594044846657203328780567259038614863754066213926819888014983149532130664387770163780083019623296371094918531287558788459980617657515416157408855898509523544356925514658354604384487393715227695278637830245770233322511002595186403617614870113369751425865702936943057734187350932089534754859148616989278749564567170464138319319852576791357863209538039985468008337873283280333713054277407849956929970828248618001889205228273208334008254848161903289122119617968153280106186191081750067802532109536990293864352876103567824811494686302240610564347380379266331509671172206104102372054820640407213100273499740102288895202889854156788273140355771710547719319526511565478177783527110289952314320580154533480493759338385133249445462300880166321146972352950953369974675091975790748724983297299059236618635037974678997095539994861013641431024424643978736553999901837904864372397206085634903483330358882823953371499195710404887514237618440663373130357455924545803163661984222637142162545275206902669587335002734381631002842178834567968141450261913920386353779146996935831694136080166086764729183362583752900416497487970991519546622858043123261674809164056438209103341004218720859100861415279204368727325336222498647711942017256347067719030926771959958252896958918991080030822789332425114070540502902635577934392490644640026068615793379415748180658482564386379834466486452558810715725087140422193522272450444658347834632596165533660331570555317163358652523562632103589109016529138461504981684480897412854715647436494047248203637024578317461339519909823206389368200235470575321187640368192548480966641419871373562242777184192779443645768172000260392560173650488443189628752153154437266246004417530882862549040863891273464037375312024349806609210437859455394199231397244834278838989174396445067176602936752514534471088530114455590566717592572601597574355553728920809632458090251268059591327785015766914200690927897956486867416135254154973114618398447467378693330052760279192748500307900213509485399882575694932770222610371320643461246423922483979689047093364004831106226574826283564722629951119166702025930305711046440349730029671691696682613569132040587221730443334005962339177556668233018913904008895770780908194683898013285108312872998970515464124177145784071386454705997098436414645830510343283232685531872506381206622977472148989559359235785002928595730403298501692052763826707227171018246357372411104158686471038054563976677545620845110676550005990067656408478608576902267113290686747219218662375717865347732595234005473862518794944877218003645491580547187143990579936287171669571099788514497556111903177134228614012686892872311918103811337408959540795856024846030413416171449144434123868297991547714389233374012306660370741373371736633118475385592545503123742164149356538522422787382704520599242064525074229767003858511089110401351964878033146340846512180735460549786860659361198555565704217104468763620914597109240327775567872424462935089011626715076244343701065408618714595673961864177811135336764802251225374051956927174232233241524054355407177313123589206739606437310975528731147175877586090120565536029631428073849197040797192294180901894685993765968156453968403716300357508512386567136950692864824144755272791199841302315401771261100068188009701510885786638530920935936205575653856983520137751345008880515688414702969639073347529941667284933225905443456576905833737862011197300156120091813618960231611024155554101937998527292425669409617724564711138293378522338941093323393244452493465958374594109123449908833591220093626512766816678692604476771882047218475773738025959145037211070567348978056275800764868007534629542402346498765836968349354147744606766599112948684444597063572599970015510625266991697889494959175666233077523690000088902605677740333069329430454832137632731466508871848612245597871830642342015676706729211216790653485349146617685775999294361547799205661028625335268148960143841660727327550347139929293845536095606786414502828751187604085788789505620626431891739506201168607818362752297105544729830179811473739400991469810311314752964983600233052377448402226349840768120887339107127545001837579392269455581009889676020028488852886366683750501302623498081391945624702669657664895523087974479515632633934824194886304779503548061394315983322325282027434330173413323637950652596319665246680946433824030121413798025756161863187941993776861482974599580213168112521916335721234056042213985453649457478584999264111164117610746266898832912147242684161216574332289410678334751318454317426814613868351830365048727035987806356658197988974699479659808836177874472280476377940981093601892249279095095742307891276114641739839945166739615726315735553027793436049601470797103731749658439932581554797534876442980928551524311328756374478483301757863215838130618070363559878597070925706603862335111924280609897288019207460425744530017429324300242864467537751182980731938392502633469644711976065265741309960606635262716076383598126835114183429527702227863735745303256595007299773442857669669970979762930351700520508700263439846262600386327685361830474759034567290422602513879145214454936642554337148574738142338440059080348356831553961433890603200844277982330783502200573085710751188407316737643736182498293032932616589590307147087822756917536123774501813140148857640194326134010494967079579859802427485177237893216309335961075040755817009211330345286011455185004036293927947325785840292304201472250464385257288704727412085714759868710148262891104844968670149743096181257273648719319584316398969607761158198224633654895065323379331070481382341503318360199821127090177401489467857819007608516618226842305869637666099999299366752030108061029739846788566770107534026656415175232116375534798412174321550026907110464024663260545773435786570500479170565919421071052943670642517351124231044760541883833572036339616448772870487890843628028723686959412455938784409602667441734300754577744183339471213151677375006215395189901581332608301146163737271839062221301273383930537561954131800103079040558990084670695346349852408765896530306704050244772151738222332059900951020177783962738218942216605367333547137118918489344770811745923493928608004819451317366313802779784233161591589455665002304758652446989878652553681098282610837797626012939265526418501783157657845430652504843486423133110875890338153076583990087924074149884308295960624749846101348622926980304919870828991706227096982836277601117956215618413153270549302020276408653317335258685174856172464802616070949423759605365956686184139928574464139199866446981510499417709518122166067608296088662392489082861824728735618632806807792490929467227397644563458586143833652514589135072298184453716368594205547410641518147965880975114786368792796132965894262804416676793260905035087887561083117970015217869296187931714867595230945470063084586883793877774473161205707608306127760909776330361204189193134815940664180101134134640662883264033566330911869759495702660958417160251998840850206647551043640302675552716819318118502530825506063956922569267180468312414469069709629636640079413388331793672388750269707718067061151879216827116803571339493685947279689312035747430227685649135699038739271978889559369254786987327778817105258832938263254990847210932223430138633243277296618096049451636559633546919999980470825069915808023282497978249741878309261841627947359744925132345506998449485526177547780606684483357669900424295527110920411473619213886107930169397676173580785765507002497255110509875275044662649474263333034485983594094492922972013212869459236013365527473585584788005828654719623680349004934397637255161427242595169882301848801916266741982116475536833758226155240571165079265092322624529108499024604195379279915099908407313566629414150911587057316773432655278595765996854947294251292908891895016564885993051799451972868064011662901038148937775302324843945619070164395932398921599190137894865233069389636007688263049782746196860200232396111490058554020501116076156097343486447188212334750969374536092703646594798565683616137383590559556239050652516126443562769990259163513864229785125443614258946221986761731668306432294083321077095562779674488563675121280370294048100547871288231246922734148036008541341910401454109650566801769514788170313919945643949984294573755557316266404999231176076572128301856462531526440814764511363493750510001491823852096134944851033312141867245660650371616585645215064384063445425156134791177616082074683992356204026615268579826259179982447268271385972209394333897643198552510109720374368680545694621397195629745010955263060244121628037522339016160730173117882761981087777884150890375947847869669392522971585624784445821860612898234253764319633370830744699099487454178045438389054676021667806076101578010568427646470062500838392752589185280178750993443868827468489728061807722464915731742650177902942598782079751213504574917572870175332259185454419994456711736620260113161547756183299369056458446182797068577684637061348946468519121972794770249872186822341579059909858544831424179895514537937847773064046573347483095634444470162715000647703723006147023812893039876719376102855484872508998893888049948683605049145194168809217981416283540194339753392768912199855288900621017363447588530148969616659742368964858010220007613662383297393072182915726278813967097946607065355387638727655297975749669389577686785308701206054653576567757561910216437294285589006392658332837768258145375035866277047916669952605766407913096672090342091402688116914225861675487145686438167616970242146024880037035536380451653678446721981165773291612372300620294922069244381138365394832090761401764411256777547331494275991539562072774692557740005881304753376938985177082007524550550820215403189147612668633040309427679163537710322259490504510641223174580000183256621371742654277051082043732623200132809726187231843171594189393710357288504173399166662028687432866199632875502211214563011973091134819233765434333872395345440526546161620214342868116773975156346677620916442625177315552425277624381273365447730614459848812703158631718279353714411333644277271693045408613580018952997042200413997548457840158300103811760277456356758663671400017089225118501334718173022093313197269180390576104924862963826975109398419999157820903338871426478446995155888061829694998219976834839970366288787851962349707610662899363331082307083859009232083077782233571662731540875706847436409430728123566245537679952792529954054921826776442857773010629916944663977547781880675213292055695337479915074071032918664414743699208031229182531480989189574210392640232244938590468172690335948450101875494500878543821964425245733293271793200308348843188622793538137850770899908457010190757817953856696083151249196833926619670588202034967061975388055072784944101747205968510940237480696670156418639872833845362534963180298025732468519387421525029777646199074368764421803404656536484061507282054419055195210528260413789169816349688835310114545153911178683712337885557178637135380646675816570379716262916758449306791671166943208390532647032247957593472895057739975790855651653226146836280438148616883827893709896688134114707604048273119925388368175049887784724458679872774655663058405849367117950475390944472869001455143172872426181477597148456301405875984693539162343838598721773311123154287766113530499371508109931857203386055955666060447002317745752188498080458818806111171435231989101206730454815372402711702171663582714416547127643141450112413358312229387391070939126536457120910899801219912649323342173794146115466543170773965574049218171749081634382482302042859459152034949812568287325813962321666681229538852974739380570868217846771166054177511356928569959470234996451648410630519109124724085586298899572686088095495489768347770842571778947645439516380861770002380578904356448831133917959363677080384986627796103245236461447766699854809648302806770304644194115400582396741044212442353971459365838673978130327910281589122803785949319087405601083116791875157235797863400228628831220899788645587893030211943133345664862328026446652273761741206863805668715482664994611577073634749597822498981806728885390054635325304546716798668030142182272386404137616524800897952856742906802919831160286862621448736856516097512522612504048284665181781485388884552181848206373775971778520730900950170724880265117579376665553670829946170130922753774435863990915153756979989248933922654776309451639946320408931321404496064790167823865844560208013279974986109930827424583246700697242600251220776903374596720851302315202453059895083713572067526366789727768184361956231425086930386394236456222324945407866591120436864824701030025042029799057568438365952242108754298205777278550887732100986013301465688898968804374568905404528662599913162544129038732067962832364589371739572167593832712905618398285259533480622344103399703975712408683503089189105709149971500213504060119326082310873146880876892120876099844689150225789630860073550580252349375173830417305291383086247436071875293796514365896111013020642840298113103624737841092730834906359761787560200733697569659543631691158811015254045545087540511212775535144071087565284417662150820397656235617921641579775888371860379155997006533813690660131126553732912619868237183510767178699586919974161059243250779525239411225314129269472980739207634176191667275899882658941439216188396836943299538965414471024195046621180506417138316489699119140692825473290575474454538104330199922423188794150279029002449188928207709401458538090896988643574019814175977362342561332347434524584312471224857633744652867278618785404226404026804226715449167384128506493727791630490954371271034436946518854161035532777465414419023410234252287564394430214336321751017406356586330796260079207862517252855176436429554999750975966862323440189954734522216498988685763667772769663136510574351505543559254877071836068617441294578959001742005983762185346926879884977372189869941578874529259970979891957943127764800018079390453957414206524636240324335844815343967390211694895488078857750623549055760452773709020191159592177248822002459439390375724367403299517373127865178184452185599007868495833319281376968976400062025495045151106077298531575484409022721131759790215859776715999272912853547585511874367454743367873389339104293923657167498104120398885334126967267391459286587253568757842391705768272341853376377413930457366423777826967359987152829386368551561148670745195302766426824888351885140925054972895647269356935561242154957561637301221823903104442435295638811404392886556973436276437745310579788625499105189536848340913065419019753960004330990647442633966901622229846545909269459947276710527629648371307000045963654996664959693857348959086585449838420759981989064525389645627093496176915263915538165854381135271003453247027579316166351555330260930844869456393787442693939287928153915239859403745822463431102930194666865177744630141618323106418708044313675930648494642854802029240349772772650415223836417122823558109427944976881722425865215442638561052655764983524430741276461448231359982570202840267610568613909261503413965292751369091686296789101143691879569375092522792330723276806851896554925217951064755129187440734092579953290251824063696740293354558368398133824066946624096477687820907373900994606692823118652406049465890452108476320747771571071221734292519159652486881127913046811368272622735494399566349124651761886241242607027321782954631490777147133175231602629063802045150026055686334527664487625502569079830889963386797542684522758390693673600599054389155893909181916220242798477961618293361375855782587493835935693515714889900845959451136227793160172200258231271959715877799526698998570187594461940249834776983152929524952260743295702045167831562931876697898543969579392381795119801269187654471183773988513755184735526650810173298255198502713161725048822126516227587885243359571679724248867889272529550798033711992726149122111763707162036579059124825363409577995671551534987005446218972351514596971945765045468234004414176124423448195240074625951052083976661044215639740251126329042618940224924923580622785164961956453040852526198792935121021040443106751829543062501055844944359809262251504489014546852347054157367163685857881983009128070565975076992676732356594716856594312121048983513179538414407699452025700809400734285459356822279065240929532942681359541333158302410447985070986000136075965110861506194356477886998308264126321819542783074358923816390320510006904606548661738679749898826943879010943807956683610228733319740822964102411147804170073236828166761385626319189078373623794542086769836059901669121441348069795496523516110030636399428325443817707168843312499151697401224894024496662588369234845138199956506363031172064311014053464016803650772637880862575137458983760283791036518758482758952943180663247815976201220706334166652198511635616917087045950088299487074677398684104936919580278610834114204765633849362841507208121520728764978368345643712998826811307172411097430763837725004565254113628548160442722918102355840654878685501595107152443063452241265751391396695271188515573758045537445821981479287428817360960977878011985140694274681834257881564043274694695059930399162747081853675128648413622165197360394485272182017350607831840968503965296654393966546395750705377992034305026520854001915512653155350430445075697557691153644497793782111667801968646711364017931689640190096641953151762509803176494310807598377498233787018715867916550971483095725501917620867485218754875532644954246827294635066508397800787758133972354574214184434506036267330602987227582622807372519256510310706720571162781482510610767712913143547309913926248842490740118691675685295913249680538692036280532131636739062407362135231364969389661382595700169920593553795579127362034447884820379159875327189365180115304887816889985719814775446158384771248016973013754736037285110206674883819016204014628769724676917200606793856365894250906469395613107255234207957876092952498825246892633216803525199603052599862820977372168494322812608180798498698072424236150192032078398043254065894262698134435377615522232360460193751953301991460337751492137034886915127085120804211618361083308925273190617788623612037341697602809235332495592211153845660204188428518960950606623635511737996834088598284308343049303339016709511266833956424003510225794468555134340807209974210065153502528361359705968444473239212242581714394707814987330703919064689017431559508176527547687016968702008195584370697936308545575808469761159456131545861179193479449650547153047697257796877399663122021901822566888036926985231219757096286151895544889970200256006688807950156559142080010684245953570898418778159215871011694886518837685478840888855276923126073405390026226522225044917040503163807009960490350542172200200467814542978814907202692631568548127982093065133416728848354778870945219770490773051420109249572764473827754034633249201408881661955046432510147619376970308450076853858729407267049746922371320636059415354847775744727414727473005164122302495829855968609233854635513153760394464425484384393878387597507331925404604467610738901193024612004131392013289723043882370806773283496704357583292852037142713906497947620602939738362310627470024613427008941368574760864872358779041779810309644832893699953287021533788629191755510538126841615810755840265943155038931882268722343876930225430619223707844292165283838124806927006017821279485007026277208965374412586838995820958634442960302281133141897255392028807919184512188279408262011027538396988999675151861538144017988921595864440570869072723791666406697785380309249141008394068348624921483813760920364836059545743204740940150099057106804315419451430386141383565957484577816518501411319172723372040182287658846882173971144138929723960151784555051232510382977944397371132835944931815221734671700190577664187701649007597045738255058497932687023757417629621802855726639735486948032267103278204654007643282296134973917028124170383273154250125114961585225348923400511185576961316397520721558327407249654781234696864653689285456430986425151738283375786361054999421813094782543672250691722468419867939687550297432004594516370996003633995950370064252784091114639328251823385795761437760381736902747933624256457504763903717123565871736555884072746052201139554396779345477969708227960898158463529708319466618030122457607420273699721187117580558755979776486879360679312286787663910042243239385757696036740729505616230524066123843309276874868480677561525039788628379805631184306477116674079385259962567730762514305300755803385570826203034348069560547907221203079650057856050323920812548202984191941189208107147521262247913177208156773036044633138018420554402245767630774373795502759031995000293923769247453597414867342911960055543676357870289201721786364477191829711243190560908662921594970280963366368358096562740580301199612505021931353608840107736416509726049531918990515840199207459412743948817624773437136644030882148221979924409561998321558094022283365111978889405333639591215871269450214465956993588831411210696918727278695003728820971226911851552574043586582038803808846322002770143027633907275594647593625121176208660210731284883562583996591482704915571078386611565967379788724922805230308844273964246227452906329615841053772421232361732624942858588080147121841635470848673712862317491417124705259054974128079579108010856749314215968693855944419046386529194339051172423304845321825125459924935622065450368393434729311410804998005134660184552101696222690069824339606611132526855210954162543680360337463020125709456059252445906516816185923009012884741692254210759958783096028622206973302042360437892218187921357950322940449569114233883571729954821793880484639898094238791758914363216837146432571734425052510289539237388248729472522387292988811301497204655947422246971506202005181324873188395925909707378061366031448376007987156428375893262327299932656690405981206061965687058271332540737124110850751077233705878273475681396633072904826229837587306048759289220132332428656412120263175868369093536421931320017723484996418993565985463520861301953068097510968880355954080458057291748368277919189281197469716305925219971625125668431678662246653154500370889717346804784048529635631026463477104718956556977731982403322228709820552225454803970230464559624679252692369838508478359259838784910713294933900944915697987130491279738645887269819754721463487607835301180091699816654661113340667138788609402825406589626382181255389632537251189880600593218872440915068346152056153723814090981325908278931731387485622533169178917928047432202711000204899460760815261697575629281463421149511982039754907064726329251470106333771326091564854231640500068334932736276263016563100672085512530729938505174734044955797564440364840626673136543194995749421476809303501237460869212127980676624449549229547257115650928069697421012478473794597839467987210330843480772829976016628295793502089381726134785742515050257534073772788932336917773175198856585939570064389714006070979839491653909295510472598874169380492527827038156992632508755153594375136942800513065338273037932301705796265172281750070322732841654009777985861790544875573363444045288043025555329942665809458808685059846309904861170942698592168328570822003073807549337404638867156111442691018824958148757959620550663050563630758854865525831270520647206525120532769954888439335551501735357609292302297156056014435155963764475382270837044020446819568875287354878836554027100634591761773419074477638032225061225153036110527272314509869212956036659488222620031157831338737268963133683682082241484719387431757151373910752790987790921118252815501135544240031535142038841947208747518283359731601322999738768841168670931444950286242737959264831300322022362466019461598041100525920844714903168889724128581365878630568053495382868691735191920313756439828470687582527113078275729255606869685645407725653520708651981507089171767236578238851560647873176268347770727513605926839036473906166781723985471250019741162280192291705891998409506992446015723461141103824839123322918330520959961125550054507775112032009696286030700525399787133450239917814152597990617550455834896767573497756658802870666195934085383886782171241920875163428657537062193949713919096601409605945170790130033124000658795509478403319137735066033564391843314708953852808669839941226319510388065972610465049774199715878711333131111651991708710977886963081733399480160941865275372371104689048082101789250294442663882218919747130108501761426654983318295796315125480045518213883818605181179202355629145131597221542650590250821329466593801397730311089837963448224451525415745351613635710043754156414079214640532790907098910625343099529179218352246649454582167681818972299906703748919885782004224432153086325607373488513756017840070744365427973928075705067774303095718040387071098644988294568039481626413559744356297583366632336830404911294000442380687271293294546273032893689967712913590571976327550010335313048623013265167292787188086931029511918497847541034668561724394684850809114286873200261715252648850126516726376454412351134617810175595142413602844339440081605142974077627873585954064494730441051123303967966267222088126772595017416325358208271564107812265582279824969167954758296374482544215443201874988636751522632392006793688079466809218225025156021545043647174417782953766037589800950084691282650005026398231899949317209685217254261372658225091981165603268580726054243298071948048466902137253986138203087782206841247251590029627466332533997943898518571260397956556350966025110755876648704326905885546089021374636721679432292598932420773280203119408700171571476918968005911033846704159933952981506449486875517398055176321217937853544918909060091575896163919046051735756160438277866762148255804442472894303672515760890124677730383718314249711579409537765902135086237835394724778381244486847927610350320943064750413533800199530993353124472003755672912681866831033952781891912505756368240641682461520903530561130130061920500018190197688184933366190932587993571740961302893203483106068299954807706403720712209599031440756858629169931829794127646369339001459573140293878820522192465366091968730786554043211152740943057484014540288004350031030372927571786720259416503337925471948479403537459052597381504160808728482551291993982381723839290192443804490190524703067565536080947045081136480737445882252555356186631840373230545461399921488770007781465084163495229326988839057100628624269081733157980316910730655601897287251985096842829814604242593729015375874724814373808562782994233022246928016187981975891960692743931607385274926121968453864180741572074021571296773605683039274603285687267187813980591450348715074781943557345603293330346584731434489365256031681605520813560939993806143776231657682838562529219103683275791173381396963086456185934591723335483461902185483273584690391982273139890430633975721069422742469994158164357495038742202861378907340163717353831039414833005665117084464912636113687350825717622659469175453864583068181742392550586732414404533280723240723346650797421361968363350333813204362634266020387393191251503250967329164420605296101206828979829173863472874902942984318597183600631910110112198278010163830137174981465929086486083593998869788642493220950034691904921672272821657339994343560709154476606670061758857782160032303058462061303023924384177438242049163125537115545774572236957317173101174518622647121876928505688794689079268019668349526121383225876973400292869692010420072584314129602628545558551197161113867343324943882133504426807003196936881669724837487689389494501853990825197621218916430001506999375737178920785350793685790072877122731176077686400021181078800540648979150377726210569407817014861535186122192496114279033212320344784659364426616697203112037107028537376023017818839169679062962750042235292313718584060869625206583672256355407546925574658211737980085039647173839506465696911849752148222453962860188611158293492452721695218957085027123894068546706701544050603800949225114187959680318297354770863053768808362320556935556479456033402000820412594415014647506620100367479926878775403961181024981853179400743368116175052391437493149515021026780817787125189442141587986041199029484979658151395672805924160437546690406928265542419732745761909603369832245231626136927555833472529848267730938765913101111824790387857542281727135695182577515606693126485513618834062984973212721487633354451344165235039953449208573205576575438268921369581369448420075146726328601999222697397769625373456773739180177882984429446400503753794692505256209215157775200340290321636783040685096607061624417821386003911951226193863282865440642894860969195806470079984051006006610436765950927935518897248991298851078053275735773894567952284208817051404105236583246344166011993225198328315265626103288469679598896279859236825505756004847918859705873158026997062028162214673437638335741307908534455912348967135862309772517459423381076279053700094742205375019032710071134889936386467694400778988851486773221824813035516604731643019170268722036878977947993213663201975780090800945314908709920109713450863547908482257942523309752627188593758902174234321418829290547385966939572525803573570657748916176933346394083929481339860276059934315962378406854102137074005886124216780588171107795653211520012423419505921101733454253145510028583683945407897019606522604978312600584936672030271567993051232311627550908968395681607165099987823860060021503586287088215152727499100081569335140530588673825668339393308562618740020190915951489583038383210341966826277360036012230010207387651575084821249367779498185227331048004534061886991694907020737314651217886061718593189271712378094223818001794341910479848763388918255622132849436601463545134436140333163202231994345728951617671013093265337437060214308200767272707202988286734478995655269767360116079796413956020750591829638662712559936483921820625677475737919791478973704379920620743309618933075854788489846058400579021422064445169598691376643161936667014470894882294243962878780113254331864172455733933894607058357323901901188973992311012154247870058321863141791095081662476550371608762196209623768582860251501384678293216652158093385848208967041212822359816994393207345795875253734064569849211533266116453900218082716083357409049463453753364068075790368068776957165106835823346575973805885466174085054220119046013625341310069161166179724419754304346642584087252515766204082393766295876122411882865724651585850429829256736833920841963163058727548703919818552353266255681588168438569972920288650553600079065207113648894248286511059520136701816699854424973863027676496619833000347139694027125182181077981979614630021026815618325038834794840691080989656701717552117125002263725675918480787187149992797592416262957763138914963749436906961513115868890308339210057008271154166377705868693945872998261137391948903070725459514985761636292876403509258550317758844582387207015477444221517305063482370948872355025709253729906731999410277733135894350761838223872497365483747196170791001149976050910959175927402684706233715185958865457404616330291746473011040442043382173459400478138645942948676798517362092495580688903725638945578858262371694385866724351917329446216337485733153654126134870021561275857049435844648806639753349361550840458214686871490200421431535816991708975568392432240149900996721497266278128928190697526418346714320638339241292906978378704308334539362890937931666288395065086472364903630401661260522647788172690678746158470724185474955064995537873768256400975148009191688419285404796041876593456275664045340152527187280669364672681243906357229605916439959956393664205016924564654621881971464848846944111464461439154610990879751602340041656103103750623360013469960353718065097907900226285689899881320782562481094961308757296749331161891410503995126574118495966744972010532457727818046718216850128475624507674457790801474479681502329103300956656389704033589249058963781058792183620013113833913476809132893372556935566034081652229740927576978891785398342926385256504192916431071849243642339461058691634641935575836353085524434046125705375096654246848312265213363031546266767169535156924079998583723469262834203655293093462808280939491932863770979425722676215278195906074973227166681329475653145373425347986459655057793544289929417512390772876610598443672250561359751285936753269414653887576027092474075287979281931252731555771539686829388299134192372832546249888769923304347480909980314843133835588335979518216140925790445390333696253779101183522303486945757430340534797595921241340694503109792984728581245447064737534747376874593447943775906526704642365526092946728525070301024069441388841942820397513719480785815637059850095001295434161503300877800142260709154535794302090863509363980482188643294813652537851264807010810542158950647552962591015305675533960508072243755789633134286234703058882615754255218333053950105895894336998915558961812048184437067509778729398482327428099072628417134312836887618272208411135970237248230361995012799335202880557122400629041292831539429462913418951997649796282592103230896870129863156738823821759565743620749711541420673986798970401480839402623026645348146015986088522032292241829980313813849152100941220251735653747766952862979696258084226361667768245071580678149177794697268756809410955557795240423974916900817430186046801895249084574713306269002135102942387093380841150953722366809884658409827024299199035697378072648237387481338318220120262253520488944926497621071517802006683484726318199070179326325769809094998512307086896816554572170849594033091310138322531557163693136171095862534646144023714558187375399259739554896601606518345444355833375558048124992150319496026294718045639426762499218342388789287032369292240812009723192042662448852775381123077219787506489191657450179426056551679552266761137365766248899167121388216968103937192428813190204970726035823027322458626375134035732271800192604866148842764624584624222890162084465668994521110502904687786884830422898758010042137146139070435419838425528963895985884946135755549093297596345903624164334073149662598162479824401239646764639120847007062764383043353848781324608889167791141933335812874767560772101858742067508544335436448867355130740040460206771060904147852155237265407964387814195253827884122318111620240628388006244815775692609079477755851456691171213095791666049063949707792489789352755498895527104353918433949532278551629491279108475851800146591782392020319900113461942326147861949536168283814346210559316407835622872223462458379018518057891985210898575406909751349963292998889253635610391357913405076418170872303661739724536515257986763491334594788038097319656800878889817250602656019152129961754555447614124446068444625989386425424358956894514725731938271228019000941481088431665828482316857474378654780698390874492928970785520744156526375267466637186295135930369581291430642458099310752744392094344983250469934531358537553831566866378406512078251218036753746822965556028863429480326693559379687503569846239350710587471696923370846767865180155517923857754003074572378825017622022590827888255702866360044268343636180387660930575660466349297090367466029280679656944613226313238174647219930201774700251253159545584232465891292865591347963737808810169292322807911486866786123747657875486377465819265030228818177180273201408930855403007780568069552659575534858725282399200294204772920348121768849825395319666203656352496672934782627033911583918853385789143346633353631450894704775772779080553529080129793126262261185452966983100588965722155217335106751769078183578698543623320314821923619199061178280999235822348049233225116252559884908341239220060658236673610890002390768051568892029385312431263710271312832403394092346968205275438638512976354184918888949671303899565460948620163857628056852718914058635765722381245607903218947207342035284382001332834589783037016058542916431055536030382145766380288344286154471787721577847796256818719383490159443147511455808280217027929518222099585204752718200807068339039859064688504448570192770833108409299992840243078193505407623789299994436662481588265328199362888723211730741120249606355188741327071332024327736167754849101505914949525762898515648052050926073167230088021948988244747202947038246436387155348877815578381144790558920947894451426291444645383270667434271820334329399064960410417606200975526656343904140377669917733281012840390987746787370465720973562998027396911616941210519450656484760939182280672229847106284997534663571131012810806398822928962501306851423992748259103534270636918113851030059902248305266880559585197747077233067329053536549844093624165622413481693654796681462943417741804414539407493089225639003797207456079187287571297659039177135764045177610245563216806271099286452474382551567226889548948228032853410136579780104484154150986897593971482456148359896379504501733711595914887935695702450390502032435419042437933634957876578367279473512550228556933177000118994475885123531984677881990794648451867174071239267760203396302932420928878719670845497764536916207758129071736281591219269299713163886536353778345370668960971028611307400752203508889065639917225431940611523644320671199745990963297030741492528785004148607306268588170234620264270648126506479564364132975848325004129325633450232128780917124821692868174225070091154346319428143251558218446348456814612615550795336569923608956736221618842763652278925483505481500037057258190025646398444196581787592081310393999239865229243516433554978709054473886330522324383529639883550821521712278028871699326273462364796151990344578589048853866734532090780985132841004570498080769297735162085675047784902509563208402468249585553888136151466224188816811507797161099932886912563382738565497480749584448188640077292588382208082549936585176244089642541332883396591307074546675070581284028174743883117060881324130779360104940150431798725080175955378532193800804425094787102916641972508146138743491512086232567691590972336055206073513308520577980500742513008086966829505061056900054061483304536320238557777663083730324967556624913599819914380328403721591980378455891973903409491045285629184969161776043606678129686848282310948255190270713900104857532557425820982286279227857761077426765964347596054858677800149505188104341363905922640579303745540653028609421714517426600205894614173264684545832969287080394143120156456750775404063995342470189547644742142414345217933488343688956155914990802186452716876559702467922019423965130354589383492666285977505210530335603189159786710068787554690772978534527466579624222355031608721636441562472450803002531453153061664922579252213959232627664146323675759523011780516302773212265730146690116980083140122218389723082209339467182656570467416208977702015755472977196010468427623213774957398504427010778966064382425293497118486725180554637058325680590959480925581194473446455516648271962408362309417534529048761818225601783789303805849273220858656060904062554900223240344313850000035735314555010207018233797722839699867117600225819717949443725981400542986917593767974344023988416154411886015367995249950798211464027310646528455252960537863614779384698842845987027004479687260305566721640467342489744916225151962496301308875908256402884821479895917265976040689483021026781150608014232825697597703669946213873199554637259837159514758585337712903008714495099641108128941063619737493551082400177809775075264994637523610216860010859201415541231336121590625816403624046334047459227680720911865280388305787558909150204489713895975207196068172126881150381095425696564641159334134578701885099730772952470921711449759803940321842603234057515339886340577020500568173419042287947225073781759168602134356263859238058044122927777099271240658984275964036326572232036025349712024013509913950019986401953544562549688151988364717575352031160368328713068936633545177619355858470608982362879946755285754879443991424854214966220385981669222230285327263971542813972232715483284099252783474059473326153630043968748257404538739592544296740536584530454714247053546110090256239221672193993871213674338696183785043000068573037085477921489315024725215394224167689238661403530290997660480601817366596459560490499078218655945477153772032250028385265978016978025500838884756398445835409287951323369902974605694880412190582569402933481072054308883217437601432411119136169770576172705892751046530801982913104810195734132944441196552828118902846231099110360002744109666356959423700243914615503416997399902479354667350659693026522373420263128330378930849707044610473568357936481673245986665554611092820272632594821661502295954875006037862962598803614050887307029960949052884779661348926564948397903290857109414863075349744514017057045451570112328404175257366009294352649360146574534914547141553621513959495781937106903170043843771278827974968370059239251554291491377039820008356493667825907425743229565983153467858848217660271803077547523599344462001535723479816771432713742348963182922594888980284351401314215350430705035276218743540787930778222102648911180678713410090831778946599691636599196006492291978597438968670945444571317893324392549877014776340727418465885487036089559929575089680580109476307089130482270314371476694125863349716886898964994200035125485826871317660895881329254276176832556340508579033444784874950854844876630483038570666106909756462402581946810643871741979344491012800725311155103872699740717176907346205791234325853392170986444232974797454427423605891273120788608066371054752436797911546981375663311921109026285921064039426270335019113364197136957735388801716106641865328662472511033071370668501380782807621491856517825772474731732706813056925384891026239437197251389071142765112814576878877290480045989920700038309292443061187488453807036531591019568750710155032606487958675309971970588623530908273799196580226926157904046663645496490923569658928451367892126239022941000610871507362905454646234655132166295471929310409000241608176236047909861290246630582239055299188225089636162285797395701406246496001191654605552282447400838542011999250292614277979976099474056488921348160723720913327674646054007251524002081952962301149059731315083787880345808440277691871376991585075890502538687731102105307533673310863582581334137813542339026231345792472451072822207157460330261999135031096241274696011321623722412198396666413308622198238173166948244345605602597645395532967667576326835529271852509640549606879313765295095699138022965515476245813691729296140399092773612442097919777395482271311283470189845636889618560694373934521408540496395441096814146118857051236500376506306281330820330316178923241645047925030443969649492412408911331674339478322502788108504360358897060330848690505282373892736716999463599548405233272962960371681772464893843232648181838123752808150794023576317211082293140435403715475978983153813885389810934910879887342359195092737605101926366953279224168701524425733413523208134933021694609999406003523035482401214675852032447903802258889260231083012148815566031763798620370125548367974974771378519228680487651641906910424603855776749784131996209762721205510259435733223662264396168005102861800850138580736277134062844767979296391052718618089567779207890263941452417031361055364535578099168094287138414551387745435730454854377696275866275355508637557052910973329493897134109085481254023201903260606747216206162205209056718513853819252928863239352690400698806700523037229612874218694677657805904364132888571614507799456565120774023179990535166965753842960787376881572282829987763959465373784473448404692957850697013595566085661605019240844544831557046308006422116214647414729031829302422512207227700350951747215871656553944944100215460976071407724645973409858187683591804782885837576960154746072991600903692529700190626488683161347954151416125751410294540614186837801333771803276770285587858115790773715146175754177990120025997765859060694416426834320886042658097808784333881500319482797329874670209924965397283725514090206807002139528813675716383703561281556610029031061070190417009110530654364025897044535829212614984262267875234617742468829736338131193960213795413221811664089379950928044078464375952805325304119838688905786939870672705288629263280874516321845330294704332285962606778364247538204365773270763882650172026894664613276952323643017963484584431493308945916741303113892212243057080637295794698036737284319274401433094378757976522458318145641719915511017669783397606941097406954648113363724372560123602621447990284886324574595534850568820571596144946884046015626439008567025910272739568150823849222776007032655315890690795201794411706238186362042184286249324532493879791723743137423594826507124545803673673568632055796080969915975834847094724031966818583413156132015614773218938776038117927402156094565937971644415318103644585627528958029700313377494939768515083819627761633325174682303556381275293476196151986646261703516268343660900874740913448199836473014234852655660646142341487298054426367657984314925137107312752554058409423454629404962939919636881588503923292287056775746482685131512987344293303245180259156239712479253079042432610016661209293203337829983340368106758420383015973201191971348392964492746525918783706236012255932618956408452695484302620308537026372199985961398495838430192910333120169373720069700667111906799295075394780821433383444013346452368656239006591014578544885474680767872045649787608525982251486020952440985666185083774718590669239965600368928786126069330873195769483750563018937230248458116029267262286232652854911169741933863576402488442446828926851287762665741699425630805857385921029426183926760833145011649187540039354008167730405236658282320809081579276109456148209179671035822377380675963997723392900720050278561270241764976844270679717056976128117764792928465792227853712917383454336877171418978812094804290997345334164154338507986980857788873166890474360386718121811454238704467879052000507777799380583033049154599567729357939126716688380891018940711682406223272795209009181287799775373973554433087841841364234247500023874353571117520830888492885272273191214212840880655401741334897573323395111484349715368540788824939161171429007747765866879901729516074149858371209935792011337404507881200650259043271464803824678278470826181995456174516917447030008247752363562312552151172150368772106320990495119242980922931707405813861997153605663552218676342987518705712230891086853232208922265329669129854991693260041186607675972376849034808412062552967981063497709097602505030568256345603084665408146735236004874378547695189514706819881682645947852107010226683199059265295705258818924724280017063545569718705043902230208105918544726812673283361247719138449995178041355210012968417423736173082126636943335067065245942193634616244806766709836745743223202612353950299148744585908484253208380066726848835558266997024203972733591621747962919802236971056073970516961053905978056117249615747196798139686945555488343156333087516734843703394327055192023312068346814547365302142150891742620539726517337531440890680496060198113868413969214212169646946255823261977513076090826386917769237114167966026701682484261503527292592299735529827698496056229857798964864172396890537329771214342200435219177419356289844168569295574614723985218812812465883802875372998200638829650291667735924626998193307488593381887345308295115775056429347970672002030881605230150036481257277500873580340070342485426661368921906663260084834458322317013049909244505931688271110065661620784031207829092983294774979473835743374373918918520662345260984368555088783801275707725765512900838113736595158134613328214809771419299219769119869762431143545713428728741352723430408477873407102387179718904369424932167424053180146227777433019193158223344177937730147409619676042913383636408188980187725460463385130776736936131443386943169324135812569315286213282132128657331163523584366317572616318012588756540597168332290759829933615056159607980532259819365767031519699517779209685078994742392853733904988079261516030290615917015697620733599479367334919338302108371241006337262920969620361080106496931874210335289601595730265081522702331607930770476619228217014871928056713141250531217048644406434998918576044386820309210034983844138204189204337393404914495241947394345720339068225758714467082752474171407134405310803462575967029657222808934060928370581258941368797984961345937071212331087137242456098819839649182592591137367560001947716954900809213619417276342495220016000281550590303042844008858333693505459106323621012825751052505532766846692556261334178499900835582519985729591776729297269253863175666398963512162897001119614033296512708088429397967354850424463840793597813909488667224405902106755544562498920299014854500181661606225681188346231437988687119123027309827356843726954584139939449242346098767540020593456239486874707126734516643254347572147502203658988754374189094941290522167829919608981504868116037169237473343963354281728487232204631263607420783428243324249195016993544301518111508104683035558053089148637277873816919907587469583942560214676642498464613089899365118594477902297947120856351729007112177658298192978973273275284334425915407715277713256741700268658985110627474853079493626470573257552254823092001122823073919390614562041327417595402283352008820783789672349341391953830086835950258653518867156308594106408964387397013841202680508454478014312179747021961731060887614578197363289310478135971473024935822191260074641347060293608615395777895063875765744587715701760359184547277752095205544146225825859124091907954641673976531166080676215760742015463713383287942915830911411315664431676623424810913080878132138726283582614379972604653213852849375715964483316607241536475261439943358349997651860232685517562548123443962484747414776557410891360218169517835941762909661235764517138516910505487601267858154975711268088525616620703621845335023001172600932029244126210493245671356700227656335633331833551696961283840341149222960235984249677613236010702617014388036493110641568493226380035162531558678336305644090100649529804202014991057695350453777411454347773597372814498881012327547341955570584475641959145246946398173905434463014123915348071218013862945630485930587719435066493902645588419663689775275860041067173113345857811097642030165874217822393728029464733812943303512836564930788982020952698850006167427786771738080948967197785084048032960697511783227632840211593151625103759555981868005616220177052119289093351923467622525124880020651698839778678766733444644503944811890921830217298833826563107711564046133651850537182335279891393063273908004633387652575795981478840224538170979542236877246490258997176427809414391812272827685023941898644349696153762358913257692251218634531368866780761345483231305324443420213072834745208000914515550747799157345522036540194226788528847400436645711980838651586139126590624282396889859484710191710578979941199613236970851443419135060926460671790681411108618346314173067371000283083738457801975226108197316804351352476241499769540798066638846580664434564064213748177493187167619559919509056868372816465608677833893898820368652930344706749737782277680063702994692319477840226950463313239651836273297822967591657102072670596610034789647757654081185884507823635950616033618554972288834131997484108715749894034440567501966592170358990002766482621236519277744608362030432386746137720546565213309399200184375204059705604889099428855415513207986914661866169516678584673542443371107281495778373216249324921472671502195022617408952126769850472501587377267284580576632997373965252179092910381394367465831962998877830064561256879947366324494545296315162203761117407015704512332159853220495279774128845159719627478353253705948359520718678680564258911124683865667850252927358832335941199559261378560906930810419826906636212310651298449259504265996532979757403798026087101581828675502238272377606235827774987382161223924946971406226434795456566215547305241761313209306459162836315105152869886731312618048624615926241776311244216969184437830598458494137916279831258354039015013432969740313761476028625610477022616471873455414599081169701282665294855231112411178287337172196302936521601531082873963380011900827226791289898736415540471249444880701781763235385924235642352911270580211399645880023207979252864815806321590138846349421697655220434957115664689041141623356326103377979367975482817853713371387342605970954360090003337734095118133632686202012211018330399675840011257114723297331080276062550188059384080368204113936286611247223065496424175837780207578539075840717802627739109979035600174169302580224312501657152384695223456503470027842581489138561791153311364559240295317801053352853496911360339775493515444707399866036985117919609001987364470158302945570088284110090722591060484582914671574140672722294928580744765272163723768646687840875381358018555793020305028613609078154196633481448442623384897010239600744983316789449012502764931167375312702694770279547029886978921503697413813344975625792382892252346920284730733647880900035953881068288420082396622325222316746988771256437189301745776884540598897496599071579297520510932464850131147834907577874051325400300125760955299526963757062207804418778207978444571309066772376355764638089081493562524582871438171483118336063616639395059148006122174494994264521750681382409913016323886939711635894272515970906135869133272272271811178518742568400688688402820511479160396157302465878498134679830306334054743367936707095875161875798279129799055064183340269174525052372785448259104832014425564964850545828633264755382141438492048800304562924639916495942556900968583500822784706584832441451386174729851855519376671973679650260780417041763323562509342225251051324569529682771235571720023469257632870490894936920625344867698913196971884173344107512031242354543589587568818369596570764494753811393321152295019095004944880590567849182243370635792082123888032781405647803042589690114115069732057554957938357991589295638227944948051714655431427831142217985396905930998973623311964262759477436069851277774165697916461523298428743797464988242633920852656628208143528332209268401927740049682732608133388667767455108717556249411306203077796222126604453076990737966146119279759869529060688970041709882705873153840593863275003185954607321082519558096466733099203334390766763990216519459867490644922232106579688761987947958243946339229159172564349631096095674359182442955310351892904884967071183915481967912450245046707006366555639094824904921140499439303452604300424578626364900348176287734033502061230340281174642136904606157297517644437802857501231637615781182391188235882715558744801676860307449764015307479837533396377464875621087874840153046903328159558267841421212137806741072423238090741024023550964414584804100666810849663031563556950282013440646722619156910688268991584334094085471353983070849096595294101475067198762921581469695497036868853948587740065118762014662276763617629852794652417113656538569853256414194452015956612370434773743162940706925588896249690338806216526282546104963064909631558169822453975804909864275584134585295304716269961292661130957632678895429902540742770085689368286343787377388731475671228770685927283146516953828862265500691974143936938103324757094272061858708385249187853785382316423430818382751770911943735435478536494063626303862666696655418307126563241977206092971731066141973395827039556162936069827804563732226730215962982220870042485581286859347451467822594899917654321502766940367808490496731313165063878818116745494752273700317246898447975554828925382913506913055638074065293825464376354050231601440613227047900270141606151719624015703056518332435645119057678427907714558844779723332394285146618402230528502641067398948831724148882683456164311327098903903376375703172869379266778696920219885979404028129654552515027784342271016494284476405212323180169218270955084673669544251296285996358073363818141756350818276663398248441698691828633571553815815448406689153800179694387655510846186533583630186722514813151389869240396588561350764273493185492130462251874297705118512121381954196238099733967817790515301199856167176905445465047212594580448693677997145887039637342573797613524594111919947054099339788418154811338398534481745627857261515732484602531325620417183652576514922360633589863821884466223117675492184492819328129168066692248041676885348139972883237315574568736181991664098160956750454648020297139597553479214403037378898910706051237840740193815411189834012521950611578046763807221817422269099299671693194900362951141169103342650513005846578308454008438887580623747447871052499368908791185467324893462327310355520892399142674261983328828133763794501583997002058094556697613786947687335552934720167386116288045889159643566487645046975976561850057672045883419343579218262942838517673225759050878836035412115694411220805587322672890678705591536842251697054140438985273176574594860532373865802540585109499044647666989801715148326769016622175402296730555947423608819464002542534253672017029111998813812440015712284225011330911868991626956599433262210538935562139380326491487070688977750471335557883093652785477452867845369847856587767048011211975814647495549934292253197880290617867065883684494892997981350873693148726493008027355053275092835156507506983274926455376546821065256774748174466871465045109822723084795959304326047607605096820161666603975527213749606275924473962225633731211253958164144620214066557918196134267410444588654814158740480300738063207214084185148354662212222913659846162927493014406821185197881045470016126179444054979272237807735151003787319417431588671308691952563895036695547275843406391234912227387326899808601053128351053764115007677947577403139236590931252557477362248163059143779181490279904281968107012568156945124494042723528887610671137679787342944449428440053188033952648377998198851812091134197987583446601644079258892674532437607654826552324549562581755007588943921423031808382020115675913099404311366170424877598401226611249626825350606935085426102914460359720912318880660818568209609967614025815140107773631876294453420009091373198633612175032441584280862152669351739585237722891982726644535553004914717620150304253613178220675532799452902572069629205552237439266412872248878352051851771118393057170696420577283714525665584575800954587756658223112222824613970831249166392985752219853884169102179951855697956422777775956188425675097116054429825676605953026053949498090369775266802521724134035796996889814621437613517151869116067274175316993003554063788774409465139858529765036668447951501690327450847456557830499156967240759374133902380759450314254933128552563646417746736562864000409804682178585884849907989904995429754689964172746913618742838747631748041526778689982741975721603555922105355905106195225761094830530559790226523027130882771891194572025868144605346186740860468147316262615597221075425654847009172644006855479672617157646017732135801781347884976577381504238515489319036018447775187285040430881897040193990018164827488701525801496271278651665516060305345454555668229946480089022097160121425778249764902094003767532877821090564340281187977598166701145776238391861656779363244625412428913369799819563176068344669747129555950193200955876276274427633715942135055899952280498963323558735269945618224270293802705998649577374308066215287882019128332575870052578976266847999065842330774320765275319850997210300393797278214769948958772972042610106292286488857692929764124010603894074168475008821536794431813047916971882010265510867645513130143795457487458512558028037110992056889035596412579241905995883014886494286682450507575352281670174129854046679037594905604943746078574049593741262392528560880574887273816587466698085730982637790622004816076478279450415514594982388094559201479163336928996509375649361615032687150405491612792007698039051657508819292030733624290814946472935724494680472977113756803703737508666231136563071299533538617050572268732728260953201939059271705009235518027276251199405601555636945609579886857833766535712878080255595587570687628430547671556162919751335785255460625224423080400932599925956655351695350166082711150785162957265114719383326334331364341514420393155858057219769000795818043130960565223203085603579327465077669477101826950252326238725497580175238911735907148498533448154036605134850452813866280475943374571776713219335676354280558427935142895123426405393846641770407540128723181090396458001930839353397204671692667206923278487300074501221840573355568744570316569664379348292217882448136175863245203107342748352962272998759085681749108360818951138075018675388768683660496338144755763525404625190392733120592322370072430054313375074210235929441706302247427598464647817906808134898260013959824294871580465034457542829108094357383604992768657376296782186992390693162558217285582888171889137125702731012092064561570290317397506940638891211815930286916638159850514778121916498515240087522715437566360772265391487424217664648455297908051210450379631024011454040793815424623306637103997737579720192214880706331010166228977393458464467041685657780899132992493174051785767125614635899560078583924106032021920512433497125778132140980494219109908586366910543975114241147720382740297487498782702536089509216711234177323393374349339622657495080912525612557116607212515688998065307911161970302969448797366332143062136981633647779722281824995891974542088447552974093173938338196429597688257835607789521559592593736658386620314092845809663129217793483799639629317298247146128884644228511304807397841213628136177710590228258463671581678359349563934068379212585777621614022833637777401883002836005917348051070755138857129992615278104483199803389175411078553968104405768379507382264172301912907131725102163906862377619034546987450322873580145823459057566758964385099318036437298021440248011259034368349047139993600706182877590442359399801483512737577815313779908171022462424495133713557787315304412453813249002596020075085341545816577234110143219333606447493245187455196343002214437467463950375440965273338712800574398496289236935334394185384355094421971503247939195304017237311422720887318762222729217497964301770198629015020015375418127328553961183238999651638141826330661095090556569787205325419979238189416928598959987264657343160224583257171664617763166423123831078602787123708646473745710241236812352107444500213248560267588921996554380021647725287126717178516028070574318816784564629915612191975429639122865510232089732883955763128834354846773590075199949345907785850868563847192313049321671059426841263194789063445083971350277791550095681706959650920816804023974982929596392629819454747912994054436497949674512712463651804684920390249413137497456063974330802385597428892908086866070558613362965920251333359442165997418818955206685754501369138935981837552615713844557311685298145735333987679381898702194655462751551892106410395621424173036360803792081372929499522003222092708367203485542965259624344680089427524762075035454383836210705457430110011860949500728255178599014865795649566443295756874303136665145394186945018667426737809563700097631925819296446801169652560438957716799703956477100407105623859485794015105995194820855723969108974437366074962627889955179838124478451800129289324667122349268762631154272894360531583994648427493676432286161442024061414776382732497210875837273934364438496680162788937707891756688150581583597339633880417276932651236414873565815294232656964347812565881472165220324217691073025755350037470291680044505624291318255301111556684158686336159959705682972480053549533475262586985582439863037835795305304686357435821010343677212783047959987004837415534455764448656012259865786155616562597169465624582154372325406963280533545298845780011168178168944112725856560924596928541117549806768451625658153121528309019171723570472701545454899804587132340318995837126050368139963475013681946531078350806429564234803960448826868499471280723770889227935337989405682533252016338420519929505105967084760328939324697723496717643809409254034903602100486345247667052564838400984872650237370750087376624713567446716729970639269215792248664488943981988633167466925658755413947555995052926066787554693038837714074901185063098580753391948351912302452932839316786503185105087886277490390385124268359338238998275295161104266650088978264741662249239629441844247508341791845384661222936448653439301164562229630395370509238877786704084346692085821070938081790627026192671436991009270118756002133475715083367679820294658332212521684341260796217907476224477697451729752628200255678959100377707220809842568052647604870030105992032123039485538732008434544215359186510477272701410324668323542904253463586917135707834249617962510964178251242968866763410086673527953085996315035430584285193323466039546998046692392454725273314430150246239485018567637174351630333104707174068769667206929834838636919728664574752410198863300363209748490456439971761433119896406755958747650999451523119189164662036259836905359952939887306954639602895032548421232677727250081857054655963226525694798388958095487295888225655518855187530512869560939856056563609252719429519673262833032869059185319136415849539221449185629490364033825397605352277327457414024496961300324686478773503910449263038409740626933928299217261463899200183267400912581148145970934118926572776513605772999326342123346242944017545780783874980593650485502551658139498928672662312936419384468083768058397928389962035699370689205079238963099818305832382883245764856151713842197104894522016458634656038203029996876114770040733151530751953728921101239335724746222931407289320584241069107680654322044401862617524034315444637636366946212106142033540873847331994953865165436756572416484595476533057172185358854965299293961302074434182917273477038423297815680128433029103138942731857660362955812443973969989542774075918072033866427058639188384065985530220229895385108842109798617357512153939977523992201891143071266231917303741621939190741084374017367040867181246470264689896672748265858938801361049848551035308761447240986338333257205501189838940009939212970697565580721415711675334421991824886393601196710467625033734114832059836404311447913393845824171165057360563061736602460434104213091133581499527035983736579722220527052642370010322618833288284747050465490446203992566753191432812081477947728234822222591619253299454268679715851543308616308481960262711552941726351120662542368907338411071661813544124506352120687873485610919754055796081182635835387898107855407192824630354871834944606896289090571135806850238357711701052407216687731831389721226879725677586472845418022804738101592089536787823311994330091557840370842159919912123039662008866409692557637934269253390376955270642083276750551176760511979595205931859518606561694741364016877680051094997474591920344481310743945280956120199243275622824666001097742995980147431611925975590636687580497286080254520996489836905148123423081022003459977373398625429121267423812659058924832180640053657552678064568438659448343661327724961718769365159759413845720080311241630339110806719434006870836025815066249395251445521312291337895971489638700789468093515360499562697365338635295616881802262550748402518461963014118303130523136939056593136668139915473808750638618240384723342753228132625178006305341696427441937373387115712076638230180506245073371570525952585157941723436917206964488364615023242165329042257221652424111158076931197880848919590834719799296444389239999003181773187343032206470006417539267542509685053366348999878769700773564983791439348107030862393851693715007233061760396334557876736599580973639346692141699178570146748570109596966982848261529320475067788885623183080252004268404353342307775186378488698651869635927197740168616228603718219210612082981819379153829509062688582943759048703677250184642598394948085076359366751756454399357901284896882609904794886729403220992673533407708749967253186615833132696595830152214881480451911913563623021096518141583448249147700511345942170399248573065516305800387029188866650022647659319900199693956480550158434639886010169704003354691165363599842692727870773722920826790446488857950152496672806560279038922812901219021978822253970970176278303282321242918695156522333250560819212450640577299387549015162326629442693141415160977872549451972436441728076363297739267585794290969994008034233362619976532016427059538844169370660092504755613984101326459376802850809416938322660206032865409132729273037905425122523695853083359951827694457280429966654007025914021017857006198900012314190206517211685270755796909286203717856688239915684314054833113306650402058735561097584016441308967080567184047491017380537935595084286402647590692988617217836797020981111717153486199496218355092563707889290596147012596496322279907176103118557320822180277812606596364427930085136134553489535933854864728664748769489712864755224150815579115635133040652120561657940106546035447641732320882676184523456726086637870365265531357492594364552328897317152327815518226481925913499767703023968345112423636009275450883850820880799516405418897583765582581661484481627968302019247156977553070824255100848447906666002639118122950508098404783491041317302456419549392836986631159781737721924842090316606747548937114238584001428021558636583098997303102160097511846701941248108997959640801186236865465015631759706466308637762821988112791641542424095408140567523078599848734622993570871253796207273626234271858187494176563157351806737059972855034422351557023925582748510419174437405039644572802583973466722363603172489214014508960837894642985829832196277901863358310200888651851179604900157043333860467855322951566540866471524118674245222051455691701549923793459071033175107951388948909234687186152934375506120177272662776288326873710152688385916020136337123439170156202551164446707066769749900053711267823204692654607190032403914277373145507262202086153532864018099106255728197211188354296549329850736161508707333411359507393902337472900394772559919510820284348704314340141780590670523961652617385863295836606889773879093777896109200287865937901427452151009447928702332365446916988051205458530570817818378269010536517793129650496430729441274508337326802626198197744820872684708573084695353144325172247173321759834536172635859880530940073394400568412254797669602719508881698787887611634562539710049155100892174326668993992682135472931437460044521070948718198737304952592404595099942314254718585280685303410318202980401511401365589212996327218055462878112756539852109282538821588549798037144035809577645180311844874136446476141547119035551582708670343456348415968223662252574286614001380025129894475669480294756869973653338986219363050495412451099534236161752463826529039272836144043050129747891913052984190774960365694757628484988789792543282397747964143247114047428830680310240635265440618674158581301921311097968098307723004236470746939192608078833350144714000986081592265751229198983352396748804784696644723090310728202981655540729685814527212819216322460493349586824154857415634580267383838582060916618739373037502847355996506898381339215282128365614677821430804575806620883845658171460210178531722707413375510591024378773728726033756723735021481030608135885935723085017328004604997897188736650391094469860750141986054058381248148490820719697048846722363355620079492167134382676509833226034341036509638353245616262922238157049181542226114422196098121742899361951920030488205734280989104295878454066377934726718271617179609124366058919326257499334130407722171859794173345629860442815911368543355062972374142519266146080908644188820931664316429695234700821890893412590015121858271091050696913719791490360444729756424007565454370934893514960341261518977545140932970353915705828089961463662109029233193694969846605599332253434585309148663353368187890705076694507403524771901925984681795758903534240035856311047043301104745133927138256406418829547511734703821767271786546523078555156546259246792185641198818739384990572302788085849813960760119476106782147281053179420069674503036291918572890680859119723648684737474001967379759197749057277272379512880281335579131146415373156780768726857047063179871056619038170007617805544673121819163822836456670990133671308686899021495135061697121822705808803128473939110109755720723451312326386928175792037177013768121519552730092048454927900464832659840963246355606727827485466383083212494496936280643995427895526792223028014106308745825546008062444114700566114602130586766312393685484025451363770750879422180119768209767561718353372398449360206455247417398537137381936962665526451921024893347946151557592037760839355215875540815652644354302674508862402437889555051640332059328050408516997746310049902295712722989881417438621758705598832634996253935106259892917570312532640059833386852094400106597608868245176938285075326677572384818152982796755321315586569568558509359425251588705751860205883952905246153112817378302603748095662525440928513461670187107636304608812675080707492526472090516731396972948240206889405159011049286483858039064207318268838389687427065216673173558488953132235175898654889919925422396706531585017079357740186934180057537506537150803034675113734993251165679629817280736674093306434519723867784763569262410387918378243988136273325847399408968486764042978480395149837670957967269843563844493949833130768672788932482360755839490346467654957107388269207145135221062095677508620538383263472773764472172498428177885823644592915609757559536834111517805790984084780805582655550058368815246551300980490381309372612807335389011014654605828890180952043829991689214388377570375011216246964204934148872955059628622056847122172459580488275497723692329924639256326281488928977233878784203887729942983981946996181421916875576136942737925184141092810485997981721965640171202990436658401338277578591646415603140644042055047490731013063339232855298598816179154067312623136393680386772764193848011566972351298218867498000587118022996922223757518891622007546442537558634811671868151079167196765358473311249005405965036446051423202151658595522017354338687462907653042526705886374246744955264928183177758022437020535625416703989858916098207148961783605027862468870093973302407803312892710388932446815979556023829881607389366338004151050083140248639007508741631805650631514133096616052145093487746493744625987777660671383774775414718237996015324805864501855502130411965188346394837860740293378293393066256006600420046547172223805934692023795457862108352549451721991639207828391418239109840003841418887647760096982920423886026434011732809311611442990029947092943723350365115728103164251327898022946629032065741571482342144008535238120207445593038945658179122825634327142856578534601617046921753608703717705900910504798350843521115028651119478397781789549271268162847199862968464007461629939168078378780366077813587356020090494098131721057216488906017933445031810375017963053795438653755703408358449186258779387820591774987123097046955017501952149574692208187758227222029217926933045541359718083088066047981616450535518911557936295803704084471092060316711228407395554885276934826288714500552658120628157381467952118207565148251233737045154490209127334270711326963599670811028663676587643542053735523387329482127470300829821026736830220332879116417519706910484376220811945918829320385064993946150422357506945935426786581428990213330892220458137250070935756083907718571115142424489800535455022587328237439223555726019047700797677249245835338885357047728745474172467491703678441243352735950627456826377566720894566764978591953447835035362978494808398996778725194779996863474911062669056764759536997355887912437321575050024929345916166938763723516212249748647843591837465043774028522381116031268417449998928177562436648543995641342225851304691034565860882424578849819367659916314973301647849433960278563974640990137381139195017732054787993657485388411472166141944650848546791363853510479950529450569245396958725722253096730958759144338806922496335529922195136459529068699348384714060837332039890889080762154497643434053599139815182789198141816692147021522881890009233688642492949254053263330371777966081828762998785737456979703516271505774966614811325680475670433232414376989491105859550437023630303146607532640173248392587893585259335185592496880409373331296150271711826883652389968263771882376160560325751314280924062384966691668017752052771837140845897626336369196284535789717484155405287792700966941104377433151251316509489723158457774288530831753986112657492735439496143039589445090741643350297838406882545071851797754570688782265910901536299519799378689543406988539620656835031639118356516304004240199949553160482198173852905418802314077174498879860672437592746285234687034430617282483470810390300998352500299743190397823281431104196171689189886416144677469283849207893331974304791348570768822969798152654283166950533787627226851211323078549664952383533759738725896825643639933058752677587215751194229981267360971255468395155747969078833375053030961654930888986454242712750895268119565559624491543008918896036099654350936243600501778480364772212024797947555027894407976438186383460533929353279339982558235189224332286929984519611614122342106111415565120852245106484990903914498166878409853439137108972996215560570503599024293744287915102483009971575538476022661616465710516896817432321788222620000206440019377363736005831653162914357034401057596764108872174061446189993671766973348466282920818317422216433885776055701338135742556831796964086490858471719496090262295613475343441476135769436248659699905395673834156461911916413725663295131264656019965758265842849433060906601897423968793448829990764016231052883542215471808117586332229693432863115886146547980005798542267582808238975803445204006373720618724072912734068512609259145729193347970632080620451156395100945984010620179451304839038552556895067169773609164411077536506271757154735104798313243498954561980072648903454008226996137569167427619139568436531612942862109916078500851668912799823304013333755271611074658778668316322462817367105637858619577266217586268170768722721161991045036094631488564144713892486474725690392995267852501397095997609249201115245832829755228199226988039595615593075408164731053429713308346463457281746272965366308293876745814304348219233332380721545228489781737772796247166658342638990862091556590148228122356410642842480336836703922021300302265709564985062887364242448273919001353261231673911141731413097928117788212456864026292703605309240272476367229433787712385436672397842575867029530688840149318547851197426398101942412540700806390790230008205185546499548105333662074614480410714097292907314209798994068782727225872018742165499584480683805072401663258647611901262704810732344985970255916968614760677284562549527214595893096335255227007840998730708132664651601893407307618322203932785040276325327527700596342014626052668779342758233761543527492100334474679648315201057807764824887465614758812195988861595494279256221199240041414995297623408625858033332629601025985534865476935727983560761193026733006911398182278589967288476600831826270127682151637263627488920331442627734308557419126613853394626167580688361896245987290863351680261999267118572830629614462706649194343798449445584082120176539845299771208898390047423302348394994302880613457663051061185621615634778409099872261976677245242400977887193969980230838215955499668164432458619902666829112266899790614111429945236472223176209555054567965570148357735970112656500053606140352764194655701853836151848051564928592666150578252106124774749674310458215667674395965888952634193183257160062362919015630552944998155769822307568385842895702926025961174392267214612729156442610887148540968866337515818431503476671187561220319248459664201747065906977755101033466110728672494267089365233052231053056496537306185457997315547068975469439210958231479855670063648557890612610668367151275948338229802445133709246455826124877591431867383724819494833201127433254134040911440443695634570406147361890154822902978894738335114044854858361636835889189120647429193379444290323037653926933801010834327304124134390733806165121412597434286103213192858157603499841465891494718927901687361287557476186566178721856248188269234259443179974868711200358101124524162584154604741990480902986309308538470975467722862397478947730915809547195817160171449034351180281521910921320652736585405397409655261763412898840941803479140813192367974741546295684442303624284756545614043024447156543833235690984507550104025152717792689338021766552742819393376989174786062347276089660126041112542467158991063450245194555662610837735884433042886598849301347104577833614882157244144947127244599681950082143124680675209389776717386768542812065098129109344861340706870199529071650244729768714217762681274096828703898247267669446419573960992265500292631385678395109612301363918811009177217693519805713427117641021399163417955911033721130695638507476163768034152969252088942907151526628449539109819993023422382425776540763082191483098078637034374541785875697433189862614226336784863458429586227730234572133404833571057870266994383210934784349239545933136481395297025363728443072376376856047085539311159403100938297531651724653100297714634191323730980025935432151226722908504573121554900511280248456807130456580177536115529207449843316661060145762464070373621381475325281591357073418751250584743074474092848892369255933000921596109762941696529572348211625403205364458174588723559407964559861153725146770606386184746130360176920364328912039124356941967403918400454766895587242891664058320554963691501753444831043935819250987958391628532772814177579737358480825620032671129957990912035982283736750788880293312756541021045627633642818914271058806127364755227155518891778712643160247864468722019826333176911528565884320524251480018811709674304151398151724749007763136074158453409915246910999239526365016236273593219853562413220913155528347484533790631922092884701632336491120298646893238487375226627985077864354025198124838640570172193947405452068860991306904916550055205031087781121127937445562261164606049496491173071117001742477120011543315552451191457120512604487170536394051631485698737360872602580833061150435311179624245240558497151175943538403012516440638975845956529061302448273217745340178051129260012045757565734653372303129706710124949715446757184858795857017014237729665895841601620483641776737077458027546081540552159792528576093775775641741198287122125991014384115633596879481277053213618443486688539041188960067398385715973050671217447986162011651034804229010856405381240990045255936624267063415693782121635608071878164765034260290541683196070461498287810716950225390804765943594535261897138451690861361175314816395833106555144567251645990009576036106003526449018879302776718524071145209516042195429883866872453303604676369302252067073340810555108420956823908449565901361012007960073794149186565277251401306119669478607398851792286723461514265259378197622580882070177042694171405311602551995220725096413369714088197826021239373061785441202853068104416088637401959931991211719410878140355355506664958434077467649315607348464606011917083202208935755774362356425644145557422384016614507151103639801272225780455938564793187045082598805844669005484125623062362471912587447277368466642839908551514072460875129544339355825148742640917470516878425782247599050360577369996338353682780207886873224765750158834457754942152576051207948094230444369645755180817585546266570674818600723020084687623608989751981150195404845080996936323171140990520107632979428940446700688902802532678862303595274773928284374065710209520633115316908596282344044490374342861751928092971770798283880756249294180217408438186484402762831157949144185904626468766437437418859092558339161837879165874579064146091350435372087097591721865003716124575662733373294504842331490866898196650359588855326305666408539121508256964645429417819411927368734254112949968265738856828991605932680132441019802464401953519149621523229437551042100456153970757409242886348525231176908788480810104548088291056696149087806816672781112364387106036997944970102772602308155716692846189871249972939561029032686038856720406513987079856646701041862626736867587701488662604464422041022152742584263677733971105039054613774133047924183555645569438282310072231358745839923703464360379132918788442826985810714465878100240319290542664174832620653770786377520268690771533594292269077633691171063320986547380641790269184111979857356583966355736315849650001545575402273709471793676019736810051966989923137201737144247588667057531516829217917328429275172866053685880527120459840584373052166075583263099551453211187390738300782356967567808795254311257972569044244512346604058804898754766408673720069905752067449417230645228131530627317316457837006324313537717891177406923086161503870965163241342955742485326953420823843181249177205207477440221076220536152814814343086613756705040403340234832213594466214488564329740515209591903939298192269474606022438656226639652278811525889659530224926077353101400372848995789007758444840025855332761282248617522532218580629660443990059682634638026606843912734072499691267584364378284064698634910748223620904972395118503563960345746386052310772333698731161416650655901198657006178692952873825941543215016124662106948389263914985139245976531139702823788608758346067242037638201328484068009909630925919024123754071599805204257405233882595144209471016819124563373492862154034299083979225760574408153842156843507782884469086546691848523180029851583351734738163738197190562674651063394828565615718938022450816902253555082945146231486128648820524159882866453538811437890016673865442486271855859167245959358708358198962716343493284148974722520034762362949865378358367667748297606332756887104781114252824502118971728297850937347187125060713106107561726832662883122512384094023441591005188913627492032311592021125871532822953905028107808068839067430982985575483748288504999653590898889265597201776187540203588245177413324295484878952304226409802124629059544263006076285819685700664663383944050003368597324962651573399529579540804184072737839615087187620215889812624754205977891950117537906805597705460895294937801631918440434875484988774843945879565785642805756596306752625182996060846123949059297195874535099595840354531108657696641482799671882454270672871244961845752117084517351381934177653137172438592578083617498379925581032603170283502660681410486493874840622783155714886776253195358869499288192177464704931435153296337717605953012618971250579307264104693168719720624339866431882652636875387303583225062804258466693039438788731893463860533880442113053712493792360223967447203678104484701641632239834865737418731207752060983091269526848454156825794015951398716012857131360889469233962259292085756512310942059827345707016411435776118258837554582059767342354163561094693120645974658280408762320679183934511461459120016603710431158746472032078874921682396819808454578175781109034839531017784334741184015593309134940623263199135411402356621497334430539877439107857134845149002290884689292580292413963616968005237913859458715068191522592327223258405494582403885950922661809185699193355998322930975073708675892019486880218004564278088732463976548908325341959865413426036793785420206183761950692998859482700107161128898622819008756538670447276583092932529878101024645867044920190732068493502266002184356259185770138856839522990546588465347931452154646609794562120473589601715866095974734236943244541908047742086562612928861752913140924530876567349288353187122597512897493095331678358250010252464416048514441334014718011228416273638789968320152300691826851659401703655206591785362878729320010210395355716726005932724788479250702537536578361433225506244091389883650292345391159459249036590612967023874270913998151932832624399351396378157830016938513648630333133033230352206652770620522945229586388390780862177529246148074092108357759320127551379499318706555932135656701346405321325015601908713938392629161084161069483472207288710805587008721277596562990188693933555553221686304981054557139021880354294585142091878971426714100011693801122041689369415545844679543106292802774677582083835449373980648823244791794819738536041876244098923947410715770317857812733048842790469691918156571699583238747444449642152700315698799222072568175820945372655757691782986728611282021844138911420164798199979974611727011721925632838916035216401600404023679963700221463236262581380403439391338761427263050250072899452449639379323161463491400127642891686664028908494884646422463581085593449696353624315406880147196481161331443836747099347023312404663363268690105866750330420033111051381551810397312649936589938766361998802191779835584253016943158329579697192010946889436709309323053839314876741233446163912201530759786807304344768620944459303614393258796423281806077102559974879317355786135130512680908105603635851958910073703800630936518062003524877809148505394517614610476390773864735284865922594399023354248175624490599173219769806585079438651516327544085996856719404546711966419206910768280482628861185573589105651485831591831570035223357486876606988417276994364095448969294613391978463684442344733035373381213295200146951760626491173672576866186844939757918581663872865814202187055674676147175583942614513120056974125638451726356869155021127994689614085341360058505700985002513043755608895777109091413832519125023322496365990461747833299225097379280556867680099527278170730201671827996431690248760693092908563333819454215112808428889130007724095472408838642663364121303836784686903552516177742695779329476606710155996402951620573783949780113504536721768246085817803432922252529509416846692420342744760581412153074422899519265748350245673757930378064401338366851927256654565594773341924021863961522660255011332989463316901108161544250616933988389305484196048843583905367138405931817825240620688526934195789625982843061789410344497891776823127755909514696840754943720237365171428387381286243402510977675069171214925531288750529862527257900403290489173142880461697218646276244120375347818673896247909662195266670351813484364274743961828568848187420131265380793944182027781280589596488431357148863205290011696035909952804161824307097428741690660494532192949077020578934956074985619215494664013361259184266818058084166986054155920124151217438885529923441665503429251977503388955153074975757575806468291312290235234038451172239257199206491141812641152913696283376098602962204430208647138946655419578837809888290102721546076241958960558446758745739202641778420593783682026724819057926880963883711831686195430556869477809076037317469621626297263847928503735848727205800323047369766960077815080639067867219336658455093172106691943632368499332294471958761566922684996076816341977365510839869140358576516472051868058861801906636592812856756870360827754035369136353832482190001743445485001687035666316527156983606789132131273166447310641158971585661383519356837666322603108954499812713116283141279577044335820317813207938422209662933483488314709675756639765770962789464550682670098609331853125228754008636608115302530610072044087464650685358734637369074374539594521398992503121997321035290988280762638872827924129731563459372278594835087273938237627741134925500756383655248943386959539081829406855703463173917329826519577623408757931870145461353622497505715286558327925581420836290871567523741471690988099406376209291179465185431376014548359141383765121539569805687922237003784828568499573445513768200011128674119058240530466647470998022068117213815292309879635139493162135837290077517854390186909665437603981596196514022407793329281937732053846934326696844657995630156257515441065299514818121138984650920880623786449180618413611656121429898070366314273016588457416968832763721122303095250094093154139132395404758856105240880480026013409719849439784999617524646701728231766603771138767858281926152760937264558566983629848609118030853745783102490398565791349824274035775591910273212155559862506550986068680505077096040923377519282066586321761787279230473561873261442384735554746100299381089958091905463817922211219615251470034382591356587932634409728801519453602926721178580771458621648413838691373357637347543642879579850615400445530513588270246690389531422432462932261694458042634473740939231075222524657685560562023249857349292188083910448525764665759614055319659366894642021878771937283422611918630752847628540178363614627707369450285087676185374196598074902293781061650032836245213039460962373358736552763292351750560297432317807657866143359100500352689619666644144509933423869521415799600367852493614588844632627974084595925608604470808013916719658783981804301462864549345978422903564187143453401698515842483765363760420850001855485127522140110604374183501476406528431619853472466259569336273005374783976644171049986147379496351812928982500365893690658870388432936583613028109377868231098694984735417904338219790295013800116009853669584138841183637068554532453139718862473678418001236958989568736928780498270290452700880531692276263123933828536828584182023629449592203525290021541539930476526245913668955338249001657284686652958415512267493718032344463364001501786880946268776493590102494810511167069603310377451384373216645689674266650495955077347723650188302750505329164743435746033702963922607124430257910928169149276587790991254413757465611699507545405816558354151656450560837187199038606822971985688270145515983254759662103945705350417239025092538428489744153120228669409380363636641883833874750792929017810994898258463986945355843688937292170827511277601581956177012866756608357456994556868132022190092391345613419510031739715833981429915950692615322397602602503929244126710785895755640254297268213933450472647688310212417747986476477690069506139219703547464177800504338800620256889838673103302336545526648832187026584302588015467044525458425881993264559328921911074699580361067536675265410767475851439199609761246652984369572174052272385980885960115316283128604356280044412995788292359696868272785001732747355062457816301158285345554468973197941652871205094464117852821202275139069617352240382763060022097057277411362354632663373680412119489018216372319959915095500392225761363766348160840182804877044364090209386802248995717726066091220432612300962620026629614383980185206320366942475002139888413586904165660629123577381151366103866591663466092737868510030351563397703412153388130120044918308303003161549355829832406006642291751250907797607470986211319945032833566034446825350514466888685358476870662766287789598351536993428917079643117194646803573703173985317138655349197720556044709377330817642117632410204481955393896218597433637944538135418891808423627903693662309605336341629451963881967544108619266666282014409787150421048746311251355424371123650163997943356097527520518149682591118397667821009720241294682129554983417605530452612891579502817862354973817683990765736869899224762646293993019675483367565030239066566066851728053079416337891074391891613030296017155297926087141086234913378132366208181354086162082422132497558522928605134292200170632658968285909074062878412833514847202298437115380678477855082663536690251807450762790858772481048296329320979591981576131986332745658685368545665218019554182548222589982148398760260152278600386584427054518684763416479219716397527982384745876857321924098527225254032965370610125790379325396987252104591800942742022781062557642028048108416400732049758820060857900805441547940710340826254172358256115888221683635169203952508733207231375403335045067774688886304550933969207367398976869719033235020457016660578689654391298645361484613682645967301723271379428049579843779833866787313757807618885443135582584869100802260451165379408325921347914371793560191725330402055193460463799213266394759871595567437796565822231279104177238543164866633700502708584161143726344854110917426553055920760046716159041590872861828978781478889001159551961865071970880546205312574848088026299063731181599060081502093757308087154872861566100069061672394638965551959074844340022618571887105784447826962674785642896131486743128169140947214588564682725711663723994834411683195350909978245793237551089072745765320946975118596831889035336953255120496041252296719155761055784113187179410882289974025304874066132091002932438098963732518385070430689304662246957407746536357842919456055482223769578675439852350149174022345475562353521058303494282106552978801031271080759103846385981853060005935360951375552792818269670798316124359799749650730050446462958963942293910183629716796127018439472189904138948481003746445296855403510493080462432414870037730756311404498006974171690685506560883116281014425185353238915290352118063745707994550398418908289201845122486272596844048907518577624308575025279747896711366604366109973578452436998347591017202917962141390748841904961549569420503301303454045533923876894014098601197520856784131943083107980156457482461484872125886404854211749845018583677435607519789524074543818912302616240361594482214655824098841047074351268193238656670418898218242843467099871445806330316232211871372868447309495393066796190860244646998872434085027273456189315456859818326463015865222940367790776720601680844579026402317511057897026860570967019845518653981437155484653324794316617738137397453095457634453798973484155688300984489734554098390559954622263322389757730684124402668615710129001678022661413449556676519474018618893112823893091988824417356515041135259209535690579204972570667352036490753858645579972368045446867039613033759532412420372478491766628301424130204267995189911227810968939762940825482180891600922986453932604309748106654297128307881752208800183332774110655712517808164770568113363330197934849890429112100271343216787595969291888221295556184622348191530481466155533109438097797795459304450983617736636770672750868007839327028321828887041638273846082496628348454530001054899241570125225694614837135844845923840315784738508121611863480732736291392566191793152005228648643058789646216501005409191198318300679825133027139072217210718981454038761050481217295406206291422614552833430849335114777629037059807605087090906025153887803165055960808155900845347045204658808925174268237323114264678320403036750265628176839198645463459315154771642875279547500049167585999105040896284404333599721788437376808440157263604554278095871796464788116662203936388799127690696207501034927239875430265359160706142157264507133928969460627534233367340366094693732575137202509939195764796936812071763625626735878850185583757897139652708699651698105642882028837946279731186294785376001546792928768058148461473339714084531599026842306597788209294369420159588311763794597747443687160742856580644002803101132771528096190217414458812123534823100338512493019896235723859665363576525347735868663936847506403995638272859204329866840924370573819484641268527130181101745131011886271711796519653647000747508225353338381166257254000730858323395183396176358378438572709303905804261589235376284584437170233232352929375236209122544045959436244222701775543894975978223380211618775299487996674130056263469707653700480686613134498874556445510622164495231041353250354320173148829287608018872508694330009695949069879994573040364694193794606415439645444575894829713070664551035377600782651990689172726695970210274455899895512305782728572446908421318799418358742844070269179233899002231467790255258420285621329617506306583524420000222993256821740838832198689787276604510303007312589582270995066621016513497799378879858908865236746785537412489383499685074378795877667392761749186396227256956062456597239327481217903884668420981900710463433088133586276081480944785608289757896417629376116642604676080297359402347227800329697493163086792033510650317648917764831060624885141177467577544027757900567313995094953782134118856849303991117963209350100114188519905432512154505605514500524460083940244271993427519342950955027173498087603693759231093829901266492515521177269125258627309606453906845856161545255511198581289110193718952629796543136358163085443647446349447094168804491825355400930450402034934024205198506437995819568146872652381266057190604639061119040910485832119430745597794667592612930836000789451836794105094992188791263279936239291161479119234510587277660350925201937476464031610899382180358374613172920784201646697461977059764621417684962079007192187677010466408092697629622689716925165634268695887485524198903946325167567098044183079074158209834565153869792914829278961469273563640177009989255217103245568289596712369991568120700754134926536728304473810665411260064521273297490714874989618311549197131066152940539667277610417849613643622068967615069293067524980591582088736510636556876532263203412080373722790503146140727818030189645799791410798187715325997943345538290000989952166447410867202801166681987236561137350600185258876304235054141499471555257110339351000257288508531898820407456973697316406594867732014989000976769905656154363631616387342450717233915732742107944612583455986048617268866542347288710310633559442909981458803475329870935497775893605354051545640248445889512016675972338314249994136778514004725149575672012589759367069491677051571372162651074288931815190780418335334543575381936325597295959690370176405010579237405187894277847072500308761561207595707378008042254637300491696659996852292074373610363933849104003030910008316376098656978186512813993313817678216448053870571016944946359551205307043103349800709507134731867108914423906140292064107367057894766515524397610100766814617995609024514768259648719856492674177767123086593990177638175952494934812632645565893456148540016002411562688634537989479145953973803900797766051692076552076644971424249332104257862036387455651524086766747274281801626472176681144096072781051116845534175904085559516485087779317384276488533597346056749801817219359670416641254008132240673661044728358144605672507946696729313748927680871050318762645783708687252870630182404321490008532905426297461579087186611749365114388847773310757825943103565102704760443140123306708035566339634212889564840481218994566249239227081677063240708269634352832405911213829177576079768345687591961212982329671775060672245910604343424644364788959990887908073667107369018448880563833475963850826581123970060715459387997857571845272314769989603226178991690912773550669745170041127633310990393577852418746741729858442961583686431771054359674621031328653690972447701156566632300100270561574271493177941205202569892737026916201155311549762713427465278787749651751205897906133463179514253805593252671661948814376989947885024843549388239510227860842427423367574248542884897274367416439518598916989712782918530527958926239113288731194807366450690360806502030977556045639601713175479008019551086535035953393814926407171210256823092101313673318903071452411136230427351664353047904812387130711050201433797022865424197287594783077442652518331237186861368876007838977103209394075871990979125326004539207335194956436635395219805655941302278202786901909380551738934658512085283742726903398978431752712774931090010141422755743785702300193786537639465425012424704169051803085213693695017483110488035659826080899014369051493312276368912587877152947552537623999327926882834595016346972404144365130070853211488765285541245669769809838977148779941839474627003639322425519690268179969139279452783812595840290852242237732092429620041142491843474292248949183549102211666789569489051833761476568984983350793908706955477799475781420001205985763971446547833906802508316495184198648574737157188854867258699524803513131608961907026886968874718338201102992061666349800230607574607539238293735991361375383351865759281870468784848159268498309675522012945770413102480029368281232995878865455311343797279984460255076957632269469278408849795190917521056299040622486479315184345689470750353466975718031588797616790234907340909671220187484495262137336683785917271945337684468174761394340044940910891971528596732232144080815570633682904059767758189373160386522267562223474186589137102278304178993938009566775250188533365570757315658758251352116058961301860421298120861738148633379172361268016348259210790758177563579036013885354234883078511065007476484384720302306452849472519879975096130638597805921814270298718135529612909618631549775917378820492300681485741327258298011155833987728614434931584602855016150322220165033430096198463243817733804653768749568545875954529934189033355304303517641946997629394079337438036780022519997830789153640095256325344440998108459345184108260503234081117019803166939924494850322711198602713790483845037898276965661635337111506301700294604831560557097236450857258852520571148386274917643156118143233524312633752565556386185085035574386585410390302676307507431520242611704434299702878584339295492266702607726719435289190435824400848239711679383929724951766761773145496677503135991229604979741164652659825304973225471892514911392794822912675377341905531543202469578565609069819557568973105599433965197981883592913443876917826183407282596265431718752159207468239155477567979500010219199395626610235946207071840421904014741247724203477929579399044068825800022423989072797674621480746313884191645917949290372315388696355417353858606599942497711316882043119623109576194889967992675072619106221753560661088924341038302630761785491301468784124768917386636384772388690449086106222513240941637614800243202964565404022745904182081481810218861740121232963901007173294084138747785067643982216921693065928769461602698492758932158588310306391305352728818920807384231768596997865373046770781446291655442884723665750551311836227872234051507574147259001039030493040170813585625613078230889529595683126716705669323264832636812458372678471231678934018795765147385780470443248690699653444767485930512220846389319081695894139997844936775956850428646533998775409411160184161013013524853736901113430314808613202367378566605390820883092098941041882174207611976007869351280118480350635041966043461730305496319473348419788401920989661881932592347526151024143751181022952800179682104638308921913779577522453238889756706107066100954134762588617129154121193869498076342185685675758187914971841743831908459044168433752121089958310394300489423608743776405578659905355581422167169141647235526812714249616128392110568187699014440510967523029787261397628929357391869600536811973103194687203134185084498755788741117314188807940411109137935084681258026298444683092475112544680773644193885051460911307518971009790568614821036643840185262469194055594298461776548182792120411462563733301297790745516374262063623346307477385503407128848300533307617010323897626494926534727246525278913839406425847402505926388673005547514388533789595958209915243913017299053995524728765146139038094317360582310946982637354170531661753879970053908806481966784867140148990076319348136550866944095918514101782230523811232131844491832455858564911927725929127370352055379113168924949146300339070167268195479913506693448616388836088552061553080056284376435773182548913338069865374450436296015183603916142421436416284251902029424282555974820070553470505809764656561465281538418457652492997128571233868991904157945974985302210742996473876736451267397753759014843444570962148193323162542542814976327824262332646490413099891715349857332787399163755595416600801321409621579821703507741921607130413649020454194182035846459846628268519162933851642575785991957403405241510117602236818251522951756184763890534944076303830101322413443922860832550449933654789782084998280220714848348403133614607134406412008780988268472553434934613693406666081234557891762079338271692472591705586086019177944136055078776840016159365768264951593896516377651738026659857607980475260232622020234092438085484762037655604790476930355047280050022014318616802471180891251522212028774876723559290607168991761334831918746454971324068739977172334988450107828438314092246981187539391909798357027768081907802788573079732780977158271564476186101510983723091026882680151597074570660962713034760420200018133858003545616917462903696279621138422476226982471477211088045097319593574668940762368402239842119871564193564235225279984523250924585772291599618455715096225288362533285411082776537528280844479405047392886196608771442711985492526104468830923462571699104874847133728172230743944741861015176037158608544612720216753656562149696118846919247064656834240328002720374262939162154624253005045577419158567006453952892584962466368068657609117596340472937328471151707911150108763015422256360884276092492840413253509867347179965373362978909246357550343240009179373037316116757062758273390915060466972070117900268675928643214373059095029622040439059264929171166532430031863887781545221750830936999919706038955975028689113620257041465816702038007102599467759312615968745325145985649562787711784391312772698915035668137447982940914177577988670889057511632543306864238513589362442394225445964746499340073902617794760369687884076576839545011350166041720323045891619686474892517287116728171775362198502083732163569892935232491155595741857631474085253279793262600216008849152343842908117990142426590577517138857682683071302828745235331777966201610165950770203763482000911531460577993663321598421946137831259657529422711815856200819639647569057583476563116293755504884270721093819488589487289906038696451855577767204205696469276519051931840759278183255447563189489450145040252444308307126690513664014549034258797550858442217099186482298639791580728788748548288249363349358005158420059171030297420131660608637563935478701507771546178164588732104344911056895718921398352039551604603488208373473757491504462733786267457947472481014304810981899946163383733301609206244868668875216433633819819364653150864797771898371741199928522476096075624332951619343908743342987987649950609922123796911653889461482913513901244325693539390399366918940837764351134985174192205019320706307517741689339615802496536844211978496710173980971024593254548435183248749395422294798366349004471359231548446367275742016850173223292253196475750001544827297649708088786867681853819763579119249172992076548465881527485234319589326757529392677172836239433327056562450777664981170795967708153854341754975502436050706797972380371899010731920265650550247171668659018751785513105089433677117979401070448214287636309441412945611770787183776265222784578027256933069070244956855987508819988628014141962106394032479090601591853798617635831625683057119343346655446235493861582936378594082057695486626469882465215752431345558453919444403978367345947288785375614344642673027585957041151410604410996869290783527441862253456286847190588271287337057186400651929497619450779310955589374281367514788007948468742294974744290267750076586539738540895804787728422281429120615198523669672979489359679810661438175681934210398876381913916178872633535721567577574037216755408232586796309162630441687921629156987925518553689610460521279361258103509955921695216739784915995902523336422304191826510405579959929700004886967029065535207015705921743495975998640187794282367578063820507619024449682897904000251277721082081995388608476172179554967645569278251182470615728242145242684055895291542884286967407036550805856233057588676030218791915944245222036409517365487123065881682898800431477252675752915168044392015037739149501018735033156837540774002271594741635061998143867628058573933652465964180497025291575926232460339261969603620741501002571653397178727991665159089812256136230392934524053328330790932594245143584151299962687031865873915611776970839484235984893206202777517160598901107664030302089389478841188348581217647660432053872706590520274897636507698542460169129974123963476587421657122316813015547599644382771279593548073742789110173799151091616830502229106526911197181169263667693395475231717232329947607951755594345368898408934217523731724594957705142808691183891740168093340479014911190176976724771487045358361625741590172951023840156075805917185801436876149879505194531081561325119082726144662739139913796313908301881743739302311519946200761538087291723353310864974860092173339953569703177285814678272573210365263696428009177283017459926327469763617383199367124313759548373730342947377114813214391476438221055232673382832346976507092045317404809692176710376535782007656841674879939338585780216942829449547328463576596150776087493840820632349858467874777795673890027177786397210399171580947875401061234555419731745905032044383660625481571737017669883345354015117713729870630505342166122502843966977470971508620013748613353232752039574225332591736994875480826299311489854635092319771154712940542094219765627704801798294854311809092450702606885493922565017129766475769508071690372573376051824945929976005012195542277254882258303703415031608607935109213219347698385351286864823035681398395708741289634048481332790232209686940257130275615680662034556849534421305216566263691518112860919415156516008506245777298691661212201994152727842990587220665118368145053305456258722928323182816478964559406093075846553072163140323044104890080367106423199812480622277051617054493598739570912098823111259100019603368017533545514457945000289425203762778109076569631291649807508095634122169421037217641079949850870965788065697759394179790794309772751402666168066350782299560507580037065472190581438621971067741159491740455038908314064830847662517275567225224026978747687363273356581762279712794557692300990924697626227264487649538711976427812662580600995948534985257064553203105658520122226335414077233852136077314596093652668137820360085955690617080050948003628761349700990654512844164820199112054608744415382853716181206625553429301052864500489884421462695881441359412712422607523155432246582105459419411754317177318327955350426177178658027449557544729339906087686055676727019271958713375052302476285789461597230429997075186519477199473187557426568883664410417292434932383804877283652546831943449477296806881199434714190228663451563701425040062565799455313006260754631607439443735644624105679101599725882057508186379972261731852934513715471749147744012209735958651882634135626601869694905474840121745042610276630037756702830757438088063424164603569788381578157712392416130957523224675263767993624057342576257242351906784747186208738248873101119386845095595218632882158110428623880749987525284963773064472659141882316399812518971451574317130993252888148459976515050661505795433272818638374714147407845018583125595353172522908880375399078536528550265402224356299825172443907904020835951915140559282853064035717543634044063753717422311329052035213401222309499489300220506482408232746423083055500843505158030249904988875795904076538270783216748125289059350678440755010751879279108229156692468318629043278039279571673257201813352259220737878337616480137391814110107916192528777888014347636304206417268021981748281730370917626636153357340661376041907491335893945866649530318437696300943774702711150565489446514606653518338547245941642121023874540992941235644578404066812996357173804156962957896453994478047889255212418659527726239759658100366804431503475815723967901608783650861535171265272395552374144137767387599311719970344545668069324465490532740688997009161199287798983689024302101173276935977316589372134154039334347753589554968558957517972910259204916241059577540654778485678028134572768234969475945932321991743526035754004721962556843074186521115752470059355678200472359714624095799860939661653124800086090346363007472077561977823797624509095351901831091539716200407541865239987245863416119316752560614898526882283151280936655195880200291872894279728185373764156571949293918473156298239078510928492776630508279508095797223348488257330272886611497913356716943159939945249813312289357112666125634518978329099256655103782216374320777511311265033636821960999394562564036334430525785325980842327061375368018929877707666619961206565744664185415485902214239130106473359973198898030614328258243195431189352107642674592363169954627731150995055865126056659687746611917017995258443423045932936915735025284828061015021706732841246713386354441381624785986041382099428289528681066140615663077192086891283099441965626020378033335266197029409353091030431051247954808923522425583606316067073052204098027658399208086927888919661214695693893517435761489513192767463167539096656197464705014375787857815314310545932921700846670651726343158952188124541641762194438981905621607674427689620132173253734047108739752696461628801681849466825675419734935043184071243094212880491987220162702289553653859735539564300761334165542795503377705981838048594036553954017306530614506186248076021504857724904031338960439420981622298527325313460560036572556618891166064443822568102745963653341330833019118218039561131918735418345544510159595283908285162036823077596652734265207642976862898359084472232191047414060753668743166080826652489349203921209621878427354735492085418125781476335107427992492467616003548302559616360462734003747282784326849304611118362991653069944639600210401589339824628802677268269055852755673486287016958742340532703096776367810197121621049734890793666728225015310695653375361926360394079212747312604514144165019710762140400739402842004803067183024549516217888260991860149868190874546236432649825950956441277266706415921591213814537146110638128193204188035227412964054318609026601458088215448276934518687028517160578803659072470120464670649438459814086679675241741776390733408776055291362599334708132576564138010407363738927682237098216461892823272014912866283155577622925243767604940443479190594167867089608917835752166424960369652696411204385741163045690600425217353658681505689824003065730130576781089483488518177592948396996080027429668267179136137336531431807148142496703653813276042237737052870394672184363150959136414919543262682084843489524613209234441745080283128386955407840447572913318263625780221081656130164569831984191365143585940419740561179081711151965891519561312568521181561363063450232414179993005989518924345194700992758298594843699182751487579155827414711327342431070703151463657485221758672932833922524799985356898583483441411903534649003917600760888265717359307942990334172330910171402584758960218424631894901453255002755150451193623218703679483780154134668321745652888190287355602263630383387301330853802419280491682915769718263944497877892340340708414694958099821893303167173872966812592057405413051468099728400661027447831428925944467771591031593131622897818335130994247680999341066028854324310092787495009319776113621930003272904246298119387617341391080103891401476867299245335344782428808486994474409512040827999416128731078245887154674546360898207111597376545067813300174564745186046587711081106756310374388805478445900863256034821955360254521549629226573706061062183994445103190680133469650085984084971027953378310926920745306872395935691849688756455631295357422293751994431637228940768446359346577161904276857483061937493477895511227278162512198527000530546356170261613379293114244580833305913734292729779911592883266325641438602538687699415909329151478062192131602403211688823422633629301621741211300479428173014068680442577820454594675380798835877256923667308892983632454912009044346412488754225096368100852314871937639938398932491763158235273180439970466522412365826366466811066792307812068550564234866404593412599729655794188336133493778825848845762685908041030123953817578940441499453986223831256419271202826466407830515795026831562295263482609519382613161153630401590936674155889934600469810624802328395254959187831341042179003999329221855544763111109088635203045995874644068404788121245233848245441257559592200264254487739762059651330179476417545892506724524576755113336028913277762573046353407192831082712153674306703746617521164693265624815496884924912335348854180036671027707093229875943131283958490280103011637073278299469754877271335784886087805499972104381021188403209352770532508307391985445096007470793860514974701486354137641747283898258728264258594988437156521108467523030973603189252205733255383799581773316518126728884509270943379135131534545000190881884630122724333936092835807368186047608646173904911858853149636242184113160634492061684976061779141480263364730167393856610868074058967126034644143825664242622579787281829997712317659486674986589242031189891809737315984136095736737844731998008364748085635887716365976686645170196742497967151578432415077947655999502663431926070811113400664359581285014218958136427638077322606655048779121993765282696350062237986419971742548239937044069791565644817899554206056276424233710440560666650089447767823170538969603290515634683372881913940649598716339469199717778801995304628721642728755447603992962040475967911138598495329071176654855179709146764231650043611760301759173003769604542884888951837837739407194990224699661404382845673836465391673795750995934022483967185584283139617494236584079703949930979267135606778561881755851990693191172125608974876413834355214507622145949761448836260718483432528317072162079990146662695277126085543117232526732468227935736956904058288895923716074651375169693964641334947586973791228206657621024112648865039920650862995784095314866660193366030024582662696177198570808205002187612173227406254945392374638386608829337340673225358512939081400543803564235881185861401800143409439148688338427562084465038393207629813922041554497283148361967706394945961152311002759558667734547133132576098486485032224782410045292600487224566819857183476438446773120533301179128716154352603743068769800278355480073198969554475721932757927877679922191256144903107081318974111872196663672676763896322646665493848990539669620314576786472949163116912104236785758951307130757065060909524055055625837298981882017157322572091097596149858534337523534641809949294092171890896725739406978287314870634775196850724674123101193602871187712495273880782653544059094353728092773629488787866107292710751563540609859487048857595199229822296368278993132117687814181898582448452270663058351595617254459953289107535207147493533509718073214160368216542225330370360092684201526472528430318641067052263229949441030158666764482586930454992883112495025623019150576195896191992441212458764908412601450800129861330684613165915556143235841243438717713516013565777479657301569790813874989768741710349151919378557555503492382969340913691603636932548150902086813264683648178793430177521656112601512923081407069309197483767019844969428953087513571838930682796104343833476393497106715772893141482546971385820759549124181827272293781136592690465647100755596441564286140785192687255167140471634515975573191312804167785331656787745536602670689441215357624914744865468816402004195848945264311558971621938712984623596435013557228442316935706890104380972083341185890828288892306856234099767275885127164586310516813119307001589962529325667457598116741230277487295844898638631112947256969481777765881959569494808273979487154059654724633953939922061466526906199704923063514592134963574822613129459979486279195693841810995763852022776535402654939746133594341391811429419566709297441388410000308604465275311363505506092069609404541278437037327089670582147456812404888551228832951000195190661520166206299293522686422676265246136000254063477053361170963299233020023296523566916537593554639763721738815375808047345031061454392228971842978323861575736634103447914316610324546217342554476881123985498772368285528064048972622640993662784440497725711125635424425663818154944276596761913625610950367211201363659791453464481618617340132226159019945062720185069050583735763268908412062455603224365741281626319589571115460350383545207279179096112116562349730118632153097912785192653718531255085548959156954346130826730159824358952693459228964031269816136885094329144270291907638586814029358166652803228424252922126844766227885788389167367310207304782577897533292666944671858085171270425085359348621057821200496307931885309337091760262981631489562933114604825205943725550376195584804463516910892492488073264492573488108240675100423418848418415853764740341131268459140018842414979040333388493992368304052440249482611194890911620062645655600740930246762011623743304601295507508188529070167304727306953865285521596852985889307679700233850311842729429300478585966020584449701903261627097706997374674897253699800481723613361559641329443113431805835960028999971275818009725906636427102662659889413735656436886587398532047573550463337660684180099509038343125501229961431341062091134989807925574845596266281335589583544798386529615479844920236686241714258143550120077962939744704899020600661981857374399623430353155912169572764369305743637589270805010723509189460396133190040886210662968372520367693281984874378327996881082947273863516691727624509137440724691118939253674739611615508715686482331132291178590876059977051835757585655069540532925417361307745523857113720870106133100057219986643942902663755554110468116047376347962075378871483502743903630674272450911946033112371111528976078448053435526069232886295930279383263463563391290498390097479332774715651901515995977501140814805833525549994264848795066535191524930048146684163162293330809462836980527365124566037555509136300105824901244348053144543240046382715389705086966607257166466614709002564756670353140704802284312368010085484583096335565657457574086606765986188380544365890505200259142302449359451064492923441202812156268267909585637957640594833716281102799885524723973275126701781260895355579973049126092949444527909370240710370180493888543253611213894789933264374428173809805497504674276609346158477287970724037713518348117371403240891926605310851396011362239443919699570446875804867815296180785240879494355486087264318171362941295875414822295945878980721225430725415984823460515323353227134742402326880860956639371233841913892715026019554678239354299658584824302276718867653405655914867117673416750070436837965721008645099099081414544327487850570481936823611883324786976069824416931276522858449963851233574960821451634285457521539234239221191361950185802733473125646168952806638263187180250827168238118573814004538231214004640962060944612080004400859408980098780894293757411101218466102700966897190478021242623760174996082979752895228529383926749781460066127463003007634528367037982738260878428909192228995679188561131403053344748840128150126057488837923719135635685287933189618632261540150100775922748174997439371097956794822484754624107762663675348389001718091384609986199012153491566686666386059597390800273016618176960649410542015920268423450310369811922367860608021334390890668975186423700743435573247571087970553855154231605891412108506155436071204341226474290595384744606328893072959905831639388326807209228431053743859958813719320355113563659706666948034036257163936226670465829197461972757607795673770354329164987202757887172646974371708489628365010178197767850223419485328568074681831677397037712309116768272263367091926222628276040825770586388903156303910289706616331826666051619590719394065717463822061904910298314498537719182525663980190461760136981979612283516783025603550307979824382729760267452888496079201269769809049546370317465320251325541702956206175144801306702963723108771453762612940780249278902473806332540394873032433342734445559614563745727453590154334285038742731030513075309147143945960843516840204176923678767213997156988748552826121417950639391832255928570198681013465199924328084648694112754468983771747504645916701349150000121162207893548401405895528171730164614810990578139569521786508463896494130129199024791275341664314833473197993205180131321692475993284101038119710474544966736983752138964988304273379435550319807216658748742169314630162023958558995784266365223286782628768006736357251450582339354235333797785915604600338251967952797909714964030400435390414033425422520984546787191593878219000902898749478655087728535384307686378709899894557208933874638876304375518868146423067103802014848788086281588500580478918568020391212364471735703354952793621927680813762286987289552854627877276412053402029373973357431444243493338305615931528116705537896066847816733769056606069118673323281856468284889747558378386487295158688271939299159253901408553087809615942707034380219638760940876571047323122469658709587782053231163193769535830872431725947768376508303199315487459228816871999616109460979316877487365867094611452644904543317650428791212477506463622859427155792761285660303761326453494993516751370439093461309502208987986887882133872449317839168790411729996058448723860064912004832816927040471361167257425174627339380980745041319819853284878747882145018689827523383047852396569146704225050201899101658889515525161716489722214965605454249633352450258034311010730003270376608781624932401099418195103033045426452667739128820620576058816376218022803373009867373476859101602909625087201499245354844102338537664153376522791453706235523414796202311067447885890306409044634597279396971911136058245339447060005302548741432170930320877823028396018448348954586262910175842531179582517568431496725891815739174621412506065772547065954305464678236955755146783632130760684241859479335724349633902170592549957823936442662894545103654196237709570554952545828545084389209648092720555322671172693574349392653511873707902742113204889497803739077982978416575501433483549819016762224728523563478431601184006454870296553936666436424195285051184231383304202674960504675999088394966328418896359210924601999543497136288202767333777586317412653404018418674024563283993980971631752909471307779478365514646317950821058943774691545306867987283038159236054095217012085766622952686851820139050116222168013593716254157410921347282891909195685844314567088682906664210200817782561908517584561016049833211360596380972146040364620630884721603321943919072313237784234298965505252914029980292834172816088727437546267280440677500281620639771356425924376991002891550256940271707714956958975542211222479712561766590177970605022624755890646788817652472209447784037939098102109474906366734704104729930297009833630973545363083649356348319087660388066025165582837664949000914649341985437383566785720360143564626331466050990180868803934662902028166673677166412869049768143392985808372946622426089680955360717290505961666400167607575244393674727757301803926989945989168278543151768568111156999352756623375067573137713290673179495471340592852215291203750135735542235885304221941905889661784596174935481166898447386233547703399159675010650367160473030490019036347238223004322746624329407013424274981768634577318968402962440973795244110357626764248896072568043401490687286819936510824196435088587850513628295467333321009687271214178526947145333094433072973148284168344842355627965386564860455970650685784389723752555725393992797981688040873029378816639677551996932292826278952514179766617335982727721111564641900426122853248064291257668569404615854063894547002869007643026174532401195988307356420928279155200246490805917270814390756458700015237005840754307383155765026589245754577968212194584709000031197415615068238150205959745110070395717865601076428229026662353726381532010667067859267168150320642820371554514944116188558739331020994567145591151437954006450629612733832947296320889461424281672115872379452252273376658945995000447846267515602237459815166080547667488426078479796960808885525807633002219645066879536463211385282962022043921302531303103599430560341091328459644933792961790000063040383176920891841732428592361490188009925599374297560355003564992311123384677658548307803507215306002784927505030882672547330507226657216692124377773710424150888267606245510889545818266060034303687005029431111811014606687059394407486609811144496176090677038005940922952693135848400607833295674784658575558672741555284914561351352402861838401891966283846733782197401086686597338390531502252211003492402195155610115337025165994522109509439342066281920474862895794317515004823732609753010692941348318317835674550123952729940569019278202832953782015220107543038916400371252094088904583449056446404626880050683906137014573124580480823321532265861546460760659872076396390403681815197878404226258234340855659825931218724660949250243911851202396588093972852182763846619103834560683273640041840341412340275910860429319180219602728448530997267520023945514046880670175544656259210678474470308378122868788620430225611898418758189494219275263131664600254700150529970859882848536880422689396688624702057240971369018237290602870533270750024410680579685870216453916189697323937907975580265654695388898117677540825987662262075385028709035765289340221722407666513940847387745208858190295741756116385953294215796655906295167518899675606699461861800360275376216305771728020498061360197945512778070918464203216307168677324814465144247215919253463859288991605275250731057555218228161586630229363517117485425234611500185037585835139260210432967744006626061122985275312625592715919866644360951915650029317508697535625395097691213410805675771160984289463148046466526357919340137833950279362863411468252299000391706878045088794838400249743688703565555972142121270620632008473028594452858535388319043803245525724147573772613934137739534490677623538950556246537521032593239545025907757666586936215633915896567784542674031926982704529980719574396247147262947908141212403400848639010998211280031397008826788391349163616540993944232931402206852494993881628889269381331416423058666515388991841504174540789807480716759843215122830646903144011907668311969713808848529439218097946453522746858898188831950692393700275046868122650307129401541454605262279976181078919151359356036308299749360437751542407715618400426318965890756711830686496449522425088103441848199521117043347805134583509367271386274153846391405185722071316046132389358543623148957674241928081265921173877402558696884318237910941888483425276342516904688868224151501660205110914768448717396294250772458412200105832467295450679400950545332134402555727042031084099400951172093840657616481085974287032951473398357242289564242393461222726863005719223755913617438113363877479067753641717430368856749982115709922055161890657204018135642366920694786102881626136485748304913236455187867725944137453160558707689970762700990310897028707839535322442343973196431541507098663647810343665662774713818787184432154928401108015343972421740780364002515616517149561763035892449934437117095808447468254705431300138466345198985056144555611764343634192359112746383714713300597705907690669873676923446682243829385190726923988454715512448386295179494322016053118006440177357878918531710956548565251663877337416182731611813598104071804502764780793876466324290420845578566718934219590931514493814351047022815135168288965569160666635626582195483726718956767332776355846209453296382410134595317850959535433323711303691178690202881810313661093128296414419674621331659374013819959487806537372390013412509954177966881580666201128284548113940155117910253768732888456953290580227157527916433458563912603870120725369836592238494529033265153716866789018283641695607437676186958031224303768223634985311797166313854120670975408644488931874123864642081827894667212403095230001155392748922933382201413155653036718942147657261657366558123217849849627015309445275250845983834994264286663499859576381420143020863562582016192486263693123739751884496903056306394058080282250771846924120268853759510323704066093535542529915180240096795506331701832625568685624872373696362315309139967504343744736864894597158323694694473243929802174933932130942031356079788202268887146814842985759646959140936742269813820491693192844221760592065973886565798788072105309240245984230631464282013693378075551452359955837496663111750104577435260449089210151579865284023264849919166409567637982185318093420882242719768102809382623629608540971810236519506313337741027646696479024268880741588728890091128926066747715772586961010240169732244670068707010781162923534212637589286126548855137286591671951228987207568965676278416645121925419540932537553279839994965640617160313563034424283923704421430667068670513916218686540487843310457112087411230080915292937315056540644853350962557619696231438055337981601116742584610194970548220672932731109244292813697247624634726150993016789637433485873652712078095137526368684900310424950035108728606178698851386820092083983825690068931577438385171019268164755871855636614531773473989264388707128919553983874730094113722946876757662531988284096440655644983015734612719914875584722259547626326532559079672810081539916929887845455160861318069217021755693857037778901778231323116192110997948466768326559915571892805068164557323152397770580109024651729812158235319168560554169970624678274902673755963238808846993519146415869683054105755886362862664764673769321076656960096501795019484847932965283204322657874908556099166464990285195450895811100914884918516615100788877637853537883552763184320860316640848115243116439576516848706763228418999967251860496163187790699406311233880132859380642541875666478411180565278818605392425067099170369076711630042578476647902440373187421488742610477015811966450494940897335606909166561528089323251377460610229387175781179226525383456799238562167988711944439617016218141118839067873974913587151948165069178218567620039473662592502952643886082257519854479786695781810768518133827043985540201378030073419617415109869954423908216654103855613353214850016533078956350454768181698387769762024240432044693362908094117361122534901309568562327551461125001714177391833056720528797868636121650425029059883156003644129525622597282328788685376564976795669292829733058722252956592501513950709195331972597496787585003617833313626453876823387311177585861525418806206642624315756958914017087297511829793010719416116853932527121284448331706705428531211010947207786407615487532144408529247992252684930533724545672823747459305281883875820253876161275482438809835454628108068185720111724087565803981573405501858894400185216724226444092206824380603839726104543926334514999247265507124328444265462099440883482200541583531054738163436573549715446550024266513596588807822647228967818026825058380116846144360350806764009657394519220633771342182074536434627990172870596978325793415469370513884728166824645025107778196147366189576263146868585802996707981330534712003475563205441939979626323879578537464800167643919959890677551046883646169394684250184768495849799538481103092741727953118061639858281759285456649158505700997962724868083416142254192761551123681147302962006199021525140524600177001601177322556105778389368685389098787460010739165761357447918519771847938242155982266895571535508573934142206344819343320861152690046515191075435286193917001489340976949745403647725351864703989252840653921097430080499991895152849912072100931219741230945811973154087346427957725078857974836103935803402339291412528616358802612845828688548418943921335447233653961547319012365030883549396580845866983445025720057288994954824772215950807235925269079203785964792909359239498909014084649769658570062686124798959434510385483813831078311514618656018723495082055977121920583639036736946080956310810760851214637872153250108346651646133719031046170863102416690009080527751943262195677282514463511215204098051608890781303097346109224793664382959995544396561523388479257959048984837176634612606954940220646671127557510550488342309388472586256223119745377120639233001410547478529677360798802182830230548410866097989387827945186327083567610215977516846199192983810877669836601781932106832875417734847426714085631601968669322711439269404462993765220063650150920048092266038490288116362247996479460927157978374120939414087240845836752780489291065792373519135796496519088143754706513921135865064292332577463897555677299175307585417211956992595371709967386575441438825641300942015649241978235614975155374885596530192140821620978987992515228926864798817533581507530043004291646946608493024318650837809363321952591837140954343284867247222179620458358927697890738536406826734314036134321243681844840091157034348785267824319527263226487624383987017006758058920054948983273447521088132262728061520833157706287826158330064164273909069554469178644512610244816832517787962636441219227901083991274642644371852791731607929024981317133327309323414423022129462131221891088452305966718704176332752285321408948207498425642565639587121710202918096194554074628906202051253135575420518040807333134303616097007376809606343414428381254620376767701319106604854157410937005774576147477862084015443653658193565722653711943735351122549885970799668316816609458938378713352130221817452049536529797258111190916875516469401277782455985448905249205429135267129745114828736758987098279315124058963991343587689100522977490460028729337934298055960454216281992934834753466357170435321210352102522828174555097019659458308418855233172804874532482167162675161033388270929240470500490277979383430422992506407012859675281540453558547664602854071072921351725024594981089627441739243315251100156569814916234590756423617540504076256035343583550945644263785332204235010876358133706019990040767623479689000743689644326175003456592682033118600708461674881668850487973859442171886606232454550513154915875276061197161067395066987557981970055755366299531915465180104797945477443455344483069466281487592678275446721513954856097167366316853294569721981893514337906649058740315941879090909973159850231726685232653374164927170899197403116956059895119133561114577527435130681726192062983363958270935846921514823450371773525422730076840676816676921927897932053825757588567382406192029505971975874148902094352900125872560317353102083432598894952609324001256219163230148800166735229619794924356875611351459084946481324238310751186777093192314951774025516040754990451021338202887776415751239203602534299973581782193177411398269521440367626794714291108865378761364592329304756243031274369301692028740881239307098256210790687373085232900748288617582404066801966728951149363114878674474908427655945519625236783101357182939761187446398048453094805294903344513773713728074768478242488616509154338810741852690164965540054452967086008139240092328366098011216966478579344395495148416164650397191252227768296954278553034546649772241407910812763172684080945903643719211568528921149049503814744019901039323796229811823704755230895196061900609825032546918777851269160578731166736897160377291640667659813963136116341921586653515490643768168768549685809892337496839884653895164334412738315372657634942450666344510286702396100386203750497027839511659816947261633514403162725892115316017271860819927011410433353074739334331440435687373893842240607610866226735461163552739614061527631258209643262181118821545461888777312956821567387886326975366644558520227798577028369280746906364561266012231331558319391410503729836173109271841475935029155103191034400232913396728525620619456023952016145111328593456187629409083535269860864937086257499954827351057619151602036163951405236921538729802913320933773721463646049304808195453662271017930556657469977420853083218133419759065982846920824619530932113735011701449788336475934120838581323216399843592848208502003887845541418167041541369180169399256069379728685855072038621421943773241147246829795511260426710611606118651712655261990145830311892581734458368383726072220987100119818855650264817505147655961296603637200797555824514838191168295291933782776925160733417835277985320816242881237198260332339630961884771864279375777914510658903768808346843593357415982956038382232885056181482008475050250301543634430559768581651268123762707094336548045553767531879402318885534095814882486861000959813379306633657416435841500961735315817147836571169664061825985894740125393036021772619544523257428422309126559321706177428051646994335498282910697929474030076030554110883395846203506397515677778765556896413714848150601411907686371210095887898738711362549009594745689539183953026447841702536989522261676389143704403589826113484078662452885150994627616959347965387092941253254546240082104550072836922316206787687565030515646780744176686653460332496531044028235254311305027171508911126510745215266242763080886588718751968964981172559364911820187801894318674869174745813661774047044289970083828591534676316252846544016779346130590681618840258043075362976669117586971449735243666874095167976368944607427149450192060506740782446032407235880860819361118339829658783261512400266078816271698821267494742645754083995942897228797894928826396509649413511280269983902208187878116905524268266083769131051748220537153614997403428417742202184901157907040275841605037394072712582452429204972437001964480464272557860410503998335567103479803799790784137478438182050679682294263217488473880065062398238474136936347657806966263184806686044105198612144069088310976260769391891888868446992523560377383160391119604640635424498726761853652626394059153402742087039731109399796550706135244305518547887370374461085312790579434760105460351318863901215895542709769700546471220787756417745260964832910925880805002294224107248900729350018079478802612228459500206869744565700820347495948664565907261980175981577999896292274294409573667176055081359193083900446747960721399666781716838334522338754197367183024025085535663664347413477776172187439616492239253588961412697224580594799045827879614228129883323855713782250304807246401338090369943965012328428918343471040460342175151543041876468205859511236762070713077585946093691957187885154681779756942077177144994310291758998191187990294016778453359316314007202983612556295563627427851364909071900343391514960645102000891982272797491967685579300555407161944686737799475630504525107135315183927775625964486342327547351916084819207758578406797420553976154778764364504920602346850791399188127745968255622051592408361791800317072415580253547793752947517589384609762043469301031232108446191363257703587771740291012866192433208106721179328451951929143832473628828947921644042570919447955346565186164511431705115845254482791021488985107961516712089701683337498937974583978943979197987755995232482729458335465718037531046052951944944315350720249662477614685123903784909687974134996982338336859628679085370357416799784139981183650779489442380960958335998572733645878918700462123241660166371123571453337395153353377638678281381246625041627197749311534709090155163717968764612145702535360010892660511281102543291133480392004856453729275597041711531704233455879253255238562772779308065189009862430414091854654536060878580385405992567453181529555475401639689259132575618712673999385402151383281320572786641233186912290015003814232741797721475047322848421971170872249720552632139126890627803608061688974903051839135521903464683628048703908424148759496461824968851069930712940471537446322843932233376225898669714262073136866670097734082285298373706039391554035861987534296898411964416579432638675393609904537664121572629383325325452008123934875972626540355631925583657935211689977455164939643731284714588552046852441708519571756977622544543302991646390112749695121365603934115571715577616869979036641295065689032772173132883720955906542145165229381997297762441321285827893960085107939584325218820445035320230382853299359663959332430462332756895289977360086706603875269576947050463112994444364936581016672433247832103361003429217600969830698348947109150998709527212171044192639331715589435932699417863499243223409238963438761698464920082012069633735922626431553221220755436372176990928733084240778409298994261960019101374957311461395218248399996992863987920754157922989954435297880778958923794179575802258893095497579708218321351701975683038862498783555188575813383833825585468661423497402965605964612272055607056071757511363517984532823465526395466427531287076882865853714889011410316710921850508104503511104044538003475816070760895056614632483043509625339498403834236446815628263069185200268193027016585454871385011360968926464716829764319184975357146348756148282265119901517610138307898527030036100045677949441865716599151499775727870581716590274345446788235897458011983971733971480516046349364507244346951926440441324934297859790541105669483818966892784536297817970806262237358555973739502076787840889946004739004395999107130224803581831610506373610336382275899188577985309006400072647113963541147877804020506215156955023581389107322398482392414527325584577418768043956636189941281434580667459730850478596681534996577863125159754313282925797585291291828010403958377218559818614357465143586663217293537514735549032212133072420585139183287389987843837757206529477456248710206254881164763783476833196225508962733656949656048566131901760741239587896616765926231769713548161816715047041706362870091600985415672879751257906906453537498615409347483659105805023157665073811087461250270576209751472166200217063131291083499171602612198697082866423517295129465692015654049301106575289535197402253650138729193614239288183249645940529566567663669792995193390133569806484405259112649573558293701831888239540935246132990142945123670908230618691927663803107704675267622817750934904477463722035511393382469732904561266943628555042745549675784445199496305871029244788748785439451934527561353751151603535234327469041935141207274870760252970485956629273207960415210507706829804536010047816943571534592075319587562326835979230514217798925784210890286170407126582411815326019470984694885083331502144510013646862879656836729054926615890770189975563642960385097433865517356830331306537723753451967825550095062278761393430300685272355020954364565517133392510010820307186701893773849581457316404509858839979246348211976850077858135698813537944377104143169239344164943806880551333229314765625785389634816588663437557074623291901342012714825148919068389383299874037291355003035572287987650941030632646068004036364752988003967654239518958695613961588344723939153597537733173795568372394125868553488953527609241802776964854307290143299361283786259535999019033303937862078127274462894608740963793290274477214608805942052676809487773353394562631417466529834613157196622688420984835778269050868119783474522673503594227981880763155917858456527243404196710136502082370898179144215641432265470351147810201673598755930233066939367237813358497657832241252862095145553161908942722074696473789086609906432957181954222515077803757674681993217892129920923268347033481598231668577167872183820165360131679368990347015626255479624568658219382903655578631724679554846737291748735356926889144258789609438126872298622601824069772627398337348714460985626745548120733325977109143342628099383509941501905365543410841195046388211767010584457647815006302283020209491101406126294622890237919212625019951603026285543775022885960369963959835486390248902330506804340154992321863371432715342815921198360133856466956969915784599845731807145292753635659590207203811381624384580279717309873208644402703305410063618696350328949654221892524164371453337776547866821666044215661900584384064261373267472416810895459124655139630182519069662170926021940064190028898107340630837648472664661517083113308374826186532307434307867819614500793074939999837868012754318078701633637431647102199836661307702908485154042209550088738851938107068684494689759031284097386484726610752844274447235914224200425600679452861626106291491925634094726414239308975129961494830865690457428980475639167096479877600604014841180208829396008292303401111516469972452741151526327071753763897322588589040838954050046446023506529841375005323488192245310737124079269842580430326014670204661859112387871352821761383060244775078709323116022465601650767672935551048452269187712236814330207277116315071885560378011339673142439043674598172928335293238458377875449781057478230381763828798601533387410069714687609109430513022767571606236772491144288673580456972608389004027023401709824054728634909025160004634910157946598839186312048555000734059094368534846546874398450254318269423401833606055130957729059994920606140459692200019717341286308032869814019617072505974458455347797164455437136219924877922937422248251196611871867963778796071885750344006008138409155343349008488607241226306299856415195359134181013504347269577318557443673975482132804124363420711540032366616360866762481491748503426355415783375887265874742585168687740678000396226255120289838184214998777961828128875512276156108900895037204590624326352305838551321782082715419269896341289757891444267754703600377768368321693034706162105855352845718082909896905808707995436866444158380201900279558054723260584416979839630119198857690649610079631282265538092070280353978693389758471700475395920214157257428035755122952856883221286401976756273635907720910105863234253636700308161474353616918437557739722699298689658856469850193252718735418039483985625903972726041464383105574330579620210779041941709580428351827553607931384296382673730925047956559603619051404146744643305704549496310811564385282508926765644698463960631465365887423041937337635865265042498161977790329050800973972367252257031168520978320766394467474450123226046834479148132708203441162852857196130846230024494387812789158521659776515700985583704697830387421590479812541133650705736668244442710968558730400438205188339582628584178877862710910811871855342079435966434086278748407278831386006130665763583333256039572828400591258531072372740713208648119817730423624452716752732141592046370571564802690116320242433416497543864724321660784064256024212426316763578556597702551957138953433451636744800281858342298743566508041880254000675413830039072225784469339689403458985361789557626520036223141348353904621249756869445863409466551083465434892845057030254218580353887215251308110948213335499552606776176763157236355514186432446005114163380940453151720188288363058316341029834270515861841539592294119841703172358740374973274365904547979043624746797914084852410921230090980186149379976831666472771108444521519416634932611687870490071891851286050365263721347520750822653386376025119255396382338501077569970195457240095721341072268228732829428794656789639755036438545225356366477335985054521138350310153198251735176158893757146592248490591265670855716790320410032279683028985605248273288009284722667792053822382276301740180435416743777663776668965260125883382231999633663757821671592029190647321858549560084530635407185672112138469396535597212094898528353292162707447243363195039207190501426064413069722220432210690444130554449725520799307016511845634421704680154103444954134505202285676164555128296013820516761194935485178502700254282013533045106986422903340990561999711060432864048492059686239426335535385142792477423876096366772761480024966028661955710610856594872028064936710241426439979850254059964932671415061328061583594343600311880097947490270978954722334884359379360856317582223051028843137717843162601607606406675482454222658575445215777166143621193191780891273890652620337286974429280142685798454233878733648809371761067926873821696675087060551335061377069265081420676297788646366982165148602217788453165598875424866682194886225087078209976337798165132807764594955068119963089013754329114890221889101564561628625402931409780398175203841084224212134196868135499044510468475535979890737864261950143628254067314378598005973220778863423461916416920282947068944056546957604736263541048303630032979151310961572407778847693355827962247398970255570673224822110944352689229182638978902612270343713407270010909177914344863705092241706299645575388774302230706817648098797438349854023187450752826979771589373639146733959445904407583891241197601018843751915275179976641471099204010344997156794014314661005210386811579109481615292107126191532992401648982669602435254329094738984317342332997944224344563400950231386309598410696014081149330393139786161177383747850597961860259546218919863220162592923847399541952386728227909398629257043237152144953014833208194357437769952321070039389963656609633090348406577505696538844172264554325332661600688617840443947003762396279771490634891821081309249383085544243328325490273072479440418338468736480790877335348120892035336805588831421519781092662569663982495248867449753268272636201511098618911451646775536026285603345726557846559660351664578318678486293021520678288099693630092838273063354945632945798642522909196646093219707156198884982312509850264074331036910198858172421900722814274924405723744196566694345942082064835049779565047203136981159453855094845980040980771143677976936474317622562217789541872331132050844883809276848368438210710752533375684568950823564254389941129073586731382925781727658557289108774751206771892397129346624896876375438174326794003184285594614505634212360132210676738854706106337720639919915662933461251214561086502920895441235347870550095613517005082194188026905603490819742649633674491531787994091862780382120136657377468958854918997263864702056713406472994821642274919975491712949603901078128210217778381872489062413059638113253465454817216618779767064186349009912909666746882666455634323393466110054354056236513594431067704421290197247101089790097975209666179376650214797341331201985608496106485239214750226219521991407017394492835535352639657699962362432354653539380535391525094239051130912652273625129131084337901304202591182496547978561559838987283205543407211940830267811106960700033045077106359223014113800824185737042085846738141708564988296458363887140294139461035059907122643180536094495835471129221297833312977258086263743696458901678706540196729994137313215804487253716422749422852530482160324246825606058354274849951551100637815324082100198887411869913776543757874042618878064787050886835892635442233633133240451381572467216307618235735183474926574120799642409469797868832211902099256433466666864264029641765074920844498926345386465807826872722987591341261850851305408517604759619029268780313571196615188115850515064205607981604682667777079028159681964066486950329895613073324018221637916821677470110711080891394980792566945343129691072953179228706288419876139361015443975911074093507046195133704936869715653299589383339546724437143292265956121118647688860368652800000679259853516295419508911479832423570103055067219921833079441174863825459964559376886645681357752911432241160440220699936469534726938260464504590126419792404403096557666118325515085655053890448192511645503710540346426712537155413111318963227576567607875264117902641060062809000089660897313532769079729604769791066508097299088121050344503708432032920049081177078851364987943241921415738914345021919565164517541209463345982509660302033730199676041764091887490069581603853333603093042817291795744868260916729709718308460217485667739781321357133525835574626008178183893853564116231852161879563933122204009683082344636978229628634547464254994866448203570627612951675018235026244929285739502105572343753192626210558162918053103520482040014443767595432478071594163572818275373018343643509134073503733788031967120054728470559440801838591616593559392457780773460663861508210016866321249345493450073294114017141471509621945300672609519769099561963625846154017438059346681166128008001980224103336503636407617888653044336976001642451075863422306245953705147921213044198388520617725100533246624824722720073034421549065047634253683374562493851313488690586792494718928674151616213055620841912646155274187528805954018885925417311849319348191493689096726467179186888295611330855210330463273726870851121208966989506486057254462447045268337209567999900108542447958959429433893169556703065660437036233640601753629646795876996825957342617791423209444648483820806155604195861047889025999587480433304221574355068582313158741339197234469395763810217739059446737534586964841870674134377075986995059110797881505605589627866102939053371106903034545079280616392159459763041006271974180733312711666952604306628423016751658303088127377162034541054209369815106649760368433141926320533752851480859387837577589875156372963930706892820862046581331079165632482743351870868985678510494459559909955564478891766375954326379788953610843750855418578383859187988979121671154339117391862188328301242584501868762398070658323488587805775848742375919088941410330590219793258279319269338703599050465617633477675430639905859942972034971192217190744999069790924916663903955600234517474481895948624006898683354533303076029678016340100014992650579162762987756187109462030420735858713172623977078717961348615947368966629548046737698449282449676566891311552141969437202460196400681872987961014366808943073409815591786293693309724802798166383624334395641520619330846585259630530054199128756242620872689463510716641149243067989195199380860500092908469797562499524002790049901729672693541086457329979308035949219379906209950033767427579233515215711319156800054156868370681738994103626701054327119236856166828047776888546449750701146099537471827829905744219967454164609812612812625452482156939590861523006099023101417454230023381680177951622046652808500378734603271056229146285228194860849506441288442591665622096555881502116933089310219091092354433330742343013815958861199009947072673068223139387551224291396017847521309047315080003394653571633895330568136430391008294072496601778805374895652162241522593843354109895284294038529210030054977443404998697729768689651661500552588092489309208640300555588182064273789018655525658957099281210990773566703839210664046802789397692931293882512757957721072118183128101860413670741187912516026478550893954788428741484531753649845462884128888815277056071967379573530130189255252755951617005969964027420382513997904989268918693929583524218254757761338561048828138822251222562311529375143734841892442340728058118785784917687291412887394366353787463295182420184121857593815569150034017432886205084837582809269796953975150175650001918267118530442449027368085046616576345377653071630374267902280128729393034914289856813967978302824993439668971925380795356844336274422689470048537032055875016098905583942820383285085485687614031063136046608130620168878908371666906099165025457328587110811898030734067311691718149991313678000816809562213788766885280300201640930598308404467309933957710708665963458521902626170855583099009754904597488290585297386202624725716051536326249322424813856036822366448625578498623233961703311316430636325048948214836627948459425311966628900692258844450316720379646315736776512274518660984779621014847055203922454790133421909186930931062242338783492566364765559286133946773584569000962623706575372260467130520609430496121387571214335683408915476905757897803098118009423661889943299183706763586569496323731483370275049744563277762606230925011142851033885235671581765273176663735162263534420161923157734250592374168668157352857330115012846097929788348783201026773327892215238195710015368310800306085478513886736986269336854291810585263385847147877374641797799296097687022458439739425420439827400297905785486393745647113400147532792715210017421888388487682977237863490149124463083092580367313972935137475612249019387336021300695977628696635263477811732891039411377818222822540445231255261460002456528610084189109850585072353490258966951050923364611894303572822472094201672537986281611176750582870610054051075589483282933878507557896365537124820261892374124509805261133744796832316645074352627088977069807841200049141254354303302515436314180647142250894747446300274994946989263315409914075459269066355020748733349852846851523620658451533958090312534174708209235443149797537229541761984013717734413952843551540127295878073032547632546292078287453048362631523645788688672304953693311412329264238515595131707137658225233490805991418081546707357518670101291287189581441828189056983842138773030797347413433979987571020075332310659830827633162513040231114472622235862179415195980739491337679694680102451777928604237976330392835163483837259037187026974355150132875048448098566106004050174566194363866674084724649205311034314040395890217282713916969895057863334346744579376685693792588277935217708974188711405729970574519080998752384609802127686889885712398402317026977719223000777832582439229755710019607668290851340595989308169945719322465505118238109355214307806820253926087856762219079660803667167377208423014693183745431380634208818781819675504048830829031808805056660041163748582502047597841582504192906764070194511942750965502004849123140748624386467497652123889231740971983514307582056475392552562313025494008108807155018704467568604668661705527497780314794580223469896156322149205887758079723419200369699826008687797267001733999732435278918157894171256968072193871109838871195358845240142704538290784269174271705509545758888330484345408750622723889736651055478346346160223977640629215636076303412004914297911960445770796401973489283174602007256428119792001294991401318827251544690569501369437659555898387333869869781574277820475707993659347781069379235339434119777407900504501742649880928300475540823453123149998746761373085912073241531169945227406705454200291190107225004430795241655313742596340009929349191783365198871119309149519171150095146751984751112203599026553500469908705884080267387421619815853306836720057766928206844935260684361752541502224926120044764388051777643500027313904016463885062662472163302308334158746359575948487078201595310262584193163049580242623478970648486053040828439646005285901765227725246262622853446153173311672850645286925884849377855083208984898825138737853052028991585546140472760335677729815305550760060098686772681772567719586552704943590069692822561869488177395293505479730137402923955798524724100569492285338653294765688314136399186286950229275033250721138717845545271067059748708296876472541532441879055528939244723366774322014195204461588520730749814626460861033615845466608639240638884362172010866672831945665094182555231480548610167249194906538737136667918178249023065460017692856883846853295974085627749312453085153691270058942237525799847668708841788033952971548010535139269691805274487945562189053447179691212403030364277855590601311195061320704577397943362790202904609774985598460628656025302861126426586350703203141682112913062824848241577234814270802062003749580494604403337409539002962860855069847295020650979969381581338204677266502952378661788651319751296310670300011072686899962483248452974322319677690131146930655414711791597119648884579923625410338833676592226147388030059500756363251801650176017440683919856208759631366723550648632871240484846006729240847906367046481615865614580232049773378853328887163947479390512184668964969492156667140830160040556245217700313376665248091268946423786587865719282427468235055991297010055467898827757050753924908795507043207504615908133526899008095083606664982742409257908850117938673124167650860224663620347505841203773915816899122074839065667347050378423126732508849977033981561233538484928502493930699877686308067924223686924976994587172709120202426853042031422613880277048747317969902236925718618760832649870904219127960015327893740587845847983653848123004263910782225480314656992249897164348490140386407923095232713478722281635158218703896267066753542562402607046465723782022663435677967946349817172046065520963658612000865112256756771504176777414929301918762750462565523277634802374070476544800930658499050090333592488409268171946067166683283231700649647077225075182390200165586682240991105685570592253683946584709548959222320599488123169153623197659352293505267167455454539546716269860891867887774915424663564250694595888534700580440602668957092564320009563338175494896541655040049798129626873790162025687869230265213799910584406112092494675468655590714855356127295876582234870412017348643590393141872736940895223304921715537104051835271364596933258892950215571324372205795587741351110800785225861387540367918324404506545070924918527452674046664569336222253385412325276452657971426541992513729289340671236297632515320586996526150905353900166487060047366275773533484061361239457025548405008248862195254301597271328445558298877520287303175678814262526788683898909376215607809524519112217569215113707602724165501679939644415824633337556408519320479299608028968342409711662822201252651940276841587701988435533174142532065072755628656436416599775274505165978882061453883025518627350924274771652736068546645329145334444329485387276317821935434871872433349866243448399486486679370095496216293073173050124810952811383291267027721153986460171088918165923028506209357174476744911534167952314956781671056127978417195327351521163408376297476939166479510629500124804767722867896353184919630954144287654279512139785605388407738785571438387481109317492008789667514524381559114694596241874694719778259084662758494959761543720728804485741288556008268769953791583508505763972641723730988030890099206473767825999362369365531661468713827274583590633519354055625181505442257604274767482912184457615131597346769546205661973010962895081420154583747579218291742910774058140936835191599424758009220076720380160945917951513583082206406099029857917074608464770905537206687811834564835822279051867050670665541125190217391529114575144213404470683509823371330002026595741861997702826844471207999837934237117636460798875832626711957126259256366595984998844687188143768011654184653902247596894373043255739445239195067823779439532200061385583458992828783879742896285294776003215807392495672518645408230833893276641140466563193532623997181627310753809029362442746833378019718060470244929266414122364250384713992306039502213485520694348354025098339724046420267019657808209688925948319593500947091823827613380226147429061874810529495149734352916828917307038870091214615971500675296475236767463103326948498331699739978054123757975914141582819925195443322640545277336174089028121830437876045202849185744056673678946583024319891798604927793557173014428434707099599971197843976183739072821928625361770069102448058447016099283535951798313599499474384694896657737820616612368898949296399556415967418187212846611527922554068923952509449713709066358468776100595259795162959902028542777183327504337510502579375044901311463167775626367640150375212819725330758884729891014967096583510617893164363961596830477196615110273136464012343270781304448561832180019817165056533404716737575856672678060526659833342752209294878500975005634445466255526821103677091522501902901176905846459997115541231978916560187302695104030981067159665594027776351488317913013897544383214681855114469408507743279733553272634781050313249246003508278497250863091032415764271160109982736175308915124817161114915760762087809880886078484947628153407400062162331842221273138518102846840848488654441559233479547011988542191282154725295999809140818519075738241691224857552018966165243319312598818855649343006587693773723095716059648792727163688911394651381558792578610364760485226437489716732577608868110456890995457289632085110073416906198734584785558265674282428225499103169633111252938745497539669744398555776392688401596917153637328549605148138525066527572337841305747690156741153031453469325113534140998912773415512713388618717605543620814112529895278463207247442539419145154533050476849747570991740868963515896454335042710418463374725383930919419032436033259676816344156221860744154312590587872914175180086250770335470061991354157965869685137216414059419775066843943695770821409827793654747502220327290558391359102682878302901177150909786065327886036039311374952603939888792400974722007933338502614662089420751294193583957878792011021257414693482483090239986077378947014041974221423765050314977828700121840681305804890227779127807783371756815263873633718960153673419877762454785576387087754725048332119307887668440088938282645043767130947549771841044125276383963744644600694855635485004250132364703588912187734287219496232139152616422830230209234451691556656611320980881369909695834662300286654881245282862510198917747749560427574781266875510516936628111683383642948583887548929413949289976223387237340651576036988023764856365583286264616123717459308415327432972371770091709874223006293001151400664168644962241147619795464915094327123511117466670182057236051151735180319319202102863464105496105343933606070242159218538908390982969267988123755699236140803371282474017032608397434364336392154048664049970797540229103801243966092555473161129877935100740526326409358302501644165983807794444397393855804130359745961594382478360114217545225986737236867848724333513683372402962431186181732984950572016647624997470500385920600426778408035888219318041448167528539360372411580340367025225551760304475433228912785996637086827447017606728996924784485056663058207167722200762322928668066597691664854213166952299788631275043956640916915412338552076394664356194700285289064117662327433835384751422908494387023333362488420640106758240323719890189583955938795230671145241533446693010938870088059881191592938606663344108300879851692409286981560741155697084708039091750351327632852202349140401722926416265503793341330953339455392119502161995580086636908808880289020897815890917896435631478886171557748942206291555302561898646562678020763795527880495511376799251039716132326137343503617184989878885989644038907050974116504562222271902638219934737209635449038263130145466609188253405061002165418009558696586475375338109290613166109276465578674077213531733277329535360337736250756685313537821933483232455053005119170991944389838725205985605738465536715832659361237802630457412531590564827057467039790413671499201031633024308403328029733786599251513815082046606473302092454775114021192738653078807828200497401933048934918146393978463580088687161279255739580814686277033734546149478552331560330668092295508019305360815043423428034826082944291602337281254210110091323708266742925309734637849787635866145456578926063971134494270180387253826706201696003240716281078053725139557640827762589173902429939779430350761418741585414278959382117272272842649189133832830264737055973348664724905396412790555072042400145635961126387492110498365361698871118296630716234858881064210918315802887286998268867865375139542036924117109209479604898747357481625277648810507617888388021775484089369124468354538853173234939517986507578684570315620965085603754234888302521628873434508418223210554194649940335669064191660832048543741839628468269699436384109960621622006674994433435183800622083141792303999206223574669035612286384777831823228606092034234094107316333044341020601856158607846717624172873665238080179769616502213650103862988861863713141733657960476922630310392180491920673656939936360749496629894090070764955144720077398230735537856905194145893819899977648500105170515970197907820688497566397421458850451340262568201871065676866176417672776150376574451792026571391446241610855880414399677576598082395418359644181224232331833589683859783799330775356974832606112781138438371288480121588528532609316977654794030371548647207997590523282320070294717722351845268702169194465610855743114890542831898383028240429376183476306864029464514512437455671238931992060725448546940306173611226587287551163117491991342163770057394083643574517822907991816502655861169196385862310105774051485730012590268477713176030591826911261410126409665758686631237120615563628912632166999070762405020247727460022008027142596091497476369140761446209294779370532368544400818221327771720722880787586545471689554784976760917814234009729083573475857811946579584875427225204940122015711712170509549020539709933725517479102453863256730447827530452909605542542086081630796112671369959110212003972045580258430921191168480674481749863897057208337087220040893705904163342872223859123558910613615430105890257835267988312935156486275473426690945371872526151078023310636894775832865994802126702529102756207234674281348718021156774558721413047244541170314621305162250501203090610727392282772148417902490513478988708878155068573643117807892340424263671134559173819150294471251010537425244099164749966919626289715638985794770684617600647525765409880648128853316356369454943176545382072377116455207769477984152883186005042307968590056066923627286053034108245495066284294898564021449560303756595831523113920009506178428408068054235141147544732185576270040290325801680972841330196030155332299205239272146476012321866960741385566480076251995398180470835410567113922211357893370722840610028081891775020134793263282594625225568917815030266679558482220552403351455498806086693629961624874990977346783010595698348661565438693432174267268692322251382178919750186796566249683610781172252747710659736267773323118882332752605607802651214811895979814860088166233423878576213389640829507205867521571601107501922153522277559317883042404402936637934498271600970812550206542803299472971966974271657832817866531892314983522909225110788272707937777886864888643289930330946254654243867425165446236980975716383147495590742987822148621924842630927945469463836650360369881618388704939081919502027569059849465855474575571784214443577522692662473169146351688034113778713462855842642721970411150735057558882499363349038183173339403380645680521651791779767177563440862221782591008773061268545861009227909334052927150117843316183632836472097035406720964872412992043793260841918172348462899265948400965436181472708543820429784181665380853954715263528857146297987830273901448685938558078625809154447125957608735908116421883467276619922165301557338901757796542891909974323428808659326441947906352007941113791061450983072477064228166619835263335330216141852956074198284091432051594188156494961134964995438931607718063671243385320637419166318633122812463769867164008302977791811370000611062508698055317528116949155056648577168756227180783191134195985920840969816752247040894532417727950458563843458197217104622369567128182845108039848347076303337666406784665991706854859809867301742059280305398763506949392760022289411620217795737091935225241176565570802294423335557357576044511746263985380884316960503042515310773457185160021358960961874537651451868270605957286915019213525068053795575194314506501429481878710229954756531394011626810424733454183726291897049688830276069462716993167192490049400246910688848633389330123283065563956687385921090430800973958680171705553306539048965751165435699136291529953557389252037105380840609391612189380025962841986717380821971948155461769453056792251489518839348277365945911518698673005928551656596236746903848287505216556866957076869205912089826789205394581103586396529364452621301037965161312282476642674059872789751130596143902270843320647167234579415016920254855693987947596320333831906895811320346716964150655326160513533995933419215870385267732294715026472325160303832261926697810671058842284967975325882142887030012839081643661542597308485735806913025284527405149832686156940550322681085629966991124367910050798872452982215858268049627833219693044428092173726123774586176708506906063515223219129176924646259551782305854552934282744868988929016631999493380415709693541989723453253646304178762307541143024865961221202090650560805250992325818181973795968519175855310589619057965719116758980401058320922362546973530543066078382219466493458644405448337975126740462478579350480950723377843812942623848445089941092942661759429042680515431198730940292443337065373075203289160952443725943429342234815046519578791650751325543183600995633076075265439047270702325887277624794224927724201803933218148850330865411004194122695044542592012018505219182128966343261508480409027687789151780712782323731410630675933452860607779526455869598306110205580973327195275506657334856043921070196050374389986571411994729500623573459968715950695097448215750009875380769715209782291020600093864358919573461209389101414294875878459188753486506617246965997500808023749976743029302604068565937989107279730594110666733268228334018589474400710357114629182882893170957645579977417829525201954750176196203517025961581613831410989316454106760883196259250417177677941808522754426139866300540064597594623574688318906892228199459128736478204739473863798472584072715015474003641256718394484123911857766202179108656654307928795702233893901119442045582278220639146027071035967688708794272524253820620853261377677277939274120144029145257989422612222193954345922998876718815749849519756323892339216754336431357837475949482850156278254597857518153047605727790202894240349215299272198060934491588249211640077760141265503886592029589679167376351195777414802128064526337715316178720165301652839144003288936259572981908383579549896748096461981337883595072166812177912554410996166619274124559832241966094106748438765485192735255609494632395426864568685059736978031939012934793392292085186951997736717785296175181844761506153443781747825658294976534780576622177663865260939500817185831107755904344975913696935307129387518909694947685283246938674022218611275312639877549031329835311183889434322292067649919141033282232916299126368498258749972251386353725845507147979948620608602980440390493422786323167584079290206353692184390533529994592845206176709649018041899966840459108178252433261492297318763162922449686226286507282087595092008310764404828471754009526116339271055826207470274488072753724550918579992309641052339587257933010560785889495990990015860156005386214593091618015691007110702412437206183705998238166392211529940997983042860497019063803547948191396642759207031744420913621920450872900860345908632443455449956336124112889937367229698076366958154513710467545989000023600113422669580333925007042829829482250904511937824412527971763556731475626301441223689093787133427238270824114726050738042151982028997192388713010174662001437020621255596668317151980430048651037708788913705818370115607313240694949955807977600219412750694966719566293850332159571313253449856627432756158447320563730769693572621100139978204912576215392690730913243105298320062015475944888383372830259114326097274082261396048308913001492572731120105989274938091807549948524349837704964063497094518749698458764408101348992806960822418092832679282336415692982364119072694486156005164234344408654528732616791067980356699240012601917927778885693248651540147163874558286595909512686866815029483850706587976541851564513865483474653648804777812648783033672519730730632089914904502395657345594570173797407507066383613780046607090721476036264354238831570117836651430082728696933640701171619073698574675949895615112853141780432844146205675257879091843997610835886058231313684978616711497993055100106367151083078806396881073711759183214374633778890299197721185210979957986528314192878613450414068974218877421568743497733437146109093664218952619249771006231588648278378284383926599197811380789001983582322726021394428140267646548444538114536439196489705329688120014972181052828540325272563505624235225817508747847341526551146273021856946001796563071309115081025937416244013312864229731014279482626872198936666850745604863154434233825856561425487417741680937810729064935284275420409842349671334769273908154812625665656083695148779873200352088360973762228803704937310634478525119573106966992086523179564020754489323329021365639170669203664310516957021813661954783202505366343732141992832679584360319790320883243061926769135541618362246162794381895632041994103092713292496635281595809482559918327444948323732242337993380542747085143251100895028683097449108162600790590303963373056734493056629250872781762790815855619186022386511502055935642982199734140448397867825127026899947819400818945504235678289375407618131627720110015269056371965622691266448897955855377117824115273151972764005632381092045858607765381839182514767392967769804793398322154237099298575844070766841685612639956325947141877003544374728002330446051802165553609801308640747605649053242600356397715400552645875216093368769877398327261805727103800683641572099922404139345976172704949573378414730630342123807508622771101083180381831633874537538953936893965290850790440341795515698314188701415073734255038912085708858797245977418802426249337700027838237089991774405792657564483378094556098844579179917109664928690743774390262851747280876349073026054909370071047632617774258553312769253526598620241741820036303527232315054464991093527695274795973888643787650176849745049232441173142533514896571249266585757512654019673951121424659757075549959220696653104103465636731884159978803848200534659299985503955611573987917448954319960110206418238408694051995484701952727794486838003253495061237611391450749414740117553295006119197308501781755220266779203667098968137568066524967237212279051706320425239247708443044506925957464414993317634724626291476101351226657588270457311669375534034758606893649850680309757379757524393252863094772018414315840763564797726018847945207619246465403399365442343423067478103118650819162295104829839486440680894488447269055374842856304431494052076990948882890386237775529903505696586106144779142820303646600449077159251043643195761855920386243473888120406254776643519988784524452058880436441010525242940271779017333178353951082383760002690804671459438630970607706505958328762598140548071921715895476681083354398983266567815240021108307890255741358410299104183368034634077101342345601836033470396487868291185489881312264288214806597314062361877285607900974858189166700845551323609417804257528891961567083070577553084991532290909912280934217146569673323731538510237931444127237680423562854995785652921816552182512826784259691997474601921333849180183713245575474358382628664754960094215076310483225121365893158477698841569929778555938917064765502244436932531964678332238867602972603446381685771568058944245571187727569488446792249099351334997256530748435146789809768032904526592256464982509667413238912500841509566345029669731470809460452331504782530493200263313667663799348491094483896856544725971994415933885395573673274276106821477677757163780150771966657197577064176228982370284703566104946534422550660865159920495259464353949096070418159500764278645666533835998837118548534909125985222398699432029462060253800448041851077759349339113237735707990004333773135673950507634231325886019664079141812340344070214648991078496592912747490974740482805084667819661727699768535583562034300442081163634272978548785995754342874880745848037552916885498090216391139765344639088943127925589764736476350274245941909009517539367469590287678970059456593241752807719348815608921020709217707481987499881097213292171701823309884996809789666381140576188923196238424551990324727398110334981787226228098687640886397052975015542460175447311245649579630095116991261349115213029494885186605720930189184781340375937882982156790956068487882814857971547436597760137003232789919752031574940994472627142948498911090706561102764179232880010627625407759478069767221170030171383427908207264258154939032870443952189000975309047305755186932336170768840351806652649097955142370165691944544904750295511915035541450850695484199134495782934867947617601760257106342298943000521836297127711172636462467685536957830800197914063847903548820563466004523552574838816480281788005501768982479658077051445746303713859163713288988127099982801328564444652861282131623797743225355143518493474044114091719811387217023055849226594039718418840813333595887187937140748436045489101654524640001782527963732018235961389720068806896582076559628402471270269731336446110972219452731074339478062971427385420816802605876998278155188537342529925237018522365172565345624854441979024818418752449407413133760461306294956143605504934418685001222550452912978465467526654042755995698752494205985873422111403310319530850150999875679089146643766304844910542254702845993700177027274406831583608716588973991740663115362764256830990843663489321288674024311659227735186156305312436884239021788607281255775790892800113023619358944115059876341508829506523552593316564959240792204598455197734926347350627685221401364339582069665021795367166291036266818713803134915699891558629982382954427410862881608153982344475974325161616049955613669162300866356032724525200663090905342430539888471659107866937072533828339411704447484450648877302356779680142845550530522406235861528893905245462161824933630588420651443501665348146192685534140000291276789732729602229091778366257528898946276185087440870789105784429229185725312490452827184536987463851874240033659990975977368553683259685772824426138106448069731233732583921810800661143011960521097000013913567871044844582372029766858554505257289903801252990721850225915630231726737383414078061394796608302185796970706623109567652110793165819469457341885117664311407199860516370445160768967878765756444103512800149725758190146503812487015003479132293782983322559812980844128559242881157147610335443895257145109127302299840350447349811561631936978282504722942988057836853461416711869514380670738197201487768432931305575542114074011644408153926532343940824203002410584836313178347953802464542675497192039060979942653021956047762626339327655697995794824255843002924430355758243375081197218566381651194375971172570819295295018767759027075598141422525971431167674995793852709092233763880049798184594907876057010369173964682405142779132977281417921912564982241115801404424953363032437406673255748950132515731601269566769169078288830726384280169015349705807609841561012277185658922446034451100558267436520722910275382794057396750694816656453183117799287750222047332005816590526619589090844842408365105521876279484505692281275049643464031193919890876764789797964570412137218062443620879747888115763975294488602239789457123791297442963766392464289532000882239226035832223709422083625207952954958746056684255944715270386360573306979502398703461680454522339997137355724653662232078642322502362108910651813910287074317425818901838513930727678836927143299505577519189788598632516367606738166051135568073118571012518460792971752369949232552159680654709445566063391988685358627131498599044480448075687630548404274053070245677323972519139695306833035907574785090042121305894181308375201642300639491817458261525758719682959043106474154444988746902050876638382011578399308856937520604221530843428526997488961973197110092082842552926936254057983342255652324414676431141668722505059605014031222452521769967640639947714184546112198077537108421675676966271383595851360349718662117548613764740969304663153337800614472352544188120319333907808381140554005241374530670089488343107759291202976222905789635829262189614461690414566737401951728543911413431745610459679446770810218121678444082056964951404554341909431318323947651524913706521672175970145093204843710146395316244577291507993392819638003509362924841934056927232770480443556771838082887579586920761541064427052682535721329243971625407887627833440233491065065570435154561448411599386232867754442078998533781628728127421162887717744567033773235405636800996271803962061641837919848844220029027030932670366801660072432611754914323948549791265439388553188899473612393671693022494466841272501862937483476785655609629114856759553802870020614914201103430265923511825304821175801182331285253290941902762452249532173336954653006963411003959082726772420200779088073052248738417252284551057984187239331714766004690972442670650562578365547108699083124925832753214578560186653369332722622430177632897615732510741549472465787778815601064351968435181505554893488103172933618538368594473601806680920545741181669348209867609713197187406400890003116272198859175135602130497733258129985453041171417256303940822556184174873372314470524357001821085561710850063661611317180644428981700277233961481456000854186233454768821147702417218193863370031011361280144352370626856777352047524376138668211894391256068509771904292518288676673714047024891245438149121631077939462893808553027814948438706783397771526049848297034008904235415512875703788800711086260928047191317155480586318317453420371999529934803499070636834384790961280676614517206768632366536690563102921329551132706973437211704855521608103675034876852023030372834961202702285258609467377243170647994710883008207495854226185443670791015767536212008594063687796814268712415691301646332989404348988153992129667519905687310519281953564440774602201658587377721803456903643761339826349866634357693225457052848606576846390037957987655942702467368834106197140445674840167660230170949186223150293798780632996724128273724510468800891689724862507477158946229796993827322111956898010972087382628977665785155697877820497507548361220690549068495823533837090911372275225777038522609696812247210229667855085274379385877166650962635780376427572775347790169186325028927405368107932651024350517792051732451153487642125421539166741890041535177658766248031738947151144419776709116094709571630457420749337616292050594580318950776378800565170037239674941874553547258207386157853884464675257896256098963182116706017231985381997336313165980452851360088359361817035977733300647736703381004442542264168460252659334639101981037902267968219535146585820799068476534460697416714775591768604914086841307719898357298982781408186570557578078699892008284918496521277431096021704793136873985751278849400303799095203395782156759402561126702075141836116079300075403399255388905697493361833830700439412474386900913485185439728861751370377495690754489450018281427353946307989129020855919482127824739206869727393586136317423910207779974925789213872635680841002931606301625982136123638918738042088428816918726223362752653388540308668073429900508899261679824061848753576827810529329939421351492292367752348312445528287267241762872571182016490388449487771178432764319380348035905698381162781680965688606014160828738731434322054790146026931745596678734920460986181084807773305312390310185407408716005649969655791586566175906708952683583420103570070973744005025880111031643731528403918312885356388499167094616090728554720430275821072839693955613919599566796834805484275661873352331145643179594347699906890613433767058919113493255227323666873794351449288512518796025843766144948353852553559585511119149910545955868090285157949279458350363781491343155369196425996937586576463627159425418394478226872774802418153884338646191921643738441805340927588813301285408826145821055366816070872194798937280665211526485730081906501232105461861317717483243533161513121195008454374252368352696917456359449256133744501852652953662709328584706584289829299209025898806425726590013001053117858931434844038071275197424024334192590371728614394495277915158409718958847839204290610056336600994588983238252235024895243786576376139647373248521588262158005208643946666361831830689703706083553087225099174550932420696775939269279621301494749310082657205710380026710416773810252747558044402683376321605360694069904423190091799025049849877909755789607973528427023043641379952983770720078887191694740091844778912327877804790679687646081071990719161494563061569803480842897704560560127801261230195136944765678174429448714407578648135143532039383454417936876962762804628092341245225412485607068531750694019232364408195896994813991679798012505013228632338690403791279042987898084327353089460331128349846199533165887194900686351083962493746568713165368914990078365834420408809443802063217132334520185999827145879408900862326047799622970788994864929955760487662868054381637324425393369636296721751669729507076603692732599479441522157116607526937142468863004808279853912884354492829266823506143988675301598017659269584081201630280825173738797085808168216487966957470651735651179938896637199534701891170428675148259953000275512801754966362386220752060677792252652179223605617820104461661926753630160463610517907084949342827826442657237315086892301138714039624855180224337003446491717545320815079941661356465000001696583372672287512476995413377189791868795830742039036560316506877175590390719254664060897171463099348091586225447564890693652006259881239199643671117005073871671066736443788383962902817563691474302522122705771244753872919018560333282645231464722563048458093860503584246847220794673458324490967955120356712535232520903972461983714665274330111256181991182942455317391637311218587007776409009025412092230804476178692193397984937480873135417772179576415873606632396489242506904662552392394251846906314651333472227075223843173209403710287237351248472762603482157882397494947707526874826858493124709888496711226096166573290023692168657834419709893682614417924623954518636326691828838847900039285431763236917785145657830267034353501661871770300055620333396852685771536301693989877084124823009011095531049518443475943134209978776023489721913478657203699501423317057732858463897149577526791069884032991259514555242285309127267178049922296738730287763532876022886568817479796910637884150369399841740046948795803616619054504988345132109164520092353286994720949487210204044653878223235230406555722587078385320102669110830108117584089465916990272381479659656472667833262355043448943017705794864524344016081906189145678304134211187785993453454499302797641714724525911501334931570750191936990886090590412269357765285039601047764552227359959031363374363453077644652708320339151850114979567740925428101830043210310065206281773674650946004182292285949178546986735384084624382745988995440041377034217945684078708434749447505347715550506672008657241705596635153820868694483624668664199069802105585137129019802351453795636574630869622035632768671013446661321330103883653071250328879262333826758913695401766636749650783107200063789260239483303868539321224131899276343080073233054907647289723189884456789972378289571999463252514962073707098132463464056193602050119143921760756549026577897560058803484628296439097331176972260961564321549764836801555447606325345936804754790794341869075888156350061041897936153145634602149468697581092427149787186446954460429755547648836939030194170657179943868713885372087058265363841170729607200858627415641042525098178638073558106926795141409096516088001035761497725774643011568358973915251133518518159548282083812112424303708048229353154582708866491212270992664908536246644393522225097099434650425253886418128670152921105703741627536089706485516195405449190053089219156142572281855882729225852909608593052048849552346430923074004051572907642244268428621219579492532976102392927613847976219082140439867362744789593912621722395678442954894723806468165625898457605722310463295412071442157903491626725649921915066214926640940714868538588826873807974282971053415676159007390790048324279267416180558815194273078320860811149736587055638508810979513986617697405966683710428996125912963731733185984007067308542637918661395742258852142351777160812499495247934592014273208576589995820477650635165520806422609809547530970322593354479025032785900692975042839731550888205097367985183843484763424223651941584567336579606749678914463996348503274485831990823288498478984219320435629565066774303884795360239795600601301220287133869470976559259842003602459070576719220896919727059015400508333139701079944665425746318970407256090754593454092184134878100255891119790362110126706529244633553997190222965720175957296950225757254772964759731851001866179805689896229007592790271924709038342186499806541034537327624810619074878044094437138422253947189229599497453597650474111401480018868804688632933002839647446369369657662796227030203025543626098865312428242633624560274820284491493756434503517541822354821073143328508878226879302574105993773446661134887535812465102901711007859499900648830258054999845582885845863535735054236575482537366104498463004266660613404469796796453617094072798926758851199630159386015407295627658042286866178662981088728971223635602190419313701191114631396661523350178471670949758553714053875971866188679021710756371640690726822137141107382651058766437332582380439118592881354417569344160539420315319942655755341604162181894275782387915038239118524798765989108353627192945547160170034324524801295988801970585507782217349821357213122809317967663520116383368998468275876301411678022922241572317053558242083192530932371321878954385853134779259354969214549026521009553315492332131063442565206202513997642314977666179033802281262451438830310518326522986116460172304872682781533180281984116441754632322944654327897234498251676981877805923767268145720803897432680419869667751484000983698340986427979415594119227506796298547231179707760760275962945817526626022350679934681088172855612628078260863997050640589512049875290268068737021854540243614775510236248352099899209082766927265095716751514513178070135922554419689460908360590015263449631790350472109420673890040106497484383231081817284908144119574253302783159053841028936315153544182369575715700887613848510023789309578292167706202142473103382004195382650946413135258779922191546663806218305521108172632393551836933589546788195823381846920006734810711320777115837127291479543570017235655382760759082667216632246499598384667608133505344130929074566624129120144728280825916344375668103789727096124154002103656993344515972837851740131966732969612566745889014388844811593807804685757150526863945890386534319166718420858920266322783942746086221965031871916386126930353761724829676446946750309362929267578422178508187007767486826340172233584119066251072287148219031731093849850592448568098083450170875351938578197156060501992983852270167566235711114450416286855133433364652730359897267406738205146251593472802019076316477089070581341035091375617945404305557674800278451588584246405137897380121003101642643350366475326103320799396833224523310283419783337958467225554485909965798825008377737768249365139893913759008964885123461899748802253469958873890628860210355295874876175854249537599988761206827532733717124264169624957699222017833221268407934690866756698656257817440359711564486725556086389962099810048886065190057528519451525944410671358569206364942957344625477057597811035707615772410296394447958157018150688311740151303100441242400165381332873882334399817474293985335588233229554827784849834042720814741798015806920212374275653464328787325160915827038618296839423021515925690122177006610953999952766303716514795099299535556360073906219878093403588067841606479685731108268463422538348165033599400099413328053716617255084124748563662987183046267745310967674630331065641106261090433063067301474562138700715168853075736076079353018822248333395580543260854215814825478673087605202256612610830057326207483138411054074219165144701762542345597290545068553935080457598725230840455908230899851762373016058042168758037739839926601815455722177340550139738233765419525194988312613858647151015409655529833966504987658707439394078492995863119699988099179351477220626966882904186289688619519888734304701432814773345883518237084750966616712021388549326551273023454925402593339291054072588343340459535079833781253751713754498553372932907226014608404064356382512579463643574576001334098138516386430492880824781109321143522427077576531830689213607009398869001562222151743090219058287824911465866377344325233103792300407816315842624065628853325210327834392924137051232743360819443435514782550081187407217198123833636015457573259649448123328344688774642975681523459624205533929198025206077027535527572089705681462445702488637718294587513366476782348657788886487027659349538233307488520144025010353060698411001678549860646566528524923485284175652712272913733938580663792617032688491869784755359086947776014333798793547664816796567317789218482893310207260718826973542552517745261313474457882141901731070678288129320630220042126457035222425258116117972212228887904395460492990011537584101670368516594818848220553122323756860619497825955760052089867446647543879358162149446986976085663862553178447382361995665247708788632615059826170540242927951653978707956894794956585576895013496465697537092150026226933193800630485265290305361827539325357686165936793491252408133872667916476082007942079082843754140186888932346389152909042697089851395670042326860608578552278377914464799773090387386037229977657268952846355673368679327524178180948080940152403370969349817144050302403031666472975871493387869311994365927578791019217874945937291614387106680934143831421745891278021353195013297950703083390908632075771631399363443490792170934286793923787255574939228617940123177738554785075856529969555272899194472862516356854098594623961772937991330918816837062143193042474466437807333066938650831917840041543946197224458955542191484352014813329863466168603748941941813635996498532230955626310458648721947574532680337540490862131916622651089930354450724744721095425891477303544129253390978568071645792295301548375941894054619478119849499586151363219628904561077681705796684705814580754970286204541344514693935217003428912051890162042482012207248907817460099046594609872937895482980442835441154382448348082785735108523003635383347543611436320761319883758592836311475890073488137342236919527684720715395597307642486472161887060341849571328296425367048140213430692062821523174998384839333454073104492574624240967182337637554906313104119814766875903254134317226189593494615687532028875579419790252599894367978549231970169689367213499794256214109061863700183756744784739131450735746115171732973643978340274317606625367042620417133855061296526660909198802445877287325461028829047458006115515190903865987061691312799363378073994991295043200160485993983200236771982778853012857664320871984182044386471140936758333532575329583646361104390018117180976114287466446796035408853404429363023108411400973419702474994845069869254777451614325556344381586096359770833371821734252403211857961410541512951737175568126136340316151159614379497528805032208737423326018510355760825653853638174627070414385584726943080211869712897213939499648757046850886142028732838824632179364193045391865349306024043943892917525864344221074747066784614732604666777301887322441091754305098582066449385985445089240965306915256541400005653986691246125214623002902567280265114570352646771000795651132553834966764558295284795820968801221424392891010592755135737450539048364996885023633573455186664648351146064616223008481279787322388076505547583343907524425061582414146191806145408966765782184812199081972645661748941711013539848406435425162328906286738935072451358720291654418875447981157842772909117088716020731710238365269394469108450360367157907482401116824609331426315375132629779919791590995335989189369045179481046147719952647881769560604676338244751087719227360174803456367950837854418021607309269890570504467456561828851314286162576095128691437234754510877021090974174441303151772470510439328150471230969829240913474137732419671174714751266003074827221459915220199022310844194400502972358028032337545414368465457063649977229800700883605484451543436062707016433196708783626321818894548762932149407631539630398362199841435171187520093655944208068676625358857311867551494173323450599081775887511055450488361111407393368987353901218495783718674369982858657396535354586758176919058921946638563202367379827600887421723109602264772780862263014898720116616338643918126986182374752706294462596480826636843039762344442946156558696739666330122182595239910690982219596978699501982314273538806919210273238412073354851187753872203422470765239093570464016914952694331933954013246613311123122566134338631648740852110102918380986715012747978408899992556110120262805010438751349912357899588405639188847457532396433143140865616856174706042883351882954865112860404498187196846103754682607593206600947156248754425341133599937261498836866735914188178749101672320340006612829302786410590929421486366222160977266627454261304240029904128913554675406710225263029662437979392529662080390216727710631557630983782114790318688783760400725501733485309795250044992073201218986497075846570681211346483912305985783062709995815639972327141544873260058758035377938975948768691581115490123006052058003566076314943279945046151662949224983881192589723038014520844029734552410044805539256299835819707992890764145252143018790175006253315476163227831531439834720878710908178697881778079555553964366852046984615060405446660607165635680584327474129908785938942577537220654434528668110415409832238862208062696468784801476731799443470823608932624490040515340145767499885184561378609905730036001249457334591686719964129892077837722279557155607923534033416654402209735643049788376082028610419764621500543416739553688557308148123550728447469934541603106422142450127405257682799265813853295701083076232048795568419405590097206660665869709282585753749966038254015921115360921497322319120398974219529860611699387800703272757351503590535983812667804452986401670227860450564568707106864893226461368620001387553272284852569589118909216795985517499013604086438048972471112391035566117826913204424817968449057755537980238330400668461828619370960882539821536779874918692456436034531534809319433731100259487683172303437982889509087149603757065608849572709745669814286597864039334420328800533826914567264528286054880693872140571367930397328192659685501662448092862766984608587582176296360437187925176323865262583157033841450954881354767095392476944710577726028797578380980071721508087105846716448314088202503252729104655401511507815174749635389314625660611391694041089678579665715075292551805995766713455408597556825789536003577716946096025370453686321569343581366713314884615824052274461468697485540705144668999455073103567285417610776523210839026857283346670453420476355363265625138135806622510475515311973608220410436657864600132217629881983567769743266575177956655934004718083612516788058077488153730388963541536905869087437149647975555487055309110423426779600189305919673854110804276658315372741644383834698648101545436956063976161245510068689414119036107335692875998317381385602923403537577706919175129163920297495313502393936661276024764963289851136891086879266006389322512846900711909974529466348916720287607394752022288976242419350521586374162093273734114408414551377480810053518843687969945042969563735921615609209688506974896141411517546892723238959392570168154560727091803116924420637130959801577017866950453986916715267275241373584764790566358811827868881094648283458899458273874986618906859421912400497605048912229654339287264310782663165477415014104601424968968475398009269246265953359967312118834472464639668725545837554070626367446009594274837220263274793194224699266314021982501109776721479023867214199996337380868109109469003570858144777134524753329530312366317133707202611850784408469708029848998125805566699028200710088657658668496158068722501613927788981673198919384336914802096589890604643322378533506186479489452472348228231334208811505947363075052862162513484505335521991477721410774702410814400908245705803044380742477698237632147549155921657829712924226534367574312614141220198870889625386256395864879836754925559302408394255551653809801889540157027485301888804597724407413084873691366718983455923966405778306669227112674515714069293371687827054098085716356075512591320918436215268651391359745626656713085441921576374218248989388776984962540809652161184181257374894297727300544160216049436632919281144791638946476990484800914230992658410654799368157145689463608111664877514691290853563338514809013817202234626567539601169788422498999995385590411754733606609814709210325909016904686292298040979187850927256222276822454897947945085335844285578752112611515783192734220289008882275509798559763472055149350515423105528338299121934172882170795425895314589182533012415366318077095908254471016062027364280796811269771207493295472137737462153543011963760692332140011417801395811107602811086680671413044548796111115885089855577035225055228587988164040785604789833684158658061758786630476711933122752032470752576553682062068253928283019317148137875508055186226460003860262717783237860765736155070162752604299608711943669360088415529692349955748414997900661561166236770884047553142000829438632428001264547900085886212455713270818455324225762894650869935721961515076035104096093354991062831465447283294959082146475710020731749734709791428345213223629160742919458016021563716612990576092203504656759059543369413322818385149032888707485691408458578086166202304601085799700779368743930111420788022611104728443884317166290237954443171495190973965521532314669884252662911988570754138024002177644713319301245720846673801566784120218195112162403377051517525788068498580812527575002314400730953352871240112902316486268556115156362602915837175754136686811268133812401333655121087779658022012764687552504800737878429268357444591046759325456226442514995552801479714779891446128877698102271912650991856283483908072573201050068323456956727195217137929910433894972037190928342191161432174739531028490008066345522004528363173765569388207217100085158837500772521236772496172021799313870781364521876054036947513750296242014735564916729773516999966775494204796925126733428132537114489356142299478287777790852417360140473153956540546938865778980030370594065939715413363424468933033156786071047401412657375816344993955879958996242675379298436871943259197676096953406358912610482454652357496170356429458911047063134267173399499792595243124581517591479325877359459691887211407598452014640613761775959502916613516174833326587558269935085405136711846843906513405828657322409137695808214632438258311615091980912982610995173804746090579570797585306261175998145985365816146658429141343761307020231800029415603387326840934579128681996063312009448040845759672986078401798801057775740822174536368356313646986656606097361905291008921595958452727768920136433523421631179658954197518031762153855462459662605594232120899990705926505329336503557316949180832085517969239933103806584995693269337581109786829737892747201657343879974482474575601138575572430189023894821316827258303555074639473186278327414047892418597152197266562942210753389834633702367183602102567181634843607038896602877094425220007909850660631122191398549417995603396900572196040834182358108305935077934465728352100805796213490832987916837398855343668415440922301118330524944873578367141770953533044393981974107196289698193128400019097411156566756538132163791191528661141874105688834791717062634478935952350634496324843066105884394483778309462130021890630103798808818708692148633175939358737042115939491470196169499689878900755749703485017473342379454127527001466150900991005131463756706321232431215520226033794033311427865830218203119693303956578050269887881313736049282455675077576247366279990700806488517316260538690601150028863772999431250627504937636323461905336372822573443441030544905549429456950578848729092076526477270496931420928658036488232389520686314958570830617169725630357893828614761323496160675233218141311309829791268579826471763834281120577636463074161609603341201868375663503706953345411601543350037914019974635596856776268674588758876658836287523317373336136951113528852931649598108914349806669236002633843843654616303512506049135412500051839421583767496592285566236435046252336909025013112906485084780274604776500200381527902118806538133336863454311268547201953768989921391384613842872235906110262238245859584840102598761246805017658206966574757365435948487721954986544041143590922713671255830947113189694353680356755510993688522956311385948925294287595150907680250717896337925862109629012401491597091474193326958447345106841157661665993499016927789953534964580600034234265594089310999702154868814587360895241218062422577566641855147991703997643474809117074198142202438211679146302755873042582101264663643757163144849372011290146197216554209373286408125421559659552551935876469704561156552297105477841216829727421829098003008969893759356369957504478258821422603378600595528463135945675767557185736439393294235962919286959986471273744200153663460651927769996555159545143816567578168297428799192598547907054817885628032153531786005385107175212568933764449115717759480945984241604308521282499210870294482247012263012904457870465509407101932274812111359413604915196836383881481727179117185279503002096563955086232255588809491040511317806771695638136554309518613826236217917038562172346269832596675370624378503552938853976329311175736469328701775813553103520094362042876931811502170801655780435174162564966098520462069242636325965512818975647829050381589579227966517038827339096058720115265846177196055270003610213382831321399666878576670650563906329274579989898528204446956110481212328131698759699255059523154214624930056884195261960403924169874949161960324453509541151409538949383042878537960724695560546365293118524049964708209382646714833163081108785599682319794077372353627645756779656660341614934860717258096971072732609405779603279257813835313418534482672432294767317744875961271642767837793406428361774762105201674852394382095463362612082065838358867003855489860124340467610079868853212830701198377167827454418562562860066657374140088033332614394880956242833891342216657322731202387396008623149395532754912414484171172531301882275387597692407098980244632123404770896441155993919423065199486129571380034972120847002623775996697847595468750937709265865962747405582006121846672779848716462258261430480477414540735976045300096792373845028516456688869375575733214245303093025935075958200438038796596171759912139519373157597459248940868458640152842251216222203258999219945411042987951253344928406886294988351070071417578319563810437284762722835779344864850193177246062289080770415219868224425732489454379387426772981589972775214180352856049051636552753652202385670246716412255577859085944442157968458056005055427566396474347572637090078058425962766518549122564315153023762838897246907506869339288000080793600008080954029127367847960874163686819335454550992427422718488974022096219740266906455315361949843077668153390480682957505160769209029346761978105527045944852778712245408065068115449978733103842043669996682062218969939440525102436320171556693792544054787274289282626727908605177135845084794737135733831074163888543242846374586652249604505880687872639940924431729833709058912525421316994176349697682320402414445971973412062085010711281458746750123226455062217681320221163788900876413956516939904278133467332443920675652281799044539700189655038705909080555279141125003093681153406168173589340186326227764229457512491121155990750329243638469325878019573701803811751587892763638414884704703870818213614109202859874727256691885300532860687767045015384008393240104198805311671206977239598990435690333880092171693125160467214682730248834950963046041244412764591264674528725431332826919017036378805926197907439740653492925221611655695498144748540354374489386428017682897601777662280547983669745567736953661072062639057450878717146420631238493385302648011879734242919053459870077131930163107291339261700019064980310937754329230118619374880473642844009690898506686137771290270876226103077171473994280518135247026638742757220598419688446274237123111692255924693106662969553929441320900044261123074172295074427840478054029591765751835793818361010010193862905033585663643000224825003154464736472315935802643726439875803412614785458360097060134895195532271396178608192757580217792586711166289148265600602438608882833330605166813045001610235777064474972914151470635462890658028317910836802947106947476820595221314632036803782514867967460321821139511767828003267836917349927182286666140282135541576424261136257323828170949948812995446394377701216323905601007786719273310361347030366864820643904366141199905784284879685820486140839890208120108454603511099183044479665099168873725489206142968693144656441153575394456743920213355446409818176754988255425424783996325422401589863526961049801809579511550066877180796361060451468640689000502418521944427492314215049029109192068019695744199447368008072839751737986360411159021484334394452410248556840417113437996941686793435103230619497246379957113514942029248898873826501097379080168775781372887157291235594952016512033727185526462051650062637203989319268204155862042321646820322634530327034409535286982014556410445238398321864044652343188653794658423670986991695298459643597963602626610114905227002285884501568850300130042602344119136599901240725765839023445608588459398854627797270881999161112632193194464576070489759120463609945475987343735064421267363404232324748112917111231834041488234802880538419555667818572065769355849203350507171969949158750639984428506473982945890950957418553617037192408148046371349308380948411797351928729611795495113973388528960299870364517775031654820888181681316262078850462287584093023779005633446740200123520212768512333469569361676961334547271281020963360964450810238599984951363679676180726214792947933092624376960595862397116087738549917249401203392353587055180733782450770915969771044449110964214526524201045370920839844412688118825046287352285516251517942194175042490186878977180765445403401710912014931746290093701867347230616183178706061686363690920351383015106549508474090499675158993056708753909621181950804342929817102432558482680112999479234197128217492701649976105278231217633110899781580750440664483428784147061665595695781364472188117103604387339179304214500048087378669039501565576147726857881983543368817738563857478783575712605207105134779926841344169646308802732044541894615579753690290056944844294086059239520430948787173827019070916584385383501880469679899610842989364007573106209481318857843305326978355814881862326653040691001730199405111757614608228062001214454995022350128412544061381491797314112244630354851939910802137489906054319265812918012624298903709634681298991233864200463729144923877165682188778166074916977318794974889946011488484818559179784597583636744662613146762610872442409145124715888874583121184792532805735410781761192841806293214925339797077533831873983192343988363657681231111349274440644549013262504238747424602868710724859525770057263194187149747742667509925825106033017283358530725490509506120225105110708396582969539589875394176833148603636645836949912102509638093966054953262935069821897917611682862219878350797472222741115966536540446073428787217686035029279613968236840939929683439567910857237997419494545775438629219653069823421728027738882224741613613775271522477527374632377608386366905179437458775213043146120184127557492777269002985129220280223594565959916654250236678252603987810182704241093715340228001735483720934100029776176710250229727772002569654293485639468040605208052313169309064642015420412815606773690064178843827696627539170202520718271047730304051763027116507097522300062739331121619771277383517309130686968630466253231369475818914596213991650633010682992765143785906315460402151302698354074481448052502116154171290918102725972230497811884500175025788625267618491271919489091453605149203515126881656974760354862312266499364239333676225766397680434099774593508748849218626558059916282363148633905353241948477219864252954651470999132917851301462329236098837366958772913906046514074376578442640122066813366237798146553306101180023809569604796292152486420048987087897001281381226410240357065400172396212651465330860195028569638711442282724782015710807778543204014796771783235843339947785041677550493289454647386224282257939660212183829525442686722303240795179910079050509524737276633470706272593541343637118049039861114821531983011934354570919225029061215706825741111577707929987550118173627946350311129462649851680233363163450322516282828194984120238934453457226538320481218023547242045490803613670284495488008625257498631338365856886833311462741574966955389929499517238392113467135232335658784780824191499058837273227767483353659262029418666359625653847858830793221605638037507732311164799809926379307408775739937122939344075631776788719276430994829845359118004212952788297319487245094590926213814415147108615633365153007380274993147159997769805039681663397335148906348524962409798309038077050436281439555306395357621930330113264538328267966108413614677425808837725156650712481908724094073219738496707507316101322577672821866739030940097305950738449037180150197072274276519142641965064919638320683325278703771608912807450967705303992685196527479364134222064836402462264079743846966651633079942024756839573244367093534346387182812912553178887445290151164958197309534688832021331685952782273050959550699503222293240692579682862301646471616808935228754470559335309934371756738793542858495881738388197675902602776652633185646210489269978838703568966439024232007161875572417509119268854073696861644856856572039973540954759407727164068512851078763876935488466746105273420149625268289575328023861452630475970756770587337896450598001161864821986900612332573082897416433604200464342097103430691874677039173767040331784484319267078731046950433516044897701807001127678348149392022072195058732282573119787327718541343790242807248452014211121321702867157856422675769109227587487128663137412146993855335402856711301351428113647334200519091169897338928228461271572283739037902453781547693078630713455324908851305165236543779933176067340353384638546902415593715936012070706293881672385101656491445979485788199683343248470466988646594137041908635011175341674653817120275464151287177829164229674743112276156138579990997410746517480261969626450862047804434352551201718441137351333050225802082671381251659489180634681848834375537723733318399445915628858989173846179250245066541053949762052384734830890052781514539840665699181332398378630523470352481611327459928361983799542704203546376451044001616728018016590101980820217079825251679734266702030402267351611595846085192597942074494053558091487062121276057130369178044469771554071602940374092325287405082199945681999139029379734841763256340077128638993948019335819418010336865036015009975546874376461283308110500868957151957405381885892317246242493528453781399210304261103061678740622638790393715872322381758388256308439074208671138250181637940660079805781363700533388304175385279584247174911644599838773810592169320895434387198662803269080400449832970747987135488477767194267589951656110793128467835110772421799339984560536266630039746711350562341808992210660716175237509653204165287922509691588911111251640313387585915371768997518011851207840746598151823890847542268365476810663286816979431685736579506930217671380370507623459343395069202179004244266113321500997918359150248799421191980542379376550531728279946664678128549520202407888277034635143903516942046743879199246965341358332133437183873984038371215277588991209958315195592011247438568133548550336520087403635692893642302110674081836447923450447474352525063383486835246231933580314563092642408557783652873796224922995460991646439427465351442816921083521220370044549528313561645515674520428455560613267009088396812962366897387407213724620696337084323518029450772987246936718847200644820754738409220405478586546866498836920770038389919106634899285531916029412819291808039395037004762022876485576229067986715420731596684215703457802138968220583636207106179413265213762450008464552971032993756385490831688344083386714350918154313590897411385849799363645988518699706970106200017995237519132421608764840108617869756408216398658563780899944371402224543571207535226293054195774820035074598717193085968921767387011086423601765803559231655083182095500810017986073787758091915045007256762115734052301027662803781148198591437206405068744692579776237053780358026918482425912973347924218094255172757357829326647650025220471786206311362531325694378875215798144445300870190072675386240541940834680055326718154845583832826012885718061820071610436137272643495876712147454637772444088322073447752939284654888273820812273695689197643195525848526369250823862481327078119935156964259242335663058825736380046689883131583732074275850337387100282319318769796786431178990867783297753354401535305283775517460131683298523656593902198909477949758138500095133066571463264102582605457370366590366758117729657699897049389866490028489732766669646699763545842770297556190927222422481473156021603260046901015266569439390956056231206046094138539344385260678649466990368003797525984285891057865551282786132699261794357282956662709242816385100561602045439347374633811946496778319050681755759908420037278100514726333323348203215444364139512313663476416920470318483576511127485364089042068634094265209308819081789456581548065312579450165181946796624604921934805053520961729287287625248036476672007160862353808962031003330363657381862987225646562243584474638003498404265323677238391362180114939998800696504139436434499393389048109117368083402141824020333801033785805863994080083729798027441724211011453985763275547448883389866985178786063945367324250438562050650517533561843084465532237443141128789464094955101152507022866424072683376273217153201148017747823853702671222825015021356284513806292656740557056418928467061333789082648682637373275182926415788840809435094934890109455242236686047693033924108710919952725190512519854941065338377782012978243848417706798087772426022422679868009579536498921814970101271219288110633978952547090024720675180256716368441729502885517432097998897936516225722924952651463016449149728947707804729103002335770037235242897626335488880495434168601246077147777460123458909741226929065302279774007984352940700962917191325396322193466050253466855585447632214933236641031378140016887992654666420409203992606666168199784762174146963617917355129108559657300179343674936238495448255952183754893791422712058829624808297248243022920455366276183032524614489261000022029632707099041124394901637932664149156218045645016927253396378387151960367663483481661674410826452184444746059260027355201694717330839101138051323768574529005221063237030164365368290547321740417427360357675514068116789450907164855731830688480042295468479084519139208622688234248459891535902840770155084125637762534823205222300516624865680496164440164924960028710395352849758019076495579095386614681136272000885883150378722855020792450227099253721451629839353052736858873713423961951395527796967544166121749733326020185893151496765231168721493225644531463819791409703656827547375530060782569281980768969701959540147646553928801788540178066099485311939922376014567806014550741527387833167132037039021345397696657470403323719242935284373289410685673929295624128635625282388027444619759364550768732469135462047177786260840089964611790109908287792131059404193925375125449196028415157026378221314568430935397021307071993503421324217811881469721026579615089222270624668827701075348668849382771755901372199713088616266681914705788474057329814495198106888244157721109270263874260079573638039031992327100481016152484604030034567310291276020800323592872566206235286792386860386602486169269545221565112386710556348095783337950461198532588196324413331026136471641565435669540159280453897645131163392468250075550236799622921678454411343210601906958019301703266114555947892671154944552477134375209204640580491636971096031291064323519485569492583219797263365006157049780301050673641844021670871236778490608832670571547992889189582168299284799236065272004131025413650427085327888864158639900990828194600291618634645966611871930596227978400284668496464575567265589621736451734655066413968756128439670346224027277083514009959183742422080213527432567638537670950104664878310891121161135616843302724517634300824138049221301245005583073412421471423383313872259354533510444622073098113162217666414865109848712116184135451103387758079432385712368679674035658621719698993110157953027745148146067328245509812217947330163447015306263394522280840536732699501658084626295220283299928689951963035064671354519761058889036411096502902072939736368076129940439533519704975663834582033331858079186193176025804754809689765137206416165948902159876561969879453550358089375088039053305819943522001556812445951338266092684225465221199654408282943938592717586422985344308523809146493259648351098852512870432893956106263279330603250600237909476208807145130472414248056765203278197896554546729587275985372145099294257694702117955111417364062770216263053347980164468351594731978285458681675307349261335557743807593679265078504693436640683989254123117586572840490759025022364461092518104224610715731861052899039840557778212357163134664219774259112763688121784675187503594447988091054371168118536357951420520414651939667610721850717158596111343979651747759861603248780214365124595612828436502472694036729208687355535526718542612180088551750126764473081983891130606775087179789380760105364258111374625990796480609184368188664435893743835704481618843770482141402947195594389141199434054368877095797415326119720958735838982447945800836282025637426881362966095045989565371663940827138306158194355515047541806578840043302658877604588361339795018388898644990974928565316869346128703026487407254660288879300003416241961341944571260618628430748863423972420266058931002971376806452770184466093741198386546209931442428045331099561371602167759778364515739520137799055035050084224243724982715873455320460962306949111957435557669448491596482908921599923328755928981752224202479138976958681541490674903607939941152681388478573078177153811328802342230526333547358762918959209771752945561576182308829825255831926484336467057103996798066102670433942789686893119276262283215559770075540700981716102372722652794438406343880284675621240714794496389700130010475597403328166793012299307865481061118653181947706023655566090438573802334357014557683495215503044235618108829391082418238110515702166838270406047140747244826830880401274643844706285656233994805808295561696011960819338407287963205303688796755599262556265947526826152966654857727808986504923472186425496459885281479620549432862832120396252493738471474508291352335336237749912611656013730079227557708096358908172537313720431674210640373681203342897779315682358752644401480094265620288157211587747756038916897920698001577088719826266567027547735242669050926561098852269674614849853919584827739157457240456660218621888357256582177500919487660854678902056781206741742478988166067516003507123129964723650080565695774354511448942990445766356056093698118026365258949022422740191714596633925315717437148809662725774922711771684948966564667474760887131131459669836265175765480608468978872759036405279217687881627957472000085958264089780613311216121342203089884349855155636696009150372039366975120759966688324514544640539362142061695364004801606604368836554693987412781040774119241706576256320928578101109997528276139260076425832156899850979183829564585683260453430932140941403272704974121875544565940472718703886289252189110115423599678676174222924588016535389597321731926427587589913394231527640204112704268214354737409504189762860190431595365029083564989505013781631308346371280766861547412165663471087670752980521435623859170426305270327030354406770797855517447628070540486079496790928346441475216551678446230412585717515699101063320251513005624344674453943189560287752314481750814189550091653660670544365931309996181400087485633880792316691097287196292152511647093606323507393188746434065550255281047335317886495725001047468270961504462738872404019872138427036686200687176905754617854510410606875733676652834046235177862091918900394322124881238510120120268649871578049394014000484710495899441199101300943489142300135676376327138479973430666062633802561122134412659424114956186439689029611448152917009902050598798273470025839388596541223389953407836778239957925583770746990073316268457020146054929582521391965396535284353816789368454194935977504270160230746404312502767974925482971391812322466615369444263813632828817254204931067751970375379835203584032451668018583046087328950853048220862117247972064420351897330667684076329568997862550576435600391703530528730847197089948181086320036976950416276081970822674667906808209464980568069204700507757090719156931625543633362072681800668286990654672958400667328377948212099388463252708636128526537848711325371779143905555771076711751219711524545305772013459852969961078639493453182202369932465988783327190846407513654870792574913471457966417628999154937300772479683358840840880208813923287486639480417266431176366023005256875500623614213111564235351650874035368149866559970526384265720550687052963894480552876582586011004097005493471266441632155494522693492360594153873737113546367809606248266940899081477492153587701855647482208794993937499743074497201818951882342695534863649857882028325277421953106194722568572840423310218370425637913304430647950256448664659418802581527391758502282487182408325078729923658475634685222732846365100996124939545103432627904462223403408325989064418100603242700944338482222501181322017234704675131952892873083096911948804458997666476239189998925238019415738617791856576727974421655077575258215690445401285091693726635089552259405023781173018405440994956154921801782657551296019150507248606803096049354751883222907382756188594392528015284536343070343618854454651978086133100316744112561154849620153373018991193213112401701698460216419002751672567395314874317681239677111690044961734121032536806111650067421259343487114517104484499159687644792396424596297832596342721677472837815107666098661932455163962562986540648793093348112006734264655455918072887634337903922235305555614500842138092671779028084538364415271334057056909082912471564394022431742871353614412877397422072695417110384482655113664876352471956785248676018818628768808337701352612947006939904215214870536318092174054186674962311217067874743529973379577267327515501667984868315060541698907977983871891938110946269492893918412827958283229624375304142145746107771843214461538325969014940637872456385412026681493757083936527108500288745728099265126241187690606758337906323890945128851132923233788587514099003433312190634152589251068557403939502155742778088675308899521684741745054591948161185161769438710878663330831524823294920108590674204119735189503040878389002995869201931405478030340633835372287127844241176471143481941781760663729050346454245413807368830125086757090218768447060354158637175509803773386198293075303525733649467544827227934528447692268509647239571926775151176046118648370359060442984151680713195776063539938509774462859107674148004091207344438475552146741099157493039181132117142185107048521395343406693563801426659702132725559220338657603408496777310396815628741617646691049470407298126342460935223094671757450768302366592886790908326766611543157945086047192231665144784874249482167895138094947166284784710386128068747751243926270227362429817121315509216333189758170029716470793549906538033956990020305096013347978191499147954896138023106343974651603272395576227498197315487142831827548159929299853201851441373144051090859091358311711846176760033468683138971201996751278516383133760214837927970691429896926058640219618848587280974756104913752793726310481796377089721167239570703454502703069800101168936629875261644109595738712913189649154673069302589393714481529298568384020840749159551548973974324342479063744772705483340102311263377868090384003966535079342718383948595642398788473135175442725007012562945565084728220367530688642061574767302086602263835327471713214495916054142046745719171739802610099039705707302696619910652939382184759004912855445258239636944295733832933640403677795736617547071950604636530906506749368394416620374479205339516994746316623822926385906639595197803270174569805309585661425094726725234994069225857325484677418510255627198008715438618499588334986784867485388076318501628671675404370556432652810536666167098951336353784038945610090402714160534285243197032170114278955993945000400019000480946504427782571420888890726412292294741280007957324808354699961812092580693368765024136405228011161085612192208321053586057615238881775529595243466040210303234283102857333153532530487135822049794201218163791713913077647308974152416659028551566293757672233545359334998993122991261404735029047987374826856176035809697115238302430575413380073794080593141831960836714532629520550740407133215391985620693711651382537611080932598597637116230847082891078548345930266167142640404038207786548272638843079373521355043543320744635505289801492479588289025345925934647733870350997066934483808991513269576165525777383148048045935379956669480234237644939006974681974565674003847178087079822907491464185752762705288392455719586069047087944474542501589527448016034499981430033490429539197237726097620492946012654292625367670145603828545651378199966931664881759593903192332916950336631246834296546982241376170958582284367558095344904471667995366332318934708117971891985421459212956560178642106859844424790746846617704456350880396140457749496831417686708029882621616045261536233448682862893002211251714078606309985671634339909519118086355999193444911610160078442394427986292944649989653049925634845349844682250757875822808573445841965334829141016511180987771093845921613515671499250585311238355616107902431240928543489864922906302815602011071622362539089718833390122904090374283121017423157221265586541477622525795443543024844419285296287837616629523334464311012276963230123069119976650668218176555205367280802670232614211528496632091238984637900659768898482344191453923645001663842408278928129315085978069017818808221435926275539622410750927758146063580418885116688313418922759727953086131961194470737756823374437830537661567821096568293042673663919783289602964972096218415808236141796691715952086209782366788635138275377374463973009174785844792169797542640070217457682176439823581487309491420171374043866490515459378696862129530770372127969571858565912792775081970760566465461202637708197358716986952902305523727178667421082620327005232057584035317121020591864653630027046270658853862133728107659040097287384896676239897653608129245363573330462678038455166954327223217106120201970743900393269531947627202681669408115297845595528853706130764347723282743080352792845383917799609825131135289100081526526856547898335601770642856246188973356433984672222570129548306087084121045171758611201781814402205114850377520435815845443569136376900970126754400575072457044047204203162109988090132574505169845578098895306735616175604981282082233989239945637589415007744389452243453979445703399572453505249464676738295781342654146699776370857805272447446492397673910632742639475546500085837601637615781106261920848220695264605209465305153728517172691996094235122666468150000752392740871706139286660489936225050127528231258735115854330106447386625484505585567283651917346337535880382922380324515225637477133819975367544170171820183505413228293605338884699516834876224525206852332052730958192478592455488459881018566807217094545592593779045286580894650884244833138589838077705092514327322763308783074118185280327367575985455674125531891923169120986241701460788831116183091786607425069958533069114960612261971670328155083314367720893923290861383902180849900517458706949293666852145841943591640053738004527030891505518384480264527958380686904600972884797988529293424136960477182068118408188751316108007471432513183786096052458513055466015514634010776726023666963222291336043013501519947813615562639979219283670614778562842946731556426135713309273321955350124655406804482228710131870585607693712341334939868705225026993361195652221592153179272268597128010816212035157923080108809650648142965787514874001906137830581316213466381657692591524660360702678172720646231667785629635348733107803225093336082757043103394037573680590481138202011783747032621508325317236319993862939222565869790076016460094956001962318969308707435698090513727385180009182521046861131849886317032925361846597568635169948631296211340521116488516283213118974186199781028714936581835816196254200386337079752881209910485613188994708684379706234960547976106951072168053236980957570819146503091463354498219943289003052488216076479910524199267656940662103209560563526064235755533831741817146886197858673170345854095704444735837005553253232441587259010905656556616111536195787152215320120179415074085510483016645821735679457688783619887655453634391233638888870032019037838889860949004530156895351951944852569605896412307526371508170652994246745786981502966023071071755373173412473780390871705915892433446267244479267262563286786732693676288781021549596617604521061494536574117236462082483814907323489446342865702312829097687340223537629992405648566603624794179241422405134545353993742298908464046402137722284853932875497178022412756549152307164105378844379913468914422553494370730481830896175206281576413801341702895637676156416303476866159133349108839815007013527653583143578752062882265049491928029029584981276969281936812443322284353399449881560164635565484052179625299732275701204290056677341909942535003140934243807361305410283621274786866501927031623498613854689891515166414834098972441275792308795164242061325201242826087376296191146154165051563904678266491113311508882761701272851564077088192443923119937341530468259834635673836025252212745007413703665926238636816932729393805327333223414461943089897252840461313017201716784975648055708308990887308243189082973886752940978655858316040618695211324694864675463709792927946376249084029632952435396378452059758843098639103878080223996784037430933725297112057269732992203043453645403115260118580734601362308456892977611255652643806249581134330065272530299517116704348662912393877496276169941896077167366750964584763007176961119081128940467506484869310926131775990523508672303886791701692423667694940952198711869811308014960214259085040635368112170006914543906313249076180528158740854000708463075826035829288898245104717847957086292764545364037252119178538734896215528383230775514363098715935301112718189290114319698283168181669884130988535937497078867127156140181571828786976386431400997935388591449622919605662284012101813440933149746051306819983513018011733716461456116055715144017331341086901005112006409666714093908667815203886595514073745631662610481497764934048624908924769837085235520792987409521366551141845965652699177604605167085523103358384444865331217706383522787867246672959186395349395180447397443496061709651015904941703448549818736423819476543478519605714204837814600761227651264809312175817665806648553595632441460406170671759374984343308893642321276999732988338312155326599822427630850072724231004755054807042444578040349653303819579487633822174218107163766951205075873455048777898449206720489465702850205041715811118377292221726673978680806753829133243489997817555794979258299613524110155962652620388870833748444395537741423396389515107085523600094424016670168183044580641801114017365955987866001260229157831523511988492654235568737711562235214561868110572221917971550673325466530465233540976237591723074163094153948098878187084671219984207108656854488606615201467920342945569540785715319633440613962181531297661820793564802322939964411024272157758899386386689855421722022538005835392267880557244750471325345451146672313581940002996728591125624321820231526437065956846102960511794266870942325423060677736277921806384261143691270916992850650780479354687796529137178336208547338414482312287960154527066149906610107833956453994127830238190680036089064003744017401510038941269116325417901617963232298946641634270372158956576578100226126089237757398159399985777720464848636325050522063311445056265804421322595336801649596398664728991286946856714920306935668644390182213732789165856034389119554161272086851789499418101292596115187720165259961319883788092037005573649745031075825169272816243427872798642826553761750011999106444830146320661885587127719302172959273055975693642974776319966860002288500613432795648272919339615376332361999651519102767964880096192668362107724969528326963454842305119354133725424882134984189471649854925285476397227669302684303380231590209092305412708063970176763647394079504566166894810698010180297319579856719203301881674111988725939687465677373989187473304601595246620255298965946347953969056385947521035826583247908308639798236982590906002632161713128910328342347756234310435113433301544486123598534970870814242141608983016088329930384338826146633867605617808522351297028481585878820341912822792665338555825439305876060244204424275954263981728543031174875326841734531377959019750397013362387136085768267314973138570099637246068780021131970378876891534182741087947908739780170527676512265531599014484024338282676481603219206786200380441502403548137019624318517863533732953869227276057682817886522134596594482724256342779310480252049864412204663688585562523645168187439688334333395997099657619979154265475173664687631427533503421649710423370443913370045340710998981998407239253770625961792655978171169087461956187194379766413002496243292621957912074144496233435235827075947620013847776287190045161589441921558859802143510046614312179450519657725176725507597161716791942504010190203216367396796157102970747694741406317123398775300862238634937756733821147310048160678332138308866269794421455879148351230261002986986275483303852785611046034772836087182430596888757328233812919906782113587374083094628184515759411717751887470507208973628872376242589170863031666198066307524566519978862675009465026539733850073079183463088529746546085254868548907063391679813145917337790246081115227440910858709736781754807294987826676953366333808259638609230793390332474616175964818953157544536434194209353319502878551193445227454687946866498978209827902754350657204388047664847081539173816517012047967204150572187892075795879361564580367303125298262471350338109370802636860151240188440954015316211766149636471166522418882637368538890983118144188444099478559646151349763153182323816444591583398819177430526305344499701014179231504468010092984795225572547684142734123337156074568369374757282770433196277166304102570237909694904000370005342522258233969963614987057396420817094294148350080430919199225333945892243049296035679968338887593367889309060591353166464483942929578842214211843890570649273454298613603775634804331332578284602246979321080815841992665468253076056464646894068250348669698061589753188317339740288096908718621330845588450599228786590222760442740824156439733237597406265808822736035298312439004709068815440757134147931337213622987597845514472106180192772623883866866717556128784129647433364094064532209713790384285276124778200059370695592263908226887056214889831648474177631981673351245710161613067509654987941315160832485440400964800867389850483946779897221035814988161281195826887228370406452689365691897158115167725860874611142508348376613838504754837603308505222945992448355130902304606377544965568556574507622209235129093330458208756178253933266591064414376272985653548310193728494364913298655141090184882005112373410185961382237317421687143691095212888879969845441151353988233901130147250159928903984241101680249776182143179297365806378048581511530684763239231437213665219106795895106211954468814172431556616450374925590799395799354929508420001068887233872355534406287850949214349750587676055753466794015874787335943860748187405417321278244875184306055545321118367051335033908956959820335523105972556639659307917351019468873557498796876091312043982513081305871961139294210347284841823849855151497080079708052613266362122260392085123761668850805085427181316930968148560600143127012877755413761621708083821192509626915675540320133880078858485191612513282072463716315701129038360346489279875998311584451749024376497005374896438523161763894663374602599806729177938596925104725655443140673093592816281708708602240604455680156614918854626258838243938899940882214085920132971181392606385950012626707839713056302749774622372411454817229662614750372309788794881872414016662957261089500049853479578186216838910563319504721297199767856242716337760596173610114492645240063948042442835249889960472658439959573659465321581778873463230155416970679531984279786647212953079828520933515180795014511741042515549215736616799298105009055650118216122743735861486681273114561336532910606448410215643110627738660179648085447649743273489559273168154341134733905106552299423547853913126501401970273049504987935759832314476562544936944006408911538556058524165550487391992860984714690803698656490645870079924410805722094538895424451005207487328982087131523011185107871628731362391952200445151063038337479727006868131452110325041130267434735037125606458275014460500265207822737929975195468772572605598580888555266276081973983085049463748729491411953293495837116537734266490488550661422097462763565424501511884052791916792982893443214350113627137053790141699417767278856771547501175052213194931188876095934215585737156127782898765409388520366898632590727395182747556571965634503664286861957643939565229378385421288278582301218782604379985633476230354017492687401728644663634563535569154142308480454761417600315077698437769434239943195241771628500301377379573743129988006780378860471469541664149968492522990511743993537773349370318802056369565898136472353266309378273644360376528298954317153314648643906958284083907801839753405292012547263344781333273257307714887454387144099075751504002380119547215988689131474174415950682107826682472118466991274316223045246837993623687128823188193911713152033123839076927805557641197381779630192342187591396749643809435478261462876274694206081677574193661047403788885742394890598340507833685515835972573803590096314894364855372866610798449110151096551969828058563571705343326653324442477186301296655878100559478812731217399381486813894569772935728392204061059550814719367210319725015624056420971749645783859584174503317671087826271224744603687327485355341070132384066844160964837670233173587588567711582937847165721586063828157379160412205003425821341097235538831712523274656493595676850542405833803287323589690314106143502509012035400070984189124481015866369509392281968218343777869539221316543457051654266639860939398218460363319700571305432451993636795894873660252409858975442440045885619194388260946955713715005947684208701425132125969207059435459816052869073545973324384927384328122478532073349711657013238776545161744536064206656722474867399937638812522065893103716447742202203178525495546699764949533050403050374273554920432551228587596648295500320031005857506693351207506310732542887987515186884891809771152315280339072829550314390225408762419890772612882321138718951902931964547457512696329336079945424875326467529714124319822461406905321147278963340282196789226772964136593547607997866313245815256149252417731053804494745274076472623698582683767949303657641631063475971865661100898082279885322241494252021154536438742639576978821681105733911924622733861397116765444925107307707353920260251705095475282816740305114724257071772572999624354310547222782298436571912911068399616963310824427857863722325088586595353493676679551865606638553293622787832007217438435815457824328712121065375266283466570463786956348675051495804634586069339313621837941684942718401935858115652013909180694364936021117603316681132114471160064281345821093953631729537854931376826115718642452387329779046335493776354793620307615884215631367258703066270117238607233284130987413319862499172428653602175063486685453484855763202729861975171577817673150641435060647518979830601905486358876017912974843735864682003694997573570956149749765547722545798989768102166350764945076295064744544892709209590587074928080826387800891233899927081701379103474317884938625615379771025360450388289347757776240475357403616641822097356386500117976637060073425140822971469016718940620673662131978998631562102514914355815981635547570452607464061025485559076757127030046415120250835368479218675341109624117075802816564661258529040083784824051825496487684734227178637925532896910826883525762300107910085782096181316300262532353551042469308573256885653225164985286274872663411515524841896339883612321107614084893374978448166620839021264754666636628497306143694955732486118844392728713264096096233231194929907175610390035127810030724322787147098232592656779645916135824566674395038581608084070505832171516742354946978841260669749962223877047768351489256507838244940169307082488621809939991833131274656183728519139729752952995008750788332683193940904042540314143816743623104577784349145946009817722021024069970239120033141999631211608332162482901483874855952249338631166578183263217404314294591266720329520911799452901091894728615562283276548904368688454474717361155280153927011157055547415743934746048238012295975321941428709399413579902967782356513549445964607205034497070459509129340660301005553398971661778438151908051084650643090187159695813742062750240286999351788371436865197757172841221889110389186808636662300518673541723649555927548010875812445777705322229576532127813658918792051282785177238733988501888562835880923937829746572795536422109982516604354832916711372699206450998001954667166754188087519520677699504536174626974356604471753451771142495434253942380307538893163026260984002850473104398392682861493505877680318533193787653262990233112927519716613550936441998916003236495297564508812398589183415064832840508643571778213936436462793482182584222340859810028571935153432043303090323241711794834968310042484019219716941837841922593205284520420856175024940245029108197457536602579471116911955151337158122359926977993228267089126802216636249566587936696927311312155521116469355579590963126558198088324889755456461883820162983143392597112630477031269273768998680649061654133976158074231920135581033081722826831533434371317003530696865435866776718073606457513620830853538709616998616019442510621348679281784085795613623809114531126991574987464626751870433645079562167235284879274574218840996111674122832004740620577192365669350550605817398170663099491149990580632292273281026492441270868686580767162277749466233095251985296200881060288251812205037226249421644966734717116819443651468842166974286474727731034726990718224594007933505889085002941849899652366431177062399651797118531591405328860722744095189365663419771247194482929625044218619838048544748270626704990291746738528527622084388531700547645231733053178218069565105861194281980225480303444742101721521636891639901029112482898774439919172567877242209857217347154017269223203740342302691876454472000431798833282723549979243204364480781939790551351987780784140304006053677387512837936931293659592701231691965551295161236217032020838520659552854939941725008297537036039917853153300033375591365416814358266512165278708938174454280406217011293814158829498450667438327379276944961181568442914666996748469928071468879498857469580960972522917213767205741322518763900873961155487884950287583508266968326906641197083977733944651466306887536100138468486585426839931691994924051201552123140171728466050664278674086845821379112610112457781768708926865523830793510230802219196809371271846675541237730238853182054146173234695974336042374285542889535521441432467780861985430958416565317563672645383457351493897554626335430672824382131200715150306152800961620392730098976863906434606900542225111304019952070968486678323754541964300423255036206807239869738593571790838847688554189568254541278130599649201356137419431121975701654670019702698444459785871340244228436988544657206790868463139643913448169213384590365056219454625017511261546090432032653743114654960199535447073246463961599661262747395690150259928527891430970926034247196318126914731744964495910058484659685703395490122702606042992013208829029075049179690233977117881851711675745217836974039826504883940040889386333793654103431206669879053246941694004551044704556926095911344864755337616674766481302877269195580415818973926547275713860209456810623871051671137023078232760279915149412074195320759840011706853976748041317382646291676335257983362049872034602198137345596571484493487302539524783208481340814047818516177674309804555878928939902391466261092594604150158892427641021892779085209671066399976718952544200465239040894367452066325069544304090625056101377627476833929431749218884641607757888050569078349566075073887404116671333251588697827745726931399480102507250158328248733867331475596122037991827983093448609856743003331196126751180557697751052496746605432684058854899324599691506911680660643377250415226837956432333531335667365303077318963669438255887156990823270030031170623381643381107491762772080148009633873947944747009365253509546180089754576027674865975890932402323463118899354147745672096220414469690940389471437077072093487638207530133334819700280356722941464792637823897389828653923658500260883584129097416856486264785628662300204168875901935012223225859393556205452993398310672497096631630195639962209784889081255389160053940384395547185949123537605650025221233893344676509717772548366303267620606547554326179685061401037833890582042397223326087719309704510130967896488086984925964685530646149982427787286419134412243427321271636123729602060527801379153702835483967761380238032536793960688341412086760401962783079960451697925870814406937666256386967674933832504838627131615406865751766929831429933645690285056620998306455884732171437640050939552095548512868863846984954090637533791434718836713775266248578575460718942197634088226511375090784595796608786683434892918436114551123340534179315899277972577823914220274136784745746223324453233320215370688713510747348126563502112525499741605534318979522325294494743105218813423265808881995857650054150231477630918655558418309099701260905101543711215187177447393213869536393672603092434952016633565247030077405722855944031012208581485639039579845376609548800725218187759408678253644131033756792932775907210479133479521481131828512584024234373871069541202371223208497671489877340893291332223183207581547869441584642070380056316509714672751001839143875220283424100305342291282691628053393719016058345446128256924483313652069694441153590433352268094077411355331169632921880757820192544959571973316116212187001328908427056530193046036447372062215898146020205825098829501453513289077287111093645491190497250719000577225687473535911154828329296014624537402829301036297441133385168218034412163220135246609925992556166477226890966601636096461007402370556668667795328585574500791790557583013802425304712592226034815349539990510454316660177755079836356797177608495429114928434271328414159235114441400311597189767597758222284519640798868330055305444592424986298703992156781359335738676528065334008114181258090570321700033318289423803045962604738585684540834288126337572467702773406966246561292510758798176387631986798906990375322171821532444517670155893772854317060659020574339975733636256066075034255803617487873158897900800585853494473326827148491373598009712623493458599435980635352246891484743360736972935635347074810003835444992835278039595493606455628109771014455584964078074730620044585053389761986494210923562592209940140154586055593107282343084565907857059165997913493436721999783346255537538398587897589042261406804557565466901324349217946615243586876661657791319673493971300999427689381564902990839162851789269059521255517649036069417236030828964580072876828462850236170474147306020323665742769013390183404822013333888391755164211655039320260328959826756177976351295138695822129821746755231402959307907667929497115916761435004874855172175385449008145508937579792449423707423608361299041161437255981366713181204797570257820700931339053403611415462550108950498750480943806344774837273352484221300581299617646406366484604950453847645833657588345409559614227840221983920843773212278877169629853934396097632796061548879963439779281144888709372779537564773140698582744518910368788486398219571270063943053302062580990240805715536917180668973259153947643594444030735830631736749431430081598681254925173641603111361206780276593496060153271279542471704280439629864133494907507777424777783019438738802334178111616111034238453147028787649286283252142701523331265017383408916494780592199406103187498675965739931810362991048409023787753524084903300495019356166661359771379685334610383105982964965345404126993905089987767808492527853492015357561691766781283647950985999888194118857926309828154669143983438079581860050273287607914173955766225739108791858128808944895331518906993700668683679799114202855493509382287541546353085784799295071234929076391893704946847465648468294339186571442428477461448686128629632607362600842009429395546372514800862604321667521789420717940065205404358625612417253391770867485649261891784507662827363182733295580404981708011904091928615475611138724036103194742072812737840878320070324616337188240323312758788652931020437028526800544295040363898562283433357317587406964236082047390883258640907113099315220301188231489185219580486400623555401997051038128586149204590793371010876790327470335188498589730973123348688129396063137282138953567791472356867847535976716755105826633503565415680519283638575746521811863863032927137615744952641310483431074485869629121792732500616924659216107251353256509012857157772579154167668680401921923702093218842338284635227813253529102467764768748856775015582002655266845417631639451177263654145619303451852143441244500221429025057996571837105444292902469037868344569060413616853223979327092973601680115186603573607796506191938268311557153259202622869378723795417322024634171509196084509395595277218512922352502299112932220997765857464316926241237571579742783967094453947764808035791801823420063362157719593955733165299606197508658531182561507564195443472044792601474612577765789936800364630371426068438289241355046466733544102498136328331558667577478776844527714469088182092466244303890486807411418064333900836542658467456450687707520853086055154135678509996703011151452139540555321650369159935979946492889261989605534894603010741149777415478009419842008743326928605223069722208571991457898886265065521893938259406166787165137971803660325055463844509251615314369712783129128047025977205115102265130213305373507956206669644958470795846303061548437664005760032089261608478642923667447807319840662259917596537701781438600037574213946667756475814806838426054567719321316544278637208150898538707896253677988957608030410636985261836530639362977985923735512968655460827338135902013924463564842229368264711933767138514166022360584277302419356410163918190210388344707841105105975453961970757379118320848659943278069520333901079349986624253629004431174523266820844062736778882417327603952386584779056249104502075723854877260886535750113596177387163620330089309916192144231409687827136036770499435370820973639249353803047997467427605956210642662122385318189409535785438842814743331691543186258646679197085254771769854190446754710937695512783448475331963171793307109586652304336078216748231994843816513432647357405602490433631789291420168665176145241371242781070513456421050824681273830721185268310998347838507501648760512477897199823015654742933190244125438686390148949324626770407275525042359929432037527837169025564852371316709866375512539349820178361893918451927462243209005197119452920571539921196982894228929297812741730206797961187947039290312232911486463150271033598223410850769071952113077432520455597270545881338509358196869617562411417809465690361019290426631317633937968711162686473104823402639767797499912016114694047962402556535320513710037569335218566959519631692346608768973472162234346940454510639293990777752078538710611787404824628466717652098817936842143220404671346184084018036697356126868091066525717117018763393722673864532192538742998579314449888282199761651188915916162366771763950336761269596362791794280555549309550874359737996627338055406486989310370769700130015015329421031023340385420133902519901292407191597001953447211781905855598378092261619097310501822474977327286417035975877939274545422280964568709567453019259207045668686543809982377154066527857379233066806462608483703047013605560292269782950475026632378488518575758307113315755338240977798536243481302458958079370220788627068939257332126978902884331623212554547268279942534744108448606160614157989608971080152531225265628869053220038776107099518808797986718320861635443876972609321154917687877607434169930928874933685678135395375593359245014331310126323046005730937618510474234201755875720474288153326835113833100814976968938380438111139212087189667674550517806792297455802177333490448245123728879546199414909044028681167558801080758458502846552728768705550699590038117651920752586745494623872618231640299081228327782563085768824658469894481033031298295563672505314716742736732042496483407323386872720961598952888721954396090889537872531884306452727227566926084404249889124367802983240806185054969764889914882047111792952982412129505384359808008444479732565727711562658645896655354759536842483056254677426886804638014548573732859006359313309345313814198014289276433833509022459897094177479022850475063011864681096535729998812824342970077977524920036000675657266418455659070389772960960418397767768722314789589850723158426972856018395705130616844903253411367655212466209539311958868827989499663714570462826003482279295315660915909967149831601575034762256730625155463138453948681519144902002522776354294268262691817075707259089599545865460105890931814297362791503452490811030782707374096955798537321801263232848291000917776882943409083425473794091933770059266863129091219096288002012456004125428418354741115003335865868356456674988262116528984427454507680029471056296875624769761767621989697387487053234490273536455675525032896821529102173092416725359324003230738008630685177554042701701955959386009079366333469040227413733923808087326426287768598724949228362217942673728390790377811082230756209768660375534953495554672477570465591535261040155457529491259560505404919682496838875170447640818365171041563756107397362478473679014338429979403147972762981329115704699995977815230915624619862947246072001177393513630207774955315077982564367220786029064631482759251321464526860879676988596869706467489307140318140494251540249384800029550429402429641342616577905706409617177462590726456015960525045189690627123923427990048082887474257216343072298671213006582997569806989197530942532016420276947086661908279192586886897440049240827267022142419558978239506199979141694533868775315249046248386853920299709793825348594660976977909887617952707639922150141129199002224606575799030115949004575946005474974159983926505007745474821611740883976618985770913122549491647048167465665269787009748036436359700508769780991912411821725741935770819782694305641631933603072033020302704986694258742265066402932316730366723648428752442332350474576618859107561988313819518576630957078088457097776923028727497948238248221742757255229447795240110548547882890379529190281580721318678099791745963204298472070410141983707901357646697526295638988319913980482869719711719026449569741320187443969230765754051451933461091668744293372423411732139715707195723159883530689276820894564930803130451794890947815094614372658076400485190038935869569506177187368690981155278115650853223435118634127399285719317191792520379023322476720146526732773656104996337714768921319477363297998776337287824966442207923042132728317755710961411238979992023511791128673126687862828230437862457012606221123379635616381814840422182621460290249733327085651466877472869297652160957050567031809687964946594405638121210769672959887915514425311267378679174335285130888066759268698061065185504694617940172344917277691753358723589866719651882945887675261081410781807999800799994414505838079696392546629083501352490355806448732034018369508774494653332168533880117297089779258893113289847212447143176402582473939539202721495826598380557470819056149637584996227239516982904773188534371401952952392701988927809639601040131025959893627348851729320336863626758159226165825150462382321613885940296357944530930680668423185908932367077565194764644886821979389235323356155000130134628220402456840221848491255333186474684988530724479431461129351728756388722706583190456267797718939999416113922345079767217820530744106680465672186073735194901431044092873694004056390762624305171199309193561076294348699090328261421862166735761999249410943660054402780182262749001713835972676620543802832201358187582937282863545505826667892543108408486338917831051410123691149067766912887153621104538664733683168002019616994821945624594908973325525140540749520476179671405178712906925071460522377828746429088734576171892947174881203940683254018405401528384278211335219599467498683799730397037308843078832913737748395829440731078915037390642006773369166191399597258122344726249295714662140035478914618505357387447025764981876258367442199257047139470615226099858431739204215306681309963663467943146391359269461157212665850412605489997474836616517341327795000136645697079489322818204612525014954933340185815998798380089504769349606353206831920146189330600543369084870652932885959159011473062869286873185903009566001878178426648517648419244926256706089764485405390761122894223784810636174371476413944033277113428351405590081642943410482859461250636527497428283059136326417689187615021814311100219032901632845389177064601675228436345339155650411370401214545868978724763260283077213356626270106323327131555106767301500811520020035440763290878934495324146813907734130388459845471049997413204651101154540450248161405639358158863738390341963319259411419487464722338443690834964137762631456322081746186064023222452446596804111278422577361537219323357452272398705383087526614029134876956658720991339855872077846944832520666137869739504123225631946877649495135222795484703901416977647691963958629350204278701646230449529811155850095818409782483302620721979951250569485946697627385366441657580412172596636405130448897203391493572725081133018259712594983023000755698747582943712434121770938642872612822988826596521438730969268078949478934596947050043659498555960793769474694312328682206348476999593443265856630278015050608547976378430235821455798523451466728680386062230025907990665800091653746231461821608667306488629605867133806771083619973442159093729360088178237546876888886356174936425168696963006862606041800736690335023119077925837044855676951994949073833875578347262586048513567242869085367536649031972613738308640729346763138070633936090268719998124527154915742984868034746152777415549878795480600638253846290046898351356277043275870105985475589866270787873820849000251723054395335548411912639066532496527975750233909437856184786044962845699498512815299347421784645201513567905752192912152470991167370125663859755384399764517505209705230645274941188640768358375732101966756531075320364968422770991336778921471997851992691151642254404773173984518256142931603688289873183345851909017803807561301009298913500476953563797453784991738459385618929825907009620694014348126302852698741597643392068963971968210790427794964108416292066521326425000337494699934801006144163195574728827869383254502557430994501566951678898384785026906207597217568885661091840047957700894301217593268745931517191215515339364233157782232441425251760400033064444515123524350866152622007590687735429765500008681069426091579577085441206162003977248008585496978800670864099388934956770764099005889130063264238647123617712178334727733674547167448638214925847396682195224933486458489165018020967307153431398192759877497374754173146792195511669510545217595818374214491126133059685590450109303419445705984888344655775877420133607438554831179241558082298203816280516802507808992808451938099343150562813992416015888718090486017354448995581760817994863642214659935342089548406686871961439307092959552440304825528171489713308358127811497325655664209110414414130140972751409365730200576883532452883310226869361340753532826047079617423495541075530335631467868953168698556535033825627055019414078372803060498595916614552820247348675714186387921561645568814506175557692412625900087728241253102949188796454815997776241811339386921871189885653809257201310005391667448812625197671425609904148032487370113796830211508417977762170932277636417057766060598983516389714407915818474731170936175317111238672536298544844358229711221121611743191673830297556179795903011162249461536866006472591426348869557056509060484966692628465853049425461219644287692980134905495313936767688388083516642595524757143953697850365991875789169819273006037880777608781634230823537384334745280911753280459603240163312176960209257291490278416981493005342800744834549974040080801392124051980820815492095586479340284873743881179837761963379009831344249458970628247910264869990450739884303079215869455431790559321573034198783134618798622406173612967462262314612345135440269055537056529323228531776332250270116145414146520822624021186218178833877905431902990720861432952955558607200524763567532685410015816736633626111423575766152023482617679756739420188299506141083177476332559156183940735057155100604921106435696033437233030075844837832493770419932100294013299284263446098836611535288264447930604904659165368232056134164519312064932916656497192656906231804102728720964560704582151997681307192341322945769740091969836667409942724678988786267126803986493455791138136207577975761542677600634037073522487937353431846238915948519545513888043279237863640781091067807162886728724773221694884317904862483800411528503897684945512668305312144273680910622738236121871895996369841461638050442598942785275391178074890800756884253153039009496378558279620834673327677080701430293780246120184922006315853112774932678110219676614898113067880521360621741718079623124433123905699708773310991938562667368536940720445512411206101120072341243902580187166504686027374239632246498467541852182587881309327916649081842604717309966000147386080687978462910609188376938274622772303012232181634927205222350499833259542746879232335949907162428407332111548550029000147283372145678721967434590152277942698814784658610852096343004238246170945159025946922636275471840710238993945456080767576514915911689308798393411926681495950037827554976269019359101832145662527239559750161877529321976636109470122839087110961444297621203640264399649305154178495762135331087743130576149738230355853682560992152910697468407561275595855233985621028250579883404444654435933654691625075885300262906458266981336273637615628225725706996769679125047914160302758265264353849372317806253262165963632275843186610661871504169807487800640581141628042187442346294836572268960106342621086464804706841324963917874923209100836049377096986815735509631214245631327330267082963027739900798066544361469561710227787622022998144191746000584971933294184782263682937449936460497076952692505836909108988738868482130052611547026726439950444038658902442792159667337500936773291812917767622845089971223186739295562642360037986137568274323462359850996030560734096500131934586726973144572746583881409219099115739763038329817015199690937682699943014247536719576806676628683323633408692247871859307833284387298414505036629142806950953487644055971726372336383243361586488451674230798086353680896059958960367718812142748946208727573542654298747547399489382882531793447540457998190884815749375790035552936303370038748703476471567862601591081809813490486879180480628801997052091366744244641928131963920228889714718469297198009688923878521603294159254282771286403397403705291079543403657281806230357001396380402441111461074962142927399877742042270404756039653471360082897205583404413620209779834512244303004015558281487117517433222995868737616451188977652918305738751221983209636131960518099361466345924918269753740664716851135965824451206243053466358962233572336458803455133050313758301085883520610248397038229523463121599543813875992553368000131923594279464743287317276799881482278159136938656532465458090420984076985851129495986453877229288935458350892679828084030277880832573158003803999762852287199358808257840376334346011404947811955499743319025421153860422492479205537050441177907156226830907430449485846684390147495571316174568399127216387112872740026902556211877072146031667727436692399111072024061907506009424997648525236112347756057463761315109897592893836435785876293007099926950994952338409784355920671489426207431355203168798759502333235107360042502660998547320182551244724197747119847962821069035247437436267672715886942464810037305254928473419025443253509378551632745872790229899802212911303069997938462789573087063292494108127218324606859873607153160058658041119189015371809099923166707389794568307088889115055764103563775479152509473745252667460124492701327732552934606752822660666902237738298824744111823178756801813793614936080485310477011900387430555811753925966197765293593129905745540843705768084705130500591598020228308134194319451809652391262328320338657019405798995128354019948630673637186616216413644337821185194422839995165023939314230409237776782978336845757141757864254842450692139705815565985237113054631813021051615469030871132728094910374882065000612457753663100897869889707157587031457136335619045466528438255404482206025723039203650169092423427163135793449111053042867138497469751683684866946547556395699999877987398044640779820949644741708081117602239087240276438248395945097592437139099263419033788074634758859516376298317252981227493562894022387902776517916903453497933871064471913629689629962549539371723460103810252578763545830705902453742241062588898175292053039070304063127548337162061492942353199312817961279095640162405501608888938745701383973878906356666512225973873204529636506724746116429533478814677163887731387341626995504802957274660302882982502868658794287328706958484106169776133734203128201565195834967272006896863906738024581171577504071438766934083270748495708179039302472860960818107281242094014604090326809129211060748059501963303845339018184618781325565579551121506722129531992983467892992967119073733656447889004503099669863224290210755165280165371881011640062003107570473590696237396582601641746689559802799540238935729368793762820583676347170383485176036664228897662266908239144279222762683170704051318940719021745654094303910812973105430315026502283256361256624051354698537539250371432636087071813237012598897436260772257799750508085836603497977544811163398952756424718192342108659630401478289338054755878884455636721322164511578133266641852880064086387078427904292474536364453540653548577994418341548883679211848912144328777334584349990387673395170571655520686849540675547208948230513913558664947315501840527031386696634090947837794062154587533616680680512309986617395102432472741075591123214289752405617895101151216909701355041080728490843098909592429163463825591369929114378153195753014150427503178093648364825615748884555969585808565157933606579264189024024142086864072658955996583824873401673372738224574765172907788097411223692053496138194545242576201947460479157381892408824485955287146425001491671784970916977526874627528492911724376451151255043737139280381713653852502079780315132102962236821623976685996366390907895386043159550755469250153206130796287663062541283083995845739673747390397856684718769847618295147456238143206447504037114927777266323562630805560293573110804128148190280045377454496589740906470557405446350952387886022489167034395675042130387240848975120307055039124334855286991925169948821428978182548367334836637383157907615180573884822392967124775518966159584225339549885833589040093713096135269995311570990027534753139364117720850759229418709167985395274002881832126051332221573547189462489706648034654207097001597727145942933805036793854088184308404961933190255716300120597066198395417461681118171498023156387910306077188312336896712712619009302455449277516201091779693449724896695286999974980920111918647080158007268816218818686671600120086252493414304509691157917284761819352962090515914757305905605045557080780003957304798972825526259686510671783140888123105804879675478486403532097393521796969802384056321072941933772063544442080322626903084278134743424332598037802162772622900085175509923143922926345358450075300321685129265441607075752015625073616577002374383080997205726715505859851459525661516730187735106583309117581341828626380951519444850159807852791386929448018720435819244263639077739975640883130330258463336091324140521628992036110528607807114714814774353809032578605973230250474133597634468977880843703560321639418501326343054455420958697269806263173565543549332150921054291531793545357339855953412191301684684912426689962378028220833860966328923678105959760432890351745952042697251138470031731670852921547263158912124886215052931665039024110910365988552677069970802058331849818317127900995349015423418484818778868272884811980223218725854782507748054019379190803721053241596908019215424305397348006204178666857192387277292569406987632268388052289682584286338827362807052566927392023859126423706268214629613991264414461463181235427198061388865036585465695933470132571789824159572540939843378410014186822425314829356739297058352461797893993748279388709217552630500445034746531655155093622791842807283026225014128658512005136593055173212247538277795403043498284115200016686416894260627584411309369128606011570094463072669567909636425152492638179456131052758645837749405911702482162041750407021672644778103779144073349493161626997764772771409461651654304900314698860160113090337492156196380924219549785327446737828788113888285771833784623487483760894098459431961253182186164504567921887306882177963198860849095401691754378543803329484065533404530010373339942340605058015259566793937833428667055870978970776915313271565951482610858567772824462384100776270151568799479925372063770141472756257335056332713192146119867956945006206552122428413213007249412954793919384189369074690126678482964498849835192731195344984314148599135105313170271899997151481117489973612997458504203494492236750212151373543987549006079400220905563917633197025537870906685397788439695324619148430350729982971839565859323587188412964845471834120846249268869939244569773770162170074279437050901542558012863318031733442817520555307927768989696972557516017182329591943227026777589834968427018808393151858934842311955932201943746984668005073976293832944371865418018539260671091184850347209236518875843982523814726414050687371360759007733430789849040952906523381130759864547474510751363341168619579168906132528785635603914692316012027152520441511733058373913548724092536551856106093456431733724167847697087016039386541049314077239742671558259077308058652708449035640846170855382346906601643963116939315127923553838041964344334184579716766235751135928471271057479748150812272195994338153535418146867452986830550848463947423988905869242982936267059140124679150564652714873558543768149617965368194151307316553698758783740330893290790461734139040463564958198493224505594378460533894477496183487814726789207251594918949010934416545577593719767325037788686750198002362326873953001903392604703629503849279441050073868742354366842955846692874437070433948330196376012798136467156784940052447221853546314469516343727848112192888814522424070435308614148989165279805316842103320203698287053123014470032809949977594796560773669232143503388040095857079459968948279044556633503665049175917136659715644723002990154521515386093797507688221177572831782748426891530027032043172665047367861428146339006288555165855814353285481563351500769677849603493129473036240425564829729054900555710141173836504976832696608057367770889375783735155852515830119578949183010693282725560164504418671197771114767055530050515840623158912827619162762009155531126740246381416387563157241368089928030390294257571152594390522564193552751635662842780899179157527702124461256596929039517051643663323372619530514302872973693965141929389750860353034939775263591011412561158250431266050570755853313676144556582261936085330811087982810879930401803700139337250783598313126167221919602085121372452701109976241082467401837356517206946954022775355904197633143102475640643713544727001412084952864706470826138697441732023671018434550401041954681912724914161986729193104905919824510084965668851697625703465434891888538025469569165241067971406701970507592179777384809602748597667672320126817997642611060378794610075600681777237102904063782164140610902107628144549722321755353908563914282477961321680597893948674491091942506633415165424548744044029681019830139421730448873274354397898024458749722216931148721893868679804716551234590317494043039639815489244364151529849607495715605682222889016280148058164006701560088740104787144719731149773319368387002024101977807909185552951701306331661001489399470155645139413683873067179564434864272754676343178745608322595532112422219871516690321429867432925124640179492004744056983963700827743027079833921628020813861942329570530384590905135819075010741094625222914574327478873673102357600283204379723853978530718425780192672798282423269773403721515059718677664666630387589023654627453014605354381089348009306759603358435483886536021776453462729393904105610991080103666328364323463622624642513862563658025071762585469387262818546789170022531929658976055369916391864712012806450469547003248009675520801807268655370080723837296461066274148955628729700884139240042782573520078090854565736145852632159317570230229736068133942330448852506399237824487964186480605657842960503217526510588776309635463783594431377823492410743964305083545850171602665317301449521042154290828262936468943840213138701615764732576313192261576943900653142289696615673726885187770015796713660583844548073147388548653928020189448682283338372354091323740310492861993623655085969016197927506414163500879680922472261355018370394109869954940271332475790082426725086121073690386715782042176297809867884109830763554933314175205091162337042267020815245219853048224699615376438690222557555924328653607193502584094609427665738586202860404609386491416608618480442319688374000011937379499497172358399789551304674815003903395476786103448829504932912365092883447181477215334366178991129263004405840088950020866389452957114285315003576520577166893329205051571621177786728181661496232038556274083336158444171245031017213720942231390660783286080034207792282171820142715029886652036566333831214256053777185192795519585403555766381358878393431875905754446604660284382906028894040185498725011962943707909525593171692938414205065573471404113408006476631205745241610503311892189003559045086603706246899055802062788125921490701479472600457994926046284970755209611365115595049921653735961506063000761657198694879995197003303395819947358459457331333100769322903734083630196947628519506737515075204802510317775993073976395078286822145946943583260506397181258741201034295509916642190362558873583167045630917369582524742970204064649743757932063160874280388973936919713972350318132846942651350081782594532910588234283283835877656001376038856562432716502634890410817395509524229816052715507981274415083633605103509105843665064837406626293106192114846983228803089882897965845036293922945094713433761488577517845242477697888127646050092780690289444962334859960776516397159822247731770233994459640883158266479299440202300118909713569608855286390325929578005122708239807388074665563039425859441357236933472185280077760392635203483162174339099050274080850925289678194756987224441831147406895272149168288142858986132534667354258682596522730457624113526610546246070520820976469245645666991346598107712253827115391162353639463180510250325938768049686089678205657249563672387841500824363453144512722742391716236184928808347079160837468759156329973464337841311476121542717070936202147057440031149234336638612896253949461838013802830271411847802750942839321969962944527384444796762003278033447817807824541624373692299967230261558433138575219988638652506605877036621511788304858819650861707079125627592414209069087012363493644214595761790776893230971075031017798646352626987537174925009467127353265911026909072018682322058359168751772134939300022843873757129880689844302155330962725994872159602934952947443947714424048547186603293084775776283621037305294346686813570577836043610275596984254896867235240061387224461956102316190912796388506971161941144683234502793913319354457172406187955772900018330463471260214892353560410683728203723642777255774321488624731956726267690886867195053309380819243612980630738928744939844162616387663779159813450344464920905679603214193753880011181280825336215624344619936382243265505451449634135970306945093603608301867604868401548361738475591553352100947045556860914622272188589770781373435707997246421931501981659200007194099903883986136044074622908156157221755109331904841189673564495171707120317246133511108877372188991263733000846891681036669421878706600774535891008097602776716130410585168664662609943485832387617906818987061683405631481875892749198556241750860700063464289685295201233843568770185638875404306804279108094219811851609790599541064166665621628093657539614639523473923666321138710175376059860410209355312309978928283579302115743897959633453319198283900844251503314993441285979598359192713045184516358039114412558261270665029294371820844473625219571767641651285781135270923652700580015494786785411223480488130089307270524783709971496200905527053993988947805222013129964377155023881275065100491046646569278775626334029331546276293832276127117370510155082541644103801010584232527786825590439319270795193044007472181673210197399306352139918864683968178662774648395837406293657417281662265624959630481624577882575387304643301708829117892574046372270425044320115717056004902697828289381901901499423932359710469944911422647323001887455496772923301442882334544018903021129722288426261180199652821374348002695232950635719151254106156850597343059360080820882704092370425309609928994243462499201659745345004443815990342632729948319173190446666901108433005582396459036356975860587519175968356336549382011161696245948307066884503450268817877825259583671279941552560885827917687226704416592994643230157459509462225526121966418517169609682453056722364875314089111972919216724683057888886320822521631279167023414823445220078936664659636417072837111745501437793399164336903958501123485237420601611308504870759914552249777179468820706597610720230981454695432385849660463272685703754276413284827288763773920327856467513930469484933315110295373662633379646582453416397297332630888305023715862177776873706506657925288802548992293013291592817821856847315745048050349480136752348741309471104332520571176529845512303952262588484331687699161146233170466029822932685058268788112419331507108802025010625751877064713355475384248173227817959332628697499031218182566546372899608392507921456686163983346350143267916306247630345310096916592259794173144026537479339685694297652336028289156446075087139155435523228954473468443482964015541361855847159892063546823348808558177384039181522625738956605636626487937996207150496024256018945949099626499113989545920069448053940003449790363343839327653656314050510031334301563924094844423675450839675225155588961904735510624712446214740687267200506777842612892656113214897730490206641822318533998183247316356647102362594408449512709258364939448721829624369096521296787675076992320489605898826643638347074213174713015388311242014034546819168938285682229083669406547524070598405017846146687204885003072148477473785210785195232613320135581753130156250343773420733428954710951016414261155702615501625585404114113368764940910560909089659860230408560022784146482803367303761056769802935168555277408601679280706638651520496860414230930769524544438729604949356968241319783563499143862811442728031702776775106723732838092232542619621889911262649054120242731894240362266340624369253155595882976881020290362184483577401140750148398471549883663039051556576007690733847667664814419618970346570656744460044435314595014673791420671737921406974355844874273030765149019900400927266700352212843914171620892611155518009336974226457611290055488321850321838944623327242714300539239639616318887835607770449998824761060878861163226934876793975708352760598467617178238283307033400796726140205715030613725147061770996016872613254566806965910683856286135515150010699511589787715000248707943564320906593779295520939565018786271085427644477278592937082684469611943169675858573131501833103177472206447731576202400569302266005740273359577541815030797748707834641063005447939558304353046912428888958365047613375514491001372258858874206636988701599816917064179720721946751719764801010576887795710310439660255697488370310066324802103522818241414684908864703413351769727383595305595382675130898079292815501566165561825363580885152012310541332510914786541348307208574968292095988097186884177795914283071154633679843790342343505898725798604363173446798003352938227170733419806599922405204786596381032385648314395339718359564615050179139433796364045801352612617488053187504027930276115346075540674069443333088427867130036016037182520001362192155176436683551098303321564901754152517967838479692270120319146990861615586238964315902445443226047757601932100260130453523377402285387781727204196929696924634542477204609874777216082277794499040013051311408623932867889192528634749750294766727941016644331726685718801185655933867161778098068357263803517627928616999995888534360443886237408520723655712185103886021601957554230986125862551523912507153165236964246333972574521710736317775625479976759590145569333006450426998769370457949625652341300180893874649976974473316520488612728864512820869702176099248413762603158357103408450642063089494851134075691441843041527717384858538773715227962108800771262780407017963652374967936707055932324790112093885631187814589465832775047426409251122043178348231267604841351702936083475165593595954273826631585154376808215933082637695269913402298771504745034545335005685986131339270731182263822018369001882734774446861203855245980364583475795155725054725010505312419116275493244195220502346867471906950791879604722269436276468045614393495980893052159673416476796275067088693179734343747104624278349383574823499522727514311562948138310549902735496659985661095754193314482356735329714026732749838897777395766805301953299064953571258447005379510866543041157841378035809889668584109647381283285072147940375254181546801188915842638168749094919654286588503699829822162481342907582708462371874541779895602012098709417678953504755942233967912922238021470740693373775103364855324355729563934678316314300438397527664138135529684209988183881406624208822918345186505655283346113876041896023417484167423468570342775117815815542095256311145587448912794920062125095352592730342300007462936469453903327404539449764764268497011180044816017344396013351091491761752152317018229958407341254977976285723763501458248332428430210582693122099359245339747696556207398265242437658325878724201210151328471052538034193461260328716178519570507507901322235963503150965720683428891900063221619394887829281717357491144218696467738047463903056268912251808184028693534454252390675379476953662283612223494897345184428741275484148502699417717725398700284078955196356957070188954467427061988974837175074932068859027890349808426759716236107361549486522183125144797694040077391393566410150964570497992841134194084347515384145684098509698485841397587086676129873406091314237836018950234655369770065657366630302361951268992602356365959487608332987298077058437829727026694278077844640198042942548977681925630370483594165143933885101960041406723958464113898326518928215178378853674992440450092176567910913078708191504976614203842705567743176671239506952015122659743037879272780049365657910645846629100764131353743262184195766472930589599045850796699195708017695132984845232290084094635215528488539761679320174366502945827501735151332534756566279617215008169594050362243847535083267006253237453011592372214515135677495270416095251365184559718170434627484606005709628180080508336038860955079261152029825515066422186540463672256805688172391924285983469457315190000976155754263278837820917365270190880855400707979055478201575191041088049381667381264694621114661313966481618069304191437939666129586489939106052524041395554100481816371086119242913827084897215298848518049619207899737199865511985395477153764203161925210502448397696548106331950565253888061922909917527230474988218938738716242096695409839416293992102328105881183896290879591022907969699978167153255185910442791988153281760353796634787972525168671768193989973160133150412984440052421169582082150098998741860334981987272386971455818888421142398593127100114421007214153047564271280597459575348468125005777109291198349803185878796189516436631026193997535022330768958174405568314046308401277855868681482192074324223941615481860822636967859066433184754104256281805529578972574195342946594952065691515249705298839868643840607838213084172662833176755551845461039750096808604256214426764040691510636417675209998510074748152569498580045924428161403625935718718952368326580016766551230055905972718962696877699737858763142517389590595046087863145683704926508086750792846534257766254956431831982255452252309432091005815520175144402673467385436992123239394870504465399522810400356503133280494526046950718999569826224061238320267552914889912333078299176190539035363484172930869471993826578479387415448077462235391395915030018468333791041686600815728078129910000803748444157589222221556872249960630518905589837443860284311366619527330937154481862532802130667565320558490017688006151874175342759950149666724231131317252471966696079311895559169618795541113227784402942395487623812538713332909675906434282776927416206973046429001609208185960774713141851461605043656693579194934234373465614493419605435264933021424052781910948520671803164136076868094317280061922721026363338741566092372881923199800680062427396947324493188996412921249774014187520742092971763732135034970989520285881341462001817016988734168570903579333640609678969334300407036180042955561992639509601550573726309620337918251016460555111557513547149293707351809420183502207836820521888591972629317525409984793444571395496714677622560316419554842436812667303447427992266979129505034043390446339757344984754630091935807290574494517096724282156067105125593869619559838209912957192719814044930051939789415406131590424937363237402915260934611840337995572871832970772010010396202991820766320565642487341838947538687744117338880294396363511412195138898025513982862178751156321752517894639347298050491650052622723157652434770700097098522773391592541681780297184457342918057277345272937783703418061147546077625650612420061988332799252146567856570465373063054936755048451738965222888146768394004235154475892105343248238058476840409961299474168177350363111213389025225359084843679569612131632786567691157450143289999377620565899019263946449489106737873274106470676867396478791654385267894151960543811777090903186910252020666029061846333535537737420627215441143854005837970880759147406682885203122668733902941572408487587923959405611854637114523071504619516668107817512629153562262561479131879073932829910843375765917433697722673251112673153383448795450619402709492820462576241201314449172452351179901391058684431741680484230335157361807040029636650328897233444725119073274121985401278531287929156549596094134790334699658792848392976960573897761695646337071014839803271893893011767909835067159178081005232053986124086010277857947232197161507887060619650880481682962935730295274417237903576039756373646479105654042088125224014072538851983721557633514674389802583398307988555928458941634597128315326043798058410925905040557928866141254837029392313069378706343989606238621962810966949094072725900608224472034727131862453526922452510554157388052104835523028116058595659245005240988763944218516317425378780860109843474335256273402167198604740033219266561699588354370912720818634643428318538330237613880579878208138839357016089772894536474817819510510568391439061232012899450069741262456341866419462791685252294382156096331219461265137487573684816976597452292723642407177835429584818245816810028455263573253912710209262134801362463535326098190594241384124667565826066466154590504164752928881400286992518947198051834248949005919884513860798371809924265908562492877360232396353487821459970405393286212478199153323138030526667263495148164510606237445206425891069487837589034203452120785013378199391544630697304847894617226226322667789580551517344496534315527252301851066627278944152146968357439923159163973707824738694855498412313153493090118652977974708454111210855810065810465770486180681474374621874998066553102633811450195359500020133271363035095511739255695372404500311391046182722564328914304969702001901714073030224493452610673656485459886553609134199453406475185886033439289830381164956610744432490925919782250660566917119868795063145514762817238865757589110695566793142148233386112496300570932367129832605492813718346597361175462876096854973003515575569405269029404132792631153843682636616250330041510223930481323347739765050913415848952872880010573525902272449726015322324794353911199334323852184379228976522741102824500011556550660712016928222256152956704419884194426537633406095619599710445560725590697556563215328886906378691277165467242035342478470810861376554281744265221786305709072285203957815478104154140502526525745962519309557468970000233705748397011202291655896628575765691864923841940164966167199823959041495475380066138465191624361430664199493375048707098527547378885137430641921359079432249357662953472061194659394068781476778505143376912935523199288877635344079337893294531183632476521066652216384118191097963951918425469853918327478044398238092971065883417945279782674358590948973356188761359943803392758490340899147981297500667621111750125376438286024743672119763655236282949042480198505293292620231421534148723358286730806806319466540822435447093715695628242936544721393400520570360540069031506156233924565832070182479989554888143592554080175192890099039335169742166273891862204671562267031398586169975010431749310447498007773231545594563381452303401709418114180839794558117887941939515859723087537126629954426770960891128780832711784155160764720050691392734375307263602965962932007574820411838104435028675950086361033632591064145277139715720332872737069514126997404176587149702293177359653628258328957105154695852968440608064072401260793659919694359551392799792018613357491686111415060845690504210301592736942014859655686111066834351966105364368717277604997330777407441147685865566806627509008230806775323111218551786124823354666009582096602369311410964274818854829395128554341472138859130632322045041865442423596296099581570967109514064476062588967809685736244223878516640683800498615762649543392081980407284903358636130394343111667890519464788787646863709436440717522114152835163186060970774449914970301659421020704489909061626373720278978595232140537611597571532834575586365648338241480613884173334613737891582729791192875812299487047913265708345618962459821641741120074227020954799141997261945126544600335233283280663175235812631078689712462523810459004259694373784503600412768122547466964604532881333780378640644522947840826568097680010331415008445392336138649902475091062155717372750348537280249455678440029207119687959722017022428360291045764748865339661839960963493465733881487627275509646645964598244852603011708166668376356842157303350705007957550904251531999330936352432423424929355788004338007238763735543554183687260399647731329510409590023836779364047288132601974247627811804797042673501310083740096078647094083741578537019765881866349489767026820604236208765565975811231769874902144298428780672338215936185223090181967022453148958953501592860177404902648976327291923953785693136679355108565837201958011342497350609245356653405944004996606303403610325417269920516927155897412461641656617643808401102198050661353022751006459688485128156910123599062859198295983519806487211406033489341189520886598188328033257666197171294084663169281740110360932788536916696987368702921509335902066476617036593257921828568439051737727729106638087329902879677702912744778387214422530643648770143681627981449621413136782522370009672623856803955354845685730201908134741504288459697684151358946134291226681841817891006630282387179552118788492005273408415275697404813600071635787454711475022236179980662352637149849167130006843698620251532215060874328301434022630100522453932554977918826285721765164555778804348285721918240172261374447930612539947932073638658467423932289834558546253373079483779688840272370686209501142211428547691197304276776827554365431322762724482704334332022738409485505954176173522581737956357295328025638504349222009498065450172359175146160546588759130909806191472437406061139761976660052763133305666317768078831497794120598476950502802999364852805370662552536820405041181189353165997293665186185377079205357758709599414354380829681028090758416165568386570533287083112162211452252079048160440895447300105597224058635962827913009549562919554563272960146463187446419077221913585153043119006098930845370762489390563117745211060012437998284642422927114977724965698648054749613311608152352803192417521368624486140297917454224938844759738688471310035762087587115036743617084971399796529037898826767098297140994060194833198371604519370464761869139510406032652607328905370081978627484671454295099783894991684578720837130021304887535351454817728236246550490038893623587466658452659899100566338647711042697567826706466418133269965047157200672277787460397178190905236276228532105362517197089154551607303091778246867519136138481022454782069727727216159707470591729288716517429647650260355650036434520502186513942497115157935280368375980126596754874624043292401750255020365111099991198124371323599333957128238666821508418697028724644875775107249907091249903120908003958862716437026707921831075209552095855344023271455725314706912124179657947325863131580843488954370689484796528799392485519623114108928960947563409269095331779996932483899403757283712322653539340550024316127171121268898958120647678119931761811730416153944953583470049273260491741891201218157798097496994285400505977584945653093376456200737588898959407160828391084339492579603108627897483501800104766356500032526289764560636614206857937998437463101162058742053028107254945878975473275686445203281233246404392630763546195715223253372344749602838255753881515186781409323220285943933505988065036990998625269280657907481740242558575716611739825150860180732778701596891362645754501219188812910488849838392125956124979447643985053080271815223901773484727980621136905893875817081743354687891433092223638082888835258164414519773049403059074361935354599699387151939899786626304267722595011441322901690976440558559136865371566351404334416030297799884136980060465777098313779115861258347891519083481850831654170326536260867112446195552575966355703453423084513061872139201474723462149336839866750143472282298556094094524610402839885000025984908129979631362871276440012370367020713485985481449421269839059551343652716070809477250383590907146922546942140356963079913131081354961344481508896828185454084141780336983468458713890438658520018480585883364336583031129539741648620806916081027106811112717665735020058938819168068722271232174832716062586558930857504128988302050856316790840788807365727751370575924160207944920723343863412385528506348605274910746127704990699164373337290050130104932328310479151678883923952315575189714770370660659632680185868750966417280200587050830419295608568391995069087190397746314722353909499161400316435579079083827642100286170634745170427096587484495184056802488388034547413522538344732023848510553262865337534953575082442463631615975877547917365855828999703698871790180036318786742676651317312361647754841340281133741363174206357082835710728504076129991041371791491659969086414778797763500328169007152929308898846383923786311201842606766975479390429165026690537299352893940009428887096200606585986339468617502625311634419635026720639937057845809605462572749366234941489584169005379860651794441754303496613963324441658722755573356692139686866004829245052169293992664362415917503173495619269745164320331135702178691519119507433234381855605681127798868152168028160200182200848787920083446050478798739275333315833223701624107714166597894139932701729501364183421341352729849334678155048827644387854688941812501472582765576528524254653967837663611959683897894136104499326433359979954124452881393213611950501142441781457436875871786735204767255638698001457360966732893358460611205264331644850551523419447498323593194944692190746884969161040675613402595606080196650663795181636537279849336032453798510594398893594797140230394109933776664071826692806410091876595129953784948010140091379066927741957641450416808996181523744259845580016084746411642382103183838316432715984645874548286848547908105518880695323609172574379105454461757091408047382422261933706180023886573094994705502948473740559220866334297267447303903921204094955593329725582890637158139653253042270541022464008557678926195062040402716015466072728100960323370343298894103314254848632460051903246487863441514616022212122794933291943895852685436349794494761374102905256690062124875576430416380101845498353834942359637262719249857625582953188907200028175440335760227770771023454365607517745163229690315181785807874460648712714001554035551827706098027278032523992111565606226319299500094637920059742982851673594843125039431343198357680551160754553382885111247905540643746141743638248463638355150793407906059045201536371694785811654356954475940244587200294224590608667946635008584380234902416065469573029353894435154720464432718213630890871923662157043205107837998833642216781748884771132900571813051939198229544786034183549019635199872488922565796612184083735716537557645737228176577649437226190776278238369071385248420220018231501151988067987803938130755303656539088819470081605159828953552653708127698637937508323723510907449130232770509717522626081047160748122005123547545072746632113004311887564774536189327338206983398586150365059261786256131421917829123840213647662223203341014542106174237946933622564946521310360982933417105017779868832176415485761510099954398604226780488138106058692426316847358998362425678341464785376606159116639380646319578537430016483802235214113377129032662086432352289892867208829094828612968976508890236214141464539855483636799040219088824430482702136240543368391848135168864958944608794362238404711835051111576909166749225410984378647256385566736813062505159176380098737313544637524878114998206352430576068394143372589111853120637805808535695352278258147688597600709430280173239888189830095989445032738591335691781148102790206907177963775825643250735439321182413427467037499352404010677325704773404709430486240343417545094562488878650123778047922631779775966690926039278778861550993811676854658079822281381177949838459679669267986613304900319207941297513143128892202265285389496512288562121902448367279750512276936741238239910217632966153349976374403006704200055660924247053817003013017958983462534787563434134245606287392916185210810893862268902931420233677252198651300777409485706009117569431976545332741626089828561290901909544795891807510271305254815434374625677025662150494831691135940956164691968271914822922530745044001579933565157879538688890030875394838252843788257846599272934577831709443198937196826460472842235469912155329952286104677117329932439296819291886639075667339463019123987740689298916983320228452419170651444124077864195279002751490537508403907768472347110191741269058463842388233783201656909210836639777451551326210881680315653814379635646958854703536084657562838636997664520858072571932100473850616985031292916593558026643705472640295424940972103613766620917880890656994584028648281774619041128057725901934824012963954665616077606418291667163471624114460804491460104070239620791966678675484556378147872439397483480147027167601623491123384118321466626271340052303899495209432834449025621985485531997396203160321725099731566437964770389569249936990877223813990239566863883082595293697815620436548652298406446575663172566310537836591748352662132843740974490301322349586432023106432191785739720381093241773868824672689120628637750953098150785912223792155512955570643781841687850630039776444286513534189428011605358804542721240909744763307191957603023966745098778260355854927944117472311002363141355690465739821368842390976811871370982027197234294216028445153820123143792591999942200020209507213276677259068171418894260115142487240250855137320901369315901800575561880569861059627909722171939196937777726267434408904795386406715748633326995571012907200013952990255192674962894474875546292086017286220977533249470073192205642907708896141628341322979897263462168196307522612806723403491479937660042593835787671361949445711407589959270240294319822277583084186076666262923386848703643610732673490879621749417709990375383995613288281360558211560616108203008586517655559892356455904602006019273289387924573868132297214467206080638771700548971155620319179522532637995471049818831813042923709663619087141682983003869704955523519531694926767382540171849010532597377388995869158803365588852612303044033390849440399642332432061051018865311522693935887626317249445774231408543032248245390087143615331976631810311567314834915947629076115353474872134720865854970910306676630743782689657411687319032607738323607960100672956166839167319206060069392705601308486245174824722114991532651242522845544673560925872877615573969494079316280060769456140097205345357939864123480663510927839957003685248003085607382761216770855117322301351420041258847711013070887092869127878889032670858231824221852495578726132936871230846369463203999653900005089729351098131368931018666995009885971885503343588366790648363647724621660374762870019496543734809379604749608035904741207599520412986051883012985661765411254091210115561634594714337875862740203614181291080634902872091724154069613862856748153478918512090374297666098063178759228795466904822150971498187176072847298621087305324310102877741253011816848299515444044514675630734674299510571015400678012927549557449842467779733738741692927883359175524303799394098209846260120696629933395205358983703021821619832863122314624977879169365408120623746336514241711189489239058373790502086248186782158006915062338480082266819637145733055652282240098371829370909870048462598298198493657301091866919863341097984436321546145930767892468910435315074756152807249527372440890943283188946490578207905181096592887137516975892074881717611505886978575366360625553785074123380788263614978490812340472962765310425219817983105282567643501944719329130161469486460375869356511049368748422209081799082904484848513978025561604514223590055362965349047061661748437137096470506918415150960498654157196967398060419599257368519989870780473404231694365459238360864727990980777320889249019839117583789110465332390435004376556503671355539931428770019990127612749023727794006102232412212820046036536751831308251859531731447641035670578251436877283212633850285718906249632884528666015398460227518115206050000306558886234299139082376594546132442316585005064580435170844128840572114715195252878249576171346938698325574622163946478882854320318411894888252262749671553521497272382869594422778667421791590813795712322927875779990195411637893726733780019847696454007639073564268122373746620240622602933028290182140174174052793692186221878995595816764644183941615967315881722934275684538822253637144613587450347673707643057600511024319683462810595903932171617820469846598093154976725345079549863739434114442812617837222554162819654566190300725238419893846830255883408081023636778018451803421935877118201393779021923144472151827745558202841232835362964957831125176467858354161943540527066207104114873966694272467887419389919284796382638637776682047960472009978862199905373701618061711250858863267751514679324669422734769249222338908674401406172139318740601708737322429370051336081219640739136051493360416833155395286870048570899827202957039938260336646689473104629593352455011603777641457051685260329656043953286408290667690260489193720362436993379213908728173209194869160783773597321837856717008479396806999439115557958434420741996596260686744660258994064641663723165734223917191657163077607274457352938059748589692714992125035094734635165428981162654317478794864756044357226297348212074490733147182684155818929050580930560239403327490120351700967449348730597520895046635399148257422013635412289834491738491392573763579853141867041170735233857490868193268735253682517073304703216758788775140334778278840416922039603186104134979336250077381677354381640725981122606797850923439910465382435012636669399472290234425787176084683862947756298608765453084311827580474098107907799023744301443737329309342762073019164757751959818944708819065200268667423262006364626318424693796142529583523747473651519597026293389459894388716114270242238554230320353064069963048047349674052568201271723230134035690289417181154544103332241256080754485692338862296218171507303293002834138099784788823239762069180896329203438462904474601237112598733692271680706719535256513593967733290380394305299544252467483493612486295074486327994468412348059360055015837630529582491516385356329553070256490179096474881049682169677077382537808917886672455018070895728070990161452067816711107459852645597359335151120763124535299071574142630299063494935992497069064490766695779767062439031626288254777149641596092900992925230920240848118721359026806136930170061578685561580457047093866633133564659287282980284196894496700947191821204580100666077735969690968912471265831079069571763469279569038770266595569033034606842623381078815340201278097950482727996294835033835049856661855139671002593558765960523223679598315637045430268644881840583167830567103306134810545010021734563772008842867259261525905532600028902521274860495299372292828231595200211554200534706972551720826493029830378857950067567790902153302031052324848206563139776785791096777113207433517279621429911716676569655634605227069657987037810955287492570273746008625901292090117235619911202265396839787340074652946114073226781190727275110082007685074436705756292782082474144646889304020337589416861784565527635647660035794394949621267283223857330577373473608658098598121387542532649560565944725407646819825629609572064221102122957942952177614815379616336014510685030539082556348716572206295116528559033583271499659875553811112269776043942281542047353840191998976452606502589945140695393241953149827495628225220794087384589098279579958925185923798602553954191141873525156926454272625589364836224127853067472278122610413447278590679958459930388705339435111170839546746858216843534478398244076404609014983341181551955494086659334337037802462062627699623737546268078873885943820688679761055178149366191016905962229469482048275156331384693011581642864557214649280785874056817840692563586960515633186940417471641328191000497226116819363691915757619883119027484426217029099929021662377295185322608717326419860901278270512627792412158824933605911570370794983205377690967584891291191220407903502738748667985756227236695938895699539760415838778994006289861472226734904670927971886670345397701291921684419259722284209980382586020864192210154510004599984185085109224053504325280447497812634712514914589838705605734515775223816460523856399547207159935018757367755426451065322234989267857359027019222686526935222264335385349483101304460102141607774162426566598637750215714901884965704957037602101818389547265905009795174686615089828549647081165833898964914103077325551533416427602468865877886247313356096172286494567821270782987701696177453390663210617978935635931848587304493264082552484466497961778469690457908527147141046529839850855415222255091479867965792578804977441564568868861742606842324000919065741948606848817700244069385260118680067888326883444154095192273605342031256021185750221311299804677673193470438936459344890069005504311509772154961531488215221138169333869968225389854603441277356134249861739200934320996491519757046746488890139857643180804305163200981899627905730414869728138751724366603165143948348499029104960235330319900735267589124146134508381992010304465503763904471652575680711254312815914549159711457684565435158168951281920880730731621624082255183378270609162429316625023893668649444914758922327022336876739557968489278548004478347796708764988545595786774954103281434047233622759907954520572225768468771475037800473617880812483155596868581849831220330786923800266568591331455973730008638867192030763783687872557056607852806689155199071471341899542466954086547518152772052372039473192203696140478889754535098585953317854986080434367074708437270127347068534842148639955142243633325710179257402194327500243105371132331692142972330901870523787286303749951389413408477030060286909363686630427236256169467434806253425711747925471209187605805345476622959018271894059865735110027106131114424751696064752244499611935306415018461364523097739910474459108741291658384375649540044118976408244298211469968072343035362715368967165120427423823489279477422537309781286836179481257847878590126066162052586228872245290578532041869613663978975911956138929856231413172431120128507033702934629675851803152244312471483580078369326492191004146300998496103434236841819231883981638005122398399083126347810680565776525880056262341981205035133899445817260499909917109626937304440966831200106171219909611362004217344143066318448541431876993766067676811406842511925163622246276430459062744602362834000527928629783280909017480055916241549066107040686032249743408189919705906600476835466647402219861989611863717761974536962478403960221337881331907265735394457131835899079924532144354225945702365440550328133481605882330977372674608598937907329951729519315355148778798183023603733899258350521151646910621949250023546113411814146516809048951279312893326531222837509622851082301897531146675802801456491410459696434766926366609623699689732690411275805837732211356448048533662402505231047874328409589630703299003538491485114735925594464410386224372306628980290994004399395943662529366575624538517309615852604485384306564921406979298362812936848359042690160891780647139700741450132529605953671760010532789576323898616554954652674249075361432915521878651072177018124385371359707978706422553097307225200133378312719922652596560955638843791597481288481446359314423024209620677603821345870156452005480453002934229282138191107881936655536023723724845630532625863358629573404107929953535199891815679375190184353611461589526144738664193464080990939115038958889971609662542725285354799535279031596345864433146683464292748727784855099528493232071302838966591715797192489395327870584173773623809039636036680620686523567418251998166002015221122554362072207689768497861338222877297991344123279179921683207587016750518952915248358712830300985095699286307166577698512264328106141090734781884442326176517841064120938449483513116477206201286713009660982037144414559926338483928211301503333032749175438513504056536710807274794130816853120906652849626514483797084520982561959168245016674580838595871331368396024951741369197037581624739883713577527416948819619432145372093422052538107454345894419858704699268532472351507222941665501838077828043857582561525692943744114399728453226989267744175719539369115092761460077727451128569995743773074772031927592540885117116950847520886909314767254045563209472440420693533479156762173714654472932413207071925706864541659132409371142402148311850480312356805514463846812889808333580092007953967429036287241575637566872892934988714428654623582315817409632743774241094713581128131893908929855440902668963323591779163680470505440732813153955703125535614099366163567354010542677104735095309557790025063730928297108716813685957334278526614803629361720116594625785156107273230191901886032551381375120563607260568474046469029019205698798702380478969570312267265814194320472645009261126684563160385552395759174402975001786455184399903492777014126499411518308983782128083087582889573003818881435785855617907482720839415183345610062308038286712628695840007405917927631704653299283112513140315086452057368225518675905479508625302645525736120768215705560426812401346913357959516698864731316696777466303378931715661917414034250996801202516833981814205461068513119588185646147072515198291465229533200881053494875640820800071673597343350214937494436149024192197445229824734305133150856528737321191256451155122619952835142302271620358301594263375085883271955801747019852099564853389132225904742632629714724969457097119149561562215601130993927737564343436367308917397742933994420269055138170951264042148316580617833151784323082288905725102639694190830081024193614173576449517828142016722583767850359301689751149630896244178513437863844762399066968195001908331813695228904155181043592189622891119276515118423477140380751107949377005442926873104222861728255195447912601216735120858102712041021994680071059002586609784118420659643543371946042450983643739096611851528023213225339433220385259920924775844363471464454568349115280498386893305588832591087037974877554532375292331367641138777507193416835742686662917545468718915417904292195309176104840813371986027985089177263893303614187738489259681596881193437852773376922103249028235341491187930785573403994570918554248271334797724721271767013857813864353651277429277500720320289541257103032660844941958758214856238494213959622167270346991685287956525149829205675956593874162720107626628336801306543427674328568204366732555154202094715535093329290294330127841873903553223650535690795152938501286324033020682598912179754896846641172007233442393375334068804802626584369797344992578001170124843697715009706748385476179035949881669230785591887117148197530840479123945523612781779231118279883846394071834309091721328052964093318515836327290971699714564009543301442354283345667234016844453465052807542131695199181544353165741205806520170457710994276899734157150461531023690072837226998061514586599570249478558678715954920929254811318329581397207879087842990799115541959397146327953538245280772608762531094896406090999073117977106743814950662114792645118224456632346422833254239391187961708399251008523945359208207696482940060970807488701874528638600831673381095241895869205667345633603974617663139915286608244575131083557267103218278564434641521396698074400391186065400918729549028078490586870054950740609639030282488771785666677570617516948392052281727278811638858369030149103354406823359383109338868411409093178616974993106882251787292846141803370887476281843979652412528648380186406979766615877748509634009457713750810897060794034453165348563379230353591768854352088876053538698479226511339041760578273869641796761607758326007011939740067685550908819574910457766122687293373177142276547682656897841206995046252274709659621804563897009940974514941250093408402139143371135059042398215108554762948665509122772269950400041361733797892605741348234903571193896199285081736772666617728834619855428875069736676917067463809374409485808486108382004180922583394316930544051450092904902872602850571094667920280524500214583252526846556771543838383498222143675165359198109588530768872293381922993135701222561951583089008254768546897436755723754288308064888328739478269331696904796198339264829660289673571394472876054119574261866438027801978122820373810856250432410725241665354981381664489547635016220426235246596861182226548516800576792729868868923381808024193839821764268000016098770875565276382935077775610153081033345192646637157842580021610036406940285366487957081870409488167520107509357871849951923714593807323912698065318691625581629683745472627402539234670662099788396976812792332958071430012558246129072933752499373162450694570104455364206718957454422533959967288340113726537884484617248953692864289176051477084149058050359269079022452869439316743831047835350691930302926862587071320177160926827967019874572702693503476631110591011515040554059653574424804293987379845094732556225311645233946837086945977092231678504381679392700221754499924131045685701054322714497444128092495586155136693706393500192288531443191283108126068190414068868261635059166778563680362763280390773287567913326325643086949195161391080253295475112197050799831348297005786385581516757474636972407167133986808796706697520756934319044315621844685992502239640877746687467152125589560462686777721308161105699094445565125630134124281532084627361825514835650815391441918679191325535623958719106744440251677539855685474063247211423923223167532515444096646117086149025519305833851326868213133301649935380847057191299557972529331227903137953264697155589722611477504392141065119854197631574089976221583507150695459740010863886694045121166582440860757201461309136442532232984620869950484812031683698060717435611809362354142865862744482361632502276237070432001214684736137945600173954018669661301070358952822062293879175466654493530314704332817881369523343153379314423015591959350716441301499501310984952119874509243454984716814375457903013907122087333014995627701726768242352631898080987548625355428334410304720852078302176222752681914303507609706605777300406066149277318760338014237330762123031660828076370223459026042677480729411015824644135631955932851598446104852877127878830463837237085164794428637422520682442339906796436559724121949608444112311920168430576073060564730463077953154197497579597082457064474147978191227895172511784981729955626940026660633243791785298696155920802432892439185747694970053019772933274846858766092680676335870875278009381568786866671740064040057934924876423298017578458377808277558776889871178781683638578243065787482978037395654397917777576924738751502233464639879268258125715696692927681917505246710742507442404008954460076359938403414478396539662229449840790814398621112924625821818895680435241686400047917836069009799332439617345673509209102694362666078452584636883712665113780738533807367797986310101490124365530745937823278993353605292491110767696091073528966702184552216746366577738097941680203733507267700601817558099524468371839142025001444270906944797413170989968649914409292576875462397795195011854970533785550254123721874843971774429061748374816898890249294020847244133214289917300295785218837665398834423948468357413514011224155350031208224050472403898993337242444328898330195164974394877172042583725859281492469472174390691741270150977122630340870867287171895022976753410314904100558509456469889299367131273605500194501646106297060860815588808978831665307925754357832111262023454982513455778159345056295029430178291876449493084029573903877153089072866423206100878954713634931933201088601408883579206560613959722992160116073642949765697784577152651238498523373029906173443496676918448157573626426507872970270752407885490257234887504791030590457771141574014330666944154546636436059750203587746226443219004371442348355966062144948554994560772301961506259962715228750360479249763593998167153752651365103996790341307546580856994773862185397583598351786019175146930543819376186961888384897246538719276157018454912704524738963110696389622450364602764720610976703062305853281644986923642790497780175313916597319168529911640681345634755179164691369382974389350375527704412613897996554734762396607351915362980773846299203212850978522956143895428833770119272533751832031654912362367900350231941904096356413698027247039035579718993806792000836385037032397743112162005542261994094138271813902812457658530097225034125593888095171397076178016567968982740593402947857026031755150402941976271701710857652108154231680824624452335419137474536194349938828389965857316815965287579339411128218887340056521244476742479216177357980351226328425028623453123810347915915864030320249501967996031696293085103114015156663593807958862187666517316462733098517589969806979354868713714442409092820430783048272295623588978566051482290732412542168461496039545736361342696123705035152965777858963089039742368610209847401861287127659369578534330114253872601779273440300112006794863522411790507030190942864337951893685217942137863013414902928810924019176210020785768564581540305300726790661971978638464506841001567251574285922692968527206494186552620783237973869822168357773641659223810600090544837017744462943026912241943415984634784617029137398522759724897320540787604296195263973721221856972256990503536693041677527996608251826249953215720133486986361254428250134886894571169575138714964779894814180413774400621324038478180157044894185118352936193030189721517272083553624447751767984873100823885694387860962267374053451036624242267497377640154270650539774276799781746094436868580438939731251213485829541728683586489661078734549150425376688631488236795874863966024961386254347252429017404598720880687857460806746208537722867275700847755902465416980784224767647550157870620469783038532299968075243004212421196220018037456001287819128607578619161334542323027268768350370083808495116517704623669515807561396876013120206340288849778943183346267409053676326100911796183429481606946267385071800987105776077475959629521190064559418380347453073703606510299805279373978839872413927228334936852053955043507719808975394325877393040959769569469890391581073615065281361909802735507927216582910977852130367846197212379472935877994386379664122599891867269436296070081222116761530724817642859350272611729598841268711494213444341260207021986910662072459931602405313787918625470450481821591426056376280483074953379645406768013379113373197722039066394407798429990257472818179862115107644515255096870763113523475680221967653692570502494612839160496065821308505816899344181994767042767783046170227025809290118472282233325887218874128224640474149610210830650688541964993045958124675927347692982508590215447459159135914027076104222640754680748918700993725957722691543253590653478356187887891416114917743336947491301070081410595919281113446080460706133403518619598054552732292009627661417141903829459190404810807344247876100613847286638925636094850317029484879096333656677511100023732134230400114965575247113321450859537993373754521843995100278842221362448256208800336473430448806923040040221486707576095113221925014697912177624419255353199736496726950601298481460940270752154032627981553090298026898222110909821246433213422718890149340618393904230395675087409637556038878577959552752140588797224838687974196266660311416877762644979444658368814776868676703582797032272222780279587044292178996079435501160906361336187112103516230140112698915662316249457248937591431859180210804897230667131419319449619978357477241128782783811152140820440516412956514023454513323415506152103198947646220288839700312028489743502543386389584655673413545722500322898816592210077661179350850629762696234915036403712148168938679027085939268042661575301331076093614816332521663652706912550990148558329233816152071162761103443890211169854055348200113935939076751646257426062809698129694357112313468830117881883924404131509959232017064333372173504278522686479484014021183038785369745348073172929235940871984670583838311776290433196954445348580031052602856981182571352102473830775975323407757148416118906526096967245381960501245977050653942860207335842257837504753688772894930925056212769081963649214286616681025982678098686765335537256661513360798112423385077232216375957780145832098353883142836731103224251916286491987480586954087766619047089580893732186277954094673653607207180522737716145705544484854703148373193449086445843353322065938354872068790931550359803591073742484229357157448263300956734082588416701706994383268528253659572768105498235581115038635603806178995504065256378834279640039944375159041578355971335690629275736955852318997883321634719265298822025841193318754081404370829191305657459077043011490806029816844074332428798784175676945834903457153877635343627186971866710016441948756218724178090986846864260852014627385698997869611015616833666317553615135901610314015921942783185762595958515218679735389540204094469808576050117746770969845518295587848154369107170820685802373927815375663269396651636862207420535866768773047958357890420794472926435221058806713204699892523256918906335112780812214202741756064986624957456301053267857827634573910804108547108681497013450867801620777513641330696022306106399305083676184280580110788433788476321343168844310807750497080017285204469774159788143451826287991469716293494846635234313776336317201726577576292257266244546714114528221784209473051591968505652467105530464649346614147495339164112234186863690576369397768443607981893702670315251661944621280996045529877114345106998569757406704289867784290003991053835574054853134180302858991924655239090052463236238581005856911274277517655337338505220794074269038374341226956557525546925300280659255422723980225085909155162963777144769525643794102157831529680888453300351906184707493380960261906589793649392416733818629949202805782315191022796265538136241405451938673627784220261835561571560523624955885755003130518238660542986199901946609770969136319747779228693667514796465309530866766238901380713804827712887006452667566312668821567563257228634712817413579235883155637574366628970845148130457752632966712388695935144278010464030978079346344734909960391399723580471636241804551261407775416535207156737752401182573853216426985788313606739840916651010189122961099985885583791917660607678017936299788783569222001510604215537927335100883477552870526175072617218746748117596693565444202747435663957925357855892253851791160422978308614728980367632231241111501697587335160880497938434436793570699968378231598384941699011887252951882965305770902656638785681028444767201749963220628291655601079242121610936550660640608396750817751901529045607868185666613515892806421919681581211490752709052280730841703925245763416581291321733721252732679174822876305407016393058865868416612710951288351298974778111538588017058802411735199490940751645549001695924929785103177823912855668104500981440634635650015479133994311472500793165821165238851743628085243261428153435961887728591475468861563952423842858477163170680625757635288172878383869179956335987757316858602583128897101759924935220646029757432412066522900012236263660306444944068297339823276196893443196057051565349403575456748260805256388623133330515615281807287805249824975139434841512033196772135602645238874794771188633089820304169257150845008130280438929634834210818124515557696055395979982128806634243620889621376340871323330167969512031318990555362260575676717519818026169516971399888400086415622724891464412969562291872563171383499739615253751580282217461434411963882828429114417365802859198128520528736035599504222371368726464842047164431631375777612789901668340282835913815527263337212795103132083317880345710269412922673281604624358749205421738591235330920069344657130428767337080083568737827565204794869140369231156507533471077638033407476179934864577890831326011337482312497097813210587192739459837941795899697989150610771265616923578503345808666107873832801519580233999001561442700497285882344799636686506909626029288991193843791767467036494101093456103808781695724462774423323679645996321950407034491459868025279961831937265455772709500034806112581620639547107363458816347894036667624637316365453893617730378958838673573441207116406407800438693701869702479524962957250534787335258324813416558209843796328809485198909484684470902946918122632910090029154683185465018143784691700314642070610931430366357939782241858737230121054880836289980627855951277665900994785899828508644376127612636432772973944105172891658409568178812237774530295632978913670686048289536988072025440320489985190518395093262691261393809219665368255277245584540968297461537705146162432919192862437048428280640693247701971834178488635564288794885316059384535066453493934006487903822346848874529573611846049313315728752579357571998974947297646838927724899081537492539743505846402847774702559892243861036426866772308861606069555779492418166947136599296423211412187506591597619163192531671941444204783758016127888415613395546288050582532522972213480221174619904462812980711042485253579973085379284831037919998729893258376955611969808175779612296730169677483310383921255336229482342129453605749758522083593983912873998012864560671674071352873826110781331708460491465248319019797399267633410061245137662988807366546038808504041142824853362190445141843300670121792899050579259832631768977964709317438082654597872425530282312349033970922440191755658709768054441524394682585898451034495814029229558639974962070029054335947238524183855855915207584441405599130970022661200582560239340907615635258992819927026410772378802297567226662823810132862962624554465098949770984191027384187239084766965846058046604502654923619493093813731084285909223827251372909924846557136160414404053083784026695066441679010810529199150911091139886874302888596924411449696022429964258464895056487027251309165989012484462108063363445425351371370854351115950331969774682505198468002655157073411571432848792464874993868163626080893835500995783569764811107964187124727401777662193563649967810920017131369384930302955104677021764699709289422641225620486934353225083963708745748787063567740391366242136904266536710229366984274605104436942393390471863742476823591471446796649199793356953348135997849077300849389532574005652750626478375458810298204760493922065723467297066647842143601829159755574241995346851024976910578550128480286630978203726360609568211205224116684609531225636389372575058032410737359523656912357855401100880445419176026458074099594609917531931888272437038154375064067998730845789240685683886938249580355519323871100777282440903889437371240439904748349496586817467125109662737819590791842081038656845494731246260514918748643522734422574224928329395250782096993919087051301420331933751790712132270222680692427017879992210755667527351833807224076036439151200196753307349945472071553952592860323545382857628538176984945532914888242224391333415094198087400853661284042338897738833784154718773840493129938210327409776736475622808790133554407949130057421626457807138925563873812160669551191693906312136237591762638410518695057811939372650526487399742827562454470797745126274280060748194132816388440530309959731047630135902614299592353059776918549267849726384878345981896720243070706219920162740561419937148322325297999477220042377780232372076910897613453882578689985999572774607012615793953436240739527089811935712538102013614330100343173912862093171476191012833535348882328479822198909546629993143453427997499451475281967442981091161105316896664384950557398009844972897869948211349495199663376011424520962893199225785486959267072558309469983699066128976067778742820735283434957027608599897271992560849538244923440535888019263756290912029715110877872241114672278455276065471994941219939485820144327509368376046822098956124738775232541720677066422691446471271133219172777739495105202436379888894402659773834440310040943610808440262443926449281601827616780071404011957877822701180809070016171641943195927403494035721227868220846885655114601533074617405321678177232489082732551867712031738485524939460563421546007788959687382664520970637987128193722833900433728385104579614062524504435997208247241479997451698768852341794408567762198893654507983530858809680202446512083471530804275362656434808504350188269322548451737445990432213066969238584830365211242296911596191063661900296295184589801489187022854472742577866864611892009569475195519886646851605368477737220875336878874890771209653472240241036243519870101745468738347504789728266433789645873540396225119585126776732504209845918134831230217981001389197721999555223036908815146710442411406357414305877526243043688454700581189667204057183394743577743304049210682422713213161901900248382060412080406842463425882071925434162681458630662787137815823580227172682889957870413302100407924518956051862109437929172922393664989554074471758283704240730603751422002097554385427390978753059532953527474270837591495452134240797423386574765367422418866106082423878833479295422157175003870006569474508348741811827082769442652072243563215110411791092135431066799990509307335902942842137769210478491371087029643354951562741916041276614782351652432097323723881789953182698103948505028754771287017547069726318762108247091104842258218696335724776886967408937184488732699730347714363637720869627179990006895510564413916444359673915389029990825559270971665677903249966017132259163319296227742855313494553658617157052733626507604150265262686777941350161325573256103876444662575851367982222438695868099128295082209358090399825590500815860225952401513544498330841627528005515490324337001682732014128147017214382207518056771896057987705708137679359351084416587596698647920697773759361300784364185913983973100422909351620632329978312605493802294464818406191435609352043242666763872541156884191739706097382954854789600536356404499801448073413601413283360221900172074158284052318883153605084562906135711263010831068348691192302710299114590566066039200622883784789673102318373591789897119982214584913047136613668886102598816962898563220853509703953556594201780920422530927976960868193453335437482569857629172627488369699138651613822960130541129728505401152886878510327720265994677972459447810297624601859775446324827508214987619136249031303468384195376215618522485429240224885115647725410949622808561315316663359479274282796098632291627075766120990809666399472015762316278935510194877668929507271736078101164242113025867887801256544812617515971303400328020256768157836716057193231731533741986455594852194509916666123433548458688149391626931374412736956922848748206710469929570871141565551696772993478989899458995079188705361173903170031335076800700442224996288274600176794119053640573583584831353089863245140416113671654163616259181421945963886244932257926163631676687886365077608679933121137729621276570504940900732730485976319647859903618672169835053078154325096654050772979763825389347789061706323642084634348876627887328920076616261735299108880514374099921162288002782430242136268659330845017075159154053158603065507801222349210041287579522543977669324469195289272896738725741982270702785474193935147680072735230650303628743260204640131568748724702590381473738791287648181046572910239528123751758444688136888894421046632412020263417412450109964779211067742937315453541009019244532355930068622991674234039782755626183129221538494677147963324788537217689303425924014137505066791850488528699204114217248809300488286671470459485228170959762083086555249852025946902736193121113815367034047065375898421079255056204309209068956471631034451496462052598783393061903106903799122577240873304352105046794727397314410644419068954117715149025035168493545955401873681916810213887651080621202707272900100574752236319227606197376887026666566837632692598650107420326361939468501930797561944372775069943602173231043629939114660207910909816302680745343515077281590654911363155235757122451961579618898101738860642438797928876119366229176203164780604534069339719960320317871098480620164512456226852272840231004068922402080687568501283252367211636390436333307931254876406263287746007394820296947500976039914573655773917434294902126731047114117437949782562293487112224426257196414612902305505004802992592730699597778888710157992662685582252954047429083774524395006342581461151803657272388480794827878997969655196282854378038374477999940212203570654917506048488367782863629484727373359700084724907964509724513121863699992751211579994855075324548487992062770291854990104839335760444397747085861131951223602353341285027059436811149040138113953789158863214840805797638350543105963995307298563417883432027024345213732890123102982976568211249808785250085577153463993689534925134792464479346104221615672968923114238930880675652654989441014045541952537710703807489140607840008971952885748594366033695767273626682343131005042856294947381077225965495446723870660681209085340742675147553427292380459923617198021147825655166835174524501622880777156847060057209320349827877911361170876497522370175596273788880091051611622084269954840007595158208409908991251519150871591004723727818137839151941962892570257633296765438861973846739466126801711618108880223145086771714139654725760761524563659429258084050118846538284112096544760916404832926009020115114923777961277491787316153442417998585923808184427077680541927553604807707476469129959071411032651177207365397663492573088368950068412766894553970443760080206790459445888915958531385541215900889358359116613913294104338700133292154151479729039781696661912746314774119300366290426047363161279152229959506912289244970781960765329130712019082732807775310660281614069374941054073315538757293201364861165833473148974513954819491260708480104344559944540368411952750730397828900244547250577854886701313748807429127185184478865789668405152680655896736674133787706974687103566689806526277004784692405774123354337421856488583796721153427627422629945105640533517242443394402068243794572832182039742352722632504093414374359666353664853072885676488351579042607985690724902848212856304289431835275046743183978831159618172686098373794204007121612541509873193374045432705468143758027479660155288111687227414953890045898487616221059940291444066216184263642548490216251017475479990365731640086142200128277494377425074181955362542296816043816894491875752191716871542275040524004136304117177518259568595340570584204664585884970525883205081061926006177394710651858751644868981873404878401303425916115988640314681740019170402631786231215505859060835962105717130757413902329823364673872473995236849225658916312889975663851061858955164074865713223800220449108321691813543988980671426591644577369379807612582786629900393356551741392595314279401779990098738929657208449146405118474741220459242448426138503122122692473385467248550173719914558543448010454252587343867792519528370873559901739771789670363663706295451435151495456112915523973683715620803693980403149533353243355688829492959974193227864800267289370567512931782963538502527947577883427031789983094359590319356051534132017161326647019094986588129524189371522431902074460003365893859279598695987925532169433898116479647973793410401077081007280791000615870624835469001156471674937726677971867497640590738953062376865550736739480049962371326932170965585805762302048125085248583561252654679928251259759742679794206950590912669397626402202300511674742794122228951611426106418877406096894644218866638525095726303385208032213444199775158360856724981631984701312332231330003176044184192480857992238996209095382889325059934716890154216387728410392125876564853697101340547956545497086124997844151132775264535169151121366911391853920603005761877968743614565364055715836188597911816775181028318561263704033178972904489693395085949370730941664853512946272601602042828714795547303185950877995349706051513792009032867492545047983251576976373387815731168177723939290729485092186771188202346506200181324143519290920210714862429568352310313396334229537793455848556181932182494492576201228115063922994088050465385703346727363692371004346092576184925515596998220998033592706368670923829371501224697974729177734258726745716220998076268987376280992003714839243571817712730573104059163570958735857160179527789923091663462048383820473011591275736417512372760026710534498576691753704962717598791225060531936270893771711914898805488469499650226453884650820167952143543039941385440192904951982915182965771357628427809753278763225876618108696862009638137948875719639585568266350907920439902115609328142546184388950613046367567870415935694796101021282932680621717211024263075563495556185230434378007616226401237592214518765988990741599659011573657731461355257297718572275771522995030932389835233979328715139858476587332391819445484830276654963768214228958358923899810853115507891374161397200052934204553806751778797423087268409212901066811075680053925293674360080303269809761852567177664975307720643606866657589438991352184385923619787013783337470584006373155810368660294990224272901984776759937604173031921846249879424823134139452804355680096007091930483458110483932626459227289169424670035402411958687288692954208134595174420355635387307645842993512388459319490455753493165499027501970349410528034406271312971154182119418549370579445553607980883270847520719196677521761398641942985221187846862627133047059787925737811999796232922173410290487176017012785814034567278979187308883769709705723212263651400365503081164888908672271946548819534036553734503562101690320237687830100612512242825077165493684010341036951756432759014076291523850291327615043962550422328408336387289537021718137220397220342610657832806687061561729226637948173640423072766616560004206012709816531305311082639554131587871100999899488383007809813249176722455061232875374346281966155897161029357308471228338469313268835078448317226820521849396142619529714321439666744567301026268885586701622171793156148337485378153492563254736543541422737391374684503979359323645283357920320541208908844695713184676818638063432479524959961825900723228906283432311227580423908314225478184944499453104763955028137398792386626949145719600429538402036803596235711254122164486273872235323738768729208599198159691801038990476557015171841737345368704540092037848399100342924732781526423077878396133467072685763632122860569335429810598304193356847479010493375531664038939912637090705578859711573598949226304530090602472987479699530337480503097040344384141036295653422952539807158472726090341634472515194291518630644929846327890785157152054588261892333249400537960766048763773567752839291674818270279526460500148230492042825765782542969733253333792770327447208486149969171453578423337044790966773499608538420987206551399281759085436040615955958730138946690848501978119710528119677485226121638302637013820069828392411782422250956373441928252918861949710950304293283326551431454891086438650052639638420469300659782445600129635474625675757473524893555691818640901015066826062009021584099878431301567672386265123179893128481999188258026920900902058294340150329469074310866239173046209995716610762233354718236309997406773985068253202813205052448549298985276329250227454190182444001388893078137566017694770189222879797849171509793284512535371844811199724163402718126683083893148184598318926042988095888041316963128474803928536854933777636023776090204926003513804129835946847391429375938608402608449263824903022583184655292090731288571279524258741633674136328287694045669845494711193269076815671513070530554504837638225751970403031315936121842039384302969594673699727150117208286001405338869286943120305845258155790195513368684057380686704920032249745101713395832245025010400980584383238164959310022030945318277047997515541294176339401394582013829671508723720404815636636520835100163121518694320072791112972772133875004972562437275846904682810081013718277591875498038307774006775908500275931011902153967984322294656065458582748101805019740010010844128936276309798343164495420935342087107476575494752246531848107648991716825958017975167773018115725885600615020560599943042813235769448920559206416264256604493117516285148786253436548481891024280076255860749945956361150553011670021454005860218113536554856651341441951547598444549983239138909399126562415775213829265218110773655607088406097724379419728464327715759453002664737846590619188020483963340753959500269968882205493776564351132525876197427491377272770772781713325665220176766549932670440189472297948758709659248202140026951281582084555633053188963668614485144603322324966894643201374486448696600783146323885473711480998487549720860489779846056127562037525551447590600921335628336278031392151665078396108485928744485363333845858896445472473477177401617732451508651735263109974057488888695286835298132244056880639424055440574018290259962506169502482988813578727896096488652905685427416181646111513125666224619431901875961121286416341556638081468235701582857191606007015040934480683405751692195794131097346447882617353161557438067560613198363200995722842919919696319242278249917235690425133361768973762050566999958776428027192571868643410779596182200220086730038658974357262772007554980971605921132092339455576881129170442597586070098466591233771753766180953795313863988583750401181670635683935998514983409136760426799035163193794580158823404675952598086101307228304397622608985140248747722006877144688741686913614668346036469952546639983166173778553135128521460851255648345896413878363384712739663382058109622973733330108838640400152058289585362513401892640751998900695826256391123211312418277125379927768958457200309127109347578131821940236003117705138569933645473078964953394362632845810774572842565385735338120141001596644050944454305837971264153187316215444906305889556008459175380907722247538191682452679197627875306395740977037117535478064116326396326960202142366421271452389689567203106196981332760751900274638036650687267126563939355613089969951390944480969769266952323370334463274378183887805805109292801266305835941467366258492099137119318401389293149831909875749167932164044895393706714442386008426039661984200420524268070642660651043250260359739610864419102800304309040410023321054965609204430891599912687712630617710686864435299712292055729447016741498171230669478697600617732997129064238164218233739338721364098340750148675565342975186293946144342052333882858826647702727343281291871019669195235119244603069021197393932210690758656375078998743240162964076972767434272220109788472843926629408512712549426094379414720759717493326765682384373373134182632609811960503986979170603336802849844515906363998640797022767015346136182355379732086615847491278498956760429710614766173293241019060848759671350783741810276153708673177678791918084860878544419283059291266571040454271491437261918524037009950261468206749506428751693342237609313639702620508844633297303502190733320852686244018668411215058422395602919077933209316742369124087046438359202524741954791237745327994735252725915482310688953776384094739926539696719077282204283471103506809274841955985218407308886772320538299742673973700024717491530328905535266009526351096623103843853725400534532088747785985417590121047212717873629213804754801823778015096749581908175577388706711824959249167995536877158345697495732100599716923729238467454902003629929290236724213736494221358751223953756452510200881722375590190062615155299150360392390909924500191305314331319754289490688655694277825381190118434965781986451732270577312966919806535871211414661874016804728867163455939401348016985777861071381357213278042029634265457471616125103829087890601212924806279253059405653766231776151170861313140809967966799464440010686576209401512701401140913912924145073118251233530943558217733239338470848485492381469834107375968638644766859011004511654856130035459232881281543937252633462337646211893687587485412628275154800464505153179855010820498613639164373073606312890524143897847139330803711077503811871099528973044237358558398104581459375673434073251058092173371008054254178759943757277343196795003527830162708998845925917239339796926611476952502963129485242086335420035597201817474718131123179329315594174233773069120068581862753389538970907461732191248272916403055417660471626932206780047933392191499158898920449971597680197467233962098083060349916049065243128188617179780598869932223203314582270606200513080758197366026362334108245824907558536622665058598633277983596533860122669480851408423032582377515579271540386396184132475327756282783909055547473375471126003361140163931512908003723369558503431365341789910943012171404543111466407144702345083294037211515857524585380629137969353296515549913695778586754180452906065472495233786426544968719507118756996710836150170821764331364105506945528257244827963538771583432405743553484884500791524702065066285965493800444392808392866312173719085149262549802744135379668991101614878611941267699728787721332981474420115294728296031815273773120001638898472658241650496171544784798458841685511658379196699877327526034604576654269892972873159876602871659062149724850265027690693650128454480542514157919942614266255337611638844050417317374275073103401465144306645794128246059808563496221830994780297244613394080810610959502677977469048024523182510287787140688544845236044200962335428428366003277374864394433842850165636172848921246720893208130502256111801276663565059382728091830104958449883230978186633257198777779172230269604511224191203169360502724024078435888506198524316778427284373356111211884539366249608488880270280501890556613251828924961050132230099098814893750901655642302274568245630868790708338175688514004743843441860742660430690557685841512056041501680076935715341896250430607085285826984030085788180136249176500452863332585556542433602664593280463101630476058837866407164154419377041353988773550523587896278165026634009428585935721614131308677323397712108928158646972171486326724611043056354350339656145558830430918722263452865659578948946341916114961612429759904157148889595095011651339447814654702990692215511649309912201277712136727461406439748863708127057689849240849538557659820992451646583190263409589944990542644966717098115275455167003312577177129932144203936051788336354650577464568038818738021661051822833885095668533572628376778486767660081753955386624996365101148811703214417872112950676200629852031128987683918582191676463758007103101922449549223219498821683344812593629071214208725893842785234102827849975491653873424012283549113346420572377455270159825999268750071528775431984663094195469174739345431814715533609163162493411935168901821341893077675077621873887635633144508330534125681684589049035369833908877298128700383082179619380995440221145675162450559432810091488392884665533514122667985748992801549426512933168858293917978501216868791195422872102945572952055424367586655486399498354773052003736855226777661902720059449434989277323678942081273148188168116630447220292886829215892549095163425972533417887173194889278142572246471056641754164112915260687855689785535877388251725546434261800451853913770393385146793597928797277348101610883080154146212733142455038378055681705874408398365657485095600916851010689203865109836166638502950581536104065910814857051202725787828315964975413915589961577626587618983214332536329511380131556706997931543705809873552973171345545129167284865591076369738121990197646307873403438166186025868429134091375291022011871373244620876959752104294280496545119185894944029758335792023107595336126855813893603366720508816973434145790222334612013263170966508472405897485584132948400597762874155190960823113714394078157186938815136202615398196894910426203148671505177702864429749512159921950995538319570059419451280570522259678138074503845366264367378331266215233547396093752937589754877376132662056736307256217311759879863043696472765560745050336978480211706763477905360311264739752752758968037939202709064371367514416808258582358551272221436616805092489115816060844006391784967331473909375844112858688290278744299846965665782763369460713857673184896079223308805404926508767937649810751600160614184847964506217686089428915259000049710262117669330440162261690251435783186001470864998936698534779936037710025554785532895705025501623219332051076783273160161084434919066508131310807365123381756544338113971776604022327319289425653919523953252554842296282793921145860313073171457110409022187100456481736372448032939279195783170600754187635863509833731820974985443918279823661778558921659741308582024036859501458529899907828969127817506640037870840522632983775442450218679244725144830167001664656120509407845898287773113465020097981083985755131038718011463835607217539591274455712243936111625959856244384363737072046194453184710942063686991223167070767238363764636998555963460851057057586771899835970191552123733670178757198751117439114045339701998132917276565073044850901958188232495435571267734721739316851673177794893660052204721635412082725661512188098430871953918667835170364365150406259000839512189976929026322458332063198789109199320057324958947684951150893074964315593861029164360688892348216683732421335665892086549226373453169271953635450421180050498693544669994383928396055715841099539558791092165866211597542159393982568183075781073385024061354299047808731493428526236776511589045641374060608411354898930139933397422859705909224679379397054615171794068257275383701005341011873310701079921024735704584702203589261605762471108469712867506715409178077223132244539996872990641409220964740367503526690926513408637369128507774849999389505477495719521568944188645024967864690834451468766903606016549051520208511271977057011248743718907053167810901650044488457710612566595091646306379753395303198639293297599195351194561759196242043811367517359987187979983919367897722828180419274940270686221418476970170126627499231204499337490112936133454332659690083664677785080735169162028352599480344823613302227832087301705929630326945931281828760181289397744122730796642108671446336841811516846299998661612142518021055957804453258992263020139043571942210521502933669989961447185241321629654635404665120208581696258037484886029451089859110129737907798416896141232209775028734388681368807753925997353262922072081861899342609517869719647287422099380788366863615312812500778644321349513339665200276279146918548825984972430104756356486096042677359987267994920982212449369599786424434479372794033966369072624461920417931938371425554128778118631184242490590427722258568108909312076383892363548823833736367409327482530314928819495270356044692631257192036366128024715230989553255079662172096512071380639862329997655402066659740861491694486034424518771604555712655989000409391941190808736417328534239841088090122799670698176798151374534270063898104796049866996156723351381224998910481741221086519918694972172314784682941467068842961274955596141845793777648404634580217585853864881882902089562496210728061173655507843844845973863124112267344848630992689331563092328015829260446353920628116193119322072624289205019229048322279376400180756888114780152644783674435844211098543608710484508749407630764941456145534787416082233994487671597375439490238332979642604529845148705823127849749936315616821323803441652319074168212768836913007538387061471737408342738911419968861806701548488815743599177958879184807037592803930867816897675290838097295551183836269064600068173209949101528831846263147404780441295498160697776178685715054263072572765348146223688211393814187026620338945246069670126450344056762927655016833102164758425122053587567265907458158829400240395980862728661500313518213411455308854715206008290004848633868060054386703633652538751430374808745834152227302459772119815638201020079593320954145840869233925021436294824499351192081823609194677258964271748216503037719753059282110850253190143449077554803076146928035902343103949055590062957580067896102246728898113544262796185350896201631940606251553236331273229785318918119318754280183332683859750168008695285110317745679092831748262259186956020663951863567668496890854328019370717930183979090542642357016014529416423780243253981733665835273733931900236018855463415999068332244339525426059073887980772167756625888539505849407387264800067129195975357974071250008721013377683264683791752488122815586080528109531093397824250013000272009445136821612307817714136968449903324897857181182849286317853560355703394101294261484168049802790895964312536175577235453119117580836661681911726605945914852072153958439373435943661624967013745814163618457508573034767444869703832669905342618273888358120016975454063751120923290017491761274207150572656130240716681271456790091110750573630666344845806579710222748878626537378204072047096231550621420465205248665726478054788278357068286815905888141499857121440474409119492665541480429355655128881977086477606638353781396468098173660750085811369652011500262524654741708918290559242411755878900136239894943911585132329043452051029910850638270975913989747281471250517219432536252098205533779405407524192568963872623194123280131317166398161237276605258685376821695574853346393495613916584263315954954732705813283260978866551490584750959644592379082669410938120810525942668389467202713555569338541435913051345734645193655661253271437938616486228672213438244239773761847883739349294462267826632114986926945500383979952944765568398070029777340396745318659529717113323750363255717440430051127415426833733111066486500027495117603278999908494692984985558126544549165058977823916659297246027402423553260362331343005820224278064043098165468824175019375647683064306420967020491628669572029715940200481306701336480472466488064617413239241193437975660127422257483238953203940062932102944255376699440448869581212708863991450974656592471176312118767353736200796474062710214960310935761864441840911290311715904829716187827410676244959365885674659534385789628300682731741676691869363782612018757354462020907666490755225696420952898110713965158366864238933683079241016326743459521964068198251168617257962630770719259585576102663221467269609826187788350573990102325317351193124227056470177131572518350080947028943268823622560319450678792465716242923306208328456349054950875735536364272014271842319520321607719852648311634362284849437609543158801932245669981811185865629262626496480221726845641742407961800452617736975692954387535155284077257271563301057147509426727708913445241544028877639571217230962023815302413799247223725439536654960446633386117176223775507315280008621376934233908663882518846855122607947421793585041013925885319529006000173653852780840365072574200240644282601809041482679009891270307069460348201236236442747152708220443487152666796844924912806035379888849468303664311847330520294241137435378426734843830552554403658143242075834764373048915122169340446720635325378268592613414753861798337473997733838679284858687208145883722898122630239179688534240328648170627206363123229129647039013529052811340740704758066343324298275498389512950148205224063037431396276069923314803351096547254079407492115503514922985361595736917009445725114268220306600669849926122834427829286460693620328155626574859295094210569935701546266866414135230488494194432689855533175861425671972267394098482994599730780950132641946540678494454700276072648289276745427281869059745054600590973958149767541096243814184225180451016282898056211929777248373947748609689400003243943799285139960517731786449430293502261688889912363217731986893864652094946294177772383410318689597344360862524749774578840098720695870513924769428196642278942008963882004314026065125462273445819602257007334452336857441161796091945806962072729365265800485749294454191384466934057564958005412203653897271574005252877121801606515575534189403146487982038939271063328202218994841404590815437850055303892629974854066416717362063543574273177046980366702767076897941638717334135861040681321173181847888116280402514407323597093105560551507734374228746362631744402063765499160885048708957297853377991710237113354205975224668926738056618147663191472095761813298871762420385655972584252879891472732936372407258921370003454481557912288191384910901797685626192183403895342884681950238404995638504575388738380533671052454999244469933787761151408937103891624672373741007561219087815103478393006998959808141837420882047104879120631112401786583905152950049166443207684085876037780128286514311745333576869129149617338644180439232818394972356696619250342807480973649608020834860332588510629142646987075070412346300987968366577346996054791693821211741103562146997710119860323209503399211016286468657501902375835990678096826128021106979953017081452782021388443372815052008090839046130485787474969614139406068234092312442150934440767017572053107180093676927320136067230063607187555400483984240538886981989979069585565199780625935238035815734424998663376487341424573693148290417220643750659475466069886460505683022952874787001684697354565949530418129607743533974560554144878814631555350379913007710924171901630876770662903977084225308617211294893230255826936719824563583793986062304076408485788867355507395088180197290314230093576550806012924264050045908497923691401846009599041730387604547081513641345131217880241148655215623661337096091115082837165986430063426873954280947155227540720970621299782053262134874546044752702451526554036808725367124356873367260693727438207669143609221894387387314163472029204296282616500303743719955963005944071469551127257017199064468012155875695455891266637583664438271554082246876330987362372145653285126739482080530699316638872662010188458047600100260033379807371147988861150177255251140984403312611881782959337368021526814141813173659901355509135743795106888440441767734760130524409154240217840864892196519200822256484003084484415102768684941572882886704393491026583657459234528509424277144156994649755955493537823028245287554929626950918173689993532842485512237763009183342204775115951673584794980969024871044484567222759264661231553036537557413383843297898712850572088407103956505073961893837154293337986172925908126899508012342668131507759421501122243090323649307610387574120105551943919305552787833174056636669852092092658791265418907711469565245221658261743013591759193200005108624748638753452994724572849923016105599120460480039477197911877740175888291722881307277506161008729392832725961852023997024394871038190565210614241053428288399697241815092679076442757048088201052889717568604262590598381615479403865093826829655746619800740488163277213949675653736506346944802979739185633666306855005050178269315483373111434772355074402615023496808890279031455553809315936645342483044668056804122173720895680802071656170708757955576339698437291152639858053522032063463619156677791239424209082049403658548403122835013613568374598489294219347952308220578343821653768841855376651390547604763190426672527364070160478572710906146816351402010199047971776053309218071504038969491011958426885583324665496103595961032897300888944731580514952951024602829639108804296724003195423126869195144924129038358903444580738226398131481612939500928152157808114962813322513603959406535302769325327966035789678701088967799380068118891749777857238711258538724251852376230825910998371624228567721810997965994710414444329112426682562282216552482442759044828797225367583644943408304778614117426142976018982678324965238246942080812279211591386700985675979330708718978623026800617072338562406748184550517244506622463336207430917428010926153314426231486536946178349105188248414543514204786242287715581215520900555728276713935790948711263965384568015091466486916570193675797948158779982594573669232785649416989701101740989954526479247686235208681256843196444799364330244396955603623773734523514273113765107223795100754685538495109952050349386131536057571486947154914624309091672500482356011785366632369962653171302518260747195828755243481482350624367308053414138769647554224421476891452244313180314311167329202715511433889223437062678766703259066455028777204911681529141671195785971115345430535302721125225342446415262697918926984255984232311899841536337096278897317522359747389452677988926172499144180811363249500293400813116777249949033285076387904729503268603395312381060797580484196866616218695424904871576014295159251171132886395698847653942679667857208954398738691691742951782439086207988058137794765169555325561478075881629479721302559122078917645485367945498590376430147173316928331932296794353207860712734034433108346506484117741631450307447248746575559875878124345586268482307084455642666398323857244638268221367621059539948408756369021426998487973422344577665935254878122521977872593726802829490616562593621886489811021551333002857886382339042417673074905030137651951402961253067763062036969332075166025721759627419318999579476873745065305620389606563179452192984375387587248028024485094276507587684628709700062706371283520488952415705766579020130410975666206895200640005992086209391751521179664223201856501762414854057085017591867079277975611048672597117261163421433267258184392342203741275344134100725768990163441524590342515679845174805330862459047945971625225292397471451198702889741718920824592810894915950490407463617045413346944034129239962796144860398374939051735015577007371160347755454982211165252670122458795815893375160351419029847436518763458332358539227212397092291418562145729510771977724216540703355219724122868442126356656862229694636157316420922511103286927589665231564043708345099544860720128527812394419195145094514761521159958104435186847989699605915872581764147394042236520831818243374035233024163679017555466352811282927761766635954454523270984493780203360721146968424486410066892151579312978003991872221879360139153631429623617546244156321081188499843854519025395703672134008820987113170104319970912920527464259965851595311432731206331328175996596280938230666165745623090996777576297058942736230968762108531155899905579432720887373366439793210658336006469520666984663703346176709634330912214943131284902082905994239673696103499587146344528801588715806297053622705210913929946309470427232005753696226608374505407000880480156537326866399662429241606410511827927558601721535718306991172895075395843793176899180162400758806466525416201013714936666631001010408971810879079760393321693004573545975790821725884679434346571777964652234650210217527875614259541071788349062567851409827003021349588148939935424978961724380476685903811437049852977350855499734483092590575098873109515910500604128279817702967596771055678633318247910739764619300818287779103043945272916907887355548646863332977175704786385893080532680782449125636077706400863667642213686318805494782366997826414098087177453594421800930304022656821023452043330705745491321189541493054050139988457717811322341108510081476715754344758216166641752791268207695577378739126238361592494828331360932564712746418321746712365847949029555138345598221043481552026143809796486425651198295522531280280497187085520675886777260086208843982052996088619883519562111533521769458599615122451463968197813598815225887702412849719938737541533590782046028226199722538903572296336234529587970109496524488356269180752802136064917750167099945633434384041491588894018773489039815849334571372287514075461785983992106836799801510324728440382864847212626310901486956756881553793448150371368492050587801603605436867538916198897653440997546163641093663725316899724258229120279527149366686768573647192821647798976134998398907078121140150816990442267813722054982282471642031660113435183236723143081583410691623576087655586027368216397497825065348453366584103010221741276703566082785627062606586195463257837880681440142893044408625705664161966143751649866028417421924118980338307424892506883817016044381859451988945047249789398278339657885919501655731212461677618047281403072834020186311769748711200761852085595735223374381990659966719917768597648427182891263860513514485212917508485630646238116574829978957140504954724746390263203220164963806807126990951101459788616157873830508007167180468313357747698518870706910686964048455597777075858945376296396357758260613603489261799419159656961202247267079026262064299527089964993691970304127300527634101066600043320286192269086647471032417090236100863611082665979624289354694483884475585739578146437736153517463842243430477713479124240699712669889357752428672297844658901629100714917690863909106009742473557979828199716096384948953939416732185797326037700035465464645707479568970229838846953371917623975409683321753586657653862963285926458746100733294597254261168741079350022084523320812262025787950917981201781996736786161592960336627328001776869719682399356228276850243988522755184290827572110024480167729023170130279344514476455396510489917358961966358424641980140270340703237915953405505359351844748923506317748787568053478623017155123022155693520150924617583297801676942374682738163633504982458751167507522606228219131665849088134804577302400800559393881741334698341065135965265660840146162535745856564487133676082691757696562202467337117257362051065247790608159285406500571513869003625086579183866501199881801373824610441166498096633273334083287682374811460438369697967169417130331648448137292191132245462337600613975288343107455921494573185204744341117128879359817290995591545576592583518660221164040148924432650495715200392278082775161714193516080400923614463341672029325528760239648497659011356916918048127768224619897920933034640669001167366351091557244867967004939190789776196005889447759277765306427386302755801202748342022858334204476117142353413676379544475406808230380363296831448354673364196093064612519779795765406252551599413684023777569934862354578562121587238425298197611987534334605557961795049473458849004850626523019305793932288913464257387409482729748282298716652399057299569807008383937320763142747751735526533456499093463223522738974730608501687757469510703198262739968542578720871382728643834373094522970921445506758815812931502343336855100937634893505880241020613156492701576527932280681931470518760575205288906855905012917513418182186363319811943259270429850606240808412876948703497675126544774115864158608238461945084701139470723963789239613533255325492991128097955303961347780248682973341831140133775404752747052651192817090128007848921162235706757537868003624676622393394141360838729051301099368492171619256739394629206658529618276947491973484867959027157365758397117839740445715601734371962591364944318981408425717060805129257004775225992598754250826344385564265476688264606145185246929902425466501294517115193533652054208988257431658583941328509787661357155380251670998381967301541745423952441099136031737257370660421449229714363422327020400515956881336199201555915263553088194435950822919434116961135268217566154930261681217731312524417204275780415339195648663299024906040435393743145971072014671373767176103961534000094774744814313246235641449947048899714370205406609054870588957776506344418125873059191313013075583135009014429799689976731442782679641489239774983900579896930601650955495137713757123223280141065179586623718028479565770128083418379873130517283585134944179925897525271333743712003428788929072576418931991451366198806800668904215142642593235771930008320976067825375464703449398281300564980644493569792088557185623204813704870008071734536239781550370211525648922408906997276967967932371229717373002628810265254325994230163412421272743035003269218840003264049903338567538485214444682177917818276738302477179326168533680976598341948060697029178004935472888469919966130685406142920000934038203490875051166678092383497295018683498650489486682684515419521227489096306924709219463267999934559445324724042059899966171573552776867784407603024903522385131026437200941570808518017473521703680517367224458734442706094845684790303621634293324178152085775927029867208955176097463393829972003125431171086649805897500642592046729328686273856442577269089123446805663133145461840420091926386757483367226338628092202894844972083779215421075553560979281198855041839450782137527473355040876064762556010604147652817552650878206065488311805523913651555945857969883655250209030614292529670578134931284054120541944483182116061505538272709343476788555679710620522231252760203601088891521575099799484353832099718543882418076098792577223602853643837477526830763619291035159756091181731071784630974681509932035531850718067492825193650081670347184187049612165011688048444262873240281229816618069619785961619719912466801188940692846710122106841885294743870593201008487971240431286935573748428983433346893774707370110401534142083261084024306349530600252524410451452035053859527329411549062282520705135015102981866779048214444709213193119193011286249620343367604497894108310790381364763616679099193080393672534042205151446140235990211200166754027951277216228878800139342396243526491653177158663643662708807920121426073745033231855851461102705982146507352367075820667435591174165783811603772471918808746223706964744460662418562711248774311632252955027944338399559102799671696045958892211203575387396168135783705020620132197584833375251242330957452385837826749178888243271964886796507732186037635848869257310628227925174788696632723053830459527501272476596207533661607754619552350521215875675988567971061763137209548917614133214448392018909802324844061090035642970899529840613863032580502138074719134776889956748377691231455809985557386659255776606503294448990764899841715796885192261187791138249260385545680721171642870031595526110794916161592556633051130987203569128748110337797015704304482473749619935125590288964144878853606078738939038242649271050144047335140185097719960824242140471465024274798923869832805273146122805084054899264816322944871872044975124856063957006565046147889855643841187954795603231574674736759014540410220406450081201412393320069510072373649420603449597957063149062254271290293548725626011859445450227380080923177075640433878268236781956411824756573548764620737320098066659694936185630094009950914636155707205675689952522805637666741942720089451011672472202612651045154430074902557781622858046376518537442031068096376807353686071158842547514785485901192732330724713440142263562588411167582186491306935483531038193802930382818920745290708758766419397967946169757821633189690543828307187170990954606035790669805734243594282935253751308969902118993359209934258336636858625738801420732372549478800617418782963763960676201153420498964773231984028097875326363846348799948255530663167962195159088250526737590110474473487295227164923500457897299866123883003000044423225417476834976655601977359078172165761039337820066435102211410797665710261296711475060603522074821580959677379974659530599499194238405576037015021010262369740282578308359485158464577039852609316130677060450075825858837387895235779085111710495121424664375163159150358348664795333028028985979736316602724330512629492782789699405581587476406046879282996674406056747698927612202998244055039146517298301720106471329656580253845173118751030418344636337854662232005550437447725223077617599286356062193616532263149995216633259327251110474813685898109371295677342072430127386382587813984705717694727535230570360346990805257372809460128168291291841276579291369553434787708060320535799736811643801596871598189120843012359674848574163715998113835033669343247929474353009807771149020075580195692296090535123080831214462791854365591484589144134646868540993623504871847705640016148801669246627803557294518237608662973927243837724079693182844177197871603843103247382259623494687027996010226688723812987080009596038689309484638738843684148171373636095864955847825903062163629362497410350606674563435633814760779703182733154304134271884263550751355068858235471895495635766746874469479036520237484133867376196812948764164862213304835485768186052596102102551002674815052135710386531785056368586972630013099156288881762106060697289643365713684105790114964150939332535826714124329172707170628363470129996623691462705823914008901468889060598256881859364981263059189462794403813145576541680213641858351757350945677942234978126875264722802286202602962847107718335890177708108400936353707998446389906803931831454728395030312981063917253302931414275746708667060103331825143895569608040941257414074446539384279861622718101216509209230485816032213765736714350797859228537506174958377227928724992569288391808018544380337431590343634081705135362717622413513699406167023188339957973520768142118814011260716566203921161384965053850968239713688375032322989794389793650291140090052350120593102809085241463748554618870244871808550215750628056520722633502999690581361100885514376860980906390066671833960343972106303346561412339193716764750826137323653523703785954059704000271726744884634571956213618862218062351639243752349994866633174375445092940898603221036598937057526387127906663653879929872287018426616827765524135128311276261300681535491072059548231856947595829910316212470381375259784549746118612965236902198754540466792172187040699803272761671067823135028454426592348704191748278995186652016517441573158471002909541008827337858902714698158609539318975268418395142974486360417165157475560888276448244529254588531755715953417844794057297819938476194723077695668928216349681284332135439707957100332782291330368006901224590235540585460526653548480349061218624938657743461708682178295472308156021911624216669820818954355991260070566082688532946736016418793268436448343854565912846394985087950833384701961098232198749445211752210259629542675485014589436556483229068187023998510991553773109828579797596312952680141231631519545695888560990832564837045860621932685463853700185813618115575058396150102555831213026082747716625044239070407754431759075414201440842983299776158068870710690108658070279358050595912914662811591069653150941035158683330852370233133761760099849249798012339228112908421722395456220332995945186726732329967653846091695753297418495068635486099837507476753600890166269631823007982698133055639442036581737287502929907574456123287110440447273380233756796007732387243209920648011432584571976884695464064341310777718092277101331864322428076056624963946805926734333214922980137548526913356430402836565086481518225982786763057862698965796153789216541393224238234481818055193924252871109883388373894672593942875529540335677544352590950002862395693170966281129271819937359980511173714995071942667280908294526706158214449750713267122519705176339452173011511218785558283911392030400161988784274600012308418816559971349933901679567293147544013848115734177246126197423196264788610212462212502672776595953150232494410694008148256604174708973212081322890338354421751997972014267465193275533050965726042900032817401257741488245399135504978611675843480534129113063010541268262719164627702308348474915082001892403740484036567300257057400644627022646926651649552071057350396288657688161968516427624341303532822602277088557217322928274041265332591082020750002172722604201618073863194731384915471776146876194637058358156179964178110798326795127161950650082757306309450644749189339941850138774071843659733920116738972268304613360560938816116816124773805920291358263497867690929305634371018121020338023068229698307655422618626486192262739350769161571345798504271468581213225409394287624137783097876390830003837701998332167249536910108000673445548377902702337113030190835358002370188570893826248844686367650896516462152852301409611791765709569427800162879069924750606090009081958240779026388915982531529222094576011468864186257246824964449351133691389374837667199406000649374246571975859801187980054227153379137892304363750568581900936982247705672097088889715806808693341925570416225498520834355788150270472601368034518210805674941594289602123505501441146058324539388564332370936575528952227550348236248503951429203593718715287364553779875895991490738566344709150818075673857250627036728355383935092995031829734908875099995044599079892693669472569353419677764779744260729097316532055665012598096031077602880311896304903385365701412276639385888079520976716343364587066813219744208647111430010530305762710572969929374261233701130603951041545555901806861845441883375748264628259951880288840226183737753129105066777500753474086005249269975829417509160992184595910675176050892790032760212186494324895914920353088746611716620237862867882366001108190562533635228354239885560127807248879677965059587564210015819303635000331862109619833144296545716023411751403987204472010994773002682381567628308104177967213224510674178505513585354580054831466382493250623058010824035154705146747085184312315118480936631959305719707150808890204628793109184978571109972255475774425528426710611853543438224939786848248555420242650738612116460572758680253928151096938724396145124662310211776550481854572684230967764732210653375873088384344183056153583068324646263072365385298927617354865384936875862764488484515630354442521113110773605018371722957413505934883332866937480193524218947340624272975628503066703190130543838270902838191990661919279301148478224027961377692628677165633882427899026720147326581710018059289266663363628010167377253348534734319544384963690154141484574689593707691378806800592791311422351010007355270694236808062490044804801920441447711481389303853414512577187043315000563193755963879899313888400443437113193000429053220516847100206125727970538827455187246490877740839791408166992626735785598527202267890380483657803055859801936629721529164078307264439394543881565583397111557982038328257093777696159382815393087086457540660922330225341878561430408231079872964243976270558177982493091083351196897047165721672263982747376781912901380056434967318041819495765645712157676350550787868719142980196861213802968361979940190074845886302501283876441448347448320007755786104156572696200467741797640169523258714945146935630261120774459535609525262442082261682188043965557207343785433145578675888704169169685580931871424273907372852104931957786094560006360996064797437058476046879671040750390164111040900422163128796572425011351952679158733248005989934475828258292059592535569633234829290531105057100979355183865070134183377928111688385949034680782043045064733610829579361534029440071095018953097954301605975063659218801668574647738015662200604812650300440694182838744013418353085080794579096212704193367257957485127288750069776611809594457026934993685185331336975841300584591072817407924110212470338574407600250768537742263415180203230168797771355941245253954640757572104610535853054492918473492808875666500901934480056708796580960231744227890594873860641546406351474941928417932098091350277372350769600577718250624711130353929480308163978314055426373019182954625068355128346268121541685125339144840465187941920652761058805686506197249160028418732189125601159704188193821699113546282220149822873624107237263210095601706635438287076436431436522145547029333813569671542171561889457949549158899764779339793130780385371172972337676598598287289311554797106421172026884808006851731901276702784350079718062479439752641413281147749940830155429820848869451515904498977351284285436235112615494830298466357843939378491189107950877633102588948825991029924786084023617553105465605502372998438927631721503465482212417094099380591265299257904746707513952547122701061891788347482625434914661713034387109023396819241961564076731340502458319058594026898957296065298184525758540822703209920610026555915315267297005727463536875418180114018793408142595762726366405535256371863873176813033131136095875351493250778570826517883962074624169952995189956848853480570170479836094770318824356340376157526879637538879805457229224275697562512475836215416081409817206798351291891528175377481622495072709457204350767949214360232211673161152481469744928968746956475479623029824810965557867391270404114283780416105075452142252232561039807806464279030729817139592433414512264354673124895994431116049504685898552212163876482640909929917487575773527166690538023514704134922539389251618162016338137343654743099440708412495787044836745065056740799436275947226118452255967012565503860535913023426471639631705402471261642273483967783908781360173069497870527871764348755923358003296840839544056983881094087543124456378532198809021502003555512446270841012458613087227456873081600910938037369968163703835342301726482769286994054328667941616344268554851439651983018494823940171385934181136919599995929664561667934599604439134174800455321441777775480145326986546803534832401297327997666789044606376695682622383382114327509091408649907561541024423611324640167269954324851525899868948264054536404668704189012923082147031862358542155137400877120154948895877067282198197536765126974807086649121777562901545170990728327000038852873256423845295197714424309581950519579849353304118242442893579389059303946903827920529337797241320585204722135724776181066521205773331829610128426620071320269637580265629694263572919259061959785363211385691594220735549466882858453898305479309902078221339200551188566352519744978725820096711205603101290203641707985121433201573321287275279986775634841830898968718617035411165925730687444572939866017835971209169405093268220696655535008986931460920722993797327949922309558521466175966091810336449867515871410012169637189786374638885731786900127228108171961142033567747405419068521938951475049792810327326127781447019463615778035388170892237621957610405556738756277015279710679187007256166675406208245206555259013791121102531414996116249523127641813037154530816990221696821390238416584571926553408862420132975756898908065640261113842651803970162234426984460256462062686773085171177624545236491426280363374190645018610450275609049892518724599827686131971179171119405193101326906801145136903752111205855885429033870623441506795693972066068655968321641465753363077909240513218206455857015458046175627927184131695753311702143198179924170721046200940901110089520250845954929109037632291832024378313745890730575120841898634427133040337445275249227082238556557884089660391447936387200678256373719927506566255256144946125326469191189203708267536575931016842522337022370041141019653453923488930268610097601970842281683709407207880998859555256465616149994332069696792318631167443663564038479823417110649887428570382476067502107389952569043528901620593353757276318663559414211825430049588639867720028926359356415068235747999638160032441711849546653205667292595655577532068187536065752283965008444955397676558744938415481004573118995830844818648615846084213770143121100864947181449425988023646878177575733132379387052374305042411184412275093694524292495793852061476625075885354146157900811261000048407513902645152313580935506349614108734584223158750247329406260361498574674837891351652200503285120369834519573745383052842612570215419773363175220666982732825029262858437522996324074237444807048580132029141679604674404554033427414898799994316159070491429244772550879418323370017069339930845812268965157135100694301814058436517610881597102306415794124643688877549219730551025061973201941231760807860531387064841823575687761573763051621960031317799164022112625813766458894795795979474816789567850949142019926805657238626274350465644820433103597987095580145272276859048508543727821027018868675860457259021646834410067605062663836296344855112950327161159238709387641257266679915459379458881092644340461695949159692919253031453187417141629938293529461326333222856458696429147500921083442695288204113310513635415614254089401322509402477150503636178493144641667047853621146495516907006238312539877914343840035753316636982657486466990136442320517187920665078978518029514512791389343632477103124351906783944370813693598464162514302886265717285936782601467458420407353185146411918764551093634861590039486911713887040661008547247703473440726011522760674046679244644281686752879487710488407433392883279612455290542830477440927867578746611186283467107333276587747501578727692117531832389946511962525147035614485306703600155814563539540317625629513922197185025696854346107839121233582123732577144588609564535437129906440705410602744730777411236597952419507433997300500611647506119371047083284473692503575198431817591127709114094963654532140090535959572095056963572111619190263529125118870404528949662041782445371836697556941854944193952174926760411869332692813140183341134317938819684726396556524432823492816259482442540798313069694433411379163851603376357513513007091866557894622793939915622891255911017808325887191612202843325311257828052913756406067459050959014967512858599197253588643829729382534607160140165061649440725363173851548925536947011508012698482010554448643041400770859283568155985355851716725447982795639287741527559180302898699792994711857741543994089754784726826354868688934848989955326527947960311992068866156573217763406662754497863031692003823305703159022423247276758313958120196028693231866817466672886693528240436959998723421710377672180813897342448718192036287272501468148049274624480403695181875717983538759245711391751171607192359557924599610093327194556655384320387073506397992608831707800549145035485992201063108016953189556200332130069041279594407200267276550758731931297745992980878095778721062263320777701386212447077800208148670465590739141767965568248317642161635626754693695928547957620675718718148424215358598219353295855643181584085258994993998911637036463867301633800914440026056264199985963985500616812915415825267674577109844974938126237275771192027908636365445351559785098920761648111027831119601988531387773774837701699787018933187940902079365539540990721652606203467419328586538488351879365975096103487764389131176795100200393638009394738816306838953499352045502978416192195330619190133732893224101232208150518477547311579811301652479172259730053673776612353556280345670077489604238778477355440906366261836169134122351597384552034782280753368712467950271102457280332536731778759161306263880685794175941272655313192212055897779221014108890382011330802391534976277138067632522930917431793954768708533987032412500110758206196050903985647960630007896655745909396025847344245946624384726366104036724397509633579436246066727007443907841078194400888095135753381381081216920464880249310541893446223392084333193861888276971446278183078280330048113585822471063030638494740226786721406818540276266513152546532028673668693021901253539182324756668013657283246789200097259867191192207460205054017840046661033114957511199036878192058446807674843664810363300870524128627689132260512918073079355147764928855520436010421864174061566949781366686865472329235943603860375243926278926420884285333117397707357266934347739455887097652063025254360168273414316163563170599533489868388081585984338474058615835708672689113415413165196359717273843506926012932627370839787365952837088670394685602433588434792296687461135009604074809056102115457143006640874799019052959091273720380064353760561734170354358552808141682965833223341229823334849889389774581995060139464987141579858684606031203322371260314036651736661743702298327524172190567741053212834284292656334895863451189945254042467546605246012989122122221704681947397592858284797666575990089354483842142868573307764992805532204886826177713779913232446795320306772240655294758666616399305682648300443980410547354311307458475280301410233642423290966084998473845382821670513470111946362182364391517491373493159766177362746216457537710667757715184692551049189665798351658860880064576039540913630802794691455390474676650371359649156213741857326756369295556839338125770787266897233154826813992785140233457344496193701019584415262942618109782593585734503872735283762084568602210084283990491023996768731868842809155243093923672543227799884209360754565343900743573021085100874002160322038968738813962837945697867584759728230377025947739790034059571139364208301220442841354114099971695299040441635909324294782307260399758645819214618521209573719208569435602663563349757535017671541968372842450479051307380317898924276795831797350829090249259716725247286435735215427454607588955973452749360613592517312024246679590094502716408043676716472273582369013718610323634420279962201915180501021286006027270595900172951521496939482111011659373135280473915334300460944063723944221786427460625599154377994801542323587750210615508884715379522865638018773630370840124783578577080826856286987992254162740615242549008163022720622985616188200261715674255742623222738818880081881006941503634845111586690962179662117684617675620866594622476443742028310568751594510840076719769695007482730360447864403239950951385516428452860743645395248882299957783993198509170761267692054164578296263580996909916768482818510070952228922065746134683441358570644000425842509936760866054641484413695843949902894694584452686632106729032996460958628883741124284579772371583086273291933441534602850400529265802745771130743517921039955907510908971658728271330155099612145453434240036426920544055193073275325948522551357057890062095151698392115461099985509096945514292752233692924619892172249616907871118451493720846789153339019181313383788494516282444575721287961736422880672433780068258206820503054570897677890721770881969951491981315185184298283492733926728198704032486153595470280756062947476012460712729474233661739359191889492220340693094247315189026086217148117866713302163939491118367167506258111230409135109884097017997318417216742570398193684182180791181431903319662430128760777087671788438282856008160789324010531031933954661719522146217357032881288774081960230794960574330490678457532554074667825444794251895974667618414867669243295584722183784683044678364057556446487746553741276732996531685303184276385623618391309570303298082365042457879104322137715246642614484921246074534483340799235860111268068249028578817573995618266040031253017155457886079836228853064300540431533580598254811777029039555237148991259478152829313299050240401362649661472515303083470458110424482733244947415683448235320752998597004801284922182312477817468567103416960893019587325665739417510720955088978903698357991762872707967366341216513471649327193082550586638088104214101830272416012540391604993735735074468122234302028692283152043538471443787394763901241350147901614272684686953338280669163435260314995336098866534961247566729066412461676314635161536457701973873432957930732250722510672113932135802500937174151046568386716905823937464740592186787069491590093134201543220376346627235242115309433426273969664696088445679896166517933064555407885159978586688589211153214441794134353013441006445309783175530330696444411694266859228892252770409027138395692274850828209106554152113465103252872414649068558093769046231467461479796160711663280921655818234788731939689034352916714324197503706369035804354327847639363746582578182491409335467926818416031462121527572740293279303560545479580512276728305863522099834050725270769132576218234234819660988610419093803933531812786861401850709490421194358610326030062568381676637287942544701525653594239847261895998734058127248154321070521381140024860336164787254745506024054140511945470311352820576370070959458406206432440084251287877694428018876888616210432210190493073217127088395184989859031480985893687439730333775844498385021154710103947798314047686251354693379766565563962263057779720010417309646338038153576356572512843163392910836707368155290213203655402941814074221852950508400300788220870023106888741706929860775002799686258277299143619752406019375590761324378471906794629558980597458380878440190104088636220970712591270708812394750579214023746368589569055788120327210138319839190855221461839586755736451550136228015618618430909789316676562300679349138130321882452693248576849445806397243439175941402837379646516495918885672521049952971089987809188368902919075410970204543525311201956283834430146634242503746500472712329056859273937392219535274600185333420444592776653353156542421745458842247962757809554179978016146263751397522564396470627813334776750086356433389797439055637278304951045969011019594965111250959607679083529568586248572293368401481532100978335119488265387733910977195920339802432766483472983325675128283287594057535730645531734639860258598704979477193235510039210275693537660217812275238255526989003248182238294753110129743730896207148145719714657869497676428648962013955966587078331279291063744175530416119034947001823595416646638090805548848336849290306963918655346234338791636037545335976079290195946160409290576146630225742733698753324157059011720197766626339381907324295541895830870716688846766674640479951660173317425820675065538714320753756714602579168442839141618935737715580001070456549455546522095471679261308368265515523980842142871192464185879358835506542534701543349046093270594040574013072399138122635792782971627986924885082738526909515737390703709056042819443549797656739606412668063578166291372347522118530373429726357854822898794763559472804709282377828764358644184022295940964736874970120994321256079159719717324181197729947548183632796806568115401935266058649453725142958462848007798708969044424054176743296959455054693203336618988539763438797656228168750158106962734337428991362164881012026661770748645606574333562863032283992319339186418335477450661636667256969595966341419925518153602820478180364140164494310432960799939986102676102125862249244608624861318388653175743693424286555130549060217384919517023946837173285711266497738485563764086716531567007178278586792952275708906066735279351294491582379098292531601081726343749537202967441529040510677808213181945282452322677030376240111349583360177202856681207572166369434512070494328627935067673484905238185331314026380085954005724384760295265012733218807765861268786679781188305769529543025333234608919351942332252192647364979436774142482584863253986477743730929578999776656966697408757751071798610838660382547488433621847374182821642534339822965830674275456911930696792380483038356460328167666063218633105877447511757473055293848783027819377019880723795425944360022018824116083552737907322628960038208131723941739864004735957805634355845051213890530818795229653989703088138951092332874469419333314180028221959197970790383975332374948477865722094735356145577663906210055556870665677682903701519169281950714788955097846929892732419241582396131057041932990878416588334041018150530431992057961512649470850419609761076489925610648464944842273897378134466500740267167668793781278433462211541354849347900649633091330019480252369340428826295686357149912049944330265091736450097021995024004572603179014278894383194435859613065120532955229996179839260943405026294179001094329050829937470882198691623468439205142153575625212064434696272956782648773888949436817050693828423639725806633609044180057928511582143859367835964741608050682880075696064376741390931706945056882841179503413497606921688205804578571031273575767246185390621349265709482919250887368260534945762457224323392921541845768444333566587452150476240497878526434897102359326952101131910277332978582245601477611710556051661389614167619688671177675793925174428494710079448765003929337913918068475640380930417958864189102022666558439311501189537173323160888372689123690840001463135452034975378302358129935294844268281090877682447865681225321422947088316150384100572780288674120915688532627543583587924481312085478977638347304656501743011809226565739222801475024968320393961418197850024587422762566652233352194872043134471156466869352783983710729795089235421804887113895897280999779085619196662362384521441970519048812444479026767250770338617937127432034238845932250191287827406217822732287584018628466539168257519090852288734612110686125924442185138712026607306591590035791813610015475936428854143666247925168800059352488633626889900882320512147220664887244725628426479547668139195021278613168274693711510130339351845944944066622556447371810273665471752307113710039076237651074745657050844475333213178195194172269220974571576661705111481898003249873556071155401328085080355453475794685425956431972971133055641184850157726232818355853091098371206526851291083493693099947121369066757714952908302212131528722270013717920207569432396906639520752271560869042133966988633191007115259711333655021285246409637664654344201182007519669780553647034526750443037565894159349116363539424775020204780049086680204914070017021463875355701655482647389778661954734591984276000443409594876871835250712728424163192619457002578445390084531954969212768046046886904021217031731796514999440894130924052098890692689544274480903662316040566440042379970060492155411897143775467168820462531830015868275805683707172923799758256564370381011616322335428911025611163325076504806697392716800658366948918822113531257797806316226384621873161434694287976559597259744411050530372954803985337731257461619267537461128181108994354405728058937705261931954480076923804455979280546145624693065874013730947718438825287144396112222221363890324079548548930091291820642830886755678975950232780282888673517758298994509701786715645725345829796723646765908333807048854096997578456102201785525756338381921527765162776118750428884764703379890061768008345047235894134646337118809450604010367482070471365085407818802876707777143506520649190110216866982632711741281854481414462180595348014591571252257005222428666150614383508986931601270851692077368933305660828152815979720980914599341677765111815817183657844348812732548554420408671722641073295057684870262768500728939572187043355818890259022036056952750395001631372670337108806767097571297322812479769723433299852393243002714671498167449469232475739878176240359009863782963491321865196069249820455596840513773176135646013552879457585252962282841689015672841202896264505973106058812709008784356264573516738034479199862098415187838332154411327825599465636456288204142211196912660795448866172150386841516937598234200643083709436440734714799804742065839592795843740192628067904038753118314040115090732331170860770619880624462477453587101087177474817640311037975365662007681307045430600315364481383339641621987754414242225510289676715765115990149144035875160829284265524038430288915493821091564723150606397651752924644374840840857521286500246959081732523771634438356229919312937319801640336862539683238717977587738428640960362089090969522019535897258621249390092446150616884572340602456725943672684760052553008721878213508034342593621372351866190974706707907953358978450534362294364178736102174215073414810228286152019776658570652739806227101346318485739072911041221408853648592810775642185326999100505378934592343249456448583579033332654231382087109757203247321729034831095267838412278844580225332540102390395483315795551419096575743232278407930331480462221770477802027691692118282432683353085747975520732764035626614871646348165165507873910995748121024782960603423846104778580398328803699817857650960184062112172177853847952876382091136426335411625882962476794982082883549222691220213942066847460818046813348927309946889320822375823640954487099620020018914108507064728677954270350755523793220777416962472448207557129905229130458639328788146716784854417895001173717920767819223236866054393866669420544302212765828189824155414102148349838115766770710329489463261056659101157671930700298712290346988145379470998685848021555403440273627982959856217053258881707576088466107365769928910954402065067985133701165321873758858124640232416239237168019473813698576537709309336179084801044510330755374105971901629681353386267538736504867898629881593257012676171711843615855494338345745902743126526242862539395718656956705328505718892880766134256833077381017055626699620866023983264314800555918674287664106726761656611297047900081297707773532884570130542026221013638327302906258791611861916811056892756871184669266055007025866353419204325067828540349201667996937115670998837776849694865323861108465717323975901532584251295212677574305678238028467534114531732900390296159487666287279504556173812217932349612405482784838124591334980359615601071578773615094692722934495726223990111391448429706553242808549611924560295559532799740768058346326868096715812980425302392825234715826306929973260458375635633996145272852371179596331681254214051073498242125386430257116310619801525308894420894044818776509277080344141332944217596580995636786815048971542154807349751306929943562286193930786546940246920712236969157622491663638173149102841144195571061287937857424435329065096836040140174394822626520750401797295159492160618681196276368852390319139483079795749774255744747835368543885758541271851875790240464492226385831567855933325251280399674065454540217546738064672613321165717657786893738355911533527198362744060591293962241877332764062050509060302746988242734567153224656879128843078801350564306583625716085182514599107840024661803661464671545924477903943924993985091945511679642995896816826076059998301239289504952926506258553636011531368291601506616393433937669657055671558563534624472513789960897253367021859892693569936000871669998185790065661962193733730418383421168175312662605612562847233911935460548468390007167873630741693630231762059866919050652276037961042094369052400775712659734227285675400180409068806507557641027906313809285021137477705050886640562394290429522052352128820942490635448795367665432672632507009124220110697167529873173565239820494324182569777206040506570349373622903728810165184916096880010293024577272178913292993075396785177110279946209494057424389146873876584206576967111753121687957494445650587773408681414592726404606925794723795484972944624502508383587328418396078741663951526820906394231099137254909698205625271680556724099176984901235477878986325273118129882171956482766789096855875177333604963287804223742240603892348303701558434556725071650304785191146239361751449073029132396141870497670244132385861331996600717760220937388665862648150999268229370034623793494565214187431113613784362165521539989022989838431995099250058017643313419779253245192273157036617484808978777280352477447141582638112090573622428206888046176118311003170369612313109081617619125559503905866940428836981097327566898117933453986028708145031596240033427291567088192113627053899266028950538025905281486071679309317233096803295250623306643508578989238228504392177037067488917792201286827304441450062727339720255566210553152298377355395778586793726025682957536073412198975533682703658370508338285515955088011193337793318007940306019820263558666336680230959009117271733537766925921359779885643053675476890348669413150911345211311159393289638480839576438049830803893684743645162613524775121998453748857818129000975251266719086086219154779803693738188518288153548536643421571712155450236412657712591677250638774196909228061338845473031857621942091539491901431113731008181653026305613107275080549476182230611877789528395879147027270439840854515567074130591408848484796799779768493791297089663415987168344522857808610374377088833459045587082652242996709806494227976919647523270968142066810216013135583670042464712016258740215600065768546949234731415923822366501874207579593629011163477588120363418863306508530778019502820828046897716735480419651955663026834199052891000406512731310997207181573583619205198244138971713891458154895157315230440799715200513584968944133325722745001103266189609482340229430421934346024464913722789913496602353891399233848557679225326306621007136093385936818386591842741906406991783423138910700872845572877426780239482625728158003413471943967523893274693064709107589831976339014943594642516594582910469426700057839792758512705533656260978760987853484951068454340788459309242277364306592778987136121100830865989175404730147654591953863936534265654219751804337459828933660553297045668098760032593161382010549990311206713228950494056245743528873768391954897372497920110832311853914232688358420378762939569345914972021914617364067187904297081324811220809315030953445454535166862422130311646697867310617852104800134136299975611673017606594020809448595818209788507767862331931049806105729499349312226282156907237253365640425247595512750310320658054587881387906414809968230441931772852373734774783129380090799615489928418537706722264366467643178179824644989644407127293307502948589412041490045495655458506937080320473490175359075195045595187716765115308982007227981046658977450391565423866246223698182685548876464271114325005618475820937532602437324152654015200411008431336737970569339999396279140244868132657549282316242159131081411425983674323423918876896585287207525160315275263720530362648022656452722979324798742295289985280974674440406469774776508101371984866094995739080636372198782171624024570584789721335276232563812060221509760467859130258424393994096892638379721127692739832207633821978156600672906538449568987734856100908841546288494050375012322527149705914438712893437637797409051782826759215172470436078767135179270934524522675686438324089969521044467736654554201054586817830100534944195231753395025689157653273554999332425352834302988113499422076048512299186943047407441400779658897479416463820700271255481243167604225226786216189870371923078325960092909462630486315546186155001201140558622153873389050742402295851543741340732744745942973838767843682772491673171336065440251173882827512031639017955502127837000137774343742530653343511288608005322211983373448340095268912925771002364927945242022346321338023768017899262297025518369216026746463325555206467209508593815061265031939786103106885359847529649265181828146621254889215080517325043092444062731173450909948964074199038519046925259913670712957094607968187284451420985401240701956298823394382447353517380880462172104394009388364393598819299712537901680663665720073271916301813468818643684772046627432158500762613440078034879903873882346086738899371861457341769085449327239768258211588912065459757984464808016130048898582380576085524451652683896238459741507214303312541166256368371044609677242594173595638914370300469408107544824094768048555407690249438064441172650963589451180290378305112918602573276077316458025343688675669602339856741649232234864665936043553395862056504700566213488934788791068575460834503904564786628627163471309120090388684344223880428052445323531424739411119420967489497867491544529489265576220142998079342707791519387291765241884128442058807529820452643051304309663415770893065900852250576197364051962229372538156063228241285709374904643850709655752937861805884115475457396130440117316976875429742114056402278671284699154755949889042743513552883118169637766864118628025599969824983763661541090948326589358301081023725208343543063564743115992867024206835065746523032577608796099099403417444021938583944752106199690770843479328673867979223423144139925713187294961186278562091977392692318418598436627811502239202719103229118181943916650918987233257461917101869848716730155210300211376476980728138494749458455292130456553867825736023404190378679627045030596383750834161507593579981731559934968214604232068042910443932568807708511966070318924174051697212093733967561466187942424604040207182186310390138800616201365112533785086848573679043189005300010701617273431944782752195244819066735910893630384261414299696610496631108299123824699767924127425481039560479579518887125330714172932751745557977455042396704792836489856958361885395235081594715150663611044248226807385376380293798391684953090496149290783198664007130502032155605028158257404168101764974586228394196189317024310896404897457176089955225108317938055548027682500971424794146701940063839911522209392587178553965575572289151529458347175624645626528936770970856111735490228114928262437684284191638016120459186607954262770046591691779514997904662369116693020161265185602551837746854441857401830468603422001002347605449046288095044385867445892867166904921815181551882179933121398839016665327358802286160162008335406255547031795785595385014423376364997152109548408906129492418756032529383355669277623383285356542836512875962818252272764632791538773632448510522538452896574210518240427116599149622423197602131349563396509912762688249127688420267740080874304209840719203169516625181221999075067954560144526049987203194414840239417607805407552382806529422959821934645260703715678804285345776586390776136650549381870961613195407061364040153589261240725251862504070036614788361723406234810867266344209381528701923321696475447731251756436997658079514901777322568650930849714313945659823386149858121442854243157157188152613092966950977809476819671436795540454961483655875675657376389905808941367555646719060111205807814526271819572176608562033150695753166664948232487509282191428216451126918454171407910683923232050113441325784697657964398675922393196619459103063708710933350494680674332573340920048208762749496572450570494284618736483577787562547938688938523540578356045207865112724261984591953182006570665966370264156283239962063950701665701067305005790001711583278688916647770630803661084182388916327556787574840538140245360714674941194432025877340017781281226053351214493550767318343021933275468381822429804048512737886951740260901545680506475509121772306339308367257815798142613675671936108317594814034457936807573448662233654435676708914051577739486054675563493277347791915107178030052406655385988978558208636479688457784998449614854267073046739830535116876143260136755574307244401271593054938323044875047075818255415355875480596734319637680770171371495365013842170594212441824819949372988534894840279765553972522516541905388816652401473963790179298718753925935665619182722260212450789335792989166540387358820295856594342987915308390909223106776498684095740504781669125609109945305504054785831209647998708511724718242299991539586989484846476428011510063491545008119033418820897989597888071575746877090464199074699245195045077874698933626752090017792320197223250778143412240272137732833473218347788562126134684378888930172233017854181417706176442444264736832357205200726693928527861400245901727726525818089252540937753952645652832436975593724108425916686080218861052533019634167226266944965717349419545417718332110343188919249280087805111836941860569097186353349268184429316535427152940368952858963325246949063206333935112294478698496272468349440136582707758580829193158990035823914582982120007845417260686435018750969625775786643802384592336753106772317519748945740445117212253099137224502234409653526310341920365196834887595150583096442870714945101041992998299448894823804566981096531995613271592243487809758499537995336170677795486744857900472083517952414636896946702933593360896509913942338992081598124396828987349136730813976390947269672669044809523431840360411383541659334150327237813916694174285447543472179117489630242541876408871394860571859746243584642967300769077820063314625522732325038786258907451337370561670446320497712092863714740058126185048154090709357345500984010461859512470368948122148316854853737481470714350834166004945624970906255175178450020559163018062513723171556143248425550121320455408331634256703548831186879486042090902236719408556886574441294648315796295645170951612624337027842655643904100296216483541024484947341693371757653968421206539022100975127138588659089914478441586622988149758703925802574262405954587770928548347305665625570639732410380881066209356639173406876660168030678336637942470364961808292249229086875664215952429557407678746022763550259787102627707388169382943114472237837507327808033407200623085902508745220057392617731039332924985978459436363883394973960834456809295684983469962212573611790114075873288922142263120265314316460304615385968687791165702434222934956746242882970993509042536366271094131087347082511309226840623272620422551039538071333168000495670623563645634181034262317603538914248316838421786507875266810968744237657098467015826503113541002566585516340571061392679923532900214898401247757945149268008285021959212459471938970460280070435312035237302420602661573420104511668599809489856702518576661059891696325986792616733111387900909922258117949404861317486369979648913595064666380538453997310481369298731596653171856577764119095938316713697332349005251798895846304184186026355184411925798086228649507942112355661609787599513222028280908504136952538872975350093276446301982979934574067991549228967262713058058437393363327738845383065215178768159112080244660480676114546131588753907417389046505823162231133951034015594455637155204796507128892197870224457468385054212483566984953336064831446292469348565509226826719073288273470961781110778281629422453954011107103556352362383704712374207619511874643086267642492132488887482658241979246999052955379790325110956618278209496059415828872560899228727167288861366157915560681568359135675780672195342751463543054561530733476036975491187229621823195457529803673204660482517877232067818270259270326104027672969485827283055227544448910297913239740918335447270265412143723841412967611154216993337163465182270030215891481177391567753348273462622586987450221440784535168742910599987067899679212539433886004727134708729662871105969515788516564380549450455441162320750728471991396550092983679626600757549672131626725913130412674831227684037073215525774894023035363177723966083082379651361213627633410234430861723405081977943339885151947456854163388593124733909634144859528001472099359259291020447128942184709076574399763773213107103093753301267442268886720803404471763801149495861499020381645107833322363281529395847331735332372158327721507219330325444007449648760817721827491658246751107717635865690411290283975272357610378127969002496295444637407134237514700018474816354184212155441886355006794649267603795096839318009564504623912247100536246879038260731641024359336095775869116939276056059700964898768659457251514441678184055549860860002526161516856015108692076271268368176317087166274490138947292932518210398839098835006079255789904873547875076443462141496119888112669140360358318509081804704829541299720194514666104553386960360839160824550497087735092806571696667793555602305434636400507506621126134941408619334227754988089453068686875442097282692888965929672033351610360027859480849549348499266371015780011711918809923582202616545764506572547698084783995090643167959995647973029506890500365718566628996603202380942050927674176698899731658211485854812542340875846574489630750739966089100184110628705670656785203455161826465387983734810024879394144010367312389632676051117558897265755534658046090723881913592478627707480875487907487958992358163216605750750126589156613764712385831274597930497069676443067277655859936216958380152300858838437887219847293467430742035694563500990364209833373955902898570038456669298779555045676454651017696066338602374074322588560093628060002927301902264034000470879454551403411672199250194818742728428076858010570992008819729649156952398505221322812087191179517219939727849251517792352811940849594174828207184958599678979072093495965190942311061355426305777058920755485579530129328810265872946396637060864166335202775717341737649232011494603359976727680077868112277953926990432270170558076346716870899701369623366573458763996836893316723320136050866721122789967129621847863298094892438619928103236230178233869382360560554204653252904987470699061257956651977690201839107231241608757605144630457886269804287179183200929722580188935785843251440294069515684464478665793482200353341744019281150363062484009259483866311984578549796179971415207929176765445271177103179185203702417117371799379063704512865348676329160380102315197284936236761289244189238258955215191167236190927800275856973919442177542121843984040403949135033795657667207582513678403382710311138724717761241718350168042435274061746525625266635703593597977811663107840980211028433110002865331243436716983333898012170054810531960976452032211675874965863700664234089048222753696841562789271177710059353839068632983954693626984356811998033777887472356792169941839565114900514036647947763949298729447535872635278921539171109448557092563761575780713074322593109846866068685548021582252722203124013813886658079540098300182823672583811398582512945621373510322322522094871785415018107834596702498954599171345547876512030636350445351956395866901541014247762755828130265716022614468819371288219045020293737832392544934384718426527483876255005662816185844869743468529289952412143852632977036290877089610798217293112540427152629213999969108968900272441116516425552721709725239224758287385382634996509701308698860506031193775511298146670704274241039910910950299959762994863253621156594543276491770541880730210881284224390288552941149129199397203233428102870354621163849123781643560838642968510735704649495077324396822567894191917977717336852493397248008742411816734856590776264199148335355123443705050584320088528258032586979850824382550431699814338814705454161727646476916962093565376824258333207579164853922208884238135074396294141876940444851115510713253531552032962133753859635069807402556110338473554768214135210355249576353664982358492262300886263374767593824156902198874046062463676555602495494020186336577767427495013016306555821133828593964390626791480947306931035748164648375934294902779961851305187349573277742577336222175082096734945971845511594449159147182696361494245472238714597818957395997346170434439833473061038895388186215658378511458478665942774539715488736042516844546142860589864717507068166510785313642826154023909178622572981041895131742105987126676172012919018956236789168356651962880988980744767908080458571586982159608126757070954071403203496450342919205902987066453870405854697530925549142747492842404577510401738750036617087566101929554815889242864871457488323420073775966363271858801779490311967868529214458442257521279733012118709214776307821617272522415361316559767185353662505963839738616433453504134305388119756827763050714351326038693448154445217271143733800175502112574310923204930721871337132097210937268868238474802239496691336519296596472131988013966550444789230412677791960914257701673708777372879863808520327819546987543135440913635994027557789283395278306139417213953096760864337530197737596036698862509981194753744191344503698419547860426471643840781492699103178228067448012959464591388530003173096744530237678253778141487268184859386325593979253561362503869049658432517192219388335768159838741525570612689368980359438918954782006625080382759933138210043384611828200322449664613436389002803743338855007427899528755676460808616972772537928279200416895593944584638344588619118946990562036641059436698668480119013898246680323795204143806385134568311883063393909813970990769839913427828514910604114074259545816303076193590503164798266738673666113799500733288615151790321475480697710133830211554942252221317487076520853123664402447454617246793913147663883858170557317808165584587461220008458122401547173911534993595968859264133163744977003110472565787057257780515192463466844528965433450438401517001523851394476975630732623568344359294378280329819041682114751584061337940536186809048145562675191159334975991955686962457914800651262461245976232996645104315834246101276432559193365830108863534976794346689182811369151950927974300305823923922905934432885853484716124327442828457672025648631275232730659133055995895213922974233394218747930252164217325806549275482364660135833961380278352495042980698566898258333967364220734191297698662354857979426986148688867901855486402409468826068622852079900310006060030019830535161053962446603473891827747648696640574487509628896152181442796696108589873862012495441670052308803439793608772383383720155178678417883299965371596030793199585381147724513187254537316458896639198673577241500441231641630713291416428746898581160502438887494986969882719938504776064358274563395474653337777261372795999363544882800537720810891968376055664204717940219499519743228771837687648011701097514957657223146194562085894054675491005192719599546949433230569761555009095972600543872801673515105623989730877357305256515164335402951839946958055481082453184643015296681054769199948321791306972462629341170788138979448007464996943966996689331653489672783082460667432713082588569851694939223302600266855319259101481331565487662445458722770460680313561029450265314161274943156201840363903385928606423581983579905675919250780654118472439002198066307862563364702943615379342176550293487677747831451230271398210765547145312966365495495483978312198884055490140507652368737417977272310434880511843178510661060817150816633706411971624449741818544879541383693946686693819456045440654443315304216076844703890385167851600912045932509490104617192979766051100911910597566681878853437264755826264388917575765964607862053128896260131276095410869389932319769552804922092535108543272674822826492262235398169772849476066911383415607057558061468678398598189121926791963017440620782033667178341605965138377404681047372801860847144918151497955433020216205846784027891320611173278991070269714071105152164749683477348157506323159099422453128504663606995042329449072192558754000439972262858743469957850839079516063980461731682017248429361449566425581916178476721102853282296722996433124217398893947106464978253475184655181972815919590932978239948755160702005994450293390137141074041821854589488119849383547483657486462948627325499115109140533700376795053704818526960086738035506829743858564754313532452491913482833969068102548738332434298405720698803839224336144754110706576132601379999954532785243348499115769245567619873861363270165052802065918614289815594375300071576557605457888635894438179616651509525574957646949686524565528045790132196532883534880937490416447173416579734022281521389443398232714505948534866039458705078012631781885834723578950401912515843024525227065810832508274240446124564064567056668418221211667090715934912249404364106997501409464092712714736098169227046590147322830940993870352691427478519674195070526479959442333470769656104873449425264879784275305007332136108672127061775824968203202234531687757137379984482422358187665809705662566069520371008589492377148550482435371517474818199464270989192610077667565437391421992429928397340699353000148285277972442123286566257080152086377287640404220120207119295017017140700066520291982044977935362239172664308202674139381140015750976194276853930674058622682864358378788491775744393663921461373796471791222555400561885318638669856873348080842715613855666453594250986954728250060850334151407668369426705573883962590162273998155478837646107792642046809910290716844478081188706664847019105200496435188485886740778616729877419644543100261821796119272952579914189933607521130241972480398416702243813845426582107630594388347545662078487730655667209789179156032955601042573116771457226338404496696690317688784327342552712612808525881507958790532524142552715598375008978873751361736698107396746343445276410735182375393161588199114416094761236674247294448001855811913361646402036140362457421054829661722102800098583789482821630436356944750243733432525074440434961071739790901052502826653454210807708486991427075094951571324345561825125412852018035587403433348514531144918115447363297270221465109556176795249233472508056522082885290308086085292714534266201984382463990041806108214450297469680199174310814958248809955737108579471535697377418507959239698064516772056234690482590572590332785348390223606982523263865594735741841343286090113495080291672311800043142380173684579630679094149253291442525141049342680563355135416528843537113897896297003754355405826215334366602899011971883398251754259064732602024372939913226050121810868480295462544413777432276920233775542169640325656647060942004260475193866156224488268417453070326347344664828456738213595097909740726642573137114002861221229850551983769668922826201206175541992190913463797996984331589730610522040556086648852876328185245976567313191671390092288097212079306365700507116609498532274604350119524123069109272572013008701724921376805015517400845319679171583900295227696315765060105779018656410701473607609982734260445312252953098066866354149452868762933144216532502011145369718286312299432735048695626884904421922649172442365837270964442295894748035360895258194821481762825421685040417776348177307174669932393430597922644585092167686131667338332281891904109929663478971076469882594600129885655635229381538687722989834445431182104581131409917558096858436386928747780766823924506406565572645288450256876602536535719289133710186577052574727063677062005387676650520630874588387560034413505268069132476218537008179834065181311040468308738454161277096268076392073152629079787789285842516050014725966144248239799443815398889900958962750886045154345352265536742393174459986577738726471922598706697611399957583472108295852402749549850644867571798775012112802566476702682973874175381855102758822838334725377935870448116692206742785196748710664440281533993462111904489722948075621015941078227129634497551149121944818175091180652842715531184440076592048331795657969094076838105719166396253869688037778014342282701458437260057246148087768089024482182272195793820519434916627351083896101217265842286021548616159908723339761808700735959202324703538956496125041476633065711798465891330258436886878457340685466289527805897178737058406364675651094262132621944985730070176104658175648202917955955657394450127078045660336989128186382105382494639313706544860889600638705100354614577075533651919284456615557528975081704842992182559999997924129891106018767418373122908537530866763900623059384873847932482301939516442610146609730111316171056205765173180477290847591179413968773870521771099389751586766591273998597581227851468449938265080863506154343411528441363153910996118671615221458352282607895105866032634866468145052838187324903518505948211605323056909590074840962951544941949874843052655792583745686221671720437375736524040930596201489077677065725196697300533243884144213526041736883002761416549418962354695267286367322205687347069482247951264861606425511948379953723239449795226839292912750060686091070743427227876997617743023934880103745651022511955310745566541868401720850528872370619894499439367244366768683201888603229205305288599373322532310996977908567780933519701708498002052482594402812094260224127996425788493711132759389395519614226699888266412123027172824228532469152239653478125334541551556642409890875501605749895269077943330699704733836775070065142342899937509543379885888852783683476433183206438737681135431761478948477773500201397224213718975060146958837262895961932392527414972510201299447769725956098119249757589774235943791364865240731470389903584513722339612902129833807666216464034843431504284365227021230783007147698546893375051249607163422440604276061792518393305199413607416200326325781072575769730913897068242140724925070156303593458093789352947235368069329366918007221484142550136037064453134823650375981031892058242575327609769105466854577169830565137752629065576708999963319045515756178627832083012876285109634647997798957635859948597685037825196905323214116630983833281705034400428728165245280395601781675138449937188292626437128989347471714621510058803497744469082181119823825641852850597098898378073008008166865432779172815502873031373628800996830067511902610813889589015383503833665019534374422677620320911239874376608529704310634971382746804888418154918772398063213383031093182481975186715234532909844569289333177084295354024496193472120911449149772761503396448288557334208004273649439291528424450007726574051969922516869697280293930942427372454776833388252643218021101117096270739103477142702502050703570537784257199758355328110509764443664578444162462750164768898057199322007841300875534882660451468521662131176990685921288036505469483147178302693656873622704197561175443265395414596943214921820468883423556361625227915351528234573889148475501111444755374881110629521278777783813526740599131259579642593657210451662166551741882231138679726960043582470751125009355082986462214202732571483367888715646644063501801287667498572593950957410720193705307972203473294408614178220460039614072905628715787503533901522317317208734241338571513944057779152955620319888375592787892318811481616687603147588985376457994209914405037475004946563773484252614592739129606070097886506140466203005282004557203786187615232155330286853246306752726431475661183360534105304334978997351096152699801312758047351722886379817241915390356501263101775629701349145711557471011220817733163457863044019391148724087810699290360070687797583910862231458065140985138618126665268812327133009322794138602713558755067861248663641787952420589813297917456507360223024469175691078676051830060233095531043566213812928721235280757171672874342917283675437345491464940606571501220932065184559174913395806021398778572889542547480140999651647380169849333438778586522895886952479383369561721893176549113375223494833187780140304245803960704156864644188656231678243908537131377381508195347968833335862232644246348794312933192202860832446476044507764097592680892898258177036562908509979146644028668442965815934655744907527051751523094712337128061349977469428093266736642643431213257985449374388680287200133465573249051618637274534329501101372500085015188386246624791230728763921794763136507438256215039420560866312707196254727360525529925451955171120646693442258707263971621742282569581610108949095561905715854587131896711909957996578707832333150487249472713793102008888091000068190385467541675259090621057259524327779177060654284498723178693478228164301995090470089164039979490539394222554223915574970724208535503857343236030483691801540627034985622816309200331064980117748675879624399522015187477358546414676378549931720244553426213482196215983361566933472217047002459430557422244829065352742691516122601789599967705647103517714773167239840135704235131832758170355126644700656546284419320162880597871833703868268142160620444287080948819235014158175606024310980438420927218675206865374671279798312529794383973442411820629862384400457186392269922086203495593168280528441371164180273245238519196889714591074405078633576754066416083407614627391402788862165839312512902513747043144791527221617975452109890037873326656077524020005894360779819909764049423271195922371203824458494964673828337215080399031793484807593463107170463261856635031479946356513883017156443955873065802497871483032077477790859366212575209883435388733083803669855994917146667323579721237373972492259124178061535835604734578679706358491807132467628016110258821026604419457997741595236259960702478163060041437966963654781439123540015883348044314135360508236277460100647471255141092226179189866892574392943400993139685766730136588860155543781243964262356854235286039346372791318570226686541685722429738761305753383965220969532509875014435934682072060016313157690028665692046458042792206000083658031945066796958381257547481299021365134507145430168758624360135903318896561700460499531231217924981174204653317796738256713900578017141993512686121180737756938802268994537366931608901882701574091607421801318640580412098583311117757647998282460226869270319790573937427892240072316534656474354185964602136878844068685755332815499325956338147017327082218831473707123339138319984834747390323456237019816225884000896720176195963423306276147960315067973561311254901151558096160827078745515167391341869197448371370246123050494462540736490847644242763493841177839176332361076795043949986464116597044211353927105921355333867923558438730233737918073791732670952667812063856484889499722015806252820639713944046186388536400706922181574119976955821030322659581525437897091948399805090846549906740251015874559170635996657022727593733553341471534942838933528560098246717583301549132877661922377859697190408881971000413347804198675164930631643057648418440591801416118692329184660347142144589847801389540223769337009122640415838808181077761067739751249274628291814870006407623396378174964172083214546000232881601097017655379197787815653593985724443923351682240667386742856642926872734917865981295454820137386344198128214195085911065144301640478862836459404780300318372123450901585214214345588735460956755279641185066165421507985834479953795346059243925986176790451736196340342172426765577973903559076585841432679455577559900507653278986011847827305704469592504161363212290166414471785078727223198432573277605561850008082755065077324705508016360062912088464835342796866882182897803973599515344047679453734285254058985163285571914200835295592814550070292519213201476783294888199592771557272595780623588130671422748956549651873103573524706552852481293243579457455749476791204360057777299875810229055704853934052455644683831770890430369838371309609267395367679577505626939603231009649140392460450598215998970384407949946832439798094187486374230429756721762939378888074849247884156673701369546826483705779226586334327036429981771755528262434872462576255789513792678018188228356588385830337092462995276430379123277298387016913026160659680792861103039189174658559116948580599691142327261503845651439655373053336087952494642583562191466627374788540681881290690898267327591032268470104232720057227771066800852738929905666506107625249633886278033728052766827071830312584311348747851834923422651404589568179212988692732148766349596842689992964820329809319394455865164411749835973735494005431919536434315705979331978358155959185732064950422971593988144569691932215672084247310006718238599381990492833146108751824401833454025308779612992226594009881277277257456832444193466142097125643984457512803945561762234350855586516227630609158027689204329254440762150991463618020786419527454701775068160233969994769617880863752037762819048415934502671603061795212943899616291914774173421996901111812695638423327238389991725713761955790617295533410030222110116477299251318996903970692237017303072798338094400987652324100578413498433776975886663291412197599263460784877702826148456906600970133203929561607833587101673508289678601814505643986806990631634228873538235823465515925434682323354091580946895681622960331599616247878929429162652220760896968897306465330352775818316382651164062500662064326862899654577622029035687758326900607887878982605643147115243634008242944929504625537994497862803210312866133166925183214231007161778503773491759927787220806831483758239457869181333649497582298379693128719471430819746265756612854039572296564344085540721486264269855763504597007393908410584999144095718069951037478137053714459650420248604122751601595138521829785127198792990715312517438698809315783604277003715475875678858092237863226991494496307013588175352869290925206824916443590099193918833977875667344663792874562548041765588235389560556919374272263310210789114009151125462206192126153469314472949892183827707794524139643428932525508469535446827592709656980128919378881193242216456398961292767384448625108388168700764417078545266872770526450088674663113029183571121797123550913811445704760502396079802428610497698434948665408081771936347157471175955960489768558520269494418101158753486862010481077582585419197924759233062196192195395572974369026622178475472876946582603077828206073135603216858607890925200983516073393254563697736629230062075839583864540507619191030030352611909346137993142324537639725813665717626726277000190502378634531076870401476149812707143033123386995698264292578917768196570678488817694501515021468937062764391425078441711103640049746613778879920883743148785844813008993222591037606222242361207622466248348743931150035732588888578745208906758207217221636878363910691482992563593033692962538310791723402982967200158148653147381213047614567783293834523668078301406812915120318722530370218514403486248861486418058501277969274588566126384484407260393512618859649160283437884252363221375379198657051374867143971238511558184503750237801614986153714902206984386818709630037056011835446838090808775018052378783401767373360628341301221763163170233481402641682987332622008304391710669551753296638698300392724245031938714347463346753453654585159882982823412599797307847425148954203199766124549922087900679746551512325639895197094574091355951547754644658258231516988489437970965075172054145893991524849233354273077286903326003373460739270361165911419778922923491206033839401720779549456456601930152966218745770981467441796135826866700591547476723591110053629999584147571922337340216764837425459303953991242555580014822438338816729676626314384941399788346499619605810089224454590012005848785870582853415512949505280363472074658599280206130485213134960419243479105240438659753284713079596617469297417762449004876308168580386399024318313945174764509285175619784460434153699776100316277988778696357213392917739596741367588627915294393820110833931048099404193595606762873866557716253126880048488182345043668609914188823046036245259264085592435711115030617552017001686416734265364494905079167444953316728409157259564709202052035945845639254657664766529550488898679460368803649455865912346779844453701414946475212581220275084008540971617383595533980020679685004806354050789235033093990823873046819145776666248080089884112908546296547395652361812003798781394603019218521815381015958968084828975795622815520033440779838684246967817515846531894432407105438125148353643722405333355141329181398991155102879406216423400119848836435219751557115530873035710219896230306789355507259831331343006501392279716915371112121733381523007333670084767488852778353135566957417538706738169059751120404490109230714021407658741678470374323129884890499893561582122565887735831184616877413689051646550345065538294969805423718106440078180401516088433272588440079756791441678160606100362535809905198730524002576264299443845962199898101369395087397630854125924912953705934549035000319077736626350754375697239326073248039700054989085564963018366198413120162033116766985606059339974575079275216438205939167090749353444853391344948982192146617138259170230400304695982620460929438381802239017554918882931602238399213321730182732557927211359383691881392199000319429886328448203393609462632742126458891193330937715336160656831690277402980719037687835493925629109527877422111924650166571642250388890901775585844970019236624813072062884377109720705691545437224729462791525491215469034102391360661542448446271299416662279910201506287375708887892181655338933292958811498593722172762845095731524787502186444363638707407515387596569168892069871653598708931312679680426389179172613608643476560031650030575024207059036324566396251682867454751148140703367721390815341109593507091178509696352754678228272900787925419412884491157109124607869293867895311723557019148743006857788626689967475438494012988642966701428255977200494138330497088130435549210871737507747287324126135886562429915586840327756972115352107487384494930207923195665934634553327357242099032269182758324468468124994629739043642410190867765712055586305828245221586106822750646159301736596589803239159227348516010574767254018940733365157901822644019393313151350753300779676540509065147816767163804965668592031105865188400195429376678982221418883664797614309544108098155374068079199995348457740949502955357842930978963963862106242817194298704993902207946477127743113605995847720205987910162137501079254848265399863588687105873636255658587090003864081790519364404118088761210734104274861492041010264694769397068384629606289298936210197934548455171430663451180617549093176950532907228638558591828049921712067757054161423723328924723250104835579444789510480329144071520178633534674949281560451528600256718897177430316139768535477309758035113597268806888115916737089214795446934032123125036867267603771068266526040233815138723127834632008740757448737420388183605961542761095693933680856149980903777378914771947892976651907818924320605627424759536089547013314838021399547570644477360640419915432997686972831974107816863501874555237809843514335288403444766765702530322827558197755584411963682871645206716032936916161521638766331757349010237735793709730949693651266606926624387050153172463086114636374927146735985287552114928481099603787287834538302638154797764004509580553072072095459442355531193573610579197294247083096162764186818279119475925554173759081777012321507413488043532497481293372142861959332375146311330265000549520927748208043032347233370514752744494788888371072826131297254669942010386405126286576679241441574755382852436431290781325134919260358689712674287849319370371322949948294511971447687319129890929210074590409467961418644050399737082116385783151833109799263560742363028036123399140934764205475667443294273830138447637390332663840664182414160954756034453782457756094646531387953433638984623790783029105137037204493771752500182923304167196310001147926150851224550074419793437679906309289812278388148218392215456532625070944754683534951418633638968271413464953970837214027445273176626370243307002162987446501013270465287426318070964577192739539509644154370464776018845185283221074857904476251623619483100380339537430602943236702935341716207788794817005086282055125751961727944400429328014237221114894279680701336013473823594547268063498666910760778440430193416790261103456661590330936380244393727897031425284162755507454255172749211527088848924153596051996874300019088118028807778349173761170451375039683161872655401277978291995349071959278020700548977986035349859562883510759150103506219319061642820923568352975684973138562752849442822381990673333707682213565221513824132832783489924413783725497958299223531763778810490952019642106274648352172068886442329297083173527555346670275106925183725593293289830367062436634003526263866310370678024243517029997145072421886210321067794780283330277727376205544249340131724488886962075605255449206665816851637475297887734979450908226625888677974406924461377796040515697612550511672029086655682832660991017981418589312903429739213115882606201475812816667101712633682871379232620323838053970178484938523136092682726088933386442130630564719468947024051493537733800013680426666182481785435657628726735350902444804674547864944805477712910147530288912798441107912685706517007657034193683486836299522138400027050429078340993626801106502793504755885986356500660596775835302586350112421109441718542259024737562061592353555652455662892753420810105922556682999261065268923718197576076887752632090973489033948925144758522329235448540280526310923938342952911621185079470287076685960306612199261820738121266434615861847789418520191888292940870049987264088545021362044495868072328855359616490141216265678236037594461511756483347371922833893179317681771327850004728415896406712428436740402540409942597441355520100037461101702118713494348686669566949302419221727932828456583395826226403031602391052317530562476865809547697155412607137495702771640719588951305757032633048483486811058877242655536711575629844949301932878862343170242108312484520765985070729716135918824622376252803725568059394250250035532345590858455861907269387159224932548844524295207420945225842637718011293072372674927928747157971206619111686491255126482372562229436951590350123916332680810698837904203695208194982304887935163505755476169400589268570532661543910688513478774928141715251661614815448205559857758938621036848288212469459209760582962408148544720010447438170091966271985508706260258075997828497929546056752040903320842623007800972001004386088972117005658970798735567340422046922590485962838761753591812531860682815900873500114764589724381813080280850430003042148698049957392744823514708334467419249459871264660392914357046840705867570392723972824884098022641582064575760869600691075920195623536946253065540684628076617933601010270502803523384510282853084974236498061027501359781438495940474616112081666089153918425253227689402548101206877673040349433606447761811477914937179043987326897460997273089463437771041823212705676177239456074607433609373707663039490974252266490647486925415076771411093338162462366341329085329651318101273825327642072634012968217899198419515912150933274170716849054649423311725291208039943960695514808577042109736315352726958156588312213627251402843829714787099937475113163042554290740624807068095170805045764001022200077349679555542401772967633877671386505218877973914131393664951442336005853547075510664428205841855184800498037796217681004383788843008746352340166071053718512416750068034293108492390463855071640077096170728226291835222813405055313059699816046789588786129773546158943072352951308487384144785215264523040108351317292104905914798838329416663722420734539564714508853228660004328723508341858943218909095599627193019149274355176759576819182573430908984367165232925199772459737399245408807245825070590898070614329668568930853883661649227443183258354115723464396784944961860125012604173964694963038682492482476420754226915044828378740485182148430757602670699582069779782112167481631165019905860147500129035365229238069683370289542428872783396767932479588235074661452392452398692873675639934710005859532763167932538319122310278403076550964801009851457258235743298826459061190804813959472213350238018724826084261709439095151056271327321960012553396349544042811341748378942268804377664978516058930328680908178661338479609362862100309715121795524482118588259107604418240532787235314020533024457684814020308175667487591421851823824673332067420563076617691431285509839546046250161655502595993310060626299899487093210239615312580346612435142834262348178017771979002781737735149597307447280600410275160309056502321969772567959931710730129633345837651453783904067911983516696030131540166182796275461829213084869273170889917936363476154951809098880477457676977990243441258081966527129080576291532241295499010549211455677240931721401893901245679981803941720150437733707925360491687329338421089839309221426946622352171611727202664358940439053417776984550450702579247333554038705439532500485306965279577670905422369347166200697424475583328949566754887014672488546495825752059386324236582243314347330277709143198337075735975152698389582524201344504134654787471148933908217481693729600107280255284749436203467764308944633197774768465975322570644748072095280738156845218441105182730002407391516971215988877562953689999375398394413908683351997016872374837459502030259086277308616516945328930360457825861616638885159480895796999178262638544398519688584714613505837937767265850992672585480296496730138178294113468200450924330326536301709026498019006944653151656844731858230199456767577948606226354707054613701462539824915822601690297478925581929279789214014935266592837945026134813162543980564789964385412322371812996599830468149979838069567415626467639965098755118283042149003940073176884840717147604879734923504489712292982061719194494134169368462879785714862920735452435198984103697676210268475042593926966384369454001736908110532294493063680507124408857439412010044696963116533111943794596562639003334075116799305736857729705662897851240972854284734689944138788965297415718418031049869992332760308098309941962749945349068663471350909570258196105371588000900151015085993540872848265281366952949792655291358797372361585530312432626680739294230601638081176673402456133677974524625861633619274792593532024697830076633061021028326643417759338057238797699863971464899773130750866964897166981477722699215489247201784252627892812144716711240859949983841394330595998049654994259173325853410126125496795591244945244707409699687140384740287634071227581371261538287888738309155633737141825259138301174274843928859357451581321546001540849744233823650390941296949539804471637051644969649189631617531356923212156634073349019199201172497815478822383599260900732283159988861454874341317404028686480934708034122428339507578202765697421452791014414801100809522282593205329432185778817213661584373628229402649124319228816902446541871543211650687460650962096216229771090315265284403310304975045329232817177264746046573835227111795467359207589736304317706870512348699965062516040580932335059706699866038213343128185317891310866866925684504070460650339309219104902669088523003343203596016429606371159900725927300673700008046276608203009275475917766274071103801243687107490422069053959835860368859748417603026545778556759138455708575259479971978819093190170692507715772733770854393999273331566644812906007780561969873871216447069153578965950336414119511005222110072982799510816421211880256251779182205488855227324586538849995583475124661189945044206103116032190723005834843971766415185655696423178269529417454786457050086660413711279035463837258452130562472123836448507214814494572273406973056387762947713861458333855474341937212346860665295057268630889199287420411133057544868854743178806503844729878744636157373418486020639445377933554938363332427649068376961141695747709114878053463739437309173289331519277835942158861481853169440804915076250708339155710101669798144353582761088541731125874553682209258112938955689959162198286303526562026166584054821589334777900339676272015964561307778643156580752000891417742179405703745866029944005529714184939202910136692548495016310976384118818616118318747670382479840331832272485999337539384023113118570888883485092650200737565356831618000407345204959784885503192237207871843749284515983258381921999781472761015490971001023998347961498711256171482549388153432426994876224209540607078495900593943978205241054716592977353400080182057734265232051192336139803230258699960179982172565818448866055142181392383956870933133864665222095308385200183707134679982399255298065201940627008250825239183124999302493047911112940766065670987121486072343951642725867260631393191151175378728581506405346968409826865465352565306101129944916074293626083739375663286865404787724177239307423714026726288287793561524268950670475045967770968039189615186798195004257462924936316294132313718061982446520325393817243051713858504356625536538630086285690388107705137201292763073127832761167086454256344773233675539523815494055548567534085166021430472465351558233424971987787856777465978908389185242069521631790281659064499251786852825754680677627525258806559850400075479494779702810896222718748509873593588338647661126806905898127507892501387433424821251777361384331850858645055307697608197565551595115015413133216837595241054607663357827851674880829193289345267108643392362200857669765574264679252786440521216916532730321626875457367317627792537102225312168962496853988026664065487210064201510433700235833981139601136771573717338266181931750874478218810374678843749847723174854750900176137278358044135136732769434674538353974464325945616178455408487884211444802260138176935572803176174955939489667305225213275561597504508896824949602183878563203516313421867135357641213083724539961187619758400330832438750624903906998282301748187833011205472559446127727060063873085743132765464795072810116607953150106380385857020339906100725780006129267887923010014609755830986383844630064034748814817413701590913412466865042004649821869216551896579934600110883106113523666917013723740026706330341548732502239379700332404020512669376498412942653308405926321655580483012322692574822599669494731806914742191703217887487532334880864366428618227753941611672988429826535791100535702031016484081124087805988514677249443691760489578801298723322556471313643010181518426653412170321197711206433451962590727990874720291984044641192435814783646939756154397465690661868202897922808197987651570093829605365008185940903517105831911632968735648798920328891118118666987105638861790213425148509466356871337955602481472867292592528545419781595766405152683029206208087743222115942325024411871570541603965574156528509897480032383650859712215161611561487773828507452403979227956050495320329156632831714693648792256984342575745685198034655545655453440011230033926608003948471069590883107641512318766864793924937183153006664449438197282330947223229508210860901605212076622096251331107737635334256659432345476669696884295792290142556448633918875056818230875939254627477424065826014006112583845728552377027989278201295317798182987610854431791118321218490021522688005430542134244339476403544490860049653151697587111668192301987261963544032091813170099688730365580951395821332262154566224619400574711432903007603408663082195115307527456698733399226864068285517675762247083652488630691383569828040247506763751833394368299329025949912711157067653281819604951094028188070195839224409510753943398301699676927185362039292417420322420232266314220134946056919172903585219927416824998081647639295351708613715917346689453196484112689221409791936545185145777477200412326234530222999355308892247279339881484080283692874755173508261084845044823827828023343839139491859729552712424869709112158236633116801164489389248206051472048755181660560974869843425797942294567810730032813493259218064234271277666919449705915399934498783712678756872614626769708679681133266568919224618720460172911926518719213499175398390772161575642776814875908596947416492367803866268881607385884006861396326892120542840783565611311856808796957802241747169690789769956174087501605266659609893488016288056556787582479609231351786832253416602132144709322281964919499033768043869605575969516720127488819246681998808650684519777286485284548275790345273315203355588231602590595086945537804171977193904203979666915807254688389523146533733051280535398439640019096992079780920067684155984278523608625537724182209563231695209070468168670915618658580618005530054827381240388475429617671433819936858557612573409902550715839639556179065218688664506457158194906188664884792004317972103477365706685784580322221401061092060655353726086390491411729461750067742561534688641090071311791339983639073345020461915194809617541648662783860857205969928494258723860952946420048131610322695791210905621767384229960986586736051875367541631239690084969752719196385132833449571597041517442423980182027101055647626157439398190408237500133365170640802878376760104259139896938076751659439959540592166958837097648704507782767316354385436992107707170875983097806149755655882856442485973117818581393543587292907844554025843600507987041067407309687773395547894947084692298844047008342230541561877932306577084494235145462232661001564973206694492393678102128338805272427372308486431753390973418311143940187830180808692713020540913410572557275257543961001009370835907929882582915404953192140832686769933189800975930045907413104874831115123579505785751201201821299401856573752819187908988231862583025417011691398898799332628052830972311555561617794777542036423465236420805399775905730608318576048447158617519491074965786460510923247920550533020303854114241266223006312780949534156589170736287450200148881424233566571192944885558447592207634290834843571630173189340263331189825157213662289314428912434194341920077718583880749100238653102511784958763965858062211853514519134650578908548498529387949352842495932568628807635783946017161369704796557361151928751971790911367612667086548339699330682676241379937018331720192728830039431677164081645457995336002743846700512417162337803509939324057133929560015208405576653838855951557957085351507396318325695199148845112686160225024140769503991092808575037306345550513642868024960277036295582396039813104274138082993582554725639124673063583677575313707841539694959569043386064672883364267018966585757361133462177125343459840902725603196964676168616138383793984581275059313236285950607738756333339049718364287692185186363094242776332225327911820730274161754132350684961495213729145659352824907818260499240914979393448511968138882369683280222764585829599572927914643386979142986607872407921058264360589969808358895752525806507250706877676329438551410147103929349644640163137801544640244957372308322623959508052959508942806303783251140107422500455149301190335193898997925060003960386065578677497527502566109072254329547279108501169257195332713423099563027216049555127112684869645170060271373262888465971464646286862255766475766446412997968343417386989672248772807923957537810634888556475149609212607314810082513718165234127473406533367534406987589623755889642188456292197702816570597225930775289451083264652259063676513256544946947082288259899272803752166027191327224056302406072204618628185444556032916735677187170125356652578716781218657154875131540715746887983702349988077523981203818066779866809724877925031717002617982471914783014195892689645708446938139869573967579256908921521907492339800345879104053422105481062101091333017752436990298262855821267701735764601398510032303135392197127210834321606233481636891011651353112246532680367086099281830454435450540240485429326426318405395446305843169585724003658462803882337176185406388702203322783458182976091906269531465198349621185740165945292309541660074256727137433667452994801731148821201660431839404126918735131787753072623783354810093280416998169702764789639446166002046908141548569800330240607848305072376854030866166017187138215770713233902975086466005399864472149426355353648172925690580994104228003096709226984041160811511952480148130667973663342999228739748300396530679357777275977188437238876355869811050142803023954868891995141195548119874609834187752199313951796860452073407080040692740382151588118763512777635843406980750238800234379721954464766670537045915690382858960209809695657348438474141966640529684641690999729842111819483218087308369876471733699749115727236134965436658738252781352458779674266315151545550516725209627932439770296771777976435859236350629996249680962484410697595012246649439832205392282033283274182339842927593331036679435550312401365278131111634616562500120838389576202806255119754835535393386212252191224528049083881697034820360347368906758939024278256981419192606044725960998830188663113845030198880240916799114742684245056980444651992920407492637599752064440061011975742209138316479879372324694715086449307132369656965530817898068378804931394729924145109845397561730628787902708476457296940047962744273384086163993031676924482943804062440857126063761217308966458218227051017376007826552948252131239828214891580099738469872486105130897731589306175312978884612402034798491891315500460469918605099492336480853354475890708256662621637769235586767517230997851442608224595020031735424208859356564822026114892282593979470250526691760587996879441298740559667920648833261391998361889128467882948166311423057184288969534323339290815217810633206052581097304299058239584781831367892106696607761013406899202459861595924160531549829157384753315085093001741238485966118090563037454627692654069604936350840844375249662265898527005208320593533244643773434416269461171151185453367146601791656283146344719165092237440635874423657461158672147765241672446827127962725243796150963279441209367832304784929788637544110265376642253772150304431093454966778510333670063829591617155420535985700514687576223504837738149792067438140817238501528409913957493333186839826605238232032102084920057627199677035596717632213672724810910979700199356197938398939648046905516962995939919942344008946846266866173733583674808444478103337010788257839054658339073713912528622004258026650420172095758925305091863790875596904372316575236081446342571179248896344374623448637461304519534483765859009438324068450368096314211689060555350312730357988226410166450737756251464967279445565292392171609904352124493277989904927584577101885732168401302202232685786413906515166678404359562726208636677700626046749940286430586901022263806665503390496261103877485914233071782835787904810004827634186403100564454473443889625505098717280420515617589638438474215428525009307567387548716939448323158243713647377634577783104336039550307130677038846280267752493730424829282840063733575861903252701259295628699196468398089531502340053084581416180338667202078003992106816834569810923200379972292630782131633296612305812101278022935352978725971050863750910816820323684137135012438364714822287241152921322579065518693448158860382618691863146565729961498674068565001766159246014912361876048158702515398064712660520027836916495775199900528614743273513022854525594963806796022628583063333296433377327722486565344372348171671950872775824355489321959312369188211537851858702554202889877119308084903735703864711410824929028176629664242779201025702859236659752737800174117390971127483804508304208496216818832233262405629553804221885087627366255528661919470474704623881932895490527537574639684208732836770928906955001888771605675577706855258513584940461169547273828071276015451088028290079786286426948781343227296866124399854945783602887430412480425093880091641728501089453104547598242466625639800389464824925802529972790720073452443715676227650056153955088480080343011608181366214142680454537754358337169545519865346534361880227776882415267927516476013578069938384692092273271715719978449419420501049722427830381211821030445824858784359003250831266571674498429064395352567878750264259924887451290568608255631107276548779200714683935550636236948429483526394197035586066496620177935345878749602138563341552811727410127789914040568692175068614151733264580066043667330494314395991110629855774754049168589328309203503219856777119036369145953624949032565294449068245548761647471876101378989456396548327900508883081112281956681287390505363802500531331230423851766380992838990572382187455592105854852082891969212655340653450275514788140760869839615412786174140292483828451015518305150360847903456229218072291239668668449096309795743531330929676197233150930966065970896274392618020570303029919973760936531904832657760933459811389393632865958352338556633829434539441581785017215960515382483025070757275043288390849714369067378681872469626320272455145687850394758001324619087207153009137472639146762229027110792502975335754257380206287028504000679101031920902840851234656153120634364330450721815476497760378414193914173969664510612595456060381259662298319084533363660633415345143093811166773990491490920805111151367977280830887391223585893675697943446383651210382821483205103738333566416234090776146175955819191984533671399599281392967761350115005112104195768539524247524763521163508218684624056944588864882722536482002096372222113947538552233465708835530226626060603188055820656686722212877219571051317617880648371332350844062790924890850506974370542027085300560291438254942125306624744128004730708326334649948413671767811692868453922074425498608050313266164647004145486817707462615998507547119306984210762709024299049050776461945501708970259448886390915295512685599973732537587374953139439432840607863884566682358858394725112761113743277874750017004799208682266266338548629769062871417068750765932961417002721793189587014294101347089534477209875220534165237578729264638654654289985776960084465942906159832009548030128947755909954668689755880238644374233773367816306940772021476857831427278247202666877364061366986488814858266383922758934604931137374475482591000382333072471809377384680136594010724847615004360062874310936776872826851496192995772532756043659433248395011055005501151061914461649323361049812541433255320457675440897761277545615063517066982569674012564561509703055605377489911545122562569635737362425692700271710737869035460443981555313357504586276493576643458967343833944771807495447567372760821422935071838465245324696679427367743622945114606580855764092483259759166621095910020207441299768611436634603167286778466630087623115391726620322679478746661053736830644758596220373950462310531508698232764277765518625037664363353504473999130251945205931774154082385995877324479612812063369973485475284883470211126623878201993747499831645619194173166704207230611853482639432894888977317912857753499709340837095139262333344123177038866045207800602082548597242694697102840041565315803213241288120367422671553844911849619350313477335718774585005678561745262545311911211179410126211106348240752976866239803549701490305850864682069540432339358811797954641560981221799548997184778797753846283329283858577803719886784186389385552394848447169945385299157653024784489108862334191921984741308875616346563894158257074072424292932766301657126247465119757599841119479518296279644042022112538092542113361442679232689366327486998688016803420406044389928511502542644066545196974946084238568120286373102788556170823840836170425058450211603280065710275259383316924094072197997406565554723101452770447477798360498315057380437979534532215385871029690497971356153933277954887298103283094003101183555161306968102044740054880868826613950733928785950431906674557576957764709227442619311929666714605660431497172188682885279597637676402963399978665846249853412200715012050296071172214446865827073080765774322212675948452997375318477107274466336927258609488080343310723536890984771181750276368635533762210346246555590615399664879586090633339625147358389367715052639869299942751249430831803688013217085254549967060265810589688303554199721244304793202643133916693004097130211074096757001893908580726323835543138690840142952856161100539701617210489747353565792772234761227620658406929976965128864807815945536607760567845297098224903649335866757811997542368224305833995205363812217208498013229005360981935204638931814432191602115837565106264656249952801744265076799929501763983963953248225134589019994403788050117686660209773222159038241789861589120916241096403676805064120262589277464210943909474782339353675406211110209086997451913634763707972416617481285201096569522478612245749466876816484313433567226539431795689042909640608742747080191768733334952701036354143220881532331848186256158516824695477330853271428017223461400334805460721186604359235541360416521993784617844900717644887246039802841162673337254197946987853070391217936973355561615455327529460474000406140621250497882775931812271679016394264282116970738888052994914447195264248483776369633398008238976447833263528234113518466962452452710482839767183774055707420086339730915081281983543685862581306203119933592782838291432545476420087403597111942207501686448983748887062514501219710496022588863400571545775450029195622782311696189292067207627318324255173811570590891757112884192637396591256041856118455264116155070415078881226513298379812074830846416317487796554119249333762266926647058737641497562265113518535522948433135674968848959681771053306648949065198545947073762324055222927028653505948923042572484020966623197517415658480925319401031468859876872815665452660543384131185226426370130591036730800399996214465069194903709002343629912196946658702341998977429629662699060975968142779652724492869065797714831291255320180880556712063548295411583019884959508785451585767758594291537959666367308946193918094843685163594907975343662737334743493655058559883700465424912047497895232860275140932193123162620413606715489246190963945093630527805737615286889511516855302866443610095791768514046120422403669615964164390060890195755922273652789484372590775328509367666718565019731757168067867035489749339765571804144956491527564624811388508716494555568465965478595318595623405305262024745411805495620338666043339832913359190607551059367807567066109672250517167402713203080297159238231130513852580006877309405054457175305710929628535666569527219985332702582356142244749957935317705096250941649667429679395564619912274700263949633820149802555659940748881109128244653294552748579323787283281552993672616093591001929399490645897402135103127407247022352625876651189977819912784483285683811749851840967653102520078475469570556412139969321386851958288304032650705016290460808142402860001080042510031366578796286006882129261426254326778474287006287060281192654328401392974573629248149807568145213716325267819762037376570398596214490562135207573592162445101556375889165951108903083842012628152318485470990574913807864014492539908791856084806447624157979834731515037982462110798573231237985409742085532178958680135479486330142217563857247063999731359567796877382616493189506080664032053840468722180908254586672274851623048266595941931033040947584452304983443378638833283044001550404356315165326468672650124870592458247492479109123766998216958192285896716011865572488795826648487890204217500537494407940470951868052073878755773441637299480627747187072000228346395567332460751202685243175640285907506152765877621256307201375563169838944343008018518201893801621821708903418946880453521871972289499189967342152433607713618433602933167104391842240726495262241812593233040683627806345550476668484394842898872981563483366473811479406728120989556057459997453312233625003599156307495594467590149803133780429700354318401167851287623587425916134016268345591088279681888048127597912236921576304951377821441494882512775682734779762206058496481050215659178175818475091434709205669030518438953852132835120803467667950524090419785790363036969848703555569596273090804045269282838044156939349920045884329775261161605966293000995795340130471660067035157729481646101021428970758220436634643557420501242663561764755377063316301502654769266406132634829031424286669429007629119835586254986176284317330958931215991851821727879899508118035612903717759782762739919738697578333283722293139444996571946694907426035208019968371424088476920239239824919823595612703282509309553328805317706459929753840833925866725563956422569604080972133574731813399461029525607495633658329826211637344535399285728862346821979316313031460843530665409632758843759650340301730240300543625159257934227863571833751784736164217512771254062004161701627903652016639729272825784181247062398711854153002832667275255647200924992431487128104196699389835212398150647972061708866406999127738587327207972428533750144325770106262344083018629109647989416807892371138413337116496528869259260222753804565901693282262562974268146311112627675903249426513233015204412475255794896770724059659850462903381150517686761404958509852348058615080000551069900598944217076086069671423549724355922121233189514430719002873282428013167359362335651098166368069348689457313816852964455660554292008557505193649866392488989493269667630025227294904514385950486349559633893154259368601047436288978799205296080527546478687951556892759053913773530841436780100346188692464599505583958843343786902414334149007892573018673666973601718547085388474113960982424777877921081575672443711230481382701215336682772136920998992818045760590242684809242179289471487360433717139111322634758524096452235784134329265019140836515877168078868354989565279644182180011403952370333151509503224972356273760605667763309691657102419578812934251917024800058907021572116368348630060647817696666909838411722742131588507077569578785117806827221136794281389271946460183128172738764322006671712237997564872499304765126202809451380721643848131079573404108802209232714434277822214071429771805206781221645584943860560964139882930066631471843414878690655473294651296674689502192500949252424822578892473115358251641015748176625600114625939689722200517274887990486426737704342155191148505195692194701316791334811027677713886213222815873488807870129711378112887639129763247035400820200780574508663281957637687645175306007459485099053845593877135606546772578155963913612942577448893431794376746168954642061841023845728265277619875076237837834327140614440321865709806848294771526210864542310643635808901634907813724004326501570550368444431391374474947074474051035450941667057222630481410567268286346852067962340980770470113541155426863460744419059533623241256909644300763838004227348342290796286447529300024536554885078081240645281258604777832948746128737271782430598697389835297314221029919289574227616211618732323048795074854986406875059648504272152890359367042477938754673226591443359286919186312000830981438391816635932612905273387298159407346677480513257069995940033702902673110490354105666465189793455319555328543825061971420436561340801310097392372507627640985994824547305418953156608010387287787634022335593834693956817479792922200070843305382606164371299326829538478197895586451973818677443694197322526434790579919109675158158780190889392635281796850032609408935640410254270330205261222941751350292090493497113555979527817906333930680789431588571396505800913525577062233656409559152274898522038269570126503468090664470321267699683107202137998148031624891099287525350594585329478713659026635549107514019583420936115856179436542126283207747705785035448168728573411271773628813904434706251701610094428824418090408149094351166610392480122901555395469614883243531440262954496242721190145532922992479810719547199942654934995492592133742725962997375136203066988164364135906272328965014753937583542623059777531934754306533817584796810264842293290813908906306941738108665730906148062507019130266156022329331290398973660803726485089424673620768078782861055387031804610694557769440856741007127228621879356452959439076418096403900142805634589624131139486408152624430357313109909453798675267316091278437538274302339397310122081534968201948969970814296766184008277821915898313778762241691455686404173266192221571160476403523080271887708465867534495787243348504579835715365719641365509616397971331143290364782259717682722953471485014856395198726972088611528878085982521724943338870470313008436119627368161313891481392355738163103441212310191740286100365687708222569861200522909648288109187006984844321794683122404344818166423588755936896449157906832130660412727149353273916153637629898698790258952314207179520726449124922229328491505401574239561861022842382314274769652394449302727311785788180148448386613923560111590207932722729525631106370153331239708519916756497965053066825125647178217724888826259143957771488274294833652555830354608068064545720452148485295642619243432694486737146928770673975870618006623939780073506073613466248392811073730646467789559163173870957097864928533895101706253187742738472410135914575696857658700698153724436759280054970972833086389968470933438590603365874419243145111157104773119488612928971641612908511879074396592490643144586070560071173170014980765988520317298007662200211475537010984175864291264750959050423940785512292706355848847158015704770349937001386550318505131941406857083080934595033270932974616447498690427073632653830835916583455684193326273448920870463495291945279467299265555229107531458759416929782551158884927922846784466717051703181303786024388458190923228813141602138064816492089739644865808025190227780011320880252487499580243684165276994380203707499071527948920101673937413885153450428648472983205465723360798308669509669510095103678287306469645772284442931513318321476717541553787683913992780159739223132150613203505138950577092242692135989086537695107221623436936775359398006271995135477957094707943020710899785960318423154478585458718845845724507548534619052773656475751898378687837479887386719754027166154533523982199377797069310987285052561804613017728956229440439534902424758257766414818506475172640913911452620808336816247695139016348583752435511128054223502483922359998768338856359532058465657444970653032194078513932709983776157244554813157877346513170075553225946738669886497433505377860582815553859290558029014460542157690426941192346478175996783247322551594564043663576343148928750853027368890788511711804158156621552784344492875339314156733653957071143777314641039336331494798451380718914477883939081463477431118404166837701682654205778190880161374242446249059276917831269905938507913704750649724393013586328074945247495652081695042274041950553912603506147285228897560217485494936610168434525655550868451776706331057170716791460585444718044602980237662447595138895637385059117049351478437109067412581835223337931066279719811549793397203324960174591811000152064271970768431490122565350460925081860745847232562981941892088133063731531633484546623665044465963727319160363751908320129364490207018808772132588804311658695866611500859477966051726478346772501930372464294354367389592996495984924718594986582484624745452077828266808281336278477070562467693341846030061501360599983655267500092876825524653908753782589776052249428805680740479709043529810050973327212121467413137794207920689417108465394335765159879821326104620707896741347817347347275867516486175378765307719882681066543829768961547643814170556250483689207074040188415315770901637908709862017340292383826745440276017852571366683028093135255366125709509871488999328756463698232326732007174027154391529540966558707832054574961668632410074282763597363625624470425753154521431309233963219476061054600418924911791356770954479868534168167104602821387475613288534315896378247822541355982170415344096357774601539763323052350647159092782309255058569646026972168708972795712446137526465646301387588145032243861303049628529741978561514846749587575648643509801784644993600894917686986801612819968943739067888345529708032185549131430864002825198247969724836079209088228393111606311518218351722943134419304897433241902978574388886537863211696766535201805430133676153262219984129303768311125112643989778896004501163852569995882352855065828305103743417095043917616024181617346116026487906764639919775123712566503816891338340163974550108777417837681906598417572272321165971126075798460486774481482125737210415698123584789390894850763364145482925898719847717135320359651372272546727120475553690652179661201252186001388884343895472393377517667426116309263627675546332646485048916466891167426902901141750276825433745099430717926344628180774676376216691525054380914153021879173793613611822157779366128119748041011692374235117193898983072667885885048879060087015601500150373026436884773318466429442652983814742054650658874516250338936727161636024464083693236591134237110337555828365590488220867842382588949144745887349248247658163815081230426177345231805865257662357969240840012013847598609368899057256002715227055327539301586979516871062477842726200504629908883181155531834550277525419001166487824927277616170461047401166891799287836682491334650839379573915159241934287632635471484720495675382788383886740152675216361495186668995415662677756945470125637780450781515578019397588923690017261201479516829411597760860069379296578010872048916599596700416074759185760907872299589858078721534663369103119506852580377752690592079124326704039531156183194560181783286458972252547016073223942074756277648564569521298248417358516512253190213455984404859048249755732600190927127797160655150769847050732984765727427439218422378042578020560549724711562913551393453088924880989079608526523345751258989662675465479967168610028511590905924072247796656290881111362839593507880131306034980977013830015371808921916628630326384509684221375424377039127948708253132123025671762935483237671965245038684026245027578541973520081138441866845973841390717448980484938811612564447778357747761138124226372827987839421175059448620540853917661875680175832178171530631116620404662109417779931562245703542969252317932350784277801082877674716589669406722317585109375721450300586007872064194313418021462746176435966165284253631283497289480401300511870172139126282111928066804934146338966506815096450840419988913253257379351502133049251212143530635540245437472764501348763391089382577830297281866519500334217974543491724424742019329311563929187806560325694063560864214966875334938167288867993801807490870324412295753221206998155567443631485945868704281337058150385861716928002441420245064187240229808490791464321091030238709096908127900310293522821569398785658597455052480986820551115168950401897982795042701833843557484147891218147021048965222724861879181252785590089889809870504940302880803149034951621947389016071689853515016242266322159163360923253016504309028874538462344492244500672724540584929253637695708109520724132755396346130352199233343683411241487194753579335787451922778328942102822309313222626840001353899074491877574150201386186386786632520071852275422916147912790540121409488609690499084565800553304484968144648601515788068463218101070593239082809484255394854517469567105418546230704948371642463799275881522215829457592161683414701662477270482653646089417922987178885055490885740577038907505543748389065090556422447344847595651150835978156936770906026817800323016941614119070873845799394756826258188794866568639147462961386874099703802103303935527093335438284912982085640615320385633871102114218186314879194339886155833721715335818805157513837900299600094679234209552580644339581166885536108330792460532277795016335220421122381630806559041304626422506716149830804249174856959190492871746599937761552286132347123097504986608013061812240579845291303902993982635514696284223242643642420847201274993309948920354223829206455134139310839757657689815915380220177700343213905326348923172622434302211984828268972471396743323573021341977697562404375384216603909664167328370896548536815304010786902847445392633001469467901144799409218576629147393922669022506294880143104181482930699207972568616739848527196390200636536058794210397494388549337445207150701743515335503175291660053472806329964060156693555770895636279641990326608821355336632637744727908340416173128273322699213212124003993951258232031601832243682102532098764646783642418509059820684476504163498371276101147655621897076505956293804062049672751106414352977252900012113309765682394829372554539175841067513815098712125906527982934357538392638561260917431286651395506970074364932283380540973867156735734067350695197181586361023811766648811483553106999141825813290147609454637075143987865258340887349463212728039678070499527461015109150852943871444878446262770668371489529787926588943858799772130124243545818043963263782799312823552804515310622380349151911320329090232642697228375112357871836569130969001031463316444988076216702103367889141058523320422765808712158660229378353947165922554200512198404867332110338126773378996050449490168775756940421997874541102097441589316127777224403736083904449926821029092944204553103683652699313655343323606422331636651927079156266892377107087641993664507290127288994548378218584395580356257242435340467683085035601561566709599496499994711164173937969137233929173803884455621851146783088717378500678968348263145901973096965425721854951315378013883054666152463781931380417212818138553599038794783959338372077042869130099025468912190276619618239487279767149148952584457558735384291629180705921916993708891841729784488838160021774936267601228738939477623291658559690059025424711164135144544467485565535456671353584173182426652148494619757903688092320707547924278087050365531884585834538724302379981206474740929035410749005093102089501534268879779024332843545671257431038155500268375046346643247792094878466760017098508361161193116116253308386856203100224937550172971450116290876188580757247520444342852203157128603842871888557727341111370685323590147159659479281582849119339402917513680242000482128854835198280545345641298232873270280790135663298122031618709562879483106342374828104771359681860266889659393263958629223020521858517438913124381251693704281336277697647638617311146042934993781236405031990744377730366160832342774619507447330598364958907834843240155883078649739661684206634853613901008441978382138387121102611141092217461135095397757178104969046832559177749958825662493219970738187147929570460392198582498401118443128215430120807224530169478559464758444626429585460737860082824426796666464183005859961729953019789905599266663799390364673665447655267264466437222882433176508439291346893720108981847024077700101861607503239196902391693571046431410861557996949697689897018672028374461702797471058992467581241449536760288428733545640220302278062838942255614999488091032173068074935925955890666812174007709545220255307464585119596564693996741680335891436512296811370602586166720751276998798370709123243699872365961660418683202447760117067869202044056057066271983371476338442243338012250952040886579146698834097568717830184470276413225066961565792254375324433441002941317823226031852907216193261340626596823783201505778522026710605482854099265776263319571411801061657178054178686022515357319590186581851463650111138527636249581496606532080771392293137557938728281889099488922436682301073915391003111243641514739145706222838500638638456562174082578323885959862701803581882111349224992259003553547745144822721995616051167598234438198297983543617836825013453844472540904287115383456938897943030541524531512684262638639333953936522686738088464933057376562039479841171378198139400233445301415907166368684192536699943439821567282224487184380884223072436653213774764816281954289858792184525448171963358674299622042840236281730144174825655762287304818557995258177242310100500327547237484466292177989554341271282487088596590236919102343375075786988699951799756360233834736629775698308941569225906028207017669338515319703421534929394814892406763795034737074314541599335687398680532499018672032622946835081626515841533209754714232282377576968026905811521163529333390717548583856622794438590909694687085245904834521723181626152408251706304004221900447753071166707932454083534776358570278824921320107329441840729286129752213647152164689833573320793123285630616456398072976095419707908026845573885906378445771811455181356710252863957938238465201516690019377725930068709030229024833704617123325651102742414420843444624940693413437700531595328758198478907522207131094405780881101950900029865608744145926563168904919905325232727481251608260714039688560829697750442065084967836827360307488983751388747932936711233609988380138706723781208994303400178210665577584720049617260336712442408048636031419540121078158235358619414648410943120760465115589408017332612410387714187547463454724155913548679737495973231080348793068908027512696007939856341368133073169588513469244429156802107261868461830423046695126266979657118307314906638155343076248318616444203364075936193850317771378169025781082827397113762520350834131038613544981581398920749151093542052594056277608324391418958654877605638541938609243931095216194522262020893998543833533970391776203630050291529196092719529164592853022267956374921028383980237798008488545296573857752896347706463832344706599468170850390337894581278515584181459768002291377710412153879652459440222839166007505454383677884972338336887289670331877935689965532419225574380216338480767171499029899057393454218076308222048217288533453430732376364618294757851317245737655590475919092644782002661224400314220900839569337931367645967430756628934320900220089086456676929292754812037608685517798865413851876928733823469712725179049438986671225506952115322833235851273623427610953156679115465857966176546184909816474201910322936934089591457970487804180471578887321337212277395183980707615592002709359586618543481026213447059103548882416558945809861108059989230886603238846367921775634993416681696919940297915052884590633475515811973729073213310832868993960221098183948655804833957388478233242196303961841308903896389237107746912522406399155453090915611493473273244484684718295561307022103120119508316752461844392711412562580523502728566802396011011946324959267262034114409804534543560499785664283266416333846578545151332614236975973811058016782245758470601850138782587192046662286939752771934310608060646329970960294595956304264296045672705585642991753903589352299939837674550070197828120419118799800254993470085673145745836580823541916595508535932432292307586085542097210327382091278193004725154803135677440598589268316576453031217986664330102728887265065284564580966777552324732000217856482783023308042234478999514362997743864204274162948818078089425037248599660345389335595699129338990515222716248236376748555887862431634475629930475625213952100220648777750749380407127886146887670131933441174969474133948715044239514185165273042953763471075305696352582315671533281629907148046453916803933680171165405037171927082836257600280960129916818966009865661063553018181757077031842666441956731167276093715032312461374518859791333864863282872002673140978148732544952123614082865214758282655216917175566000896420513707895348631043265335835724202138919708636790397968592533171076358391582738324647548576561624429065885299682259829749900033686492502216794928506993120915164678213419836512117484789518622377753153161018170862383512253429523798302003885871524862762988185342921511352342376233018447421966607546195113608412172551389872364178436508234255685420705621075671048565338863150304394693497514277224684244172864515561285169370621195603694531150293855849497594965673803906290028468928524828368902987772974520254694775458372431337719429274410740490186332278668749283963090296168505756344755320318224219344178010495316479742168803316861985337923213977993220653722298040810727160335495121822146807491449260370646299092556589006865949695651744197823325519650239803445453680790957105208454635574289795588911898097214955245823875235493954583602726277935627588658395264914185256177554380657910716967582608593310368331737623287357015184184149259414068076537286672733190292813125056023726790472422627136933619460681743985432893479789964129789332889140109934511437458405859176505385546420753904618437580077548628018216659218836070834637868180758454678213660262803190917549639051402034611019676881633877147260739095365574691035082847792878302326524841934708709824751226050157249044670883085156296102318807549721090148355905570791294551667919340390988206600107744853275842221277540679297548808824301598237941415505360973092337607002609865242097869180438847278848126994335552684159872679314245296912444860291316681904388636847632671935879433400154596148217894607006985115194222250889170448005722338588992101341981164830504753341908993143948351870517437328411419548189024378732558386902452591894419301737098765067760509457704952537557301627052782015388599304487142650927584055432964208833861256107406669053029102777654769069621597897197696493442865766094560597145815053775090283080898257371665500401135371526071672103763049682965301682024704313778001493403038823357355099861471423455691237903274354667908379014726396321826902498094207303398838189565393553446061038937984182223759147152467088968951184773896529019309892011040382242860691328490291314486174024394787998355374735571585366079881966805370493486621915288693867339200772476152422331866668584959502239328411468032687907043046737464693705128050795284244771378218030403311711940759124093289440472975544610855526016136154700116406718423388944741651086346217827202430792472416065131922231084319802761348948537138373678230532049679909912501803511624746021521836255268170177585012749602470211058827137512681389575902634231588823285308288379912570822811868706468662186703696951959984146477864137592103225226932526388918331838652828697704000449113170773730292185826483875523508928455909803512804464160921983498548720798770063622354920632891334642196160874174213823447281434313145257034514410976522407551361253872648983794823096286694135610503015681863603608275006198099691483006070649167543451399322025111496864704880441879914062650035037785778485983518028331634647644181310149262144110328353350240373677873136217988408694589040706017170230280748915952641926542863537304647949183694363636562918523951689052375446559808402550684633662231157244652478081814786950534522597588971816393730981092596892923145307523764610270409140855722815979918193679398380862770018895458202418519731963627577256417476781583138017218215247260461310179810569940411675656549763862166744319544300811318137008873964204211230014613558455964923644087264653160531858737306931739707559479353634280551074138295372253522027229635115494095110390258307736710495573762443688611575650707706145189528395765919590765913487932445960974764750315575564370709922857598652911176226023120106307646086769893345376711450520768741762279414574316950626731744590608767032160767369630337059607922267868326141418182368547819360553708741881093265384375541924418365878357213375551183373402058973653917224836700841830190937644282555479854293248007737134056737811051085634474891432615138526180781337208721654944677409317302876398912182051197964662576802340001127875646338039411586383594433698601236740468187345221043414112181792597657668372574260734033611246700389313466971758057649701867839168868154855202037051684398865315420691030598660705699461693841067096986255309136969312441060701139770923267613738205022329188335343652542674065244371829449939301921617758959157363910007343184835849413069056493988692973059502275054395170068356469219128105231233016908199967429897374814391237040081872336537352644758736484007880883667563145166390619883013608675228547158607532060661044930596518618660918879526730225814002319839439036161042998808177083883590113985229684727940904458041952613672587527370818420151240048572191772456066770848252960826341064709333891075145690940625173457217798968873982519446149190734304365605679634553885120317230687487355582513368426353163429436532444384200924627340052078307818289298109614119327103982733169792032581852324582348691036777466552883637461379505312354161375054801834466315533837258319233799828440667252903183115042443886033659501761840648632308033567120632775466090907341239788455628504190267500245711385925184482277071263162344572451113373484132855290259000183310959829380690456657471701036332341814562903422206417404240440039281778284646840522823040631259350033206954678659710610549029194782919896010421815963263682760353492069366624193715629973224015617093933077904623285351063907469561254033211982055343010278468042258988490694514632646875071747165048242860686637951338183833235851955993105359144612479547290852274073135118440754232773318136683246331371630427343935142645249866689823050483385394269825313512077575697007915113860030051750067191740045983480332768309536186849344636031857897720488676229837486564334414498203973873947659523663582809492234443004051113931918729594674297688004830491821595508118119945625671638659446419697594265993678684443546694608513079891525571455672019879891853384594938686831836695093678470196445941966487581863156416436429956582124676865187318799495523213066031886414464123961043954562810358772106387322921462684977700299445004039711142877556741321708339498504911693279117691833069467305613765017664697211795298239402023127154945837595354740265847247215970277402704490216434287423775364937490704732781931393903004431938780803335342547367531339901328251084815161567543407319033065495394678444853554264428093769448834229703382505416269285786601227971351217906283032492683567953859560069637344501643985341501007401062325684767025386309756052621488447888492431708735868071735243304157938374080292281257822440976236433833133477319029468922583520027863026669549479193521596621862017970712125978783297036401796219270333538117537081685032982531663547953684488785669264876035005059550393437703433947207608551461027743100188962432436221338294771264146635696203174922864728617938560903241514984077792015015909274326883193747785423901460462701825776703919983158945481078972485769419325686215885738927473670768858635347407629172184544291905176096955025576834787728604493482812639828459727108382112442904944827659544748655662128710133533853417168141135019323574006842577499420517365995304526441612450514246748732198611984581897085991481740607041296225892706722822708518583160959844298474740436994651532574974748767119933577299801029506006789036252677305705505303892921358695044066555372404566616748186737021374690554892825236826501460629315721552679895174550648435869122231188610399239393803645273070300385672860348455705186038287469925713446779019546626470469325670383439678653094681416326276929662550199671973118723534135867823822783943526539341014895527171285458857732519179645668605341469545272596128047631529502020140261727640969791409020991406348950762451119941591329161909913836682999571685661812143833797638553762199056519536659946494333142294691974825318253272863247497227262271542373991572712279589584566543979622307778555087317628365470078272520208109470668369206749087052973398736237766417319422787464030999569850862466382611980582391505427591145272403434818545811614482228439116035689191215105241857991346795521838433779147456250299032241819481362435513354162378228767868805500128260948529894658473875851540150468233322521693141347226886987125256500630526483502107180847689628054863157648007259084870352561323210808743137605059608843999170083318225375530299689298838781853265158512975044782812898480117918946598775564189170456054953516296432443261704927255430213625536133554359766939232688783356067202092784417065517637310902403361891950663641391848271842122110459192128797136586860600519591914232774524713139195094245461228017337209259176916634995014968252591497305925450473823489877940516696295747116606208943624870997690006828674348655431516726045237769373707260652361973839965229732106312500192732701193944405823767371476644621491819860880294798791451660991832852226659783759230540932261951811675182306477493506586017595062679844423261199911657319124288528928354821330797132136742677746687401728338431351855442083758464804542563476634731924468951375471750231784665282436499679658987147525503332891313358201757922071046346005894420408740701430785773856524218365543110753834670128447550292031477365377526898153079003152737032448222177337601979557079209414053618779594000619987581576523088240997467434024579538649619001068588252517122117366614757083944407953844300618233079843083178796883753167817951748083223451575588071048284993770968822683761597057884834348627152861392679363455665292250680404934663066686383018388348090556352842484991976855899496009988595894854047561006801507898111324156150825221356566570955565510122619411616402079336418948608435140548793105391003207554922409968839637428857531601495083560938447772459340008837778109637448639144312348558527318711537099386589726429914262588161315665342273687807588085011925904621047481181729590709298020079681724702597271203428234490487582423627280970838579514050595342634779944412095641750035533921187254275066747089709052454861514706490457825538540609811977490992120228814507403304666667546370927226312559937381991296143671171984513476618529973588368501382722952597494484526382194081229985793445161391132613334605011973623222298031323568065192246238040422034303657358965724547496514994765333865856320788525359512819067941414507549518550570385241551578450444415808729074085027708031773315735559072732965518243529339288867480688787683891940244862932479661832672519382505910080522515684611349128720423061797228528849563315630388578608980577605724739063584552461423145908016691256697796590033735915250202211147476816672979114375812955080736990374107838787093694891863107694775625299969338019098351264013071415322821932560542698092698504384336546915956349429597877295169660601796213206956094437650616774369326301631968544633423157014185422029076397492861708393874187924359226402715939056989953010004232511822010400463091314657459805787395931841163546864608258858676224894894948369930696794974110273071682344314295481076434967481027025690520540710533884073486367471635076213301499856633040346386815766679721355598969075160748462910320559228467880286000983813799053708033763567287903756268535995338701617101882410283738913804967727361785462584982422994205948308237702609056110974841316448416984566141103241268626747480537070202480867099190617027982052933214589855478269679466351694484816131723177131897320175777188997712591836434179060518924255399907119589654379305364831374454887495954925459210755949939273847999331209949327718391694062717390491432582031648884658988613761056044183322121702365528603351393716143481852201407281324589576709139498225898143343636544867869657293485812107770031007154311624835434471706035664115536361915020000063562994027817501269897515021351947449569463123036511469247982718563567782158529451387614161622760968655563463309174623125563878737570722997294390325842056764166985419413119275911431693519253160951045083692278196226716974493299404978686887360356831319899713788565075120632903582647206807961782415135972030221466371440286272011659504251116330991336360061033005501169293495264744961015845847781129391614459863468807316148133641445773053482334466741979881556336204772772458180644196293519575463847103796463879707917291778314700661860037770007618789012243542935909193602823694400727752246508464874811366501156814070094378628417315812832998497300946487681757800791007305792274904884408948171032423174692932847949596729754415149098765662498304309582418977872772176673406102583572990916445288833297688985619458514085436254473583396360593973490917716787347790420171824431831657143186955266923787555938966182096477640664983887137285454031833062478035001482005599437158164694893425310753369305657251536528041774949239590680726987812926205041696995275275717222864253731097147526189048963710228192907573140159692551908982088566379753200193567035601418294966066815440105441327883664015571507937483002435852441657516075374778764552060306216913522760871565468569897936225585725684827546221708294086545167561585663428995355990125306341062351447011052624017644714268453726787504347884269351090694480703809411961183132705514418854466477021678303213860667669867403221781989292042726276220798482749086621998948837149226944397845915727276103593453034910163265398579513198988709346604742971187524673143070899189385476680908993651380028259346447340736883383327949837559009120508807509167439253485695394650359387361232550633514613997533205045485288339753774161494153623081220681227218384801864696917893834575545353059554327111735849367771461375650507998890037727456602456290939581110605981041767588369697308887060052282320552622514104785296611721241343582007624044224301516763015326165081741687726282297239415527338031316899685745438524573023356566983924250902062249303851965026679499586367230621199405492132270348092439908377997480619048567598237692674448411628925760562667083127318066572370263156809071040014576683967747264298141664345031802059030884005432786350415801837082235653254964931110172252111169594148655812878798617097611684820627544721192061674160969920865587088044339506963832381913762784879384259515213213259265747605398684191608492035897263460231658146721501224021187971407469813562624213704698242926437160974450512123762882111416538900543178770747772157350512104178067412427985316950991689216977009763453566401850161612245331602013060716114815202656930019055450481473425685744388897682993824649811975596844807264264863084700097552155094906627040440145663289782428885588724369341415227192259741196487659860174753440265532795439571106511955189235641140613924322436337205983853105878981729427118685656322526051103238005583962064995878210720179747828690131191917621447951302574355583293647333692417078157892513383578753083113161347336231405130896528824777963986132097223944337907631383812439541528043488584841608499492135301186766223175913511801893218867824980477460374587937993807577026992513793027979583851478381582746680044840192638081744607286982117765607869959057000038018720735752039836822129510242476834017575654137267418619984839709120521151266978885107706370124089372948137769153863299409187217793812196628715766303843463563348790493950089038749549065493562590799673717980593702452678978381926632831626760671763807397500487563428123294167578772687576747138695551325925014154349029806883282114048320688565345731498148357562610302425119561560633864157164865100982975387830137452721613377436125110718359654219935388776281693571860667614202125508349349609359452784166569968685216589516135025207556237555373782088774902624393098442409159253604067003921712285543145239488264367437701957106228745459417502148592621342094496670594343148711242532854425862518370346402530264057670016488213995866426082367593012070318420099993690334275223030664019323861079308502064376822499020768353086100075490764214359539108405064240345919852561544852352506588271687767254161202272769817444149170180575811240176690664149959629684647241997054619387852479707463491976175072226210546209873112670830633681820620307239528292633533974376995669811943946260689771823085335640082181871887511958766990963761726217638806929492122126816813693392214288481197474415265409863794927754386975180671098282951064340106413270768390596652821212793381044194803769488864760771198851054543118206675959433299345669554273359594582348403969817617915884840710390761564308092066306011831961256404786626796200888258745715142847708583353256509798743849207108749536494504623318631989758484128052812381622597375579564132877591545906727543258547177059111337113216219967924920651684022172318824681246035330384910124328757858198364742336786233941032797464165227432524059798661160426709087536292078668652829014355498152187123802830414522569692870517058702422861468359906896178291737532986212249199577017793811243252017016586304646797574428154284349383360973228187687884432171318694958114415337128090693304136340965503375880081947503424671054655316533175862721054361763528157750960403290565912053608194191124302016891113286289455523044646858758949787943430564516421821810014124442834485456789606055214366341906939491900518138192566808758024447725875315408493526897934872618651484618211010672839080964849552974472016562761886087511015399025436639314960729162926508080739966809903023083267401860478145500700397778425017857943415860347153244847306508259400818353933102125586526120183947925796633976540181682673414277366548517238057128102388269022610793673885362082148848496450140669865945449452039877931146762031992325009728553783071540673674404443669201934743317056306287836606144167263019373038650719005220220171571149138791944805714695853983187640953510186845942172877226182369663493924545252793759959371450296420277134085784115439397471554766570389132900006902540410255183945831084424636148903866221139206813034883504715641237432227560167421869222169622928583162831459191044070869002151504033343373753482925702613467537835699848705579896157771038879100913387789431702737834451283494414216925794512947284962940871730141418453464561675276653235316282095459763992151340125595866999247739026927686544410544566364936109969045136700049509731833251036875661528021705982003638075381349368598449376736744469977552122060212611131785556098522531651045816590852886707408055282671708104164876423192075190453033599910087056377718345210728227663391238502135887340278287542168289298341801058891835837105464939655735042893780224713290814803490135444843622776821514981071142388209310898809254323996886098179856378295996973893675323985275670958853149688373526318356792452358387657488593908901694529669144229710576040159732135192604319441653372776516286048598241297060873801847949704684447916685331341170653125960226274157650220907392395893607569372477034921005452548158351972382964400639794993414702756095125246079615667513019745530813791579246862557862708768022171952627577603940292805196963683622095800380130622890210220343747684647650836092996161297925721873942352784197573550259478599135163659773129538509792237772922866739932541493880897163378173250194796275170414920475810668519051663691508602471585266644689403779532546567651145487919873453902911850240643452241197222141707524815646838916625316479349385464377262335461121870497610475325169215508801586064523242915517380473687541739885425829154394248296060570733007410287068954433595649226884450347730569495864752043996396819007375077808802367282546578147673119299804685307009631900405235753828802465022111222154579167452061172740852255696316583248963620528768586832473466946693456736870413370539933560573313764715289153079089828656393935623560912664489467706700712845691460189411573024121473121156686944322336639438546538284460259647876286611865737658865734859975416455456972968570179959539662694680721656418807702123328831992903696425396678242344093014392940782971214383470570172868989802327934969953604620298454851206282028873682138190680697638637830225215093880047167315829622653830379179334481460012254168750777382360326991739882993258884774587683909379460548180599207846463066810391431836430332498079445531732619791010950236681548668637585966459346578430289955797555009302222429598558934995691468838800562209473097208179852362057843268782966799090180572565586426457835828988836254861713821731751429926331341887013294338296101316103443661523794002536462940051682901912438930821408735786539923665512353567505047931826633324486259919487081452770714338375751937208368145649818173735977744737968218461802686016480242810970107307847225113984712659044406753901318565468184461765291558662843741897482679073141473895336421750698579540317529444744331541689490019714847947125552180553322608738014425339912519610197347111345694805246052813930878263908580132185255331281212589837566037867977270436385277217950851902069620216089797186241447809166059126212935051504591560380657140206253295329342588023924312967427118960167128345353762983371252671303476111502967422482882004178054900283200923603312037945214838999194132479024334574746511903976553544270706576524099241970930860602957395593234499769018843054383955452847155923874595926908634198919704956677905888575121793828051282574367804735039773053837491626990537678642540782093079008872366707178611521193104468932837296819454199964152747538268332022160334328387545802801898004028989836527318083855318581199829919744679531869521239288733782611965775625127309104204137804367391747852025466092598880477937678622618724033377087486252231024251756463677886733813296694588719210840085758811546240097973192952746350909013721138179814773471448134449699132244220585700219158565831777162871852513332733566779907919677047325000405067668082684327575232748849810709252515709473665950738502417162124350390427607008575689299906404471256573208709318684547354603895548977964704148989989187168907311811611531413413730269030287269707127736744669976198455197339375545800627762479841746626036249499255867189468623561563678343708736583498889884039086825003679544166957927689373284587339304657402849848884507189703772367077962761390609328825965994936760633601388843535480977784778560757595416276998396043983782158496421681462235499996368389759860068263994057628136861293973703796230930248665947004890932163030707119723350193716514323400088642657185018542312939080520686707216496152050639407307967704540793084848711561349488883995451133439515241599882657832634771685567176550821426868462083829437295435608887956463036353679680015940242717717862624668155808972832081013895954477991400003303476658439253754185720791734242520077677924147697762119992785956943189933693241986596884223747300650908178454834666644549661961941299174512164565290281133981125647053858652729390291271834526499002605292928291392500311563838584852126411947134027300792081403249240515357046608932641919327731773135291422055881884918810044812147542484494734970367184734071720810512967216598542891269585633328040795427086749461307202580465314088933209962642312510713169810367762010739179713429305825688117368461982094666076257681684869886271566515027091788198939769891741393286709184734694595226681246734772046324397255588066320491544462096312955599459035669124556678017510872617190110287387222468696562368145654618722363683997735478589647307737680651666997305847303291735127490037216062897488663819001928131535469241899951010917913448526246570468435173594167697094317674434995241572779675408728115159977461748646542464762820384579463336508619995772755856316528208835521827529479008736146126929636379704600134093296885105725982880791985815611910777770275006075409550223042778191874670632777751924023895938652466866173401252884356311785448497978078225401754406080117615888856533758034857644920616117321382660890660549956687350004707312517375049396744979062465729605313684939270094139704045126425927322711789695353597572328915802794538154420719072068667440901231227640737783520374443199156256435325837044715390890675897099272926114372356714218898107753272768540973830854601557607885505934958127658218340179076305814962075826826255342033948364676403738095254811790112611981867507021981810180013717791185479234848675553484492246945646793112657428701694315394872648872667002814248340052059336959885678933265277898281775745840737312683992324852924162350099294175925781549815593231631940669852391121159194491941723697433550089636457385137556090068586061872378512438160251753852267564636858205431422413800358259500329926156976074851015807215434729370570341619942819441747142742723838983526233182035657707658005035112695171539184450072562795092407750840443078750733514024294736532672736224105684467375563598062662349082212694289644291793786957016253739181372787759131606192613042815334620399210972576774963901622349303451003874548741591956934469615466562380588771468645625650772256398773996944512347922809601357457610777598096550082970370478229829594858288743794017238485249051719703081739021354616381184430621389059508360031515660062925871859851000496178634135266919467659501219314016668853163159934457653777816652724260547309294075657232028177422226530818322653701717774794887584911525644918700109159042283943409949697648171616689838592679727475360248041393729439759120581487078746300039187746095921786864040765909057908022699971321456665322296292853464545345066588032040002775116036641761412949451817136280927351148905014656560445464086299863606102835023851527819733450893907008201372609952214708513202108095577122959351796605399498000584994628904840887240143121040691984621344614188423433332050433599715522052158735637495293156623855949283009617467903825417090364250738055731392242593525798074013195514977099783522148705309169451475612604284628739844487042124391644053819136235231586314276258827399017292734720244750997478154003748577403567478584951504461934756093951299713027001346253358537421530771752022954854253976655620892724124226509888600847993034624294549623803450686192054145065915880484737698645163188477873147868272385735335362119279278070308972571142563774725643844092611408322586396890291260650309902531234499167066450226959359928692199678482902444512483616837386973873599625065238468973394424514319390486098452502012997972114344696017144581903930635855948060673482408178753076991630254309407008437856958401529969020463401974035328163721525760296218035090307343312622468037658052085177089975071975556141131492955882102024920775904771572765325214505159509393930315388107790357665815668729102315674760504704956012506895465552044203555467795984562400370041696748716121735679659617935765133842025549522303078418799132263917880006874616359374471194634119785965887588137911591205088160671598443151309491710466212320972504583259594455746841954645325221529264726184330287442008517921668370602558319528853897283058184938292023965325254282327178608467633183770192216004525979624628608560231139486495478805642615767527948892637126576405902116403585635915322443960158156681934499647381532211680588465127801275611410303272638349227885371978085377427464124210386371309564892652538582771358171755298946915539671585645425987363418707712984416591753675012752869940530490697740667630326690238868415487532639935553772537890485243733527643821906598686015956587662176880473130616973738241122890041950863538540240569985528896512135394448656019087931646909859219092267399444438372898211039366218251763322185748153156883883269461334035263821717717611130970100382211033297665186362916357162910566124279607434731667132972497873881121295160389436052175925134443404525171254573325251677880391255733979447133766583562829180373696589678332241071084303952174855498683876426353407460403114316203055752308584338709420555209603746999971900489808285913889455153624167209326521798100200782633823093149905295989453408730020845743498182143857189243799682460825001232544495568216477338364454946157681598083428358218972940552712891214266777326018725265836646358685868274443966683695330232685094729422209932479870676161543041824072398113912117315286746075707812452239818435414001087544079924777144099033721359049673204222191657759573644966416689536664793214182329667230217046729949632247548856048572042999907061873487610105648382632776190251028491756781752732034236681305491280776036075156874020042914519747793811190186525335303338128996272630737089471173447626626763411045937254979464795553206856726073513792240805946279368982554498090208606486002030803615368230524605587669087969491850399686958243078528890680551168247928207960026904547227373880998071363458129010338574852921485631514936026305320868443663555590892238851073117698246587818272390193139805504592262603852665159094783366880928350840227479159014314252898422973100891748676583784287699993116325196544794647566932400007183539259368990786928924897221102284881270108201495530173644293693990469135722378662638525040680051101623513421950609769313573259089227089131543712357348419299065226574833747271648414834401731295666347435883057751430788496533787433764925740434488643710929188268685909911218773695278968678361276189492544433383075582323082754430036474907975018271876258246931416049053057224243618333641348945967633498952240660348877985261350609934005302126858601271125923855132356507166878422276147273610204937095883016716951945590165962102845054240190734197892597851339750504973205633058977171291993269234340596031415412739520207658220540789778266957757608185761250583650301557921706635644522973681698078096515731082921320426867602475534162077161050865755941393090311621886176412999643152935711356971668735148512468948438906795710258008957046658358625998943696978761825790902294723363626743463002733128737131828976409339283133626199660780613664072319291741909379477442405932955420490422622827293051959383891895593626460502237145305358166053986665575414776329181931791860754691010121197786000505467555286846799765963684755580145881518995037264605250285860167332072509491833944369866280283474299300228668056688906596165620330845531409344038070026339500309757506886605239870306527699954196199718318487449339926986202152735791144025914371847202527205854365182729868032836006366279792928655195991174307031051244101743387920269313307832872198253317947565568275355040146283975970832479828361366586158480000633610013334913958220210763510320899428984668743286215604541612759293271308726595752935129771723036320044247677112164301394940297931391580126329512110789616696019730222578366525760868109070810430006395096863905009049534638554731634779483234840695626531679325987483841611361145198454650487312946650191179819766240715520952259850360029557826343638201998231639911988197619885303125967487341198278337411134327001136879747654457443201022501581643965228224017933011392907932191761139873432637106318480590878585064463235746776595224423759724145722394153265415361727440663758702971414178192890425900462996459585598716484993354950549223047730968733143792447136993048150801839872264804631973573934168988601421248199264641984358440094924273883461972470673303504584871562281467407060957382756717445564210983510531597665837882807315119521500687217310960822379818245814001646179513506726173784249462302645615927705575256041215327400372565865404863748756760364591532893029154063095936875581745118320806335994069685179401078442902427168871141031095074281691776669200214362036962397741652150193814084517133740389066051418344952875310761439774553099940001975174973815348416607047517291159304084349829312665341094203997861090820321312516324617243288848373091761053894876802402769202904942683149903958664047850021334899389142046406297393470850983546166965660769257894175477481049686751463608542681482403522634291834723041090219307634320253466576641646685023723356002779838667709388610685940537858410041168972818995225466069729423254249592163158680451516412764363880302822339341092632889392124467545853849661086549329189965277291077638208229105199166231231846446890661272287433760231542956167739666386204738771529358627119860709410667295200672678374906070663888938416737666957768583715135150637368087344687126814007907380614722275222241748903509937457874881418178817833360312931543595963191309064048472270009401016665833453026917023983607946859015555068150789819799513818559084985824464852167689944575972070033530149523315637613743650486381618689037711013877400324615714824357674106678798838673837832832751179026605329533638583002012963508739787848147765708161346871522526164872987442854574311889387347436810527492856905605459379138018763496682784124388493437216152742810438341495638481276766520230441315830710219809628260048257096714078831193555506429807590663011950603878479747636389692248260111002986536688636635804765919239810255139995769322661334900439698748495364881452080739295444001452468043090294314422445370879288083631588555798303370880476363438271863824767199604333625065669311955088093196603515902848930880712547110989507342026539020630160484530792980965319881899021285854564428505930347725893550223132088413826928915328018539136159031284847617423434500434767097501900020791570839296264897956182368534885668324041210281895199083592926608363518501224091636185845939675441971864342902982930022669184300843827748485909354446163317801757453190694308034775116224487102227606084252649898716750184566095910611482310136931924289844092045246663843668110703890854212304454732440061444135046209476224073401222534272472645821070534377540342268025220140595192602852987170055175692492195454797416372718940951442916461447096217853402300410510296380384405440673953266040589043857731478235337753586242229909249762310026992260054280358893415192736187745044059928621140097886990663021089628703877290707741750659873922710451869725327267769625493163850435843190634917140346480101832740815127705229150605299161288719743096263297428950937922935649143709268065506569898325904962479627976978444056435483974415302643549677286484699166984738341850169270329071115131245757925026073422340471740142192263174511118298269769539743896097858503526405580487590619097252517527824390903796009830334135777494876112038825717230960846158714858747002259546851752049812748961683903229881013423802746202725426366002270438775998156517308356669416844213204957918840585369897739705222082298979202258214211512526442231659083553947396427762366445572057451851004341345825495787603441132653413971263710247891090178768281912359341193074458578058128745629957445257172466049317225566486449804037637494165471204914326844739058180694432603887244767774641961759136312694156927327809422834473079770211217993932845245708096599119946172208490235215151853335639288914089673995929708664309605424249048301497875118483905121374648724259865264346118188482102627747602611345463740655249342060868727128636925887545047792215422346392778590471263981176930011120453425440695146799898203363116777060557259880988450796392533256107360702776809119972662219405996511018478651401225908940445210346506763381827379568792324368839079845350070466552178298033682223326193669148205353180333150287890860523006151613013082491419460305815565051973741692131648951861788485697733462053731130836266728969824393923241465287454231625207480720833544088424164561119887723442608549846378316475958301887070534610777913302100691933672016051385926911685719406608630112271662722068083490407014076766891351393954238179812257319135050699522836818942386859763817878540006648234354362061500942999329536350266779061357348385867234048434692017424888482411439255565339048633353383553018780680964312666885149876707346551914663545640890550218119618761799730551189936648365511323292222589484383427684456594706896993241819404771170827499244019937961882528846358454038377689183468019957566943025118674105192561223257690820613742511868446002350028901814360612055127511255755276635475195473185885213489927988499098946622078246370846239227735058716241380265152001185585901669855380067546669143141174950092714739876153989049482472158723989770302754904601187919183612826395289366422953904186462291661046510600074580732217947276384193897962546132691751406856760845649551658574223539235545763520500328519823766394701578850836544368425108568328170057863498793784254313839950027643428150359596127058758195334766784047851947484788617004553859993890391984146821795625702520281009087378803377601223735097001566132776711433356893842500615515178724908802621214226045598275989855100183670375790099114638679971202708759364051162842463450435103629813539482123451005952741389173207730952978989874934400513355436252920911142484204752168849198322685307450422950082015925436104721694894549308101322345293942987553327472096827885292319280914077830095688586282299089734474824491214165786433934140183233814643642530491992428911812105413455082983986039172926118440359939833859278190893712636409875191581165982994503802506539774597185135727164543916157120789834551657568147855310040268317291885190582928097852354881252964144482322149569015454719042755429288133153800153955568788691775434491738225390861387434322988674704405171897143495917940070904032539075458858059523098877120593850623612432499233568013915307588243152087471370358170768946097331185288474539333329469433737341918777963370021770317342005236659401507629037387947205615365182729994478990384982515501226932943402052592856425932692454676226714503319042800234117859988560133197774066379062682915606593636982050012757136019772274477846038478529212253543386499384069276450319522939773459906455260193891256418713331819771630877275855740500242773837918752511613618610454055178952413785579725962076724285612829617442929435613040752420412946431798651555667985731273556213301720595619349394933340589959237745091225486704376784596610606496913951475259210222539663297708707191694482888171136984164132984106747166731830267146470652953263884540120933980142750026109571664925383646552102262061555320589540019365187279664279872764153494391529205463655265216457914234232070510242253693036834917390131629171554140765487034280808955176291717843089624060195034896892208429210323022557366418959196521970158551159604492757209464404069888244670332433562914047961184873704487561318024607857716107881494419963346563996184371148935316398698191187294314522580974201199405902679109218069290204289700396665955855816650659064521933864338342195184978494273000061873626954701527181221286042627581447638702545370731312818324929360181717874288368752865104263639641067601928147182321219048280500442578624675343797309159630499497863331522336562545636417488968627655616869223614434246920403125723944302046585600065081285262564781985562314426049966040548463801068983388378545520089357185849740586091136848144931518765909976559897292175277022003748749764634828685185518993162856231967986082885388801871368026254023377128964192000873579858175829563779758910059643761490385859537974890804296229974406320353209583023172981749227968443385561202652739408225651865145618178374780848927517894503125227349524162763388257565517287223067596787469057792350088569157071019404028103955337147946666532556467523163169013030746404203286834706590257206106199703726379253125684789922900422718680055356088638569566815946400678995001195323792657296763434455013049259765776922193717477566833109534412702799579383200555745768077397128090642515427074426737261253052053003797418735726303348850826551245668404905575185205787458119768402010233985048372706791700715208711324033521087888417334922102935540406208923529875885160651139150101772175828153130636029798052409674998033110950665593842054350532142599471525600795558790663902590178053254630890693019854091695561733986096384891005363368150669080276737450074547429774728192805156298878556456661074127735625924660037287630640436376799812998819982244902431320748707997300158838889422536633693481115107450596573408692743215711056517553059554751705220993210890484128896288084817128941948356524673893218072006726464780390108083431690922117815293308935109974164056557937181908335647523911436273298657880266655726403030026966253084374245000382218123156626451234611127567912442380722118413905742729412339541633285193573587220979754431651011495683300903827654838922111651175784087588795638360111982698517581265898566941470580119498648509952098370450243881301617243591022209657520253581105155027433426103997829847326594486294734963396395117507863580927138126737853056719377330340132563097769433492233077450939560570956964053712973953351135348397693063937365996544223518536106871176282738378324507600471362955721330211275001145015422943117540661190632315200648433129200203814690727218786880493061841012027201842386509295923476740689064650494235871411656719800284141822773766934275784098270627358484715830810941045219572388748316374435403511757438226364477648456423467868059705058998214150590056971638013305417835530422580348709139750778848407371204449441078910916537869588358396550524455093899476561003145164843651699855162202025521969631087050309476414664696179897595903490086622867049340628795236638983196139346729285974797171830308234752800581001838878917492524200732200462976134281570452940313913502004785142635161679457896506627211706066116035432025724827227913261698753360845001797175957542011971978473992085256805340254379801816643342480196694173975983763301750845547878166058448527282578714019810691562179918696230906467034343902785733964808209418596417961834943761875992732363063823618481377678283493506189371826429618473423619593811681290584576618942361761173369707653974325826917824156425175690773272112153068762177471335357277647202684688454810404566021878379311725067010183109294179730835804543764954011364991230201611278337999820259453994562829959593429862191187692222220229399256935524147124265505125223097882850058200012639319602196811904996000613445750196966168439706195391685644638986567700028520491036553421038982041789195761596600588102206543958569003847711581890707434020885569218677225796880619053185304642523331985102687647275395210940294378077308662531343477778540682928703377141209823406719903801734301222771555282913818163692132070372770543816251838304678712437340508029918230506274168704704868639559758792693554558740190729602008377399050782834558752510263265303914716164365037008712637171021635658254683668849128492366642970849025362041460216977320752670900804200864642360490141410656734850475302142419171511636182606350071066270928361731476045406618632273343005709994043694705936225747383400619214381978557393605327883578008622160931241217358455755647600238698540955193588872576509229292641937964619230498315674669692224347807128522980125719326463638785118833082785849053019672540437240626134227822754497697215682513018492928581603659880016640526908428195316134064298581803538641260071366063083838044516078246670539556639816629550671917712959821362332133304931415555235127057374438732420326823306878574705999133208981530936884584651500269791342518219025788074666399967391238224114116643042946096326407909541870582177500839685427916565219476852499454471320597639072610186620575792187359329332218472180411627109902102407479692435840227394987008320081983241892801062270095721235838759419486361120467265288553304198834368970089146691378619423021728681576691770465237258089862189522216453776491919726754636192476936566164101383504835621088192143170652434881856131203305990382883855001928652725058073489322351438341992958502120976831118645284047801639118323567691068196174799628904440170226756243265066484479950339467989135742135415850585712154374411853821486344236764764828776659370683038512511798120617714176249181242087353088140408849814155548439902454170715430138911041772229835412127877108194759487886488869040490411831580101182312783191440341392918179532083004844413010967370790402987108215861810368343794949011758802814836324442603582295175355533755456855205850578820366884409282765148329088626696569485894566821165762745704303450255637002282090680264834978205986159100682745085226483756672654033050154553690872623886975845273629015691249533566247758524449161719108237629806255018670727585515533619304071544857972029046357490633268450415926664005178029387212451230240071865465993370555000027387796766610044799131571566976058647580594613701364516500255908637239472565610488133580712712298617849799789513214970450102597433829279720906568757714120921921969502136596015601813397780996840603565278906315534435849432475012620811459443824583205767690585978755417156096359643164711207081925278489197130743344820740031237338821867599156082140972621649770462411174751353485675938637932377882785398418605267267789220659523790950430834810462687971748101614277371997994961715816215410559077894672156300414965607589831698444044300134789067797708692473084874505647154115846641060762283655891654333571619199093357691338067273596069469742946534085347774709172218937138861853264095041294297220144329491319869204191511258903630025084607322633310145980250791435478929022137491230196441489400343481117471015875525909348885603259843416676194998500256168430012129555267177276445537914825970670253650615940218831901629378009857631086720949770139802068866578927920027309714701017008286217063753081849520851263716720300058005696538590501576692552170881624844567534002904736276663463532926767864381239864863120043724237241545527281634462494334301429549061293795894422783453452506607414849148218107160049762050502279027284695745553059697355941430290056582477641682806539917472049803238374806242916593435556864984359197647196523098971815273217493482668379763027862468202851508108366652901672012043393056818793786135852368673609659815056830746780940432646112883063135967874257969283635382332152787597400622380147162638979032047584316861096759041955528671303031315476781954160100678596821645302615417475299793104087214716625750307612714174007240244425402736435444121941127776511479588152207811644060508210650945678552194140388385132104887090993134540162079481284807127769661171812376424741762507114180291265678548262533613859289119088789229397707086999733362044005297241210669974496488957719666630644200111793617534609907881994685131977997313992342916647794268158839968594872512565121726927512624039643573739774874723630859537142801111662251461235193110134396114791127907371455324559859132686372858086539128456642206668501841852903555962362423452116751383796563077446991888568154587470579561903969605974669656526937942641634118624205239671617070454648633618098634018249331513643185674891475402714225993143337474296530149346057596434415848847852734460885656420543118083198119417008956798709475222138903730390653237802984415612449739962208743899552646556814744256495058456143793984511080035406239221406268434625770121663370015706453662246737623965746127327436888774541894389356761924814638017357235715230789400230822995184448750631474395372109471282147814048730385127506531743008148300710828061251051236857989151329818308238681320520957817033894732756034395002549033379920401720926572616731591277592234346041821360140195533842916172254771159620103081515268807808286439257677420143034878719411781722295370171905115247551186911177089794267964305924982793691013328202198505510137816895346453668151552505665221262529710467452927124973681331312850919541777034367189865826774293033914654085906846533374183603896833152664227319978813729635200887956499221077767965427819800897083379880191223990777549624665522306801540376450083633129895284686724368989564138637487882916524339298032811367145872036259652271222238573046223153311398427446181970133550085732749612045337983882219357585326531313642001073377938341497471216124136589994831691626767438886187728967922398966409179358798637814584959916618850573307686169411749820265979077179059470193274311019418988945334677320839302934834700161628526108163543322038112343655310558323438960293148712994972681510578482024215438484565309061754570556839803036502433770678252730323413045840667284522691213306604889462614438607623273085885279033101192231879709588768422258014536307733318805820012138152568642535097733873293798570897011642981162963209541580306552875083250101722700608036594116593815944953255736672221877136499088895532439737027243142758769514961932154082071769284272984323692365219197349376725716820509627438164623483143780071790275027077478824898569708353003003972252808983117935662903426734880228049799616186881057277191288249916843061186555674814137991206099135413787338012657130997993682769565614227986949347965777723170434870601597150536300779968006284937544643618230950790312981561884921712349812231421228750572202972184676629488583039363358589796348757970628291417934785389514302406697122821660106995530734711209730292484316069307827999798669597232190524456216550757395560240198256944008005260549978520887940647890826266097027566609539394080687165162420090010430007359081333772980902754397826948668290855369912526964410548095012739036777618380060688074652280247712855293377112524064003992476148474039504767764844982599503075069621064779623871782970816644496113318670859763830296233797431198766722137119215172025027556365544023997450074863404151599250425519009691637663773868024767557622849756885216080176420256899330455126897417423304868756531278080167614894037137979768905914485284648829946298983586896469774479241741522056207184278331961824867735882569889456049234380509027303271396475606761755136409989920838487998255718313816553941454719277575323905103245732944297357630376619368552527200847133019054478454417784402317825605219812022764073050576378376261725452601614208879918343165543074226563020634099861201419543610117326195662247732394572514823239698032422281953390472406124745828985754816515783160800449848937144455482029384907343322482428681719079443654458421731297883448451650840555295548370211446009136925772998126459896602071260941186147570753570111405542998212309784744647574667010057166548453989561753006911407466392220686770762966210243963145665141941116538431120432968497123382335540554085818862712662595921969027301647497123389080002004406487001913775207373305386991789365381057747662890184020337862641711377538365335840895262177939635396235772917052479844387614313504444286213884070571134397972912884152465026761938615728475225518899144353553589803856414216159805360515025099291218522828792951013975748406235181007300976792891346926304370788432861850542955158539305444575432910751181135028444692485565775166883913978831337771448735427911033511344272066787998338411459095027207302172727184410496415611356410234948021772745322394625264892701592503831184054947260993880967137376729537752600580783897474087723160617756931209765475865869306476022828933261673503971588849686762555876171860606467275002155843267497955662393609455311628778384311966528961624598886763093861080216925189218219518474106478843398097937599078190483400786093667922731461144086235625564856703563662149062759596689023707742022659236791577519501113277632765793751256463134166335596091646966372577945762587764096909874116794642344408968027101658780814100361590040607201089971972298524557558592301894745962157569660077296260916086440380775945060922142907194777752568542445590755880207259829828353454759724089343899289641130225873318996214472760692275298636754752376880771832302655882831199316302858607715792890241035376686895722111406946852484626732797521214745810278528089590920956554812438734362084716060544234600310713624136612628004832284595929315423997475162383613751647197318028459702859621298440395573105156313190461777909452260671941224356199531300382447969254553724518786844671262580362126610187520588730681020732153128108544809300433251222293087138567559137551975653150179475206122847295784314248722318039620427055267583703187154961645598362347676402712270409628806995784562167644518576458034648588994464043406014763854801704618015929141634446025901344769321475210198865699611854096503427553690112809749649419527576653424285281218213533745915514890995354248199530504990101761586438166485847303584206883849653978706376257271973660718985379159873149162323725821354486974958103441649065213084672000497706848012256241585165337122056383129604001729203094908685693110793283724902757794066240594090648950985744006796725940616446960852044084502482183026478508630926259697624868911715614498614372218562549098416191116731915537354596554145964143745753982474785459309492567172998631355605921858462863757684158841626704657020254417859393095817865748742487344683187638495544325291368357462563548974737802231297237832389038734560958775483915367059801084021307961140732414303337922740367845642762214523950612095065882099899609017884309633487519788158461956552031254286732553161359762155142088336137409801714579723945246917036509268102982038585055583893193148413815610530203790105734188255524184295312215186069274145176727717002912354967449229607383394071343863012943851725793490987268744295088081850178089979838331387269615195018258234267658332195222490809949269034677652512579218971012167769263495368440047012687890451027950310626217973386842473757022392024967816173238559104184466370518315937877859720768908090605895969949477646458991119693172905085506298306146280588789526567850289697062576689848799489507494170408597229833377079702037136042757672101998568588595758271424509629529077833731003851275316257491275851662099632125058300360014517316157536217829974768133949622216527229853968108439298173015387216936917102663971043281785635065766069868210870449365122616363358665443997047705494497647201297996218433410462249921931087592949317576219878260355937134471475692437256963468992457814636253098173134811005567482072748894512637133579309073522839648859180173200702990795718308049717212639073428635049481479492411197601110530970908315962200326872320150787391390957787482536983002227080890352650160349239812322836841435225768701555665232711480993388923767319473706878252321055077907936935323943646325041076616265877759479650787230028011129104721144936880146979696867961199816446367611247394760758123715504323538222980569627248462087856131651239072624833015243507751846790349517169682058461840914120817036153267105852817686897169179086688402682390880085786731759657581675978207544461101582225591747716317862474041560353472073657810440124431537978890149930235625810789014294082464220375730335485806982530577960208274976845302706403642815680344524632677871221088162718775634294741583841036673424737584406492548613961618995036252910510243918732038102871489104449387177403697663590802422076765064656484259827314101129923066231982814952761715538612451245558023398919291483203580775186565711232305198697602728541729272111542214191226378640657619209664299847688249017531460078557252772081104253147652566082036202450489136589127259281364516421843873059892450416864274426688799088526855276625652795851645534111107842693478755714954732986904698484293788919551766670045904867953338873356238143140143403316911544137961570364231338822354561968473190127385187352759009135111498580018509227596024359869156667703108458187537908411639022969533015392113355231305907991960305090246531343962292967634122317161165435559793736071881921851867018013235767720202232418927608936052273796066732681421341020654758387541316049094451647711445168157904076618208504677444803804898686457275637618937476386657682339795461095792527216532394436732845928912721861977319332977555003122334857854813873789420779647312803154152298642223663617336384704478815633545182651284879589478489923188526314889812397802523303626810632394385482323780226239660871545265129954751692744095965561684961990647960924823964501804970572400297670027978207760394127957078110956398993954276657647429687355035496610931823502218156600883777342251209387089510739725480980936422348030553927388702952129965352485855552141927211619428622357315181251803462783826345495999416902997692897583532342857040674096015806759669344169114844892078546364945694762191539867810696339000198278052035326849479330638799310587335390288095776320594901557603010672246444410821218121861617007633088485332076333317002093108965505585666805576573955303555312424733043745129694229789551736877772623741267764920668148033465387026187418456482434121070353508101859605938908740044015961307915728832681237915669619127085458550783906948643305676568627486467426613589516320253829511098286818413350788833573384974090193970120600832090688698468091870124328747960960047613125283204863498892735387318682753343312316950078179062508701139018698951546689744819770268005968430090766100500065175275610699582946637887331916141061740451355052577528721158882453415538647693089639544071365350623535598531445074535156087310690865890586569384766764810498251870837099693021587308020314201395809393238229031511405782436086484267589705949806809911272332246267563447167452472619982221777843809020535628465007020933841464331322648886734743742352824602892844209032019107652590088118852892356936860066569225960260898344876113637073939822452474975359347397912857291458877115665994525794584669068086286387061783610594806076644565426748980955484667984254890226186952615130905116576347959875057130062757921025811682837620236595046405120544394934372529619021079120914823919669368659890763386082562434799552902871813838670064275969036145134249322406301792556210677069450931903201484066740963702405479752957704944570314474897419400662381803484123750792368882816210984442817970797974148966826624398232167852556598422345948034067663584127915448514079285809005271192375324506824901150408844047238806829763480311332383097743012379604260104482301787055226498331388134648905249614521939005889679409713707445201511877701644323990413118223535605021585675424830135333435027027388779801149591459607276604475600181559610116655801629816149613594758937420861241758141743831896751839567095854120916160995183200262986913359240085199888327604891131252556730518386047548346500789336542831172372429578289867344610340640470987921531299132687483942952503133881171683179744635200899340963385241075879042464689967134623208496094886214331772940408512968186103154272155981571838049817645918167900849782433197150164186413754014301994931209838534013492399766458565564607747516559430480969612599397571218434962685890699682757896297243517257043859354706822768783005072599450269820934866194193366785841530003912893865107493962262625887882339455297159721209923411859346544629100103512634363443198362741555549699267913813719523034612633494284523802167810361854035597185845239137598578506306580763493547839782731654755092826383979473015434817080129918776428641178745973287981343377300357387065018428145100668163737100006281840322745074894871182867373826304868915927803973142453180828241218172228994457112700811655881702592387995620192321226687962748363032319731679474631184972128451977074596646211787298198369222622865984109563519727036703992203554432601633650648759067456456037374758615144084102111915511231839962577186211113107119862728696472973056514018633650035960863730820436338292418836618508633058342855722120066155922845368940055603612862066927592587174089014071906258933079686578520271470919852194353354908532384898415951221935312529940874697171510797540465847812747840675494809734319597573090183151505665099962360908228784127238304731060902523678467660303276487430333867655126572945146833623851826018246837333657648783095416751128649790156176525345321927505239813195098660857650929139269074164945360378803666604373808585044666379082879708009439186261177613913350922905506730023698449470396855024190975432456269786767334804643023520763572763471399442407013331440324067082113154428523501440859747965301660906273430210171183751310436806244209926918390541078253751051729292511415703360376956387675452391084508005089664442044501283737754657160677207490439333682504791717317117758319888258284705082701162217422789074337111106718810750606262062305786849472159755428449568292344291063400516328859838616105047343113267164034336314644507509038212751929350908240812877588366346388378889294223735916719887706238852247222623729574090558450984609575841241795623479265381654230421268648629880811263629730105594397682361225267927764698483330459268549546720594638502844154427251740442192648314315174599871644224823366349105213942530697304164863158219917785459887191220052724965219285204931440961778090789802597700356080882051889977070965307634344888516932610076835737422090254539801282033726490514223372310347969427729237784738435004601860296528718815829936312675257802139476468205973571322417950179579062557732576298242442760830459677260679539633389506658789309052986272597963288092298973992150902731178250005497410752825081190282554554093430026849473711755199891579189345712322148234470570361726421694079822300446944247582716612618690720836553301455389698081732159764515902029009428176018341398469277932074505640302054093572267205164637723436861222781010444988830858205264509257452128286765686365269956559266582789963077922224894511864590112892423424752226398678533795951757256763553279015653128894635081632260797248177165333598867051385153176680835732817233712839657375731521912675286349997571516089464360358816814987519783483785846835748491177263047460787020152680437590574961314225941066530672429934971149376223544066996754297362409501470657018947337625568481805378890661556085539866018265917958199855973442590069279168350884530981733797741649843181926631203424878697883763857011999412395955747877050375724226649091192986852586759821321712496573266330572948702032408001892486175175618715507142453275628289868855871678017646638791784218091165139202019260428123549707986368834764010104946724480429953028241362462793207942006009231571022403568556359265995780279988968248867881683041560899663642680259566077808800147923638468174759240411600691365484265039646144617271999460731565654329101598589887722659967265878146833712301463700195517325312919778059457098583928198454392591975401420150642947660858347017697641099602998320608773315474553131870460887917623879743986748385261523979688265167789467836031233619067598070585154622989569649233708636308718289371919198031596084978994116136474465160267843133390293658461355592779479748902433055599277653417474405916777164801933446633882745802147865722048394790871585640352137227467026895277403740400538936581699379128752397588470595811739022269325815909323300039729476567929086160588875781110608213188471137509216233471907498920921993943083221767898249275628281322940182450338835911548083401122683498879352236019971865412490589795625886936694740745010305638691212278550086167802842555165369187777188721710976609805323516480914127262627257941885054694228666795738221138661032885960012077597198776997748097148936683854661018045097632616547496356682930935323314569983529422954478433652702629869360066531600601519386421861103793114719446509876048042392195175915697818462485097076035032908116507669139171165562514753370140203044940691723269472498073314825553111950200511174936284754005660075839755976909919829558312597419378918180514292492345228053767176604104315886240395617186196465789654422204956246149443734243567022994119737405873662266116506537462263895235257727611377566630647220960599246254377361657038600759489756452448635701240597538426924367087310975759813626032810680940135875584439937687534911455095827638533161163662485305344875394905525691854818775075788368480910959240848686214225639184093298034055356160755600564138832492312919660582309665212544851318124444182407084056449819978360890660062641138311412155501426657858076269105652810947657718191874739058612642271947620719742639553856123656128863000640161012687002033574517988199958383819364147587026929660448319684653769091587397885027701361063389324016814286515956731833505363391980215230702553434979799641801856654059288439663439162299181888456973133475846127142518011154036089448217158397521399164905438594263818516316478428086850727736277020120065904236376124701512486621190093621769486472424069275305255790319970200794772076446096190526170810682506859542722139409598505344125558085601562063175579171026552169402485258278095190671687709024398983396663656053374130117980658694113230925477887078991538369704575739514612635824547968044086191909230012286064226939995157350140780874206557675805870647575020325428517610616777565298730758355477782529621779845631993813266305529085677695731867615918386311202190360255737186675824791651495446446108618986143183042824157891120901126051301688362586777352075624810004980499243308196235886015674935295563176095156938737184993319172887982500821329479527626247779248516786485388934505427302733705411651071391564442994539175922672028586794938769287043785335998897978806983931535547711163601530243230278286443404662525086406050902649702191877007764984124161231649367048893463010428546259159837150722589204001853151812775112152893050649823000711298939773195327179112555245979885541182890111396819454284140993936227571244179189452283534503734357624241342523565059603998344219086940302982631940208048017341346039310038547361854962814303403435266095675701872182630532568678112910719482437172069060292353622944313899781980891359063817447056663689902494345690567298870026465227052406816647730201362092966332507419184207334402837434447533089688615029283540411259585701867427880675839011994190603646578639705025538540669472845906250955576165457181347612563412891322405494520863725442514966983826194554870182388783215204194530030518589958157133693670015120481684699107664639722508800394110080057756354777359456430231984933698310897698868353002562109451182060911292300902609830547995544348297689205773066247000422466751729002269789429258572689639026179546594518632650268635956969079821117536943185977992617221814552873343110251604324360131989035401027590149603234664763010787615927066688449036942124672286884200250548860619290502349987034506692573457281920838452703232322232523495613075827159074608778339345841759592065594114755395595637697860737474580557952088407233294334399297415574408521876589236334836660072839090665919170814645415612956052985266669278347943974783121808476799475865215647233994855795432383106911330234226503339844490237445534839391841405083869558549388399391257633587352969276120135750654166247018130126783435170109875695111884572442710802139308289470976992190865573305484341373874798833198692325906824565150780045495618575346422049711686220103457198213594100299579965450830675578487672267290276767039825935858403112581916191935837391494310930653056700101727034209268469495622338648893034872121473692726631830863252987962954408252408447505262116922144370015743207314237650035915521619480688560593561986724869722262039824200735586279243094599418662854571184873330602730812793060389188586003398368880795337332409774313770237065059518709421263928265483722996017638896610762064441821109776199991946872215053878332709976228865612742398008567014096962754093303955983814574706259488986382629418448323357831497716836716469742789943033059221576339118843130500204419118377700619914768616212711827299793878010942869575787742267052334688731393125603516097994062780874037237959394098867156520340230249171023046930928461644224615706342593707232533694049252896809981547631331432783530915683570630040067276756473680287256577731996929092610903695889746367529370414047230105141126119812266874801066979139988882981292564204554983298954579750191455902161275426538984551791960473420794103732248200780691803548201980759413413599381682077490068568231808684751699509434521671557552859955227774033824073036555616537644986195369912532587538554816243112897737857166170429047396842895906177156380315110171640607210363343417746901692254978853908963767360345130411409350464776590061851514870484781408655557414211555834409812813995975626699243269999719844708755913210046289000544574112617583453695931423913796809626936102316351180546726320714893545181703573822615508379747090715967505081534249190131847222556127605012145431056223812449308616989603433450715212710240799872047111698405860686652575248431611674421283928813063636730412652036130073085039458070422608230699217376541998322865305481472731104263492296384826495244673356329492167882381188929376795046422380042702263290024825076683810293163555130027794946775123593387656646208266743823830662947554898357314974921769562990559434545398958190315187156097322550272721355340809197922656098373099402511563499428957638706886428723048046480725280439601760905116425026742931288063219949460625525578140731029807450186691329151157097736765367089505135495636171513889770235232343411564935682120537477133595253824406916227063000171822149490465429900430508964589857895996232120709561048849238970343603976310119763691396423358241379962775952553066849726635771386442902730693217298343592457356430085059776495915464371135976096068674826917767908663200256562885274566489078496062344882418357768086997067334116946262452187374814505850744573553606059245227175108046339399756598153198967221215221324699840445732363941626452780591796749827283037105441513072197050479783207208114874790580828783791587580020266586726078949105968574500993748907086085384621713739005839745814571950995962539538149390988661595902160413882010100150078413613024676023897424708800637056267403154503795010478328990815755828787803584055995852360772811368191996461070835336483599528011955459491863587982893956541896219384849307280459478869883397303526209499095684428163023798562890082568855608600794185124959737559019973969531632385566831818838211364389882387723462391629151586706876877924198244534476198568366475987337746588393445057627499321182473023526662899555075739694453066289568996904092195483906196837766135090459675529478051556401484708218910113116260114298368776243085431047159699691929817880106776849987205524027549961350320818653479882230674421414472210515602069980391782394075119999720431790549945261417037128035430437356657052549880704937441999188403632608494537588645043751930219377422516436617144319305519532603746124288485174255095094422346533891866209254361534697909523437297724256539527050679630666165404627047022537580687645730034226929661703683871469789408624177504996907030496566152096733690852732965104476213319655451619358992162529173051325520506167164100970950879460270555451538028793555383107809975022323877087609815124588297293290266800509185323363257324935859660743420037936797163815481158708346381496015487573442279641120340687236808119005356977674480264079710642462674374534555179745062200264500794959019076738233432014768645225674179548345620720697445733250912669505768534234983326420012071985597132568215367899430445305293974884500419209681962769671856214932541569657433360023709324448994146956245658546718291608157727104005722576556333462916669939973999099479955558044516887517950704427554347428597047648962431518003668180080681691707749910088705443757554000501044415778801497848097482407401033423305330006332138617006082471894648305048530851405292887091624992997333886566001773610317420190193611243618238581438902929385892432503321387312542459341092726946065165901536918378739130071705656388147567027788928263193010916609193320752961592366107009600418420441490231095321971609057732048907846797386577597501081315686423859479671698296517431876105626770352522174212758912573880672346793805506321965083130879064398472705161934349424759813874177769506039694592999818237839255722432289892494834786007678085176997842797584558508769330642305428150414090752063810762021638045394105010416313176167548008030955862998270647943902528868494720404780142438108537278010088149082199403204624223915587120493366891880985675475864646756455583002151269570580893128568125695321813926200420018258299306032943878994413385086189736516303336258887580794896407032591102882320324905648393127750704087576180007686975640933829831416452739437363700519470802455201474582217360719545042837743709735627275683949780717896247886524882885416570455707836448427956837232341326441167135501488002263448197432993355927254381649325751756192909588216368029837376106277081221225832449583218045331011952189922701267117115773922143488601781694399019159974198420129424041869173813472724775313149621878955607630818905599377996332143793192071404538158290311947933587446148868255557331115046476897134182040949662790250493959189437061165389293302192497054921213420188907165896569324165626749247810300487975289163496391914958984947382076319300528940054718491109590000618651274004660382426018152670964471210169486746206071908135017676825549883421103564498132704538278551090411806099972031157564406661308135494811213252636067659918857061199862043088619209318051202898690463809559858262732580240070979172161853300742936235255777667493264839561439099352504919534881270918741291654777124504696860374723845480666849033122581240389968569181496727615906390319532262276354036774788202856325548753616523372773714167991818798294636988112962696203642243922360896464427131523396074384723549914444369219061893157364596843910632995454821478861360577299501970032838626078193757359235829071870690998833734956449085386246908459758538816301374164316525493353199392883505093478072735730565382307643306806449311571805139388486519423843388959873761106388587497155588260292363436921740392148832664628596684741047318464710131624323406877340887624257983019830643722594797842640432528802807898380729111461979423862169710751173634181901111439230013534229185182106342077767885162573600533507396468514396831267769680795417210474194220005362510387612574216350641413257999346622887629140212968617442379962372432526229741724964592291427026262472842898331215517074649611119940273510727710561657165749326903589038699922308290852616953958262281484073647927051084202176732579463298045243754146600859561188126628810717450828259151787149280259786912318321983521806288330430011087856214393043519193917085362719039799309495684513399533652432528095895919804379853987293189759760239951508816543791906046112686812197584569264082393589348469838420696850660194544177107733130443765619947939180327391120006821457551455685953188209308232040284317754841086886271273201427403117586553954766647295305373816015790853452462493365427197738463151715641320357712461268121084056459322043362612726845345249053188448421588827974065425706193569206715127187749676374828429850463819222314107604117070118790244249321278437706504814646744731746931654466242943675631162112299628598718509072492949468674516355201318100693052045756361514811415186414495816652119268135038941223677956749994652023889875510907506099906807699689556255539938130717814950908573802187711679184256332686243232854995500869683271561541360977459904849962264246417214031199464786369532193828717966640155617580347319512979172918918545827123804318729456623979463234843744713000003944494989876127026792222118867821289328823684167832246640547436215558069063747913273656027276288567078039392699315996266983900014672015299652609267884612064819921556362370578397347780264555781762590280078580767364541929739888361387667085223058597638666149473781522915778298270749704411151528988808899929334660307433756800303186194611288945731877670872164549581188198187603403591405512852990035920676782041804947579142419731297954581374545910583116270319292743399040866621659391832475512765062453238320278418905471849339344288462976670107134769885642527465880430767284972044023103902581757688929763087884058436452332128255890953546371941244770402533935857958059124136933548604649176857616962740930116873936493228116665006843991407935807658231606340903909016284703792733829680718319494826788352315863747803322633647976526811974791249043684600154868219643709881850033674978288178344437357511472155834693602585311976643561173652097519780560530723460314146882864466391460380565036037874471557850971877513248050276633644299663650601962025411902463012138092951527494742603484620448397900314591493948852262552740188414446396012254877478494596661950493564136911337784723063144259251461645629048247981637376822757251839176828072650305975307984623504264396896414906990149821706473124296360214780352699142063254341391663128794184073489159793469521481799927197155108369872014909923768152119681144832831813118849818443519410164058308277311785324852883212997582957434748881128339027212868226543618716670722281765135314787077339601117496886702794501272366234886132467330567479377312992855406682082189867404671770918594973081882199892829936496814288909323015791499503480651864184204135203443542253337849933140874712604849630106438753667478174053889795724895368843874427067580598948462260805906719188349846727492313174444306113892126636529167231846893289531701222877194263882166507946513525141515775561380083910990550846384078202959605893474739325450025445273679658484540133419763541290927125063694495209295005252591839633867126599127864433255236241288007074682073632889296616373840504556733858975816332252451675855085592072409605628241357619237059292765501425929901455219678824390651379315639239048348358201717912915041407418711650591393172984100074961372484213887220711113220785353456966224549260747373768571922761313060321708517344092918135830392547744895910006108580888089665343823465188164806242159977612846462451945150012436385532287496591935646158564399441217719409729056627093036047706135294927493766189196471629080569026260053230477901534894743008569880744416207109652887742147365199595687892229305839807712580558285323367985582549666832555124672963925783682129788475355080506203427880230896660292161852578609448642989997577688251027889348347193298547159473132743270010421942774891425085770304342608674678510611155472532107798194511036097546191988737634938251671517304742395299890843858734196299386607947779511803859712797071404069355819399451676372478052314388579749192966725848600573748890018900853658517628258821999699454926888043727448525914063007963768064795199254892106789129850299601258807417626122504812195464609855428037225958443287011808385467020086016915870104375925316890935536607818537408799496185776602678621844400256490964472841184837334948952344285721603026882928326447100480862268989106033524157295307572548691814385856603633108397456505916069443206182649101622166783662802811784784568343987070205406456613459595774324464208745435818991815087979680046119181537592581572930456188483676303521410974382557187494741814316176939407476644385317948562466096392451125228462120662546105503936351201994781535957584397948643924130723740587730156705543165567014066887302681429309433561268287572306592152363857976555906123979036876446400928925738160991596162207696168323104723859435179108388641058633372636535606052000018812425876002823140218366383991125104291543197713900078443513316541980768663719618721170174023898248842485874395532188387259424957809784465111357850190223374038705688947817020131094298099760007880896730904524152745052698711692968991350372309537085845892351566308928272648982151928949449225939683893565667958323529088333289332265500263085251241326880303805506583392904503164727336717356141175906413798736997182392798269350442467208150968572468108191184898281024960451624599313002998621236786860633471706403504590407765746386977192772391112339026279187424023031554845394072176643446346068834044803398275895172600759414879368334220336905182626682626221410073536305456088590436575938562406078303917700100166718397182266630752667350201829939216461556061603304869145402782226651223479342694746468127585432523915762685260657839951271174906522929077443389747020598541845459023231486915204311901326812790219232216196266160478842076982319739394898355847577756657374820352540165888262648764510113282450368826121955956678201009784556933299338977817442410080229901035328374281310939326734542091492780939090026327897979460965016350063882265284362411806425021596304735162216685698311942901164374311383839246014151040381784501386551164372349464501055657683535228799943596486665750012188821803819114416799085443051354101768362389051981038220466839331219884603615643593279955137320573989274858711047072263213489757730275396008613461544553363041084467143895033699286759923856538080057925342381050924370043898037414559794144861874091788453125727299089109051654748437569699914711281850195116157390270026608732365166766666503706412511470969709749299428249634275169363695689890699817912672448978895282364987241199278500314606161224603200564409567622546345945386826253147196125348831414130419705937466948371814090507936905548284855525812630070808381132332588482842306593049905869758071406753457205150226922739637839717956818573120587556576201035543044814189804462809670060933401859682693007345089049460400240690658070056473983495951055924298015228996962004150496514355806320984767193403321659660876015025485039832503189529033497343074489435341709633613250461132537739033886470498614503837213382342047918659756494429335442747648079080658667579629943254685033816153315280617112903424417046877946885494855024946648635423105450922131815661841558351788951792361697433789140061489678505624571040409205233477653665712135460670336568554510377763598701029666195931379942673196816999134249699347285784801851918527173160341248355287184803827707338148772778320405436808134388500222613579023655736747808749581280348819056343651541185729426743460085444288626726007430533781278375768649826280340448705961085921849911093939903208129331588615629883613727455970361263764299246645696735584458920509962609896807351472710530237967017842351977363314826212786689262698671164593522852988080284615227539191266648115042310136730929955429372186056424372148342784652306686704927435204264488937332670681329867545810048653117337856314646852204801329624486777264907489125065840532994641536018900845798581803308124753963507214492660810885827315625832284843740497705311335102117588770950738973521612122368285732412169805974304001575939094184873002917304058715327472806240808193132582143884211006082033038210385408263919475813513786835754981932768054178111638139326728419892996395150946501517030953765920296705693225870249113397195977461314780668783065826898330127638159619825540555460914363629871797472516572650656302909541846534151663346286764964364737866199381452585207076368785074652811795803744740815853491960550685418432761658019460357973163170312542229503810818594545848080309081953685809421088802837303959780023213477852109758142747187541866175601073052017728102619896609267829877396112051318876562482169566778056548937314630113723275888672393693298970690634025973369834830071680761646657763602309569811539049288875173507568994434096639989084323462108796917529704311449831517704084614661498939657694020127538141778321679312278064301197689005024140753150287957140743689890135226371573637329442567504644593821431182355022809009541711017513456823512542282432665609005175441487140838763536043508319070339188304796062250904166607576232739007712365848157088807916947980575766735721747183035633344505893341554076865603385882186640467625729633058277091261775138211135732316430761839077249471539992059833024843443615809638196733288314324330351014293013104963417297371386796951382848424318065154974830721802890018584904656134632613023077622390267324980347007210322678621446405581222070516465689398361319066901949920798946150761804414523689797106485224154076408209762413671302392084907547463687014718949391504551893978386847046801830335333999008415734337073572581472038410587061121015944323710178197221741844434253163148030993715852828618047913965878221500406520277587298779839190338029392360906552530678479725614417573745915798564916777847295749395259476230301189589799115896924036478701649141453575311808856230353121713094706530533085912169062754035962553590175719145354584263761391709842677243359029329119590066392281412958662116081822733644328993064157799449982690347152533189422448827858984593901675847931868599745688958184559737459274999314188214168376493591586761217889796153435112035111388265677059469011343515141576528945184122892752005391938499760620717747336732328419128538880554709168438684700767540168747930430559925770391796477345543889024745547895176975090674900274909379357413506633021844989374531108882692453955752554539077610311655764814835431791976331155838350909501286544922439163219447445901807972170447242794157176832473353144337017378670839380565843859691193641863026666895322458375695090927289242281477341858716847327241181784278675071037543131903108314390356093494093225679359432440541881725910059364329653132126878361523987375559793688971094292308704881482108094996928662959916151286673379587022354703802677515745838488027905318074684801639500603185791344760562008483580021022280400558282453527182796265913996014661937231574553634064970091219327415471656675196118731342793626803782597901232579629856380947070799559886363181553876573576089116652414930780171672654846589177159802746717058256270729910636645668104887713546416314174789308049625718801325423911944534151367517006253061872755667756055089267411213389082761470515764801617708506802347803333637293470202580581351521746611561262705441028182283375459674988568222558592176050767240509038409219585585500551033761851676606828155714732016348813551522711709291102599450431630130906765820312310573441176400710565004216518571742365022008867367546516365105154344362828404892665921821054181469325260857535325722318576537480519545908295558297741977978860854736517341108549820024895156724024992834030662382896709541064835884710697577778322950487230474985796557442980933414441546124838279282856038405270985568734405696405234698482994130369538964562820853564448934818074448005160027358557141672978434876802373191835527154805453366430429105505521680206692473605323366145770988851155907800146991338173553843259188735754679493946218880625534963185007319559167170289647373099296892006527254134897774477406432733835714727819533330935983845787711428565721026184818343588640361809374553857498764228762236630707306825654654800794092534457731871996013983113757997456507364440324541336638487281572117976668142376129903962551159462291294655513196027704373306167933235662408036659920527180232630207429035214968881650903341645976106833139502318456786422219205093021560906377195635613789853408358682980918880539564883906425555568641569242867481915895761025546379284299919455692080337778273193362316485455752947255312032852182356723894518425741279581562581237709730354451683754710891534906029409576524725506790366030056047145185735978452893887556547612605812506059281454135533166917393101483879558339714348485948540830119086727966272240000401405026583122777774668680817840444260458683221330416700519777644359317753320999630940572622811663741115665748296264521306026551135936240507401700316832007887298422413920950485595415116306425069793696672383801798632276343659982361845303919544381671346304848034984522004093988372690479943872460388511513039778372847141978210884435756482590071329142601891368232528760663291146346895900223576216100794106062618857504379109339278004088609836774712804087775747689738365382255937900089293449787445820801015024062612739000892971206261562072970811668082691966123856995570450575283198508912901502953613580025842961430170675675060832978967295854551631877225507936445820501859774046379721009573529948183435985338998774982115651081937438455655818777317802692440710675277779774431325738150320723061884963281866671640467898799067058995543938421009664935547838141660769807233157045572340823780021641608237350452239921110661477506345024265268540488481533652984291164611114044255440998567996932747843714009206552487246254117304623448770781527468294855736681606046278286838418303146934150712963284537005377530215690107717207976483955938703736646134499921064668416028782741147245855881011614558177799974151809863439450310760765388005269355910988684417376386526580195202370277238003961951396645103127921373191242734248915719580674706832555440148254920588161022013884185437109793017836261540991238881632840517483819976057824631561378897753207722971767706197070143744278471512595497279473286721883756185038614397897142622657347125253857762189036021908345740023269903467319256073966207630400352903887236844601864718587322673858941141621072963534218612965721678424663291021664365340815268459136651043916456265805557996146002101438534870706612431473200682773143210987573736757187691311229396918194204250212255766650881825690619156947298746394844454751523316715340224383234407278132197143968963272039294531166167217757072183449382259402290758923076868948798715469436359793228727899144612881460709660193978607673175375883053391396575505365503087090515654341096612177111443471863117004919187098756799581236957183561430114771156185714104000723600967841490522193827561481312320623040881232143529776342473910870713407761631539527829339102533471849029252906779041820561282455783215503582454782288998187339439868443365636278979233571383219414791716018029026692135017375570254585256208102634280010568448075242687218874321364457454319690026801525361195387647738872996503186009224270902249261718415719809694557581404762892693598832631471765546014352990259967419513649020319520548980818924483875064198244210258388697123778204221054272546271124474409449369996197505626035352341397824260112043354800243380527973933480022937267116279116018592066855602271052306509273032955220640841837370139910368065667621299893510639561335309050234892630810777742364170895906556889347990703464331925756508606025606108019775043909232230170768973880370638984421233783537769677167923345550141533974003710856422758914027533965257107684402591583038807877842186373597940488942541589114099375007990542001218025722045034321574506632168733784457935175097224216035123760327586476146856333742893672654308378392005263022756427611782924804530254615900838881261236895569586436233732295203091549435626234645184771793901858648261532662328777643784111130788140647594431412391338854327995477471296365332615611469393805385943664210013710511021161272438698405694739018606251421359226159160294429145676814018866558172253827764231087367544199432328261647974148049086807582917969521276608074775662461926236406040908078467444935491236465943337760739015867150295250780395855523652239651825964513625405820379677116405530683312455689116673081431775418100295202318207293457100520457889724786061156095848060012281552209050006609455442801572343014533925532035221510051123082337830661481624097646124668465735681685563183281607881023879209526561040435220084842996742328951016425854953010960018171161514150966796810946302749505873447607557957012449913918793772554460545482864180144400117309199548699588973531263562332361226312310374996477962570212640044443885303365580522886112324927104796533942089435382268581462744528475472038483436793162808589438015875611461420970341955871211859849022723076916469024028210876292304694276046677369754355446032637037454778315434956049680689462348732440697747234055470076087720741482013587631452056177669933146238749211929257907811369590291272201668575661569675374243509233209678026002528902076409958953789332351734562785289311241892760926026402182344023390727625166032074517457669701493373356831193651253597112271693349591701345419609607460358824803267146486408734999420718679312936372222860933379119915980257515738232660289804652138786670389276098146493609220447743209512555712194563701957233159836035774171328225385488258083417238011490457149751217502466047769909373110338930122683580961659057837979966744938543233066351414717472171693078862276225204760824976438020642451708296389768891290214467203677040554096559683689323193764169971737106147256157757117436310733617011819879664284034546849519347990668390592331535103172488668758367290579913055741382905682573334466617036257073709321556519620578962051110632425504386639315592862298095846955954542070405292282203881954198993467372329488957096742514508583301347785080432151569958865453813389067908718752796869576496343969857428330082751450435885199054820417904863795716484392300343523287337050198151862991255655917509206703708473391723561733768556625672984008028606970858399595137364392791186765720110149935630013135529216696676859013280816676617346836677763789861552594715194386447454454416503105730504952610418505001204347485521079159447105314157481114853698569910830279139342717662055672120469603595106683957525894929134761413150200702847838556945247528791106847054531305742448356714427856856063584216037460070759530320258610988628743662106195602964440578169979550984154810621437393016213224689893862476942495543010209077605144312762748261450171629267459436611945892327059314790050174612099356443663809471522961004198605452453790660674223238104176151782005410274949827450947496553434977152835793127005805068318989884047532943117291323367115603616462132506628629236650357482345289406614626611840319382051880348611691903216564598223705687463645915566296481021528379628551743218792254938251943593067601306460276289045351492157924746245334219841424128236604897896291615889747634008195557018208462336467159123958705827325737074883969459674262112790188517051316734355938343611927863000076133805934668244677971309149239136370113389627266866653135290810037835036292012096395194038588341110070486783831790200196683034842055478473780953830015298644285729990291284459971903680829580198077552146472219822258365159629498567328495815843817449327247201452131555987682721750867458392546802218180819633972682571966428276808044893526289541583551831438704010619967343981016233265371556856837522130799780201685234409646872489535652817933140827469097614096769743641201396827642115792695023494289587022404071378093645465779539105688147549346936304455157721895735228999215311756303503910021789426346484770372264984461180230526414849166072093008509200465709851405125739676583573819515563038259663092007604173328930457110405504000117146261268330371180933886008272923599911876515085860812621531163897453745485731094445760915900095629085318540950105519166952805125153161659819567828282120643991894395413050347442871092424006579366201072102971638494115265939826283258649992754349570578428715065592727301308308102872795966269248329574195476246821715019801820967432227082683198702681537590256555502356023307197599501975790480761021074540654089643373046845831945881593123383841568964195632801386826889472320864169013118813532017771005209601030042190266783837129622683454008709448169926259971512319898865517404420752452803926381728874759923798297214566447279709809446407210706032271835643391177693011907823119248039114378342475645108972164952426012001110241056267315324971800117175462594074641672343157841334649069494002133239420394081281180097398949728632921775558416565531677309834798572098285329144536413467994789650769303959115110643133575135697673842044319311638509833757708291480972658290615436469271280589749527813251532191651172781788900191405482876816106405584325621045464245181064233899911877534212672573031410779288076528163323987730046961253419069302546762380860752333160984983153932000523467323415569540579836749372953642144736674972813748985980673346860684371518517923564902090738812962133626859800439030576218866137834962021319473688152796946251955046680913081094769570843673961935176612303290591849415267890107028006826764064015526001147047278677852293273491157467678870941499685384319625217630325101169678856091909893676980497522631739789542097800999975614984077339043366011296588730931450792749777055866420831576183406554419504939940481489759391401385342867509754170908822126908037999219495715170591617620964965702339816672562654419602498005938383074001175258074863971407293032231675739506776407337885485815302213987599036672331397981258561833158457144677000886678537480937328444009464550777825128207001056663014145446319212857632826335044218756027495313743820165112635883727320950858577712223217244577138204376675553359248940124590449168461332304539505876756992128483810270410848043366591632684561765633302544489339253129172514771549376596426228128835877146655385131730151323644966429057093521132708087985354893022932781544824286961136267308102396536145160431192682551838116845330138195404199115845011286886975723744618502610372629514955448725176604454418830598121876753992866171721316639420252828445654544490196348325365108831691774695830084539014143497928445263911574739630886267050953621038812570332954097606578012617055798269154085783197488729025119082009756348582908339575682767390504868806447154875679829163230106991696749220086802203743561411672266052812065941288445589922688026189987525944282172289937112860140943725291317374631872945461339198674897327840865443417111296706962953662534004376033671307043607348326692104727109465679977463401445715624294081870341072963180619695499133286823942755109842092894720468090293150851648592764267853082534322555137178020862024665099419766501099940544037745135892510756784089929570060297309175892739022700359523670290500104206410723972695442606429845353229342689333923567927928911824470387046937784089147269002352922616803074168713894818974204945521337643716892170364499328424988241820829459189405632302410646854185149040480581209864004898818291527281867099552811312742627750780145505198943377387718573875398105409701287886368367353345892615120503025337920155483491946515720103841660212873506334522327779585399479224260633484933184857899754208219241626375704606705626866856684280757609316846156865951392330536317269655149756038979322606552713807661313062217642357453419991817754711683926294878050327141306661774448764868282934865890738203904398019148494626730723689608182361753125461218715662456471596264327214903945594144236109890083914530640374926463196362303223611927117771894434831021456189403173588678412812638573377337399904033400520323112463890335614552258777124122489846957154955704474736163136998302765134326153756785053846497400349538314484448251915337848685133272689480479899814139150735045870988284456124597901352533704734436639905737235357033978557548675236492603324775316695918559027247762296648844974402652344021428544961688047254479292229567298340727462462029847912600920514733761942082037686938946039042594786772243318615595874355951638355464414597205069038622011286263655520482266891423417165944721085220464060053046796174708864239663158407085768138861633621563426676088294313288724252984228491436986412889631732100078149956586420294641999900077158853482270101383830466240399722737750543671475216581374583679953793794423455333860522236475849813319078795466233287372053728100215589233165874656934174364061502973362739446300944312844956776394140826687751109221407884870865072470143765787456276706335582955711131174368700851468628466020061897493803543068229050486567423617577262932016411451977315468529284797834895913464036852620733231578717704275285690692501621649228802634987740659604738735795620129777172683276481340398246856354941236625950402483849934063890738116033119644249430600427484882446834555484701283984335713441512566172883456706545982093334553018900168472092989737626119766762765676041679939861703474504505528284214917899170394235201682895452752940326801767633748954816787216591356580076773103855856930702857073890810407284091304914652205601828611977406316368053908420310384741105749335674374348489243955890699800574281370879500741110241684613406459427650538606948291181703611750635121629298914568808343183107171695938255507710587893843724477267973267520765852912369448768883665378926917205175361393880460156499257551381588621919620738995458185382374437153274695901342998611940764455112990583583690399681128566394749249953321565924058734642963902245248308004208870962398045417566622439352549269910370840718395497803233671433560377116006535552762560777097597978872427130577660541215628758385259785011307467741237958863368366938696922565788856815312140539617916005706578342769134045993164084021389737289493201226314882394196888897130957340353002076052042646654039025762201705758385024989630327967263671134380914271113171064406108619114899847468837575186353289014786154850955657410309084619844299544162913076462564721651548321936067511316179398869622106697062924633896574477686087205184682041570033871558087126909299763965174134840767082474801160886041401223703494180900948769247989120293106473400246507085732047161919690700698451702182739322545803928536904407763219178279795098412376242499577491854806748760339695862107712207166199430736169741507908330483254578861838119012883160987127834920111215411873499930687953813639945597725685558146466158958065600981304032192111091133966554826644890805656162589504451035159102581245167000444030592071599284585071891202602913396977883449493166987740091210507248399928111502774946916677638320791253914129404435193006108630577699544811403889365178950392827633103161823724403683790145099014058131602532962392593035886411091080370818408710871565342402802189478958463068767853303903793940075738955204092542392760439357122754197381660138494278138789732229511033335328224202045476570009168194844809767586857039785328380534641564159942253508109027027644666443241202480187108420303257834120812110128800333015122645119418192985181098416696977804234315770240037207966886607618901508840395466496290029930835131663725608550375601701057680837536955703496806996309246541113700201312659790260693333513139568338063538878379801518352759303688840350997494108185491753490353521796687106007091519575689088864665017414813152260859226486673703144404683051339060697901483327606426468810004521079199890970573764139928024669647681421387774577070614208458472443351998559908116323888777640952958265588400499777924355434301193325118021261582120538265671867158322432159999955050273764420859745061074781704822291994104886196213834746636494130248668515042889229928362674264304897209361963522548382862221937556757309081738299147893382069356886468831428588407856855289268969750809432221639219741680673066572364388679305506930552700390639143462293738415649614874112898050090624647986811859487133958848189620860918714346205311121904912663383797039711765729708706010433398236881787651479584103356671370831228745831496527397192299755961034872424152467210836037945739139764441130975979582023276090568868085168582788471124537284441503159320908713502414142043506547526117522900854499144815596501971483846440929578301297069339929608625557139803801076274281236045751924858122280858816351813554223996161543717823224990747401713750942596110488183107592473390747870788930491738385854123782388869526647473395113866795520721813723987606743540651566647235245744115313925185073901937193567006287255169262210293981357955383841559725948941304590930675423571268557898242660070462264634596551844214253576536363673348773514218170072113019301345886832879534077601301810393173433232435972797741001359803361586713653862822089573331992022004972755965400477845584650073835949634807424501438871094560494229251911720469278380708666531190501258754715626868199650440855753848902818291046993451885093507630485788726612299507494897294172717069406106068482260097544837286407068184087340059374723553641627507663993858055807083683520000053881210626657607387952488671858442234030161784196846232422781718028804662537581554108260568071093361340604334655277165117540526794100088929333890487766842739521175609500620670674080175102715297805724292462669192837466311839245040369257202205219692452628557033130535112647885289708184025963344371620031066103442789749568527052592348235077701090650386296200226444220949748822123045173223553647984885873179028279553111346126904117119614606936595655320630672390584260417481675551501376744947381183365247485706391879488488457786184315623829186427296424916636892614862572151226285296229942752871853764169234542973835202617948466697682918388850441586627336999693619948695437579094262997197087981894353686939160971051233414545119216351256923222960215602127805980672267690889507382466298741770139730667628310327629681765545828902742920072857116355848557199184506151526397164820658438861495568279958275794234418087443050124932918598268310474834437579799466102021745142052676160767228322391872837904752946622500532975894485340567883908340195595096542018088074032561396351712067380484579940352473812057514394916664963395345107664159223437289372511371314678645400013053235308363302919839289571407900580545409688317166836003734497076927559892340053521147016198834267959526350981450392471992988842097799420849118782636126674558805803275973077930418932252749110102333500296253592576655233011342729354843533254645994745093196679015470317507943751649281739646003409796084184074848391464699714457050092225077460449730202884778453771981628105921818520125642367439450474706905881088838335199204123129703429832986403169801647741775475791495868114245008558008034230866934269529743647997579348235675132792931383546011311370808149086673548857710704268410109084591539865892750213621169254659559852591847493094732554532395053595206757874350182491565250006715224891264437739058160675738159276939168143724285585642780280291706203947949790492544024631306902103856947377960487142854653514362166647949919404191152496725296276273984535169853643158669534737135447672688405714011209391592099783470351824387718308118498240181985826252523556487126600204883196861657258312798995231267717638335970526102972602040907269946262299666976947431123064752359342687415919094951894571471451786835717535174502013487082291785596144721529996330974798644168838194628591262958569753878716191287108273079381036749086963163160962621048650728303922181452395132141654601869576469538621383320952025735049282925702461575314680501700645054297887406671794231575494492352326292393241818494891773104650242579205656462169748521840171332947191212956259090004073285757021558026393309455681001960879318880398520266873551003284332008917647184102613434790287950846223205953750157801427956277783997371408857252181749589865933977940662358523185848132909196518233725079247046911310913174723939180606828485477444120044440015885051371957127627492616495900407102847312746910049837731805037098213593436653054590089182318872442198700639173600456442329437561369919070868435197232555716461060974791227278722961625637406255066834355459587734625533811357814004680160647836754174273359989482735663397296457551643831052826692843028635960567390880965138409701328224486643782095807659509988016347132484515397717340830726661611705108425749941691851083199368846219962744525894253904670179984286829964551194172082338388669658482481441671119291731756993249578525991352261720527431221606771397040128042862732316461871035862075070634674323465995159300949868286128884723811211510592385761906257000009919439222970689060240249328742181933543149631000145923317395882034858728908332600658928692524690623372723219120476883863655913876079639841835894624130206090066816872086695783830963323990579555034679015020441820029938503664250820331744804922035018871341139845688048830087242099576411268348985465856852295799213179603299643494517835192708034277716280046770980489862540510229108072617471565083889590430136383899304707667138951586580478078232152621498603498734697536863829719540547980919286158394036864683596029398430941756498225607877974423435448639293000681862711207576006933705455568004171954930278162232237774112265583143071621882291276529422368463348458572510070306273669583889425231904915918173605068621205787669464140773738193634022771157529777034926355253655484693317007582334585457675075552746182740072965827182331968708285404632105168938379933593221877489032343976928405060285158631724289468898854369053787850509504264520478177874887344974628624866957504256077224479846054110877629064831531201853461848309736230372039026194651820789257020903470635553184866753524634370110814780937385348370897324950203368329498448116106912730141531060314979804835359606951617816231512408689284654567746799887375927109156313947395475512049773460487290013953596064568206759813957468831388977175003496234540190013155427621493365598982935642660616453242329774396194595053109988365010344502973153041801908231252758693173828177378128440793699901466872080562987260185640844667191016026457470142919192541725232486978395083392170904364601039713426990522481717824858770955452905569048315403993300946619217991451687989293330412942326387486014435440789547486761117859756924904971704374647814500915429444088570071535605071600863584659586315729396342587253550849652143347983936383961235033657239726153491008476855480336186568469858977950709721811742186416488454383320164096540995038884557955137023588395208414837842140789104588896264252346091466636077950707052838845846659647908265390282288338511188108840259572729593275903054474187187591459448141488405398301042867457330911842784385427605202775695206622746268953467185761898867863905817933381795008996200233611689605361937855474561728172284873316501446201550280635621478416750025814100006785143159860861109648792373746263471099153337008105189200026038011248989491462392715377982141578023473726816235393560377030127377871207043632220555525434554310538049304180983271644106266269060859996334630084051103622268049570512264936634223156680118986840873921601164234866141149664805053057475122665629430833865248090997404636176387600289020267133543368360696780938610614269747780513236934001439766351246183822431010022921357780812264552630500587242016125668939499722478796999999313774296779434927650415221391717678172218679283223477200481246582829067338946057222662889199885027577320440415679483771065298582028942191052783807592336166753263665736861419083217875821985914983708219232549139106264783774500000110789368795234554881924809326917057514978430204183563267730064624161808083212754221200238512004048365571290296963934555359053667735468620810087194349665085001280051173069820031575334057003086126304102376406751513203204829145141986870879048707373017066549100082470121411639792273392845290664976465016035922163021445773144651352165061722464538772435244950889664846611186077318422997987980398111675247324134507678587847820749941267060883878919567198486854399673252034728437849853637871284700068063940977203971937830541303969820752367495700525988601941519759517132152665191784338401352020180688524290813112985263563552523217987964759940324019381309157295380216991757872678291719475942535999193367855855499686371640478810374559633120642630333793730160049098754305311588431060886384435733487739904752439148073211558306015362645199770709944151664939529921796399913579065123036060002000334845195772710994952963986604968203100683305435754996966775598814623256114309199679713358183274072068525266356217110580393852283569222575844413465208933475294340376033697262493007904700421416994065852549311829615223731933570979348462947084271335595233949319630832593371162589687085121107365319891962371104280401361526739822198915976835395672647420943606828082745204295704239982126229193028867687694728666820474156031048803893518762050150504460401495701367016639451138929297784519502531068875134581418801954617677964797146943111385525269175398108692920602890819040551625135536898129904072423630166337174764146743460507687983958822237808015234147851103598699677710847591867111180857012305393231814549460519578143420061054912568061715696331984068330646243057056342721886028413745229263752693164872533419359227181402372349500800493973395496619124639166572730666984527798794397353593869248563409623523153271461349558541703414487370600868484484490809899049575141645744591869497337468809335123137215418466466227086098625487645876857397012165797561964706160082369074425884517797384520170288316667059451088188801412005336797483918990433489601382258624976966907823769761311160059736183066438018064394382654249801415453956425436538798967390559267809050936769927160218712649832632673409499213864071131586963534053137750782255976370741511521021868787170985023343693325770197295076322733836694305489343249311093442359030976954013579804780245317677507133773794663677729183168462449848748365119285539193913284266966700806851018984449656990426163167427648961500674391254466918443508438283130824742267546172215451537353001360296282289889472792392054923436793873407715663804379058290203723339457767912162630745478460254849214982848508199705387176547752543886258259636428073484520772432115013111131367171601831396857106903341102972916802466635539318348803122046955732138419923624691804164054734494369636567350885007572068260409353641742388083492837495329426487477583261429474979885521613486616034424946205555960535106217035983306347114723030860071085883970557118186873231115262283116344882293330158225937264731534787991192052413276642858838537412904763434802066994156879942595425196442772591761549754435980446698516629567304372595385330733458656440887694546188528290837661482545110548873100748619942769612984425272808070715137119629444395121950575539571373702115317381073281052199220693876701695158632036807701726310446383755865597731107808915597689688096602130762686010954619857516786162997991448644396222942808901559283061638110058031598785345053431040132202649620255837815881758403448029839060905211058687538741953682802839701570334744623512929336932728518750638457930218876682925676745610893600823124695536743053023924608047771072734824865069917870410293676523951068955026832723774757096572934143645185753787168494395863527004204086151732284470465421867995491524359129175957878663169167852078077316413722292897209695196764769515368415286474331665062173084030267643582755018535612369165865885608630533143964798797392032558570103491949015845577426293027304931428444757652483024208627345902711099431730966043159027031235346536777360561759633087781903519984460208214376921357960768195037803869331370557342806584895056241154946566113525468864145915282872050529696080430003248090681032353831581560096185621180426060971220801236895592467342489727127749302023616848492030662032552206818026938795649427179821050531017277911117153099258456627488010265331690550471774038701048936579465607113719334272734176334234571514484138752312327635399838213286652958311948900353019588013213496927578464565976626301897547693452552215621552046878623119979111502065891436980591319101335009909277822356598239945277788481073152709012327315921357161595817304960505124469832201786795144858900664070692365495944295533391285376050326155593866896061737109637844056258254539687698692574967002753800112006185746652028744894165963260655452103182448906643124821527364799086412551626499173450529715770513687367525370680342258825390896459137994446979086065268492062860405665300657323938771585184053088945481896266926156001939529387911904441954613911033416135525236152704162818080952627551984905127143788668990750893645066974705026930828703072456869617202912211064278438749830281325824852160187214024705016449096096658212954207128976123871198054489816090223952300919529444477539129589458471974003039810634871247097100248817966953093923700698827839922254176046611618347565005130760588193783185639754685755842557620417138008837464025740642853220111051838935480912042024176056319984209261864704308671188099647014039102487410742559573576109101913844337184261501372209732778714882268174532414824462261011167470687449388626177598595394795032915004035579795639841014043196002477638469646013345840749952359984953244177627695386361218722906403079430613007589968074524057832353422856905261622639825707611999104076545768902160576121686752234358650854403718258680299175936333967103469793794886506709739266413628903161735319355164581543467591791761377205001149250516546990474625717967869034300037158881468555270490374561138348132700365821865946027954572928193712258854346886018733008521336483899863586152323180967451024721753009334424247302546707948964401644510938704137447144509013670348301605457234476371359620901861908613333562020827376556952910945141649608284507272842545265032840341954530849392139822596449711391305190644796506846284162611430431168269579276594108725737846330226738447287657797613412879682333166740132232581762489486187549735090050263430128999499388165873179369735582460960461022889701478747192985628561820727142233952691618123218296579432656484905166014836846702767473518406740443890988557041337910857153102757410902371204831853004385907262176412442403420669543003353638840671762293581836765973358409967916499678654015009408999778289124618859526418455067537871539175371008168230306363311576615754569756458798573112961414476446362243946592878460475809005991479647605967697551943941458679726767447929829440908614461930050869539993666853186111864047516812051634126576929968357457702721714192871390905403898524252433879806208203549282007711860270331453154237737885254706744233196914166627004639290694011405821027930999098187838243069161430011386167041995461180244109883381608354299177023936740932545180100804049029217030940389060846700684376923710747424495348272674891488013345293692909635424419038776694051515304079223018991655329807682320830747265252856292696368448417884548298346217309961396029819647296972241733985769197065880293560101070222856246393998562425996607161397115242811143389614554374285421553140599057705062178612510085755024402316873582016472921673647826890840683382896782152750736256624404754593834822985719006622495305683782349866617174202700648793874001193040511961615516432792874768014358959710212432998892828808111047607068513451131721325592568849928803088809884335895082564477331224342127154373558298373200908763946564267186215903680767443048095448154204928243571302069753606879610115627728770215045453004830432796233442797595476614687696416310355669906639208231970644463423188196422499603484404740824035960014199872305871826900327784449718871105183997852332224298221073290664457213306123980920958606526989903838601688999873165563993166786471210130661112419029560022887273207611444858610120006662137307745353397116659489593673696248806582909198411140771357446830627927089222755077623242606967769552623631551508610651376619391078415742708701776235572668040309487808660952291321904247855331567397199278809708191023650906772983089981831578862972832541151229963649496433915407610890802240628827796561577296658971971664084253796864762968430101243664730729548597198961617653937248049879517172995341897450757873247751760538533092353535217058143395462325851025227984456859541260357760040220607824921984198463234145747912192829989818257154413869505990814151527757970566764277022286538605894941381783316209545835030725321300294587586594706491110916973620316339892291363462239082690732041548003071846324996473120059098689616562474056157320223709855895335086012903331718160953730563987242189531475776975889696230852658471028865862741699861472443862255773005075980167485249143797637920593772054787749114973426976672947728417753930352975102315043992831960672976261179052200925676889269505527565509235515574197150758790352822939745391344157465392946172531845500721603740604928244114731796366259174574975443757001505156504654074578725675299049375874408321766045787675191289620191421304034638292319970462958707679037763561946101361603942926081926488738795517676864143541175869221233243719908628286994208400704669317757998016872733572736905546901903278050850632704519943668578760757208787754681147819528037204497930082811688854559848593070537187566439896713568116574752875983075531386734197635912884061371761237530625149311720136780398351510883463360168675397508323322029710846106457446768197027201717882113746606991146361240080819944802652042335858271748228063354070010530795240431121032476446269595814237470536469591148904655541110311691006022988980828899579419977825281764618408676707684288358017094277822142088184274303144747768419634451562494582236235758651666342559147363508946150522666667486449398383138530912661182658253058234068980734892125664471938645202638413631308198148888657915665356047924351525711002368151001594589607499694761934925302841842529273072049634198943494638215120907103565909416893750001897715746020493686361203612456570857442446231222201273716909634366810206045763378119324979032490268653794636488556301346368553230446148600553029355919472108353720668972758650954168017998291922145167357641525885849452960247011542000929933046651797772246487458097069404405653870627403260449333585519548647266405169384208696096722863385154615600717999845477827424731222237657435038371722889708777035852602771197463111995087216769545136772719724006033614839639629781954457260210120460925872306983008402481002715601006303278201588666208784548281209312311328664826048454818011773591236491115099014888795316703533700252728055718611207509568127467209188583728362947953121679812240499292211968129375484591832822231274506046363402843384215106992572780942638169440998439915112242125608216046264530545273792999692075154052433514166772504030666794159087316077080541250267397560849699026159061163993488078354854332515045477705860145809318245201836435867388560319168978173867569539535694591202035123302687471465600296469005345456729206084926950839255303178817020722546508267621218832194848002602993832513282438838584472627386008050812800908377885734424957751995289052280552230891834455715063687980549785009535197098773395597076176314904996838796250137126648311180810174016425551273619725162185702748045183536130538585097771404843499233741598075597426913510940539088757583338485406630481402517703145058757665802259474659949899971675354802354236238859460500705897003113024444863629169242744246576651395328421066789872411029284826987848252197497021119619501170442653705470651867364894101757564271590448548306753233430498673545916158557925447851383972263201407652882135723692742839597355323051527470050031075029759455842267215613650573733651959974631119251384669325984141423105834384559790483811947848405162408739749703983916680126376599893354626341028774059475349351901387615414175719324607260665564533010573951653528235131696080965334992414066999469332257339149314708884523794774293731822179493995834165038267851362608622772760013593630341850741642919355525472352800924822812562563662976185748834493820794853532381763173579304485914569224606409589987010653013506084495953339754729113348879499515154522210433520179142807991801994051632557717029642704480136723065852214067354618196736309796148667555285483564381921091388417799186336684480550362673245812606610424588742901324653042814939808054182074522695289869402792661982112640180040167576136792640342916494888350520258581926163950100100887786108713440677319028133536195806621299001252434731289419232196320911104106138774358267758939767046804153708591647424192123721627142465678556800615739956865058550182007590767290273942146584073884594972253867065199060677586949193251604769498360203776886331480985716905863633770692853454512534688157757090765494458347503978831099703763382815902637290710578335626798742149294744995045161390366895651937776188128191603145767673761879400565523913216137038902728996444234685605550423564773024661265562067342480629325615363604572272660623043361387322729588015458043872653991041368825808294834369073583367343079023675878696078138629825573819115342894879371880305686982987383943655899547420572460564802806033612103282813608717641801668382776381376821166026458274174111506685431652968100404291449222692748058788590928302436773109258057914773499206655612184649661530723128274934190909566926013518862128441040141726895659269241446509331836562856200778074727033026984168658216539410923188655491994715303219850855264366532629541086800736014960320266173883462508138613464747209461597673194279382555830198348640910678382777326136258747570852299538607042203184428590633143718135332901691053444248420256958324912594384272042242061042650966463304833760008130586956599807536285672627818025836133459332254145793946532017860151765130993328222074756991042644140273511143298543523213028903774993824245792009431968821143366966447293331729183149081398283483840707680881507519719461451038237853514451297922510427354083758329705922443712862362832229342691484959693907663397111839011681781419144622632883624873169097593326562864847669776507212050019902111166200574092711019879776912887509555739276273563763168865935652471682380466592085188462398269732426983485358218728746881581702937888225008063660294054146813292835031339502942471921631617419717598776131685110183238634873563564026049898498469535229968146389219442685223767558840666739640168957777866201920449364307179938599699732785238563891895593024098506105996291805836657248532482421761480051894477656629765707571467019273860207023349597150809493776549401924721912019525514952278907004252604462105625141372230618430994446018876552544858193880700044616054416855373181754583241551996551390684246343517028201047406239119971371380812202773520205812032940861198227353492819126926600394624447768118015726465692646092282945862829974302761434787906115096976840635254264404062206496282290139012380296318847372305319477149950046557788903387897192348322770464264687347286706683499786355517595205734597278118011938499750805000471974518224822727356039716341692024144252268260983601143689523504779277661951815151843746212536386688080840587856738810791854928773399062563837631817548066464927956371556618593277347738734918911441443839851598115767824680094263525987416736955823384353527193044603017969094715843328780982745486016765331111853857828921330276571357737685701280637092974170665531525921721310912187412423520334848245563401869464184227155106037079357687783490300968199794281241002631197945298177488309997152024422580553604178304518213145197820197210167576766116578819008930104307384443396695694993915489448296364647612489926448342171403076561233499037337559575174593917806605550033375187980850042650885836285874157168610719269766416860744253855300188655061529306967344172798613744733190525496315581490261427807911556778372904036842491133739316559685824307865669964854375954401891987297022188257416221678145196707438972571849685220205090942358321491609161188208966367663383963638054667390739464673171696290052930273448582225789657285893782907758334564013151868354407321020141900351887538046050563273484600341844440760265809941104118136215999156953774069097200631202247463105873938224354267190307269493359639704626885060695681926083707728080535235300795846322697098019899958500491039589852508951029554112628845443224240801163001429530290742960167738104068344663171445451511484326336958831128895254296212955723576844571079494926765387740504222693560639824985038036384123015054326465532927985345791276589756520802545614925495966821657834585168398756983484139641888864146358966191905523642072464831665617812559009242657327330513482904256200393819769662947897007633808398699219208623487998954028576568889090450756763141162082554746579886660609976575930770720252186085736231874912929189381752186087196544225570413511699718016722148604101781656733776974938237681974123321552281164907271493714876052644565942460580979495437111844568566637512129612349042047719285055603688926135076443498312191965529260222142129852836854813349206755074562441599988007523181387567242673613498016369190705851190566040425419222753192739201088524189008477996675691728281078681635840140845424039196895267589360458714843319850219675664027487694339252882519664326047366621068606388585961613634760605731830001541382397421488449029051780770153253147322615715676325802405893681976567499268999002781595684052239979471604851519952864799713952433732231235503606464208418299756277944399730705810284686310017763908571833554120042898166072760381331299297812071919492768849439644252301777075949590527442067074778598178032226256306759174652983751240569259507592928852694575348964557026766784770970613617391189929508473019929898109042713026011190116605461015347687651061229228672982149294859706469229409344842671556789996760384535535965805348353151526004139315983915578287613218102093792258196533918479054403032105982845883241471808975935687451523365878968347027599193717987785243471314149564101146176310825428257840660933015744715789472982766035453623818298764463483454407991070635524789131245864595933283900455654588900139722970562571558024900844016546909098611418700375158275389559732066446744189959938651013943032490881770357850573964560172134443283436962469956307916250112570057453845014343713105596587157980944802112155311794071359357406471537470121002251078855130647290322517862565240271737007630868845115987020342262805232879121617003457618635001640229525978468573205354990133133153471617449348676642505637465933663555969631835970562057972943277612944722859840982721263604258537577481583972083162750579156805861570759299936993811383408800469442102480264362230922244623898221202589909112976076778637454435567703267626472681005064827963910467738882317401665961028580241593860432654157759387562971269258685256345614549180222330319036411124614374198264856791528131179231564327877896245591009780911874979611804056916496563545212648126558972446541837850237482914278831541005927659339502700967766244685208011185130829327271569380301348746288527060362431936190850358665900826825646188776006039902218354147956389141236864338335999477286774912449733019075442910346849681618084629833344903429061276484913753442899128541187236053505055651689234811462456562033106518784990410601070359013890296774700933201372840592537978924144049878647795192197670368944577435332924627891118612897080584621540844199551098779761486816215350375695655617718975855291118043434500574418438881724882720700627165800159477519005759907294684749115874766220480340320474826324590309431342135569203462755559982957930458094350530274503871901847912196455641233710327200160653974352609123476215520286125414406731682084256599556729255167902160137678059720364067105375562053847745402272190662893747371741614121479731287857862841012584792442244442153267417523662132862625372164891145104814177810527585787693208143681901627604452445320141618578970715198209170936819127624732850337312265599091420783336660269236302759235629917311799762808962792123743398590824768418917895518619632585265572978913036320391650667229252115353283732435960062309391163322494544684093173284321699067738628249832739702949741896396909707462313553634552617663085813649666977497078779890986147193722149975524621797800628334842843099910523816208109197320038669982116040103723575118089810900094110090479422972610274809212498299531742813008911851832654928105910658510818823351451421993284800091216648268030537818428999864837988538496697664281223224195330754287512629656926944652619287439261999122737769711115906351333529236406515291847361408344371396165610399733007241285341699087250942736567941644978349364232804867706784190919545757409587611231866867533702534877790806745295329334445265814464417500888700491096428321908791912799372602805985837195326261000268998591878710185053858769713872387080378330611380138280089432443749489916431191632343447182984866077778657435914265707766365780563588375084426065708993715943106368893162440467353306986096437184244908256602736893430538957842876005371073973536787313817368488362597035718274655609612724224241938184218382308419251174450411630293654065964494003154470769108434272206052976816265663033303949199411075086917712789507620395807012530626575854427247233071642916082088495934461304231926112716023181485092161996030658733609990760301151742862638117685553508207011499897986355368496257512326037108129024337712019530257692887179969910550668927570478962405065862388203468640345280290101779238403598948908824604522844212676913560602128725402957047903531323173927709197474245025900263715903034732507698792245997282918846238092002523703241026483076975509833604358636467067911076105956339842110620461438706108157463223500630167727631480094017874872270838244336682925071412063968006216451306699396217991660508426602293287735723794524822817121746198526768764141749265024325852020593076384731855871689920363029491692830105169797799931104385671195158653357752430314447449442433218176049594426389727865123846402403439692247299696463573172948076676413736096589395249789521814197229287933822723627291792216702775087060820512925485712285283840840072180978650830955024102003244647274463317083029526270289518945653672509479861302109192931021487297758962719341291655361634854779777300500613951647596085159248124757288035106997072043960667013686452102932123840706793467206239122941770083238303465448987876579730387376039037295767742843708236786656748047093374925453653740309879671093088080008297176112747753836663724419265071596314596628306067222522052754246481681213406320404647006718490233403487643677784885360382432784366355253078947870649686475331820976796432144817105044476118939620728706313828122332087204378904053711400563003202030948166113476115002214485188637518959055883047277125454287761110865335881033943138910962816305107331609996633970314664066485197967237550344234231947637740536914324516676111780642759049680494148365584133288874896808759585465242566181732817736657778191659626747726661196803343846172433283099682117054703867239591328796535607397982095824473387608359658721980693598245826103460475525974604209193784557144291376262240865626184901015812312876213571074118495961147845127423661420730521730578006329284781957794472578814636169398748884588109130513525560478795232097775100798707995420549416905627594128463576420307678653572884994337790366457640153992080635334592707858412225957593295315513041007821274933338211159763497007469945305071693092515166100076191605863122440540768673767325749509382041921563989856797718359776521192805458829765159102496098305616628478153189293645741180023617626945112707350299614944112615648868488698923696490778967701560435888586960892394729630620271927156871794975105497978240846364279980063366222109132681225946057779283402548830049737416412072704005036834755772280302135614777467284705427954341189030662320801212923772583779961740121189870700585020293893017554128430661729770722538561769559079506278375111657995774426017289098010902677450300309863186225399976781256498962842022064330751424294778226655697546890183400592884669829021903205590596939610998748960047781669853397663537649997118357230745530461362948178089176522823761761159014577551185448599034353737452204913646047547408029490312727599960573434920163480227997795176934342486530400099503494038704858572747706941787614380953958223283339534667455852165884220194194555868864452679816514197102870163398528361871859730953155020135223649418900043458283426835257287760289748006337062785371474452526920265170250515663424842938304974311520022777095889807850901787783029721885220398429822260865052228541450098519074753968406368507390563711828735036540885386592932633693132532112540093404428200271867587797654023793446995161881255646654280040617896456945600400055196127608353808364742353685059090047584772220558853293124991060750921247053698220504831938008225772328386287288894231479909207359927852440375187038489907440077382665880066667519888238255418645978514219315518787299736822866747456220441994217886670459048043818763249637949562829318152529221077864266748339322284980265618410617110648624944710134824187152840983504114237638876014367502801683493214388077094275476633168858309876094866385432889658146457543007722468445159933152915083835255633204374599607233396424029052638406770820913036399348743682050857150362861783785521585188238594459162755407776846248850014886293030230044233003874096620132630683672004252636016713719218817830480999035221872520436451610980440637948050165327165729752682130012033029530038543292442867069881556486150690820485495341629361503661922057380522809208706715726128417972601843068988538144482924933611504063049944595256286903524012872666320717696577985800510886814333898298273779785557992042041719866174802432425439081401223614604342794612449019321548109108286963520556813897143860865481503380836551085162085153147788668981879639856467143650125056767487637207703104699812685160886555611302328412301153537370884672365893595423579878794387136987101932422787362268901367643291913054337756854266072832827074199579621951483869363206594278718415558814950380962588253076530853540037295359645655287801661764216797990756070394748593176604019442394434499517689627998833658136044022527677069796850638402412613752772000115232664979745597662534451891899161959276108254507932514511648496252714772587044024336375359668283088257498879615827713106581772399685350380281402673566658207049234150285888745498943225634276828673316478457582116353976566608098645729336531305864974966749636896337795967720260523970869503204057676175594485964392460834736023972579025009946359259198990047893493045009936430989503913332862075845605480305646267506303100342711151868017242174883149365716120864316339583066783849679959092188114133035609084794968559255578144475494458144407385148928426237781156483355784394038656630874796740196259349003805181192199191044692770396856661178456442610608291294420399411764194568444197208446985263625107742708905812006837522472183128461857117459464141735942219528788394838939064201443591342749825423606046281514100445124248152396174543147115747300784808297504336134952492026914022412438846866797147988044231834634117239962043666499465463820484019573073746832190127093245217640411072129471211968498368334769086498312040396302656651802866891084480908487099593096120668861916996180247637094064064698216103751883275165050816919313153689819147357682872996502021465017900741062780140885966950815933337946134505107071933571669603390728325970458869060535192819436177372896189768974536878055329969511922917538667693467204170740117784475013133525165741789590342476104973196983938303210036157688180476552767409688216723349903977391774065463412506230680275458382223612805078955331297943519634466215824698901312696919908057507940954708628667924488814161674452033712199138682055096906328458544155033038354117852862307776593091174198515855948709571723490083715857691973776357233401609476212864119756644095502642221269354028273742466295891166621221844526290975947130948439226758092359478078672349784150433268296525340202946246572399671248916814914561838405855501741061479673059847230983662009397488369611133668274101475827512580425374201625272632883829436186172260453581055918519428506453630457270703996485364285547008423200653518598739487089432947336858072828668376356752216654299661026544233650332062843471491267443464175285266149414959859490896999969323938974289990114080730346428973230461732646940033539070369386349576153300808179670258001463983085510910995244325056506014620731421874665504600928075250647230239405912956905229261000690097497135554887748578078570514704230269153658466209046452030213918540992349785420802159533331350241441331028231576218826635920480642282953934563011266355844564224710353111584918174268582848767562175434298621147067402270146680355027697406517205256757348648889511779915981365026345348255868336519933426534149408353487677847593741427072253871211414026405825269696763297758271756361210411692677506458102322728848961442619842991048321352180068489784852833381516064190963995734561101424579507062826614431284230627378489481990596491825429789193970632303906493445380529440262939078259951739952594977500097361981616185359964427838260319288838838582554593057371326952065028488623066486940426731971320478398174630794116563256963077718913436600686421366653670644166044378736912623779135688089746831034668882673064739518842423627969922799766583010170453603428987267220869128896192669915375635801988380722161480444486059430206225840468653140079920517364547448301916954819575085255914752834784758907044930007968959609245076714721704724073819785671221650036407004536818681666940929474031893054586863614707108697210113324223288463757032390447943587872873193833944245801883050829345595994949034455770911158794191283474202803992477452688382521375411971958208432938339738360893458712427893702394689332760797128587010400569448231941700080888577592355856208366458145693004149236571414347212279958321605282643637608461979957856004030145662718486839927602751221268415430832915809438639246468686770157993595257858008501217586599977105029862813957124637711273208547798064525292628819526947607871229806599173665009393700088519322566107629891791447599182712998077006255500255826301484729412851918898817520481545095549589943129365196582608403736744294313101830236596838609320879883054800369806388798968011506316770776246712444754283469882371388368480340578467742027184431684126824840956981355526670752019822618646823155091396976496958147142136685448651960522358189098119097160843670817363988849584063457958842047670533387567270218091199918603329297525736034349200962117606909440370645331714012579404757994597464839795368929341027791403462052660578083855259306085643569453683556344688223194461039467715939381476990017307624173430976239360241263205688723695940033076530156238372783304704025297933663980892940125545359490164367643721582154944672743984876065300467285045486866315090945189100576488933304020572249657193081349997514282178321134708140865377817071565475181957340972370938454276429275660218729597036863366807124614068349764681744304162100431368414238995492271350976339818554311114774808227432437993397674044297028918929710135439761287247200520125305006767892020536268033895731901729732486244499086983141211294478449348641252857689487566783792192697584829088906512995123688539551523438662493366755480950317240346637954024731330038208000342504824259576205586447807678865357153070084336494438629618090142581425029245115179399321978195942917804914624639802219780789989878319841200889657488754185288656966908633892136544760270668653391923283103826287329670137746977957131529154910156819803912537975620280181171022298433091832683149964388314802219684930534243449557506210596665222667665135932969600015343909316200432201940748892696618127014601312911126538208815558990958927853710552281805996494518541013141875721110030416027301897811214343183604413555554004059258248379753023158125733666476975459629929029871995304635971618593610531796941880959779516712739909032557721318020627368247463525396221209284395970976426574136803705774291709308595839099470917629782443205380552203531232001126672007600093202741672921257865643348057814710301330185568817588376310007687980875016734994963952221303377329415380746092240330471408866205881167314037354192296780510978257788865884253813779678572736070364560664318489524777829458582904264152020445665733340454424533647714182832281696644430727591514900796217973218690179828658382609426883202368829191299379167800322727380639897895777194527418757005998478585022977942993067936810429696046711777493111483534619683539686256255599201579020390310001767561247013700207502558709569466398016640610675815350608561679464408094242758177568696546394527041359675828903744585750726641986036733349071143966719626871187031248387236429315593559739077608491066205672750504548836288276642414669661727447034791214187580565399526004011405299630812717516651599114037302784173320647285543474804177364264902071074869493925146790077028751797793282488010382051651613928936909039754885023160386895457040309076563374633180764339992570470863620806472588008130055952368231199453917650883069196647886832087702554799541649546309162365110695745770968686298316397629374942573811311823319582102385263380611258547647357438051482154612356277954538054973941615737194760385490236232254793667880868706930688458887549912298827764231129665431652395573453601503576683879033243443001852578248382323211936840869563164302047103958695760463200512351429795428508961256647559037935710366849182186624445872313232265363333562249398546493275999289457803506064179312119165440638506031548003952424748316238721960393335793619406525447336065814176684407106137930203303778378536639486484537188929400687201168394407644594020879922466568901182491824477614413750685303865341441769918627792432144232086119023737830247153379124959916381496027347066008857400128422537827561120026712835222297328676376681204023278255237754414577346840537787855871859687200878833235758358303174309553789274399251500843138491357183463910584813228852976718886897113845992876789462607428379579462043132260643114096281784512472616024874309999616202460809107007785103647924608142520437622845296839066211640529734528844994558588618491239809428370531774469124726294095609963315438552679732787853381675852622438042955743360992133073780803304434954670518693602203486622875522956203567531716015715453680564364033853573369854020555733552285788049640470378608461593336891432356768902047215424060089009072612463317532065377357841004141696295456948021552007949382780769763720130365358225546042128991762563069283462572142534496690390676085136129496102359415879930876054890293589264731325382074675542803416738338912976735333824672644522703852566329238749127000885257983228066547368772635462011569021210892613051142488568102756699443376207864657158021853282446955634761842461936285649059686804882412115091614448120148388188392675682370072257205184476142609892347918684482947500364419991655996743261656324010654768163470644281223887745491531330849572814391578935352661120473824970554490176310743876328696167467489668061656721957083316904035552150347578406769728555459232817158697693402096456813798685988529819761616347797850097036802562731628195557777154686094650841561151940575503374124128113564944033740533546428283445463775058067992711806924916738496514955351728528437617142171243329647639404643783579856642969807477443951398654309360101296469563671850939346028388149676958070231280299288825485711092353690722221546540827997334117626389526940024266428552850512737308755350404970414923147631171680363843320567093945819712483196223202147657003345887589243527800637417856174971942483361512909845735791710921188706831150216208719117926437542788985478774114778109547123742526919784033414632899015856847564439648341066863641811765380172165556455721406737314417239646428529344304760698909387530409715107589181933884960182019495071146452068360316841320775158389268572030103870501559309473260603136988952787590392034717379484003128549506972422140878915300307047883464824200499313113262994415661136039750474896923323092709580891670048395609328216191246701993958695700669670712569974608391365851480493686693143388561044915493604872376062938314208397393441702901720884903818679263069636629137275389088139551397722701019787659958605644344363100065931024434700031345571151766303433856727208794353492575790514437986794437801646769247530209728098465915968452218877093245700372136696112215661928137400447030238527536434413022115581461431696332133496205012295700395293622578499420367039714659111389214414191251068197451534071912626541375142932567999998923686259000196982020876176304246237325959062194491633757922011234389285429805431636259340515010864283529392226881427870521691720774864429358958992302887395115249966687244457747864056315844532955222740600853435924001338030927003090733807120723792898183557476250049083554607898024006759513291711603899339910803217724038350841347482084415488281483935159841914417103445268847796064381833115870844964244729362733876899335163470656557080138129091976313611615815377730004139413058621323712082208356359410169641263704761688600428603725176882039661448564385446534149622409979643050845222657810532341797142035120505231927324070182356744296281961289937250872911244040162055835742380818382903800500284978288708293396814035815510833352891921339753415278401868704527131111170933491411215524356783883193673553220824669167186710481467482873265695087050647393782199141699398579667617667866058563163981762855761877462674337973209942481522341983305124550812199353045170112140637397643478658767190046717884156817827097089418742905947753587313921358599088047815800552277411851053745928687192935284175929062344579054518266232670710709563052961515459552328713462653958377937180439677479837296230124138031990058275338478497168183939684610298225186051086529745072529139240822220585675724262797204591838109935102658241835029008568852297404911479106720203161407628340407703779574478929066979933525012305384400122365452487847730605410324077707651861044589777737518609308426257906933536226223208444184871014161912210283556772952975171963200795657067084530244970400499634052327001315323231642394585234788621791166072560202859942641064796525901711217403218869420324021985622128070837688007930391211290516765823438607732276142989567987201885475822103797134091203299076435014266177353759281873223177804457381250543566309035989032945328070431759491091213728380898366930892199202617631487198714364346732652975915958494071085194641316513853548047177298407843136356555472589109559305113364168400049910851024249778262008867017065274645499940635589852314657593492614780581604190345150808093161846963509602681953368943908639141932680026004927310971509945137654010052259183726129506180657867681903273881311824872446992638826881423225770227618316426560389649229857926020586721565783029957161654758210602225000631113915410321908857222148347872645537094860338093492708424609272130937110744401220351025770042720056907657809346464725543319230725526053505547459554744059557333915555694019060061918888248581631211877743572109016728658823534449815738113436688010264220489034652843985466761530305645351166111842119697275872217322956004302017559267308583883564300024827957461842847054966128623104961058991503924259985971463655189349316553125957581462051959505760509338840902617878797484467197719847953757014452628978751451082947332375705828604332171588107759278629179014709885587370003511826953149758351378454907912707812881057170791540696893783068038347195526447297285770841091044709783256777674091670136699700212351949844589267668683061656745627367655965580375330608348312839722625174722907853393231869911223012448093658926114480663971325544017337477857174231220651733838686981166217258103971870661637216297789304037096751148034834564801246538887549669908209829131903578273680787882093516495340152232872883815479265415832805733204124440224819422787582507357457296950671149696027531945847846509745100326599492378458160523270200397666967263903394560329453133330473136222653502880344617658871396196227065486086371633660909773392031428135539099502837378578277284007268450003469597320948069354936328552120639338874453709322993987850403836667064627744728532067690921247685214802866033981700010138888559497491926487799703877843526827790863109316739575515789756943529856436741987874822409231698022603363419717125453482998253265959927190256382718077993178721683944212048001895546441592156411166845553531838262962583731447868794703117773420974055962354643320345063426630897147528802963637785540418907274193399607580589131782810509754309644619700305117116395047173984990207295767451531935674451624707257808226336625109195323079381069337152533325471755001334664887175278676689616157437984909543603451232935833547263570395290912862721015934858665057157456667024059679816446748293369388085431276889896391044209758292588013292820351023787443653342686093360958437293679823255043056047559404457798544581896066185999902292047943186840859950409535776204141569645248344271360788073972082708549720052151585810302841113052229788044396469302897174045084008031932409876330094354805346195457969349421030759330581294427863750746485738539032077969613754385667250634436324825920597493643535831909156808847205496426421633572244402156980977371828907070478954655987483026940885323796081805735173823133922158759761883392920436236483247484880178537749646612031980544901230606625720459894257561186767634223721571941764409028839482348257806726080259250083983861788702374511072226386468991135018619362064619857769227127053879848096982491720062377229073433241158548194607308729577078640779358845871752674609782333349733716904163452665866998214794267543741630994479353207551756917512154615109562077617333391261881711432684489860611570211975550733036990426800381980506865942885188619487287889768117292755069313749729133204194138699182567452164089303789475777129741152337687450487707585287387812296345134927837983222690346877252554663650484552502434139327721547668381207615425843163229169621234718235138951613215267467851291543421779259962069317175852177835027454377631815110697571085989629490743368197187596259352866883579106676473701612482787639015803288219210422129167694544851732090638491432877884228181119933801514416370130490135976444675263023277044885538131290861168254474972086771231909382538320568552160992058271361681450763554188043674555618747836270799284911985899526931226364380066484077827190253673690691155318545900704765412637504415013447792701357085809206203648719204116568095570860836244945249490474662320709196257914529945230310055891242282004616264519618337425200121357091033682082685462300041024275449970202107739699604831392691352285682197478347596721222593403300614636573572208948275405203801325202556014044143413875858821052040931740489056653107700111519483218276413277530808606660515197044444171389038714471462972520297530618499042822175717432649944950677060832072971207932151797856099492075975468918551872868152063750989370426481839945318728641768984767420048105824367357457763489414649169473619936905995277599597191052392691338364635048577240772789634865632147955899712027189116946772694986210413979127410297105270723699384590828589697431701207005004659493319980366159170589717306334522975262802017730995091438550329286060181032304721002059909612820573379872644666389644964726663181834197250745728888607720336965680374420564662364148762970191729067191960308858851607256764112468863576116571069910437577555241382119006771446712283616218848863981624105593381198465693084904442085652745176342219356022957723247200620786797612984904819944214526266492705046004531504648865077284276682322862237029887718189578490118601328176160594693838483142167493413089970111447293352426624532985736034233245359553188216193458369071297795699095147106715045151306417023305228272165261030584455222253673364541826321173041838121073353100534315940774781505013756517015482320296902570839158871044390941930921489699284104016405024465739069855930196242356964390050261622535351674306113363592980902066230454492187886607186169807164049643524199251717751964535811006227221993795115484449600607490797326048392595319349058878382331765608341162747895495121124881733902220166367266022500493913173392630926556523213362571016021878326865158633924774419284112346551480735986821630653539503208567219852366517428581369882015313883936792210664394796774007688039896717406980704626863791660000368270635072571604239129318355728721421517445057461768089912742647465686033760084619904423816679634794977097137172885054766889816156530898200979029068730560761122196879641448286133625376773697708447628847696802089803476164089670781892790681456715441709545636453962486847054259995924344114516798820180856288815582005017482827500255035902202809605211520338140657279040357673726190886044037368987805305293248342139655708508677318812346959418461510250783736390030276699814758642134866436214089021429167774777782649023271001681610662181929188836554760123836088801411280829631631268242364705598989550335346194944902769115072966798990427875888203595941433669278843311382659171641573593994884798815265555707620957806940490095942872912849895506513453816230188218817043026748989974719827490095130793026845219645069818288926323296161529465779283541516066331407759518768901176817681034252289937039222069374471407921332198098816016776701478740691676550440372872005776516117004024653160185554684852048314788379363327398563074107677449928820419062397746825468812816123356848870699535766935752059217542084002214363515220196460911188500405718104342840557094746227644890351012652983255616030208895188590462478189429059284020964616539346747763491376244388329686616995042875650125266035632997294235175781458830014052500892694473602261909339201883987234805064357816079104259970146478008483544531133892678814767054744452035627027080723127472626205444070927782502672127417987613095936488548956704355938713504409865798078673624435294476341695110356060233543614300863881579163235827072267506233470994588569373207492420904076875478591627120172138066503733517870964754641049073850150741260682074543747827050673523483304546070678227911779495287532317239160844017796650639017743710238816297482061038423950972431546728574217635005630863665006562913619140104649339500083895388113946865116176196247082075751650726229100258624632023622926420776294759535766233242644075077032850481989387564006176156372220735522667685011658693654262113276255456239696021603125696528223346598198363442550730569150605524889549203393078737738253840712971833279397906037717502893897310808851949201973406416773572842461379389697350352110420221258012275524814710682462960395300199036453850459921330903196804441714801486539439830386918457388235601683786080384676716619567096714483237914167011186649714599488491626065915178156110691555702599178527764845299370948163315482591193886629968295534454374015851201886818303739906567681376587243371704767430699441695790050116268591374876541894888663951261187848666323319080428122558147042775111802879004829631360277418377065833540225935340308470004226732791642848178854253679948780608281793596732791484202234244251804980963742109057557604141976360563771673564286099314505634916341928082074357610633830273488763936602628231669579423594342745608575603471908443803251603910906168301244288113091989711494598942947784356640189047697945007729176735583921733928039132118453190552107792597267528604312986245837995011646446276728126816031000418924067777309019100018334929720984184901296535797295078141864698686527969358201446406470083383012392611652879005049883253176555195117914782106181896188882512952954557008279706107681319465690318392946040465747852143544943221437014278476713000983633823058809538837865665539746246942544100708232090194248923275401912809604542140964203050122595659462565351094584850689144879187265339038949429694796452646453391746558758882487520849544811483507097274701513545566490378408200114234227837023540428997189963831200737034297348681140999515927193888233652364386910943858391724592752802964718565210310835917924391319498691849064251202178141733040907061159688957266447106789257959557535479421741509739803603136846376696335072786903800473982857517175303442440407142050962227885894059127070896641762169754294920007582205617565738636210605978983384552844252793763300356337991086970403032421789194184556727476121359319978633817579166311295722550598602837210025434901726187282300145552840601484197810612359323575777539413995636871827663206948305064754121510410180858320554453852294013469350516060741632447045414674211417837019902961357465813587989366741944300730251510343060718243607418445750344866999097890557792560104779216125827025359338553048117995005286358115868509487432865923899771173114291704878885493386638038094020373327526471667774995605186330122359601147990886235519573130129693477569875799005730254877140322701327766220439564465686045109568602013285355577530136678103697619996237340943663029684569947770003569095246748568756517016856240176031926405842536463751053444772907739762416614913086698644064295094632121921424706316906583444547868551178858373198413886024467270528207412966696620448220737692591720801774759755433462911948470347378050610894939801764641526938558882785431284261568182639030792863478827631689109750525665970833501092680051513290375486203088040208322844427554916959631497120702428498274569636925123237622726783284974442049544769546045991130730998724152999660879052821417649391809669323143656724804266271298253503044076335473839792261667052204041555583514003756757361213259661692215269087660576084482229021329933576196712459762664603096686214388780379482968600212521022170231844099010676468300647368676393228838929777968713550414993671344287986630998448161499299748898622998561354492902344216627846461327280840719867307593296475141345180277144384377702400813863994874899755141200089812402159871507393549776705400643102679476212962751603880333454273933196386247987642185210594566553835716529707930080538149646339168369748812903035846541767333025336799522919378771391839215348214179372211103638563539736341914861982673896634173838926981515086299586095986702151939087850615244112580102442346613723595684901888303508685940728165361088939710859071570486754929119221281770979446886171334484895202062654130767631456580989999249116865045887188047439416286722350327344921272878886167902631284021969196555860886767962136253011284787520198137153330121593846931129346467247440345936198154468865035249241660797091389430550647266919987248497139795401290852984726250894751402964514235057588390527042926190404110797388880654567600779284306616833084197093750654217680076377598681531509282060371837674390638683256214593185188804069256465654933380379886587160852305637278836771075706365329851426261536378993616145355684187269910902786379825380668907804425460949700183470874928053778123383478442236837871710404163339463701994909498865098444289248390647965409755394694844866189341820963265295762050806823332481359062833095023642972989051726175167433563335684620003106349549941922887744644202658003483920844890769785445711971141423743865355780773343261520190320868070705583910280764318230896271821059075258116250673830364630522741091644176430365803730847092855319869076026481978909590952731535295735968203698613987005019054422384423365960618136604285534175250214852674938820495389718061654678397922264209141171013939517906284414431976785803557532749082406163160026725529043588218438190502069768401129043247966193920335271065366047551145239819116609863187858801875688382448607220437570309447692264614193715950302119714533067382054431487464587964622052196583485472093823673883188859337596895281139001066230163248715414711818532851719556496237158681411242065782694407070827933973942513572286225850091716451889326746769295372097093308628593580425228182660518035425026945572361013125877572768846071395356909544700574943641645290595189702084548959747602371934904987355948725270994432255751143370557474388179798232224348392862848706602191002449472177312295198138010189956160022688777978113426318748706993902929831076930836879884978544394595475718414375218751724066212869284667539005416620206173921281366537818910742355481782493187194860699129080333754265655219071762992923492315547564183846062885693075134030202413435149669866570038838061850332898400540128337426918323589944821800841385367071094440508434675738806270760273220220535358386617440949304236576580896843576873776451524924306815959093462443396072701271886430905922801029674899542108021596954973594076823383899046826063354745182292888266817454187070638973139611095681758523515953137096435950670850782606309476049849891939722517763123152435278081224369384715117028285369837433579029519483061865877162570764185843933563943142891286010602373748540833307658440337644247520542469200743377206216947534562018122125061296257128601578809769606381605129297880005358904389116493663388319209617665712989773759750546174448666593343450809941020224475968401212931989668450261289676920155155341561158663114192650335882481750963957878973833202357077453034774951460756030761006094387968554923145054807625554419998839051606468156289416591450701957852797580931266917573514344451620278393098050045453747986705789605184258865126212321640658143732014494868409003695192456002918061579374454200044133015559349946835574990432323029022379072532668333731576337265931777417526928098503555097869585309902301016191745159002960175081631051710048228197310783621736546198981897305171090340209338498000473045578074774038604191947730343278134966321705884922205560835462961081671885194909371895719399856140082331212500397195985300173413578887412822553984494645196725893464062210530718557872177037179572836904466050124682244571161767964291427533259812912631404943390240417807546726779207574295767205944388478108787614024486953230755462099057529647834446120247693749868138365878047571308015196169257697152486917464420413112144137579964084334704952451695327071878561741918098149805011321295780732161546401646726101689042236846002058214995705115629607139032273020411303441935992629126617346058864966855501773036863744109597359857924793116223298449915559024345706488239003160097352697260444182699695589275951055778685229408230360592142651981062386900476412826546280385564803389369479495913105996307919290231170913952024174002914888834131225354740226505325894917888945866825846812122782575888257154281432796503703473591935200531680059801439139303415148651426594590723729661945756832683120846727935029251592796085396881923245022641808413676869018786957172705045173128793387724277755092494656919799153926007498077406285237588824350423000215373128481168029108846525301135705207441735846162318536792570150522811826517242234815421866288516453511632252106072168194477968963785990620738658678448809019318110793423171860213654652519408962886653521561372184399282291295149294049937148887746488564750690357402190953652676498614103961630382482813475020986394658092678191210364966202541113737857661539893999987432936957023090256168242606894082725578227516497573803449464858213022529560267812395834243308146947887392959962520820365292105684391799544746004084648810262656681963465644176545529501286845313144539541682802159630663659664798802378596306900923079809427221294930225266506525409614683708670654802132759342930954755640163929749659459864571222814554644150742044362467923322484209678106644318362293118547302837330619520985138123577457815815210750612230664927012710981702485150658442803913918298465032871289008163579739151285394971739090621613891651753662716766529173683337565372993044972484172262035506742989682572093277522698179460388696479336501237396487514747714465706246530178446568695166108617129444876319603194843167417360112161486769883342690056289310096197260760415770205182329007298066480929091825971379956987978990400038784855866455758654139451665746723342777967203360609469557474116232372322583828152880702464091561429672865278051758600318149766552062278951320027465041766215275016779808630899191762888193601773980987335892648520562236629301116307855364058341993850241516437945405265622076551240410880026221906478226987656317168192776753347271849920675935115989916161439530533940117890980572133875788207255263675598329852608255662752776882356246177134401542185468951184816053327309451320205057276227675719287492142991619554135985420158545277422463903230689857672591691208902010808631948905526378505132089162240622246459946732250251421427231602762413200674626188423229410645965252074263174889704554525085803026064072357300339135988580859475761754103229901072781262381963892877136742676100949295602390568044387545733018771590795909635565946893436458490560089971580906853098917971535307751190422990781347914106948922163106131098827369823307740238835544304271886994903961529277309552669607990976635427585206830634970352516467323015735126941982073995522788904805632913672378643022814720634507343767397830700431228091403233640497228938287297195371312386578104865892073025694277866735057434631044792648491370851547955406680568132378309118237303184977764081458286829236757068083808479498467243702468456771680834968502152104404530524892073402639357487333631788045106704415082408223707503081748234966924036105538580590154574461851064979865852636861666673122870981929939548170954459773626136609043065753221335111892350150986488653706959783984767271404514445368966632001326798538937723439804215239495070748986474121115105246444086410325814265828236420320418382861238058794973658475729833728344128147625896862644972312452339071683846578281872418837168447972754912554130346187134254632031401386530064345410651651023136926223226508729569312778914998067047533572618296863702806963762961195171423702158836926877679841902500161404346250851786185294509712194823853087231622285417553991369486945848019405331330575929089396046596239899112013349856811133802505371435721833627694973384655642687362584311468355463508581814906492311721835561074298540312702735732999120855338806780901785210529875789410036099137291633792465461082172495928132301432244387432062343221868442244624496376632093129364137536711725402929372911590259892792047033626438182376568372137327310790641931982853510405425372833718600639964056085075618773970316126643503981706425543305393774110103864198174732560053805986306083784138794435885128459633462756217448187163209409288189813977064687937014512090993781909207094837120477076332287896373692224350793280005127231352602095076924244753430006252708831887201569469097932958437057124893103654652707132300714452479236206873674481631411452293063476542097834670533024359971574324374727042812940474962375715142126228337116986985514603711741777914017235825199604873740650136224926437776013658260700446544696941836959797818889337418782669777212628957937315546760333234779041091569778902036370340222591982488897654261055887202423582967031046975856313062246533653943617172663121201168796918972086058446682804674587195045483053570830354700992298527360364587272752155918924127441194969670410949922573483535975661005995729755358779288235618554628131119237825888293875726896996396760780279098083404415021602566803999204438828630011918942037484762789279078556922452221109170616699967716404834645858372595292122994215316391418719740131821188592133750342986870030992187263853408983052273459688165502727425344045583033510539247313183008578475230361038588621087558748972679217044945432918204682953713349313635452279574497426066342705796211378832690286331766679017346155995959565703696098569930145383494696650412271368408907444483052234049116230066296260458635069440797868100506632585172186524910181146096379982792443606406963376980453852832326929023175829746425496492695784976162670091929816751952696780195356469268705474863102010091314054416600069766731378577482806105243009929981086148921860743284311309680550791102359235113712652891487356990691633950100903011167628131667370410476745043954327171642447570648486975309041332422926572143742333730215708840233605207845743851443782228646316151287014064142169022051392007872404673174573308617638073006692359255320983245546184733322964106204165643583536156137094229047315968722783836143543219926232093583982785538513168068947625376488540963102773344955388371940195873561350346288712209403451152058381993809686360343853610914207412148746738955996011128478528781004751134277804410545878331715272881004622874364122301694804822429510780701012629261427693373921494097329937444137873939888650908999235166891132150680509949205898092704487647256272020026153131871758111392194557119366250833486517074664741644123973996600470058081292369322453150678236353857259842301563087718037578544034265814203733962890971032979130130550130695542507529034718883829287269633263423916607134834056105233751863981596210380785877109760024121081668458959609681445074579241241202392105396203102215368055448023912416652253058092470506996467290803660697684458836729668600874737198207660664417107398825494895623848056816619083389743717135865380122386515276114486341616867251638158896287413307937929521378894098314394695492009817806810363062379275977496834585313781695399024146738653293618618958061238820401195139668901351726669986468978031550315135524751461460828093952459249756513775604943839315281450691631959851520526514810095774916286737009965265384833878156023549469975331685561522452774458636389331660751145072568957028776432592558744870619387528051556873575855348384736503816007255874107893114127622003365724009819308956452846713554964002439703741120033980694151135103109192927993384461660231963419724869330042901295712138810989095496980160692013634567028338040478759286062418467005772325883193355518768084233259269753161403738845804258056703489043675502882874712613648712083848259750612100643163779683834377077956132716373841706891098128748759922188896947051693192000046641923894502941972884302941331843349484437779621527846184385758534098981399354847332941760354144771126940093391566502656862235036925739826278837336323612280616424192785445195451145849011829167457680394453347273210997643545192104401710624324171107638733963108240841874307587754702499684913360293594386708940411758319569996453461081803210102705402986486071612926328703227346164030512757781916266132607653527577115890706506663964184505065672286274469255208995650112266654313926596551369375706304721290954832130670118801804140328967523664560556778127036303950214906594276403770560149537254805044221926463701344686055093000975898537733943265607263852543716427165735142835709003057390280746020301567703836672821242417235968101254271038514911696920299899215134740118776480116391310027900959995611505935931381175465408563804499383889637678013069138413795345415211150686639643987264239833007810474336043176691236634233908582987198011679582426080293098516271561624355615679886823204329271481363735145236991930698562611724402175576667272963739844727266901409096919275013934733216775047545307492009301564660127049793435565611720618244166533719319132477096478805983733661122387212750509664875971815217884267003410186568735877800584839431287789611640857537109656937450550567979634792162766646454793301063006829152029660955510085336828201136358006207825273584076768502222232713540530558415282117243583557868455674284841683606558218785492338174797783918529133445239516616188006226220334303511339453955952110955207626244319926228433500872833363134128255419221579972002164013220296795608844281799039004121352614221101429722436403228424614459280086965564871073150980498513399413670162741266726645684447380174885078643231981771558160996019561345666489676642505422915175357883648000097443875684284308629044917922252715582603247164240556999512016443142625054653722519669464816573787992743737040073395080470054843300846948023158311700026220522043010279551767661549449945106656324860020296686261151204406286154069973643620834430250156120339208516445102021656664839222719936934344115796881139646462799040555662373315204776982203729777507486479661445957818157620868447041302544760615909579672026663027961390085121792935632886449419722201346077421546448643239243184892838318800433335076586539585304099724206454442388095158748221667377554006848671311131457597273018533036800416533876214112166869609915120756403610888790797200173790442215810881568221778027203624160919867284800747458862045551691362505868846757957432738497989157138974221399212306637035423195828916529562989943534379184671639058213299273310396515204384083451004043088663522872335027731610714763717920290734677933322223896694535822232366525014817154588174912581248929336936079557423850463708924160940296860183919798841489472667717169733234906810175955233184510305785021299637397685834818079579884634464106044670680956767494250508968433313065985220149931995711974843317378127959118433649682425892553176337334452489201404575817900742363725234498357651076275192466910952031719104059347304238158749330411249945534241691850620796483375553128866178561654124254964028144431529982164049158776896469008777610994448435935899765799821301932747064190252467813435685874936073990261359700589321722778560833975731132163359264790347612222821692053981196292724427069195155056383654366014075050197218578328912948332810889317014089918471930680435269190909755436483970636570046268221220650846126869585259986868180894933603745351207314830873923218365922813400212636547717339065300759921201452436630738200583444832178092766280924072726257574017876727821703906529506702710733314165904835672679342500332343630084362585307448097703727072842084093601001487427286749264790480146143991335475079599348006709284582020681818425848461594641065022610579281430347983078910959371947796810022536418338058018702610091112479992858627965176824726033564791696602874903699524955935501592379419878568933681275964613741910370260864422828547807475226195559901816033548108813105661771305134899012804457061118141697556481504400044435993503374436841558800915612821359485374794609154747133237811663186339596353195133950536632278986340962897105976796994583292667956310030900709928507002399256860168622753702228845118029633320634290106907236788909586317933096475810425584383827006444082251731269597406872814203646469542203463914506867151596564103217260727014393825073982861455310214619154723709467561765057641937890011721573814416247796891487464734543985593283456957830228229041945040563791859722157710120220116905630672180261710788312802909167356885680532404272978362880289578557735370486766903921198142225528814276623575787263772216009146489987007996566401396732214817189759497351991700815436450584077363014642650091151544260636067046100291895241660237507668783065328872135627285097196075838112814582828481886570653922380598529782952014516021403135849170386668185145277836860224221944478438119914256549683722402142635413122711820030733074709190548433832383159750894331922077059498168678365654727152970053162278926199281151943213196720862253348605505218526081556861429350423915468508605128173646786429100580905621044464132897129527490903131824486691245560949305350726126591113248976988694934440817253150164295344172111931153229517456079068648793648889700570565510850892526691848568145968211774820508767293705715836339637872236372275295602110984745744353747078437426049150126793692443271677772838520365767177201026336426578046454270650743238882257166441420917674640398609580397230259052947400176562504047868181326810461511103988393704206562521435572098101132028446792818787352407128904941392966994660584827286579140227029955062758875854348292515328127850322170106111871118084804956646516396316169183991079287703270115626487232521895925038860226846446132178951049282028007284755650321988064060097410766089283790799020057275485746843518757919630157892386096191900770740441957107863333874294767501472406610260225079142042055662494436850556163109608208252914777946436483182256533698897201054368423067552965167173208597167669376879730275781784713851182767185546446836492159453189310763224639899968725594648280916552732678602883036649640658206225629583701705443442737421059856224030503984936873586294841000879151895332907437892083698777651122428978813962060748205037042589466891188127696565567301994854812240298988156400188837469399418555303171399889790899292729399973394023458838475144948071034905865612240556892249376538120189091080625859236255853080547020667527468923517423625989499349209914066201953034059132048544340919384772680185555982626073353939059519530929842060032719673032718518803203609112392337746206201605042557019621030310384474690129735061814960057346995790491621727139646645379393870753553305027595656538149679815020248687039301952675440122381389172664886196744365618739486975595756679209598512403077916034335862424083383165923184783252186314781629926090310916344927514523034323595638529336370312058342130599933162232102598263367475204125331861534852399931552637418457057269139357203354274338212471688135715201176277773375991835737547997416616511776256078881483603532895762327723816446757275271828971421088621200808989698358895846989974134200573587684568863909185507298833760248864995060621632584945892457326820684603573720692735576322349297809593194642617385177001506907890260217580760650197708145758211381439992537546403683217803986121583997434587122839483519304646173024886960433769344734909461559908465633785146426329840667159212961341116763132216781486847816260382733456927936294137308616240972007322765066893370621251100084573369316529280274219941664416894084116904562837489394997623067311725934399677772963805161775419863014721863564656767756247968404081107239491863855300901965312075745367043841901506753972565509564591762704818247664195649843701986544959139923755882360879128550189435666750911594696559879339452826518712802426686317794116032258815870713521417933513751262073547219676441843583281478895198648102336306805305744402494546038066210643636812253728754745792993305687082899279965053643611366535958943475960758942914439404207569158995712812963298892760247513319292642828689829844511053545957486527611234590170594524740578491006564354621539855620234940545246425890868415564456135464694357634056574661392294265186835881050379959577908247181825196675848431543125811275695299068248781388083752358730053374860428481332300597383424698361032846363406194322347396263335820509042475414972134702824126393951346140558252199530169857828081487707360426108111458474839117721215731558001014179131851394407760556541170291355583741993201576732886138375227473255482328515525610885339337606719961393539146524090106571360060289682450099403576142372154438482571205639995380625538289519573711915786951114185527372332591408581653668872074756821154456715150247538394226834999187627989803470054943765376351045397063652764571093547088308709034928973955467729853250579942360480251932173766310178890796310623966163716539107096016874703643156788326072821295708624510009777181077759395404232135621121288286012082400226788140514493165083908643436944618892691573573960386648265876671596937309591726746370653533215505738288451070812812256610276431165663337403875768410947543943978155694135218555280282601415080315755276079229486710038566347893584744474742596140043295510901362129738064454991622717349949173851311171842090691565463161282535199664302856707339145521404429969166909038825591652036366018764009156797332126990570696178855020555155649076583319647994922178846630343028098828860396800949245513248912190739508028420248809944438109828438497244903398227717070039993901885136455947693055117499003980948913322167002753404885712243360759691201537372523349045942437430708979340129003713104159389934149981195071153062799805980286808683760853151272715892629269286459337447347231757506296314594769819741812932873433142403370787669354184867611340724871832007808162030518020153854545687997108611271642130859602253471051268891984727915020387673509036246387918819770030412303229516209711134523909282159243308896075780534114730374018385313118373368448822600884673735278332923264740989807393072449774453007852388282470207328621545077682652577669224662822346026004459668547934362786612602156297589683243314936981753525345815853255215153043981891235669342905145694614753360493805270434211736825265105591386999348227697240237652544172324991536441071147213622024666697282871059316001115374065182207884809986463948858699942090666675188441461040690397775023435312595719886002060098059448401067679000069804261052755712216568610013903186634495107702990422229011438772334137411197554925490686827581437657866219692490668460785049050626123268061989552413950099203111312959657306612162731318923485028868308485785699564955024323312712268924575859191377638190162717472735340954583881842695327237425629346049926406477475207801565913839926913824819084193003159141376763731805194755335848759226344148257540774439531112319442068304619937396228829268971623633371729965299356951966050558922285568154372236859222578852112188349316628831358464719412594684262703141845339638985073343797548490217249796553293708191889459307964856629854407256893396989515876937090978812144435376700207703622890705799549480107933984055095582394713712564588815782237298117501484935725282579250724118476131142301089172908517155468522302237584997906268267245747974552044136877901609845442056818910378654365395314634656294006972986088671773638419014209320428239024648565998291425935401665527902144462151239529115666153700600563215680679625283453779717026364494066394868477997548626934498850047958135694159960298345668697819112631995026701692920968298215783544894346890900871202587932488576064576956963493471343305482331295019572894849658912781117394615478787809763439586525434755914764115227091495908451133443512554294814795914243830553702357078968135872816877028641434060970671006922880589925099039308908858406818013359798646057690128845239621118203041498516649336239600451774447749422856050522868796757519869784352930155172947044664534875089511256619230592864882666506032593005808867092748771007706874511689470455200439208462107572692191636863085496097070012224614077880684113836075872119010831219187367503957384975716877508677188980033873818076236286645507615381294047409847321447959754536404706286462452299537150078661143082819710452301811279424059989332422232882836237553191941829925576726150786197368654119053565905061552921096965460175597718669267276707232341627255695547215421031064873754497701886777967121669892365865476050405676043425707687268946276773053386408484802119108318289205938904623657471829205354883385548405640323900796674257737257551560771118047521138440090000643305773140662301898321553906478994245473141391282761393477477193084722073709027269039214249513045612706110925248786248961240457209752008066809733815802152746144224594368303795878098987583996344918132242357603387232658951391124640565040005948862546109035405151527291284861523796922942696477229573001734069966950743941338314318978253519299535783220474901740082388319914695117229102897794086264487783016376081769935089677082270017824276278587697445112122587802503403116028815704816529392252101268485157381407323820862728801277465093296543168031949588334700874630528254663214946617830162202620799559899928251540512953895678116150894220349767845028626477511321735807595712992595129137387225228781372293191132901886817956264591833571498523695038566952046821232631333241268904045245860722514325559055488326066148759771110352527239614460303938420365512002262412693453401632501047758771255049508446719275462714566756178626198583339880422776270261549869646055545491490109117448526664211281699183244817201620142162664346532589285859389824563967015937714895780617083732992278374733370029068752282968857459187807955519301140896995379545341530593976408575020026316543842309163479524258728486299297760464713329255530160194083508507031715980229402994380337574222112248723905711294749801825393525438696172564037983779614540462657526090447828226437675510887389665588801322026702894561559157432491177260793899624472985837059466641516281038238660065655025723029651616013097086270229627283454249197976203259839435437405467191935607140214922334248070009403541142747877713465906962734347105283931625845627685992110555075311323855420406428743193984337936303217211995923654796856222504764033681821550831621396980217524500159405924331695951599671077721110011165559961299235178712928323567740025916070571689308767293694636108271099612246125087730979896085732535557680527548479000582372532813398862538898786894100871793937564799295667277496528892043158708061278824856260104981331050692925499852324868840555382562343729581901996917049360628890886073831030226531009909601761308310613109535622474045431510070244281837998796311188019800620336597148739800171940088138773726166666633676185907992355017312776631755277739211439039144655000929921757715660955599594770370785392170850972882326364909188100686259538861352773764256335667044100466391491490015033501894684875676978448623655358328563543325235278783751014848572584113306794121811761917723666523583761658068487102417522874181404005431088882280938201985766509659039891935818339788447822670424041001585086817189053824245015942744675097717600943053820808664000237753641774816339835033096794347027762567194534987147744838096336955178165227674584123295259325285395141934684592901429481980832434302854363084358245210746551074006224027190332950075135356869873488018586007088751821975812836264844890884462572212454240335188149440988574177481740491382244908529230550783173500067955966696709595167723727199962833815954844366160408133356264299222801056310326534779920101322408072811028343525339946304328425316344105207603994495183519771564010572242296665781105867396093441617214130487641007977212668230157214911488463015949540981826354828074665536743586195421783642848348225210016492532507921360355378976232339004764804289269848579819679618521972730784970422315654493664924842775661654627781806177058596355308257084496160221690697551419211816974816034517846355741157180213845799307018466376121529060515541565711879203944534482660029009743951913955794540889894656528271076075525195336727088224408041360735932356590660555350019099166321588140409332335819499945586838458461374770715071021367688425244794827669168273021358860824226532138362310504493941545966247104689541608429006141931339195437611555941476447904854922779284102283075746771499970077096219146855010347294181159169249993060958366668893103820964400588986828210042406174626537230026551839925801881829797676843824218478714653116422218516165478885251651534777984808831112743556123358304625880918774382943983512695163126553634272829071551188636219681512702849609664918106478115704942702537099146283431581655743801944151333204930772634542547024883104733596425558122211984888893592487220559168323353673665865333834158383927716999043398007781254264244595880998056690428146704108876621814879644008464592718651901661429605603739641066905420851863854965249031660601924603033688610659809431594479315865106020369630424515135977301399324135178652341742805367822891542246635325101590640420078704124945459625894511852391484702220387178928305925087571827068171828367324722028299230858085962482306756463035458032002315407168163167559497517295115723876458583877397454107332475394878266099225165138687883123158355895552641370683905176262763101083345705499588376755010708022261788344530975258666464892383229755501788534115136738078554994190499175664716664216370220028584266759594933445935193169973107481071799457448724459176285769282936405868231809919644137001283346825196225124343745347761578919089930713801953844352152836299665836661040010282319391530030127035449159421878570849955779596899893689949677855988157801041715169362209152694569620536538181414708466334727486880127798741512362587019581376144088703275735000578937255743590802144575526402812054829545291307172130333764988083672336747429758924957704779276120264430641210240895509399380885202405069106016754230402803625588886114107073240503963532968732305833725911381176383329486066533111021865007227771433931164029916759911862644997041009774308661092573299528088789408053501867582247182319835141488655323637634633071312355105550392350384882052753796085293272630481526707575399398946959205343032308447286767935044643692346499830970245245186408108726864710497259280604938835741714603985454161487009188552348304281004720812284631261502276307656575738798997730002078796468789503575299268269800867788407457164338459182694099956168998871219339088570102650273718783512481754953087555839204660254026189184375220588061778289842176214119500264338731627748914043445906082567133751870289912487694475971502721643683796299127535555212171414960783298378586817516793087510084864010161413357488299075421579652929060935257263280771084092558185895609701975688924703521558449866302951438843839581398813356189642069817980073567693776095390295907524754583088533350696605831240211176062997324302484186664508805235431612234407824505560156243795908498665819355908811711887504736836207638274562391736816849961252286871703690204230507362180252290690648341205851718998905265922298164054470427629797329018435742594807194997926530784471688654465296435580132192290612492023959491201187321417412584936949446790695239323862392164389578478748210569474044686684132496209976361637309905332604115147143089314719366243644476344248106430138100659352571789054483355632531309271231280933459337132224198815019515806161059590493221559740489672803752672929831695206324190587364923026231952752206971040776542060225120406225651300861584721752857344974054851531550127400232093609052803113551517504514879726561522606525170641380056718815342715686137802295261277429798455850129647024459080608021584982366695202405131209360744077314559614233799707285278798463846629560038203173821738315330235344619896736788933120659608057639043201498586437062800826022108676483028881744523002389618956108913177196968092709020585141753199825366908454565262851399924069786482661368366318579472545767898382456750236061988890073777970068161625096154750626468872896968543351123330731768886291383516366820768485108248749423932414361546587243144026420316493344073131355834322903456150278433971586715023796405998159819817114342452273569439804736820332283457567056455912171289185265416016159154496943731685748548397227227903665371696591411161928019416606556919972595423214922475321169303963978474392036304658115940462176930269303575105301822595076117955200987349618200046490747890354143103342696855291888270111666927526807151676158743101924728570769439257819203630665059568670960064459318096457798897365803518671442197828138335007678835904145820040715612739777095674864260812292395837951192203952123739500448435982538927882550652981425432570576061546003718504277314451392705269053422542744496002251317392080691875253231912899439434095154774869114958618470415266832367436931924078970867099746553993831566020219916169981035129629474822279121330530914964853623664801215146842355041475816275140913864674715277171677652910940981884601729633646317178933605860444591516225320638659383886270941646264791542294631114714563063378381863680886337893025834935900444714160489746809435836658464009655299057023866893048572000109720883825292740847830447634860035501496475297611956546702226552469601458645157549510374080273612452135182452679624735672177078743268267751922151791218607127685620871594932288143083737453010053050507964284494334784972159296131136102151490153862136862934732472791921799796748455376166083998207173133123106771299405446396816216371683597648771402328244213737601650134023284000185120935493034206286600004780655701166149698550946977238976856018091584075961548609351982586090929562894484206263612909162533434339239024339553391740970198332882603357043527949247748774971190818886239659893584765643896880163630923695021816062461385097334486144730162475711075745190082529844608940363291915865234307553381137827117335091288701833607002679311560221134733759053327963911901543256465874866404434104423594304393079224029082168804359513808766353033735693060838571330317846768936685867251324354335357758062501317643301315723323584407253951066212342033648814861273958542652688061886287748174584401454279043084213441490105855715294851670977877986243070867179850114381151350048688010844152160954741774986906054812573022528403466545674344325194441879329973120255666130575313741461189439446117500970479589336732092825288963570352293306810949997189385103704211627314319039291727712868154363869441223594296210623081835827575515332825326125106901867957815745429580352249832415015572415309260940382514993658166685968275995139311221099877762482503997769071146628900450839732265947817838652438805808831018970941773372181984122011690835431247541652390166874121183015375516281618395554885277235390396776800695316995814875060491839929198349721577822653827943508818181137793259095302340020632402500558405618135163237284457546004400081423283077175565659049397397583128006677844655315028210584704448437773703048811261528885237210088831068525894194345524581947175339734873523037161713175465272471635596212235243229768660018088963432163069100880497088193899384722018848722653147243103520825929318571120302633968113202016166922840204855788762987378167891081941264243985715895501378702837498648524562650844168883311194372583728732891280405948737507608981544638374069287486551174487923150433583408930397406709932205833808733042777502472430915854539111590042607048939861501062758675092821553490410887678927145038507971008055961388425185314695900558292903301695918165510151216245781442342135728868713476215158575988811727881200445712034263705447749168591903986510966756486909427968248539251572049490485685042758211382069947317587719339093526500559074440572145816648196648214488804458033497941470027283973168550688172654985192349229376645948626143940407085519484903604447505314503152966401557250876746394382586012898275470989849959667669922183627758045820936145353623649927537944657391147400367051815906344161344292095438851554102363267571092686549738130868525676830533196780546567136128285026535595651713626110380078871952658774344317951941977310636465537899641715615424410781464520587500979345379891403784623255237238694145258799500764951888638343566429677765184098750266588845958643929871416634549561981345526197097482069955614774189726694532958592063131467525129218744930081730817580537886015075260413534313861637642188785342634888420249276172318400955530367574887262461364858497138496550742044428471650280958249462447178667336379836167813144548163180242544475151763302212794862575525134946503486471027203376462770599528720466766611747940854150763695940723393902217500658052221776930794445551124000827224674837318811306374269488427882280175189718103408058024264433334638326772972687594040824192137980409931212241407481198209731494447754715565786741901755812381927377084607728814705600804155889813164266064875196319722923185562656625719098369945647314119713075625162687880070404870644443222841268925801551087521838492634245707775169093505355765166975099834714337729886292881494562783855346249003862508808245667347825567311309594057417778787247866214205771494113062673240489711677550668180043724084904197137980491262204886225097121683681195091272504659178005487747248120704763220863968186987467824340590372486545373000120822272145828708507984310215443897196525214955579445224169385051786231876481017603832741591986116078573136514086409572755705471638263403932509761123656767919734406594786920310095335819134398865279533597703736307639293596656856702791948167590637026939663941241241412305671088509797268998017599094337184767102373465136920524554026939489632041174410990677758602609975346986294029846784464512001195070972948716494375935326767560417965336489848572212759058535363426294259934223780748111330229186402582201337636901741717770740345200695666734067510295946653305292869032530073708031905366261755066680118789231274574910496964608420340827890492454178719959135012747452506210912972343603529748235060483970719763017176034244049554072802846593793033530023590237993004716134152548424841153010278910108689019540786636912724174472529373365487845418297507484674265958793858470988414189769652858729563699326694409750448141590230738068105959947339413596498878254986161282726450652320695767681784020052312849512040231607792144469839264734129007222119985469024564479269781339575245102289802097595131250101466260978021017552864241304140055184160100764901892592943264239607407707714683675058848403535899316814271508439190816917898119842303110699031435847706760323360373995801467361137146289283970281934512253970707597029949842503855404378327709055112199397035657223450850163108167520413677929671674422120120195926420271677209933714226378199390358440000380568152373757576852960015334897633455022729148156806777284039238362378162825015854765990794675668739714771788186606873230881824720924015408994677230403134432076064345161084256549928860130057077002295444792425221840437051536792780140273067476719128674244221450431046985628813046618906962451900024184791416655615296632177658802070414151897361287727377689852616627755331675034449548028330358902759762540150026783592017468416927764869772391492143388832957222552374615292058732339111793777033886303854480746591434341744787718646104315582070893061909424407340340804005926533769013184203467671797305238868948208433204775968109461252461468901745640611437235476697384944289571463312177959857945317303503622618375658663714513384114455356114603182816192766828606976530852189306495789111970025224059477973009761269584493241186121796427905683946156098173836390551518865055207075253840801472163557051475837542029590491787903957537940807498063904179533313770183189322285650031745637532344556338904439867844246496907070313620846071852211551836262097091749273435605792319040304167480477353931661465767481214457149940215389464665111915110402622285306232656296885527769876550527874929560625240446155145523645907297411895470501123584493959666966295535150935003950313318943869425720476486893971263845513633331001448343264753578059971806316140513193581070298228976261618029749315743206186877215492412682317448128438364771447351289084483597866446833086278361903102863874471145217966785110916658343544292456405368935687090483700308092817965264546616236588484961226318627826952943322014757646693684904775549890683510530441301324967877243014396998560595149649737190590229621114685352171394130520550601751633172759090047454836510329563994487503223305877554153999399211188956723495459892931793424984730624625726150019858782786643151815772229517942109694055371222260752198915873892751988468618874079565361415018549231153058787241805078486573520851507242191418148145061732180105862163869106115368096412935058441105837598210049182615540505129202002635910466497993783254450233778546815411632244224013539577772053640481042128754091246740167366069355581167892960793025796226312893768839954639709818459608680427953420388624888497733943403780423671063411010853488434302018100091266287654129172189216614149393102721145895086805385765322800063717575761074759155822779803668303238628417741736251683972274185688747326766211036476685080394390233727812797932380241800781611169734042666573420349757389590261749022227719123858453250021574803078577291739179256935005023712928401049569438375173147229795068366029290769095351128081375654729266334817120658825215924232006861439800946716971534818457652267683298289677538861510318738150362443608230110863691538335219485317399600515389806091823344424345555956339944056692103042846674287391757086181340933022990803766733371044998951027816407995864444285942130000135980035388818913702552436371255392519382971174216806095191131587550332516129602059048535645887497499298519817200594624247591802312638219761288621934129684508221391711422261715861142541119239757560707556280461092638357012458671216413795058588359585175631033477468497829533068213783195182855217356554984361577064484583097881199960479597579796524476711823518585795180190080684564509629966580955592656057496143119566163484407487967132568140324876117485232757461056105273892114670294665605173514259445447326565623429900432967550232673236038051548348193589623957038640133972409643954163034716304578811551362277906193910044373735751010363764520042863530049354855293001043758892122899684844643942638484823602519695287307408418129807551589599870611325294089272347042142866675174413053010792973500022528725704446240855928343291541236985234378584543478843593883829622243612658174863386694106384876019274171498963047774479383205997373447149859941023226724706750309980404843346362399196987499396712642110346202718423685096895676139106353360646154105141735901035735781263090014219388148517594175019038468432206693027505289308982293886684360473878194964036334649881594847148994040116375929062584259232079961104855609941884806416419748130035297593291102093969432977826874283685708134400971657633861561307631508920167844056844074133731402535661760639346919355895725213861538643570791115397683175278111456706261331175839768361794478037124177179620856803406939517701079802949817469099741097812144668152234532852172355122065817841241240981883296991118528055492417549400639124482875879329452337789220139192143705271744093124480173286943920074224264845482126125630609894729034082285395510647658936190573268113746489734911133752833215961901237459569432630706053673195318462306783008348809246893982741448394736382723650116495964928610690126183007532497564953187989052280728393010380714369654334914899060340594814438588298382245630436943745284529417295898215921899256629943351789128078598217246057647265376198371820068381346834588543897030833825079752088182406220983148626756200565816957953468161162249913518739443198762271800766568580105233652075354643751588125643357565843328359367913290675379152985737553456925638553042178948438508516702089118487930979074891491387496942879971927727576867917407019170433206245368913380177613567740579126922812838272894936995922226619268209451359470907851746941533053897103933299226150303462179508280446275752441307598080445363448303800852547788651325152554541848898319790034232790082498294046740101528324600101250474508310892265733050234737642437794724571208894034836220032025442311348592648950570560165267793199656679092985748842352605496034457833876941538914771044618134283169855481361811307475637903126524155642397408007266978083842165953523318974853732662315626061375918017079348324552069489761171054430063872278423474173739656733168810108326256791263787585227660554527444183878997435527249077048306464131920959768346065487366132761395381739600626167624823695536640157720352804524348917901549254710280190652276264775981830011942416268111583843116187562834833279011813342366967983157877266772478791551322259478885629683082267289068252789104722783564732539851586702529442274076495914112845220251519963872902941625686100519914483619159553787162126179744375085950945557975689495544510622669868222371653945033515812196975568451300461326322915953523972199555946769713066321458834610175002560485474445731505342456421536793339793949508615909941236236975072694712905130671448048906252558373356892417568137749759815780088165159450181179480589238077079113569519137927717249232484414902183062773659002319386850018047946124859229593652735351009481492860176072396423552743525591734591299907916118338391977113350873168293634213778855859259953923621672875430168587356853887950569106405024540761385030394261144703835154634787559960740892355860374528286840312173661668661073327142867347178038262445541736412190402117039989520014945937252711916224293251532052452099264410219509832639350681511598025354173624102509496195771703978789879735769152446748849144674469804775448319371338215699992221206723556613178861482904110873345886050335566461128843581891581485454658297825598296777855251340618262287011286437123837434497378611391089874247130294866568643905759842341229796034501604126000472695787314610790399380858050200946681249933884986942924241824919403376448229780106518387940205163292475121398789183382998169089729366486530562926607368916579375410741736092365178548462784599832722034586477998664903379357653950690492844238286403882011320134958185396659616088112093210154626213523418088850379425311887771453810871958963007236805783257629867790012385479892360771968663722098322752998489495922469910472634232708135145271740821142872923831341508306990826587437254861447853871967872923359593656849056495188124101457101636765407969764068621116469207789057274953832889642669761373629983171583725973750080131186504186000628929779898636558679492408871009121170885818173389439106037245335877876595665350894202993474340854319854260896705701765821446075130923234893141433104924963681982186864706758910959007659198373487374706913612778529474902079645582447542351133357476667254474197862264660599413380826359214556291068105679825594122149841989727834091896656345283681607941077185015444733993455418723505830842470382146106181267163812450069811082559708226135358559521353611609726015415148694099720578343439367166907304365190910020466012628139407616495780271400641115754390106758725506378700820203904577005133509875443332730141492823437710422337520162101069297160960015116969973502939405245909883458535374087262397559551858498177722306428640976766427308908250367682954619410362953379386083242853988777769328112144053246781458594537242976751573118137762577393556488857195728764018782797019435789528248275660644130500626183834934471387020341462751606121584048094904909859712534474646068503884071519949403738008296818924589955451659770697149217358596253174733506174973030503212870723954858046533635066844548201637394526957543839388580463198065722527032097012549135559865686234794339293329637878419999511228348716254463373711112752383055609196502908797728753558951237736923937654585378948858850859055253848376220015077209635246795921708011880767328195135702733499926809936886455214868463084100652261713602726263810331697745923650238113113319129021934072900654588217449956144410037766070460798584261361817787265431680151930460519239946120109828901482720422148754143753455600779236522538437097436793746831170689472417260705231010675327703328613128747305281015166773157901443419904923433597306808715414310190729116648910786080961815215331869953624647259202184926303626552297853703994234745922639776768036311585588939171485487041725709458486695798207039222090072457892097534817057733423236142469867174166996990359682137633169898330357210909960938661114449141748671546836873770427060204689949020654118261253183341155032724137889879264663836381710669761990653638088917627165519631579587345765508780808697331590333651880618444215180180266642442260439065151161718708715594554139790466738155801908116218468535709667849556282807297406977254287499318291604519590352272126049443881934050631080540324995482018226703162439079155834357458137764844010309471244789836808279464548421331805466362925250772906538443043634883745707547297824806986698258062317606172169548328497482362987425762959650988450090100427426764245268983678730068796214026538256462634352568795511944702881268905542769682977492640211662769284909846090480178318407888329562979404335039594602651596571046398180580924777428303570354148600052540764958762357005757085039387628030946560084159431157495823918224487238764573471744500986096496036058625705563408867535085473625452926711555647438796700889172850724523826382647275116377081901451844166205564605522300333971511032584735269248141500079463167805373018145014137480081014456281672406932564942747337456947607040231670578858457626746111412747464649550584468803087966546181696300581074358613346531109015572065501284013299257232886905706867498103170567929100132298303187764819113250256988080144429782977168264101892649408330909980220554506552087968600535533061896992457202658175461336827510821380224931080448056842470412453511767080043941019594050443131712216082698899958167100298017414684038786439324933322953584529676521307125886214483334148229245197582728487191308535015667902170995013744438492038755292775528354665711303517256732056359587959868226466884249721875071010144186705146549942921754553723491021483189113836890867708247396388643153106216939893042615946496328827262231424677594444980136582854235126331426137164405861196298280599751510332563669402949125736350096573746996129679019107008012106841348363940504317616009459839775297646726729823624021675398529891155538026253481306066763028697138607845581102687041148116343289466203470636385269153272139281357848196879912256300659054688852030726343115840248300556828117962747849697651982889170253158233095399982158404119217511683618459131446360248419606769154387569139264272927115057910540805269801966873817989714019846540606862294088261985042536404696689397372537500786727730579950527680261448424655027873653259180572746334781353882095980425517570525601285101823876491808231382324571599773349127896283172771211629710443128356898009571042352691145346848657078145686488580311648926227301972692628029046913297041941342134568260977642439176392043673982909722885575711648250941627161956328457033591240570668775431394065229322270070591441461439272818398610388231935941591098416035462773784086285574324020952003381155848482060830281442245928254366125883633600775325470728069379809090564940802953881705989186309543030935709294577324714259689423822360061534487907917015658060551959698687873822942564197793841709426581633783993044008527254595385814885532774519042172130188812748504758104715152695074907217042836628598908269679685988188190340759160402156388003818126295634211485725516813615135836929121776690123607719898695955728098532779623623673361104546873327247337369102529787198786428887547832303045186569535110682612354105682911649090807799240826680634511345343077624495484688647124357161450222188106951498485584186316010070977004579830856969529091639441995194929712361666955751760650894305719004804184302051315244297845462488956440389605039115813859881973754166022085985608766624917477874571095836886857815320801780291408049043359168447299691982461421262213564112598251906557993819379535367181132602051219306031444933998494302943817434735339767900457513557534639996243976731276339305670292177717150043854620405278792103153653691572563490108114382796304288862980494184779866252632535222197797480199870635285990034248494932730466223707969352199520829989460116286076972327805271258165160418421414696682770591306049361412086888138313287300504543061462336188007522561929389990224024263648131716183171839613128322434746817377075130964928193261274475016097175436140333778011663556902557684541297009290189931535480526598107857706851261743568503505960848380951400004983902880591380888501059597201744138116713642077267579949182288714372538825773843578246873890559853989856941951721343742406939579322577410794903708997973112333788684990803877077985826858605815225204971109683303547140824182139559312783313528865874280699862857672206581914752391731471420102372088797292045574373399449626905617842629400644894682400431315120683350691246465420480971556390739725002003364608402928565175383604435214821192715891019062895277126122902772574874312926651835190643823297071915732338244402714447526775637907768264551150802969990559221386524802973288616681137157872725557948500601148605663904182506983242704761218896462350566025641301467558970687369745375675878395902296822643093106008325895802558438280479273265919160395711491798433918174637837868380100864007178190401753158988912884964139961190326716844423914172206076149142180009694965175224423645170146181582576994087638908179218851448164794305568607041283164336281487363917085191277511551081175513833725593028343786491942516481945878217513679057520571528640966917479343808145436348548283181654362960480359908450829101273041411303997447841456552929101762113490830270351914360600382896097759031996033671364839671831104651724010989491022289752525579048431270254581898455740013469778381463291887070025961595567106234955873951718147523262859165860718101406931178642653383961678670365763746593965327404361278655154921579398411631022031844344722015476626863046546800731271832177014908914537712070668155964406466275398303549354265994796642624033001063053792425578419096131359398846590137570374697490984966405126612333233394642973255562541298956616388375071212624469628152508448300608405568109606911644702042786490817918105814765860307593854282013774278176405604148029108857922132343859493686571305443531300271258579004821033433843011114035553017623652182412132736996644993153909274718181179021260942602279216956869234129502391086075751212977642117344323925917205274904500671055657468154730564965833272079257968378921265279656323313054903609829177829360451010984101899445680147416349730664758546773764335213778822951621778846616643173386861192541840883398689365516867436947006519173523055059622503017367196509140308772652126399969870778757231505805390430280739909079314196063769330005843924627596755764723200239290385773523863803425317832177242199862696107961866455847685846625227233138365522268032717052939635190031795294699599386809116959049208853049943715116490576030483195973484393840101512030062168517010398750864961108801738818726331546682249319333814816198988356176066799662849866390504901259143390119267928035692422597835891317697512043574172249420654975753346039482733379718382175315248556410776821269415146473609334773209894117567607576886501413932811308172029625496443337207788229220268788161062691245413575216278862105426344486450989196716389204981221007778683269764453370126575535296270310550532985371327927745873927436829198812307853112379178906960973792777311043061913129960959648519753915710562316880756985954262056395707307112480791185907459987061638462237298213298085306304811581069961381441457575377003074753186979659042502479604244808665138046805647405855876353115199268678338564624657798726297533871078437711314740803894058730611429198028598108389138402024290321152256372384864512414071383982135125175831687015785344650461434056959340430794741023835211987376270274022908939810601728608937465531499952921972926372297624481453598473665035643667556332649714565864490789364248991718304424673489588110843991539411911989078984894990780011302145703915696721639183426793229720290612976799100066196050575650452739830338509441033717719419830494392663385076865078460470631258714778852662479826204473374223648233602430152654935533153371045875783502301290702194355705272565501440020670933679028057812807657983374338469153528310779153892503770544786516228540601819582674037956969993252125580586466881413002664526404388409126497181898062952074949908017838848453051219851165279067747183423793910777319644253627565301158054824028138662752492631157453348549175599055525515707731066299742637320052577887422676647235437600349802722338651155663872162564108821699384878418899607476045323399531292688932890803081795433255229529615266583817676390195412441957940661304276003248728182045127925569710930479346284649065426007421534205054992145547247095362512545200993453577150024959911872306793058949490463293714090646495796733275990438961128449862480828940739765642588461073348003630709628765002268958152679939564067870024281889242990720478223129980740387618506018693198424662204775113402790808713424136271526538031179463721206141263540561012463376552041916023736404741801321852332809632973294175367854533228943539226700895024418292647399162476076033815380494455820386253824277226104389779380521017268152452444995430684824609680642972759721652875831710678792601041534825940409897124456996316957087330888742867858989667441248961007641003014854732624164844347686826593572749613512847333052631084246808503311540209835411349522769428758592780300549647283427809282721594949145347680838607571627351977048323478279079898846545948365894571222535863177836496872286201922005280546987162460103301226084773699300982123632596678494803157940942251050387473646957980744671658418666633022283532693817824059154154216359967168483565774807238472807941410167359750207245908428745883934041747768743635362903749922058920198306135736962907199785520268084528033299940740799517003811694376663556105723556472187828242046595605540076993455759977585285881293945309010217947590246881924295453291461557409838472507077286715133906528640166422080174156671506041258337351301413134894693412484406840077975629211961554787382442160604762048726682607511727719207164163556428438243027246692620803461713809499291005024029200039725649442318429085664369169761532205427200467807587749864348400933524147791095031285165363318561394214615700497753713930966636609266835506922029950330623439738451229262819805960037587009420244212246658100004450408004957888378806081688226715957372362850562846837774890129676699007783667317478154278112501268811810699613981555094732518954540230389879761272277314220375765562546758472321852768706021789495597953169131247769868385766892623719076629898498160222301674537141343381149256250361532309257034456004905767162368079690909617160914547639611727218589906440087276757489943521499626481105310009413037199645138592306623233998727875753962759796000470142280082626520841524793369572839470891466580549949314502313849845496974257577816718709578305191962414839457587701855098647202857546528189138014953503200273737346234284246591282154483836682518079019079468111297602208252186791117170695493593896435733608154259390987280080010507250407821561090222834703961964609731908648891032050833187785448340629932156018617616366212486931449089542984356925796536879229372726497739100797918762101235648007302410012781708631984475855234587782164859067916660282416060018826429123291622763730924937335771292572600843091373996333012511322991769077638269397237971284732753122994211928840380118639731442022368688556549376633000034423585459793727723331204448472014564188229233989757814186570687486757617377747333561376324251802741173157204272614866751179784768117789264598293633232679526252538378314429999731658232623372321452891222529542750326723282301727666059917590575036559146147842149630113027780217827754004885139133370513937834244461224271182549758563569631156729515908383261653046927209033907519490552457940732479407610958997339055554513086694904688991200565349327742668325517058196570342143433125874594660015383540055910707955582043958125653341398896186819694712277047704686808621114318298978923050704483438463200515529947106305599259834140890024296235607945542685505798691717620342713263174311803610275900848230858240109642959932734899139261108161326829238844380810949237483200448693012444136657835498905874284655876705843979065839800265925028622990718698828563385245176817157996825541551220019759872763356041257987152751509813376067458204813513584966028902296729765848308397586784219296103612325447511267439296151669123187112710172429381049452013324402972348401707488638224175301132562023422917389325260806030809086345995168940271597345371413240979262179464905399167106123227107124579276513560928162797245650401914087677870095095995842406078029199043171705744103894234611821845768691046053188663683646329458730290923379390475425445817842732566370924988246902086598654405426329236950006577695669450190038874774054815080037688316939203296441129596034878465236841142557755848394746362283394132201968498951541252321181926578888158114952968734587960038061135801596830973173622602814455480679631826142879709399336298117591837211234011925690415405268694969819112950692903890840107395831022280565917990588639826889566668470299582889167769072674417925591462244297445439495087272141609291869105875187682583268606672771342508044517983517296993804640116075080383399954474444214583957113402534595047860904543136645434823892463757881880683009206264424393667205435351540372298288097985967099818073682940600937363220348494349027577636114692307404216636496431891653482352619373583211448437375902110708781785666436911418835125064109404248144442385271437441716179889774428653078174967194510290967408753260751153240896925667930767647054776842610653889006666239316165233169680194018647393165552477823666680538921569321807239603350408514978945099354548963870052727332682949175585451541374021439383332528973574188269248119380237322047349615658428375210933921385169381489381871999996711540244573481208402445976580447196265973913212273627934933996635338307473701499339537248361650732893240124130229855331246345011044605648057897260146058166180967623756112456252014795886956395466404013367345114610555936348717115083614148062076770794857981084346041209786431235916583619444196306541777898438595126038655879335421991361715339810771662774441531315123330121956423771909194048908314725889147209650112893463931637638790955982774939865922734582088354247736945113653316370768930107008367647122847059901520199513567275277752370853950978514080165786290583195840846539928573117297747136975841996998126058950368948914606928902486525619201341142974629993935042283497463370631057787467681928048800554887520687352332739984753804965443240467697047337846470641696566249284364904773604409644920939943608809165372742450721935745637012179372734146613591677784160207195586076323710988123132092616757485340712515503374768693469858327753133705421485437791658341394828404621918259977144527078714851714413831888927582156145130476826164007633560265293846690143689622783478562650736581626745915075757475001635925034681469629397174181810972952758747724596529254046181635834310757464349919452914765097502758580956715372771655839381200362362010323224809475663215747916434917062117805048284409127725369204190360363985799334865396301426473457423482547969783705722784911386025876431829058574352305880865011301105083003775363211500702421723781763791057437397257591503899733350665100331817131903344941113259980865606611506528096988255940474582318030870066226166113555211381602014096937289154957090940499874648936391034431808879878299151919589420345214400968827832861110438503691387401632798128805496151639107021418534016042299498558375284290206382036578368035030508660667855649192624180868773809055902787642364998661636659353325301531234499556271682259059690065069027947983765842868270258834941929997680564956881620637655559197724588178432200449405156280736791056134187265277131279926584969872707480686761814290924546896473227312127374115168786745254200532694150691152770816254212328637480573139969240779791255020769844916526201563712228940208751301732913485767184655855200168968735576824740627175291881132444268398523310944414660747402311908808762245236967924263407285736047988203177288176541547377036614685609710244879205613483712062751481964467370935374554033351877909285164237533224489580030876976065474736183277535704919335498641918279899064311677277759156266624987490211947049540875082719503941688551149432036700220134110723431834399078740491448985484467157131203925192503447927434588291320868713542507089669524689055548998315631795425676854376635093841028412117338137223178446389593136183465545041427726771520898178190858131241442257023453373909488193239202284010778930151657249597614181545438536027470908465394778222754670739401445962009692801582689668389445982673856536808179872503252296988407996953336119623984991199057886337974020178426930006349639255389546889606366444203142493953185028898804824736212349664934959996657819730612656757816795685086597209570151530679429429771645834038681396273530813532528815865255349637819538091887801877286532460812037745083040062224920036390724848735591125975181569526574941812646365600052555996157982896723598138513811325957434363275465291108183797885475525372533721502123070154841282218944372494610444827007286572400170556289247080295693267388023950224314772396567537486424816090310185106444158009469458158442530565347152777926145467776598088067083273522200708781372100428737693376308401483850989081707213655368366261375696370259061156184003079901771581593166069521502367550864898140498798755297553379710177654656710398594968372033238569301761174167104424980428523929243332283882278755413979253662610010696558726559611363475938594814069062199977624837769086922660951420733226973784134691463366085293582087474209553275408736356454528498653234627066281850156340840383672151984216216780797540491867600772468497374436790895368676729797266463926796040557724358345345396554586570750327305803329647222089182231628763131395020184989438463797199416213043734824845239764294169407569714150085832618859699261642431043168170998113399514664457563980260458068043836942307056050368440212332958466473507271827109894959838239034289242902849795363946762188078117493680450012441971111314858498695001821221696809844587278239919718882618435823292646333943206390229022596881811008916522466856345400039881029609128001739145977266690079596121835269772621112698052822621768538149608951601489711067637177131392914589629737515008652221265949815382966358476049522729997558420971355121287515175476142213505178200631356456849436380611383420529553021461355491772748044351272041054794031374409731626139319702401168179588211814968503930802520362383171662769564864217850598881659459034164087844108850559267208375574875944475654900880208022004367878815977458627449702033255512989847331583465281476915585402651538859681931964233138226845526980691924587464602584853213234965723739320379724270896734508261307000463542829645195065306331795938419847499584769701294084277183831439676663597982474005385341844495912680630813506467298235602676916937812014500122397758843107603396435916869386004054381320672882211851223450431655548366996464496903408201872875889881379667412975802186210803301616781448580408605586328931662610808037157828606177779946254380175322695210919877977732876606254873452151653033416272176826634187782723979177210548312413909563497123018293204339291618364234117739192311981522563857351640229555067262551664269667743208147508291250772192416459318180304540468208574350782428853415599690856071923400806683171505577757482257632339991102838354534665164454478739421693082848714128192545907659935742316890676396205487683686105137705008855081421155015044770498470056409871183052116951288681781562995414432492311537212662905441757881193398764725731755140871502801010050355499101635691609025523525220859841539824161803128774304854687530022011281632980378771532751810605624814554985942613772949777855090099362632041408087774749379528712342000429763426658698344737443547137273441461386496968066397944722828873560047958800363444877410022830464688994801530628523161485940107005462454539907820662619435130969427364572821590258534802108038458278074360626246055773942776397363708215475004448288217157123203050287761250188633798665644010069667477189397294232822643310633937249487810071102039857972252453705707353702155308762978540314427545609668660081076160976104592540359434970928879041847741513193465552657464122157023388864355876030902353168694589247706782130119073062715865480764298030315991362723543576683268651826203329237843478547684291465791088852170475316205964661605661067430561711768475342378999211279831446568762112473859846583907526680804069839017606541537723783980896101135688915446949936995529216518427550671764383142221813410829650679003558251849203547391148416174098461433334879322717827704515705918148893624343623476331908870640316679244799157884657438644222136059004532698432622966456215710204767703994958028601909854056510368871349055573995692527288775880519496484933746074386970183166048073241039083632248288447532958174709640109759199352063999146189161123364452058446076029670627305362421064099120659338963343862458094712742997107501811260361681529585194946614632882550913247762979875372349412745096507755457943563504729173473716778224266769126285783299996386174119935565204566398781195966041750338754637092471165505409117993356255255433563796879917385850169202299198291624272994332837953392032450217419611772245854954589577715108578315248444670136030355746094155000657102503704040899408423034811097448043431398324631000667648517766352196805211488343301996133327722818077554137248933018308850237579950730603251365527945168417944358087641111107826085179332727928425149586015165036991374111203907083635590410309900447041406356409021138064831917679964403952603118243193422558741778031715993769768046182423561339017134374655245018753910475384565134272732105560578245930438099885178135081142760062596150807577802930051941733861268083342419436443211472570376864123179887692704349921696132024806414368624675263006030345935905333096057210583674399581732220231174703173102707059202964387958081445351337494907050704005512571783181404726404538260690835681945580022377377698550644309309039940343722070566551861760098862266853612754704016447313611129277371999436194843055514939135112868406965201039561147309756874929457084961862926071509985173104827962421515161796315599334002546648870566732384886820787498429165699276357567130021488374505692629378847215821727143108342795571601146843919206602380617204118744171038051237937069209428477018172971593565986361290600151720686448258056936943818349963669203056680578823746330004225594511403623554439134818936083079590406030554929975024041808102950587074601363534278252863834588662433167622076032234845562076021176032131050400064749749219299220585150778880263962841282753996292132979697356611428387849815204886271647556371730229426766624720913540786400975901735608502481658800740438003166083007565005047131398682739607512864746548504503065117905382927691224898860816786860013565783965514186624960955730707499618739032433321275544276138230489876759769865266469769680102979721358874859693165288659730578273831708656691913870119227453417821179097233819791263019586539449047009906248645185537812163608660637146934913891303175522234470269274315379520742902728217995956187860606957499188147046522790209698705673607898482977417673530066273935157728415774206109956246517722542854263792234930530649293377083181992083983632378844866970573501672829495380153351201681933318861422492781078231504837417535167768708138087935892388327912721663878037534214792573419571327142983358234324309675377447206619733065314486958589022003841123150584734173125830182362807338247646197288450535999163957334273221817631671886886366121002637194195728922864389014282274477243286758787931488185613334005893767185055946300993701936651933857188970072896074587170730387922376177750790637459195080113363552533174336890850179172127436443287468067931044889698549962488965057185477650909687178969442838962463790952989920634613951594464125708818784248886471518452025736289622236508029428241297029681184712200360092424547140349468701704713262733722075917959735200918382002723212884129078294969473944030824942069055386440118524460533511743347346238070849144895990177304937059808103449332282102947335486165319657616003835241491035928399162643546664574657992476916167910452069425008859033873845004987716109257843232668160575416102322488856509378365676894276257206142210423859769169507250526522323843366002994344258916127663295623571300880448688388233547590081556234782158180296819157054207532630866461411480636856348632403691793936927998985920653626799640303490670640516767861544043774907424858957299752764935696470112928583399800855339958195148373341739523812032501573067688323606916346445513314259585014223159831795084141071150151358078337786606454115850677857934307183056630250167948399309599910234916264000731558504578068329835426949134128030961018047480681385996889738903146610630430236719324968702281188895044022788294612131196171702093329952775315749738929441255978386240701081785362135564054579320149154950059170550705638494438541301172921067215346963185846491521589622691493712308929081340370200753347304150029531528875789682046966200289059205220239324956337460275162570563561006043188863520509566670202041531791916543823931974411517694463135380518045967975742388379984355146833462543365641693971045118081535336933109539267729503495090515697338125789810169869440035185611423050903944936829779075725816722202245714416534904110348882783132212895236268411640284293118758240667236640859678510755988453139371338573595430285926262379430659012751859487079848036287347995847618493338767273096265187791537518094867122996194622363459455355113019154251952030045556773824666430672215936494735776069771228863845431786331266701221655401514881060904297395204566625111499807117849592366132061457357256013444953332575605504967318643210280305109253744161363185856057333950003311331050453827027493369118993060899526306299795435571723770351612822702697932080313232566291202493490980210206210594986772931681527373816913105206242641278188750303488011851417468165092252901525805563651126310308285587418409720263975965606191414593714483119170892826743344252215278630876041278808934770222365134323743243805579763465367925186294188060828838242140268378472514077015970196685472308787788469961077276533716722608302653837671124532106171037500717941891130356200295816058461439803196330450128665401148336949642107216378048890654262367527255541940051245600958518928278686567094951481324116323462158012104277752990344743954899378696033600286906350061198075520832967153791912595301421910285587747145834716653407132548101224168304140904291531763223345439937721430458707769559547828961050955515785639590099143715493244798551126244621079793787901082383161272004120960229448898366629179612562148813151900224519282850903128166230337519311508190450669308262779348260662016463568861145194438229901103208474966299878236676251807445454009305152324753212099707849837773278140488069389246048474730809617268988935035268950642350769116939076349378376082493814086625754575177877928577613426791095931577594632552518537849374797496520931400007559667645784034889361324145202441154854811292639744661502767204018652026575220550373630527797347964588266780196948793756058362824176366096538013301678508613744009254977100850181255674338978302164128955267819104228058037438124839609463863151457686010132256719779027323296932317532412985793350994817336983927890048943526669685281344157709641048814510711349748645064826985088102446869829839194840871264570576882814437862144673524651933879630250378233049526563320014124729407369458811977950014847858586238891568745969020524173408400182530196939537859248385832728207567001846398803295283795090924039690703731362405774023520436356307881297947823665239944360558214252120248170220728249120436390976887290718550909118590709482789655841413279027497881643737014060530900098580425162732567580603826740946088981221820313693069030268582320485879059741017380295883913046828174846543733416153844135149026941073302221205807159038795587610615448679962990434369784395851647186969295982192229351980046739494924327204867186798895741812874351815742192156361085049352560127887539995443204354328848942939945730749278842047419231004871962940194039222690092502764423049771910905542159867071658466220101648563213453902956066577865254872277274949524534849995248702939482955271766273020985078851893726201670388891159746243168861846432374284431087826683066835757981938985179578971376870673648320873599918633333821877123756166325953800578525039307922918159872530146699250778384392034743830545667074478259840576443799008589351926060941648898042320792694823140594382150154817089270470361343087619404963663136778227737281050529576654609336649714999081408030319039549529218180985858416161555799867311664345290097234808088544466220708888059024296394927427795595280923353010833185176668849088912627648853108463566943508979814372614660962787748443965596448184441707603505388473020508183991909444756503993006152345484723431417771517983398844368098340690152989910322924526645183225568675205887671705238912569528841932903953961201311734515021252899818666979853494253938935382919678964727732586290007278773807893863928244098005890550570199702324156310892598463761841947365533259887800487147053681245734390878856542978677704100234272028254595445776977305262049049693732550299969440452979044356097942235232197010354593912408139323141450683557299612962528346936751306043176494303079528954458783965089358906760337884124039093792252510907047602778824829001785406177017446148616778451796868170220919344710224458162403846480452358930771173677112129011524224192053048579335404547423364869073644120739550450539518432830316469800528379470285866718296433041359839025259329529100126411293764980195739529584733635334775681968124195247826130459306238140685228409752084590769988929032684319685341500770349160748136342733448519378429382876946996551685821132140376557881653980151860411462679690728371098103333294082782212765389473052940174849144368721680649711529620304785788652113110301504210848196949034648636386712228704116136663082481109232977289826610263935823117052739498512407435176507643866183800660359190031746579937568186332502096906114294251690424632482340285546349340133250869998027690528760978848601092924696666336758047401802056303134153312674724153086259683114232211024180077982469900376308218361097700376277598590452908239241976646823232583523358799936443081781122252034946779880842625196007690457202723300835723388034593981462652314050378682781970868057404238537087716063685479583623013659080064009554601217154153760794605685953220905063165444908483049691619045655467156604337194150243738186988010926954154910402092157122215850144178850137661876313069636351407880456971856295478731924542451450702661644262768040072331077131723638970198366006512792029155203430707749295454408875340192103004524651665638284168942026178303160806434259700362892838304623817791827658821448707185989294784852224111602026930656392193131988224587861543257227233966898315166067506213281934755723019487414466731602644729030986072170953277279722636057650591539602319639444448033616428199540127383192758989508358180850408466465093646875412892301154309831172834586468915354489351194359406332816575795379180020315204332390383574499492662530660940189381855323630714421356875976335957660502689636616957138277048387134625189111827295064841188339140499930369138023392435121781408427987828140518430539598763630633223196180365721666623318108435218598837520161689066836553798515716333239118322893016853746425678362698106733531027910564843587088192365813339525918323083420987195739430408747405356773596190520269416620111635603666148092736865151440379386291448184504594470593670008998607993463204957539233492605496582505475330287718405555106144973251955527365012739818834259934437673320468649237821386450945190893910434671099238402396803534390990874147159259931180682935336855502200641833416587481533290705619014637204571353391071035376672876634289492670176239360974766028258826597889265509176336446044773478981405664333353246329878147465322239741164927396612609904020833486004824977477457902475782124416787144131740711187067441829800518601003736374949019648319766579477068174197869593622410414915196933261682596671464237341783325268338803454912971076699674639278692509358313598822662761703810391799518800148646839307398295023896600037548445496558249075348407269398205494282158315573030395660837679777478508647200046077207985754904962761339249897494107338217657792606034002407656606727213896732234963356141219367034188504353860745505089030275296597337253701033490451326609599852965486227656318033387070354288403597586105200728856984030577493846304973682878609305176243689917477303323675868086895247268107610290273112586359322463499667716369795038476567105972356192450896679765585493269674828908287620816502467874839138375510102786858080356129799800722424693737268915196654531742245863918042244275630452645416019089699229497184541720417000349598843480849422237639231846781530757531917886443150169108665760836360949411425218476332377804827740819075105110327090924832089975556515180702877969337960959302345165958710581530104671955336224891999982489673518436501060095184169880670630344921865138208469722654516180241743613589140098295796193328680526056035498591191508409236902684519234077873038467394278335515577664760206948097475401775944222528435775271585159377964352052714988152951482656127292906010243430269379069842361264472062438330235083962368950465459123317538079739350905225041914415786342473842284951995696213502965535135559244927618856301167515997139280413622593059623219768686961449757217285380198465048303878177531999352638925342477435124519416295240440593122393327628751175503062497240113286105741962854260155143992049345959195427071270749356761885601969768519901964360263872318762882438421006672520746084616267946379542971585401168992308039016360244613366218451996537663219633372752881474203392437500254750180773919792542574046684822411019524185605679884238657959336291900372417179291546219578000266100970458528585096067264242163969650956302741544386530566484514537361977789318108132356917889446312021701865946411148707943624568900577606375472472535227402922491023467444170615770323436521927252728616348137284497535748308703669353136165384706920065224531094260201049182844498932382754519671502320678024663694383280918113403702037354021501200885355922307853840153367533935059872629468465273395934327891740833958944065582292397367533741352948078290341053432698847096008868373034365732794742847968543864462587088387518659853951952750484842579959770494789147199744313306794468275976888688932674038980455006935422362681548761746078669208271779118827803219878756036962101065809013384953999740589792978791329322357677576034853648227989971536421934958527333338997395673141665886845182975303714339797736222775605329468494956726963810694205399548926359174324850782808957720179180685802737512533030725933925097345457027252500325407031880862797984938769489381293360845898647925208737335390704343855275339353183502240193815992439365901114814826969366523916615257920463418825939749608421582580311788540873665489505656526215375891649822485768143500978138397067976357078294740579925648239887306402933888825425364904200904433239874404775098376663338161027265207486553974645665850876504098701339748502852653029103646777593909919641229683376978025757349146426489851799480366527752763176780660578088378305936117289816462378701423222231172316874796986653490140316249688340379237585283740342893229944499496589838373012353066075371493931075416978525921896886421121793449538700610759270853736002242538478854227083647964021628101783278305042220973463659229474777055094701447524248487560520892448315963393568923577541901018863054188324925567509500919813221118892180415932152640855452752544254012346604655984577444875109118383543770918894950193964725890929029425867751674087155557297365126330642650347044529614633573002224615011379748597213854875587359792220014023847723266559267956308751137459097176093271331807412198688816717789723682168880969144106963303502412887331633677257528722170266913228024040997959996790451862822204121804110731470982852101311417317584696059345707004486340477061733099512249384388014998305722034642601191333599562324626958553963485868238834556265969871575460950255591493683633857741580781171933078531172778037471259864299049006479727504694588047114252552297755296652703145716425874597427455834902487582566788730127729128146489816023142341251314211270488750330473648205814509020387928105358441305029013758559162247099080710779621058562119899881525011372262510123861429934583503282841585805498635368874426829291820363160988524671805818032172805123022824318853081454675128992715150041946811749252055427335507006491310706905264048831191110191112927804381628834297255257955282483262821794849348417578780506460348452157025596355231940052355793915562221966121704180337510792784720674965541693609154151832856041476393807394294909464823643799512264764964292090569228639652317241802493004525804931263540143711595263526248453361054082840938127386711035971131280301961357741801018525976868599833480177682870359252254249920957363031676774887921566346742071607966959812697019595394627534405366327148304822768637407903554735172269310567825158355812599335788788945512897619200696780490055346462644002550539236544859868739777411897512416165658842322243021875241478626561331836478229881119051585871804155231991383818387323654109227037983617743550870193370738814657954520182113098838040832373504873727650905256973466994084244502047920677722052727094178031245891966449766699540814486605949572323195041331412397256795063903812543370356852656698949856047388769607547378809655397975105299912822171260595306994114037837749748212373899674557842314434118450243276546138477655601665093670149757159124219776742932987050477694497679041277434255537511961714822972814155153116243593908411645729687101857852467531946669889759805707918404516082931232415962528047906673301152721767421841806223677186995564727585440922249024119796950707934457367989713283521029643358241682133186387256091043076472796567836072551468214329219288636922751133418749571036763124932871584385600443380326832583190374338840970673206504077170090174431868957051042037884674512504224207289316707899461829302110402826670260583086986959108135187000212128502824621420660828610324865146080001530990588444878783169895369212428371738381439620846891959693759688627413898429229191201405156785851143796080114903725117970263148876473841191713597396012276932049938540628914328434990083970564459599200503999363651124840871324970670190199456404481575723997758762758735950551356936244304870804568800236080308960858898437383147363258524570009442916676070082986508283695590659871818968778270165691005274995569323398991817018922092537369215640554337682366215645344539039625584147649488867011119955237802489566531335877040865364414181780589109532387429828035428897482815085208199654561483235455522156382929993904919654663435571753385180703881824256989598026008920604169668826435129181778734407803879437782777348162760948177318329027943077016628592672855117103907774941045651758672052263739489975790744183656397619985823966588849769723111482626214087048019534789465817720306406661041549464868176946821992309466022494224449344475282154562002675076056526015515128683774113637594346974772509463450267177936441306817062904655812945644224932684831049324854031649470562730198869009060643532384875775696224754683260852382184149980235044498344295950254070481673606391432121978282681328530474810346888436644266686977589409403587747873278002402332132682086184652828123065234466677424472291977732636742519032964589432371513220477728579504470059351455681723867805776495171422041023001592357037298320998572232465980642739875514267708838819936596273163708300737831836219991852559083102005558864197793598117860648382380243256298581133964508405764575663573044448757960934241698722825523176711998451829493325147745166029568917009000679351850320986245316002753118322527485448011610937904906699356339796166548191958871186323958978399760276187526618157106817037322246158287136341561523285637191345731185722618489715469178394113035778766307420358599085526282796495040821137147473199378864024016557939871757467225248735909756058608987570169722139048914791256748565847517582950730612555299679144776207273386333379272425291859448493682521012619391563969683942956824227511000790501799515770940855612606764822541874456704537836470116620829918016524739567210377154426663906606661093737564296840090300093169354208946279125319753503113122003546929614420482395217843837512576270836827537210992322656839200778893805053241539822984705382355149267603975386171004106296220827711478637214190747837917031467937781243651531682240164332072005237193201234690238368384446970922049547147646962984564768024826788995362954561340643097681372390791872483936252083421006156039051437161636581214922691753116951086302021644502546296760682718572747772709872007792031690008123217973263087403134215073975980093772582668742056478757551362541708212552231104320733277284283008114735923139704259586445100572995603846842145104091797048562475896124236286320165457252714100401024104947636177909406655678678001834584140190047290039235177470260913118261823020008243164131470464512069123517449997347886851927973673494331261216705800508473300143091246337920813858287468022251422720687553271023772527036398954060488819188300866710800431548570511529815635891405198981297994719009720122588524059000356325211732295878978562086357897973121139373664438880923289705811508336963951554280983406113961375032352713306429081197271330851686802159640646416389853196175136773146806191871291943421435285965605302894127658523795966115968776135059009790950284018601413245305981541880304338488593037700335030451612021753168341764462391608684426697235895690728383405734762705966787907381506962809876514441112379274753894660515340505441409610414299392970813501597792829252995549132740833086980423413208037883394737803805048630438893394477505870904292208303059864383467931082822240602717669568740806399008422344188551286544515426612182766571014427530778543845993029006569669684670446105257679268635211650599628148959719397870690049220127290646845623794920073622955422152633419052293430530247464318258981512539306051399511527380910770646772196298543639856134542217870193363939670135342051300360218361023805698725211604622653231243788434375943802767653721234522851211833105687896611140544009213858206232347098120012621928752747826903931194740891550699747490412163514961852632340766785894179266188871416615711299520879150388623713741341061499328076140612672138077460912764576098523348762940389390070560590202466942324640220067460427885254270586337782594520363653822484901388435394089984691165452962043665283881803184813878238894457702027175506620506372800823011438375382321268700591767683445131654458210278888626206970926434884060976166036299887282383073090338667767449044414975315767554688070685816362566594798340551859785370854668849607629601397254292628546848644542704254112303375202455672845429523834157404047534743360217367783758682290439633261175007768575376892648046592519509845503100529766248360547786515943921108655277890756918224375384461627050328661372986949941894731456360421766446370065360478648504650134017453114614524921974762283776140711125449047367847718338959097611866830984899458897345764785663674671922494410563851902952862155508576616686725526257538962181150829147069532248367287955175332014121146488836009847078455432646861625442340718580194977331222624061919699388857679988226215393908067843360496821189284194095896728205110281637886440263409040051085691514804030270315005222834191700381335717655969422578401633633598116166221674382461474495167353230353482792517012297759694389601752243914567888240593334934707718047810452860501908635090225658073212508087431149343999383738277791819462020040758121626754441035887198545892131716633216933556573587475510901380645475850000712073605356799841994869860400977779618194732829800584531641988551805668350735397137483550028483227668185446859205915628828612563968228902712047962584355374873216251542904457730674047489615971014419886361026920117192294298951054499994754361885586338831494130380067144745946084507751214719937253766179934821848632179747721272319472227605859331499137038769793639901916168295074416907961925373790973803788948527050214703956454948524126751582570279603195418995099502520765060118269587581105696265163559647488804482566886101210111147071387228026406754115624920896735419096494552839034046272459592163961556784588309720497337859029670501818385792002098716354920847319040972395381817348703925191718510408404190583140912659694297586655207576209501361796265496436964399635253274763116456296360734604272080029531103471236510030078711803361994830388758071267815496921339463653042570412485831789899990125936621622974028025928625546460891060954780629069466225688947439309587825698011165886176568012392313438627982461650894422230755385454672398471596816499505355942978314217077524471386074471465192003480048856125425543640729343186838045214654900014066305178644104291793237861228130854949094886095989347402642762567149201885092367903050474450082245729234479235883751845517602567249190807215916004629158245825363310448837057767665096090808287322018214807368837617879002146218745378322388463173095610963710618703780324714663268748505459766818367377754030859165237774432557567219816468602193894315326086489372553145519436202466136230598832573084071435526303307659937644781216524717677341310703453354016365985674049558238204098407073976190243259326977111326620552315038763054748347305583584928977874499474851177022714736241146915100673454206989904259819080896571554171499928172213819933194906280900951769605935262642918399818142758699946941891431856145603601421148342324588670737155580840188870167900590001236331478178599043548800017269794498319480042030763221740435358374005501479546466078521598844129499778858950339023536608861676538439813706816872952315124487944241841707379829521984811616892790495959071106855154765262663512534041516904349294703256293900718645836519128639300526667131342529695136204462033598836611468459128691736675156660837480225122650197187091660724494864408864491815779415403498611176411781040044858177291464936685476884728194417527643165733837885845864868238627986852440483098218392359631660433251193716506707484752024920411022861637250274845137223264384328665167800922976619489035857742583671836374347613274199893726419188725439464689364056035656724685908541217068886105213139966571489332379026746809244823207114984903397097238578928832426021427568657860106563442681534321040514932822428726921893966276371665104452113186337677561766090981212250175800337201130300688900169990108738618101322822563335840803933512481238171592480464294477358481064410075426102245097577768829922528135569401006398057914416022269318500659518996640386955534810225623162420949219337132630495066755125707244412253003547853609112623568078835936086596422959595940079279786668683393113339546990961937113151095700595359621659762199364760662374199993026271872333352659237296118374559118634272606785256352330268559421586982103129321285814627273607687789648216148201963074876145496285749985439379056706372365189085466094645734414234386958140607652360110343018762075871594290246382716120666305977351523388607308063174471416325696660838567287177751561877652076826352738007841427915399362034594559851068945453266066939803308685643020830695373495902413972771204837887416876141823606341595267861379361783584155803011006028539760048560205611745627059422747338716744159720862949985130027692198084709053477634492728946682436180276149681028971961913961939110010139823814765940893335848603773098262553747553349728767998267165136022317906960303312340766192964696664864676483120848632052211795523836851189373622983422512558595874253317737865796174427184434994138263731318468001442093100065879050308709589450078892087307867309873945563280891109075556079556063748906032151440151646398856490054269447961638316295942581220990350285463236520959050937919422097704874435677390175599295025629185210042849853938001216810105858202102535935434971702482956333463791156936540280333315980229911119002407663854986168546713111714211916959918067547498411213303304794272935178666643940114518209645911640916647908852219452717464607997510599702192124546416590954816638848731011524323513186991869728604326591909396537753561988318896481212678461491600262103312376366283047891993069295513302059624105118153106634651232582727158526743864124373228205688587256309057279652968249757735543279026482975766340777794165377604847811032323796678408009006476677360918895119381685557671173525396708984476309336199628278566643947222177777495688093675767608574812391519833826937615875148579456193313203058869358508224419579503774341785566511522671172629158113138769130483450350423138944621602237215554906697944492304225413969080797993336816543500137569874632359758640452824373713385309607152459542865237704503614013962990316739645415635632908103637162366501605797862600197975208568593180202762999851871859574687639267241540686305899140367583639998796426629664311562364475001452840222250657568601703916070058858964515844996921155426264463526395322719256931231960616034863438257640912651313925951788723041584472084892333105417624754228575889421911079541573756218339448867863825331349660743253696233433819437064482255305127696912588974243730337824816337842316939432624888171991973838585513579484951256400451563466347348716357022971245737472157660675797969436607451516176738419548415897543076552830750548224221959141432908443293807581352597610544539298408062082405409738007554384166851328012428805064598531011571324196194146168651929539378679624777225003130474652717346931249124238856255759623727762874427018264830872537974550538166932132700936032551908611914394268073515742537771653258493527698946239046756559953423467360731523026721145036383903401889773136021964163048334832771483141558317613127946571740286778285930792534706842102671279292785468634071898338116262260897367527225706852504605678155077901384583118055690116811870144275860535081549462398607851452822565084300532336112349125908187109701239488295448662466047382008643118548777194770529750096631863044249044458901690335148494130130252226878113220981097526472837252492368001171807880154952970741177452044368986582725009506070144239480056455592802868958510516760069256092438559829374622844499886052869605086851545204848821149139600060846651185934847451847458902854727230388928917696773563809894031583866368078128975521462125255718846821848777308116520812129692474805968638055039134742402374353190612522095161639931395001351409484423894551412008784320886479229606594786660575806280585230747365245333357873175731638343311117590435587262287267542875372125527844335917471692008590352550451844866892882476087076102245532402895535797301433603642069212116319035823489483196774246460182341468923205527911916661135317554679583175647956231884877751548391393253041839460514221284369230618402888245828620265490751737402518502782180104122328419028968999966598669191292197903378973698858836680289951320997845029771874295528553015527385208071922424172641621937988778057753831890894046255714168569437452489555892126503509789074273830732120623827622094589586374783541337646423017205009308208317946242884900779331717631986532748568115203013587008335288981527940598838757454378323236229350717565658308915801314939904861929977681994720072183330293430718817257553592668615525683650105763588614052826855189532143695360738759709518738720776300270953602926341427738993147924486615000330740388000443828379067761123476180327621022363419225321008132382407521200174603319503382823918948438846942889062328611444598204214459106904167724476290674306700035138586406489921100185342262319287139606428784815520508384352838639483588009736521513691605250046159960572339119700514587100921479497969214170294875157517717299252198304987455289281310631315940734352617615954470655526020136507459178188394528303219897898560623413082588394918261291598727675569730580502128332521347291207820027798363101721770705050066122221568614490252097450678466004475532666136310280541338499492909242838792933127338018117842920368602039418231293424110917524732796815842649088353492895104402407709156128089407243089485593534249891907502092588526863121859473332187420519675664038196341064808748624422215450480371129451455523364783305359625571191776231136712878152557718150808973169304826176274075433790967464807962185351838712237113323494971016887317424562678040806254562274303335219271515917633580485840874065216268971846885714677974074627280753022106293828381130186962518151332422358131847614424022268551750708516139170944645610524032519707866031362791341024265006787553893515831285790486676205496186598744756928670713918297652336959956196534966610791168083546784276999152007318393235420145373223008021106684587318159025096487792743855291200906979909830910522571981252291925488622740774833074736241677601211076628858407911939221040638980105196781998884104139779351848518935785297070323706968961080061723208880946886941694358270706468195283735789630272771142353480377647603680468290244147509897391109065387508863833671669830747200112908206431464859939684046092782729085248294728990690669405283024307624190879619215546023963511522206212908380572619186946258474401170253222188539133010490862639874129760797975820954360749409041550871292798739671987142090066298034376408748962221149342980165007027022349189486713161499684544906491102966888091517596103160306604698759487949510966158591976384099004553287279373372262601028071930998189722867682852741400876375330250016941634860498519916175776057557954404173477041900424860788176779207960099224436602560766301134403595824902517302970459370024088117177052834249371965704974708533617599014544614066153739448557151955031084552450957333000079894933197408810651954935206158814823747537468184377999103999787186402977766317030487190103966462078012514716895920844261438724307884271753463948864672303659162270241843183601536012860902149124648335612651968590422748781548837295532585648355931793423802161259825356876997026227712725808984696781507926193567934233641038763639902632436229635637403476291978746384174091701873552397227787577869022926851238664992042128602568900184737227875966100634090249682365181489711052381152564594789216658621996206212980908030428508894853352791161847618813847155275218275978009452654316196998959724074952963745379741479048617028306993778552291797889179867726957809525602430141348898316650015581592247237038109996907235234762189367068515393962540006018222926503124316427869783347072188669768705431116097633203386103184968214143933176312332101983432728105369776737065621800861434871821568151517969258963824992692102225742027026070612013214654691408449774221223498954778222765958662306206229125674305463933644338321384943247194751955383101716277186111886420389617244518643826614726331702373392870561998246500452970956183887652091429114039370222238554868872257459774068790470904825349844382986239078742370509339211827064288441205662569650705124344687219824631729980509064283122604312215500795206397155798745317090731976864990745054214102681727811161986857941842293735498148537741733822269656260117676249660826999424276360514590341828861224872205892602435655573795616960782062762009815679032753562809259747505659843454024634031169354997226636739499119941906571609455682104937048480738370905353018598352047750645000329557150167820859213848982768500246175446843418129966426700015963992778930802108211046775168606876913344867042892736540469034248512346283157213354314791466884680629500244167582091151271584212260648288424559123991168300568621186002327400663389111317879444771229384733988056077253099599360509041635503775546050788108035931898938547264157311517729390626001791607198307032994797102390208576082620496921557218446051543140167159517327811235040119978257474389133356171518531085521542171754196119745045524160338504867256601039781942526397722862924271029134535966838607748516843094164563959785145262518248294562739551473615304856936520727530910568893410257808308447866928043066192701897382791542763057812661265291427404248844886137495756652019091207108767635847822191655523359445127705636610899670330271431031657316451666491634480533279030077418138692184216866121871743740673798014000522222181608579785247054566971190564713060878524255542226690802546127837601739607344714564892827322119336336304791559779890200897555202522503073605161024123379633153321802999775468736643321718408250510613647834006846630226084217190428312428978300598980266912524944327915964732590653137303112432311572347757970028489231366084808137795532767179367941582715213840583245018407026568618224348139107465291205987131371044085732339811814768494316696205452282774429446602303845140519263038942799509899745947423129178374421206151758705160914458138113800449787390416127884098680638221664074965637186512969591736408726253049014446094848357703103227072831558784592713426682988993085754226082983462217836726391942102535404635182159793013841779281589784353024259258184933816997444809044709557164754459555188560090002147459947897181002896061261707574032829689995346236887397338366886691286412103071166932852582366524490763387159273868201386956216068024230294174097552379189106712586615009237651718866485391645606091993720135174781218724933535999446111896521430870327740375561170762427947134616452298406089432308115033834778150561372036501028223372307118238052416909381284231593332774231510502421259714109316473387723171110063104490228919221097492147688236284466490205227280257388087694187737760704862533168148385473439506944414281599256214638753216674278934171384973249469193885327436772993596194417407836230157951036450357028970388839125889389830931039536599478013236327112992683292679266105957123382764371106449735159364155871173721392349713733645158275095633743103218477354794992976814504840852609717995061607359053102708362168177487041014986323312918062735452849955318834454348500700669858566147100995758716872734692612255766147239972442809246715729217833129305305943972401355441116206125240011208060414006548638197507241308774401454241335471073154683578259295300398752245542207590840383648460555796714525562688240444468609698796239843151893731769333564416691177895709683837482063661632342223138541383642332011019159883296679785801281880679995130279324602802914117911908712548315116221529850717042506164275565088650854492467881462879710147850183243398020435608832917717198188731395957109512518111380063530888656482119828792954665670749240540128205988638299081436968612445468933417344585779197954553753165112408017875416086451899954661658079308703616336018165571358629694178884934624334551837300619275275310536090760699390506135495065629339499653542706275690929082821689309867855602401339534926895609199901614265570568173606829652317350419255719239974834913172285930917408205896348355219097710646745523083895912735943048735046329168350847245878972709630086700283366222350443318357245995031905527719990043655068435595216869117699894964268029788089068878247366391699952407621612929517961881903301310512698387584323746327354402046353934745422838398653849302138809447188450716954103571082527557887730506387233467461063859076614292009937882906183748963446196407346525721200269748757433687644921773756108309070263454857123285857085212164167524995424853310641532127590240696928256651118630435264393691721060879299826004799622250455375479812221961310580631805063468783077090331376114528071943002145810340781702871751315226495591654728382156539012192124016193489956970269918632936968322525688419542208196426360849348115836019459755852803935963629560054470234903903394013801508210880747288855102852741124546312910031631661784434222561807442515694412520090616850151573550122449234962993816367892851870141887677466284037438988212687864201563726280613359582742797081196495223637266454264223620814650115287561944606247754995049340354339003173085157643337539937671518325767424283879459300482224649382551567585524593325458444987599485848756688162673863265225978323449918148968330936759116755328592678072190228514092920668722246026971823670061896268286541602235370085535632153484899736911493569171207405361542069962482240126240706414302486647691238808822447555700941635043650939171233316275697507829869850572703722036551307468717424524142549245453533271654229742811050288675760591442182943869576771954017655310431217834027928356417567825543259609784479463700032212243282271075908556590340749224970388145841687021597625107374125001447357205019951951078568762398193816423919173152741299853747657709195487056342921456616981166524767750796405148559804028758539424055493101560183842151285164997527819011003596829012129226330129981749928023409959960701476994153432891799422556705416091276732082205693870741561678207343560485503812870826942281347952266031766861046625052050099655852182691375667965288630692426143142469475099383453427134708721691517224508427132867952438901686394253534805921431645383745334659014781296262142650129100981492299955633330593907601545258611278410295544037146660177449045702258857424274802912061462472214522322063803912325370375620624651923658296649603801335048124885236609861679497541572953209602330276506313900436784583981519648796786526443657238918436986235428483754814857571045963383074462178201767651919133461405969710855211634523667392454899873076542182590501721134068818272859834074890865841420485043975723759854104500063665467718773209163934894394599358927928311809462952448557087752544749603105086689256757035492526291489782469502411982013122379318175844006640341873639529882061524483444416636165597339665621605738750634796581655518677016915090949497487051623745484230186690967219078953166499174231205920690095689819440518605283003182228939371741578865994544528374968531308857217070851734042191125284148798166377354998897567712040196864039844509467814237438551153417218968597100921009018612689806562403648651003989240520525151184089830034853158650989184133537938898488590849284937637371124133212822011062571612082236319152136895383922028067392917478740689501659878760849011559854937096911248529354881283646183905237619009518108485438148782639949537762844149401996815280141896275405314592350380012835506772018925352878265217965015021209596134928089656645315927461529133174230502057380575792276020470607617742096301532730887516737398894591952018445910139078154153539311707518141780121680926932583265931434784251530704324147014448560184052546329029866109833466412402823889841771104871445800573641824058971787385034795057892399835326959799152927301461890408373137101096117465998354490806236253688705489764466021085382272762354341215765104087916897893568249508078105464963080170751509782785489139465291241239810355281928296081549569621688288548993086481815316316422428537147184533570661535174093007430437433883647009707896838701340198280142587804787386507135281031492010533263525609232784481386554783026305016303251060914348475876136613784936141934968080871966108063245470105863662692411811474764151156057363985532393433828455378846365702458517547451944062203577706090076278615556726651963984314504478210263226616335446054141778905227538645358707292294844289699621755006335458274478100424928074013040681790217933755600280127701084631475212430890784560210326365458135181697620281837360805317112241090141485769652131148928415758771011607889243722706955401825093596709646506455704672883335556462246219203363121602484823084311578867048470935566140547766578239918155825669942018327452815480844073606931661029016630773869667122631696692882273278195448840006370996819855891650780654039537460603623829159323259980051511260343534802934856428779897038511940834762831058145060330397806341284926411282416470630113200899223376635467025827044114343429073355998270156802289811168898905225282469569584868836693462561005643857091467095922316096192975256830196639986607042307642758091894078601345894895412904268246205738592213757736540603708661585580183286916269690474785314048250780229789671038154179731631465295424632246567868215831165995727953414517456038982916833522964582568676424559949235890883485438666008255613442146550698084349042330578133185601180976635983791168171079298579941796288976950278704473527113742343983041971395488900739011280628843270542029228122140678349883554780900510038670456391019400813755215762982658287883072064771097330648625842093473215065524306781172680678395660197715453160845457415850383886439525467606853603163375372202481670392622747735551866764151097930248366906625461016396720783885882545601680648685528772643816447085866784966756870321041801451599888820575694391544491026252453756276347137110758967723217796501960316792119390227637566925234138928156448912883650725682510076619665747258370263112614355289750251367322605701039817957519359429052926657920968722170220528357636815511555574532588518819138053383921022369786380580514865005915372000061046974067879956948193499397894769433880268359167215304016387931596165146109373278679326817434273518409929122866433232126262227115195287903388806542708820091701111889685087237833088250567219689383291310105314159119058887944780747734782564599396483184571561440280590217305373578405650917310870410548518073744433742920387966007286842092001279785350988617869326483235463370372363349539569251047069402410028162625441702311868621599145411506183001493958982729737307769701088068171351766890666706391249677110509981511285937336062801426054348929200282642412248096681437602388512459624324562563144975431644534181880187781042354153186296648729291466084554762778947215037438640092737069624859584692741276987818408198490193560362029217001738422942681700562784789561135902317697319943017133811106721618502819700765990703114425813564547794713026305549995777345113772287207054380552032902631688342601574315265650231721493337625925539255789684768069560800711417093585609885668805251958860086344060208263231383244002565668619768339916775500955922752386024017138826005527216226627719186311235962205721954818378140711218140654218467383537273480095538286178624184210781052170333385767151665979300530987945920259265336885994654866539281696914212680276847684198663113680720103468665810498014461872535526095780299737510321233830905386611020905814167558998782757607023846248775340209174400032990264427138291297196199300390890820365263275023935657534276867945029090746799686154574126675722373654804967539186311846141818553253490763171382064615782352991186404170649630220249798108418666467630142291570670915085209944981556528657356030957495507488651857736927794293790423260890655726149172932067580933126760070680273939685635675157327112374185812039546094548650738942524369927737309800471557410044730866260438887736041378679288479951505199694512766093586317814248366946486684935981252710311438664228697178379951135803698637898595822453618387253733400627354324883805178736973335277486659582466177636352819008332856386003961872690848671194221186108181170853556116484060659178943756795167054560082628738131469870411767976246458798036887973446816155918446356293450653217801580433620268606576394398450056063319573005764730816508938083161471092153979796428318851881054101603944602537880962252955455299455713899120661913019815740372739812088721171199957825272411285497349977337829015277912690401246189219163374348624203262220183823131431850809530843590611470024842384164550812123239520426053271566017597913274332294199291079379207526201145765011076623566173209819285007412501659709692108282305920487137118067415312395251812666830011437070602346285104433503315211196368076404528323616613325608063254183379059484761996360932097136102270529700637727954441798434922886963841654763194884369814940172052265429564901385588488202935894789027719017824034958350547413103153521367322165702249781352780298088459334910325853080329792924523700842639396089348483280431052272329857635516250326677000303046710484279801215522001654493820923233906405551284591851512073637822805419494324709890413894879652390214903866846077859857632044156947070155533866404640366094723858152196164832424348359497085486244418405898076867753194502626830176377411894719679439804968839331588074058732828132225065567274258028292911583937340145079871534180549762901060130839832380819325316194371591021073803552638444878470820267811073752244147607152317207411405926754180263334252653023644092352325130987111474333109142772649204696237563896867202338452809111831222293537814490058241254430692921267562818019950902401864616946240066089682870169236583049217698024471976874650198871246549815098048310426632694727345552904648355860337689183514708146459452869440795484807863258997252683449058230603907678507997647113429875746919425323755091647186752453953339422289348601554145371691003340252227324077754212419978335306035990419138655357767803042127206897201989274043665740836608548591591899731509757349000577324833755323620158245216948044004228544532576281802322566069014827347341491081525823041992338438873217458295319999611162083687612300328948205834121015595856628733389578768816348526928305826856400239182210926268794889388882085281915753794651223187813958216376583493119208530037296162167099285658350696399176690843841595255490408737508980249916903038598729167696889889517858180199513358735648662471197273928562221543040675989083575292777320317253567579112868120400404282368945096649027042788663457449727418562366548125263169826192790014870795744364551421645683749337182161017494267768406694890075715503044401337304236119090519384904700420434394412299585555978997797343127748860254342541674366803277710599926980540942049112683668556274695702243848281902215162106018952177062609253305062231581763349224327238021427793013308714524361633840871498822900877801696730832561540092941336877039664833064343232416545955842682785963765261599568406643618659758122480071586025241052464887456970687111478505098739338329859775595748274030948186836765377098926226060929072886130080479484305431694444315528212981050445019961813753473579242049781436571802669422129203075614239470323239271328479955009327208995310317295655467502347217666223635285438263035137590586453992561093300779560373744597913721624536971787617755157324996157870885272793147761416408775887019903227329500273700334147293757582314721215757441295202031130942360936445303799197079381319024828536474347364304208458471938525090325970868611102833568922590147540614908960481989887825568331919056707352120052155122452673651079933695998927272751405494183208043355559378563724700463351074266702173793851489941478032979105607811421792197980734799421984600421924649465613385616605614138261631831344883717497091564501981233587705697854737444401597300317433102520556686305320857885443481460505259230625823138932709999769491436182495972149304829430042517343537945750112626066457436887554150360531389700259895655059506048352151521873789971905818898810795535182542373551897867229936828820839452007013345592487634904533767275608774590761861794217311506082868203645199674813916316695268426763111169449914642193657379782892188260673804301561350290517305082841125336638374160230170206730193599516598724553118384688531336204552283017127590611040378563167648986004642448264780845498315429944804461243224208849936236388068647610017795045019312935870771028243286129625044416783456048785046151225495677051071134802980790462012592423478146487193850312051831444783830077818394442291483304725379897779291986690671745561924618577086892328680210350679724151036451889190815341182506500937145387942458050927190475642731589028985276791193960431774885340361371540147754554161032726693622708923268383141311120995608917317126044523845799662227649305222713404827546779099185007878037202351448553212726407707649526164647271793221200295876111070795262478330311683198837853848742032345760696806370471931921941948123851443585377085318357919958968693882784723519890919324462635142081329412071760283660933901593511411063877449441335271684038658943586672170820504387347757095463836853463309829591942844334585112653016675060927812811756063858041221731994303226630444483113117640565044813414007509017545128112998028746686035474883567511717077900344699278127574043483742101527112201272367798305817637950226637573138199398551463024492314856906940824926059845747580590348789583978802492437911002708103907977028086152551609716552263637469998400081229448352912241251995131224550974751774108298984255674988572992600217912479768034246411964895951540298262650817084159907796083518973084207915548314210828727320103795952221348738258492105410506152392185626248484183888948485282884035695429432418737495565439775570165101114334731857676774444058034804694985792453904343440635896097149487749625319308040655051884785454381868396059690415607881914746684128315825305028194234485983603627596573224692375041756492991802000751310044141899995069424936675201685476983784352104978910891986399207890090375280093243168166193542591980391700038248602239669972258559920339747153360334916964269103453772806390132017942127395861965117689920521448181252083687626266674161222941850204791131112851966735534274751096192491428094497935787152159958282288743109893934928711130127546017592442998586182741116777705964081036520909416888235716463063714629361243789659002108965830178800787013698760156565846666698739881282448765698171317792148670708463749482751611283558493181062095761254764819697062487452702555927231989380835215732806259207927396003264269461936175169009782001119237898407425184493699583050199853300423567694293293127573532669805530101323532101556146046891242533312187119858741355903687302039638095509229863672764295536593471678348967408686515142517771228690628630036486199115300878675530748447271608479907452811013830530717826203438474292675138429463900221125058095394015814241967707834924828597673069476379290879810736527219512559195375163274627020716482329879453587405998086037644164048565582309376610159845295275563999327338943575167492438148035249941988197507379967759559453557704868529303777538346451504419467765019455109535709855143257220330683223074513513666298134167255057777707149014641671876530851517218808626698627839525321244160915191845431692619759424631766949952131533716028954252045246891339076176863060954763786524347919663241742554216825873203067295472186544169395790360707301678697512335541195315035398069904562935267077231029698057758385379723752628461347800982670755048243563916867271132900766368987821327859471854003328902555220356405740375941472187799088906932192819280184474348472009238369944676948078417620859587011964164527884656959210167153830744869141072793078788725584323625778718762678940852524789420081541513634896676497630992344655199078199019407558209696747514000711032582397982617314217602762561949986670137096075630351494780040134905094095783211250522278689122913428086911760659860668110061256967815060505790081554975069253717296239842844836906994713595586263921902483453514768354742411261706397596090175560961298135970225774019623833033879555063211222907978900529146367366696655259642297850975522330551095573829681276415031864629076912848069884952602419835544964015668973619754273567413153511380440330717204753665496850303835747996836097352754622726517338700879662045933545329701074679271024993621994396188950008979174955039098395340474095170123503137988886101941317968053046836947573093830372792262429506316383757166084465450294005880805084402467324233561006047337000937976984941712872721288784902930705759722990589645745193018339996792596446336849918396741081132346895162578298157741039194923330518670817246211750963536337346169680933883313110252990482988253188303266327629450909433210873107818514236134898484361254846063884747646698429941983852612940431100476966134760349012474181820396585553914437340137718784163192010662187535430793893097275902864465576223278891292008208194725890753466013234412197012098346957721704113942122241518305711316887536360509809420943109380194519801450994441308691025234967620579169220569886376240851534604202195654964624763617746040930883797247436608505212469955537072739666127837205162080370726552154854892167470031714780484114342649850637681412462551927743115980482257999862123311967140316576455092661911019070312149819537175559953368699884939934663616047598839662692970266197535221273197956862526529413859904863610165228929989165316024649415250531995925963250385590251042613569500491391182091562192822770354973221831470520186537828690823796820232693583527116842334420288688446373823310170532996399974928753775207284431994905321875029334889373214688607674081903978532746136735625684099059104123704172071648485678117183340995152636192788320094944154094120645940892252966489685406741599365810399419595163661339342806106451200743505588067381169037419349788107932698210331918478792346979710298137996913905065837713027490628407410271203343498438269532246396739387018585953204899555686189764962026678269978288294986606122250314778652899985717752280570414145949478927763043619806441158818588913665855278004179649561265294608413247299848719764096363775770969013923947036569931182111743818399254244872793069397387619272169333858436177915168093153474035373664458773249382333108119540549891221468414076698772210808926930052706302065626940874793968278715546689221541078784816304188678753963597034145628926502862599875477267043063229650754941575143374623205525938634071144962930758274644643083820609549766033578868377923805768353647656962149145131310731962558772449597428267577247940497313043607525112088640169572327090561193292114866103700068989058952019864529050568236680043675252853696926065085258017990672381622852064038669673115777487333552025544987172390281269005870350182130207846778119385538449098170426198427971944396370607684167217366828382550512588466568103088648480589328790695174089631488150376572657802462652544790132870073745715880987986408758727827986561617329300757484506902397970895075909672619782909985413432848200553400987458426680075602744963972006306590912484503114221401980142945727747098389498394391251905906412259820698911521923083795995683008601967868996867161105549402879747324401739866010160073223142807609650882650247409174583128228454452778576303398550405988842424274938914768874175313899864642020271873052507195278469768632659541819697071323843882871689433518988654511847763785543871459488478657126561517184677644605598855042374216693715645329416293686507558124281002236802529310415623762363214376118954375909514837467781400081688741913889703238450004933812015288018675843243451920953529944759417745186213039275594470922669434108233584187316957399837921172284875647953540626217687600541137309292812644280795780070414402692836096365086433096032649780415955064068307005025821107516583042250456554434284819671208954456549054392877038431033444344096718036419094039545467539575208179461153131368157040665324673625083476498978496964579629945603071833101697553151769241149984283867841654548210279693460195107468970313866711606295639006776098200455204382135472953830639492222733338089537273783369273220113289364653705898131427726833046148032219852402498221707256246990879284443251516794249830514002768218510497105179459325155308837488341606480928396753463535307166738132443525682966056952130824425963437249780591364644519282718450423890512499220036708127603463790387112640838755581757481939013390272990952769701054475918540073636294388079838125618680142262109830038423104776651413116453777136624597384131999214359179695980490578864836885792371055437217490155753555683251036343580493585075284073634027187924469437810652479587959922715790426893328755070235428913664820115294871949333550126701442820452476108039749565960017783352871976099824209268683735431236095648019146814437387217949385438850755256300460457051559289433878308991749827073895018630264942141423953100330834511265796992812015973513190237421142497302092538065373792653011161333590553177983736228274094920264173248191840122258790101097178758143768642317559958631993276358235314772746547938228595083504047370720769978458220837928685795274414484181939988257467682351665639099428422187742196412442017423643769605979789974183494227924493018642042947729019937711145252092205937322539283771590062435575832884927061465230319594810989440884780453013035872577762196293236033893348954973707369812518001610827404771043272193980168407923299714854532036780806637755879690770169256409659382682598099736459879206125059082788107413165555029426843263418213564345436838804378603122992917343381538887838566260523569072394988967029344079415411984523171324706144399842680136972155934459147179745235050093718639059024181695775642327979048071756432417654030013009620626697762183068039668983778720653651457502843549787743931437373541327546990645192944975703394600729987838909016514159052726453302066922156557912446868165863156777837045179064125880418857233403175635683987878153884351674453355774297822570419935752275213146028941048534618977859606644974944447626002697951362979764104240944916303627164017837594837508866648057842044909451716543408956724635654328517757120699752406159390111948583310180019620626957624451178820792626079096089250933081811678019774800418202510044331305646976053441731036286576259789096789524859397833727484622597077490305103649570609390460325633461818638713175532596704521494457016364024689566654729002294081585120161071908778799852860117345263158237853179393860198620534892866208683678299905676592007578535806005396191091635843203167793447434406489618604838162683847131288125244676546270674805374825823766855683935885041137745573519276297765780592911733754485978876063456711541285830535739476266183912466831796074802034943193483700392635087689357952479540878254222010031788132513315614185962936269988917766141409042417388346820225930504840320436113978209582012852289527204475811501337154259191106471800513814317162422659518721745810355127870219337490290924390692973061646353170982302312139054146584509633665137123067453773806778421352419743043621643344729959969515808453200728902879536855294384918691725277179249332428768225543363306573213796193521577677268323368720355553824517330654928595176446494848947474425185335220565460359777153811391848653884949677112750914991600183544702004645125252115432244361463883086967472030239422807051883301776079700065576860825469667061539194754107248945549127755681459750938145096912839996294693026014317854981321401669890945661465383767916462134339636540935611774622714380279727068045022489979019106218924587731701686838612396091136467070103697616515185176697366227994164593871670510686177207679292944923690913226398341484748367948591863888679216128132060241846487440748001218732549436802187701360116725934161029489416839917501497302276590026798614963716666713341323877572656676917905753881603473431132786920855348158367482527976571248384357392022004624278539374285735451256770896953708796965249792231647765010556322358088613121349904969228951179270607098406059317698497390231534065982825507026666249255410874986451379994559665788836545608147862570455174261041695163766098228024707285313677078774419636154226031385919725992832170714435061177848270534670724025175465866280332024378994172213739429330287069299988752792591894244669681406590488530242075320686062129055267278307423170774597538869507553214785350088821432379903305717518126752930825589228627954968117015171596200585964412903686403472473494513900271771860024492277818922742775104940670771692555087697908249403944712069928483682727381717039270644397391794838765757707227300787502938323223720001113531477814265894096491168623633776500723828531132959315029188680810310453958914594436731072171803268369585218324575127395853004554303710251527734730432681045324824182669677669676241889297311068365330994782739230268750820601686738805026685591789877043774123658817964460554949887041936927140733861676185091787379008670433850051830145344704779888219368969753680898119119386169198283632920749995916945323838919244348729271859869733896712804056627268665870797230774579428284135635028739160964707985149683117776969404608851904801102631245468614597011817722464572561482429551235781250163574629815127656580939336313732511039759789483843651053922344415510075494945920278364629689843065921015500232735933168576544935349736315277549736572369710840333917993547427007570474425480221818370631873722104292464886991982039010879871674584370943397189370730131869090178627956153780252741723000521001420081283966687157879211123478960196747922691327297237642635086421016293049466254107883061825108462143135072162264056427441020237803610787121389499402565052104609139032659341289673721929331474018864491126801040064461094218172437852576553649917564122087830219474539984126364503610545052476962603971130512912051433135546683969414636393678593864136996164768185415174433075848528418277734506731310674311716988710729574280842133038781232646676715943492796544019795643625598505322332100086306205985048953256643836028584934972994898931293497271368809936085004337440215193572958230168193094826026953070616769725903352118355360971187210883215547478201864957774094966816704995920012519021764103483139985018664303357246400634109108357195307326833455387387706207263703146666678757626524416874408519480445271560005746945700165381739796672821499192715900332035198598160713357127337085318387242621369154032086705763426606657951856632823811495136273972791192027474644440128397919406677738163441951100617536218542949386159751624658918439330710013076381846163780730109357753142471342051974594789167456383418951609502969604924062829884576543707007257118842253530338049733208757946237560352891839285660899901737925728925830963303365190748082536284568953061307439817511671264170761373743522955795704110109760789529071182066053551037298027987583896326394087287437608702879117250076439297671457720432885490285930929361038493003443057777401115918826853825480462811302800344819703181530170805541491103181946600170093459207749118978060337905734407312369896110907289533257297182544244182088822432154177425418170230985053630359068435604769564220456652933998534103523029260011715087756294824980979323352801564559987910589309809994997637991141278982413265854361685607063239261725251678587819355853284182598882390285830373733666028994480603582496880744860676354838591376907372922883277826375998810090321415191681930089028538640693085001659253414647605169153189196840149415170147775364150451613840578680692636307900440187225247794195403012468029615386945144652035986241252623656850065296005568714234753820257567161356773924401922146920450717961008565684609796577440367049036749060307954491381820432160758876625041755034411778258106642314130989933433893878697817786910125232824021503122363942620883249206227888420605331214754248119421366033782543456453351142162227336883601987973623230019345185672137916749397054441348498731832628347428715539560670415776697240734216643999421579420799735581498857693242784811496087912188257513225288805437474353346131850203929412425941339839295885047393513271630373441812047115873649325431539840294583568118051541830491309527893000195227353237043267040725630275058150026266257184980525541763235299213462284901082184101728405114019778555244570521543597521225817931302133835614726082692852655714546256716488061425383347306945156269148281190571822182805904380329458453374702724757108641652262484225870888247233580085010372178618096226217315004529611088434744179713521372391422786992312135935259554644013389378775330681320860600448749624601876746207296392459424783577695353020889350113077772802450011462763678677576289190261869925206408462351352802888370404787546964375307375298269580779674798915388856741428613320153538124746092342171618883169110595828546203574327759221970843343505378604321372646965282857830267755765409335459476351819065730069423049161916293436065815856486683221990769425868574651172968606538321171047992970449984610103432741909313825772210497405027174821212420450956967999238956495041282100394124303645751660160099167982335265122208314343699222844395382002100511627941351529629655618667226176741296826471625909662899799295189293123360643944377284168956233877909109872464012219590622990997058208361969963744790017208331828934246330838438328644326473018246538342316826535320563245937573032516164510387623773247601689240773679174591157936669490145719813031001243774058411554380921830685171361507691305573158324729065536308087494210601257095882155644246928213332424774413216900208175457241925635003128126238972902527974470954459492491386652923114355972806053393796074665197715802711984637212909492884537152503237621657385847847883831281273977597644010116142774749381548613616003578804037901395606986924570913972612743826726682989706643344537826158021306101174303168098037340674531271980532137619897056390857111505738957603013884771574424326715062805521602279219259376429403842157481295861625587560980002188273279247558809201126361434474203523100142432663246992954880543577899458163242091050572568849661690380565126877994993950661554402899550563584767443223028841523670752723278902067362150754078364051812494874758770149677372298950865337945670129898998570813037108482178736328202490800366829596155423567254643874910924897084505426989327788600832310829327772134644773081123112233858277445120712451262167562452604413286230327164003086139905601030977285123054284855877227118626675321635496350139487355271847689102350460206687932514840738100836225464359734916012081096823485403592343740112052403251478427304797774879482128071182342499238081242100788310754258200298385666703642552466433897210374713312084493163386007808342853179437746351265055873969301736610748177303073569631321013636478500080081963031675171103665355598931243097521401772855828248887382603614550479953149308610598750148915995289202372048100281910340611440540504988635256575290415058662818168772222435065961259996010495714259785708000408075199684599029721425686507785677468413582126584596642837508649342010524273166454788387548509350886362135403747409913932883295986080502852452460855894002236788910153629507029153458822164583725342851324325129718060740309967611768591437388634323130177666880052613136027653851740563650225782839329066169853418203236213670115583025696996535225621607771176573071016950356942061138633180886301963854138283473356423351668488652288098224276743334606808630711698919121956018446322743428143408656369238442165274262861788723029052289819881270582920525996439382549226325946699808196573584711026552694084543524466899056336507121010370145942621764974287964080560101584075018180385346810559711087423608206628204723474086482864655607125863890044461925720988120141182712788236679835423467655037896055546212230720781942061820955095993719737476347489089792093896775739601281174805410940923292778981903406727337183495205129637101012277784224286311024607629270835312635869174214208333820977113771351499264322194096751811130344419371507694532145181250947632720601615083586725838679200204647944387566435316648139562653365270779354930431281393724359070023258228656129531939060797176927621922202192693851487090974648926390743860712596281645882192135586412435428104809639764386550301378842630116094208403412437133424465348926613029380310075503636969126284893006537084870015998886540280728577646332855650575564124948918800532939137424871595221802727549036536893624153669347958860526122242621751038891899949763860765513894281783247016315409786059804500271963737761705354288792782762552851719984215896956044265189060159210987989582631404609893289931358479938601032587960338858824925956485839145429930339419722305189145482078986200510467009429925814682330367138283470753876537652939551099162057296212663254489185098465262714647964963415776041616964687733184691686056196217419475390911439012621207263231498053399987647452944369568560310773653120520159247375821611920579510707465265489149063620675888191832187187342562591352414067816906677285905146416504265489694878991677147055734439535936586328611622137844221594970156635378949178692644987458923335619590761927064112207849198044623389929805404114754456983512068827111777189632140261470804623253335948153696381047378613944155141097060815621809961895220114107853304822289385486194820692886302313618648163969235508155769917186721595015555936334391843732828917168525401953320538933454982930633727838115302674800795841327318489301449906584841493905148159877493886464711371090837989764498543661759804094791502696725913145553400915016158669693715903832949478199776003942129313198199070560933782508418957906182525792890074324755108312722454585745007481903618036104184578699758465534448320112587834454088025750211565716760811926044739914391435664232451467264626751277085126541659371307036266293979494692612170992041805618531420007206404370779530017696836064912591235801258617842309067404486004974322789109381954790768407679455137628717757230407407079731624450740134308806373528841734993143843276864756832996151192069245924927688567903905934511960226794957207406058364425227119001262848142795709956662298033037193524037422273642875547584231477740744439046086318315482016782173848491793921227354490590349512196535740959793430457904074468186939034916319964947156037338499628924237665947487517730601852246541115415704962625124887288056248611812801470387682608813275805503903333157817914899732442220338323542854692206726089049274601555860366681268058167786546830547432464988158972621929649979861242447284278734361514661254731246352138104253885309331277367815806865397933128281814128791421747432939576804499254690154741268787443235726820164424472611172810866621784692664222834289623573355384823281617936708290917164703565074317943677584736375608706365394632065236118774553235005041832023404148766986406170153827485645154838820404342809047326466419463579951145506999964518121928708318778246577046356374398714484808776394611014469935351848458109582854640432847255666543866897897806165388665302737843335986084115670324011908544591266684625494431627396512293115976126480202335050091662835465816770111889219617357685624192959152492762233163104820606620760142336147487401510020435720067665363931882027589999280165049289295617262796575543913560652531812078745751489883658395887039413676387296185784846141425732023346767769632585912048873412366167642564789439001862604253201911058123810911038592698136779369135670435274061407765328935047944947860595142776525724585099556457470033007046967374338843646814538457013451997719238971408571915969681817006551105091971539308973710758489424528017235160456610462578523888285128250287869064190046238118675026353930385123763174675628609958082008640298165855811096222385706322895951744548787767427195415280165591341917367454897274112059059727610975928317443383295877912125450485401124993935077748137675778518289469262753710414062712106106410344637615467998192159321876670444211237773788676602722428386886372171638428383698594924205413772561588349499985195836389532459607879337720018291517127636046786911655366375972590547383812621177202027728079985910131199749345120049856952637982463968166158381454800786058809754149786630324743963622678287150519467413253637114909373829137455636422137553270580450674234000219213116147476648337093965532382784710101762943658703636541595962673152535339627194412101225199964183102003295319477563138273136067607950078775407553714485823954500554680149280438441169190782207712670625521561483016716919769626913272624079743314222157779023604197147407885293930459008810931411059660905940736682935597969902392336973174032450973785892178833310333631100953370927076882616603045308501221807306522487153818392626817100672511133883321646964772607092648539056949918632882177341983958294066604862259588600116845728942668396033588159385579782287916835847322814903397554664558929490443643235232955407710762989462908044615030015817146411705307673022341565239500494987480249282615264936541620252742649915853848326404503718272706478269832392453030107628706641492448416035052902372158868883368662528710683351784724967855538506408724585023598100815595168480171933715708481178315546769482181901697990394489124874889017807724180537331489875511643576887133165456002016381242906224029464414197057367116335381739972577689965248522672073710313210372452265820214409975756593105871023447695840373295303179993441367430154468759663305029824152329932525799919705114753534255067107730056698610899911598325535824051806202055664037712545766874745791879010855464692778785159838321701234830246368146723707629877109733848767426379708898078504804985431268662140408990153543559246606027418255228559989257146054610869502691226409245297076575450239659988574208370281631201027934610307852354951414726266570295932929644458735736160011636904635989640435944376088127511668443292792499783552646700341542584138456283038970399380487407166860142620296180654131271912198398730217557744318599764135882336789112674503426261276655517863665922528977835092658256583557588488363980718828909102787694469521264645059819630949550152172799165346519125190048487162764326944398311320100139666082614013796503760284028266365658394228529526292502183158269203267431177026828512058020065416227119565535301315178356174545062124078397298080589117837289934640684619792583238882787969200884499759362752537388384576670970691004592788961343896211376388613583075224117985311659844079673862147482672905820202477300171478250496696005072512327555838473385947310536226416792856650864811647967993829446721366982080626795448436127508413035950760756630815374087090184589679154132829770738998605879942582449694235299268322116783946908041017055843935993755609086155931906613561202141062866305626972340547632773706944520299945495024194413282327808043009574547249359254237346477189843507774890357734111426493648466201564616108605514398880481760985421098849796865509315671523929803759168328000156928620144320799831365891321401663114911117374655193334898065969190788385166803535365416909981101100779352146116803866181768510717846518742963737983143973056820566456154109077695874806305814816625269497835886777795147235702413729370984185618795214348578660767106801342082382406599317777009779562647319484095274597186902118878505524040507378820021257403606574559761972665932607023483269030315863818616843862894062833497781116753085037226256685843286705982641248593524438729615601250525438632315872612150938298975172402736506294067682625186872469202357310742709950100743314631942207925793697307850599151120645291817375670261726118928193462404105856189456898026744842280513428194067171469225180936317782354497822304587360381681547834685874286744945373019716803083642303676231075274467403743686351569163838507362478681142061098674792511055200142469923334811162631788727669683967792889539372365919133375117685989588673544284645400716109235318890387670826674795593978679987694606670212561078071779942192447904949990664499451090096864746537856162318330539627476120310341217283267262605760348427750405994967071305557748633439419733082480799458339560717888774932956240732357303873890905724081646689575295716742325599038896986992502037746836393931034075722571510756912771460969162870972575603759850210834221896238386240791637742951719768525531014778672891083949603748691116202981426865112252458375851115854135862508240599087823121749983573867963724692447818440723140360994762850407779245765314847710107756410190970468448251551211435908796024612224092721665414429186733586524663071812290546823745684009518950614547626500092177838528804176064957145305078792305022700976789657502401340572491431896852832972377159754759546586255720856245549330412800997221388389205010667288387567148192717549474937900251979826705452786660729424389425536982351950121155597814633740545516784389596631117459903717664436147187371719994226625606871330832133185328012937320842771436420432214808400465416833523439849590909520429920716052238437136479170719166517296392942866196924573399614333802666197352787507456476063823899672364180799155298188546119140566132373865973878757229964771261333610323144424099341192808686157529248882168372970828762675183947434390387298646056575750629463203124107458237639187733987457485386107390638315413835878964126738217963437065948888557392442172647870909073228791194377618286123528240679032829845906990069384851404364453907354994695432975746489854774262447464170340294247331013604174238604479382747717781167009335021408236237301952926099030310316209991058382859138693666350091984042813352187345688205175863154450732237618649074332012793230654354105410265481459258785656427916217356238685536070135755921518828347288842685930618648307674961975431505333954365151750420597703053742373175737523211267631320748236077088159103238044793918184261175373588352986170237912481167799909294711585556890933379823672391103963340240744133010283509238800923984565605086078176051129013058309210195201381289569397454606215059289928919351943893999392773772655190741856544409183596874043009187395229288743192797386168784834089146135191803493241693204365228684153922446652998099058685216511615387298936787785007626045912462010300723213342763868371485774446292744499807762387858161799256752437790579424397162982073358070676307840117426416454053736915927785816604423499373615533360966424784649534358785683452764850987316765542258296149650405390849569246257759871967659465480121975616476943344873733213568869167629337796806360502761071216662944070334579845646277608941841610182949578033123405169135185951495219480857349537114376740823792276741930851732982940595057323867415984521046628460347065360400785776327077077457589165819287356003209884082156706778675093542944998602144704841915833994734184178415271534456703000131605168895647533756418714655702495613982662367299043223321385769501340360113478067276791800346999760540799348920628085698874747678883463569548755949871845518231869510333467370979223826058452680579171573928309324272103962066422337520997594842669094932799088207339925463446073009396783716059960106277059206613786760176018126134129943747937191047933851250759323561137055406168267671689940762346591148841246278175454171120243696452319770658343381100010548257090408197419453852822470228580237671489978546207389815244137332037464882704239102866265204900412148824468634441015156412987067067572631856766193828790103552180276168520283173138624151239227920744652603096702016443366113630765865896142865598597919439934025572664294949790091896203135026915429108392975251042779269383542801811396320015001938911635749496144793586019979059326958658473019648280898566733240577346135766103123912559347855271139302257659038201838974096616892072746696906672136549636047350642924475627245446451846957225196550382496758340388467393410007437858153122008749435431008581743364838009687731200590419713486845041473944273483060251949702870848510771116689814689134358893087847514165654178998457637184995931401056852610911138302412589012866733559624070800553126253773591945793972378670846546648464006268452172918733176846071988536519273581782426561520314991895157168807954218047374088259153052412449568055278278617243127009620420744539362567579941989765012975516705592505876306645785212841058114712743041188741173433708057422960944710117060876015806767848736372520258772727558843296701823304338245106633581364646291942174039121191844457170222458203914411091398274094960571894992921749476106625849438185697128984921630998636808985532296225037521100157455429106061105283919391551938730406625818255387460585626797112508586846880995823011835192628866005710015677930567510238963985145138965304068862435466986384412454252405809281297645656677856416257414922862435719739290193350054401086539016388717146175204434162777436271759407394737802231291594985422469461324964083886966376171344222873663644771464056027413181661139081892646628502442772318205902625406603870298680799601958734511083923787503161313989991316822553054357928355115742012738065162094995067697552231774675035198745647959616874072762892998625307131509784307746746752095464677452833782181553169779327726101580650519063198384253440934240659341070972612890804111142468048540153187984546856264061594182224771926337181682264114664678526102573743106562342698563053330059537018888666287108096860877638623453550800184503750649735679756451781345640633309923356006518555428046201650980123813362681340078056005448351542647032123399603942560142173986240496767096018599239524294577323377732474764594331755645749219339211984619513724497737022968147546414579339517923829149187966163247951655101896385241388394093647787216802573645977215730972900454215926377281571628988593130400337648934771028110600149231821659185891621761324753754240170767214493108258546451455382040946800864424176293574585121959283353163668958973393979970578613285529382992830044185183919224924281696742897997622910485581019024408770524645252213506746679853483437472314509369814205658906228423428997846788946374380375498980121892088874056998818407881187002821494170263590726354958736528410526794425678671119929194194127999397368443871138239694863959701883799340902424963795044272653570056325360076576004762610042159545144276977341143870080941828421076971819646607970788070424860818217407094624845052132325612745523414756557695056436293734038727371706877154582633576039544304373493685132359151089938995436608716373723239909025965663341466235994334253481342743697284327730918134223421575549973067862753226469543474451666852218455608591227377281917500928030820774767040136924743588947706314872458329604439593452541402402001034959623620292877361773212713791385789995951388992353141620220962876704188829439832812399979230721868827258020348069953612244388085547362824504745544898567931520952472019069759336583048096580586459515524858787490573954043015470167939535388323588743356368224213669238376298131723040709493859896531078950667940045451239727065951757396597411010704202616897861967397136609566137858996223514690740431128107910473628850513155415452575391240068785765195947863942555881788507708809018071369260494257544269921858623775951045853493717181866362692059541389725027380831908105960323728315812937245518726895067444243049482559014860049573676232878277170582788656071954869277737499271950680733543363253223150927735023615766009769016378543715172672249422928888051462529668148950926792960456498819716744105311624778270696149784218209013423845788521973139395767309893232908555324343818583725446264999405990985769199529147251343977034530627737856130765303756739060567419869072523146560467019555493705049711231652038489172989113549030611504108427861544236395031311804119605693810126029367489887799245445058322820833649782704335718292113790956062981153869225944562640563483525153549611245831109093590329680448414484794034826222525031883462119328374098502146837475720241108908353085061732747358116644358316524692016961863263249731941422621938831278341589635645643589474242406167753457187909836587907814902836133558136320089604755612719248568997023965858346863365543519048226481056500436587703807027351739924339583503199163385468674802041478043512343121617607442366292208066206427840739916573494257117995477744648982833015497395202417926703085652579382202953437433585083528180376080501960903581652049260047418295442879630934581327024666266542466880698034171824188798297559384350098113907596029895851432676489922160501728208224751978332919010623968140737654672118306600624369239848941482869254587075964838999915173902341711449612662364740724575833671230986472901141892944634034305232693258896655721896160892951120762885694651611009269104768713948816850046150135985943610224234000675923217452509818662702248520450826137018056183608810991325217740335481327736535388704341614924887337134083750201964486212844871969766164578407114650869928869459636056341378859571951368595882579413500079004664763310482314763453407093674799811378446864932807409483297057613946797059874518053351629201017812427409149913518531517402324548891049135205655562164746632146332397822241682090041253982614384070344246550633659825944296094279530812036295075375039355194500968569367019676440334005507657702425490678670523317917517340254603487675847188874326172451754859619052081802641745745512439780018590713657882565633997318725668028804605554059798591808122216328988353672163231943498251385013992002747799150817453684461685391531112520845639098953023194199011514341037812694116143364335035334705103364708423289287111747721343358079614163496786970843726480460601587528989736532879411111650363635321682120591907227172685491076251801612083294772328341292956056873181602845072859871309598382514828505080919173672585687079045696041475414629807821550467116737790354383632691283493920294963985916628268089572337124596412008797349271500039970293377825486606553237861357391104973931757055532212673186971129847469580124712395485078400120610651744150592213310675056515356410768934791731098031548635615452988000827042648816064711045726051992530566187445725730066304385001557037672089874466645215440863412535953192342879706602667376500423620758256607104876860555931978540542425240381643481120878823921201452165794898557974719298721909564385690166936112029542834685423439567355765596241570727245182755707519134678483296728348020350127024263092822076084867595853750479997624989822051425631227869948728682708656707895640375068989841248219050990336944856284016109644375423508508524928534773131877743400333154815591941003255085494101702257527410576805963186251825247177231219949131747000932741627149235912949194166275258341411372416650836748330450569807288093507505109359224142527966024581843190329677204538510559386384862034857926907161491671863109385494646181634472909080400574469380968832368312293828766045364103715546586601437852318457899692355993986950421106927613201722630273086926734287544852042067113689019597360754614157014241144408432069506712992366044385496548037434866089412272202728887087240704157144512713997317937192047298762562832177998979419125623553634425398546350222141969854414251717767003204406206260150264508676853263673367965765595829122412213561721474845247263045663438711050832661038140558714344855762558307398300201556088767165677047948441883196000138430307898263959018117489915172655788102327321885245210667535649953376286548880887039831464826877164601950098892053323941640898741095044511441068326398380926920684149963519304190374630140360525424338547959897963308314718124314640523091367953880734725227035933078606640971113524636859839001074690237200996236743003023290182155370277964250170925681976483914949267435891686193760891642764214397310961405688979639741653068411713243564139687598706240198418454570181573775042680898048796953664022241645193300143453763358611671924525918930182188026277599536993234782673726048932997117503487553493822507804596865951228545950487054435649597878794442257326147762657131864707214552016041673025546339272803685780645987437591948120534273846555689072600193828012243170245246217870093399110829885743435992510477656702416287225484006291885747506168131236480056359070978834598645872276733670253853166961393647906773654445811357624542842109531893324040432813741393104454046696666771066376516140525420783329095785076959548625125038236391340258456910689795201557121278852958953466671360843727358094949830961243055329624805576250047647350730585715418313969550673608656980466270138956601941000574524024162175534967758973996800136267805586744010769522664131726076322142750341024590957739972234299156732438162768726877778495600881490551858294792014957447595879728886213050794195740160166963097380100125764734422535808058708795865057981617847575610018924427796430345458120408354468625772999283572576187344374497625341748019171240259028452839640329303728253237184455945290162219243671405380213104711302177275700983671295444073780322037806323530683345686154816811538242751894591406576722328951362673053114966485838997370793490131297529566282229478082351341399551709850731407275803400410991282362609937223202354786442179402771288657524733172331892654331063975057026271288906170571856306592831832159074555011941407233921307852050605607751374535778970988876138846018717967758578793717848156699939690874996782330086427400240394341602880198225740635076115119299751495937674871455804330088807051837907035196007744759392493148045167439062265057131281579195466857044380572619447352376008465880074971334232271842484015898930321919931640712545443974484406831907517937573762180861357858364709895715683772148721950713714125094805385045728163421319265514032044030500152161160790852070072944375724974879479923191850441218535763478116876728229155295520480828969305189888364858018919748897069663871256454280495401232595539412616337812440496518279321361633739948637781097053492089791020989924667548087960384751222176212817047087849987938567954540078055020389999844509434799610268656310025910866587294191888816085657655727982400382829097614141676923609771290830112547643242730876329270389054339667341703534281795655778619885712172470678556073228083101652271931514157403836624161617105247172086263286749016082964649162022050921844133040333150655513693858744344404567585940775289282830595269016149396331951213277886782060185450054923035947725798807991457191301379389589363980987789712846536451911391265649544343841721844839190993849436896454239952685893196261714500016778966366799508235271943979683778984060930385776424119842482818468002879073888055755969806097973875727387066276514834880283760357121187657409097508851044156518870075453691268135485746192310462819990710006302439680822847834921115918972345062397860893409591056925451324699239382138668378177751114255075251086198860284780250503668060860218095506668211517235122164518269921738836572887125083514888918704368525499937669739111499482068676538722422289212911312426541960662085911990257809484976269131633908573643804356995009408617903995432250642262440587899084362262716746008682780742224078986710971679594695535457988391995839541836197247439716392157009593031183457492637714998023991066162776016405800445859349797952263837441748879643994014392934676299491170217576821026384939374846319665292836642578011297934022327612629236947369530683895770612224779870059985792707324409805389119210530151559553135601045458047609690907948266502144604687096112749812169556348505490191145958297786138712057117187163199707482515069223178762395740100262010069698497845730558885938828447632823219515319143171114920104421239077245368244559126376221913051784966733172639318783960735815057204110605982505462017535790390077772990040703418911768667672424514208883306319571886776906410925332798989646440998441491649051606217919900853141945223885357547792696597415250844274734102157037530105486085339151552994930227855610433941850741601818811912487193984813857806529002731142044328922286742582692151899896790237351991107552637131627812962015447623999234424162509225209003656635838332442353927765875887740618745627108252916844877592771797354447831274063702671230230069976130670202070977546290844057489120911976027505650416366870637320969226247244790196806721864156719385273174819928151025123221261014117063430555860680717503846419658914718352916435345224105076899581649319890664277578583614295046953868964629137093030688742085959621227846670381844433973107182279436839796432507207873050230022043043240999040004691507842926262119926950154753619585988034358600970271019931340434974526790214140118801147240099200075417892522160313545246669495201883843610449032885594815305956140922581791623695653072261785691426589477685046786657821806663488494257638733650038789133349818665718552307407803815172091909778124059860019161910845749594486644578702834102090550714300245697551062010928795615942490724016333167312986085514432295907055474064862294210517047288661600605952229314611768016568641073841763758890119846023841383483942749488896015983770417880885518056577965986053817258376877882862082074480113878288485933226539051037431220654529694935983705877210749924897298084680352806940906792395128337868010613684798560878680383235171634030321644944374915149496468347926100705615742344937247762184920740810173373018805001457992374573600968378563632859959930455130626241825477846384777008107083148015596018978277176232709070301676573806692554193049263545194527797813719310054671731199556928389115266896635214762818877945457208238814115048592621388613127323332259793277772308808228659906379285958919728340630305102225064484759430738808532650570132919412309206011572992778014458593870021938815860944757656184382157501673053144336285813258702463743639147754090988980203949170703884521988249841517515495541872940692586985838809458765397434569881158034640811942205246231826230118072203554877620370713921233499466883716085011028784435762702759222464648916651837800453507638506492028213405713870162533746830102718844109251093221325352797809596199190639082792221515809447655202578502502197744301526632278596180725455598614075606918686560656049305452370707185887594544113921270972393522690813601849420447360363060120464399999934694993186396484221642643624027897978564146642153750139398840966804189596141814440234284164693004160728193112779346428350765110189149907325042053479207477381646636955555312339143961477756236515010618168718297721773465669654394300966953151114225593384950379383352981771772605461598771615144126553516355224569584121789273651344932604910112410917310289709162265204091972409689179111333858499545714704819062802874047527647966788691717472880656166872745211820470499415362606774463003338856619297284129873441295064547973428443328383310194964781996480124116405358632679091021515625687223005264349241124417221717204800963984468766286886930137669012549845686155980292764530738859731658121357227046056819338177569717774432432305245338507545024197592178278479287506609577509342544038344161304479041071136404824407665100907544960297104740846950487098134540588621364981650570911897933170199634973234423803809501611794230689080965449842235251217029498412414670768835189009699396347849699240821653259818889519185982685331923631065266822883680492483453528513676707911617448027660317144377482660782084615425064845423696083244910313108058002184983564902792275270458951816627061422201754646682111372566379663955629877764994140813219075693260592009426779160218856821293573908847797523258919685606731911314501064945602018941463610372400690009976658815091406321722912106060843239255107744525106544107091588741565082499034469489341358154404408423632815751408506696808126509859814112003675933485923387518597353572576886999056401335063938413063927241493862184513423092599302442185719581128122113976604050696813764799930102287981543886342643469580419467306624111251543995345642070337037231829264994004964280692801004706340197849818970443517891775455209629754339726858639784660944795580333494643449887884501208041687423159324342007939058913596700806456293757164579317515981880033346784917014929371179932383149815300115941088050658103705271381759744234880164221816810762220934197718020436773469190881263564881191238827369266014115537072151605703450022762909564183371805989972013248509340119670732502657241313893389492685236395028439498917299643648686635264696453335256085631365452405076984935166481584093960526314554306029283502933378775687478179040507960581188310806144470289600589309570798829782129233468397518287156425076934925763378066478989667094255049180519881226542727722431602986757773455946904214961096608364026686843054565080986334760272640993723014307585819624609744341720508558373702572730841953128311009918495298437329255814731664785377840794825190660024635319231163040111113863137041970734296463510927708055190360669360341405304758187582894223679279747563124705070975845344645500593627269994226968397084442328344658213279389097595179707618248775053457305813696898015511625092515894877714471374226697946002856019569149171493509328345328032521959855014798247835968053731989583696952617206450412596327211526794083300188749551766684326195930339949448795784431514346582431093528829739190760545947275216609248863394235334443451831190757624486035325134588517068907572652866488374178148833270389718120673452954560882716185086394308985346521078202605389942144353963295900297080479923977739361354721249511854556902835303546983136678632360552527884584611525171213975950467860318761395163585994047753165608611893902458339868058907200362364689307398067752414385872180695970825663794032977815299955904814072553297382371266144124397159242602847389762850735127401493079573803234260792433938133381167298788046901605728927082312575961248665927422741675367370129206385438199175100369265364344634053584702630645900960099739341699216139453296060491486639490223621283701127643269098706564453030078310421988187344262744150424611724074597958184135655878618323368415532699542049499721724482787669398113298513710467092634753898305527040512133576161561162816561747225867368466001872708615111024109640371154849016102110920081703514230070791818740170260263094993331335994115169458354678292309901427208357237202034689297452837580784699901307580415492835444202465669437844451633848866932479889067751085075293044768700548612974338289847486772813795111081090258266847441799706324318087817506639043010218004421976228968177858450740843608539856296217234445579129639153565818706953832726300805211226483936132209312439707984531246896586238770603123852367200021565884954415759644564485924852689957561895759041276255121404355691956402057832821182881922345582021802071212249177214654712866672300125472159493133241205188293558461782175403377534107329547095751136323535623039888442242278890932160958488513495263507445374566446753233884180531414598513152151322204809605657351274749514812135480982426901611572985878031986320878837924511992552380094497988703507422428618044556278616383612064547232026293871595190287825437311332651601190072843818754175716142192512273416071970449380978479525078638984980378512806232069139568970848276106536780071033207123834505804322148072295755377600932702552012149468734918073364828524620485842828761483282837018442136867756771942802593811001995668635823090965388752960201390943509051485294964139842821909475646096265623825918020710686119958357675097824663244202723152199227561252223058474405708110890527231301120838716531708589151023072577680215909298275169245919281131990171188934588398248601307457964518496741890161104913467247241164078005971502397973189328167203707715693835122548898776377004110630165921154232104913103269083258352596924524920074531116733228040244508497051041539059439100238285416569567937578739862025597734075184590892314435756632996448213318194858033695977614036441377667421773600601815319188439042467530797874393774024903473940609453199844030142284640050946228190107518527672848534632897190269733010191631989309498150542889356848771710595880453760994956332711855490880873946678772140825156324245606498665798434739894484701933304397461703048386053771205269413616069670224697308405334572042806916683937997120317632547898054434939384398501759884746055259983887068739301060740406478868216296252438338352983045730721582260281812040272763952937249980980339742768628656287583678680910851765600685718569933310746032896047355839750118787561365382505553892537546332835639435325813901434433739228546992289657966863670365478818678657835752498104427194628937828824084803383780751034978515133862966088058159924098543855621901473915279537456569775530084155443832046965156092090496940921743831277020926972833158038990460629157025297660372926256593700834530448486727916806735066598277470911789911655995050355935234015415007632871014107491831561515049952483101462196454472504377551618970328967186636091223003745567453314545613755633140477219093738085642869241295516147689898653963679507536105892572839555810061527610953281807928310987638151053084228029654665126543769506313527570847616157080762961223805317883690479307139103056774079542022909380070991924841411292097986290234224228750154673223054573504202679955753683021916594533428034363338087890554349816193534511714582829236496027110333507564543976170436307257018175494007504814915440544298517959966306307643503783337621581853949048889846446954221801821821465565443606388076503874352565893783514194376966397117605770160071791797565381566931566253839546789490554615436987695410565683847446918833558964282395621972591329600830614876593183859193659784691183470457051794204872980644728566884788512617551966389412829108477108578237026360371762228865346229701673643994438676464314070199683842836053983352846837649779734676253160853758105044126128058120846067602297640700656717734195454982053596803489055223810482112294848350319275134655369992387696190622172488687301657063275918483222804767234331945392286435225895881120402024948456992246644080039679378763889181237541513968929977910340248216527584818020939129163515146897958055178137358939498854816725463019937008562549654767799502674585694258007191316836755519910691756377458984624062729466119889456565342088534911975655029817011526497175682789770563477333181670293064526283577159955790532757298712681353847476967339273580799039486656309211693398256146909258068187306943859630528615220895816035009048654051557448646115473247787450523898172165541095626131506294201224042007598737657524818875643222085041140949528693025262715420931007304814217655057417300594911576386443233739578614241712338812843421737763345735651455728366766821576740141730407635305326989227763088212691372384612916157090898203001515036533923748881459516421555336693540267315904026627457120398720756461607164006525237905854432927196421412168633218540109961964425171370966247728578084264470155093376068576907209090741761456421778902803565989558448877866097967553496535587192074163587305391851959448115038180413261764119445478354627430192102667141028464982224607605187001709217374828910784705511855063323737764471310931762954198934369346005653760615866157596910599739821666604248299015139134642758941166763149009377240712786163955772220094841216388845094430195082731891379687747665525910041286598504629559702721487370896610265435334898178572468319373033209404528161966404366034649796566910764062719848950151836374581891872895068351200158882015445375258750647283970036358114780224617963067926583675260742210106226245407144635799522544455931699783889233228349393099331459173938947475811677832994730174427039552452620500045566345766583403713166762077743144217504879417671815423180884672949769237316155376289444904243185956041133104602409363087476769784826870791627035266494800130424260674021292918063085687572995299363801205901222412485354597043306603733734744861504769625866017620817596969450543859023693938492481573160947067703386168397583004714608437019653941683756242747276844019285953060026652741332162133237564173177413287256334582082117720975119965103269845012677880409815937613535450180052242352710034757251201927958383793100609416681068585657470879756412463266108295671214156988325627595123845081800713192144975112253591153115119232869920170403543426218125609971315904049594473715297790272675884906356809593614336011095788100321753990841613095176100511426748817095222320562121212647669895196460649431584629328606756462551183841870863547632220472258464190305130495871581730102829995512436115828853070971336066465066724362035153210976454865874728264976530306000910949395632821101932496858713833798195413006793405368435732036363539105175720382962523779639107494272837268126334269726766291686919996785452719001569324036762702581698669144409800439347489068068079978459023098421918812579320399791165177403661913583168292020774218216621224388757478309804538525840000330717029442532950218307770969012999339049809940853588943602293633851344924223932236025406608240448278529093695676972190038991716238858744556873599122403265724198425013868538962930931743945854560721218073925327780298204552288464798635606706041703136032307611633631214791165224049441167138983709512702563058270049082028694497280084841570305259778252470878861018143202491019641113628442875464944165414801985784810879565263326545134686948452106160499911138883152830326047101068030607870633358216581235205847449725574559595745638162555160796575055616771891767158877338258708237562792849449279598676624529906148635826160439442025636381941647538490472405097141999411769567904653726929894184599130178704559599188150135393227035177921630202279541712958587898274729704396641866094099576683679023135503068200381312595441459443076217794002660192644409849053977889860619151347330887540291823922550219050121238789099851275786228118636817169148337930595818236909140687318335830715044894412977088379634934424169035267474095953284263860294906923238585520410829339944241465185727364981936564918952297064500128801332408084670093282929628107037850303032554159811355358613960376039297249781278687548354420059267949833162486065378271041623787508827528187411246890920165102344018216920163728006112163148982590686425230322429348902284864783873488792848424341037604109362612998313980703220437948119813273693706195638852534861453164503835839652730617927340197784198099716795142163758813505288120109297578915519695338259042026060767088166506409597089288775169101181009628379439068951291615092582183121665101310817153866550339842115702214625880308101148481140266071521149062479682558084251973587062084249430140422140269572304845322042292568691176380911596613009404344318147878804629435015438655725594870935488937768317092270432661295453820905760072549036877738461682522264816712717652660475449937699009435446275211654335141361652329655049710368988266314963884579679686932707288254821490020747550988394631400745089619936690946102357626000839350083506371645818005639987558182877932408235058907334425615963798973662231347892677906546364899451483454829838421309163789026020682372764031949883349938402514221235429290376382839982079892633233104218806613644153962119713999480216175238978431519596170294534035890060250653178170849876882631107847533003792736905302638635628311947080177541427204589176278116895185908584440409611603379807944861608451280241662873217434778579912042043744203699522718970596908117466644336906341344570187875644636561414186197329683319656624728871443226251386427210794197917997543696156396546637139610096236878194606233715885746421494021465867408762065287451148352514876407845395139157513817792547096552192499438138690407271205069318056153123031273853307284671112807604825487947160161852871172061710361440733358761775842778331967352732713534405765628205108520802142997801957998277488914778219910079022001070749118254601898720337914243675613410353244088952272433207815751566957635927373300904307815580996909371746636691650145823254520299773843141483767422094640733103567843085573017453947350073833009675967043571774534990595777630246181374376299112834907064930131465761399852752476260246105482488253755170185774104768899809315372009059829195008935914555994406537747250191354210017214378861099465268344214820727171363501225755076042874371343806192344349106611223220057213579569108534707268200696912519342032948632113100622507916368007490417729968554948232089425193725828139953136887941930938240146814340359609482404379398434802823344551578233518315234806259493731311998149436043338342374629065416788632528564133695465910861873439081134124540541624160082324170039835029317209981729912271300325671756477871124397548126161697800802981136489371684765550793591689905768690142266762092752613999798200846833651520338175032929450756644630246845571261618662407297573479931775524981377264912990218050533619659015987842504492576892706245732701719346763183477612127196029982894469979903320067855987855112436083526553027424978735042874862089099955289215159308910777255332574135543383132073029194800060337626983288885801451197902135545008664711561515690635586928165953807708588070035335941058781170491416174680959624863824341240634765782753584661453730188871699483755649249763443886214656973903560572618268582268056639315610348833408230905467419753165534336991814765157099596641978595666489168423086034616174806893605026188682362974501110380282228839489960140156015271531830031866064119300247238484147421702734288466357345330004390478560453532050572419741120222781105446513332013015571171773220590684608059111358869091168015065022830640437830665761797258200947887187012478419916101124801695806367930163554388238298478476589691873207462390364503261163227831302493053338226994068625904359742972981399313532947405100207814364585446739397029140378766750106221880601702596670105005278129817582303791082173058618280907981572119137884585720356057210263761304738589062986330694035274804464186008018988408497822787359136917933371866628516547422765434208483881947697278209719431219854509683052196778369889509932060844372364496525940547579045491343103088488168979874025849774396363231693608477147085022660647034045396262252937250868995032773592816146980104046043800185249249854957205759992320238210853324636033838886636332251652990877722946463784140365126476509494424863981771535187525085062752895408063465412718186472555194886263242347708608218910896907060928053220112963381473677674226669319823732815739675834606738238377582209618700181823204879327778300804505237421053312131944233821782621094995617732751474008988785518039451112579549336377405247929549367903260942461612024416069839866292605580605963508653206965157769894923633905342517068475564875011663604043703905808774901721261479067654735850095773631992358728843141350247683480488652988747468245946774584915749463574377923395043350400971669779754473348736738423324279785029640635829072315937683614136107336442446381430154050224563447811282446925537279023602266537707919755082585951459824500577754036734080917974884125611198600126202176685042596541860337686043873832749909833103815281684049036731495058551504773712990866767321692629346479298693311041529106004733107180468779043956595937162135336524494380295375060368859773411587043882518486268045552550601762117116258943668745249778692320414993671953220917380086487866936594665957166704008625467860186058643462608266567679146677568877298391152112971325357124705698403105134377122230828259013684387541380004478566584682151998875315259250965494316125220160121446871833894755406041648264742080675453681355058652660597923695314279462507133578158606663215133403519795392288897226828385922050647975712431986961671340297153044179830688640667008926970850113142612488579244932817987320151573548838101884442881598175764815164381629004175485129854767582151364329885654099427842613917696060118636822656931831325578255106119829176880586378306340011635891158883913300401946212051650964784945389591299479647358970188089582105493303717953101210484076387893846835241344978246350913381950995627903760117144203546478695685220975208492731570791595638940646107027676500685435410700656493732273842507349043018879611633733007083554014448032153321760981963811245704272172029400799042496496361101094094968854951564332650815986880421887892243107073917974350127312561406765934426748503521195411724970359269485356293077370188891535314710253140832382572405185233653139777602456030770092151791342048311159099351013513508195899780607784453492543280198990591792685062768883371949469181267498626415098343076723752213045372254709080994580749938583771334978328997021046985151446512058532140652311394749658325264083732004163874370167966614641357195698631267532698952924179613927188861883110285126481648367597180468561603504752553094461437145797451359071991065338563860211326972950640773817346777107292805090372589864102190908068219264353352871293987083417226171800769207351377276690412229140932193005541482453088493162518399958328376833672946304868418864717939050685387903520825414047114784272037384309135763272148890670821264075254108310792316132426266397176621119472233982953414425734501113663657208882783917935140261942904566569937985672807598841683566011390242407956274755757105764915691442277834755945247518926309290925218081773143450634863733239302020324707066646987770005542635836894083927850024406323271636462429438205539830135277446869209995737697678675780424131278400779522374659407833402135065160829083992983327756126730981048796320219780198663897798716183930171371284456994793273400914563995641152869242450977500369181492058265914010471501773551519433436453513947173039716191357717567206360886233806052549400067614929903000702563525055492071172343405138214106834048147701221432884149315835901650343042881367078918494302921059498221955831736847050555178861243470183841098873908674352486990283702737020498666527119194658944937734671808244872720347898374813883416883163001766913648531541049397284631185575218587406049360816938495250006498029483843223206785635424586446345109113568060452463668832358239667687173601087182237066134181299572873997314742196520205147075445317258763350136009306518235709433988076527374475402445762036658160024931678083748747392723511693319654815992803486282214447104674197784707738648012984945421496442333659385536109818674429386754014203475114145162104201675959925366260671210656053985995729054335048714636553894300421477105260426135022766613689072820753834058426102329570942434777232691894981712018314712851760015434713315402499040405619370190618073076158299680715318540926284709335349888438274452391941175410338764129386165237854190113620100924535596373728340146843606310506506289157343861933247645770066873523405735375126422232309067382089466129421763812090194540365965515196661038752600147521929565728661720532326551785705743906569594388632773756202869562689095656855474274152892021314870443579434658348188926906893980215218668126210422906877864698778452855954131678002513206558484389947816010671295504160949755423796704254898822698130662912970444484116565805226774621980144909701998185289956774517286802744715404578722499253488287112093240264840626450950267670483495845374037530043575785151235618721064329218456625672033783692015449310134887683149721192995062684694747299618011580693075997036655486520419290179384974681802799367420612993444752239128136743226383646381409149385975240885569757847794243224115662627778065446446626260647623036666363350839909109815154659950645790911268587905368357077591061436138064347218005667092528780826679711313527801405219878753758998421047542914115209131403146455659453751633869425835902692205747761114564283125647574590674648140352379651246656394881359537415381099290140748286499992151900020677378743424279673071609491159312603056474069552892944189684680701836995413232160302683801843375639005019246034283367813552513232266329773855720415493549688189503888206382456171958734333959546956216804046413073027776497314059135246702394061996111088474499383033685725622429868607852163920704449818132246705322641184297615425433490163041645864611699298148275565014391275379795390319296535781343788454601949619510969058457609447464426967068617061493282327718956376964051191336998654747642319741477719771195005167033139678391941944417727021080905101699540613265760740255083297213806978308400503635572091461260255747517660852273860154298629232248568366523449331548252499259180489600858675002384657632324745796196744512011927466226622961496649782205012921905444687540892776810506914759430440811111921911461064482657438003303232308032283866234691319599812705302062535297358823299346427796208273722026993312851492469393524336314091954878122033793385028364777674499269022559426305962842355627780919867438139147214320944997114324617733134948960980240396455789916179141006042419165859183589797717779478376167446431212620977593953267780727585000246295464114179997124253455369394190081359227056462056851803545788761180921327230077756230212154942849205020021365142169012095050887081725365860346382193142090546778868255615493122302042831771785576800951717751585298843477123678321481954837486748354486404196822438921428874219027751014392698987262927360379516862603264353316203392327434033405235933106431733722924892126985034236085403844761893374849505169230177521795347152266765340207114580885865022907937589595831879257701925736085203654277510803672456953699060333413924155911705075051638949501724324916781846676996309135765448981015369177072806766787675856835503259761380080847165220882081171904866545620327406234746897896957533495342587829348987402397975782951080926273010977816955394483019792642130879976072655133333038783012027461122055188787899788698640449042625279507866436681502535874338140335763085817133667792458911946995400569418900814550111986263884502683604772530925968000522433632919314603677898422191707273156064170299642684709673001338474774693400836445745534473996464149585758501408969198946689379626503009220357860754661511030115715080331220530841046840943778186523544936525540115731586542875685054165653840570502806941849142573899159256617652250821325320285525567166010239898726405361810459331134486764854920859601426247034961398480612833561884506596931881960725972938054576181306081355023134230721681614779131456432190422817444995760835599708552353855860012397240858416646525722820779234183741735050056751367883435484392119153507768075491650790604313457967757018143431535086465285598345595908088597624813530586390234104316788788041917527906620521702684853110222372613777773680511009988560749495932257359797289769820654939237711295974985844320094536296044345646842545931173802219785898218517953880882408746037531992550813042622818189812345412797010683186801809816231700284508628046041131802224683028767578527128329501780930381102283401210437613385180504541767124415096249333949781972339074066490026785219182061803269398033979244654702558684534740696031894207033404842739915596742488609191508700880959742314717845858601340854816121004025846042839899441627297916386684273944769331379603941133140828901362755738052168279052079094756337240005041257156503354375067349161732266345954010458139599326933689062111332890265584011742260888673230808238890930030870373899393880081636523826813127488098775239941240224940415208992801088523803046855321270990753864643491392413551034024422937888129268944886948087585367862366919905327201369430110593611293243112828334549672682272652661719660386688274834773068615213294756555677378934258702640738975891509868038283411045407037243860654698013524471139333862495794068415495983645437691110115619142490719030884022944336742386623711442037796101921259399517118523661142477692111017056495609963181866493159830792753943171513860573177795847470291109855860219671584784005378709184563495677841923886240706723153895898620386584704571001936519311214435610355469487235359468895972331236794112232403785977693513118711684005756452486654344878082277885366586731689215024650033061834768640140375159507471512629734661377375787903771247262418730715123122481165198038053916671843168452138353393999959773554796189562463534230425227701525822326936690456891895448259852198517208828533557287388943552930120367332962272673572621450373587085211625008770576728960814187181703807421602663301070681278725719880194697988856484939096287842470383399093353179916967166947605627060023769470054996549357151750311778779788823600001452223786656684494886418573925734459989803508939137887535365203769067346540000919039215032176330889756754372911340183560501725538487202991711040562310236839680742851971763002474722192233624121832170529882131171160485313308372417645615813478585227796517731631498305779497197714640295317147430706510796043201351399074721764517287147773880154255024802017522231868128873993826483044092901033461479780861557950527460627928800769899708644939382718934486830850191064576332151773489125356455862517709489994810108725535033218262826743947507798145937374974144368558261467321696662841034799317590170191686829657122092851855552648027911186260500967235561835917450073978326493891668349824202931970105043456157051928662792500038663179473305846024315431271678188508548835691161366700630312097844747393819914937566584332041206845621848456793476082529574742804919455324284701404003777276330814865766405970611843083243762456332216946394153714514201384141723105017458529990072956148444198432289941436885543707964922137328100038057583899105205208189125132823483803968211147283767627964624943339756570836644400826369154317600221966692404524603544388578125910822748648182480384651352564429094560332658728177715329209928994808694184262631349472293878482341957715183063638007862914553873767996822539506747131889643077370430559396565683313313341915796638307657768373494921482853681268187307453957350854673503973765771543101824661614067428245916599942293713273287983435600671008609145006959701129620183329043742747922195680478358870132823671220461995698695062616371183908611454322371464146757141987716700092835292588583326842693793846292909063976940486100007897768985424583160186647335351073664908567423879650871287081187386007878427197727941754975416926738527547287584539808606632862893266456977345005369591550712742452323206068695299334479884530128592799348764025715711569372781074760001680410802881634933559395945371688585338509046294531254367344310829497017705416627615297946695849113453670341947756157173813932608313894008063972085130135780796389819299402276836233050864610795682940224928140212144368748019881373125933865551673066304427733872414450873209017079016964282797026129778852816138241112485633376105155477911529340106809691399611037152038744125037218990295958519298825417663450680587342423065094803866266248477216731232251225512152368622140365600665262936769727958780222886094757343995961089019370808918210861010962378485022007143065562698554076237662689022837714555669509690649007745390209239461381954107148558262565232915209913409653361762085467037812451797489454178497854678255638605501548949785412790272713411973097188815377338700683507438228533263390812383912321780570239088427501799475368698089306036808256567338759813948753552339541702359405957865328326433300521179590190186365307964943904147720073535990201199569872806439472020361611737002280175626576542779196062523493852382575997172960438063275386235926121715367274523667765584117016526863754061078422135469178024039643128759037071728348211281220573657238111921081411623271196029439149600585705296092005092790429999846593960842088346419273288724464785777787002222509538057877582698141802961481814571055801183761242011001491397189339166580582673085778603975474833104351142716689836852183605403177989719566264474475597675876192976792935319629049345668787438341985310184048905255939657308332111278515807355944406077284914911988904270442363386852077905882706444381589066426916195492516047529143161127176470715681191979374151424045365347305358088853547364875008185735292171900143950536207725650801770100712403386269678585964458521247884501174534449470880430196311002068054445346652232102728960275471566796479292772464112351338939041651429701816924040448699086753265698100943780393355926139179330366625175125274413703898972401755885217682104768920050152806922418691692037569698300939674382418425728925951750472319528982950807934750668829563889168621229878217684833258046250735953775831097046479957857370441029342024862703258238876538097931419830540850687646468395173054377499402566328346122448862878302210151598830049133059527268874380396082433613052147896157761444142877361803203244102346376745436608205740244636981208242951277259149650484257516154171270748870687602911080159864457979918142297229224971862381944792419356899660344308033354889954903299656781028596221511129255929756284216270230076756729788210662633526066581261990311364264416981150209127744739736315381850130911428800778206797659333287778992079307375482883300550918490701924858651522791195010327894469727076898133162757336026659555990421649779246613568637600945562739732136154118444998497654824092861320363622090641966653494584544963702886580682215184224211334897582973024093967883422836347204157799208944454695727504927902593532616788254441948833196455453781913372815789864346580088893202527532609432970085911967956505782822121012285401069168901644768327584450335928777930188387661363306190955561667035580970163244479840665043311468351974134587994268729047370996469615130247502261416148530833590319740379978555993537641722372347774251474821611474027967429124848104591807679012217536094357272690885450131099616184514240260669825043518241710920898736683797204228094293414872242633468142888125877129921737354664419036896111502512555396049908760348189933678372670658180694554920402989069869760952879932533556164272025904184307219535762319672701915740105655090429824443388128817666964248938003923064458914986014778753167523883702574580077218299195322524508601836270985928346762819169052532055817410401293480926104360335432944419356369782233276687748535777052480617074010633469578716432164304626881516439830388264346742918195411283940567614842169578202674161585506294045529763528402362902558003236829380985471671781569742296840214203086124402057743548531722234952084424440201358921341160523537411663164880392923900844697619318289920986790260178854253182358220088008354295923219320859134704096112904344877791558163953145038369396412206430303069736804712390768428345113416027098179948833238615866231420623445106543912933898358623310564967581936822836157413136251805330151204100454493531162203701170111983422314670864507359837579637111253197652176134524075764778628079154977155195687020750429114856976713167759011285581810122995606195525554465337892174350996371785140329802425629944412540111353340385606904184493641184804134768148791482208929930945543916254824240473088584776786313395074216724531923910102761602415891100199944628321575080414709419888488224703082317099997225504823320604903648025265104483364707884399359096511852209376551727426367230179321759472225279843777094324981887165472606068641946589739332990988953313036203590327391182751685237400174417719852588491823536710693272182181058363341921570521843823813067340294234042401066911114185396988990720081010572207449860660641275217210844516831362703288598945017628924070459104828296672231217297333488910584578435181603586933632172238085134163410449256754261118412138469151278939360148068098805294960518870009466848407815580002412723333647106606179799793737956818058949378320644203441184369525462993591231418072169138362461224215051347725155024180770430282417205257087476021364319795172421784197336233904136555828063002797506934751153715149969814287460335094180339776402408276102673081355713148287291156588293023196678884587020089505706784538280016916746919317593571276609820023838588338033181571385594928348896544520601653053927265286296807980807794814546731707124245480869234229022892303557206299744058511676218087144187012165433189987576590172125011366386451713064752914354185433647823690432859973400417135772020564951428179942414402512453488273820229090622578190205249282580225189494925151439460139213876153605232171048727904013873758707549634371830723449236434300816548460363841641265760854041125704687346843810605756152688629614013548538734267297453760776421323598119149365083227490750801981032758730846889826654830817316226188764877201392050117377372045542029907040255769598857121318834425069776589896161097163354791838365757330903056556877371594109388185625022323899677511439132386639640256082946731756118294317112633321122452465555089240949456330570743993400491179419419498455454933074657659342099939451153877369661781031572752363120375314917660981028542877763073125400558455070226531463181102108777588978788047124231662014695931603364406438284447763875355556551005160577201319456291270012156857643883738798692897735751453574532139620421848293585493673432542827327882923700929315386281847160380563248913716455762360626854108419661554556352044341773339108178128675098454419191747902088893496786228968755222742281493618844480992793023784029938225425479206587649298623062674921487534537480200218624304990823726694808411114754461494612912324914269405021401358039281808104300283200494821514465184880995863997187957175284521297679416545661182733951453772266117473044337061456000208330101298270546010725102112109600634886832208027922216675038001345249570613447221135573429426560555608491581776139714309236673668315095861942924600676478407384812256349136394921305318611093644053846403814377583997925471339278651230938945121910318214712382176026208315352366455328170626372118193232439156993046428294202356223521421826513658730673698692080433342304121022734455359349656331741227175662580550245889185812195652004897185770781069416158334447860569846174913159313870372229178061269619023104296587732327058271291945834210309014533060350039386827559936807671666567382277945905678039620580422568443502689004044085591551538324932452131529670714044890282868750193457090050855750701047830221098681663912402592783108802119212823586187340104477292624319841662525243740342568794048900830586609395055945026313914124024077807894066887396072537484538376256880206175652718461055430491321914060092826467527470994485375277405470776564282046863874491229024998916574577587553384100355160276436639394869399294450649609417959751393007996678913759479108760329760613013927150416982538390160057347432088150610500281693496655325898624968870159796398199909694538131153073155364514960883473401391359783185101491142167198006404791866079936189151361426409320954887064464295572593785151119309693465784366604612484980240123218306123746094979305959321487014533952657358317561226406690578773602854331576880568690489216024774904587522446233002836904138424246008596796419864209096750946893991904191997270678113323017855383659819756743859837971606670637739346516890750413570014434231815091473859846242916696074059645813945785038732116098219407245349925952373933093785783537412882234429554945806120574871740970681079428893967100853199424091649207235175626721222394627512818022024290789062388666790167989133280203369094483545891179784799439982994509025859605420873816196647580478359548075050001021949866948275083683586446784836975809384451331794055505861109467891509335802894151024346993897648826274510612447389169733221702873441796521341881517089139345528337006845488986439427958539665660646718762203689988969757291492382280168547749978043909262349580222229878386219415873222945897942697662619034098996652421930824332879420126358350127568480185090744888190973290061380446917480916654202072412571677923291894931183499383227288970302180027002237794434098694383474862564712464004497399842138443785925005818364238365212738129292079523483691767563084504779707044671163653565528001905460398461176287466546151341517360752855345993758499426458226868351187432530118324186344710500917866928350650779031221706640476028366985006202592793028857743865029712265582264169667746670112525191271969417664351013171388227385498186053191345171115002201468071363325219870258523938366521243711518546699791174114895824434136089177694575774970356973092204124711574753824560362482339019687628451664351438505499679600185643599613076930451904638899348754986321400699581848691330383196734454898572545584234564270028906664635584639273801742145614632527847919143276406014035710216565151761746683201049451148579474285762963831821454982315723694676564354652933473102812183643148747844535443471956489205407240085061556878285114912633488248417640050806638701703719383213393707398257445617214194529928105938642682207791907639907139015123751342971770125546040305084348033208427020301770988517394468664776789592439394467035042306199329661657211090619262473807844220100844865512228664274567552737459750333850280632322864333747801185785765796937978620903375089076667406050335245806169311275927111330309553678184241505111352963357316181832206899697596170979835238158931176279396522241245477400702784300526457153025882020237066284410373759175617176505078381305634025558333129678331438150735433928841678785586761571716319910196761079878882113082448526971653072629059344529710868164813526256482117344769342581068677070259480926622688584296739032758055999110030381548547496876765281902217623562923334118472330185032844676784825348471280629135065234628230699267882816172541076450500422738814062984474371023948141286728588152150683390954970001562656119440720711065813745813135918638367391660518560667773586650662565617815520923285610857469802727575322305015927177074390645968132124340467489486237287366711091528804651761372131021904964502966015629963144481040128536673605850041776068020132760124743701863184261330598625599095790147149925257495192889485131985301540582684406550846626046704834691747553012334346325011532477870503694095162188819775360559188414438206799180657646454850072656818954399088032757645227599484812755073426677785130929106442565727399035270581348900036967381295997271154614744694234404233945605788881178478841727369363252844901455695639560578594573837436174164667593209441578454748942125641012879960186857589894011763323892226789944186125331765114839818267151007938667010695073233854152916387024752434128845104575646907019494482049737292557043396117691349841559046166265526993021351925183382181437382609326890894326204733229555292123476144454005436963771246027346459054138324763099418211731111976690946310181381135855509897710187128636460924466106670919629603606094032520662838187244369885254575742997855819249558417366697073129390209522634911235494942117481072765482258315770311572214708726897129028656980793423593593581517279927688710421518693725503301650647299974870684846639913782956424405654333707701120829645701917254005879689797332515544756655870620908179254895486331045844698608874061121941174094021535879779947310154390162688259339222794863594594212425173996679035598579863613012672530737888959659806761107576316405592412252862013937155540832223234975233103394317043241352904066509233568486541558287323474897684043121859559038037622980189750519853398039301589443800359079801892338243848040819409600634475849533615078456106410279319832703752196428016141998124660115335657208862430402611601905949395086696846595195022157904608391864479888259527001663607346341714971891570520160467757367782102081775752688240164679938353619910419119888288258121107919549866602803943234955310348965567473920764423447936397118968031097815414629509396811202353204749159575290496227558863980877318269043108419486226456568586639409766607980667251054187566698102352922302054175177960805345202277117379635631171295817074344381962909232040164060926372160617642295361634952234930622510100767109243165007086501404837206840066129574253626485530405605577065952687794928876134370722456273651603422350507665218924141276563320599992131930190924908164112045593113468781527401956202593578797143886581130065749047211987530113731034284778243461675024005966367174415148001662881161004661929081534643740584551992536890406741546495390574504394725998785302383933354941195694176169972568339872958289801676651679716020799708891535392586057450700033166670827657789622423153634199974066288439827832084384600076135507144541878460962156485876971506732089328638276091929131202512752524138895023777436645337340769134601592814979739869433772339598353437667413480518271089406149375626810942212374500546610431867235830399009797029229582542155633946386381396947880293350118152865103895878015184829026994226765677187249999166055502140593523628365809136986891164800728330561579430391502515347216966067632929692720796960040476070229070590602240606619486169673364948568713439883328032187237972965954701208865338179017926438652222577204658144805641397718489617645719314377035261260131989656609670134993622843508756220253234891819114036332912229341352459643096291173270826510863200835732281809529535032739386001547010900183001840673597932835836271089298172278009187998074054780412319424981459843180596811848971760880536972825611089412374211534290859597223121794803817806994613323847141132639598614573996844555900102225626888806167398724847548553370265665500810707333292068325832062050782624534525859719351186980943756729074853260752403324682555673154274007365686598856940197876470580761317056419453777630020952222862292101697029600693034917098741402564101016340567878160854470733642304998132768579742885821951091444138291628383536485305187951897278001408490956042407437631148082250297455635996528142949993870925378166559938832441822175569415874409853126744087624169173257729573570319607659229219742200536856828332117094713336575937920467697148037995447650989370774772478849553218722591525915336015957304681768101838578354853933238066307942922370368831734353874143512481438008023320790406127164600121456547416845942927305646000621297312955816614108552283129697914525197003060548771498897314218605233732179571643003309405393056873479880147537901606236336014177532600121118897056774320393044601413800803312361266211985593351694948232023753624114815985364869502395694588007481361049694814808922001987953023146195337622040788597676627997562249927810805566941644664014626785824782690198387269266791154028041536057012433852633435400277940241071345129499484884088193629885519679919761015621948476745891581183032536154151223148592687574190459561467140262251750162130672132115743548535074956616624176444663253523644798998015936211857033219565546453429895400987611271038523671581258452404071199257430625986139576835491319497226217314863475198251267712176511789090474645845619589326295242136543893197912184142628057701425177965749676875187443097910071628892049561114668290113180384106785777298956855319828868926199100772668293151148994518830970186094094126725165157567305974368989816189037488917208715768742505470450087447550499130563265795034848616747070117073843977042297249160696207095287690611460737581305099602801186751559352743272306597833823244719609133067209810891145001268342017398821606855759060250026052993286130761607190326228894674097481748445054550845248399737112056977349152460051820031028704428354515459033556778914288811084972571527939077685068056577436074712414550218326661459091531906593067957938071756016600904098522992847537625700813736865376603327926697139220956315946662470877018012796376352053836654617314823219313184134869259686742414961897373402422290086330679656012662827993192986612219975185915362920313451512100891858941919104714857608976945647164236878811928157510491517402811019085338346615934395643323100042126112482249917251581659196837690361031617931884834200244319952500172384977599468591559074434645630319680528831272422065050580743379233847512300451395194828353462387830923251223469787174666378293576837060771731929596922163776780779913605412333217060446257056373268305004344099492405659225479234427452039143317482930756074213408662506495308590560195275448091648922141994925567841961230795884684414709912099137464127780566326742784530441180114295053286167931665392966956787793796036811270295600844378959438616601149532062334497891408522973436284870536083338708656775885427253644775625301403264158496159645270816736201819387224923070731184209017945577405432355088010522075719325059651947948942747181426677357773358100638866020925824208979232603595873803742534236671902302281820391934876720717622754277461283884168022818255640149975258794797414144352891431909659629885472372410378980258961659147889802360501918716292820222801868905320317199447198683634704878859260978661589816649194329212454772223468736156183079884473621096966445648011714405902864993128760515518950355356737429337839852191055221310369185114606867066913559114612184457699949305150971700732553315261524658732650982503809192188805644728582108834163953608335578733705046463430043122964579417782587533666325729634936783615328185082751978049820608569843367695780521207857354385526566705281111789702095553421481274609574527303717410007282445717070070431924825099672376059620661453489209184493695135414009248388720688064421003950436075998843023850092983085972249010769717190219251604475344197051477785952879288882292846361998715634374829375754283133993054976803691737142452377431781046629104916711740734335105095058291520932172169303397730929207368284690057131024839105316631211639103257529962219234790854880291306065726966559705559734623688102464110490251543979673490896184741252478538331648607049578836597217437206340503156635139926551096218906697583430805571018375456092332952825714840261489381194036965253459776861153546243360901834657273459596336648226042123628975594331626164595124163899169470755514510587197863538769518220691617706335941680865087444651087959066731825276954989938248008720668052041928219266621706289713768406215557087580018857533769870265084249940188158882105005462986858973480570301596405278299454077686521716042494563485469010090758955854637292347033648861817340112859950115894987752265641736676275285671504470096005378831329686947714944412554123540826320561232499854297364348299026309784551702862822844020264786461609912497465993528946046986790119778511964974341765055764507104325365443043625437350385603904416441266142169309163418166428993893978903934682276293262357830262716599642444061688234730984519046307028087667505280358884911001966957736524303458796436041976369995382837986104279921623833504300308694439531041619820735448579127886808178988647345651664956676301912458846642750598099128106830558575898468827871822415876727755613832195431765281720519041876688089064378653274546329019695165853717255327799783050260930523391058203599184115691091526777615982177508548750868782068674928884182128652176898965664321868794935375044735177590799124798511485359524940688166043030358800121548872927465293636213899190970174509240272572195153181983872330852428570345932238032708075632222701505720855287894322553441419984802958708262459675346962517104379037489317133522730672658595755617512658275822244109448612946429246855234645188206923808820894247199597046893493117907096269023985114716002488771984185619648172731748416742432868559768892439650881029136170204576676764129819769941457829845631676180790897085815454421496704561671267828777129308688722402488690753949123836959494925607680317585103887363359107312440414935097854045641482441793305731641377260379783482123370163825226816151904076955565471507141746549003663508534782501423126371220761336197431116103725028702115897684795602569363589953939607756173931470763650402199652291833251777341309191162038066721761741571710415893554353504903005633109287623087251071752810605844875219107718999902097253321685625857589931624323796985044094309467110537490898743015130834526916271566640470943399331231650855421154276853530253162975317404042427457950783314171264883613460155832007399889859717997444340293707363192540585877352166565218108565626395067213735174027389793265213158765839824035328595946950782890723644870766141525816440006108358394083999738783545910427543871642556634776994367004321193848789532393053867091886422023003298645851584248281501738125627485589971552460910316048090406875211094253594753739006705228848052558548410245144467978412163818922059955127716003606135760667040721477769888536191110453082594069462443839558078201511518691829821666709364907112158916240339180526864033486544324468374120027702388916777770904861545673363788096860941572835082186114288949724912460220268585966406814635064874599050112098872695227523836190996334458736980063523440964378934794438453352376285838956096509956572442898394005394925191486392159632491844357904410036306099480409233069702492005943236134789247204253844765549217161670295433393224068976908157741885050546254046881759179081436872783639246701203788261114561553144633664516484880578584115225982968983691766799699538989870686609219049449594992835914382563511922500953409342324071176565361779643573561650261668477678221634369510960970919989084863888422530095081055194457081638970986854239781015995032328512024447413824210628416316424409793817310972906441650276157709950437379015212000220490691517244982548482986286609817039886121495987505920505182842405735705797482325623602027104100616200784186014222577401451573009317238586369070768321341393112016291685969938351685806770040648342409133144512967731705434057753894361256080562446949713405036575943650499706674543013000958197258567317847570908882146357031583692194852258790549514400445951954498988274641443759230832334671923085992609573258365627008145122413063978299236164046806764873921286979203692784908853109186100789817016206114388584423831412894964139671041644463065359271534078645601603450150877181654123178041604520240998031183487534411678318474829259934955696320572768424349389747072555047953569073791944951619876626921962780599813033861493280485570014316532318691891255035168462289481050566345906186085517538363773999918591274200344898795532233908575545818306341262310913017335663434451660947911100715621134996946127833007644738957419941680039725179110629772586001431960772753937075443036434352858347864798699929139434060187752045128337553488043646356279997091824806716925255614097707410275967949327331214145417259037224771494196816705130754624903769536216350650929035713573084187772380009489030480234266734296339730988572897269374164345973913103406829086502809416364178501227396109587360499111665157621717261736780803176654347894037951857464782328181371426094198177089515918596667668054225667400808244992081574187412044390950108290642993180820220945750914235021894732529881583750765655056878462399274833757186668368446273279771952289554682947651276181831378239694393132150604195614636940573111773718136798445585381422766685711832949187265688636588918760430166108556199712719096696508968105513606566995978288296182280937028437510543387013439410131301455308648753006057580808633133406473805902478901769340290998465349820269998248021108865841783124133391361301524464285566727479450710169360248877613920390822022900867671468588590969877272977988452519234581963673691349522801914987766412698369927184335872040871630932966398828327593531837663694327199320166653301536322247798236743618979900040041852598210011098270360833818987548706875761437598987001066569759251287724801839421557980684643761942871408054407731525833144305339617421718607337162756210770732675381267984923516098323710028636603875703194879219832412197467721798479327579594846192777715380366662015281904308215086524409190126864173666862372449924696985097332053565255993832820310180448314947250858305136827727859610393359294447129412445358700125685176970662042842859081374796510218262262994383097249094048387174129977020637242425962565922657874884515114965695223351651299617929876904396328390516728055469618164790026263545334918300463693408981805871756745995283167967022289203734123567297513560525184176033737524087793565973742666691342322060666851612981388386360736413066426578222276881432805428763806579683939391298285944912557625729537230806376702128555851505944572859921634435443818444228381782946689547156006858782693570931569534713600435360339149316538570413352732995545892879767159364777525884110595433885596262595949309869679955957288995698336888324418764782527047166329000627850600787698368682539213777426590590819050377814232467222884790630596317753622707243279344173004141746166938333132273728561623812581573393360658706730916288062237811809728868630815858138774563080678292547303204647524192610468208890918442143855554893788363517857623845112876524674747883784705180325521128579264342543752363262452047236952831679991041177257061610765960284003570294314328756039389825646118570142425729701157508599913772962095271483160757837415166969366150844372981491122931834063681886998953506882087851799590324203080041907263186011367584216749846243445949091063381457257890647447282149679778028214315450520987433331744426172180831271134237989538913765234825291997683347299082362767347880100831105931505003469740971352618700468820768439532698922219129633682560506520655791902763687132749586402196597643698254190300282723170744592403527023254685052461259501567162229530495353345052298466948896879231892014211315053406693751502250066583951865928600418266588771489858492890794516563341001639331068087797260477925350436281188846058391624980320852271477858726762218274898387451909236701287600279203050526639503301168317830011245082936359340603568146392137637237198355587315871741379602408095096727884117114628721186557731558662176310014034350724126497895077944689637612494654550146713184942041000746380275063874863562922593664203369180668857154594798872949176928609155876843124128182967633067731860613277187706339535604841564050688477053637726061551290751911223523762561789195503669242574511528487351465281847846389469136372874120275469139609897942091505444707746134549881769195110667923984290618853408432786754401339452775027137105967553885870655646405713703679618465980660576722365599432609587745956450084434245404148232318639254848439809197646539752950708901096427189441834842264257493545174175045005805908557293810997168405464461498154137547961389151086088458538825325204147076640965192984899542720723024379089512170422819369125586907480652705503775842418739244161197785369882691253052390495069521740617455839085417591423503645324086869040224196299375654544142074740233998409300571460325647056158184706123635516924808404279538716444822968086939244940273795460982991337341776793410629534885088307587216210633879516563756323896712738746481694570850506845925258973847388273132961785104889515021516517131827405747616287089058500981180906055648449432074122636903833965138916264701494816160400075460131483567707265880056458627752360751944623883195427073023716964887225597975771706932959375215109036171401195323140575433301003639750451499169165765038817607524305153586120846825015339299807029801783528662668978033750617752044450417765191503117547960742343610274411944494768223492757352125118557794129321876449593314109432155937593681070153077254939211886936848649432666452190592756506106738169835857606839774027070340953476317422735193345407672307406236566895565909667689036531010182057025657659999045398832057308302286509964418669352778329727705203538525773294107719836437292594901224914567794361402427854211609731153132611724625006575029886890379727280292443385094897050198798361727111801495384174625498958943939282434905400455547165026285352060501236767095779590595217589625572642697640949103564769127870454073804321533781020224085044241796557931093480049129862907113678231662933214536755312536709819314523825935181263364997190533239189159545318277542348992816280214214370605256437967847768617592804469972070408990703050912891587594456364984914095875259512937168989301610244083386216682692633605603185431988989344279527458585176296888802387386741155166821747439738317556150293764303924464038315854445119917541255683586360521829743421757101137646040704512545511874290031311715725115318700581138621820021189263510156352981932319535095893425845647964912169851755221747993740725968017105610563185011315559865399952494651078692471001560187530641889543467775260507724652125450056926736272642325627982287882983245579931338894246404472101450823284129586331752942679515047232005299991119433829908178334148995362499451159330633989647613390953263665015379330668007073699353765898515809531026563148398650071104909508144165931787743149651305148363509404455324284078442107068656928662777827413990724589928403787242745826078646000909247184888866411229152902685459395485236808131273142789091337925541991399239429568020286689537951957841549559516698615393548861256250350607006319763409551305989849872380015290180570379140135788244394754014007863406058566481808195246372256611506672947363797368293769364500375683645472305519118842903265779210979770913202963017253699303043630681100659147719831114439874239096289530949144607810314266129867914303510839427617636765020875044317246008654081125945768097087806845593188156450860766019109972473373242829565690970904429009920773489386839566896605681753174104487076281160409451198348533589502604529222304905832088161546228778409614696191670451651191329700389358185304874860487273535609715460153435748867348180241111602888728163674879672623080290605078188827150355170686270395271925177652801241764786261115052771539627517571628540422926036177346927505220841200657433733843228019540329320403194189774764052525567470655199249352271967753349430201754134780545521205204726476725237344104046190494605137839655522603930630863142319149775924316931004228496053619504661801061821895607678651431561922642078819493032803454602216908426324461504096512554207973716501609651002405947723398748465255370939788815485837702101915816178036382126890426729711054637128909679855577525185743645607134840863724715713150193714782738685708910881751880272677759962536643505896932306598535171072099260789163348991651246858511951153000171569015479251827579497211228296890785090800486674831831034603146803308226166229540215149868633859099899092268964027205116715854016513464054021324237356092224478384301851358482994156156224233365392724289289610193074139461172421478244297073372527670042138274833660803596147928137509618984913625613900347795644578346393882863932484393219439937296634893645668919789294629624775352527118571126315359086006791580567552536811183638032344147874717516093127335816675785240875485969446528380704988502682959644124349410636302849849425173994940660440175857496340190157309707827384499348251460876039936921486094623072699379912591357417452169844351794260368153515406217738224016194465058882298355645937743227587191678905182526866375288045461742440875450264984929248608736249538568130571771934776868671886398094793359555575748875624833461734518152394203062642419311702394939658290846769689546432721688469555486880798028503662970509878860108970647651755866037677906802709155318096908695863619981455212596381232837038342573916447730390592052508078645810304415295425903936622134467552937259488113727238446672597769878763678486557131585839951870568339055961318037503100486470957981349210255439142968581152126430918479539312412160471675848442261440501021393411893281620775598334703021641911142500534732037203302750459695701289669167645070043068161534713515326204451137858885581618907524844005707425850969026675709210979123100321359352838431584843772582306219677507851052726174590886101136468589666753421669108588676770141177843419040668932677756370490567761418006146508890401183094670322243292259915536279190635241677332903456306473236012219089553782244646855808215078219646540285737503034785047195236929405185821304595501651925622446522937384954328884797482263702335715966718769135182224470907802639938145404150485270853975089232110618454740259935747806278934400622607246225039668872764372449229698710273920351423432827962620555769302759824316142381595749184872908350368681612679331572414699639498944937663273300521947395978215558721313077926505749930353368977323375026873524049653718775793812524379601702574062033812610596045119418840284034388204351130797459852850514662056941370114858854748348492774836462290800214862004868296027729174190960107196806266660248307262591266070400809667026294773993098412581314820019513157023115517779144279468354034483118580864763038055465607687887441858440998548783279379212576422046465984076396493171711454589174667132134640080892218527568959452987162535343856069826434072716420185051947183625671967596174700152092153215160536096937519893624128412713609949950240604615841729702602959372060113903296914845851098905621658139115918138849070977585127010731952730626681650120427442847745194011536201248799740775104964493449187112474577585502773356396092393925752670338647591327184210761854306146584178414967414361912034054842811653105208724930755547567370218212062705937578943133066817845126902451974955790423619315533076620915689969585061032662306379925174945759006729501836013527643075490584697034646521919051087868598970100027423999692263149763758964568224648763085131770857439032750979782966154901831062719282078360690352145236170989904987591137670389729679507618924021342071132034744852578732797270855385567937531604197170990600720840926571264673060255621904997073340316535171514674628121774781454427264233845100924868673979141930725400898252764812050243341456448564508909835862379775122778075026190089424373256689131106080809240504198997043983428367426360700744071815237351927852533219051883555807368749207813258633210733817684154283789034103556799808633916545094796488993704791784628303397185957152351230961056225069483754167055563807897469438164545230857774057716598028812776349186024932667845107003148026198387431994574073011330299335555165709322935274663144739203053281875728932863308413045689907454343410298616719331255464727295707150771901500378031881860902811283810872227743801273060575822850886809997787573556258458846761520198311803715726463182767997853958975774667962494984373830740327638136608873128839194472659684684087976948998610294732803433933969200185720426142487869010904303124824346244620012092056341531713784907700906606845119239311663950369419369069584050405523050898392133720798877225641966313770856508935006871730007852351498346154793192624287825568905642874956263729622628525031080662243106322861756396366220040243028721171921064006150233323532641436602690011098266909375693101048872303073494671040032149784542213078857512344015384717058536066841468827598208918144982771137860600736153132248454266211110941564836602745909456249032009987447822521076803169350758515322220530231559533891082650568236865287030599182817298519622704134024004483031660762959708887827614660624339098785893120786213186755130125051834737287662265241164555232889221332713174953160782799541481660462121275135954337394883373915714110857073108150567594150775295662836282027528337109597883861848535542125438287987602870241763819848443123459749924900195187776215335572545993589457830566949323088261826178919333570172147431835995558165845825099764925789592966194312754289538050928559557005327849379131911823432102322978117015010896882832382314373944219029089034340258482959972625892713613796477414822371068003956522826487148859494663353765067254906358309871646735799745178735783079116089321425844635351780646375493215389057224055172072104349683504353745128435662975374091023666383643436295052884847185680888303797437002161368232024755400850838777237360111568724134768182448182777994190697248597492746450610364845518039288285718748461303103559502959210183012340137457896696223056357363114052990031607328221360696943506247063845188407542058015810356849779032488949042650071040690491320548556847163641291380531244224482738474698784712830179358830106789959818568104210457162521138932899284996692702442512538512468861633165429724381636130840431565750121328638979676291505546702664849319076270468486025175943455256425831892542492872497508273884828134818906867031985175128548169385369114995407799129446886365349428950178264242828472559562598212651207372951279382630499620803484534643846125101047765587817949138438753810388701032776802654348214145764648207199615165997481006677314748931777512956260989101920177298976643380353594596129888936761288195559525143200763758078455230839393613225352529642790157801660443023737643573521167356726208697063207514460655257419488010661463401966795444645390145849681471366879005506342646019042911872511970130910808026978440820631268251357017738774459861666083126861977499215288337595234652478889815507527844479929241383124843086128890664973511488952793966640739432007667282659656691201431010652925521803031597005168499772327702790198622292280745700984741057642620011727126345334493788096814410463537135963086811404919956917421668900962545069451365694842790965730795157353413758316874539231860150463957345970755819150873161462670163112861649804565253481635713553168244790555245218749411205501821414096393734803813657695648898820537709312172935365826769893142395980870666677592392369954973901565874503494732570830231521623452651802418804137395671246158376348606246773017275057953789801242266597993359810708224840438494933115706607754293402221657059934025793887243675885939758603769325827647596638814047307992573832655916704310517065054737136374414290418896742874227671604492614299650880442895581729963287716761208120059673513877231636613640132256010682763148629372738342832082601443360647898603940027181703509241034890243491999683662218230749405233257269239892501502874914919106509309632217975810569525125000021832595941736547625719328865150777024779394609798298721953138234093182832420210134931152316819090665778119311550209903099973945996120630099612245326629100056362176538551255109672009871791689066050363938831085166871736513277193075714342877251827416995875635675297523637703304836016910775898067290989341927456030453743185744413350788369177167189409649588259148842194318888929285461563215713704366109473856436943299986600959070505996699470082113123312421787083211291450245294136607768946354993558958611057489449024612388956975787108721316569892654695132064965702061294777781571250335329081469438582845532963287549191553603614336331123365835017559924353057307072073797406083055522098901737634289090550820798476365359693153979377940899396589040973672415779642353274390660037344483354529708991995421384991197667477208280025395362035246263822478679289918393751404956313239442560232129809476839332423909088995883202442125258751928421142408365641531981000600050764598480627072089358514329806207103695601112277798649886605090153479475722979552448319191074007266040431382254219914801861666541057811037323353909443379943437708814654187304740451633580727752590531595712593847846349026404959165001508725942184871791827463309563862182458681349482696993277247112200820997295900841995405281250351716622905240705119946831915326085884515101528087800202822208453206478836134873191033585277601094498900589158520430438435139004539633511075104942378173636279749615253234938003649124231422637077729020923358420106166350531781381965169449910808748492921395739190189335320477066732919618631161252094979735235317543010336606660776394144586439870453278369295729859614848713119968985271870868370157313962054817276316345728617583594635970864856857405174024431021125899229130813553160226055358094306051858178637549557566769196100152275241594985189617828883828207971718962049554443120329702481506194302475356872317086267257331315689064841985051725091190966068298590631714231468930205669997671910513843566857863203331498660304204102903895642936734023621714929861727629150657439477480178716633851987395364483507956894426058461531798564301990851700656414896724775145443645335808425986542661061287387636541203689177140154844347854942282211934876496804971798965691066228568135635624912997639337290761587753538274014784626410908871780141964347816409006968466843496784068813676901636310988147785716855630870301646435594730468364533485184688366493061600694367838221978060940910264661199436616657791089142256782417442732693592578207301729811130292962792120973349918682418616388779953271313320477710198163097034635497677530672913487966175559120046637472861478518630227363689386350000681697263002690099368879448316853435766248166371461036604043600124991270654449625195067904264901014133132354699512472715151502724745907139135856219702991128556600558629824991243199942189280393456484089251644547026810784071523374137335038744109634353043370311837688856847115633777403192978616649328404458521096820988378640140573272057301852511468337332582671577038165579396989335735745918923928761983835436696596923744730145740689119703494091830300993470618633373601728808977233233741701926220112752329398074207788079533913035255831343072548349842487460532502151108859317980138515776975330806163910792846047039484953447640284412758736139155495092708658854592452346847636418554989216735005012182140073916475686793342679073923719040090770891503056280728679528194580518500189413501803954112752664412270811027842797821316121722432125332377950118620930354764721656116901772320288771897863543615709294421260276102722565012131588951112329966874042645118521620446522887266567576218640684713987046588069076683211748917750924287381777956109516638141950200632915377890525322459202365374242982911843680600400060429940944874801042270286952445075664967594233659758862889053545807696350597313084374109697873498800180858587763422829860162230080605975630967083222856998331364042503423432787121273864972105957190116373327579109205925093722704776145736827044511091863953229586439327954600155654045409720046791986509933474212009002941285234025079090683952115348310137761911287790409729525784956369402161852773067649960148826736186260876671602586820939475646854886142447691304595612537908594266207798158046337323952996856231066882816571058885335428228179673605715377989100004487206927398326318961060173404171306770645540303369872625463717766988874486496390632858443117957123248441047943210911489385351919337437006518912082382787161733666879878465977958212079061972092435137442029444534840131877145547594526285205227540514794184297320815931991626155093589287112294834029233650024455054869272273494412325941325393591697618869209465376846625509919588877781381892750158290054302973899085159659339658947465445693454676927698703394823674304408643968507372194189679076059945882017215907660616698202060123955335820778026674809301580426020154773942583039070421064171555586115295894825174346063269217098834457084267853049107286580058628756170131783173013000806459496521086817185025078040915379395637157427838312080794435635455534928064116566277623965316082945533718597520296716904881866290814757393175993177172184522849354598943783039223649240685591211522596389281136042788854903602279971671592570658683950874947093254642072452025990685423631625163729051688999572186974345906927140204973339457727926714688892424653148260743982744721393110120949627535403839319829306345910132342185911932216673219994799384366195025808674724327462365919522379535576047294648313237647519775050818315774596317649588069656930318189692364432222060284386639259116676090769466865996027430847077113484636288072831650708862243553076517586315072345942304618920630220516161029603194295648081152520124020752675328179000772535549633250441200801208796210627471943956491070033708881053244500773962638587457109773800929531793260908372890485302222091969426248337489838438394282722048634363849210783998482436222130118981502817980652998913617411578166738350021189165698325172008595921504674997166097679654641200125061207759940712354180997018251632095976286948313016164083915002357618801065090174029190832191601788408583956912415454907589064750732286147768512496642380539278304392366669266263534679998997913157402328879611392310717852891945100516747719026097656036501185774555105759533667794594342858115858674261899380616774309292621545589283657285417739525618038323352740318967017322620144884877241031189212232182268396340292662128647728199965497728451008017831246323137859061197969460904196610756391456383211645354660809031408024059168795676837367272454955905581135240142498315997870554481440502643196644972865475828041408039737645346445021618180630825646067351579724661336542970630833191661302375047701972039902145666221916289794973656717140773293307295533260379885824496189342734705212626146668120944685479911988213380144784455936972315613916111452104249616834375186542198511544132092353665174343516283746675747133390322657332382814477065633009781015904600326002270302679864240404283665860105079013631842196323870863447099161480072651090452668600915547719855850991700283329160418036196488136080833184597804327490707170884072606324018804767369044944480186538706053991159345801829189094753769737833675218640041576958140896259051748952295225477757033882465659484103277879227347116000343451000848295705087326073547531021859417398268920629253234406409562362762949902402330419946636884900657483698652615766508506199524813607046708601466587067441600340127848107981021063097511639345521071501799904345615069763957738099682422650600377057647805552114271877108816584323038256666245044650660063334173503786376328413193396936107709609829652463212264026675081002433492384041658652610610131001983508123417111948582196642894653465263011314510208820556700807902452460628328999924650211742076940357386793522091847331038198653487170689766658590879036245214744066014395356907765115999811342376846917336852563402493489380111967535253131235819275310339507646655164058764908421067955398341406752723419759918645729175328438316368473069467587885309642261028587761442014188922946040596986814818960170287039717709757215229347684515514662854897303343944732324133175803697370152801021956729751505095071987962578223576146686562517400836537828839261574840573891556792525682569210145059315432156783344258429728682780913439861281462165484249210431852466738715413207695370322708508540480802695500492360327875933344932097529422798899291377683047272479829820516010069934531370949702786143295707465753220601342388309887471306931318068940146505869254801981591023227695824364264066637215888751135658701757860888517649537908032913411842084297846676707617204338692202127061849139049111051951603806086495498067374890648987645452582133788426529862231856223905424982566633769497347362203405832615213293315656302477328106951653758429407859631050393157539942649913004699026293131503883605610138377600960017933788405633097173726701604592077972834576785099897505884672617053879676022667910322883232085233280364645129923275412585432217530438746569979914928925115641496633453203365194854781127471370048418095208688402139803516348602776847861833421893678768862407745859430294894017047678419320896276609374004259912650318774607869036823227373173541113512094449933016225306312882173523398762179682173559177971966600829097310026733663219880987748471338765196194812578352062261742318686640842349046409324760440451562842380771841997926506330238937631343942709086862781045796932592300692849460991513536358303980140894346546918273109162734171776839654413691493914181728832630010474935207945236309672824237392727970933689971287910127248853343261371993098227959348526776024595210917941840250960654951860236817783383078531209326342057305542962265605915315568681846807053735836830489385778628127030949570208938964057927417072750930300025924950394356748047406411727500463043887569574284343640381926155667712623844442973649904161333256797786044244559147063856430855836533674250872812846609424505527991663422692835211082788196478033081648837750480396160670355123052635871835982225189491947155223428669456633697412334244523874939126981632834376180619423469023692876541214016049392981325857875803391155298059909665748398655931396726278772536704648025179716344565640823937304515932672497083127811356144014302294626977792766581269265794047274203268371902999327677869845031426305615671505656877457387763503415112512480690149250877883629568098216384521359425501357025906253364538215017238221519136963959615141522845517025751388922367199251657478005394009724226173184573371807694865815107002164125185271679499982456299993202425236279108644173083966058943305368889343755533956237986881271793645897783253278137535173643340466998395046188094611545137463263595347449319073051093656452193204801845514432855784237783299307914015594155841931411562516678274757671896080911808864490097412162896525610762331483968082687546649705401810690027597805920176589690088185501988826729411840898088502742063880584691322728440416623457790165624604124362548758363549705192320636407801011390265968446585846820940185563948638357549687047730424613103789419521971976312313705834506917875204151001568420529613541101793637316597127544693622603059331826292701914731291343602100068137057602192880421421876012848116673538360864224137352323235307675903488999102220844073750590905130380991272020129198342663431225756249639251816648732559828436819198044079246474062193735886926070827688562497458750467018749362940501494548606307240923285379622173850532749214459740684094636680051741058335473730057233086311912581861501478143790224811984519688636777859235520664608587399137944623838821555022909914490053943932728827558869454986677590580546128642299918480196221457174085891633650619274203582528107793361757125802441031998938621128191452282695274974168582932003055304615649549441376100292183475410666669416753165349350154601316447053208952157824322625274663545626676534008816707923421967828242722053807060311000597863729571575379361858288978432768408627649457189164878939089137105231335908032088235963268985320187281744619281674543769442872926503922359683640556118998253342440056486931901614805893634443227695399097396442141952621602845908768377625572640009377695853670019235037244606658955192615751225763688890256337813713606829261360140982908146343274630378850336602265463248996592390504252700777271832155937679956262445805583964385044158910976806788893747572355778287989855625939534946542474749103476836691646143460293147153967792139448835591129187136966350951185896499463588548115598585253814033694727222555987756895878729352730895288269185291051262895593775849186663192470869293098546829173674364230687316696926475348651693260930141674580241819703720388280591079018358215700760664847570121631762570799980772325915439454069904369796776602017085023127896907941290145653182757169055279331360843731110467905968398112969064423102867225456584267193757512259372591305923018759632270282647302326879295571294953638785410855182216086499409158169423581912256777031033013073491742555851030221491673960271654129902770079980173727909118211479334455211239358528234174343520304368443555823633150258530171774210187689845839189503912386602439511558084553517943515852118643537803109032694929989955995986655359565831895380761903246255755964915755216076205945993018066336762737154088043202338416455410804624978710897201313166451341892983975355141075147240199728422027215953742537631485005871382014393189821159471456508442509244807006514869961378507288573145344887932067522109083777030003064798118589468414241535541575198058986681398217985216984982598264720999971339884676297542309485919689029474479117322021129699614027552780893681510611701133122699071802602981809640112225243231414227488819035119408535749479274894366084884398718375670486784491532655231920003688042358952360392463829381246628750379006475632329257998098812704225705177157029975331026916501832726023127979899871050659063257980516292934841836691743852613142610112245385551149004556816855783557973296249967740901352073474125382969797086455267082969096978131306402885236391867088345782405166310803176473660462437781990605400184884872460039952534616391961277919919049284281938671236712774727196113737039625063888670932105188880952066953208933174583837787325167564388762061165777498522301092686886732594728506663860935330364087418249616824713446266590896868124374959453818151245057613198101671442651410765367970778183042420725879871113332503632747518333456727038395396157045503075586468351178736617721737262281940703019960010599172972569419687203273273080989510604487371438357029133957718321034135874483158240616668242760778974223512320068317882333361240495436239750747756485045585457958621548720178150778953573625166678364126477196591854618811457658695279566170482199583725498279713725312056569305689394503118041395213160989503112806278918628764214189268662184842055783403701319811462215340577417042733332843653781808180195910915006842179341586669732069481983920916837147209690049188304342244334057427180518361695672548255711191960362129437869979813457577990150008238515304393852319798576699851347198477530606795643928657315314131736175137062271456751888422831715854123895961301394663491502755510313651921269302202519592894579719459566902820137857663828328981795080123866315936111033804665321969641440916321040197982233043595301546777622543479452270125367474336198781921114153934895994731337107831711999932109552786387498049432639354047712588042843757629565406004788908006171394631178006466774981306159459759481233148971459848968542997408345580441488204224582694384754566282184373989231556782027425630818248471526926741339006702454112983731086081265901044975440979548582262952878209610400155016036029061848964274213973872845470769331484838048199712987477997261328556325472464404804221683628204746931304057457929323678986724393008863218540463438600233455211253487606374553371125927026377232535949248702333585829334012918678343064639065391512454504124098432408582246466306428125440996589917069790638224071272845025993438038226871561469458270281754238658282166257989290359456393344552620106812452739584549692496033258697575042326492044465137710662160628476620388325805418336578681325933628410704271556432492276063635159638886891824925970580303935471863792941041141508989512390592133979123484055964821732612376621783447523794452694106511808280572705366272460766004313332191077043350457876036003862019814856906514900549087791712897574082535230395675824074746446923972439087566400532916244291123990415491976486459419556197723420322550700310204157152357648282414746753711217138467768377536165924430936464846358373736769656701640470577448782029864280577957640640727018221068081201403084950920112967188451022622441703659320633623946023743711598621283250554989990825661139121426015667008637674911336293891853984368244322758423571622352574157187430880533889798566206259171564246565123626481738725375029463678896735656529761300216736125703293575956007910174440126694532861880635127122130131345666103415630774962981664166132443935697763136511192754138457241449066069780243013510514557263961207921492640199040563898327141769981279785221641124959692492520476042786908588363326495156744509743340228253497186555220750068498645218498066632366517364576877321159607823448063401539947213005600461530398852676963696934598434943201091299018780266260606952189799304294167986865302368263500860634908163963186652964311502386365881866430256093224170334679003407494209257813231447393879147099059306306090075778825240003562353948247449118635111417616191146953913574902143983008831478573436742988883669097660221247158291604645480654343709533763984571304161930870918015289357526897177611617962831235875356721041957091633334680755630075877997129615670069376678178244109119769334216194341803028960142954243674056886430518419697722377784442284345046513329124029115371124079048792354793858948416705246322679287747566386678989854934985073050579828227557897141717879423430964691437853178957992556618693090030347007407634808013309619280023300481470044805667320313638199804781535548280553748252761644796677283462734506078138357856869839318461787812036478077588582642421472628962692956875661070264084825955556874430970457435255751802827622402020467399095766327540440552894648328995259136662329387584817544836213587108913423035586532628595269714286653572552504806717801723465371256367933063690365150452867249932087975401375316278551887832451973815980097191086381144454040262384310731712326942165076056689995693800840492631129880230623558706286163537811732767833626089263481720005442909556857337133194563550243997061726401120394862904582186989396814340526528686354941032981563454321771043863412282566532088010514379439937598294112304580551306768717208103428458431768648499500934939297815544095828434787898993617396517764647934760112646030640445738080869280956484884035685074182584302909666514168773112019305113207985423046464883914416346915165730667462616205052186926825585597706848668519811187210646291349771487841481421348831289150290275957512279410255430522085520380449912812075509989510363156204076884166696950260138909337249834208665365611202518737746662618904031785448772756234261853818443334895878558740974077334561201515916608355134159998556393989311120430472115730933260299744455529270554909797542119497557943610807179904474192941214729960602995568131439314749637143967979714319616940923611918030186360829314500312526171902010531203955148096942580770140705051779027837563116801275464559722946528739664869691887667915821841230698906165281795253398153618676485043227004515794447824871442718967212790978851211715975665995660517498731817821834319895897156330106424073546705393402945449898506845850241763877092267382800609689951576237196416729270649408810056742482866047817281915291316304834804808223136384763971037810243286354976070183726379919696857824948817445554313612567010561860358808229071334164689022076849182024847176925725994825978436812816639326017105004922722892983225813934771022336007187130934862024298442928004249763391008083678133538540358851018025441435848674280219788406305199305780430112175042219867916715941809453325711552437600898177954017822033671093268633903933392126046376358804989232409132441565181122930344717679903302594680979288378844749668081582001566777323492133114634613273722227778687647327501274777652634087950714471315435459679715865371186535597663589851325005719692433622334212888136627604227090532814204077904394463698660447133676434916009113462527253222568348898558178507768036570724561149926553979999492921748851076075672481585910134512536832752174366288232500221389501014303172932467930986419460889392103293425567012626870757405579187562631626391747412244166443359307140969065095163454855475906174232460896652050970619812291260521517554877386470172152357287151189994307712298470787761779954419643711746233467678074561828673376507072564965242060734904399855688340814696693810712243636557406512633425507019238043280159983137840567253980948029305785987969951318419941562823405959492996304353830344612684807383598552820684256505109028279689283235640883993023986443236621580514891573800198626176879173926754095429078088887254860080344888959943757564359977940424796614576544176261317353048214703494690573476940815630101264475361787529471458351505313940663081004668812108453768028522657394305861447692451139700420407526850536385377087248787272359836061406284809802310743587083590238805979018562946882732573044959900332129247677947860097284219294260897089683391777872687016110776255096976186633420179688419928545813883463519694873510110485623362460674553357432728458082974173568413211880275260376890130690967968764369036361039906492496677928866934214308165027887749633705434999266351455875137060952981538233266766505977853898607069170879003060198772730514773424584720275454132840072221619417709063266752836563480680592892441448411429516088598327839090926164156490518291589950416942202927265897993797855526278863093069399316783523439481278579089861132622099192996695558251112196052427841240843200508084948836611096078966194226133799243533360804084533211563019452553459032195319128510059389518053295140438998568531058875157347553368307829457990663532075094471605614726754622317079186984306746483230471187770319915121186553332764659375447361483871166503590636459622694212244147330998490776013884688530436402784802711349716485323032106309000069230138884763077204156495004227352507119052599573444036989149915648529522033255185318825915767521792259503268723812886329510131958772048856013361171590087370326468655484825919340278354073705858107277551661621679384279384110484534194913984978738001643238896799312885535594645458266041703952019904702756580838171002854103065763751601144326374239540898173311852455174128554968922429443804380585831152616652876640169674866198234983357806855795015038350768294294901710915630255457499826917238342531479719052228868532043442797885761526451902829640820279561268575133506977060241918686576619945776073917090593463397328398558813059537088821857212283192283509214235453191597092736012218554965446466776147155330788726953097562939473145405176806247569011061480187157274766710810896386310159977859049954222610595573931463690980151460707872919531911358916735311810438144134848496292725470544602344688301515679637466501104111829691122049052578051222351504255693773341293023268572754226006026237186187624608373890043402968320786604741618239401375554014345454406933754704789675012937350841675209881060435281253398171932463296821532207737413193599896495976846029949073568950534948489512978180547000851701077697814264466277229423139776039122921734894884820714328079558859849515332708733843555184258399202267872066276883339697813476691231694467578065411998851990885080096011421730283045067085836730166399008640911283225945298189106640990925067217011508518105569645040693804433676816833021819489655733052181425837321224470927680108019284582015659195347318458306863183787550971693845744720925280706123635346035263793017315996218774276780845788858260942121729377573470952012504054665518267628959025551687067702559005589657530602231654923923629097163689175914519723916060884011374524004088325143315811981434541504908949551131950758388912247463745326538718820159236801928471927655803696339031305723155170808641268287067786784769037906252119541948385916728004938647109659660725309477867648932617272016875527950521985901032840525642672019200004211638263317073054853353807379611890143494371186730024142970755560463077634364568293100901013808594294909819101526341124834109862596429410785634013107680751734337741612397041735994220646030570976624674400815102460166172782686491082209562958726846621183921517914353576260514708858575076870021415885840615379556799990762521885606619029680176182333132962747511427008568482037587906897042518874997755303756179188153667535812285206781832315076802218933125912207065879101965636471628097676564657592776988474041680283888567496666038268194185985062448297295145107220292674545146376739770559125452566159511843652224420284892745960282776999182805541726837438616058590799312401753637370698793023577797342478184649462260249696522349457058617333073141067908187652438874111396175375382078199156419608079186538070399554871516015332112385225242565091390445894088297506594629247148635265471912490266801191200680410294820447589879843881317004740221075322823481929851218283812073172287451965735824898086401320428706249081732780098526978142676930350291719386078076437437685304645251202114418545374349986468109957952986609757806233457070006929613022848251599994955874444928171667015085871497448032078406724354350371942911864098932992075484016326188483910271210885455190840797170365558902454197215567541441923706630430065338971848615288459833862205957751527101408444380885367967902117467512165711083908832658686238561495481160553856045746175997685556043506018951715726658004982103954965484329587295501949588036387345618816466794319424572303243412414326229919281326847705738293486603797125201507740461075944184904664514057573833188517915861493242762241850032424408039397768657268011933380005017857244778037434077253630352392986904898155837411132310944049353795246538778982412065874626973302530848491617603202645911597198090053798200838502997399354116812534871574471271288088234773829400247771664114173107159192610277896677828147878902881945195308000927292687559637930782036245580874046883179645859118474018290803907736220233835863232424563955947618257199632448088797124440255744520883511092958858768632121104549491156037351120236917245545727904712302475865209837182897912559793823046036089840292091856131590060711942789307898252756128084507845639357417776416943188605724478954688518736396603749852453250835359554805325292953269665653765062003405460826600079269465286409603287780103363470094077865442205687791516829222057068802353497046074058765910940445862025642635662093254618700741540016981084669771162204436560761102719739580631699910662823869702181396053808530897306773408009659288063632317772740604986694615206029064167143192054974673947753847606200515381971501572012644182108156315660006555532607436089284459245658945114241874583543787916530477275796969855237747706637503286199419997663116183735168057114896739853221652769199364984271930287627179506375095129907128432930316775267306430336575734904643737192179478025529541964018726432917721423551637087475423436521345374699993836379955649546531495421167490966536190628916620252893537602585691481962613889054746035134033261424711347803141782137186214712490432311850530789256544110395082188935643519602425487617848678018594009721234546144671951632173265372211655183883058817166768532585796138491218042551321326069346285383027941049612623596150878397257229669497714426409720404861944013695678598056320503619059859891846525063545324175471456866703266747869896496573682786461103441224748509967845621877311257538314686526894303587255582849891653656424638013328547289224587932074455446352137646981698486490963847685796052080550080936155559729276194072746515592731308747025167419012427910042850528553877857128269554679899265627222700847979324954246492756172203915250078371990016730146075517577870359079833187416252502279422628833964114044901358896082950946577374290096049555611409296075071101582891136148760014865506663384757086913246642156055959586285455378745113107852997959942210761886111575930228169537752287994001102161641767194385395336451546082127372133179765710175475932867298653407589820884239361954533841131967708131776370609419233099643650032706909318356437727282192542968796090275771796676272453705312273001051115552941554499453525030167393955383211585680999611756569334702113103816570837070613509742622593832996155267051767636213782691488542462053127456676700340484556611815529663849439436743962328353331340329960150790064643809222627017205574632105735931095035132529861021527192124957237825077551534161032452428196055493612864017863662345749880217937088487594691725100191276244757708957824103085655483258288549145533500500185523860630459899505692964551359392724232662181205458118970045734521580920749571180977668721699024989631563673842488018498453279541179342445363789448974515275075824959317600279617536936334475850376007263190505835339991362749595291224121820621902844227369097414178635384203863261431661859544766978149087557248385382166047828164806847999240654182210369302681017394188529124126365747168427580916485715322181170118595628205651831127227475982449017470390559217291117334961370992682277663772736414589554832781659317146324821906730091368511315339768211791747413103531765365698799479112727210375994417155254678966869306291042491361871765810533057142980036327557559259164870560760401187550220999063436569041275758264048906624725616237144808966242034068680409817078959752762744438182574959395470499290492328302589808648232306130181758871735464842014749420100176874179593861101652685768253418504569516573311691175568424442692592913350259168180538999261568482310103252564351828763624123289635004251196732789455334213256159916375935158727690650496625034605099511517174037856605433444741931257760020340624741355871143415656117577345012216234333870838919355868455499467173218815143398743005071218232466397249935302209371890242587755001431502081261746332541609944141185447038397791157457868737807962690321376577379748468076313486418487174853259522681804477038156087292722421690391119476739522564801591013247937549829142264893185290457579586791961670348686593870883480042143958807481641127392885658088437660656592465693414753538245682078768791284620856471636939732940286520779891504482256094835321886319598606694109314242820966412155784610813921943978613213402032522936170985752842278343046516518518439664669711610086148323220096543148265052813771664574596079999839056291304804843411878161184352065205420648845294982765594334287411987548473812555833496553378980182654658145361510836748590260056062582554476843658394031601620009864397857467384714623615926006324626714406737950380890490134446940876002005933598504991145926875278021635947581544221763645811054422045693066821685328450088011339838515234496731123806063043068732044152419120144661985365314391425248379701174764587470970233658689177618030360639463326581886489858680431182511919106074382992735879869143376107548517365755715029159615030636884663604870703756151387427855540421996641844430914297159136192211308037768104513447063872557423587387244358710253111866340221942376587190289379506612663389332035433886829153333448552650002435173668375626824173425377819935163630332160382603346492914524911569917116367881427164560110381131027342111638965014876510855802696506494385822734095517421299126136674426238851689389964033959662516375776927538415447549062861050710231813791391514826908987692910350049729971013007752303670334276430294136528935516094732383969937483616152797287016234131725561617663579592897096790042304583985958838363520332459336622616086132091133163070909618009495803341056555456542582072650015602768821059832026121609119415391257063065188756058708126713423092986200966806600915843053860770008119957642062915269893742319316492356127488800827250579681948409565825140650041097121810175958498697846228771021685429564859129905439121349168980946578114324099851403592757187811442005496619551352327379930062080812738326578000109279509779699506099582343257841779355162226356233371453615105832692878861851653922448970321497281121986371888182683259632855487387788526277956449381174609583579477162526866655793009803860162225005953771198807247412650324227388920132578128739837709995325935889106194805096360236666940182283681954260225487543608027432410428354692388282503599091619635858157534579765798903862224854814730827985715398844239808635755649997135253034043447909714791468075307150611550864385019071416602044713512211823749820581307026975103415831501023758818019238875966344171978889033727468446755878572594734237208282729612704843519634729331531238106878295282965921004417522811649327602105744716726812053390823049830775474696124599074125456062140662334544312171769629264471121726286670618543071579878235268414872051421217052066769645019372831146845805050308838658999207740214758648905463243622673831562622115071883498803303416202123584275503853307165370171964616420695799887714919765386638480042688351871795925703882190556051167508395264352712848708167601467525228435333075498714746771265026223906947320664232951014041681539918989765371104083842660106729670716056880109214463112022729848702174412806110301340469303357195521702124395766226755591666185158025487806738217878766851485215387461001190548594357913025435141385057342397933311099649833085890923432661652580991466242467007621115796344163800729188368665726127503868941116207785475500842246373237796904821396401467454322273588308897898052337259717421062087603022303400607928824070735855110800615535517593610371569575496719725629249773584439362299782612781568464652036984552162067968427219633951095278001624333386088413369571875363687514143769902908853884428011245097973569561020711724994779163846747179854158507899595843874538263822844182106367578482489268365594229475058037574809810115625231831246491131552345815455463607208213449554906919729301382036242825769579050527243771283555657529554090220542726942556195663489624174796520708575537081757482709150680227881846352658636672650520344133959030086394901222815801276739869820123718501998754038877203409273170729630719276560272080648703105061204851322301284744648048203122146043111602997527114510489605072056155422809706416393084262810441339503499236108311644375395243796772491160455358745637624697173782230438520184144214030018378738269180527030332280602807917002742957851472436868263084866780066729229991687767959773860938103738458513169309743393596315416926486122082020562101444433060870073546385000869262783673524145262895821978405208543669626434568977402552937449355128228732530748550220393062090639588278312021444760603942751999950050980922395501482381738336800840103953297800357328302880489512455509263723381572587601422876734636897916795461581540384895681989432646979722555695972960990579087803672687682894026685911203597723369434903686290290342247776435417698970363485764574254936904281388955946823681019938317499481446775828746919889210961197724692044100038720459409521999496972061423660836583026324580319933610917651567642672190557373914151976314660279733777115041535860864886841476760991411234471547241712332646140119510391547163088674551947803875707306279323555622076901668259551285079842256071927750364934350554019128486660019208640984249686867258649727901263748541546728107099299711365937707227955376563565844098019874608476435476774814765880998642385645643339881204108068031658413095103530094580247627772267000013472221621025095273910189335842675780181493348438944173795838839299701773785610896469896581919859549469502712245708038144636709237376981042120756500562817199263357817876983111928847937153203792454072077916221426485354237599492070912841461180361234505499576983400579396100147025359942818741936648022795921605638599544325695619288998886900764253236823995781778933007216485549756787161443785475773292594985812111330391715035515205257578391413714973935661038194479309264439913188860722586227416206672430907519416570132517538051891593621028989505142893714672353365277070153509045665144996718860785237792831980904402746700048657954961596750452295230945567827752044360648766700231938842677818111258390177897770415590439915968459843024202873566177372284040315865250145110408331405026687657081876081066904123387116995016998681182411909666547816226908604614560462050467671212828592275676402602907650175502630772051488644439460548985873660951973081882368848815756398216103129136243103073253649748345170979584755712209069331645632047452622335018333456818380310460556257943832823273491465912134474945043677961541780601655161616319489080751243504444291519158922969503953476279568504714758595185342796791313956875219075135253095772358913856942871361909683258005599801236934355779494195512506881247888920626476833426485095418454733073712112012393124281891772056490641690903210338844591105244508638204220582137202159612611257272740041537269681943992675744794893726433250927634972642446164078046682442005456456537238218598831604713085887957222011609061108905615567811333461513906503673714250548793028195017760736141196939648278046354874235014114120509774893318788077367833506223791657414418422255292419033811135659494400191781534618224079741473631340599804468611049656770544516778587257244836873271911956594477046625328854859729702953464387092822052718708760737153135536770706433974613843663739518195507466584938246822123975536250704084760061348742665320732307526925178605934838197283956877365459939030566143470928552983013536193725495613716147742731055528914894451107447970791184848904082027512469969279213505229455436277999284970224885646258901621821406046177724153613224962760731637589023561152150674794770748763699046514634229012983911179840289479794982205870359057733484717083501398971298660979968766851276175660259054413457996122525698221009445681346551497763445616536872313090252399606690584541997070364245654475651558284535683277197504403638108990394213312846199225924731713581188867050254687475722433324323080715143397601890577420552928552611770318948638731546169679325030479003091866165217197753194683541624636945026425033685137872117081350980137510595569703218932626758806852771767567285188413754739389538626170329172583743059887028304493757766409767861080106195830396927711275009985170422809623499394797672988371603126482130693463882888548689448402973315836818733991952739060302452534261173849727673739227235837132037951369210429309613663828368790499539304349403228781285320961828710793814033983466539227220534567823761909370694671277712550174739625665196649627300554881877501343027569466526294575206078395958123646680699849780037880734468126258327823541288592969987382572106877226499536413805610528978252343756778574583078487513011926851009775307777468305758362068086610545239201571459307206492810965759996309160796228402632055678860836025593004073911526427228030407905035966556102235684205697772132477431768029735436450538114703603656103384456440899457971790618958974649786429156951126372003495960565129050170083915907963448896250161173265440563196530305457355922242488621700467198338292861766654956148418395164849053732892032531358821195846244036585508059959063920183374835577201181341811989357755748316234767345541390716139394942520745872789913375698588960123987378259424863286317439111626836312133817521359115419490338156187317339948041419184773703658873560428699928681112656001051044548548369551448286091606571306128432210772740157484055411806908366796617546249489342877274712627216486715169749833599971911713259407744357249178409215175359903648855637085920587108893405702315602733717018345474033310433404100077769336075884940801781478576754366653465173829734522794213025546491386310944252082152749772109922693826658090379093673733667844448932259299056828820362279731024875248628211291177843858669254128767989074215824239877781181737003263938591363646676225727067189851353994032639717859832633387135365325142180393425502834051311299476217394444616894362990371223405942923805477984827016132975292061871117091752294320158037811407542340954977400175632952450533871205295648697451829036485539849248688469965907047347895884500740642591685712536344189480306744315029932353628860597175976197511766426514276901474199360697082636077306104739272685955827473018685185172556694566028816242447858141768790465471769350844974733700495099662706449068533523734863094241828411273288035816171742556088792039307750414345552419595077295023981339469852847966248798885493150561349449805313408449596733336195979871775686249155711380990862807221486011297773571533984918969143298828570799038598629408545145786286337993115036877276129073055406254890655535200232088613502094424230557022179455336621377781951664054695278154144094906340611666682705141179319183903057956127793060417819715349762276888195855098590326699851004453653234988922092317424694834600293379174327668660310657496693429586827679956336196666407015407993563354599228063317162105100599724827771505738000987127368415062897656849291009017708806840126011737627589729362619123487757714334013550778617242275758486595641033831033916067887264606860269791244034458090370770127753806474910294947046507521469851385681270117833449316475501118819752578109773199064596636337436982345640064609219276582786510713630532604482347045932422182282356901599700521180817815643941555690251643631577937071941937887272558348481550848567024823881495025656487370451923666222501715944705407078331033606006175626519790152225104563838229304682951789654238271995203175166700647066763871603829590457262321026704873808395529459455736442168066244869168151594412118671872619862141983254102542722925377934008739606620535182722923320089443082609263545713119039232410211115590381010207222587541712956913064172183723085823077387988068520919422409063953289004547888041637357606304580247899735710456205066864954016379330489560647735964598906426515199260949742025523603032092732359261816966633351536120321468273692015015579235562412437559572283016051667407133320003926172197308366587385719012152369951373463847848071620378483108957607193185712883873322177864211303616046688677558967342779210117249369666456432443392606214949818003698697191200034781155882776360780167099508662202839722553886901375775253249712362472203414525837863752725875551380642830646996769802582059945085832193450426562038198782797718277194291394298817397780144521609841370357110624914534659474265997807787116625358203004973209297075664438506559019968246813329535870029655529522267342373694463936139137824085665884649658238240831320790252848737067062675980226929566683247997268028447017895693199051906887312554689030282147289416618023810841328270345820509092412115173385242685286952539515842102237124503359843827833982742946272588787428641950651346726298103298940705467063999098458551574296326125770518754654148468496447686136024039027084809856598953028297347691901471697394144510943464998648660900406710400923558162631561487908707780505457670852464186827353813383490349243518641342470403558702439930369844578264280092461309919995239710676530116271376431512727276245860031295533505075090896869126251928481187983441657204266712094350272995657453847758395680117176979334100158115958446981146900806955589322116172366621662927844297466080466796066370284728406039496406581082422570917029066530020298302717203749761892693219724526110618136129004148278003886321589505387486959332603409521208722300969507091218807243237789390752566228087813458776482886462215187237524331053422537967246292523565447128420527537535483243334615610724572833419794740492094818109394340507381158327370972817852011317107127769161311718049514952811459976676139544131850213081481038278913513058156035939209147700843232104092346286263022133918415168679887585015714404088119087544469898380277549195397724527372989550492606633991196458919160270579787432690391715201218908338580174531301529619906829182694340070261292695661482759227696655097170891901519914338575718667351077298029969483017661537797376273219757776089023250755084126256732397142149513967815908849466669056259184536892264359733509489395100790445009818555662784199986667214507571287574453887173082787569106593575728199320118386356973649388020492818631009078065504646462138699782521609271449619594141415432610050622285398571980544885269755943467437664768534410452713219262399185784344751090844100618618784544706230714448351716802821064411376984696998394249638839327245968583608364955507875959019414064654479772561957915540657638142092919524225030407815504818216413602860104935995581860237225219773850455169693835477395942299550866224161205150977972505916063466008872065402146738610748875711106966212991822546039263314045775482748734050447886380808445201999735042424960837952515693516068657805011747173107834298006807876386450136137981153831468607983914694454627092789192041502801933164374921994210577521069705537466410040551092363033926234682827232757308399565945861277306685388307816237067165393894153835876072005073952851145767722984640494534033716643090697985456966940673316363992312529870187960153095537810432677472305628443962052687569572045111756874569256295034075204016870633006978411338020837427903613390746105395786678772279728587951604345600381429620105951317803404371812747185486074083148403036857526030280405841404960331019296476868762262982593890196005404563767236684768930594852386481378220210918888800102676490225465421475162292277043335780025882708378893388604088517572197739625855882778834615250750449206570578574314326063475799783664204005585783182713238764349000696153398714234358722706325962556200231098453704251542262313582415116796007849728483122914031602072140428168498870445317092835170531222874996818905352647842900254294247839026076694300637656360134353951293147369403218584046339557241591250689840660416359950522136365271857356899172297503169154941135565445298980410828648363910036159651723896903651502594732580838721314089386422824119599919924471329423487934121553281241712451087919738834377816028021229167072288606271467174111580718816927090295149218726842548171520660516025879824252044393401950308173783964192247683168075923221930860084632113186914909860100817366671116737120880387045776781718787128749731814335435014100264505946463058845504851224224542587667317873509168861004016670433162590471698873727827924343739701453516775113002620618521390202195335950424332830204323748966681489460885554176830559735932159679994308077243217840933997521327437109827613154379847433810433246868766879981538437115478837246828049071809805668235178339628998213422370348461111785372739385191999545798146835689299985289902413954625357689940630072850123731066618439343520196556408485524107300602424378299157261687990265376260702347211176012988725963337518928320057588893005928810807288806223480556413584018342831503308585337785021313816671449013718541551228908466058138684147058979295232246740762535860887871368950914601007429038714849948443813726172975385542782286416764891599630873022642529103562231495854492616858032373485364635722616298748510686990337233259406628052759186535426425645236593796194125658818151829583867250794700827113831834575927547561728476472592088408500384916809242508621553429006136376206288027027562553269666000136850004563317374417311430341020552754345263494034608906477734448702614647725699323247507995578874897019221107114202486266435162674901283648820290113404571473297454035950668360016160041724699663173664921510746739871835876391089072213226820828505733944196829160951281914021538809485681052496462948004238433803318182062925908430292260709101216343333640407998187606758413319093183209847039104729111699472553377436840515371748476383866385606649778148206499089128270117194495964545877190515258604868189243637137442447300347735437536041103639467075331923107210387495091405440340337220391805276407772074598593626358340235111917067998452672792829458309904713774773672846883257274761230150593568548245362587658707216717014337357714614553958877909824552124620049295308230629977468061537615152972933723586815571444776955073316788251451034101657481486925328022936172621085081445695044391618498383241126963817638648828119142545185038707470954069982220144515200974333701357922895751392176365788825615675027569874632053380336513922387005709773865413920141048703746652852174125913643033419854938879098186737988158525406674487879871712627632477985081382394461418071719425712638460663388556790804681687404722823725285364398622571707365231814449246602063254739900945574478177448886319483274394965367537361304623593727039943684089911966703000187913067812751492153954189958326175046445743315374123879842563429864413986319117305031149165543293364567539408200878946492676014921084340688736544994338200213196412479736961072338986568971380755658113451891120002510525174618605457345958009572965766233231708209259126458200146616658090591665886657308478394128420750616442657460434565946134273048988699711147058891466644967119159259710016338242317363156910898977922067479332005315917041749294012918956477092305307987044703203198834070784368435807592129414609668593393320228909088950337169740593497580865320102789598801450222284309009443610653432285030611447444637092353626225390549679083828931184945608918724830072985122354305299765980342445923963406383600218159068352255162891974258959254568989963536997255160317427295563694404499093962387597219397845481441134000867125450429239106181588408872620047346606873373900611984756675639961920252987354135457191173951911960219199944508716303494267850231135128833344556890836909191807546938595830433438107472715819796354972218500150742369456843964741414289154368869428604272957181962099558081373195199471052383604097578274693561106435264264092991192441885722164406161658415095083326708243608999026406441399030737031896077353711578944168733397980329101760187085298975995295225432895732215142061426230390693534765298630307261260174503882453414013878308567406659747016907614308613580759970432453436597424783467928875177348315698500871860596796141906095673134550711948777739627810696722739597554460196620477499247066580060832965883569712739208000003677840685351370323248544555290631497581047245696075082455189833241543559410712983128472428124069096760720938365205706617834741043131752426851988870057352873835467541557290424797143647992917537739071931658127426259146465929749714262557999902537304661518032969241086341233563360106600906206356583490252558241153130843772982339636014167111231782486284887466912494288119619735931305908976433272498109615094516319461793482133004542010258163109659397755995179551552369534357532487752648042388862611266084595229789746183219408055092496982806945150452717507155859825659881203659252204357526039315923447079690385452654837356325046245549119919440828909621068964877683753904277529422001220583986367550366932456614800555481476553372422048083111674337764057327321115714527479523715322656466270293111343600879988860072202270489140426989716337788786116725797969427551458964138505293932201384705445065990789806907832912535103544064828976344673383200439562465294994819545547321238170363651426192672117529061230081534999687969791428404130291991070479293551265570730819885900025625727993419007949395829627462768060972500506483360205839433338816058012857528142058106315179403072270074985152773966555053157909078423888214910681106480798595111946324768722006566361110434617814595603566780875850489404130119634767697219858442423842925253546630708237042075710324162310561092089654146869512001398919492692124511308092100732582977166730194023173113887642965512820850137355822717135971722751664289945280018202420433086306798613127492048454831179416454134417666311875352758566489994427633832973193849000611175337614698859869488732228927325799630150797647087250650441379909741877294964931223811071719333917367180517391464328044830162198634308056992462379080969993053216972340309687540298168730220282821936768370745829944599232854868806199995262209914183531374255476169239582963603816941039835080105198788528383656875247045561446872519876343201606748522653290259852635038079327691392313712281074317388750927902609481516703238606478889300093653719448301493690049057986539474757459431658607240773161981258905142907722719572882693447200702849447807847027781017391900612904043098603169265676615423936077733154186931442235597909479466759692766627855868032569599007154774363191974806223357082826502965834681128935186046035863595980590936969094961209495571399406557146020043860641370750343005861382228203862587373421911701820537628497076779923162424369036549133663041613038799397143259333154940690343383593259027302908374521851912090010034581889612047346426589765001787224968411075635747378581724330608163098715624916995727792824136207576864098675113112065608039228367325965000230449923341351673292849112596531311207636900884026971692689731554255863920754986268674220805137917219933706981104830086444317906509818933075479440596318593069835210524984716543839771965047781501115130372947003898958309660066760129512297187752183849172027521895454798929478633039644768455710462549723948496702523560648897580572551926999565391976454857496806984378779569956285890853819645381433360273777044302404321249494815093783291436210768243944210738871703131741460035081828141708349446620624779052235713777334684224860846483066458436339850423956111420989603559504416825825928938420375921354004484101225187476495730144462243233353693718953111540137949005235644647622062282886883162260474253147442240943116484541901114797957667687915960581394306790877632702200902350941274378687711725644277421985155544962574956862217065918768125633393555348043013744168551477472763843255532767751008810898427283834125327703548727697669740658716722458579515357880479573744877583304496320700804679529055446680344157222836677039267716534089916010203219934995198106257355797990993162823785303453049957329978222681000929446122508992094737822789228588959545984150026122155267644517221007062167165202040765881577151691742441251795048142588827055382334590909687933645491695324055948034784113523959061348613894075246500232652089683850617340415962994222579096118122662225259698717823825326540657036684247604022095725703259715779420021228479907839441488030198603349076200605943261282532159804147972828186040741051993780531834299754516539556611587700504242768938611290384577247488023838966141234514686033496521953590255697506268404055636066154090329590635869519999571656836202494195991642913868142290449117847232956330531614846074082923178351574695061491935438701792622605076720808603720016049740071153697526796254352322346212192272669885141311465085441910664408434875847029084853782988360879013769487683141213044019296993430519394694136747591446883073967438836405201826512026871068529324077551113409441436549750712648816794310310745523250128724256490970626922749713150770337321362407825878808271289259436186997791717836670003373226435060277569146046964924046187516306854424693737392132691832272962949950448779368656313475772642329960191146166033388949415716216762004142487410752762277356813113934181731996021807152518462610298344531621128335942505652163260207016362710423307483093191360519161221994695673180915638456855506946804148912782551880751305390963826257422076040011081598251019223874312058261214640958939972295248584996531297452611363063734265101156916040729816114554281014847340394432518802728451353624416066725980508647559273076108961577623260687567455782608513957231953581335774452402909167761861074502433633844006335704799367427115897764707200053496639397996073040502525794384600488788460490397117596411099851886715964340772540335462062381186665449698466418634975612212613080906524930919509147519018050983142528483807414517642437327942050538229088248315048003084990806306507840428882078806527594356451715340120559752668062917900326931066827167802959555118861248594471272991421372480623656940704624981196118664643418792481423381526479989536634432441843213412083432304441553104058779393035280894728251730386176657099213155486941852410776597092467837427127085460161472077045942975674736928457454990052269327283098688515875005305953076417629383432641946763365499921549208039434585272840570065270882688349426182378855748024151419482643589966880168613212101649886001797779427416198769780063479845503598514518710500706991861118985259153521873716118574223961912695030494984106457555549051900650340642042992127189016387958180975511833678448952373064081549016734298405573182041906767045537404353148088971821842001796003472398955407449271601695075941786560486237096095757241405742523833668556102662918429912615755003838950629760045777766428037207488234189390881907767836080082875036052274233915976911880328404333971177016348620666186514521288131358587603575601991688094052779884703811202930057865353606957488063085331122078839380503918587749974437807821283028345719494874138522343692366594168427399343244619150517979334740433765331227212529398183464828278919728720936971789950445311383094243280251643447886399637668991121052001817257337017686036383897229386947151861159869722727277878328093333806872175848778150815509916517017674395753802881335312559612594719525275151287307695140647764175692657915137455483442512090438456361776466847419242233189097102721337645242427806904011374507029026344433352128529570392523561701398646107520003846855019628039520561836641034909482835181646589683976718307155742826157863899854990328526586868121765279199119164094597925722094573671870506369192637649899754096352150681106400293850937491455166465112382698500319910483664332809866633192168768762167748545459420588548990345154215374701322020088217604851602314002172501610844252213591110340187565158376639590636809001475058236142707566360347996658050634802659858364489973756506939634478413177705814040451185064313027702517503209043442996595699514780721929097715711111290246421980183307755933935770241794172935228251148955243073677890164512108488552334633185309228940815011269982092147491171670540699083659866432472493606994826197069944853690265863796768783830567010902880176071856141699422297015990456208444314370652995895415855146932877120839729722771315234820494358532105099678829889219836677204012305715525589415815007817547717188926777688406464645809523111619123298571899522396927200819254797873259483334524589578933469720405511533702854048069372241280311485356914181529915185926122009531611728120365544545514992138088109387222629593209309666785648569319065028431411796562720358333762858794898144888813729763977713355889597849252708827117261631395340130892052494588707654220747087030079160242964926839466752131197156286715268531214944599600862267473623630899830784588060070674237999453159219014065716188830331172699488265812964002617948218504771081489284668941516436963680668417631341512353029646117835512409216848343876771752606262219416140894861724309573288479570651279999519221936451948003483759514641964328137008156644951893825713670959994093068413820089902114017790054427965687258704004190585715566915099580090826073736017027319475552632189162218196387945380184673984476548769101292665327346617252051443037550805877951211829969081311667234659059472894937287647079659203591253248055968799668973786909345940898776468763754533597350600448786386641415412733852917045597014509636526537814435161113529406362546207147994176364671692576068059033351170025376281956750660142524235977083764942421343217720834068240038521981150510107108003544935151040744342040821740082145141163176687583301886930626148511498282812678913141470033529878961967123585740155843572270753270241712888090620803959304047685801685505387703292257156332077919718359815819065557681967422880574199069184696069478190169405371321965974036548834117017303007983880736297603791897185963114574517132118379605254693703339353235143604975871029897357825677946324078968647693152298848341751875123435164495655379118621363658781560931764666066897308811269715493642502456113299114061431976646626565082921747059228754181421227374911689044472359261010090262543315709187742355634884019968064874860238003225665232705336181000722343625876007718264411407858379421488111199232692007406132055949237608733121187795928276804544001171041325426737533109091339501751468576478550108568739890619012454466014764952802872167290382862074082220048626896454812952973238632142264816558316176534436984692002881427357161053856950057032427054003960676330951930106540858106972158179156294982990164241892942479645443681751029197961171326027526266681835954285427000734320327654526985689062712520325717963041026019185541741340223634335101596750813026884850400418287230104427197897923303712402864892318585837988078939195785882326058465573508806056482054244277957637226514503187055672996997973187082969705941984261432478843866119683942886593163579984692863467566089073183733160696189319702690279109651024121947339668464496239619107833727723579569790570284872690899445137110187151193724710390648117077916259937510605526778773795216285935332471959063765464173053801645365293084452846076993888801246537857678125836135189793214193615781013562666376630353630184306740316850293863141710251676199990407155030950277979348291846867576372274671155295465838796167703820673380227824036381668370988745575647015603908640033632919594846429465452109891586352488030243611284875929229330108537808989969214040223405513007610442158935132085989838053924762855991605093697943610930454013067151764019113752922656640616260982845849685269851896694058002394373359038608328723579145470267012508683975947368042944362648897729889077730000888852238401862766641146523161439227238856213837388578750137512445528138704600207943596761251382865783805024473668887699949731576143624748400490582754738286229070566736136625707891389776609520037715570548534772184277617190038105860974190698148810810645498546833357562286590310126350767055538926725617411036809807885019050060654844444290091963596360510996444094024447789703555666756947088372601596259252725125982554614864670684521404501249238537335811026128570261328510742077565665547145759845730094989337808342352568309487172241104933824055272595271838444517278643763747908937769765792855498393464429608562906829289970491202303441095507587779023303241720752324010845372597320422564517393042998722765044944633125956014293206983028647907486348733177024235408165881467675809165132362245414457017225576588902767949297156543858324545046956665800124905329611159306181934270035166867559192962019473859756588208449986732564287207147472770900062127151452006218874635446663251003145825952662750685058976863456929079114765924002043137398731326249784864463420796789196987194248162273882626618583926041060817076193280991045642756532994045348716700805871616245509404774473015027636077545145029668928103294051870486418890395278694161579534382382903618319185609904901952969835163198854522042176714703595837510370456906432157808406388171154390773790736467140448671154220118253051928135352139035328714080593072295111651796464750595047360596730183475510729841048762600247144554704240387438963722786940986302489008603722773313311567035862779544804529293582514247105535440527337653873181712279952163879924499304189628745907245567579808808587390308550789331293347412769615200871607599539783120927149360750188818618443419612393433999192198392402175632884554337026756471320533961036557844485506104013097699830037778391746345118352336246733033455672483376040620146574473799309990078744545220558551092589701731415774373484847221601776668575926586415248263150631122640231965160409732807268709219477284148807740396318212413290300868779924570217707793480377784823623648059340727945560681984638931398252194679008374472572724786741300480635873962789738161889955750287885106033330368264551712324784554876219758973716977076342315230000127930004633049559283312954887191095276227579035988015509951034718644263494411950108891135000748799762310732537315278459770168233901020521715176426496754078356122947108488405264406629390042601332497322775603192899132863875523606540380564724923929153178483316425387322562941630565114904307890631806319642321482692068502304941927087937374018895407812975741459646019102703018142607334406288304652393153159996856481051806787488493034864996672399171386890779750867987709916236497925842535569975748173955055650156324233295674277315621589592665999528408588252353135102191122364237937465309926168315141222478577255737435557537270196909469734883266457753993858025852959029174220744443880563153727405923136818553745911754340866069049991000931608676300651467298222821554549169286423510101467087267509419213630907967705442039874861758773860526942289097817436260825342955233763284185396593376839529581843897541548824263448381254712086192667479854332349678900687871689062107079061509609807469156860763704798464813279440278282694631765678468108729019235233692126087294020696571246299098107076988590179226038590851518229969690517930562119293013879809377735316159750452394619423992443349997641803138243817549741244956612901017641281649716115070654743957240930035572775867588778488437979666636929689561560584211486605398328187917671131764536540988990148311460164356700252767700178508156623360571788205916286386160088941738059089915495449280266024685718227794386126839662805197182990708340084942180583111934150692013013082966921803066985849815440446318893709248609548437111852410913672660918784282745413864124383007712178313187183870480358876095130108470410869163117258690134253156445110151234424777738241654575960209102416095252006244074264011912075473571090115399959692343234273883907844558051323705012149610851569688050328705719812313565992985330879998399091709213455782991198086230871803848935721034052878217468469833705931028710200566348977408615817011749184473559854460242427615957066074655398574163495592354533301615470799815175689256563602256113515659137340167427714316973838350308264685936125479954752153654263306855332909807838786209301734752426831559591409556089561888823164019609729605521419513924900002791840920362887748490908211855475907638877935673624360834924619597167635069637706497982050759084771949839088918446520036925849242238280423584817737538339672308444674624414358765508641424781076529445952751302317603489918939217520593752763124527860286504094259531346832640165288161778628866098195600364712179271546701067286846054194390659651626450447317142844766417562461826346319928132430918824430579258281655264388305718649715979504750698370792082009271513176617529518886149752659415751674457254071601586842620365791865155052273462620723588098222986086473562929120042795672202405973976617565021414516824638380854943326177351564515472942825121775191269763624254116564533288883294871107999866202925722006043477857066590301351179701861289450424498565438478217649588509263066429031936898819744710646465466303215258281685847676316292462463781413171909821194939741909312301445447039915846506014810139287197216863387448441563930059836708732590452373230569099561016511733803987618644513746680214016137818161369981743108065867178627138352541244300455025074492010138307072474640751701165980534167441131572160113204523473738100698253224691068282452833521483365488601939540472622767024843317680813280849934425469229602986293018108072905430496615355087953266307440488594545832009037627456881457096987872875882928280354077108887345199227079639485066301861601096046690161864252279344585243224905043430861193888677659204560620926229338844213496850641035319023621748461439645709635920140879123200031165444362911391777516664274983927711657720057665441607479574207149554496102210182703154170753022577329470196189673044672317011819745205014457198635196871460254326830142622460846147763657313229180807474470191967663615086062776587701498083648191313372240348608296586167220167591723309253765520239274685226583226450108954201006756950339770164902271636688505241539633551600655005178259702625668635843839504912323069173998638211470809519215898371730687454261120217073817964985275623440568629155460410721499293714739167513806678349210192399651413826322471591848981619860182345279835587670899844595317654360787118143509377808052169953124392909824085821803234546935113369198459679903687439895560811857173550276534334795738806847774072197358799610422166177953647095793231954138638286515284857976719651872807747003702323483925653858361288537290700873120037731997268979496730784289567566181770583494187591897450356340684381277849145344691355778827684487577531035057672212298021375859428153683551019604038618808876825192357600891944579271709009603820037605497592836426394458153042580140403343769988769205618026535284336422097544666744383721384864360093347833576429633462115012392307390058846759793551430622300239196023718683183046381307042439676458304088385434540998892887878090535109029810352228936649155146609240086270840042817417079730256120881881937717516914472182986462929527933537570774282571490478813459581316596414658371672445166369760060647317862838661574537226184124578683882353381096034616490668585551425728070882876533365407067815614447274705063389589032351766272192509495758663942272393148207991518665128397821079537882647116616480611596247844237121139409215173030037240325966098459165773648808416314452021624536786234912644533615687031061373254410764471673588852118038648689271316110647104709086500613875804023853449628250429651487304533983043794348480466613993395781357384555037319116584563139864216310464797751676365462145316679572027506292992505680556309483373381596799402465322904329041116712858155410339681325764015286573863188271658024973027277284018661345771340799030166257396765866170136321565297317089192940867081561587851004393709335582101990169199149575360693440890835665977892140618299644110439061684162484867825729930936244078295274828684069559408320982005154876337743125273626328747016029099699564701878567631401804986521037049035665955153245232066189679988480778274663025233833523789498021237690484042906208979285369630729774352987682650177506229601444842681332623172218131188163442955925557405272231608604656320104876342604345073830968454953816013189511007532893648503658467990301687397729256303969814478558404988242901397123486315622211881711325830829231758563057241681675109178184742288077777963566958501131917421511396053841551471909874122324589335401846168746809117361120067984906299447188305442636921551751933973148630817916197622578273655502588536071431599621523480546837077370952108958525531838213359065072617467796264868975623983591325149387575807945161125077848385159108201535343559144391554084209763827812110323634034835390144435645327665694447275470335609884516794789742463989090216611299492546350144757490373038552330116119690726449044088810717539411564925684543351091111246137848842210796443231882740208668240119135373632535184755835563615815594685216343814273290062386981110162113494502007590296635934491835731648324091739155534692342363374752560593243597735397993915891898430135720707729840793260134854195948546911506691431504232820428466640935580143323749663996360564887169321850380748600675153014561728063218582790125386956176221010478859362124453612136238048684453674069679859199315660647489150467911466469423102930825110858207146034375501369362305175946276397604697453856607910964954559676076258448204487092668592253358545472684067979931227154895645909096761771981241583094271846627294395010138738697320439592597763366370699292617268367463399459255217602220362887313717810323092225030346646464367399633967052501817561451574200964175838231659553047964215055612093510141042667713322070085081822960914538960708754263173687704498194608541606411180087215725855511322834330660000791943120126895956973335409309242285431288224215210808407930808565770334575060742480689473018116110633347526305718862427180689378059338396334457864353232699606198052814348291691720384984666615078123094484607856154860210287036715311639102717202838010318817631760087397464809535605190059407386611658873705798865314694271786777097901305495577707351043699646476170618655401485854103278803844673897040828162731950916561966138813799387766629298092389476412388513137031774953774118310775575045914816867057631151907496696747840175154240191724790025634704560859263621846539553569777755764238599781630602589480213003720740866822920319893746798873964735267567345424739057843355488161640782014353303246447033383948852557085501015266084364008044416216782402053753923100141345284450897777782905292439044295158433431485999517433225737833559790031726189443659322495213324147978473895472857924328391248938790876672000102115434615243131251955913744925582292609287928661300463241268149080212603766816684428389357111451873685419853077798659218507951885782731866287227514822376910467596314980821870961846030020920058838674499526756084559758565801894062971981174038455135567863945547182602333952065316308813211152273903221213299662767369187712674062949300327577870070468929183122005935747589054236975776078573794598809345897487106564365085082302560661574904612254092131785110083171682127893073763856515991938722545584750308130951853017571075806203700854974857378937194634232697731470857115146392630843586654841374106623508328663493845420401520424739747135981329184179232913257360232528228839854508481258807837372777260002380765184565257655017695071113132796908394975281816297115544456581637889653947410722123961682746791441380705743972670630952712170545776853813970225798473633598991050135421000585827572485250277808652116564645247979113904976007868803778199800336663611414910462885028044821564010655805676152541853517722520808952574382189995509627475930279455317670408754983273949540724923265436470263304939421275236520175905370132508557742113630863762318383730646496007651862843250869414231248522202811433938199726681193427131023324682999352563435525237990742422027715238103105773666304677709258741576377032586286323029671827835260953100001364964528936145649296657782326302042991843611792549306135762556816052997132950543063575564984189710313620462566430600423510931751643127447064106936463232203175359027004219705369504148453416598201509676634415595788664362993535979943464565722666660980435789740419233250821205014851738819451915866608628681027876620453546083886200439060190214269750005994408212858885124494091205208166154256541881481703462451531293214714135472687199180184626480236451442773021428276076111813444051409175484591388781145358044502981764908332642005336099471694385400177441449057666448578273503929738311722791523480262141800243131341992405940256819923402742820281670756725215812298685308123550719139230122638285029598461024651769915347790338202191930167486075014790015242543109441213008915457819974052553639731986511068951133989854889230266653295638747401693784456478756283388661222486765156933122420185477325128121092533545350052471684562926882112454266320047401417354468088122405036833804010847297244696098613384519506585923433367713403830863405962690048273483888488469102344767406308893462907064354251905437798254274578117576644940521674809457499689320257647197924045318919317209993659523558635148559276999612399870931821089837877563320896003730234411253328135532345189522659633636541040429816391595042972897484840092423740413480419323197407139255518628797391211715333815768836895821249258988215690866286874598457666642967649140775977477192391707315945020434939105992220011259417617504303868479604515389055126119404661855270522849498374505825049789246077691452863492116530105442453312392580555354929244812631001484721261743557376493385620281852138000860672978612266013370880476120823187946586258472576865241033826499576767344571627823834764913989845997741463460873702183604740374598726881288508687807136700828836489957113587780529326598407974513253102614173564278453893622239610768741590272232525363073402050997937480450553765910381240003857746630931502823555004694360996911409460545007568191987305801766451258776223051677724173022830103909057843716244266887293292918269156741162195815300566479705285780241792133094372937163258297724343401303283515064605092506609967079827904085217175455849975607105813642597963025995937456839982640157690342016031072909848469836917635020280193639482264493543869538195330936717751406503316611713355090252760184392842859172965838684190640188625093291557250377203231358542467400612408503809581004194954140646749345481291249731268787460743923686966098657214322184794554585468637991603261823267365545796497486025086582112685400335013739227488465292294625030998778435360293088412598611456364747985593239656289034127682209032171865876862470556049950686553283854088752958605671335675864593872609591687155243209005693728364460591250104517130725853783863751674969538063579947174307873807652091139844852982082795067712929941085700287661468986327290536400513163392072465698521949504527374671938547946245344102412865688535944343388022894273906133038625118839783906218223713612841253181463284056354308874093259884187010600071521038498298864653435950795778384723180627507495928820213527807334608519390133340766572801480033367475255467495475196120285950089746228970791351810921706808406856286908604769620325952616092278819200644292653689981753974937021835026457544613696498442856383434858425021615328768440422844825010455742251829365229764906671725547689772257515458629594642659239870235988857869747881755544888173207634685601249489844104921917810710362035155007351490623571614082569925104266911176113893116133086047476143036337261360166901386849925038996125078673070123035852752438787861719514798801479473110567554418600184455925661975746930178066048503269646038047987561122473584980831155884822372254794220379752423726038065878336533028595330735497895189186837879036298807089592851055506769359041557896522021550451389324220918546229868966444875763763068362359822654721467958105572193718594038936462865784481161152513972059850201259614490361265770939964189183171834019809292630486559613007532419146535088123771076834368804382252866313082407742594738629246042569270176221649208230643630355434169607755449833893459525071977219966900082178819091822248564715653195403873015423541081683807095084047490852533066515287975836759725815771083076316375330574011148576653113540371839686139214925260914731257117742756065654045405949776148865225977876516266853746785153348643449249968751133942367596771715045896140153230179824493766920473856781368202198076519309216952185641221989900141440437216295697063300439562047579715741595255576124545716708051810718888693495763520812060095015346022324889961649330989856864729440502448923970640983332292719530372902741423074996798832638027690952029204649193803535066854557637892564383191570625403204500102076699646403373530720804429842055009714800984220978812787194250935492873386294765735123059218820160144890878286071320224519015463585161120619224456323580861948428025833761143551288648056607423484129829724160966534466299518020819404880324417994649423661370501431561125435909053145856293110419952459385380190538566212973178965279647130864222054693489935339504930817075111322295037096175215181935167761763942056563610583742451341342019329484652235360300815179031141602978822556119261592796802503216092290070804750315817959449883369787300902187257535174856875714246886549034720332527568092870083168780470181492165559937901830590970869725590478911587821252011710276017946672530181939400996098860687788574205262219219705661371400685485869496748312254196003329109073483112921358853033733960686879812624162002354770832305899688305476088508953841162544622966068320059494160747623168723490854461931444083679607306730173052952190430342870174502149127126794066176915059621113845491986993705133222952795954285243027765261031030130178551727202878074332829007921944538771183265566682823334035658434520622915297354460855862610836125348511532237030883424191120178651429538496666904586222296775583160003398697575404111643884003575627255604749838360620230842082519430783004241509702986279803585961874970187523362692879077449189347741681010667410374610526947658819532586203542832021395598579950278472838603196769149586527997135685917817989664073771055229885284418131667054977937284762017916898766878090194636995548555218745355307786984925165401511677234408019596121277528741289398727154863878463872336841034750725360440951248289175570234263999125394730283051080323078000763304127315338647214048955348240107427048464715794958134010234656956292393808400043827964047914029984079859703599123302691086768307405378990004582077506403860535257944839890078304607832772745305124886440618369109759398129957157803753876783521765513790438658758777648223092233467369630686377259708854582044276366947110937774706930813110103086482898372191604822828288048288581544336563440521110337824260048861440633813913501625385875097999531181170670482370388611815187381422541943712898463355444688932713449437516612563137816597364870246521964454424035811533741569532323980054045593131432451560473714158041898882909762404401223222838998163841389296694887180049918582869784465363073071198743186204134871988414631250689380163144597604844084347098839991441465061457012237251111436292486122234465437106657198846105197082223807018694352953918103450291956203718681160501846023132593674981957541980689029529081020861799123429772861542024089666379087044527542475983553248117391396326493332281258147537712632010673348475949768714834965158161721681909711445271758039411215724118709090945531047053022296199964068437952255553351550849129879395853757792721429130149957856686534853574744115365015957646117742907614973596189965086329826545735947467880474841944854837892604497897343322330296605826243472373566591637792208808594541442672206930448539972840887394417211293002612379324646497162640685788413264905688812756771630038691955773246729180940847167513037657068179636951955381509686134788206431420209032906540977487240935382916761647777993996907675384106793281080744822116565026226667760724206830979452443581830918042947658200717362303347544557567875107117422496144591051595009984149795748575269350065671528385890244256757491185145206128296953918892166871260810749309418807434763883521602602110283951816139895747339788047400269159183866000709667908645947396557220419008622885405004305384124738154673673605834358739360098955052362914889169777779006264997903268364108753807493131560088734148226192908375139626974684564187454266679880054686350168350283433927599379949447480161707233109933560139253677739058986650080783751794219288883897198516073215213483794548800865857238238091325184092969429291256204670911032979241841589232483133678442089157796451981782924670036518782379360621835973044066501202430125757635252489835346875111981864567319952597913394812720332147922794618881532087290530241640945153318669442658608295519337028628055902683352220426768200596643661760073166683592579268528306566553732909670398843253835530859965530642905302448579945147543056483387089982530688757176248878579392822882492936296202546678742232622417866467375985631107864441585331441023362119073058401825107340490754489040218083906984412611985378774284698891040631955664359412542195469057246433696457782368472796341520828170167096081139625085413108430099679427726527584751015839098336155798724300347438104880335074177177188995865060708370600321237523618659652625455497773346276912697523229536891997886296313713246973498092095984411280166605803916093482163535531540903519481450273939391423069415275678887801866534348914421538009941620976593111254835987098717340961324867187925196642895612664169343131543767193708090547355822444138584266730882498057365372756767181997914681186182300553331631878971210535444735250065574447305982702191642620065022924741659276348052045796789428576018930766558406288321556202336542393598629252948993178718829243181652426303854168038189200502011963421797260655666516133123562758384393522693160614241700461325538072944635454473521219156316369354836919234367607742998117184061115770327481948843303527705410220531862301959490777940123632274240733673512042816382949851369334102935718102345390648308655457673180986964845387752390206539341037431910854173469261716599256133086822237294657866722114916435639399317145001736265172232899321365987330492437148002121596484312514711431412965703673664504569781604479335885187704089814514900255927945503924586955697900348388920141184462516517547403622984542328997878082106565639966801700883488544057572107999164954478402802362412203083771985199631160131611864076276478975838594516766603544096876329887363008528048351236379076778349053044792248680237614638594173500078233116512141744916759158771915607571413300171039864927248091408371981200675035935088430322504620466760049875054080838916983205552788034297866367414311408011227455638993216192105233714539860759057760021053717604379594808708830754445603282063664733309633684789460971970794031960875812258574932768680224493788214243208178193165237640184666570957264327095158534916735182190078649815371655876089001784108228541801539351853915602762740085469547569033404859329042057061040343822417864418783099162503721451292089968885537727424110284238903178547043533573825453905862808939406876681676599705592126291024658922995244141244626701240553041653899127036163640211573815289164537380631232767163593380670367109339196234767006257668505827137246021811877146399770061995305865338071179068232175832190791720407243446181534135521734709689616676000512743820144542319716156926617597756463207451689223580353256394272869647990485826647978610784370060913433228736438964756198500095220594468645850970180530327886264921137618236919929763538289547382214190729153786371604009362584944653961277874250736007320319099902405885009326027882446486344011162905659127719958414250943511308449137563076538788133687778282882678961418102931624611150935635382369824682147196804627146147730068721538740802926538965098250478591388241179604437146379574905124859823317570276230148031053026027099521640024910654379631098916118918937676849315137922777963108224809207407292954366397460976063732238618399378713585358963819125698070648173827498339896811341067226835609679777392259500247681226569732306988855609175553673461674819369972811087196494251445163046369055919557822213026568497085497471571673056012695820780570209779552426386324083034956825941906633175933128013255215923029224903342766078941619273415416084855554725170198256655821552947052652116353151723993830679663719116895612505130553914685588073094154826025408578179507512437587301623577221574758619728625465118714050049039162257749825710147849901467836311231955211139330333899625783379548981875195464672646514541970054275325976078722329134714690241695697657691757151307983263667312295724741321877501836589570017177888344694616432376754781541465505602668767886807509825205211958580836973233106991910462461971264121018327837854196230600942335450438646333845155204836836319230712516190898084552723217757331430760566689892047119724935922442918667299335583968000234538385508220382577527535219214216194628986494820419189927550841028215704803802942338099525387470290655208797234994371085130065856465208580023818067218317930883464512541305489148009380534507918465901333969836282684584226483128369934362492744467965934789911055884675629520358861726796885633395909976749128632398164874424005864808705638449327295968946329101441148323596378086971250905875000877811663581089173958151708507597741141712803334344065993426258947426326319098778909711009956122436226156472477573902742527800573538619727303584422597677442426388784153779706770403062953228749841496502671564037001571549096479152015531242732540707425827053365599480233961298009093630395269217931189101016101846838700870023965026086774469712237661642553317817208163289355107080604927329344695573546177568215928003636051510462436827896027282355997166222227341096002080795631818260183446520752809243190970718369544603964167904804479824464649764266748528890014079047877738848237458887801167977496378930708962187588784196922682366599144799674333532205132024095857944760187564818659592961119131125878448994016662345978089798895046478159727609127780160560314244815673338172907699276953483674436480616691605025953955313623866003390825166462208802964653172132778343135810725626756940562019358535185162440596431456887489561802850283635345523604133287637944736824240111363685346586704524676899077451900952168591781739607852923386131999196966757129126821945531484531577375277582566451458216755133558360447339821774766700484420488337642923080536436282592450411513875047731231622029818725332935717238980719686168007949537899194736553409161700265744007363145547509389343155974466364672935969119593725427395531117918854181081617818257895593242780171354966856280045000881883762028539830676544960950808152357069967835283015108601864863728328962170380006760181693297058303130995703575482746498509434976153603469301017355963906014048049884064237913486491423240195108240836237757682666621929402735049754600918139999232032695538792559722644707328568853131442952016971123526154881594873480643519315190874187493196974024668639355759448250847712617529149326390896132523132314954994331534895618040599486027546354668400092713776529244458530897888807621229508980090924109425698852522897854988170833965295809544496798114234636085173244089775591801375867414897665528446502179362257860564946173144254392580597746675568701136674017959486408844072613583651581274532477102849873702408903859947272442480493244187098153105321775916611873806810990358447377532335246328789309237584692064934023950277626748067943452593088792186666699313570041327465725348767205425820991175941508234615662972869714808700104120935108040034424882451438608850311714175604677362128976639506046280208684888924696408634427325769734408455219627090602066952529202504201844483581227772237380823970086982418679923835772343999127694665738751779986041754130043057890867103441300123585585337823389272014567658941883711869640836010175923159841310378187905636693439745372887639269310245805484703663142997524506103072259259826189797777600923526558170846337389144582455413925850520696770026602842878729280945040602014870478106480186938003023401188398439976033639855753777886855709196646228749234956204345823072581958365395197280814573456032656439566610998146915090188674001389858888990813084630970353851907651550288953793601564622361046522999069833418101793465291746538042715780378717234152102420046069576922190356471840213622645376898801893119202829114870629960983768408298325386526540634845648800811624229928264151836515068999652223859042256385785691204998375311983287793473505367473154115336105944583513757001652586596619458234741466483441212869114178604788462694922919067561276679188947752143055292211789102105254787628386478855888962205098691588695818527669339896747878598524555178659624389647941619666355131304966634228607887632926835694229947701771738705449775951995107285851943871481381537092254924366370059328104181699355139536720942285290780515165022621465418497268519395577802438824242470557893516958111137071963167071982415680839819078913148487645264507330198309524053598730692271384392987684220061721249948908398124078183569932563931504499103749606972871582405038870987410546172081117022579604766675350116253353975273336355714812791805096057007293849573312907554662586681083406657734977935947183894564276001611802300625438998164394826058164841706324575454046829226299068290285014468322860960720168663060552483919297631118109650841093575977723823325169383454281302124592625484901721004497821361488110963007466829573998190834614451279199567623668327624896827603091097288055230494085671164540132600743396624989772148445544591635320534039893405692524657640801713547609765048926202689658401175925965164246106501060605226466026203212313434401138228067331714791182658197790804793235399475852894064496631202863105826814831482862420699123424310181499203401223568166126766239725008904073584082029156365946659642436188747109022235778094734009093822198108853326409707937959950081546096981138544214029122283610306656360285631498124116793827749805876884970274306147562718246834696262901814303423775804732634757483121811749338994277104739343314902319078744306292425371657852265384956236079282562546880033594242639489030621035886326481698330747760733174217060867946722611513313493113007270072622192709292261755376193075423103113286501982780674255607693079477829131349508533973947793698997150812361590795682644063336029032084226666611263625681678929444474762610928080997656341403536961870954087153855156656360830041208202502906321711415181692164746438827296562248419399355141504274057931886037199173150526967526853049796018690667321700500300675305557409727340829168380297367380215032000686223192400888875619559822994403172145019977637884865778742188942542906355789711271442332765313815267047503109121338681901966705637567531728670730647044652191852336501899850225206447328986738810518367623089184149522846999946848240997740541521379198078443258666531130673679895842385248272691454565015677530934844541999110054402617955384963545412665294443353217838908471233028253917877881527779522121078830781563142469146463410332774002465149744571657582557575825219883356324157467002992754227177122107193640334776436342094923746559127446520057550522030058426095413983887285980515412315933351164708331099767398049795090670933157378036134012849128134748607873323858136252554493856516063411828702144206925324899632098440489933181747653424239891530919235822925651857070485972363147442347866117185469915150841043706902572203090529593412949722017452660559885696871848377023135698836747402535843284431852067312829965095864933226281835279376381727558284864240934448031226014678864351199784367927958497195533253943476062068703404943098938461566973286809591798299358494896084989682779864089425194224213952187436539735078808352679984038266223424458640795363560458671555577428593193416721266565458547558552827967503503223645914131966497151513157282429112821304429990496064422200151001679056120952152196307516892179273731762093854139362190117156082728764693563503034434899082369133542456403455950380262195124067168055633336062185102777686034953277412418256561247892434188050451644137787732539606896137400682640450303379238435892918698154352713154736640938054631503251358123629612507958876414544763783042782970863678847771810631068551901711010499550921269576232383434966797374214930244082368724175766338351543602812590393129601989349174068143418808698427644618456833446630044803247257502677864607910133521243906433812382323358734014388427472231698672724596487196462708178199700191087589520539684760208727263872741955749089995831502938704509848282958137350216616493433755470624185856864562294570541129376203064562145650493595512092801103018001858789800961581359659538001442526164345047750003931475796163691512014901179571301049919276111955854663628420882149628354631823802707687588204758098285877202015625986294550675697007314774492979404446132835583864026269909064940005763153878125733498274843912932315136666312427592863034351936953479425898632732759041645353610735335718939412870962483744407923810935622146423853730402289928195262601585993404246208882663159650355480294393466634926708519069368863094365328547337776953964404157588901902211520456762997986612604321866003949121769459073424011021110904577691641942863866627547274648045927048158008455539767363201948163187024702263308781610348507336259671639156557599602564389373528621207289518291298166751693504308499287711796878491274678406181893888302967641291632054649389830482797347404822021380627864431481330171014120562736634482479917059217435756300096924780106497774771154948874716218792744689228841514806889037137781294514102016817661977609735128896661439391975134509633399882550949012880529749068537022659323639994960132579774550757920459725676128662888490794913577051486155231236472543750364282962756182679596135620035944115884817470869998889613310663257332011221581242208986681956402595938131544929874054192862411302721162106708400254941088925835209768441995241150807501655377061330411584651491497982210724059898176818465012166278721572948670177314782667323478776864192195804622520021871922668363596385489010800649600831901505165543307137409177426817781786575584689852189715624277393677387758121233195688272813962629523548553389722330259591161411455606261995503991018124917600893314001107892263868163702457032880429554554979949796309295741420168592072505235672971528190442033997055632695411662167846990734025713553415347341431781255368661244622948971957114953245342495014427309694084788052283334114364145897313334756802558087910915928454970322317970159984535289551839443299151674397837817716531571341453333714545014292105025518308063560809447942753219539704894380336219742720095538360816179836412874330759378509931114252183004563214448407830620780494207715217204213592441977025693378547631912272019064798041967259674791162598282375568553715228350835402814780327292787976389987727986378929670256305541843895121676110506794681845884660584668624721779343302785441225777149229779899620699292575039760242095544818200361055212724271536737937028726446531542808120755633081143019387634984058991823503759448038233241669058328520606493921281436014678984314927841283627663962697059263563362426656499416864220261373954472610516414028007959787277884735434601591877400095073880994836333146410492184436709944925238293461242141736237918258845736685343171879729246361119902335029810428561452216147078831268320175945802709341535077690393310858225921569354185778775681778787932287568602617457185963724471530422306627892039755764830752496260902080767811185898649356625335156463438046467452999841410520499265939541753598166783471073376572582623186956216518093360636175197287196372921536035622154640266736570684526493116173008621976574549338874946592311098324492446805048471437392979248697918887341766420317286547494535657647669597025069113653719510872875227008958322098524194785275750876682566283062534732763404651704014748494175585359817268046695743656403207464928496051764890305589271779659809364337006594889848673267361710365162253402674714903612716977004495177526189100632788852401554187431816674922998562478092300063774802758909890883465471360426727006338864487193769278554539792100423115799572732615597662534569169203527545212180076217877252008492732501557012645353871798000612252589245962047350880810804946336562091018903930057113562811557031809895990848644152581637919694850535773193697812497167676185365790542699326081561054400329755199755165925388191592146160315815551068101750591259475017011062940976582138361883884733438568709949393579587233356996192602753880187801680958840721395015020339799588022108879948979787555406090132171102312448586462369846691246219227905522007083041850838481915809753533570287465837521726158155089757608580977066504849639758502257066980270999488362222445432853073270340266826100247976821573589601221324133177905305886328446911005259773335506622062630637151092895748071341310842062427670292997133590232547831721837545778475892702688915094298060056465143677872394288275177086816286732425831450441095477711180448197600716370259563259215368387237881885600881811821774196989923909099253327980879889625851134256551408953758901057195739461035997785071801323686019594058313243119808743557927755448200635260252154858893631649767551542028322238227886104399598462554520529438468599676158672107371607069581393602856137600699273516438958399407450891508919760240600811993647365120314451128667972166948359140337388979204753079221935824593945683634066470200247877491384524345917446545950018146930462585714687549051159842932548127045645414500055039858466082029122212664131945441943247968504647752965536810580597749041341512827999596654882763471946483796872482465762281117892970373592007207617696213627764191934366923363055679410414502040609419600861607584231424909074852553854350469529733073533584915458323949068293489949476527009068584773897665718213214947973875467252956763869126743267095258680811289596734006722813958931948697677010544812378353615140615370157986667975737536274386023909885126439993218060795061597525444481397599525776261877112223401088787993959715999727986713328806037169077647957238217090605422531790780632887401366712289811769148364690556101480308874822939759722224925297838580995345842868912410248534008152914510068436409988722122707482937199511655596207985759813279361040340633342533981182892773530404321258040669751946914750093472005412885300664517006819186769106403958036627636903162306344155674562974881518812129858489837064313445591481888241358579990351688404191161693484895386613451193019448503770977014637706569236173674397423388092707382218598552021958058186322647437718270311525164295324283123965032744126439839725873446162149860377305190563401779441838394226573696382434184452416746683085556367696115553245139506889672638935902955606292547940383223473931232091160347317579773136533243531846707659403270670089919962886696267079737191852026927814457064921475787448842444292397592882250465174797056841025332815149048135890123841726857449192411554159591055853899934835738454304924924003156011138573000246480204024188079409453621822976275560054378427290447644319693939867745015398430608200333263363586041862442915718181046279508536634418357917114583190842082938911609199522237471009981367671100045597803873683595895608475048237578374075113323459812297884680510952968468640827098008867607997079847974571273462897601191429330342334039068677808506352195741389737382280406537507713559152438473182122807178959336119704123451403870341732150631043072911813114755902054978567263836606204439353462261623100334627451503632381274252443100895494202060507009815551029466868784816098073660696820245960433696973716417457169275223240069406785829907198230645399849152080025889291290153676481349379706027285619875992952099337325787412926781703371647406062174207306319456583160808654268740687046344408078770017514549823510108235733970198448535258101855357536162877365650297415500574771093913373483801167406976466485045489937083796304355743194751525987083267028875256388279323068882537820272490166967132836586090681585896944527513511860534005361796006392267850481302486874213468649341336430858176535568209364347145528787300062011218720344737044627520455016647788380658681592384292479674271068020491977857206787511545650955089624725384497395294745853079301850281129877705948747054311438922276509196020783823369845696119117739237296605198055736196523697112583353897026482114382842738792306335922735604485634346813539600331945111460719534928705969754351978177746263482095571762759636047103731048451138420342709482139588631931935025882032560162221509824769900494670484820339105034748894862425010852567150195593867456794719561770104644795762048285817722463997682863976121559807591169845544422014265507588149119453352992013560837966723787698224770199294642367883216297434862086190327763429364492186356334040224172917335505356078651095885216863271446062553385253181650429428739557700541293740138646335355368216893683583080645731613088831048328615048838052946655204863974843358711900660719908648354637871365026450120237890715446894838389520464392327203293509456850564007047912672565740423787596627503717237789892174607150546970641483917086032987582075921419442477134483087507082980744286493648064923945152621960986938284823750066098247418059336682423801955563348789487772204029802607249174252685866148814162168170485128638689099317455816635552482225189952130014563204594985302322906414903553564317826395906743426278169519101807774769351537068916734606618331528965837200384090688666254355066580900895989883917333208822980327702575403514471224517855009810091942346101050241379031934889597351608011115706959649207625907299444422945047347793193032921629399673755853270975444973919641131595560799327105276864011795865696293334210734292796767006791895003075211655262336508591796858324203339148448774941286257888296295844736634271061136666050958407718879956559434453708651182358313795103628843501739150753518035043729558949220538397065951692988531247123530277763895428985539088204572421122486829462854276567030320511640654191968847290484999247372913728575761556176490481267124850738004747772073202063954892219559852139148389283372830371275305839867101598512537194150515963724639638141727040349614797020355018254179548876059466230443234679258140271823827526761430785792365735264268522701035635255778983102544175206916022970513600679510955475045531297856920094500181398431276883223848477310311534681210152586275600609697623432272414732104170745609170848302488279388174854093524807107890422568169961890632151928205142415456937866468834012017012059282874775637125659448632867454116390739022334015841813893740556691156509891527230637164159858864865303883415081028029594540286608921755224272839066296507014759753771370453040406253256171818553494503254017463567986136443632475425990521494841578065559038670335525889609682115946282282367011991281388792759278645072768403283717981357729402449217265504331418483401408181642713512096755550771594765935124479193419378949998429020824591405413784050026170255126148729035384987411153387295224101285948355517490124324257793985765488802810510589571347787710629046099542353404613377803935763607159915320338981363134073866432439086188798695363847281451328506036414479222766063074815317541584700614141475201838543823152335413374008694280572181887843024115717460997941464773358189114104021347551384944567026158224311991594370485995569566388663158862801927213214689586268217162496153717961445564167600374660624514591612442792980465080575169122525249211845346350370668742819096791680167865679579644696961940963672997515339462917538357284097416709844150259956360341462269958617213050901886969872989428736767517992162096109241386196713223286474795869283057185364313603592066037032938731989098279418661103348212817569709787136089616724289286801606672094835135966668481941348161820495332285220691642961074647569503862672658545521643937515723157774891678060673813613068691513533905114623069560457915930858646536104855530174546054308713649772528045890433298412725753617373744429548935207697767288212998611350461987690482779844691808942230330861128650550563004198834797123212652900536681150073383810975778350052170345655482808047446114601018149532794176686596974795782190593395550669752419341544450769454164415984267518532880048387243160182802405979130900722442170024705958606841589483821081118364521328144941199026255918245934197052771811434976004475634242768913511783702637272974096230604394967517428708770208107538759603566997159892897449483919959077611212703443709887977958796596768502521027234427163397579791187106999168086407007493762964544012281982354073900466438721846021209191945844416699528709354050662639988071195264842058923995894665626337195559281341666767783336346543706907850019172340190463448877543267625875555713200876063941752170497210781832024623157212379044924261062017364847398202784266078993526648131968048189626172063520091785991066113800132616338359619609802160724747118560422707408635926034912255986249182368156515332265433440307702263007124262971497076036452508428530864730158284924782339653463234676507524567561176430574355857437543427872912825722418617355685091362552036483498428679560172817266795975547619434474957258685873612781978461010825894901026390562567552812003465088777363022258085865176037561022505934813070708915210404977500448186125999892364506179308611806939945226479125016426628119446680899782021422661834921147225702656700624047909717358142463620838138975973481778474945388651802402210832039493772413657029816120526728890863665538735113155174565313265579605243868629473216870599487038728436738968954089091792612939569639574217844960086645255075053245925504581091234962358285934542965592233006007563613042780425961924875833079882326466324018427885148440291241806575768189094078416506535092254780328696143532167904939764258868268127535715590125635744863864205227392701228051148660008958538494840370237851425434616234728979804149550961878406206023283165784277835939257687586099720915280512410394196346567336435381052769585983425708654043668590286085034458660501711013236162948062221582083938749817229848072378726956063493279113525729182664322362683407933735732683095199277253174767092951500686943951905582086224059545509503080191379441522430810009093158452813922353929013323395633530352232596725584541986841532818938258526409322823447816294289964861359968893119122671298167339039191136465130338839832372188509729003537312336955671577449228118269337333069630284314587618650851932402982918790098113766398386915918432232809665264762739176857929198351158485493119425532399345118615372327629035238398842189911936068146344290795672103345209432465276235217337145070224302844041777022436133177644463465921518161426931460076593400307971936507444430172487211835378141135429141686074998347187932583216112383599531510502088397138282138888961018867535316213856844347000378817615825797147794405317510745157322630145923251389368049369575872612777026819682732415701053352046719318796641901205392704263843123068211173039412848125941658716286696674616943353298802064758633473578192632103356429818247255960290689037387928077764459085921156650143266876426499481539760911685912701666955240193397627879034041171348606979696258331828953486516908804315287677923991399067173201264225904105007233523819245771423060722045075114104637372013071684377332822781492611258980521854872902000556800393000690084751302744572683897540617185863360305934841988770820911849223638642102862508532305349270067013144169766470689430978537036355104366513869070454729056528209667205090122139237992383790509795590438786545182382141250075104841946995732623068732755079819995153526905043642856372553901598929186192594260548496298822924032393949197050823145094761071150177077050213887311912511680122910921663621985279476561265540663824361416423308478235288254504082269950624057131985649755839263245208704810334601929354142393933552466314639664773017086181685168252492874619770249967293692352180295638301119755296258969517883212085227202048018808067238399967080650842056193084183620415014577236161495609590622631772894537465817147949251416228806282916930346991091860041627059829610277389103177559910697043294026046874598653381675084936449089343650418489595396728377320986030860121100382545826891930742376919856813653169249144247710033829333153513887920841270241104535415545223572675484885691735374692703873359247984292159928050607743141877372925913301348777491611388336698099815415632420178999744608098942188393304295717683589560334420012418679997752782946376951420799103824564305135765075031641705962271975920847361414831244648306021919294844608797828578747420611701060537087729044665627875719737085261948636465811463869671875057883476575042414856629034605906230392399002891249036435956600592464824474100838688109053405891026572820555539556837893653876728802768211387959186521208445195408550148740279807426682375151785792866649235364290488277262103505254003539138775865669118415001483116816555679707359239112190297415576878190917390375490056672600771378580218260758446206512064733214781409033730659317653930429394942864608325672202719737798394863913483914707331574662920799174852399834437814954346540100847898478924131495052247135105827468042169134281463586105404964893615166201347404317767812703296758105532618224036530523970969678346293495395470678000197426486153449953570217775480534122593216362939037945685416176779649873314837107919800145467032082434195781820809275211418945230768421360723392288960479167079646139834551059245764021862128358967598461976107823582292001852290803687509062700006449343004276559965283271837201560058032061541793932706649747529195741642626823893520308814135397445861776468449188109541555635878352708589366719375411916030340227570036887343542209217962423521311218918913603665250490281631252763623480620090060538995464180380113784533168311649235323531063480781968945994095681895215423975153060803022942281956203005681192798465886609224104480907961095161367037858517219408445362144314626417793207617693917173431647412128888231513771642026309658267762419399764599975596290763380675614063363050600113341365354586380230362858058907642376838896133259395501598910773225520705685320250118771575103873985505950013811878516144611949516935343658414818742685098770179026776346895386628464349748005994390323855983489988171308980799470343364099240113145958678117214703955448482542126654467319693929540473943871780264885773824847612149806347086336802816304929702089515972192916212234747489948991999499882263706391220065672131544931832287301975770706079845138600332258867387885048825658685574815861646514084902096247056168325441667071903255373892668277770259760831739437536699791895540223546423968604964777978105993643915241291495989669866974524933209279360238563721177089280357643727775805878323757749615866092217316985571958618322188964434600254686521546272078661252540801524844236714984248399215897050719348768432969155293069647893654752349073092766062686346401955585398099918434774116793756526942209342678965489670709769557743548229977661392320075889731905838460922667594471405456754682353290037064674993890596429202600043223556190195005144400795981899529866779114004885244881116532735592290381014955127532403088143755441297215629340757138190329428440158367025113687685980544547500385638665519748712074365555925388008793076633266700036973992370504896101823263042361062470089694523508364188844994517405742549364534240540772482296036512831786189000254139252644379150858325972424394567543323534320264428168922271375047728725119830971734944559276303762002203688670644422818025953635231085320005630841256762907194479140988547435631428331398651094800507333067075183851641499400940021487658042011963831906829738486247348824546048627798432087725066456590597958192289586561352704608914733119312273052242028684271442837246471071600999505058939422818530091819268910584310453999727117896701506122007671853323876236980200975309742870746573022186189468663288791710691754103167975300628359013751377286511533406492566856386207923901187918085028176753593924329513295694375700105579891871680814669807996971417669532712516111408726777626652294719161852987046016896461486002501304159240001737642606774494140952634818781792612482063726831782013535555443273739618718787898166808850695626897466479191368229837685564279393150166522143744113298924171178117912468333317695848023325213791083381466597812435966180681329055549851623208711536124849382442119369579794768768756174214588249869659134249555071913218831959048627886925939459948045972164926035518384909196843779435473130587353102413424897769075075197262710432745068000798287711594056024290330676109629550056652629867838957993242142494911357042298942993119929292743826444431892443525041189452980187196370995188803671409217361430124996047575055792870655794192069015691179049740857364135163761074628739182762343848664406247339809370364694765321614838286042902252238429234775056658956773029538309938487927497076891190161563457807927691878102512244217973396301596229859753053212972017721062820332004956741932982460402573237468743950007094086193624505438310705130595504979315692718374533544969703039632588000102001620943511170534659240333307251963414163339147686246983659669998888328353340765266223040849001019666955378824683895315349125360412360086083066824977855545030281956471859482250210263705686418401885769893715769350269617349621079430719028917030767105948681456914547847562911571579068558098350478184659440433077010447725540651062928452388110720355704301949349577040967986747029969832334781256618621291023371433400524690650282686579068629223897643667259475584553820210374751579656231612013167718165765885793107406852842528020823687791804152473981955471219391120105779403218407527138204424423621080577492399919071574165112887479737115772561978684979641788029582075921955786692573986149368618541210182413625959228483960252519757139694703900163007688086625936114561432941114141973129636795491347991143449776755100389328301415627115054507973507770117531851226047515541454152283784279494311107760613438751931538676281662204744450839734154487273676778411900775990702698057312578100311891268005560537262531413830611682617657759849221513737632817699551871480382704512418299353507841151143745177003757150764266568059343769822429127114533505799650675006567651112415914018568255455123603286522950963391061382783341587025251096487684784460189559973071619834862132408884442413894326824862470278454363307054646452680380144502454967553132271016672244132658370868061795281830116819376361872598409304007993281431026249169830163208319261948433152210573104193120523335764870311076322725894205369865617606647954825599749533195313677343042947077385416519192951017677381790903285055709815287878974112054462719276833095240030388936928552913138769541937258045418325272849629170545841960263126873072130088533273360457585449140646029548160537298133734616989816795322166730560500579786611441002111947712944547892669493960094250270770020125778496003530878296214625924219354101476437331304683418530540530225201763298960346587329974078640068673749885789576053824435773197946047204624756893717774881788670695427094765164634404131598781205006055433613882691549049167534257247021146653100433768724987392149198585814627619583275595571311797103965106058288822196362359455594694664403130117078114782342093432308374324087914181389685083267432004616755517361960962925976862331210816261324321191744076736092648222804463355882836766472549104431318054238175001079788160993223275595347872845237448048447666257463986728299185966167640721755768017957638493546953564813118606264202995465026767941640205761936999006513271032120381137782920538388381518158922196176663311987463907772776095496123229212001573928794212715533817804987060521012213088198989605318620528515731725136972484924125208788526272891364828144665853710383548948351211156318436447096587406507324752896183896258874595134369988107485265117348127825675207475742246095202439641643383401236345114350582466008800065125240677153953770512139378285889288398996581963759661583771616103851309152099111033110692714207812415478890929764840427658027671542706484384617424532200320975922178258581118080275805915482509745473855978653542244050165309585168671745977445721291287482558576798671080204244426302955243543760338878143009010786691565278603011465206892254294659351571544542129101464937485638861800209626024746808682118329795669860387388177556071480050930145922793591729305126647285661014700099797403002302237274741821868536681282228819108011093193113268694875929754680701046907001586349278354681060189116907115156483236261583174175095751008910714798836667409412359561318706181564617692014200494533846559390742410975591588596373717681034606084153212472353433464079610838068382051911393739791809207095686722398234088543251920826058105194297318824161995913165114692885959934379105623065627267961645365324873616047904442117455513409519646405647939026317312772717115012363613969118894936288108619286458741343428578076333639561186734996767493090208704252929965318466244185024831428491291478266842518877856820339627852743115217143989073353641550441663151675760588630157293723106553179467064786089300556391604321650363305385590993533308795453946575489778434981200677191472559364364532696109940264157567649472966564066926014675960577432211789791370938551701028333461282388850967006404939322447848973420427064067772302103931620223003277296793193459959607661280536765137675506762257563440899842374918548761638988745312818518374639991702128232544270563990795586146959625749460279258422261509705100668510766585362234808543793743774411210482451091099441868854809179991742570220071127931733364647776686951274717355115471569160402017771759395042158214699195379399278790215207704610307521206562013315268510786740444661305149917759217444098870723383518354136303337944156440143886232329986889561114823278057002768771648717800821080967834064213477015371255070125051667700470311436186161684820134770037969651883119527161189746194718528456332706378182188161435218888185950886487085924077747078672204707000044976155734523089701546625429091892273701961198370844660350113404868916939976387270838452702911956341351416111939254778874562268574529450871517056963022841195599789999931198130133172295229379352945338319530991274592385059737635158539925890683762219159973293160595682508081071035159515133117364570327129595093215517887805110342384090543094054261878517940603104784232335494530905188815168613354423623176824600445583535657787122208038766425754760141653895659978304328905291085277686443251379826727824431137995161340932314857655308124103879008417686781828556817763877507594165684844951239542333810650027023817986954358384436065633580810453221202335678344034663679372506397500750535675480800284170134039901786173275073180905594383738950707899733960539495927116780456825499872228491074887538527093367083080508651287810553703818216612292912246789695298637476792224198234037212043112622259290416096655913204736353207059787771521158568474297603757964757207121496548468327766780064471222432963467912376426099763104167485135200000413870232670804056222394922676270504093555116644507370336485286208813302929795622957030703307037198873576903162366630926028521815479756894301930179955858843640564155088216621252166691479406122218916413266507591542202126371399965303595668631063689471053282824330946478467461306660991626374380428841420906952368827320986605628280737079916601461087603630783423685365899662522974086504385068372594917943666933918600826085770005325912685053533271791898379342134142449926663730275124523220851879513301977069551901619357268918709178359815929787648933129221398794066045475541915630885797829785044823178342410274474541222155611578227643104637385324966663968075952068485969777782480411123168442674382743360116000092173936369543074415087676938594078729022295658096899536393796222151828879751054864415686544936506707629758657486156911540846475911160370691861972012798284988869199670854035097424871051029046155074940803276804696383496435683210199717809211495379698318538789501006161740686452558944217120084413415800273856970753471375047473584148814287733933646093972111272156760083118071354963054833798596464081558558604959690277740037898962715718116855152001576129879487667266084974775858169006231810915040336309346754385518946508367177599083761305386036309662442746349184603176126663390680235901327810339228055658772291271285921923492428216561314317754587691011040206169847163254360287902930369294325954172106948704243170456418175608233364978910830955311808138866111357552192872836777437403289466625704367094025856040660621493081326292084922212160809531051179616493668799068615186472576796883014101885421538668078156467988582663649967109732439885112781507940698940268966666684935069213465397975180476173940963371906011743536347577117479909221570241215782001857860499838524642532061907704890744510199583193750425815811394302800977524917258836455365833163027088094764392294498627196197432031664401957216252801047340456589156090722352293699205772723089729087965585348492566431671767168722231119010981769953238863852806540333125418529260720857169779350029471172250193696025081082322284673719304732709743954440269420195667427098524555898513513809770877682095241614869492616838551494236139224668737305943873969651745014729387759246696393003404383081569548294900272619613560097779828511698593566265411906192199702953865102367940063568164900605501923744661168219412745289196561049530348350221640748361632955689627446425606149524050517709261039388311221404063525185083177374167681720714570257586962239204012125088897323232582649399563251585046574655600552674434007866062552809103352896540530345220838934821941597153557622860575545686103097976098202827067864050217682369989724826771370315702039663543677006845814416878652681036321869583360331491359142253269688582392894557728774418435050229713046415359409914830264080865509665860499813873744297713057554453394298460449504157730218417521279609087448831643140481322800287848059329030420509012971963779617424563198176669536098494213069688655620873190800147338905754320489858116338526613845798252712782807304872497499920542760347915377263264130175925655108463987820928868084151886519345962028585915145539931078115965610607542233658288072217255220757660535808419983902479183414488710434350779723001344922844251190726556459706370307213054127997143211901932513666858399941063900673761270719182840935405182898668310635823428034135569684590986642247389572290875835517979887246062810963806936749056827985998366432010726711644943637922663373416655049320899840660779183141790529806952608092836540115290163840166502084763090434046178827008754348037683051749530118197229448012585236483394576272523400252267754802603167266984829645315342292834255969402297439115357773220087904782508113758573681346377427212306693630747757300085524004802982741594236502896727513227361738413660587287621612320959643424235891575299783661211911646880170490374796294301864502728522762614038811736017458696848903352988215299599342150232122304452015954790846480020846685926766013576979735283255877490336595819921878171872729081977569770298241589705188281983790867607558230794829908037541354841055348883303031033438839420793336344160407090731238027223253776094688522074305518253430378991326758267399299284918786840877842289444913134777457152715461407428482052971826991754063126022829284544471366540502118187506737018090002158069736473754552707639695274275111392458025311647982754865856204855654580427123444978329239703048088086214013798872308877983944129100333309162728360026250261549607598614719509691228036687389763824743310092920215649562733843315681220134378789389273269838192757901790523414653126460689794499882926623108554675197009420434472073035657318849416340687461561430704957220163289996919111290348678905560190934431841794439192983038525261997484426804602356894178373094017031170262701339097337879784043574710715402798292772900386178497756735543638431301159073732877882796141465197512050693516157874796232053436130839088863149433677380279892191025938107025034322912874806811074458903374086004629550809165670820586881306047513338263305537007126009253309238560576495873046024283707833386638824174167118389215527721743797552500981627888140861691769673469301055286603778963787502149405315770223411559765328592108598402015637629742461331481993711793876174596129949871052704064701465156212225447050902557537035093829462229539379934756377786285311449385034870766152068992108418603147054222183188219564250103955622062984394595605523321539893323559288548329724953595647619418877124380696450176310832459682288129373035180442503506522016341494790844463543607532594944240861667375442631557568703242754662789379637998706574866154981991976524300434230533116171682373452991906382277785120668759968090187711711220189900435119055422350718822878045813843504124048845451383146597091084308110502750215249353468414362120987376630337196981082873017625068077834935438480774515660652839982615252664509260594812560250804536047827117780186278506007388344758157280863764073540311386248717693839656614011623787196199759293453287297556733165138159281645515466371986800499053877434372146150325979318170188694672240734283503134657212798551950664467510117968407895464497732856236227907012397637404653931864175506059489922316849687248880276317712116202017891290313267277715415654354255407220867854811779642799939412753286694042394083552640256716031960667321202199898342489755955400943900318762720322169115717365679500237094092420749288036559748745015804508881664020038380712773518781505640350264876992693875200773556133423705675030335767715335494661897935705338367695263490861541812701738857706697729980876990309979365214568449431835787430764051569698300841792314515704828418516696551223894026563551634708597918836993512662546012503730721430988451066307622207423518860002428839463438915494238857040880256298632892494679716383772591422992493807430011588373056047555426013808968512850554040594723220612940230016263386169463739607844029788920249963291006350627092197370383859376463469774062250345688568023568083807362021904659194809415394705157734723665513675070450752944252474067713265403660653202308844554863839268184159658509062567902440702902854047860947301413909905969506790475493499995202142457923703658372796441694858100994752567721081147484558139326045269690493918948792533724696980882456641611460179936000589408526103359170506597645550450591895940298607334721169253171475113908960550898363500567577270800683258192867018890570090726295110376522337846724334034570886990368915258353177739925402825797339151845210350564566310729502047195336159396573634320402873754267600877254785543073798104496884975564733249694550745632323904281051645057503637426955725964882514828066187212844389766821415218534222710506240303593541820274041663162333228518279720861997030933277715637729865246640274906499571414664224045973560806856549446222688610339229400000758486223352452200852119899799040011977041026809531467417600943495008058736863467067115260639805261041640128375532333669103415453403940449153667161605636367650480045771110748240595005288922388934028394617624412524619672998232056875070143615515030236588985013050411508647847622139768114381009927472749798208816515103997275720059631936879545762583026291996949087639948603310033155033531055621035952668822190284421165586506032096423410409492045331632138911530014719388611071880060301091628369915687678509064420766528081227974780490977143435006410387594079690906317852261474659009456206024009343613786061245386829407650978435357949589172502430968486897069980170338455779404212814939125361702156900337206679198246195706458583551488054403465300226859339783618847974488371473214275953476670533690456983232946098808825229153936417492033923764213034278132516459779901301660485537544296362703174715793264020146344582385269736016431752164449932102246769454955915146815275116587020394495450042815227081985924855115321339322150618468484211633740473732041324388369914019217438477367864218681263267783368381193288206236601773192232403283131785912563485857738659639750922775445615578420861061356451872195058326773211970483478369445236230394851414982462770544116306066514736487535248102233131923226884144171854684814586535916710510284678701699607878343285848179725934660428502253443751462751302671850974631165912196323880166225311905852073549854120565742996102354198485955329053716248516577268274772658988003455526494955352546841376705386947962090108342796366336473127698995745309905855373849249949321385667742880662616664967036111162779135046349628078060403773344733175253499379504645917432998993422683851081998006304741532331519251442729509836540876805782667871743195714397895938195480218867981760923864670558038430153862911807798616888155264721236757067143896816851140330111873771161003969527469966176622130153954541767782171981420063989437605043829325478969601259641125525731764186208451327727450949535029686551240992032452570996810625174652642359758146728163715803540737862799973503923538281256461728475671572081985714408959847833515302144580412704518624321508242781370507162184491828992984580250459636815607329018884092022165195419678108921428711535334149097600023687118294512039279271790625530935072320687011052722158923099216869415109198610986056049797121822753944354393858016572679769972660626014575185528366228276169521968934945852086914194576032795763296445804513846755873518163298726122092554464239703773157062498794389669998390958226980819530152942460520031546269337719508769749169658161557429753897055115405039535015053120132330724252190189197354602225305908130543666219305598939136374485799125613865322492766670118423830946816786478746845088263437412426991391929153091193098490769439580577933461458468405769724998185090705565900449663298009480613470350300783802816137217068612949386513523635463763758773669792218996279572111989329719259169047887208731421926235078579480673308659670860349036575213270649817503713627730412701947118677373967697221214793609039524121167162531493782939606988975799933153506607021871753240967096160723970906612191291852393943507741121779752679697562142865749599874650758874639505003024670700031854815955260946235335584822295255622414583134541007998604760140746791976844294746670658561272708844643223490504432255413129793991222081263616251405908018964878615325029036263160402268457517867110738118374533417351734145328119969767053555334822688043780110067407276845692672219085258433642316251455668722709975344368826138877230102799480704575175574324994267656069059396838760250459927927477861368872064130451813016599484974903007681442429419216487553896654495282874300232479027233264358141978699819943644881004666068913966147616099926364950274169034317492965088906163455469039631513694934633413255079595017627514375846495531277686283717162281237158280879977997294580076645065390237602583188038499764738447450828907129244099896899348747352993251778151737508114702433104463667397960291550678260402432060212904898566054776022406077044099718984230318521280795706962616572301175000200292068111783010818854945742785248635100025475367419408249961226834037954317970763486665678586221114653808767181939733083433521564081732739036568503162754500801087606293212414361438004333369386816522987709209759074679130519941270157805092264059445395468096800335106176182547087226655667931476904239300680896470452744004562598265731520317664695802054148231558495102610068837285051331665723897134243953400008340872676396566502602263956958787702424387655115152468773286083765717518681769443323314082657287539114979733755649541516732062271374382159875149563653740273387852347193313526587261617461426425944294219137565954061045754040780211343701991747809221706548666486136740467885437697590404429450012945755469024251910926692276589074971000751267980431107142676537472388389980830200487071719907015468876383694543901445944639052090042117938061615522868015226692104854316996689707502011398908402211825901610931761775223663448677629192499109912262424659574528423542790784044151463906636362824767547009114654024342403701775213319976034393208285375094934812010175889951347526292828110396135398675160221624444417714340718015086482037228024635213069522978497037318254369389915813994359356658940640648201058725855925829723412320981422463638894764384870496108889932368907684815616680773380294605272134969505205053355087904382327125873376366416750721091353178377382280671861756779176376784026729887456563260522021587948955105690965578144152967691514552689433683707226246532936701260194649638666858212169830043224474610524299971336280138141615541977576121607623108286373049379856089760859127293113398269343609115149774408282819530636815110896949030486605854368731150698800722834395219165313550664365911895818817249350948723345069875928555202110882913278960495430358351405204617297337345868463840625066616871223077420227023728901934157780735242551912518313016976010572474729803212914632651317241016213803262442661001653467290761997955896122162774503273184823621532484520862923035289007091753637048563854966116898426523522541768643956668854454387850613984038762283755405214422280689332770113417410329248777845952714499420007741953268625096696872603815813531668935931233212793909901440297431806820482764533528908801335499049856897756649541506175990835703076041777199553180455456753968209171769048771947639530962521701762198081679590387300437500801356854791558376986619332161182490257920339899897578290042167073126666952785562216636016687341041969257156660070503170464371509464559185832987703454564032521897196159905465577305722829779354673904151497255026617648327748270179494810476356723406411834042494120166764932079959575905058753296553860826133895930374792206540889706659504748945852982449172745843062670597020712973919553224125431909674156719263364809706376672867727414289429098513890464724434863490440311476697940938604077600136161598689331292516560400419074972334507213677536591277507309423322349763152850076304054494730834105704282258148226622511593249773859995477658149332237838988620818705774186431162364992167528818452800229647230921094465169084137160995004269533165884128183173944790441953616321075046922199843544090586629129974013102806156046744556999681792915337883249102124108560140262061576717140699452188847235801269677329744826769835259374874069090994212843146972438548661127955722974250757611968846740228473339176842901268098033104505858662645410933321731129663994654539100932303297816104626898070476487964822713342308764043899818271632550983988170082016629320489495827555269514803841719531897116524170601668348548708006407785667274077777855282752805812019183978769276269332982357044400260562229064557880598967239162414876037436072262251004538922058870473734573246339640378984301204995142944680191282564503353069539939863223106847414817429040819962723654684600894018098359664492317909913217018835425874642705404897331228699289801553313090082397960609101085842822873156895740659639907223090583662198062696552633907061660252242363632971112532459443920686012031556330423100610853704355650146117048027121408363544734611054457490804566498833378366353902046583400313846397617721144867964339148666806101554376064702706741706407947250580225201694061526539618290489740171112617538242127002404670534609034244180683338632217142513167522512508626001609129660385447333807613899362016655278356616632246894242946260029423904266676340678991161388600305082585268317672960873139579276849758383418414915660211367547318886970282158913484401880604663385497229564611058124166084502359673958916182346774009686405305154479113169966156610257440923483657653397439059516863569683629674317089672073202133482695016435110320784513482217734184473022901961112450896522409333817514166799267204532684220685180061810714637259371316345172326070271274452788890112304523825573212988084610017094274955992117218877344488311330297595610886679908603140559367502102991477100194280246762838103214610813288937658932122122176702320076739754979734807434679488807881580929303768135641440630517050012216778973395468983135006676052087832708067765790531142200341335845520421483237215192031711667738524720588281178568120196279052994370377065921371696095413392081182831772907409616995650584317166344480304444104589940601941828964680526475085774908235653820027431055918134562171998635518171288572368439677040685413988478905324786807852756293565167852996783345331256334595150244657654798933631269288160176052676320184465148731966529254933193990888703658323341707152974282308199664577438921295234155103405423862484699926972888869119400125465398760434063252774901611956891672524317887652202834265338119300554092380660648443957950407188082659063215267264469035080173222509727351449837898862159339265345442525307619079818065072231579703120308576589770539486591845313083913158737016693359215490730690909244096477118642144260442295045580607800955167913638554110171458171273635932146769422443716621728954057631346489004226854604095367631623126640631641141602805048237275646977862382175697734995844756999934114544304820804426120403352454477949259502235524941430999009724934370932702336850958131319526570516324611636882963329093443478003714364699859649988198152390487412391264279008909206679655723464728260849346176673701961196809006084653722905648883869583484981679431326154941490692313759175475746411737068490562589326925899817349108788313608410180665693201964818055321031096837641792959545575314088690955737561306291512226456997832044896785684390918258417294980587656139129453806911065155424313075117377136432125993041441253200530819904698649099308372885984533989654608509677105599699459192684366542889732121186675442043298517085328061119718323502725579539507092635699431751342084848850189334239868661822095428368819661097199688543104336141633357460949484114404324023990088150688505338134821361593605838318826692103510757183953357516649582851274639497978558568879769490581857736123044175996081529418514258999579187448565687440184230452946342559321280313271788143516266437824816095493901735052920992754791742193414678090916014893506983884198159698876342634358423471916994310732222620811690888162238909678685880418316422673563427198606420370874927216681852165010840598067115918435602414929480786623106063405435948860211583311257269428929239149180969996045589503954064380485650322256433148498369116264966638624434225527315338862707701777893360951182607610584806092898628377301937449440492582610660549359297969269455584595483917287721679854189698405162539260857127343904747589992387831275520300862869860248225666741822606487258205896419674686486951753341243028101842930171176327041650070072485295197973126255801182868037343467724524406056415987832472798729321240870458309861685449234385385001494879558015478971371464372628129766267266545021678352862643212355240556951020390939931869634696246621029480775443147442384649180771722075239227275235022819747939166420875527817410372455448936974349061098906472898791862341476615498623369491095683522184563934396856070868443955764182162051106432327478843929014503547943824974417279777494805753130508616476304502891989541601601343380176466750274033243951325440442547323138431338478976277821573166885557078913839894852391365076541327177986138569204592226867290081465681819801563357845634371461055341488733776615663371033625211191819733484625798616860620612189993365321981521279950793825536486895772694254684096858383799903214353283112800180555736878036852075023352477638883710530243033540790600882318581871735839523223756985029952300022777372239669662563052646520998421561651975377836721519693306538050074635773530268990669240046391489932547589347325950741870897546581541650710020711685685900408123595780742074693898852768279817015946940341375215091749155069019994973766060105298597299922121097059883764283541521868925118663084096408659801318321818788374333828461567001717593779943808805489026724419311012291487205707501062264805891496401684833129936384079145045502460872191987169863413079823455871385470432337387766735910077889512288678336102001274719721901483357326061581705596275622878659261844325931536469067079453785020952818928981436198622134561608507141728657700769202342701830925237492824467049751258312431656191316633877781016522041764665105588677183533902876549996056983097214395852275018260754258174262893624663836827142753164547603927464770928179138505973956746476320950651233207120705536455720916783176280579868271995730157442339960275259955417359963805098282457053402824867285224452723643255378132025757014024819336271955694789029294243055687117749088793889587649097936065917871939324247713254873536704875966993630341200036633331318472887003095452871490960948849685019841343547932703803438188796960201372865027378130477613782689287626142811111736537148144833791746649736669474481249587126590898288861776858206545196604939137217676500528616185041050157268255404856490642894824899408963592229729069919380604976261370697210820657610220151713874031260986661798469276695320805153938932400839132079068443676768751817253056719468939642866259311982209497333775789153107568992904305247448913941987199180911691184788535822553185583499756025297305027727529065832244121144732720907149786812283392695520590060322022236198616553437821413514455366518056729061279408988361109752234209879121367136833413461143215963733532614845569670482324751934039359306444423075081684523277317161268677593164277876776477023370547869487696381763589850839130355064429891831354746779317261270144779999854369566061431733864949614976302653261769010568313551364195709792388895752066096615051913563266307149612528365169147564130198681394586170489182484024253669048395355623633530427743345226225029104715817922005654694791841164194801829326939340557097783548446523862845899234131881241779734552143324367070207546819721226498266800323512418594851623712314118176287798232773020290717683234311219538406796698612762777868376058052344778506427463067765817203958572284401097799200315702386116800671358229262179970906840170716795719759965029906208212362573174121775465471744489170493910795340357460221326239488923835567696593360143194564522491498558995326798958138982371654217425294448862984268496008286855059063810708737873010968175596356756464530828370332631158516222420546325144582392401386858907162816126809992509075213981881904303020557212089445103877568055741954420817027894187596510091692671599176260038655642201308258933699933852696271384297390804561522218706248221860898567837971081858362276257029516027630803618467075903165583026893263924303831706585271946557114594036786212821737989319435889216950953461608339083988096521520127927053451214839324764395312652258105465545516529683060164525602319251284681099848533399440675994504221666658115406581918782197960296617205006911759727744554100074458655889972197888258160935597080432894623323050714705761887618155570646849002455021985127604366499281275938069868645800674751623221287045048038650406870178607494579521814025149599579939763003923438369835229820304305079960636404052871768398230928013513885197501495599746249845694345038454904305826406695557808560314261223025374457335708658674911012542754483390082995130225304538439011901412721479710009448547536805963031495277740851962487964294916783376698919641666295341700334730143889457675614822266076814602260769914802024426365671746861434749729881588488007694913316927904319599693605960776571684240526182201126490408413602857079311542035177262853123916745322410785758339145958829176322272271417685418148774135012511703607026355874108323030795730179660351234449769122169596527904943104070601056258161579145538233866887802141930710944552813964354963408054281692829368730115132971858686037587155451087184047096786102560249074931966128241856884018621392427777223109660577810554682255636090508770744279577374586202909698015257568809312169014013656901939225012944839775192609541206617773755925117669284360899219117836429725478431870100851874118091230365247285074345977348039969847284383897569296876021124474553592222038934659064995355072280095568999144810161863486829008724513281727155109609836456770565341217050728044279660034648047783946654057721923779643064282885579380189214113496856824960276276827067440446763457056166811239714087160061782069482466526882842486638690184656467436954076155697836304638518530984202722703018646052703872627802292565257133041553109302747715388916451101840480919172714502959076372700827492893180736054103437110569284019894685758938345947533525419652482141101703382280875730365577455945139601129439980379268595508486293381401926079267808927370317674418864782926385415802021847342849233110193671624965615260494566144368409780476069025203701820254489276769017677997338055234737734198255044861085383943315912103847993197706342734070567401806428607455495708367007881797863232974572131367344110247481240998959404554977279502869789415088958034928990167778121243145253923262727994066055575371029496549184157201101287609880729680136472204209529119837568696802733525000936789780869594173065173888029265100399262128845906242146679544959021346446085824969154728886378724356750666929064031877448652406360077992638593186218674277863895528268240946181760901330124460104640018801412680492420821275347879403019766180453890357727528399552573534671515245238832788615749080148813832873317414568780486364306191284284271099958119747172065587192902223504347922535652662386968505759839917631724383447194082142700845393416393158357770629540091639971003925985083749495401063607500207181764238911223390826232522013807335399286720805746553803617873362059956263355159855214441327950903682578654207739377266488656200943752315234668518286925930333457812893834913106567040005176707418725882388219312798346363644003964837010424528985848812421104515358532448926927733415705111332829127427503713541670958658789441660966172379146056106259542210109624341125823001501339050992560429191787864652302690334599424844099999464266074137191316667155130461848916599832056353998696472895833492418629749259140077418851444412835663241986017060259638987617065185028571313326609418463513063314457018882075822816123691125460486789930673072209224764775712856891086763051973624666145055507278647592896646371810112441927676797127221866934707927723922661322092431649952945345335859521364318117325965309114569513945004495875163584800021552412965883514544220813654852155975294784967651608452160717541483397757005897830893058473263934146844674784930535216646378426100416343066801369504648981054109177157522529361257532827620582647430930322063209738211180095213871674159910790539317308369602615448437205057678979180545898902920245052865900644799796868553559325795573655994638337109175294504316151653808770849005121905238613725823882528774122059836584815825325665162285145199353290866074556930416777121146410833915353950306261896866176148387362889544720614564610540361131470763838370206363514579643876020515864757383056185717648475284932114999512484142711792373801230817632358747877301430620460109396723841662858102925680904952771601772159869922899145844482673015978606871116106281112275164408858111565749476784030773184819348790180022614412911801932546895440156991882805200049530647485038942426055910803772952720701939548301693508950340477665011081828691535365658696761185425572216394141216536069657675258762734441232517717607312211591194538567295159232594151199753002218246321459894200009663383269239563936569754196428397031741865390780361887952750991484571755693488672655647069326672786727400211530243659234054681632824050205871729379458351618075857099991047826209895919254107240956259937736773747547485750096051456072518857665980369238012593029564557796717766006226851846712860986138351359301396236721427165496996340387463617843243693908650253970523858514782462436981316119081656507718471763447227208954340919625258796194888710355968375428546543284532349806418355973004454010191746798439898037315712541873873755741561024715759820547740975761125308909813041721475601101272647464898446177315921568986914909142865136405865122114831010402360593522939999136199377769805532273152311684208328035549431764964152035232248529661199804683359954265497363942156993779168806717217191173021773470472346362605578839434739186572687715479906390668999402028106009331973465233191564860909456222308403628337052976665096395204651880068809549171117221418779501815422388414680267764451104502021850617413773935742471387762358140166773613926764654405879294396525963029269132275080692722464907005214015195025835665039699663585489431516144250842143503498039207069661317351238283210393835550542670803525601780388093368411946955415452322294161678183479507305180661379247217849435417485301346809404571396247490260158172325403004022805367988471985926359679793921588116143142441356847098902531109078740077631825566843809866893972446113503513073757471027666716133684960842515218343063889702808306984957144227754419800567941492412859832894298405416939896398596565887832072180009329182847750359870407129009896212670038523589486962392930091033536355040933394056288614145355528049621911044245051360887084862120053157072759774401580862019926266624596237903697374049764062636584641313755698003210827839583782984931046523780320992514701125151431125686884641725321867028548783841244448311546382234017702428584125412972481887098608588380053939421835135637076040075095873935807415591555376484894357186164361241967848158279927841045925356798958434453497681842531149687766368943866061220192891646172738287288888911919031608679330683544361065211987481159743365531121121671122303630734350873690233985400253330918737463659257070515217184518356554532812001926348493550824711481982714135863619741054626456284371484094963032066285404718584541874481693474311987069985767278249735796078734711968112994617103945357748574570579451147454898339814571396628551293071944451235985962474832915456281847546020343924593230652934169690899939845978747317792730570036193207215462170666095987801205540704799418788031086799601132835748857370681271275208576119913973458465832906836800836874487794486217644700873805141064555729024602035495119464428917065995011214664726819979332295121051536113848425686599734198801134814826796995248503823226465564312666211279149607278090546509066139202670208735696859846655365970191085798914318050069840979268620260455987257964474053090353413333424623815894759460131204404156030665787759088348154345360794100362029555704501527342640215586457437374649578969592554615526552284544721951004877124105907223504742702377818017601134687806966336802886749490281410406938786828685858127843390920994704587322409567032392828951134228467099655043328465379065155207113510638911840329748266301283402026753991381656827100158180394404324060690587754401682241046059224730564907044140575607711684169907670748143044983371883147587804145760695910523616645197641419697471580375915812812340463466624869474198477963380020550095501773490019707933790794181640812849641661138142950603536025082599684999320033379821431504407800285743627645651134914657860488378692980076751483110508536849672994891191515144207367113441082467541322645945974362305615932091581130034476023443796276938819917171786767240437080838360615048790630331014914902757607713485479445171882510901244074563852977007324130873471644561805053226155342429608776193305110024850129669067897459439019797598972983780036880689071845892785724009437766887251035454035118236930986538157960636419102290185235542264553263411446194598199507205255630679465313587269363402449232247735660678866212540199217661250169583420574886450180680160726195770418973663965893625757691978542266176372150265481380600859847762541292502057256815673192437507781531561362557436647611086507222995878098908242745234922355063501419089833066943397878934343042373305582955576500832713143202036195446740259294531076099240692658944352536137234888554790704914169122264458617059906590151272494186413363103798979254759090238537736568531590381429698251652178770094049653463675362173206427970339795895947389697038061027437334092618437374327930310837784092711687614704031497105195145949387701723989786065380008406032402880501280822432700209993272426685832935968457510725726023225072250432743154126099978936783559635220823619167304817651847550395582055156110202381311795409867412571430681171288641724567429734055961108108513293301502120097831207540177124477598800838478996763615658087154655879192056610060260309236925764558684129999967666403171233236303374575183186050515724116965705162592073100658239972093291008922484257607987088025516120201822807506354732904219055011782076270573293099072415866749684462626321327379855879740214525976791572577387050566326090333610732710294297147723091779729516129622689830887039225142672613298685499626961380258857511173439181331397248773376303436947681624913537375076136692501783833718380794754845865565086797633221297487838676163554164083434345560352322809657618942509679429435360437990565420917238652024075887121149966881535886736387704240556924758639323013129940777159955642592711244066834295005942430466689945026654663021943367325853724930460526927142003924232624535101527342510959183481966781536714740015751527015930145701446362813645462650922167637420390910801139324209310327241769743893187298461053243077548057770861993396789106365162886789869670829784375462192227436294149408930683505755615572009187664642092991711249377808807552057657114616227743676266302526604366180791138386447524925002050308823234832186670813054994279133953524909298535969063815584352006830398166462614801813728242736771913012430162256493985046122550345994685760204873150817966437364313094235068386895271181824599623686227512619471023618279741698853704236854345662228663621915075194384017118251929651768411110510141163474008426189778561896033816857647710037237173388257934964717865992241526804324535558402002359861237242815169640164530910169523084439928474309963012257641890354963405400955663571787225749417676611871489364213852319447762687309076568489893526689495472719476050662394215932400416949863544011822021856875820921665742907949914239631102650004558896941935496585076301189965089934161450127543683223652356666077531350148859796139084562551340334279725970275347317044509357005367178310182284387984278952761152383440324434375077511553322526274973782172860860541256708186232944135094119436373608894804168146015043239397181302807344919802435236815260417038673330285414995279837803687715277125788271637156646938874867944462803923235530497642479888818708264740045130884399987033646314591966778275189542177032420772995800333201922508343566533909562204537996200961331791525198403398157111569589645957681990569148151290111631649341080936379127558405697378829618768901105357541243141783566998575054589920106209551171878235215726885197096130857714325150646552295364585315251536265156560960203203963295592944065780719758310945863540553363100941098977811990851090406558840080005742468415648626158933819907036619963713016141306801876705836128596584378788471512902222847100923773321566201211152820112560795673831654696853899424113216913952018646772294590891392674962331251795404715796079020343821065015464075831387285515619022058721462582720536052769027465401554870261487478493831306484806883718741999977675744595177497384559963590274127256893289600764588588327624201208983778963908116938200666918845383087543614479864245819200000285285420392293897716959293532631058910828663018992751925513714277661949049571775499654331806064956935831660644896753021348202175400054432277653538779452443673743582812368702256478497859439196464562094291403803966707188687999564117259191622948561730521463029519498194885845960369427542745098443447758935517780745412928696781833086688532500286199168429189930936209920591671507962953563439117532686044880304117953270278728967336037671351704154435156081834259367159096818236611368521248760638015036777516227218928814669246548327164472267774265253422294336294854083350026814711719147390414942056168770379428573274900855215330672638799043932615299853675520487334219211398102516712912017700023015577777486176610255665124439967290233945078237375844339941663676081131196319334041639812492758571378471713798903887957161080914858490078290558533452002058123211910960381228336949360484577681213690578707763366581558383664548594193255801908026222368468577763971189137847201853031487813284795627494461440219801683854239394126524636232488700187418946724550298208573733786234681901248445136564195092172641494127168802851742263060568957770786512837462748218541987223216884802650807589884433489783561790565425593720044934114743189765642114059664446932591125692981787469617354133958448088287040097631876501745165127666589373811589467584211353130817822911798435982121310448694062893408058188304159556749691425058097901078865915605080836269844202218258743704669344290817412543037658823212609325515037490312705913876081885534451804048071700867606173563861992414524019935585057234341832309856062614904972791606098714276909962840940807692501333888197455026802792353744159346478055064406274643383611007598223320002061398382503633347343269784899263728106152932423990133830351337507975114267775704537692752167082696071741407967664563881920852961931876026356407211560183033466090047643316622570057433689888471956680977780508762395533082274238638268178701334114309862439770654111179720822385644642499210077020654775862788358687768799103376060423763326120745393467065984769995748536983191321683122138104988570286219008404630624500108169528987725952499266325626041628505939038725189066928992145814759209154408681816016211427590946132782398805178891714867954215618255158736742016645183550802929194287361598099062928546711143284164388400626336296717670348752400679047603129465684150101870459951772197548749230746699750851254635238806720919637206240989298599778044697176271856427102284182035558616613259958443498491977375620600399239692856392355550181477679208244432848114541109926677409889738987607655071335332607364976306872544490951162999224048523286165644717133253318936238420933250912749946398627132533010307055088357602770433505680155583486622841385324073240802371312977884035901124982190549624314583998902537219482864250483732936858755842120708897301030421023610525539519179884477516664718120201882690670841344540197494177504576194435911943277500607730963640877350134408007772982307984561752301446724363433783026023104979110370687558437776420943626333848972676328963281907770877906610556931861144235809166102885594290984988929789954441128334819495491420787582158065057626253315411148366380171727991698422711232546592447959678665918053199050994599503847611722156378841503916899294267011875738479969641691699461167189070168798032530336301824851060700450359144580295528404565792789937417413035132327939092149079251687300994679026446762510575725496317170111531587839057764485264698907386112000614758809891517111308166678276243396139965173105452247475594043033678452625618918574055264810614922382694141526252974167969350716189911511759645797165712211088790672359909486518338267060347489614598469488549281947916789897194244502523373655373223117711816936632684632162266772658828900230614543326344252265485848642495605623738951915981382365657075045261873217220348493965815582013064386127977261972455101691981126884587788204955044774156535054271526833904323663674887452740499999941308306981391997859654364386135832829886231691480535463911542590055797866167343542258171548046867740673713682652487041195502223477344032393170139328190217772120330879893315730996814907852506461023806628205128780914388807411392559014501282454737684943973488491593798234806234729807118160736861586766934158291272874017028059154418968591008193063909985213139636772295574555419005815505940951475893202368153033973980796000443076410258748098931376394061160521897293015568044708315825271081708820330217161612759932518034439162350613491727856594787760697074778743365071071206230560476752432930344520475222251387257506180798265557314555854925050165575215869380462748613866649316679609381474319048953594112626044307578459648683573767859018066143236493569134744836417940654000407862745072096403913017701059324283201702915067289834857612106397742690894548287683972807818386204596569851617327012618066311529230993158674235224704184309076796218949712346474569249769733706508564340317605406535465956015145873887177544879168536258875637626474469373684033447587467910411430236572216180936261132069207396800011754014079883042789805400606457926744947695617769836269576806757650276724141542941242647102459409583186422333578173324017131324032745674280476749997373229287278407547223742108861898846441426161490964399647187253312843276804285761516231846908218018972066388877397762982260504779669671372204599572530861758518651798335422786828032777423699677647280953463541735740139914372799696240297400181263562797129477373910890117382243198731914552158290403685274017184143175431834053648909863685258932075713536519991440892589319782682324535396773347817494878392959667977689274107254192322545005882605410859050947212938636734152588999876831748238898972278245713835522565804476625820331271162290880085195086918356936007197101943314902940593441635585406900323436263820185915227809099004960314361081678857706761889173254217216428479699331334848194456287117485281236238292189687426717469418644567302597211371673177776958946329211567314360876496339154964061455262545656143315694788309067340962018590561811563737790764309158369124694981566318505884878198269061423554127954686133814776228309602527566883817032506930380754807346214839270936061487352684839538653505254846781533151422634087932417992260961194786386784370653383874896594038275940787829533813826342695142757431038681976415739636901864736538757601727113398364926839743498419936801141496300490877461986013689628289689568608163806643826664502962308940055689073854725757692121107569461924170690852657654887632364601189376280162434603635068639885618927210838845062087429226052823321120875644204295363066298141627985603710697317435892554418787361994142535974260785488024559171328217733550826409765231155977184790007990708331914159162571903648811049433543140884086962161329873746421345762579376007306992489758605326775724805495052222456801298098371719820247104966574622662611816594614243275747588159639329894073970326703956540376792176203819359819637140621039152707252978935856388422261424932018909174356112827856953174982563417687001278715942090614415318223316213031689041976287771813334379422609405044829329289215475030564304246213578363232914352741698427158209140911647558170206080327452419961360033452581754747277089250898830589770738620844729463965266884054656401493908310359102558203438699231908340218243471590745237524694584530168912122106862554519842760566519447590694937173001741175587824925531313007098345465044376406935010399452150092586325809323450158911623251373861869020871056422587693036533750584888202629836054891784677141576232546848322163723624697485572616624358565884286474482895004254904720196045567342404904712289459326031404574633433742812415355680571660756903743779250170902052300628486340067226145847316226136981037269737210939447239957613379913986481224196053004903514869414359572860691506243531883742014107462566226093346638137177693471584754448348130006138741478463643070610578809806242260043667245938302293422328685433764284193629590346108080776537729986102788836514676966358212302815066678089721148546771422118566673345273436648614704312766917508198896753736423583674149617338061972038018015506997631709321108407477916273229670048381693911481225843621938719941195196917570355443855452602722629805956909754535568237523390483196341659626790005784675944152322126463866101200709087568956366403521913950953894307998046165528627365749346691262007749542505146826020210626685717010869400126664486881852844745215713336120149083271141105246214303198901504670592772045821348891754011862997460147819187368218933645749984896983510583885632447247715148453612859630082071679997073961190165579772005106855167025424784181108132093930490714236475216852562184774060426504695520961451806420616822161909624857171114672897903320781660997413410093175758790364057667788536242533943101438619089483276479829972174158593115163813100365602016199242237629912944548886422651739545693199059517918149037138453122298499155515630593260099924746487024260922779363906087493481300407685395536288799407800046861898279789090660411829639490067036962728154027816734090317899760799729248104544557506592509502010375753285141915873632912451273988421030610391240205435914815013770164190637465189902673693813799150275263139934931254826526004079002038488597735532240283100445869006370418259633336622408665389885679158216186067441765781765397383190880880604494832105707675156155845741379522099618995375482453725293973552216080102824238219649506026582618193281360716911624767829154062534255371892726050506639441872645331379125510478380381441405822310642800625324338110135612568086788878260842534039439669750832830198423796142244069856101856153235871201792255342531915321089590571155666851892436360868161101339006725893221889668059359731429816769317416104432834775407396200692894147627430595700324632635665503867816231308755236519591605502252917173810804409861756017750672488378514572672810898647335297948181745647062346283123905788586582292808312268067411063022952387117500169030785929421428867608799448397206146920571612008002707890425190005682447251186398331494371380209201802432949693750382224719644435508369213662074020739179121121111714161370158334997313292146447927561465182599615559085644052432574641864241963928712486499088128925397708942896244331155219798454716240407263658559550589377594769322263630645882553644234318838454603310093094344581738138749243037455693501814391556008984085910390244300750447313277185041576409177163597137153381515959607429094754120910315535065831783657494139855028527013152853971143391083499699206073936431302315926047049967447600584945070123884336688224327822691669106441879226215067898872049073964146359241749009739786010519158868052933255972397467354556847557878034144687100823855047968927913367693739653441309999867513341171901823607990683823901403747238010079708954441562748372042470052907764817123905352170048066329078294673175411852274034396192529921929891324632736059250070830861591793605486620632442214570113220863021331863379282065547009477551035083060220872311692483875346592108300165999779035003284956738198851821349451445123173711840077157499122534704740121907398096071724126519194792186153297665415206365634572251187053633223537567941869208186322718837159630541077674230522146495982916101308764571981044695820695211799959539752465789471137794843510522866142008120644467873301247534202743867751235125381832452823731217123757203318060167986406645145503575558776191294400522319323794492111893219272336651593787222257108600394916486695621709207723078765114758968408669606309191933384268985312826968410814071966514545097464448559149125763595379289779160051729575138390978865619646231698184940591092017022123142612282574016501446723175087852020111081007139864739571842478113481213315978292884527769590590354786554080081803532319025029646841682163231530944986813854922786659527393269736777455953810904610556760106563132747114681069513528347805250928227736050682124314824808070688702116235772729078541720095345728369733844259864196688784108352819086977452149064944798590557096972190624798032758917673525832614159244996958699597519667416071682457837804555638081338519528932613477259577178137469166540833260083523464972001856880884983492628394588995293613862111223218732399353093066207454771579919682185089969687091246733216213387244995775415849183934686051095975902406702927059496740521056543793032702991657900320493644119852602555830947332008416951799418279682792454427694777946268418846655568597221182726516886503614208163601480264344753890324951785929721702325035857448419313171035336827709717172419413818504153481450273097017724756880691242375234997049717098148418387570125300101840886182906860103154120875523718356579510059549689531586678833419436915557070219633122305009841627792914818345046144393501097237353406810212660589013635405067567644335259514400114644887623622727963991467864059241719800968588484668736848560839917758434413057669639097478556748622220763744255673041846203363998020774484383321204183133641433491525347622120276881277306403988811878924444578197137170999233180205125457919478565236807297715714336554236551222585126357188299719404160500707702001129567940729095104179708160292209267428580680587366754801492047720502323376951082769308288886463772735033178982298447615064142488738369041521847441808606034040550834880015286344699868469420776660752595867248506309078936484364503239104008634053768732572265043244326199635051992934058453197752179896111247224282211585503573851707411227807067836346201407785185366998101342258383529020851317069578053137858993284330200490680765134230186580899525721226679894764545624555771156418124452783685503292566347346254239632955699794316985667744893584262649605011858411606368278780393677799145570257237387238067523325104947708309682978605276159348830492026350341200420076875053339354757274273173977090877265797114945821682820788445770431597623265992335348853859477635200198183817830320941410342162507232370106411324451112003879116479605105223800551480947144869947196646645488314346261309589107496331915115138301142749729405122045632650932571324562043981113647713945648419076338730370120902495065512376410113340422840864715154957496341377786338586178688028369582320020846613940414601584061473002105590763594243304718445395987886990616688823232857374074840525538757424477781385853581783402940016045090278203203573856935320922810945286010560412646172068383258602534140992527959231237280605678090596732536215037833237236405477027648496563445560985055225016807085593630923348046597763385291487419960499483510981938455718313604469846806047436525988542457902226084194202613002088456626886437187196460400434387815894598160573521259729082695410735464341280841444017729843286218466301896275749254451764289925593406019387738757880837362812542035568133292669793491725149059010762090224491632922725548530152208203294342732698490899405849342432737179193418131604733806373904569865538535162285637373912029474999374648927706218911564241959555288907381726999766199816452101188218402979319064081684830615226074333588397314669779663038306552055353951435646509623296966497908389601348489648764666036536562775491544402864101660993168495550524135533776476620311686881160302520566685534500910824202348662422449309914688795570902444822412789252618316346741238903934509055496462526991357229883807429802571798800630259533902313161733377978802102721109205837330976604939078079412763111741089662750846277821571668475107038049971201996973204329483154873297068792148284618510798924205519052721535038118212387750597251495065860024552582801443266488704584272579963011803519581539898447778821699656761223514194573277415705239947527787788497431004216083004420088588402377009778163167314849436830241445564658710416285675175786738085802511939351536213771447479847595933750691041054363378476083551947279709952956485923758536017578627517077874150315701788899040608464223674874447190092219306965101622478315099003081549861084499291364968525526992882021321361616259332978116989315366459241632593977849465462399208517099170472029461666062928026593012485822347163931197877927236410177386811920388922793866274139731736509499875128525278956365030807192194604309662515771924326242273030776879470095321448595547940941045052084105571864698318249819709673450035700124124025876365711408117182594373995107033323317432230625158128687491822989818398973904644019348006496957036087617710833959117783359645755530308063607531031034619814863718897124263704989886621600435068801761761614673781637931303963926026173175991708456463686764582615791900888934518819653116705568674355135525236555117964604758204290466130803818780234051298690088844045229905805575752295534739010356355230942007489407808485242509105997142843856027059739926423819294553434210314111647255386359703057492279464816354662575608430259608550722497374515615792002597045667010020781471804389451029922146564792346812086967097214200852784837002980899501422602354957483881860410982090747564530790911223815192697742404290961252315705073124596112359382396796355398295895503291535411697017771431601127632754058350247978475138959762661389097696183437018415265459290597181079344097513348809215289999257565510683118257835518151587886724055758681574060397319370894502768633372453083152721190824777249231004961237877253727335455700729961495350277511141621961608124602457878265364114953204130043553013016201358392926178526547977164952204068705001884928782783397557812259841604089074734083771129714070504798973849512611986454182699957019548929938361052108673369031233494766537693248039278796823122105245048922025919207478372403533524133896760293142399440372054730112644905080118319407196922946074657670170695174357669490155136486192477701689338016128870889206567430515417826168662451661666691627912004025655037437199052476881219653811046134437617296690649429357925977673581597428394715979918215196789278623521546203707264323753666761219908438925002223772501207389792953954600451960714897327130053647164112104875105287805477615417912028389714880419234818198712057008552007416402953408513828092387552662801938209889436844498357351145682075417979396788728155918270530925440664187594642228796708083565689727133883675798188998690270090235907854325723604008705149508103659167954789672104014292077648698110284695512800501118126879618382705892337276559557295745815087112650556731889519614004443757913361942126890790435738295187497390755218263780898249972204957187661434545254902176211577673260469897108092318627223269342191259243271622980159442835521583010813531857441780296763985080332655286870265633795500358832092862029885090547137281609895448259128497636239382481279933084202660654197151669601429652622706907352094234075576870342520651943050907648073193060952611842136360423201598782436027725282868948841026148543041593901794838282422900826194970909950777638753538537417046425122633556304387309879458646039266501846342453500634901919673277277566571227313541509075326875863598110560781651547183147366546691994942241372039269085824821641448676518677428238586511013133538342380297590040807279190314578011651123544094419476821054097179654346467626790694301779125122053714834447018007292924488739639220929835585267538336570526316981248605711998722336138119941806461897567597517134449915484941653472508050428559609277953636799323724851410214977226417902423968125286549803450432976323689408786206554546442024762586738494716769685315985376165956388887763414839298370329974366426142567315252121913461881510444907193699051429574209193038424941169405865605734027139282388868144686298071443399168705364796930126235293643248125755463234552465348295628216223362706046544494761436801544472022730835648211385709598903920214108375462911391566759720362578634132559550860441961378468412415331469107422773534368776017131472138488823756131120946309996896258747661917316212331012188391907692915381647713863425818644146634331066519993436809522151583146826256196423905000170969074580923077757323698455763021550664057929333858157999004277558838336297554986723342548374954002263405908704763299789390261385625828787606699241829283184398382437932074935295205516067513984513320260644546900921290069745876502686643880514370815088805794864190381359099970109356695660135684386658128164729802542643081162852961783985732463621045848318931339512049318370402511253824890592685826423333680620738611812093008697311711958617146759515808123266586623311754038234989431774877066373876582172564475273210148221906582913885695609548185938764465214210701928665839185306404520895854479291365474995421284605532272277432678760532735486995572539538558155651337472620840882968851569672943763989185058367103500497590740811646055520841224565587539457840801723766097910700705669650597656601576698729632671531895032079711988535030616581378853893493266055311336935561823379174397557662984666942573259377644784117304019929709116081750731564070087277032614046490266109683418311269112912850494946279702804275880062301472995551139412748290722099903572795278075813111651397070127331969580409398436612546693813766173575498169136011199242548209460813380857745535982143783415912025143618875188284088981371880294661075835674703577256706848947185825837581979848395672769714159869236865141371991181714873426307687400168814209053539081094556048992631802642743288020754599112339934547363514019699660081428724189782821766050855273430897379681791118901485484198573475694213908060571780560868751658200660081280666400929069845394689715017708573873160714024580590295613272652615824177686587276269747415133764839477735050553897201129939114242372478287469647858186736170933438505685241570037920478550719970062842735891656435819138748709992079244320276767988673737400475007032957760419552125318641150406312027828761316115381296972032993706665654640526942970813729394807008453917851603906403006437198189582648096617784914173690636086672390281265783694243104900773171958934016732025486540402563168445685232743980095150881655290023755785169921687502218830112443703939076103332334874080289418964403571561683616287288302968536359822296975538177289817582365030751900175657190070022847038245611031532683752505746621640170959591407681748846675656415677928524050400340786117059720078952055795245029814926165977494469915562015420146255825952399273694645407700315540928132245738932059389878702210337533302802536884417077205867478285143340239247342545880058542143468071334923587617882523657793482336713424867093570163442730344993317535929021010677141713354086099703631689770204905611945527779013152954238480564309254853365822078888507821408398486623184020288759473108895888823602680708913440028146557660944508238761207594210364096418013855309929557347387905283536579047967657119981619555003624322414395616049566713213089553501854711197773826867899255593678915997657565743511366301465350435263077905954066315463075728582388705909206707903275064432514551831838661633064365698828242563169502418095525499885057590656743555709607875684636517799749387249548078170560101953293326221389782765845376659723180230296311693941047461201143861650343378216511330941144956005325196783219870191602203948404304344752501676155130359082874392772817574194665220057402815971474683260547393804821743279612451593901678772110986010529061198532313955931230172630749846830328684187076999496537861871617607990156210816590109175054551083624958536684057925432025022410702291789259849634048216632143165787181846548664680923026962069281523162791436676973575783460887616850312947100687910889194402232734726062665704389593835415186809503477589925051263407691857268614333667869575554443877779924884469180446759239092261681984575207414374093056596796108529650351747905292547468992375471276332127535079775106652895219903366429663862983195441058699405868312535964208770461785613745878454806042254176387242525135213580082583645485299499144159553201772201020271539135746392686626321511347890371672434682602549853953547282168904387097512129021006147436806947840662998402853151317846968176521027433697014994420452778947012599169102164205271985364604276848794335509018258002647508635760884971747172500417765447867955031171455148549668575353306996578940984947466986236485233875562090899710003226928645226810751493327276970039468565965483609542653837169467657557528931715744016975848578864130257198530186421547482525120334969239975026262847870843820347674629155666457993083174863105708308187569643811319557101637615295228212282001933183374024514793742153543740724964265334421896105325539586122426974932970444414112357750356697605748104130542599551346536506907420675543742906850933168019580679611033501564711776703092259292956668747881356941665376016970125717903003195616057160061254026246721628535522796873614315914037376933838062390470509707072348755402528785647411185272555002678619865595925617215252292770175606182947073133631518938601272736326804532739200596374553319395232638795662959453102943811168240277296268287438959807246524850998151929126175878789029950869635468180997194888035587016590795262485193272103484633223214921590522792968526928722947965128840655557031675388693118199222093337975210671249102889590541554123286873149323566827169710344842371467775999986425081187100552296492525678405985995133421010693701291457448859578115099655643626301311600703804800966444846365623906270043399108350028470057866530909816452637503979204903610335014917847650124884898755901717696893959509992348792618215504186843604662847000399354702011629775222983602052277976091263266653049097087698645872112020261869156766800410299889044662561013407436064277708613161422813165178733221406506570376054732132394428848705432046382662328273356811049818882271826770800767941328716432977104137982713421656289445480475082476370578904566134086321328187166838144495221825298334414292227197693700508616198573519497912483079416848526783908857431121453385872995823859500507882713447456581195420956918848974344105051589250952776798769955121599885540723763879450022545531454768852010993916175252504152312118544663675321238540063480016004985245393593182176971522952861790512632731677092118180327619032406976703984481443790333699341147670896316940057599618502411767339818119389263556190898667354511529945430309999650571472747524382272672322245691699424287401287608151550236656524359512553607910869120134326737737814387505475897615211424633948884106708205333502937060734468313886357435896366070461544048446916137025509165377150364523066451601558064801949424599032140611657290699401490716706487263708319332694786674375899928367304718301618580110837328340608322673980642121373182198350900664912116613758470069687499760554755699780171450564286694337939717654525327189886656634746857551420883455783617441933390936862815589264921935458665443975264111943062107291542194237333059829887094180823174533924459102046515909718623171539298148676099790519513861897387293508847795545789096877372504245855089339929312294925859958657455090725113056532350260677215978234617318843081275956460432725039824165243400633509454622324227499532626612322013372986127253588024855517576583364662300628604864478318208736584337331991787137002818343613070632810323812575692922867022979823432636728899714879511675664444267549141259170281902736183204006457789664401121923644950317581051564538681198796118537816585051532144119855190335143378351592933399307717061693120779977939162051332611041410816284460384348938967563860689326622903464083378185082830562759352005746916472995330292554317375266809780101022510263405627527219672713383044333159113259564045729982667398883588003610105263633922586987468701949430721335841613897014632531644903649162113228141230085307993174981946978172963201180220458938568160230470098347827984598473367240942429393893097123979356936562631241981221972553024484379571696849538159196736973348809540410383370586816380500428131860718270693514863211144994506602750710067789564429533028773690149897135189710274424682498183784399792972599644213613633975665878913158119703939833312341925677162611044741621397490711822461746573811181369154787633411153178213047533750693421588489957029048890478344136184838663049725758755168690946302973311342174060649967267183216330383028440483171293709922680226087631536464284632067004373412542860747077097704211459224810063708286484779109736302963389346551873195076429839664488488335317188203219906931193177703817359382354012922232348361294081639620866701268652605267961949562290163227924499473224380510551858484884342600456633481694103211248119500076051257872830940090088679130737247604917091795977264202741404553076816244050593400125743818395237328198705308552246838471235536681361338732346780397869362099826017282852322667045184434027699916823772919849033718678873734219441598594570712104251523830719529314149456654044724997006463982389188551137596221863544719157279603677512922800170608230623341603473764039374111102805074336889092139495131046851238669665619377202128133102760612134549782790256191397641466654633998407592419997317110298125612476102684374372475621029689774810038712789166506733930346311879652485743855760515707056380104208087657000814256497873485717648585955859140661386612590647004103497872789447825084302218108460879040512122721021499102300071220025412093409613238921729303853611117584705871135683323771728238684535159053339497980500929496800527025576222577112821856605625290945472644860648718866515895272391348606323659624161966506368306315524962755890012428184347521892492500979896566247531021842120452734714505418784064809310056364381200698551947270275963547130324495910398923347465882952648040490252075870267987675510100730470328217541557739975060613786548974545128253145703477583303812131628212459816257925466955984158922779923733833197184228368751160313601524963388810392866127327340354928663133020573102268835861510125883825252569115549488773497829445515632684778289491945863005265446622392804027403957164734347221143755474812700412330380983295399073820376238794058103406731262030774492101712421161924036337011729729158716999627600963542096981030622575400204818054577678473211657272562124505941615852010841563958251369432715361355433039843911969442379898741556447030329764728025449494453605315517738998255744917485375414934306763276712393384630911901310640401388461003606433794409894364236774042604131001666960224110454779905751400043298143894900646237234740823441055881319993904868832163621772868182583090142590248353091377291841297537295592719726344276185746384675266714908158395486230364514614084679609175370877830333390544263987173383947747722365321506215983518682387773016987921782913277150942446473670912067718485025618728901654093614717118601338286356898294109842008197315977163604060029205184327766662689918153443237711868272855982005981716253180153121805840103869567288311465929026043135411983081603653748046344618471161417562377254763536944764260723786710071449624003712726749652830353168649964354184523447679144693740751108322444789684744442207269283060685585467919402911873928362434124590205608903551788391887041303780595278240704745240329318643386091900943746660169605351209167438571044327286076139469124034302052490858892135577233583128281894625991658292270922951606027376765332811306256746313055933833621748521253307142992999962016942700729557140063260694389332046309760977531526452777331638400763561110808943216501461143489400292432197277891842067069136812131532699722788408883106606157606194529026333640636009629076140021757107051270949178396863908207713665495013895208614834877580016151088474854604923263236603206062108328457681324574261364488198258499705167399009985770306793242203405027613027832109174474513682894515771143865770518121153364917762612537003930279335987310287557833321747748655434167008099436010033446582257356577201228346282540675356825900953960138283044864285129559995137336508154397625742065770733380636781302497952164360031139797579905537742741466160623125929739731997443635038586734459066549921837276590590986367900350476365064559582687177661684306165066046041707284594129710676440064296226446347591744420926288878985953592895236842988451046438706528427503326430373694140100549766364327802888300708404389868720828700398866039698875873977188190851382246917447504006826239210259408692653109661218894024856645198707615048526556165099597976933349467591771500756192374742354241564350371215564109314156329016099952436256479951762752185877100058207410185716970244726588347397052588613112651099084569338922055361526916017290841868555576018230787094942129617764186684261700331985042490129051528713925227385314054518669793090409040326869849659540317053131707582200827634496529560343471400059639389038640309434894511903217717621557159724212747838089611302418154493741344571727940778900887862721722715814239124747057385562691737387612050988382077569953289992885637600821139875463655720550989087283544865515481552938361148069421175558242243426744458480983227314248754659610503230997468148957801232429461834148749541338460596069808399091971006483489582123493191946872890167890884157544822051303759701568773891113698552348613804858176833308887651264304978616077651987462864309918808906125987005618781528390262384817633236156411202771840988137798865918484225752205312925934256875428508312435772495846321281603606312957988293908653368811138090295230957796317461639965970250546856283384884484623827426916324298265552837247596376247497287690881571728494211897093512564692472697523284230509847157082884085148447874430662540429791640917970023569018790915322270495542662141847568523610168748575969102588748312467772534845356743520975704318073108067834653354825816934429093677547551929413463427527057471346160045428895442762496409745553565739137236654644826311193754247301697141223678151678992402934340771162982780405950704444435455780596033507981121561075437716739645191593209019966801042828752085030853990260815684024416387156067735914890514689362318180387663238036034983408610146890520809927812038717792132694987685416587332995675453856975351891694587172450530992525841485396484005449654925462512195839841381720526857252550617886479082460719136402855613043221098163489260873837691842628134428209669939788125413539883632210993001249917423103445232430121249997571605280783065790755426422886079888916844952049964358552513212650229182522765370390104155089175347829922351649676227672332891749491663084039051115247324357594455801220522673094414663381300081087235592540225188804031897642025755044114547893526923786830445378264725741560591929890000916638222474463193620733046387329412984919139519786085818875446028443950579062415609749904179413680076734277916403629721070198740429482760680043004784667273618162465645871268034408589778893030534118076319023076574284995988126628310624387595170187915345283435349645591047430315875801365878923623136797493488125827013774169282496602372795749182422686322624140187046585067394595520279461804336045287319540999828663913055748956367199137287492178164341879857926068817523595311993417176919504730846515459875126177699669182869676853908505924729636163515924851097441442020645069558490002506905034926399037282259987616162461312632344501500355701943330485675011428175030086275556172698549959044073003781550124945595463048934673376414325064167471932190385977368244869244798421008157308368465478690376730960181945364233975314599316582713506101233203990162309028365074011423113398162922304718475835839777599927790106237286922853144060445422139533876961969190141075044102834851730512287737768981719658489297172423673886269090558188106711029404024181258240923048626885465824143107882321830137704453846424175118903169029833079116570191057997886393417021159630139569183363080763693663382137619077087947036941948602698093868847685095528824249536307109995600242291537040146701593126889546714989805572665887500451216598949560348865855066178634438901999144394647765819193708176049483192522667390065927822519805347439532605630495150888739109399984908011586043319594480903729595730619817010748427717856359336151266058739418031515060879480012063508340928411919354320621550941506108668987192846685311005020652645981453038904460321290118124624910271742365769558380976887830733017184760730902922665225977347884173391926206471099179990608354291504468554568820390338778050978988604119302008975695222419858190131099328246833072834570143390181240960627895029565560657463721175022803939233638448934241762344196830957765585227545037151709178559136378870802775076611795659547070778143763729797196971347621671782815904386678724278160243390522817072052099670432897705071002887009424243631172213223218476671259975700762061463852702294187861055959374324064959021322026638466232918356735196375448708260696808643661189357084633777853661534259987052005570044836226125603321365888280159474994406188820360170548645634774522078655480420792949925339031688259234104601782773523487664318132234833466724533980249299557887196028198875886091888028884781693498788907547462851459058214067581829608381687158535771576369698234239525864529701522627435730215098474917267214283547690538951126152700296676771192399484823349113342355292386209612723569254711407283430232894796745502285364851955124608793589743216054215524009922444587061678784428934412508443821318032835790379654729585925095000227789247863763931742161761340257099877211688787903257975496233414085935596013753779939005130063210386805309389075565555917138621925924048227041827404633212748173560617413785530071997123663782188882755497591530326004336657013538348832946751105036521888346194447872947659679284963645568578818451535448974792814461575664318592188479381061263703018066381473364243262696615939602314025348028950365913848950834562452951326320858237942268001947729005088717065168955296650520661477437636845526684179366492574415930006211763736612461860959307184026138445500876518586585464197602312973215800833098558406974371735235831215755890584561082679369065994577294740819438356758709620125858237289984107971548735520870759630694381934198518251265308721805708993743242538756262039338054670622525993123190053644140217720753076105224566658318971940660079825792985841980204738499176061162367349036030007921722838577326951554979612773697509548524172905388723917955515011783121529378093011883110697366561394447465814781100962814498194274070217392396306701597026624605099209040807728619327364089166083729406566193669295913648271165344291001777635877707938530825321644786361990545868407702764320974442150120169169986193788409665182856013316611769719848992575963893025227478969353646351554797879339075474247498523146791928094177692577170408188454449344284324772713764942063308845799542727326463742310208963827537215695853650702833948380525798839084786070358613540406743353367841314484486596035507176111209296150807757935088390893365476735343649329396708997784251471618072266146091172542778784743835998249969948632307699617919910521964548182205139316354632879224150993195282081963122210433949530367940048227326299331215271536211446856064063883652523513287487400770956122391399536936900544115359928592267553767678370116113781453343891780451843916420394432237009528372814053484856017002317488101457100567253341110815370322850306256226641401906750094503156044463994302224419587709217431924297510396311182799121109841552932824665724974749721268644180419777594060893143412078325163495016695960351777739312279880382966939031645961809435814017095819787258409514507192419256721961687280709734736427654308152484524905209878187363984592266958983014445711830923639172395899991190416168964834745629847095099861226912040599120879862420806640504679262511627655403755489952706820873423422672148931775123101527261769735353705526624398906574272266095930465949899596706202086487671749587212934614277332403809736634874903096814063137044517738008395531924126034433125531843786242724858109852005976259443921379097201527487910296748618037934858441574690042742560594144858084469492252521002767414664844128828309578947233062913242928707901004080803087096274200044710824373896173024228665161015540900542806658172140254517029909048070654336021470223217847674746310497709708967624121440648597492077785633421746364872740721966801760155192805140134234067700199932284755696379760428851536456911254800296843457348717480727823735243937416682169908332482753099577624529672243038131276533324829063016317548201019159864360782989558001897480350652247652774389921121104823009090218291066372001975451617547619531607492009511796978221741067647951130806609719904720922006543702107316352220408420049876716314887233567718666633021018066531289154483003274511621410199684460886675322716994621084347176439791035889878375483046880736173451553103833785609062508302968288337437107175614003631274620566432747858882140453291181821683404107538440822362454078316287852104936320747012057318949846685802518726269656463817030714714110039513495910622991543735399852382112873872330607003131843588787530076651308404953599576691454798069430550883419565538636125254667183285864985663222058806962741492049301556630638100136181814747150045915208697325746005128316100919691263201743160567189850430241651191581643781504828771106417036906376315835547782170350983841811294687306193280693478163544459768045240358118090534931044151216643446334247670443799344668036119454230808617108702564163737412600363807734965576861899476453387471207086600841567930541656180761725449733553727760810333214899321069111383518389995889621626567652495901756220207829609255436178241216004080671218004138976028893206098130681985751670884435155111650600289130993871015158563558618028149834917588260019896461743898270009266039131360067666631195684548239826759582862293261465104186155031361536770930432892295103761131651989848375933158556770487678993152730095468960319925980673522849171964911868639194539791574406738356709357890112747506650903608864934032920348262016632134115650178660156865918391312356398815907735411918112460957897770829157325682418399073273159708564002506737002544648814580933479613577424623325148237655804626981119735794127168571849799195815631238848507071141662957829095245250445514489402753648003825753869622644065501753655466118361535629738861263571861593421716279494685016872965930192130912757619173572756336065030027750288493850101566363936339412109489021110768456523756957518787451424221312857633915878143366330455597414672141211617780974501349220719677768382402833699174322251905376232309415265233565413718433612263952467022653133916368026806615316895922553053749050612892716493580691321721220208063467836692940057440885941734675523821770448181487782801021238483386132225487114529471572427705985526606171815910809641790321542539846102051221849004524820052956300724586423103605702903110762512320235168054537244920180147108596628956657948836126241364977570868020067375919835154791555106943313791958071702165091803083758639959587959698723241942501394389858855143787952042872376245172002917159103003992477927703402821600818436163150419111202033807383127984350939205496981404789465421787242990485433318544250174056544867332537788220901311436215348295757733137658584145468307221887888073251713879117667523077377887212092063723046685195425368109233007253744059150905184285172350412359868024215767709085940256569470890501718172719071425929725758100960870899113524810998831229687248761981820824727051734311448046838839294712592626183175576738383352434616638913153957281841439976804865763664766366714625443862982507557541596838808344451249832199477319543645998078279899045675301023071329372415527567771140924216445726793048564053049847279703588029556608053846163297752306427683023464804194724024547560215325017119799468563688539646329578491192306761303525007738002816283681516557534547642305133573309233467642019593616766639981557814951757957741581543228522441394626466004124516478390840734459764734837193637395485524302371237169769023652821419207622958963857268990140812350512802938868445481729551945948036773553154435672401033649002623591512638118223414295687098660195446636174104674930055378990066115763028700740632916883703230793336321120843277891492584042532409260063199428038764964414070963629590929307158980077891804195276773677688562685765348523597248598575895773528071868617435359614216354701376112269791460978807901088187677461525598771345575666849898400774221045242889441044467281602351333669000362030402972048236389483107788257875255330584860480141944777332173338250252112726652136968503939644241542388543591531535744513849494720656150128253194765457704332073644052720614384775277087290168680056404752937390608908560413013281046213980948569506085305193893007199709884806064362917891962569503766764533035010089810954072227839181523245830361657989509736493228440182878732520857078691013894291648274544623892209292245209473773800398240554299518115189839690497566019926733677967006089427904410157846797708216962400854537769856294301380401223956553022491868140650596303932870219656467939578529239545902372232820662766784541917680543753079734131487461811749302773725326235049464507191999710357593954104697124160180685262266779127877233132396811553084369433946555263881145908357728576532598086177583382900997309324359299327804292640925911043696358605571410234303461301201488438709839269388113099792217375320518765934102158474309344153105145523957126614891718986121759013081815185369286552820902530685991648765158333978178019650460027634341958525765769635519948099525479744492540853615739590025867950459506054020912279486353467872830626217664979686191152817796302570786130786100946969858946008606256912255020088647602228381859357723312274846908994540687856584473478624542002501605321833748748015897107882906992737901137762749777149591757726695995189076985886995641872531483786179661608911505797868265753743788552373011317299457090544099343146038102445700521644316065543846277698819549584304641996871075866719963660409787153414161899715454972099319890884825337414848518019690625580261893331542240481133025367716666324270353670274882118917688795477053667610979223411539103335105083272243780170839340816816625494461849555111267403583966565804761255144568930669266043543011264257487117680238222791732881839652776879719196808117004083881414530788059919940759493610800807841434593233326316603698394577595987347233564190254937301817759102567619869470302437949194709983623198826187941509389386623248706584067686793280892021046471268448914242386894786334373029180826240290620325719098139432466200028877128461474125525524036563039822288668860355303916975788877812289946350388408098619185447467750988912397961329100547034405548752603307632023475432674705961072734326316236960818895781711007714904247135132942211655284164413975888941487723250410659273565392510026736249664037534034161970423074560243950938012383866642006582792219483114646880068175063303238236108667878522431521948470294382687894478272672268398402228581109357267795115484655853444919307517343507683824127538337449044294483918791899268126623755223279402124371369302427080008912684147182194089969057872163707409304385657152276870094743233805776594235904328386741341940979108993345604448311987124521150074267093075159420949211220670393745527565531316952246973411014105393720718960964010478684669068146107830575963613925944305156626464316138975074705960270599094558086023221310262317245837483079707263685829639951862478155757652836829535973575440816300474700595089632460145789256013587366782619319072388028678804509896657847586613277964056979114174324879184502133868633768502264123672472634735697364062174952072978777191753462511943771280001541367794068124414765537401413012072336914646050406907683356885125929749832865105350079972043143148341329282023721655116426376499298080289929302473746499826985803924699569805385977019237779620287587422825179933148784802643266174203191372836797481118020666424989537814280134463378265611330826523693648606643990427087828247086214014573872833756369361233510421213926073295470857796799173010707206572565837613242493964854771307506140925575405861870025862801899001818026620091997544358306899839263015595282543592792113599670431011143100980860119207355714634565160416858040228496503316188427750484030557706108108791522775420260061702596482868183427186004313488660439823593295596854872021577724754827209372082953368571353164287030440938176154813856029858601337187870621042288467076436579026003655907496159659734278978509800630606412494505363642413974226784878296476312947307895628185684580075644334786119858618432863618875727957511307707273616154344303157651424712249781761639639046120750003086494698947802665955004274645344359791311545492171117512074717553929920850160296666189240172250004382873338462459915472437316693256533292134959722577801417969094890058604862861547483670520988671008013986475365241241751345323175771799856532501837241338036182719903269161068685042595678027731023921492200039284781154202336725446065582725294540896364855739351696801421213824081404564325114264059819446808690488703745772334562215117307862122861713100985868897878266025254838661658696382098236055599044805043009270618818929008535305352540918600221949372172184556140334415555560979327976754572596002738592010747967966296346268092578627544936534278025250831965791889041445374161432541894597480207120872603632828425479325336905541732640124865806160203553370942735591076519167709309089860729027463818701110584463172308491990979475354771229155116919339939570363594268447269163335767618429969831741729879346907171248263016945665536405657907143147294557858584837712487840043599407312177377740023867448925906356562746888324137037146173812806870605524449818041552776311388235833302650732110294102643594419401795877666600991416716033238941898828277861379975223170561860385103301907858266578039219615135288999023597929473534254120657091879889718990645860599727311066701721498993020861320459389588737045059096346213605288892508348302524988238094490998983565008397287090406767889156141978290111796288749978363457205686562726334463459540852850744472118400407782565346883540297906957336151392578313756109631490169474111062893738958889259764714575136168231657302497820220875363173414516607401319085490097507859869449359879543104223164674128242288814334812517627439878474119058087938212092396100921383482213156375071272972160248494424520093839917745512429811530747317163858461077681711736657030362219471856502560006226383238500380848762903879759716463388548511459802397707399048897430392646601421056653387388147323512696613760133484104643362618490445707578465010254517107078613958752104609247447795150637778117261037746565480327762029566490744665792880002906131981620704710823449124027197991086594042844809775303099850668962565818974597659535730697553678255495374185920296686690881087818823517887947343644094042667784976919320987073412716664606685971701191153057194887996729528403513929160280556306631420927234911568780544958783164399266587122786590279028187460222292565567589512459054618396711458792907956987439953843585374373719651135954055868280012597440939412506451481167337926943105972312188036874799651108853245376405130208176058304243629537333965020718176225178344240052219342813405669708354375616596856352143929355256285305667224871272268593254556191846286508478144064172211125516755519637184180534789800049546283122184771163377794046246130796608620142718663769928654910599902575860993385576033349729287796654209526661716633444878045992415026669483074216050470029051754938660601723506617645730653802153857563562738145081199979660888449417415129202257735041986464457205315275221759569296302271965397479673981000303088993439338305022381461911414874287005440378208027358454506736749482961724486176823801432252259997878724391746362772898087864128951433710163381272398844727473231507129432431013567967517855770354839543770970058625497463776713469102734947523574605235955758695758249936044653662247528579993838976540611551078951444676059172088892140574224777505970182899228789687717822544584665561220553069340515907422652366736434835478331714541932107290721743695097815842792249453231693110674889092603205266968848377836412497189364807465488195014804988038597695098692320592792130609611477554715789927349362312088914353187900074522951791903069678741187461635314120060984924445491712352863783910038550852039866978013962908185232219667782318961637132240911981249263928542116459400605677037974072159236173937273240861160666439339584839470616661354168486616845543940132481141758082681286807413597436949991213131909194754118669399013340108650696780042222530516931214437902225280405862606169159861695367760049280904910332197765041857049210579791350321916852255261649185908465887618791441677412710263289849289038117530521886028973677735422197758508766222531759982779376010300464753147638614162351837983502897210374690159625861650426475894197526497264473857520613599982354758878082787446107380693430295183702982581087329527248754671523299538035558672338618656300602141905679029854557615267293395285544090119865518845548756508474706615891151329304708923724777514347466917847278067087741307179105814350332693424361139657175107713168935016856071514568106422232479873415034103478099886985549499936468230118179376096093596859017130622656985233954342367629284817638071993332106619145524589597982921251129481797532782732673946650682192622982804700252539719615592446559800465059898187200721764254499988097615664294292174335149118816189927917592596148704830057577300116498671248840051149710064846484278834316426696432790729730414700385147369980831921659565245264670618032304424216077366612756379085180209867549178278632956821513998479822875618610408419161154050467979091738033600020821990092551237435329127469627993548139091961794384989168093018504266571020611450340245688589793789402304011027128383498878203353397422958111277560931370843064189300615224044708365014842670185540976318751680675849505206713133801395749473868014035590971308561269287778145906310154812621477715643363059804992570786185746032457665335874977434298799520118520715226728958002738653407211911085904521270929622770717405033813537006392197020709323969649581730011637370907730475385360633218957379416856480257575065528343932008126512988828168200486319567752608895760405310381943003919475229045581741428164954204268845975569929489469805829912721294110279877999431447771580469225754041422567408979756923702208148407420475658045208779915067633139030008725707230381937773310044242966111461666568128326438145568362085017265873169715182068539587737205096046542545215055330766218680731495731111912664491456074423796131621508156449665031232665479770941194245675162912612596665368005084006701126982729859310264311393071995104211746085910342615334752980061133061757271062487790505619184329768010899746297486551753759750820812822689544892589144206848611732700295416216134179215524070861691566461082357490301084147489640772510408587518189600504856259304395108065973354073603279139988767001944071804453102175109218214972904841966989342520218554352227030989364519513514474466345496895640188397148163955205518696328176705743243351035258054628149004739505208429025153218610977270874839980784462512594134918100487546519666616438224036331055753549147311148126833237209457549050984566684881929841335021130198017553683916725372008784568010883912412378456337152406029746649575834283240785917259417342974133624988242655501077958545597011806993267889730892202243267353174924071638540717488568671382602827856766978180367655141276757593046449497779552442684039996033504517870046527649795628924140754726581605477571490289469911786713639868364986407890856982151239444078526649620149688544051599591706028901408675046905970364900940721482428253912212309020976975070708226115153532266374555710503915205035774534383209352614982788910089847818207431530110062969414153173784949562412491405101326533962127839091052311651454438383489981213207166332596512821027781397268724004773673349434031250220036280980990275182336252275155292342189088491403158381621446982223143097735554354829232020320522441027940281411241438694583613921765493363450579238896429092888514639613159208924477299731259945462094166842822901327089453326026509245043913280973559845160891851057305652783582631113525840779413337128845305737987164490918778296705648706301563571365459320010879821589627784016492679033234556814436506776354458436784257658841810037210140275234626241409473923395372543916475694968050105384429898399417524840003261871215317177898897889784020444369579384869799537041943626787431471547708285346504528310467339161314384963240629177347058052360090744745795695830892939737160178027491694212536659204860365219301762249844307172666602103247792884348007312944094639978021895969208255153177596778406779309056011220644854326116847177530611068634997012328684076688309319783624132765431967058787573313068490439203565231065719163563652694042503105050209562234314252490972070736643074767787821638398665592604423686539607127464232633835268495197233117262710710251565870606612451628335448107079031380241296156661328106171418192398104029524407258347048400947570220214097589875605726238721791169389888969634126317244716638363640537591237587335776932256746037465473443774079532453327940017665550557794296189564391257188690428681115748362080923596321679309966147485921869233246249127228881747940355212971699272722917599368399372779251663073712693997541603374423466116198025862630515247281382996779347499118382324862280586787303200576571054126099628905822146456918099524803880836264547393042352513704420778344598649188202582529667669897459359633035757469941550322467536645857968662329075132772469286960626477428245229697589627638118923992170995118410972688085118490123386383545471184456832887488081278733334177291093821574004820902068730048392995015115451691142770988306022880175936305488947274215834226726154580900168442314524074199328872837377009270208619690169803870865000604723033001130907812375990519192973446345308517118673437735944118344918641210243018799030639623323905327332935310606872928924055407687457126651638486120907579391318838439893437171624270646942217783537814816408854848498616946452243341619832199178193292644538071718225491315473850301447231937112939938673294128369438869926557062094594886049677016547815112162929640168215672538923308082710945645659683375287486342825438583828893975489291427476082090377552137074996356189621316753591118793344933349651727880236641561011174838706241994562474472697027579828280951897287008830228043266188320092269223819853043584689729916242177730520464741055420068603764895274849026075575601383041363006764905959712355391469778960538944509858459716463247888680524026943472629973998419171703881975290287287041121536081745416701281297591945639765449289675339245955884909712182787482216204189581536340921757799869460532353048301741436770792468404858407404484878323919300002695501887691553150833434661542103573052617152029027836052332471137306798761966244650847284663258061960652307427910724750350689175169330064185316259391728362052195581530363371331514991872038845002620383586738473552567929694316039893561818937191710160171972518756160963742531321566630452523132990570816315238072470712230721858424939833366963812781677734513718338991952284214478694020934292057162217520675436069266403023517441099652082041022119025504319443702283186259543343493957634767229461585971603829626203483955482616135331092729952650119100299959974911612280876900901508547412224875941433292038341870586511631985841014688106485191113355020273580076624493781810996362335498520962772112846907146513166273307699846603705608975671302919313742413481534499177907963043593610794608076072367120890687216080793970328298776732117365924462119779852738124892725491967020492482972246786887703508539049295684174152464086481708424493677114435276714806867314498577913375542001474216929517281530120832973751324010788904607055118738473194331504835864799872424649369503155493082994902589242488341056779719666211514374689975984998118317528770082431772592206197124740134817670702803451424947525946610960229860363339298646774274794835229557061057051848874242322183666886326188311127318086290648848943049144859609182207268705706501049970236728003035844671558876576054082201121007396207386766638067098180896004774901027126901941481961065682384867052533837948923843844274814344197095536585400044956575952962636173639981487462074394950347560016516927481696861098869591426707057704724322289832300174829357761890863563503917112244226374646761510718093489494795705602053167535613201945948132121699143893632890900982477800051604600862888501372053070230958450332819346353892738355838237308408119485646013762849872996209094574719851894277253281182790721027777872518682056841038597890152665958007801446482528114747548375167226826829583650886710447467814084051862046369948612919926742733458186713764122608430302879966309947403519451741317919391827960669405077796399911988025365822641988278994826678002207999584846796208704069989157459345434586055989588034347520016844553338361870135702970548000616437106648446192446296176101067355853533638704134549404326877681811249971143788563415542676410537031631631896843664102227899020287852426338690177114640032061812540219776580512695959222891581609438537557672082528683863250549478401298459693058537864608549571468420901815378462461007524147595780671452915778003202650050335965071269012967325477719755755535285777771508836145759164931284488695431914496382487476496342266815057018683127931131157663557269107413929073108785681984551890541557599551602673543860186423738522158200346656252898196905813159695979812663948270223732274927014683047667632167574062242624878484689003125244434874435464204128997108216699379038649407196345285130887857132627976029684531620126202749486311897956197745734904443420221813332479586273565345655838607191202345249187946060024568497987966613837520786884254147449546654520798787265236407521055506292015978235197188510126846569100077138318270955811823746124349051041578814423188663041640503468862754199425516248482663464280086137361608124196086408390229779820082341165418191033677986453314983085986351831024964909118192719277806215355956409998268482212964852063166016384967531606235906836126341310046834923133263673276399203110198791819788154603545672742673914967830454994772214425349907197269877269789279160527501151917901270807860031444250289781277850716518938799255952097430801641111461095020533121562974592172677125223912537504849764069219787974286203378375165994562134823112320214299106721600582174305041526519539770158996756253287931995124885439245326409860247360561962661248297727802232185079261720424043533654835603131115766839371538407476419322368635644960649364286825557357188734772933279197785088400613575739229380244610072117187516639577904978818855406322892665918500424779515302557585818095452645803683155045517262492060054662854128133744889438145476763053461342137688065912658933211810793603695323253951856467621532259906584884065450670941520318539579510841269639828482655482117500037416177053031033689366437883357134884573788526408976206395988572035631763679867631448745955050669848638202786880333497402520461417263305421501852286766854646580092844320300158773989525752374013907805107988407238002280878780724168535202681487646418170236134989414178562999508697143017066211733733557833499888031667480533496939002731584832870295229982428951023642143457159266900413529549202631038624804091205141885487762537949975150598783255665660793308753762714597477047689204504624084394096335566090900842826930341324468634996845519820686553728790374643707297660986051323609960886993762960320651216052287257616975663713769086159070795715426873647993693149714799616097635572014311192844479839810295917639139202917524819747481444845088503813130499003281491531859479183749324882437754830176587240049459313666037180031658902258180240694312084505898984831383927160771926008392495071217480478428326605602344853343791071704765596479869320364463098444324862677989257942334735855307955037293083927455083850378535758358676029459111386084096232307424244391789810008354569811023478435706072278691391642474625648665411029471621392512650735697519305726220605865813143724007603576142499505772262956247422726708969413814268869042809361147084026030570631435917864109964002360081907293006705626558743261466491134344860452852699269908475109405669165816493732352443396083643255403587936705574058927166034245568635136621567783211110680011330548737407109953549338032329103056765665503203683744007408695455791105734079901046730632950936883936608555138256116296525978588259457102019596208349460572881395809294985146908094954579750127743839538012673812389276072962817600680399097316386287194410312850245049907975995150071895193366955510241718089141344215811550560318559748190824592434223715747207024528866900380247190348520410815955037715493016644934121205795866673568969789317217731528977961898793957501623865645238785812760795153644632658406405308662051626441382854134625162125719606070047551947210425203763541425046776738526146015383729110893983520312430368202207184616747492238170551908328096707239181430443086794225732865851144374203709561741648874579256733554832473494274242319053208434622202712686571493657294007349428925182871159208834462131235954928009977635547558968765706281753050752649310183616757746495580037035701212461391226376810122946547366390538452834847952568144159095432660486216829956867176883374346839666376524305120646568826115491418703769178024915895729343677546832362404200454048427606540444491218141135913016647652658542349643391001889195593147006041400241046092956961039301137541963829150817987975954711922651818215129659845599153790735689269897861550642370317354013951183357617770797206832731835185206756727073100104661581051905283607733848627070028089426210235969043218531861122400323697672193663853147843151738907191597267136197479121292383507681490584209126355420362450129306920807207705342761555179384236083013157965475278035922237833637522450021124638309318140842644082487834596014569491903796914544562972985026809588317716995812316369113050440135006572758091571388384183960528231090182204884137883536127266825271813706509059171666849880722611671652079249754734485541235134669332263444261984016470396063624313027169117524616625318320057201043199037075169351369813158654460483692468678251966126048540512494721170874084523032400050910350244343735536212119975807899358655597375867453415843435751544566197115111496409149252665808361644005421631065188518295496458966936781969468266012308460956834589996005831255446548753531146701307362288883008563940027551354985062021873591913108097469602930519849443768129852134794971283929758366293228513347487946406684738121905745744262386858673604561660669736792399557449790276363363070969783805027282562974093166823562478759599177180113319396883909092069753581015383079365445887966076315908864855384278723096481007826088012669705728091703824896808330563977080439914474303049153588108732078149044890924807126490844186796116257834966011295700963452770888237582898723203369149865368492433065748080805798815680268945001618617460530583896752987919875115309326110523327530028958164692782625312751554189140257201107906870446096366438870366079268705109570370267091618349445372720501204386881649270442032970051976255060249788103871504147041896101203829598064200316709708874369438685707599415841184729607624257139396002547989945931369192474553342866769806730599095047792303560115306697656981961521258827982077417065802634054392217244334774485386696163442557093148128212673262264473892663662227409011705168919579854986338760651570079858117295960516819420666018257960361732038825017023852207180464503539234416666314896601783112088578353717331376049435503325055627268621769841778546290960967869797319434138708198700547683168033632397712943534753227078358472962264546139168571229941221877290377446236660426860561750551645938318174149322029119168251694328658601345518262445258406978225492828172387797881501522609222605458156846677191532466558547519175724652194065431785690872883106753781971738483639921706362546337017720446367373404609085076919126574645360130972860719363704917396006169652195473527061282335166027104865132024019227751336862853940257429221208042580747484866523158874022493798452521452476130693242560479853832339589514528697061369750216497918561898791363793843705871087297239884438166983115317111094402662141568615698714098471294152789541875772118196767582887326541739137379590600590162293585482272131962370078481658603036594834501849731847586856572224671950099469053001405539022193753174266548206143169273104843526366358724875731027033103401230775099330529210656947784023948336644825911863656273479564885225316297461828562794305618422680211086560617511464665293445005351392021601306722117878297672304227155456436266475265486014524050265732197243420621876026810531784810227788906469000656489801865633295432468941312660531306754580357509815977518434955160776533588450750245172653180375670723845045715382000991558462177159675817484908411157875254543000487573725801098885513519560556022743707541966224216425608448046734718483968821811211496000738155834765041536478066726399553559949194070221030111904914571520446352881226364177677889258100909654929619115189437716260466611215819680472453444857825203082707570101731255191068916439002949520315035973974169020274620265750567102085415402918917968243780784826180518214492874841113393678180254413818376168695938784762968364057802301148058305251016868906694013770402600157156461201275782899440225168613956046041707776226018772514708759876127979143037645658004989333331085965169250318539814113169950509396519637220848318269259584828413717115308567727711602099436641183013272750364993078563125880969722386756973758073838437395670989063846385940360075652939496220925155301872127082257955009059709911316321423682008538899724967376462736717262310168418811003849646133360078529625326046267163124532716440294511511453615235602823304181883382815120055816039224709147428684882117975869184965466184077037018923963402535659593321721269264093256460081680025434121267858834046211643686131259214405720465787530896179245322404518085332588220545145057703518892427108928282143340440513683179243580957427177758917254750134548617737751271028087546139279000348739688771042455737750996612825824877331409865036045739342798891506252435133547021613083724207644564518687245807884142397800421103358272477344632572059582419913883870196219146508893278211220836452383976240179803794061319842586986922810470185188462425702224032786966290751196731790702597381089839184768533493597627496823958308602672808579691313223124417564404650720304252116588415828013386666583292325327088504771496209114007142332707092617905085694016320132444966676839753861683952328528772934883500274553687690593259973907804415017041675009438412641318537934038915115165280789720627490447676505465661923248534482097884495063187607649030555788933650540066576505840882458173589981360067644914656061306627703110016605463174932751624348190179119866605862884900776106781831342290848693454252552598920429972351509511315834700733441421675773282638788989702369654814485901286010033305040556130171747804561770196227208749190678738798931062880039757955118033247838604850482771663419512360397772464269798397470969808915667017518499421945592517075171669383828535917424398009189880974846105909051747026620565607645781831187401521897413141614759074631703944920196250738601224232406133299169602374287563024659194242719057079210457047445453835716014643023332116489416383649039441060598539843377932010876909358418034498291417477948936861798449977014936767773145141898229890377214415467368692346680154011636362345986580783110904220987896142746740983562520882487964805019533063004443218491040758254812036757346673780562499660116717457186753332428111880430926640900835980341527379324419611972434907848084294701501444772727306896143329242007390708992936775661859846457283029332342994510115242120062979785684875432748462294415694251370384437591075976436367115892803730829150635725009804756173235672622607289022911292212093732965807458591390962458162968407014546464581001585889427022083953348696872720327758267814194241128651456919663247425537183158308685526614292480633387946207465721294910787759519223008112295813077892538846795345823386542284479982785369695328732097525269876216048332377457701019681793751071756990072874850232536968135761445469496483601887878327096241617592357418645082619324127630902247844623008308239036932062097479500159229180371410136632660703017693558321859083416797149662849616513241941760959187521547818144043419370926454812029030466757363448775845059521595969177660876071847834968903879275195322550176499545618918355485839925389214768760821913772760427030745575897260747943351774254627255717435412270730588418703002727810101176382635323779505872488407022469577852572654843196845134051673883441356312212542715017211372945753392391335014327028720246884855670007207215915774536663238415802943670100621614439413087334010013233868723353041380972909775362941817565407840844134238866461463716792277502061653288045652882218642484043175526099653180582632610332846249159927365135667617547048351185045808010899045089826800894137757330986151514834398524196644256760770614664263978327709936536415860106729017141430597626900153273191641249845647207913592781528600692151011304393862145762064070165303760968654437568505764973058695750160889124836496634238567881918029950622055070746938839817424238815585060623828517031267264541768551248190171761445191568559289439963073120892461882923358498989666069199680563933463287095682473348308894706672363436174006534460748973381529018002440931752115718135778441604729053265523973705428304903109184139153399934134419201506123109770444695137506177018173557436853293406030514695688788307962884881562763125630763735123479592003439754257909389231973641929640029664350218492439601460443589425109694463258248422444116426488207468494837172743621192669832848138711235883132307829649961396719816652877765705616404305849061890776417668653329014888033993765027083663470027368228288118093032121414836600418307293686897324096012332709334196271810906087739458688383062228817851331292502209200689988796697910978646913894653405995582384492027212839118462112238845017269713656785619360901552189227522484838826835193597478329879433716428267845308165299513522902369591633140242649681722123903937367983805000283620942021895758816532904833273426683471459240846561903013979521128131592711357595255087541323323590424959201776765638245102001942755340043515185351561457877687137994279734982093125026067985202789462109980763463128830286929449317074082565081529540993219779544076732667986711790786546931835179560419053533646822140229520632454446896370074681178977297276795211489801060293707860256167002050837238470574547636068383053284366287257569734919247045838625440078385241194792861902400727975016044085292571008794393386064298089905245266380654534387032752719150933929344623493763452306750392284901381358741196132178196311766886842560536174373782689864659389922978598031897219960948130998226335617646070540220895784203907583819517338500225165763892639436898316665569358266529650166075798445777478014064251130820219829467225922936711266039638005919576972451149046865942002328135534437968851058945304495663814400947748159091282777830919150645253357561102864075387853259958653010141399868273486366935405530935677280415085935949655590735390464175628472920560101674682610839549260067466088365865715298334503375684514009787632297320809811560473806853814938737021805884095000701352204639664871587178828654139692873718993766264157696391669968585145404675206962678944548442583779692189383701199893192443441242365575785963843893741836924634703631973380066807917455084418166261979045204010069085669223994612907462144506944340492215684114448979023018950168825749769864653218260446816792168978546314237881825502234005255694080056681272902287011346939499435631230642938446439773751678344591820871368567986916666457387041596489101461035813869812108301172055234744649349026411077580604553862822174188888797773529260777991730745620884673175761704259539941036227458392266577755581755497360693125781063522045582004853497644368043204433788804564378234736251001997242986585161609152032958897784868222425025076254218875462363042084742082399105560234534658687609986345472306297389609819546670807251342221129289031107636915914919351940921354212349502887147789084188038413840377488513976667251638493834682777872779620615064809485187642938215118409873277593210563427537289219843399437639927088396248523647507330166531810539879713099026997821507412646755909569381190861728321975532270525117464643783063799688005894627606817026524933745222948870245945422756062792154221030821713251890257577432050067700789235305816715790300627432754306019350070848649120907512580730705375902651921752180032264367548058906532685386751988743799815221902052425808424690604746007510141286609107114996531583668392183030202816922554347854677784419946134819669985648131416138560616347570289926107907045215389954267887706279477334296831388193556116631086705667924415721112009093224805035007284697794213048618155402937513157624796265497036643026018244885492601953344046810874780886407606563741201463560474089671728872274562017222444329081228181964610729099648202844698002479143684251171088684755694027847457932627612164927598591899467346692141331319422930830128954037126104565913219565016186918537630016335485549291002517760430648978457269043231599562253887540147311016270376798650353946719299863176241329341229715751297659479348558463958402130889420940699938688125622527507956849319015976579448572587134167512784822131829381968235758682235379457814768376897751718033463104114703620503915130942541032091593244256264310187221218599149427077264930905212913688651250987099246334801410082080964712601864509599986836673048212039830573053337887278805850279471328742838897870698456975641862592685095131558519071824937854371841028267788632735373675860238878384754203962965476617132630313505798043106396136321617136100976758576955546281076014779153080327631222822048372628889251098186048173463595742911745484897572135233060242068966317283838670069034668171460308294065406875864143198107904864212545024424815398784368795649861805098321415125180532699148210406457343727939971142255217302983353287106367627024432954042572829974752134354015052603806391125998091491130263771916739353687509305165905388459129772244414755852268163598464292289521411015925410728230338227677485990578218659656684296793411021651622570205989517464843099543912020679250738301683225353514055436413953602219766273376317889612615356403619985585284727066889226401500444012646398834653573970562781228641710808704774074999895443681861524535231553822650235069126630255112752848355810825523403619274911127211322001823288208521673039814695869158998478447812092501966535447969039670601619272429174312049038175938085647084357849842530151544654739213385202133760671462944742757774511861213582840816992747203464010109271751645887063487137226121875418840913766351462769595488848963412018558112172533409982718074339520642178234171425781204646711303310024978714336251615002245129396955766370984063952339490707507237786091983280206214719904556782477864916852533488138611669423343403550303126303524260351337354922891451242606794009467923127420721535739245858639237802127535264752339430948486284203847933537842867407578041144009825193031003578275220879093577067056911075719119769380094156534397290041591164459738366888508441025275656600163272983517070777821668380007610445737001569598767790285305870360045100012077337467457401030021802833223292223750907707837244469936098744592593806315828442750168944217207850257394273022936345011443139918821325909338780759953016310784634233982069935548636390142924730890280776054947541377297238763728802451911745903812898575391567857397065449357351457666627928967442061152777540315288465333196069691167643366859793842201753118518393605983581625701059839270188422408972075881992203538500162465792669434770741909799862479116320977429528315315324685154885367309695166532692212972916050517468537273738090680002042987829952070733510964817708301008053184724157901494930752449332763436150885128323564608795471763068977873708662821430724534082114467325745901918661403466831782355347353610474317947026550747472042764777657456447025189669237507345183778678260399021106538666452169453689977922800219943313453524725157827108914563654478758964794597457390905162552289728659685898578977532949724524863038236793043907699537979645506754151104449543356604626211593602958511477505425427770690756902330649189520580863223339361622018963950677290446383784479301060090206107700238263833320212822521589093351638371633637525112018858519178684038355720276695820111154140285144500328721240463614743199292568615375596206794942986079024476562548031859141218824429393849031829746429051821698804858815171332991699964073045132652013367690351964023630391399217553406734513488390877983334368771722458668543935553297768547734843755898803598799317433062349221550620969361223569456584407400259377762298863547067516127488423248352536646903212925092739881000683932504927802139251167267097362079012165557599987234374237462517707784655719561974046812252323238702593061422652877094660405036607164029647543986035238216348279670224712618714962796022369295108067386099002718641306159789237726298268452167406433814900010518912255545021651897197263967517197349429176769218542066605200242566789619947558930721321743874100995715893374163305781901532372939342810643097655736606906507050148019606648008882790002341231468241399940695999090709848312754652875407607375133596759756564981423991324427916605397824016409134108326663756076060881209889909589086392927046318013337682543642493314672517590800366001890871006671094362004235644763668667823079283883131643411935323307102770787142002785276345544112658135891470790469324202988627515199898838606328364212149617512098338462655484504913040299236656590624737132620013226447441870993875016452298431783092254681751565519101259665504101284410887404417907564463304925110430598310318361638496178146807417189334453771985423923542355531505293748756407104950881683854063132444513271331821536878214886560362077801777245571213497393974724148019540026647368665060603340138448537720479874835663654458428539348618028917775938450879378742738695001756665029494306648415946394331252473626990231102115119739924840055957070302781468284895033252137542250336361776847388152458196120562783395984254866147511785996532730198890582364166081526914010673031125474644562325417090394394060223483361368767817769362790800121478766435341291556884485451336723083603212567847045524535161954333243262393693454207215011018875710097524422395098844459409371771393760502421959348874744980507437494758871832414803434788110942870973448868651328231801489121385084102084801824433167028595452430624343171993555470551820631914083358868359531137918885167350498188647312285773119272058245374511943741579516635581683705470578532400566988256000028062252196696631743219509832453519196991071227210379415859988828989615810477702905853551754400290820884612073183181491510881217212448918470807504669821030402425624876585398471741173533984435214975489788871498827854832322954252073293795766340424168161993601992011089595249914881702719448807199858123326677661010889666780340019971997721381033958180349028553642131438098280493602246690927133412466623166305591668338559889717759849568703145857972988494722589909238432419133445876417097443472568920896019719726409605086690546589585973339685803297890254397294981695509358929187159802714928060857162434330093775012276032244937448740151732116116997802059321239637787274877109040128708443617039330573154935236551422242883776753924591623571587135937929596902664908074329515079541812806537127640012012970501837073468163962531249297916848787459145969685924963509827139631140936029026461262431463757159932959647792698178443490858245378286311881327373406754638926904775935137439479858214193796730537079053445995801654158966651201693396173496880873731217756701608688779891899725496352634818225594746824362294447655379476949686094729346446892469872620571364987418814516813584305242518727757324101639399442987888742657260604432146397455247702730072827750653917929875959830233578891095931724970074251821630591192197770753709161073460221003343390377893170257708764356817390414234863937114340445774657309197821490382967843689335575294169596249084652395222138785478333969699812628747741136955618695883964236518361140009980161876207048462432919237246069221430712928376369849806272334672861688148113761866916567310780689296424990138926489421181268108946643698899690301016370072827366383506300405706864955262428459141834206828472125873182592319610326816087576621045994373479711681956126156410125926689815648864745381727865153796570989378087865658737774293866180537908954898936551470139222972105824685376668828848105521806877329626051386538756854120726986178553044865018352663356374478469334397214310937078649848277044115549711472576326942002406078281977517462607166299215203288167769952605428736402433893191160958857167685944590659786947704663789439332025435635739183063676702952457118116827116460781884295988692604963184214660012954535297087650444545226290176682186781532579290327766023070651791489174614311570386431732529422326092419885075332593471822386513109514034137128381079237262012721930953567681079061215544552091347724115332677792513179537019262516682797027345680788088119447293676428172150909520904411520890770354034512159551327155750381398071918905427319442467338473471418932937200362330483736979153639602605486624653578501532073236349967978568032042676038151682999991922314673508476203432508977459727001873038153734410013297705140863510586119056862042567259909779603858205096074370960314651044799431008304584657413314050249061885751774627674136594380812051454618660503469361426676955928155617233302155822132887797976702119093125600238237769518511833647775552648741226839597968433347620622397690592459329082806237268186851315113803512349776466505645020073432090670333161703092017385275744992163678412081386293180675088042428818090481451391740826722416765107971087819361057903417801531641600647594399509746172996010127056062297015539668031262676693440931332711772188267105629755420635498935357044400447560854462104408843198030576597381209072223380558940701869704023630266359796075266634160721014420426508227319628980806692310131006854689536339787151066903289874115836608801210259341739098039994285976671207495409707741217829035973994527065505498695019237659461572782531419199231030420520622624888123831948557799098471910684856333713648700060150212437989894485428977410381469282665842590804925614919859362163464260518188123580119055670861110774202798170942351849313819046435907116911450594570899309689598111866427792641718398372537441315148260800737331329213423064174982715462761205315646328325851597518061717508857345143682109913392055259768040155190957248421696897845987231119063094628157030858134268716183292219719935594439232547869405285698677428388056083331477079683812943312106344148322949708158276304932478128370781653256606791638914118080133781029647314089067081326304185102916618801334905394650771634121400810211138147538402547315570805272517950262129103597521463906526715960387102882306446499953384231814465892512044297542637038652883994958725718677613750469389359639703623879108206017706869986674532142427841548317953160067231798943500035910460266521514444042789481968032628383774448164392085834256996516493786075041842626804173188917452881877817641491656059718153269715292949821900992620583758295044202181666185199513789590705430384543828338773962074573446871775558301887462853435598201098547898659396422948966879634254493804270524343192636928154749365852068493753380638433007838199708182813440307359260119726695995015816506731282568341102843723119684917787195246973178030324818474816409399772704345760869072696237500163396327039091705797566824100350341944759033752747372217028688885022826816557655934459241529387828065022855444900170612826223486677633877465486266861920095025577502929337734074146689510916682984214340559772389112974968016809607431517711977032970637934196867738725788706571219626457572058320097315610355008474823383265274074662670044951868187924926108964502092025229653484311069343471987718111079922513595926232006395942913454996782960917827743859433491926830421030122189336280625641256786864727262777716098613345637326128900609370320823420093782363709755794323959849986324186522450074554211455768972133208530049979758766520430273099773985250809945001178077825050656449611382696226317500032615082050210895513636374074996214094626610989180865053368441528802981324169214432359448708351006588717879935122876866699312515089691059207847664479408264888558501065850361946669479916481412452340108855492811292011100455937342308118527218915322055451626768215073715508368061518532534664755548862334263224723178037714438344926212281539035091921742842729647506989279987475975908208888718539071108912844298895418804459841820396015722224865310297569434880103273904297647412174903547838150682220900341052350835797252203519479667907673253932346231700915028261322001263787577267145313867400044488112042685423684478181273147220098016781858771411533598254648487439228509814291530824411791154226651655757136369310246929679277064400450609173636170277207097939514251747325871503820449596580491045249947359719664636935226522293321490352076211166735995878614018813071867647866408412210955688417011180061598047787880879853276888435057425417754137921859497706350628275629050530024775347064354809802662506181394997768810434060836023510657709642915972641797023689256599848146261083849573823764263211617384878043071452969202282600708763536423557311811884753453233998220330949150289232686921436834323672897063273507500359821918453967250014205523501991943303992095084058148785759001707837547160012271021295651861595726421573096228049741741200337539560100926419386162631097397991100947002004792796369750263856510522297215324309566185285030883957987964200598365758526477505452363857845385272858170689038265010956140337954027771958673122175118902225334403911283393563045069163259945836015741272962769288806252649262613467615077088067647262972851388821822689702060492804601006388790173663192118205551663779059176743963965013632600009762849149928987361790356724861771118117545580519226062534989666098881240388932772411414800926049411118492773551838331074425277383952998194879299145639586421707958776929448616027751563432582612701959044026543835909804561355832231150140876374616982667738395927397641478554817358596839439211977001813861329902147936985740892703335872182269627692467047505931223108327857538576768391047432371922925520276251886645664942339946339082763329083346603573093524213567888686049946440703840605516976280485060148642714091314092682728526896105879556988634721794826983564813915571951800908751594293141778776172682725910980154739526512448573888265285885343697709479438637730813033682067888972364017461258902302542237211313040005128697679833353855787427641290590229642703948074617597973460501665487585442337161671743977731659924376313577508045346472403234643919185584563590644142534795740233503348500250229338941028531526403112340182646928005819222207184101820588348515473578008971099951152372398975584401226717093140724266446283057107761483634953074303742517183545626707755865249119257425394327945347920021848029849026135550502394694780760121124893336780766274179527972618717784986289397347032715929311791007424372740859605721845432237282568578876582619753944940917246143582168132602410255607247138545536962784886901281476127945999387222963754530341589101116604597082811818554429524491153863072647190453547224730367468730254301016727829834950623463402880326736026178415631418125799373235597648483358920911507128707341018965790926895398446516751442587333926757561520735035689417470883018034352444621705938223073911137736621828242175531241186732126264843797680246755634181284387572138415647463198073618682172061156786848070252000827682441248550189206314864732982598572306127423940306035074142470550146853882651241796804447016523635065024874379928111560344707952068792440220063540356505311268520080438604432417065764657010958228852911123273621835608061794193861778118193537227177907796145555819737252026713240620088287165681192359546641730899074308823364481812017775406095872097662322108858974546017334828188485355150856780707822932385512727168848673591085170725245124510050006881901338635543972708797978385802697437432254362081590735674352387835822552819694756689324220431410870531665806204424656914560915808128844439750431749802057904683627953670040462573265508455827444447799210199009912204197257052603185439362412724567355311033084845124206273975144501854960639970645817608576835431957491173430631011121406738209865462973994496060017961958645060923362828466268463619642158143301947014002181317701883009831039841663105048225203034262892397721885792901766332102152709861219017498778312801201347852030579001619498935546419869136668094257965213804369464000219370954181422681919561937438657325726849359804920912620193684489115994614508480928684669822303158517170760681027289020830187543357007201205259508553087885029071902829112079279570019568275920261866529758610836442722348823587637331850820644120538533013904785478258334804426617489988859413882047269521482316013435037707343433607912570923964298401198083213728969774742276535820859230233637789130682087794705464293981184077258855822298063223399090976240319685975506427288954223314128434510524733562837351283407740461954916763169497733517319622322919968654088573114912699524586212029084416865871007541464903838235655909208440245703540447399728033935525664493954902251824030237074307219039822542279433283717717316616757672447486114358135584921260000311031483249151420245862488970115878421717906221193893187792008144276457420267194119644756951029351692533535710785812360458306425005854321886649042694806605365132161680718594578024827581653570228817139214088278457956032534267291672524586019170645384865308343525205442778135789298855520568300666403543392462776847918402502322063200256861360522395524488836741120263299916907508545821759509861367102166968489338066874545736519180915394815375593302427404516932490037320379498546610008743661190981675957762254111243317663199682201591693572773907961889527471505271212665365394632113971249654013126253046320156784737113571624673017116756041744890882256881740427253933864240947956361782791652479493593154698454886894286425376920824197492211543125543191161046701372992508997605691975271468549522225045805402049034035898620633421515074838794297937625330831264551472044088369746104238101965905263998003447029779669078946789516915089992810612389055253386924552380852351315471545479953996642547330315295712865540058246460362249150018571202476302714360009863868666388034931405197149467847173157662652830547957497078033630084984150792885760090536152932555257316267956957673340663161916560822269601113499881538888960337943355171320105316516268581341542311629985326607528456095988214331590520727049992255961778823496007682850027269170649950346015287927477421733128747680158890657116416220940828289188173343515182864225863970838354836497092854684427466131883034572439223276642162138416082087429593055897607023750742486608100840320653892337481534059369101858650807959234377586451905420320820839555966247362504167846079750799260322540973582769767250052359491159127683212380535811993149450441400209926131703895414595647424303853267292542403031997142929185273717376585569623354248856350957292730830312181960216646599897152486118189704668978372817389912522112181013776530254005650324894600905780115332745535386040943113396795050127526782267532065384883781943012992145095027885261918479845901465581508500753225613373393766633138766057774752182189314484288781369880459828583375917062017439375058700781076365063460066134294034242759213983678808545480276159678785689062891998343063332742363404783916841537861531826636331608135540771321590363041650469914104559377459778277901183255598473716383995430090514952548392318987429538181509059152784551198105758603146139242275269660897643591164550596869177067362311785342337775283185267133644714208690971650774402002631160846930394889928934869111521038742427695850424097948052706807942632324215253375942365829902605067096697249147749175530721861032167570387123937986438376386657228170038369073973368126739864295788200897327413904536037666121945895063127293562502178983901857473290603869635776255321910742115511881530719100613010141889645234980513496349059982102242459072722221687423783810843330458108521174934439354634546767777026744577315267759033098348811129030901911102097249837722063634967064407815849684081629659538745291230180969584865910050636374367209846806334325111077401547164721824882829244038641520989316661612252201395785328783782196412586368329258189019598577690516057298730206908979224382153897907263601814768179035522830002690275036344024898564151060203181284190843663812847750718648897057141632692192288932145691888549215719730613635988419460596502349333402223482064763059472160945956599894322001232328086632664813479152357444819328591218603607472740312871204323576492224905496375300061935169202592741057333055697428083628331020281452344526408018754859282363054710401809486487990262428555287823584502804943371600788757981676229237526656774133514614050950275362667176022713967551434102741273785347831582064829244744631059717440578489239052489073748695764745451277638059024298305325275042175606681729087522114916227884437573915315543713100639507063758163015075744584865485224343650061601887996910635643555228184589142789232515825566345553547740903973188038303366082090363242654346088433233584399915344066109059870214177952867054628673539479393807377618660435819493245697205647688190640560546782211194095186135380619213969064825341772361134320743936226749738985534981321038640271560533711932485282681885121450751352043979733953386376414135875505904956923257268262036039841963167280531356754953600741560697284396786306258731200970265678642493922391154179282591136367816507859268275591693482924203112784256556601131663760932637779192947867334810371759793357808523174905916643134139466193370240848194496902816459769903737758879548198168468014058201968913522081128155572055350354799916889508293244913936002933509713237203851701884173734756889222207019648933968539592354336581371897121725978712831716593676628884183976062811420409021180945618316309996675757904882476372341764712622690268873411220521627264474984726416988469959560418378509903597280151184996586111572309396470507346149307884000925232434254009363775048944175845122350043022043824555053360078846902366531737864446227938402475324572448947630344372901275711027300795155338587227379809421940366583229301734091308211059619131980033479738687110039536303173312606967253791066709022636995230693043133074083732129791171672873671495818533564487626457520420529465416317262776581802074324305568073760268960771775746348539102202720494442057453638869271148309765842027883097729517815462497553242326565843836822098103793604905450158835288864201721664322591613637229228186766271146340126796132702166228087635721112830918003326434143636685186244821903879373656640502893694234938426977359195524695093204288360107402229367871166869064223727472640919277132434109216614765212815496378582956573741539418913086266074519590263154076900269166412364935586508018810411403264242344521534360876538472428033358535675641342432627163788043741439367534178203471646578038747279982578371340513377053090506830363637363938561729539276353855602452281286178424200338478171282123299660225941445034599673342377292589088234736101431654469721255210666913287118329658946434145183015306891429821499163626501611681464826364875933152512230024946987599517680976349669937466654488387451986539090817030506741060751248737716087276389544334929902047162667842799465258866131016808778006580405764225411658401268760162358121502371224538766213244837159588798896437845200997382642832196309088806686061345718312331992678652924435261399796958399830290464357304508543910539565280317264356874023407899504837593363205277282732764674598556770599596754125403179909324701070664549769359726047249203932351276879317738682892945693646436904049925770283925881129979291808607699767069261332168443811873322931681190121059412365703795181566977617632727245470815784886170860905823123868123251873809080187331463861533368034676430983042953134802080367299761964357322677109017742398138625159295640100196045262986003827019333844981549220253923630770935902277263793634353081079571357387779144830796738184326691751702521512076990429659836983569410796142723727463832957439173102215959152777892670826030628926711105731596427294992641469463121341832370950142572191123437544543992661499951727793227957819787059126325785986175568967287421112025869348993664863327636146017399985119551435633958487572405059894910015099251142065863139872031797594290053826445384781956354799167324850939822268063168041163392740157799598862353862584444787648900462701623782491926479399106876866959401978724924887028959851237578669663656679735268020795446040960126994339880507241758344908936752822544492282509797313178409710718256743854529029959914500796055000606696643619700422467865350835189003359884552016802023740350596460015281137739108482194293937709008422527229918626120678762148255347531959956911211164225037022152343552332964191970354856128894457176878848979221146283555344587160412279525351645643859355388604348489071661798629103034115662682106725922798594502877483247868909913705846031988245340457653484049198708407990989614618610099184583203359588736049392725067601758983247199831034942139226470847365166949124320598577814281363899469744565421521594581468183599414982943240733956083217587023271510686530672598247160095867780750308461684598994369474643744903191050055292771333764418355871167693427507783861194679787028388662729165569411185753276072703354856897719539217670728706001969891413986773851075420772624697854248845357398858492736586634994458067394644901256918201989534108557002637581083125927603897971686545275356022065246890987787985817835751067547118045582561663744772097527230703280565457681106117342362066178571496951648295371961136517686946203805900867618652882871390785213108678648218540784511222820189758145350154462286904425821087665807701129877388352112539475969423769533470332044786706220068414088285098435666009484804031298779601005481674151539992398915828884142957069317829821258930346581820529824731308364171655927305068158368387024754876520920170960990728279114324178326845384485904306140593399905344630089145964898485839704529286353295743472379711349243456529939464081518386787664759262756101731834361238933096598140210226724683542510623897526147641979791607626581833027686077619294274682209402345437646710002739769914769315330769460621423713027520631744363222273792928498114636575108245314456278216185993733324522763647237992299170141354038107956335497760051229000470718365966980268816529411262497276128117520132450853501464282478342623810009514072629970399660819516649802472667929940540777031044792886706525350270332285074375782083259104586164712737131831065475666718138769006690042466241664665460872137971121202543275836025620931856943060746243796619607583994337130459296049878167631492813461018426095567074157295700364039473388457144653619468892289274666659659099286251056972077453413958160342155192286579442090704278811180072379057791943556105182998196566117992042612532667117790176797194374900307446736139074586378904945564936211784418892957088182430619366083459293523191869930400044128074659416216133763623507567164037856795623951520343929261911700932077856660264842691976557570885020760139993611464952285529232809827322488107816196353786049401945593947113434131104153015861400415464620760351229530624679344122398110771459391479334109303814080245174372598325711000124492530169907241137368072064508703096515778777319890797135613717937397424809045951082301993364458319454958292122879777544012525063740883865939896515964233370887040560641744962068082057213186795098321500512135550294178002551405030104404790854182969675215505303548294324138595600721896929180108107472722170485167794334840162201327150848789629180679902799567174592674089908930143502610464060575300098656164912650159847364261313525974086592568155105373133779187133577025328688773883078631325119047261524613834257423187692945892317428620435800985146393185177008363940379712214945368691542134739419696816285455034874142834557861752063354690629987480349826814705284009960124847196126139325306351601899025016507798773536054724732785730518796563624019024838342494298421391589817251357458530594308345725427621602936443659090873711372262564431238277366538789703003063205632245367954440761581681012000583857480380129931062737057551289798024409585452815769215981934276928493516940134535967934559291066086461858853431478542646522778892613267189329365553264557117917323399866805213713030935863514985160127050321808586629196818379048529957763379827480199730126671382342037865108303423612937531651848358416040751440325426074227382146823379019746013106769512159478837204225879535296543302520770890348475874925759465942636644085492030306027879825563145015188379548996027237806513090127445234211419663939528979669033243578560563314891879015041982385994208909694855496878737285477373021688043671644205531906274637070276682974943256465959235313801658744527092415676838168577902866677932329803186057952049184000715230875589046705307211503842805304887601330515287946593379068025923486999544458730182668301266195973341932474905231254170984010458755348510204058203118256842864248944855617188136360676598796183756870191689843473154334199258456338164937911693788734634834908432224744785130479595757428489024627679512467791567671031714523235146941131422547463812972944626024424534937645470663774271462670943987559618109363303728864403433088333611768192798060874267779767082379487412710273456878139764779966039102539272866457412286924257212210400872458338979497849207276251999830430207007946089332429393855425639685208702959543536193378687794489071736442482590013547583115193040161902750114527910479084260703723343086006635590772158110257052606464412947642932614091525669527396354779762933700634625409557195416712303325610291216749180967253507784013696867275955493099332337977297902987789271296120485747929643221520956627142532883123525182493808062065627704559452308201080530383866906931612595814614194316276234750261908536804865511634560476615805277358042048787526481401602823099034393843542579187845218280054147813951581302611113414689632284933007250352111352786339132568181718635910347397564025520008841025443298404840035313703602251114699234357369603929109944109863232165678605977972377805356391474821311154053765128210407087822540837235123149145374726333525915465146127777656555116195811448485869551914984465958046564995647306869677537335745734189593044651884436748277165428425629800479204212897007538026922029580679771490046227503952101370208837896513818566181989416375447513417869234857171546445714786426874222969529418165814157597483273090118302881133762149606013754520942011198375419784246649964459157484242048546031796335771406523489460225584646171906578938224740930580100562377687107235751025667298183943914405329347358454947300240785948454967826731143980610219165383358286944193954989881086753731886311133329482259565250946431356604882908208067337086890890310796241860763829889713034643395591287318878365636076087097058478530741651526719286189399473779777951870370680582761175689408204594328561984076640798351642872583379937571705655889659159356722223850066891566031205279225481827010711318852495517308171931900233437009962876114748512839597970695745147697554801694257259885222533355681037797334943788168103712792101693459106443395684176337865089022878100321041858240395478914013358784450737648865047497591623507451960721113927234994307786589847029960435926638847354396624512192620588356920584278695902323999591755320783163052939006666950081765344323646281793328103921559032972507174613894751760483003763039349975647174420520039984552608670867062200214347332951338318054912903411611956096966032724842597798645281241792810888179197358477518670343023585524788424219539355243477563310694844507753266617296052045689701011557199126125952118386775146927344267129414494296931686669924295567147841668716677676691103585135774185724192517507698074209793799838065376724857003315120455877452993690979467756187563505397952725117129098396097375008735304453969488285771763369960140815330202035775842322738159070294851774949679940515653744887052713613741172785845429791848511260864223268491018263904207222214299766942117610678480570688878245833966718921481718078519979482331516289036737136420185804042971301535447980877498498495458278597517839526758152836847590314585837241354869693792364910607814500616453438283315537042400084429902248913495533364188504106400011295118917925068709545526783502941420084029765032254838613595126620451716010121233043914612266113838562397299459194458774162344224600848495871141563124856018562695368176792176567948815524106772437264869051880527566167397449148141516128732627309765216918771728602013235573418126793671882558953401127878276485193669129670712798533317233869568368381994180058695435896124827329726353584357246049473229699268063074933985013491020020539901524938581328948362683979909753608503108919741060592677501235698979143814328476366630862929690151159052800398342177655657275746208966563591854145150445776773472338159593148443989630504677017742531693411031119362134020021288437328140767567526838366104668257930552213628448597891269548009181371861036031822516739778269110967320726610274962785622392541556218604587540876652782838384116170696800205658372738997526383944516843397080962937920146402086403332393641857748650260022469102802350854130178015005668888070177031543253908232313610790258612180066453466525452041337526723294816525975125052703876648754188327870586607713741131706725705842826757961543582147322411053442629854672926033386916602378281479264302650600778407967604991967519540448038498562403563316656618495661140183670963996418471073998992394085696339100705827609397657778339425105550500925747560409056122259023451039130784838876033626805296507522003897197932452014903393075153325255866413071969807353592799464918906713264438243521486957784760578742943826756542761442257228305898256263176745825466997020319401301223851772853985088650259733099236277615210147007819925928411447076731954343314139755052837153156497939089380476567571291993201628109703760331095002828897480601439484010585984323330123121272085260511511102184007821103061106669303602738298000555647410785562502643831915692203769896321061607057477369824958626364229637863401143513370362240532475001524001680821048551212610334772059290038532174896825182836875613799098506265485264304650331960578150774518037664383314470734746430221042272416873178339943357373687499156666885069245963134542204588255860146037681939937062765449920414887792473580038034815436967058384679208766559173781334564736625320580267043366485581968873879456634658085297287102676046179853467724293547014744079012094908095084168659170024629355584476938308006196760497485770738789758859052534039621848184009624191297588445316936500790676539709762563187768241013111821995050266047602866640843685010340041060944990227392682376356892167387209001507370986988498994469439769823898343705977912431537782832541515049018470256206371591835669236535619769800887019519337698910255217429091463598446202873894174068103923799061224419857396722488052835188550073107883533069344915346207135662931136008942760644293645698326176025012597051707916384669260843409678840379362966739284409946512535272154205829395540840493689061469333869099788265310957642005361514367469010366310252115606690065311611910477441388886837612571479426323190707149295060127341645963630525663547661369734954917135139984677365639636708845809171778182733627421057156712535360493421661524442923925736963619870360792083607419532883552310753555156985031362640722333119784668020752851809785488706324934208669554947130864526094356931438043817945667763368492232316097396962238827713119544953196951537179286000871882296201846422341804142028228172623275271339784932969522215784929775523838806641802640048300466677701788393772270111147972619089464865260665831188025500364471066972666114024958239895670742876524941382591212085733489653428473228710450167113876027527684296548871874807371279361113161161511727873501138586652929698185373758426130835861732499076412162549228503315122481341898433403278371935497610405000315406936855488860288793769319743606977565966343063700381177696858692847234812598758340347226834941324651201125173035651212150277810848153465829897817317153208076091670775403029722633516466479460388890933762450898550856467863257249900847886341284417100110665151357793331014825053088687852908324256060182338940232939498798657335035991247288289191899313197202781041915906926721588081795917443289120329777854878637921156655575981444602642857106716759830286918557501413799424132521569411072387055924128060750695959334680620486086024344546886844258308143649988357539014673305336883881865399126915561297832547387368774105941258276284332713962713613354902782336048415408975337701372930593520483820330837395667487686985114443237650433763216829978793097564668841787943241398197830427441088274805914114727810230926630318447374926796118224630904986533996558817080518329842467591649741987936771272399000013431310428339941312055411687151080808361313321934950452890148102255031674072068621880338768725724522703644975430923942270111388918635170629933740580973517549205328780750050246269296030079666093810469448947510690578172328294789261407958517421362068535945919668053059282202547238728440866347273636311189145930495253118871289435272232490363961075171920206017439625876541945932459231533627090200230855717352179644700087004902144115305252788699984385581334118967695767151850588494746172740588390194440160235292909627383150949352628794749514711479138320618462036552313445604290772881750699343722366080371717951719101957205234655284535563481169053221558574024135462667187829355803157045026877692840350770355838532259126249679767336374736856425744417746956708142509219577372365944967798596785430277227030750326081094573529456116457855033877892462366842499807410072771638540393088514650443592982470064945194623436699996295735585902410721761838695550486516789411456672716658061121028810741739821098900332798971716480737227722559996763523087461597326934598185110446647453051778099159613854733330269507423054633265554666498982756941147136389127207800640671478932991039955639215768427739354564947384186554071686914704529775844461001914254419815036106482206924251676528426073870449164740188876450722553300383335220090899056970457008445813062419058557283257060568303339029175884228778394623530620157553587961969789699054804866252293214023875105778921891601386816573508745858996094834942782614286768509136668505583371850663460061761529393980115190596443513362574820540093148122165341323623013745202587679994268723956405240985637298538068100180742034630759315482543412302842961450477642514576138630213163147235285561773585424203245524742426185836786785111356268038374349884998561797218700733860505184240927399244217866834786116375755368472259104117493679800818837334434395699314891962724899256857020089625213816938090832329469663898209305414757296571052340846531398769288501015285742734571292814048333676127835991744885871388558932219531435612732194296649789221684331577535248240532190224254970147892849029002920357051360217916118738099073480556623723555632063605588530161047372734714907945147701888904693764807456955386748686479705690292887065495663674049546835757613001764107939946571350681031686918368154421210374928926883195017963998041067708033431005559884161249506157033493827787178788627846529729239944683646438853364677823089948575337232571844164138182754218237613962495484742941306751434585051109115782431669212958811248135516762767716363216313914150817337753834394765599920185071883578479728051013738991311635954331846492932580663965434704810048372585397685206913631252872555548898020236215446872458264896729671052740441222163434305297154450944781269337660542556964457345734216433606776163031249169816238906669229714108602848297861315203742946616227760588863265176664124658295351543848766801058122304607905588932722441760428132094027229645180788324334060795454145811268398192773235620753124582515111107952892850726644506685938830439974409812803963365789908625546605056280537211092616995872132193729356227534787078468079066763511045090332772579510301616382945455146878119988392274935301574478513242514498162169914748603842713318025133108651342045798181398441910665236498481888265442106471926328377904155456293513902461667494148778321116882576159238784242565818679129904759336807367040550266651042626523589352951008605848692872917178065021209748482776441823021780488556202309370456006106569198317662738868382225611301586668193699390838417845520033253957146248920988837596587365804120091649058941307967808589490494063610254144410901045315394790242181436687911952883757243598827436018293266057858870995783379975803891303402776346769594362208548238901490294842238938744834215505103616658394294545633136119983969242279354595338587192413285742521645246048805171883416109439791726375990173785382945636867610391261195575225854596596165706857299480785876844119989727440831930935773646757988377824399408924432552577249138913162744368452221225007807116961224227152867574087241209658385162917878741425944882859382495612968769460551887757916675226641750269799037989356736477873526723866252896212544587425479349700414587460385476909815133350715650197871171580425765211122361868660025921190405176937990510044791093134192683537108614707833824630384803912703502534658194976908976278140289423093044258659904865914450318839313104174006006497612612466571003740473663670675554871261325614086530047033497553757872019942404333139877489219738058409890723360014615155136862281471361490183381969618731058081064430468695838719348111001027955678739112849407202724622831578396495091846063777035347216843871180483868367465965005455982172425158578961466850652654128694889148742905409299228507411381018394306636083094182683405048462084976742791880388165160041533663288344860071632420683849932567394228972720957692785150981613910168019170878321603854052182389407564203450392360087741753569653231641717875459252248617514890822672201960131251857108261225889796246470348243476354640677605900773909357475240656308958442555041582860576109894020941262943455725407636539772095365505401381998622988696919715312676829706211809570794527088115650328250746350820836393384645174677195426654699130928617560754442862554196136302591524242725338025333505494860498958206283640576034292887640712788685529041462987060774334623767642778189261167740947272201102594538712488366368717527011892971026737638334523304320913292202569416113637233975264300995225008860196881949324769463756373710926326359389673750482118195821496486093102305359603654491905475868014659796409487335688029667813930098304539843906062689517647386298976318347306064845037321006088098284304407368413491446031137157794401633966955807075160843350167874766582379373303119691987717013693237528364408690084808394851627113879207207692173454095561671139811391225276461714771742964900636556540984024027524803635801356348565272555093325030810183107498367595216212110959128838366489996971013447639271153874777185913221465540420675294115126584516427471145118398668145163217967139165380713571638375472906200311929002688121162388154496904105135159812248306897282774707761431716212759813561909158940772441251161599930209945743878226622854949788858467634687010388970003288350497610070614425286052638442217736364086129630491405529659296939001990073931230195597387022881043427073716480766582828667899187123541805639356973162907994449643940923682578918784271655532763267024058067596361642036078983064609689768617361270353068084321848549243327618405051175619404299903475991553041783517169161692997526022942470622208498506292328956569864565917596059341141778969844100460831622242154850445305896474667614215242584585997350821856670362716871649086426060059907946070440386533687140132948234582596247937245156920792057535548573458174174673503045509979349090942081031054315529817064402352052428153604529124877080385295461009003104274796196254289661129127407638800631644739129404405334081390401099221211737375915094346607048944319356473609608130364577006432395417017815616343410321982110439553708537619389810564377771200785409413138097772564608842111470430978722259698764851156825930141403904773950046408580085334143215505302845766047250681893100556070158811847123235460986759262474703264566917693115100977733708323571731289048711803141767997521132713508559341315825339631706681491911841075071604824544654611154509296021025759105361265104372112661700980307581879154293794159225164299808001138695331924935852833634895321737523615690911050976030816177169547037571081753679252731068697551147797681251344421042429435343129559677021312519847227274104274309353559695002594716428295362943029392926276360452742691880568933465907830384973237011726314562912577342602425608282952176375292649023609727684784920255891582013243915165911308481750778141340696135439885468679873958046633388173727894661471163153690839413146211314957061005927042448557077321037594221393980255258048001293186007815475554184395292130078108645251658632091174442933140886250541804796371081903155784344217428887616167580714221355211906688247279642866522788563304158265421846790111633865691501715891595415313481122279821349032558814476326869788128841077174629137745428043457559344825523459915175899199134260045672842850322501603053058103542288614033984046634990491871204672667026742628234277742245534715836819142864663829908852502586160665997548587476262757724484173234284855040422078267026291395386040001007081624160266218314203297562202339332124845100305724118164279836188200544526762914394477619974790892918415792180159173805871747611066788831358627175695793632046796540222465009353704496267846448995880956115832539946825509989698870897454317979711436047760883098445080950799447628352751648155253462459233634199225923063971958776483833213017445895769311214098363391004994557343515958568117985327743416901476968989592013696097634385422005843509196059357504356575680596727785720806306561870509021357479128453216991306671811062219044083010102548907483162281023542218724181886459417036359809731451368339701718546488729113643072323295400377202670765925993289265012089982172195205508470196382867351052792261482338943729587951656702884716579981135907946472651645867765099505737317893055410537761255309277423078752701531707316927247411581525725974431755386575013317030987048398323991204077053480801582893810141706072043746148320647963135273501683557065309231412133307304364464461950400317566478201312557338711606998253925211811554738528889838323435536578085164117741462971709955980870330403129304040787683441425846373201937051772424014474494560640565867497721284405837781221441249229438319902006528706666773161506892685053786035434406737200323726727379939562048512236507056745971633358161502320309271654286432691880347444773603209938154153051536759532929192855096146084821558714444579546011805287520398460323917138394102720152707077501199002614089029179884597889316531302888228272446798888703854223109082197212051214368150650338960144312783903137330718901587032923091474198115854811549395238872757885037012587366684688697298662954557185102736550247862841552589362422375527375769384964698581892831307886286831441666008517940510699114960541823648477762263591348492333747282898240350092001686376354443289271884409107154692122188570260217122229716229032374815431411435848912312272296648886680962582694095507085860731291165584619290066270338393339091561924435076498282085752484047515185718304851161986925565699555891904678023814922554710497023994101990797901014755056333167572247366289474431158001789292276554176573271120930731692622497567190401853538933563749495893957151360191250607039801861642791875064159013921803164337060787217970472189476184012797711153467873595305381267770852226174527289133643136930990893246691158821959615573297160950832301244593090296124951421195789772738165954258315720643049341197607003809124861510553748044907210007449028398261209696676301510749549484418473614101493629785055789705832031945356658712987599510928394124225438568718256632452864859874412200020387420055865150176761747392305850582625959308170051647259481881779974532460705327993500344426863871508466597016725673058350067753359521348793648675164854340898410773102610530992157744749095356526128171501130624188664318745016467356545524911025847541350540634141094417473508655926101523778460303654650403147621788116068053350223533791495932249686658148306453640052586485387673030006932088341874261639293323396615749548604042286308720028598451127621070374919510606114776777802295344551069195418464946221476850059775622666993150279435047929043151541884156266893360953185746483928939518097124309898404058693187014192960456119516004270659950814939431968958429951420162353364957138750604020787953997940111228197076578039670193898720674652953386103595701110232797229282360344887531395561195301488078972580313596667559026315463758888021554669499517656923539097622187446297850367922652264795877499641769746408513343008210278269480321522085520204064943819799471123241639940478888812598776662697084116038509676196362563805248018939235775397081219935283263961653182010765397688273633059896202559692097593354714986965150805221877887321949688571704518490411540286072463839716903520003938153736881042483013495680458345209701517311541122568668004874650430821151726256899019319708345931600191675511646649463207624796431468791055253558464872884287155109351886482934079756243603835813590348737678906385069238494088522248252291803389961995268923103226688427284818922142116725215762286141745356701804107380531733780387687083209812816460861639128460024781647482363736250071660514021569009474043976297229049841832226292724731713301273467475982173917100037852354336026621792026121278701200664764745009278371958957027039496290388710675470632558257002589232820777346464149611541270416430902488731231475568739689465335015858624460268420580475649062776517780609731650824543769585042812133317831197337903410285963577639508527347954578889017346455447406411413487699779221210438308797131811629178877525705706252750320391583175485837291044020689011585272031717372184987514389821283801279323963946272043033475843153698004075534383238449666833148458660859902252054616665880714841359420167995216563386002570811251524042777734306555030861583308295686734658549200130512093760444797839808172216663386501350076293332413075338594835465373896131681791372243224829248852451774804826132181621284386176027504554123818359200645895812240529747624030962945805029220133939668580492766023350816180776703758044941500037317945306518596807841085534372872030741112413499685116568963661915492408589888108140150715133205158609608521860744189940302886094402833107184335752412686219299787963495715336546238302700945628179526352487353215217930838552095364181260852583495696705270460831076194579401589079424892634351134214306994108049442286150960708406259413085367159458431855020606340027299233139959847147301883402201544768833916272439256856827648755164273835448471098250361655582947069695391421232318292022745801971920060205011475128650789581388419967701845512747097776790914959481707195986025462234544143381694508892420511181171304283387047151663181104528317537757869931037778213047577797866847789326296166312398538537443116233067573060572332210263667420968475866935686870617515083110391949457864113020411921102704561951146282880305954476973564467899147403952850381253533265678340871943164013671908346827041487684156646267966393147674013849297647340988822349552122649772497110216599730164343234717808476211706690041440062999363080074342672593081520198584861948939242801180321854798657149566817505966914974386727261699762983969275971788432196174655370983211638620814756994920533035243092321193267402653043944585067049855460340558805434460586641777791570976566379287110794004623705956229818838468158810266798949301549621775199484158971718296326194176622345121551007982997779729955118579325045652718960042272874339265784055135591681210339323144354634946871863733287964232663468004113749695801345457709955590555589454771659802284034875083777035653204533632889740389740324128746897831310541943565147065962800367149462304549149797130841756462361198729442286703267880357143186596564574578835111448205516649168050658333684902388939883753084263610983951885917251142622458310417996957623153014192444361819529234886072318260940819166736547420910790393633249442448536055513699047570476140065853910661361286607383937156208318306505803375008540313537384347398564760938353506477934210166501800585613499639755444375295437579723910899643335257980325647539636123107662978453012646885226681451981294618785275726027624135273279691963574863646618263653507646580778114430266359523285591952209184953563106158712667583916610875563261261346183219383795639002882124941569395902598833547039487529669262926628222793632985468995406866400183167503635838089532264773022580587009169472317554196748109804751424112938364935813056943497204991133737168734666214598873481435962529503453571062912351558779331397917763896558842648133035203998293450715221856724368095632060757878117763254576064484541174238566866597037156229887203849894860551860701342093245398465111876772079590834929201376328591543165701801209317408563008414030450195223402742650709336135570463804018779780236134252800885838845365049165189332978014904183677491950033855490522683432646274936113057119598116776529913681377252178235578560312476237837784816874497585502308835374577765547425530390438973026231921230121563783694688343482124405492575192223319169492097968300155316198815226296607575767103727708553800029107569428129321978860153950538730426373202980180135051094055707770758578300067918231098613564164912459543296849716603994147659739693756051880375335787793854127246020804693973012490653249303380011058606870248972680314655508438162593212404322376307644637755313457602851241119052855140406923084847209423072724833642855190862393663540894269346962594568823541686839155381980434679393958147483883087305178322377025531714823689963482994336655558428616333386516282244812121931332696579297685868111465226723566096939288709100281863316279348608595770755627524298878530131318250830144110378826299968027665512544745119480096843856067073982596721103253020875083439322112008980462659741131078030467255890083752264824249857195658931551353444215475182041744932758251156063630031823328707879450165722083712785653758885870545877439966795204709715609961309838972222244834359960445712045840345551157823315648036560882037108718011259880061255898271490329356424270928836349508149542546433598113916521067849924241563407447146784974683559657094533772567804532462604764455718079513480197957139530293272534125687196410824805144928965989800711009525276414601644920215457714987936251055975306714907392205740996982926932876568994697712570860063347496703341657581797057873964936974299496290399228957149694869828055435687539124647152015064824656399315452650875048919099150208627722832494428661526727051161107458934912259822058988731245254003972485250421235561157221923354084064689776150378756988603438768179569341239303656636885066458372557572618760765838506280904923502924376957420218106530773951894099927666529678065134790761468518265702906820660018647548024170350130289768523574450339323051906562819697624001502851510097342946356870561285432671777457664562708870603933760372144303824834288907231049003747676519847473258641225993353947217538278822307922891097011708197452460110226123008945705728073001899387480433080498709976135725625155123156991006723550412420713574042873188845150721891262720431232580932286496619905915461472500526839404413573426057547671632334532970629891940907955681628389470025876906757630741832841370337847182163285455820526368999400987394908381898013633510267308446524734643617805728905058812425702414810986431416232817839672025172778582515956865267014808169424596641550716067823655313591683258392431968317495513399660449315612384486301122255103698676016335560686466551469838849678898321785344142426568909763228127033539918715861813847926146560216997847938325655593477739515389630506202029694164907038995133971922570562135766009895634170436081541126297358791041713112611210516169537894359233171701617501525297667216723997886673608539331140826438703626688443252907379068427815812392814069797270076035793418735994364575858568457395875364680402549395455974538475167819948744545266193637470622864106752563309150002983518727083840943183483118193580124893379346526247499019700603677554997497030479881552971709765127976043086832721280844321346648886466398655291521383167467688619116140274345129404547221090565878151170157993375087882620975673613505973324211354048302750276324459971254619992574061239873247672140006763510062207757002518256382864197653438590856897204630181483964381516162133537740239195817566096804437279831895202477066806351314528379509592416992731682786601660544039729918774888406639207853223395132019487064650247863158837659813448328900105654295385642702268673723523958473514353402569755784068316734079453485662902198133376541943726355186803164735538494159064663569414219560225789581614028548101117048823839499105955099132990712802055864984838003515128464085432174459230940258745983086858239802815203860753996510424847624050253701970860182151371464779049576270367508956468263888729213614701162229110536085231888896367186955775074939548358252536667257983195154142827013043249576399907607934567677007295843565218516787236227538892037746667137698301199412832648923986710540866050133776367027776500563361050932359195525158959046224056217811260266948245184736494367278570787303817508255222150395450651344006449656621418097163054651254548410016407036680543679233222931896635339141987010876850986023990886162094396215093978168335718559358857944202899511533965002865180336915061465494283672442259248181763761400888659658406286514839385670600702674327564372674764069398940102112462927759522646642864641261907496989711477646916917690164496695208095188864637163147949867958330445688868636143091075607130483247952803557513360590322783614977346540132209700791709418366986834604760677463271936364098165479842538096332430371463623342629892226881061845971382868122557249409434546244120160031885514201499769565644761002426007891935229184408369120740787219899866101033212690476404144434749265690448921798916926583313090278966195355092891407671317923044116455875750589747739721902916714338780332240572535085797098419508175079093509172275676651424091267888851697589473806733884609579717304645657304033773002422028320655662863245891229794972952208554892487964074640432089474730735404436970006027721960941458103478348505297475537052122333229809901745042502404428222709729073532856663183502470939021076786867271850720124670409230756838871388809594968000567060373118307416952415703202665044718605230851718547214841459982956317044287458846905809112642648340956777617672752437872495050415489314071236473699458496492354666169574115861963930617147589562768627592580313085700912632649391124398576674352020131798166515407809494030683075019923996097497885987298633990607481448184586885662766628921655453784632578465955193285689730037796767666744983352889950863936991975672460647561258698058367811438846267137425351774272134243315527542194532930260530394079168308869775023754198047753978681857466711678449381149232700560212848904444417271341997554210376336733174744111847572961798996500230792495905777550427525718092721023503725552074212087610104407882845041628438495035655763113175976019409222496350936008360852475852733138260932775135641914371309562589230531109652551088701087354869376355175588680135396637049067844350737502999369213654426460132160826296248805094909224807942482336325249160794078253510689201109409219202411039010628296398541089391697303086669466884234666730898342175219996880623042499344328682049449310101275343888186491187331163175101720801011212073489059350980508893627411578810132589971448546222128635495254678267294716186485478468948525011963625430034634161025802025271394097246810147369733610134402863426780052870842587144539848674603422594712092878458569562795113837387529939873163796350464708657717098890173552145623686977693637561140355819505455482747230965313184834709386849913785648326208603728450085464449477613763726324173431688379839929397606173732347213610229296588770328136810248706623822704971296364961353957350172278631792041605857517581548961101898449760597178102118600946676920049588213671058148037980279350510645103944420307672173336538489545277629563852731929119881938395031421498040945641193114946402041201124790919930044155534550252402339586142870225294066850399107990444959224110288541855215695226169977748659462963389200512700146369271662058123545400906921137368756920615753623651280860350716720962256155195714995729313947251779438626678419694249710475497424291150756673277864707097178479896411221133064882272322502951325370560767092537594689451505467157382347739766762175359586478075879558625446023973783228817422341216629109889796107065493144056911928276624448934027884706488221676963056812873152567647640875141278443651929131762214549469629177638089403729220708259556737460714744423167226213654566472256676727962314967474077845181536791481769752446827053272684798804741463815741415791427100140346677050258288096358805389690627962678310762701422579658730458137708249412124625663688801435814319521574557881248743496377142167375604798261481891763003700409912331861355185822020945571047780829268727951167493603073330553263988167832572633229727367454544242678140461348444392318937740996363490868720936602093675228408341309806524046871839400356622845388017458832387892192783470452511432199159121016154816533079240865322783770203495449020823227583195267728749822432370995918379304123978123990093329454104565716933284258972401693025302896274104791075881338260369660039565472826997364445793472039585390603762278896206579306053032150175494710488597759490220902037861943403598718097113211444959192341040274102497245072397890142698121626383031733133427432603583057920148716688778694896351265900694312213319158139318595955080756176927135219358579168829743519509864336284279884138412780242727734393673478962061258273489268088479446364548783651318522230598985998419413816166057349291744193951661079337932205352736186548566583521832165748803961699549368076101365675125888100900338852487720261163801458418570719021232364069732522256143617099126003017333097338846776318859102220079036545812318909293749287695548075066622691571911547374688393591002196843531670470808075236091402139423832980712569964787133666774654926569882876818333714759968512043462138412976598584982456492582122827846966706852145971559188762129931702780466928382699018918263879481264790294814331614925259893153081845399640207479817865806749656264376626135778023994137531266539651998020911725488649820028458852650520826184497054097213312900044402757933332136456170887532024073030516247755412799248844077139796248283280068088845747278223357996768685901441722152782447436621673807536052084083114569049273104448903218423876429403799552469423311124597533998275946777960943107922596086639687142578876168936392840695965019944727573928923275472241011805541570642568197952234256720176194624127316623879201060286652091969625721018524115381662524416476996166954453576797223996401224330548099627253136188582747007748568322079353683006743100282513028129583525861570757865418232387517717123499186713210793868684914457073065626000063062653144718159863967963866514453244987688275268312794192156165068760289593215224574157480386387293313498217112942385093887273339289143223816709086179531319382164185634541374580928701011460738679289750699273650085021720068616297452232743753860592479165234068716345453653548800593588587071265793146638101065635766263659045453312708976285225199488637752936246623037023631404260989370156283606063405106247320760689569723957716908183137845827092138211389298520257685487884203713569501527497825275750509856334335180623531956638595362094179641413590338708769092058287219360370327667543336418945317577665790761307689930511091856692375535703791868022943695267031585627179606806315023933537174925827021318568569019560279786703795322518410071932192005309535164560769302660410688614138413644787458658901538752268499192735235014913837458060414524494539585154712939867487505670560218702721738949702857487321508444037287155870753394047794757065986861906683528394643911698401384031349846267363200385191972254036837740856034212652578327916246430317097582809313744372524465501189879803232079525167110623032908774381015726301635727359347708981198487819703640692981069340004166512091300494166459559637582708208131127242073966758965923560861036278862810197030513467933143397285363520260370742460203679651508419703797261410310373334901733554726800764352589023993143835395662661195630397422583255473804577299647211585849592119629587762969519571217706427247233378703734466959381564412591675799890807532551125935031671399446820506135759237665222137024694461121241875297865541132007660596072653745127495700931012981341415129546749516999312931173001649460429870730383926259916154113232460233915507366895892692759826886392247657599832997361987008261615102198718347115099262355371318756392330303068594428211624546071007277714693730503856093894349367192607081735988458607989412762236233839574330847304919896501755634259886531426819061995326084144492280949303702958500439978161471977203360279376979578550826513242731725703361859457714763948965257488001166864576882319459069104300883672294888942437096486267341374697885461363130773154503708241010652571633922612963802866484561072280448102998926715285551797360382726445681258789581343008846580519650533790551046340002294832165709291683527834466840921121462627977680403249191571755995215172492385671522350709004370826561540128989304107247127958434282512521580308945827571083627288416847429413492769202155534136909604207193087800947209601069468401324901678194408076793688413099120958820469118771343355918838792478468474620780702237004365150511801289689999488515141776189925853656313785343021287785442278301914201793326388087151890843269875883623616923750272981617946890391860212605680770315129672318287493203354324183440655757326276990104738421845453222753358676459375235414050972482352047145016463322400441153432792039817036390741788560458249498908604409468071929011790005314552070282542985770389946816829125133172942297573814111596262745337380306936994623953347196386379784751312309468625133960114553045781145915953124511382175155935849904967652248268844061275553456512051572635490550377081750858905029098649779433155447627097003867156838601156906855645083597201687448729481560023534841321257625898578503430341890944422033609640510858994027396953844479734195952394982623582193386183212695185709880095862106255448239250757966776133257358254769566474242537542085867318233772269800602573058839157204463245965348381283670122150868898410100735531592466587930259610897854000556926245531890344400882363204426267445779448690026374029593822400901889896123610150564014732550558647159636831850015330224788018475181807697642933449261587337322021823504884814936859968614323952824549618393063236630465201947178400767911991317454535716248925041648991656382778720178455951096910980870256366419438089611052184365246317778616386775140625224118941022329054279195202611512360771277161354663054365796846208654298863369763770711242561194884622535874145548998188997982755511116617865225023983634355913638838867622397957671814696540158550230068142075158689954745923058430031445301088040755650693958720286600485911522809316499660668455894093635293228127273003765202222265573481732823936673562889579330674772494769027902411093390236435201680735920627876071426339300571501761510138560461416567973548796291048553330040942708786375628150863197099635885543858962925280516882180086848642026269037464913294051075213403866299272064491128449824667569136551412842624962377407542851272651146287337451394102996624790045495024517167370488786714165543574413753794571119791313703238629058825408497830910098465105334543691487291621593391171310119267841718338629465894356516610022958675893454488551556777808008053596164827412474299399153424516518487773270737487113420302998387736898726032636314996211260359785661300353462710388293293099786748957539348820963826232098349206547697779092796317773483066063704745460681839701892508851788800761487602362399373593786354377021551399517481644729701352436341873897334396367702366034400872342328434276713111167159914874625512903798912731959528501740018621310013831629917808748933148401017138369497465453364811643955609499707968656187204879702735933588961047854654546596398512032762400135919522036847922756688208140592885202380278352005147698934550567350366510331789494625845048168642899155947044578463629453891678642686524270889018968432726846762481849188577993411297357570060353978173771465803294895273048733138389784463728035604949734809667384488963504546899932587244834480977522137339734602129850019677697232566998739355750460539817857544011975371836058178008227635630690601210509684734657775162105658314075958748619908913058938844228973271673406159707226762721916148105695534650611202759371487963542235357639990158155377211867353810675779380571924738386088279458478757159644136182613693065586162412547535200608210587392917377744525539329910065472696346027785164882843567688732246469606006574434091520344244707830854005303286573656875313341262955429343195011233823896497506108380708077810448520082208682469199604613167075087297158162976436219712385621331518555929858804675857982916814436357658983562931083708665502061499564652390518113754532072856447938379183178448956686687676993662619659880062649989239527862309911330103091180160674833880544169112033745385458632960096740566333852361664203558287550454186237432960434795928764509352109331028245593125924595183697733985897429216956654188531491404954487138069465324791201668297011801473310648029197054383736971200804569918717987738058146627748373801654785657111639132589755699802074804588984746090569550059710382937251245470178260367295936153390534204043784343267395996324297577495023547943034139139701301834424254421043215787837631045502352524216119019996822269850140230086171877937211231802870369923909846650371307293024609549859677977209097213560067158987978454706372372644958368578223763598912849068397076417147691081414497947921490738314292091118823965839362361185573143736977443658445775184450960643974089485135013309401862138213170317936307915597520599781119312245146741810168466608900914472073922544759146149841626031948121521373450667160973817728336345074616610825603959634054660316128837964701864265845565739469347947432508903159934120812946843027748304553997618660530717120077436163792904601089189139103610704038510823664150969296862649058448020016412048078315341494742772573043171133439800749008484684349947360848800977666006682362418124485529889544638265798252322009819962028839490698896949083161763932980288100468843676088666910394135066997986454417540046859443962957621668952259008126226890811980624362060182473068828693055660665375339483484992143269351618999517143492642430812975842145816792232581903360105983121820747582778030385800695318709749707033934846867803230845153220164692742257865834859431656941388176988904318966504558628505583576035799636659524824123820778946088758464680453492904525298262274020686325917995296719715133295747494863084437757141556660513861081887030659657909379740359139087772891524515399114951953194089781129025110412697980115006200986581670268441380190401534548425615388658641495367243634971807873700156019079094254885009577033912793125560663113751421292394576108739741809716485769011056277225501980436795421499726079379597319508653603094583377475228854614494462035720947899138830140383686416809119051722686543447864380898100286972879841905175660231371326485858749593309847613091324349619543167293066899452810016460758259552915803668316782777189506636804752448143196000073026647087892510608411837377341708274196347001763815149635418341042894188472002269857202915594296010839200918401290258761615890588945894414878746150587204273107086517396071880011563318352486312681821224298822818900660068275946217708584925356845363902203462548871994351799075364491394138706789758561250242492329330654767251608389361984378197127450427663482482108247240725154362928778904224889850390598159994146915682717046088846281839745490685084761785393342069300895361127178170522678331741313617827803555862031320718606521833490902721070754997960924152168002198088791741832107137771771347575361869627939510626929512254199629384879383303871904523031138025218615570053516017083631836647929681827505495941625879557214248525014034121854564517852691583229772125434576015387342084815306550515017870579172550139489593566567393184907350692266600293934261764777130560392412440472741574567864983086780856959744619089826022003849998285172855655803415209962321175072113441477464342332687297113365648493029012493643466395227062773931543557813082712453796613600331406663009080200684466568796421317310271861974581474389223611291421618189267256405836529655143216062137864598294812922305456964726809254883693014391030970920025846061318014800577318029927695827789467281821963730969173461708263209229353984390738791533398484569963245141328847147781105844963358039465020253913730167256562019627875407156667593425299525504299867752134352728011541579952463586170692697772698083895631672742679814462559016737110276823031797286138342670841736321499582044670730200631530328855990681842086561796785390894047626664894590174874420960604886125732720043423333824761335929035926740054185422193176434927779881893249430924908019215868403302656697401979935826481309564655783005664753063057951389300187460611614370896254500866445823753669330140199327702591516577284235802406068885381495675680620436333668497253352065907902699339518400845190227720503269212905978505190907031651814014772497730310403351465947104842054860558506650074758427432883509566027575425593012280151839781617142584476585639855697522390469467300240904327167027414173749855397790893789829747714593811848316082054521145596310658870151690436684393904911275679811064505699488791264902979701686719091258231452537979429699614690524122829184616578349654910388906018218296992234445041297346404788821332782912150997398387878361537289767669644249836807311042806422012846566581288512706303910399779389724578378925999139262576594479570087328878302832935709499577207524442266644206432348203070372284908544237129497954198089017789739928742689178212859918136685282535581507801852129080077870431799971362028542223676583773483017050480221954874967384213345573297124812172909740581137307349604604700891019848164566865681500522539787233277924690023678058689250198468289382466805301234238758246168775964614798578935789617251299909867141784746334004515470334333804565074972178554703055454222770177068651234534295637848775474907771656700453068705970631564599948096924843372371650962196795114569870977873014959654252994118486081108272429130528497055287411925943535853234634963334119126847972132567760882987558085338308739038514575921373065855391835980537937082345222501400313036566574972165755784255159353562525744673963648056286872636708832179640102171943549474269590633361907899725566976698782640797215154368762973629087881620458997668629500114399901385042934590320441122228426486410819450938158749933036200510599912686548855484889770719338079749304356598394268856819051196300642722454518686897115046879421473137485250353207537388128196851706756558500213144882432313849472725622520438538079196812703153758414169550408502999637908836713294839087173962551075526422346945915986878675518873604459140521686726139840066392940695797179820616441174774823583166945677573659623104553973632554548438686509658823878392293273531718695169393051184526728866550284316545484506620577584465246343441424255940280862650035265710364288494721612595088759526714492323753749855443931752906362537226819481485107421136360337729648765590720879405958163546198493758172053339792490100786726959364530860545084831852377586280034114606389707836567163038160270628283024014117025765938718432831271911755898314595914703385518053584564635761031253338862066560154682511763804944103462826704537218059691718541803479992190719370153343280146066091197779900831500787028176466258342501321033648410624576204312462071031355152759234997413663198765700590858126867027177538768892920974311697838395629823781665878417298967371335832279034226007056758578579698658489244722356561296906347368489820995038988025540592839252674718683237294853402445055699443807871887677507440845001438368518581240834839047142535959489109635478462602026760635693941964964717719579144641394296148627144006643072861255106991798144233353388437066254754398360748579627802520301425262073467031654323262717486117533780167804714787014479677821492535375497861330522394525612724400681183855420623555544857147758765956664296935098416335999673084588171827833034477987061953999506494235365160147582744516267488410931502242750862630118876696267232005908920748744845535641980445613198643789570010897066120547293290919199440928435085681973122480487839174718636107878716375353390445077185623315331397140438326818953768729470106919329937708812726981433502869721513297513195684641298927157148393297092796636013612430309102136817993857467462781006824299796203075203490069752462771223712004154147881377240283725442673268003135284295866929440472198203697965295115932031589866930962971142777608594953643123085833407581995234793136988360144989490951799518064626086861462059841010322398799605449390757896870623392982346016050716006379084142823016071342224508886361051165570551545345875808476592742131313573774518324247240686869166703369008158684524019377545766464224184253526287959651321323472271617526708945990366713541845709730017676772614535025397949479238779236766286533869221561094865518676565629132603892479569134269781909662829155108157863249644522005616851804980892811898639240813207020606306422899357780726058753226162176064707514826632489050503614916692203912326696214121982910665424100131913494282453584648363141610635407549853339748593460218684011228776579438922272273133619023190353861362302845681445282351603963219853319322938793823693999975642566601696499278901746497069644210991489680588348950920126599014029976183290604590699844941659753300215022862322218188136153242161992777544545219920861833941494943642585254782380791698326731824355068951952401323984263877423016036080456042682900528072682223005446010018818391752644036103756137130189259379905658632726628550237801098097916556104192583310113263875688988355939479078930276779696707224949046114198958309629060647263639270596034747854197991251286521741156299639964532652556069848617752642741041709542163634273047231943813910655872093681676149980054294412954043776120811923750733153749214080727080187087731524208257505009561138598118788591390318860357020616598350171169208409176751683924032571762918299095545545029955499793829213714851500392506812830485846297004275259474151152347120811105579634287536096516340594827992705637489324555099685604406331573338003013427795451104510794350192429128325040735089835514419667684921288052732619083227289688366745144986153379408260154850092155290619443425405103083145643221244769653979670320733411734039144328793761927656251470604106558533673796945115556485941468040814260682663609416779211355372332480939418948039064123715353165862472882098096160224516557798690334782086525778917933625817479715028236469846041746432244047008617536653839983328440302911189948721408316968359391127231382526389424041766319855989555202350191650666067654403917126708034217325122585713280174637115609692685033082159645164994214548283362858338867584846911277721218651707028596512072285397669616193603286962020969595200371817536515411164637870753431375105056105629752036682405750430614059302950191387925845813052461012818778440653706831284785989336602600162099137185392213217769891560984696883188190767228758830574769504516566443426885263711239178059479041615363623382595720497532009048035598709585211290733282576254983722923699471238995981427326502326403171964409626276865526492847581750733766157762823786787517436083555444823973750950851079085543825298973660088451346414506888367118121046462159445895778526602683789888783145515093392507365660813815682822317359871019301411990205299212161441136358985337957937010424484802203461577740147971064402356481387947024882917203887733183012634769759796594375918826899632218184190951740773295934339529288169514393645971488115838040479466454899615232131116669171547648131879876693223620146181080272045084433597131864257470326051978241870173535790344709678226232878875208399174209992874519091933158331150647667027009948766905120613783747158090396464949998651659007442259210585767302092384055496591735563135950637330341430002767471729526114094701626585162808966944497934861993969113669659101414319950311893816462335562464187582818754538308836572006749320916174297305058251976979273575303483177288171359189013455917749003157283110310369574759628968417454465745028336065116736834751929398306503164898279317854449403397248263432139636774428372040233179767959565005907855511260575324627968407188033608974909939649180957094101097529027180669680353653830582575544063661987962214299567619651030421081784757823534377670349518505578920460899737361160510378680502681895200532153568322695610411708068997423587526847189295504795762908492146090319827390557301244058679684400223362213215314714509718056024584149408173532618786429008485224269719997321501055109847653660431909743206046774692954162832030586342477014938836604407350370641492681092510230507955914587250818019613385582873394285485006418462368298866058696709871823220015773769910326348018400721213277048552211455632179471344200683185360361597993950061539044958185900555186890257459287165230743565444239758267824977287454064567666712872811594308824999406879105529136211020215110738806874535637917211233083519095792018942043942367468447456614412770109969634992375478049245679474209925456130843466138876489167982046771859283124216966049942855253538150771661004501785559621017301743605679218470580877120465871736377706828743575515660853838128926051060925248301101276039458289555640635944204625241379810879658830300025571012553567934657667272655245736094875753569793848185013573043184147754626396392994408664763385310664167665477127264567020161914553172454065091373139620368493148240252518768869914851456858802891174108567813421177173309200989553924543344849722499331618787870554533371250879987675117209177219545423641996795169097187255314264766109811317545770400916611826917877816709078692768994325440792892963157042726076197477985192874754848042884874942024936406917767470879962179067225625073554540849027576931326488868497618721053927654803448621464224053521899729334868606701485808818933128389621710105178669478386080459987478447068044894928912241371045791529912428172775371307020662359598231478486710289844116981864276922955450399034011601807792875157349166267801613365431653526961542258267367978372124518379344260922021899874688585393528493985712928679602070322569729752492166996014391583870301718508497247627150597243497801690763418433486749249223703441550519465733788362741896526496883130992949794943543811143681010306087613064197017600589554214257770482796998652717973625926197284673050464199511305691786258696234307708760175685346645556522556959455302098249874263656877507001838982907704221393221821913509803785326774597170229541456547222844740957413363136304844591758821482332153090499419872990997107286641519306882850457129409806321087598794479481195183121995524177862966827731597325340818681494662709246526483806494775276311878453864422056760962111515317340803579384476989031198878500712772488966416593521807478687381800395294411709335567837781561032809611367991688834180050411049440279255362705339536495720410770876203592036862190321608651663749420193079678832850358497455173188626658476905978495751138775779433465783689754392232692719961488268171197197959614221968627801876837418772504492772245555995599254145435225836253737715517493178704043683961773515015628232998146947365377593914606543479966885992521408914419878154639815398087701803987414083407746729300806210219841387191024776014932304860056187414693306993169248931060173845855704195989427127408539933911204780659877786776983658011792401614759533031395168514708032596875569756062639787846291702609973201295455539707104579697955714657625706642630951005779719658197137674606955586161963158312900599895051848569951510913827586539497434885431347282534382301992121968697854142073450316308013222729076088994171375767645778400253806016487707199223525616416483731509047613672979178061592358033769934627104927262515656667858919762913929979561102458845488504829949734717501852568020400621923108117947790568463581049850358177895293539250527013848154867821797017785228500354889207149517041498084437314168502088538247901429092364590891906235911063442733975413133473793293046185977226440556385576886963372018915391839412434773721371058114277845006010383671016168211681957363146523904425801138343711704190966399870810280872422670045990963852852631670279543478196414805539533992094127723815011102405771539355306298333265996303482858895645669841251951668641225913643137529097912669734462436141335429449517006718962518447662063297765811964215160516603517722705072176018834314303319147627715261024661949563391281089932309878751784477022989429227866410658325799059138879075109037605350511763019439845483640619875904084825572174486764262266527331413207291334698225955254099756390528964986822750176986635727338745353156720356070974559086568467632293099548113309804281759956134117174554363327918729383028838087161734575102342450247643974356576824597323765507520469600578373176721433791065443996011907942228050154273030609474660974487960455953220719906842524704433683884047043842376962769439897352940776909120386718986424532756019714243674385646801006521029505146201740974959006544359050956231110193501073372451196495887073011900866907945365103717865385629497746069040951009232035046249312921163192865623439361961310086923885896755622739232227094956603019236318279210757423256556851434895580900732202951411717921434633285453114650331182300138950701983272039009517167705741869838704101673182039860325614754312481129857623745515162940081144979804834464225489521137946429436953705549567269733045291072137353922789134977177848697721953243046726538434203720561175266709532545232530637798164751383989732796447923224711646833893349106651392962686921923069130836190985613186516187416648526270105809875645215991213370844625196621440254174965395854379048496915534844947680075472390397405392021970709785535807902417360901590165545802300257696791603382518387139529225736078998660446435901209697300473642639290401602287062115380446363721288402110425882234494167074240698142055898067552783687881991778337192703360533245657008962092081106053739543317170114899972577902004677573638464048623993666841385178388048305311098799727926267357417338299357802309346225927108017869817575785895709721226800637235875157089958924428514380272550163308331174680796257344898435382122671624858220168493644277384428552723177484461195011485318163081446718937396268747345959816305960657253042896483751207249766621844649268782789067923443168731777471277655139712688284184697216414054219843580498961650403599760748483055249261522478029311741280677468939634236871314368759205684465017413919464030905804696181379900978446276430180563437434039303469406452239735469728738369159758892168703353993206923562873495114685055495331697439203010945968046411665651928843274380424439640867193801562080493988184878263568543675066986744940562328016331250955891161980808081294767984616109968844393431006371405433804656038366923000599023779968244049455044868467755342465719961421812680960875830526624630325734834797259603397117859161338042700346910223242707651162191306348082453658083319184127457786535545089895079013639105617165885044489804329025158765693017312491791767196550888530410325778375253085252011292559094699983361180458009707794350359677126097998084094924915828190530930319343251181925514825288537090948451393165842034726538503318339036667383619594574993048481038921003485114729683000937401372373132893171437582698883729836678630093778352626780395445902227688628549341097462246693440278264502489266239829385751489577017276093305682613139068428157616872933346265324401964367830166306026457448060222447538128137577040460320257187737700990916260876870373198425708359174726372502034980302796807128407342519802811609031239360524382221185934282383236708851223128866617174661151468796965449761219473964033119696381507072356484610912772968142177922042020212201652391539672444360195849280822832379783857321110151355681533546552929701894756216180452988339692237052617145044033860978504393325491551465705967353390623419635362004189632558955692153838309289816875805494322209802640754171356755155843167788021467037852964672477654174864530570101296896261672482952844352967068823511742364227267603234075257584783475317073427802303667833867443391327830488826839105475491100004849332278963245737963374034257267814150743126081480313238533830156771634097405402408065732432630722755114564214568445567741709492443540704386457033667869848317292199857894592668332531663969862556124089077477649393141500889707452851768209294116973542216840589185535324144599753721506211968421990964138993476830941172438424240048343767160193481027780320399788996109559652888222152378658288750561589163966381490598835753894377033558203924050914292384520543752801993525236862966190466486962576053870051886127921634397558416719865661259415744522593061183511597151624448099240045940771972005628029592934941823567882066656087383306404468498231793262754018706926412094037942591558544132300223942411509512840961407240949347034988766410131199955738933527576219033199051141761170190256816477201321944178025216407569194553055809673179291300962441117161602664005876225201744131844107828675011206629119614188759292647803848685767064050285324761593645177426447733124355543085526384721642265955239839005941005067483175926222415390829496833410718279879788947314307927160796863985594176822441736008896016917322953705189520867355327387627965213857581231264643805192865248250788696769654076825700745620535164033389487362574424485122956721573202349327154014773228820562013071605252128095902235133569049009907640488511611209809948861396393065693439117355158231431208366541833429153134826160168948729634759932495772318378308930483531141878284157732303173979015538395463062871326458321829604571388452869163087055817447078106701890136376780301450600879990193169283651043627511198667167608791716255804803233384028820162125023564559168965535231548792315030738789679568468971778289612546908390394358265098166750851565499027776006662287948642052418521112236478309591876160796260688266938842259430770916600820064025448013530479895231075966423758625963276812981390704482670807311204518805572088392380436141566141462795557803060453680449024609601299235366638692934435190234435204348366346189007787225155243145540805115002025041475380033616400035984197003097747241478587396195374317489410337940239957682583341752586436165111109526292642938365548075846840980309139954835634936651849596932366876037191690358249621403227240620863489487157450116768842171928006177751625776540131499046857066639853635971705209767135605052075367202211942971476392904563540276488529344011409938982686022461166044525006301691765990249359867257025419095755435259472034687798769194287931354170271953804494549844273841962530828515159279015488347981478687466280484182038233150409399026878058572100907901522283836189858409378217113003899149616314046482169684646760538367440336331530730460426321810173392939564492604781098020882873416963075561569713957763471082774575447357237801175650863252203765709392554102123105780858261905112928876123500464503666084359739502144649078408219157061589561134882329097901617436986692221847949492949937098219167523302029620502304469726371820224087467265882817777082462745740334869284488027789131534599951320498422489526229957425500082882034012711535351604183604879786298518416738365985671745868298536115697173822405466782398926699469425850672557666289734317171019910462261370224351726426739343601242031561884346899540747388624517029629573197792414994702592573011430249937691050184602876384291981814879784160030924316138552085195353524177647729580515803099241987709671218253520830966508296778626883588553133565625652452246198958539862668959182646734798414775581951909909273169810341497522424318025106866003905204077339953202880610200004677866366568081509321339706702477516141598168717971477924094316788398473384964644189063191091512335634460790000803947984448741473778500398488311770335512438211424603510589277136500859291931406300406384660453455077389420939550252520314638345362114627124046053269409000779499419251259002258060857742633222530877358593379929710872151566886214211902821166001096265949791365633166643880637871918063640341039682565651712989622560941031403789918780886203476533626586631841586776683023754958976514917749834717730447562012872395398342034302314569146964506693975985865237678696861994688314597718100570242325755030349951620622402799778741787177112294548297940252781003159364874089189205012427337918678333296781873668695062017565789789514631470554435968268385404286152658288412591692060641230591953452115764134585300840196727730030751030789062213006820120999576655334107125385226251370477723624361420278005195574646595383939756088001464486060104331211175475184325161815729524490069754029185012623169178120944592177426854531686924393632212649056624314579215940990849420774190544306783523068585463070016638407583238839631534382836944086159692549234819471985351106162205156336995611093910328638338082014158039500874129558232012645509305474199692749941475886480607798483567825505462292129947984811162629767684158758658750203908057754139564656644186579756403546486086485244643253131422447180211899236814490072663989309897636251018264128331348046746626147038577275434845011990085867708222840392687887550054535657807230741888891940637340412722064761380475337015944686278241589126191960087236332116817393375030749075008795672525109969718303720177517356242025026834100651243594155288508131708192675295095032310447482943493043795340155166678842289764320721370176058658823267127387630822431415844393119871874974680666886981224619640721047438826299825555446989250780345765000434243954723314747409820080274167887408978165640713445180452390405431313088786639204022269306478394959210183991816310242969270145455819250065227501492581568136157393466118728534152415587032452641835772047775629056551196963459372572331749810578181721385098479528381765467962165707041111562873163063510762011398716135663306254395554647423224297650669994550955186014281327712280405754157656133682806425157524112582977918828596144991919053885440843882393601779852457453484523805990965081500521757442096940602347744074407597271438857466919263998615976397560983008323184538463610664412365885894058487578683144402868113651475713518514749941484825508042332296529097844431313968501328536909135233668423855357536076840146289063394490672428302541549663944828598541429391877825290769365212312317959648764704750674113937712318252607138248679452570044206371297435951475104436200985749828154239562343929163695376359023513230371005471145044003853893656709818829300641147433213849932235241028898782409720812667081073256867206369821502121200717654063864978273843425227568018444394913781776998678467151277191830837228710566474423331390237511560100605342090383043871535414032347438398741043181937866482900478063650926919377139706932517571407049324066044049395714550736600653393982599151776143977545825508580049497253805972272720755407848713295449548098976480439475344446862161549434371581382506867681403294072018032513894927346816666545882022071200940001305316071258631457454652062559083815636641551853488219520770866487608471713744622120752490024521109099040125126381400992880818920463553013020449354397726188592346257542728483745671383626441064367849272483459254384862438371545157237803591805467343035645327129711022970854272287289835144085034823218616054695464400929204840274164915035076220647127134276967613877359325450924106079730783028466073889331915441407960913581441552812578445110584350354546263865009420373934672358969770577905969940497347812656522474189412876477807760057927204268798478655475039794432838382053054327093593674762209711121634272272598755699232504720843409137424389454808664003147457767913049996654141428165853379499389747520230927627595533818245257566552282460008136539979758876307569682045147566517156691328190526763008088605390365654164908458311964851036721917501825856111166868999752529951045106501817575317248007250915674035498458119581666296522267548862054748196114279059747591033825312014762574461778052295978904523932932395120618579400202368339989781338132902242560550096865681873717873804572574497000109490518031541612626944175910814034400673387972394938643293992410030500231021427903061828725526589557969891618546366666720193856485818869927333071663415139731400277205511209759918625040816523571609309712350700993134094192280878624696312400535462919200880092531560109323269077446499755695539330853314594009046859971958709095246634311583675179417540132575815440972989052038679230021107472358147776318358291280063312006705212380556404870334482527486586831645927105607475670220088609231231599916769059621407958800360823548332118115780081940298025969047895661849021258444781918482635735320219598107296499266905624053932289593787626589205817093996057209589748306132670926298616585958006737325387415323904586828862487097796384272204652793287772104589272462824215663093191300594826568220557787860239203983534992603058673736611751254289050691167417663662807869464112631606285311652098950640157610490621863539050995946983621294199349267583307965788752256627053643853157874132504450800293039520988150832512736069812987747002906840310535468626035634256028113661345054754409330869482332064859759892648961872055635291120944216305936289279595795388532176998246572615072665324254922450982018723444759168399690196183329811910460091020124702890767414382120935990526881483802216159510668360455630553180170171539929653544014574504656988245467592361394958687259009962686885059175668566143540476642973506563713383800097918328925373613464683565381301610537916552995362301772091091560185682678764491631102858530097900490438846621397500350791554934168997480486784317973517971299404479288086800324988667262497678995726591961939129650302009684959605927513258694524727182673523139776768653742489888374420882731726862034274061505938000445558286176519879461860530010462247424788901958920847093634253031363985599476901504449007901071337284203118603491244314204393060759165518526026002847754575824289458055374521891893599586239738377855931340191591738219714154520699897381651165687504740363752152835513947402001297198901114893123260289611478423351703546108321380678584296702246182446953857846411081769211943518403756784037534623194151833633636297338566008611965002683136701964555943764877146621528130441138061179433921340357835916390269347915763026099737755461893921147916240055558050204153526005148395127409476685413754615643283519573167799652727140976020177960867824586392537214010781097779930666603632093989846394133296296058510316235445294172956872190956581406131877269700376677616640497894079457700833493116499487972728430001892518342890296091702916565354614562329202280954437645156684994661439042870575042153521473114369694744700732778133602177191310565900325284274987504486975314765601870168160043402366320544443389236527042895207543643901834064198528316058348778462576748199939087666533375397690019679801935316038210965820937753849527324016364768100761426240223384564985807456004212049180522387466223437393110526111478472913582708378764920889550962178104079416647243146025269395309472395876112450293527558893868744778644744172974046128201065456598250675209125824266141275404887115665889892051156054493663179087951693236833289648410216308018718635652284411970482951792061734180333846584969190477842286508205597239730579098612645483410713154656625775483762266787606544231211784151921265910077385817033082383301845136622353294076369991810447857919592035845679148718089315747466985080530543926316593970403983907251937659780933439114579191879013862522516166898397633541355220214065687315824874071479424734005503132517393363278290463061008482613248003784627991127394806032530058566650249201566546099708676796309847485460788905995287880664804684738525856391549890358433836303852793721202000456347923020163365569564369931606326942063449794006864845867438043119819634508766555960574959527076450776628072370328311132816328582094361031259083595501582317006439145433259769367399647701885025949033573455259546564831491167703705250006766170605490422143204109549036475536815602839603416006661312688497730427634368052234706640513649202801073027416791149918447098321494873091415373989699324626576772119102294588840093107508194865895332571038227440848996606980500980242245037605079272622489861359215158924928749566835231826651537101620459600648811686667130764068620815011620720813614754757384165944611002887044208827027410689203625230712958026971243146410390826288157847253605012780716834688111218271104226899008185774613906386925719857561783785356881660197563828104479763117900856283135863948822730794413025981621003953941034276042236562473193107393118963651166686400833653338352715558491918821290037175456054485469423421358706544714837997657980184231223151441505123803437725841181653725755436310914877071213516128094746680008749306538647368879118998072712100822719881613914736648958026177012500829431548091187657516414632210573970550174493224550110259914609315736636641322248674139673566477865410147456810640101645955121373162945180791322894962313646607272877348166615759758910654185031554149772309192706898178541620571695547984380205395196414734875591607443221880559962994292111371297026071473920955428134742833444273985236243576577763539309015762464915429280092289144598461400620073799635727797880688042834499180174702288862671699200545806868858140167694256716257541117977960041461322185545483539471666873532376505485775245693465765738530102288466640397360608986134794533776159637875392316966851788628213008459588392409586482015871437846554837803842191483884781226106153368958334277260527805031859240492497282596254389448997564463639884219698957416656717642825567129338094090592736533740475647036256592523067399726118974900702840539708313320083713882393158076732011192903762663893270716848701475694074263190770730876495471768425141379218321287001135231585825039167701630623773488805283026814221016978012951670335164482058919485684947367987222062252179006458267115437245370442635876102562711577540752660526988011601938337788385300284303068886829804550522523587594131013792468729036183495373494537190351389151204966058905026770757830866261532514804462702088654470584216489710381692270596342966358740102074547529838603469537971284832841233039118484567234984255843375861441740636762005154086189267202327797894434964542164606892409629250856268196167555895399827288416925457757610734252279697584886559334645290791804206695898496769870029760738505415512963828967286609722862309717997120393581902188552039812494940465891232176375084455371441389409465076025126655988296074540245695920816058074862933763974819126072714427653944107261647711881964782745643678657308146084492621019861317653090115906542160199523699345767153978709072433289280368585318201478561781686988840436961237710057809358008648037026892953584947811228329186295703952554078260659689868804893461973455126903899146731277060686503084331238346744000767030032237535355333442900118928667677359231031032337317617546344262761106870672499430660538581356337605337781307938365720696128704401388874480876177078030328529957610049827624749318544788577056382491057628257379270014980715399507154526787879042193524434063399547011243779834919780919655150143904684514322692634570387080067863148854094982156762985224751570382459110271148304839834084123380968131357853107652433017814393125619074285144720163772146629483771625940189150415400837425900309784076752116224327003584661088979894153574157244150636987006415783621147992093906594871668606000037857846178870445413491348952373909647330215349183612770732914806546154952585002928422492602822520634726342619304111904847053164142645354356489527392254874198584578140119392847046772451102657281839328757594967379111362819660373869975258668530079673686555075412465071013066307269650942264964024326945844548614468664799257697871535902902295555978289818826007555382947460016883220493376167863731836335693379743769411442315796964320890518580260746264322636178050475773647054851763915631988076848869072484890607571407310121573287076236593918822546788312318411610303023598393961089983669542132104135088586766784048880214186176911759198018661486738100138058267890095095054118162892196531513410700902609700192239062840629861955049453849095506743502894220416584317895343238287643671931656841202231520749374591623790431157396878918909456854069082102715732400914065812269263445041361910590101435427426038053424262852505831151546023940923214443840543862948932910240654949986800086913319584406775064041868169475416469066604606797491617479696735397174571997589840121864184760845891900624168116797123461351398739316918647799298737985474092555844682165276086659019757885988717374725127958934923401327726700574627373162888896389332992553864753614624714974276085952345187582027608048036741255578232788387840503460619438595458875225326806150839566420562696757983956091859642808936276374793771404958977181771397550411603037754772670156072414694794560189235313682484580911200706275719392223247205199454860069321586217230248356978737752776017054519208373265633790455833403898866998232038396236357825570864701403657182200382373977050649502391787747276235376180342044576882944859913513426688881076928311535165319609366053026762508784647371170103921269214744936310761753213478972571521615299671086681364383293028445286760351425936668380024166425983916447841648438782370599061225279241930888535641482412017956977210249157827380701267673883241294453696462082599864102460611776777446539261660124583103032737472751402085372378649684418025932859778047304689399528003095982238458162030186673544903066446604599702019715528787502919378869688231151536819673879842208428413174892482467660436488472668822949614998890768960110874595110024209776205724256034132688073567923639813511451270957821324021136105084615784035454731936877389995166913375902368037478099881020741762874469344991028812923389466055793452909284781183292685841645769434381295627111260936327197386353654943108273616265816783037274974140314713799347234001433071192925098590097354589654794973718182553004798798726232505412528568461962616575218985028817883726493170024115311847035292094588242412652926605042806992252703180050876472841027952420909625940124437891987676237929789856335969818367567086377128971757594877592319074607340417712158197167162471110389882047163343833704406665238973668027728613846077337174253325566560152927360896998420393520571987671767876189653132278892192515548313163228430235430948113716275378866402238441294706367469543823856567220062187529816849466635656359151092227981275932070106978537707726222202329890461473701425069407723059161506907576294328390150573469540460597110235431051652741884053961919396783802515141330595644888579848627885500744962528494904846084247000455673178335695753143928068793909520765478658244735088445202597911270097500135821807333088688696123863686560510655081757470531858840704728000125746083646167303920817346443719654694941848657998872227636151546599232828922460260504199203791957038044704264420016667202232991437649368520912166159682463418214798618050321688611707923101772350328104587758490792913246942529898310554747744298448008143361547452130050344331638799715361335065278441450424745301386197771675625504112392554653951032268723341818885452741216942926283601474662269236229697889975714740315776580244559758727899983350631088788465513499720801388404517705993939373444939262935717331711742400672857622576298521256812643916964333058959034132931405295737681226522620345678323937413868784779374281720148611109188987577461517677442596860005007171881453184924347703395584379283208419597216856683525260783001330838136470364830460288175002990652563062536078210087349994412977580599933088624621057352433488560408223963969656138739276231740159462613346005214038513795160072020210139969949985285141946157038236279572467569407609784363629803468693449504337873390354743327988236407800442133856122420116079472597939556461216504189365211299642521196251530730126855120091765110337642096939320482506694860442390378900640187937264560767461589015229787942208090113991833034517351719023396492764434105223222428285239813969574049443647471098631756383542312631167055571206159164182312264803382104976506627604776429003643177188351976518111070385516516140451177531073413297658910042381793470174653674898141440886469119158081377226593958378358060129721186705185662794086282205201831407142482511002650365841160407392531741929295604731812287552274844268260346607278948461047129770667538866595386452866799994686258432415196001164717638492736113554803382198798931512983446859191668507175725295223165718220961750934076720934992267444957813862047926049599380086187918189744414005303403132361626005999756539468270411565676930593627833400585980606820343751337384227417355426816539108242662304745305533052744757924052131973756786606021101263148996016391653607501473016093228986321481531728679415088725991391203064117105190543021391293333547764744714537627433706281362132427538694872467739936425039287847456457131605257851965790843469936830255255421506275407000733164685004303676281473452717257287375579777678735121435763717276178675680711445310121026212732543477351867274341600115773239952720146330885779925760715673752618201946816021932316190044145575080631755369633210907660627333963011561787030082139133623203694397641980746378512301177224930948486868778453834610409997781478669890852004592063707681039202693412211373755104260744427589144706134283714505209876771575764149472233550915341351753914201975986661727899212613187526274261162187998013801529831711396116668936425448785714451651412575908559960286833867964336756536489371738935559786900516327153450283023601161754027211597075571184898513851163445031338419630317958406352707912148531706650182679382420720253688299868457300033423195164664218563569188600779222068445862618929458109672696801046187049874773784161108383965294623802023630469306980108200552611932202845815140685364696980306513910582014362159577480414697615944837549065754199454897832978114562464082195898721335857146790498624678550203590021479782789697756130035507798277607834703143032509516130918012628503043796984279299007050872931774609948489424769159210725956972975242094517960628912077580005668465905236618465114920364758601416258853812988522627276556427530392346108225759310576963303642257602356970397774565644274669171725057078005701504048365257787657888645513495595716781194620137726584944640172039886397509141426367244976308159066836721423904700334143127082117441500565809197510816545818489978952558591133552881279794771614325347699033320172772209447856601908373323709554466839034632252870862828701482857011066068685112060119487381511041134933737554337790044273033359090748115768195393197170173586085574526506631241346466990258688185226715214125338066213784890586446811718684969229687325995058540097863125133373872093131890128498439052308364356744452236763932103633966970585364509065003102928122392774769098823117056488067683287987895432151697888871897219193433203252558283782385443936994649862631292529575480579245310914444076327646775149280648932502239666698136867441017608967015548927934432704347516529107115318989716873317710177725755349965630411676957651913707705359040164062676557661749217182839629718001094650537111670887276839699329175410327436150076451806257479527357225795730036647689581529856255157695525674645441333752069481336719881745346366544289945005997224012711674521289734714671031923120092240769599185862152204057422794817698209250689783147615002302762992119129025375939898585532774964764526570113891099218048786986041638577959722842348854102105396833294179644795695462209919699937963562984370178578803709911935730177314364579753142118924337130007336359097462445261833737783857976758636139342456290773109367452185527659526870187400479832836768961699918458396052042969081329119406024112407307546149061100699168163491550143844302759056017875051279932924705983290698316130229951037787370986785245449966665729999802033878693687209305034527854903581048918534548697528192352713656754036966268301887215479681509223115496360165855685491041402241543554209070086426584732894033553776850574161481611594826909751581960884857457367936087273319912745194987817261847138358802161166766171116139994834635581001605707292510582622726420864861295301061649655671705598794125722785121888892524114193186982633837160857577893139172445845756905484121038124149436824891655130064363084829470678246745264925900268561536820569944837884287084200707378183114161741937846560516317255389429331617316857002221659463898526435591299622959006194058591090046231428445297836271427771563238833124327421052047873664901963708651537785240571213493039577078693197560833464533454699076457576820384117389345121743224006100514960776284778683632518985894513033202175485150800541999518749426394030678259841711853604407751615359078831803709681170687819418618253570998132931874207487644303161907597891153228623469301162881500181232636615282656082359123376075614904362357973394169531429637167956534276259844291713402868676989564529583077429062394678107964056234268771606857553989698059835238928334296672606200110992601108455406297537653886252330230235358301474332091671409357440809153012385141993067014257531355858916471337159186644655745391614431426584211609983343955285088833618981562898733563718592000524317791625822645781303399757893482735550281424326619153184420273895742505954804578216152194379392053634497841811341054067932781760083744802349864295547165492009079861225392494126951618029627225394488415855706798501529766059407952042045349307747156109610620464936319319872057086255018164700960163073633415166154964564857165988766171985720350306534052654556942401628597159032382203199503238424977055014499128460985355051738681358322720031188902006215225405833282545645339341557361592869679000926470359404689230265173478902040710536599500621337109676408839553831170829809097510258074455503753365155593039642839651995663207241188195729589568150451102932178100170111892184142860533958007795042795866707341046382657970681062508031744867562036883429983413312647153756616410954592483812313870508836790507124737314801239720726455890366979344861649475123685154109523279187077030559221698516429935865952258338122755664854857349312500720115119318899226583696049771103062070399470454214791816772118743039596246100580516073659877760432280399078556791800269506767285629757174878377653405355339200766725239702075699633543678435640572512977604568718144711682799149021894388508035282957428916285534516342478426377597628985295811857509356798716919751409961316595241991828942718341572718566127563818877885305792960095525142859855959031453952828535312747102196958673145852305245581751972843924503718763885700303730931920655206034368477326300053863283481609212833148324569849103375532711120810713197964664428598821910419225772368326780746419871230027750657918172478804086705244318723033748306821751576378854103172708286188722426856383126592140620694932614079568289454467263897643244599107411303333945461360301671029001742046577753125237407642212217817453401965435929324000217571850501037313703973240147810398237895061232037585570545816652909559114419549006258983286092157821858024507431316659014898235820271926977925858500135718728857628704721374571860914698298728339915325215119042941195734975920649173669263342818251470921336411678620922440093025924979828768179500566729065051987325658945620691765476737627389175895951871449747507441827170445863499089278654754762362809588940326776295392546195910017473845608806654642787218139491599057543754304177560317763702777808509570515685677633015868651689980395539621501651219105104634253993467038495022993432151664709891115085573899145580469105352600310515393355979949125508753728156515029053128919156245664987058833896928317297153670918302130689730800996123158564079120784076061254895770210380277720905729388157681861213163758056839188731579715318044122230815588449258924899408719828862618547556146782134309981444365047393800741071592404883374046667257894735590059200356851649348884332591735485732330023356553794141133247034716301210353780654094918714757347727366751594008185358234907558790507828920701306321098759626089916928565260037057402796769101360268668107872566553398996336951669715680798491763688987884701226162213013966264592302187065769994015806231298765806704924913738235642867925514621042858144991973193245910481042810805392345476696946346119068937408223578626100406934104971340095071146295972150181045599928454679029611352944655003885107219736556670196163644000460848927702486395590656687429208428452422365989957055645933731626577336291067587678154925101934935758579453982480600864076635961841125696505484109499985158517716888130171879334180020321706795352769432203929178124491470220511828076837688015166186279018282612097798463654964121505932323193274933744121938238046474887558737528865739468986743664992771089805528697576538110869350249470022301926991074416163157139434745566813063907323069212187702421557999504888637459296703308970202602134172947870865718597648480713384085679474797326150726363029997619057865252196682905265671408126247565861326317377517198201585141126231321847833979535945974750704245739913525556503668331913666531865598439811680531609782841057900582838263245448875286811467328418574595547389012331308383141997615618633604368955438787621499482736506328689804352045673889198924051656630535329386090185176266325620743677060587639727300483321002749577103354267831511624486566504066194873922708021952710858342425914258860269177165087521447645827194300890984508939695453902892936723106262082285765768155429313448639155021597343848266676492206041474362861499747141656927444175695390364796878289585403629618666925346709850630269635265317454596492090321313837304083787611680903855610885881679653974974347543038735648328523518907566514294115710466135472333109566495779993592228226973331750972006280037923751932870787506222857532418897427972291554149743685346653685850311198848854728538528295387003867542107079853273220866604158858743681977696270090754735031519648977278218791786236290006255486568342101714536533080578835502427846291552787573249743077750015804516386720665309745004994725732928747636147107567376699826487404655192559659701837384362310602815316425988399390017038706258940149547687432655537229441411543826432125152167973516440834681262194859897239058274161753708781880302888010051079592680725450230753028405108740733507872398633515006647387374388193101518790903692155850674125700330292763768192416911904317698318357767425427613835254963730278705494105253961705782727933885529970617503164407576740865240227639281589922928489234050513799598631528973037540324595592827351079122193273037009601593906695137979549584028014562327881183132121353978885596313158265398147844802172659430289282152585050058382682868028891319522559807150447705904672883076112545241444953008520838419935120893368930283304609667575925401539805278322659367249858485427273276931993682936962903436946539146719665605054403034687588532481042105434472410103636029869992749635237171632863340743447109749334946623870927385969886356764211899350985354005313985848808929755135740560399186211728424129029908421264121721988125346512716817941354452845734983060438488396616813823194004602363712850516368787357957422009154495321805605521623142758501820886121096024662818383739631759454443213196138184173088855971672307054197199157993745620307911027431854268459909427614038894973102926526609001044619835776726753599214604702441981471263029086281492864512387327106922882036561583052756770538865901031525303716074808613047062424362478156008995827841113677755933331892567038243205609055368214202281694683098713656784711060283511661064336709048761458620269572421274926124952429336637526609873688272132549151248933012660625849401911900325919617908565599842515637252597749206889071722307527495587815785675704372500315885764540274287716919225333543667791254528828963028254223763952220348927113688457620646476755665478148512205342034073939806010264425920785317268818128687717631959077420664437210974559077985664924971104815514061355163319774680747687558072756566338208208177295912179799553418531801075513533488646412521526229656683273671489773063004509129012602286839992536748634572345878587513619170991324739840266759825643407259470287592275854137281961711453169460494346588740000215297024808037629777311874792574701915900028998767738852527851948209786961022580630501689538503162202199815544312266867029572671240601299344633503015073888275101985423139178217134661578611182535879552406302942309120708472471633915608015457981034710633582851473980748139693888928637790763138322182680444625376425837130929218126940679789904859931800790547555074193787643492790045499104735530576509952859553060188010257716643103941160588096484834221272277626077189877158763332529860449823776078952563578214465380315214972459013663786077229083291933661905506150859800624208897439861797437106014468633006450042304640828241805376088783761468081670563206379951484034753376021394872877393025494216581882623798128607374943806665958016979650693362102401326066920035065092059688286237952569981131204406264914251740102037084242027531465850001057190951269130512888092659799176494151124937236243940394882742716294787236185551727733983755231378766342606204411729366851241233002101765872149785824827519538502028060086781005067713310315867377968648260623922563527444743361013158088070702737767541508313641430779308537375952158256475209872642970309782114920505712819058523309551118983222591087403242705468548366713088710237431909223321278315545035036890943507762579512366286209541982675511085249398359671307478314073679118737541306818874222647191545244315600944259766943342736197335607263111149498335372738012713201681526467567197519560977728544649422208134929685105725900522163171572581612912402647784144227034558836560091961336311037914025072752962999207606098708781143051444234425052041215512975444394389212107990563613427972164624206998096817209076421528585561898517988595632211774317230140143056364108733450988346937712814581023746429288541837223054678971831018640126316962450498767224316758922082372605088407453328855175469824830220790608444543561870462498438243551078231795339878239522753203071928738992318522227331584391267978702494411932576450079320739887246199785031445658821016357654144947877463404478416271971862164780368672062187597058101816439014791343816285704309507782518608241664116069121667145922232409535528304388533514667650098456485780205078890152117936105483912327356796929840966562848193879549727177722987091065628399699661237609351399315824204168766089058846449996950926128649066516730165393800145537860355692689592737411149235525926738753358336161219078942847571710967083227522570244226561351753988059716472514192492250114824483372149910485598866638708322406352629674563832722559699549194856153665083070952475526616900095509193645484758299579298903946000739054427747445143369405866287020950171637504688102154906553672809348642519912661248743507883037063481847545461525112932966647640725077160744550561981137927339184359867591918086819399513780245845319814468935912531406138402680782281447788181970839816272600155846339448445123717930950957517697040881971378630288776585160736393634852021641801737297219347431002314570201918256756844886157562970676623156180551749749288659732829185561510471768136778185600500737492564880880008752791642962428429340795652670552335081873061106061076927711724902761434249080802478688496652798403926345367739513548250913467310067743625183474733445461008020986608393715364387552123537430844975335927180393844695257414962958241249322682266570416275082388243516746503608076404052009687002513481798230195789660399078182239995915627173967140988607970878158187103845836230125397180041030634787129493538781372739469921281072345407093013817878410318125711013743993847507073704416455349138611993370239120854842826924520040585718738980462964444698206423699936342524049681481625177795749184484455212268799039454995457717231927646746862819841347051687853202498736247650611606849933198702422826991376315183531363430596771244258035053918817985663398037969029660037754976185316498404846491078963087240324183296693534522505855564076285991807627367096250871253369695142865210561654101780710662653727515700144481638219850344137210985558060557645764837773846736548345841590901937216661269340643021843664209834380845310422890784707283708433333171746017172580921008549908873667752559765723594189916601047579357543284649383241440612175255454513910507829448292152545056907869623058624962408815749738823018702015054317571620525490260485109314505767256190650092366049574302527400843005532627946175970131871853687220946598310681251631071969055223110421969922329031786508160907628047096292482543610397038579989379747522625649350103973904229019431323239602698208500295944172266796841924213603171986778460521233336778977954354447193793812482028655094218548742370542860450599296080827741701633529018949763112568917159830087594993335211367422526397667052804808845634930932583692349444343457829672073594588733623834310509210349220949988526867883869674328055030337328426136349300056918679690889618219447332216907840846766391379324875825547109483558780312713136520569611074152459269087421236595136578008343411340903629189280307246265409162756666063630918009471437572116902512057883243698571565016098951877530086906102993852106659389245642048895673553615351873637675803607532980303415817583199938954438255437695855199955282363504786202070992242323941711892218162817109796794875945178253138486704624242122960979459979252400882564141667357857709958060011267801717783755599083443755867257586727021441778157858984300122949441584979945645181910556465475715287269764286041014527220715084169616355525267453782636047911734989694789986213825641078665412056556713687778147115614680878878750746416812074576146175466734596359724145789318853110224153924868199910294358205440690556408961714406335797032514789100895500206901725361195821477593202670959527377626629758208616955055241682904441739593198030193143636452362365111394230856201054712142234397205009986511605397217689397769512451210575289497934437637239891362616470656984543440490261252345149344148898621188349489454647395001295363686201134443505030307447511365649976907763463932265980202089494872688663339223309021566673985050666828706635492913073047809920567400631094763277629264454889150059138797039763269425775701285100805318491233445326631919332861349859373268634688992379709672767017646451852438629785005415239967475064379909034343211460973583251497930459198400581048614283871549862431685978802357178024406950962729708975028394373534896973425704767279888733450576094659210809914159865726113724314843380979191671374490219971549376582575023281681205276931378172365276138983371048903697535860628853590443615425788138082359945285641414236506040308942063429780845271077505059395902536973284390701840574971001263613377329468082222250837025225245241350856766133017554846998943375193658140412274975810946456035714760243450408395614616694343976657084753040244016263572623778194487364032896447925032016728232038554608852474383935714788813959120934821725323815667915528504338455090915361352595147823693436111144619884153692100613480394419128089477912950793411332161117261887393584858285782027356812115619281767790406734566473562280739668269843338675644651368063044568243973851420689419144629135984560977582819425585612909108330454657272644137247899387547743445539203215080550042612612117202493719605564474582291190172364411246841888693483405382004074800402694582321658822336254225409501788716213211303759780540072117521623249901360290079208485363594958864092979569176754156018288182647738794383560799466995542541189053707656518847498778237880408484931774430927590565599786817009693872389802492948687268234148608952585180866596076099772806875996367456633941846861486491445107134178283605008021095746056201867555034778386753697136515918191380515996657204815530410560998995753855453205591526603004444432227588120533425987476907631513651520468171292773548000384689017045334632609214732437061758695029053955535856143848173164239735152372302913840746823783733676869450467553896960374533030567147544894898256433342588446811820354135737778485112171024533809171358874919249547127242730651544265836923784603236563288667243165433575978720047896385661029262864583521861081305581352556585319856138885503929448957253195217430716473832651255135273330237318852290516457513250960614555085364679727026992473897603347093636329796273281429798975487690969023146856823419944948484408177027493905026781992946802329616087532662081323499726071299682383705750750224156824766940503681562402146015303067569046940263700345737055907453281362214355227923401060536627719974139423187547206291559746532166778816209904659379580136407670232834966475419291333599076606208412043953850688945544317588333472947615639611899309738789381379860351198949526645966129571405299268373012119220296161895398069413020958388648535410679759827757882344221087068804865439998820605027431683758007627493113769111368094359677715080689583196230550333392234685524570343414690220149505495163811240201092793100796425825759578468240722833428036381499048210608764032994960643876657405405101009330533042778736095964543119590177667163055904758441688893652622843981118848003836058332010112433694212008252085562181602509273782464136250190138791009210265154372191755084954994645585229326677049630859203581050428942320908665703585649690390829174504148094012657638937996736196523883936753588138197389738765705951004108582892633928229429286218742503074967091203200902512074856728492327930391307208318407044103027428766105010350348744785711498253934225562780964713685077783147996749100718101673260992466103704723797596109870046606081048987508729275996551979442200810577730995950278055849382421531490245033768958013969582261560872629616388241761904096268997354962235899096964754531880271224559817820924054767412986115309162024271809959739790067677738288070075447695063753364550890575538125418903923173916572119165742626193351099471998232242453892125575199462501954700096872216171406618554076445400086074858365041502508583152158038152565428547186788531505423227760051449193791367774446224217135999037826808361288479942951060327939812177235731030305821626546216606429929930389015276203731172532865322118337723364913270866896492244235228086048878047294743350567102932882178674881828097834602769934661156362531335105142859587329625633586769123938037591901600971476849375702169888771030349455390757298041538666767443495329139003092060426815796185193311817841410400673252635021944315274798232178742304077865838550802764879387950662298862559444360823723497846265120728332759502641608243460470320049379666046526377584320006431326662303498598816903735313410649264334704984717620384345485103394149082444873988281360405495699792633121755583078042129032332049441446118206076704705893470729537379484673017104961659981741994944700721282858703981284554098571060439562488717542174706418966494253410811184848451732084532126551273425515125817513711954864241798191150944630193498946057160359864308833311041159970582523245236194573145591166442293641251247350531261911964182503105385505654645518934686743900926032771157221488396816119967116586416168440283184896893166489692802164644883766495691622649544781676808239587689232346464437803166697720810234402613264418730257540477781164278988180444855817742757490357113809027826611659170401816836050842319393678173912497486791077347130100018267205709530213142506446103224799600687806883550943568142944541153585231903120821309971654451094286183185300763287299741384433663770453900458750717964480766546227912325352879486705429087829556657060030161749194050281536338655822175522755706471123173375102099404716659877670586781893921475368994109699705283897720771133117723751498703034218311597405718876822448619754922897635330764758104950672207084444680463589997989887069556298610309069639305129534690665333506346647165250653115999527666270059676363025444264818281160339712388930622633628232618066838123433316285999070304741345601063140931008063587021391317846728105729284399688828218794813995789945377135521063130642547415652882297486594912602371603214815278449860102982354416039546015891223221759397271332478197123598052538146713958424480796566429642311065878801115479680244401285581111708889371319906393885770729163271147034177150811618069474509377155499352811398600939721516541102435342387820048688070142483020869961002183756073090252816137789685493776762858094898241598000302122732012841618935225498910643982352114575380106504270415200223285688112925899826153837355598626727326532647072379620362942786878816464902222507453335058246997445758799227442681785609900543113883627394266393999715086232066401863417995416920970538344558993897070591894717161292620771025330069494465838088171468826445335281434476776238764825333280700247824996027679157585954112344966835076314395585668271536479832513366216892146570841297522534047935656886541078740982387733640867289051773673601551674273245389014591275036236209938402761092202602530891927113748388870947539551060859699977308100957978780083474272832714005536477140199829399877434372911175612138244072495507137558688610485535992201743725932230089170581531061000912340224514390497584836141755906647984757465702680811233062321618229548797077122164536778288372010366368319568534048466508986896868451233465882462052330666463783768728514585748036143614898037728549117633787864994453484308749986303158437095867503767494651899140468964499436097374859360506680234855742201707820845717091636352599267119340184911017354202514124917827506776006838088025320400791596800154569948642399756508029814608522544802577380269162248215440729866541312438224123607083014158857824611156333550286187869385643396315183792476311590100178555425858937566892466659728547994548078412048019304157449305697830614333890844081776736546647440253200254698287639337029347063379742281289012558328487303238272499611294916300890549938692823228377552449168344569723917262359218137029755933593244391904063471894881269486104461015731726379712340336157184268996098205901080640651340494723961951462371096157272061732413015625611572082156250405093744690560458728819462512717265591762522235645087044218355308494104363975759397748728711140164530812478069566680721730317310570878209036829187703307430428878494920930082723523538910997342838608419836994623520191373014860797183390595242538514911330503249804902756421026382218327688724520358584075560069923988534246997001836757158822028594291366891989981777390049335513238511110928012684040895722775190380868185671401165036502472615428141463973789498056563878649929906241984379401177179148129470695688515767142041825075767999423149542088466338244756260157737446433421986393638955129935059107635062315743862002856203097946943479256934083682831917610487841443461882743633951123353675020274290547480576629129252794759221766145397806006744113508983162479630804007768987999419041694043571637980590405261724044413665139484501036085871025064501808675075347542856977023856719594311111721852864489442730164409717131884286374948797137118585325230895222356620229367566226511398745210233994502891917706138832083457700703929215812371809250112499869647304035347379549790215529591734708316398066057023991255010374324886461020751883361446457994956578565751256243746371135101874276830977442416699602376355811870352818563589469145419925251790410920980184232405824754658707086663236883168706642932817924137163216051326591125422046854699808492834057684907667685295374419720241485199010549944373517004086700875802804484713843079677633719546458827333824512048581639876083109715574303959695684924883250823562135198143871438254217203631027855323139730429057029676505421743647678092709657122469985509949337472136111462377767456815618090358859084288015560950293603477975246488933368100680366874874961061725166504842752556594175615841104369881667227867290649234472816478463183681082248628659077400386473956735412826645213618573793948047753828836236896807005955888358252884919731691620375944936077922568409216313550374741260659437753061719260863169494774525183747477422261011696366044572886131157586679535374996603231709128892195124751741990448300151235560496610705329339864516538560369477604609560311395040719669810359677105759630004464227266682858670343456676966263369995729393443247360410291799126361553866150366242863697697543220087518402117532320544576913428342971119568708442794884566781999747959098205647732162941391997975062472351015630899478046250158437593887712784474063837715032562285325168507109347319861091587877665044713270964719492517046238751821802819328096903632017007899315151847546343021775350913931648136933638744979607775481060592165212942005197575112493767120118340316197418673576584632668049459587640614155111914199026392132872333914864209010907309702638250520177489100924772035649634005339958962023885643249282971295251639662924669339806066188118764544499388933787078300112586947517521216612516637388791885129381149230239253168464628681350304869548276295020473982056185578154750327114328093799853240431398430240963073738976086620421138365552638175235043265851323280606709536771706985892642970063185032543284085455680999845048117590130118046601014897443559844083022151983609196395303717716419916840865034899926909200010795316541104455390976994972758166416771664348612378825820005116075381442304152380547649651219554889173022371741490076478985077098247933533044533532899110248705035301324876027274748473267296297509243897654599068387921675968139362270185966051350187764260928841533363276102972274353030362388525276317421570630933645271890943765704887566463582434073744849920759241905192156955086679500073232824446920431574772640723547507620214950331849294082483048699194166307852121644858914050694681879300939985645397117292218341639031666932544597090138224192746560702984889413465232858809490103378725890165594597677401020279353496033141168303952237999082555884162532334628464813374175636675415114201372730550149112174387006927119894344108782107283182729495441083650899497676291586971323493188733784169463629483321935270956395355293607003329624574629671599991907688908226188723762287509916924244612550398123024860256532068574469558371926989841485848453860860766364751205654291922042462466943066418213502778379711986057323527692948485986956571134692826913212081164637454562628853002734528975216829030861331521846966962376374628814603427622508452447910877594644658188040997466140449990827649222166221764179433739337056020883629134203625522530252626165133487268304190760326939780186313206432683280736792498096766004880569088925888804513794876218144317177347883027881724321573629456374657980715488819876139521179011226416174189070284937288556192599525648850212738222104632454184406748911958858066437885288655112897313504358967548842760802491608205727923061298537798042164574172283493328679248967357115651329315117182414396543878755522851602857249502982364280893928994587381659990672962840652845281981564943732930788432360462791086302154004260699985855062779027311370750920718242887814416256304838785067972588886385246847543557129267382510546364214636932553287178763184030779316072599991790347658167180492765514035418284188219494528782656654872719671246304249858995815484003476583421677898115769038028334687481954793108520451216430902236042445783940077247083654894673775574400454404992886082402355951605130344769565587952828312599364322163412168081695468723821664635847684102453386482000416821295282132822029182070923192198230159737670339182782462314874926771779138566972492232617157565718396616815431310130390175663059026041166283462874814657819577760087545711148786004694882112402083078621701178760752535706074781572374612460174033795208114733485397046465849413320267769865248070299476136587549857550604609922051970966670267720857897010810610274400343741107530380290611646547182241099815206856678855464974387221847809602858953721583960851253980062875995188328296894902537976874727692932845586279166122200599804550861703401944414833962517175930875115986985877634694926188978124044864955837857031271456410133151436167196616671350858977702914666827356427146268632878914333244641207582260458602319232103733118533772294382250627044641765200411800130975064808002346938705583397410322409910053906010039990942503919871441568248057970624376531837575468899562576553234091046380098536020576531939674832189508590877045280155088502653967475304176858031348037107786406860979358399375871627794099414158936262489640836525236519145691310815496961816291953342039075202847343642090112859652676632334988852214567803612998074078230006517405563462953246826639381159717277475428756567040992881863452019627769760275696162993924369597534201117347194760263074155513486770630353199315806229733189587890837720434894660498337254610354620257670635640844844149550331363440300152380983322925034943099264353625114168584032317328548508078432271371841413967382661517586263254604931908170254873627650196662828229244646851811289136057196457782368324195228200780853274124381936799429735410464892127169727211617261128562764686548475790222977404987500846038581910979014027069295676986866361676189525649423019712950265258753675933930326240392907886604092448292867656144187983897711236590146317729599559884907053537473292510010540262704256440826441505591126556899355970988492934134415793846382735171736159177393813557600840292994776578363831386367890122472375899789062105516892701555121898411890922151287245417184605985106260646846709415320368760445044667631476088591649160763881655179153717434702516293061000580179079753805874800604681479865780867422955070599482998539888935628504172828383695946147041083129332485665369371426052292935084299123278063872974927132540490455815469699415066541420758726792850391520851707713475818179745801478918848825777768957536712969754266506765556604441419563864853914106234106754132186187410964659066972176379541555527852315965646679109700764890145063222155598094668389854217663032336380587404753011897640884928671574947629815022586040115414989576858473116014341625187741112294132934652410245686389511004198769159591205502541675388639720970818900492500790821042737544274562200129067961535822402144403544616882730724184575805418466403169608062541270330405155330996364917222289714456120269779139038604852546370024563017556084781738419997888481382476286229400817698636634693828941718907443880613060658616092744996443900660066046166553704427025657918921183986766047551948703071189795950192077033369506062999151254658234567685154728268545614515321855574442215340003196546966020523024699490658847602917320393943143061993604217306867539654842549678592311478902511448965210951146795709123174267600988858063727089458689785588853330074920720333229979734070174868980287037855849305155412815070149285322132643898742993015886356925618228377882364515715765819691001657605916658351551458118271011941364882266697445408039564557997786682857662873529352995710641207162584203929478579134050609908086729371326380806608102559823952448070047519548633368507844509477918309557711502467015252192065722089035092334020735709103594959743434930690539689082456874326883039841033319096800349595368821176133492007231982468350027379032618593909813275276569824822324384170279001281533660159841767379061166056985074816310777752095333443210288659423157981101636585732258863856599320764768946405290521108093461074916206973688153627330402393678821443784963559827331055605480361927825879652534849481026767783506158033722882875787729308227110907098817340785692196528765165440928069481949270956030800103493721616386824331400248738250770604114184637730635547151318637576546764127931156244406453648007694854930932067665642917439254434915319390582580966105293105103355934863786021671289726564722240354726037062399623664846033602966449917439571534170352353482985003035640158729550773274353629784927544654356771245746971293625768072808964526051882800084001593992141307901889236594675220868811418000285949771727493578900380489506114529804075842349322191203984515857250316491324104264806633289128487369377832280547438214832358248201752931938305733367134917578273916429509420023959128625581701220660567290173895917372701008844532698846653766595971548226680171577698818664955826749589696672276560060523903660534057111911921752404027727533733646627835887744981473810112234347480313550242746087044236675218537789291592723549985790468664017382164212001313758710214636639900628359481165856740038572838947074258616304514645083654748452225610340608626943099817800049215949052135782586281083345279608335123922888365681962690651708589974722469627351827753423499794407686184103077459084496813862677713771968202543373356776448043315662436272758361912002859605873662188494023959796796864388399080335361035090007162404359168523653107680288463516213066683787798213528278820866647750011157555099921687675871219363590986922755007730595958411763911174771855679250137876489761877656093840407931384556922707644461894710492117856122341857045942012315779140356576291822037053451805536922469174676629526150862112834141821100691985877374044035475867376995376163725153547510153377351790546898497897244614059272644588294596675567785414514409586696711787894425115457538604382137405288038605109703976319879393951817773512901784528727154329610178960818343757803564457047650012859762621329084730861684712085100536522043642158070733532071620662595945801899115111779012126539399640043632488678923397852340213497825218168350532641722649737358463240957453293323607078722986494002325110328128242601029803784770804016483255117956872702839891102091891548066881230098238204202061795477847777913092571470526987169305688123476015791041219855205016718370637013495809322009926985092661933242986531789091375663565197066365033391564661236022014682270997151398924416489690013110022983187268307220667030390811789487609751698111575196128706992703525560602391664382941496859231593254813278025188772428583627396468756357668339982386454230505026301353037373231525147071373577547188746213880359566832674409016134224451407354915095699063976823075234720315880613323703869526695646572033846277328949423605696721564606495020100959035235371214828515580897806855524516855932844200339483378402676102793518319728242140841862758989518376810722337160018484084020146071928707465951843248910686244680467881474017428031006784642106023215345582587834104068093662330726561025328943734900663410998393263850589440700189537436147293732658601362327256540097620474019056144821664509762183634760840196082436176977721469122765100670495026538695344119137724496773481447656332984545196630083905557865694332472205704449283083179546861983717468904842912994788811441012470640405202159053862737374447991774257589712138958211391404058538447742748277610508700731967347549125871178913334157630209775443759904071404894752047000136123221920520586264225785757634127447726953002667104808378376941263724083927261521277259548556910319633825671742589740751954535212100041236740508359696661496540955919245479424896060273918423270743306793899494071892381961461697529212286537934886846454575180945483280712124124346798412084370438861045325490979077358895443461866997191041373508250959462825000133359275288981302049388719044417981029675292136966028776062600927146808052276603541607667878378947367492622812551133544865635782228975790211868163562875130595134912259112580763846859978075003246060922292329298643325669474821991173564332034583235830843677662066808044278781732224047793723082366101738605141186082773462202974174899954482344148382107593167210058258250795336931946400742699453658281854159818359767719880884926754726886194297527204336368887288109321535692960320025354918786070003653182917797077811248399111370504058523289994795211690714680443557536237568847781945603215692771065321194530668594818257331366641358304992605689954719714676085491913145376145666355521604658336698340096553584085557677887187490087176541298993616843799961209632766874746252510842241202521209512916237836601568596203631886662597211941304034027944795922125871100874317536908232820777764023054670364944001409104013420131591406797481871783772037258298362527398492772976517976752710346174993701501726226573056374881896795207489508980907990729991031477204753455328469565920328705318783657186981531175194208181146274566475526494020104262386477843961258819353161412439219045813154867382929565062693689524325381630649734921711287105530281244832592322497527445678810660520416669859568075498739546904869456715233863616350524667903233087717151574292772759556236850662270861080938550314900118812966411678923356566774757826850225069551037661267713042240468474488986254044606166081071421894308785509460735219070165602534116494255393990148043991888013328858400079365345907701247737488434804604434153428123666271408474513326807097136170581719810580579670842988649326898777394664928053431442652893256928633131010180799161357500722759210567478665912997717966691684956779961036090995071197238308877904218882682902642401003039126408322760354011749096511462831061026606183565420845877396268725550720903332817334161087926076956520990978405066058139665827401258625659938267051641225290470896647330774426159571621828204188693500912530674906473408357587877743171567476869432691467919452264021470645651305072319129218942270771631641285276507403763424662743806615621258730763241647005323976750724393761741774323582128485742231819823148602166151571566492544385599709547157530900516321053188509642452897567669591866925231882079516076762756853898828043178519794094773530219979097464177115389063311003856475496413843300297855124202937568527253802704520577304346285218968665472738498824527692660169797982725820009538903231816882886860158942614904172288194325326289727988900523147018655499563157163387336135387172823509720083872736606439557042263001553553132768190012646854547579583844570583357141659464219344694662484272817236879663768659081680615128601694770657309313081097614395998629584855500148629842490676285262673172966198466122956472052795422768988288877830177578259121654349645636905878473433811915882975831141110954687121703055968191690791284449196531354855427879467547515977769076986893652532929070939955879944969815500134608598951678856475918872384541739928243543009921032053431442055858474400353781544253242051851717300487624683266687253274974329310510690533307889197977947959899605756076903304052973501001070781505991782229486857181592644863209768909295900268289598693763180318363594380641839093455241017445812062612826819679188574634806196181047367703904359518337748465727266938178493449059581977962006965357736101177697089926157161564643781944351330927351455758735146757291849933486342660328865206323412957178582807433158760405132823969754315722220969138771358174853606248176891810533431377242821932880559115402569981852577699310713906714336670771579791524080468983749871322585584654710537973307599261738601464200770800849025230658939996406019833957744600246737260711602214198190772908814150904318647714726557622084977135848043960813188349914692075014229751052011596010809877512291836339738415542511217275285744172702326488439916917771885143887553603896851394912457974622691570624820140629860719070359695756458214258792490223043358441850207281906428799051020965594055867656609056701523335466918859095559075204780455613012748408993500869337557464552794865256511270512354160092642348699410540364567551238301629376729877741188784329282725511034173241969858912027441570475747360167072769143961379819614075933667958190777317383567655194447065807455944390244759236021011226597475803899563535283120696034261028904426138395852597435172010238013614972208610272023259823873513132691365958046165831756050868801988326426381441643596588582966907331766200683971312680787273123823795541276886636583857663547783282517048421122229827761820020227200540866100330180809776704687570996412626351687267883560299931559825077009211315975296288601335419412263497302334322303093501277073614408616582646337296538632007100159621530371336776782669932102382272441709882904147555256884253280039446340876496123889827436314656070021481864437931062346498756062247400167461099689532292957249229800138872671326228679573464217051929111029103904811677905893974302164758124723920283768853500492080187995653244079943854440528951887638929353390199391984538617301044437062194691202377888264899717757613252414041314304004935062419125293872965260751172432164116962491889616440388483617615989790766084735815860078556671274401522459207594065756811125558240319444258646790609182051511909341246824157231484519996075119720710970799252149126398799531433212373153998741720579916677936675852689189501588290971902323619153554458158908803804339401106004234350143475629158961568973730645430520010558921524771882919295843797483082303936053567525173954031054714016837987469003431190193807298516430162624651153611744377596736240736636980967519304500810585544452023839630703269779729889770987648777715700650586404549645828766605586858920672762360855659594766984867093974767932807956417134663510697105982041903117877763112788065513939719097482675406192708066928033348578030488348681254203214903350938495607154490888770679604169169797974368572329651274790403166654045056115759613122614325820001667478202958114569241362181808514677262262123578855273693160795294755520751975926040569173994694030028796676892664690936567255732050557879601833287755758581099348208187582912706106250486599432615157338374986681099584316247344616609694112513605683456488297740418907071750571632847764778676833888772341678608353538948828634997006262933298679710911981128939034991836370182591190737666423657089810232518163792895356677555738829875944456571432958527349956650447793030321037680671106766146843791558649148642938116441551439683988677254152988698298532238076618814987493501635920181969847189367833844853742610203247987241188499667804808263843958939526190668516273015601135690617964496019874007795531141718650939769261490886999907758028944104069988101984884511885806063216705029418820522834533068371512934665251912065508805048237147085202413358774342781375092529882029471592209864424762249454411228646290490204444610475184040740852068741578658872998324379755792153019817185774711200198379725462201587823342094814054938110701641546443589428427137202141477265480725502108118767506237272974974459988803205437865052758622528970313038518380298751525020917124295471424121720181042998398969710641699587439186424636366573581862371603512574058961097605549100689441117303447195309292669408125202777630173799492495649039925618730201611786106166882612261921827852344628878661794543990160225355017011654595311248365461149783497125943383016081262149581622079034091229001824827969878170863088202863483164936607865148180517037024056613892181919268357937082549793028178152034136354048579878139803394637685751271865525736898628625096058328105234364297594849225525935054324107275131417660966297693447757552391940808038084194620288209885261750263166502830022691477298742813197296608478029939154392335785855996761049292873259570503195215659584702287211203154209253406256098591053888498143636050033844619865359212006044797559668104623227482637374435261727569214591164581219730235538716565228982746032305987179969448883831159084926707577683500729119778072425757560872259534956106579564738190185991857522876888841306325032692288040623162464988401024319284476080614703541460314193953596213302377148484871519772454741548246810321038030822238277827288633350237774670114495536011564782615121534134924586433457986061107943480952981988629495008662163106619028734480757010792891797879918722141121055851075809882233272384339074465050938427447933564915739830064873047970660963207120106434531910308689798816599054171242986658272886118055979249791501200355328512550425717592666024525217501830313024274939789648668855188531859169019757180838447192792639018467964948689696305225558203016027889634370543433865827191224358218466311143804303702517543738167370376937984899651439456223988407669818955451608617678289552469901779124924237579610383624563526091125926796240615982679722494478855229504474475191719546366879952905738075062815669025451174379311709742447239241331955489478861630437352439099373029979832059865114873648269264473796812724982887411491106442118931540894726651974459451109348663353486511934787101834384479175209796932428924754402050932319587517045930764161137779396730952353905448149488088139979594822957634463210532859357582390682223448774254064608615576723824679390130829381223596703417832148629341497266012231155741182579167027496609294372680709390273764344254506129884749067456052708975821159166625074634565087515269367472246164163978613550777879817982741380124676765079206940129312828606480650409163357338821455370313114789627475889397900704016526810666216172888428348161535125332450049745045615413519085528879956423259061836017694633910141121127687161544544465990487964759417795903478321916661035713742837165400057675170227050755049402255631775538774315279867329101246623486695780772578459482116813073789687375758156397731521961900381946058156629551855040565537733380300733799914514528241715849334278140425833483773028606950871447317079408736767814998148475325470846302466440047701522877044044014476311090685324330897151965215280971429638696213745059558177245118838263565734624929845276848136930521159935351174304679701250011680725364849117297082612169619904723470089661333030562246245040907878911917259621969932740402036677792474364293369388874344234144857972686461771381249884173160506914710007197575023964952368662856382303681681960800752132384411100464516976523847345727111513398694166144862173176451483457943080076531601020976392131809883822453030864439101061124308957313301069337556021341632429351441167658291903773116761302660132399975209711499445747847682402111976710133875463626309107311786622848554438718215104911325519828815621732511127985198667839354423653010230925415695292331187996933273869004537127040487510141591333565719189066479067660165103055892907765244628986722605143488058556236325814021289949124132178244276132693352942999917244688604884298144515926193512822680662229004024980740466230783536746332149209421241360706440045670746762357216410802777622835815011453541446105721662436955692208977920775272547754548148407790696719126824106259615184007841105373220800218277390183859474346053588667215746655061890864548716681113398864522246510211691819501985017162165870023400090729135339016949448462486628104242973338769317171076210253568095117354612985403487908441497374438062318973640817242291928656487626902856088131026734732949649472851692163777912151169053566748053295654523334857249096184220834119602953283124482693674937403916587794330361452808853748176352205679698716582673434204811482746641708011509923536785102897974084252869561128099104002788513410692792450619232929259475586669510926933929038738705724658108606265477891126087021066889159214141111872521734085434547830003426666522045325862281533954025838039556355596696194402168357426168244476727750641730724710669168098749594302650936423382444798164359855192440603228769386936273365368348001095242370579711589488102355340091674764430761464218727051343636102092883100053102499535098281779384814599685889741945716702120758778706778882499196174708554751024117372735101990553516594494387073728379144974841884753182513958955526894684040787384561872623706407143540068633310035774631230873840998559072618327723310366950233978981011890990691274335879700796827507619703923440000708544737112662989957937839001551791671993809535987449302676154495695364653947984988157339356667450053314283738500326497172086461310307927805296317625639460523513326819432912272633761242202407969318854717453515136032570982135723891794714151402992195656474343612918092850869188422787530601034187882696680513347003151388919471330076098179222648559564498900979295417707284751241737776603707818727245602880785370846220078819591539357724262359377821653098550564518044827021983711942348841092994160715317200013971164292344335469908777495809356738806264087527153518026171020287279973058090032382776319225115451956880654773721502145505187688394124470956387404574428117381054888470925897337334551190044903866747736408861334882217500224632223377396284862308097813318180094794656800986171539488651521215503724111411122174120320426894191226694407741176334891739934965733160080072558476932868837645048002113241691530008927888263327526800720504366157124970633442712822913323555363291545942705281978434383791991038397939979899083974279813074799966187809521121023638046217431091287098420547011091655773773039755460327973905726903068087544441177358602712608527679889798305377640839443683680016963480252678206603193078172456326282782352911211508753102607935336786045650734265732666240456499909477273718752893251714127035278780640986067958345839107081751130427091274858138260558932169948074926179469087789468157193827098343790119903162072781296516608919721051831917603609728877818083378401307099258163066583903829371078304748533272800833142897476383091842304734915362324755502149771932738840844481692311977543559376982783960635894797456129465313013971337587777816557136760112699874178743074212752479041172955179118677533743713848364593531514785868640655074285463823440336615094102410892275601847821720141445696182134820721347390575867262127408279767542535196850823737676935764874495702082258192059960341786413232258013627205126853897017767244395026634807416713323568169121342183036790373619989765154653695779652990659208402918694946604029164508145417444825089413261899775944279319978939234436724207011976527009703791065339457045253359709552741273826527774864769274437220795683942251056021278724845428877473371516064299792385521772552754233919628208676153276596589793473600303437710538639524890163831914990849272245198968712165557706338986469960756477145865123511157415552935147726656446799866813977221049548953043085490938613056116171680226472257250462782637785457459307925455709842114650414048512646262179818763829921474343876601229177534676137052737963508684356385325475738256192398249211948116117912180448890933756020311737004918092883183895498255564298591779414995470843385950604298045031049827749964435004060653943081613676144739607033955612730786234597221897840389596348295464245950920097295821227856764450740801463645206586603152124607709781946169568859686356738166577596518650964595999678538331529846864837058620287198637011189907019933075343570934382186316272311975080549933011593111292254518375341214987155163099148036011106610371634677258574190363563423340761606065066970934369391819695194261905897863161972452083887827512607729286377149825189986807466109613752148440383197652843154389938072853481370140750905400932124504603887469117780421174701575201188838668528883672550086969138291307736942193098677468460348016906213672212808437777264554316742130773105798779786821768613873600751350118041628770341758565079426673573464572302062213738307144569163813821111149264221368691079115358354633888773644197284135760068955690717560935377267501858352827292867739217236996664639248332361355684303730983531230097337707489636909887093048692216530797216239383019188471791557460078174160923818381944888067129358747795001861937414098700483992889118843230677806693590956700573961848100058000965578317681898584653141284816465679667524019234755574501618069409278353090202639765914441730052528886537819673029385323370757416504393129710051328098339288530680940760154140759512592126279963927168518540804427757211874921195708710750167896804231961160034125837410262293875514907103952948023765297825056553016088276365233058559857828071473653473822605811497508647425004687524672443583413452149618999970249937045810461761666243535088953732921202450486235998837320585554877287910803035589461846148420810952457539122505454505414813961005206721300472196023544860830943201774125631975883413860558506173062595536142856950263376369004876907011310881364252336525449263244931663033021521137576515092360585065649056157121789637370807091935624712564590998537273119048158819407929462171693016864654968758177820114176170973404817649246047072626188260229803327893965918410707416584466776100611554311049700741508251518634370532135697371907495941978935407569539227387774821934209273487970045212526023231492558231216567244954325962548306929718184990989035920872864828078698053412796148769413113598896256970079641218572214851629046415475670942850734231118570722979752666124808457866999890147766770374503055679398122110607533461830083477429486899039728779859515660425379373245274480720702646666522183594277154522134266328803058593515380677637544625869366570139789167520428250291608515260298357517860348788816361713688270222769615209061051890929627551553400964395450527208185737580289379964711331083105955432788997220274719942014511506795204262004893266662774704945314780431531560985526836164439488070976945847204668979840129862397820712812537778096143777672181976094977092100155455379073631950855744500064875642699856443673826361925347412471685230557508465172301997944762258516844464156234174518870083946765873881123749418313089026932844719699079262804243975751591728866277835794984438942068129087877832324511590321514583930819977703585113895559260359025630036170517725289486336416082823464046269009925336267049824352271583906459573306369252250874140390040466060981394828780450993292201150956706477227907825021443025333542068008834815708071314707693808576114214426755156499655804592575059109130969218400924511091481158042826363154985826220418041055409638874566472842930742909810285831201474592402854815400644849479063283836434727193710957262133673680116106140652883669649873117743125656749892710705967828213860466357577747127603894766977605048063655729921660418312751210743240569592452700338860631679959168463595663427685631725235189807095774766279958750722842943939600139113228370595764374090594708021240731854926465386695313841842996862481373405493401646945555380553727093612470150065401102039671558288181631309822656791955636985614372527744745834607318792694580005735925906151294090822376133969265615910429744419876920524803964534342562569651666743851548931244948150618467905657263170452419990695069653529503667973323018729994603988983344747711834789091077158377733301820928741116448481112203184746213590666023185580869575126260484957283460785747129497573847824112123199071310707252867794449701820972773260296199392840365374675126415374823770698845330158066135646931086930813719934852566249502068042564479404931672392232063610499949593699109900292692099711721416907923223416787794884590563310028932465801370660686823880154017065849047452401806415085510644309803742383265192862296691693584052042875475592141321178796000233809779167441969165698553768955663407266141005602748598999796550087370469275599366673837839755655936662674655066429181688964870487200664057050945423138995644482819540230391313559936643055248486406654117333492046090857114239139854961503313131666207120180662312828336058328616992021542506540829972275321680318489404228606004062224675049346759695583354856405871908632977614757911539757298153172775057192945281886011545892824656604883397075520646715290106149408188970657995398490519195002016527140774658909879096868219247558822807203335638413512017923313027138496915044529762146693299379937598388713780827537142863761873840638483539979167954294060153140092775944780649756008866837700333989407816276059810680858070435028518654271823120216244453673802682431730982594103999557444867244476744074702103956628160380603710806149304976243404232964260682259099125833670465277256388472078686203384850325122011085752135387968976512702460811065631746431138045641098272481916171007765467812816017970425337014309368440495311328554381265397311915164913884793318358863563295473627593987750837151180698807555266175068220395692927806007043716929012512572556654559697549180941111738468544621252528787256180594872833511425370246843301156852073679930836097785588226989553877790416236247531380387229221483198325345985317719320063807602024043027421187533559502049721971496035711093969131970459261508827783591154834394515168783102056290758527750134562937495802309205597805636798844975882666584415863983582823355018482978241450314831058943095000728918086161452118097777526094377407110806673584626917272198234754002066258097312008767002409557261374603491042954935166401053650666529116264995977440157859103315676181745845828308649855474384156288421414004117797736760277398673904714149833038931862393572614925244646182681047949499582124814358094663504404745494740499598048391294379652585434508761786053232248403395373307339192755060374368216365923893044339470044947555990825066482636498855707703221277624597482604883869751457180913989501946555271443088308492791686517349242603245718283563807623975946781361401382504225867455146675146155088243599632315299299546909271335134607121482964312161655385967684719981828462674117456156959348654780108914013175141728248672209347715431980449128763169890814878739038441071930730221888964987945214363609695743088096282853345777507456016227495579029124972680612329091202939046634536236627573712102206970104807656100334822294527920743214075554905450313061178135132777098731118530921161742781296665868587175420363384925116773791269247264314289729492073579345260320012870623865348933421444927692499026625831931290253424896769229746919521661860415144185737298929459842190169944598925257622678897075473576025388173320049819444095230308110754994015294413673666257010058494590249043666814436858071393000799443266356843158190655315400824987833126484517062386045791347609867544006056496101752868504989882814072135488561168686643190616310659897734373100026001449571656579914612475149065350379954491544328480319785190282796868690317580553274882825370066473966812884617012108979543778151137958485732942394390939086770031219972546937337142230924500679096414601737006604788430060920795942041012604071954003593103181465973398338449248197264358055184995516566684727896347432557694696570138871282427347074738276930420093884530548827864968830525817093313605628918053104595772952071643045209442252542025395817293330465018826422914165068232365008574333629770786591485735435463082268769155017481289866327067663058103002561860150005667071276283079912107041943158865762984910392332088420007106670380094974193068947449872725228510108425105429431263198905510166661085038355786475998894968577156462655815624119427007888586572362601388747561384082290845010271248067321245123403946733124625936975082289688585228028604967993820201996985676503499353708337120087609197904075296718003172574180390813959881883637898598397308606459452495452072190662192829200752835230674281708751475808372046026329092843292399193742352926635543274708987842781695008758084172803469339773340079471314923206120840487965147907323158106892360665756067942656622620913417134116483324867373223233814138471053597700607202125485968242781442525149336607151606772803768683538057705680949980628539110828042333500318690835210251364171795558669539267872890280911369836070171451061169380540823545707792566225987071912660852956140568139729270086548024604745387757331021116439772568830108406412280526998679569309959086291893675175233327682597680179499891678866160236428576631110530889056298911420244618644391161319941498099519117238650373199214740633939162328982596723318882389855548660164710764649089198057105106443177973807700521468609731403133713211214842636021400297646941788707171305981663407314505030869038594648114935367957019481632905419977421877580725435808592623376669734237601031625218165059630216848278782056294164172814311178198646493663403813566159217081444829687572627418985121795927401056627667663373135343305485587576152689033621462468063344364910180726145352508082243724844899773568307717041364995227883727603727075548870279948294711713382447385598297509908339129025970401678066484845470008053115334597370733077247042303260484588287005579205612176134149740939947882602792194573503539302336962228234632000149333410351653742127214214689815947422424767234696292243916621967683237860395107019028579822272406457297731626152079798345384538751292980812514576568022893028676088535874854277726127026521390547716275537881162698076211196483754491670051681356471763912683604156354150630181907435450176177495837404662929443733940095703917001634559588216249078857790638457987690169411402432947014002572861497909767259981096134534110005926986025588721803300131010062303818364381364217403365428353691320286671106141649898402427217491937700411866104631848142181206158701976282402555274463522380267354386264870714043338506849279295809415247744764034983725387064132323225209300313147105501498685604570354551119115786768067401622601453821251880631226656521236486104876497104076001919951311708362294003401455943930814932063312598606001194784519772522368352478059757705566354911537158547121138731951356379648952966933833809785683393897754667526145917262120467330493085614752604406270865646670483019321985295650620853304400611022108536791670576437193077576530792491813202637238253510002871827952204407153022626952278958159764346041505264384084187159606582815454026097553014586387435744736755696948557560165398666243959893206322085933289541050945078891521865753829444599004580823923228870377717978741222521524359928055145053760930005399311517739470883260000730963336662832459733788489629799246695962694583556225305024141673762444077461017412463001384215701975938544821400662350209690510264309691031192261387269819198522988647938537816553038494996534386619389430731736739707437118041535838448742080888180953496475947770158881343846249985299446642013360453633538812670641740289545435166250492655064586385235708494000772229298545038547695073427390910761277684440500552454950122491611790797788664142580548027566461706092867012793042705870697360027464937098392161569682211597864060170856778492195466049375900270842514536695234240710937911923820339428043890104076548049219784388009633400407393310104453141787090664336035839212521324145973027378295165615254264170806825241241574073184516279400742596525122508623982053853759052190943977393559954001404439559505805742567841179757846693336494995661480456090573567052849856846148373983925426310133386971978111353380734429149415741361455727052585008120090848337135761582800309684359542219623345088684258882217065326636492532833257998023468829934213422548799329181385309121490167451021523777885830068532911763904824533646365411581158807300481063789472502061422619547680803550445363518746487780585026222360411075852547394334427757859875518341367043632783174754086950135928388242214455039511402206124978458621593123851766920381337137527654641025217456493675238730958925195449967138653575570749368292610208181041684253959423865029242226802233324011438865682706651739315611134760018315582667776085271146837509453829026975117717496342112006756197922621869511340851015755496306452766722962545687491306432612808881463081154578972850338191996061509684068531824450137805439236221008604623863063033333980248529381983431925783831342871978280806705211585311012551503975260003811713499749797493234989055156425420210117476640669551372765555093318211823915099881138030582377747941868517133941250224438925801586348499799938231478414745829763496454978703003446183299486691959863316483029363845293173278884898563619693788092696853199976625887632896428604472673158003115479640078854859040316005256570242358341665308813520617401726064879969687722396439027410349790071275435336332907858543812167029799953364200430627902008895562677366824415325404367319203274690509859881182472359768011321722743175015200116959577991347495205294233524105506227389456900162422068491697872415983166256027973506526408896400813192639669408389457995498263476591362115368509452865097094515852164035349620637800237882298284481598678352556350471601056826178885564372844830617922073915064443851966617945986050601126191075310564189997215338643428038643350962256136434783078178815615652634018792395720396373148442244797347588258022736694092069397583417252639050601490068547621361659334344065418017591917653730050331192476133889893881515515225337940701110811588358869037292296313189923770871385564748926965294189989252869009982031436241483070827182641011430488373650902406389399059282392633964946833197954914731832637261935798585271900042256104067837580269553938732586866073269437196824096789630622930820500100903334425095950944430352271930575315873586492321142524786782013989837183757420986089697293389443492346074953634029610089528183459638037384981700166277321496565535723832553864081941337202488347312859190570836874671552148056173404066561501584781779206701992611357928851149779937428763978447837090199808650790062054644080777534971885626711042124065373204233737734620660832287562437133740999976043745628256987499225413477379108803317373214230388471220145614273734903915637193291350237227398229213087321101097512472823561952064831244355773382530174608083795588027832562362443843695438020114874753205218939445308642385157196487167053340471068773284395866884864348313894742971953348420046193332117218722770747455718908378792260113517881611436731380728125023164706815407030496745169078325593278866025031911011453534536564866693768971021647621126352241449592962593266789004704483274642527785496188448660921433490812700927814774730446069977987509519456384733385347499807880932219796106367368427434376363801255713129561590908219723603839493929515777121858019809823313073626075126678384244157410261505191651235990810684825795604462362356915506173563587432866185565502190742955344688321596137346609193058500505610021796563527318286249431566986265558168058774833793818958018844371560581773981011528444500321005531635961664339068129185437945852525975798301748539114810842559167848769948647102184736063539703725045968397857639738426999401046503149644976678860785158085494705843200577002265244686431849492670119885491122223585588533851318564951464764098733058236888144871646020360795219002198416244803762244384291561645526824178677380602345629633570244456834502233997240880303026772391715714862148062420233178248810307625062250450813857343483642129714695454540385709672981469711451380033034121782968630262565402613916394201730201698338116534421139024765142421549930851343762526940422374869775761473325855036210972676837276485389908951507669421111123535702623067952238661222231640632260667583502344837137926986449973411705311518792804132333346585844315802115625459673168295711790762702317695333894466727628559406056451012398744781379045540004154341898375949880032387487710257642098192765360338834948927209904034934590778729276383351799556567485916082195328517535168898155690946318719976600376875810889771505116870898739558188077095803288224486625210210451903377039486372964334671087715253497179687673133610982752581517860259375328314950807951535776234641330888734650616384392222422513435923023120635822950060085240206502823504076339433503363923619540118742518337532009915185685781604261204690551511392423450844371372542717710119191104276180123381594467334650224524849141474886302718874367215877244717284319852434736820012577338865208358676420067958310254400276646447864116966752925451081858585204174368605748873467589856606185726143585828278186863131896913514083333186138187761726827427740886798178765182174362506560556261369892366368951658237270358540284413074011872427654979834977922119505223857943523771015127776287971356250530591693680684036256872971901980737086248843669920501844472345117265513564513743324131626066399596246241825029497293458044456879377252460234139482257388963978107785168533651639586398191588576243683745938255231234712074796270462271696600701651088655065567620359317557674250783083125214900331850873771949339437639227583766280921381531028824778427616755871558375749911329171810677284541023811368816946515643160361068559847590824161816797505032749803578599622135666726837443164744622038101704489101632915169086152707103287612394462412628097001435289419237517692760607172835396843979076622744183130275409300993457979918380217619674251321378487577668377923772551674766862548855945088357044637991717153388640340192513047793711247300349551741316987050350836716703372651238558662262720145329851719895184699240793905303900592051784578152111578271076302865970304260656752441392827610895864621109311735935691985628608940450425380859674679963568429038008622423282660361337512792343966041521118104219129755391343636857306765213053317062925822755741515475114639222560410873751311427986330887222471745111988977392382150220074987387800362295260428047242426844797210702499998468987782412963019672886282650345571291771142559650351799628342138026025992642128558809266042330900200483002687731104512396754263021076134309994607918129077062240390865028766474583264330180721764080661402278786990051489241293212600734257116466936981129436115190944039408359178074999902874877390032396239791692444229909815265105186659788417320094231012648120717277043370292359870415635757902618333384157356395819002096653337806096710445684536685977637182764430136598279007622105415593699936842798817125254493501390889913919454544371860803985230356671707658765685894436079555327218132689896992096850276178553356394388639153266936094458015276609726040708028180377272741900538734133945827827336106720028536911470242004926477381446148347997790145344848482592612101848848409153076449961311443271695253147374935204646950743051941158257282955140901553681761885100637371468169051022759645675891320699214243220477685814058717357758951821637847994967254053417116232855835534999601288112718793489553459912562812247664100714452761625089933347069421422439826152472442103023616097831577347255571517660802323070683950028670466132611860545514180903811931464342582784066137845682261992655091842384612228253253520547775986817231413710131570274288114290782774380638105337433131804981835343281915679120159805609605070583164736663552634352245056338210125524065433347755202929241359666501064645919765145110846592896929413790034156009515646894495214331495532275410547428411741839007083759547181572940683683681975430043214840087396753339864266260312441353327085875786522660707513066232473472700993412042521994226529536456347470650187641295437111925327399894299685379038793527093854053057443790090690431549267902724824258924314077831114722369909427193023287556158704433547083843895188968281349781393595599565107011209638060170444972644714378449890764035125936065471269092220132377608369452933245130441855935995170817023984617304504158376796021941902536833371869573896878486384391744911470582861303529870684537434952999215979052656183928260132311738564625911971207242387833414681993669597970788203988611361282919128109337745870079580291315580948543114148636089596808427250713014890164084826628345102031304507770798337184222884913796307566064837514269464594633156513349094900431169631372476673574935748950553865081128417680242008126423586382485740242265900476390981523958360600643089175905476309400665012225028446744309262941072386545279770569897943492570059482824291812596558284221440324867977386484999063546558784641959354757978441320156408365316235982246848500530003177635847771707570981213519512299421397025493205405771296954502819809208426499604207994995718701648197293823945633671948221417070797623819031433779866951667318654592150460863129196467658823196761995886239289152304611084225364524991134886675295307006132479395328419333164546941507852648721094285835605742132646382516020505870591805210220363765978689140682619772601195139208610134536608665780576665323528885268632333360877332416114601825176940460734709250142175529123549693209887762003406606613538704414057894793539026778744117343776945431614571944566498671809708891130671552477031854695089309009251736118113842014408703009763580586242033103535546826201097893139122857951783428147131015195851773528916029300489484953787193294563009104604191250717237153729321345489323113535756374312349872374008638855158342662996933599193156548767694379435550268538983407812466916505846341264755680543607193054708346275066316840902926757617921724872043654330843418662867519955715038090163126334331343115728401641785461454659852748220439224607222661169123794273858803130503984685750307542407388138343412911110854347824808501611114169180373726701681994519270015039126086211423815208915009249155831939651619455466369533431365462375918616708824784724590456448343979843991399009608630628808339644062628841550653543751081926704659616792520363032488960502049684324166351398518671813510673395109488661066992123607071375166248685570491312286189442844019478916911524088698326487657729956935739899915726949631137878099799883565832412154356432984119512396373822849000339389374749432753467038449741620239686917148817045226693147006471173937516871943729764245990771615924285760653950730513195182260689484839950713775695384313237762848548131052175606641228485166581365596407896907375473071075942463845196112571572841449988034103166227672973767630901618658327309892214640726378406846680972421496651183699391781663826544225532529627566746477182042658783115830448775235085727061065469843709524644123882977145981628181850758922109646715465829232179606400192083187325960298137532734815809926076040562417492675994830040770255304036765980499000149627399175958153520890960174196618745615079371783058533180840191590445842389214247383945516113577247842104130329376582426040794835308604295153766496831834266345441328733812252564310667280318804752361920195047491434229537560605438484997671853077660334878418753604870884868003935505486502353251639173094419404246509563561912824088900699149381690962390418034934139824016879338248117788092326167908810978187637100101295774774196210109020664687174795745945361978307267348382628939311320065146644590598897022428447840252892635298486521233395549457193904839881427190613755029968161832650660351664685858589454407749882068302883079211798827914338352484882951800582596424391535206343231023304014707884953152072724477433208364953181795971000632443942290844420379799528075850530602077402031722972002003215800900411835318731088834356638163165494390581568100455109995303945158687205536487057295384751138444901683566417082663207662174797216609500100983289899727464164105958252328330017840129586958508851938298859212587474096872763882628801850408895890734808750017638108052025250992234855477969898123221799645268277818293881318041946686950378923927828248861982717711081298563377667173029183235171543245371929897277671345709007132847522088058795261731571276456206404523171023259296658244222046799872511373188445556420322966656597950841727426393150860292368952933162248315334815796017368174951769232060787587156377219458940297927164905923307707784879830216701409082559310709987167052410487614803709117125892780671204264410457049720987692070760400558314349632699127758879671369523427399478749907900419054326419310470965306180751955188822607764237586376130157990983715389498855875269374606452937099780897621022344158446084471012257548421351888474193681341250330695825758966226208914082975311298810842935953269133773233305541993949194618596389266443072395362877329209064288283792447557054485110402524162491862443406311581268808171910988201770261076508698761652926715246157739688058624751194426867345480401907902367439948311794464700614073210237023183484236092290097940130485938868399340741960001854690039292757902434191460974604105114424038213401336651276095312861874897769360483690997452438661779202629518502201352460315306671832073000297228404712597864729469513070278307873034981819144890890156388934393531230794956370187987850729362762982844178057384185237927616144205708668157250658325483426724833623938875023474447952307609063501651927006051088752022839189619473663512112718924786368246565323560472426645530066281479894256138659085515785892171002415322476657439011102627026854137250098451483637667596209940296146245010606314464691619015861798330535444017110091437414952747128801431766442341752345726111757401638568209814356401319979867104975389957405311622678644652573653082879762333838862064255864962508012888322252222990472532236988138088298523095660000701634549028171280254651452510049306469908154681153699589632039404788793494324709965251392709266755836289452385789724071003271862864432449181766629974263328909749449170929721249911128903936923900757759722375308812520023366959355774357845058505721739202430653017007439279307688974987460883623345259115910342604000454298390067161295261082659958060374138607161935422618829584060718218278559816965295251033197537655483563674743098431602217877605703235057830270494683649207665426988319391762347268578269432588053006996299891641709144589383215038882699751924619499661277240411746423105837980127803066493812033381518700675882504141376700849405501475219159363046172157034688839015309479157975775526414522763854568701206032195831095725828563284855097570389898398448726644266942889604073256528969234745568038562466871173233993521079852657841387137527169800311200143888158022447749832822019363757308103507641612823204909282114251739456004240977237074675636568745134137528101495082762054105820637355970058049921146765190810151816609985315160720410507698327661518173666241871722272633519702947103110549080352111849488379928637379314703199088280852707839373189070718011400385413981526428558167044716673488579467388960534026286156400982566610478860935456777884429320627245482832143545812240739113515896898389358267884276234107963817820273868522201558608295059767324314398617539811157269023073923259756998672641135927812713043239620370374249172177760601021459301569054483074888227668321644819787971933674740262012925496727335383573071927810802254640013770057324929132071537211216888822885811752384726113542650079656107673247756132066694285510250801271631721652831748342511680311323529736655644527128292903416936340717105270745880009627136123195564631086708236129155644761798484288499630913123857624205592602577363277586983524788160262714965957150908974630664501051246979126505227832158555635078967722568118236098886553465142763871381300445702309025340340496794092985377343969243851188608217586597498323640255705930579151328020868182336994142289415201901932417149465713374913684699755518298903310149993032543360097891851113938319423856064490717798747745411234145559984064810251768157628417599903015392954611350563445005104456529372538995771085786755638528368769717963961818996011707316545919832732776771408287891049910102524340720287726710953365965028537112990911376645478343927489274949813985810094691178046156687124153191006746260232142483553035885362585236393720248865885346176455271088346806671001204331746668779612765256154118004377236754518446235736622097513315355141580273251004399381631300151664993176009649425179690717362858171074684314674875308966018956861804559336270726443793836812009342016350905971504834594986655139546030551510481221981291708985417841147404866983519357357754729898394005969130195963327220956584135679906333965652606541216813263540452739610803252557212929027331523679334765422866453897878751292368531038918746688848666455806811793439595124025380800146076265735983614263860174051937383702211903420663858321701743181136157564208814199674294425812563968806399325966854663669039365371963910330261996132096653080659281991008546564933343850482058699936439075953945503872063814147457091581256648904394990798313663775004867096004519210976171829519433098895975714160052112495359007480808488039029409740906339954357483925284269915477370969547571735831479190264339701137996233840232278657107162632431385010111672863620192257192255020611757570753983600587774722173121281368626732298581156561253350053359729610603274392221892918470425488040534882096922714410362216815780048785020872200701211252843994161863303481501916234516649340965632791557977613421689143270400869122138430814465735979118067629228559653576976914177318855545304054294360647453588290001197156680849562486904472247051263520173512605621762354557719008582911403838811157865180879675195968554924844623313028287937933743366888002646234863214458741446765180522812228281079685724813164393143520970957976305098751935782813069396585337667432615091582674848017262879483911024718835876542889641182693464205798114328980306603139067989658810881322139255255691859132430542738830938547657750493240196803935400078192911216226135299635687339404798788410666770894254818784565353495478123196458326157444850876339409413779075646136538152165809686811305711886088049838158796701796333980093595922057575746255055540110487623783764541642909987214487488003624049256878040150443714556302834295821651870565560836031140003629853552326161425775759584098567792774813368695164394441331946187075330112050147807557199112537061310726542478756579424063210147954876016047857534079490746681514414826603776120001378496883444185554974263260914746535697186000847627911047841475240454163217221730684005490677650835476074979836335295814147744323736326642293136785762033752200809761148235203672389036052818721914212330664291161339931660148410664442944124882567604897838203653441012644997906154297006469228198393609522976081099500846367195982631699619612582565557778351474497119704443955681398813575745223044016102746250719745752761138283587718386034171910900113768318206811799497316192139390330552960088944487459768694206584392916666336969372651766035184365970768125508861208620854038851147435160725585519371146718953864852169190686064032856265746124852769433713689273276416053097974060043661560589166669296277943292644620907033498598742107261119489412550835446459082051916423678707931048646639585481510568744664285479415223918854420959309280503768164456910022859068874719117673561319185584547501011136330466977265121418228622457870801143826660766786968605109345645874282249580306765636793664149083225938182909620946086855385406197518692065085243150848025015447058476110305775025930356250528864249263036559567243057003013178132963060631407941062513363685724786911142922754415032513097571636287399808442499719677060939616568046753148730273136263522709202288963490192312599811692702188357812940638871938880775270588369262596206823919900792481434687962524992056877816504645207555429516348876403004986361344548371351738058432852791539586648623904373822694784392711744607578483802109259365413253827128223957056195809256281387054360411440308823767976217999744042028648700807305774083026649634309358946872630196178915838834613721797190586115139973607919375620815764530797908601463986405896981801371600875908509640739798695102407725607398954141061294782245332556850604605859462919200661290316949479705552830093462530576297812767486757028258451649936000392480873708899935296180504400407423737024203487671605313379841750491391171921587020290627984966694512313799376942030217375381952174374204499879455640095206342411763434997155556736219699360628258108316855577177417224824812100484655841909782984585235100422990867425524345402125803104496072086217359166626583449687432888353806735375878960273384492251176665170148336928194661658165328135455649753911636536287434281980222564259870127980533599793612125359506050528700744632699894381948222861081566012279956495110376601978100347469499593720015012750834417929912580901338167745370464446324823851255765631899254031710815463858254337329982984742814105422335839794111974482849852006935225208298496367815563448312012198508804102512212261428426446697327297620279612687514235188920628578406827452205343846450044367320864195685806703928345096458057257430016729915782507911297366677397431699788954668169762463028940416368759384908009961234221864828866002008525858788084556447924582180741252349643249272422741536736152498845816546930894586195734057497440581299678240423004497952804865071441462140037389972823415460307848442284751166096144423070425790148703326829498046273701184027427797574936389572419015601058518590019659127662611416438575698075905962621606574791487705743360086328832704254871945693877558397191986360891427405425907723924746150166677836079925925723496755170045805293520796261362821326169151336116463557067323282757348032132083255215721124915405094917290624195648119390065355676467969261930727940364315079227330968456307901756324288671999788221607330949138127472033404381499851783237381482260803062411008115690187484225428569281256677170120481758728405776154552178255256713705742331947222639615202115153483483248405254479145824721101743557820369400093316126798916009823452965442189974771448234136836697318445313160181399831121712093767759506815869387453711510429842296078575913009908398071171982172760247775707336741921652995011594437940873259759362972501329862370970591579630102463255621727008039626314044935892303689967680827241517253607273948028630681693790724861842181111697991025815899204144281804015580842300966391077582967980017308596817934923680384156370787642688467163627339132476010146435495935588417160851905249666697197369564303041901707371167398170016656807061899322517162222546902790234939276436473911132389978152799926873466915701338992414670135372667873004449379884387680030184262802130291924250373399058758404245768406250306711009753953081089172357327537509958697153086479895064643082042734949980535218483132724452956499449865753818741237022987802793650828441035066612028175167794206364151154704773994590318807209397716257830440741952216096579305665978465107006949079284678113431796065953593485528131832304787347848037523273393856416695015123053892742473391063536082121718059216079985504473612114656371648490708180091543220848960722674701550719337321057875064318179814841306065409231144291045638245623523440964973979273467102519177035601796960660442548746419368288994843015805554261354770581121422743443968477801819294729174433704259370336366023708133310904879014744206212547713957410599545571182102799377710618671973803749342659072093113325010548939011434775939577870324651966503963196900027521124731693404538015551452360580939282962113599542927341864087521657077605919503140322779331340259451131793103552074454546200565795575024603502444659583513628882765040522911654755792894978377339751906361968200884003183532896658778586074836831903727028347056999792324753107447286040856303257981540300629491486993131310572807892381937416368113742218387574248960534930273689576665819786986506050797227948561640154524560739502769956254518472816943089901457047622208491203533598295768032701190884731495226177425660684107680505849738632691514735541803256415077358650432183957668005031319121883261294941416153712115000840622510830343771169393856590433175482258654855660328357757071637989987900003888010745596765063354381781454211181810321405533532829662999806912484569012809015213741780360258097594499258767851110579625422373911085676043769127390711742476250314152830472789901321040425884470547905497569811614074377926067775156571140396384705654745408271607812300518144037776431954275855686911032738634812131549065226820357729633951987450131993444885971225360754304048318447982741009986014069009183621685018559866355420840222551359355070216735159811893147139068953431269633238113363118869243994949303003045895058597473266420398624371392727926960200679777271685600784716004269007470508176949972510271795155259697127792366877399193081938034043542897037025465011826131553524408265715545449848152594380126775492922267677848115803612546396486946372743700423981575620117650805441467024788333803523787519386544709141624191456264561920654526045727137115274417314548983543282127869593056268885232519192591007444125479005937717747633395468024024198324516996666406034645604201288384810613354687534959926604235295816864947857837603183239396263839767530275518347115718852952310105835891107940908947824156972731280844016897265389947336553640398895004051247197513254590218253136562177155223447247067302924284886112731297625913790404026686391492567492537846065754012258961812045357914100736463600018894662030156366868208993077967850785475975691613041031938217402785102777325990777823328649158062050788501931653411921088130652283550714744022435120875636198553855390511146218135775101162207516449875104024607972665265395550294570722284157342322764625742362577701196050768887132769247987476367088873678925465925246074448310089931629237817871146854533135671148053640399722755445174887297324765977192931890506441009214395460046763282113988718590358184063564903872969725918110778476963557838295625710065724149053226029030893992957420545850490506281347488216307089046113758195706514478699647358364198406364553177188939120899798052680686945940942393695962200036615471437037929911211606093290990451944291890710889877057390080904977240770757593575943587406613698354924231378431660135786749163877484221624364269465864323369242156221220541562809890536550228261974522696536866815286177674275745792912572609508756678346670950432737221251195085327017071918831519448212906694383494687511085679652630822607842762338659070722503262438479884467114587320581008691944270097695901459122638831018560565782109527859920774526979243595124233604557507289025458701495389172240390147278894024043590458906176828220299505254006768022172617007901996438642975915165631786044275812927411307405133608485654330532084808652249640717895132194420325157550644753602099044595733521895629771686503773711135470232743019195631107992149097419132348846688708391016856988933008514793053244843285026269212840668639623550345950339444927928955524740988469031346119461323416202621629603281921283862155698380188713211628144023716554302873631826535531035459126552595091902559734808097217300415265735770449700297669652757741101618746034111024891427058027635686283119073258818475014601460805842429476039211611563719668084929494957179033767768786677499502490492472809121461144764512858672140447027025990113768901221503969744940189915174562123053759206073726150204258573654570316002048976366433680561689340060552985705937948418539634994575851028286760261873237464018442948657435616075882014036840493908842461047288427144374401531234757304044072729462597552388707039177562723545067756923193878089214915898099020465661211610347228922174950276120441498663161244390062448524950468702026790209085643423143270853559690487058378208467838718673773481850161639910357546564201372709210684765413170565404522734151831923784118201070216069932501311575273365977765443873730078419918103297254291918389786025822557302820042527487041343112942759027490349284054873488541938413786927687113517056674926816181719525157884563745389342439567878518141290264368496241165226386348721977776635095106382093198671234390199904170809767285571494220440346620404692888718818177709836183600913451760507159407765814911189513390423935163100293333666102409517758105265629626395785786302850549297207989259814302943426614128943014460018883378279393319841667302177891368060469691818739459204044093620855226995576824422850835092564961876467725372795535359919185132969928987638690733819898766749072098872235936673641202914172403764507872637243192998080968067486867415564245855510003958032960018654524861018100257926135105305178687096857701849672113352709291613333611020719333436962183124309162275538179108103562711150214877449395634606143441916308186503956061214818227563709844623024330611486870516679743003550778157747515647732172842463029828617564228124584921416876802100620746790822205861822160960274652662147000661654379438019856480023346367587173891891810920306818853838802197868207588696642787922268971272300386525713281078306170297154944101569421630451903120680465830871647612390309350194160937695812878368714990230437378712052120122002470253781509917534279241678589239177331697855413708227138586090606553093571494920146434425094036752295687370253340751972422382159380316688870262866427353626745104467451814736897916083950320488086543394443121845665653682490337989776092494997709783336974903680995524005593501988004414888085312516930445878760548993914590190607831463562686371856950199153341922859292152092443178398258572116481939077490531972733266507514407692934281395736913833074856326173190413285099765586823261537556381954475339774601094095437768710802525141812716798048885900782435838821274836105380909880097302893285572370618577342668695880072336397426453894481874743460398193613721317283434071864146472000219674064768880491291802057405764010667697976169290179912482916043600725884016505438790472089721531126348237516669979784517063124135798318750078935484950406315582947845047082080417111629011025335980933800860518674777686533758868933476310497376263028326578141351649273597421279083059738829076954167406314556132609409015680205328168312389074664795734980394791631819278770207087917479475639057227756973101146288925056595137120824985307192582462779225840137367224032948300238480923073820956913646146383661110918639930066299783737801361243172444760492061520766038435009935754009979482976245755599057870241277787660732366239733764021218676367127326221821146001106195348316647752991305025764672021948358243584933792897712421326818229915635709360087006967027543957357889269066812268597790666452866830851502896804949606591731220985827819596155051787988280973086817749181208680388516317140303562463928529094430406089200928122874011276685302729696583646154633947865560568050842723598662383364352632773047433357430488390421782022136722366649060928009878198823745012340455199588178612801427736869101066588464296998815647890967912036310291897417564915882447179392046702280827370198195158461491265250918524319583958738552642700328873024211615875315672080230458304561252553336299763527251731012116552597445252336644635826308025908423066414771964825655672160453188948708617306552784499597560102323505907821846697170741098319559643618802988438107680239666300443198239655795194325567365463624570389041598962951295827874298594167640932770174782605042979601551085230977824847099161344058228312594260924978313647160298406587816396081176560910641651957348551135360093650376163431155410115209532724841394055644569228752889507973518703104210965034185377733443413414767280991216065741462312346568444358065903419335720723820727848554558512411518697178913259285584527221361491453867460653622153891614706553878391254927891503929261843736819819259172053825566461087421814181405227875190231968621025185637356414664519675415868199623132875094657495776973508235238755649978654234391200844200279747876097246932419771511091781996259382856109175578391577036251173540219987404488299852246415664569859183552018418131801794582900510919108378267779475871581354181313294687734935154035615442624329420949671725348451121583060633039808778705184914112246567716941128310866140095824485770382052512642179351375131365375903098272516115969544288276812411844193622222183632409773658547174521452647747623471400181506762402455614695129877796395529097031936943979617406755713180576298384856940467278878653634124888771645805201305045016117061716406948584938505586883562467599285671342728090795346842061665433684181589570046470846691041950928851885553065488737797677042927714579941475128441705359758029564419639880974057546877205481635283275923268553023353124015416954438498423118072319078495592991789871792036911210620352808500987782863304690732915269907279452280422489264033321355287906249809779166541528123827428553584794288668222441086090897457155643138730425983803036949631679681741669418937500719974696978464688436624494075889870650898897304986642203526151048652834801963921718903750878056959306113786983345121195100461399077376066412419385620851224991128479846283071504442471497859336052617237404618244965919367077549800428577130624110416607050205257022615510824274290692637510704824611996067154820997303034295368173126277383441251913900159585955314483421708079200577743623974766921753718222828359805737743775669396657084510079624201148208567787761611493836155020941579668132671309249089350963397437957289147219399949568973687963133204699378578724593945268323391018091322104685058281231037038939267037891572004061011922140078562166420970968546633411063323241361680180750066495875106216001641354497379566494848649674051902736921445211145428034517193095298418775398459538885387387477181270209441440255762693311296444842178595674570292709221448282916966729862261068015973056842565637211236423984942032555974881485173904406062858350437515616066716127236376913104425751804806492413916715397293099277700660275264977773701824250208979667880729845187821731182957399996138904671547812851769368021117337985043631212281776026175850535451580136716471667532490008545948253607301670683030330227706965407824643086298002022685231149888869841022650589539419101575558770681966486626810688143861917024145137743997778098080479155671932694138120550634792305116817767572502685085673438764319085662034033938099629081834630039381807744983833766759047942473810924400089880464962720571010774352982102771422661325816349995030810774883609648257205360744824306718687489974974392586273003404587917753541311789836720264420736180165157341262275988361830167476449844130743152693635300930310281635396403972618325954933617925178318711510729317405580740323842479456670032485024469044870501845864445530513874478403207979731449244394669909516323340354536644258526095612298685495151165192558153534845430368799791979386767755375202873424823312811609464225286611857878027517485510976586070953082911776553972773264688418781602566950762692027318556591232436076177710861111221139104287556475062124416450704161753237658819157844227202745097981463593177813128588989796393496629101761594106039968703881978740622363029096669758776074958680309104461582657316016768595520619678550932708620377616580810664660039570678991786936095723865369681535257080779396978381581591456420508409189082328848007108168706582953322552841026062720959262010977371779452257902809661114747704114504148581593546167254399122208563345163656922468842825790066007350106270356964001602728931733629798000858457470436372914793385008364638647102371485820348994380900548336971265345823744608863458410909776804717124839520331423537300656971814214602763446922445496744659063509785243895020780714707646254963709316855165205564566173631857550503346354156091663374767619036540305290587492254256182106341215362895621979643006364393581924160120014912723704100585951731973265378760246979856972653919704056391717138774258538950319531840022711342328508503043247651353781513591384299387963981417083461647619357813060270401346968040288499469876442905539819292200248326598409093811319142218116039219952180879182288519701592208961798357269100558031981403698062690490644980021306940521510919246329186937978206633506514131314721939290422615539578946690809407327696616815054543950236268902186112220712148777207068212450414466153254210468643390618164686036947196630997570065428456855233896481739862078475883534098776445998503829867576756283569997190335563267128455974890106964438343641735246860632048040285354757929629801852419295886775774693017536603524614679831989299970163937915286696547619928870643206717494865838117044959601410285525508175483889064440528683108851536768330867609362101752446344634634638237351844474607510865439678005582885050609678502539333112242257035537930624693379776120036583575585838413155356546412286148022131793624736353087833245640417139711761224303539207136972872854399808633828216984667542512208899404029547127153638809097368617451178257166015106137712694755712591597089939677260090561421707913146088614500728384094350728851683563821258990988735552504069212089366121775970958907690866686282235224853073796012930545819662503927146015853970857672048438705892209619766885585511365751638994272775440537286200735428950595345643144840487552273765186655596503266340636992334051541547518902711546001926966605247508126062673399663202020439164714322386091626443854416658844887546237361792870820575996356058226798113503028455160180206040469559048543408196879854475038572010517310752603168165025583855804191666659871860737415976933703599858149075947946842506110187821737210705134769787137501299481896458066523960028542805717384318810010268866883942845073240106188593725552482456102000378464505103690342461322983054047991818790752206343576931050468421843270008940345287685318211283435751864861686269421909477949005462961876169860513736014204978983144841742160570026539023376849674002491514359712533294945031610021427806058008400203867402572162265015177061455188533795364657028178269701057456302442468535414225065496251920365451231851420057244968186263530271012283893971227001383689862911972824891788234286811724902604167873386611481302307170176050323634271970997658900846387461293579811956777477665444472657563425127699233407178269725048285016577419062581557074483482494102746445975243360144546684810913139412730835214868783718089511090932188361142583974066453214931968093723177826299338061803727281232365579116649368187337241832659258134849654853669103556288742268980608990373587588024104890125630020058882603018919915887768742375063066535779746016918554914566378392956877999232761396645945200018381810367743462779964169619394382626300763212374504619502990850683056124324566498876643925705003416568245418601418028246667614541938698782519985456251865440696468090409974139659464425065476000973245219691448992288995617947513552931718365111638896743401305017622198248963517600330192024670381987736202425683903141326905893389057479381956811123314076979022238359721366333535337665114261751076947162181805626560238050753685815932468749069812549182878187782492501124743332813662071945011231803608106054273109126278038463577531405378340783020428494064414907294777994844864227805325166965443533902559598730607478454968012006709210796672062996191783923560259739285662144467401747300904045126693641157224791653877756675467600622581193070109973064819898735771669821898974729057381181546723461134621199377627026660874977901734230955209092166151251835762692724418866378450350422596377969316830897280654737219247071379232779106785772587701830020187787248997948218213033674727599384305202321132579682585026196287837190754437109644304771350885062917261376752823771297644695371073499916898114738135627632019249167736796188161562191236843678000864256233279342915959205107347523580706194916507791446676606478984397825052539692453050669905395998784961913073761382515125786627961057968357318284454180055249813241074395262260106135332976874992401865168091588200794837288686844943428712736991551949558414457982734436940724884549331514904571887354246534100521843492281539341031511067130020220594485412211916697366687419677349230444782360144785791364931088910312185727095291952499528251052782792895287297201273748705998678611364017560497059858713593131979908204449971612469502082128113133649058041156449086302950799061521322006230357564357566716874256567265725384445808533133465742543760118619256114640769116844265991581666120938349953775612549343266992515263063533462724958857766913203970581853150049543643930226084277961937429289867424078869645876901784913366431582282554080054246197598205904913341453846445874041782943934899071021928382709162715616267545839550349764378743630448877299478826985053410143077650277655362802013984033822976115511197590243278000070564995687528418155277098563487749132560442242018704417393294766048946143267102109728986515971197393042401212646773758687387505588528405304520143606309308607775080968978812783279850672680059715193897334043356545645279550923116473708643307187185926360820630948873251393906799346212905046597915094883904292599322619387826053157602434192714252588560859047535905608950385039096820135474224785158361953355498668478917852418181195368020057771494658859174143744396805332940678716391546875793767883589744505346217697154062420237846514546866524093776701168201477601031569715101684543878678722866043223289872669912858236988347082154162504892504536432255321844604120712409576916045369728775999535869535371957541078691586215721981950951885986920499545152582346160309778637576230510874950367074904228166518860246416022778956524075198576274343135362389760574291154868266618571194359963434988440815849452250038084764793941289891423153867826287696042324758206005167224468112064619182462054890592613053776617804258895492838520784506867980015207631989828721894943382607288945525478649856250537678527220722464912952198106564980907153926832645133107538441440122831031758039188620537882860601954046002133243368306473622421315574637157837967445138890191933168790333103238591159241555978117633158135849713679234429265382826245733578937406921413408689640701174324821333096269322526669696131346713195088281711315216133419926530931840042150579287893497435609489759487819022340442953466198738853587345211284398991714544748795038653105475653727880277238223737967442804490281857599639541902442616279374096317279778820369339989139137344243821550927069120385167444997442275729279390148871309235811260547111905508864911147327218407122236721817956657595882552108277573138289196743132325994906692500788705447944866722459636164726442377231150685080297218366695181840691898044831791446135079817456928837884434882638857911290561747746388561328838382025678243214693409615347654381659479318086518382108933934226385109658301177414926763919714035487859030689678685306966414561837900729916705405604354610616733167595717684882001571612035714224629392266186774059997712987297576737667115963010254554135387730886026265752330691999591333879154629975048298906533287989680452810611254054589952455334279515526446527584892119692703435599832943481123030921245985991185151498073989529760529902942845650479884437606535269521878870011087501021429196988096195721393422032273286899175307940878403682020746025782967420771303783891795915165787036121279671055189137379590378732920131316607371340727460140914575421881097002934726197616178037829338483717227609694274009858323528860016349365125048905888295329892633531638013038820949090805983145240384289798320916110118822485333497267515093150994762658236787614238191052763075672560478197447435246020197667404466578119377008040533611882083914905135038738282309342695281373837180878896949562569212491804162142290216224418400025207214448363649855501969433864812357013272565943519424091255233782551195437947647098284630217411263702409734709755023035887433839148688783247355244537254209100061150804360621430815702973031620794308438053640210824814639962203941178082419089175964177174655901274985832736487314745327351024638002126901097956568485990557374282594525012680621446112495616705274696088231285347675639819104886401370124122978569010308192504571188070900954991909067658549856681444343361406323090430440740110571955741438895257689897971814297074952312013653011140253226104504279512059607234078114312034347197406349539285527423654181339228951726069384061898619787560249000526012435683846330029602622392312813956188979984323447591296231791437470720362158890566053224893079331416039412108644221083704004391415205021220774595458037660177719792917955576425433664010435549518589792646492672918393184537587763333294140498437161524435686252109415764402820729546464101708061271927941174135711306336479233042400530295968711205277472102009929907454099713836769844460832599424592597719877431664010138102724454136985255875610446044977962805224907655224288863846334933248833347044875008503792517553856758843300724427407305889716555209591986643952971312515615135418435606259415617275110606028490425284145300250560035256589278451528396027602420572070942300329362709793748256724001251648456328093004632724787872155008995949673245429084188619955762794410261525985343822726870172821587971071510312210469576700840663991380403301455077975378200189387829355235467747506435712523650308395047116265651022322210480658258451038276493126128752029377087452610191378669610061450601357852034829435381519584286367455106310653969661683899762636782096374867018380841469654227521274191396937256787687132612576308761335665030459756945244116058388713068001405350026064224619269689591643393704821207535414552141176654448830779115780049686427381163707798582846931094276623979669859617200292405962472973043128323996936006058403751082020828090103764579436187826081842111567312253469081940077862547068318323805319816558959648578039050100236545578158109025244006142377822136737628652081422307453492274568068772798606438836682174658732870902528374353889515680716122546503117400825196115313528659291636713551006253082909457195467244758250513547561566348938997345564208651847376186691546936340983266121576529492445336537462088462672654402779217712780686946164961795149549907725100369880017311879086416084147384513044314228691244769057906586682850660406709389833125635375572672610152873228209594198875704876596734655103580229142944166729443903858153121350778020981943389029969073825505022908853788905951087931185023435197866645521940148976138846079414349077396145932381421353084446138233410490779308130393006664403672414986482379754632880084872045285928007225555268285686336332359840804338571489689145907652460482850679179815110477045097353743351289732908195314639209492049587276935151317225618003599936523591873578342360026940240059028641609163826070518165292829852420591484263206405001436536324801426040333800920274334904634927705471047976759589032778295677995203940312916528201348454719570397459610575624397680964495568238708660899214378544895115949284654446929079522180350338529516369518737752900762357682680754450423725633864403097174896546343085217239037986914150204680984767384267346386461456638973863998180435521204447909001078532478756027411386797797466265647041421065104359196510818124171517133226327623035130479102993389405452659970772227829359193636191665050839652439243620340348804642520944382329900061474270954865571621531442883049090887195977555663006864442159802064741450670141908025617990957512213551152108977511565041772918081399308897113123032095443448720714926152685736227890931376992459298538875988464222890051817255016213872622132177973812849510143815522318797221594412146441262997019803665483167239730186443413819432570838484286221501778085676672854891817972155892876040274966340258410689127632707391904119497610319382904871212313280742914907730171801010251466760309245418506549285596457784498342622402739826486197209573643212768006948685965285375478357407806733560570054198765539826390516575698302370336063671742409483501650058216263599886581724718181801613502706457774293329053954897618314089346728104431235399809771567969338828952897234592560945919225689329153999363720453413208631679564174787724960001692439903270395290754824570167814148786226350256874035569149363098742136506748324999249193080859829261468304814098825984781898942314656396462386662707924764452970670943831281365400788521048268806854440199648627804004032671083645361114735855568719419717374482844188085304981883310665922691796408559956252469625541429488582684703257669234504045400822158172057209026103397086294654359333941873042484762871109485670005530858345693732922375527653988180598294619699051576181571522366154076053836327085650642429371233291513581635091804147408805502623628641538777648018927837157823808856914487405415358553871711378406077484329133584705928223624502003613516585172030461615708628674224603332274799777904009654224588502652819965390711382866499013343954083744622808415753037513465769615051795088003788837347808326053673651553325133349821743054445498448531000325359226381241363733815063249599581351107502767504906739910395486197296661277541920746627716718298573840649381860748804783512378230398370536411654400260587737008822430143302323916713990844213074518250910546701234526535809923781313901088374053659175049946855329299542816844487813874338640958872335804629254135791608729609500060127254370894801006876781069881842738560289704077715933043863076282103599643564915287922556819757680664053722157131914234997443572909269281814864128410845592114859709635663689877842561943755112516203866312254476565193062006686016552727291402303736564262961952029449772746109044415252953522163576532911659126469240270599497458594133509288679741841996060770800892365767693720126165074676027964096499872237276234990604121379304198613256606776713015960130516291471592114643443235358728346166415115832270536887162840347396764965311152108763281116161264475487392513860237499464733999718031637064268149102149768649537642520386537968528790752297899152775101054145763082989037162352101150163202246144556398157065247612851491427887086690410188324637720280787191636610009682501657172553775738560148892828422309852875052389901501598970452414678352982693325430206272467556741656209944158892147743611411052145400259724449547279391782408695259254982902879155368751049057020017763420537153798263519754419144303038706521616325928049388832053543847872697529696950016144389426433117234858452054710026883093293673202226494449419425819995596302092214766316658625677943073468801345237535143845506395384106791081504595235664424342553023454159713814637305858882461029161080659345041526514671869905764607969476721258762456392195576150806669498241828545185228545380006502213918594329595190337093938877691724755024946199932334917333259861852488755495264235484741858798931732902557530332925658163480466449911918557795409149768778423508819805933544333438445029878894771309917973219508341425515414218358986878879462560645679732185237075654048973788725576318884801423180393286818083142895265113852002406886103434232522922030820600064836940845122582033272710499959183370257157313936582782203440874109814823830908167511344591883068025056181061248321330132442023129704768326567848523039665493799798883218888892978964748267820932001505585575753137812014323074235743011059586782201817088701524521468176413414630752610127234785112725017033172786022615990310867909291872564425682756392127678648132179682015076983631783967086083104686834115960648257992901346368186204927100631000899655753370425665414507796081712076976750828940909325089846988867635326632922694832781013435297973943212612638725635919321054144439443108471890810088819007894702656850923390223268800671053592773061978971084834251662470030922180365536204280438795403322602580635727729496761991156603938909414925753120809345337993898554899001704022345603974772967818107362020969033224457641397075665642131232785627844728191703479898274182084288924756015872330281492859989140577903675648588198536755432269505314213923515187989351365794567376015690893943337562718471604356617654879758894576913748483545074426536489292348024439132570040234546836284178024044519229300024344435754486076881614693718681078387674063945725091931342146229530560851925231464870145291459208264117308376856721778087979803004372660047392455360421443194823286132063750966134133578454843558799482825606758356668207442478638269214856229881729114865978834161180998464845538156298424490463092101200527751133828485624143565155989384291435077580937830450819353252250335804408864724976844893471688853233038372796979273693767097703951706324226592701589406452740356431337221180307037415777505212270451857868064973896036332121420465341780464101549585660069755773346679273839115642418035690930587845595886808049553385619357523972322955012256222228978315834222339295710734571723474784220881811545138706218861196091522034932715324430542304512978344609224597033126784640042688502119593749640913480032056842733943091224957763810391133681112957924493320465977594957713809617487751000779195654631490961452459825256809488589896235159460909465453709124559461024222702373401176895733432424757031429095376758574413902456213980856352715483171406608402540711475318759529935865726555109936988801507419392735154269683339537777069469221173841832140668073509390425433558736697657126957658729675986985808986923701406550797934785049697387513992635314394466757022442849400593107235491417648729850306555688438267949360514300887534763712228421781620786332481391954513029266706189010419636900881389239910841133925587518196024879190562158933506765504477908556666045569707678291542687062873013163965825984039766009839928974023025755411898314429996837531309888443976371364769987114705081580511146445948624385206565501704127912041232655382259893080431472543652445893052906050169037812759259849695566396565761203361211894768451579407827794964162050156288887101210016508506833769017108511019973502569871574028723304155314471092509076799617231893867290443904686124088871929053902903905120708928229734065410400333627391680998408007328578193146777355926456374533057720320633229443508350457677073866098325881614858902751471977194271167200292138090590323065346421873384849293020454632895193955417388298932898524344621199367741035398565806762277292229927353527618836838375271187464739827640730790904893294936375645666488449181524674348364059314201748132218828012787244738936057089821469277394203815333504372494230445877021687260528653802590493551790026845847412919724655798384425179881994771473114534016376904898778518998155433192660873050486778355940319019849223176195325064013275334500346375820935085074083191977756575937382210294607549587827880315534045971647174589025821475550074585172464290717859133857229435211441953206729027490052878637621924533528520957743150220221844472565373474862441607918397774506622076006555667029558871241011726714657280951621490606101837168548224808848926880937546541917086464376017203284232303051163666069678863933407838173533939756078581888353934387382077375747900721550594781864594589748590503073766711328670805914704891995424562765670508094900882053934190001840047262750084928229960152889489453653596491903646094435180423706821274003766749826440003677319336765478487983123813617698507065719453253262657010883086266946792731533987312674180646484602376007643170862634164964838772179283640044260290860478397534782277067580010395933243564218551434342606808671960975109467379317182097005812038774284374986801354964153919149577540098537497685471251524659434254257195380194654731786990863293599321922346479074076300902795110615394480577621301760067454964243713844122847247292199742683638067123877073616874274192124584152501954844479900484306334218418280229077377288732268590537152924610194568310938563728411514368567700576387668921118229102791673664920899416144820744043587909540561036024230100221897741629880129395264809368656006910199636334929878448201481141861073951521523374977986840580646677427208074174072683802231926801543426815131499792671545426860427490029645560982762685492446532945513210570543459901711029368847309703366125258839429943434738608760921226281718213148426470095564216908154891482250874795926965916496154051558025214247740298552620971161022695668197633542798179562431898520133514848535645657280733702241699085556219608943373180798255049988605860488831582262693478929884824789506329194277303578312155939371086814262471753389241204765254511741344970341951920608653964137616999700258045477753511871071500667222244184897942550726131428353224929690804626041279398343134494637739658494392074765337151191038564443524946321471819431885563244953772605253205494019768234622432439019579182236466836691752660700297738049710247679215512916406769167408063254311125870486497577114311473314789520713540664104108647045277704659352174727114070642677358794745715221856300359095706203530470786332177767029115948658272278128609343290162583058051366202691944177202442103051946775735379774183856078808863725681921395309835527279265996478825851797177578861576603510696576329850369015494881740951633906911244612971119146122722074581036984304284023592395920384934817836485000459143083128375367460259107919409434748598761968025935172921372231636577630676898352034244564048869444996121780554592484325489791060742113886026188865052279035935099375709429030989133048388326029721267970563290805967788574318180665025218816413388075414456862982928501365144807038103971813974870975342172743505893537965949773529721989663250884890171232327699944090781685135724198752707395866559181367184044047981135810685948637864727175781119914479133340929184460902844898485726430205352826893393096835472633929440642539928659600074106357644003045222510532029994734019740463094033051792162216116029577392483556090793001357573790251820556894185191840040738906836417279174782932705186629131829156178593747701636789455992170513434056829448368373913821302507983671309425580331278390882130381039159931001749900937414786404777865720791572899719257225685975263344493469016126243370416859380444691411884377328959902150658145523087382443290302532688915005952431796276127510037558615912000116993181006893631925734719032420912664995377008942269261133786168425629268989784190526582473799819347680883622546504914734136865156343052121643816951110128161817880748196308745280998135548616389981877532518790262580735424444703862363050033172223813659760795966276538402604387737519911141334513587898233594480653155848949939303611428392313056731738143210717584751751559548028501187472791381381944311842880378226347298364359995720600008862416889033623764344791906046703143348613208607573900276929144874090011765796994430794171447633078394482705509853945688094403382516283207395276472991262647170655161749989901652524910718237610521591293775335592166051648096796241444044574922917341124943959496961284118263196571076928484155510478377890272300684962379597454278572185591042202370729614754873051567047618104648663829587600121606311165353044434926150984906048955011268551643688049215694724831915323897584418825614430867399046205480826371042770646922564333117187649172332239621198407242113792694194548630293284721939960447903543962055401623450436332668500160350878351954606519818054426000068148589939747129805704771770993449946881255636032927181407459046439699210766182848348705023986385031582791919540968645101514887761328431425216172734342860440059293339626762832350768666556244093266204781296440428754004271365596405738089007520041617277589859026683161558359059514809244875357550165357404624349910520204793320980052529317828653225967379807069592703692746310885752254306372276280494143170190265592282712038261714248581945830392133458406513363074074741602177562456232270067292569873607214112184099992101416533871908223096908693619340849289575518627374727844719207472872516021045641178816901244024004479103247866104887062738639974287162321320405960501279371409349043213897201357859524116288187654377814273242922631432639890188144648803702472606549398110605011028902034805773242915026049707479931350707077238202493381084834930374693569459672459776986288992377864024054494800358426989222340033910790178744775040818564089119795961513188032134333756451288068982071492053784892609156354368198616639270883491361253879240526055356866636967851483056630868655735204620932195477402147080792234734555771211055640236055678036669591668420534251605315814917993676289243325359603353076578622231330627367689939035072206607038191217826939805498324044497493005143090787126548531939691984118954293240594322379126903699838829674383825367305604564078236933833397469067983471610613674021558900699029594079179865684573205277074528502233332706395351681766889055512882615740821020263501408311440639124670301593495382558130377312975963236197700527320441584563918847709733307200444154679403415175573202406499284047811798904232843112487747951728017495524854978741502310801340954612534918524364052402008851810920233410550045511672938155459432440138168883194953945412225325570127642715606803885014294022471346028077594897503562521805684115523073332266558326226620392302748742267106480050768061736369828160591238050833045845581152691042286166971393860438721719741515196976249709279859162346052192198782021986202949340204161351539482674381936287582764448811238988218707508091440251642573504433388493982116462892531552896902410668631695698596221081686065354480371891899393939413646956456778854616304726716599801104004356325742760721766143987149378058537497369547476209632987349374279089633282324397446290874233890583130640737597321746745718894906859563389141483249104919662171468525383927308387237564508711139860508596537309613122287922145833536336011449484653468564994228266360395191768200638043316009126959125508704957079200802034471219483589395154657613498313221181438879589187171863946122312886107679341178972294217267721769369765776273829288882121728384644849037161584812872238152121699075107465752090122662197206423631425785776598460808458214802347941952469985437782757984978755987558686222497402306405093232636648877403339731690504600054346108254383610246214830048243506275237119329158376356735698680906275520898778571158760910951358861667166989275755236548787570122060367125048824129088765630708609681291531951342818927083902540636473716776577763383784707785446766826622055242744242101244974825003228716365025841223006911510802646370589490746070947939931371906009214980119953267020840551631494373526425750921229003713023748103717258562993357368189305813854272240588692650413163741443867384300107704941539791211397576973955797478926138252555912197220930054945368456075321853740092279362068501532686261849841046631754179551875154267069013878030296181410697737644326639428083347900627219058781491815552516342262661940031459170825333996583565498099575809161317386554235706577919304100926048396782210623125844915359408142643202785385855125277758618260246830357347785958682963652496801430608076903524401414452999282994832554662855923404797752713777283910673165624485630522210106172481453916003020103859469946781046133461775615374238582363437427505660961038308812574454217416602600655747389836361309942444020219784040768059864016711011125329932214175574424328829528718035442987354796213228516401637438527600342517702237269049312781390356670074663627999557493156390751208341515469809126119099893087136068984094501718065166337465025556458641551968935720088390559741272742317694666198381087871922643234480441277656114611193746941673559960648470350727346154952283397532138825475372092148552402358588610666609132912046816658630788753698931550548568238209277012994389582872361900092376604133143612524996927867625557036301806166903321352848416260338262685306847307648287743111276269751782752937658729680805333855888002955101589674034050052302022010285013591736668371041220501305175263361087882298610305800116759859012831839449287323818118962682692359199160364759049415243559308326872114996659114839130237589614819041561589626516086545886639713825290874130720002230044362396662851081465862597106386515803045586336341660424350378149021445519925859946219767415435603047007190225734770519427468732014406608456866576258427849571445026160371733934787555553605718662723910854582071603893697471389129939929077221135351812994459867129764540606693396117656713266837612643933327724290802129073559061097789995534402658869866065873608257636127373176685310683361182863589173297647859409600565841320656072383539781122708686683563585122374709567754763200620453743146580341976209685727319942202515842609487874822623395254732493310861804175141229288707014064414136705605823900170366755150872761140152931221201337407423420677606894907256860826068089956093177335972830469198923791323811031681521601274674791708382743371894777617578718135678187088304136964842299791904422422441994278262384215609238756733643646285660882185159759710697436633965084800689738966100625314192979994902362038555746791701025546243836962612299921684469771813360442835510081578697597724885414107162854871319671227546995752559153643461401301914854215049110394274911735325391245255591504151198762002244733673029379730247316208977023166803906211004519109037100380000532439517063157846770880616945919133138017343579943298218749214759565450448263917452040621069819900757067739489028089046808304324536027470911042795412251292264992836503494276289215082224182244568188930069023482415454573557543953615593736195931997377767851162977731949510323571476683797962142589195200151078470689440810820433970133697698747980930425537394267740463508351364849843184528307347258528992455470861568457184474166194820160454088100291935638581221933024071688196260604269725692341960994435309288534707146745763174149626712933055580827576492582488499593088046941262625078036832261973957485842637890580100078738852067245825069846463291795827171671109425340882598527265397047016524478939492955421771318215666558319123218543370477632779295697122673716200921392071041374708537110588619611298414113040132623860304195896027925523774148441065740796510687226811540942638038036303109728143177674146614704678948406769460458834014799679464354986847977193110439952030338423635838615577089530380005828440821103458907581735534453522112532159806797848056176724247425681978442661519235701427037954067160063488635836498166669737164808892102406752530533908627222221262492264201706721554844209562167609060963655229294229356204967561170471557070714865028049682969582553197351357206761645827866527000165588016966979944698134076731454131030715136290310371191592607979439061914665365965903769463540446358000615998350247655672277648203700592694164351696823398700927286711080908699784239283421846970028600205472131910086466082923723505482664003839927403403604015391405068083042121100698114985870390381316244973441733087508962200112586881549347019709610861135667055774185843055216294631842923820971383568611325167967166426439422719532763402923117281809054466647892153363977812793967504755340808386597598600725007013607367070831197038613908491536365745359663617441428424352383697709421411704849052435517438100716875149819296756084084286090711927054792396500070684185982361544305145072482400327273863162349804348629454817490168930953846293999800916096808653551266209447897263709564228504560168322674306553182151847315282789302261917230010043639502038726498820049466534896986004187444632115085683165464786624871184572400300586702407276266964067217340452817526483161968860906279845847985641640202557093751633495424701284081260566393317620471485522968401413113497087508449996043953416172785826408988762247773448159673541180145983677445566776808728551807780819295056787634386806015652111365679606153265747292922293403524849333753782300988698396705469278077554864696594725086680496972446240118929710751868001370304135734669842928522124562210586725886888203601637084727115280131022374699226717159747712906630917734125322694786015858040147878590659645755979113814016160148332278241737678526724048475143746506200815151397523809984023303305219274138524272613864001807257785024119186643134180764710583217781456856017062610996211765230040665077857411610096583756847739087364469732213574911057050486220905210754760251581564038797492754573843102999511563098630776689805203357681343780822864720798641213988215425919919578418532684282614867038456913809670266495367383580296648579887811951083095120017805252391465642417184243821753043428459432985777199164323967946687058220441454324377280837121859087613553273012984318164914663705642871587752749318978607471379711814379703664095673404963396500386471943143895330537970622805300412610648734579144858670867790744480394228113178637667098111369045066874400687151711251094587704004886181503442635956322922132673356989245949702935062597861363471334250653393516034618910495740358477080309129044632791591638888666700607764650994796890629814103665552443611187761376349364309053212464404102138516059629999160525154251466669806615843821509498387817337459244770652870261402464778197698814496178119933250258554558112696917231769533900890555402715047033978510000044373763414821572406463727577212604013320421472807965819301070542323006618717768331136031029171830659139287984133367603046463857135114585260599580738582510555524349954853760388237678189977228974554678870117338053318737376658525985036423446821064498146398996191307145231657188921468992269075754683666080739396541746698766816776520049552019001293205466167371040552817422257854972274105695666147747153525735704535642223139012483169148018447848629347538668177408910196479475571913270128096070030808588044424166574057810867124804591097200768026894066286101451951032101960598647080283481677681726540337051659145114273805666004643872417793998769879271854705504971822598694912454512162839686833616229576010781434347570175120539550543475505312502994060068717766968982561010861537120374441295673571824596971450055339644158105992625136260452191660139663399759155668129805270146244879116147750725167554448891096924992913149640734621829606150508385400497345848507870530799156941503059492103324952448508797899101664639039171914659201774753783997640232667570058836585775232649508622668480627348337936560234432952088836413972198428897014437693220691249772847445954774908497998382731346410041981121221026906698124714724010437815973423054327020994455537697895650870623133067746339900250304202702342790682026570572603592982447034737327058522742879633702565281657034259732200537958428727932398479386980233260851726415864413059459236417871560493760564688318647203197791131001954533535505833459730600450307491698412144840069017285269055805812144085688274610923168402310420894933164549357832192096551492771984665880669092863733468174339118875118621729946010165062171918932304154326320704922503413370691232640821856142652856502699736274076180316424226418340733809745346225007467060738326946607563005976832375532921246191581834036064431591122043661474713605257303433348619325801295402708645671560970358291243042193972128785676510904486817117082530715925066468852211266208868984374529464301331119373246397223369066949342381580996540742265442983424150742215800984713331388499766059716518392329706493221475478389022697340332474473474083812393980071981800629945128861354567855259528450818328245144588437195658599969303108013779127884325907572666220431291396699272527823191535619355961172861241617081024169129095349685014876988968818574316571533124910508997606150078292000661645700535212676820962696178238356477624417212494784728955095847962075571454543554338347695009768084987856576692231923099458490486834228530438944548930294766350938776740146874512811198227552875587953825815018393807168452871834420320981775365987796423306405635554795274739795751450162569948109860758696323006046146657352619627910638772339247304415687973591154416375701573155672938186098611653573602052973449559327641826078127835266111760206704825471734680531300274790654682275904134534441755766707163581210817725994017157801487579323700047634230624271578402043015172259054785677652612228609878553602104007781142202665759412819163502170876028390744856450107962501284293045488177294864333095934207010271476749797974937807382080180727307750369337700424199528189877020449697066544881936311693015740971479654618123628120730709456719142633745850344511661081729208967064433688113867486412171737455191124055976192877157373529279242008549667685745609614594707005377941077851296640137707702687925423397339625768556528860483793314313247500723359892229936648505590680904642025201648973664354821060286365183700925275973600284038534170990359646602379047924524429537250717648484576258284727706461926528327576585316531730787631560282702416690059660672433063509276068300474842459642155159501471409180143707251739536728853495210524912315064183963361185399390363414371178220924845136463011978557884046876887341295507913608910958457907464581885637683769094220551289935828832466649504616110149861612093022958615225067762471514590590556906431000307845077474228396920898492264184305777196870603038480025444749781073493972408771107097508412071107264632238701268798690232950812290306977056815910323376919308201432239678825684518203491827942176861168874603887121866812948555258423607255845142714963574847736659079542522576170093913796206827630291295718784687026305083265543111918096100699522774873655732580182921942967839020435667814462055791041123889614668284163513334140129897003441920516715839421134529157234350741900024794660241591103834182471540496437545171344216963734115566580711767959963696028403694381984621192825097937442393006002527691353666792745501335881624279282760857569913650053219835573365458124722158528131864730830018280893000930253455474614196588696284448061605389684856996495931623663651168330564647764448612418568284918281946071188548367875776011729518812939354988149516252542532516163744556514287823834159772702512162912940492457683313993552865781122902718737507136326661718365793397088925427684844239514175901783595343050848173678068311894002751907641273715581122857956497095682335525393202593525834104176735796423323019252591712828472750415141961033715774168057105423095637784676899964791260988979030010491296232263671867140387217472040686829391422445692255607422836668494272916072621106432191336979161581114582317016333787053075520946161807292907803197817004998990762336745172122392678795361839510569669144738186285224710218403977573349130445435960472723732729894445473325232961580881590274903819111892653001754577127391827475730651542709232424234360484085099149615448544453803927995314461141133139534304944074184984919756267318624428535752539589280418187754688262404571298196917579245496472113936793226850880478527884349816782851482430140645995915300673859287973520191184527252829685584463048162003220215232901275973595467190899882314463003200455403369819318963406961179914441203986924175777148814826855711698290584488379405093550293012816824708270156404727169685258791162962912941591397368538905364269430093944174924080178681471540598397699127025227179030827047398832222585287690283334002076603438827603243325152440977786593559730069861475567594217117660411633025891248604105051515620118894355364296855757342070517320596367242248722071805165461755746840253980019393509681825288508033684103885175689106067086311464538500538465819017278757101812249491892677570672745607496905701746671962087282038683847237815704853989873824697566480419853423978467047760019176171633414221253664553179009736413935696607506187571903311298902310301294290494881583102632973074706736706175254755427522758295393264291268382877989612339383171453641587665618677525343290299845390857230324705442878302511220557097049084033589317132480473244131652029684813765223459134672418885872047844986139979815682944230375931598314957070874697815513835338082936559797583185822031594773172016109871336690731737438244110716613041021384197861977709196907870609287008308966555695327269170046704290600517091718242332911371366931416555041225990441988900099978684388963444913221529549124031028036104602084862723792845898879134245456069807679707050397722563458540813173008167648718701865008910678764715432623811137583502543792876028301992413526401351933748875440872018995667372860163284631899826828111483922392369749483636397426207544488111721045316976910899098182607266036678824145868110608245839440453451540288583805283501132950236414713502983089198227168752911108035259108440620091185849661643917505218223273512825051047465954254131843942548145177000637839124520827743670221132894353517931200122562497151197699927977782034186207204713340467917810672926786969341926256624651448173725666924524105251096063741992727448212759656568117324953959961345485303030037286250859032556649052383432991310247914953632418842521196062305971899893852450445668222460469962155060780820666927558395521436941553315438513247023657351669526847486800403114444905519135156743488417647386764940189517061328878576006887641767339456950505610408777944209720338518602139682689305534695996917960775232709330887229022093784951192790283501655710860619602154616907402735706252521832574027828007037437320346564727256055630169236184951461935452349421681011532967073914484576402806544844472266396656488687695587127765105629481961819084982381809653731856372763571526767469269166059129163127640201016309181384302321976157009235903180399203985991258593268682914186902881625887608027707213127814810564261558367708881523116672516200455286459878734025053061053762431217676657949764804799634393480912553212859939627218507096177184321328385288814177475440539773856740563156418742154289237205154908564595447701709210320002313455417767876082731904867716216114465586271543372591412133138739937138969466496519940478533596944252811522015016097925833309993126828015527734942880884476624626610845660724517204676523623129116408547583053277104846257749072002605343738652899203797376583143233176514067783977887123338385796146111293002320040965716635437879730057225450852648222792038385502709504628017232867241083776952979090776745986268117875694169030396516359146063099826142762286744930096172253337868879305380756857281870688764432935928231989951594185754874850819905612815218541257507124032176824887224106466216088712909972711625966833583918684171390673587330126486785697041993120273093597949215632329180387504307343345009681838551463685661790498556783923697240878771325961108333727531719764641568797815201597281713381499973286110020939675398287133467426081319588821230162877990445863324350646602998313015578716552870004216458402033329705215800484962046740277863875242676308999835228253557492538136938754016547128184147399844975511708965715775735253852468307367113190979582887141183380851950585851302730755054524804242511124375955735422608525646825723753633734005212896618718688536703953291990511436510402321772398678919753306470991338778985948765522389786364031890646444901661505525548916415060523635745917280258812276594061484934444926607778234657777797635853021435479841243264129907936086998572444227384650677792021707117136016619822796330383775585892818192654200045539001208466090917691039609345030346802979652291849351898127736625640262292826660069454893256921450874332570595441744398172797645936799223555451486405316360892166266407790897719107201057203620472540104130633870318988846111139233455897598727318392580980757033370028581355859909584234217601369403101387050440435879733654012922391653441328301040193976568747374107640685345792641304550323221177517643701897509197603092813868798567711801909174898302369202338744722215101597795509624194930792071289894270563350949437810063630776732734553242123290755013474396053925130040594666126747200588294389052787956028824686395190179981675763844881739466932302789489507230822079437849924527981415468841034979782897151633682448568793142930864819472064192583762155392278856079605372700308253422696780913046257843947280689297206547955193105819954873377423926737482805078759585242280961315855908150096171686558114661937696349256914701618384527402090278563987645363779099070565629684182120832543323314741832716973481811026120255297870148846549575990670026398009885252663876056062372525252056634484440383268577498983498332137452682119389475095237585044484554928882152346189255485205653238762924673295479384701435214226782717226464239800997462500532234924152216407083068401018758419582628528922205699682176649584298024574388132407520395093262372006376955645337847484810951001451056578490636431983111063789618182243378180555605436118259767476492802669796228534771254925955399178626272293082758594378575998212979462755814378678475843751494167536985248028129758228049754491856870449969213532840671728975764219704401364178171262304309140324801758518117115708385307643120811013410608080107463976299872885634496458739368691703379648236926354839478045980854495589003115308154473700009416543508427444359368686434935061570181744306182802823739650411733785787603054674926396428051995891360094112192351300049481285608613188509159191254366796222753790495811451466784990957267276371416966342331292538090224989305549106124931602542055318196458982407873788233523396297675575304420239485119754701572774095112127348616003815785255184892116074773654417987598251290152462753048828594482791167387603752164952459765074058962235270407731778154818388654073882187594754235524364779211249132515157342554825732962537005262876591128107051823376547215912942455648911511448810093184337578979814143233939032680933580371500284296741165941062459733775644225561631644116088418758859342226715127103857314500617068678744145940798531382485527765798392043355352685119926347748752625407022741409824326241472159355339043795088856291028175442625942279515984877377214054965055417079313026341884116368688878359729898576990916197046632848872355385079709535109113834897270962267866810563419975604147256296551545373849167517603520664600542993564224634847028781531445108543723292955884829946933001602653838221226546816376657068954021508524218837883295292255304593731382859971158860386349033715602155088975390453103725617231775996327384477674571663409556019726435108315586213713660569187960280484066083567129557933162487967938557324499680733504748435171010322307678327628516040189603613398541263791001026885687952380832281741054656527035926151074168813139347898090438386688826775324827006062430341168682434635805560637424236238483172702995738462672219973756210742811031896436316430534384315480278225375474377273199763854775943020933323439911258613983282934581821110432696380869838663929051427572102514930051905003947369114471454989384149309647860020692328532970823261994542299358519180858786576348642893657498535834562431578119797288387084010516614354720795485151660891150137513192188065696581441428418038751148099512001438143118341092024923334592667504276907572919815993029827898443739801697165565574852172594694409472024458490066757030113906479187242806474480461478960576773099770211447267187927708835648614375697123842569521951565976916277533612451592584144461694152647848270792145880461452814523483019688968113792141453407220560823802544511856837934924603966539883115481851404868144130966462453663108226452211619978219865901911803513024946348310967889132892291049864679305189555571805637710385829412224785527835038239613681649001137360382639456378359079672054558466359268785902550065495287768513853938230959276325862211453689493385195963089717990556778339852055959371808809103589731051872715034141453597833419196557652048140724169066238224137495069324700257225067257547871468723030252237437506062936245128332404196619541910226184338387231870546777223368846869316943735482609438501464226672263787113780368198766277853944173087703939477647770426322789318200280520536358954617060069629236568763933802593488373976897833445192114169650813706960173086932666543098335875646060609306402117616358604453105219075564626086970086697899847516262028419783056185763413039572464313815104133622944044755360181719849865560764001588653062752848064580044748582388304233479298805739423056947968456027198327692807227940597576641589596888219711366198057241839230769607570548618343778795084504952882319450021588145159273970624486273551841273911331058791105819498217064838581676992055711117577138533275127215165003415001690452849666469392943046284394109429607316327392884569781879976212824468039843802532618423756272503735188171269357488646462505315695936645486117105711611457131347420755458453398667934346834712634476006805443286788507924487858469994921791173406667471260327855518398609254993432207856591820722546993764871965410924604942666481351082282790501820377722962296174507692040752614098588783037632564079166349404382008137161107549877397460310941228260699229680858608092909360717365998036546170311224694615665716812873157747139074677866783863823038595836781429305860939075841484358251618003398675625670744821808965417123736204454108227247071257217915657323479826270194973135504431750959500181894464191844477761233241914263580503464191516180289308228115349009089043254187372368464973532314144976213395100920522585953568375171104690778362995375973242712212965268374693623966612394417833063317111051855346494305849800473167256429856698187043461597990756440794012448196994525278672165804225919512141686236623123394107134870681723868562629022230946432688723524757430458593926663564868278055410046591195066148061397517027732758384425752680375474106764205750178547900521128140813388115876196407935538439658869088003644879208863704465986742551323808611991435426707126017445236934461467671444856512199658327172068147732150119105755691177578071905924613767760118081399556038252339695850697041049079167043787372041578818139640169452986151926151917413604782349487111342338228421937498462719574212820250727988258379187892853459546681443905842444395403885636408118635055144976478599277944014175809566102192370438852578416224835676444103387503762100238997816276073878227576253486953207944239149138300477475225020273384593503155838779574618477507106867795941741957617136563419784401901975238898311830383551799330091216103359289777198115081167473338009029853011215993303598268781489637719004555961497128258423872502017307528834658445663196315334604152497137131955745463671583172722154063997694808820791516811238540469868390381900608786588917064961094526382657408751150001668118563963184303589375841390595947592759503985770859986806233413409663917212758574691095591742530231311253196854973390056402137675887620310105790087118422175676612728447097509737885114786205563706419918899150423238592189644692889660718129769198248836288309287613332065767570226041517617722053635586410769868794172728087355599153566946125021966204167398555539330268090203175622173418155592078432132330526381986111935293522762395646968407745215805251223747088223817810716268278748768776780523096154460856517362472164877220055646782973305848667869937359235241009948796473457745624181178034078281111190035078415026370385169416960913703411440867649556863079191636825880321036634115591692646776430320932541944444771641149394526191996062065753747203556561898594322459740219776813403522724896929556471028467129066863615909389674264907519687275673527205691655954624484801897149374210584013612217404445689561689524449877955183145108322224624424102937407271747472339883213438817290602901873037802299327735227793213960920754036772481047839553655998417497430028747083869825326408314011607517501000327621010281089332058857705282775832304032137975350208560774704762796707775135850504961624909578476038494700537266262423922259734496986891701438422000176515771705122612371212968246781142398954110048655944105426672997043437311665479807372743037520949294340451771192508236620412067897299991195630171595362358555390314690583924436187456830347118314437712526443218162602961369432005458304498172623249287458632036893879302088008985423228263084244523538060635124712357196204300991471764388782067843966579904920375358718180117463427564476491269066289607884344099230966369328740546733528601516984230884169150302337948785092275583380193846568673244382846540113578795321948232277148438675206642954098969839210559687012080897342614610375864626647043158000094547820429781789812812310459738122873202500041188257338926799247124795361310219244302317633795281696662878443466471535818244755435680305965515300637720099134577629412552948093821617593210225024595498585503220699967511550828582621906732931544883089207290053477195285838311339348108140852863020733370080430949144936663249084161755959016741675785837664681282734949878550036289149759077585104910680574472244839339890864727199464932899789135212613050105868125839912661386651524274524156208489095234960206747114309890807116899215685737742712305134725005172353711440385283672433412369298372797083232575152669481538978795673069971287821048970272882267676904247682709447972623197576646569296581570501723916492420580675067656829215778141950292852075686993004099954455257190265438096423120139779015169108164105282280142687728196629229385812538259609495057482839729712911188231859445465887259103326219472978356623357357152272790951851076413844073768935742458534071274476705796871672764919094138511898814313719062962002564516981692569974542458031831681399044032041828991559643194978846958364716417292445871342328724493249467775443532196999549929997394617105907649374819604611907552539653446241710766318732964272401134324702472993848678709749259245654829509656985734864586241610328271631212503267212991953289667524141753442252103204398694257377799181842311566672181587751021294056268004193520829639378327196617280780343214607196194425924313795055321375897645283760025970819083208512098690906048609503847606609171831741381376855898308450296957841338861617647091646671300868898687238797525104446215867919191703931571114528732538895484817618962129273795151938603524698087478377606118873632165660254685879994018075028824175573079032388971801247927231528322123646274140542560841008255043054383658316872878793473686882018729482703649699509273626346278838627109432062723647239126573080033562197424279251468585677982229848229048799776785630478297400828510904371608167994227237116437403015669014476389024178097948313127151283086059169320074500751049706879082355041525889488225569751342008375136166256324144424077388979107877857787400847718475977892735949018108044680254373905562852725926220355621279916272283794918871628613436767176434336573245224851493310875731012244149343993202527391938816586177179720448836579674418759603934356258631038029321792602604773870769583625074659382588673317134645785151810324867229792923494152953082378612525892464796879985336741173152283167516814281070851111770124126042756986781444258778251769040933742637379598936908710350499232535152627130071084353165565769958696751436142872718449178963535183455773653099576428720892117952136526964824719060063959971417922552643920958971682368096169897486923850242744848786676197331296224328185011646539546283404570473699875343474511623596514828416486057712852562475439100801245311543464894392622553617270210579530186227839342712611386758650144367701941699623150049038671191626577496609777879184558458616888036947040373662603782848312620516690991228999038607580158202490330131318808784993438379066561336861965634569141040390729697245775395195253563195416740425673694677528512113150555164980243420462099513424453044009437063810856774243346488247618277445685157988440538178964273589708506544758595939936880714628050350790477562796014913737646982908081526487967963232953284281413584072370502875683244472801945370330980357314812814401552192002752483380293940352400755347475544479035480570616700355395710515823445363160819069080102234078918693555298035433111352866813387885688087826327586756610057032581510943257623640518588002292492116485249613555634403024868510341684519427876007438972021303632321277053245549682343951098783874604065721096719561271170290007695607191955926287632569561048206503315576346483135894626118827024856236536283037833466734037826927608651429982311116277219376813413150466738850936482622856826749686674053919427370182103320225147015334577022569473103267380622267710159095837783018821448081594789716784488891627380964425014582143432545190367296052346066362192630018433292753451781565987024263193734908289325299970015842257068747164920893848893200228278949314024088883323690571982145412843118970609435510317665428548798639574410273303371000596615302351958636325033142507709875863078797790649543696149459455509285299191859241036858191965594545330130840283316849171021822842457822633138654611052489653297199082099257235143554117686756271109358364728330600705608958362776216987279196783943733294972822676950113929709481275064027491197327680618561798599944183703802996564082409018916752989698679512126013019208257898006573203403024856513287819468877249533266852041554912081845971305894195294075842923105708245793015342116349617878078694031317360302685495779122902710686082887991855823005840487533381226523473098075761396949171485870240968639208860447708010971219670528399555708531110410117833929149313323796004126486233420534386070121450853192680439038631364178884236583628476540479747530077182659450647007988524011447010630469295246535333757947105259717182496888901548450396282788261230484092313120794741714465179878004025377331398526760632360340914182369230308257264200088234754394998325955074811272135322450977916532073437328079258524087149818450039502892590390668542033445199871035461190026579828571136398338385230342040468203774819173080728423200012577236936779804988524926982192007925852308946637802256308665168208100411684026105180013754020863166990482312702424984125488640379191519779972656126501959608847430545315877212885800103094135036539135859948036001141693646873497891260543453288203863093663805195632772756233408006467632931730113265499218471945861210169205941005256181497436998031815874234423267308844681265639546304425265047931831054074944227553831263348195472669544765758442909971283416706003065565242719329110856350721956790723796248088791561093664174840790163406912366579956832639803123200858021283248615577777965680446391918838409509743281239238623219724861101571753288663469104746943331482703707459649158835608336634392409329552754590975396402103708223627493153995988892546619114875276138545082422824562262348332408233192249317838942612437301217852941355176091824916789762996641513252682054581689369840397546231256887760625553429743110581201136582931089358610654423122949248482011189973149993496978835679733241876981606874837348766611082553262160107496557205627427922682843334212370000332326526398357588338605907492113111032878674218174692374171255046740753448006143826973708981770855727215944863814225079433889297894963357450397474559521996538152296513591625532977394400724823991814366910592908884051906008293821252617864199680905612916029610204743899008157684190250373971051834742957569562416509449228322699639175138547008194128898503637378762965057954658165919409399949372989997781145363671657739628083332419252248052085628442296264921301424255756223171504056757280515452729344088671040214627002740307120059206673104366700105266635067288152051048188828175155681821072519732641259186289831281618025727056686463548648299051942209279852776185786312153552133624070506450582717499171351597348983911560420908197218008975528742686595035123870355197833043610988380139460357059860986189628898055300596497698922707977597948506296609557382775295809784513488697380547121014940247597802085364461408226345353887765674625562490511641278042601186680534658552333337934051704971519812523534104157079729788609277168520249667743381831154402147362822529164399754197007140099343581000410591428242946502449706045708237729731494662861798423995640591167430641479302940668364809149121712573881442532439888522447214405994465780923087399339448395013659005554455894619340233671207260736204919089359786691678142116801469360679920003481946667993429843942184579213968824215919296544996618167464487090922015659804252570026001055631929992014307219493258331071996377624336805313424523467763903363401830973815238340838034769774247033566497957992658400224528192630325803546863850825419755285632884907606186709803418874989148702756370656426563170300458132826550741714828942137361789745973315459095830047588008573043422155042405228397039422253335220184271112936844334166601679997030332809380909600065959656878041787730323510099573560319998052363086239317978010214820047690481670489902160460630446751670175617025452933185316596030576566388864345640190029478957181446518294686467888058950349849978281267730630571850165466301510756524947621149539596751105890872501008306389454838975578525211329467111386623137984809724867641862166009960052664330056678993857098936349455505417800438043428109240122567401592689620022933593167762596510293648821939593883930717914125380751082101380803803837923707790884442498689732417136271732985725540566735444432003226499943573378305511266050138935979384714202929732568830701353471813868336279897724137036486123058924335428871802391975390594096468686737143968011556450862368090753881432857587682555109852139254849545889747342149556084523842322004293240475252983570255040239748923821678467210724233963197145532826082855295709940120509288900306347865210815274556614435315088614990846449473779634664257449798796355271297208258233242690436271132316473462840043024375983611535618744051550571604796362376079255264872156507299216233004725431966511905396641579466311468613742322449242178390028723180313651356297940570312810454905719223184279722441127812836273438600188968166891114685697460968154708260432706362273056336251060508005411898987975294117198046159068559038862501281025283933009224052164516472037611226067779250015629323428474150777809936078118677704762687844069538473251305701771767986190190122423344567188632647512101507264971128652391718292185763075198913162944812586580992416031082269411947010892565413012009290664218931153008285561881011898737433908083862771094838952476681446799204618286994794430974255560558542064877153046882461130097016756105678359633005250301129664219498486772577567531798317398374159438990183982361512168247917307907292039670572089657929587045196793904682090359571640333526358394067157701372308674724064223510278791930180718232847006438586796717184562760399392121293217899115636403008384385234204285609357027068116481535961678902919591233260870856322876459121548200789419782084762466131496260597156756493671813881322210627916820110878756239490101913313987431796527200564024967571367282537869195822554179220412469294071806807384537094304007227569536278420294084502583844949795646564405315364060230251698958322724472678788894014330635633101323329702627783254828104665027065938714177149066627421871738218074409455331508689134845743876830214817854774792792436709819265437817731692058742526914256253403166634216393618212302128961711948338460865911998137448251514026171603300232675586927921442755872059285231079134908524611382092418755121846081458090260183746918892206931202299613058075421997444401349954825634559510516151710873518563157643196812401634344653226861570711975776142442598910080932469915333234668249267975785266197064439237864467799510904962313893399791507644371249935371818234207899118026295638181346332742347301390348431594271376143421351546266369225930704339040776676055180216131236778344983850071527343621361567208612866967420678204727629576271799163481666630111050245184147508347392532143127197935915337252353949760310090323814249533112886006832310865203370244816671804897150416529707454760152320411231153934639888901628681742215274631376135488088028453489336275064174106194605904510023810203738195708770048616528011135195560561978771805577638185940765369494356421966880838888570374077305251221131067751822023087473217391936461334082635009588191878072692618063628804189137155724957583909897225778934764517799299380394674434868945587055865787802015196165357644947219276499543631304311482805691418710302644753445616716773901998241970395128245116624523446063923503237026674899358049063129818265893376221814873539320070409872038417681911422577310941032482605298498372671174278641947254742130125545948102522564411037829968406856362982582615504801029862329161202912834055133419535883097514551717409684659890365721322988765028113752961542172241425324822204754334623452762257872954703340446256042825221415851299651396482574982043684749808809812401705828958591935314473183410945637741304947291238895151090873318266105379174846752940610403643641893001711341062815153496928981933051652827155894290612821181529755673561079503085048618292282589610029860704227913715285198426237188449605913674748104968305454864970343895496796228571635471834561628797044531031650930573036010363150227638882019818853040220220692505206746994786961534562978876708667115973455128648722347244417296561570410014995635760078707889452621291064374475088009440108918860809946219589951683390380095252842342930429456293453389855402919781617946300735025877026294626732186902604530725314030704253977901136914649868461793080526898105856438657604723135356863076304474740740480872783425164732552636142360825575722878604792880524538602171894371227300466620657560371159968114440891609963916818870847339191569909254520379641775992286489833960983229390958283138337650939761761683950159477478317234605718845020219332437814009113273112258388442770705757255068695066874771747057293577209250357231493003175328475726913621606396718405505576210228473991030762429430768514257080276193389521710791858870842809720542961358582251319553448884316414162767706185231416077195706234910506691891388960295410372090080799975181025631921798493446704055556585314590982962051608251691531621374679890549727712246308075498811378011287931693597739603782827852649645505628783441724470934756629132086116306866729751605819263756462249130694786361648068263681645694645008780083173735327722250696581607120175018089597782055988470812867240944590151466689271167977174231128270421953781647073815654354510737178142559435416778776099575567293777056678119921211124631701745368060733335935763591296793285222214421861938805476154095594906768291865799239663343810534566197034328598128254342472348559826395141909833672586383540147048191510820742713326615884911798200948656253623495280470618341721787586389160305961558727299323365469854689529184671586521048612927106649904969105530264135391769907422486888839236412021451755059241853321554707726783917605566662949081677628192598528092884430681883311743812137521498520542378151155717959305888431012796507319357543096400773764472860544653874184685684609573456352475871785792353078121249851001303765214372031836380914009482473266375587416894898315429649259691283842771314493483431552525596556908266509123788198204247873279975905662648346531720186187821920578271826481136363352120830554991829145355308051001059645805605941074721237743257104191392471094444546552561678549592444773270324654174082034988997857769606746442337399180455352513145197898325861993745920461122245574625047689250579950419347912125511927049851504486571290528532327473990611413419410756149210061687160755416227986018591797765409714339453545966990642191556688164118316262694567211527195295808715131252523708074701447014253641554533694216888640819817812080185471650384908648656662693829588022926576424310400383388453789288259970504875416429128183108987434956788577447960879981652689969759143819923115749322463972725002005972828031441706219418601798768559939462370343712130589990597426329940133958755016248113197850894163762826373249250576335953244787726915399701767525930150985673014900721131024978573110035319924948852005522408921819239233218616066953957443744748130804013554581823691226328683727713017593589729987604906673526693619001972191665237191284868212980364227657667710554422862583943228774587575814605786791430354082282724340172914770462586439268268306625870895231624918631377072792059786788281992805679362490239689338302131811396598517418305158363377061002572683995760780382419422573095205579855855998962666429255922065957975001488856542992450472347634509567722375448166034622816609201544888800695789130782595021772828177284927665042543982704922884307393471447407591527837276594238545853258447462461126794032061246441073425921275955156548362706589787414660047121319099153673726909474277612396505084136087019707890924005543514227213638437393125900605968123770288892444389492780649848408022976964676141190634118409297028024957684159077990487280438503997497990796300121530487987685990295342892401280952792074132245788948948024483839752756074885315184304804052820192813692151552691436996193742861325230064152359670840081232633679527321242096973034563659739072447407264771049207167462392257386504037999422508513566426307459100411626408952097900968067888224588725362396873037454843049395541371568933902026791814212757668283432860250852299243246205965739765323674127696247646886304749672793086536415270259722680993015500604551443000302097083338706061512357119444934649271569251186235540977958542241977355876989972920963408099310951223219501572453404157875240657016122347665750503365120639010291648845306505486481834087846786347693420120719104025571755098151373477015461897427378006446185860630158365762039198013812024176316991923500877550140332297126179073758238472556256863022169764746760225910585795405045234083938294784928933475967993992935122162996701154513914368284752858616853264074821806118415539327838448777741430817559709132086955361167268486560991710681169205558022742510969524791665412030130631497019385930306847337915133229094122886901244212871631838579265056192339057026858862104474854566221822936605959860280982042555487004864897362086828302863837705194657294463306991770881675069825164137963140272273044190806655721529276525842004138908505356181727652618050515495939174130523606097566233998195535187396505683866311706103942326211583325096930533949732446036479277739005164281250843250772601807487824859460349640706470949666336523477836646153628524786314637225121107129658757384582692280805444300481599585614023677465157085523644371673391924976412992808963453633791383642670229156223742135376324901376685305833996082260748198018522868084121221359866000671139585845029241748164224077619381969066489432348717607906937303051233771175571124489332457339907993761659320643182263933860352545810299078543093288190808996069906680398676983911159744563484215375117343312489805266653609056588632660427347154118894302202516476304245416829855845478831857829516026950511300824603368048612407998741083630433107548890925908564038201516609695953625531630885870311939021205138795698791546617486081549889233564995125458076838450599804227722908209358779317510489216065628096367761859017809192087975818205215871472430741092982334179915598369041004564692625156737386891255412796964703144072716138555519569298116347511695077082149570344661112729033152326695534793386217727778486142691032592245431798207400884101234410222728364747499936327734201413499008886328343502861208999523313129766450065767065562996544564337896522661099545682036486719604964689583114934972839683641248833233377415425272699714152531142858369496010112029173799981183024963464567484344918606347894890914895438830627887617158894033502640906543193376716701830604280502621020554517073801672219433047513012643345560769472216973107173789441358547474745749130247052180504555005318528115068750069279099501681606662807170728875510574265064303016186489283582031966253397599539680585603727310724977599567231670965210293797280987688963182808341760884751461646775141186278870872607382944333755453439924418667233898883004861897053646172637921733820558897191537299776359763518458208640868926462549278300336917748064496022516098396726685709246900481695075541920297421170646165370983726871932758356027177171033317322145144370556091819515841183028879048933858329962290857931314834435953067526778066712459524805478138438706032526605701557973695013638004383522296398390221267601282521589656090969633563092445358733268425305079897803774959552815263785157163256082575690449315382661201869637412345064833588689664246325178459209122034348172937407864762006076113958553540042085292683743309215646154572678695463613558676933797721201977262495996727013146329672476554029473150931684910539856240406056676694053747364330206614557494705501752854556158104605810473543978398252304771227472821104311266162207371337843713141752863522120970889585614705098875954195688294682149823616151691428576875983807668641254712926530733607241615420565099530290775794363329512538111445289273341054934549892208135812608376196271825832308146075568779909276838168929602010917618735525212366771964511894357888610473580285813349956054430703738055042102153715299609491422838022944854198637953785579967909947114400096361358165000656371069869792039548828275504539051832731044213269717932108139212159096753558043323974895034541284878208293059000581476306896297079374934338140600387766767354124581771145261627046566692697336618809081086818168076621029545221389872211902870584517905145433327028472836663809302984958515710079664393604733806658674860076195818066248339813293397859024133178668849122193121009561726228102387775442291354221829423932453520633005573339267064441524495338088142904935416681248736106732183666215812350744642571294530046848358481727971042599690597145485518419546657841916200030439065502673246291322254458402500503678640162445179474059526677080509762289395814228975665060136950633235438816834030623158438584692899123282950398416008917610299838604509120303986712184098095206943963931104941977305018978076272335021501114193078966512700751422506169717071036364059317968379784848809223328629236589249128994317642639553852719494755173048692935499155559972339214314804985311188878777591674169762611749135151435042818711273458058492738924957359399856861311595592940044162655277824109144348948600397212993274514177357333586441195272795942550345241035559365703322932939436395393801541102609323289259855693991795449986653646459146707241547899743715644156442937718039471505251342710886087580613716215696349272886541187275375643178971827197590769511038465010008674926883260682016463583209183800229334572280065840861137150333687401804520203331689688702439019985854897053536872396619441191829022430986245328112895529734500653168239224167963587701982570863137379115425628787386792251265513221949047179883264426637165099494306353646019276565995954919702522724245361110588216953277764700725640116685367379095788553821257524605646552757708953644856109493509908871777174512994934194705328463399616576128101860667814911909322093559684133873998882683830611374235520340482105517764909673569567164948188611328414778503779135983906305195525235046008147326424358273268745439373663668767716990418685874586103866768984882115836344838052696073271935505247808140395088818055734610230192340153870609874943008151975939217687966785240694083116285782179293694875616296012650988387910912929197330248017396612223472447759931509395969248975957965629696931432265442381331606722111148671484763692015161930936828259931907250135579294402120034613474994686297384085976676714925177048527914057004286418572868252828374717146840231410817153198017825181179832141827922852851269888352737606299749453798831092155710129012028993247917966228855274136211736768760555328963972239030931617175528787676484631196185843344833729213185265639166386301755264564172102978077638430446630928091822368276848035759730650494473297983465194928938828921830894523285427877412631418881143920186173503281603149620980823234610437088024079731303097303084599883447901231722872009584320100193328863364609307157068992425899265608995421782353512313908327864117045781907791920229312746735940717414283474503656578449332146097079409338199550605491846328315520988058807159344632304898969730932145543664569755447239865652537677497119930054063221847288630340063193696076063519702100602080519576435408499670134694472948320660410680398861360492514460876549375481228828285200842269259586697549286228980252414666323214765227327143291255760952499518279617093200217851203419875962291158335869417834699703179790952825310612415346223159300331209569653421266463261491545141353328991485824293165182399919508454624088381484233895701375289467915760842873668625188325130241166863237469096204779123198897694791670666265844415003012153923320727256592339659063185576783147040523541164299434566478850893653566670384046432503496632405241460645257266231612464062072777112892294866083674400115279924505229236852043675110528076334258994891582829735863831794103221238888286653384782438944793961473127997096854063844133687883265662070424796184114705699520198190881509154657160546213080284028412637585761430490918091232178037215576476545984797658680934698486674883669380419280343873673949037142622172079644258981965627000951255103622246104178717237968946147839839691686970194507255480801433300865794463342154416804104563065255728981873303454917322911235353682016138512572815172380541955363457309168652950094885925864029557949483730021419118743954273433837733567862038843856643332855137919994057769142242073575386294512311893067159581952590894175326529819892592417023942410391917137756809636387847927782551603676921394968935285998237636536367739948485719020405133765321738980800329498445516178787460284797913755635699772521094347664495071061177072333803561364304579292576163247083670217450342580415881747589334914172461686431585549447832245898128384485240261699996609484429459708290651512596671954452244239600888929062791024498012174055036923678853348428611188052052638815947075980789408639649567230502163973286793564163874803692574331787863978260700833741472667698293547175543751781688683310194305409769283006437207274361238248389505363008617133369758038219913086204256830896938250969174900964468951677055253090547970635663335355934852475315766583769309504729003601549716189782956161651893387824920425456457788934450443839680097864540957894040257311678060928451777923179031418787023524428485062467475814972321630104967296635504952168567804919176477860116183548501326611732352016969390841251365993950960415607949305882892418191917437576282431483079153526727890103023696731366521346854312167734338274209747876651390359322383679594693275479323403428469905119797688036206214730286815297266503977105108607967278761922203292913375854703230034429003085976524871331367769619176848469564221109907833082649150450188183345286612386725518564245737382292651937958193620917952606351834935363967031462901442981973559338537434896537731230524030650920477064225425221012868924575785981767529640468731614839345539554906702650576439744935510191035518186607618497913859910789677861086362353492973550937339893943825772086918468235797309322056530043231071489204139988188872424538586641402088558272720921040856337860256086225101150541837629442868408108608618330626941180063980679878663288085151539894375666976839073075411922915350294453399549143393728017225879608131725912508226262833508339244223378830979239196420458690691643740234783596319993175200775428833104060716885739414165356336544614351903169838338464880820842648366847052645456787368543805839213702292406880844187986723702089143263564592730619078915969803989269240115786118435858241585111291554703963341299981358354108952458379921133684090074272105190266326972232318592998628010296417672266519526931327070432541220899323933431733996904807630337339904577717842066622166072637228271146914633066386788874025408732460621628225731992401166045831640371277467484325776728800298486188720003060907770703635434062268306136340626640164305266859314273599084886310406731258933447934443875234824152184389360274435824626639351691588842865740403176965539613947821251966155208791573976446649996299315393429311125998333099730217108756052746087814396572408223832353938836930012975883900670507071906469572548903303842268171111476404591247415602237586237360047308403285761840721095780276652794258520131194117528241023379378514291285240482825105864790955185853501651458538950233015112451332451488903304768201668539476504619866204748908311590263550723838680058082004630143772461508210031172514275281568917507354772268890123305684028393875103524179556625172616367948476034772234056146644332309359752108923357661670912206375256312885919398563974883718899861706210596926029918732165275599575708742708911286970217341617518244697025852349814709596911325964682115689178750587507357557694565006794371367535665162076287072210598371392267740574388108672072132971283946351535878997999814475746056543035429616185990486534532264618672847249830605007853576578534432866633029706232866706307127830372842924652682094653137360266202636199895676310204959347795200274393019125691953862996086767277184110987732314974477680786029092123132430911939942777013013405241622145879955572065689083289239238262809905158584478188105897133492554464409467133425415234144572453858921356033343498503851317235641577363950043246244354073667942060631387214595705837992279344542361685532877299728790094358830585332066474082897361245499595050811907975596034781434467969356164748301899561792299631016139819652614367356314198672783821452740366659626515794437001458867661796205510405289399452679909003645435094699809951576121965637498045348453306802530603293024595358639689996622009230660804344128450558213698449459525411334489607984662755498243156108651175479437980702343636871703767803467806220564340338642971792257762594547988419162294084874032099960784932993537631930436370797162076169667694120874206294403689829578284610072358738074351129341612196050343400161822802668137411228981692405891866565470397754798656729496831265191384653490954533840274227682928991650807814320325181425372516168022605893003053423078065264032663447726715257906584193896060509158435712793397398816344050383999437883973984811434450295700010009711318715164574512429656847306029558084529334480889470510473461111599756873955795325218748644946876163549225528630825445055412086621203625525962463337541322760399526975841486024020195413898904447851519517835548962402498632459101388901233388815812597670883617654769601021007475507194062651269404389638840194800944772435175312542185127104694997669947598926477806879116880307782522374404024220905155932282257072882573123355269403678113055256505852078857894195488749112578892730642307510899209748354119073964719582991024586685227541588096890282283675989118871114480481716432362728864011868579141622433625317978016746548866065576625449897470100869249097274947654049401029483108919017765984074807956517104885604531269274484652850345337346180163351763015638360182890841050928981282376601945352651701350164838639864262230000100166096997809506623659033152950873385960492715288913652164100775619538829490829952491119551440397426510577306292472664010472222595489885253378625710510764630083249773254923002397879625300152486469233184201674574763866547317025339651450630809424161135971115134471545997032568150963917576369811049765533736871629245683023577938986762984337448407745671309695462265635280424074291958430946098851976502971723784780769291221040930524968959786633350298903198743493073339898629442304255118624831597079224559795823938356133194871528769203664050704606052539130345640572445915132441891791802647861810594416947396789215892955304185189789797596528866924387027974374293108199062775416357237378112592969496900466663251392740550891659265103778177190958955108111910324301470612554973874249173699808335825626021475746636384933729976090325090414678847590155638917430850877503087630341606219885947401224230759308444051877397949028552534968357521169243185615851674699551764574356576396052762199971871832330519997588224969804646423694169269527271331006555610686955578459661649149698004942667821962608338754786081228003145630389877881957644403611907581639772628698254889792520711791336892480414532984342557288253935771680048179504226801913199094316833541639928421280407098694260940316337356721992155423021081908584069527283013647335630800946524974806431107676385892670826469800735587835648574031081260987505103707033730313499394569609575757072382160978519591326198306036922751717283479023489647101628010022696482750951246217511436112286913110031210359583485869561682655759011987484500629726122768726606466581743329229846261878975889226500187733809081869799765179218210679945840706114046916133687175959532453121935187473236045203118270726770900429625627605789547364358941937663079765665050889408924889770403166440977898452146014665711733283242128729249116624319612136934523690983130958800754599084080980424181950928844311140362575161629062090843753811689989067756320224964908872366591264069247006046090078330860204518608201269212588707344935964069406277577496932735685239238005262930388075877713931803809575306186917557479309332961983140620559435199411580347343861343379694991013682540237537796649137320132983128478271634489452859154017454294188224164843312659196723430229701934847135725273749015433770040003927244207166466539258734581994640251992175988033159648783194590690892800808716774483427389947754559732047108855074303212361217265118034025950831582220717361535910851094370368029486261180645444088188428477447016631348058758322284345304660114261060147768526343019001949305094823908555391654673635645927330327642463208081838039294720592149177370582890845253637571620605433865036086794243017038402857675246325477453296794665111213249971692864380305868881997153674751805881896862368044523959982200180976038666687460907542699411463470012622307326288292930351518900259885221814894638421668218024337373658298185271787988090520388392253134121580096550139814323349488650037512965868581818679697500252619115428473009252173887340172157771875411850372865028842818603593400803922615700618387299108222472996737832748427999413602569257834290532215930904584798614309807359776288408412297937299579690109066157924943537580404280309673914450204825900515101544641948822357939129016467943955542087378104848526942582106574032539591776853786732715800149482127840746863400893462342579550720756310805418438512746221417641444393991293200881741976890676077144798763549532360967932165658630625891312926081081167708775787461488661831499356205807588159358323469948502083790249673673974838962748818925478961705850400072128820171048217656873328588810771909741443986923442774332206317567972357888657781077111968816751032333470093240984785664562286647784082525335770817419735682213907505681555926433963335642421700887038165041334229252898238365521025852351555673592277739621853891495071308206306851196662009364801563147910029814210921058003569827336903869288626766373914763132898946338243683679533166973662720159341597874165256621109698568372944335727664357543840405863958564277021877946366135421409856881528610039588023875044931035911154535562169717297186063629080393237007448794313927239812957826296078317556114768588965492895469760743711624022902028708381139870455461204596708506088300443029322107276479175339716064326541429043415366716075331628665835127019551346626691151425147632146780736227380093336223988782451004965502293907788541863898579393161814886461452431640870992415101144921858103218078470170180383761701431058941190509692190978998406256810343025878438228609365568227096071885784477391735548586778977900624400032249827604941467370480631591899404626549517334152530038434259800866062289805118208324679057899827147705084840892601919957934890695353287297276114864154312638621318090025930472851163528072245589628099396361520008360736728379578360219271874559959696803293749663610725098360349923073962979002554499062226279812472697219364019250425579911084253020331822839722184485973193360753300070656414624442531193252549754499045467527037829334827727648114816703923070782191933012130823191262682192231032528976207947553894603341849345730605904419373425999335726243194860036485482072662727397970038818630401610935086638410036783627430357361153964126830548133855774327768230137974510144009769654093171069909098693921811551603431360078646037455015477605879046357205792779959716349635126984284588187687407302057708749657680619037335671476322352196379591406468240763468391391054889793674552580420643870892465219301881256698937744677993001369787470410511765364475824807380284590774281193247748126052232709405181401920519827311690338470163026784264067454786132649589405050539542103389398219667222689707593765877686931785543096164975088950555686060302059119974551640196118658693316542920736130182564876338458729732437025374546870638458790583608698608411138344700077258499061322677653609017762531748821895218301946175475563678853792839834127240571435830518888287321204815526770369576517860490846540553975083051848364950730450244475242540597477435581913314189417373837492763717978630511369432744927746315945584330043202171462031231523279843217296465998623831037034808471630820135936138648333544736333455230806793700401671625935551831652690073570790419460324593040826468259178625153849837031908763120068744867095468425101518542050445598694388325708276498930107026289555893297985579565516257946639510929490257018192204564487503551394426282514589785542910277187370467152953651441356910394076331117057371285329045343003030126681674400997444114320194054823449553083237766713899539181916828437081969267399013412903649356293187614679780831733750692136166054098613606113095549169167279933238336454155496158149962740850241996179990693620114616144204600433330124744504936924839586627393360039239382863576605035839441448152255948203500508852568803344801947949881193907855604875689723074008394568933506314701575138469539767425164297187470032203081379765300761401679126285614113296901031635428784375630114607921023120352774340592523107714730388744008451542398017045455323317493033765478245170438487429738154189939047679618704874612832631858678977936869602676881329363301964886488866261754626339566354762909829115304497111365180113626921314785136111366487715246504607680895777548389083996590698518301979308209029015709566405526325624624627210516242285659346642788767943345410620616104257518709287967939896785790177649636123583579553847270839372950670375775622491961530786247876129290964688613602699564006701280805075988535539278086516237849986193107800285221607672122552439522850565714614237730742093188784455444632162035704242601536658323389068297156469261146924522878921807817216031481932569363782655391304100010157809311658797959250293507967965582082175947142014042430364593119434627827880183515062672707744380104789605020261682449483489005042830206375146732567943159069405996211913067208029060026741905962306699506647757166005646579680271095653242091611037814967628440159731023825118397659381130242598756034911225645128729019928302870479210341807337553584109914549079332759131740508622768133464060471892429691399338585522864148990296861696571709491919379077267231681330808618499291054143783002507596221917397900774530861878155988061130174798718263962437095539736679791532953799821599741022037521182597260978103739949315079403596104839886424944040944919989880486563218042609768515978477253785802997417993530513766307408501300357896951711776231905443858615229698067036765742115383929129312996120475504771041049633108277422448587746017046691399682676879490454129778197905065154198006123140019379631700316203105933828448942654508856952094551365774813571650051778382689238884595455597575906207321653661072322209171248286404687785687059465107844882527429892599830211459173427834045482490651837647259953556718861575873015893837607133283091258237321066962927948676971495653034527903880755220908398665926079001198483961160491076145752992856395627697652196097687166873097569142812429653783537626910852025772927755636818152392220137429748431983561694449831250286169513479338229807237029441931350353548383101185786063348035015914690234051794837055759849513551036316882869915297452017515474331335159297701833923142305877597487127373975189577517949488256784187892174689259109115145685281053940264537691487161080260586326121927282014176983580986585747967528769378496914575544214701253912261957153155983287701350872353930485007117239708363519193706681218593303492172300071753507715627887477106674044997893772176257789837487400863677717544934806036607646563805858457813016601609384904934262968891178689597522019692840347014633670319574276364179131334793485429476458784754774132552327404942503359132163673647710089646859512168463323006290403034351999872307544621122925843361077131971435506986851433967540910767179702392412225618672398871566282506280421300375771258068536292358629305887180458411812775220684297567486311076734478910702167569485058251072085163312050491482136239824843928580140084974660696723368932829050070486037013700258344268336953336649807239734585550901835881342706062336377155146100359502592112287200373998253697696047210873319206425375053325685454509888993542739838375889107977923942966218846364695666273346073322998463181318394668548440903322388842376978682143081991509270341697350440079917027041435826549276516563885286893798741030079561626286066679515908405628281117229892560498637982765802146153216074646571230946930348417231534472042728365062990732203354977839639994701275375375283988812797857948410119269883927335129966111629260797741795967158738848390263597861971410615245789308642426298889291315427366327260024797324068993265762494806971241657205051034605192896545296049899932687673578079657146436583219956391734588425774370191282544763626290564438443630980593936123524343071370471071847401456371857197511506185793323724617534261494172166098362405059834501922610410043290736139302433347734831893360169878272608588556553828073024437814155154689343808759293020232993706768237364959749812830256963512465474225757946514660228333638015601637120307981050968182112733590271205274864193693640698258718808634265226118533836988684427672895309255881128227269259409180757469505481956677558830900581806202481173709784018797871503356286509227524420975698637777503576458173721803387085814499984348804571270246949305144601541567786375183414878480065621108240064120385535636052422084155750809469013586243360077996434190350761992725143227903208476745551136937384569337656022524431379076753807509742234707326986872975967565592644092973201780157064883825614752547113544541907824903432812547318814037932269207966628789456495830598224962797374385281919290931930275667138849942168145815315006026738679269161301748557807867003892049431439245815977216044857743402443503896911309523706707527694795185290310781768623037303651995470243316211475809406594386165076920364049478225890417398175996550195860200780090850486914569849769175807925478219924342174305825603504336377663668104059338262963982992167355471417659698605394504446781859158169453632040603250262306686346755957729684494305023301122391516864691983229311449717011918870704459199628005701435651621479464956761122176877071877028504684269758852209449878676504910951678630127652905570356664797221071875073232542013427450517114353735323005845539737895699120895105780311463339575249287893831217103544992535200937799033661427566879120277137839008848655013746163864672903088403013717935335218228222524316304253030853871498337408074895917257748467799488352216393696103566355536825760539865148021836970575992531820117700713261772252619980597359587302492507217335492691504967818833555864448445281463810781088787582856807738377156664294836150240412554449719501730829911603220347036910757919235963703237788977718517256231435652265255742830998355577184491741700167626001605064560337190900709658898063539436346701956938886538911452104886889869236662850769974803483994889387017527780409079708176785366178903251067718312977151169151361765570582992991876964584388904938382705925851942864130582276148081204986015264457035262234370765381106999178830804770543227901402750893656871973512737032915625033897002027226270928240666437314675623731971381688427561350727564809516613402243611886741599952645729434812094997499960122346947278823705662426840566204250455670739417738391347586531160942812410742099555476456003751209350975216087402259746469188879682649178608763794363941371070629461422444523396961371903796009958676774191071166627003958530744275115336082315140834032439092821141855189737779131353438265729338231006920165659552879874985763071665312094202017086079128416698325714225079419578268638882263430317910445447620911012255825145411422189535269731505259345844150572684213512147489311982229355528958870706680997737826428111539954684893462708861257447685336628142001568301348635842836723428691347672689285840390690827284729686894684961964560956086561546047749482839844990324480207250834704875202041783732678072623486058139941817344096564146743912329414955344688308167202647824440105343102969423827612784160193270125041181498127662527768845809568732186018270449634432497345629166789223705558584102342067736523224733722444619663133747408571033235261340838533479555136406345369096478623988058472485036085545825553580490633564407440110618512597637907446523154470157830772548708643311673128135902904044715452518939813119455484311586248045823209127406097429322217781936877208264964624017118667272946351691774074434452850089828450246175652260135817890641376621911869678597525439411214890244066481731857004939626296021095896633733273453053551788647917473168346943718615378431557297064957315432978662405289479870349209663720372523608797769261592825832593599212883463980736824435168013325868560256137203164227324878361862747160660603319273243972622279975772304735659012583632157962285717343622527051589093408668000423951612880988119619242769980484519317089427919471769523233856703164707621337754048394466471459714859486333356948065689438587214071755126923120120479370100462783892951246105493680900341269115962242090314899288304146638477154654167239819497485220055284504725847142655631961770375194051771485727324398181769035436523631090013041073899811481691011341034016298472017181976602911659568043357548500148460972462336478550271794385112202759120503887757922885634083765250081347559228467029732613618094271171037974286860041525256942891983599343994546594532768203041738362743820256507192763129134109222364624732755938528122797320872315643915435668065298814617502175329532093495465112900224503562013637377616857451895425094741255023015324493898054239100043165706723797174161214989999023056745891201639774932707173133524373028547133388919146299804431018390123167630067014123499471361047773900357562733234349446427574724774471717766461022717784426449366304533527024323549134303992923319245675664017672946142113752509177793487018171554026222064098032594698848464939131147865194445058531552018164884928281839939811374209730794238067598634361839479167927260673142775539832978018598273309823503834839935654541232315739001678511240545807632178874643962218493748581293252276032925938285162656572868611957361215476596548102815065129416534538775122803366472432078193905025189920057333196535604766988117111096312723467969967393277111109394873763252973466668676341583368232173648638114724394709018192303191784090006267296215564273823588316009198658712137585337058409810697310983587022980875158519957373449454352343258553037807238128949832997473152752225641617871539701982678498636442797455100885551729363335030703244331596487293509179467764278304406835912356299659051629099075950762138905754854496266571684133015688058335493408303341682706587072159381221493572836432965439221067182691233022263419087861253878922046647275148380272613263793074829365607590597358886918909947577750784958537236340641056640014656647681616945729052273003717204998101495766221589664476314841555184846387289575824189305393457888482841872081115323604710247551743747890642833121132125943365974689016790199744421756394536659978156844652176669862933532919562957367026200429571790015547456868947769293472454395634396660231876434200040241345151471387773281566762930645468832037783436366700077976166957377565453196469472513553167238298495087395337111181216039359827040003056993179613912881149110644975773599240028085315405841185550252141617433293472841525940553585478568582664084081531497252826159707413968086177710698570073530325517311630083723292389299072689193939500598133075318360046642671867280390764255838750179318506421160863471132082546614387957662706610814140003069830821637025168261298678176260015891762851805670693824896350497236925672618236501543562536932144157185429229496879615907539366030671791260603879841346501857584864868733109648259237771439627596768890404913569051849502334605488501080759888452707364523444440531187343309926033926682465238482281887858458938106380555799944461989772664669345768664090610610686001087473937181914118055948439325782609246253477798911308322544805948745512909638753491156586013616329376973554572801351155483198642765052332142797336939355242360149882058040517581280681739990799781819251030330429890308884672432486864483944982276762476523285484689098906282400101588016684487564223291143671934853072149978321626081938339824582919978345000382602246248972602661975350399212031810997239281934507712103468013116259981718601648450469094693941930828492414404779916354099629501120393097800869502288969106919169284126972710965969023416319461344879053956191675927231239776166623447727612480007651220190170394878380898884462835943439099496932023237834465388515122655610482137037079460048638703218132893246336358331247017531335718844110329467607190812520581642647495421165678795768178878151057034852391927011222232146225610362326844979128668300046758374511488740743449345168789895847447201826372015591763464244667998164334633839415444139115054371489386731545602020775588779940219002055905943872963238283487914998637439744017059548513850848271589546594744467284440126946288616166797558168999865897267658006703093244451129238746449626035525873114169453421886892213407870793646480564512476096735609522234040105020135426504214462920949142997869932454648859317279881456842441001921710767731394961546553944664289581059068173284430807780205094088145380390146162472970196500871653103318020577227895405923073987768520119259677739582990007368807344758243172105385450068852051375123973876740978218366975379975112358407384276987333255741315763642504095291597272683667395420263563540596262140390893249479032205000686759361232432677335423824998128252006752535717291186990388421056634439172134630243920284059955942277312374879374173636790094465145654197169147580745961205840194694118162427623375191324065087834721741357398440019751867196094683848769170718358950027360371664134760160088825052290900533780517114277791535926114720836481263032172079136797976519855111795738123562329237380743030976876323685805702369801665101157125362556794501702683212092291269614528568534175951496286421535494133683192079648515869809077469817859106289147523229259398275300281196790686539743229957507037417348440742046771090102473761246569362563840761084418857845536205630842133779650214416317476934024200788640607119933773682092713309250306930448711252217522766019402995371418971436312354457378839397671385075886656651063470188127256500602324751174233963955349144860322800703150783328543690098796033921756669650411174141252667819182718430846104224140394954620204909753758464111184991102118699483869219233660452653627866247008615709287689312888677659151881966664697223710389595347563194463869164125572345451061412122933699102464817463987506042904470568189814191408822726964077581993091807106337467096234238148140768409325512929008187969721706415791218365893383559001953777288436206296361185052861830101744947112415101578719447968777400343803366910175470799097710538532649362517325566176751822196314199555210195077617399355667060138126252885795529614729547915111664774877036745197111755155513449065344430312236957671000233245648856173055356651591292329271012878217593939185939353778505756765275312503545967423987864338374248851308773122336668478614275813228821406882752573481361605528348823795394952230595286083787955742525565453175791736668167956123186000864754975988736293328811145641776955458123439633569881472618728764624456398666883081524457529514198258102207931556654759991799445447982055684279297449271791655858398019787007254554919610593787182993603108789871548581163409499527688389032597042403167565040315168178093429266759747597273232295966223722033104778409043895483030286452155947440849041266573773048145776249480877557045531412833369536872151807332369600439334414785479641882264812994142541736648831633846768752627046478262916863286768442447976637664240734182735810770480756366460754579997736155867802071700922750137774748314215529289292839541497712522118845031169551080878820759534769975602834176610358412510233025411981940652372141901140252924650743417704460188362935190045118846697267494465934818373414988192082461512121632901992750282747984250452364795298981726722169476208341147063022761995435941558325474624732851060414158151675561610029065500222888293616701923448553203592084715470068372390712504855709716075132036154105821789756663537555281238879842805006815130920023677102770239252525811837202051967732108267303647193173635779302080177851047446900055656778351472063775562917952132930563179005045498769265168731617129443912707665764975264355349273556109709956566484662128879681407145525803482145456390014725464392818839664446978953901803453462840625869701091545060179241038114377390176806705400053614435465656983512055133245112115984663978540942211915141943900737349150445558770638273307863540032008632373353147310119987429660096226901992433956642284757113340062767259274377727772855729191947856267287417648599849109782566760683708020628391163977993106939271181758429694848094047786320785990338700962042814204091732618720421767310387240633883513737599231624047754583202463582552412053642158790742196624211965583770719277994894098050836454963806178569845562064836044602562296349146535004493939194430299437452873347502266989605827010480099428771990840030385907546086651011095036631830053098306555357401334423331238690483313855337240404325456675824354305243236200737027987812372073125877774214709759038737163505566230719658171096688501726377511234919083111888661831049682183157163500336242464584952284354313917299178228443581349704978722787729652203863324779035784064422710677698648166443316881114772677726579020401056236526683279470631611357332441478505080176882251679184392470229006930733638398729328073901348402261142173078983502652025964582211547768045598439954373114847892479880774782527375761071605015074816848181122308257789815170732523785896045197960952309784696648548192238686965403965275455622218908295459354160380507747681839246463149395471542178188931289832967752434002638723417376462473562526379902525971460718866194223925710933392729943820182887030067126368309371112245032402038176926979224155309595381890796254324524536676543372589916995052007444357966580535281818344078057253037772449411170316621251610770342242267220434174546625254292504865120019490231888367956386525325225592419994736704287527693168607814373331427166914689992033836274705793550384807418231234849789188183911878343163425963390422347156987709551069584765790226381600452399531931996936863258046336871385868018906818485394406768529487000372522755108911760365244102046089251087358583538335539168913946016289204405422932804865620921617397054386471877796141406191693414524662870731034920525821925986180983353977568741204553646788898654978786859404176530180204586968412734636035771797879810577387059240764261321907300913362703578190933820851447093887189866530100368316257999156821193368014765385440908337262980837921122421239078103897224477991999116225584932868168235461461521010365386510802464245468231749690939481244065357549860744929746054535535476964243315004818426976250546399641175263590175652794913051995439064768880013501473693533279272922194584733729751489551232341890791807955023805414243106016639223033095865088122233473368996480479674610123718155694886145337500241963523586820530611127120905267836644168986091838860418195659506415618657895127298314568646809744561400720775857638311043440959227495459321793351097539692969409365738865482077565586083195096545736355304904450234351740268330800247129376091610524180989520054699734075498371980135074720996339955050265364701051654178252900306783107753874064427568760076705442648583710817483316503909549154849847387459025287677178060823237917641866541463946651861249547414116398887666005236490994799763073726380869505222588762223918516140953105745566841349238358213844073294991893969862694891720718937392497860517871247288387798063052692489721196718646056361856485699349602884627250375201593389587308016698932528147744723503515908649858799915110492514610043619940161672807680214396695642773693090366804757248188717252098767261928769363054641668487645725349492334697543077107497446336682696526381179260359686086864742049580657289961959030726685242688285875835181870331637431342022399761818654710190006309383985495791015845326432375131286724879642416118697157731677106156947038297828532347227842837976601351802573280795093760381395310508503782701887333850336231803382786508514314793013809484924626744357080265842143532394870421852782756409297800673328580648308676358200784687251379135961499349221464161654960991457703424350838616811900950489721316854501902042182194440986791846478538025010659031002184283609520810697030479426057013404007796592874776479287277303672244622089637986826878962180611498754282377707868601288443017256931830575168761781429245290128077747152902707400684449373039005694205529262310774135792753847434070589105566510221586539903831587623922934345824001337955710301660280567781473796883601488150913776820248406187663267970567721964522038333400277628021769786941721746429336187462448349154999456108089497771220313882547404300212461276650653950200267271741712306145593319618512214226059378191121329146607277291389590297250609838742183753101245984004854414902237594337562620571321328739157845359180637667276165717694487567576310563537685652705061040184163042013280508956992042439435474932178932598732914163105460008493112290546448542711717031650317783186931114082898102519646170714958757354835899424996282190802938963227929826632317137986937303038585788316390243588238321864154900388654143588090065695755913887444711776032501958701247064503822495622926108186901871834665839355821731265870915652307603683745831858172602973982963753706121057380087944148299687623704883136872344063150430829141913878766292395971272872307706156528446617854041057442091558141091928075914024383975631366660107447030792743147739371145365858600604111377871470293123639190635282276723087985570987955456008172942770175862784434892266879884523678742409480240759787788771570827265979525873450735661404861260185793417060459235080931621503899142380712986506573344604697699719998947554780356869203765303914025189295485505528860818272037878295951352680238807636456495019925408437872777819449059371122607431695594085963848037969580024310882414268966544429465443733542540964947149547563782356663907398497159726326750370499094482947222038110216814814849099395158892503542206340623995259133851393325649328985334498881891073072919914950488813074398464272537002678102753617249509308071687488608130154367729794567457839429852426332597667097014088873387511766543869496348708421741807797620866008472350880342582768457352644001160974376182451839175365407817154032619231944073801964741398986692898112734328603115718076622001418646382897289438182569265630123153299405922179908364281227991196901609605888375629193684778337332717343509628948439669340729044301949686613098761377132223619360940929807369615568446737208443597199592330111880203214055425182860768469291855619309934868271310785776330721400945886358634696327237844667918947613368889334287108020330927245041495150558252156135583628936094193622763616874141276481253498836042544700540261099623759118667713223369844148757809679773899875256919841375389091568213939055211439335979361625433474302181497538400385390182905865323803640491853467494635340976844347759154751377991061380967802129386949517999097372417352141023222114429906747759196535170901798698666694519756804109994787861087537755501308675367794808432388811606260600975000826833348556910933461893996773807621036326522502605956762868424044935354841571736037490712945534444953289663051981686656526637814837689813221655828064768183259664505512839492214496596426246465082986635235179598421023905047179518794457378818500619719113029394557921260596663247145878507128444836028373314045251373914002028871008802566762346475502506122351947842904383450364548979662687613718706821846596662868634492427475660189542923093813501107671651957898763062796605754047194559826626331212912413569951507830837490004312139730864048443372376007485795909796975959179751670379631877369719517990282617775110168034976348840991163314817759878641389909111651914424233854834458241577412046752318485561407441328765202280648392636408125634696979909137868985158042251093380718155624664818004752471924212579696044774387584367864742066580130149945097921507230967645119372189329379246296829712091569788874623421257335491281116677365813066086242717465529234966676321146045154849513720179869701668944244961974890330069708869082480526799411993593095053484193633311638568129928099884065657495606830683424366074997526200307716042665252348002762818064067314946725260557329743058583173182118399985456072935494994170300448342088780662387160536279194063871274333852817164540870523915760439518710479515513738790171719955136065411237268308433899950179139139889544879369790425680348141940963271183975182669938442641379094044936748743418441649577283306581749702364906496154000427590701978438119265127186793544698249708894329199273810577079689184734695356428973167934121655665517751646915174108595045151975974064124997365045999933336102931529460325156164840479687452883994476639369657607705809630860344488798211663679413544322467732942093646299931543414719378475219451004707320928212258814589668015473144814920199703394056908535201152333390100366950861278477997980664766769098907623490119784327437069209720471784122817698892329064386087072685266014388605256111339149793791327727125646219010702060428376890138044840412651230390469804230088222537881314317257368406883483142578297117099443176932052324562490484288996813657429481169851587898088872567301678926579138697140069592646415595234380518294968190849038620248004430572553305370484811136218798368660718275470617604932398427315834759499240791786783639460194696953299411461826351559833958427009415873708222502750266424946922400024388244514274369908770466895453440932116229300891564334055208298862209993965945214173681806360834889126440612103241875472756353689231765015944831294369019379638780345740975646696156750473565838854043609243783297264024231499146515341996763861778874279949703638153073096019352620499811199151941747387760420378684285109946649756036859432374369738682377374884425839034010174834859931538286317825400759376914393108482233492319629538274909346177184765511976232340919397151023696090912330924756872117785243696300881473190302262640580687048418099049441222871275922803603881600627282494767589687046648199295100834127623935615986181450372840562076099383345131645497801004195258186600430936480197725002989004145165609209134671531265812951131553949640379147264311167515043918904465499914739915345392141532641995168378265010583202447786529830559019997102119134141088285814790305720045095869046008029544505908161251931151198860595506253033463248301346938221937688106440726316275326678777514778415723651932749892167549245124797768305808420439737654203706155356979438209359090073880542909598944826562417261767734600241579378791360718102019873239525328544388282026267981496985587723451808523945229271296584983132202282456404964993072117002363870647665007168573665513048924664589167155388894867013931529221335603412441287191523024586898470652447033050556710329938741199900802813070088020070975264051984123478411483932904461364791500009256694156997210745640925772900492460592664938431976383726491343305269161171756774949732744036799168650303497464459664253676550357615844208429006906278019934027180604242247252613264508462720549812174463799023185449436551649010236244618927685128518243901801882435601415764061598891764063412608200314306381716506235393618777782878536193029601725926227654044484558504127928648828114843760587943908455782966864112504642339955816346077868033102112258936978350740498134544736613535259558853178463462544778217793313031347736885227455632131228759571066164581391021897124218263588612116023228582774146429691347218135451579591661178234406030101516467576853696827118598151075494365838251840525788127220763668252517785597089924208137419996412890737830684506303685939033795960500252390397059593377870663812942475983417374207198911921765382125359883595613053017261810936863905508516124162723685886379670278569585349031340625064233382219186790830123587060214803021232242932237068451995349590373982034955024183528152192338817966242689129128472668381274683052102824464229910953588481625628089268847229664975240860022267568879104782532547941022526502805693265079993122865409670510310501852224645359897676070785404417670098343856690153440333570335735985756289967619767761697497829227573439529195270256466416721619331492384212528764881299798482617990897968104406216046127149239498162899073758869319548707619167975724894502310963433952027907588441327079895836798393446227686039408919973060058366122674172696657427862827944221595051140926865962008152163347821935476064521340258977052031160972752331394651521270608760811691701245491712171069865404372441007200238965676512081629693762393037121467031580773528173768504988064961588931111930680679581947452069567838963798655213605116807857534849030899209379365121605410659562382977990227316998475561097900913855847341875362263590550827941117929880817595574322129466128936595401494340517947681810381893538192306663537061238841422282806792295984967120870108816069459030927958102419360682879512401165898259247939452980137266134811158732224649203494742132238887703726474829054487924720429608367827122288569974424750840842318522515308514665248797215282540306748580325866637955643541493503892867539782604059030231507325893342409120834667015036113584489593327341636964815489298590002794589144419613450525368623498720705722938568302167639974494216146194654290763007920908574549565238599588143110609179772062552498259401324218819144003266396635662450649819580767994999077392461058893533686131949973790459173340915159089133696124042057356799721346280017399833748389089184267835523522431481105998915237225239030684851065002261965301105252537870843334061507493501547812432589185201112491044698379514600458889861058836175830577547792635761779823416635852626472432765368803257226599627260416308285115558162482334869621901237211305753555411247317559487018964212908412067798110200047936778472482866328674839730400065112763123485593550472362059606123623096975064275436704852050235947490136452238456316125588888409738288635246221798691591154254544233550261249552519982382992763237972034241086959657494304456383877949616723405093320066994735832047210125446656379302273822573480789513128752558765253432731274392018559051911558292558765996220780578820295184868599598974868343870110839605755146291156302757022407685999861158905024894840413345448237757881464146571155882207101369000109439736531734141355152462440617574579232591012237482712505807019307406306378076840692632760729720650814637118555774131271933403313130533242972856916405564483023575266999104667959992044273816983708035632592005245214821575574482611614011127567210854026512191193370598633994878705784520047182182407020005117507766032175743181112607363718716340077687468368849265382347278026077385188770236894246597536164102424493606476483988750177133308901928629441607543647214742373172601553629707376932785790894715732013758036343836913469640298698313842185896820415949256878333631564168410681916494523357506775924924285107609796578028557080343060890829928344288898430575682274929127017121358167417553594563375073449141055280306390295771407833742594033139620481624053760644692982857668258831164861120951277471787755027687607144108858167028204747296769245311014060024697970713152721843200784228257800564793248623362994462129225579031650698340025014242614628438590649547605342449812463254588980231594009609542010756181763937348835858377235214351617354790287346197089920551486456949763477793072361410524020820525189742684892124369290999602542778062563375082462963078794434222796426597904302399914289655564256693094818243761281822055383649565033413841398063341837817434363755319530382586867109486870214479026986557359948396693568229970714490713630925658970927222349395676578880345695472882980653887715195097315917699236124165238382116213668662200270866024516018081376892401910983582971010672874718286712305893175058874229248332749794856703458737489454571234407799481028334330596179454845463201608325636012641667984712531340052983433687777468022006153115742271155187980783242229500386874165864360480231008583426174702882264610345156310287926261898387531829129353427261215592132096011488354036291910867380572942497090207937618023053524605283877424303225661430397282189124438426032596030856518041840047301933746762066749186203310874308726752623289896663730074843026483447692562460854201980851453377807017816521305024390344214303338853493403044300518278412323977039538927582608571615562540597972275368234734138271610372254216701575888535868456000726210368634960439391771271077286849130151671670959058365222265155660643986900531272372923753603047569198479819523342511987412453550668336988774419138552598878461853431083500274864872613431931001344092711601924197266877127182066086945140334334097523599546745545923778609385308236802895663337076215311022351077020874935609782228248553726597660350076530046964689568197671712358009832697910566439482835911518215087634080811937110445351086803346676471022637842368293881611825878133854752890336354196712486869614808558306817707574616674426793684259203951816667225839729173795924260270992471906995601093391882219094119109256864474679097984366155374091363233487774589367827480849079313124592166055857291416360430934633660664807279400957934784403576904184769999523447275404664666508822321751648993368982533212459553456494203197466805740423363411758308244532458685498803094131659831190893876702644246789144945516052757995981862099240738317503707816736357737645240289816497914085970026084797258052758593612087630989185951995798248906666205732726468942178581825064422754952901469933262722921664036005941503721940353403915085659730165702095987493193494537438102009110544945516554653973288991823249375415637670327378756808535653247434372572451243324615715779166742539594877938191990182674568026307034790886386163196010462745810399674743490167342977555238203970968854133435957606228822354352816371025223112141948930081021819866703598563895013637591400418653269260100634748441212449872805206149668425865796273149076619680380976893388976037582319404928135057649693445697870133756940126698370864869932724105658832597264499176230100879757353190983920070977903634112974189355296968247742593035573122574680314612878751818725156269870552279957291420302951012031999254238730795098604357910988574392028667135211346489014791931599257040457077237531176938753170475685646077279900311001227640549005440888430961504228453126046244477928946737931336375979059409678769381963276690744350078008407204337082772201230380324271425112416754168215621823176560597623027139580926952125172967255232170092144617890093477290375933979144617068201110644369241031715872991954039245287531092491098678811802286452569417916841562492249182979690960319412623810168229995056537296233725870328757941979004766865917763963834131640078302686681097079483303357521485716341602434703197884617163623453925843601796989830210837087485952672115898268329290973182034154336884241068436054955231235791743548392662805968853508942716662269584721763645250165869144972895949240020044561485813373656130418725646279566760293640690774440836904423868732967127362220601080064220539832281796050407671086178082886181957103438545277714380253641486146364759422555177498155470673932050291664893439793149404077871983983560988788931086549507501358982247029922462291348776768541687200897896274400006985824678902921264832647591028445921005759644824478640062112977293765409075807739067644851564114170195763708375056088622989586451337507493071680690511379164749302702290863398804030685844433365388077422236392172704721802154733404099860159411168006925551808923258668279168431317247845228938792234970226743725797542858787657733350653206968444623413283345341047309495553907840897659225917046242412222267794349434654483491300764963894551439833304311430518945337230022397604660724007503604912601023750232329856016074285898257423726553657452558949643239978722248973736075397308054774645214344182476531193697069988187063380026849559768291618716932853438993157782655888688311659782351451568548330271314363068814364114258235645389137087224715277031664317495537662184711631449873870227589339979644968086630586242410650776271014856661247041995735795039608436889037649120431316642248137770059782038603393318120655108532739371794316130657074257374542650419367693801173363686129307594083623434446637971702536042972744575627560860197731376815531817144352831975732695045917735441393813701584056946239210685727135435878761801880517093416933508393769008991940041463154198961223592236983141629577460227941004278490889263372987682245723368484326682245083780995685414844385373808842010671252225097497204396623805196980273807093420044883409557966277145704014566918308992074907313358717177183316634406648974333844732434787410855584800924419889780316440586827262731540982533834670342122335756569032793982245825269795690263466660763581079648120611611491984972610776323201449856428434407221065527153919755533575353990462417009522082184211564485884899960277522859685727930213707049399470949681304967146900104072339440774929583405958584758181463105170753249193460323115402961636895561769574356755173896404280065309199790175995011016787596027711613215142236760974267238661136238692350402279163104890590616100503800717368182739866346482083451237208354737467474204328249804828573014819363072995478542337816279717196565178787933564851273189191033485153114317632562301390380367293144756184960394519978553473316126020584458523333244103150906304218253380896698258941633994012914075975983786023070404985735395891196506672353866050485409171898599955149956734308418637168373155646685542054307647492542865731795700320381880172663960666975989303657097291594727776147893746781531665799624749043924586951983694313056666258535910536613633040062690649883432438378611194866947193943178595754405466693532370113383263149501253557335244649129303978414121072451514555869347769522838343239278911756466930433145778150226547139305372557809966910927986771369740961573879820998634364379454398175795850404552738290414292266029691714313985797217960622249304887515655049255487652632978575079191646879746833994850651358642470672822245987468590853742571036339902226417453173431993612084913849670432581783633726701415145483168118125677908210811717978782270420548674811678456736618176438343930000781117062135594113640471035175236199054710414873550447647167949337151159981064679573138817821052347585329347170824818784980189855474732430811637791211412626126294325620269941586406895549492836515959847975447529245056702814815800624886637791141490907779150264476152701419738018249834079822211972938048742538401691662267530716518839705901419280649801701876110957200348540688259357318447632837997480615502210912527521340012320574449775506144400333930204900648648670671469634323516172631037042244585631971132113850866072770493815847833688573875118379117609656785374950427963604986903362933513526257773714312521099064354264294619908443043349247899747000801013164717555943246668296303895065717715525220694425003731546259013136584601920358300778326002745095335615790612458975521815656814139562879182005021679685904094489683527118596705609378557357030507664821417121366542746309373848017467595408903026161812409883651052494755859984522007914944901587594690112665824445372137025910552263963995568729319431954813827126063511120247847302423365503518801869461697295227235945917092708149878245312423550288976591959046051919166932798256049055667411797956387642300917142920737845210553512748774935025947120069821573766207833761684277800585496192338882656330624604700342233996505264034423110365169380758640632098931938700313068848141597845890857174566547906264533413215411905383504594015469030791336581306835101400923804439636428428674260026701532394903687371468405605940583697511977196692459073708048537586028498155372599527375718765337379859866902150371190596820569461481315841718860274427092193163761646116219171625720957227843092992793382775539540388539857143235616949555588710501468581272398594848948714930518184342806362151708845737084832579584165580797586230152013143823192049715060877880467104699928606677446726424481523834192550441759457734960790708922896959635093444234842076580421379962496746264706574243170665992642908886869663208605045778305159584350629353420901756861772197961038312648787687999629078114529245888352933846573200903864042199357718875833745384686635666379662262119920692886013159067437359887303381659552500126138461067685710843879177876735769755817968644154425191333910474941298224860962409674469585365394090591819724752498651409233833926925417149659031605021233313298825752797878817930162990966690068351106246894245816542488208541467586710556807367150627820013527343321379422395354627621790490392950876006100084063972336011811107209975915579829606290094680563076322222245837008252319340918050044241409497098393612589862357909179652111034835915515597057299556463480241094748241072910785639224193681506675491284956945412400418713729280494898346281884107379111214206244546069178032298467443473429970109574323631317180202047852468358648583156673742304832003332670846861208350448999765169733486239795220556880668076129778536683698195088520603102482960318724280626205758510014781160932810945819028197641935826522466130859810568348076954549903269973591325333550886572411580562673410016845233535591911966484731430949770278199453893310320815418764964150642012268196177890328651753710726349102380125925462343420996487463356815475335690711486363978174676721079633165064407348774409326479369359009880934712587142985454514280493296679501470863121906238735768958430426122703910282344907064410234173427084244632026106263056939849257351288697137923859640360406906441869087083782077659803824671069841074465391969616995568074920639819448385917000726419760662443387514057221951792530973476575044361659302969292603486407473485474760972305558116809819930314566980137911836735966521412468546074923453581896923844272506374497342453478803634486050091572355035307690487164930071229947125369095159051965456896043039425727415824920777600966282824249715453948870394777987691264519887133374514746737109811649494491355928254619352392403251670837343090375071446977063661405566009775209938019427522338467004700474800790350680801200491599298456622816906062754832913491525972374426749028149785117425719156786588117294361255229013443379831240758287547326105671546097898469724040287836011314121163182520494431620493567688348723157882298880367988609884250875778058178235398706777352788848868598816449643068968043472061359778385163434030605717001532415692850242589670897120931119856908191447265409316294323279811752597601032345967831822374733043077944296942159798496278332718787118160310929796494779131641121379978257912960710715475796322601526308105104906441418327108831867615305530091524861829650459867447219980738615733044597486652621837543836471925266417389362158687154523993692208034611521749202003784273971944780539094177278476238425448482267744970662006595317865095254863350039266145316148386120832556686736401254283038457525835599112971427850363393854252393891786615882380430746508230745634641159490247149615724104018082447958097189117899753092450995590082157404514677185667130470494166497766649596352058994616156928492663422532117318810081871529106985181736574295335404020332753077988641834973696905499534773643882563049360387893673850687098286079829381426454033589690144688590555978937866378703487045557912437726983082638955836284068049393722721618642738210466879924360548914856160833316479086597850566391296250471956774082420959082444101512520427532532563727835299550157536355149770404556183842440660452036819115175260922487289443991910961128295327387548397953735254938304075064849498181034866476182619125339946064991414275239422888334824874439514502738842908902460299679908831201003361413024659241925221709947983280739907934871208374442428995889667413783339074380692929059576172818903687260077748580110107056857664337320960794768798927855258285482926650932198005821615071515008332583340403105966335225978552984966913230064206085265771619328586407700373975352155602155874586360022938978565010400629888082654814651147848507430767897461885492083526089628832460646290347735973928978742448452370683699275348940589369460189387856761577406674008548234423582219201771623956154880598346156473153677890646880835008901493895736568596006393581782074699674398590529218697585515317143597238609626101196788482085575650710794488970430895492963503873740112427615385954594126725732504801046102574365084240840393784009656487738957555567898034103661536508506821545005092079632180205187528196260487595044553879091013546907103620735156094956762754868649371717571304271861005448925811174948378497037898294094916220824147353506831310003934188185846265912615544160179326162465941783780971394988718162716172716134005754642984844557489560170192682608270735533623019358108715566017051221416425192416881730127342347277318594553718188878788349465016520225303978733764458348719679744395931618956277762118042653774812529413530450173209050487938382663683705382326180743285070689058857138420053184270958430034419809664713496033568567801517290463398079786331990893426970177007576430395566298490966121772320314456804622189313516779644236347163568727367399521758718923374543791590133903475601344353406211691944556879360504234730915848168989452379274683103017818186900626888505633667811777456363325376433356671896319109602297238514727185534967644882599172106361660814015395604546473635428640094613039561156536097162365771419336334550023621258510328981523022677105417190412736404523633419261768425647330352477917810013021686476959957616160324307921050867573557844590609324417777756214613518702833682926137424101148802371850620382095888445990835055249713720093394366303512174896348871625708450157104620011906318537263563067099033211829087594057250479366268497017755808548712711308226970348427107700254513285791936383652578587237532566852025884066427743411016006970706887217178913496088449963452871386180924238532826923139984847149869285916263297033485571345091222089634182363991198551455783780002864755804258975310911678898934114961332430534470615991394778539594493298070056390912108914422137388669864044250318553175118978876969406058251216829837869967347186492340007797952963901143570495065344388297960619690609624353810054284051183477353549190349783564506403976423879797140823487511166920983221670182038352961277448433017385705348446825788332367103663320067920266160811773110241903613569691155995545266810357129464562085625536662251610685160690763072214182511858614682873536999288023824182298884202556181484979554815257913685791944662032265368357065489771352574590684589585254607033927060725504903328943133935189294516249732347945225227180078306043231859429475083374858117866034966246370417696008158967433702126980476796675004494090292158619175938932173087521151571639638874815130624775668369042999086650848679877752027349238066602471085336866033139730007839244912665918967046065650890520543630054530810020039244613047851300878030958677410176266932633129120842877640300382202600339792763988781210692542628873306825020317553453699500995839710891060344173671583606210275009894545094866981966352532117699609758025760724666126808867227027337516847796703132089248674879146931874838816445149981103566283932086677057260502486087023138120118543902072518864610191498819894001296738996538546687403876637664972877711121749611218167409842073376650589830298542299281311728455462623075751780619450936428736791845768574059768437723200676616734828946251075164725486558120695831147873966973779896772693542006290886367905820095588466364057692598812033577018714266395082653096446861340382261317845018404127396303846161329410514059647506503095916873147247580490252028634007489752676567541638888757083584081837306821704787668505055782117878751361113720719941948649513082195849324444999438263594953915421748073289879704280458558466993814421417085971074612370477617777104902934767677253182187197140546355245375752596854440521833540490169036124747990301247928853373160008316881295967120003371550783297897903331044563305277040793580422471283862902693380519515210713495565013200273070005164159976360877786559746538013454819866190511575411966871991179486621702648739299937878088523473368376455668734485911775409693126788637195968127035576493094442444235071375849063843184774108292477582258110676374017009065386435034189308339058060200617715653339978051428517306351491994749832696267705568526392235601775230854235052230606067805605585735626447419586255395698071758589281618107626873539117521640450312076198207247899519602484791300222271989430502924222466987708133013025682519211827186654303379872193762389899850608820757080873541345638636169087347297592445663957822091360961993511773448395132305534289697277073235788572974706075072769793945832609052813652693111373419719284287520001744826828198521984447187309821566271794098629092190831486602342198174264645952798597036034178299404198123337685287359142043147634535976002693109856343244172647009076613717471816715383238048166866905400360603313834801846918085993668077071829099436102957780127448911637633351334024106103389693991985543444372899069003281237974362950358297290538779566479259221385856122625669033621373790288751140393611484908994089190068281491680095605508038317484162683552388480332186324379919970491369055253050988364457994165772031731488348003428322378640626761913475847380282386094546453899301700558107616027695597644378081741772335135649521161529044270769347318607055643282557747718152452642235252970163307446629074353710159412669670042794868630454579406265303173582475689974644219502791182579079466375606240705892241053559175339407184495626479884760699474644239272924824869413057131627956160792503072584607177529916143718521657571779491485381211002954905290116408047717567211796244692164113040955925033145008576756216404727974216244803918085807556322283935390352505159159447120546919246553064075743744311568635413060836139990606526259869033436828127237595770452532090670845776213910936411115433011626628390257753882326612444757596652878092527421887265485205691826742201408152898534712580193409443627792162951903414883149220656251259684912736872468390836108481345245327026207157373758375940540365176267663264034589742403001435224637929015312374853911496011102305869151169086547401243487838558710059386028033031165109211228405605099435647173110183854410663613320632327593821777555375602228049259667064327683174233258790458352151061757416876563022990480229197667051574476282768722266363792799433618785600127710479981079877399820403020752449832586300033101407842048037938201654770388971900540823830088670893880378459163222083821769333874644573386163663174985371744324871668616849688555211857232676392597096900490389320650502090319069757185188313215334946087486762265224514867748506593401028844894885352006920237739297412541453341469711742590082406465117343506681252108422604236801569922577848778147512137293745461053136301776680675083049714850361968136622231877802582799811674148154569465847174111369154854829400842498850818397240529648338215870083454625785009307382061585461603960329086983824805483423193960893813365753526193848146865494611079360760252170220581062715584727892169305518069590112904433595238913855308171325260614684803696791836995701621232665329108234928773484289097277301190829931839101294573442166384149364390627918420584381961157381285231074656366871630940393477052559055214505363747832954520802221623853682603396396120949146988106500360083792311870676858092248561544011287265293058816664044121108692373790122869715828887110754351703496966646663870160788849052840552061157583776886819515052451500126135668033723296790527559805146766606768561019647444690676887091454135428399234807074392473515314595349368422824519536943398812544052843097323396879486562790820742326828710340598051514668421972942391474465399240002626022323984118480544741985520730478259394687303416770540944052884670064061841480809281127414702731298433179828340212514203014601281318016432718339100762538369363091121804378509893930126558641860244431987007094594841448316159550595920987623656227181830530851739368425387456468895521263309160464278019683633235264832984308891954767016181217298145318080056897826041489486806123944242873300172817985097152536414453126428199978038254387434737014559460549611032230188964831497970262186758135169209921964066462954455241814161996076427756454883653561045479950231401337863251453690936854378275579038784260352473635035614478920073452087052031678131489745553366810350621359458429166212118908831522542699297276894267222016576900112558232304796321866513267815534495894234070739223334431806939651017747065887604184764043891883630800112932484299770204130456329540712016552289706117604884683785098700876686076542943955296492535689201368420986012896483587154513774067702299348552390765358802722914895981837205927298465934840455127930510341748116273953152344260815587684932506120475962297090646731795863003811234552278841456921067834265310273135161835102895050758558571355804835163094371384478475171427277639545487616374214845340501873624149100612417269291084804178654444617206633094302659576107667300198524531945627541707943753271022704515952453346353375226445465747960241827050452129580053193986191747543431530920685883657199966161359632559781056952647857408243530502290214955588485452609130012150957744003020620108307900696993504414964164354788935300222680139755747489130770254003098902586598536695921435156486927944572652238265725070069594492486442227234438142458243218970821702018487217343218317756257325819086807023020438898226510101467924537417806537922279191649531476436764253058642866683460326240712250087413682051323069984191676465493480112371170318011968292422468375230020992346068800930641335116844938926840863471898406266401434109043439671250440867267847023523510828020276139732586044121885479432800605054369834120451930499439644955136502562763496745274349308615575332316311853402229405259162417800765457166428852051661757526718611044556294963338589348763195648959305266806352485480750987511158698808340225458005759064854621107229911893526009213666416108119333083406404921028292336357818230319835616818287649095680663053528471407205090837560815914324553936818391507334183107230928377906798191669349343027664992519241774771084406489459801503327677554352477012447349017551440103981107394359064277113774063341449032689819923381892556413454182895100918549065880813944639213418655489645094874290019774429101291967804360753601233828726847919149906065664033978845163875017286415099364332035581356524251783321573609315714937342438182858878959491905579731696156629108248583366465041352656553344224744420339950432342750879644271173737901237433010590346953440967228704343484753775234033119343093906650950963875959119928093795913641386201657973548419155218775414108535592767933209945144578738877159260052012116585941913935627195498172512159647223105063663693353490679707424104126453495275832198565175649113441159401383765156396197791419996281660530242221924424772947997365602108347123686572654752859666115308510489170072619330326843690681878786161878278439129433357359134600400572952194724911795253763073199904339706104708066727512316217796640771324164439352681624439583716884039306557516763023593577887619887060781410052677809325044503820378002586906873283855856549697461690540111249979645426428554148380454848031422840974971873018382667594178691475015838198490904573105788406566454101353481337138000728939716124139827443200332579887683522239531007777527023168199046227430073584656870999594323298581167291364705987643601443493595532172213241776883734426835519638040721517936723380451232704727656032084823712873703997815511285247107604208531624422216323280542422833817557112152659593144844916726312810990619743223878849086870583549016457774302988284669425940366491231689474767816731448500176147382002876721167759229565035129765121962930209922816734319855856640885464301050256601397294123917275226030730390176886976120651236319238000744343024053732587155794186348526336391404752104024074095379614825508255714188309446418186647061904302350254045939517633849578821392536773911480037753045214567078185920339387353315469474908726772473915517689464429197241094973616014799617898160972483182288375855034162307685939579908604975246173446377978409770759575084796258617506597262740245979159823071178032045773090699631870389340614174663972935494951358859649089311906869786412220946281172897246521896375982737658618506026338694210728867074379604170730533478252976459919687760737389798270105307924884169294373395198185177402812558609309823828683573397158525710629719520202468672838319698887546759287081123563870546790784861158170907583060199645974062571172088683342273663254773641969467614420370612684175429343867469730996441452427707069197539103998559681138758724911825276459008885510110333605263689758660983164368798193583992983863508620732795678823363199867651015041796979655996238418531241924516631071497324462249427434252898353397819798709430093436898163482128598212496711317112095999563184192888286031926737753677126274521668923713334213106332758124943918380626752544551727703218769716640633160881412590217556678022567600679453448670142610260464542335283424133919561279727223184905394151192898374332872745705456978168879309598378449505908901379071688877269410060622555390159640169356332687762881332692607152511906342785774962992266309664161697475113062333793121845891054630668302321478084336521199131500923642266074133719376332170245265224231866751692313626305681015216959872191266382711768416933704331847669470975544227561100454539775906741456046016723450422617045076424209056349806006590838282761954278703435803435562000464695705070986178039896292357949516875925419994204714033773793523537889146195945540623566334427321730514272298666435288136190477469002500758560237628747174036278197924575547535546366151731524565318353030155497867519437402328943240598349405915538347249862104769496538667549926890619089573800773614625366719647661942065131354249051773823384962114637483876879338322882133266253323148266186278949366142848790484935951325742667360918220132125008942185566608266460509068851859243109660084144382459614446863361989688794257762829559640554050418016362233470946071823976552040453211032964421636846906643689742960582509431779947493235047463157797029342495059744276818882984311644859941335309946706342609741656300181543554242461180755920759528640748798384244168039604322501823659020629167361436192292490309616440643243463535476326306053586495159770055531433838830079231146789735546894906031808830452464228598928523059619022521024485080645129780817197262748579658323694083397197251396683961899739913654585943337730523263236366622795021373857850846452225858422652886052715486101901074917042283163560126838920278486005740579748337874541388302638651308528743946817426812516806189284025806594867490899429035084835794259786946785094621138967762432394722584202850819898784784227395593135949118347899865648518653521012406347242637780700859831971633943855437400674785727148976384201651135589091272004323002721547413704611222746423400337884974399017865230201168849391810548841288404583177154156989692365045886508607476777929651739011363191506948277574295096778514385943616932004910196931823041313087710871421019789983772221988429525706589892891598620040132685138905479181935585753528904206227779140548968507317619659195500723256566126491401729296000942638578154907298909145225655058648711114755194052188728209190108705610337044186679048536971241359894068434318561823603285026081104935903622104361216181003033420156474942571164083476005569101463759488137294209697924372557751567475248697877261892674584745073463570755248193367241009047461393773831153110594483431351257418629313636542800886616790669502067689309947118082364344084452835339312538094615663466817828394803508796420689887980973851164950672438954288889276393530840637853345206015984476170470388018954660833485656458373659937249256442620262720282703770225519128649465387497465735240643735945213562676415227975949447713884011304281262705306561165226423582707198893312924504138934639107078052785827383245298912603953636320310100194688417043216654977312635006325918550455716585497904447006184016085781485076018710819743339870823674880617999272423354888628141761557406665649727446531847937836392636051069016294968882428643304644615899326428074203947201354142242171713457950512592209202962489589132232564843104947107295826437537759079298298717530805871558010547716411818937917454527864582359769560151726269620687893017910703238530156864672037151762661510832608906966214454982043645536095320879517988476211852209432382651600611541188126669015831811918222275311801198602492742054293822575938606699342298091240732103027652452113513161949426691265550583943832756149300843717793815478582913308436744922814982038572985879406869819971830028406247105005754003205947731099422204373747962613097273430687948743332023352374148914464764985890351534868770750829947467943368460158325027124506210079448459088787843121278535711690900706126095292667204789383506833274138481847541193794422486903874518880997105370235893019330142809439033348688523752610796759453931413195039060085187553776086866758959057951009011792568468364054812535203236508093994278483909470436775735753740755603946358254937032029958550711424752126146675653724269039873093116053610873855169921936673917108734920055790068544128837693563471345607185285075142805813226264050805090646114429801160093095590176815343626796335134842592583906287003080564153042016597887275218282509716739327993422388244846662537243808471572134864330127035283880388135563555607777091086816486075076979284393276604351496660661721307055135018970468966558475071278008397751307090087867199000329181793197634428068719223095081333348328333605320980279876871166783985633300510784077474854493212405841581817256473662939203905410999114823493067656697490575429877883138485606289090941460780641689725146221245397314779230567916682089483294880607878548075772890611042878004138598013656532110003249656095755504737641109745526730751945834255412948498157991687267979518920135782568859474969584567548593084973498452348476290593040067842018494446642923855220137313221379497175215195564410179685575686590477686088626973550202695207745287732253735393167004804119686764533217691068724152172611602936239498286333148425141584193359788982889449335773471093891322288283720511564882032577937760343393584989964219351760852340290142977136808622822185267121799693091610318220554650945423758663838928391013857327698865807374399189577537892865491258469773539815906544394957943573951639862933111231792627427016937238624154764186635844567947460252398873487774049848776686545876869512745849999923536951564129295049850707515257850222490697867377602046472299560926398775734844706431477985617950928119210697768917146366037373831427195478095401316522425857658517902745492649033643569047124336135203842076987474554860514875670941568405769303159405911404914066243322758002827387291524367597103313430358496273218603003250107897048119585464015348228016454066765577118808117589758244954595771793312895975608660992994978082978777652435137734108726016194060331379522753680075781099867683965720177817567896871778818113656553499823562343460887685034035531888565441675196654488993211476737593608505976937662423342519612007265194945534021637319560035786450561970963336616856534785299107019308297421110497990408971679493884202015760359100416377696978979802920824563300510879256009658266843430272740978742722233158146699458264736106337639568836226877180258075387831465151990668270970929213489988690690610308052890967917244715742213370567716299182315994954565934672980668208365975451657996858962220158932328811716360388088057362027285351771807014960251903981501065726418049519596018267893106574169447944825347464809873108785259086037404269729689288645684737701175758412432731243461596471576045183867776858631021087550993436490487279085073858560151217934334780170933878356600471378250648452967076037901525297846154134267561217718455436076479879993642862829622555302744014055764871460304661774818942985908797040416573873849977880772270919528424224494114610392268857532533290511756653202786643640713770505932479393549537140619902444895331566707629614190938044290422695180787857180302861439624710305959946355917011736343700496441234217031794473232107699883515625818217113465224736479034066052883045989345797811820360713028878067024915485835493714891006596775919134173501232643505981146522258537097668220028616729993820705558708482845191872804608680853444678588751038317314795210738031630424195778098677407233059989665017025421266412863864603149094048520538469445307859944056828974257427383288432680991939477709849433617485579262264024966236182995406996608088272992666361925702733699237899043566439532572818867158206691110704239818244248367599472642329231670676708238591973173716163378382139037340471909766646823148128203055129234561848842154210079990066279883508301262030483412086417563853597040064008160476018383531501202594858322263314681851239909940298452113873304058976337361674275480135395943358281025654960531010759531863259343943200860297736666367337430943879840712318167403383900009569749030279443606333479146142619654860265341615491569237192030094733168098711209608032777040019252678409198922054290479875437177527112576641456307911695982860861369523558148973308217633018335574914397434629561229330163440850804081785708663809209874515322713047092566870096268502730616380424876829452148207621973086378378410400676457231954722017764265892863451073261592723714170145305301478762203062645045126973141306098982350112942474159867343481542567748563228733703788546495003408442561706163101365182835417134735214813531254127186659398175275327873332525979014674184321720931945423100024417762284456432288538115347616662043049759607252719107927895243882432621096036458051321874578553072241680244475523486106319839499008816625083029699530226715740041760469901245679941150968954217777172046188118046269132374834095646756319720608336590108210185491777396685715622913456170885151138146284269527493539477665985249676380500864898690103731910558052830720174469166703827653795388487007568508704275924894795827699088016915071933791535973271250838259592622769270730253156531722619206074321413516786298629898536663227914782559028787904610155473335536752095415961498996459252945376705952483834312105074394559192142707947124400425193453931719961479801179781605238844258296179852880252948969162418527535247284149657190379160074108194936511870850685820751426224802599162692260422087375749031411805578260002082582239328267114388074454366661502141688010100267740017870589268364664347912392700189783375845133471615739684657514503623292455314622320402474089787399431146448105193194294680333073662843202841559561801153693905516195768534477407754474892835342407049747050603576046932178348785788645378580256598619605477475271519465082151041934628503352650976658233359290412765814687443554417533709384718312517911750427344346288134342702780381888559542039429099912354371245311834021943451663307669726992380201457623237662158160734108656055508361268261562689908190506281255202431900100370454433556134814608788756107573968010591788720124256267705250661110370632729362224265695288042229137452372687905334254055680433244245960379965159634577450705342601598936504766638323546277919484160605194303612301484686643038994771351557050228699907859653438215886965376955947146422902837204755234549070320399019110518626317818791274944937239916557988901442422045795517765743248048567143754820988992668328876559533505840365158461360643350512163212358987112107882508893740611348500957256717346121736383105124251329033739492007922506178238243339209747418466938681370850266655165200386597620685059992653343105778554679835648362562241758835881654491604284274003914256084615571743327613548283309031623490056596065296608402379692747380499084310603935152142730929367826674737378760904288623974347927302083045485643422666022717293954979741906366108293396630190618619339764197195302174780576705485090726814651262566633579295193708808086146255999050619631455951976201457261850470884281307474398657800478525703503912477074573532402823161793604798199350455590058110108386900196817910327440574318724951180905281763993211740864930313263764897186008163267992017536978644834089938267018802899455479259402040774554996638959696357101592446618893056687170211268394374783880213567614216861292433997277675326987512560151389403566322374123739519771984610698729053933804872916232432560834798999164659765772541112725493370880652975829600831378739481468904412725025883775036355573397781016762066184961913199802664552933786888431589370227773626689180973732187817671301787856288243379806751630662575971725766671210142310169661760270285832978704894036987861349734470315145218651526915035791382462607238370937592099020569812521876922218947769208392011988018590528885718215168316638125678403996951020864259456235893360528436579977727994429134932947705356670525249164214142988101130654625268743711264787405768164777655440975145451549835560620525215598542637792695707388524778512673431358979089144951856845877561203356369348909537407734316473737488731980792616257014404393551409117158062993591180928827614388736844774900074532471611129385350790453701905697721675721965326218833839890569487428019415834956881456966882784221408509926210202233461935559093506694733221566034769970695775522537719680796812717796926831969869789960760447544735642408138411861592350236539318674558653197042617830841643957884035130798991183285882856621542551689567374496823729666400845041293703299672278999991927940169799264612566727742200241258155339215615607909571523642533197117511812322069209980459468939978559904114875500790765257199865168800914528984657816724172621717554220698270105326359206694390950872237549498971584768217580998960209099038917788535503079662985794953338178835942287569839257130107325323370551014885796681110137434258597258036189096505539372611194277837821383795918776463640939818829746945837080595897472971431826466467739042970325663377408375317427790807155978746516793839954299949606965828904852895670280183657579111219803693062166921203217294605411142842935988893332838880521478054780001803270174656610304909619473349249972486750030630629361796893495465732752770853917787945160940009692734766965179994410201853484031208022343546771006032314462860629334548685342969216778482703310331863265402037592171731743834748277002309460001785088226672369102095300493657614202715219917894821393247885782075875899535756914348678782891425719590165302056168012254877271638330626105433127022286831082325998949545171093031854356788177587844208629619942888382240747557932755175689173563576307070946342546633868505577590058757353641625277834708075921407592505305265222687279146807488323517463998626900195565885527669795659721866684735628185845686153965249696390267669056863203361815153528554323243771848690386261885420769103586272479771516954110474487241375625487181246252409998976297674700281456802178162732775698942341203893554768817036376132015994730760599615824891175730145545786534132422133478834745605052990892712978635116683435168700172310507902883360834055527391631718698759211373496974944688404135710997002088683164709206736380580836327322523840717338592596889149791149238504585714355992144228017484393738285884519095752272860679417230842436607546138207253616334925206569216876664608441047141624255832525740545814404106446822699567251291260455119605758806901060858343703301522784056978180851930120497256854296568032544819538500456515903618046626867231353796484506205196148643435700798080567510605851127580212265465669971451345229467927579920316308908068696948172809719362562535480878265353759133751718684731866976183108147176096208813136930499809798173825901650357723966389628375018864751408394970358510602088671069093329432062179764491626778851731447554181340877814886557837041858649077612893040840584623379106622489490903448241167993622654199476713398628050688154651227658344535798177119911170859935604254747792094426138985796796577271843719072852738758804863891789533227096748546018865982567576891858658037637609160995999488239942820912181380648960749705094960733129369322556394158166691118998958680532345946773615613608036025009763604100163853367317919386247142513440022388698832222602012848674507569666152327506268833155188977706400455144659575615215748584242919732683347437183916805290885291735203136140408075892229070359519887113886100601232313394688141136023622964888283901565954252949077913532106590535701324493109473517405068018667433679896273741538526148468959633976465025345220294487345650951294868767315689404994240126802460322669523898125084468177844268068449518470162637003941817172150831790088875527743069221553775983998191534339473555256953336907021406822839485045784373627910764170568884947424048643687169522416974819083470894873196794295011372825677256237694887267474201584727324212907597985015620314928277635490773116800353157882338038174167363581003402938300673725297144839740091840296275909533730894905147521297515845554744676936558351022896567251525969328059978738982509015726821028859246592201231966543890760697963230766480061352506839970314490108530145551945066738153012385804446806775837169837343572767195203027341269101886728778960822738828618645960652258379616719469315473016934126479039871912394597124244088518796957615388150992610450191493630485043365314369046485364958915757264413072796392256216255473070692256228837705571388993063754282174845760201168080739573815011684416538148778278847197684158725904305431923422768649032947978052229035843597927622028527609957867895034270147765407555659737007906609786738254829545566072450560027857624995780138227640021489528554813386304659428245535543777002275051169658629662093118624919035746718715967963342425114749348724742626315059029260000812163359463099587757047771317772135883325625147396034542592272584192243061952369936308949144866178259945527841918819451538916032779522503476409203247501983859670467312232847598745493415565842404338459113328282883469849221293638504596694660484218227386794624003778905714794919290323334159526201457388671302607026995073618674609381957076004367317580717552844817268686242953179950843226998533073908009717986364818678740303698321061625982804289265062064646636321351132247080982480275962508999777280266530222795407919335084980699670038289688710362802578429482469779932691212840758767011865340185581121836244209181037367464020214401950607121337644747530255949412306174736918431634826543817341461823354716922325681744001604519343917748878346377353271038992115923837861311157779113731905067962759315214429941522041506421292952709236966931388194825075394825138031668116679386599320539366451407447985644636534918995564784815866029309929876964561717022443150674408946823942146475244103216581823777641293387172613645006754257821641910140549422684427015679705308997653800489940698479410543088577453910409090149753353244981874622632933727539508507060735409688082815322474210894552367264665713565140991735466916976593310158169327942795460834926292847609844202196801373853132276567383388198107612407275704176323945641403812966957631501250496963209203535041113933312870087164178289771517473225046065890749776613151355771972763140810607918526854530782916735446890376188200604531688867529356622581725642779196362647776583425178409520503614708092757010983969541504617407295436589789101813022664987417840680721363957494815110934541276610763453352896523014878213696049595884584181938525940010420084521713466425724602252704279119653312879841601081630890814275937638585540467240443281769713898796895484467635454368718639962176850584077075249351686187524651698640528967697974016692439872998885427210031656927472561491376735249367803494769243102333272030015952436159144821118353057231349042744513565117364875661081368231868430889174485623015833039928043160844997532325907385613187798945501689568866542665147272740430848434996553835991795968919148971483105925166055683653156478243216753780408626669962390018184950906261003032134490958582329622270079541460863591602121444831657176924468334747431991964884062545642186463687414689710787145056761789952775813540590955887367324810572975425307597983804419624504254100448914678958851357422590224568560705522999351137414260285720132092714216381272955247629965623046188023074971672261944778914272090511756287794999765111300294423810215508226369943499733452509253470952296060630530507480571427341969423776493476294287223394412016734764066654711680344413619225526914863041606041261393459556963776044399457976104448349342539242455905682002422432972782541177558828563660407496879871767135711279019624807138037295194326554180724202258701772758992494558115504280712616016853503435079773613276384037248463876313439450575529277437103118848568624762839959540484445583288271589062482978668988635406956504896730498764390799146829312190501550536321994296217563357607091268073822172376970128127597144499789763566526166073935599686975903193189802780902314277773124934284921398806846453520962813075513686114922499430946334456806394429749392560699287139503645803643185091586058924442052175316890554166002854260324988203564298518455629034758029702436285268458390634910866929364437917616860900869971284532652487088086009269326651330702333223640321185366672658406487758262864748632284663977757715703146637693964417310634712154718387268958941971680341445847843595956993617033275663579370655107369173032645278394926720498274543338444029448656331288126275277394018045488486022080558300703040342964613910059175717180711009684881957683973034591252201272930096600509553775726605207283129527333791720843337194506847483834788525284591200115479810412426786382180196304023404342059380601000742762436174190107541602954792169781502779543593500081028657341428468368272971776541958021949136509996143057261156628658429106509097676107003023986561618786175802015262249296715864514972518689165549376768714556177007946199018665288879144694749804520061832205035859690625197962240405381016602973901084058543793943101654795073991620383754292208004681591396004402096987190463786607943105716559057507758148786325143887590736086092798306514385597325379754569559766957029753896390565122833957981294840812882004416423400050876067098416759565151887225457502273950077042499619802580052883276621850643906542919382790775101742924313660365199133095015647154472993981945861578907605745477290629710280179334807133354658014980459921986223501390003484155842497616544369568314972772697024377962729725250804191665359338085261181180169733691725799884552212071621180535380480750910799839339759676763841025183355107686075302065798751523017831461386240017795748090687202404470510162997739828168093044263968436372328928482901782771765184914836126546479522653751167922080523324942645354772531102277804979374693285410900156758799036145670529679124643652132807908408548574565381323055392770408199747135720943167519894584390790473095258662844907427533779992128996979007482306526185004991673463990252145393848579200999582207882953470510403964667218486933016067696253861874301775120772775750066469801660745935639454777245455485555104105964998044580204427647698968134904575846722581708396046734912636950268241183929673628090196222374245037786484611400703940147884822669145927657705065069903134959869973582124181935137456575597282922984211617571311121659887816522254667258579591306622468497523347201692528710500328888282892479716694854627230837977716561970045903864408381410440181218126138287743649544285922688482343159938941720555405568010052501569927021621999267669282382460062187277073435431879955983876617708519832870671558851063495492443850990988780994847955160733824410267537438000018755191814922697293095768223951035904541823567030642497355707956899371731540270152314432994365227192589045738057794101249674335896206670812764623911628939451616862276340662303556103432044556423514779344204545059721403207954718550113718694216431187521433289711753047000055855059786076595835051581867772010635838941993957446579964828260560146518450809582567960824284375294836592859669960181960695604284868968426081483944308865605276802813248418960254806503895676063724086940580663302933688586338595991564304260749398110146356692921981634383215077068843774252103832382889273179490627708393432274402979516401041029271968456178689642136036843786239206788297265805080540006888975465978205400022881070742396357938871832285429994677986027313397032184850880386344012140146551189605111937921789290072543152955490174080561651211220070181116000394688427408052704316727677986650145380102375321758919398559578634887789934196863880350234421456487111771633772075331165845416758729832418691571406925582045098360772373289864925721941780695602291251169224296133609829874528463510245605784869976843219849540956879357795636063678670970284390775430381410683970306384015713336479164544839099198534241747026236656075464363404261569338758717833292635344399688069792808353962276200552093909442990515606587936681872881263403618425327934271098016741752803036412822902247870837641637757739692187228051829974307910683435945628625003521948750354394655045882706500228781556696216757321392933960657307405904922298390203870017898373627486744939742776290842636957879780497584968588287733845998587087539709288856754680984842362895547068664772482732329650296291815314289126227038076938065685736441188241350273371972126179940527953272850399565332221320187055399061681487575192518949401981871448213469243699894309636284148550452856580180637715105724732091745426682789299309921764924266390266603822106607805569151826104149532803831132381965845837784555788908926339024744040536593180559698701625079250488665339136995089067743969488890886800632274985985345735847062662547973882988692253998847565234951703117600821968201161769935808041950476326605777131360820040625320485105749956709035892850496742580803930313170828124907940172661676483189061333647674562345370240048941583679715287419964049610435520791774411286917598008464198204941802262709854030123198711409477660938004721534170761524545430219217125550635600906641877779346283664235595276092514882810071004047613756008174662901101453254071687374718942477422254664488600889168973708589380550884911508522598283277798221128408776333733548153937222059377293338031316374631984930662381488524830999822079394420555316872576642491352745928082632129365413252023357855201654341773112955166738650773390100555897354228665023811248920599038578563925985166495899859033455808388315464245070169641809475193845636846928042949422447872700743712994616240850647120463977832648416677021843930101080170603702775254520426113472823184197419544984006000850738227369284236189424856693284305277088333619474663651006078606919661343449977931663006941382660683269082848358488201327968040937936063660950036114984431152845832719531549388621995707259386223150767578679430054207390111551483858674146973823837777529698249161748426787915719274079135230517550640312743693203730732336181325317050146749550773529907500253057689002079249521687782252681951211564205639310619835705782505089620261204337411280469185630601980795867300852763345766819489500514897630632043400628827507052381728204595915853085598010994175791770115597398981817288961862391000941798090442197050608585962289189408473939775940737760041607438731316832501754050061858750055044171304202960744897365108608621945349350428992571324192174910731494081254854944592473993072935801890299458247589009045636745926395504994840193569864003328512251889183516075585560288836403749581405270388748462209668768539903116309319488610551785710058056673422836987039629676832449465338175091644003658680335405466396274869473404570410838869455096647653686694881215015383746325937199896812430924922491310941634953059694237251204255708654160407586700153323105965387081287576950314539816854024616808971349594536380695557714671234512259577374834215231096222191211405536366310495339474400344909752550879372598943526249655557439248831626478649485104937900228818739843752989173772710933112127635699522326064493657131031324494622046145252590292404676673213868489746025390216577010490671444528028871716330297125310228167509975452588206167277315722416884945799203749598196049493935248460213937664278213417234678501434812233281288075449096053287442608897535598481666076609886863283831006354629866502741779162979055552538972467614364981422806328277366523570187054931002254376917160170452402809676372861149914322748734688187905600040558350758268850241093890100969758869660272183815247540886709614529816945053424574548584715329156620349089838100844248359128933066610078612278096707204492199586189134600390347319380222457563306373678695688223059445738820024168619406010401940780476161253222563704676694931823398558013900633848942936057967199623548651644271630919825989830007046708216120629618568156101400486050049703497346871964686088092856581450095003068914328531130212719739660957254798993270924124877025812182727338095801839837070641026063604955943339159288864569967363854512152202099833792658540727613241539608933489325775275213475605556935447098496854159783004887534412762176917229650921253317698894223834772104885399023218391018278624803671420627285212572868947256680796939383979997774299131407213928734611335947596785982842897236852184902335565454276054195726179774689202592803407385860814489932377497569267679063606171159740604005142268193729377613017898382062476081081829809067227210880556630494949358797492309469252759314095654865084108674547493706696439026936851542500440286713203727594902017335414144299780365857245972130418475107831337811640403259126388894281312311044147349922157838126366507637316058597617876203570669247398164588055242211058720681265034320441552024949652470828497405427333874967165487589278706647281514383944004706751174907801311164628053205388233201505943262029860893280008967861744911446668024269668014417943904295215278433533798621006361721562652672290618927792164976260411422884389031326705996239842517988342314543377396933379865780974638871669658699415616759194143312851272406453301551870314995390941046298716755178066620263009754128481656977544598816559752381075882855888029055158698032475962901511987694983274784651392856658924422268653225122644481722873834560683153127660676656599222025165244733720131329947593872883095575940550979165066029582661818123677572401839030734117488459956599869960073689151257826396440695509121229660679658417582151603040652807180540637611962771877255357611352237924408296635607575017563153979570120924386595582977227490766981313041890583677242987690384212272396043430131548824172707026704762091391138838653871106313886239368794040152071359153096223303370082987064017397089160743621986337928746571240089139631496267298401568545870175787598571177047384520212868431856134024311559479239312487284403169491549535256019596646606914876296213976216162495107124160130233961240718769566511035240595231586177684136820612049568834536343081924894515716497336392547456612809260353912267222080706060747023192284049167936780983072180881543987461253153611637672418402807948145950354208879012620027779224515530365664580126957331456472283046924488786686505829029993489568003692188547551517277049687017470400202502151261967728223728683942949643134621274308253150912230753456316791304709885969775244676475688613299335565084525718937301591506482575161743754715707385729583214554633883932359525904940339222665032250820462350615571408120864855629050560604767447037921892117697144109134405050135420711400332075906063279701354578500891479173539357139780788361771746471525815035411100544932337394976266611551612686744045080811664492941085911467986676933893310403890830936014189028337646612607306784092903221577942530096008214337918929213146115499666869302185372659053896848910666285030465968737426063079974878717261054639023503147221438410989711125795338095230890755621364394107254968111901784386614071245360541821568171200967068079162866819869645548954225583713956199495170256517673707267441578959233129249924565432179762710593083143655495089621286943604996467072396272014184367435145177424508063460543549752038466558323223906118685265939675742429774529163563170939354143288846564385015773903787141350633577848865266838137653047229144159406160703971752207720088214582977042688232368248224785782952133646786353599155669354978882314328787665257725003838551817379915902158989747282003607448870948334503835520577489136741473029028573096913018289413331201792614475703055776148526320566606446796528830436732111752648321388112005954589345899821400661909050317949517832097915463554497995765082664093368099907046882283528047216048165205009448570138741690812862398093512996684980223568996389956617067321788090480838098269392972959471746580224733065822516001992983518641149585791015985632290826668063885663161840674415034095099562986094341413763122698220242480940283954849236697635084279431517672721966245039334960655802160177991568469776846670824963897083262472378827462556052178854827504752427458934716086198793760098644762729766198606062109258546449706046747717930148863774469669016506021728572863201114234008403149023456852163469261780177983770131755274060082813261754247221061026988496890081134321643375336000779733208964718966531454945910060162349174768828504359229144188724852585662918884440528863561265017102984752969280805136287783678736393600926746180390110819947595021388933433292889498402509658964385899933126864683969979769847523450210718580475267012368364061729832082763891667075569418617085973136174480674777323990056132280934966456471875671825954050808348157217675562540807818494244884547602850968255366492716025240895412506252042697948262280526907874837112899586762407785167811933026756809762829344110635857406355581127811409511922521296325826121354575468817204229868050256982996412194630097876277148364511040719990599783259793656618251552944602291454269876054569381117197883165907505878018933403920645502318379857123396284045686652168396597461932694828014493374005469407268934089581474669073422631804573031899515293827047990788595812544418360351949342782192166207693578349677807570167588576869750229943644338880116425195358438139656726834109778008908570668807114556228382989274924384307289144168262311904529564612262664527526542155370194819780101032320242365589256516219232638516006589583554766378625337697386921353369532254743692195084080525396360782428252044066848221800811656452473837902759903577387353599797599509823569714243128177867778444441250675345175597146532739224224562950636259490768793524169981046454035380895289423964894416897171447797565629618384934126594953957515484584899216187056125452085273649302342219367160416018000025272016273954036825526263363410043592975287296713420361729658575396864253139674507068824435310994055411832425927386741636960093148743580065038699193437164316658983648440296461589436594680046718942248988729791277762183890376979485993439694658976696693359237821296370849448231049168156421965448560180768271409603952092593600201374250064000656367513014063491772596747554633017668919890178170298673068085975684850861499674617149642698607735420638426785418474515151795479655849735384908123072509481145461722683222105655126862757647535216029113647573283222775221561104099940372854783704963515741991783343981052716588138995688930420041049489966580613151145668516405401324834389790246347313390633826724840099177129481557622814975959107005583509444263366860949789983689264330570634589549245377309105592074716664503237878052925315439258109652881492176549036863684795957105989324859249297930616140278916294385449133400415175624938023435872895173981446393475223652129658322844222105097796528635588584319547825829259253480088977064637113289292727808884370120019729623670734371190273231193108474059573261726536623876293670101193401640827315849408115467901634696437584440274308220266020232856881360005585070336623219135875285071411434170379549981752971141148623579902355887546317528221805843182366645150932208420573277527949002460742881301410634882072944728490231183152575956166855514458583622606535033888281045787704086753006145565691303502555483774525754706531986216310879904915402844820882735861092486726169791671535791501245785767450500322050566266635901592779191234315132592774298437555256414553876484266722968772941972124811364086628274724814744058086521266594687646427202048801778606359889507537802073705103052164558862115283413458028701371285262585012083781467335474486239993005915978786742973338986794114788537795944415148467105401945866963107707344376912022713016528936836314239065252555011035643300365564614804092023299009938944768944875986221067084929448186018893326734999269809353128891304295724120285129458795181651800639544666726850253858396358646363405060134953319770547560147492505625297174250061786470888861109398138539428928082690371102599308744978567883414090271250856510943942792553337487232403811134431241486898154371464906505777437731549965114417694750244176449950841574210547407589441287224178809181604621558660185255669984653086073176775393760539970247148175893802652668015877636871971231013561053365554903337090592388836293783171989662892643782519346642748146158565965879565638267010349533502193168614455056881497960780234696057375452967656603772090134146580540303244705345467766630294573471627358531946572787912402099279498336212588813129854431233095539920793609385096791928376567930030222262057999500722785959403027861109640612129274760924891787234892390608029350636467897790040476172645368671579690222537382647115791586932487595865292208988746552530857812299166057899180013538112557845398249534508358131570391098016216773500075055748864737063172856675537080628141994298936971614849771435315336234569237984030602519504742036485821094396772656201499418903996929269605622127866752729000760602821655167354024938460349642933109831486015664389778941167810601558150265844662471582042924132421753824418322431452135567751157162052355046974038736895721583203484717227292464008580237939003379671173809464272424427809261732123301698466664642694757739950803418277790952908885936332302408544661888362598909881353691044808310519569321136021770777985823301815713085626114161585838889606151091507467494497328793576257405391783801605546759101370035612561526113507203094051916359356303999548180575552617084567390622415047254592940837092114869927708963454630156664826641211312188263459306894105297958000427508496127853043500194189747176985365369375984707370811740689078190765205347686681480840863388810376202454758763514959663277880156378149361003193633789335216152721829550707747202760119793131090827181002258349735478205800946789412365585692278028106688900214458642266943182369423061707246900370503735184637817920356802756261537640264829152901006296980947320502120599708161582085970816010142244835825625796314047182651711219885136981690510587704620224304621941747711111081949405941737042039553247627407856193822883172226567948816076991488161616327136171465658257974584791373598694350507764225256346432905862985331479569152202482027139623813774659949127323036361570716461712848327683408811820014973528484483321173999127915916871513173636380581416010425012974868087545736212409182775619929571655246377614551105797369474742042879298435427742964659351493155013384794333685410693866246909364314603646825632299051439565725404945068148675242794309444762385347837416579051825901088759318329850220818642045468619413084655158378783515217390412293486599190754803103948167118419579425602815466257382151689648792042675210447104565501510527949800233756971331839359309236761483693254776066035144834993926685637071801622606106279548591264053858123530332977029163325231201799145004527710161631618293767787964647812399909694457567537881103362454958641704721514886353358494282097530577138783523097374244736359402185483410688340271142563649859701002890935712570640090856031271987671023969089959679249242028600287523070073740121878021430022728690128143279046684013555653212970655190880629760920307806814910028497390063945501065399787906009963265122176939838966969001924885002240510230260165779374426094338536205257539801497349319392454009783070824181975175163068245370923807003548854659145493952723320722554758602170405307097146038132381032298460099189133616051622320952603904604360821954827883727698799522144776730938376893213144112387416167996112942879484446935021352013824936017512138056993753754510915324054592246446594801794627969890777659999968728692308337565646730971903470978516135921346846069046997063168652741990210728908454521940426116596489353549057023300607979425414178079176506162041421890110533220430323836384197792202239847769546471626784215198649111833691081132475001441502626642346856006255998204938635517312356217620505811714842157853397773851716603256941941300696009706227678370246433790009778330065803700149331044405798344114465942740348255016590458164947415711384104429157970405986492433315521907089455326826394684272914320351083543792845031245820155386073186387455664597928589568574655848429782148536500273024174425200319504481151361796895525035285157284710962929090492126063480309456964254347239651474882148332223415113229389233882211383045776727124988651772990505836131850534726013785205798898169248196616182740627839571434980149124913326019502060037578539592244456549497750968589339607785796986218524316001062750835648013459612667964900306512672308816594758480939008652146484460204505489451069462298224227405104336280741099629079953401944981410156751494900222352556661773835751782305124913858669851243336723545987874387708287980162159085884818048481116851733977484102013808666550762297254689188895222003989647791205976265591092067634249606159365818933055614790945864470095401865703393836100086607259554517890900116610683713060066152150480740513299601849899594084394396747735195140829436029929475327347213568222452493317233739174464588944641359148197650993090674881193986974793432759866771195353348445748418286456031271952655137920918368091095074383807706177287531885174643283617435310035594336909683637266556319160666175580981119658730705522843209035774059858330988258435533774798218206963034721451705582739810744788180431618982007144712878148478941582181632764276441737107578926008668429514893939244238791623522858470049170326620505545568693825966462681176700915405109580788059993811142119652931173680148956140871260698471844642070013204969744415652145990960788178070488449868010972711980005730892268584618546417124354855547302961173287840530855376242268352157987663818257687884934806905274437026853668904082089698547338637778489083385811603828997917290160471932883488469172229467730990158562470179508083454320364851567208341788252895405398028961270910877761921511047328941322718537731032675902642991607483122271599908596398981254155332482029899398488053698576025390161276442491479003987113482822648347684018914996643945804431568617118589855711784563037703185856657872264831291088582843066989430736467593395845014065605439641814427615583234224807994522444200215112687944384738992140082050720724838945046331756275908351449381369808531147538006718630465677466043781097660285980156355570748701464059458006523361568042287102793634613128815757324523374352971042896623694073469492495731988797010614261812338948819929734002385974613081451667281066453075949344475510869416472271203485482644339308437207759583160668766634910307913452913165897287944260777262978701531785092008730955676038583603359116474228525104281644078593453124576127124026483989553719703599863752407967514717338818007604294504624936407087283853406542334388761402295863006246425432706272391440402055569118700073969238028994092589241355529968245138533686309646160804174173410289128752183087683623507851364798277190373437741166923817384197108315660663218557272319528644687339469439803547172100653095915927544309520662012070475631901805217912866474841569984223052301969198382287722382581246968984743031465123133262519864599421580982970297921107954189868589157287958408710311344972704040188806415362638941804466310265525717933812391713142813489980059036446695806614958011379766188554482562492832421607810070250005811829639621890023523743180916692092972732712566818395042462415055019052722288041815908474727806911842400190388840212757751259634564722573287942717314465031563598386046923250661732024469031677710418281919184296094116087844151808877429699859768772516132437590289300559231884538529152098083988444312805425539468343845520049187126140682590625902919590724861799937870123535907737606958251806610970044578645909854809086620122950054018390266745829844053627537814003804240533496495062339987299524099092686209380501586131404897553548216194069675003641253719392166671848772436195715923249617471725567385024468604384184975777800420849897592075192717611508598594012153259400071049983052008238467849932731123699279876907550293854080596511336519847437368598873538632737480029090198630223162202854838782795628622546412267476624490439942195067480903411733048171278390775298781311768710839798788431052661063193766967189175370395346745207171278336302958725090798937253634233157693130576985618501134992061506157541965146541027822668779854846084412896660657285867576837211815104753865639077968471594345259988685343214478654380662228828861096217277015982571153255977457926154885155719088557805945311075779797585625650223693005355740550106847093549898487755167293107111661068401758327784151260350727733601726006473092343206405871432851357482894700115842964229082582869188600650673703570603848079805118698485243980976993107133681152698062741270390059664405360149970227024720944177626809434699458442146535923902160538054250897967709074607257054178345383521096516936395442906594349529826864209530605947449248807500495708267370733873351095737635093189851909918217631993323258698845871906385280333564876114457101233616328048356341784791145236926762262366136095581190611536162773325004353978562220456358757657274279314838673564253641907259901357244713815510944873872716742952091292361719046693588193350952277079763017333550009591647864283171420844825990430061993037963171088228753950814150197623148195480706986469316818472506248318763901253719069941946395903664961348817239021713861031622089392474995533924673560845978573237877777499172264590614127838094454641862688619542232786939546249307136743626218033961313197954001984790628231268974640999579936267359763208921970664172233981041511303439626589547742559713381735322676613891130804170144349560412440693604767166501157436802648957471568751325765122967169451621410519115333909280713389182496543946795291147781982194893401702804722469183010817356332127010149269822967817838997857998329316993260666609867526676876676342623677905826056062605510532532512243971242657954513241794951496899000408001270957817888156790175270891469045971954152437373854117681590266896572150936134375637203963920456413785233821051017903568424132225331712806202147777079613109914981092176525009216020841421512655124449064451833410669967654249708631550347280565427952985161940800315783227727920608436292070442519363007645862716090861648136512648569298781280054920380220783145549100293543172464635516206847081318096660825612328889229264687011190348230199247639050169698361144194964564175010462770397923450781478410380449876844229591912984309024159862240559177739291936236831882805405310800913909384884311942398689551119447098820957846983496284345925209865701108628219225712452576989983084235548146058508287150870591996335496501389190621048860564883577941670390435575237873426360180262311643706421582804451013510635024968614397631542651973821722213580286487901495282716167468429008995405764202751780409096520684702790769196282423213987705941309401181419468891139920489534356378412498856483336187842231205793359366998988984998724281008319970867163925967431368948614118058991531313099736489694687384726075675094723762191987358539743507163430914708278339331593658591239851431152698738074206304105667350265631654395485381308082265671009887438679648694128221702935252255202590679833384007329758847624310170855065852529249328816861166129285232741837556059972794309843702744066893959166501039466661768280039450815091791715874731451001975864872055941376466496517190637515590467361959977602228310547127568904202226115640000333246998727469698713350872681636538751165687580674131056052062132169481665579126130792215040964061412864499051981462114384092613611589769698198189541468987245084713177247023391374274909288891026480481350414960255764163032759539218248171342096719533533669789710237501752379707330419146523436206848462905025588679955907427455915227521624788959382799665406040559893671238302827470493442592471673041011738221663097980356048767668185025537812295871318280441001817530650292251644699335860922261823788143292954237855657009530658158753795665750208142082598104564049629335572403024293935201822357222118560227166685118647214692757894135060772021296235743350847463486009670136167078637148441191769156915980571221600213831477330698298451467498281900124085311241354099139598028334042636604959210146832501937640440645520389886360040832255251996573154224129093184120110149880603391906967284951960264421157279557421695402058872978792779409973225968785429432091720481876987000420616726074729970596232181466923152051478290569071178844646323376480532983949698895718059156615356724444163577170493475300680538432535982692491701368469259238014902827425084185095650873521579911999855977851155024870807527057874846051351713301411562829511471170306667885506322049566466165940936257945413794105480807482286419437775474390642143757770908037519926897049400123059304123180237148755591189481079851202894567108946913474835026531128150741003093854082656846171766521477232522338713133154966877011323779556845674899935833756508095745767295705178974640841262908236712071799872846247594837826029588409107708542186324440340621481634243675747069521413092696600538304098071912071690434761352011601839827655606350080314491658184637905252931892121717486757084985069544218991745668694949485756043356536212463225651688041201214299693936895076918037457409808437219560395320869696000932850449207224916743294850951185997119200131190876193943862767220694000553861573572674838566924981551811403558156279746968421445092105565798365927147211567161848950619110666522496159597837988749614247432697917394215114934833152596211133968214669230941312405677368390959323444975421825131206392432548027810989408751246572894325240439857342381541791869745747579165205333765691705026903463032320904218620483036863001704818700420046614000353395870101899124829170429099322549875147835360095645641006905060533631265238522210759945409942830024861391829686356169335711577826155151524317432857380214906742772216173009143312338698198195084142375004690382640772942500975784281933018156396049274986421365763692950048954915958035044106593644112152039393255423290246054618293561841607863595554587979735545223105926455102368103993694712292581678610207798408510810367857070722511269136831250966984993621819116524609555639705613070087913332320500068401454605109199012943379239351944736941023071520997558825835084265519915632604826009319927465488002761380263905770684752869679548036531215555132839427160607777905956036510421896077400716764727454638586780312385790981351418755312615990532175122349407819713543203187836384387967912162431413602867997719118408465266852633822429146258289012136893172498504379218346429368720859520272309222315468309674612946651235433303581364440250885907103228822466446049366787945045713762191081131494769655505447214833340150606089940656168072024884949198976181441449314128013510830475936547650486071583026638240063819347938090408000296804124605621389503966155979456159960597579864235489248286669358223243168328591216543815322136270499801619556661682780969068390265515039270516765080095364081879147922353064744020629238211119552829995326242335052034562634230844759492948489079124548130798083076208929974552902057362415934410681568488409572036197655507495085937788478774054727138660781482746084940334963819319007420167359637982897668126296120850166645116714750548948198279984765308305844638592445850913794542882020013178496025819582660118500332976035968624154702585505113002749760744657444296475612265106954675598335395004909079707841864780577575987521685482052515802023765772859665897673155874288844064410931565559349262232732777609062423366055974286744653929301968128764894753085952992705787308981696692776729597524153589111670717129281119005601484423643004825388674927507103232682454834748170784155542552629975107411531683681522746528332026986731931129214340815514773719922601780650659160182360777834415741086126711073256173361316668269825869955564430876472861447026078873164303877061438540313705504697897492413397293335966289569830469822499873397041461213758621422248228321651306355916088475339790591532320390740603272377601829436724970413466501829347707254363216810269241719477347185480127610452907656599286411115614615590887355936041106709013990218197300752823492101061494936972662075532732084757684969348803578171806084396308167125226899875063282994208562508458261307736866171617580122573393276221651085411526370955241193112641503708014331924397150839669464597400582603044338782863848035794163223065421325643426846599587639983191662871263894854299902086390600949491702938017890865331172735825180303437032743206205111719396198335802900223722888493614960217592258868315707484569327687367451775356868028814333665404365213602666472633914927979724832348359439122690667979061187477777642583335198989936931756696374179844300269521738753403423857037819049019199788734750319753951304853827612904374722509910772013979821371440129560451186605011452654889096165257743347662672533215120322666843470399797314549350952897176928575886116869029762082394813417896197482520751694271663155621047888754847674872088888840220370876156720918626213380285461119606533928339423224848739228058740929117918824285404949858388713539536643058206536035901893856673311319954515392484362257099131438571487315193221354589897648828156156068190873378687239866701580906074727277815776907865503453031781458411235855573609347586928166931872103564812637451538969472045900014885091589974649970863642843650255019271393056408608086255649538099632684603611561660945471800912396400189488810719709815726117708786301803437791822739585843671214125807785856250704350923237848471861972956697918010629149829479547988832416853995383286684586479521540769297262125041558853068318213129456231643574300722551188882618448393463287867488767956736275940443775906811120859443857881884636021134011591530664514332312576969767644503745127920688206860335332549530309232920634458259886492760828316265296468025220571719818339636254729715419029155299165449916845440962602417147069583380746990922949663117874500923869262842927112459384408028237920801345472012748303927550665962723800756704552528419008417726534596499117779208209437992901587780850854259104690455439825935288922126708666537739229498562417104151702394247322287079393323395693519114981474268233397784611994741230563596680399169341139891056456774925088739249622802141970946647020254055745441237996956438681386496493983677999578509557454262652260144796651983468344049534651315010116300132610234988441054172900870144651984943962035711884494311786964678318272532532887012580216040963085722541333923920524236878656142380698721782517777074744910224189983667386550644554698698858853881383786095874466425322635790618262593677093156842059940604483859380346079750925268730697913055164838798350956933291667426120833799949962425092680335763615579146751263882184325004815558293834042574243007080314299209202246465926081917362152698609999747002505836832854964088084775773241420551398269834437615893378188020152038533384547457903444223380286513160487987943158813024929454260134819053720625407338266751014019309270695941484329103896739715136408027400259664764071000224908780035267088926330628100667133907070821848890166043980761230224700846247212562569753943544644093036723219346656862374983760417423844818942679952724029048835986684802740332269286957570387330678805111006544554920713202182723039769068224311547326391618339447362926167302478101022802181606835139100434943948448815574450158537725674999078657107841074157124211013921817583914246424493592855909415721871604428197603124967882878035069208759260368140644415023925482844888899900782190933460302516232327651326886320457154653025174930106921714865897049611131753377849678592680103837147116563103760710021621116278317354432659354634314396364550279654087648498335745641061288787470123614081690247505072218923705513507999559182564115273872055865662192516983793115868119470590482179063397032902807766705743869173569855495803801561683854991491264150004688801520057700612631610016059708380816116624606358789925563471745344273752877737673702788099629700238034869026736419544991608518138785136231496596869259872263485660875603660996513305931173503103339208342236996706831600631864447122910789578111402802768844095904123962546741773221948103322784439107006064422483929419099613578812313992979805959871723732401773856806286099806449271023215095059243959012397588697605613404223074221186099730179138685011719492682142349435688426503377111617025574914678014796942234331514355302845435426142748747019988039593597125599474560937152468469826515047601673282869220882883826013221752924965067665791143000420018520676291227965657168051449571222860539278570550838387330504361517709957248484375911228653064715870734245775001501001725952877724859459620878348800475190932449835898064813837546073377943998136269634885928573598861641274380058053736845830616039066425311524174772656063000593129697167103080101005134463146368525630122828716709582391200474383221583857781340675066339623288673525081852743314879935735292619397891102993769157907541850096050616872175876874523118244358284937722700465763511149220342897112762441456631056461036313772590908156498887460965745333747285382581340215354858106441093001896409506584245148979605272960437600421183316242520029137130727852688673689210297160814775210440732674319002615634266752442224626823547092057107598418374395499856950221290414896046534994239713341928261499678321263290837760972515678686558990946528365807838863429746272999194397970249498170207557918189783762973186101870271443739580600742645888891059577261586263723213625384863381323703001958635758668996983791374041712878052533772157164762303972395844325982288574708037644221190930682849393398439115710630736652809309645699454971026825066700965452738136191109552069168473544614090401559765385263227459336865551791620576359402455907138096202012813378229787554173000772786221443185683994171878551756383746439294486451035088089404241001364914983948274203229213828957139586849758044831628597166746472354164621771151179040168491308449261217742730397145539703612139328814842005747970650822611442681934569360875721431109286673304511862580952870387700980083602274976783300080644284194753856665674139997741410247022461045499409987798186894363808801997805242607867619905974066265767212694829334705848449728689450472369257927473441194494650176416241338493246948458059101601003314690862599591333178405562410851107227256621130883779840619588203073750931179387598195107774881354944139462824573305817202405727924391715638701023214586156326529454838285054865165791900920277571967567102085080698266531037891692893205646469908059985837271904444305317761541119799061136418611087855374485771750290126739003521356590329155314452608948972085123196813377059097795904123532687142160140129347332507697134418858177900120696459492301146112668366993505693556546686774760016733986495214773134834427004107843218450307830708226733146575570457709662865463845299778105094818262815728737151596270092216669976288339835749271419042102778571649435704365088714585259508173687470299770205589177127099316726333132909272758439201899431722410564445170640242464702980545328359751782700306213558169721449053154645549138244687871904495817767863573199583101487224060846476908161039541901985155563292994866286399213582065375403476286099210256224489055048819220059263054534594246838249862349120960250063647622121647914849866952070338366330448722376383005886845064776050346333637016315285610668513182560359146486374107176351586895970384418706291591483551448386712027319246540799277215746356585774071052921541786590621946299743006445420835514358129356352622363076355538100114129490784068668549272866867502707015198613451039043239281850291205864037822446265756235204348577338955080120431670832499965480006109712938222082255206144060642061338764931135084006081022426176992699528788762091430625304094479408266778279198435019209836605542007618766997931976068885583988697892572787629744392715153453454137062699163547767614018241499120498896161726261043573371406411813285116030575325593492615366433058773509265345220532546185412620948613187653656393535561621068814950792459769167622591837588470361676541217135270153616354497840183837690187728344783350973297683977973513979853322594425750623518878264894654278712561951321239287119064971637503414419017601810293427849498388968986219734360543941956350812082340978679591261046188668231089755374013428495623436853731601962419255775667561552818842574908280468823780248326095814783390914421679493948893521783957358110268145964122012052111073179806242421287474942990167595852945748009969635440514885682296445996367969594577012531352535654970757281556817037419149053897051718560137895881118596832546115991767011303444869269396780252695001218442773485281587550682591511928209098691031545173072701765196529799361154820883734669734878894720880878066901723851333334499405099990673942312048651989013139354707709915485170031955486122919077576167907391724247644846805944405787578088395826768072884929801290300067578952741043858768819025242056469484656407040461200093384963632607163132087656169494707864408170708332651761309951625947285387845416533119899219897428338772456629691231654192824878513705026427961243017486393631021204071625858895829083613201443545161050914922983312238404471738664283742326883736154168577350003683938218367046481306089441780678344687701357618327075712710206674565182026881633100799256995102008059160315226292543505020505498707779939664264992552026670627535870965572283021838088494695928265097918683849150836087007956354761018785427436303768038792578531350565401115920695025425083791571067757704157159867499908232105414905216094687201250125221782707995659273934352092554351000311382592582581905464484487420198885928679311996528725496630378667818269639120148351966954705323669875211914117462636331851959655163320119164718724092374781929621341990741609893144903707264277437940286512472763570590185778394340907876579693448336285116565950113691720587208226966364020179164041879030221538034570982396473162867493411350760390916706441702634085412309986067916917380091183875856913294755744933476946798340938846390396140744757190769758862125272721854397656690898323884764491958757014095075492257068592481371509796855077842842849481870943322007278119449139858476523641935945992851964186835684407195515944336738979781429898037883436773451088444149010215473238725576901446321950132680767964405051897581961148221943012388731120899866725268016609440271312147949017658183330158189406114833546010961828641224356106162995898321552956297481262811285577713403247903756221698151896557029787997272920305997308403344970324888654675948792016060176968608619664528099914221045990575077442030337209682542839236562834200705799074131936552673888061691590550617228339557520173796686561753562677937480916173401626100126314566133390381744552722103150111701137466228718045516061107801274925599842125133236087682880930052795695374988411378443403207307033683636217848815200887083538625798257305328221974893543008792966942145837955841036657865554144100058994839874441058976338603738589480301262644917667739851272248059729064683473240410711605266981819471528687110010282586212405585041894973698928660101409360042050888121142666127309715111382681299060316920086225496843961999703365868064515453651935831699678734141654830152395530855702876039394504982769725368438823375570569088717179230498335729382763382702943441269480055231680729896873205323127357007690448560635500729386144086997223550231492940799868783597327114879077872295974501362412078515750181954749529210844761799135573318782843210389265871268111241948914602931750855589350791435617717615881368107839857070046862361417562560544037950659724510679576379135949119943858644379793261662051153513945740854668611697589174928995959085413901758429834419675760391967660719583472220926110054912318069083412850502836267180759976387948444131243053532636607541898030474410368074353579862065804774941298098419553124419015566175780792781818941186465352283462554640134836358297906515736052154182383750785977102570286441205217746199862721614180638495188178261745335774539023577665682812310734332923423707215076345376441513948008862810064960337757688534941949463775346659398306248476147688017532049486431284621441475972505595982391487549109271498438251291663740633709310315626402726066105580691693832171925295462103949807856994527842565508252516915130786536578669447908990402092714482224804961366749913809252364278299255593574275865024677521951348898300952751157538206678926774364254870216811959320541498831951661999763033206588406690268858697733245604203406757586530299986261576888641367171462864461034073158705743798549510435739479964612848075497977782595884647411894456948723072696942303090650275374831792311189135139863728145619231534364776931012276669968590994260406664193482997303923464780391041916848543437031162317333202870124137300415527810564760617020605822572938924796599230634787428738947160139056292752332800818974166721698737831955410767346658409628919385261302995585466622844229237610388256807872925728116559804555636298646943073381550320533193764172178838254802515275854744528218099208414533584408885924495484572084562235274452247979245129608935506217237663791356161359282983973766385512887935506543016014975117775463712420528363375782395434078615190161372753631521044047690853588593367496042562602253912370516515618061787433493334414673045034030444182411972203083894947559562794017455365258708354326641247673764270175853419554102671305176344087205774189722235750491179679942761886312326792051914498360448588862966762704076105824867768450846354575799771822144036970301918662863962438938746070417378693259310443710200446814949568897040421379757859960104996180459846591319732394554756883202157671170355561857821214899296170059686795590507178993209932652475269594158315571330876754097002137670012633653169956357101098033702103413465082588688942128283283033878323262866358271637180261418806396469046774693290158788209970576803268131401130557657497157626321093877087345575413451389310548073914532223234546912557824596196361632717896780489020226305869817426014280743001647039566456654670417211643377141557579662476513772469840714557875089955877145175569485249578054991535107241632361052855986675542956809692408315556491340334996904527939787178543518089938973657066827482097301917327531501848167616104956265255149636655289184120365401180187658124132839844314796022804308871391626821723363635038321780630701458647998722206488345805655967892926630810308917766254573038162715950912355661606547757637264882464785818354476788552324697797191605610378757909900036739394809381750531950828979866216359115356066119667739785902116714928662349222075618400893674187586486811455387886089424187460382304877585849329203150097960407995311045909107036261187245849388183564738590091527977970683659891752174217849401917919692054153898670472635424330453192283169582026641092302136249409277678945298523102175272441178085072599591883407224562312175727781352295317063562357893071814252330376432385477990078791196288222782142640347561897561821814446640378774677033041601573743480957362903687270082251756469737098546105564924419340511386543214791920902124880295033217655789430666605661625165364104089571180671262405115006894557292234096355991700698605467150503863968884983457880464072507347603474451612770893411338437250084638951110063165250291184572236288838632969679374427183640630670846822045943132395172742159599383127756378233196048772516056220165785635096355332607354018420935904785177176753261122911018660000253284593881533456250472844024969354203488823488768601683657862499656595614918464849320181434301018302889518851677765674061729344416656132191171254307320281028106471994662497519910506733214845451522619289020174810873903995768592455071166838905404674795452814243756197668570350415555837915590931195907839043284957859320105123376061599180603382629694290908317043467326664946089573565231962280435409985280482557057629154435080992719307947233475381365318740530055540156122341023116441397350297785466785577760977906284854148005621965491811806350028825198627151714155311243891894843428691788786858188421571746688294610342142063440061787988875436522982548422415726976882647203503884351870126699442414773248433816204382778061977900881281935013274976238341257891111881355242938335017604003323549054042464469825329375729181062129848013994124689409133038654413802670745371799465563821458568703275227946972737813460255343812237464545388617364906429366680858896717886722159731792502734942362145803360012367246695444178713348401380177635392961583939908285423282736181233190206869257232477367208622094301837645306769807381244504382681018664092931057435462783509858853756918575885340435511279671460014012450527874486039434281938636189971454013121613525299428834128182622841004562989671041185059644843358961735714180829900337313521863238423129199138611289561069031112834686362136760258150804271217717752526791227521928172511669840867434778680080519781164788765451466056320675472832806990093452954440374850228195911412101729683929635318476328309613270083386782322996728765538035299581403677277271486006406413423680231962780870906393845933931819533315122747825832612341249668547670965199921773932389213403700416868108397384357354167114266920538734285873928041585187664775473314012460826445808050730497679555518362424210150460523418532826396393783356892562900195463604510330789455352010028515098482730735189815976272768004108673991687309408946411616825227157130585704227017000981221841919073788576545465568931830300261105226292912139036481022977939900446934405523071152035501303745000131435170700929079206489697707301220340736641248974625677103756296464197173521221209258109133844533808239262040673025385284557883092233002812885984150785238547620084867361243280740696981848240349956262439698301667905937531749809922042181532770038665187191498935335813089321049863645297036973487558127115092030473965255671771014939522213391573793737176035901570074451494135650698538547036368718884991323996680426378150548722073960163846492963454315680314203710686449591861864662635789737194385829869309748098432919700906720647029192561277435840269060303450488562420733924944483957749541189844698496399099232346289598322624209283265088005261115836106448625185735037068272300827171075335200340866131902204303562206724464604843354530844935412455874134021399847267927643792627811254336944040678141381695849247214117782321213513407634998290535239928984218897780592975153192333997807952078324848302572163123514956867880394252316249639933590091272549757297774770369788653761723030054858355217944769047721114608920193441368040092741641894811294508933613085337611919489948263566376300589545431766984461460153025253774796195404542029178379544933078826405372604347254044268705132880524255079109684312275790213264812818209030012405333755231772429375996673576321460672119007531629670787996472301326238575371728162404015267177108819071805572714547266036490961743638352595115521146190763791088644971649340551037046673365600305815608919251804703690531716871654205733976454089433187689654471694928688792543895688567361763542980561734702914162612703727310838591397013558322322062895694720092710358826929868499351352815853473026427929708671895403306263806274406322835487693979934594767371320834825989745425072070248587122757065044333378444422611965196073666043056532647486607817159805143781012690985438886596200824871662667886054414774585473833277372737795442951732919810549831124992645567431122675287390968622082422135365036807469236819409929867716168148496388933093823698269768342231124189873759860246615591548630181732278825367404317662172362943112951917879614239549860301573013886002432255290266477253617467056853414475562740242803004268854873089530712940581978004882712813914056986665046912678692326359015054440078619411552501015390212246482347552766312746500144122212732882561951498056969751055277560225194581045478312411306437144778019703872619662489561904199478355597098198250590362244007207682327396776341434499502367318108913776306031530978186640546735724510509639717423093281060869164824352993122853704739453345050962416980220087079589592004178713526824610031625070433224892105843862270239523260633829843781096607679121618611483391006859583480201933424221089421789184598491864777655960879397197713841165657374192265778234906699066665753644710398449111688188892326233337133576868053024545310893488846296259583918976789304294459061614325413018300914695735075520840399238983367466927026378249342728570711225011796789909798916665119498681752307604478799241036518709586727753776328808503944007847065476340479603932815439958622931391085882555637046680954885206206852040556198346668531688413130570571451627747424456495799896902877265354426763778442815175535987508537017104045629687666747993997171233419080462442717341294526423675791786323734081799972228235582223551594943326292379550088476375856957798485453361936149715388597553214144968837314294924399438487584849513109080863800930956909160981126909873305528214181250181849005436729435389752465004985732242244602126582315856371764643798007004823291597572340802156523247849840786931992562846562895972329458990021288278728743127532037875669622513770479646184479191424191282151836296164177139135626373270071380886907621565477038862369878311094493220550996095872188695914207569268068162525198676354221015985397646935658302057177385606324623520013814344963541095379541131456472169761039104968673740853688368392552745953920166717393199210381472938350413308615562749093496640253865712850950950305271959484228127664942370142649223824976101141867020237491752213051508818305273033090523431742113184396641829825431640890299515898551949811506638038593014182610338037850944873944328775670521737253482741533003445687107206102169625390528590067833659058343561437694836687216073204657772456432790235977793329612322712779275079438268172129128424529991418761496193092195127177483314276659939869979532096067277249791904496081770080125340767689133662158391500303364130451785883504068064205163991815427463359547604363371934974336982017713788373935724993239549705669379721362344538772973985708272934338316665294768007388959470169672508246836602092661467791520006978578908501112215021397187424745717386880718942739624987061721516914834326659419952440837939428756261050740575169443683058086228443997044090596217161894487446918609420695324434277853861269444694639323481404439050599758811292907615246629451981970283451432857518993657962674880474051682570854797837649570748354334364229668388694820247326567141014769461606078957249660190547020328523228425747971848965947364989362139172892208381890912358831434328977644101321417784629003472525688117393987762757615160294780182344162977626561888684238492618503128912556794573672775227819395177818642077175388321479320017154425260752867091009328290716351520361123523996258522594948396032694716244202496804657122671043509272598834754419116748903832278916070495557046259497125233036334937685360075999432732828229947220906662810315481536187757778326036836108802470551745001420065349693437071469922015572787823020101498600892887875782239417194606638168486325845465119315394047063603317176330041508242909316099094994314317066336918623745000884465058446823663334943159768419410757131157622825548074412171863403247969126339851377713224302957646149702577955726980380306467041139685914574967319850046926934058760747559291724539507881692041115233824196049536157200022018414675229514577357815733309052185706571995879577891486634342610642846497656582145744985009452256501092492865797219112369925530960829332887405073630325088227260374238002034621935323728523383965223823885940705364110203913229591403662646341609420961621637432546656862793415279124140616455819999354980106885714125403264813989805531097767073360886359900237133641340201469283430153664555707240830648504218740365692304437358450434734473179551789544112156650385500711586002757221406631073639568608709279588934948280562811322638582706947946947672924588571077167173981964509802772180620430914594138011212420012181824716227704863642811575174534584139419398651918480987408216974791544515836709631902202668679867846126828710563134728550162442983354629228479679154829584199295786346746858736914757265097295708284619475245771684245529376957985913215735917234151044051930292167614795876463316174587398695697032937904298850081145332066702711729926464463031963337036252491227155232960404813269446842929844244812985615100699789718577049280931604473582932906293998298804738844191088049045195265330745643186645011733630910430769249368755950813893440263553779548834527206362116169448459462950398942490088822397160931765442225689895959011657795708091296660607882655989822960914274568674651097079893652612302149383558749769474632344430675794988401740507294256778595611002669302779100279338947852751490079187737415185112359798617773002330827368964086137998312049693213500431877610770259411027559918564112908119159537581899528422716147951033406746024462857000205405245396818828532706717949867742957846700080735496576308414589510791753939515602620750799080597919008926418124104061283054059208804664154545425650447881832857770095888297717815117822850536862638299960348804378976761064592266322284478834875986026898652406585751703260329740318021801957296761054393362397705563507970168431992317403835981449627412116537200995714655453301774509041221247259489039854890357998544766650414367642210076414778901382726320770972956631016469075920760303315897476246410558814586802408872640557287515226633584881030130250866467437001399366613402861251425184564351878816813873315380483824294749093920978216703216906787823949718169343791899266409738217027982704061605939464614912062345643620700847834887596224528953620315875299746772914882004069855670261267593443174741695166619748956827875575360027366073045168558215422883463789588761509456506220530322552038132988420883510803914191710247860065860485289053148414398092353466772402796369833033053281759405990411949650511822623177126740702675393437700431729898126314771373634353448837950403671757163190915833279465616711054917797864812864646414375090415211713412956801509772100531471556535089762226390694572090165701385623406535255081911751797046842204152798615766817295473878331899807816981800373228082324771011767835992227224371669750859641882352726764020446835237356649658674551521321038189669905891418011425531159582413984229670010659165170987067393946423369477872054060986093018717692960071710067878046456467552645559361754155479780366915059182541407703940473879947267457757620649942750440970111053048701839597596628605301025711227199088265283465441270979670912837245011498024569905029018845542040254416272414668837510657282391247614038201501573490587796282859224215273922682992594835425403159846129604684845541711847758002734895474732975491894282858183548801587411550048256842835968274983249917515912823347803569477720693609608796230611839378943474623570386269376115011426498691154095996355238533884149858991306231968635685906284288861566311365101114052635895789665508544561010143715511394593507516248037870100742402024175189384912986151921508978549778921334131686997507887074479483707022700062455063521065984291872816109536825127454296300983491290109672455772494558776039512902280515008437077180838220418284273421677942932912704342215027850908343013678735861707212676096569987127936704555720848990209703304610070826544426493264261116508316378610260785405717779917263987072210371621493158873967365053048113817656746145114528256049574355104127026930902113871636598592944950836086799480755640092744302933877491384248328849800062218449147183558216619087524083798461004335267195209087250954303647534950877167156242832057355518795074583116485530171269577239050070782012301865010503603068926667229468511871283418940154116844533438343576863197751483217187418238964623635970272932251430400197417172316428881948721912166570069919126789670021413250228891371479233042843747799873610733849115937421675909413966673456385754369147024546023909883547125988947427587506569640049319507657918270581947313072973361382363520017406539053153066287100084052851337359560743621218831284632522907811449004771493928930503651772693500231854264713458717967619791462367561867190348900215006856873447402043569214496221055762402538959225128345851331090346378468238975614920687046159088666690991986727221063399234186886146695163052390865394612344250618797228988794446569975953588959429991369167098615551749966813767118063718644818750725071245779437766518553902720248328834198839378401964248532619871344822435454411420266565789828534219418281568644419162900536866950102993780017880680409524090218885673073144845547545513247454882452135877542648425202998660045340331193900595124039520425496974166136039637536768680001562996905501665857478987349247211296112501862089207948428164338976331955420438616189789332171324331640778778968901445262221170032141595393280903398101942741709240305404965931238234115227062834951449465430744407663163268056756040763909190888818397653963046276180470858794855999973081550139213579863137312307278801043092331948587803836122390549955974018529522730728933959115014388523525329021067555514963464802728573027902602432451267485246462943248062959071940928180410725655625724749453312221556972426645660131751028457066643866331853034198190475755218503049568976641229704527280584885093383086751381432396634548467602541943792495339742387386695441846054251899190851496908902740780690683919797402672375847342932648536365435299968214187140821734624057785126824302565920823106260548987678430907518059516839566736464708421340299664820960352170884875933764636142433881836802354159455308452671854062460293919416210187339055290321020695268733361533902558551086529590137157769110702330178801875727344734888616406189539259462765118024698579101942878466425348278843078125157535593145039632354301385856104141359896299627252348914884315300243623225796784422327040620240028775972408339510650691082116446425242860173874431346500037310038117284078474749778996343832383342469223133234624716931506889789665104186363697468924010547551811502726439468354033598595663538344108702872162601747146354366248685626375511131088234201786369366907011740566577042765601427106979337158348211704164996198810331753870823412151664641571241138571796495236101774636016537580296411945309694520646600036354055921008669942982972089499660357109012066473783823456272987131067616871299327355683027776033821220474507251808764258745236289167833035954137817594839156391021500153724761522904684413924132817292965587476598455088030388886939102899060313590436879278561354470882675237813171818471431491191174510170861174222842025882380483427037972789904665141680034414842278906425724270793616904366932801045318225963751166859025320744814577088511876823283049971465659236222796652107307174761983149925114155291878573773600328227625348325047831457349125251898601641401947161431889150786115328750048457853269222226781476170169357202675639864502154102285892068553671384490696454519679102561873128659041093199670447939677343290827086173208087240265266262516552448275775755285635171369028153322671683624429804871189416282239093992053681336886730567723164520810136853488707018064957125390203782842740173700289644836127413914932916139628191479164132174064183840983238798110912179089629365355407387818976120831465698109041823436898139267080262483391524506319117686005657980028418590593902374962092295806755959587756686152715927225030386190555366038418770827007985443705173235553900325972654219027148073201299611617728000900132833054121957977599388499957763417930708468377421365921862162980636830794188259078483620362179593613615987116037634544865682401368489233740363314655909859134105566325998192638151910620550152125219725605527408895266699878058309050412939252812029577090541978991384905368261699765087974129830260823295912717587289019895497427891371896843733083685348188646661171782919521190615574899052099311177675190140764210457111710704682001761280406371188979272510827856567843704213950772776535278290990037239690052185242954474962539710190294971007325187822418893727554381230954545753037697549756023194598353450374151050651826948252734349797108263359792290249449811537383876459356942019773296222049705074052536197129897414942088463157397300117310898373229397029447589334426807854812782963441130769531990640638171411555284519976534352733176252087355189137957543410187917335221895667874691009750746890519276013885532507699834381180668139070594961572301262683213782379004024952213535034889458757039388420350450416252374375463573921410125205951774053034084014370817382133891590964243427997383333349178532142582361226573229635695783811192119163888567301950916220503405154784728568984929363753184097620121944059129283016503523591901104524130046640451250873079792149588340360765413515889691478335146227048188386126574324937337997464936771219035836823947963348400406161957011086480707099804300906316346088205851439637893753193943297175606571502698758898238421129446795096684561146911706190158960465605909712896851508568748432521720599958130611824198385634116599163766305236369641172605410096463312404667716090312889891940762213478568338507182079768809639324253766416676959873405466231935550884870137827795066563965268972605947470744168429054878095085056154428491360540132660679877717091783732598095718813452306782354833547602639291147384013909127008082411544720128235513426890282987755802824509820622181967008422913179862471999537760924710645671687731580722258587412149616719283621328859830131024076507181339882793391270563982168031195848043798819099000310474765874479967980496902262350299442837291741801572218080882022217951467852577762943392480119887776672921451921925212935165042074158568297390516738323536411753515504389361193007223598340856254874807564932765940870222337287068039293043979769215706566671434403892027540680004930123245753578504648633401336082316761593627211392363915488251137454004236896179260742682874949750210724162102462343096979039199532123964838339913802226399574526903160865604976490497250898385610888387912933090628918195547886088412430061937389341820928346923784559055152385455729246638357784253354672582887812551760418854787713319013760249129174940271528138590696245204759326091812812615892844438336846801815041650148485177364720727643001153344432176379205816171732041224549212807755347449914794783467019572004413744327216424116908808991829102577973807583629691115428717084999769967123432170069098228800925516240655263902293477925836582407070273733969803638816928493556992695278533526124492727355409340256373672218765693495241629022202217937899335726139425159453020135004394026282957250277512320460671522461796124586176905374303283121153766055831637341120064793576539258743943057589485678494458696870543061236517887585631159005144663583289712604996266994346104192057053180408733887272798536851840199650109068401417977633266181316748049393077826871949043562986324414751013439432202625875273983340938709930982447698867351895600351378520934519851787870475673216314925856606387193518680389057501832291681891810150573454478231399740827240818730255760579642280254972331302035035976025466435352722185456180590340916610247628281191099935968823780161407751572670880233898442761372295651254739145851528546872091311186829169306980244729812925104104144021148053197691062930859571858457891802028821268264177857840685821083588350576808103199149231259898175925352639154533028732206751421243730641005826687770091109227424147553750529111456834604469820669509581260023829814955565674942737657609134462415146192377132702590973598117460170084928743703531326189118258048488139155340599448300533548725162364530753299225403156499315754527395458372545402188519552742291282768675543516361115509636214239396110018857028147934628261066574232927840002552760526550586581900959642357308081393111598590629762634712782103004440219766828715366795397997801884638114238576405311223254215389851905942093985529780757653855635452191158045957301348356051378525825358003967886863916841487942811576806101531997580763732891714526355640217035571022745094011835329476802283129161094394948719827929187259756932449500892815814303089483913019470719759015084534077125016523589046219976550649620396543153269871737675319707311258355298057165216155610366002973194471141577670586816961130583865863499808661026760403311627700912173378565590687955474694158929006551862086820148820667799944156837802701942167860883370991200862342918674090098880373221704099335057580746998549696509670383753216580212936696069369942454619536587749033213103104087382487203529980249107340412743598089976582568998998612639643694041296960538798093594113504901174700104251732598177496467159918585140265730378892311932431645804624298302257013184510156123733406986916076412296128256822636664705553814162373118822012046832266040753002886580308035950164001137717593525005044850488797572042391382243768631475784065734943872975355752858519782727360707869339280979651380435813287214395818940035844819123454619504447645805025849138704948004434949458619388610611864945134329854537138095367835284540920041624775284975956421385346135251468388435415961769965135596502801489636933550266196733174117420329887711550771752166695444026276156697286939101837262876205268422451510572664449594981050424212879212943083984419229318770300523337005708543819592882357123263532008692084114694198017046044241277292344708426619160104843978547219084094600571668430758679960750649181623488819879074635878212837499466459182296326083397023238514895180736875790668717610181142076415305330556913780171308722011286321435825661511970195563022355155232248967369802657897600828445320337897693702894379103577338753709171506862156451711089750834545838608992761172855839447371347585594758104516577308221067353233359343315776848258560340151473810594387824074577042154626717262909602748505133118418319584756020603679956141429899917069974565875505675275044917103038600778931371465074515995469840635358209043585362610787217781479390689663117260796481374114201420527100768395865646399467060634113717821202421193014366863516508134562935280622124001680387313752302251759259682653120302640371681815170535038930720753573857740433099391710926331744548966601110232147360849594642045558305505345579566993931725925553957430095020280028969762662721077816216080192014544986849974430464578172441164669671796988514065099884411262954813454463996251376834101244958518468143372631937063634099223978692045215429888385018742927329001786521105773042303047451644601660029129737153800745913966418216021727808271181040492422731742179762180008239788620837438178230479276113951487577087519080172104769518772364348951466790813242331294114826117355843592116640935685027524826580195753516577293460421759720701133584951427525463548681759015136464141824385580838325334484441253330807625966504923128649332005297779518563189443318353198795899102646756032631852423887798451297808726701110543923865892108998817665044469278813842854301824462317073128278279310034350807708649109070380395082015111412206882732060344221103020109753631038568813792427717364893281694205067338027397800360343045856680299800658461153170899850957344287582630929227397573652702943657784465660477835337697791284324960723645198091511395179675444372994474115592468071369971886114281129286919724344470695726134140146635547649388980816729364351140219522003223834629445063272268227619904059110479171119191945211726113479334648920925764861304260674746162620315247514568060559444704109777832489711122525352711084487359870290743866125800446534557693639345287255863317872880117253705394907671622123058533444104395997866700103930533269102286572296347734068688127327910968017131436927355265150469456890148941372387926229184020767801010951587387869975193372191767162077616682546660527938905603916303013076503557476575580361807355789235859661599584316747079149961521679145627075745320190861223925449521562321021999572168936004627610058804858959276428064786364214531111326066081191576975452610283141895423429289555362479136985263410184191675802912619135719356461863183464340661627587260808166365469485659724541112976874757961509821295433918850830221365524522994416110929746182757281738705620863853801852541984656789274893317846233858792580018947879725171948685486795769810007821424661120973453711710918135766165544560809567461179715116000452361664262573347880137957321193640470179003904610015752942936278375535267143826471623532661001170477668449577108662958786978380028418887111784693209806140672143904770285660800155109769420779453581279083405168728623348207067743826900867099662072791572136340853107434086249182029559551141095475689971261034285858976905420661412865608848798597353260311470015383608184421283646787278945267421751298539932293581995741102102014144947856050279473190445247695321334832592586434109275259747872231202218959857711476911357063752353197826496132643747856999185884873372909376627593503716685481786462319826553227762469871769345249034667153480674117117574828206025470625980003823437170128068455898937429099027638125934417649139673718031263727476527558455895801041295043066787971929211452156835021126412369025429968995244755790486405145844696283245007380129938858256051919157298111760091526306756771267603149337273033383263139617551486273338861775198178509300324473638594970250223014180072845161135474810402220299015415467875519299821448823123334973570302276065727018965493031674768617244207874177621380871462440713041932089366155147742760215614244999122887371302214015377948373032108093321487802686432541771283398547146809033870516147247922368046532550368392548535905665975117738419347302719575629372298990117973774529719594930728160094306124430816067334748468651206471223737183938940185595251484275370206458845582953826960528432840010960276064418941259060705958022420676661564145595125531457913620880895112498529074135749117991161977941699174477754445760262164546922431304422289845492026865725931599767404285471697319154360249796748324626219895363248242277121715360833349474314258268803211380781030725220369190810964032777896943379466967655189039483720680336484729710376712875726470693327240276266235026645256484739654883635271309304751491978490850553962330042055876641386949935511031607056274322014423825241931068430963619399563412955810025981805423417583822076741109365624942648420696637940671201942622362895242640360745799035704079088538777174987002460877478574275541803847131153945645461042943921419115593846426313464981893130988549216834548716400941062285697270856922762092929056489700288247114441074967734221900928449902262148334696302613335762719834939465786948971645988068357846429239129227753534692084788684737287898182050798133091476144008199241382288943839778240339058181487262892407302175681407374142008768293146314974465356383211999938980024306599035927775593438753258047422991319728779544439756771282333439652537236561882854810480998956370180320478212364244069499268152382051443927521551854425745329425898530038497996864744743414661327613197388292603133571759675908352875166681596400677864701273987990215498349932894291506621115701949195889286507646341611234885187184889865259884781270586769572881859531843465830594403033357791726657155371704199099480157946963866803355005602488105890125654606334011314698519841586125763098304936735949505346914478687870550090981880767206498985686894929189226639409383469189025383313058413101559133263677672275173945238889945403938165083496288519286372825047656161574715990284904094468339444548686519607503139584950090406662815737538114273930121255216448966644023978514677631748058138872686553028413095241238392107927981319553184834484945531797133134537268421588309025160805200273638552416310535181404783578843881580231776216190895824793484013895965437171884429306413533257209189792879253289255698947945551050094413642657689657014443421794548711123578054621573870969032999275523446447468862933543344416365019321145315319993769932633875650826310029018473091250928655394422881132054684820818077493882169049811596790596134527144996829189135548078956722178199533177598334079463092930856171067829642170094032283189048998977139589383745260373312983413886214649650621361635295453030713290920498325766979989977296787245695134764274874249710665343428154751499370231349689362506192372043922562140233152791721462686598742081353716941996598876034379457789023415537463042925470234255687755132359084635550679787803783911840844857186548020176051980849733447435103765939472910500816881262418637428286437642324920010862706151556700507700571189455467392913314984010393409606297568573893488465448201329501300626253182001033250307093606859594947697084354840943904878863538113958009767284904224429050661049220987480271783991011379128569186772812329826990741134306498374054134800748802185353621576116640839524660515910211466128057632737001560269664681677040241216051887026294203028927444823447054061355562551822357781500316611862795570612776770997455140996795236850485951887333093605741197401595416444906399582390657939661962917774405565248122110733953798923688988060733472765156949124572826040615217383655798216210503555984601325990077835169200426136959213808281757521551772199500329625374696597760701916595428493080352428564376744303377061435401305699198704098646890048227941014884896936775125040784601672081749183795921981152504047342599716330357959206252473691699274141230674941743701738050830619587773399539075282370904661207599737580528392672417895487019005633824364444201916786750112139623087106202250788998511273014359174005197034620755374595041333384837477721137963901645592718714922229490558731995099972929513897901115570583244235457653297207329355092965896995134363426683867453051634371138576978955855350855154484236805126523800213607677953564015492613376772880069769898922284098445476441066676828818784826201380966702955625786884156369157553827384209472118198337432749160711087923931242821867070518685373166026692820590798284182812500677595698900877985969253879278552926475401950045697327969283125897625385007424419331872668117149542205258354055773366502867397690937460240553118524057318091291085720368280451506294585150799498480283645691840053323482369879800774936495582404973530123916570522870376193134447870256383426743149194370566727560471521277548568675175202693205649685444959289824760592516305168502440490520875306487372880302827395248960753651255794935898979440261660176287238982556904433141911570471707645969187158279267121566801863260961538888336663460099286535995226364415910287750379095798883911010368862021610215256496792140038152943946503094404049805765031740686534330446661565329646517880544589779350494913540156057047498765546536418673082664114939996944916100073963409870134351455460325374866581085025291207547297279393037453150290104300066254829335266591092630140538326639846917780188628736947799742093220380247125230874833553453593187640568047021430307866205072352288017071870347124419176268389702610534544846917354479998946920394561041795161387088201730692347203628848347607206305004679029994692007568463586221767274094150218706287443115705444525810167666411325051459863417528168729333244917149322039317488586226987480699095463955817581945315179149209150918923809763289073202561529729376561595162130942166756211600946315671029154543849302742764815902592139434777085110857565438073345192236326315000193303099110335827624667481560510337172305620174450492262291553204184189710164554515589369602991521807063147471876437837250542897202690004159154522179342872219573584406935905414552280692109590640701743031281118242026750276965189972478736967524280630265860902401281822314246906185161707519436580908007519376325173469909957094032180094881797252284134478458879347870395585375321738168324027713488494776797223399926662943347313024056069956319011960949789858393928502239099458157281922506867987756430368317266236250654558280400879988817748842413277071111301040213456185634983290718409749279734053320373257916245040813165562950545937283971472369919812624988386848413434796197917172169107136345101653388127170872073888239293020743392088597658392386434718952650219925565774809973655133810506998823870456735014075798658299064183115690728573747794590053519514950960218129606362483423185761385352209667472847284169556137179365847524803913526131124642329389964352597077807376638727120210185536393909264893849587289836107774129868376870138702727489219767668336491128637008116846759024532689872261384354825659155706798337038374433369042791265223019451967173095920961018976890736452955368721186692757303321870780003691888942634644933960289841730175543583667948638832120957983053403873613746347489565627837540591346124903570494243512103431227589450673252579423823947873604034699938972560951901764870692167242248609333667828034998298702311921632702474738373955821926734421857517340283620154077742696141329025738001583720790399886943817687118915746103700180313114774110109277777126628328280776509853583287886007018848510181822631851742884087870168588691802695140259269335497170300494124346775993272243156087992823221787719734630222096536257941980608532512448710981238727838164773491082765309531351476681562898584854773518195132411169819475038532165592139563396654149916219328121866850844717734329522210110475644487425056155765115396734940135054798789661696942193042886134839506888086550658018260822053607461126558212415374202788161679693799116165546719650947137427131117128117797776237181272996938461459994936395380677326667930200458364822966916250735747114912987476099714789516824259702139099608131697811049660506040061593066203307046038520568650189744356510492941580813326760112246456522885084960596015490464683116080840336207399062801407460105177935937276949204747304314811404904818388677455800479808882354951080896777062367441055688320852830437468489924602432646481513518631219896472451517709647844694612891857729468394958486015224341668417129889955436123535874070771237457346883885384111885980814976012167540833413942447790210368585256645391664349307385221505254005424413567709844563738681004893173998337856063986787048837541737333943113916369423586407735714073881523346535412818056634120429136082516987571446761844903071774329418549585441118197568619777471219272575687023364130313721904860388959158669629117552011978809298989351085260328343932497605221872548544781691555108192905970586436802014679019204291121867335473439815253885625778668052617994509935037890181960841353102804220983092740095307011707812722902293941847973285729749950402425935606624012435113361665721338432228303199722576891859776396792842996292912012532566725828530666904886252520810399313005584470425303408747315527282530670351294781508441585835805549750808698605821403241463560266269820731232944569716821995306791951530901631396354313657466556299216656628023472408209090137652672175076385000077425927878673209987835058961099808603292116203864295173827432174939746515433670778556340684763178515027772864925419422261936724351924689521274141576819247449914923061046508269453641854696069615972737512653400332009558104324009014135035549411778758514854086411627252811378529517542909433476814552933225635289956151516933323422551553934631151661573087627675325826353715905614112790332623590160523917169545140479162592705755947068698512376677878153225892419530289552403147574055009475983263896681936968306310447794076037995431304050828191018801118957127979249114161379850337293007064332678933669755026193316387342040791391844974573419432282588642741820587421850971782728276339771892444710057114249528646356921058451269323089519650102730891773568151003813931449511891470638899175355061365687437850957603323013142420689993139543998005272401324749832179718830217432007543107450631891073607809471014457744253857665737404687024548679767375816010490229677282222353152384034210475689643746206528306813515129662956897782553102410591521096216288002594442842450854306285913620265893945019032791678485927279348809483359693132030103329208586281104577412042917984969586256189134413469307280988839095146025447343276758805877014229284387171461441154208597507387606507177151806405173231564035236275020974676708886066230012912858944157199877517479437879301695589194644441507248241223373426675523616271356705229542446915398695120332813603176302323085538068691711475337738820985106725533998030679224622604151755884583198184130981136489291322330740555681920212555810316659143495729524232363887663267978218281841844157378717335276695979551551497518864363840200141036656903468854850160959141462809876954607172108944768042693703200289871493322661412918524697031828943386972450105037771051028018650517520616788389425102790721667919479589500535918846964135263811316545467808472245598135682293317295300406451640505369789741672628682414888833419374422472661681787253456186539832102301571228680921225810764225203871732066732971031747067062811307554385965415657476004689004362887979510828203775736380241471476598890550933886903756073564913786918665830368836153815141216580679035508022016974462391928041849597212587264853647495910655294416311173655871098833354384553446755206964390389473632848366712461467655211940306523755491266873317400961667020563557978432347913669982883388407464819683992693544248873464902257700430873851955341051738300795806421614894909302217251443670424478444974981055402354733864261407760558341688388716485601007662973140352885427469529290915347403683281026677487811876809055663673752522249316792100549883295636042912141682887922150471306351774516347200159966606824767820971182570228036331025271518493892428727145702820703169402871136907097981385170053795425809987351612134827594507450608886604802465377291412860815498605818664009964703982262789199961847769104076411561661007851943418129022548236907225268058650947804101036940599961703269932344143734001083719186557629279891213704204999091183433126162814182926070205876084317941375160658224189891505068504033410975801591789522269529038328699290944767669753082351320318372657435524880547375155442223662100167009877072429764369225841478310413540717454624736454735600094796593353243521811751629467944245942896889455740443533067436615418193289934397440846873751212508749706271362146809756329267220551946324053989416062642635710459950543265805562672646200382738009546888242265508083945455481253958880231552572632273673918739522262029453435378880024682992625730498665973064961576536371043780119166798705232615413355687040544404138028055539786409882560185901810619871540033826530135632622327002395185687313287546435436288573960061544402580101694631310426394190491608148019488529162848248165459356565715657134129737368166619465016116276149442603159507006544844142762760725938210656203886397047600515512735500802651322895616657403573418019918422643737443013815080979279314940237832946452674787499047127108329077726110321538692034240611652901521903612931973045410067214702938406209955523871662069021804631778047385906344248634441751698096325462435045816607331389300954933182463095534027950335055466351357854219979149255073604284144130316363077553698119446380386281081648938227112395828551713087993799279221302082002812274155072880442430726720825459005459567576042876211238030462327157387491669718284615169910726018158033485000621096540282612283381107006978855334337951526758151339327413999864965116382799065590804435805772269097252906677323118154695671459337679084727874275763262917391796851398287538652765779324466545439615000636956175941254494040742581731080836529145599854212539146523417763124548780753364848694897955958837478209443357068835328704077406289436993645171602547907423748125031479148179686578311524736273159786721034920040473854786943881618212241429922174352889016802542160617158558925341300542620615880080464641430170208215867954411940121328967336130554928013752852202035536264761654584289807792931414057387548378063955514662398300852712662365294319099726675083028391851436702016900356353115408041374898719092499063695885719910272430784725734705742596042776889281034563055283524138165002165014888104361545110806816251493906221376754516301587312540848215709800507717988568351350887243505267621132596721308614982028903113357830855448427325068535649451433594940339032090191654931403968783840385526902850008046432544055215748863690521213983073231077791691047279658641440653877173506094998773953641049202142707177381357285644706716833554941558086606162757453437430048189160716807787024727740953646189559213618304424436878579144320172522324798272987782042667091454316143427528407035235476118926908555169470666445745728604943345817733504897836533711650211957895585173329571694447976987907169118237176306961630640174829336004311370453888289157481466310960606551279053894372359130651908452876958739228194516563269317471058175057970744807499687349242201822383882920620693517449325988852447273757739730972866496274754112192053302697787948302152613613028352976871125656510522207711724163703923979799931382494954518850922291220677879274454667258843510992027144290180360482430620488143507578682055754754104554504562018636842315576546293662031937739210214804189958358364353287761229507960991541481428290564574377680236883188317728986160319368338372084906682452371352438283697982654868264528206383959205149180437743053937088434373425736047813528521435514790431044810903719645657460464102699637474869041497625219629571112254472766329522408550071466467213381406763283413761677783782610319045988236804640913762125458274433946171096955445523853189964406710452658072808309383350993203887262733020030007326131213581565874420909869488216025920925594542220552498857450565967778608504111460031357172897562651415791724907792150193987029617313415510884655800582742609067135368958847683814853048104502517450198863032801491302070484513462285959911055539820401193648576416476155000256363046634465467414829646013970716192014441184523643029465812172536711997091162314571337614643538260322182878648865386533811578196610095188068497086518199553301301100873841592383956864840177769900936911141197091940266843940691929258870868157819338378354960562791611552841025797445646147875154139006345461763874706448433922476109782812132502745014715218189529462930636271461826207303976091397444665163044756760529049835084210491120413249397328044860381891482911024944609542448451158471696461349350401493622874758983658080424392624023028014590959588274645945138747693603383118566721844564289889291938150845415902087505481498953614103761627677834684428711446662574550693777677042062358911420204240948672593795257423547369297312345647855466360581156425691522870377088740751594713182763631767999930470686109438925791089731714613207205162992720298209907814236879483145997811961686421400197179458596748670828874302965971545481654015884315616327832783823331198594833316614669568552640512839257867985093540812702177905034593767403770343917000582799125773615930918301226293794508975925708432257471608332121238859585544898024516076968676197288940798243264746461795213414085328217337597916921153964900157647876219525663153467456366383432885924951173163817850941300419368491878806462630053397102142569432439621920969009694797280985190492849763920006161131543296311301115806616150483606257387184122573356622915174721829232387172257087670361498391427488668251210878390298063586006218614772426942635698316285182695697893751350864702234689697437832636440924195225331142871977025255363349612241381825211670822922051348670402894431582447213129664520102269914018680459157326501267326286312398666244507654955978118254200412669550510974333366839211943206169580871474995550564380287709985507708735095319082063357803356223798907135907510692599830808784559255533518926066331405500783493867994445447431013896675840741940900106556385876000760510150854489116741816235984316116853405726542651681100816682665751801106251107310507200417973701519030287565184361188238743225043707559341396386387429333803378456263693004646458484834005447202371425111136436378440927727786836396859626352524411824155613523776487856851956793860545955224704102874565754946555167649222740257254266266013019588364570128178599096606853785078468521162257334171421175524974976890515015093992235312118145356891679977823977636462566730837674638412293721482114518395927293365696981816344807600416970933922633445649282049172832254510249371526833079181007171320997520063243946011590907837281654805704715182153713106947317144791941663804067177323027169360113771340141274373159561274388643342046618501007386641065488813394324289648386698260938845259368631114148934515014596259806825776162017277316430885895328957282138311998114011696276245486345889775517579714313167284703546307637669341116170224736400545350608981884542393391561339942786340313124855273971911989817570546079735887040311474004852827142943030276702303712800000998776271080543998008157871843123216180459515078351010122373770001387600405427173571453179694360625862558313344521632870296511605580758580719059528459085733143812001152729121987252552042766127726732526699786197497333584588605102369484493940915354291352905340757295701213101004140548894088392336314524940315765530431112574640344557791352511826757638229105764873306430583992625754778065029050948705509199775955486325996338040183741172668628329691188439418969697679326319631313756326733648339125851563735913573683801769385098183261149921077755821970335315055610394130261936066309103854845102083079113356761978679820870396493588307350318224418796576776959376816129977832580575892343880054852827259023243068592330109419755011794164507970833503519943192700187988716268581078734295325752320144453975391945082279933018110595761955268312185591248851479850549413273980809575552931822774230178197388516873566332158049810849950993077521522281616679345622464197245716684408773153996136130224975017792102190242985590885130150573595615122630899236776602658678700697820768771484421270352045913909274565886086144746472167344895260564894782678270532291549429919183410421278301378741666400843351605764810801582363226376210541520420461362168230686188202491171927104876977080230806891178750882173066718148724477775878137815856627542099371995895120241704690381132510809270172276234828202597857880046529579099641784742535534714346997151271199477067982898242396035850779379338231987756861519485518104573798049408603341381670006689034437375927761848582663415633342027667408043926554938430437836047668769553441988245974089746944993672476411060041754304585248135724564143994995535608669273124531654537650030288816369699836395038778989521035574672772424675465984146746575499317958647846351338913878160624839994081964359357893687775420917625728898746898279878712539306570674733321996890157256734287379757950302109876761913651868503778478142095038682618780259250512217204205263368355351339829218093215015711112483695577134973097205931453906335227637242547323556613127027732742295943007618154981229024778922011251572480051652845949094114403923447400676565068842157357944186338014778890691079703115945261881508018497273842375319788723930874577473442223045792818222298752203866316378461667466288213077953470355821798266077685637780983225273368969145561557390781636765879320441464387997384263177339667816327041761548844543618247151159392408409627741450713184652185521129110175003192791408354625878284051828624424729187658341400830380669381800474818044283101155658523177511979227664603502094175698216256286419846985792021306528435991914474136381787727009765364605809018158300600351699905097006339541035876766011602028808218489193106010830812905690017039945195413210502011736661275573418884329883319986053253988291087980404994662531263658790606552298812466057364955823264157202720556202375106668153309153090118840091700571644867782753626019987600116625467385359999502331667352721664589981777173327465545977581813073005789959614669777449374011470971984415712043996840511312551872614569303461889792839219974418604521017069944540467971682699054153170331707550344405591772769229000437010067295259498370035084776884166405651157906493477123658298990651383011394546841431167051718120343402653188106158404811090922250905245237948308920931412202773203093411239180107021263694520092362193638447949783694640401027012965866701309866679476595422193286349849299618663728405037904802962965234448523149183295585304633225090044982548840889330021557404879392170450737436839934387908177526748405018688391971978990014672449276984596477812893269343507525278484695840240714624427702752526007815762345852849168973510832243706421127721644670392796165048892299188849646004777612833721535575795295794588491784550769339613852245614251839435712329116149452738104113138556492566934561183819550259580536227018241201747141483159853229417313840757461389778631090280078523175198321251547965920144866907831587602618606810125455098690596539812067238371366958684016964414433100433384782955904884331958547099129774983403893341898453767674490896500688739876020478552057814655336969392435783419657509625120859814706951354092518827405568381519093237054475414612263474111134675546672860542326428992924894701148299242753185463402370463529073129801349524104752642650116157737321551052605188230987369016405734608154168121237953016277518553696681784130251094956873015834890298844548626247656792147049700099846392157259002840834886683475533274099723908439995186511224852927593523893929692405193698312366032755516399445059710458268181470308814177924840015865872519807197931850375123415296561067793379629509319134704247492432143342761558874296910692911286640548329627358565255973171524680730710289450224585029620742216511675039093849497170791938001146146844295408154019346982197422773128272342288013568016300774609385273241250061506023200250828396011439493814720155171990536082725597988860664426945884283776191444773330254266530452658802755502545469796996277351415189393313415414659616037124113564817740661344719716001206835722856623317059783223165021365230622874655742131707543631541718055203472619211105680780143461562441681278834576118532026463790172354666248971248589828213899722362432453132921207807191820346125885285798886033502724863121458669866523079545834428135011781366830877084032935258514763028043198393260449927395962744331869661758690904195926367925205490207026384198595119398725424956508307556871714994021131175313362584426259686348619657501098267476658437218055742959185319365556105710414125640591341271998431541474636460139464442412891324499067181196052603523112914200900664177359872240648232290956889644007544136143111745000226330302308846060354511529817714665700110481356498525773973309381928549470345541812084697936046020775912444783397897740609179966843405025900085526101112723527874907333664017410200038663959886591168559171091626239894572303600219115500991662486530650226495188301899803897794897755242881551875350341207075568844040630121184240235723344129959270275054123658122480734038918101028456343558225927329579284591936200965722787798650498002938559439961233797632674927029646745429763210221999893635417467396287520055514144696687099931999625090685800333463657768119523383043116169441135740787519595801913665554084234148259345405618641726723008201275583589902381199140332072587413027026189463459698104402436822403647771850247424939711928499370764204141300448102949820937784013593630333075117879422013478723555407981185168054874225751001288309169525573812989855187801429631651004565405314598810313731287831654867960703914975030138903320273494738827978771478725286020550731037052145175051524960361766473304727782465937127510219134330742133440454824915703642566363048493853850096040060571947828807962994448372267791337171646555825689393905610804052690302530580353378322355281954943961209316048727736372885251739811779404884784849286960417733391120153120029666735935864663196111436789790634364401588017997576613728357323207716325937839231871055409771065543538168822545255581580865732567497820808161345657537540339228012808577796067921059956342133387830818335442609130019943556204769931306568254599569875494050499095380943711333282341994546813604974980577621988714695029199663926045590874150675791936414871507590616803354501047893846654106239912448207235111972585360709852086153634375859675687612977746485973596248524368051764337534220135475882458523251109105683589729464026188294844306521532136272463651998308170414240572752311160208826435176187806318696352416692216669435169949620126145005388144549752162795930744573551266970079153770167388879159192164283049794766074572092903472358486917794293936881740408855041828281343014012793316799923817230131781612386063667117558229544486818286315014544382114923244767495586501633248007841083875729564874008488671854059331848328657997267619420681145158455284987229315723643771998199990898152781340231892614736432778101383882528423547360619336808375253577592172655420379364617967975804407955910131132368140695701645435887633807735059275921201094991334813413395862631581511800745133234451360071586514443326994494651798171679302120732061505228483542122044562377363896846360052401764964011105946213572223584705510003552284570857041764420631589775142445381251147612668572272534336087324546934715201939069203281335661310761618826748824569593284838084448707248177819410003087227062079065632391243205180730708060604331018283972979716258842691956801673861949216462333863345356670466667752947164850736248651207770983835196259419940653642908606213701263165588325099598284264299587596687530757530104963703442765484063608585660761909077149873726323717188114389540708096998849617292897538514005522184124562766523957101670012079047020999179410178374537541621678210397632531275774312562804486735268813896355886130382023736589622730054509755949832034239005243421375724761220151716899936619698714593891329712487644757969104733950473306834676488266758664234781282707718894948362846793389495431676389806346796926144366597722279054835857621746324431378820391751182433372480049462451370443229076597309583043281899004281799453508751555567846280149474054701438101802024659751502426390246320472124234428823965820480314685959757941140508740754216125231399546977475356855540762135616218008868814331783927893386285428678846479198939011233393575589611834640037927046850089222721918698750623946244380039289589091207999025368585138345493527246859334121516385474023735495279135753990073797256863492306943356215882710851459505170477256473672367542076656374844723109744008997465617346170099813709402132170491111730096208991783251247106245605071137703228524495879891691661357922769248577261640441952734513166413008695892310403089036681566599594647259796665943150094693853536898898619108141325863260262033804315613233132793254432076333814205748735351077519090901943697203713027603014450981798776219763047923078767987735338189299703675398365784745253079225716773161978011675609010092323766932152108884480489350327865595535694573128265826105692752679672264909050170008509745537927260642078869962629361432142743922821273150857279904055988307479073937873012602794963935352254319203682252992054321190859024856319198089695011883738529514710348797553237693182253466581186955653000253194291239216915457161570690092162392745288702445528346080864519475436118819134084727370073593620527266178382753716600118542935421801550498951568447240235923177742312965999206334317674891507797315400355470669572035005211639581510897823453459136142272965996339313068910269392812231938106082182152675152051502431521136727016761240256721889292974440440027081730464528595076504837390918076052153114629280901797403737497703263981648984930550305951083420674757263951156049605256951456404717060791351337846821995080412570548554636135051512431488693673616853569458667973401999890951027590812537618718444723199154137424041110029624258754372895625456791769753931273883012769519399634448770158921100082849359518119481243008645267367412037247354887664480973873233414572799677059306727841865325964931237719291805151228593326295919269247515673741425997911059174132506895847590343639550328011370853268400089101354790848333973757514282765646735290419555801271078571346290547696521901208282942398604595831792169218714045423723379720922089966388947891461039179092063636829650090307852261099773957675266725545022233313871118629477576810929370201903127163820481366920257466355230224282200154044222914965804007792590654488869543185277185772408076198219196072651691945279679568136665378293281274262919955187028669712792122456382970043599643231135174378282596014297459037851165803609467240471935720736442142270287509495249466062646498279099176052890115174077612735992447479467040407297789110312208291978843963544012651664144995233024457084513208134848942382820979753216346064272409588384153476208587067340623036999569003478771350924599455763170851097987138831085648047727734883424606702799502712354818414800252893935694118070322387721812407444127164449503763087552736483604313876245676459417944355982026669293054257509225009144379035425599845911565858936119448252334685371871059061361203728637269050432416777986969138758991566942949861399257946340034108652848751942747685360275777651102744532385563683197050414588114372379302792671761668098586101898892821575495229163260684427078864673504938206639161005670703577610011383166672508079503114224504053593367868670637965784502269897685095202246394746072025145327386963288909353869057158475216605709018201848547141094476606251377810334036444810768104802182478067005388352423537671386146444921513788782642809116381056226632255224537229554001597688287542989235329818013146501218205028882428731446980803957907201175874306583036445686741162847303494330133973859071890937499851595384871702636209530992113848313853282957478855255754697678370510105106864372611656845938347246657884939460832029417734816548792154358942752616228742674794454425584932996485696292285349573718789722443532660392692724466540625355618117314200630756254799869191919895152111222893003478996370568687051641471102015940142887241230651166272111174088644178968891293946840714074321447345538879468981814499090966539742443729691024801501974635955361082309244269889971912907948069555676596367627292621511520090124950028104089934729686434515316523702425632431351179963604202388254029381496602009860812929606749934091762814700145539730360833196822458945157905463553330461579635481095814961235215656931710139249156450900806045469000472197569746092312023762466528272160889841495026776873494757424947665574947066946426385769188247299297421200514584282888934723235919690890998525223722206093179410381550985730419926846761710093902746699314150926851075941476787796126832658803156210943953636883331445039009622233222108433954457734530215970554224118990165220333712484362874697190523687276970401389611909300584080875258696646007421479378505151839552405239817419679489709908377834041071641292040928564450810467192020770918525351083101600433197871767425744531738934225612813110574133068325565171623087298099981297047233622341123619390817773268317297651872631832368206210953479294834977168108923228085412305214880798082587970798516732079694690408249916178432035467724196358704082989856925507503500523907597328797989404739190786699587267368265837449476574549484428117216622647373475569935028528032408869706419358884026539377914645465768853278155136743203740493593690919893373422870552749779533769642663513454328702674571807274065707718786203921643992646393430830801702117826608012352068925771405530572774198158509731228529109079914639942006243851498659932268255851938238860352467852297936621276277334376409041413322747472022162152450479392765196369506022980982613009814008765312743458794061029486138279450880080976570596065593545989408734476346175428140658778886347994696639236643851670814857691915422919557465988095106064516443508887241408237032660484827462036995551431347120123166835399252604730450068634187131253557703581462525206558640901740356345018350893340755630019675247019557473245388789222767158996361615189977310317870091674359999897488660612259723877615220412462652271636427094169415245881456574637674140924980832703996549623243699770292041312850977182321238321578397455222138916302941721259092129430245222570391625298769690801209943545615281468467729890789829318475611889586587285117247571602309082023388788517894726392595990210480307593105984329919983439122674256406282520852211317269458789005498156095992512089780966227110611900389428106588262464845277174375184702733931919120767065293237940509649999126712211143445423060690336281744100575557984415464705024510257464920293562092386382628838996105861270271744741481600182432049792316668838204568186311209082775218986553980621429750674438180116768513504056938588326266615019606526981396828310759493944756164724056955086968778208531398923816072291794420696098777400088508272862546900229778446792969312609610910033220226561911484894327853884364501607301249653444620724480105226099505918161433378338242232048203459922658990284371848859173382165044014789900001333037665675923017304291326682647236117350458633634649463285218024371003745359461826892467083966149259438460304972654267472708973864885654363839225753708548441436839030375534532501822290775957175538793888685590983429452047401630495193297232800972568539774023968940354298314685982395378858073155471380743987005901880133227428642295789030570495813798785303054601937642389742902503408850570880146058828244274287104702336717692309165125321715512372193178622212928136353000855689428369278450397912542025450438481670600323967312046547395920296609964764330200534999608869009299281465838328563725540480238056466746682450588382595925533759290412888042512326945799075530126222141416861067167011017676934402273676086685905516988895172171401400892009107016166731377977097792660771592735852115194999989988489288076596451970002739750144691457830277278315842952510298898868563955810911507189479157720640629516247615129765180422711963370533850790537732301819505999264672299871278178611210949972841259351077925270432742748370060357398121931308121739893594003803922634918978688150704634190959057596454842588025888499390209526063013001598887492212923000285435428234440162058140008619736945831575031374930662399215034917994792284651075235305058264971381511800420199797290373257926160471360976276967940949398156613639954630713967787651635897278446410084106212130302180312453755925984609764141956526653733350564319299445547492168987986881047294001879605932549047319738674272628393943978901602828031745629430100239821668899932480807056787855738486664259099778109915558340165929382665331969872115382888344003270378857478377393168934183958257909662741591812156484777793412386797837905400966361651510931898131620940093594452654518530828027801095316145376850767611012259675090459771876169048234334968595882944311511489224662306492253261051843108137772290124596875765556118073177757225139401231182324080459270107744976462821520880959683862520160223783269337839573871100242935936622942287815236959019390508683605457370537032340307455362736838330794719496703360592601012269858195109636721693915799729807100786783400554734855518703771344704738193010077188503148647666054401557708635489001551166702907739297726301690996582090836329672148243683065117555066976291488249841817107563630508169293797145853295481202621527384439820803848733744471650163062540954133388766688259146635774373777206532854065949922176356937334717780579623227575075965918383234256240951242500505514672400241643694733416444774267616522331318958921895470424223262396696013621638958118745443152945236441776386013172416672748135702393129685661306378054432742763007772421948003387018089598917729898165269786963273945288035730832794372070072125392544968322059864025591187405579955740730351826928136275998263204692957205124415325932816531483162022486736133352898756187888069726066233020279485631470194414340357334438817352959670528369725630232253620005665798250730334149931264963829616310088259351972408801341396107503128804797019853595976046987223060014485784876280590636432659138658140819245120641639390357884934974833737519459473739235088017889099716520608155935961355465464099514618859521879140899423369918299377884841064284816381942745001586318143452549673159321144258522060514540461566792355116421305761759750494277918503692137376462832231758159114336621720428895427293666461602927905562943785014670777167033282623688229153587496472332130070558496990207404775603656193642668798204474009485504543912847328537618522529765392576010934805194842261995102371982191142378786359857384290995481498959222822563414908025731234680939387094753617458641122536149866644927790223034819494277457274840401060350033706902731031230051151322932423053665225390766212320684182044934671200941462956006687246682844395168901142657484668807139134922805429872060919684696449035735090277060891058281209010137569387648289255729010609702365974237105023071627899233385213783580543376138771470387562506929425257001328626654153531174361293295050844354680335411274569829093637550678729440704646320952993553586798662781535095260620108602065621949815994120086719378983321921105217677104684531176962868358153644755497794918378989601748105720939456155636753740593917420999132664768017632212341882325024265175753988943232401454784056291811960359003307362772721713452456977275408881064347226940550603200864395805535314597934319233875931700870052902291537766137204391354190006588118201389069186506316460132862217471543233185535645949936186013579401847007656107435766521922640886729756678955952172378944127292553756062287090263773208128106152841310260881507304051079482188342418876076190321667751314704317923199516403213369842448140093654132483223871753639599437499789984219315706350558267542816283704262902744972771797405691448414816016520485596543659433267290702951607837109067503358695546404682355514100446853084950443137710624523789239796744367472902021366945886909521341112293821366013764910357333049279526811080076969618171662459144935594335350999206329258456577841285025026727434407037993512605710245173299587240823709804566339863775874261540222119336749995550808067067162211613236133566003167107864135802601155108706549517118611579162189718104613883784615629545287112890672627441219528271761392735968448967680626086476748636434160508419614279072084159006636254990077498170640647311148359495288763920859523629961520234543749264398933701566729283221216725247666408477924827632766564338725981535348141802805361107450251982235485191895704527929263760773571521198703141007902662707758127992235292658683644553966719260532123449874102392611644523408305226020233430089301080212310847062328943655400357778237797753891922018077794124172739491416923449494091031761522240426875007760815960192336483642649996388138984764508152379687172650953457621821397324584157158637873757440032817280199477705796492369242748363735443795357372184055652716410175965237652836938899171779778548930328576838936607007233512649324909054125736895743933003752685874712880278948728097877969357311871035172670725568601694064828525309700935901459006034065791038326347545727104648113485905332642786897528515907128300231091592674338369547010854355063713624787366500461323143812005291933483473302191070733148745283563774535445862137604828700059688312550310333202488334388165348726211785455588680899216266565049358187466142537555144298073912191640863706871395210851350058401563755060228197919585182970850143270131713305170269529884167679233608236664340170626658371213867334617518646338402273926601332606226731021839674922090963975299316303724094464235730592235001197574233432647244413591327201916747325303738027105305116219567331870712263303276619865826947293974280825562959938946693918513901227935502332654709526739943586920327816202047853412872225728139409867355865419024748210352786019923418844771620922821628991469869737432325748330232789956417105573900556672064328105684884301692473317451305142141619845606223346670998813628962749015520837685364941575220568508072903193737429129536717052810227427468605608455595417132516016117806156991456230336122548514619054104832075785886574909100878529751916009138970132651175226944202303175256739610573482420248878472640766735653650109933087320831942469506561700660849189842921342334387309264291953917558243332581081602374566059257375838100019271609461521449105857570412836977729348516296712899113077229922197232396244965140507004252742278881438039776502226146547752339202958968918655722624830655121044631224408664865995248074364445183950798107380720006633178852142289151898580277762046975627795607850215749677144220130315163361256590984166239347885515728835420690248758047564430543312183642432051246417266392225210348942252457600419388583492974838162038164287781788050079584410955138276939454976976930505938772843389881776024578034047405242897330595581016828992866870570571293654966996903977737316865248639035655113655751203040052426630587690702311183125488518758932720891894158416274236257842761306674073113109820017915982627574676624279245097104867472483339580338740999010874244325144751937170712183773877792073126817914037077493257689754436929148927581618576905831500322393603942459089757479196071536682470608515529219019955445468068909526276319410545090658515329956503083432810869753742153055051565501539992487567636315842367510583430896967098472252405512239731342016335963174917272020849795240089455743428392259695081268569555102000693033616983328721651714294487109062186032491148799086142858739558202622442934588161565895544608159004767779074129858394979355830812893219106383622392305943931272777417703608849986694329454706221776929681037048793450402441883985693005567938609864973512937534997973976485364067419325446956549867066794025242219425064096917890448720758335265260181612988929964789362965498593673416834632516546992619300751368396916898275133713394984791317317194219795718315541567404434854710157522600522880901548073296123118253700509383420300837657791836829161121891598525041011292383771319736472054026647552187064640834022654708423375427882959298314540707782346021535556749160095257759807106424934470917347359505132891393522191867125920498039311096672848533291689002115726788267337262313530432734871393315880988284230625088999316379755667239470053377530399741468139310777576634228261210447610496278780812968047297823541528229321300454434287869859027153036666990334744239819272581509523770885187742176010566957218107687369978620250949268396902277002776835344784825439619995951310436431294917545648744012197087406161564554575783591695518355831425880425083236120126538418553150418629280059192692749700517035399031125492564140338311080413309227366894595566069431377533547058586872514500784471382016546003275604365422266584903450298789202299790203365261312665618866578434290380107607944643955240245414426506807348179379328372247420277110902333300186702877250478594368562809509434680288712085694273992086121897746112893180984586417505390337550804715824804231785645666537983132503932917201376610249658686874934524856603848184563008525364628479709131120257188014982611289686421374449739481685220641073821530294373986703285585236304406920621473852168937839091968689136570503866012862921783576133450768502565320114116723721439216760645852818313840573150396723654499257914737370021650642876599801396004828721496394706717191937262215486864578535984932681482993850401409140848824489053876086190412705772406127193573504565842422647485753982384885248412089543101536863204321578303251675147636432355780438813283066749926675745657967052437454251050155617613580620765266490759544945692489653591965055437510926973955831794222954900350504229120272220023642569750762256399363608993880632541971669028468172883102436786324631001562203405433659420856740232651437617471497716669954246985524465246969054787477969666598997383118584413102261844726909759624831004023747495670895922316395391717845790623681845533831559098465573772723680204942964907687902183205308763625948156648811781944627534562161511594831408476964791655609829998705926871574235105396841949283745501930434069369004861411166684260693200980521050047089624745470860392385525811912198190467758268712909708483615764090430108012034482204617444972140603409094312241709214962928088237095756710249511327709611452383931958089847324742001643323042843325278333746199730025914894667124717905398571129045124413782093979292012667860476353533169441470452703715629220338639414760722158663657668669354095839874523109178879122174998900573844679120139418214089297820345961361544639566637611366008121792500938161945047397218940227447815195372003578007371102644965345044984406353830363571891816406824349745697764915419483757706796637219679798131278729041867546776340315268562208076166778987518179689900634239852413578727749437729844119550414696295949445121314735865427271691141987396123123832428438933880411430972667244538334053897541322726004694908054997300303137899980719226976917925778419418115116833475342829967765824216854084341546847833576233776914919637597974054074054495654559584647609131364230321449044098634722025693517486623171677977808108412382087863011669865777990451215175004740278899480485204964543970262018175727041080135239476153472971890995648553476966229345887104622883738285902006837271151809704464659214808733221769285360878299704175861456313968408208588718783421991466917776229603244001902293081115915998637367152910475173488332104273240410402164415465786881595551061174959664262880169907684077956540046590217643592944196663986183699507285601506044990469864110851766456826140410742534305194234784798772019266551631715042706734513363338392094401493996666846043535946015431223603886196864605133309244186623362590539071009136165725527367363614801459500975377779904221589534255131286518492095712449183885381806635604780148925379627814928720873733732904634309960033278314144272687365638451348662853321312821808067103004564061090641288505809771181580321394785695786730912365916080277866406025152574610622001130848616797046769794451983351452409251796167150626489002207776113236638010686105099905387642230981166511615770682129952651211399133439725030695928407580440467289939532220758377176940662762106731534755571020598285590943809114712462686527754005892954521606156676267171777746516914258169927889256737380772021634822785630093103136992262892602663122044170080048972938058491467872897834798357326039506534655682017200686505045496519969744928392179568059645259541495754284126129376098933525873066835263572141442087735205073796730329793953651368876225879610534568400176469580137210810265090659019969317761031850078418011444815271429141458970707013127928561436954192226810162480219472578225959800744826081488816111458183754810076185624762508035066732989351598506244585482447477133507130880894533045877250518551908174407568824827284743789836154334018424883481818130898257703240943839298471021693641282766558682627004221959902666428292396949935889638224125658171541815232586445157736696323041200681546288165369316693389169982778171301729377830060910939493158106169789861841549337191712754128259072258303821016053928695567339465555062188517225034673702220492043381655786147897751593275886485457961901067469615226722577616038172777249158316875120274240003516241774297867624405271939078910177434327424009543500030789464408725766007201985064631537315509988084803920798675777213071427952914766658455845647556913244372089134657718769051858724914293618256539306916775973125073748568916610602995339493633122291396113328109326361924911891524907883075121315716746458739892159651929465639925030773286471338946270744715423488897978853995480342830653919401567057210886480501059260316775347878703712301188759852232407331495719507940842980134145877169571671679096084360760538338414927938723376767466971637950483107103349804794325432677501808116096470741352457030043611943417174166231249263465316565787399187057546050286851926194092227851380858750174108657887733738891273010405364000729497610936059854161601051621866286335471031146518202476149923253024302072255957063917437398243497882185580783926850402779122616792032486250734073995909458504245839614673051607984948013233485271151598240770451039488943073640143607953256642109801988754161089921839537517357179655633362649747440988968105904333820064778342772203232852561656216165161745491389480393440016385933333938514680238874609257224358207514897260112647357972486120522324978062152553922426552258301298749072686110554742291921750169420207882990236876097983518798731922298519604556846819149127742518322282626422272133900577561903443164625069556391245011338199745541296930307979150818403793830040023202338726662101311421472922138249379576482524502817924043230511662910826538688370130749198333690875780728464938598813066487707514075048539979744975430505604194757452387315169174695968582458300677393353881796260394801208514296434413182300709722190684078342976225902117147453442903065457721332851106822128336749887124534008888436557244497422406032986981380213584978302194333997577308871456910931155344033622120278887792748253501403615616874131193941974088700766722974989844691979568190006033944176134904450436650209104422625519819955440891674009874913466357020388577672625954203231056974057450705041997386438924041941763066994355286562178738517599336185015348560735993171968186836406711311343644372037306098189391259025108556391193449858943629260198253775996415092157437645367590779916349753544659042318264281939480605217642106215314416089948380596708469580709535430453364122723741636119006814927981178804091134234102391040379244730851696573057932613530143600974089462933048403528701190629930971976508638756313263125217439328888583071199768831789113476791223908177338582647913981560262847403626145892540066833093414631085149697168212193469526327882988873880754033161146335819854124874324722704882670287361079687444576711962390670620208135071695485693335452348547575158475598774991412532478124430081358704768795121997651354874823735558281246514233723997223829969912433690561051169797460189992237464649140693482155469050773018975337486875590497781840790362000149629615605510136148085569516943824295634051794717221109196829434244503195849278715436256894329215809952267454831403703533025314633725064454841401581440697801613241464805521922960577653843206730775159736058729040669969024982171572694783269091294994510459591144207439879775398898261630510708750637559887142046129684519188157591642010798520051342961248272124018274064992806785840177615565190053034476469032171909634293461637623658343212863806545417834247220085173869505544572524237851898295358482838907466011753091770575007645596134301162244751199578715445889060429753527661074192682765600822341870203145033063517816343719283256358649901536502283510862912038113866087786728471971211418256661218696886001133838131939486468388721074253317566226917886599528590880460721916464675751348902522739459270780134292749165996298980864340375248572507612677571442375422968904207326672013744271346767881635888744140503689303669311480187331815049651426260931928241472766771273994797781898982022941904893119861772001996509236658518760273362931054737688887301385766185743205615455938456415178391934864482841273085097857325041196683855090762162900606933046947944754274054775147864783796836335099389589661192876565129421663374413757320904507560902887229237975550251496276584661932483921122469352970571473430411891208821435858653983794511300247497399101614022281847832806996805546427488105108761478809996304757802698108662040280239316909596678555974949994126815278242633079658489136749647848520290830521716850804587146182912132442645168233582295890585295562091685475010369859031526428244996890658874883059143872688009498654444685517697496469582849667881440012469989095275613721035603999320372109264138724968024062926027286720692236672171976543181963716678130765715917680594213267853502854387953958218367318381307663924334208427383130193156242212704016546214976411151863365159717525523053305522052674429026034046902288304160395816292914037855927519876345836090639792857861982963383579453822110758779065576792639953979967027332001168810860414723947775874966999137552058648186673469667920696044137512960975825632964911033626630175368338219546849099464167751044130409626605487250297318370877829163093527968603858929910969680760863975481535385064939283075243183551509464578109009209669088398728934151682978293731147951277356332653705197474674585942931283560925509065937001849088858679489787764337076946765619775962287065288116605812584487668650500390731792550911878877978283585510941493475528714837787282112664566613402683797212844253249762984978203616128235097490721552355828628172961743015723583558995420855416627686168951561302457558316397883539880794307496902253157313507300631977371188421967039886570096957006811099579490379905167774981696185095203801643993480038172834165623506844997922316398219341140303266072142282693550965752207235428032693437082757350399035368403219869016876058094120928569998266038903580480154512348246876814569332107940207561868212086972510294702694228542633336141744776930700150150469464980828676756625528054670593098010841660868307880934106156989670176933427811343643084206059239694030454298215750495385230668397162861666665361584249291057000078683641777504810233011004955545413290701799619281246762210377250014780964106247444093660005335395693227443874486623818590907663300757449903599277808212292787962736830509990198062778436486778087810803990549288930424293526727725622837854845090938714424499738666202301790774188131798363603213207345407554353162063177171171669620119708295198774820215735425711757792754013845177247201197663047577105567808447734322816866173088300661077981593043075478841784932645799520384308324201999407742532752687993116383330489614453226708486564867814027644066328200422040868611279348673843552705699399465015589049093201361031877211849289401168991978914435962489893332363660279524975135569980454419700571408321263823053717203535055762381537263617244223531224832416575599195706989463657903175360846183991336779178207888294909050907535483968784736980922184279310077584607093533097534106133012309052076660031947649990618949224531901127259883520378117422176396480628206142401278103241365007295842979082474725370854900400041696694333662283423943121391058329074253123049120928646365330060051284891532684093227120252032308002361765965602575143578210587585337743953851752425716834245308905176712274113985912020652838808111050104062004261122419386404185310745604415250195050338247157375062958781127921592763813821498703397766843826024668575686026732902859040237024591938778930308735810928492821808150698450365065342326250704835863369990663089437362089246380907203696590733970694499791810061217066951619861710473985341532404122189606576131443433564375664479373702047172994152539831112932218992896919007788387672944134314903335468148434435574087748783730351358350180442747631269121376129970487269376486419377777105846987791752323594070516552357970974015980813528115524247937983753323353374718654074707145211248383574628234307040405502612718530823083473904871506573363651532646680184515856679689863021707038661423383472636487352277210280234651725020477001325422515072098020993153697848998450613085246919501274972762106156198704186651660042513754020804714699641047573748955139877174243452707241441225818324160849824875794471965827033476121743957728557076679283582072106148492603527541812516097414591573774965499365951965531602972775380187379211100566723856591075640021593003830450443958642628994209517149882867832533793913026442752482286894349813980338742159235811101731597047186156292040383154898263731963151349017230241520610842183224242985510490152647478638925470556743825226582709635975931108455676380823900280198780934711566956353151819681645580625002016855876322031224945163264225643851073596090971244523522657432396618558049868114050131340828272719101376409575985543578797529254039550135255225098156716996009561813184054398352036625702196532893282152972942168213804970375455085953938010142378922993649906844330144708366171610633758308651394400266069696300714026901272500545621890397263426461397912577976420302688572203142427586113557548759766608659357133579394830225397787372977850994869024035188781557478929635978943634213463875485021996026799347182210861210414759216053811639794636458781998714065232397565068903439004483525087232574044265936940012747283709406827294849240649167038418667494114923430485650652765254886894170871764977657709534720638172801799082466250323084445735152422460880291056121406216130192615527694084865262055349369671478486962902761846031012287705067912418006691486108197497534906894883936893259789398558922089409151058932741086596508064689448601237044579976690594926743161784186686276415808519268936562826934382582818417987729666787244236425746029389404100080974156799752026307474500858938256412368328585935897534875518381265464783502983248573195843202530525995127460002109322100723790249541088926276599884648647995704725279029757118318510408836857164183695589501681260173096295033551934638827925711684196035813854700085686829972838597204789786339127873576694402107339393884140762109951955322405742100007834893983371109204949600564823179306302346509384410672639811211062728660677011104641034814502996685619605939314562687156200870147621944428637451371093655276831506084293365328049687222519609377329167196588148960225916411216455851756476884967372662145391958269970671698400228780802503578621833559596206876939434958198660391669229719378338462643000308529019199646071382296106497813718515696873104152561902014728626788881858202570256643173158671487970198629092750657734851394058103553974192084205706241962911490678409732489965165609486625912177209652415707686580717037644945290784508741579980014966911720689951217462656920063617774406784112347543666880687336089414168720698775213394673092907250876351549423949678182839009826064241469451666623098568935920433603748059180707198348917049235321470425715487593362702146125055046232455633260425151224237836040058877597570972895235215121025237971700905727488228283658365652106538358978490571014933430967231826045657164486182627638594212454146503502868760946087278284889711251121611601456852472845078728399179792177581917299092871246645467513306606896688560476267810033955859247447507699458797075849903994987501952549624202141732041542540670957134913671319897767208773840944561089129207354206957574048072336270086263724070595558940367783084549606307858659055446245040332689847140186261103221834645530091189222324721818012246583764631671756765387654737523760975169130128818670008878099635762352470277383812066668982110422293959875629276302860975111999313934755997368980984199972633206952573657581073047487671905704249030403103080272033499380915672485064037429912061518598982072319519084516417881247738561480094532982362470694333800765892799002345959464828026196271705630086408436794774470302288782426724967147473410856477162464834892976868588959812887080632276122012058632847417942507440113438214183000404549878993125551734287224388671246839225159151427525843179521543077797112125794650855326891885919695371748635983181877900417666790348718644229493809579518893164893776939779075066061363879627836671840165314967099249717263788803969138826039883034394832443394055936411639859311312910071166727758503975617784031651925256169615979790312768702356210474019437589014170346560065244934769741158412205622591021780814487911059446240246823509065760298116043557976661702868434395992210740890337109464465781293109439555903838621977585307841316956040753334224230514448672555240087308732137479407453179996792019048201369436402102425864333549913824451502439547217256853972797199501997960669957704014382443898871858582533098871315590567316126264279748169744353581714479881864699149395882184968244052062943973038616187871807508366018295574705356222395233097023264507303323167202412283470350103940239756706343125528088478608265795892499346613816491534022777699518115018010462169143829033761836151765557672817367801664809483637107027538060728853987979625288094238266342359204268937708139717034560926270139722921070296267771757147109809321874484807498533764808746738980039750419343686585073155899967633615764353569512746990922852328921906720414698486430694160722602963738323244691226140836261434797997088624536548321608661293081546817010192014969454365613133994253895168749340605827601541399615340450946699349131577220000951670463927362743454152439093782836415250443219872502452189862327916772228239526803554053323795971365122755804494774793537863284745627987168472335868886063351803179335163542504362809315070618949838612335294157284270061527027374272087635390621886479488569679427022404845916699171977379796795725111340140490975756672963844275751822507070945616357170518407612048822749525569988070659116691330289552573798579036994706946932736374690043571221667365378141827488767541884541591775615626970924529546656676082104628336678321139363066221838324612566630666213207639475556403473861934258715612078853035693070678452880476330376254779402297590355957573643109459964900028393435191487278114198800347496232521254574601852628115079241352300452996733143727426503622340540070964089057813228257668880641656090403448655452779606811340392696426434200424091230095517894401784452401403671383315485011189553374231684354697528440296494783555566963265989764121360100491883401597454818622987342480719858364274877674706452878814354038220528512863112019944394453240613641398396037401151939355718140971200633357270811307329810564772827337751557382623364771807909756729821949272420218765134490256256358664972474058094704045619267987082155286748594521061345846243944799143177456419849306162035723424008682083061363033986911185421354582178908045003707110592172976718725749031706944440985896811901720403297292818015495023566903294737221815354280620752199744582552166705312632839343413878453575952416837297954051519858750326544418637973880673281281932925718897525540021473523888144495623452760679551796459003342151452891845835317025052388960787907784440376345787568734708037788442693108231518368151605822081821523335297418193010260753784754980816489087136755099317338542179598032808631944438054338034875901224643339187281153281011499362242773163575190197432814889470747166814695917140153752958358590499200519148261942235670318196121391692891607850701447180006292228121566453974837631951862614545187741058419277241875843226229506080699446663135516301408364856132860565773978327582577532750007415178528773054925564176352412137667358622760028246879825530361479078117749323959548890370870684053929331869430527330131925222762976128752713378229955341600120557179033151243726635186034424627535758129151163700086960612481597820402930255780379597575396016702764559623382851679597775705593924754581849471392110809380615130152013622025620627115486426757954132244160521472021442223887197333536721933200887202548226212507872630191954005510177653496382781137349829216618954847888496561226518647670080366144699547197182200323507290114601244049046145621020279736417603649974573051566562935429375423219848348528550910912245838336420457993356809899892316542776708298110447249339971013964845006202023532717696102696599488363368761226473781556030055989746348009849350226720122672246773052429418217678212381456328905694603994294387004488558643575200716991537139788977933303925744366533251889219608401659486701868700295756440416851160037065177993883301351337534441263088940825094034633126591868536668638653352307608993428865087720610279656842847609574758210217210471875990930010545404843176142457713241121893851623677650304886218163878179217824973965903350634185124592753187750540562095455342142138534602262147558651705509643748608740454976409128972569942373790008148820769022892355782938577594381650765931367825404271595967887155725694136590634609511479110892074388953450235940677537802352423428255885931821879054784720071595944449829558320130481648806147658858469429706382691023363580290379169429258057815252802579524741013346092817108945190253128800545993424332744699826680687963120301727329394591800639436779413255667993544793893147940899744915766426056162415353405574998791100423594410324169182192113838188096253718723957873738013810639166045248152557326084275966346574796494079215938937300132835863725172532230278362294366534885138415441254444024607358676338770682984944399587309007069361294157308016463119224590487840283393508842299144862082974941671035755596928679940859244377025412971229029447606420607055592096064941909171197512468012154816180469754101371858917953053008615586936741143419433088339394791938687021780796455366117212277657078594719175083204799821846644040051565205055730531382167429702300791028227191016805541587800338159717542140970127594693930272238638301673472792957160124528575334221250820534778345913193902869690146914432905031475662731034744934559462967965501834969861623185550934000238712408165154825364059830805006435461282584975391642424293364110115598533148753457450225453810630692575935208939013904195296571510622637332766896105572655452143894815738718508394637744474009907943416516707867670950775973074932314255193617508914232610474410931722317705303115580530040926331879922248870514272057177586257191938462203048720135301067106988395813709688880872987779126267161695247903264972048855611495247405592265038646034773609900423254242753094817762062330306593015741504579578643993959099662456175720932835748125455817558388382818958078279731363175949392673303074275951882672589306869019865312731344135821283028715969138910051509128074662900408898344037041480537149135185623346471371812524998007462828043267417443449453432029148838084706232631089529245214608578853543548392892237791166107896238230997797325862991363184043780385047239343278498058989842342921793838035857062405487288586684830103042724294802615072080613432954889308368913343341865397005178233078685588205656455589711982711566297564456085843032341029440896850521771607516983062210620681192322759761094181194441899471729090054091157542921863705803871020768800387962099962121229169437381978390491338838673735301364707953290131960317273452401591719702701001271520254763279493100996679371131167482706330227394984127427584902469975788844408793265060749635455401854757161279794171430714489476011948106703710100290614436928571102897683646398455862020675985130634341718095703628025013861532382240720637439674446107537477710061859086970188773282740876085911837567707765557823160742699693393973269424574221686488612155884806103074313590190235767363595939627088710805919951754306912283908425248371053598777344381093117211622336951643184267761103145173488896246153379931493195652841464753460100616531705381786673674840367693182738319165272595935099488877037257989760610511997517194602996458343948204250105544797475902825988586164247553687654004946891825715230149271132912828726418503749201757884859154664156589396014687590414679696018448578499396476769990216073550515909797289104309600204212396696911507024291755097164666417530770809723161439575530638958807844749977902340877484449547476304143889302516815490865633083363787930594481390580037459741392431616235299357326217351110206231917950392733484170970062217949952427791413783066479006165843914265853731183368807201825249837470217991936614991708463310152443061301516034769262933442752958516155351746259166244751453464673600466188906649655014044268847202624188560677278105725090731784906330100685383657429819550841273483386878095004294454577541367465673988283878264812898488038756962296873506784696569565306476198969092333974605493908797988040983839364308180055508540294744386034887711046350833928576417688673245010566904797737425496211511689558942137558338999271485531418005361515937660956201102497938708677472215531015365076923125779544031163843834329904838704031737335562517944164568592251915987248957861644783957854385193655477117681818481492426356368675905427950025288028161914946329145707200335632654020348802277735942507127673330259610026472891328087189506570490405620776364613618448335070668640329926421903075704930658520395553224761768258477420652990804627686664844094904774114629314087422352304176697940153474604210561408192228015055054504857795212157281981002766180649807584603985725495593803208641782058552772860090391362013022923224762670690085002516561810360293919990649833028756037157248034909599908366389633766976130538530521294683768203208380618990721092474632764577489991036652500495445821134819014595591781618714396786719673226225187831566776001850387119812029985641434209427260094613225066371477154173827164364972126720134111060362640322006923061780206471181741904272623800941707716090816115560171882359401197763825281516576146408765194130833582416338329234192392087661116481676418741487665017718197923496958257053291589873853084434425146431530221784088481263302194438446427180048524643455927036246908973054547568931240814453008302579991964470982887744369903898971473298194857892541205734982516739263707375029809124991750194550782283564876450944639657128676764644786589442109063679476738945823918353864913843842439675004060606966973757494356562122321399433608427832220306168517375096226347801529578624906964503240552048785375195163205415568406848211257614616936545836798676816808621697602638094236757065480154272600833252909995602229275131493153132536628130748256918404724403870325612754549728265776404699357812252316141942698217622771829185452152258011186452954739702775458095396366209418438387306085735202685355438513344854847647994602120190685631547834344831253348084528045580529033146594293857017127213810453872345396796365469934744557994801449506876563716042162159080250462048459131278809144818245109135700026467495610515849380998129326088514006165514395052688289836571844591159448450655670330673538915703562411710109580298872952338713209766482234997035104775008721293156802214556645312150222620776934095518293594491573206263879341643635396888536731445839560936872879406191159739317018645516985847096318685250564180645515160554327238890577911259465376188448830133105116390593697212537090828860504624818576076432676772756183246616116586958846520173317236575767829680088751721826378408200264880982010741303323456671674065723472988362275822185093565673853590944295159382938465481328181644631948709664763458698961334089127527716973593164055946975264982083475342791208027958306052326884079829568429683644545607986022377024663870703152223948271868531363522574709623028813705069427248164083840603698441269016934419968415108061397564297119996185506979317375904071111172160444482311132284468413004228162346287128960164895658840811823676398024238260573544890689319302583853185915926142312451321520881536981513582236485368527410446622019817655371615350170107803356739450072803005501557876965908297264197407050251748873452882433202505787149381633369526170865067575428999155070200196856027287523496037693557062791155531388471557889655209478579719356585369569972336953210671901583720758294620911409377566948214515403929779991497243536081315402210049943968711186096183328614991344264315589690208227624381264806645704649203279748421329658095015226750233473199099862725330475922745285186308179388347051433606625265869074552574251983144690729284461214644679468967098132218801284926742268462714316279801232438078402487321505404208193885160051699614760704539608053808770055302882048891395173818161477760095045096045014887504449509171965910982317196477842623972470737509243009574422442421769297857054743669234458873564816234799490916669116374233918975706624113378743705028257082127542369640797191944075168476196562310534279023706699174221384355700948039027844062504069770201278754065091640485933462147427422006353039498293787091647304747566853176125930862692599373943591266257916186049670944759120821662490893485703478145682299688620447306363901608423485351695889418483584794448123018478790270102640744094790734181022988324086999522112580390445016932117257198172969684444155790107242847629393980936143299293610182332072378061938030645455239744784519987563365054244605792804049115296690037959734626589304587210607098479582535717622566390602626945364556876186123449711476333131217671316362688297673222288065996949777060218648323744481681853765273306305062614601059037202049257991305965053929441504694233949860421291002332020916013496676865893440643987036191474493135852421036951230558200272293157195158547542241616565870040217348727630264200971392815569813188232300043923566397786204859551311601436170727214222205106126052442209524087797892952258386320655835369862329829023268275267896866631168752497436390819503561613743672296583909147039412296292535534278997956763110877349698418671238847175700469791400619029227780837614225115502333967330474806892395770824640931274996230205323617373033630446280268561167616203869182219986511940336708509358885102208193195820283584285256669824870707383972910124131842084808410919927174638163494131425355605959612188112396166980093024473398465698935422799848293366447163219895182569862348103627997670907545642235773682578035606916694277888020412652948925487875919601015592219270053349580157387194541402440525861371103875307829755116975862527464393855570437596354190111691899475361401541498980402512165894379041208862078157364688327065051320908480948696537575836364429919002852933815209190587096530874620205845961231437986146658913054974580046327434949192154127325294833199354968061608364490813091825747169691084642552430522935602682746656640182057465226224295566667897346998671210718475515425677130768003339195519802743167776393363381900238599138523717830310279357023083673572070640467233059701177713365024269286109199862030344811929447446212337175477862651882931619484065782849020976539968747671322675428518863783827099711952763072985633000745918870897290912822532362753675458671362546334501861001265404559036361935301696859518998010160937761910833715851127060710843060242625713978028500302844742097839550245163048781772884535139267351423466185141476819268656707764301519240868382909078195863793552356482749950191174028236015525367634287574730149357486639538466883722381924477491944058879761712557167242736109073484795734947456691107713236242780743543962544197033426315492881622629646414109198189491116904780984478074268284343877486974289246750605593609302167404074217689339761765753907919398744813023889124139705731953688245203996042790943581845714071226197528745308109571923678181508805856805550297248107515977158092713057415402414713456049685661210734227704189463080124711692913314037624653302584546728562251096955083127109217205737325246040212047719928521197260915495049463035624069870844627445396286826659441670525018974872259255496944713002922051403247829725120488962128359783164565101200119989851255415383561565870096806928827799498854677240367945262845950119556972794281958307507179153000617658744812076573918734787687754714823851116946104605333186606274557006171952376437481849837704241084500705769005113626993922536344122215856876579380037709438069548380228745752146721779187228616450569904856068069830930500338874935079504637890232924412720235910842226117856391806763761914782786844714919198621129999209260071522865658272938311381400705288502276350546832282357547858004128801865639884328036044243304684684090229277513998378567069351496395968503013400547617969640701706673155813590899079166733652023401817269556680963317799241387012659090903604944136698222223688643566181467189788953199103945996504727472493343959311106339043075009664107467489220463066190663634348231706052457398610389200811892048637414811231173007827481951449296911794816745422426310170955173092005311509490497365360720760709716504687944386587136611141231090343955392917930657513045743253691144155688853730334699502205657619509695781622469415214747752791034907702121639743063401929064891180961724253449680265692386392032983150083178410079076507116793433716265218144571316748332924777699738077135719730938779021707532616404872662698781437785404005458877786882592876984375466341862923458916732316795876090131646131619660180601921561273515446457141021648466331388576918024672952965241051453395637277035321765706292357060978450726110059238875896704795875569699044629270481235488964304267799292872085433511239262591827486883708522845015317389016069764778532841268013928593848498400275424222151901890972617221850117426012928997738424138480923357099173719283424775588063507554465447209325330611647298209982016458017456670578805120617475890095621574785184313973695765004086649505582828276664369426707952447010111175067689974590154644841575103005203608774753806575991419752508685160358820426848345976191283980786204716172304212425481748297449448241467298665115180228392660677541654435568532787682754948439939695625018536176714670314131428365874014367762244264093610028090127964849886278535076535114251386961545030999842757365087521673109679930253024941927010005135015780907795546959449209408061371777408638854644331550126231882848026974997131589600324670477160830689805550362267950696286562083533962749157410854783978407398865111993282145148911990872872426370840703980709675407477862049600253269389367822212743525926207104720028282158721827281762379128608635658336106022871183387958899967662789455948349809426866402625923383253515746168742611806177051045368687491413008272320634923437915369460123544299263809061325282060152005081251518652942108946804209193458611900507214514321418470257263322043848815019807839565537989710476624406748718667650883233963853164015385267238736322892269764742896772459428948085524361274119655814852414543843604216451373298445540008528646369386948887684019855845982288714142521980503834982799122013533095903173010053143047478158523214004447922085793965240532334371224225955779470583580246464958715293900237871614715698280080069347892207654149714730243374874699148661769990024134285441619061660719979507512957640599678763210652308955984876980202390052280268927811570876736619178015411719591123633137210996436009481436906787011392124607180884632891538693221749674201812151711447282464866752346733779323467847275529146038137608103890318239982026857377309824585067530751144019923775908725118662705804593555990668606215094126529138172438095323303684188844781364769723624370742574533676828510177042762650660862507585588191692854811205842223423433606921680479838771339326350312618072017470930269863927189945453090671533937550155732401850865657368728327371872538348385308479077874651843408924185942663871389183354839994033594571718407242733633861532148651584133044481729242849236456660862900591870017754603055900869174544873776809833529633290570426581958667132641830323892489208962585660426417497998107744897378872795015129988928994852963762676180695545119571313377800351642519531694958198535347259991461344179058194253264374385182595032488677535647528840874770732675950452087335413005000015742899794767444953959057249965096269656344974784785785280728281391190268426741170111088461792207179900850667771707797732386661002788122126471836795608712551725381187884221065608599577034067979613959300099906756430639511541448044338538347458728205652762364053780417604428688210325732770152358276470483203108535825827585087101317426146592746604583773901764772234511329100261603682932047731476812825782719211314808682710753162020074469728301511989038810404301259168202943469398550719941702309567383474468348493807122678085069305892335372410217105651417644677300564058240606860589572921098693456710963745927703935658263463812678293587701031401702785847265986718208949230844726755944150677149896026356800987138301519797921067400105146119879130032629279154405291052723825050177198913669357993499559481296698870722519511593424196248324271311007346129023628719070142480409934567169986511385842160421989013355219921270598742056356116569684972392604783090670394742280066346113239123077706702942591503088735108736108996632868091985476590021113384276524575889589434003401610290952038635620283656136932929845711342345437974982245674027498655992216125699974163850216135155768176089898239867710981926002310256072105416045278508286633645191939978879475847510853843846835850431729795874347407926812494519250561950256035023089949194065645211768099956633115812835898718472488531711849131664667922405274410238562163620517149234050534079645967046355385622460588019220391637543492413916410285135486352358505748495689397138837416275828884758433685947219822920015015538034240450673614804054527487613742287255415161178370838054307661337988838923280019919672194090490629678170573638748882651188783588930912538083576057576900709128489279484819001471237843887593271860529399464775460828003718566818912832238774835499313070373002003529795433718263762174409836220891723505092994828642140407244180084230011309891929686345689275448517738324664918308474865409953607560830169451812250474099297654061964207331490577059034592107548413118555485941066949584819589881035624605899408848769862374224700181212512298835733440742753290154349669635693921626118997119342854724729815058380432435805805767662735901992876981207799545871070988717919202933483452981660736126366327284117105211626304164158846756437741364117506873562889501950691349680994581571670349045122209153251344219445563727980110480303385054276669331769743755276867143633319059601826160166440465245864920006429301110537222231160538705022637754198916678953117987507911020835062511471113799682861338380789110874414534040932522345682267906845519865800183660700314213137319403016279107237071533288755417172377375681964698891256865679750119644248773364947554009815974501567694725111621304292469935942276333106836775110231883722538566896800083429818240014644044493990426411934759410743347648979886688978392081529543041061637700316524986123524009897870021029410752551810182455442868830127132591042029077661266252165724746189928765010792052411124387971240842256507565685250285523478493232994129289284364961073856376335959794905389391182156773117554369788375397199548874922450830291442274984159091141756504099774755682598467198212650509250163208756009196861632183914575231572365345488315773514647907419652761298695220651035023240537315693313655908435196978031671360448335516601185938428861391715061359606013554262518895760998110152846836777016047113385204065566368885493962502578703097114751912754964181709246266095342963136483149190220115470290089775033563759575367608161113350554212428367097993930526658743412739668952043235590373190450739613671251627041184866794787639912767480721521094139253295547903788830706583158542660535312519560528196645574942212293101441167693076091357987362026304174527206961407267985298670590372082237082820610237607277552591089654452938698852029988828128625310981992771799262580391354080756289906650055422346910530433729854104332756880847127527155552562691532407698825963738575657802668852545407067351648945364032360247084334449399139572495984448712255163984340928306701007335756460048452222830515349629721982014866496484132824353143694226931165814738396286522841947594289148894849691663823353799376420289505412831802024291238715553767062164222533154439409220197208661024430366755607046556422240167665512491642615012299284675137528776991806851619097505783132670555055944711015034731869593407753990891017539258672030533705252849478727557938748335923890526544763997789894008851025447412572787066110712662846005888569141049468288784049461237849028037683947721825849059130667533486605680989940299462588837389131270017182556600840804276700698890045466984078221283927865831302306608290384926043605163464305318116604295060768895176014711133249856428013567664815008319457192480257294936038914851545816511142581774483779785175856526048375705648344943204808065851468649923588111635003734077283251963809834534003003169669956465262109495323309702549742520534609398841089018763676821794989339139456620534626051081613278980150634402437485069871629444042687212356634808954481043011181659699032494495325692367999175902102110674801976238816075693207133422998775075980822296698743034792646775162470121578709143340880273978585699993958829994435655518964853235907576960274072523845351251358349412311210502862618266095642658711918486433113952644889405045598836747581172648635424227180114270849807407585931389802570536892981726952546511708054105795024930996539040075692101808987319874474578806898525520180440973648638926571988428322552942250937077545740630945209119468237766358140910885130213018636641711505468906491846105060626896476559884719548998348378524891480142714849675496910524434440273163509051885374722854250509434900077426981971018413334447137356825912633581096549078101471217163816340030073527152959502313310190900079392981318750102461162746287229720680974538136836689611092135374856515528444825200479169425600305053174611650980630205698448413825171227037928346343679309127483592856826259264666756040978251797290169285961897741193180735756171187023318730869752690091080936421759712322250380709485041512036404356258898334179188747517140516011344994356031087503504960181979285264877752566884403713013108095141153867791234495259674336041085262746479966320676576732445973244199359396660891518124849805869009231179270535207079799894473481710333093110769432782525628931196197270551770904750468083653154709877510663682477568613393994702581489422668509670048995869631773231918153642122933397365019560113909664761896651718672307847857966376311177705027814251890622984474273041433162047859091550181285449121092712898748434324163581706714267258782372154578687703873582777136189215433647300780098903968254477878949773150766767976556230343660972704232330095731882369065404642508894916300200682904229281101073990799741115265935360225745067007715597982827409880746539461823645687214665741071171702217810987275971568327222538217812346003577983279436406234931442169795442477306087840696281673884944039678042054856059097830110624264565394599972497412042428643944659652861645221338880071339561122013733599330278530478499350985360621355188047300969060127482846520856487245854384249784405541988718236284857083153842742245299696850853151667465014700808547093041802523561966388588856263895685588996134183787354808563049374872375458033455888536359890253199738672304684333770929843755936566555573794706963969304244803253389267575431288084695083897171259764087577377724798916128317059293732230486505271064564118582079833551895990972350312885500563133685715443206034185067408639891735685494272516715884355276683315574572482436143935860374103334288591264756027100805798607113684619248327625059111361879078254306563155849610527939118764110966097666006165670518983507087521535494821641984923987704162887056363921198451476962099272848006730310818529711269499368980656619418836069457597587883885515962607831843103349461715703909051252378416845483281077139631979143533513291462363295755723140064565888234911240675381607979251837794415724787982021034898513599930245505903892652781705931452090548621133647694358770268384465396414520188651134582153090566691937933913542698591928572178388210199751768432105982789903331987302075591088700701968965224940221779367177797893066568449964778426616238878656898418945837051465691304317908433515665997102420038932453299835111230803300669874347432383734839311360749307175844477821109908146309307001168185737163425810535886719352284364424760703607711862479916500422415841760656284843065384062082433101074666406663429558236078719595089354681755649315984676539221326512968027120142360835038806616626360250659712338224277894635147778085148413396664993281136242917791126426507486837470472791801821748191188780403191093785643187316988719377292849428788410368135164855565113616638883034947922619692215621281175596669048925595226495791015596602738283485792287851337267505238732962066698717695778633369956867630441406025909334124230754651652948797648186263915620302107282356973042426859086593686276998474832778347783972309258362270909521139045310304752341268386915205327005641239811178730740161297012938045963982855390887080457055503556946251139157104488734195744278967153006964032136340673703429439188716426493015452213330548366146861831569852733340248334206015955262354550312663058500351178870672019702712147908011522503454332168690683664931746596723700064341643495720338422683329599721044187435496473315470249822366246802852223840002252006508888146853692989110329618420119371110694741576623431158182678218484044813331050610380098576595678574434170946698482644879134041401633533160888327894877401255161317901624823750120679870738462880175930199637285281524007418236439820334058611058928301915698522057879888452514894019477872078419972762505702440043307637098562726566202739322078130981185129036619418005453581385408390305245465847660408838594641159914829702696778467358430080804627988183748221624296140143512350774072985082890575054621675601219330251125958203357615532909529895943717830216431206172350764464242041253556547804489994814830198127267689490116415846584931328806519034192334346375586199463815631281499540142128548095807468477300313887009406208638620144305645462189127681638414149768826421587094111260312785634466411449995687289556115909476957493927254774297559224634196799382757719410223717120227917401303102121963828013530007960430087822822392748378530206016639296820185446258409223931236857898126213927646854680474720942787891394777751121062876134165878369086260046618371277273739775377656431920640706623342676740972833977791912901339987451896971127771622988142228412818854678430543287316142910790940619007870580060627897186622659892649542544225690963900232090386632105057128031702677714515522222558468841619986459740412102838202720683574380257480803764481513831860217580034617351995786124577389468636740113951437688022971372342768085039454016869692633674906061143635696921758785236930385975788416512905306914245062412137828255089577271623765312817575913206476577286537688307278390669066342453840089371972820816435714841713116340537972467188848882756960172959540988868542464618918286710731811886113360293102494735968631115936136722932029375972225704719829344754573947080413557835061455194524085538339929213122768749136630008196661224259570350554929043551906362319706849532566221868522949785922801875436382845791085955191931708918359501562961219846175115398030452077904087665992945479966275321275906526247959158798811730039119607434535362629166918837498010451152067597622182192940024752027318059502758632748844930964783886117233296930293984332566445241110701863246429678075205523646142606029217509988152677975737177697536497473673579598258838928158249304142658265956447182323845524156957394432642702617677411475187748626576621884570549895963313261790949679126429328469367193563291512337578432985824810969083508334448996442522701018874412135966962509521414612857983185569330320982555203828817596534890094940999525724734611391386712885701104363985785520328586320036648903873667935209339488801715019488529887990739893584870267944648735361063061631720200307053400175908484027418391798666306530861881562543970052775779019555808401809764099619430012774215966947267988976714699273424201479547947615847472255613057276382835102027520266024197893057973504364984325381046365065140112084345273248161935343707556218052643464493406778205735546391995307888504980406533356232542787864019860144296614207794993892616533647351171628151218783368462073079473509215646419235358206184786528552873251876378059661563344428029490093781052056813968869781024394226021265746528664935633198452111138532810499898024771365125893410995180405265704100061511457592991492142669020509080265904057819383094717780965308960616844397747112353097600776444925772741096410321349141806622791308103807907621243140296403178689209586767642023748599573097586404035678516199353805360361653789343377377237736587717116879174841220176459694292563447333111238702439003467603714813229910925627540788433701548682616072906113956125199823322695799927683411424314902191772573464307248312099629829034104538447318187400398743774991358627968070884863262882127924992065194350260052560423633735160837158954682690340851764923243492218707728505493438506515734704325153161694919201407059996613188490526364233254805596982165339153761645953271657800737901240348823544948446580829648841988196995636362142559738850649830969496307516768434443410911411889576455773239891490001606127752150182049422664659982565623980804696818738694514750036124121663119551653222521716763266019640439414346921722190863926119274310598181959510407876792669864034118313860295777203720790710417124214854204996929250498450953497456377035043306624844352306106298448193179584359420573506340360260419970299189013291211740571403555899770453957645326453707664498829361588126468016909774684850107074624845613842267694164961228411618632915848232553823520703139585310997477180297399984605433758564922330704531090062383773886045311554171704108951991622621923415411139273514788641265534405660264003799318815822133247648221340214043063604318881264854925220234607607862079805510119719947531548834149856971588234693507108158022116805035314162311257623635381709083344079738008684629909375624789871688695747723701655609564276700394799666902695198800764593896544562199021648271034047330158206407376584732980867085707468764304244171752570252962730712631046410169585557357289956105110213292924955276501764915176711616876288137459310074740279231562174562633868986631102980006144737100441732632753758930535093649781239062855319414903246903580067306559101023444408622225034076400754965289173423943809745183873648708544551834641728457730784468219961534808021606967349770153971737691728091108724265764015738893797352988928402510663657098181547881927024417288570122983863146071176487778113268644202708940936349114818804333398972575922607629930330832837142027645934984572941798082156139056096745789765552272431608135782286049857922574355210126025243967918450068348251215220400468244950333794353824314107875648730309585283569839740136753614302258263898339422397203671489698621703029542636871344548430639021636387694388930631946705878657894141334220468073718120827119742548077535236772481570499693455828919219913380372671480084781651501317274052424792053029990670605450310368568064630695257200425624857330523131058929557896259863252281737883838999830677165950585914161564561470126113435531122976178757033573408215727058112624537026847666058669703480583503377674748088031240851294182428374471328873385534419964980795695821176304376539410309188344491404394826195990424693851618592778999112475060029170201112997768573074005919870138803441980877657765262556048362562467110203614536067678745237757070590522609188362665143941007951038398325738034689590643047292072824461057473961962416558292361768063874096929073475723075083626284204135962532877268408495047887777939564074387931110679077134044412713130567364272244731089929715311624055547877824141491270236823583420279832751419309984158413075211833697910477346266925298704245624634563630464614941031245251092082129156091443085152284703579153567011743479905386410290374752263244984334857801199558494558706264368419022829355884824888101884606003184388361828453925767082344183598384550694952949885261584974137573486322547674132146600138446531653401701379107801744206636235941637043990685886575791442327621022257486066103529064539536319469963603318903465072270001719944517679511786111791912724446610420167786227933171027746810373222283737033973324051875965415280738055235356323342560367009580266580689988601544195049735274100880007429414764065519062299458692777540148131686853170425388593915804005912264818892645872930895867248080151070986731044217968351773146537494075245122196366881169749070888032949812913239413456041152514341210342979333324331712877068767742012727965936594902839515902119288743734040352261403830431552367856307877496415854925788324761586001366844781767696461377360646734326250267922187950619622210513363974266446254773125338232566968295766792773101624589204247541341115873272819787254564879057485879935783942440709072157767895168838859059739374636502785556327136117927171225029308273962577643985620407660640206814284632670513521207359343799014469227304300155475180795212617935172335170984920372416401602998535683702556967766565522887433817525499216650525640376339213873036598825547470747749691984381516897784255704019730782296171178619242574642747657623659033310649611109346123072318700359825501540156692428158143875487037449886797298677131775982497646945614545447995335260149260999138446967387322611635956398811753603824957506938021150131116113627778230622902246978034458018052619728370943053856384902825786690415975999253384656969577007478113007097443056727529020502336142229212600194927819691905884552941818699736236828308112436444557458973870332954525762934407561817250268460813212189810654289313723229161340900203255134435162611623194220952328195651772950541242387188820961696416013528816385617642684707743597175324450765107105629694123918497072494913795047265929543613727325632050467984263778783398775813922586829615824149995536749268977150386996203302829255490811561005933487052926520097158262563531729232679206313478572478660657151209114624158053108854219455881135284837017436809617905956881811794409383646029196432914033081487764990617669288993176983626625590626038159627097608400490230937809278177255789154945325006919549638855713715271126252376701210425841388718129874686511938051601519995028927157972380456324043673106844033306081424533881510943141696781900204717020847703905017428355615889818716592984393363314561430664645784554147847646264171268612393632211469553719046428724543019387298529866898756180411305573170859363730291993841331080342739588002560451238952175011778119051078542020527140035986855700548257639970295707334963838153210360705771564353411815832386346461754148488924067586939328385804302499234678929689143854711680754720761301539243472323027437257771030885916648900570868649471628837072757748504141550424207011546996824608936907447784108511193278491468421509441653240543405271830714677041553606009903840287779099748108838870925935601873929954374007548667954345315855207718785377375831731270530558629195122888518236329251936475007971920940859262427308375366255929139934592364245276712225373640034001973148114710831270113172872408078810581090851381408302016511007590521068870663315458332106009114615327327838801925510437169974008429271309775972133050503554667793371807112243336955271948760413242539341616141620493356833248762164744956066360189407666341421192029313132188016923193454471637143060957770495727640900536488467835829296372224847687860365117932065797894503507003774482821797195088026952619658647224670518785012083095566373661350150722134784988237229428296225117725318116952793824410425640434875778046363719289149057375053416075627202707016454429062966718898407095770151394033599658772831989364844332183002374682145041074865929279375221465974812565522385654345587173334396751025011546834626218417944434994407026336503813511840188329502452872037810839500039304527541462018104726178923340104402590588880381650865771883169536748509402688592861692266337501897800863770662812507087841916295889773863229018758762511822975798774844650040335774963706093106181681114685679582585890481829058863854257381602522421505343473426077020267255516088192367282661201840174630940350710691369272037237920433508744171318937475745357756753836281496397485335839025591722971516993155400577829051999780340129403833371712014783725133027400551283922513748228796919119675431038061066319837520159519429264696043640329837734263655059704950567887721669497746713367415532206395605613374134322444546922853343902928740160755215888731787387543168316110631341822984961895995393174276568072258973483411659800722238148175191694872370171587524055817236119751773507174244819326685308501823972330536946441715662875020923586675504723238485216273974274238919814307454822419029469738953757208449517428888531262095941244022916663620709824331815306853021668808057422301985992735653587116139048327043223687395794815325368943337965764571362525356384247072098790212146363896817182866679831033564093808275761790255395725083462482873477198046651833683209128770475095553585687793056012015127832308871991325574857078732733432301066042586554775027433104832670525307478334091933991983844118060394419906270180176301294547574589288431262606871022561252918352544193635614173667468661582506226348636952344451847458882024953231864393769076885605584796205020584810072826215369331279126471037162322277562198269323237710015392325257840904862079543851356701074479617493347952204115100498820724409873927266496355971097265469815960063871748781034785853843618194706108408554842969329160864858082387383628957393192379443586859635607306697671757046465663816661883972170638800887244685854168453355615606717926288533066789343292911644789421071371851571425560967553107891334308135891550262606264897675844080324033084465652195871203897519259699586937940694445204213663069969374022352140802363900638200277382945755358719478490553398693241711320915121371417422723947935334411191580634003832412549389984475353330282476871099245099948916413969402569931125314562861381481191596720430705075939093841702776838729190545850807455971690222026575612505152057961757579896839812274282827590044637030068776405210285129327387660770319690316788197299955032272367997044264137498507428153284477366707769060204252767299074220396985239264011206648464427340190720314300442539767503714372747097705274845418554136481317572340777726977834343942088583022102609264272802735879762327152690536680665814459933700716834107049269603147684967060244305700779889683372277213769247728456692303228440345341484754577863457253470579890457761120938857942857185542218533707549439950916113246166637388701159281765919897234537951304220135538048998595183047891141934783879439658253281629542091057599867475058908749021491356533256000826793311632843744320819546780901737763289934105857105685238139923018314690326474553264814118874095812547131940397279125014212898022180382391448108295571558569260087870755267437615131625225707661734989750673313974346544351362597425429812289996881537318638299061141946214890937523213050872131891804140180058320178663535074784888254570036420626278295188076015591382388647961618341400798771444949558395308221530766624066686748659150727586597853170073443374148544987826945626029970315489001847148841720199735070566092457690601398748529328034279557640326599060634596658890170652309569060097860224912570063275173528434540167403732614998369334730007129477761349199893789233876611334496802944778658981717749521466091664487909238768043681177135437043306547566039924932744802836569746569996934934335860928117816725889928556396832415752361243208919932848845968200881128163412189026419124241554581630802953729369692118527169891863253424706348313398323384037621349697706620191816088732019629882893076048381349525129314214676738184993227400789458391431262329023357953167153985267435834085205922682224861416124981583753582716165997841288459919087231552349369234597096986628320135569104777508514711199255577097389675195906822472292956900297839656500869434333750768783835538618795248769005369189438197170661574482098506466461184126681236915856759745629615205179754424304788764043709851178188219148410014384297912417416541632441070973005051283296257185412799750412996538435559703303799343686499719503177838707432281374961871320808330271206697693838851707383367657203182628433847377496663108801426669832423544453418142178204409952621299239035761047701924160409217548303200923200458056976074616359626099903246867410406034804111207653995511317630140283507688776765912889958638170099159370769276887359010446658336740578008129863908442515103128728783775988615911887962722299405534810429611719788428312960403116214896856336893554351241481897885167554195851030509520926253252332270584487430285007097475251495188559076173371858502899677350429449135337839131346676944778702230354057446549030425862341599631673567723538674431463082550002940242997306824032182256277797560822474723812943254349897826606446858692036522084631923594740810096775894342629402090900356460409158589589231593728196743585978670900567646814189719896537569113665775384376776400057117548749343334484289724754972863283573714447503804309706392162502576967668439419213368248796052991438480710113137347596879730640169291501464089018794111905548831117545073667161726592651257933954682310561867385136205628749071085963434676576679727506495665170219975748313358913294343214289550071274385723036985872635127973194214747397426252232245599312892261694216449444461671059551528683285607714810755702122189925722579926478427226148372923839119007969162340635182457026557161942878104297497736720951911428842563305047109120181422407811911487080809907179766703716404018689341267091402144129851803338402687415115766182999170386865023717800709077123646087674713209001662882161416612494505894275988910422315180913137166640429705263096279103501183972150899046751427689504890658323449997490413175489051895605984409932188964686909015638040520273879543665087244519312905674722028720016914845256734207860934435183508346466439379976745343069610913609714645229873720033954327727566556634903527814035506057028147347689522828810037569583430185639331266398542481522672760405230854068803598560436650638444244208687058439048590444488172690397210680250806945416299822808746956411768865113492409979359977718123127102601720188525159852057366854582396653420312166942075598169948983424402870791077930260756657266209063966055635405075250355275403083855395512422207068575625030758152210519733809058533403843575884802422896733332192617673126364125497724758083473096997879838190646870053314372905394870622559172383045638600402026945657638646102762383648617844185693026996423039472230420245716447028223350609506435771179093678400162119654596765642190154648876520227199321309269431309428262349301082426707834048362332998454667131772303682640257851747279782340310547320318038882472945251799363646067260217161802643635394124817864980432450545374764029978636005412365530588136756721460842162280817067925109651199852036463757672221606355458169416221978474147197213409503962652183689819648004553792317186027243408977704080687027856108985206624730391055378459692980881275617435928533504902101991496265576358805448195732499922330498211381318699729924570669584626610071142853722843150553066763827272669106981454418591069861141497653117661658434665900969635929416131922649090422071246322618288514000065829988195963648425503412542772158005417195491289511603408659816627194382598932056814032572552022845117626919090627156095118271153877653910714537397067960459311969616171210864217405381961044094582576088359690898530749334393202521007845267719561967879500681710398906748896666501850923005952534398116733360771654227501479753556756748391597011006165794187426078934035793310883073758193506527137396232198441468324741763341044288907268264580540758919102555514318132881224211287646385443136617157065392180398659000488221565787897585030609276854085744263539898053268165497022357605486250621568935065287412266845625689529363430346617949072343469578018333768564614695149012816956882760800870230925848819874719709029463902110904224731566990532151199692297186825651347521970552994554331400247521841548394634071347115513571644274385673644289018807026346002123313650039176034348742931395094919259396618261614742102688425404263823994754992559911131805345805921406880501325454210639886930082829715571622288864280007685994594550782021121461233765491776492059616038190190376525034041263080241896631982603120681518250571779097731189554030473516626795069949226136873967295175914715863812951460284530399302522013437839164096182091962972668397696890044190981244519142503398068528540719315152692223000189706758870923229407178546672635273380713282803304392948927095541248370530378267179520695236983431275679918617078684589989568464762493295059352924723035746030679596161767020624020473846399443077962133274645524626832139678593519414728450756197560609197963560697266259236986813872006466674869492387603096030176954544177277107422537762741444456630088779884482761389086181723011091212979131185631860746389130393092872348411015328833983812339235327944400592079334549720891215565114235947987741638477502702209527471816045115913069320205605102454365490670491888381201114452002958336581963713339026418821453955704055572424682212263520126705557710071053074926723453339020126352065722040982044181977809729440032090629786322141343072751261474920583823136320713658116068607231751472517222621813057913756467122254424206542160244923788761522195557678554225414186484823801970899749422312609120949049923783191682797022700406693032864519343652199255951166753850728832761627339462177646299645604616735306154520191851430954819230494691635219965551229163545271677565284045266284496439255140473082358664360175863122104921888529251280114577274587171056963514045912897928421062397425418419058982504776363943971798930783107470256868957354828837324324494559968996284741915812059458017464131405212628565033510743397971898537962848650665977197158489935954674868347954436151409970346237674335587296198195982870465766048822021435479009046832145043616715180347709035255066616022642746240782530197831745138253318779155355260096429793891163739642982184691297311765302407036792014881516954016134071611671625250155647575541197580979413327307666803375480671289646648545371415855553329309499735511058680869140448037557236125083039377834805565131614878555700662259130288263954354243514608769550653603785310783253813705021436176835689820119851994907153919431554730709893726651244165835393343201719491668678674934662762104033212749921607398691989242550949663753136658111983454627299399023069620876095666097791678161758317405431602942053863783193829173018756622382082805603462651510986035993449274199055597858623283602435035435810988191302188122588816700840475315780585830680715512204567277510952427350982802549338206000812247854473748292139331522019975755252014381630403488107893214343976231788092232191415689188175509248316839636243472017909368865745379583918347992060923159829448709670487064429402241963332022492939543188169954632142421103477118428368111800038295974741755170288582556398280615138235612794186026850940052304791310171093832148782766157334209083032490599181691879360585575724788828830087051004191170631893618220657578957992328719969617815814245266761749977140057074949141480562162854101034868988491948466905421637408678369463311896455097005246839198919740715596236055923247211599706325393138193110555867901868012096049463165697575088097099592126568336583095800652612623116519552258377759029546258654103995203276487295574301876141479245691180979897817752718504265562429754453903867675698696941388234579294346747029242370143222438827327267211136018960181225995215416150718698997515408921656685184581765173379335170771186656260013598340422433166504561626920157218039145355035680068880256503937882132573409852982706790526237902901160256968230091687576825131800779306795765839746672826292747652586026601949469703941365047861557443227766736121455266224228218765398272474395991886548747164753672583205986823644464218914696242183158221019948047464582005923649359392914304594448352930410193875787253745858453096426844085059497064465439068747896198439467248134735518329066215462785308090882962397946018932157643926092555897901286043440456544589875214826210298195366850112350662503830642113846530121917108843592210407898456402368312013745268587027163384730069954446410293274404703318713262883385660061262978970770430396565991814938381609843375642024041115921182217075929793837582221046238359784659345580216548296344363046266517959124501357956218213999418249657895068928407483338896572119404804693748501926178064827172583521899200719591586939810995994265525498800661748794098194070483615845480080108432462182898239414487525613108647311293649281586547796128184431081875147525339846278134291610303064178810675082397572634231020244295092094033352573090346503881632559659793712930358973159715568693369020412655832354622221247029034020898019117809938778119652006163232146403616216612302926270371478736760095686280398630486704213564797952227103880941207837361823271783920257996043628738141481329728139613330203243304481922508558019135867172294760826204108373340237433143930568322964410414583830170437066102420742253460066259264779362610717736432182814070401620502554778506411108906674032042922173885830418431280113128337622851888684992326269090139603237655679139750782145213650277979614052206211592197428829291454090399194453815124668257279551911603605320687631383014099102374509732556084602409905792035635423718477361760645255081211327196314136018562899359405617806368692782826446008121625428454497408083478993276240487730223786404117578181116562950208799248404196399202326078392039541680116059835651279196679214334717183928247243926158769023468936562736731969734578708728802309566879363340583604393383751424751442216091662637180647690095827336792663609695769990733796461129719409963336691176521884972048465918481593424133604602959369858653792139883999854643563513469277182156070308459243432617855085840869668208177829884750106228565512516800406843490710867222581837283892268589320249469338754968959501408402665585863321475613150463456027029512432021629940564371885022680443147288741156462667078307389476699394696420439652169408534430933000696913525142245962694982147924376124395665834194194970216732554811795057331987257601432938692374558551423130843478280067191778830525980791963209430808956687351778344686930219457971146545902277585398459168050769548533112606377277165357818067483046023210648211208961244581861733444258520388239426656020364709749198107761026696227982142988497036642292163996068744516213671220677275991085192120060011337536597174214391894893352572855650901893148877388996255944557928655438177160575009601395784770246419662879956432507514716946665581183253312325083377398438795389303914142789571947304609312382291704883629211335560457215988584147727113950221467429404205073434280135743667081130407072376211630980719037212812582676959345067737934222866607115714969213177445012342325166695884293439605673711472895157936445067624656998700314432767976518373958602808738159400830208165670774602945256052470824668358967558122822259267081520590052095432101487523291294798205976288447959417706629287201984442102683878620841492573724552883551976647526288612186551343714072026192188128774762187292224881787765637100452187723085221857628143120787109415548685316709553845613327112216666444057978392224911985964887985092875880652032277087368782316296386034500450118674841912578085600209427662432369337556432897465360209054895744159621467597759341113635993838197201423412386720947942927257549580911092413052603809623288540455893038862495732109866264320623545762233686060913165530970850433990801589815850685338332262848074181615805384499783970153168037726453505314545085681200013800772264404818894460447792766536605079808393808998682783678814515029638379402407225723717701840458403094579007129544572850398517031337392922284264479792497703680887058308736420019850108341676269505273242047401608902486305689213060124090963767730530857673567734418819641378995012863967311987502436511897911272379013774107718708122974746750138340005723753711863725592730708670415763587592829856540148774183274391037855078366096095729346059664318680147670634227602014954037481881983607653869209405653234772173784828016274177567227624299964389904992642283360494858151749464707296932616655395030885275549837906126029615609038197497028528993110904812710041396185204024607324600408817633813915645481940600726133620213276361801306045621519657337358466450441123091662150708188280939580406601866090421568380658394215704880927964055350600366075427861795451041024119149868297126740960139691330579985506779857517739117948989973109380129121612018655090559492545316024512250851815968280552253543735824247492586370647342719119276641623503757864265345991593258918092285651249887487831461815273623119679775766516669159450249235477023780923553622402394406672436696586258663031233063442760748995639537436514569760642188254152055666240015765884110031075089974379262812380152458984550253088118049854077352023006467674571998270585773517912716423155068559488764823199555786100711592046297301966346870000094995333542111970234141546587329819663444814249334808812600319196797649245511412108529637699974428913512963591995301227398206626200221167273774715697139839580050996287643682455844120419377848543678045327230161541609069245820542823215729585428173056579498805839493383205365952056851758473007409565058694435129767561184789641554122938214048685109809742753325220625121162214494455867418242654827128638970922342225917310079200891701157952625726412973559670803205485367647733519874129133148704911865084930676057651168641059478260235502498765820649871954931740857778707503361285341456027484824056095014361904302538168243114625964366991619145613295578447120917607981967145052000196712988466501234044936439722997794149039577331192390617245875802130798257344837717964725283314114288335030473565293702102684340882147924046088365777988196682218922409046211547197753923964638119945547892394797015417447977512478251624497221147879104281766721898289097019725205065280616065557640638086189657306553498082582526584161880445803996774763812123344914679516194804791224073626254495635256272490130087931199797485903936535089240885034339199872178278279909706365435554515894675921709147907721690350184205960035827663451668321758349809952162576804045265037495499023379394127547673650228314876249807844825460384402404832470028365831030177987684603796941053416230240154781722260365343865130755988150381759267456094763256242797210737037245406422939014946324195818978010054399062002422974518523848787981629603138313244497316114041285414423542598369504903899488579616181671749544602722082477896148047184307266270710116110082248529720172715852469606186885795227549599658975087191046632475917512804407959262061909489908958180473297310011201193310277621804196907953828985234561175776620877816034913918040052695261438423159203787692724557458381294354250007012506308405963265105480694385229604359987221491951944989568437214190283034792897677900350348918298803898799473753513574780241036635605888465636873646339711987215245609584089106318200719873650039491396917707238505790156912332235598804798287589502295857477377154508585629492294687831796029848625554455882550124409032463053558482977280789469978472970699630923858516966652130853726336371611357214817898664818418342604286165279893721655166855057563434327157291303368674722554576782471792301908386389783864372777764102522101471535528931261931868997063987073995944374929653669749016473961860762027080598411702412748133240770190984070696224884471398928317382845640821458142136057968979272740276345093404182272428982572784097071318933964898291882138503154169725680790858745578553624050391811250380899079183111605665371267131099596822673033318506922803603206601204915917234557803071558027562011202807842862246453273656952483768308921825784532760973958179306835865900659667016331886524559663978756924070373494480520690298999507741064419626476389656407761439514086326684255335649969668940555163516807309462843652245750594082763430096953843285568654754768335167295395194014424721836797431667007717963899548432053254891690056897281569006636282621942902442622538259355935721355199667986374059974125386748973767680550712551517133330217958344750308140820971109607784366500699799231762446787923815765600314866864810974059842120936768055236046601102032711630191298305671561854393290166951496834302585780630591862711388419892684523807274272048519374754696083933778360989513406421051328542169179561597319263044147129801469249272714515672233098443286509019844974866426999037971466214903014738116510658183503595906169106691647982568371975746200210122764477352867946512586458546246189713554955204525928870965820647533879739503386395324333626074818617535923441759925035662131203490099997538337672361677159515781571623398198666435364843072088832469704974459666700801442851065440043920048476426102323290806761409145859720596684566833303533610174973761755032797754557349180144150391367108175523065795711547117983932925870614303943373759562179414692755895800862840175914485550625765281497609076688978578257473402327061280774442406288875302060378684351861100114942161507908645361916305288996289726676695638491774461166178459736468315880137647465874868793574311978319996592283353168887935802623076738910271318276881850450214903242907175263553499403676823798963277450502307904864859703649204869519807316162689418676235971992921409225717219551484920176559036172342213164836273240156660868685382459180018134934378606637466212613921330096497286174835567846278940065574211798599499284855710834858145919875617110464108425412880757060813953290972675966581422367562506483007897127454323858402842394110770807373066619762262812545628664718052195708471359932832720433472903104222745815912884187135470163474350574423926027805735542324839566641250688403632518363958358495840413353361063267472655675153634517818668350041287077624528114861889795051008465390964823824974733258191611589099031329511100002956882723926289001085598011839411437679855889365350581718100739693053721972361541499056207576839240692601717377425858709499660391318447698852791851149529427064952412399611737733349135111984119395722060506395853746103852553285371388480032596994231948853515845923044876425252780800823807225033465640635500439889992619293347446478604558235522926302794483234035738825400587055771958196220593913436961236823707110114942190661840286502196641290494550617456646896330167057569708029014083637214325430229055151071988219214652329005034683751925527451771471286731428652030367892077836815188116012122126816019735858294577180045028769501448537901272799740338384616069665432488409019783244861718065087475407881668465802214472800853012157835358977850373874581995178559651140855996109622908675509769039337559625927883063868421251674302168612302182660517913292063523961021085069330694456397738915524054896616283573722999006633531005268571759531634481365181703820847798520751210885338405075843979331413917801743695456476808069078891252607380354446577333503801778841226292152486908931853552704456545732439370107715409625366880696580212958425420808372170605393079857984052018344824797386736731033829133420566810583691905617932479076006723807515688057800883789516073788760952653020232432950877787156344768298785340486141796106924856212639013047652083547067721790302112743998728607028382286296411329840853603439215504627229918673702643980469071853353963625114619857898757088992083487999761148313761159014045479835346737094240864133548013626185723354950320037584513397835008843955931121960697739283404247654542119699445329768648973439602328307237963763142290505788408761406389573851418411405467813876883616675319653190819089216039554317053549231264716833357459752676764976136712767948188201192050217328929527153928021285460752026287041071792640102335970785774202757955347667868317871743360337055445005194594282263886470752280191905411730226693964941986086052544547306692949534318713240757597479810220903532600735386700840886633582645388578473682342064350561834315927261400537582445400870741611312324908130947685027800715569531104164165573064482569965381615420639593405363425848011479026828239822054540169724716856113616555242858773304430487450650196312673961555685142211665745079985859201636492340303773061131292396210004438617590509132047784487578888271671817661666526361684037113025562508295521054550118320952724178571740473198689303755997611664019855913970032428562937482534999744289536160396567371577254353253638894731941532660480835338008331270080179215104560943491089279066815823708339994568237550438573257317741105828046986221900296618136055406861613704650481876485971610591462236940309042679108038341701842388587376714295646770419183524192130888977720775572766992208473412300825201345316687695028966695666118906554237211757931697202137484401427793763867886277189812680605641365481484212555192100808356539147289975087109113130496096190841193997665191804088057880207794487594610889800106414742966684932698568455535742942216978291075306710546985601102807256367822453397752005391982061541438647374981847620437797491990145478882906190937218099953992142171837979945563655503499617921646832671370949924165441769461516500847900700660180150951332403073865138211860716093205833685507428932470847700081827850316179636217275855995267087981218621245573459234493046648493074228583777251445457270316942299299771174480384067007237954303344652198795041789345053045902352162475829114722003359615176819671409109178731537143857529723589653174997254780541644981093258039638636460376858015214096570941851485067596448866460658676560586448039851581248503378768287012396351709535341893274899151388201812064863868263894018470770429722976731569336998798049252020196096330600157907588676119527168337175431886291592035363326485550557165238218157769276472018364655318104807261296314772652429775254472959841620527133752078196025812358891379279971755478277930300999023848569991896769859243864561470945450583069649551973867283833322315874197666662862409677920219277903224805951522514928483627950342248834142530275482621763666922674234159758534922093648837309155522884349276916770295390932849731997511698958927282636644759893065811722467583294316672747585559240806449573629513310064777780579763618073178778196674523732109530182173987597912284817105238862644588803602690652882269934418499522533727447043861521577612443571648765530846932077940823914723328710245749530102916763926257490738860036074332979201121112219193977819013817975514728319371482200578386242233471779093747449114304183873373853486443330069458136867988763108774668810950378414202269394186882719405961971577598757377925320728002191318218924134860518141776086795393605432514774027891531321227934094352126215629343352920403854888309207891329856724264672626629848389314065405296433841484603047986819620370816747902560447382736573290273652785877606430786794904960003952441085587758517780160242966777625852587186076055900917880226427457112219759576648309250130136864816080365659488512925069080409271904384187011570059143695520096577642185428779164620552478291043507846438808294964982815194821426456477938976455456070257238573345428142581584786225045166722434212322049015678929084721728888388387787630704237822080413473458734034896971796195198109785002623647514260304518302167484302539238931390296904697557123723984831092782226792860125622032554147223496804179604858877496597270896889235012590213288737759557637715179583687763124059944194596212856099056020540009266490729941726227366558008570953575584794300356312944589946373029700699180631953141802945427851257940055284761418845737640411249281732857073355721291091908662347092788241409143808590586952537126969595335351838660348471276961923007067955624363363095177579482806976275600025199124284216900143960571591229619904827689588411573361993534598106830383855105154481147373589348427673069128914924802763909025324003202752255219942728953764243464958811974165219331459776342276831480223247592592950659651410592609328220262685042995292733931605465877369323739607504045601034028729424731660871884765712872875761132058549056603608079101353538642260340151099268008711105983269685325249589377747190458325307115932733892507759816530102394203347890632573392234455583888128410729332825756018229577422992012113462156706187482728570986355497386149116718240131906745384501947322775186362509979963098685110538562411030477108296367638794559610683144601228820809304592336102750437849226195044291098542440982224616768150874872285690515023623416819561913620425759566280304881076962388281390145596864002985508615909189113802019789754162564076077776591024253018562854595308532047457629940416110698865855891453244071256382826521160605157889644316887470972905378919212548865745955517251644659437006706385516513800868675433268506616805627955088709452460352128331171388326593107390068926488140022876660052314943873289319232392986096712213416319310094972930260549003601800005012044139736138623543699462599537906907079623792370641641122763532678747217084124246418942578452200145526469254858976501472857174976512207065641661311253618869960008203902128563787742431751086666035980030146726464105855790369139195563552865488326627854919626405393528977752760413421240550384808288860214384406318144882829811276381032727690712040313924643354417606408561506435800758740780542664491941942314204524186702097779579056636480751213977417620200781851183607260301146467378391958290795706996027783559762325591286039538124619459543872060716368301408431255102614924273271216927825121248251146036739486667225235562710409943194719129272446973685869403166859744431234861184282105680071961502472597358880674249946821985781594878114548191142397670746592245089217870027945669163562339399607507459683690040665966134799097719002833248075106767054147383070488267270321427427975026557279920619284973370256755451470681879145576271742069073622080660344577379672764192124209791413751286811163871654169358727011987100366199790930616250417720822102631494696591464315664186269099566224008304884853590937531252393482835192753121277935993877897215959353813352014324576059964503072640891463509477421407643094375228083813711018068759210456452894855212975314714798774501726219776421850455519696984607625127544473311222551852293557917407094009688435927221117184046735048736539945764605335185220419456225264749420584946905654178530198112904373772196775478899768946719353394763529715704287860856423786819860516052151106574868903689356089225665539275306826819486973833077056580800372430366444307608234786260211109449332980411996023217500497455832259241690595225498861120002625950296889086623134299346859125630602411971821268145932343083316556738802973815406109415825407846958093955120758913441752718321043253618459512102345637262953460424487681649359820495855791758161586674028133988663369969069146083805346014073784577731698385112314865170769522726782727372075202371607113495204320538558493339820373619176721186585776901403004184383825738921204222218794530881020271808522484690848803285768448657823800032313975950284480766145953003158135068138337126688304173763056733768648420241032438723325332062007925952760074327686090619104913842449565820241239917427579338741621387537526078090721672943480202433273098719930281850664949728786605434118864885549467567749609279917255115049210533609973794921583472137514011132281385737124581639341820528511791215480496836566962337907392929459306710612850636879460600660393436507995661242438827477971371196947520946682513918775196439867654839284958938620115039694162043415627586029206089743558457110816220081821847440980079420111120883769487169964204806507125171098225703945390680358750740203540421994381715769807721346924840676173636730089799371930262356801464024302450178239884891681418676299330249550809625941482311315943023692519035623306290091589222661408044649174910983461153920587856405262907066116891415941410966674314240292068957825142866978488911239232981935916587784727059527051233778549494687701682128629934850567060009842472128422391429181598646592831299865726699493886294642541862818863220376213501549292665159172266776697628793684352311525440058204141452303772920479593753062857736905675001160881756833023538319388355238640356278641756346466748890715963833883513331967973843676392774426993408740386209330239569645625668253624410590679444750518102293654877409634613896722656238703903391336796708805977320161953575092993847687078910133070628306420880517833611226103346421841465066163515859445481346797240155363906468045493292418804756579484076826142111477426208488048651150733395778292001505805263201337234702361119434799044518875461301050097317699783618449048283795524444151594828396882985239585773375548336252069364272080328815203924767390568073834674537631898706792040619396155792432768554480527293979979503539125763309760832707010859886472893848643999511077774821395406242190613601875717292403381408354938146944497161506979355807593202638196760639890116517210220516325880742227251598892334493186498924350908655719580611207860463545161352795189416770267808554149988294941154495396362999801035749789299903274627955748559489391265784404074259849154441991455447479769503187671138089719510003330711425654739790175450316669472205787471088241941760670440821057254460904642190771438377371705648560383778932866808650740353476820827386523897079826734323030334159956849242670351774480725515680493587432616168083634740110703370910101860013887062389054546343077958866463226939223941293633520111276657889082544516246973296693215595153705853498727653721654381365027741508547698506348703683683427824195762763914253126323659583738418079362029485955145466285414168106717697807860619089751272228123053982714047895717057766248047584485624850633124686486920425106766823785060438127807327371709681859908657843962919523766273934908642344168489187794014393528534637372598141435437206492292269670319412209946560657378518193539663334850483675285017256542554852989670961367983840266524201394522459588978729837784325844874407726291008726005856762370291207886770913492744739295958354957829833281649466022756103877200560095982933497281654346042558876210520661487443605665816339552457405102709053860250746386437200266236152740149610251640715747104844148409701858640992987965692639876206015009022762273789021572349414367671871386284876092876162114826147405405614466212679117608122625831236399429608580260120282119596010178425887974041474170173301259012819623510527760725893077936250263533808670856960553896407310868787251996970782521071371962537905288534465535298832933640068693383904525199482080199615981459047459113453954426470079880952194009609669792507326379443996804671322354092296110004743486337835864602927391803945777529885131390564008405191856603292825787570055650101648847610151979989655112911218214102299015989818404165556813860813785685168662243028029370614534893196144364423674755921697560817126787011015765645836337046163051784658602265500701483397489149065052682130439472236938635641621488138184966539110014579798551329143631812730813849176583450359500290867373535725248401141241343953378123288253922003865113958839258309477288390158079982942389783846664188753856286531868173470678000833116456229436052104609711452067366207003483012256191812353507551477047946447133200040503360126393886191910563408238317042371690072423752193806540296952001471768072479966881675005541692952066868856932385917466237702401888338302845711231335690988298214174809309079042673960476025786000584825830955860603345414604219660528660560259382619452862322937328098949661683729794535664639594811091190718422800222791497586080923097298230457171839603147167856678386841101079682754504085244894327852937070879427238515363168155921114591199344248780079927464985780888349561182945715831683708037537448147458626211783214103912647420590403721607348182352448502458193154824571385837724306238579487506712015328693506814384239499139945971983294701928729752426720425067021573141212710188470269971953648374185991037418834017414086975967336758301792418931218161984683027308138021657536501646359499169337126866835805514442447248710843970864451864748568159459646238421830917785004988033534786303198453111639712155336177793679419336417496966841211191628863889838469889196426610382456282154454515922265874627072293795460634407429816234367931279000278117581904823622524996085020728374103293760302439323198692910198356509787625414151166404400954064917565242583906536718017251153884018375821011826409725002818407745418130487153818442015072304616456325424662673322303400787957615065593295829164420536128416250908017123541414744371341550525228906471287138764231970499910422076410750809858709463639609056519429737983835501554189539298586436926522787874261136110152934930074324640012116429853751285374388021859613255054349198310980805451295157866823834548992510055099156221595970703142914203133567182111596492570465611528703516452449736847988738124590990317692955674396839803411413083464633199847321455293739210476504795870488036809759409316959266265849863438421685531678043902095853337933637581379376852756055724218992021456024965381954981814479630819862610961630327571622530988072585776202593233739015580944603924544155241815297033735307130840530545246396174571490700966889943453827842411794931204957469830265281631663139426206613236106437740886897312439325512790182768527990574196000172350305460214195943426970597350199243249967970941980320852869175284225440670671708502918479076333119639406473639783832559876478811605926016245780736461058671813582515900286501918673672973570150060633965326237924817576093727568936409006564174071836917484771597210380119948531468145504646985706897259508548995312743674196804793453047655565933768894025225437447324933252976585774556775931546725523736792016432258511400791229655084110516632703739304911270302433146778984043592085323895403970610594587027743139279891249857116881961416703318642323733863538114556202730669404597725134357080560986840156899839807344021708616243801344001842990972738514962260762713308406622128479121939267037618084431294050049173017684591791092652067732451202029630414260790209062396862052737584050958331643289409738024542833072808152226451362559998432753889185651914318441651768865504555123104215338309434408816496575217189401709113674257644498434257758382118988238010290169322460795468793834648362354467209407888600953891893000994350144016933530171490573633721923423846622104874248852298966691638526211255924702519135904649147768736341445376029646879313708247529527464057901432907506922961231843988964350744256856549811360759544215016409383796715317204433649367124573614917283199751371440309121880508106878748685933619706463741551395624651534347986168007538586165275745298359182003918309936841840984170918159317755660526500511487100527348999353810470415202325448662237209423573926256591147662970752257353574512710182586790479418969698209087636225400214852931227590078973305522628192372813178760610902480910960551552444525601853201254256502005269461462515004677160859243687609006071307017930314414485514546847847463079649281928520004748361357417333368356028740960594867189421804710087129679443969670275040902188568094545398636287295425614404420154732135053304955951982751694873928811512210212630872931319430497207860964298260154243824648349308371056086730267376487578413616778703101993010366447923665029493727123392393857682937589334540859383859546554515651378178492361055815926951792831613253004458601686173863626639509364338431748093614131333144904551014298674447000460821864359187920571293999272803652684399934145791071583473920464586706563472454439363908843527243892720242909171277838963810041420409591497945939468356930658711290683015266127408743559911827505744412527874035195178475977499894354634266658812839633303182856679809255756646914397605755960463776711917525976510450556554522659946220589821833543842922992889779843049052552384294721453906330956554542066641676166307346802681290425806962569452014450637670444297580366100659888785698109895087552247230024395133907133195634099070985622222143957952368074735624968920226657431652766514718856607506556355798122480753195149374639878566116350969906610559218847675147809760472803959934911694990604298947422748456731468799327801075948325188109386170772830355699183465811058253797560354563116996469023067143558523591713772542488286808570481629641444722112265898214890006466919804140609903513730331663100722236540150975577257147800686098525861277636247921540171672960403825718518656194604325309398714937156152701756018628655659516208363769586338955842170983935806720021378498108260851926160525920472629041268762802087619712980882815099486150686858787500569226200528803557975877016687813608940982963256995207206552851914906656234118046626765935413680477143463795043684229585558815550482339671525144441408379244923873762605830659273417008893061986502281154882116159297512986076909556011223848712268019521687610597068608156845729649391778329250987225503449896133409513736286192740953469112751493040141562813355588047955262586018580147571847433119646691327625254627123367531991444207808751564252083907715519468322762511612420976280209707056774983602120745824959078512053037799325559638343577010061114952509910566417852367558311159945980085099747072972356360744755648142347448071009447862063203377862476333413249929352078016355004770308385383944325779831300781360303707210007742435354546802502879553474466824853811087194021825204562643394728395940836253011084512530456133077140492054387931963878352251709491786051956576741214413481832239563637599155253474593646418447456952492179553877225133618824955822271107894893935960970968668465781708868970551906839455503101827070002002248956712269788625693347002116986403389259927308002139930659549839727653984748558721721544475608243371147584442191095738876093661884375606561112884580148229000262677705285453615842396432769686557545705960230233824675884138485553542297915657619793260222295451161297399485903933113493220146258386124755979888420190199602848346205178370941045738235970859541283923366032610920846642990428182547128937671304391846850365430494829522897362936227883324346809632647330541696081402532818484662568913587023716999391532396710936764441170759474695894053166421360923432436599120609510198643423067652733720118683381621789904175719557233097014011749647545584966384842582925134965623082617263842426625371959492619442822466039635313059899924061111374929419007101798807906861700800985875817511833315600802159377589585785431466296521412171448777982785359777815010336453359170022365538851153200692299954851008039905466619136602068227157761393517953896206265215469170137789390703856288395272714255323297912321536519592767848127366159699769392793717248767131716068275571658475391242442471847390948024771105075116462646126571084110865542715265894627479301163689993874171573781522424634171108203813120660020845139033862125745207804954848826254505614033486289694346335454074632447345983356259263268437118081865071568650762377444590432281708764026440768013297058156825453190200220998330089780475752543389714672099714379631705038754298687394210850947393933242101212641923625456082411947710983267412371616533814220718975661164026296973331135898179308065272087003324427479773664745850786958737541533938622863852311918646997923444226264994726704390073504134828622882664173579477939988934461351135208834894916248191320980525251515529265287710102813640804662323314982448102047523297400929803951808662644958803699686287494171509413732009704734249020329648058352788324999771966464758767550370939919055327775584837622979579371284325363205523294424703856434826021784651224162019357465109610622917530324227395412249251321641584894125428809238381737247168866190665044068194531422000217507198467763059135579587842645781359308846332345960060461579218996701142457014378209668989770330376353027911200267910174346030887571114909458068047918106900409444216609351987709104717401036601435969139686074378194710587710710358113150339094983669081449759630387330545337727830045466741633118618776806286316655695928888393997417399171762455538922054035717227722741575261837995948761921484219624116340547186736580886224824462574146257199176619709901098619436352412652056597874140039206449838307422716410724322969260154876137316986533102259541705213894670462773572818744293654005395500856413009926055103953758418669688772827323279173568444054211237020658911728231085779565608826764017596180588909341743960317460163483116906945881348650478616174466346387266289436456218420026303156520327095220382721114604657758385196003680139426899442277585979207549834302017349198147366333534799472996843612206866813458640526918524351370853364732449561542625052649462405600732443877869522975103315223933739419897578449244785379864363849560536969798276790138651362599412526515135718453384367463276133925758242255909533187755484844898669763838657652306286165228831589148338133653227198190065721755132530976616297867746858857536546579752338235845584182509401186844800086264127786139163666178884054740840490858833336802895672610467742873808418529523919886665806149667724647248292888410356984709345521584997290843625882599796185215656185599704186627356402963928937815947624781737560985345459279653463591837258490981620447897541466105658510458470515427093632655870038672745394028465246166346255921151027904659626724587520568908545049409005920291093269233578472606854024688932768310909858963878752271922654004690551096813300028111187110546819986311166397535647189497384182333040758392942742079191591923038823785680520426232279283582922129981253211970965332833764130311350060972656176423108975967933029161154046232775419612739552295673858280315671889058530487727161229592067517908382061627474805582787123156421592734596847835620227401368668455989558676956941622629223350101127974108149194452658793518186633457450901137319132746755455189633178845724613698338436620748674231814002488997025758859671339909627057236400347703406789712791812193405556493485785556570734746942799996360899430895018573913461588394631270978242385080459696726733051239848551507934143795641869506174275619743241092183722189285298959679036109246101648496094421264649545737973639419765608168104646889488411580542604806525271809747287753455745880402124920462656120263316842676632824274189880802468532610896580662530979036853465807098168082256249548389188540498942939986717169352534898010275316586161144127674498810725353610265340677878289965671879911086600392662750131077315736948893868552973410016862705364814274250524061108879128799858423604000208590227031372019224065461579014507390557690347746967197984546258970825562655087666963843973311051767347021911384060599056655008154067822285576869771808257090790185309748260459883246428752900186253052538507596559235150308707597056873567701126572555392456119885425381146895814641982481417063758319297023148381583600800229400355197732049293100780207168502763103193375288995119170338089797357053542195788976453282011590213339031970723541120293497060547447539718151803314353137995894194865512584850099392786438313488308839345185006975691309422623325109510842520843876635658849040214315302011434048279319469467773587237284230355413673951273209968160724670184763883775374329594818052285456832148049475856815810596987259774453906537890030652729178376482573944900316557738199066416014680753858637056525980545424751992711068100681999784799597161304790786712438527304928716113789910113114776807314851709928069770880642041459745602698328610283250706353574084694580473570188206149773710736228562696095769454098528246083394805062540847804414504643215676939613002849317525524689473661865562922569728917522933749708162945358473761216153619890631630034547189309405818948987957676830133545848355284083366686380234577618095221712202645016933179071576670145864375177078266332815719944395671310073913775654168082162146491200194607224466102417093224525083701760034838618166111401531032821879841139330452722965829289118687751447978604243620463859629626165621368785266539926431552047726724054939207027650817593783798876933311001281342619485262697803389987269126754384521081257491561453551377347294847390351979691074104685978541791816080031009278871650276666395904859025136663410189339337949563966403193581070497611155791039734384227479530333264337150836230042175732292965621377040519095411763298524680009406194826386498783429760181763552987838832014765990565284276660017124676857931948656960916167777433355705497295284308763363519011293238073672202360448115033655077502725357050646073778438139246103981229562335868294912180243786820820343540524269633387636474305546751603945247963983982087996716515758509549551195694407836103244628898038361640600558954488958143655700822618683260387164527143449458433041832551307912386334880472098817417656053064220368558247347245142558737230916785163118104454936882767288972374108547319819867874523761966977215090253688110433804336001433523444313773820309794744839985538066759834401284527014547947353734435490844912973673379382367707639196299149612081290099855952127922210944072513217910317194062588301291261918079366923983322603227066526781279478403916973921615004569657824352085748356621649765881347575521635575241631615660114401296813098193358736389520869587013848207651770813916706242409886527818039099641190926622741447380217707406591094450813580054008201125941483827673501581723717374942079382592639866547282844591671091637531742702043856906380696791428047285822319215682766108746719831974676083611679456453490811499125168847201660359922931999289200738184093701042812308159260635212186772538334110139534646634911493974211715361838078263716906566711394524731213717020377457692490597565105581666415180055857992159203537723884303844236774591010869898628743801273835055688000451976060894278121851583393966068015935682336455244817951837151882730412288143978360211968810319537795561190817543522655027541600932383532994254524628431462163244624066872433983894942092569913032748782905229180661829051651745551966316221196333311124037530770392955367369324467397870680082963155563142275772600048559916351613394768512345540593900613820507694306964013903088758116418029959838216104321089998997304603348860230946184794162937202605158368544441186108142858058301989775066049623427291147986965363527816790413426832206847398227587667258015880048150818379559900407298065852957877849552390337245374142559709255822667675989198831976398821649894568346955172138343645174529494206266508424674927513418677927159737810315962546946557685390150759494286563266395893290142861273349272920760156671693164810733962860808003192988453585758320415158528512985918638170267143899189560471382325547637486423661609294043068891101419110477287535287576909275001080030615372527680147286989297707607672974485329378271328381700487160039001121874701446052032103567159019043350136528574098408180189306346118204553713800505397734830869093705042295070896040369243766130543813583441789813008306086379058006168038477860960044219800165881941790125763558742777516700928601581337539932549363182464287245937645424867179109111871588930810765415030481010975320713597091376706523514466600797798711737816104569432422640820878344608912519306056821513133629032014329020238355205512506140242534354805551469132029900758647051155631727656734508748122943835150006234486653696953732175877441947083941840139249386511564381539758910331604064479856495050652261583068656833309979239306499270419735229931292513875458566493308626951141119793130574735047453578519352457930506117375294969948098065974566658240242541744363766838154511110103767768804788943735067071396927347825108399436811864232468812367606508240049628708187136464756588233614617832081223003297741250494802843380313829459095686629370381883888698350084145937539918651524738102256004978690305897141302925043297178884223726411144000411130465947426060035808854388339579965665061806807093835996916069140009833233114639458889870617639201842858546892724286287741197322789106261028310016025320459571425266854212751519213776427691987034327295812239972470879643653986595915599401084941348489564210613449843804356051927275151361808845005376628940322597165800396616420944588998865737971538345782313146165716940205773813633510487639875690807529792244414193495168814418252546918903565996740602970293197130356365321648605581094107696543938789105476919451701304577471033068330798778361170683278226180207852499319388589456269690971529928579345890531036753410517644511523264771223646853488951922074613068382226980368340056585778006918925831667301397681839880949334315396173434118645199439506726865304408140079655545153477593741170294990272866982857319392919649859867772078238898527857548517072203988203509865615304095581107403798613257908364663063672472760321936838761006518586272882060595367771956893701762064218959434448388331356618308636488090310200270325706507204481201511826050998159147118470275838731835143509475700468638551360681863038306323635516198012475665892180688442972759585779276376311163489537727661871123919894686900288075083138843417188961689904064750618010728229759291722587514646487535517789559662821067089708347291924139028081702428035019083511747657806256091254281144912188699722001405362750091722097461220297778329878719554504254146050414662189796845485770618097120105728173000901320788361471964363334713931852694856948746683285091075741989375161932986579597707797037133049252104307091808266983524839887840798989461340809991553559578022400354804143389549307690195465293128494892040834212869827861326132462145223933846240923605243580533232779572760786147444070579249690861624863523569559882247342689573693948077440874958290808735605196523369608943742191301304792855891247520486303350464548169164043575037301821580784939295323853514912347241608569065597148751285368209528588941025820332834155581370139392184810581303418948902334451744751855505611531239864415437292727259030820980641824428599922689527695671635197192960712038239947616354106008190396851856895127931699182986482205594705322078190940634811958198797067921567901171210351207336724756041420581366118973368169630336285248419349087009787328831068595064098898402730946311950655822063062733927004153870556701156347540614883695639816904921816922117396887468370525674671943170586148423879960293023117763257644699746860640835500684649114832620789754124969911375131040714615364461385647055117471542426752851514955156699425466841882185623807621590602631901485226978949638193765506402887901109996139818696059933301701691967551180639563394178554750474898177391364694719548256782682025390971218032268041923531405240485568179429746570496684245973832631880481109080047931180071320486290840603564128430439518300918947160967107919908222251051274078064616924625860304155269984638630005417754469477410046175216844505680173484584409859393235920397866185511151760638586141809863943948604467425699711677562317658727377975958609721384045299750556217037812308620071674881565681521489104057047246676523084544912161271623098530619752060371815699995120208858856563694057888501290512509327318918974837545332598909615679060937095358890212250450499804202019553789904230586726951699348647056900845617021568433094391322602817579215178722886347479652424360138786523937844330256278610314275930689190918509581159399227464073835533000281128045860237733340876088349866558328260808607382084186635228117375326893403798827311676757307370360378883320155719415960835598016729887617017681375791136628432477009233478949499560789181056732777154553495720063525757869480154763273278164137964445797695475959026059699037907164036798472248832485559564813565625780513697847375069359096831866335493420336776383172782700789923546771882284579109720513872492001025620755597870367886425498989644688083917036435660451627629093333817301297551875242210122093419729459373140290370784959965792281923310115952570747590781376453588884515698674084723527981443341319807917639181683671507333458297856481517044533259160501266089715378943694743620706972927626060564922955987358515165567495645818375808266278930192533162732950158672174517678794610955494933072893763936126497793411844757139550050132455522290573456308307000150493010348550618072591389433397204611088982610438343652325388360327201042708891972335112049971109227054400422256025937564035747189530192150325999515975088681292396712240705636773468675369828323834983314136713058610753797672889567046951653866101564506688473006730837555722974535216277911819437367068169890143123205420044122770605677114326681461439723850500979600637351658920292406892605685988399415435875897149778864659855544882766480449309734154791322804576609041227650183749449179372967136383843364794602242617802795589926459364505045361193333400621566548211150225596284647454807794706686211580479556475832365824814463995001876698096711440923332648487590357618638868901225494753556046234748136253723299312813245134842505238532540758836093422811035749886027360580105939322693793138333711501930762469719364058789865743286188516982582374696962478310719391325033696170158024269476859535245439697928888175237004476606353057375010627340216737190133304473368876874946487323473317177926423294783781599411781707488660452558632823994662354620135452833854844961142544342337339333190698420500193122938502644275505231934537734265529468442594279755753166130600136862749098031667738663740579009930763960831098341067195658573772868000951445953043932008855768423710568766600567506676617948217773456441670064499127328147437685530979751658970889188677353148966446934585460931930022369385150437474988566200821257155273078871879865406895769511492731608046510140223018537613922891976642003918413311821861621716986856725596757231347053162936269705575510569997243180022124902219320047456630390339563402782381568425810668506984255731772908295098563976795611585529085041670910338925801177510941950943401014031243200119973490510387178009316566292420145315787337681342758093809332190654109665302396555844106624507930018452153042148101453005827105456893211412302043138355916334844339525382701410821736831699481354224827251673352100451425872018841512997086656793841970240986320869648890589679892016239271477996621548513615128686955945239064199602521245582794521051702437565421147602787651152884440293657243987366904380599370508150922492473112642586727899878815923077426864450396858479829361354901396758939890514904572824600885713750933035201185750438135612203968633038288362176897272114300523647169266043382196479965540854783945367561307116118373740624837393341534645823709008780817287768110633873584104759586724750977277525740188727299576910275700315683368709674619997198009746958108573384334695973017967375117022670814569190635145203990840502750996981564900404881806326295040436422183238238446930012135985100882854301449962075760296305574942876986393249021544789426221318821478464677221920729969394612218961922353637141562665557784677325498248195700612545577376347142940268049429734873452788497360034205594188827554415689511587601107922512128810762396807595238115557148944342407217860289604307055075938140996232557588773339255734675380570014209878056301959843577983885222627145238668860074870771691975293876073055311743291661712818886972129413166121371089234430559036200066312627729379697967200119188503873036570701613651620141637162622480674798686931535165611926910090317548803782719799023453731700111880810224083070400221528910851324445167052251779978536719803412218259164659037085523117512909616221435108852671529526936920606046650911317285213569741163785579997691041835195606203116609189523132733801682490001203748491561158421458609640877521758628698334060126812113774704112851149874597098890934970915876891954874803318221979046232306881671299957549591642313252753816473131669669230574480136946183331141860160206423592609244974536021137193646674206471060982510495812587395487159044301317978912617248656484894837891819683440084335887408122005350321206071537130106784594343877308028221760608737747349917397509376627059341288697634332928764589645723305227401701661318802931238570404326939676399377442428651206064396176561811534692817306703568485729022613743694010242728526563449807490181970297004410077567572382908714519866869595717806814377154157254875760473200063634298339343437345535780642460496953216299638124732185816504305269202562635018317646165895944820456240412003133705385270518475872940586448242733096075609520026260851828593971957954870864422097773624773741750447743874354255789334476429235552584249297028819487926663727589238104505184846938253622923447548956056205472054784491879856652250864910236915618534046416760568760906204010567671614095288657325084741862898864083958684255029372612329366884855655513883159189889370172319800347099838929434676594010202611399713123231915911636633154548713374593247850470891631065838229670963024765995996832064073488748058144598752646787842316092159657537214733625472309884555967383169658152710181098085127925174479056145932396030370253737850416873870054690846201823685176997601980865809149828056397330767115844194371903568884855624059047124260770388117468231962146639696444078454908121570625496850700000136205633640148402208925627761105917649146957373485166788169293728080770929808055261888371745174691893627694672503904425164461006608904073673971319690753036269985241214405655717953177612189491426161381874407650987569443088757050899848185877117985205844560122200419970300144139371424257996169207115088693671982086444291208106794550934096775394724355706010208559008070425410712956733933819798828140934724127136204384709160884812323047876574814588451886430452753109263363467696823409960880552911123583063926897372915221770916026703621937103886266431921397121734983027722797858322780314683354070963429625245307539511861244033703281494276485934096076928084211943370960889803407214391125536228275269104363873213750645876382147952276646983180910171015216125138347223272710747669102917328393850629042731969211050535928425288836044669002101174545238891339376089654903602583082108644199681465623351673468669003246549965078437039476483137005935467061627575764649243058436846333476140355502374444469069298483944610171755424403308634564106929365655777850792940433745996595020258439830724758013130833979610762594382637386630320770946847824637113430215088331650955317845400955210959571530344942389298023571401573281640041155314037231014082232085075613377873240026033923180262882353931469030999565964062931091486561500796552455771292468563272853391795072971215918983064661241143366700576729186944873734101899839898705522366708821456513541451535749300188714310625669408395176807098994883964026751832090996344949844048131616364562081542169248139881178389942872045663653242902116416343632349263372023017954010055375880449893264354110696036777590757018376875610227443394671881675045627192515441396234544632151123640063971539152488782691915753126633541823392366938747091925942996407070495649989287980196090338854653650339989668358279559105749647967842279197308269502779333923853133125926487251868384601207506318680685582371891648671423848211147628027298189931395256407582474784418356096953271883981522749351736500230903945639105303727015020144280263054391297156133765318326190433978949319011583514870867844325186190618301948973317988745867978638466406604397332712704705353915063974838043225256136874709527131699645408191508008723883565611027186178972429965713311870435269286817138618199472731031191120565577935291861913828972103177411790028003206058721347692030925608499407126906055693846289163723367208093660156913557746998751503076880329334995063235805976545555549212736274455198422453166053004248477035610044644663762161739423686588425639176628856825520780326510611541516943386808351431650972844820378429533561333427441020882255133376488175392582719397008950968470173647479102689258376695644895135544491016657264491040661774022481045591640802930126797254233486801967149250292487143513887355051930649197076363821023833942388909558213273155603089307859604601479070596010776121671410865563154948009161573487581211558953467134505491463941684127347380333146735397519436393741503748184901126164979592402999669848694436915226959272678450507054100735534461236288716573506795896805116361322167040983249105635624813029039614690630291117707712948227204342758903512591171898012979573367001381855828958599721380631150361972042532140801131048309626534017785686212422684604181998693231164572657581157345437574637385262799950050844118457147410169797096031193148324323565634758412682637499765556553020447157706239036065977959295034907110588735449932145693027200856821512927957474453965852999804161226960201983386498116970960300338186588660156801658857234497234462840530083917613107332957703543683035700922716591004970567064880044681021623819882812995997002931479269671552794204223723049993191311847716828659453186563985614939480781933284257430473103760497341437952638184384641124111220478292828694137117962512005115970616242955261670045045571822990689735231548005281755237087328963286930719640887739979257261065714879142646603848025032986469488702466321120119764569859622661207056234931426527192092461075411952119872623960275582366340864747757111550239930712528817008437053575619818773738746311596695647646041043764042566046952831304691123829322255778084990214452058999878136677164712209858697520739628497615269104565985467212852562432490262132201086473148113057120534589907426230554156319542835151548379215878955682207181909167448353999502560720815657203191971003630318120955132124274377602370222232916498763277674589713530997827325188971734047034200329264432856367856865215384936574020545329463870477237857558043329441178561018431444780752435265259008512387063170394901793641726793386781868219819030163815621470630861793301415740157703152966515903124887415144614703183839306374926032278395842720156448106919556019216205282196527072170500379918006149894620392935116439786582049540959171550189215576668118531690357376905202954085106457263277508712671256505066979551181316847941683666630441286609922077228621429803805870860596866857552665104476994646129754364789528896633077491677465906576380184496178995065366953024811810521570282414095521341071809277895753574376452441871531480353419338587729479274237128908428518389139758646780873521939349328218228878320713595762614906421282890044448180031777874588032750281886004541055128092578072577613768673086161913214939997281836903103506551232150597782180784425526527261589480224843729192137206521135648887225851554931556630253687214074191056466378406288945551565246105709008949017379799014083886255868024379651847219360276006039959304259446135684609446673067946675327436396030819321375366126556036132736763560475953597653923446571896304762369457357193871289690503815289688268512977502308166475524736740117430802468389754227781762857391693759329260543480125707779039566965214375233768571278608188002774229460204135494292005163532388758754525050153673897548047599100657325230977066132477060829064017769715289717668679930863121335376342658462050961563238015859785842351922685966912542742152737128400359919374513293845732763381291029300445579079684357073325945201604137276680804037115218041964482514991870926592577971287844016754308581000025757900375523107983265273013854695492331822212929487009944236334294860281465761114325873169374407769953681094755926975783313164672480304815921657916806998477236767567997169555905371862490924676511851544615753309636358856303951035143340769926407047337384913031276146509950366865269111276498131108657394745113298563343922835278758234196410753269414599141344845981007795250539275876797834191710087802286875032117230941124430363901731959850385745271165516457046417195631123096116319635571965749206268618708800675279164772314125291144972922149449908732779087730860746003089730791249483412919067625423119289763646814697828630520401137524009260613820240918799498832737803436981521077633396796162584120217072302874328267092434526003043925217855767816452777872248853361143579166232079920525188362198914352329102242580059814684088540970015415544229186428771279953741802986898558089545812324354850454177303204596741385665256400732995669693769723120604368444150740942251162999219944875000433156438820208239052010351951603227934006247403765109131961310719375680399032459965695376761333100031599103556810051525170960708304831823931299492208978024902802618261717694446271333607917768205994507452510951534511196632146017400261381633665322191035423990073394506662200619674104847453535325738438334044007235614799525533985979715202978397500281354675430206075624680944433472965219458259321585889729893552060306447357582372291644873380950541169825431132012679740222882734546628057545605047328417066819658842924641258458276376020588317644761272882276533499823931010338643767531451589225150094648271726003165375679134812151684470675457613237189171190015251826152671932063520006938421121921480454062527196206680968827923599132416130448946049221763179143601167799122904976397543660468633801289990094362343956791021899194585545685238039221882342753975689806069643408336175671960522241799875784560190660238595864013143206430047849139718988985913481838812689102450314773524606842116597900428159568699351167738614968350875822774967770128597201059787041728530647685276991819181173031133741525959060327234250520045476583274835532813391239388839473846453201792760577378899120518770649251584482085298287552187333864582531287978289382388316693985025371957259542390214178399540591719717857147838849637088614752411250596637843734841636589424775572924865890162320888016641630055102188751386980255814417537956346786998334708689877806878763449319645851290005936430978445199154139057660011825477688682416273331285468336995497015955386280151899272593261784566217282933304442926524856612166558048386478658861518403208890434503276470075805035189732478790943203341868006597713205426991336381378753586191369599059869727596991308134140238663679585711523974001553693188588175868954137379072325764943923271956480041332595656250369313311579812411115263534383095159141279181415612495136595771810144417594922192366171475053151344866671542571143725657687707039401016591142893516559472480285228754296097542281414853844764816149354470194607830588211110553952570305391306189554577928576609470578726831747598734192695064015390218999162903293194068855219079118102721481315272622069819426385058889057567344202088832971071411763341807122965165325596207483305406322782154434518739888537564212128760633825696251077186671631577600589994776644570039315121260788059846261187639089238463699134545888731272602240009956215859708653486760855999599162385874419340639816863772684379161274807006096800820982494504973145910764252280138728755518105592646712067507314687129031724433301800838486426125890532177939160833353984156480021714474277177336185547907562419596039954644873479519327423550966107535842991156414900638712410803789463617540217759361798083738893775746229447691420487605870603029420158656501613452315599029428315615919814799768509922845057684326641383833839174337926412912898427743962049447503151381011956057181424848158390099794624967117200181235218520156704958761504500220294680886269151358237400251933928161972884726799440953559157642593980530944067118306885461577743032457732239503814432801559119533262021211853490567374451012642982829066143369892380587472566537281779871636125501867107702357515204780841272710870096364013261848543805668780214677317155751712204243071209817686102502385919007238300226640419029374900436178073874414937656009513841367882530428066687364955408991807175926615290798267797015586770132661711251331072835678159585419041924482115456667545014428685356115824314879000938373067245314017989149908808806964586685158506073671913757973542103537366754368043941648053504138557540634556223096345453439605261921009489947794263184580566177990407442560651685973205541202146454865726237799336672889468802016580558258503581040516511312616558730771989614936647170096915741882412113289983961062851390065758028305223519696339039747867302766724513939962753860190452266524975106838452314839304740165015349177893752041988243804541332965834592504515424274720822455364394090839469071507285051338679504687740326960460559750783895391452672696387216905380115776646955779400671791566555249709520872656383195911694357466166821620058939808853856254309131627871834703899938887823944057606684137416832088019127012364664892314373137410180507144494726413116481989703341168676380823902003416512749745154650124126058472266050936380287349268250908244841910010146635974065530029554079982255084295746752882823060847122276549878541469221073750359124642537915073635050121840114489158473795173896309822538786176884123449438955742257239065979533245292076523233540193474092658208556703671399543936662663230914209027554905447965014453557933141887768156555212939097627114377392929810729016232333861374676594542441572474836769762050848530676066067714214077964537564840586984720554949469389931080737716492357392238287782707473563793396245403647813257217859126957559144196338844778777684897474764087173940698656021407410945062479430390348196179997695130891729391719316697839452546576558089327461182203582941186039555522708854033131553629690823487122472979250463440551506886039902849760173069793215937385129419456861889069840504561008043208181307395172679196686096147819573950437708317601661588965987360907583745544277914663494904311768402405254344868552322337305411880767736733084908277022399355451601078874511446032740064169439185014743116659400326038204729733714643112251140264881604255174883615531955141828077255848985824186937287146511357983924225524948849377425376013246440668003658053809573586440070117126347025635278107467731252298409965967433447105761333097330923689200590238736299602962813099653505714201916472399188252102713895817783051602252543455191964083084647580720611541919398534982381988297013115398235856342654738985928536227129399754119559394182880678308431074902545324903770977226151094081592452185368201574367163255357834118814169999374345063327179040484995871040037071328921205195249474594770933400946703665208720042796913837824408349440007506426841492727994731719562445706391849177876121125283531462215585873558381456441711562569474186784220007694635948888072184601892957582756911278346617049487126510382558077564228551959328906061928527238314548857454538638296892466216420916188822051016930108776792112565346901375492162393062868697766652271807480423054243526075310363886041086849700504053866835585284200331833947749833990882040780719421022761013663886648820427140969820845346707675919827731929793250378566817661934728050897078340015303033586395740865576898694898973453114303352964893042364169471864857634691526449879855124546882670153078529629157265296869349904709627398163848495214284477511600823011190244421613570446403332570222445818941403631285300952666625605223729753843234340107148160763570373736563822901700957085906048432579641661889499251671769004023796978999741032543420165920667722834929511031771414844456820292038856870315977854943722683841926954602472574299372283336693870990458353859753517426967235155463727507127889804138501528863468620344162162650656611642738360446226833634866598032329089865572240894567139118462132692494120770579937437781803477756985648960273674769750348480045761116770507119673856731090238435959731727151099073385630155465363936360492978476952889462429970711550139564347796438706314047193526984395914198945417315062331349609074865399271557509615284254438922712860506885037384793626681695685600109671379768115945370187128965486554958323104895325775005448716429683539853100056993900451226505027830356932290015354526228254510260121092598736817935493495135003554006429043837254199146243829649836054858822913785833616136178336498870512615182918342328833303994286923380657467389886456958040519281217243651307831468158311336332733241495995876454560370005726528726965493912984119161548701742867583921434692076681458754080967360728584214110024044606134498200301517013235345822074772176230142444163458489016772251655190125228058659601265761791340716589443082168359669819837738602352270330553215243729658123865095210971199577712054620550897119964647030103950490641604576655909870477746871838691100355344856477536012680085030951220945595045513197043279427218745121615110168963943722793858106843704823586246040778839597596421829771996066794504407053513058921301583613970918717154740957298348309790878097178972783352881689924892785895676452116435611527007544621194148573680996157296939663856932881154817298779118589328173397944460980171893213370947320361633109255645532387451764539557447751169520595237602378712372314236444393567022064284125449301175803760747307028360414075386467268927103413935681022332087756495603124129777476350637566061485666446759297362763678638874809527565561729075691081311164880286060832788371531907355266498652597326170808809493052248939984229888999839889448199129773272974903492756026380104657397013827510165463352245520237953201109705576853043404789568027444743741680416768193812351484665860193361510835657767210695828568594464363859942442315155903930575942974252702801804685200167175249670789995886563783260130760103380244043269917204763833397050938941826530998710388261974524986032088602234686608529236330016389271235552161298917650627323301467472493486966525200646413352530622259654957154997290680425966444831246505361986792631823473637128351565782483509946292077691131974152894508625547796607717796594508998475594939831891412800074766693174882490936260776941469001392586280034248777995719863190299196322452870524823344918844733112300307332046740217931650562121978499879556203665575258955833738103355915104873974661085621673363301530183515563054649858054464707346180540776175430063176585727174208979569771469458961989929330722745735357886522525462066114671157518860761377367697692813191292531761133725727311450712195983330241019416053134849056493214535322287122771952147117221672705390094105446548049706933030654807615199335283902031688703999167811228109160563158343124057809050227921542996572851100078138963903471968275643495804384888207408173036936475218085593917908081102212819148490917338258910866588463680539824619053559058524984761763572174241130776940928034846442794627639488258324907892338605522289846829988576257097919212269846096512594324825590263963888732719664520960925857197677842223068353723126668656657710185165528318670334151811540710453002405033921304281298509960023587274072811701286124708395162123732811587389729218013295320257694599069307116219954898002720577021263902750344115356425182576424385063570919590252101434287141369642216715087050055073361123123176462197284645854501584020129006892974357129451972203074646425962166455877644480709778165651407844055114034363850440600009917211919807849402758305439406283046085027400472422812265213723480831509020756910790394383728636024604267987823825141472861018654420076505881923869335633703452960807978009807521882729180192786521539168336910277031495341818418896900584638643409072142746470711261521890677134743937751988548308263748935716887997539301987191535079309443152267942718087387967797773544577600763985204498277020869911549202952445924186717403258680530198447700106544613201722445916220922455663851705589561187509108822045847804059970383597752236508759940397987383362908055079975498836168677607993261626091784211313461324315856370661011183238730588180552762491057751260706780765463058746669717379900650040548802196904042947037144619832966251267532400964234124030305558681257972239461952466359403077184919487037073916820604918073107383997433378885687054926073350244046541412973542524035829847281741184835790039979115504246557668759129073392245222673985030834025548003678323455833297747836661507423227108905832246981973854406831388590224925584906966149878528557369852844809635088864623232463445747516871168874917803705490861667226333035067473178440422311983806534305464787879577853073576604043198490694075300832193788184517599073509707495563813033397190517855172915818550027797602584523900772459143967495883399291917158129321178861129411213667240419351606810407683842438350916562135413696545235379796725604586349045129616909491579415278468845663910398257223030870156707354414408392287907856982012733112920037126581313637418424073688449561687389855216083591775230328572589470839996589610403916687822549139805656724644039565311795202862642558144983771041529772707849809415540605721172316356163575727158052099758087409773874966575177747439059672725079698087842818726222753180599714595176890296649915494097757537669963765714436294134658578747524041144617439164409359324419415417831238441693686501716420228063383391283181391024320671750238623906414041851399012028144153012894615763832260154875595567212415737359324797625147798518650209951841360906830492689013808587398189263347189380047468443194762130829090698768505820194437683286764313982298792936262491537559172374214614028354965427111944351017819800561442225165717265927093125243118233620084211211412745416520589410437365789710095110812841327680955104401582512386167964700159837700404894358382289812760826182843036850813284478057019677319052948838482578078686780852211569685632023796993279036185896243358440637065014415570566429922478910413787303449242779461822661133911085775355621599360510158202846888119728403705612801283045396468206725110662446814371562943198659016063437233472824703822131324529630709424346886758771792499534236942310509895104876061289644588656557327175532490220380085684883598156075412917022429806822232685351413042517043113799162250579578418311626760763311801252937277600038567693102387806889187896518533907570957390426500019478487239321371811093462803514987169249464214687988185753187950699857564883341691372319629514580698144645328755884637436296027813729626645349234388993156475900911949621747956432096183094285138448576113327648671604031348981603939385246052173845723045712055481308206712822591712386718869925584714604222641480816987747416228471935650463283509283114020824415481061769490606864147474497269483256819439087757347585594212718265352830885479019016155201026292541803840527104508012890662211157660177097242636124224028277981688938304705278053747513151405882431689463505243041212782289724486779741037066364431988959431680321285263592153038799676563174895147839648464567726656251357156922790721077862643144347762487975482415610465409905381341897729835024904005896403996417110865553123195922743316564581855592138623783242032356933549060593643095015632327610674829743958029026407025549990867365154006987502154685105306742809243198213952142239865444242062485780073194024858102608037897905672475760859043171835449198811260905674154214595781450247189319354500280638204427416151862035883564179422692817913065886973140795322221824633257420608582344743030303978303833581938480988459813899173166243956837826248253523077921887272517345968154452792760341362911427009566831511063366062437138803821658919693406620880186690585002153950842875090197061384297478485218345083629415863197835803536551032364172462222299008598870894051803766430546417013772461269689544357477484018316813318856342936697930216673922424324521918452586792943345076247102582300205442206373176972124047623167870244290030008555636533805447874774542999672802216856308025252657679456446980731239151224300069046609445275694508345188167631827686028390026338560786838794766456115982729082426272467340048671048098765741737212491691652763857623571905080584271321463257393891412067038962362809735213167504908527338052357129154305952028028918225251299969619512784954712721401878027977145433565711186344705757678934138624851033178610830914647614071869662805276467039172241653384705142050806975529132239115783992105645805376620720522646346009903884119990646316716774419145333290741441204213462510037096103726878628890167954439682194688767899016871722384383056686589442726476605365504295316634957972616679189879177455926827437275873115700158766029767210688255024909521511813999430800194685454543114892064948326086604667159156711777007738743010850904167515109319050703301213383954065269069798224026920704108861366667710507634222445578035078201761046204232126082811083931562458858870311158657406589830412936417600687427090204706505453793319328027478754731917135102684288238489344899205105978293718640663761546209746089046648083619276991560468967378553614931948893286147049081454143231661725277371003346796072942177367609324236210044479557505070368570064534459313098925773942421710129260611697846927347154686728395019942641340646477678383237643120881943798017440732053584606860502874438908320581801922252869126862014491295666003139983545085233934965087560089309425291114986815347881710737357367212803813315926969190698412341952651062037758142957769627931984223803877531281055462230178722798148545303764785809725926727707348846548345836797527230857023563041868811902585054598071073907808016437411292987743224711747163111812871168892594665867185192031997065994203180671526461778782957496551781395290366669494786671322276000112225948192523096739415427297216173881451702390013259809091932887655681036194565518748480041544642647454035527544671701107010320045996306646511852744115747577491629245732937137769891744928312491234091675435096759771827226736419748687281949845068154730122863695912025208254381694830234678413953039902252662821422592645134257701001796246917507814128363245214357751088334128081701167881733243127130508681865699628624951447213191565274651359130628606066200931156387115940763133761875535665609956158685009814315599971085372881042608735292820773209657972020744192493775448150954596664137415233869597394234367769044790243614900373089574698285274869876906832257190709720470608269409765449399913113720911046371003340605758207635446856699241154833383683440660239511295030885992014567777663260953456923313851240978648608539156323201316057091556149926378534526156796929124235658003223440553179331664427638335914616538421176728030515129547769705386985819295355021637990770484422379778801850283671405876524583534104138210295870575194300889701012359597964954933813158881950594154858027496688537306681416954968644253804274403599329364509881827778115835742980603759809627441274894548316161572579148089558869631203500796140664545773614222690112561621010536040159554520815456198643705570648264939988621910959523052712772114008613247741773297541146138239374754020078898087903236549637146172310734862967835553413689455960936200303992747211656374641494915808850641029447872476945940956465492895673221243629578553069322545340290005540072462474205584294369143990253094028975016273652694424011267126400104783184488106459048659367342230016758309872154018661090116897657671661357663928970430150924856749189196606654049856086108810877552035123581161965955541053788898364983246743122375902327523923563144976936727153530323355941233193242067565804419282520689060300954046939069780061162073273939939490899822813462823875838664203461612362423940372496414961533071852284482728989965298184272387831513499735590671543503577615437169235821577506649125455853471154335036866746044175312689507483012567398813718013577720919694686680840299322916188531070631090557442646637180005542259840182521588073193193133316769172687801354495176754699477094372298680277525992747905956857226956667060397651322521788522524991354462198464118356662349192056896598938197198252491135036045673107291936010029460049069272643003901123480948619724314322530948692463866466979083003306317029900452001882267500394136206332261434141041410313972938873565755619091678220018803852561927830451706384285733149315978681079654588048772380877559811883007987311477660479360994858349872052144177273084945964932207385552057359110869152816910917921785572978713924816598726011303712037474948918739955781084451818223553539386871899986206973332215662734322934923703309245327936676278004468326697186349827556398056514791198767826204635863815856461608351306741121717549206949880197881633294330155244482351389626302796511143617997856985260745086219899459122511471913845262095430343942497595953117924915452198969555627281962418775061555623327414728862025611228879006173210386557434274288075483250238327690624862293933464674161306857981822903522314809914870656149795323529471318296532643056566239870780272398183270313513028864701650593624362883954883197265148340126958995285981853449503172139418779236836441467972253004293702687821792305911735124767780891337979273476210129388629114148983090797518943486948059446407476401570011039677879090075554507812174220209731615410641784304107358960773840416438054180781400445700905514913477277232502684199365979568162322301775300196657911688287954499633434226961406847484537120940720113030537252222503820032153652230193232409502517612892085695159273559666631849154505582057567610423838403934915342223853271850438400325699320052758275776976713549261604105926908278089807881177173609343607438993528636053086878085921387224104686777357954575622425731342961238292857136927850765650287998508741020260861065860830366178262228711021149315240088671743315672331039647570241117590408045042410329358789449886302662520453523988888167189895673025789269118848465042548984042281879213030857901974983835817426083337896292572707535946650832111215976879945958536039662246723843113689137974866471322672644449099055819111997405805380933585844817264482386034074213351192061450277007375092589955997227144392741508668252548233875866670655842437520242425909015400629689489892863822958639806195234507003836564313501999891442938475740063245209973731071001506203972343809089668847180174519841807622423417190241628198046683220347039965389464939404077860788859953878042643119487357726036294580070191479218483019057795922976984018743617824757053961231380335172956133812283206843078493946921552151714196385256135365022156763176523233025416684850787440044553434605460370637359980164910324615913257587802131854688936929504187607850428404191789760477654856402735796470930206054423020407760999452304434743123337302852473192147992513145580067154854786730589631759241394939676019511829938898942808055529243782300725480437659001688250545367610197091170489625468245914560503549068270576373604538060078829173001270899291840518502995786295151034448002636463217579841441958299003773074719385439277786675489502978947072539562677169427871183400908319659639268332183807765169222399013691111968287684994832155066571270212575651510695456818535390571146713280296785910729279633718500659972826792732589859073575465730193924711050236038306964046242230421088712265566762003142375088044113174915880412319700762918064741670396058457098619785596710812628326335384790062040234067453545728014413986317676479576497177179023340835547624339032919674976212785700877384939300333021103585984763554245903043507802784086388771339166409342557206240354995598587461813047182327389626162953985096628854752121312029132583046447243520190087127840372930816942309492738071451422728502827997754470267314382123943300606385673921931241819391397296424641105432112647130255274435651324195644913147045182086647809221871470901085665594049501060440904928485545839548983678820629194173205253262387493689461992587050607573038459101398801906610577267272124514107146152913749832832001120018710382592309246769125710108973669271893339303240641241902649028501502351506616532489423473759006466262340060851299775858105387615242685912234064221208179824648633791926715667742894253681194725717140659257117029170882006177808288605342526431218865353139816707118152838021956901289228544983053108813208741487345836699986399238967943111525449911134996996340678015023185335739110523079385358043460843922715983002402557238108072109558216051623298442936302158726613788721631933810339150828749913218331782353123345389367164847610518674888792032773371929106281847124673157668980366278266133972776309880060097041486040718601003647595827440037047993952411505282958802149426515055140309048409621580061402245420613169927439447164704331638400186136574049323211994716987957983616276105748016714497331358566906763349911359925409343469332960716643051191383179903713676528818465764471878123268015718136974042651537797425910799467836989783146101550079615363441341786180145447192972238288752133832789034850620277973604126025915504692988008135274352650604327508073200503363594584937293152692479067352811735620794234358192494459824224141335424823130458863048850037825912263164911910495730694303354274625648869558714269031353263424601761797206805596525663491365427896854995576079631747785370630858159995468616255622345862987985493113862800682626260367569524202696447291167334119938528736512612759231161806173322286424438215379474723068385184480088423603198200363658210489594717290545728948030543437591241522559731104758192125593557570830614454689906479671893330599958082887785747307203047141276688966300594128479824026467648164892873981074548292851202037206695873881740011184522549064594229604724259922285693749844550379655341280785178459936979507362960670434654893051983125059274613454164406970090350829113083974494854226875478970063138491462775578571244969791267605051859075792163861942756856404069339428259221731516640557929139260175632952342742941547849499795269786443748624640096510281606032161275258242071698749181667720989455067264887463347663677774185946954597348214569488940784891901940712890336089491218082863715623789915629882398813260902592339100047826222762270684395077877588926015494516846830660887563005929801896689118391491823334129505693612146098593884848012706532199606059234992387481124193809555750667615387770082978728500047589334719223435808989265277402337207095249513059818689724639610469461194207396704358055499429951798296783716366858544151701874060535171066644189470808860069315067884195369364414209290703178220139837707710248523303008437966423834885361674848291263928920378839871834354372783803760927429460112077428731786080671001175611138912803035177171029664841670192453910286365595705712973649780490373797421963070527691838854950294717291672518731993351845806556896087883032977418184841897722800966955810118964544672036789055132562645224020722086072540430564722667272337737117411904915091482288188354194432890919263220918864871823117742400926340046782670718113801543849370070265886500148018609004342161056818832307053320590794537469307162408702182043737697712939940913339294991150181387430263843708822481606026712388966626394808353600528900926619853836956983269111487552467615585838082527003059294514792424728240068483348284062939552620110953813890244657310461344446902613314039171762248655361207136995530689028785963729768123936685767285043974352713118697661670429943951590272544459844816950992837237704260952293372008341302841489756347240727050764319582559108707487493064953868292604822196894377291386005358666955815840086277233499243661873973127066215094553064476140492415790790017477214592470218692536020908373803269378324002517273521597108699412602043574660595386985052604474788865172935532045081887150889025066971327262259022534589530487392710639182123633761835460650192834308922649965319458097784865335551889389960575717786615337406702316007666371683547305783562383474125350192560326765651655916596472400493210439756172505444252670896252612760218669333191911720374206443913794093557408237623206366241453129510150615532133924269123051776652353360729257780170486513472398310831078806887528638422764610049672639482062501163255256592549151556278994451026383743311809921336061622038569912130271564582955802328753877608397468821212368663298019624952690568452716859120104921612736019954514465281778653982509063725821451943913381585225560160590819713117826727522005875237144547457605525454829438987657877522177921203111378989392088872556270955621783545184066397820824496596151175483817017357965787881788602239454875237001102779075255172191919131840086101529232396325970960427025183821386209001500303859760475377605501512517340408157394966181337625773318570255991269621550962588751723368972882442052977290213698405361847029835876798178144197855457119752374318237589007373864529516078554485960599683797607113990573387497497314768113774362601789096497647558547402459596157104986055863636632005849341671368234461697109595609208711424709719018786835842592427748009997669035366172580495902347587004946422826221586431172307206892239024105011077339266179196382307415176329335361315834251115909961737400946749206019570294084800337186235129985316617280040426938940942426031921895023632649095978089066273100933517307894394474819937152871904543901536969117273879430407224015440902842142189839882408405520860442099196900869647463077322229354931852249764650348062244237726965336019444388286243672900598654119577591485729766352035244680552611641124816208639389444850447300119756395392156424395805238461973827120925617413662561967183208543582415368692121908257907015825105159732641584256213539706003652292898620604292095556491477396937555931097970272859680840058965997364308976237483366163597415449793913594455093442265265346763262261864040473339219524783562785489533790074702344659626890837882803507197950441679604436568869773944523994781921319818911679372369772669942373986560815774050524139939110078401886686137384267102661618633729232782313008070058811898909662627633206004909977148817734754776731621859832353039548574128039552404484915297355250906338056191736415811276511018637908700333605217479990855169008841085263088004241398246387297357346152613421420985202090546752239593726082674175563879670812995179124937889846821242081168377516229065971193752626973791022723860746328808982298188236550459121312497624738856274297059417030963142727765139924341721720622047114406975900131679614759010275978673421174231071363810190482772829291056509265944703198272279733068135891654303370078748755916863421340004166440370168275252233683935923992878509711307943645329497577545806060055484175214470637384098862807092016442069789320703092262798526713586886656925920028617106745102193084299510477079887292980125488548466259913317250649627072204181928344296393553483955400062950120997894124480664789148393145865831876992611041723197447484651368402213842517098165709284560470302249718207943154547692340663718730483962098795024485107716072079948485333871667583786020766851602915700525676079076287221363241376780443178260151262688911162033953778376727872872027034672508523855697332549986070750784077748182149730120919921290764095645424091010015975814676543403022575979322264177159188884906198053385854514918713411063432815048336739912608036476750537490397836263327908642741714631192670272141423286555014998012830710269341255597203222243651643804880141712968565730142195040190533433429285012789550528271073595208731010308872068166275601690529135871712838986871174033349284749488282120567208233409194891016065546288119112182484055750311061700027811289674365772258683848169483042476818223346990137581522381120235377369286032793727687075355517297970245383941206512047781366686307882312923269542475222595025937495236797608008243085642525722603705214953362245292568263013397158241131548625996399353360633747564085098614775101981546661335959494807269781368964377484411846729159514977353398924389367924927402962049100173667880558530545704990960612161507972947848119566552991441758984529420164055817785033057995195765906755288743584942730737977538028185288349138903854760671543959943091016105995378137996133430405455552471472874511646447809717615713960109255531643802479587219204705970201104736765452792423642199087776792813904260958153670033767411165035341753883374732927150943048576016864392166694470213200517372168313906526374834790246690346939266074758481686542361077926417071904660562739067334594017599278042392158656457872260885268842223222127752235111440473686851465442249429627328695517999970631077471746214482787204401729131927351518345126433266877852601979086558156558414248671826026041145513704862547134061376025847908715481001505744580178974938894346501252721669698644532258645334828948474408595508088670381866031841974647351402607808134720444646281967535921979404441642891544195519450246130909146340163718650020548356309755482346003967881717224590924281219928405125479241343786975788226394229076313445348670941549886313591577151528030022034959272424969454108328563881582015782760156269915825272558763332557659776014952614553436658876861830725316337702580479046893246214830263869019510547692998297901105130059242666764918105764194009333370193181115405313212827717888655819543099322040533906706623123488199777416634471059221500030236555298022457248709022611226491046994728037841806481483048175003027402682770268948957231981943149541240210180155357485152794320561002353124114410134434019566528202071121852525138614806961172188128398250843315846973694944815049149001501578154565158368376348363942300811196031468352303981812403863237773890754033353284710131092478463537095726887324511500116574861528279629057134002597098159269835744534957333417535708402828825529899503408766986871713782253204391218635594705346870839404519002733953124731163220428364986332174993142704534175158116160952913130641603829963365202992830619620506023519627005920472348380789343739432826627679122617885320747045570242969202054343040361843413245816291343927061234120403900308864865162984601191985773024968549839088629457911733846148170358772316922517845405306793410924817656674145833451708633948897484314546335143307855995038216410505145897892267825895649402743088327702913460411753820393489420804214899443225464952305221301974944100536323852818924079674430063729241026528313409653301292691597471756394547852239063499668332455730912840851815045531593691319664101412617631820123454629203339401111933052999371142735633427835995843171060744729200357402136397609953241152842096303392662115253865864484387279800257015733907150339110682542435232355502285871632972846501259575648398848210264509543024428929021295072711969524475123775546266934988714503014564044705600907589314129347538785583548587724021439742060439594676079856558146847545058148888172879554265724834711385331364361289962179928188647244480581037101991986895294044508826594739202809551331184889489778290268372354643928147950647528606376450700343325103859961046879639992796909043766330972224796261989108899728752306611846856801454194481465654030260853836922698547974907554008429485227673682328215385686856214573225913270060247365955322662730704309339692465160600895278068483893036738319911055368974388715325471538658368556686591078036976255791349696931495118623825853503217046813544382624489888671779136943058842761305076555876623109919362399488463247630054983137005872141209611221390881572878058165924781727971748379424459451983574233010892512456373663372088157896862355270551214722575099506376269607965826962943003369382955826871525279773956658449933166120515752950080751588934794054117387555976347109074180595648355248397627761630656343156693957965746453435496178241466050351473347631159872176630021179954345168321993097858681366317205543097155726256158579874373857669268174107068353920162269616889626674806370337120368866936576842065833174971577434091889669197963675712838550299876244683345675209284003255251127230388159303407805235177140973089506455675000844017964025729840740423168851127993068006992200189207369435064371472989265196552627921961423439584223799951065610395484140717368183194113204854542514094903188061716989637360491569834438765519147497389815744655227097646554777741063957043412376196912331738002557923898584461005716242425325023408383197032253642505061406613710961977051432107299606331188139755878872798388575794671331187379792558220826557934996578674486965205848529986569075132758029463634866820627961137215163977291314542530991150341360894699298403039487798156738866377357134360323977934366999977005758305261163999454520210562234480630437219600456104327006712514110075620839988421196277917504734451907638567389699694503646327004513034547172521165498547534843129154141108051404211294203936150890836657709165123659920001487303649919213169171717005686305633975282988057317455912178041721924774287786562160312295311410818480554079368918245101572816243772929061731517774611184707135888875751076394425183871457262751359313593210076896459252257039353786612162645365437587054358895718120102933509538334667237274407402118922368647929007930980478808720152558784346139906288328487179972906202824732990737244569476409823491484951423382230792178284646450209181636445923290902964815166401592035000047495472193288083063770092653805378642588677390361309369148397127932871987756851830298780869714105885437274713133417232993272569072161987531378334999525878099474839349378953435423451087984706660242807474103132818447331448479007125716716708653888940350572247811709058985350469019681629684969598130049039000682441366164593666617440869400675364004205334468311092716861521047773558429420180909622232901547844680801173362646918894315882900017966276091322660762982660171330352409565860058108510303633256988422725566835735623144074646484419283337850654782555091078343313240559559909760284191964439735516281736368274299674891417642762474800136504952530362510603086452996203815397599018115160136532452328242647668865608912619412120323916432239770233244263659704610568248781754022277113890995446102926519252960811117359563859382592692815890934940090446217078288338629102312299018305315341941825888744008158830746044765836357250796348610500381116803093956015711554713231408696117608128072652777590429603823837533728080448826969329338118732618822428930276141126383915972759766453195858230422716800664509852497146440049744544674251540410343300300746478260054775590693474499375370481504056731929732725055201712955668475606518863098035850465899470120215648838477000599953523197329918086922260272019205074604814664510518121087030656731763478282795794503619736280088286976520915026852493332533139272732752048426748775103507395605932660671104701178594017710708128272212948110574097605419735716739999574523426760804315718847257247782619658524589377082774408306310019871753555631337874896718860245468939098242540880008935056289943404840969041129757461819206470556587415051853703732435187265323142673963511668673640595354466226755112348027220130191303956299880018158551358324041183033063794643047881785058207194989508212597269213925321050419333065996714245416622197185710166523354336711349185849587849326108803267317388338984922448697050089273459974706279860848451412664069180185459964491652203325338662471354717879175282609223284877557452014176655456647730290188507269717435727674668388277783070442412689082810074163612776707596663709325225134874850085114697209577031128691145683792858573022128544942173503820302781156077191892862047878777520804131981729968193399459511342800648686430651213949561030730342442912725206065232640798181686165027003341685969446283546159539583752222280995879504046308824076572297013463714714491843799144383086869597372153203027350441539455369616189622275046789941749444351134266470510448598931425024250675407164989662702771235710568616696951493877783379424323051663935662216520270637919921771624546211080435765435805161227483395263318570122785363977996148486536702049086721000612616391133035698094510599790365038595294558329877218247560612936481014908445418811844466013915224251469077558058875885248966029824615611242067189431635801721682874712637884222483489384255317190504751205444032279143088498521762711878901222671195312418011098466016492698741527838859477091493678336637422927515234339466997011370474190851682031972366292440796211471959390203461009922927827090112754499812408609715496442066669892458450095802948770531895937785883435547240465608626447426045718493681169629217021002502769199538057551977979561460151444218716073879206128443435662427808763064567551288256178942598086803517421865079146723672920687564259701149430786918608726680985736595462105604380803711562949017257038353222825965693671899422451420429524795814066940562673870080375187099612174025976151690509587826445217539744383736005296900761759982508735907653818917359756168836696507555024960291967544158071129662656896638505431951114263367121175970650755018804145916201131084250153133517995254886885404088933490159844820915028073513164116645247737006914456051594297573472027264864999283801027704863082416035787459289743183161136142895651030976138357072312758783001707929134671357516028521485609377562392246453299649926086231960645113646180443493585393544734196357537574773806660633238604477453755793030384644175247630316682140181176722230801202133035092545626914986164180704620108844155715178471775675947853842887815381128974749150330704815484650212443763559621279330587096374756179677039110119600780291379337495976315509776895869967587348112941801270648920177040981223547018102857704443658280886495935478080145053403454066104201998677029466683436016745296950242690313489694340672548569509504221775218010212614064508091491095986515931613879591968031992840889331643189146256508352428032516306007675560792527532773866053700923806167506887567651362887196718200170932509665139997264388119337782203133678078478817422647675817773172772162234316155605368693400041109151199823266539357083716477768004978794577450775882040082514631958343771746794530666849227239237528674638005341144921522470907697021616602184230976938234769487635281808643383708770657080150144971129299265465369597034824515978417323382927923703059120862735414279747220706619312270461645407219842936236701247098711757791494576569389791238076713732728714462929828224942914663594853553301042074804941347169819881003310067429668773928957763756290003691087809977228882649565289962262947378595569357925477252176859029471603825774964318031798467032594067098347770168711477506616787740403256855046063293020888131530077358079278411703322649722638460726640915359838897287711542234330287001153096270182858602700325994432873669495673617650613624194044823741863106852710144893719951600833417980798671724739709547138068762305517238857970556710373002020668982215512265303193376182466257141142633660854390263250901196277869582450409196209662135263240868334514388227507149960169717930923203221718352461903756842856339910189601377774255102489969907368718039002555706704427779996682035713498478232455609471414237711117274430099661122143285144717851291982518069277758157723011021375450564310702091785231056046028679926570440452486483225771062822384005861721152313642662885805585870602392497544491760079298657205593546340500245075874973020796340280422013974411766642189245451198676820602914337275896931158302398191185459038065575713419421999130243898980184919897186354743680054590754659042429924581372853388102916695713315136682505423198037673708365892419490443504999216750817488663163175314373861884328706565809595356698443358853830628190872469291791217026657832118178867110339302651605443235441689520394669666896561913128381410922247744845780609665116914770420181074733062438397321656747221639042757693967102422708741980110818387840697752947018192399146192734659747117912887882770269113580184483011923974793916491939929814872850829111380913497146185478101085849016337769374381033390393259911588921232841883258901147214284353209139266135624290605109004663955225549973350226808951047838811541303143690220979394518798217228733139616865989753453809767815391531487321626978572363761081311579935106234483132472888520050935116412032908389422075982735100638251119544489742552382705932682485836127378486617162148007465748223627755446305692122917934156876022050283719981907751335138017448623590074112715908576358201836359062200787941005880832146114274977310327999783504726703767228054359288023470562248380962911004184445042540717974900435753003836768877090184419741680535853748475492014685227354375091332506971714086752865533579471958770172187522567128731041374998641146711059953535300351493193971381071104948659257094229035505098246094873746321226633784801851634805149553472965957215401831941130797511735224687056135235730271732179474117181778860072635916348023050638459651097078784192731205903534276371539399774195064092771228671954580781672854237800735812557953691555272016691327945034262848619651539662981970330791218182112620869475487248959968025728574051176058018283420215272521984529304837553923616224414432533082167774285677072567614697842652368723315957641536200138912630243522959973364327395488232223743160250999255660990706821953639632135559032103931114600526655755213003265343441883633420007729065588262889790442448693215560741048137033905373570096847345111539391988996238224035935590963330473412062636238456312203153495115937638130653881908514987403059220486596402330821114243760416124977033370755277536667401057730469382796228021830459424633767546000797897678314969776830806113749467062544083558237685806049894974523723258924556770351859842057089858366978676219761075789506621105806180484377727749035408887332966601020137252649835682013666104149663855157053329288010436672872524059703694565266858000943283715486193049469789841516901171682750842123916734761580220559941826071647634092848856352357726887643586119001325476058724472005211505466675713893993067278037091832621976297101827259669039270671507171179833699826949724468511418291512105713975967561016462244175650426939647725924994464731945650790621657833279568289615192071957808227480038143004098226185551415948802132273802561450615528892869608349484699106942562757848740759652510858103518935941557135887304331227577335073033303713237780934288171054479764150194752348791442643450112300277977360318394955570495129896342217372183458671275212557444432175714253207650110594990060418527140177163190950645028055745603669938954023116777537734457249652509816371791372003461921007315057534081596739380575413990222545979653723613402891151467169847941328109541636162146871429015292794858779576360725847125783186888756560904894376273813162602591698381311268253158356730759602770715108042117895938091102497861517598270375896254876674612684899971951053491417352421458905111518372471283049110313750859255995917260632517162699710940521963475980066934381198703672139713030142575668114651346586284806616685657348943249830986412000636248480245859996658711200901096199913858096667727058976637837027174774458076790724009218636940539823048588811295015526595126079961705358343748488984178183767735234339875384857864304019406773797390442539669408542356674828194047409664325464669744346940504410031925431390454285887097492185487652024594144756740634491106494939812810378148544592352318261496806990889942363653845763795730452396651133619746232397325553140008827660491582942571138428040463283231339800694831579625315456959344501898706154222890501362855132687073939023161647209045036474958654477553461293951073334571175209300519661409700123530314357953722863685880265290737304715311385190177017946716109566373223161978189761523111075509486007262144647120474439071226823810256573712560001930306886080414828854572455573695484570647850760540776558662567557181652445119768386737280794893396136243224877006691412330670903145199457310363379448007162674848155739261154253838536870206719435305912387591676199164102854086385536463045836788977996638913226286930551112639700612211634610466518057630248021758197524911127826061782434582342336813001425674109913241567757699177242844574319557375287554900921617542327980741629747446781043284919590878570245735978190287284042778686000994727012372725102953839153963588904784141738939646705217402854573307656113474346971456343126742793665473854095542111254150636132294467287351264826742506635814956411550105913232951239382376352864918256902156876553271779930569790389476528838129898283328882680401195159009968697567138154027643671361399548610637783458917980014631669560701663956203257736634831625510887772124043286038724247276852358051684167956393360656508918848917756314015531104648302955397987802123826616424036523609362202510861261018353741672910648949179424033700263212839074720419898313311395056007901154897510469946327856613871956404935395503464598217754050647749561508989238553846608897800648144394627537261409525105476043198996757441177624747525982544960842614252392679314667694656048154775300195722068113006602476412832606894041092635144348657950532886218579286273067148029417130380772771427943623041478207759531420944905224499698417046443332446885997152330524217381899925890791310077103848830050606217729017357787014395769268213373304567783898668089851275625624020956349799272656344455706640566156353463296476941535205276942591077731373235439720933031929069044292855329954535338795448048949060412978497395407777507601199531363552184671842163755277990015685667575391613255861160999698818130078672048904356326745715464778139663246862305123039591493274333878522717880040534269478919077199618277979572551790790277446233549487393658511835937570493487478184328222630182062024128983030233732543177009417880643402026351970523385174497830138383653025857236862141554330811935847406455302195600080352252266974180777311534273158663846639968466908541215105049818249130788951442804425121745521898048946150170325653066493967613458100095841885249427232482301626476475307064837399955022179508642278733635482480869918908286124179136003404817124387164260929765886105151501151459302234154642877956344334713000748083103047156546927850672638936906494299724818830875551278613947501071597165627217033068976688731233123078759364397958482074509740743221096370298171729757951914014056640732243478165254198023015622205293084379730566797540590630920384959594145001354954846030815223814497171131958098810915740799069657773214870033825407660421216656285421640988118685483213423138365307204416550219215464390633453824760854616420237493969777714341103493340001018459636212345137416435156259145962749831335872464756467540096507715000121667730383407138715913756942642600915233615829785957904844425341898992746856805759032790392681945207593502314576253041518754546168966523682740723641149164707446734964002741979863139902530228266664498704712035970568544896213145193804104893651497270030390174550911310141861875964347699070262480952652374154970288804899108632783156266010996037274323206914097258454275320448238661174148672184025660820729278524240467177981562168900343290435923392608722078962836266481920352727620837715743988348548938384808652794512919883333659936244698913005855053716846475216524875572442219196427950640869901397564919235226647966373255290203384798662900798955800077753705148798155825080454845139797026456846138587715317738260806424553057032062693246723007260582168811203657919707535408137013548536856782794159060310741829667362595681716771846900824492236300846702945631991988164608900541742347570700593079134067961867528852253679487505658753647721137017288264823093310603541640797366342010730322746165525356847699561011501850733941368489138907836226874874395827394187096042813724136401905879740564870831943231221898634952023377274006309833302313122350925455086214508052861871414339475159730357771849592318084000954140949593744535072106108140175132183292013722665554790489447768631131436535562789112872172032267937547047685549495880292749793040752798612622778515607831772485249923431572599586933044224447966772793680704944020934098893275518113331195600267377278257067691574617540780562557810933335957095403201415381818473158944072778104846789100294033749672579442442687894180777132861574504577861872577493866257206005278519317750089350422554669930096422718851648861155855763388643615923615079018009961105932229764873029095209125528807685204084077622429588093552712684091113001525393991369899732856089258375253268704006948716426771156952723399458782665263038326654598316884554070297494574336561186399033977267039010242808492627791754593526479382377426524241903508089155881179780675045907403345634981521980694683978016297022918945558226526877876286137902419980795545906377565257250426120045365864971471813179592614040247716070363256916630547825811835763386511929791884595957246252819345259706096722905503466126611330890589424731838490745001517693998003041280803970573611817331477603218928518393953736446454574797939127841041612421700201976583478073733599708261176124739755011141960757561717473936223112182883021139035210034976093668027316854439736057859506854617602509830145917542028737482482061692268292549988118550202093075275599774364623403088372389776056919595575359180396479612907226510847909980099176896307956726590517949370261548169896470679053610352563439122791898670648612633358823932565124479724439171565167900401968424860804140571447782340010195077614249214341180615799963326178061751867899572714994238170319318608567829541849123427468716083014019307436785795339099254488198048633189318217082685321662491771834907704575832782637630533833287269499096663384570813700841158878787021378742502159819026421146873417074791521428056380996309185923926474927723587846360770479223070983716763820189953886595820853011373731669443616850707568792015334404637836157947657954205808166890945796214394609978056616474798974639007559454819187735985651121887842502367894847220325414127374810563132921120665721051110211726126001886386452088941910908458563105539286750190203021324196354122442742381670724730655844209873789451166213201797452664048147018598924122882466996306213616662901219206478107211417474749123636260403883202314582209391506606103201486959644277955449148218541036412115587341735220713224419314814596421150353671414984397820409252661145522910922073065759867827660038730759773694978384353678154685259469259513460805791350905967476975416675765520569323068328019875845364689915763310639121014570378509595041572403189299119356195555286414776396094264232444976076347409277921535909228343186661355499576023485241903492938749019911272208213033348673814621832291466986256340211226993060773704212276027413702822840803073252384767014222530708394216109541171163904544945745515753387260703358892322335724817103148371246980783918559120131359510745685194646143710464291578846616206256312942533008412830977136558184880546206689556994065691014948336276957035738197136186614131893102358977354138664522497422767538020041997571701436992057993764925314181112297512699469864225542471080788216070773111870182685543560446806192363016513347348708031103560732033161819951508850238792482648328818455940453000146439790599786895215345537014533228140840107579527632565427009673252277850754973597558291834248144947024045389388521624426326522998562368522578417396132683011088794247354209102808285381143215879359715964991737818819054337432492011132402938602686808684007379939365858100434264312587419459199706065374237523219301880610700879087558451554391696921806479485827514560426274688392547112784725499067727452022478517741387572427758041053125590423489901031316632412558978238108690797954313079480408616635055107069328570345161811437500171276541388023565788459714657968200312280449976879789621219081615243146222793290146913156207886126504386847747789575190812760654133679422715843839105471933272566739113887568736759649176328146841313304884162131768648834968555819708651876392881392524442257228925664692708409056569228617929999387639851617619414716262691738210234300630046487576432622172044475285197735938231854487680396178634311416523327735929966018453746228055040450585735492052363900994320571369208182227978191438251682461523799959356142443852331242331785599185971533263503381430264527520633188708362745588166465694835822893989710786080404281936607910306789797927547411057398382045440670635813824679572737305568496896767189867212641316888822192152657393846185746981312499925326025304784600735328875791569750864342371463616630163019728993726734051295740269633007588242221654561723638869011619161061769371240602612062821605044863611725193467331138407825392207707525858102029540090200648212497993840057495800794474404346639596459096389516938727100784824684634895271240678722343275920306785966824317480289882774229650811273084160308344860052591690923372420583216640611768208534946057685476902510956382064465702295969334619293708821379283471295503203209950205628144380571441579368033044525569453104666896141566676695777181156409773034472755636690848198446383367994580013005254818171797416513563134706299581477217534644157560472617275248794245393252858037009330511649096779649803633404975130008563736469942651224956201635908443419468814484586502221368688474104608553544709310329029140183241823156081782309399584523433699631698061356690959490374283798381263627045376027237477983104896485781058744548058522712080248736674368687551918010234027953317266948016332367268151073890503256178942790234321735821342561886005915342897233319237035496248781397331138559331514547766901743869762633411312435780541508338812390995887443183001312066696412488904135831604926181737680080998406493768973444590260233895619398011292004835208409796053352618771428033282846716038764035137367167296885360034939722520667937731071121347408965078190234948887944061250954990243563917853676871033533999120919431387991325178476253924278941492405689124490549540921101140688512805525293965935227825463541024136757265062011033037428407737071079810702347981209623822761915849144591442020280148028139731005073502998944035304329924603270548333615556412959933353159813573176278481315178884365843453280007148528477474512508280652053874022585543532703157829830327885888593043473854891314428485851098826788000788260440166994860973737539002132349799340825399208788568707333567182933347797195408219544594233226691097492040441812746874521237600379535196133839108631732395888980080832066371929650036910027052947100936534079923686231217366060286360937569447166088611085455214553592600465605125585222320453325717663943127525678162364796109048027119954930109714454521243151987772728951410742811965739134281778027502347094129215176240182038535031716049789076890817289689951707993200179167704090044072337219923934731423359715710426252344872753794179492695322814283215700720749254611622362700075497371474129288111684359811954582558293848300838382711896214779870400686960471392792220282490549733074235797359576476054184604598014130415075816233923948589755963204038902382312559199225523350653636532727472035529441532384177626337859364598459696729694636058487940292066466805099087259199618677360982265040206915892831673834210704591496654768340474552009011583230269223884080076278896405825035056934867834135081501877564918929576245028050080336049727611369083879785242062810086120858671204765567914876942260425914775394003250451298296069848940720969877504995545121488386211737543677059855185465440466276703015819812176998931607105014235893893822242258180469196159453440841030458800850803909411656481819662113803946685919038809099260418319866243026433870602197766955419367468649196129712906741424778140952042682389680236995821828618675761077788492624564223892151051197584889449357601761606325756929787540220815076203612233409826923941942180853231367649928053353704214471719246087842289272624268514621058221007269449475751533924169580193628274147963594908111777670890376520212803707916019525560221585928794023298246368335395398430690484960052987440204046208963175962254536510710675596969087514753097205851783430737111821587847215703076778111233173809817311895806029456797876946965790844937154649435088218842498942343979423550849683882498461041372172437581480082497796920845328308096394714755879371101371613368146701155954397039209456257976678214745644623978892915953997277700488295544364625785615205020504198656684993819871661172697066098508137996422851382053965631232207296473945191486262106222173193227668417769756259373100117567143727561859204936515152917679252917396852342707982585578904156326273632422499780953459944978549286819799905593221565578475731337814929472940996362279391812991196701818878287558418145544496694805309704292190094072680190650903704324687888295900489224736149520049313332246752169614785812536807717044909546427206121623364277948279541752167178999852043623314803847321174837300914432655607939904699749971651323366806602515858449076657247171536724332415791478020830796604760916192404425356211819452427507867422920683448021844455622597805014775626373461137978674984389991709777104462589897208964620058330434702882613313687818378990132558976759170117268876256628556065019127764060007887063951140199252700723852811972364812725908188303270367274703062742170419896880051742328776339328546699713595027907071080691086483147154886095750036057900626589029878321163101164224022360405965192370189917208093908616841380621909734843417013964777417653447202027487231314657709711459935388802359511663844959167260928802220129751354290506408995474781562085012374581752895539755078354812383356221763001725390196712744455730708070244488552129214577592858299223455268496642913950119400447013728893231600775612454139210499185193032070637560607603453618830026760250610498968539260980650572557924506944175056646550473375320380186262006742748099712966500775658289179156082925823682399934220558154195158563819651421523503617250406431551757759605575560315030462475914297399167938685043163604655982091894569343429271868688154489650778993995932702730545288254915264719372739990716263941163813791160336484534166427308080464455866173774351226233139618095802859232660184771751066215397201166895956930193004741762319263333223119307991312079967126517332197793854161037211148149630388009298406241793634592510727775110966763623122956372292909019213482257406266827424502909703483769239239008232852108724798564582401184054831948387997984825961294521252376854344574153603540524587287100702967921012339861482835344104398764025168173001805171554431290852803428045734360001417651349320567610373031134498207876572996933675031853763143299602027972899327781755085499278095383786301930943153047433935631965690199421423957465559324967577884824252871183320932289373043858237400533031681078631698501585752587129924645602531327414633001953204483691924194408408161570494473197016168027294108349590825847272212318113277760820578337040144096257411332325572885424958036891957752305946708998617573298429104595961046283884810632733410885632787254475539848354820105358835714381210544561419606730332324728724908525826149752567780529873135541106814995817029181032329046567194303905356126657993106761760800661901076804508809919676008637648784855422637693141768417812845562958476633236187528495793640430382495703964444688340345893381766709281873344086885212885800596885905073602339622863791080397920645947200105167831461617989941648938152319902873457675742065860914506971009747848760682030976460108309605775257985253617085909467957263880944409614053440492704638177395688676678683056482963692750970257607275592042979372354047204304042167442224096643059169276501297749047178779017461209120982867219085384722550642095752723163978363354222072462124788380985041354357115438312299477427188179288142026910066051152873541068642734503959417000527659515591158568877090107007739396742766163614992006692006627085433032724532602902337497641232707988730733059600605428436844162150977331017822020035073727522579061597931017226227807812063081299918515352816740879452332854620837865970900360569273741586628238160212729518578049239539613827541983535231200187652647353296450581988098188123352073273535220357513413458356424280136494099158289005450638791073466737749315296915544391157767503388250742027972332418700249627442680230432247428621379663422380616672433828212503619977233470779074101455106776492574324218235646639360616296531712752801693703561626151572866028188752388785151697648987022151129940310430247930163088924359588963672375706630046916860247016458266651881377292766888383249855470326820582242496118057537495743164954735702431678352893401174402168644889226662487326209171487976507503369845515761276108931176893170765790616095253897011960026969355491952722448574922774559851460974669802188223334855157313644730574750761362653506200779710332067369820047496707092463701600327122424849197913297937622680880217221507357976472771571239573144318771906055870574401347128333001281165799878508208698116759469512653149743690675491645997684357735594014759931653499450691979927057481031291753636124544349301574941460414852199477125423336124458498650959049227148514469773019801367272938713207546771462898452442063677914179583066067011309263333045737810732789100525032666979333741586813064854716424237640108394414819838073719744340598103365195174673126254303618659835103053873176533145700117267297134740806801111106532473422014588530674198330303410879350156913334917944103776056793522746125300090584095324377598508474252144379826097379958834001013915597510389365883230298989189713595636693693687347060234515957443669717211587354322580224772365572427785353985432205945338982669779594441823601909895083251113642569756962859938876058928954153258559578745174494892285099321155995714219663640835200083607313014783726186400889706640722305526110631357624809791376468119167811705697320613982253637946450294230317915820866128584042911001782073428667491772603030918354313386139974963443822932578391884829035597075392129397987867149009336205608781326571481783403982542847788324064912035215059149292713972492665073882412371265753992874713385000489506425953734268570085867933865459813077614291757653187853740523304839645352183042034084235376604972103021217460622653639038911417096413581836276892881833883727606234164883730441259501180511179803273881847533023194784643406195841096144132408314703186333214254424389814550275917200388565789323610795168666553787596836909630725153173335765501218521956300165611412614638363005942924175882588922194621366597143555067446829896293941179605102174042936825894537709856302733180729833022255409425451780415485653964953711327440673365709134634499722457337339801346300660445418054224252326964988964576373895170962613774255775493796183141144718615278632347716718916827254154548955931663751678985319975856843073910652584645670800335860315998654868980393382946571727608693623528243023142171066200246507717126434748107276592105674203792396439522743851822999463309536796801905755385567825311432071602629741813221401252463224138114957237677572497408757999204875541821819969482645795935483469542311088458385209703024183454353597994459227314530226206247890562477748717568957045862257659739747786840824607522409257888893487703016687224264011746956702987937930487798593860727740132133654643736093889298706096226338294008092056199006003783862955828513452264491585611587505507924256087167050008639137646679738040225470222206775263182268758096131684745849571495300460037275198140293577820649131119230211207939227940037958017430441342205216420135489325771994481325908577722657959753601873190982040944376284673647641271143977051997150130361073265259486242479375347224727425998467301168525839565864206831315986872829831441769329055613583376926719614907291877906034692764709439399635258178075767319875270468970128509798243278339476642407726455593954017554879547681640239802225741450393936080972789540694065663259773932928778618983733457771740512867462298746885905665458705130461455865310239595045981085139044820793472980540161215515223670427530356150482216909046857228562451851923189953796469447305997719544610595342541056926928351882352121158954347585227656413138467155745318301609631978292019308543833335795652816914831491518240453923914689454387153131917207202378166013909987895065814397796329175680151565905434180433234820241980675398607325417877258737464483489129902601568429001502613013678771051861137439841893012326388478649861702087112783129870254849506262087885572981898245291397770323589368185051733029549290596138309120286998732857575673132072251457811529274601087849909041482904636668025663860664968212325926926773647594595512136626901507547819824679943262637985004625585589786773526507861510101383944395777159826118622849555413414111045511125134499333854195361544484968088612738367565633531032830820866226993849905872066293070204038252066442420637054961713706702124792401822067998069389578009179551879045437346950346065203557236772073268620638234606894627892503027584618852641291263879585679840607984190131618173954452190771355094969371010929868804681167731074148000709352953721286942195661598672708951405303777694909265787833919849541753223533532556924226399316789165238370840799520773294643900008278653455368095850401812983097877754486962804710418607467099538463439803197337466856681299998456932102059418556342470570339272909840791735968184270300939159387854642790395066870280767532290441037991310463823058380617306839719943010322575235163503009687903957632496956058072007647211450509290831965595513842432603542966809077279116657312888473260796229376676426923279418699827365449699510723347726663089582597508635664838957275811963113643937922923492500519994098669746612930585358188013042155442353711331150242657727088068915905111153826390678278510378822865353824814817945744565716504892558522392053010403699347969644425309653599888733633565517925295020054512176201839318228481791826754934352076727769135326492081955994299739338114037986431192956071159991934776271609523858630904509102544078995711410941208067685118936337099870552556874374365551454936049304757977483418895705134886861790661299793293502498299905668822528688460572182756702765087589719520542060983797878321262966077243917928142768608774970726485700727697316448448174599061177001545695136421172696620928210108115384267061147520005973962659139081050380785678377085190388099795248836321409019283748879329448465079105447132609416529824413917064208516856434540544972688333371769728839628108418067757583457976796451872758438266725819905814552141190985504015486529301178989158678310320640722751783428978560421505197424092608607869733093005090284337095551601280115321732626702962235651990402546117965357504124351687458554995566870821534600840983734627077051147912376324165164533162573855472766677511360226714286735661196569287126532783449822549949865599049946122037240674650745162409167014518368085832362436145825408168260300109436859140176673060013319892769562030246614647135268350243087908039785077438073097081784183245737854754877479629457494283640260393615580129468587867173397035584183499880674750688730108714565052326585291199183793308382762003588171837417010178929148322302217114194050127150153601319231697015034517094924394453016040614479271363775257176362330972912621389360953343934223226659245841418843910629161009859924754690130845127219618358748838575337048301549462979514042799380731232357591188352574021778822800674239586571611986290843141001470398917168144044947932442458848677506246400756982277297565514837152616883808091859983718289384561165909730365446648107485015297100286544504061535686113798709526925955477827832693187096495807284582560655821290655055887177167801731667196151388657642990615734749232761935305687965866740723301316481258415105614258327954092306227274117748859060852987455557792122781460023927003855225553206502319986474217741801086952288072718144304990392442422431600978665565471986513732388910069716322629570629868316121219802444270154008350595282899491363787788203280857148185777624845443340001116749485207545448349688147965710723785636063676112567116694933133858521870128844319983063133015724361088627655477957419428492548655818777026119099085677052268691915307107209406003251829956278619007803884874004795128894821718495129456632307546908697423036592361729934603336593977805789143302254045053670726504267702205975795864173649166200031157660715902389859339848892081144599977349598399510175155835383670812844999313493913966482792880136748653303428325519107131648762188539608413966210524908551779234701455281576369891727158593166840222910561057115258894512959945249335685081104959731439315158388116940106902491549494211631174791880753718679287564287920071007906356538792494599219130428227769608541541384159317661522339095521688791721168488485434058971136768411799644131720542691529795693733936477357363159205205483594555078037356168279661685462603115552874722171915890991419956563697701948619284059788736768923181434473396492592045511923701530773914926206150925450695680826565602862841974293626290849259631178628093245213254712007151362226713097507511534294477271266196846567075942458471096566363064612100903770982898376291167231927623758462238737653670059399085946803298317229863617174938258158189772849428748728334246298843189670679892461629050570348922737231849035426262073336445717365943747162879416273385731660189619162326489488878939753098406938213441130052864309914293645518476963104923927323913456489390416753761476522912452955741231556548529463261517479604866842837910799769820433459799710718562305926841068784818221032825973183516243332930966904308357911069973213613500039375208964856336717978131721008185973924654047505690301960295637851602690977012292623635557019953906288689714936586283926223924125601653945740736823532016784431955218166295726137512110234134113060845384703917033895312434702279938923016660552608589047328416139582527334384698265433489268327989961977181146380584114129818774955799983123834513971503222138970600921966954736864224243081294057185862687237354725689527057170238134365980489847299531854603737869018639919028833945133350852772050370548974817816864041781979077289578962269781634524241792165050119062516805935544873821899696742892051144523994202818141297115864129821625672878958247371794352136505960490569472811987903250804365309294211282416819980629540290782724206810634563130394226404281864098504347989271319029711805127526008690713888325040466101588570564776210228314777508520605482627059554377245572042104997796947688008661609283761984539435602378030328655477926346156276765885790093800025699435425433459991992289015223868321010006170130595503240945555841619065602581292419524222038291888281868067742497558072315151882747927421671144600874974161636405716731916349705877454842479427919107789002328191497383883026003777307157814839847443291742529390802948832306564597254431836425722462367021498511769877321210417433645965258223374649926505659123880105222398242502139705332810595433818239417143261911944835191017601410083485729593335847239663225130850703661517479386441600541076297929651394395592998611430654277532309018762287885568247423674751584187801710525185437752104708109295416174079504465837412520248853134942296256471605254326649359459320318994151715661988197650146193202499966663504174848088306803370802935022689950687855690993352966277130304646333839732447530774362582756043819987913467337987039788940389998763912516890186917330483198783046777637821250305328623225207576229506458225800932879718275370773140461480214157467111233073801595321592385175993122639690755600445917183156109677893115877610257763689887445954983295349088821657071179830445208273878014980994776754615390730119275782767280508837397960418774671955683499670325416703951844545352747356942077768265066400645956436600318179873702176955853678420244468131590801279276040405173590378427701103823237717986869810252569590302593594715757835380343859368710837019180737654849713208368052144565798052979420872125062463382262442385158295077799597511206606910635536233764175398993734909840273387408442846995187731359063393790061715171589490026447233441194397330837742165508897972982357468268366526345610185562515295659257447260229129874616988541207537504571417747157801143072558961719779610048192209457718902185406236777026796798447101159972625011125528789147986738233790593961676241965999914697441491102936095152722203554733700271095288203870256356912885719144545234413960057205126585280519916723343439735498159420368104448841242518017962844774384810483530732959552526044448888259795929059891963763817991408275775645134325798436105871861029595811254884544528511001597607480515417187707963906704439813371209471530840461953175797679415754928037484966404761325508861161377838189956395309222299736717098877887343730005869126142595685488697326904722366792896910331956588483296689429481824173870847638241534437395988545881262050859032558070996700764615242442607699562303991462783453181562542142163798545831655722977910703385672201043312752059830064915859183513172674203190182214916475237383794695049665457683723712766887569545908987333062341304334451870215802392846267940506185518409063691702307658351794185873417870150154269325955191060617505202655328493068566914392599934980784931086443466448954554799587449569439470447377336917247198190143038735046883851865667127894734342054416859113239186511684381706373099063437706809591013580112675268498324814044148321854520402802772417428080701629004221512142426527001054603203535167735706944415180137975782286887824526791652913053302181639725587404340761203684290703978559664354341986268331646511417939336431086280421967600451306787605853174170720553455728468944354827528727962183557061351390008259711924531857607935709875345353293102854640364149254334989413623974608295617547252419289908682734647582341852049977665012092929407972291794604170638695600796080589736321247080949518298949723970370752788393107528169345685820399567538234991584655211944145298668153467578729644194246488423029326028046285488579685202116379155464507062362354488620529467862895776338097969597950245373965764564157741119553202569108365093003908088240771448112850933027072046754740713050035374434511372752569535426817883393830788715391268684618239246267394307736389436622801175059228948258800401011365300759500265371092947915934405327459218786017009396139653367072138711526683159135284515215030093714044745538215326693651536396869463559947427636738723391766877473404847484234016618613732341265438653832482276223160836442833777709409823396373640417192363653516092571243335398705280927284110859817878094257670783922767845841596062253928306763003540909264284222044527380140550486246987279500781524139828181415673640504097098520246850354475445162163991309071709824621287157021237388677362503887456098532711464348281312393777217247400037383649631577944149245932215570113725199766795201911404993505535988888403855432386925626101813814910862878325111736211142261267030791657701371349986961063658885483766993505842450104460363249865097198983160632985243194004630509079707365267569928045970551469088631934093044476092400148336202903259554308754037911289306544168820430524938871845592045506999621222088420876577257871942855014054946955529567011414313155666777309278133354294436314833737265953332923419465905867097278568271493238831511530226795472257354026516085474724102611146937983203223936172693091920666058724998234758051230339496209941692260518641112161454309866552097918686225105475498480530713264300132393450303051972844242453280048504722139972487986265442836679950816779189067488195135676208558501109508290516664569038158828763633488088720528433806864024555397953472535850527849959717694580609392682702052860310574152783617935768668831947808307546597859157172769407659146914351536697929224202077446570297829111048300306479868375775694208722180826212741271668108515872686561047857813929535218405249547860871906540873268144749913003337259888453304889568497706655108887571452606580446727770674165491137374445135366452710873983908113616892201497887601397183380228131567047244931060475665474468235235762757247658298271104747898819958822872938648705515941051673486729193110450135143268028855749923327270972034728390404302806031638454615266688096894508990378732704422055598515366553963655430097758418277078471798890634038302188339641619621185983419653027285535346075846041126837924863208350233708011469486355532094770296309338152590785981912909838373401157996059423423826949028233288236552321683721496135331295783004153447956087186516437639498910321561046480354206273997226105378776436044286584772345612887093232954545787888849919844228931290355903718280875730771469172207097073413832541560049553860603236059890913283213092056859688752293126608649965269594157246255868496678459801947088329166375244456228556681033103867304303347966100089168698551763614677810407210803983383463896030952404675306782631236177219147709553620942026500141928504230718111938139847653079369213821711721396232206252914041664348543006273624809341246531176502280695089073663621054517244297707061952522111974374432065856748911167155717077214832058031690501616785115389154231456794913039524348333135179147041882331871513307567351956947694898606867410401505059754758682507700457827923587391978300159833083635938547527488125219881576124948355196636420326359271627184765114060425335114119513460427564676521905378608548639885388010457694378010503465825175184916435505578733983200818811408419708077187818315087575073256335638125062393576704884645146472685167794160394259800552345381722201989191468412256555597301797956147089614452301172020675356343306483429939124451328964861036207972260229895891382711508443223674407866304065222415488151958071514265722315382902171464852520059306106101601820233220953006419181828411925189854749380016681298824493595572954568717898928447900612015370449949318204611975881972121784866356470354404330208073512125436538499275731051146969400928451292629157785583844180540582273274011235350428059491045363993790263919177214078602590769076671287732767865680434241046501912444020142894743695877994988975998772538628218126587667088862918688253579708303626855782850443331277737387527391919222237175147076319977649608089930028026544769070706224462507598884776099178676853383133290630894880624304697008535759495524869921691169956233124212074640928853182445157715222588628153731647577708494364805587880572643779208548219288735830932493585691593573114555883558211509052920720985374079980297062924842058380397843910208147110052213858464533442904037411167577672246934410170737186171999093858617009251491213036604647852931652507592962612917576872076044070602905696952337003138938775540887103423765821020669488394167308872054265402752875011680250924957283670507666739103332932105521536204501914043773733788214922428701148878114942030028978076099442728435405779941891757592443561358424395141121761454885905771388489238250841808792640860480381460936901845687166398808169398178784016636184648324003788488743764258143500664033792758583516959288738106582016041051178289422715314311095021276155464596104067987581137378801332055321149195754111833777505666488047595709846567197294232914521740943908981675297175640803593339152616261712599339355455665390988795589097457087764318527669589884578885419201523830455638062790537733932573961919429023513408038649836991567974044134479699465528570923399246240739361147829114230586339055148910493420073458329470167918843839752712248758152472948885139836343843457349718040714066955983658026739693236613673359339828560458336739892227115622967707640237685592621050149975482534559183710990504068871508424892933559232285381690717144619429690548666381449362092204987105215822236150983287527680620346675376036397855343505668230830286421389663781108143445948148674461982144694003979335573131259519480154488096246167059880264171910218420842941028380782894339146832493339643453702686513813012715927125267622757127766663744459604440866268132054169753873717424884931302050658728079092176385645701370432366280448879214070473011214133731470071876900254741685543639562806989608268117160957231936078447042565348898873697270295843423247580326962680821625847900917039206519529930038258026420408062478823155948273731111596475397031626532577709458330256639185492753759243626998385161532100883173932464465688232820788376268580756225023968799771328448873909121801643853219267798061739244220955012783756420585396033661850947060511451584643471678043654154075741336424770027227745829939093669926988971154308633259976669890625228309668181413916459385388024892022395397386929604146832745571231963135396275741183731859640923201531403894647793585123290139816290930310081564148978367866796468155661063620314306987025874137019931917481633444129679100448000926266280931875436880861165521930376002655399121429942382820715502903889813544550788257421608228375271379607850684525682595716741506929119797648101259661871875569737985566853413192795002846028148463926741918179778610183705668672887683895874131146942365384597006741889118251221721205822693831081772991978698910638930502929908158576640824188024185220695985580007566805460815086775835330769464543112779948631164249612542872220789116374124158442418853258312113662208873193311561657681878427822926644250485942954799479346927824691537541392391052504106128010834297642889184567386266785380843057906430541047216178935859242543257243452376584883638733556826822093497159790542741297891027475229195180530884748873092933781444267608599450543279319477529442790686881205526533493732336563172587497433430594495687810956076231401335978940882568051675965995672929126584863756642484843138559446256335039315109811531068260518806483771193147906863146787361293566563124286405569968508438213579311930184655906272242228514696381779946672473211595681646030138943639981004392305186410481474850840224869276214031470614957209083238091348525086809090366210767267869205065845564025924180953854594756653472734138134789526765413132529138599517994504194902988396901068441541125399087775259743433827360277976966433818014212664075640285089729195715721844207813845779844752256452482961057953003127592400933143861543725462682737230852116980109640448202273200184863780160261572036594669671363228910842957677517844723542193923656220594445175253658176103085499965018011852562219702028713037288273373183647353101123055677050542309832527574589490201746083032685814691809593790976836501709170405531034533309659754468344510618792836012121991305296344211505045202215635992445830994319532636084585275850372935718088812980851988048225841519816185029608546448161122723961781220766812173034572852533748248642912087043145062632888018955113667720852227496836617751822025833789260607747723805776380806124253363069594408032691121764672819009445280137218932938504397935647400124471681234614043173824274690185741017659384875303365931071237513997866582168732122859463081582679148859023427304958560178065835785480120150708478001728218113558984487353053649483156869692337127539769774164564243094022740782009749529958085172851822809520143427686732028304965837950744998270871945491400457039182861626657711130988814035971767013624419843054648700017473051415352492261832754744037863528188011316335154761205567873989118261008628720858148957843501028114348935316981423876506262091508746090665802549030810482408293054600579182578371109656934913712573631527171343264657292198699034217013269270862752470725419218484052131674046146022218423696426357073945678851482714528516706501524517165068921894033592032969901498897514226750230614234576000434373379807531913848473838636861605735540179631402645591447223972392245260014195760280951514147143156744642111732210759972477656010063992707116662502505348780749751982859343367743256940342336889595011613109292016957183153823865139804287842845181261090835609006255949064101098455941384521244644683162324843431783367554803822512165714467499913034703514711469572895780954627009062500224236593909522801346291815219953015145298755168595217729624472117681649319636772565435744214677409768182402008996174471475925245144340081929492435164619014649636081331940299161589391247516252356881309621398080317102975515227694726985647702951377843310807764527250864962234543495348727880242253753925010447738044038531366073029275397448316378467244480865364675186330094079268221772524314012406364599884417094605358669958603715590682062365570227105462868799879811725686347654459151814339118300888326306776631778180625976393307864835220957066524979579659350944674527170725828257011998003692754662675145310469931006225409332599410919292864197608879006733587221067254879118912749589694423044181356198626406956247449372668814379364274334139732178775803160398505160905208931377037258708766217746476338162827183503994670087293718138487660815010959777830221991466154950339725530966981698549755906597546257874707438558532112452434345687355646812932890582519191023760012048078507642206307150416842064499059300171163054002462467228855298829086444661702149028811382255337576060578749346037251374671896965667473070772627500537442367622406287642229097736919592367137859004306826616932813374529204339897145374883179192603857562596588305007163106217907915605540984084859430907820485651527620032998191545633360195054283129723265433428327793572807297138862392216261746857837280809701621253054221607485929186556355118248370692111652420207332378131137541711509093594358654628326214643238431128243555925940427757821566012570848418994395606364469274349875833585437411035490523576395191576505408231344854413818129371333159796453751547456462214980656735081922994472760766348080525801357882342617893942069061662580258927209060902114165229164073092249350692650392154508189724944231794228456963448192338028129431945186066175368761987960760409104814045939688271839854873649883616164241928788455861998853815830103177748706583432752499307082000653834011716700206419151147738761156531952271622222442704462497844907055994756422109384878398366391040346428985414192802846910905252362451078922198375572252717721385311853783095304837039108288194019069757124394379048674950004768609245055511182362796401961485579218443046674978713205680664034820219265096354921385390864372005692483251624081213644604087136794253307480817133391211724282200712492735945060355792104841326049402399609843853843056853215250394290470027051335740085464884306181782595843070243462821585449512181623056740622679326995110021944550339926977430529452547008095145719884647503129924602851923837404507489991124410619632791537595433012296943981850673196359746030119628545110228004154353435121662077864588705871695709324914946465514656760403469243471902798596185916985982255643243186481941676315193509543440649779461006318412895554201928809246578751608811836204658226848755035222705466779128694368144761336361794292457954335262633299215156851696903520702814937154264441230871331089145200644086749534724614932342211061183566488072743535663431522766112355560231429756832918421581685221153823599171691896961597342429828769865606810249667254690566139849056686861015049986422843229761357254808199864889930744188386149257613504471343701024795036041994880773214499142001163732410050945307995146682038091763397807179691914900655532900923703350308968215786926139132886790370494947661526200750610941184636517142730737649036419108579364063032853379712589469401293075104509321314038870941441088213706520622840587212214123397060971221224889170574812334989098118586933797929127781213728420318279547648323720535503602358125186627278597202256578923963820220326687134001801997442932259647804366933168350781173308932164516568443372564629969393389000618835154785619520448385105629518879920175084357446698183877299550479679983606249411723892140887786348817999393755119719238726194573402410375130102647594124720283366039508962771709221948990531563779691091919279254960917658804447263188380101978979511983813951387315166482152932004194785549894109321575361188078478430379573332788436030893842894431420652019427100735328634477340275470320987164954710705604846028010384958556476194440420842841666885697380647771791489837591945859769020686763777254812693101641860648655118050075204263021793849177653279997343467965217808198441085871193593930051749782513069867130301566975014405406448726600588204893120499906313086191293279466560906691418194842739018256487407463159584189417798311217942037757203731320238832932084444424651357120458774137965868087056142534537847986787125096769425819240563456241850006515166770796046295214341653846319481022424600829916602566656720426821802661987211482358632403081481603554669968007334797465997772364125296579126978211484453697774037631618556355264217641861039694803130355966828569638014507555560033764038602329778238545331906791291541040244687518903590785154130834985522642252694233004625047401255510780576327298138522556474210897099381672424249996482471670503072814145948620405586295621418893526652420274401802574265721300424346147593179599364817718862175185883807173088756922956280123361060673188571857131085347968445994832153221304865368913519981451172124066593421165971867425444344093819517221853986629761722060948422929602545793344314254549170659914742948416735865062332145475071403187738173052680220500620840853817035411549530671330289162557936105610931562599117251116757193700306851914639293510783462943578615244650304084727141877337262365741109280371029610444639510523869309774001171601504339928253062524797099588925550505128300394576165541192544255948000507416454959488633627822717768416099347394894820952880376414734460630994869575191697167375043900775262498963577786083565907257200822884948176014419311743472524198184931900410733461296088006038510871432850544707341685749945089404038859813922536533373037772301154438112816700322424503028469892559558484382675427170587142122322941814995799984765870769136867088263532192534242956175236556947013980434917086145874261638814309220162121918069183756491014669171803976000171958883375043956132076221799666156749136777168092650048783758892164039428886463327083679233152714218950542651751031122827115001482481982145351587025677446801732403651071922453630144745740094494142174831096409092571136437365231023908675594403334111070957352160876938928314743784837438429863563695048421646464387912023231477857059319430912415239928747752040168335179459769220689567957728846864021058936162592029693384049999539946032582509097620335452428383840507927813985915806089981857903091665065800426924141910504352086170445619513566326581080891193921207575361684326163848599295760049656930426145752234444938466017460517000000616847924437960463051963401510308889336364074398416765929703360925990767978467922956352888470985036764651016024021655463824052330177745810453336690427159947447466722727365660268126943381978722359262735659869816884549847396836909668968665324768760972754656432445528604968796337282598728466751169526788376042437101070244154210342290134199769503945949315787237859505285349912166388520737879941051755498334461821353875586255682726155237445280977973894840205831304046923527972460065587160332829875062146091665079693609333912726715542936502125614225822137026992317295312355675077160266715329306724319973769803656070256664588471924557197468149494061295070789601463642199589977609024031335115647307976290486067220750156806736494197734649219082508994304114612900308479010933361049712828026717907642219932774663804011650794306006672320945253348607874435982440720943926008360060925480142078675309824101042838036921328307941042949112072429037918760301571471569100072654965171630616862599379324400403448131698928982011339588087576122920599584882407256574092365200501800602289700114936919123376277386170579409382070706203117910974848705816477787815544399426246989661000129311464740902047566789355756395252017593730175429054811016682141238680749899815202502142926762902631661383496384724717147892984337432191500120938500561912705251750997742769407473373325295615222367608850210272581955620946651311682783107704982134383443966917544697381895646051491424539127027732974963856088222896538599134568317988521916697206222723597261495418084585805675074737117526518567678193777394532133497980863872655406982383335483792686128743789348726744756249755571023855919643962926322424872023891799377505172903971370894242061128312079728818099101979999945873103155231616239888080086389426684286219737695137216144811847253985888530566696122063760058203448869614145716326339006614598200827943574481277799703303993571672230470623749519189369057452446751602543105489766321174207584706060724021973401261815310768292548863016768259183374311287117460374293965535484338007897231694508395100573036799885898285352129210438217960229265162462963681658826513608037238254917335387456786367296802658071062950763984178624524063171091126207748434789422173203816055489772505452527119221842965121486229457492442587626211949010110353293004949778875049512654649050719820671574653035689232568269982108237240631672146365068070555201763810459774551972229141600479565554317930155597367336954442399519579595198213583383047981458604019657375689532347179940382945041362450967050985504414604947202856898357828539010744248814085101922101604265779177599204224645286870539010986964046446576889594981713844041258796267312581394154824050106993303118526243421985187597284337888355341899368228497005357143262944145204712811493095354643101184752439206733572626091527541548553667231092427767579251589301231199119124992398617472836702975497000961565290442568688179481769240674937053338891769958887859303261242277204950968272345639890028443726328370261897892240592712397870823924960176466388803292996396649285176989430208275784810807144742409939198864923537691429631911707037746734050945063675539426536849519602128455028126351663050616066398375295922765461908861641407613870275206767690557439734501826613269872067963239486624849857198775614290395940061941323525757445205002926712788120257178292917631394105776041311351611074229694623144034001551099437854806933102493665399232658935763232384512810467748096244798268624923476890409494095624917928046372880996919890064195426707463083956198466159218662535721760696638591491695321408263709953897759336923230971057230607020588382647983551215332679370118033016518253046120169518414735926997759394805820129773098979639741697335072669699720262125513869335302122965366304866295429301844440514130993165679163118868052621996785565216468479486120578876167072188819809169924169114492692185721812538460630701774620439942002389820825477732291182612329072956153947457719001463987745619631551151818949390880676776353476482027818023288071861097572881693696900471356724602548967178935177804659990885757070309279092767031397278123812199061874415271709780110753696620453664069171578474426042170068081148112035829225177360350321428262787506991966375859096229238309839852392094338135084641280989895631403713759708014786332729946820276689847909363113258609093322163132192813463082248086613550138783062213971235652372514557129383551559210200703031673323316876629715081547668472364098346253165576369433109099336663550021707605120888259989250911674332840405687942059677938050180890322714070913849637426028937146588944511358845516881050528692283265515038719667343686699571945170646806994848892553986725171565627786171183849765051105460760290254974967966091157711441514801505571753789630755726043107302804673920146144488340550059431282542421201843513341959105269950378130528769929243720770875961512384323786652966785636816003610464559375670632109915655774581697863141190402365479091735105399873346943353781865924217133443211639809636071831116330330191809218177960212193436240014199238621089259102312664565305257786721393399813107688651323152539694079827875218759850361511491857429962166460766210546697301504739480939522187347678349042178815514211879540701688452872062504547321146514075232202416851313845602193809991535396106210571971799753724679970917371564501610286487712303427083151533593965305474434489769067805227090843907716135692397998614083397754354029250897294936762103425581731826089238881355743990560761205497782210108708022523327851146715878347793885543805331470164715377779128864351117541256735935326501426216388523855389365701379304000099066693161756686291045557635456318255154555394503555942481789054418863876846721460763887086547331215279947252318973472837006890141155244431229388216908755157939833665122404713253091401898557346306644302458659741536642139495535007601812411820001185780065658196999339152453686370280388083407015344543129837952012735300103942923412262025965458058822667311707213394734747773317287984071170105316055410008381928991063079094410849027714411976289402317957758506081897863431478312195509835491553498689261538052191055675110560339282868656268672800343621945339837324508648382688408292249776105880732805816562178059655427178036623168303323796533405247867518343610239297068072161314128157639449394581450079645142385442727394486643676147347091608085401770681547410093518225916258346134188981468824893907439620600217879927501310654184557474931202925582345625854443838699360038580662968886752668773391378134727909716178309557667341197846378969892189133867378224117757049560794158060667847211933574809938251955068649990741669579279029295915900667626381232197037449975940910457638001900539199584254303141140018981025076549592018555788908671572269309244681216371374317403781894628556590398463414129707531078987281872343170821980468635240428445821873055315656004294195209452845179226242181036346159110916693401380510297520329592472975263349363263033626243511842325845882917032435543786074081372931428155889742405088202446601763497694043638483632492420204495471555842985585345994102926247288868938759587535800553403273224493947234366620626578144351051032602093943615607345585738535637773774276228967551779660383494796925382347263913176015992258958879884498604461077028083841003755377464647342948329697273471360604489367057135090210729335142601582231388966616891557927343020595194652643547464402161553901744777881006194542278776665461510977825186932385556939740167843717199307836891702978116662136886213522077419101808555716864408515301424575102046740377017646355720658011385453218277305251929295695463445208142663722390865716932781849420127824116387281602494000677900927180806152324780871971975775081478463096021836122783803520464785714827333640589216745742331770081369742559714711629138423352387381463283419442739493152866693993707298868875533429365562000432777812093936697513657419913693816066946146899647881101198787718217839066836269193801834073055030361918461299137751737477149476675434979458458692732418008953842095277360160066650466373358937782952946538038658783804400291742118098745194197386497392318780445908451001289616644349232748128251170188691357660520410934999217413772792571984235751757056670542031499147849103287394414356964825172284617658185276851972026859592103136379059901108459729094459283321130636671351414835762402492503604447271484315672530925247848399456667782276054367378791926336546177059805220706954467826145075550441720546396359103314625774216820836562505576542260058376265291068972284075644366322300415459438130254430874500312614602239183782250652320532139784955123954115416586786829914949449175568990608790261198297204633504359158688267674370605643812728682791810889486301093151541023231193593006962738543596043246639331613401723692661583158270034817425887095662910336773919749089053100057438508896625710051540966745841577371533287206336941624152388965279697766566353927492508016860788744690900627357108541592770503542599300894717785921313499629590346748678831633129021438488586869775362080523391249951129925808786178288863613269952845034212421521986040336938038721056303693650353987820804768285437054150043215565274788835996248932026359309663813421714732930126941721362635776517894669831302046468855161440159770053599770091730303887711688913219741067413008235333354585797748584994336364197114772848947981065452787328484021410940604899459253597179753045509207961538275260205061097356432177223494652284087965040629716098310673020471179920494493607297505235598029785399510434972096556906083922884817742452988382734651029724234810455408308940840878150079599218990250817890092594081401363570263472314316723666920089828886144310858214744092884829723739334143538877819006495340073779519315498977632719340635374816607101089553826993882901460739796487266779243482389745087823253889175839637849520668546889153045355786727237853984720499017272748203099023925920053336749887125911233049976284489002859452581787418755263281014292472179284936620223773784961642283015494597007950714086397371470877224581827181120578605053773021705867801844816288742402225645968856901639842381232800748645811790768118427962697566257870629686642128697603754622881870558374557403043208495638236798471500017336049492548880586852045846561156720890428759394138652441626955155108528826781785843220926281264733726669135286053561286733940271116871064670197031334366409757954252017814637770078888592883506225611262534457898143702990936987626584220244676361120619868980657404868527770472354672638215568087201636886422576027739465261456959060440919342933029066797815275812896086657863466758463641265146039165403110960131937381160326260801169321989040999770435855485997242727140530019199925556128467529360552818023864793187511825197889818894230882238212406417940630161227540830930652313249845016514780019116088864485815780704071324407148200470118683776316367341987165781434504536501101320006413245032085557407287867420186678020890354615235995444594824500110531824965050937556148261501780362854725368764152982093260922720931111940141519109902325382079579660264762866216379882466115920018045430970088029162803526618616109403121441813707573033574477641627477517199067678591562463896097660187375107808088905773638843535446790408726306273199913508567721991793261067185056080934987801820640073704223521708821561640080579470152865581675674242308604928499900574800846154200431350989734127286297964678594776803595025308354182682624732859628389224406496530310067286651962653329630767063972134924077560183023286953980634472591101754120576144224196701225050838795542319950222531421855854583002586507380066632797029979084696429844543498131598055083010482625279742349556946371512627591750110535729971783564330711387168704656018006842239856670082724117495476086671409044760976211097189556457228862421980529285430711545620810917591447594853988127839246979641020165121072498572319872998335038906674793302644822925544304590113645852802196956635831806252228667168736051790318979135350749787112091271305572732598837410892363137179191209882135733440502961059323874922967982148559348026346315264942367744520462405001675195841872198657868057701579211932329010667562437191711104849994891541466477951591398821231211793324005423805194295805288466102543409954798231442893069093863413508288981324703391727951382057530153062692843309721634932741874751171095829301580590714305876962272763606498802657158613268349131941569988506422040751519161692372387862192952101735393719576005791918320552861102677953410029253008198929431356670688993251010206300659037392809837466533985579298246100660677835949697777039563258031944345898604069932461129900761845801482133231475108846916837936658035041003768234894842583299983224275958715193194138189365002361694049799323429839897688678499194257942148545748617638999322134420225444530344829172991960492326102787864187573768996401979391217365705846705565422474916813856350056537593216554585883780690562442507733163020405643413039298621186164947668613319613509385648879340585258606466694559727193744981031318231659970718837420130110098357759121723028736439942241237484069984573543023756750842965033215125099638478693172979941405781416314194707319857950023020448554511152055476410218078064771662182937474582634487119567310133824050024821552221699441891126811885158215701984936996831967940044271254769161190599877051484257495175642614519088862570211993506140550080934389809365587290980016889812954411007569127924893377165909581905209872993033424106111868200669873047515286294741372138883388115493982044335215222275069999864752142326674141467723530080916410069657371173299423747011597801425464246687675511114188855843808273026373408539437421288395576321192413900926601331851009919076957480089561977182836538444204200394451736563532763905635719769457974034992615632256232132705849801970313002672543996380274622743839511201215597274911541886471175591236795961741924701507610860267177357662567035616442645733055476138897613180171530617474061685935079158156216024730409336814329549440666268890941739540906476316663803670888090473723576134262208095395468868685569613339787151646099569204762306895767359416808144902745437443040732911630439976657381197920625913757356041805112294480184172895458082662758164683033217585428554228629202881790831866809283915845835501978483529690782042812796995921854796373571027685073550534383025472121123223803443308000853560717989708551223391917829540611580988411884560400323198393739257516635592521974814528084250074501579222319007473063975900820562034222270242610287327080233311355563339455617176206903614162431325666594920107569345638465865866419843067635507267277686083943362784879862705921165522625672261690737808030105287484205619634724542718799840673406665751066978886208842777597603904421753078902356750926538231351396707597186267341758177686195668019088853635668035131430040500177297906894677425083854614281169675726812536621538342738044918566645251134493977879364959299279149591670132997959921992991464677865918591709616351575146994372474892447810732237271456943272692384345472932836529361005963099266419064857514222043696064943032681937390410380493407695283797515734165435625567635895967224607601769416876593076878907548044067773917711302714505463159158242278401776478896855326353186229393360105806140405233675045898605830272694240070831596837665819029840245754364037279584038174541663443524044644822039735095128080396004885506921518191040190693240679370716953538906443338764852465317188792378998920247968828732392568085097347066375978233799437676673843295248600642790679567510566953238405170957900958318196298188933507942226561064835517495529695430580772865466924428672432215016217681582193946990868045403334399441669739658815741934494437317213911516931332846181683515993300792932185493711333262090408877136661802266530013252314081908258731321179028323285047897133986192012506126918905219124529527608712031109757742649535322930537880972319073793790524869675876864207020581784883134462050226634819813379276879188641772335698426364708198199235591121849832532309190488712474699179356159961749942557241714072113674522266181729861208809861020511406059879743725908755352645654518713249333481482015660730824285588487051013435639878969371799204875434330788491163177426689557375750608637646188247769891584073567090930450434437618123220035525134134981361121803178118988548135020019453695623614679313116148303277122945792069489384776764837466688091148665955654381015134286725982923308200530682899309348519759744350449553348615482725133320479975155066448386059034855359312098664587873821940513013520413633144538743551495589159044848365012160843704232874722185939029703630137355566401604786233121984214170925159804836642580003910398025318836590297801797560356794322429635155119629634984065794525950381618574638076999116755686778601631017396621075263174368920553553382169828060900473638576600744016895774318623470832834346913290272324127867083522957273842438247002667184643141652634063794982098864490919566199479479137878338969556177367189294635435562190126405457091366977786785135103557750443288154791514510019194883808503383004374673268787800414195346494667011060187261953389547588879317035167857400432559609981208100058155835846359269456737435032528945765343834394576598045860378482503436030135967842805359244311170273314664513295715440670472760327698140996343749921746974109612794721904994797431448701720274128071130711755472402374548122831689006448593490864799195980009625781433848141001096697685747190597485633552632422627333293785972757617073127033457405257805141030886432959556581846259975654803978232157176001169922676857897578048039012675650920251813109902152457438044276016580359472995915231470537372336465731776016631930619360587169035802409945388701964047856290914861617327571869310751342527076215537974234383960233529390271236838097064270794862528799842238251224457975578744128748816211843293035218998698863168276776197190322180163524561610752460349375121799674897230616147128234748679637078337029304950987989477656909325748419956648368753195613572647791566460326855693418295291784013918657559671171329367501339318199616165271280975798987031796414599948017422274673107189671914554717510894693358454881978994167115922983038827037765143399274717302185269096824279075905225166341048959369337439558579322690956124324239250341615281661352824980049327311967911551349643208434167870205707112998008612369899877514356746595543560498685088622142777662012611549781660681846949110087902069986043866192477919490893147253539920340235820370051608540179516256343783839269741019622795381748178258974588243741515806528961475776349745538051783243804819283561199877384836424112306438367350609782466908258061786895615095364696780278620522712800910469660120682933736875535388176256372379865622538131770221738810973467096363434449592051150950052968119366701935847471386913130800265366042773801942772788534910964045246998341872706241381630865935674837140015727302132581880018479502775737287668641302303745981074163493139702677195927080548348900648821370645473988597395920656759791316062356939390362171376520258241182447348609813939227825996276493327234186390605599807234167768862216023986159320513044056875048625638986937524864583252808725267457000178208209058609615265768542123431751545784814955487392538423703218635162332021318729340777279160072642719394188432419452522287070636608748053782464741556221565313754850320701563564401975260985882997986646657136834606937731391585241129276522357022727625933520196225966051065516256588751469799216757448454718757043989807411420089308643481802523309574407484639461966542843647096005445412713494345183791261246858398539758684600667432581537074774529747331924070777595862020901306108763823552953405985860546385133481477523963577782733543974031961002572114733664845639303632807490065313647487073064364853265292343180380092606828191276909234171278742897218897263699924570830236661667034460521233810670410922285412022767529157452761326446729303941159411921599220293497562300652005825515645681374969983279114608445938271779078441098902527785774926165508032404410914879824938605299516930673366048177921264856706850363061814152623715129466160529427602312682118529772839497891263523992102898048310821068485918827918683164648363659965428843815073778448973154944495993822598675732389909861988007698186675856345404410646960142502711264085554406972284790191987430864389135132517292083281559837743179706087917259636960307526802116393664473571532747369986676667370608177252099636824962886211044304305464977501848742626825440803048114637334219882608518423569558417046964486619290427773122409619473633576373452528412662876315870997184124228539800439046238569555739032335632996783654861058035837937466231362703579342822577487922586602888673602444963370969426180592230018700510512271531613159828305491755632226967961805542160127085112247026011578875259552651171682955570265634107957040617256424119966848775173425735091127419209976181817741071162370359081773321247450084380754239141300726235793675494390064471306721063460082062278887817735380688026430162621620409743603829783255256291548665588305105255362350292759658481494224428792151827606509338249852660661664110258695792599280109606964113856142285897764881002521357431376420956509882377060777160994032613455929940479437932407665362106318235949569860444678767395810299332380537653584375791098724034481396295963715893094701558541744869085380726876209479807776708729766384473129796116776223144828467293692775108346887989184268603877912550853463329401831049053892628799913482532841416945788156078433161551188314410528333600214638318726738409313323958950566156065966395067963564675019979859735714055052779310354608165489548115280555985375933402357268226235460560212546345236020570411182266870475964516477406341185842858711873697992034417162692776544456410981547544115323632737943569369852730332860114942022237413718707605504348637228260848028625052833643024714559061790435030686154026668197793486018404084950396153720448069129615043059946392813588984304614265971320234631661727365858015571019250992481016187801238089073134024545554457701275194229153312469172808797278121718953633144075873832219260283329067410197461592247817023614863956208426206862561056942403082840066603886919805787920213082689724340963039529107565448128516903925720970342586970881322329656529116433009688136351348111141552389315781200771386923155153905690559708047985456102019406949249177070113088214469189084859589418604043214335461000669685151090487748573558945246271715661227147807131654654171165060171926735976476395443190585375871802049714448037724040233268089109771111286726785361784750907373682499480834944631143019741939358189339310673989155174082084828802976979435280121851640916584353653919266616273314638211743020458076197585256144255999051297201661183351356932982002416458341660825968149568617146428793744559870740292822627998966255065144185738887731789210419390171486093322215168785924647465299225501761955776278056214453205009639719878051508536060683003075524086198657238739913189255231124862896580513032506491100175430688702952846232838300846268777620865910984052461044396278340915307474536550603985012189766276266388119828250223991425096633576967709271455836799507926464209737742272908691928106889668693530020505243515043707940361683553775064786412557311351016253101254472680068218484421233395113495119124721565877633767742798916457356023320305512751052189706986672040763205571649108158186358317145270083726865001160876539289445702681118092192659637597954953854741892457293461595911067734946919035666986680871499993002733523404989226543889707107058741553866545636443338029274950088998177408198053898501058861011248853065296108875806771326553721935801641446875475467710239514924728769473327346540662165616801694993217633442483534978603097858940773767595235792887652602380666538312502124354351557798859980104420170626620422934657893940174391225878273790142560346858661215849154777279263171770006570020382620613029136223679071478956873406169499264077848916247591153684643964115093433861145496177488776919317942129156959849365071427898029538108755741440136476847265714093763892593929346222742708048536713271786807590351878212485181528250962510331923951486005946324675746244706709308772445157135342160019898728277250145709921662426780703615825224420849938984471574062492260878908791968548819219519367640202551313408174861153632577943493237463061066575462756871641087526714720357827211333866661952142692110516091646352521571148804521273600046092862602125005133394060062140352085426056107593891965235863944797355245446037780323532717155062541973328036045826768958677617351598774821596707191776878626891962801558369222213174347089561604424443969271928487041449177532964206053273262386665457697040322027665729931394879266391890041721332821912122859022180308434662631856069455067345104960634849317656951769521422661645808653038029804547265094971369931440159459540613841411884473067529724586113839590382484090168616546098735045963123774059203766242395649145569935684616487765314796129733205144977915749253170906915280202380629449708186558208802633154129224387491843528510466272605881072797728524524814928102215011992526286928130401646541958508950549203516598968786547119893780995895306218934709677640489358605571783838847517868227153886437010332623124043073229121919929496544815338868795983879280295436242698339176164495186584037355791933765123097126553232843080112681432945331045016444577957894931568648303898700730847912166213913215431060536769053025804246731326580301671127009448177075032069180096488378357299652597536094908681439240099162154858087984372865827935211680482942103174797076083096675853299770183197420007129910770335871815703943412762142348507103338117888748498784777537414500015694355495786529531279045726567435663734448297749613727158757974465558073551942165408527416341874055893124354384144655370209778894507336940812473520906097194744792001013567185937265146425244320290472508325785219760143481512145108345798626600269937661013604538938426940682456031076154082574952575152297777309506059188790715181019325895635951778624592511337009117428783397053800521925597848682004320490668790065491425710163588436731124262430680880599689327050419564220049450622500167356804380784297106752727236041078084777920314857318254112940721964715236435131472824472823880983771647579369628221832799959518344762360056941963550428194741231902586518548614528731832518523001540962713335016001933013904317695249390517675478990731231393922913068383091139716689208936301921224517726112104940189667599956909754274351676438799932682122203309593464104358110611400437580374165181337256177365445572183370921853766282012998905820434658790779088616309198953974863218575842761833269778376672441842243732249406659730032465240585670426343992767112554966178455519198868172895371209784544981372853426266558186750694472732844744133559688929704753349451572000661533808254761975715530200986010741415137527520863066037913326088220374501860966119606208332543074489427458443152835210165699605833959444705871229559959408715856418356057293016363533270729392729134998350610433228904845510545166462859531400038902160233537270377510616306597576080044762763067847365397313245408473428352253145127580431160616893311681718341829830821688095130143781415651657984711538009192641260559327315422323008341929301170535511074912603780895973170541091470207127075322119841114820623360668903678339522429934580729590682458815022811735656665272464739621976225424505757627944370314198592054314415574066051990131194495122778454398114321502145047367920785052971743852526962582523779139901563414520766885756392331179611185693762341357778775979505830617351043913974264426600415701004078935358281491156075132410899811815320539546946066931321561235344196993141499201162390975574580400084609321647828566372390883985953502424240950553153749296189478247545516057083529385427166314712860457650146566254107750894025814303480641890015942145620805079238900644430897403569759538714634328197558641966208728562742594819128949342950723342221640019796379357789487323419668471970707077293559982140214728922182391005358040240837492920474337436595750050584922703138945820440849092399783936367353917002362232289954741554057837657144066873974160246306535733989882499829542675494009593050053040703458161299802422929393037877982508163469208040479385999143837241036744765888779751826937982307957445595387971485184606275966140115709231883484415866615564820151402132263796424950506989649854417995375358380998233344869151470263988357929274301935754464939410858047366527551880788792261406405047060430475615149003346564715687317144837465263884696877507355934285466243801929335292261299263939465768364720563892139879603314922592722886514006398520738714944911456656885853069892302457185382130203631004420893601351834153035651805768771615049863734450877487018886640934952349471377720150855744014300259831582600533022815280912369766934095512435307355922806282540483403266552693286087598697071836968270412792625958876838739741666862131730510903496169838103447944670275227653977263942332712499600065006747024132696889805788564397303056932226484517522177623843203301510391529159138739987549516589022198250071989443909996966863705076552754170707080897111688271731498515532897776628148696313184544877381741574481505769395462080875239648963898408660532692416752013566570619751478164547502120202303335106268780413016821414826403783028248595185800753684160933876018092560360005256909443952825979451185957642429695297376519038285793913401060022807346523565223148058815920688091653098421844216215791269766167040142416160900715960004936788820861040266770116220114055545246126949912529542417698778352802394269264304593085312861823026035132027590917242107933504770268154070343159088293631092949675877852112321060951664545532459560745862087909548564035312082968890537183848941712716110647240014486897718940139583267434911470413844707721670213159947303140235295849727107543138963639634312282726857110379922021810500331807267616268770635090080797613742588213236244458774002783721507894068713588835981231834799858271860398744809353865315547154697560892708151829179107802843110811200489665698779098639812975199008591225134061845200501560824739800576860304465072797221397974654338041309306084112995156869043766203623370264415905693832469834529902572157801305459200632440161917707230396523380763511257293725271627930168929804088256265146898148656436380240411747536683664564476076973816048426789744264202101397885454581573572271519228723812829181121730892004642986721695386702182466416472995072127206078549048367929206382291512729951496485696070671516420279893159892889407586065659343842925441324409212362377617118514230267668377810611224444231241169815192231520648335011109896063217242479151433825563805966182710605119136423292877764808667442919330603772855140422557682996718017677221863029944309186511275604635814431713095108226950757271954404550120086724388836160880972740336634725962579297165810701176825317280090040383794419969403360250699707624257784552670427704635396114368793684524524091079249393463771961448291239992563445628218909239901407887597619409808571390295622104677341478453595890386793581677265791996979600651357414138884904288846701344592257528976199623613185521380603968237027581962167338181741581870886763875036482280274396045514896543950582866181476812820779000085424785790820603168718900957794289677186010080164979418372233646199986040830554114305403563421342989160073636983234298682194803202673779377302315163873799896765837685554444654349462628066968282537537417082581254420712330481791763850734470355197863165695690441636028158117096983417727606781784654907713229063879870071234506597185398927611732105886447777954264557951520744974351663236917921840326887282992208186528988211309579309260551912095429681431405829057303802631601489893016451296588615113946504647502226711233092334769013603804525369837404419828075451480653163246721705322384088664813994742162434162520208663608438468885870305171745398720166974929580746900552923297628582202897723450802786182769355462743723892165422551735439633748575550943920090867816147751406005217848585341148428540352967140106120609553921436638300056319989285535447763673295568378843839439014320448229649773140520969562789613468023560855462026758534929690159003533691523738002102224195724021045890544188193496147319877910893880271179136733498656676343433275838183169231841536773696487543651432603946254129448722518484826647121703340958439341509118823557955644216942322860286052774878204087492051386071529331556411990733943181967580425205141036296133861200375460600587444581196289508044728160882514059482152755042888279718136986813154273346169442886847724813607457031364338379228398817041078966294504756412207915757895542524477419612285934564931710765945828748022446401347559516667971975717503186417296676355668674771510397229745051298763749705424699726115095205590145069706201309329755140541628367900927599696076173100672175108182914423755683500623597593316772413327315805665040964614896846765702444255497608114093170536884974167187770001805769254948381097496986409990970077232389300292272760235247818761994319520763152911827332265109420389132768391311651716237372031979520748637110190879816698382442721518689935789704326062488957683847577487586275874853644587530432441136348089061809282401433903539100088427129318838185127024819393298907078259848169645973829923307829325391438564986831362525290285731859149116343364707259263382940174632928298183838027250653785571622042148935627868314012084976557303163588290427792577544790410227279822542438479816994493133904108546258807138281737340195936209105094434635525417991336904228347302913650705408809265679659171844994365040612817544674799697748660949578116325997218505122240827463102293177196701388125287935240819052246268261960076816686059133818849544876993373802980860714708705432441179025421243161031387889618466760679515553934543699524206840431871985536421476520721572526555122455107366103081708586812355369308061325279993848509005827974507176205916619067138613105771877742579582253566575835760840524920674206555721116692438346331056659281784453280734384030695358653733940250249189124343796499453930954645192633434763433277019767641352003157630767434472295038345972639583130934999413044899323329837795146413327177171943986246714461089312159977351566173851554357635683352999406219669833120127995386606894476025893338324417080561419099534831039222197770986426705829636698199827209514557291412651332677933066602788920476273741828651342334346300050895881249478205255093060828005683592572079198886511999549871512721610922663096239201965990667520190818433469717241149377479410994190787291386747337299504542005107323641217218441401088424875376743185433988116855201801243161470134403521597459187124521277524422405014330624034763287866772220557365969077805633402593809018105490998017249771118589064606575865091871505801995652997247143052414550668245928222997995146007487617441218273465517772887457940569866086707808850081645377614483721162892875867614829039588206418084102616354299939281314025105644722661650339944701873259640564687458335528686958129737024055573460735306555006398395758914299164762633874067195554567787036487482306857404075926988748010607504866698816845211677525216179745086494969511183426372314129169561873718249136980029684996648919355365640263645278243724933763904185109922779029442843907702900294996973428805754090388462266966347965125248462216446615910529719716821272380486480299055225223425488697558246684082822751090068961833846757190513545322945229872068317596820839761964488664291031666527978716381223987302667500226508552760828271229745670398377830463923162428790365392438440372584146820239093572767543318045481528652851728924968074170201386138846220120536504899865828409347318225378289745726322255932164141794929524107556347954665796714299065329983666773705069089480838159581075903275560325566373330951326886388047620768277623121627726423834734428355878579839749068929816643114016803391424694965110632403640874198687063153463049533269719302952644325619995656578449595413359537024360482445527549606018693389559192677254182554391666939988061624292940183115942544673546445556122549360616229195121604736496865199437170562946372364880068250368202730171802405506341737115782365221397957601996508687829689554542268634637626056216259286032892831217637357513944794540523850357574320464562094749334718206667055969096391175200714218393661893042026044645900487563924527928477189332294667243968744536284664415084832455869174090447262286889807764496492079157880930613056867492859369392590835208698477876574218534739119656602447222813065209786335144462572302813990639870483667430988430863681296365547622239848082199059037713119155360511971373937417017574778257550332796741054477845170273968059479643086809585106067272561283161903398130065432504246256722861849802134958014563303882545240481952751873041113780366078082545397973595901527632414046501734520639850726606610574836496929756331416081018752521855313916776938420276793701068682585000237867210297948981361864694722172781321248707290799185326891722182083234131798064673705013648206641623346726439281737704489451609027900992315597936030627305984631482757870958294830487230152732515224947052795888101057581080700086549877429813148618800778721360240319696259027937421147666169187508875538460798034599502068228099106791939469754454407076941267732947469403064844414741636410512519902864095118126989491039488391397527860124944091040928003667584068861870302299902063003452043547147350042057702547607202788190311052905876954417804256373409243351120000315781627331509130936324285135179175989931531556315692039136245727817489386130665661521634151721792040314433646156555645825183463649815188045334407870543466398333771609653898010431482021813211332398841226321375823796440189333769337857993407687944885975376807504337478306382869199647245591033342007217824912846429021754232005668527115219033546915552297756068180422853317196487713844757214645779206833274651069946789676041119295220487437881127626859977503604676286020932978677135130727205891607487128007366687201303808694616960529055111303822420312958240425036204566816418991845588477419387800706568790959212252636313367772384871304019944831627259646402328692012924543269047080335997465973615532922881539821943930196225327320445136345815181974134389741543266038906300277711164665096915012651142171825971942493738624422320564979888958289241248498630444748143476579032207310819740639413148593390958307825400293240564487474294623644666388535785548244223712885766126415006255016794787457926224666369490891994104762167335904847180874579393260326113416505372308014229714818890826362163338303616179387674875187373127904179675959410541981970740541262056072602650664960164592488020521960398866953946832624296696950738379431976500625769446289523027534605066927807411411271929899371050944567493878459373563692909111970363704575822616592217417382811907373919676197866045383763518903763976897000369048574248883399193757978969103202294766165549380368425834063309944584432136856560309468999649898046089843636662839689649263348492942396477569717018711586557403055252431727197430588485601248331548013417343716719825713048904032324436368208859686107338204051909831611605827576585659238163030558982253350159669150275291782129238938705320643078737327292301669744429048097450384925045954938884795789555957544830528423097398835260970817789526431840840281716442961807824666635195545716115292905754023203616041357311494736108688635001897204773373624385475136139744121152835077244412875279396764461310522731052451508749047364529459615745649023736510432528709606408578897650517957593255788244139148959453555007348944733514291879688000294569085940433757578272361241374503192067441046398192838239685406811274674159668406390651282316014588113464825404837858976190505833018684106875839793821648181987698002395003122367014409816105826497480641472924799020641403616346336840131847879830406488819617318659551318023879608351065036227444846469559469187119834124226214260755472057520618362981594018617303737364016697513669760689060187367404740208038048102870011147274822448604024956901113033137921688356907091713022503177666773566216302488922328717822472409561764667529685417419230263374363270301257016227274152053455140856059403411688508706138268024488560279078108711301544885041676438273780410272513264696473350088990083066117093078502240863804630573239145490773977290790105886389497493497868044054466339937319379465706727460602367997382831928548925897641279904194322883864002726881030291622568193432394507105852016044248208610801361946607623998683269311048149971783404957842403849685466084832171495131510327548996385594744883383398597321490882483089046978587616287520210716927965879625060415690110546923123875663603168369890115157450793493307676082033764872269396203699654968178392378277438595865064564176475284502298540791513046270246329693378639868892884666878247537509018225338726735684986212399294239026887799725367468828621462685101307318723429587395365256455215221044855635299678874834219960430014738500414696511979903292774059800299149613939216892880868988975432529948149907857099729943919427399484024184051057864646004217861385085172608152550916177930997093964206892872612482773907393099288972572101996210072392263633631781693799721904545710023588670041578971010449783677153868738464680700441425212849880839776808125160947471687159376958912992536667015568478981949579137069307531682341082987676731521868308986971979378724655172241790993750774664727938735002635307518075120998300230718884320528933069040077741809605219842350983700262953073213796465282714030915895195162874027158133662088516499831810738846124695217843026204969774124324215981880753015613314544573700165147007758926216353337858509905410389349234217578554820740591696407264033492427385861509202968558493512251340961749325648896159461709839626332325165186153406357161518037518082210929432604858989951422338343008656936412569348026904569907663990492187233879146840111504516317766096128770116666071930624604684053588709668428453186975760281177958541820415058635557192600953173309412498310418911419057062044269708767406388786027283695166148530780936459754017227867210886640309683961586191322149321244158544491982655755185956724648704505026913944994236188092729155383940505007969416527929195889695444615272880593148217784113452513372444079462869067860727887618733964984161454783986478067664434149763502343829761483018941502748958817749600761475397570072894284705011399678803818579864448279022641891633920587600710540224546428532420793428461078232427055461252147337223056306390670788599767042606705163473945339411793045667205228538904245278429508998095135737350497174961180956837379236992879687538150915512818664075899582648854531294074869942617916982683569706893245323657218698191837623780309572240929914996778248277275625666341034501090283034343124315771410697957527845350471116799446280375490776494790545221166380867816037838485110652516994834230538978129604123238739093282401148876364538738500450642581515268846591707591488974674311925712592555686565763266035817112198467395763214579807708398750138557932598163570851916751802953941650217263738648745508041004225620605874972130586648176753980237279487151835766143799211134239974435510460466670015608405275433838582308881669215812328157514368981221507883729809044137591629822964455845346399529923287423092008558704666354662691256194957934644402917292003268296730791184002667660742754490097561573029748931286448197256121644281236969446122937761018244697721282298020930635777318888829445190392177587470051785249492648766287878556214295576955977258358856531720041343549454901538088547574309058507276674879393342994530735373892663021178331457345707976090578180354493607642360843160442157852337450741295401793716823230752884080864441016467227826827343778825474545833678510740759319721368901647966600662440721281490109070854316026884913664405727328008156376240813393898116909351950923959069613943370246557466185426876133668380080584514135198100650905010978152015361193646001028482870112024162945017937781143697579126414620391462707672602994161290048255138710407625956042904954090106661355196377313887738585456879894087537799811346199201114073231894118985600787347116359997662142966183133336112406049282983357677254019961254441388061333537255334361897689724584443695396336192177677750945044931741327470769808640023346798531221817843077570092471239104340115870069259238154058845736615245434707144942243596900545502147189823965010180149709220184301867700240963439391401823353767878578186864989132898669655301088547462879991438649509816536694204831373232852663043905969053707202901799166142329249273258596927700600472024584810119348911044160501862835494980251671443312869272078271887742801409208078228858930057298469254553415926045969459997473038925751101400010334106189550401486975725970455492119229840398023359846799896562839066747902786556768228608884992992322355185295338376327215263799306379545030748455863833444327618972923242519206807885442025936057803732401393732868515099911302001798803154102224184056731598330134320051985018054195844790918669314145358425109705000270815256882247018061286298691503262772446724074832967264635915213202572023029542450862435101669720802311872225300547198674853696208639589537445430939538300468494015746573214706370720627769625319101526206493352621110656946140555318707023980408177323011008218860959592299504571333292822631688550825355125244372594777104746257698605668074062628000185338315953618726019074442277336138031313181305026048494689133481770703877078007710632461241005031332037937862626826936928461267603896785247599129550972727363678508339160343480892690699237563419885935502010185042802994855400168800994843817340919656238220035087744836848368027893945493679493409997793218451546965210058450167934179700517717190074108561235580731198221983119840754283680044674240324424133877545117507970730623265160829533594854212498482653264023887370094864071626338079575177430283409260009570750851117650777471964918660383763700338599927739150779241923304744145989075992321830108607114012784794805803096978042091110209716282461330896512527425730407792627406019428961937099867998844626504457640631522937946917050610451459213421371686053208515035997778070127701905417077513166410840865864712893964354453326880994896120225179378361205607458333854693038864446356323844833422886846961531430552537461139482021185829636651420001190974628502729643860978596357180824137191623528375544565481974217365555133139518346839819994871353119216001716472342645365860231967690720700954907484624843265596013444631490896432798565639120166114391095750558441374889865706111123861319331470320830211715127386375390612805946858844029257094656828358024987421070623251313999629524870271215113359786010326487189288842324436996972702319920305800327470708302038982181034503963279108390211701739172117359477630265113062404158249575632887931598838569359868964048277840785681183919641959132565805760983068563837997659127343343343127449828246795709297025361230276753748651973130115232630782354175747752992454666482125910727774354804728436950525135736197303238486820583814644425472724438484965564515075719520287883996895737603281779299777810356498742677844161451777902154403980025724631200259613375209656505089703070364920081768944089674336978054626418888761923936260330973586164126296053381670284170417186260655379277325198035227259380357413871450040243944191949603904454775737129719347257154668259844940572884041889682913552766674321200282197626945056906729782167116636187090488190509330061262079887729690296447475982274642429540271825772545694507985400300601525567623520543681743823397313059720056652730477431136116420094484134413110662779202852786198929731310395034760558732632002129340390705012702863308616002825356861481875939998284236866425173548646906984005019663971473216741735652841174053640331817413934795411145175988768309654385033799885216227654933509619519245473622147020107957741533882969154615171342370353104364005956421039372173482145782005238942095393959611212924742960816323016955030209917442796340496246856314125877813667720244466900652073735200172347439060314645730684150637258301454910607656559757525531673534193060859684294389726032591314164310588993094919232461178678387649693702249761192465121553406673783017786532431102931263823971441577014385120985264368543997681512781237301356688306521002324767089452011633850458233362187868713872171211154566511995734747712838312319271870700931340789323467370719026645752787198551629894553409778258681614382551295081701276769104866085468415818273081164943701414991522835585673201866990336599356378964965453676263089260486702184092892010745143753096508728835592852333073264412325996828859918798288070557942787818133193219833394796131077520933740831689179169246333482456603963936852840363878411321756074685229346103347094524165142094973376782545391143769025895970778417338792585251054845431528088950102430235566620854545922132531857812674492641876998313751397367728099997712709869599409242472871842276846147317879543939158261822144462377918794103307538375090917913576024996404745541492080414645994426041548207512287460954803627856457502164770256567422974895497294014757635442628995877293953159884683294909776483062718953607372508033508386727058067159403910078725165805994571936587728033831357525485492701317632105821026935978942181293603444565080724378691914588956880442672105052942287884593430854657623669866769045779641178947807187176044258939357236966989700550477349720323259729287980739523410751028731106862965926654613760934118302123357933883286499528568017639132877986791756385459142296074435461126860135999603209702241125123158164763490999961480584000247245569883500957297692835212334898765534632205947574469619567734902969242676937749243089880735033544221284520409070505669081669870947682873211936846639086051299938299704731116781286812526010869103448600584020199430579199768449761300415451102761458044069668081275894751307413456642388376905819030970257048509647721462052403514679512715519362637250828099522615302149785463292756850207833327672147185171255848032482047920012620718546105971448401201437388948859246099799649859523717165919596975843315696393171158541023402497043332564029640589170470757945486613291077784355452854280870987355228065155085725031867602529134922766674015823542639414281056150215889901354301917847117501392850033174067866651262112416418798745783232268289192430539369501484757489325617863082691496890038027563274304456152181687949046245498541755104300647028871910382473134110087598651127534652744888886716163558468407998784501239946860407981664742763813639079503208557129612471192652126859912637702877435609537649598838537192107699704668902579564491756523048815849880993730375377554292220743271275988241339462861203030696107511095631356372194048752662680488821395684758164243954715331012993410551039264164908342774929223128312691551500576577477105796608318487736448591648534518339944460959694435192637604888428457013309997192789935718428636364831747426902593108004915605080880845041673186245285623089355277907577860909622993251338848159679799886133578152358063222501646834279487780485493685351707629704248356450039169207141613040739828770974116419476312938474869281387267785267940722445502552187168236457177427786859190471802444838980605337747512160573181814775852985829249401755063633341345951587170414335701711905228353316643788156417145795815457058163148288170076528430938981409026387616076941168635465436047659286034559172040467805671099047791034094542968262352804945310009156225098419282470688904362505688566632181886082145653714675386708678630614719570285928908429222412885236641934627068688995984574342895228208720616370435280529469420354604465342940448956528621071679382392313925614777164440772092140327356811100735513734887012332523473747265917947614935374901349897403827006818636387915079387653448503334474242684987326569744965155967077038477418452713372197154960266585193187367801546094224285054460158213259917657777703484734427357562653771440499924189424463429294436788655482310733734256870531270119981886040675121201971582812869154995278767299915768282773755255396557299287205866673231827116567453005947809550440235925741573005375293616952914395056190569108771603910927149674418781444097562456145256466921714543633546032241081492678306108324707691586451260762973999785054965194323221059330290096209594331361508131511024769468717326802647770864929649362088639066038680831586192735439962197072518238807666843590136424696916024786883177690024242835995128540332558141961475249445063292597410744595262941628936042217303587772941184002024467653606891329116999238869029283314182966166799297684516648401898193572075805452498264090698002329205231609373648398747253444635953755261676895536987637926760632351638422447918735525707527086917844227250782460403611276088597777319638525555256100965907990043730975938003121708445831631810203299723115761240902419914485233848701140459305090123268770908154609062949486764238920229241580466837317022983208254655378529234460909404081751325576392607292539696963607116350548880568602701695241796219189645266047649878140644325425483810076219120603884888221847510831577610580580659612641530720142053236061527246682745868101089068298915580874198878039405948386093716598369041481930828517472792832198324836248756663273300258512073203588489642890505895839806856858906046679915049834457891739908231559069415737539676667455722309828877921298567133244759366529960796967494113813836523210858198983868101222289727088420370776903777295926388413845678919353085823681890839384392337807644838359442873266265987481736018241521848381672768452231087155303514998365243064232348330418184697693218332024880653678959368469551557796913246472699918035415677519855642704333398786378947667181459218527453477208488992938972919384353143602874230026535952906497256053563570227456819276872504558501554259189289603730406413324888680046148133734819625008360820144993419301563292604966908705766117294032517259566746846287939682891517108419040468832506779422753099181725980058010931674509046084849092752974581836384253348270259100614266969934843617577926127767477661663469029674053603129238185522548713128640548655810480889729433686113754824966569933963524076742101563328789664255004418504812641871698215369801800449573231878368692799703671742352883027820280600872666399289480217638400657759244341508122833841964875699528535895097803050543801980115365574692700465033916139637292746593037926362358155725154786129772124165092889806120078482806458469399417962685867558603807734050309682131663367404145344141334498448337310924491134660991100622852075700038487153427986836243966326952253912246402105986041593534851587156660512133373493665905144102763585269330103619363461595693478393503931404120704874462139870046961405842057889328549493488759333993167313650240645078885602440520133303639491135981223557523921242531090274273108593141363291384044013172728785013051180120074045889130712668163659054965454699476231447100796609631566214598034034645038393690171845225857775739490223101080280927115197281494385798631520317109824646876982086452335198871440786995324786850700114886592055152865313496059560917474625055011195869422106512916522881455458334153410361523127572697686880204622767754282923893889132053033636332474139745944466329291109917002675264107710002758886552044313371650802541458785505159114307791089950623387521216199429756006819195927639923673791043763046552116857539561010422794838716731682363438735410802670829576661354049659273441733025839378359428351863297235824845825337661506251142993961885196738489794706359288855441118014286837715850432178654670174256147732612267747777409423334619794478447734380603328673216581311960212297496753658602768894919113688241241146087323662877963684987871186895044991693265594518254455802955229844139245097485248641560945443534092130192273716369883158113631015356566130680771167072246088357659357834309060932497984659381662457771919982324019018928560066597176505302027640989925833496970982823839326151743250995063561208928023676437836418696807598990876900745792967463789103104091595479709269166374295252147319221676326982311753383836141042670726110111060060951931379339007524050730223875764219719121893503338313369240774081436224230327027942840455193056133291928423924305563839393876683547790855421057862033774901927830532405200166139411711456927046556372033753462720309751638367165338786557354255820318142007614238774655650920210198041905684060210035928267059394180149667192952069675510140726456716760499684170646675336772416738499121001386840752818032023899573563320401147932937339503946915297007025677679039310281175357503130456735512883608818053204397636846067191127845889559403909019801867938677459735030407034542327773728240923108272398757815777109022476895818294952938910718419311144864471964722767191703822599458476156127293209445666987235628950616065439617987871437069503252822469055502608977336798709120240510327014633790291093719704372516345286733047231732110578131547650490570110749890980851511018024110997955622164053205470633645078791334864051567630386855304742046948320660885992175158540682046175554953629093409128461008970572821114617080755763535069761355744236352971334791109442300470778166268367444339950042878841831136234867549378571220044510799915378298631529604045946935124656493425480760423155955337764906560157453237929324164281422180021193802917976386855276870373739441070200817850760751125452733474414351326893939387860797445672658652384873316100160305179070223567713368201951431427616859011732911383277153713688882502864349800753953213909793369618611191808019992817392567340268802570236994802502718722172774825655572348855852252829467293308965937863068191372837528602010353908331324918111918090102711768044353920287393553881116093190900360004907412631264176211652858181614407366096141230072478041731482093174369306499041965675409246344562486358111572202335058966273273995498370182440977894310762526216776455685941056674521761809501562040462322483818193740150663865263320379210265599746571303775624913416897067500384796456768623565835108291813287601405981892897125563622610653358474828799201603503766022793184271994056395020931494990421762282087475505681753495890858807934309880496921176250174765303974724476285076684917467318210307491924757633944922717326843511848473587835522010799709480926071768921897681489837399755211942843172928939183685584867179489832305860185030520324531664285849420386151307892983149581267487131105228496913200976295449014215913173652352556840751122907460234522441332911413550891445848417775760072742983577072367902679020500469227140613943353452641570463404710917505925010232112380861909416255241538544685466264613932977194337795010546893799483307777304062929957967944799291170826846768892476248851918345969765983800935855166609507890901625135602708439900208059147299841652387855999469463850454340762603989200391953488286821420936198810649365963588262285513001511245374973784714853888883465223465781266861104495553780491730005912170798798794419241785911420192084303405693981222707722111934956706598119265842491692914978060100374356108092315637682677093068538561438819850747988529083085486110106667497548399461810792829895745936595868365074728321603885187834528755779959747748707984317577801654994270027659371473179914052039247558134714783821846422853877863014457667649430869294927415711416328766972803265074525933135222534669080370635255167334923326919687533477723649301836138160446954889995250228828905250391420061774227943351702886128837983963001499801288316449861993912768276027266563015994273766434552669118420425142806397346211968758820616670716959102811990265284952399639009209957462134253801836829907773121362603316617624410681515083969920955094555441617380686471197299267128609096687093091077452164022938437990990586498081813790180477896807296094963166105349355719538643575699718562249547617180954797300618887084825304317244751354404114466848867089665940114211589334738060584164050990250546037323009281316472584924617205033404615821185485985298113065235194368014584839173877542119966463433079366675532170563970140576744267131287579584245644169641999944857314956890731154792750637523153525845542724195860885194769757863571893673102457662662022047440875120221802726731996679313356668088577102817392120164017387659143082851750981051485207402745087693183446013600582100843867471535595834101058811046573940662018934594117213573925477316475848242597212543025043488866339369843692947894810144121423328264323175011478615032697272710146453312007448906045218293576366245776238094515402158687548286520713687794764465360697829283824705830507117556561989986687047194973957112381437607238610328306178869992267236642299673372857969177732005699552146604254759344983774675190631936508837389516902229309402911021816582225657835031946851104619077667521376069794020434428947795423182494893337071186072084498034074198712977459975775611436294706479710484207857940695463529042759777325160587244471439920476147528024566244831253331538629191990042283004215055083692047625184183173479631912234267459493214543985688088276764976767953349243848668078371338905301018992393966816353192804443267504547352201554821612185418224057970810089213569711305091343697909579065185546486510177390596375076916144729339461265605130239665362359878330469423769928578644253408920984641979615255648533960397628326213753134436825786095856806593172192551980089987984235597186038418069560506994647129116992446488922826765550795780089596922855867499164661016368276943486747370222947163217534510853607769273047153914663314744314428128617615559089036433411753636330666226860999947542630904660318402886032981474933922675435470709342329504578896923526216084512737219335297596360683674497008632947858372726971854392090652604941637641704630437350852191561783487373309693782009097741260705927922706879658786472837939722252885463348882000675213279826101543154500263918971635556585730323076121664304075060106328728348739670629816968817748799226351951627669550138225082096355505038442707532649801509487813291259927914315744447155559764306777045362995871308351852701984625306281001488631172124257769337561412476523899391997408157831751538093802230332139290247613936251724592074169752943073585980339105524777850654598956422634730925701748545429260937004650050404137326765753693316193310586813790006388169922844297836778967213403293971115121091941164809078114446796274189983751887458017569290973778064489363084826753634290966294577217865636967394742738127148328594834874403639026846545346100169777066088376687441258583371974297415140886744003804096642192084729160526196817091170001926205772290077833974573894046732191379311810963762585775361367040561949965536552841421483555013692180804944576047078530467318761286614444874977435741973292573567393597212579334281366951719298371778384891944043555113093170262475496534392181014339744910550152845839184661727213786284165974859764620670860091268400109753024610352101556707994015976496233048035579054556227958132411399676064044069818089217605915244752152288061981631320738586117295223848876971787925010648933742808571952512587137123557847709671437803686068543513882274207511156571882549434246000961661731989636559885919125529046980913026713058187539749302109534804085353003681221579308996637533431752296135292139264825803450556298534205602180433957409152106135298535502255151674121812149401907614540451084411948429866056448978698533180531635913739959672526073167022791790480132626829672212869099718541503522622851697317481867254261967085958604218131260146356329173534880926913456765262902791014654352540513606377385729261902596120595526939017142913486530684153186200979174021062823702366072429210900656714469974695337699254064956277694386280743793098340636836157259610983065051698773905398471974541935248833545659508710101468548142956747707714521893891339878871665280020587342416375900353827569236139691099950859253060971158722152816502665879213384101812060859222771350951118061146261001906956013471795475648988606303047024475676859711514352606852482747990255804525389950174360425958205499937376069093025239910455845969703343538918547172006712415480690281297902029480302393383081188438716277958900113951745851157493154609962102945014761598553596134910924552571134517301262105193301482029513256801525463388308003172699805827507591528218813404246184497313429559571907044430246599988873038572952013607293615967197712616472158258867397778188486804033593148015469649491454470903072225065401435226570161823974507263326165174781286417211526302453409032233772993529062263832552626018988435037647840640257445784427927664588233640688608876756068381355641725293146188040840653418644406508424901222251648646893018671365645982168721621848181850945489499732379505640124490329346697075059699144793325620316640159544959699164490725051846863024851118279534727188418171965043382916436624125333780528605680906304965562649859445706552233391668005192877013746504093199341192731139806145618436576957200003295313823574867545106094408720455801595723143161959683254698942159640024989100334125199323480890581418618488310738143116437137413006675602056505426381507182039894665716834648909380563943443253202583655250461692236884605952398014687497695704629431928460151257628888653968937353345693045946229348837517411835120403188743018413311193949531799517819559089873866511909447650292875514468279848265047687299613589721001499642158609531499958460787258545114842490375553326720039949790751086615682704308837991708188269858475190696656898308650519868756984299309509870494828394214829259650958406489118935230435217016880846576938059004376772332472089106880988227871183121814864819410732174948551123709001847830360391862560415687659381972956967408535338014456779659411973212822125968827146537831854061033104688980545318955737978552321387330375748244627979899200867074746162444934615378533156270491319679181575079239701997239342897467514484482070747774808488114643819280618538645712659876659271858536781603907918037719888764340771582007296571969508689312517532570518538724600927854956819967756476917010552540565011300210355891699940776519326974282391536423767937899451263038545779702489431862836261140683703829032480530928266694047814507871392604887642649629390514051268428388750374308122927286562223283211215160911785744710570816735518396398346216289229768425433494430153285745971119725629681973745831983827547355062918023215167446587511662210803178897938035028535652133529930311069617987355475352963910567598871495648141810627129780315169258900550478027529817167067630266913311110326098302332275503436166514154017181859650819877116045268327168526996549181244494265009731908033045309122815387207832881086563491102933052560622883100868274798881033597746763063494368619513992403891573048894359405576331716514516532324091994564603082828112904380304577965559386816028170392622919516929468886648896717694976426976737301958227182449699504374525731947373044280026217991873520515614801183149006469407576532445288032942512653538538784705470089867321741915718528013937946183702079281033103619897071548430334826274747380118085777811625775665369597591837970799125131526619722070383320976481747749695777857260333232880605201564387507704604176828259932436102266470414257741231452186547469421905058219974272122194536119560624566200384650331426877358400572530635841237188025871934816956451906982324465508435044248485065408126376915142996433692426517005238187697254007654868205934937818585253201406544711850904286564555739813674176979436683288919330302628257263724938494225293206285675905334401917985204795923790428723031652208338211739395084218573084759316366264167158365103765280243078454664628799963740116523060132298331025089454727801349742204678375203289486949142511938625719246570395491132963702546447750674574132199676589399599093840030013747935133033932910055710827129933871034066083629186922418553940448502413361554252222795597105696352944337171824301665038658406806482860953211413687229133643056951286759144292856568006012100096155905203305242153743223330063785397693719530444167742946335973988919279208230721247539750341475321755654461282440695005247465992244987838843519718681558221313834736852564988213306838806083049395569034392988785269730856505831141993072219770759265164624809742058263824043108313136063760942903933043027222204235985295534792819003691424772253811551518932646296143903406462462086942451566852679619488875667897482511565082067868522968041839744459642029898986023183756352397634295527673662405006739868642684521249879627904878142345483473779747076868500726101791468063528808760302877410380991322888906372692747338809387216252461354527052055453386655272929278618989052606541969816775592567790331816400973102006990098536867889786326103901660400818031243862928129583200786752278118353016290678608658716827489690717038849529195589613787080173133571753032195060809845302514183905850292305961769273017943306849474599596612468686020025518114386835667308919976717963789523719892594094126504312653263761806641129466347823734935458017674687218328444826218002815635263759387842227482073808214664543794082505528142215364147564815609699924123321115490441243067621243839372732865876965299286107361767243608555876368439343638509040809276792800582693246585064593966113539059326721168328605068801433558521973689057822411177525393768110907851344752284111385725210200633586526722060400302874315623870090550490865338583765638136734888464789417392482821549445722061426594124842547548485083316477871356871996094825721028117365435148205119891606993611118357457304981005367519906331566863927894736280574770186345697409051422678512219396050137763450256452993007440457265791929890348891471080658457850680729815523690760814986039551698628066101719128911710059716144645167332024312317992711066564831894869532352493895803770917438637044391544151797864177945666002053529671924093676619859643499388424706559924164048655587450665273953782103004476525873916544462954890639856022429035672016423458176360504880604438558933343971719060638187208531340419480963441154021552137677484607169597204866806147502897306982060006450203187955581118799017487602871590827478274806258504336205473217163369929086716125441496461915235999116022982511243558494469238848318806883900641851015073376540182037101078551592556899227047780263918822994682057115382412682476311639380909367976111096446633757667079725563337093293589017899627880728553570268213030380332917117695728345254388933260914288104090352487311436010435751985098665150679561969322824549101344657391438543177682388247953371810357922699495845548343773569924978023484317419947795706343174819366975333825620115518010643496136452168986287711409455214964681065389068509722333342181774657410492034868690491999858031317371876661427720890101769938082956175562931572873520498792449285146772699859040274825013700280158138950630117775389541549651652150439660899200218471641079509437782808921371944059915712418336965294445384256166844058793978997587076182565792247005643568952857147370673343426457792964092158974045920234251483889154967550150504211620009641746008040944301504187319574094137487631262441239992016388278033110164773027688041834932439142210464563699818684101424746215531289104487569990703035916984081483279999725536238168958575686528108943200426075992253864072164860406331266485170550967224620854229970120241660026858017467530598929177972277186911279106467107954299835840068941231285068370689743740231335799011211362424939994342995460926783257341997539632804280838622584638413778918530112743622947919570038074490504862602438832028396065598088567315042230135499144168814031695914245583511910544356042794879582584636512091292776527704180292275212478934892801296472879875865929960649431433014752279265497275212356393118246593637932968485315611531124088118520587388277131338404883356634167767025314760068851036862652812624565694288626348476276175934589331657779132042685055138182633711851560949025729215545050467746857793626469556621237123293317945500940056024780016481126047651364344370653132774701913576260170740339286858372149441138514856701718891382778727972609492978466613967304974145461741790821099904530378981061846687152835236326880017916111926708777609231451769047651775568108067155269710985756502151934257540045364188338383473316728331813198237201724813249874496050308156526746555223571746914878656852121013684283360337451001651113298217183990828550668236693052683239583209747665603645786787991048598834911218966413302808656083067248251032497589374799883737229862537497261497407793184710133933427617219230950375345185753343840123637517885746100105445195902791490470218979267218521042342244109008828704466032701967381440642731915734585162170016498354831039493305026880465803980396264954829386269401391398231640217701811365754010620447231454666017766867252738144249343553279901879790575828452354280640693781538530236824542222205058148922376051485249685150947663407665412141980576130294971090138397841743164578836031437965822781136259639709928051306041577770850625737990600245775459448889171707785825967045310916938077044032263002507813273951534615921059841762584303133453067089564219400071892353200890468534886772570525271237965796614100774463300523850773691629976668237717935009523912983961088417993123105073832198664058535520974856210278427419767230079665049509967967549008997141375554235773800403181934140596500104688494937960044875334390581383896372020529384784604609515804609671667377610957983571684761651780404592258382639656573882005316257714284667959599125818778920578901666263391204068207420528319641807189567815268401186431496943132010817378145417061687652600617076420064661336887941069964382093543105797696676964200993372520308810801400574591409009647878868159467191863587986858512984128239135479970775954773336137162823853013759454982644417448011441286338901151370548448919467267468113782923764658609458112558781024291799675290883365442510570660917064764784326869459508464987775256835484438676039351365477905480407086620735072870453605909812133705964113657800980661085139922767190502697933944084142700375807163950856530152492391533288795881752246980169290009887490868894312950791882421414170080949250898284943008330161359564827562720870644098150225993648015628087045003603204713020247207810209270813521183157484473054658634975009307499504764248886813604269867594277600817032914422547123513736013905985389794380783897373649980146149051736112934255502514914029506799123880483495781908166885896015550594188274421817541242853064687805607172961320392715165369083871168251167136219430420260621610173577684381738693815896915977111883678431581989947800016426908434343162667955003861529419968173141644482739022639880346855032677454846984089326799226586806657629206945951847202582144459188840402369779673299569927105586098552971852621290952449835261100495467686531042652938711301467856999822467737203027083938154029299695873601787440543746711842521500762963087619606309592841838157584019531648446775782309735112134210602295452435463253720622343810747570286490944092816517263673161897679638668585942874949867383949743954298011420321220335471311718691500457345918861916013069530211217786957440652316372762929843033956644480660668823627284191415808302078558759017466739693047205742765487336230653607619200872183344495097335828236437956416486707085654798436734844302730608988520013603953990387127081134328674855527035309067799971409011905195424290959023308630416706473477958440954218112859640741437523252276997551952900402318359697991850383015973332192896502909274756792919412685711894922714187707302941330762986053544768643650710910083691988382480716712430579228011855386875709489786080023553390629635298586884232199131225795428247218166680561103840973822176197148624035080242856488596980420618936715037627384992503702886034930514354794093686031338949846022725179479676257978109420577103525469630748004430306311845293939125315931935094828650816347969353088213381897561788758612794438197911196534723157918585073985295710101883276247764670861207179793230848126348496811288919830937351732885046662165049698019341391755682459158329620402291605750335680168187108873669106229256489297435165802519285913631971136897224673641081316277994978914411871627338777532529876246349951561727571611525948315211717650133349137871053041391492973535342313355733885716961789057767138610260894197333361353390863460369148092021100481425917947419031686396221913580273101300812334843704447452755305998034967149238782735754034709984780780446300681192495725697510061309553016779351547535395208437422088376022790820472909441554618246408210704879658991240267046122310706417859814514053832794257782418289182932312220193680298852878788927635557980973741670810774232199154177429582037944054481596489063510438852844304460931936588709018030445571126910726186188774098356758412184740855668790600277239853888201049450470922342170633350459584736921461615449355835411347271372730364627156341820460139102909610086892337950982064656685590494391022168065727203674436731445898744204706695668885155923734475834169765713256001157228086970152658324020478659408012559247400005686244726941735707017530252349597622731494213495150384205479198392181404425258944998774777278300165536170495384070434291825193145642900330660925502654901196208522276577698095755009628098815615701755683343050451580867536337134040779835986735728730341045687503261173676722319068747403688347145883699540022480203318833564140551671694455717388409542819953426447459963674595245954805777744096357827831054778583497429868242663252663958902943802901618400225150618279896247386150919784867964983088576262220516429629821227807164517999598136628760403169114959133110183835091544824769604842633615715517609850281022745390450059881637290967649430886202787265236566131123907741638050043324509521708473119449861844614203471959797327680904733962650861966984301998411637319365856454394731792193548989198490117315718082544943783231252161579701404085442661684473582874316149495802640999951129152115404511968996650556296315595895746359736448752852471910706561435178657260980630508371466685427588946028862966170320041059879890661259280003679450414514219267451281544553592304249512439753280480300129088720808797831029992041484579321934535627766837253932760733989575959114133564877197659844147882567375914572385657854139561350347923184081390224168304740026238699238453107046010231278846681545734728520723638213588234567301587160482924622487848600332434063038472340783650395255661332730695129398925361149844502081848710647056650940301563456926363188935045594998208225494226611750976957572483121367010572534330496560830011852302768560329159149920616142731513932550164211952153114795812689830610634320527043983890756897299148084737715169890741314637589897782681007916765077581260917868681746199217784703010597202831998600983596575132897949308017654933417405511902062261230982134800594303469358686139124912052402935711120276806219507053578988148076720259241251464052102772772596027104094872960257581800061661807770052341164706931449230924346164477835609544286635797097930391267102946823262246885869876069005540410869773067508038233332149123411189924597669818551492932234514676809981116444238674262483085358160587766602063502873718980536505430049991291473835721113979511827906970709070389386008061649588905256210761459711084877995764136622575932849530943317159882837577101704793144984913565364613043368491785595429868236484393736092526482469893187091565559649382561574964139767527707087113628340910354879259686444186477432558362461977478156365685266406926168832188745799097819402158187651083466870114187692675950893447803767040717102722275988861546056842738716082593853972543961883613430306610290594007271306136305114433155499510350795468015859068383286522784197975794041576942293276447302087624828398110424157473557261399003578259876212167618401693715887184504000119868172082480199344846191624391088410056331624697460378274639545936349116307257594278050821738077123253572485402853546295614498029992092552914878996268557051490528377046311436230922689764521750216856996911904258263555020723356172947124537615461149636008966366104778518400999219911507614978205629932075243160534059540819005314080428643171895407358684527406734775502635591844470541955535829884361697460991874113114059914659875438019357912898520047585299580502869795800060472617312441074384755636296750067944620760838232972884746398751534947444875509951667960124430640472788460456330661151590161210543754956673108800913169040070737195153052648572496439390922484310990663035870819396819449118206585886994345307542780325954178368608176963851750985352653893372799750474456749051073819877950056785685853997846640387750364400455517794790562943846997747211468610030706038786564647804977385771775743692918076261952413669448610955109826008025908563999425489507054865151049373660937266076594634084528054825554328252615457054348714878299123998938088290550108794756466694885371279289478163096430597156998696934988716886913716376134443175963564303500084192804350270404049822335833041248334058463540481849438841918191412147957759120584017134803638077762856520605401656092246074177232371010917289163282630174696612221213461468050360602885680837661813444609059795998736366408372988546806191333666905700052833914198754267824585260176256609605354052062457469076491253224808323266674875664656958538641628306562867450336425803414257320897946044616106526429247872777178688160763376581377716403873536301146680632838026244778985404684914739606239662058953621356766163370410539536462795514573798554975600260724065828737470315093649589829843096305617414558880755670630178235787632107490607081994885371939997813557556686327077316318837068220715502753887021777401738598250941176683055568369970343986888640552169551216961026706712183789581673738641241471011528561469601922957025552627609444912835712243657534728914746375507201074127097827386835956597080173362782320071891884234940329561079266543329771629922811286384378141968594395971216870221285750483179225375697819421073575965133558570368736767310302953907570157139435293244790351392267807747208637159407787464880996840732911987814821829026739767952038919938884097795766334743159454027263445117651390502490646918753003435716154621397349995905797385880533614828121927866236696992180759540070514061798370994303107536966880347967673471352554983838286795067948383499719010609298163563317010517535521183711353425544963214731272276675757950209430858501438942980543271953357263736582612535824996526633515565490213149627195002499239915138494370991032122907277723689887033535937899997553519380396803125835995756931487658772800213455539262529538332264453876488112308150609170809628579454626354483463960069098955508653219310571842294325727996805932974795294046657671593311880410381213835408026695755336803732909548230295138278480143168661044354128537905755051733405417155522109502762222709103093813609365813120429690434546377122330940694570792720744139972184851003520841298347588853328371761756449179671883757985290850875215222716924101191406293104664255075221442767384454755357148309119753010483838349383800411832406743346847944945628286264377097271389976850333957902462866414347303790855862938084869921585818732701588436247943051226594973793295725184575181503904154824554812757664355053655263776474678024991975970431167121384186185324036911227156337632715891553041355186276333829664419812721085950892718294001820016311356510672707534165867087704435371298850482042214677531804917416769139755384194393661986745967179962739620237723511482335205452322284610784484729700856384208377695835407644688102812363358793701056033812941841243196491222320397385242262436037478553183890091119415640860983505616364113185115882373032972885532227710524221563695856567778798852283063840269425713545607859570906096014718520762995653433766892939597067620344543824455919347586579312215703451263872188957951432000617804818132957322836362557867502173218685651391664517184170884382544359809649623226201184513514914323145027921604209154254847343197607725332838930642320791453105240536023115070015296751218786401497359845366285509942963064453645300487710348673846096205759964691298232008913927275725952769338000219508319030468084416214162356492155560643735931075973345974379313911383531212624097391747063308963341288167715892852146702921337404657947986277934138910919224891214098918497702403934171462018589435434563407139602695267557263259169809202727023037501174057453273745648826747847866263858655864097884383264397830234254562693331834812438467147179155225314934258041221485677189309019965477545304957369511898007072363917194709771789856890902161321473288740713626901341012128129345579697918172385500984127057283973717732933090510370695828191049587640131527928975220040727752009638954775456335610273753159761879041430701301517862678980076314476615595881456343784707758864142650040076261774680918236641519800949004474670834389204902800331130552748059521809439215858738811968718107239173739688159029755443372191773007963421310455338678441508929890542183894819133786795165557504138532503149988972413531688928559327282407555872288035782573839790897488027598830214400264194734614525237363791979170567045844081118403788182272652718679109976077077709145381858986089640594674432832417015637142966273848129298228143224539796250384803724186504064038151823492307809602171420427610905915147660591096350611325263623317169461024991404511100572259523607584135873015717382075229498377854777894009496632356218350643791793059133521218406195070765066168125123342773458154720965058306593118797941524869579644956751426524415041075195528970063841947771512470321775392915985718387963924292833979888869275680308265977464501295641594889906114901803071532757489015625157417442717368791278405646267445627165718641886780203697821127725374614880587559998180791668845943953358199624763163062674203793554934396861133691869384157906150510559030225837829583080345769275135583735018536232834955933159863831125618627741805760185332686383032109073371412879473076679355406637806088715238682200016908946280102789985726866535878243150748220818371688524828955576121829410757969713842003015411338382617888432371240969015121223174420093734687620870718148842337262413965071890082363841230360361353421058726577150661413062432762072077636426885847993200701199109738041717341202586089892358153019815429491436784522747154180401190194562755452021007972094358807677780428922412247864764474284289163913094153285464192303857251675450582263039966495232986475927482853200532907002013462295420950025892226057992847436188788654784570808545618249515600197186788517266349643696845679807249754056097934213922300573980458130662445063319043049299197317470232437373033195853813813768276207440520531199194230839585777030566816172505931522960573183666145078684913603246319714847585632231071423661210761009862624190485731464168502271480759878845486573518476313474619783999215676267577427828143967927925650363016296882979606364691824210070903092651477059506895133110849144579680802899938991775849770034942151130585945364906234041296896225785309799564672571314682394514735068683265632886304367904951762945092414424170583522682755001509563061580949690770481493955279860636483696700658403626648919399146920131823169771185338013253892549726178776493595938294037599808258075385898287707579350485892331300190368510505429379454811689321104879409935141464676244569035674931042661578549767091753033403030046557298191540263866657527684945120474493214514776507370382085408779965260562506938997005518449914375930062549744188988678811860805634548289748423417102451727658888172913642775315025709131202952985831949173743616756004875838017405113540465134767236749725489328431969631248361870813813957460737138646722726761966339250446240716448523443386287653206444085679833833441903416128867144869755853647670713183304290831568202854439198660383356032691281711255257119723670858505268280131125046072426031383526682623042588815784052391552768195578757102929555814491640900604779812943007110497012948842047014279550052645274873816651385144811737755221930151344144380297653596848995150754844493706916781693766677023155054985129312794253822655262648454300926199399093477577634939603949733787026318597504459505949391978186142447565629797168753918977886059556655936714684176088996662169347507119838151668374575134617179151645100348738790527868593593447222045145575651917357219387088803608008538871139508525124851438187621346577635001083256509213199795466333271942278032515796041709466206195424652147770102056888012993966466913376702412393432497718217064396985576777434460914048945352073533840709832806568576688950058171736764885683086181751497611027161471609054094383148311476995235263088846722005607810968201187838914837136608441082174199758517743289774243941316672389521142786738530005598143803503752062428723070765266615635347595390127384636666823623558744803777306390040632818309908046777452571864160817891005276842093916899279263996918355946351510127998966830242366936696779578415612693200966566363787628935366977031587771177286748139735371260585613132104252036280512643255110429038425677659432190379581736225830322413429675369470078023002521782658781608569364190203852245312465615305876282484861415289154935077397784625274766701063562761018017571493380516557967850954220219545183646073838229496045830420807462549771613464012006814912588530688292422446515199205126951733479448825827557439353780776986988515687027456954043758685754672043395292149177988026421089854933599314192940602084869931785904969309690276552526135940653783260601882687793210057028530169044402319746373986925337662930995828528918961238324519820767021400189004385081598990299313211700337746606467041953092469011340513328825090794502365178820488572659229266160549386564170294639588184093253830148387774290396880408308692555106618209059133129503475619306306231536629579664911178825262655926990084291227359354403187964921479121255043828148294974179183812810040328670110575038865621943798001397179527618088991205804864164713270513941565133546368314657900772651642463567985506184524724930830180065577799622065590682469999737148718300799647385770643029824259906628901976224850176786113949686538021725405422196445539451470319426502402151566603054782640001789163373827744252662539213960995969643420433901531934519204476661946062155317484580094320234401411646540048023692113420990621349683253181939979552502263064699785495026604246498554463088414058425132648356205349253440497704144731133210578869904699680169259766465689146317979005988289557485175973568872221547122517221865256677921257628295306520651698683562338514709717115104685407823964911955179841499738559391459840683357394104027015346541790853174699695671549244415536106891603082371030099770694092604254037882147835197669482387947688198795729010495810199509348833618543967086447149163977826623587026310690209719797219530095084797744480553225807488655424514623993041985344089140438163128502040090952256055048492893678010333662069837868355055825638617969254184606353984085771928008098958476765261907678531525684968245320983136522293367870213380543444467048141208286256453137263674708058704198840192799026713728356210629353450966995068943838311570388458600797478216093545122824380892731852752555764728795634232712000427183538202049006363829765217932345127793626200938513479988384991384984067862203653255215672424687226512633612542236712463084584358985874487921146543459950163356504173173631524169588644053671041976986836077288676699240352113021758902930727198862522550778949082363114223896590955677358948278148378180593594914184151547403130322884723074298753205093558223271697754904928236836375425727348820490850980913493504839908589384526042267327750909123884976694944902179239886182032619146235040512081541705991922806075121007992967573024355992885150341208701609326809975199432795373481176655609760370685077252483619493099223415181976058478298359558355572485672175562100351444434977295775906496920167445720663615544131567318772455584314778343661262362277998080284460301685043313779634824331487185729390815997336749657751886891013485212323594724996978040556752155883319808933151588260859830194853146800459612695204128286139640034496411834738594648000338753219817810746418814728997425829374103835675106860492239867738599753112529517040469720785299601112919278327664663950353293051945833028446791728138538753431716237974701951071418190732148375072965155658985655062813977096337459883163547368100248169210060515288464597161560098491294133050351220866891418146283331136935448721331409550045413253729670884321362571061794700037545160608114032235126593631837406399718420779986376349102967481691925340473785660652156051274895854524351117850415182881213905932644735918402807994702285374435316709046271166093210234543019403486478879375739176660528804846130153795878034106366575006066204133937479912495082657657705198033989529944480182050937598588865127587380898701046378059821192654052372546677850187522845872597178061091387611549066290328462133381235332806245037222509523188014680141121898986962611284453208239189169180337524142112608184186430946848063726555394829429235613515505219565066478009867649480314762985131668249357383424302946985971508678595378809568262305953727994531535603525041542487571307773733158524463631452099927049817109545798684231789706646816467298860896188397753586288233147629904245178919164870743683463543085844039375552291206215606593480371627473648732810973943692420819430793539019243002660497759227650998233177814938032127043684266334157425036466396947564820137996992543590375830674628439618171169768773573433579686244115443191101627448601079659115572923059388819455360023024982905936097143001586024688380858112209542221202164126899023307785930450427053187866553325098389109340537334066030631591415559942287948937389204908303012902350666693976303142328837861489705695443787008756046508686050869926081344101516406869048104628433961487838949963559898577929072030396651412029619540041709893948741103570596721789557956654061794844374322638667450131229579008000918876038032892118354050506938660985741396840979365922051122993558506149190603222713898640512531093305919540714334177544122551550770958254278283960155504409648173218400184716905049448754834274897863687380462426217754575482771831127443328556488468377249207896083345973406056186691209084769221762394909429303244844004478383947389661904044211083243876328377809047305171527897935125204389155806154530297967647728597634031348333995544358124761322231832937454095963360084349166307477982456191879976040679820092826612913178186343956391127169495102737719222507308666197690516255051553062374763729517457700964626880681742804814149784441860100484054619108275050720339485847722644673834471346618835470206662827931459149511198812483638878324906690065765306952645327511052692276912113496399346989221830667543307374475820283244323580599709723123127278636407814888726671530737927482088518580032232354492176892762941256602820948496480733783057316154384298456130734189138510137360958574743334204276637163905232481740334059829491855540066291715398955301147958933369303575291831329669175014962414633495568131957082492877685667251696823496544026633773303101034981900914497058335009469970659592722580810260449401224991764394386434177239925760045157168417970175438813595756361895648732674730041066909710293758383201632941614020572196665976947332952067192856098890571137481703851852847343538166786255688465529217798611833736266349243708255321434944801821769196638051750860319610838011225843661245510066595452297328217311089139359373467940382925156150872113819059646379540457440065939488622066038716630460599934770144578420852005353213210998794009825753874394864976774594401113570914872773541421062176527832391208439450359505290365927796320904817550844151806375123089407026928763844369824677699607114736231998822519200221335701339548024960014515095475883989184020257530901519945410718791806885379771865642061231858850973447557222774813933646837155377132033360360414576551920927268245376051576100924886030060526115268266436816976426238920954632482531998179134563884311352729022802521139542406026640431429159077532909221805684237650493425413504939740056748911457782292496728368326284748297954770359272420109846496131820406704713762122354367047311031605968007506201294087695565158209532558072735446707296424120200435035374608565976075000706318282444718896823122304283560017081926452958888896985032940070831037409565690608317499762244547692134224064912341779268634343295200212070101219042386228853673167683251219001880254104194692698580907824249043228685395469295729123675488067572471147858339664900889502517458355239153570551016268275276880727301944189149874925289849745761265933806477544778152100199936160242877266344397661007053705680293495036220365806877649044470543639204981471532678116476912629733720547646495024483846764345543423863304426963538393859940103363230830645819813955323079415827828193591726211133803238283060502964353834260132574750418412395735883494282730636589568022571822895278507335320939124730173762981194579330291918019049846139070958273922927275780670488610404001556419101276067336506090875007672049890100810075915902478694014036829752148793558430413469319063868351692591831275446587565181784307365345356205065890976074988374011777088333890277887382639836403552805386160591546428245214940245836598160260355291309138790615894397658563667112757909453655327962573258890833979894925827182161314950827450425714080465379674843884370957426792097828331195840562608058368032502538557124558107821837805093267015081232840668257826578404820646121362098118783125399786306858209451405129092246049754084891478402478497891915515784617644796292809446138787126915829873672196467968768717911713486152500677849385824485861287765988266125625317588251139088382070590991607340967211395051204373374684299249138722743896979304250467944447264253466882914465826087646124045712989134128600276158933602165847517466780328284069300577982286398735692118219928401591484617970196967572361572621010498686768884212598225459523506775347585776855367745098048453099457840089441705080076654220308923210886383389845262088869847852333837435333304389538397077547643663579309395210673378102329980398592697172247104925028823629014501852715127333678251111980758175581207707647029539014504995210979535116103832385582286026977311526441662406485386507775451901991032687949369971995953217618635537756840858123403222041979317798306174618876803422143273283865754918977708007049413927012666609044580959448919137940664318015928166221142694263652258531562915679232052406716882723671154541421915023392654132423909855294995353786071260913217236178706418727799658778439075563008894593124087422975555344964430410573873585335872334199333524244461398388852129098869316693259900152244205755366973739514905786310426515534862433606950414187891262128029064178990281074198929720861806163206180992661698641652165594934567249878580799387876522438957914026306975261023771471393199943837660715360047087396202285473308021443177998714451242741123242472008128082000835720909518847174001110568188186524967290755434215452059781460085286528170254718931633524719723286190003059670149542902165333264013352323161230680001652137389838084982135150218571144575279537111591051452579157413687337738955187557066023504935698301021153197000776747666821928870890403996424353794261893951636163312049468384988934713972291879300597659833471330416982090410169256297054007173191468724128302572801887237614711257872401159929277162536549963151020801125652106106617007833871181203300099951066801633405474682529347853967838954514231842442494864432685462999885778838392677180144304705220090182146630282988057140126157024751209574029480152221312323953410707194250368064974795863879627106878605565628899591188602876815780227960188237678350436246009648920118660101946230506581735405808424291096204723500809483644386698050930873589123624478058450969198492206661444044021164481186007400147753276741673318319153728793754743464382488142278020069281693049893059266732272295606506043136991840575283501379722358098676488459679584926646451920739221633835698137280067329841016971921822900758921019801352199579290761599642744475872192549574655217845629441062112894713615420729372643621813935426002630108893961193893880583800903996636296701590512989578163324850603898568690974109027453697050468345978226165974590708994565500106601264761026356667949960921834821939399180905787737616819700062033267518245408135717488236956358729588867205942038353268275721838708567115121268186991580509170569392264208791986263089970097677513691857905774872485037723279960064512216691346551491799954565465694586237700320233611316704112748533142029097451330970489118728344580930167135169708647545635298430606225051322859351389363885064006387698070947297732453401654565279454421100673816466644465645261279853109661803011731063883644003525601651615380297224248353525360983038721414497726428693072708910688332108802646009376971986337346197870838022960130232082674730308603124275425980918434224628267185301690765706730650835392915294450642193212195765719965973747625843984531696534195504494823625038643942643785007574462573223625602943817690746187409999296851892651952802908351939795777723160484337291151742847988178908870214364576657932788170815539332182949456162981288924023705638483231721046235445898984688825486697647143141176041287266470292301017771810101982747568783166922983208089365447051489642265400397141392085609317355187033123320237133696641113788669007846830315870635645727422619374365724713853276966377671350463988135742103913012677462558375088369828152285573913504364876594776222908547479388345640633474388990509022380027012514300408992153733484786781790246565079958693449646167102013776329004553450510356356211196847347863055499745698453518009329171383770523724683236570928275951055599311659825412267476830903259963574658520762181701233331366618834370351768067495034636447212849498259883330699030828481933035656567184545901722894304044484820845907866714076405995569753072074552658087276526785472264016357389933682607691819403740343774038870218873265517569971030058544125452591582851720391225622039061334229234539883913488051326308293215227023575583611914636360816574614311147487889341690424170118300100128668532680847979655277263334405440424622475141882989944068159439711228046607179869668525333355011333772437901286433696039059939782356937527734241190988572404680875252150319816423895075420197869572048591304437275437403664198788247299322022995054949418164326719490341881547162646227075045573607165557009001160202792269858248680798545316112138622404922136384490651736998273714525378780960930753248366863944857107809781146126153438554132756847730629558172349916184116152193734929887903424790056516011695396017541577502144399700475975578094713655877325577763515724696163559256976484501805012757403764597759435811602930670203438563213228070540061711110483038662078953731061428516215097984887947156554140888061130975887602971933919110108695357281709203174184957923262823553601186543160643310598566988073075750897219355657038912737145585071421626229477018150330344226748084335886189323287731546255256737959171255458435632208628167918682420358249985518056934896520633155038688521266293394037801149700929134495730933592347595684282957017853098900746908558235102498197564745981485050405166523877865318480155840759047367113717716689863687496172369242976233252173940999405125987796667289097499042828711641506150940955321126567133168240409346017834375992476380534354223325132241376972192778611011467905236489540615371529366456422462534804263626449827569607963238330072788415436481710835040502109689956645181453452165547356324324801758076834057439807827764691109607657033093770185409335276241958258969614444882799600348297660252640860320846629475235356561514289089434463629563128737572920852177885663957203348023494228824955684541121740777754964332835574604928490965103354308454576015580052995680507682846276150078674461962725663493727107306452097826003497360683797407778656417613724238293740866819412007154660814130276661004889231320050928759113455448714595202371455873785458770330477458463084571676440093442095544892105705156999094046234751393999987244280172170644193414901905492821690569560847222430651003960937044900321811539231238153759300447609743547034081103702661838124707201138710086958045028533058337306272158893088980192947751332121534090782407683494234934550465209953774469122251686782286638504781901722558353117995701052373436689852958880379074662188120562837257028837870627054208317316987349198890777912186806637180260282251603457179020720180966682151866532516781550529034212364699670867889149364779459855353395021883156599640832352048674235434084854069443065805947175531003071279728480801349808020284473791497630049759748243619867409451666496529950538406106447989188408952629295004665496110766650815335786315086788587898250877297352769787972348726930038900927922683341597598193848455518857439944255301530953966842924653774541740889929505061728920885171895877061857397645829522423689158834597516276075230528121014733335241782189120166796089762518600196077821641376531619706042368137190631167630358680687176968556951859386039368076845794776433843838139447527766430490586477973046830472520419058764569719682472039431480962727858151799938696510521863605208200936373452493815352475312551221322286335252833630632196410395642388302594362013611831859368721855466637366564468028359801743865554044824841374410316437270312249452856395710958017805553715041022686829430910522016223555679562350379789497363703952488310004093912223879905963821925261872594253523044385183627890367232423971479961206395313111204307036196465872091737583573175738558001346651472365410818037952678947296525859169870131691551299817739403413211209864972748259836132852279969040619293698176102008416392740154874128769310319778539730245607710412416437277527760082722043634972908770020458714499038453566709734258910388764424183245986343755216951059404160981250445725084548697063228889583116379672282918703682569714918185033899435397306644910124166404134075427764148911240882824828053991210142474708070095918999249341976838023176881306498211767969116537888279434316381781496053111357064230510145462285044679708152147740234077322088516376905318761420909391504704682400725372437932887412512866832611401746681322556476331006279607976942369540988905536117744508189800733861614754107001245478150678525277982079090848911980507041663613509065347267027132312261893658483218344650266819467963663121605143119113208072716672282322774213880258862310302804906567933955620897815676498931612023802477001529974162929232415226026649108613395312574261666828598835186305029924821272775639963935396230447532493599036250107690442541959759893763890599517933127444676326416197238713975912065036358755260952015437198866177283754247142136001787004221383676329345449777415111586280548177451546149307867118305846348979079458723822045331714443123138810553423052164900629479627423790781289320680153155469716771648725281658855374710974619913700737121283456418732111887418410514536634739599959702845767337283222648294491444203857165602066836617412446810441350413956972910092008254356960065316209768411838651909748546636348843862344279170806874397569244271108378735373086905982947433816845072401323065430348373411012978387873501689447898095738848690116889590767215052897526119680164683876934301454129367756800114212253062430547566079068568097391267499162845586917774228665679848509750237276280786111181340934886548090440700146483844034907501355338231550824494717309243568598687683782408334464645256865682096821377111864602334720491280856441058143108723499184227355980750019929022802311485789533222190850316619822163381839338269725164589033773948697991849070385251034332979555462613368915580187888798605734875594236828484243273508764573273467321314679955654349726689958329299395403777481637560727456306549775163243942618599815990693164978571742554647799725449904043224783333922433050707348100327091084089089790584187781405628397949547056073924226834536255638947669273774120468155904038291644092844387732422689348434580673258956812153529135740531844764511461662254907615892251520450914799548599338394692739051093178983205925091865698842493791802370008394538665900639656403759118072318605451401297481047296130723946304079293674113634020899604996151725478481112522884690360238414221270437598779620096792693144346178243515726139857219898410150088866314437135307743484348967735404814236875336629210730043057773805192613657956662704794436975880485672238848292726945147549588399173437875141115258892620591187482494603646810631025378990536264600723422295671757068154625550174151894264425132583962433007815978024100838235992589718315839332455526996407885201423428017527224553630982303137211877707378513480851709909811934406579548895570030113656723111510032631323921158941004009874062054207317104373851042525845104107626437996937740780813373233486792878012053133495772168311939112307322234431038131516940425988140590166517448452054250846741884482992217599353140516727045808756805333441710502554445003133312155573913005643796226918539538901418284820910825383854649021385821044817314986653624958119447617117996536961905365408244210758477927668456445673108357808760460153348474102150591236821706398757997935133504440870769501065382785332594945779874924138094631915594390495149718469358461836690794100231571572423856366759283765003464946192568784115069222536792625732519219543087848986069057296918026402359949634742329973958736617386272794882327859994194760607250736571658693251285825909094960086435707591929297993925589868998362293991142140491359990300113458972306047313866363936913158117174084968437038979316517409342486742753578885231389917107489239845150728533036070938324787844891225724313526389960076422421256148114729189306858205840421595357175896644909104980128637405735150685006553243557103304984239813735728641100752927240453470399084127963100654923698578858926659192416776193618556558050761898136900609158106270243982564806031257729489927846942828398117996185138138387704590855602035657873346254416513230522636946323373326981918087621249184356347616878680016001010774531467122637229884337645256388562038141254664044781503390859468677755241740170033496882734927351199471362216081136794914104539199382593780503589860603684332278772229610513262209503021339446006644115728747277661814687769634054926876642656029332443224183691246826217336912922982260792586866592484768759838397997173902163817109970666648029016828756525853917571376181245089064545359857205440118718748028384327557395875174930151334512065107908789575432151419241972182880316839572263860794962152505587516902535482039103912520668150359537339118392618780465711451491607527446180261790303543107971734067247795675958935759235938188729650662723183110046931903051377376132327090483294479315573919831265880001913958739251130392828430919528858021662339021084736728821925802791814344618635324450463507544555367371861772617139271699141442963516205460947822409950270124263705318916706691733416765065458575504774189184578521018090401705109194864999604852498783148494082559957114555468082235196640662729384352872323288979245669291865487949368346464053876489705271127263166926276586046242840500444343755150038155566085257385963977846424759431114144406929089380254127674297052917309063103369243823937236787757629578254739778870591824833917881816897493016108911753862282987995370648521598775218257004006519634583385897292400742892147858874744325848782664569686629231558059495448071035006208005469241580836806368369668481182612302680512607039949893556133448012734364582277518101809577864596291678605731101777752410086777653999506444545207048356012599020447710970013072999258643960140408178010807946146657321316714830403239928343041190257156341866779611985936923538017556625257117041557529225266703093040398133370251446049023075475482015151816469637836474862433451365775301644547779879367836216970150721425603575443977908962323235422195748138074746781192656327093876180172819183479873702637397530474317789553371778073055474950995584181816100310410101509396501352233697847734417609442489160588073205059086060355035502795355583734423937168423954426191188462154406162406415695749634189866636892589079295284787457943251974664045703295241120940145477536550025512477076228363620432678983656154780035433616390733809026576814513433300906095622044993540345891152000069074975260158849318788303801474994435283151399771492504768256482890274156053958113623217546221168229884803085402521352125818283825754047778050342879899222483329793091457445393066555782173800386694827782333531587965074706650217796510557214699728500274553149556756096336120100152712558168702347014010598976692063666716202728124821898990603020465631355548180454213184337406180103404942630042514857265312718697633386006375809917208626272638603866112253510671179592309290153399644325882256364581847383458664676879516833311389796413062883524646307559791534985939647134334737211811899844526833876828432331253223989726960078400948553753360910150298897228313114673450179666495933038839717356412276656475746974368360141445948767753433212346535273311098090484121071254779711991142861645878907457494533403625321191937711542742601580613481117972207931314070622493262687361431072584827087012535743965592120403257186112591753038504623852515878620153954324024355223157321552583771788891981436336862944252684136132010860790051734657964841925675785146870193892467419904919289484534702356319403245790493682477686271492225425122661778241940953510924449165597864803129849029153627311728248925014914900687607840132370817134314687265831506433866951497952176499323405154545136783474781299667477353253211137200395439300187869489368444773592737405073569932538555409237935261382827573731161363185707708863176303276486895740154218651442196295673562632905301163040115933602287645007873115383588362965392140253185936205343559672754759674453788110574497014893021355772285564825710546108629549507645576807743498736553506188487671518464432553200240654913483562004996364197808769022764199730306751485020465400314237155506457781098962541974326798694363574103196988802013558927887768182693049206508552764403974620797757967392119183231850436671957664770734943879178060428262616983964971391836081408321788461117195741224577526198692310708486994940762808437320091042215686464540130131399539438922650952778988864919465488314536427705824663942758071231490995057172823721508274621612454983821270685981748506857156038353960273764561396769664576945944716562528568529325563103432215750809921583052963825935272827128379429787107182169427879695728795497430009586386575494516218853181754565049677464626998750161039128833646112475767268305401470457506472155498201932891455913144399685720394349890370862917395455734584128320725801159930241645629748222841274292381463766326445000067738102978313829205022177044560721988192998707741279268452950407020330261871365369830890259167807244216281978435226506500862218433561209714275913586527562710571916716347561114173703301249799172062519618242726658119156734075919042748390500411669425261601779741728569419780189901219077014581697225189716778383871243840899816816630359718559571712928289170026738525905029373765382839156016181239667832874656500640347881072033325618310493250851316476858923481794621146181564334378809474164007004823406872772028585884059162116948861939287514952561722426315703196650266547933577133991816018726437785592064571960370049424245574127289388180905884376343166229342425837027369917694788472932511452488971092587640003483429857223523511199311743925239891371811783567050483194757602214444378443428274508164914740529933567823098630353018934293879334876102808552855075052448464032348083770043944889635391220469303490606498181125759300685692962363010479134534139571424139744644296689528607567563034666316443208944372370604220775455837088554016694700580680952242394570026092752717613894338387660828475748859062063279440331429331935715006801134363217983358359269250892034421084400062342588600772050907663784902483655746178517519152968106281200159151869933257041284556352051452493401806254576226873260855780850718525436213315555428558493594575604281302693405139317461221659473672044767138718110903034692559925870685383888148428262659841261204900774923778470494034296562527829369867278346601905986192891282042711166270063878125090249097742634924666260883415199116901085530760272333048273612810098941958184711087010915593411407454976614292246380619515930085377689888126953425054717192195570582362015488976691582608260571762506672988838745931821062263474742111624155841165361561190741684763273554673358869551758266738536592907258252110549760238452526510820237152406614447415242668686662087088459024338822496335796640701458268309231612544809637415213739365680026129935455992015953537812068952484745018153156543478512119957657558069944809443826719163221238311643905574698251549285822877923092191864013061523340925757216081811815916344054427531742314898465954781477887475486107962634350043112334832644277494525781111828626804075407340966085999533990561914574446427003866563330658733092992701631253144499603009323910744342102610686285997817897213421466657690950085776612593088350799657220069829853482025280469692004986525542924638095767936967009606509156595681504091439061882637096950297619634496285741040411118398854610645033525829852193981756246666704722184966609566224178969479796926484962105589709858659337115259138274185839306126537629441902299273389526639383156604989498778898664598772267886852890123254109983964679378152717206065024013341806711525542709477317356228391363826361024503526440165365185652095528780397273508852410133319824203083824227730028213567578726025106157239102706371318658020495285083539914792997177374458606999451453673430773326715554065697984268568806172496338037316170969156302754473811012876395503850845421800944050579018433903993505008743313558102582322881196157660215577484423695643860198541559806363520604708490090856262328968993348200823474452293200523538215813698248163775780404831044021419264525243165147382114021965309016488956842724496385516212960080156080603431852126845867665039345146496679652932591010643210314303063987734240459121536408436048168946321081930474383147118798333076200082223283811543929746171737251806687541281066404241456646551434998469820545784327251921321598690027464553892388671307275741834351337446839074904412370099142004479365970708258831681407731160568346397747265626293895820862991947624870264502469828913285309385729321443868738944861067703099635030975168543052244119977794594381825525852089955898152104871313005626254086467339296645639058531199859597094047707393258493692907507740694613139067911386903776680745313749379339412194244231846751235333153617289749341697958139107207740193247165340529360676345233435900121094069219238840154970928229477835885752492870896660395055002969010135241414272851636391579045870678896985725573928597624973059265979167384086102677978294828332904621177272530659477975457395269747489333309365970437109037099203439390510169026155719499872868966905929127499805866791889885094375502010022847858044230737862858032836201689358020394128879044962100480857983213907795842282441152031005507884568642522686839172395477294638407870398226498070948009994537702062783538618293093426102880206975120158045552230544254121390318845464865480401731751314002244248247976589425939002159456984120668620000761042989307205412371316775558530052681240010089912921148995119098138213273078281095618431147524444626812654903355527109890812843157007216765787405145202633409896172016776137529478548664306900686692519037182307595563899125674382868245803918966201589973785968400318126918859791822806017951757956643428281349421742407216361375365711656105536949787253815571161901014207594968551050594026625011650659092540425573221300670629874513184936927370241124058567395217780023059165257796871426060874770847815123949933617537719744451725678744885987389853250590876860043507584632874536582104979244402063938507951866149799974757164983006331693873909090276746880553716234495403492274569536120739284490122216498599013551911274418512875052170038770653667537361739413560539406943430113199628544068356459963583794623142200484833364457934524564241706420649046513628905309485247138263639995981154377585296541272702146611554282824589692481889190307319638057939996596103535283429209189912273849312479990871158007420481995559659953890526821353642812346483845060089374442606767310395766420760808795307955513761695432798174202321633043665532936379626742963977924071313475911424520409201223996653707586661560049015921976587159616147596691093264085746192011931723296659688515163985774747510547395950687813070640134052978475936289202681900141660235970794152572524814407325953183499119404999263493776677601741128561565259321697055923664366443059497150232573621942795886379676179815922888298796922343742907729646248052733164403211872380280734783809781747158148612312802176737478808063999673993182610095786874519488851084506861967401781825004295012564950801743086960039905160476112954660838069829704655899768244920006363206932996293453330168652698055844704135571915846065903135217127165562177689066801211366364386863503529711126314152392218162796620958673575775208636559339922072376867760225828571185338753543285142604591127794655496471543261271545740687975216297436074980418674359571331760599201907360466100602733788223193250564436396500710054648766290115635877629801637382023801154768142548990280677312953826175282001602242933862330849864005549359233154947676002656386186538504601304117959216403951972331944414916310389992492624905577332027557215009462988034023855990832484179876943634883284768548031528222693663534309412074563738051445939982413266200188764078223229662284556910291737227093904247815161033058770702280465953391358287283518237361196842361159388581140726195861517733713185824469097599809034382098769711502856210397212853163499717979981983114064789259910266249078865276268479276563390765770231995533408093795450846025273775351678466856098834736740778009029735327935157291405261061443482653427476743045907734989272066386760817342913896073081882949876143192039747191107849846241454747018968955051318408208425226651473069957875788298526897191237827485053418284098476087285307536146989766812963287490642649920951597238958451912456363742004982801382859178263070000755712564071506211016120687013779889675652837683272951066117684979949554861367872705189894388290982732211762691074585145929480909049090407548212048108163001637785223246638050014189599167883896583754105114023465326082973285214068353876346583061475986385693582679582156812220938125294421262404869953529585036054211752524757597398835934161957676185756101674148742196624852572298991565865749379416543557365385182571057415241958611967724718388384404277760967400912894294142419166551123552546236855530127270081239663824143079647492970421861267409048773760881438680759381562140545097339408814816495964068327030516904373302328800985073347919133787915405637830945546023242421572403401934374116806589732662412715452964841150536627783355815346341941765783304465583812576850062168590781500843644161095476610085426523204907267910398535271289602100923278971822160733494350672478320578847610893819629771482269090150486226625502077499026807299320042208288175941551273219409122216917766478702634996725460805408945890192546454028211158559490252164566159870303847692011990869935861241297532966902752603716943413496013082708496961319982543725731915761521631704275348348974042741250593531402880966612275813687854947765043826352234790108922734994778609153083868789386651605827315984792007908977321891292891933334687207585558887953145381109620580590057719170675160250964997159464343437130776794050841049363461621157170606275851177404501169469437416415387393537831203188553608134859984971819572446621255935651346836640846803368974025333501404503019582331186290665658669768158474507386230869895490410552732852281066352442454091755249328090718230414168846460123384929076597193178271810643713990026230369730577861937262670280734595481040849904935784704671688423689165997543556742543181498491655961901330178753450235293040457719694132441950176445138946886630853477376887492716157640885074983444305734563434548144988282101448074823857925555178163843738992726852732110948330888246091943601633194675807238204947067085509434713098591010533212615828190200070244688463032723683215429962893071854167054029885371490324603027791781621226666507026503405485966215628408138002044903824154404321604530604057727591891047381203323901931309312615453649562702126190913978704878375252261630309797078677614814009923218507073035490168220293101325584115845011503203200753074627640491202797583784427082438236447543132141742198105369160306256714191627061974175225542223750465095468058165750263635650938865288915005365556209481811161891340878328090675704674416460437684279293051251679375456970889876899355138386488590705333100305009621678199741202928646734776625513003348718672315185242120014936334809963160581522486233439655131543370555764858519192050249722392461907770285546813760234736371895174221749594297323198599312647255846140855237426768002107033340502102967418917513453075841180982009850579816332694286231812322595180734756782272679154350314701270529363794175418575909832450244267800803306520087384235488032623175824143987651018010185477688272856239684750120509997266388657097201895032415363573116343077959022432295175821435830968411225324201725905783288595811825727895635867040205066664687137331922356174804851834557574647058585528206151045335653804081729970931825112284799266003872633096578306283721941838897040625813732621165478677922468789302422616217323351359876934704210929108179328701111964397368051627419172076077176166326364460930157924819927508780651222226632196467368691255085681008176413742107729887373098667922678141529146428197762121255534719955562167905586234029545893879636971167628115198976311490320061920582860818957454550670599526630572310676216841412436852132054959718317766858546174183362665292596618970969805356430790342643928881929610191774041459309547786356227778954575683913857936671951073448695770876785011574255581180754319404322439174387855831919012542720030590052340405301135934380907414258201388211138628457855940153768614330434617494826417946506731170301612066984076906353934245498857527772827839555823820959816764175834313229064067395092693602167202839828749382074811021837698935820085205745079530001505709409378253855061799202174090094926936831657490305994555338452968009368611446203295657262460377685444064625103259942236815107468280735288030923685106039201723655291748849552669302288203438565105621524501101506306524498419040472885796814876895224218053787765356230712147930956509670413580495451369807848318725081486557682539313792864861895456297569340824620916459441094706848500950849935808259329166315229134477644501843905282689740311226311328947170108969678751287058533537726732800086854919606717981637107704986107207560972799918289482294410473089280451886087263724199863965762911354857230313646496319741217999056666425609640827196822217777864100870984666656173127190865483099330448858381731806964444550633171888214690273933664638964978935468595411109817066915705173222219782006282586568545508592320280004290769961143741018028098812082467742199331565229283566069412212717137552723191818435003953934084669889542251916978358484622413607623057749387208597635302615006123208428520961564724693118358560233283393114887246253674214912804610181549594265893056802923331854733011411699282585502414682066731935848307342431665334266872509737599036234435303602127557082603051881442708164830002170863655671386297686387496060685430341301971729886584567239584860113040760931854402371372590376675696470673481256618475070254409348552563043351340650561628540822749336142865192732707427683859482774764080754645027545624840085268853499213562673835446457057055729265374820153799242672390760614364647320149236415498265045310302144194957626302583344512950868801537956367248523376204425041058941444885243494254848829254242435940433300699971811289080826704058404217030773275170050997665684092367885211195969993505992514137692139046674573094638726709216761006017323234108802263219727792288083182981581213266462490290509811960517142465837918006612539322211831076944768546445482530535786214633109599213095337647905526862171716012142424449629791350792981104698606332592454469739432689483764027589799643092924302619693501636115565428032171747497538358854960130185721950969346194812156172913788876369884774853383863470308851455271461741204321876286174013438424515023690803760076103937534450332432093576002066098712389407384373685417347602238085165892313489327990945597223655951281644968092845466793272612770597939861579542344353030959663286125135935585325082741542356566869637942271740637300687459514852488057456776556858834633258365263149195524097429030650557571314680085694368202750188285928623718277755692150413156148864923215270681008605135687076061773090550897716651140028680135060309089413872130045646217870822314702196782142583791523204917919605631208159261029119561860719413319505540854569302195814236724421465760520659774814541576021643121703769894853992357964897816894542050739455933137494429443210032720129644969720297491376296100581139008601435779102087682466004011668259829677407699907984341637675919839576168160469902134850147529389853316743853992446716904276746655839556301531199772796860218685802615895743821170909059005042448219699372755176477290642141256912518526676629917847729419507213698173518704511656952584443165088755515020456273033806454247844550184815587897191054086445340289828360185655197067715246029543588452908008856022409759703714408226671822002393054198350940952191923399799167016374583771872649419254642182383286525918534219309922119055092379221604174394839225570072840462503432174799242681008776361083136807843304558158437740591515768262794982945718188675770387077543142898383057229032702442748260711000317664406873175350477174892897249242064328499797826674341409361470153504487621122350287975508184987446063112116735160158476240830193592267885211822726492786551027741277207136743503031823799046838695687187469504853568890928022845661234570826594837676138189175923819785499036326006971426271117408168402502478402399990994600776178387813525732723701348218650710102495474615936732413136497397634289392952652397905519382514384486541218290215663716673766096158072783945505653090234099486812107343170737178833217132353599562570641989068951742585858504166869187550630904264979105435236054192571957438472486388183517981507461521994420843631499174972061046981740457632090448810155678715673489383483275904953569094927407912291152097309256103150220749097739215236009421807522315202992655680724768256207636699272065843089312162952418634376246558337403599095717930798038324182808830646652329397782456329695413323077682787036231953057300060809355885879970580431989952716598062951675379421789926558207519718034106700196699182641841804163138094895275935116857238647429366225004790577529465611848652543270270100302462744725135967816716433789710076098473358538509600568145265162794261866557261814129378437742823683522861552330482382334800898059036328930856432279039727525362700475640883983673449916797834448572539116946126383077893954134813282523702158239356644986867030667466228103670567102665883527946191860083266309366079157851811587567701005273958860088936223601149028281021369064102903936312168959551624298483780721836467832593380104860911218504250539996933442244839079758680299128244407492067167234226179154893337894273178928124898552173513139845026514311693681840208557925731474507030404148974118168861621518957850702293138743092306511083989032891781615156696110817869400061963323477048708763613434656748164536185201874957817928429319486850529272130636596303635652267045135628318714194129707166378421117379586623553366502169425417848006173534952217274235735476888694995147564867128074693432024680146534752436555688927018000171518437100217481172810963148964945774661591852594885163825690967121750994517533836720644546939184170764623894979821374490395624796097606032146104147028580315536874175577400939524852101002977216330468032233803350009025229185492906279712730785921760820372177990506233560731564313443973617284371904677232106098007563703665538566357935124369969635741049921447877152939559897341194495724880316248936771992931642256262814867624621058035472714018690701901085187111449184766656369205858229433177380902446902330518342871911172549090510285253671897392655263742622899548233622460706884294701231345761995813810654760141843417930672582499247685832131966033465312004303404901476389481137873713201028797606784441523512286977404896466242264478241191597107326470056794897973303379030311964219762752574743637750630404146437900008610779746418270744254890641089072630832749973171879130777548306794649740060030919224472171980532940159812420568895145642870940048659921844032142781285040641851325264827123920952135800656292304890910872671967200032259218085562132872031143031838000731188382738291850923412482575408438036473532862322324319519132636262770568083642237710375170539668909436087565659714656068692457433054241045819479884758931088690419493711173200266117829833581644151963706225731930484805765898645498542217455395142044783690247663554351584892496158772693233660575829943909845865865839363060492760226144876132509401080546277517926182543135998136615076092525422015906966979822228942620503241056861534747519790041554416475052892453133567542615886315192897266438525881450129817413564707105337361268693317745467511258553341518673719191952901810030513081329718368001661864253743559760054997989837059072047719712910908725001057209445174016140754874621591470294090076893664091863648627854320722938127199434847451168651300974586848533797170917503168652434835968713647272426538592291457480969440400364271880197698143228422321547116471328141447009327602017972482876702015430220276984697836562045706113860546847851190197083607192765776030917524379324928119081753535763575244857230577079692052191791753588818296517032656543299805322240327220508711509758137223598220038739242920837335645969336141511227239929958469647933102728112436556050625238169411628722796314090498853060413656911556040863356633268778871999823812090272504463145788691482917534232782925025029766241957298053436721852419068819535883028756338733946143078418518318436829737721252614361281439801587824607217062675986755512001353259175945001795203208411639898460623450683902668444652111237236907771267678761741093868183143714561160892615083083876821458225049124056555508390184592697150113110409296231973772988478099447606076271889837063338126491473912442505916167605672509160085377849616682538594242934555100105227248258938114593918256239863569149190966572762570047018860163862665052552283567903463465291432705279021641027655379617150569387578256968343105288233804557382337594695897712854446910764688432018843467603911101950788674376870008294335264648380540986149058674911014769801445835327797947606377261396069216607753018792254963567350527078247125380562529217633769012584427027220804753124831488136609300927998164363325905406731612269535619808174339049828892548384608219802247758875118549869987714700221996802635110776134809695798342867459085176388107655481731964692207700392319226743143174441780483960234852303233026830408765501461596237223504267497386781750615581898577480907339395817252397034698258474435132654799241682170668807694566507419929738464180130314902740831010095212546894385609870871660975375146609493145459031278095854801261417588142002557137421246037061525887700572611691330608337988416090397826824712437775129998735570822784419274680601876621898562020454030879896579743804650206372314392781136176049509808862570339585313474520484113578903516481973802225463381073702997326769298537013071275854028627070874204931174316866613798523149847661914247817328619529364490254445471572031361273623698459253804721808964357512888919022396821595332122575277302801017477501146940371241247176900007400866299949935848389364067246698512278434836383673108933223473680076559645514283673765256347813159574171194846304706241150070631521294619601415910983324988427709926749573609571781492060512772471578626279539958097867476014627050836479562993325694139243568367765383484577637354506027516794970348258843660811807207625804256245707114691024641887273804167812213949494836665723958845079004984729180210100724470179301205677458895273480738396101873357272504967051203697651508812059968655206216333177404275131637885885906473603012592152401251583916995346419603623251515918379988842420955071522606139188556560905578143238191794540869557293128150971739575637306814798483518775153840520099829246690553230002691003479366795968611702947019488811933078110930604368338241268884911794977025791389322565929146062522022039281574971377479446331131266662080597794389709114782472446892277526059423973332386803400622169819441960605989426696003786587337540189974888444495739466460104184603577071059554205791230163935827444417910475266129561105408983621805735871527941501008070776729075810913176163410423910074737344490726309522047114936197620552728719210339362987787554762239407415776136104808791953541568512821532101954541554786440463664577740215608046327178560808479904480675044983372971130782339155226559158173641672049013752437737545947343091287565276244047136733332486580747465628314682024338543768000980021210326321970503383210341610120790905649677967316159078095606628826708561166702872140749319917704621199920114818850775167590202078751330516299823222961430405873556911351388648917555053472012167062200200021716425035227591678610266160739334961764337733691389709497849945798193974163900887494508888864985216506358854093299431128145336810218152268980271269178090321532750793834875237381113286127048527989966169686811579825903349336025875426536882474900322569903069511428320601670978758041239556821054949910040223213706741864785586134728825176015878324603963560476663402840192047467508138079452872745380418384866551186750940268250157706408730902280365385631426845765171126508365483982582690365718981423907691593637079640784999202400289180602190838343460067573233950386971036354621314913527937204404533474189072345034903944682974893875758470942477251268973614551495684143754336598048703939748177135218861402253472297702916909611410428417945284062507883866407057474801648046927974291319729216839699956826407821326380520032665806767085469728854793494329978612358288613498639964180427757673247616760396490962187497939301168323197170110497358872781635443914439741032908920586200913156675663679444870723654278813359157138957021474028149429847982224954752257617231869789953193970645050223037143785054398764979337693119157024132358302914875431044325105196114937586860778501607057911167998060683220550499839087476414215191565683579429347225069372561537721728866983562607512747005515590329058478413293115420784553069150319982315007544026277319551709741926939938470029098661690005605830037269878800973994634265073909286712629187879399818585372696119784763600937419677327288485397607546419484304327276812783474363494281249011926858884616439281915368650195072166610909608754960553548010573194350885159228561142179867646627318033524628554135754862046800387566911903820198539702531499182608067893355531577079616305247961154789132583292729866212471975399797601943879430097214516901539964514372282509830775660839338716189015128520757083139898577139990147401540305417927356388019377014264881741065349587703266140520229066005501152399530170034388264140668280391591310455085783265525317043560271610973170793288714885177874256196390552689829278093083910037407450825100760975245813983801594185731164171171121030506510830551533718815088298782800199652608192411112875136156416006639695279588879782043501193784095585837315140664032796146827670488725118707924104978335907376821746028792584483506972355681686708001900639279389009537564381321331045351835098906653026798338951683920191814215859220161576235154410607362648297722085546435418453663430143474215465830949259222101701225877758759509654822275907117636596762131542138128872478213449309162930241191086490841171077344482653383921225299550420395747612011848806138785672794318686295264767563653962536508146331445777594922049444594943851284536099399302330292255078000631492517486932755684139266655166820201289345576588562302995249463979620618770177940222500532023623855657385637275076544571269700104127641428551110400211433219816577183747970537227977019212040722724885363455142127773432872464694373696986294837985205778140525631218450961144042670377903581068037485533314219964589324999826518374676204347118859243878135760751924607506323785151854750680607976732707326303354812191145816437203495987645448002112261313591685380144628042274076299306339203764799842671542246549903160217781782149363366147376449891208010068712486654031747642981939888667645636105044600861992541425160717323055297011551612699134763160818397722576901757528153257820764188088260679244100880270901878444683066953402859590504394977625285458563695483275000378006023936838023283272556073223715863214449982763160471044618811428172362405307542572948946838045955152527233369171734474870518107932217046028327092282951523024801459283190049395845539586617847829583248066585872806740386209670800858162422474862139240435637093410145207280673571884468795998504890720779360729985559239219432611276129333390775126026401875924943421852003867413122606050393016014356879839452471905772491833051999476987180984234287306386071970079223884369130877649521551438156142565958838104151815328404580198931486276241039048108274882862881959163509406924803897240611000285968577914413588213805098072477481079185825322288308865805364308993756832299360548710981273870810009620305343534053806505285921935168538333895579126174268381072934053045519143216717367902629362633611715279747378738353158981753704982848928720606845428550357122524151881246854606542356560474522329596227547803388625084133505364478775638838644292529858490778716582461919052629120532598759548319483790235658782828874004311333130721261748950698025671367547933576047734280626901445352042105820676937734762803210932312519296892159150097451372795383960348618078106486674325173842936421154448310588141454070657164354996220045149420971273064677462361826784882891415801552605547980796195624547512445046511791522529693130366983470538836262337011699987378094402557544894475650580391174740658236860648930718724449892321346494797573571174030859212201320653504961021061652705062733353985855684925956825696629497016892711368535753507145450861571036531205575834940647687749072242347690715422418927642529663165080419120594926217513255346233614818932595716227012507596033482588298398185565579779852752219968211939239851777715050713283408985578857340599006725729728076498803969886690739976391346582592997142404954326380011196803199485532129733237956916125354991061821022347934194519655428963509363019806380397291145788844408261926927345367822844562577213088916654910324907758313369743543885058237613631431023330026276243178631668931772068434037491371052251927573731630041853426455533889410870319167812831023251605270159096047031736787013883406115682855696802421837337716597403855204074182294350071169823276036193770671285537010916548884031939911114680631386954097928018096154798039747906070594345496042826836533895590915264832120602579360806057644660384789808584181387866251531309064184551762507692154535265983419684470441042397296851574317651505660329446276447138696907577531416984140226196903526707108116632879226893968057513159323159326009450768453680818160348338435770360441760831982230500908169015780317933951911932378915814686801825069512036457142339801521275569314744517592446349452718660108215928515103574118386622873937298253276931645820998457578854128919867512844747078124261728693445962361619066984998908631859164603990072656224292715333224304232471607975666994085366425976868811137919993751091581147232009048304746231373714620836663411340999747621746704582756794399272558022041413775462289803517804604377113220691571852405656282625567506295557994966418896789853049158248291909074644970442080672846775796954551756803271118313033678766373659266604470720968749694527478957192814752711579807998184743878703834151212931553316034910074780380832476293821177895320460746589533803573297994080332740344634052502753333651288296437952738783130621088131413570630395342713631673282573525110567416304020225359297895613323851072293289991795076452662150380495552678996859281044528170889127527396115645580621333587218934920501520770274527046172376349629437633122081766688556912653432010488679010479307412656262582593256490897025253752075269549106611406503850650086774950416953961668097414714377072641652592488829488464960175073362985792877697574093761986739576910133683917110964060719668620603316424372808637296336918608683425622810945884312157355177339200045522199563809941619937435143026546316531210484333743277712425737590978785196227861562066041818342150999207839464798350903184076772716096851763679798885036769914923839061437350660053570756236414291262991293474073282515174117107879749634507550239969840549818404894598307792748255405948372949489448197447585989297732387247757076245800883591970349327415584768212766669378101066528342534964342823424438997179810492908938417514818174923558652440213293042355212327288111152549782870785484521570073813735055743811672531078112861239004722908835118027305940102468648246148727606703656975560543580720745421398435297213576035238313919790737218367023909530408868272244433065678713540660374992854324085657702756635979118002991876691117097767363210957629606929863115502062518752234073787170936582599196462392605557194448811103197242871026981244199200435472432094523866331644139026557954638022809674021059414101229197260771828245824876677325708905115326918308936394765188248084482507865524724933764765696718423275652573401607805456786067687945249560577420085043013624364051262649929851328107543437448782032876878270963451264688099490732175015291465742963132481611177987979722667179316865144577638007971717694767246694063252502238260347472701908270373795114621573528450976401950538963936267334352841831428269363685289840202110611205019050860042603608404404200668260663167668540329224463940759440754386503210286176044415502660958002813038030032978508382441663241102907569111036139891924443596086556010325251943512400787918569183652841237828676181342765202301460174271158069375430233554444621632870286198796953272922512366618147988040158314878478677447506159076766136904646978698354067721366129283516012459736226717300333746705370694735107441134399554035846946879241560810605781553419995906974806532291828196961860858453955181961329080946738307640884425637372572778473857498329862254050572642714244501839543560704185912063511152735963442730614150408959908259857387835221180904313659726342227388796597155871342087250270730524363986071660559014982322367027285733985429423603514833896253925908822562942158601764662505160427340121347458408258136835805962712592270722825029044451320210485305602339283693899869900661904058374166614275286126853579845735511717230507393516667575196080952058938794747014304855294440560457044240151299717127829500322413485971692078942022061132038598697412074604555581998054720631435062311529862893890500277910284333694569168228695020328810220140636957474688672373714809356297011279753368789991464236244771806850805896867737481813429028125113764388304008217694873757224917986882225914855043648024502740913275268563737122763594698148604458064296483057545016511940903348777659496405711043969573026864571447768471742929846187609190252565568649557683890723263758613491924967512924313410053508229224433893450902176595207107152292536656776863858263520277683788767523670929247395177250045559893716982564769545636673330785282484958493940995251362902145840861037880442618197961924353188190558648978967795923273327651942364971938430081328387948827442207298126687574436877553139766560822077852588869800247251481225915572102126832058861255705819258093648325997893295551792131109878543903083799371688019043863190447633732086985272118475729265834019393302786780106265322320541318374392992887109818512190359943207856104727137187213479225659716919785151825320415121509151790925879476688317233607386617942786433758335398899634462823342362218132421112500778564993994280163249111042724948486055827724138419062477194958005802352310868370016413325030262304920346402436879701385366488402227500665938996034182221637190040581673084495263083818981031934810360003489925275031292846520600987630244290353599116782881558927236417880632445682026859182065440236731072490792313353992841477479690822178563988354502968530885593557707038226057703032564765930535071569540224814016878392725665848809040052713185703511252412908388864625764879289936234252446538503118712544036080000697227647969873099808449323879880564045255121980747322281224327418982495736283138570202233752053669929099588357224442833508026361122207825340102608656524234459713349318681171823823613921723628398768574282404408042911332940016015159630422956810077769526561700595021337212874290649613136946187697852285527165215999206025550568669082620410772174633350251989153578870821235040615334158784439066192294525790862559072265570488462443790321720914083040770922204009458230733551238643263345686533779061815783163652303383622413805660877519685481995277886754732576151895418788090751626477060160418980116846218781194583803592666624057988348700077297261968044588569918362654664414291768214412622846391268733245438055026219489393770224963891643726908446588248665097201496095380206967761259825917968953477100475981475152483365632349697234021081288904063309525778677973652796374380344732194262669524696327730906044692197288237712164078834478586492828502458757966816769634686664797584725056414440509168120249359005275270081001530285377067047337513205781675099053299041237025262756834826568945895153973689133002122898927786949339457520583448595321459647516513836768873505124874766113497572075416609384767660654363117746774773739888568675658375493672701140559224806760851822781742236466136809108701922541573213367611412799453792410119267991709748287309422788965201255308174964695377243526258150707419028133506627401745518316791255888694180236376956499002736760732257797423739565846666926869979359143186959023076829965327996532609814210085891352620678999149148498275263339291686385153177980396357036841750430256312401958796402287514136985296590321637156397698361110016829182500986138374765611630086493635361525541101175940522339787270189800211997007497290699799394968568647316402049156167633219461671996433225004038466590620095935559442402756790441762285138310453213074410752301570624951310198414267459551638010978907269987750985033812505056423601319085337996678039931767083016519532610764173030222631177173581171640702917617218697005398512141853262804220353444157610105449098523288334121520273325283224731071625558557145914498971812033427800495606048031990224598317850438464101136318280887145401223006584107105842999539423655604447078735556390287416203490542677366401163939271224759168306603719864364355202941764279870093220771062968526393892589311126867736224793513116694685929687437689056460783528184023253884434633410173633696204946594600455202250738962149747231039342396969808929538963708097929309179722315819498376739220046867174828295730571973233062902782628744193820759681186158594508621403825025471672114355526789128923934491485017515564119548225927338361553871632959630193107404012822968210568026723250358705264446120130727573180354306684455879536081768969752258364351207212467604256873038552096911516845490370450944103546990892747725617836501801211493903271561029087641041697624363940841030031525011303781351561846187156002151665068493608193960689324620543347895091088768611073140850950665878796152333165032025746905847428035839460570945970045915052824206465640168028262526791329314741558106280258215805873768630210655649348646528393871568042685304528924793122054995626531612712206035580702020913407005180669269315798727890331966134457674369463347485212899609452220682131855529778121257023021582016079717719662311714342986096110261671909531090368868995795325393958301447577109575168218178108957429461602515178931167841019079340178025688923644260232709912654589867555494860742597575699175913147628985587566572367253693656195583605514953468000171857685130075485895041179787062944157077025104584022978736096356117643477820893290330014901515473121568748113747622712176159576891161149085070170808931186670287204837124491221454310130533647786964836042781043913004565208194614908962130152144635034984639006851695201628042640446425226112359872698118005387068421354447492308029968060474621839088163547226668992229037493357336974611529587747985673634940326017054984904998910401129179457779881068118516791513644229345265158637891078403831580932154940540911118347711494198684204742229773924233327500495581941614819466810138085602730713578169037712481134231537752109613836763744685135144975738002445177142223728810954067209513828266961270627224485812671259895086388751192696664578440407067567861665875377846978734431855977168661091409292330814664155161712708016005582135519220398961000805207607625618138397481361469896611240631578755037642261001728715735506643859560723651165143262433971451417607752597798785303204501517318430063025832221543196778793430537074608749283286572028671635976670981488918724613879548463882181378768398018067101308506262319252474249575852994255454377948053363621920562413204475460984257319295933296856914010842604599328819184706990875357981632648690036425387277396845342989395068316305304506416737448067161855549904170727823369080642656706670027641163761570704393089809316800189583494175180629243591743828955642851350723777330881293945832159502473099220418935990169255640018499818690372642131954490866237805918434846537212954645815938602206213279794267786796980108284458653927724855225841586886417814723439190860840989385488511524655163788923045155753433748291734679442081873913464479771890972052826139175874772725120169528426537536049898864338443812969217394806347778549876610073692019769264040975182942455604618927745260054626364280537706726127576737283204561368790448937768525190507274525839602879315359283242292089965164032908542795685985290228084653674431206142770820681915103720621115769655208141357171022048885344601923279140385169145799655049943373663146966046587530612904971029798615436145763464988239084085051041108618403739250492114038986822112605405747545005557280757824643581633097120905204580643068494921881057010996535961077317843445338563333443522058928278382588341692073381590443057565828822141491216028372682753119473096896529885684911653402934087959917550265450598699514566979333022866766936271997059297413641422147348895148546827306011585578101868952920061863909440463926004351882573433392082274229660200618409764632104288738625422645586482113591076319567401350186149200743717390875100173503400313889793039400046076007196546880433336857890786006928222215502974342453527515301742368825183252712579675095039170813464795160207472034762555387312100984121153898949591054304924920852233291337928137284320695633574418041622357442410340961952362262943723281110847674937691048661817081724697488644890702390955316081534684304968909615217962262207019931060578720343047063040321398944364648690720080036837560614973927783522705163996613618141609408573627660491051478875180707013784626439891636937910928149184285971596820816984012715511822710880296702224648664159260769280621132759362169494068398743526714973428438865778911944920635568425019361075815216643162126318759802020130896383091351465039265733171579559817510884725052369018391518036818884540940372508185074942516254962985718477323409685485694515361771674876108785887277399053431749298287451739731011988675645583088848466517101060607064596672642649618593013821279084868888087562811157913386668887701717379105514953889960106473768043901488037206677814727141504712709720623613160901064849893793791639022431383487866360009287687803019521079448256108805102908882469557710969681858503583141966813941295630791967211779433733307611984467399724941142259057234948531173264984826855539922458541771491582315812899459530534993451946763983780896975278024368429876259867457065948878199051823987971494924956941627177856908391960120365207145463381687637673113672392475486363988679314019025507842934348663386796117086008192404778396436240320348744484457821681887025912134119097582778833518736107756043756062998182020125163045017950743689702453156216942665358968776938746007096879573208057213954815928378352016184438794017948884543097999724152141033785702283654519870826590221507375866662894853875858088430210140006055498181006881124654892900658871524534811342224526376115936581786487686590086278790009045836003487833608421723585117935716869031599717685413024922429216479654428749252501592250949815740977167276030459649967402615338888528353943037194162858762415558569849589328815164575736894522226055986635520302913946369486465675494095220729581130339112791112261716256885886711149312077556821642043900807632417631516452146119773379533103942021799244056727778677842482330930335133426071097873937510770960086425521534078847965000722597710337982881078093375559121688751516880187526952734312332238871836902445781799577123881623740658929227586792177168421967653233310503560030165998614386091765217976498308650206157102456405833107540078934922644696528649675595698715339231744784338826867056936783570601209960117446712453816614875871887867812404503893824128651294946088613578406399965943667472965609308333020605613973151250307137746548810818540580362470030683002920769103649841101856522222841732928771160599444758238050055414427735410479900643914187053851604096516455423818808641625026024262766501780663565904198693655643985893030525602610325431409357327337752738531137826008677122421385173943781758666836789626197515115995799986551659639568963201333397007358246405136351789738939606161798726866645442947821395892667073178201064679481992147367528267817368089585133648770921005916912232160784853856782108812359835176683011550409370275656802981962578490506740001615367127787825951181330659164142639450455186455651533989367551206856264370250788624679260048966302762515103891330288699908781189320560989014459620306637422327858225858995238757997938696912305080545095577904297515721266522935740382049407985606018329707398157732721850012258246959621180592015229640134253837060970718280952063907547245446163022830784093322114841813764833458128850796445369001877329720705930602563367801960004891569783163884378346807059243023669736758200918087567007547883898686021453114214892848679224781292413677079759614965504192998524295981722381238415014339134977879161500826344093346922361764113142427067129609022878518823457752763498135865780697801615232215092444382504957038932962419063248418474723842824607258597441604638937886685014555966256060820468243100950578585455426068993262911168297320034075940989191220163861007677457994430269130556683407924632009922273738961191758718316763314900959801974814181166359307844162300176240705078438660153038776255049379629514603839291795826371846241460457773659815452203497752872673539559502092609647511721778617361490670720490648962503624871384336664068447595412972763004520913311443819863854925844282600063107888078143815575626332157866835187504549177316761672925098989743041136002287501936769208392159081595192436471619966140704416121365758640127645799375224717237526810515762168138517864443054243409230845439205606818593485656452190761519407177689832361834978714638029515586536021087478232619934025812621544819925886186388153879702276233283743408462612112692288279096140151209045448935631439640803307226201825984588528465275039675204308997177508584161419692934192487635744002778381339842844064723453193279376068494391088840110788961940214741888933961018526390306370324957422723661765702336279458671402496602664669891581690145865655169359998348381623765971651693312394685131725425203747519292964589781990725119531733057325767959574243043371771139022013381404513086180557348515720823372795674700970268150090325364814016967812393228502733816190907921274450700056558850194666080962544404859605269431645322959390215102775611850521153066650430529940905073452055781629872598414765043170827210430508068241236393895979910761479159910602683272738484471986208221413305296476930502056645244601213498635200049856015868478290307736493734349864226467260238307985578141422418888779154163857947640985057814369174675418477020825253951493063672354619979125975168586541671784416833649052939438462089439068873509996611760347551098885762154873604521315815674115773951310912551429476643283138272405911056297711967190278718028274077292429965341082370347363366080214154244701235196943238120555405884975627073256895278756698568331906099912202096501735842909657640352082240555759242240126925284586013007218557117998494071331562750991813770684376717433974609656289147454242468361386676739630791681559015272414294498179322987960987483859249054736256177740039205592630121747892738748633528618660251386425503759614449786856259655088787654549317943258714327515784078608602532691833842473772780574501779523090578593252504070645421535760101179770576279262299959699291987708413488404423025954545655610384465169859570287859794095747410019299186280220722419048200761528026853861403892256354077529224302928892507126451376991429460113995206820349509532802869902343816649973157094727579214499306733913353113366463848668715383768752821947003333011318785489415175062461026414693299595874144994799175938102509673693758014444891644851210972482919205530026956116541297252204696236782941753535284295404114424420850276404132044138855269092697220105634108359362144724164917988137845940772048975225732595170496692756620364256198160933906780458364840776768838763152988249134825091861757015398173774973847657713645657829679768637448564897623023621490212971223691797388567553736704739896025018582674059163530435371633283657136591651893204349702806968733067033144959159730442792623782042762441333227994557964064866228585391945458439623296362351847301890222102797973608507268547248467585001894347639284981498193188970589814484935231360371486765919563666412250588689086815623850004134211310737719876285384951483431705877920116458784792737719150278385624843031641166747387597899917167237534855086779320760090000711334928163945051485260770978508151427961772366529945535910344011055039685082264720693146500852327372552644922281239054177161433251767557880917887713803787634899108687343917919122674211846026642832789673753848498835121207248204486178885331487615808190823117353628785680181732686352368099286453742456878232480769662293076285775135999198986623420999608987695720535846924866156661517884849918474901730066760433726050411148976295452725081800436977005209589309998680845868882397878085878671744215653030717344648362193421757567341598606001454049281902029578794003757839711651602088437679638064071590722120607649619223474289385111769537362452935665714877082157552934021543095421857369630808380044994288413758861593544690730932282166301889946125665384752405617725465173766377391145978220444858265475182839533519233177162035680250414509294509365699750531272596761874649356747407535128605659231132164574547312952111873600317594815694059681007597839212357860504120779740097514971012591267836980297001643662031915020499636405313786928597345198627353652363889614251210747143345518267609478630872942691997610547896001996548877251038273820961815229402440552363793348301237187615162663104294550588336652325408731066565648933319656369635336000239332868740529414440831905888592781507955323167366577916936594134356998749747312696327520205536935104280300446087944626147950953396291529446191598384526512859696551228324742046301442715719615435915742816656111448252141021270817702307604487944237391668118510403817655523869076432606819408486167054892263740071750582937582603366915314321358936288349999020825752437416670580614357862004480965007597313947243722337813437258623200157058845364879773576783562609032514296386601989011315896431406928375308560011154552669014622692230778441970557732300250705165816475641746224040139716544539175433764771234668900749202150203784920327405989586122893807192918642450503404230790795789869513991808448709264924455937659620663116206936679280875837907118184082874801183198929590378450793370021361289527610112768086206117562939194049864182816187076998228574517378417619330522296998314270471628750364995617504365422266352909118260904981944026139342844119876705570355924702289013082821638266741812556366770777035705114485399785485418912473413886676481598961887355920584440505092602701586831975194132281269282715747132592844666681071461922700079907182337501590749304301719608432649479186785378382324592872423954697871042571993223614960924836060681432758706137632389548984568837254371875673935348757301489303628875644405946759542762308047632669879256105979997581649003062319965857267341161989632971438658245541457836688043758464332623227112267320502923648066536880408949935334933512484118044886282424336609960343986945774328780225190032666903801777201849906401682204805380851398402626079592797429767929764912683019053903186711315422554784290424665803399834446518389931775101214722816209420940868086038548789109117151613877492189133356103306385179555372236438037139347829302327701935196172006062171849870692439434213949553875927097287779521177767152357783125950647618690753230874036359117470079650575297472545814997351952604649259919617185769543766925902697025235022185033426558593337585043403161870942226314760865303524239465554578362733268054924535015502571118331319217742265215126896831480156056750159572315408353305554796419842862241959946660670375763662192170384171817735834914117083100641569533594796423390366119883977822330865601243511351598017724559348515310431828044252237383016627680706965987631863044807833296870601603046911235771239792460646248750777248676253585642591581939877323104517200171177172794315796127632218928187377188027739469968776677008140292225666296078723248562887524200831218397349855496878968832234576834938121141459083104360035479049933497009267997884725792998245898394409775932423909177356024847459022817230099755603731353617033513492906813727716116961173025509412276878558888053850261050717466014069686562272210724014392010706874129681758666466449176256876319501063708025191209457070855838391228701563257079555265909827972372321223642144866448277256056544903264455514783663507450005131113529975701235115110564807170813639468169655943077473055061682253368095159525202859862902263663113336318557474017518625017416734486893601549127618405913963392273084309665147109905621319109689997410924833992074487892129820343973946939890144166968641139947253771336220790615184222705637707069461253080207720114121464077951490493797211957001107024989343148573123965860038986350394746645449554971033088469842035317539457237381910075477800641937770911762022544526091925291039775863498617440184862059731496715274107834622627194363174801209166027543977105244052460044112003421514634310656924956234664093063973479628777853299235409225438517909022992905621966867174739745153783207427108821654847450300380463591381827291348416825866523794317221348351007403562838188870932875492600858579084126307798371997357967016235499280020170740198544789267189574464413768542607225099508736551795134173731681917779256667800294850719819457576920474660155246442034702736772324150845597903662982530275926269484898771557667380041357836578154063880111071369760438380714382820677317933983480621147876659677058034715833171238038283668024224359399417987190556276575879831294983696734703825455641444350059634195613770650795895654867695600146107481035099471912133688398264573967628422747576460677954249859014503334476178536427050464487330450178818351118512089873618790461146723041706456889240353514914051903766478279827662764116047497410173085995121094265300979355115289610393958813073263167542227898106533347855759387610679439572814025402904647428396857818325764850259885838134973964324261049601837725407250752386708035461069852923309981369294572175683015856556972683803885259483795957847222279109038994615950467089279448632655941615996270173886952525097105484490999868093262218805166341602221589402693051069768001543514937598320164326972589672200284613413550855767964811196105893241953368222726182753065230451865107184597265586151091834740347776412635845183185045998245352615437664135532422863916208046530011492036539827823339340962033940218575389690495330879116317036879985683053864445109460813442921102024463165084502331783502094482479755505614137056650417959226443147355370201443572864447543654958369350099717552673082448243361933018496259042413778344466436997775970917377862392311259366962492276794173813392613435271490967050106013539770998978707832254890426326992597852244204569102249900477212260252032062314798669917892101254300347243846607817594692773927046489471677717228168674415392592249984080097079274727065329900827926980334458145743780909682182999516229463622718606471289048686189493642942359306750344059854893188902871445677044377836675144057169045970147744301159757066763615081651274005573471101178652341658994372836210512508428167937528085667199096849274204727828912537797381606693853388569782320431883053972892308709352585426740077561095009434148611567051789168774552761325109596882845161417525181228452495257230990906958637230066701692681142003550573629501575566866037852299937640272517388519128282612109964887318022797626016593822115126661471614430203037909308744045232479507637913017369546890365772574894941312699685225395567912976235691544657883376323032995868699598449432876163458046871991127866948989444932004543114177550049903868005756900287055447914013109494672138616143234829727862969784050438046730999612191663368926632075746896830478005335982502506676962892786257649765746914752407278288850014871131814400408302209063839839351459682301910199138727711634832277188542264415903342576475743102539706260371482800911035758133967421979972076151220233161023913931307110481299653999631449996532063490771212986107366063729890468273726816755837106305260494283994391065669599838764428089680178566647349275352590104387200528268948921868600685624094248501677355129655975640365271541531130766195047306664803674560660726424678192697631027816883810571618137611331500979223972758910242165300238717381295132893248495742433644287903987027466835972284194702580222465417184731075223294397339681298790773055836973205790120636663169321428637011257042772340731492327638689354132373953752049734860147492710066477859968050508696315382182421905099145776409431678332336903410475847882915872899345604640600707615278214402446935629817810219320456246051077910642059111184346944936998822904526502421524586285183010798778165098973543230480822754757738474839781142593394426228432397666713147048060528117382297164366351947575173190801506038659429271974685193255203775484600692123378894083344965385662798776704341562309239781323867852577855300371301697246188876834639022401900789971528889754242332937868192695719923585374788690366732524175413232700688137076326053417812700434106695063279485242360866530677999436856130157646150682410928027615006935789482169600977154568980137532574647546939566677881683047156914908861369620375157813833772154736731479194525973239435301121549381581279092633422092377744540553279195345357852806405906088416044579273488477526695703154911929792052962330905303566197806602269652196249284315375370816141409971348266735989135785462505941322021167524506025748505823123204456148008054744264069597952828798868336190740045595439784811263268949455833983265738640275402412704936299584634277864437385130680241214988357250685532299544638186208446768645606184913731313233738917801011748705831477544266786076970018775115666531563839465529847182322704362417359770567036839216447275285251217846173248127083758624182096019570835658524905766190288884882491859133604705819917335012790776384341119340562093080080470685038288844884953464622188520433935098950037524776788579656579689544986925675376563146852657611030227499379751544960560343812972704438968365631191366800206854147920811841592701900544219013318498155362519964111337825531000971159471549111722932812522098834566872035519353389501379726638248531086824352125356279294311966823766813846920701908582984298535364003288730070621432382979488245650845541539133015713949228298830498478926927727931516275232583867245756641429128953790743684602885388725211860478555347267246953111121126896984453815588004885024504062879165486108404768951490410220298112888323366537236983124436361262127930576776968765640949016345365163990241591051157070437870808704733347762876128782044229068087319595444539621688065843286659495132392671485863060707838948435808083906813087436000530459083348105231001680098889481520327360854741919808798034478541575509502801909710645226691033693220735620565204584743901972342674602477630899456811258172169879807408056861813710845646191779471314235583802646955081738629757692143982397716811782817222802202613781945632062239446714641051353028277124484646480019925708391450397054040336423735840508041423507002023361638762212794312994816889879260174808601280478513532402334873780024252498918403682116027363774894511235469419157330374163157044839359723001336287949561842052907281940944456795967122007396498227765402627819092542549284063337494863344598569879596736620349265755462857976219814085949055455818114583477097167528830713537617846248804012636984577734982547300483097557656743647941970766364546461307847157677708398336198071534160642944996880473793869175498000166669346034065847127935740690908016720096743772916660386210560596670071700110855414760685324862803092637361037990819921391804551243320776958539897862852030884329251573228002086335065505514116197545530896603918171997215249775357923010477599472485120741665779557867002222535440432150585350435010111920272542639974233070421955592212875176866431031548196457835382309678481130211097001961238511955995093207339364032945770030988693223714202596606205020175396184855359287563233364057549099860978454985354280333688018315424752017665870363819516652222122303798715934849100804931343023259287875910074239768878213792858553595928785687340662903557409635726653647553114628947761870257730507221395502520326463889768645235998831927051369184182755217508378620121713056909575309286523745405273038609775029803012520726147054605865341611643490965531445580682077581238746361694744255079260308935865668152896262070566121943854115490523984727843503895816326917693568166834503115980445864247468230840080463600612179994485558774006126807822749677039737643856237986964142305036697504376885019403995862758509016394976077001409711895951885939860059927734674984120638797579895154771133581351779480855172963858376585805126204736345417952884779856911958575151765196438225923204401196873401116285037594613442695172155657001390569914051786473115961474274781535452569537447314535097428325586724018613733993867193810814552847425029895573120107258206704132614449502585936685756122579490536249077758577148558237647607784390039190200026888260403123899010591964520523094632029418993029081175203361554118406920450398142452673732899934021819100907517654682696024638211819182170072377767422230523353663998391593292304117162775904100712670110257142012267357039903169161077013122533431629068501893176311085555457865662936977305098414148201484367660265974685851755770045265025645833959858303661133865575237563609085248673270385200058362078002571518718376667127839879954431005696482473424739971523601803084205001222605961906766565046406427365525792219431173243310145540535549100524623251177585367408795913285974473672482400343171226624061201851945995426564001094263541710516446000534517929782823237218116670602535722168823047405233240437914610290520756827201064429867176707098474767626057852910591437701794097250710958475132551663688483099480953925393731637998856957481050681985449527574736237513343425610314045010150822932434177105816806142149509850301673537643212950987009350344401600320638922964404817681479102556332378550306258683915886981992133332993081719568475036607675794769468969770299010007444933113087747075923163910944345883547084710107048937786514308295276540925329428210474553777918852280077557755470723348405303452202860291549583805758173216686994606619409224528437110650057955906363280936155639184956404907206863677757956336690926686483019484183158826064538218349283909238854813301629905488046034975482081833228038622122138710630694139791049168488573966913150400187796671073506733660546570363312545427189971443845340871337198870131478209852097715915441867871123861825240658006763249488067866215732057448282935462169164529083723808294135931613001295402435397377378898159527220010220087761283013852995425553095888266998180032610960080074976838839546357979137769616355628652456006816196629795740172535434317495233160766693951418073179000383749082787355537001029357582120663801463261489995332772578738572750159260805409538605678304064220373568564342811873064926422763901199829018867562982271290581644171767441430576036158248361829042736229846433290943804359381868730138719333463042488557109200633728637819236281245554898983365045762875147182652647573705487694904224988066968955564550225319388186368837655082906013743902606686935079556969333940243815395379889201439047703163163376113808208191810995916320897785233971440664122928987796465751298321603599446558553910316177711715338670733473073459603505019679566613237067787864304742575405525052968283254084515738780297679127834181522662028481557695954001337118727347339447053619295803087859322135578437855683232931183436734938490282117193819138704863495045552080959872761463366582422251668363610507219880964339991092435202150266297575406517701668926327267085256429852490295119975550198547534807050834856345165542283847979130850089671505763026223368750658600236844864559851583012242101363278441758503513351548994853169355609165101295290637325469666749064207695831808517803598613180242240239950912603844528911408174925694527587047149931653439844594840135339990552964040691406921891110330639386861156767818769801565272393660740826092292128056872238813663263057414290822498224110343745250737590471382322150324885587177515819821124772643815768238533572482167016913747194688963524772415808197632325134687181158635043231533485721111487933535880614990569605748240620047462684339823420722500577241031652066676250364688607967383420056753912826176277714518657841723207321735670686260315034389074933608848587807606794437634337320665465419762279089226039247209984581725494327621276492881147087707556831386018643417427745184125801724160109717902231010964012799155190070500652738984667329843679515151154995416634542758630415188601327484816431549909749145252297166359141346343794812755862869234313611575421276106323140183699432509614410359502279898370859307959247543069805323671704439270375051238509526180190556911466421902429591801399293245604833771599339614898262252234808225384847226689757305453308845751647012338245117419281401907159455321572527235903271930342390621610497622554096098340025397223724469768695942929417607164288440906380562966661412686421738919526337271585915889330516909812032972255598928413629997527216927241529898633864856905825867363177882223311279151820485603406406364359284009313254638543014436673700254109641996429334410007167727750540065937791630494048984106964936549607867161287067731565179181956657844131276433797362007877599688096510732822145119261105659906477878973112129099240644057484694763721055671165409664038311265212138184780657438552476539417195710932773404503070740097761309850098611250276607957730800574436387769416738110690056328672075394588448809000187457477609273754817568558062967812966999173041327195118256106797224292698284507499401994300385466657493524315722755808018378261448900041985458595363928316644767958737184280577144398987647946399882040706780767951694054079853648457561207560039129900915293880345083899213848169957652381787585974866664302512936381634380693113295888693327278660184322453402226585629936435298104934915494101755672918571692627128946061935323362024621051480598252292133908391656203386441732361611013434662957860481511557621455587142007269754554952075862869778046494003289399104497185947223496530403897368646824336099443553993188669980983322675211698506786556749310432040197326096738271382102631035702573073280743069528249167005832155360905214070806967469087476765307607055042206837495603032329274365170819104837826300183748397090375286736843470952007926315870940136659097170136611482544467284318431454994565721776305958199247520204094277352638199083997483820693760456197064405200346068809488058426658758409248527384432473072265658656028203449616100356347027918012280591916147571106081113492084593606179790543168145679172658169370648653630960923778768087840508451792995438138524480068568744840630928906783197410641551278613091942535838154631685415973436565555288952971374933971177807245655493950131857540274305019717793902943321573662509533476527239519164216478593820482156652771945918037103635578778029838218827167123822639869145594660267084355830533268452492707747609802009866630405389608879218541638103741101753679678024825745673889264365886789004774134545392068984489435513077073782998122011735245552666322238282770408894526944564675087304177617742606186742807803328575549424490093035083488075279329207823578553651979003431193189403037205003370725391582555418362483916874509886053307289559967609629196422351096651062735493067321876647745288638860801044574401193686797787413994490901494281027101270131810321702659008392163317408393478562894611134129443457119538442647690287045053833019887531322692982225218489639227249288936392201587508063364476333707052011012760387714253598754442925777258947198389531012668711132588195169269232288512923588778770695752344261824712730597649051371882732081494773376288638617505890959945778406866081231476155765505581786660369579651832936349941879144362592063918787329810465516296669453705594404469342282303634992082341741088739046351414905192663587125975254603295096428475448944995453805432175470453713911077174075209514781901936805138005093232650883234019739016411741280347658566066177683181544925568085602091280273499765472291314309345750611402667471040086665649712791623786656925875830114963359046053868976905579534806828496022407587713453460152443514928607139896277439804589498337361005425272870124973510740690260558401333452796373054223731425542043512142858380933851914587934401300703781721336519956366546280175363280192065332748720503538746239456078705861083681768308621074978907369215533738902748196275492942071954245215170317031497569831076877871418012507839514434364802936287891919937655421800503022192133265271680671690988566318675379524597910542988348602690425525815727837116183852249244457618046147511489932708487759763152022085822222344612168419042472545708293434408884121995133053669879363438978651695790916658178959419231807691121412610680358658729503156103942246477804764615397549832119516651003886837604369019502222894867296444771073872160401409692432418296913798762142894580704486776512794913055956542129769854214475866801282446485325344442685705907710708464944104898720712890057413962956991344825334537571801149131026954358556240020085915272756775141214584385036056651270663462601252704198350892983901993545628023542054844160990608294568461425436473472827202652661567045726270043287295118033321360602631657952224265276923863081028461201892128612933883461450328315431755037229503283202029436923116517907472838556563094302661040965777658156469106624322729440573690619054582475783788101397682074211798281934589021000382246617333317032345378290911048334060920524528612671759283797476332373603309820651412557793447653562798575859619823986003224335144155754209230632000902902966830172432499010326694884014156059855705040666464015254392331394253617120935822435235350675990587720894492600080413855125208351667862954140244333117064971833789806834576454013747888614941388931481891339652320075434532535155631229920754296947406910818787317363266417027336760965663103033032857311658347356670955075989187581866608293831847909093820994911395006282537124983148318435534105204573980966780996306105232717008462554517909164991617098374593242537771996439170536160688834161847011299011129085693346404058049100573396910600750407196470079541691333078157003708977248695251438846316423160580289582680531246585547333757528566290379579088606832652279248475314463700610944100193251083696332989761549711031590859362497547542837430380281607459346100692554802785245376129198727647851141715235999550661934438811679306896879471684272120867568289902780872610001480898369498162950094595629769140656916304755661137126255792328091622271177799847963951393486880594961325464900023081676037193240942520379878177974823068325243334003637408759267541989282024519097144377998015800029604066103024136969168371281705591142992368484549069890523606227816018895593812695560323051345915283859877444627761060168886095616997852780257835011012221247910838571879574705473032293870981845401176197581650566427823263039412426071416619879859167744730001358293458096600600806428522861781582230552820982610632154532600618653331901314944505271759143571753321086756503661743737641190007860825395330664501923178635362968853018250113199842050214099999953041288881649634817512392631775759968882630577525342637077380396480423488294048009261164118932273513547357387011640447431317163238592934207613050279646211107130920256498172509675023592802387233253789692558352528903857792965340948481291788338692059356716634959315699515803864537119678061007504071317473106754196735910763870865115764820967031254653054308819761156435602142141899484436486836180980584436641943836932501995106056313137978357625728163576839402233472047512440913801413815127988740686816645064573019685362285307482281587215128810382528882790711292121139004356971331463594836242195938137266899602054462891410803786994259350735687773103830114182101446086723250121772415481663678829930290390104121216777299603602647784584996399659410735569782492575557796194136805635369359166582274149227757912094004093149777760767676512797706046026062316123837226630305195226021196736451123896406776355747064209701311894006382333443153929869187804324540952260238878933632197510153462287366973281791219211218441839338527404309251978021992450673844377699777824090684430732091392535953733566010974018145094028495006355008260201275277240957012452546365067991314175251490722280478960661906441059706803112865483420767287912819210330573155900757988860104953193253163750375610300063055959993312823527129156297840763220310818246028409463114840025243610313502093653450123706399758879686247811126271668374666148655830875812800661655816596470236036482604133398758964780195022641950444123555417578659843131974498479142037938999765960961062548570590163621971885509589556097641013270593379090587125876038719351496080339271163725427956247633059034145875190601169020195374487965798483374826407734069461442995591815874456653114370329239389691176802870027412200412923090548151083560089572980820177379341744863043695272478976077174154209218448498463371240241538929939576979501304107356557114604452449601398228299937332894826204279049510720379164261715869942935658107040996832244077187880261745779388631679959364209767098134601127707272553277794907964435131585098012436417555937544802793393658683213633340965904887654000285104054615489303290623176968505592847017479951266877429067259213933195738133829305413530146406815085808200029040749449938801871773759361158450384454911384362104831303667993825618847765373873895099536404882577890242698104670240107308386490566438297520845092713347497611960524098423843867254696959867556734259755001737253122232283220230307339030233894985520132962856432644722218917081450214330425699577603617782770812157063369112644724145339804185228611084780064292452011247812330834089673396565159938300933181519390557195595047793416888582331666330099526961907189487829301465331504526304538441895195311124187711869476899944728313244414484965946476486212992466541186527992171104942074508962322845513551644835980740762642142470527422524156572357129134772366570047406982216625236324322583576580884194202682018925450943835088485731644644427444870720553031513816431473047031738661501862716421956358815961067884048818423074781848061533156533870460796458264592861077954734858002129433080058498780722345291329993843232086217470266576933933576059035000866277624437289688632429554498430563894603161801182133660697315680909696422604157333840954761393274375331159831779704546388437055199907919544581511661033664761538578011392300137623970156095878429622110113620622455520822840370261554183101187088794357599660410477370906320269280524369648567561866947996416345568108477835523224104184834650245531422852428542536044969781258875611271754421440901671689639039487130997408394967811152825954909564227252767866811327168867256793041922232916828664432431791254380802399928013430503367377748885797427892944337750789392378448446452821511718025760093901625742403614956677245125745886535306094024296807462495681166104434009072106736085384439574353629413829563779932473082439684522207260875517276062644459560009480359912307670744873875898230181001479543675794489757471795898867833262902212054689248266131681971300139586001457440113391108920773748501416716245884717652616855912838128737570890141655315011169542798994454896919235017678673194375901823303303510342861447482004454947390136465518887247795804195294555110353675895090483434881320849995110321656007341275811565659710522863633396657269281748468499120849770000188644738497215170947586183923747019136147472773562382999979205299122407257436517245345480383130322132410475260756933444880585470708766749615585131956689191608789441766496930555627539584964026596130235701400704345766253296699640537365199851230737185489247465542130393181467148962164003128720613458100886400261338661931218994333851525587584249429558008891857706905189313908325000442692460304516171730645171570217104046306171732527086073785252005073594437599950477748708846087777325243386165407785569871524561277349627319908579451058508451579204711624513189566303163722996943839113608792177023051743180968171096626462625450096181815824125974012782112286913010232490578319510573656967708989177074881836854609467991865432616053280352802789624429071949746946229979266898459742803693150276821633188156078707753926915730717557485430223692379446555078389466681375464814832086998833556695083114575206357211843249965091802718925524586339063374134801913080616018681077012584940954169964721238841183105656772882383634106669581040881374474551160402093637955574027215110342333285937826800859207573459187883844635626413033989065434627956904225405020725299012795855906414419975420528314177509826794882837059244576377362795819899922696518398033063312362318750407073219652751765529144460281409600178569926038811427676351356527133927853135495200011327921934725416310776356407210002896369097481263817464076563916549886501667510032884674347006793559977483765022513871060533328431772296751500698054739913667115144671422401402181099660854252075636626158273043784959257679516516361204263424070984808261322225813430029886310170207437993214378288206173306967994610224842425221503036852294050382445474750018915248637441834047898525785440678536295425219359326474649500306556142075992903188611395359267947586884877489472390068550780051270836868248730127526589356870773765900862571118488948022048949564759179858496124761971951094839890085846377674646435588868441616233132301789035945788850667243482837578175870527524765635396297218133772090969183272734106918353047265825320403252185774160499340271135960027523038331029734689765589943013209063962979109473350086005258644470721776999427924473802822266501203032343624249802292948515505931429272929105838725520203476469363558620905245666426708123047419749199022437268459868435881749337776337150986010023379078821937764343228573873917702697323735651873766249069524578756791186042850858675654441931643749947849262749212210813878831008830185222847947708500725575978524949315871858026904133094414031755595313161276403879966551417082588843142492959049229633617378430998545284946500774909134147529336200126402112432186786936438457050252231145710189352257544267535221983794345073627408456580916662880081162636048844032710518536271221629067881888185866114235317432973593325372545903260681339661563677206764006090043388013399211514033182199601833810284253082504669543719206443684894186974425695938994133824767950309253014957560048184365326111164124753669688921002335124979392947122366787486077094573133572432207491263469701472873120768874107621766472891908562859664219285270810842647753335654546390415882149042262112249058649835857018173248636346757942930742945036976771678103135328765902164258182211812609583932119002535315744956864782768313585768029236773684515179066353348370402153363163750686531993402122044256997644833980537254668037829660320969425623303107103846007172077188606614671405152901628043956488034542824308964007053335673502493699538178689585811027680654725724618886139390946988554655244121930929971128372024599559825000851756465419982824452539861429095717549391710273551856012542588523247580678009278973263628621346748565107842037136068152712839957503822881584685100444831882283308246467125324430634609933599129095622745203154926251083315089542688266902644602780186660709339016304689416949797435587811704077669057196913693149956488749361380548556099009380215790172195187666197666959588751458119938033277638514643161008504259946175983125475079428716318648914848472603396319997055155804906749197606836508508379147740745123763582541686049191032133884496928365646143170268219648780820404223471369687281775023176619068687214515216074619711272083576602291807134571657307424906235218202058146130020904714652089574968264836303886300682443851488256422627399450382356465224811579012746474538417333582669047356706872645792155124774506872520244976535732131665060542810118407411567834298632627345702468349948388187033360300682481066867713955857682950172907625774013393758219537133951609686326746750494586123347062037451325886661464207189584797736612630502986630701004458861634444140693993875314005086762943130434420157153427176234684002923666446430976619949536818621846793270002919431672366659746966476153730399293701554702411715434168956010195895813354548796146023978624291599621823872583776534751011532569939873683679927651709315026078567038951073144992773281609607843609850659828222052055801530191608153926118181305181412404982700411200318700101988148670567426073401829630002093775180133032075991341492376480383547342465119807896010877490363915066305936501099414937410919103329737279449391251285049276900574516847329136933610327322670753806079254023647147491194522699533653044824135588593462559465058405674423489909894944453212159127894655000011138415019290664581644199952292310451180646281649504865789724613585779569435284775543222691978740203534420250915642373300474006418564874145262664781333404105769160159168290124558934885773512031089974995456362984232511559201947474012740339123214266591700679822422163588346034056690645447853047825710288818863796278730914483609124399091015435918741396643489802233664671151189610130350670425647903759776384397323594415912176598606910399174163805152485828270731645287790564193909585814402255087463432024061572775916132026088304850576978858787565279230346534379615878446664317260626357924731061273128040620392802142219641983438993606659522582276942970772383974246169798994652402565602673041185555428847676164167282468105704745969477446054877165887365153257231133278924034155270115476249296094554767140285857060852954825177423923645788276328228344405640404857477330702233026485776515421734663267107833490980746764154759445922311608780439801193594402710356164522283827262065989626953026244215839324922759189953806568014195404919922389036618588411400728456156793773366942162845913115450271103567008499964630896652066723460989419584521707199990283705785876282919142643241970142230186411148200091282230947045939880510899999990762127593964510256438806689940456644367351858719975971346205181127119682438015974427294155383122302730562457323806497829430784970931295311726917134668158347124620798128381793696124756844726119185561266277506573310854550345830272797205052928834858619702662620889859254521856236176761895052302410093122980348935975860964281028499134509300573797298775463821037562548722130738780577014067733595602483082326031851989993614586051044563878667288373462690066799426982686552304623033275004608765565256696005739495453190000963665418751266905989534892989460095903782261985835321055072278815141942880766552649115859506866198050869530622605662532159649653214338122956463369252685187521810831528492044078988907919578933191522011582407982952020363932947727209259350578166689376912824874570161330920494134033677425256726624867652767554514889106642174416414519515932521131586031270533579101958313851125820380009072858286132253151976282222412765889818081494041211274562304830657982176432076913167266952616923421403685261524735783823936289596880972601190537804655474811434166022669894732968175147143226704727870929795710486681013955079601337465918950619429747125420847187437108646983443536748490130331308732855558445170749516862592994019180204049969829356930459299918858884613752690940195514891882905023824247760341438167465830199396502013615679526389677168676045249022840798202490233574659877005578540091558208282716034230839785367808271293822339117843873078644273691898214551902522141007144409544426247916179972995225385273228661058695620152530745688401982925746963531114047954450367728143832980271316927297826677852616397565339241935695152540560503886165613972657864831257061713443185576228427206744645293056390177660189776504064041486647953797071041096630758182977532989743378435147953250378511377628272244336220844998777714253402709882784673108009348454136101846130348903894538165187239789619153189861828106724150955499853111791426934443867963126587435068294047667634189103283861954144208476449181270940621978494717129222166113411373190706396076171820791620275646709594349488183552777051571184107657429957532130107702844626929143315546150078666909027672790906475098440520390892361398862100670161542685117553987268272362128440066360680465567616024841574172128748186312757141253421183634944031433742549673941345664422625123182043755334339974986008247587992804107537702808265572163043295396210231921200152895057183356558239015860684911453668474131458455244047503309410715598800140134620960118924767566414765642716586306178207464419383884446799404663021818383707212464672463991950796855733698429568115575901590992026031659178695055752233618134256298533909151489304131804372397902252884055532982592357850513593444690987727272083493800427927099023094905934753197730879211145123584185821389624191310515395548725378876862419675576422019038199066952388646744978720983679801593800176175470252216827313854612148559155378745254644180393761414481391912550317104563526721887425707592842504483171235658658626866534783050669233634174503551274068834330384389248073358072528686865665077035496376936389784607106977780940579663576536035694273979211982173868602137781340692273301051423568815895851614518264309030810198982906970496952141059215875967903506622078959869167803600518133741951331100496862248309195106164647829228365436616666380868081104518596446467707268502520456059954723953050731400152645732857517633272103933999904240598381629928695705916797000361662486824695218736988167224644019341665306791208393702804556979135575864030539959893636229218964079423640873832258252782102080068060262343733382439277093117538546029588048903220758284109074862053102286817420421915146037703397301600179890421909009868311303113521909115895430624584236536486423769725204266500253645909755183419458632234958653774475732378186250663686381573677880672371292352221696032568290438851027100144456205161257634180623903363204484904293408655509399496553390453488180393638412193957338711334228985122409813536384148474710524623768088525798691017947518931355437232525094858940174903304276276433170436557307134336129581271182675257952868527469889323904097416821612575865300957432765630761115470992010031247210236653832888621190620418782307412027651231995279550085848917950941446247174679967978139878507701019829103279402287257372671131755432335522373100081799391074860804207613712997132251910453812788523577233055481995774540560231309072428171821782193633481129738623514581843008539082766354656253386111251354838298288662729794743514394423184083674548127407345832369588112815901960692802271914783858053226868843498895040330606161598929967728812288999344277587797396860034696977215320101704548063162398477361929810855238407171002927309143261490579943178745581230383483403769778457441185804289316485298028010163577564458320744314202644157116400461043166677306057199466229007692555605719567892539236013029049125735052220537432547823717778449023950699284182982024945431076524340251635244329688844130602873923317771351190484457575711729200060693276873104944930109024380542143860751741019708922079413558304207425102867738983768568567756121967175914340519844578724729369016789107642596170949806185375363692378851250841094868362479899085687935539831009610042296086344664649210442067319627616705152925613261969474888146020247050861342372840749526554712888188144654813032668762739527935502970683700264192377546999594651561104354352608583088280672433716363977151921910561982059231811652695029239037173580793475623768235454944603248275267223143660315368266709539734317959412480085394171826174532431947020805495493258639983871511990263008365475449398379193515623365131162891816007674076369808641399803693559368048780694246137413481032812516420693972487596063590665970806057397893227138899793112180463697868400581250864765407544071747532379052430895709550347532652191898262654203052858207831544857173636080325950916322318659715993611876533549398112257953713687291761307104961068082059381572506191188275524689479499288561855322015144847128557319875719316176491118396503299671241039173717522522337100051440182497118634765226937673929855196505430961413525819871193724171757228092242573034169455287361049477802527611850714780469511409078585446631363212396259640681172208158629162804560041621249624315962199202336818100759669597318918736607049746779853508360017446319187304326886909965947114076658731298230977124245372070123376947119600280517900493152932057901933094770804312999257593808019785092203104278807413035604775644028262952420158761526096817685288333349822803569245915545599737389386247826084500398264617347208554120068585486303569541267191913462010189752428086675557900004685101061679142969580100385267514972055467021995600970478179528497993074123835194315248862058685826474379794077109282947671617047759730000977136625549438345072376425546267598994960607079483897279867380317404718942331854017409101304883356577809212746487376825220189908621484927487626986769710761159020018617329924338552190855643434864696704450891935818311732116775241567642767825255638448930987842505455020013837525178451126217895724210181171413018923533802032679132461255194762677216244959558210417869572244910370331981071052870254150346792783979329136655078833481730500969009364394343000589917571827706718207010525197863200233655731295692893219874978199219913947046493145850624534775147647060411333037207537619606243043333326855348339939305187193619619953505505516497836403603608041057978959810548678835707744454434272627210284910406581343566088895354236175041558188579324098199449684557489573639869115770774713325780980090749830071495856055995249399525259355914033041387168437308980188320494743553376967743160875828156232445920101621266906994881207526891674225427041984134067783029437552428756194823441885339629005327373557937577256634263406508893741127940262409601155990387118205396642490182080126883862215478928002577457571132306266613364602406875677838897565668060167369556233674149011924982519345863512040530521944624649251305874385389818749354051430587186385806364207788164496141355467484208997387991692187829507174273916651838662686247582384691209904605182080535897291318413889426286568769311108317448056165112851299101761552835690626892883829130480517311221884028238835732948253398323849115627420738176058622959482339868970640647049786521831076799710745649644563887765088112167693736962065092882493364731275610778091697444213361571161582115614456827046178217501138046878787790007394350860567891724359336160349052957467855018481127482103756570246615276112803325264770616062317622817627989713858631502098859944854548979381237049626909787816989599341891595166772639216198844677429966771137183743666049078049146128208113675150895620674256647060675847447121929016523164922093282024056015456000734610893585855249332886778547473149348887660582605917543735117663324156869249765744561057057825267304959322091936303535288968199093912641341724024472779946540839475390759526966246163852718436667454034501748885814476159361747033308355228443101267991653494926737016110438993066684801991470711266843602126510325711822712378551423297125243450478031854068872346853154925282914257969069202764073357394874263034193934791206713254089719066911024478013779729411862251897213140514053642908125722367453432976901550970314571057092317926974642622767504113158613542204396719387245602808920723658114347293549447617500504823151590784852156722548351312809201725571439459455321121209848501226428678314243310301043976163755597719143484934232373535258559792824348745189674718997395752543277449421701625991918265288335733314691093801250728855189422540647726605220640118749648447780432441903556781394821375237336012694372384681446364343702175574107923655252477967155892078918178953180190983899927789179044718867532599540170588639466704598928819865779680365416800077686728414844038709378960015347048613643067548062100107136970039187780224426907917170266650850344547572991432420514713960760532063478480019800528635301782475957731691421532493795492362254321881714727166477481323266165682114572589356421420940993813688515760237736855752071861182793815311709945355908743712828427571229791555558166873418739909500738951329042982665791493006956022169062794681050411110601708945382190972029172260523999495316166853355599415957071926883636905459659190991017749362176165421100248595022427824617847918770551176259887893311467942255170522408032162257312724554839365186711441079379521098678146503452508564084498495902963091819593328729691000588774435668152256265678553312086713646407330491866978972356755986665059252813289355768692055248899833045111318232457822137229256736268088303897696311986675457258234448940863335452068194415344101871199696891700983916784658295504761932180939840164358736882723087601550118128071238960768095870959716615989453025603740714732691319188885625147258118428426799201854598090538551279803840206790180469502615438703344173430956240040259841742507962368996869068841515067057036330885486778082087741151498190308649379656495268647939162418422798246641300891386729604261312099448831966385580613100006876361904090992132465578217979171323019217154867107420403271074854069089505493459376486427699469240359594348536577022915881042726032309825705359178043781649952692966981684509248702656368706181817183813445798990208538208910960128044202194630597162028919907692436267998695326692009867167678843186515046524962813009998017379230487869916202410562086266734295036163622642845262067680795090002567101750584649217518404149420282166049715616950571192914567917363715967830110639861065000634795630719624527930325106079052151746136363317994327911268049727222061956714836271499168827760900981565773171419098429683856295080067878437361392550329661445988990104191421400638776704084063548829539192361129559107624471537519943499663534190079318462768973683228784907020593871146171416858333616194749719901968718086396815686652855467152769680195012269549364421463341729968398799565600817108737345948205161027711919817748903694633722858438227622412862195511380470825556432106300256866209425005432874226982155154746757084613954147754444731512641926224477819216589437781238439981732297596952233098354001586250423038079368672623996645191024918813270021976496297806695560161703038900695070843443807836433799512970207763068450300068500790074505241100942027647657043668240466583093479126732342131433926636562765735205327086469737450348010381547667025614834702506468259407855042482059666784667378204086769724517995221314182488998739816993564059228747405162657588886836037460598764662234215816491260806158725854564395207556440800407740458582844528254496545016260617614515940370723848659439519028402921740109689587056574479289737552524583908135460095241912530763053767356295114025809287835195301849254930752888773397717936205101698665426419287900730273554278563674688085689346860216810720771258670942772753432368620248941158181452907517502173132713539312634931963792438146440588255607837494814175608577874179968522441134093128431581088191910095836196697746750289152828041488587226613179447541254635138417789646656309582875251852971745214253334029085146556226040584294701492350235935936951696901441295420179747567878345800729836322332417263554351126905598007967481305242169916596324530583360199427713852621886084826602739325907601686002436160647116685998666396725741115182058862840240265872499413239504448391630553088898742555594638933065989563937220750509735805669005692638484698267055328573112796903717250315002749826676055278347111031921615146939854949164104107347415824584272288859929774768193927646394320344874339056656501776960317424284706974912224800793918148219793094799422104500683186437840267177601431386907198322141513182698527171859999190979672153329487953926440259211631583138918483476075809355967918935425833380522085406588108085496647389005037226958282737150311698341263086088038989419306962697119343431946654848062828971891003258585328255450912709082823089827675991042621573189078468782889444926863292761317911554643911366599936198049608725862899261568081378775692601987922631439347658858814820320320130797755508339579512777491518621703071560308782243845111443025802314755658743853907840996246482608383581352873768507608249404972812368320502217533978502674880742989369118138113226719354128539201104402313811251014047337914511538265146807714271007664573153077169905787496380285514250929284250578866722277117079867874803729649469512556430795436836911436472269108801968275475899876544685076192769693994902346081759809687441959423027502661077975007635613863978682865056535440148139818019349539747174849986798055213175126119101885766568645627945859788676475647756975752754755832895316669945981437026047032692175466388012773930474824091568519444583168701503007017285013437316746071744731088664424512374793825087080169323885531333077594074881185452814863878023381946559487069779034524679033904650024034658420759916666079485573463058223779034733054144926274755465820603568548809825051035076280062337390820044267210754901187506275453066442394329218277615866606270189567949395016226600205525703514730676404133905303338336166285394498706013753138023858747592715321864466532942312050139580373996214722568634039551898212336675300818589026369359381039988570486969839587720204384857721511046893702537874609136803895644873976636111581622971401914876553833082247118124428888506824775730852861522947039948148279141509142136539095343040809217613747232956029430718668360680412173488142647625737130269327703357786222798725300136273730882265336628978372763002701686981747480761248351143128126659228017967592085259378588925855267378941231343545051147061561984183591973415663055448018138845304164670294350059049907233740940317337903275383844419468853400403913414542943144339916492308430920841321050886869231826729886161278143186012765139332138663118179188327494599059320276682823456661335939302225597513200804114801185088824342053676352063837287342356328532692386490762380968159365284834562230915328452057067994097759257525252706062181105661671867079599473990833408684310751154715906880127434106332462645419382220736676601194902797418573588533863012074791880774002392154399742222891869317223623353853525229895900115381249095869091842551524755492756781900074113433870801937618810435255409530806296227699409152641291096677604071559051207608007709501635281333172888599623948318548296329379582146026761276581307919974213516474277469023681708636608020970133132315535848062061106473134998380519604164535395078588447490457169285959179504915388979492685637671929306635898040360120794909662091067383175526725916462418837883334918066397312707111161112430089263617908933794148844322450227233898326092756217645823345751237580131324115950297974774526274774534471106364283598343653365270831414271901274847668489555748073771550854979002395387521144304316201428203156942202372112665439497020705623344645250948567125820924113696644677526290448856488954440421307629632840584555507892892050142735362066023268685270736613411589545603842409936414693200012569996584016228568908238902108836700638877527641481770606820554746956738706149856998275811701814253371233463305313680596044871371756034986578129653891390984689521751506790125100836256137718898246265794064238422694989229826532459261777028788253351684568169390187482859617597773913664600473660072450279889820197214165344073577615581313013832367815633702524612669450848510838569949180487023671691106951056644558159554527279061801937972220065803854211132464997633255030068388010472378864340442613096951111716459132392085356058115711678451464661837734565371932177228608656253610459202315313405099184467975986363975553225396140987840885222598369865416050153436962323745886334526714000507978216311419297870746982609068787597874819721710664914586968895241438752294576685813842038160178658003174434895759421583174044011736442284024643173128084813754250761451600544882967376823445227250061219796756783073563576702790420738015425138661294606662569842270603506487497114734201783028742913280376626177236704936017474842787192712103247125161692387183999494257148052395485037496012293525053048539861933026974357769136416584824976988727735362909450393094940979077967749577861470914568154156830030611250772730833987983335611921918861502626530876945751270703160022365192046899328378398309936914002266671128376091168884737188626419391307256577001823484716475825491552987700541122388910161366132034936718946482611099739228395460874143542255207107391455429167693108711241293323095255509426193963172024330430897492445543824161768495533945685536024974548764782307447055563028050973289302580806847188606382055411872744650247645936849025693550165491244424675271980231770919097832146476514861006995376198202798216012286805734488045178825222952472760810051935330769656299764958670158290908448588124400066986859345300052633791123125837096709821594449972693968462441608866836513280214774168780483302622290057895819512337648290196717753312405141492046819043417311015842363305530325317149457258112523374980318348307503141254934134418200124899136358561417193626772034577926353972676338465077902873288271161127892234705871305823508385406339509235061661974177580987659936284694887540134387804196588206306038415892118135793930862559306210131728620801504230395230029712821941172390438288030632823818179727569926336832974496040409017482406801298338693105758413665287134079517006147495827544300898942561559826555577238601485308908146703950896657002208333958463312398120304946265855694319015032615859501913047582240179924482281173515223782468580337534311984583872629042713464632741980575280490691073112056472365320668056845919995652692164418491197825060647636648788914880597777568848562905170273482257725811408050706348030822530886710410639366282549851516615369025786045367063833450368340416754773668039583979112205162484864331073575267234590834064141236074173285655171517315217580796173588584195501261258688835649522621422358692127860093620726034392546338880869095137134485661712295272071355164212393524628034773478181624422059338844960297049558151938567884927559523128223803616005566983608332522366758978124417468882540597572695305334576775750013382196429295449639552641141516993803090001917239559624096979284438369895457041229115631877491175345583383284338324452849343893908708275861267707125190456704005562363154753087654414064860067185407506229295669757955144451130666703642646404757596962925261500749469909810207165767040421454965723113141765714180515534866601516653609986552977289289477701762636711431717473666792659773812105639483777778169420088789908748608498919644464936823098997274085911950276640314203707055526746337593898432454043397405209906024053443050762185687395859718428315160352121373570947755724123127863465649487915214051206928469030130705040579548645103852709699033384228977221192041250123189123677041755527947199492423180254691257143438314824961505615885135290811399859279402531661241690306570054591320521726216397595441614537494324727293463615212105742603983375808684035953101569860176584403796686404070990358790054629406697313888801991659013134732008173891089579792914634966839132650065305512817595070114713109369490529514533931368139314945323083161110910081611565796170741188931761336618017385153315170448711858232217499969579641240800162370748042256761783765252139423275862628775003721248968487810481143209682137961518354226553369551963174306422750823664647587529350715263875425641127908379746814922265230517816104911275830740183882566766780534641668472113643829355384533199307052122781231303640475325271667932742274246334933234912768778425253177672046467622710626243680410214853176821294383297413304591989380236539154092341988420592242025849840042119441021242201087558011862221283889501367504670806466031955919223287892860953982399146210536894344678502990166858840396556448120070350841172207038483673694891227780875503148003304914820211836902551607087452086086576165051294966237094952674526910988070476205845727787156490798249009218125394636113771970878674403832820111972790116344019352537327411273484851949946598282762897273949574587937482620239233312056436427186603768036108914162468484186215875421042531028909284199880645460302907610222124827522269034566520844177532587532848561917416854602315846814255534228164462397262903905031241025226480501333090584695703038083476500282394300914121224944235288062328217068195733450191362506970376412480536686567209776636782673731821839427473559384318005016646591954747966651282049561375049332917508821825369340663879946467186056302954497059219488884449739038419380404355159385067996540347429854578648703095471799969704252756695351067960932753575263183093102830378650678167639657533323012798108020197682756769596827810591461995980021691549748313148386065991518446111964360699059078096737644364922219134929075366726830412851525712818490693435750707719874867654219280699687528335327870762295883650011882583787148777142283919992783336744407915422044758788422897166116313520942149102345839906933050285218062840949732398053641079646367716369841415845227288785638946533843801117335866725276572141505586535734723413570714542050422092294245130180161702312453178466698181319143167816900918422876925365437372704345740783342026177594095884668693630632149515858723359608261264688486618786611958219095424102504840202716758824161910526469872876997269562535072691599399248077277270529066687467646117650258369615045302430225494105455268182908903237542027950005561877425246168888972114470428207153580072746472505998373962474797061187636172429640798348090197425430984337450782972936300129807835559942188081208733861421215310282686243628333957186321390033145147354398961513489267813249198325246822737992321102459619617113999125340955740081395886314286359437344993759416449463055710800868384378266334877858731617551098014606398957814270533276590177216750821697225047188642288864516895579618874887182756503344712617025205058445560305098216406371773821600966351085817496167937804916749176973363250613607686873211920512227498781698680232314088643781972584097032209691231206224931475772464239495344239418524901471242182414127113063852057742630980360433335868192358437970776045465177048346062234122616505977053106652609422388923047767277559913824737563236105437770471744077928451170342465321113480696612467253059424686129626526977420906834757003233632117992758271467304858070037506408003143745565118252771442067764312026533135111086885112411824275863429131796489825489520782921825935055870558906746692650907554277751387959771084851881491109300699093372601492081299220608171562977505490289779551491965835456250444299447324601252953371167812998723909736232561022504611870683269028909755530169731013410700342413768941034755710656888961786947222701683352121384833487472207898513807299470935867471935854451718923771745757166178245631124909826706043880866153732550481119287090613589016899149668863987146498360857068986042764758885161534666327556846789063595248337120692657484258638769002436373963891293462410279256181011087692223627312718722358359308404905861934722608286256320177488807809860184557389525436533280149121026390287365557097682157034002074449375522990483315459281894479235345819415687161385567689212300574924457401565629753939768120026150792930817587069011622899574035823737951102678753544864101653439192666855202241786988788168046451250083996074394526462217802456843758345063273658347729636079467291379638131008518242314771220341383685963457242002854477508772798804009323217539284905968675406610480841026772668233679735863175459923106867990180839996260113306004533456950178398293115528271695995949992594121648332106096588065341139734280672272149270624517351257947437638290491645464951439319914700098405250749769950048085265085677303796721978648783955387261804372411171787202391027844086877399281187034600893487554267707845730312109342652127615104097507820358745970378304819078575342271539069128984912922389064363559144854392579449790851819351148592016270992821605544764877276783684511384468998727994244443758943323509774868909698371689682555182634573816557880557827122750083839003292589573386767931966024706283044337481949972901129070275379450361970790310753284399055244263724852269954239911387153206146183092883273640344824073998448197995015756927591375696559643495974664728537360888901141609986412214681518421485653556233425268924080949114224329936234728007363712669880892877650104946617010881615958774630805807642538034378148959577365300219484965563022771527105624913692932284256592512845490092261327398339315241209023968411960138337327975389204894384284520475156841036737520224887294488521482297547095948989828327892970669351927530791285140208262915881385859862567271068855060110405164635453189422441952081927495643946607756361185339941725887836328618913692724929825721462156820733030800507115662821347300575629151771343621512639432158014932052315680700149115146309262413169807412401391999404132931299060929349619013980041524934625106869018200549415286805967967176023837853391180846757074504940238840421368199971255244306476348456704001662413549710814532335933991368840959418163390846890965332580660940657703249023248605211133123559761666507556798091525692008487198968138654219627250429838431257530661088888401267245138864839013543641967310287444915257322634526089323878302349246108347335303718198633500893898839402500868650952907692987407367401219179456056213178742606054806524562850050599682059553594836284386938659019129825880862761567848897920490689000458477156815472227592093875557799989884512999801514366136623106111239659310408424730987366268440508189315373317604256540124469320591860213118892427179289582103500240568028906706733155764169612374649331329149441409268770251752161365744286931341108254962437200973831850731297762229119739589646720150733661514425341986411822542285486119191217396346533199003240368298862648486851708765943212880275242073539683615045410036715956792230552742555236306062328945501670495678067903184039449699962322050466081754399866319160964684865907302210242579564537369786614563078329992189513851246297538821756818162282841842886332774364974940788001308924266157057769214538071323231596957637306805451459945750197977942544584965827087244540663588929581470428243555948516404197768250804664893835230056193248606595247191414413310598111207140829615926510299525604186635034888237062842318087528164809246450412738899098138380607977037097089196676467250923567468277588326598600330279586242787687563053827161039286730322265395991950372178580817376975616717093170867023249883341779243626138856103308247081585791106913775224533488404293866288372908847843643877638507770908146175138069570507689935095275073207617295197386937568720385395137628466462462418789618163558082397617996838183139030066495526790603322755150041369623379196607825196058429899976217941267918039353529133143326231989346010989954702790502357153121651871706776356928730125440363795725794394533892136237732817146652333536367299206065745401470428624167798657287322342411006568422157410489179438822869528554532648929470080281581076018336444322234004003528754885029978194006896616070887560624486199571141150633331887365391375607902772941464544607381839222255729758850689457757454432233548021071359196856530083463126009789622404668946345220849595794269140217553423017975370090846828087915988693960679371451629749977971026185771105306929443273670919097435982077348987857860695111121407569945306544810726152002442039941977570310001304468373640091001601622699437464397843633745768121594933528034858946687553051710984307798787103875641599884207266736669266042770166137634532087863648401003497385022494202905837943986563790926036906286650195202162766475479339544650567465361061101678969295963106062331548365769550578295693021728181006816326086926968385573618663451987141082186107013735984208754786470622598161832749715226569016020533021889144578379688693285351501089862468962662119219003245531657447189778311100894423579833630340624643584362657580860639140780308294416481759032875784020492891153891786900090499280238475935488350059899912651361680677496704829044136927755359553771537248758238344256685178324943522170686296739089869982462899199184221780904841672217055255721886341438400286346105406218971397389612997292789287156523438923490559359033127347775757395181799581428904175897397107666006319530417882482648089631928235020277833103541818449040125869336941048090064107608471691627932427848325687806618109017263990382318075207575211912075508000387544893369762736215407193947348581277700880259787971251765253811325885330062359032722383269377435895913748840785716218264546596087703283831574134980390173921125688935996406451109294636348911111122795798569543553524360397758378623346307006116508427624412851409037077248182714452452572104149050022480561673754232057754276593975745101819352490016842005471185102949118950398334473441664139702157735342571769617794643781337935906201531729840479622364338279078566574685828286830241808181606281987109621764152579439309952949255934165381384656434171763851083551012794159842807690183307075913416538217592534322240624868493753750537191280783045022031662067904764349642123292311181947617761994460952690553424810792487927744520904455065772402690734283082485250627915306228477878649344046126214936994611970791746102751010130167542163158847376432556817342091292072553090989934182621066509503666404492275860067807112260541891002271762687611885328982751022402589538582809770642380480431396170240306859704894942364853659195510912488856180732366344276219442562285101792074257723217807214330927872511057478376060004128876042413547463327091839253113846025290206716149060928460822145525247881106215039894690669365696251081271160257547548016670191843820790506338538550859123129922782661175527919505360561717971056555820162939434278771803912970746750696280442308586217282049892964132613416895743347136368922884963393947014063340605838362823195438548282136470765792195877140751769021841093344673953699050089726502735832445092286222094264945297614463491719362064216303680012733221924907707125707278188840920302360304968885868162330572906836889519660144371567381399715141194271591516302695723436628829205425124275917754611896343952797816095302873013098616152613467775707111078235184595072574100363180578856542284884737093636880966918265343395512297530977747086419592865239226009861851974665652923991837282496751455764844450274249276183471209922124813159852953217449036969132095903063489437198518118398690584989437005958519457862564623261653594512213711737217826320663766647398224314556532993289848173605949535674525827945411942809934288846427823417962455758225260708918570969115254244110778528827399015414620711800844692067088094632237262989266718744706629149016012196146760356101168894818367661393720780306651515254721999132402841889037694002261039492458777139862246840909903381177400670659390749486604686603157157771286022679664628662324830080682767441084779793922137658348642706054796252416726622961104063349593330659111130909312893358662231268434335546290709677381586367175256138400348954081887937939797510599870005099032624087423967468275718403185511283127359628115705076662121315164175029074480667108648726619766963641126043177499350497875854249896424210068852120151721079175288343298373492237312654843318771115898355934992233766870022600163621967202078519543187702300208994588198365906551020997807570823083641802928723609819957671068557733890072291212143692176134886816962404481223590186470981375194041230251736723409340729051607836758796428796293227275406414191261537294269522117292526954607433358471883887465283431726816692712994531832719674546793600309206993362774008590108760179356738804103020820156102236573729834041019722461561041126834711344234358153471800558124943819856448262706385597975549220803681113179278786102900124197724054860722999746325014838707210811971557876060636856527327338966820270288692196588797379557266863564236906425628082097923345890706653072665368809825272491797095967974030814532133718093145041513606469178001721126730306027106993565571574906547612735118106753835782014078421714757253370480291523264185845475586042087839401245582045277165981747865721217632054636011207841827858422070854374390394832665112813507819290793103848269057535359227639488918479604495330615494377568685325183985829141272782465791712734938574878585570116176224491660641596052053883212277005683010783505952985801350449644083915641763438907585972056009636541545603026672995369484206375887403968735613055548971555258336411253360640365903666185539357040268590711883073833653883563420942762753584400850992189219079991884519135718379205621556890025539219559414707848966797436756852954070678644987701870778644782419096331120916157735010279197472552405313819328745033751425627909391189738404074343617659715677564826005866805677392384341722004683378838095651463485841053844825590843533531564336356452016644462724018519551254757820395222968818826343267126088073719729325018936296325767454719832241079056045965053422867267778786549095154681650822206612213651209171740835039995498598572131670977384863178644291113010627816594767194571759899670443916718401816246841872594488914120265085505081774103590239212872245946724127858130919313691054065913886567239846339965656424375099593107150839954542324389598574663268149193051464131207110305638123060055213699015485694155815240491733769727402039103088646310338289784418114990993365261704979417497713517172103539577974098002287403626827329193170029337981087452796785529149508451043595809506433677899861723492217665116611953829372502060083274686895533687328810726612808250039012330515453634347509871466026131871231163791291531979738904340491371072073678871710433371035901260906415785389269272656725381971332578136886139226200256662741598121724258363006122594724136289761821276415003046438577630955251547594523695156961921600582147987318200169076643186694907326461045855441174195616797264527455401136534237698146749907307444649178169193842012691038069116093725814508217382934129706323001097542462242266123233666711746624284399131639889585129228163206091093639074872085201210150905356754165443004263861179239115442542273883485365090638984318705915237222921715016528975534626014589499031374837589011199817718876617894124359530505577726380871405453407861412060232322109096698915356923760902440252582108428023905316086906199565561035756627952651286765324337609345273744051550592261614356518012224965621212559522700313693392774395127513378606449866024886642952682134277637197280378240471991819818339911680474648082572713785603166995018467107852795112217220686225769255951089011018300907894253779930562446364158823487793883221415726350738761998300691332001627127280297816587713984841745524688393355053850590312125546734496384518548241053944910944404055344559715310717722361894257032944787666888334489307676256664774613090191442235495857810560182066548175731555349422198639096782277723766012478171243875980884110836814551352330975139933700360306256533698757701376414480003319046640536185900956320248578185878727470882224459291748322484101879245905823859019627642031580693458032214724936676431329572175799534267055163055680790536242610866038808541735451843511885621467267696267448862124154038564918024182575369888461141300387638810592216778693839335934928049781154901511544415849713788931784291060505535664563162983123224945314545926034542705497729291224725005685921446395229427289976676659918867149513018334793998188860177456827879566743697087947760374630845552708331559604367352442250440350482328846378817755807230991738262435366481493258679519788031312438065092535615332019442854396940655014363153576432010307808042630918088744660827093519558995208611059943462119763003507408978033219664557755909820346157993715127377826000435043004193280374472721628797484228884378937990142236393101384099719416386962956704825464317012673998492526667303821650648411605576424654513121441945733275757974701232945678016824867816091334880763159535660307768907074168747404946376970274993904602435659139226969761107338765549799025454432199676558574833991387506449678569667217167233322387018737453317844638463674265731109173244340479689102048676162311822915755373715636594673459264222556472999577045670643043365774279780788475585107972646502842538659447557268428535122306621583790150691435864353393867889226839402067928527573381355562113513611278017634443763336673860333110019859826820517697225917164588889653816353440356434100937259661211052595377923480665561156354896416439670092085122705667556318200111611924544480059909071969945894853409231578327982971508089852559098152631592923316580707311215178776232162615107657351822617505917304587315517180887021652373259433199817860600388139068408739481660029678412896543624004888933326942438595786308416933462358938903118301700922042981809000239762427838630243293317886110426931517845075248443081715747722715106124050220460195879739344895242781043122450619146097673221555242660636651238934438773743330974926580770219392507364538046545404898179527465934433848198464106639888617044338544771707839159561262876231560468251785965260092229569711721495898518144664285626236923077115243737280057743960369650018990058264959036708778974204544095440174251555067947256335833200990896891380780613332072722547285438499615411994658653924720965582578566894733794385802003728022651227354038128513192314369792749412417223187392864836241213252321383512399970115118422442679525125592864125080882970703428019760463562534321164299747448246539576472251365110804558377100151422454730091491087075696980748148895710540476828954498441439128971423014518207756156989021252817420090353900531337563751675787085550053932250854022244791059018496943423302884602323649357657338334767392554682065977588504956156374067844648500617815268485548028930411524890515858356837426149435805526841243004901177256782469079710517008659616557923030356993881715294398768309299853428795678179204523551473445962069713812285664471307437537527880254297033128521169726510245801187229730060080415046123153718032635821050717814119457151631803243663915972583197754131800123775951228120844311102949592969909346716402339778635845043748265676667061184390604792940523727402722887068076952824493909548313631041859713221591375550255197935823438004557951678230363567192563209487402186999942834614689896410763260053070484168367214180959986565131421790289702054604986121011727886425208901146754420140315909669217428640023872825181734325878876856461355675288963403019954330371007792193276507877127816761653964622164824222506154285523111418574128551153129279949697528069591969534430562725406457735692492552872914277732144361384823679718360799209509019018621661455478882258205123593277537044201094740192365387352817322618438447284158378604122964332141243612355621760309464249598691986559447664145956431662250253232462357119110616061324123038609024888545541645598453530045749623422601499748807661140995122454809493556589250306633519483800314887797990451145198606030923612430250111929352584860016919134613951800291327417681312993369221580901878996620650195493807828595353901239098859891958963854073117509592386565886054009381005344742911091782007657961485721774478699169365385309102215007070076829710124190009005814629978879221288778652538111226142590019129326044023178031459711086084283565367824753015589355015405045869794162268035673055388631920417213088232987852181201631238308715412782598103952596180040661344319958931314222954827393342275095640502197321871571366723725259444446678134011409585341543341886088361982862320438440552676649668317976136809712772802185622480477318300410053522690610722412476900938860661477264062776477735956832432162231027900192160414627685407604571689640444102738291516821934868406266247543079892036917178650248561535067153855684142684306967144873603030081549348224769369817736585452124340063906002324501573470199547790809314737209145294967084132805589102147189747791775935449793666301523836177448702592442302932339842826726623568854117786424425613091811637646703381274917546900373445946958166489007785968938203316987490058550678725491004508971460566790364222489314166988439812383994785910607273225882233667351216310683851965347674809999528883099794031963942735571687431265500148003710113430953855293621862833259972299613173241911519486762819117022915493574777152708444695705911813450021961327019926012271094606641090434234893950143722844079854577857556692253366992058010551993666996796863260126379963975886816314224390352813938763789296761465668339905611179882356492552824661494555923406561911958583435418991411312406795734978390785283751174077241687925266329717387655954615476604023068750037902839520528652698831661860611785781007073257842766986222296310310865234443267691223785551719301365020016671116181750664311378977900354861524806047529934527361307810620524055787779929054722250960753307068841024082083445234884676937065311252636999986100110906949228441376703976887187208668339464198706980796822243981252276744453313518478309505888984211203719192103900883896195857497539668746836495900217565731885427109859024219846773881387568005008228904214236041604855645703213315922491164567546774093948174656352342732922182246969609429523224699863906161915994518742169605075248412932304400429829564469057796345970951082782815594334880402483384282552473690946976081262336766985265946436283122313641812403995762220942299525165487897041403840811779259390960865934305911847561494416415717457425574428848482648330958064625562815179758749031213603743473680456149197460110354228580540768399912740413972395117322904044940806609618670480042509135613514030290351652308084149539613030079263599908565558349831694790603778950363520361422557033762708137242745281817649524156970602243721251433000509286740051990256745562700652812409533410206342878807475109642713492715610120815904603808065523498584479821908657191913965713634155946019044427276343185537383274928510677037941942411268193495433785158750691200988105477562717044790383937510007235711221351785981517982827280221122059622938124404663154404901998382401932063726953822139199926856952936927069079004982577326512032994726554048115262600730260725214959759650724012504072874107465325186875185127035587108061821169155059556715312436463578486424207402438747874388810303924090528157836701890499581679124661036011401758807779127233542791861304785493980982913923854903600582038588890270139040664274493042732671766688487628273980095238163476812536021557556938893555232661213839717877988551221369091025879826274671087378959837185503200996951305927211361851100288710262592972732600430614218191594196009154162040909550851919879228612096011568885974865234044369254672754032459872874509017374607259832990491209339281128766143939787880771447522186009500131199090839040756600156529570260484184154559797479880634426286446294460927401992327820900727017277858108991344083304368338154744872569248702621603616854734722306593037688397971788857778393711696479465645285211431903356646023049221396799865181258183598322158790385619378841558557661047637707342390881179770036472122234049735373145009589629877837323915721030970774187523713292985139750832517894034620949890716989385668423599883188533404710835815056572607250066375370674261467080310336389172370047507473029528092356266571459004568600115155689738823432510160044203509413719679246355444351771381010984111905450056654203382272398892222351095234155917700424335529447192060421084688645854908024148661495086031474361127126959539020121490820904381470451728581296277534617559813842220689033508568050073215950394239244776133899622245614986566517593077772551999465416730613496307287299731771286010348032773052686233038220048278101521309407043545548798227024706114744084650182201447882473879537487308091479084663288478632583960950469782898771366389454587046604672324173353705340371327241193130531374101526974184415874386780228764906207591393320957508732808345215438391623856948730729832409199299694044327371722865748807627290030246993315453976256985955846752961610028705427929946846467980557005993874451044038409582306221132158020126846076903092597073005309246936018198505135959956232955891317032476527974574232341385116467543394865728725263429891766689608162066582035993764675229590376606903467594778795307140981404908176168108987468263458562950248722939644834735343716495061023405941750281787068881744298702830022251163217555064536731036160039421230590460337581777611608941931614649971533294684420042490607819136529567898711964195981878059456123933488988387234012045962454300908005492916282930693159629423120077939711004875661599559180494639556591662920450692978238711616339151621291690584244782904009308380537379334582952964064515513119816146608300029620372495464252083615259117274131728972752136602139779737349425065829578577935699770969982755295823488355233152900872820278807338296573246356352873964569959716678623445890186754121388022522659138297511861621609292226169260382668446024681537589529251854250889404839269816470889690204562867645824755970257831281128025180593053054076803428519391280632264710536300850740798732603714124947045996927135041785506200843099612648832889729995491840292060637080329833114795279797218887914802084145036048615578151636324490037831093000429883416254819675660895187491120556703004127204616582825585172342551628502577875428328103093026796046503984263214863537275401409141094571402945139545398256136994729908087934913573489572922555451508256468234384946822008139017251021755194763782150003581889221536223704045904780843749356141519757413413606489403710588119436363372952411504158458167744593708279425594274287428715274534225395662126065560876183223378949813907798833296772424302075966547627815297628294911671109897724991883710263326092258250651274966449187094369801127843738354995275477367756583694776254475153320616337281485549137264055544019538087130553959660959614156767321075843897223926412441149799500251855678682233046687483473084749979607012836635113673140292634614916334410679702584554584209917070435336606701125346707762950781000463398480474945542278185357353514709377363126616262414230126219166346757917213225617612122782133686833485545606393935060685918124658121404694842745696491864409246407128540709308563120764455045811722688826612793775062935251535260811933828155626958637187974598030963285726892226045644548569321958400019344989631953326899302959867440859741601602052802446240529467860643623186302016782001748260685736788438645333557764632192733357449297484493195785908986179928278037282786110662080744981864952971654212751911652169969677674395821356730588288938033529026633238281523350472261225385937089919410517044973154823447692503732946016990738456176856719007861833278486250337271014437482409163496888342126886646797377416512477228109703665950279960131339918827457323901422151919279561156805937900722824781593753934173937631051836489668237110779325188907146763340888203925935510685267864883151150210877956075805962191052861774053755181800581832179486780119039141486705867837753510592533810123660888331343021232390774062975274254889753320243468588353874590032472618202788389959469442401899182084242148382355686641954037971154238207666585608538995116627067148168550756567478418835370744795448929324006662144293559634355847066343779499700444631661624172653247489676250910947920690356011815409958292886132576367374146610274253417831739456446248824315812997827380947743449212518071678470466537287018631846025217168298983478096183264907032765436279092275791920847655584798152217869529783562088311800641144481956528436182001253198003562469851778294296084171321260613274898527454150265204689557967349941871160219074290841532466845109584725517991951091694125675269130348555629066212417444560990627282157471191236403704563693770768963185964326566448647736508676351339987145151042703789753902107415389579022953579800149328676946127995750460567513631247779526540496322137870565575025332131607136903090419452103337987532187155288506526010873203450479835959649312447765612133538298228418538300712831767260223273853526914251885958564022860218927280009593184148498123922734379524630591634762566848082756028704343998953906511680597926389109111245608958143199056392901715669710390456633193718165443307158287598410810549629202744060016703364964248779567520250704241901377833157110802219575153905637261118216829545952915411865330883467403530029593459321652737243222862736129924403993300561596395845589301574184954745954698752236459169546652754156731215366525664784739165762698398951374495910027488394304696800944327638807321324402630395691348830088087872705712971346425434024648663140479152635699063136254835068154600076137602782412401078953363103853059855713148066016415268926719558295919091411597667968149173961654068932512916456650072714878956143943528075521139366429036470670646035865269018577445836050524633621620575304136290845936541772034934304175369706012725893842935979286748484522042821812496163281360467442849813604858821577007852526780895696386714588739941053298958936371996918582048686637848046420841659385901660503248594751852535406565724299879906275214320436831525782330014621817220158683557812073687298439604096331681410561151494290712918620126331582651605171876142720471400656628478409616027290876617390080512977929732308660086143588788168322942189576411205739709538685319326638596765502603058646103538103908874070567315235376364827263828872269358133565233639223563921981559776454146056868586829114133720900437866478865727733128005511692936177636185320051518145940095013603322170519962376666499870688260549355633377001452428236537439638654050319092467970472664560162102252273525261727149728602507727694103631707637316549036946419715650085638928611784464718723337674399981017370848967643093968884257456901891376061368369858167426279773101450410292214286102415212109270960800182663528649426223553883254411464278286842019728167517311464707522211280974727406852722867335482000711854888132737728838274819660131799767274764497457244791336101332911614545691166371032935365825438020666764988078291349677922545120701454457653727203134740871100379814654912209329236233233869344085791007325388764993140139853085597169823805863552093172922987970962720931875050332499296513450109296399736001496582318681167963558109551389941915666620866461499475845309153252959356789631306783320424815209126430290829508253002830477750421621508942116271344181741194690307571909900568265761399995115887173866348886490714526966387546507840597880945184765088213385589650069795290183258973774442773334302761938617860781830739684079375986582557543829507491876955044815210285630107589944825442616582169669734302611743402742114914170441960658367195203992662556372267748626089435599645033747629947881434355045966779571474672372260404828213906489221996532817266501990506701830149842765777035397735796085179440763321984672808442647795715628649515258925893559211826679086027003501583331645993379421055986040105961753313292108512303759980437741984251200303955044221631438862145387947043855797150873768436415508375080042993892309643050358888594707910107640797885728510335265068343288373774807949605773946207117151107858992901736506007243646199609348039933995713576989979337812402864323547186560236306202104042129586283014777676014166541137834860145375717144058685127724754794958720141590410690108318234061132125121322101079878703400513987503292962396111327645750966684095213144192770209958906979607180039494129346694288029447357112117817954069926112250908318814868871330308802986566653260226069715560404623980218817456881335256662236325612141739835436090359638109961075902813748435244313444356713447293641031739137487953903443888269126537906421465746552618176795616475330473807580075336473569618128534626534823032531287172162698478856034016448544767034146094002144016828391042909828115485072215971697950145684048954012184706606353870911558635396407264144113162290237168259730364343484421722135126295187995369152867012526198022876852498675561766134667599437102482104913812972100834112680867627473829697859174585326812290331437105248540287763314075306342994714826477402221709165340802028064885773697157451073372374116938413064567370913169153534182120126123072850644118973892454889660796155335034090885519887317562354275254230695070948419876454800213620050452432568060580036682096041565933086704313053051908138083467428670083024853610626092833933477028237403149663204839546181764011244893487691576795159263541511160144026563414184862762577156384384267160275150164901560657129406449811826050479919145314459092246405525861035588411723545765819318597459560992477794584711210367100936891199861608192625038042840318956596923488677028435018306754629937489140804798952453062115839507066123128325911469943794179679372318944155688231316098789809425758685601485006728923195004953042590071069626457399160216434649339642142999594567087461821637748767812781287695344693309642928923510989178950240044841360629761927505841156188155528225219898919491514102234931149659344412134776405971519887566286501559531345475296645048147063429567261796784760879549114016520604912893443254552717962377717575582020280018057669598756084765152684123512535387524984853189019678464653377253977133038247456683148607096888534187248846691198115715026462586167357748590919948685982493652195875521686977874007168160946028045923171547811958743709296675242594052539987220926218134930638800220500872512608084691236968135814519886448911878902799332057657139261706816276773210882017543670188305566196884922247218873157421127088273321498774030432044354666916741101518970364556667526117497359548483780529812879596854604816946019027864174377274506975561621810687256987115300545255482138178173486722704062337531876539433405219527191643606313510366661922921840587767802779432453027874395307819892390285720167150678654675455218143226348759640276886205938673647920666857495292089787043113742735010493806825368085003797921461205020559776587623833284063568935344381998679127789358206525848868937770425272717530140182657568731024391264670452531259232334823388507595506875604383965254287352037700769020475973014197555815976455221575995925542651963934771632903371373772365487884302003901726810472020961908632440362027782498825977043175465724646569887921274132564049154218684891694384734389281134694904294959880339254739695221296255389857618087558494323646989728092981387357572340585901996424361744378254471834141693535024490092195241952897106830430136970488678272358667728235361597747844336316239465441338865892394883197525241932406341776545805561141460620898438074207574486372440253325256997786196411259601529836433913638205784390287229255739350912774154926912068518893344692219575464466256507634437038700856737976450879997873475116878847591215081199051704492729944291556383037970276665185538892817438524152751340328044073487678004836192141012104707546274585655744865280835089177250066495816699839269019874730757317777896149509226953443749184786633415092756018723812125960059856124635325244890944327790178643314232610603214525383056469678960365908898452477966605194675862798605895475069855846050560971750498222812566113523161634413185556309307997414553488923112641204140179960557707415036298459070161045096012286738550260513101456836617932669148640488655414711758758927188414101343513823314535523970179960476842322121691100147870590808624211374514287496593971729830106719125593404962119392857173887265947148724496334671745783625105254774642484560230321776661976043263967838622756006005729501875719043607263863898201380620178829743071768633038067676008210287965295346368186967497118346602558576640739877898979471216585146269684143416084691089736124044318303904295126426591675239527671384472639927157807291251173802518394308877266384389932293489045158018594530566874212366299892695403330584610116431196163916523641884432478402794810103934790058239478347138554404837524951117925747591428131185327874444885552786749405132970333587223746622345432912727671787917129477440535635657902938255679930476429400170630945128032274893031832687727614643356070051565136961264967266763623315776987104122719586958972223517965271154421274024656064785045333179674661469298791914870721077437891156851984903203188607630425453537915254574244394516557113036260189731522151281134298612732609804277698234645933010052369235510116966725431951550822167710624510145105330936179028168865639148639282419117588603519818131332890801582208853771072275671494853508150915042371899091913133732628250917540836826671750912843312340488660406414403290254662992828946103996104610033296819247766356119195904212715934664357271894446757580511822699421454234698190602250799547430410229047176876881628995865854598407309291804015385094275327784828971642906914633407662177987192551632017247785929422432035798611281341553811948641889522400706907905426377266122613358408923683971838515879189051484577762327492727968012661351932365287565619986905305152157977552507417339976476614679260884507067669687599467703180237475526610377398282132766202308827788286090728187304358615614370289631661462808864933190158705091378851059740602925566466232606831621298857528303461045907938372232759559238730790507671254738212759837765797914999435396823823925727817709619443562071935705720383678235623830695636209772527311813414015024984583316655276047968470959536511014319654120511095239125221555920140505646814918882074087662040115586317781021464646026359022261068011813063423838784705220737947912975933288981706227003792823766981710983707218327570905677942089666571326277900356204193876119181913490063058078724662552325968840994640777679837813313209033434983789105761818423400573640945360679697594821492144462449462251639367802797884010121537251972672260998441763224986880925337093968109871966441636769664999112904115397686023372941463654217329016330112288671891520924415309222098515893424452713436602566302683138806482486278540340386685493676672665963109815842920858408982918166576707720531645410222236721984968076139667425402226574572391730401314402820750357421561236798012389113262433950358073150050847840833908492930055571170701360109127642106787517706576934400355494868766689878374476262847960383899913138880584139614520531584598716648044049882925787320487882574080748806753317832682870721127568715041870624815695336627623781409677686533381047043266802401104395367639225902888087899903295851605311922125672415736533211587472491007346651024726864981961565131699734641905329602809707069371315378937608850423523450544439172555778331174406269520373205425174331751962999325975728575285609328574640564348185761842050129681735406101124849473377642087397563051611613188938209198409562092302369644859235516868292337104930929738933507580491038645937114413183164224172138145958384172363975926480897388297945753768479364736038181511336747120032360820800920184627761224389202011495384774243764871716130535732155719935346824851114084740783980298534810298737513483869868997635401135699798312333249243804191192718245878885399185377810576213619831149476622048623490608451088595108543079076081983286597483296769058703748048589662082449724435898275696316499155280316648385160437478119412021811705174685991618750887999291396242906066840930502345218565179850697531273862290113112846983906948347647420796806785711889279593502857801544180119260346004820638591201422681952436775357846480961872338192947895681793289541058073607891691351960488426004253746694986282343994177536664225023514194639208375732107787596998303881850839100940403237423469019917807888062631815320854679963202322826001267839000638419774097921258653343112143468868789681272846482054526795802260178211168961251861426057642688404872220037968973441226723367230297511510451896458705969382108932884128501302447442543563819292625633988536913680855544497482266404127552806989997224096355134401301497893775359354249983600785573909609503044601347095422869695696799323913305003532147828214081802396562462595747561669809073775596635626006403912332461242499054077038243167645667650510219490989209793454463413114529580168343725336224680214846024106411603097208301453783011101330080930353327371611529090662471691166888311141655477394758232326898889059866893164433798689980730175799821118944803274874923539505894162623539952419156199104510438146856977232354282154605154178483873371589443582188944847943607995684509931031002009500586851425894916740910371294635264774230754064541755406841667710580759899696650302011324847609181422261982174207003366635185214132770051352701661394752169394608802017714594592003098447568486391415438894152299854633081519879879028428655069219955027479854629851320799461400281058043144124559861614618544641617780755512306838287392980809770471277632976897382786676466575715375609460208321772214294390765868099025655680851542718805331308585946453040075422959490733096440186561503444709892710831338508218475715786207934988453742756225509710240881045263583392733373117155205185478946162316427577291496610370291861697898987879123152087126473085686372055938969991872562778638177901851722665210397544512386679549926670181629386573372086235807557190919515059164351723610531433408485442071132810808422446244813456598059104178001705675300761812572129159273691512430457753133733275921562672202043083002599410138009576576436245015109328507771366235722231419122417963944955446677407609695817125658752160289112753620723424930930984096097640889553819411569261750007558894087209217536164892771153305682984478882990587571714275090231291284968533707003475957663646134672555475284743457840376952880191462542439270783353430289261720161434169997429759883721505632977403980604361385781931407243982800630182686773439181175555200482347333296636267739504155648522151863641225603800809851842686442449108935620355715237928128072478908800088395235457431622623538589936437612183162248411893489917832559014845125349076118105631349340169131359005617814288482966468953070446095464216382889126856691147308325190722214456807589881544910691276476267256215376267854866532168322124871902809189911086152543486272985071898348625415567620016192128870119259220294028094200665067113610865403189001183011113836080693654483083924481016666893756443823168129159076906723965308135392183706412093070012197551957371802229865367335782546108178337486667735702714694033130595616347777742664153995938236668548226365277522977994585080960438273556853957745016984442699619986524942354473878516036641602230694102149775561242495958185146278345022121862257218592384870471107772331676275045058055086278419180164779802210943019636276841675023387972384048747585109252212850753978268620795681784458027774671070546760576511307460932148932209805717067396708643780628013754370060763424446608504144222528497111526909702430685816634367559971227986566490742850737625228776832050987262063210286508274504722486737607277857453838859810839096332738492203501729598030190190033238351778889045682017678975127135822231120225693764875929609807773330339830712712234671352268947149543123228378041247271225110621869226014006931357551527923115848612696461896552102270412753513796442737060211640077592087478782316791505300157652214169994572366911469388256108699797112775684781139913717379089969076227053345627628383199767761281586390004086695365809663870253259800475592641538617838565173133521635655224542773355216575528733423571481403239826526925225496017603147398304743277005398504624259830639867668286877553658961692830881367536761351377117166083523043486032604592299894384751905832389188067478270020631965861902426331661130230445265475975716372787281007524943168191007834246332467503847108274800715531625254196813709881975750384145257787525815810931691212195008309130372872439164774283297391847559906230402068896452528165738944800276382633789538107424229188775628731207846152004219177731213440097171233380292145941273012631695451293610376788356361963695759725197517441212037872566412573431327508496774143379614168072698112434190405273044133093617189731731499695729313222566941702242548143422763729911923962268845053191658770098820010065417314517051789622280399214885127893761140967192877943571921856559258778799459485401712654873476692492403344382801987010612069587243925231452899868606077593631108356002561318592024889651406615812192743251852877514739363682192839213932449837264788581279113911011595035900310517139834423521549853139257654871874598719436586718550364197786818257167722062998562742545851620028214359710864903353055077073540359483111351282503125233047270304461802750480274028103718408245929350998238386245710737201790794038164765948802313073539228867986107083829928543556784746596084279501559591484663784012543581193093168371939419445176303713018324374709950099782603866757852333303484166297912540706181399755571912722780032203920672795986528019988051626186730947172012773238460680545007266324284756569917824338210445697037573832069794272360249541201797337924379618102509986697265644277135568730484627792669308017761360493820314637446371332590540885023307482754967892531453009703890926869318198004977385266965971535310657136710502337795692541424363611275165847691000644751948155843451481105996841056233123891856460332721149675046793118611732992999275020525067115136967406596438701889981529950558471033115874669156989607984138358611110646452821782617651034775365233399730271884762220022456460627753995291081010421757227982441316798176197514114354470577657811920199740238639850926056415973190334611915152762142940504140604494615989161878019827402828085364727393880835416419865092498918314862790834140378693721786522760903539517999771697533593573071335468969238564950561784494556037627421211249774339250021406738589978016388894682856247414158783192981178781475563672769439075738029499395765395724681270236234495139951340185669884677332993209563543981128434503989696551352763732075804720810052654905991631937460233338026536824184524589355796893084942819235149214297990573743621437201426184929040208867370806628528966626458615090281993385788642857416186133292543168835416194440908252113769646818021397032916007838354960034680605511691586477565230381172583283062143711858770644404783364355299536519297270292820917259142495192292406722845575552513145884288614126424193559802237935054246021993778682706935086752503726326240519245920068929506704469836505620451185395855581440365081906567270029578407322948211996043862348499215759826944553547560303974582033881668896226805632948314290119887416896709467084839817923533951348562081208555552689588909120388918959128037040308134663773812294950686341188595212838089501111899806724278210997369260949800232759907661446242017931916358931244481464306433347736163016135333386081853519637301820417187293630809870140002538742700282042008857302474712704124292324579777624825505059348428853661242766816620159135973463324668798140794021394862014285443864802029497826982313590901774865662193461774310219503127870488336648534059844688801294776641756294616245947474370975680699471108479677048065417822861020316598057601050576867244971137391520131340924655457258854891206502820822275383621025427119081097427663086244249416214834973181303073316377053133386294444428400940945056150441765098542074771333795625061687469510845279480742782675988717185513926633328515701089934101149186527174530561500834776630294351874234574531312395512174291728860149074501674754013508264410980158452860205681278642259810315393599410741200881614424857959825854184581658498243661145628072419092245514886908314397805173748697602440488817733412095555872528340204307260863828542729424616674997722083534152270582982419959396401375444750162396810834143255408782137737086289245073120324801509290184907783465499731988630752231590047296347947866720704040604684004124596326639708030186084113157391265207887976550743193455428048502085409692260783719479989269208335612031015054222075989286512498251848299187564336426710140374057763954291197277167187614164911877204887975456562721477156295986636216173702412635296858432809520314637642149669155244683145553084931881180275257063281537561604518073975046091879394940247936123840920019183266976810683465934053101190884390493750550471618261998624195125521969566988314985251400641430025986910700016184369614501974319050088317123754828686674228035477899625613949375281434582608699766366165821680786904357632053994052216535134679404270201936652748301684131464560264964660992898080989138732542368747090170666634395569305348006203842855275528031370946227231593500175499512060706118552416085471671306981789062958638756966331714705257661115413414128653494900673843978888144901608804378766577517688859969962218116351896437856308282148065840392185619254973151657018150288069545781216607949284228525342876474287958336536565116621497067192384100406253403538467091173468230985877441970846298153625134172120697271153063288571270079929954925802468176296826629235274061213246860383231989789230640387767432961080441620632159267468086518184264901580059862197911165062660549739220672950538508683000033096436633761186121790872530568002237504646832584760594636295129256514163190230416237772144389603923071459511021382582688678724776957821593446144489782011165347647994087569264542076081211262866215582505426195762018347244374382316777547910426811644039111458809696403850403226815012536402705906131698902885590579484421754712428918163958465686140265098359186996957495957657862900849943500023391258184859875399772399451277934429488805896546403156455877000175970536355274546202045597720698267840899776556268812268100505416731483372333321787529501088679392496259990372602257346405589895675362737720403532635546816444176083126307392820844324121885218113801470069414918560199937751464894580505376891544153463044797318456966347220038571077914227755573458574715558921406513682464657230703145450865152353052413111352654225861903741931525563336119205922112447877227261544170139770925432787548311307561705583774010873825343406429696571270897990531605494422107816886874413577350828846687897640196481579992133674482442532221428437170749913025028403582090514040031902124721220932406310356980098161848141061670256523954378315884176400824677457007164628581261662320567848681579827099880488555364606758310517945252492115417317860683546766816921732986663656052541291058104420731475231259569116964101217704813478407500481303957585068804360248692566086926973221550812447296873422572260283808742268114830074537312527145137502998966234716023387985168288329490621341617427832205086028546590419566398723695015540103703844926136682714722262805719589675124003231322771097582128059403088427573694002888064600043639845883081379844003556093899262767032182025905857308825574435970561702673075229145548470824106239970838095127701777979658830817493393549608382017575569763651155761515472176115496769925010169091628068660796243884378107333361059631577528081769931749955802250426003746729774859907084668698808907727518219207245994355287537641916602364434878546206189383248625853260525719909228562894028189864261670399900605290629948185395907283401648823668558593977254842155738599884605085987783969513623449813547102868411772669543456425148489506658063873643795068482515300932537687184873608647796810329142617426730115085339331857460942635783915833071147932860217383633107444693934430787292963363442196699693865170019461885175186021007270651808996518603114579825867969445158351872555567229839615961659536820848021840154081153134478206455105557592277841776960979274634568747894609686717178855134881506088278888166021054075451023926268966249409294767293467983040655624629559482248922176398149258825928758778146569227329131794924900375185935049175432247935921764989800079277694580396915980197135608473701572163187187498254791449358790109512189450779240356559140084932243305629409332078341762112868866684611884939547458381785714511495474701845177501275872919252811021458272786671449351376388206634759713392285438088939781775950157743986099220356692531985578063003275523111745050769205730282962881036534695844351142850331595610736012744399003476905980097181162012757318319938983692504759339079588806132949290375970493519046196116061732621344561005562270012110495005621596449571497803194473436118618340738754865090357732312650174369860499080859163556316021464723267198851255943960506957714738349824344775670026442344858350336784500922026432562555361495758682385277231439223845592408294787949391442087492246629743920127843607752905201862454609743505837421563134025151517824541361237634690584275247422594422314299462833099477049899178770783498052617744500373018916921869817253031006341638686918645254866592250303556930218847806061044034865974067348056981686460300259864295945361475200876500060448159934603298465907785477516102936622687720627317456944175082852458153019274121232537433940103100963387419662241064563394844122664500680056727067396931910176273647286797581762481757230545681161099895483591804378817352735440984614202793719207029938566107798829364081091454308490259391823495974335846098351718192940715311088312792592932712063110419438970464859359367362717025118614804777320124385924149172246174052048297571053965317670956467065884378358280148505206177923105567995517260370680675241670346843674861342275613624569581519100213788942719260438995492903797429418321650867488624104150006638744151545739985137532935553032688048398159130817748084595255533175616974084963824951499327204535900577415022924817502058055439592330701784870534262022586993796621194276446654699827824663791256302952671598123649190752250650666111020931607034116156092345909003774215937509144884520558053363502674727838935711661204286425600041352732677453623263201316779824538023210514350385114508019539134908393556332086530849837736940481343610831017938649448526262953078742190623545067434019282965721070499805805328149860715740167441297856056699290501929691936405240324249045902520868714958668841933861166978550063891414063513320628263119990816477934063902705739117822258569927319361621918580331409676859444046988748960228368750791871223244811081864599143963452305359257703133192884690040711791955788508891739897710766929822748548700543929921904997623758970682944251894757240900198510384625794139027473294997081614136009945458684812600290983225996302206646558878785832511828528618985904547939789867268396358318576918657865033457762891631030023463722713767980960280528021017241056204191548257035978938557329206578407616127862529592717800396797076832285783476093820691841048896005085883993807734353468230667537361283929412856976820862873836255226737297102263424805221836608180271140677569927712163908749692015992563760092727409819592323392901970762965693060138910098267469198972744996596818502067640104802068898879085843064123950234392385429736018719340904923497349629194327758089314193182559719230206134586871258921472070069919301791895089140678955338143962227977640355052409738833020182860973990529050915203590275703401295010559322592446510151706143446686645049031504197193914573620426524848676520755099766297703066332626010379377547378897170806905089280865092647319239418062006101689233581342313206939755402239735280084523951728898687167456634195550619817533225498246143846307222700623653326475055427892815155481411432479687449418178659906867612896359727846816420267136190633246682619184271518665977767759439667152355418581655556840979958156659665863859162465455619333089056778101641440612873595380893352816298991655838319647738869082648352709043207571494030269943299981585587636599728196524256219008106502583104091471850608536126490453289069754754565410726106389626541017290865514086562501678110737257309232098846781240675032828670608954809047584985565965532387701184060963283829426167208902678863598359820015247966484381372229340828404952800725412266101134653225235363304390963711812508975007021905946156930293910178457090375241590670396051247166396146308347383701224152818249142309885805775515304701358579232786295378791978586505656474097402605225552617788330616440865658232789344422195468137526397745874861904789936844368052012070221391832174763475077246909432340785542426765664614584243875565288192371728428431983301839732728434390532649876407592656090666317593479511420265342123900572119721976394759428005953897890479474638528840168214208165929408935593540511990613178715565138055632272199774431898970321304235324789243253274768523581822362141052143080579902459761237463051621820782784002023258056747389780896133613464551541546764205132751645975360463500153534001705623385335408280349264845690774871019351804779158424564196133575676153683477272464107668342167045389587752110783619469849147819058770285104394072654438405780969844221775037601134230674669372464066475644278679393065210644806776016639385697678498741244209165629663293870422051933803681818354547722169686043007048575059594796303592542613557321274626711764156144259915176336054221392013623488675711023582402605019560543444189918489015338206742620146616181738686300052465545501955246838566577634248830347425846310099413632010940592238011382955417176372997991307959253644450738408102701591177542941138675710881222721256528509529931314284146673939702265234273575913880747342341531311790693640568743290560183437840093279023637856656002325483167567254638489709850922766266114052848394750067670252641866485963121679456400073080586331589745436202259315980554488062196519663713610191547158756033350244217526670067235188467676662597785761917365904931134359531219468647103720502321384790764380910522290352891888919763080800294863614310513894368507219580996277431021580538075181323760237824136817558964134244305647169959217721651614158105845585205718034001317518285563534112204620113451093228390919946385860313797403065899881845967837296018290541803450366375073969636276827696658042504653891131216238186889175594830592663441246648302956461331375723018246427685995839262749986408152971002373150535037490073106753175763097679369390186898871259351232590326799087955649154947807907806664164357095871348562088881905488913649471993788657387953665703249671785166843116797585204813107988717749447463942732141883244465459918892761356138577137187914135357664310840092253347617249118035292370316239656552493340801472879017749376033119149864246008478807893878291878257292218411170262254466368425216178759313735284455753724331759057305173595108978418098597789658310699292112718951681207103089798603857594113315151177262745821095400033188864823456863788661319043005080652447596796063967922512813892857272819488250372856208388558132148504763729449577274109850550299417841160339601799638748462392197752489066506673031151247632441413841780523419012016188926000461726814846868514828223339444090831014164428949295866028820077493378819420039384399358575333663155118967794264901303268567285042943442031642326242823191395225300940218287897610244005363689576573483626473201755869755787665436912025960949863052823753204719357107001872376092132666756986643927245083904141765017654765679387226122393688055347717169113519331839758596091533928425224069076675422934973213689578146182730637999503662899167979510294958921409922261557259257419995762508083508355371782919969832763164192651676937514079247705753826239285114451699775329798663754843182940834895442732782937108881040754519176830332896212141931484779999138988385620325664322206034079524829369228656637099011047671363904195224475231854513241244828229356907108503799917855500141881692868306632551935319938688712005593879902012110947097847612188816192920568569058035883100716427547333225044197346695167690447447431191252790498176586034509910129462494340048100610858653728768648794423038675789160930391196682775686997273476353542043602064479615084284680531563284392318612713888677980064724705443102951654854988543025892302186038281278057506115778010493833671099710777334108245393701252404915677499626390714165612419964923791063611239486270801377600731232594142183449512060673968967371456208551320580837468977301983005542389143139899523873647370684835418897433554984861721701995552947264620847154577817705485911135320787366412359052537842698178133033819216655141462310317641220814655075134402342865867215609773895109848998034175681772415800359691438093701724399534695429843083181343561703362610489102897735724378883411266445222715993986295351804286732315391588600560271537020479824114941520136964663985698049326485528265495233163111189965366944913399603935899564956290252504973904189488769325862475948579025103058664242652891045516672985651615807745246964862930280206922035364311237307487164472638623677562273498151762312736796758155016591532899222268024833896990687497122453387489191467519037804138734830508581441902835576942966733455664152713221411875543710715720373030580104209990791966001556088686561405313168633299597060290790580296431532678015229530654071108478038278916893999396179156562388228792143566338273957994104221132959415845564657443140786259208598696656268510362796166502610041209680264522098306627478857400816477678647430169949228809056598307145789919538797415777954251342436186796126462432710021582314250005725438426353263290185444415747804920610915695251895883000506575510632466466629970394678864815145445315115890973431811295342147373153014185796808147493380348605827347438730312683315658770101653788204805878368986808290345212654229164624749497657331811224056908599978582277476807804710021936452819022963932804643714744927830160423425771423044581420507643854449366075805780698251356781646677808169524945468409246873049495602044155308341289001437178371130652249213107548911893683053228132188278364753235770348708032156319389654674792521824662040333293252867582707249345818450233232575271645380273520885252538815944936468213970685845001549433100606408689363417429817087869362585188447182641029356180840025146711061005098691990894148963274887072907607758080796292238265169856877127705417818442296607476792084284828663162989220151818724523695541656479336416091783885307601709709952318821587618681765334227014400900980267203604028264239941692303735055651856408438026061056384446085038615346664687206032763331859463594736141501369087554944161173982959405109433471145763945447095926067331568760963526020536846634566908223153001489503895810833254617585487841363540808291346958575263759471837451166802686043954955164024920990125579363495441647422015229567934653922190304025384935026375278692671474209861697555706454722572113790702834194142602123263567799357677128213506961173143407389527681110503777202288146679475437835545128956351438732775218709511768630550660112781343844807783927134610481811663590032912417749950877758011261487772067562379481765331431585732102855574249836270655810001632066451530051628019465017008589681695106965462283390628233756439873454132473148326958284784657688044016435638659476176862983127580017084403973608846528146353761933461276410032887198724110609227804721236767564528276069003818878290907422517747537538584461934963967899009116371618009865539005397116005507960782397495025112980851472873537920404922775948665187794335226140742107629920525929388079893271432497230509325856553798969145476846204855729758264511521739972331012099710364573519982657128871888741401739646073496838817840391570282646506804901775228881293459740261783168669723309442272777517383434590074930212011638053402091590664470255448661104528580445723292173977282879245391444564055852911191650795348477011416105702342857226698398797475566799813773782429650405742898707513895712988654741160685546095432992150682219138857678539719580643179918147038023114265064178718173996234156405737521235423522517235736195728440826298937815787607428415164119850519567287605621184767834058365252246887485839676474098430724417279084562178507276572480697423666254388211946445370428463432367537876838168229107710452278076243395551871684037288557677163016893501616685219540171447577656635576888245233235647181591114491039635929019681995164710012624136322054274403689937721454206766678098004108215052439448309413332350873727116115453056166225338190150488065870483909088029139171755453787720230775208443993676818897187554492944855655337740230987589299505857311298627755177294603307870831991229361612423715189803367782101962641045689486373726289674105599972568003839234954923711175361527871601037360594691478733721101877402278613181694153939523700676289188558954585484047368827288301113148861298098550435130090439076795923782072565339171963847201769709329315527088214551120720702297962629668038346570855596030160314663252634991177028828095183245019111599081868654996978107226537692876857761160680964949666087722828398273423241609391213101415081815968482583689208855024551676298882908333236402950450621341290919325607740277941133558947452105797190636868075057511672526054268330007151856417501582410047058789084129179451333194380879254755901478818116978922501888369298582809427470416108360030428261846232609552517014683260983118596270913816649964410288031356825720290152032745782228788981044083894157659634115343363391004258793069379868415772293821098266215923986126391535001876075609195252855894109974680170832145307679733638902765190539583945958115594657359529127062424503671761566881495715211185100631516511458325416194140677482068890370875465905592746736864301806563168039572315764596369192232620441616069982455018000119921912719569684059693184412509740532524216249119483766783851575626644482531063607358431477017845130580002106710516154529341913648918302606828834551880323681828983960041643838006526232648940475628782752237285590216515813413386664308542595763112037252476789374865048469336662818942028867273214623017150234981071743019693940103254688858698580914838624722631645645188241517538753954992847120346648099064445421461324687078846917004062136656078069568127668460486116108652736643926986403987513377196920614658835810746580438127404233981548487987924771381331345258101260515820538069195215383870463657431020741450085880069474617236226947550835194627587703150051955279469223178448037232407339555424179688563515867056175499574398628585449505688405530127025177130493831436088948675422976687043206454574716692266568391102721626830183322890110674405296843760039791288633151919346036481272770939267035918280167691016248214445257035150999576704139254003907039981400304533170934558636286908311109071357889937265934145377438885955536223763056831804880300772609740476415907688321198305504922970209265282343163607542673926061687743252440137480593740828823601821099312004362436354684105154210259193016473344366389879744971976924346798170791847998112859903387250710902263444278331543428168447161784893346350898405934290442689094130013065809858292964723191341396809797816139803711958506641498953061563010823184620096364090786158775874746864739791588715761398622429118462887856502565693446061471782606734406330621872482578709594777399431374625929919528305392122506559220164241948712091222221099887803601989017293263635796278684518509467106559889463269955237827320979570885113062161846280654512389062860185045511542280714403504955636304399065477538461317861300798912656290984146061534191979246844534652613335466708339856679445296717904556059266306493148330303047591224115359212923730635829634935490507710856816656647383650704413043421918737566656690284546212308642912591681834095862586459274931473051959543782151198406169745593706664765479966175683647469888384261488177224841723560779467702771032835389818064045196814987976903818328591690117597068023434773067368168567303794929810596676363739145530556585127282141168181093802550493805547843628046128617615968259395909832405469144936591299274346063054860925648055163165593790642742275955384831925380981588356003298712162189509554620757300050198750306786359434673148708017870924346927440200755775059631071854483685883553338439037346214622330171363601168638603254899159027230404126298267875328650151903444356855978180833208497519368527045311940161047433451673727174755377053153283139609014756699589908360363808333398289778735200761493555241828268646940387739398484540168077705522519916033085923441554942198922278027081204276332508830134510491616474492689638263290991194171541389297600566706982237592333620328185394133554505188467192374702308344736206777316657502902986473126184227772658597479168847847670110577069904014320794872878065608193368351259615577218126215171548119564203088075396378937580614659763753778206378048032459078248682145147103294949613189322448335132548948153615537756817846368074326731321216208313144415373064590145404247685284910146087265762635302275838789343464513197346398311796909985353687416975830655940625604143125350310132801081031834547209292207042395440952255841608571414986824305522130654248877302768354547328466856356870749882785524126866890210198240188622468588159567905613106001641175268587641992234722347469919681639016588692458955321809389061337754312184488517777423677470628370996014133129905274221983505601330653782002866603200306799438413598306857643634029680917845953126731083954433577627962731255269720618029006077396255021906367776362252073047093982191886363939213165139311408337648886539416549008803289355875092338301878632719036582534625504165108100865468726898371631106238552992695781249053950786686261146361155760025332135371364814290412646906383625746345013349244903666121731775151032615317788525448058977895475051835223737435549343207017585796700855328097613884586584544056391066188761016754058563703421481115648157715700403891401346394670735652478311566462620352569732221752450980887798964881320354747350136613397742348723656137477418048816571991557490787758941252233244388229927042773485276643843010024542400578986674353466819601195784252231691990505944042138681874638730657977297284430162749028380743336050200789630956074320726477011749659610297495819246632300779966353751488850733981259893861734256228130321501666743787794668193097246795624909162374314641459915528982204464816197022159311767521305100919419443429603279488596539375508040123998516809998562778796872223880086352960001855862469962218603843857126881765981509444957473312396838809554512465580047676933463323242825500509033233998484734072918192769144843617383066161182995780236635194491988502520600015435995288314563439049653144309807516059239980645976868106494689144484831983673981284471568633290513256971243104251909862219537826586641636480090512513526475731551489656796329744072318528646096160139472867855004909149326734116388449680110987206424417733125376479243603001387692640935482000967595694412403193310186990443721409002766132153588252502447759044029727509963904143913128745825507811812487811136024690185882922320262897443804766432148791303016042796609073181524815589934991023123223920174935420962038438187711310767378802508956900886431947308175372648640460633063755953849778008695064122214280872946761386844380414957460133688604311073447764304034793346404537949586848691872302100526719588937197112223267084960038986624340393983828784955799602721244626271701372167703498114535255444369298849594485244376502159200834611586666642141235393461676636844176796497970710302529254834979570422915322718946574199521668592648276196736025710402720077470490341643209927370695698681053640417030617607383875166082432174142970334722858488296999514438143825731744930585957455819750360283312125379604432843707503168332879191803415898969332114023747487758911350910804336828649536573800943823705276285657041504612786783799925034823886274665818732013259459185473705185877877158646702981348503168047633599010798847529315077332777724995631523965296147289953304506052998127586244268417936780033174841735685901616277167476650762893520695437522666328280857053783437869683846191973414372158535779317827329646260696800179425207985237714488221933018320530910864062303593069852240653014045831025924186933298554286791191464610529465144234269544551150072857117894522037278999729601022884940800059263073859093036936287920134557536416451471640254140164693573088619193090170817982034533129588994679722185258671841257058693221802595342934693709624125159082525760492110465265919723858112425993441979430296322506291086032370857030078949814133849534031503594283053844040984274443585638403538131413722368032030618104313467651457072089058495144874264944012680849081754689049666579756641546706531445174226925463169835351369973944002274780563380884747582172663718224229097829284199438442328232411861757638171809866420843444482878638674055567524314212565646230907001398505805532055755996483544828206737024178543470448674215397706164597258391339117114497528892928899583721915466547145605215816936397878273646778965808849353478284756432078940509388412995130839356061280372563468290713495786764975237291835746593166474545559290106410975370263703781431855942564496445982412082379523386431041803157521170954786886225393281940363274876142457016850799972767235793896020911571281171482986460408147893934586661104407903447617870308585440201777743835521458939357020320470220150478007451484595261101279961403922831709239828570598165440653419962425137466967596362143181738893130343409767226341235069540269392624295440825822456222366588648982719615534699867368268389187588422802773594790539400033127008742216144520691988079453945029221285630871590994078099826807956058286288780710646218840444999792575630879421255839693476620359596220813447859296220459729059813249947118246367037449220928071178130119943043521465509531482192399320668540670800246910945567526123705675184624900970187649057503786888715808914182720519560258226964109488648129594811029554200300658887892929916062638692391470873643668250592643008699161340323917274204328407129706331655809258940399524183565929324730651204085728213521332097234105811151002106086862900100421321582451800449321634630834295886484448621953918563476767446784286210354363560351944290965657039015690796247610398388002137227050748224231104309463631606352374953625427565437606330555324969445095393834447661793007246191272638718794109600667857925072227681388361082901027255088883167972221429055907709925849213674005843488277696696906611153549428859280792393541776537736658290551826540648378872708383597907661657221163309944203337512029104498276688025217442254451727143094101200919733771091425660741891955757721692151833536300305387328064569286044998607879970703418026331695284540846699534842436641293864031928618092954161106185733030978413593342102243983568123341310450921267709752331944286368722243875696126295005617970301321291832880284505195470915785541130462896712150293168632459682574035631721255564106820028367662214494796650332568164891744487430276356470120403416280582234728891287112265449777101244346421897072386404950379986632850754369383093721206471714061081395323080152177189659710422298067741266947482478459176903595165458796212445755571966429021411130551121831312850513882300544757059387410555783354453781353532067293749588455211868725114657543537595057895172498602859236337859627188987516415143409552245703619804894890239345741927898844454607121074141920524173873699195892892549093752017673155626239621376769896478555064472381886169291943394077855383011675879913051766330445018435634789232792079237131279688030959309224001342235521586628007783642256285506472659940144761444555103043801768562054517752699875063640096933410537373209147786925434985281802426207844795799943339889226319961523655622096457825216315061566547493331715519765897759087183292103325988030233139319825572628493939407872249983113461845417375067590624976630930792421202704337093473026903750661950555013940271187051579409481254562425619021091540028904993207103618946145597217371535558569630630281337907753667303040615417426366165032306280314978950985260224368483396067957484601051923775450861637397557151996298762697070131593749295068101960001343198494476202771133420255751976140256495084088620694679046103812368172628126861467627502081371030460311651619404630278838941597180866827911841736538457021406256179521561164212464684917665038714729177796834005815320016533734951099338818216056735326018938157967318209552548412732259611860041177881147368241608164997108571112814236720752493786788691667369929200806333772896648847895150589048679457939285712568141454706756119996139241739555155503689862516937732384646261320268374464351767955230429023773090223515903978805293760332347829989707620383338163789450143483484830598418935672168361577589604159718630317748344332660180079286978858669263569447936825915829109250700871711377064335099408544179052910567735963147707451712152950889028804160106121604211408624725675265843377621935274521995884539449700333903448909272340379905022028091422471233938777690314788894357850110236022313848068616721025718097124502994842782569265252886098620866995733199491341546638170575311022853487731040609404920619460432146713058099802672638492723646435131101673201819494789975128736805116516647417488977135838538828624814834178801544039748328126954754956462890528653691462488502416675384401840837620921736803339559505154383802457490301756460979728761109764217642647595145454517919052820464803761649086968783249742284689405413384285772656591791017023351490240672143771173050038772932396886488555359475760842560888828354332085392155943585527742786497458470488244942368936189472754246418522903176829674735150635073594234621316282799068432894129165360340063120693405647656849044320691458077468847731487025718002558058441685613461259708133722663313202229910651387806100828999796214680087091597335353637866176274575730570758435097588360454312411867283581666669714575140945749617222555951870784963453706058238397860190858223622993201418707659941829420998472237326761835827977897944655924457467843311750229959527838622398120383964851907067834479048898379347288790373983814030060592664981463082066453177403581672004672000397074184606036124378427066238821320080915436981770221932751859236735493999512160595030708065601339244646938882101472024634156424298925024037340403663456549608927716826671650431061585184265068372257082395448170163399580036108028532938295003668559228030247111758832153834352373381576370994228382220358486134638633815182871324277069797194637957489551918477127980615972616302036773369249428328000693027981630007424002301147989791595816547297344899281403075475893364844850779706254453588066562106107901102815673734636892351317235057047396258633251302146102179624797344584990649636285015115296855628737922088079799357609425741077141844437352489658364890647746873776167354341135795312005621335617203984854942681045121980328078551123236059634401145924932765041040059451259669634578119129943427037464177473508262662925889561969640229777974314088188447667060243891988202461795829157874987320734544160023965495657307553281227748274108988986755216660111850664215276085088987515566279782134874114558820388255107123379818036586812749794444403817499896334929092141605029421643935264409885177476752122366564125967000721255687556726841718706904987992384734056897106425456895471522797830635871705108592931958860739343784916077851575632162291460997658091110709104878284450687104450799219008472747613908050852194668061860928472155822393456842140699812257966644118562795602522431092613684043075045244236777440234137683060299868651443196682120489041100209501319235472363607179535799192294153950541447116685128162379268482695393653023375603160883421725195304772589410875446268476249630916267769264441327167189500709962293174377500288982409179876323961431209173562561278196987304931524454336606418517980101616705619195275993348480707935900393377478903096460434210594174944129420126507793387597942431225366162894269524030316185270914967324731844290019284775391727477739908533753386951954388875880701348611045657696829449187456742592881648343431109545436788980870334326779628250143806226918516448762546592689092632941204832780257985990887473908809173227008365957842959573717424281022173001707309138889980740213578381045127943181745184458454898591713411154789270556974204765545273875616019954889494421983023961126584183466210178241764777647427450477392109921909556082187260673743193342164516895054662688189572026622567137329464942212800277304027862714736531176008051638588826744622893545456811190887732421472372318544049399120701975879684442912764136865816870455398654882486654370367824201531084984811047375335147096245616421447063566484605562246043472315175297835386620835727871719786931742977582710079394864922280937042355358157576458841877333423001628481695775678010417332275465396786988378708871341444928247238153761598061195635390083153014940179097454994997369994233793886673229241746744337835981065936759491371481536790140970344314881481133579957011482348484160608355988827510762575156165940460517060651849057116308401185364344347678510534767849485535854579565930746058583893223806051766300342909244456000996184636933800208663201400217163710034838017381762080913183881653909594075579427160265820550601647191091162417965030272745306398040934322133992266099436262138228334356566409471852552229262647663185512867372239913449259831008159670360124163555329852660389298827992337851872603118112904852002245089992893881846749432151477924221461604855051748915090954515896590368586406303579737591282169304264438844343375693417950798874216972140768918054267001087322015996783072575102294241017202525028520700642561117113362431055210768883229165140124307790244773844140961147937793712825895682747581853236843165923927230285553216184946573237138026782816828370559973033549914433265149167173324654546142850731644434863831217247500511813407658116093310788602101043279392986007912111875010446823814646956853309634983690631705429062959809282541106617370726550926692832183484490538037646903157680079212366809429241747414718330186422112594678694011211929590709641711454300594906454508157354501460688150701383203471303504546198960036862193714627921818945259787291219334024753157724286879855294639800753937136960525364928906374167856528569807294699196391106361987405117510973075290208516654831892004460034502941435877472868325494543779302736325452521081335433119452960347535752982388490672696791224783904647522037058212970804564718297916486483096807771894123343434047352418282761888774229079214237878428926198444248014548967976430150286527013565044208696467042127063571162888835554754141627292522480540247920171999888919834813078107445988437978533488104877284203019640069825607187716723659116851147134238428149899448833898826742481577726256109661045263475584596019391414147975897444663915803006273640666346618694433348250945155565650877620217242457072580497286148495563639026408845783100713358620872036431818407974092454723014487778558085964118290386234643670532909943256268204104593816786664940982660301796396499862637370601344193265088489773749580416269405965887506499042143910445206655113524713254657262421631772626928424225651048588570076155103522163690321771956933485028327184709439430573937056608726596848576536597974275740205980746084612029700368379915834445504939882105073174055952420997917188792055797909424467479669232049009896373299427487194625834769882570348402718513412823162052855778617866859856464374366937004715247087094242117790050783586495309262922294078463636292836948710652320197470766252008915707497346448395014679117938353668680657972413831205109179233572117729137796534057030454586930365543439584441025978906058495111307635386520997061566227319888366968965971953009143829427664066936821033562900032961116556613025773279690883070773556887919519621668597906458021260202461336064630467630567555523241249276045696722685527899285698588441089834903389185178547362170225942207141545204517865871931852833618984153791883069312575078441226586219280906088333189373447958517718698726109887359165797894676076574089306741511409281087587803902661569887264195158267115214168546585743046373823905549406610918589551237638471649805568929030758981698166816173148725701938553270740411478158482995131300984637120098029069048346538295258378207014545370329562134483098782755463306834820872054916359302368458507988851958868102346082727540090886087497157131206643334028738871240980406853434842730680606449866039366346610773052944023436301348885821450888729493308955171889360820187045216819062000562376727890628199014096196670271658729847481813736549041078338659301781958390690920631252692365925389824954780731234772260319652803878987631301917013311057982003335288133462693632895525595147489730122971466112193466809221796827772205376582648168379428592203531904723256085933491008795412178803471091098598601244303067790879275366168256042129265270087404503308796115930920924646938201678100225671550099079702263062711320939876149506728525622042658642483879996275289770300608468936564233727732632513715466131534151962353574169150656952944147461828639042889926050119507139362031047585817388983434147564289698281147153334557040138384014056543082144996515707340498287350760180341642507185665197825394566402512995424810709959283385457387164361523187252299028387601481609447115715904983805709508340556275898813826002543429102244434080982881406937033201567952515878428080344392365661977889866918183942725006551487843793201937782779793885524935384526636677449973462653720925872030060434777602071460622241894570684898241530602224523988186945736583356849006900201750757906120043257469904232979517982907216336678464990848884688429895756727631960510483211243125110821213708971417667215965588196606893482499159211107454715671376683009410471159495003522257840122357749347210089131409717646949579931351615279790719329106662206782269016182646889727243866540210504548300841305329245987455406132877950420572482087367827586307573708708845643112571495557510358882462892934998913598060931032780386566893597392699929593552365035099477928033878265756703314486878343394931549494708456496570270694781435126700390166156254040558368761710945584695002341000996475794809265721454475836152658375968843702162387323902937899852913180832153626878093490522926166459315464203390045863480415971248237232703700313809924354048425372960868366571143587048962982510419148728434948013652022000135102770925420983935671309164752915217281335630511125261736075279434992463409334261921269062969286256094642478950107101474984263773058702486265535149168928513214413122502273112039204896668366710424968428817622680480286256008512137432175163665167062617484322792104528572126790489217596448114749734776838319009473203255061754083600699788921298416971235935596284451988482161936218068679088217031806225400899792543071597409204965234254613836673706832174494982992198963073833315577824285023301164298551646956839401027183433610595591442986381389853198368408533166620651029085754756839851278253709031567211218927646264264750967577390410364702034928219985679581016640739418596677244616650633751105372296414765716340445967384992389991992543031166478397721769068872990492728747106583694660962953565578216502415168106248035007491898447674616364683674129082557115653760683655787465936314638961418070912000775138377576983438245693368865137838530847811312253040327317022959515062911879348052646315700910278670610992839151378899126765038661529061243449963150877595026350440515052015986918564115474080319989702719422147792652409043405062346738382321158127126480278695155305937210619113280812180322873940386117729242398090871331914226324865618081949783364191721572242383427055179456409543280279031935854696678728024625783659974215974847063246352851999923803231867896942375089491067009104660676603438024449666394481565844226315099265122527317157142019746986102185332874224098619573842576485593486334059798685474705994099691356012070516422026045093230551736042334619214488710318822522165317388213672308800203059402991330105390758947568214583630635152119097974027204382362094761701588300897537145508503509587742178746292389455941553021404365724524933202974990052820256286708658806083478457959766925901803964519521524665817263379656398210944547709089836425143713721738551425215779641681198347871990390407539567466050196398289033858037570138455867355304173587255601145000484257203283444214865329703077349872303306998632891243994506076586760270242152235500022152739140136081868738234807373339286265597306833355240487319679417058147629433577614704966973401341275506005053708049594434422043672620924429360664254660808391219641013268081542675399593796446201712685731766967929384372699117101811299752117286289846965830102430749624085489420639171444822001554102019914062658081397714510862292688072171921906101244372418940395583339066171321698564778712784798413804371413753384418012786849704176316628870962672909177336774435499723007754718193658514006293101818481637358273797524345749819817382651625689318832616708751074315098508855357589965560499955210890906271566813727871655993228021824251180839809311847037168441585848029853946391264004133145897939372858986907570995279788859768249660041891902346979897399831520888849435022296396330884276488984313064844700399984934049305789638985737962039711917488894945136323784096486150465968775688462268611447591798418692766708109441145234637719308120080330110067655994769524956957109387803579222476387303537636042412366134083506851540251438221417054660485092080312576543722401632728877311952859655091690474628763993176591924962635979008962376420519567437010754615820335149116003300418838337864541135872169329855289204343320031350900164266478570344742744144682344420125472861259922910466148578750624256061277241195758155544511853560027749765546677373144112977022781731383366551423729297042627720646046378836402013512043131142501487011581017077837225637631516417945197852460372049723626933283827882015274771780842738911229095215823091677421456222718833097758820724564139826507786107243007839785449564459258019356873950823913246179802757021334197440970051581833125139194019022274545210947286298084233769532674176847855280031075469116063831936577512740748692954477973210738474967592198064606091822786977432444656800514202593081057998334345225533081185804484323653669732176300120236640673367198172079108160339936153154293126315729991015705767408882026506064535240451824475066020095347906021253357198386658446303325691377840600058618272612502042352963341027800403851393489510459396683025253414403928109779550595309277239774196182948783995634546928969285926134736682912753457212820801707671674026365057624104847550952382979978776864378364066220263737738708037969181850760654553246149990100465469726928103666717475423574642096814125645023098147537948554166344128770812393154429361334575336587713867626938396404466259988345551470689645520034522432712292896586841027205464555891835185491658204918057268652468554619089240377352557914684321697644256736498158318155791042139075119738228066043905824186290009845687246229081059119051354499554577015552037648028949598443762741137066731791832284461217231198978591765612080776890001099476695549796804850088179202572036036100419018089313672544541242238658330198806672914886928644619801864232485032445463475743561132803784240780801939170558663863454213324056832371440403356430973497461624983410516202255955672625854890151312060415951614219373035239031135824313421572939210563365816735683030997752552821387389626461584893672773965985023681012461880683632629694914896075719945103489270838590305487167230358089137621134418707344293456482947006530062399113185844002312376314155749900950446511109098077161213193713526506283903929047143270727531688296019211062647353439461255809325426122693705489373746425473198768412781664830032493769722285308156500999402060977339678900009152732904302802562795009762141943139289586658593199413497477582096320692701630383265355525958781051392347445471103064278267333084689664776710131693540710495233077088808124333818964665253806236192896960253603403622986320530140436495698277857103865339520459890783086494923743929916254723277878605291040637252163663224280813714352354943951038361536311226139737128881732215322498596966511755584495917746684198214627541728212560433700428409979366467910939255113041833074588231956166119992594987174146729553348931970150276598814583295494182202614661344071075868328455238493549817283530557916218264820647127693282104422046007310544447305196375791574556173559406952769861018877390970909348277160613575803292651914150902923210480169472828444288246682476597415941319479781010170737409571873537838536578731094508996253888663100599301023852273834832573448590573165896013719719842399694268310049594632631622509378521005424602786339279606724864997829046676503581605672106321833521745186504666794977546906259577458837137258544785398659340306877791677962927420322383754329161862274865776157554538534672870169445521215190191149525774546067960817424550935533574288609836507876676048577552661562864279498132836146212249289907100562318236897039771152044470449761372674084780387261691555838090470963004657546825794161655312792711399410423457090380416564382027636622490337898591141383645388929305604120361162690281743232978330818931037744011645491144882377775588552643483567995552802736558698482587835853138530500804362700798341089198062012513573270056074608145244923310055529481803321125670664151013961943728955617928137095146381880240484472068898518904690654354991434547793360175872947073623727252102082024779382692536519890508148475177992852956019648020534089619012370033883259848454244692990187359180203192684582385794489000602654871082771370725311466040330429828817417339024590431305677772547686035183077220477731366638268013283822979185263920731475516631910424876437210741418273112805733348466285610420891469940356806531745783849183982213343633846593366650936375756638721462737197083650520504118223861026483341027618924503988430177759292987469412938988241412104744697200563961415685027954629274932716448624481309074453537493410856876149647350550245828845462596635169485188447551216745607721259299976383983823471315262928752903103593807736056018365425384130788946829362642099225169611671242286669847761689823140307219766314544475870290235351502601576697117474264824491574366625357180579007279967520010587050247348235783719547746581550668322326807273236842574395000546222222721806196661099075801798383242151356515803128493638999246725968234846691150743296496966770432696134900830458812543660575640699324386692860262975098078429088332514762319489580619721270082887002117021289462932246029415258222694402667013836620997230461333784898127743464939393648197202221404995438098803032464779866605278201195475650623728335413175721526815723833315844794473687289817992211369934224654928802269916115227500720422000817782380865840822938483363956517979651665306148517763490818235719677735409405099889138973737295609297139416664238793288752938819075476588480249914038008681874103503524184945892491612346362579417927749277967266701144820591516122679985110768173141069600743859548363985028083317982929446837523096743929793855800301639729918210759092557251627359636767215013743483640761530021729617598117815683068178507038393719954368629204478409823578770696293756172908066779901815294082779498751008777540522229088190096453501649036957041949825952702530258913793405613435673748173720299738272626779243133474276677947662653301857064051749559204328116739447141377492546349161848789935909206967923216491685733882550234747206486750251125867924257105019716699972735017025359116915998307420221306262602704644676184514364050896201669537869321542055902825437554590885568279221439067709741854191758115725522917469336774637554217112887240541319577071456315676295009448059856310428064587042499595407736452921177254584679274499905433154663825964234496096825435946183598020042707184697713737296677518403795997638630023314983415848341038764283937593245322067624996614388057969595037707461356990104829296304349272550499457618491150249357742426218206923020823763686415473284773654001107747690264002012851792079798506060116300349215697476366370794700911797888222045173565292515377261414291981990075639140393389826014756816841056663718644148064068940268482375630857646993438325414392673552715042631953682481934691605231971946265896769939354632609201105024552810521008968740579283783490406117689036819486166584192526407292974524279929874450982412473312049825948503517060823376138808182085525435969365537235799338867954751902847422986142693828617353223827767842904718128649034372641876890776723498437755264243777283685245136104232375941393095447007511727687302499680106530176311895910648284732464299247477283857309296545587697835411233985139103192599682222536860334251689519644276602014079090404225755079671796318564838884347493194595325506033867254731540651249667621401978655930881359248114690557483801985210171249881271906150394402744739282652164410819600822612292722366517118285957464486469198906570921342419194552248979124038133240558713792955132456774753258967451711837400351412182544791957925010736408036278860899526941998220940313189337035884564889629625536058404752069100920145777457989004954716115666212577748059181455233260647477380952026913754475718549741030627882201190177833560907799261395856836038619580632370935740757634668926497695203136347592540638989207873503861111270439071345902140627678909489486362777938220982431311168140604896329063340891411060906876214106037624194932687558401235876212935750502623038291621899931185865013616660668900469515137385268659906540906331343687841628395960360028540322990791371923229588613625997429212879940141743731695799978565396403513510853455713531950518698308691286847992375647651919712492783393327617887062347468590761997216171950493359940996960344244657644298706831230289495680807401622895392814618930269699854144836121121571881927250055043625440373480523567036353332674761755795763058042299687459453703449922795181172338922884901859783635747909206069134227003935299003185047979643319916598864846439455464071968715703516295035429513343399636429838936340153025133474441706360957287977523465310962127589831859954419691300986978539690282009120585924320040519806613210300555276621929192541488336940112436457163239209169620064990799429467538045251302933899047553704627319476030502819882834479208915036078482197430699616891963355756062504267895935436197578080109998092149148270239021116738604834348417494138336592971158399287189331883514804948738185739794479569432210505742976687168987196131991172787520414245710420616274333384313223760127305989876551244514177654891766482403405312033887412262940058172781486096604121821919021527349050839793392016574541872833268441396389465682396008919581706877048156297078818651175775269948999211143443231344410437709945433513837716226962974855887942874029749299256638221918929772803989383277263304172343303985012908501070312702843500055229814405330929484036803538310573503210026058520739317655000517602347874294727910782374380301462383679106057684299495151868274326447338293074684241611077104555528904733146902984272186642649558835284472424882052503703031217619440601296182858716430908643408136129034353732890646268970226179348962847170482861668133940304137223046134893671166663007293870768928923377405770399412301062417334149440549980559668012898888296245443093004257193926220368464242934234563921011828513356518280363093569942014549183210955007857006155429605295336187852261695197432820589302295653458909594047112767951372922447108817024249743309903112691368860788272458911785526120316205381290012759378116319864502931904775555592183116583402271000053019122555070177966034828279490407551199789155686783866869661450561150506946398184107881003800598324287887393682084355314879581565303586664230311659835937351427695732915586861536111862598441117133427037262423633093198297801905014177397100506074519616116946534530408471900446769633454572052341272610598846510109134536579997931901123593714859429107382363081376183808336098997253445297893114119048041266583732334896577665470226260398687255745641844073710158477792799654274610250989943398221058096670590700204818250175617467611704755270282371901830700714426601321117135577528492975822881992137243466535813384583107443363479454729776136714774200917990251123071362411311672149129158779795838516267253296193197127215262259348526022468412970809378831122750429724992939765311932876985028751194079828422443924903763954699008360600866639758211664077061743273961764330610380344860737441403889467921409397833424562981184589759411053560366061778565418549353795695368794563988813837804046999638343247278338802731024435569062409098221832526002181795085766081862251804663846659266463645285946615907352578083211571684774476293685582227938682349648428457749207619385051684119868051731437915612104193330835879914804143505442062910597052169890661962002176184727299117751480674724431518792827847335738542437839162568334878109980007232131495698001230785406475199614458448905539801740316773126173397951480721146850781963947255869341285664606690988686904216464484211880556167638013654783834300563700419848190375327396803817450820117814534255933881332262043150766448223752984505338540170409271569936651100499737358527666440445668256284745559285636507309593192663968986762920816777887118813460967338998675641225845096787392133180311046718970635131928034410489343587775451569217329351169062672103023756403625724465364176882820500666814742414459680462454893939372300153054546356495393918078199601420006576590335110615445004431657708747539074439345813378422410711209707020989441854460240457961101612515058293260874121390511750437186890335853304232523480564230882999199638545843493820470502914360078572505131884260714699867923634860652081348135616435838607992295579851683504946315517942858126283675533337478236838027035265792811422299008155272233010507786288486162575530690838528791170596850252960925211295610592742036844692341010612702140570718244080515645439645470482915454546470857051911484679339477106225020837755367395356968124541036847675626106245169055417820544021267646231830134825557267038197125704189419022905755567387367791972226764964533763665603044575789755858538540270361035551899909770412136051506197854614261431196018009068185871797856037110890779117266980131163522219640108355263739453559584700238971052075876349637286132154265854847558932123021359891041910744129946252611890775148765639546618414685477929274447482423254246321829510442528762558800016475513125628026526488120136856497253003757188019486888040275535143095504386228612822516030300178930819739866297482395439939021150512537873899345268761342653486016445937604450097859556015174535485109802989421793659285422823212159763248113698523923140952134384384976341932402960482805306641191512454841088666040773659733878410249739808062339618170259817243737962974279620181464283232352827234745222587254122836423484322449980611391992144971069520907995570130315729695632220937059730580954481779002537180541422876140586052152101780307857234488807287571283893042353996814874794492594020543827779856444600795476825825070876781082022136204719892147556642481757886029179624843143285210924827806745052491821916018715040275637650698100573741533431474897736206416391575879625588716571607265540681879216455251059157439467822504267142717001254966544872821450764881411448769837585993921113285563015761662314437102943544967741920490205866483641013929487207061380821282260574189079374887710277276609969033533144940330796235033480477830386772889920954505095259025842540875694103766751932051107519737040729422567523830260683273400718099043355322926201724747748370930208236386999855511092960170660353902552187276854289756920690922178923610371588287521159935745423552885844664551356165170157202721217309106750798776669104130184953697176887214487360769110906412241833110953124987991210075533282350861062974008223446263976736567424593196795353284142105589566689495573312659473698830723962391661879193525049494935659778822839646742629570814649917828890820693731835481653893028027117986313766140415222704346778464388546849312442622452014646792744358765227503615749468553262506240947512578213159875409415379177225936038610014482691309438038883937438607370033273316628838008659974503838220855218215689506020438562440616180349330428375883274649440420363274818239795577429644782584698183557632814486531797653045881086667743074280093263796829048179539713813530008995099929984681893470436145826559609614621677543798077484423379623180789727516776603560129612534358944288867623857579710286201491798188115943118392607331047887848055281385018818033481524031211435241486101977961674285906057556833321022840705609665149605592454655884851347495880016537424952485498791572324103567024368880707506807302209938638528939090242361671788040211000264830196957700550678841783908449099948077521271517311574120634048331010796701803880276872889630787082807925002377199885939893173621593204559084305695570001526996606749895503780654169316120110385396758705650077172883251514749979165862464545485177137968869377151625726979381185745419032052745199405393142625942528285685243036475416001708475447979029815817850365597587458611402340715380881685405038971976094244153606886847809178983041875603936131181978885475661461768158409151402734001586771469607104886481732598503660405487147796829568683039103990318129034854932900133399381955494609549190415750256253862325145145628300793066019175480166784281098627113848455335090022040224291268494132162972638449016784305471484859995857661692978794594700614050436971190652708657562792491066468035478572194086962741814401841872830530088039974399738402631178250410524753756225506368079594147470993537804215753817333172032832511614746873370027248367365995026997129962990322150307735300249759875407449141869954923424980411862422645079303809403979084390085822898399094157753978842666618053437617409320270231839518136405396271042693953820602996755974814818979394390465650558398671111251177999804725762799887521311931287198053525072952278309838024038358796134258126778267134704531460150034643940905376678259956684580546982338695437826665361458975980961216887964365838552252402951439723972724163617019107113405671482479713076003671271995563496684663881521006893455909868226404734871463338859953748160039003426390335453238919405578246075728408899270871657075916953974366182450635805078095891903316424359510805847024284099907791502670484482893528265850838941209086191573750246850583043162002086749095354929626505859138848383758477453985087844384565355712765108052876054978353523102162398253897915733312717239594355832402135750596648266131753703750948681408527737237222186346673177264352514824965038883955593404312931180497563835266622975884933281608038494413559577060182848928569255168365381483386636576822372057525700833100902510597994601356889548037074679137409435648740949209602602978569015260500786558410202924227589851722377175834028198263565355817903566231126967382854555909953812895872665354757711268357698941681012962258041089316265231358533084454386859283261442531297752579896391043314976563116144518595633129192031329137012393776640362835782180770903425934869603850452532726681872020780043567100301801873757969683416833359877302902232218099076501309488089563911788025223853090792881389332747186345754549487159022088457582658899740955854107300998659157687066728577866095250927592508754230006066749422439473141057041892314909008807781044116768460504219787679359759080588410923866542958806991055601640377652222144116383913922283385229150690327813539361730042878173701736243212551165850093681888294952241341466147738790014672779610809327023417466968208307106956830639608970575938595652043767200107347170100294858898811150593926829349872072576463028346749265930828240656574986821319006054178167789158666775823249589226841449810193303622527374053162901051744097619465256277103668079201104766152576139991701003673235861152206700721087103209881015790902835129547176564974522054618259082200200797702146585296638224708317223736356227643657731986262942164694360152813840232840061549277776948253031088900010739438658476498135125048176914635007378107535764625575294268550743921411482279549192461168625382641689836346973999452314138485761837681214552575767928713522500635600222660722363787482623277241428995329967405436585977549579733343660759403987363128051221842147448925375652775850063941252654541274779354192529669099101957334661604677659983105676098616426100340923818513391919763989551648390458314352050534713363295291937442650530107793000983843634847300779578545298340465940073671878825299778685572155433714523777143789272040618370382318607377328928387959192077296744709381075340928297973751698052005378665863572242317757869270084032953593124294622839240804903726650567648031483764356497441638645129106186227971241118023728051497250184658645869701857495930993708838574965550582020776121334732365205457727967069291789357415834203825606143943777288829655274496362189818779426917308333029647344996107431685733087104734229451279376761235203765494819894733978237025129043467266650493290633278977826319895604766209042207569105952549900791212251685081375090210028946111719809506313828104487192233968025291359989628228674426842265345673302806065252397140066894827879744793360812222590817127754375668663739469870237311746605579147282571222848797360602955788019650507360324555526123909087140105004058179787923021246674348176458020942824312280759068123318774828448987211729109322736540006992379508705391356425308640841545014926623840095456568126245021441638235239468241034950685836537160085172266315471858933022233023529672537968685688876150143672773600621473600387873889311613530492945231951477648796753824193896825688625784228414285735682637100160565954738503639567580737901331613432538615347338581615200554807659530237286236805858152113723662276710209280981733299543574361782997216735041798605194342031010429860383392282298143937179250506571086026301099899596770816381169330696651132299018642469112823506916874152251688880281546127996881375970758728945032984678189454540341943959593418733628676328906189231405915841743218335933608372042785877010407210766815668091844429914322578443059675715163761471350629600456850539185567359195606586799522761839537024721879941326675989846169171994610546124532058489246598911235536743742148218047919755639472706231701227059643126300448349452368812782730712380594817146270832340936054150021303432318969443451982039647111733113810043624131749625664954055137039820778048698561213608785121792600514338329946281061406696024979776871071810413646018113545900109121665462186290403576594507854487983053577173521275613979885782355673171842279782577750516343458335906792162814469372364488054988129521686170726960873908507079932888205382755034383563925606190539535587753665313708526565648442209790676712393719584934381696080034651174867707452001501601056999841036169803056216138124055137196949124522384843094514157048914492718526391477464208739047210516356100680280691131427004218935590742988116581606808107153360356643833744558391499331794620505706937110256694368365192439668528883445075762954938013411542299833845156076150792061517755481095400231022184117290083591391081119428481192227272313112528749389026858283517504513230791379871770317325308959322609438216573257819709951169227352501590868570255785976796550173176114074422250913309485731935401342321928749835736371395191191034219980309321974679428958155552811866099657584082325830604604878905317440027540113375592417339793229967848641880520430639339821292135280159434060516840116099605691326300349697160166754999909202260223626953630571347860671699883496666586561178346342059460755343901663764848012757263316997895907873542517829265099616351553563160872741480510810531546854705973424947060655717573658455764399865237244622381450876521070598079398698024773013180738186975254984618917350999974476375827767373997879794705035052053469124872064057887205524459607165301607765329100701681472721761496639776300446278766893024784065493490494565631028198136859354098464084990305405781738176065612782908534936846822013145815019299540548339418404691639432607636450900452007472756594158614940014025708000583213319545392128405462187142106259698296684103927159283663874026179696644720852380904800392221820082944447352667066399496930252422437070583856944090538484600735570998936775559653484697285104423831253518676172338660401703674398634586175472083605004191525842756218444294364579288540395239593893699979915670621055059233486291417675599114721204297714371990624673374262595346376263584562608626150694017650935812766104732447807562391574510839386110499843202451460415997411308376713106215215765372542170693477924850768929562982314181895187758562482845857583596437378965711473117924620716449345059758234560803957042062778570128551618137554988947746208591077577349180786403894544746819464596806720684749790400308038863158833046099075444770375698953193098332583600539032261640957366169929726130864772669230164868105986347141282011493292949325238144402431405578684483213745428296121742368929877596891990242765852653559377065598353457590540702826144260159271139510522020791775773361506586452462457584175098881482226644704964320558878936283517249679105439769293814332170956350690324982384243980122968502499210944380203181413077158658451004821522324820850464193126821173064824761216433009626100280783342574672402480445633747764038072730062254596510581687923630573987616158924139286037169170311464423515996177016185221250078608745082366135277681854565913916380765072727228520494166258913457773638380830006424379162005563569789616175898254557477810386514806300492489071624834952670549175415522396167061405142915445810023294588713322026699075980683138269442490401273355367486624564360048561937375244122826464235893741919527434039214561655270429105954727654467547136568643927617850383709921805393646580180869767156625633818853900464964243599226811405771534549830214076531713772367169015413480768808583061510445879654092462996159362726256878218785866671085322797351017930315222300421533041250169120107347272358407745326802231081817397646887970857432480814812364646887255012345137522292437958704129357781711800033951528554080794635809551852840802674346338204090280620334194101782305412024910973089656063732503140460687502402658976170140182828501016166468645471696929012573305282548237033812914383194429231875951557299541724157708744001289337831581487846074099638087083332721587399703742839359086454795041931958690039762107913100817813851399913749974080608086615193416187330884039858616308104967297409878301585273271410344649666465191432630002105483109170373834364395384682180020619998046617177295208161967885051427755202662217746096151632429892484809785368277053030790966379323146895543977653273010447430301343134212847708576332244396356454163731074192783791833031157144577761178886798946789414727464840873582685432026495246043765601512150730050791193636705161462478677550224229596505988524140008300580385980674072647114380683237268874433982645540707540256686629548263789778703346374129645420253772977600583887620686692888631807684642015577433705634449893869073699627586634015012533336152788955908906278812521089792491812315361196375967198608739321130258729366968404081962675732001021319228077291355886113370971556198415872242159913604155675077366007360824969915495476146621288914353877537364977059078460828032247669124175181485728726248879631277584538333262307563984986906356829819517066739031600056716905085259811511213138336011349229666519310635487351200408403449813632776847606308265015127245741092081389304957821700266479809929265300907581615492847314812894772468073578275728024308532168511362544780905928058812394885916598932274867948546883584741517195760573328514524326023811989108146052971966060717452491054956319638774353358148010431124353602903305186373858862176473221902782610816444234966632625821880218987411778189555132048278558173851067516086009729086331490754241113245826885689817483627851446393811563680808727615667524982648324907746693402821294608893065131596063297248712316434136738067452589267545345712861329199145751885358829952107138153125704216147494642409166981338667129863038249082101921186176360526623164168033841996065784120620972036717333126030581348105208999117987124543677713726424964683495985170366410951074360514491820258463034420048960435535495732605567834529613431818124292041166139990452850600006415490580799950046296170251604616747934411287133556458326859048493944625567795692587821106781797949023897202108034844573233291718219282432527119136433074920746012277928699461010956394977580679998283872524975907055024313092494715972382623536434817658979740254077702058855999176455183245504343889539032829547632924608251641933282537488540224622362745425775498911764156095268913689560633123693253679755687807524242059933679623131562325709355775435762437015254762515043451658400960651437958772771180186374178182891905231314155372954890616777965141437869482497816860598947615273226152796581235436854168597882390615948262503592822211949226997257230004156761817252726062936581485061791758640826682863655596312245917750481388804035193571334021421754586640723415290068170267917991381900235645777310371074430406143267960648150856294374174493860591341188857964806776794013803221449673466297133317819034537335005803533225777668648368340312407086787580801248128499771724698030981886138852976366466066730726669751136057245874522104250160822502012401105526160503839565369337829978880956541001394901447800918882189214839944056718487900633072825764109407841946035418131372898958185814464628264232868545727457084920574256949060993478076424969618864947360699642057669536551059011035073439341407261731033678913490146336729749168335941980215028779491257304803266834417688247041565674444374693679292741383026149115438395815891862534608752432934017667561955676151311460172515065426065458765159215010366323900394124010633878175620909710101663537756727889897816776853084961581052257094217921937813442726741012602424114569545895878844122419748403238125013994578400913914447526274684511905759851282171477236095094262882030281996154963930928040700782947728436865117211290099605803424167689128190375223344926323921724137917482080399525861806209308137368058343888576819390314943199401948649432549577362591111533083025139484933830144223987461891568836358187614516944052512034934449477825631621250364062274505499384488545394037105841879595689083869874592892711768373970121362842569034908217354502133091806268522879414337741632079743497324324026511539790113330607094243726946771705785451882679382957546964932356140460560342475412160197203596117067981840678248140460302460014853797899783373071752513225970912881110103902179043286786403408091039220122652589717723697082769584752492250868607810842740649710861540323130526330509252927361057294515583692036647903564603069179676793898589452034718308465409550066239667221001008206638011785998009992878951705311624220902032863339495165813667103873732192939085283369430439938954247598061788921888506722205504318284203713488937375796803158531126584954747420032744009041384729500873896380308801898006331563417409787969606720885015584973988732698975106253342387235078984169048777371416537962457764280942903283839395753744365733478742250890795969130124384904758908225612920036073240925028705942076073423530158157435121149056873505006352155787888836663179989246956315305647073599580151935327528096280472071781321580613447550294611577718623435637513132562154500625404024537634625886234960637701864896345480903726755859327516052878983027568178470905424035206196589936985858419502066957127573004199890822943177608777775329536430230680049018058102879596453790427337211872140416515462280246146027663897747477863479188550566064650526818010213893619780176139327729395147078253250498057111503307503907709879747742702886021347946212586241722139662644962238171640926024047189489183230370733890315902309701892935756899352899065235532688969676878541612120380030608330240011143630345912462084870093544382330665327070722918212003326230430584519747354973462851666127609740995495180275210390113552763298513818143030001702039863405095591620940376645474940638131327138826262213275143094570845551302253470683907646848259386758134672878943619940740643624765975498227162558688068185530199588229330605796554468272232607824040416272302381010670891603575915544241198774602619138620181705707125466136747676608852045739970285506183412443334618024562463735288025055060659112385045789259566927723473481193848302423343604417217489412818417075739674805939640594639006130116566241364440171260509563842483033662022853206653351622650714347473943395189347423925846180629260939097760376827063715431563300887373907122612282456044548757234866753264422254570004084985526738840537641223040709683019750042881934476225085663561432800652154521893638978508417825273293545385401209608016063743416161172558707492893186050216386957051111149460847934788293877522973846113929054985663161030581605662663396349137398594117878768742279116757457456096480171201481823636414056012188267262877937851844630610829676419520380548905523360994897662905102167206821263197963511570022575443017776397319740712275680297582913826782338821265858450373301008328427473463257207565914479027313598325042926841528723385761939013302040836243778206521435113733452282236279795386041537632078487968227440738372705596612897277815627828973368614416273075993644277930098502863505293522026357543496360448207824858492123900207727067037450019936142122583129934430083283727162383620782936150789229678928447264910173149984779267635628332036319583859901179936982507194794228334097803669002055202869660958321479718777521321105173836109287044441263062232605096844923186174746794744747168866531883006109596855319026514608516865460163162457569905702212214448414860475883587251475150984770280257793868023609449969312993620598152469509640075777969274309991202983375488459715217673692378806949601015259842612315680936872313930711094512545263908488903844234588514912582022809728262492378067532613924209587799032378700153598560816686591406692063941151932703040712747332323621767510455033943487908007658235438098801243120454817846243832071348095929943450370874560402129185423926097931257978116342789568054493495985118054638793729405057912606807921863190951503172783979358524828854216966276524092575377464835576050729633946344163642229420672920120806811493829562942848242763815292037882143824081977389887512500602401428824975683637445800149768104869589598989821239096423697270419044241078065164615968837772651725852939983870320215877947588701100155101590221122822541973646134791245384515455792423767416930274975885014658528920393120346638431511989562503354431408895497687373879048196596840683390843723818898187734064674603306017941756279797757212358442654066217397929518235796347494851294653079672726276007545718767023831725324280945572348081149100481293828532730705531047860842796270298521048630515716610344214313759685608547155024684274119954406495885665414396942818742409484529622516524276146577930589234463458950012257205735670021608661325208017769088554158633027377238200033295065772207195340087130692158260211501836253063283457776977684322735626021114031477181123752124308529211047626529011583617197118644844461426857788179838149104336127259955294365121533354460548325499881695605141024037932776409464056975871955961326753092981475193420574962322480263744594605654907536516845804191487757383250906306305926831202519458881545818785854877352066248744931811899004821165385833328397655763836581988174864196354102415361004009593865555345067458567829823151276980004702344265146072722373327359926864776848102285378019767295939450660229377900337790777085662431484892603732918689814547560031390552072913904140079800738503449717050770023700616788617154732061706101617080292932745629740869648882233576650637396287022737790234871587678522139429426329790647872322957548824245229650721800269467596273791056534556364404060357187578957528661822373552894034795189273840743139236905963082399277106947550330289771395716773221359648940734514328974265648197855822467426532244007126544965123851143818905723641719760895986724062117896292330366875729557915961846874559278249000915185370775163725454202763841586051573334698978693340668129006680051405444934703552093689160303531715507030026831013162936789309788647071493573773197490843878070101682365461672110102657861061658290467864337570770723028300459195461017946689796021297420187886304324194050773604705977776606424128323503118082126575882638348405262681589311980976487126730590001436060162168171168988342747223134928635859812153203031995374417804374585357504521625633599551484303506443894314287366318735923025153381612769916848752776410899960775264116808916742913491465659173632264114367396585584854557030754655612450217340169579903130765656030298788926987982039755396417191903725180430261748795872146813060210149978134534108077784250894798751721953504297961691458496217882085935738427908326626809008567613831697847075642802776674935158344633484501531139342372888463225107756592757040291450521900765414006567202767000729699828044698187735021772266706167435738314479064833508294950951450752135580336453360240622966423383272272609397223028500726931367181003745130186455774484672692153893020485415773352854676805013195002028655275050306994746892337089355601338196492267821409546479885877863260561862113917807901493348742354284423718804431349879457155180537433320614969508126085807222987963138857667323238519592505763606921972766502281821030850010152114515249054395247008207155280175845936158609968860272110086243345423404779724969302859163368253354721687354860312445095962733067304846685032568543970775128274155307937097488845398536120975149769242659358085256209288404697775619474316163551116076445437869583368044376537744090302041056138021874781603904587719723043482833154995971422987124880337287790087186029316322632770226779824015814517220831307025294703552669022012884204262331037129289459290780988022622127749531463320318393988233689288247902960896253137351512666259769667050278592186847171027428412412370144055332969038456146572932573525598880537753101533863607887635346832886484619181878177340615313927102746058980600120680199624481503992315834203534234149482342015451229211559995722716885728884581176840268279299825370116077316459149289167742342168947844225117871563673167649840237595724528460163520685020869671595631293964184920459249141472184101704370210509112900754287373926011828519532254269740332780735627104972772518650173382031767594536281336756489421301955002079237087092268505295032552146216709385285443359534463026343330665545411120342828532795285772367568380346732865386540158234662580866574562616569263188653618277630996609633793756297994986084650373304522705994818548673394796128446740735624127997191973555630817210837545615485696440669607075451707262340256430682394940609769050675201890522627907764488391998784940431377198295653338659992980867413015349513148783748998233619763966503804864164247401396841003369473013997187023736461241904593746985708986760025550454249158002278454057290919449102132071967321481964482305310332340745988899785570453476809238936984530673849183045952524222926170576031241676793006256761058982527637896139633517532563849623665055997006002538011890554390946634173960349099761950471819996398649444088229722167784473692109603761437457985751131813686082398412214808117363399383955504685387049784017980640225901936743689114641583526006683305656928794936332646379439931908206854380045473549148724797730275552690352048028894228616553388649083932911844275503886041224495605929700282669394775005844351147924403723555919749920154432257752380873317069442819015053436725312911099993215147420167723451156811139801847518164050202295295498372301968479815101384354461088025065315036272543757073779141339272218245414643900759838988353013222053653323258098190388902707098010569957004225600161272384733740469832936591084753408890777414407895565310518448855035199033501850878196599619804585240003990398821880847306029969563340717596423468919676225078580418553493071739904855761880617079279095175385809056407915997415425092390111148361644329698464028797267750164139911395591264028679822997053536997357982573191083636847805445558858546988998945225592667240315816832123374807119202741641704215812402652904162703925622092214288087903902598383918970151336990596420227926924169933767001677926379093494816649825925160989507893351163518575156890996244650752944853381062471723716542429252753624155730683582345472274876923701874190232104130285177367854098860435500324357485832973667704971185340609521720314078864951207615243118780729885696590682585133316298347925638342712966687421680418545503538578600686695908112228946977570842814072753967577509876753925266992841069216780607658122891988930694952778060991934907680587259927916220538750959265853363697203409352034703268882807590290225734136191181467491956414659268723645687505111224274352998027816752928498069310429846555473636687538504470023047457014062920221561144159598206002025396830410553723421672539156948056443596201451872935988955023161923008863001785382104779310433774156948999333998204181550300345939533207808770503426099785893946578339696619369339493747229835945640853164157722409103849724828468699022953036310216276136100202019451829473371568805087624319773720291036349669413273992842433058235494604766995336015792468774029459285863224492830223955824437693986936908652571589844450167819003479145749391661031024933231643068293694636243215074123821563782424366743250166291977102566965981886369617143496592877316074605002693720902966923272623660986459968660026756387860221120782443330932438744218940458706457395721324263726538397407695633506645680291843000297580651040179526876292588241571594147715133871225454228562174491920008871175610885639472244445186742403069216856314140310188990709765494444889038924763496093921350725554534274133589714974923079431637407969976878962442380694233660595451786470503513964794974267522481887990786302754851033988474414462783166748597675126048893684395819703965867618550038439192942181439200705446949188591796465265107919065324661207934094678285226096934672815169015464142621726162688078617589297071205856929314432878093493735926333615901431628376344259490831686327723861175598863377971748104075959674973344691736429196346110082398849066314970247797331334826248927336462126834109181875844250614716310665860069382385240199094799643371010726726734460322833544673903346628818549712603404003677748580404938891761472341172622960226185849955888097306049815600140589592182021543133615261441604608215018436037738081169931910271580616331738828754733948298269079650297167124358335647777741193042218955350449269425343410953324559594870707568141690781838552603751564727559207398778834015765219718397727567564900393855682092112213475097416368699569698678425046488723392347254223281487251577010421511491385500044055327178613305433780916575473795594646987202813939771578774705234176156839208423203400498551592193168133752070294176234177380036862610365658343510074462112753352496617245032429926186427271988363532465754884106673952234984562582086230068464570402069902030066246072755219553035496219360713290876396953978025400835565155190592057200397593364918999646286195624295181837670009151003574968661168526876383464406263963394750709498236725132673184383815016361296916883063570351234373104132052315501569155179157419995326936783668238505392770427441182646085240406328601213945969340901898292093977139548729619382698683494213177110164998796552048678126686221903372988971520924483319551958265215413664322169062110496604098342938513983264249092395922316734141644107005045862375124860494170640634582391164248105871939289571312750103308381023807247427605536715042124183734122699812273374935618245293771818361352232761331015168956077342114517990858385193186277623612632774341317331165571143967319936974010795027041430800824039708146064728776729726848738610196435119423291369220639883915355924176200197751681356749322255521915078965374289306981345066795255923964722106094048815998817081329876387815375382375328477900792185656341663518327512986933645318420021503585376370558418564553084094735909413529776081887784094363430324060583987568491534626935714943166867518012299242754188321757044543950877568282541367969755317343834734046476143826496980188908880012096448803753498872494022988334573103936228428363614886946160807654807824027478084716131061506360174153468471462047972358807993441966332708936799757823515525954681728163698708298958232134281940070745488945196676724873306822363072669948716441536106101482398659702560407574148066150505678575783873732499339136871841892332708757551196601577652556608856196210228342871413452669869039933529877961398778398009393267154646262329165644823279965700752891311990811407589618615990151208586690630585334746661361402822723131585640398239577829954501628181873553853204686734608442658604708668582389435458646733562864816704303734728832824248407259855000440337796512089856869004835221662193171964615825930428239646833546447256039987980590869706998612481971416052352065358068668626419211582272925196229909395775103576087738768948176230694924673548784538445500969493397898352885717310458983757930550388514766712706457675348084529191761342015603636490276568859295278973173547260752191898298351356068362258167342617078604880280391745404766522683095195148365107590444813591169851115508027824879843087049634259309490249757861642580820927244926735923339502845009276680271651695956519642994649232803447199952902832423732117513886708914972279047494181866926987860675824959980144951311571243942963631735482754609520905085556481339472225271608303576602075036092799987561466100495791031362114483320381436973637202004440014636484248254383561369238333809791507148282353513652926119883965077995503012128754488803650477478794947144113540237357284628693254659972629778340400662074903313314968660988939552599234419211197413173426174241253294571904652856319341274344459451025163492669756483808599732781823690701284920636240320221325130714459208942884947373391073718806072830074785619320998729856439594872043178268795032292265377788998676625166532569314924851733509156643650514406808804048166091868976764341482176356240135518312405626989085709626637644083323553718785882633798611766934336367986236585927287785260267930221863906063474437324370338639585364661277465317279023705283257409945981577801083457750763060952700915932576146964550464022401542522176427898696071655557685492068609892187592288770842355203106737039533775743372021781564453208008936239592836967555511965156496828586545175025066918130568721834789924052196142672885239779200191738685962666663576270324873208697603030185839593951943618408874590812424804663780156929379416182665637707641579575304938496021323505435135736605570575708498543659885659299545869015155460704479096460726451221896968577612998841628586244277423755230631994359377656912376447684012183136411131067746396752930605268165177152140018955269793467218399621245270649551690330964755229289924587818900599595907929878772737168191258259845921554419958593408264213579626761200131420564629432242232528010442486815351262654123219267407467200611791979279837616247337589099755864981454520153995359996482000939230339736211051641231408492694111926609635064340766734113324806011205080996266981756604023254284221557065794038237432556857190802360161333900068964942543111280851984068977188922176329219674072847604919392474261395527615628054205960899173229584142810222460569181684656773631205612415159647616940241042829989210381042167004978854259546632921941228448629913883180247609022597150809477670380897832993062560442279725610375199984516044584317513703182279238072859633092510160855824368554083466265165138785287513326249767387725652938804488315553504439219732014666014967552794544908006458104416949111124378170021524847488777690369067209662785267503751583855489793292739335389928070887178317709790132705868262381607684039873675092364946181214386432197653631554447784884636238778200563388121361964887946216158833028684558483602433357669188983316907689620573407398666089621288824265021063657032240195025368506682641254845029774367646171784811158945598553693907916138711825718623725447413784937197482542356163728574226012768402281707408751391952487415790647741740771161395933485710255900846956710503522587194732784233108545364462732209585008019527531218896562554253508656817732917095636850807370434971111902667735754509031368013712945145762399931944815739355894639529892043485850805332624290075130640072599332170858111993428581911497433913094993825383407827045909780302610746358441332451531936991880568197539991648064438665282264365331775244811063024149466252779166036202878487754929881138693935244779861705612620852722020255760066938938564441036548378278274088526214049637488612877475173062983308022893930744521678135306496257774676127708903230933919958720477172495770621469740812351565360577904680028524652028377996451294502654049116454196758945911839851422188641876456165586802832801600631733194401147006291819477177646665875194517741469406691193749361145911735473163887638828251904666221891373348001464260483677044935509065155450287482998460601816471819548415517482921329715023462527968776521972322190014865271477275569082183024437443406504727484416960861608068537083993834174008417759360512180992461971083484241282948932486030274380514829773585474167774247052834373147850929565322757382511757550722549821778056462963656584393658231336137382006477544495821632950997629558674340151505258422932485895076769221781594619349274774537600020925260290144864573195954669398186187823323437198016466019326253342740392474773907056169974425080960077839835989309446465813986270431545553675951522807087522455053726643557193137097798705693671900620309775664116181004896523019398016733857260312074991440123407215084300440915218244157833264726449355067374216288231738492352623676985906587537924252072770525767295177365527272279854212373824261421198783786289575600821472820216599978753379515205187245835068054312671002938923193728373573138596353999780794236582750404720405655849963382077806673217458568259391771887517320351605997494852709518804363513679793089115698277650200374320384550071359214096955432830075351752569979451503957653818959158584537351545298374208322765601701347408749359699522212682798966829543876978126264072569584450533380905716919126752823037051443958660454213999781673657537105003461171410499976529053195827474985734214817294203237602263093873957184620396267200208715240012259476152716893066275456447881978285196942970173067075811372701276464183278851875482981533228088323203704616667812556110213236162540763608434346125916009098398685935018764434811517346982716068226621690195993839418792600670458042117150760236459794342549173919908078753042145149202783377637960972299171748090309317156354163167661636559430573320698323832412220027841232517121706291523974278665015078681426407080835607677571377532706067180642545476562317827774398585579135264189163995078923630176054005117606448158600870238651325855746933717577091824474451736856415711666472554479868441010598187926233572953081196798555001874323145467908053970997025621036575571763490615344825553145545691445468058671639185000296312829915258473921057362647165320099511699889286691981436086152604388522274505207303743989616270146451996648961921613024047167055326104386093552273455082372702010384379835646647159250902498962643159950023254835866210912866865410927271689300279884573565459122936771862272668202630987722030939669554680258476995370558041309643433193373904048741321636250572880246897977217159000711500473753199950707048097759268871591609161616042492083431233611930896208281400695431381242182811036290492438736031563719714596322667639142163450905641390391010113803049087362946425532361912673865903757530879016503223645446810470908034746776165888826534915031595157483022370867393427420726175558673591587281699160595738129933103914579140921067176205696493478409600462015905546668246559419250906939122327904589412848857534459437935809910743494273115682135357365618051765671025960068643521822754488419486356394398577531879678104935999380003973197660077099779610537957024093033588473019342512365725232796453249549625686613806514764460330056362319522842774127469888438143419718468018443730751787153050709763967279272839578273356291857215538552238858428077003841419512002389518254527380837966798938616348991582295494938806920462433708717280808686322909721528307051820255464604510581402327112632400751234571282691989610583019726373908260401522096470349936057423664619352779726181411802111901986146763088952326209132701006078507392663535476484626099840001921168339774193309695808074344482616195223722308349785881433004334259241140308161492884577695974006773318682483075091008223597899896377460805753524478178975401807471039681586457683699555181153730313376874966307638386494097242139328116310326784285521871060791859345993094427699175657400201998722932938742130523482285364245007803749796075109065605790316175500773557846452178158843246209848887026899037063158861601711503370723839365387843068312967023037001108094355236709979572236595419424403215350538140425850410856206381725215765270437823135034230315059238122476922923089227242355465743200882474779119953637803428722181286850080629980468894099887757047045362533428623977129489916718044337014768653866123376288601045386521855129446647829062621873790393287944274466351035064885835639494400127597022930392814230283494786339749968051271491367977658490723696479255812227853234733758869607040334159106854195156317659886422988859176780957584029995473698975915475130759870425143187177389109793481339095146456086833785404483008387538937431279766980464531847747335653262893190526796084885252434610359719454366477550371141545667350628304977046776591704620319705234438521480289226458257413063978721188910157804860415758370868554485862950783513231540054482383522944583649300344374991831601990785474249174884991356461173879053526691122126226091278568292478914371563439576967456107905303651971429911164397528257252280571141375448271330511415359549176397539807532736324739970784689657380657872547703586235094052078855991424465983795659287230497801889259045700637794452871491018683956177599084328938528743427850407681420718593842603111271040372116309159344191071021570544420117457195939289175827119629181482078793596064569936287886731792842885325543519328295240914795250893104828374436632763123342977481782686859188080314609653900227019116324465169399368142747693185870021369747355675328717725306503807876993553792085676721118183861345003686211909989534400525549832756618847993075853835822995269171143991631867378115287430233454197244008853608513835313622080612927231190601197185082719831998018353996038417575140787563266561793389984101507620204423912124390896358808520157234929379962088817822051757280071303796281735680976928227222057660394615955361658852999828758219836789068782848648502268223675203588431150797180249950163465457144566054285189585717865726498803556221613673183941357390617467054076353345340715609916950156367298247099343664556587594776754816689646453266369076580824693232312241600149821256913032930701266618461438350081568807268081762650848090327041495217402124811152138445314921637952281138556572965111201501666405128562180628164207356693464623154505560862706310295212857280578111676756096089694190993277262833273225625369256878336709883494374890433061552782268086706104192198804394625689447536479109316061091598420335678429016837532078418530444599319346076588184418096181388347485931895837837827092339297356030323546760933158448804908613493834080033312339938366547782748395404774895936495361093661761726382629275602174171268004668654973655325907540038455316666710628302554175011645658632512877724299089987557939993455294876411726521148751108734738890626805594575922943963369956714402677618868723806720629697034403804460777567429329534841497904467766661946118584533492210949644201912109042643639841826699622343521300208948886597919046707546311667176705404273123531201129914204109687474727110668504671558500727704043997986375678796831514779916709959163152242631307922196075003919970079576876399922687561207370657207630282886922942265782227164595967274917943352995673319135174821849488411459191611032404102648512599690690926980963706877468893202958234826097644267850445730120863479865783772535661699265089890820012794341302952230225450757167997367325548281416202487098153364920153085828132718862688419769684763074588216812091440134610707257797104914200212911649736471367326124693626230109870118581785488426687674996095270865381325029229368459411371874245842052973976195885936993081008758318175653781797882015627107254946941670744811103503813671320204188880506208703308560293946508606028027569132900560933264681106114204821681115339397937430676688532567358158694321458102039726167922283964458788703558423747805180079147023205911894319268783221567720658381408992895124393163152019514842889998177137915945950769117925779071849004621259940559594204032062891242130921537982954667685562965930141525698112310313670775921191356058636199687279540216955303311132577420593628968531843792404424889121611414481706993204779698274116075673242239839490285485749217139263478350808854262862553171024949954475331176953966040169587002821973146099759409320924571585436313588712983538213625019924937076236053360219111498856935216854793677459274522460723462405125781666156592539076350150284258535334283334019217951239842579139769774192274638183487541313865112808803298596953926586606819901934454224741890391979935101162843497860948603882791600679058249904164169976031939156229546096020765261358379612734460443617163173238468419828846882480165476615053056678396324383827941256371780232463003658856061210447360140600428836063486799988199484608382430564075449158571900270448136306054549848510092346802917345008499173764478805994275500771354870652883399655199245299932749482648579409859154172433951712446577814038386598686412687296594522703892306063253686380693223428979071182461277696310130729788115845194680884595236797099201973048740154645106111873866500849683951028234755310239828388513152659441303231643460505730839773238921830034136519750683935981953066214329946123135941583432298750606110897694165253851447920576959437286932531677138423657763302736502556688038159870704191567382605315916395314438864819354476521420753800319490451083543307600424015024924445560369230865287098918923499897039340027376851882971924750102920592931409290006072388339437470158289832024504933131625131483497428594378277217725358666709728464179963834224277613429568611755404602881407753624045120588311290673761440716042067541893812751864458766772940942525814384215090936777160023185938234346110938412450117422531339806626730004499368559997366823984588333714111885649501150995793698683063464484005035158623978178569495322542726233983115405923111630576620429812278591192660514524836299738297018969369855134856475866157789550326390716638163826058161222792181814514968267437597741642269514598484554015377128769954776854576638164389150469214190701933485679652163507060113131441813272478757659774020555911788434036284505868791140291961926924385539508087371331348007040921898468414140147315021862582716688890628093127222460588401578538948186104264746964233661165082819777808365457451386619322184108581752063228531088846751356527039310103782149733110602416288804290866732623931071585556251646379529103726758937619371383287151335478327009221893235398387626377317391181404654429529315127518162717408525338710893425900663064390603534515383807223878623466501366658997107635951494086757052775092826689570212603448347707895771366321912452311476047515671126848935586859894701747392808868458671306680184525344862596526121023908136599924264304165675171958429816775392701819381614784287972397617292196171986091093451992919963223407176443205643881266530742204411458181743084831372169789387096704705243017716820129505580011677721617392110536303532757510763083117745251168995957056653164180465137729562675186629569448672357895688986550756857482706844655749616497858595567211085574261132540235678465878287076036154313752574152165236525320220784071556921398312123194151034115844930765350860856602876946862447720759698463668415187596218128281442080078199587815642482890127786796362517662258713294693952696072368939970730533777180858883878518061942961989613170029503307394323256305986558907237040607825031857208797705127003372271975938887603461648326558493549648524528016772513225533350946083796562277167235671227636328441561675176679698540100536301017282448129084229512515396965987677309970824549114664792698877701614555940165842256076388990337125928946367817404743944029687853192040072257084346662939640834991440096348379133362973668754533822314807289275067440432269849849110275730700896413261635409394750980906576213955925654090921554957342596656310446488516158896044909865414818858715625216914374734491583123181235690095080980164204775438388333985888554342665156536278986329967136958467409169396549735157576532803895321297366916748869710543776684188916597915776117803983824757050640968392222018734199610053182748556379656866047432369331135974923976454238033172136010052475450438721727251666842072816058270186159773459119375195675486617283087747362878983732167458215833841683114873393395373222748774905157854957827709991280801170526710336673335638683658190449434728837573267702591881888358407272932614862817299684318187381374941448664147501986824203961651256806184475016106031200425874699442261448144942201968292401716184542162852597193632052046968739002669034344157489593309995790060097551461027498784920543354316403917310788135464498370696324062280055323572558969884823327213211893198217042255347461215850842101661881333946973777852075161162721578916615033556445784397761297048285069171564022353526693319643651740995706307880494473049442935214787997822511494936864589141792021966541259585730291260409170593867381501753703490631925821193420550542759054802443710711887787087092548527945310693667194978451445624017628147750796855164179889917893376273403690040869058591388964959815353644727199453305075380853867121358806146466776411279412688357826737548797353492916565172092311857058220160492413016160902333625302372443749055771332453128685288816824903379444836782834868773313147998090482789805558491112854497008458981848022346931040441173239390283699068450597962327348324349097289111727650565141703566767750126695470578837279055864047376986368164795593381560907954634453906328652641218675070701056474259572457355354489899576591159550612584743119427629308584235907077381384003922360409249945262039060174580582635169948641716431227262741297498746950136767173609700553614230026383854932801680285793401497162222733660829134296859100243879762872708797984015979697424875591269269625548511982806785450149853990171191744473723094152146708896955452214083601713786823715981493967931326732522511218315848417827621757052823946837031706825583440009118521253409772773527733510348297571464968175855951794486863086188353191437599447581601129859151210654329043301457543764228386689221850586219045011014504580030679243071774306419155333825067390682147244854925532748545599126125660743967481626789942387604224860956393992847468673407170728918922958272849973086788911835331761095394695543389411578581779810633996719230982548834987179472392331681373679410434238917078158180730614506596729858457321098461858854661380243107872672794942599629214062903332270810256932167978996701279774346078153329870828691217752948234862508295962576135765229315692181892003598336700540270760574111325443359835872100476412608941342462249339411795460693583412451830576932123876458327483183774283660932525064733858499030251782456140838732873059336276987496133059830724887077476545149333736556162697698257534663061926908388001645895339993725145616972294286795446442977864858092306661877911418431238208422208458055184767307700204367183722875819764178898142487628613118324441840267291448715385305092008100454753150046939273280396513791293882405462372749016911454932160434996407812808277558895424949301100580563545175865189972604564604154221724527749887341433173547302419482439853836681612514027463616243785165444149917412207817965791621042909081565911914956019973692688242676307520265314306393008940164667893329152383455224700172620190342132189451517376461098423603130879468002531286638389319799444237812726890048725255232104429794648424061384466919962127198892520787482312376342390350714833271420912379107915580619081581518998474567755854871090082534533900641089180815625851861281648877753451313376919239534572264799123890663322674328132362698991567192380821212283096665114193276360615817130997385874993442116761553430776610284002198276787168099423593776939919541344172759045726992567977484658882347135995365343796053103514473663651869135591007938524040951156611173215601836579488184943307920689418255541032572612962146801483920112458514292757069669454452301498677341403979313364791391997817274035480630662947471979788564139996070335245903413917891510926122471938642855241625741968266410435669089104739132084819745959955392463181926730176377570252509378294991626864597188434542515359513108991455143343846456854977112961870232816635682614894647612404508908241630938593459654067815356490420060548532673235124549785924201837188701649176112390183499024593439731694998370251812710658010711404766563067165128872966889325859377093347476465170479694116499189391536064495668946340346843753464994709835492303821736531525875281422998024327577486232417129336731788645474855145609557799843759640680603307054087741445878116061419807122501308985346677642485547691539691062015893356306774887675842590725329474030014066574357675423179798663267647159721825581505458795883875301915739974648421179166494286768685445300162226126526294024791631894594950915056241354800636150071136743697128357956860325625753149931944285537013587606719858225940485506364521128287400647397556908180735775696657765049537979702965621032040940276801516002832463513970281404469364891702686564422649079293422500335150152444934718948973855039700616391609664909560112629616138011107586654195816332101895301405520718709174710000039364727488570403231599242503781536971442881710926332356934688370756362983543444627967019814152092898792155608538615917439834626826919267450850339587735908086269929176214848067970285238208032528562991209539999227423128500987110434951849764333946155887620609430850496107884381349917332793589014123283991544329624538907739158021671124217255038576014178533006095398554142719145621013633167439116877587824246481360322218640262334096277860567771964114397600125923400677764779336064120294356782150568351039689015886089983326696990031347965493865349157150584192065439042762126079554469423234119986740938219831087808870596663525612365347191329802507539734277430424882942355153159912602337541817369850302584376988935085827374959463611383286487001594463369674474844396122346059673497217415089939601767357882395686219555879581136749720303977717153945322479612932121247273807806743659041379126948903587602243632653437866465220883266706335980077038437344651593436801324811848658934824770155105201337995503214437203248106697851526805907171101448394143040924813410909523534769833147924147769305615703488358518925130123123484788639157487214944577950542398696553122440482320787490175782806256972130803605404985006227687276559275312544466633864657037757145928533193628644689822934443499158270639834348596723965040631513203054132141278620428680167596136075951378109111143694193774461329239388400878694956344344991240240287406767213126285377027955261256882477856885211852422624710932656783754108277390983056953208574397186304815933359996707382637373077537003016123535651262414040064308597635498846966221282310278107178474014864054792823800796918151269015387872785080189935845415782593794346862548812877132171897365164313001729556919357525339572012269201917636397808921856390440080707862908214210622860776046300451930302967780932657157767679141158406014386220821086407049975121371093657839583101092221635896236399178798175959150086105390968136275269135381195599311198989483144422495664410418535186203850637671215686650884316751909578857993530203442854838871446831316536050980063679154890931557580504398055427834637371192351107157877894641036801102816271722107569269451322021131735771098730362190393561746522645493628064865644983520695685000967274619025854996977966199049626636231206264326711599515067270854463706435959349033171144152864386906909284130900457336924130034892181968989694218499747460079629609083043369280405401771362940974674623916256201177237226097605912442721614449268852051369773721568193780706667959885632386419773542738616319029052120244995162939162993758772636041718568434388114052811132881219752708825789667839420140117638689119416288033490984201729190607124343402078017207052152016293142074825824171103754788679800613886153380377045585040921445646064757564914942187817553390495554382956864373487391825537048398630522052015130753311660365784980264609598757812313093227019306391816549526500209083117740174127111246233873668155455895223789909492834767817758029023656181802656932052949178910390946866625850108001009645866751597670749088591883891014635968656614664384324305769553131424962401519936385534682428159077304008482073629981200542826930290527640014895986875850215164703808121265465986371018232895419399573918358592292559267343787800793432818958742113946806435014327083973461732256338096956878307231740239060829384391239110863136654774738956874413117618298158373210637444811250463821086719320456289439289968073048008801218716601411697721556805470125086703575524373803838169730562227369176658460162567259061051829094997022421757188964357455160487148293173856239400203961239450392582140162210905072408232397733742593805987685362634953068377918219356449409899158317840200524519826113440606527036689529950247878219477402046180999020956321880589419044149231685793439541850215350473875435002329057812140011056537447512878955916104801344447686064381550848373137625585121816338432343401944196952356847552822122543074105642561766769350661647255663167561175788588750000765945417913905472506216642584055706548022027828624619780928777701958048731424616693101639512019463249237240026702694655245848522017848737548713565108287614832649348517601679828332169598676097358507634348392796320767590799720173053922577110223105691058752192432905325522153663199393327053532352418931565993945407499833433178229475507806948801896582448827995820080697823064311831604429554009351524285615387476325126555799949218808995234339285420222156890893706417133927957079516951119479831902448685122736331115302841565660499068218329958479419565385461886154800101208799129344879057584676313687910192361174900277884338843801037536584414073431019949686669386524282802676714165005515640317082206482415182309838979600317430524348211483708206070983402349522250102616071497677521815106615450880548652915852151377318758665822363328685636313025790687759605059510895651425646246712158182358106476533455767642955035761591823910182033619094465365954792712830225533093021644952431236676365044016764160936606610805598554784384439837810803486343169891750264895289944513809660592186400083998304446667883230292064625398133703793617932763484414835327294510907943729983093129043369594682551291057009441075498406600834409451034916599439018515917764076781383266710312126118147265599600672600247074974277899728582357569097966564325102371058831150232657620531865205667096000873821715527281790652075891510263586395408239672975139473434766700378230890483502074423255248769400433309140493510415192291202199093985087203040129652027379905922914142673129408377435541427689428030839752478779524987470598880535527496902520773426177959120090992110774142155937645794780694590893741175361407313373713962801643643998536414672589743331926202062897602301208134914927104939293859955486652833881990908670641678709959125412434430961267831913641552497899384738135603328004841897547641271870785060917055388673894082061752863427604023758408239739364826549273201103027483744482551203995505946564607091782108471080345401022933103286148876633174201032547272429042448175708691724561351636468456109499503454650818101279298967001084786008134926774513848319493983757586879993160795667414207949966607749367762036972878086789693378953533687852737936173902805245806844483219510962989661735915362617848946991139814142851374901152754326388458799011941974206629001829675695886425248300291589275201907237294679958523223976926591367767552453165932384078998396996230605782427871099946395559705737690393092958775161862924560348927560898101310299693564760512981754899646204837290604507923017234361752374492198661519113981099885248087043321942164508735656324646653224950070291771197225012591366666597322515874961150661648513446425696667840833137859116977086578438514372203945150697316872747260168119363713366552220867719406934809661004038642646106749751655422371863872044855489021650360918203269534735137638845528945526160413877366657630571539388586546911945132052681328597883125517417251212861623680555776347835219486964869791900611538398600036772242289711510591223028204975338386017232689974417716886554958940389978099306729644356905044453972709265587561482252800179895200859532879634164714751009121247571214303586248464970512833052364739353060563615309173983153622837981681415716579223003393487070960620105227596571139762045080358558700055944522711355996964433668468283029276528340244618063204165445281274666099256819184531037208765098616241704728952651649069792181941041029540629062862657758399174182576453433393035216730534804997843570436304444140351586588151363238137732613443275925737943073403422553057131911239576068943176632688198686925061748344772737501599851917158620290798898645765358169909520172826103826396307173697125620221938594679787223296547059019202371363947418038854573370826867101159387740193080378241936295165052165528414420691492595005753601224485210391654668972393219408844198531818976499040035065203144864415181070362095350775772520161417008532257106170490105037824934367181838595619239251567381350667258997529073029318916895893837871500117008520939955869391358911582330519943911427280617305202644268326771255867408343521545488455566129344471501477892973121684852182087495373420082272951274252090217678083604323364495634239683407052949890473429048617476693413691636028811482120667081882978778078847804270102368686631158019269445471223039669833790359434438817775776601847870466861547412338508210318667413162203296209206095304792787228926106220489880698244953893958866272003844018551677713141032267392805608492854121563329363175824677823209134820971483549864546699112398287846748466269902217154463899742018795245038667779461176536379342541562308065147970382486796235001482142995647603889817032875949661466036839407920559976250850172789171244441365146904901769540191716344434816344830831490502220337577384449425373988347521977784090280389353376245842156742089496100525135216927532894875240561118537206167002582935302830286198648493139613601095206698522060850812395973492949435359368957405655703374111996152955669202709630879652935406585529494423119458851229659665482760910116743154979486195683773083123605562144183377789372167788367963818202300207635142634889115754959643451494515993325565764680044350016785066958901330688518940311879683357100583158263901613575636941847360336233450531767456795476871893557670435268701501637005629195418357228113715571824591677287477765975904100535490647392212415614456995020091183478917700341320641757791054258531408791538525988439578897345744834547606934865855811950579533748960074070717463667222874063556453781023349872373234546246894136117232588620133702994912172831697632133745551484361094696149266474944990356637240475100780427491438030143137776705829817903141680642348131996220483537792526047779667157662978458034329367287738284836429026633798153809218375382750590487134087494224734931662303632964768113484430024492211088556003827653726484713267623304948378223915462995248661893174405933264075820908296024000791221020827848482920462803657901785515077644029576415297747940705197862376060742932495578351396152304724031916460579541048518001031574910161384368020889758251704302542158715303070209458234783191115573621997361488177407428619317958790754088680489526847519645500254806756978304543421883804941475612251068534229143983825538007523012518721339713781065901819366716436914733300280911842667333750337631517407504614513857177867834073465646771159815333846308293749940532800559639411709105293974703460976555047542294403270409363434939123450850762917788233269489630899411508166634299051856007314180339044156137141674290112975927562608250864121783396080307151912073255842776751669782061508833902083362371456602327833934767845496979730177683307445309239661247532342346625963679073265042485571875071381544390618305575879098122035936756227307494713375298083769861780680208104528203491397733835284535193854002399462622443198582704980015138629861590407616338848828533022566909414966738954691685268768016616940470146047750086606987861782964465981978141966976626178172925181004296973822144253335833446601760125825295542205332718586289796335472759424629491356858488967892189584133492258235812766734917572591064225245048328458784432111282288877059369247581633574935310448529534390887341183829811005040292256636056761510391919099622188206669867151908459281614578594769805111262614310064041851275511822313690063261075610735529512177674247273661477235594664000584429884512095963474284920365624652647766331670482796377992121538604804220608939138356454168494036357735312131076045994941860395464899829460203712715823536409573497011472561759052069480023082944472909159722416479087690441803592810786219881479798262982644655892914372430122992438063020907309581921136137806918160503710049735445293943520618578195399047634643118078334345772683687134632959494784011572867531360886123731145067185254835858664520722223032580890287444646283967513319048386255497265037224306456507053267008641469271069492919707052663700184273707451306457979557476797843589865267561391093625979786952223555360764832624622039432621271906830417249477253294290578478281026349098945474126090903132591813056594777972573708165090566834298900607623183308219742328545706183328647324619014369058462060682159428880323620871639657785498522902710221489652321466853585030497071458438740772871073944223696403425769476421795147612299942067360288299252922733683262664976939033972780499888143900307554429452319846274636030355834668635090015153699216562604650124434124447449595929460720323234406472058457608037853596842753188609705353404947703195929815516015725336621655435846503062569318960406409959327384052563535592591671458254670758624925099444114886409054284954235693124233266772971567914444432844772925303410731026574786664948168627158929558345885343737385531423770357538581117809215100945031599535339909455833329508498617035694645548501549270695006259217918558219645819565671232167552607024846178140702285262910171650792084480059488153850462389345833154120056445180183721405574190784603420224048841213576056109117741462112398263575331886765760373990873201066432500594776997484308871520975036867164664969607196143416441805188648674399962928142704929744726737769030203460053246393606297424287462661624983015546247752696836439945608301823760180458894547173614874330327496477689419139061230397341874550301259847460453801459019312610077336413973296832563689432574164046650313491794948433942320575690756626710299077400114120715225962592152311163770445919273870904660906261019481008733124785193223168719604703097974293204090429529042021416379012470039958325668955628289946986657182549008195841966897006388338496595981074321308169842250775325559193846342651067026285595205973848431220311508186428874088427941746359822665253477103483074503172644733069245334786647625157458347992097971389136690382198026559220199411377906167890831291434856106079194696030793345847396654724489109135871968650304978351457276506459057171691054679420769387124354953056522417681229515909188454777822136259885646549136907355570845188147658874085738427856023353824599087617959720988926572685728501384232159170662553253077540011658993482729394947198400209639045158235857743781625551671086056057850093870630161985817631410725418594392544847658953040282916693285703583968960863376617622812347342156002786088041543303664113974279773153221079152864102547463450983948345573292106917226484866265876790152848903855361689991708663689559288665924032041778455031739213058803900261325999769824703812260404371950516786182624572856460299185147936247428982581335233858536837149102487316408238300664274738802323559090860053385846644155789742155324644760708009030281591287018613372870247797984684358362122621917275744243051848877568120887688615764833416334573327907622778684290358737055296402969511852733556749619865264037089967937585167481840937272551096067764805161750219270789301564782892066073066955203868208298626936269052386016756697166741499879401545538623912471153782028314217317300863469533307510763161959755135009159608823633350661681064501517708544733950025700337021334834652234134339795327984270446569265015144093362494303828053915207896184809903480198926222564423489693678511794008276450926426739494356538185462198828380639753350425273574419379870036275320499695123404637566355201162260896127950269864858579443405377814674691223043751387798010694595172536731916982483845651175909686673268903330581198920085666296720396071409461736904044279219788985602409581888353686006039797820842364606474114283283512994315792233901707531224100994211088418741530090593863062057199496815917777659159816184785108889262248572849357205223605915864332682423604168736663082063166428855354868535829758243568538881438352443638559282654768876254310980601790471174074323760400586680106009041684530950963142160701746630532471936336140401347290288723247578103199791567901847425206152912871318315231416408845603972688015554676280898710844247135949290482078694780726613141804443584198407787499563005986362712125963766887808685628805173674784185519760393443327900808736923149432596485240914797989621814867818200732023298931764961513329601435607528465278764174687364716164078621949281405603001465182654261018987127808082513397481805774906716694772655479288861204157318555982465404621336359953190725322199527536343246047662135527437028632892351488003134663917412518860533018831578391047516040630297255241834955807871818256001930473574777678750211545762136338843262451608523637914871630996020246665085814009626863043705964583982860026986013911887027132788692200185561383911634930106578145603134932234543230538970484573599229005584708019237623058013026458083362198557165823361318314615351605070510511427245490273884197218425138864210049772577210937333646417323892563507004295869116553103326785520037688091275559408604351657961708235127860499997330443803992590247110119742056801215557890514361758878885907915580748669153962563897033355773060437479368759023459237261277016748080302912609486845835471332562169975486215135395524956028329755040037465142096851312594186760782606412896008983938708090863287775396752416843428103761220890558104812080947150333542107257214397715543055913147460389209790055735360444888609275301863719380130366628711933169855542918345862279281571662131102922616260423232439432544250862803149144911148408646638086450606894868042597020351426128416131987558101619792871418714034379484824677801892436062228763819132258561822052993037342603543686557089399478134030034711390382684274634985883924294857302716872168194867135016983840623479215431986050380624918376711597811914170533277288692109702457685664808314562492078888844910654283451741862157381711262600467335696158423172003513525392638469856274153331760830090388326517657363610231561067461392675917138896701034017910775641615076862857650844123334294691689743021830032865481446176289685594188835279234258255329224117555915930054500141679558915490970780674835167909890469848321908332719370653466843633452788913091281054188256464928499780733366010441624914228020963848470701486950847388698994377856181831487179605394251572544696552387576516342117873385807568748833763989969859097006578568829400816013018512922824821791851546292105299791578804110444141316763640323017379075762905125878681502351979228461021166746968589011140549115261885421407018170762690290756509577333799756820402139607055812063171891376838932013787005599518592677952114020133482541887037354101089125756776490065255570388203224793785754120499477284204128475557369229771317440326237670988273105172881431407176508994411241587843930290313482274492309569006618101072108851966907149660845123720734068878859556842574708488627538019300173738580183048683991866074486314231134508258798886956671403772764769596425300096465827295960524921758589589338192033737897883827118240289298573729684928105153845614140653820082006969760340023819867894109881267082663448401672708724778054901125525894859937030851269542045008339755865605591631684194056725387448695818731043546067354047480961900332847113505169896414463151890169353556758219677009333046322092616119397317569373446020743110509963764173018128507054678721801574981791305372354698232223796346043644948988048328090574423833603121551325168459468202333511309014456361699171118510902054449387832747021843505357362704950672963521559516597069613867222913432565110773304613498562946833752658988273744141232297071802884312365851201309431074801717877253073813002729012564001675001584657281066041220255367638920115142707588719393625358886106855758207001634109616567353946124254872356484478938079263903871058794904498301865747060189101069898613605760438880237076285777902911290100963055656968503036534588563411925262973650347126093413323259955871667861674371966325259886558431166719479311798380823159801070881741789039374169804935261648425255340692152926267611879624859201062500851736601727816996819618640547284698823367262716626105327901817946118894589296466636020397251697755668788296831998861220396237554393505125497217987702848956601296557654920470538196661048810912662096425342315206007839962563859272430977326786366639149707168160415465925910323720438408273563942484564327453399302739534658727123722242524898548133906356162341699665281145353763436880641440433207102800813046082595923854573616048601896118665948456278517035052877846273799859460301938114231240274291401154868074776263773886988106819944873853135996379048786904488842840149092804887707994679035907373014037520483565707628604334343330100062369176122738228606689005563905039960370382884534316481459561991465258739136159839562486239453172149359568985330258595702056025089512372634316625552773400604480042785200851629559089192851938345447657288773354530430616047702970430244414528222857447245275775184178901276355031951032745024731312870554673774454697869758390979917210754764476988353310486559071092815409539939317883875230480741096124120153325579052529543168023110731054922029532146855360775717584857266594254732545372581130069324750892048168935734956600064528925485678912746292695874381285616815587436314239012758324314795342454913327958255417685007207848859598757694598596884793851753619594285644362431775682744022631554881272170730494310954271118774542065986476913088552146390269557952120744617003222210022289655528121447245719451989419885571478768079158494039730956003651162080751383667047815917490594442041529945598655591170181819194404621638580292380612416742067119594806732391673008844200473724617254314491922260451843699521774070792064081477609261991183703932964311298396241190781012410046842441375234126247928373625189361886207316318777111546902329033326862259234852900408112568558390194452436547963192966381218788006767907465462885793260039721544404647845288162813794682706682548788638169457608717426872761171279788758327514360471583988583620445559685290482509884476503590105768736689869461193680634192687692610531020307797048819724181541091322764096760589114260737903210243573303934807464598067077135128117758025931944362671541553586678827164709918505621759956530647960581173377127969605663219252783621343989872742688981181439505902357196044216247961911374005047609638946838607674891953299823212044485541357534323175594228063410933280389865404850123972837527610358364150216545204725984430353697354695140562345762247650399874887769008370713648382206970041041574230002306849669409411904079960589328845068952128122463156804577175268262459958634245106391785834671370208278275620796630598675380548958731412976518734206857485147458152605139223989985571795458195620801010837039465745663997182468329903930123751371968691496075734183441779010784202947170886396912540474929925641621851709446347325723058602856168716987869428669303380921685184808430662192430223662333514732647227196632129049342968300535658702674684422486423677029520983217383539915399277010832660705357332254128342687438114751272808417171412869634902116840682926369684924242685659180156384309796781163023290848047273192393930876906325568094836883552741667108061853022027326298049819342621298132875202422347500318900704673029098498266218703215279382605259095922692070417972689882914148594992184112765510963606263097913362603430787926090186828736296896501492638142414157574459273743501846364379744319841088734558517366862701255304006697349650662535287905840568951793560708840981912578798295372209122858445273753128064443997785090887072709646335639612801828399006891868622476635293636907106379326218580027933397075219505012060047729349522904908498095767185549683377456498901335469002260938900996291075637628936013408751139630733898180771767423907478335533560329650480373092952721516831937683840867000555957568853720930560806154947886918989083147833940079943839958074278153790550843371882848517543690785331241536081954029022952512414999687497517701536881908463084818762341409341551642628205522046627308828329700248013419610138115744228334036550503476841698394783167817401030514720308490614280148302048131721957867204465207496964804351734018230185994594196434728637996428387016003705450594218874449732437480966718484107601614491077567548337488233038450510443541049268128095103459324657145235133227446020071753488893081830385347530250794402110499815727216755238313650843104345542800134556737988622906030075217112318494314015818550538022776880214594363519991994419173990673273436464280561527880455619283872642263472055418110937258171048658180636102557285978302222260303103010685249431501056565532154354682979999110617415261714252710672262225125407828918986563621824878564978793917384887990478114738103069462000934046948535748752501451521249165593462882692909945724985150127803488661673856145737800047171945864784827423235076279687625458149090418989144056118267538677057720745290413696493047265516705324357904894056332635187575664973875782664849786369864366455813361686387168945930748304411584156575702273243335700231564308786124760419088006398331713207492821668869476520102816663509454163010309739842274200327465658058876599650790291436496523806364685059279088880481687492852623535411337379056148421370360848164232698861700933021826671938844397785598023332317503127984104097898766662707121177147323798797252337330465462574904919940385462854861820942908527337665611185581043001882624940972316234695405052435080533073999477979967423690895320975395695259166616684683530885160184321708661022988398686466296551245464023467616343807850924686445622168125396002013825102213453563343748987003257435461086649037520476964283634077031101593529048801324755679454893702862556688110717950348559915097098475884235218507618848322476129187771366772794329283147775635165268656873341678941834415399381152606780993199220371059539116166996553725714163515676627868844422723709939946216263064012985920142324481477801737041643551238091841488291723861765540687868381377154373909162262032324893992688354230226880981291161510288006815955367243958273811038091337907317240130092678621299524753777603739992077774591839050072230861730908585430518928969281002135219818556477744214465868992895698456490441128549121409073854129256143755461155349920123321061058532615099170321436901869344168312598123279634412455464691950601204370454572122259581206653763643601225487635240167627448122216902892581998944868996561453957664369594264514476790557240729811222458305864120917402307642749872397340150851730441538975434801801917552765389853024751313558615386754024441141788767382101939671312774814523240049108074290708937566036277963908441428949756733730409568495425228859909475925799633957179199664242292740896107036260678683314257220832849417105735820126186449485941127513286209599022918577775801895012730951536558522169418717076343477892525798856393553487131340442219935409610793022195165115633551666022393735012881117729459696779409086075934973368047321769602868546444884038900939245680022896558629935417224418476701006299569432598632992600815016764915201446344375441820525769498499364876093577159972599004892746189599356381040602051712875816265520702730768697481977036513272365453658295150767654857979958729852015111903659618091595461778890920122109746522425156032180368573564796118418782633537280736584016105082295550114557901071294361424884577899288381295582244773852796230055064102477366036489583063102583188854886169107157804415781228853221323544524538362464618946306737765881573517235523310032849873049678226413115696206758948645878893645826490540478572173139113187395043794644336478026709519648932101571684998940852420061066585298002674900205305370269210563568482978004598468648576851090530823844210720336446049691647124600030815344920736160742357927030259969321059641333025845804386884903311362781491957385461128313767042828009224606723047392156124514034496296875591633503192510221201491125050857337745793726191095105201316096441813738305466751199426826883136857838940241116268792897040063574443051725013683477588996681004713936473739495490226821534292677435092598383900971635075119505829332756773487176412377090700226103998754767548398408498191261333508190957890978194141419643029508675071103088423571259906139263638728821730238282306506099343969701313630661818568466333123065776630916827134774338713268772799673967463456516971767780499577468470383487204486200214115533289190567207634924672925748949862038412344849954064909146053726781995330616615399641559831391712739909378998714584473192700891303807843030569465752197421752441396068428754051716031230893215390838812470571484200043272538514096287431629410093118748616009464995472824063170621550841295918706589035076147022353865190661732331719175648199979408555945103894474356050388743303622021760229790967494925217885475019892171193931726901869717624250552383744012287622017609368971037006044410493858315896233732022444304277837609928232193054141405261584612645551149018042726441098382579024281941546807155859289526946264750587275327501106698496328600092875069311939329555040124329178136862823357782825630784356464186282967121075297550380356827385442096440335960824100492565558009215047943209654881457973640606953363841882602918201404892923742772366341110877992522104186666464013594387812618528037255702086615260866292565310008888864994336035106462834915993706759843060411050565896142183570075772818439969751742308636909945374091299790931161569369096954371563249760975130364807299499020252610085096922119744050738107469162781513915198751647029311176601628479438779019733823613879887153818290437176682751030060678431155394611911728344334687190083442961957887314105362536567713903701846248134562197993734426090493019097763573798173759467442034163204843883530663979844815987087771914431648506324093359319366655216620099654148392530680057950434674808839988356598077090303963157435594419637905897259647715792563201174565725703457607956644504693202299516870368687174662267089135257877828338858533306636611493905405442236325824241853563706761370533809094381594316319446946116220815425674949106276839486742870208966952719119512297087508619090959804831452617053145916602251575112378457580268212992576111001381931517538406641695907232126023708166677190537285641954462991145656147019384355462182106691388051346666423764679513452276564657641820731508739241128330562824181688594244692841980330055308442249138930603029998379789321841955244056649113011093689100806805676465998164828130414238227825420453159046473290697984131192705540817010418201127393200587104793306010873512124376722731882897994554151655417462688099369666130694829629852085515948686297856381762454005346315001530494869544419715481984123345743444412429913291256702065910987695859731015556997624227987297586015793084365891912360923736769195788287658247804867955768091557852431216270906188892753399300182538744570683571467466545742591656359714193033263140581561788393239480978430278400404269998241159143986995819560815287660440572691233567684646257867335376915092151155225132793303244649081639785028086683689021940212471880421545307513012990393169164334282525970553292850528162396698023648618931036550511003158576215261711953628745398809085881928257454227630756588921499423438054316255002081706437562863906064629518564254424846314792729773963495472000660575745984091889573899326646880245420027638439461482945205208230314581784227967324275145586313179575558164654783696042255382810232523798519032297088020406016988872687868983331505726136049963054451263432198385663481494786171087235079777420893402799252000950802821306932907643668724874809902924820866918365033598740991841809322331558559428979883467568880244283300018425800082829348825538195606809121902877674822491620089498061874751808377236742110519688652029104246057859748183364258571239381101110908473974749842039516936341983950232268757045130490375688267248810802112860750269183246253771813124051346115750530522493359831485811800055158819927078508018533343736764873466386236344477624108516409598170417667787503462338029926508878925604696108807530160969529084500558291778017121438293643089351168195490061725364897502835551264437993784912960053854633166362000785438925555153505186847628896115760000038086936103184417968062774297011741899300256908017649556546353113072966004256532753655027620738211057670283098419415651802527345318950681014381280385854711510578709036495482865798727765899959104389240877336462984612716623462628653390438091214112434326215014873261156577894840051988393393577639528698584114136446593611730524777548046594415469348151171056279834448025011407538167022131566534565080387491070512338069440133012592463710013490751053364845045375308399005365256789159615136140442349583267682376379024162189534891549601015683719897102915492947112121647719983544024538130957263007898276329647288289888949095458506393068023498913589885106963819933965667235001393497530881261006304538927042523966073498226752878128547733665119740757179994951426692925393330876069606261352680494029880187752357873228029540566386924810113608866900265376394085141169967239123510392568411605547259207005860971000296094713550983239409904728781429623170750632922184073649958561116892570193259103922328785352672173989402946762399913572118802855459523977358629334688774770685113817638603500756618067971743304596015144105255420736428201128700722892583704717319443749645578493059804983631570628512781790243751849439927505967310243548038434935004520425919953373712171222248483342160888772521176982292702087388162621859380474522902904966802702795136720512856458469452282535480140166689587876803151951876449569602036318779793960485801034232109122162343247094916348632511807732283406070308070424357246600855707990518176999622652889167025492279608120266285040486606823047775684920558760604645030976381003473383163902167262194528070859719833300061026850142877114570594685489439171606657893666755261606342761364707957147490179233475382082970659138848740154642736363404924171228436874635335925245929503458854259371054678930241379466789489416804630819026208768757436669475354038393888037274309602219600883711668178456035533994202215303412949140332908412332672933614094577864775087316162773956245285995330224172520436854784549729068981171871752966111604621066518274172813085515454192675659686602940156613392718885737558206743418778385167496687649663659394129967026317807380410211417701370891041652252761970581535854193887729718348618214079179051557621877363623933979564137765784013752783109267850288106240145222912029427697230396873424115550122993312409000720915565272757278898971881263693375218114307655872504414129001560030070721597717953277052417360587051495850557416757716566176882260962999115065936429400419295802443147959424253277999033209568117362413083823941362840596673495666202766121363529879648458684820260798170782994662734679460135944862698023301533028462494562127510897456004897410398083756918513861406228025095203174481854980760541918461186442629515614458296288856882864828838610594076565779399097343823347247974840853017762336048453930471122159549095693780615390566955835303616654314771747980054929598951749678609128574580940685121696171207521102645312408255669507644076856887527593629191293962876254609388733229075317392538670360679257095498706641955499960186631430873791566592670946462791351315422180071728856700468730505478607994301553499573492682465916116378292748979236240754956455030190043377716427714154947653994890754650903431761583978200479806313490216344193732716568158651631333007957673731311109686316992632814442338355732992149113020683186916849738776242353114266913296454082080954175910030636736917913608358260269847829040480863068460212523808285078959410546993348468451006550543197023974614759557276857755221540854524809491699793367886094798986112138088155534501210877451634197125406160477118400040519215521584316256516347072334518889925268478584897858754505400657677998310660770005572074742544888421058502112446113734289106823308868131209564230006657482871753259144142300508290727865493713337797393603873942694673975720795974737785852474428404717962655480366162179421763158261477839329513879192740073404655599967120185849005027405454362388845984691024966267499126150007583145669628113686033129985334631275526671798456472177526351496433951651337025147278624707513407465771989936051307327789558050743552171820212911345223331136040542825606128792452896214914236303115462932969791480449621320318692738690110556592811238103812658375016078561263948179919488688809909940302119449339994736245708669599079179084386868750018774459120596972718842775680147805177787543782170513263380173958635729340244728535065690981223791720603719256079048217143629328464046766456550426330509677514299555106512041175663659290388702198389468981413346636625710443098005753934493771197170339920176151393677929100219036139337332372223480740179800433916982481610880148274557636821695502838371151026195813564224638157666535015558959527718715739630108149284121603514905777998712805061081989529929977746372347558335043131319648429936678127420156282537100182346453050910173444765377896876674566780776663390521392301057883310071530116933792313142011336388532660494882014362877020713041851064042340882168122010171913447670855198212075388003912882349130762429126174730597298916824851379163388486509323109634876210450098077638079120901425370449886234164615565824746502519664280483162444726887331006926952953898919335638594877368052724436326029950170246163473757911773009341806453792696911852100283434419002176641792658563611283025814139551666225100925368534349572278505023576248366720962903510884254465710136938218711905148109098113046079906797770470890905472015337369691012638630729361645244020079035016832421290851290626755495642847670823683515175931485498985061428594667951363552349171023531557982673835432425865369697087245382875522807819402023804348152212206539733396209135585860000158724653162069824998927177184479011843332279089812274945673864271121590719815149581989144020249255161817555326862389630761998094568048004921297935326491299142791299617307351885996975429531287850437479093590651003047964253375963887033489320334162892817942240373350690615686445829536650750899381771651190069066607116230053927378929791661899110512030531317183177096145269790434974491403801525171687056760909214121857881296944413293598987173560639692103718450355157139834343652709616046830289121311649301300449302432976735170840440423254413788891632945539821099166544113272285363069256938619898076525963345128983199819467274718908871608714644465534363706749656383492762940944742318228520677013367683956963031983739921085005948927764757493419108596917735166772830343120449716519770236794544661726464796350200850298330460991595824778331211948588026106806486277517937580549293633207362184934742308883926573126266600544689240238953383304988227472857704787234825981204997163251846401606794888972534153942542610011114658667083344863897026792490923916129646824925517415296370747351440799447614015699769641230922385535843836749271028946416152703660349239644084821765925888753125866570266395984662822027816210957211862721554024377549307073529423027396514380481866972839510918470865215295789846201058170753305650002663608577018954063744291283249293357113593450382637310029800680928003391271296182884734251970616173177175771048913466637738076748509413980253627366214613338663516236272061762196073505979135602446972099360573126036488766638968434817646055120085768569381358047660859892833329344349228456910981747232468032068685276074939681504474033431392417195581665705071969852104609737290201631581087417497184553047398788226960643533383320569004337495758597837676866405127763827456989187110577024053742792695894725308608110428203298182743200333432561075884227815814559424536449549867047201569528725883136879228125325178011550543062762625272134200283611513133335202084892156403039572592963370198590328663398313798251610127180791565873588783297264874099351711883241807455402178112433349602025142944957370134294578130596300158110934141550513791857078696378438214524247013640604841474216401450511428184018528549768023979443639754220762990975777810303469518248076836922419140106175096796710837679270321683063618841672579052391507380028758046968907053694867075615210923875079348279743393730729889897430181039771860603802495347083457649111235221831780496993843162133073571762897439731214209864540452005079991372435885414622566265167117044850002770329155529057249851745637649966310625923698602696087680583297234794311768771966377564100725863607806645799967645245421351071438173230789196060264591648432761862619691749129455535189204686414944656597703463175866262703879177490649560213705462920486493951917726941844694503099445936286324799057944234264431398524786279221971493820502695454123160527954172891604528909838468634610480227443595787185501210972637907577616375604918419446947664248443471049690485650421661327750256872531788389517323139165613121706636103835825397609085115311363610927431156508369252573491651047582079686079183936515205887122181226412679580098743093992009865390061719346669385400219821540805184471660444412000501715418986892459389597093695018973356690508618192783277366757260706111668471767862927211210231649015216672755222960047945872058242180324286755152430343578567142522902497188458032551767724647662414177685748320134770771692873132402316494289172521037118640049062429150769127242460664125142557455358511787022868510230378515831833464762246414497039944252648719877039472497976182937252627678964014005452204190995307060297181663618859949053194448409094890568156591215995671513330857130175286177180248801747646115669486818639158310499316254181525184678781864679437359519458451749126448377580347748870651261476290999870256188851900501611403249634319025920589183388486363162975636937213961894445756737941145116878063973951696944434165755001374724102411553698616399589940750411741756449901327091537855299594220570535013773155683798756277848656417716284140602461924738442099715727095460678907705955750275420621376966177808417957471103761869722081466730478818268561920487066862604626439829232497475099949487698485903462771894777810294958122709100700351099925558789980451761997675722495128162917788288519614324106255931022759087009040940171992351926324745364112531892429608149951027098866591705075459548813528497124406800834708970218156839481815969758903925866630367835041160702592276850259624223634333273232883299659237772136054289106541746471340579358457909548769986918939328316745387356426849887972147211309084576717732327386445515979067650231750668847289873743425750312818453805856852604516181620660346911086152113936444370448876038438661524026529355905443779908502647904719983078843966826541541619363965302447307229008223165924835211607658542631678590456647669853359230747569314767732462795623663502061891704829017489373864732478164947453579244577617780101982205413222321350379028360739629307227652611785994710318340559178634348637452405017374994878424370061229137351668690661265216614229442028380186939728482492673923322843978943741974828605362756746268063326872869805002956131055293403129333138250890842611154256972755596561308252199413925541303540345200473600732860327264767940587021475756990495009082219403076840006350125213057980158832971761403337504343249957418340863071871853803152336613049537766312560853811343668677843178482899073686324188376281253200814628719917881209031014192117821996404375742927831431085215640679163051219001179910029717390370595242569313851532290396935196618194761976313270406384956616597214025586993680891015932483957353367074660767514421080883406455898454123376157326549272827456642784197710500216406508457748339408885373236666608467453067400091181122481730743453894378451799447701252368886782204463873800304104951428216702350800101221573842886381342006126243676445249334639311103783592856101417760665523172437089269618158522747323635574851237926620553539569580679344734162516702998128794838643525155804121528971712193667854983894169343281694575381898193558360165020680602468184712024593088279953799835663243676514776059665238448403572943672370524527046671624927414880373726049245942454938992440576520926779559968571932528871939789571289210380759781809297339334833421731093700075276718756509789431170781714028625484349548751977759660463572461598696765202572604735425349758441129007918678867429635249284464389020691181817812415929061140288075343953481543420729701715186673843948495359581318529776181614495823481892914703432633997123341658952970805650212241818202649753775685049823785945111622633451491251870243015334812411301244153735006996736686992196892769805267824816135316283779383446974832576916266655032207912983787414902728372725360743960174286610995930979022383017689009114127753250202975917829756711058935175558468878053675744772944030724676639703314912684841114764961675911544661433131282565589219502414460290204383584221962530615472692192625240840094854910311000352774110568313879703704439471433585330280214119601252444418475695183549820571094450862879200664260188930408830752939824160292336227193332994004736551712415562540656197191548975210352349810862343860393119760366989202715060130318977690505950692290856957842394237163808653107322304436560051080597892357002584919477414853177640986861815460275153417543185985261664901810178951526068951001537557608541923790452561462166934356869820787447588151909808259101562898892332477880541919969546525891960032443758171156079470212727504081987679566217059358764000703513094833121792291314155314646859470460251681151572640087331404765621422932368870617899841161437917642720981208672510672906768647850228134124514398501738144235180065620630599560898729654462616502657445514604236048301406757605640832314829868103822417837110309197766047000040578441510202969543150149052487769064988461940688330252190518046358229790719420820331124593260291083809923517424490086191936984388349203035913178528415557727822229387176961941279217273192639880590889880724240497874032894483461512719841882390290574708962113321154897142863736981361591743731127182538440811616026511850450387331701691384707332042094037364814183234574178058811647428223107829818396759006599128412854403232890311902097464604548954467410944437893377319069992620923496024570650227842138881972705297522901511273800991914464189746336678708839555170294697785466538791082836739987874846899913528961889456067458193039225933512147680521667047826591850255644854499055602804785997527077438192749749930844467051636021199247613391257072041323898592793461337879416835034878855602806109085748409681851380982058224804159198405221874448434134309204490443705971144074712145575090489132743917388888235615965573405833344310250383548205125428563759098587607062407468457812935061798895432874175862588799541152546046115346891652418713005462605381696122424779615454566142347682448735613699394347788003786977368215754108690954744164846555917377981466801170349715547859486074386570257146215090341538675069561035630861655467005223268465975727028667767286566909683227943001929288707020199833592764854335498359268421019355928769563356736945572302387091603749957384598298611787123121372113012430971305739059414296959126530998410472303266091215589722722390416351947899493984574011810994185858541392173823033953405304589560788964957998916792051204044870550592645591368482450463646779675548475072603770588196350362706112226487290998213354697802924813220051460690568554421526576752818965658132411944974488437141341073793839878733252410608572419194364207093968773765939718742529665685332561203875335006177257951279555371122663465032608897652509057698107413515296745665232606370723417426933455187934949525445789293424320116697462459936811732881511607262909330031739708424309997280189445112374150746366727272369305316667271643819656530226808516348384602924794057197981019092498407982624939558604969425526936787323941527058970766001170142825441787397347301528403714418423584275909026090697408098327726366425830887045532133598391132976433518955672330489494218492137703263215056516230077105978395760586688026760596235254151348338080574168710159114971565725929620228567469875918449536009722934003405250594782823653299865373801709392995868256778304397929589438405564330149017988674288523667742922637849342456255997987766796571798794891733481498660908458599819707209826728593246711227096317072200395985546094125763214839406888200305076000411140918882425140464225852698549259531524306673878632781065792686652742025419754508939982925843391066658403856629311225363784601417277160519465387219812467124934678218863976667010326443612529144813279417465491996179292069803318446840488812595746272521789103487698001121930143149814818844679735207626161321560242978754857740660848479316066311280766585969180247263960745713107023135804483776646416619196297690819606182534662268026231812301501351790867368060809289397119639553637102191769508242005627566461350788956720499338422660418330774489419559348760931363734645697112360525366492135822112741565550973317378659722135343393693582726608330759595678280804090405463864562165950278332954768957628710937250115784621476045545980432391567150850964084918820881605155388811325671830223162281101331258653963740071578120381640465294145461902572312701713085277153423670236415766738688364065961429566835615871591260449081590856851783571322234985803889289572061113143791757513509469704348252081308404422912940204241834666834424581209005797884196639584211038278980071610389787917395812010324037651160409970416710362476964407704142833263160713380266770667418894136046502614676014969470125988246105992477828452212699187096212209283326140899498925735905936751821746589369361481707829029133774425033842405969383881289930981075201124350072696007927236157520721465735551808498758221715282806193582755457573156388478319372030152407064305377153825660180018775705132024422169389817064465305316584665601852533143553893835712086756592799464589806741499796077626760437887927897127596282629912819104822142133705820157928913209932367700871349210930829832997273604098053788718762392554941873021476105746144039675229521027298755258365840851338505955759601152681705887923558014149778525794786155358693962433366770520061270303489622757165871018022292625632286181747231780269499306269626272981464154699852363826214401350025926512185594272772392828495276181514580115515936877051068444755745634193903398230972658441074374461515889588466771569762363189769310271550382466726254138497788820859976760808465451741497020221689861823205698409688306623141758843421251822719177655670110514198070085999336519146022632530991753171079893822287135879840468681518936539872840884243742684355768626508211346268086447174857652785322927013709133822257180227217897831860547590308290475198476553262459589340629915878573772303038581267480046504796052732399948716218748891605446979522739012022468055632173738799423582793733612090582001952676710385909131388945938576540577314328758226915691388404684035160311794534253511837175987203880926593156469233407096620652213742314018945031518732792843433555792786808382630077733566338994151322254344019281740500393442640684890143182252351180851045171030890551547549121521729806974559927271502320231514807792303417796583831308313536185643881353576264705546525189453732806572605680832455328529297636107190974495299303286306104125131773828811894414213199989932885825666075465545505853841709859697384061981223679120038423455643355042491360257698729000006933690734255963634513211348039193536641964243896913480400055209192725475845222297454380810640533711458080176549509094195807759903497516693481101479728181703623319863148837220984181760784257160224701378908066311651521094382235991694422870411789917027710038019652635491047985388646407298430007748490435260075795638384507241917629926666981460607374447703238379523306508744531894864117504558915405259412228332962363683687021885093496443370191529226856149437335615177341257660400769387683367121497245796487835080639783380527304150066305005746386592980392839467256568885181461545217457639272020846902681929325487002431534718143829842077922785359542909089975369542216815260861201207420796100678337167509748559935752570525258711213868697012463194391497813610371353272373343205357162299984455719194929796244595548581029792161155144145249005633322508993203466357602931291687813698376174170687093447334015950462242842812673007285112239545774238680889584237653430492931195391475837361108629373809258524458691244745416904591743103456504014785065679672938863086142326558559703560699109108879462395524016887758850752883353912466260361326071505577923232732021252607806090363476682096076022398368708552551021063595406454005848240659078251604062320863843585406637639640974070044912610086785424151758708136688396789629695841286148072368184424384599790283331257093060335236271987661358560549894513476887114614163943468265645511357529049715708989529290797551756922108731114520225165119835498275012696389434104105696520566980386297535909975977880508656892034293482088799154169785204280828858837417510657693068972125508002016975278770285545377935208500428570548673047791532877051495013332838237221441669495045680757032511288281277628584862907061694363688974463146461044478536324117858033260151253791471915577133341661626927326640572736200680985524809631663358152356298344228698098389540130095717425144820122128686308953093552294130315224884834338194303820782695143794603154337169232555893738610750406518532811145251814005316036760679088955277726324345817100677679711394759950806196365028396514082152602923349854958836703745325178908790361934623309518068615211927426170569588898405529383945736637542391892035494363953792638421741558687996690928146006718024302476266211955319914012505483288329749483108239722347907326056257812507057140159448535826157625857411598561754540636888418350512285719060552396825186164589284940489354024714927687764442666759297797364885141867516832445595603982129180530355640792019085407596966430421187433145040511933828083843353283060856780456325621969619416269777840969732349553610230367019606410268574966554973112737047263621037627523277637649490637709498665881656650502505538839830689408476679488592352702192963363276568727373940521921652723323820080172355103221712135865170461100915235254479190477364680855668456823419254963488497259331293211728114525425137913794537534730309651417427912459712035720583180610815684215810078536892492682065362188862380441033008635831436180544626539391226648883658921563886702814293675867184899841918633257802518356792820817448956793466536052991558378467696214109073479672805320900173549360493904113532966788773372925426862975250089251913476145268991584204636521307419262557056148927473113468521964921785340983906892128586819334731530731160461084734067820165840816173240571842125520196703635955857019749232394105919404160416902405572013144261885741941825826370109865587141428515810101002259353236067589520757278262385127934185580561248911938596503526727960334255698015535475769168865047490074524173453483599520392306741538253830212435526764535400494077592031502425795632445667590484442679359372074571295854011253268628499552998590495124738373432032594904559479832095885657675201834370013976850625947553736939469027442295012426562706863151885946396671457208611353433780346183280038556341525349916737412335584356409133110160757552764508218716800976406861665846395255100178672475391087139067711867957459215370800328581309847091498290010449401654737004623121058160943557164298961354099137148500643114773801990453837699098378588124626020428474797514645632019356921866306958136684800811267031161494570337076794645485526496226743237830258051880974565036485044057305995516550526886725506783182330049796745484435290936827258997133508532844489899459796256377500445248570487764014239820879168382862557888769304423927811888526100042318197993117389128431573097377821714149104860732068954171630162375520576069866530666478372717312989330494685432491731772873757073174590382909244185340458027701088275984279839597823669104034509850057980335622904378280804240662043615427498451384794063400764751101020346701408367840875684909665415571287193022666174801344827409887097738010461291297083422625825913802225829548322625461368163572118491803684634705942986345665277116813627593909956776099928636752960059894105060730424623532077933507325831348464515689769628831169204858106982343664451072674124489923734355666726148891816613001755037964148077186913547473100113298524970668012187982706791236301192684631959515929664734032610023974888783156839608296027077504361844497035467308281724795959385546765471138469269539881566464265044379844397762438575570582145408195693329800169878749862961076862986684562704579989761974349900793345237648532508211434942648619608947496754431685739965973846342412630916102083419127508086154672457885612315333182142254751821078524403575797845959195036199460623743778138531378060298862622923447449892520875099901682384438635160233243728953503254975352892350862879911242390045727110890217850463788819140815913454701391908608695631243336974883473533314491168799526225742201631580750099166890608570176714731386687527286863170946036428733152483913628494566412243812490412452257193916700842949084185479956017606455334687803318095872768020704553244746391352207565869579704295669953562416874971613968353721684370472747022137410517925899855254418968598595716534232372730771239852892833650281460222094911688744531083923525071840599491410493235597263827201833254154205755556635586482016315871001182568911088276593411866220319947019408993817446142964385543640702210759161745334860425893616624218973454816839451320458703023971965226670062156873847444648959732594174873718319256559620537313913208946414309998004125721147801170995082719379619750170605057733349223774771298234250284949798311010381154906791738180705718065828308857669919616648869174339957032419437301071192707556770258677014888496353365232914465223694802262306739340205719454726116557795769765730848408402878010507703749614077245502399550069063333659948268709216124470482089458172118951535245984125539936846272084466939646464450157268370108129998634246071828325126210181695682804359608920466635997859554933913995061289380160480334466331978416295370095940623167379235008277736005702436247667862654779320995920386141236472709494516331637810506079388700159639165110002235111256716340765698280013808744891217429552094591781327188001818356162774197132008523673769203125668274190656758672785519188079584538860087964096527838175426016633086968283856683414382596332550796662934570721172150490954119972089977461595899310769798654127183098520573639143224914745619418727340671726491534105886230209742975004253615640809320887211151330633439991220396145114260349813945359942412664195369826623790048119210873981354670285289667879347173118184501438212969818748083876282180276516130676213528158257607633001260261179562474418451808496592624881476648303375510822091042643184368367479129530475827604299331795802507818980660176982532260229850296005037405123388357687722976846150671959594106394035881140570801227353866700658157174348318993727747286809208828035631195731641390650120613942614852990029511128501271745937700672156431607132022716617206520354481621376783097833229412472807783033627157117827029669479191152979361723915630845097746207670478602875991813722907055760279710307143078552143886645768236644724037291677116654836337598920173988353323561856670854102315146866184796964169419946509020446635627586196928326862386948507837286650294202229501852950568488194460944090685107985939195779594826056372718811191496916707732711398254240382013151984718808090441335974168439952691550868222527417989311778589641301435566057773661577173217429660303682198725140883274040855998366354295877655940817855026445577788438599946355445177484724231274936470054323054521324240281976092160594562271274417522678182590241730746981136907944511324519661620241180445795572129455212625252718268678760536610026877077431430119190973168824593986582271826339062129051010771389474148991187297608023825214887638507719994294265100444171590107198389748567918413992069967645196684089284594284358027512632836687543154648199192380067220394137613324373373682253564841956449980672522657226489842395507284110362904269409244550582960374920140610490539990563559250250746806682414754814495013117071177324547978260609170136307462305190255223266190235822886217186892770362141585358648769139201571788204148097572286549838184942646562022815083133803397643811500796183780339209346169235259569433101136853339620413325483004289247135229851222819170163755726599112345563958472011853764088781588813244505595475464731238052449563713132699373616487521521852955509339511970148794510412144018657928872589243422303674588843808388063122543116770503863637490626258815746218814775516566932190214921119139937502344128513184245050437912460145177558416247089294029351616389739724281689790954864307887842048246894731289646988627390516418043428626518884361349881262054005794603098757472777010763747246748891565173376431944483051349051367808190060032096121704424988471867629127491466946952244872637037809749865522349488244588249329196452706048954922827462207012296290461229588071675602994906553980677662888165106551568140780949641598216072392133331081751712110926954676141076536366116984303891139462555909536367398610793269779594532711254420152767474380825884514038987408538273948314469020822844811888049193566948395786471063104421941672187820237010115253568414413658380249483666190609790409802094620445970415663273287420012882646058238920676772066436911638171615072917485173405273633650788339038232275691423097936232220616785094113368676881852303088675808720362271177477006369837641046761768740932001357671165775486032392008881537495515253505302913505601655192965351424309395646073757918662549018324693754992354758213387552683001081912652129737292484012413315959021702022996539162451300706718056444527556230030616562950524091064613315401028767848781619741719158708702206303632965685916679390579761908871757526181716054460257101174018427733106468837165733365656483200409295241154772695576467533614837534198761550930181199979002357162294382695374310588235046055156392612720512463039283710116368112377874462038690662309349715033432105458745247524256447758395531372356170793701049199228365402562446439854787268192051680901224688709805121191786875624026210720165017590467664711003264401366676718998619597089070785518479957515689640257694807835366406134669784520144537187512183707113469507909088475584145206514404245794623426489618920713926088390931725832727839591077819808017992757788919768118819840820247563560873510236347227439468281267904884007539693170113763321316924416912910478515197409789505719024943584640711786405770686651494521189137829329505062269735093837204794222470009121310159460879922192185834291806822830453785625225828324879359125475897289928220199931928186062785640112896052187807800396204762219119057041700134960140562742425090073247084125828842132073093417296604184558054006113385655536674158632008608611065223672105416128718512960371237802040059544450240897183569905772437374334922257548766280193977998518198009084597878757739837882364453267510354272932582145904632254295617223669477964321995792956907658363337401334939158799526399166694167201933984737025281366814218976553949440758271313296956809935454322566048381924336124588792333994798020973173892132568200019728130093339612896099835306258980043603645374651997273376188793118930433574382807466350441612167803266015776874721407807623478283271191428460099077639282647019030376420546540116875868532020082582716531423615175211118153468715749180769604856905864854401590054946766882052380206959941638504000151500901070206324046950530139885764264639334127712668602527981614580051357705102157575801732691800801973908661351570610804770439001038283000178692189525848038906158309905417897242238743909034231987937531344948041976431111521435782574781066451388259078049710769774700766915362807977021265275495482208438028050133681396377089171403831567668983836894880097075595881567402174184216279747163171650166442337784600635139935119884482803507206619458290651549619697394426428821706330677359943139398403914878565303847808736409080093327745876326716256348445508467456414011877703497199681507410279542804488722672143243413374531626451402180895458161219108546754919464016753923594339959838130403464939136616126660258744526790345681072176727842316235159818747852092077237447116849679058118844697108208719986899815994336930760629936135639136545454123104081280440481157746969075380485115738799229574106536443525527512685906134342328971717039747496423705529798812895486505287914376930998491315243625116523113434329810723706075990785415939470459725177877060213771980949009661960721549942601369279558220356561389293498596977638244635405336180820372277108748003736032244856997992690898889278440298111434488235789864214221319073266535325009452193843447462373739983794262409525483947672966793186419011092130009798787238784411995013809206899348918846642768503192759504204471517762219980921879034089536249226781998540495090617424656823475466418209042046631823424482267648628073059687955408859515847303988822925919602148103376643120616025728401474035320196674442198987196030350528491592754968050070320842049292621433579839060851769106353051508279696461088656854767730413394747365845915082907476861239351897179591357173949450659055231765624410267874592347617604839728378113539466288807571566031870437627795853904946389887022065478548137204034499477852061305659482442615422915486396050941684808838576087663990683089338233574988599495952876902859408712761530911907703702146270429856802032166340629747354853681783880822965444485919289879311999291952409920936960388792018546087466812927783264360013982262466530664174099310054021728131748034566879581549851252793630064004532142951414752096907987789121483716170491742066528506837440682985988574401687368017035218217019641451722443287863279747177636594663418380728691248328100043639742307800831121414869313216649138735926642210718525941818427209433992928159148395833770261607437686308391083070082584138761131013956152260590094229496773460415329471557130756639361643636398891369708716750546250305256220902990228050149615057696841504554213418382507150825008607903257841469316571086111577993143924661130038032322695463117234408078141875210875557384099392454432533031546058572638383461211007961515635681168602465037230550410383777727780478016190273741068165834221498054313312703399853315915386954632057484385116040045043294150129573548981538586483122664330216225821772749875007743065544811031937785081350753806703972902127904043178125085376981224462977132447114394026234633388982281955790129949937754002578061157348677829935521339978788337555238967558487099878886574429591627600212734218013191834452201816049668356925566451557738479417837762713899077139293505534045159328774617959611716487255804338471362802754747279156672601211244445773286100563524740154692622816655136760617283718111729541512810417958690179551067453929409352306100224908580072298955885635930390396961890687406404743180145837132486938430894554809291960540704805432599114592562636886544073887291453170224937801890267575412669914777494071285023019708081373051481694149324499984041119890083891297368861017563590552615466807061523835736405212137239332215552173199139681460270487107335477519414281727157004612921412301979707240668378164901122291451147733282563477843823516216564912542042258099132298696676281250604995288207678543989347938096092298019569064591964802714277842600724086018897806239192368752127333971394067402965280798299381499108338284037284470761857164496498068852976348997898892210488872491617054395263799575038754747984455576827310590483517376394702504792109350445701667468282588556928187443234349240422086181831752182544085512048557277173901374193051119074075397635262396822547360711355221712501002431006177305935892152173854084334026716567876639739961067404903933126309161523345988135478271107050790115268083848293678873784613709323562606611105244593812727495808638665680640215308167224237507586151917798507127749306647989082057696375818125191180140095468013356762465761384688379933966684989531801485362270788438870309156550536604465406284960858719229095195358201389807814219094310033687846185691226774083317873014479668058014223499597294138718661828809834771951506720808436167719506544631350702878712769335236644449395996905839214171844252552137259591044110957907301952770576962443827800954024829501547132379188241813758222546565531145186908695597069172483441966348669359733394942360361496768325344442708436201406147413789345910747257713244378492676248889592225822456347801166493871581301738644089001629630649417571290618823603359674056127313375600798221565762462515638510681205277639297283579584296175551854334889322223681616767780339121514551881960187281284589487891863306238811658222204787128094280131940596819579180340392814010763851400411455322854581761716628588380455705995954489758131078441630042252549613067131806985763481536033692058645514602723105998320149407675623144593034987544233744466719730257497419348208659269936762080011550993503006890552087046509887864538300640760222278504601441269623123618817048350106700647383239411953059281974007076497919196301146612482465472908211690858005993997903443345237323007704036109719361259074955085869189791408257014861727699042654005174524003826885229924598610407204218032862407763583445066848007408525312122973215571213060900430038025993463616494836137038636889558565948433337841079085107779278701107210202154823086246455464252288139110736542693580015284962485226782894793693122534802701067652000535067618371564113463926424453724409410585812536736162450304889647138084622261946021561287093750709588945613195510995667161685876243984539119963311789382195409268788316602300477330293281804039817755992248613405204368925556853882808189684047943576052590963878833806729860756334200974102940262168418206309146471080857909805989120878065479264317125081331573536191884977769328503857664149087289206674945193226360346340578141917536676399046703620027979907133837856081607234904360649650240363144097861826527213785827955973670729890966190843733329040602895432913328025561000507907538202793050649940861896990437762147761464347092523765440897095391483247153417975130507266613116320919935605530590635735224746450338182052504692969485418749898484431758172442029597132578837202635764072735365880315661354530276209212662956774636122222353217780922818075395134129297090061602560053298819159640102529557935208209139389358733364748909836905020319138710821620357066413170776035152435954688518268306308194396706630692077285413665572704404061947207293442569596574290155860549647692743113248924174956947889341727767604036617000863638768288777455143131016378104354902713730440294425733271811892987122908422601906569190304934026493212875540187232843021564696207851917437782061062177698987696742198003196909291688417041211106639435124447440472501930441598423532300848916076159761561926975982354053982889225945906397690674748998953890167814763362316634141984034324105717850662246993209836459332806098857311636488352422568737216732567644827367794203963478377492174346674504405072293817903013628180235421762623556488150407764140384687445289012162899144845841512688995158342652809542369357663545442394157108745900178362939530841847799938018455389621390663665591276542451268725661801832941727112660105888397059713187241855887966509785560685910515689010888397610656192867471298707770027232956546198508213764021320615413937110795504249064310833734760782071422395755786314089142308602602896768493683757062477139393057221433211328641862622995822005418630084984632723575824309878395312187197198532863377300387876032490983796488411272243858353144379117187554985850301402599288699062585982983918074117801482422564670703357368263398502809232210683841825525410074982442962165223901439675534066816698754251020082947118535467310826189336152460400319954395285983179205681472392748816422125788280098124625607389545977582899597931988314227977479451994466953924254597473762161276000881118024281747063084010371329143959617055929494330795215939932623053327072986975128907359117572104785923717505508899801034314105478336121124982868727537520668271662037714289920831586087016592865762295690705767842272388552074786157218182927948771038900496488801740919255315435190817121945748427065127986412173164903768883825855967569372397203107486571424710378527505659984634046599675819974845061467729333294580808137567405640480721646533793074274970604754885004065583668688803544613991048770259128352698705533053145455111676891012183836217521414389182781261373748094112413282776943249806007558691212208848338290941947721924622728180391903602726667783116264915463195998256433694815720426923577866382030591911162880829382124040513224302999407661707449112903877721299639563377990417715516329704983186797885748159607382862803507178678728961847791514092872913321645062539022514979307926385677753085725318647040442971337736799141076823401027479710757479451563935997048993045508605640504986937623796913989703660019225826337681341707073177681616683635339812143615963687721256247028044309488077158656268061642993207281819247775387587019358454773540497364458422163212065617037859437607563627094739331443308154292774483447606248156425119337825437919019224435156059030243734647704355325760875732741826887000782820548505812050575559857833431248409098094183325715799137084063186547534682012379432344128052215853711707912210465383411889517699651696096810279413944314647093313061648768267632244964289855486974460494606258464475362667331536025160653687377702317521042710259468160239473980518790344357075448800389186190760348627499462469694233224060231978117595361628363049034473393270831278894457549167026506868177059557807606168474041907193969417444168014107840235758672029176865925005234448315822990135226896748995451254273458188493239999515028353684748262118037968232792462271615429150746872692515031464864133515975554296421715467337535561608832317976112731947241264542832926331351660191142598364513966271195754754487693982633592905073151713079724425096272937010571834846629016481460904589553024441096785962573963704956884879952318073017917152615363285587641545387274280827514743207219632486319067947848218777613287373958791363160360904504544346028732345588582265060364889598602201756513308908920332223738242280379020544857372814456962575159449488078503860477406926396133976073561178595671038487402486381943193550042326786015653714792844230156649664109693269042726137975001775505262597109821366035013603999366341561178795985226093617548550498769579948994853138888218986330191992305439122015128699132411005416263569939874289362885300124378070358342198266083132264393926675056061212681114034480891752277764552871893165444785997836064367704473729461359864542089153719640251123368789333809659186053469982561349106158352863407706154966030594748572480831155215572415930198500968000725873337887627605982176901650628905509543777198677213916247691915531718278663446391908459307487484002494346027079927686831176067976390029448404077719444236635767293185377145349946023369417390650792921657539617177406740391873056328985338627254307089863891058595102272784048666356159819153707713911944148254938274047521132318510136773703556254120539628584758489639449773251714985200862012290994827905559532944555523367321406504295111790228426673077105929857882393463877790269894501919065142890928754620382583763863090419666894490709497697228251255651860216581121294313044353911373659327635176393600800722256607038942042475806121562976816568802645385878321207591173575725780271518499923377770946384743830673393078847753000597256686188016909035881010089796072813279375411504313895275136939367014040924450818346172939859488154844158466088326724811857008843205175296751628176343203315279394696853127285020531872154654690216871789985026260088692089993637340860701421180246234361366383853189969951543226203640785939947193242780436094703249064269115973377218604091423723919472826942999177785081687047344422764103381942212959738284770170613298997652261006720916687924329294823605608464005049255444198116297437156398895888574869345815228758057666606618163541208236757058818376486219641662624280161587587590378833145879984982143761883706914033682051523585662259249452574942157811649190448519616873374031839225340157931732869232366175861777454211140164520641065176361775267883817353999929582627149081338471980013193165793567204011998020949412899898607568210915550843931982726750012128576308138134211127934707546788864539973658413718297598689407633275726912514930240022930091128646439915417384744414772205341173250059242632687374955232840228648403844675375946240016563742998468745557829430553789233131548378453898262074877109508192730515651558900957005436427683448165834321240516314462440745957852299871199254090074064644236764387279379026375530630744292740566627889939683446510262817012872194082635993349702028429381820602232136493064662491050814318728011677326570764768292328702511766801067042317408865812461471758353537041475904495156536519518148384580331208991868230682663729392374910554641700948318993408320834384622678596712502467656727566620945185239491882103856944662098711719230077476941884227262463993320506869266991955342727282403972126603501062064957498332755934813089890883470584212770438577258998924120107080218523797920788337741855151690171809676023072095237616298551564061765984747471230691588440280780859610919701368741726751877051868848436326721065229623713025254963097472527730640377096049940689081646990415356120423830352623378830880663867633759193709629385062146726177793437317238770386461644520591749259206458254997576452559266364805349539158741559335992333547543544880466530012828692246351897092707234160557920588832154781765701658240525855508601350724651698975656211832404057892743965914620609878854984757555294163117224382500625999271630163262582980899950657800707204290021151599472360930559340406275378898971101146092353786286558890495629089513404086872899943921580308459171211641391587208721780811622871904782219405964486651360684106276675958506900802162848394833074715707816846919162810626214327240119724872657268917909832453534539058449542962106228017932359820464730924926222698914670941734056301161928715498771416661209378443162809222943857623102908469503980888615828898068750576840015279148284597295710076463184281095842214144976918738745968046647706034463392629486816126157886230044546778683821023301548354689949893354243256063425392551721539006600354209468041801526417125861903126033698064100651991413108670389435217989625323622167404012464508977708969484889344931283657892788255413226508985346268192430466113464860998267011501458090111630971732818605845264568825404931139246288582345135976077327828215341280437266397836435019421168589681986032257202873223640355908435407439173748159927019142406253017818816213974479198121424677794430393773779633688612306485921304743941364256116003060167998941178243985828653543020776165122613187688859731052160269281078656605677599491189947771342223479804841520527004012890268166728410640461034031829961775127534172290076049800961919483166028683907545252974057181830390645031509538478510378909604136832751741212259095405905616940785588543985312996751669661298619916665169018067013073431746033945829551821667210766747804105279170635227407373227682153503436424580415707704554557793414945744242407718006520123238756043879900950138365564375636985231594729000955214645473913799069794694702675442345529495234133313266343801335090599515578212630122108823916456571841840558083583497337235607932349641115739199097676737694136484309912924626714741986202523382406463314120429910422275347453504134073438458926180873884842460668264581120121389748311602705263065703645161090909822665530620603763661473616575004712835547752461037773089128623442395083869056199906953157650787294857047482885663176647476963639122083430844372989989121478423212183236730646399360644575991452984573634907423182275455488157754692759674269852781759272159379749640461312411336219480600555883797410488875990724943315115279356156754693142908502189584819185834877057666884905919671435015667698329836864260194927260447381885676822956555819199539845714044599705275016722551888821684277801064866722430021705158476556829732440648846140797360305755251012373047754805800642592047781096242246199926053775152044124146900511877729085915561625986026663488792320583087459645333281374326227528241656829887896219413753734502353295840592726456539898392724921010142291963282201560395393117047267304518525550038565864695431154514703080406254639455357155605527032031289218008541521134506698455089619263349754410718339925699298125382958572187459896333082693690112459321927408085359929770071957483944772588993801009952329829029518375351682698855282706855671182769251793423165512734325502872787067485040151908470144045069347779705892832055476792923687919038252767259054356472739152847428737342636028270967824350885805216077292094115361261358962145010335535382675835480518633064873805067041313542595581191209434257929796681698712110527448458666241107298689210749307922247071527828646294960521273067659555642621690689019866170016252184667529114232840684613086688009098285373787173223675332519526843293633226535346590239706643600361331549749680491454656594408644127664927652963058231374398390811182722282811022518819804761883968223954091072811537165935873898826096353254581373617348111919128470315717872039198273888946166171694390238420015312758789190812953320168374090018611030647630248161980109835035381758318962937473827693340689520470594303831763613942135892800865506541605243157773271486399148357476928726380295277651154883151392152387300637307498740415304902191973190365462136232467415846501349123703302304421961671461815495528936584578491561909101734013595813238666051398976786477397296423835320099042539891280479422632413231962464592505848887997912691376921820692480593029190876434026487775562036627881052755140813779797204245147099106728208616040152519640682214322707231407003263036274616827110328752686379386300485109366166569623063853498769356254032959275318592328955761252999381661729887896056251407643126171802242032951660401600568453463859185404048657149106859635617665500820136109463675587502700616805685552934449227557022478993765240652574288447177060322434114506852182627697858689629543800934323479183772913713641044925366628555318189611043303638795479745131833332963975236884510164785350946302927236370823218682993849208601589629432359504026964065091436262956929693199124337281709003963476219598401358657637613081646348630874689026895667304454254727170422171947922858342929465208517451945820680321989208183415054053479340053456991740146546554464851492873606870081548991594816058664762434439177180501981941262374192947561389954219000239573666486692606451431892395871166294955412355655492578985276739236083584947619810152605926318682332446823590551116035670068372423418221419921650341321977262868594636351668868964849814130842014008962834122897294653058458782714781747210858600932347434599316555131786384626509076207911786694384803541005841183713891877975855487147963935503589485785507436763707924108155755477480074221648537633342057582832469503985416448748152064926279451659729955541688601034084676439049051396409524822346637317934170733194248077133815459531523617829963557685948755021923237120995504955537382790158999885556399986243132411085779417510014598135125554908439292228704884088533679652304455280201386289885361169684993405159961789986686207857602736055099700556091485850610097701025242831458859204932355430268195907462999956954950165103115278453157255404767567053523181469111930239341787837662293638061849857807872218091423827108190915008382861037694506259517663728053596326174127195561733529189603258163608109308672039126294806580022269905857654316172777250193013375720436400587769525901525621491729981753457069801648328302009190288029978052065378109423187402847131764360677039457388097580531073628257625556217224620906881070509476759421353964545558567163079828328740429811442747698886369092108643509852563311019334555490584275629460151686994415895910654322733598749433245626761291743374716114499592322327284336307644703435495701044302323649927666573395757363276769543333331696827162744487457066421627119672485459916199116666063547783595276077480193148512500556500259575947153745529237562321287077539662549454581438062225365453138306878516650848673246925266066057332085142127803198318739946736942403895805303794531957855530830839134635597503374028402796504220253183720035137022039837949015106010541944313134703520772447926823033086425846802659944269812432583121526327655969610451161722624849316949081183918590806975102924880641305346434921558443266471375506471394526397315564469246820473770558580724327164748705269308085733175110402262683340207457170078179967893579454465534662296105209705173705444171544352633196988533713982582959825710314983903652893376182695241104953090140886067383309949595452881689448119158833254194833500503531725547723965908753646341712618894182713590945051107296580344968602918892158175917124304427533448164713101033896621480586950791203536431265522496566981387620182467372942720256319717891580673741969801383715752164379477764701108876929864415645686291005207404301640720731100551563654946356903431603604196230367230385912238973453279469774458642386945297621757090649042372990853234692696158401111725431250938392076562681386047586836191164276434960231612102300238804387438618812004076926621104890441432048291692193539727262885300203193051267376068697062840763176127220415565697734046168086016921115689732062606636994183159271459403001439789893690723835702739959628548116875702279796425448394623302500746203896235813477918648184208499877256382604819563984782221389403778575372628026760913783542130130156031029256541375749989579619538454936287171229307542583178486583792870180731316658563868339642227339417872758602660703841490227966984168135217969586689701142262006671654550478881533368629323994789881179581571467693568870489762461396040733679710688320778310526202116491167054587856697468863014532507225385515484645787556412089408314824430863966490807228512756559982322788331431462645227145686544157622815411490664530539178760342445252389861474451514292613678657248902717921297240625577349597738733145758619252079172257119877746880648157884404354162089709665758485425549039885173660635754068642069742168577820459699726975941325226638359707089349539508436823347355744572241371013810620639878082661427192736580320014757994793200671878184676210589800977714368839248767285236090240699742268210584982991440444503439768679035634238003364678394404179284107673998877978973108703574621802190836551093136266015001565209461361304482332369203384579278611934695253573317523883224164142293430544314359872038928471381282303246877497926731167924946618287426983830634689423110271625820474787132821637893298645133377431149457129566295737066738730043669705743954117998420771144592488061471383482688958200398122373183851130764647563692401006404624367301774062291117405423474896512427706163423263845686990173756827179064376034255436359524369398443071353013331946733558815618828067461050644931622296361885582653309630018023594972309064020449459633403539975486842236337689641655825964666061273756302685346110943373739822297996442679546728840447433882409894360436790227127202472811908891608049391194081237969723236499160487177403553858341907708385236624626513642192409406480843661613389416555356754538899156876107552851921799555637222126933751243237232695530318644203341925370738110132988231299178485051959429848163262137439106330173813713344196378279110875000754312435663862845850541629232371236206195396604653150694559806577660810846221231198081603599399301059213464151755708399156686365395151651791374585051708270011634097416935752689901029156816942418998485406756510471361352121188167746398209889187825997296069264375043796459818374921187698223844565714969642239290286310295688291760560203605315531073729862296206305269545226554161569497441709341169221592257138286029914417932876106919450400948185003445472514203339961604699241766017490775017839973293457957378850964871935584842571295054920716422678671067563667166782038519271097117005311118904145568852461233089672689024806252145676650492882703320744000002080826618308295869061147942530373189653665864405563429073431369690344664941081406022583397563377585839316375916801651893022454552348433138213296343908369104062772004856470122024325125468902194453238240936693454301378451660857329931727960773884247044709934563316013237023574347180690738060866523407999587441025075891037456384613200161411479681192076136691957806068847700297525521696123877094982205663349906655433479700629396134720812217538157109279360281178988797709073434473379852716899669443267921511079688612034365194846570664209906975866840116142101061501770504519000802161668766028691135842144602153892937346587442929525432552183776513209013180769789786921151113022454508176669744199057430571286039209430149324922555432538618640486463733846393950459704932962523642829980422688562172465854198404932587761100224005107010000980262194482991290017422522621304066824340192395951166428261164185477790564335587667139911682680442276438989040477145059822946021974414595362258852259676404028762372164866466809593577181886005141997732628963404747813701212517324395414647678094660246423528252296581609202286898508918614744316203178260370463864203059966124680851398568362379404835956572430465710363244519743030920737511842274052679948087442658318291111717002317437547526298396057235219372515447722677744615601249193476849179984706357326542847435598048615507893586138406470821304591638929819380271844032960878896057908126556369057318260552771043226954350395041347797695685713647341506332758134253479168259967826045501007060773388856194730907414574947980426151225076357581019470571917744588144276489387398904953726342200889850827350891433071735649688336152807715038801856012587210814761416334257238189669590045556727369734897833788345868161386709532997659909548235402057420824306073483534081236245114656623218226745356575959955263775691786862722101202007194275150110650424472587436547856826556464641960919644057791252307738368928727466608728916297186678572466655425497304141868356497537742657263008715434926841614459458955153386285232872653844787907605386190347885025641298536224750710858915973808758325044977089480928578189812997586715408226269875980639532789608932123904710836391744607887777144903315044982351384363966476549947252956518730891206373105629687413549273725723059458961744463685046566853615200356061610421301051451657560177080897465701286688052071695633729374426578752611501782594560528464290512560798868083942744479387052344062286566582887259552727253395543193823673313713673531734180451070619328628125577531596612881253244800574374161463800337506173248814653587334909198989488663449943093388482304840087595779441278213600349089918709698044162568908610031325013213232098688455568270136855694925420794612279698968595339332417080376363894278643746537947096462042519570948960334471510031334658272378730113587341533128413187799933239258527530389467171190495903121859784140380522120173053181846257580171042558832916349460833545192751880222301438730074703240259699695870414502546627076975358928300807217735090992916929253949182213338064566685026409805980303260402633220973988999900788008875162621930077373089465662055067756567051406274333686664733867505140719049133402021303777203144904233527539061439947220119274276615293684546690105814282744718178170218205376133934628934215247258867018902723481662076970774339758458074713479131952667267480896071569653673892754193630146391528347280267129137231663849513651902682532612704840280379087710475139894348852047272128219268442453863498164710593997764220983828206380155961557943566569675649351060018659627012601811793596532479746344572523311664730505579656930998136423954061785057219851809827490632957281101928509769796193601799569511840294790854705397981044187497884932549419652069409760797064176110173502183963146072172488943275911500311622009091910454716397711340703620492008445938982729341277131502309214996897988727794163659290358306282874186395251555634376454363306913045981339417073726528739782134616795318875639855920638383082401033610512325767858624202330266988963940931692322693597127698352681537859654230008135560470648014491938756028274904395253135076204208173254205970797680672207603158576454570572367983249362604819947299464013506769503063077581684714746925813569146520854545027541853612178626453352880531905119027151263016025559231905525050255841869295447891272770067583570793655881933502379157597661365770601703801672369131321143356041296827537304463430645981588504182205219152473673766493521303041667587465957947862170336899097054213330211462708900922538679966166472386518023263800238298907951981979049956882234352864244756491532363581051697161683096046500691524931737126888943716253381121532091831295438281226242343039629591188604571922306615780845195912165440959706832035614737220585847573668120555679695711172558998876036652709883324858266146053843496105372987945511299634039832887250724013451546877157751100960252725610334969226656593158771836043289886928332552601043128718649105534029514484130979736656850273948236067860701919690062864621319576644114588675638838893518495585470298928780646983028221292886137665514748631166142102907329076849303258066568500795798120550623302157131259517478897885860569415517276686971360717269228380810257373082623064635063728314579376279728955813066029331131690784268005624706294824475830245063419262065054755785736353944191663671199791601488174234647753539239128149292800018865300540943173121449257368839495260930331216384807687286537944654220648151800138003689434734149425735292060923540775688119353359781838606751945576766909462839205973777714436304044654805922113393795431303580332708667827967778575740120259761741056203555019029567273059255031105970021123179194798928373423248619434252236465213522654359749138871652096174936784358721569100140549798113718960689285113350210177920688498485549218430168678766800113580736996411328745611048466760822890277570768433564486249366141287412394838663838964869288525814243942073964725430641546680068626379948633532498097268803149550762396531114390851686835296688746786246291207430050149936198899191386960612638392656430846899135957237765428827192441786577264747387890705081471158787001853077220402661751533173689668623816926927604104113602692603640093540820866865454781372066685184749722803203994181590776963127755623404408449261244118556591393605007876691754026732057563171954695949666064265836325264675289695503646168559252498962876258530190791084337034690136013010496125430678403420373761437584503419136948498646087098081546245446250426445139638782562022319074157783409824634534711706852702680930858357277974493259996693534470794330743605831517925444990704744894736122599386986300453169295449528526921895994882493095419373853256167673014706744879511705202511873941903043482401640484764631370289608045387766998765882984893853447019704986904158619540501415054467654143199108945627725876934609335403792363082607110652524038429824830101835630124380080527006938875360030220752979053053570440357155830362428990011229875147724059629403454604283964927553046287181636699791630686310111043432325312223529519790708427769301446290379994435688342851254762603129726181158796101925924823900012074244863162078593830268841840870835229147105565054095603040381713461186402802618243016198848010369922278704925123308583561847656967602248434000029683518144018891934347124678071922630586436846108239220021119011341234976380434786643039723985587900490432365900839124607821036083802741666832497309479341892175846338709428449341931901445674294106870225533919903678903379660585929537772164377241833034835720928762954058555882876405768848121318764048771053051699249472428432384658902293469081546846673292412422346818841465790223640962191592118625277027302615534778724800908227070898352295724154667208336584108601677370909395681063094995762228886420618004075190248896283842373374384373516458062684259929714996833072186015414254481795970419189508312059639337208960843766973662512386860108437523811589109467042964667709870120198355022410685524791420978782090672522393789441687116825276921832997008940011537711438218943985892440376303426785867623725812421334985252493913187441612990259273200945383304814018524410108548365201569344524429278622405371909500629555041527890756121132842860863639782305804163238175199769484013417501621315466540265149936185251084840246654664891790537071362751596004833805398027468445746555721234830622994302857318316864828078453763868411380429801419523750375134946442878983526994086987423526330747761176428948943423045289712663252513704938990166080738619447560156334065392161214695950893073689533501240613279540987514328412007918399450106103913635948470544280973770042996464915440127247913679299014967645699113681823852418028967383045238351218854845816154140985628386794460503416536054672134780560241384901921421921166283032581815568709334480290914074596926436889384782724795094337916060330200427091554866742040852239892842243067956901189554041579436088199335453239039144236661781737003472703366783437709808436883634279273547486383643411941643234698191127392107692102591093415313907592077841006311257383394585118697568338247277857146585952198337814286160636048125874908640715471813504129374689094879465062103575183752091777036529857146438777723710088013872475809170609986149646189899172435373797709468413579545802447466030568252075269304876701378823238309826219104502338165483235681451181852003951874388222523995770258645967354216002188703374274374311995644481193521617584319429367245368433139028318180779807244345679147898927534983278074594876725898336874743643524894811013093159894997623044936096019030928568124962092722421149677513323080519581372417451421142859492085872946641779850367716318628072812757102967097228129265002305551091288667635332400866129048545796411702271596774643235192991994407591108466498742130294886404173871019530941164819203583839494315517200615293369762276831768112698163147971583524381272669917766119338136764354311977856084137153887953461979921414823015567451542398903856979201315275342328773604120123356037211196442379379832563792053808318138589982430771102451879278978326987250142619400784066977817317765473258371973550004987337063933899083193088845856165189482166310310842666565453237852105951618466708374408265539660505044994290482275096532438801134124869276230722104015802026533383401563618530964683250960743888201592534533336140092594589196646242336376301893691785458944358805916189497342326680171474324776955651559789286322738316978889844166566837331838663752729390530940865753810262398279303466089472762642033592290418698904574632160909509837423771947117946198917090232184626333017233656570933496651237509584477784655043532022339840747130341404518232456758516829390162172942932587504893713126819902868619505828561336113015619440521407651404989481653836794845101695290018614431087034546255493614746993774796172785882487868451640348286509725641340540502292769550438589970246857210000047787149572388756616643020203553983111351279235075948051188990643207505495721488686855663809349000834499238304112149808351952775081462509863657159074715302696420210078704717519765125926964276711522002534282195666165623989611374410727581494475924800803200123720747134337331619980735287264236342781630985988832382845399140506577578649570572163681942701576253289901451058886427675268900640619293830851345076889622523287736910501068496175489455786918697009572942244349260686481378555842913963353181930726889182090187208381049966467001474096129886741141173334635133227033812139656999080033552471957373283412330848851715875175504280936992010650732253203607099858383345020866902533933650719245966720957727778339456140490016013844706434345887678930786514948353654057163318162563831040378114969912627120077548499770833161177109641899240784404082004052649533579661597651260772495961433715079642264748262761399562312626878431704510333697627554188156795117881202400861704884143147216637274347086804612226208614070385269386464736669150678006987216431999115523060229315062131838666841794813536102998301393587793878009771844334200034153895359667286425755190300428253427913823568308987470365012310609213517716172945394057151480434368944654409866951513230854481777684709777690103895088941354643184799671112484587103247471248328318539350167249179197655638123104428011326605856697243211637695189423005071637553729947841634386148832362481723990871338993312962024389553354800703053042479446213979971335595557567456590869250870647007811272071985592524553463526303846536653331632749448574410230978199887620101877630005929063691572841761129306803355496256238450687864964629947101845359108441806688380250224585436824139413097335159374497725445915062232912176849438949280456721914560500229082698845622777444165234493421351222261661829209204282304985522398747583200274376591919018530616937757650014990916322087574106493179199165448456810942846713778248188768641374135945970013606441677619263988926451317341061235230310382536303238257012205120795892491064011467882125992405730775178043578152312828374919767218482642784124598147203949613480405375596293997729540539702208663559496579044342308538164991803345320524464605833362240042646963253988375969752961496888586798832162665359613548898865685551046763818688333319180993164200889864895389016488514425084677186092917841401706874290462273848492240645686142563611488253925491653167592612726817874124943998513602678682965772505225239404620453914243459577866513051926415787168586130384476430397202977416683065086828278432306153081810538366988200663106991107576865436798555434546245774738874363684317424633739830621754575639105582906670447140645516399391469166044678537215950511733015168876427456896966935842758826767364337968951090217301946082864621969284788004722324286161773269265890493908498067285952007293420261726990011754443737128926093931318869924270700146121984224563369517441145023448973134011498242662735051689793095364029168081060917650739991108813879673017624871836689188685660383979529950949898265849582708374407945853078273692692670251348354200650814940658041159880108524508065783122613726113671732112071264373041489144943771529932003487139024106856716575226274839348027774661790351807625645832778431267299748274304079537622876205438165330568040200089134252278618403548855207910710537834509197872643888320402624321166516422409120154446778864995129071873417465527649940315385965044502442827650095018693576628951088983653692037878333415277325607921008425358899034167867362102491223915742770093516285318549978096665463890648284684732370403342484055778991187776004106903950501097411969398193402458481598956078516019986656094692667073413063492116628366235712597160842097746456907218893446151155686819703184980395263787785581708171222849827448697953631243228275341107478645068659870982809983099601842477952866353984409905901940549365008747672733853338353227338278326658566422348157952571127978559840639626364578813446606265321968197560837025327902319384359227692411995817374384205705679153319521591053011401639572569660531593141739671108498976159463887126754370817373747128817954700842884268845618535412281730428723877202991793015312046262450453147329039277980075412607919589861976990390041495264521537010439204176746004730300737610080526775860063960275144427689656864457959997520961159858670604972278009559785683502461490328104068607327549545746991535492298002573657839256689889069896862436574526528024530103094871549623142442489169033119468548320647539936406868227100858764988385029270881982021065083828844199860208177739181480933967849977505490048373690450185146189914830814779878308010566975245324293263855655411096008293012662125816486623267849230348625966915472523937814042808390051870469555469225084791864842093303208014975640767531125794477438777367920084933294052746185699420374618539293045234715727089525033786154962522077647095175907441581073053677006687286846888928924429180021473312523079501614186768050417352024145196063232794940336883456693634005821466774321742742716229489312137535239792866844687622632447006743686063159771948038825844365774816094934706132575469996251790883858287045915627783841463888339911691844010181665542094862120969645845610076641799590602514554488490240319469856186400877979996479099597087358383049977629560084186746549358345295806809031956601528508925209850445920850374001407333736515855907894334333442797286699194495649917949865691544633492758194307543699024129578149332223847282109872406330540117638495798075669836768616049538241054005270407873495392422048722262653578578391397760492905801910053343910117444751202192784674801650105507499875217074467424830012650345254959039482449199683010307057000299643606039519228548242594969319656187334087146422115433920434331774744002992063392730218744908598803540615726522407973972871768326668406693937381975157220430171243952797072359767994543873957336824601391869549080161865476881730437860801517244297395438150899423623255928017162441262148235647348635422934225863829640423952842467728424714786777981698910613429478197173069806196236861699355443095304434932137794527382924324217321123122027573942725707799705639113546598359009059314184197941854928554831982201380660110986411075610920788049965573932808725483694721222484507783666684539580613840765654124196258397045248991426011697128277749201429090346762859163246054369380888597899697657905414539305527732964476772661582834078105014265899354243047823083421133531793517032494380584041607365305795900797695309650062139865250295839009543434154442158683360776729374045533066821182926261289120092218709080281537273516103008749363370651736397854791826399292338400579977941483476172068699971658981353315019983048499161742530379371822490863587431028583730640366806882285438753320267402610295662088065831787741912369018208933885816704265896054518473134742339288309168930018299463603384941917863201118216261039876437408520596732728981086443226162190347055797546328113713190225368488418106407756325798602396417233060763600830545254281665196575326916445688773233681349655443652468838599400311355887074837120205224920426959084976490570942622456689393117890429204466020409759705097086930337197754926000575312897144875461073032665197833129294228865522274864644109701015240042289297061258459816447901739735472096878865037267113384538886386755558858458627127396636179079922151760683063068835572068272129242877914578751397525053557778204758399331298716955619424899744414959204197504129230660622745258942237490796460272433893820628003898378274678073928543107150069562342843165597770048812806620563395594626069267053712998798203137917774117588721521486443125000426741429637909690509744846330577786845348617028389188368437726136686603075241009263197216374740571567943576385356830048080293101403398729870105023819264576511420422588109569116757797332985144846173093090354037200132435375725010783597468140196235304268104438277192988769986623479686489071238353222703155690407629728447274307027745179815195986554515139771371696492483222288497758919125643285463388449179285574826831541922631069055828980237650035329984075131869315543681032770359679228426421164954920039181199188693533073534834107539747582768101424401120698312672344788511283651398220132995540981733184257829081698911772475206170540854161638657634673156491817456652335665255757244056430967714545820290641318269744639942241921771078420100309364421500750486185621965994956763189289812337370582739451256788945213309360171763966588959324440677492849526870998925785586139911030372942220446903465708460695223791195375472945296505151109300254670371717920692282165545350004031746247392716893874924178225467160045925772791286115088416089533130506571335817407035869205362646280027463000102568181913112975842437927593310866610073684183352127308685608038474855514647898140298373809860992241945650572150551362756448593638260443527250884551785656969269804624006449501132512487850536593992452914772055928615476053324454126338855624928241511590231649207073992136448855487079259566252367238756450781060840853893377689862253806142870594754907860283888263117411137500396516150009624126423548210570319385584208501459057672333842896679718247419129382453552069844893565250130445609290359452436635588519419533578285572072476801139731510969408080673365311555162766188537756865185464134181869089679088423529926923240834896362068911555167786935980985649830445419806651747920886002849785938278725467938522073955952551663674392571314617300055348333786168741012385838320940320477448831210126092253793819821759079181007067942407997299506629405698197681015850456661986831153424462869093681026572916887515916327731287632462278238208499170941649532688175991774646486199990008813348413875631650453737294229692402244513878351262903104119123628390680164582956955137985124818317560313078669536200444511514729814363570106430106824863553570873378204526447534560976861671371067086950402392554273831812526655384803958883176679716452940836172914071122281763273810141992868894990038551143650154806553955811278392790449296641127020731780374147014019168866287864111406832157852305314018115333424528202170102247977973618906080449738123078806508248482193091513604061660402948397473187014170841252753362755716289924950431012552908479993239912341670531893518028493141697860754211185607684683453986364577947861751399440267746234240728037557003029479651083499664098175700743417361536554675824164330742341758656718908603002804679928379618933695902673858911860159784526402250602508368792474009434270342770955050549499982198320149960175511232501768138561118207193584501158573509163000182904628357184003515671310072191887569541524031388215992079393137307978117605410462483780684495974636254627683815117637418802282206553256530018874706332233964216760892941680440565719245105844100144405323116036962401844440260334228628437511639481731198337958838725598644814629033819874425321315404173554797801132608700410900458561782435407775198373332305011784183900654901381790301641255465495818198484254221062070156745051559256058385496352682262340253249443733846957030715805995990582711990345464049566831934552485937467530026589499406689151588385793693681946315315265706140309446172534619260630078547973008049720895569488379150880769246440287785782932867527528911341602586545643615394434020904115411242126510177520571745526079340213799563524420269760427115759261933094680149049413320146741974405759121449173299013817975075482016362547146921332595180624682688462117386455985342629573926200568909816475906275478993767336468742429981733089134682628753717107628753757821905055110883873480176733507587292545315833713932690339281872691514410974956235461076723601131845714640482283068957708429458951360803838387966422206559046128219592337901841355073842886744522690392454972865213193642912816934168564131209249218449132413022220013710949393006573156740755630904586698264811672676424454022340094127261219295652671148897033384072645550862964313524017606801876128164096863416179150137717368447123009303665878742527952524269589422755990097049748409610978176534242970452815840716946970790306886641214747072151068825642735449028507345297840738528864901101151460191079935017187355382923700591441940977702799420108903687008956117698584705025400569517699325205377627020397793297341523203897876178993638820647376757038986923503344644774538364580525032831036167728228363069044722458702898983890828109487938367199106769817633685266924683905782959609300954521448603369776494321156171219140886240255240232758859771710594347442382076127296633162768856801402884650437123353521146888764925794283766557406206100481364276575061241406474865518644471601816733603725768318086934593276457058344748544078851854290592800115999160689670528586935010285268271772615321391859241974524083123991872668104530398685644825847466084685314219125999709951488343464752019385898338439625472201200222056593369856365646152252615777843975920184117814713241752489720191073690230136556477927456348671371833454464370529627865124814228740761454901474481829037066750608711195156201208449092982601198304640058842659940907658967284508877914068408992320507828450938623949149045033028093059012213271039265817141326298847324611411868478440334918250332511193350044568014390934681966692533477822575244315681845866840691360716525071129770395849114259997374039020223131585294652477785235594580268279255299110861997378712175071381817899921563664500185912856655140421261945561105799331435043399621205737958981896885370253942501892092752570698272662940322048237955576583360362866172097482863417324129400395983279215968778569154880925142446084137759763792396635254276334945558330855526199267541171123575732530544042527481897258689340544074195207670299056309220763841449747432329616595447880331031548893926598209921199312115835779342476801349895360150941734213157169419995787847200767482387287186136202888145590881342573244052152963546060499334726304140930080793684953715085938015041704166875069279429521123735646372327561449028053712779871442589996927880470547981631002693414330340083319651201215544981599690621357918466558573058325503739900126799127779402505805048712987559989250388971843647259466919636457567169279925495838247962154416044133467877157492030414294735328543933715191158159184532460860549648145200662315494244905620942056422084341863790170617743762685285769280029074631878128008800000445550879827400057077857334167785937836839628419006623685152674831804698396248719324436283058313053669374155251775546999895684541039908857702854484011584438976453495360830849115874853575475288938471968057823066688257683749031936610030234356875947206345636122035407324830013803704754111547437448236208212402014455193676525368113298474128943183480941390631895480038228986602351858790416102163340785918006476977990624778953560467795781886065108171401237464370761352181530164734834192029277348436923081938338183822820526133151427697913603356193411750569524257226481967242551882855146151553546514549508081319897260296124452081833530720231029770881758920452973944965213328572813614207724087865476516876528157303682545260567387485505733732626262614575787322623883166963061225251483164172561984669762273671600458940513964851326360410838761112805975880319399011242652942252274454263767184911088827713353726061691796056466638410539324594729339594570100149498585367080945349271913242311341280686114874078174888572822210273766574377497055651856294045093019090299965340623878568181402864598878623799178378071105949167714723954969194758097828496206382334150473476680515547464210176428056775827111963932585257970322297991769898637064120606773914705273463959193344630557758694961642251433273028469402597268803307048022538643839623726672553949910851152015992631669769913674791213450453519566554797126872415489718382486020010060676018403105901585346680784985921823699868662355210761414483006419440505501933786560185007653348107561308503752694522131562537676374546170099532851454698341814808174796114691121193337638546491574088377531677505025950981974494240348101958802614916859708300728290988071782194804233935776079722743484327270983583931890316412701815781935335639478142153976672782825921795135025701483454483428915417948842560712277229381448383569218989663680987284417922149526227681114577924016070034561885044900263869076743418248640766961958513266520990900199984267861691538638614005341895793274389891311667549922795923983853225575888506806219995348025712194781055462268936180277339903445072578481807695763974660183635705288516183965271169339109174395537083817875680502811403330119073707847011672509228336855067054725145688249729667883981206151061761634158531170597445852011555150498462371043233691137439454489316491058089619619003328745671790127463171082748172208654102759334001713870430458382907783693466519451425901288750686214196553646173973062472402331290477110899073116956412339992177074275889223503466857282196038371647803264115877166830107782384736534406032541730042929945654275279617078245742880702474519590496981536155362224053894076302253298271365002064492160169411546739954876109796585495618208641207541837883594726319790565519323266380715023773381409706639618741579541223269020103152243426553629049234281386223982513676558487077467209040269187047629993884589764037515853397720831035665967702670512816999285131059432582264898731249386147878776571929408972260888783903839204943236110861670015538533228377155106308882729057028599012303901168580582498967034956062295760674470237235378357636856368716699427349936455163983730201506532741111110909730935268746173279157795479599707244792555958590622851638911682763650334070644678974343812342732238587032978830613321501965445408765768305378594430590073825347160841322175837052224915580430980335434621167265962181306712163160009135231683185189574647222844493696983703839122934636679324861429191142986773656782973230407306893863131078396827428135808271109529577737428064346861166411949654860013624605384749910965060500508617321438076119017462410450911866751822698039815806735122614189850281359855891338381435673823508456528153696015069170529375093466436455499405654081896105100079363576952557807106355932386255906617135283018411216640128288047819973139454580062527471243253994349062385467363170866312582879826227594672452767555758564410101183468006201640747534923629294592008403185946817016468161147724142821480261827726376787100639204367846849357663013854792018533250094486479201167552853839122935254566636830354191236106209775340247330867775055385300300675733191403549001356095462301906816221424169104587838265711759172963925289687713855593593989155096336150562660952755865708865649353312978974178314000628861452033024434023081784447204969156248271392601954467219370147445727202774144873489440075373534608841548352964601800127930944544365671189926251212680003826658984547051431896903859617140165368049843696235418586240346041894107057861438807071510187121733365324168512472552851935363907763125118492531726413475394427690020953232445771149765703290223870503437323789591718734258008383193116717363548743115454467031710492323781569003490173623377914857678419398442536232233535073780102670885787225382741003351755445733323307559132786973381795974881662294736897925264551315189452134958553097735504962464878258367177433320385819180332123464464808651993770556875798828657892348012152861520436616203794707894371728158410653899243173906787503262824565279020060773641659821384540570387321082500988565531661704396877886672642227194849143149218854536581469830431067856450571016084772149391573906843246374801070828332827548946965345210601568562579217086259877760175941541044816681134050395588156038376343117970973667554466629321425964250171524512460399005352153555459483030949703352648114190723978104377786516337535575570896820052298421421675814972574966485924407175697949507495384467477989669030085569354119255160544918972555662498990159499000950856420033740486503091398038390073925265611202980208011652398962729322264324953010085756707739020456744414973893381840632798334685875736268106890557161915732958170950761368113420607292141356141574924731438449828545611345811861857350160616584808567752356757703565667213272612265931514818541750076514424696362568506820448300363606048521754699971632760726592224045911744680170654352350291937680419509194839608736930966165155676619417461048134612562471580904856933421618256960096951473252310272855590436885008133222801769782167277434815752362576542679582222470467243856017580341891969626873693817952118824926431699087169929328809782752861993886804934239067582303014275145054378664690148139557875925281823158725219074315964581234947158701259761552972851456203439473381279172269536061273861060323568143314415118796936238450890808902832886597319507134506434693875534871245512565316632971130784395352331183545277580613470385640885447815148611979805201561374242888556526471192338545318202299253347125390681832182849137394185079960619005453358120815616855770022570265370354728672847280165496338829081565332536410561396737461476146460341736746592663543403566247770096155434159305358290632226076302200157059274985310012897794050498807612680211383470580663104545297201134533361191771053254617068026577883836483213599752464160332781950546507560207934837584259134678865981508305963631121935911788901317480227223817403366577966142872836975555755166253794582657260149952807906462999556083279217013399016747058239381011711107486516568469827267481189910696423560256196363277812929514227264819902945178916958824850433432169113510528103640192567616235234772596352867367104467250704953106496607018704121842482875162153585750130919380977604678096905129780173372338322863192306878764934880133907854850245197789565440519052730778091583508879239291937242639618460847869448933745033104386544516423670569657539110807791845572153745473406595392085594257831938243565706198350360159712508291764788129222380632610997645832049163045391566004529031377162981938941897137332605047038832484268574676257311236367739072521532525777096799854083265385470454213772942448321955571989777430420512253371032421862967735471593172053139076500783200041417554403916065826529846562243593131071205199939183292006980991735389586831146989303435064733355159267235746435402006652840669638550973640284693133115180548783440967110120720996355980127465892440883086160951136519174787291196577735824136722661656511252722306525626353803495905300658784118276912510640802492294417680665612693233129480561090795515308201243274216120270892030559360623345402699505635273037253618112457238677109618875364405825575811935781066141378821336959104515956414963050619633178063966927321886567012657012194099088796218172448346907864508167798294058980675572374910639091273669411592836467091933029749584042277618288309358229473496803062500947408114854197232304489718488362638639513192666331440584919764063670832894855728813932440885143562338722771863825850306038721213968228205837007984620872678356516058647653060350489150536896914136133478042672079413185312536393778942310719126470555129496778169916949333537239960815980056331371360762206399325751325476450988359733774419851414594738440085832374982624837412409341562786606213690457227088654625554445954771846344304382448715364099615076037197881493576775749921005099503657882476328180796743967717217724677496309722606901243837861828584210750993990930579631935647379418514291379812207263853313742888023162699889190806786375646430152473211889698622839924880547393485792686516792590150004395563746680381843528081873103933398744733157312421022490148793541535907821383530182811225239264367588957294812275561676395941880710385312819484449429071377929896927194630586794408981065898908530008701214676806410702321192009884801112116742732893075264787933071445244302508681177261443035307506928896788152654552524212939906956346808740371050083080389096210801588816137949669338252286898479855341226455787657362450667097348138257394286748077598617651646084756999096413472693262069029465913164723957868073430333624102196515234502604619288136278072045594686335981547668100559014148025868040847363789806160889135086281287747624233622043924531745854721235909201520652163955784397847283189906473864265123835380011330306676996052463792916998500999392456327058481367739732218093342424987756754723765496500128079534792542778480531354376699325684885134441400432380949273144767065982336417304394714307727485181682314882805589864895882326226364181673408106382928845728913699393769940751267490262800402442552472273136543428561602788433394821144391028480639145687361018042556077994094802335707718851302100401711216980416648148991564294066373552577829743403195062291999659400178032023497842487093055369340854473723164221004062001456373227340309612842452876562674415866783674998608606201979664336994651298318134393918831336859821749820905619272075876103141376406798714374307436683165165085014694588736199701575495185419341374429113090407376967176810673646569545265025948013776063691891152717359273682658631085379799085604672651919943230944486389418227667869364334837263644907954043058616505885155667972735247028221445120626297217814002727739955249712130212932775903723111618688883818908911958534986612738088095128664250440437214671382825410786031889566544483291058624424083531492925161766055537310901985734192116550399799882141838518501144745850946021903532798253395497800380703046258510896165330464116628035992948175440149663160822771809455665341370395970774720798356899400115658742459638545642116283408327460979343530084883494927564673668177288191132400299768214543194712600866621743648413938009236648811916309942527246073504596748294015383716795061637505185704402576137220999300527323351586760497193463147069662975127235546135447355137750514834852252631756649636893158250814801678165493269731290248669481112837226552576356780063575244303110913182812843549271842032908421528636300376715695724245082734870519600848047818220471550617121885786453853914687190088089034662300436769672929522865410448854232529424172551469894797676517410320721626969201032956589982101343128071496931721146856969587819080094883946956825886694456981376830199316932952012637984478614335373395002544616516033738133895703114102488495004135785811801965508971809597883171790010171175797011905558228429326649149793522900253039810501206303911159793424555744718228354434207093258703241941648348686301755616220888128593214635400477380173782397656719105531517120192482355170326925823679764897695165154375755587410779697053331458072588766323906648642387404677450648686308049792337614739306581904043338175778118779299535693818289488819651847107779059426347872645442391017181620868786264238385509121132623577798814675513524203592424274209566574034982292553874243121677359792469511737100700802822510463593004222271600518869927678795956368906029568709115855485216437056823971947909575938642298066990032485553618146597453590130231278726805031944464422215799120580421437597274976855883069859168095672308913912059502923626620142814398384532137522302061148824141678554611546754843844056124525088541939569086701136497029351553763660840836866183281049606126359407099494504842173235521018558697793822669322938992970924967610618970999471639630185899809210546246164140842565033739960083777385809476881998014718918315791739504733144694165628918416774205177952373033293085429755270421563695203111268465564524257955194081126937597853192944152836489508998167282110656401813500428434719276236829652474366797273750861609956783375424943667989486146475570896573087281303980972959520526482243302852181978184102274029151619650352084139666711056937382463918132452269849358575003715865355657040571954405554544350986178881111431519650531834475357096719442920516350443290270854952882346478548404484554558282455174230106620484530383886490858823612395351247016083579705329796798723704187704598405498365171481588768804582570280477293842960524680517683520557167672745776711402188555908191321091742551313515978786278052642719914740070720466244081356349888382227350848021975857712223712898637702340474323165625429992265230280870023291687790336387261864315684987370631040934854321294923507184227664735467502254230527688987851402193483304183469506810265526460865824726183586428467125982095612267003865025942951053742914896192112065738329758609173335292806074236162332096892517667846699176623067733601986021787682728212463095647916753359982881958988577707575464779298351701123089907865319271071633139236598955163698895255493524862813380558405791881243920210641972340708786085705886396742478926981963149536656089867090108624243605781287389142106821549437603706926445422836786972556390916035756802662965925874226866687951584281508731745526058687926266088204401985033046587932188286959535048341004177842134067206997571801927824731027995278393128256468841529913450756313119803778358326608865155818522436060352232040460982364733237200561678798365516463157259545395058369663294996637155140073587984361862559394198348020721683023517160318398021825015821783075423666239268792555365443948869168602034548151023384291343923773689295010769090003224313230190912171354526779278019305572410070713809778918457790307685238720069715148485671513679437317624443398852327992306063559464769805187144212398573468590038967809008795469876758643623555448420924550305157670141926983863794388268597363057462902431333218578611438128438682004549127771207318536397674487515667090603037656243930060023017492969495287067090610328130887732382934170155944971221939654438897227771749535639994176733307543270576245982298175613319089966738347052288692457311313354708168026728098787390891912698505192015122902874661207369192276718817305113607417014244995178918588503104619095601140378764899102882351819885325680177731573586332305002890756592651580932579681001962764558485724440260797409044700307089864505167350885931071056626884520648485824128607705400484984392156373193724004132570340443868878532805400341637434253754953398464000343908161548958226282595257805036090127761927473593834228564327799187880818028270738833791072874855528136324866476364439124392875775482990508363901683034303111474455484934891476745559669149272023628602486778871740612782964539592135859468133643449295162934132901103529297452444159361238904163586928308980210302826041031645704023057061679853339784472535805787159329125449353592172045961035546928693990487150762208520732612265407866721035792599553670099821582510044347417415284048503662299675574792154218005877414276521271180459435532408060714497028644066000278052830276807533325792430045601822577984517329777724108170698013466699923173348633626913178977893699828969843159795211881775658502139304874005448211426105356286845919397353200090741001831796546419444485827014068444935425272166747112191697682134867031107755268146485024044540585979464666851447456726565275460500729330009612183295397963099549259034381043395664608921124423422424760421417654440572229192691057548002377173234097612709358734364266505198805076840565057348417940425419493740269280231207300336155436030325963059854019270597560094193324163552213516015079665545664899077466412361418710154519585948315693852491184277635423486785906551811719387058485679578785933701077305977294565586314014244402801610883274317168187487955530250290286246243791286821136857895822743875921788994677134132181324393501640138731219965979241351165145679651881105503432582639636162212149302100659771542837097847894676494595070344843915035934173648747387672857747476228250767370728811078438375312440946815263199795103329476076643969402657950229961372470515313029678457961363019429214517420063682133247314015016053328696681852011392741841075456179691697025051089514475860615081828703469252581775024920957751254719935224339549725085777996357689446750643337012686774007663194248387183767443445944561286966544867345734708296545016000455239711258765848887355652173855308432188179205723045928825281521754852944043167687305099189467829057806449118290150240573013865821404121018089269630458960219012356520642172650379287321316034201652096552579595469143509011366946454328519008786859091136848837824574767996794390091888741054835301515780759490355792056093830042292547021060535639662906862053994489877415698944249931207573663094191965064098962686439770241226450091596485601331023368590360224843788412580865161629126031321578563989261807719647977354844128760031079276385570370419097061921532401816627182559917557288414480370189474532766498613069582614942354732868355779517212594596206450917280244141097122622085360974510580839639598537790224118269121891344673722071477961426068898037258037829855027988387521415889457835674267022797619688495023836907639111610534899586029674511976120537505404873464254676018113726895495931736383751196292797350438222115289383284210436020706890491466081283921121512948840387754939137628839998290067803558560829976324594332536398053703075555075383093363311880821717051479191617729757549444114105577645868315506392528832424134118690583425285460609872635678970058020241619277347812445127910215753190750655999869648767028796887972781418839036678845487947182209421193161828476996770742635793470291227898120081703831917311969567809286314636374242088740965979862977304580197430782063209690993026482324919358650233092442381468046550211115207661691775882217979594278475747892778014857230709113148778668503635593911119241117894173774397229551276116485342324189004441179758557645859450853127690710833904585873012927310453312779194934600809215176271283439895856853678827752948320686885533146673742123647539022138098941932589340453566974405443138879787632380564389582052061165596650938951368717333223585460998211627661206292416980280830594268719791522576897183627504717193168448974201109808039179990383947340058107459710438808890379989602798589738473591356288416396348157186172245039341259850691510078323212267705391582926606089054278894292171386980867540100290483979757742492271011834825229396242747231578950737372078612177342065274398621278105292635192476336940835934768362461625286227616481625232041400615264466908165506937215912165559554611636109750581271056646632977898138567754307841892587168482474491794030265831956764858377330682240388086086373958916068727109247727045445492780200221246994022935452534782803612036994343413702272343876075060761185848523383919891889130905332827087396136263710633826288554484684356229259496879624060966442778666115549413282381957426519147972017848891387628835255896080009532798191692425720267287533857635416561024075121571258645922388110551117636161132535982061327681385428640867061728165338938586182429777585278538719178896036031120088935888350383406159033192868084331500816200253377418697332157768950247195535259392722371328262612860277848082921496969921654745946546143283058983816265284954132328927334323737644025898280339582268552123439712175554271626796335040713414077695640653030848785332542137925767352114424408857056193587847890924516226678238711937367894276999128562045591045501277946525071211233399778949436242380011241558866553327341083249443427270570068046349202256746240120373942422021882994093207534042820099265086129662140894357693725825171575770824136352932687589015595726473355983006290819514357414372245166324821334489403211132154964173453933106250386326631525671750654526633055935865332602778303868305372205210861518771584526784994295802732437693266878581382444358807778723065256761271025037061102746665897998815445303362632465904122951097233539094249814968271994514398296774495274277528650063853548389343238726908985406016147160045948873963595246340403518569168610078767178129899798720573732400827980363750203595447827273172471381538576139118525350383788269962776704821854376204108452487074038812891688022796509164157497743003454258687881575450314021723581612386153508734994275679302693770385435906038427730840217589757360439120111853423590379114362465969192506913425336397022244598619676805763338627334147514469438356519195361889457248193557470234662648198923307899506575739177194572217102181886930072530384376689091231565439608066646855545265407097401655099754478796740555660165027563926955067676564026343396772257794736428833701463170970771576074478186591159232623727535854860888861108530227879564704903300273491479169532501034398505878546238744418172682594862372829036221776328990198631612181210080907562431991318142089687599655669079662996481381845152548590172322533723661635790195626703349240301743640548550510118229547317206069703522176135885244366783953053208409831484710759173980006932261616664682284768766965464627833679574725537836328960028938989755543238393028568172310537563310519180901819633418465877187073678338314516841975060153566313095875596548083448436056469176723822346181149677370426953784497028784900298961467856114261011875565504290808176596834634333741934995607906508142531126024153104297355973304282204395634176621257776122338965182817314577261582554185958650655565057267743645237169385196421411363585930339468749122937207719090184587588344457061421668948828215380789840197443480338532864673693812885729390981830172163555098390185294057487145095729846646064420295357859854803357285075209307362689112177110579778629598800470690563214155704318794668129869878951605525185704008974297491631561607112369931063354279258571143238710635906507404054449088399662497931486519410377754844780874469095993583292908699689292527412704837425570038087512707170180854361066868503517819855585819408449723186525150628903022109217888406991835362224567012907468131301877258213229170802569336364494127614398884769231531306390336297778801847217637470352306932414796216795071213237517560574939062878641412205108762978275506555443329764559383117176547425290343268139271658109828550555716630237056199145820612761044184503625535343021850212983092549279267573532248544721738473932108003610079451599746448912408870047846773332910897940326308656847869938126319832431293882328196727979022518571926116806344457469672766197974812313235929359461770201301626200667075053820466753514879613164406411423448778253249664793468265517671143274431573900437498301777989375440717400977356098261702271262437721021202695037482350526096844232571895176847756318066950386345056664993203775822006434521456495609779634947347661141452376814514625873535993428544498705671817467016151413882256511050214704898580842901147684430804282207945769632010991059472055046193751604837841664110218036030051936207363676990208189314587326021413674562258318111907558613532644465455260257295915926156198150096378529966318943837693342311729438198243588475623891426769258837558329658191200871282769551449484242177236484287380536554497333162233092519008667069999254835801472560567178059568106453126703341761250081446482537568383949459249405291109196343102684357815390639199074560184319271416924912137228275902655884487721676160751870717216358900663778873769687404753815400476849840856202418477497384768387205201752932891044895879345485781235153325406458527729468925843700156513317020250453178859493665112514546792755443884103062555700983856443155226357261409853639813659114202411216806092439877171370719628494812419699640439391123135777792173290239987010289620001325715217100081475156833316838732924556913371136029862344890690679793371144903523306620330618355608143710854515853528477939428848977267648041876496367225185813693304937515432303230465395305564026488592059338394772904511783141650739631174978090233803069654795203866840819412026316999266717172708440779386178754845539836385425450752216631262673885310447285314568046351008573983236444887471736906971961042955839421509303028836487390825696161352565779775979305315988234266246935463652251290548653083362438503555654256478268972890831084012562934409979576466290902571162144173699202234386001960097660772427492842230154226349935139127320250717718816267805069774579918112059043359141808310690115245421083324195451649052888156617085536643240855350306504578726943311622938020569549322257115350953716409587190001297122675276751135996385004780977966485871111713560389100556918210965449054385273682188684440282831220467304462449919439910711413338126401307935402912507777997271524221698290371689606888039982593622689485992274050466580343259249037727936823773585870156228691298387277040073897120855716233458868018840925444567517019682200762902829259780017732577977469127982980036003860264042806300705600520070472758827317117548401550657954002530889147047190878220960214066246995428552356363610480868946118071287869454275260013960799705670313918821390599898868419554305760743511356390031529765769965116944441510047704194011484614234785821722195970021664840045943279489295198219002701664824706725866501075114161496031406469915946090701167618668928501625639890307565141719941933103939213042096653995410186113938747640654482407987343826643395929291451568030598889114525090207478411421089190180285724502923960907924458507467379968154746439390766158636741747676887653120802333986561483138392729930250989832159850248435495299400906637852696848540921318061100799793299202346613938792469482974828289708630702883353034905930064697949082013543406065088629545208413121572956903352355133524399963005470620497515736729767625761928147471404067539228609876897924754244956292765511690037280128478560806310788647582915850469747315745413010458359610259098210045404473292822759526472852918475103915597146736317848757012459503814495722532377400668840012244363763830631465677125854135583543248413102163360295831290785749459340650347530505997300992091562535990113640016788431618414368905232163407976815881009073161634643823405212576391766535672743475599250248926547692575082665021926183319587574834545465070047409214157554580171021651553710693695836680882061644384963216842464631551897440791718687071612581458608728191791535921917936723850134048581762931956534810437063191471436949960290749059497743750635635886141983618556797208292875658135544119341218183002263103437199140346584120432734202362960932851928861667210784190655812139558045798999181600355690700075089619164209690407277728101814764490298367295828977374633247610047605249401175994959602663419468236357314948719522233714638519762172115749112159035847089751050151089787323352378000214717437839350069343070925587470032355971634434516012873135637960777719292388812864739961866851145164170685927807012783138796254237051837002580529651259051188689475680057648533668296707938295958023071713046269768297832620923889908941314017236463154499598708050767996751605136793646178267725260295863453203779825576101073716845795889370323885578933559837794758942757221114038077037255528997800654077899226637219199064942515331185336797446254525981209044460232770744154459796832215396970169167154038379251086227254587372743872442359181685348990977221835963033218312439570151993831886819969553166481574594697352864358252649445146885804466563637790633415305016647543367597880520199750080473542701877001753357777813148384396789271939903628964695011041589806416297316303171573226305688258553741547328646963026375819209743055916252656076801385457959245534517261261560513461261406430925611125257514971822889431017466793227799140905454114042952298401159055755593368331576783391316970766612362586684354751480364843812475827510190362411759048944091773652496967125165399293792938275052849997972164143006541803653552062973478197750394551038047268137954476065062202858151991098209992721067465330817657693286842478568298806292352342427565327312210887676603366382313429910858222340379347249288609698223362496672684517509157282558596314252971479992709332846726825590994943561401386832552068843892662044284228050751673628564768460320333526312775498264894280741767791448581290533104321645652206768025969446689532643102428675641407726770309920946298633549101944010176651359788351635004113055008867388932150274631456182192468104993928478715930564613585903775509633268290083979817370588770277504109517345999558425648958073112916540823470400192617731312372702048503154784399339656943103222876275147443818246075520952649661210592793353209732935909276152457675373141448472268391080880779902664863687976243837688025452097625131701483751002164843182854175968810858977257115434722005766697380134748432971172184746732343946395911959027023444267719692258576411888619922324876408419805717378365961744246232970439442310919779777984961290958232571358318326090715583146940494606089241805109923405032051013499339340457367710158535920047311697154633319044718804167309903278050281657201561757791449702452271321687921815585179293743662778184700973753594969804950454449599713620707210462193170428806561262638704528838245251935074535862245563831145562434146002266462144108476187558013713957326284259444052086929692501572460496544175323054910455199517984093079348360610992656079020988896678905118750903684632243558144276672742702133234028971234069919929337479761049701430297801214768658081473553929355118121551348217148618566356894936856545594504923696691998177570017639745609473528275284027836567905471752617173843914895965669888581819221708482480696972582950421359110828131961715158942826948077631983020230078777912649714879708265167460550661590871346520166285224767994415485123870894564176202965025956272274498607016353383201958565124992448883513159142049806110214982799920152563425075558775297239853730367631329702427183992128179251889288029679734098781413423711964492619503536737108952182561193411175423223910427358344545757625937591255123528640526093675357871780723533586083742023788404930530942837200929965219894176803123090026271451779303350565099154399986496680377504850340299215585859442741987103204657365233582040190582255893987329096874141359997058060306304486446199010652960313767781446969926423092041548022628945959242577203437984462249324436070028465775685378818953047867203885836070028789865494200439675091620945809602284781545909181064764379178314016641058267474947714016324563014863670201578251109844029419713784878674155256798416205549035760098350708236398152042862088289068081750143998787405360765999610017707322581838983506389009513050225012096602473471913488846429607009003241149893200533408778140640860989482930844558169321954388357327144582274886464668768409660751060077881731680492004264651648361809053258794780356078471386086859492483108444594101370025023161283034332757694309984718405525592319539800097986980183941767180645819867395046215195298649825161214632331374264600614071502475862653491077563483182987399375599479803897275985278318604142423892899948498200686752915514821172837017397849215909466705793178971340845131968118854359082225805995822247854271579814328896499002861935582986797496303561630497149563238757215883239176286409054827454695861203412136343814935598753652559479653993857469244989031045247370183378401264713900899860362800009312897333003626193732762655132430137922668519858079186530734134836585905051782622713373677829408720003759734691785487146680651272004502484219316895343653395455466021715870334728040948285990497798199329804626381441707867229513682445039338438758489057362998648500354295731189407150737369155454760486176205073136667988543715574836160999634192648707225436745697981587471273738964203543951994239596724042781109356388270576621636118189851022246561674480453908681354015845572052527720691240152985057949250187874533140736974405696381884721092020102222975629185703814173552485970535359102053523677953136636470840388315531696373575428690069975455102805053644580780408191786227145145926135340230385050760658301542281409840353620001348185154415111672701054199819816335601673967898891547214493121511068011581234679731750630760680600042315764962899609480897814092182597050901288904976574053363183674023697320699047090122039227090679874057124798034908520606808429481696632216494767354104067172397383391340561782092631539082177006265494585782054670305411096942783056397740420007530172191274976287297224683961461437022050555831451201144338447494763863901479587905168754694028875920483258392370029200525193071097716594197706101389613681456310410214844059967888040076676089322891696178577825594245390435355426712809161360283883481555454047747431316176085795472808145158866983829281709815494283034528034569982807725023634046532353130662482702290715376037465561610346509594211864033285474240063241284515066075078586362150724122991731052065856098051764756487039753812333534030139017982962354314664715995675719329543691415137148960035785740035990334562736678752110605573525200470554757024311704397952107295753930215537274749461598855900703096250286112669115632651703499235188044590283353862951490309882458166273401267543560232083509373537647071162497305432204464723718706338499973528775249465964167522258034824001209504017125864943782344754724176757264491150442456985131329761900389573605738537921477064367896272096256158407041800577396843037996603780439549438006413367130062839618316603478388637403085852661027329996516984462426430339636423045157787848117676370472248836310195992031912620387622933902695252453101073369531590996675852428033711341170136038039801233225832985891191743078626850749231363262947620324020487181720064796627845971709169697815555468121398602618109717371190287870646087997521352714581299172240165283129853580196760489600780651658915990699390663280195067631659552175080464730234287958798290507952988760931670911550281717264918497741660716090832000428040657164293313372422702419996266988572502643503615132398773136037650813919227785974595270182799570781635448912417599386769796450564400714101359076199118582903129201595126767890129242359151024158698369142426697545576881736192720233670710633034240367112847845387320379123500302153139857757210406557928521311411769781803676146180935523543573119243819651797961428499619350642809102460115216871430969685110924701198588039120822200817080342724549003828135600706177535593854828111207975049935797154881487798249898586236734761888746750784651885159031304461957337879581472875341376877074020911252196579292877984484301900336346210764391031284484783235804495989023725592830446868774754207068849280964609971134235430496001552499618512348753440115552100225944337848130918844451411485056228668541426364725639814978591271549447513073026588109364559015220287994809279256947102507388041476493156141325287086091371346354401260545803288515950565569353293762357525641673782533284057574647957470889144460930553838117122798427396785303835601123422770061049154924768885155910980269224119755488487508718825019597561268313213684747543926852999624371840450880696052420784592860017316877453908047589366204295028113430232851528625396307112267058525736651046577060899549714735294473594500092344678444730434795761811140784580221628677163708615801618685072810138348269481583243331529019637750814375021515539584951544882096231598072058012061645364569356455918454524940039506091160507937924403287011070839958985393119911379111116441934247440287266951773056943232554712205701574040513248517634386470424750893651021265672948661914233368194602091109932319977965243239935565922479960087477310730567653318817312421377766869398337440304576365794714319768059779378642925965061372045115444254177751421818250371946481772506169128694761463248796506199759059381979404425385027542370161502045026395529910611457045238129833241610641060564861782157310330581451134204903041021038895144184564495980190434204077529297586776155495391066177932717578778519330555469204333696858233868316101694150084794102387876760534860360133912581039811231580728858576014094903538722505938590323329985849588898242623154319116504996536448608203574463081321640870642276774161234343019788298266607622128999073998568272050297038197869915231675193760438919711750806472197516054101269673401098932000497045348137368901720650336742633620270551017337284814576039137084241047724996075367983774568488722932799158266624889762906960877131987635650257398150115320250744124533935981641835433680510062273323465016031610500467915578780123315730164660038644610647115187617752806971057605075202690909682512692599022057093926505146305683023290507201331638896893536365311697771223052535127032680555648474158323034309495110352920194748529559533567541299220674356997772402331376394141621206323320684756248423961410571325199751678070236276161393380360350369515952160955636421380654650855301645354526482309388992697188262651294079972922752989436586667591880084450663661276093823506770133357496740358381883730385665025608746381378914776150329709852291321448322988925862995213751420691533167405659497182781050866198599813705580175573895017552335544559233409443277558365791099927185926452367587164768951009580084417589940576171828768570786637342140315211218438789016233865175399176637184140066737346969459107367048767417003953014590347220379623579252381932694761242082161140763281946826115570132652718466991559475722545139852568862888411700922577555760495930981959675504704879183910193333469502649601535850817107770186234665931577290184504949000489493222241848588016345384935621216052419637846507382846920635276392026546917394394197165498034837170926202174416360954039963331044958045053728441434148893232490377606226806056096170196115299412905854893226021568162525882363588379429672804600601034835134063737208203106488643420817672185104648157070851323660136079417513847207123731318455296668513727127509769797057621304965904028146948438040314105372677822585335514609731127608904536976501039093849117533382316607141784306335028989539447242634740719900867414121496462896304044226035621173757219543037295167770467207366246852413758246641151840265378281975732229044124779824884170072295440639312549391166459964901207685532238203904894656549766222982378019035488718150039830891964570474235271166862950463452994836498906667798671560598587108031158615712379289849042734390477727450047206830441116898818358319906825361373714292573219885056409035373099251570007285039621667955702256368811474206765166137466503547534385929224431070151911264885422825364120471282760672271638643824081241761127624308006897389904433948113686110925597163692216400771376904534643857901161469143796373235912448827259504379506737907890917028704290181828024692546029660890721784875642107672824067400900386644406236521164600315004547858517053946215955234653126889762156738145822375575788180974116925926973664253166902020317615605123785340578879093560127951883685370347506901882290162710372161649647105796107921623379514421867689118930453670089896936011121780507231707892624555380801395538200183997524791908037767045299341283806501404005323942510248621249101606568033659908682142296604030628183394384013577020033780168982366135375267019645935035790915453048311899629480230001780414489384255040911623471679837512324489289798230587811190084953750282667124595598695090595306176169826674827116373417462721745661686837611883132747227080533069425395255169876738882758288594232376135377195138932843944030637521451959598036478072096211062633650431762550500914739697743509533947292449089015681425612637741119857840006141124139352870332451044901441063225572645094813045755882961597442875674642560294000472213309310518376422436820165059913651254830677887035488190051180032752885690382477015798784658174416255871491396109641338714080731045348613741590284260211237628101948794507873383518426894120480347661439663046331634107112465457351035356876973539612839572920939624793003482391697827894823561352078247482463115179952531948218480170301264231638183123162639809511547045765192115671732844129239100931344443481649920241263589076747080754638373421131043257190920159012375166006598742163797673863218697008521913178050852390544158799534686259579454677292199973399302599033565303338277076810431273156437709713577287225878808213957283799480309800068492139127876491707965606809631557806100465357133125672902240678415366242152507203276799005499783313628713126073588766514896316554446812380193401003469442794872800976169798815889541021220445599984161945810683513301681595029417817478877959732334531889648388562181742932261242227591304814543649596391198887493588512914379608618435603812883233421299325439959519099007225558113662353796197015764606336678845822120637883319647263640517295986583691869321333553448565282084271660012823747868160942554442186637574395541476224819154197773224332596925091206259669713233812526575556134464397726001633836435654649814188682477947717183964193235456814321726487677581890534294160147255923737615839668787131263778022033648201036290641188984052147882986937532824965448458144574188991791158132490073679663859098963194998460200096710137814542314396588628424414385867109201502503539357369733158687246288753283030803168311567427196755710835439222325599705789640453738646901474677096531606972018090470219452392183048454179343862665168350277919849195398482792259862716761822435419192601563452791401056482831123035004053655116983955600983589254003184329147268662323143960942410822345097392550202476814453267310150746476522581328520852048858019794411949214223619806255448309504746872389466107902039653138966026498043739711359855140396178652251872934136387818964894785207923301999425436241352698521397346097947610194040577745364515110464557306914356374445845384005054227830052145394790500233402509285621361159666010572991242674293709059555755213653537614341290886419203770334687640037867937154834872389156170975070217251456535520574567835871683005005168992096458305299482204717633395162783996119395863415430556442212275537067539713201232173437400062085099601658092405892668291491235382048189610180800785379009879283479068746486608984590348721068730275340707474192194676975506689468116425810789642998881868020512479097340328978367043502916819345307683886094082157657513369090590432315054091448379744419241572124891418445298464175626327629521095581042214622123039821688929346785565000684567563096667077484624676841607509349552843481658197081328944947055822282635287676186695400752442944060423217914141926548743640910136907122235974802857232880914686778499420579221552873001347680181260070196870489216577454319387449959447807758102349030856706400083309717735534019517110914637858140374142031621194174586673587287280148325567742283495335372094923815187108125324025389120016409473619949021527810675391247597277952717539631895417155353739185942318113318568644595274149920921499711954039613695623130883063980561873604103701179782006728764783627680219030210247560108451132287777170502286252107843695916134329821691424825335521197501520436006319096750613233321525042125200754039970099368431062264328028218463502677180187935093399188070806470034484682923436856284703634795466647969717672185185373249891360797008400001815062306235589896357736895895326744716904601958589847249452772445599139489075863190832580024116320800328794409118884198868599270779306421321794234009269413377011342456832705400381943038126090981268431824534155013285560819192669342418717074362412706468304043775839948003747129867300955891297530924741944029214109038933694777509438250661415849171945931949321115150383887135461427228697176141433331130959415993866411405300347689501890993143478741680026088850325669720952762070099446480994119485372551582171997034681695811049005730641028369211735397981870268193383934287123409860074354517536972093600348709752840359690524234759398831081744948871603241231957939369635723920411009855008682416834938786157131622091002452461970353114089257496213654970736762451301394549308300344556836604710541888043377396382369268252100393114798475087725826655335429303156353888600918795751374602949878202139693216809625486297606018236186984188118790224105286375303526722821477134383006350711110948811604366578009550532809459526480174086896869735312747180626095838440593698158168791222737076610625389509502180000827671576811401482102735937000746557274541282297661742760079208283026544177832116124347718891687315314273896995104546934048756449657916516478371685291586339094011752243383190973476733280035260587414272976951438521717581793314880902938035969443584117617328848028725615233361706616156158025867834965693649047744196297858326216408785614540784761478787068753212161322175294546783868988585248699563236515526993035263312827038893916740277033619674754138305493493258724737091025145285528561251360636669673494403661254090089888832520478013906536462511119938556545625737514993882354133895103367194317831172775745205246021254843155716391091040654443187714874624325393158102242406472568036855423142558034248891100071612886701696438088781690599145102935965991325440634716081245763593403491901922596694107159173651597570917507781493350445126031851528233733704191946469870690063825713019120629323262900248573808055587078679740236266457348779943907124432769251695095684913329850177367857719105094637296338111898642837457586065553510074739062126051371265392761875914644997189619810191127982695510777163083538196145850623629217705805566439199064524374235859821042029687036141043000269881001548841818747879963848144247581494412706148276949698061729593724473916097312989443687772177296521825693041947586545382984383055290640010116345904141629046026729125839211493683533254185647008300643500708812967248583168307183609616147783362065933848675255223491347277372137386118689273055674742783381136420042719834052473921686209332047631347375692305968818980288772274648289753042841427969390328382145072499238915525838812859879415316200690791536378924129245311337144409252648839291838109306789687203629088983269026950813268003159571091256962773712355696153146836391873534004099249717618483840846547686590367996626551462157070142040547571707563311521372221131878023030598857027202828253223970092827396320105636134185919996377348850150764331663219106597643515310352416632815252670825281270782471789479393765961433444651519035363019657236933605244201539338063032646623463856112328335412942910228197131051467008141693400739544006109719622991414779435874927139237439535254202520848727431229883246989466349591907526118189646362120247835581746669135430258380356812184750343225863805918358800321419857365484943462504736394784029437551134426129973761290767457223514415477028086333467312041905761802465393939317440955664554328632460367983972799138175339867470478196217863503070564670533243125143303997900445165784404606404711470694380815090982702241161352862372216105171435463567042539517496283760476015030623374811148498011055024059896433165551164056440707661828465549933710171690890681347888150749692679809875455176563550692048427066511709213384979725962658124476649834821028653352259089799683029351520053360777612191926038273032589057608318274752956273735782013233706294373725678313651167117619447663878607552651020458113971261272282935387097808610003218469476837417847996957063405502301355413098159239699147550259752840974929311340708917953854543051174630338706903299733552843415195783046505592829933804079916026929358652747273329573714347080830464353757362868024704806742339570285700192740388503734488505780219615317513257041989506250208058818697740415826444361444174370447064345681602833486381216765834980350174453040305407923181198596080471286769370854444184929653091020615125381249670103004421042351544701272005371970174633554762969421640588150873616355206660035045310125538577901509723937713316787761461568665324004654476102779625224629082612701097022012800010986645303597886547248835985950412574447446417386255554681757392078534666850266494649126559774387703357336335943483681897643178931032563525063858845260335839599968357123967176277122050337323116715017370701346946116227493998924068374899794687497298025083627164413711473439884948770298093061393104174076740506918716876283352766948495853221999883221559659387138488501251362497468375785462359003807622805049541133767305161944266922913138364938497268227760230609801065250547232662557283681877441361047716442417919864777371247438035906457523488655653255963720558378327840451390455636983562518091080060110878861808444435009483225465402960226377931341698440822443586667415074998839538138389809238610153594231419359871171441186548095648719376546977645045125099352383604902267600308187644621148521400529655608063123608829438353775515609004714783807556443944632097837539079518969387941564888807934758779294219655356676578225146395548048582584227866617345904179407002412871159961194706003565812631527117734640065210951926572135201245168309712100778550545288466805050008496905050519092486532757883163066184446006413346050289156834017920018657859266808385590844796185360800349026842472321621992116170494698259009003091109459754919755766374289368953273089197164513677911887097771363743866558882643125568553388883657494334831818779083530405298374068912549459144022213158703715756263457862811987514337675126551402297568605589981079857633911781867933117938930772687400040495175416901959631704098338115207142095455889909533848807181482780661060893243524913965846282006666100659685840693883568260963365266643472399732780789030099966554665265458253131185022074649247766904369723990755381059411743918759471572969542685538922038970408266587604710784529657354634041606533182707968018090162361889999573604197987172788139201148635496539129692632295716660597592122745161164815992180032599124273154454276921542556560282906354818648163266791274400882562606414953960160699719721172967002889239538845876744230783618566532138493616952175861430669977560891326500719731420773511668486415028783217389353074414309897741278048826737369142054755226990693407067677769202559946933245844979967781876307983416125988978975607917668153151257503674615295688959756686631739202512004443220570643826061907917985342124306642342951721604002192662765833626898633397931464884113455323512424034425572245260661203460971562570984509004694045284588797044809873891446216014874093039439520912515354482892143257430479525673408466769391274362258197276117688739852870741020838591313340854131876023854261400076095721426785271439090654048812258058730936055814938716464993782656289013324494322371306562454502578234743828243359474355722844071514868849038994543555574241633780534709768979049079592304972259774186120919193015858517560369488611577350927891753090747977878107110083179934578894168670659492662911923380474055068708910148205336146092444936332662775713967050212694573861347891767280106980519016077550250903076908274866388008819379301767953392622347347082347282993859554619516231915058287277616673329979064200230109495385918376490954948000426335193610036654839150907945519713028826615995724798476509576399044249763857027352633953886361408389472467958250667177300357616095394023947993865400014929479424858867406893605718721723395539321622668450489983893145512470210786298096672330579112449575140636786346561197053896136902972179499906510609823764040171820258329783704657881456157452111008353705478427184827164436855549135609215025818639993326389505273689172428325255438464178489019641574824504011564618413847289165823486011089667667745980390802154074245810685573121590085110517772321289311518529837794425185472875474642598284779218629424664650237967749379921851186151131501293738393387789519339322156619110538202016802485721311213347368907878526938679603812379265538281866281182601787835971231038646728910042549019797412791744454422759566667864281392361873904909501922917044197150015381160004766607408442230946190384515430550063726471291663492192501186854602596286930268519398051146999168060178869819035381409835306279228781639350024899936492825157720348898608771835503186587243908047994619100602728572164108885684760263306591417410409047436573127654434135852021653832694073570332332965864854126724985264381324719063254537332764957875739926762685327660669326832964792414773072858621735087161303705946761743880071080928991431617161116215701139697827499771043765189368672166349379021655501848291238505126322512197024032387757667838992876183251651738401912938996238460268972515741818379955696429590997119071783684162958302978987989616792970718439799163865923995928021837575675218410831691143113157797789226659936149345862473122941378430117939527126753766267372601154904034064751780749782717729429882448137387818199491154848161593975125924837962295916045698496202709097152692282046012219035120736841819018428846228070693163529278427655401130044497752577603822470960052521964118700422083021335166379661174620560951467940695478449829340382134220827611775424627604999685277272714013086717080127204272872092969014714320059219319100165793176848639971232894036268610732910295689031344634706450554450928191788127862446949199111919684283557038679056151377433480781328266635175799839732312087353858983546467631816601740411416147523473042189164648706960073488169079867664668125578308271178494705542784092043959752215438325655398916443685965422116617082471460693315030668136967055473155543550858200107059894226969114989201850245235362454203959082343061107840661174321249021776028740599732464128700489660078497890263358948576499039306941187595799706636809629603368160473318721277803295844256579592378308133055865732100446084576333555074951061239063425581567552580566596662364540101412524984643094718178074446601355484261876060426018849628547543038497937350379852872247421066785009438430876104337943132783867530297680527775724905302741006137931257059522714596771485535287891042310929751385302048050788312337904069839202714853722551216884391807773918889452565525090486866691636524175817570313781563714235049222801237718735767651587965910865584565869107452592482401782780488550282109338228184292477812579883414294225150879129411826561430625792757417351557603065070117669967330374400721854290698146330528812514560077177080186309966310491183094694050122287685460102775932717331455362220134032808793645422578949360561430787489154696043980295869810798446148900997994739410202795260115912707953236753001285923227277872702109413063758521210261961866572505822446098022778884807062569924646577257334956755566603231075285740539032801925735901492790107938754455106428298866726944261201039770070456318952987185130653309119498055934941009801513604811538919472387291809985816756040675948163574239250716845361566211358198270689130618851743775478144632406702986724471686338935349418492401217474501318355494607831916233630877406030529532694983766162490021943116156732607484259055125456059104572253287404732970766369968788996732118351872183604461437655573759179878360920937076028476862893025542314678472412156242008577913246138836785233715791131735904883894754073979156928828229778750414114259190362097698164189545062073859616403618657518655450639488911022408715853840770093918501998256384017210274437262503210940739336999206622543000662297590093364581960143552191406697378328021292652893969405327856626453119136123166903914075277099072301379792534535856587732931223444057739531873869993835512019558239996940028397966824716556406868737175775276267409008404549403445155572305799434340986839138493613604362178215597854220490692777710984381749070688478537346878380176225082814348142058479499728264193391574449240025273411916708569401192589391418943911454077302618203493246846317335330306319252488073826109490601285860753814111325224745123113459002994768507933803603990513772607875155875540076746857432561742140633565131388453101668955816378304243076733097378546854414630579168893156956339366765381063343475033066587146059842638375159217256653150479712083134290448945460682485984879153213631986526338394592255970650425956417019405992974235570903987140555202671981204794048427437678019198513113871967077824392955769398031668676748993022772415100941287436370995999397167865243290341323106418444925032509907893037243120261836238128487100664233940386112351617397677765697777113302185467231154038755801916398449832422467868587176413341832771542028785961333898495351311899571589422420557857806081982412187456308870524653171599417076755053751263717477615391584399680344206405217290784858475530689267960359258911875453863104928540815502425172394176649085020360229232191855850241455264618749271911213137293192432335748149032744233958923149469279558626136293078299577605863285070334497643377664237673456201827767164150058839280698619124064861900306754256580936330527572837630309834307487982166115126939879919604620559801970537701537994013227540185314072789677864253210176097718344934569302607101277416362645740433855887612500071639521446226141793067310727060062419811587650314987903208043099931872428850341912845424968468341891810983118333530678252852663576474429487968600645380362649096022078890504263655469836906763157723386196673705042879796923075759489617792965511410418312257097617156373756866060008152101984271535770462871079108163438026335107745557434518006953403954974429112099213897393997634159775737614184800014219265712938044540059891238434332738336059584743777118169842659950369432129607235795742385470552554481864311611793157135259438726036987652886663730760708746415544979157549378424063208623483957835709697333914296657057715299159416985640043650936703867702126897022955547803615493944770179584940226814423558924388707090149391223590017152737830061069368460471095012992238482186675142088620979447229335001739886931391406559537659181024547558437791387293393185311695719190719417491142528313696805815544699155040050526458817345537878076558392592752484044609465349947831189473572429316879255604341244476629175879913982522993300305360622651531130733157631135436649520808272914580636309357888553041609433490340917906880175731299678254508767253577465936677859689821583256058308282827516424654815960764570687098182471998939730663300984708643803935491186602629929410105779665556465905577809617760031782123804315456307381233015117624706855895529611714727865004026299932401778220886983666809833886787771147002123535611018970796742481662744362536567343138703714669877149354539964440114135045494344196771365017686039568254421173888608492863954046980758069883209055764134889389244089768889389130558721437758211783246426636636314992188186852626997385475524163970549987082661769348724880409202664124737983456883586095418918726207697213522801902009540534520857346373224087069262624690725777046974744873572503158287428354743484727917522207719916093377716467604397956645588567942972818177366434848429476241410898717330724265275869262457885865576444712121691356065597352865842807013938845256190611235722694072875516445424514440046532500954870473370682172741594944143735455864439834958830115694267490251185934814312112333479510061087191657513493710527983037011172079784395004357781864832131578708848676502595954487773609556043617670952585338904036571845526029974418183560259478289012499568485475079913555827636497693188873727383688338383810931760054760900808202462765411139119755577549051293449147261402669629794445505532979092891421330074266383765253296181008275638985181146336022287748897999677098825239409680732049344234408304875509992535002029194253926038423807814330788584205784581413278942782627081102455376834373893111847846562811622669759661263305514657696398602714024649164671360432560306070213441297181852699864368745344119353976463886811710451739215449197062717960909327819927440251484240533514499822075162060773702712531000004863150413696907298004607584283723936829012880162949794725355725257082256602424428701852646624139218407132120416702037770881130910058506862207157203748033035279541075842967406208397767687049461863382639434079917087679347404044892488973869480834499494105179910137086241630354473375773920188028570310723265389860126972740188826032982813947669889174019644197327257821406490328305657614750884792621610452914963538875198589016782331914593302532696328740489297083772465603382222534309917480462399732416696009336396576227649440631019907048994560530776320089972280381706598026711856701665947369262604028385246426858073404307097728530838257437101603295058045811380837333507710167654004618141081697131098629044928462092054182091555477043349473173682154010774918204732182232682728155961435294604473255045574534026080472528924035311516278895514212016483394971066280706813896500660449815817778429729666590122016607205549199930858187107843150308474054626514045960771726040169401054208260319334920099138895178698264354360546326370995346936744116107181091378182033591488650849992481508403904056525962208272896296308219682941922617863885664366794649079674015137092492001296945032180558363857215177804979020562162845964803475587827831230583737378581542200719126852937196921712813906362838660980029559813350640806506006973336471537168310487703878244417048749127369862797996526745627455553266010238970983141865260701420756554634170492707992828553795543064461688758595598625773539542810495598293241352941841525793101581573518419630144728130278587094824971414775203980277112206188605735871471976738738978793239675892120105632026963246212307295776818811399622020510167258117279678162897033370396129841919665836616737714694363498928528078700846742530621098864338510863596613856791200171883407109395702309046958905274462674155336962876047623794231955827725948994731439177283687946745565644466035688420609596569046638024465127903227718388136501550792631877372041551928236768949059973804776025276089830349538617533922207707992678442243416850138299244546219400592583130983461775828338674087713050666505144849394624121304154555951122184821543497371730240019696480626635196668473201683439379486154804477280890887489868702118281314115801068429587756912507551765067178249458897385472713894375540564591581877528297465425962898983601558844855149162898858225807959661481473076643214903583300198922361751321768414819055304214837297164572374393374040321414901608570161785411437748723480259914774635110248106602904711180342250140843197394300995376867116201266863118651400154905698383250570984514842443985507791499268516382293691281839841827565014801074342064863690251294939115115182399598726151185850307037778581032102289614245694553579293515357451483573902068285742909560496464068543739478763265024260890084944099375689074649802757740236713406339337316518429115955242359316881097904010661632320739874065466106091337732778736487811944372805334913547343533246594162809927366544735214106434158643430079978388609340650598878874693657209842590441926974159961193149034147706020662510181660129771010138081214341756431900058144083188876621957647481051605374559633315308442863723074972763814751245768161090427634820396134950624602376244101825319396897488301332009869838439712731423503746685008541563054277361568648349877504852869127811292185264949144693618553498611999252108952614676946903997036249559015188013686028668912809589190156432565384252390079233215304980208502070251905616639294948716494155530009985606857945020136667907923956339065886842741888669824061692394338423988066131928159212608077547254526591313247066141427782396532168078678727076461494060085303141345398838135986511983705027280132538621045633838292753333654215136507096453311088791513846939983863161716282479027850801042197789162345429723704262524017405396066390254109114558417899192817307066362203020493903887827824278924858218265286937168353154999604398935241144756001711933237752059421139313739019564478586382944131786781010303912999137512909798761046691618294946676442331875627552913804862758684147098955881878566689125506886014891430390301118941971427327119437367147378133201364399871931400203661922413301562813430545159809859503563800134041406647635575742483460992930138319440441523298967581647243652952689854593227032445035008251369331213719077160206039316484735699410324978787059525069436198266542037416495093741525127217006082776200850501806325940719252950679323645098727703491295612898019922055781975046277809075709405349910682814327463958904009673126349121662454899751704407586754106291525846329049292154987875464369307202714371139822292715630446924568977440004462137991060139778442796825480575099082308883679180482038711981781423784454572860942660911871620515719911051606424871901675445257614504713293748062621238592021964583454508581729952851655599487449397268055406638110227578599800808779530299759356631257967770737960396477624963430341042584647262307709903478225915462131027747602589844774972736635779257359377813592860945475571232222140627404569336857809090034695438862230393236184328891827908721467583020627367942038943255530355821825745600275455861576979977615446630879549851478254945983092112879212555263846541165049679022564931594457263894024083879465635114778695602904560844494095152893904458010619559182802382579179221571681955279862906395540339480316312058692352959597494901903090869752508143071417769997372235178355412266529529219683427652438295061209210162934749297084864691341365009490218534119056686941270629337625186354356542484656684965407446822423998405749737658700446223834363986306838447468538441142709037565519521841507046190656228181561623870646369917632951225548413235942487686289275145266690338204816404333996939132006708965198518725273158066415925499382814055242796932574232062249870659495592642024047749026514492568524230009819289286807525070113434016715153075581585480591704825115192997876291727535603174832095568361254467045555956161049110441913685989829098891436261405295417540020523858659559986125366136884290147642449665277847832144711042971288016452275279479512666410269810624877800783133390522557599092554167739199848213274925776689163874283725548240108701633346317181087978611938765047066902259495191155506426931394309754078965834875831687649387604333603746834219620300051506714381564909379306713038237262568509140336895486681050659574071132060076595067978793558846259586077679461870507602692033183470294438321052811748023343884151181312236628599831997223097372232151765410132047712541802975647879413914366513025517641278202621008672822898508839892489319546967159756023849132523526696841404960143125834205571146143046042030543594073483326191968944115178915138485164565579445451570462891867889156977564700774299743086323699880223281499598502451468462797313321481334289569584443406712178927562821083450847006823603107205146593281800605518161315855286305745722621595161400887838233488507916666774245164338271537927422142628472496923397832334627264987440566052715154391744859475102084670703006437427884413466392768394003506599011166211059869164882818470816888464610628449630913304336193796784764913095216601567376337209642629852498653117482079007187597012476897069327967774479397509679289182996142597720692783614668908639995271980421804581899890095303470138609958440923463246036277721816903617698615393708142825221899159488552104938191135488884310742213391404758701956656108273545228207603520146752121675587859823235272067671786992967684238195275743595626453786556197268409103039473222686173895759610985301435261686278038979091119525415196344122776761058918306302857255895963007976764982761761270196500975395051684722816618129554056221616635658374198462771936957989481216739050828695255465568519201998636425691995158002269034584596492140118024800349289030115823003013716749553615906267625685806767576202958782239056419029884223279575685125007637524218767702576188128938458611652288520475806242876857564469847700061014425095735438172242827412840526803109005997454808651513104999200623686081143904512973042327621236014862951774517809914279635978326405199739060178904017501937892084308833546694800672435488702159177977512471885289077799078473766500813481178822587962356136214619209477025564933294814849543589571703603484573287825629252321114940619326405458690530352748637499102743222810731238204660643818216993234308313886869546254111796472420881255050284120989918435063517950289848440120949002795978625433694494018834566226969205651699598706071109751970339601755325428062228292199666488391876555766694272169870676962122773357416694308672668728845527503106145104068007733734326995977310906719358458085656638971073267940065902023962331083605989589811713297030110208020804383172477989384804392756361021533776316991060281246038862080719653018718225514326029130761428901949808068240138555441534334406447904023697367886059027275348210100141912777218379135082436301773726908707676886957185437521717995785481021790818089932182043189138973645654911269175985177034842686096828350900008945729107873063455821772458899666775784616135025378292059751681905279505891927171975875811435870418223373046365955877550222867531969211402218858304034459914253713034737406824137505198887073855556761959707452518050748288033610955745106614222862903433724067575186407974452146830994462088037458632290664244646453365313757224921642554431914280952397848469734932442392241674382903926486482733707833724223249265291069826067640214888271163663843649902669128983405085037767306676605296473768548395697743375473652467408050553542930854211740109105134543877094037549540549950989434656947115687158526827780958458749801375858131170197981477566687516608750286639031798242591674751673261591118648994699999741184893035298977173371421180582085305686193061080830479301900935238805183606896505913788440920477354853430941407130440558111298194644014418781131312631582774229785461882847414477671232525032884589689026436210050338661719506099178353558533061016090206970830273560637713149322305468538707994336822986329928638699399673641852169188549713757433527686810536948284667451962597423158649447302631140612613082761745624998738665975711463724498769092568361911629222464952471584765904424838332087164344019894405683616743026699130042608674606261326133503242818808384093971330117125240891279846227114290710663798110865464218961716111153749174484843310763214919222872192426932735802522320952729743987472507488160448521582895177659904926247871885828459380697177752074590576740874275919316907556918782443381864037858111396372445978798362936039920871856372383125438970422729914650159650054895536656824832231386842816550991318245671302463632301507105941170743955035846166902156836097124824670521331253160055925212732799149957623615809708609468174132627179910033265908326994097784328614049098822165635728951487054744408886614428379671763216062110749180123264408758831326730570991119459593268794520158357835170353262725070631304923026152290633597054804756257816861428867409839813402403132838591291013289698051669869324364641336711779272653945938355455065808944663950477987578796598171019495920790734828772249922774769685394446737124856550111787379701067905250537868786558070126564397313238450918775543698289896631425639351299345540939428379380272214468428101305323314895192410846824539249404697792107841976728315622291311935976291738772861726513918878158497221724630683720248709409124611451963103530751848107595419096996970953273732324568778519636388482086871786629647694067192023851266619200672419587878405141333674527066779134652835067869542843427405482692056504003233006484841382363103173048719043256135432710038766334135555397648098948651362282621617825370995894542016408749421138815840903703397964650325695225405827525315807385355338335709472447167928534625848674116707933148403472812761328451790440569008527267517538051209266422757521354279757316424731335377032745181017127577791050892396072211930455688497412764856318321576489984525738537369203815304670392176219993276028378537846460768346913551121765836464909884559623798178565683380765864722757607042074969651700701584869817056635325614757753325245476609850888790005103363050508951864480845823069285848517375341161809399212481930682704720554688804203007732758065009499423940442781602420242580980536826124722350323394035985328127688387949534791402700291268486859468410791708329106244736066094803029597687969140814591247859749022462720740985125551359003920159654443071934432979776273781131500454008516075950764082271430462147518443931781818110347272255494043747776860764966957027462262949905344487300655984409369918581273668945898501319045802992031113382831011105176337752196176876965838260637309478339425702669292444384043538610131424481297324001743133132850788259542893113604669139204892533238303267336478638553421857423319440203031806440401445709716453957976289011219557077641200543044659219634212260530923782081803159419914035677004727830485065437267918236491379406495571025734293726553739519327671523369409213218404756471114016211951115284579722522331733256435593236322063585367959057417660813217208088139166742857606050727717730667252581020972354374131518272220674982852178960559399504379347008780902747092484769848932831400262110101727058527096226015400382427661802943230022052111960671736499404193191215122571776223115905354117959792660898757346466334534742857109205662502741711258143824968264180506372630398914346327468798962184353751906441694720721185242457034053756737179884033285363602803233377271991588454417426373793002518601933573769782489069873392820607702310305158759480644861567954697687137969400340059151291876265948790220594005042349679086522036626882646675752536882259604852292022498625506957984422960185745358278223809450352314341385100132590643941954701310735647844596637780317098459531504096547436212010685603914539012548561469070979963612249515424190860098397138957052484219494283244110294783983464679908293439723173004676197469602630919047519521971252825935034820704706557375540262427203423502529372933772604712849868332075762991491764741694469215103749421340824830166488593483359659411262390366081120320564244061890524566702270579313181484064493144155086647039248858982560093132222795968455650309712212396779854271064711716217484588835096876404805155833631016144128021782398446586654941201942582743343824498484760089966145267569602433896702354842725287657181230546923243885429303641224836692264004730681635026651569069715961662633063855135427947678993590532976306259623987071768201596728175685367508596518942149263975586953829720129473192567204716709213246717777021205041770021620320833121004145912195320995160930732321654689427135822499452747485309878379468795853308360716091057910084436584666478016771065411845171896930651055393061259948455651837790838921299373468503813135831064581056165070204770991904832630793268024585251475348101682230806209905774831828871719850711116614954832299941120142045013707265058224721537513029970391792060624517315369582473197032718263546377373033507539201542249389527989624987060352067605677191041345567729957391961387868255650854185053504052535541585828187109212645535318072083589897712515437195821768078373600509765770844943767922025560159113908012764959494928437847379720500782123098406732008125350003107667336966957937378385179783175423125200224781315405899315566526188640911401922090752535907885794182483352110812881040749012373426660464343074528087960201473345402574195192477907939387312786255622905864990408726192465890910611348684480932897619224698004664747548899097848372483239480127678701397189610759705159840026289326843586554335799455555497286976195169389635056298627742994892534953601892768716957062073733786783923426973830637375500043324390235140243257554321190885123646272354346552495940500351200302042506746459864750532635097317017815062320083922349074578569841564561224681928397455067535281021097730295222490504642929439031104322872224410413645916786947368581169030935152979300567855307374567043412014623562119149426240585060671097946749369344524078602689603100322187479584481066133355146969217262401782110016565221956651415495303082337940195128003440804508636792598891491824934827808811987149388526812750991419427993280639656832440257367846305597408535725222880760895000342383506324675695297502830490745032948947602491427363604192699508704305310172815278756920840755935574734706012491514953415665541504506700839294071046554405111170477138766530850127203149017299725141375557933246134071168458879083643440980103343067762836717579667890659571478447269388772993310621433843254511145415905709129004955588660666959935567070749912069394793382415729889821556017243775468517217951969099720852187352499169175102662330947611026912986380416531068026861512379505885665631359106716781756095398347430569527600543621176796487272167131579485327555276563004260746834680093626188459445839295197457847885723170941475373349635440119837598661539941772140509719972835213562960017307824709226659800959321936033369479723626545400040051133965981562998076843237471759199267017084026782969604852558954786284044499529697263873184196818937490769259836302283060111201929313470100027452559138129071323701023523684204617508467738505872342003488629883018718530685129302010336158751885985743792235329796120361112102259311731857655935107499719542278720608221858919435868487684474640657389449982282329598141234285931007138843109914850261329037189141136576564480663740714259583545810701351919866831537610337208024205583754817152913664784574955990475572439649147842868922679759842059824518501423396310471564272638897312617507721768163569103776820857507488326703395634325056173177401974516881524294387522661168774762734576308395923829813616753367653626926558555735512056017788539265684008618477222396486685856900696218606227745494586378835328912514795652923658405782858362208135356475444671513442359419492938738995053582263042094951842375928377959683090653948292798249481173983048820951278093702888389710974217526680361943745605686670869181498562324020425421633975765329816148944968222484231898983921527640922247689353865301257626514762221733477479790120029060641305042991680412172038314892242218543094436352688564834574168153560463444228676405613334365819350278188051355146905456761038160478787935791345516829614856396161103460147081275652275023363262195220129521039728109704146940700154508719073482200064090216559132586559633089697470110072115197353212282906010031250974070368303282551710270329351121429306051618142987857588502149946635831883448754702675213721662891230930562635366444586610392694220703785224965875933417897674120118984702249773299828355121782422461244128324725218706476945125551015790522213983381804313773575420070173034652685448074185747172506186962193420138053279623482871325049781138395695185730752698542271961305588264387154664184896745135776252436319377405205620937047641251660216551790575142969434769036517504378692393310276541550434232090864992612944413594925962361476538295031159221480669168444360371892983788141317618857651238942760847505944879184126642693386471493238256537081368796763809850650733057602610990142610852987308112715003872608741232636559164428110314264099533439028234519676961412535493814989326958022669094844512795466439575253566748780333920842927412205389632837197851578575941774928814192000970566581737542479900317859916159272571838903886078316977963496032733788124441552879507862667274420583128075891344063494322083803562264943660763230958027179058727734632025096200502632970626436438998176147921868694660802022245155897039972367354305344527620412884656794427424770817110528777561455388188677105720173031874607260384013860029199266621033364740779823740481665234549733244775259037619333585127304950466327954613588889481202686729850191933753159723647656921341209313877343607546425003564627466905635133216973470977447805200710094748261791312445643245673253266114554937984591161696636457422183071036365467829055110457305119281995651228391363446591788497023472437399254435716199693949127319565602422686897161188474476701422540176298887453688857227379209996791407411619525576708754571222224068774205476859210407642310909644033912086975841475114265633594514323761418318456854609898035155051995043382645598473315204776112546235739343416971102288266181274977582055884410475466203391227406796767549614750841755019759355168243207706850716498129218671295059470313513170173666609167432817404952756575632387014897080766386211761391986344901234464600973561150358685407591189036015070673363759673265703637270527123680315433126485363495353412578172500763535446793083515999275122822119285888354097442034538259296677416669112487377863515672382552031421789512142903132147166614496719579772107600056971877956046527687060496816715665425229083181839473116468575708368378030320527032564887131565078005630908774254810009517142187005654447677185706460601242660619033048288289169680666534881954283179065260965836578936842336803148959724177306282288838373886886690103156127835132265930898980519819783547092199622240061287451268304021604012073284002895822691088747425566852112157010766485472556335923320663188635856401891348983086090458143211081122719809838647081786764150367441714776034199086663579834047948962246239307457923514859347466618045517180507530112942185879619572367799987987563463112034929039072244084959653861870351794084749927369323736810253240775635886777697953227640626223089227376193387751623255578232743413322394639570173086753095330043607668854272346211689867276614707018253059683247738342588643277211443388955413989281292051156584987980331125168893153509910225527601374783609454857058011744673694548903160239416727712116500875937655833136452817831413092813739569870958635602116798859223375128156517214587180070226881261629525003114100177145045462775988323595596704130896929357908509524997648970876512076095837554983224055493982092546525756686772219393864524863996919732551111009997285973579216518934109685510853936039043894683690034749416933311218552206711177044350990041189394176102526533937196680110690090057949477982336407246444784360814419874186376936546848041257088416271226845336743967637583622294048321665019409346475576173594932650650969654258773080144314486292757341777505565281455300416271738984733191068370204497532494934176336436497075346870163855150636444749304636740154166727834777958381557911274771356717945268180227058106689079860639744902639720943941434141133487619327575872286012495211597100581844557569950007651288154755077999720288600327343511413809919364355243318287765872599453052332383082285830447376920254947745724785346850326371152820165912522937512583280369197906196918255594730842204613759851188850419866151499383112328298449384894077892371105001318349492688496578721771279791199410518186388894108965649181815887149471742059493859863103763243380611052974608982079235316764197402030445520656643911872795805120249897648212302784370608860220605938006810417585405712391534796177655235385841919297865972541353943750812920958966731063234515518850825761338497206739105490144050751125627637150425642418776246955365337508789771530703465595473150555220371068937917741931998952228239447938955842163578351852632880233757892012566253624293182499875714530504036949381862055456662129893480036661717292216948377850012289684611913241360093523842243617004658785185494573424509711839541059537160462204977645904649520721223637003641551790961079939341836113218631560851570389413797380022747127986007090380924800156366878141462310982571855249139801572999916796620821087652199919934377725905083602681237197884487533571734640857985785250257784836625437254892071956387550726862227346290340628405379005946095158981119328522501161744134594172182211778053995574609322967354055890422014823063635848453406894860023114712258659764361630213073844671774553478959625169461458558403381186256567128013424640191077733573399192568129408691845939539419065214534390968800132264958023339706573182609204972090240116106397649591558793059223724837525168568416699688232937738822818488023890540440809757051462401259373268902001996877577764225595617946724749350739049112653008838588480320478285472713491132265547943878352547470289042141317028139399549810297329377101185135777706734522456155607071550419358135367306231314918520899331591036260612315897043021012898832476716128901018584309182909860218003137073610769544539100848934272519775832259483968456216391715034509846770417636825020372256705790756803656523145221102474398982247031643353055110159169240870620875025053966528235180169429533147045663543970207039600506199999796610648296204610090444646078085955493093201092010570690463837853370637386125225534363643828107029663673257705031015975293963705033252854625990545213724736711622797114175464641733853034964637221738049425186377548198485580220952135735964016568881127794955197962242874858925602827381220460575118342523748762178126939354835447243131311622528053283702725361510681121404403729550726272837553684344601447408368394327018618740000666121734129165913225298837475696576935132730022566001364018485825526519883551567956073859003434409208394902364985615892035111111400278688766819790723273021225573392598445990851177043541200458596226647796435233311248972561174855287676582666207212493997672429518099625721710859958794233300302294472102430706784256900112335080119442861779511380428839883967873266155853583697839817330030858584822247191131273793458209861933679697033154397146201187298087702810069696655654412822079063929740012449523380436304729053129147830095898739072933372117160370519377399020798614003193846039355667702786771476938339096264501484695528247748399899323833047920534726511413554458925754218326892317131396792001022119973990650604705844095936695862758445914760693024236512181887501033170007641749297897753230265138049271863126082299292460780995588989712765637685436667486887963637906588091276560026609763265765155338293368731844961967477935771320183391998134858623558708519037663055824545830283039551914542758438826418737708575237773832135037568427871574418406048090459097575322591803584294768469728058127251454565568938453713406000238021451541867987203209098439612964739575599001466515180815834555649636632899198419595276352263121595695706591510166799858629426178689899399386063872199375868582738543164379593858317471428368323045136329698602062201807420995632396436883332508270376860805330100964508620706665238442320829183180030449534988332746315813717884357496215893704907100745985339971330607632501533223357542175021675541029935874299353342786179566385556832046944045648583034436745073867173271089820773490968154153477504671188822667399808389945449662849104721662414688693572221410344779772282055483322283340686818361899972987337014839451280758983112155089883376895508670701814540747484863125431721961484371786919120396651857195570169645254266145910643289466465139075693770349222463395425660839596152547920167571076017137032165204902544190605638302520312541967292017821392931095764037754161804258404668184755821322394051068455478197998294174923342824460694500719561618458247148952597698931275609648970898789621497481569150266028066989621233867338040900617578611635079672858649246080897253558533714696310962317865629535526306076635551707769968183202261701612573460247354614630409430152282289598744307801067982299736071189092308725370836995649202217147848085128156247555094375895939717494351464702365620989039261805784946929598400479368190042269247572150089246125351364377874786404927764408766305373156306601051977591144697599177157290507832564181721167445482109995078996445369278544608430351090718574671863392861387315354805370136982093095290888714336939235411440176768783383437772050430499238632012309066118000699523504201121932257008817745371621245593324683567808229970060738608704289940333485016934772834837752538614518454914582137406608893659465122326207541876557642791603238771090839857960972865776035342802812236393513065444882768777262709697951367897662550516283374788142762761077273948661635560591341374512818750170119563735890052006110228703555873138203088750499022986597157362515256862583220354589965125762484134830122699453240508904978774433994514646342224347929625972771128023432539026240171994407123209104918394595843957750979300083705749894649529868948015611302562048604177544242663304839581001905699477330143319226708587192031415855507512928989924697533876533944301962952125991967595613381885509064586384156106741259969531476594215891198191687194969684729074359551110612203635747430671276920698798726176048322469937414837482591930949762317536949735905305707884475777421539359113532160670166118209070988284860312277692297858706917303146388315694800590188553655852097701623354679302185556620685637522647418533708605578303861244197100414041284141711313648556750493276383971723397297107132588479078482264835028068077865124052340125118462015725793767070145269789884295553335679472570013759351450565254535776944106038008627640142792303663911874415065499920230850491820234501688689972959265170866471681298482053755538753279062830686435572101559080703860839736633643173768975481738007332753956365291837194412071166949198860958060568194493182185003270321306078693478962266815086527056415610966027431497219039325876611359389902957801221397298470396541949017244261880501959230405616331979246752401293445504673799188352272629929883301802735288448726225978208170262009493906020612169004276992322842521167307852429295274367807099275948193128516683073522899884402418865088150406491683297449299855348355726917016660598824774388911784851331988426452967474968722528931892941001161741263875002008090778110716551334726212763430828089455977491474990311881182207833305329344108088189220068384673291603396709850740855019510556426061404330061194190661033892783554011436561203410994156627018390812571332812583319209130229721186734769831022875642754807725203838815898719704633898586849719306312793724828877442988954712759376309303770989540228370141868012216758825128131510634639942458527094936596732004459302849881400940204352503641000431971048937029797689042887605103139834930666219726641010835229992409301085370554394340088983576546621587879892442416528824291079582961162202303949077934879083760754893137192829091662411206794095205795918103292995010796006536938837029483423086555638092345915600638741784367493910086259158956601892009380378552205216971832228801844078799033380555033634596621797412257883244300725050743102422643458721829702080245217234599743092823423633319404423452127181741808586903882716385759195943726191039126808414009325096811294338578935285103390522210555959781895063949628840478266242501427920002529313504145473448878712389976248316745114380137305401637932003889696464236950795336977350461464937836752291127444855179180417478708250511784076637643725796950398276701614714779749186629071191681868529787383435266201553936502387984154814246536655761189840999525333929508622909252883948088583872817787700998421761933293669182915112345735178295071804770641594624896470862790091351585393469530905432111586848616567722922326809833860221358736355268236924931791685643780582899312790963002147072665672134546424088608319727993006790981919823216735141443951943165205889297949680134362956148499856158510646601413442013471198118502535725465658828572935171347448817746041938727369293407353451528877461283521100004246368980881748356043348593653865330582506151934674959591947790977989730834713932204851649548830102882082706191069523388942134110282127252534367067660114452861315771266218320131519701226288214361100695606239065859111855466774795658313145251443321599166329487658688123860433209579396020026106677365502834172982146585820562915781371911031898406634779302626908323830390775192427031951888475550230116922971157356805146018555232751707960837948850978257580115519487758498314269007351492228684983797840903663931378016082597540850507651556804170329158048462858846665185976759054818608271966787133941092918684821862869399629821168098027074539954582556779199984214356780670196752031534683033902110122749967210285637121808969185129408381661764636044729906532047092464956636621430342384824616504033027418627403945820591523089175656249162049894728621145158103228263097285816023815164745570913888134637071480050049661439054343170638611099603006847036470832923233709264553942403264954264071479318777885970010680390173016654762816137109139094001890823708237961540463731306202819505307265242829921906977110831177994512499231713801077618880720337114440955178359173713410540883398383904643235614531042538690417434679905798371200112224408026493642037330044846152150170354038447125441230889344405259680539480156641400975548634078716196602193702793270853974949876568468363651191430014873074872009177747208865064837402790714977903472031255378463674032780668179910559490395243798456591974041546388151273279340943235675168821304414807270566673197386750759946768586225978687895855881820657795642020150739047725906361635035634918315930627835906414131939421256672652600419713603934848065977999996920711872184191050433265770327979751850987551222371529800838721035190637756067252122135483508196756826374586269095053204570368028857441848808080858583320431710597726673540592311863877379059120592643276304874697061533517251764343528777548500594083814619580034692394593190693453133868623507990237335875272474948130026374841529071046089896138738006349943957884460111442037409485084874073790425053317708537278951149756761600522123663817150172936573770073020619925658829730117793789062561074592378642317031971797700576739687936420876838199086645764045239197111206616158167804243228390165749232862982487810157811494368813423467979123730159941063601462345130198129709660862164556043808330607827194189489465732919993078876874680188870516378687941332579764218773113026153635639995100923483742844941752303552764091796504074018278865156230159259267675184242181706389246192909313177447457011583188842660122858484064435446033180743590334893735222665996068016049067397473347586741424754488719738835170220889530528798978557634734923308422814639175951680519235393212296090268191570208465984287326038307399908525108607171671331262355372321044802240057041982235264942172616017226301368042504289446461987276621525348495995983321611540374130877490108375101085870214100647865410373396047605129275996903959275145459357064457665848556685344271632883636779852561935080478615599309253560776119990839728525110118363089880813554942630028725699824234322148525944011349393013075118782229768821784084054104389319752668302485927623054116859637064255634565862864935230556649831892142934724384944287513473839566618699639299547279779363010061321810407756156995232830236889661260195409361482965386716735988534349142436997319960353806484958583583870952020511578910237090941485981950744496542324954478888109851783489890707043116967928988290602313965291260956161389270318384128946505326470247781141066769687419557327227483267496157940753068216037310260985649483503832210281773982534758657336425393618454098876420147185533610965998776918767708899077440197150931347065600314110093493444383701728233856154123850198978874133906444121543975313583789295313019335916047977262251328985797164321556682553132640972373524301172192407589435730951394034607515514814529645719141219116088451486201822202870851649569249866248598337847366402463676132169843665727655166358529861501288452665195933361642951119718819326055519841985639474314445463394936544397037302398333736750067451589856773781536545236716547263081030169727205589319012642172607921245776303760554687199273801048515296714939925640543752360656327392043527188915052674049055221809898198374566130999719856724737486654884926498556702790010527664195026829373277648900335138718388280817921138536298928627383198549449583116154445870555544969412972275448644276283301149590250107302200534061659890492737014273009681124006169409101160111680666034444264357469786523052506616262272911173857014424692617514438491303807580729677897219297128152163848015031539647927255383535444581769389786133214814948746729945005654098955798055810468544614637802346550943530864479925338445579148943561821049895746172040744847763862254007816126363037420491953217204448029772421799117355351814882731978774234293602852777367686333225729104854571768242719255039317556013199182055524135006731706815170923469706717579723494399028600623149018395829428276344129622376182388197111957396310987955478157939748600171651523688862824341799112251685593446265789360598010145429738852623724426039202669040119840344343496229760994411201909396666693710209450015560876526486587631416029603872533681030489523101116846151652270254900727770978830383910617260521425375688878279159304954894827970048495480907400396533183226117777112589672114288774491143574530698924792580633118654421674122946807042710999670848722465332078256180096480984500356875182192951932601488176792865109253334879420972807360138817751213077462941518378010151866636003388069646715962159336477538269468582521947147117877161881353206513937348231341339100041394721140105033612653326032927587075603911455945278859558855399719272008456854275837390935871565153753250443213748986067152929328699935457138409599975017897646996392847164469272872787792881221432289265100206358643264362262927813593217200058845695861127711012519775834891838717654374023126885079382559732120163480431825601564391407539681097591364641968408429094114761543109573058498083733913741976026002403496177363175686374584695666520256039574555227616708112444667964791064057994286990419858918753004514917143401012258364006142503683781725753069555867407000842168194154979936486873612512289677397335842190682820455109838995429120609390382749138537575691689802874400709423350961572205574277809335431197773771556687902994116118500111701153586952082203524582428922109738317793936190705712211317974919933857804368155965504448870610935608621387781016446113597890814965141994422911934696475262967147008964863943417864800607483276774386040405020151667577943500010023668186476561343142820118549081629391404465170933461567283533259938359065019024749103430424965174719106130426564799862907988647777761104151092197017132586281947765140435869656857753614462233960826353535720204034624433134107126139417515935972890350489437990199950777894099096016346648557114416412422992814842519192040801988137680974452977131833439795342999364452151911774234878621883651373119034803986629406409220496184974511859406137436667127395171726358174741294113552015768972147511671615363661200972753150758896625709766075219205975356839593640280954055030668945411590176354484057637808309018330702493452709536165922574312957280362957610449828024875173374199737409666740097134142514544477797674351723625307435380944400789390502524336808098126389679962690741001846955825029640633036527959488194030307041766705528489717195220969566516819839489727817611897246070721580393742069572502026826104885826083675027479207179539881834095079568984103237035770020054564826145332083625507883452050447217189007126400691373364193374923044121502120482824519466585773713899525224548275214371284384385197589891396213904336113049899832478000949756680728338313743171077090539863694758899173591815916521568789525418682535798243054376405984804493222851264248277365460180750539979890277430988543952696387040891431947247578760308304319571715423007020409824660409344605951229986406125664880033891146225912247731039194491196636096226264650556729407839340378355037367908470494878540999281517814687007274564294696125377813995504134459241626232576778108021991013333951714488615613090097708163931476721457697003275390379272548558163494945560218621411281418601336208431742349615957930816994920181038919445382988915311720977528883626652606800970501462043081743301191340581933589903830558005069630250180243269895841200759523567807774129783183012505315565748669207668958657333362226343849286784352319674114727513868443772148478036690065856343582558132742945599277472314512806656709487607160531977121830958044441395007115353638843589245343928913781266604624064786575118843886697768066905131762157663808662107646705158313611738079980630882747680997647854096277525820318133412812694409361340337327811290278702178474594046653110758095228351853921918538236187653831890930976656578603674872361140792162281191848756315131634793911309266981208906327331656449995895269339387648759202073154805574497087454387395424994402186781333146801785818485969532927153200372231994856001632508798240970840246377184754514341894724691972050822211317604909459252572504633355654496244528466025343942791661400820329295875353931831930102569567495063232753484523291973430547049609470661775513539188356875253058873875590139470413947640468463886499911959433392773845062143707548084503278131908831931656044637906613808563029471900877163395397454229049625246800562259928024002891892400518797404458217044983949440465598136914447428163924171039671873376419103874214873323624230623885588099779091868776872053073358163196292723307159856046114868620255406083783974394890549112490885117838876144425977803626483180790296975535138302162462387176404689653059885607399004490299295522471838722909186771478852372992012317169189728374539750169520662214379836662807432916905232031419088881837182947175155237628376566247976596403304938367912971294395181359472901945078434592941415751892696658779874255627737698695928269258312373774214103400451782858529744165822112789704975051206246835297788668192911520284715403149275020526285788927057352980100501630157482123117063140264117669646693203509784595081558426674239596067059488539518902670491055504012950690068713761245402198728767461243719321214183935413989688232142310243195552126733307639679708696140364645264288639312457958870132395586346692457662686942286441722731976885383871992947052837725435206520090615431525398312525667740268271887093106529606878672730181355570658381231715578408614299790430576367961644173754553941322033039274141840601711575477657574225273279106672099163936781515176906836835786558162943426054636234896387574261168588702181481185748332158613486373206640356828121243375238299984929034813770562083053207177515295696730829932125098816195522098770658657745153494609268636268563864408890351472706880207433446393904388620210395016332761335681366741882679538241075246292453581445531782303676140016454127491072448444299578422796358855195192422213362868000055204052031256983696988963724564234384846670960301901421626061687163501570466918870631459207192971309361810408258759151209370630234781155576940099382772962286986387323548091577645688820457242476703304603974307574752768859784233547173668537832135904589482048625053031028732124783484927112658399522060962338493772677262216861356607664601036038375988078978104033695693909690206283437123573574921382727833556545830238706351243878660591980876649045955666715072841763231019828541209197714226429964226444688808686596107875567257974992838005016570416167516294244486945055989077232912881921431046342920623790527565750477756116377200678425255911865252976880887177873440353692588720567031752500748736279085153248411960517553377262309460701928154779255304465719777531092546136835851134215799688959306221545136818533432629082643190614225754934317759605260208323820279895103625300523610598495599402689617575957917519061369871424099731618978099072022932619313489901447575324122222124824598716665657352967378482790297525633037128691887663136376611141803716928226994727758171824601942714959696227857650168424899134653608655883544422279126767368707295525772261602264141718500889369234489911754000311196481113962840055209016646331296731931657509288013586871964620974918179087312534195921366803458660554546977093162428956953285669196882134128277686878244235167367529695873819313007014174180703114063595792098517660611201608340567382166720124338046322712777850009083132288767580040613605562741049721970831254275313432246623685114110592465653206976632071488157426833514013227178116691803486177433481730174131684473857890792557921186929165465881628583232270082899399637941686518060699559724956462676026851249897057116310857425030248004702748191273624303217259401023105970045921725654202985835438131612022103143719499880758505108974665897879331892017426197815272149975309799366669941499351489330591119616124658613354890733280861572157292890793639932439822022985005471474221705506726705557987558268571193674578990581417244478740895642193814148346223286233411979272776291054845260924922861137774283859158985001890030064394291702502057490037840469777699602817696276878674802639245310071088109177820099374904004911940911339850785933469563806584260248881759270973533978031241063446938519244050907306487945530524143447056777378582963929179642502081892716691992761480319856802950132982217928684811143560589941834070660695564555133780618921463334959746480413296903490561015392215782653965582108265942307785374152676578339335031298598187391158699808032845391421129468424991904877600032746052367622133590649285324649821683992805683835288191142645280530588309852582580672453119284463803933949547038951454417329353090813697554303425531684634685648422491853375184113433752930248221081012153811413333209428517640665674343181825708835901115770716962172948932765164957006453172698502752940986611452886180463124903251738276694417456277035005957840618983231171212265278633225425259829086714227922966892541472219746286344635302111247397711063161007191935667069979605735912108300149793754029208076644654211231805688911680799599630410931580728163909812797989152983949887393524693915295800483487339292426298012181041010577388720910171328959511362532872304188898974019959124161856788868158167115026312137102599704268095559758730624884490366812249877586533416090839360296244679746635992500533282890092702587777992695728855257904268085217675226267377817071973409967541631356178334163289545673331271428280744772098862988312482671503697734861846321658980610076369221517102402579627879582773698637461663222914319165968464759779003050724717891070625910329805774695912260999008589801145942439011046534857966335911918129400565259434030261933634675342349582407339893290114455028427494464417590899949584416328415071639384944241634779204247201918588910811561364773633919798641702881491280338517188383906195512417964051626074100254034038996530859093206418124046803303614233407691608955437073443221153778017287171521973241360945296320960714948433733818592194538067197914703373121273317413717964411492125114349357204906226762983082023367690999389797058177936646382640610291812647267166206064999909554637653818370317163661009852338279626845530568337625494003488068700893639004468001693628928136583838271435343077376503494286523607274001407727492300543967868051793811818190125561715362808096083941377818655242817329134910630299571883383847179745338239104825821603844765737426561988086884345494565252205546120259931658543705163822099600233344303357520016704816951472900849891962407918485450911276401484064252555869602184079426885500226541232516831835080141947301125035830763015030843257292260910701276741031128556193231476842268298392656618333011506076721440985307561611908056171722220728555755551669337998656093909978746101134388304399507393108814466546121473616214222981912723214874240953350910739136269268755038701107640239769095332335703857527740526560163070050585031544625594728134545637899764315465097346594898448345037069725601848498476455556776620627116223101375688284013564909867685856867380797389089436478683722933269585775174040935567289261649484079056776680486269001487799011513831257080037728306016916770468744025287101145023376826605987838079341621947831869230521264053036495072471095539164536910882502550025529691005319802947474694933081397175042602464137166412233985360523072143333943815790044726170157035401019525521981438403341197125126637491243325056201148136233547617241608315652287779536200795129276985051944557609411830264453550177055913515536573193066985408956060964094879186964753356196343640360854715307714912410780161049290941396227991809097726955960927331200863919606924990736378126481136806060303316515718132706738356064040280357999925392937279847453629976639749624636051438709238630835688701712379343561373543756097441922153260746389394994557635810374064882549992122413191311401969724022916563363595911986402493708785592326875233462511652382986231165040710293000477582053068429260973347743184621225108692229680107878367451992779890394294274403624263311375549522103155072021505427151813218396287971641044583543883821037796867200024214325941410098109198177886359291644806814977082356890955726675323830691606854379250281423774170900061521164151524284854475748739108862389635270920968648758566109846490382555763368974099498065536818761007313625523147797180521126617186017006546961620296192343232529952946576666651757705531772714567998011335906235946541877348007841796337559318040090230360517405991812411044343133175214157590874053949667860272341781006033275825331832463298328475801465522086617967763557296510278244415462079343985702402360684246531323334401354525372807613309099293631953789083686087413893375629297095294920859840057600356955388428671267870785142589647862642215400749101080267514474366588145239066712616780293964959360533848380860512307394138422292453635280920918736562080471691796252012686068768805545596918166426640662619635704132338522598871487296826179955145824622022692223102167151800386222195980393558611744696733357804633947069765802154088214110425713577639437147289094678053699059079076474228893307469877277938570144376709186386602417072753125499075126442402906410978639730569874229569859545010629076117926462178893475036190611552288704835326251285248869924808852190779284872059571090051865471036412389947418269454984094546028039818142094298552047645332712891896667972368607279206791111760130774327035195966336324035293417603207495911015572439781265351558356214757658455505254312217941639978729156495331878406090502476245692915880237870548272410642787186105816488664527346520347433942695364985593015893474562468040277203706029595842793842494134238914631692449101842339013126897387840386486071038083172301024490984968640721379221419536001225841862715112476154428211617759503833596898770978931329200406657800841751355746180446136205534972658370712842028787090489649413614182769504448229823582288925963231351241952510251729133967521934570394983855740412417770617678819056426170194384997231926026751617941410922564325259470939198900449317107234642735662863336471518827875025460116309646462333714821249469331499528071878552182103656029227988683623955285274470996077956516883162413193287899515859183536690814088910958793153904146748560579315623132485090169336899758691073921030485393953575419805496418732387881041707393452912715062194970179164275323678456471238750965152562386230758454925154435131129169206332032437269047513332772790782363394164785118843379673522571407591505580889076422679188329391314145097941594430993403439239701241458024613162902179884294315373802835392869992686864860527436469746733320996135015134274370091601154590506235080058694400989844834403719255032884203838243446544236541541941086813997205124089396055754610649375422539530954343593717064695808587185455275580572096264798054987050978593149108303287093750740287317102717378794830305478550889500282514112086867231489918598666963342136315870413720937898227178330971926752051077230585819810744812546103879797464675872243407678250426014029675288820797338719566514409717686248966197586038645470811490879651053740543496664251541169923741738192745470678527307521376514804483824736698524495949018238903783217459599739808857561114661458358854735831205944546121156107325050164283186006689311788673455455627487922464543226359233304427434925490452444279211794216852913670844610735145080838434520343915385559617374671607004867353354917997489146405013009137279497337661195598008362401000093337636276271092677741486507426924604278045145675390366926240666388712822619262800956346240396913690454126340741550794669069228547162154269660655015486915669889238980712290822804721688029075426273006573413561514930713051741741423392576786277354053206964647330568395898934292940497119023631127403211062377863545195883290044978708728623427580390772879570948551311687115195827769127484530927809595652274946816090131853056768166984806570850120994938798991530479486397662641418307652165546755556187848312841327959259994220893901442482423203090815651917874974669268672617940300979614780504447646323984689768054987169264799782517786522433062393267790230284975565716149186845421366499237129546551334367854636548843790629509270022868959450560109569086258571225799394568413505494348898425655478615183808346334777147025894790093860902987796239398850575100213871111990521866352499727679436024498538144950067739908263972541926078802528709779129111525177543730452038845752942049702302536505859465386365650804983581517466424088420899245036046371469023001819755899105027092087927318359370586563613280193950432838900060487529489700058863287697752407555161028772815024146663448299804913594346738811691714968613276129035327224339169008045035583053032956432762055181344648804233792839857760014479050679406338301571601181448884854129939030554610622556652776907836378452559348658100207485149047606985582584679118836021164292267966481111920419926633083751769814233743420079558386770481074747494166973207843732914444126744892520993225289052327064059355600485144081926411742274840359734372085504393358800442810753646836860455630728628927387227274559524237909162442613376909046728530232054175910447885508516292033887137473169526541226175081794492857691826247955796446397885365880559248024869397818631275956265276176189186058655128218793366527888636675754077892979900513154104909779116406152577417498201498223971757552037198430604665185922155113927626373619292942868125483305675499453500856503018347338185739917537774074029150877236022073207261197129398575345483871891610226873252357412208466986737846950067095576324145763973766213113720564286920672612218057734640674013027449592921076725452116932062970257416962950229535444631851998113952609158525902825510580643024828411083227870473507951871241921414570069230117062830983491868961330813990570437750695571174397442237788082711480156235382816083262641608080590950199461382248311380920799336327941096590924799691753561653898203020913573780627145921631877302250969554118203308927115440095755272959114984259767682411946676369263061359481209139506698446856932269844893247754530466096032266639245573941690660220778873435041850773789570821960467234216442453865095263392753134513151688167195223095521607769805957700827756878429389638109177421169653202552484910188782436707193755204638570740104908229041693068511003988038069314624850207119462878586206108920415437703076126795248101815299316631581891414854132707947496524500278627485592803496119438601372665840608662590893986804156034715084385599488363092948287893734382129487096285283465884850705960101102880470945921051133045664339507452787344668894211966136143359027917393233019793742027092688718978941624204884175589781025799528478703907370809399553078020615206445644751797849841012846919580130990175488808201349570924811163771122935354408807363574524418819879788510922985252237232588513785234955321644563747390388261032056570029501311456506424338085154932464146779511286384626568361547129352365052554452097151293899832173400043601325360320148815103074073263793770141665292604746839733492331708409769024525644717701807102147616518132062920393138361043900909714889615087232732933967519884602525701069479969760840695739728027454123061324683606866425763715317428728735334122398406819362781593049464032883752878521870468019275819350840585529463706989686465296974362703039587853758739922136847986164051199299819141323309386322286635381212656314768535898062221109078022399636424213765829829224311392404107797071743132516934096911370190571417318101571165144170213591956372028635815741268131831655707666784472167473727792864313430116449176964227160030573361783404071586658463193125539077115617791690424079977158079274569718292878937684401813218706875720988896100771102970919147876936173603916149294362454024687095260724273920378078256951605838424883397882948501806997615306798874692181645222487068763976276583634431123573656339242129789591622228775765257175896254038623083638428936228637391547726313534885074462602378718832899788713328306147167083592018950354454235396368436627641709354738416386618184430688693169648343543659289101468533647745488243242942510297027999360837638434430354879009113797301077518275110905767276254593274629274553208404229158376034576802126948955831816506455352102133617737813696612358143049370559223712433421316296466226995514177970054901077221131132890990961938508280232339880809180157136111425455907590543921744252457198438420620572821395931591598312897655115168514102846944782420985906421731561960115429145342859665074103734998295397336563893759289827953234165763168611662968726616462924554845687905365217622515146549659576896425603235464297686465053693812576742331774482891528508487897500022643971310378250198169215068865184441621691820791472553894222049130023294067076205656472378231605058925630167227642253967879749306992690935893359847017694132907331763702038574281998350185350167201495151472640394325843845130998173154648286420048247659463851797055321854591509573190997823547159691811793599677033617838740135631785104018782499987281856605261337979479027044795654292814135286945067765752711788041766460036924391688190482700575136974502767262979219612009759947086281205404054617903464493576354903716710179727228980775137515084423378758879900415267043703067799819058052325297106785275742600373317325977093061429470187018497227125253235677927742650146342930018524236840513390823913303186917445625911295094275970553063087391808278281989939734014662889098095829037523593907862724906800979703465305787564093333225921345751108323458854181663482081091326796495751852198399146475076975989170339464842001347410670799250511874306935690489131989796391505629053771876818789079974663451856662260567285339940460296203280683304168099393542176944091663768527006999355150755128665293672394968221470906657485532310050992083246244718688716862206648509347216092675269936758503442822838353902421357246079457353250570685857770034183690980729399393866932609564796094031203529943243188593086574109968876345993397143734702140132435747024817216752544136376033373813009840587765064200974295868172921900678873185404487618798580729822650816411352628902054194859826632857133691009745765328838778647173739499834075189775392092056477609038987969661821077279864416817723715256458615425751723121370806882350342848600221041740822601285210019540627403948739176867719485560921302704884854241809472965632831493383711111550725939383346069423939080415941285489591152135274039973467653120310876611310088815470681744786823961251250716364930653575409183553491783594883031277298539692701701079575698704783611948871788007720807804117195443004732605650171368553806684420269038305701676045188809392287708202237542577386571386126315943826315315457062251453003063095811662312963078192166364765812045471729282583016208241174422078042346668794370428882099864030387298580602607754912070089178160467196411771970559192569858155064945203744983384918363024796724883954885175770446096912873104091813305554329117263367069363517388962415266185446948762018187966250175142096383594962459243822638862476521323334330206564192874781166500505600702877523171193055136285652104477395909700029393726016863711300245167094701238124457064260877278691183746303192551281055650468970917068586258287350482471271928982899371975486599079321282242522768503153534948375442985336166909842302340563507912862544639954188651152323834389292548093219862525473996325344669623741980347951935238939332523850766995473061838084725824876560247031678171517540902687889254887725964893694169859682919734044309696402107680511102395432881952720318156293471114975482670145534163099672025827780133951868334375613696301796888414250787613742917012590544357153922239673484198363164089659870562979092791172489796622426093818753028974003259040390836632301497338239601077017919940951579137989149726962949172008055691527577292425714085499386915206448113889111668209700023401914540643602882836750841677056749119687300323187536120655201522537832185051225827036566050366071678566920389286583545865605047896517296141491945950581231661460660004004299893216933099016248147063058090781501852342982538029893600775303588167936445335802182948322303520233269953783699707456213867147167182774061034965974196524570722979017337577068185507057935876777046106664151853576528118603470287090400927917092195028546867533684272355615373448940131136692188583034175074149663715836305709298098613538146170109076119315378249977972726756368148104007849036993104258744603463715291061839304908381172745481825879995950955417555515735911455962574107003344688774106565162943010428195680742042279054744188039855659209612234791913018598661424352076523265927061605002871143200215257268443337363969251933895917465744201961080680427817465971196270581483862408041757650008922300772139411448153677482446277968970312328745264010281697796251857945194288036713263081202928292437595140261745578959948544837690613990658160410404700775504269762882742841733154787876628940628567366159413301198253770646578401214665709808860096963288247880144967750848649902991860720250329065569726536778100011944114922247997147766235533619345534751109116861080924170408283323993202011843285879943749923701515644560290015518422317848467835673436996599673378559456142761354555945694983292216524210123388450819976117406643314381636819230587603888295103576498085001492579201970725045564130526636418488983212383327878630907555297409695364215532360026334193516815668531924362375486644600170994084649633755315401507609323864596567607540922047271276804773579622357971508083437040606772054088866341303542564155639191844857503927688066694846534396560145242469438115614331712445586309764265900234788603526400654866600252694495855802163006670564709347420881789180948970822070912988368243196453073877005477642044772624483314725740333642638275864488627416452558320998210289795290819132621583963544702444723069148560102817557700771941043877946367654650423848229088857434346234922842477630787021807155180915716620124741053869899672803874768421610736905054195272439226403756247788945454881874723086850181224514933808459656627009390811397070718013365485535815622254397932987398456979931659747381880318963344343132501674068969958248071726724883090877416022810177183354125312480005889903273498183025393039472336643357480499763623454756766827375874243921413731395975323167428346059465708494831470429103891681447197914073256850512727262570488142414091376987260263676254986123296875706477854822653643727313730576624137460996692490909635873815335714137416019233215733540672885519556556825519631023989679190791148928829629588954258379516699742948741382564550815271454823759065876872919592158686508492950955615809777292466085449881991383370028822123054676536754515344653915420903951784037511133109665634366326101103432550469156949372061516635753732842331647532843954705562228635209704734703432858182125462526835792519280603735569634627828629290806814995137990288407661014010250931521391262377174606226941684404786298861665326124912373140853465535441998787581400792105455207297632995302604374271120544692263487702594267221812099077382575465720055848994395668874460197078738465936540770773773804353148126635538511468548362693659182226224733524004407581428495422465539330244875263511007023695809494867318979475462671183548908112806048295208305515401834558021369119089231749603352667653989445526967842985244763605198467539680395708542629629938540348752048439032378082767903133517327977874383540862360005643311663961246441298270936571832206020821631175481132004695501589547453405320240831666536847137903014447402554209831971785303242886590376519964584741468385365958770966352575181776239502116508395420419512726888851928306989934472471364469841230857914042533088070771044887915132458144178023619342728478953768278731576403650548625676290991340741535103358694684704476024393932036082798709376896930099038389161703291939500433823030289697083376031793880812961099653431507298093778574105688588359852984653747817876298616609967879912357907986391775352925076250939468244992203657010112829846775891326873094427616872673257296728283082602047601397973465133360854318902684852237774268971038342921134386115755888917844983598382676114320215056109716964955806932983270438553475052506828494623817499585350909916017698001884236988474384574362119479903029003958123830298991848148116759067856006969696486564008098392664763784337228039651255463432595548409503422345419860862513241275782471765468278089165651390143678940677071518789083461675055352033535815787917104236304847009781816306872349057802191160534729714940195762396780269957419342493769998752544309656133313083649739414582514422663893940297136604021572249887018694006527975257818595383735621401945540674299464329620406849961290815473612518010559901310501003436616190821363914977483668166286453476223001198492451563350887809560301645188313009164387829840196878779586693053031168594428410954839013928918175547202265320352691913209895824477120596441104702415903101800089257733391995862781671145518795337369550844410423062110537873423044579794484267250669193772740402090975699291038656543598054410564175272805288380358605766459508034159913709350708884845186109987378911242833067793064606439142087398161630753320623053134519046246500605443450382871577641320828969080723463852510208723291041723420605327073484018494707682893051113760760585523122520187337498529720970057975347513853257760795432675264468530566029638211974994840797977937976313263336447898186831254518883043124068832083880483561923098026137354810804234724314560934947638881479176869759612126349566965120158643958920194179112192146441086995322900872898145090414106094454198658050580415192765056740310256506049884591068633007821709556347109304194365610607050833466580437688725629115603310444272701912891348705854236756689036010561258924416230471053806358543272549093894986239132171956821069951049526904982157061427349228913216576735484103369041679287884205748971245539673176697394031677175059576759571322293020120110311359913965491940626949509099364626885147243824802171574200227611102577009031332214778515714897959481405764838287129620368839378156259555961559948015066708134823018253872840888039222756657976269170874148369117002921302466457107438795269465723906015464420925389266164488762610466451822779575215852205868951214611542587755944991437982147300178641776929183997481613734657183478431729357314560381743831509304787693671714084135925175236754879126101861455285344186497704797149043185213920819498588318511776741538110510818294880377183232314427408797953424466692709468928655975027352078539009479051255450093196611836402499038456633372707032320702605355364679428145474670177796374098424163837135151463010707498299150348064301799396465228429167320946283365662296008161965726402925397862462468959990995128084157713790938401495626749364046838982298615647520543517793249362307940831501007482145949211134801091897408224999881402996578089792994602102878926945837654907554044682495412529863122882675970159235753998256132465810884985419803691003508800209920692957520051864915253027585039240379162799562664098667638381962698667389972049052370826620290642895948013030040331353745398592019552459209698644116842272304670300609285495122882902455439902599451820442755474170818703618406301288789541997731962609426379608059718200594716250679852486008006540765109885938040888602692290221461277933306754466758238579459230371105782222061999834392830879230787827176448338982029841477927248030443895853853815006255649209131134233688301808885828307240954544553944181363305314950182798344130728829180108463717039554724367500840785471948786029785611982078891695179663974607111146667287454099676482448692846182951576612577754213837566240138212120283852027371881920645680385469283127623164344227691211312294467891923507203472577814080959112579078864135399746813937478929590665302993882644865322693671340684418981238719321759376599012443294678911243998586732089777673259203502602956702761588380409144368096536897448009362661493148792767023802103966788908799784827164351599936033795397277062751056097274513405403109917469930095252602932830207220660125167771851526422677584612211930260148696693521777784916135596176689502559531775306480883940341725784900323335753423097638527376509353067344754925666603581612153968893702119590596538476247315333430962189977115908915026572669371237584483373476360578033522262756963882384968079444350914547250926695627138248213990377334930116587581544733010105618498008550736885831572653537839846606298722837503117776045482753410841974562543395007271777993228754824590281005266074333705143767697014394085755211004908300227027285544211491730521215419029784239004103667410287231303734290413281427305030663015475314679013581050537667142895281465726823820361377839624063856077687594700453171798893407768188830760419224226494377683034981475151752097498627649305051885939030195800754259698354365998946671532608578874104831012714393128591340264976849640762070533606228482453951075942526115546947323364280121284122051672333621013928552339942827373331813475930380854295316854220566302595104723274086862899816461334517707681198699835780222938387454657432436329278219870327373765119983106859404536258562185376949719356390295659318830512415222016100961641889178789313053308895005781910505694756865553674091730638937592460644167100243016164255225889244701361537826744672190300356249555851734375137003096982224476091640220567488034049174299417414906241419759736989761775533973670742777749715467410150097545099429140069915033537844024887936720050925817261027476870049645963717752287630239407252684826406332714714731260995983558342657331640201740067039367188643443904438862218162747868705787325903373134704641479872371845991596321198744398042714281890227408208081373727762975587658694798310226448684215164802542716698340351395142185307439216951032251592070779362838588097437447771648830954729263010345410535467809799519208492898850596023229192851870708610124577661064893316517173191444661205190720547815094670492152950784146545264168172772663827738938422052545133814771703232877737805923837076781511746905503718156269338734908862663832522178928529413096086366279835520559837965595466913365025984169099000246226423313047960087570247236292266427210478170418234280145159576249769927690460149713373771599986233997710642891189912981929963695149146112072969071107521445964265281834007551393842514001808165857727437132460063829372057267889187490426100887084096265492184696216902262985350379609963495203829118860794865642378170911577475132123733846591340472524953106616903289808695999906356625920732803040510209139929462746632342929355154756312108064798170327604809865024307094415898448869795551394922646258191161920099990500475920817872075362366375095130685013078680880183364617448993233082999937611925930914573087344601917108157430746653439394955712328606410056663754945396804497178629130823266992725636669580852237219583062646675809419304756650900035124610569270932843118658623652094096508766423578651880366877626254100728172604226076355491967649165703623144585807951467011643900252475053637111371579720063405794078485529624593189692279548852575406537153036035995387361911176042220659134393675803696134207089034004911334888172184126975843368464547884292898614817743787300887881597831497862808707213410690653885150738477352890129567014249426200307997725925653688710834116301649276754877531551124765577668228854559272096565682698738238125956836895603828808298973264336586213057352111786089712681093609325839302722584601438058214497000429233401305289121523593435381621665837443172979501794884539693279141013959389202260255904590625493666261874551308296711455038847461311885638525113663805172610380969890995755256391889877581135883826204061494051262381095234192543599034014511700172443160152119578466556003339008762359614131482465563320806279392156023689159758409022370666471476612399084808952236252819750939100416090220698790125849352016847445704655631251520722646932142147232559563609563410220856540677229014884886685084495781373963815148501674085312569869644793267058574373338631805093716987084228602290649731664166256449243893708187272797033431992841999370562473741633612268728779897920645983305104008987893728127433720579731925143002823541622945648471237639691184373737330562150887781620130708233330809106054985244781700818619279505530036709024520370929577503471973324316116454003405754215560075692339492409478373705653256834526538976036020868010846951181810772604225328166114838524177276299669140710798883535279360366739127372778859615939496020800093796352800816178012211770219389762175757027088880663934593572869309586177999251148057451952045590392688744068230543513055788392236357233038312672636844361436957279432459241022514253293713641601476917148644848399243453600188291177588267077662608390746064182104089203183676027548255645977684083106634697011197248465259623121679264944660248988173860360371263442800092529814187855790038042097249369443292693519818901227146369136175728998706242906233927387536013226003556983685181655061111994502447796905397465886048864951031737546129261572779276075547844156121276238653800063114758924924921760805574439790980036286785407277777800697192578122220105935152928304570761197449732673578638353490005684702706979996717525098511119564921043580314421500753423738525451163858200495608917347426354213286930307325861283716911499031838465401802981868531924156259032313160464149332230282434477136785081943078651252442518292480783873124767495747828414927094915027513371861794004194073700483322825798977339868781296073047431628417585597586159316356234671331825746380618590343460206810630544185825201542932365452392625197930186918303424463220330502040818292773751127907096184611229408531340368969836362689223125696266632721927953060400517296060337526785399230764570076403375317037968678568302373924365473379551269997095438033839113880328221364176973795474324202453850225512008051336019620210456330898433801029531229818594592536957853029011375894939087929834454874068964794766548333275910299113681726131565218212999267521448447747988995214613823367087342595134928107954071195083639423572311685949888940608453916724575042794274570369217429200036587906357762263533976785209590627930250014543334743431178219423172182050986139980198082127282520809626137954929870716397142764287312267058573625204270187406681672114436440274751773306090462347422646025039878002156091836830407141343705761320092199502990167509781953304758558917794672527322006024945752426131267080372377299096140417882579269651818614358018526544765200802028480505498138564816942872764644387943323894667190933812512740021770809288476130172820957262794954834919655654879853352126966569898702976387548943206710645998290463236151580734718917278489028610316455505045763964285680554117052454850786797945151269364940625355673289831431709654244058815260732854355945307967567500891867893843631471013911017698889697207016629697867223500467743028373180568900213319537356981037052144110935149770638880504357747367245640200797396723389507964211856579927895376714900574801995377657298027588245480668246192682203763191344670615430640342866400821283437641580863538077240208393534030945559150179174931386458441346595864348632363228097052625638994924145892479118127326837546529229700179763719766987405593340196375996094341259326904953807939003717911601146869288083250442077130528297432760437042079543010079418729189139186065911314881500710897975276566434698799506653926749547767008775082859630202685684586647993654707961324255053552148293359530382848169588819648022476862287071123542291065788674373930543160369973804938917344149195265032611797050564612861473201045213326245506000172697491370171860379029996020337516944109834510143677584376077494173261518886373249511671768391147488247278982002147578992193342463929976031985372152425990607572310315530992295636773968589488906718370108846899195616027106929738603424998879203454209954975977828621951832495309789420130083163915813824811605202256268469787670554218831814537319482744769011869090868286184166240006724190559868646596935438570407283884599086710980780000390025690030723082510341773908852236922281898578469277857064824303604078398366375354350781330113486220376571486001193349642734830837467652579618510949486517651253128151112171545609918191445439862891861673768567059794295442976111374299023897958114623376377902066431611059789241441681245596780352918825041358392417124943392849921734964076918938483208893985636172008565560806236269126787165817748090860092801070954342148618062998828221256310135886067050627636308997493181704978353994280996877771875952110675832898486432416274207446251765100741975361936747422419975500295428225380724377692264013278798406524903456799259555884579589337839018127091106614055502488059521182335646632262707070513942344735208969474578626657236960978570127717267909375102383916876532424025818258435292799153097526205888213807532508561936080837630034978547942980908411002021344329630136258904024151712707603443810210494539480927887256459062503518361348227823873704228769785329206194812292823246775806166167088998281722734037149257538662156492154083789667661815294146472416646228270395710032174112203667548180124087906378415000571150916662577700105950304181869177381499253712647059100456854548692214160748001653574191580484956646450026925967927665443549567992855408597073700359205723680493813285300820779754780076339013638300315993490921282341178709928291404852011383209142706685045422506729957849391730373318647062919683286913563586671464016844990895368506431360359247304900795592486184829587051074706048152405192031268943509424491763030100106422829205288597889435200377663110528914216437955425422837938224431478267673196322286917102399430103776754998366241878923756646643997508576750875615289089989802951844400287506841766094949902615565592451441305201817970934702978070616171885049845655700446282861446494656281248609681884897576424556637652415283763744744538576835841904291546445101579783899704820453724789414227311069716874930910922447601872867491266370312103558539950739171441263868847366187354544601548198015895480201234760328205930906776072679178844220441234896906952121548567586655435364103777274779882965945111038856034584179605205489273224863892878198552649754539192024146309120660490935072834411913541605492154564277789426655096656085965738605381892054565229621862382124097306137959999592947999710884964365991008943733207550607422646865011250266716806839476544032086022551944783919710969686102496861097448684301807872987291652523117334582006365329419254544868507465386336338878304851229320159860955713572523984655433862659539416897237418650749676183715691285021976159884581316285017497317865401624472192383814114437895883891232028585065241409992704277757688216179206340872141719133150358597442984172548002471297922751922918286085828519055915703704147531995337195052962221763028692713194163646776007867503631549888497103022314836279412029321299100019827178628211152555454977576994775564573622396173479801264881531348625342150355337730508171743634208550491458065587164921156263590597718033893630740765896875495204232270950514790431039254183021582568439507419736900882230348272718819188258038671029657116529192710265753364458827545133745608680739474668877829686659592087420733182826772296168620691230821179450910827068685992731449152567998913546095469440193965507928024762168274658217617063365998711649238943119423466682483923946924949378588277096252900580226442961434836167967770489800599258541198667930364735783803901123305343303466078816546290844367947834901437616868993368091779713642411851222958005774854246178450181867779240539673566743550357279610993211636508711982838981864344759624210307069772950578795820684433674693710927306766138581314624468329561945029858558235677442568372211477036138921560502367720409533450233498414660305442356678009311634328704034986773037610781992404814614351589270918368023337022266538891107847409553002512598426880477869287446343259092007503617607035632351044450603456744885379579046685628387921522198118396849081104227609963120672833662540543556430952858258497913417350094084050492787489718447110049275524403111232914645040597859326974561795702773762008182446143415117150316337240154996195742327512859738005074269539412644141071935649697820605175015820219523012308520846481560107367462784675272285664821879078709874430349283424994249938655142535032213145495013008443232399942682660549945933253048015509618198989336484689661322309452845578294926656049113050660908021444233363476173920609892663998442124040488805870305691219446476486488469022876788717840858578725616829451245678341224422967743371374222667678424577704229165733129680619014784142830908377308967635777351120422183174147616326183381402029890734651203221348553342122901191188857462967874734103946536629697818250665248525111021527061219096414651927165054342355294278664480882196176456584378242573087040858092260036387234454443110064753067309760002605372389963189043588926397328693737455956364715791597618788073106813655643956144008656818933050265478003758216360408196819414823289196424028182977158272853704283684520450678234458110084063629899576304610488570533550041977696094604011170958554078729326826043995589117260592486398878197952245913832728443241007944629996456708393044100985978895347272671330523928853959677308210008767527454018172268708880487477765878875904719396788860521203328708181029426979203477840746578610331392549486041236582063884433793971418588701197892994621807912370978038872052829230033914432783745039709348637346864172893174735006519201565563508237682503871701765524834963658175502422964528976339215505657570714073891201373183317497417872683833893205055139071205723627654886108649636222634838456100637121140931916093868082554021845484850639305937019467304389546659398412569294326118811296290335698233689180195240402807971761225389084587526373937142287798385856883675697211173714451375712204658348723253531947144326094623907914930052161512421760656339661685931705480826674613629183313491533267508883489706926163003004886336014333115921257408508528815066690237973757363092660925010983584581297083899980965558442346682603756650288088638074474629412214480216305004271652708439123525902948364749093173149005245174423183882671714253078655882045609014033501052034358015312798903364226502816190102075597520352698874486367849008758675482233307503970971411773109965878243734794275372415311857850111501893114599657500986174431694560436681607229071127693866688615291011059338544446838576427460184168124405360778654219244389451329262128648096594123423983952191567522361811568399839716966281394801652202043831526065722040208696866466841972363978801385530077190709701578097593725377579210479460302408195792033021320646430920105364217697951192378846656602951358742211903933211303111693455653845059602548578214684261747283373316730124346198254182685174124908565288059073651718359820310703869183244319185299347437381879214641351327015959622318976236487731723038583333810100261520459577218305761168953992570969130679343883878228867338850771015408809716692279530301237108024168931152445276824528205538540201015875873516386414675691411371348472748629572997532222085090768324878244722207471499379744603568196847751010213235846023873376579827214914792503798770384343731524366284979449835782042307613867755402226438542215096299173099675859741398209186605019945454224698651465716696741193161570477462740488307025010882201524022368878195261399117565757437227407233664003155061186097604893502928229089876451740888243137097601480386960294546533384404051113100791264506251997719885267441707108986339227051843884751650820909092407998828818423970103223770360724743675172865753234551497110531198663051345289343312840057437190056522821512622965149426667566277245284710212191679027436170785770364285932282145970995758816214681329432578499488767411140898827715930643339489799347126077259327567771567928305691939278605282600790271264820254718744161639064036525013535762871540443577259585959949362374360629852998110823392942374674321840935918267143480671582037089223053493907460238338728677478270701839903218018302187086377229612690939547947268658144832192632330177792506795791962701245349004480149831033220326841754607513720080348810188224679378006979145244514958825595390687102146877131583439159945236660403676952560643637208080887785652656969445789827684734228315037832737482335222773655568912338534259677007639094570772382496765049525603360440378170317024573659361324674550838276434210395796589084451053209143931727771592108424963622019101397103322148821228845924887047019237612568780612381047024701193810317072746045618365829448262239280727297622021005371411886792285035810701946501434113472374354934759028359424589305802123079606141371005080076761556202607594481039925819141786463649537763483568668015561782368963623362194412571371592159226486093102821211785932790614981800251529789592950812221023671074616359975757503600826670936492625688748388690664653412460439038308894379934692541018712032176482293695269896046259097272487552643631977575950052802046841766702308154600688684323587145249705327883183874873094090486362560622685144949449855624509305263570116429990153881881431146833467630265087808031494173139047147818635555346443507164959037731018885439703128313214462827067257876450301945720627454762128254621319331454789238852287941060488522534735239482599166637163545286070726646304430340444265027237826690158582432756010957355742425490679697340603574670165081958559463774016740735731276256834363743806247855235117009309065251943456806880998555086005249743933145936352288913217797207259015889786455807968319954904478283268784882195882126577518517066563378015406385117708367709264164862465030760508130111443156853486733457629633452643219171136777800005079893167586508710974865235629385438729337466187190831976721132403552502882830019934115435679462747015575756614363832164964438356964468681586664108173472296270901748895002463530343154547793621092400607902831628738002664077709334761341520143811153770650237657368993856165867901448898684064650483750547956092376096543410834275710260182331406969284253372328262428132632731483240004876600564192317326662946885315947615328331000311540802802082441986045801216750479913367264073253892236226855691080715191530562746840636515889675098670937857669274756383275610103520321467472008529480445832824292993482994815731590200885054349600138226573087962649137504222291373337190555523094484126325808607172284362459996180060147563857667647470286817258994748487751684161730172919010495486618039871980988185105420308445762601349103738654241718404043669311621995299803488532211082687479686833606872284802989828636860096896593010872040832394070267186639759235178024873048913727543486656115020932864133944287686635267858825979301765345359319391191533510347519470012013731770604872190747707997539190423957086184708254814089002928758047139581122357448986724778180877958409475110495183370849310730453742722476704519228171826619918081724066485038705035172695749559262561244165854935748995625429378020982262622681928428916485142956694272729075248931905578590668248895917807827171963957072079525495796537342182658498648168238897199447951518113222429200725887098956983341781415093393724884088224219244727604028889778067577457054083646254483390351685091340134246828191780321850512389868904851249338960356981333430633273970048913172154192037872217419582193676965712817231276320507721937339497771972419757582506438923570244679977802163253529404028428555742474347173861964438990061088601171152450458307382779405868889204822597561736357921707553411956970896164717420767689936639296283419083345106020890117104648480051348876308498459013082373190318647036028124395161138646220541380498594872967081547675238987095068864033263494919529428385955322383730079342249440369654480530474562037613614008183481283980979578139196426493121326169473245480113743184725913989174035912526940775614575980837680980767137821705583291957058811209408870558215149498393190803060918057176149098034571523273675587390746808284234284458472371555049744078594938070596885125945046032429552868903351031704996956388815367766806128765511303329259665855581746225728355853728633402317469810046485704237278957650663390026510132640363817284808904454964488384005625373888469579097402452433255152403264908414373920576049545777216191006733260374137126820222025655590654575245662754214396127544721886821103011198413585467755812064294224683632621212531695164740454132652017469406897549890087059658715966466656288570779519125689476453345923244956666139337959328935861334292931249045936192554675158105674999041460823352118264669165719845832382995007495125258533361583766876272933157227813273125930326020397787823978679586281207469210351746249482065403148676314447187302939473418520892360551354961941056112869999614026942141121837087256751390414884847825744717391200857412078566858744498962302541817592509987607576719328567430382040903447258869555153815048385017835334941828283182966944871851332736652048269454317073492574721644323048723581553550091745735118804860131236355221540536954263837010856628054985656257586254904707021347845802670596165703324789494363913936346732637377778753723849046300831850348506444827421332609454570416724092057990652240474161842171250501716802148488914742903044608668757835700117306799487370134486250673371379955146014668008011300362004898356078598739538672776976673291203337521610803816183933393237326947594625778986465192616182452553829584052987558234347949293082025000097894374523057320754006885076421266245528005308459602476618424761887450471659266811120595537889043182686711697692322644150268238446969455046350843455558468774710950149806570632765352855845724639523744238280759686740067991525615254675961287770020646065921849980172362757724461356428495310557784128533530447185787412539145547299494761159761410754527807401964992436944899249809771141578119599287468719892645151383931043848605452887938008180188956382286581714366683759739528836893969678477223415258497858106728568322628750237281683630440374778284220868835347425900761235280925152584023825445070530306020652319006913436853247622859177974418157537661517986172657786149381810280622349417777827845673126370403848147782536165807039779123655301461902109936825469763205115411410618640271576793335238029422764634382904258165084435938010480888306702241256316508722622690044365044181927598509515160575662011180070739703464031435507982753732101254654007692749516415589611313525358846426883816293085660265980420829092940401533036166989314579050433755830324959486797982111880373713552035323043088471790506526007403508682515868766309151275993443391931708414143228575278746846776622931453750650177017757639783981929791704690085169787841642698818923079212913766696675457491418296077561536385024956124444963076830424765678289936142137206413644783771263468147070586932776651725846001050435725904060139590554242619228754407464741747113906134421775940827497207388841719639251627582830239868360569759110475412507583912211505666211272174851745733377934624807679972928303145115303138262540195386150594136524960144661253083092059040198453420640269605927996398960422449301268795980839884244297425336223289974431835520076967492897800548908462824462647263731213596194940123970992717776375179223925839310182152968211544209611648568446771858478724617965420531984832194675831452207566516406110785227433125402372376602556688400199462338960502780231507395658127012409455886756782651886739223735455713768838431970815666285367825458502359895987582313965941678901724569333653698301926127147651230054853648762303802084857638855861359448134713086032121610266332213513398956706116636614284462802231354616688604150419012289048185540651404235522802367420622541583130417701607329694722202602775532193419077717494227987041810197275630685367364577793633358217169011045902326734675087415194846587142734744152900138396835200741595173957444212844548310858111640440988383417672075337697123254545355053211166282253303260652394668424869707969694179848203576979970983149466529570255980123624368074693829755399390341219694007811139263230784298529462403208396001342994410678779812046210907728171832287115895191002281571255136246885803656454575365583281748653325138531645183919481588247783194370255274794911723703831460657447831063713265662078946656709457846150023326136348238103373645766210159653484357456248410045928553896291657398245648640038860364714582429373830513879087122369846440906033697382654056883666389529856040339072015893832407785547691600036975790882973190605058124683780802795736448289265200557622885545309106572439979239207740256326213238244828928321566110196606937021624155104578206262040516076795614600185402213150456467478371064342609197102117101630882135094948953455926549421401402968286289402312790094444341615109444424135869604801486880447413685067037617588565090676915603978361587739728367855617750272427541039403215763865869958558443623158804311857590077587988527361531928566847889232375259173557954888000128760106319180318780307131224233604680475740277206563916486275658299523510549154372922055116179637080753094616028625382870116088764467510733299247089209212279475327097072442042074024346995764935702149198769864517061977610508595780006813307904791570588149023672067066578088193747339661448278300341266392428457798210905596893111253118016242978295340561956763195847391692543228647035671486956963987904440362630936816188238065263732333973167294951541090735884763020921239993024708319507654938533236255163945099797290059189721752007869728626522541721129744433320769532431270587182836703939176631921075323055621878017232736125140205495434637011658263747717684618662315687816563581885179799551940434127144932263100585677170169944107944573943836532057202056451941845577034018031269686497105112958421465022478915387680212364020376069792834973820164224157718355365402087804713424249659689264866435162913700193493127306070037796795129729303993215648291857486800705922898705798553823218283546667523606059692184528228795912261091889074332901415486607435871117082749844414845951366692689336287690117864330073426564749862748065270611883456079403539689215498911378179210853300874972491373534620052901680468244168560204406715047863279215264491105097616179228916635899446995298625286649020989977943549920502850811182020644493423934394137995775866845656734074685924225608573344730132331028622306421911931689288357148194764187890690588697129612510830203895781872780311295249573897826449888173653624855930590136851286139149362194635436013243747297504439226448723063481263480149992212989439013081853479413524799081607192315910676723678581092314932970909351670515887257395132569322356699721932682589915217421109472066095297980455832461815366826625590614878733491560467096417641231911391824020925139968142650833783210350465899931161101689052563009434126647068117872008379631582924311970822024686034831267388209672808223723700886034489157725290185236541972315623359452966865573333690805757548354612237004741181775853832389416166767874834084786196255585052967159570893505946209833555687506657241350411121332892181492239786220524241278660292302232124330754566981003415133152239709239612496561959286916229731459821474532560855187851634939352121391948165866212969911392507051039760941262295794175174769067335479399228621439339766194058538682141627233249203092376060877337435179469958176169223699999635368818205248382948584915786678548556819533235086580148018642503603656211906641055767087554578361591442367382418069573500191963397004292213161947182673899000014099696062919979307390062635829399957342715298838088188972868689600831827892579979075832483936913644920618912348277375848719299953497638514145871098064237938394206450970294141094973426232939279354574434168443656981174383206258615014201289241580922588149358486291074391096918852539652042555294451580872744196785514160896678971357099020793066898430868942988907492504498508885382052141821652166616098555143267023518061295369334716744510907980710069528612227335380762413231913553022887335607017033557926605394089004316684098725993313109465260585729975616936323403220064361567649198841718973386402807403147606257456802045048811734321626995161160985912259270648082800734620799926645756019184047027162083332409869286736755696976711920761733329904038963052484623100388681561605811691453425191321215860610187424058869617996408223190554036353507584356634262059865075605844217551950846029865657566418455697165644809375641207205874486090065818620729497619654109835497437266753617317510573685549008762258189211262856063742251069996484708401334865648292687816611987750575029460490526085006880100015030694192001720622262730295432272316250619590731870153040516675121595859481061671715655436475212496000372119669120729395099139410467743061648308295804560323598797377176440138207192205408087184098625523242398594933451927428371613000538950060034269392788236912125525651341647582577367765594851197519487910747260340924995381449875598109527112547215827771605673521625209575180585460785078709033207322311492347979752460413776541823837136353928742952648572461092004736640714735130372716422394070644325072294977639387382542810980458935428086580556336917552483960711748765168794468108937751672062967289223927411191482867747458921737602775195510226056781943075954963848265066447890991450621551842139354857270520269007173399461852036193878198662569648607947297383937059061501239209860106064427691522657154189846756589200478962576557367142219850995866992078404110244557462779318323268577267702214858952035562016181337681018849882336155077961607819677729224214043638830817703572732367892471969333017656222522461871604337251258968629335584159742543238209047415289139070488111474957963507305433102520789036476875578515801295847181137703164435992195988331177650596268379538880290655175614190681616136987801851045824513567356756176249466273062233070122735785898589364163664951771028136493688724712622034270751360422133616038645049549543368639036277520158912754881180533320037343816966382858556933117833872304744858412926554986196174878589115140068297112192778925941398547809375602715256534878901643497458772910325956118324654122611791262369778632927156248329505114030157671257785871612225066522818411969195618009361250420167644278460779037523307785411509214023027211756753941235150852482969468252377609854985877366935540998554424564833392738363635284171660069884670323395844794055139033829791542488207813724813609932066403047155384451782529182860920577819543919122230901655137701566194592100419138591081214433950785528613929412392268242362217737358559335030535951824759094723130785697497641431108673699629223718160232593182925409070550554217051184492990212349791137302351552132478584962366314864849518377108984247773300429376336945336848478509252828696580467031975420808873127017121799661905974392283264347655663238585028429260080318951841725647445001581169949461942299657051563740296989236962004865971390582118166627576378542309035514252953740854704494137282842049233027606994624008305200358925625066518520743639696502026935848318494700668736027575840886570507667663173587075254443041012855854164789572542385513008261868614109781820363885482709254836052327125887610725958978969518452638691988822128518176843088798550646730698403942336060717657675970946494226504315209245373345000448353615222703833892015803601255591151079358772509306899630755295567009183483511925788599799455286421804005745286818689223143965531720080165482258381776475712070085128075962334739975956267341264254244909333597690652128910140584966133809651283024066820913842240004595143310507364535845588196235244864750292007691812046534015485025843772028937691433894314206295093564105372866782981226313019185338868708017341744388483097078251567602726742078883415055561065000290463014761465515019215926598313532985669206861903634410834240515712667145687474641963310394728995671758249526315500320223944882636151020936268899789705920713344505916019290102205355243970372145383717543523693122500209551340435829607093541712577972014980601522218748801151430077644101375849635057912600181176609471431421218723997652951936473042901435850367168389698187178913215996689740543681152996057320918075966295524294247958924609364911550010180671693415485565777823852353030520386887870228936590523018943599990596671089677567959628480838965883411722806602203252584118763946753812440239092698637372846958934842350939278267880225500843656383263025748190035398277216566668541527829218381391809021994533307846822207276981736207735276272826486124750929652790846751470551436659407265327690325879967911668420866115466261489115415020501583434938188925612764629024024344750798956721728653568151178895724176002657552057955876566962273217888369275515943114317670447434219079251261391005589598665043169519347722487084444499598334419416180198625191845922481789072659936656482914713402887592999449284101395015769805218586637202400746375205045499826588235691949561063709980589850213873358996830951626577152866893194786090769940587383120582348074643698425194873128058666131732024538768064592509197123039165812046761858104911485607098757429329348134710688739750294267497000054418727456878070395223991467501983867873926082142802584197651233380540626349739997177118072390561505955352549909383710036148999641576194167287279663859008908819985405117437260135846468677010616101144442402164096891514423119124634543020895802267032994524207199659813206235336119060786081754126293817444036762113388835816475527695566060899780399919152529617214379248371768648159066139884142101947185393781551337453411861200177067363030361237733139399762858311711780614881002517959054307670430353095210174108827481197161856018960404521933328189136895913651100538728056352548590738577556807765263753025011598093021264462937263114519355749943846231759302288477788363929071223974716253058259308738697222635210334235104479788699235118351780257836846440588203307745182522552278545871603240532091356779349851395474109478665151309491869211696112594427044584548966388690508528892921634705592161708434355974734627555758352554127421175865928117437341071474834163942210033891830367140883905867226807966119716774710609720871624760180351476478572820282478770151545512424815415625879940452003913238936080769907969458859069529880620845040474038718181958139486756905666518077392577911580090207838658087347851454710089039774010930410174191823524512134781686509096091649294190480390772890488261102910799721066077987527524739556951651888287955286962478144112603570391374035409838864434286034206835548814143325140143480820365586688240951712098274582504585576594252971609506272417641514118518592805322026672922805685669770740950266921671253722362759844887085782595977691940602627886238482119493100407785818383921713430358533636626720902449069792449590296668949290968490185606273709652571858207369685831728218495316911484990722153230172556948945164125519414767520789724463520225375242440012554207230026735592017783140767251987297018986025945039931748418421775356260225789142574881868256909531933195298278961285321626573409596557644415300325421707314068539761922705714182763388460125214884324332050482818169965957787567763558949525956023051070671865230932041165672361172830832767524247567144216228070385627494983139709086866267891437910976552457925227529119097807326255853472091587528443530766459014430589206822567664349798185811730862105590072142422888870821215131694547893770990179576593066210445301575540283071214013929045702508645630230653747239172511748119910117853885516488142565088546536707662218082084525369632974549990550545152287587582338400883387799700295428437180629350195357360778230600431925604882591009403305357253937414571082826480541771859800971307004551936184111012731084709276879185128958035291420095875732423703330023680480464026660188692772666862726686307209426926964406315251968377084862524624715802980846960680105095035698656804566940973872468690228826431032965661310048182992450374719567922825738490955235723931578712645568594691246505146718561093930538391838010159024373546527486296652843658297074169050934299915476910645106670678631881903402279707698910089976406751337414207631704543443695973600004408664145200970699944692198084282332709060133593650623035113780432702100867565393031390687687985310438274139226807037730613469292886119120419580099541150913165029807160484073306765053331875867059022461759304977939329073739391656124951811323883427833420422133319551288344876823716662375431465384969293397239980911183263890985572072046322270257800286668739049717627648037383824893244929560916050010576640801718393835058144281733118372584892121153168520845616622874318655915943531383575272477649063913703092948454728175129482001701680632794848020250282259460656372659767075302642056432792001684563487743050367698962915111880618608293452646091585984493173213264827668425836805904582321619338807300038839414269140437754250882652307193868099287761319419434721575499318720064758614167173354916272413530876883118268555398475321859316196025712045235104881943790327836564497705684181518705093381835892095007601606448496591575924161323935903429010882528302867014192686108005093704566214899076659844354001954858523237152118072459863675056881602781271173741080415960450199169047569138573178107008683090125524810288132672431193730083740730931645613014057392845468854449721362847906620571382712254004787644852980287438150359420666745495315500058686211046887556269642573623616569268107156908481303306080232248261654534351836846207320986793334940230924217117766641302623657518698253666779210182990859064773603834863030952295810046398427167914234081435369943883030926218319276277237637382383324637607637222044176631393467769384592214755923798030693419901723672267411987576431097212374836512878661152863219791208585023203646784859269628086737642457086444221600524621172156517993978087624346768112373492877620446423793915492133543299320650205650956018837666411236229511549474515853522149773642740871306492256947906996417057551252746698032047711960350494910214009719955969255752154768311018301381730596624531046911378349269094385623144328527569763749923352869331647219639032145423274383621158024504395620833874736070709377933100251834577384664999843678692947317648111993077478395425805598789258979007303784899437496615398454328017616474214257448215152229270465319631156202381616863604710198445986020253739353040861041884093060614407806745438843243188236290462769874994474382489091478864634978851352183845909535794847322023504853290172758872419238704885987040049821453073957301675042162506753686857628028217629835940637100077178252478384473703315572682648284344187131863420671377279699224747843336027165732133764367114037209811211237479781660723699033728745190747665061286928042590764451449689540891807001878312288507564609206180515720565557827276246483297878764323348610076834992233248742546126393482593125756753220993097929855689749646100061731921492838459208602167128534006619349697332768697022811412211425128515236317211226712220778742284668627782211771348863944903705021028906591146832913745624302117866518172051674704895728001260374359339899064567781746282245412677185115742582602540098952697926665489238845522214869181947879967705107033475768927535909598458497323443256011700671400576358815119914197415845600843804869384804103134847531775132615436960465558597261845629789457746555216005448832180189078503793062755265469092056346592798535216269064866127874190765994695887782258533416590447480460354702794727502069018038080695369554069260789606464266084210077647036227196183642020289237506697200792128842171918622660134245971220469700986214089696557105681759841823909861292990059979049504402797056427588646968746827938620565276244751139545446209861400401058774853765712941297487792924408690541512306485229064284296843820340472285430328104302582299910496807521489013665118241724909558140640553980779867366708680964098374932523107840753547812820673338283668926749953356273839956128401250261431885251627234163700149465454962992707671815434862472211942104664861382453504047109643045942085766857120409858339519883456946185225611534394583068947271900700858256480550921020418516494647947257484395440195535290882195509783725198188215779967144447012596029976942673753922882560199736257275784556082267602039582510307882627874302418095018064052441275162441279845096182688261468364882941918360923495808399464058616551399141495896220079634655223070057924181481161329957391707356623756651716442582263017829522829293965819889574428624206866667488827173767596098436869386244945191209777194893475553364954481516552075134557211098270490027084946420647280207428240586306909630502261590133748170270650413022430836705493057872949121610904023820875403071034063524389137394866591448885965022504867303723630801304456773997713015832651105463207399520181312053526967799801969636380298380322659921908170093473351789341477267627734302192738878502105675726404718645694738576820294618800295575837019426422645136998735171046102403716173828510348236928492877578142709909660564306103370918136872670655795482139340479387480972967357742681567627923793673631980224062152668413838698895691759352931236479408614933166039095802407768958263341385081909559837132689424274755138632230922308310104031341750588720715287846526684476866742817440605986382413452400159622394513571657577720329476509070650352657182965274772683977248151207336694781797383693966238491223118641328517233356717989235775087352628183034542019160739598974522400285489828566979498103585810744065039772118149421190249220122316200651103474508125803868918655352656874951169799832908750127557421993022294632208848033713265660026314279094221455071198150267289805295081103252886594076599971976894599880908924105227785502184426138828648104143010953236207102861834238777820958081407225745175055808749592860488851508965198658192902685278206358672304953979112994697791387082858978455965956318000367638540093075877024176072524422460416297230048586526567681372460324835709181248905943100669872695270033003214672614514079788522391336316176500150238814324901999771862516177987503449443614769008185371766955743237092301251902311517528502769375579721729525044617896240362957962735020216963222475092032588830629021495366053014942249907572197304338280430475067449490484157847384313425959505165569976451231665454638390967493990934693210137274468906569863604357930713816059993746180073090278011997973799540360350294959219183303543680844299957131350453325224696297357692675407440569624272100090315797823614906778177576145512542325489220353689393742118572045244688947104855477426348257839734339208569995734112445541936112451474671151198041906794569636651035040305352497628741108751461351022063506837143619083451672570663745317650655665379160829294991299048931011650791676791975945262856506903937316305151305649829531440822759687525109524590565288783550755947715616764304296341600302723523440725484630024487908344177247371401468054784454117119314707206798436163644095327770017353338880295123677877728296411194068734536162310725805951566397511048210246660199216854225627882073659546778024724390998233391230153439057668628038225423809481054186825945638021933719454704619931197228408011347317921423724916151791066675322080635957586473508048104707123129179588978047831722591400034770339461492514460055952247756745005835523585048713137155756874379028277853713624300617157312977895786583813737467935034903340430019180729800946676914666393004790563043652632027367600858995237241714653691254158445522863397246713948531979264518799939233166693850979393071896757285649779243082555412161227010956039805322344181986257970567471118236441981189341512914553383611704015142180457822381467061011294275079457621423431396033386808802047955459216228205338830376208637243510177487012196606522618404456283056462794738892215685046203985560308880335852995705855485911317077524539331506204931497007857782971814281702672610572667114038047153928422403716070878654287627422313379022036660803995846501508937347793778267194527430320812430011821828528805914854089231686951173850464053664624970615693882235708559210644924383528104322080402848264996696390262880217620177572324853127344169231191023667961788059100824389168896828250617636490049079534582018916319840283032269181489092356604275508616166780833140375859211106732660558217103797434844782341349475789906000558229258905558805021005043883196821134896261529411529219509226930691680477003801805961989193434042810321003456144101752652512816744711146274863662863666841602661056959854645153653519839924095000754399144541166431008445277377959117891874622996543769061336384326707709747976465624578254511438479073618118045978365143634396016272759184233344944544905611185407548688135656367830604430230192272120817469186369003940930203387624612056372345626191764250228770753300645639568207805981430011479601250667086888090598693425727487593553651895118315374945653487134047992314252538589578766601203267198154092308466646707064590874740268323177919035731732065234723891028605710186010891500830064556189317205944663256507551193083775856051724820342621738810079001465019139860543771346045272457327165981885690949274203261054427602162586553360431214410361040709696498934729953696644801933289072183371585007917946846091535368625143500285381826969494297091679684037445823120763605228745444018920105668020203121009953363300565284650338442741084874393903163737482570975300296152295352345190970006400779493654086860999381771725728589978301739679938395871248974961955286164263714816601655615020893071452202613630073262578094848362099087416184971504964932526917314982540999944802436579013124815918615816344290365039581768515963668860875918893058156389739330765716198561308514980396444451440271094990178614068686886186036812597246517778790581860801979431681159413421784760528934423331283466791357068040111267498353528847466977391738332263237961923638065926929881061535797441336182669389570132892599934156635902063754835240615158546142679108959497494900806789879393256571277475513154848038849539706881305497091609282317450591778185982111319845399007422755339033919833185478606409522142728051669655841692411533535923977265496417300310102960416916594323350756175364747155786911669328095140781511612472476106024595258853652354620760969861378558594479525658061228478268185685751578572976810279368795793487552258613558146717190053958598337095911419774302201686685285443939588105529059783016779736756877496320820561097613185179955464305245002559137671111249930303850663340415385673506773468087085424753076269756171320141554828806659618194338971659365882611835626953178724837453813894303123819074360112139419888007664304510656559099205419128110355230752238614321547546035214375371228836358976517623079353766460215294735702475476367458252077635740162379751581468623604973863967670201669827902459364244074317074882833985346933639670734910838675510369808549414652331009653830402401050282399067473037839769574963679986645259950604888899028454781732727218241221058663599220480663524538999354799997180293837435068512178452978327919819270240052009371388737427300748693861060500189268498465671596090788961342122606876556518240627109405363264520233535512011217322268401300009485260562923554404807066736042551816826444760134177780944275515871501042338698105873260466256718203157865490986029394247654940147728137070440392697762875527576058224643114176801715930447818346447211223343750037522019701348560055175851643572578415691365647674463965100855967187344765334854878026196690674900668231832731584276501976493559345884079248633816593215210974477929694565681053148387886961928839950252456060721189409777463701095362168361211357024980570403668977139783546545382499643657571653507083336058077892832744025315454176334729863720346084676239810617018460185505299676936125712355726380502342579787951910242527053156116662750732192755106740855415744221824664961846522439985467854202378445885777628202699310676835706551846680871654241662535261560730673395913568903162393912875646056435022958143081121810678228039454978181694763172183152381215895251222940550569815867299660846558800227936410790384493354015696127787870353052091970475325725295150665313262200441509872525423874911044290738438342179452872945310072484430651263295335758225309897717580826186284562710180463511311302825462729440632489837887204467258978688084702807564316090527275942674081989890442368514738764808795438426130991709125110139829953777485391847443573557928134267490633023916448653603152104112395801545152933786937888848724025451715793815132308861586828718279537333544993218543876842147616106826904855450575718300056994854746093944347821931717961846164815852113461690967278551140434253341932696555859372557745228794714680682821716552939278509007682857317343172686504980532615854353117356509143926873654872758047538776846521855834800231373958079530798338213201173930625381534478386217558417721798646325959606515100535022211955905370845299035391957874417883828532330402491582903817395135430402689562898389446917199724491423256654558612760588222715792076550257359924190669689054387197463616803587524352340701691517240234697875641989896033343229285267355991828067798087327795032787389183972531949034666588632481801458122230383363258676387000818397016143512849089742474249383288333961636894301216315605995719842936905504179319012435609590383546082521089064597592759679129479360513146118060816155342553737330375402907042066718289103539793742296377880227937080792423800527624534427320011894553546905110205643568379128996283846264499342895305715058870243960276276772225711105972966030125534556499145438640201103179321069998438199318557776951444205995898505422751026176532963907289399108788590545085130374103197894468141921649215432960789204231507849612825001113193367687592507059571412214534227093915945991464000706555922558426624513413759182275253233240687351754250267544389663762170191880709246199355956325211462557965924092806829050997723459534576320122441782449630971734900460473558562536079694242418815841395817066836284226357250364128555534786394951741015364995947626287810742492829419304758899724233839690364970600940615173200878933454405331551574063563816431108150424269167745395722984257372723572876180263020662759802040699263337589184085395279617255595754605474936447983475177901740477461704644760903931212378511260882519880334038509917871727367740541964164113457834955462184586709336119076902642515223635918965096266775441427424367763827737564765281221475779554283287312309708504616637154989547690556860569774165914913853185339786217907052385881854172490698626953161412522471544540491043279307036768509114561999307794649103610385720753796220029187928141078508445835651663815987366392303731576532044333351097756486244055263942279836670387048849724551174335823371030731853574973791386025517748311035126208044169301042804943593722368272843771822703300600563548899213215460256624425456482787360995293942146066907736215495000897334167132494715445909862070528479392863255806868371841176195351025939826291613169075912752720990123697507131248055595618410332508121181153674762555461599569508859564457341936192094701564795718146052377800339621047116931400974973093729311347753741428808700143242891039964171886103173651139028144252976765763451060894530140098623216568961330439823969183262198874434955212688848410982538442487861807870995100540931317824396138035709060453416047722710500465749536795742187683313536742911722133110207683181457700675523340435957899008887254405552911734050596769538566730626351177090759941927822855169741314749670441911360202037760463396390632581336323758537901354900247667275482440812896912125002804247830473182612833418819659329967179448006635685182125129014187913968051876949891879857139114332054755713322157971903110533533586041781595689135194534788251199759331741688472693090367579340307059366432924960365958987774947737523848330370835257720933289141427449045477429498106474924242293164771491910206139246663583866843020964288869455728187498994700228608093166127055911418550210911458480515924057322819493629025607932681019471195389379092603777655323990864047139528683781386040712926967342032514089355731733596674568467505891477201866234281723494757582722119661499720516960862160329008708704959489655595891982502539015734012447370025616873367909496083725155033899021808036828978691307889785787621616688958294183169082239308084328620108780921847164994279516911271405958066954271327207839031687857909917682747546771923459070047113591134962069391639726292113298189636794706191749326115736777585723099285209162630549376215032173110330796558833059144779950738744927945991716464028583164329921861320850397958787601626205402720312140590632411057317726771767778067753144012101055585933176894808553087580746825834909900173141498110759998189649274090462670176609361117281165635581383636499377683652390051578931063068944900761962299749007208086539990023283543533793271044846157764354615835087255406171210266529779767967810909752210463183271314533764661745988067071067922870225537257464964151264584214884993393050124394017134976892150978756411414413065145767433719073345998175375425139097953438674906725823603032698412659888222499287164558617404239970630106284377695796689220795918770635068259150795295434723818464184700852070593822455133719217760817073818768473669610884790370938379941043976699834938412530177872313508046177166449337872086973039284878416138829995754087128967814849329359858471552299925441660151038687262055574054196910718175430212290395777824631920695629942343465617461786343662215985656055362389294598590204201572653959210644387873255282274290490550997804975551722325563297701191956952331020325324156518647509516543428758305276507645385450047994631007091672997537984654436553574960265780125921809262884043488128737489662141500201996117702610420616344455082104143473680198111649850559175248936070865969076886524907664062432665529324872181942068876276991287605326572233020026844610583788228505329576080845056160696617216866296470200488074958480069065831629727181166814474237577403820293070265971621456157358632563954067600020760114869500484430324460786009926054240012121566001240549332984686355525705102944145213179989721974546047382408753412341328699514888515323913206206824720495827237094433542027134923803357084444223289586523688871332377643196195867515939547216363693379130479771076383036063937872240867729154702657419073409753445358329515013033824284184690221582151784389011240289391375031838311160616128410563603859479742240991385424425613475954058737516047330311108879525183746241392853394767089449641076741049439036555797734480161231030186372368701613231905506848494488167098722618025063531391897329210387254022383932131646888706625815687384398554597444872357234716293047297686613923292428098330517063568310634813644505377025082912419424205632840874120496457507793846511989632893636247347476574321415690942446650917256320510431293570159419060561757395814446909404845736219567050157293667416024709959582794208824143162649506413310878767783879342608586978496609561013585828758284455673360058755390213987695289474602833871453820165470498273606279920895364672003507220544045657254792902898877330194431818260165304149138995561397426672912683173515352777907309702196916346570285366106609325424659940328193411084340587605391369718286480736138767276099181187921966805969184576330331591606522323084355432640832972068308129768872509231809572467977185539562615924012177164999116812246458577099042439862228669062345290687025795021276205464261223606558816091723004660029247649436222546056415144346321222632916000330494557832537442189114788668826549426099405299415582903815858925772261056278679977797870236371954895609210563470218721200849889527659522838525741638301476567765828582539998662505282947276378608288083899276073710950070617692988847941373718039352611296910268055620587744349311294401756906413373479531097329137555211314212493907727233003516292220667535418186423100876419628029850932838238157545019685695306146292221777226525408693016560461354217662582127507035077116850600756116314791981412846876612371789276372986534324020137171627449313960689022023868250852706082058001089997158784254904369318749688941970236171480645448801454448512451436019394573795879483389489981026826555452515745846281794097441618242741592149042969405776875524387516652925979308070585838441263133638461702444954303859465220538047715564607872737219544356762744437771802442544074024365926985334353510399641438618065209941179199232062111545493330357100150812855078319497232962186380198605274242375532293703113784886425342083052865872805716683271592797440397855757251070205446891957373726550432029501235237297773780405687668255879363512807524898862739041009408029069179901175815370939448655192736668090729506199084121993387174982234253571076606481198191267294170181799237605273011664146570336534835806958087102086813235696557517759028835202321938951530393393187878437441549404087696772869028688377090450567053860416618459962194456736454462060395147766072658894605499141992241122921220356008128374250458908425907096568000013285487151648818277739053687721360662591621681430961667717201544498153082445658820912021943842446639277038960282199482617474986894213196915785998844158058924731885850655065809082477607218517371957692982732444347810748097241128345524162738188270161359710168356274786243886119149880679655364062544022234863547101614873381754690414042704234612739720026362902318273551894326639410032006930295235271297365213250376733573633988717796191788774629647124383848245521196882690855826511334828423127317550843633136019652984916586815756042561688195280944365357642036323343950539342006406534437500000003325200903476567534092502258748906688823715445476681282501383295989599550238839993914893733455870937553863203041630818931474979831333849750353706242396664099051278144759989843898744756562090599468702891190903323078459111615930643545949403721661204866870144895033883015904929125489288333540902732979277099457359148990160159649172295410840452617866922919534118641907746738599689050862516849872080749120801956699597327681760673746490196830836196877449364515643390028660049990929771369284254622925439488298482100151030072106460239545123049413542127470885246079338190207761970248687462003649141742883198976339564753857992988081492828396083873426127763676355993668517827087715492850087307745299339547309003584566211767335903760796417028575058243790410549609525243751688505867316370875979569249866607816495937955951221921143115840375057518187859123042986299361622877598594984088591891868950827948965483956951182109368806493489389734689438020417594838879426357041935590802017379173695809377664264309525425100655227963698794344586299128651864953834136638703139881358126907023415766657510385535706894117532988489168011660395103961144742910391996006185484904211382301300451606534803874828831661140074473685064996920126460674830947974643439268548758157857019444923550604748617775529643940962140384701458243906338861347952195737090805288281038175418748030772468266256217794843702171703131140568613449727662330591460555671218205576184366244116716258416155042283905867550130965613478689873011573341909247881930901666635087247914017514781969745429945009159198468513566449569379512673248508586820456731822298924430894080953315294662374206376689589235601856003613961999005034102333009029018103396529804490925603043233136892911080200387046005384877689845737494236565515196183394314380167219904174338027815353264530652340645274925994898387787705380983889095884508307817142496767300668998590368134613453099285460822073490836525467370225207860900110738849377246093542784781568519587878783326738327620656805911940600483944026619563360773010696714356042852429207850190448176255156100588976417300603611586560257659145650429053878717380369895028338995213897408210250235374775956028548124098619210280698587731896822304015455221972181649252764698412199929384527436599326202654067710744433042505868046756235262525631986505767420087251944591829098323727398345288449512794642582607210186694033929937620210402977115498906445256008326861159328011544457272347691012755414294921440600531028664879793634801645138028209056424081765645164028845662866953127229701239892495083208152801463545511998798670119243459019512873325509993964610359632154688091386087403611900867779935019967611953894915363877875976814950121785940232886575820701014740526672193307304412685256740626429296597133887019880775534766798504672825398904179877235517887034400128475439594185084257458589884613439128347138263266275344816456774210914310886888696479933304383546119639307542567859161287264380696513625768996090144432996036568907208495312281876417671975040393059250260805486775607934400084915870155730947514936965767078654912348623639226576048470596387532742718769430728039879968260825823683038140750376942450552421575084674933837159182155522384758668101160783864708691737880494322442453505376783478409468871595738400473464561389719866328318094495264451609748677923459818901365807322559066919403586982145973987795165133375281885133077822836267128169380748399363815283637834157970253481332664203102637150126206974148522654545782158341803085041509565997421468940306017928665669763474037105088751519843216881193066390893024713936374533780219076226312713311696001482491301941590435387836389325283550668201272255261141780808048479957881661875621168660992374029679630905990526300886784602332925253298857818352868188019000459627333485655429224366596978443528523487795314094172000899190648024987551249061708391085206312749072825814034059295182638145854216528195767805115560283100026964417502274214026861658098564455796512020921782816228782957751496727855603621867036283509757309727471466328985608006508429881270202011904987217195635439072673636118767058142666309033761170958706534898213956125729676969265831355395199202594099445876572277484381378336068437363219412997291518099032865167073863310588384619270500992067038935246539267476397993186965741036041791880486835974438579603123479324548308677949081112798883174841890793577102034713150357465617283031983779020167368765858602860902031072721076917176036235774140777751738758339235476719244254767958691563335045361223542183283905198814790818161188413140967887751660002921181819474695956968817881588099946739340380517679869074872912177071772099239474250569640093411039266823269609786986192897224118255689406191604006459464046491251502453262439536379654403907616474582112373650224336172647873750168146198772407880767682002788747674232287682090600432294064153414639274606727627802074165276921523802458638029959244179166098236098801269254434921665907868388152350510425281595840404667352838755645152608063942238166669332528427409363296718145844325297933787333348130834173256409316486132241394334031138554646976765020069704234172158592188523735138622350652397444400078463680271769794219208282920980391570730352823166142832622454423112879345516565376687230077400604875546962248619030591144751152714702158268905392928267007919743363159391419544378414705419380335518724393740734397362252605880138559228665392239930925421140774074347490219737558578521631822230391310893480449014600046255119124189905519748175879430723513541102096047030166903268610705236080668029572233349706628844719533852534327890190504222296646868940519567455318040218416791267239190329388230843493774089690080752433999759503945587524130236550302480828118842254943759142225484962162784728077694388118527411773725773244408201256781232186597329903464087362544063921786974919672782911677249431436050949634710562439138732094365900572888752468385578387046584355367197596573463598680516705013407728193401952713180997993036010307159442866716518407519851751506192457441954812310574864035242537206104147132348124976893935817054230338091956621457089008934575121376847228222953619531427421955236550640418686355065617573964224806908329020006153263068868358461468494350682728718183290123277971789578108359381551340141228798912517658431099976043811765197788448439305201399297537088153466615986851862840013694627145757503705715177411994505823310913114850224186817129481364364144776742049633803613401531829924270213457848448890751847952420948212992489828423120378883769639405755011814646513736114894769986322742666710075983966559800948276292517527043046358573373823424587214487060064057935147080254853949312554776550022418017697517996538695845328169153238567344034186820393992798695068614842290115157415138810625193087059684444871450175700519315521860840531493925608591724525316637801585723060484882930739529431320929633897138458652159981375463536630373140173561599988782651332779599590055393097378563202200320833689419057006950395313978939006474001363377025010864523125228809394940566512790018290425551804639597730017455743411954131497488505360334123820380652472648616675074807722966529395264082252153037785296246256402188006939037136564377250904365179934694762831495530314484788158436052885047149663968709162096553106898340413025437896966977058975535710571176805333595578423094486942251102032254298669408112629655756870747107630360345451073840310739276932313179708761253238944522578040530449239973519043484875017267624690932026284183759707715548567522793825635843297546983515696317684518324399080862302233604662848772284371998179106227828838305504926995199116774816193483806742924998542087899216284902323993482350098959457423744230288647920935649236240648497374290942490411303610333811016555023451311873263857222075476787503801043418444149293245277250619320352725514241873838955961655217949399471081669356183380890534622436016152439401266859452923104363882810824859185588017518261440495683295100272235360990172094865807701647600182056611861009294512831011127365178123317764900768651310284401572747503407592026636706929151784668916901456348244532550072983040920236224007337701006167720651269838839186192976616168709643612493600671182982016816084269616008583440280193770128387542742519698534944712634770231353242769539571691916305035644033748241510800432209944140172267830768822176789503264943834778694454561727548933456849534589121540518259695543414225437727014570241700263326882165482718837336451715136451287098682813245085825106357206528363604060993186334883763695641666470364085234250580459412146292249988321308216905021149745276626651518746342501302576861531848263006357714903977280966066049252889539937578618763092861523264126436799735202507290778667375781647419195486430584511772030467817372512187455182029524325134712452393995715293274377870537123764420766555027401051494739732327109963350860443614556988819937271134844363438766209781958144152293578982462700942142335927981895183238730026641481300833543862022081513186684678676321477583676829317070962879712305023949413133504941039543700564886459790910249854543630303757535591581508596503261029264627900765149305594902937390169661873616518917655412255923460229199750519224710313550195083121283813630831070743565282365562298650286002574927225947163868028608367448075618058870423580200169110588514609119644469017996367608722808637629369094111754541950875988347536152756369755683925634406907120292013963612318736863608123299403995243607632180236278007472682724458448602654066012185437512605159055055253289362466074476345746067869892572726473261028607654288422515279385785884722813730165637532890826120947412645312214618338096257534784559120510841455284820725790430279774427615429726304502046329433244536675907338824906940962472340601845779109814280968261695860424229867340629965057347183684365909788489151585811986299371511105476652655382655303769742510327476626032176778123399560012380045448478004300740548258593892989767289270658748765657075474257360271097454312321636017247077202653794871324036649144851080387448681486719645948199669386552375329318353979795313934413195185702472877914400642399420828930286136060873692570349363171239310551375791357937569374723404811363542917079038297637303763966164111373200188766803859344706503161670766787984389577210592584236369000461507764070183586507440419663675636585752430326341795367902225763763575366338097552741739660184395184883446230786016376965864506533995977825894960356538192469420690983768100653525085835135715411977360086846252015504921222118358144256915765439706756799035608348696423910656142730584309524815120902253933872432964181511663358130946699377726541008735297140009211556782084598708486981566959538407326637461697420072191158971127640681158265010594517766037460166922578902246724779027334620595084684466722337696033271126292351388665263798493420255426785989331290248182878659388131210847677204991092847556193992209680637976505379592001617887356670888849358231649858595599281755367087385269762861736147428856851999521788795356787312035645831012236017856234575563991266792215014649978329898869697499441726472525245839227925842379476011041768937956496407031558439758688199825352827260499932202313735204774222315371648710421662248176634787916058744779000064854827492473429186126594468711603549736544783352089618021799521373214490758837301876162523030532066050765996181443890012512539133920071953316393804453630081402774367988057337833280058230067786862338495595595731668521082909488579955388744241200676448019738058582275737246734958816316231283909117569661968810936660892287117525847123625362661933960725367313090669381168393463244031990069456205598971404917209821953728203234460272662029198191832521409719759996227439069520807170966417906170861650565461642697756482747287962075972493312445007462380615284723026078969706566398693060433190803149439543442650118672407041978188226465215380498882614300312421955109848244556037445227944151830880430092358032950399385931203496182134400337835204421348966207235329102763872509720355773983629574966702136948377004389471607237114735691546740703355027569240614735054742335789645247702009320004212870071018720082920596744481383968496718166822369305233844097646570170171939561245602861123624472929487220298960676561362522681041578775748363741724130241215131134507955648629972371958177632309249189533951135627396954332618734068715334335356929237793661381226685110924080348956539206050530177864780673868266082141129374854672060007514005061422987859641290939688673041077445467259105294482902453373239929729546700638687757321857786487313002007819372340597250109930223288206600970296505078554523837391508566060947180430112245915538897674552269584836418973341073680189566707258514176186140726362696183564154567689268399604741735975123557534577596976273784675294311574427274117498173111144936131000035730474734227866082765952643070441131078218136162237197839208102377317279585903192019779122831324700569556669742271324673009052881202103520896422093588877413321955292190448764805688308192729874033788953757095335387213609244789650959900136171345357963059856579854187936215746768236171860800008216930855268562057922383304376506844364966233285874423420650808017288329244996204867481622819343552315385560830035869174578060499268163915041727126259261678556469298962404199321433088464027284950565692005448425621467210386624682034708248558039845581875284389699096247698908418955411078918055386302857905238952199153608370473069938052128624794872923849477577984742950766098448873029148355338397886847832667131940971588943425655836205593759316178400312714085290520090970319415624533732065899994354016927577931254106736417700263939033226770524870074471137701042758467943428252163829119025025645546823988007880187378440300278434393305579559410649739842246592657677519543126556580355498832958586069856212555179963371203213127717478553778394871609337729305900571811780625153113925990767948374277048211738620706056129170545126364077925205965064044755579337040355496247959378290326752943776392354597540235022007303679184271261372962633779013376643790372925458363595566241559804574871216620275030866910783835986178571865821959735494981584385353878717432322301381912491692893122413553867524852495090188586539137200386125046143913888957182451709716123710747947583902471483728406619626149276554418786483456848672684839753731217688501250493083351259208562744787220475978464020601802691824348204602884338943416692362536333430952629263413671688172362406108825858493988416801281480019472686144948328467604727061808660345579164132233819885959350571152115454375830221386715951153299350832454831696476072652163561886297480873822405441317125859730046360378523047219602317817104953888365002257948228819496120304028223708670575259432420690099219121768955044936590456433459257932712111465328897913377997707465822636098204236268057400282713126558123527373838543095357447457052028255098815456279001173847756138094439150847239738183613983615583880863372774747873419426461286557275309519249573321445891690435204682236985956958163944934047033954860080062115060436791621958158506093598308454802656356187282328330693745769823807772320489160283338642137037683411805078414222743849811590194674297181436593627904150434238501957004938419461046730345111833277408043465156476445962168298838614593191867327086659755180391036664555598997817099894191074771541320575944284391308772014621582599390927748776298809002657826346986879314092720327045557713282308231698873105201990198880604150137279938546078448622210555394120302338350904002903955383157276980804169848471024417678869620550806484600416868473128707737630274001663442747923861243100186109602127397628693739976430641044703721210346927541512266272651350387833253256105784590509547199926337043935992794245816593192637917362261353533592968744650653690061427122378726027545184301696430876397281660759379925308494853883204609528776547799638975286098615177746876585529802661604073709382121134764116375527071700264226106356346814310732544955334224692294789470179620755729490897071773079936528442449648346885391974386326617526510127110856957844556894992606141397250431386385002388496265116669092121448999268368270701075156659034616346072667303132873952689613493429801075434273992310261176163275941832195079258891011748712661680089690764843896945225988363113852313830641316211666053001899627634731176322770010205410898748072080693782006767626552844492352613352336193777615162583921141628097157890599861330929282681934581389176650095277330555466379948085300801912827052906703004614487296930100771919274911589395900496383417262159805956508149242464547345692760539488355305504872926428062573947986664863772026594769094073323089666901289242664099761144843080110449581028578457102688696928611432124745551232231199723149010477863867180052348189156067695233108620676679927640960476824982070816966450467311162196858424530092996296925293990227695245326586218945122845450220833674375429459192165170689365932083872478754422764498408676584763844273338223129589654538143080525853738563274712551610282324103974601321852145969576363838130194248663932737665754998097010148768386502175021655463778146421606877499600817534754334484119782700509488934178102023468700364892279300128593568767524513995017868074539787522930328869594696074334108720162990104212833648040037321430140422496936817106437807057422583334228179949190944736119232620100253501711092197462054540161246222293915271001447329008296047390168748539531108221857179743440757350829077763429582117534070210530937787581814561685607197068997839800559129156856746372548114274052502889922270237577966180294029692253599913814580842885347358577522110053423650752555892723906281211809427952447385423395689356000549914717134258125602375021374853894083129674644601258700173723454838178414764160963064399590442836262861597565713348785396899105010998841548344914593645557939413878646999477147968124954084134052015984898366664066289732639965241405906826094458438259963255979576727955963532795701565064676542025324996414033803253638745422105669094186655286576603456591466344696320557979992676093800700968809656609715054185524458078483357328064762540382686921454849604646104063836182429080315410104633017401095237257213301671927374534861492409095627190382163097503180907945679593861342986552067951833474641642137304811310750794340275094621192807836067762270118000449082891332049918972997284899826195641512941158352795078084077372605377616030289139721583467358496432894587361867399410765287789846775241196132175609813926798570543891921017116122110612278186947585652438466117915219196605857673231079816997055907945508353067852330364850648933182164925749748391490411055870702550572344777071188374958074985608866492485252740779725753505019159119682057851209121314931794071976788016553753399169126665338631195111037344690334399473340008757769479634502068733317743844732022279355509248996456260558102121674895262779563532181231896000494032178124127877894594957280954086537699276500433425564252795519750528852463214745143385998775340094723879263468652153962907329144680164434136685205875389043772552203377023845219499455058009348239333801213974916828668769294456561854714687812189540236984981328731742913947501756242556211469827872154762542399588191097589048002026568184140133868375881840198405836817029591703262227134400581945834720809397053343505170184006846159093152157460248831663713180470418294397357396211765583094258399774642912478383135686340468104950656144329917657123587423601409133286282842425852268699696147948339546190979447537339460475386697409025679603928645551889907686889490778601208728131911800674961490720925803319021743294522032573063713460044630553664888240147361472778508213007975520435231423748359964779022925439732959804521111699587583742568643046972745737873719921280664682184497169046608784296481964245965394323538047415241696522787235329349402139228761515654499204144981111724168309541810708582586672563044251823811453851106384224908774242660554480189885563056215945838440195262346332898600548468879817997375459360289189122564395219477160624916399069555966829978763449391836011509897041701009596881754505832401059528718292420385283790068617220812625916806360357451556940282668576542808524504780938902044556035249048896902796212926400402688657231321176313279422201561442728714073399258476981770652390600575514313457859564817008761228200576588520926631558729940879316560110560391785795091045226321996180796389863578136439666819309802873616818537251954996721323041705899524727135626185308354280382218636240382984697106129013776056133764355348910077015461565896241743544333515870902937929493035809404287051791882042592412852408975146228973170954906519113453365159058040253401840658602386843076544161361853341771152999713586581533110286834970916977814717876108231241731609816663648038426090920910781925203909358019145599323452702709666851020226217914322508813054651866765640163733199425478895587699052470516171922893509263443482894125255373786494317822907631125694229625526236657958606290790353225319381766416515504836826471661267489021634241423728685622541692389923299220159543671761639549628382625007188515984711971313742026258049022738494920219198376315974356751440553921545316099052145399368695674648375848076898958437755119456200469214794566522377503292179291227050306064639467308739201195623144288318457967803451901246139549351007335260759549614304033658385200217317458574749716039090114467519967678975854217804239664911178485803805811231724733795314211901860380496431152701517597673406471887618571888749550262453484099114896531700360486974422403428859144050325820170897555613626218421768294655529994036331352522541189487679574103005907051833426595261036985084751323064653674999638066550285990302208976774848440141537828815624980490541964197470771835588938735869705151760952186612066293166543328050237453947042127660257184246047723337605286803329658908978820405297405652523694508679742326603977386731491666856470194189052728498959757597694762036214030027138341868559652447947575799526080012342758853308807437085017156103224828810198562427325914196970740652964499212103214903246347946403762054945785541555182994178529597379997256903945389012407538983460474730526450632582521300593759281432659721967250383410331021974480043711779877093483044177104126004057915128587101394850796969614555440665436061626590138087543747059595807965927452221370105015469811546398616222536793289532672385750654348856247384115779779017536516363898430327218142498279168541448851157235085271338140123655163917671765210397261993248558137528317024695752055584927138601462180781123690141979973109813418201092903302562695000980832675594702173984190857625685278454415743735570984071866345381663414818633399030937214026582371705347172361978468193005352626811417713538917033617504833720040634683489808256322122092120551748426089114073863538057572219614118988371411509380147825598639966703301803666749044289876631523931036029721796713412971542394670788481148750648283739086177717894314256219452473589090165965591471560340161014586108037703387325827857368029842912528357270263175074810158481146207605384053012881407195223125425911121471973908147458125082600885069933371439001878360647395563350722816106768734250913027098320022833874852497135707883040272447850059166404100983939472659107717858368511861307062545988173932016792836186160768605456181811403681338673885002016594050343140428042026765169588674139222906260666903180825882640660304662479766753008791846495309767055434636992066836413163452626721925076966808768426972749456144102780376806715305987219273167714605531405121077078930106139859408007743192329930885329854508041831083693126748121299741530280913450385520415800955218517367218679887684793523084704384374263646626966734449115114728336065834462148270048400006248547588811761731853536571660907966232708869200315440704862442299462909787394679604106921093997737247116671015046343052410876441381743643059420979129471934438083492543298049203879120663740942848233018359574679905547024783865728167110041960325793650980613758082756003736821489390821790728121508639089720140549926000723081354207011133594276365700502911911175819118115102902188105809904783119272447025489926791785070947308458027201533284394497979886246311609041838842321358254703933691727569194486106900470000536599103727894113862750767277197505674542136081339830035944572776231303802833374333440120584259579367659061317901977968776698630732340669683918163635184207571378655586122725577253335594086640273883683280703062679598345669146073146984155015611947527300433340629117738885820577239630691939442212051089105239050439132903324318134455857917462232885170867473226760883108015087488082046897647543218397024647495364669768415078738391054059453440892808862849744179310102599725601937651051442954079279905176672443882381112978952299531883503952530554517233913600430688933266182168560252505716117864800178128378405400878411287219637643613575847450937828792864557018891484739695196784489418296561693941973133608375874154676912963544243326136418463501590560419503501775181021357060724044714128365982769933077041876738172235995996595526230184521693934804492105806085762255304439073586497368877292348779534123133498596844864943898721800541131565090396266197631238820372736860509425815173541207401343812625744350963799961693895616538139966052919244584420753246363275068932361031699631646469362842091698312997339012614402785230632158767334347458412070869601803268985068158064419244228446899618881636587467902981512562649294388857758097342057793915999935825433588859493795026723238848227609013073045308069864177086245389020451677053104788088026886804431339453453485871491430485566923934809780498383411826666412784976729865703517337402499333282809923521043828757528641637405267201964777283534995707299211755643177136505101442889986165353647505562586341272911665747244862737305121142264737741332665575450737462444809702860445525910281823952886463061131994499219288202339702362210793511624052258061649387982346891598093695332017553853095950994669033166659248179596697804560828710554589306431817132624700551756920190325916770564325692730092691007389796132347648831328245960604905362751677239535849691353116539744445560130410019774057772945094888207167611067918954605005355996316071503273356559346055680854993252193016597447681507717047157622380636217843407856377890113580761452275508480990280202604042648385686385377915426332853173412587517465417364220009988966160677064207175938753435383836573387502648684543888773553906142554396117226126010657295640587002750495721518586127945977258154594926971471265760461035824970314592845022521571708693613790973205109740106733063832362954693675862650943060820789319097531474152492283361204592793888115274455786491638696661405828894989290123653871719251904602762869115578594168211359411546039706331372462589982862983343178968918123712919326460532833582416561377809904905223326511091587805461657348360613907672099706588277101752303844720341298320854612092770583091812645381521948678588598228445934560890385282473788644614327783692252786314714910967420911583315421986891433210716538765525799014058824245010889116077810056583487594335467895353745971197716427257791234642341266612935108426632679824121215428823824205991787984378058585982366476636841674321284513101104849645373407596255698481027735303793507835408310361423532496448178889390999218150927477259802673925344082519200849264268740207848493904800156904534479992154121710363596114249787783930204222268320958482066295413890012211597188977272602425200795262797338955173189867123159916763728819670477457658209381394181259256716820034232938063054066196269995400482284169024279028662107907460419786918982344043465391037481286318797092306460728182394129789366849433062716842557834278489786771757172390280518835897847902735859526721177825272126600789207602091195813783151555004698511820150336296993784642798129987323235232611762289648647389181513115399011216973885162493414283651488663401056612392210850795237110943922992531487151475480429594292900206861696153538895325769207968643094722187537939141405995153990649707871016712510900593709050041688775693198749347717930414122349292806833313171112731410950848751104778839582011440246662386255427711742610929766886127783872748907662216659209778320974861332810132951999028724380444796000513524521120263577704459297623641105436135812112022650784148467384411022651061556666581469861480353152611392148227100486042900016217610396728450644681946583877051490053640227688870491716082952708576632102872517947954433700065366900275502933975113433167941558862735426721020803459564369025325498032131077062881975760000810710805191663240186084101164637602004274158415515216545873788122632399099999003950315441577415396704017424556753636029977510648461415320300903526996287141437873875153817457528599350786657788512326852808256376537410867697789040176108251331469369736931297184745616822691524024148360474586494122230985445722343900057551815333439879050619127537011326450942478885571423687529528018295634581322190602859412397211073880918410308081455486054125561306950696184805551879341399980839062191703887495620573000154111300710291485991643278829427750524603764141989872253397665062070230062948247528402829305461978565290229403680211619913055236928322179133060941243606760764998321555838359801579879644416183814066029907643521800057755442126421433810882636432427425123824944594872988639345282772156238572983879795002465800561057901518764309823905805626361761578756235137044662408812223830400882753380392098997427884903054970399149215741922124829300662919681025324165363324014785574514504658096855482671012811406026516699403600797079093061181705954966528259147961389742541118762355144873344675370580056608076112690311624459740208042237955083579286514580786467146190383440089012938922869586545427180494334078748410108210268393143058230790341678144190500229699561030543385874951407299045522202849648389145724774216125623250998493075388060917009991257612578642464081609609484236007021431608220410194306796768084567233558384969755876804350843783680540658119320839637415889566243282167534583413512336789894734070849711931235041530496696255512470535791029601031396085899406320831441753463580643841463766602931617473886370552768367822537882209571192708216221129821087678619528155649486274424898804213742583599401092440590903200798092337881878441856697951825378570418300343298461685288826524132681606254186428244824315187907083895828282851363944959370201037671955452848117893585464878436124932594362033842017113289486577098429089249633121435657548205838694932611717354610780800926014638778564272804668030142252123533700698813886966963693236362724049797346727685558498102635080455661702286090678298179711914156260900053847642857900922464960697330800579809325050790354574940068371232021422389248581142688430101941682353046483379200217067893011515818505794649353543720104358174210079514597888614882396475955123065622929921040191065151037160800315903404953244533319204184576521515541833426459824430364070340360068286108038590969842843650967875488134115958591105053930241231413540960849641671424753268959675517005771179595520754074361521814196824656959557717287570729273560033977996085629603648231901746230754709276580095753318993500968180539586556261894581027168849922210886275667440561144707108564682460674133216655046824432313061936953514663425064494043871309022432746028600105568471164916972785251192818884699936255613127604343036647613304895038304090424854903793628235588758119454893993330320511927549548391551988647681354234322815103487465490725533684536319795061053101940784538089872247694802491662845799649803660349935244188941037764887069442619851022458378288101111087135957962053736556546594900925715021556811113765932371128585387527694636527646636479168486794701551467769445739243906018252889752476440368198136132337215728509825944990791076033200730808202739223714040058452936096706719622919868554471103843048045813261714291536466543917369258882292684929790178752376572966753972334901680536530089754945826506328205273292992358705899584996072637799523932690883877537049961364784423271621105551744278505645576930448035845336909359828305562285224249640386312230976011367925481281779107469638075877781686394937230239590144989280527016011259339335703650616993568692541610459404894875913721801218689700111692783932528077859393835591809017752912743194573326392966018517395798119827633267497927976919343219700525145272346822054187911718895664664813215610214821721103736639733550554906039279861228499007056820648092529444891209292015499022395650330478053334676324465012495862655378991112286198040824526280259818843504108400337640177370304651333409368296446604155951283694206141681195487790577476900681574948781179971277965815001454861852415051696145055128408967332382371193222724975393763458329905176094828931654266636040209695348522905794305689199670865693490796544430865295717758838235661656121316054050018181030682686909937674085409416169300153804082672516745225763153897167726788080631243284191195639198649161134037699779406047431376312846401872836534171487500978713577807137386706533264113333274461653440289780232630467297784639605754610297010512788253576450537390440756445516128941755095339788492402671661583894295320605285106820932724873769761055808046076531261737509937823317782594124912346955515822796301043724563825756784431727505876461728946390299778240233810625929466555183736087565272821356578001395218239395941852641973609090473840288302558270272237659341826885018030574383247429450474563421092964230261896843660315769880857457353278261523079462569507071016256600534534185183078945509438540716987510217914568610366312141072931954751353700939760106594309996822928615005181533613963965864350521980384028760866936166261312649677989336518787241566634018962352266311097000679076925775659157750682145579641325253912854977193391031116312412279999158695141810768769285597853683872385435446673102793866752946379993701912916284490621830441727874038419208643911341493566786081189950995032051983074761261708076739039423742430145273049156167154396286932070474937879607789737428704390790166875306844643938220680792454873953563441254908957299638423482658344463128898124281705131018816793137550408387551653031309519911454682218529463548474282584120978696079929424334147072983448335579254448399321428674657679248716570624835114076444710227661698328001067452732690170846309500808102017121209045131188533797727721501797415100431145348849931309664705529626250494979639187548413626639546383919766928029432947642563300625874221411509052341718281357508934774654334959478544863259526155498337639440129181063622457182070661373629193636345489975487911016568099116228812466828220808737461132766922842841975446645295103308171654886820061274472672174281629560389571035077152019496820539006837132002718932198786700480802570290369760509486570547956011348366086828149471396974066932753587003878703028813628225594470766673016884931584392772732700550741199266730850231774988611321800745666897473062810931550837666893662223795022282134832624406916122339345000748855880850790150389963036802459942208527952260130042890748043881419842438155260440746689073294134857381294194519063099984681273605736617582653603195921801739041568235982006790115329416490567677672313497840336575006868038612886457396264959304872611339837579360350219508568189228657974796596148731148492420773190188556751138299871855738287485772841211019172473508646759394418794373811584170126972319441784731285988018048663703475203299436761044429238389076836097191808127727349471353729948006221508555792873726795996840072450707764719924723506551657683314556736900523548872351060994102990053500614535897474764730746063374732284989134719990072749629685477289054146810940459813676337150251175555262431952151366458012258646410911818175370765541319560108239398092320487259095879965377180486297626363181099267271821139798173861232530946372814290115275074982189143997443556295782912571006652810317724050786725790817933465228786805801643292279583554374715621838879941239986584552008475917635101577248104691195763779388561423040959631081717820336755842758193166268061457172746506688092297842314792695930764040085490041114352931559080934208257657061807630150326472401256627484886173859332046000922449704062689881619184608706633631836182808430840872815156203975615862851347356809700927251811616263195417785101996021817143840706429083294635545360341974409891655851231314398225199962469047142802132466934907043398563774638345210386481020600093523162329875886408802505192302563004489736255372726379227184071222198017303861994743412060506707056194900172101853975321484543634681010781614937168283585161091895274646478552321839687398135580689387634730774405417166758853887514130257361513126383043257759737433737688650692971089164645396796249732920451938302130199572242093966545069066284758155028116587914326716792646250096134672574441168653254834668449696922025909907421049631461127044836629362430559556049373298499454174585827294796016435967270993468429946711404722647855800460456655390197462990626646149150962265157712063741082932697977218234395016487895832032139570438649119727532936670261737751802262356622760339517473350725739068712485381968622522503606945186668584386060437281092609851279052850886682456131108779968695423637865594930317043304903387430519420573257315919955503837517837820639947170009035323774552536065489788780038697336091220732235491969815626480570407145787974103753916889942726227089026690029896590569313191371027716404618488819536376398102978197882120011745901373776293201365490791741494602429006676154881298309182555035419378571500706837318696375424549834038669381838274850477425324514439017342486120837851108721807591419873330308512062173344438254625857939222796226610214753908409494339192662975843094102756268336891289703543983158817710628008209737101956086364001762382367365311514761864520176831190738886580138006253556356848040045922534220938803254036173177270894915317435762938083171192600353456610572164037912561688324282093186559628678563088022102156832094154825521082154214776350810120719906952174248170296378613589091995437475327636510309776648150900633713067661584534750366227300893933751621446022363074408486490834012028929781564063484180595800579362552161908219969195920847853383409878026916589333240902642408023953983955701829368565661518637843635970459088675230056917085005983677250891769397487728077121896921309113458654391228499349627342745891468911539839203200356980496408402460921217805952901370461874171706536176499984550248929633461650344130260044328727411357835212954124464594510343366200610925718828572400698143198800835568886615948018868630721313212088495139005058219548385187254775086368437574712321018901593364740681495642105641493105459737682327118175780127290249995868682573460444456062411480984977486058572069676288539717648609373888045249870678440749017885101359834140640370595075220259853087858948698773002553063986401677223569032621628065587260375938924904038813379390788982157051077529953619789941274868921619776808816338785950249151604072043098464043253182882227426475282985235172111370722373567553175204814035925966176766356310503584441589506742751118183155309282781767083858553756746925310044781160940334561523866504061523895908637323381811912403256377605749720011455536897184608706722352691237160298080774970138234720310395242719874374209402607055653499656502630604581324262016289655161690632948679272826221393760546529879953798722872452650297891662111702720606531394622159523244228269001561394488283318504002422718444314763684248658644952614345728329317689432608819878110164112065518535325067734954824968665513282001478610754214333934053500695959674657396028004591543387995846389473794263112520993478678119710201460978444192220118170566027702993245417560795823694504843849719659098477225842862151533625765286872505302019927507346494771588582982339439806203543535611996118974568702740782980254037777380041315340490242512844722073452993513954435201697150123128000590994433751594334103158295324450733406715857002139573254844185331763651606105876496988599005608639643904625001492784619196335808170363827272994459793983746823109840848954425162868463002530714615592237260624083450600252925432504713388726156771092672578648646826464456690303504810863914934133499959503407394859136632216274033339045942753603100023963859411257124990449737680353875802659049490837335746828108857267040806049636802151780331321690378938721431607491398994631467416211879674751893180097563262711741250751144242952582152178615499034225144647419865391439072333469516020765287247364137886561552729870663105070820072365598812483428671855190002419207807919787628660880949218873385220434933110762030751546795813979895938972132749564751222849326425300228816675278019163613093304690065414789495866071223240769415083448410860272237986657141859609491559749702031329033556604307312749642480454818926809927168696782653208116669972389327126082792522404974536041374202913418503353419496000967652664777518601335598541414673775513462684730298053188697320735196185664715057830872672512455064895206194931731411027484853450225409011672850588862059223319455090762641540557343498319160956226248194721701498976949622493792914172815954207850783921618145749414820517792461009195384187513763225431772909561490974360598229789582651937044264359779686537883650342641277410114667663374309784916159889595668514566368098423175480114580093081917262384765191930160740396972291939535264712424038918266168953775112428339737229657245681740667921967679496692572374360140840993350101461963935661015801195591438414119073286531729719347166995398381623906367833537515315927451606957186152092441868848044728127509913763718397758397825404463415220199967538041230800001467149564667542564374211544123270725229305375934435799943599053909748627157493866758174090475446102708161752622356670047533837596378326283318560978365262577111893869047137919063309942708152382475136660645197323813111643675864929342169289225070572648509870176179568000826752356233309789815073012131898674716202153957395476328419630042465774015638440850528614454481042120748683434337804844023696360562544970351951459723229750287871689239530662527678613579144067710400345805867741083842341499345039542764319488158727871476124701975153923849968644547460309629838171710873220208939256539355710117312721103312627542421935125667166395159293335606176108667443607768372405299871127688525757681574848298589368205133490593616894743402595058420582595145395459813079576352321939697662027094030994393559246060548122416400874356329419648817108344721335353869236442468000482881558712441306033419360577272664146893660660857756211637303463319942495298926244075228710292458877038114242262029981699671005444647192696648416493935319289360012670274737266961245978819778074022950574348934809038797288625813228635512443296220176858446206039635338590282074075207338938081396425681103586693490770162073387820578472993644125267660207365247762722872543697480275664390028355175925245422543039294408951769103249581858702015590320641095294558219194389079818871363307325789491650118333960786265469086350063125713677163473928162744973553665575217504319122019885359761745139599831860498005528946239870923565627803461338460249027934572236838657743139153981965775797935197940163867582494160383389511896686867021908909240173239912516135890244555737787758812099734649897713192012162235097573617858492383400712111034563077590625853115391314128742144992706417428245889073612021425834919670364643777848834385776468328025152825782218372605909719530003030934907464310294468531254726561942002165449265798861949994298350351602542757422261664155606457434610083368207483266381146747226459872461459754640170573933459375581797794998854808168048395294984735808568393021895829530350958309477201428150198614736350840475568241440303596137555843383510097318666730966227283583079540147120109872609761705832721367593095204952685935278588408260327143567813105303990316075365227147925776318764871175075350187714864046899032415620046766242757251343484334380620602146164519210515286074656974989167886983982363750406017071207542833372451863416549813286734631292532716365182349741425938268868654783727281256967478121098208010876986010120699118469760362643519796870266592220664993223901390159553592937186737594120043832893830214241545780331229284327194213206530741991587149249962630938931470214751160764759867210911726519189351647912969396927675362094572426945448327170553707040934853866595723189814399418838396342125784522255410761898582122748505955915521918560022705228050972267828410358484143582412939969728330057559716204738974385981632606824752802966555376064036126621570074066021020927350730212823137818421829109112181292158395276925342779410392531911369896274034545702906130616489309829438046499568233526934209005431609807976228922708429576498495547488245918597338307244189762989170959846790673736870887554461133044768585903191625892846550877882002896846362329036973711557172129279528518944109825584239869230604039364708867050622208017938955313048472655597986134578289168994713444329725545815526143446580858455785806231056258596477697483470435394901508700691193286639926447667941538829540429471441499345564053370341388503047930246315929150055169595532940235331245325817352535657671418355690630039918394153327191491651709257873572103455133729099303258637467669215553542473841232129267368312200573703588822612025153947029858756483442073027234432458042233771701418149252451428187782239421055533134127211537364690047184206988314472053080982052712382359684010904591493498840093775741148645901697397416754353952652545811190029875587899571616508046733006070488334480223480292614363780054670464982568013205193458652891956581731784465275565389740357440939161656701676955651984758317308268157877887033762682187945449705239031577513410293691415959788784030119529726798857811983796522254506649990118288519832213922475724685951361092431395831394615257454280606237128869497138608233296805771073190225347952180731015481770633017966519791548968604704280851987190170573227509596741960131165142605125379670878232814399976378381294087883347361420034732052409943421685555122056306521207597626586282929638727584329548650861257475082181588729937394618607043802353118064262355881448565255905197910634375222664554662343871732343972287207782798814857963561807062683033214498048958812321185690065370038311249017520223155456685345862293680144081293577124040671831990662722384575888859954767884408219215041445245896900035450987693997767496178254220858669560695193062876905957020059380311441001640929604707194391776968012329361328861815603224326484980450416388172424562494584064456292407009346807439971694859943556307617115829671248244387393269874455183547803262584809917579338341977095921883896219582393651979694465999236813729024143358018268270684704414983716857491855723214389581152004049013225097912737275300931475299637723418741402681303708637034695258023377469403848695704570592261376115277678385815549276703655596363401363138901534724675005355718384410216664377436156225283496361507472340763734373421627433746891138657973306391555465687208815121205983601413469279999123409759075071822637280096444635267390616301444958320316224851721974172451844463382756492160390186690320563682342313714980248716672565851858773991508310712324628638939708094403464708123970080527314980267700450413304806074332986742161450453608382685008346985555094497878235645815605405042458199579161839524811018669456804289337540658539076103904272006953659119966552772464523552004767964241465007718900083984396498743666171414216041130973473314136913971301963807392597206162220687999340672832108251841890538434208873172479875593895231748928570938278280087631192477952619693839914085562814732298510168078766085247109879333988882958213589333979169759924993008506744983616565999766913859006755077869672388388455894157234039614320131236415311765752882977324545403164367293422149382670133086650291306154140955796757217517966265400091092831017025022751721791925903555204814884688235443881383487984619276695471861920526740546682750775732465237463255921640833942796570398920234791891114276776690519713289965738224776250039059324721224577981142881026236367378069151888657757713903471121200475901453309153468979779247182599933981724924135632171665703577033009649978175607193358058846921307179338620715882079918213580235364414681740867724021628293084845785075454447586767435593621480787586952047125762476879350628601661028449939928022417947941028111944058496289696191464212709424617432160945963766075930026238035496156496423613333922019235902944997605084344527676438353578280194705560417121605174502392192183579960799335893941346638124036082694671930412445911972294141467539542107191266315952624047704502138394599161620098458646266119478970676869006652158226639136105223695946892471879141812609654085499444074679488484913701029286146653741964939433126943610953374045823449527063059767747125887682085403060660961356367102932894263079264778436359379276394695477986049826430195104703006325471497946660552132862348960465972082949119901945895399667852362460828972948290014138885779729015084554153655093175764583708293439507695690267023137548374766115437471414429777445909278073704626514286156414594121295431805044786349837311900009267158935273099185163525239735699298857452267236564707579020615029986762690113596453600472694720982305933473915642802854920540253431571650726106589858332826124556397969154479537958901673731447529671073521679113348089513438980604577541823185128500851524864499465586791435319969345131064503417925226390385442474854605805530940244102537262810959415963295631295935748964586630923696095880589987144003497757428586170344795495900377549739479021509603589941271116394304347946475012764062443225826259915392160800007588155223424457140933973452438390237793452192084815367051922967529975012093013012792909784571076153021729720546918346214787395578476607717448346606650849701589019356647249387594696451437404906124862587182775903295651326735032057360463698285748273053936698929381881016336427788704263058739568534119682404652594073291928791982876065370971479779646440321301472824913565087224357405723772731764577434113622331666395413706763039888036200030928361664260916923457303494656937886864518358485248549849719830186273115486806483224696016588755997481697866522413296887612462880579550955780280843838708141892842600424894953925423870142838227721766660875704353761788437035532672285724601411755012456590973440433435834626415501855682058450174209456260426252115053327556288239915787770230610196015734464607171117877597225665055920279864630415185626921163205143328910448135051913171490027549492397857674480029390119431985205824805212459383736663781680263702902643341702109267046523774541433607048470017892998038189860557874105271055149980861625793304735523307394455974263678476496068054267923358041751217143698279722879257669911320977105094079267675825870985000426172497466012596045329485302860002711070265075976215435826924819500470414169841905331772341856463389860065306782320453835135353596522486042615623609929957092891075364750732898211458902879115828199183479822247609145559122339470025044362085918332416050145227401176351781664774686949302369456634589961653895553920495608707369389184308847336208435630876330783494459796076245525492268861092975844871866025062122206805264836809563445598715777479294909198391200163761547126244854599497758468859172762034492035806516902264548588739523833967953337869663495633796800673621341986090313167145689587369631608525502112370972524091332866317117334840493410355576410660760124310731015941632301961473354982724051916150988856674332870854813203490806570238685108974540731208800204658138365907206544001524669421752375468231571299307925587606069484481570800756224537067431089821074858794430548622675501334586443379048451903700239903622146495622434417956269655145467371093730142377330483834983953254569171306028116395495601009680399708967802126503819547272135785106610819864763303274754527319195064800204772330793932901694572013047813043591570500949394517502986844695008500163331887143411354894153448200877333577614234808831922447234089549906989392927643747860084821263361894298551189066281038626670324882016865308053018716570812140033508416716113643312634818958326046345478953392300280145166508791151095492459619208634878517257969906684609456561807078358159035317548025911477227827224129227771593382456558014159005790906811695783567216704444896779187454944224604956375031474591897312917155715187892076744781225118321998713403124612379273353077079786837575585090437487653490506986522700112424330477919343031602625912649765606267265632732372185630476714946867795881997670611618202709226084626368860686862798072177105313199157734335548373556914948020491623106779427293795600727166162839303694295076981801705594732749516682913388929462237956218592670366387843690711885701950828731443679017010785583927800255510562543873660706284143379854573005506843606204336828290923355356413978924935620928075567571482745700217350948615118714155816226502664534514293073789065077595309191165419836158623900377451384817610670196285601456328921873541669443960340611537472619416040530874172866108595447828018816957316870726003733632410327453434322365258734528619293377594463066383162162195491611338345384359541702082453793183469579460352426871389219718900376319124694505777355366855604347077246457690028895229663099759783399608796079886334663915132256170923568671645324446470488672477162538390266263009052185124952286347603493756639395207131832799001680565294202583404838195113565735426825038029564505033787555676041483958679090799353995681695235447403255321754608763693755343753489808123557340838271243997150050498208512917620540332798487899622966712163891594067183007305200162172548980575851601909859235129834364565320049384384169675436837141807263720530560461381033363483000117788608623959801412490235256151031330537528722534504397837714961641788884051651944618671447954404679435019499561273571743954295921874346003026817477996420055019229230877010982485537769953347238848874570684711561552500112143772160513263603885259134550922235144862641482327795916170849690149505852902907994042848245336336983723764550994713411452682854914730982251608858199009362116515721166667552285010909062510641816593742150832670349116628137500884956062838197681269634372237799656583139148218338710288942511350329089942736564628618987451638894735022839698412067812911953128173031450185002869406419289101232785660791196267977639472381474620877223275732806165570241555526917062825843808298361305384773127862882765122653813818535901805249024521003842128246651949599092540473025703899114319300118566297160909510500731021405150940058245879860674664065188457265750657920395998326324052672746743981516699299648065556330232035293419728805869074536258767624973124250081009571077646529546926500798866128421816625194351777206134794011681017391567893407462118291444806525906437692551111663773669559675494520991934483710935022019156127043318270906596876151224288025632381119402291072304887767204011550756624340643829089168783356503579586985293770791523743723467806781304751244080989470267769113768016564717623420858975079677820022639930717540838857768966883883528712942090151764213188700714698812054677179537887613813731806222527899172607119869372081034056814055925695519196755663986408470864985879677555631013255997761018979174289765955631462809101644373110500440135731722320077201499567623587410425633424025279539655182195721288016560017350055507855533114830278542980405803689548373782986442211001105226197462581594584340357131317829293136934084591307709740148303852939265497010722578249013125631584496964540867477035343380314817409996715419903081918351563702254318574201217826279679537282670041041386299218526066781564565713240979311543899452091124766276267867507665392094205029869920335488961764360432549799526803512109216631459147897581555420083108838529272836834052769575670050832143520929996038614448886185087800112995619116462037803876500772798701514930815243063471380878926890314005386261263524182797412335146899070758760092673673015313467404436945339524530826048755873854527752417052257147435271235241676479590627262618537083750792858213331277505280032896222323484756026097562692223523819708665083024473843711399856476772179951382665390115697741284545701924453095007875266001827087203378318501617551113085004543067642669628594744745618013770294698913862793845253400794707733585043302889066337782234772242942811618515350576750772259422519266807688532104794993714689802274835282592721651475463385452218378764815462857873588442266614088146307734791168711191413751478556259332580145216125508745837267741766257583513040420077433361919663434186454063215996113760296129283286095564646734982133137836132093020981994424137296370072573025175359180694181378975026353688102061726842215215825771789528859881205070196819570959026690270007626969178902813068836509286010901943333188529693019683858640193464727308599406420279999133087765328249186937799786765172889147691664405741950758164957923172185617591336185330722436825429777256377656490388576562303228240378036184188280461933794260824649378199096645917022629471830963132099504802081751791527105735324132520307343360972774443589564172017583548048896359134583043162531779092747623513298471231520716620534784521479495957794871813801668907830612048897867180887709920114120839184704335094782660024667460615327669028410685608520369796498786566048083466999787735885736428342026518259339072948422305342803059146099159655156584942458132669536712902036519810824407190723169624308873812966271049362962365872744712020093898387390124317253516792080442836228786548698832923334308494785721187542541809196630563328743473837056026432496946252131534382061730051714260434788102614426007357347484687680070081479575297741499176270990719394630104774678714002224042800727459352001188154878099799085861421703463444226315154912606404092428188718215403587945487715595694254598692610856086329608654944018297743925781254044944153648722849710626611119583901555245170479185227331110539380249758718292128719051975886581098447741615422327469454639087517780657992137374041561048103449118338755795478732295670793118969208286195085254323933415721354786908505718601698672675050231733955355299640673592699225723101345743280454384177774308635403067878012778275492631528306349091437588586999268948688169180586728623237544801497981179010477511342769388028997962161967508177954561940665614291827988448806955130001157882973316392633972876292059600676456735654438058368799546311183733274299163383308022653541214380024738875938606654845633171911243909635099158352075621047821461908698632303422921245076323202812433941147712302834808520015681077341203758826366928933916501371426623032659724032691858214594233318976250857681870226574390561667190335873984814539601857896000077454742923558242359647226283600352335144984621073419206730131927986062971559883142110681155060383162076040579519687842333697329950771619892587626609433967547207573775872739312110203112055697715876971713359640535740588537576590747754752563796904906192949302837405528936992169705803183948338350841519305089126749984476225267823465826768937942465978258103237686968997373839813662773824591095549838544752242969113898868036820803116308782583255233543989398272574907301047627691655715230050642215864252832293492650430958087664666767604655916489265837499327202158765558496348260022089300699831525314250511123367129371045421791993731259962878297773649686677726484853705921156679336214579734763105625041725949605202960994896396947104390372234379943815808377400748911419978214988437581426884639724693463378725088736926408604245156642534973847704203622970710074153462822831100537434263549170114290929988080954971966436174665803049477755641493639290339084712227696354287449503958264493028875998668168002762439618386908229345794141592525786020674187423275346073855788548168127548443180797227672193729527616183056219218777943893735394188836047666751965498365468633562501346245493370923503664392260597445214539725316173236530399467878406989559910724788667770408258837414000337972123029466563374291470856260481052762695036491291278134839633065770351872996801067609631252059985531534377851751822162900451184555386087288923686738113454660093235579638459212540390444208492161662871568968555236885239920239417315344288011093652278772303758362904581652343597568320919431916405570554732334429628659003999736069265072467483680782918162271342380887760121758059610957246385235466811524116462029871809103876324453741887473754779955079323828552561141249212824184205398977087733716074238074294280009084475791911957016254911053142992832823064139473759229867446484116620429075171962101453979253210001017714457428218306084213495925525262941530236168259418973032039759935189179003388129046415109159361832909306516822512363182393175527130315536204795250811538711804536331120645315540615302490292471014923822956414571426680804356771713001004011032080625553454146455298849649503161462314792108768293462574571336191178525740521924071013948539365481266333475972363612682510833039295648743505917708277816744483517146593057585599337584579287352881471456063642774611571215825424871771309410396147705066737953151829960975979409988207140788193099705069311525727081204051723338178544726081169001768173895732099640690197663878973997330555114466108886107859999736453089302495864023069578867254228803559921751686359024357863516483530431486851217061351768128627778382689221947373912325470012170235021023867572768394117704055106774431206626449472926215524307655137290988060710585177960586933378335300777056268814280382026294383277460560099346341251270713993500380020829021901510446138056602466152077384307353368041689379482521752041406396598196859314676024245745353239193096300017561056268792322254300691449651630126774271342814259459817126915306399937858451317581630051746099685729448655073770078199597413339852987030543852559364682474852709437189936612929609667722160512454404130577956223303715014847308702394816542011855420423646352004372832099016282754086216620517420513010947641048094290679261833358514861418124484040865631450506370472821467389291451621569756843855489855225888665940130933814208524211263587570607681004879880999035077975336999162502971192528094815865939284382885316415780699449276487586593426294072798070489516724677530573061347898600600935721365883442583578126989563229492610258194598520157066836051850989369073088386175778582958585363545523850304680981364441732580916323021548350075670941058058804822685678831497108504708307772641403274988047099819526498426875398773495840728752508281110057776418437158306334267746716746626359164788457461718702850473981686540046031256089737200137598929015168344810409031571034294191635429516962501330340824432591073071021674296725262925932399358415598161540664950356471171459494715962962387293438697728876840336629312495035664867713414054692444526495992617150394114494068098911991528629973485287549097569582212419792409722981914260206974878609623477923588839193494347999062790046144930046512145368738686227537011605832845982103234742576655169817501436718174322953267105618561272453903113755001386565814880405245034036803141052932483857998956019330113451593216353454865846350095009994100355236298232952230105070846585602864145878406478810562507569575942673975286144190580222858371835083830615176154544727318081693511835616852419382565072273777223534115998177607535151275197843986118379920581707716417376110895921073383759683715047944491300258840397726888662211320995162164987275465245636151951421943310407551233671109958600356288699022825921392128171425068704092035140447485460510079864947383816873665436425711099026338981301707256217698530011057400477519950678354213540465256037682517728543588988657829693853412664474037467359686532617988573927008229064534123071265316006015258471256689802028148312073163585777795681705652823190682647939573712640300282303182266480821664402505628129765372844560243552254934350539498287532910634610548446973062237133406529220570372790506114831667404929577094099756659739989397152381098552534901314180835509310035841093472450825659760744205120605417955272500496563765029795361272022537402538203693102682349451407931570872383044249143254111373274688463010137321290776856761796871836235680181587551770371872378538108929393258088766345319083237588467602580574432643134953030110026885287285335682056381464671053618132596297703939398156890729125905971227814320298536620203212656704813086498169781643657815183844401374720755208107791621599453040599539555004165797868996904640714682179408916694941089716530896532978177642201438595295645235272030603860760310510673847686750199064828475643265563559712649109385459329440316803358564663509209042913295771766476696303610588073939020301717817366903798561541316225586951279645497941829384965911070632467188605457709243003714766815976264164538871760150679666019930588192281226883750709242927967512433002243809018080848764618336226873532133107455646232451292726622960346127394833744819808020811336865093560849473626741087854011494865450652788853201625422164380723181770677346476618757432983262783743889639254293481433589205203413092152033671667883771236411075387387362259424965696948880562411686057778270773882315512518177752279820582964904792809024130871495459624163304288484779842292112832368746135364822467608041564524821699320263175783175441245134449231471290533852888786869575775194475017114168138938902972868081387015744563429702836025419807163024210996149474336666994745118332348146659954322250365335162542671256500561067333510499096875251613050208326158167720883736511574622535431710123895155338653928625931616651784403416559942819762751679420931015070220806804559516683987549784064827428831862785272175618007070486829557717176166901928442717656006005283492004755827316453606671271098482338460967676022614268593427996719146333613856366241757332280241139956886121277011806409298004857777629789352938426865395089619584201365775330418835108320475556109646193723119963582209567170191499655876194005342445138545931520099896194398534963970287519814051511411229318566465773572942756227962993117589976479576143103823046413485218400818115764773622050973042754055898106225018280430911219879978773737607906752546854135323582490363041668457744715590960475249039980712311723328169310129060064898524087443564774277167181613805286839656990364164911215028926808921490086588536115935773825332367870154079842355567373213912047075336868217177629123814766665308949959461116916824337739409045019180945468595670162221079303263796670360547456259719363924881445383525951155876515380913670023063891514568683304218061925816490070299714916327743958645607651415369116565732776367116362312749941609317063229017183507097878491307986947413650971226501656781058365100335501027367323432953949719097163795170357934533744002663674909823867251954930902978986579589545240105835044736427408246370213024290928416918318586118167173173191196156745322973989122318443996384122467703585059928899059208902674974039484623510153511500975392357126351637979171114354994944776988341355539082938625863869126400836613998909470747957489420498327259848232065746445696305800058121894270873460016018718937938431244880040419843554914768133901492713246884320886564259460102073910000130692919384569156198756696261726565541718071115204512248772682594067652149364915010943020877681217753777026029990886087679502323733644735039522815013952873076886016375596592934374988605034365390062457000744816882594904430602883743141898043136641469876554425478919078118422718700104168300317350161006751640622735976046169665039920967883454038578769188349891484686134403609558453595821530315879082858596754053540459983523312898536029741151874463387143899711594959327657864614785839653188849314397118202515308119764685235271193492350380902101369809060506830620965218304073933935021368830374834543051332204738760252084630795439502887787494162968872812713252041726682909968008684150094512393324668372082604689782049604113960931221355023874952666123607420670710807693156438603986985236192497124819865489736763659364976406414523177499679838379523896761843857496825188723037515804191763704189110397887721392909702817245936951720253194745022801461420795416341821313826961329099494763329302882393886107690804701288328683046898339980669302735938712432354288655956459668119131805138246428420908297166583688249462510355765713588272216594625015344727627375180898936218510777137058815152978063210028771340279927650006833801771091640261993328187506770811187846893039160169495456520490527193378673002185867604918812492549343056604068283229124681174447785282004811277044238128777684815199645429410403898866059250364331263148963488216018071707942796532724519952981966840867107697085875619868808425479382021439545212482428785745348581933943069809654708723372684180844026912085476651674468485251041736724873726403767582323518786424841608237070402368223525769955616184061947388025345540711911031495537769192309895906692535788460124576465356179453591792983290048182742213071350255674240249622505454763845505496275975813328993349978720281641561376958225732042156087405254645287497204121267104852248114948430690344054492959167182491079458534215451000222859138509007587627165318513689767122550013201947577051142888615919176060873763763477904769945088493681567060214465065597826392417748844287250875150069788974832036801053597220208035857270670343048757109574906279644883584230290827378027639573031902601976219854756814881099855233174774737490339276977654021810427338014133857827915088266842597072440986612076294073460718864068565545736588087050143799828464182900615622476324239373653532099919635122744750712868535498310108470607256693886733289822163591420921565231324065616181657544817134973826215609813047195216114878826551724697867669704955505282723784663621788025751210529716174484273579504288706230788057253009677427070451112710786786017055618803076594664434668644933417262862767745532988164189727751998909980899100397265502147938550995549358697068016517832736725789075681103505068658435710263018918198128789207025749981873664605575882763170753140594677599610833772014641177107934141744610138284131189083642438933371948555780436486660072583661652185600958172509092200742474689451538708890168976946666536271932493411440711912146629614659022704453464571719791359277580937955063038211152136172243119774286736469514600113750785035446178953886680339799892219861382462289887061812078679116221745072295887372525363268367543015632421994133313524887421120490790542418606497179796661981441672345017914060291435508772904616940435405034749853092496076887920424143330683476899013489863559076105922304629850630203859744347318081107767497911218638590400023733225896255931933995507376155223358678008349994151940160120397868164683826530329218616736304047061067297044515512719660044129284051718277758176832980897271401646230924234486319693759409827523332545597615012628186780593917751973443155045273881753508526079137080036156881948309586070070585772185532830107362753213398929938121906551757178234464084721079845404045290754851145857666411949974316028069144104877392051575597506395342332133952695238545435584346004549462847502958246362758695784406321273964798473137658177377115786363783628226277375877456414352728634422943195193192200574854826135097333525069746704451027051381515050331478993375254915093409230866121811617464883107625611635813641290670596710464752659484046734243130182051844015834484380887024128284119783592215973767120277857029977439413700323704775107342270810251287651226846073582250304749031087870003272009237053915111571815479513072188411029730508883381016014417742516664174866304689340434389353968626255464911894275666601684474621338166351715304810554149262927637070515019943788217651020883820156468288882354536593819729717427231391686085087182817725718268829217490314295436508364940820681207867789625198304926127069421707894612947892905842539634517283611065249397620446136171454967965572589866573516204314292735683987743055086761231671400823780887892260037196882551615248789583333593437442439769632200312416738167634059651652902817112475923443608395597315782446576261534346605737697848179185133605448959912439089311560887819321705538713482263049532437691996488811142545100882615264172540352097618764208564730144430826425180789142214707062805114932800217411937979707457684065946292774767258167537453216400197591498534850827816245990623076400059149376520731654345767153478884949685280151960079617538600010379852064911405911030961996491458383335468137384763164735341277155506081718570796753558582742234784401489947910502240516343639009699850690910915845291651525746651906575437830094485473026300598224925783494835976416310677467651750553251230966299803564032139764267268744442627590208245480742445205708753758677431803584189635143685707112644665386987082801965808283376057294321149442720534999178100731409617427761253979061508406103969995670087896153880577211320719611248206730771276816688259734209305324954158249426905768642670995086451577458965842754298561783978058219931518359833955630760323500883474411631183206411653237656378005060116241445204092249166896304142699700677124978649449645359414964740506842729478489153969727277322822579458716172729967872909365771720351401527078019519967020888727430375564083029389669729727384336627783991696586722715022631672227065997638985785193800534525895320946609673324471225600197593065990959236556350045901112685736832477536490659424792726451605946718467155584929267519414897582671368104745333199622992790601478816753726841064413568549901275493805050972272674081073191907906654168725893580509400098562822440599189201896340515029321172891627341169322543493950636448636852298334509403321105441032299095323757901559952314543946653985042261986184544811968793366292945237391573923103801123545874715719290000387134169142973107813160380455573181217246600449622194755778010383744316042640377864382050561684880686857740133229919066888717213486071338982984801298912118772518296380028943132656049986299407664738893348775319596443061137801694177652592712133882627631594098221407670070594158467420567417685412318337233967715169978310265054118403172283984959766113701999805577222105185361929484760614386054841829316986206954186135033075479289194203784302034542855987604320889055360001440596817136939769219384130237246806058395762497953654219608094111020315888033059188063509320233030005671724128890988727322224644206104302529341735469088704701692556246937982778549163475965413632567860876098743553178361679282385570678035482063467953520579429004109210179033116591099774227042812421290817454354010019183699253458605153675334387408295363595277662152632845879238833579848691618490389363664671542284208910085877122654797168115988009842847417025599297748789129634839564678631442483365649274864857356692033898024196609301645243687865480357178099101259168113530578342719072849516986408558291547989388772203463419803566593371996433430934629146037049011780856050294720623112389152984848504597862935610098974331849206797126144328979225330154247781220275192976822254986640169193112704115064516851428346818533160988829784151919705214037680717424584431867662965469201507205186763416869862680990974583128680410502956883183135296001583666847528473195336106008768667526523642296957880482629995821161821172928373520032825259253123189632274774056671053126942021114273837171525392198700100844161260893833724793863544221540617177228400587379460766337578383702396037030646690729235447889905920786587458101401451636531138658071606931197049345694642206472316598814948512374322988275669704168182046018687320860418306724366577416988392794153365480979090148352471214469169112700744089159533145955634847514124822283337970152977240505038052933176766915207189563484452714432764325775007795029077366811527369529497742514280156165886862955113998772494734381978145791435973493259775424220975971991025761331858584418974107470933591593376479442821484491434776515908690020374656999172752308099342198348688243455662766035173607652846936956495460132257056069993946735648127432429998037910854551979572250244656773584410058401320419295539171051861331354210182355985129116324859171157068972067713711564259144843857092321918812092005306548834647578940465929350146811604302704073071629211848023202972617223461018297176751629675355908316873692033894255247944015074966153273306335370255526800574051165120231507241379246412676054219695680340718747471091744697133246831018409047283777334724263351628736588671015911027820139628686530703722579796625717308477104821193481022243815211484573534823211055241927479793940516252108324137365060714358991343553992132787771022377537721265293332735805889970679600150370945019693806092193922895908277610419420373987068548646370949837685191755660292291485671277269282404684754733553088546105786220638216727028182355207977374140010533655457796337300663567913892273714504498049662059252683637320745922839959853464560351319955229576087784219025147591462644964316299242935856568802687236912237743125748214563526607506204385100638668739297057646476319943730828685172520727411112921618462058542198119299521940534452343003244513425591195884781847110960559818185195255401016745447048503850631468883136666819120145389239821521087565339508460083305151363401052603348704998392237618311406244228358892499519541499444874410080817804781492748578104023830134555547728593559783566174696770090663745167058588805886707846709094480734173996727572058106928807082716371753849091928592998013264118386395408790941434849439208318451045991032491846488352908371718699356255757106889996971574173363685920694643660926419287368222455350739663030168548447304388758448485790370498758711082915250639206994713009315358365875461122820921970679112555130892137460799152900650637281598495759252409018119423331119240245668719208707628696596653597767026162570732118469128962501036203225066993801647100756943250529013812308200749448179310081320937891578829340845265134055745958058572733853101334805341784788719177033010167142032612102368957247110575217371480558216877941486860644455854014152795799156963444103180158175243580716511297603213119793396150129761439837021897214137059439541392592023898587462105083401883193575613028334798987088824932980321715485537831396694465580730104455171596032354020054512246680095881596759357550270490262202034112349802913663413649442682109767193953228138637574544578308445508830954583978174008559047448040632447866413568221460186601550566109931879361010415772009694038385209046808422852416759822429548524330436856355043144236989754684043852947841886029861530948946014498444015874797776272054096038504973486946605410747593521791682816104977145761677854350373642045328865025714938840633726848467347678054222910834464852388253843940826236253739330114927699429582163992915748471689583709124178618621722027120490318374638500662900105376335376135613474414618154783534290665057681407013906094276757079609659572447159951608173423152459530066868889652467042673893352883929444985139979770502133085466736420887384673323044329190969240221147548787380145467152407537695745899176914070744449017530399835371628860410314992783216808517066489250281220925550633305544820126641530949566260337558552346026950979288302358262844833244803512010541870548721345256302146025899552584037075264548524830844338485486165721737852510471811398046257657098667225388481108356403318599455813458497434228308255908017301691032107247092478143367319579564783084191730683359891971922884097707367672873752444250759348795095511032578081643732497710450026297372482974326305318006745703398388180847589938582662911683480795579361213146025991908355095757808352091773785875321528275074850365869858788378600975298913017538326744690245160700311808522714960080759504567422525312721636609194105758755786571572969536200470148393674789916154921311690698564426430686633724362857594203390725562827315931598139523500870281009941553639300573989688704797742777883912154932917480583364739748891819562657120142023079508418277824188883716632247669106089207111959939276156174348727999661352055511990938468110345306432208888366762991872515611643321861896243820587348322791339893197868293458053057343573007325020495923612102535967983673978149100589424625959856992660410080130309899716312873335682964996541267514350554224164528883353809292562179351690093286167025825175424813377131790739248455183885948112508211067321769427345818347320544592849970941319841350611734007479115238908980902664655131831223703559561328547929982447354855276940514923073536396098143384881841287840705866228619621705613227894704992670925768876488776091451396475958329157120201625243823262258035750981457498227206525371522503721934111243381106197623390024364879504488073415637211788151613649942902753541749129207217568672936343469688384502152059960131875353888056003963824730257176912146491155266693443481141864506455268904288682497402111787334964384150345901566866171321612511520789733215610740339018818023435799977750710729336786727411638374659050238117010811009194884693465309398134800700795796135425575218332532739259221699094288638541107845827176850166962043073790114114051586512925518065597780536135269272391019497882343248727198579324302317109906306336738101141522006811245303498340641033019616286946094921332089976274439145534937028741862920994502396906799657890126316153074690439186381079738662503269211472998975239921742742377690153170474193537385416237664790326002790413407176523235721902827372535736295787459652963137313588212867436861585581269672159032028344237336116854293045236412614798395178579499106391074405399056687100850820130948990900758665473615501303402555027639278663640981895804228863933813662737435178028013273951978900094674440132870295906950473162304852204085426001231643689433944145385142888003470673754679753196041134930839736933108008032344470763440520249134578615053036167611879288116972048270237747484086611318152075349054011707609202182065017922116331288555303024784829703476723683842133254716487665456188558555242625333759809779451895307091933127887141304442543869501133905367606073028899766777108857721070918702048399913169570156208402971844343036523421714311391079896872756861159794826782312101872543085447102100180461530079978452059690463226927339478272535020874933822623833352656454332306921146760571804540996299330231048620098276892349672716713946489832454586741423748954549995943515958000356301939657472519611187332058902589459446793677536077903191269508938669953891303966556097053431342640229837584433945826674212967394045025855262726485769177912661845672693219948048105421191864471418927836488036314427550091568723101746918959875269990534431626497894786968397838312406738052590478936939361390705514178508117113843103988572391565617417229928994474776440839328680473282659805789686899966994640436316218368987499659687977557481831443775225030751320855318385489352625923455075711702592257296669606492268818940131711595004781172386427920941242275085746239146635025988210158143718915098369923100440244824443469221667502094634580171575886606099740168924751477693033119178856046756900973113411517430466340434393596042308002188751517834019832693041531935286220452381877000605637927306241014430331487885177824815003282071532229953144656952600926470613467549776802294179705997973477229401996152463914416438434137026944383673528440707766628914432158420036437678563786762132302056756359226677488271456146807501409234051647325365526463168458376075471578992062641304213127881594644972676740282184772965481066736091367607071458534142573987898195038344158985294009631339677291883926152474932490258595182541288315330439314785162178868624858986728823485044365688068978058636069189559212106143314262252506420412342335810358308353317976372868262674983586766027605220213350140295941342973558821276062314415362574236951013078824897066253012856411394699502609933774040345231848789634506606531771303038338185147274625543301509582416847041158015752778331295077323221952528791151488584052071891046449662004239949828362264555341507954343149518966251860643957126286458259027097661879696462916840402555861015870680825370286277672028509101159105098227463865350716311817722820378255425939847966475747843493630664300723031454103246844528932540407552170168855254516597218559587602653766857960093302570741711389957040044324016861789712640821668208435846768891912536212429448029947883162373523019022694067181534902534992898162374149558341747093093416689941774670914012477907128654972437263717982842083163627205154488935733603123203353807760710926141936079257694466130627994163619629929751165938931041980422965226261250927583861134648007357983390347668207920302334171475081455526190441598926167743291482640572397488516433797483476929467175169731278411139029057533665433484799402167906257070049951390200408735831720122798654670417926110551229543949342259612557616708662674501691111210984362307832237394597341920036882121848763768008969482189000224529854529692058804641379075854829931016849298447793785571482296920669296863894467335227606660470977475306080830007022024872863630949943501126070412655723427659147510373371053178907328219397920971416947503119559521407835010607763187983875143074136865549611827277272269466728714494770289968292783358606896846143859132452061370713716906453153316505473399207250809765407146314423325222779244852754039201413347433361030117884098133165883990711352305244159702247727077748211888650208987793710519187392441273758413383757811475610860824638309925632543760144646822000561594334064773893988690103153729248734024175212448986352641139197024362831603839310701587651995578799610917571817545296036848834383878684085748386506839909000469125950671895912293687250925278721438939167939182252124657344612104521738392328937945237972246063503844051435181291765763797938345086002357594007499649777102090502378072615166465216793337277961437668983835141599831979377628972352644414142641042528265009770996919336041903229413958041187684431015628143749671254520879676327228033896276592178573404005053063650952935620075327383752182868840782602904898057318119105031753039646502386378321881275419459202421416263324348471683053217214373868218749887876688887917135639995158751503787653427676493296408775681901848725567146965348710330365056616927007752650468470495347087898776270931018970474253639359292306403345257712362103559070272274360622431152496575364278182669416824758860316196883738540217834384453816029969124441320991085829498109607512193578994652027557794578998722903199060595542866562980167677298549829221150187844966309565126305546392385009641147407814706191824810079191676910750108135325749884861687873993591530719414885656544029992568314349817605170858000845438823009730394561962010136026207680827710470988406944420904003073887472668981445776644677815783721229700372139966498816296074045938094851054910320787894455091780444359100893584401144143372305841683021221684031801602501732363101775853016967901135646440782215917465761904945528735861637342342051860112155376610862399247511378362803550106503564310216640648536689188597202424024196569348854935205985487849240342139330559779245214248346300010669896740591168124672632786671684474505965134579323588913447774756739016525034104322214841068630014427900769299742064159495216194801325035174766831209065804758349827678673672313871030261929567413473194412946729129804440962224837269657832266668874210677112861727285112067747994914359674595942913659252829071080507418753777830288362832828300992818492614582975561787927510390381336562079208163038316591159015348030776094001060944871385390758678010636833846175398794586376390586194166389953055470092162261887311337443802433448249177013823432453895191094398294437034781620849334992054281137201052054614847698254701788067452396914861729896438953428618301844984411313062616395770307059482956543703191608717698303419652151857385204271055330596213240339907098288018096640581973873740375772283882272115903608921236286676450481855311423424754835659839772838165078950708202946278762218666583121935461241615814744830465571020222721864405475708835251004841981033640080110216330890880052582722286682772996996095328239978226286180786100753905661753177054924074739805900418632013334865472514393596383282120951852588995363912730066389801554319014999171535690835667484290620565051942663714076955164163066712451722683275449998605386737638727233781263183433673338922801900181126594049232853824997308293799629100172745823079906737689845858676018671597572549935449582387932184933757710904015434782724537163416111739567532104007332101314442486600896518159735318083164867526199274140683926817248195053592573930412985055751037285012937285316805035780288596032216238888229617520543066623930669870570576677606989930145172323759933606361064121643681178120197438470138543530586986669979980406088747648485936283277624358389829076984308324381346029337746761166412601985838663167151728080363968197958441844104545566804414608726644477184266623678523085506273467057661991901811730808808467334239467841155286389146378915648270901901783867699654821048686668753854238642030477867615597817510891004658937176522308934251509492773656592750413833006005942325772535019312171247025120449800428040101442323297372817432874192321474275833175623792636017719059288363143266808722795744206405012654376633429879050272975865321683175767762982512678028883690760410290866938414844014263434007375240334279049870012871198794296380908120344292599554969326178425859343147461679266195353393642881987943287854888019491801247520346632266647409045301436462407426535816214879080826859318600314323018182772572383863576938034448895746936464831179364231911205920783381715995779797897826249390891670584301369471568895569910138961007670203910541778163477653027114227270846081591135869270116342214692487570979036241017835183684332090899867174797596312397722986187136384546715608311904558312580789525418519446630905813831168539606786006001542013995440687254588883306091436896091503900944066820491742141005797876657456475594924489188266271543644198151968015370399762376323239133176961755710625792015129717600505413520364974267505632013413740957393065065673511143201590996109365037397809493790555489105002705944558447274626837992356525982931951663184254103109000741264098399607856437947273339172215240683943847885775843044738253979797885332823804424969317691967360959860177626245956034422010351770878641862567105866421419033881372074076006451493369631070195126782654173953480384324500035547376677931393004294502430724222060582051918125969808438572129174157291238725187537340669596944294328283024311260993599921517928182890457840077819046628310499963508725270265776899490111809953831593950227850331283450410635784717043826128376849649857695369164190452992064145693193692113532591318842385006139305550975347909743196517631263028911436974614701656841313944028022841253483246472551235886681221451102413548572066345657548039149085778665655985631140156227877525972146904521005792577885517678205205964235260243673678512291451037686063699350499691725547899603838571270797107630108499778238524039363163251911566813429790888869657500406835463745298950300255777500633966119953663459526445441258478026850171168003480863058028579239135342475398381694001703406792940126637417870442927627396067873902767174191243792178070414316007650284834628939182658918141130393310835989646389366993095566452088701410759340420887603831590004603115551046066405319079645287495091751679442591823785978400602211589224667055408942607440833220437033937982006575472171940321803662045002350107386157370301800180048483561825361479798273113797842385073612463621726003278826407293156038646041307060952674200274033140605246717361035325277617298048199554592129349474693943643591937369550414996257229908829595927890993029731105833501877870343043861537991455901708670408476600631139363576212421409712199570774881295352111337514832550430038842403818247566012185409817464458455858468591628900850224145577238753766645561964812152976376820813739623472522284774871401311570312426899314672602043099475280706975325336440606886715633066351472543433046521796380731178210281504818691954422350638896499535111751279264243311148948891335941157985184529660002808755262191694460924803564247397830741563950582247826456444385201509300321927610917264069085789340197636094159075080594211614426436692670063977901765609281895385014341840642339896564642299516749152864363298917964890463179981720686537642237010671419243094499158434418968051489054662242676782642539955726302288794616115795996974169008240031092985167486638877738118290280185599571429131536686947202962217849610484059669315917914037980494489544124983877594991973000499542842666925652869022373271179510830778248162918742153034369906962691331521266538520843366995037724743304826669625806389210053846989977916603218498120812250739366020906306176455177606137341548031837569482307032991479270869665451820278302077606101719913729275784469257929081972391927820823857603142502573993620040038157614293054049413198170024846941110980722691461582657388937074294205794345219181918626433505636248163150039283914136063366702144390598462901343262811084028078719321562642719740371664732169923917662420378798161779044888016091396922234873400214761338653374772258661155240292082237655695874803060393004190670756205968488382647173798964616815246243691333854745321804279867849190102279058800472460945419936648133781403936196591233390956433421174278091536179260667599007908767091001270940218939799566755391139135531194944130357784710318075881970610111424886863790100067116182103685118678811537867233736758688388454657275997052409406688087545376690163944287454599568887122376058220046445365740845629615526819012735749861761698345903650838698126249311146917975330541392978014738214446705046703389214961041024025793584227027531039459612455954847614277374812007759784734259118002096256437174233366038630229675522314970508355804254455590724132450394416415316933088712348405048137846153860158482507993074844765290210133230538166247899022276217469135677253702210913911645041061300807148818315350984016761909189398772898871442239709512532741619495973909551491841167695342166398856132539984552935128900443301469961972906529264366322525038801264990071182999597115695780601725631382598490344728978461642652862249994898129832467548837407876186480660610201425239839019968910695721883706446855748991385596694094872605577369866810129037156194411431259723362767412667959535515438055460469549293261399714989192476536365386594732609908730464570154878214851906198015324110532155970836071293109248614063096030520940360666043964248595647796988876788527973754499655340112187278766716703921541467711175685433795129075502208912220657168168954943182326663924689306915148361505842620031514304012460437122127039391117916387675999590074289527906128855895130691789154617534764734042474396759624778504241673064395867403048541941850064632804484312029323520879411578472556383107039066188868802222875450432617773640285353119296593223093017896398751195040019273152994407483662733128468214725563013288659351349653221003158459533888743174257909451608659206196299932474178133199044953721914131165764886065832194790714297172871792915696255255631390768299327547210387889073575124704006872463554209953635101253839751762202318826215817534100789363117898473642405884834814473211176289186994196961812777831266835368425688120858437572134110638559759540888284413036552577942309897033981789934835386744311389516031815645362908681003733136735499749033749711582245428197027608310706712115288494928064079796929711748046643277877744418921900509071092419245233237094672282347798090479884181159372188328302540668246682302992286921056605178091932566341134677441853510341628852822253409960053918855062896314086069860523350285069283059125756160528142905944810238418391283980517893244465942350095197873131558298847260996857397690725175545069895331552978946128956092317746644653842985216304508246803750922600477562594147169190481413756277812918473557987732434862954839957272235166677582685549685036691687044795924813990812713503851776596866077221453294391705887736998712649246462011136390047220225995021856739819831345862650373863647791490982018065332885492243662305396936858798310221166884531783678486918161925731371949352448789353644682253023468583136019828054647157075221998633299570662973819316271844717900001859190532641073427839593708230499122852248441297275855118456623051283160710433553073268210528319157462893815581375343019554021699058618987404518045173627640640480547505076050895212400903836836824033736973289162418291041394874549801169255864026303763155565308142591380292128320847293401568542921817952491016140227878288739110629989826605739807448265937733849948545975821290716312450718797976662931669208170133205861029913021302013032728202541569629602103132988726958969515222718346504335878744156587958761170273433639574629616312488683810286096152113322965097441995659854402442458294944991485361125878223812413361011995257810826813690757189354143980368177951821904903180693846685356841614414371783312937322069047452661451301751075083893901005551261355692330819145663872184884067797489514326887397571187243347743173324902163493860818226057119217567141300839200263147670553992696723365061542708267907087945167078371833080761750160907447562875181609298866029697588625112093047445795831611747711523145997936410440975059693521574035508651585977257581016589740963275730823910643448528332291022917124052583650086346138152905151323756745848094928782796258797026862158043866033654574943017326760864404553874035358421045702119592110260786699737107803566734195851505575517323180110564100870973544591060323441059299548251960530012880474644532751791947874262929895823348058925599419353102746336922692560788120846325325571620208209652181282273178768877488444625906232117563862993630877783923196537434585776777841146454149898025501221139318495739208947848378018349059537845211874566160257159977630485526754985298172647920393620629374048382990787135504743656700846154737720830021906923279390290973843968526112052392207714383652342862818993773052382768665091935099704443872449852635269688554611170526794758211318906335913421473518737884179710103838075181745749944292776858785314960754494879001086351340255155860123294985667417379891141119105526641615712223995469637063362814924245605975859040242778232942001604838934632435772714270478346619289606416172761147262006753078164578582503452285860993891640249853268928445720937140407381624337091940937001420889842508779758049085425783497761264528843085441738587322457633286629855788491872000157564110293199209844328392755949800675156041840976808973429715811071487076531134096992446203506867699565065741730890658933719004744605725895662755744541645151074608675709372524737828352558775868353240063814122638435006126323992223084815571174825650050977504420514176603603541179405367234538180152266839235528902851995576109534935778276917459233412059452003145185407597997975309616581944209394628591430228296671775104149363116640904484629132142388012806955007491961697038836791628647989950400144630285060238467279897826050893208092170987117295138158385751481614219337701958772789115371703818387867833386183606151571871233156756148827121409223192215765708632833688138826578219583957494560710404179810275131606305427271024526262701965342576741941791374093224170492436110471817632250184392408869787308935835771769968125301412795097052382254092102965980162818807426865331975345251010152909748723514464518704795094289402726805240678058901550949424689803552300713433304925642540987701063031389624959499365045739909522533446867437205013727336615209660429949332889437889742309297721091921569504584123207408256285059220511659794742435197036788900236851734716536595140267186104322392353362798138556058597217550519022285893353642116017776021472958538891735363557291081612477057305709209231208556099552335768250661842967525918993671132265092636743212047742565588291576880663058500191028064981579556228541027220670971681949646591225249985193992381275503457298270910856455033039234703764888564857803068914176526009124410213491026687275853625252431539899707361697075721566876784222976930896532035933600448514021184460776806541412833124762360105720292924040404782020201066900197216575716869298573453109166804035827309643933609220906862268095593941408127071719285509199245063540648800668188249156869107214155378230467545815619690272413031244343399702458520611790192317401548067226353975880654696297507657888134087646650758127230976838413224114038883798082981079294629993732675990494004480031546804480018132265925246814798636318160706810053477622612973143961545696976718846490761140009668245146115524188157958484556299601525623749470075690666409889899109723900459006646788100684234235836996111880091977943180797063801914800371296674998148817972900675489528914866872362867757261795095739228565918663773736403568804136490373443451623395844208266730223867488245165140075673797389950712104835697809434766318523194300052972524335951513018579657915863754002347334431408073109505146891659349283163439311606345735705128495455529473796848777410268625895217876479816403695561430309239929480763308998743221832461611709554652536108652984729599289804811317378397164577167206240089076994159099534030821029619173547161181965845945425651972979434035853237169738531165019904448055369245428466966906626110717890786162747774801935492147292794314479944296116697736288268448496894386740171015416246692123297034454574194658551210466986318745004695570021960503477459479871509027401188941542762964588579626542748435737887337318624713684423958087316196132446380114221433037987250190991178957133831327258042969133436631861949581887492753575795960919614866595011029434399233459654295620336150193708955450990538847358484609643132615405154868675590900110321142513841229598029279172598137277509878303091520633445995596775189924890353883105948521386190494914845557292642625469492584543483794301005323865894041377308570200541776808759208311100844358331542477748311473581124810257325491827381717677442944206942455682812857611922849918721964115782999724031467459213068949517428941593753070010993606822083960607645027343749974128285145964327314361945101166586699604439976255888114831198115898238975515855787422848723018984827350813430300633305346201548224329824809287302697329860438582559366290896219759247620077478134580845793130418912179017838042540021945430976470405732550967567837661149392496493278775782426717800182701577190376301013852907501707210047506860883445288934506711707762149432083589876907314189769379287974785270346134049578314070173470555971328527104296208784614797262842490213807802579535013622696440256894275354354896071060398145120710192466898368390797350440587119465352905019396533616373446430618345267207114486379222170025453701196209198364771467180262054047152633026344294967012222240553041800468066671004867056480587479674266278147372342186822425014876321240867598395067380324960088168138896133745388163895886282380900002120396129811774855886149072252089698388091712523970804141837374629224145564976334553071634673585022994163937809662931971385715981743577819310755718424434120471446735200372196344880526725204139399185841955140606000190716992101035495620608463220955480384309958979785857129132618883166402051096507160950589186829424320079262249742071888854599782975997284796096970597014835848663800049423755501389663520671412719591860248256768267504928352331274194293360376564089325785885781716832920932320959752560805192807808352357650830824122109059766723017946306388355619151393866665908195564171710051749333616283510999589881875032981306086011478815472183397925214176483473325116791202525893823474555960567191961030824617438905349709605124107319778837088984618961369869966179696301805955745369766595227811179242994705291500744486948292233705722844611685398377473216877463073307893874425223804224361198421771784936738764017161186497099545973078473667965678906716942103834544293739509226997089093222503727923673219725006899476111948549208381607459488028132614465117882940159584841293276473927011515988334700791329863807039692140226761649279713684281475980063094530474483021930190335063084432931941693537590446036224176345033573790431661392145902056731193489852090898764096847312427762941903228853713814539857022931116728828278986711517245154429186782961101672088137461827649343490194850349481059503040443250656411292611169129428814760034011375432432721383816080837074444198442532943000003825745154982668157533675258746185506316697936732175886877478997443323687772519271853854946783222025994676731698544684249535454935165287939359468287366446116983733089935328680722894087698924195351853153363030510114396450560383361766006545562196202640542946513144945539580926526666876370411562403608162703723452867758438139413619511099877316128924687781004724756402037666314235394075415470286281960786045926822595331189061215990673888280563126041121523157627702531896215542859460266083832648254599338552425507147554490712263607722603789379871530348044637726565750503313944286183157036836839666976451930813970165503546140765912181373884015153401383949079728224639517809124381815122535918207048555254499940935066640398461586010764209042285950446565082276054736277741742870817493192708568145821453034684721366763323478129813897623719427617354929060286255977738273498111538942175618166967403051188687867294483401717928089560043353490472648656286950307127720685580189276151047432043931177962205141287327022958113466292366856312490676182378925775386564305799417670798942177679961137200791714477278767046429909527519023242696976782988004266148791304340426464194125518134513631980915283093082186201417518350907378838953595304935804219979640193797416301847584767926878234796243212700002425404441191417755177507881538855251423246531741155113492200542965310235307111896043438113373075443051902409178148123375701474216701709948508300127484405082419317250349349593734911402807971154500435329960059084352626333679497351255005390756349154174770044136051308821742079366314304095581848893010279503090207630386843033816940558353519405159177598729197196393901745686014360270863154182181523527150330740940411048766455155807656474470400978521338333943594191561976669231524909999021067958299900372884288822624024554347455312602605664398807596713832249810276016082957946967335973368419852588354441663854036476402112204699577278214101006807378028295875022052082434352774474824050723403241099063581632064619363406222424985559567279857992802691894091515261444934000530755751463512191147963599199221235135949488597450146280594714691617927658094111543684654430261465813725916991751163781340392212252327157743484594340035493685453316386213855733507701681621439954621779047334226794627447194221568401303230305737723799897261763485001650679158268736911991559763047723909762939507571462749176326255620561700040060496667908575012280952492754111861023486588088142195228885187698981497892514624918434824096761452700541415418924190676966346279225787041295691321701990440519792472224574326774145216598651583549653640442541936449067943374966902090239785629546505018494327291657910477511071746231699024805002173157410029425478512478174683500223512923456750204547074088023841010966536295965735827155857583623486306302901812419384798806919173364008853965957950761950577070043135745254850140816207115139932672991244784984219867031505021996549396608343516448606341223109619050185162528989458212605242618845140413131822767093996529803141203208037760142047193024937340386325846696367402777971965007909109838521111568543321968529632376810865477745008506017722248601899298989188366186893744064695138675437834128140365721176489541679042329043042266540738785100037427989157435642198993958836007038436181099210162089890119543312951103978269937079469818567931969737267223266123122801802591732283790395276706397967802736947227114717963415869131412910330383784489061009903415229070566856742336921771349219509780799492457298644600289434512412912415187609586640199915703668260515565191592096089164938381596061178323573111349870157652396997147884830506820578755290751538833164651364251500944580178676806370602756590782134122341641477299407083697987821504279975311337897414290115885630790105600797683696951638665601579149878719742762790462825380137272773595273383365662154957615553286427919323133251972346433321950145260710479673677101839262078067921448777686309232329703085662265680281311330422296548699562584751049746823305273504851004544427306828824403682514059947244014909262353803724071315272325001492009097067027605057784797470419108172247136390387346524051813349577321784062034680650543373288341400652588888935061015585326455035460067951408190464226270320640420496261744263419950845927998903593660452837608851761167047728048132061679021283249244439216342583068871829416376498793742167247498146717127476956301209654086604496886428665636067767249566161314938881001006452512529381898070683343687612157032354544376970658036921933215813912032682410483973545799393932273807608905611206808192196626508699155322284564505105815174694438353516614435473947387154508783016172511100987604433135919873050689552890854735799875235226637132728541545291938255538498269073449700279458695171278761085800853215034929092321074506636324005245515089824106341528203773778489666365829743246296336913875441651633135567943761264577252066871033187863818307901367490594218922302782415051757475026648128353761456722386790541331724784920895048080133730208230742346180406870017598743299962462392530994855722581564610664625034959043842448400848438335940125248311268746505766179047460395932757956297258856061066237431705089726870209730707658487887489022620766834369618869255689488351659980445408913266790779959733312040981134781625886566094910032140107380067244660463113359368507436634706564253619442017815894863728786420545850354405886517143947127946122234031628331216831843297786096534752187745772773902531015174424559437797685944133161450447264231975112658034703750879811740409122329314498837225725018627990199569032335946319059209957728354980043029662417099929218270947944457986346434601151456843218308650443926951297586797463013049363175591707621997455827458094953487088916365860078884835162697152149959848956643381303181876722529079911004046296975566206260725701253970194014110016812666805914513437301473133749377110298753579766990471349364619435332897401939882008384031041716897500637969693202060188109256995290720729046292886861532237328267127574202111482649811114858372626439874131986151025202226752749876614875169737887925267277510697801114047847904871589361219990436415852621085826500786724873724842306662495111582849403460434454658549483887524185904420345769021419004109939775188442992662855300277684323814795591882149108238066492387118285170064431528259986083532753100299711225639969249096664646086229222641198731107251776383187297633936108301972049746606679029674568720831001250711245590160361347716376008555489986344866171051774831793298250605238512957439414331004167795432265344019545208537160710817510685178676779610898238860791014036982458310769854276570935377408274903427450699620045415141546828726776498033581247440371976499452720111020687074091415971702293231554385026818476850350752345380858724682494384486258703994809447598278585350103292588005695644215173950167552001698745529032223604409427467634472385016155173589002624500691756605050513157401977232478658227894008184392228456808745489626517119853297303789877830832998115490705578396039213169272537717629424711341111076335437182219835787840534851384633279997061842046412052203004677648503135187058666080068247898094602488474747287248834590352901203078163761621360088604573025058991126632398634432386166124440834652681501981142632521208673372633402945305019382643241900102297137149851517434019375866324069853808146588179868951007349457650737476596762693518467988552561311201907844755980434980193475622011512401856720855715320987323659292304155085846429856273431011501420684625923040629681763339556639882436365411910863732090970439696080933553992319517564165815590308402404954683184361690785332652828951139170591250809494757406082245269762798369860492212919653413680019310306620072486133927335016786016518458991770455066213350369164568061389656622449542631049545186278535881583890154965134116029224705119653253670764337019456982314698258486285584523601926839181559484482211833233888216909640885239914182182064618861523825913571990800675619963512690733720997578821293145173096088212295318898545503975709488978847190143655601423581375550847402339485844528233859826872657016591829346128152909084802607500284040515450453909904266904090557166291838411532957077898720775529629912926750533807849129859437407807365656284992360820466251984101430676456564735766943576984091582132728109737169367731128421082605883609082320998399549966140196498417752817136916290897708031670283610969753940943802610379287876603521771948123626824513651564841947353129499299994781009409659736725712303938513590756838824930186392835063443223514258791226634987351555611943438005818719273479919922244843749179196974104599491148179575895520069765447775889563027514277521793510037840515953899856153673713563366815695605951908406116702367308751092226594355290721045301144591950349829517596504938187449240663973671659542351673951289351946696771441531046512556612324892575066742954077187328799889763822563361240956333441999340699796404302783641541072789968341156298573256583520683325676876522101315236144266600454358765254697016451784936525041989564445773845440089979472892633768020284686754186740536269957306302483479890596136511017043721919361010084920471805547887335841321056197333139213700972416544173385975470637592175010595067081660642298087234415013103931482611811326979293672872220961540471869774767829894974874296367341044661491067445905556238333801477143012144066140776286482310230207066707249690065623575538301861053740630782790739972762794018079826315954422469827511065350063846832511529471352986978492076674725759803754312414293260398765098967913216658711489908155283952258540892429195919684458721273293863939200190636093137436913238574991859335859203815515228061381815367903307931096478442541001581328078965372108523738159320871273969313097528023878913843388359740162045995307581587544976878883366251413686791720071380550144845181679657689865839220401479959196790561767573920496689732438206845549209366853270800023267055453908043282618680301288666953378513316741314829200167735147483352440309413321355807081251110885576139223907263287037934535713095640221499495392424788341304899584826424131454153193859691967524567140884267980176705360936270308023415177039812971835865483111971678558453308725061572211217451450284723850070090311159742489365755165331120562250713540762523153064369546317291734441938837764230082772976902462337552269937102570488059530102451751590874490235398915423572085268354490464640664468031596182126191709900209621319958535012450294251705206509051371673462283575364847567753192677962777646147745230619375796224697497864518155767364260229646185561139517229867356062004691507390180142266141129578429204805377835319059261386727791064432300276087039484564163461856839856271381627415490839490676888079671685878461387727802830749421162685487247081345492082783041972916219089284623207465589204270654283247284371014878619299255044058358890954587367669018164791691826944317619043156270121154345309138986128286607529675766929707286499430683551024201497234478067793949485435386218146026451747492625231381769193473298573465122579045564722995473765271185369301440795165566510124429879772698923598749706088951191426391760005119469516007733476458875867061965534710613938835467336251530714862317458775129492162320632152531867742582702505654534598257257079774290075775941580014004553852987006281483257247297432185126060256557073552928733451399398685628849397714688588263578186216912969498114959548574388650467310598941791355173229977319913342351960691554449329272869199169432239469667433500656043048120249746176229757706885686239005856755912699848847727465925736332190618374435733850091176596215634582735587317482775777292651641717240943595978614980658927946415712907606511389868789237623884377314222894089791361582824570550699409558499365057075206173896551468848423607750977880308646643176233644484364128723997194552250716312104151657652339143230706030787229081563326369070726453472888613086428036400803076573267652461538067110862438738586218535429244958053320044920452442221694270915880291081793909846401138999832129282142955066150009835280981753010381949286534575809649642849645041229372220894055853494065632813499370337792644987327592173877909394519924716743472404935115539984433752320871091299295192056771872214533039889487954564457949005371777326135700271771555957218203092886657518823985263228067834621629991815997287309479670747235622093130986086075738198018998783687857856227378824934275361408187582717684043516533565063708919147243865218454659760709612796098119300611545098011012754599612717344261085244608635176187316127595266052634149817558977933561646486873089885460421858421836832870204597483863795854807665215603685895793704763502244836083564978733112627441893164262538567667007949039440518787162965772996469810191715599267417993170648688248507500757720532135912478323249674483624860002588685525388172234058766524226542856152371756945014337875242217618696470732746944793865793337162767274941408489037673930736391070908165443195435029328103146622487058579374450757378815166334822896748015452972818702229287107085042047438076768086407543935455676146089909217162150956222562425431024550541780610466993138395688861726471323149762859330524930950188632129024898559907845791768413779416369640058064505565347808508030149985061549610025069571514689955098095954975080217256635862851119865572511728305365817172797104134257679751217092392284557262909662124640092016766438108118978227218790126330133590462561471996642554639314684053556647561268859881288591809048966559623968856454052565009214762856874786590642093979079946067288944318668719509205192463794066183588282140489839224028068290849830294896189788873007820047016018855403211791813715142738905483199984912565006642294100583171955347947913695557941609011121598811379366600672011127002417805039150267143287485025973138742089685483633806347447503574324089446218649095772283159863068642944036864395595316462595285403544357031043003809888741152155929485812080807696950811252550039527898918475910097198707855209091567355938139438860358322951413548823916833504625648918195704679314883196891341747628555840828402646614136605347225134460284402033579087090256979522818859594017856956255587714959012567731532736394574551471032230355537979182632088328818135835581108443308233271946895030379677711342022600934420606142086432943860474871655292775193811687342667511383066667412896199006651251070041209704599744174313754221628705311394773388072192280830320608497453606216427685155209240486315442733912858631295007766704602076698156020284451294847316062531895064043384452456432813453357508818211800740878335311980324127330819271086729909569192964181764363005441144593987349180654818105696374850279386882727158670362143189440722831035850797025993979704710292062526090812211421092188094486430641790688406249743368202973309079242634622790077482632978536851579542393345378801402495173358746285224574247079115571876702834242379819398456335447088507361724259243374656942213185756547345293446916938002432532307869099428988401231297150820739497015202366685230746227786001773740466547226644482237605527434016316630249913666081693963315005887364621516384858618287365894371901330014944730652874184836179750312513881421001737622007403368055508603642190996796352779856065687510648661373275633590849020537858764879277952214146655167253481098415195573195290238054852770984838050382013073784261340575404369990234219347210663213890962198595819082613231255253130192710657338444802986311758533310153938700736378169044650452515015070052632626303758511048281958012531563293575667543345270983692896344694765189327122819059930726024429954552712703823942709949319346445455909383644006626228638675373965865072445412749597763331443638696550728884970545691498453713529565057880276389017843835068159395251654589626202489764036849190404100547155815163195377838080166027219243564241668424810409787622645542167675956437548891286721980445831355260391508829636089814120262625533646321286932840843090945812655172848232483773884604473056682315213916029225598138555400948132844756178220847696373993137025988494785118921467341987485169715791074580951302986707586800203794410534201842124427527751581037345846660188646314647640605197958762927920658727669738632362942735411015710503541758639035776845253742937229724935417798014740356901461791755376361496340117914366983126619267092959369983747642023303902456920586439416472724878138607662440589549792460548131349499131460813910870153661394684420485336994642139042039842862859474400785858913517538994639553192533959992804745068123620328902431007046985506620109087903964063042693151082536539194243364759059792567449511460266723397348180706618748011901502600694016776941848208264020125780881819626986802270697801407010417892078602123727312146667564905420535373179790928522814014173657642925504097193482822813892444228831645125684605486253690852611339334784495173953037178970107857405272059625544965361579928383849681875832149286517794670481234650331927353148944536678466154456288917585814912162228013228173144296985719733777806314053399457119163343381181672188714974818955572072025603468184794759577536602500679137414246963103912732315494165251802902576426692070528880907308393008659718982141818705534382628141424946719439703534020096653990914625967036839290753363355439444007474285153431648698317803626832666278321920402408582559684417831732908667116411214083418076994618948902968168522544879140331206308997018997344527758245636662521397457096831932547369755930139194036607750201353540381535392978189702142650907517394006219079206421008901950948499082791734331958116490469402562553906281235271941352285622266735575651854718855063956685122210229697642227646271305329801146115105929304722946212021167364305101944458952233769120072792316466788615782663768410864456471107236735343432308442445676430060918642793944046021748146904633814884160883723796398774337129107291911077289691347664559904375054215454114412258361461276314016407210828404515639581887521481492602155967524348834917551717499498126317417757832163791393148588573311298476138250831109188995460309617397009504981615525456335775397639415392635213674146303345138105217726563555194413577372742844375901756333046119101604728499644018794119561232780505105517271236308484044004941288228097501278204955010210413537829996850924180972053746989536345308469975104191463883618599424386517753282282520096563150084130518699398340370533565695856105253217940205399621308561425323590291036001980790603425722016531011895174731969542698937245215297512776202529531119165950195963728336720810685923399581714951026492600556948210789342951086393794334329181944280327828406903355587318306441550500258287372218460300576785892436776930289551200274568829305275885277960504165569767584236295160221228881662827283901910492877395035870100697735063178929585845784705057969495611557509313931469752212478280706974142090693738161294388332168087268058914694323685921817603677963408636783140743526325022800963760237625146696667116927971575018065353184796342366085866319190615284836233500484862676200289721779452780681118399964140519804156821921827737823120749903241997388633055100557745005734460135424192608022002241278425641402814926027145459229716773724007365046322248805722018126793394822155864353461997250734940799601283432796672130095818887603507856121754207776352810856613159516604561395456866208492444567656050623455313643549865538976288719332823704262155405533866223894120878684105623264417088096729604966953115420204540168528160762444977363945678153350415000070674628775532536313028833869677604579893711295828763513888531048741406327532786246732309016219051095248539958262579089903242434281495275858569588969626125231456023274836275716586250446176835035693616380694173836046604014451649676646518450202494248871944154025608667093546226475377556224989166617226714760128748329928711432588228420281314249427608495008236212383515730877956599856494160267982723206814347654350991794727667281324011470631287396732839829578928679537652465557279159421759473075837378561935469145280094829739067885584732225462311019204880665407227532133976534486682517618025523196068085624081015157301991426433973723770411678550486773097103770339254481463311236714129903708016134349540719137092055259644093151294083552322946201143057390183295712990866593167858583685820863433976383003330008484192631734429133255625666278353764535028080194219887074674391821094590878503969409344582991240533220309939856807317514272919363960052992849698537887761882455045830911398483484708023280235267094653527288052102022099722358825188581121622941765708942539449079189782224915733622390061652646271057611350584505306169430282211493627675245107400326186338901501941321500948441155116943021691897457194143649929416761807134488223851470562342056024039958028988998794085132396795940634227673335666495324622459812348049400327893270985935148865634664182957967032769503127989647395128712076078190879130312373413428500186092914550552339572723769954933756027251218901968083410923295934149506363287390653780862774079251608530616796160425534066406762314247324145863972145318647231913446017059156840123968252771891664448147952602630021668661826856195444185718699784982148919953631692630645313598965731194840491868697762047675989739563025583385679184078617752195315067975713453408961693448720109951532263894353413825877859646676915359089431757874497113364525623302717245318326976027578596568550488254486710947678262004686649958951760953483192688737633326891144230407435340464913575304058670538772119881483172825686103834774491994237927475101159080189954735172419029500155756162480736974438140630995888113636273745253926382975427658028482613190511069237689530567257149455686851317970438732176893676384345237654554743278138910349811083842616231848971658381871422731692185793109038784721213691443041962021772666348369543767683684312815206952766718497202337962798148924755775117131308241428015634715190000933207653590313750696852651071641521902363195399832135684131605552218979075507737935236037434839491779222719727519248276562313943966397062436293313097331615260851653944364244834479650824457980648118299543676850925787821618452308104260375232995501621377631226039477450251818187958913535426925134126794778367425608167692166794042608304217210834738051769611207109488182834680704812523448458114506527163947660701497261461051140536496043060774048158875928066125329982271621627139120570289020767353287869562877569024479335413503484298850125513008045477263705273093875715876269873006635489808222604816887226190219926108624772235279017851078822020737079443566350723161952835415803837576132018063410769952010343544617402878670883827091238346085468875857614849759674952880181593829968805494146201686220553480690455257619394203842047894111016549293483309197021287490240788493822600918528876750596790309235274982671926969265825973699754595416078874876888812363501966961510192286742298890627232195507148797390130333713983521996711204891223598747781283772293746123480399379579422356306488073742368980050275147239327857903745710911474486656208212513472023576985061922031322783488402121841141880738196317354530953789249366949634954844087617694073821038500189535283357216296203522136805925012740306017713066718487362402710071220575245569803841821829480968304894307437252588177227098267745218883625145100075975497687240573814711404310770281089867798860876255178432950809639802075290179175081031760484366726864092863834278068141793290629680914738321355466546282812230172060852669970603964218970042155697490024243972576613339130137566575906532511229174735099770330525922198792599673065969201249029932565786320183306399654687142430048516211114737747572679101943561538852927791876333564463067435364741267298283959063954166414453087243278963575367513060693505169518742565227010529545562818036243169257122857540125063895690118248186057139110442641545530915305523422466908648074399018897028930179401638470897781758202010977618416005102461395626267840848083865910985880689741241079220017726629764789006840478461077889313713542031200028386992909465116690710474716766989618826412930608904330457797017541139339044573635231330936967907388917849165101282633384867016666867385910597596279840869121127276108717118460998638878267310921769346735045616678597716192613445921794056482024160600755457652988633113156868905682028385537746116156409442985585498232862237352547237441134528861906584671854598381658574778141754087649020040471334239794209580362687618356507370195328395894256076514798956340789120461450896760369015074399314765346312453807030580728271532070007788202578823866827465376492039335518707856541779853688177261560467121180754178681314941548827334319378478869137620238295090070123543676900927783298948472558071045250149785088674214925882036295895770706588611724942805498589489276089794109721374132642444914558637225032295555269882921038593863663545850693986761602773104202304700857240797696749002083354650852006638643394391743732993359025382440987360572497716508626812820928249673531428480448316305311731848660261612170700238749029026450211602935098291203289744133757911031322296618197997853203228488132183703867392338066337120958215866900576385133992328126280631562414418505236791280451590412249715604000387048793188516364866356207976791886043303628049848271283359661375708454754047580998522869666783716927466494550881047549322729642580664337344308423857603306474519185265071646808060785824992577277446409805183076350208577684000223567109820545241635746665773775114192507068542053044421632526715806932457894371206978634051340555529687854798170582878348078324095840565433748969806007681938405699434231535604559418938915477399552093048284315425451450266313021439763782701475480470669951193543875605631749258719291516518691310338565580721569355770749386569266290726842694016530181198769463435882085458274621419368592841045203392586991935874749343550182151577447783104433297653128648737327724529924415125004870659043259661681803738353583686482455284740791828105651286747030547049065789088279177183793742662723275013739842565028759803848490864054762517025045073938118772377028284025158117851611999502062975894261104787755373387966855358886781677363718829722576473669944412393072698105223364350012155127222425280006401012550767081313328929495800956061005138022391271121736526746835242917599862978721973775615056267573569927013539761123513102909740576380210808480771708183385501077993696543516592900382006752634216577265248615247137380158578276777328687530264194696068205047289827938752510166363577767839972892271914002570066215136294172798431171405965900090751796966012371133330210071947609934643687950372769973608870029634968185973492387822238453077483057635531597787218049264035937327170226316559924653851476350283052448855884471990047857862662322344980789411310858596432171034113960901493528400991028207477105799507947057585622113179772868598704824797862013739017271550415160326611085194491235323457854118418975169203152917674942408006764386345198879563372182981082006905472778314060256347276949601719877982053686210398617204551131871979002068930915831014531467049716925999855968848328289339479091295843149447163697290301971658938547748320077145784612689709833513506088535294308679632821752586401452587791023391137838974073309261635181724342415983600270311507149458628013078932324307761855351665362320934268938519223421568681886086196844867398504947518902086961384440979861335741971176091797910252658057124823203411584329495745272049675786633184774931084778242253365105738779304080436885145036376941493320894008850366419547516578826125298686821459919322591826722870366710117872861685973432219830415621711260477575337224130686175462143108939133459173355051820166565859105432864568891378173242761018068197634299066357649161598822153553831125988712549758514135240541989862944057786345107207643660367947383090093380005635873042122725511543300765340366963953073560494078997068650373357229251633179479420184523375988072985701262531016587131976911651998829022908788184861630819703514950615457918233571867345863809073567601726061775826069712847770772811736349586128180384395272436264401976109601894127711769719231380475672289521357150728407270240130826842848195268518811164050785001609495975921069641027724529718577788737367908348421087542979983355852202536562475506772553077041109395268184728980430096596242310419792009339153636695914054569741878535648517025666627484131902726950177260742194469535753189207799820332995405570593349996841851547800608075478395052479821179400540818448548030061355890625089407064430528743944865975256910910579473079185713983608480384815989351938873813958350791330036400815483776446245593357210382770084753815606691524978117748122169845871373940089960327026069927700121621837556189181379343807851023987049554198819316489593928131252883999113509453050879946934665127004950599450778842357718958944865776906531097850459827613259552562672361616736463630261710544643393565724488618099887955700253824782306945275547380656277711284840815263222948886865991778078843901303400231113867373874527816452286610992790649242891367820292939182330372573208637479908705287834136561735567499292763122395530477245545849525979440000034130707360799563575947716333367545350881829706277092043515636277777897391733831592944838622922914474187409125369077305891328559715646694971703760323160866208986460387918106196369512091750278189547209914385358414179360891052900948634464421418346867808844677372679395417373770175529299851700395810758413441508433135031798719141753494687271884524141645404098426308808791643618367943558140940134876211842925032074005600220505702409974788651705364500303356117383001870125606782486418368579811160022171570260563640631482749326081624421369092314441252038380488199686373724077123767341104691612955553627166616713388324794665600253066750854756463660517877141788124803741013704790448328383794253800028869466336231346211177357701782759924974790954444621400214848729415441522825747482225535510626978213268633805092197093007668716049268389372123932769911987815754612532076290259163784028188515389605991837123261239187951878749102770638972109632440410648667183846137159663158243309337102941643484414192526454196533210986543506874148414008381587397085718852031447801709441628166018769291799848918287648209387664893988238839232177377989792644473728683290083970847234061000688921911592009497545324840591081563757441907969542827159857551333685355335673421016312412825925435749632507447648954622548777674754317529334839406587027469713899919787526671450816020206482475576888738370816451467089152338091400723315968008639073900404059522480052960684863981309527269246468441685774685475029826821334680148878527159721731580954757171888674820754049304684123128340385434248816078202194900684598038630892622039306665214311058077053180892901286157152913478680390915188901689631197644176009936387994902097288030210667429887252145666927443401734943969689430667584930896965124409446149702601152606490665698098727403109105610997936913555061562029235155754624091664164566725834976976695450707024892547138749124194901649487009984912905358021813676013130446725458135757770939802054502374407166846320786204903362116348572822759528645678706452926448531234148716326009943033002366126001158024075990482689949280676392000417411742794916402302458299789274374256875495150887808223597341745660623146906650994224360626615587974338119792559988375809498115680370195005915309708335715432638255442178169261817578372027588415391816004587157695439722168040355477673988633331845853285480417242612283234341086019422315731543965536017451690643645013532576479157123193280104150952819367667453931116892717415407264499365599538913334202654619556059878695822878112586731288510030910459968906824392930850221905942483515399986821724713610971248103442039749770491758658029415867407781544103690783335012608954875788714439580611602694403553585838529803306296463723159598695554177469272896410249986188461210301861762600658021743408927374153593097477594415219383327147479590457348563773991329823174918908284625635155500121908180291176961262688633783615730408505960050931597875760290579123789620597174248959901730247346503370283233107204287674829876178614396737698695986447655933527014622753248257306926615757835407841032102870246885059274615978535413489705098363519089524153946983248687235993603490838498760974334665203420637956126420928981568627422228245237813695870712378792255676955470928882663049246118320322100576111748817730633606141397651112407082907227924256046657878464909006168327536218631975417619067481000010980441737918375166590358389301634115072441107134281219078433543769446778570015596069399413351844101397158265978340734512874300355889360961180815677303094565166464201160090908717848175805635843261045909175962992309985855792919586108085794777831753391650404277313773165128212512290318885579999808693382110440076512228194106134020676976982137346473610247946101944632659589973316560153341486757409371280764697000068730725206310744303937387306310297050286077941829278149978185631253899241871192706541235870003368280905368109625338204910155198763805576316574773132240939148552144220935760297188067193307562671246599045663075370613824463662006945034745693761993590145013789339504078193163564632754949532008798378056615673030289835064357431474234062694035531683044859628749387716106318634472905594427880376889111147160585208243556147831537102377910964702882856613056507582492774404343719585713285391465847922143865483735521609048779031889653824966919144406463312315935628488121115473743119837450757464638428088939859715507890696519441814333763583056958875335349335275273558369075413715843650785666442760011531653720681586381720601541848452855309887878482409958533825492793076759465309137007222760888255032882483395398080450327272972581399047808385105173569915271370069664953922010485007429123480286222793225374211936533927470323057857200056901316808814375970895304772158615280583382592094864162106502481846441641394272054844123075506979681411787549603013565172576930652929220649561237616328817578064674770596227158641165811753683876659842965299578192091006903629285033274075712359127803986951844176583904012024091643115277608852520381731538034732755960198303893430224818130641435275404622292067608710317029113719440234319820513027146446017823785063880880567067987005945223196779888150292834836383493911922939539123248914887586946321693058924583417780989675384895708695811456588828769682302817400445498643273849516981600964752237193014557061518472420470757836193005022880562451778645599680758387714661843904293895651780091954694185890385472901110041952357901216216407072120710215883717079766905962847157983506994699946169839162212342272013784894795993462195774441305330944961644787202284471453295574994804862889679780308288373848932217565904580772727967840839753591261909556376801232715035681191398794056793682166729227144907537508071534801413661329709428044368820953321927911151214611651823850577806635718086788611576943383094922078973131568215510551327798110738439382371637541231605347785913013518057308848846963716369082917511922512219257078728980725405388138564208041670751199024341631666498712485514803930676530561825479089490258304198489429987792065414392342758785902428649260701555447391524353106720250351968471096769563619318651259858402124578451520934305500568846929926001392582840533496500350345537665813214411264425637508693565946267141720670348959711074089399661631477444544953654131389571023016279006707810706183638660240290828135570035657287549459596891601299144979586303482929014506713416646119368097758782423085086169328811316767591256139289752574750310388627950254413010918692205819926058306591181407654935949466646434390481898554425172749441998841167243310169568575643885610969579357600199839443668905710282343288673514416720024508801719395622032802649270731538184433923614755890199080439076050331782911399655901949626579853398813515815341046865271916083347685286766463322832626799618202673921631610050849870861403321224311731770310541110335435433688628072116511266984962848235607865206256491665845270913421224239205080664458980690674292887936398153058206774944559684827804886506629769553597602712324693454415437079483325767306059378450448739789760239015287522975485032627553981762498255922343761818465514669700525490421744887280459121824741669642177254752109528025805474265664601450113583646781688117597800536839295556243675832175555660018102855030549720411029323316993536715799657382786044028385324466705123628196137828195886280894167807378468052753980827448166080692119940306300794342535906957583617115345207229938916981617882206877980617744378078243544288855474902723283510561813056713990053431551659866138906008969828156948401230143596548355045544565534400115395444638248266611535032875016948995185104391027880457002679313746270193514210483629876717535087234316203693999279641179727026470879544561966001954269940160393369709250384987725616790525453200276315678266892188237173126035640510007950644727947720622727587316439501666501501011116464485924636528450023508475462743472176743747656189026162452636178710603256840726349540522507721702099578034253281325024938710896397491223756767191826843882668733757074968852584566789601260972774636381141239179310992698987361042326748073495388766271380941373557754649056744675548814133009377368044107575015207974212790247884724340030522716532344624313479682611341927022239492821457575813625290318751419428979884142669133785617178928989734305805520915241544665163301687165051113179903725033749249394542982141937326380522953465486664968627399127505929051645912331606427282063351860067891871734467592846153114512440272573631049404472619450284876152526559673575240053325805310420843431571558693519932194843156931721392347518632268870883057589757410004361115467071986799142034740930064571205585085916684354003088052906317873252916826304607222791049026046062145107103418096724407425077838956135355246509161464992413498689464640683036358943532325267732067941655793787495921136797515644517734282063676714042315191230398933104909318001164002520217471835167773915495612250272072272993455495636089732526136419612155327787355331768340944560705530542207790056318359274012621817271289805101063696684575595743547914114573982280676886786744038155321975858258618389788238869859213265499806930397521729928008379140735518381714778746284254191525444771581139396905478256245009626867622787451891469519672244307034065976267719590489644781059343501694257322130084244651013105972479962672510435602668940593021791298343335808801368254369459799047496086270139960070749614922492047825065827381258475805673329509485161946257353014412005334145565388798076313842324034600473055207903668718079701728628181028085862102493950937207777825972197078218288391414180859451231323813017204398988004335504366124201866401998197240053586167396130484160731609066973751869936367823425105615251076100042440080366960186987540661815709289922756748466968171959284244005738342665737840793688574001764746262677345081840515305409439178452639914935614873366314392365071301529095516556917610238412397896137146912135248329623822292494171750731599940433240130641617820451627986393877126291771880657880227305397357995441650376436157656248921423977018444492345544109500463772303330983201116575898239188718163506722189114561229123151879627644632039783456017122746510608119240110587052707071041226200347880827292466032304298316067946122148315822830927531596472369669078017469315884078465320138704821591650668449230711991875480038238386536210203646408148128508759490980988358997904727672199182121026482841512696867079705454839510504495143743665723580656871465677775119716563036948369745094900774869081314437351025025159868621734212823283683165907805271929798033602463002030698246037387177074377201023642630405852657986924552737240365305568578436178927093405561086691564884029226831822496302984598513671271405461057689337174928836054057781891066438013104835580373691322549973117681328950279345194844509848293325617122126373434832739934432644252486453989749851520572635676813788395106715932940610426451561976146656334896713072602310512847150494113517508525058602516124533784938254705561229699125762157022865821840215422741678597126808035698612368073284486238830065399060464147397698067929183501662488273985380067592457503187387350017014973149533590296980058612546182384770233125264679094518147710695855237261078629538972307269985885624914771865037036710185874274840165812315470262963401950334039524275321661276470304582567769462434925670897181490857456432455186291989104581892707686049052366540753628987050937110268753688874010480673525982895448407512830475508949670920823870853868975837980591262868745210591370968811596693997442190400153570238966643395936409288257949318399794701214922073620272187959036103252706317335447317574366227051527047974678549726956218547585379349689546938642577646426488903476807700252407023751445886167846613379737556891874108817289037564361839987331617856188664485683072449084653058935362639173517443580148179154278597109403431315725595672259183879085771542217906551341130568570872478012814120498249230359568764378435177345716905715584915315761126107677419763946784749931692390146719238071759187147570131820726857812050177850674891272047263099547951734028942463230864518243804727592150831809068319403161077387676401689556021930661555086932493357778903943325196987301905269267966166053199290376657946724105435330087292791905779409668250738718780480141318394539313533960586841761717653393356658924845670549199065553905772610412966434675551404679861841360936744402916273748707027320337384999977109668057207293818954849565335822080417762963809569753262491344028519881720555153433104602243224923147284866702191814952303078424761438027944500676950224261696117700080495504815312090894795477835085814883376581945246004635434702801908510599644128422754080633105919294005901488538254542127353291418386899021756169423936720833834047544235492285390254491661400232075424078154105238538078383511801759932591463942698093870074340411409810785057849696357909425537369105002287517613900645182468456149692266222997302465193601856966161453363901138555364364939976803449639445725146920824231496236288826115216762071952771274091900190320859310452995587284909720711010665581379448449959572229649622856489252748669050139366540134082705863033993668789065829884302057132035712604445641070682407226692869181382814135897628970486783936596170182536293695080623009098970889892323542989983099065098342156359520965780683568452235177710282864891665923259615784789179782200629289656082386214203614399519689161326610045931607434037820622568843959293757469197416358364019502577914635392483285032581329361190109346441854490162474758574065035618813445937846324678697445634437402790154738433697202939647551348045212645943684835777888401183868677304141049090396796579797938308615201180464415306731870223234084702858650089023606478176962343903634592722815582399003452794382099600419519867501035519104717603553318118377136754636595415666240215590916483695578712500206472463888745956540864677867973131783723274601034943121047154357712556606326108542594457415855069498299193086115622081446952639560873858754835478970392165959128075152196560702669719327317445304214335467941528191596951950767639567176986214970076264526173942770696149539425419341066928519485106387852452382919481233192917449665043816373221611926575811820667881482328351060940189505595799350524769887288944358214163045054219521611082183842174628930360886749124207348671690807113495913181978117427285417971893285161421361791991224850172521910351498326050750094192867506872447102177967096013128261859993152944701126690394045249682218043114266053818335658257733202056608470691522259036013414091509560163340179050166509067189196234100690156220820957206485365305288775678988565943525556270392569101370460513893817214605566575536738140167243427660742015140284943277745359743391419325976173989894975635575253982674693349255641082310608788308707734101241715574594644154453003224887877888003672444080906494300890754179226963579373292599515543503242711892709971465266560810755430917325280522241349855591914417164289794976083301821065230311421244032005981240387522915464640389413821495822620940102000321522330658296410043544155533825324060177592832269590459098637898758374561426143224325446441694843819170968005494463565923075308234047092264331787915757909029361628178648180022455034006748216026163587461997090653893978294965546583763452201006741653118874957036635101123797409613855417228238029473381021990890227489056808569301380276023641333440458693229781971162381014776408911363066656758672783306066939815496217138407377804810976935987129004728383350832846257254278844242034366449836812772368529961253879052442418448521765021166407999556052080061391375132578925018751219395410024181266218242940441762076424454710877161642184606447060279935429926831985054736469493817256773966971664496077192463272053120362162659966385158143704123759111932542364144381709537388337857204818303939437963765795550478533951341505442968869604139069066390835374505103051906552325348947809855720975963617168838893189331596726043679916234810056130894330642778622034357802997357573363756737012262895581759829633865832034141043014739117992439407292395144021736571450397984895380088912258639199961878998566624078222574575052270494840992637394447926140786214449632573787414545679053194540413438002340861201135958189764226965701568215877059052583303237483496580716385534928806563574168899792767627834940837797203889420006208468589518920675237198729618784547626830505447013248549922653311127219059637771650280635543748550194644499810254528397009258766718783147410482359934615512814973501256866615722529300842714770694300681763895022821351777456046718821260618836358183882102629351491506803223644259012522148272908620284239751964315757973625804253378734357162896596423622423375068609472661808934259341292567352802936012920077037576597816000865163759525045831052346566660290193769435822008071397806846996948222619418438086883329939532133451666959755854946511905374310614539791543802371699119647200762042753083222755651321719378646205731042759826937241974114787467671214214032697357415080525692226932319195823157109577025076990537791404744671115349231513295068262429130653362458273659874301796535018428713818515801447518205481666005689368040936077796651821657746260858150755189355840781011343031757311676140694344656161121513440106426167755043261345830437467689706329226426024808754116520476337913923526563994261649539994778569771638088941872987220116361126682718850280436775464721287118365604852891102635855136985705870427018155245040615318879525900331376912836256904181514956536962314112553449794994596480373306699850792712391943363460492999383086976853678627798956568645613040473063874937710275396417488478426904795894256314732455831897369208602234905225832103255772268542547781606067428734488469667741564856923350822251090766211075502826254208954901304735803454408908379767582140090016907801548753685994943321506112321192098284315999812944645107396348432594958091548138411726725953680621420743613172359647776234847109749080155087572404579160617127845039149914693543270523931010443485972972466998917627898745058594720534812292384867609148605002771527833178723225866944236579539783083038951578063592272555873808486228054476237540701591759912233763177126782904547138589335436714497194313119076287976162510011183136557532718497653347954412493880540709326075178382675685143914601019514782406914061577037018334068782630222532851617356613029102982483016153692557669780675134470747900503449074230189130637306628487471256795896848944693030656422841383239290971796328444821942660019030555631307622702059987759709333902433277531169990773447479309904737364996108813071705085848396621080547445714478330510869546255159319462977901354848645266334030234572350705908907690344909372152599561174365625643123446124086678507034199174070070062598795118446904024195976151458149010502051326010200353880389945925540134230017211536020952450080099896233542999673057763174751748084154765591413337738128733235288468726974738588802496488135809638421886639248965332007237633769472614490500496720784831407997903659792725195931170900550471588091490071758154726546380672684675943335268131967963437232978824487557833374667214487781303983529899953124049070560982904326561211944932998023277695784165876582591933593953243544789946103430067815744447261093202640006696893477857402960685638533038260565991116889953830613003401598126041656951638077971952154915208607752471018773954952072107877766217066011719134828049243758300536350567760537002412517885970329535424054883292938519606122484040913834473657080820204576728275110782022095803127481544978344582074637119979166496792407321086812640314434993306864587516737920832789009530752507053200393705940949312208082741104617285765275619746427125298416719237947749351588305354780768497602530496398383927112265976794813282674367380921098223613589518392405980206455118168585799271504237850694150983370439056892291053176937474571395720271234660992357871611354929562446461870178116369063741593681712092369844218218367289978823483985485701246784779291748320374982552208134714827037428017808580084004243392388624296061075321818995600892967883800175077416575075936140060809908915270848853155126300226833462092127913138142682660500993908704439114031034470564599879689471023659273210859427930306680311202535963175754964110061663152636308646591843820086202136091253924163785878463311791957776468750381725655365036028932131459788655774168621872206238010924183528310636163069762368947025361026144123638454867237561303821976583413770746332810166212316519284772301622110417178538739678744671821170565980231183241307096637063976503573821626326971058248378228806635080476637652310223398946152781923489822257946521970269922092945713467429395570218822394639009131770200156109982999660237515247138334012236615424465115117996746711152030458357990015859480663674947661084052903172769880751061951235103626019220961485869148625312413327670771575169001508161590160296031431020895946878780780467614256221282719575762325812757246134665722376526473270426618376452463747423197585245765759240427308198596418716580651146210564013452838461960583842259715248971160113800482618278374257160917157339199303709288559202162983457229605540554380126910117717998620160920132123552242554893433416590162097361310650202091394023265091629787149446679069571445347041143695509327880010053108401862503280557538658510295205004585886175622307202215180748543651778802554211559242255406803374657083218011319375203607754203935627683169410255945833009562122944780597279182551928959638077473545011535063412521630498188269201376840969332013563393766541726828271862399886504668903558364723974231494522470279493430165101101343332768429639962345399658953243096279259789721856286300292613105125399453081454172405950874098699561012128683519335271080475801295826277566674514136633658821896277391600234961203510009346130433318833712224038586931035283195925581692303539450081780846514671361633256835242661282706538150946842707154614406022561277524407719552158891031482785335462124031954867550408701911585926210645117080757997476583205435693929990521146533197678295400285579846424874204367914765833455276765500023136055372720536126647233194265994770539651009745827888046233991994168540782167416766871719392621844704987440284756177642076333190924691532525669113492536866483080394379710645586976731743241630435749448032376135861934879288232429493421013886250578265979820333874324604785485287878879503247221076388080276333617268813795555222745502347541424185131206821485793561748945981437268817087781960456177902997767017857151118653429637595190521805299746547110084975782201021394117084067278478996145596593560762874076262342525853737877162559766190960807516421081135892436898550337860534766354950155018598054524617436025196545439083611180040674208733700996379105099999255507323111555307297139036966332778998768962337334878515573289967087537579623714519049979345593350101702070894607276644896891439631026003709619101042115308655171899244004171784696189534446427183792321014768250975698337556676992451989870547696630773102196696641088895385969628975854287846628417091460047650370130546492140465418025454236557750943863084540355442409894068807090929466384354379645692659768490320005670523545354583426903567668230379808529573869917033858394930714156236283907384561488155832778618448000364405975459152899268859042680100827040630990085872690799912013490099919161966573581220265079360812889637472222722373636035675693788602767840672097539787545574462350817423629336629878955732805564417387833713968903818088212365357738622888101548237959710368092962223176380520723630369806298816741486581741591518003552807061219120132844967700099805058963715616364373019243719063326539535620541183868800615237636482199901540253386386844144546022721527197622797275404691570942467406681621278892083769089931238923562381963589287533947470786010649628528089629320578508983716416549415188667492981929132333303192597477393440158218340226862453431622944895564665273505185274390185992937353535541070402633959281542886777093702125593126154883928162000943137634429372555652870011081872112309211240184773891631173399175797940401223295017493183101578434589282418804653016389624674030229376271592446834933835846739496536667108829228234427083184119965498266652653679940266141815350050734452088197007326675894355602435137263903995810657401039830447654250072242954088590762222463926551587441567881720041915783270953741019944425134922899223722217142718842833123472147824816044956772469327728893665449346752810763270491891864690585923016243779788580839653222019390456835279418725122061417869401761763941545351605274594585011328993307985285881697728049249448654804103213768706512894565217259242016745998483848468555242160006251669568749325835670516413101146100726580169608487119240728811857853711608577686218052609960978116905987598710637607624500339467651315096245061531065957580913422048771801549559881663527088875813286848681864158338674729077393828271417943907026922833826587963680642398320234624774527037930865598492671578355706867462640632674253349261332018395371934711923699997524344748635046314460027897918153123707283614916885297553208678146250915439405853477350024572991091880718603143809125129374422709652311573275202551038604721666270882623820098231705815442396226997682377253747130339294903291263647267739577088227751435083623304539710069532043299602666303640784118263690661422978129462834214262798138769666091501708835652248572744547101243428867337767265558406658907366462538578782419490652682336958026688868643445871836306264027315081561805849708563476633751477021315589935441470008012262790126705513757024956641636735142630900646715880360204723437324092785852230904397751528647211694348688890828501431027476049666538391156704881627863709943574682826752916669133662721887101261148409975629837964901660082731416791561322558535739319443237109649127642201590679441399481877247486965053117029181208005862666336803751921039414831700580956693566313962001182021501312247097603045698422158244189015883511287067913714509654397015119582726414030149970309493389269858750317216445915247339376912862648945054294911731103426216170092170192009972448161520000558208299933277879757408259208904635628931955913423985266576844450070331063611153329316193042734534946778983355817035495225305174337989503921101417168467403537279563436881333847804523981905757375980504637324472164118095688760164252857255269803975105257342391732791176776277528117902581780706058844199183827792339965406180115013743539145617506073793126030376073299956520013426949825520015146159275535429036204340221951950220049533447328688913090106931697695984927657467219345636769118762609446342907491344748935295487550916888962978532641531747246428224644011613462455598706459598744142452294636063929035672148473215534327338586222035588235011533307500262029641470346552973206034695942147970348290553238534471679553390827355253192337400766671166828296940253122347733360228812470094843572463847863058286095789441399798193210335626341759058249995318927854970304265797501451920100214102908455943345847230365333974163305391537450080222586376415736871520761531046792729439744189239663470138470363586452648759740590857099075869457248335122249759680286300991252250737369868492623338682795435501954233872041419739645625794647257833871693391286077946706432888799877203722020488967209309041644470092733835611810534844705523072190675783812841502672834719700957906747770787346782009250516376834241867264011645500582468976505949825033989038698237540002737147223140995703968758378480365565133454309958702690652032958479362616837450881707777916427680188979055500305172836999625939535484130962096061523466092014314860620051710300381401360048630500292896047306148356910500584561150875823338868149469392252428560002555449414596494867349173252066087394000287947140523404845499858613465210638422685410043273812387041725273527019657193059109604868825686733581020219004220584751418523380560647474519188181369579089026354975240772355150852913744272612204820447947637033784344931906523904632843307340771294297801333305540302454949706808141885750493462043858470817928634897073621998923873766268864050627194704781234172597963402625567207639496860889167399351460478164249934763058110832301802768341502265944744775206919701897555159966823617486379210790676372724421604738001353378376216240629750515026821615096190933386984217442403811326937405436345763783113703097380964060322335484476268875506904559358088294352535157070382514304296015440514530247478008118423319513112807700266914417033608035214663458087931795054958047047789349255623610067412417247674094479764397076895384952800581621453130210070080903661278776378876536969888971505363177831928185547179507998269371593624882145275038881118057743450212551940781518646205156207692571630295323482602008487828198750358809970796786398517699844956782274674023996534042169817970681257545005911668454097370942761794801876674482340921260500572466464500019235558828349981635027005125869518791165304906434838759984112943944564457108337592642620376257322658294291245635054785194434277234376298033381822254890275677492672124396450566387959056121902510185854598295363570905652216759736318301408237684291400853602904038302163243135859362670677894720834662179266903570897082227467060544994724943446740415119455140903353102260939298406977694600856368891189576641664543251711609999877531163909990368126626413949977892210819108492030148188289983538782945584482623519829858201806221687673414443563537130232796775880018241850666284771312840385165802805339370969467760366780477730319401412044700237422970380936320184593142272453748900468122059835610701458460184911256705669298227149515542898633100244747537436676396329926141404254087525358987457677643690287039008062479182006798684186415644812724971339520855584840448342602954892195455986575900976201068641936860068088412596090435422832008662651374232768425463208993763559505043794480080630049428964236662308124361869290216500387852674684373876515211040761505078105879993728908161677898490165416784191085454535017538978365389812440220169628361835077215080378076418991589285123365287634197347486783946820716268218411469686341501999803164286219813857464493138949235559892158598770035790474943024346965785990689842287690242309994833856431991955982148212201173502319066082235241644969535109482078655264237907033866935574078057070678715866875373406656776614993224435482381943332370994859962684357385536337890741904218493191395965182391019570671785211897080844071747949000242989075743102434796059030544247411755628251990969860952553674606195324003428435780714108369485978143276439454987454708363281406420210199472331660766941863983371733352729808762925597877157124463879718808579053403113372036482214054516934315380780606630254616629838882684119688392137882243406247582466379704203032724763878357789193899125005989376922754469092245677503077573002570012461854438222471263320633790549423548929059255975330511044518814882960189391795809402550781084771637986968617282305707552174905011807917518052975066303397959853702244865156149583381771083589581489068139790443904114245638524270137909237631292595702928156353193557052907170695870744068528336061102120798837315235488576523541224466576078730151557191990113972511221979897883610197621300844364805594757090584338920987231867934233888526245593710974785942213879349906423103238128627563113099380372521710535948769483963530961869026542730871662805298788322636560639906985120007928601954182694896682559494074447671515692264891933082807099165384514776470296612637392243300101120168902651559366997912424986036491211500871927307139121253865326302381922500175152609179658678747488342008535905183510525217269511158528039308378007175991525414327007166139662973288172407258624315273826962293054865646586678092521264194939649847048413982898418684270687217186137290231443395359844288086741042858682238629271261460472469210168355086487642906713872881756543013934586157266922255836984105751938264495043018945611897824386083562222930609234312796421191439999183985319848071919156849653003388965503678215334150777879950697196964239627222317493047944008200715436127788361031361993884208812517070702075134727429433056126925360977343883340672951070399534237531138795691271933277211464879943676139087030150196748142866447658832580875203190685058398916273503324223332541861474979398441073808121917885517684989590214616414055833903262137681933624384609672307445803301579982162493007304961016020501530873919005561081574056264510663109131139483283373653758286767164386294530352089227481519649992655473938139575928369274242912317269173190156777801533136493606497035887846703011714257752159262153212424117206125091032563056296601097449069040086252068120265759685224683979911594918419436250271026145368681485845023120652126394758609040765222699965438631931824386081238706725380031594001321506694911853458742927193781751249724447341372396025775014688307188100424684266637238736054824086945016805798676870963973294895382271385334274803890218833385968138104948712651625167224967070053574203256672270725299155847340959822626500619014755109015235660453769203091709160421680851519498135339978541094138228907215846035920211994045324093615301259718890064999965278133944328251910407401596031245190688868753036138343843283621466978746581820675121000232325229301230304584127153841853106095446378134493283871340157118021111422427303568304682788912984393954883520658486461661878065203731875227816076365942535471735084471693103461376650677372218242740741280445472111664040376326361091689987216153192296237879533546674357042988297541291932859241152289338142002260382943882136982312798902892118615518103181803539585388943567567416198761206219245688094567384435267790139667715854887833172189990750013546318574120293999981818038863262627329638628996274223839199775803307616282815275567910493200817231406810368777015154803641488649247330641987555561772191925647866179511958909267179485424223232930778412441087168894691473945297199330640354229172120019626261145020997968897922913389477447657446555321403242172085861740823742167755960957592086839309308698842156820550735999426270817032691010049418864541832991536880804644829984145710321839993647992940707221392727249656377035147040118987215814616303030479625082940307834558561872453710025700703679801370117671174772555719850367438980025317807767560411256082428701601804195588179268601955257540366573705002204426904614715450592497304908831816297100840970623809933868642323468303977049229686682094783346630804576366536212577758331132984966440703536379618000172900803580736383582722756595121563905151405240076216485632218514844204693545209067488528286219464946292599471258375120895414881274285282153427215962501827058681468024913845453923749721936900480066915525715441865059820116164043025709832506174131513056999084249409671730942989401313836873355731754699882929151327836907244664030560477163971703006445529098937685945161879469898937961004342271732232591569090247126686046908369954534522531807904900400189466162753595731603330386647208183912914969821187461166088894354825134679077149172016013949237873721747287873435799486524258557251757205727549191043868907612360036410589038767399699824226276728967877807460587884811392962398941454726706795068274420822406240357210544773300198744062125326949932789619417433250294503723974687509440922102588400363894066083546265945598405207061534956490856180527286616071381511026958769031323708994903968918019845265745217456132945455530682579891171363724770287508364221670142612762177804224221773948820728992454360892936280214052308999624214711485109117157879898079873620368895452072302783687815051268242517965011868397447658425002469644474197200601718701153879552672424713724128851764399088788522431630501687376914924549783076117324177990213910432929253610520456186383083730898952647902552132443891890695609317723688461842319178886029398620193989340134892733436339310131468285282271236941121904490295387930920223508308190079603168088370697877198870537723184038575170022619958301739000621733870790786220331945062840836165475503529794387618140806115136821983987902621042425599183582809885795950817171709265268621657448075802407847960366888721193168530742866552703030989783748533939773171189218507678372241888173504124470421271892312672171230501339938436224959707521257224962970474504351742069072069320599759491956678969635329074344048773355215054115760604792522116392781078285157976816489022005857261973072213685961536290204643853848701675512535006398361201071529537652276730680652422683789554749302611000021228354413051305293028521453169952769401085892138382490335798138837358528877703011977168891060331752402068572238008207693116208000990047561669255102741821300875687987633853915048306762573142335470888686527426450969584764267858496782136340537295205853539231102505104888439307193227546438083775218817783562518307561419806142867896415639509590865985757513120232784190305776388462341609176178701927827264181892318830486282558635647073583295144843309261183042828776669487992973123222843476182933026627505791313831993140850716506288331267134632226137109715681169868998073229192911418330152582653708566703118904263267018193742361051810218475534220591410582327057999286181206991967973302100302097558223527859542376936823645945573562893223590546816452909019770660622738344692954042698120368290898603859344368647337834321346561418041382571782706160124632162337127803097762806736201425130049454013840285866907263513136315463169197169867564212569465754964491314443947703739117152933069787485310570274264782991192646599312739487503621605694916381094672642938885810190397116315468943227750669369919654008325876585775833315423477703889202713280041493822688492374953149922640262655353277743034023970409556215404517095722501774009544658523432738519792529154143355779954120621167707027066197883670079189630729007072020231765382036689688425439745180148562094242617250286075984442244278707683382923669915698338155525135944343562064949904545331417052095354615541499266136935600387914522310609796660720065481386692887044487769574710773330711221087306842493997763713616109338350941730592045859992984802929719936658296354431548622281653982407696974140293992624536101915629645807643198140770478777752415782979033739621653635419397898799170314550488368853798905176268892815489796903903906972933740075457517219158709217483296400888556529960304872819493031923142365169679201076415120281440542202406098518452940429011003610246566808284394813037276592680010304431064148574721259833404233941545325094256516668395237311441713963017638209151464828784734970603379949566063440573429041824580299802201607610384377962299761885159966836147679644240153009660588113351840146808012526295903618494689676903595529254173411635955062962905296846674454578684264263444694839559252378697198096571862953756221094068206900693852965949006936155582601300432101694252271052611577637908862886123058277554480416674201684383953455050109182568947682746399096105284869199752708500712390751953755094843649545580141674231295457990626084532042560923651524142575898777334760599936065894357872575746842198240589039612306143549904356455042442613552508192712940812466020551147277902407628840256342427044409757039327810682926533756710206446524541441096695708341397827361887443302378038867000390137498652562033838926761373341673114893362252751821096415758469185308804824014930501006291825461778722565892337543525519634729580156421806342651512777514515430474544843139400266306163768905148177688048884207495813449606571695100160261900796694407027586608949197818201109887380657851984392658622316033506479593141034962884522991027574481010886617337358641520350111715928048171744667514711252970765279548465370561817323647836012173987829905379914161018159030061243692255229168557141225484390523970109053614801026959324912991925696104309087250135164999309508018842122140106478263227362845849116224959625010927468303745684757136186166760622173752598364016223496671281781774035285337377352215710614012994933433260908195629510535890496099638751827894050566712826419949732699859861704220361809508504143640584738505848986318568649564772249683206362428148203766201544748040698972426041628502245170038717157212636837475779491484944384576568600218525950533300301214991939602347540686644442368401331238319939702926436148029936973124345134454463652540444550071893679091688408992941312402398470948779272932809165844477000502518332528226014880166887152253857563687474016086887860415281515851501514044879952207889789861133972098383501309114085246462545183505113737331551324889854600056659909094025006083812084946201056347513069490691732925811116607067046569966169902916431419446239322993154434052109715785796799159447426393083605982219531831074506287838708235583377219391315078421980315614534713312460199631435971675809273234899331090977473932021576765596246241377135346122580544031831157113843730953351479518913251975318413346671148636796625481615553371136291081711362867365110699669434931391758102423659971073207389923504598107013191498981054414884612601348553327909517219421365940145920346168495963989438708027015709578142941060614372771466115885639517325165310481831062441692395020917159834194990137380735422896384647146265052114371645015025653381076649994765192634549350924963648440645883699270387148472110940761829709029061423447262973449448421927473258392745845333515745622840599519768127066411889904200598677564324978719257245091545221111751333160521118808600287364067450184190094261938969037424135227385423647131630020363164771372237346873746349043574056213374378514022944713575778563893761822816123982899687159942977297781889226334415927541953582568209647153776347247732632897226420457937351376022548968452543096316457992285110072434993542528056028083524033422567688803717385948218739490416376026170903721857033394860466890372551999912336995031485878864989209401481802358163250809191709155763992479831127295958416820550523424142321544602940863683109514234067652725868721300691722992043381781397224622899538737084428912347261729353741117408295612790544942247808878864547764417929145318834303066041856495870099242212041883019115783898984949238052760399920415282160379206930180230059319931099946391603829559559001495737640485411852562263742757591483850583806935981467499867137319116253681927275730876952885914676468762989079876272093042025812785361907244412657286360410194322825155877457446175970493422193534085017441490977894968872853685367895708111876143978544743467031231536311899131099660555964982062190711720364361883179670943954235168449191383706157489273008282248849359883495796023551500528730338118848825697495263539979504432233395991900340206894035653812785871086877850495624666754557808557130611387070866092991016661767545230630337677508211557663497744171110942428436531684324541819316598528970681931680043866051198622328410607903753159237948618161230054671488591558571545339690536313244001457136458487621956158971888251096190090671491057876738010802645057447036420199784960313493843633608003681989662655684749248913822814261026728804847856992692255007436471540843831053877827847631854938608462875267437280824483699574631261460250834728297286480876261308040316582150343381207153152693434999086965093104369737507352182069943180072145215779437380437516434198430922287882345644130243069286303494308234084268949354719510330860253000152958730971292864828001810417311843703294177546103148333029776131000254217472194543951213500241000501764626496607634287488794520823694076824885444861284032794476180847350128516448305570432564900331600682612018943051361291543523405209096126313768606527445586612874768714651548446059707613925944508852059902341483193191723195179845856235245927582971559619985397384005358325020606458130598001429714674943322054495972484473669609956419996570821772045779260524816026576600278680755205404733584167670202423360574724928508191840544662370730466918831132238193741665794601405566078178890971917695258155414237546018391925083331869338148861580249266276936421971903970968233343418409619973137530161699225662563234391264251219631626241194913582176578621005634498213230457606320494553228955377388247894139848596744429961448705345599015248382241408638906320994099963855343580805178137653642694662719786114528555402579564731679252160935765292630531820134573676190753075973581924587822022328098531911087645477859570307047142088886594877064850756608163889160564053322600416169011713940230849377375093633933469064141632658157030521500456883613909743330577980782591980498090446315545245093399430875654036175398525370898030480432603008303705795302945481368052170610662347110613743407867580413495485807432445069424029553983643652918582750113177215846835117745632966922574414009371481181315645596351470553889856961914492852054148326395885975416269248020733734163308687767538304354213581613380152694701243293878614530201426491003295349175899284546222589119713840846313518391625563436711830589119394718598382448366581971714911657693010630734456585770298803470968906185435480861992250486019763839452301827948123001658545340704294013879506775441672227290807508933886779865327731057154245425408549392266441282526464658439808233530004902618520954288523595597045672539785151068430747646634801882288940647323713718396118758267987995208433391424876476518124900967043360778298785071743806169552017597373859825893616936168026600618913154986685002521639878859618831992803026681011100286411709598162529522659586837624998416833275559239870254456761334080685442563668927344041916580791698996082279528283280830333908019405077542063478800327934891570399105856016795354684588736584908050561313294301058344976748508488821594529180475892919727385257553640623114223618514026145428180928950397518711696557663383257552840082276344771697831249742740715236563040489614478051232806067873079912039262890978728604537845797408046077043155090546423611499864357299877958602129610572969901736270318063673210699254955837403702586405025619512832211291517651864577723275612874253099004049131475770108408847606009850251533321507238013679002723452803770332050830544061375372333751069881427881108400119831223756118519424215370389210266695899325195728080050010702967909199246649495469396866754855937935026153991526322765116364977846468753769776784041098414342812109720242917373581487436002922434299413955350148169993130280950920577209300691170729849723354347689666115558770124299674528830602510396224775613615213723398932659395918054923975011409224005247349435308596380812857246140877224651380457948870945904607119004431314063278234305875957683295704070647977235633216232438673807747622073446032651500211870355891741689848013689109756028901081082458257450073344438570747349507654957546229878939834732655911162628762191484127905405830619142642976151286290130278837343041141114107352856842982100701038628979516618920289074560384454732441373376980659329685714417156132292121755010420511311346934213125004147170337369974246950548818581444815439312007945756669202531422866069475512606576567670683027409152591326629830430647785836672459137499314944906321950431470693253207294714042113269082475480560783063339887165711427170452617545921968411545664988765772851205368364606025618928983891289586232268691375562676468479400286718974072848045222243875028138033408695759597254708080433763393628834717377629785936522482935052455534195085851197888570250862799971875545245810619461501661469223942469745995307052091896370963708708867008620068670921367122932808583390395219057176856245114292310814926951577211045176735653599325863453100600137874857348166265148529311956275683922921264854997301795265999043234236190252211176266458951175561464148802952011196374403761015375182972450600916075462215203945196073340143069707848274337202415745172543204030114644314049785576911638045660809783085448664181891321150732340926029862035395989785096274855152509506242279828287185835306722316976200082558278181878724046993846950127540228123198425463806404862862237723885970298010673080302052451751627148393281515661337086132196998920455280274663846576751762594591301682809851681964707392200516580712366278675307545715432290443289301772961895599053354549216523182802199562459594657530363309146292573178527958903511742230636252649774602850804710607062248955934361169874743583680807889123298835520027265735383245340947723386724504464109338512262847115019312345927335813861819942455393445946852578198156536291545345209728003759416623379146440804662594644837382361852453451225458864213168476543155896676816672566084385924138230412053345055440315255563130763506555429534747945974142185830618492462948192290733449419971574782973558370763466669044092293613489736413127701710295055384810477744196215353918473758481128914050368582099855493069140297492803366902951682077663012509815123811981030059062379475131586512407631392851599819588059012232832902551508545026310022254722978026678619874829668015275430745623998142774898815621675475998963887413652478355750952891400887827493921924518513809762948391672896897309939218593785662227559703824488500544020565440295387849845199709683814217024527482906731963499371616818421320732569923821118879636008687173916771019743423858671725220599089260537692614271734748802940598696516193929771148102279693308625967560161304549766694192605843535741399918120311864995947158518210911273414284420547353014880442324791981447300221664815571164612400556841811848693276357867634536592775547184618532417271382727378217334428158937881994685102973996132136718071886149042418976751257246791368025179482373764716458911815507989857864125656115349284362358410292001343393809438726874292545769472172677089357627617265664811186676533849006463486588710379450553720769554016152319970951405636089752341333165412587818157659062741231312745724964802708869282310748857781982976970004161742176576186598025444097930621457539800780644730369724163420672558318161383011683255937792289812103950810410968948242833899119793589939194538790359367386032599852305411025012623597640431251922928457694575633329497482017539060162193271513286709535419236438484629141138494320839577836366730488652511734281530762332427276862044474641960780000926573105582074623370926379757203793047985381692134676710184380149682510910818665397720329168378249730203594026331743101286759964807593752653801793424277373095886692779280827514863245974588697172909929009598104798319404677986388034297000178880772579150627583479429328605671657678474240933670299624645629159681287071595103471100266096272267763805647580709348964672735858476617628655085738068161531951412903827485551491135486564792049329694133004529343688290869453695464745758766423682393046944772084235309979983415837423265977571153094980604150002786687030775980561773696663940592089718534162849734449214670135245764334159277387329367011883327040719429239322185615519546482671064775582811673911006519324327282221501288253587806705843848276991860090241373771487342252714961497183741221424439649894718673796018350945899415703191752825746129362485266118884035823876820597924456473217727605305245635921454665319942016027153158050446697145518121447595359695403299896827557974840052877680022692659908725786330134249661388575132442139392429211144406228360715666317440440318966285814842835472756657075584795229205708617858302085877327423786648542670338644591111057062409120140797769271237629890269482070693215398502800543570718237889137145198427372683222925358689240850690637417484487401018643581240830050751878976557955797181171708332807657650670837663389551239457720565126258170753104451353296063629627459097459858403370025569040616724054386384517222268292318391690287596999018544478765776027615063958820609611380695346225150540736657125769899352592059589744015264460080481756082362285799190811709178578578757962274177158632810607979287329261761346579732469935401315568047982880380446274180122952690016838872479592073450891105739398293586463591069909587848145613565575537159421842191623181274984539034862953551511565748753476251849550681088551858086714585670258779065067665191535582070010554128559689720237240852963011845366687731974230649289120489690791613663078371704873618877114547009143710035788581525636149988731584383960828581978658805801895986658034718445047625262330235616204079637952862552607048448882207378088198124376925532603476346807163763938506144027022039337259632417352476990497075861390313355825303846780147935168546605546080608986206225108624952368505393659921864007663091332680128905754129698392668682999920685930836929820845851037034803533425651007516428107153918064828865558663735878786299502749954747669590644269326795992594229959059537592731379849988588298679816354615481053827945117008809387735965744896147631667712085719978563998788527258665124704933357115660651178030860844687378390210346446915487277124465609232118934224973377170109162120300510706283325137549426512295667856894348454951520690758742795273274944079493428286446700440136511759907065040162448732772036352715143513014048104752439674189184271584283548977979225234177168641624903647595836154509204462388946207967856919657885580791119894429510568493915287373131034945452574845942274162574074493117505336120893415658854860497493323608915232633456257906891114147413623242246384041176071888576898493681116267849176953769492240596206797681566142956563163747472169538995703333852969571110707209741914410412776919068130182048477222898244515722587721202648697351159784893333103914341392048526918549231735831475068900510148127547208085080917459576640906780437678396914205097933116774667118075013266888069544679027607679218359836644642337210442569944231275626707802607781440096675517159347270280717784018332314860357586227936821816614714417756755174919278310103574092999767083210630221105544344667031997122793327539037585402386973393086673071602704194757544898715661672539307654116884932389561581427274999596819234011562437034015146731427023280493207260677506622856949176594705968257675159035323866532628886169838410446632410886296399214176652752320535496173326380317553279785463945421459181990628768122293633510355664533858943741122482542282495740889580173320668707273361220457410664228097687613834544944107500100047902702838270905186181492681622355729079726224124896071627093484621149036782581201460704841960539790539561350991700645201050099410287124398358828284522263809498760638105215512332720241940746008776869992627310912225713965897445213898593654897233537419806989972568873308876940142608234838037190534964315530611981925871250666810636594118869828314575873103892502355983903303047891906370180935691549166388666290646757142155755035317817264475218004120681309182561552115157821505316300435530389072987352597584371034006098369512784204033177601341202196425178830535904811151651103234529601807623052064858077269674199412760157802715172127029568306415764966847433022448263669874185041921467101919133608488117444327230043911149862803277908482931177158233729731929648463632324536202831819789393822717393292170485040344982055215139954578824805219634625363018178467914705246168683131519509595723170483236098704242753225496849167733793422171001489483703601139944186228730323418157438601606093658064964721254650073748706718314505535252138444230364953031115556480755269636758920555127923349843272783344792715187496903429259440293201617114175001778511834203680467918658234689901686018587478654004656827166621586861507603785524460191164411389954998065259641097783258092534454468584958651415747238475449829862060162069512981849458031349365182523439176471687118339862030090755916487492741004365536235250335173574648820166287208902117825022862313194207659084303199215927383684930981722543266510116765694425046296540031654697033607549413604985315337183898656684893287819213284717918589465681243580116537452910292328217146507186982939376790160508854229404752251765608716504764968716606856948047585098505796432273734912513828741841946906806725462493413615851985337606171228019322547368069316093535272952160259164708248247454809173316239438731645750142273155474642114673851622124651739109847836985382905721047849984599819892093047724541939278600170961050248716771930230257233000411319888974536657753268499633713765374698318509364815291041345218496253625110759107688989848358426051893387493818441896813728246409412532430458397505924960487168286535482117063081664625321132953271749927193702205748984220849309318197007553781498263297000484688949506158892877777420699877076419066402433069506954518544448050738864879297391661719100651641257247495942876157955892048427555080006991874481557130889981741420879189027054551738991474122560667287483189787526895066920109174577296184080489912556823322223885194249397657740134785270004975235464809276604593421731153058249215131307859830204136282271149685258769377830894004914843864646106349272121330311637128065748073062845218527132041496263996743135994463854885497266441356700148421525206497454442153779430497855567787470110175185024788618033955420886909468995695419043968363374717071774289132980392913980211400352028281070253833021709934403868431644809078466846583102190250244236890870970208509323319187859962345716352110191132439716326574814040549793108551823758072217215075694067472773273064681844284714292549265753857182255181272436755202817853020388938751770763453303037066363997139032525653826966644326532957985617676333773556279580776148118155464350763235614603444889725317999831433674957405002974979701782735587048228320586857744557073635725351187506474108973516668022261163198434286721992293567935564997125408008316994654271926182920055712523317097339438614814383094536894863143683307062673655438774667426070742241987661061474240549135779578034518143081952670792861919257794962168417812585870823930518762354534658364893924858829745015200558652873884924576864608671203276435450395228753645066316050510468985777234695910590321745385195964537022884695064512136241170713538234437445017366159564310697630588807696496129029523299013079957305985126149717762880054480463498753341215334262014677068070787540567066239454186729043090104356397816231875042679000742985648986076249773915693595186429250009169732129147171082992847569212628838384029561373214841323581314891499117611471229797437691119146657112675332674095994298366916708920669861363168215270678203077324890643334945847471805236059951331110249413043147487976211642558767486734249614362103887468966116848333816358770659552031945340911537442799932823485828574239425954974898398432543599911999180744582192241913477802370130765832230610950092789183926685837228259229929418252788992066074364967626738235507162074246041818177808104767100262093107803355574193218134889261451302689143998427227588736701100332573813577135566820960031854845573638039847740593860497252318270564452124219119533467846306655078437501241947839796984131443225273017146463556855663091848780084612321409490603799259080209757713096427021992295890776719499148192160551598780488564507837562539306974573922849186755311276738989619748229905193673359531815682487580419225931180892055766068048750568898607576742378514189092073505996663588698599544124551206521076351879601406718113337577150182052633670222014323920249095030216500795838146614446873039844306110061253295052821818704601837097739962011702726574225553792306083566721186435724124593127624891263858316806839385121758312139771344825894441465860293094538960543767871579677983598527031739592972571544113569338472642130678240413138500498065097629196416348687237868313099088522392448503098578240875506881829054698454126316402787331982071076216418987182944570339493078392834423277308524232434586376608125702986260714403400839974056558574044891561704640364465811394696432847973475362245589338634510844517104606090144665775923651084618963584268150518191484264882049752647632470486643367438441999546263836920682437370755359618914771560238557498674132644186921076158485590124021100526367073038133417569238274579981514200082986150258097086534634702300689305889815296789579243058822226098986026854264102558452168878624621989540508538995247031736501028735080493019415362741446040990077635857510519758168666685817755261780357421162580447270248767867916327544196826256072926575374464976784809827135505043543176922770549120622206455022727912856000358314775517584629903215751594666575975352315438610399275688906159666632877383516323172104478749218550489850822118777309160135801564056271479340359929444161509329335849461278364211395993182073209856312356586338042329890104653892859080937472833420929768277464374837868167144354086552776929324482543926222589409413107584885946892237778549015458857297487928817643098029039685946188593816346706740452456736799353787325766064112000641223509622219534664520632359989714520972126171588067423045561016242798123227591570330684931590873805118490327088736205992654418579480827938149427790182212400786620200839226600130326745245938121929242498936840912646240877038621088600993233283551872156831291215378185557015159692701267348996180974286312852418396537697215570944414908418481618953672640029045887732524249432956873649797694730251057323387503533770941043153604262090054092374443133421001512404032558724583283325098113304709162493704655220586623029398848887672409275029802762092256366518320670128152261427204656003216642762522432463611521465387767025712629821745017518011598003902720071490665420322165602013725714701460804579650104983756026413300481696858359492928283613492810932492426617384841076448127797668472186808837301916600096799355448648923100387882769035786031497387416988811771397461839337634994629651079584097227680964505064019575557881290278295203814681856180731457335852839329633138958366143750049196436482425492225808523824722228559956102484221821151648920781309405426287448486237893987346820839179986952034325672476300060254972627991547155367150018201185039833369230925501737345929027394614765390473693933351691269604998691462330556580047645588369581160935878707462541844932435684542689792619545717254257697044396905868403677541084702523456456170478131381813968485219922490317208759839320470032603935837131052443092980768731599360313004252954568487620303827617623527866529366043937552276120255922585004186426228048338019129823067482718603409280650184637098487531278643873900308983215839296576179213962801129849757345736530236755796472933375155912762171434625934965323742740961942529529321772590648739211185907679765723536824720209950303017474590896431646851549666745944535681897806263081660441575288037256410129225590222625259717549053823808897236382793695598694820600438181597531287273587395373039939427258768321328585119147333706594433037932937348309947485241566459667581385056926656547353409724423186517224632371824558014786326689380487968974299149899169031750053758855625625203923501576098606146792521298148996307063177805190393399185208050674970178812059260547300719185990078037082901133568982505216823523323230672857084655724107708088211524026326766262917620440068815025958375100530007807694336703189732328912135846947383084902243020962668067554873313488680442313105970823418002240164687897661459664358996779685150112198930081034073193955116144380529292415626081331069191444429079578172009806399055202044616889402497307334048662603745911260719004485017438047793766733631935756893512514966683766872673399370159225922930134722975455129084202155149596692435359959787629738483228841814111787407726951786552580579915545534789681387162695626912197265972199124253904378265287356586630160893991403630610325352301463541286901451994098070600580070303783132167484414680137056749921206910149462604414645003642106493094146269634086597967641186896173719737793289521131119600252835422893505414425594467866918722551620596610310812896135200743204793428937404483360588606153982746030987381992841842888527648550413977889043405066198506710042614073204118573802476821468254516254943721743343989689184717223520522454647529397714752640353479709736566456751093871741557028929693293942901676536414639876867029985879413067065162260429650326293087192347247662890459739659221722408368694488461841631284529632224713380572254788092701975282824025139354913616997831244759961451684783893940205747510107038050507703147113320219781930290301127472711610232179879368948422772044624287604371543798214948959637022330355224350104193270517298972696981928164894808394883545688776144483774463076616419200973018587549633483827233172400095016458780682644732048961410212615553855421325774806092061461746457582842982442186963065545209702280732978442065154979638931919421517285804414795746973341916577889717306465030128846081977531288534374147518369504304496374453221990502933500581883811898483377770953473629856060962194383370565117364546083264701100511293794477655078606946582680771310851288220252619763290593269037222789363502138317832936239176620303730818763902708643637125128239288127203969151620365142454710141260012512718402751921027913920424580066407253631734036290877387512623015238384697760368830717408026269934644821000668822248815600270201885147056935433647441698456214874665258119676015444141245128912158540915223279988571334968699871943973574453289949907019919576331088514537988878335887200647876220372793272554953346746395850356963012920379803983213865188385985666379720527080360617815860737079622256657172253212021459622239879273531884430012971284898447829442245535513814889113085599701115708515538766803949699318785881739152489161404677864034418268041527310490432172377004957741453744287684678732341997002703130104527964489229022943869121276765111017266468077111992595826195048395642057290549283845768872453404723111247874357555551854910225404507355930809617135775682268822036240371726365764183888383315656274080232722119907795521342390786337956049841661953266080124486981158866203048995274435429693336555415378481046553141875389484942690346809288083948682613498818953485032617365428901896093105913134864647604897564788503328359060808163382948262099075118104069311978010963778491703955097356110347930346102855708247080625287290593034651016430291769192350421016913668471740865998583592505232176345001829254071701426050128295934939194912531795970722762618929543124445728156799442803544778808993090748951385813249987534287801814042875294479438697251525688186964620312499310192261589032376835604794894562492751522686353826897365731117720156745859119655132055261810144986664657069552324618873851136235499011006864779141847658900547158718902122445534205137366300866921652399259500351150714505230019247187779488471400564267483282565555963028519599485711943088426572714933232347274041803071520336059150044316985231166411986648016986714301346010989953156248057628280418408373071018433093808492666285606438751603564452748652681410170342462410557745177494898489720803624385978181553110961382135828864607548785094364303969270098394584428489461092981714363204668049163716007652924149683131060346847644342134456559875490687043579053187739933824213962254999358015490610863422857588045447907603506539996206738500802801419036637770526669350546206348144700858683434335810679353632135267822028847339752285330786566177084900722740473941868479531289612871332999153452040231926042149645657036680518310657892884734327037673050532715159301827889583192842233138993696158809308580850517277933943350763932831902935108780255191162202087124418890609764303741221222755523576480204171027783204219348725549671054582411715226993398942608424350543077534824944985695982515326049096190209841377739322996210058792734163212485341651331127033664371118583281689863856003675416885191420917948638219737177740700467897203972573078971889205476761767175728163039919578529610788510621678590129122410922150437657464717134610281687341229248125305639194689879344001681173418285100428687024369640803349585896995769660273474611731767420724678657477934326715049676200487977506870755599081613767805630372256051164779991560284687164589046640005010068236891553578687600709716732761645540525431385555692414707240195773153172279643563568075254040955697799433487852861358756015417206466790148121055692945405470761507016451740300900301699310470458942887350375624794963690854200990664382796100440100305307821286262185704781828711483435966772707529862755396449101637720862943999442009469414827797737689376902524312729985708890500082581054461460114323355645438198716005901207223996440301243373710555561322768587494159592776240295628638046980210188679101287189087781897911485341850701810575253742179613234219629235459163309832744086176940337768638629355289049149675166979355296082439172842630858150299931454761943724384664060714286033735811010030618768324177724938199815956374313559822061958442175020138933222378889281646621510191488429148469829879660751648682466152190941970540053629022915986675652342664776015825568232224835400965943675415726226323475201687703720237521373114126376495259056896907657593006543445715823853600044368525870004000747374534962684682034578671543165626301951278362186091387855999036038266728627681686117249078604582994331422228883883868938495263128942645164276158829263908995405611714809035463679562625194045595639879421631025125752196867006071719958193849125645586897053344502005065766220722322095282268080422410759077079053825190404107021735054125503667942032727325171666688358304259554981146909215759388197650161361774666708808046175354347760086063372969928043202259675635069406403393471621090506102800868769768931918971993707118104726216952550387526908712393172667193418854966376417885310451851277199212236644243962531146345610460831693139931395208270458110776778422548802013388656551871036889282855635359689998198470559032399426069486219327747415018782643368319482355645246196569854358258781102867472156059152159406763801065862873854883238631897224070292103547736953604634370473464191199037745749644233519405456284250260292379750613912095409882326077090935150401382530557756314791440176895553273486128464789503348329743898834232171258970983972698796452708089885998224419546486016510185310781686593800432863475522248232968655852890912642813218457548023250159800073227178201516576261019611410324332674997563365393334612713974894794042874743677701098774018468961033137475240578857349590225974324043087516326217146702075426890912640081706200401008311547047062243596603651677747058395517677411199721071989430332206692557945940304814064232230886203431268860314927536775664571574187812184512987917969051003975956799511360215795861693591458107396114339156088821323249041171186782799128512889822455257703755422926911324108631576440268036778893517453318628846031226785895626280483217412175297110040184190930645514988794609078922733190767057237265089027944126352421621923898903653117602398134304923086889402823592776996357910648672440733160777081301156972754796376337590235096369116203538131986130661343956349914469166090305729898537740757566871883870887365131471920913070301810125325361424420772460653087625154043519619494656216405742922395231296325807068013522591808924797972693897241729904011106424552877802150991730455922346355468430243317176147741723526509752371092548868026451462613672634188568121360958174227500010243628525900724512885444319981562538613674549865658397343264772247328525853219557865363747358829640758520879403713323753452374539810616748659687572346373711827801083851715973052276149859171536927207527379940168741408871550151066936695043195075684051884445700123399006924341694503773108933200956568889578925251866581850004940472594979191821434356571252142889836016280665421469958614107167391266925793106868885318696937856750025419508712688786318937919758005521804698836698855358166727735213286204055491768915113207700729436796509303048355328302995005506470927693413071205010178355415618392111627092706436816044784550856282134746464214860692852650606690483052771877814061660343835827089416842157900006740778630389685574201671337766072626627393616919558438778407009093126633577170643134339661900191625587709090432805997184184511210528370781143887923200261481477462992109208778880613933185935318771878734303528406745234015878556662846227178156420142280463059265505175285690636098924034873871832314202752471356717974039801568838153749346181735419171220621093410880881200038134925464264229876003953293166580158497722027998979873866483689994254864593371569318934385675500667671566404085446499721475085476145408306500409897381220578079084647934065529931514817878525187617039182980203782931933337964919459040934326064933601998440484847441586425871532873867722776940501090143932476577690769269049772802411798200340951030570373291820282374121038501693803943833006926967165103548941465344602674274795096487346445737024178771658533175203267680250748969951513011038499811731901423660359788956865630374677286876664860016971132787525089015222113107218025589390281548384312480954541015698914379042932953967869056620286003263299067202788093776494630583597513519258964773744548226071426453326052504679937850808357139271835384531770287315065464017390286334504783493969470249223466047559133761819473264797879602268262215313758664019742288040885110868705572266863024470856433223979255018057034370440639823791004557644744144473702100197793418454002647901231474911360904116261004019284205643692286009755693832589870185616004123322769000309279448831955312123175539448848603716234729647708211937978170309247806934103121289032191601487441441197346479215956244342531450561796415996538905412052926287086348538303479806622070353165242988376765073997862366594639796605986443666872471483732871979316578737058527984361200465100862554948589839712840662905678447894304055037811960245683156778495385057297844037944450121765809385962149195140937636622090917242043883644018661978927937068294329265201113902851340910484417481420392420081259470177623327718407059680844513097488270374969323074479252405105409045721620104574122116907234823785367091007145940365556173552784500160226312562737506055043699755973929057430514090919949608388367345794380695476523829174200945094076951504958194577416714532733600750456408569143836306166289600089702231784131496372115333443874636110539571145167752139366404717715926074004786050493146086388355319803413147084589117373941205509630278143510177660418969027381178879332321357393258405156705547356767959185253817160304604971428170970776144379230910636624963265746185900745663077117372368826238625278794974308536152381427257331864721970438588586253465342313869237650828646917645533706729195234277697008221818489480199497849064713913098008033552087977072597685282877570170813808390317442692859941670427529102332275477355088802404258580711845501392372365339493050776623906675876198178106439823303446391242865418266300899235610562613217826112591326978197469009121389926544462581813349548011217880611419422376101919561834325419901925368259251293302078484306971322513063777276193510284153134311074501474787456059935719279256581010569326543714107598399716614139127125296621549462612237485764657421067630819513153440750669831396932488935902143601467497344442722778054603197873488404205687873317458917528911801198389806460072065300790278280444363469254629055059913926953512417352974430670108059334024011925918026787092583571413086310107397483241490213629696699434196149415101544891976163613905559572324154809641691753488620756728082597414904219977781450605811705266404011448463002755571242699955739628783279404427434251749101415527230693933908468536541607313931474826031052390156409411251875064947517713717966510661090886143186524034552953601577709656574127017952639917345595714129986972373811575476026050859784262128893302362377636554332128252895413765346616245711011770668068150735846239959923105648487068676783750977737474194591114495556186739306099477733477162200450992891733529148756872854610589787376320647134517236147936959944785372607445137558213081916257144527917782494858362979973452394374260446357703545491021414042830095705066125735230862708531857272227969416850479097772991828803541244523200658119237205550957600767997278931857735676963254044224085467858942887218926588156338373992424206196810555623674496186735333648577597109919566426030752330614208113254431373678372222023985585337979965600651531361697373124399115558694853802918532015952115839144471012703115353601318889525106179241765149555791821003646688275829489294549326699336980875930515219356995262724550995013281363318022002787224408830378665021389452304629944113440328572658191973864295090111912430150051785486436972265509672787405357457808568845648459973939910188946737967973989985166272924683268787671663280497233553444796181843075469747575253343465566425034512607584994737393547493252738155731353603533701187234446773825708402081355999518160718519243296494277313155776712702310636379576642830051967961214076605600352157393998196985287438692064782287476979403759385084843346344490354677386459066651736745137209476235299442218557413537317759429821311278358075399574663613526366051942370337042749023361876227752574115875523287698142661018209791164822419093323557119127692204042807310780798084245376883495691243477336324387483844246200010272489736863608570188690934203955288693307452813870121228797790784168388147556726904842319005538764338025116221028793565509997676497187563786669307491195288117435155016354309973168308873574637888288141873235969213049299414415701445382977050401315556175009642867920967380109468087419605967177523021867295363838679123571728662158990692878210640309607689677384925038786226917507630586230858356548192960056939110360134349445883164016037376162172109310881751411580375411613167808029562186786075746096931486967250826659258209118896308507346907534509353395135676436270974308128636285037929770212717119145490317648013272971652880187496381083808802829470965683533421593421095977575112091718031231506660251845648285287637136783032626233923706475539503038421775265453209152719213145759505577153658941460525664188972160499642925026612486863975634469682708859034323267666752735228799940317140184909649394786981018036729351745900339319878732411971397868953129471687401837017998351414288493901115556860591150318298682929247274709065874816782832005749733277443357903694997663983778047658392560155813010244533672141046200299515338818155552658158558784639368122638254724273369504130397890063247218999422634392161442974485741952858136052075218821367594349411131157146263667921054249638765444255991929449036075186161213484928912462522500768813480550378932654114028924694921490298302497940621208228522487756850464399563703148133901656901414512978586818112543018809192162664360300465964001547684485776942898731218629190786617597795644938042732752030413955439831367286231706646237162210393861933434765928827734264566549821536947803952046893742751374362384911709535907356508793616679664189986596696240595652885315511233163035759440783516062441690931299986483239564921368930396621363592051330797292878807556483764081870480382193680956246764732755642742650508842835920696536856596015636704008412845975383949944152453034318874307704723006633229139770654138219487794698326065221877777287087818195517541498951366674730898159373941973783694274231549090536483587409725882404785670111202335434656652762563285610183866722952708104301181333388074965771480913525757768974498531823871846113750045380659039276587706138615803203022013555537079918300095561570714135567150388466227573929823555676980898139908798018517232023087130705611758512095273195473545598797661947241851090489997834645728220560141700893507953514996525142822414800570712238839820995163244304621774759599307232676870680114909371216088446779891055164614633812810221104920903064668206556779828130257873320605720505993582824007558922938662290828420032987742543738514349051288225010941842482656869080809628469959791443140440968470331283299242448658782231317304843408806851333857512173824975282553818492534488709156816378671439071624848110276145852392723653601386469267172511401750461872586761699857982927199273390807140073227416355134914415545616708234546340585452708704845579986577914938572011414008257786735126196567651268480835557589440705140118602709897223221938939805353149857333220156734670182726201023529688782356361373459576854262081646729483062157622953859479726389333153901635324381207612847014911720210700266932129224488791758946321078127020823611033819612038020436847538320623942349867498454991056913897517335165050447226690053007317996062261017987570305438597884370870779953391312668670136117515598591480524728725330401654220158580318981154245776620470640373760602995477694864912271752860013435481618800247470324151933660805016846631831991990550901979084046832933442099324747309103767140629148863096310110700778830940968630188332817477207964504268907082603935218353452053944095861992216495191958493226569030257354500950281030170963852576293007598732783729553286701415633318220233318139872609657691131019297498459527870687886305347156989293441251855235140162698936158411012148058010104493435416157426064383431410254877017689341693474310246263404212481018450308044742474197420391641938005790150244480039748254993174544387764275697047926985533498222917501356842868882613866375928656991852834754154566598133624418625048050373112515683801075041703094141880539590267307577334401795143934878599872065400422247441412468824161967903910310828518834060220610797127681338494118300083845674993512239475285148442705886929925870364793520322328433544565344853171178976892593016223689376221563041130857268750522601212186535790315718902552745868286989836994788430854834097114681732740728128612547307536080592306681550344798814541487877255382950588778130879145981168833825248766594844202548101818725911421059889684787573165079625778933344565880893116361000890963621346194212748889654525694436036861782925025189954926740097465252753073465161285403571534434816689048443029055039010878318918099828400264198155933171904365682270799264753110629370217464684394540230522873167949290509692426573163052784428699797395602300399308479384710968453466544385458144857693514969430436050549917065064007217556582885084025001374966570431228723169554647053218125525872860219761609017402159350594550581485069797185135389483421633222773426096040339605480876754655670376013985622658142166806592668666865934362622265540351104791453705918461750326210961816698432557150795590381898267568281108573528506034388641233783516296945390534089743833391786469356050087760376717880927121565741354021885764381793685598740697463678798623561034454469488616133435490437446315052140903738566905431720761944995124962468823773163762741010215425742493564523279603111188473446776063270131652809368262268939059100612951616971450283720636962598150713598744957266595911573329291409870124281024718867239010096524098535109610905585421970655396833513006899971782755173503331397198744934413494579317801233132973864106818312476361815687135641354290625303219028336723650074466759085280185641604377502111415041851337566630379777053516401514464941508500737571691561764380548708388853830204307962270421414775258403788346927921043431238585865650287324088837528081639508507758799958391596183476643390652852905632208108731765322159156698169424006090823689000359027529695509819616769252332465563464248249498979129223594050806651685975247812147378560874011416563584046501165766572404709516083690918144162978571595785283554955228605749042350020238778643654349445634443752559281594876489796423846691452573407483697493698699225144399122624178861027729960332024007726993071792577162700458696704059918517771281093948488717300486601393231817882467441638472215585010594479189583766929301421339100207787845260733515574758069229237688782181745616670783339244587229447210825100616232691610855044892654918997576887055846895156240142423744716836675874743364215129573397561591697191421960981905477377298770753549953863191100788021505889280879103601719679407710727514479004639214530855573447646899823884519639717744596364213608066317861051855921519015987725818785425726807117124066379889382016251557744777752745710076524860984647801636108684503307990979683610702161783990693755051826822443278545433842976860800349256656142727792366547403272176552947464695852818782042535319842238874544066800174928743291081640741331340511700917295407819984266090503573697752225561295476672388391978810129928050249787871939380573734532732739722004319689647785699653165139542296624791233116091012117506657761587395995637806608113437648354384904605362044621077804671624933999863514127624675603639442971736073933650013853455720786856709343553454912012065548577747008405709161027082564208107261234272161462029437734729393345017564400770144004031063189656932528615640547656639629159146354672822833270835336850311386648479118235604680246925097434438212714985703561048508892304909445503508339462357712341096177014455353784679186138178397825138061246818301186020031519881693506899133276298720687575710406455323912780494577934152445075218441780033967815779668213780587915075265251296041897817144889977327263694589494226198585400445742947143135673555293421737492113789542438628121091964215730398072471618296045469147782278263713741498050986812577338654015203107981020316976547003575623401489848474499061444443840519368158236832156212084466596611705774835277884150791970175903857999995345276495277836338088019601289981861520794400928301011319157202897546687925944888079919674748247411060691486851047402596827169804991577755737466817765415439435896882438720792211764461904046702152816888918244579484995455046865644912582762306304645091843246868918464798627649675312796002005103749609596514883266189460738098602714932429267906975132493258759376610573323664924342381646709109854486411584868679074173766965769293442335289462496150982704636063653924255983190822255611456705246511864669634616456250060354275104661126585389603752730536087783176988344801798581053902501815859324835710424899821197637582657170827421638243514657584684270410356265380089073612698632971433542600220325908674603057168546774255544244992112560625947235863901592994334969254750744436947189716566222902339659127113517116541243482759322014289368193402102186407188045400926888875038642233831286715783702611466358744917840231605970920943386840923805570559169387354574251090418625012432135680403457579757455848422977731000619877117353984100857103837917894662257069040280088742562662905529529073704841221411202461085130497888706942115045702730482398916800738637052662110555119019325405360167741604300255990438487031922063835727780295870597330173833762867576420575792917979107719872705259676972396165500412877877221693580497302862381365140336536851849525709670066660457122988187914350134949003360551303556548441324402234163690286823579188982963338391303897005292828240835272550176334433871242770324509061820538595911886695769687397569093150571314970210956368690332940196327241687095029139970044201820548133799654339061182943296145253962573396386720780340765009396979045983034155252124254796989008106316351525086021346099408026192837068921059502044611355735872827774076886584367752655542148500985140447894682019787904646389091995929963899108680840063937587512020494000212294312205653023579512318760159342300130644750302534119188162352931561226781226930542624717165404916059897762699667042069421756182851451368062819194825708886301656864908109243155098790078545860602112168876552773032977778247540959711680528102059868971517932802328027026561592655711089437269369808605322393893216759792463086137669651667411996242031103952232813236543928813761771867050744815024486371220052543480276424875888143857028003335420856754698798283360034867746390050922924831966433650472559078015759496449449275322075049818952231967745756521576337548764655365753340661417402796124665612748249502124793239023385231676798930966433445356927642940954632146002083491940550427704340937126185176840217545761321439428017415617472574978714356462099336953977479468719914891187269461488513684358752722785065054659907530347646375588621388519374707614297286878366995573557084931858729859058236869653265740557320325389220385477970033641575728314471747755997740097545991136115106087646968775137265398692126331017271082369425308322395417835494453200602087134737796418850001225555386351342765579499031281340256141493016298866473941271925142557344064327003466119888857229181764642355425872090021837127131442115585074479858721576125304763285747297955555255187986978367762243729290709341848158534523287766006539486464859060637767692699085517655394753792504758553186256086974972759988866874672582807208574835403209236807373938006677604757731442806115284896411422887381420838878711072914590926383448872695085863821002167060666944948337004222088030337614572146447251996970452697369177596167205356402349461538147749776933701481514740728971842088756872915870635455949786440999900315814295353928408855230246291777700994332533562533424443379101091505110347755246239951270599862906192118614120187199407126073252783178605656931961013861160040930322090515300620956329844677885548824250958934906104351723190677107742962863247067208817049495193300123897483073302200014457017752469582310797023311984637160562265309358569150903784232652694556390095828926143853171592561685737450270398543863370378275811008856826843317946889524194564177971544594377660249187303933530698812801078882676915318221275262182423332303736048733356313339172099964090051817339733115658735654480162695141203436744049407217801648457510447160959332747953691223568460724819234705471371982213875883346742076714375355650963258882752646959415271894751221062755582341282486757217988776887994044119189706712034255794050474037126138161700633007898232519557195331898880439498147252494532257701953344209861544855872552415887311483841556784335651780462608853779583483325348506268586091093837952735577561727949067610144713057724242113645006658183673582460841390484338396405269316272677652947572501580881297499368282129982195776465262094588722112283757799094083795082258213204479418839787188304354448322597092873144058265661431012904296375641710389306919187244954625739588971123206061152633082428776546072454372344511135272828844726423365132217448415497175474912839995859807731275698422789056285790749366690751132949637137316670622807646958406539390403297131070533317807628784951578688218316303103642617192259000409130056759693914128924112128203243748864480243225580671070495671351921638372486621602075602751896261749315836414110510620016679846139121033409630132360898652810611616501042269492526426794380952062323865499356155299113520238911907930124957028800767364868123406293598754501183397264545367876371107090816230776760188130292424259924742284357920842006639925043382075877067904827642602245848581921905824353419035081518470211313736054286847204684224509364613638123693977665421091776167051453392149021480797797494321094646606275868756493273058263473915957198424512789468346785062825402429351715745798168807834393047056635645977933593249656451883781433429740952459186699720360019314869482625483681526186012679249504239713593030939972695354711192037625574886969285951680159730288691834968757719655555151711913575861362470677984509637337480142473408523435526684539157993525879968470026399970466126179195160057712203809261172520248045415799255076617560120197859008826379667029441094569901741807706265111894147545797210517080907996661750369634649144632177077483990819198487330160378923197892921748380162936460303310642078961214564239147396835707314072953901991219046128580750670316392673540404044175218755028560789544365905041177110970473416809602636751430982017880652606391436327125653443819361994448321744107372100393306962993118226415264530880808920543743980788859819552563600258026636965908990549742452670638149710743089117854575920988944475218289200358289456666123776818928268815442773254286048815906720198573010789229362805432608736237569982479692647584050253456135684448704186822487627804950993222840690648300005863832856743220062482558218393396239473325167872616828117426853404618910690683981024174216219743953565309943218289833703140791030269858149444041609795152407423822559036958184845834438396379171492758178903955160679967859701237341348434824449656483576091202269010098211268126431821932146951539785442220917889898505257256767452811332716230371221115343680565537526003616858712698244714472422182701190538299455409725728250277776787222971712233760754209427753361422702563802252774345338227822382897544399260057219359976913874482910658690134355894101267427579972454369870969205986298063527945526969654162590946854667529591148200836627104891931439000191905484110146801945569036926467047600958038302137821782737215333663357481261499097916098638998090102723149214182435652620808713560574438271839387743210030287457968037058662453923802624326129639081851905063416251682050757976672515055401344230970981493342556246894635737457334091658190659399442360885398368646692367139730591166004686193795186103280019859569415111341729351732965875059377151371980531923742600514702482222924958692262093098349950257427957406891088130823475593589901895689377981268315986818669345723869435898987408236550256256792621806827573926272977649341393906455776040112574805630543008741010787408862549644341766352685936157054804136193881558725118756647203907805664022702326162671058472078616216671650025016869072180780761084728607725843899165945397957145212379300060732372332909646922533036862143747325078463702137958122392056072717637771999545327241732952357695738670648080714647350199998489163461313791969043568842625764075016211982717224060224690182483719549457275309144961427365852795992393328679262880630555555841160623945898576545244316169279481272739221638839147677903845837089637714140317924508285920139878267412963971590230074719094271313588728478406920947337841352013279549488578165047731804985349687873893469843743775169314688204148113933503960342714263218392252006661429846280579710341962236256993594872714800980385056262658205968129647091151190870999824856803165159524664702013715416442632236806613211397519819159273616721268208577527528875442050684166307765171587522662558526658706596728296757884038049550267307270809723709537447401398528536244541405724342913070711600612919371252064377163612308242962053097215868016857427058438065309122662726113737692319403967806586769077532301397331856418199140543639746920482800790288941763314044478145505352985507827624081779229139802216612492260043697553911157171677488242896948774968571053853965800284911730845961074391672661579042584201447874319279640954736162610430221061933567199204305023664022949878283678222987936159111216991268982237423296759106016409648391764259180358731844937185619788966595805711776540162888665693904250013251686760230891220407942362849808509348404322285135969743131028748968352660543616921205723717249403185197434910701162745049073907534128935268808906660341815233996034537963623257469964045251192027874756247776685807210250621478371640796696656192822292905930913968385389544314117371680379070470781763092226902230109452527609051958385752399624117003046328405666260631474317211279041861407551797062783068694072767436020381703344116947740245130415394339038329366779253703072730368771442035948490883033967026108793068949206758132091694687970487633330792979073969105212637207251456521683699589004078470729116277759204515899440869602598828170576053155295188458564464711463192082698758724953256554290018269434121027086432886878448980449109189105076457322578475225816886448937994157793340177800863526597538000369652686818073798437286023412143865922277281204591997492708113367829937115569834840585209647864810837601589062777916942292131222584197939085864648496251238343872628878397808161072704427032527920481027517251929211663489956435875123772352455939159933458335342733948504469426348473799788739669140736724950572070428125319366586955182619381076372639304993363641046446386472071904989839170960340365493474013887506478315514502348708204652468885510391306724192238080632136473860289954760139658483273460955841293352141772358351841356353012980482851912724350439066422115354983713946648152793045107235347954784841768773748912561365123932639630900781060422957096721237554822546604818551539013057590955546368665397479327357847976564712161675898092579917416679433249071331822297716904254470088928402884643278889129110457779024850767142936824482786689141756768233341808108304477619928380508473047082402235273277756330462981868825072825921774305381676550956582797248594404175736220258306318515639578357990408397597582395808670167672721036316526408783602167881723751837355117649090258295845695181479462475310594503288054440909674964866705469094563903758750439621845634893827053778502158350734349966611506851266855093872674666516699459875647699874737704613900280115096088206831960207120312783959137130949992662989903471621299768303207586721869190457187633655582932272642161896739538630261589136688921518924503077022202204688985900997579769069012767854981911791026713132703197180328244361587809106655292653273730275607377584900919701307914947560883588048343703900061686629122773954095560213948959233350040692379375491300287392657431064049893853997865888567182621473741138981509573648294731028107091817369454278941498314154540126925314345490367360638601982836512160846314814986065331848181238620081748070898952072494949927873994262668682273677585909644172741212642603575147424013049086633787567012491351496753478076144799108404614797255991539762569261513021493934650771892082430050499226323886327213011628628760750791446957103530356819301543615429863812770383337371592394698117585838124630202004802826346481292012396094205219865896222966122150723821978432016571172446370981584698348630724050262602159402861768332560647122020068882024377522897979174557125564491751397683709887784029610573087012521608431522838741244242579189508116761291751225160422223451897394850477858675683295483826593188205776831897202243608462939635775993837987021005404532344617103755407304518315716283261705639042948023544173985100508869592022263082677439608121684078591151953335012403999199204638685455154692061266737003599306096620235058051002079682339110013452098239474841201810282080165281163692433395588624028625547338495417984123564880739762320883391666547494533465092613807723772267007707944946926300633284678573887658827794001138322346818145554593035505410578386416651166562693623827922775812598697610390661498296284841102713387602168976132144889190597293921499424519020687901125505584749510994978715398745339967284933851206592637817846412375925661305368254886344894325074327726663040087354829136425677331859281454136945475147117347262689299761018941772276962138661850991919949273860258434246648020593518889891610127016382110183050086562625544341937076457461258423328433471253252849362902688749981192555705746132823484777865447489225785060486207435693504044499006882360706372654410932911999999315184560562378141194970124001739422638672001540600347008639709287370576819043911002332451341088477161312480806636361721445385130966283205394246168847390908138014482587522641173760981894276747797437762897560796291801604808533462386923011964352499861324578973102848341152175284056301473382327486948200400775446824194801649238726556579726223104976745217641871245576977910239855362279884355245243646289648004714365312066938223269401692595104638100943716478873823903768307648074576843366794536735539847349429997777856012174358490449961877293985372850016421942364133027221580750762836591588452116751443541033645536720536857634695736795965987627734317949355088201034803671818913241538941088320458911073368897977775468384689396985835352389762052004041382084712026989356742868936214341295721456979353158813430686802425299870040216731999067744802839027320963731926076188170248934012372955911243593160779402901292524926016883614096655383612654335132530547437956773176562857314088055927485924255026890830831509845462113755359551835589253049395442547807018451474638372722495655456472464986064518268792445626089674195856151843347443962738603471193492137785471203912957832808983951971232110108464262104908861903906962251181408513212891508458686898857580347746634022087264027554661903683618870540764615519942326289624641439978579848110879028647246213803822234240952755885480570714249437799296200037296240995342787432898410659003555446750760457910712931637579930157575974132817601615642761624490534765562277133571646594587029116515314660479739184808441782719762789113174659819023412943444907031986217086397029840102516132417963445505567679032212669681530695532411677757949089202352788560308838303325311178512294272339566073854905145575771950548648837720495125147826511592265545970195110033180379876529798178076465753492902091875175238908438302604014881703434195859880994022857187898542178593403705112300333053940987294505174894951761303970117634638275660082183654225232783144133573072416447486685923144924618866270104744272130862864223278459485206868054271394646873132327704643925477832052696024285745113759289775300394698185256847087771763502791581611338078032516662670793823511041350437632600308290757112316747548473129893019503659193108420508552551560679965232782114286551869258134751032807443321652140981476859627844570350117329737340110949713519747542527490128234675210906519449682792573533855060144479640152762526042738668956121137659434207230820683740864692880823872972676693738997291421799516428596961742526869770826242606413847246782827100880577542177398294092567105630763036628457851021202832306495543903163852589857453691014100533938671659361146986344851428540698685228342600985896873216730752651794186608213473506219885323224491579599196729755538847092883950941802563591452162105125800275182211842870846093253112692440618504480489655226491535777912269896187817929341249751673618224115665667073468475795536302687329266021706566576538748274706358786411575704671276848933114347747141554844154934632119288843476077210445143978198108667851903399760059911578707437667568014033727038633771307762596766392446657378800757244030381523162745131563938475399330985760077089340391708459490222633708140921316573867931508551712995881163103676549054761609311421386089327437660015504623187074669164447747049703872414660668391707533576432143996897424287354558164264735702210580018057991550222177204562988128359762040689387561524331161514621208058187735104726522305239296967419232708285077191587994001962121443285727096862392341091755911403678222764551874130916647541701376159731189755941982578699092390179875485672164202608095297310254004877949154875464790713618729566099743676433653857338596057184526296270492320693460200348663749341501404268159172437242026484229453933815179011230525725933459151885183576041379623233506451758720493871510981669357581730386325194733473400140772411438212920525402900402877707722051740581107579001633643831684356782201106792262192816625116853034782434527437188722175994158333508092842709115610465426408637558880330340931186072579476114459542904254411596219496123582784105575257557608406288545098509362016892090036412728602574731619909703890453295862748934978893038289302705505883578361822766603138077091462386953346270361139850952486676277628232760182470207778166642624080946301565734738272814312077172185199912169649840208933216011870672479018764968411347374759843079529112028228188629707419411060220522677597280133713969379070912091361033843280754932011419140578225428607381224420682850569562491806648499487964876548957209503550554209225541526627321507414838966653692410950096367562049788145412205250823547414304983215910020335209437413480916207828081781159760541631770672277508244289970009120011458578459256334720711391448968007199473677875468251859278382346091717928910296922408165923824962719331872108018936275709737832610426072479671540870786265641064453626068269599045381707620753170105004420416140003972047746437250894519602165825003621182339906540430085085768927075494674920491178128293472490816652142115028181260743488934784543078954562529178963799919722016808819480655807891105632944955508084845747118322940431210348119419394729083349364123308684597575678493184184971090053454945277225722723830180491497053059651107937580790901104905838881596939424558253377318601490814183603683644836771259397590903137948862998363282788762954687703557369203901560962812734008866361981379031558144685125550563811474577571394363573406108815989169766102892815166189652581181747550067389074928686193717613894029670213808557626322375892962413280576169268751048214807793343454226427583709801332851056429655265187434771716285384191120758783084584935268973048693402652459443344569868132301970727725938034311389478805154336414925631904148071537680561492355216405675111040010194981014628542986364320293973292529268668004509904644473759310817654097331028007034209218786026688932162925549497507556784809548479292245367113170864238663443262361976481975874346704362432191495913176849058261478225402073804972671610521088092387129856192661535465504902073733175934467883751144462471049788088303553043161883844001996344273883629233668463313367005996483978773357766979050669377531005434062693845256068847127521315039410979271987956718912951953341281800067769136888673055695370978933299770673815707619669581449410981924598365403645414131357588663124369102227474882476150112326190392006494865936422009501700583003708644611780644785331388848032886320396556209279924769534038870003083421471836156579720696882026710583831203685790474766279991437052885313375274265847676552230267627785928023857352149959201048300402067058385422183643783086867135930476978114992162319861840135689920112481342495335324164486807587210527452212316218123883500328622598363263429802260060587300105988690708816113783966464396525993381966398833515534948151115943367896087011843541003696361439420079522122635771856188139235211745419395113559509405768809329788849152130243418213531610523512380879081898382977158473907962505840586002494860345969733058954434410528053260664266723256180479166192535956224579428593226977362761030604084442435787967846832391869132187976252893799157823557783079022888212417865370552723426769000617559632589586914879359203041463520514677351322295846391099230216843235167035313016178892592425271342700231985558290526576824811721340588996105994426551867498779968653655233428150435472569088596923700177744954114072442386773210650890494315942193238691809421489365606954491665555709413847056298451899834604371696272488879669663430227771864674530613201474264793735839061790935875669720824526761419976474962135166006284257027184270743540475850319798992298210883338889930087758575978698907690545820160144240076871904954528913806718028507246997991585331985558589352203430947961369694007101822627029512709357618182398832528008240310460954985426569073579034504275430776997452582696356549137447562165481229796561634372771945428175529834712009285577973317616611496933509214626931228622737309150158526743842917493902292657856336160656400832467816068078179444010108663250951423693898694138305605493375658166769936736316797634377747817989087742694263779719492151161580603405746747419794958185507262612142114901670672479800948877364156244445074531118590407587194878272676948633846187204807274556952242965165538439482123863555746519973914382777988921937224301418955803454443314948716800568137559634717226178126149333825408765718441230120187011684973490046297743539096065381378905004615937481011471090033627088763696797472011329289612566579715289768419215633980920406496497119552139872113238760068556469266098044397696444382718161955751149803446847461143693013331723170833964378903157550538539320505450560156887633587407720763354682556606917735132308677716693482978602865408219488052349155475759124761907438847571981621115754503509853018860172523308776324820279508443656491711108753467742889736801950842934212566007361408059720190330203603733066982073321602184467881112693761631026660792533053976967986994901509253763171787029576207323772916099858154190217964582505452758134177845977206869420667501733412558055414031466356543499937313659574296420868599227686901181055182194737813908358488195994084834632185876779685430024095689613275101213603438051398766104530835374385689847473037856011361933836418580377363999495967979785853035201474079554999219295022759381875118280517694061884997997483892945915828835805132295681652013765197858509596097341709289030793193599538215784452139037870945798949807758617032587975142139202904567608959722388743782927945224052239067485711118399602044871710934395901903395517395910106457933706008389895612971405312440456107715651248506603292716704453998507856308629815979841649774278572903231992817784713048182377531583308661563892948343826028971306064214432400935946259723631674277369497648708976758107604065623089683551718082325911662791351305735774045092137162905786559248849767326640279121445093076252103991828747060540671281193525816734947349496244522333620137996114594482080254768561585053389898337882244267722513303512290595693499823205669790614390311199857196287237838836688509667355494832762752009195000181925385325925473091503558556860933562499928196734606016450414325320758837035767711184604321430891233433843279250703069929352417745329617529556610313352075742956759342728341351167284305206719940161608624129142688770413389893698439166480211133089754504027514969242702628596020869834769462642450714874389870936821566695648690529134487600703622713149801095663167734459243984577015590641299833972914722087033192717680031840230202481134430710478718782357042349329745062011773449238798585989557900920608760934863150209508126425144940296789419186846406871192094905384874750154691337000768255199234723928614188615138863818213423194817119211768157582393228930404517437846907664606263032609581650755242501771607270393909163265671748191779176951746667909208677751558170049563003587006649722671857926213914340360317599239851100057508000236377472609878880217021612965136044858930853958583956268029329456407429724566943354913548742759663530727442969769446167564604301635332958995294874295313720933939356725681311713669391104459619277689015015522772703377890923621067474540694730814914723435427214570197333174813852732930216969330717701318505141301377681874170311030342038703945958881238020260427870024325167524825786312905086864757984044567753088093318725051710964651218772125802189017984727057432950574100670306235594323432534875023057454417358571160709937401081501006208694125907055654871514034745027102553562640687410451790450097284544503441886763154904958021438313229235279659952134672518340866628673872341760395902871390202436453684053378602161244349725560628558746140411240822121786160411589901695808552676135007744062584661476097914034105788602744122939580828408282677497735753956511790081647045537857791961201947144927224178104374376223115453848109515693890019090707878342169232923241133157886260450929926062326135263847181066487540112712377571448747893988602807950474491694035558861214674340141624326717050315411911401600942496448025691523793718549600602753150053583655478067581188128946541175880565209303080001157504383715284150560676572522198219610214911987559212245016559611182234065080377598617076966674577749458781483685021262931423231156929651237260616707554545922603706492197753095565781585305103320399383734292823227389087200710678238671598038719017701250268838493785201771012653103789182634522740503807104966162758312843219175382530416013976531238730146436549295069827354721777309168455517600518997414564062777041449761547369065628981259960366260794758331424965950764975289999646391159741013465567725281672788705428199752193917124791218603937882484620412550895029228909126281449812559089574380853388857530100513597737752551816734825525820628987719659163169200199545072422660476533518183035637562471373623175213871765173231384041819151262203326352782215470720538347379451893243866677232589537990146427807152464463245108479922215390602657905829108560117879580665500509567907513335525236811080344576547039058385271893891972406068403074466728250766096417790794885214455115910927493950005871582648010344161655027369194207823174277824930025392596065360879229063814584523891567560897502604679792962309453934203776903461290812859792852224290669261742586465077189012232872862103711781675152114478443192207409218426694673032626829511503482027184503123319108931976052020951563592186005747095157091829160141188097799275308726000021003833323841126792232184275258176503785679670177122380595464807828065088610553727731682878974486186376857069876020339685447687908072160808952131395966703621916139029586613419671511238176683982115920227380926017193911664245669537537515404258216488072074400239601314180221057352962971832774297995712713040090864550141162453075285415430897304337768206346037414938763988003993489415538493546081796241670217680717816522383976087474376041503988607630591066478877014634174435847601236178561761496899598567044121963750076799808623962811192313826271095272286597494516545890251386264431859610656046049925005968785699880349438912928840213442139226358486245382696537423140829047111140614184401337343075598666816680244323081988384432502098012486678622702473920408718489451008215875786061246524539066473878208889841047760741630752545765863291311721576124686294125886442524480541563110425062494281887459236622403201281464243229132154664050507941080966256572270913919476072375672511545139571840041714430607839161015403124045898816762670879085817575737426568196556844517831291485973586077122188355460151693124109668163344837381508546018180510506199982965967594245398378863803446854263630097002754162784424511779419103292229206911073476161226315480379796485416815342768584460768243485182546761597696233582984636511372510710576509275960835063508886419198283482058651258549305895601249998500613313187895060441309868987451172351748702652669925674886452679139235122995220506400952030298651977714848049925359102151513490352103474628491591571704351421107328014874226908904334157014890474256328913036839808101813733122473904767478493726273557843803100739961233917339781227085386005983539944614667496032826212543236805202035197715736067491032711524675138409601198649987927474726061460793322529688882729753033736005459571023496450609302059643674350980812343039005314384266603294423071596231238549712127904456516811064483858154848698432187296904593091944560577683650943532797802914849556750264372734737292312165394918608032567645255796578207865524373199922342106837252335947107310425478082892334032084798550381318806656686334397633422846001062757621926819987707547670798142089119972428985664216830576379631528285238193192704182716553980117718489173355139577656461096452914563763097431327985856891917061480691281502999027143350834920319279068292771459024651916077641437013967644150277457765066906266017824130575995905007523519555881023587445894612749910360764982901273630744560948410907326395827722602998856395365280748288910470124055233432745790553241047318713601631577367430663094775385107766849001028832909981646677419789936372881262647018552379389824133186434529892430343007277561794195629922982985531206477342547779070116717880063166801686570948376757754843120663010817852381120088880349524823654292959347468146118263658500359574547464456686062309287406790916816580489379356698742737318450752210726883535767614867180610639435414224639534458165337462558944188437346776477524093286071040055491204957586768085130027216677443840840943641320335007985929993086997576726946703283017165050961169922867093418685497085381981188771647056738299358224978867666702539462164469986184772182587007049886961280678504934480252112359078064323502492225086436892385674607668595474683864872178128015342796845167684985608362470835835332163242057891766296236067242724680670106910030915182493098084696700528534771432835160816483955054854977412217760725604498585539182848183833798912786572184685602748478119478705777825225547710326729611752571979424892359053903376978595334069480602847047143062399386121326597208285020255970076427266449893412815098168960064652354075911818270334354902142822418649619207049099114402104471780509138197775142336579812440138037864508064613868289138919025609293228637162513523367710524317026798033860416135073686642999616668271593101309295772129992151587721887369871568109758432694611653611958305760629372902222585951210559743436407852114606409848000302373850638674816723978148485120524511187313434087500892199974119571635654155961470866865935001184394969515801186741892623555311952179351296985271701571029756278183098678848151134934702505754496635930892060982884047651008772843702956905386116951397689841463308507266720212328498380293759396697948793113786481382572660592346333317381102951711680532926769808813655738749048369875150101594980491068422710226814217205709453768296953769312174813276525729534331559386981280042789827597461302494717434299821011980458086556260906903809563577898559594021203048836692671233204739221117216415371647971887911687122964827664099537761198459622243903500486966606399245931028123661036118464793586317821969629053568804690901880491970404708732295367884668808849631528654179380325072718451907579661744164393475333627630581404411406700383007888700176894855375578198082690401776818830871280531010098288832510411008674424863721212496862115689274739976716873956283826700250308964171059027660248596286260630842201553113598631181579691975297310733606786176530581210073354438480098792676692952308201122753141892649529944386399866778597016936203967345231343495364966995000591458165713395803830646485031709773074099566960624440398683142695438949869703413260098856019181456934616037955508431372417682063964702584113504883500714619588464117020351988396746099768419500608268343659337544453915074943348507750936922296689150321033775452020887599989147585034523023835276381329393944373856351709381509419557331141182206344718855998289697038717050129852758154573994589944409663999742963109904213198559365635778402557150419790133531167003869781959698913202839020467209670214697345740300886717052081518960538855324776849200646444035905034684764620098825014315408998714141720974751717458922640232574898203798112027607493885173491242883122814228730589800839801713957461246442807377847864498456030195302057014579676657259923921210749887501629783381174253951176156383020344728662205342984018822035290305056717670585832921686936235839363859273280110734707176506498344135024515090525375374623108497904619755790286150542718106055978924483965885321511116515460538939569366739991024502566793814288227855076764616458700900247377500020139832501634450539762905320381738699348274934363703624440117241634396679192751428498581539144163110325216803123350182897329472573487688048851366694797566681548680635865717359354290499225510849914185371740153579356099549528772824812332576141179756945203389993654515735705928899387105205996120777704570336343309155200031122046991597384978936298482703518238481628559955813138324320600912811277960278285262940455846302794712230131453517950792632661194394024193147889833861714877820868768301565800719418879873455041459157364960758910847596816967300481999737037457274358107011460478426499302173372399784347870460260835862994179785995295869489832650607340881646586539679395213124399761220645309565420434020733005081244152522491284952335646062759359579713205768681308051182119334877447541513270417354280552179808319818964687829623283591086395155684141925034272286110199427355134892845681661577608215644717938461646182088733600711699874065474277913120404923169658706061715040160934148010628468352806873922296987197546505759497744679985426962139224373294357064237916207929578447713523466502457713223530143407174003504315302387266018129830417203765448704512011332404439641271077096515858546703160841113645204118844321312283575619336259961192997137497348096854436694011616101312877001403576757603120910843569078649112412303829965970810029665436992724260449575404775862939075254951083194247943696675350069082813476584705597161317797297547380153925494406792900617280337205596932840126202570256435901366000089658633589987104161088689895169822251062620476492808695474627888957416823977214108303265521248985105938404237243252944406380155718702198866500893259077575821020449073237173956279239112114718424221667917818514544303144041468549172424346872948847875347811603435139513297408937964450781022631401503459353924521074890190771264579004145324333744947626986493180022530061487504738262831297687563738146603572003470908614003431870896341844613547408694972059000641056504601787116888731860750084208130664740404601241394531662468068423389780606523232609122037363605553476946895581984437967510499115799301047285999143237226587150427595077224479513184781542109556800047116392193438865987295779877218632960775913589562738891656640083446312257209285970174344811442058325557114002893959476029420681414315751273750120647902935226888771565307427837874738885122976828616742114876996437039756277641317543527488659836895389175007932395751820688952971498558222938010457556695721516914358153070720473813419231520515951313093902577415123547778282378935611086959828552044424112031355701969969677998019500950444044938826119484133115012063561733268903039248588311721901589550708336519895829016151416372425288505317417032207479296712988595656388897555734883664654094907856140162084037278349988032480159525653741591091474522023021574746992604932763450101448879666524205314921055459745728792695512458877752068574397052795979006317392645031398681536509963054366116612191031258746889254957871213957035197342230171723844583997041213323797229165231621561387556543508359725035979028335605909935019029973585447678726790584548915506564006277098141602296322178521946787464448220497156300841127274934829232535910366857510937971278825258448488380070164132699177362425618603133436372327547271533955010847181013957154049328156839731577370943764808226475924093971472732795341179335425388114762746602364093985109264687633696953281482822340990539645681118209646153781652969674449521681111850735370591819375505316103807179811484001268188303839758866869502495664352012908351958368936792360135590509939672772737500304698104609934993918765944704308643006880450422045743928662740750074742315031872238986148292901676833654663519219806073864433644549063751286881385771869685844607922194963648614155604034436077254872436424039208726837088146875582031703280509179648683704653693338683441202479240659977846451665188888051251355145060504372722920155814084638195171489664527796298435136570110670085097605230462879213079785870498470072618493870173193317732926557379712526384019183339982910712762053676588439586786077447915858768715418457842705536689405827655308261522684263827321654959315690101483930794429836065574585369171956171496633790210822023958007621012842535393305033758713161735065756770142911227651996613349914933664411721109064694638651490399626415684982616824555083195001581123702712785812943056348908854846492548913048917691624111214335386566774415411757362745567939024010617300363000262970028658991926127769147487469160982780430434781641781898466592945925917612652651786426895285015902251843413210944484411052637321244967530589772735654988136066538401241635302202264106641719614535944912410233761089599697160911250767041879993382171063755276815881528377784312370046498785496507331126886091678856627714515978997282369437115016660431242452600519175589922942839893277594355767718089996568951218209790513518173147120413090920515051028952715507801301874669221870533057983123335359171681683260258667530571826170900405210407357606187418827505268377276156029685937880373285531895130306983235332016222840005286005211768678445740594524510179997417674672593007387455239806947461990359915832354538227620032716160968465676576695589856610626493682149021987307654496667099312647286971364107459694785360617654480236270313804683447011869802714707846469138904900077602485018535967280692194363532091481905117030631207595154303665964899659704245400200542359129977639606360740280194576168899351746338979950834071725313118653841013557952902238205959809175886855499650602848471840972983636533585251375248390790204010152830398890170247468252495722157767887651382848276904332742617797600327591024511648926581788503485394674734910114692521652943111387814342680583503887532017000278060829785407386706039987937384368860620397395444042032872497368051769246376676092377506076714491191580971080550145143796339643980982892643224022484152268667688223421581353505448722019743962071635596826425778191498212802810803067350698188488491873452882231836765005698177457457640016388003868205010851056368908469898332142695397113042471391156415236634135154635407279597863953265928284455894969374638919776490382301692430520272156257012458954420599051952835774391513711252735498854095576641124882220062325647834536461086718216904288290883006129596366438527135617798937953248051602314351161912655463809261631252587655515760125885752275920672731313083663861851108354365886260693704294001123973136286664030758543195925623480733268632935890404303433839275756430234969370425409166301284356726309420806595292207682627228650874874833599404692930720917175455393787337586772564165633960387094213359438085613274460518431066927544315285820689235460164078407155044222472309226198289596296684335393683255555710811484816538164566052394816441768694528394759961752171525943084458927217368353562184865034770303840934391120648623840153750918584600810730387062422341646040537580237066298575804204231090680086977812758504516036715206712545076092854819686510111805108453624429239854813593634815952801977202076382551221488233070154413964025479912981790601787076262944010261476484135862402390432554503583618943056588637092289185059907203215890795473494702220215159855499298438587617936677402662457795111736947181189994645230448519726405416307699119479409412760900799352940614539083623756157901833059541601612204474373968019032703038942635434465340843056754853872713251588170304348281816897089510833509487139126548027735526999392469933599571138383725549344591528234417184565321493626895816603680110295374408100584297835256702171241232455628033457067427020537117278881950661624739585049067568287661940136127885868229793320710410164138274115221670931282856620623381097308521567766769649495940264759431083676452987815701408379224241556671737969271171552270826408906370058128837796520323917629839411591864092672692264026321545060844488517844100373360892599676481886661927872976329796364720341170055749962659381082954252415284366858636939735510440349251171389731484420034795497940595422091384156119666621412372590237614410904695115708950271383946877666769701754105865359053598173496498727066045407833790447218250265738911967460778961697647533610298608185790645711627003825634654401905061006643572740866244677531362860426353424088369218046669606525945672670008213150474988136776006458478289474470155463485248864417472953304649880096373720497370201879911606161712150666220633396557902353542892261584428440495178174294712142881364060327088451260189133208084610549663905502527929064188343419789105185660943814776061322490573120024670191814691851981832058378804432214175754036783620535780868306695037917245498522384866132349111685036229867756129449014243987597944292518589886097411306709720195950822225877375382827168734357215425548862178474480943695192539116765999254769109523323969563074255743040886068686755914674769447476493580964448288947873283188940577534990815466466810837878851728477962228395768335081508457540335553434320229830557578227831246448414248708317670061254990307865172477017478168854019304981846526669403149983272939560908210804479604776609636692757058923707675362899884794282604996106903450008012058870638215775375728689101017219452297312269365584215944306725079049934107326375921399511381287371056413913428728904669920814439124979778680131870220850480215328022748152713123637076728609552604891493540217516682885238711330874693932707280466218114247569651702303120277003454762783944838686966088608994042753317483867363906105887452184329473946556638273126127764113590838089950805567990910218684968980295653900567327087990287181266568581210289554092285046744453809182180092893703632813025815483986770907164924597730606992957320119353909191540121268509386312910793006556239661501429005577998226165041747177952898508601182055065156725833974937980534141589358642702072634993083592426751701248493756636682014541408499447324554687661091603482004396364277777338498795602910784592136315516999916059204775531346116639097130422252982864859197836950292202401158023654850767156973814259524881132869576493439633356311858705270608921258426017056506665223044016671951347493460382822620067112095415832699977567425634186789002240567085283219716999080232939574637425719159571710814805195252751666875272364231242101012596576652296709546332239905571858547884601317740252533344765603418608340913641831712269798701890979173564883907904497842422484412819234849534249558284050205475136528045396651281374426882024894104730866001073508601686528456605230163368084770867284580448228764989887300689779829303119461968587020202356087672354253654330292699057043675862948292389137773397255495179079791652153920057220310227345577094699555696391645402748027409935521679808367195022486173665797387935538487830640362597846535980485617133226440738809407652347595766889885010711027907430112762191423987307326638265208594276553351410364426702965308116055011505449278382207810572093456019654513817754885823798446205886427019644098542543403064601522168419427099346444437827979315199638930025919320567820668070445478646075332387215282044559883092152736527549381478406574723483637704809342864655347614317197538343415016045518084273533538779117007065117858645576359090482577882487671854206367545125791464354385505179713926093455602898198397836965803743542958611982968943169709600658891186188716072753135046390147838398524015639078145741158359641972352199574653854681815187710783751126678384774729055992618892672513174642454394169167979955048372076095384277019277357954301252586835429849397686335874566391452745543288178821242854930905609395539761606912034703611002507825960448376918051782076563174498439079591027898833013815191981370161230406201446245570405362680313120576704998973664690596878180479779407122749565911789568514723393102296714322622807947066987082202162976498189066261628694265175150718387665951513630833650380994827665168268327246226370159695653187788074591254743471103428158529442459043856551654290171566596591097018768514986051132425958512111130374377373672843802459931824093731942617587664753502150413270553422872810998611813389455931670284740665815924098179316999879166809952741252951935178586041725947222121490071889318252587731858412056769305722974650204409790623432067072768599781632413617739886683073546885854111849656285726708922512201894761806989576792103362368199218095568853040900395993417414326817924729856743549685571858192090877395239597891267927562735550822726188659796841174694632090850726357089492919244312770029360478386138153041630430994691558379892542942662424268131316043510949286194591632844974765327116467637019818885871829271905612401571210567237298429369934483586987145095868692514830990798417270808802427709741925950955086835062961817903473773830208608073723220781191626154467780943642411356063481362257175743213967723497358781187504949223246505281785742718384623077552036345468366174075793342000984595316586051548450605227281209952497524806669568346731375481512974562347404885476134851829965128132524936829068813765339895990883566680627433415538142930129849235941391513345439613779275960380189441819242111853537125253730071612013140029256562472571301235509241703959263741413496431968343256412658069825957544142546802923072673832016872343825996842138487439676135045163517792849112299373656108758499176465205692931521760241321404923064749148530286451320498984962087686247780880216399970945232322173785849061076258228643479972705493458540423704484238309638830130493073031089811687382610670600066319757266454753810537790807512295776516451399707337655432470427390872323115060771704947541811140553893792483477830778719205081574059435667731992298082492623365194324360869894711296001299024469916208857510272858319486666352347916885913160457450978115045301012924669290092269666377615045353273194437411657109746130385436206502189382742990585996524912708889046476305544975359819299715731758933162000296456126993526647200399748440259956066204535918216018793841091896028136930689259851771779534520933283386428302215946384980703107723821944453949767128458332756096049817582603511643309376710714640323367830593141055220280661463881778985252458382104520553161545709941159099956725914059822698385534311686806962159296684578448392897260118677749155566856581034561187989460837162474618748590591334104635930503707128928265622660549412367989289740374591263782655429842588325690180433692797105451304492467903476876323992455245761430775644529589799019286123780271603340113753494855103219478812093696852683517132994726777332620214807424597943218502591342543978641205328204306787095720061836258112262041255645842900807413351505705452523333586871419544295969426364280767508713813138346099091694017026530950085145249604011518107036739637644273808260061149794168493147267020595311132841747348308872280555984564899893086693809318954182307469865092834680421802680866630337788744685307189149414238827562723126298561277409009834629930722189259201470616140224748075130467120153255398421482013737257801846493586955234628672266968399608741634115903711495673138804586995388962031280755548357223269394354499442917316906826294222147959705064331446293066924222093418245083252774137687284808381029578936561793086423196639748324844816601139927286900514599407628803800227418146910198459187330614380540166576292677601173923840809283600717044958357274981755232813774390278065998007705796005279234593646551121072937214292730363234485395702365272612577349612124944062057711154972362577846642341534629467394748279258186459984939050040516590672191460545506824080739611968330487675315440794145401843015889276892382835507980759034659005820928254147823236276136054855962818913502733993205345270787087426899411712309473873047509633163083655848689369155491714347736733103435904946468451670074394689323325817235115691784988167079294321693722988687511476104255184070728228729315949516698048617910300939763267491403783540197820698712277236461748259418669867876118951591356388733567168409809199342014782981876907788747576884726283198166902864190995386978105157151686025410835210932869245272287928772546594087583165204807701571876351587287772681478605239502488694308688879685575954107393342760923594146093246729451641213596166098242168101384268789427024964380390844807687087435711860628691243752247437520980410989222596096522120231215300275796076973022812684840876091808169905672690867291017244410850684131229187623589220673828982708899251550259495984606472821417326999751311685013308932483564267666501634148829166132542871474238548862602412107508847898231049141324110618572337424212395652835470793840290667499389114209154269567318814974795235798943478607973311542011845566381346385779587696691525148213823135502079429068173583371906744267832648513550749766039881256612988915339709554963250363080422141799768971764671386889736484205588045698800390145530862376060674775337178529621102866218670970404079179658734429891273556456466691415696388197699290179747294347627872298266723636174368010811792878786313577648881578903291033061171904929043853303603309325015296998404612982378215386741451425811932404059153067243572816593369221391327299584640397755082093749305944464406561989019699818395825353684176159001549495281911227849486498641511116451906013125669012264498042628601521355767826420694508027015866468530121826245109157903058897714438143002210674781546833557794586958644570468200685745881270539074545697166065268930122496137398161263206710943581649337407646380330200251566667461358298554151763195389200762114754845068745882650583243599350525868268280605015563361475794946674519379420560290368047344939817959916830914311829666295778769769553508328043745163722277964461314724598905334353033564834094460601418267651459068883924766635442029588950040562377771911861603647199803688918583500329360528049198311827491019956432516614192585451106532420840173136168906535966191421597512028510589121524800760508330461721089204973415061154404139223527601154306278425590404940266027461588582614032174830034751724703437738330978419367703406713481550084220664305443464914362755212152524661561161995959098847469463220071632419651287707935335299517372493777116396728901820938335304695805883221090711983118042934212587867448508701344504793807817998701066396452442701428347283516514617269376072851246221093241576466389526365025202852005959465992358665182698187150300258746826461987572418762537295022972844861978766424045663449892830296545569517298740490892682311351038879818110945465671882089729928658516175783764237199922182472845163745562567312354853278710444534377980893035114084389167957379189356000421222645135236025443493729733962124656368560994953285179703042146932278242518432133831792976112595085492509779141918171825277788547811595027736457329864173519842578442851762919562440775696219329798043170665033752547155142630894289714866000473736604742429493360042001505790595678425435902441783092631885914604827963275891442437167552058049536574347271898379475225601948716043868439646768063399757901955265442633720660419561163870032194150500901032790148652013620000904101028360560262856014865946269478732636020590100679949438295499551017043668038537550932970100279616382851381748345714377256770280589611333131790578432194774000983301822124242521465340764245546500977975766836169999266459846275717677389782056563936249761936280495623422689511936645346347763668889087390616029061884461634838145881263840957151864629329617765568047586007637379402469135125249471007642621742232107790495791703749193520514794220450109414151924943571212516768146492726876017323264181849982643882660361628201191378116594138269606507972028990759310760641971969559519448038401341095337252564033679958328524817206252588798796909581420526407057644194588278782593037049594948214499126402972137766975185086322661847889907876511563212014178853830196831685007629178175788693111412871843325643634264958793200303660115769726617645188603404529946954929828164951530159728711791460433040907861719834033057553386725470727036628270905489153221756804389847352717649967542103166092313746552498837220604866372806818791826368380277272322501002302972790365424806855488614650163987414455702852017920760062072216027991001094338094062297407111962601971073596928139588961557355721224654832244959825440692978914968339392375576779834275398923469855700785207443130678430488593653357337465836785130098942140191110387453571955244003932055091252731894514215694197552537101366517985686609767932369070928871314756972144684734858162042900614204364492357279452504409483745689899278710370648893170499546386174008814893221115051190031222984766541859065419900780419469084122703761943783997553420412850350514651071212186393019774368753341756323370145352786827166991558912241178405055112803607270108897489573363973696599844862091235293952768174859644247548604379850821999432096389669759762983415336005999021749702240237712662096209775297895856232275636287861438493825253974569551772785291310364472927662658300336503429045722617700732536153028261367227052062844185759318698029244921022510825472006724544641112368917501601443784171438116319053447885252637019890925763476967750314622648700579679847239591071244017270934064797613833496290449226836020873052611295408352190588693156548000276896375028611265285905741788330650398497560554672754201692347459396269854208668396615120927028255556854981352562652400735599086979843495189876249698407797012504001038943267640128380473185833055729580935259176521490023619271991757325005484448662638411045743067216510853857221581298658441356744489778721604896250806740397422360938022186192087211519514728197861608078104380609746804900953634372794574127662887497293609890689049466544281816608719861097885401619582121152914092153984221374364073453759405715953759852630089300356390321317861672405957230959727812487453697158080727030752154722991805410118621492859630228571858801417539161496707097619494356586620190831211501151159692402090490091456676462267651974296770220526205126190932791121006849420194043519951930776479777411585728185179943234333092638485968819984834592427559788622443572866093082180407898221721718156621786100828651205164463944442909832221157907310960880025338717877373190439038019584290991019140725764287209413122791483705882937982003879135527354028639273606548141732556295313643796335903242252939222926113005532754870250696525554309840621598985773644355205422281059706757544662464406212541690650937601104878380347143361950132920600950898976036072968926503910816091112908055407875949118689859523050276187673652323528322977758551776556666140996059858244415924160539633601894873414181152470833724371266225576035221392135314758790222271469025215451810216050609888553022741776038378413687710951151649365194804485466156242691954987948632854668229374861954196871311551672206073293828474330715845133322099301587136824344931916274671057202065853909096370044906587165529606511799131805791726914032492987815837571704440060155144598126598569376389898486541190318712196075190485073508759585369962878224930450374805914742359656667897785395334165024193804070728000367476912693637649281269807166464266785336831201271092246978881176968103115641070577813079997627797212218276314360190399125574442821276890215781939563822514433091980746923765719859436047336658800156213023401496539543888414528278722979764602922594445514518030293419996495125887223979124335399059583410536221028137739662552386347820355883567724892635197870274377609672999957750032532610317611010917686393389237073304016472419220602042223504149979932557896685197359429345085029449689438392657341612215261281891706386137503618603690152832237640281487396895682703691653226665583898856643472719047371002693982880051033182618992939235777435849115748847858834422194042604389232375090041343062540267409865207316756813477500142863189580127897167793585513844796275973141475626636771258662441007386336429945158465076923507344570643617129248674981478414766916159348400532464146314636724995785590589401312675381841656161525673043493945037961857401415243882554156567941522593041926423603183245778022591544479928967329340827907744760067464652539446543604125227986744537220579714374457802594867740992328357853672631346307771358588756655082958922858039844968527730061797801377765833074788708960377253258122524771315753766861309174235317449219780270255195311060661945168375770844072908164681453473109335602800419476584998288711398975904867566079335656404623606079204352148858487931565995156615542630930439338140490990625886862238761219402568405133574089691239834151897188108924689760651202552894322862000776450416466000406705628447126743779804019819407148995574320344404167910201477827623165884173546598885985375640084046633870972053388542845241069575679872382321765744179847829660873769418330091493319431930805214261052108736680733323813901026152453266160590534652773494211032646331647191093218427312719130200777865044813774117275233257935681960269817398223091662835252487800364608484284747213952137910472153285254388889996241915087422524738708262957816572630160782742857442387605766686812635376394514634588306588381246057820792711954721603787505570296616546866002753695884004645163348631201542634595010449579917699707944297976507630015723297584527314051017357189643143066000920504496916179844653188591801048241839978316647972584058823187740352692818769631866452325474446838644817823971375703981838524551332579263002113187975586572107747677398788237755332401901870103231339213766182512280464943870595908148555974744047727515487734584398776174103300806148484747011884645587363180616223047145723415368116936224063527719990485997376856698899854338425626892118713808493224936462760892370962648920762250332068299238360047146050469090769770028343429630101659644934061181827926802822220709294454400042846655676618528051486034581936603436741058094666752373801503572676951733640425904887766597058211818272321089773522575268616371693150440543182400939723841974122292949533657719670966207842111902604414642993050225102498658298829825787808487516709218692163539446515684913587237901947948157736086839139453712096458117244066475412973860361156597450577228936854272348413231411981561439709748751909101661889607660442694845177321084878487460901530895393528820262255396047157833364866353292902908748617712787964105967742091398352289104988268184664558872758695322442059410789748263659648869903106678283806330532620495968560510536156726894723873690113152804842435383228662948383312974431149450575198801168113102301012298811238484248601584886052195704738376816730719992580195842786578187520554652978897856981065196328095407029752129415378304576881721511568295325196036475047866840781795937011164224827930761446874198890887154540133586480201067698966097987507174924132351286163637211810366261991618665474927964068353649564558740779737921570386921516605261341279762699474323145349005696913745530385442671106058616704426378806374848223393831198173423725326853938306070600067617153091384933423453899722359627738673427863050672399233126691451835962704614790045173959622406288734931999998412920256061084018703092172514492367953398903756214994432274414296749952688211430697636045155070908565201801865900562560037650296509296197926991666936655695524540540709447556123457418004429497406475364317675998172834050943838354810804882051492416936005731799233773688782234189017417649439713316764688643255597308640992337275600016713116577825244353989475148823331725201397377128603493197914734358273599130626781399052790126096733617648718630986956153183678122506436842053299437719488911229378880354231171288333131772848016499922117524389004405040175870454001599706531037600080567364879034737186856865733717432946297941198884162352644955774066863474959004527877269306257533499077597557731572456531780140589586591374186478079609539202147507048742075641680623071357900166789727329608337301709164086413597985273146228570773922783779733685082640389670314152245322886361495226945028719055572119423732441692083964976774409372370038689110570937512247424332658817470349806824363678524399555631243286725563157852876566081862523776333813762786114462897325870521316602519181812808095307924439467196683353608499897591110894324355050991837478041724248016386559844740108488069683602969583391288465207068101105562936572410576401237202738520228152074582128019389900539596873509906643863569393908138741705761824346179448155468279306495739850287634727208468395639654561815117367436707690167740199799727376404732684004274653930236658773031390939124135293040617975843102455254352215291767138465016690583725675067967451789729771438038629017090548990105219041124592448521376223374231268292016495792596038237863329971700948037190893810089866282804470444025614422601535335553039281116419369002317989327659392863075734089026114455926300788816931389087830734589404424204879648762656286526391776175861764623410677509587919738984563716103313414012966317839915957330697787140564071651357111134053266827757023300675285579090510671771045697596392215492006302629926585985340064208257551250404418541178220675747680861599771911772004297511387327575332335472325498377227315674806710203744641824551888748140454635060949208316982480129109439042803034444728876850987712381221603142536406227683709233336884508928431380047203652919649523550241650143546440438473707805213170812087869845081145681833630576096151922879680330161795752395748732540559364438130496324300927690879112534145955177021779987648651566975185340493905544512241900420167229590581094374558698918334045537130045944587721719269111742761141519061163109528546815104244377231252527293505830295537694617686684028081635019963232994601153884092406786074573801857953981584000263699526135821931300587895513306183939635432874136322567311322964529221151281398687387479609668253216962207119770215754085931883010176369929136196709288655815949320631118835546583607067626956230357992347535736663128284684600485696884554016511091782498712379578487525249982722514040661370606415723607045081297635098318197287785296446398680561619060798621069734596907282516947637295324524774686347475482717459290006040061779539381481593303291436461897513460172066019682004486300568165455803817925751372164571952883309083951088428389874167539857910071427124560236755842640139853553348486548512914828948898484833257013798959086755308912264627673730327534747413902839652108543454462353886310237134173950897877986277742657826647769596990788058221176389828439675644395349118395367729094156222328647122491827715858487069348259043826535905989652526545488527239447397316244508411547901522074702632241903955970153696510124444268679727966500378475638680949512407758869574087248276139512762425975696825236701077522914544191573107582253124704860685631280545091907654557241080281081078484397558695630516197577657137267839774715623803697914226155424661925877347926387794338787813204411525829794567627058592714446110461616533602167368719564710192054407666056661354425896737851255230413370892509716021244808261244480547353976800510279070488509574260617054315510545470475761608257405087520150146659969065607705911085871001758696119084324122862935572739928934111756414094211436891287259034889071186057460953488663094984980794338887717715108549791191043533759801231731534966088742037692384940555591321117348276606467307793347869929959070385300168926891630851413733021543874351748416460265390173170774720289881354837245270036081425248391508757004737070428871805799739055459520476906910008686695642905878762186778893240310807508338998989595026560250174552458725050907796710323530470537965862602158434700490661620819066011629984947885248373996589715512565670218226515554045912852589410862984032841505681031220193013552135383897142956467530355727873241735152039225249298879939461510907577121078079609609067417696024029320981726606815000440645890460455665916513919729468043359331430692414029667846973845393586058667010140937327745691731095814251782874191743558383970574817322529870682562589943217407777020862226511332715153563598921960201314822138674971244070510437957755528727436704592115078933857496642168421764284882526418232097242638740393641439179569470961157836545017773065073344976994334003082100833447563566522118585239147362268258805098871768675035111498097432905379511087619757001664188995491244024548906744716174084218094468757687617542126496067550295239954149600967294000091754987658349330095298484410325607975058091781193128789207296930809415971411844181618440318385610062126346107630514867915735556521794328220534891898664901171145739623151514951374367857835223078214283656360625695189463683642023204038208169769330522000291438868451171023352933547376198993181901457732448709821099037195645740879987996965878400347811548761631212063597632210436006296457430357295350871552157240589914246036305471072450635395477174662863857541774000355515562652305389071056812861999733190297446618299694403552737994046529976159904601781823914197695232756984699942690277234251452532194339245818824232581642900811628897665408171841627479127714907104231398948763927856464240017641702268075331848140786240839918158007828026530877307137016419826358776978831328550949061468967160631464186092827097623718487781752183847855127105048177480729426746904929758420977829748464799055635210275196593658974800805041279802708499720634102034023410852708452649913949531993519551287987633261999778459430717266875875693551932363047820275911960685945508518083766758062588981200408124546431119447608540098583025729711223081747364960367317497878822511353910325714854697596368927684389203235353267844033870762965057999955543040397989437526632634435595990446459146638208922999959034220803835931068381713647719261299656633895823228462307396625982178751612283713013299666078092076229258703841529401251082811460213309291443907641022411604758392671149078245294420363348445526745856699481579770173741211924901607149570247368966738710104255747069050919545784970985432486426744991840116257697275550356804021981201548383039445406190612375399425157806126730313730741517710167286566275582844504039918486920057582977196509855826708349000863644066666204987918853924099293426746669757903731740411992687496993747993752453532493072856069496977565334609878224572325703574540294868032715796260733383316602740211617566906444114714586935988799589794983130296365894025594393766028407370895689734039145713809221646814923885065148869945879861251532783359806473974933181758972194038468667817760346422681179919978885834505335385289584938224557873211119090155357280241456256198419269153776814841832008599062822314705279651831433669222968003128156968691675931273109934221071282562165815255762215746113985265372921425232776407054659216481794960727361558836046885044264871994997599298029546782598713495335436073457054587839219662299790383152475842705430672872665898974460474601789740542449660227441058656015526503647887318111081674701934453120123222224336035212872843739984342411304102580738549989709212019685855567955763903787396954866328454486588269287787864601486241030133463338590032312037718342501184109278406478090946157039488025124087522571727849671222456871637557956072751984752714098731276155473110306840006420964277069665438480992472577711141582636461864507850454218542501204558701663776290747519258544039629859508320205492836342091657108805269166271648312179690606674933091925044924248081839101104871534972703399627266406143095654578717458049055281710416940379770473448634380483294097248866028027563528031789338860130384734792198221190819780162080104387067147808923707010293741982851232342590244455774431674512291154087529741386180467502492837661155897262040796145948770733178726595066978045750229361248718612979651546884825833940183217274348149904016077452313343530954075356757541065858110563266727350061869943285195028178126028219130150396658669072585468163297261580925118186821932637457073623682383944696244239505006524957158703441133876987067207375579115878968835182464760844720997597122961229466569252886460836965060654829763293810373887523194981779571116569325102192942919147890293960828726375940870399688550750603402917279229280262494065731829336013590239792374854224896140332487954054310827300317075071601456299901398748611441540705189819937106071309903199297806170741174281518740989767919802842114649813589071223301763803139637513858753655841571687701976623066952604714160035221560726686670437683878875804307512137571917291842262426306931639640151334645981374822118442463650238134248059772281517916522968698394790703463812647493252435381966518674354913532602454699128623012427027639521185998098185958348482162777092458167361932521878564171963583387884844897227098362105900337078214180194322162794987650031389944426598500399787795529739555554927369295922045877377916160192010483822794379360191831276094225880158931726589684649554276903475431239082580231160407045604323172860755602481134696176777585391976067163401070903951142579863471126931245708969915316393400481842500671950822694373126131503599342764815812026659451847883150555454750997492799437014863931494066642070818572745824957298779384223978164941721903479162262009386756267154207335437475353858538316327988936054240155248667717424443861044465604462237028661666368623917393915051721664195948664063434023404371493920003034356269015810137675821292498094983799433677304064605181242755558844787422330754573224354175660388480307900843303078253595649480375122640249567877168959260561914165998174027654119567611744383224253426824258899684342306900556230688546381920565953971313971639847236546683015700160379846217644932619076832336937976203009816700884419455357365811759650659121591295578550672281605862346390309018614608049444357960164189867600715411671774725593011451650242484219417340586958414904011326816149541809276099620212393550963759233204958153669157798911242183389938942873914497350623758297097298383589517376668883909883777621276354224156621897843387875797188711085716576914667843188238552729106970594391019528305434792334976878677607273264273007933672269033905215186545056700469415845665782295259274761667409015114640570101142173391039468528095153347159457003277360387566588343755682143914702046665985426483978354616132284402112149626192955278286769792054044997989092913198122001336668061302995372522900795393699359532299082974218043179229085259731975974443510290554381432324783654049769461981421861581504732148911130495392883939259139532762639981973518038588761523194697744774370212323770854203932835122368925153931138734695958228288219694785422576571468727904142916591458464891890376953205591108182370877076278575986627641647932748479696487330796068192685438283392178285130885370422049436491430593664895443004518563532703182457329655906025522506377915252584450112846302106038599514307677002814582996700767818095917321990656149681943314183599067939223991979041874183329595780495457500622127980347740055664095785141371641715653601354845032498314806778118854799212933660556370301527769713695456030868374351037279803990215561316548582106676910624107313019463158179175866488476361371033945452853334589591197586880496967032218309935901647336803492700638884041594184609036676564038300383597949932544609851751189262887373947059903403575862079786539386844962809575782935542342914150267346505408745331854656676830769863210396205722108294977484417939658278672735243204521443048247829487196192552533478345062624501846056206929039113605012425052717552878566467604991637692234825208329420959673695184452490377195885814389284424478415746565502904438712701748582182036244440168379322128134941374462482796245195181854643397984848716177438988638626728836077971833887470469850682247999205160141161899323446980610903525950859830380854204305909330372660535280348309908747443526853087620571102835901948354168938630270309471211573843616842288349111822477881271129505738735012210403950086466910588921180724754052483084970735995600464314098196632104071518957646370630439144966923389849301598182677270412112469713708486662409166136724593353756570302255153027053027418000362741800133732354573618109705888679611381567064529124266976443361837295216460430145834058633679918796080335855264655812780721072610871556068293685755737327241057718677725110543895112503984454903681828796036738740754997276492239574501914553203391452143950985728573184017708857234751857122795831982070725444610934331011242528118278832976195803874382893451612366057086711976681651619298377737795611874701946506787344930170695400239275047250930461877168025184299256587053574156305436223374485981489610344749797489804968211630276066770027246468747544448703625290697041696725082485240682616338174690605742731991319109906620708051062899708404632579779971915120003881229501482025219201132848050646739431837854135131304649218157492528211950100843444825344067834175767590371305074743299087202836749415196295391699741561621333938036128678504843708596161824168649662942612275258547525294097837617483708770401952258787222970926383435915832617545235274344536442561871803996398215927713782052840132237706986217534884328743156184328169100974697595082336415085794916934136056538282232918953360127345926431314469298499749821563004344737263731782720557521909418078006442198639172267706121988570537532447653612048696399617898828209740664487500642439155526857848680578085002738262828937446106676411682339739246493972200027566989086132841945717610274877032077705785622096354347295391734242628473308505142549511179682140886711008177293857092919935504280134018178810701651439139534040431489513230835183776856204896532372841561066953622906039873739262790905159281905687731818359448205335262040552568845303035251506880908338517458689289200993772785059398182842921804646399178277596167520012819432775614694635247038371512212373748110158722307518013263858998847136090496596372171516213511511281152860754792266672140852211691616210334171396486574941146987400441158449534868222762492000143433339809960231359547355164376986118848819206262444781276601368405021276264255861464031638437576956731934101745992321443303881973994415150324018123447488335992849700432786125146448829586369310793675143387507084269898933110967725389742883952290822270635423240402699512948963458384165219487272798081974127363974427498818940138349556206795077995939203218928462402789812395238942976474797878897008890261117907811832780003205852568168843363595740774433530393072799390802141706383471764200769000483396116224856365936210897219564653400734887991813575026197858657552294452058717860723389347852932087082932606311856312467837219327098178564795082083781615291103434380451811809424461737806795496880996739778511358439816837183552953329736924259640698333669209382074315641217834351172108886737304019429748567592693607622953068793137317920392294392565597333968081106016728602541954293778018067634378301366708297342800501922388352113097241304869093835562618609875519811767320992301746201715097533111039641773408152223679490247555195094663852928988690287038364988490109127968955099015123485802884237614563423248274115554348903737514270515549366953350589698678114469252820400514740775930147456126661004116589055497655510886387712770460928800043632879253606494588488006740917324298703191153984020209330443585788335541867028915682588169648563043268771702644216328065098978843858964670161597947244060312733026816702250075893394139336038121212767378532747359688650262071059378917790807870501310968871998186077106069219345376556837923297623875513883126239138158086662732386025191992578485388548547678390803411021513876550380970776832667074814808450814047937996783642981466047400802687770757962334652673816444587637005189602712371447492150247246126023508083367012713781921677991136416126455508761766240946768486977632060685573734107743229540726251956535317157082071221442977094806894958774977007950314856162837122628362687724085065495391709564970667876920446114603867808636248019571585477316165833595034716893832309427757995474625473747177440637014860079010629033287789911437499402811110126755203391175229818435684913436037502914044412699894529457342225078247283404198376389933028078936355864418101366269276699695688891420670060392356096201476707072536492625079028039563160306222718060929538635933119569604880731097869605141905531892072010037628295205948582865573324840748703045935419293102299482806032718317398678877820547087028690402479393216635959205095804958351913516260271848375758303435963642706784024933401500578161781345317123047514579356817859035523452522128816800615155526380700122273212611909722091887345632514570865049774599050778505029381796867032974799725452477158431105400514690220203301183622708260842633732876874797249658825815629451997140600698772929378420328057295860678342042545767294494748050588264957577198173240886424488124973172210786454367809275216152085064630357336844228144802337730581248824286001587128112712796976334352793778929548938995445013251666649701402738633154622452386875797994162928067893544271816008727753066099087484152079814353269637906128817607315774576631854882724447196801918299741913819098749684250495635197131369491525323833858381682456265058820242625827775226237396039386619495705129145883457997863201033055826318278922247292185511172247650024968042299239191900025276404569158363647288226072953248896347753096663825896863773735718240527272041231336599432229265696792350725261339379993930507310145421902976251072633946267866334558005660486727202057064321739607024011208359416481367279682944699773164519693297886610407290674531233768597792570226067240355701615768841868981768847117715534304088635813404772857012591742027874227026021629141911409214560416755340627047633053864741213802802459261719053562112129788775575396650638745141068526132621602767583803211247005160540017210026043435307780577491158849926992548066164593913100744786840767432353193457482473833956850113906417574938548743920747440197664218246517742231958563916058526949267617480228622066524977585131101229699801560187441943219175164951438085124805628436391944016337564296887701293259026287876425782949911228141930438646747985642833767851262109829929421209287127718124464484468659156920175320291621704611948700705064142247412951801567043240740536515541203023961498531469565588019628108389904924348633389293539906787754432196588538723303243048473284053516284035425246443276396885732610914412374446200070426951678804692497625778679695400374273973996662676366408380451501639364323951543635166682002549088307060011421695647501107564615675703521011475668781769759237016879641468249896208360965752244685437168323526596798930034361704214602570802506339243062267283803802182252411131299047427919900151098733448094988036791157248269337696011094266458317258805939001161674616761820000450223540027194401945188651298718079855828797373433113227995257436018424019497025946116445477025476348944708563521537122308727554303501352155429616894843529027466814032478887882973937300902266261422003613949993730330365231097112441171713007034199309100951760216687628504032975079344691686348332932643886795254659012554526004418399456081036604417280807437827989173663440734562967461745462910250374090962613767590533026680075870199613989248485897435718478595687729715358205080092040101469991035925040111220606837560690557813459065028462631796442108958332992497954270950885031647491797548673697684149460728788010198727194525573286653011873968265638486781321237820863196950169178297425800705802185623060062649295396956073876376376673438006961486151996974916943356132900931726949822976225707615122469878996153764922392399858749097625978162138457957935727674224940591715748886565358044260834056911303322673864230214912383777607541936760956393191493740727039347125683316542486445145411131948469161384312507380053905628858879354946171311856430643840639246468556895827468614065247285162774015051305827634514616705215629000600510067488340561345534239878169962323946840987929630390564305351787113036668611310417376666573577873098568860680342372601233885102976158790687924260600330302779868426072314728968797090007127088192111816682695187254361861139059229804956100153431751434652941652642542797897367310203679124853590866603014507563745152304915839431453221244379728306264389913816978374880306509466150350717967185951840305914959047566950957133655630369931075898625370508819469005989608681278375403534888995572154800478568506854738505125354074319381206519668274875550006165467045271035311894914744396133982615072187765849329974462156807245364862151336275514245813356703662863323963623641196241293753299635669306620279287538602012871484480683472188526528521823562810738071694331629644788644111805337678752641856610110169533480975059533017648705827469014009605838802554264684365632729003531861422013745774179355057206925845951222357541989396928656930267382605749258745462954457540307018901954480060210107348556576036829695533099900302039060301970058554099328329055889780805431197976644018382109541137743262038028603295899827374506222783026841459353150930351959710160974899031652262677814087271443286538696214305023178106314398328604027447397638201449815055458537093863746149147872641769477058121008104390234718520984869064922253918573298363412381363383241368003791987128602011133658820034191974837081798780560878259449721402207024029786317529384376345693062275509165456471393120210820964866607594155317123010848457271927199587662121172875056237309368736547071816428339658535873875684567993354414810674427017425963503216480301320096401038468072665427978722557401215282470314532334875028978685367869055354156433317604585294256890774459092064332886402900621660232378359158303687119334311200637239505096929732668568316607976034921473684931425413473675535336036973594153017659858283006400338802710894202102147629854513318032983662683340336791870258798040821726077917865268675557554045848146254082539074938540229277237046347958860753311135873578678254294932685884683170487996686294476797221229582214269436724122581237725789463786394430702077042301808917683130437750588832867718248625088458398681525950968398305271653553638108605230005965411182572650041213369480649735059419517306947593678078603921081577710551578378544540605647278725515056866377247522661228980847078786278811476524282646394581084225279285375555763913242124145505097613929667430337593546024145088845356974393393898174366585336897704516269097655415797010042720086137441003683888023814587105167008612180871371445460643352647522862071145112831914887208719759930391198194737544359868194453985472243204415680580898793537885623626246208549616582174737392991700013771273814551843217562711333477581484164063735061946190768707727490747029747596951892561179339344669046657107862737005900305233630083360202510240607165461892446134249394238753437392148510976381535889655018502931540698303037330032997951185004771617333737900102989495008461533492534683314482390098948351339722510975665026666624925503948328360265765314760247045558190204503928272061490353384343216488650819381524703256101964959657771357863085000550192753957465444569613920315774432822817889913865421710720917909132536857789813382968963188987188669325145271314039707393170697474873641778245232382443532956930565644215100999300735319843532938889406934818151078006591570840401383998771560562869996526578181680761549340571117543182732471044577612401878476461109480426214400291376984049008993513731090482550729713208939665855257568546308202075799224649108161318897233440743194746087774424956373117275918710776521891589344106412853598614925901435824734717969563746771991164896575251758934433099373613190510982294879144082479889160225656132722375881453061919133272358217962618987109396584579688853094980248028477931076607897863648203864091261078481008697399966808884245037033787611374877660639450815773388259417843908562937391297936445138152042463562760358336896172553646107552011128937857021261555406797322040047751353821448331388753802889571200464569311807468489004641046461549786831703476056473457664687429805894110880160744171964826530182801952429235588878552541489943702759225812143022186240099298630832988442979540070173527316586140804797564094120682841874300899668633001351043751942487800623480381595546709188308787461195902500263112643495888554296852582877722409954110506396074870973573654732533742253010842909957926604444926763183400172838248919026444079033236733344947145437327771623775260753549390193386903712728206855554843453501990829702553286442481705847690297185003962719338662410293460783150089423838149329142001095535012645455923342364553781085622078047304582548057364219281722521675562394902176032088524315151529316096748461909993359204996859938063018488715905105540529543293313963078562127229181497145838593126690915542662676182304387554414678045333974947299624510040108902971422303539178840187013909761449274005320955767307479661999219581910500862744826630770112078663734640927353994687297707815744242096895465920484695288357341091598194851096701753688982818638101135773402486692137752865294221420055021387344301505629896711462814513013123840569608064611215956882060840385744690759764698776159660057252956332420457955965108185363268762504434046115374151712190184045886462231033740213859195916186338155137095693882880933148377486633932053681365386732682373779646751806383183237487310492731976540477065474051492539140279408197720599715648459117194509964218385844619222432458742098898380906472461495583355535488830753858757027486358979925229237742930598355604555415349278398066357313693487525660446893606592616831760517595468987560347514698791271292544660892542983717501313698850626879139795353729981457739278855812960326900495919892882560745023818278477871415237326331519304510545731365375730208344426481723274674966180702523553426249181539133343824517492625752656998604720984469902572814597363887798212215595824287043170128999028343865959724415423476995325263439972138300725819098003661731747577054589177683481988888295068166690071196666824912468261278538548119585720349690688590542054669257239103444408428245954823103369667328358190381790800025358292836890612009177861581310206323998358076050005897706106538593021450708467441997614340815621398570878634934945047067507836686975818605098879411242342572703976305743195585665498242673423637229564947154671085649912197628946830386320295565796537284091684448348256779129847183541416010155896047173551477353041566765162531575711551037043554100231292713739818826991367196452195962580146215254651669255764286936649048494218027559188829269043217430553292962384701295066364464798651106746478947082130059880597891835082112766843287498294224587050573154480592331160497282137865930251929191301016883872847430494334626791433037207540082003794408162358755298730325644548514858035754891058111063809803128298785403543326730272721388231352083573715728032700743518788003125350788568577711352277177392089082610752596747311721371379811455878113513187899495417108318994496740685125540947043722382804636315134599155468853409084174332459453743163529485609008262534723099896899137175184871224558772612099003976188615799046380855608357026461005450216726624737435656371241919133429593633983581008778418150949026728516123619360502715044348269531790966518540234711456828305415848032304899256069189013829544560625900760311091363871706770549291885465375321204822126141998724979796072849462913248033692166343342835340383085952670635086393814336000167163474278725296475684253976174242181608680069324506153791898561381248952304933973081606062640515300479891553836053371449367317711903906625270261061179633603100549516301051673408475567317323417885661925801181823984091793863366387621038934636514930532697192382051566937049996640359061580815222584964905336923836256492424043375312167758844813757246335597810573720281526174807197047457841878581285891768198215892364321126106952861919068574411589087742418960333036907841706202639943496766304387842999114696969163073927278511698150125580254809638282422779214206517691362701990735791929186040419043284521443452077127020025893969726822222310775336556647937424478751309250343338767089981764090031316983756112327732637237901727084148221091415311518124747863593380291863393166059969303627942071981079907197966562264716271573671517821421054063916861319408418746711098532190148695135082200230862208070422759695579688396555129270360140273731960446869425429513908242914885580362127121846388009977555349011820462477398671161709010520967652496717097184735419612189062837639316296972551344915037616792074717133240700322203020902307176037933875319949290332305896000550958574724302906948395887580604942224603872479487788639103154453851299867850702066124236954451036204200467654459723114703063356351428851490896719477358056426987395947689184528934511371718683268069265768076856742047026592154537010733951189186330701115700002516475499134113599079400631315362600428767809497533784809305873911403819756634387289348412686376495574334887818940861416159963536464622767340413026833471723179158507350700861547987590934325191723482233715417443661918452359203245720768208692472411331666382157980609536115317729722025815023808082417829066213145350848906483973326794068018065079143642713499359561131193401051749667236879153506528403056582731191138080173277068527559528223971637233446209747906043662096887310467067287100651687172607913588483959796682142038696893961354182430911954146359889237919322265763214827673519395705801737185825651610838965376451872395092128587148056415877680698921057578979123259036704456888576243995095106216026041360636220836282268105287707708050724977456165407316224572107886055233751776167241442790013590354672171391356392445891083454810744845472017556171430365352348168091759727978554404564927951753391346944747030801261944618479620514493861708059691951967363263685226170128369178899147180116941800269169118025380827283201747349044940560042512725054993658492845625136878878349112255247458227796711555957076842091224848540184934738568820244460961240546459043869594851176419131758073228916519589723620266710161933023340318710888431987158284260980191159059430046657229046138690714401320998689817592350487881300945428036783572922243138243975260650355024025488440714566632605796362923891800126753423171998668124131732496707782381689997349739479039758079248296989326945418557065901142713729248232624847889972756073964333375118450056101759205250423710302046644916561328483962219541395967993890067422664329883571497277880742718350645640969988734783847971854807978009699543304668541386133619235230588308653153934214284586661020289228361796421228670947248067864942523219304142931419644941069363191759967668071405529128687791153821703461247769154976885648156900376687408774256022954676641082812096993531353181235207008525360211550902209951301835335330725957753180541455019674012469100786881298827251270357008220837714042053321015630350771405974442768790242091319931105803354951795200988789578003461158724201165714001183756176605168573121043327612515847495397251954684032950727889301379172561520534632416174704492132613109832075739901099705676076515237726749128878943685443644975136832582689880027334474284024203702133585684965982106381529100328375147059630000311116858175145845909081448372394727704975327142309267974293594229970714737778908803121154478896394606649185086852651900561157318175974617846921347327106939545480322633833021443210276535304935702642711000083032778928357706103448419228082295548759767199041933284799412573898168311052545695167694488531686072566175659858777413597341290935410885513313683005069130986555347856524639845275384055898543366489721082688948918230816105179148257286500626653176876142314868724138049444382115957794630943974987601346999179276540993804112685398115949292577913699884234454169084978671323417858311398647247387691691118050294571035023278953918863338189508405290083452496273722179175069462106036550225788562279591569734484818996839112859876928804033348047546090175790606376682256432491209921953255066543513356516862956546687320579457087359146469675565176709668816025329566185460957250227777374708189504145906703206259110667727379748872203674404592638768775270832229119482971332077167038276898025779485508135514638330194298003913053498551692422263799888343397814385322823830800520556802010838208527641368155359607204845119015267000581810348965906642231374785101693837277225221554009825192367732743963169730400240485470223060235294969217500320308280577297226239746026732837571967138788486767850952177719074088218434143255228192949481293730584147067767449671195473014566393971485977916359061922826059458000639928617149010682453226751063268746103804925305295370973926717926838818706021671192075226646807774925493423628754884489335881910028440250666359114011693569358127397888543165521145776146845252820952937501691369684405927579076321346837399035791402795634176525587267969754872470144347272016753604078764335826022751068912670535333565807579410393985664183986099080128295699307542976400738277997126892526264488173627584128276575061831564081408774323680846247838067503362413371827502477494099671204496485707558927968320627422338548260952411839150435438320087190038912956601637515735538590571781022438829412932514937768812981356923185541687501933375928520791634364791917243582787840414609816470815116118497029528755806050403854016351296093919397030241642945518356661507531960965168938421844936993184217086599851045832306236046628569552534659450602699421619370055349661827880890415918414086934629266262324927070476413530726287191785934489476317879854298256812598193017559087131449862050560913488810367090434871906332821313864425612568045886662487345266275295660970438546105358321462556165886896886211856247409804068051797225804898509766034281608327466754561913396032914581392127943484297585313100950418434775984233346957699749523012127072076512043802052609325661594296714538545318241235347834901659237910043137583020188713169935350206023100988160784669262268991138644623810544734986877032144982586899256859885228190461278109645721047592122004810548233658432254487958037058220129619059410301531095143549195344346664946219495327679896986111721847334170161968549281960036332717612859383600264415929042476487746665416687269256072726000292531068495857686962032726063329985477594037800808999525704075465268094997776667381383981322230914524528674221569097991612716078907087101143311768576103860499903084759764181550780585561673683310525207989000786123598150210563756598348944266248153999416037619615100697457820903822711650078674190349738288659942141022071515626976342184058237411796928298924741418495714423014288385573307845656832588942832697047851849130535577151050684110644622683060110319944015958980006335775417781060969025401132874724293511227790752664296300448258894790846473340786833066279668063013748697954385986020704865758605033407213534190893239843308011666070556490653490810440933637388490361937265649854682348618551100646387429989733797484281285397534852063709893331967392634922917879476837041576463025147896100886742682160850438219856629172169174509231585344601793638689925818747340005622010197012034089567778687094344403339692549471081099306764670786710720436499479410978608568136283292270833769312795497184996534986668712852624432473410689436536475820544854452353610527483976466806331191430750886266657930535086742294001100935794611434317703328223896000766954911786616636881267729585421769875199272273794260933190881378738601042674599904299343005269498825267525006959845120386609330089201565498699615223218778396129081016382416500179682819632571603744928129923686684939738848508724470561016741376534874132355773308191260938788367223386397449008909556909069200973557723757704027105754364750386076587751170293983944520916439795760680638814702911880976989764525035221560505139515839108819525287744713876560128344485486505179573637591938612854158004577905724808284981547104644395702160167752087017184920030082133568317755757510979536576863272981948547106622620173964272291205599490259598746373034787014893636374802147288907819061054255554270292524136124193008619059113813396842334343428648102258140462893903058365941132738583843614094594034456574275281309212838166322634589668703654441684402435782894957885581685584206367237376349309163814350661105541193017451205525635173925453806035766072225237173510379743570887502211376948060293352828316260907465619048222830739594386602290007588780092553579010182234416378720086922766876228791033398898948074988107923488258914360449538419649361363917650718000567553947295408611046847108894572098031030109935315722605873953635910293589967180132391898055540739338019953650155906674809544212135069572801926155682137748876728932003650840628691953422543212818140607147917079142039609552967894039737331330071975914279807504565716017483108669468973470690566242814675051251331325020416354632510590991465467976616009267620476266556431874212132587871117491629994752519842387309489847157917952697543973376038397128387739459805519535461738508109178915608243963243822822141793528585235507225096398014868312284065342018918055136651426944425858258856376807798610066610093488674498859655587829434413799647577027262951383838430398423655963713254704682452871507764953269727122192576999759192146311022581972741618012223088346403212644627425818949649437205165029253636415976333886517603968047464810386976278116203088441995435523818529225362809026550477098715151073617610113864316660767658544037904957900812842084705317488093483595498716757350791619504917327756629267927464971741837547327456816634010340512071566547639876051370301501388938400246257006023517241621995956136133397564661365491799421004131765408054018853616345358209788293901678722572498644883696370721017038615165949162463762538570654236382078728185163636497494040194785147392615533199716342953567432379717946155300841586240436453593423449231503147559209117198166393765212530282922002206976997754291292045456505318497286298721873999098728510385804937513874616308186421185764524162415351704757984200798391083569815142166467418272279365170117776713536157741281046690776017375821224080088224946669643482151594921275804967660979350734948717745076024912122365701720775728066280290211364456040892547255107714563147930166209888802176969576014639929635871495673177367731857376316190008424914439085399700386748369616781960397222461925080882716259053870461595459494868984919019283440865078284305012675507887789380215665112546741871396796278481118532532628384855760765354624726843071662609778799231326826231116891717668968670044559248278215603279452542202246664828281047253874329530253685390280186004799436938366592536650517302525808821417714824571686118341119298214893876804725233553683995925223018638365493217924469895344888092944171531234119485084281754802995464972779552832299141040931498585807172473087257447389127971411889211357573561037207298047256821519986935425719327269434547679884408398215740676820650513444663030395730109544921190053193318945541085415213176941421400674959406506417134913569173249351579875780635180795664748656232918480250117858780725588497000125961440479326754034147364815614734165007740620597862142666106250702668118789454742852721420078968339162573523122070122724370933171072017068270193830392943248648714131512485954162478620103488024896802060774174842584534710802822678752328350138057023919960908971064428147157704468786887649005729946493647871113279222836395281436087766603751082626515464406485576556430069945303854158760037920853936070620937169141294753849928829459062747866973487641941021792779653272321824165377210421901200763795579835192451566263336653293219606218113239383053125865719439955642740433774266587936129389643410556058300462677998196866952095704697734357635085967170875312697097205585609868435471257887257064092913716109539435392224875198453780482919162404004169809889544155098065735125380092053624849527064814411549093611657462450948624937759150694270772642200683153806072766219369173825940804200290506791565825351056271258944369662512773649648833258786135086441735307168561151942613323125256745843882532246753326110866509923487531004145980621816619639917358122812930021911692637119781638211910174260155775842185084497558253994175499577260398629427425034958489954258006414510665466883819316692824235287607770978002119253625633900523814891422308295221836080315323030477672601951653150204418286187121271083155698598276292466831706922069013861941032724111579005247934027346078677584971464667013753928464360879017566628665756414695848046647911989778227776905050351527606663982900759426294571397101745884427261316694425584154093723112564235772203527995934513294879551800217544210543397007648251863399800245856126022482510513565224135430508648554454518816510662481362267509130147428415321077072907500613688653200364300737967155197477134174108612802875550868047326020294599384051858904460869261005054089460906810136842303010295439669064422974040440867469444019308236429158706526757984588007684333182791799872692476328079128539508603650562445501660595374061326209714706655087229504530793930930050323253389969180136434837656145554279451954374461289263322892432705858083796253279194705764150853884908365638303381323798166651344434401824212711135872487915459518964371296904889023359440900273785885614325531894951329132032764693819372709449076507887716863461072377877278869716207609932349163297642264540024769794005675426772056228619956202019064675086558739983044628047761329141604149999110680237692096679734543095735547882472739821179179514894444736033160350183271870463417203298299547455517009591577067121531908846542804036598864100942797099174990916279956807337313552281149420167767147997497487332047755697183371891211807572881810171968578970669902599588124692917506651960733828761642435390646760414787369623841860652878275219563203447590231395913689322979126838822088544497061308700816572378183243196544115466349698020914545901673069850739947144508742077371355885194963443775323665629024647989118593469044028463974220913707373485877894564091335615835342469062219234010769567203116574059309547172154702602280135701965219500520727493644569454231759919430124557634103957441586930146828375491482948350476223961599620853344955570424511881303597831514838847039464157719326871995274999738177462254843198769453829655839903578395766812670433874130763256409703065359053106675414320813246890094225139621783693676242834126367347935381752589334813064936416750816614807213871546761829032114459582971506264632804245643734106320552951376182085323556845259196355281199936509207767805669513331898852495995715167587650648074668559390863676848513613032959496825498058687763860301753691066912103316014278242312878832253449004094404337391978612510229257093872485159334833886184208480155521797198269120289796731820277632011332354948476819717246871449117557760480585928209141647816804174845611326236098147741104891489328111001716034244126105380441045365605434317912888817180378832670467347851733446839555343407719923986864971937148307948551258673298595520007775477225975936108242768505980123489851258934711137847372276805730539623053968725259944370816853679209425721672844780215780109376039496978049437871893803960552151416816641439332068476957745315346512078352406726184423089450027481641501552783892733859839739145453307538279659655238269972824271593475417232507632058780308386138847868569592219044365953558453734856379365149813481847934907050920740897949123822341951149061674339240179040003923280126660891482501579577122923377070391103483969863191024479797097775343181184638784096781059061077073651325665256556113282436501977968467757519456214118275950286080517524327466616566679375783804943803974814383567864825613422568458190781318092708360734028601559060706222190122405679094671104102537678951988998663001358272913705369609901125422236268846738847482579633809662724617165485392250345128396996839838871509544369567035045451190592755280930695264645457932955199969080102079383747545398833639590596665417063688250320628152003844340409331263377258184605995796575358427171721360422565273826549556941661870842304650402694349383728260294334733427817588075582788899592531504869168202419238769132555281405205725583266286786800144687447780824508689376695696199599030934637707335712683990243234257436244452646031083263021431707586282050448615450913787078870236323881552864793674159085125366127033036345017647754411066905889649994850916864547996824055135431392683209762288570001108578737611330199002136773505540860048503935243573953656715880945752073946476453451713124802278438461857782012290354057048346026278368918032863362661118621983529004677534523899196643751267709161828188166562495728109609475332423941857679769194251978413384199607687973902947632139423944382406858607151349266598528888098529819536898958241243764264200754449004711236281516740577092713633852061757068168056052419103167147717336519584024583735319285343452382500271474308803830725442400850353382623943414698697110134428949911618049262246694193023567789282108579451705089116434257673813682565378539130578952657269250356374805908137011839959433405537454734574380033296473230954651724671588517472807292526661155875781475626524054345428577124293410705346780192790903604710389350757312588151452885798057121472232770573061774918834020944812616211607694368668649671617620717953282293546459139794016944430879486595467764380059584326427777696343566531853125580768753199262521892444299393561209309598505572161753327500700841892880338602458426987781375403978883839347490566362620197423378610816135146241043617047264787002098503188621714129865036875717970737267759850941691907917876435661831741654104993178516612927696272505141154786493526784943233294937035759899032318962837550209121544712760650064436479218856327919309918580785892532112279201169155575862873946556744508876124676103121477266672234475700795247743661796446964756175999033223602425178960678981529151165591087786547364858482308610325677546918414466729212321916649146484469084556459301899914073131829185040045676108993870107596125570770674527970767569567844688767001176388990841898708246025938232655758647291552086884479986464576022924801365451916899898886141788179987950552424298771240130232050342005244088615085410142115717264418726606857703836084892592213965181251021893483354593526486746299567935872994335912516117100359055740650760683845717268147368042049309030903281120107098124019922646067102430286130396735313592298003110663314423663038907214142930644737761382668127386807373706276968097084494373161050619878767828725788530851382802463935489020438967085764209939783936097673347216670451508803244388623852386157651867233501851993297681132315222482789851755263418255757936714908890388615867251602401466681130940915226476475741546362119137969045058983403359134655618961501463786183320177235916926667802464258327147937369718241107105646567668015150366362344548243973422764993503813818082668722439994238666729999023701748752881552804469988529765110418892241862809207848622694401039831705397186622101343079323075569363259850176747691008156321588112277214916866618411264534055572432547794818751781908580886363656026666535471052839860847431603866191399694929988507435904361502011585548886517490522383998978134684723190975989089187802686977847270927381914269371244486652721868264907102922140264329603433889948176282763278453827519719998581105671014538679134191818254009729674649873214315455355528183364193076750888894123503279427873073124027430394770800452852509966069785806041306997619425017338725942743619876462213437946894830566898891390792867226482713660404617287759624074488332425061894963582763763640061458474298564154419298638399912034949408621030412215924180816878769235789161143014124231388206266776729692798649717752988988108241739440784422865135858581655023717597395124158697234397865490872533330341178055872964371404027199181055646010930157697659476781330048522519759162484137445888364897702103199600826182295604632871911695984958948828661736145579637584919906052971914503580211957726138074840458329965803427691575165968110979552328415627131141450538129764874931902257752553251475615033468967198032221487651822112657028620115956100733251710197030349717116855510582467893710799231949862191315787143867178157480949800526704271383758440021864844136791045033410626642448353828112775215535568535393314880768105044301602541443475353271279303160247957418767041586455221521049284610899835809301080024266528675753306225267202799270801142928219669120065731595888256761402588746840948460920587983455147320784203205615303672726749634501108809641455598726544592474812475570467661248878947271621526191832076756827805958636586184005174425548184284990440416698994829903766154711074931844257361804461680633051217085908251690443344419143292361793861949350766531522703598033892540527132814194667232649839097628251187909545622746076168217822125336436366442120970083337169549768127968134300994296829687300844178057935150587965762256714785313490072729403333115196873386438100154253898217994055593172406141989746597591868027410448990031387655625382725264040199309705119862911376851113812023359114676060438606855561049315343459100224421284965472406582863833431424664088559305754427815155111405966275034584095184952265955859371264477252414658063728418328879203418964683536582330096244724362225635554874947177798217627971469795734446531609559512404983980067379396200005617023377584691938910554350810780947304689006701063277288763636746394488374954786357298399454629729289673283011069987224303030418072984159211668686293193244783889261503428259016630584662931390916881446948745057848890543396284279621176580666281616790003245981540071609194868883027639093282459409842468955184000044476106362021821485078362652993394602441704204081673070961242707019299768947914701367150262446791140954552039851369426643033615166999494887638072656075659138365276706028236851512563346655240630021211691127304011175838412557204330572334064315919982552916493230840338193766826006342928334078203405877794659936906501300873962894576365912842755317604927594397251006312423526280506993923054356264754511436186162471291309460401565616426969961437086792840175036789104398637756300375149734504079855421463563862515801134055343811679104527361324748192485060703015960096666302198706459579161155108673954488077431938237280835326809623175424016433393019256650447794822721828105748643814767412563160272921384003048780835085129417625358401014287759680365887139052181430302918177762996909169297555767610139528438369776122827811961394756278846342694369552859706503632281792665224196616576070187834863490185161935810794119637144675157077268784719517089593691691738768764358691076842955983724650869200788737076455439832097001619069257973019059924310425522581162365630607450722334433977167195717671147753074246356967475664848244714901930118621240650342142981130611793146436443339325904487763805583525283871556215870379944694573001517252384725483111945592925614003334990363732626958690361481834090755408126149926132328237342095560649882727699907899745515746241859635871997203461853062636650053325578142160119146585541513899691062127761364884186419377808910848475336656170817642999619213906792337680812791827748729347857581169155532950913628614128582842943281086858339464479635736578481505737216534589965286546614201746398359578292252391337264348147126330363588623895370546011888450100622937530758869823027282769843345749089535625849774159103234370651372326211323221219765839814434464273873613592852618885661397416809301679549367191138109993885724905267833124143128203288137084916738267184017279164195696738604931127719845578420680125604826330173333704215186004625522883093270389712361162544303151222965409804440805742019112046933422345660174511428346170028254142651089745510786556259484836267080686559985212544327803082882161760791499702232536597852177581404275725289780736012744978286809408052946085585710275670405707642286002582575710294641651721905223880373132997827568882578434741850094169051462918013013698833054748655365196722731156086081201770106738122273373423705957596071170739520528275849877332449522805031634510795986844041331809795952278504238829900614466498682709105768998198950258454091855498426441289990719301103578894612425080678797881052502341044594120866528949043535369358449973651187689612411264911148545218754805137976190411583019543914971205746190535927517146412749624579952328872729421972680577781543974262443581185376249842297380745466870689608848773690003795118572936127612469139172954052343036392181368607565771760373062203892589227350461810064353110212313081070300933148731999083477964647956472913030918475100261624910980043138806313064539438259506029076257899104360685686502867042446131606627373408203416188029041068543775084792321344680273286744235907680040076668325661211694400967875345029236225151903981481574199740240910937608577796909939969362785653964067637969183904566972359447624726614160179825922024772641099834350439226604593857119440088271442845944961158022085163922221640005015626748344612157188613008039844653548866514792652116081745959131725891643624468591645213955924255031888024190364956101219586894758259333228013871482781485457631292156335717551434310243342624200514635902845090395395315881742951572303283194829470072142839685417178998071088691692749137381971119739004547958391977475673739821512036808657435999568903626018131785706080007093935539069260521204882922018867912510167045124294424569531899612506053019551638634318578313342757807435294279966316413495368639878064635911108650881636176276777692538487451249377721842899770488027621530007080376576089907815308391960868630515381031413934433948905437534805649964827251670774697975872594929217663920274638324583204782801809147228791064290900266264220420570620436200963468894653950374058220613433869032835699837666907861315285479283300907930115281278225517004814017682595734334674888111143819043147503710463341315486556607251690074447757897485143904728760817410164083278773389201013792410906409709980696762356540621429386367443273315885052138219448123621698564847727295782357133390526075268182905330781532579444840121519802077148353012071133938994538485723684467009340669878176081394671127673744735523926763623696131638918589760638523415082501253028907157272208983639728405706455292227626220949590874916202776513421965709365215167498629692134408693313746725486010967890205972406973013002201826173339622450419273282245675108516300161302178958151977243374190078400344256767230193844630211118727245902439030349297595350446383186988067930902137318196271413510262353861840500591659109339553119162978531641157353983168437904636132121434611278936156246900368314394759717895166155701868252584877489913734123087459564161562894994909570061012533489603924277787880745646884360729886339541848227459342623842691614076231160669418260697770866190977677739654141248333302282872859927140896982811234358509678860640753181550120733829279855266991386389746399267447349074140230855250627249521402905414289019192110092361798371199638789023953717179941102501878511878008703829522382995145967563348519360972100105845957526366210087652756218970990050379724043988648479321917909589641653167742749698242634385994947748709029620106609060614483166513485139876458248094072681028888654227530706242368774096823603975303225894101756479130768646007673428445085207744200694457725373463307276770976092628766530501797187205543261664747709476597423695053692166450691630020238874871030804523014036454708198599445334628098336866649313956789135415493156550751465509476638108598865039626696549793801622102459305444951304279895462333664730375546520919906636692380006032516012965390868933767420892695594985727471854986648471218664504099415597792371047192424898832504318755632687312682792159694905159918094728994178599606374525019376601828604153716349647059004004432173790235599738734467523621595678099704081642048533680443200737448637289632968448034730843064372677730794334659487319181255128815811048535728134147616355590295531071984169824079916922760196871453105241778325121068676051115089824431799803907075739793213748862486813428498071210070201366172325398345298628150133224257521303372447598426168918821747521524573703858884006335476072916551435230773846442810496707617515903651146229509589953857959199687711139470692065694134587455760842363151956492657807311804132878563805312511985928474677289835035263899618743246249332358445996271360215118573155104226012944453990892041562602132113762462373118886488268317230072085277097611488678690346596121353626718430085655407600503875992874903582424495960800691663626671326951098096240944220460503313042014839081271283429835492844945623854512607582178212354437177161460804626337506746584015139795068032198742326665859099712257279903070290286912578172398544895197627935936159503721242464430992359813271397147497567986650353450336499952041140292324355907005640490605023803485423923734395578287051204872633551503205041880018267364079892413362833362463334900916859598753702068490811672178484735965451590912786900620212905495848729280179274043919663638218435736704575866924135517966382185117227304538898387813985543855132981432856466229111960143131191142486110989833485362027515749912645851973359718518737704031945143552240593150226865458611697387755267158304318373319149835983639285070248824019868193063515318079235715566253920100197637824490617069391168057560386028440325208731914746184013017764610372808037801004129010254796883291565676743951489622399707443331566997900108454226174248194481538040704416529465802959025859822067289504669236745914677107294557883465180397986698551411903790145684968309562280875861909747787388507117073798450003795830929860617730601153605119481609116394602814925653472806619002748861808149621605827667808090409633874260911427337788581662170527349609634405585829678844079672207451484797223997290534393933116042913393765084778671649003847204964772358938915511969269141890034721244125042117936004580391163139294288180787218100776051314325232803956273698985391733645752532966196100362038274501227291651969031436897252828116691933335666142635379557596402551356678852234087657636888783896714822990005250375958275684441233112046944857277136381983262257384802398899167787847192138685937838151314673954314180619143296788156377468637443992168937222113797450991921428682472247584975636633272432163963313206902312189414725992080830141437729719903174004523618911908611701435075127372375271772634995481089101312041584293817637681578685553002935431516866700859052926633696761984321616786740117409906340574281898935309727629065767134493123478624761694820321176011681524097784852713422254023847430306782959754940831101625271902971150434348463494820992556588413501678726346436015694905557784106125863689427783168369305913431744078447484929555906040588052137354212010941933896965594888221701594880587202810929374162060756038752136961072881524271643467917727437377661139189196454614063575151021511793449929253690017822628790330466232161416516292910372179024474177933255913811985930329871126136828086344267817776730792217544367286116691937749359006648210917464990712636216477928470413485528091104812529846378501066971755821338731151117197526466489098043104076795559999443611772890441971158101176172209214081122973921118169779655169235533530636946737698667545775044088886655657307137786179392080549865392143179857530676174943717299607172546093905986269292009787212851509107734758564689946839460291860030875816376993235003085216715852240935834432929473241141356540568102587396352478996509922067033840242609350461916268349905700236015443036723966720049241065276303606932938667807966319493302797611330436705379428272269943260253388959360207227292992867997170589728727453437517862895995835945576829853583117708220183389996232888382142541299968391804367826921301614975794868301693946519551608319558166463524878048493778168160765326098461641366906524299374898722510416853052088900333895890085519482054550617345008085951057568908271479862660658851602561494363841231269711181082923422944561096476584895103922333240626601758710486921989445725063691564118671583602271775959644025461377437739808558388932695707261625757139817851758461560201094996600353167000541757006703009114930353765642391969320603773100993587284903920024606563508702039468266096585417811147849570483527751174197922649138806533143638703616058037059195239947504860634994007085553118308365994141536770443850658031272993343401206216983166221720254575984902713160883624280807191336832025968940372194568865556481161610864199041692300808059629432433428026900927373451190027638269067212649651145421246083857500070864111251830567709332324206948613614589227644055059469545159973313361236465020652787846704717347206219489421283027194181012131365058084209450226576960086919413099034327515189260758887129099335139677015553056210634124192518275385004966538422101037456705309340805391205479408592935881817000111774997598911785806866446264573428774463293735861562216620482574699929137414863958264941567895305356752680077985527000019086372231328441954553388533532461493122258806699450858954151225493040439117721838741259099414133265534935461422794204764899904256681457360601577086246601087787289305501270745697848801667544907177298901114486381112712844303699414212163016860109396538977902832433585803747067523693517126672961477290503450044476090281651101963184025508284975425390256831319950065531123773562716676973944781980244762522265365682008042536392723609235862000333872665172260917320444720101601398986399969665609217266855533727863128311946185414973109744685072452284834593141941622943446484905843007693037409205699917866508768960976582790896096229449487400075872020065471899500332977412204753928516119104179781253845679528582677225749455577037858510951582148321360059449789538692162250287440226472253568945824748642291975711820514909813228369616345261363658652111901691434355304808733380579681209971344368988037314758360650309507863982999966268618471319910771747402873544714203622465543971957831580381553228597575199261116449873503828099927469598085230656567663832560184115722670760193248839680152401516288985097686253307681729009028566334345935375145078108118618153618293962376193933065035033244890829677552613025235168921903724698716642409649106543433005125317691823198744131756332269368754525165581368102400723723391079079610630248308525943601559054800179760330171489929057979895963255868677134901444761616116795368795918710953449275597184962661603895836650121941998599258820381525829673892970921331745918188253203084581731811818766509358302786627771089723244371796361280070173492946187898333859058241554416257250784413793423267796837467281968434437616134273550253151278876307055321192811836445559917695025205199140650402241357360883695217521713631769590674360143199889476060438728504519495953605413951774702761717943043718134530169130856358959558667138521552082944257116954853832267634943208742885333701896831820599571887918305836319782818806810157324407370831120968242144780375001867607266284757010937513061443708455900970143733222132178466940861963418402960409297568809920975048785624236141197037944399416953925687824219912717179693619762391325710518992455395094382051512269414910155113593271882351815741436525046025398835596056747074654134888632592626677131931209568932524042666871193774716901456112630312950019188122767239815801054435187721432439137927981647452129752023606037228290202036019691286855943117660020796357943398993623892712144506980688690358158861057831177305848100206071706040119177549053002191524998731738751369167024384819409995439354626375217597792538099774407466642024470404756516476301272876101987556372860044091190994351336304688335293650987048911690303294705068464714698879308915515500303307954430703839773844585743985395371317447806141420079409826185645403071128522911087384100119666098949165803966859088191640718204319290500257269353690696697380321462082617537610203743127600979748494631073636689629873628354884535997157121653143171456420663890389829397977040644025463271304047251507672462474599012723311583526294768091530928666894195858058802683504608929467952050700344198053912705751143325965268499622667561758261394596127547361629594901852958169081357396713055846859907389618582501923660445266533720734134437128968226597284735462978231986688252031504289986825250793563904988268327663778694570492298080293005156717234653858311135366786246097209529467937900186846426488678948183600646391129160240004516381056151293476596334168887338883466744985692527779220404092352410253376241960226764753563618824204936897669499747832555437366163946841328585527348309458857305321478704006481793293643847733885549343363875582011709629917906557443682137455320857601166084717085713250103640108328049177244788605985551894109895775096292802522503110955026176501713639602503652959552732313966711740130762938927447516125015753301853333927679965173979994288572767748390695872065645668140046997650962680020448387558883833925602181415707544217154599796570277035926049703230713724534279573358456399850348793917756396187753005766958280560699687147937857131493945240397271149835917311587992695475166633986527367346780830195131267039199307089633293077459378010091240128629174502100961734629337826550913603110989182088742351280188370869374092220068510591828641655409070715729987990858282158555313527549571574191554937341140008137750760814704707497512242502142548190383501416179747792946389126720774121165091352915876958587220919156070812807476840479344838103460672417277354835307811908781453947021783068857679833196129783389281756339744533748169367852235565285595331904650978158904222357051540323222480691762310295209403394514291445906011805703350689583755078160451930865199549447887915352332509288299737085918835674652458939096920958945553004377502698436578249011081926201466402897200529449803711316297256328482389430792099509316071946739897892701816133252343416514126688158443650206255197591693685657438700767360165415338020645258965023620577386153618491256826868941265477430295254811111270561637758348039702612097243500078348329397214266404105517685172441427257790885778263422394751448389040344980622208312472921449886592695296232574188678021833597112327301412922391564809873878408206676976168250629791870313842662710744468512362052279250219857430885795305380453144339116224731820903951413356215307348326524290868664302976640180285146680418549862727758008784199813979330926981861487163333042457531991742704403718101578217642067225619146665363903924083378935423492226399910834190513687945022339226630814630698621629893601846951924125571740785133217464478143920606726702143807290620232871045198827508668566661526291305123659995854946752553711105953327601269415804430386864775454522280769437204581333731697758309669350674518364704593202368369153562757893517375261966284386511190017561797890585787781973702723487499096618128810416861827458343652754272118266697849656810212143741088700380584956201553419876001186387566703739667180207065579224312461418540554490204638962243282059401979275987264745790267228724274488460649633659011601918404458044392019543449062163926796546288225192046933118819156466425861921463191221048873044505451159800869789327897191151285914100361306874134013850776235537294799141030346749817208709780479623665684855610065140603607042347878640917303906039018228755019061083764836029325896108581328023765446984819944263426546549515582604344781602952602923515106402617086913857844000999784089576497179678802584860859549091850912848964903116083011820964325611081047783776444505426552801122999723386361233917101343939647030579715192927393834242341385191224610448989486186224602609555511252720675123347625588159801268591995633368064611222241615185040818838517529405704634946849010805982805183374535825987732849152671154634498941858638540161445028102255575540797220153396311470553489426237089054607748888721573668719686309228260453082295770120645746447291140236286111858167299005046758334750878377879722668781527741745104725816639669556106257225998933188441951943760059862988140990230640424113406729585753976323154340531209250864881687271332922035890551949778267576086837940578113721408103516816508455708909658625309093870408138599766173105128386161093620655349682239262330530823406859371324274511591847408201013298749478905460753489632105056904884565192727911975033192876245455225377712513962420257583798180898230049526499196000797643888992825924220134276120854463254850368166284142441166069225952692187515939834086739579835970252758383750311476299582525523549184881985206356370691472711768821169397180852648310041084978859297379668447921251653647185442339364941678422568296262976919286312624829409719609384954407982743830405022246039676092058772438002094066556530575669956163031439230897196964408804285491723155555991635236326394060274820460195098986944407228368520980346083024939400746732198850763206386542832879741638187868345931209022522380505776048362298281030659948613999336461193577253483730080806711653881576682825762050958957166106470394938335580370850616470386127787286736143573882654472628288735355827746720868583499003757807170935048409657281099692365663071576994559468490667717926530775083094207711732558627615743723001598627556755248536699414362476425693136477292749542251285869828897119064292152494937893356661524656522285853884174587486631753749202507862260482431139692673212751939695349665544157278551156931708525176936376026647076658151687575966295652014780419237343282617445936344270098869171254569444986425838024597667162074710189968569365447837479298460494880750034620949401838420011026433107482865643111665972484940441729280257510335369622209411192198717811234008771930837490440164358456935534541973869873118485354755250863110019317713531219484628534156332899125248890413491649427723366744574951820893420735034455909442002665598796151839356721826286202303058044182085074265790650667770229627038598925646387626983995994047977020125573934356470047001477750376703831957063399453686254313685553613361426793000445487706145665741132646979185130552298763610594343170588482631933410029676023517123791315056177322617095996286754979526932481112531326650585868653410745555881757837448206771826879703611817915058005126401828264171702835469010633706768655067334970546968046780264114858670631427012325259468838566840917926810945213695560145232770684880828323161425751715550265981842252961194863315575849710694186544303867813266417881174605072749265217111258341091172961828960025097012709581947422918918167041331760820041203937391590506332359559393852879202338865629968244744191665887049629999115230423343899880609481041165528547725863597572296506437913434706013465775250038143136686085910812702000398602736998944731174221799375971014589929345413716806079467062761819215190575075887767562819779633211670388163285387958083817970993891642976389170250983071278262000553343876431793907328362938185428449570714260624309098816757279458469741828714995516297124752532784184053569713274588972250712734274200143404948118401601473746706150840021632557130104189629111020484683244543211767023127264268013676198003335489463487491351604560939668211048021326583775236690274535237572559228640562225487596092343263837210742410360327209673138052341508556694143857132817326020762074784663301154626477494202650202688628890738736492658150253935233421202854855330951394740344862608827895455315714740847973708704549193818927054486132192057888057183477423358633727770370598200295529105981552762259465566076794312373326889669149769486718070525055622826469384218673521428149884783753975998116773986512912390537780118767559857453521201641606196989471555478919196013857414238249416812873699579500012871187983020886007002782996552784283926987308389216065051016487473229589325751551798866048039438074389237116376958669890220944787457245252617258125136304607147092163011770849028943285155587642351906372859783444847202987087963881251708115733008943426630014833703446467574306227001362356729765822024543631867306145130408741467060114586033953738782090418966875576381012129581508774747936904848035945013721691653115256820592646380148419821000223949638960716116090476781830224169007048959494033657680607196623211436434795782758208911797806611608946030839523726323509983614836537629107776698553006952877584464400057548324008399455952512757486524445079358999235730122398993550323686654560408720450776668745042651300588101710720501517040501468689055791505716821353300225403909328792276972491938396285009869161896757201245826704733033260297158614168768610300290262455158999813128302575700116850316952081762225010846138552270957797470064576334346013240267044258766372224879145045585025031404538003469749967895548006747662604003543287251450809566868432087112417375494750457229154083718665801268218846070792610479555600949530165314837808749403695700719742119403377652856933121697734920076562845538720754639081358680385036662038973768174640265923195447437214495870951446291597814386739318029202526339525255330582272159778065340520924206788617623176970970751506440341007565270105590899405418539329310981160409199107008724492115264775697353599185703100950577588379055538002296549723139959181015547655140209930133450229789019698927194161542351087697186402537135960985772415693475414470159402151206669578063074196571459699047756959822209215271593459871296595929350971898719821890256120677216860467135852829274822989318534847906880086515330879444981712809770630550645082316988386849653893834256168972914723208407049013718310920649671161642797173120251472344321656988145212884988008257696375061308901480989225099888717402192913102470428997859072279893262396545498783059209720300930925175414038189379739149962492308707823570896860499913784182681716946058982654430524286511174180007765376639067173573113961140339341321558609913973635125469643273809676063697647319385939162438140642365355527750805964260278005055589797027807570443561974795803848037469234321414635211217660216356007925641815134235215402817576695182236140589145846630099704802752788386606821426491599019635127020949913722339911919041199874884563429825579210781356158414107030174456406084946244671859908323727842652000418276128929569079260081022709361505981900603729384438710392474120363223529899327986442731271561460553994151812272159833669946558031725454226889488886912329317172181698265608681414167230125961498000869425181181161797347057046984971983557143142713161273609996101809501962342276624006903588635755807148002570691524612065572682676257901795186412004397758937408233971627337752723458862400087177511157296090937559792592147474035757519143439349007487733105850948824056682130108628535799374870672334658008001873022524882616385774069547518397897700266754953380884424972687042836906218812084134135437947063254276959618591432777870697581066395189937187706573035496182607387239013260566250473486078509124203643823282026723101117269074664684753666426530123498226627501570486356537834836940116987798761766553495925219374775998105173469660928138530629662747041777851452566654565771952300898635694135897216716866523687462151322470359871475106013488253622033063036937442491332174588398364198162343126176450889350530499041984702802764089937177950536213855854372170229925291094983841809998610066501625255238927843284338247959578209900040837037608854850621189945663513961017121516819626345262857188829855647048607247106314707416462314951794363403955707947821453704104071429193236685796507317261247799547132353426948400025396261668032965701308319964249058816471211630668846060669747807460587300488204028270896714131353999032571118400088114475297581763342096754426631148339248623656148487860435519600265436669288632936474281749841758072732259054913780183923373846066134925493607704670934781799203015352570914671277626425103306583754661287500586346620301451599540741548176058960369876096366767650336157567528153428418791151391173285146468597497846540850801632595541805691259652842159675270511782124552465089463523695458307710079158196812462295605948872434431597071120982190827570072249039290295914936144513269532583590425670287813250681488193476489655774961556581936882078959098230954954113022000055109840087771805837212453051787205524723646227634097711515436083403486917914613829787595021023488232751971011914020083719204129851341748412434906390740551039413296310993544171223557380880320096336139718820150709963015818888270897987501870699336619679633341267798209332469036203607388175253085882202864217728371846517755929243520771857564435473586267112016336149434870505447555976248254297215385952592756261909170010341286893754369203726918023528622624583407786905990546082301737448446761414745009724237239166966961421075898775443265609532223274372989720172454116075130966266898263494686873909342288062448562380370659633302730240731943582994168148874745645601693968569272916457509120579018752467301265719151624114380333310759684946622698491770059986100756518485355958109903040217451571147858825275023599023086731612656819155826550259769837599525228678681569557383422828120140278060700362691367945102620793494601972049081672558265024633302754573777534310314753216489791278711519637480550756438253882752210536389526469448640866928669833290905790346305503734836080700769302139931387644320940735615908514715201952478018188415841324333406831031128681730852503932906393284698835451168468014130351603493754663491245074002059772768915552305216990033979136269407572211734211847672296954579278898861919541434459288939451010557920228136989822084801225267115708613909956169910485011727509914543726739184263016557929826953759565511653825220520984572078420693225105237577975785643475318298250932018688460796484277138097541942784275835520907693061025455868952009843165330488754185623016872596231834964825409475934668062546472412750383235324972955212482475139030966553151311840796870209187945673167047404378917539007364840513446515444576739020096335649960300442283591745056381171436978071883089259978328475278420828994725112673399711848957148673359128665029588172995133099202352949552168362544145289001371220644872462713491503581033688645390955846941450776006561737157657754290967997459187875995037613932932535863898456507615884441698893801715266296852905002020587926610886272591554117594586548473957194679288630919503725761300460521417944712444677733955548866601326334592086433918222149850740431414579391464803087419253574370429236992833253719918773263168453856663309035013618244428610118660379890638381431344754611878615062945963211990147992209501210450424950404680062422469393189197862828775734932377419704793680568423405049683871480198465935032365859252934860895459716530130068627776552770567638713299019937310818325494066532076195436194316595700016702397225240500794218400362691598456868854610113871452582754598536065159372817147015192086763164089771243647716743663273412563140626990984067485348985746919349623391721231422851376151071688916493849305028889706364263175254041897569019009024966088606147439629822425127098499260989838056075381494522547677877958811890322882621397396644239887605875459636696434300413093862873275894465576621160770828794436506319623700324272181281111000442856543352580544538011027339701347059183688602277810339176041869481446315265670924689789035293802318683040816546387328642373245792639861262347011195802765313328637592786228548317364042579325023179124391893705752712237616694271108508514651236280190870520885861123465016381692722135207788625322413094623850921678306528634596006616707438857671919874890029577806234153392528614111872631693755572258650792908397921107903048219960004618509499581777146146537102468112750443299296805047411478553090398503118400282827805831641439196602498314855930396365122704788958987532260154310857897299469205384235846120034149444740427939636861344975035370173065441650231511185602241940158532007479909242250308653243679693914191950015885099503635825022653887223075689399537283065517115588919612138762962957793616141218976029401061609544564090407490027957195857735264887591977139609599989046478071837451781539423750541021374356056020652315840996498561189285323613005102688185284462470008861529631533043458622457674377170944156535037643429499475327123055615486348301200912570149799857754522885746325119312200174801629014966197872818457257792729307545518350651989837530210164714796913389862695203234592711737720116772514891551545153580618969217656861395598853459995384259974008893679323124896524415694637759229196065161325633285368376561057532795599806887110683757580142050135303603472337605791927143147737517010443867591784463423447471310393075586781625663697044033154853076365840775041002009622902990854576166278514214907703946482901236722335291677100246603244922468244577229441976008467056532735592880676349251825848032264565115598304848649083052812470518016968244638953217150091584667998649536029512120456536742969503460922176065957704619717060819365533316573456184669779750180367290120686487921934551267970180452493137256355191179979508149232985410249987418718444838092365547262760968247211008473965924364106064468019313970527879735899005706838344037771840994428695126314286699199378967761100938732760926125354087048814599526917598986571327525809249109813665916715822637106674420041458187766805072517806374094780958872742466776938469516751884612567851445629605695373997086311358093516730362036006828376729387101022540695828259250869000279929964417223698457701263957967868750353028600693053352051819390980116289690494634413078024888478965405217279106843880885019502569588281950660611719216513337311829206623866674061613127526926205917249044565200297534985603203354755628843839541130686416354700476288889781194333818737773360070094384854828634688959569305140311252353325684606786680062894516059202458074398209585816893051295739079619008778516006816302825480978838228404923385750721308044957092409082682748142815266733292653280071829546164406433538848981195178260973846464908939097250719397663207285940192319056515914093931729015782686963045968569864483103325224317774917884192695742586971864250937122749939747165699644294657875250539227494430697510074019287840943544726664475732467541867323513657661973305146828054670911260698181428416119120801713126220446457840996982289367335302711228674177107147639166577906153990903413479986552961437987846018632382515251083537494138257219191486556895615872446263022661991314141643815610858027715256503159652803150055539018964413629605708818043371501168903139543268302046179200771505375421664574184816906047892458185934171116388593694369301247575169019171165752615560457684885775091626150034635973321438401736649760127609855547957569958299595891842483778540577230865882640586824711783113144422500457797642625955644366110539174402096617401680438837268990344655971003349934588637105875878556472586337362756781869907127814957858306475366869564581156285386096985054165150122448634816886423639220465017230098014370394293331917901423496952908904777972054094132649222746919985047260502008314037485809369232536366312840549329863317214557659336329034275230782485254182979480681881542583504250606994188401300567691055135808358682121942237829925688799874691335878753976134557268819494371210751193767616265532589055612953325522475940550259430734728313923401073622634405711081713611251860914407592765176303898514531886840411033191384977625059940286239411848338298635523184002822241141329836071504008123632785157628301069786484774788286597626994946554188027959615166911135918489884379386676828303560991743779588462276107898957284908692793176847185380114456759932706685431032031450046485580084642084283012267693209341894081560833957294993487135040116054949870622673561607357760114405812186625948835807491824408472359926486554531655364029061687807709351800222332213384571036154791531205117868228346736356433657627589109199867584803654092621838230893028432002931220938397441471842478755880909885264742411525336488255402042424507287871101781634936060304553084573495525625536957004243407173651190885813947212108197989677491200472376234136219547500695252559722483711484037885681018563241163778991652186982767569757629780079087691550538536435392044689385690000756924547095814381452579335647582405156217198353071851232103745792148341698588182882251735557751411506882778538952992123474334754819702007764716077646617337861764667496947848073463576755570421125858079665065400032938480391317031248036486413586839933179668104010653884645764083961349375562211870790201763356190002414345400731722869585569452971620062124926756804715797852308127893209587721051131323193404655562063015831386931687397540578705467101626243944486400481394417214496776845716186189930002359132037784124649548203978351249449697480862740260453142342462640743807360999311214555369263042531801940532044941796819392875832300449577191246890917630451706542161520140244962557724919777359024849465953499219802546600688871325000826465613331014979939729139397772555415969802352070194247636795163348611389408507171182246107611059171585560246688557404575989503040538147897349255621167399307059709812111488032136924060797658556240742562575795524452785656454541136374798305538788693152593477775348481708856171531043997885177414341724778234157989243948124975281611184377905064925137167110131115264203466629643078233083840069323662159079967893615359662748004131586007117449979880701966017381258609680481341508465379285410771170485292058770630781755252666784907184048436055953134230450747907323046853593686086254171795685543253279767193904747819682362788228264481975808200524911371882578524885394924746127621735670045109167231766834756207066921918774945064231182191664517886979033128017286138778547730190858495788917143766891201123600396438489972961883330241834219458655287882610253811949367367511099773358886424534197722209700553004175253607218153272755505473663200958604504055838671307045412339397494972627617631562413821867370975659420724814102373394826369239416382674280394036071390143327029704058848518283452815457617839065164674733792419305673229672887316391963023272927942710086036429047665346766764849436677584361918950738978885192537183578235117284298187963053440738004039453657680077108695291107721182920662368562282986170538447457694553043554751953901949148431875340568841720933633823957719726612784614845282510952281673308566780568525526170939870854114348571707014254449791634289940243316602114189467787996561993321135187925916221519357686176969974945650415227448558257230823223768210697502143438872891578113796903040822562438955664946788355881666245696575106200197482478480616058608478851981401674322700478958797768056278741943851570788305519319247485823288374061798136564682178583051476863496049398513908963367985706275788563264280254499015749119554754305855537402891042729601182185948057596489511795956219433112871480930601681835576048519442552775077584324716665129404680938901697618321317561490815840219556666642830947791540524641845011423789521022553834255347563560579728631160006149617392736391605731701250052989160626865236082623172898858668473950847941473507362344641545589973119995471509747442360475346133640715099029556343083485787452124383621291397074024289465046461370646347204146818394960664595752065406354765878441632765263342143804510242022310062450423107570356620484377545013466696920193750692268284085381990774861407156817023784126068300204824748226156619366040411249128270675374535150678221135866120506508289549895079428141667259746549258893209081072078112359144057225352359797667683043390002968695863560734581802774268254739093005867142694608381790677076426714289796357672244800055903324656024878030745701360877898416437328245212966937468882798791717540931091390066901076040760824789559780727761459189624010473882824016354090662455745164750952119700263044268765023928772350010846481054629017263211761049798929962017211116448536071757593131453876838018047427314458887401897925991616086162657136745932005802844849041901403464368609267315183938123227065188135613033803221637313403492010401265041010105165771920679298005859131673492136637627352937902334293882352649329490004307573192477007708355809909701196542731428567912561968691599500309634903609750559541927037997424286394057598259093427173783495191879979337819115448480755970228055849406674442554519801842952883083920594984874596072427444762076423326018409086046068971554196528665255132815957502930641521552294815821500986513219791995040347073973391513597960795152466399228591939595992705624016083904387317161883104031928895330420422095689466689933009410719592756207959384329606947197929603844741519805890466759664620371859005326020717270508047578078802946000073756954497988663557063192516975043334216032158807001870249745820695337563049728171839359908362892152877097820817890159676877259909785633065736583769031840863526482749332694676674862664514262560415323810863261642776925422160054939811728023894718712027810075016243214504246758370928899668480061339548091461133579964412803397757381280613920152197663176425458715733419299880227984242778534344440387363502427811542920812610515920219277143377453723366666034735645731261868268741507586171332573411812288048835396176403843188290636744775835388730185219027055080970614263191998847529150997013645382165915298407859076125959165178930355668774745270962055368174001922826210740589817285709744416346153648939218912779493065329229816922819018493894848744144271263520872613732007079545987678668844223888506263026869673396800034847723288324787204072934523329992716841987151536737105745320170796255975183499503536442948633890408106447073101761761315781284884400240479880053704303153455781335328440297817973304556374766097144446840993350297141981942581848583449639472851841093761934970651466813607654754218222363326670050903214252879348497981075394899351393489490843886580677085359128213087155092525331220960731481656899970127350765424488689314286324408108440786011669910900158585434082679065546709337618322686525468629684369690395641544596189874715664425790114136395378653892884672074629049383778697285944215156755299379315657246769298670969388667052088976883012248804207101304229984396771593178906406349195397545140155393039202498414305953855381554422769215206674485844309195490237643133193893732444510739932371027205118759147292748583407543013096680498644571408137765669701292910305472474786287723158888001147826568702787709247297175335484794141596679773059640581484900629190520200037899364018089322364511473749570133822805717772334499981738663591663537740999415257958041110694735483653532164806113549602247347821437193614266156737876012081944565575594088965762870435367436003339585646163675172849251848752282280075183096712170476465040079209786040215782066703199957862364051382310535412593542001015714605777867958654863106877557873757418540340932093649896664886883006009782193494787606042365591564349836004389605819723638604588693199730060954058099650743445809352694414787165780307140329803718637293760824256831737857851511341295773156128916280708767675770668849911286619103631018318851428901841254143967954709300494153227954019343257524789159803603313912373504179783110472068212184611934729772131615915187879854653484738076311801490778170095114791591643015835301684541398055833883218441121554312603701301987511163110499187825004124256162317044316249798970731908634410412945484271363802852889358178580810898400072176351925441932535807565335736944672875813052803856419701977151869795149909652892232197021767756536404011342445538025696918625807411274309158916876143033609486439618066976111174223770688472669052696716705839681609423317036358166689807798770633643939615692712578533697215910697085289907343002119253678657879151549777230594030924324155530482126449834437107409912491396006492848441970799706987646204265887197911094448221437450861260640934443459821444623705085913888221484498106111524466042589956088929523657037370604527048453440487270030082347638513145704694641268037149055197396425361267861749260683135439199342420471566907572143559702664090709407605284916566434063694647862757610325757733956433096117102921144325523611370461527473585766898742408776484302395424863559993589311589433773898704424389194701820842535118352007966005153274245430940136942096391781159698297608481548024149785143310382935965703577372214955725303192214314176337589345893850584333016759078261410780903522726285119813007116365139811074288479161840314763541730344583690091161860407768313603285580868038531138172646851487771064057705855125214551424295152293627015961477823332634110873163214716029901789051509327282315195439820332590736797166340958757004636279400502137836217235528510372259451699874731791843595125017092285647416598581853087072405371399945644200673792721929939066126368001146517968943080618517011456676629981742567175889152105987778380579695595358212278367377866088897855162846958698705184341350349090361002147972636898487634263152399914027132830038472420855732133757042904419259646621249066725742356650549178274110203040215157939449402464226244349393423728961797394095951556425818106373041357347817094443509204822950893504895465897289523937713824665244975692815051168714056665287264025904782625420894719535696419543400326001903342339630649486287318593028923173265813934540871625086123678666171355394570363299035894987450201890048906784556865960133909769775997253130017453177260946463192863383737743917563829209980697479587397155484362588598573335364057963928403443668829056557033978573659271678978873585297347635144266331411203419964358382430618436707026076588212911295799913479129611327609028550260873151700007274256554891878165766249598659551517552598714392626835241057159992911136198552969480058521231543945486246962711319429367480494870733994925289778773795249034910998027554182323922843215024802854508598939444100009306237097944547734955551995210109188937601455303314025117161731264365603380871474588599479438993221783834116011246599375598067137089210100141683411862572052644207940944830664696841457165159947831741602412090898420956324070412145193981650580791196586964416633234626446390689399231085147596534576936699051112118603002827925178449458285274248475451665229869780310751733348416010379401979281860242408327409820374969098619137794310978523388194310899569229134577858659132999655766018677269413980533721216172039582437705606391071154340117001140371801881590129189366652914247654401350469143774525323747610416365023442642467274586919264774821154793406418554871289405592200275978170696267390340240402587862060796862394509274723848790028184019357146383639553228340709741048157791503023764193815290359524868469680740694211918769010261948654960610897843593532350042538745124557156365888082902993446328898598341954680974442222956118089640768118183573769935271658072425992239861629271917634533914074713623939944139856430371025006252631311624213829202093947052041101685681292200429054551186745968293260004162270459006086023539345723568816983526422366495944633898383015386761493113769657271664920268427441875543754726664493081089539615992877159929454013303310284697094455951335989500823241502174338376415823190733674726184965635721443215029974227531670236858068175977585136450336566342089329174130848747786343862605346915584660647801770916315309758820524774463513127797713176115203664603799449417592397477199001194494781329588577599004602236588643290297818691625160366509068352748725423922143854335885836697593934655450570789847030151599537585270603370060478820920018027839752548585903640235683218919881417823947311642417891414744473982158413789591325694347500908395278539120316577914206586308133833891066961516142888747531071997373662049851495066708473444667226843444799642471753527169147872236672992196389713462784647664308308124809326967078380785696964005789952430042838085107123531540272068451746573058866216762117419190387884748187593465921473226521938072776424004948849366465939120472710862367089128985925605392167101974033732852069867861176127941922349390376319540056843249354900017753229582527197731388231588084240426299610112961339393945436667369986120820604997513274451598387613038730150774200806350545534055610770925555096714709018999162627583818403146225270117141582939088610482666467762067090424181637737333962360390191891959324351393853502913813354985496150956128071590929975591724423693699143346436239298379583570403210372725428893172127991606292528951206944065924736558617760495511432955590880998340513832577905184025808600110801530524811980959852202251410386143556336123720166335558891559116807884235003891075929778568352188336294667873561271656597028066307473954974914757015491242094994372034412764269078518040717223184049839810655730007860369238960424391787848733130653384761135694996016237123378319959698519721811023502820619241370797564484890805488854165972060527829140005884673299922666540924603446226151152789181354954416664332920319447199745452721611673951813690364080109825798684007785420275453827051038190145245086617463467629917447814773255555416012558745320289405910497152485813417522789838898871627620858914064982561782551002232645180446877473628739197996952648884707660437633074565512202736707269860141077353467587348192857044824440251469732775847511231992086783727326425071582432198438940569212599432196711065558747956688717024709013488345162551198103526845885781964207028649799060620860888753830009804554967909759983914466451484649767417985426593195721087194395923199506047313405074670211316366643192106159222509963513633785265469358482852891318581336001265295144121275036505700347680396593111471650672812488817551258602368424330627515978234882761170664822830073334696638863860938583294740556338490921483079026290223009667953365544744356345558356323743012292755713461647184060828834159869574529065210878348748961436448408148476478070558212620184231063823720505347447537684593440380062445837749348220450431893252592667863687939236892259198097079707513239502255294367941176677830475764250702927177607901050090709377645149708521549331257618538873061086370182485798538414016169645352183746670347815787319735861265926837838439414745637787025250431668577647628828103249423528945102853199134825666893016868251817460980966524154453345838182252250918933822339543861432009734676534818568726846306981785105262494817892030502830954789307953462304011186029984178445988546239098042150675935559542144954265325476232682510057009640775275298319777909695906436890340283418493350841137983441691566446202118309976746478989014771488554136132411291578073625429605374795485262699013056053311449635013892235200595348034291594595634355495880751072158756962025872714924318171345957899573526030353699022753263768075517640681319561824069578469922221231561493404785445801683059524664270292465646424416079901752261990613379348282069754298720480640198955030906464387795344661260087027051700704274680516130551092525915086846084311964610698624144016593150099752118778052006526901658884698908656992481570612251916797906566443995732723354708343256818385807689162827932981436290941319021526476537540924537282601609915908883749489404382731143829159013274281354832226524949083453427849323685541536656581332168528986606357247145285429165609827817803550297264312116964737048249932668786365016635590666193290820628476260504118706856872252868564549648351030776634948614670408050135382701654237293477281979996290653307645140659298173260991932261626726855897060025358304843651454004752603423614635364054977608135973747258087922846812626788026916146088186267186973478033764487041896959557996974842432303121552287849220604394043945971352514768374559535900082485738537024070262004920559590416126112933564461478342710008767639163457862916543121730680574013149049406441604213230536115783823560856968244049384548188710455058353892214654633786258333801536643232009826121990288686958137410989171756573411506794687850778678098635990836693231939586906222365248040622309568606186915043175835779160864237883928884734259607976000694002947892493317711012040686649264457903845537869914836555205383524854835362269071882127854793172264591207975661010298869967343198454006222164633924986428352820689094523119529104125551419531175075617023299019906660346774944119769718385881608617159218530294224634098668676556421805114207708123895699289835389434532212145418783473473307139785273981863572004599451452416961525407830012946826342323074717775849313304402551145991690771869302088510244268647865114901936808206919338847535809988182629032369764299166564214190647355606397133048446315684229038063224134420918192892088246303701108794773412799020068388833092854361852659884638751370202535597660499026212856745043029464321958455166234457314956589441381498886878032498559929546021461698918553850321824255407336405806993412456586147114543331685888765603477558473772619734253502566195851113726243521551868561302172148378803660257263595424524369603931364252888209742910149225111963923058294954746143891667439295185184143807562750966781679522470067444791828041952147146839170024855440015764808847757202015352490387965295494680954708866359608920281906184221836082164776059507816767289410603267955949030667999833554605998471801065044622824769723351266744282662311409138881019712419902835195015332155243164865146570396018926995719775713955273269052437689356355117868075922913697051505626920104051986604974035391873827521366983813702630457854029785332978660159594053423196481081119455459852926668413751245786924688750713653237406017760141222572389987881697912637816334122534839738496441757991919760603062799002818354809395538023883867519294633548856031733221219443293747203024601606879795545131492448869630453084324066886664341706763468411046414808868273692615099762314643686777586338805725234560622868251091835433526123174383658189156596144937265082259567284344787501647502048719021075331679186053524265676210462816364024973137376596065237038415009507933510864906460460384263595944665907726028615522689979735481675701689712776633842638351902121379095950026137466789803720068199409258011892669757074576130279517135406279692763863563667332076053479084955990542634732779615482664464582604162398053816439161994700461092941631513266277443636525435427216311433277868680605820829211566937412809427673516841178700147640764097537527124193677368222863841833182336459083575790028380004336637597072812414484639134538894826191894671760694567599257484225994840471483938215496912307987937093782305739673476766555386526381868611638312487930424170861530991849467912269649123688900481883833443243452563339587819734202600096441307834780894803794698738247740626382181733420694686761043687291430173819111567190195846377468825287236552372739033211722991691448752171817226738193743221733427815286027206283213782866596579969111519987261791563975880424785220739883134200111598363640559237033460578936343440354554317523174931699291479634631345617419104349761820555788299720012961650135427391719718523827982407103653356421649921155203320560586448140223138671695455269237479748788049031288621360604748841027357643025643993366150362712464443713025621724737601017299252135622055694432164883359789879419470342218269781944632982539907124760338146199728479383798465950078214728153035796944394045187746121381942890096771222491132429112073851730754949217205981104504291115248718353276799681607597737662923121239296595408330313207931575698190948397626361944330474324239019843928350724247407580787836669392713076204548224426203347241158619946571159361804896502720134496536544306229196947664787502771749856140014971572563603720959620301288001514896328713787217348922933405077846096785127644441717316823527845252556507976634372808912629816350597276371176090658413281220976413544684020696825590210201628870391986369439454303660114822521678480657155649002623339792153471963017333267474003086477543956352003497664045190188024923383285086598065152761610251869523994027317513669629367986950450292121876872632428464912252146035153671731979314323379099535409764401147758847192627816382042767389575334883736763107668382939007200692458645912877513624255379360098574650327543588171355613302610638320080293606020159243609121551296690724178013196114329693436499201948967515810158185122732721291921916115330378910571414917965383472246565338347604816860889392492551589573420472837295469661786009540715993407149810247877575766651862008459340659864245826717819877373822202495336411875437854602889436541674870233903356965353174730800444743428995627945926822785747050444144150413838765605231132265891923847927378639361771412860105903493858474001320240253520506367393459549021368079476142575805163038345533381359186896293236667991259440161739891831157664633957227295050119614058125119081230168198187862401908122894703513518887667574223348309344684445336753458016254760162494586497047677384158956876178737490021458911003968423168522848242021450614979481813369153838713053938978318454015913179382389961231050153761356604814314469033436747339606999330095048325407911948426933987123645664654444500061850182174116503776815219493290788180365495526627264289059034645396741634140494320707680057556761534622999213450879223903501438811564442001553240920317048404334987095621962035939494756628016381035691128734526052815118644837649302972544871363137198382431191822072732001088140722733535194917961911628887926563963492984148543727790081016304727960871888200341308855661521519660179162093330248737564470666964189125565119272126867466709811184409858176362155838455233144491570033469234068211262451055499011811906087999860204619408252462459408357758125809647930194075428952071610496189717717113734187400565866255724492580401722444261351315254967631227215941338141982914873594206517533920990889026087207455881039636860133331667902296679836296867012764051331099829347092613211549846756480588307163673660711573688884126946937256055619571059725284138669994402491125210634241656096675078446380057018691522868101520658658511558152086062977275292400330937756227014171308122625828560609649043288410891136658498336922627536065474517232539059221497162999594008370087477835525368215293771498949804252736293297182793776623348935621952011279209685163319018356322879248230821825988108333837795325625886735261848439843318545773567660127142785949084841787360704236131869892170456818377985670124771755816290365466493927770325768484010969708797833993905955789196760411050091186033143438090449155254569522502606677779044876184425541576662749413668809880198875098941922128929396928420390336755759957175714351187282594736016402431286746838576119430937177597078575771788349694359476697774490479425728595052537402378954806977714354743092151386708691925796017731995369022218790115295727975408926927875242591705442807898643052995458629042035741775325421972439495705044173320613977290146133953194969401309090639723392635943064005884965463404736687607921500336081806476026677297652249575384450493347907958241962767463593305950926219408566352545733208008850750977650087115274046911084512551260631679969808817539496835945732470511560452723518152996262055775169070271070838719318933469258394608684966992613627228195945569885215571300266618474789432547465878450508742025539677407733630948536131699215867972777960675121746496125568725703563379951957031480177075367990538241890825323626662839739228333629084992012607190008823391452362254473622752973409139532205456528566109576642989910305838775302571906043145235539708625844325307056989237793071760861480391562941496464943164743811975111075205868562887476347202001086380046518527312062837209698662990529362627872318332068869588107679707275535146988636226321216204546844652601994308997562463351873147242095613056985034967853841590260413479959292856133682186800847196890446564938434255548122991915471254124801766764027883726002562112268953280169108687761263647184189689336714910835592993141458619613667490981967572173029840277020874933521668851653711598067991733271311242031934700296576721432749575863346820189401012272938876743347321040700235184169389176805759533110982915347005825681775116006741264309126228994324915799364015992379194445187864399582766707273081042969887872914657998018280746433401070813816251077986860679329856693973815520162672194092212994710157790076474413659301756029782044401039943583871212191210175498542769191891358104301503122321994048090672838741958490277734113332146744341071288953228548925657518483333229391490688636716706180970613520745331214714193750751494578493163168162616192889091542689845063102358477321442472896644581405445899878152824410433668845242889292935051473823250253651449086542468709612694923143633236965595829327900524040115821183837219790554063883807993318421267223945500809635826591903786827239549321029344694136811215385285177990593725206942090381128111618957848654355545293314185138616854130428870271481355885457537488635547678975061433276214207477656076408810083443060286736143261332208022772780665533059884447724422638308067202107783359309707056857955788359882178922877218657757255311680818859526459728231738515239243537237204685187249270107700299866189845740244659779729527108643927241142159140134896282742860959646926120570192908862095588617439502324087035361722655946929408641711710952526439606569918986484467192763952680756287258037297941176022946183492324484850461745811952242429341968572681493537902258944240139063797577267070539660460268769320128048807736059321605736041583010535781693107260107539864611664828746710861852430907759111523049650485534818400490104011498298642386441518602355299789393719704092124273315450570171557780037505022043095951347749800635338386790955125850838083501829124151397758433610386628628101042942427156097739290539898787183254780285442480489993521590522851117880751680110207928613532211466843268520885201824372378060246434388312745315575513992655663068060497611595794803622964954690619224392270926771642565552018575020321603365602799806863815694918355528795418442154264083347394373539810716362727330247677147568646762106497146725551834687084891672917798196003198395462912019105619918321767491266429728339730773933459085621582223276427652415620876993161000788643573368414594894784808679093365497350159896796970723349570388864655591735613604251104699536913460896819438743445890654725199516797237456522741605914711829398860804390884275452240443527192284940720178405360022629394120676599797524827112537931171263278695241844642152129350574669024698063942106002792498671171459034483655650102678101124723980423570188738926264310929928752755618885964411689290101221483408052517682387552141246368841873539770442495325574100330706159003989698434370687293421186528464545394975209003113112505996217997675715451171078968853363966217025253698682019255958937977728251238702090342457561988189642811515539485568980849866976028000496114985317657960102868161499229731135279598821797085667782288171302776238389599741219429571483649009693762649729890441876741705929969072365776133702347570364624740946247545728718463540334924163086393670441818969890046081428736256799288053853114254254172209086856151994183761886576423746808223303645497683831336551676014823446501071986041818439384647844781681086559690234514644669010328351334987313304366541194387636343618646671486621185469177429191329760892249260552483660103736002520896751984855730727917966970004326308220618091294572066108733530387016657693147907023084894136089649533318102730399157014974495187235412349884127703158497172799447905834862977535942830209814694995166911565015713701055995660626985128248309329180069251983496843233438397599029174303368872663190739034266095053256202026573782940771204687449485952096996908265341802379266246553915832439493012518555666821685821336044103626701105157973097926188702252946788803070180459953986814197947743710048591025334799336971353434693034253969132062579824754895372246354311414248887989437228576791372551012542199422664412314721790313959784665020999662715980943187470809150085021459620608441041250892963024558231675057218310066580121738398495752280374504882741595120878176071067362511875543453337036195128435059065977465401060289377220326092905961424512062358639276164932315605173099818081927279700536076711894833722801545740252322900781642814584401969551423658096742271111827777135763430852717071681200030156020568396111728208184858294273037965023011559876878558326943725540571917198391442853537318168430800792782755794695645598547491217752568005933319557155121581324311905646501207046525881118524635443091049234945400552589996021169227714177947613833573337944039219198283546906596164540238287819703648345722337607144562437323867795869918348249895154788282508307628597211091615096395121082793334654261518891274154697547261088704103443561594690893204336240031384998787170214748351404768236583474929378114547509453235683501489369774291286337516810155091868564220249609782030884934834350270535337267531490996132414455502374727761053086665148805432745671297615814984131045614119521165832064937818115092595901840794019484843684794321645340556695738204499872843014908318561714037152002111741681308013166722360893343341078980863028472889794863899703837628894929023204844087705607096088524527810815713254933164826011239960869927103694394631188915347500646092012165245527122806712021670482934316715607182422637635961537416315484348890674790844231484649565776052383954290845596751280739450010608859480676829042326776620289570719263894940585094182349120914787405236260817700773439260685755579531635451471633950546032688218558126494059544732244435122047348211651642102062896434865446299579111600625225217873503092392533070686857880708234738714608230425182904102869137219184178197922753598465800008664620126559764593379288698848076421701121930164513188484656428153354664757371537639745728436901435385792200189020418556480640412974791540855919353411784418397813344318046196698616485319406826003678924520939066485886929239966252207428272823034935231509841332534669827721017907502169326520108998324753366167391731923481033435983266921339681109891996754611728284679751606069006556403520373970304704288703533482397227510989737445062876754592993821928975190334312738425814215864540206810506652174155239750076793914247256160087226057733225487680001490267211392503182991774453351613695743828930803799937929402583393551755905762807012095057655107338918721040009449901995314120552462392755405293336754663086379471261430785991943943335825217529856418015847850300576145235098399387749674812178947509249340863968711607337660565094669219916670222056162351914451353269830523405407877574882029629664092958183192251605718107905305654890063562273442288297055442929195682337322431789761977408179919246355743617585087189007422956293005691985163271495149360501789093410695720193390749895443215413619004360250337163900766916048291797948705998181063106241534310629536517002587308554990753762367582106467160276845505165705288466806760883228232038617551068674162474741034640573383815647053721693562628051035047789409611573695841164119003551448457659903031547973202129446078516646083096919747497784295913178023160477105223069387891906380748852302633976092695715735292962263680585033064135780941061462999687836740283323797541633815723818318914331474838942994345562901723873295596525179743835303703492911195766721836963301862761882064290791493896636163659803722681052200943306811284984066030765298676492710891774961426103163060475372836704258465988464726488460454049691672317518967642152809724243536224787550797425481184668654349444071748724360260304256496503053086596242836529165523041481584099704272560393640534040661558912506106881116912389905596327886406736051008822735648940105161399095520027656802550051678760177822757072393280418147247591185066429751790863199048513883594245245924488698470546480559269402029584956610213182823232267128823461177369487757354693959952771255919574210587884691973700466199380171388688017841896718945451168826353953396169557551332894179861768266678129602387119642811875300444756137183186932265794160953613098450011238547863701249150919782467986937338453538858268412185661970395086527724396089184610570377454628932455740079207951546259081553768976831493468439823089688042803316181402711794330424561598290725912376708796615993640751592270918158500338872248395124902385685187306766101794780801336732863779956975282415767592536568597224195257215198349830955669943952255768610525303455229775303600433827210214590583008041546245831767592163397477966728288214162449416764308842865588228760678748186535999938967896933931165556607891722272613094444399237105878982852332731714092235852921848802427043339180110484385061403238847435436809071072315797894247644660296536127711946813835716818543132044932007690731044160876082192066828432787381140138422896409871295596876639163160802032686395041394979554977204733259532818940796921388159613644534100905203916726368952373159319954317234465697947553962503359662242814823363040845318817528772859312311150021565061650340986838153440963112371159736168624428533167997155939545090674872884216393363018027403249551255196378656836113275814383681038189104809672641040528705445416642255137810488078255592721115021437548415953874648843124546179929096467393452129955143922600194198464307071532572953160630680303044880843124043908001977994495024309562556509727001404851048819275680658130315224809228758800895794108954393784688521424474604658197482740236128745138320549788398887427898107437561957707915866214894950870506998198178886155381330950585384079034559251565650498531241619158297215537200813997618628655132530284770339052982542262778876399337081352700008947499152923524707533869594107229387079087278618420474592518353580512056962559122856239989776749049570840022447761936091721431883170977009197373415255844037558397027573563790479827284952697263672205224027914573045523054960624913937066822587819647583968233288835195708565221564906401456465372142549754381344228692045450998981869072840970919091355154434590131545290375509504236823848097423154269915449683541105214940660192820877139780134443716517691746892560446145102808342560945817443280451821816127599457355362944609578561411795555411761675882121795599104082979015451669339855951963922396825574046040509210586892357727985199178991566504328081182690107048100473322120087225044247372690151004867487010996054638935631767420254391994432694510564788584724829921048290100833741232783529991266503681916817362434635449862550260757924580188724381156919596661455408594080629492334297329267988290022238849520174484536818779183517943192837465683002128529480710061507279997974454692879786552645392988889861448794604046260509744668217452802286921708140197103818147291561964464226518562105196394892327409767325998069899401245569000875145512489883070352674106815243266802836962741037482323151745254602059053114273550761607038498012065900792693608822154205057345696717057352217677291253707783626857301659558635244296857425972366367570682918882725229416299431719210551365690088401854425800946145676380629975469663740637392401940998256690082787477154305709446172440086869431838333371348194485531336504977707838065432789715242096139489124688933321941761514227024183789443533617747409758896983767613004753889776806199082347686485794160283823308407038266806129160805525618041058395736562220983494616013395594468008169908044125085160293924588196389346031079279446978772931211689514912341751855298312779361633267469964762652643396809787679791219544692866314929013043321704725991575797597541486450343022223835189426813483317395207241588883374271106504275769716992732098836712793640539092556152711717737466990642543227883319906778784959662369252050962203754404832871173929842171075821026850986354112244180241782363686549147427481953445604467407621730858211543632026010524605725840039766248885954018739880892392393059701795327502914612407976868172627378683588867410081674645150362594799786755570305953257740744898337348341218781548082041549598121907501823204453787139104815281736674852681526653265010870221202462178988011233006227115758809827514659636929052508609815295175406954133709843583627743501921267294341521000799423278554627236066623208031503980159197644281838550646614812822274011999628599231001912517985833952370516018023430362664145930810778730008143433106328496898792848938795020131350167394846492011751089846006940354990205173010063373560294631010804903531800360237819625513108592186351469905994651701241445584205842555793404098560952616118814987452423017553040848795388046304913262266947069838684096971588515167504181339399619282125647620715565083169090781019101424381513708390689859220720071430621827495419732841972123787507984554272209485175289468639612952284840103299015931577805129429054778674105763135019643379471445232898881273055913424513492197703021974289788316446983302734665358027108980794773148563817615827279300932653988077004052149306489479797598446836755791933491644032256219724105815880378154593247703005225524399965006482653102448712654361450232050829612349846402491914994179156290807371990101837258847382204754554901090587713335984776621699717258839269042701485144735181729691088720170348587916873221151719475706072689079271368923915872288941474898858181401807830039798337824904100552919832157884576614206992463527461515096255712964536594266288779692636845329500015533031126911453973320777557168428933771723207079201596163489709819845000560091812427179495716718331956874596039865450031824800652018249760777069272936378419919513338587967357590381437022086255597136735972563444839961022116455703754612391169190231505017694625205962393768349770653845652098553075581164939919012753723962915186247507701300413728291478783797879387789097039380096935103008335932793956774005415714576692283613756206060333358403286439259603779158593105168993362074073163327711985414149014236760911183531577142916156553629458827963597014586703556363021875717972794262969634744623084377590841966862585806757882292865334092828244060493278589775734811574730669522567222085948411443204604531028094608588563650842762777609312458263329159711445680839421115056207177234209169136078541157424229158847764220735028335101676194414710667705246870084071087097899335848918247080471380738123656625665691500566406886851307640706108353962135889731245207997000804876020449213084941206920264164505548075184700033902779494366351569190411785717520466070987319306298234126261006632390343709257344770001443314640347304246497686880699424013672119329346023808581124964653437067796273699230110691219936328095335842867171663263553464833154498608351835876116705879660693505299662316657539579250376482985958299847155992945930962129621159816288211022497586743599033000684993558470306855414093565286629741471301935034688759263159203506619704392706927367382063933173787884249772936306322461668376287973054935778539583093543808233051312134456244903550205401467233460770927446519944087158255811032214503002122358714129189270323770233418462915939201761055406134794569122286481677486897435703775904024687316553572279585915875554602477334750762725371989502821882963564558449713319540899431622707026536390240492618237230843644470126094591781061112881873955893918931923531416653262179860101406574458755223285150938760074153196249352717263362282157447953360399753714440964056690232658264022752788111748735042308274707298525294298867537346845613684014828648893066061547528892708921173841992820241808244166112061374940253784165933365579869136481331817820209605015917800974504297488604836455286223076394854253851064726269410207006476171431328191329631997878004331969347954715335536735013023102882685808972203915827662677095383250573549876813498385877066285897417908294583888835147153050805822541965669990822486085267672200448334381852143708385219221299176188241658566879546779410384440877250815762801267266681199208205635428280620886881536483964506827405996666370890556068858667513283928380385861156076082747391175385367885666395772510931826966358793052244141711180151013281622976670624617258844745982444455481503324504865551107285425902966497137239652595312303538226183236773756021020901318154381182468278047054053423388149639219343200715030246281121910052216729672721574002615725588056759364318195872973501472235867854169787240762766339548530276615540361725142144846740303987107086244215672736777796638969498166106902017815475193999363428703302770127359155317185171039902627041171156037655771482001387063946112946621604817327214522418495587195850944691918974473375754151775026051956126375656872709045061888213800970159287256780888404411982197350637909580034938091473175055473550510819386637709807765292292906411267284053319012656305891185413825260776928340805777074210284147041523566324534025633719467746918442147328970889333385343843777002589359981917469362221371185402008674672720371305773488343216497436559192703372059596142783549296395086191939414889997824335094758670777335839588810664386236271683976150240704529299959658950905697340333452174983694243497417342416934789276890257216086221670027688349561663214694468449699984984977987398683536718405213685163296930928168816327371405419403739531145603924891421463611347858888252419658717393725409038462189807773881809839842074479823143165288867862063846096982428950584069492083739882402465817041677325206254347863459943892335664931825043189499369911900056924832874972097086990886078861770350251175772371895349936457269603369495472323197422297109253910687658123476463435290555130278333826588721964177816306500381231734960390076207354437124176226434294501585922721606587768443445137124626813781188543689570614699297839525770720346151463897272184125604863547847499175498098991371244678477126055268241418208192155049831186927220404451831838840040459538019067270633300612052415001038297868703507003221270024087943982167009002083089876793847920324266462169814802198475040106566157910214299134355464085242083955451295342748625032485629253109236684944219543063866903413078282589902914051391265890323948681936997891718616997339846581264193311836424264231846019405154398126750408888305710418514160712718279719034705955486256237955585895782638137560902844368174046867687459999763014754683219763178854134293930554645475992591011157501193147632782318847773348022150445944763143148751981863886753613071497762619993020757269319226028947466359094101070861433292186600238702105982874280668485538086642089773600622040711623866629692917380770842872030387926157338147602116734101538109173507677945298636258238431062650903807684984889401318062094237740524872959831901654474268103410262223293039292240831698972126686479120620939463644139322172605621413365698507623112194437695679586475921515916608346419176306185589237668249395468458722170521840153737295581433748789549764766418735128949324252094355026284998136987805451434645621116007427508675696106838823975812819402124727305768404169526112243396213014917867550444098395634980119855343115575145239895281660749655666298506454997522867267683529348527046049320188055822351825832422081150058565481048357408863072088232875936079164800663980394653760971350062405706051624772098304877395019440031938951443721227003601406429799509075691883238829099271258662513310311244427775295750329738267545734603308531617719649408673701349743384782543695716857500934293356821770936102559337696301445197098953040972261455339214318492803499377459787687360216795169784842938998258487832961648103780520421781219479511028952274414788440772146672560312469122104823438576649990055153219070470814311770667865406371162588511913465907334219038601085630504045224777622576960518391140373602260334440600849286759039406377680458860497917055323270149775912514973828589711528318567711061257290346393965648003899412017275033906370209804712306755446223045680362029251673673306595517762576628608082812293356768808903302499470669199491471061303216539793739513614416183196914875233769001019343530112167417403599432222058953133329391863474103867236188578679504710069351596524727838854219431399870793685968763807976560368977232285740317904678499356021163442590107259404182020305470582457100807219498569519382920722642652973583525832685364664968846648691839974844002379853368274854158157764005348092284392186610156741495421435579268921779595481744857319239703690927041515187562427092687255262878622703696599509906479562872710058578917805551775155977952268137041365464802381665517177258843845052228474938334478197270135036432892782570917456273267935735699409656855181779866390394148785572040160464781466764029514246667748608520695769398933188999780729802228543225914815256316142898990340790055084943726823432353174767765052117907425084930876639950673590771266745962954499495521895519879735659259741204373225241897758786568676072623456366825782836854509154593415028569265673883492436470142230146664467125092998703101750786272017313695780889880567600633765714920667802746344309566651167005153394169591759176075540450201066746947717868007286944886557470842508962168341234471745474732036321615030749469610614914038350119647013399961303475622667457599082851899075636747561019271790846121811559144420397946320503092282747738044460806431915804567332543392446188865037465892391122956672156067324561905378076172144473720845294534515323785292315169351316055890666655110927162350689637136451423902852979087404546802680430754751745034482533150761322751678577703187230946009283122952737905910486690923427392125204780596758509197016249757238204700353809874400548091052121989773595879211004678504723697738169782953764254745018598868905146933698480842483209794076624339264538347741124741987989980205247302724146258141161633042224231472395341678502743708628308995286713473531978349879514146528055340069160277696782512299581097646970552535639100558812698099346975599062406640268268823631464917235599257022994045817998879454102538468063696824875177072000357220497006099059612096969102901673922273034195500258668963704269064937341400887912185916460169105280816312414154503612068470825169495610341944497970580915286140278926099159069551482783540794149990432197280713047556470289398400848824997117880894569518487019947016185330670492969821439175499121847670590327788997231623888808507914556168403569816588644979190241041390681234789327228406324258776571756217010643738072977152495894843931552108239904394186896843946494244268823570632922337600231484579475027396870087202220471412887184693923176115525323557112065164996873247840720572824864069494902358461730133518802146631973482409187027766759965664002647456972931772756096586259673797349716281217624200796989482554603355134497484697044199179883949536639939406163942473903775641738265003428573778023094087333196174478461345119291240394574892664183835001055641961847943046527500857693411468201271302470474453267523147265771219616928236562527935482918697937715384764728553928584017705673020188686757943257124541009365028501302047929749321673722018333076452234657288266029269181368826910285759669513880072071218824928411012033681266996865126240466917599526797873984239694550670895057553628570400549808969400885107808079122924063924362968558072203104511774569090745049838077251861378565099745134854496290138274707150249730558613656869348176244905270393731288114292426404431689451658538593395036761680910864935895743815760050009821211636243066139332627355607562998134492820494411809365936484250083933550479315561173263410406852926860289276212769917516675949903584958118363846948415698046401989304453208205414589161820509345749700222595987839272609500117639878084174450767023636810984783415716520082414965332680022780929936131060499706155152807213465331391297605652531474014068243768076332493119703252936778064858479842118911784424020136529415849682999491356145667065665675363174419515080023442669678388934672721595082933526773464740157894633485853500761792038047933605588588073459453654640294048337469674295311145989969322389222175087427176880669386994102947435055866002930100521875894294079904737628453478499153925132406992371915093236331438963517457460537504271353979780713746974102592989097067120430194817792993138261261148957060111802758604074387667805668486476240473414392409241935235045756758719971161349481576997031365447882153278392763281349641911336417685306099084094544684167183516035785679974000270806082533971821398180817514104096872931240606388310652855784280136565418659480872800129337983982338124269733301079204132318026236143880555784106693023948690961321203866228785148439792309289547153292406708234336998145107938423244285337636279705939135624934494571437799480493140873007990942252315064717699624822671091179447795865606389510645150132403505290893246551231931796081908730499413156412838233577595847599363379980165817300447876998417586827996138237796631336439913805725045957526119514822238451131231053068492203520187793569703442387379471296475578918036655708080951607982599179040577719010741139085050434002419876494494512739087309233059489702539076450516880327960978067261259230744016237287919769955759889122982658301520225014792165519491292582464453425494879756525420983252214068789624679982216100044632431661437659326062320035356883633151129430377859992429447759745379276965027015535434517430274340913856160807897581920062835095698407299352097478116698431632549673502430677446676453775796425624028168995300329484721369939776891030176311652153098369068516193059041425733810887359607323248468158409782981030381313244515770108561714512098587062766868157040519560363902316173322416779392968461794570432825739727966746917647786424409944630024758305234895243023612720971247218257065681720159312878038611398845464668825141339425266412530743848259891897495383779597660962695737846493797546084593831838602712359103733982545990172572277133958487631759684989386347119351335117364610254740764468955711432041935483426922372228505559660804665705932835350692565833536458120637180322290101882068669885632251797076300728481997705691487117474341317602974214331379126313293892328041967081224307396637683912292125872180092692516565147801163120946095124914492620200094650579701199656474092312761541337643552530217988292126461723122873841599213459566028122210033320017464448005253270865451947667276490621483625933017741096181485411677692713418633501825192261520756263290238045669462523029792509095073001372718530596279683360744526852090652226620161139361281394163106703986863503783216362825793749718541097803045996864644143589283342543076580850986675082277870631946867661105027042089466652639019372836000147345970679885406501018854134413411981494396411596796592082927624466984858781963413415113858965885844317254043850199953096215154713810552049284818541644582826612497854705712236240725317173048483158027964471221952286753555091342405493395570734425072943207606024339819905336968897974758342036664569269696814954885082442384090765851974634549385763090699347961895428612678244874563937439338356943492971436214234242388080819715018761427281191301414753426548115214965564268284008207518886610816351594106300993733572704496792250119901895368405301715278399250174421815345220853873695337464292119635402924941945056225884124714176266911109259797676282484463025076566105641439849426799786163693221556731603224366821163044156212993291279852458545305597147282402434754334556173064387601133095907570369759931490874270653330255211100289357573050091345925080053824648301230686785754151351608960174598121578990672150979389235022771489714157342351581081196396476373170043008474382165294910137254509477022545617141669114904454803195165252292922870500340485034744579949698774343829251181596632655847393977360555639493804103033409468587997852277410669179027888610715132387172604558521960180455044615353786187116626569262851672101085000901484858221202199740637508179217802481472322884419709213306585347185506146108677798630126691563894400177344780787286398730205377341539429656878479125398015853259405721595998487298992643349659606219886890228549303510262327617306569102912966382180197517508869200067590864287091786795696346263646744924155055470844143835916478641800543811484542802856025266262909132808524773311590398739783298368690426833185939962243990543937657958017529766017220832675615637533219039414330189460831778286361808099872963366190036080332961063427262310791738606768144307815106717295222329937609422931261171240278001212241743674893324092233456503119267634870046177401255028176661239390862286901164358410754166206940354335012346844745054710250985074022312605656555059341862447922709864619216245144866209122252846168568508753536201354756945214970281163086287169982562869064319139669847808289151723828022940654206567093677171566179664922385524244580683322134098002069257632102700386087974411942646334584286676926862831135303609435355133796228693393357694963021461378673539516441037561426798936670612588073894838822899680893120362735050110784269538236217529783426210318984045661832929453690795727633748781897469474869978327529286412015621696454386792667585562281517249276369584417455992477086247532241150573425889467754140771789961212127015024696200760928164241890370617996346085178495944327433198784073152522164110974007778851064664928267295949484846355747486089270427877127288528965895063784580573816277558577077842030419512442468174691397492628051877347941634934160523080798550044505111747758204488617319730517763323029356424130692303616808836514842948826557378926416960866778889286517791475202211291267778261140052093285707301047026539299700881670156769481678862938348232203959221215453388515452827052723893245346099147930046488449362501380844890778956793639994031737463069989123967902653683127400495585029654192256488212872650275007888590708206775192630380789125407621967000914576315491143857940394526262989208268246872211514165292843451210672474230788273925640989589174198023968090586927086380279587175937178464466287037950270656830394745680700967153352901224333811898857615128989182879767009623980174115884717381854305243383496551549768307287769541227662969859527212548216092729486361562440006635131971398849361156436640290926964758581055845866292273321864679042815356541171913251358268734957913399315404817808393057300520388314099060048013850318261815416857752630571360182487557443218139144379623417154364762102022510221142477607129681034380517838372458595300814423722670936894449683187545603773191600675187929085630029434609311379511984671356801310465567011384789194784946128476808968952505146454696341934091244689677369379975191407221639734877566698476451029592245816881062438886643686724395835700123768721122843046401596895866268873571022138509813041783538377766689878451361900146744605526610428076245751819650871172011239455241822272737089883895920758585338225914774535429464925749943501096989341964411953309876049071865230391797707301596202046923345979986059922057710679169163740527286924964098859839255983503909381228148516478648231309703185445551834935376558490030540093571963147329008282525520672891880621352173612384269710019904939618328220784467878518264401031156001626637120385126541745543207701817690997924527275213355621192561663631500532620408125275806746587343473020664052534576021655189099978023907311641700021465438171263122418249285355474805257766518283828586131717855458472069426536262911117703293277631586150966587914784922801909824176206004447474848602812043059061672879795885797974287310360029124435825427876059064567765364422728554823230257749476386325308989011625942760064697813565509976542246468714564162265560455044841749068843645344366428160362056260908120328912365289896204421063399625311432932200941247775566890128999790358720889743912705304842748548096285678457282172730720363771669537880390997782639346096844563787161113690637210334852534827256468781401209655762874677582158910654160860986325641032689618757949624751543243574034771058039347584540654494114013162208239954447707445025613368923569659203175741430210055733873709990134147483008628239370724295483295805425165850974279012504583454608769418957846540164656161331898194438860498130623266479748945223140033808275503099130423521128473150939509926025621138018874139829916288520753057090723379497205249093895422142458601612833004868754364181685965087201322228384298316592481799793535830890353744393999359538102233051301535955679603595080899924557859964117495372429742090695154364779924848640430880512328754634443949856462214099582756958755492003371502117830145615713130835786815814527933784199510091719410906587246259485122200770912520735373674904754562127511127608664712908418813753564950987660241927340692405462949058971246911626414636340539582668753156591368571536790447274930560047830528589974277367438702707895925315520372041609032382271291598248012449226791088836090740981520341271044783848881679940479962002234471995365993131113288536867295757260592165670897977781578331358302268027763183528926830317723238737329590166280582663332694760033056733566260416139330965241246788957454065377744803528986213948327341722101357283604735583728195665184805667856053854247301389983464226216768872458761586793301505051981622530650098898349962170666797420132412622353073783776699039632409742019927719622413938206001319868951867089183978677230670932704229566484725791333320320263594362153727963036169071984230638316057113694685388106085357250656549326572698502372162701001958159311672869946366528996957577867000574470229069501946717832522962794457279498226608050836661080084994426047380488007546808150365787321432761436312136580442130036383708739368066912812002717499588386381323101747771385329388557919157849512305811630495660754817182102576101488868389052118470810969474800946485593800347020866141310934424743226819892924489234375422285489487619617392696260051845186984951497638673490429258170483121671273560858181801979957037030502463400022705041808411011404581267126359162878915012649353925022879294077268226666735279661238954732894286909200663241551224755530192942040985351621254042348361988625978411151935535853075208245697907215609765895677831346282010786346816797446868014454600618926670813831739684378869511005953472988114482558932933494173931895727842357078218894089128568043699751730423432889043844393374539996894691545649020096670575776143619657850021173026969311329434393845680511646987821418366293926426540534381500171546634315217529567027457686633039873252438328016681192049547845234361212304109703262087252390682588885666412483931618397665564843484744206069957899627005085477483172749645936225114314186717252000808463000939443448776108868640235673625942267240568779345380967514869224226900778608627501793502908405332539332427274154359087384796257050075485506254625431857858416182555090389697831681330775937792127887418773653282744482362416938981362911510162589229103962697336155269396387764612489185483916855274291906591066592081883679667200898387302206329745504684248107742188022274832336024553705091403476442820639641972780579780732817446182163764122086264455411311371317695585701125473197723890270117461952576155982099650428730964181708827104501031479806199611806113718677472825696449557274440749816154252661984203320912371212511074966185139170279301745565664605023887579031212124584099541045766750575909963196341637723692867124348145335005463088664492812280552503815602159643079795129742445748819724938507621460088409218790123774078827645452555702394598002464727321928108862123431898718774247178327738482279053639188858802570063223162976646106901234856764310063563750362547060509344621079744626504915632681452821218768877024904414407411534544136107032348572477660921886140996385932525763513579520668095494459206013493896885726800889774041395128739222912774937599987529187468102460178657864546897219611396875437572179814089927934559287300547189276557455285379963362075333562940697342897416467806189491015927767119491591891712738890741783502557225571903352729792160912434074255140679157854401347052670049907042004072465371011034231089759212626360240613497071944896188681610228122656845360155178405477288339129991593811828156113430952990288496195642720922169199529507669349761193791267643825661876216554592257807048544669236881533619188861813354681929703460926534445400075651167681010649067349994069942134646242477305849029794189112498979851734031260557455187533740471689389774850223315991554593320479615515034370402357388364798458531925244679789559078966161171688821894303500267341664713729173407267907003875595728192075203385344530315358106729868558902620843122657884672275610094526013340271090557875892494166494692371812158912970628206408626451798695580115178505901731799870600605447180522911146177433148152437624157483372252516552881959039692516857268579746736482884028883805174902233664220211392191034374815589090623587140892755860031448918752128283349242680117104135617586403168548574741048488749565864626907651393467246648408077763021337101792151879714712252181423548441175075670872166692739015068234264924583464594454043870244433963881856632679780810132672602284907731652541934937908878928404797712078740785019391683382991010402798315255533892707959082246906427329115901084823577016396507323530335347158443814062562631473802485601744943378856751412641784604051001739371900927805006758491327179177754806401588606210060014660804377385153602216379956060720909858843407053733533063747644018480351015676852171572826659896403816176345380926432140242422698900375535255558990439228881682305697878082434768471655467711983250949149236732573870059805752155272219396719107010731693386513972209835187856930006740491644799929384975296676611459843636276485989377354387882262116787909003977599981147549268340953161195255761410467195084787833831638282816679993778170862148327144863476920327665809718336724443205275609567141990543179489891049108159130906161961059312408672779385873558415928002833271435409070941281949402413354416982849831712383313396617242020434785131936376462399242635629260743538836536297012434822969752150651671548860626710370462658659560835240444666359410120042823802881927131223091234383886996393717081421697175015749519901277102108049895647853200532048342270492722666620141566752198458418061272529588188079497226665327057346827368557713564403543290993399976321584913831549666474678873578290284843495681941329350174969690286801635899343105121283178884544958934849345064868096163626940749419548124694578852971800598063647000439484304846045169057957925361575303360528470624658261075186540628409308399060573806644777087117162909172543600821290737414629695314766423803242141724732723949733104747458899182879724073344574672954346944585530754607691902160205007149339147222700145777359121860037900491296686274151261606980887502902229931858061748833076063560334098830047766491394434656092956400308862549970809614711615349907930400382032074993988204173910188876802201584315414194807399492422655623026523268833001387735052776440873850619558121850418871885147315764695031718801999974015930470090472359531164101281664999109678470535378813395628674450456197255270464850383406575793605531809590062679219737059351167695947412744358741060275473592705464360999833565798965345193977564635180949639605042250884662489965838482482611284958932472585171345041816617693302282411446595445359105454007927091865194205461272159152169905138859566216966940114228185159904842373577374049652402023826222807825379096826817370056336744987017230296280231185088432364031343252807608876472199797433135266841445034946836952470123425439998397114637635602240040630572129996019337915656571950899636165897548729786696429475574572743726899055865715427848529453572817883114375881339518874332961672269780100632834468665629724418574699359660077517812016906397108711182053730935038340588348284745217880572180445188980586005128130427361584209373759984497565388734697357003330506808964344750848063390727091885647802934322029714132336027964909940188724638146910886636988638845110131690395171208597435376773370930867665951411924468310253955525645555272357534346194230392281908379165494112387561689391706347775550290992605375478341004615727007022983795321227484910614220064544645532858982272584178277097551121255694847235654388084403246820825107979951732047816961829089562199381839435249002692827050709423582449744645578261094181473857382544194976167766334725346757392675949361488933991766165714374901666586528378061337369750421855417997606577223133830783320447760333327304540110020541735828009862355853402245646855466455505487031590829619231202299791910442060255324322267644977138741419625950092611024460658376973743629331489912550171921601699179877428515991341866352097923578199767197677326094410079203162124608167595566354789879299400520820135037682259446113635099252982244058002699833831184193261780030294516181329710952052667689074488321133502091389474163225241902669227346124907799173306465456473170201244120572669934897911076897413537241264251018394066767369009451967685009038007618828797928460388436829395560993964848254350377749324614524671718651119159941436831960192527859387452951825712753075811097766151346115895756310197144404288372949121017249073439801233212028693983458491810700446144746444262278909276855985375343443413246067641806384383722862711079934934942367666215631904959800139210032454196469316719131739383544029703606707665975226252412609363810400126237461276917849622473893513966808129379235280357025752482706348412923171582226763793197825629411139317739055339265859985387968286330924585268796171386132185147522657057547961151458039032650274218257649613595016714789828769353973818017654275966132652683492861312349237146961211442106066658169869007852966150386332030443429812528067848609543247498043968934048065338753691310302197901709607857369268233946838268793169940443960347075729024286543332932624378176708523908202139184042310356322622578374121141138685050685517384656539288946938919536468100367104688938572078119440305363894604887708915902436535506704132614939177692343473433593964499940686141093763070379206166640179071388340331876127767743898004297398955717612293316140143415561439775720443562566946200162421133527544718444450140732131431442405782064632236885708233031130422040481125023311278759353264391542304380812595902592462584469739489619167514119592277965636644030616146968686178985383168339746224486250671299937526308635388931804713969202563548968829216483592270527902871159237047540722586163262437975185659413498729771059219015432723755480504561404337323122508899405388138985683432208342502535952501404009565470360838174227077973035653217443759838989509812640863206016661000821902857774375136637207482222149298512112390838081852512001050697891409703873540476420932748827664822726293477233572338858709652665910403933327923121306749138961623736879414673323558657115014288351130307521431626147241462782701802954626450758132014153599563836062068874430528087826616101272389812281600587079434864871783939291767011243759485272281896022800736381398133964443785438091007529915207663523584859305854311763957945281775775723322618392066363684451495554470859620503866543148271403989664215844070691776985202154254533619066693159461874592019527230158752201477902561888660365374847198138040294227935319845560997730766473395594627956595716857283174763972025366967783724867745528023994682869199033158064986844014316244935292665818983028916093114238144484192921694374789589143039739187510949169009912001867798545708937566670181664932356761029326728281593721718508697627401500664387816647222235416769511767687252197717329764456530279515209392404950408930042835920966341321266973955856322033458432605994406275560602372577785328062321431000614354798929747551407443636581810114120955034850806796317490660358181619198461858723647327215129472812138614851280044612503629654634725362892289125509960609786572158011419931219030038184950605976037041659540980643488228519067718205270026714447002040524314795236969263853833592840219714760227832827054908338202805754853172428546100718595782863679598679178002510928403495612248108848081047553561084420308428940416275417517314666530611546186312535119677460045097073477418874134701833047359085849366086299378182559896194464573154934561574664409502373798242012502757230008539157599320207180953478203102324097615108088959594568933743104018086969103232811111751931539911903303560337054839348142139243716983692378285841683994506773859328025409924663429254805789180512454328932065689544507053532558371887314906540506421379001666346695558462972678399515501894370897863234214365105810287106680825909855571764527762481345939320017730551921814026370804463839695027500234913991045488233407420553303020502685646665904851739615850438299100167717531830748829967643321427867226923875483204714593766485716091452680057079263445314617382990263457935962118603333919169661418546940589422912129396794936106135460169093671338029687085501687373714211191245880523996109551969393317329565080925391397252351457542655212304033023698593337630104334759359668400512524523394348115595703648620281230522666092752331196624145893969272791163375999487056319632530673237900135849295706060826547457119761840986426519056846488131515030092877198177079127152184173244527251548935399047049182670674379731067029852906477454888857610373903190199972131374483319555915820606780196854889830600294248469258398486158711229974749556301848829117663352043669391086312491653343485771683540579622486162131550515909851860283320508402835412749066737312601791780876984668456541964015653037076754564496306749096778628576479814604004572698950942420223402162447362758556775279905328591505269806485303033538443474351003752494985099552040279937476225417198379568444973002719133018932199075012654318503741731290407808624309638413441040891586968768353568697049686976594985049348446468957122045946984084041161973826011392453158815453954172563329297962387216795252363358472199889194967513466474338017008628870018500088416675689596998316979778637069365209153382656917270178655201115162641741224165569590856567178415838534145956828228708753901432640865356378145506109929129112927705060883949431709055111274499319172500644600487046044472454696858835154817950149891446576038234799843679443410602340245203288351346860608540533278188978560470764233763709255373424153159392548521160654776235658566950492882617983596321329335662763206321089544740274855880394640126197461959897301789682869893548739685491831751868106591736116745060244999690694046613855928571203820761221928670482496240793325009140670769869308501710023670099089406224319112177187029089088261974005739797824535085780560417334478482912452487838447536178280793136869772176193931239482612659405735584635040367483880945790806218193664978831592347293661629268329226769479412134008521140991907333644806769434452086253917183034452694988378239856945233605210706886386113055114887227520233551979253724769730570746413012770497653130204032532883934760842908005385558302184316787586981867985862823739137810242198911327681906043215991224594532763724512583116181075387097488748153758891141585841137470098397191149439184645040859230010812430337829546111268904196676903917562766439895497567122409505878928462504918894378583182973767631872139214420027268759384326436903604326352385052132138215238490422135840577244984424578769378084302738185808520704681122703632700161046836429825811403145042935359059862050233952151481440028780056372822970448599475429646564785266133010803815743159712197850728463055966201435995590621841706797215362350705686503271332970470796604792502317893415516151250678621989748603011499320619157678628267510883656874748416585711989883336181428464849080023748069944359358771307355651182320000532152369669008865996105173832289836217653870800753304619833739438330790817018138160918830462440161806679278762335714679265132836638428391801187314693768848452209591742627475151206268928845295255456732297311842723094386411550487790443780678854169029461078752704337914418958583376909691385751363685562156183424487267723614182308518981028937408365420410054917369336472755163661432758780695847426778523506272955908019188004042663635401572838237603207774157367547306317543424020608791287175855554344240885065409760261484997947161137813712899859163494365565388547189148135979766219075947958325240973998470333047814409103969758557210200461869702404149243276765868163123626948651190580734644127355205210432329474178289270069577835461596687052256660579776419237070258799326112121281847156933211029246706095291225758296871560698505918631671617525878500110243141281865124059473001101533370879020118211803288368733268081900363912467352042229624172649839975904993563509426051972227362965969351947674406935486967954264318185402084536564696108384743202690653967718229232771753710245614670742393659586069669264821893941743499786051901979791687142719760384757499500783102545809587202067601458504130882944494997546794051774143575773601640058844246597005505361541215934724823175945134288603333213245739939056684871517867615736182358194061840809919947712752873842342653841624579387813449600424530146304025218171847716635051895236699327441476792428578774750441865381753856274284988935873033038115171938897479400935167345013109853650560783480079239747356422363817126091007607181035889336529529019302294980352545296042896284389872095697694982774064521963164686316122899454060551055193227874160684445517160604774638462858819819554834360548346610457803848008683677929543956217632282162268632828976657039665371856567394517785975042619661547950126292239055339669877772790399837991074745779554005260220333366483725161366600625398771461232753835530256475421653987126500947979782883148264716089477993173416486336609071424651090157582306625764919933423704468209468854515140947250699112906313559182221847816624077855329399396955580659366629392811966711674153193305906147753712418404629863258562042865263178546272251196830074464686765038019957721883733460571742483815622978521969757365741462127817642918256580420176110933711061573169840480392728524566842020067874309153990513492421654105250752540391868812954571486835874181604741331672349124756939579980627137821747001996982303421393905171536281994693708676029359872466410823929604727428318147598812860818661802970583771188962776982664215015390070581834178665647587624192490440327231313715914272519679540339421288375280549875334931494641137066186601928726686966841108920773641536118029795427885857446829042302824847135379754498379916858480817623019373610064086667212443769649702408232453033949742016164064116124906251275178067242397710906663305032705646746358578814396134878971124605055357663285035301505827831308689470574108522259297596272499891768527184006049203547314160305692107487625587348500316717781672747679635035251905434308835535258394934794895724937933207667643766823157180420821189887175890957056720349014390183511379349292805666370610434760686753873475799980116959609399193354355504007069209890257679390296009555814473002992985541326229562809072554641096453180274814111210397677568766287744593464372269067841884548813457241570824085077005106364974825625496742080095230581026468631338949823843400621593431746764616733825058117101150842530996800662330735450489937231370348365867327725674541881320057051641623864292372396983944445145753565488818791051505617704724299459405765375616745891185689801503844700267677278992880435773573311805856115981808698207125897406112367693531487667118432474936492016330786579974400254376506652471908937494822047368969296429512264357116959380636364135773203868322458865840358939683328039930633932108943183491427951400207303650243057689287810004984655739609042918044494542248451543692245705578982553285265078792476840568028774527189542193667063543100261107816502310821760167413563172690621352356742278352458761099950633473675687952255819043426176040105704040592355609778760388496556684967676291591763990919378056512240837832335657392164411402097649991905999248240310611265037660215662711744289321939651727835776235075964097614693153437183414382867925347179374450708356347428174725005768403355658227248032776362826217962762821052534439983398029042645764625840745547916279065989543494055102736600235586691117696185277076068375900048871793057040662274670213746933774681206699849038920533739952869831148276722507516281364280452445513446787693619508678475841751208390625092800957148687769097545000753099971253813550222122347924557585800336486471057931794926353825934405395002606432613987782722970615691949767881824643752975353592068982389227200364992319976214975525231773696685684194549077222678017446658106499018020929124296329657559740462684821820448942055251339943410007882695101681134347524570997905538440398228142956639950175680967045003022013719907838147978340311295738022801414186669699755026730450215316917580154212755447064843287633816740463175251991532119830763162474004259912156725937511229413342360630576169102256167525287520050012412222764424476299553215659843542155432424827261565318811469038358556483216514507002482806780968516074816093526621761445305213091370247648835937939036731001381291432689804571158759756267963883757052752583806602597262683920153621338114007141390152921492295379360872936479232298104911182652163136693494034900447636916965545580076894482712793633280428067581746561943522023490446896486684751233176299478115406987084125469052085858942363376819058615476373334710798385675382087803513917302310228162153503710703008454306600273430771452157402299450340667737423659654881362234873457941672384866382023861399968745935478788032714418833906197804283865384506275439405605869257631725938096902665011751155616039378042943679834219383242634040567145506499341273469590421692202282637853650475798782908455253666120919830277160972555562599129473252382997591027125952432588365736019382018368514455866269390732318270235303881403555419801195167177567950382690810602630270150298246184121679583582349188008137261512573509218306829288791018261523935224908443958397461754379953370073899551965392544500412908570684249081101318031123978249721763727970776914938223258221121628774162461411770809934085541614315569046675536294146682873316016370213420029491297732514409038539025669544542815463960355672338091252085991780687834405676174241094209398086740591042269040479124324952528530969496155439026758337932853065000709745099307420363416612430820117895931939043698717341819127663016520559848008918281425782274465314433183069847950444761528675923968960347250484009104911471636667704048312836857898069233955682696281641354435073941103112132815586974488054300646001222667951209138740831291204870581262512926135298898487735460301154775709949405109498811512829617249834300609853936777385652780249681052441070125039534941409967316799151817835661896176303170234203781772524306974321767032597819916535742836391175630815586783753961968730850334252006221055629656705844334929300076399057661196511485105577692954670793494514664216309680265656132899985456514459853562920540477932022283129545491464390945900982267212072503082551870730855679797547505226178283994114803191853116433476230005278405121459780791791189452725579181599500731119151501793351849726080299108742532743675580289624509091388044872235249302660849818324897308537211315683193177500322858010649679577061361473676808084230805356968537365236104290258221144807468960828230364206586597004524814163688403270177824712059615808255033986905242841523049738462614327279365439799921120646241434061983426699728542115105963319857195881244473518779750151617792634039788082252844168362762250037985195734676249533360509380248267787665493884022752506303666793931335223920754797173868889177868364555690083833499552829249558376378954262725569962754532458154328981307102002783460259043300309834460673568114874639355984563339645666446864496365647212699762349848732954473336354327458772915355382530035306200386343702438831115342209635285027845403065687235580012055268662040207008835932423493378400157708266014545711201915845550409971576781977150734230192795463695747936790548945830692335912531110834622017221058660981255149147721226869892179829932313192606021097159753494969830881739690507944822113794768572242413602531287592050225197873671637473714475743380480444840484357708378502319470276826775582007631063586662946026430617293087456267565612356981870648368879609741079911393556888910887407687896957514766186425524767162298228512690255723041228084558697732456605281590792109377709601459201931435242331182730343454651099732124789351792706146232831425504539778289750346827711548637788873399784029590442622089772066774408373219954341969564943808608260595843118480045003981377568241271047332134821046618375083967288067837875996754956559093760118422651098453958850666027350242530182112143127165375717602786324623904112077569432305134650593511128615516043288958088052806713416170937448828137749141328240818403832506811579637145481017114292664530734022180926997978338480316934557478710882452176304500842374904893840982994537113230847736187865116361685396328050048184647980920049020481322696184884577242229405053267909292126324700880574208387427007943043582478785981774880117851792868708956916357093877261086962434674832343939838580876808559882099161678635474122255972149592676085628793029626339518399168385676229301615187613709697953657614818816266311572798047902589430794340271714231579580853339615198136683842507965094474049744246314090706951021423002618675894736558569506293210286164263042173634603333049180353172301254229003765216655903642845808328986066650060917532109399440930994523693619617778046305992070478574568392762711753141770076767029977815118417315108992769199061661872761013851635702487541912002097927898880703197890738693403817356918254875980200173042552556334373790318475973077743696343978571240567123437176888513165673169091632540012738745057533982346083317476359052662213040900988634854465305949845474142606191153515893457466768996965088565822723829047985524143856223379065207971242564127305850374788621155551002169037652704218812767088871295249219556143789414853004604352233908006258134601934840050412227446183511220646224021929255369531325188367982886899880760952917520837828639238374044093944651994063693212743176395602014035529520965135599403959483136519793954510763428442960304024367877032324287967853890040651627192175529520621033552744330582768183587758339277821325505485254712114644001606399946731982289927634180118027784842585030369510371173437029366606621024491979647077085266069401743989328089516423534985048084186444838835232494622030792832462747339357046201805654196684608088174521091541335182230850213655044640493842275234787428096012724089228520035389365331952117622859900063861259633892531435387560423376879986412862463716147365082082365285656112010717622080292554984022017196036807829905865225244012910833872796073281400904003345110306011826301811414037225608851272615219692592177930163996301681507656226822146968770550167119320826616918932082828843572244150708712637573846379544434383565038610329391167112499512756425281333230705767417414784649618352053070259944397150054225538505395161014109762644993028452481193390466851170374785970056116089701247784436344717426720826560272325293957001609702101244438745378112110037797406908805358972826979925009500719091313202599663489679625390676919809213633999074044357867765175254978652682592273761033548570894882655129389184393069442104162511145932634169042115299529356692832469947351725037290220532613914831153634710497851624626200057854115472245024244535678946887839042839780021047073125949727799362806155846736261268681234411173996648218913863610848655668589059000380930920738810166131083621879830378804450747458741232226243447519486140884364570806799609293581422625255357331994734949193195687649031830393684719039720087951322577834118174760558532945365771529235520905404197034961415830954544454722696759136457480281274768348722875583934593992030425596313965129822241094979684420211312638495404580247150354560385379452714486984234368770417019297792347622904035841309226128118735739474752077871705319453029428997202239844591551301760470610878510777940170763356277790752750095867885959859585083723643420490797233325067217887841257709047719649414347173441085454144708361857199976118043792282560213231409446363339289098689486929617148346225031485901463552276193876979367131375499185331348392513954118594316436603831848622502246016972717331633410388642036060719947700505045127861301206194276297496314742614722007436263476924130276372741254314292447995968576285676841503231178206665112433428895538868598712330092088595542863920260488307287205032874024017824659440026054062777012363892391581198805530237876901688998745378632585520939055057064972336959685681925977322905916636657310847929768316500431537997616971074962205287515141174442470321097247459867188078232375269646772168069768723901615318666196276307341172649850372118998041884838772126924751366873725362514956129735063272817097728139690712738101359061928221910739313980749343674807762007998939380175574330519565646751399293198448002321644059612065531631111128768089109971408403359325915787210126208335966882176830907970348684533082039513835333588384962924206779545496223612321871830048283703366175357732336656248262354562517568397358316764820245908987965248225802828340520818385124622482850689176107699356687180079464500822160271998172729584594819179107503330906708173269813945125758262478076060978687815714809114332205282580227939820106738288324999061955285628774457313725309346124886740750121392863867499525063247419653940974227776589938508157609130942445042119601317354122544411703994893338590524905481767444154941409001016108459935092949814403254990545883351084797762477112649067761286934826407210835392969475777668816150170451509350979834006728944567425210082254169277742094306038344095560730754542106237245840169419081522404643847889139894460414663203453848644193626378877548989503416442460965042629600432921191352958879470132062542032056442724758381744734958435487463961726040259728273622925005050296000616323744105082915990792295322807768664224454004110772705695525250769709264258219961136496916929033251621650983445046897138433692071947393750198792647636585681169009421768148982007484675653469034216937260589705776270888833557506100502740490511423046946602008735778640298619262282857421004360445250945845557301155424217125018438061344521356315879775877892063269397888220054694560865406797633439729958119157701248746703706322165128052190562727852953956503358764129100697085361239155745575883003632254091481772694455976937014813786134054914278414282776882071477610776585783971957910111907940536312605323379137042065507373527963753175605606857121092491196206644085395995413745679723842428187727623883620593083774170055529778393750211141895402240574231411271079919213503696115161409734865177065001256284990595864838858162838541828786975825125210756549147320879720169374100856711530724818773503012177407238992833629634811632232750058541223379781187403256813643462017902894313636605370558590338475662933815225545955069821139798709589574443547045991433111399111918623038783422271834707877093318843159777279108233948088493947296827811132514633839623732008251436395702172503225961767175580189190224804274950950623430354435563333359527862932458704443929870886267849923136063033560135220462022261521747366811918961513501685308434482322046464169658828817487137011483355703793239679236696239327747385089480659891922955335473561322544594746481582925224629422160497144728018933578765871568149870192705292249843060716366263740369067693840440097597298852733537583881062783895479399732879566009961735864409300925804262742420669550166449541467979508622877540624823675535205039518972257619406044030757992275878164504352608262597959906447578049750640576646937872356112308518974567109868324737398884231256344566252531396965980945502059482656444641298626905059889330341366151965658392973519197753225893812832998448924762800915054457448661436897466818233666882962276047023410913278966050552489252748973919604271246394989021717746314067001966290276618438248618718661788654932896533482773316572925765707629451977773027925510647430172706664057750638384556642138334896876316583799488029213550130426499929597066928448202354546441920956421042053876933557195986821151878256357502137317268132210861624187827110615349403126785356042689190710679684515277455536568610158190989264807302277287301034750560247940369655745843175108267636455260969045053906437943536584982604633586898997447145900494443552889695496774084437241933412637018454417329560726989326156559129636328769229417284776494372848849228643579178558680598258679846603548143009944322164812870442170140574622659562775280912242327386553499832878038873742291356405918053261229556552749465152595807688826132016149410484033771107638029192603169343837652687765291637805221773774459057894898710993021468283090515710139796591069241743128467796921606281792274926770311578225261970056352902799107246452685501145664371375780017461946028426183379656944919464180754457678256592958926190524146191681545338911476796652800793776416932868180055471136660332436522835050190889670406108867824301238385975436660066288655071304344385286600592684305829136761992023640206223004633808445404013988319528844544258185098434839922410416387233743527315219639268984509121278661753955336206398553060147722156549253551215826391245198663537423463091240702725522854995154563401185349691518958603036280236296029756124485535262714792582889061508832219920905271785077632578177852137241711761050441438215246646326057754301428847123853543994427863927038325871471247928679027152748585466868890894862949008436449226570409893301099268761096550981981925817291609216178641703800565799331891421680783879966507089144106469225343068764488370008103316575619783947143194212227760154719340633761820466113048672411383057403728265539634226842501019649660950618960335713269306142443252410731474373939851094364940604702261970985344597325039938069428132156838271064972442591020817036199966731897909567326834784267794697205973744327907194194926091464683195999924612703071862443973432911269313315748018691133253571912532712697215271123494290317721023851921014105286015505415911388263852456573825226265284993479099889137606777947715288367583349900048612490080569698411154263334683400199951767650662537807345402953939985558762605342409674478522036059801988688019827456509152382594539385575051880351379324415762914355482876329785235642080820078374228732337905424365757244335222471847426313978368953254172764441646439665209802846205557171151171646837922706039692483055247627909637096562482989001359042305142386402750858318888530811047785070358659677344907399798711275255530444662527557418399603052132427797077694196144832182913758579254444810626093987185529698235196442077180745674215092119717502538074060121231625452105114673627517193502530691199367403095445910468587313524119195307748113198071135425603960214412983541756391724040025829698105329860004424314488725552008422701242708170946886313970481660761186299712810651633513815138312720219207243628068959351221087075469805373059052396125041787222373530737760552063891813095620361042904115800643501680904651111495266485703362728069538127386300286986212736250044639241258061255903038967021708777639684690870005151966836591218979613368794029209293207123422625330090311415091170358698094087942587015662058945974301994853640226390581754870159684225958562951391337761751933199894886503975720575435913098205121024660841182665433007089602322339008479263376260653774573241146460724119991855111117405476756040562019962102619756460413691256970463841622126465903072509217278076105851169323791018921246406864245010011216890052882658167566907306852975114134333959710196750787083727190984729761403740693925752832794944482444139237380935888981510091583120577635358336472073271697318050259822154333795313972966474563219539257734339599767027386118524615091096864233529738289923464507071697053898169489602096079275972377666827631207479118828610645650472400091906161332736425039377155888543416568757947515342326048011055000858581153403020013564671385914710692905011132680369054841582627164501508385054734978715581558108828426781121614292698310967548998061659463899625102891010638688944610155685382036880309887039978295820930501948256561358469628421686866767255013423430800011154206272775006063205608354777118570910080197609565644271277012651320549220455629178062480330331499276034515365529621226750003748630241379826864871079563714928092965065071658964503342079148650139548151113000060270513393661211345496341822063709073553357003867732871731882270182831932904132196992893415400772206974308179592490371913399113521572036592040909381400322089857878130878910198550020230650903837257483532311211988468239242712978975754784990718714887296742309775601938761111581987004217947199478997550712552618023175187832945656460769578586517745953179142782241327685661906843266935978751938930500253854939936032180208406507765558662988514431606649130330790317171304083774906496606782870131113416617970048587990585482752274712480959587617248405459537975039859713205303285329518945250509378097415184994163092553256530800650700998520903489956186244025204138932757470876442201663182436780613959251544263887936441715229618125250036482646599448933377891880766062722681384112742742368534885399824352392834238445102341468717390292805773549798301903702889285144131939039174894091081953228846035789321186626786880617473597178031695319612167109379710862389038495488874226227936949800120586826545380264186665946835352939028182628169610000365337316261466696992474295434813528525020863875391259008455190423940045417266906808522880144875081962842745332456889493188021990283032753550111911902246034260737756857085111100333559684174615183502923153680556476482142103522397727844343188732063576961425891590986367167139422223560417795896457759951154632782099868083837587499048825298078719308626234609812930206864209599856250039821824701112990836429892541363932157191283631746873223380000341917174829005079071145657323041527732918302708523317964014091861535710216736984184959328750486871857468184267699681606438236896781767152197210660772502325931738487881939529347647124923107189067863306983234120487196314887382668621654842041433909426388994261586334719216284569764741556725363023546992268101444645723011384649330205821886192815864217126074084535588801694345387601933300401281076791168071565543049088597729066230172348145802097154054398998549931862125228250768169924704151249583499674918068437890664040561745106642678961709711130430681146283212224713319724999341916821316748785848011845041508134752828101274047300737822882062749025306014181916175546517825027255556673075279086965122556286986693836546259475568688955692044536187569846362623062020602738909217502434696717003802366422195277917033980995918597581172988113240789558188673570251129184067896316000964528685667942084409612579891381472054954133852872786694251431601639525164863253970444767655124368764552018083588238428317421685004994479085597717674976115883394693464140924576097729418827718393285846824192263811028394873311547101551561811320935957009394398458492368125167622748915218489469708097719263062985577134244425237526650627223985043587890868904437841271199212926658077919041235131098615774519879977822213180037981265960287851408379951310659854527624259753847599143370890773793477443800563624380426716399628327307237453478975543410544414425737057371117212330409371172914319052590382303897051617330117038229694608632175663838708424606571323361266880230589522468778293222759944577300434761446804376477005387656219721063259275686604342723200489325071751649193441510791626850834139120124622284675477179485059328018593927132931702868851864732379241517846129584081420668853536950705370184357471785572339871375129978134482641082932758768238692574270799934187795742550088144815125228831481456321369297218490459849632049606513163193693482011686620498919614041112275511651357887720529973501477752022547599460361637607758572500338526056816377629447876208675478316291907090944204274082514852227410205678965104922349286066174469802238900457749407427729949034848522931811069149811978624977180562428377024331222783703438274923722209560160081667453031390458059562965984395418120119023175914827057709775222574786702085584812235018613724703271793463436208290696074644417167872937927047401939925977563767072853305037216700337495220013265428388702959836863764486972536818541179726917353046009564282989896223285120936694520825132574094996514294470745366450095342936496807606296864448382374949785939639562235912027039216398164533117340037071764446436099211120233859643229313440476230918897148332853844732581072717940262721676947509476065687854492171558713953523738338994630954773422729817935600275744987636530549684577906678784264894525030785462369534384538132073956683930227165328243832807620724276327204268340178029194719710104923019349117665367871058425694350699910115215990966776864843944607910131720911030627544243177132415805405529115391758258217570766972492991409382104303430385344610614077022664014522017334310335076623927755781042116900045080118024803161003139687311356425246081699118652811424929654112616998407627879251947535842348336096338498248097523510918846338281100983762862085100326018847407548965376360032315776676361169013692414933449960635724988424011663115130610730074777386535303024138726885307178887630263053226108694544001529712736928572213838862316670310293542650884406398550425863079351263608206337395433998684026607805485903840218635571699731766221471156446994159759865397127900192127636706717516964287799865491373965699496667059149483201622765051500094693031908486068842549856263135239723373886386846741527840024842631366367929388746458635622992534213777390986355430357341486057262950836594896077259080080356507349907351996888043281697397995418454980353006424218989341354484503265704258647156003045198997189988774957649245931672921295979489193284516966600913077463004786444531141428170503953071120761415626506502461869138567750469681510443890811790300528598247523303654060351079068339354778732436141140671417179518720475928742566240526533592131820476295167897838930795050593637669671527905464213299093438867589431024166613445830185938986297162486879735630542704383950672985839874201748845959333128451053782836380753450035703003967133834836371196752723327494086475224017648699374290907323495895200812541857684265702027364163125675036289600727183242796778154357979045158023768340577551832839536580377041306843678905867763217654480569253763223352979138802162975272167864330802571848856280488843027985141550364011016602396591396820757211997373742875082828877525956053512295958139290510886213193014061340645464208994378627507830408115182873251586551188537669576583343768515429423172964547050663434694731802852463582959538173306864619972520725116297848417620795114244968110128634809921707935660459327647717184820874724901264051466070302836508694481690170133163737579076649756718767773976522026014759052948600134114250825930480126625076313927901908486958996199129006029292348512596276579049685929209717059192816457185114689616560502770273721478502500074365269965832675178948006470691681280437728953869538956318067003775795110726644085013171692371468883145342933507416812042227644138957670866179291028942982524789192348550559746725293343533728921877105294143200345333450847154215454282695597880031795778773662213785267317453324689092083892656967263593133459806932272631327640784197151603625599842561597665057227017719718101861968403663237738510040338950660318487433410001451732404961476265983340163407581259445673210335184544267204469879877417009959261177463052008110586936308010733903152206419850723689520215524364090428925706243373358201192649925317542231558774074009185759782666596010730403996677853298944324318481464192682716648242559711545184769220898624288229551757265786477507209794154133573589872977669226582993156155147328064106785171382386845940927835150807720339725732799815367551523385978865182627367166419403599821165793821202613551704538560298650005574178043188411049853767918972541438074787273946747028582077248758897106595332862239615500609717537471787433214656391926232483192006278580045311012973885483129888314584877535017323451269762357853765788534462262153956802086526652039594966322774197918661970994752883994171930415942045909564701043757163770994730923332886191390582102257113656878017002029041407301136972486601525277002969112299864718302934041154497390457200680419122990997900135860090850689797144903148241348886899082615301034742320115116076795250828288402207074970895785120049447562783752923355947965924655102165987792613498241965311394537303509924862509014421994615619645728550944702772233885806871499361772036555090454514887350096229667150033456795321551535956867047073405976723472069829251050198428088017129597101909750595711439463652003189168492254307091663543831143142614509446298423636832141589951331864027013263684377105056960399711350735763526771568875180825727151391906493897693053091671217892773567117604307421607176556967686818289783740109870498848854306766244211279250666429493387961502856538601665751615879413276865112448993438128180691373544567093115127609398477261474296031390002593111818363279180853503420485927663430832729360687554624862828247702632664865419569610805322636557667395825467029091271866934990920709617838489118528219589019778978210366418972006866841615936178177604738633677989015144266866780323720788877128416566663303754710083008290570590823449111010922402730170558113973137688992484891965122818198860621036250477931164224151971637106826942878182012696660041293616786029933107274105362931010901916108721497689789237325810714954103873383849472298601860889202278534463794142073652972755800763839332715386567949157163042709685861423755330682235259841725423467382454161769348572868884260255466216868854411245950529343870871868838648204678139467870263889483554715627717054960739649209932218297595964132911952140444093710299308562914889271449590587121430693085209982395976869246514484931604130334109627509250787367918367014157287164703957135612909572477704586264840919758931342673210041138752721436743147680970963290444226690151381127146621426265884303362594487105023732907103377839453796151194379337366962499500633290989744860706324122263872248209889591100388168044968913143848778448851984590571679011586482691525835315706000346824726227734606844690218201827871735127943163993028357602075672012805811846903675818020392636399373760605585637636587596284184172614213067173202047172886100605877958306200195475799644951787158234312160350554512010541444571873772259713120812992876032779102340196390847347362961723603700054437250236129077948617611437497697124289757491754378305840372715888164716388197782399024273209324735071155140838265522053839257332892980902292851667082752522906959665448757821837152378758695842547720059969168210081134107619858912594390844095041147511843003759722452055536539394178599448588556224218564946733013075323490754839310501276843001450947933633589361697348913794877179176676206241428797145378697777588872709957629788578064839743856455594724124432909878960426453227239977982193167522956700449103994933644996087186154586785635283100051935653299248699880537485356041087556200317138655281656346033975084129361695599877024080134531935211001848326167587896371958812830247611962379208221347363657471929601286233284989836015343731151489199659445809458191663027820333408035878532778582213284784920121720735097141761358372856630278844249173652904641678718866007634617035501894543494443269213816269155576496392276781457557318884246357352152746792712549474108396889542753724715582136008852684411511495565640610986979857670365031490920416837732938023903486257705090744260006500605632026726921272373650781562346118653497180675775151531398591584391452911153901733522937204707925299432467857041744387533693955933323609242918988041634815289583530036995248836389328267531123107983407445708915472414251728694145284296691864369944134740574797356616766198927132182554401419658115571266827892148018877402011632465765143362502011426639625192792026913195914635029796869439235881845287464063024219116151464792622875232305694081717762797762951904815583168894876582392758648089455038720780321168306122244040939599998926524058656296229757348667653002665923734383767025384901263271539467588618720485396740084261187780911228392931542501238775642610264029248047648130058987939620384400544448334560263135656787637521267920509852563752374817859035974760804826151250211116683864444976177023310495033553778882634614547655933207532673373363611220111990371740774267887604422677561979336852403821658289252309841341731695456505920181537864936339383770574812782958602350386988910975102492370698369652608328932878875971050619642332589840572370068386778966176068038109784378788703511666671734177261372810569635091282664248558437277630412306423536590031750773770683750488541592491284212876264752128376240516747513689116926848786485595094025261829894306852572981256454354277933666077428863111466645387371574701872052000247709315002292706009030665470579328468136280982071496771671912033359383961348783975983649989433785991298905206324699058517727703318922557993491419813031389333005622979655418736128990694743571711806426099247257102176504980909189946902212114419720648241578013309783244339904311069660339776637507208034931626464538028279264820061632030542242042958052585215058533836297907372914772206398182869091998698234118154240634083090028538499512512818867406584162207161755136936121266262914106951316704841575765770193069839001103226679800183801918338240437122534677667506515490768053425767187700395537662407321520720863160591348167040088027264257461991454183481164115448261843235758692385387769859909425661531096325383563857881412724243219962670726848090708420649063956789072905583487307585401571254323222404227662285246972626192911173553896483245037708084883685472042333941215009270353464191578986680257294295661405348916319894851020164564153936741637247703103838152672938326241927083614141454592198292782486834863034418019151014194722642976943173203184641377188783985695803929198782012738221812578757537376947160957950729352278881893245691793184696986858592223799610227949355480061031209153792235794983109713460932064785950763984410555533446095071006884748799242622206085452134675884328883110404581564933527211183270633319787323719067991937601521604227910241388578261216410555245557412336015030136790998988857689356897983029970481091743031197099935707177737399397184240377710544362582727299684284321977740822539607971104749090191263271976052725994172951114602770398057193881437900682274819210472724596859334147869701440936059178406342806196186993425209810141483983441497092498085896787639597289805231523813822929072710653813137004348476300792152733872247293341487262593416542999076365425594464535056544916852736866174256187964110858928123626765839648684931400780898255744692889659975142296769204822187186029502201481994689414024899298929011320610563279536933486298800621757295902824055922082885723898712538465971303796072390649991490261414928172505891983697405320867660415280545604999053791743544684316120717774168860316964044277279770545882044706066044168869892149449701843178373270641810559320928394583705165565330675145486182372459105797312582489939144634742808565371132534773813137320867478496526540950168597221061604431694761366264595519349498605847603085984171700659263662161112002314144411212477954793665501431227203220657824559949423842476829019163385769788062676604108890948328475637629513321215316133368339302934537993656808352616940802654291235707020450425035889471364856489134803722611855647712676319079937276122229351466982446737041791089051203812423374728651494974078250741220983614351858380176556612836070875721765276987288841283543163872743725660325727258105762426589975740135447210812679304898030833603125247364485399581018489825783556814970065915883464396568058301286957053481066829648304815416711556546748858410199316652574947565844589372502191146213405526582418414083022244118630371718559987921583547841040475753487204748761133858435882934247022886197181018103955501001128098808577179368021690859209109464331589474437585090102863259769937948251604105220440854652152629973895117620147639726622488365489867146698633041117447588514254333397999439471813006926479461586064901784651707548489586536098342499446677216913388950844563224481500249780934159323388862106123253328106517447173635168301945138610379576563311524515860982756301615310515134151494219514845967411349705281261119635490957938227932745499038618274790204389975170437365060238558670126925880362426438176854418289963688335239907895522977647723967580867746705859363200111922026479419358261604619202789565568052959174140622969169021246874207544621645351089587643206627186405520067803944038952291008426039917376176450990741575884323282294147037959663524144600585151344523824495450818858443982311105568708566227111284978513763001159650555358904788970378615530779859273439557317359513347679564601226129024334858965480580918548942920805538896578431475612734390225704743063196160791563862714158836502374977381230576398631637044289336155509780129168647422446328997604485542629131214291220247165352331908389242501968146806939371038525638480387593731363880801108660159365469163813006555179992430829244036178029529704555204704952801888051261104632710646171482429218835621033514167070828738103797471920126849001792568571450466937744242711867378155186179726876108385174480043201110172827389375818647942115130933931672819931892403526237549017138560514639745988765787943676775032704246404233225581653320492300799713820573659404546074211465725044471612900217385235430131330406539597782555879832704043087710704014091504865718487225607115730584489120127535174291188810348515844625804280040848982170227052986737428911866870436414080331798352853430057165859497204294530495615058669237465491338046040589896971459858521525348863763229382469313247942508350747875343600589647356411711706572332212422688048452971527657383130745468457679103798535396665072804837251990803348897600802349463679599638554105167651038885312802259044953051554172756857564241136082054301420003298359603260455159917980513813546205412451232550064645100312146490511726538054825373233357797750881298400570616990716944159422860420350487543946654761453455694049807415643923611416692452485567949798609735771856721155682632581543864531594606216224427244161851641619416346494414818784307278759150811235806619427202620726650845165110819658143246076937472022655414679520478652348895761591487074952441590590218398125696764623400558857670418710031938170657568251955048047625626498327383695208444542319311233110347782840629979256941312086848241868040272177367202694785915793655104046484250854533841429511601364348588832239197774787513539327786279178174464577115081288048600844642087883121644789721248905309621522816438818886004997540407403797555884426141334794930125503638809690748164376698122870517878556269150851298363583775607836416314816200250868968866701116956442159621055178759962524400720452414413999755393499829739782916961683149869413017159319853752781503081739228679397055641650960530661491939180986063209257799576044559756957236661821975164964711804956096785584322913741724200733496361978401478834491019169150371528492963669333135554073809108367992212633315495911077347495225235362931080250803318738232884327929660197994813961510791493103949304061537798137508828467421052245291417245432541789836930454592039985329716303899204861350413478735490539904111828484393251351933596367956689090713020568343250180561869060397618424741095785433589390864565320493989466721043090129895392672200135196376662586150680603283259549512817224245272119582863190029254363837880510027894274055661350253342982867055483710781171229728220463095651006780166635727270623371986005834722902684787591295113576543394846903786107913453212946857161030118313279316344013541489941294104655112226824142642679933694578256014422242244930441237051285791720369187923695468759670885545857318535633269798155487120082726674763134952660113657171371827805771924471970616529171566702460585919514215328823877204171528670708453691087735993589325264253827182572277104258036597704477206476244975233078735202240699616112639512021466448470311081662076154230454758883721969709080809570748269929418775990048126845828203858604163299164511958571120298841893337166040920647337219539417895909992320184803771186256241977724412515069762775266424694040264619838912951297641525730854434714609018803557883278563993229517439740692514548787673520360240015737358724594771184582737989799414323845526461032586980222968655024174804055973728585986406383554074373427105790851999167919843728948709639488328137205983817014211739388333748649763359100026791727432290660094405849284521583847666081822820052751031173304043123483304823500676683277381308798039556787725327239404261981264667468030259840559061568183638104499437134358167188611669376513676749745318332544196965640951866531328039559494795314870670557096009019506802335168293226100431083934114648316157151286398640902754291888674229688597849464914631225031038669699835537765142272256991644488147599132585593138694937528259262294231630406577970381667314931284830628806848424172436548401592295232918148799738208996118954779706413951781009050752393101133969742214423672125226262122849728747107094815548057118081950488121490013824352843229589158906733187069417180179656864223781811655135800225992746882873225652530255495154943895041758184031993967900988414468924207449190558897095063524836520056019380110592682201852324106804925238781916774974518473850658204592148153288583537288546018763840046716952949686438175724512554097806214270909330027947103832430247970120945351817060585679749742729316235941841338192953795485043900128972059358800959572322584021259895890198259680561668423498595016376570964795908195194813705447497414987527514944882601208321531976269733216451552907641099620817833360300386071956804369938038898564847988495946368967826695347215422729195822363902566560356481104650210126296389789260223249122135301438825400190491065063000321849723598677798432786599627324243190621836873934656699106496634538713548191953413067094466159598143446458644243989305600965062334769947263921400783242318218351467961801079996050467982563993859281536007183536252381983184382077446500878052458243473813727089817994409067792485167307296967624418112927729861490957156028413446834561258888806537232345079310435908318737770613169014222663277069192855857511865384340285342289099918589348182827671329808728446302450454501504044592161867046975827097332229738860602574177976946888042621842454989921813781789237062518899610274374264538294079844225599224985977530703290943814620268714495169672159571559957708842105809925991157511734351296074175699592664380241181683329897398033172139343865402787733781540910818072286337600236360792369084263022575995471740467713871952796624754745588314228286704412456755858033143027499444473902853878543006491969521214920494788826146378735595021919337000639277816236532563014062215853406269708668253780259357285309429330967786181416288734374390224392582811494846288633829548089482724265599639682421845000486622385792969533100248458045934582729147402251220568200664293430591282676101652425253492357052590751109505507861822915944210868210428995885373477258560259008611711910908785274785243814498669422770995649372952211470953191170946745835754342287110262162579537782009666460902580311939984682958929708285686429192636282464431914891349926197080654615133504679106248083406583845938286428668428985311867096463249594899296362767543811980336138500401222928665069327706662566738339263709460477656454195019818189497723682844003666554180275037127962862741865742415512438271076978743105167222472825931911865542145319775826418058246065538617828876833999332022866953626369712077985791818662815571675949344854676174951334570795596295747511201991104667087193212970820956955175110773163806130533029112674783887787406466654631224827981742799903881956532854797676024184393787704238668230626271016110911062247593464508357613184902459698228270710987277536067210878483525277790955916528119697427486642351313545168412231369733946700811853888693577262026988218104195287486599485061973707466369267912073457638484010064477064788748185553845685305880809148986863683561772098822234203392612957619306783500301967935957162004630269449619129304282110829502739895560085477481627443858800175560412638737310756963780205463048660027690366691297965270872623903025823171144047947931130130866655043765152154075145626349809781425084674673888550634577316155754016697540670200936289665785474785348967495061726166388220116149813066687663017760579996531716462798497148268344374329053125625421201334804909264451431508955772180140955118581711572909061506054099038723776308979587136859848305716147538610916188233097966226367028244044490822959951130149432125416977739696451958412713319848788588475469621383191842492170657963715777000460802648072095035879555012245941913490122359879009032439927011819780578362911836895527159493921852880795506938414169846586933940794651354441884287866137690198964049646450076114607158571136699851877036417257346012372714700313009621667623193652184019755201875534882805147861583817947223823391767194677930415010282493122197002120716750204913048936699375972377501688630452852731744635767198617608617312746089491703466104118816370536372607076640351799410393853082613096707826947356779171035086487116251732991155517250492434896018646661989408956588306370598240208156182796709975159632762127444479888940413191748358242287579784072223421896967805848018696494125811508043561054203183143064231023873375555090407678636401928993731189911216562848499349318682406028015414616853937880614490955096096569006353702777650458537537639863257893755363082006886698443171248595921825374901870418501657162713335454740075265751594852494408057632829028314300349280895401423997152171992606219222659482372789787180888738336717732171753954053834279252313013127800701458742214564267849909326062169344640978461398615814780816209021135632512019210400866834179918685895179215303180449121081270512028362758278343678175428440907318891284325629179940566197617622238286258790733204150032364823361898284287786223873279083544976714587816295637453544979730622722098625904625665771625384033419811690103325816032831130636908202465824934397207131298898346226034695068865874922014277231302186066561685389223185014444190857460853649507908463677322771268435313541572341528267327142694300801093120709834473024487229289797801617131723001588067404570521733988042181157459544139490011934411914389646154378736964818956479027019253173471748300311213662655824597520864356123079306805844703483705360570321806298917079792604262205177828615158074794018003134462378335998914477019726482586548801463870430584818425722936289659409288518862441246561632934171741393949171416607529411076715968887669077934600541745271360197440691253344724835790688787830349883328628830545701464294344446357959448321903371555217255224000518194363914659836017546632561984454482521236497831849680544432773251542809253731427509978402742186083659668352994934312044173603451682628855935862647842272600964893754585097032587103635320818826647862008977634746553714256425188011497176662804878032465027670715352407391685804440224133835590509178505964184794191023245883877238844520447110592705637552230084925237722496188931481793014216719680889273389400684346363550019823770467297967633849408980896852609039958590344458428259129180308920877395298972126695359358031428030029128370553540396679739498481570785706786920820321517090830374080310047623915606066319302332533881161647493443480274688290824383063972713292400490704613404507212151232823040825534377473747421907713809257199729461585597106168840662941048425452149392421364200832163804418412194420970005505329956227751762918892614348236812397144062645368507711056778499725705757679335907915171927484828286567231806757023030266029149128361409941371783734444672324668835818199896127384757205177782976698240844469937290924008312982940655493314071507140718045431740056054080918507765001053042896828421972266411163502697302268136270424684163144983710772933851121390584910585413365396042830148101622366543093358743794234031600079985885203165407053712174496465952284361032618971692330266771779500433279409691700207864218291692291861988316670075823696308078249941524426327450512068612695898948623208964200820099644316899472780414667921526196184868029711525085165627902534518139643546987490924122600516247284837333846767249161294123619827681086733284603428603759946988260162380582687674056711366097894226916346810888342857645528337893985902545719409540499026236529502827885112967900556160225078528602435014601683066227831256147768959150625393803931897865979176617765577663638168935493591406340736827304013583764302713658185503684894437224214658504537148125978637986398125054119685192037830500403460985099496570197502218682035755030279603095680669219400594929130758366908511970186881477037898780539548070194710205465116615589831260159143618309937870495029390361866048275196385124173760848031209977903644201363706409514367836739503078875144230844722876953500203737743314062519077406918589455538381724906089376384652384294333491997862582552651116664958921730206305744538680933897943831179970586688546731330472197471184160633044365308828708102511867996335156450854312860735875623824735530183339574221815827656829194426405730927916691664012194640351915311449964385928558140576646058818988948614763042536200050099926776965085234432097220329258465107942993573854751413028644169230623477233788880719221173811555978723116796372289983119717481503588264483152181028243995079859868807226595939180673313705112715736814668845659857826297065301469919640166765276046099957752514844266959912140169858399592813853883960702000358345932801006094123868301192546185172782829073908803160264837398240511200674538445300913309500920734049312123577059960528034508166064262489281860169474716167753777259705771557018695194249805327377988443500642858087615013979811536638250686080827032068270696879510349114042236515626134171768654939395513388618090570391783767509716612166457011842433107173352946183822437654720120980020588081616725359059478573104770101508373653899967009456009078255320864556404463612276138914959102132469179733814420115938521505597055354092842201981077957483528431392491026870472595997940994096260332543212116774728685573737510089589440423330653811664890978607111871403659937951758913323369677130758414104937857455572297720233360749965127563622304092979696621400315522673910771922770890821343553076953869574762767955308916668881512424129311430592628729575098404405009855545435783649733959644785759484045917533389351846825154986438860917863546637413632308984084971919368074332275727845209049125038371509016712557011191538407590738186540073167287366824608077764541374939591426969009263163320807296709822781272085010956596318311281956922768019475388622119591219077376479424994512391906417268415953597333436270201030910045133710571420637141896124450585716534163114976898720550145497432822998277478382670564721139259632572247076228495026686914305299132483188961750356235496879378894027892935251142966575930732270405310367975416799052388142639661078310633191612837774372443122425991670029612373876152283746913075288488094085356392658695100306191122298080973345711694297641035543729195249568295245613327434777772372053915296404181817845008588936635969705795953984605520303052317748451704767157289605543711024883515570292006502364057176292255493426641201271680157925430121702028531179508846837927186812309308084941844214413763435231058781678745074597658351480762667560632102499968544675081502524238038500466368726258050012539589703970026244738595245587318890121682561874003396471346270173287210195362636464416791677447622136410494003132289690167938172932685497477107868413562655590590879730368115250931952281068933173086073100007595985765383521391222852395163970550715442497037778388555116470145804285953029339258084273946693362358215453301477834005965003288278424612844780591085831650811031842256479175640617210625999586693631900571983837265815358422969547185002299690867894344939757575448026238914827167764795553532905564739297119466389692722914950452386277286620420329481662107122273748381812308931792204635466178715194139328519329473212563739690559149559321021252561695629945532965955258615595104946809194620679687983978469337313294226071474847040751475778621533936876211370871021959487046107484003280206289890443666793175951690283059839730142409480854634303246877687031272128854188174778665048210945369874590643821173336100890153885633516851490382414536199258235857005691673276341878044950826130992935447390035219422949866644427027300808517880513189189369896417870458630461468274372982298031823901510599443002379282691920527605783512611287668102604453594797238202427161697826474302120642930095286100620074107642937658717661432482532557602371775803258506086054370080263395970764628118912268188890489597249101766227211145741166760654338742624540522268140240560597728844887107870626018144971118772899461999156965645629567243641472935534999718087112704866661346791319075935632913109893255290505958586334473225939382845985043399722220881155783172019861398779637812076668364526166756727053042050378846287385658914370731750757379875659066638956403912223168721181681269829872716734192724173835676631892692491191925166407687963286920195561975589022976269288059386424725432066418788947587537409208506750088011961414948086999605520269755712353014906058727020133569702146467287974759231997350435423332461888659876046602904389549780969769036875665686281494984062764872524247904401682774495856455340530732319101466585259254371017033185586235296708876452493922859505496388975670900907134206185711035383173445610135226747938361354217010659174281765308317164095769714595618136126512546759337717290227830201521778245986300843663221689743292965709853192430404408602227409316044957924802189672339913363965240500590287793066819867977609232577671861536518782494221425340955770932662746135001182939994563635381932104418682776812978955408699970069975630505621987699908538852715622080426222771684936166161199939683854467017154483539882923070427840032519374394251270308280070401160110296193168882321775968508402816361918051570567652782314539970615988671659488415621417642531976706316274142109310670513578435567032450482183254653251877244512841347017685662744291914926953479753157103549132003691841255330338032532412181912072895439299157976046971188771314692380029440670159480516810710156968379035510427788826439921002762631719499183126553510215071946222735768678391781545917044181779141451523541051827704656566050316118418703048882984640855438312001472858444872875717227220465802048141449099549673015753210137092405559132880161130935511744397539744361411437152262330640157251836995751280959106612439278868497441821941806718545735840187920422374774471059332228397921584395848245996805548581543525358320880209421074497758077674603994637841051948515730104540252274127698339597637765045059540097096015291290627084602522238074037084609829669224433877034183775261344132032734573322431609414518444213392399064259239961384716578412486081614569933142492707310250365755771264889890315000977261490886920657835141041589733633859564674170958459455742875335990767110373925072489046569467262024610363068748166913596584148644503049970457625533804597467199193515653764236746690989003185455475798579556808710764849687257944939967526429487372720271174044166640984849364840461337392421155669162918735902065579846251639373053252941221819587957878952318850187445018070705316428945131029353834337411876420815569431227253370647991720423127279965288232437331546206179759365790748951953612197677379538090663822267474378570586417005130973326246075027972707509783560954689047644919421089858018272377461261133922474221133803224757669348063911795890776098383510860196408972842621921778159314489005830171504306140366163798787454545671190375798840679248708402834114626769582529040822242676781251777191068171888172145310016053487433117543858413200238283538242959422159041492861590560217455569467117165071673691148060871304987159253296904203150461328551767912256728832220679408271428226724003406693730079010506319998828797542534969322277065796248507387283820320443347598682224494313935030823536763973509592101704285852530224624888222630382779275109156634864815174815920144308958034237834075305236814425848291326944882150179319536402114158820243852053146949235381406200414307944988238000163037915142501801613507920599454085336248897251510189597874269720565434070621078169996613727627110319154204888847472304399602360804284092583975775682097204226833526429544577704861481331289269619462291226663649593121311325883271846342440193006766259178497424291704206710752298599644888851053022580562829101244867758060542008012724354789986512573218033761955649893644684629992686134529233644385783157757466007232080039625176968232121062160625618157527128270335148533729227417883154135047804616450286602562076877670655440174891681346322963387144669012221901476249904833589675058812839822378231562476747554168838718745628021905326886690310416385539991090616817796677935659679562501122798433749593803187227902450731040917537791137943179810352504679160845016909160137521476338603852801230481741757674752896976029406839862820885901297204601361819257379880014292072057797243935934238801094027992050323488075037692834781719335089490492744302511487392234081102645817233862662482427331587237114875847551703651777814889617637013184908145508015461125742436359479947850018288726941330203996671413339460227548342340819186376092565185818682175394928090208509471749430438007010914180746886488755591140328985312108059776159714966729219205589382919142797372418277609610894679062620481715090691865150821561344953994780898458397268242192135216190013034687685346768320245512785309258647577961373026073325601372638730010167171113410248821471184774352685245119233443149324447383030842422299260312327855217082878120885933127506902222964534143749479850870518506627514057359114738001589551027140144809240695560310808205453050330340766600405834448147913760335013628991408276071072706582530407362533241006614893529974114263601780502104518165848661476121708804953266049533889512684748541114849981497083412740638874195431745492029191812062783597001178073107357475174726567844853351561083615780451587864664873773331403874555146042453190625372135347940962645725089345504832948286221941181757486938330043829541592577997261069433461114774042303708232258029610115727850719682323923585133701187140555084051817229558087793610936420991006492595778463883784812335583581417547456779470518851140713631029750816703485655352473123396871558683326404083062891825532273071862279393611303250261140100731878740306704077551604742057152109491494017650356691040010838112333970521537785119339651445407977254027762926392225832528000857969840659660177556981169661878167063190133854327011779928074840759919487282027130385731423686525832948044377504091809466122615547686749044359598418132190765366352234569007018147796990674844643581277146035752237022658249956869670642711517076971044294754680460004255632530850165032073647907595587489253185565654951334073035189571651853944422113402639952190759410112216004239132722278871145250570305686520819490430095522410209351769016778176536742108858714667256875501023636022472132111499348681634843738014051534374328702850637721277564018775113254046430611691237384528928705011203632810927711050588040543170492531411191560532406910051521861428189440938039314752104882845015438405355483813374824143611881048084587381337666685280979346615461710083337543238374054011971753949336712209978617491734011335728584695791849556405759349422883054447993524670253292931474992399165679698680643490792978600271474528057636145260357124120180163853687932703299024904533925586103292144336934581070239226732039095641623888875217756509409821841222497774567924751901792180662140101661875052033002776638110330600130573984186171762647044762437273587382266444999552398119066015466054206334252814640573309258179992251208924965687699928986119985450682819611720687010185500700288276973825887603141411813251597087178315667019038539808280394463086892011033676823520914449366517106603249155191834357512603097048793872296200452448180139894989281412146728380906313827142610544865722645629275509609314649698219226096295454463559586734844116904340232886693039932912758555500076534442663076556974318569783130980052003024449368625001786974205699883900901234989045277581195604651703076303224001785152505817357398288199274897799695595940908418258770067735764775139666928984256892590360157851102550792739072293067506661235481706657604375292346781172243985427569827932474734209157370926214000359041198635753300496389163682439686802306319660139501493693709670296786856350622475481924464111384683697482773362379119389650036168372653751851067029110164594904335807744943509414896244459693666614478735939308082532924859759220982156107982488227498253304505197018518511548491410700140178557203175052666731178307032844715645582738435449220910640703714570465674257458726805260749595978978498151744346904396789512064720246614254937459107011170607561735709347769116815204395901919583900703815840289318030903278594450411151595043180633011865426355919797931878232581104278188382423813415485694695888406213647713110291209694358755530090057977359243033281948445204666028405276629039754327631337071772273788734729052021765549813545383058344756918100426690667373291513396364540637807373062247992476670652592572356051456403274243994627526777334077973560513291418006542772073873721455368005152823993628649894265156627222804703189472463328467541284405814176416735384079224696743185650128792894488962319120210981587241510923285332832674673488339641596709185554608140760238695595050692588281190000221948379187111844091606530769526168296360557687770205807834975783777299891651383352150666907252095817772771718678913565015838288263166022766142256059182671732782625668852322823730229721118788659609153509051509257904530156015448020546677248316422823248384609623508394037122125564300013456173360687035386357569003184863582817646912124415648051321260855447165328832026137166740327090914578163329245485874559357309176108626281072824848224094167844289490910819006246253404731577505814529945861123987000256165138066316458275565491765740562856733776727684162108594125020380136991658294955777865247549825458768125026802128158371923480819837775089388824806910371505673781096039666757073383465602408674655164585180213631573279380504020318097240910765840415412263959824824115099044627793680301265013994125121503175579277450376978027029314110076392242539285936699530340947659933013579243112884677600634602330857541506162100889087557315547556611872635647741654153265294081286026066976795552462665413834224642545435806559061302660996289876400815887891383449153751611938055884466243305222254159320227510571849775355287665302108767220265861457071593737573932802717033158493854080957595155564818420295468824624152228672309958837812920171078493186870296691437301641468881389914081793978222951969555048375302950586073309021393504540518575060351799685472873171434060632002219771132337097960153005991215462555175833379358970277267216724164719002072317712028320155342558461415426053751543030918018245822287365063355161193348939257921811841294247357797369352743256393867190221119500330563058714868260200249461843264435456608068639668742184358790767046510147926406884374248659573314551485130299534623084268054726145626639305825334619749568493147960238990329878576588097261170895445675411513629248901491503619545472776426093303861657078142186892559050899251983917887726693293844410118649895349662760798827821081540353760729623386599724459480905275633945351490806231318875690623871012440719881913298437055202971049081972164931657230828101435975221444034262873032030989541796160308251181303431671508106626801422087774424034914915276728582376489168123121359851968531209025735721450482565676905482665089722244989690951789770172908035518398496335415382529643248035836666387269164552378367313803243263914761018670537464394214192763596984399626932291593543981637413954251789060322258541910918795443675612886509047465016053261765280449525073254855003336758473791962590460772632026766034090685660031420154366237850781523691169398669635159138944047098564002803710506341838737673116932157873724338907279083566006224951828424620963502177128238385081521196424836943400091746954964218671465471034714489177734325592784954253179001175717996218293679221978455025256103859841001852917155753181187966714212324005804768863154968571153352419036816012051181570878516427249015706645767857223314517209575652748012166934995669772930563343789794677615295470951820183299791774415799089776533215947610659220635533523935726887208731690154043747765665467166563343531766230572163504637465032848757519768721057551165202645341006313682447777691120336266631579190614026773985816709842410329253600494657484207086494614960951675274797016108419955262124338446106374338857379486279064139184646015346671619634407445354507195338099905709866228121363117014403177056760885193071842609475964795748926726224892611225837184032863995126104673610835388923619666121105023916474501764831299375878592760190896388478140930559692202477963305323030500173702757780051745360426111235166685257962952966116284847356515032222548726489506544793894912375474050002355090753716500363376697571553590902248410772529793778162758564391531284892377299404999503683836835840231748440524720006510764400010261844710467587926209551960959257764082338167401452956370145493742828653656355858195879938572951223473414047572545516759060695103865113667186005052853842832598136769890072304729577460009672502062815714946413868878135436734978860768670327466597645508101985526585598086364951502916677931404598812695186889318642595733438961271758438732447772168206869897308425104031095590913740421320687784968515058646371156628860504742713813169553976170145947322446781325492642037790700190554107110425728097132674829658695204401234019384330397574761439334365483475648717582255673275543470648265039254168673431080573300639227651672643044350848200127437684394007545582646833256930874964862640600125679012704418609726504172440384832660529764761755786954564187968166865639185309264632830146560984238241098926721995436353489311691997563302620698666918534877823001280023208100843148584515064842166405251538350683616406248396791338490918108069572071491600342727997944630997493604102349894589880417900708626126149427047701572323060978408573117382803714194294402408230049808508095462815355349802909877433132412090190161923478893518437926049676726097145061768733118560819969703899669503890913609380749627027036609364892716301551897715247332917915931780502493507611203447629059522305993632452260576473349916369614937180099910865976392445532883488922527251664742317686818451969027991752615929573819508488904523707643714764845661930456953254694675033306460808147679543353565869444937671434518931979054145980445695327267546687484342866358383720636367669945218098640245290583129211469583100068015193142292705657121089787489479308679774647302906733269555120552142193778693403526706383056576548454614409087852172795201342381524488242992518886952737971483805439336620976363208513000126727058970872325300091339694767817961113697693653063533055677700814949664221046057841002981213388183277442139128427860448909901943678304502530706178270301977294627333458897133777000420911945686607212049450462551084945867013893922012155130703647314617583894521806610710863559077330138877041419265567886102297387183416089769035114967640806296721794099317054598099552869905818567590287948796704575468401957530838722828284932649828151404601978475236552702328560591756887563661694167397617386448914934603820660080057600909840421437918270550770886259406769810391196223234344510702654650277415262121193451377991589433830981247717956341549949090701931092939098549081913482873274225647732914964843129136471467660127819570029812508090296445767528665372900283044797660592050845653681301684935277304176098724075832168977930061649137492937748748015156082433507402805764950372877508494290655824816953905930538815839333217027293340363469180381981916454420353664537385114385233517700956336525698505763989239145900262496310765822257031490498284942988321607794331465482761577627938428260386972124766650313780100069585751123725570471662832337596225524096788104756683859723046359560540233168413115103238233628991068284710822492655566453623509621447285531501307420163838848520676528732787935387856677008733447219256387938074531934507137187928783426868978813076619654400944489121274938177283342667811205932928680339169927006260533412719004491190145644175905061466032061901743637501847262205765362174831902836038124331131590348378924925623443926013577868669665026091037115602859830656620454348983396224198553587107837557102542659512492438330274280473836199697778342361070168572082422522722779949112864458456869150726839932595598568595161872020105251127969821778655341203861659027841633217579295445256574787010858088554071305090514686656156997580873154321789534734658984455718036398996581280957921860350627002601564963907144814145067933499341873078449927145734840361152034019958367471259175547767888834780010947106311545343382498203617368347698872735452656794705139014387161315836346594834404307507641949589949750931905841987569535658784477207974943549083745191099949425656584636884276916959012424858252497611229514640772097424783676741879941872605805924783878694889041605878848383147665875885154846401929698026218736443621612027192080573494594402158641852689666616711188140882488580745915983283297612021562068325111883710301988876424878677169430937811926904239772754663273971853744791653587382185256986564876132417572781327242997606031828734860379438162595683357031565181696692185251204124338555790351352610313158280868723755229256767898159153902462121356280474056337902648042987228467127927644261124602185446428850260377055984963222757937033228787773151317620812153473484781943245059678611908734173009941581713973555384992674633784621030354464310274482902968846639018900254953347276807925847749707128500132430802577297097598757635362270636058630903815785353808720147577790222000437322033028121086091203381651029069759770820332741649383079568368487765240623905659699500598673899622944281967191384108011033930057516254656413734376004575627651863550853178713035727057475258612027864445530140225475334749371207860026801514476086343868917200871752634638755553467170858183746470898511417310441599203319346170815188889685891666001388543534163074453478182509213681968888136692626233455380917848932798572611806743303491325179299601370962168057737288360108641685154359199453274914609278111965656978258100774234478812781878733629909969931291139791511156116138078620130624417905788822088247457897320219983823880335301932450285675749347880532527730555103750725290423885492634990870885837880333347283219630555776310308338021047781594321114561478190240735786331778745499136316249088276028458905715241125636500197244606305850539647207254740800454120409457666526334853446380796611508161107473071978029927828270993661819403852066769810084637751201987204114723526793362790545539770058389062466109608139933227719843195735094470474459475845125121876704070885353363044653419416963377183033721416776405583421767723254749782471328960384512594901356930477889473231465928551205171523422021582346257665947717639335213581857072530527619729610215325909881924948832757631372146264781473863323561605373645685040788150134798474938000066968577427086381983851027007418841574822816081621099968056562844485165410258333112164382963187071774580780588539977559373184252836029937632411122762664094068677016932590779214450739711357268414460561744667406648916627892181258914593811274542031677587588568840990109620144669567072928639832125250748661269563580114678889142361244876153381989804297019605839804503677692488889695914335732370897266293682807502308494829996878985183465997120903776573655680107293529344479499544576391519545274847285142127554840681792602796154315322940891142976986989443044297401727490960446108210298655610794885326087081664212475266809715580182246142764655917795894548474893609078493409061598288182511531333430557699874548327936158433410428525251813953866623712079637421376605071837548813293347109297756059849082656866969913013016294607189574548392999732433205760987161504457216097281764226810237069112258068643511203487692315871694425550662457363481058278752895764034315163403857374918540903081035688505271701276181886559997387369828648694020937322683091356758720806808824067174766801226919649212034994051485276243890557356763674287156509155499138131799739153253141925613310727045468175173552135115173648166084269554595651537235739001677195557093669352028379137197857181617485810008445199627228466669720267271207663331512737671218482889516029339494271097235749830727301028699199206331230753117063241017700306830991859267291366475583272477709840870583011075008612044036040289714967655937214837911530735182120358944358668443807156035728768188889773143784452304494591586059087434887974639074739953848421278967249294245332361683434493654679294281371057916683557927182144472728494677944058032206494081802744927525708225217752711264333032807127474981049979243907136113087285708085766491859809588279099205414963608222445264621782806784708190072732650855773985614626524545911014075636768290648830396272418443966618240448325812860543337030669169168962651403189748043452671078054473571526547283153217038619186252130766033407122832988247878869056241610576925095129097053289661497912651746518652511523811381652473723341526604003090387427609032456118122752918585233360514180564031523756879731268094295177055534487778180648264621497295345091488277014740065578057690881738360441790434237003063141769326149879055246452174770809809418876380742667136820492527456420617424519583643772277996779730229658078907008894570302208074564441786232379342383050056741398043494695044451541431634782094652108674106393774376460500278521198778461141691632254266242994750930208470007896274435447646000247565129310683575825738638204012138824262350176617812357499878109397100507535124035381493806518311956804703947850818216482190242786876836338898578643640156639006423519806387984015672410620369918085648430753132754936273169806834977874618722521687686813856060052610556420756136717410128344784290899627051024533249228072257583879504464866364700180310727748866260514441200321485588327254047670812232261783144905222122609314267789610957570293635972543162559426376245308517936628990719696908569313164176126665283272480418557521986670526003884009002511772148872001021932712057967973932967871383353521800084057161198030436305185019321889844531700524295948708861772782024223950619363621238256234885362041489586484586791951174034613094468533872029245312829495914272031536861834815617677373149284219366346619524336038016609206767870138672580428130505281482054046523991695669797854561868160675739263896489328589999969319538364960687523471074077153845053403543401598151104652684550797593129446785404034138158500068282631052066496811536382971795560121231548015222866311540264058256494110386102314222613184856210147476074212763024386252261892619773946203755968062221559787351026132580844847175312015120507843787609188319619170656967276740392948984508976867715673998315766299112857173751020800257781132575717257872055003997800557030747537192557859722089964066600264808393392809161584015387608547254235027719006145210129069448959036807470233857049990414838403392027277560117454102794013085323316074433539329872047757443814829437164343614043495175458679122769915754630617401162909362195503595955009625187424627164346079618164467206011265854427198127838372662199680593769018669137415887823721283039227567981566520162762519221898279198760167245856998477328365057649677016657811158174203208647229359273399529898602546637286669674365765502595085873319351484730875472016384035665753427051152695031356505502065804622102503455091170358362294572866428531557956918756916789100009005287166001968157256326317746665481713789051542733149543070498306118927590805043522177038001098697433134747506179937216200425905293620953193009803269897751873429528783270287177735751885370876890933391228257750151876800753083664822644770670820635833146741271529192577091476098383945736256795001199577375241570714180284563059517774487930388155570116922325256944046600275401978135710753088837489263821783708999459426516080831073234345118366003841790133886820432552346682420052829301024891619759105802811155415275178281571852100594002218111431360845614812106570090910982616428498859467374593296154040068772761252136555469975168092743478002706260299813215720142502329010496760028694766214236246861569068739522703666370326938237292695754857376222932270058332915115207346354536412344626994579424606644460875086011058400607871323942025336430093868436959667986344528100610213211920794951690959295399806267950353416717601375613439213177408487522016913927530261788598346524759968064033709085521713451033052275527110509144098957667359898978574600406712827387934502472427789530588293163371676201567870063486868799486952766514384349075373601827954257613821109555478001865922310083216858856221983146993935330342340639538777767212041962034083623041564472726922225764436023847377674095917369537848144495916135935709720029284687489583291382135449851481052935592733281495636446967646180478562085824161235207115691283636647780416261926538176547794709616294547738178051495031205939446316037009845843511437472805787116954513132852470140954893944556717738717201133441147066984628569325797958884718142526433572950758599015609435731055283099563499529730824722477625452705315171603644106021964772777446559041051394890850895043531931368267332743579694728754678652336436913430433205355662275076336356492594539880613693819551595653441127768216732726670382936258966881572478095367495574915451080805998465547428582021428397571276694285247318006291208344424867194595739217110290349460960569429124113787130473523148335466799881774104774324833464368409178254505634499389036838420716624525915151356426724710655216390839782989164630437727521534229146579764110627949034732952022519653477342691696393261272155592856630360341593464623466763249775584677059414658416055110265506964145435281527195802619535815698607133375876418024268248103209015868921657489288555996027985837375568193669125456537373303768167430235516744424923735726755006219413088025274079985665376169562534400941266643813466953731276297210950255165867507758040296060600038851203956784215913914704231873019109212683715662493366532829562795386476371799674317213771244654139152278239117679733961612690794527616422868880895533670187200850840883000696367158092422266587994118455538711718593507542640657899090887919612879477643517872384068781011117645514645424411255757306492104462947045099437496345434733026271307564540545811716967927242172389891346081961210016238800294646097421219397211047863543854520084516037613547828392448302030067710175531128498843275512502700136195180561546719761203961025870996690787207415158338808040394753852095870579375075454130994586057232902178600064567666445563074861269797248539215873734941605300459165848939845188291693109880293406231409108475363369571939477843157706356419498865124595834577122316335991083844286340342150932856530447913968667494590181565957347111148549039835615736667752866585467367204893815909966941142036996088239267204780471677175936021366778474963473114559434305038649624949060316592632011225042487642223902960203220220046208158319024450910268358638781800579300920581017419187232588287960680185922293989662522932684657408593046540808445870616792305241106642915238825134280042393913272000281449351010557630807669006816726622113479936671009478240961136141511085914248228190732317966184696982785536494611774359977737377745615136647351003368624925014482864839733918974242003744089116419498951179250876017111622074110702471227441949618255302315115382041293498512864561849141003791837808640254961091068871145811772364190110933618586158551808178409334801138664091390469026183064433655630832319220247561432255549173401075956951103684869158282575536953421527885110720705903829368059470375522534682691779291041609201614853584426650289477929381499488960677691182222186779783810063058907736617184981514869837676935291078543467297125902224576143558320865731588783400351024646415031404287183653247886579175616628350965555704058256475717277856608043880372179469674935483040200754315264466351185365004931195301841039444324105326851742757490286967430414131648290846239882492997486181974882125662276554004636394244096818955865887278505880347774306502921179269458676733750790989097941703345650434616440956079932694824574707779936499456080723379082670075397839198730744600773244548341706882779512639065784078871912335536027710779692127904021633755304029293921731234289536183511961044986967995545745537663546207808072748279462513500492838929734311218721004209667428995448718358416208051090389026426618124244478838374813522901888811359676566724916372671791653855813336882888248161511223255319983727903907705948672648749561191278557999812642151144808150479997865093400597975189026467324046579034773846354763210403492496771548911997541050380859914948132794786764524232754817554639756672762576953046620977706134030227805184089323092000505335407981298370463279034634458806729186694293140124132142127468876156838121537307250774014843051729555201276011349254862788682170779972179978536935049503529358798947077383266574914454128942183713808679293432072512394513190313075266873699774454929915717543950292564432210088015805424961417088849758750905364973963827982486101898921189593064822196732280185636064006704820655736274197192433604983396878065548261818662317082460682208477264884586207498808744808423384657513965696246940911236924850609197784906501933375738823326748370599932036721012633922321827913948840706952454001441397185545021251544673876976869319922607584308476026802648780106018787148268197597835148051456914135546218644767498166805232822988373002113247305949571341361509031398678037993301184095311408787388545526325797949257831547737795502907191212574538249378308711881412694149817333445237030597163617601240529573132053269928778273455186828687550826007068851874607973168739904332058295390730833464920205103241351808683920498826838220614406633560194972287446009452303595227547785373671774307770672643892624685732023787630972529950940220600852518262720960217587067318547359261089385970542786142352858103974883171624725675536022773635298885412117973666911524400354256059818218249512279902203703514406792975669800458469613927649591199337024281911977002838749860988618273932220381721150071880431202596852121853334775419858611043860144509811014281972366984015728190744728355122768134697513260313150453484182388188697908174547373393331789310141066220811512100715630969907596040225623171525534571383340211297356533875315037404990752069330203774108072123901452677536025758920103790916554115569467955574673544752171817902725211066691336055792565930264668308063469812698895775520424405175718085763700609952271222558702395272177958203601672267544400162879808370684410922397680491048941367899858954210129250263740597236859974882094696233246089783754685372477660661832746345865644506310884083635464568928548092296777539921594401192625295589051780568806027439019141640022787884999187049040598915084957116796502701365087113313598619355409362858698624514967653754400180711461113557702889492035281954647744072633262288288467877316315996983002807687225410623718429684673979900226767917483527043474276881954535237236370253078002788075797307553441661476416208982511734694411552008020916555458429723642609240981918885649614833322462658667977465316177592266387306575743024801841875371491337011259033262620809265728873291351809784491211701625051276400690708915479433489441575996001900114653230560215805378008559642778967595363701706358727789229986322918255566765939010824512436295577857258282139035378684961559582482629159899414768958315470757360827559918399102192004330472425328083892073887090792712761880407684360569654758957347060279656872745503163654991685727604614597207640281566418395855432223074443866371797485015102783151017309561881238465976640564327158573317793537522401155941814817679241715462550935570943618136492887512571575638896531936065523960693667775661014160759750372463021998254596612553377307162692464112538386842511906089141004550758858927918619055081832356053924624878246237669710302236877138668159334721772774206900437172390094758510119192895010940965830579079701404719371091667377114597278383307143591027215827284832591267450514503748294253817022489532396283203463129374038904834425822527869069662900431740927984555659948506057973428080568274130096403917372414220500950716801160470210599257611289236026724641234641112070243674804364681460372132926646081929691633724237270471358302690585753028721298478520813787691806342962268073660511185471595863545294930751029352937440442972704363142079197806761713852289572279279359800477766452317864155854724541572221150865732281671244586343788491552265796521273832032563315549206809037107236651337351906638199280221200063926875642148969999447150836420001791961889409383455640336084494652857421581154951452344291231900837846457301683438804008194730749747030887025043133501293955776627541610240228148680272462746561285394330067184922562040782770273761327228586706429161327213342393860855939832595343044816544340135551877466915146375341389997977007612228009172003066062494173303071778777764369149257462487264705967596313207319858767349214900896590150947686535062741820849024975837713644407442742905821476431612571900405668603724987802013112376186292559092034144628538624433110885715244966630710291043754525849216899284925016888849855523713779888330237387866846847605378329185855696170116123967773034411291073759058137664132513592822504990070841341303817275956849657147101389759588218767610533466818397394870540610338333025045348736026878055404714048304997857953600946048023474768638634701913251565497025946046477545192447374764864906187748501292044772541276333775752587230692457421364413172601703665154657797842780035862002009266344874266900920596675082435791175111339577821336133970468938094013445710572789972495498316042157957619406448632536866277951227979420914003454220017661149600167173996911825625658980579954918102084323501954147602891005658671735333582460394259112257760708203535921950763064134856966535400177430948247168952001413075290390242578409359432198952597182628867239213871803025477351689768858904706418200421030696285526945698437093084847625761994409071222897723737863141890335439367388646303653582443181774915221066533918605646494851632274881473168309589828861273883627302343442504246520207722451072771043082808706136202536490289169767886022754308068235723147634149703803829529442836442899278917064956226685856882007129364129334299542671826201978103075819774876183852624538332977161896686699017824188616233616091417437717119718597713068187261078623781613478204634725725989410200635226464479100607302888612233843868003876880086741474164344958541811871740783994823231426606344155039811262226482768232807150967986995475784499044514135788346848503849084496137024639047284586385740621033825090898912677481124204010192366636165248010943592853751489302985590063010638298612395027834925687511873306602717179222309029321531893446916699939920681269982276602958426911745242402700922320571629882382716132431527878339719898450184936173548174530438554765983287139232424943871167922004931560216834923281919451741538100710581135610619726262216225928009739630747805296298227511599002890634392278249752933040519089568207010633767906556464685328942560448967124279636167080188741592446523857338825353998848886376113417772700804200232408499125306995559647722436064864360847376717858734056813749185080783917133538370831956238319927360567755323459261435893664132531141501487151933576602048079867875567928876646175357012348527917792457973262414154563404554494204352370824292508725777033365001891589345949579831896118920819235839203281301834343522696939931727396626021503237111655383072695897704974688323301181875840652709932048366376899414194467788196450222015263943723025185297540294007080530970895347165393293054439557769057679462748645140062658694296148683049500409081137972677890572965656770523500339620352782735502380571367462208505012484858903493160926464493443793418067559356004740293949380662293818228575503266164120738700329448379902704638371221242746436892446247500705002758498263661204795296092115045270350001992572754391483641970038599835961249086677241352934055622337506610920152034248697706190697951358880003106373602063694328817047175842586344729656861868798034781420336168599332724420640321838976439197425717757704403585483271886872777682478865688484039212719764530184034122511408899921872497337592840382076198441796987975271926982949353421821289295114170663805157884331706303552929399467123217211523177905241591447526048518513059288620931277897629887990735617921988300723261605900982341052850927226861381114868257684505799809786793963998973033121349859986740126559541757934765202523932021349662394510054591967833535033867155583850698330831896299343480486902354299784569226604548306208026502823111158375290266683720950378236483313315810432014540894269436808282055181094060449486480603565258335679523498118232438311526873009892821376554951615571142793826987789887005082564954851142464676840933981914030099180008477040217058753016427827164272750906004628030004916112314023714433776586175037918579666152807430862370186744667911929287160425341738804631690840832382695025396393776758081275070785238703829915067966913597118841507876679799434148948842123618634844908284516792123967178521143736130814645908940899457349652960187033687391604104078438678021917268322053658180853677226160994141321921459425903021019354917478145843448908783571927403273862728881600221639838396126054735786473122726705989436541433044691736167914635802205468994914263843072276860159100544309571947435900286896996107047417038523684719186044572346379586082116486733179467015863323980171493202120464231220165908023390970856664155547420617421008506330703829956791466955230054085480167991647119899316226934019522895509879846437031554606382804118752074232059857880467888532182792619612606291566900605535574231216177403613100003502212338898001908805769197649278759406925221865255763888485357108909237840727675669693062832708022968253457001435698366531668266795819738147661878819976937055020068751879435801942916088795239300648028335916961567471796413573906249780496706483942064907334689264476478939408175163585517619444790204844719891951150397302178161737506212430000232801370992373310826984977254912897609270240034032813407267087194012308326984517703057241584813655853392762618966497882870018311787914781881673811460271835507416919477785473457985201466078506980691144971776337158869305838865890156730271420779630805588020095873273023593506097727805999144713218377393998495986710526063230954631858143417756259559330314850343081104161433413603869854397611388805532976487484881135619312628231327766048038713007955370663992314300379986833383478354088223857682170332033693324685723516043625678699581053985117449538694294786072972607584961655422606572573704862064634605909034476765399804705827931761854157594171705485855477544351836888046534259341942745870649068598103821927062338357830703528985867596094185043395696903978166117989334826155177670429593314450072941270523853946108231864331778669254242297033954216561704746798832107608375984641074749798317535428995694142506912235495266641960922248047325357429151431170090547017019842171829214538551518295624003462848255859561003369637107637419752661006031758601212268820725338260907420763505709656117155382377759301382470546553646388106274398474263191753720660273303495347152218506563194005701949621033571199974973521690588724893933255746728749371092919838892872450774949886489767876374917746560001869216258894431997766734346500984926552402073179312219069493924996245693403959040567710551927796363540563731620807972593764622071694790768955163370592895459359642423794901172910823974966321316135740790960271304395367716953774447697779389621189653761567948187682482433290786001232634426738808329666874546365935080750532485955078496178692977992358753760554364858505553532368573006568804579874038573073078472292483394357151043552877474601961901505468212682510994927781312247231081893130427323131599624467548602475356721983602208254288139693346355218509675591755630650545295480160079118697957545509990582140243940666277766270293899883307929517541068311345599319169068975713513230783880033797047743858759463368033019843362221453176815827526215890409796893942798040518372802166487953910159279668398380628064423633090065193711801317785517657538344797092736567963074824902595703456695085163863842465000014418328918966144093995488886777133838812567469534241774453689412716629692763442465935845043376216903490080535919346303599857967929589084574333342761036853561372810694148669952475050698241527553198144986549278627404391369149225068124926286110728182669461690803418265353196153885314032271112265155330173804533584473086992174459044240261083631230083224843336354825861161559440098195600806764048412243471272595061699897487653981461302293100244525870706856158173932894905770036175753152042712999073436770264813827560490186786520511915584935010419321197526692913429062564489984521985018952112998941346457007848319665035440298507704399571905351805068144174797549173677895660397268298501366289855770528769089753499292652655078178425170224160525073078041867552501639743232558235196007636052393030859938622866464716688639222480870738432913733593153667100687625561799210583906743754469372042148607675229955370401682061010604340283784394313267513342864934987341561266819318704936724180293573513288155095161645981236218751698324083063079893306296661931566069812145464612616401304846378964733984400597721971389542733508795174834154030176202135668078540273874377166540803714854972801458037223152125712517502113035120814427881236602022888123914061099722072174637295670814957615352367302606239841245909916564781553906499900724988274862352925933114217684595279291710621255768176323698214709076710769187799043931186274254472146376496667079930214366794076329171629809180439929214238472832077000180407924189201453037820874547369691886489863432189200353244842911248306281084123061424278862429789442621149958464824405819286959738503672853944088463217942341515610799553305205277971846141165112839073280602415270054753593188422910000912212300107866789391919467111428511235263957447549596655851875925405469386196910674256186363880808187362067245495744222614184795602863847852109954130514985777960931121360537314536821866012156271170590293280263929491220900542104533946844797807662511150275206260489288363778710418473359628195550914242936302629351986587923220411562736242933179644227332566731086859470288453189066099781875372196389047242276342881719966279242693236233279221964938919504794271089130405383880042995446768963608666910896544767057029540549628329689513107413838908704096827412979957377861922825954855878320968481038389447675505895234853806171822967855575169553238398299379859626581598913105184517553175097485129122596162545147243252392719405124543051271540139093388310769402628870613946343565483098679378022365051241295791981721387899248809900345486377325757965930144426140477737659829600444736574196294435032314918335229777686994792026233013868054145616824616447839596787016270847193243097847733271469042626663582944188247923083301559919875141942538600361867065215795994005676959670458727695131886549596262665091711781758015114412869850198031532153878182155930268764141841211496126117273263491949224399089178121749368568989467617277883364802416968393075411904753911600485545552638169633072481392403679144671128153968362941510342854999659464056380919257294957276815652397416904658410525389624558304299765806078677781812359886087660602859955456642598987308691819685186894593632805821945203754103479807969679713948625972495174641262846466049235006960060915045641457018854093202582310695465649644533212766213833217075992897023503155239886308826348820232082465372325501936162060914759887524367097929442655762833399746894895656648449792691197362005431909315692607462963157767735018018975042955174030438827374704909424945038181277056612658903345226593269816809370873595065881000767576236867442820341793743753423801761572258294591641823451649418165810127779079507959614862571112407451247897916477923337119718874216898324610684500453089688205268609087587368409733977458805271733209443604075983515280592477201603569261676779000521893652147537320832721991105180330360784288678725560392555031508898445141401995150983663881408860472375009224343107214508381826425041261792421465593103288576020090258042717094086596176678692803181061508741404639448711009245717681027334873468866326356455307710174697048161432238464499601470913554219815912712810689437904064811647564521248533291254560296148296214551179607899938763283245297766567841521128834077613266616570894362719355144302305522555396628375534148021382702310111165791634820285946398216631728549468468514835049033569086232337848008602018756467152032167241611667876124765267917134663108394633145299099008295761369060635555128819219713933741398953982384647098868357690386057247441971859153375618729774534154570070915583949420455984095187392596567620129643433568215537369272693448720869400396367271595461127722641103992292088135918871708276976678821999570071945797030990566065624554704851126719373526436599275882970345021582503761048721799072136584029778581595717930919077801791275498378207553926870253801533357693346141398375238063375802668030824469001771063831127237819783590776319475462780998642839626203461093921663524482485289550291693588173885952545709221471585982702422657287091806378890188079273749839184091192471477745512640237483306991234589059447843130942621349296176885726177714971568289572572429592380125584377887634327546527498167154712858892661551428931460703781729827864595477297718451791736843792060839334290590969746955527315245759643104962971250141817639391402667122270706975776873967213262231938831627751779613109889554913292092061833564924995114770825916062394099028825455344692863876152402330870859444132002675513054961482665763927700740361498953754852910565139398912957610830096385648807903354691876287638189262075224157666139682829854467571785127530710482936150638581299165501588519290118469518697797153810416518443265755501904091537985008358132367066696655441166567311361644262676884231160935536977554102431060438286083925168615521803814103863712212527853807935850109955230757781920502709962982974667818657714698451595983092514568145036148105323929825746419782225133547181108248790788129102638506201159841848158615558488186059589726704328807899806707804422970347057174472615255688825782044804991463782507686413575524140089936009472983581795003248295328890318292066272512100385082485019336176291048990313250551571585145082952722332451953608934017621076797097736699296084120969845979666058884774633301147450521465932067950924160896712319576007451268525642305701769650010551725882971110441502893136286270834045803695804032670135757657172131319961934521586022334898673230399379481595224781374379252471966855275760730423312136037736084836281019796052730637420389577282172846247914399050628034610343322248646775785214533677425004693211977920936244650411487459240057805881653581777754510244742514692663102310583962358403288492811083696916942680922649813999157871926219174961550263398650332179565871694895013323718780347530230392448497433600900328559833048729309881179419338072595741419608831274262436515519871192972412747980635727310920794502211674280792173359777897299528905375860330136987047796442888906261024898954189163097100138849954243526875946936602030511424316255742392885950571307022603014778351745856789280712849159798550825268871684859132769477129403443951710255029087220325508119222131600930398378544126853626289727668195186113027731534600799039053075852195578852986018845098625363777228077472346610575451062547552670666039031969476925297123951424394983316482715304513806439670280422681799444038478181683087717438602268145825016421972020044070890927729028991155509867988161110851140378777043717639490441390089388270399698064106197309920765328179856937305236192118436660422370153011413234598261790777122461210882971781934053775951673741917403113700256285512559581152841537041363349836971146681044616669593634697274534439460982003262380793616747225420509579809351998044289742298459127330339902433892217085718166341155264130472454075308842095405158189408379828989195182779872102314228742398297831751315105257680646590907674289859396214074414186465342795908917790461093454374657786277988944419439678046564242597177929863209375402984892974453426601384965739978612898863650879416837303108325577934875600936914067605884521068472851901689272758678122479101534711466099310960608948588122931382001428124881160011283645358667460386691141392831815199652080123908537524230360636778321522605827216792464240334458676930995127882389361974635242875108920335307596834595518026859518296618149379309248016983502883506170860934150035039332846151822049268773769533152884295622737902303153607571502538787899206575333217029782119602798845183461874414816559711531995699340447345136784656732557696992040696236525870358428126937163354197854972270923921061726673115906372899859057302131808367541329143392446287505209361910698071854653171570320136971755445188079965173718783572372305865848834171206854320699592015326953611742233908687014720584791653179146755975838594939840425592636384916721802751292444090413563021696087553757008488748339508936379114439124017754000324470276917754203227972590997660703750851723984812643323488821735727294324635741491034172131847366880452827579817599766918209111730521207304997099595366320334641387277071990577089625998295171227880153619541122281752092189469525200361881087070676392447854057878635611056987456102729661059312407852893867623352940713109138907314831234978358031893298493443762532332185707904315729006468411537636943162823106858996305867611209940504938209131499071944979458853946825030695923947251259100401522346379535363221516369945470758958675534576658011073885218072290684859879595699133300417278220958927425102915817802868959685130741319134439796766776941211163385158967066222657598562123567736672550418003539650818858505046608508125145163192407729813715876260046138762091240334641155297735447161554415829518904375577950299703550671753438209737396108934281935394583287896656118282136838778061037044372915401460731358373324598781414907083515750039776942984103159454163963042681028275214234257951470715625067710647655726428061970919924174206800214455432946939645438498740479144295113534835099246168462432420014734220507894665683226395559869747052357041219048622722974153570218620949649318696907851646980681583460641383587318516791132673033930501665007593668930448152405019351630634641520222680134060935447045632223339187433385296362870418494108297235221489952626486359763856391613253495357771907736165953648495591691406909426269554930509180545934697178167681861745842138733120720260017922024774585541564968803321146146178558515775374249091193852329463568576770022527563258805551895990033220274002239923532264051790065537804517018503946351877522677333424489134170415761456033747786656823457960833112200871553207318276329289238564343420849120415968939388155016888329309706153410606789874373708207409439379694993716796600129750972944590865472760289788747898685434034627799669805529775680606278143077999856203889381866297087659695665573046355699881782904737316646253673793153564725120543599661296935513458929775685597848528875032891791519003192833215742235683575822338797145210260929151393287723807663735553939380616602577087556815639435181522536989988468452354320444067223032862347367694611308757400742348433910241473376990253102418712729522012904737571764004171499645109330051072332837904265110325936441064100483028504850353526145321161192950838129258796279402496926421170788158510521984653646561866398898445648612934803924068554182685281138547559632487135793021238464163664778015903386741125742570471375202257893921636991447905846097217322034127099803532962871943744590161083131166804831729420164210124327335344780722735969405369838650675158538942545759051965283806219142689247859427749360782642596812635755440894333078651973829974495847351532422814926508076289335461072179004550665806286276766158702291793744748934529596468479782154763865826887396492573539032408256620259067880351386233964459020022385361558216389653507224108614652642670884251110994027871091950446295649538547173711366659105584721610922653374167359954447173179444357987939624294043614559248375474884952211652755326290528439540164938662851808394812887895701867249251509462248353308467918883008604019296958833776979169965829212497691777712739171006750312991503846725484710167368488955123303046411034874337248151808877453585525058772750528024205920075412917609248862529329576048837400984536591237249181243739870114934639094211273836235519162581077916465594308482542482898343863406584475099254353346372814508342101954617329574594378641930139815914582915275016105292637861420020831641923940091625233679342237674882326266993069567185341226637874245226791120561623657491082406007722893756315241519320638175866017034880892377095760602470401991144466676608096321492076526121575962821929297111269860587656230099880169603440161766309426303706830278289023175392625599716922321512591058193877957860058973061771397176213185471734813552123368105446231814178418516204681961726493235014526762372005773058434657559660182410816966637907364919621009700888515697941827872797566016321313872075197797079974403025797075532085805337228385557370970627938079954189753888444967301291392583364421669553689709607332083858575007945938034788567921481564452117583991155558813623815155198547817866714929746355278860941929335160090682215394535203643009595268014140835563458004603129238646085418563964978967599364795316400617915110087162721415596181949867146908810452955883738544046129354306622579152529557971841515811826512130859685605378325321518690872830820168420989684671850392618553692009918505675742703558292817212562481215168483771874037127081962721503128278484088422842897639016655232947334542080847241669373829028409233790813450819158039280458815401190554161599720761870231798948661200256940897881128958010404582986750797830290284270834940974551008496532833638500923854807900813898702469537410899950785205136098535911286441175489363411663674190304009326362057513597274812635542911724925980838850518536932004821352427846110479034956343164702907328070900486878450341222570296164170650044895160817187328541793233604781359987967120832401205920210705316388530881719543706393363658025365879889908572967187641853285394066366359260830420742804151575524164063805937619317358612917894500903513299723639811658244011114337900669768114070999278111743488775561160377621916503730010855520327267754179560511916943489087387926658655866332720152111287682017699986448616160994085885276351897061707382746804290032379550421641537162595703525202376742716568278632849192612862165400983275156711050512762646044909044354005954188420519315100880893404497841296210706810116421798225444295105054609511692405536063958047029668610225669380564096944849248527712092541218453649005698167570944144280788562882978320453547394596095888538541870533738931608885947355505552319545120464076422910204417520961129389479868516149706595502726169347718908461287406233553666430236248829307188066411311932028121467585583491706286130306995044166467347478598721356375657637215452404499813498081487839536142759843347024164919890352490242993041205833515650847104647159861182996776727577763398410695857336551415983898106383639910457508527110822319835424785224001016800596262139145759400468793597932230092035074952209410038926057602487110783962256610449429664588433772342194917960177499084458366540420361845640161718282097225718418561622507535304324505885530179132096178019841545633471447066957984174172569428824271577184313714650716212170172392864857383545743177345579791101714032509588711210388921201984914846634813285566658547485085277096647260037748675531557938087922578835525511160147940456681830672682052555636342216869722638848306698733318227217410933712995029700658340694265524996949510586140900567986984165158324724799477688407491380235794730826307818158466357243008944047476873254798724226259517310986397428606203904526759931731727986682161874205167705554990045335202886206435834248138453402567907671858400822759208523298893836067949644695981762834634686173601390653039099775556418128911556506857615900232311805095651574423920800784091388206156248643834803005832635085093702608954089518941983784666165389436916978846792661051769798906010890287201727558390918092905449185541794911449711164286814694517419524723576835987857006347222620054280493562323302367281704616811893709741462000130662069170995388643047381429991080649906361993525199322528745188470040024019853520027357032983301544649558340545236114746571201807308347752540201240614653624800037627557424750801301200261113635140122370807612903430536864561441508371380941975121675156480711238433682682931566553339868816558411372145572351849492371628760939293013321091524348866820769570669470188109082560125176648699055627044418450578781836404517841809631588291952084446452556524544001137913317542244923014459588636849323453503050612806578858550169918008655084697166494895439146714291648654875863582390138256844481872440942391978746960870059865265174856816735978482523616935871362212251339751508212385756762842747986948351109594843298091990946240161879600471065186689983285997349993954062542385777890814999495116399258683809050439284911500365656422905743695269267471673866773311244800976889822771763437378024802448584377841370553053471205292736976320687724269183596216503546103431734606483917547535237464265727841693250577570676045782379184149012327381861142101618109485144599731477080543248763146127741061315368674166759325105455100045828199984433678046632717325660385622055016469291886739716949047048942040548294951605394610778744850535174852724541287578940485562025914917397935644590953520844963110471515635154866951929477192741289065862770494539991968199918325372592362271478195196969397121904804530124458739227031491508883939857280296480900061625437929294680772415838422327466366167861968512441014037196997781915076490174853633839107639184962548860968973630655435419111539702714139179898347517872554074912246265561743254040801079092617891087234147315105763128223710911219328238598801763003912506434015979063334571521498236999292513563075188276116263116057289016127793634790801148880124662266846213981870347583136643854990587879160082600838765064030830634252280036368063115469479353317060430059168213270839506634793554382797029295217665098190316485370878499163756260377309567435873638336701946575717895163459341195051598819879370666443994488938353932256412294441457924888059248756844805959226104281594371963016686530641609977502832187609242357238895232773507630582410649593322131137820552630485491691027520629925297926118740663132551410806163019584439338822634243600394304267462429172542829444406320870091807927649022882326188416986624669467683278441781642874516714149085701991391420067041595354662361529816930532914271367321391098221556319360325764734455865063692097283074468348142671562983597244742025529176183562151672904344477570186428030305553497581276681761926976300201488637931199239659620859989886841682154548664807177038551640856885305311944221240558494289016688723258488716167252748798456616572840337363510462857128028981740067598804687306462078057815008317144437979889046551783993778927712791005119990162169297416591993948662594346106165783499805756058128701062715452411151555884771222735798422052939802556843666701092585977039799784106425818409633166531912061175485710975566856778497605210889323273703648413411483284149725657371864082511881609361972131710471574073128935195666728634705099727629840488708227548209209315549461524997835367384700388110890139749562678895417320926265070629097436537933164151446867038645106396675581001758786524390997585253934288552010632568232562919144053406309787114463305610880792556454747636519156400568470694870466062144349175004988869262154117605958778954713068557523947497254888906786590097772114324920979716729620242707200208855613752929004025553630467582928765878409993234029395760825910013610556727120179958303317926317467103647675144962779029421763722413048912534064555753344256127820418847541111532125141627658354133670399540428138396916864639564986503615270822596308836815218213565060300800318058034803142494613104483473599748167339180002790772679882586975733565975308119229802744417605736629341980257418836083249218964500101054684505263534757970161623785863654635904752895892242809831895547281136299225185792771592526750233870075807247017533615971889068943859056689840780368431414941064922261786215687867813564168177908573886270498460148964435543309705354480815787384832185651537247376832168462720992353665206854838580676765189549276834482095867887208921157159758897368787524572870534126960900427621083187154240480821287934925974276742375764178950009944998033849082147161673686918191157151753911850421469758156258541416300428650034164116464092591183070891877839484302575538822166228558865401106833497221142813751719779950343748875770037585272732787346620632848868438212466595573746732940366647354924131234428608816898358947452642554298660232740417611678823117965552476838398854258868113943256474398487228149988228366057514599358436044256234697710961897394024974346567068759664214928603145269757521389708015383569182556258006462788252087265220978448321325003495681459549419177266889744747826257417199353675516380871404944283344078044098818427424465816185802764968233354531126032829885668282436371359111706121562700516761567062339333847332594178714527792351521269352029739465013054602356861915924198663176410460766139262380765053128926577012796361087654828365080019443313985950323795784575612878648688255285684849075068625785819943311937711352551360820417360480605612614898748326797349311224166851573017692085778135294546207167928019576775804729381882746395702078367537167557037778918053875182213362388286228526610730667332415447382993379286835147334930636402847917926294784734787523733008347804597767713759344298082932793982013688056971473371354338094550228348085664374311474243174887475143007206160836280145415695896384106059506652701193483018912538602768877087014621034282492027941928327733745447809754110050947223692433218532549444557759475135665946522776227861146380411426528723851985750851953480469663734731056815354369553702267775585214863905193241721418572367516462799470198929847367321540496198420438775497038048666119613951746538939364076844970674217049200865785589718199491342575521578113336320590867933209857130240844096502699037516732146109046504103724291133239658554391499214000055111060777010523464185024307206749866320021718841539544091123701477720346615134786443283023044051492735629446018257422531019895369024069568661125058323044359832806131449135930788334912743009556782081607578034322992661429709067488109754671735688273819161413656900873770263609527769510871051813610765715714383243413074135448401136021537454630828406774112715302268827877016738739337783040507310734365527268886934917847080510542500723774258364755905651787663449671911589400119441506994130959234665769985631424183411771458107920979650662437440763067062155803073156017081151571960139141145072144770211632963000862084327404400714058842983548092451728357029239937391977457701058560567783414022090015526426620383861398398996523143282726000681620680259753106106772630442376864954761177818478012670745211080302235290022878296723504445977150600460936075585179801364124856728973254632380385722611958894659188420008520041897853338885768476596914181573519583904332953710854111692258748260456938091275983264847921936659424331964254485174751794877728217988322712620327921682968537564952998113092761953105715324556446985211725658633699240553106280775775569981118907191317568639358638496312993311369162207920121081962321103819929967823701150850394981928423730658261256487803866714616792311578723903756040953069551875253708845931180907600709125867844756916340856817789189902033958318348578452595767618483193065773367719389617397365498758892074290495243114732391956116115687309476500878274654854112657532725230468788913760769877019871518354889567377382197040012248209017209012040465369321602528777494110378280913838202998792788791657733088308857991362169246538206475208886807146267226586761046600494580790507587083281226591807586093845881607085192486737036471381171425270970199455992497645460472726027322748074632600881917786676785889751944395647570384250138852560010433127102822006828502450114156031465559125976747075331351652014007439736904746703708164488099919408463490634100546530119451685080833191166638385035823245063370505955841815083580976200015477376421135969616079629106699674724480467009394381492136700861575249593135500577948231635011531878434240690639619736801371709660891196392648404194903380059244301328141680499330383607324760785526944195125545736333114389971741204586688479741983475851428087253437234720789548747717940397723286469236591033497256873458959600672859457789710522899151184511265080427520852395279129222761202551450421342287772849533752731452600652620976262337624685310002373658767032411681426815480783988118935806647419879561255942179907690048022199549051757013742049803258496552036522387170530422034219210833550217132614090682793485200255866679942121597785444130634373568765206018195697273938269808187978967012129381144631560585574629331838846623549554387233731371123438913558807237124105869062170506974786635564484020533109451132631335391943844774855437727071924080767004326549775214281851615112439223751676140022322571200637407307881996026456383795767788886450921925818157589606213641955141706053098756393277538413826929440167356442509851621390957196529921340678979296359814890362655672410271316723171809028893674235178766103628698610913242893185304237515210180103371904671353662120755787919138521839284187002751823699968041469917396794063567388255900573685554511357861205483413232059593775731986597182919186742191657837987242224859544213245780454810014464429894882528439759966393296012457015470221420271449321036314367997337163739126536700074018972569599286846518842682258999909482319613488277933722571210873749257098636589243537873407439828130836153945749699162594979459442686072454845955980754178737600839450634195584589237731223966317758734464835066501975774180479253092614578492073697084781502921856503005489470432676109020430252632991228890054401365179945504588615154204497687898300082374178965846453468018118770875211202608892379005288984768241207705888249920431711602823841346573431086145184494105469343311454682867525389204370049845582965167789366192666003248296240656808629242018217129933683108366062353503354778016322703627799275140020405929152156202184388164581460161279172218477277887434237386022483439144391545658073120151039169994672107379283418067045658242073108400674531357782557817955413765482324647673815972061861881476397876997761005699391062660541333291897717073909826758112173361646545600823469789453111598879695974313749983515150565530514461920435084767679371534263643752091671639945920785664477217885595184406437941708271050370871843546022762452384850465476234293971991322750855645942665461293298514406611064050116249941760530868140820203510851610461964107640648437284084831301182395592399822457731237359786533928825501242126497506340281454400582947766661267559527681512009613753965212074642023339625850461472447928934994544035445746314309626333897871284498093863100819793915989540259835069072105325613630091522478900082985753717984801904629020656303902172969345591969647513665366422627973142180620488206872883623025745439461028405066474538080046138229378280674134774879682893097966990971592565485138586381224213842003160578951545816454621523740408830523647973547664331682539779418521413393538055995458010576766047436262140176253415937731800452417907404235988177850159734092291052941405479358330819139529126139288503449847292116586621042157725749135088382521691642352458104133392068196613321000853249429259160764147922974381059885385008056149560777750168140247708031020478027593690835753876406284398587639987245573479835842006557862264974143398924526918042563433366396044454850868558166457066093180044090766030099295671825658807827491478799082282700907605145058672444481997753114294206817281090360182799414582435104807606078778771141561769509808088517348729043416438347099272672546823382510556565047519067591034444134446836757854643584878620893234530178095842949031873163622278181510429542112906232556119124275019187482319730481126423246261317858144569009108345526295595098078759680019279095273004712055231075027263413505110413098711444545151406610430260100789677813897377268374215762051552467515101656972211614435655018045223378918143887863185614658945068684552195062264692769828753457927923874887235997010273517222286051081244729834924934146170001796328590716558522645101108951746033685524333723644230140025686661245589337998695764652563417532150184616449047450750085256678315865844336292966735131665619567397875759101108622340854641498694981453995543473721449120533379228295747659224222223738882536027654288690322800299744519107718291989727432329573240476861899530686841750891761849801736563426075816406348961777156388050734814714484152061996145420900120500189946488951532596175342824391607710887274114935761173443257509643739340318551384971153025841347615911996567571111709830554547071275517782160804894193757051125126935297451419601977216074100499156722288877875408733868681424209598852374954118654040419922803127677222613250633570182358245117111479015979590581220581611293873093899396086702087657659054178357723933210138794158629362569579801874105605908944829419434086827475675084380643263665528294896372458817489156270781180870864273815856914463584430102827254761946940602538667655324680932373039216140642808414056600916355291335888512369110625502500124912305937595697928642188582605366088126330399157822222598279354035480522635478624592397573751946111249601915747246346594818280291213247551336728841076124524746538310814762612290095123886119210253405534931349491132503732010805028153812751189630843952813213954090994550468298383649222698941274319042941585609406691717374654930099465829902886696069485103655402303752552061265039433986044441347272552529392280911259376176124905919003539500651630844965952700390893852032540924694568696535507830962763175394396736795115574512386179687814374334524442975805249193781186275535991822826085693777859537492337571081281626095783991109644368297969070661398944934608956956103635761079127324006557024869468291725940963779588740162447043083043098192041433071678933731753571117208659289044668001236448200921587562164120736816942540230464439777069786815826039026187760594455098577527888600878662827124117005008257021348344151028188098344798150160122328792895336545609780108071176281692324523218236455080125365851238503970134272621467058219406362021952818471203897516349174051497792489310920808382651441500040294224258496794628509982518972521950179262671277350728642067643895800768104461592035058320981565689423286722224789085987018541691816748743416500211871050765574702555538786115007994993099237922112891295326063398570280333699217074123305292740025018894915358661265456618094489001891314031083547244236264669657336475918077673303704358741670841369534567760231675665569631561488334233253998136602152471793045975026431074714743662666178481890779519125891686573834772261304363355388158829792113675461935716585792978462114619825169096784428207709423092402921408774006741213571734585666698976673468291990227055157940715977856291314101926825619532261924394563080834204063675904224992552074147703739233196658067742928094213020418084579245623914040316768599659083503507278233087499365337185189991021059459014040459293467660206387045228361592007530475968044268628291303372079514187453726730982845522829782553536669911283444836613583640175179834513289261025541975304027348448469758724976281251261487344123194846156905085988518316972622903315535048565820243847960694219388171384055467818018526213611331723087629580565150963588162948156260223786439513153619711720261663434010498605836140399480924545836216523174433282672149660226032897100126694006937009109425286044947198927637945468530462098389747391924274265645524603328427018814147279616403125000913917976634833495160885083227219315175543265859747475292079391754354862208478350303520994226866790092780586858835808662097900779189127161114957343420173193930274300026052183587601142041054560726543398341078932309380305846950593689835910804783348355257732523841025718888886810016617018704304730481309910569298646768087882597970772464680690274742835584775134147042718004850362054407694315503618613780727503241053912817053592545003037052754990245592126440924405633053471216224476149488721123403645628212634868805481399672668160559620834269878408449014031041887876962221740942451354390546190590869976898282584388648975646748780615876273239647209394267653729126901350934504943082116014991950043022345177899306459904786483203927834292684442348934343251903857504583030234568999096430261437428684437281519036464027048776198786418308561923962384832561493699555111182045465640746335813584668027936635366003043413168745844791467551512283047642701230743948362748197552289517373874174410103358647453894883569268466749339877266492952919026121219252845756785792472803696631331464366209760103565968660880996353986393493197014920466121343276865432937770522031244704730169236302263856443159865097710500982172926727079163492281651029712079545278251190103462451562085322778040572125511592216165152041329900032889488145360681989603548521425421284869681305131672992824798848046918350623680438292219959528448458196404780071687330031849411924684713868821413998128912440503941224150400401437330254799525662225568398074108819654944511256194065623886791325989262619609666194106535477558691218699326734888721916089734024096417177026579513038058663707388183117845183889423795982740153845743328076082332077555741645209656057541455940475263716169281475591508508551803932160038856836312141025471531636655758536054085757035499218505778173602251825155476383330750157750866574497713653562808471398296339325614390586448714975391427294912959195509490279096625705264186637569809290144622117604125780116111327814213072687946059461487910247872249513082636949895859850019344736464406218879313720872088398729750359478021512112898701644949262840917004893137724655897523718297961857339007161710195328178678860128315605659088407210116243628419389057890327539945368975339972030965168537139597267382466860027721154886131791393016477231600477925945069231195050733982532872447202562848191271993487161406906528115287679622184187600245932472488881360644959343821177767576656800544737634207740097948855047974009403487860705808176287696032400463837122552102807067143116516363518952714310097037583827992033810494644342533065332229371798314419900536904789574777404004221330589384365208661267524068325605286221520863200104844168109844434705670142924412479279204038508464830330737779155003579776101730276542581976118988743760370476072282146776780797736164885031890714593066308181282096439105696806868768319306308335418756976400677495692910404302520714241221143604225231356309561011675083714655466474859137372543262070707328910816863896417913567268158391133168266428105893509993199937669220625773047459706957183419720093607494342877633507081351872527320499595766960276749762774061408352770219631291996410250802895499717093296891132819973702519668018984616373438631227975630562705405639807539550143467058910474946556984451762511066705702153044308869531646597722216125498662065506831636629632227172738558711699874291803531082950933498025315465895404666432238992909859938619622862358112670668356406625508493239708391711203609705046773722886767741834073750609960117550367550789530632835164293592163990135960080321470457113230288800419120964029598809659383694259763962323509309809418869452912153068300304741326888601891850121206779816790188081041864356466710325159971249775269998268665139584993916084915749340077025151700950061886880887953726780754576617060388074865078782628918630711641361830383079231314022788558871342526200807044421130029520150463548164981357874375786416399728604533748892088178149422915497294493624113754051489846423526738403880352321101053452655622160608559099460585811582920184079620173039450795825360771799111748823760860840017626813713856958437439622479969605274235566766902743027917233878748127276066972188219975129794680354016511545900101642065180830108374871653490007026376907323577598449088169215448447022898198835153278289487038150909200414556717642626851112332945189728978097736465013378491799419446735819770660447026408912588629448510044995342981072924581392837521609232117963044954922215803196142886828815503669678357780716422262797135236024896018231178138663810280282663073471530396286256360556116356879032504810661077872856375220887075600939973682371332243188665219399777939213351754091118004995581983358099298068514608588732653011467962343738568074321059492432927931433081962284284798647284795441810824836306306176233413143656389339557970093304154437812865760982092558688971659536202107041788220719140133338217070881872736247722407488852304099196220696889772907746510285962098308444780172133242756931423375675098178065036096151377891483112841210962357705830023088806018680935523219324102797517668268522294796949468262188641356736353082658204441016858631064719836945141772807360672309872762095279159607224763176889486621773091867817732960766833232256069994957683449234377942435181469249134879256522939755578686546335697664800736830765814083937158526083228177370758363408577037732897105425364226390304977612016672859785439608234352682047855343446846247944311949132147359907310649452782168167309768922417957654190954562274558572043803751244428388502555045906432027483264591599825904295761470544656958329883396257198560763612567452806606765507533088977670641234284803330422573610251752606678961831343691445093397953207152841816835459597814046427630395339907242676632174261378693776672484316351455562185307634174088112134881288194185101266612388068025823750291961773525709078470426253091428764980548246623911093194610087105898691859970148043333053434146419639868971500435656435067495500160535658409409774221268529151969465018909828332645231625985902774355040820877516994903076604655155416826100400667070774530076581743372935956496053789003537137168541305245249182232796201160034026338816626932848211953307359227514115141978404781750320950309878914497394777308631960886216429268543922583370167993660739942404292237250025189282679393452691535209267415947125723713235137082187095920147852178307986148781734428415254487263983146375820041611977967791952196451254254095763787929868998812101072003456827350030196550548421472557081817672170216747498940012457893538413655311838285896142214289118357958818690425058227983696963320469404092621189154827753003063670097296674230824814285004488202202054119533341060002937619016210641936511866404127693543675838704896988246092987857255230993236999754938186114789333448601398968976299575504529636270385202857862333278449018194624455967898719846031403035982741903822766870462116722416809852671166521708166897018906020830120774289779055062318872845952315648733121046149730176009281516473754578749639045462091962385676163735561913963086192159753503129317017201883203994670524802711156222912024188672976090207984344230431400152184020805108938979878852703732594488235072926599305601438922245430987435662324356701224355760016769396335807225620660824953712081123858210007896865928929438171279074326690665738560093090728321018413869705678356976905396774323371091462854744859318024286696745021404814284964924199208871537009043790119051544973988389981863522529611992505681577883263860711699364464504084558599898625896607608103900494129080961149328614762522627784571211769445502329807783113344877009322777308774408278972091159837484465802333775594649543039383887543722273006755670066491833241136098021101403493079625555024393995928277026727278262328436296727485137737413490250883713976948851133928314046169858539325254907829194194200140043828219022652290131324308120284532979607685389702249495571543545319411480760975167428300181913659814669237180317014049901720625143010494559166114075408794452732379468980321619314094450540221879249475602702147064761435661060418905279396407747842959296078957562306530766807117845352903732182607839455094622595327950084770441326282477258171783976520390873092085241131428525756484876501295657175158776207876460973020912894243423739972048040907626175946551505655468606782058468244106372712795261139529680251391024244003903566333125849973310134246550854550561518430820341962494730095470709110673084272609423324151428554111529901254125608137420403969301273365300102679756088239164981543885398428902761866311613493008194432796585498807336996347883515902573106158515328751109823721048400374780931100756322692008855497383953118156702392784186944914645625101870489375286966270404388642986474835218394678812490382757440952629233369664493263727745674874653524377965853880811576760492856128608951229660581586200766054551201514839094717685861979303033852056781778481381681995305777838176167140914892747728779297856636752168801431130934745783106894831327011610017382323678708277093812084234269388810164916085138509588602531208456060487620733348845421034116459159999734518752214168949415410896210075111720591142883600295125041927706077747344563268329373433807154350056625787338416187356213720420318958280331435388111480667942083579832688998958762058223969670629704241616668507603697487224412941180204984525296575118151321915767384693031845618952021825023072363153609792851102469065877105037801189614551124448485994566950021440576532213760539147250715529829189543062263848714041520311896942689945047944513074131621493329254871742277742366417197232370578820193903980282449271199153405857075742417927559331385815453174924530241728054361428296521236410010219109066439573786531327567817868934087149126701774294597214193109083155498649695861546654342983052201890050514888380243464395452999154328368781923460089940727005742793611611177525254929300961752457371112843980963586984697174657113662615635388894331178389718821522286126430072262367791897926750368340793972185467460465235200036500461612202365162547283495267623179333122207418911256570795736042789763710095659838498484268311260302605787163301229000961552795032902675250895297572388672416100336579651797479115401206259386737414861896409542077619411427776908399807202567597262724793357822340926481382469114827618512263461565433427343035330822862847480080458577370206279981810302095161831431151583933698757762551018026648565973982113768257946816435561074389602022865269696648857691504189317680698849178450392733720373127615449977684787598022334656732793151796873798564430384112609190354606780817805176808013110556312397049453732065026979540262373044593948694437755345403969906793477054936767803277666955785983411412448564160085554872915456037648312688139560230875532666544226404117550497201155000499954966780488832924508095049010953452498559804755110410266643931189305296708419909190024993219313454785902209593279578787574950777727185639644075960338035546739881673396265054005323337276977522446195882377616283069772884443756478059046583954740806512487279223967472703611132318359956063432192357926298047461828211846870433459977260879357274647751668689023383755144314804936073115503827122606169993714311966443523262818263502846219473902987355484766404854475668172379296608581227321536994459102339540141889665053893355485059893347821034912102774065695368646090571906218321721331102619413732888241357405114789494575971472900059752086409630857812777664943410985641747004235485575977867467396751520519418603819203059489458512055609747969243112276774289147231655471330901911614913096912489313885604704513929117607337886600769302880908829569543359805958710215908457717168428109433062246036773778941654253515017135573318451286945928912565091505852416060910081759443260698728878093203171504001234154082328248554307197554556868134414080094923189320883458822454859241054738730876002205626359800610720818463048971810916428511687432724849784484028110756522264282700715272342139733371183898023915095037598406488624644988425818540756859499509713171606560137913960436180008962969402822251117696296017897003140428725404137161116165178712979422882344768014917785354443624576071911223804405761292914414151713510352006260290803923104277555675282353388656806400393318583825676113331516965870175859870869391685908858171533575101364681078713571120709238637467701602310762591402211420398552124675916046241166719636981944904871304455977810554569554486518356582366710430971004003496839961968416218991552851689478998455046725942786163088971499600661288576062273702524891533995382390701059090494156283206469774206948745584862528047784832712031959121922909334793874012971439262401246972907161506383918810727795334084925189509432238777905494818778362201079628397323234677875267930163830080116961599246440145653153695357829586041434048443542868057243742928826593823762529654270687796971246110280214163470000646110880974923998653018466844228167740374711987349811054135137369424153037881823370223601110303085833666592924642863860891828676651335812852643671874828667582721961544797687615101149348512977292932175217701652825472810753099570964474425935639395212065707394342543709067656224899353408913854863906996755582098148473578537620638282633566866819808757671946067262631544408913809212847678999729189313307901663731608057189433139226295262534174646780691932609441834113008972551023574120468084397715866490391766305246726502410559639121367068428990353592552377324530827962343255564482590051471225591653645839219342442859091063177989183187875707076010944368819195704273216710656928633056448900234250061133619034325469560257068073818697178721597413270488658757898759893759303578714763911849029516756895568804267681182898065238249871215789241529445413904124257878956082655773165386010682613642119047267088103897905806538363239671380721513030706483478640745547988946126891451381986513605920105442768220583736286464922601675536679422371619680833420968481813005872916714165193294337468666738189585148711576242464952917790954097972588729707895846697217817761102987952953002688474272685084088092016477617676701395005426603826831047855398473510289084922673178844255995107158676003056836750815975632251288061333425182025436938886075202737896318275122571593503568238817419754145819514637920541350308109138190044336045676545765830697939110979116044339603791352459502269972148588151559821446125327702466481968875746548816913933096581428802912586219314755754169833620140149381135995822914210581717808560955261095730992323476495961484959094284814683765201325128303062832441603997483237153177332119291694302620287191364897302311193998829839501834514165184053744545143496185798275096025147629016542459113983572743838966795591299581331351818898408942637506247048873663093689715574478248267131119924462506267421271296885199147984209582988527553402222790064453970712775481031816453126046209324276342975958178100796906875203145049310126953456364925328480957684152416233879640438903330236524298013151782036854629724163511524259444536450327105103679917957349470864250683140043005033956504183541121424776914736115587189152108470298505668856381595742093046469887553676721046688161216672965126163722344710145656902995706511842791114472150778927940387544803795741729241771571796931920805397724138996301327741557557514942648482921888432809773957396176049141187443883040717389578378141156480869366569097478245947418843954716446576541078408008130782916924216908469657867498067108483795730313941302652453305107969895380753342510773111320450479030221907133674678704682675359556981789862201727560142433604959081379535324329329886739141892033431151861206729578717181310282327212768660089774209243701678707975323926181233660148272947900803939912070409129023690909523001427224765821965851564348318083332097204488826483558575086392527337032867391941463081811189641434529357691826714061249367006143453766590302554927253249975219569102528794727709195462789366975620777227834081741762994213866745608486802228865422756886601363110635858727086884451073808771342847660357396256846546950241873318107743068347092729174009432383818972748395886349592930040598344394201995950348959139874196274796913110722121741188802413314792742662484792111179088555915455970333404592962075715320631993268399045313024718839684603429369741140019159247030267588053272068855648882515524778999057777892710521536926906494235243389645585892835690290145552357251895440189388641590405146352046573327283665776999275796502129635342297537625087038609446890230262219491817034769335475587159771422950329349675432645182369750884003098271378739754223376568582057643534099151997987240660443133445568335849138788272813166924491969802639711997005855066969086971246279507607513536356415145125176694090252978011554449793659499769683478717826699658896107678743404727461504473371511587546328201550082245351526707087486646320953044397629113346896789000181427522674180862031711558039709119836563537754179618050844097507340609511259643541472049832237841438194574149346247799404717399609812938047315908292926698435866378040799911970917721590029078682953773322336225020342485100326879373124986649001551214368457600403633217359751918021454307776678765097356301171464111025061433912747700571781886497431633921274167063386053701510547665539238159130510067299005562895828723002948779890645823298808861353098817278331969978754888256486098735542301898859480801451564127075895032661682896084075301057182517245550530811746713263561902559132513871389085146118168662641246072072488467095310200195132212537789383212264780179735899189432643020574417049277399347300433405666700441446161083749364950892446489326636889028773321041653587913966772172185209327899264216545300716120639030752360912781708594335224219054774569739150693565759072842698228443502495362112349171005832558517699414599600443660215205713077521625746300682734666387256326720123895326788674488667296153597610781802854413168258385864478050181699138010513121505192428976483178156826332536725099097567157084344338461285891386427629038200144152890165120275374896627275056463573536372851390080204396815258602853750078140072278578747585651608546499057128033022624453331944109071387527730052421705977121704518664830540779652894942950596170653146737164959979908122824646627003287494849587312039656288810193476229911203691140485645081006988001505070698607227451043440377002619228917325624578978136656029980379972258616490013403056293517793317223339071527830691881603735148976724880172661831918826740370558966626093197566519318587717656729792635123487021438793271336914135887247685127469749408627263613960282265865039039504120854919320203513367502373973834263984053096549233248322313396545173963016688387447924680891021803456702325936854817319733122741452089994923691503105217843247082477037676672461687842673105401972239918718926697706860782100381738762662035709805042442476570910360028071559546078070778469633425850518136307945679626607521165604985289310671435842474541179201274082316720111884960755071031653939683381860650948585165374201387094313639483293427385394460577452875472905960766945206723017127506109942237167974143257253021415528281387211110263582883186761390789150439486251230240958839490206856138241857912134905271010196628559707928100944801954163815920524617824883588379706453352542002156893033750331459331177849598636592808472243805264789347371886119169845939901573731092804762394697909464741695398902935586160701705066833425293992944458377163225271854974061604336746118490346620435561380714133197754865657494327907264695676040340142884972816194394960674532449267686648023277243213918272280777707241370952040116885432757283883176764287168280509845182511281029812889644979587895802811081155598876414066538907033341512654606637577696936147505854587801581612437272456579212238104657150461762713301385506917425588617124879550433255386026271304240057016670269199101200735470425477805212441437438819699350073608674683291025732119466748297286005393887054977490550815151709281690724251385930943008462717956412725012571128191350550607791773772029893290758364945398453988525810112678235499433057855511714701916967835382516320212782518342063155024921695659772114132433676222966898177332918723726929985651744514950019482847387934278463554677202351901202063110875150606412254994672428330169668658933687702796824067860534843998228683481012424393456094262572870018145289461223936608907926986576268938523955944712277793016322598201232764171780689670435092496883555400211318445562161467326373270395049968329950339473662942991110391937366018457953230893517297298037881659426589631762754226267841759943738962487292083255959221939654095682281536495887370178645371699069519061749381487001403695172000788258580166908811338803720720573967822909523153379426512285081000103014116957613602534433197418854683629329658043870147757044894755487086255315582599844097757057060346352111834337376799836214742568218838111254730657047878929072597644046654328809617483285413466582925474670189252079999415315301758016753426465589280884043924100824657105480869991924884379470393367708272783539455775045782340139303228134089888664790157926078211804737991994513335602772199882789255412021007578235264652111338960009989640624287629842913271841056736278591393347819550786739043418805622481476890084234646807523718133674918676951654493124990797385108195656595680751895846359963051236818482613889133150961637311457273454265833673936095419220372746064720766196764089850406201734425135844021481105698157084111362279861168176735675703887792354844558305111078628471353513190277041772618584348411967634413326413125818244447251018774816466171753195901510275205728885026455825236544779725628120866970155490591895633347848839925863904118361098618072548150408963535426146182783064633430165422012847598076805078453899652995789751246468849277316184491634236932959143564229162536945361995588636544176590805097535926393667079775426831727401313137870449740613134536224286453228383687306759820625780528990042006373493882036803901064714125965145007368985740256374679336683059252035225702376286083055677701789839365074171492439687622117780398656873599526347527801337620392944662736419875698646907104271279989895195796362055836994819540669015899329560008038386412176612770659584909633627423998573773144291905285647618314702927657477081162912786098309479558514722515556375274578224154761448883322596519644434800810375792411598099512780153525355558041777934123829295372162445938066293649614466995407138645836658134973593684634212268365407886943758018424072947907608025730225850549765634978123121904457607666111497557301629418006352191146815524944833259977175862855775093074176320351701966112247571854823046722077515239328048473382661036961723089073148265578170528982194831781756183344229731429196802849013211340243309416204971571059516143881008868210811383622235490830250005933429652417213303284605962977381181666630469734660749909342106928193543634138402592014430175082552321703802234075162538977587719287401643301273402575081238911850880015913503097310000583319569344769524648486228335226572153276810188653114356294818900162238965752555170266996545568078927534404823820478186734895804894715804186998545501596704283540845133893631373092431592049888133118914188044474766900181403591260163860988799956731627381528884115041068454924188894524629467702923681905247294499282534937832998437330939550783322006460806748533542549540218685626856271792148480891248250759020498354645816519651476953595996531236525886986444571699109963945089030005474005770644624297136018495878899387290922014923580516465577443990935745000546229288922711199975161495476061573371292244833788040407277460201518781874200042363346704527063430566641989763543594264667466531723949673508429190166812376941794177092104617189094724123506292570513536109171143343470253473013052675333032673617055446626351777013931561574314857557507343720066164747018191613266516633768191503921256075974352198646075100689505174674221634113134565688975953767412037842934441923360258990063980696200428378565400751573755483509253316032604324489255101359112079795193479060750543743867820676986693443075491526223352114210509423591817604299216023693880747538068075946381823095996965890725126315057818820515952853564122229742714697059395322481622185128851809002678479678637837265843524123054886090504178731981801707110603177193246664790978524297559958030800481259238200037219475525884805447508319776695246280839520590229651526286991337990508171982064800154890479621321055436370162300451545095835692796061361343129662122722326250597458189319147861772606146794599701101995154537932564939566766712760784035364565661757550159295818308439178048103776147816370971103034938840604564873643913396761204500513596315676305228913876470102232900414516306970042066379625270704733319771135954230030302591187473728376920945835797189790441110870158708217036261340148240522969702265545934509583965758270323932872659175114203165639372328433381717674111693290118850848345723219455519650256382102655019609138579119124035517724982315875557112158365805471051706443700450719437556260199505059956399765873121050362122232444089307231604678399448919704613722711716859792183164048014797301369990633384172111608972158911281005472591668200523912486374506182320742131378939238781264056519670513893592468930954907562583651268607804332888905722458698824351793018871487188295039885239619814075660199031797881713408916968256481700741136845496501626489965597029208565285243832457198925321593071295580604953829019366221575877095627318135058055542745739756087437129907979642959903654217251131403161498725193664946283936703932583496451337912805796086900945019887782717966979392572819830294912264746003217907565023153949904521628097326947975902336305979709014277828031345387201797290116661247642886899093707413222574743717313684569196899691816677235458610970031420963045620898421699113682820282301317564383110418302457875447122790800914077937137170639040041255573425414484930618396449218544309562178979525524074666032226808761718624260382357168784650871752743100102954718003259910545384830149573587762715256559099311988572555934923648498928967456461216577571647288769691246570875109292645843587640986780524997926016503205058976150985019459791847053743377475677430816405071401028827027139489405322954864237993730079929391172862866229657960885656126556686022049226452443121358409567219364054570790615724967335380739517220248219404202945251925884846855452720901331575328670120865469869356122404769224400551580470108372340933617026028960805253623558144067521320607854197438742821433906331254274890398603258001714545991133759720745242327691238032687884514183539124466120565837996118645497166908034939408345096651795796562167564221495351130302559407326591120997964185561634881815544422659995464243959021156831551808396227702003815862807505407379561309621501298601876133668199415162920181981426822638786163157322500553886868608251649536080136877047467221952779554576977499861058810903091075893014999046591823503106769240018749746507627658065725206156174372580176755072497611616750730045924923338550057148002138412978976927372759263564010933686865286580360821487509268449644005753385359114423406033858967459035909637929879603376843071143141031137086850176969187764071631870163264815057522795319841942614757460814430137237160811687039852005097061413438536717301085142517672290596061364420281365064671878798182239971743109278065310383192388590113317358502888848506488434106987895806203226439206315376413078242136179486481854162932280985970402641665522444952878596085915010699316824422408624028945280476493995550357914041767938719234486195609650678493926299091672473592511980280876275993771128019682961230501013966079667963006325639922627400014068074790049280348804781602170605682530926696016452381957049556085183379531977654985504226448325821296829467883785560662540527586458437592996587743915365931124590485278046714673985492276524164568671563215778007604834179603024770090427963856580316517733587552623651620062122169551819143249613705858921605318923314061950030194221076162196782631361908807240729709473658638036276837609823122731789469316009463539170058486842022472114858812100873593785233862438350407115288256601476312234498546338450878668557225229164161251718267363157446041392721197818752317752304822210586884469427055008439801348521645019290822157300721121692144510318593886633960742963026680558625295051193459345708013060689786864260245975203450342443813583283225940025215525018562463545007163700889032722979381981680144387710405684121515561117208527181990424138206417286664785834407143706223829886440870885017304332143273070950116340262673084837432957165318136387391817306054547694436501690747381439705808006885859458970969252862706939968560104918545627558276995527061513073575965452818865334833088555448927803419029821731534432300186376617712332660713226213391184560488613818956726822155008701702141726788583936165147914563262789002966409660447592497717543192932970706343005202560653904704130909820871223657733079185663848257166431088098489836023142292787978779186984728366179681067340883858691333258295044894352452523702128006313316309429873327997895899015934698613343238569252950320810944484156866029115865612215451842916198864801994661279499170463007695931366373141978484298523808979759541727438712629422940177053156230178250415372817723159951614634985822615738949580018462854541613318992892749103194837630173661383531672180496856759619500789938563090979019189387521141338528040075374062361450355675750616188873804270448351298775066118260695119564630880327389383181994944601325905498971762954912548953196542972054318031875804226210966671357879848581484061616766492523528965831284515106834525726965404440178082645069707471869744404045234669044665197462990794069081972101280237059049450435149371030280072973152784056862676443319786548844368381342139893619151593293189040979845480606159203850069452099261486179226128207007074153062166321201901730545625180787143984827219503488480894502796280256105285500329839541474397384979461085790119742614525367002191395365376817101573668511849543553721838824253721838804884681705392989377805985613710014976752887999186210839509593330302564299260390135671807166681022478468479891088758768256233181144139208744233015548539334249436668676859771167062861074461931869577051811784036506574804408189634875506263344229873690381602017251498493364898281995635972993471590556370571250969387326415560383050262933209616574372617926925520165294588774560142543002338396654006955153094660773035576553255023481918387809088429663632006833943181556360478709781112517408603847295022007009718478399391184326168516060010365770396683843703742394568892342452051565412193254709960542157384638359223080670575504020822023742672212340188909291163495162251902588162912238361525856949732463236536657834155592170905680162265737110407573938898896415864164679078735600911892903344920532503575423822856665338166580124330207509830210885506885970061120118110227239168831643629254604760866519575123385376535344232226359779936208699667108230430580308680310444066576940834460216481160188041166432830836766967160738941113738384439258855402245144388755488681822481401831868043831375824636809578122933062976346623380112378249023005316989071416911963736274380084127089576214080655209085124242332395961097476548451633122664730797058326688353711646280270222292129086438383950133071065588059180011956404040839689701958371601644315451513496952109356376945672187796961475475352469926154762957313321251030948283169320428243269784970378769367422222243099096666452242080450707668815719783556355760355781285226670276000972662795011888519796894362381983083838850765122215643929617264818173162750430139500495710930518331070972663710608828045077174737289304229620009356844587325192372519819641138783329836455184639957253866244219105904935955288347337031071516534488626926510509054197315679953329800045796241390709444782587090277833402728490273932271435140145582456299219964945580451925894429515868496677820715251402824211660158627697501656306466521718623581695675575951182001756304386176804625422055538388124858954603121069913429624406068104843533145350358673715348782685644542561616704198340995898584630223240517580233969625759646223890176178679969837843047092058472810308926840044444083892644799241289368462595267328434028569792460462065239637132325846296550908698809937736746123705399197476389853881693065183376119512569295386646861033958803653756966753279107047848524247628097411603160819965956628274513797763622061576457411017384844402396755614590971832916481605351502263429031362371077320217599863448549726144946705211589625813050242583093082658181260088534965482898918155015884462765420064739825573571577316114514898250103385130757056251091537067899169768517973471802551093702923575221768007692635046498205031316522079314826649906638394880720853155728870519000271719959220851713562346177272752515073330617388085887227589769469733617474714657156734943749983757548167612977594132598810013013152055295569611033374286671039031807074436720589299058745412662105544694888603200720564777938829186946931939811463775605812519918638283183554334246459665363330778330394352399599658557346796949421986223076152441664601664592363824837286923952090524257869337539965106687198737465331228165493308252185358028874910210213703345089498359465030222077302657830684758478250784596717143777324483895677375286566663621412468341138372437153206118001052033750853497416813981282969721381465103572365098672164658141986857836779931565119789991601396415626145748576301137470971343748050591898470038851946351781087956123038336387417238389504041264279968699480800895704584180187333075258325069188245034160637904543804474545913732201475195214408892498469544444256151372256597349481940381519128308864055289227629593346623166800994621958791276659369954755574503210446367427804643108175964595948184995672385424695668535396991022510820820635857176845298171999054498123625799579739242551389680170710619622639251416803883700757447966411723580605876917498787102705846098457034497442135114193368956076099284241124767289752462642692871601890932435711885951566316049138600904354014805676328364898752083611081835905119722288557829951832612516935312881228198250973001480834785732584204594169019850472607150404756279156346514416982675469088306260528285572311167219965949330432273998130720655381888542791642949762591416941638462580468592145464191503540126032335523545173466863407871725491946962128893938125492977179784377352991032004134123978791304997915059661023566940785822362591718980448745218585016419001376219551341701646612503051163096227497752100021550087035159939562514954835295855104353192006545069486469398510737282493542620137721735502953860683770705063240500530882641892678079085454760112965648619363639616500157272314122866368884736238475874535425615889467621566864583966875046061363240240410357522372210773519523597389516720717007594569149251074744089807696303638916774047442616681910073027805668797389339234125355778345886517038221879964275729840974365142508542212781068304902706491054367206246837091540217930271049812485851854536598725638062573159333597370519857907555784664161830650474067692753155159817791181011291405488331117189397893872351032865143996458333108839714930642578988101440074167946357604230162546835818834736626422496138493784202322518664127033078758010130884308711223868319377374453686079923069068293243710208810873630699547863690009034676321366093933463643476480933306327459708623509725189810400874783372804888126769987696174772823588236054431889257315058144441145346698550791868382681408300819155709406341338911975959586156257463137519393273495677016029021679642961777038013842578049578528827886485439595291270793599148694285862118015546898013209313824410763533165018740901584572657807430710607425389946027320122223945569246871242044786890772713446261293494943577768191143876346541346003895282085996312335207949861135030230737783785423226709110672348916678677095853835256696587073842248152174748153751919274293517102441441903808528722532295185544588216635416252567013910298711296834640773660464420041019548700162647725638939062282325392757854882198842339699589568636965324133222917814215557230306437272813603190683050778536260836487842975625751271226395626297698128658667239832444269834420726750848975826602026265985081955337712619406240276276015777007836967754712374068758326526193861993737077193684573473290589666442237925459335311782132317734816028200624100402342525034421948142927685039493383108464732313316969372583922176541764969571656846227709898653866270980492669513341037137786880346028789311612202592615169680430024506510513405565930189906416603643369147041132396055112666441880601830106005150168876218183473399330981156501552158267413124323391699593817400171273774633622361721367062864853128657905699862636030126217758615068933297010689682549784580210294970753814088185832774152616024956389415816573978666800308964614533936688580313834475386892010373498614552414562098558446010260392803015529025159359881858608418280841314921178652623088708640490412874866908612425748829708074972615064833967542051852541872195096927428339517452392900250767586282321881776466624685439579059679948892671264438617921324010286440289360531293234371982827575341630899775440700551021107828607654523973707623719951742723663716805031420480039800230391189243564666451159266018295545356152328717440603030216696165289983710941257752938844120828389933837679047185226365971823732428640263985374278675518004248972049713003306217971887445658059886988995525946814676801001831262492818244233159714387261679177187304898056344927774806199521298568199883836607443988140876479697028839956947069896995765485411611972604942051528810214644793500290057753010034791881018015754257423694121986837302278498613734427200790644442851931978388221030949342854234452447273182040530306624921590764473849850778767882975504329086887249864252415406145633664406432956674468162318345109587179672579395334308192664663426760312868577057886025609889785396187985515815383208002121309111091219649745417368895098106232343055864652381571470899378211861958520760571282715621795647660525728521751773974396663536316122299738600688094874941359106403201187751818947213044654940656230438826741548761413121323666923988450681919440738352011820877043004300780043844776707368848578578812433310763448889399987196453315634256779284089277043488195969402191801450194588678754762516775770884226446586444638659143390728772598535443571070496031053799728131510142964215506053629165382295949638600855338859060863819880578080550274608660734212231459645324252734160366007379856011456214358987340154182588486243555295602233265829913075295127571414518149985009197148280196353419927076033470596650271961620166138723068204010926507315524232077107138735164919223623155400883922736501056302408004740522307647358030034826047995563913628916305693732576623606782033366325339300179814938217260609982923041800103261898058682128453022300247721347121876961250926667597037855987505967001313762406981902287823913930614059355583365990692547072487530105457403995710900832612335010408699478241945776401537836461324272182296471762635796097241676807673469753510479682982847863499994513226409813526857585900466846331337151826352561633612845112477110002940698495458219461668583479461489390816323341754322984290455198523201762302305895448094467856111486544127622102074190559935154266534851917086627429489155202810239195020775297426334366438529198692865519541197583763899031384819105402957227547256521225386189804850822511172878530051881321277274889002126998766960978850613620311758427689804471460816999274360618524897801208219771585020575942840175167878742050926639006468038768175474127545105072783332166842600900383649470718305985419680071200362403415049229095307468931958044730990522053346684869936392715937412725289663900264481061709222526114386045646409624595410805787777126205027185084131488062681688890434589195665870530796655126721163491831159433906553334842782140045154788912820566208990309203999345594333650594289204566838779512296505263300161821213276121414748005619974130438919983338216194656290878712221033998593464959476355666368819808265259163962300993971997975172692875702714617224223921158245010149477302208800863563224215991770876172633973812836532370742290034603163977531583879112903005276255094396661620769032937620895448880432825669571298953581735830512083161639044003065022138975651624322240238221956359765229674344043832841206963048887421807972414581912830559428879798602881049445797818094043279496797547125676898881412042357678579632629885883606460578429367211757809818754231426138441929669684606468974012385307823755606156207835968026202818122995859255371372194288712597922943135169994661163332318073437240261072199451683370716230540533346806315418964631851304541350083860972459574608441024544623289621657511459558025191357160395662757247302461811431648242062837489104215498068650432581197925695068924673215424134863106672497387330762893222271133226531835785870662495196203763772093813733828033737327913888032191824214905518537478901837300627759174104040618071471545167171269007759393683953579520436572188835070961335241900216207707149686663093987924511672853140432833593853854543239424493415513524508871223917673374064003815923765505192138847818604819588409839617412755043564529594884735535933053483533251274131358483307540903307474348605347672621395684985155523678280577305375685574678289293655653620725657749108944478369122405818572772122072075736588179519909928163962402246592128901980014192796571456736621273477517629605990291445937916118719087275306315240366639698670783524165378856797838747010738283426282655409175402472552514313802946979322837013391763854075186815243041154765464835464521814484820149495950698733721152603356164032255617781473790542164940579255210906140917937373893084481050843685710106845186668838844891758743057782099587923305061946423410032508056290696404844177854136946412172428696399398989447600975132632537145070304115526288286188747286043514329800019835030116215503591670376678621843106481624841207500403290082960008422733600765969020004469688724909829462390582058843305674118846757121808633485842614086430562214897625617325995541779063616080473699614926102319778605315462155970947160434968709598896833023922526085401586313888172312694109810825900653629175640639040941796011484543815618967269905924188448737501344103311856194287126866291873554694337216671825492152329040293065478165310339871570596046910916905106558533420653697547867246821309288976223524398883333321347407037030225008454744511830106119369342002737131933793949948491393444595717431707934323782605962837651272011832600520558764434775517712509611153625777077339707157615828394106692702772922651421086056267491161494310261740994594064345523274318537365628482750836428868078951381897812791023337164848879966597541577947624799327641527944038923738475005711517975647211508937809394545233342107411940606966053037920494207948601853732971199622681990498116559766405075420528487290575038053907965255505257495577320468607435636780753734973595099437061710605623897392242297475878158784370613236023544998941534043188910110477954024890393461070617483919788771184339372927948942854563552665540218074283179049581239159660223891743968004907634871120949863623360299420336454530301095905599882553593802699777041264529666886995011907781326779164599856764771090621289181565283539353444456079015843172967991675375473352249441768580729418676114043810927941352238412023466703066405994599995495180838873329608531029471697258317067225121879412869327591802552078576063021804927978385903446597305273540162894523184904335633024028052460538222677860012211116677838285595109284663327371449435106906172357290228554707629736314353765748746828184114752594882949545815622010003052158903417616194945057120813958785655495868978891137622131147781397066056496205458699201381696619061624366852485322979475039880247926672648239138489180446179730174906742508981109904834010398061356027575939538203194075894634455769086196132958913942400806383990703251847677844120105796193687385672688014246156452025755259769547652307608837885927445419414780374965209994910023726973779471451355267503897948073090504593223228726414431880001603014150308447033276392322005244104473133802793723731070480877842446279727611839052514155146993266206013256532285995669894044891993341034857713305205330504103368037134319932554335135345360358892537065942323091802849327244526227419897844359109338646201895118670860800826732410074467562790764737200588108002347469756676606843361657852718085724133363214268563265811031365657816392605317889040335839843025045317245431503251631277870132937921870128678290094808884221051654214421667428873490449939774733091714635865631453799082772985845747643448954980976115127322168043266593032647462228609479701640962330323965152983074443916427975771184254142960248475490034672054171403471000912545881856039072575516306803601077874589783567344181816137713785959254926630989287953046929323961213977875173503112740711446685206460073073719479310839198432914361270864368118310641012309863491149489353722282365655588452535396354632425052402082402593115153626717035560378031459978920990588150413993985538541238041217662739280794822889659972021421371737015492396378618460309254768153401603018009748792675899867801508962875342722495930585975477794150495275019466965071081040459041631808582868271423245691410978051883869667081150809832892432363450961246294307956013040593391257575500405566936119026200308639339192419123218116367290544233616486670962201254063658723738109888046342893133806157997941485346085236319604612574036695624643796524778726163220227012529891853469725176080576932456286251062284909667780623184994099333204976107908160367026559445357075827868155649631700608383048014007852294474468573572636816509174199499651996458456297369757737672746147515820464090382021524706170516598141491620372751655698524066526158155454445713327032137695544078375678164312139693866551006802173246730135779078518315032020659091776828975995612474515737386245873160187764254689552091069316175868439608516829831083763032293629404968233679852659448370672907897179014731002065756739172373557167649521080190129786468345128895658768905988246218579406009760893166660762152427882020992445449649485884988567820685536466989171781783426674410831640008012350511227578359817050480133807939629904650745992171880199917228522537958937703159897255418833487450773770399386923530413425577792110213005630611767500150684947716674286932612524178528369571937679560049202569035916487447012177134574391914536676933833642181427236661629852465546038666703302998882049099744363983019610689708292676532079191773201993515840583504819100813948050728971041651768417915238759615638837807420297841633964435879867327546592172983844956455275984221846613612836656982909379048848705630818584762309832078760188619483412278579005031303468431471442249684603383869784368560098783738825428331842562850278807768795528548462146042343157623617441700820313839405121596696342020042696462876315180228431846224142353719795495112126764424151308490875887639263535430728972556691437607030006414839453240215163755765897833000681678052087836243029702985521726660485403331414451076344047209481917919413464988322086461363110738826005484163993603388967904121797693471323268496990931682481399951469065976461956941832519097968613531918140599616817401725681623132159669163356096620252269216198792948624230321228749396435913770124224189516878366986959367696636607406300175996783622269344262265070877018166353920897997967552045945441959108998747571224663162234071672948144287740444001639179967558102284631381324787451322672046277035108576654428675562837092091512473148704874094905066067618126759751642743160642174389775622325297972884749084606271675198396973560459544650927305408400034858943509662854541598901269756850925326197553874918915958054021203871448259934605847335001581771854485790562530987474390002082129402078344127382756612141466261453689233871570874184531575304195823861410656907985545156692105221480059431086944900462313734451157264532719247207892035821060407463204439997833182576049504799699962558706634181364743818567648143184637570447340898997957413938254301776815273320552678225248261099867576794382831706747622927440510577996470461609138781924111159913200519723839819443157552235926128319003317635648540142578597947705082448863277382670261727458822627277887788001335259929103798828259689810481421074168607470684434413279270075395622157272823180058915884465518031910219789404686228283625946277263184979657559815020680316995535308715682141089836691798736907040283986330666558083432026175518842140079208491316895057239328965852687322455726793064378062436718589796190962783694561490264117050546800141780081770819049067304697167877277640213803972967524968974536743197396648367424078712152425642538023006632997961335335280133275961747265677071965868670730576701196545282502116105214797586996937123478535684471022196748962715447277584689896582819698505411353183295080520080819023749788907157095856323186499506338439268978316535048419334336271284875352930649172894007726031269902040249991763267136149125403695431403728872080153667778516204283655242508952352661993479653146822760342897247543804242693169579716271718346953777309178559145957821058550794138491066451722636797300278029977426262743426642882497524193208069900131960116222354913862975442688385852291028808253378627220262555391636244027822650955459094963876070085614099542029789874738931814587494521441281129214148986004551106353725606616993488002223558525995530866191013437132993934719170852754031698784129468423273887201175539915136664587547761352054563695495902049689969904291636453455447699300202702922018929521878745261055272304209019656566038424351532056984189376332532345061404611189866385115979884234049316933211820626545149995605953878729541754637010456174019952417720614809362576734885652568393711038391074375938728147643350362508942869481571571242295018403292904916763854080615461290100425391760013406134525222775791411715564708367149021736324263141844909366951128374723094381293140978699504129213120147376595616276886814272617724546833518004730701535229634284563505520714473693310742075984298549765773980687543796226435324401116090398537443963934724505163807744082085397045087782113702432122496074738852620032981421507018977533546684088751818668494603228782812841113791469941558651265447730599640366779725290237257159633541286842813425386883693153178482484241442742511605873809414415662650756281055592071808478742474532583527214672659310106476289552220955859359662464220197423395682538226230376607058971831989107397775950962870900650402351343961703725575373947912368376087865982428381360011770441523216597969445633691319743743957485129462033830300915202978148943879927736132830490065492218834514589929097755676211655300455934396140323490036748540699551773232440254625315393528107100269071213510361994203246814018261450527467874192084685064495523195824389450694936121719823961628685125389278255992914201015026647419625972677646547772688380166187206229255592274892569532176570317061317192442386638936657175945246750237633176325138140802702873219839355748354630883176453095310002189401737242622060836749028484867187489457818810169130208899192520744061924833362334782310692928660336177315345707730810000261362619751761834797465936483244976545621792975044139072920099141197925212219836692609872396249684643674739289305544328444167512928228937582948070757218755573815470605555981882964180273978551813004283405968977306584903306349479457322619046553797279427848967242443411386876194039412867139915083981191894789920992387115336766300988269116055180741142135682294691634224518681234771983914548619836466055830365006845625841782243183097362642884852013480524388225058550037071231779946704806532152996024119720868761284119407939442359846770792646024017277783386916094188399124441132327365486893205634164966105084903908157794313177795065373310672548974801786183009288619312407004646771896281802901164630283885025432518600382182971291558972975006872300028735958410087416604161479477573380774519888358208457530657026086790036923729008620875515171196677195143761231627926503566460969567840740692762830449188386742431097541792125305914938311301265424643250254904707959284951881688082150108135111199927907706028209357313560470176668816683069150384009386765609672053759972129621249696974511715390144731173988246521365599046667354506840070412301570185407287229285978636516698319522528349459101080196503933444180542482458844760734355737895127765293111005700387348230935196581421194633337755337716527921068679352248037080712291802986965000969883887473043232789733838415175612827275679908822885954564867190344641029963170198967009993343589858990989908138240438999704038924864221080865236858165674878144238580826462127656299185537412673118495887209974895564115649497491013562865948548878916144001712299713584506584213402729609085723873851494836610493693480911895599636053518908456008398433431335763689415137384160171222768585781238967100832570495413081206647866801386698161080662477668527023378081448775080626743936603695352955120068021147901924307987023469537636847912214454554059382530698012639815119119260297126135914121633284272533037233618886906862090314231908513497616821275684109335523017019876992490874801761138886346548525562775948813561446298714993803367091717434909015577780629676266286455330926296241291438820534230739712389811051629581641859008181236958694519157656132713541594813889852278165562544043854070705004475053515526177647520415782076875641692123034409390239346431129574209306305163143606810749342512097770252142150381140021560478206649198894903956580360038507281750729347814703418777001239530108120063207789150828490185772892589606218634924351284000495243568932535287922925065017951387219863753548378547135565611128710589875832119265804528931937104275613418858622943895341149695987473075298056285901254964889173629508493421391758688717641111451226801889966848029393865814275184836025577062756567693706441537504363954823137389824521457194337518157278286593046349806830319639964781671328018753334869922031926740525179102914868803231732558571090098696075350495956720995062641244873632112891111867195500826386536558090107668205536021312172314576782845626689549910892566396803884172113383475365860775235842884900283328432725219259879890498184511363285187117099647505112478800201307954103470996842702579685757466478624909232090256082625234603748536191277305256661629110884437352489317412292129363078855531565489975686856109297383072751478046692190906040002074057579631841600406152919601808220174439558170209951051016835687114365626228846686697025605683782756741385408788162983697356451147345954483833229224500716488877000039103549930948869114003593212438509777761449775503918079921284275984942001930231193706748958288243409230100458467903894906511654388221164207992270058814540970941913331932581445860902706992619545401853635070791990720378624152115901245256118919269119210219749728761081547914904673761558925714177697303625599119717917286971428695657021455454596205734018408977621898435867645259645281076050251676949538844482381182084442301401986863568624905111283587302857040590580673035329692032515670667791606048510286872362385785295536360968376185127343106184399990773446280592923087412327234043601478217757441376150141683300435914163786625121673880155041361402023279381177086293943226264001206362511057605559757003185448954330787635038002750228656805204258968500611979724737388890917984701568295371742831960496662090428755927665923117968502032823241952399051963127969901197606380038635592013880843580492453239941718751308470021160165759264679782136876779791521840451012364068138313746552497366923389114156124373109115637165653612333250900956403051956860844113657211832107794655373174536681021466785641327595404902154632039309332689537304358022393666595742152064176587208288394756482088814403556080427236755843842309440349945881759174031323073349579230470694490122855959115347685866196881608261976215165490036597855615663981029331194373240276434300073419558601916160511484031325187563431570217035887747554871599830537676495765891899553056730785180628241345683617512240618687768801557012779598554050869972299287620938218868794521672319808259834881192619440000953206089592848659924040836744788761803717204516643602641372107299673825825420702785322132495275071196993275351753452372397069906934261053244300330069837905283786988302228600492781041434139194976703099882429728613870996100530793476763750940977674638275931527452341360306697510056798735812951206149936891990090639702161128432797319127513710783451618669905985028316832860291361201283820968914367827381255710215267732009027014660921460748213309820667907587183250474675100457469871121529354766700017158030969922691950309124445026586014476482924250963984142309109675788851314179126457667430289341276011341630282321013849300016118270285036524301150424091935222585083910406905500049211120550814372304171698414542115174671792782094388953443385824039350694702106885573628820513671090812826412069375937502752552414746195355744680390291853561766000499139953230926191929507420332493407928596156003897431539708378473110625308473274616972149425574595512624748186589497375521654426277593377947647389861113715177649711024013425588615251932158721264210706167646097764375661240487227885182966928051302279958570508258199249408580214649101918478781976006882974519715555122286569140221048364465370429757532462668866722927106658281029875257391097356672423030723977941468565991631182259098283299704646393909200755016647396041322235697432267668793025694517798964127609110490946245094538335582948093873360043939391886603407951556278889557825253735641826326295497917873115971886807100752741492289500847541974419918465482554242528745616268224425863025687252932127424363251789842541282340282123805632061443428528600726338718666435974386708757485513434732505316716372568728277141268867740594677552643426207336672681922689395770996604814895308437072522808963075774791450175949793729864558774514137366260430986165174887337703664204737191217417507554236736554379491481601660978710630234810759405518348048269288486096231881286752059118987905877532675285743908549989299700034256957131949136216294391817847142512097654623658306991391192692937768060910977585408461461281308872082563242373651069296088628234427310623924492915370477166587631132725257700148990722946341892549682067860905727725077348466713317891224599590342369404837275904547975578693945252005906764426620363963869172369907822951386592982764590469092605328147269067938716059992516567743678436401187803056740512086359459203860456693861404153324978172228487439651243106011011207556617508180289203163624032439275532828089868193386139194142590544636046458535433845670233853927610663239745930412642847844180341131264998219888291074301643489122743205395492140104259358845347473804706289514588808630430828934334097898068845961048833844071097083204017393214293486791260585249209866039665548649431128028885110483923691895310222857422101348171488372966037107905567624683432136210209303596254827347527225176026890269269247046236155423315871011669471539807604790741643338745678742868044615148097190072749711859296377145261329017479056939424260072317799077262938120133353227111626508325838354917493713577772951430596200720419621709703239081045868304240937148624491536516982162938769873390684653582138871077275814404517715161094472204130690940011590160201462643674631376502600662029122522220152625760154004760002906912612558546726594300951652322950661556223643462084469802017172482574200987661594813853569767597337858240599376824897498794727462009185443319307006161839456622779969909882335716813232872897418168205524573255359379268012665618859194191331427449765766051379355267043628912643090656066518372886835064802349039693568583548364899768139305250608691722372401599480862273851411135967141565281783556979044737450840330875643380375083841335479188808848442086435017048852787232145034597238336804003515865940817894153916148953289457645831676173068915026896694769268634035071304252579287413075936294274826672328869147610386987195581059589985590810263630449566170301904069821634192148616941152685442119512826735754210853115437477907192826832222298693445417209332086414149551444065286633392428754895172172303392989603767962349965712201135888478114745835868853211157257135464973663139984984346196371774591329873275578833359072825501153432341398514737493853063444807976790286774035945064406576762024567250595957699856432897490521714008205520758409820554574301946195455516283708837856226249758029747442086906687039522024630345651228609687263283765949657128922731139973889769502629493746842437444159253708139100687447645680704955433015553625182270375624097271123049774375809407487557321106284606239700726805361842094757930079733461770444865142566184843368249465260653642719456238364659850107909230825562680902402492035158989365259478483409774155323447091536757729047064542994476224559908124285810959356107045250255632091174392118807582442986958591218803647301779900678562343145636653068333055914547078298004330899982317271165329199799860680088519830605930744699433259681526673365664532471706107186337571912961219958840877506076939456625989817591878520331160903235382853214147221972385051853712564994866815481074200082818668283709974144160832590561370485873273800776259631692781008025105396264218461969694862278042501411722077265383394920382192813708597779565813140060917111820396497422413077309833763069534062279401470926505886286340755969737655533101338679840134861007987384501306227950111562522028667871353946391745089989369661715113097082136743563211174151234768053299759989558559035462928072800360993591103370657086747251822898145140487860013961672980907224527858088471470849381829088949942112174785966870847561823982006481282826861224252619443308314547089128048218420073182226914619468545596690169949211011309372204209711380876560472533941699622652489288090321145894305701119417268266768959820852089701603709673668951077381601240294224734033920474455664656146643762021768237482131041638027053363817440019663450287493023451034008639454208895728819818574486903663419123559623850485707104586369132485125269298129819438406792408192901445977231264858577155653084961056162913700206355379469177053419008936815576605706169691641448627252037512267891913853416784135745674219305135217330900867176551154152450640520430863778720347239695522105732373079175483895576596049172303056373038876029278672355445884167297859325722604424549989416502907666111758161510816961360923338934902790519400666251835708189828661139499383084250429432099463258382306380884395819378620813850318049305021789794252523475886072135854666027839576658955615641056085824943729355696463341246452566333478903974217211839336228473656865906565952370426603363915828195162742462955534848086567054970800424526783686866191597880456124798252052478665644833776884619259996941312802506219569484844138546066474561349792129845162198031090993967801997194185780925527048554411815868470371699291324504528573487626711870828676677431087545115636220399275324547041699689030422770683646514476335784636096625392122545343664819081245324144137653538898075579441264370105740112117017115262647954811119338249080394172225441496783767798398422668816470290335005085684653443650555102286076898282083295474266149263500328128262390291002345951266417248852384392643920779547131119105552296867651290768985644221913632605345524367118240736813162931612526668464499658520665601897127354739019919087364590697857547006361373431125411292230896395481893897546611843720781334187151123131607960369602107258374707513478012943448876401279980569902005789777458525800133202063552324784376609533937726839343514942557134446758463768529657349743135182000829733884593715754474119671764443286362548151411485852779196657724639577277544852972022117946775385556740461039986808521386463578408872015185025681934276291662169636444576209926676940579211823872588677996555492811211591189220202103264753959428172620048287512584170967817959500248237912744156916668348843115732703752089101981397533981526634897980198089969454372107770927215957605828944641426312005317378311757247627748252083834950913484535099823086584194905134084639122912185143969426932351948583883077420243890337067348307724049855092196929285789041023792662744115544654091096967565203689599864577096619689657305361625245936972595065703663917137860046780941073353539603238659921000271704004020716663350875525019569227051731151109994394646176600230616484362059687092995261215512248088855521876387586092536806806928352146837952756549058477044154318131480353540189914215532107794890338175208076701368395021986767766815553245662302486270284034808380441893384390819669954352123279981124000099192721642706699705332342328898840633472495237858899650941831532285285735038217224572960475560896777276536812632562419504667528411336376906785705647684568530312931910168792732620506009884352429444089954103292772849288903274858425040470951520413866832924488550878505432042085284699537013545967122541962963305802058433318273965431630360046142050851130870567556235943595021474131196423341107635127124457427079204183889267525062414285063922258225906232287969311634767390176440712793868457394329596148066614237290720513106481048773212316343698099090282936546812587808046861877815047433306482550548021148976474348372733201539630472745881797103076881867904450593010327030425229365821825582927157418785338464337789963857142224355061396670104016333301142325867728520873789986281342071291882241087621845800052629615379297351313872039642753330048907967129088770009650926917000677665144983578539778973152167126555077801968365780602807179467906842209035162470537570048744122199630841168740409404430710499153377944438601732869411098462973498730477551010823089954844553315310859039268715323830714130845066567516741926289123080152331713454941148743623457349707828248205906160770003123184649682646469056283945917229403139707565447556703814645145838130173833345337618743960667230601778757296171809166877707625745290673090083240586642112473526338463952557577131175506633304863758909555699958830171795222591588624784090262039865125945624812967734240173293429167287499452264796853876686136989872208157591672570385388058167131104058654962362838968528607793433036787963516358784922493401947278862148279038084994863031142258698888959824938694816555629183103205066636444494158994835817046652252287176505151896275724474894871363680715331546489643611017687343767152482353186881062123095265959369396242997249955707466752137654847762342378827454863507742068200746140378057647027316392742745899587857899399306732813986489561618850091716431186424436486837612104598304474819315494776412864025897394482347735647223999741688481768689036096435684317416377193071536980175191880568572495383912717114582835887686551304986701261222405456543945463285256099345010066126770923781744226401773846559763689115761537405647710081341310438295592960318005677354727113932971061212867702626894839944593173006463463800087410560479621932899343540615814077357568996422142898325664854114643796185820058453518758193669861636908246842661711720737997026246827448968770215328134052484903639207882595086295122157241803962154488175929100680471098102232361813621485782552121185389093433736798856070568563484355441643956074881291189724928960385741648020959338509023600870595097587103583683074017704463259945406153213442447219521838694930159203940724768287630168303580843133619038144188913984050458249612685818917502314291882930249923269884739380141629976695910066331363265427597815507065137471994283205461397634328258891858937510022170493209535555115920385638086411415864212335901107720197681816670457629782795911102909225994350573316215168915816857372101690476614475075654572148085122931740305016371444625093252892212193444857555283561373776853875932076627651032898641156953708961455985855748097166196489545938502101325296307354165640721737138359119932291816593932748780691989241809781865007085320893914218209512896555250672069971048458852013245405948146770762276060365610684007416122252249761743148823394729881935268257039640379583217130480870801684533199400021147407753940090372673591706481405834832197690572577676217323279162438994246646802621526312064371596199040045527080202477490996901465738245451616725976335929011737211848022462159941709206755217806655614185368259829411273215285576916477363219125124315760607975664872985073207017453628954981583645117282672373202688276963584898450080551623535332484288315145152676153322438697654251524813439101918412330275362324360643468371395915939802923013907276052330084695819402206536627896558463575133569341617409740371973905328009955020514425443613397269692056933603759879469297394294469621127092382237812638398032529748261891773407909580922664208125138222974773935573950564278443908108491450426859342793612187706960436285661529664673924670734222195362684766444198790546852700032774759857943480023180691670536662454394532000312900553815226266990272340621835671516344649322217048110115743282458300899596987145093866056203655336445730124924134810508649156738634496679347254488413160480271289062193596710187224441089837349161221033003913159703260487759118361263346836982862444692036649313994677549250518897557708762612892177930940651224746789356068309744085027438970836516430940023179321258791238185497641928428306146591703505888884340877701495711910849187223332948590037811963389846629222059441608391449412359752122114110930855260900446657813969905105126732196582024600228762359153131139321917517748885056403838476377368442685965305531599205659687423540040643005856577456427212189349520335475155982108197931964528021473550815007216137328526106279482767011657318815908874096886900326830597979981224060663947507749880523422150253927567998575471417860068593476898266290178416368866634590967338731606184194727360292015198608195614070217967546836482720981314811715925728872040735842379150468011559927889213622957963205463095910551243080728464839623651084159247233212300706423786011621910398975747742582472707990902514434333285616140963652974575764820479189372644445350396918835566360286286846318433642267131347814723368110362293090517095812661429830806337127370043517791640051185567738309064963545851647636887719480846970679308425210176922711130005867224461551110048644459174557515857726336081155701560976103630971948133192270252231844167422686197407781468812624014010489123451397546227508515053110614579786459650603653630750011853533145287862771704364392105891250488714688430384590424531387822809171364731697627045535701078403256031616757986546296742008805268618472105844938638494712963718684615662916427899162163593885702935968410623264146996608637172907755668369779233392951397517575935389412834449351114004848439924493785233077443763069227409246749365321699676280140068891429999844218877607075692549517905330649480879965983345586975887045173600775835500064939645361013547314545340573364923366999174834908550418463148366687147667037952341062384977869998198497433222982407000494520965050097114410186452738500895548702312099903835066351592762577057985973703411996301323477834104535954511818541766723593080354345591669192050213451931794713280951612107323750585733240963406084717031323095795185336284589010745120095361899010093788581572144002049400831615557311366542525870637620292384830268985578788484073265160868990956521075478943804944568286083153975104979128047218277025370391168797359867540562736906876346776971852188331792607649018067837686846768427472785911108402845508985911963970339027284037472204915636077333734896469997829596057834433953534165814368511675770871285850052696893022308921473442048859363826853390962271351097141993463306889884524011257641798049777458241945590575245012526482398317086734791640443053527140162622636859802281436311719581201368018892812657565164417111791016331432588782295807393875196751091166108567728945380192532070801169164946906675132534063902403361038129337297653756326953328641169118155290823501821970158632878919701625199121658466885998326789438038077215069885901675577624700083895112727758254661552767521185568488504040517545787092531294091808061465156665235183650379309208345499744618979077136200700638397933939757937556684503773749816330280368585759580056707026604350773380361841969535450222053719552066470352667311421796059664401369165714953446991433291647340276050789955833023814301176882440893931926421722259141974163763274118738494968497388385686688649255271096866599701339277542687884755932138362636128020398063932857572913663082752026082235065592350799850765784780256839802823163458572708040833083009912588773871036830579638142054910321931908932540612391738260852496181100436068800242701583373073660915423328606872442973980687317045103743841945797069172702928961936239733254608974631643931132514295366954371733977982614807446368422107879697327307005168437757579046350685068551598952421277845458943630293859815322342961347713189430693363279496570615338146289385549218932121862900907346111900659893332649589870794138423199754491703174622885556971235123546077849069288136559987634502009441146553064034295998814949741318730234130406614043671165509143063605033457201548592884750892984236573823027830172222968085683095559556994263839408745324173812710758366205407054088101068275164815858267057254412436081732176595675573699782168977095471842890944523123656631067091898249554700887394112318467044635629236117734376127295682961784755578667767412707215860430904520178672321175451276307786444257404005734584399496778227466438905118251532961267315583022394759933855003503370136878318037116931380954312696079390675333845922083010389950404118954316112002973237245993154018538335037792835220993175188942969426543875285938248305377363176080207160931813477773657606637241944839142770853359022203695418734824940506473148320220563369150796693421253902178524412909688518763128721368560289507977112155082257079521692281300401694770893645701774905095076256697003036397931396135144543537664092143905882691857306109771520252950999774006710592036890122559649984537469611828187085227574338515127951758919893446868987381369850495115374080936485610843118045145276187940673552710410482744714069619846538118793513702229476533724825428516665917015212862402487363817461342766815619021639155157635696405076537752848990088690031280374929745810928781864627428564922969884070865315035891523672619661507036489728176011237736255166678332726519147237313382769998699271844390419226914682216124200684999251128237694782379426242032609280349768767634579064854202232075115784559101640508015749542026007913083146133061650497665652918394250959049539866710026101948633151977697920992552487972767600084607567443688624128443105942138705968893816229136125083684879829059086679650137375470612952056514518755734023379169469773921260903952755284757495138084196732725659513198821484264744897690423007529440104037284014274829199777710083347862545427905474897811164631554936508001631301052061040339862873899137900658840646143006520274307247857242990855065194622345242017588238984765313291622587516847668470458630845754395062213627418289897822779170294025721285382028638979227593221464127614182483618507107892123325947239123589478883280155486027220612687421199457102513583590551798900469897932506497601678767879480170700386874722408468008316515294658144425589927555914878021453656322248248166508229330978093604761401382625784238792306767676882678897448657260845928654631649095824139697055731122231986246718320276282465604832418485474415534692981769545043182930131768120877151582445757794674449085765990207174824823847150743861202625313006116901470070141953169578163561180431616021570589397806148463979657754898926633728863127333051954807665144157918722212652458017849821680997488364803210442658272618220451345094400792324247169539441782245420457992781033349873504287857221890517680781716033505513355013872433298490205082819703570353135391017542320766654730059270792898547422001275371074816549151862376033276870907657089160975364054022432854285456129322638182601407624198009405874356814614897251519331773752853597662172334268390167111459239765667260407088725683664009347066506098525512202207586067837582495382877395279798788082455570698238533341351251398092125662204625737976414019410774046541899406114649345511961782196541736648370669602397722066169943515926023985337276432290966434242272667417179211440812030572906395519929633748743947723864649192625295971431916205076281885146533821830089874248042755276681124599226952941740809077271426042456900219266392280820161435667577978751396923274753578729774368750529250495222072621594894530259079776941311048474878069131576076004226010665923821773198360663728513501567301759934067299294621791638253446322465291093342533115557058550182134799421567396303232406427747234023019978210537194633603451619739405275302006161089904847922443697125247631838484747827125244853582133323957895048338781582311507826842285202260202610884142283596980843533625725090700559056070859770297684209252510299173035152164769103471240457270224268498610431114249147916279763105444296971311063414413445070677191646408733704387507179370271681030896367578627581049646376717730950582690258697743872689976059133763013413112095357024706797326378681948395105930260071762003868002579290109136479899852232346203250005264729677791812369335537357601912141052837193546804038854568814687441629496747645956882766812000678952750201302905042047571322577255793262892943799883019145582033662604816745476695152122743904354994564315692379922523223141620458103621849797454211974888916485833125417117064396340987127010216268043944608865050507898535828065191983832514267031298324244430689536010606674735810683279354457690778704350869032495335162654872605788472085830204043325920779191131918354390043964430003586213714962690691921688177391025568501157571911346294418070340386593610356351766259786638009475428248389674804103898816227863068735950011180103590254424722530467792209246547507622764832255853378511788447513527456440085059449084622170457323684106012266711168404633941085738514349876621671923531544176573980816008266804947320874101139551402357287415742578073486209603409987230510745418701932809190656639913573108245884455202610439564451663977275700060450939767171615028101395736744928570686568884939833244557886977308708894275785731689469329107474970565325170234122745801726100938485176883874799462645021526218564436023166226729554459704079984066151724011076786614870371284036549902450838506271827522302015871271212097420219025725421832689913552732485570048694270067248428212736038083721897852242626206946672361227691727282669724773954616836942088363559305936002139286748824257073907822433726489358384447961433834929861007532620273104804368285144877495927493526586847801045412647821818868702239011613329513598330133753817168369657498174825592853148646593730831098329205789836708388365494134949556591341776235708728397984340565234144681141779169487154609100475566497803329475263733666175320823768630830451508651580524174871820446444352761038504656487389100253564062503423379809239248706327332882495731501683704199856645036813697256627781390944730515554935078855054920007147570881198602106988343981846062914884051859895225021963223151318286829801710782381726733351887904705068518371856146251367563839626404019647734101948307610756405731120552308414361528474785485846724879955184766035910472052302721381913893165562660093883040479970916437244873474243328394730720957780350264449722046509062498924974959970858168628402102325174528206058256282399889497233278948937470173378791279745648847980143386871703185921803640123388469340587242500621285011614073972761424672416010985711993965510924510906675512638756750192158090807626429114388913456877426448850156450820092505548218245367306064124495716102255390007205767786053587542110160475609245345489076727104655658931677149127159831408730735654915812819795861151342112559730131778098574930597493596278215030154401175246390571400294766109526447135912743282086738668432594406370175646730881630859213260926345545440512913176739295179061529402013295485547745012816550887493606376372892784465744907182538603788139372389337983710443609029416892575159796518087733816103302264034276168138462945489219644513838327189610898763470826759365612140525777699428248458633915031371961023238373698175373982960962602694629740506053520624655790125611563246911496736570933380880431599152877857030976382466603832929322566725867185260754671996263725926036077497142094255217492254482263523666144529173308664973289872461912625630576746723176486185659494613162002798896402116333555158966009385453946445369672762446303808583853518032707824734990297479926211092105122565258965305109503743746390827774152060384331852969579311161076386039756692007716323497026852013387934626914607864236139068134950905507728890100313416455104512366997629752676900958001883081914701280614357717595304499836344069466148297474904058558114037976993232999596732292947105807653796438314919960766649126445822995513119182064331374762942150519276229802664976553735553086943531118919883921568681376670048298638415730467744466271043904727961446560451326976485416101060261078449741594093210632778664407103252708376291021718568179907002457845211147405556680572483516078251423169834122002178143469739525069653341733441855469095725871884584585300243903149584141170363771428076232874367384455122477459496562366542171521236631030173160361538585281956929447332736067204816879757463809724063016870519710577092486898002160274380897581973723494462338106249165274446806436624994676924351435523492386478031403236850872496759023330579976965008789664093996063663493488641394160074899222262072346084889741395733578479254469732108743967710562322589994629783582638258031208543844512204140671175995696092289202885251006853206717038091627790009372208685310013264061774602259751993954898105787364589637263135667401029451906689976253701684593386413770261717543042686715675743588524306282826284003801573119400820122482160084860282694823380347046116910938712377869993631200618391745864589554054376008480504447508938429520290454023605756039231216872526120148313989553397536898632086209271429030214806607890400953640405673353869289521390027713389780310060668737054580825765845064756824279231163247482208889581891143351744643206433288883487458191084845340912894984648935322516524466245285029490791038204373928308768077783711904152166732605357252682058234401836613377766136947238140119070568829956096393558802562163762286001808504577624206657565201646782696073923957000302110516173434786716425034408065480120499800946378998887662743250082438304667605095014287949960151294230271333773575128438048949451660409071272368336229274270832882036134168237769164608527016225631551043758241865972122514625858849202709844039635486773256879295637379660224357707996411985854874164705948770369502497574750351115958262874887489593817056886967909774267565137192280959960641227262050486681274607127103253960550310406328732444948535313092261266729340493137156077215142102887235441528982407965990539033705129865765101069046060568352428909352598918891892617302464092148602006965199409080693789903112694406823989157449547365477482411148986961045193579840029247004547267659951136920856988175693884803321329609367725831243685330844948859150667297599463667857806682165496115080733979886238934869523471088588085938574578144470016660859560203383160559149475368974449867904196975890641735320424061107618363471374979549803131130951670061759814017321066272148677755390620727663122236846344430083165732394028550369896187483197592662544954297075491076017837290979690934864034538032526400896381734712201834068751216515974848357522143285704258218663728065377879477214614498406571039294984594957907689422148224790253187022278703840815249655551433639964388510308505333781088368637901993285725305287041990049925336381659633252596191581609682320103299206356006856059224995326870823794615241587340537773865753281560434708572440913292965010272413744205653225952456583703122700716556219746299010294714990874878665861422910834506172759113951344662826886954836044709509732534160476448384728646709750690823867022090090700841899151302199218110285909231069406957475976653243668852183802706363969830975591102926805436634909753824886230940307769644410214766595538412574158729202213829661376618421434070936187752955155800055209412812366726489511445760508769778548896045486976268459888336361446112385183445957513399052748029710463274866870331205440115062326227125783747491160536612456002221941438457167814564464055054311144697141583795866827516525495161922750593900169800757341294362109508760789079118413238507083683297964488879899345444856774554819062444822853536552364312989010020902043850277499636535206586037521607001490430937842290410007682626875915592236736992363833732858124916907726311751778018403537589118884580394793377214656360610295771985036815261563780356933633548529174730870442242835126812061534074150951772469219834199359201579047988340644196671845881332604114069230858889081299436895328657627175910860905883377737625448285138651538871384622112146199184761331624205121945255340149097705651490731738460473101188495839008675575950698871152638719764467115300563545887914531394699598476753018630164906763757191861114784749991907377069612613378510612455403972336244822690302781983264649269820091904801260990910380506966878471064093593705831052778955221905314353175104534790679112638735944200976465744295107841056958250742582356694554745653254285014448289326610554437459042415629888647787933950695864542958740736830593713575183142927455981795558016180368965133683859115833337327778273190716834127874509187679694455353617659034974256743121504574552944490844914384547017380829092392711925743617892847227462578557927132198002235404606869035023518414160897474632503094471380291344806632451752001715295299981501457134286266190736902809422496669497966726920736961065734150849878424470695128213718746396335323183253830516258075195538078496686737413839402623947112653407384625391822378134855412999995604183190302198249981339228923906361088993765424260061916469257939709959410010174875668419098653536944602583923800610824691094615247226809630207518260720314750808482093010818223949673110671999601978292237734914737489920068884300474330967037948488068528657933989173186619367787374331049437876884329239296386380592566125089850841768766296326333892884500854289924519537744989563859976332409837062250946663367966567040827036104593478343702587071856852863747112940563506391025933259029400984349347957202294727559091852166432757528670343099756721974538702998528971326034811147584851508051398780371153168155704121380007358555935002450368395824709315066583369890220465024128312334669300666976104027114123627679589453898269373360893618848053291565471910934917169458567966185075199689905919678364730204428169316059911412145047486372898586858345449787395383676057962975159268923419018575309531913976212849538067425201688795852952073222477382765111327003119166292550940218845312915828615581901175352879601256273501454738903464227531240056033777057454365224070609982065255013207347289080648879325789270318733328793506520014057705806580858709703378034685297560409973709709855832581677876194342470136758502588669163690175028294828190526316276272549245272568314604090934820875923881469765949306054654835240397156110124025509283999392327982465939870755555076703399309417839957621396024142656508440297115513537634015261839360468737388654706838644907612710197075744866121559613125799274457949123454493293055989850432749854689051634727319022891219341335891738895327295765580066189495966512561981899141471291050141191741129567246225930791394361952843377287116251388552924817164737414194579006922137476481179395257452285448038533950035124345182312532495883831102705862718357744701413914509524123563504132297909765565316925396253919385426779114044849778532880012972041665809182825086096368031874547757078632963219846836727072207174057979996366389417712566139474527045594752855846364115357278251283070299041227674455311440887310493359128041000224351072955177139228898217225943041041863008212729207213990854583759400059308130504813520473313844784274090548648028262904136904318385387978197448560455494745500033349800035345714584681187007931566273267857044559222332383369628746931546787138854768201528795567562141459074023881110953817419448267435937673240547001629817441144941983799210914997513392722494464248832674419980897294547972506908852563344036248288038893550697940898706343187264303549298389710635974628397700160992332590522945363249605947157594572258167517674977632861223515291710994193922183103293703334798394487808546443654082606163855450684014460588585466219028456189337660465269750272798481226508299355863857584210782121612166098384770807429142572006523013248209098009221090402590362252194165497786124988138923080520828332244466398430788380053901209757473568846843013042012214162726634949803170116101144532654735083711220755521171700808560470642496890302600198560524154956544269080411283375701910462092214358102621317572904943690446945251453795267377372154425590449245068724050664366687303830328158751584400630402974268765251494700416222698436341614034136903333467551819982312638070871538472198467986652297563218470519073557400395326125268172302005906535984975973679100250189885144020112429595984860950566949553628862520436906229316499734231153746243525927782675231030279986748266926853299272370119430207322706582677276492043994638618222975442890472700321509855252916612669622821233968694837772503557718689543276227033110463656269242762504069582589771265376368743307499809469805508287950602914929384712594788403678066316765780993309087786674817684629637725675284556604510577506980407254696363937150886969144529970276886354960718285707897702325228694101174423228384912331091821114490217465889101320840658640553059023689555307572030669176796575473614909009563540022868271454495783599795161281402396719141187605473609833000535585683978512071164556341703201649991092419620676456597596587161772441748647832446221389697494071042339694033933364250376628062249173183394914959539676499178663419009806815572916076780504342172850146174828580431533952596808469324978021548358819953042835267508206466813476321280947377626444881845805665057146360557217284232424859043900816236967289033588619730219393914508653894777834847697854058112141226255038567274363854882004617089652524738258525501992259550753912913320914264570915823554624417910051822205753053869076861551753920203070208555519209901178313158200365605177410193310151204082674059274231988842069768511374553485240213782306921070753615503717203776064505324080803456763726352785345156505448110496877604794082769884135237243371697092289569384122996002025849794080283103417834168976016339004983111293691052195722501804715895892684892759586688859169644850811787938165918432846272443628576480804772487122174982633980719334280777486844527354416120669986480114796506059668056175328748897142714291281307754497192790626723676833539877975185990043626491623506150956022261158038928641275727578589883293586686864880864356421248011764359110849269084881054089929322595589015705961795631849470882500910912010155991132017909405604383354599623244986169741667821066808236837437652391833424600566107391877307585651438229778243035232692081353114466051366461670862403743588502458091426039839938687936428542931426875580984256085868747103691913439281635407608246803900198320685476509182084791233762766422596488490518828740714292146061583660610929719890146930162259108094069486305237279948675470065906778049390015640869823046973139261886156486692363965907233329555479480097459302753494501501350590550199152925223305003868387484765807635779518096944605868828685638852741649128535005355670858838674503267414856443353102036537794332980484870471279264501774354885448878453835724965835309871605772939036044961904012147933839012331896228994687510752303422561333088849240149921307013923170681197204508463285806726734197346725169327777990806843085261402140413998942141023844660487116664412319999904936673385231506902195767427985194088020292942121510188940716458683633377040561004652768030199230976944759569534376956753409533666634856119215630603715809838231437406586119873438681967731339530078048234861436661440310263086002866780516131440804304697218450288959664532300709767883720205364733332909472190619149609048851025553335801152517002508092809360852431053250444111335812626891844622711568955783766218619800496472109863043847756612839440676546792488857410769930967720253288195611017831560757597469430746956776487801382532723649425299886978448680747321050957426795960288847572357610267554269389538961832150609503137448937569766933169877738688865890702750389124972616701258734731865260332276509186987936741983942164470312057898302042339287708184248610043710176342411181620001387242854291836970624194077046204823436443013830538378490953506854153566686975445940008518618642872748501853116585130927261198334600196712680978094168837531671842738126699883105806153149761970780716910582146501033715062989972907541449667088083035960042434863297971757276662733240138264917101480358410719393229559091946217601431357188110366251831895228788266594625350660352113187794811718741978318179161417145308566209849365932891336712247739344958922581264355582392245134428166121730952117311306062211665082551534244682221723068258210408370828970795397309811459791249469341688170069567735378056139131471919882288509966660338407339833012787226004773311736696744547830545432472140831118323611082739332878065570843775503775254756269347038131149661442052004869252825708967681671129486111291649459762209305136087452788673538167092447582485719364284740090189074042260263211503094692155719855529365402801976430808380848723710749315708289707171510373170946503825744694377326758503749657989842470143134551120796126199192623586720838522598904478673483689836897829434524077446271212914678843167671304609310841353624862857822769962701036019146695896462407308021294835213871700151912657225496697906650947241035054851603504941246098904508352508104462939431312023541257998088350140049756287854883014021677234655623083563299923412502976521519141336005142126477926307327626534780919789556425426233671052849015388707512979878625460727385116289941491180973105187963338834245030606605883612553397966466886799730076827996835370138364876664576249487887379421486716675323116660624776112357746592698790107095542353910073797072335769655840427992646268087536242159240586180734116526688215136130482074308961799058811751277030376434864105828010565525955508022290712393700271017073756084064060884652055059453093858875062320790671176542212549962992248469665074056382881989739474435091560787911083456252408931790185907132415505600557663907020948071080982483905811746072652142988171513003649448869973870198538239482876917059537453447541325762548138749928950992340944860193748880428764895963412786953178574237010639933022050679556135963699654719960031619697081740509296862641701403218277124473593013454027858978412145783633756118896502327981830965252305829280053917178208834915005543821436027204447721225119359706215165240481893213909641471798633458785684476260160947403170179027848990405706070745944271634386359416884263530150659952097279562864261992562646689862127426172406158198408788239943365617907488587512257436485895393023582396282368100716213368727141356460418596614161302062118392121059683843658406315150712041300671793176967398770338825860242472652957359499315393643360436995964750680643944736085962291376377655158028375245466741230292345488918800026536077184165641442101333808723349897543089714624455913951874542150461925412472853343799555108524522620751036018665612979564394962804438997724686339072604864774419835625874644256087601453167507679885895843390194304201131823612592207283266826914178584208673079415002368603572431980174382796760294750681697019525337588500665965757746161752132890390399901671990313794318624672741692975886557114222307232370423670547420487768715904273300705149250183052030334300808664936831208539354549285699816313318631075444416174741711650542996282192308412087673952327901355105690286356126996746452229773039763565445211305319376248503537917864785175165105584201623971443198653150345270752555779951266546465840786061414401319495045162171475287489190624540592380951713702520490460715543042972251405784865830490017667942450627842184365735846829930633662571239171138249643139230726456716550902269673872514881786777888904290367125897356822133979243037118700121718746175963703583274609749930119228012600671565252593064908085270216536070560782451307142433242473226367885819729173192048108615631777198164414209642829286253719321135615806387732979903099570007122726358749424687504239485769048470344022918551478593097248308697447175045132189783253625554324716437463003294934662934818348972034520865749622910422663902779391306858563764496223891574765777606998565039816876879981890905783303671718214719502012475717563465884972209842776457033299795345543908911956369796487658653759267038286330149992561489973468738456826636341114792444220951120846194798762703039924583111698331671359084028855987462355943162776385483028421130083124278897030066509870058345664369451618327258800830571724690914228147806153907509482318249086493456579870574062327599921251016436298425969042983867823492691863591015076323377220629542042958431144735874797219060365939214372279754386541707068123883886998354179563500769102446340400059882271114707750018290896355754570738605451431975921888206551804923456560373504507218052455827927010052116310427787811071754908146983386799526115607536344531522047573992503762401672703002332969900811019650803501019664708058459895416184364547438425409355720402567712271755675138672607577774205995357880192966583986780414980187187281396946934366949345756160255631747664409260451089122232536027605612104798784677981387920341288698193495925039745887714275391288060138947195997698474306352922624157752348282901529969439199993414870964016715430177630764999537543417326428572534547363243144135952684808254032940668539593829477864085361006218957514884580704221454979214591325485177878664041428038157438606824685244318925831632984958378425968920142301912535941857850820856373790329328845201941652549285140880305044190294127081796174588633123172734184705338329692861550708525909744101907315828637858776812038037829826984185827707513154367600987544534236320673187060151359762485886821345976068081376354556284514656454045945506459614042980374293173021002125860094195947907984573743420568660858951522873253114993011683536276601084191595350052236167176690030011884945606179583732072393823707532073691796349317307886696898077970464730607387294156341785083906923108039771095529235677458115518467542453200786217102421452911403526629450978422142372868769228568470333120850104321325098816845619781254330447588224963833440395678542383614376144186311215312150532267392028208580378105697553159657193509990417764776132122015255028532023309123606336894490185557406657208720923389536913907879909764857582862534639760869293609868619251269350091462021347279670801445218408597350571217735987506685121340059635856089914828334778561903481460553414778145275145014197046160334794826400239834702618664152940472825267313478186384554729306320635354612507087507241773657935947533596748401695280821344114738541805303130530661288962459424827015516827026722573108365830335903648651282792302077793459340925365755994577412166381666755685233124804609783212761480792556768892398244468725597433079724994449099892971391920718433491150776019132857368401487239308694356264318373674223715629719858820600483462949749745796065057505209246463075399691603105170218580009620845582312391816408047191370632405079409955691749058047429939176358054778015371880154792801987357212401869147689012117811660835568654026452463580344782375319943139095337175309713919510631717958699942911549788226210336440595743690790981802850322020180544749401854094365239161223248028813660888723847361982564718936806124180042479491882264933422178651543451497931195878005467647092166115801762954138318751745274142943265438653080366142131153371070525463263818204087863665335727690262890665756666703528170548437313538801581477947784115266794857653827430604906843249411336915368237562233855097361097181225161117629439773987732959602049994861147284939226691799184263895767896471623169699919683631369732077304426103640269940248314333381735955650863598479130266167715758929888585057095456568821204425747712406506460253657953103799987262529759759007429530951055168588750954466979975605432691703935542777714228869863322945538247008233224038099714629590451912559470359438365966659875015062936444445894304306785191993716500387338689002533460788960984783608648187925786600477630905298413589047110882473112805626124709719204732642784696972935449752645311261303779404465685682796928216331527127624872558584121878985919739035445637587770750009454978875493484640909551119726367805912213982470327614515229448979938968708308695487895129379435641339171006667274060004984386207788996844673359362315310103859141473730343443833115752889539238868232377427255053388329211375657078049195795884562408204511406802220909249233210622030067047593003679216019683960576796623335320711144907789782019090844845616053017598417319282158516674473922130147014045105578001300169362631267942038314084433993737122529710740624895333376772282786195456113524914823982668132374985542635429715365782113614968660513782532042226809239607685758182888906898785517233547321523311690789353360422401751965822565903685550664541205056334676619777290833257900409713804484086187307060108753498552975899543907104252520650024618349167123666897095749101643715091657738427606003306507229826689508377956243425573452250949807952260666928667345493362929277481752325196025958308490383553081400972996061252897548940377513699752490422169321224802464125259655108138249584827867593301424007927510030440764168516865059952963182595755150516983664449202031115235192285880373543232405934402062038304082775159336807282242245519734661464654358667158288022413545665650227816242658997200959167573911714391120684166060828329564084711427983729457678486617560438575842199078760165088424349856335125933923971590234362424240334736218167082588916730628535820132885851541704835272032800289591294655714423350044598841550391742479736390812292874700210678963947354793998902734772812415859505563044054964819208679909098825853128064745900894611087428073790951977250395740500508810302738221500446373038596195016027036781907108100050799418196026981041424737070564750165503696387963933306513463646134707532533322054546480673334303066918604149915502448043522675067453124314670614587449186944087853959786110976484161011910584648705711256882278100540739679885483300385874754209980823530170072758968720354631484429282287866645409216745304699894504503186113689143072478761625664698661440775157965632656400468744143256370071508443662029817722972027226968848296745398847318675798186187816713980705944773373692173008686740623364477751718757498113631472887006025705180539737971665558337307990332418936084654606607834227483763616554048512296209103010512711973575091813954661494247031593438740042717518136226804094562566158216626589052848431129764842281726186489021066813041147695400536378180316897520528935967888393551584914162500888524038810445807395703918918608236041226177078986195584378561542514249503641177396942798572823160782901873897734936889220017284161034909558207721772946299979319947964183930814898303841930812973952462327876247056191803744524665270740892560873740765273860291179184387886536223619244161373549115075575931962568898569897947159505833028493700672738314641873519144094063383694914969837865266494880175592470820907674445664918045304832582618880748756040874864384562707468914823233895829910711215838356177170259930723986690517347882422559431377760496052430570246848371736475833940257097255508221425565974398820445828024312693571267885748727395800107432482865324793646859742193550047346720450686612374100233015196732441669169955649476203856249316332578306726574593523501644566343429885244805104064039362926651551002046981753473309721675676466081345654654403342525127480129494884007187721717629888728806303465707590322987728981780559172321141177549817856878648491235077660179950444482117375856421661213419388561369694813848763596887486510747348538940710196270201325122390528356370842386122738279601460947273742833477810949830975166856691199398094500524870867544925468323171647450784562663806199239355653941101000873199475178357268402950469422637989504074212497864287839868696926783617152501128987031821993601585138328504199141679820361022251413827018977251615705824524589061157090859871118865681753388726961724088652132383456122868060620269699839695908078806505550323077367366743098123820059041508668498044612984984704519517925535942370432782541306085885719331789158101191266982531542869359261112708563427277836567031115741756253357518206077254593978701110549279781428377963353547760845307254167940974444280707282895676909202413681371621591391070939873250224603671158511680197047600964106081427397768428257499012318891904510354674762723297430273015379241388333706221187925616179568333207702491958806782925559817225537716431517060134510525584943016431715569107249177132704213799600747012295704732710971178682550935466334150789046808256624435462150566882810297250989559650540101025362820675828087365958208479102557605680120917816962387349277629798660002650760351988323791336773962068028602768346997759560641707513436729236644598885260944263574425966039326314934908625638612415827152188488099950561862757583450836720755825260841847112572255691425659367913916701971989971851039343094469899446728832550619024486209410287349987527173325254395839751570524413217685636074385023323296089679087282303287613873082024837798987667891516094075524799557259225935044731493645778638509377378264591646440326100638448727075671944208213610413963665266939615863036152676484983340893698096900117582422553354142098011548477209283805383841474152374857762468722202130320998791194856027249431042276629886959346558091212159372732943052591296742912373551102071233292118294518154042767185370949784381481123413217698554932726561869757362068212102190386545925926392933559368028903881485480663994180300621802226792117468232954982636616052296928226548347228632584065088012236628268763876021947297790455170028567475399413217018575156002074355249887059227994707200561457035592608827425767736240979839556891408383884854340295636467353051578573000991648818680507583829896303364143075923166247521678766230178893435563943216918518331410438679828152528729691006426904309448136598071162540556434733422931796955543025831054840696516440861767449198715135762640241703316403284165193578623601902338215322162989799166036827964960113372897013148810878952416777265042154999951026265822945331051051132179320111999044424852990970358893705471502252985442362202662374156660597257376329391326658607580196224292460616107003626084140761837901295168190609342546191295069623880174147135302302675578886682764465521505651934882703488147390572941897528698763738729745826049455909373035493009252971040969816960355712159957451279040854129405482880362612130782209683399252574713177190634368630985399832532753958935197649568218518203507881824323539203736515021897379106121833242667613672168759921817504617824066161486457385993790558592118741111650432906231131654325087515224435829038074797793298935862831197943739123981967771097250832176271852038007233367193552853814893148473884186573677607523451912220966527901996282560552184418983139731154461163475409486696851779865998733420910014002821434497914573645143997153454686663870963554286169679719919010526308574888830629475404350534883127265330646795382095205772500637909346957170834925916933847617346458572284745791981769256425921510319100088593683515898481493453306467861269154124255878092064865749098295580859439604380548941087558949274039529212647935641873481504818262451836729760142895712269229474171834298163786092168306179686863757985522755725291266607637393025600996704473450719767985981888652014874846037182421377319785166076400294175543491682153671760091096017875726268462767668092925174652075963854033364043144873146713861561383899553744870664928676546555662179727551444656820316592826800699859658583399138308814640368942474680777393952886837128390386701495127340462576006947760643191559505728303755233759857841355158357991006756341888176318696121635852968024872385704971158097861395102645513848259446022915087864365595739297647942113881904187372543382853351765343029463272720309341403304575490092739519335738628971723485798243391922868658094479904563591775912325993441453462961867525173707497010359905852777284537519759786562019196376915868887872178096359843318803683564565880217129810560941482454381103522300918014361743893139093670035674553271737202403737533822290029795502734242270810814169660420211300649467490092155355579401346792254684617373317126755973385400345811347167553153417411307200378040780376284123255467431585128314303273250499594074739827082656818181495807667103512708958154382538795527709175946933989375840820193361433727627248626742754843704367484592413577756625082456580265149663980644555220772437672189463658130981763419071190883647525271194331960530090831022446657056146448994911160248433881479187295827997640804794607578127933619278912123163682130961754178808993846411152709270455971006238753227632710032568684538364307709159243869586283042443166520913100151503045979998312021562228208703096596868845941743252548548752126541412399462841920372756155323584160783592556834375085872708057044968180121954045611598577885882549007579632194480655929050106198630918164261673905285959135640774505435640581490753533411310152356307883423659643858805271902663419226947805555448808860585349880914982833610290462293122801447971982937166078854147936711338675705670158689256950977535068495977344972968290364254264878736541606978788996979951791574679539987900032936767203426714796109112811549601242549525098732315010267799426519291232855639070899855171199561278826629237680232069382666488536669827274305634468891748336523548207588332158670103544566995445520479320362637866073941238616750477979197573488774428590067150587414301820649036837121274864834559097738017182712449629526474755824439199758649019358929354195197180232347147347741572666026046989609774932249416136068590349470322050929625472402528040136645089148016039877970282260633996942470376715376038248922883460348569791342991701361303417192355833700015322459142646261752188617525449934655270682939383832885298087624408596005735867211618331936851906482175348370808480823109663705999790714076134161735656689203566821493595322015802392034054664961332373154341763099453283154928195813825664006071177074017132965837550619712145687724171953104359241411228469416347115893627569158722270481699814183980914000744907422011591571308181761953889808136915079870396966314635184128800919631342090972748866845834012937723192365589374922162730240128967868140515441502451519145793622029581593511826328050334627728977222631313910440638247569363318243213445061037566312514432354701277253421100006907383246270713860941958653334066158118333634832095438476043183137455131843009350496526230989400658615600940743860043720165953998610603232155027043796386118613270471525319812919021793587449748289943436677301794540525732488775816154164436735267867145222378024126083965667351566474897838301182267726219176732800278932932893472465725945071942450136509215324152285752949825981106962172242447001326646061342907020559312102040892143466016889034478643044750454698841559118804484858960321209366209964043122713400112945941810211891352555577591992695181105333426156617543001793788804947049983136668516903283338946305515302205869519757449766541482592805667937474091644324173685427850021482196925440701607802736515775883242687700788456527963690662271442124298876092948548993360999072342673839535556277261097627215167205876227635954678504285388870300198895689632706513061142933070081529675528477836536741725514807580745579936012394860423453614535366162628279425743129786635415625167637483715744847686830257505746368838532857291741340647587744645730789252360388770696227925120590591044230616808234063468775835622802804944548123122638804467714821987472926977799541518154443194007985503233948931003865123840535663339281747460983640793451177259346276085921824615493009848861326677403756160655783593061618315315600115394217911485120899885011688818733275493359921432427934490167530068439648358271431544430804775270005724417658850174394155427663597861857781922423215527356313525307412347610393297816781447864613746856052147170537145999324452123327947527651052902861060073299297386786601169761945449399889741056421701630167774584216950631588012378575833081511672635431332140734658439205715632864441681057685881516482942697299178114925169825815029987073643116455209040974409940328330187776979932002476404146786419091583885076926041745597649644397051564391617830837144192196121739638405582126812034278028961257613863320673506112309470871206797078494398590079480244891147574239791713195628520827125524299138698045428631344161417883067176783709432664808929082283839189684898102213414599252642174976788952031219408794402014427448766971713943904316435683717568310359469525841133423220031254246805170936729551713722575500749785943283031375289314374823090120411135482568778278162246414485441810741026309641467860412424613506246617009157186621601423497179277953806621359754210673837691669569383078878200341686361944741728045355953795819612454297704335410577296545692882732384681079247465884855564896729030753557491653924823529217707650878574767343928861130957097157127179971980303179816944165227312833839531625926471654724512063246589577207061924307032811304260982980256858105124312087328495572461623388565688400772703679059099166187328689866709438712118805111444838039328282883408463944524225738753468345336363514828169974717717488694899287100274502691590266429119361975991149139021001495270776125905937236400114414307386384021778991384634236601050407098443138819153571523481212346306171647013978649359297480065462334176619699351658957231547812930532740919432744318483053160599896918831756837280085458821668833768063881388582456512255594581561400252806701298929325150145020025160462989513420605079577442365405016228953572604554557925830641846544207155896961867534255168793232531232832528675122128467388706679535493876076171046871515794594833715000728083508961525603365137175063753886986180714818720775021516051899434962384970610624496982535813717411580009918137397485365036960306186786666865587952784853512208617883730534666925461441876473042989088099223389124680319686781728044602780140535016377839678939524038911808820363422697546934853487469896123858374780440566048679358819885869069526352899654281714710843950195675129143686898862598521415921782594976872523199469311132185609421174137915176767643657870183619541582256473948952459311085533281794164058820165442496310264728518180149608160328510622067568086299495923139408856765841374566605215867079037678741253373154159092917245964690434333725959438121093609746471919381399036801238509774605467518971126512976357335917611461189718423435521027851798948564491578787369629020620305068355484867227319075743319886344181783161844250382495249503282175120066932183095897529366653690855606560241407909550806989821063166475549738297492105612376112230302396783655675788360422836151730739896436004230814250017510956019462101070692107528704403319681899122045703938278763428695291093907121956970278235605328632126639127642103922505221992821114333489575795802629907852045407265574259162898431845333462320967315483761303124004773467910091502630628945734641798737654788512209503445844494344554704609055696241864497347779843333202016094305771724487327332367178430274278243696148461144771317921309913443011173164684038640400973989523714495480611508167567776150334696863476039943111551428505563149254534557017876896423019689087655347390996091409161731695225914414806766255453286454725426174831295234246933062401200555087703410426220133878572891911595049765791838167831900927138463204450087803495616249981735483013762784373470609823287970743898171777559805453895429457200912628973405744393698925281333799015309909188269756047147213378444611709694319733543968134096807319466839720992082291277717867400480885774431141129744188773403012182553236600488009125287920635860784360908714957047845468093153735411384470250164421503026815204719092573216366213685980932632765375198372446241207279621897261592953314287967468868289421308087268130582271072195258220708678413547597338166815687846451671731147574774549034380762482048316009509933661195375243349506551030200756590040356818055806413033768979411600314912844684589457963426183233592575132383057962584743963559065766192704933885597932596697321672616546212993208877670071739368935879255676829879635131624821147084554551931260494224104593207292137693667899281229961381551655809043190916827303380440483207679181726175725028880028606048758197700136664193720602207148768059067898474187482705009958413169591630143229195088555390531414635111969756370392978457312247443393155440833890469809177860499013691702601137546436533194232982496880830641708484777709647607012199402054884404775753577195704865266464604384095586319712261362517565564094268313037451986563905393360101302307179246264238259840982401271954823129409706556378335061740568042397078648767047198577608696080641829779862206742155551873884362615840736783205129040486780795606671899127619880683484591493271587648518964958571073465588451244982810801586356714028621183945856777877268070034693300965583555062478626974733659619857418102819481660362262193764690048065879418623069191659034911525616897760710737891619987582919628843900040813833638945855470300706630460700709766995767953293719641967135014832726907973135758697174748460619685468014133303817980596504375127969563633965408495287752106632792500768285063911265743164384261846414637932969034598555859171193653718303759255188222488863463093669422748839202510469083427647363030617447968381633170588188007041974137268880242074411519737192787630129182302585511992298285122886944847870453789142250287014801368043942907122462889961725000021446368362815060370099185582534080639538743557974516773166087731355281442084997742603979997839201037497673811213486645100221664728774528770890232308881338656235120170668754658289914752892430511328312846105976983754776250351068739031400425797962386132988465979953321485225826360121067280415365782833449222536138748754221305651144355657731309397882391158913611644742394263878138337136514025286611771570971189683908398736208221577806461777494647840013331980216790876572549218568307593065761294464338630619311886158171905901282176807496014189252730023204916898600429255385311209722891797548422163124453876969927923672770131639019116114837526230041123173414956135604947839835542217915617363396474175787957050287850908351065208272495419273688869007099001804837957350591834094239977128706948769170487160211223674173263388206871421863189476801519824230794344077052728292948224235317438702956615287519445217224224468931080482463027563122420190476309326443556146330015794412992992450650487454449795043400669946420794975978718861825458560671956582032568906559443096904854409465061691082806539410584768592413681216406413223379049561338950095950418544018193035542884125178794634219570509944815033854871280790871963517680558202065044160423076691265300844973731929558877026646340786117098004816591895002428612391360869244445793756908812172793994964384055439534384551699588493941068226182540582399148126124230131150825354564435248416219346809969725399552170382761566800263218236674944687350259511719927897336584497329350712071138108584416072542727856434439616301626546117782548121173077358017779269036982010200724612075138856132683855613678886616500265826311158785042428375299717233812047562404929714842859243379038213706362646843175517116443161429748841715918244332074198384723181079713446828385609685648178543579489923428425053883182807403992208201110835338276245498091641208244233251452434808646237294176192549525221564031358351611613608239007819332960323813706411823210570031447552011183796445728256572788025890776682687882234337402427095688918246354394649863213333412244156206198012176772629875882019991084667299459839547142619087944559768581013678005004839024851148666967492664106159760460005836542264726690292500535760664157411977578758641293310429129606310905888964975457534361205442819544891936996915637366245343425520139406299987944485633531280508939141530317090703995846718749353051620591614055608969130240850433558518509327546734318279491008953581777953171508105970732624447635658373916015805326943061170486064439069035678366134887027497316743362119638284328086642460909624179074964539982532986216393380904803604121794805958395115215600471369050682984427323092275401068964358691971578144123568551588902612184468512899745747687999275996290465887596245169901616818308634235963518515374956548634277349828834979991174204888491453945639456326153249070131411279598921163864559309053025198188167222959832528800468507900357965834447498800631203324800532619051559971692831130554064784279264762532087174311111350085178396281428759611228590721283910309041774268951984384589589348404881567498481057188826258548490231161088840472374517544906468600898391807131401590783379418080170638688749664504591511731739590634363104642276981766460083432728723319669827107872021529007250810745005805411776102897561169657511437542899848133200261369153793877232845252417255694956124607876652028830649469651437009797466114488791626371639843250804657839543311952646529064914397274863064062336823117922523548204796586811897532504724630085980714573642628645055094009133725851681970270734721460459420887503241213784512457554965114545725183633319586277258062498415554538404535829936136658646326143353422479243919463852087465330592668470500325804868739181195373703382488230156689673092181391428052963908637996023174878724657996196463265414115259370297617871881094692008058022139574577106213461314837845693142004616683539811625991948203365307805460248711411680179069207694393218310601032485896845307123952397146680093841590590802983432226642035534541861554487594879142247547274714688401343169205901891937189265954411309914665945575527442588539849558220659019501859752066252400063202842975058682469078053472303587284204925888155672990778888268001183199042581970964438610884517715151527701784967281292594159012544996768383451760237747934724011706051170299910823747490031140917545047276354813304640456299135106031629707166107981123564553639900019380819206375917442829102108276959955239934892372451857274665669976209872151812421357968493277714067667617917539874063414896194916762469893707083459507877253332639743057643592853270435848486314705237657004752533444416048634864123087314554392759265925921978868118620729080504479451956908642747421233360864144168905538493277542803394979477503736991235931856164930753590391067343025461562013697042387593050618299394163492313621352954239818984030305271970270970993628655800430745561661965304179601773317572017713048727609506276340070125698088819780833289518132655007373080801360818645941046571688027648927202507719427019843745684627125332192905996012685572177007571510724419321737188146095153381709852884482721980254640118863926552078415583520706809687406290602473706710040630455083642720776031338949598306967904305804885906945290699392458346876072740671163010038678785198378554602467958322138885079730011424075750433186271599101158793040463700516888999639133018624284837801571995718136355058517209550443845922860418754566602455811413432306041052256690264863284578465446571385270899360139021654718143714960203911967291439633819542538238229305060361798483531556496278735469677718563105994504015796432958976221063835222852470535649927830709310365403754868589076030805867094679966944140862180521808869086917531779147071140279915279688491323268553498308411826648558280076613858760171780035683167989639278533177810001112216474335030558166364577690192956150523885246051833299471354764015087274926076885682884026264593191426204183549401877519422849295511268287030415630758173812406910318368649742803322158550580554333494857736769333080365720140235253109995775675266607757172578648374850590326070400621266437155986875176805856085108103784400909747009028016998984092736593638207837222177045746473024852034394473517987138496101947846895015345379394191150167817842122150448696198039755946167451798816962731755229419498557808632763468066808344902521067807518282557482638716207182267539297002688584436146579106016808120595796882120847370251263038748299239434655399606579979917011677976847838549098044815460908036133151208432637075673139508756308340212007534738713717668364822253978807773549755444962514701730257907784869540762405871880252551179835403014270167921098494140967453309986881875432158641369921326578469443345381800980680148375417866141880235008827951930077620626344276742713345817327949433619068122270921992821810627216721177298948439755020672263171299396322345649234601499781857828635101266223912692722992832104092148983063444192326843479746278548060858286226534413814873254689802328684180826785469365049107887265385274920915911678881751739630302341246220965724296976424574629174080327710780678317849668419795683850641648801038215779979819219572575662885296776715186585976138327003846973174284852673820116562615495301843898168588524815875345227768335776150807000385224084908060966639775737552403348194806919772436702962672307506420756916092235628225388286927575081184359246463676937224650411296992724358065745414650611640603279856068593546774805165332669074424945976127062297128183955144789736710928384015232340380682265903816378261131551329471895856529062057128847720555814737900486459047062062644341838688872842141252216971041917793118606902060218098623509731174130098353940254213875661505750546205794272241656575849394335271579880715882858543755008144606017684048362367232857713332806502704874639467873479907283241978777976739180238067860243226074734947747571292938045889958131971945921525372770492082851052482803336412947945129165609542906671845766194148589132531272554800013363928369506836056352167897365323359810162952225976099815228937163744320422363340877428865545138507922070851495053489479778882180791214156171812247867576159261436782677878811206796311577891325519323589465377625767593923736330063854231024781582828262344636737914516976014989110768416543073510515900895092895331279830246623802091022129357654992174336905877397577619123036331682675978454282264939269386574207319479877030692965941490982716022942769416143325714578871602451617799431198499832741975205111212395783273172306420402505704869536113776994064460970157938608389416334067439811359990429896645148666168353650653788983556577877544358954749819951204143171135801485323052363287579726893485108251187652929576241606820843413004047655986924755608897611475797244454045959825482500271960125702542396019225094073332461599006388777199233385718824647941295364695824271498410437643977172535102214604567914981768041679984889241854712719405650956256565072906215778546855008940662158327237834873127405012972037106938743919741003836821118540446675787783226187639931927441807698407953456692168545553049506545246628665235076118594937919762196632913513463120357951205978889146899535962882738210682150167569918240184935197147314349430685670674254387513914412878112854080281061589827453590854509532708822132810203385693669848993829473759767167382190615464438035312268727996490462713458993122385052988807964202904460208733958155300750342771297021236664343910566497958769705524490845644672027925429677297353359765947639906436521547045226387178040727199984188380211509391398961601549290780103658239843876763728567799484107197911905032685427428178220261497101346925977319412621580647140227110872902434634816147621332870668316447317429033822296472305129027254359338160804369268069367713864709189357680740196203187205835515788576889590496009688194689686418685753027064090784395107500615695759480212092175036026334716587881868626708169071576216484828290724908766939888177475238615825703926584611464698445446987799342599899706382874381828749376290878785282118206792557758830580542254663074844118856038075774772341045455545541448661239895133755388571527917979708293392971068420575124206916596166867327756503925859320410305452997991226428113367515402194818636427838397037007990810629594106969392539282809389217644365044285458040659124971010717174004461993604148489531647146019174510796226083717338394448935510038471549045782288420607521790561663917950687070802554351006309096560800253403105673755678053311365672250133998959068386915392636006913211454052653697032093803494970825702967558252189139857615827086305145591741195199510131277704884521343203728725312368264772975888897348054282213806691693470337023780628369343014550171084575773150249643118382071240462818323539076328656766580481788711470167687724325355771231209225739778759561096566550321252450305448600680913353387255279245629672302771164837903231383980913697919570898892135396489604217069245286056455023235954318708592356467458408048468749083110891226265558162255622960232559625245355619611344354644067179896757978532438860383996836984999016931963399149951355710062050459455921130026946221833441159717979162898294139377956089538859769320414433441950747572580188554661249491420819345538071112627191733480447879216186231175862054024532938648392253511586831808652295907396400824547287824712300852013312965811700272680645805176987349320803595277914002324756840184798684300624638223697292409461487088708080180188018529885563542668201407572771363142320173884245241639320905361537645602835356667111118985915464158451871092438966593980689714765208636998625623127554654622793833850018901693874339559696893053806302990383806676905281287686358031359749927124975849629564817043633913009494597462090343436153351459694797815179710668588732604591764900980763710488933394447179659105427508620847638095005268467198792662993690413054629995353196163909987740277618000691489073566321364585503816326793034312623400653681721322009712188549322991316719706062489685886045301293273826997438885091211921993979753161276163377383650708842663488547544674152788256969819691123459849258022710884441522118750242712063200413045052803717119441090981791450587661291299426410202029125738312580168245640016390828155580031628594684457567301058839112404156199734655766371137415678857492004162894643296895193701504631333832270064469910095801654867611097534875469939363798430298597661943709414558533567738092913302004258719916534657682950188175157844875805590968804079288975695299335710591442345394557064372818059068552967614607353702865023387939626045151624986487295304031801224560055698581131042813901699607502123927773844463924083741419522266241399823440929910200298580154044135093866834608322576774499915815494463867903852099694129439916774740083172931226778801918410495746020109001303836774119258478759107709759771095417662125083969065570056552515348243238707346381942965044221931939168487602407745673386957125080311698274078800668030299796459991906133403737908458844276974741941181406422090094970427812232194730483336758084350746640046608840241289983680710889575325462414873101013174176351553071366621264566021855392272857359909410787235424390539237793659198252679258784459163169488650363394948696644359270703016147026023346904820447808310909535194725058307521666468279371104617154630309188159221492722229966151762649104792590515830595648335791925064800868845576279509727632825754645827860438892575750872536823642909128443327327779745326204519732291919860718746178234772141578038064881563417760537147892868936485617036139385039914953597009623530121565507849382620652837977590566645729156105603525140356948484870103099537499520841259969651129661386941188036554703155252705833175957027512101906936957640165353536517923964899037533471086498659608755075521446933219644570456258405216899462752477722049334180447935577881086345559461838661304751391962741879311829940794424841620602264984981810932077032087090706343805655012235261890546763917115090436012215643161816113368194068245592140574167246743577047658738017893138570617756951593877070867207746446751147089472905618161267084171952605486255201853704035569029383298467931583246020007625184703047879238055948167749673782268071557892649004931622033895827673732167514396016115277180892192713887714345403384226049404902625035043350341016790787893548900718391004477329338526579508117883114447042464773418296545527745742464995283053180799641396049317794708089306016929812004058794923526616197840096317307069659385114744615235729688278370559306758226425792994123870595206013356861513770644897854177583005499444062003884162211650882880298887531200238781503059113387577954096166096478497373020680960684648349042151277351268526300658760299277505602253021367653266407432425071360259503759387409084437476246570787813146027262363031070572645732641779769415282220100075735322875344735122779682409911248969427218367973260398441192008991721177978118464919236294181310983732393934396716370143730552090620651693023059489710783554771937259705314572807828112006384153589236763724518353991010373043476330071404716169204508165153481619320477737618254066618071332882054406761277951380141209844839386322091703767567369158997094676349468362811089633714701488275060649748633774048525260980246599527588384551215837926790931337764229248880799913570166047681415875694124715160514334871753060858521172814032981683133050671325320522151158573413146765628608418955211433554330628941465115753332530675345750053616417052350630352079807972239997665315440235743362871712305256113262433734229142794265968094776429181339239771679443456237815844032053287654930759646550830134254305631627654722089476089503217645574466238598249236033445285432814781057807620487878900085362968637669872948034543689216486778020178896651212618899937851875346534128454520059782131566980177712032307739094489633600173891077773321333997955319301595597545851645351497478676583592759752288118853736594003960803022001989527723521227139293043680150572482673005318030211124919000369946009339979833914170900123777333026445244555497209888488219417474049180733403117184338157268205717312436957289088386761463248153831441856866698082708621513803154580777804613917493574143281580855914816873882491167370998200860607742418314894770228763254231109985701719053979314972509112994606801762614934849969162527611825782374057905422683822878069522916550981198601507765926564580338515551445807634500118238291077227489519230888240807260271073925437934598224356065872877663919167941618823132142867617436712020183077496387238269903717780360818000071842506821668026998647392942082318163398274461303063166662460097527569049893497695044892644947434907606297097817008289234379752506292826280488399841309045487243243433421480498308700068815332384352394645601598029201196868907978426673267815058953297718185403005284511965342906981662846330296538660700719761080130253584210176072300358553398521490924435710561131361519951742996393340673113277491826362431497178077032268410865926226744573531206844434272599304169050044422521918813394211385722251336505464142649450008769599311953467315779342153622498555931008988662554376614068776609223247145722454836347876520550811400324283151049742784770715225412445243523660650159657147616559693737616156360232344788292494626428068160381198395070733013686074863011056371301073593930565028199778114930840292917370231834160723726660359372599905382454619409312016644994665049017553520279503903815131889593913984685795242903178449853982732026676074023236657247630046543925548545979985600431574189481597513682741286938735471268164360841057601506418841948539911907341313957792764847239303108930898174360444240629237366445361102932121941086517914242791455292708555245232494762285607902267889354796275549249936604263271107770928398007866850890371568287530705960915593998234490020783099895844195357435045883658845516556143037608742912474602523980972798739557524949807381329899571487468027963932724243238314910829198518483934621125179252539526684376878193731080955586166234845342324778470921790245273970788546012443074835287516896392093580938065658272552437570317477379200780229351418631088797268398708315508995325344656795796419009850820342488495723270653347204177920400805638544958724397425610244304265556201412833855952241905992047374097783705638638423021863176379463656162621117161267502280664893993852393569075903260010480397612195996816635015975849917880988772338751920906896772317579147853579498367769640533505825141224915354029312901893176506980378117320519863160588686137064328935140818351324847521602820609939599280737636475753871173335339831808642840530421148698712533519832365130602456438415580383706678977034547945438774508566918348596397936462898458985371894064249765837251558694316559596890125152061722184321450177037324008585447973414100369100181461771674703899013275478013226883693806576905433349236928323149006080870522849096845272866493286535691974428040846259929026845571942003774191139775704030093662259588076399801462307847096479725565236116647964634470330545849876772199497394124084771727637406341600450293474823293195785498595991360966144208112903413611874738490515307361733075666994282195584167002934980418898739693743947949121658061760755293559605360903100474671040707147387946963236934154838893130563806519464329071450178947779941270749939159708965787860969247880171400417442294513914651914547633742584492627903408362948867868996992436372066965470916583700685015021880874613828108263348054643167245041543779755978528520670132608072551919003171173696436617271320215139829942808088008324173771826879840787864133057632372706653473143531481571768490974738934813842951204701272511386300379860533397338905806714682249973355715455375976407353367775088521996536003411587882280422458166061989021855956339187374997574622281178871136938339068553441806469202276621368034662772817683184747785311593954538428391165723825909736792400585770673397545800487761708136071162664072104213253407009382502930056470612227295159658837603502169196389669341942955284329684204949819352243167161717719323743231234311432130724230757885615530141928938255147698351821650260786684943119211521886519039505728406529661277419467902529820268463737423518433521036507769982009169580057367100982669572070626690097852773869183683572961990223123018586907004619684568573789039386627619094946592589988634592240499752986253879626914208653813047884900854209221297568882250770763438471514920848917637918187975343393632600386246191775555417997735974084763134298483632538447062699505563129978584982140883135662400820996480758977682688000428488011424069608289805569983897030824912792554541166897908295536292357074659022051752069945777568275051526916102455512365938934109916925978574789913488347439668549681758867211791365292719111519044369727844519923184330507268254051042777050535077130109407741913061071236568738037393766872321550702950406965493056863368944166116145496531761514390277364881472191582734332454417224384488647454054998778490250692915579209238448951543422527436432664409750638329273649688187495976254252562674806418459830369124112601887192326186226999569347257201820252290093517482889836402789482843020352866014139840309473604083404051704914313519354661452673745715523919381802977374850084833566470754540807274413467479054990750855484983764931064052969982988839256862833307582439255668089078908759258132965128584034202927382696899085794002203929497267021161555228901264662681081931114551212161493751666306461921708785947327818364698941326288393578336992740216260122325185197055706741927158889938443371108286784677299301559232545863690493547957301589363655911930167876750791188083257496485038452028601746209630103117809036905071294757460796159125512867361933583435389804204804311206786413942517921036604314114187370781690635438588026363895245851102517458847268837801969746863484219143169464345263204124021477876105680101209450228032541087790734192621843019219476382976194837025605347745150307487911382648807405219257999786680267391105410045058423741019379221589153559278344708648259223426554248654557756191873870182125103498223876193571762671119396432694034916306173598220952589255383212031831531586057319320208712137470090314339895334458778801595928858669948761185066899110971827952264434242045677910755702340871480036897628988315850105153888019475252029866399413938229328471353300920217505908212388472154018871480099950136459788858419204954858987366522875392485676763287397354538090849274997625970574315289719673080073766650454915689031720671850581211270624081710795321557031361350240441073924716695506946464744119931639717531923393364531691785084440837113971631075720721045055056031661324777247218297044819320577479165917210041903963583398640826444152853051678740124969247600436679684800066959049810391961031508280791759393826761380132277709469799518778816407250879886559007184737911279111368156868798468653922497052696470764835489256844039334913982461126946394670870938887258354031665684653189220538950839137197763964535438531911891577960060308763051598485395843567881846376301844782622565195217025129333736561318753000675904163604620158157248065981236799802855929496738515933940269635957880351647659146096834711061739206709828774799938376695521915218524857203230833910044144348361253881594665603062384506568781037096534387631072922909773853509758402454819864414360189713289617539662874409612269755936474857193089190370086418502050383149683817436197440363177046479586851820835432379589697511189513285041921424689219160149009257751197216263124138569600743585231898356906550258853845967383736326920651286786266762479320492653496723529779550779921726394452535905206265711578656557358990750025052843624448722695497595985842707695445981054172935340338871363576690271851890522629601453781700896458888724872557377228617137238989935389582713944397864854167546605753288493799893043662705520143060022277750558482873201869526383293383870443591999319757758726508015337109956258926170361793083756915107044875513467569107552392628250471053374641003656761499971834647705292558110163472858739948855209937462004849040137419376985676574251097800158401798538754465801647239443585931003409472263947483506966732530350834615349013642309028663666911565131872443397815419236954297407469512150090116519958296705720361105933284010386819872782095113112843815326876412787203652512506729389914520263950063482760317095651679723173449133613961246606817720147730397295677814342725597450778466591699663637971686120740258873219238756505833258904819710483796812982053723580100414003988356519536371217108775319273634610708562437697901767918518318814088828966414008481093146218643824470866197629519717378818501993405591510686896697894954146245088593610447354234630599416074488454068621899321437892948184025297892657623504974286771509290799347153601597625473777490088702285190814872343067260306958340859566960742605920147165099824208858857078776994953635969974598063720630104776558772727466786684250600920023717215392898093906246117830199647020772797111702677412374183832586294483532691971732324312406768236817804327267911690255804323881598509996376225786826651407864634152013226966879727541344997693624643360134109684230888100980322753571265057118047725451036386455755518261504315913279335573294332954266630045709281397213411882135682971931077227412154401634257011793870610277504454352840518836992140604425402306655634202637650589585420170441444259414051369977125918358430728202002231462203212253728531820069470914687909358147011359907134892393481713147726473053854459730929523461885163400121204556783363981611949122738140213728723094084661193112634022434444187369591640174416573610327616029412353928369608444435250736957542585732891076058350145122879427879562114644941334130944968683015400896874916559942713131700333328028870297115016329926790673532507311272668683855870655196074825707365072781900403766139930658560747471990244904643598168024096663514076979604735492109956876237791622334302804339272389359898067107809521859375298037752519851432365657211317495012672581375872498276038539077699265197967524538580639416559478211312006612045801298447605204566605542584557087598878432200638722281386591519473666866216448778956683512624112914302302491417206834161778731517067904784162352929420189309940385461062997000563847902204496410278459873046068244797988444136179831419906825022774317066929345529801507482328275843447268028480413408219649459794418428945075032415975727865175156628223113226250664804299594661625562243754079048299161407572540579394973256941131033584056155631740270605970965155102914723343492305685542630031088415806010365860265125862068870528641355316680414019614591789580114459356584458106588767337274331836409608442609871726703814934378292639861724598222096063223429084419466354198393892841335703020574377384418658076195688909536660395451489785596902566375422031144735446415216096474027634171815412048901298275817582756524586500987135434164324063139734839502033297431878891407082554754590130661957432707764562578906149707447126389946388648484396560685612223748329525217836095764275963113236896423542719953636766774046945423397052090734898314770655134934826204625829394448890963769361369819426019375839865200938976054180984189628302955254615771923459616560949651340308800519972443401328799083999066498064215944758876330184054060870849369183573068809056429082683998152968860905896485078849464334035239272028313054595028644018643785878483387523327037809287076895726494941800288943260949195972184053659172445773412179034727998489509451673212649095412108966819901567577317199005879410551949027444292509706737047043564013739889706918592587637242562132607759455599746709210634781335240507182725709788964297523409370687891056380735128651938019674340331790539905388194172370245806955660387437531309703641288098627862194699768981835070442663729999119837359488529538115650040333321272239471007544694145070049835348855847091556353483084464691070093282239589676422729778397672431632710009085318493434318837778733878161099721322697475433494577638982809222818244942427327043768721467539288035679566160970914926401853633980316493765268603503795173629247565772167026975832711371901595611476508863515343145612831556680025866521876110240154349831703303445987232220552682254638313983350033199019287481799963145737529978492313083104742982456807500037779385417808713142372570841670471162558698319462938171508755403080044070999216578349645715701414607178641209263445770277498549247761067241886680911548989647595367958735967552945544547788294754536430428858576403956985986165538468154676758967148974234318167266807606707137606270284504856557526181916907563290082074975188334359553079390390914263407909057102828693965612770684404349482145062963400965290692457946430800710238910288262954064056083205667836058381593922269640919284270475791657933262074457778176330421541075286237285972118732927616178379974241482223746911313610050148499430998299263120730652795732159218024310617742500080656898541728747810134162128687872234468037502385081557978740488214494238671742780788529417108397636745874802929397988386621511710234842372151733671703523277186751247988438774637369644624447758159817197367892695358656330580951001858689023379493820482957988553148688185700057754174582309660552452986151321011030058368371038064305181226452255071819651595127476082008479958523784219478611402739778480913078901243863544941785030624090909928909919642439537196140327121762597310975315177100965887509688557688926150129375665777406802893270680198220923878225467505429259668139859127985699272928075954228616016731594224230274792148369983887029361326406973482672809822215837884679667392971066172486643321327461322497724798509142401539188967952614947815528590566404162682752152021455564490842855821672404060371115096293266287208931656952007864679648932919655183800548735330530331873731898809910170030749048789227419604929434744419773713959492058165044208835953241107087261421049745213775191852294118808798335203906167987027653307762727380709810036042465150883407385521794106667881444903299908060631111669870395175147307984257589935965637644239449707984742350109597169654981750795205307036709948479428818668457554845543961691207732835566371773134136622567513166697522130087641471200722901958990607157089181078064229511169523726489031109406808168347733235276068904385828555137861097986260954565715358001809140729892658882577601131487837661914783658808212484240543442235449376533638273274482473745791033283709841520136967399116337904043705123790150187325403442416246395644368921648707846381700798402501769282875552655801615899801775046761520822363314892677204663689556311237256279307677262140214444127652955414285253531845435201632406169167896713427934977506978357746900453455600618484134636447744851709242729482012897028442017004963605773905255030315979113603926646145867753421634341432987244140756499743233152965337035396436826848728542497001269600078499995381333545705172478129010258457257731640834026337648362638140923381068337148003899669794049168756356892687449024690928915024821456619381374683479389709477819402355521943131185609718839054639087011950129335716097775278409165671337661922227263611330635220051740403680799979048768926991617829599725679280002495516067396859409743785543638434275821234919738972936851612694502387625476052776270314090066965404012332325139428868706465353783917766609920315341158205506209973741293007101825844331877394680675657343536467152247990616403306150588070946096058608935383215538098005565255880367058815864094537548118714470371334548030040329661873017263050659583052604238339267924135624758511535124165715118668764349303475657679784718869892218105476857545245904504750208614864157920683380090627625235285205450298949162976752444802852126771708898252777481120669712915768209838445139761709573102671362394762998997027353021639634059680289933811540418159656623226323167995390887829764987861093176852608902268346059673854265592126889795270371279414067051629861749996227868617751829189132370643245740446490196242099234697722752333417031445702182036365387401105582479532752886788578085145657753871864430744096122396232626941766787029171271577221367988042998545875958847038596873120171297188715688942825330500528989655438574244443351562255520627403886254471000653857792363018975579588680890739380210195125915317812150105384587917246885270239902513313187199869976921885146035842295865089687178682408752747388097867252502598154933376930976748988684390938235172116385624868559389351968606058532883003332974371746258269169624562659274106827372332486931616376767311401341838944472547136943900860489297947524647617408491773549051004773482281081876305859553304942059935480606916982190718355902514927641426487527996319018364001545393007531174977366072399817376253728741651527804186682504539702714414787298830824415923919225922303199552572445297017482733750055317016766257574591911930301643152208320486214517552259781145390333932492752147589795764334489583333789745302419390662524034967012767065756947490763657771197028442770811550357101048254537202143856923579004975885289014388846665561034552173790510963244220712250325159223503808900399397636543283717031437306220396421716064607663653448749931611134804177319678123359904378842895565942030499801169407806326739176845210465198917952562257933129918836496764042360445709373805113000353036504522572753023806121478608599647083090066833116652955884919245603370324970602942349636814648982124849978632180832071946267846346733364512171168302715822320235604540415406323763486777960029528762602151777883895137921631091454684685236196939877538179672373167939466648800154823304942719740661404550051856947169101487186931304785341120611397983919247174579652690142921336257426016966304196720070402566287349433950741097447343333029639925306091795803966675509342649277516219059638093549537197565045036688751822987397989510027493914550198598621865586115689091934248889481322833313145888139106949229663019049028110685228055049725495887123093234473692837882276177723989868923766655545973919314009184559509725046217826271795769119974760830789722026419343519243999558549371939638312762228189533402807390013244260012562079088692560363826680950370060907458763182325224076641002225113935908878209205736095193081039502881810170349413453878031106437075020360514607368065784442144051218249921171724063183116795624030543280293505060001382609983440455530239122553488869384613360591974455011262488123333526560309615322812979460059511178438274888916818839572136006078466388704969588222806311660698682709197841058173237332484035063344163520061133808080956030718920911965180778778572843180831956316811101254228924104057480693924005237457344925729247119284150433101320335715978753752189579389516473519842372758510867248725923345903609845156362774394697253144710454018285953947439250644788115190030247428520789715422500051999882675423599851128724856525500477070390799190429730376224997345734507556670414676358245989484944681875545828736008401988453071718580658911344197864781779552889060737827770121036409670751494398571962947718866610057702364866123191755889004076979501239142582366968269546125930582848163704231037910991309692801931112331948040783694346430557482102652881558930054244483567765793811842612289715316614891646302965054545205397692393812148737464150411682625283225597853326833790346789980561984222963738727437923197310830937576786499860794890651166327663453308714489317588921294201704022629811720661317192792457406149761716545829565557962525870675104684699945861335552724501424788406107042989320011648579445652779904834659937164179298639765214450432747111012623490139339911589520435795883092037467839850750744966023709778636241257229705085409781356605239189497129708718182795716466258984646612660934173379262373270890051681951117250002908667693644545297646188636992348022267837127412287939826891337186599664152645861427074253408917840112669478882374965321487676504670911688890371928103686280809174338359167039974332640753155559274215722410336107325264875662178173388384466886487445818619712035968118706447705849818249904746529232491556770984326667598064706761440733301938729248378624796532470696182916914489799019723112002137447741281177560929338441067448859495718500048564770385736179821286837744418293194849456085121957786313391027742171096397272112255427870051517996081178043080304856935838747367630737831443884101395179686463507323143542623111679521028707504169576004009709490919019188652918429920172008677434311275293790157034743733108877025762039794566611287226775061908015566245502086732014799546166935141620939046381912677866946487047997471335942047929488430283578535710704586295730812173975219633169828562948427415486596199193872425051953767542812142275492586030519601532549173139783813053850181864387732943778053518312105110680456677899260459716990878330266009315971450999755225816362069166233670316229419363456492594492156794544682667178625440389529571667271628748733454784010599438266730333541833407010581287170835967806673523705136081577653379316321681862159550271705596495309354855006271983909152714701519681063110222164893406899739064392980483693381465039271879822895929366091248648347829560420169839429114985620105359952328999259204084112270276823706733057607792971242835117495828584556873833900284216545807762176798539788220498771079840673837905410621077078877529778480696441399182121445234875952599592369745556336243392589854096169712254541978915346401150613509493697654441772718726116012187042626924690337420594987307738315084008394390495181999257687933649422021365651072723628629571505661119878723183014409677721237065911113292477195981877585444353170062252313106787588829112652613610603951307902816539159450167246377843337769855110770201710156827264207331488587424203873752627692256298038127754133804756624238390598797652925060040103001470449146272148029740818072280681509958802777193380121359154536333162639789786282281300652584220324769079192495341840489032049678707403487266288135212866676831295247652530114940387953383723779427057366633836795272683606835383114418815484572914434971376664758547751218398896973526455639689238715048078877083580523980554937732352591367677109175941167872773570891739749820717938471495267697192598995006939856349903671917793818990020311108469490544677420291440888780557566600607111289375987857010420543858846756928237417439378745898092834283881725651708418820794872560444980446402039076338832195505405706584136612625633247076308913025711567816285814866412443713655595952523753201743797629832057116786392123744472518025257693179659654109241648526966370375198373972062812114848531982984285709838558102195217136629613173875697921280745865918590123393941203883698075935429899932202727420498973694478322178094689200841165713433808520014851732690360903186294199976624789677918860106113765573091629948939449067374911792908807693681578609179877310298810495904344532722249079092048411878883295958533018838649172532609360764837338218256660213858665727627173459896138193948363554078743491850457262340025934817317102936343864199299704583493594193128308235970750389961179978116140822503959649391109572561252763703833932378622916180164224038554151730523387364922196806301119873655595940236474494081702476444492783675787714129970899524290848177664802841853172273606335549371291141882870922648413053415289185827781157988088692432038582476287941227518915658974629693784685810052291281206844916439156383381023853278297473449705152040440878617319778937216467246502351810265700936932864620545734536607952758612192668090738350065045171972193339839490550625772617061279393741234213472860349629126084329913792285130055877673416757917651358960648707063421003863063825959396212397156787709747476500452352381759888417752780895942969557258573169162807405742355998741154885081068813335978297671885341267698007872651147134476210355670707279113409940675962206866361931301955239091695161924342975138110014692243976597482631164813596394066348870815782119438601017425746429752231423795737468336283687866033471128603490482451198163090883536196677145797846035423782758497971734963219525409819915703363383832352964696322672137561496405967205967805608359199968755514152436710521968004787388409712309586828231133916297794365492756218183154754430237165885669748049650189470960492469263245331827354240787831722328826027552038509605454635972945174888600148868153874170792546382055086983265706999210084072649435296575339217098715834791990035197047556227198616590884626520487938201736191771478523723669013182332386821352904592330709152373373946174572182479971127542836759203819493285967338068981260339749390417064216207541872155271139238957370018542683877335680828589559165135390406272749960077489546103879508897792242979899825134941698490576826985031293637254865685712179540934433394291291892003620318773336610860556761903176844620929114095360800559939006557497059887306525159893283776249739547886129020874021609383085479749201428010409107628924655274724182459202973222143599754993970944353543630684039543577276140743737788624625429545268622873598606858598401261099009081797398102541242704935667996892383421347683915785931820162980443645307514777152076664729689447631913806224972418752733554412130014930372671455611196377656045090055859960359856202567078781903782572379738718242899428397285527945374523137272576928083934148506376100417256705015228084531631121709442916365275170062153449074228987490341192194649354237058889478957005330883676348737821621979260962560287665632344999091690820816101010638901143574676216460703980194405788476071561748158297907974814216222539851344671662684032302351109245155179360018854744304913774183302775553817502536673552993464907353230160980962295021315620477901834661138485099586488504808900366752982621342369071666466265665258163254078504658780224696537882122579620632322975729928832886718919651476113637868799528213952907652557714534618077587245337604167427598998463258641550475032100641710389396870827792491529776902816992394189929673474843870665517301484609882065666249823056902412887850968472424168986553751053865522862357896744220802004289686563447950381002638321756640386419214108094533825965747123942739549431048345257992082154073294359962808367100752639215076214477628508112213440446491104465271331116838345915381202288874571840415303953725618871923162454336443458329274282487170541308922053265734615765971536878044607635152313203826274156249988673197249422592945750464564546135227941678758805770090833085164488984420965619567210653206927027424097422665415708038461225068819297735353887845150834412623449310077571366168059312620791853527903957099082590254454203524300041335679981044418309621297995285778477424179902229659554722353910921726776568713923605789832137082683246142934546811072946742791298441543344479586040678680602672604436548590073299073903519656974777489135973141506881634614735541449438134090723660286399509780313922086945912825069607145864348712227469309381568715984528007973829057320729164907294254396116441510044142601131846566730808619017861729551155733589950595177740479088318319357335874932562560938542947032226049624362205215674376044910039776391496070690746253460898381430669313626171526781749265498918698544395602097413052430036835129142156176826609103348264892698364170327676038423119989577783807911332503105402174615514408224469847680642893390452349602287492335668774364387184345331187659975547806128081511289003706634892030365301542940601852607439095257370091369589773681950569746788630547423363226083684000666041998609882804853088756891091640097744959750152592112760146422865695574932595698922894186998140205297752454043292685046812209280801082237353621027873410202649171040692956772051145760229167854249808756631185575927787129778800348004784151123800443640414149834528652606703879528840013566851042217249507099591557246865332152909348720135398668162425139905108964174153461053305162475486192118221174635867859989626139485407472066863687615241301190689236437683198326947593950464457125223885447067337160151715475708339720140825199632990463240452416614300854218904957158780372134359306494789912100421486712187928191093819227342487495029214940769034839843372874631538614922476168732699144030395530603400715718048534815621887438216119085602202846832506331893412529967810445260724469485231554179294338176064457454592855986337448946029904127849938070039177420724218527526965428737819350663402502446032433299665082778882880996177225753534241210451021446886718917904701296557931017254501184085473243735314913288336490143384068380256394061591666498383399514292899354962404686054255751171093902747905628363180197805938713983157036683470759116395896749463269397030821399502992957808763961885594091154110247566752336308752999803691152801813378280209376738110440700202852148910986844434324636378320926556693873212471883549137990940894756087500128706892847894696400085963733755724328530949644890956520544070023441830933063240517613663824058548853660720538628488693686548046336336112052408131727543181051875334471593616309061895606823373122555419778722363052198805609195663193158337551428092083097222002595857668024912047521374365560541863123549391048240333925352063041209457667483567398193962505503705128365421910490719002058515156074095397629603213913274829195346115116979557206122657619134001269669586206526500245122593221093074813530885088107414579670339159300717909189014730126978831813708531211996696192799695659473628026039784641129259952284312447043435730855124067787049286741368161689355873083823426634011089334015513476492023460945501397188113385465422972457929840188366503784147867772987871358765022718364905091292161601024261663739163230978569553260346147664894940961732130807426088744480906505344771749087474941782299308366448968244776889127886874497626997836534398418037634199961629942665119553224181954682095165846334208394749894600273752631997131544835006715648800067229483510166069771133478454369902764339798486195679755606002932362470134586683799529025150791602485917231039525269214353833316929191086886496685799268359124841634911372320493334821923934264030184489360129016451490533266713766027383026731552383632938791868113976718700392262581696087844436027597761177446179977617412420067356186266778296405564645489252089108833497345141310460453956194215647256827934231168897520169097655208861308710416913136379194707573336995634875446249138504490103682397278629721420714160245880400099515133146140115722309229870715696552588479710882793481141063140796490843386452137417181748376254729663806668970694713401988995046944768448560258634487211119634606787660403494168528686653980974065999806917229260448228437412539833148892898827398445851771168437546587271013332569147267265556377242973428902769794224128284232008010774229571995968666026317056970478431329168671351859157424550336210238535662001228598497616549660551916691650485024904649423425806719033295430119660624451420877578785981474291726678966440543190422124103788438948939581296469176738491766493759888415141585208968609063676700522213459351630695789040011858652969309144472364130588974297116489943309863934702012227757873516667662159103901656876546857736104194929716375038959324978268594883514734971343789723524271163919268413916472865700520464017614831637343063378600119392266851281198902967338024101641684783469220371189883336280337824985734482411513219113792597581709501427101122172070048673337316882557767026337638733048609986874208838030679823974689687976935062471909527449998715601076822468255065987754766026990112637189351370541871564488779981554448268481571231499434230812502445918512759366353143506007389059023048179001680850192401371584389652924798850995575671667533557467279620675798163402287563529754745701272361352868940946286333562039269687687930222548277729478567472867260417538079010672524771307145656060081159662898044033421391545902689712067765187756237727929170176091401654026709044497077573987862228290032180466369473606557483975928832372584674024637989504374700033307457177937466005752822181853787893220275810004431834855195602291794713402340720209355773688481235197112601348727674300656338571642251296998667856695510353325477748214564447220688672672542205764596166801600827278436647677601648843128424535581088201219415187929766167071337874507724651848420247518166483419570483077092768144711156985176013473691508218666439236259310826776327433924744272065637864911488071399449406991622596036818433886128415782296100963880964333599559542989431141129515165592768093383654568570262780397916805513350302993331964556729855185125311643831280579472429851022454413924963936351848085025117697094995801220318069903288479714477703535072296181979947989985754652558560460691307913464273656850369680893128404434169408450323274661607327781070351529343810959572078002161552329599601162015735325943948389972755367101629878240553710544512778725229312402822809201087447558421763640526011247702418186193295954871644577896569143636159563865106150139681382939687105256945636273088911649007355257610105984020097493409733732305024090837571746348527463168864671912848730932627436572399176596316314998312732664818244339471447329315459355619593339680313286888574620812473594862359668068034238449264183467850254212983703628783097144840834085215549108175611913667102556811917507782218287242217745686619876410469908673660477783306887498848914244977293292675577559976806744004018266612374772226972602143798539729323654751625036547096072632149959485204304012705283270727744583578510861655539474789503257584539223179329738523975310030600796991736828754884404992075806654524022570958998456878568138790586919737473189294366197608281179671865078390584001945464396345684053279967313409271956352447703619623732905749945188817550805837344630305628677010406951039105190163538359983656525950433187064835621122291142778301115089730280761899617638148287310355878534456821443231567104177557294484806941924971935575760944297311357564753411280108034010450050396795533687622291645459198712244453797885983749376863725546927677085676026957754703041676356658478261509643582793159230062518106732385274245932928749381136717394583353074331030304135099258345270197244878044950567693194557704439043539007978360471213707046930724493811202412024748013764044329970584869687233270949896820550096928123450123371995715727920083162143966014443555026929869147392358636165001437679764259459849744328135469894641545563697822545520613766596667630023723786588647446168106392078968316285349678127367341567559656916593365093689180180399034390895282771483736225806688536149824363852574289765188577456744416245767833235101286557442209687472086793831851106054201036320781555683907243617974050454064957491319999727900775453088242948829959177473740508462785086453996819531522281030839628614683905244565787613150778537722706748535916117425245352382806056978518359410299806786896919488937312851329895981319372417439148665515717894238590508524386916694892694151435589847677320327696513859765188653330103265800502408396793094923859469799950506588100232366675972248706506270839108769794723157645441411450166587855383334458008220576523357899597018808047742087925072135370021288711154367660279715095986914813145199243413472975456629945147065876942170908819139757726128348954380946107843291120065867203913359910519431458807753595899971493663091617688680376075630575526058607681318366830624464633836474323392975478704756066067215457782191169651324191885273116502476508465105386302409333500344943812727056261110168253787361316937124888870280921476926921137990142414296137651596180481658992333812590423595397089099074816810163696264318486364342670768801973483889361701911985296087704620599946581287140566433995656036937355269868451977278908064623256750302246957979049257150977723763297375656984692543191218405263512945778404234298360360246207460354698496743415318428911521714781780201395913532545977624465340937371985442859758358915952569019921665299991303947785478769126433174393234753894851738182364930261031930039422554346739671971676749218068904324658797890307501749345685257008785227001076154420191468211165799461196879171731522573389588913564075952560501141070540258748510105702782258658494523013376567890503810537593896961951952957357159189158743835370558211415441014260237585416887973040700097284508153580425652526221647323856775586261051474887858542832635552424960339678244073630960863985357642876935761026196844234717813653450962914513543829515155821187867160432575540499258817250984759761890439211654067195147912087836368832230380081345939037897257307278091917005744670160662561530093147653100713775161011701418266549330680601575341867977904521033597836788460745194223264663955684757509065786146489641240087085410120571856911693442872974828152422389676930290558148706801949944403698458212999167073392953078835965224181032520072636313332102168106388550445234065788956984279843844026965903524093594563195888374139200139916920350347100939413362045126182255873989390301641881513681571773469655437312375886226832153139093486437515857586079092263884063426535018912909223412055586877671547996318921760073632379284777926625192631179654731087771798332911033627623783631197356854750822211435393873819225165133552456548622039150404170322202602437737160883418737429346178683324752498984717767627234219557105577909619603841440844570852402424290530383896120533399874901731682863911098887087346519302780630322634487375689993931889926327252466131220597793053468308398765528438541221260981822267521656451819252871012427552735492348589341470416291961257797845823596593472917929404549685407980558855970628388298364071173346981612366608501989419336778792122950660782446144278752272745645883147385694966070966214454005210839641150271953796903344790929076174066467626636518871551869254572693568869038479980486154230516123417817931602295815330047269702979003300501172289954161673752764377813025075172875076353149763741934386864258163512511052226878082587780401576166718649948573838175521031866310386868693999058764574216735640046797814912021329401850410700611960306069582461518047417154204524336811437791048447548248161199539928324585845002669887849827267805790932798009073488200191239131069670702628540789899416708066010495364811471113590113828180424320098091082922224069486473911985381433959430467216721919671613268913924119841681010596426729830803966859266607007957482428347999454441440079120315582722350068507932644654850923709642047508326401363342471718190352920942752526480086699355568095814869255061815963380584364839260606288587152394708091033939798543193665088701670236715596336796298205939991189349695354455658097808105056231994043616573952150468159767314314834226154151866472806324195989853196648839054820462281061341939463217820399364654946186058425568863772655383841831798845207899833121608434369878818386893133303674385406423083426423572706341970579417154625235130950353083016317833186386439233678743577756971532453382726418920708442176795985184828823600260032048062357633847662172215098601865557729330926924025170077641452547892598980966881179628141945843889217394977530246776823504463466484068191300910230200829653130099901233616225074753394746083712006835705494528928069395338664366362141505966501262309187811528129672692408382626350305938118051013945261476765070881870003673740512987865412865629803828000643583757356875214595278293633876641335123998099543000750452624508872709962902628805420123980524207606792954725133469093170947889196480078419154965808781595606916367790649438527817599361119495608748900460214366250279796324269267301315005698005340861124250388168177514105447796162446528827557636138710454954809663569326915364868529790179387050564718160025732834475374379994507121981882749315282715649307614154104733985694749357623885496890249255686679529913752421681019619915977879952725033492004200278537813053178765554039535314105327649393272632190990824507083502760362173692245173634882063556918815614297842616454622223366514010264433769796702931787017054905403921432861860361888356921541298984994666313285685267415409001445456695920965818134952501205904902610763403123182055381188516407624800745348408350861854841178101365434122892634782785362709974905918371179971575318006948293702318711087481297940110680889074027661171294553698378371707080374561906378726950453076728983127567150177559663074770965858195956466455592949203351441535232833773901820590809859024720036398060379923518850539626505705739827548540051600449950579886484152020445265975103777547727026492149037994770083967560956146880676444920013551439925361677698920216412010900293003938643943680600850556685863529126708787000631923527126015365507811663242182198672101105574178071405341371621646425013448115690261792722420409232898132489240583169987118369570057507446947195424318250690710567517008075168485915192708213228228568253198326317111337383436819495228494795428461180815476261799850443882473566203131188798067815198481289691750882383776391802869696715095930768691732626192870633109946133821432101583689352871178260291340502037003752928831038498528348484660248189711286897977359797150913006483489899944457814304442917012581083560004033753617371137528768775382815556072125604454607819080903840517477204121553168109539399715658383451894217857652672620455147655009991911676870357378977221755298784873636999744868184777487115681846134368312825315269282732457463370747488746235688665346656672681872865603567150282521700385233070525426127880869370783464470559208241953554750357258874725356361444668414704533999663475664254105459010874735481639027402350231234994090369003025598454979737579845103881174993447967347296607746616204372025107382975281243604553842209030940441910447233411201203922433299518764286317647656069121144847515950373649362227641076868700388250471359254116371641682010423253777174557327680763800934551806058324096534588111166450832078737290548772795581609223054212850467553107699715601624232712007612090477521362062955669464819131944757832098713192525964635587018891545382670562528051994764326230368812031038993942112402456480512565641455546202202733799034875584950823374242306929900121853023352311907754034997816638798994843509610156553223572996720150882252583395679389730641980399843815782310458573052951364541364390028982940930650303623170679486239231670626377744355037337328837939894590527241550403478414775445278679591412165115139964159843763702871299035378406997837065742009485959591159475216011806094421038767041100173359768361854761423378548930023153897706429491048957734246040204694468682495117160011937035689947048089401197556923366502795415205636524594103525806631867878299851310075644536386815005834806035075190068367544666106677705436317967416614144809837702077156165390852348185285361256112994305110642781551967490474329266774624849925595675338939945767085923222724090002671446868677831656972604819543761367208105838680812395166605725276630146052862816321509898239506724346928677419258611951356548422902136895185625422534058887297344779357388775967877784700913947489110194985643143279728921174862667510191937499455649976834357674820891899991238831055700211492702071334884401258208469705760350557552576964147749326075329959986362589037966990862747144091476018926770088086264476231183884352378077465255091834612069106352681802417939949813320896013619256782021949881643077536202376020021370506765468662925870137710571562237037879376397488405490896705105196791183520385196643465609791537709717362805164512581100839862813315160043169103517232758905616771158839133465095078236214963045262883171078982262608064738149319742776026537948002504364236169307179280960338483289636719779616712055815382707169067013743971114656821028619469024242553151727539428374203089004396260522278003823942037749078510772254629785091962316891952861689595113829081084053806420699936889696649124967684192851782127546044478590414033754613000139915129835459447831609407476058521109458172571596132728581361880690013482930822553881666027638267776651623604445743369810182295237501808826743839229104746823733438366074670860536937511537491092598371385876990403280623707389220363502428861944342326529513676747658088584509312635072461851009537564421755852296690632543807942483956564329818216875821981077519560637029297564173299779779540052400758876315336694488248969321209349589162157925226917564158108983694250590724078136721769370904432607954612825347801646582203350685870113238057459793280022790211760208551246557515348922918380797595130523641314250622339690891498905523178945603788353928964980035710430970781946651516250795231212296132500852642479096629021331083701901724454238817707273822780529400826394853363938983954297649624185823986354634076920506482549453506885584692267440766200637520406157143965143294753340447675901332959365493849398315223442257736257623221138099809231577354581005501407937230476453146892317002568781024771462329610308255100806012903363216428780730815861263174848189324501335252324907853619893300640924559884663868967754470281163281714775760580131765456967028881360446365468873234806982910991906668269813895218815422376820114552917979438161949031921549645779209366360911998530859875885935398077267147009820999305753504475094705569111731048788037149397377194665020427920929739177192463405047117004445245235937347583591392378155318438418795682434589863212500472474339439326861101915732011950053465244863812794846311059340162264607072579716441339477788910460674005341497763129540241443076214079597594934902450525946234479402645579426869287545176526851991420331976487422700954956914087393351599591307852947456432974882295980777924900525697654964538312527055165961046906477822984603819868305726978808131908711246999711592435810399993154998432012146075421422033042926658080051049075095861598071777713011272061700912091735555821184385024997438797192846801569201982117754815140068660473383691214905182624506356877284475082258720625749764136302770648478642596525169745528709417803209198251098066734244171852179754389768885416017695995236957843884402016660317808334402117999882153212753615363987116066254369962524552557453542036840543014544686900031766558283056974012058195919432785417026132528492951927648753626973004507644374119359167240136782937255348895033247074982649732043218121406238787979131298176838002585942771078525923326040941333537983052494979722817951465366634080902396509669101251390954599701231535968843701784852535232394864989522706677270666732270586891947513554706120716367704599467063110027318101422863872808667514991437510180407477357892297336799336238578068401347913120444979791505925565519926769207097401865201905404430857036032667753251743933675033840489995079439438109918714644114933324555763565475343724328700074345453194643612507123318960703628922379719195904119525373438968222035860988201110938225090768871827620693918973182273986025941887454398692710391399335699317168366393196991394218055465991530699194394779024409781103198182416436154261663139724741674013335912179765334388236571944321538419890226241350527263828626816200706218421081473459579232244482354609098931069193401556464564323899370022328856075091839603546754718527349671815069203734208409055877964104374033594735503710221211245440279188874129093952099362046872587073350977836071482334241469777783845991268381901766456418164126575006994424888421157722983578629212709503904526570690624114168767871694260395375492533215375004812881718064194848396519892066103757106721205852648263535746381107240045016775483395827604460957060046517774989838889392500131780706694402357550618930930371873230314290333730570605971575531788058093535710707749688642277195659688547624297632389873638559646001491872051325142285483919030090591430749690896874778580273049058058990420315896927280489373972171549656509045189878729918203612586062394684625059357510540742822398249322847636466843816057045562739173572248598725701134361472147050506115377914874265987401652418498853566313146376266485165110215853673977812305863204760971996297648942085565647280766834463341737168557652417741470479098472924091048767146628407437324616112056352106167033198620121134299203440641174701033666720922318582241040337363744756359029108863666452289499395421549756684245980236594477575189591799899682219404845228287675938714905863913538218838279079858935015248867325109545355374982103827452325685424900940425842332536623138916904127651734914351585278965902242510936034622044412598112162726172642289667433288454835024150623405976105663624498150122634233938055940342003254287817045141202415079014726751655681498195677640586703427283709140903360511151247783211095652405710274363351295715076653315835878679064216096516574246421380360071547195834703956740687893871598991529106399800723966539233100422347029572558644769514987167336401760678233954991704175701540019712188681371356575518765141209055196360802139271972790548849657026632319112619121038537410700182960840704272978465805959857688457317204299947637457138959933145423110608164565541867868682522048195175404507973361837469657634085047088582608551895237739102154838200644968978500559544194397364978433930284207374777899990107087738110438629657393996952561068854832971862014261877879769701029783571896992947573239683916163095927034868659183269312607265582300152641810967579606558529122774712986006297175391522595173196639257653429796486382234054898031213457137231287700484467138612783243599425146017584222335248680055911706102037890292132048891840664455032418686701014459190166502752033912077751175533622781357716560659199207020564101139878065824815407228434768163925411455304177492112286001565986317928498394538341190213054799818600817804450420754323614071837585157480097559650914848233637833086638917747279478633872761253876158939569425394965050679667518511465061167285775500458417320337297915063904623685052001307209109930868198625808845582906487719212970812297474846818231726291608245922702660204853442576184202303601085784946740731315275354437780151934139910178652288232727405250927715420946563696675924474369056259874858964652363839958273750941615918192152102950476346716385880692523935762238466641325948135205080146007352086107711091838330785244406267335136772327294216275404711104806300413066578205266063433740126542353542439398646045073400810468834569296989045483736420713527890473205280835510911936846990399815379849089041972435456421056024430627500112774073882399461966627703502335683614721223632030150609069896094306835309280059334637999665292782920853888929159680339100207173158561643260534139297874454822184891948526622144260278400902945851937626785753741916889858623616281342972857027330773341544275503165630893750608761060143307049451151106799186951247642214429912728081112333077637869590743282689391629018069428045746898497948963825135598319685531585389420900107235188926122056259634847431130955549526247402629061956447863205179064732802967865716342504268506972126913738450704758882105416947388479299674034789526349900701149301375630468735910686475164987708332463677599920272402243541840896068134788592758526960748209306631047531869554722189982388775840595724122439165064478453613339976554876708050119774993932918334747647619095878079243137746155722992896713210155116671096352252308882621883020281953460085567117203265064577531813922937479620574816428743231205939605486650413115271959869271157531118975627677875454232252756530130076587103060519613682498348855220550146680278770600951853930851119838940704733142253533264908536687948005306415036049267618345024772462770937276963673106837625531001804332934329614232024058916625134558617827505404677087945108456748007423198374543762148652147807006071235660132375665655483636806450221480188479604199365475729974189452142438126526234001120039733119580085348121814114858002030284130859435977612420943005284919858982723189104039597255086213610310876775525685954015100146808419133283432499635912918447644090168781505603224912111236135172382829746234794054320450318057219970086526441338726967641350978994644925616261715861583315746815156866074100242102742235457693290537924094899480302722694118634122489363888159352185888526745942479424819288220054992942514292808736950190798344066576560865726206896303532522783050141304516903588205311004504820901064294809574475541328448181987150994048501517338971305473703161358936090185221868107257350895314007901737294775030285519893477997287417418995203935643746662935489115002483242282515854562760678036533295716410680461633302110263849563056173714052515880315325422073375464039787153676968940258539961806091286750253994858590434129736158427655558794052620694587912302612181358532857200107115278947119845012249477646944991464061170844317244315403736600708225717579135707819213587377005377958031557917726105788580526885783692544140941627544191497063887747581240804594893509016227892076249450773369003599270718858235168389548421576643878410492051550646116062202789863210384262210140371572722023387040964222176522076371335058266769808001163496586797159432470241053322504129834584103221709726103769519158522573139796134721973634938739975275895080831518303607391999278916038052807531141035775429440002256562799644635179294121241275723589574038712053651849855402718750916877709992472222242715084386112000178526331111767724445410673103368607292526537636220467797594916569917750394487395417327386363246008176292412842717945585685108458090520468414834948148803137900982214218065050406878974344491058242256194271682447053790118365087784660068793939012890604682884970937484887256128360447942070875172238811261625308540372217375875009680773098396707194850082023491656876443955745195602191744055895045261668585510531634648710500586803848531179502566864364923750309194088814912908100933215462357259297518772897981274873780996574045265906640094479708412142579890416642800118330567888717676591490723777717425246048095641043408388883422325080777052674541544900438625570295913511982083254196130128805337808563148642131177817167606525733764176121765369347396940058566400640293101337988915228229299079191613756975396975027488102091141320310805486026370491328064324804021424467692298477788519120908570026464219033648149774971055442983630430214429478841917705451281542703804506032897105868416264092836412101427427681234985505884832231038620338032356751353928204295160268961853192131567098612043220703960615868307696330054374174134805499928854524764140774372652040008984156244086114631197459963171700260105213547537936680565025664373529998011321405195598027039062915343829622525002859458056495934851807695629443615153641632791025665113899582571068179383010831555085099210700793404273420134156478142021716832942378916355910286500955124960161659542096306465825144996512158525537524324874576129118669689422478600625266451848970761261916236443604170180938308327688887171045660291609669745315348686053026231748918648285785981397148699216744467499227339356134757545850599583731311373824425958435286026069561956986735767957496382538655175564402802771710832433987668735636629346955148328512139875128144336602064413454509226948906630244768276660195512175791316212390571938073808033838971772653488314476896687226037845701364597189532123924756374073579257025798635081616947979231870754625422287432081456323511143070992266038734298110461341232769470190923757758381694026487392485818940766011690124132794074697157086866370238998178673010273786496066831768544736609249983639345734653488082768317671835319867538817240162445979535574175030432274738606096606830123889990381784335261850663264771465558753726476391538762265004747000274136102736407256899286813426690792115148253272288224287258699177198103551378852074105505261844134853619617416991577011171401668605034090004417853298360038949100577884659986303578772824465083819000076479556773889797321811705938980195752306406341232043673789528573528272554323587952750952325675503810468918773224782151782608308962421508134310311947975289382186727809466229060869760066922992158241016304683332519365874800819291690499851183201387811813981829631043893943888982397555898348084979373533404922801670607159522333641890382472692518939567177099964099496015578161006817509289778312714213812718625106580015205206421698262318286146182667281868675890193117544110187429066984534019275353654829362438607071194021145867278178209266328519243272768603795637898656215830981871231075671341831718484267450864105287233277926058929033666256421614011767287571811282769284976661901363297655282726329463061603261604813613522391507168744333956628813965482092888519075315499523070050969689640722658146498671082039813107453929211611062544417627333478289522257264902376165634000513010364501534394359651526726364434120935456142955195208611909340981599488974641294719333814117337635950884565554668967287003766389224644719250245843142996914565085548966286793045519371092493426636410111775130191362424153835982514717123422671161210663651455697782812339281615851554887447586296360687774353288206716419163429268667872620915926977337813729537808870846005478793378462061031910581396779608165709096462843083343300625613570028224201993475068107275556948279235362990475424558057438689821513981882414756683740264655759789014819241012285878756949595028272995782654669830781272742895966993391449851413647676570588388532438840487399219454034291775880501717774267625121138215506426703051508188771732517731281951265953884551610114531384959637696263064310665187869552441062205669543002496460511025069666021880887271365488585955205548228146069529366602826241993687003796962202745151680136191707096995039143749522733098938732272242124421630211401169688894561202065432347225813479974401070713032708663245987374409184947442027225366834859948023839330247560914306158121210574976808431874680411039751989717235752065356469267144348911717951266062300178667724225906922736777449934335636316461394071919941948445900231260539549093952627402260434657511452251102962371265235794146596157309723911520760512633812373832438883882990743217109583161639169620642800869067335794379159405826354809874906818657303284285049738259002160174806295526544605701390726079554860810853218700014520167820002274239289872052045000387691044363901796287494344817949414255083665632428933988504975216700870117122059781236218376275446971503610160992008391869611202260590030080499211251488287469751936395424343520654135239604603067135901168507127152841735294495970503917735520189672505129066803172429608343143945386952483868794908784929623998866543215613826822479712045064505749130183941246688073176640195113710957123159494219461435414776812028146248283491036127088707890510006613638614195685903275572779976004487756660877745954853989467170081439233445286555499215077397887056040751113783505485089073908882751767803424848001991450754067409104670293741382883518576232355431398743158325348496674603367573211533778179670516901885275951972756275904716360699209697034611845398990388142060220857483339929196400574362261220618425917630136773726650025039620521135651778754082157600310081596012255954787743240389155387140322231852850507625174870815482708516691610021022081476742720464384925774776521536077099604546643738051340581228455701109109301524377597028162121126035666803254846827059919996732461333667521385950015484931415707710038977558446611111119699748972976303188865043555730955681816597060022879471698774516795711775962069246385238924363364650435826508806888751638624645427435926117280586921083965390293141938690716493876488009694653239257404551900983340664492908131371606467044777849802590342264401909172190921094434660038790992716185150582000457162606767056897845667741643918993058061019029065678960440493400041411070758451712082014938105497918884506935179084430508925132042530124540021673430026903822748900141787555665453132776280374008365354825438017992730783286118715067378444081256148974522577550386225341139433823766601189514875431353886035246455916240134078721012827431842504667289941965679425339486673830914463739855567145683977805938249388955554570284001413293052127466676144713228364451695767062752977452928493134251755954740541184791102637964028510071795091004362459054109584885775367630698750345836578132916373567646428433428018584546682195737122019254765328609477466330307957487007688938936390191965000781569673130007120893850735297610150717071222102830386582983625954040540973207501734046445878602244699381902263900452786522980343062420942667794180471800003190037226864797106140065960636028848829131645888529246266353793017346070326089854737023271234537087556561893190057127582127297685853778297530362033463890204289687460285450286677580192849745505371448042364942091494204320946086156691708818475273756412770774579574209602789888892372691902862491954570947412843778048969135159757067594893091986328758361878811729911038011836054066561026622353547346255555137426637851338514772478069597148965956634712833096279594100314759597168879384062358146810772382767934439261872870556993499824051312297149077255321781288771363076369510106217280516144732105933949245012785749786037246539395275053501012893891307788216832204774923348958746816179873293546957418516970397172252561170809120594749165777368647035885493298404511327090405092153028675779446694335277215026593935897827366582580829354285822988133664436253081461020884458889489488557618072854769876535837258433468836042361271282933434821247408877907717274940436815479101831588384429935052628757762893489296478596321019828090019142973957656573208374436705379097060041423011502382368773222833701313390897105943347454497741299942190315299285299173171805441753480139918311572901044189231712608611003374452750258587648293337028024229667087616852520474012266173902060084441655080273963671500630970826403917172290586426316643757757728156490864299636101222685821430865395376610802625200985352765921286493797201321020298076266146773747278404665490940551768342225595114325294078531562105730314691023067306702777295730107172800221888288260613735923827345483754618803671971002117908697547724461135777647737594348754230592743677697593215878050734701414681233762474908593856348271965497575717790431484807048960987362067291005276205217782019295348572113585567952634485827498120164960118248561557834618071298423258242621025905833488593801128002580145690964260720151288647083562830932738784869508841052702738318243296233272889291563325607613165238549649045957384605080400720996036087100885277898652497333803458211432621196011062704507730933253319696351937483518809954042537142551179180682279815344941430546305192076319308168492954922890074415130566404028462345501698171918621683020866603600353374960035928728389994748535102184318483355564316755633094600862392934759980262611727874595181307566277855344396104554531779853480434491183753919934367414382237931746834423913014208533760336844638945793723341305977584532727113194661370973280531145074537595298242899468251758681029241159021435286918265812475425177422114700388796300795959017685003261313661159559639987339357464817393457263450464079772372329675816001525289027700599397293514289066727567040714019175148797568918590462563817783456426107613943875383220844297884026235694461897697677012975316901644123867507132982782350952629374468581089832833899626121766240256933747936493066038380207668375891110864999922413587087944045122476251106394785762312013750875632397531692374006068517134882943543698603403423160511603535995019792530820730878681085737343742730033880685862239943538079309436777889903506069380503088036550893460427631849139756795782855717635722892816019495548749937329085926034009854068718886349714603061248774069766498106444628926941710999096067521553540629250533264918883724349474761370917052205723232502919466919492186232267235494061959992832603528897431291037779557639366031248527981662133466696805906004480779791177125549016552001413723832949557398003449032192987524583329243930378737343118730738738531530041515575511989334192645228200015863523687484057829458484884238071242307931799266880368790078660532045938986712631358039471489785697414826378754904527653963124115054850139034977945440248982137250080762500809440016634132832832949620828703244152565550056622196945242733324003488541741490147775238787112699134675641857828808066583920419847632454620383408517917759654180677275511439132325500591282869141838826618946455820779650470479483124008269763232077287819159594552535829756980113251126679648003026159817005718741302979433621264564204949966308414602378994592888406510286920583380146357557722910137583591724818023706623218555923861946689364978853142748224620563417991636125677467047072010667236591646098952507943159241428586139260731177345814385765054428411817259815126211506228528836102918300317166774115896662059620839929789862111710407764597161203409327616303655974357699482441860124475923843110887372167441796494962366578474424338565244606423293862928986943637120474736584553752070934856150756975051959355061897747719549586984459087093492432260482838341556816966787326245536648827774602801108298765752782426891864414552427362183102698017097959170228268515037725659828340189970606135546853533082001026864990578338608373861863362789977937676768405687761644708563148768183984948913908069272308144277054865330824506897034241396399334244262484524785955781607764352149550705368007486122010583314162173479730829298644670426971350475426094584152891938458358426916845828236297720356401461085190758837196634622175456031009622726993693677310932429228632707806183429257175843108852463415508709665535338016755687964813491588246137988195624177204298560663076218162909412988983535489347353739414787642553584465350861803975751251243060708726675111254892814807834747302220401703368552612425504773658752501015084524350768557485796230027052646131399276838860108698354401830176300821027148462665871559012985417544421762751208369113947630353991471486223918699265146213643967842088525304487865998181301059780840450373647885604981864030392335172594382123749825202532797509083788088789270890257606438598883477298853075677879723685674375994233671174356783893596954267009872939994217171923953056316921667917499086598814989054133329398071400650553971439406517999184424658342831349898630902300274279260383906844583586615700379486969900088583427092701749574155802470113996279643198003471177100919536842332318606187322726490476476136175861992802701569074501961124140201453936819553398906161583475983281948560979568353853648091112330803462274490866058873237341541339725934044034303998654720498561712666599164937644352872821621455363711174787729726340488885965267715088593506889391541088056577529949636365848781847054663096722562472659133361372343854930547519857240820720018067814942856085139293394963368835886412525140071071827514151739357532511455157139561591082892354575471374200251428622584510812747658539789770082186459224312573757710839484135053208116883875901113537077955122139738151883113424541978543740377549315781296892953332893147927892941917163810374481572541731002213274825730686758210243059766167846408598635955661960849790407739635091675883552783621564943874909493645049702195702954650845911501315755935485817089835308911318156051217876127395413735487557548058118774336838079031276874893754058316778262700750379616973250484497203253102427350717976511307301264528467545165593847459250499172877584701417675532619276252209403925396825279848504868677157129437633310750060196147061373397254221875141325849787271957587582684124709655134867132229386662121344900359938015090889473372387052075560707608393232976916777710190056146875854309626486143273815071421589563306819272687445073349711224511482235790677923401527570134088207421000026934143970065976032433877740668788325762395021359066989966049341176039836791008755955452446684051117356479988289601153238694988572570475005656783498583760123194986921102737091799860251264153141730484028451558383990754195815266677927033772431647954667365201910103948976091438976653387284817484121140439963971904457157936605885217185009057771205272820476293049165020497586789354326708336539399272770241216094134011328571447780703051649601432481721226161114808078293348650139658469726884346979034320496317515098105933069279934235514669300498631484793613334191232327664706811393111001892576131867904972296317783852702673145826212567477073870263817910703052943029994122672644266334801303443984637173653505278808563254283156526533930063511171801902347514909737103658772093525481831860431213026170075117368254066352916453816646821325263157821739382410246986204279469959589417991539406183155194623775675230109812334483953783329273397812900440009144532222870496086468192819423040552761785861740533038901444154176708867353402695793818474259327197961104693645226298124229685125102779911187474862741197116218227353621843383531361373777015104143118889725811302565751551057508412170425721299576149884293801661631078094232133510805508447059412032933854204505788052208581618475455107755506640671079183740275632240352443258852243106457684487239610413752465740226859100506442769028749468451155106722374931331693642546183511787585963059855346321381300512092474109625008275558937477592846636940272570010345954608868367298182745440335480803649008011136218064560267901980501181061459208460156207416049150862874602039724107941821375457192392853191798889564115423759256672061603081465407973660863885882684281149062161842024056751798516013808267425308492018565506631073311792801905175358193598186331552488757646796137404996192443781796235254254281831121830166757479468724949892613554702609970362755947136745581973269648118048102806671564503153173977886746008063630974587597497424418884555905813132583718646137121836807151232007064228648706736860363660043375129589637789403255803394779274843262050866047315490015310745054465974679865598553105451676878709314208035190336797415104598730943134929132005806831551176223970168160381356293663521043284840313759728056584202614822846958975263677242192893434532026173850649806146276953972102908779341620643847065529093796157811522354661951910591486496925611461267511369918523470938281727244448602676151027578711963822102415505698179112016350171302505312304509346353291678027158026346732275821124041482468822926636966978040143536670874429357968475424871171710345295820306537619217594600549966185058321226116514857747257702866332008464483189127537890821600732979535998813627705042241440916871961680156422676833859819437734889998388672636059503393192808158244004272259892225367960583883350019790546783059837522764169982032612344397522982804689508620082113648466128016149924729987342944090242975982177618536052793949227375150588770486474304569679585360067079283387543131411850365867343964522362782629805547566551196929951737223383201354226075675253509374903478894424950181685801663307833075022151059904662173974955022375970567377793628397377269505392278429309641026302377623623655492489061913739803924645040272162251418638204235452969979727633788167027614779883045774668321434786496441908007763665484370746594048119139708188856056551970102171974115565404703247494137205730310834999898399167681917160362887819502959162021887529768231856967471788798709504702779414212022746655499512789683113448015409276254224465515995277044045336965172549961084714218976150193546037302273686484133348603202986188357879274855869173563926495719422366201217728623061433214866793125958849769035803578693676327776756620616143473385965399462356387728376152337826805743818844669344476831877513050757710177105722328254723368769514390654428555520860593549262744340188412031372661030484507551023060841827131897356308327893823864510335992106060883925915696545516804303815824107198069932547941835793187882402608538099497990164713225478333498967991894404014682266062759587827697509471474579496752154786376387165167903782500870692802221196611449946074298093591545888527200631226139613026821772683172583956158593858930287854307466373106021144690152830220328038242296731561423795301909875236475069964769566318994341995111302737669844954963118091319925411405392946735993316848261970436611145144540488290040424415578434656389797894846759597555216500442547415369590722927050637756686586173392199447520558206918167679601399376815392496058829578640848398853508872891561894039116252250812951630577042689114314756730625918158877467516267401929566397326085297973478365183593225010070368378950059477718872725121076020634647112719952481078252432430329950684566956058128001102357936454031148414315085245442599691475994198981307181235762586802685003028491414938246103452174931181642540549961254474549961434598626725301979144704516007271016223269399050801306174703396955151072061823395288068410133373977557139472448158790718359637481388700340677138492062328180860080083156083168372966754826415539809061454872052849215664645152171562836410066838162337183294447958282265486117404634471105814901524370209439807998482689173962848617501223397682805767303679315784612557490594744166988750131351941423294569357808430464743871099360064322396012748763754700355102814355368548323969923513281464646556668335496175638902659514180797672665794139365099454369965918800448830708853417921230231468345358464204744514638378981709749356629399332864626484388286184204754318151270585585702366203028164940949506551725780146108383616376064875075429883416904581295933119755113944158715486313561882645741630935677768647967207633668492490250098266990262359094402285460069468922837175710805108177567910614449442105879273394273235744545687348888878732851012526762434861881373467089485653472085797817402166745212613946466664766075296962140916365232506121024848274117395911231617899779174873850263366058771590518586719597839161939549565377469137757476805078531446725097897721652204694797986836047424411092194426179195772555041743881144261692236875501039980385263474857832704236471549950904325691779814407096483851670143951673431706994589506400100132011463489865461473486043167162258282607662147577281545357767498350570196795533496705024154024997371106451610361219122508187755392360397281377584585017031439165362776948568295146193785860305825598171205213338215908504172735263160900821604666115436725474144423543588335641475961710699172499463951516891474101467073596094348108364582089648446595687750958476166665036855853169062464729144134622020349842968671994608850212602968521469202741030398504920486212516148470423816110075179058276984697495770821165572530863132838982847365474569259116271495604847652645347338659810834904357198830419998014731268316661308849113867754602860400739408688794246640478060441744313619681134830499766932695520715905485677446916316338185512618423361004415346576324860214603011859405947055511498528895956633156529203194265069893898720713701186403050402295333397014057702545581170496390691194148023075380263078342860390806226196097354309588801621925754397216178716646264287858616000539817507462167367732173321423243580983968423843073112746050820268685421929790970343312460140339490926689761966595787491617318588666510490945910731631580525188210316882915025013469533889566386734135889229233175075864531776827458511097669111857761202145452769303591895236629950729401892462726230565046984486592152145913551340525085275438348960465063190709186127302142223191335560237633525318400112446239533254305213121390941046134540339025357596395280934781295586905402796077026177707384329253986787640882733805396848563726812313935499720682127786999064322091939068381122964570946239201556203245814662033675459825926623389638576207256851442541831726039858231253818726228285403224812101663598689877580998648493748012412637408703575215150635199963960035762057064274767785339743226804771571062454100697992366997832156914556865776452959951540358193709397807758688862949361123675858385781433473854309262447555073124949291058747989551777007357060091393788859354753617823857440958927516591006769047884788362657400838716235288455792924212079548393020424948160218906876567490357157550554117695913865026773795546378211202179955314744465190997891799895571525204535358476425056672911357037981368169615303966227850471036060177423344840942730719555643001605739581522295774498992715078234496999358266721534392737283457691456736637271228104910544413987685671278223714139102617014122529712303268793500950994445298950904810268697318009167204501350716396398488643919435413213999991059593920064667451253583571057098014455262044300081257488199474804368655985015263525041674485046276708415036376046291747769119277907613151935897864538478240006475887299145102593127850153548793797230123710002062267047459779290294811909701746685796935043207204039585927776453926343336030218420636928614822043163859455572939564518801561350403569002657847018430584357240322018300564454463330837123911994453776292188584741330042990715620963357319067523081288071422287177083453693991864628594239547978502143997942509841673346092299149011263959862431134745640574979437113781438297636429065160599432528235993196743030542908817720303365940353428181932558022198842463510006427065363631831046228514289436088551849765872224300447033851674374095424772272723946904969798884924114604617757156440817770907649290709749627551215317513234559525369216470584741959601968566982570624455323335591721152723020694731413983231355742374885849585839411186401125123055141908052378264186584166455024668933409046178734841709257832512408552069035381004286284093502518441248587486146547851310934134763260582901563447675922808852517814995117797416539511308632194498702157480751030414384960198260933265745374670609407275632731670447224058765835437212124517007892957339278268055612633563689012839013574336725824588425835169201712560161970477387750679698522454953307986510174204012136182107271977503422032125459018691663373719963465929555002526284012632091457433237922699851932497224643373195760092882133013703370155528782301658152533825839780140074184766031567532699597391014911329138119888309195554957855365055437630594020043031428052693363996952979326876881215099227234521392641991543357971034820254496905641602192256913086619263761948443989992216754584600180785792125043448131027727777698040968393288440689606745652506226628627478449075950302574143537713895776595193864058348372153892368884275476411511644141917604242887199165916090945378756195965229439854533401172027022066081502863776683395069644328602985653572360224919771195668644245400135250257070659508244519478788497015581650289126812510060094121548514845361867372735651184581801510523646496559816641136538824385373355147320630039247059155643888377522255020465153115612337771232523577501207321996316299371283806702218501446526641465550404432084354913028966934204850664520496588140930312723370809761218041410888163468628981681346440038748850671129668199846500706815394643698862847237827005603572225321174067016111805990011981362768781965420960605084521201423961266626721499998777192683535917016954085587111397445744238044197526936448750141207373270851835406161731596638729183328564969598859403485788639525642655695022205727583096728944778442368885717081631123157198469396826587346050369433271174187538478661440273065622822991423488778880327837431146882656075494387081376086758437363311281897000322126837168538950861755105508020477122181500281411116555266020387802595490923340344506482877892290262459050601040382481510879091560099965792091775275723794194009152778779342641727559186463495080373015081094441200227227961315469036515306161664764281419965739790085319996642847348210437340147431993587081288449502135624965704793845065445618539669590416414266860422694538385105956587883473190773996594752392457584633864909740979382960603101022916536599358130423306655216731873443885767957290607638752892072890353104316299080683694475965841653128571586823829893320205093786591627758049225274419796067705282261896810119445714154882669035271823132822562080018271588708352844016385225716817146115526487678633813225831713069082230509636904307808966981222015066154226959959017884753564021393885571856280778831855169817537287792980203625788739431993192791021922910641896619867308542002239966413034381515352565940667435335095980134098961922956856575367899096689733841671374389860813887087788559406270821406693918869516262722489822131673695372262476207804130358915110418070197795674445896995330186076620283368798651210968978951348537038144710073586726790590542417537195498987944664708608910171883370820181190118698083262511998498095353036947371270970611963069676831162243091841141441977639626552218614838631196938693580295309091746428580377645954929919976346143579015401680935106882988719877581259644561683028727181497707692352471423297971095645790790688761344226621925672349360161354818396976082712643831783476877829349507898440552282602164800594336139087934808610839847534022250756659982828975157504629136000948540173974916041311541300906050427298958156368131217458038113214322631574265176825624942443875760604214058410892371565555270982135943370018465539442524568613903072549820296025061515601711541704107278187543285228360780686988496794407821512923289156595388536776954589625030559024201293142205588820770315926074651737255796691437988837308392833213669075960274949987754588927515982083345404618634231075582485310292536762016269445784765393656986642801166961574164888184152162964320120598945181019028181986158957162205340129111832156817734377471706412418436421241555965860741777074620693648555311052480650009808418005707966403232316621119377844305765648160724550692435642342223432107098271967124251799026415918848421841228939288915289931627423845515989437298626400055468509885802910799183460014782959184874697746849088366909936858058648623921738568298753912823383561765693212089182783440057067943536802776331925838996344462454177494754846493199128000120525126978395471811901594881313971501319923527891049994747829165806220045422760985415160355458584116175865493605458611705137167609192963315531076864787103035518752537079854155564566589441083280588702134449667391117093749193910113540875727656923610944472600403815059292471996269578999030768126810489400306356581972158366115786968040051895674943935243743328053615353466212459916391050545484604990052757507942750275849969497572548003010705119235302677741616750651698302374239440771970698147940248864078498908387563749655537008851971554149944879426891200057823241796302034120089105988216366517095116942985618855163455276258543400019389576398504415153047388360509265275757223085283665815779219440391216132455464308700647865757722918422480151446705226373722560594824100821980698480639984703892553855082898981665744071245321837990366560517694970984382002284233097245377864943716754233350010438264044921758011300316474605711229965480228688147194137276064293682209561039223390158196842487202518212546318708627392122691746671768061719207101367413147813848234471998559694652068534160953713501942731319275608385952331849865916232287414596338307969896625369753392572138786699676439870243396436309542510286618674606760030581411061835098464239237698687739887815783697648055736164405292289849130536393420768296015665784042091438002760514636096896515978690942458187014491495821853990251928404287890251770902026604873316336410886394692476831378834340572927832875243544826613581414101360833968719802814886837618599016713833325169443031294022043079145753268619224710387338989832165320550256134836703707866453251566815761360157319689390466147263413703422418447720718257103274073148325443903658472354579893441816730736546961991455457327248813315214734781434913968962763498490708586824557147425891743789248131081139361735877002764433019197705378887818311916198531093847831620729489863095114783761300969950898011402495835269903042795348567335074348646282899347362634212152164532615198213511175878655505417071875791172318055148948481540074383307830147986491244391208765414760438344267004211702360766923640501861646451743907959841238063739299303436745922845858861186774273311583258054795768274299913303138003261934697197981956055200350928379388022376300931590040261026157592379645538408870761783921689013641702943740786331884161491355993919767121030786580708765589699443454709907068936141484283880771050905483715300831086639147929577426172047573271291878597798190019354469933024817654535209999704579497317565136636654308269152347981447886914141576654124843470731847437029743546889825743504723650208137676323835058238432357662002149391891952688279287118522209289967959048781023334863027417179380332852008089966431838018820560588983857340170939888065584119482104635465961624815904011246833349271564267539139868840116922537257116728467451919474859291186032129108882858717157359084280307873833675720239904649580974435692423864399739352858996169960203689960148354731452374108981742427955341022676540901829360299501878341923049519970747997368329362395841887397903418110517118606737715536651055645185571687228628421433049543189629863216274797437121526311002386762333183631907526193408906590348047055282636084910037936433038345021302217936271395678509249045835686739861025634680137240441909230910681036145647153551543581840547085895399901353725585838535747108309206136871433240485903737055269450532572463417131345576872865806714744798690051410264121119960949151085656687853624055491204798440177070524071618267620391683979099827430223402120430850057264404653302396619432850768788377344892359601443147258263337900882197133831542741540585442848591425064018462968377209078396097141062880132182253489862702393157345068286235593687048926452153992098021947514302914762045159632672160429224607713449575686327639291305690664703640232968617001242822649978363907208452665367186524131357714348465777367564371430775047664869664712728266848324227286144101741921158205654884888724893059614971531986782562587861367860803023441045740084607832478053026991403266120631955695066654952292085301688472906860339159665287643737241176891385535281938787951807023247865204097583870206956891905302137534856399956124548370057054238820077653305473911276405412867428276717908263998103299375858052028412516523161925084041455144489687205556371223589772183053813345219856331498644352834969170563756606062633697955426103028262848361295669781157337736756937415537681370977318053513029537533360189647016161679375067614823295091451388350332647366300972793501848579515213206165912777344921921668937302525661059489462839062558333644474637002055962195075279397801656041612815864560810300986208875613026984133130480918134646441571107926807929980060686726545769017710716191983703796004825958000838040263449924246749746260933101586511986812397826618404948539164421322841231264256557687925565255750575260141653313189248293724194828170292459160909614374907333166144689805488034173555096542229843956011322117784960152907293909832297705100536232629967873035548361929767626967795469341175122357088297130810196342706644867652216784215553121952912454299444751269325561679122421066623149505367078537625009716336579929620844431337106692554588318046487982857053150840569240753259386861128935638883879991140843662722894628258829259934206021543781372978855261733168852200693374711357308499146899944841855884109739729073294498537431036080866820030273616178130921444522604545583620181516411554868595317140732882373552353868285391247156754563997011691898931779103393026033684619120333987660675043583647583996915728671910839795898646377117038394180055714298584288544669241498566700355268706248270195632163858665009436125544211132589484261354816532417915001819630456497401322064025238889750934432415737716721902726038905141047041068154644109401898121201721905807065580327689925083978187704382357407357920262100104188274471268550625452672329048002393743433930517752238144524809235095682335078618598191964055641287849135762502070637377866990872979037672728426393806512463282919034078996591359631026541338461847999797584254482539419639127796486338874885320971817856597981489389537867241102258507045231519806448337051325181708317041531556888086020183182321655966432918089498236834751066962298536380049828511057626808588286600049646231018863799198350927900749534528652614203317544254218449853998330275557928273362062879362955169646353556254745311748695414701430095278378923197880518898191021206788823101224887406930430730986649994197896508137532899366487884866312310167699429574382931447842498131518121966407341079781000601158969660216182607484651730320995338229251487544983924358879494673342526710234307057349803630408793394032565994815751211894464227324321024741114883466398576278384076570978002083852518840573322800227036727846478475516861846886784097231092387109102162791714560416178984117298540525403599086915413629209586262096527675375297074602311563405804027092143936131348129095351395594751015523375338509207888899661947335808765389949813377955534319414262482171011962857016713221442099909179042992298246019240987051300464458698330735858601126267681435608932505122885984623213893758883375236988708123165466683648767341870091110320918671987853875858353452188382208622360301027125094188080788353110904129940655215757049475878894001367539553890606459700399619248284312357776449031547331556866791145513001767645690777064640749959854901567410144159721396079137926155419124959250159732955442521091136551973950397590270972163501045155171269153434231118991239953527305174917130485557985407551886956795656270506568142390639591271635611756589683529611316696663872478446302588113384953971652906467125965045600629381491056444318092461306177854744573370684044742357470096318395030795073650186589275705255116484795689894564547220385302793206026542973086907141123341974936868186144676763309112378024051161453095371351452535283605229903137970908651031707307480812142225521340498838490928002569433238263936339601464536261636200264701017896325067271491899339949480156627230045180541287254283852948428925070423801648806672970939168843972821496217918801892411547230002148524274730513912829244835224065789102633868009517655759738982134318046981486455825748652145355328215743400718197621420053834097874592629752326202788648859843967209284220305259966368004357700904195904935628215846635528502014475935362908285707261421189491533474616839930752236079703645126734532071730772732733737791427492786883424843328707635649938488524173010600907725537904198276900018979036852252681636255680335799207110076014402423690883389394396513089822027112618538162137331634506330887176245318335888154876588496063151989766455487817196405766398648700729722929219359570179700170253786223398672433765727306909926500143249356026361576674635384112185557127057252921444291793546134021604435491517721463635852207775407612981443120470789666498556598675216021301569366601412964144179374002887032537529023750543618922134473789491038357245378488326813830417206640506477885754145692904041894311044316327416684086552737910459860863112526750346581838012251986731290196649644767444599367025773395038224460877881411163832731906187241581233576098837152577162983602581496877035013927045597149413566805194918345439807505995919244590430660408699933192406334849169241313992664458383750527112076908475226378017103976668913991982637748230557442880336992524981294672160528831782843427458115701773868817973484754593480486784927300599351870586571332966452163664453133831886948553910411577085242491850185737024410294999811652688532547532229771429922411916186031916407878632929513982352757921993643187028628786200561260865572071336206907534027715796078467099517458564499893796686203520291043570822090934298694462800893864208870527032993891185288376613533936886372144358207546732663693512665008908863077560068279171201918750823075040451362814219032391198934818606963883613257087963120046452040716448797651144827500738356038885519088635281724556847728844995127998688748205666917524855052768206400560204775896153968424352561870547658941677857115661874534582219232641730332754411043742576924502892952921495093380334929488611130117236330569886535881601501466380014594595805120845630630410396654725863194620757844847260215676134804028945971452689608827342799779498773426063533882620997101180918257336252730731682347924010855853403607582604788980398117070957306733282689685300402239761477516791546438910616742070416231504791076560449955597847168435599371016591242281452324613403152057523193345561977790342430515571894860608918009858005996444867894877551699355770199736235135085726585218600516772471573014985713778519786736337144746706445730512045905044538799044972833772983469871196045662576459366794968276139770595761336459362684026486102337354674590100439589345581101074404170798159854344676562470589557032037404185115568196992332175688111565179925989677220812106294393570877929422103096765956205371865449642179529882724672043310945540616483969881454630014992420940901539755361597496040520675197627239576137836285488364916693244368914851996624263025298240073133721803062669702008851073780441888322433926983507248271719517551661651013993108686935939115586369359393119536495812184543554391079374192900733530492662747212612316569044560285826145904059693177527573763091883779688634066479382709730764685428539978806862052814838584892761254591513455303763024631903565632249954251794964730783589034793453943989693524076533831691616548220220408281501815307464627523478515999189992063021644247072771693987958343814879392990336819727046914196430629998289942576434902878318634286689944812229659890208749442720232729916572752437495127121381672718733205690078880684745537211413905426939804887828803168072209509673250249295177996549508112801613255423881321189039445772312773658973929878955258734511560519744301757289838384936901853100135336468303714053194332107924982083229365714653211357552738451200333012773212099285624311757724668078643075866389204523443409658278701000386320899722427697975831872227565704876317926334967011162156494100656494030395702328307047256119805419815787419674793783524964512422366428870763842827700058979464960329293803626737366064695561540833498452445817142718247861079873206302389386107325771087371584296106345017763751642783980368601285254723322542343895666557719679115763200888691201525341661618605990985281252788293753980984892853652307728516109306512236981332917028862978753995364064024123098907674705938411557525616533036314724983411879636185120364053906661333415835476402900831232285255043154055860546911915749812698576969250097500167402648399570009857195157240503744340399980942574410458028377568296143579734055219824124536075126491663645990808136626355822009169485824242724652926771968248620299029588380486977463729504489437842315486018842278736097064619546907082556581154024638330835150931803079362385246566022830656900793452967529559840335711092836979401691520653486735897066518717510669470886158208715549820072770927540724703317498047212596896919156346023740677457344380997082171309963153105403845897991811652571404775197123989247937530243907302954743489534137039948340780680028718450014984978293087621130861241143210312353702964876204513213606665696254589402199651402652127311988728993767622778485594925005197541769592573940022588856530972803669421667361845132835301642180787814106250958865541332541736396274297911150136695386246382567242113825914740294395531703676375356501456029052069795332550334733098459482181440171510916144636567635929730228639832442881566674622460904148448336660663526949197371008269256871968025109880553689072494331470211016610574955858938792763480257921541599066901820440582645214502221962583266866004495134761823819499161860672469519812488188978692945427841081343352066190812800495115714187198112416934127712268785848499193261000879856676586930850016432312770637359438059228383356728800672682498015921633553348455281201360834839864653880319167308048658628225868350483633371825853667450229164844569466430433586049912592898155812648774573197533729476114484666516155181820434856422227651056307255714212894435080897411655348155770655783916979769274179861889001356234345947177221959064056454997733695558055389346181959077452151067223383000450028679534586832433161217291111920332947235202866062809115583212298405797430576025583937331677835255891108235872267116082269289821776684859963845665447988750683156591412633356233582084288288631697470477474777359532806348033157040177423421691842249486986094541991004640716206470392471963048524219740670353624278363549764852176020749203056076870504906025189777780751517414960626900497154120523356230739476955288908895684863160272905977251200774756162619656942361443586499454208080304520930628722090894035387348687541778341404473119026715536582900327472121885762786736571545540515029954904424621147519606303069765305802896144280893022616697304483371490919650471177616182090819158916422513155520051924455712590563731110389364794046240872916301353758086876636724513901711107402258736999513753731056893556973089240195388270434359909404394537309634179894633359600158005611327784725129141982747025390275519635149564952152906746204133030857362879194740506412570878279647365165584966559622761058546650150854577906780230833217040541095824852937366242825416124904206947365125045823572530605036058909163405054493844247073631072918006956151197747102080130472700610297260274921679577374010608796642744193037392626073662197655816502255082917905832567651228447315065580024387323024672508407378826191525894945931242302274416437947697023077912289082414789598898329673938005574760074088237180415816559916765301521832655785253718343539488777351011951888964341462494803230567943864703726897897221359855849566226912088075052408114492756234698161961480533236325719953225144478330469425359661645573819662325161755797878154392710096306868362817263765372495929636350325523517149627716473798023798534372959473966383641553982128760563815239439998679184852878576635194835125206133000824841270224460299037779136956012014850141831730521202392676250575532011745795913537267547737481656032181315018695237389414344131612615609329876460230411516785909337192567682500480861285549393888462227922521887532480576248991406974944831454082453695016447096523748302644040956626673779351723136966057398152462390064198065668369304826154384498623894716398480031444441808928054257429202872155381459997994673842202222582647608805156724715223212730457926050659856819784126834389104558644782927123885409222715152809601466061108938527211712440106234574526120989559671164541696097211405940351847602828226562641721750255815283689072830256974548781238036574317310590275218931425190381058594778785087884543502772390692662829849277499003983537065949851826152856719050792238622169615346259532356687996023516424215676450163595541088578160510347016647261615348136712542064490621474113199757131871320000080368893125275431941343726812253942934296323186219040165769808490804612223306678658357410103638409490786030127116857807851658675665597082771186089401177004789005090634762413180272980864011655277796531111130299938526469219254861923591649019570297294530110652202351941575965824668723621498678881864191679010599855972050574738310422304750176442411993339029246549778399194675811095370990058122542676096147414998300526906004745311355995896881399664332101407344618496180961619728819519095954726108855688472522146569449050325026234770007769358563267574673235459255487539886552546483454491326558610044078555468103116186902810571367950909388569651257568934318405116489814468200566266789623152438378474273132795688619771177662943139486909384189249816688638410001577879647926643455121814770395889579447393743162326440321841323863315602319983857208609905015242308153935253004428174983890933845018681834728335530389212480053077815576691670610373686225041543523700209928390988899173521750947703290944315064057122022478356119939448528112966307256996739553620218120008236324551971157138860445415295455371817813157270270645756312434028394628917685382242128646105936475066458013608113491281680748912426612633651279538334101620431290074030380404494730503354334923207344146295066042540743603902564009042061625704579194318989282336049498729911454049603600148767860047951587411328279408072959627342666365435098559349004206758467748754603958268586024006545140436234021928944352472988279867839313227630733727609312345526896001079597627069892344316417752824019107564976773131457400301895128597657448620202213393237686956698363615556695694927578202331282487607625346522805790301187226072943147476521237938535424756543162976713793231997508991653912555218432782597109918578776183093240751143882698584681651723328677971451350699589604718425555949367717454378006892377313147156745420708371009219791986489456139100162009684682785838797516268205069709365896472487239186975415389903964326246395646715259889887903230489455062648935746958892865686537874095191594413612055917453882251967525260350333506141982540761737662204228719623754042267701514540597790886772952582508939260652040925478655443289291343883012031176537341961325412437014051608990541518729095234333056270944481394645137930209514633326465126123885933643122680835138428423937105399054797723861641779530892880833761189851545572124790414958186469395971191489781409015377878699369865935038536645278704944448379417212667746526591982567639718389361462989302129996162036181394441334905110306402101784839332393944742230458157538012454410841841520625373697130021858233826553227575939339114485680002413351247957474087341953785826648837921802382994838740460980180040481548292414320611804588272688468565831696317871749590915288221703082501886331725322202030448361830622144151527782932170365596079925817312401565659215367511714851799068168906801760664195583251158558142245886822467536534291952812849299534859771867193849724489050697692880495811708107076829964965403816761012132380986308192435919290950858008420969631966300046973196176798107685673098736104282546330329696193714488026836443754731440135749138013864287561976618425536308164627753395149032956131632176648699393923528948773663342093978343158432159356680140494595786054288850221812967331861278758460892150839460310161471617979439197852963891109167296024917501720315763073033550301596634094740575202907008816705471166939076492750310453420056445460073622757599719642437057898541195193468747744552789112965158045349941708121353820067147779442607829009579186943728359772515964987061522358964148580236425442736712498928393837496949009109916821701848264795869896811100387067510785694285248690597091950109465351881171436172823549342003251969336096771902966716207528823237720948753704333927521392530214227838393432903763969168094548577499166820507063340607946742893389171554653177418434901358381999534018293735206891902314686646623400302045358951262405834958574247287783632074411819389242059961813190313573458449646658495278509356268804077156465360760965123690452378241428889236403777063025525669132185489468994239131369874688840378911600167358091990148109257999556455914492731202483215878553597743819462724491189177918048192368572445441731977827640828327028841666555890833735721680902637820420917800737077916948593730398714659539411915943825625090835414865730450032629864166774200588601733715503402675273685254477020201200840697377376251190245214369166578729461211214335012923241991396058928587152057229082778156642534999442801829282439230055167857489103139269866173560506577029488371597314640375105220192991500890569216195988916303760237114628457022754814658245750467036237931708503466224727553237125527633925718983069682272163453890658573793149939650036237465361563168692182544166256702654201792415091576142564657707807510008195390830401852600058280549819318091244259979412880060499087123341684634603542206704692737852004944684211072873585605257796419212162899362699729220159483984583916730322935446963599393912778892099621637937408102553473159478054377115078695525584910330895938034363703556495061739565932816428592651119467387922223204626491534294065949327072089819485038171136084234741240770671003398521626517289011290603550171927556844957103498118366336381663609831418978837153803683156149768984323180731693947086672950941812919444884120429516718479627045855471408344072496858888979645373266539847169212595230570834304521888501035399369415794849409403464498159596279795956383464213367571212832404304817879851001285070522280057624363685455649115944939036113090690673775243529106948279785552240993535883780922144878586533781511620548039617804056379160582178044386426574862933565634144162937190693292222147182030753242148997581276279502080755082670353124871843003497531400182525040000284165239198882452774707562301528010027323138618842299276190702876473392283466132748506222137672295238851266910871522007799883115725667073349922526062416844846877818760440871201031412649059273969445806637527646407451592857777716851113454487870511596395140371477606375426406638449188133492484140656554336720294230687861308199375591642004381693220254109695006065406808474878275587340418474309725465630312641908196603225267675373892376704897393965507801760613027850543613377664666564504670979635407979800645402800992099025659207138247405430579561222055442890056162146602272387332499631627180545978063164007458601997908404035142108444582605212923419963070138974767111192920302942387464675334977529729353174900046924005014935103090147226086725497501869779351972187894438250569250579270697610986871131982631810890382563790439025006622368995171080294677350523351532009188149385504063552013132509691682850131763798722249949082813910121297751460557397137117685128611034844080021901981865153383994281660367747724133948347828324539634768721117272133150737544781407178867419270471263856996135685316613086823615226178822417032208608310007014599149600908753439796918128792456983825373713180406790904142448513889139025928083564591594434797867596599658800384148323372857698285320948715173477763384854155424047847241235544128740095960416407267626531711255085732944058077545131658474190512637420894701029200988320918044544017602076764908934379342208699552496135081290762965756172899001666335020324399763828277680817910677649021665332802331397464400201862875829868119009464553628235075923707592974627576939538661032198391947094454663349670910628903435986142399545945376306651941966548411841261082587440242688301238545743766178342683795400599364797374112831466892263426629515731138316376002397167325911769592917851049019374117402944268520171846229114736372984427034118931463526647536206020124494300143365687900817104810004629178042029469028147787958059307856637016112603720213800119696968479904308320902250026638501259392936902240632338265176126736594947737930327477542823088564888084718965479908711675379116285352325403472235446399508811712956324217263084648559056595118925913562626937450495689471071245822739996244477032667585711095658289276940900107464936850360068129792127596196665378273514719384562140369069655396267460539307401278361089246902034268475417236393770173493691310593573795966380648581913306665506832026010952150269459897594509317855435488917936171080265792004145083098614307083796517577421982423204580211420167879154921943562122066152818547394508878079525092231837439635175980475279454725293228139655954520443466800570078821532778881302310645088690614030590678704808923729633861822853639194654752068738472160395588951073987062860564796859268773910056910685685309891079967338456967937373072536928703887124892613925193388408286141524383230165084699820154975276773314606710166321326150609984693297095527596087656972461628038614060443509832115321719397251720057374888025008368601041957511136581218590754020052056074030550732955235963836299043965823201127568812639018430836542305154748618110115241235585630399902948773465251428598247822512238799521991200205734425792440796537232762282640007186115838476569320488955434863148992487635735959113047770208032495550251577240752331444344174232557441489559636632976922877280281424131050077740386974222004555662217856499217285554580162565579276279948434818245752592585681701466950548331746532604086710055859851078899262768481957022330091117055838567010279929317173831416977952608979889731369679671706857445456263227451825086063221942271379562895692477672578111849742060399956423411236873878453976443136293913705839172658536614881022843438112644362530318522524791055203887857176552741565272637183615384859342279376972889166890896582710894921213983279803061229538667486748003430603791110631329609614257042813478911858420176706433517682196050288040678764660209748591299455413935179305853332418874547348519868921178385901549909632107978390487271792105935338628371648648483877662633601934049094237785098254470101098927787474263051746830991158026299422865303866895989297771227553914865897559528732228740063864749069393393654002550040069652196150804787644083477294499042012669714951076149544189674244635863301911113319707207083648800252762999963289246349897226602704936916607332439302990619971878587443753121210255358663939912892016604960325796703397381524252873601390121591994789581844398145749577663964312531208120388242872450455867465089160976388702441382770854751507829064974364191676627212677096351665481570207407983236570359241742705878593194332355762465044870317909090135415490715273833230653663769269921292106427101019750176356450978025177292384609802183425459318962543920023316808834947483225530577322241445392484996740203838337655998286398946293414909909535836034939653502187868766550289619091709602787247427787904251597886850805135147001590570351967326336751305590609770235217251337360222234415787897125196812773735928515033340753980102147286380458036989296000314163481710820307804938819446152385506103629176578551095539278564412899645025594685383042734077029973869435455610598943912681322488723974157937174418701203305405572302732031244896289865987882917025724556905192279771916385790682336457870125574589690266902398517664912971330882451743527999985331824340702101516681904559829173436919210662095717752338002343222574133492870835665828933171748837552287287519971826775733561468553726374836429134324430558411464729140924014685335418901340188236604650719233013768380782760328460541622856211835731083307962442307551049989056813741860627718546319186141707687336634023574059355113347411848717897250851183597239701730126985422546726752286326070333241586504880808936638751104513807141830702524536942803032084278371910331616713569498632907366904307216118680493877093303632758204008702887249354355313000344953689084891212972638226605649577520954409547283878836092421986477858212234711804751426934628113646878478321555411864239624200546351970101086093956428504695671517070752592007386809179815799495455487306003470563817975412358115381462328034440900690969053833792293305721427107970617819860125713830062839635055212846109274961100813651109203943113368062810037791639309812888878199947657541774181414297176047784926100229311334735036094991394649192679545378103398605249494452185667602236654611700805432758287259356049038554063602275983933670353234156778085993122542818161242327935597241452137298692843494684396605454655476239588115306711884973380899860604441710136468047388763345641014089382593473330164465921778651548130791962784610231417263691760317256322870202958977821904231751300612689614931659241931459452630024727206678622917652407198224003954763174604415866588861173592045757915266893768288933639106976680613549012979759142819319836231648721756418360068594789448618156859457625865041320111822587347778758786676802106005664404118927991178244622352933244591264351537810951076819955276929292033376583169898843718756837433015019979272794921660584322556690467770396916142850043245970293182827165736728603031049700692342509724548698997572331722428502614497260915144786789957567481524532173229289383209364995817103587775592473543166869709056929854916894448989097012866155102945439767604457513036248805812405795254819549749434809306525959086249944608797814072537164962623543884821771797106433620497136442687088566610908134875645649795238070736510730374217419488677466971084690262277121244718237848078272649268443060238666764592815307141145280742239352496958260146643246042337415737737192732024525735348965020274197607738880179279150126674876685434451424948725368875310077439401092117168289929645958287805135467519647898662425489533836729616998586304893398484311814677254817001239904040835529155474454127758492224260214802329496221432153129335546472091045942321535702485894750849945562360458549513279281706427962287240880635642962380445494718389397542319598295129342137065335257503137673026000797891040691386905269924668176334884633574359628585634152255195043787368825935728976403964013928079931941277833679478633317943075588935991367932050344498217380014411398044084082820084137763946672151645985809694306796850933722966504289600312461974387956198497396833702863840864824090041517355446324148822896513107106962232841925346682705340126987269230938643700022409556511589586201140232822813516934331038407853105445873113767350959339767080917560042213075942216970378330812881932693491321696110064713063344743360577800771073148768686572322589557964110708639542882192834345834288026968650460028255547750064889629251517417968270479619776604239295080229226091067528445617390629335813539222175234931397017666567033775426170732978817809420976399778350855371572563178809133219261724200955542503003744960596528568871159470602218520759559523554996844076031182673272752716902096350469961914216016549987443545349997790971001373672814909627587440432105227193148701856372610673316349205365633958288128893834042013642850708066286714134658565741136419214502088285718134343860791566255955454206898420412598546910741529550625252718686304263351912998406106935841766962472879949333459380868399598317964399564554466141407505580180567852513545616303631862034564443573289166364855431424540153297664503589797191569948478338386268258223094082638986298263299992105330792934657849225406658916826060298173017191781228131420833474192055230909631226719386546846810461715030083092849215731958565186837271612162558312641291244525435436925809490492941308983768281382719394135043775651293464351423697154584353900327295759717517788830551119633595139638770823646104911845893642162299500943656308498727708725910889373239979384939890833278792281545007387105119815139714575404901384574719435786987764202338409731078399575690254379743314672771792127051383599698664998571728254343192220169444184411251213428244551272922170554975396495421776287642816915364296128652304390495981497423612651649587842792574773669690579747693678765377146664983892201568879406178340436585897084350655159536867095289736660983813212211148092045802805661277287137462293315700449825693113088159169529543534559018069512576112823902127072990413719974829776097416468003535736590512229423751919123434813858513913192774132816973082994839224851022194925568965779818327986686037801159741509425503567872086734171154955904717251092033452239284565408792987245061337928174793570970496548574619311399186215771969373809714544535034259044917021300879457461010234541672889728377927435640051211800051047759208432464506455652668372411643285585308167620886181957896932219969904758637633989941483715097308429649035647059902394147238731313170253227599278328013617606546754419349036852508480183846632043514902590475706627283585451327373999820747652948773523130872001499284340878697578842019862388373998697242759699887008967368875066626966627825273933668470270307297430273665778198168634437073652141968956929009766874659812760647139976876915088119341652579376015425439810550067330179591884328984228734747522821477115929267572169564020584102195585798438224579644815871369288945374455662014171611992105275145437516355238360769473259750309044282194384417822411903713026209323931631462676495912465922835047724527235167256470168049451032499024093277439828485706743388809803121757706829110139694251098912071986581530296892840299824040345708071414196662511311067396982786525675782074040841271819315342844979218996083438619449330802960045426079843799890193953616691214812470115194735581718967008741193957903094808471424630296389708199841536245911881936808479051839264749152514418814589359702731832582188955095982226970439911830333492412216143166397184760711029864930751331316284230382263925856412551145034033594655192905744392811665906422119873178546501367450996153706972164118251011170266934246512529768690653391807173593116905480461907880210488530629589273907673922089131873802039838366075856137239861621321432835567817281302450855921672086714068651905319242512083911351491285260526122886975427253246737963322934813186447178878280660795475120895636872359369550755761576540545476845995652246518696418006663289990084592076810584674615726347978290622322576627108066681223989575311717762855503498460089483295504200189527198998959516951417345542478073650013193455312198481093925341707880228576532144244070193638325588700347781763335766262582587548626492460743507374761958358126389584013956176418087871185782359340124872957646434873487655721071221628080700552814377901147155859637299341029906161773283182844018869232253107540662930601734494965947136187693359650801226557634975476944572247072588229985706909160213272928005690400842755207239249417494112729560956870166966847080480565935293076340575707993496930070946387093809004872846569093300558758457552877847142876010694198036964803094263950955122748293644364825745467841205346534267358232923577095418883398362041418068316701362936145458525133249784910152929805068965766993491618419473813750656606091604072250273815566875196901394874752103833278071662071789350148050230926554113322988567597959775791580799807415520665976473254435745984079436090236085858678783443985802656852196375038627000483116039775234720335736320684760997458629892058835194880510736705816465475886703259528023623027535948587747167125701103477758876231854317812862744454291700140719774901219960903589290417227618088464347773712983579822099719130952137739668684407270998961423570318153677992221064148897143669265708307220726449003584983885334296763177024945407189882656298041964906946252236340758324262921456597602227288222365281390617767312731899986977430159967871408482215117427680792984147980882671223772643948924905571712375107993002491182771372966536648194127852528508684665444605753855684483579801647463576858657277511209430747533135792291004590704091213020137299408543013804570663477709355963661722748520066163649912783174440071588749961888972543585210359491912071959165015968637971574655594185327329629553258426630344730556838821109385629119529681845098226138750779300476950533990710552914166030646026851265240830007206128288121992493812397548209811861885949945262224450295448062888731059622934954689849269708324737936333033045299540707904780421220409908551500633409416302239539501236733108958703353663194152774365629793704513402508795191092468762747371778988621372542063285997924950952358011475263760101399857397441658278476289780864641863534333430927087426863724773431654371290456357776583662650584554238190058346925240804625252243614888832661738125125870727178554554093483922659358298094390071721899968732088536675184328710559357077094467870505988647979572501807836192153301150184181858084986920124057564987584572154969435598139626007358406553901859088938265799932628081122881918733502874108658200967895602046616806614928807983424511540775364192123824695602657755892105012335667516011189386368356087345084168560188225582570558929226753558844717428662599533815632467471471560399372347060689333493460888492940677812934121238414151701793256784473605309639911787402509316363351449184421847119827678743928118218934959988615011177195641302843443025078248040456526861548889987542547421275812476846395315134612380673166730943540090662667816744972477727450828782132880868225015433585780269304168558678266864230066978852271396574864086537635744825072042447542566947084808141860416440566043021307467303310559518136437440502126822399093759691134391073971132361619346218827421121186934932325702995023147492842196293461812298746105488466068974323188798107450540350055113125073147118055978578295775601400826189584700359928262279741659865654188624579179310616883743491542530412538982912050036807105422366976800598128792276338978412897119590522117174545202660195486222348650741175036752565331299800422702198798605268097412959218492888836172060702305147508898003891371241959878265640683741156909320782640916969110925605565036684635239686468505596211496678435466086433529091310465637074376836886801572825524283339885801692544640388641360973511969552294087051396322207602378523658227278605059061169352132248956226478889603752368877961491785580584717178788242539340490132653769065469249012993395419857544327717230431638942483963227696560556584331667164857976159282818482419710037302567395156689089165673390515850089089130267214609261818653683322877133010670650818685416395968700464264396007532629911098376013369097767800075610954554387490753519541065793331027725657088864288852425174748523210371597946141684141101273718193034496946035294124824813095180963729670823939734529393933215123490326419792532310934346904003725835551239684730112820051161977287364611090103681338329388374793820950691908525464724013940586809082254993930689096096838507991902921002039634602063000198273098249755793810788943869692099278294092666647248359329273308486099742078691864006429142517028147165642310533742439692373733084442608061725995729660587132986721031840712548301446316329306480248743575103833052682001953128717716650146864424298208016691488583509213667590168309734051605347632337236055921945017240119838325435890398723326307499085852284417759621670785361040925338853749316663819366905934505918768727188727159788495659392725617415074700520785209788799834673466096374827075625729305179976025205833098871622965260756465825261881766651487585688529822958789364521783522526383985541966377174180109407525703532072848852846926996454271222843722542576151012073176561394965845562181560027159310740895151242518453999241302031547711755052953693985096609221715473102644985878712522287214597979368703066970751226757450008884032754642690978957994899561592107542131395649371976094687487468519929871252262985870137839452381661277481985975711549126223094626012726335563303211581982292064954580497676454875185366311933540437448741208097619738682328854733564570630714840928788678404446968752622478076535574697418579487602443708717295122514941697444450223684674025032352512977673431847869406398414654381567124734746559462269138338633923483636408748645412071938890659680345090650505904981724770402010721432410728344943468855032557503186396846738694794392441231768545178051443475139765897886948129102346016430812468491369192968493807236446506035142951719852927639751554374962811000072447471542029710658280895932597283766469235408874679200731657596737105515266667208397906102056279727535882248851906393149174707211823337615220640913865839731719673891304174353194073188225373613439306900957699599120021374472264208604330237140332519924548014981238021530430639384885429584598853542350835430789495810357187283954972082981461989723238893892766264440720582380784923512207228912438263015960371708590608455889208706445371349228255872080052661319701160506534840268700092610271045447158826160502142324762665330203956534092236699174776396475314419942418467980249954859923118060918843420863324658273627111853723385641104828844081081614066297966888129960117534738581031377157143035214730454467443877847295477378984090052516763486382275004963193778274586699652784975643610646598883940873088029000169193561975678894030113558770184712335485211898748428242673377572317954423389233176137552508614524914686698889718025375795474120224605455645465906464699473033959437059317979519026080277463714574979560505501640113442347912310551255907794466798338877477446894185776334206232992662696083223754198542659613061128326491361080810902331394321638940077552726259554743995093854696231114252252894828538622477891305296208826598219635135259857904242067104124998484710324493459721504101761219928570500581643272302497081230564742452444107660945596296291100976463514057303492549854650530717790074216654250267588592026862036062101683798595669519752908503868297575919523644782622529584545443394788176600204422262957454933531941203227639081192723634091946140583333085125605268876737531004508585093071496932136406986937061667949627976109908706132876363873728884494101802072817601043902147789684877907805215667556718255153398048423459196490486119420835695339948701057905518359253245139771044230445548585655725141810205963754271464897660165975729918200729250847841132805112980906905994839672072173902208343272328833076766196671452240169964440818859039546429887918589096084321103984147997792588852042430533684527122433372375363416997985636940702314296144514855807675404615226276353624406625524322644578512242030934876524323452311393338671162451218270788104392960128116937014875284367297820046924336385132538088674627238533735995157041202972797225830490486688080905861075762405091673281779795159318915989727509126568229571502598911963240395856457848140382483036998751927699913319350125331760468848574930893185041659306867138397968114698040778343144075714311385859699752998096793360478529694278107515230952648843305401687714132511383090480113541833863563119422778288644974350705395572365792538131781139586694569827080208688183465593611392793454149817839559300193089657864256902613317373571210481692178960022730803075434176521053453499473431157706585090909649867474658933425969477161771316893011078472001471296364008320656728955268252766802134582634416058347563149413078949598183727796590800814600224291995664963961032677931315313369760702606325456707489964605715365671656238988358437019242234773025607062141875937613927974975176342955335241218323309026075315765725922860163656586958158695486627385546495718502870221147096050478183757323906314618765376051347708098851392726967134394208184558809485570053592821030985168983837766686663571396196619590580366517129331482621643698307132898400453157533373408025455270004628447141169975976777017867482356853548518826992287191222418739515310976853264662155345646887844914188193252820701229138055128757281475545886229534667724932915501179201465433736255095364207451232718196508145629946129303083153544863013225925015635179295459538819797579150846362582313981656109099433406744336520378273825207311635185977803171203435014911839554864316442808913384520556491183647520317188460468594770203982675780458857221764515847761859336765197354459584800672340137348294300125442175690316488978530152394079578021200438024948532166091692061448757788485255180435791592187603590781387123719333016645221780117622937691429443107708812932665713828081716640778844390382270896368469859036747448139714781613540954502358638247085904518226030124684348592760385547657794248023295253860015847229585334811902906025709495890204158618329511846996377983687111206606181416659573807059880406822341446971992052977092295507990274028677951021369471405780118739329904661868925128667209355206048671496100799904625158519176480261118035338584871612832996274755013007575736291900289950236781884845081864797532070965096812445464166316718696739967083618000960464173378134132030949734695721298244156610179979258183090794636974491482380070089791275997338054635924865740758233366389041234810912280332868208130431022890892692353842037107690642832565427184941321805411420408754969508751709342206863693830489042637209308228963304756456086957960174647918838231913740318808326918714761324627239674734417202906560598161025770360799375638483269841569758913916631091366284841989925246875752892728538652188083687419373268135508138468194270538914634535026438404697143374090702768396222832265897361441773230040816830986183825902421439206585023526977726966984306572082324504532073738717102952006703819430416783978288048627983911307405732988901000474086824051516041724700275070565062103595525759639590609564289736392324917743917653660384309528974091553852158840031259857850011178281031891642306319893024138432944661839559509594713856655264076182177417158429513543807571355608343631209241438324360522842948029793162450900099491053878529737455207376329164809372977632524692636087204170961971953107480917702690994980370522751084577491144856466086468414976702974637744662649019280386808431398942271464784740963738482257507788124991775874349483044429686485012343182871604148395418471381135932124226296358249480876249227746279045712830960572296270010486050434701278664395887886186236721072296967920138949381488920023153100601001279870168125123025954756656460035617034446532461747742794023955987542907966880648224041802538352007554725212250600675584750687142381826618374969104904395281185652854699785168745673574836801529858046172845484930263485904329165548662657708733760574012512809843345593058054653309293913793420159833334355934522212366278037852406253660478811423840454834165732792016746688107793281347065345250192112660450218315717357890040149161536942812975070387720342179497816305928216786998684185773587590319934837434015889764470314462444653031219050630913800895387349817484800702063689936365309623181580302017842938089563777403375055692900844872382125917732134413076241943321104415240047737739585133104875631859432455369393634666072257725907007574260693541113635687985640019490814745365847748750913214693863014996371132028602508155824499374836230876553727985839390374781400928871812413131413664254987656065283956508133607759868301310627369353646879506269732462471950319164762755823022416268542439069612530782381603724220300092757546320629956516469697227811076975765718055420727269265316851246218731014094745821499495549750643675485791554819899196235804408398446874774776998925229072098139013012647139925570823574022465252996323768419925114322166487096531478804787497906772687145928016475108033256857038137555423423998522850598590191555338729309111203452081887388561354014908222170056905025478678954415297264987843484008978787585139524196218615632029552698756190710133708751910708470500587508207486935838268935706911131630563646554139516649025207404811775458048496907148102236902468477124496555745173834919511544370060022703038617869806851629037686835117876315797695316751232314120742925643875043370175845916740314939198216681784054878577558864080810284300174387682336997570790034732369335320970337358383166766255024657001755504830852231236384130024328942687716290834147416999502496842496627152181304011079012485188457067321006971683211307332149786482081717174314304830136349396436246331410254523963483948464545284764742323276016670049213829746175338656553198248188559576402887102904790229666686803500165032056881767817642072758502218515888622741619095806735075818682380409499680364421253010827976405497586977636242651130528019976260257599006318370522079791346858103914688439113919193032880798735781507432853978228268977025773146860255727018548405129892529187779774444490702360815667397916219402322702609569241842691956390302509798204550506560429922001535645239480415579390216438001244028609563421430083234755506614948197997744803082913309841151806262156947274010524316313884999375750686623723204386179603066223513577654162104385358480609786795674737624469932359484769994787420830267659713069565188486248906841362486072648747914641197897241481992282977701699032994654947813990991318108828181900689648009220015708475881890581338612268870154232843295726108360736406245780185281345468552166405907554343356525735468775245859667431425982958258647170414204760858237536569601097105809743261899484390240638474898584624124649882418519808958881716561537906054220050019597061758904450475185600922853430881831754970236858485957636398840015400598352445681963590831979573504376716860820127034988119943768362293614057718931554267025691360636558105056907996806772182626683786811104815972411471266063174132345247264823887417536648596494356586288194326920128370064954303337813578788364719658331831243913544924856337752011341419752317320433192517985295864576850527489092955602931418948644959914961119002241605514831478708902290561404135939154718469996860747632225011093769314251570156977243440002302863940454836377952041506086057007736401380825161534978960667037798751475475171116944379102514118209796504618801626304862401226148943924057455283522721351553231152673924814490213268458843298658991889101292145212913426867114214018240634698018238648145209076311402495857616313917871218548173978124835618327831726695319992274643725157114050558209500765271844360264631001737485181806924912531622123903503754952013551273897557729030812216538721107378660319366783923926531496613044238455723680066007872554643728220801823803611248442687697170925712598393293419413063839534912866594262111110251017361631914639342136961735096732111355054262960161253334443110557697736228608765356237463494580448604138407010193475668834916468358198067370812201304164900257888594587344639127707084993710220750393046277190070869972308015241328316838839191389459109529869591515735098738863905066069656131910259023766947154388736694828807999541619964639350501907539214445506158760050158607426587828100454719068358892739185591193953043205041012016792935284144071323503543734000456781365104214038984089266743183859127124141390464044539914613692082742012837242719476198708310437979758047664698228311247424952114113281207543558996403275360337852704196863071215632340143669169929321167940333632650968509871149867572425689798873072275115335485050718075498249745244148881778298304747986842301818727350053042658522521946183175598671140125345779633398888826705035455016968123230380566900827572364521997048369680983329522379717870542814306856077721683385864318331210266313328980054582317848234933605435731319537444294692470947335210830013589629783121540911332313383800029253099460831615387100839382839035874657579704624857589384277740159951567835147052617243874038553698350336846750560334348441782997773558924663590512464594163095987268284262176874344439702028643758560610292509572593178234039958047348989688853017867135784151603817713308954316895378983741910583404090045681812103394396699368387063281974863241677612600262203494426787152979227722364453151727311396956848283549888874044378591105869024688809124387579889377494110340165788578533301181658994995107773076515188328720713161148340169086880530254049360288800118465988902816058954191533570678885892851362028821467656065749725489886762327765942379635217353649558904646749561767011250372092141141560614377058605636844923956984558226788074864757720401916848428282323132675931444421878493170470450558726299459792257962168965485659644654490779256208139799327640462411245377262263374513112685160938609458034615833564775405665432941150523526062492238693215965730252018916938262813602158416355001245549081617135687121163070278108319827854783883677538882118280962885619362031031653765611477610856449423094146412254911076411723786609849812366505372426751105771469438122853169128316199307832255655749545159987017516261628304702085640700248064707754909779568958099240226165818106473547523313437119734057619610326087793144176139839140677700473868445067880685910448955353448426684244617687512354593389742795780820551443729255129905320847950103138976116152234347675637141173063670476870056823316631156899679019208723482043702086782022296305575014380469382876140079904864799016345508498709145136009168277953264924366034446632915043855816759529793709006946327384195706466331148823161745008826918828406043230786039250697150575726955743359711841782896010185569088173350842927468866568608684555025112828709527693229785693941819507411969617543156839031329767107630343293668648149577439219109117102986477757739072885367425798404688242173033184826428855348214884314558763629770571722887825825137334393869927067077628212964422433130932259963890464759136263019310532879710025316353252264240166176769280219369165161244893692436417960899142030943078846037554374350602320850468460130528194351192455429319089190163520708283430762323375885793189044462438901808009117415370915545844302123899347394107798385145187705943591193340278765124024409518647882086346208265025801036229061783162350000387662718996760349770088121919636017339586623984048310933175711049753953664829246932277576637840524404259557529522046883187089713764325976199917073119734272851991178799858046890255926279875682093219348199697619790112797907588601530866986470085755518771031816683395754394627578669113478756040238635444816903803687057750977922175208175094724826958348313721289637338187351420727115666870559693619923834827861064596666864565208138555726753758706073755957703261826450329000668441134633417048165790777565462320426426626554324631065657998854694211009995353636969434161077096664432959250833817911523809482657984843633264634680113805535330106213575244296301315371154993017461676607415067928252281334583434474927799255166158645888059894753349906453510835075755816037115765341737807023863984214320745536185999580657121482692083944147073782087682654660725438510385873269058279056982372234962207465749507863062864453296248859759217995327084696409994118029360170544536127688950311160187923394666735128287139624837266475647785934988357711748214532181830742525912557046495345372730684113973382996568300995299638684004410381187458441950013355895788079046758284083775711985585724190891770623151406190291864788864211089836892044676985145216438691102861220600441744141859435787416306067080352358152871569563678224630441729968119983080757046132708394128286432558656658430966438481808832989556442767673404855783772558856886063324925933631867914925597802684503100094230872671003517885435641976104907960588104307171511192771417956585635859862108502116618158169864694464367361835525788694613137597779173113070050511140440853510965959901214237371053347838374457517846346723229937243638141234279956521279465826716644286599075806384146281407060280786051585013544564788298261909465175388494988666068164273500028976328046721278670833153242323455145236381364990178590843296201763715585194933875010973101838989035883288196943468623472700285473233466916344359507164032587504401100219678538688377218712263382462837584218059641834300069861296004470866276408186360119159305034190713409604329504768587961785428161019833946947348943483003352155287400637377110911766825219154266202438651549809636351179832832547958928515961857131627726251744912693181464023092623986921665286670113166652782329159989311424333662689357222809923805088905984400853295397887800253581115603514837010017846609800899556054839427029367509683614498697589639219376940170570009676105216962759008346821166669931094986887214587445007880128019967074812298592072448661739538526870097136743866830772900951792977056275583169413266305958724357522031193300798922056644725690593843593302326468252460651740369182465356980604970714780890625799391204227059855224785061685901035275676287398955529439690375922828151749341474101469196588288136713030671193642990730523325778062378602213861876199640604370030387976445594504744186125595538185213277858560512023440881002695851449038511874033132898115287774594441653574403125587313448709848540477268310854002057221614000724951069285497934362752401006702492198858159632871774052248394614015165613574481468257666691517737593012118356044048048429752333272840692635697787314399587885096548575107713120339983788374779183528005725585467384287584365924258169060523394009882563230733544531019124233558626145211662353669298064512911931050383005285595619634711276871336451266890768797613259313736973912172888509927462904109320798702643269004628662676162355444729590611244185181426879302668901226782328847802399688574870905111944036646966551214431718871994433881128255240929515575600366658782409916415332367313160976827097725551701267410215652845858386971598026536639573578786272347598695469864069428928471981014818053396863615588870650420336206722873455013676156860376658925350301719925765457180690410811774041759266815098687649224334826750498644531866048614703187627853506970098547273251200660013593742751895271236237362586768019769512364394873937142076540069149113148889763735685349609325404345548365509473244082809846137342171771967646810919684684270682244358051098159918634231518653154871613774153615833840313475218616938997466121991373942825454128075301653023243282139039942916018870879603041795105949535590419296870671165355072836062358083556810902056825600201508096706805698347679175083558263051950647621025555496052263639123823350281881361667154360565664281756972660617423135821051906470278381600249818345603846418026027057010504290958416672924756254969771678741124837179574436704747609244499365748129227265829741514435921904365729894190378313634343161846389688590104045198914752455115903371120102174964727144771245885696357673088840342321030642803898454561878473762299583323930923512833159484568627711151967006467092075481311479054061105921859113621618912824284450977318747340285937936128764656627407802013485700896141930884379675252518512209922463917478046274060338544255223454681860255169862415556410747909099504321935432730787018533733975794405980187479806703984387244921619098926462948936162601319454917329188860491181523198972845338199911491014698243521373255572828030837365959056541962331486438439560652451892868605602264746757913981700211401033166236369677258664517529629241105905148076676575693205169434134712124585264675673219458070888602944258884629308950551972511837046748468169123361401200882034154323202170143723933915269463006778106690427867849896455340975849988844466797235277994693511342214038180564821952979211156812242348163488057679166933592742388491513043082024982842135224390520868505826436619356835615567028433547455990867938053638392998732862686862323387985072136622767260954730819652431194876284062435649026140754909745278099777935442270289148113200337946712861889909211259110314619912848474512853094835792046377170722028825908506725926473905239262890078889574438865283484179829109912500519292429194094539346203692280017135423221826665602809364357909673306174081272152576125591947614529840158813394671815316573090751276415059115170704665532179067398901239892119179888894104143253467118197521839449658425659345682933799072366403787471479803041393748589283964036823847584257906773099864914783733647473590651843286055497644353292519136844648976205910871601114054403915595773764169735785714628266100450314107165539925337802383610411600826590005503543641997509013251720417099957754295257948005230225213551459162713092356003236300416764175515813804364938925053842453781392235848186721030591994597677634699326582879922127734601218180110626621623103610325660994863797484351611136542978951354357504800296161406768757042090569533835259865709447076479896391930694777478528203858133184526672103475949901391540463734730448703317296608913525834108104763596915939693030692565794697575986520800583187906395911203184284865393925724699953074356439271417588937238721258729427070927912682877385709783442543742088842770510105856529701134545700897982973025128237207111699688921900133423083600803590981500643175670037664251083552693030511996656559312814680837836232291384868423803576633402346284241368147090138596407519610412841931707602460460070149887628225392499106148524598771943797955816956672440909984502319399058707954376138822775291496446882630459139204409790574999488108398205918664541806678388745830766505463313290219589307994993180039507532754911727338340214005142762343205737694316885532991787253118416350169716956451482280042496627136395218896976122139577707438881449937791902057962900851754243043367990440972173109745834162805785088967338233682465204934539485109355519218651079070759650267484066512502658312672156071959826457075835781242074526189170355124089674066344785315386636224081186937890320564798094581805199011710874422393495819462429182134651409339166029848463681396543923666149656984323444120722295427187794911894326505581551496176002085871520882510703972374249234350632697807964441651137138643707999071016288322206690951898093517706214519568248924608769424276538467773316942810657918513113564704998320460139020912309216631268594611703707675266574541030886051531765212386781748606309054403674397744261297225705457104359040699562772691606743765544240317930882225470601680018463119095307746805230439363122236828723150172009899758322667150574737929193810647861278651900123081521706900388299613221159769149924558666969001898940626349427317659725875783637178971499380210374022056416561614570404582753468249184452945135760109977631245925777865665320462944530498241020819448635044354461677181053846230351348374101818307723318887095511020666389492061040727963269542378940628502690194553488688722647132109315008581423957050780623741133713830557694251439001218456433543999229989407701763260088433103399789978340563561176661211167098733856538063051166490986818826558095402300746437900244417910893476349186304944181192801951506851058043297279432298689997397821764220960176918578639929828073282376448507279468048269088741900622159121045654206313107293262734750013033808387503011774645809703672496747610550839011308057411958244678348431656418578460442914804521363811477183169488399502134350685245449234794671722902111776030884425395500184295469527707800990348253187832031757283259180842394457317101316639736169357959608279864424353089084092745346301283667333870961133668084117619099913459793652146709576480047389453524245154416992554749949862512437092603612591991191228527000433670485212943424533196836863826933718310250421393417243162629440567807679701398176832309362857847368988890620004618997297984467478455005573296146801741843505514410677657875363535687487415686568187884881392772660686255251179826194765637932252814805603107318318096916678641156453617404436495354677278205176648509453799227630077929034717381090546074826208797017863833384066620631678534750437761926454717166454679424625474628192130147707677722932409049305456798446787083531937712136055380295637963543170948515248978602391442056788324473802676384956370919426596838107305592581861394485890743042135935910156066162553410372411217059962979575956380966956586555712944925123149840869906501855876967969291675063429090194088601576226494110205194011041467784872666672548355071522844327345080758179714763721494499973417722518468952106707392591744342931055717636580975082456845637185545206488497932241297748670662823751161709695851207839709673112327574406258225420363007812838488543254117840285992198378643735069969564134576197521780633939709284342318981745758948930511809723950163446975660041707456950854926120452056960182382454551577906319393849217679745984773096375860148168308822251427735306651201237222034264050082606276198941973750748951695871907596425216262043033227818339578295484266350493702026728918040686759355639330556218504160361397620024248577209511562689609824752827583207037742502476525811140559224983664675814953205389450394866068119747718474739803816892255256328561281077316039812129586236593543463312232248648230506154662468010771738512380583522278778454026748853485067185201740245408405080723088753935420090051471748195439509734300310171384024539779898447330977905854602931256810365029138325543381135673558247777171201771442633140186965410930876247809639996334421996175974884342708571007169064406068559899950320999889259164561587582784081880836399590207125544099149037900341189958211749738441467878659036864083750723207880258306634209876622276958721308181181102988598869850104437478264079807886384511709804890398779555167116257734544926128222011854389007475688688333825422521127955631817507509170921683512451672115174988109623973257154148013281312783895480646800056075023925521141925693346016091353274488822622383754853386110523348175495700526287404698712860146196939774742694383234059015288489069365127283227421501955819389448592716413702756600483982792272317493990156724796171201739240089187007722637629376070756320962328379369176346984805789291949577293458881106483991224151527730112513827284779386719976099403479253118697431855698769787424051397700153074475917826772381009073761257917577536785414087517233778631310682834103572920279690234440007318276285018573883240174022846891763687637990190595863398510610630756183509777284610063310895705581515706348019205788238387718923660184934005007229544428912637293405288896537122677227824567828448692035935072298177278440773218340319934573185328263935978793965029242677733180453147450922099578552183604467743368867745857496457516502138809038700011891526036830416524209559208526478713243110004337292911572271526068695879528613469629796725436378299961945043278176677891564547127440888267660697596799544827614780156454727221592458728191488434079969214264056871079224150252588075546596838056970795512972111322599110918185643461270135937373906554544958146536719610701791424084043687805599501224326842145087969363923836364364486100535879930229247007946468604710388568588736507749984669132907150001247497238331741618105075582488559977542925238267667401683168986919385861344559051139171008872233532592637405639703197448568221429806367549848007809500238548498460764367978546096018403047914698713862988175216181041946117062143212012437909845937410460163294466796727812823881029655902046451686109616893410538849029517633857170611493709731308578849670692979268859649846922133771062322554754120933254063895504495890316369137341429348048949410841451537987358441731853835114061199022345436744068492237490493188654198612065240899586552837505196472413831224055779069638683890432605140281676032388582817769597054211369649580578899236943166924147536513614749795255671731944325520361194791994447058217165360770066081844845065204220464810490837267103249539726591888430100397371888202637319446366125593380429129379755615941736543252116268808716241221907183966535107716505657009651902120629040061620531517615902330907722255612286961873826581385867061248369973270229308370448209613046453986258153129116561487663709661216661134500515953537016797238885406937357207454242233712629670782555659026819599386851246195660008858950054278761836360645896200556002639201115351575596977349179154054754528582102226634253819980894674272419440691815304506575681598527469756507044929064256052912008134060380023897206590362234586499136362886321012495546143538532425631299361425279657296138832706209909301030618228386537692850983400959810723803731944517996055622077692670102407695623683580011565520325419655064195218911946796037217041742421089977941235186035263967780692399050054412234895059474499996020413661283243875401730153625937547573887353135029672204074408979907268042288414297299142270621225586364053901991154720224680685168932187800714871874259284874606199825562180281512061386130242354614479484449586736641728407756166662199577029454739027724817839526950460044351438636573821963686457173197087023678322928090357750493314884506620811650450788204793372635781351136528117852966938723879161748151145065360130971701469080385618888246375291587063851997853494959476628026427704535016631652181914333980739895061060395699150231214765237369711317888921066010279493829324865156561020131916134652918616173348172872096348589580790425612804383863785661645292265497624733757751145192917582322768649815335936193388875742434741569858241525002082909448616617977786994006855547899677805438774783229569737322256820316909440162691638811211700809124647948440245030461044159990257091175996363846546828006879377802551024739464396079384645408830418730190223179920798287333182738483779174365989152882754254036642422473392922201256859766923497720796249748813587634980658217922582866916281133190207526602770405842381075703815883718514510971272090901749730460380450512833099285671304736755045022567148138097490002753023812014037154556790807778466421192185259261017864257256525230360118761321636871339301297244671371970146213986309491512620922649754273049935696328261501109113067034807571652270927345974172237793417779583137266413249790579699312895355358041092074242871154343090907145572410288783142748499585285058811309367140547029369157561541849874931469144207298602644737502101185150460809116026520764949838900676047745576173521698883271654343033131348061257879404499908520659576083216600280725340262816874059074116573546210895300488938500582497351217670798825244383464669336714826562698283857213788931777779101750990433450635560891987990799250898360763422100486908438143589912665700491369367623785499887023526141355135058073085590512223510142246454838146661936211099493607838367842158524211965178899137551444514039142771564715840180896340192491016869934377317919940512695560664130142655910078636852449420696769800097262438131453310523783806238507986068907464264659039334147090851494047339735017506261176496617684571863242696718087248493536406740679906734198513613942892277491702822868403011003302717631424402987322684630594023156164274355679360510407518011152080169768738387428080318260355054394503578399209973347681647294182819242440152903941717730942149285377328313594473276494137002223532220407428227262585805315133827777385773404935193556582268987929876242440910467967058415061340665284700681356475817256777450094541741816870672873160961728545139635194182746115156902912159716901944895709076266998844871986942366533542012253499573973658027792633201477823217393937408267851676082068078494674179447507265662917947636434403220869778555192828940272563643022517615458513527790559087853223473649831335147971573635120634853775126214237434410569609294953533123328652243734083058008480025347033852303108005796783742774482043038737347699616791062059752250655330186745308695095286193666726510386136275503354923899919664444558109222105969858764046660038402081808722548482211848758940151476397234926196157785145668167120170483874773064355995353850468678506832097326716994330064040042563959437581864203800716946918795549452459839602893307623052177193371842574872631260769819744372357882632961482707056040091995980988089641544759033932279186192317946079475258925496469202493482133189591109409280753709738314859423075366752645909275273938330819504083296119604352441059724458651815540849655557494510561044600695782434035271255271784578334151324922288951442214714417937837942682525086151121234612195232864477538069953167382193542048348480154781102974776521444172696782998651723516821731024667274945331775569905689288051066717782914429799880954699865495860916715455216469744864892131891965299889928496276379580754543641091617578620694379007761099942068089182111635203714366488586941605108502104334997647526416574120948187375130537527938767617815937172786744719433210793765565950221059932418314116017731578971960529961079629043936081102028228412358774560322487765205003643213495468496055527901491282713652502581917143196101010028471725016738381553140068562676581996191547130603282907035283709378402282065282764581935466941588872160911538448599795006066058147983940832550060105512512489113104273689613144331029693012790773144237687451195009540842502634888139602902893779774010069602542906260757627826596396300704608701379184830977538548286234137697498119284355908087248113388048617099453339082914413281442283087628038002916486118854964494987007078966541407412192624662294179940602736166226312022866705225542085538702025332759549056612544661946087068886733446768161259816662685600548048351032548768609363925664646266956222676159379019393489484282041178814955879832056330305034282792728851609465240519001084607201551518100231495772639357084941077925272471232693098006869961712352785394496636615984180129280909143513959173845364919458248994585257847916475737831806591268215625364941165084158773583125614976621557646119302762596715993474848450224552546981682457677450590607703331383436214524305099262191544661120018597404432927240357144828949169063598137581603635406663133755356545090834314905215001749397850049406461762555803338461804707915209364400514390545373947059249787035069837050327307791529666223436288592244524598815410525589707549067762989443654607109361275053505802264660737871465468534228953399519340289757995548892663512342990850341036505379485769210586806864687230679121356481177353543174444828557782475610230529675542407563498490050365810978528704547241797310678989679035883236345985486848592350136610060697700875397743766918910403509857709596515923944970550800282350817109461501441902095048252973429870280718810320480519327462737377461428957631578607363154113278721416929664333451826983060715416354066191483558867744108630115442186152300179038707089350279076578740563520306530216942428559506031628418074356944090261970449844167699176452133273309793264420726886839422109675490881576634956164879751849992835035053358008012740389252674025793802000988198119220669232009379000937109707794098779925134674839564445338468383157953555732223000650784576735317972673704616927463512127385998506765254946988934400052876613922113684131939130914577946168690141253860485012617421733560509807707794352714540402675429495772897841014889276288681535336368252566155256378181820648650836702044727533948049162196778164611860108558321635118536335649329463199765095695747216646329027425524949244187856320174352587466018111646271285647223984031294508107844901222777842169093322027005423061274371848546102170310210569018366065082748200437155295375834929983873440269068538645199452231676970437358005717405159453462339892378735811546785654695445734255074290027973623472534934599716261622793097867511011753709470245823635756534389216314466174528033455500626875371188210306303344114784535292328540934843493678030296489581963902263096427780379957181079296240788056139641207984486570189470044387254420264141516204979576966115718134701818795881478595871142705885513723277379439715104101353888300317378514027197778322621402068462795966895345784332411865503453348141745002453718214388210877127554902981464427389851006903547708595639175422935052315973067356424243368138126715206122491752189187028258645357229926125991311295147734470276625623033758210602049186132707397719158332214936842310574538730784624243817512108582502779947041110344082439113886595346441607575109292773387125857950182024218007694367102267740417363023131933857719125264381026735340877207704354578932355341550144078055460750820363644541546980142143168337890315155373788413392486024357508388372547639525263889706045511171417844122666990183420288014039161641210935055592691424137460210339111816362242970283778422900079100200345855765029080462234033687707300378286426890300962094505398829028177773904090594823246392815133343367150133189765667308225494365891278928210672697364491886200529515581435611833590883186639119174288041711983187801239353585179914693682350727735268643870106084097036626956417043028731158245802060031922550691245271049455134041764218632296113216911272045646055071712476355931004556039046376319856081766993046403717476007377875734124170348000361790759560775503690633611245374143446886611871326222453583758701957930083201457133324677958525790122688812795069818726569844688019728537907169076320980092649984637187281031994686567697766850919749280601767093140334563152503499619657328600473830246423619507134199507815770199367995476515327847530205482272304144864854389686270839874731193028029465463601659619771152125132284570625926012457080283312093318320568433441775739709519666039209665078818873777282011888327085462205968250160075737822972898605286462762595157090815060067907929440029398872079349244873419414890534771713236050873235043254003403316675628498458913247620134798393408714070313051494951233330548534720009451605540802339657158560278117098802698861758203435626701034206011068797312064637498942506618248750676018116248678392423969852903642393154087035749952812477554033928194045414051728596800396226767390782671109186509291277886754995389981653423165959574123677377816104933864539029287634949025678681885730038225695040377397653201373144743565743985956969135638918159515592028717582936586771461173490315438678589843183444270112221025930583545294316676350939868762844774142547410108503881844260835150983421403236129329740067725415944451246816324194726422367649380875280564671360149892383509933710961289928772252399222626685990902418088870545370826223245641352784026486651943117193997924881477301799588047477278421899690633639868309507882438503137806678572941766877339737982929964088071374064273936523814666677659905640662624142850730410291010354434200706113574750830785075303001380168244338463583784212815412231013693458990876109375293555249500882116170204138653231834688923728615624641455148829252752793800477476535022730516064557353620250045508031689238067998354396681049225246794120134026534313717043021267348578944204348457372764918245898721912066760181594968912493291590690499165209050333336608381346706368458506193709439085644100204060539671085180680392331726033381345593740708100058057221089441317514467322074522383471047527697329057708824387037596898937535687795748490742390480524956930142286184668292840421676935663169098148804100997939233587954416445072545845902315625220253127867109528268749386868874093733088918794342581244588415475527552162969991619545460876554308997142932905495309460009348975765558688525720997078042142370276370151191442796911680065251000645334243690095434834780765046850335536641106293436933461861006004166456402685831897946226776772217709618984251389658630534959012823515344802158812623703076536517573078179592641283841789298294148783957450085376198454855640043187840558184973744624274677770294514114182240116481925808364675798450174093780312998779956609570627300827800225725828836367616111434811039906709140002166390019302860137170189008419676040823924280360328364076202711476343353636103310225128409156459619440815751121426997195047519736525638320905347128576104919713866558775394507164674438367956179054789025492167120450716928667349596948814082520609432832169317071127840986859610163154021689734652225176665947340416553183509918362364242574531963022673042756759314607072170671319028107121973064896875056174587475294792944213400255821347801268095404141878892975090535691670615575365666251663689790433202555433984895254335782526084234392301556209250895609620901874964058321509822614270097404665930566812840814963033595306571892512176584253789746533213718826321536466357430021274519119627750540393281389557419444523945751883727855961104587242292885066545598846386930224878373910537201518802709098204035392409154687334940582900362509025072863290247052920897801008846543919634484601511230457641395256864759505100165830414808543932458680552181046407638748425487925782953472618800136023396797879904218670370603964806143646210600832286232605336971663386457242729178122486044747735238744005906847087016552589362538579946804519030407577561074033455053319589515089472138570587585767907320042873834214697052478652200067480117604868098993311063832237717985722931577854897277374949874702491455597984753494510349489082831269889267199758553695928747683439428415431379905531123621122894348935992366465030864764176039661750240710174014923558475516922689313358391658677428225848154486566924267855686786027147983952141358444344976125445211083804573628431515056664037742064337193630743138596279217965750402286203444552601702773646744761299145357985087579588101060574541065083463715731904041600002129562474887849364174499388796837456530170570703838984091626703294420199446979048150973101653394164861523310933444001530030017060985075375679504761114413994310244039972253111042014777676943714129593725814590821254226859006913326397118063550022390153488823889682203559096052059647721773937239133229440335905466068094333264426555494728533860001381931567752270081748095350569542548799654840854727540788869515173055748391447501290813049511386521643967142777060574814708268375182237140008735347214900054021492146788705642108007179562264553400881004755679878488406939152598861034781402233065715163956599720885652362105905434103703370339230316895978080462284461032966458711519159357894107143156433859558825070146041826115514082110504071178994720848010073100562326206062272348835328125080650229026700365845088973716911381573270903257501176575728646023986072452783434112596838064561205223799166872052965859974350750388383202192349322253909342527298506432366131360932169003716558264292028052200881666160919134561224272278440066613420408668775098611593961771836221982035387622040260036064727767460293625712169902378556193382157685714006290223389891103506445311098927220211517957113466583306292855418395782838313914603257304880080680462357812958574293088255298131346484513601670239006620122760337707491465012470656167340910784393663207964796742908227920463492251558968077192598593814864498162104225229507491782029208289252785127598157762016095942015613265384608298479401442600027175598996094055252614991218196594184828869545571644382769761512280208771233906438727482233711886350420883433733422208710833496550230291854201660861000266485898315844388947071296788956462233028587363445613911460884993822401299913210575315744917778112063272643970057337307624488319894715360742610339251530783277219644455117803372488073063785459939790514496057153023956924900538303317663786588984961573753128404004804952050822660054051347767777751205413874926112567346153622606889591160699642571730991503260954352988473838030441640950036255797455513266406979401233883157030587738712055918231545041008451926542672848038496966393184167546075647367485775530060754223646946147150139687650001763614424733301414926378129028230793074873221837925332901055292848813121014681253390309389092561442159237037722038881826610505463134025219696253332536941361681078929680128019867242941139207115844479594549663212399783703791434293071703915807452075500581316101876429597910435119569598346838174336703120105142205445659926693984684066454528714901243944318534682898560428859896226075964406872933257181745441684814163376226983115584004477097411854793638610562637314543494064617823743881415301456095919137086265371237807224903645921041311103017971427771179114799093203652995370824898424857943939661849763169595058410186021362683724027518000972489314705560683367402654087142720381860000846566993446518332297131078521167216234372673098334753914054112536472458531947647428708727234802133162828335886933748763132685544394619260231195203206967171716340105049836959773855840680812085001960827149047273536961008030949171577301849500821967295390667311682785969187847160707821703925946730289039121567562774335042648271336468487909115331064894456627485493172781973319938057764997938088491607176439997453088040094459883414510671845755175245477402928722044858839093757030082821388124957321550663386081524661235703387476082623329948754725368084011316976197893130915731776791631185299134977065335144466646719323080194332751454570424078557888153049607936092425856363988243061468470863568881163906684305546806470521425914482025112371970911440971284866899298757389872982580083974353211611267381898231210098487640903333554316339552074759724113217064924857340360798801050411572696449685482943587525550799724293155507434166858466300233409772359321447854608468832891618735414970812009209777249855571752482610187291615081487887658909183412464134945749672469428193382974742095079517003487281602499820035953052842463141905837113817104452748637863073428785687588767835625992737842281917456314656473513840981204306298601610599356027099395878584423123925810028270972781814165763781424029783724293107924169541379972776943448139383715929081876451052581087085912590820850593943976456321803550462405838047860880446471826944736523401517518940929773707318709521446682136316591117352929395012109915646580033790515823998164685220975303283856641859519054720503864020060211138909707189821064309488743194973627875057492039738977362558732063392617212420646644262525448686506695903260646504545820055855169750619741446170756149413763792697519967934587174416506903305042106378857455873788108147366802155634926054300149809826759161446202641444081873772927301665103027363393701434841650847841170155373784362575711002371661034127385948292538282416935327846168453672572881303899259589173800435337822804102316988668995494518514785918546745899381844992417980706337341344542662727940545749306023196915104366810876688253027502818640019395917644268216564871044534887292472408214385050634244840872663952558314679929030441721813532522029861436265009671212643065829213164838542739880990548857370499047353246760883524065030735440887660214359651514830089797583285129570279009821576156518646610508670383728217761152610731791757966736609909167104815489001646560422646932703190102848382013297854676669484508878825092182815326003774185178535152207843120058084279089395252881326852326763783951985085994643548784598640240637806800996834180689362821078683601064661191347431843297805921110173476375470151141566324713237632705792018266616631377838345433200079777999698378588798481559859473406978101251033396754918013279814352993158188981042913134711678979681089587091528395054287865541797949471842244350193297631800302535726105264511324456388792743077532571893086627166407284450037061231442452231227878186098674480783927542022114701815966634615758280360330677045546815836181437590129632542881471489465973768582841536380571153899957444087638996110172540109516895235391620393358276850502915776806358123787937550669949549140696958914926423831473652395786517334795198733629224718840435848859836343107620452281848408007800394126056317046645244508182045813503619557941160288010153751225291777726473231473129878777381994771122171351103398763911325770583930448996085375090000947070878081887402008501919705974953223091646270558195850487407192125844286582032732217627263694596419090692049832952269234541667950531578847896209736634609976497312088376481957568033003491126375626284477633595668384078930536093770014175441599896948245213730308474454208270900657198808256898082793014355253125460424386536602119942400881476062827249580263278873734651735802575101407049358626622333601494664340888068232672641727195986174559959922037921393178023022366968618741098954615171513458828008969496759768381475813443870135461073231152596672823854365829059301597760566179210316827455464594348071920854619388708038031002466576803323587807568497180125001223748288520592550625631475870408695004116748921290959065620771357079230661673041110489657895042572255427709953099662983314011885043905887999323522748696235762638354462241671860150329803668192205652216543117112935230896158356234316856972451992533403810411441424728495434883552695922294796187291783047197578402038820628812102388332573205638903287134526330130476610749834117647369234405368299129633631803927514181258619027704143559367647049016854968026952800245052609664089618047160339707455560550678162360276835117421312303372453067398189939343776456195434721789361432514827967118697418527674296628803393516426193066584064309615550318777661138520715686407528886654012568900649684026192167013452600234528274097089152800157381367846604266773456146090678581541779985693476060247358823863964706923134371927888283776877411585586443487285887201919603792717649515429510046609895086731693542313944569846365429673194577764145359091286508307672318586467131862003948126116918207605493430911360913156905857372954850262518637990427165253121651729914234853694049521636465779179653032464736484662405606720935002809827498479231206982733363002312491513396479444716697878832204774235787358140093383474623513012362320333994606614945016053072483976841313820302680720817616027518068771808689673888052686895990386174568990816726128562486732485766722660760018757795471509899401658459890525369836333112527472539476669983054996482569844139396413518632905186252006084340898611189017091204324970071561052169784099539588868775227366035377905871502795692990523252976034492214031653719773517409338068839054447712441836686142342361933908144827538475304185190878758039552597126821450091739767934808911497108352940058569309344596661660906027862513414008817660832628790272372932474542325773114692280823501136139893180253431403904681841501734763685061769013505408644787923400261521920076377827062745937605491127381228492427879886518844263950115009593010942681109439898803663320920084055565824321813441962343459713266255154067488541230341057092441606227543279030703384233531169572067503749107713302347916801063314096892985771472095469830072974048677373825594066506969204941595630477625383582040684626034808512035074409734461952430226411252952159330890451562449193796448155929313345934766743040799414881139567634933828826545982751563468010064221205933465223104372415043888571217663396235057017476055723462404713105966936192651305108461180285432702809728311192293988874068741819766746944440300886280293276965426512523683456950290978232515298192275240851324278800923308892809959644306692912192568429679891291506051508768206789913876186522302475979649594278659378276177616130411457040983764250527989858912953889006713942838212375973022672750759843933756270226409165060515023605034902376693242037867832557906345358956472744745604305999121431043427020941672230019289500451493470529151139990715329160328988026863105436275607667372746143196477394176029375676978563633128187449561267978767552840775967680898551149007992331475776154864201972048090658310842413044634470967712550704231166801338691680897526635234225884912742713009178998965294616876046443847972863550434063279897738424835806355509167841410484323255725314224223795930045681484828192352029678151839569818152722165824422382452383888756308072657871490140588769981875227641303851583555994807244560273259933671757083243340990312442450947386700928003453177414503920040929073275458409068633685037026641648519299858764051462036742808581350885218986715416663389528770633150974712154678577458337962620897967328071332579463590162560034777080224872029597593532027170717872071119461816699804942282883374008830060292485370186244617687584273229078025512348060524603806585800137883470521720585379633995523758642387745565189543739170269022308609454115836025212069392699693335696716982945114164706109603980440264885139989928831462090239608257360820430331691288609801959099561787013043732284322002633400543870661042416376875035387781355594391982026140768563903481821072548969426820775292658374660977610562918651192365746328407739927312855278507585603944827767214811145876142015177471896665117089738186860613582222838218930448141979043973559687884002317978658887930635140514697836823194099714833042105690645351446645160049912028246622897870523699668745894152083168453933814703769461328152631081592701050551466926098500595611118787049705340197055414662525168238865064036131650731922133799673746163040276600264979562660460870200495110004528643679813428149721962937770443290303027231869215774786578109538465078530306146150597129830711112974559762802069450815348045249820323605056853536663049577773768484728582941877258488925967797575073188392293644259458679306662331885729159630463371446990440702286445017423195273260078575794057312862935240748098870703518555279061788020187159878404578271763523839928559665132533780096052422576433628248066628752131097573765454647249458032113927710722731546624035009482112956665996333767416188462943775600803347506520085654612642460185389194228665058338313481588418032625811119795464978132337370496149981974521166355401380787982000815936886189997048817194150422625145288834708492760661758067297524173888744805129498011064609005776875156207189390123967240734184211177894743480822603861492649215272753590050406685092874246965372064907801892796922966340573826297823589476951626381501904880132158050274141381494831819745033470234899913455174399166898403283568020139402574116921682617334566401882275315447425593479947921060212750923738036055431925021283479918944237757947016135909391822621265095392633069555656329817306350795599412118546632528447807917544802400283301834527560378348609960013512285471762507791967449774185924089284004297447778648037160931715481273728443074865924380865786136410340901883109574618762151654168284800951720015106490543146847518107771136905270151241705098992970147716412266906216305034250748986950573891069681231625514571416164472539663767602049995848582212738475267940367012240135678577124713353525407944688799648914466221350757183845439902780594380259579257044701188383104411174080325452621574147068634831085229554590116060187245555674545271025551784424437496097300459433413082096313379147027740106829458316823459903714630601776359350317666818172153505589583312548782652102519756312904908596795341747967955034584347288977467666445289382467297441615651368065210888459973684784278600406741988546461882162280555469811112497528946261188000601780950681344142456937393878213187103593416989721477384511958005063271514347488114235958737106920586267341930154928914128513940902450285877393728911924070288331512408764449136670144870095839630504829478103622796140118156699429277224023388255401413907086318770764275120339101831008418878791549064495717321380428403630322588444275472450634830323161252937342728176934271117348598200346875490207716256517386972039904556039232417317331924097638186924807059033249893360006560127957960879883885546567841802050484128308189750309661598305196133824751351129990633587545017891000906185430464455192785374268363254448132401149229452560712619267058949347598432771629923596439340919959104715002010324235286800496621884928431071933774220654466209730399040995559430408289432234616517529039666159417293624400798510582484049010312492213032190081973057372398986416406779069679415102876133827301064728297117435711239493503069076681914927493635363170755245299661221424885009250530473634058520674701161398177065958221078877017383577675427306936732680765635800482349407551784211633888597551928710580160396866711410162083674014113291589407505973638846752686444378591474049920255820324496783901120393845681753474202802258912086844673680978568972592716331861713853256375189284808532912769853044819459803255802516646476358817101288407048199264081857300282863015990936951036505173649281268690189217041625043342861749011139966933742449696316080491928151099753212509803933950622105616794186541454281329669412837440384385412521287008183065007305886335847119720320297323365225350849309090896281297208429599509306643882571114843922337438902311073409061940705681197052634874247027079104273019118635998625316355010802735162287014137400396889454573788227757959936313357653518867799956407806664651682698476608009561986702917510845681961169445876439198814863001247736161278294725945206876965332624580457363049035583090688597174715978426228097804496516445444885049959941398547410132047686766071632165932556948908495151510515964668257316045268832895929296491453245090196897225945211589035220201702362297535325301956408737556803413575107016060581922806401054019916782357490894635925063533515068840383921359368682647395481277413254654541198915017905700934252218598998156840069675513249590140357037414968345916066208835645722216872619529578815279152821915281460372706733718992678045633377589584081204887946179831634987881598197942317293070232045206779267440660391026793301865010566839945838007476427483972581192978137402104873671616069041447013545169427022587773560618714872710397473806349749337103171257541146648831761309912622685212077740651641038782953056744370908408735987713640568549023585868923886172232784729482674231248847841197428153652542601647352225590480840608271957616095674636546103061355618174913808020069842429169523144584808747650814080983387655988349375042603034409301942141078972584880384336075564462387181358945773322374440657600954254308767959839662133622811322523847296496802475163342032057410921006515333470336109872781417671327182661018461383689416705883581140430737416309239016120123417303302438143113379154585507859543296523732655047916392726880587212803325672968475719474544602390196431915463621551246097369356032094359853276401426381698621929898632770479241035411804808523058914786546951196609876883002587944432820411324717043836660370760722547702537643233008325675854567081030263799308037875394786478588817611672553372843314762237852355522935697888199023013917403901235458840269947047814514131490125149415931068796344888866306514823755726843311971518643167757464001726113721140851407218389775903948970179678900726235259208219372188467405711329392346822437220932430685338079056507514808636041662393473290866484977009592606543087088813612978223854597518054981642569249011678049448186175408254585195221469687270459711260033519038454683465802261614036519239150538920013973695134553287359542746657765832531041968237867179515018162197775858274202248898667138925068624295929007570485372310205503883305582833365405559687773399194203116759664486046400510756191022168897984790446690006239908382725848019276783958636071918058332507996604662041448065977420119724999597588001680394836848629495981826887646612911952628161305789560182811629381211250607970877666345108904828829779024825628425278078786804689377251823899690946974158905957556429087501542762724020581395613486801463560781677259335924796168991308466851848533919519959478565281836862301186539799770091583492778522697277747344033362246953042316358584401054856329596556693548670091770574867207826417272147803156774295114032177217829812464785656071034609907130659763982316067055560695801646456305661361981717594877452159839375218651821548504985041229822365570482780363174445099046863370083833371650730754608655315077958860498122214096347515805879211810062443259324226448510347691262065656204648497746051083157747218327391943143224563233097070638388701218011041693291319769167951524942104930362899248145252034328390083360476094829554282973314838840399441169649925512039842197992621768856811296923087494606575723020174787972633870253843986467888882853077712340880527057193908971587946049451673313197666082649929446593487961288414236892636228450593600654344780230241369787375823055640715006555335734105917027410691918772838919449599129060912891669768522377698231977613710702579718962358736004174767187446606066761603798218513982381012474121416228794944680360142063320145819130801133726410343712311071882281598160507109406866765997864572801228902015640350152502764038597279449855108389529200217208728960933701870880871195426979657219391224393147654412909577387750747222440082502726721315243005387377051126486049664032325624158432697294441476673186754199215705221217243301868577404357977694195090541525843242261570032536995009437672974688542949746795882945786834134645700275503777670085733808502395459212902082004990921698906591441917451773861087138958674867893574399965763145920970074804900522343899038263350440486290610286097699668118192824792199367046040048475994471614605538442567050841478909083198663523752092045076141932618087015541161051001198992506405829720011025279410362643666820270017957042838189657262184485668673733540673353272998666843029353555586622847995678409590974136854202744768733418998317292320915563033527468550626362567383064078843445739031192225741801454307730046328038799628599097248754296785592344429462009477141826675191268637070554334011869795655052470462391501814078701420320573609750186821447822043263495162749770229392300461545789495355185729063374721812549972246360037541171697610735881843654050901367622704839884587945211458523869713475256403454057135963411171145612707401127373997275113269145715368334030090306582773092673804261666827284878136004121136456476138941592799190340068080632405812201415717081393793091888083523792818824657621778830105460902227357260091241486849973075143181864511903838339420406006866687633326664511416064285874700372816424206779217292603186340031076827850657247019549163223301027514204781348372446473072666449308937646810920575843885180861630560160664843316222297337377068066775899167786742751971813358573375403806664040888230252545883134371202789922041394203543787847311806952038107846171818930181433219311938322298802581639992223386898872527922706940614965403262159850523897174118057777505018173372025082158661071878930181220915001087319318430194940828363865415684005024495988830987436095217393983920659483911806188892146497683198947872819140529947548175519108605998494651075962883125115345534723244268747367603080902667435543679109002994136390730486541876507480714567968439362216394002086225543825930627286525514427055679805655808858380539770904497348619327588664538403621695850646690103555205394842424736193688108614804889457315108755387912423437633195815254565987028911895298660050918216289427489205299908408753788446528570836396487786236452289439658136012820009413013808309037348927026514542128276388928990696186268664196165342255181798492995524101086776124662784170326022528195195134451665735322846850407077789179577936095787167585855798335946311346577879217707705039258902020847223792797204632036441087255556692614673341526118344122456986295187970820924785059345592698463807650561618421817980129010278658974186001737423431616300355328513201240859633157132314739127759180123419878848342789744618294202535988309684273209086613405954256290778485353751997937524526194551482055405638004720257545895978229396702626454552786160656237293023557077750387935176097152413799897438097144425161296835938546172897476007952648205623870847815804864921407803438133618594063145954245906126785281841650054118101880659036581910050126951699476361476021865953687733121717289425449944029338422430191739582317721044780958399005793231460651046683208547136633906437266816812688445376954261191708302211278595287597229941092953625507606465603888736888085615737801704857827047014365563857484269881555385966596515427938389324935748234671468451557365519373157373021940477169202030722278770150766407542981205346714433165552377613218608155586304036944050246365929539429156501975526582060331906752542921147201152804528710070407374355232583054239070903064214716267646308013230338907511894817258634145318698555702668194920343541034539253552276775725480597695432259281729989809990893051400275049206191295198026657323201640344167819612176005505290096447734610023110470213442595697973212654205599624688796283763862881518278732393142573648582492724550198044333688203553174019152582577553094646378618004061107727616519126798873670687534907731530422840372249342304249578472577421436119142299404130570643953444894662976466776669310818302876655522205401888494017872238648245903807533453283737576580526142221979317949273900403340247075761297946753324088923011121592681741842103246215973986133727369857661802506571370696630071023318145358497468840438378843864591208501809780178310016547907677168949294867297681903947705381834419102539778278629441551919340023902656939546529931249403167421859133044092009608963536778249221296059408312600621427023789491063415342367195092685322672014511088327237154434656429010902289894388947646981956381223618014539400994766949661185217554385422840654787939009429724654654260213475291913585221633755255546744920137460332538922660940386739122129960855882111393902786858854996114811188791160974906213458419134277463319917794570744062485454342088892736978851310590477938869609435392867697191346249256236426978887811144174230545217470834533234816947629405868802122925288093868305392947327372689352228291641379568280288036623833623925144059074170377361367770228798350334781843065581839630680366411778741915679723181085845488204909267293096903970598014242514419179611841475131070678439448813102344080772453630829528789537552921517568165959465958035520626853903705882199387151634416253317025214994762677900470411219457079763227897314392811531957522405768193577996318333244226796431966852549976458435849523465608528408106284643503119711583890935778370808796265799670167398325672007778363301129709268435342043786793076302177353902180291821143821457487794253623073207805456709818858128002601198174903716207152389545474799789258501252969860685185146590856961620548800575384912954467357744202172338558928734226472766633338693877281442428527374902738713932783942404496915620986071257382399348153522046665933495909474034858425680564137333025322333942371066645315915031511323484977037332959710065365610272068387446760408354404469700528902180931763606435868063664958436255238951684359121388687880658653995323878749646213775708198824309912950825073542248825924463464127215222811888232770096838373278039967330168329746613964753989513624416302234090042545664136074720314301627137232318654249363231508580039839090887264109551660222621108329759189101022731865809321222800925075174854607752339585212321124730740855655742903193733357556133771565389294327120374388839506297196886103879952245610278884718129058577999690220144340240533294716968169547197759582012381308301660214527147076559340793221667633876577616930636867669273574225775292989967663131410747007389181382119592074354627869667144858112981861488750958610590383204448166387421661372336114606920208288762767203539726959347566968624713356388498919284675939675546168873720037912097839949720972472486750841396009103945178534451133263657290536160762118578873468986838640108665859754566039004871892922518964807905270923852903956488584346734346719098621755512429988291354775051411159782672290942614660520782106173238170206842500576960847180960437637089913916294135855083087321675330413767295165879366510430627733991920289929550992313206928898456705278852385405064802713959338390020972413173070048778025827944307463377307547673994053003370353778051186277607930224957648766042623167631635300918104267450010053465168464969831435958151878154575804536065270512480622260823062696849321328477198096681985111092541309633331673253919417276767865397206154622470982884449712066974935072784523597173451039389888872548592383277321583763844086421867707402608780726358463757312379978619737555983909754739875954912151502415844040567148131409487542017684382289648783848725159874848920359923917222711391701330544423835069761093451244272197726145289538667028222606707685695860548999081134482477551611424095481522775570954108192191358017237067757860912308313147638125325407982082762901672785944780214813571843786506661084483200769101087121586576970296512283693667768909169332741314182553590232799850220078997224630817348712058349737253786279514482057593572109339223696883801189665851874308208929350376116776681698703774708324521292842618799703720825766387496792429138237314219867860528138685342278540888462590396007744326125002691910484426807662982312179900101806719251804144248289071573695586493785832195902068513326531587615286401994851915248982628458346886552354698123179935712979944275024617784180778726947820232141861589030826965439709706927887402100026447981850989424012459215618202198129806138364469129295701729936442191913380547042605381911648162597664888498508162430000175838992985759027610072696912057860713799791945426013356309561578811991720009548160706715667359264952001647501595146266692642075203471383580202289014125215519874304050549073719532247514612864349679191567655271283591783830650907889767123539636845320773622386729200021611595869124165776394640154725584689064126953165485094965305063521096271709698088152121742892633573952830823462631833572996329980461486288606261602103777570173374357788667972882450825805598414821306191599675559142100451918064027132758910060469455199925416080133100657985575392836759050676644266492933834071916342491863227503074493218883498175343647235793270575590521989642093366613029150684778400932716582283925180659105004078638595350499996673784464622076645112453763419624587010094475812862666291214457791938826011046375860226266035568102681186309266524701871523011394916193143894739409861281858690751069607530215825863528485301100783216604980120802366423674322341268704989804518675288031624317025961910053367206611808804891109971405023336905030888956966320002040159385736421197033508610806783427692905482147185260883162466793781235488668510522158822888665620345563207419959309285301992112216646652925762049875229916178225176864823479167096218260262158003763569221796969861909857370718702479751335592245883989282632339927165078020786115717722022422893371783528356325449587798802272874277973016672659108614925460896806810574653198745449851607727899448309525028017965799198141415303577393862887660028249617490309591319020643342031920569028909096823180230918866850172485845137025101631806312662071508030267621621237624360214166407275590373595845818501764123556274486352449970620593489737412015145405757159122978747870529612639339674664618299884534326864760635778245946662786680788860014059751213733647764940471474336510258141220433659357129396031235550403311002162620231034661904355233573221654858733862546496267787880499859111872338590399168177779547923576836508958786525974439613189533845124998561326021983157668665845233000933808679454056106264906676410531424726377438343806311823177782638482467836459099316688508768896030438704219530250565571411297560979443273381641381527001747658723784537679516571172618090238251888354811865608539404218947809560293915651781130317351479995691340937285409332934344042802865319128508545921517025887642083191006312485457832515720172459356781963929473691698468911073386396590206537940711298951050072300428204469675724924055327913871523333270692160401452839202008370940879208584549001151120185189076006529885918947256939439466200129217845577900468440891784417057307299310567740787487440655574231735238842480971548040561137994766782158460876126142072825745059112160386224221981939009427180267146405628444772136487731478531795219832870433588269829154119521632463358411098020806085542904026962401399505561841978760352635786870190779930963665743493887505093523736789733017583975148078379766606237789786611701509448552489177801301466568382030439900883559107321844796079717731045015807308622648554675217008509987633004482728828982026470097126884353782363499124317378286851667044018666246003869351204090169036666601384411861834509049982182689592100604391319996639230196568819048401762193356569596698242760818701694906539644246888295765869676932723888441911989652046521194417536817809695207464609265213491825541634010788565519822453272461493869462683059715929930494067362324043420667101764681666758143344799155175088350752644562857990291306642774977872114794951026146436584308271916858843686139671183913652000899674061459651264194636953385307016422100472719346880085093031415369776542298494586368747446505704512688767928399125512688152104857559578743018173760313946126964785644839299363216315069734062971209415726370915661349222935273574595485518884384418573419654692552859420728529564138115665636119768102369372346271440591925689655989088107170414305837198370099667030804434689163888335864194140730377789372299714998896453329320034903628301964983852901518509960654614206757682992409803655505836184894955076677722600943568644173372343177859207927776704502706782821436391805357711171918986605751183484289840190786599567581201332967196628433084916231123212139541557785636940542948836731181132806754729386091081444298720426795850701729538472048571113786407085258225557438701344160968535854626265334468700160709758546040228251252755313809511148533204874958606704509577565382022436240676490517357149505248819465308527548628126752812653639554851947016348653911591848127340631155063900819960759412974347861926899173315571507899546720143560172999465607758653132601566947779650003754681117936413216147785921525217859395381035066285098500081946625229641260441718035097228482196057705598985224505140975865540413260628882734791101254476003169921808867958700084219956641501046314585584500849346432332879868021948783183328369126115828329706666690478577642051385780763498667018732773729719981271278502878285958065415255328437140661892805074008565316951819487570201996607303458266239917458425057805565135169749383560105265495891520938867451506568720803284463749056263584301844938422289561163157394218471791539109108489048731207351908420026905026666471206403476167096728943439330353133271715931443742723300107523270667195694674562324977716278256964120493935400310597881954642401817574339516296797509897683804621940386035566966306460229793073307815216986570682756275351883113224632127896588473773736325106464621733405910384435602787970172588240837240944887620239786784784244515728236329237190806029794824971804423785960690157030126909021876916686280195154055933020946729361008830965140224445143441650828104170247325500919827116102086200258333179767907211771841628174263318628675165199813884634861359005984982054896082515219441914589319335007296128235172148995700093258694270143262910313794451436417201998074302371366632825673298896724467395287888065566345416075814534413731318608427930387036827945045663746253916542069484371877211548402082819511978145617059876400686260121412756854066249647375317876643779603133574190515498772423960014039829903961026140859705993699214668591460227066974790363039607832896113753637329550815898963143349744980240385430314865553396196887572185775281235400194259483585169383876651101205768493180518395998874206325757188698193582634010347864580555067608486409709155034586929002690089456229398705183785397652181200917490352534235891690157951750766955204544411496069014473765307318773672747834174815217087788524237499654908701910510182299711652581473695227952422991334554141909491139260663985292634789970907469822448924451140075299080944575963943615294803768738036508842518028038043337226464037552391933983957265350014471321149998600070742311839073146107574749046604884674949875128383030126921684131481837157780147108014915562936769630476929744881368253959627833642495666276727180750057355222778435777796377137437469535022924803841380259070772782155000972498804223382235112406185979038172515510828844785370753411439868272323219360921459192720376761456019926211843835218122573642098335241364732542019939724822763586917450040740944839104798012660276767741266448539157573350003709700920786464135522060234327854029303895111037623851637655766758928902737785181662889114110976828081500721904036831507909440386125212358077863901048103659784264580987735654000380996356033320516534527825288147168067352705487516851704425905423067286671735216883436487834415739749833713022210256732545133678672087948772805686729581778912387092690369761049158177953046285599210327261330383673014836900783900533490791578195108272322158412314480847936993487766065334363815205695000718688251690640916209950064775108805426471193908881288616655951932159827778617181065528718834906735517964705943831179956118510822008474454139431920284120391920318005378712204879411578731666456337987125646739618500727342513583162992498166375577366357851974718714780447277277175187776599811355621703935559306597604738427226154680955174811599402629971535115400032702285434177339045603061287618200101922896198239785415024767391637605580187460523825443784150942845668862879801092070335543379466809706761833044869774966401652132226047562478553820737181689232240274514970191702173872499444762573184909454170064651512237286467688270003974100112814161196201386729161403557305865774283717096959646679526052217861628771915103551195281236465731560727421101797045611965740890149125810260826237460460756748126464186171165949405938649856179856953204679273681597247527608177382607827483711790171067059195957987244626086848468154833929730073376459701506585937828643172394677972030343206513634428590763734994099577726818150193632304281231747030431418337680048177697596298955780243274506023466547348860299161469654707054560922996961517869462475858631878738069031844219340742444156499215817271910521215457256433591869789167062775654245003466091575273537739654801331889138887926933258467414567823863819284152983691681481726206012128519699040537011000982202832573562193574851321371133924129522592031812479042492821331539468849682168263228769449255809586785228428607037696080956920414132375176090452970798149309435911624655000046387229421095817365404929667138770486082537085089217997431018293077987455360266547988191383034473483824689675163097948285084133027510842090103331858960042038355419779616619108327508457582522712940342906249992447956911058651798191321580619232279777357784791833325273804588576528306029746886597886441833755377739059412606418450788177770040450001362297896253976573222124094672991281785011444426200072378184490427289482872695352759673980645478933581643048133406275340636896775050345934593979598776575247026022625503562766853709696525140407303441646135520686687226605642275282744369511270381141826401890694824936158243627219452348578901202172226378427127187413678447684117573355664963189793543648472765477181447861727231382522122410813583938338370993432586402527364433513777404464252512091103997651202929243785352044803346966200803755244764542565589789537917213743301142785732563360146000591418193117663596940661187668826392810554412328766993156401647294547234464279462387710806462374392987808005500647643072291648063215135330617982045343757714380194016397189260118481184418685567312896576948241571020745267391689895751933697062384329150948802401309306857096999550070463726059353885612864687849550646711358254103273845736431326379892381071830573068890783884138871844229057788090928046265760445367842877368871436920284945998496232550959034071115311140451616231444381620156026196375703416069676292219008336616895198423807602416001941292743281937894502716585221422028913110500151085257689126732673612259687052700485182688578404392827436547413441413759501092719147454340641087135478981589545855775800161203063283664830381498667939441918608672367992431648935241399421800969667049011724969192555347212376876409679648683124128415332805453255157553899060353235958654289889009713516526102299822448695557764175903739015417592422142245492328857403030411900498914813806300305503249201576741628402578363860471774018886466029785529607972993950013003494308869721327974485477466443851376457083245600465601568119310660220667506036164287654661049801748746229753581780466396201772998764643203673397804625851452226069605100675820324659934953452957121130519880072094731183846580110517777293480445787941668749706673799080260111573406027499124443585365010929178357365123053116011134090967147323750449923781296473139480778837808017396909045534424288770218112587214278174488463601816526687935914567596990740660907262799739953972606409923217408085914707083544719766298180263032976196450902353258309179768692509970455373917516160982072457277541923111819904831172088530333285446388549846168917898740339428877308450257651413593437708846080417055447985407911808660815170960088177911624092131671018898763665866962346561478581537043322078848734726931878342311442590884760365570092246110584043295567829349162857018113607158111894237318880466065026541753308948867200468276419781359054440869917087230157081079575812096560963029345005330076330492095795914098974858456198075712177130691443919447324675515939858111144166873636163320809135865641783788241842652726790547755481641892076487103526069596867173691651692000157382406063531256504358966798222123374559226232892274948420865375999446397011634071614136152353708286299778389839848094841423146137714372036567281478496195808056678997534749238280048482511983401484671272889190320475076849145115197863469603733017518870534042371692811892306841646763982231758378551586616693255170789217684676389583485648768813227389210420103653599390724703342386795238628049425420798489285527219239729382133162309406896060484206638873646508268229110502829911664134986543007825805861450086575633398967534785669613924652585235386172894053908451416085906504999999263993940944824997439729220290495576384749100402055140772012062709861033113774172063606449599363322282052957187161467060692294963255675272668732997392658891927586552448582938403443330825497538146080115494337745303784942999606556276406239061171051001262519017111981980855338496059065550760021531322649267280842296360300633104166955107406092275408073950441264276976624147515474862495922100892368172165528813894466893406587380003913469295660563120467977948697655596361048223128334766152366653706347165320658719079316754862081645456801401148173762894472515678593129105503921668619593593353702419942689118212459910286052739224569331722709090118765630587199646842650136154421131051440492241511962297976802714141218822333446085998491959493289606254570274559518053733305149913787519131159051916010136533501590621943325354841041219220762622824892528333974538535665072597472940990899248396984661117438830836754032048297267144870665526881540487525035148360262870102218532184936866048570067500751286982952572697999706373041868571245721668924105713609582743105789061732504997047912561778346455242194281665522333578772214428125103140793137866864194039760997513715269482112116002385392651497513898714269894962420787374143084472458068414774364158502429236897453137661381745357294395015172103043273246315732013977812215935051195556386606278549721173688728388289800815487968181555869516178094790552482638474008311237420004475675288760794322817065562771132892110604866856211251559817533456977729031486141071704279116019221693025429048273241086780663204391514942577248445267183594769774778198416304317458820467673143757249877251599914994103339508744709374379362880722392951753719338673476627620130134061394098907505598911633244798931720661386485025706874900569458064050332665536194436231872208588683663477660059783814063836421856297090188046222514770199029317828680172447451127934987980576724263133048935984493159968328317267300040596370946192906650544686974648749568906428975106500403244209010533469638516756873173271973867954674892017959650084003051340993515438807569417650043145630142006624210830296562236915053058396186622650182372158325084717995204077790158048920603429166048069157814425667910390625738798886692361658905308180491115370502330499809528522467482389680207928550965871300983252944663186943396894337514271045868086310259561288586277814960389116000095880790433183060429641231321261841294593545017759048411004358495344581261725291986499791232237186368817516322051803729738553604782939481272830375733189424531713634722049995696939429332123380509636474720989057976062352582293564333996016135650072228765110717569428982955787614320337674721750769923950507409449225688445596349675465284874571865779995008403209450343668432000065364899060185309753186938663174885624410884559829673171709899065118113217466789877534206183092244971657761838750843304830001484308263714295138288173069640802563616396865235382703700672907671159358734847613547241259737804989634393985288649953999606096737889985579555769216644315368089559606507460501421837418625783005678581875060354716005834695952327770367820906128274748799863800842358150465606589750524837601404874701489293753385070980282967758032351001147678519912295195855395240717030329204590859773879688836647273157247887458076437489793757367394626584158792744991190538127723550543661702320355189206110329968768170316895876200125250975546962289235193932789386110754913711463297623292056688739431376875637984331893765994674869004071367609618926935012674667335442296807733511329376312444457552763187484502728492950554405968165428001680976919574601001358241020859327366028301683467651554636019924524751432828420147211815422398510928678418174544232540689362280664673598688452152374969849437562521549394198413594784038283638611868132885605049366620804870744714802391197961120622575999352503019768913222682788975748582545058199899301250574131856829580286888939066488619529550086677730505985215714925083745081447279882192676595947681400982644399528110535972090974781358901123611709582216171153603116584094998353455654900003441862487687809510488435299479538766587526821971622695962783126156285934269645467391904010544288170312598309397489630899546925774915637255723184247699900037235203508486604417880190209216122874632835726240451279635174636839442299553781709731135537155296062553088966160908195394368725073859935134082401279874005342430138091514406726010823159501164180242347857770092843809755039009205055222200359741789200642623415450902309275090622805651095455917013304960341060979250701577304482093854180882050335711121007775005988977913903928223923809266809604372964351647542214427036755481945900903461375789128050004239171862868745593654279427059005830702392827801458017852839743020493834142887745101187022160143600850118271857871315775323907052144010147648010299066630178218681593570372753258217086279338236269066809530405142391986449318033343037766385626245654472544287544023371876429798446535339711548551126820808912137317081002165790287464894244959546533045615659874697651647334454233670804324826691826315679745964024409120862220829054649503183150778812576641451455209254901042543519287526910290050630842173742150034356825977318989081275999619559813085022252484372225124643978203309565744752582496311144218839011525946326169045867090907609495073676160008016215297062855494612666348547680542819480745404671971377015740008878445959171991012792977658614059985321565428817702933520952162425834106355423625580754793314423951832722595563173894084222679383448608715683386991061416689702901394351181149894105462933748856830219604839990723342305942444781131353265675048652955623970488111651201445606792730549647267227773566872769866698120221715744655312597037651977673887495543788289427455306877695336748982279926429341593571086761250360350765363524178951129060498047673941534665462269083589958615496213033624045588019883618113886750728976918024366817020517245623531510821174448831637121083965869705599254421290484288038447977007935701869237356632898840395666457442436983524601575342310295707498974232720209605554221607801590843751162318797593784459511596311965744892248221913157555912414287278088073540581767894000967403214471749312153394398205551521917374416130578938452822753873912150432073269141186410021329856360356294590891624052019495650155758662338176680388623388067677962235198347558505729950106528824964949178491689269584842311836232908234999505119272998823547348200949721687711851122795881267291008934217403310169409610915909510244541458202508155353047512900446052443410615904869290706259221377940928857144466132385657114810052210570624991524046449585862733472234319418556500039088543686176095668140425005534565548748895395434257558584513158269805384689032635582259645504312317674768393675735362230134993746249837310927765237692979055270910179690282095406867008919250044061443262775472466985343473736146976825315820799487656678287391125976153139342719599923770341462713413864318825987473612293135608565834562843285503770657910996342539028059914802762268398369250004347239364120302574954679812577103253743834596746304269327519455808132046641696006051628607561868137952172663844252159983739824897455479940882732492681325164198829043931892281238681829489045115301747790712317900647022286354986067455567851888966276755148089008240165735407669975579206922562260637507024177310645643038192599073901771418975471066981271377832607265051341762421585548824710072314773133013094115461747185791634015727120031692426682125372480044906317791644603431267774278750884610753117947512123910280244282329964973749943339159443039376172727572766043550453890885389899894035941185370945078871774859928422337898536789090858510663235922070973179507381795637052304156691104059394932411294190901181435339796565515638678270626283130198950925752127735682987350286374942165781992736026772774229080355181361773461174153810055788965220242659680386716943535244233560467145724831851462294759926114543256900496540470837477032262231530288776504828899409162102978288438989540667481714728263646907430171371509566906506254976735733379050998089287227908769092612043821083929166252850020311185606448204427242536958400821289229984935422572607000968738229204723063172115200007155748445732733309117371204977250607904252120226714974496616576927575113324096655118149417101372257513591407127800617998544759441789911952570329884826779102711633498731383658430998120679035960966933804926652817200783815820398975879174813652339249450243500274332770328333378046972959814706085690908809727529155008682637956425659042108300795730453930903111583100376921635841896377409820756880325990597815073874436349919480470489368581030713353596328420828790730587159672046991223791395530783153322542949449553932321177429904414134759522317753815323318398401736761913918070237962572100202259069099897965439511410873871680807155862703208882776477520633364040873003451199273340505648321693241852766130670595523602346857090577659006051112569165152705154763170070608478438945273180060915543571088622479411796693240831043787203397299332816110091341606847637942681837012893402486680993756814414132230088385906414041326477074087887380586825336952056434834129604832098371123010992501471446376525373964988279225061790366124544488945784951777185702966856272374623469968565516334518019295573091255983242227139282916988846110031350796178888823118054646073264004528375555491332400136665558764086093597559941752991336540987184902606643002406449455501914759736338202260560277033376932688450250424757127535518469912325203309328989596671993858937900780634149148419705977726002643219131115247045622998148747028102403544491775874312565243132153116053845512639545096513758855785459440620496121654886193952063742422962799574817792406747522181944114982104923411022213875499084917221773673052302902435118029865707094542250515531033882685510191623827565980589497620787864397715297416389500238844406937865413761965149713788312647021330854045512088024731971277892383855792620259349916924784460154328748241776712135433881072518222399529349496019198240787354607954054147673115257828664486280773976189607843162316706967876095050512470923071640076288900650603317177079148067679163685817542454767567077658064071997436443928356688982439365542709994369710847062444699146718263805599912782850265089640134981791378285284442549698614396024198750482580089151314700176951252617070125094468652336546471140195950731835937809438878392751814372728445705441413070116493472859609965419246628710154209803216013287981742465586309752381671007365029112293418455266592501131473991070769198676179224284070946634553583853888040477714995634819756846468536198150814373228796105834833382476079759968794089513048019451649247204606619948432047394982864969912854035977144914445209533895520063158317574025805726754488906839163401084384032781421799880803209748166491531242566858722823279821307284367717731029101629638422368266288711401240294352546454771708484538302970192208695894041162930261175802230656122519115822451280304915279653732447586009716871204645799024632043317188465063824935252421206623339285844301754170350713779538340567496073667811378580481291397272111214420218798013483233187776239071410087516751237428603905160395583966115525216911720184569181526435483314756918383052763145815731140090195916678871576817540320468507248868520169270472872416258766601584061955438984136015985298449226197702585870383450725783405862937088557425764439650880950820089254261627686864759785880792693287849806299822463313976372570923576874397042282301945985092736401514818413528093087063500326493066345915440387324097489295075940543283217301551549907487517212781594008898561070589525619128904155238866516373212400913501585094913217786320601359006247975750931359242303251483355018158364396660229462741579493710605490985389292279179063542982926115046881215984764347950853941835761896112429236754123691093319387298723430109284679906694994033487904357305370703286755972840257119013627450948810379434921620873296406245976178296570189466817835206879257581664325024751543858764532995308336315928991306085771906029409870253822976177694933025136368108890970291293968465134640847509296223865418164438522567252892465412002653056913486574983891766371547056433114804629752318478889158066009069776101926202435520991211091759292166426114576899588447909967184087291545681160733768499209481937024059047989361474919536112918396313844166334761624055910633864659771894995892438903972105069770574096566698581543442003453253581501945408309695291890460509506999187618578353786296955486547777257059512890637373366128347326351814459718349061644130272079087754426393915253511443379345664489266678896941080559882027844615751351940253507369321498855264212416245857230603267575979976073350783907127664067676169302307557350562558947084630182146137709533570336964613127704925565550988808280751917537219484024312721559847096454207983970770673783467712528973466050828880593307212181647671636876727699415115242099540584448710919206424762353302185760297877932693808906019515150600876732623097972468575296817992920465724435379965258691496835979341599391530076480113977038328304794830754593059581557663514972651973324121838088441451392792330424192584722989010731629788157767354646585480134195990574797864131728086448766463137216461243397467309873456350095393392426323974365736660434345186410305087353998347662524818360535361128841107724947196690595120937726872752992565766211542992757139721008979949606666403317955972271628371780040462311400472799798517270217414574030250480698354461140320446202127798524548674121806631232344262451645803928173628995781274198494501025673941681346152974091550914403907715603843233192231524970854175852763997353828441424083708496853389627871675984177437736538886672410233402445848162420514125187262541947266829018474672687338143486622886034066712724762531555175422337111183551914140602767414628870624936374626436457755655318320454833112090260572321571768370056101105486967585458324468545339246928398302980314494712919070092991283783614287026477353123510985493119541557664097678674930332685457998483929725713123840255459706579280679789597098097466085446380685011661919014024495046513400616141905353286563532007973963627321356235377516189937570905021746292686331007913363940464405530758649233466399355196748120545917053849422821848048884384254527408878825204805195246654733793653203571986741053634186138890404150082281194784948059983897523173379121149813270518270686319326962075897226940076196487695920732244602928669228204377306231298817413691479937362983612177382360396996286134272211163493742501659814376040443956059023610136270650603983932593950633855670616155004795096825189398859318068579434627531270945562858046572412304827215591765232600024100386269745057022087264212800361474755127501641231050620914834985935170299061191732289626934673706302087967839735757622631044294782007087647447752062221690817817909616126194833529802757700734065333960375605172765143262967249937810251642899713347164834046530218681046504498797294752365011527403137796668036041290555796639916985394003750642291077155525844016689001401636725273718234788893820761872445731151767578337140607234613619939859109535777955737018775234054793636863588325088744648158740477149557991233524919270777271216850022252675610674067652982369868969292548366627273497192797717856714716419345920052206656168455898898153931326610885084548081382438277761751962672806398978217079291231901121910547942312144272220377258444301879724242827803698382497213299644144429713886861850097005948711471774376248318361190642889458948581006424521625936380271289065216064297939496506667061561452427508464790291185242223080675627445252576320543585490083876911024057363175919094634794259050583722953963909147843501082649090197251771687022757595559937449273308106975800905053755859358680299996682483801569196364373326616264005063975248678069517317299339047629854743848487774676287634630160435492707866498172154734860423603697730973746254900516936973993102586773873369306831892421279625974008256554807793713062388177784495077436673838330058269869399064361132883989147807116985366734981526364342929450844882076677005603335174990389309895827627967089532231283887197794695603175601620977205541785596686636441454506549329808749598111868064047899467991867271565384133583957503065208121158230086195192864533158692329035872481979426043261543436107845852020104923140682956359356355631588791859305659379566452293440282012989298544599732559625196037109280081850988418425931726535547783304048760545385494768675957786868616646564893493631904525764725045770961583508779102866450155784347978277878047617067505551622566135274704614234590010452880346617776926197737662639564812239555819198680979294971761346516260374847833903177699377313231390795669580994980794829279984897938258334866423999910427518693139294391533830846365091459554646604245465029244073574724119708378301158786471398054103228814679730544202096495032416154430167032490631242866547648890668715431097976185444543302475305509622374246953322950248677755244256614052589751441268225679062317258653018069031775574245533003742562649474858616574345236152302945793954460678611774095527605049658692517368188621294944773325527329917620604072829760459847021334503382542368432862602387888239104606763881433420067165360935880094141975219915422199694662349779165273396334203940298375416220501615074773002836769855202451640104143027062401791788760271410538750322421253957437405243765433744363773822342649107258741499522584426849590634085191198677181552986479497609926007776210243038538663223554942371821075354900770124840757450456309091226682598239956433497780112046623668755056076742609435816171234416233778186619856862717231020291745524652616240535473061116851414716539819484195972887571870887223330890534751404360334799053961622096364954988739405167928206662305875710914273736261429115900527819644321664146716691702488703381995464509864748469294134361552724471725033809657632921689335934083018923840975149407815335559678868275915595443675347234593496194284994118821677271647741284327628150085924425412946875016042837777955671974144619227624025188195905033559785337924521510886423621760264446876489289010180039106922722717780261950905745544969741640832812794361567492532289967521007087548480562940457191388867426688657437578060220144227024949280275264368716670917053616756379204241838330077259303841098393388211372980728650674148013827444543454685632885440239210714628630781666473179795567904606360270668881383387160490501677024676892689664363127790542871037461721061026404732073961224574582288935074397009144606777804386199585664428530273656426541723277179444004010076257427858372193127536756512181809015371951498260008216236577264917011010707902408415065382349154455007304877022644660302911598453773795995136675680591863169172290824118652024889063704515782313709827827323462725910768399821896405471796242004440463769623834973751764350528220309446128743728206482111544947173027169049774796784569902935210790838995726706087594979320470277025573092982748834182496621375256799711542429938275341528536611615047982059162781775187508097680373161190615699596155298459008666661864267136046675684650152680496532387565849836941985913148220127760143272641284026546926067399715464034345661282766400342321639114230368708180162347879864590442059998608380060524751835612954626078187799706941039300386131662891098940506716577857793957827462486203694020278096845563272323461632209242657880512352989713541586471461151941118253099122963203174634342995243477990648222531600933090161195731732725633459779453087504298601838685979078771862372037383671665359540935411333394364449127848363231635018813050110346211696391644244766412977042832949113123970999862062056802132604528263707721898668078654168363467004137869777762482873106123904211572182539211031270142522000278751452764403977493251304362483324596659941249132919886901006812701653332679278610794464286260126831841250931617480126812867357196351607313045334284519100985571345591083631373292397894150455626992344326419425344283366299786958587626031036139245647780903091808946000426130313112094120793621195120995996856708443064008967129638677006537300932114157674978863526782076751368863438596764440889219150434090409581634369197605816040235609869637707609448890170217847912739179552699014536655630543793404746383851275006212446205416426738727996177682963283634319290113993634512876021372832630542179739383333983252605406295375822585861825103888359393999933239312706777993520234864244071187851573745199382210314867311004913368930938638876231467542025492032173731999388228445321747965347969707571420081161832446804168096237254324692114903968630080754479333277569849806396423426557570865263170333561613951975683274525920030988961519531044187848574986987048307303711419226157322365287272543193906641700166406647108143810923722444330716269113060024238754757771296281177632246380237655480961424483269609640077841875751032593122189801780888004395963800693833280828229123497246327771050669528999677662792440360101735754685831443625983781585595445622223224587764354252336869656206548500898540916524459601656578228184243197944327649559467929875922065615789703886490755321109667512483805859711010943553525087053146885388606285528832958849051862706830148010658504054405615085018602979503285640130484867515464921332188614335993127052616860199710229014065773292704291036432453925256841596106756139095248236771692696889058582093338502386696123676238302503432619133366256580948591270451821877264979144136854198563686007466046801811686362765233077141934566665611250532084074191834517096121641899246721516316333385622126899360523425532820072082543101541252805016015589429071530360437257645858809959529719087541238299069838911133247648107317970841063435108045981720712337155616412785839393572387688348786648779009837839125928226201977316630751213686862360920845515872239616611770891346360455874143345790673802150497200032168349941673957497362223500277558545529441827636243192483049446387182170562104464997018116592897525798097321945776146440706819690373768340833749972842819634692922176572870973547968192615315268778325922616292133250319316227459185247179805039426028776060597757843239459276937188698051265757755144523246975739598389889801911894334005861395365784429002026514094070144919489945001426984716763471435585811453017330997435471652328212889219763410770212952558545509716682758632204163467435618440550882414259492009694067125438510964807476189248049576667147713250583655381082560588096536779062342130349496767436329116030618262500163400925458237775297091620685860901102865043406456022898000568258110224748834266977003269089046015579709886666040577148382259145270550925048613740426298448088033206322243560355497108073113408959931016215769573723443523008523691359235459007066551399947967881911808573391852250893654426965617374206795672553188907633434860571148439936887588002087701258389544736536364117379216420988607440954025326295151003782149283048462514110493890427087455825843009449782889916799444337556902366764511788082910471769166739572768649327149558753783744302251430543293659625359354376620565558732085856925061255889096602226956731347887001676759745613818318280084239017745516610030772834937319800450472665912134401504930048154956479013392982387874636578278280275582896192981616002800692567758593412062887988903685591738710774574994970394441608388194334884753098355257179613347793660480801631884265931019031354039439242254886592644387090433921145670506029742837315459493186248560114192948679124478837760946236310844987814163844037847070763761317215952578176901497599020879986253994441265948273439926414798819211403193157193002089410544654312832707994596902022043219332249555064914701504134460286828074385283025729597113614852324866843113803423244442444104145572475593784854071762234921637289505194800983083540832596318778612884244264714644991161654007271081739073972249080103688927335319358630706779584879823708773301152191100457299821579590408023365791377689831997572216326778834997174327232738550882930008206978490682664073111575161752455799556621676787858313339746567147161096388498547642342685365103128271130214956961860787551634769555832180246821917660738251650309280691575325050586825313368004985002824991117993677075031744803645596439162010029898934994028862668798423747032583273887313690508596516811526699498370883781344038430972349981907584077955843347922807203368743030706205144895258421616987854235627103352821106237605880440445441213109476441355880015869190782957587682118504545714017462532013909759976839339970095502936909617973478830968016231986157390555890679239991938726138195609582087185459861189972704796654438111862977730305071296577266920489437813136253644243596086452647525455788263273053867332658619302720211260083571261504733265458638808283860035720530506843622527755126048800684040502593677651960700413742030387414414967672011429745376447455853758386201850916294825129603283705249246217295680626285078817722475683118869821550336745132259830301766181651260730913097403515549916965306759223675554097181617838832782862011234068017211988955679407938464756801845235834993694717970254455596131190869275505284577945371917558861154101553855341948307567080083836596676527371814084264395996878991204295224789928032379271871279915724140781316727733151891187943376946991972665329267916829220312753582779272816330129650674785171125479442465289093429414357693608576271685649015814201062728928343378206668126856301895659890236284292689992185123754853975479499226290484643596811952926019500536038743368352943083241952001601541974011310470482155231038458366328707865239192338512310640896361256867062854974044493263745042995373871409531489693771817195993093740454939803439031651000385689092079834056992732039775616587466667820422426096942673458158638539322368326631594847113456196854697118233556837510578109369998563504403837413238374392891719681431852367272641843263501761740195812344114498955100832311135741432393923330975080441684847809882992927560164585311710805367050913971354323692636053054740091434032265735347525244803786640809846260968878959328577991658033863067374305423665636882230233415416934626811915235856317615703524499174645415967257256344604310522192764058566116148424719088177619030992671363110979925135699720520179831076154589235815042665661785063786825487941048021851050779680271985572091169747871048155942886691704951648013568991180751181368967213029492842090181272611188284345780195999982543111400561218292817696569327291462028454695911508244575762410641926979654429076269154368053740500503497608037258555014424929016243801023105714117403713608630156930846776088363025815118631291289579821949796008909092095165636420432508573225498457198278942103680075434064347115179242411995872462852895150066562521226889138725222074464911112433169745362586347378721824200414572294894580737116917664403747890301928990667970652072166261195255629570573623930561529883794737560745537720347141376929047188346739058977954133052071683722993244244774799476553872824118831632607097894288927210567475551201895058457309890662116318754424303673010011780932773591879630299279126899345844019000668107807584472659732649588863971130538605527964440589336838023298333289283888412012878369946995245859010196418999315407591009018982300509495661368763923625241705856892658413870444780732706086430289614712341288339927274150056430041508116535379506129311674685767442503555326590904341204149154801940022071018429970788365494587161888074120538187507481377162136030201473514137551209420452181441288354079689062089279792027491987924533734762636353971367319931277095060030776895303564818323292123265385621699301955573714092718302223446265683001446994993623473821709733125192468313233816061898930327960661236911743712129860496294431695699229664255884658067018619262286888577933378449216534486868403361346136277598336966918036770283603841381141800872430272899066777110061347845189946110688441557647404647332816809244808460662354706421541665314818957122400086045015887205406410948941064988464337700503955645234115062719870019740680944363883764031219035351521774845745896146557356849395138137465494647097537605151848052235651176117357482113654714751552718279313827855089519385991433003829509888258716574076957469235671394160770211543014855700160873835478313430249319794502552266639501997589738488885428308994913377828368233112949621718527373093855629251763360566806624106904873420055074512834236142960450664775722730584080858870713388080523918445470102905717295722026258518262895146510253407152189121515629621726417608397862862394133785523973574227890379638768475974470358096938586061230024684698523166625359813561624588421004119602883512823487977631935994206760609803314326576175756303084948487846044660969729812764541613799356724924874028771389233532877178524107746538380283961759885244217901226816729899787523181371585459410651546866586443285050154114894627544675339037799659954012887653598158384269892102195416771670728087593038850506246609567194530452252291289636478981960144546541948092006903018686517184215684711447205789713392134402491379329086552240422531697914060421929938010335427337010541282818278336040901772762562939972514438949803756470875928508491094875400998680691557316284294013950793445843928715232592857502017134751620399533670379889894903346996212912191736913412074338587828759985979542226818431005028130104700388155052424532599180566331332641422724421070200272735776303601753021317641700104930078295544894279958319138759216254597800745252265988704994366881552613851201518166747892147980865191516270253459822298138512837291538608357754432524648588802225713780645363883449462297969886822281165755167029808774521750247874818664263794951959139048208112540085953799244148484838083827529255371844585767531183045629732767299106574813668208454150273773057898953090426654490492517786572147223291182130313840984487591952247592585805357042326037797589233070910906849028886365092583023744708155697401551701454452148023221362909742922708928508590378637738601069514896790637588864907571251087447902798288978426956818503883492528514539689740036785963664543403525241258996181806525873578970472640309085377174545712470566181638443371727632968100152232172401235314879539466111332854521750104589052568349229585280914122733718177397572633890397906559472642849206460281890785308173892098888938237053932621073631409446990519903537357323801176454558314669796287305839182045208355432531608180787865986760171413984174493978410604133085108321701277392773829032472241139177410478867185538961317044733078421292239575126951462224961221223263549620329935970778884927117724595877355985975738473048090801560249341179421581694912948240417383252191870687814846823267869245891287452036665050213534942838714457408262801571583409033256981386336032330615275571619476341322271749738725208678795955999698190465146130494922109495899583008091841066630633179460016844495863638860128403350078362454100687547612783239891674118196558188961986791459821161269798566481532846991737284837753243230065664713440565441093246871114922805169897864046391590779860282213479129336061313976842628359901792542882576652849026122077537862676960467486970393784149163229987291069239709107584897698051150220664766450381998783104016366039110005381443087702653657269185265608767913657796463005258424067963575894176068077578069493080922861087230065713485425905265588418012361338355426271108324355311660958166158957869048814830189602551704906427357602572711858302031244382022999271326052988458441457555093392410435769834356914700503661200948044343036864058320095195369149522586743366717357835349235605629647151827903349783401429695216336614028410200503533146415507095099444485082482728659992859534380923835238688772303594792082826913287785765095274728463913130055167245141881024413053178613382651056112573974270525981586661133727802442219560301033171566199796609884336804959615051128680476208287878760069471845445553910267668809586468559270306083685154453840078125353402688503732187451680068043463852844670898543185119550640470058545715269164001927963969007768384919375020570931538939682346992429391891157072282753606555845504340758930177213141281203706984611981365476129514420019253899172969025293120245738263343684155608380745948672265164809076569287775184814553824244209186876648223919256128268784261760960833838135169653394810037121562974046329737974138842184747864490946462517402411962192050360793107131382378606453512137468966145723120018035014606892027728322281654118284610143227151429219333416126975766879382280890961546351856431230201177058366774834892880606665420991117689155147100245418789040852391763142086838837380188896020914969246334698113208384440017821841752708908802691532901950957661791312039902620060607834047627730484954990967920978931909943642751653679513961706238709641237644588648453314276494630969182634499802115424821343715621028401652316902916512040969409290022049867723471934741774318528218511732253797961906274848070785179571407787558298121539802862170856722830561031457605675796981623504786872318620027737089377720748938576009923319650713122146279910411477318724669725231653335281936367470930444540601552686208400497312747751286680214582584891403260959393990523025058057072868472297973868187527450713265026772781576654104933545961517157270421045058891284167892890177106826545779760263210676685233502824084607890194245986483289393383961147463777921330416497730560241588601712347809528381640102191926103555653415277775044553405447072338464942957992882578007299584204157290332517812322930346259849141844765144328659433439856957816861716376366380873984065828129698208546027529183292132826291738498526584404777623785517091770346730841659887236040820776777049225944377294233604087997349254416552219289941944498827269443044016996104826332332947417085979186182658110057973849692619970900861963807559421264088237124412895062258889130457061156168600229083940736774004813514825739234594268518516820253148965828190421268948097878278451664939831144547092708586501673082748740283372454720824961608479069418947698844461611387816652678790966335906237419049695522859158619781523776894722711033586240878982134133364747579824904448726329690769921966152107729543988988423702150084256469380190358095794000922198228794082915789230942123471285355503413725297997964938828311438196754449388723055054829121842169494740671235570384085853840134173485317265661335024702605644771267934383470126665399415522902461264606458225090501299379817273218970798919074041893504848623264026288711399603337115545505286757854820863112480354673364674645079027585244774077827043979946186733162827863089550843462349330167230351356953557262883787431590242418080536801873760180310801206093799255812194849155469245786534608487992378899310199047887264765779698279639264543018313797923872609912758947917248968081699603047040797494743978865428960827100627204902225248712914850138040093574931136885432162212533744302486572107951305235899557949335231843105251592631086845783659460470362629782580061016566297749367494546393211767858200177702814915888616973784588786150695485430929872465959080732801189042748333377614813588345556864840506160679973964314139443888614947595082356551958988657671010650730320816406964671539531562324491306246618445556426201854094150127711313084124933196812061900271278970099448778152016949128404288034295375811434075734876673781002193755485359034849731900493306178550185923722799821276284051537717556621033493818729401632257595501969581889087282908723423148700467483903654508595497091688219161039950569786891793890991638385924465208161547236055392655785787142893268927512303057364824602811262418443950919087978843834111393406799007681062614255374615140662061441141429581692324428346133276499391737521910209054757193264008921935426308674863849238970455915003907492813935148382992933234824994626965587508115322081050257552938764542281819747423822131677795339731978537002555355950795557251262635927051543433381310856469030582131098955545621718024322258681386096988456837168045706265969341138046474525921147009638220517015105916427257015713891837079116369356596912019924825726240371784882621133754950682491730107477702815849725116386270833084817326599956037738327609811391486139465441513741204594136883101959943561587603022595920109519808163101553611137668569352128095989941250951210342578435639975136925427528420606307797542747553211174127162924276040882755906961305917655439970230614207310809310421451095058016076109952208820632380474789215286497882551336351332055233459813540009983179454098111255022128940051551866594333660355425651041909518406393969090291229715999539621183591762918581515746810828138818704382834827495338076380647803144779490609251801327646380338353866164415325075481876503469647047723260083212881439011593147668164650315862494373768273362221745515153594171599136794467092442395036478056390411814036033548874379976378062530708646863023750977874559082040226714763879568222532162670681159485638792295711347048054567286701275871880914724889367298359948026567538824718419658587885317197411303264356413973258662799448596130137684563050146900601544164422853814925014932006306706177650104296967329027249056858343472530688318820440667280187627847415347373054432555091943170693495463611960296355442940099255669189659256124408670283813244060662167816572944427492073023707768069047097850317076253067547667469130866142142799337979145828897131195895657248251815483680715414704855968286021869710700722438737625616892889166770573335629470203946901493138884420392414871075561522089930975094189809464816364594527127388213006693894760264063015053644605358027298851202427139640220594214559322931481341430711250693044118949039863979535299678503460536575527956716085635364205035923677418612868107405943106352100495704567402156504375519045692064291952294413547290922599881792241888117820235822152545665561784734318179876013217902564610294640999117941184317559341760161815983237555270670664601189482344392085831814173105304035045464723031980292045552664443602075309360915018725126377316111066136593461424449785780314484995345200316883567191961095758792041831137818234226545434900273997405263106450732352540266986941009922538151870357592975504403776247941260939991546206107009715052929763883682480454518431123459789143217261957764014112778167141492778364432034206625381282203362739267386700648473834328431476268227129191283558583759159616241932655533553598988177099379509513112674841989806842997405321758491285388457187180271941559106039306422883147177658296446734996855263267108761426044676961398166308189051824702511434986683165049929769081761913935716775549414308703489356307497456411109891408747810488061879592453500871596969562742312313317172942169856798878776248807195058283335358635186559001622902619009034390758922282522532685314951297392046493738129682149159578663642501431943997202231029159800623637610699838013901606482303098862325469307383004994166733204186888591183608363773578439902071149935741371688901409498709575858439717768730596826738333245478862706908140559581052905186384133790238725372619953709111665314553779156746115085276648718158614112608530793513057480243116587811474133385470913982963430629776811761137961239567535595819507597474838230585690696121868741111282324507927596194888849817086960486757500289202626837502185209645394004912662361919229134950452442116574668582650055701407244400392092984083249838556379232929053505412710547408196577017020781299695902905099647853757604748281361382430008380391756078198938789798401099381912693089880042732067541466876351656184438463752484910301602907297616113775846919878444294482300382365930240708935876541778300057914656679973539099578317160633516408119125233045007789010155126931522985657518161350304713454702551690138826289842135178234220804686962362069471301430236709665629787519289201939477539255497749615355811036810569451225755773527695451339274153575338975065030950515671733082619854918001558223527343267655467556185679888512383249529385558224018350977544900036984185794522259539756296430449009549530329168947640104351234375175009091788598254067930184222981690043355797633749905587866513617797314656117656737070124895096419985253629529641145508755469405354346598678848226384395912896550862490495064669837849877153288644803929322260949652393206302017963310212780702815004281357806057432815520541312998369677511062781252521016829404086097894168286295285681621525568461486186315641795915945943065907139611709347989570333816530716442063767995216547994789198274450073704938315275797187144430257335651163506963253655456250147446047350090340005742430850815781548482467676296655100471741770624388743958119710340745112460532126152393981471738067409228175685391877968877984774593231827360224148503936022063152885286743291233321931655230764618114569276818634358825491365277894566838120744126074400647483256634042688006333228224801220748615350007298584708842789199727138388293564312244464408317649414833883554676313371686291614797939202298518678899621687049540490176466969381529175456070435290006731292365183986113416468417859067382977325700477324413759594187153477353141570301907996273307405645445926786153907209809514344727240064416636519508116739148520077018621359034857218928413763018280151306765059934911119258604185674153744960515799823667540824632563427249003814834663752586345154897960534461016790296830404095428113035509548206291762708296622492492243291575193350653045481198093706205947456678682957243283108296459357068057938553884124195103447593705835036782692494636838981318349396755425270148488850878234337980485944824867767768450749256170050291276725081806451584033044499218397573033648086192880984284206960984015445788039693699896055152119867395096802989696441750297539810871182832824268559498809490792936020869400637223208512879502715645559523571551235568730013184705409484258472985085581506117570878811099206739024510056705244032068864659425241417366410725404628472556867797555124634915708629874923997690675566303534649694738390711552640691809474821154693972576797042763000505725793925010521108519069791627688338670013480063754622921850800511632176370848979056363830125254893954973188531674950949523773853379332632617405637718919483482901667684075789979251152728502934334501403057660959259942158741148687735710214930071776371866615175829762036365445226842291593563155897565931704243386710191280950470260656031981370040418945085040596632187125188762240942865713092849607715264814978357952274705492985187987982355563486840982633664968414863900362912545473333800155768301843732594939241593758448568363062797804175133467251042516289545086403279438014614562003657387747662800040286534044596245590519586552783334008919992071521102524308137667340754222690258086267617315763273142719850776038798678787906581661609608592952184719111603285898480095807096785100468411700084246461755610728790927055011381211921615258943576245354009955994332557455939849087960986700553549077778177784829190546062178687410614447834732030021023469044609115520430349958800372452118425240447970296583087637391418345359167968440366247521424594735317697742057950875856825974953777396197820726905151684377619140126847205545030831724953626582199191336458510245490622513263411407766465656943111972937290743024074921124065782242235289530389195001214367146250705110111264182690311060886541884398595862029177072042812419527877060972343139085201606977267085940531090591788272396606711256817301870110518341420708842369010069767175561728647884388237070451717601115133970305718939198119169349700701078378015857610747865324113072669428811260323968428424061600162662237042923228785563936746494125765243870061353885143374820144812516180371840619106932435793537958798590046421234115240155078195146911994674401233564878067578302985138313299713063703798290498840741234418826297295347104758093168078666767589028531048464831716018597667816717833202252004230804114970870866711423582973299594800319131895089803559175001961095340272689503613299575029419313271952157184538775539004663848922583116211019750873243039439113728308147075264813454172188699889932084758965360948830829081433410184007842163482496838519482311642071092397625575241127397948041884423793571549146059809420644373173373492087568231914478390583592706375293120487223835220292064896119499668005945247730614238525197695657013113177181631441915976187108386772904710433261505748867324437830765105123161781180020672525907677530683687481588802700336495780594570810933898018649805101797714965684321937331584322659206742752316277250494775267278820288613956706460271395915666313046601365524494502941997345689323734023462137573821943668806591923605714285288751020855079974982392486898784596792334506618697770981783046094467847728374017857837276029869084643771351555748681621347584632386236182072154830293949163026444667819005671720871911250249278926793919206953774046743342785039858529454467774278084137373302957432765810422151072159382745235519622982546667314618966635964767911879207488858282563122395323870847681688470863858142710507532290841449395079520698454430402760396288318985983230842818414580678011185246160420690573343948881667316115174974086566288633604019969789290304318431003576257064898150156327402055716716604401163558950694038383470327354806249429710270342100934655986394198540882071297527620286546491913540807938891203351519175602701118595512812133085384056824391035255926812396457897566933452297517505963241934849169621378218498617639146867477640665778777843730245282465940473067380574429777001477461644816836635836622115716764497247116959886877622437981109447649617703402205440152406216738056604001581542979537850872714147784041077613818886072413735420690955012174801945854034626402239981579750568409996791885746224531286293664380562215048533628400349499722895790850527720924224243252555848923650426893919587601376271171179777934912556588036289631085433595233396859832587131382919236630722086681495390745839576847476691179147036854074487661975519547830276412102849686587693351094033498984144744358147127720392391442042109584689881659237729711353087054544151753167863939605319718702257725845094493119077324012208636375103008896043752404510271918194815387254456886465848855543770852105300478831444570816819097827673426341059769623546896684877319415773810387211963478419496765144337025635746557195816492661742013599285153146190826761768505622998821794813913553676304646569287513406151189934383140318713424993660995716914417868297737493845663069303659441551490867309093704565038342427483046734141327409323091901064278275783400449843695863447935529231809185585132236199259424357541444195970936093960923108207624005128900194071461090564568392151803131205183494739533396400493690798772233415152360793447172013625726126388188796762676444218148394691612228072989074255030833046989971703731937193545667593925525859941363019218577247877500063740323756296024957313705927427351996227943144670359461464778050329333769393509561868302790047329402895077128634773788033123260905596280939588598068075967135573187255221889861053153908803307863681437713650174009330341132169765059376242054300909678884830851143791442011579064317806785079817866506686028122608361955408491062153295805700848511932052719202319599859836610501286889459064943344977220904397339029725365393821552409806380803001623354740684036551201080464001845255723489364405098911866663315702997206569980436415936817037321271547957223651409729484895274672980361206700944503397052417706966429203193428054612934426236932070781111027940037330206323888050892649488726207273420360418388077843724269927864074616067070054906133144835122704922467665766337306772741383712896166446758658138449115196989827403156560928229879792251640343690272659310026765217946194820524009754850767833230474441968875113837254287986173865360670397629615026373779891989135012736717363390831288326480159813941174287700578444167726212319887405014252135119699587271686288908187692624536342299013470033580630211699835133139874533890404285235462534560483125738028227188028165454112976501093704550068792539287214403902920663469408021653727586280132759377185485085660856319705963343977638293353691617880088557298636143223735408266686038672967236656879497182891796695915569097373000091354125801599521127656214780767925767764490289313045483615667692514301847028047122857450834791111518528513258525565538652195887205437131040493104447670832202183879378477254910596228543847353384785919131493116591792975128076225969881959234380676560839934545426429857297787678570497793091843685940841411762523410909098215666415833118331046833494944674232758859262561561805430229206961651773383629580199122818401503439966271544661884900891158004933241524532197405089717922453632053343218542176982605298575546958090309323634779784423263349802928265010137427811780773425696440732014006863572239672828904021557386235618347524381043705630623327888233450749777335474442892801437696738438879036781699866588008208614818921549477542804151867443518524678408966979722850388574358377167662117485204285057726622269469351439707450658408395885204234088924768622978867518911531498954862812686044912980668250624075819524481407635547649252480871541685953481808644010636564560680982754489018620624155792875336203346422429344405582668457255506374232176310805099929654869063591651573715306559092376083476857180940709651940204994461670618377037617737976725033752903310124930163174995553015176994436784263983858517939109712950129154289582734685508890389113383479455647713988481947914021527593655202220705682854283628445459319075626825971854441973859364733169437273242193964526330124712693493371543921125156546146195228980900391976748848975623943847207234010039212644710148293673214010462801133658415871982639350192380665237557663893948298420451417487172525008650226165605638033167224059170964774777103982272337181190678496367587050396266947330859556422800183721255852559864045513666385504971752615146555109499028724503454239619050287376358509649479137203666546579538925962528872458730619610957214074067506097173092639747770184197415544223648793366144154579456611014517194647233753173294885301763438283789071173476724914432406692847900748951212068578507494894592391046478982624867506925698714634254378480591125125429438188045102851857135035531695764267171191210067063609593088360097091042389795675639145524121218839368914335863907980424852463863085434949349030975768465205082047924104757187590587378042829102224920855907424828512247147398461291893324375612728160251310516957609430543100320378771626266859776997904422643823496140236943501746009437246161334646035172080015565909841293413134358692973236186176698210524796532585906951862365237714600492101702596088950251846717550138192744924785406244004874873014522495691768495486333440357541511963883089783159010009472067567896040224010537592505088365833282076498389237238223955544368762893539907776738219907699823297346779033587669555197269881247197245954454021552626507695259299819333565476343158927700865361511186513021942445794092185243234214396536547148044773099375964722538739467641003891067505011923568212634943006458186133681368968124955040010474308292899688115727509780823588972704674573363982738986682544821281288867571621028141079886357742942753349740180761223993345682646687301389188974596848599683023306034386975436889691461007609180779919376003763031536151057473919341729674370309778677980467951521249854141296067252649027666454857997764220841669211466862254322295631372074418462554146043600853919807204053054868466495779347502357910199070343321978920188623553953335065084565234568540230836975552722174096516521154452550705347160788719408620438766238069558465884270046369401346173836012832405393239388463138521049700946154844226846442469679371073753124416224940876446740021416622780469353298086109853169134662149580108888079068155400907261735181994763983479262523732351510272491511713213681961539637798927471308447841368567718303835883508102096877500589873080381591246328968120977662414076448612892367392873119566739891894964444110478075342803209759722736821616822787021485740745001907201670422693803079177754211230315839957201122176599775899028204008303745173116670459947758597075453150124021965383160857289693322665569615775704422747477040090804980373592192573830532296459000166074621367470825992518948734462487323039477206721854399747824019780771053126374889665285190867745418219009086879200790381156511351445426728604992394978948610075023302670145622213482656423299810584461430087360338769409568060145020605721428527902523320896012636987720543591296497460827100834891056846883474287106638546188160285712126082568069316798941605407740915683507320062609304894936433703140407698321798501856131862628941676479935509174847597040424630731595265510912651008615215287076432800074119457900676800544235301548868869472961554159734702334157756458452012673934110443123648063641351309993309976901477445862394639916507208386227222488987142636791077850854884641824208712895958143277390560591261771806182304995707454653775207273474503006628973944560758616065149593184125984897283533520733616838915111942246827194336074956649360857816448486796369539291225388288913562003246408442651264128455647249829958488580949778476857268052387424834656828534531450579780960139502305217265636639540038779196191810222234842586051603275018106568759669914149641131776930688072254646608772305256677294007228006503374917155760406804692951564471598204586546906334713778588734581947419206704535766003214379329160335097590832784818085282517057383528684503049708586101610902812230699489830848736239899498057474369114238985298940346351440462558972794874443936502730048759771233517505892193226118099048551804023466631421811177850826344060286869405796715247158043928456904449308408214930934755129278921100904835254903343054616450481314500157247980870061584469536280252909653608507224397111610920606451035601798839774840901328712010886667586319876323291801759028616972277254618006563331818079345535712767351855101252065412700189717323980292045954375484229278403648093108190059590321762667199528772392726091298764007417360105481231511212846251908759612465098111767427131619664474617219554420910644642254403946688324689067475009833243404907113930459649731954269022414524422128441220038453986330473715698914170338405784659316632675649500936441130223002970709324312360420700020242627458015858288281449692511206610159368767679032502399121219462693397693013563008209647304132158174614406299493280460054167912699700127721345807332806368249933402550497599306368191763062936551380627343980724025110112884885101226095918292999206587719744620708420983538662255555110642636444045480254425786139170475499004789838353091619233028091702683748099286624935702652456508310793909592775160320191197165696732436041046679211182974913475528220371370863574255962558609697670502100638573021195436776228432311005040115346677095165834438317115657572382630906208173271649915774152502807138792306798635791947263832866127930596509237427129963343764669828412249369604418456248496639708983507572696063541667323045544807198233917556819011461294891971388285656186641377424719823752381653901725647338473552163990343233142035389678393219034823392438850695808402510449136337325398324160894541710018622767172405622992687054686235970441587843825818103269390445550008714544272180226881756397667328012904703635847776499400564008155587534968338669799237944386509979656153137666308882555152706605925008950841294739686854307523783606860245998195861770843355036839391107579717247008158771031068531118333114284055513807239589374070453664648925513125352037523168660356709965142698132756667632083675098702307571532553332822211814763048499560078068580893356424096315891365418625434095372407765644565720673351187630070187025716899142647359926469211606129907902314063893902862298748561699537028554541100422265139740074073008038366336060188618962187414815034439966258745679801696702607824073989132244707835663285711800143796109970091131071744061890230663727996868202445691097826087879334924598661930044155326777464336833011515236280674739523822211901632003376141346681760370605155032959670345616578730845585822175684313259101477060542396045503601378450307554910945338476299291185748440420052412469275940529885295673614058922617881473969140159069106459121808399907033706575514810187055788741697116645678544257489596063581340461596634641622617091153850831136901386494434270183813059324225746887426290153991167323669172935595716082312868924807424368742994201336792075559473323225880463186980293764243239872294386426656461526188788639693207209477021423832238827186781945748853629786734110564888441035513571812548747236198848900299943689688816945694853224114980544696200141830993983686788393187920292004415748918564642199038273915056526606519943168605916861487840024369578293182187887890705732358965085218018180703159403875023170895591454613894092703746628828775313854524976762778490727253945874158446227321148518652904240321038213383177731748668009042273899912760807752746086568548892183679598864787550197175203917633794436342202672241025273945168705449792258831205980890678852376323839283393928213261480161526080151453720283056608567142931713442363439226256208163494913199380456150970877183808794832848847795573322878118937224296140219955317721359121645395055982208132721742590459056963719679541248838306743720308987912443226027811388195132741211704988593215393901342055918571187424840919476869905859848915238597786327108228519991868265115868674337100676409441719948507809682236866026846639171888298013062598657484885578556138315611563419620425207955608455296601560433521139443164891148499062188314610066239205544142539778911086640362400833205369296559894053153131184026765676027774819678770472971060723447568758397400085907865641528563767937696686063395631208829727080194101528924108805124974794174231995512085645902006330579372493365383793397200014343010216075294448076692644364052321911111180930095754087338348756975697842985599300832374015957400210100881323163735708328195320194499579643431573742207391243466883523612246257974878891500303344901878048153773227454176439534725939811654368254425343940965409882562956680793968140972139019869064376176400080384951201918604645011772880203891682108254828914006954693821762001589016525235057341256638477888561165814025559561156778337263006430651346137119597016405412526430560827229774039209317382741398929100743054736012514320723632408170326328428938786396349561951180441472400722116405611852691609775706530791733654312404806979271669509613874770006836147741846386748828015368459818424367689451223890060227796605961635605875767752730960620909629371698759455798388031742292899171310849460941179939651052715590487929634183600188191245414243928155896571498852890022001538614406715786542455449119310247842038576026167599304732266242665503368393329721619429697776341338061632252919968188834757624346472508279495061286351061822004046765038091446853507430383052414248576164879738434001541985778163418352721254139034665701567609481626982638758498465863109134922468858041293976276835229463995798678987812218561308610927717531050699812556135547989057411445488963500331129034888883154498701579043242078231096209346895726027640484521167659710461118017788952150142167906538742265771979514127467695848926158687129843723165783032073950823492983099664629402547551003648840635618190138625620492671717282851046224067117799780523780313639055807614195185231503362847760872586097113414046531153035868994271764864851615088409803290252036234688895679873631488939882560250223155232027674367882419353161040640465729046612628318437252341906059484547161665596727490135049404932282427263630839573827529896569235221201837998613278739016729095125660107652068552149222816227020538949093736891155954368453353365719717081290093104335178416940518317642828095017455648185313707581563217740770357327552051672330499352960945427543765491699147457095632556142180260663739302651478044552499015860336210754596361155334918220133576718907519274823878082551762444131882886616658595897970818124246640688605369280928246084862983060118053636672957736025392761623896606932510427195885723759359304048402986411235784456508092182560272206081937281644734036686493060688435956629365943643276047517981689466057926235617994395138057646700688087336585984735647143073625994616629048568185197965068691605536984360002635651671400830905402585868869142205294249156485841273720850092378733591283880246325318707524941018160454333785292478670221450111716900696843602632753785092159449333661388737247552693703874726406853423815809785139321181093723763710011326124139896267070739197971884063109338337727953700948375056277058146377192146709290039707708358457014070017158893217418453432558165528519596662862963643086464702700114254801188685260308351432478869551826095381814208406329253427404279313594866960533953159559884802099249211816370914732080941848111898694202390787837365110683403261258578066028294497631474397627946521350385639546487009694028625566967297162844884905187074659563813466041565819726720132236788256911838169456492832177646840763281949246158711966736623083559301953666605332753784806247221862525071910824977375126977605816345376181293126264833191449917260715124406219823436099247173447560566991626435952002775736176672263782711798784322972769782849453628011864622201012807585030005095923018341476191056294073827862835801480142129611203561926778181917655400371761810433969298779814160731291915754542212882980703829332409832092388908773564395971190150360160669450545123740473276941126104501925597012619228629468911062700929845269444658434165686840734238829595806142391940472203052991531501475428606018222412845111928254896297115783830564431707354832011967773147756295172778085766495137178315963142759114616435583616014425885339309944556113588060160611878721222136102214940511972183498894649225172989136827702329820077759029385407579120583261742467327890247036236428239724476941395981752967209146544810231713720694586039383902282263512412929451095531872686233424982369647768284666961469200070112270056015014195968998418021067468166247710710395484158633581586788053354373725552618640720621287869713406949210894253873404543112459545761997314325176718923504810422738102530380786852492787530305917528220342208709489905666507762914658179481177546009002870988332828672070185740845245035488069328089489575413168759532258463545213742397573576252716301125948439645466125988545269319326169868347144094779748051940857863817410923395127780500847244165940877057799886946322777280381784278356766221265354048329783650972013213941147886367955798149404494201886967141307267144335691928661304801092229326601068024912317090924658339593218845452439076286152040134245696936271247027357275639001576256383583755776321613400163684176500789196838181232070868650898932942924085189364380250977856081225414172667435289510597095604684944358884811591591921774717399410628170123038044327359456511843984400996773390441360053482644300529554302103631813304540752367439197926029965827020005623775985060883656296856389533448021649454936565818198649261348853031213192482973421096774396079364521663447101592280402891434285744965297866247130446093707000562574130653904836268619115928111540970597594125772994279913428070998500201718684907800453770677413852070990525943948905193852239113638384227897973049828695248767211906979394476097101827256551410750228046330724116545798851079827740310396915622936329428330030927340207806394470154970149023613721129913489508519172386097924535970992741281674327446995376275051027191364775009515963914435612685581405571755645168279015257263066472783319240129239172101077844554707276668953943485714112141600870542236146895383806534281162468722802095169398183565748290528305150422274014382882282391763709309578269855071804992716847392521593537194510996992887946736272576165024458958920394868210634883816716464078152178491634879047214826212076583487774802526175517386501152037810016261616288286979966474458392492674424784682463980352922602560318921109762140666875626641789767446801631634657077466932865080037699110775356000231082533617507866850169460660283531419906345331431327164661714331898822455771035638638618351617188431098889263973583573087273585564860473245614266176268129618041860148412249251526052844301589138816291012980887211802764033669088096724459338184656668214087733646849831081683786585564229289694586094125381411894936148107266330027543819152809294808486082309245681898871335811276672710948444656311194782810960569077660321104885118286523584243521884860323367011175581674293717288581779352308629209952935601623854379425216605438224456970881900329563686726507629790768792221200084071115464425319963944472040175013905474797213413710160761368108884540994113113363081734546078218464088329781792254887691270488913285429519804954280137690827827882946056855707617172730805767461410333482392846925231232915831133542842729535284715881998438075596586332577298443133516683083393873474656356046697723015183810659154608866976131573706180286737330971842867754059485587196173208704887378798784249677239635251849045962303590315502148117076525247921596026060529100916885197244166167694786971344268332141844346785870852125347833533058007715771669273751480663557907532523768955558205971032721788617984021953335408991513160552597917779431630318271445523478500401593581543195573255499467473627438977950219749675439089704391019774841024347259783508038675463296418528356411395002241052730037478679366027772584534314775492621494904899654272216261717869838722811323491008968614169559833728119664965483675493085081384207723171906583209563995753895729328722163864208961363493577534109865270172486532536868502256267430782080640569185756824709421800602713270716792379288753321365657126953076727442441877227021377487848477764933908995789685883158564938301602548680453139539522851112955684895042357101789337692176551872498971492095148388790064076938577521608487241994473385556826301577552357178927217802930573309134643994217242956900048739556259624464946949551436057065289862264345179482695414263551893912755768302779485081749774144174573019301549416407320314046039992390732577571312204078477104572799075404232209183062791690231454794864600299612938626381657764409398993236694958610303205443389209625306205919974658576738209235071371148027155370595729854396079838826147807314010536114921634550878928198508470396032841584932536082763694109804406911925912679738295736822884999995073474963629974199003248755688945924892740736580669889433014649940992537124446466984419259514122832078843870938162789107810993270600152079797709648280047521741695047513726678683080398042066772712669810574907756191921253138527245864433824060270323173193741620349953996902436534508632303697072474051469340767423507966207335316314520902650377134819269551095144344019467950232303663639108154874034005689165643874083625850575381317372351920675729711083276318837558910288421030441918714707546306847558086515506752533597894923318004168625432933680196523079485803010121581395477004976070080137877889472567900830309007597188959106571531987601344407012432449581026208723385978246968987303251358562781605479905033231038097334379067839002814104507749605325597738450465006305918309817956987110490325977670387561447367359345187638882005663668646052475244996566504363138964654641637973805890559937812073311475200837197563088417260218489264434032413216964097424625944850206289823477563630989320792836072851258935384205668342021116952260325431614387791313267411045807782741082455248620014385322830695137587702372175954438912980008543023626005176002566178100525633650192351642110406951941246265493891633363851244182773513639663340384786970268973649667426899426144129008355040235750122682622071417537916724906551231331178300056308001892436447772675085046367332787861955842564057373777920119930966648782626368137820099442091470387540946357339974437264874605279075954563524973503922324619321013382959962962424097652901070522350524950796568757731153496185114154600022248548312672462962383902312286299896704424095066959897475427665474403935042770905817491520952148387299312912752661322355985409741426639780354626814102318404348772286018281097069463477725841616063363588498620850330149101991952147900904500955666619124823097762183685222134520870988978128461053619657183090212429597835187005727264233794707310786776858382138959096742090917253094575651470332215023863444019987242557123707948548934744923019218966935422057256487080799478254784525481484044619471330443971919667756640559812440121680488858007548925338459234099897764882451864012754117111707061159841621711243647539089686754993500207103279956486343647131573130691889373547414866894445826573690225187319897002183398250314530125294030498481915239770065235652946538744033063061598312976059272272888737860569888464343238578739126626300246283315890455433399506619077403798753486352327464102452715248294881901360926104479851151426910581652561785003354774694292291537309679652746399867817273377250538419107716900283613858037837150418304632213997900833302296275716674307407748394007090130152979774810840606205654362720901552751269134870077266134837276158406444887867143494574491164209548915884415200173061440068619172248148919795312940689881597966208788004656184998201339867868377953172659001315540383068045629278781216012086724295185036739154657343055580196898719002772769058803629820266335989177484930304826165024873010707575299615228096801657841218265527230292167007223476511815699401565400183746143809672812360478665129232517814251701025461279635812207725156387010609116742365054421823021592667320681470468227200373948367647349224435199214325612619748101505049538075793071581982646279777633883404515008757391339957312318062429721208721659665342713536796979992660320868324003754311754478542970776208853680903222384619718383910125508107421768004877811340204556392123387018506026620184899472904530054661620561237841084892152679059497564785487306962940336270354147344578767312240627343718978388028832253861979803366949355776659152736811976100626507506242536010984295334560458301897967453508597717826242653347941712775678257811994135838149882118286568587641987133383747440089657588503737337641357118811496233787155693473728450869513619232245429449237483824010839430230466862297044175766470488695859366723462994171589177317251783591482491348192313304636226360314959090351110062470357879261134051756115430199788251844220789305964440187041846292769069061863740422076708077713549183634351220003117791137296736915609545719011055795947424940170067792964163241166470925739031226501364420093724548565906334492895580892954425504471735574781311764943677402166343031804515303299547081062669998356477660768071111750562559230553444267414190680130681513954366781339245850916722607490517820196901255180465075201865071719742280730881470202803101164457055767959291294286509829953275592130876157667196573642600330703237390465240611442848071564055415526571616958516984283526151509587893264034825046870729483004225098853438171724939299830419631322008801134912128392314913675086733265559334567522926804470818339496350818665197007283252749811677762986950011275206676693900443642263832744820968190992730345155770652760868413498032576914530620798543215791972192948343670950000825519165354498488313278441560664051635661349313644758299315787048118129344379279062669502740723956185444803760021930790684319524234311296518071895679336271799832334300543215186027854965856035973921758566813922409257398699787713207507086525552511611003651437050069230511540148523077091555986812162972667518300802939648930767667979180571561869239875696410197809693527318833085920400930814091906883344347285463577036448146512974361501512592118485405914612184343418367490474022618330026472786203340061265109395635722383391808368096676545749530473514660089599871972334322544501057877584709602944260491060700950333440942564720273230307177173733614858267312978334733723179276875803130725781606791298157148173401529686598096537365243742288146490997167955817594676799511543607700875591041940998773469673180531004517612526468351623754352290148717774659801985049891827812005323970880052686170118641720358629330537197934440925575590655445556719395606959334517639794573224952445959404056224139150645849195597728667195668620498721313533112824825721298363663545822035677303051331911738782189424248606394199039469828941502086341541829126417452743832429414900684531288453907512020095830868213020447842630091288073521551044527969564040443413306766777619209483543973927312713725547919622863543464111460429828357650830680645232785995510811339489477358278586388983580613045210712835007867382975803966206478354292565548521747667463072652049061301341521230428688928631190490735996476925950177727996020350388900343489250069454422073982381852315775276390995770524585170892915912174405796868060184360480177324563986251801982608491135439034995740641764059306771038748472869629472827445309611119429294238939583898100741218598017160447789574171599943073629203102825047656527197684343532003699531024891649750316919373364559043218201919347307426347202703067154836838256158650646475186374549368882498030972882227972093005477671222912694537431790425151705535223656075769804819917949402982686762668353595924944717537466081768869820410734008797272562277102639913505346116436833591704036428330819389289321402071874764374457116285274148732133227934355800716321925294788633724056472716171494198350674136849601548018004012911372708315440706070138898312712672173463400050546236269919449778950355358083554526201987650816577603058490485646262292923404407346663776074184439818421680363713452671278031698193494568345293306561364546796759225801361131884554266439741882057735060612304020386713528085468166179091913477097310370304872011935917423444564498274355773361466627011944789293188145636518813070411353540028110573758970647872314414004183781497798325410001787458228214321604602582628154812251844070748012957864765963920755210167437051098711883301818178772090961878115366365642856959346387173611914932127126149979143169702221568557410032006569273828871304819129167421187555689641336809199684500339406020011199238089642250444574269645480390719751561276764414880100026070560994915803315318439619259782949243308910056523207391186920758512474431106804041872563147101295641884810648250982481696000173250458394018791838963310713778771557397544140953926005603071761324281136370621177272998208889496678266559017728687832245686160307887940917533787409617459175185652679908717852656731993209944272399395029679094019245564133529619411869034818615886060083532801783775260127257484155897415287711187405820842425384102173997647232862330095831363961375830898374448031469309391625205552748671041055233356953715621950994977403005060385073838622765080942084049674806508404357039485009694356213092971351704313073263743509991646728981193528791181471201080101979783728102253982248150920927291977953010660010433938108677875046200920033924853053383537689171060928215920998546479047085029922566580369816196862327992620863939552812219443385648290015326551677894304356531137592316200040598944444691402718252324885636273332005574500687303266297027690773367336953316244011634430607708022363389996556449441376765047280876506805840641404215535103162725848966966024897834736740527204852769670416917148726799432210399773259583068358308862563324947882031215660797027695184073169035937428716013015857382465530324373896329612664588905610294488423026540533923344642344689264290778770201501452330423832843196371766129935221248789829477411459904519867024022423741044635212935925731774651134310664272247607959148366568236041002107211458873036349523963348188661062535687091957312130259715297842953424339685790430785082691090378265295000957411842840917455373376996310732777719193271255354682868662134816264942087132197072731983408516125060872359584698758714226761675355678612343274951176800381506202365083422865500896215829649140382825141275283248775721468597052553320404581958283110046210498858118185097249262747328306778928323334955679865644076608668048109506537274452631894485287968245244615877404152841135640155319339068435007940170083668556916782547383377424843430770658656144054982578991624131925106242416071443030633052223100513941301320675083793877313235482427638244127364237667482031191929090133887185692331619643386613254421799483156763820534673291973883274759496140623599456176029645539390606000558034973723855398540096267000035337470704356971361290713878548722532650793273438639158671708796558462443872226890031220071530997600993242319996866976943625285653258849125532653199176650365867942354829372537104145476565548006070617554343800438545910664909747498325078421139221605229433510133117848231913647762754125029529153022948931057333135136684522051989755922066058325918352483765635268877953658503758255684124024253370390345477446395759561575460416618729917517257671260606615588944929502139640269988281602620601546522559708708993943360248559931601252205666094958116458139565465383037497897995788402942082177491986966347381290392881068964576977728447744524199340043195936107316188874255297228811627055076050246704937019417411962011108644441006997500455342855333519911128432764082820922143131648815958278086595967190754521624503152408312769683369069530418744712657891978840710772359049336287117987609500955958943380658728748347849628154015146861337311068808829633448508464168068089243404945561855957158389250038180610212072201398185914121551595777563650981947657130804134778380029198923606350563864769962621134591015847657393958245140519757841984966428653866612889503977362977013175351964776573417737510460106342500394459841879080145289004546608426308058851800287041042371876507448122963523553239473824712043585471917738635637437296823318324234921398318935207445836677446684700623625406547559197302566151019078147328788714657372046071913178689667356178699018278902449479470765330726606985520989225507077827609528566460880149311646757413076807712237053841058798522084032567084910470409156248878054606650997003072972971835767599903657477473796537085023995114711870275115664548350912867202464413500377702977773438815012665658963816671691571955497909832740823521914125729085051385662641593904261375186756424137032525518526604304132488533715798087659036388060291837457939104160208798020051589501021306897230122294913779673766819505451206772716135738650178254923875372213330464062860676397873750296575130397411003995983895057600790996684184360139638411515502578186376867196085454389745567261962791257362401159657578611629818079293126138116771071248048193878872677961642994347872687206912812139619480044175928156213975795642248139348833871405746370720252900408948532250982419476140294295511347993475363227130224018862093270536356598017958697894436585772808901464340225504637706912813356806020260293477923071193203056749459775146797155247673933637009474509822419247151388466508290940314275229031670414174749720636527388285818191066934813621246824407902300774799025895272764689957927011785617267853300832091246544219317211381142605445740600545829137404842556071845371848452009712188822101625374046673789443246187150313392937461859355164678845962454021460490541378619772171283760153767793831704329098379953875024910951596839467940219130760942212912816752012974949914900011350784499597537194432057814281877724898500278317442958546839861194040016558370083465737754788061431460599638847010277760777938761124655600398935826269619989269619329109578016000634995754052595885410721451377480580292615926738644160365600536543044772821068367140897407142219435295203292986340679570660490836019223808442701235971081564381149869911814055099684810153295635987947543055715936029636856176836321344196565539137898849069943125045773899673328575459640436805663336215703425974615777402325617112182193983341971739436596306478769335139502412821187992024714919496469870787860909273137477320405579405559534423344369360489447918597638776681131122628912671640801402397545156135859867980565766309246632299831703571481287474185831941057257092630224909762157177365688401723254634577370088129977700859491957363057646918587813623131797185176692622380815472706867794817519561449532947880047181333201834032322850012406811638088044284836897063997336578070327243658395086280312738333947172908905435525489363640204543115548251800045022448212616785491918035716314826396722782528460975374967102158862021666560315437653759178587653638910883771011894508135271217256546347314639322765455067191639801059518789440547017465134555403502901350446074143367669764425953279289740288820317668124934948868888346554930971421920990748651158566511540426911703850032160199487242229564003618173294216792151011240592136880463282062754313410682944622238494030717891562839213010291890237900715810507458017380737645950395908812614150509897926222535093155065068246408242785515704120526326896460531076473565521590614647250332492749395038530335262760000001418247013775143807876146625320561747533609970703576796093763427577895811257579322011284168046851503724327514487411555082077251700785061870023076821388292695086555439227291731465245022065729651698916757238617457039066626705006784628010531301548796043411175161746210002355952103817808235539007469979664130704492006081033055532291148299337164512544756144750972555788865797006629856805947993762281134476699528988082076614682759049799784774687276011975313710582887288874968832723314894326631295172934815313667743517074446945522065289396753147253102867936824187567158028022194369659658839432951394395562721666316796080886994650927898760850757261848654915322492467595121114178342627955018006889913751148899548379977964167087727860853559846558136939322784732856410261664229453013876529919760830267155429587027312782862895704814218529648132178317295221091242778950028377783241220584456480698305020147242381694312636365946422654670417327201255158515910704358862750250492867791316717374816797033286845301408068880037974306120159078075645274433208298087779449284002747401116379473612502865190349350601180994959761874398437732210474521822861172458620612806134462437536376198829246183021917443382338287747106093208330793957651276396317046158255316309797513156815104334893356080427431137150756317437600341734883639120177314770396740574484761045293485464846521424885957907753205030235420455970751275462438869313316196612219274593004465277050810608876344027171697676592395646285652707532326773685221486003390047083267611663887412427112286826438350037952923672089374797104941198665117264861197535009258014032684157499142916596123534487774582119489356182839089154663561802622098147825124986347799606678104976384694387273032332111402955947382235056429320055017372868890606384885312726688742960245126255162174276289941141692867573038946579166843815769401118518047596874880499586139902035455119865037339045462184277126607569510358132141270846964616368408499473169255986619600100676481827994533025513679516017690445273927306964860706083062965074063668699445439555105909553913934581899955011511981752867803686887945318075582974810610694481451591658971249149615413798224080819039060945915782131801258088325687208930147654134999407610636985917672626508837116464295652905622675805758221890973694346781391625918899328622809658609816071773019906802036571032513998861866886786051865379986263693114103437358844190902101473693547554518662401798081794951420409408994207908994941953081020567475562122974733000850429886990435750710755349582167846287392670569130365717996395753606043059368966721696494723416593889536790482534247411239960450301605554696366139813836729656792328569795002983648204672766364348718886578878206435425603869551456463710554145307287209295740206821559912680371943929375471241156931487835136206646841251936282972796546967264294649060510372229226218039932425923148291340054032632943643622053922673540904936299117951856528264957763763353084289620841884404656715570437809309140493064908154420483605209902280362455794776398464145330282229829184484208095806479923931043240823257148392398179331991937766107398916067486710907843396755384292780338937308083465637213358862313593550005050581662824784182608673459356615108374760265901218189607031331441332341847344550739351271115638000614856098594047064078936134232129040417519038869585600205332483343656781068863547235222960360067226285443079346078224138339720408682247731057381678732746153249043351382172497942222176535662260523132579468107217923087067145993063982260184332611107416729822229797795160837914299142755226223059732245742130572874135126249566811215462016816130114744452203867232648738323452230688939087014054554296609022414785123638336725374234802450477068409978681954370400086901250878120898704641973628243932001025040492693082663402527159098047092548508379087564019741588884306231864829516742721243196581495563800944683460670877177874920488632858031467858304565034005012523109665467579250641830968570897394896306008665242263434846732829254462115318997506935980621331470146519433385675588866873394199838023674845911649385317333002707126181245584542618594241889286850953694256351487355194015528558896131183263148015194355298767779909519628108516180929423963394873264652830250244754472868939578255433872186593596829425106950873399356673854577602484024929279400535924515294437926838390796786451022534464658235465753822474920052344311316369703419063632625144877034398435804393495271704504740268654031301283448970291850397795651362440427228105541002517022965608009947991747608034418174396334233227702641393350205613890338309945084983723828712063012201349861879660336557301554798417655429679220176529467499777572394591667793120275559159583411539039232928893341653523375755953405752841205590467948892833756914402652441795116176839532586329470321575320899104359937885125440052059312825003391624732230645776443443006134883532148268923270386027414649505031853358544027225619091065302842063770166660491535182189123462187366986128414653248240883776575878941041892273364894110278827042527180664011958659777337371255500921264563329829433579903537438356173718853069883470951614047500547234265499032047540314368890715953375013815166632257980159964674280234923432715675220221277995399773012650437090611996293940186952930914711036135292425335257218740480695085257009266989921100620940918005585140481864596474096403835892746042403079344021751587669481585961076877668547756147167382786539702818711660266467496642184052083240789307737419888274067111746491476020190929386990353118803129574212546859896123679509676689546307181029157067887096030445664181397907378592927076787398050556989420100420383160007088676265688450943238704390912937801763644083676808289415196525795820990950079557923913720208187118773811665615310358763298609670456840161602857812643408959836524083830445486697080654201545859877349346760262033291443482016884072579801285391293899807673979039187359883111062865245745135111577340446766525228440442275242865313769236005832786900802717039394498619564087874581394020155811213398311739887077739476393045516855136555900218861296211338191708105550138297498134845932966174461352404696826941619779484397116605115907895115833162144084396936975283318099844453920715683695186424930487565314349786386659621968454481348103787487560570261031946899826501565730974701060103343733269917051122791673052365043828846927358219102606600274996109768630943749141052919505890129275138678111160198040325398651078184553232983221055055291678902165121319448941229349008539176801201146286137521746617158481625374535534972663728554625829308103333235115936605900337710184246014691676978601153931259624258470847116906275929144203741626227828722728287527833736007658775845977552001370202584563242877256734285628263159862540116337845703141602529497856972043539875566077653085752520621886202609554426756452217263361278478549389882284453434321609735877963971719102821141922022811598354798541209299684002496486766632368808094689158771988360540432325478570597423592779272820867775708188474657944635814074872914958489487402020073203329355606411089306592952062734022021840046502120607764656511418837775297366796149787124913385584787175675844298093475038582875219496042251682986284230145233841663930599114792588772457525897619825486286952846613789116480952623042029158970657724111103897913456446273709866658601541868419650042939902902005181318955833372477736265298673007705348572412682055169503557154849495041157233321855940173764868742172673068170649351545595777445368979505615797627992361638818387809574049089576623535036485636651440037400926137791042203173598471461476330332601419307099267498519410799163281698951492272817515997795008901848617145739406006312011677021690859229533274923581953220255835299673946738751395910798547841642317666936006621361185203238044556797459022688546330941396049722090565306280586128337358244194635519594483569708660331581068538240895109300931739757999170357084373966487401387728413256121416598712928062358146388496057221053401393037145774604207830899054500418010195184687477594817019417497105505989009126736057355375437286476827950143636696991499025427253857408023266413340496339492494212322934434312768117728611473341478580401297159008679660632845998655964084578615416301433661530428173309102128394460468714847247371442014600672884823952992192837333989280195592752066970680444430638185405389798571355796557574475176584992599389044364613977724115986443346263160870579836651740361589357897923709022572802630747337820591652196559762879168055349376810416283480045516137583141713425178976915119702076099651787957413818041498014984111008533532717706817848785150832273278046212254788232066705297764268618642791386122559579423868701269307068796999707952715300095668225969823079842877067980412838608232938392018135761492502500901952180430686090515734932067017038865984925812371841356057262659640153815409768534309791000864601055769122373499111078391204279013635576204358593444166409183685804194341268179018842970329926170944217890083821634676545711586278216174339416018720058341186820294028716342914949253151215137478723494785160718955325958304677508095198474756369625029501972127971258813366982939515481064407959583157931707374403335919970933710784369576924703549959205328998533380029175517778857731039355598821601677875925388545425408268323530900954499523708476556296167322915409041561517976681648029851959965303038013710381056536064951955755915611304021438940937722515566747133827311435879557982676431342354029490691919543424557242146539096692121172307372009937091287058016662326943432780553971449534562823909637026380828550025940979034641953197483410270995326230690769626163564313418820003883015517337437084228331900175866571258877481284345771111741793576583907178322425738104938781093851127427418106427616421888889911951668453566190258650956638932149129773350949889086766297852778871796933273228682006938130963441678060905436139479268150583160603524131711932805559982358456846114066733287443311152310456970382226289969249231008747655028962375130279444625044725727992350815437732673497531415414841763543271803854104715653258458765995354479153864211044991749751759407504061435555341778522923233755012490472890463177208387399358789187790605139429915298800182134139973513442310567023294956650989077959865490436415003302298409797514054222385162216000031853133427167105903542215696431294533827989791422019322994992199615674385151371516949978608349223604983602409192764231989586221982378906821669235236414951723711501309017873899999268710279207006929250284749298823034680909544063441722161565171080472576018122179139141825842008989317860501814618047931570996333274570706638275493150129346089631334305684897438764057580207505542276362697748431801131311607669835698448830240580920276496502375545552638338210948985975654673453350866847141191939724782597653816577285440435785495236890689461239121824841437881586454458563282803978078604521673854205609705103729869593240475435738059782290164133366203447965098539443179146774109224195820109881046223940668685289305958037247239780323728515735624082265968177171589311408565815789921741220287719040588418452097488104712128494689198353710899314586089729856206284192132131945234521332517363948903913508010588915421423602430292599495143546719676375551333129416952366022569746978645825968950606539017738677562613754811970563522355170293510181985736756731838015374101996843913694298508802745431330947241868677993465307012213707185032936820727635204709908218327083189121457903594834541858261155204501054517488199057801620745232161115993298130122018149644864976339918015072024062295396975528759463583429080910514744617446298764947996872619657255280626242096743180866824532970440663628278217979134163316159214522043296383605587614044632436360630317210234606160533039066467970498996826768226186963085148426351168930347150455653793417634868983061260006224163439351352805448607883016641035096090017748032494902102051059716433656294872977024344787916513390171464325153761206142891842469781784295620364639816409302822871903274011137854137549562396648336525131239887331460845717361581055330616658107760727547871467882940396824219598209313590278006825428574696951459303687802657445137189406968106458585760058155691844750272597882762839631698517151856334564810859536929227034713505189380246398845886305010996163207783130727758975537663363254731395731815162306577411257607334461085475336827901354771843024069391824480581806917436830520386659778603240644887110913960337291671693991631407623866682142373254978321888191707821837815202522128163240839990884378251363207182029096739794252145870784129233315428463540798052418190097545350308163093095956905079025850041802561916777195998035747068526213141815986775969048102899139923488977496080892406971722684505641752738930482624428191694281461448291660529794460775732404026363411346235833541015020499787353950942850354021329241453123855433770082993635662776271812588104484255462031286238027698941186187079949357202490201404516636860649939147963796582533270931851448912440328285856603968443747060646916548683497404700117978698724725231106313221196883004172964836925874618087259763061804577196421575118583314945162412893496646992790769446036265176718619890267253601646527725311640883661525058759562541802656897479191222473335074346994764622174352537193420904981891488589473576645214048224732493910237105806460906545682490811248749654249644853982120659338932843750491159268523922730504624734750234405999974147851522615605901684914637183734534028354186323036073483612876596463897635666932619310021131577219108235664888247974732602913138885707764620867543318673376993581286945985932854071488241062359593219221073832890245541654148473657699416234311657695840343362729233042282428023908211665389968808309336560946806223066088387136569719006687938472634641402874850059689281309166854811443556396086488755356322256508423191572359035928565996461024651524273023899420898088711913759667863782519439200369805231963161517183530098525649512988461289125340029545705662360432636263311864408247087944373452632909176827437302841579984287584794892103860146919015980397775227056649193591322855013147464574361069075390247529936034626179083231454961801770980612393221241822886122774319682467386742012008050211620568061788806871838838286414952972082737967630128432349279840222837764924473308132481023611154814768561068842176078584832634087192845123937635524359884383107930902118774496745978982480567315227230813528312860070483458150929366390718317938039102480012788987778419387745987278341341503187934472840655957483156901921530184414544688054068061940823578093145870311587314461618251838703901431502201088441096276771959148644496773973153911465003638022460702372080047286826745650844294696616738088228203263311789191953461339534060373377356636397597014387230699789440822698737293566408030053557727468322189788378493679255684736944900712692542532743460125853293885784588864897113195856682467933165860464883308496843609290548115507759203806126692991475211829053048621966591250077993948852110224573609930587093288218979254199639223219414180309199309152204863537496695834758802982303073654604727921838276237295044093724542536821896841470339555405252655990806143977848729699335917787512574170757160450720571041063598093591072693286198179934043860136934007548202568230563608826007263219909831774823993383938361846143101545497290040675153621529207772308265875122104828334829991140643498609193816204234627837582070287453286383367563955895639424981147083729776478166843120657648470988164547012347017983333074336076565049995080648844384023311428518321364833070285432903998186788415109939305873975518013715892970585496813580972813070702777835844995902751407251261557254904734441084600757697679189422367425971237774910270886600855775490193230208219093978230665855038775876557474612393120053352175909395392304262102506475802379300259592099408197204368358019897407663182149898884655508806656754671798413312051399932660101785835619110857800116369077737752586616408422377765039151415436267283598470758489128399806956426282661437766869663325849178841385916653267885665286228690743192291308661577344296660714806259106886951710546277090350834498263885304201370856611150455946340750479582712137130714676572461576605136535127944604308644197876543377841745330437071371723917798140173924043879762246537054798125466070726030944176077354341628992329913672467748679917971500564098764301200055868637759208779965403476032215727554607067295132229434495642020415728633082662632096555007432323707248279911648228419792508493533873484658738509277569680739601691771359743201748220727346269021035541043899630505852104298499205208018663971484548095976555040839111138860597760914171164589596820764359160603639453447285971239928381933579567171553942187182268164434479307677214128380840825657981951780197990715412061209516157696950354820152090623480745826582929763729558228211189108209788274831910040115531050582832881381663687926279539573098727980447390175771207504839907287197800211868108599318709135162993328394094788829869309810128259380178948347302655128538321745714299107284525630868620430640639843165755469525279831542680971448954583858994393891266946249651660853053477611193857686237973219703395311233486569805418275901329347358670865927635244642480195956165245864377176151553008660128007163530726751380298472685254731718840453024099552268421046148492478724803532932073090909189341454274838253582078560155269922855786237542193746846503894728067657840456971988029632545740534765372190230869854442923624967239842889916948465889442235254844378866159828462467297350499324581941160779935839554682068822401522927639459021565026825228323456644355503039367294735188273318702719589387919507733759433551479333983289668465603301420440708692250911632815224998886267602324687518982701133255484137247292715063983688647077246131108794936438054472024712997843070873208173997503894141150241587334427937241978917183305493228144202975659158889353748410223169823097261487515430137698199188336391050787291055169088484140580423754794599281768952799769628742214477467225060549582671625817375327478797822486859917476464139945172198459255550464857297979778429764602003764591682849401040383124736714891906893958821248364046617341540688037819296766609240779307027662762808099706008865707335343597477760474578158699666812061081129762572651155380949528769074976165162277838342819080615517755499149026758336794654442800910926779281186726791836167173382480067097652920938347788632738062441089055024807901378848644224162771789023850137662802190498123937145745288256852572691956683481187388978385343575659858064520969420287158426197036058774531746670985263751550207853778989863208973006678670410961500662683340793793461181401087120782502052621029374923477097372766970160016483375704717875621793720239064194537826906027730722224787407956131725295403512713790820102634538144754488768332381079497109705974442042493966174385488383582138452152637650110755730311911946099474430071696935968100705282377535172737348244756747345353427139837086566871345687569106977512313898574927927225849184550383791990120250684187353031573088038966906733919346038230370872755670971197187178084928283037945554141781006435358430884805958606885150581613262939084122138497375401413234503917415652301735956718987056835675124764055241257028676703864100559485776584027947260599140509529142342287938792474769788871129320756792574838588274693182834507868241916105410566175243287310971510908235416958670229437535853136867921428145008167280525625029339405653513713182827048694637757647859178318811060004247352907060524195955972667640087641896480536653833168174712647105949873290367391327199937431270693913002163618165915984761632153974727466735390984033716049061776388551176276302724006238494228316109241426065619549753652853898483712866826167440280742765740924176824264719394734093156483167335813916928430539006209668151008203431310625590665361380868260112704413029173772609729604644298460510255573724094092832014722704866687483693591842085516409012231487763019363383449627985438483518358830175324208056155245098984896334849145973827038117343775161988658614929052424324655815176086819026785693464503009122733443836058709582393496502920174674580749002186130221364693454840603906851378330165388143899392659656932297878619835016194696118384575579472961641119802447772912586318602500803002813020748914054429425646703619172965971601731628237611851296729376957426660397303388981873096502311879094265404071374462491163074384349240769565590213251920727069225231858979316086846411108388455565209711808992798988907516338363382457116048354225265463696032231247337201988891884021431899625004320757347801615969292835327253495551782201578068512319655288393926951561585883290074472671330377574353707708941336394355038200997605140579537097755540634244678060167561620006481763307024025384087996763636375542392725389865757518698402613456076578045500743435437927011612085306521956399808220383977064337275635604727400462553944082968648638257098866136466578070048535092044350427478291430525164669551047074642301731131686950302058767948498895465324717274801250890311336627698912436978387106346180893284933992157668952671944028249669346580272321065793996070306371834327478914093166155038996709604142141664803442302622846182866485350286674087913402901566322023742102217018541490092609166055114727053225017303099979030646582179680394387687675963271154367097251390421611880147350750088539884687969722102054882327743447303371799643345284398886334786920749151372446723070704580711141750038087914897992937804400444925008506720499538909364972182505171680258672783598406403507698774172800615751222187999499193630645211513356520032860424109299856645219759598951382825909202702961126629799131274096577911353799159192665182736573278215868465126911663059127672273062429496895317997048023757409421114661317285608793870422844391401129465825923303658419948200259193007099290230350477462455746605781520321255994471470384729190515076005222990336570199727755528031849886756898913068494103232282249686115594908419568379899765565811396346880096019697824347313810816545501358944190922932916443538195645133682174635009358662149252222367193210804600873123756799293787696574584129894390202552113348799288654235584970701686135707108824493648375276640905353233117752503542391052784508496265659350858944174590058305594958636510587189466101341929268668025251392451881741598282300011256672142482098669012671620554287208209604719501386418208482976069515443524274636785801009395378998044358902090091811899383670016355048135070135083044560420061933229298235748522344353346156496299667693269161692207499355128152016754802410172999065413676479120465687923211406180049686470070356249743749955510633707667466699462956647417057688788870469011137566083625818735147898210655757417477812703991427072848838636813419725889539063427288473740863733173641003984468319599782575454280029467255440891916233061098366683263903323918306285267002495852605137176719176256746879829522074850942868852864169219248832038122252088567653377350262884418337032131391102235354677947454694201278691556390509479683278452737945710011921114437924793619159808650591448181504103110661277476036227392902558271478313941120328587510064596913631808222929846160538408594231927418134671413003844249499483696224003059912159827385569807279503766240759423158974039080887324543139206153554911341813051758142908348684635475630264360338918773015575562839950643088707037675362861952500622881756700363411918039856090408270366461458273453544982359449742694144693582377894445533680968091406059159065772680444730037667539651539010804159481309737654572893203493078761202038050311618758632898920028596375274406025442837618057134124618808053740225011384537065560882983319834093148326152727157201625637350668910039884151781007810720543288042399755127079816027009077314545872726655463986661659488893547251097382724450792067676978551460788140211751371270688622357218254545116394758401074470907038813641290785877262815949127161648359041995430095560426727159511197334739611348791748946084273712653464900269743905190257469319658392564522852360813445055786311846293704515562685888592389984802559987974941647284738982867367982696576934583230542628653424127775317208716618281619056819273429449082649328126292825413117352481439593664042581798091377998849863611169759753739366105178526148448753300714466452422286969965379093305445278716484511830085241309837614190641084813724492023384416763855344702206150921820850183378341145233008629103601567588103315675114897617528900508101354390247096149929476418438379538932169078185076722048624402970549523520247388769395027131693032950536203855021516129382546035827976233089057911315653626729826824206511329643630925444652091691034147926483032237815526456963316184193240428283860729240560419471608406010985120181341805898613194842136641241510740919063172366825258695750803499133652220347875093801453800148068727923612680644589129463812035732234498478734193250795782038919666006249311642357365884071513750989105147856227141632928813032416466923272351649225625286830028668705196114780228898609857132563828977260713446000326773436300426908220620176723919369150517719771861524145069919833259258755681028588019577464520947024209685967325554924435775764818725123092161947604617724923238111547502599852290912560545844896207463229428465487696941611392291681504904774505236400011692468540725817577373917010160559329999022949762645013323943329464304881717674853883628219527619879250526196329838475313081117975195057872424161373221910684417446864555656664146121811150003593770903972318404622864353556969490109667097073517386415927569644375299303595364225461727306454670927152613844408457132682448268663646901149087269388024996825254239569760571194321976015591296121717542653056926859297841861833573524025839904524007579409320959849299876154424232300736724906169940494884776227832416283881997290229426544579398529513369533820718592732520517749525764304239383936811396887718545068492825401646935017537027523226876982633458101034899030591329574034958540004777424340340853772588020064027091271245499560160083813303450647979739284898552056057732144346753974697259184721184651179646981434955505417642837362043924981150328638688553455374021896278603847600620335519017414925724600218256295117211370462174861123666357031748503738383263034793871828903448303943061679014602174193771166182144200006161171120422626802600503577423738311962890057001301171441108359304969610716579774977851653776430147347382592407378807704278989286639212572262679064480920361723158613328870732435254396148355639258047464669726925653717308706194982658587227107606173023803301861449248602742054115851100603593537150693514049497234442126588342022078914588543956176890072417804809739514736302836694432354859507528373120651892116877549146442970705121516837503795998764090106698328984211819339311129351563030250454163360728082676369633989441009304062847007904982937702615037317067542340368601519469458355093681838814634860878588362797706389148125358286791008023362422459258545273911812335980218193569007069159442347871858811708784213053614892027478472742438794160595100760373115394471998514381359580098686916425486271635713864134918348076154949767207370400470610160923753570847528944365233291800590333740049006467454208195129671781122308104009355152459386658704145701832865222865203148639799360789926690694501939363617264152248516515841175781652441607772010435225465464189952569354797971604862757584199046935490036805125302250127773038999262122624371974003957613711037205065976710076313504614023319561218788179951024033687145214342278866567698762646703821879462665474919809981616073112287280831440212883932567872902486914801356881752191777005558502809214536819162556701631091841461085051931917269862728838996977137345294062086639725730697660241734294330486170197056942055792952915808098787455099694725818560656664707501310995733444926162466324432928993059809375427897953336336066821587892056213339719928771282987828353826508293646915484287292204654640622762270218129667463811924465631478059487627131483459043463163143885890865577089634778332471897782806671336511170535851888890730907346905279150328321548296950545523017109857985824388598819619745166231750317792822258308255655966608338537513314071541915405332090550750889730838303981683545895127680938371345710980901320951760047035857224925215728720246271948904212923796960000356488077945226715326164332288459439344706817810349699438015291256963663449344731362609389773089216379641849431262352609664246813730093497122465993747829265341261635806069271465541054936414683001304671708273946749972414008103998806934427365717959577099171537426563707862897910149770532816686408289562011528106712210577490146822951332884312583741953208076728717093598569950986034870035619296562091199513491175797397659418256487168256989977474853040343907588961787672236100603793452488402007951319503841045587485460257321456552266706356054898314248398350242241538311905800995853446412393410052033208855169749472954425066554799118876169581754049016920658763657713451128705141584053758605779270588953066924204313342672871573709017263393382446585586655905295686731468465993472830156503703527329774952780012320359533599504396445170018816804139752451634018810717933278681255344808789351763490747693437251303796354376404579901065347392392652247832004304782584984018830811977968011599619093475687279849565042551096789387089924699720456070070440327951538840472475751739347919386201467088857103378646215475203889906262849863585525464345183987657663913085449929527079504349975735112478410478535193496282469570899443524559721441107744398072665345319243025979592001607121166303641695439802539497860065344927277702043869360827450545416755655704310317474937562595222795277280786389846951008650512698370370549978314386133065278825811168873130337827165760152339091826522306671561712287308387266829496173246770884295609035290460308099428192023115327061505191501924578168889714331665285428524551596634406139282752868509800091996577259466804506145975252013637863076310763341575782434670631898099609735632359979468022938806958910127410992658360962836731097033749184798938244847093332399228267042303079211554467340803773410752908044388688718546685061801606411289455372478424947422805251987674436546965378810003158964786039463453646785231487313006582396675222725276581749538811647356795958008562618677746115360836422425575106440693614740490433064469502698485875812510018190666306735098438553216783402161659370234242499987164425170684831483082794867920530267422391983303017547906965229758294369084648692264076108447475428318593809884333778336549134864892695718680110068015169334487558922270472159964138532855315302854080117797741751764742304079371198553113073375762519712713783128565520321472684745162720653822970055180139744089500500242268747931787186926687308060305421544544782715047601534090396080751830521922374410184827004838388668674291540359059689702714349684965837598499200407625378005571138545450107190702545738591290111759239803059504700643857159426073593773089481713048703653956195832163186480929290809976231396942938997832451401607352145342472774235431617638973622270091134373364798507177380794506531536868743547001259201148207742163903085340462142718962075552216277380956753456075657130477171291360178437080168809224643981031932294584133679049680823319755714178316529785979632712427167254671835242496245665259646203372795058657808500685951897868362290040880362205863135422565839240780810518447087282776386305388599273158284067157307984186209877379773122809472612697446116532627670355076086169407939145219690700765006536578976899690344580446232759604472565316255604214234446335199985530767204650236096385597750425698237371073278758413937873072530690449641639858000533101653434355713370556493089663540066839601319837699079568614372299622435841888159706102415264070513710138893314725326081053664248693093527456240178786767707436205140478934889954303934497968271140258850960682833836392679402429029316955809773588202877904126975573826268479629475347009641362725533947983583363529873091901258572009408694999301946356448201067589498878935353654298323281094781683643314024076763062158606553900334299980774607670050107939597097266041822651994335398644679804047093701814791454307367036210610629551865950839267675634682028819503835558748070998245474821753912542098773320009791481149599078170243434093318112487800084886658657179518997585803913636878960197807471333639245243700998093357238510813961947302287686937590255262800427404187653687206699300677991525396619472915701087975230881675506037401486425176356600492181627193948246843874432494576761770034299574310658652135242390479118162527953613431182901779568845793966991367657795734945330261561980323190913263793776545438026433899354766371878785513311530842088920036645893339299400012144255856347502595310750594381749383920527019925464854366179354213951231356602060453920024400404978868174393492153390874032117262457972678674748933729636874118141329556718618536159755780668236788332846262145140039286413691422235804713215270509906980724051991472930694581912498443988024976626318490418880280596147679390881710332092022119713010182246907850331283889320256005829200568604457732578573609161671018417507326785870495856101297355732392741625318455444395759087491698966157834126897988676454432725445483085806533517996326567912422578465168833622475314617571663513381006228422334622559344423399548371108630503843392046943237780331630257689694513508161587961024984295223598547195086660432224697163769947344813462925287116590146818137614600363348220174034683289408310862473872417384918347984988725911783552277824192925643143161965773123283184984611041275600257097174337674451064538295827401328202176868249855605216275626943927872816110440012101671925083855496496292970018493498372140742639246310020590319655138454360225043678617462637479027858152017791915846262604251819620472432749124017832617816734948852954208438851186478637629026948159228683455710764692907024589594318429549698924809660310796089356927180792068891135401678261126520010491217422541899434458794605050228588683942094637871980675477106538643057311577393455860009929501491768435353925455931681256788416397738692403190638874839425208189824423067609903934646630702317573247360943952715548674532802680366945680794547442229974015627072868006737974532215602986442920861089936679606506525516556297049172657420713295340898641483767638047788607026821181378266183197077177526356107955137595878182286328790392481378619402077187591651116647401169468289807062969115336626819602454353407383059961181912236793145285807871019252855007201734660564189523757663906732053940653721919123801876212520298487386593392724503570732232165587162807620662528569757016988781680723368835335573088790304226633287784551594249071403818042100209841826966560850785104407107619227000245042012868304493798540494378282572147969026696767954107888688081510502895256810643751391639231839282294845489630593791274263405288504705100421511338255946486163513193364099460980994582390810984025609837302745012412088481292685421892060608942983214880549841983395084154085080540915585952581112921801926637546830127762067672563595270326139384357900627937658114944870989998688568714761639393987363445020445500788610179273280851048792417498028909365514789050473304966238030999472461266919755466790916744573823035132771194553821882549284934020806667501076187099361255176508080056074190042606422710272485095122106825632159674698108732301848148290387489199443500352883979278406351155320797277024408789276642512583560433824177356110537065040054482496446709291868804088783820966055857111570518947955180086382894176227256005712871986374881201390455537283005535585577566097163216176260911259325615238552023339809398772956634274692712835117525672717776700870347371235411663630443035591388169496394872808601579310023531064502559782672701419236803154810782931877963350094285263993380808913900492907536955314658427368036868781274665957092147503535527959946346142935751267571635489447677901945409528947715988084347992159961729376492541938518792898136272007390982845643087019943734674212782882904940965471240257306223343119561889383042946502777375655447796442919449638603272218685555746720101948393609735731350171406890155958566744895685795623700922764388495178171833116274045917628031912147922620765526086134975880688652668545948551216316811913108908044269103810867320989145395746332462098809819914415675818597802872991862764836711072952376817154823257532166262647545063087084067394338955893757012909380424431642080254592341653555541183686582257621564583320184628090213074676565971973401007569287992784310076088962919659518205355631063745182473865002050294726794858788740143790394447117311006956712838281815466538600407923736822553342306347567246187078552736198744227159706549328606997176882405576457578149076627579570213574607219659220414579405314097672323976665347702363066777478926737189993630273988066267374259370854054552014332616076028405828283007435038766445386881407546183290261234207587824296783890041005287086798445564001344169357777767186823733006113328489003697178304155118437948127657589098054351425358531250603638327330090700783399086008664404561627946712626466935344923205756774626806379404047219780915784105888632051214190941850776144435493566973986520412022339430153815370859869172077553370930328536115131809322092027924279332192466551495240617923634087409067573725846782074526995490878466327378421641106478313210903755205382396524327176212328246504263548005026014999413508381308600247420436876906006768376525542094676948679943070051798020581765521289516768854846130123115247063152696326711427224312663079045188542783358516845341094918915366340782220693996913667560088999216214324625105790042808295506685968177634319005241435839426128199733720239653930165865811774627540612290207023555826388986254312414209093056539773405390879371179785062078153759965480991188498879004377467850228600379070790927998849064339719860276677548110379662638080768722472046415171484681019680211169081007019310797320393032716087511518583345995519357309326763531848935281715640384795072686793804385959214795187708460222808971765823795494992755039395819738673191629159999487107723307022727863414447335705242198486784664520813789029947990886303652274488360072566357243320537820008279175996435264392892688268074689463404558421978310938257176370772711158248940577708030780417726444091234084425001535118114486649619830008600041727230992666531830554291971254291716023161316558407090648865330657794451274207963607679322467889064395318277546991580838129681265361234073172544898551556773706317314583074488971619394816387740560354721807545039317223615850125775020409222121077625322848538446067302483210286538235546995848054746213046242852804090623287415967128276408358605959083727028609177927442445973612077622631937451738293923690228218350387883451838609972097353470145374260005964972955092904537613113385544416623328222365031859417392603517045633379095630209251778126341129022813509057361634403064828925300811928750575041050527771260463284595754682067237342470600816502144723501970686582675090518799687521045798892083868084613129655184735608710025435034490605054627816891147182208459337427172926896440305239394113655811393582254097155002301822187152218345673994981576624576950881808218149399696778649856126450238482245728661363144765645650306406098426258167679523760729023756104540767330687556171907375047250529971750597218485574862655634596442132304298999298485535455122622847866048809050665426681187222642203581725075200647958919509718520915915392652025010258347229424924154572233434521949305576655691038865991435104140564978334571168269302684373850559903046868497482872712883814650833613348905374099669253139971622524070382085734222805963751494017788071705486139483009100344564615526385951396746612144661842579197383427707706690584686887237165712007269115628023011336847733192152659840988112573036051282242568949885831388749122080314853764421980994595889367755022576308542069452164381533066266067477993638385976761045855098631926143211805605282337005949377970653722228315125078100595949359531347421715521426379252331132706638490761688619666155037188997997946186154216597137274379595332953462600546110269875561427642120293463403776765125479405180819327759945665131033543717530260528534270596291955672077485199696279783351986204598507578167355959690413696375535638202688304629066736010049517991115709745433280464682968054570250532731517498818949230716654796366948181625143328673247206055909679014429418564338501916565759734306573290076007732041015067249586146098561173499313324503858540343962536744175324633821259813232694390535896743830201764946907163944461319039405666271140107506190677875187501127773566892346224287596384382260570163879337326281455010937880801894611315668464023866588616833259920746746697611005567469108037267047829469642405604544459438004637835296390099974748307646108230719216172142913175962709030632770827612795336430590204209940520817901732832089069195157823656610523317508944240806107671254302379839023773848818932747383740534149107580039701226365380615176109940258270737281277420167625882854230857027578030414303086708101045452737968661847138917692536370288265210653695387797733453555650386636961648519921291828986817273663100755816152290240013007369875954086123460922004575470881292111948008038104564503415148691905678979594735289017609399615837053775125299609276735949724148174177546612336720875137928987749327570457545433251544381158577605941745910479645506292674155215338490742170095873043427010486293595739251195560525281562629584930541443027887485787302628238120437436199627815039979791976515965114584119649206270924231151729422293992159793608752739553248931077372276386964244583237231670892047609393459828657013125546437736220664680076459517414879345641248626731578219958932162670583257297913676157794558441998355021603536731885835239787190211951371849409858467197728262133225621541171904384019777405485961444519711441856936127277768266130515554179601411404957329106703912991512048312253302657603133495586994193564802843894960250775065874356831216397808283429791489169478934180345011549871997042380734087866288489173323881742408824746174544089627776092318098109809035573541411921855200141688282257078141475458170435229253939581413704649462658599493085579464106699782921171653404845428990361307732017087508078455078983180600414731676035522938553258806073340504020102444607301211284227921542269529179564475604020939572410200231258420997587764765731153884513948571125076355499233320952089027570796472027663725156822259700989841289129049617688777887067723149943643625026101994940965652877584037614634175410175118071461071166029533544162854285139722090910480969954670999043658908083697400860177284864503465112020438600476700100667954764412870599642617266213268357071404992264872481202898304476423598586911764815227524412438717171888526048059733156583364560688243978115105580062726980039772409821493312513834874138229072565380128363342415638306655471931012043304072323821281676321798901191739033799179228063945678918019193726674574429323802813687745009802690683683676610601380158609677344208687191262398795736608205761266648795790681215277277429801017041213860862836600919272484545426063795034485273752571586435400696084403103823170547149195976334080182910619424819626130836872825548748435553154573132240691154933099342842236043253642745348989903077461358172703920322316184257184178887062427275478107701137972084919072709958974872952308818042324231680339044380997014545414684930742911275900988810359476071949932481239832493371394266937586146854894814651340724861896007215263937790307336214172426103512591052365435121744513113319012560820761481335689044631194219384979338671353435299736338416689561658722351091122798247527078137192985278204537873446672252984379291946780132081034255392303933705661500316451290065257849820424874468633558118391481699084278890004765392617497511897017636942261053553068583774727450744862937233057215547932962313820043226245037086574285063352146278100629072866266865694977316896078937650994061421013750316400855673198978703126337744844634650580879170121552320092436072844009911447001077819909332599175924151275865423827326086737518049169191532811724090944292669926454398238334660955166195075827190493964740552149227200123673330751260124356536174579454263145382129925258512175725086183916518291646616889441234796480799574863652575580931484627219932712553199867902820301835082534833266506007720232539369380503657574071880015536598250868925795266681635593372942441361261099928479736754026166333491826357421708424458122221757567220021121072433776400631916922413797114846143658656055820485770171565980796868335449211907500229155755006909058992543040970048105377918175059176026203104182346411274334103556241183619007969155969005160623807424606397495277390810624311184796779485673232772458715740147641557066736684796694850528796516375099543887095837707707990210303913370129829372470218359843506130000014904412702953624343930201462326194981965690490120779215117968196902718651043296553973650056071093326524528238575809350476674846013633485557572604320397481616424846450773367565899804446116164405261287763183579676301340367035049148667010441295305278522843908951261994566568688401883628830967731897296626714153321744861094114647811263782971698895383286653643675167253518669429747453908250419568886515755329139229866786670903576059611024050757688630491213299722444452661141733700028512158195713800603160287193593850747544260780101000161653367779629587775181192878089852653896827581383733387488354078110291392118912717666971755276799863978011112788887080535560212090035399009456490756840359106412304231817704254974365767675956253008387877923011392369800265763360385925869669503381157843052571356718203173650657720246170125346769468985877158775757100812541779666017824862294173874328567740351333198332272556629386919546701472848275109401992808088711840599958005067688798262349799901236935744917492367394943736125945585871054741093581108394453164964020702845967957632889486258627684084048566384613164534283593684547988811215304473974587872267797622599297232996213310801164856836312942684016410070032933339252839521564828801927163195452013356737270814010225149646193494660361010047737135109280691180290388513238410455528007466391357531067770264525711378214187482350372415202743124201009781561960588226764077474389846188566601132957077553147261187157884766778589595816555612419986013067855642067682826580261881553092822431504597905132828686759266446262088581044400739063794706119100988749416976568485025422947741656248138544003272096478053583322545067027753156019964672182525916074565447698262903143276974621856734303998514028697091569787402598078179156090628628060703842383214840731595323986556398818363470859557105028866726494187628932443062194513995035474274425628095732724362691183422535229011237818178398067856040308467506124924283078241508173848057268488122668933401780575425026692146060818902646940524584311632748484192908678740238737068943109013542120355114968185642291142148459395503115035781737973605599069046487492586069519673974399044488198205782672611063169312533842914343910466624360094575474315236094094967362555118053465114940250683064816229909352771915983856412914832756284231398271021520513718463751192227888830422442826950129678527611581895839070603622186145119176987581606586611805798658564064789840400539784023564680937773932520288293132701368767180764553519441066468693948110796122986944083707048237652882856765057761017367711948473524477484855599562249348141425957429799162928717474653953333313717315791311652842824992494487555504584876236748779950579593839993241659057040040245929232745368835412051939618855233768865006250073249966440348493122724308947159671981508525825203577880013431513213854848544383010984468327718815600374069743252976079999611309435964161946553827397410682137575972682716380683697203979671119428606164529830578138751861324877836739680275092502732770595151963075782777223094388515256927307794923438529902454158482576015099748044705441253901190339910994221595084612985513232563688153139861418134892049858614097229685323437663658522659282688425737769036260884240751285675156317262002400408573653635123605085770785854242334006338760819281426153871012984323008344908115141728097128114408956396328804373398800766452277168974810962837086890526324080673852027295365839047576210446311115464107698197566653739991449271957630948267820199858865836015119526441578898229140076732973258154999225071985987981240960576047836898911786369034052043533604456964111549477601215620592748912568676865124682351437358610863877635361653266026222210717746261792589221018456865053028214673556713983752993368808189448729259500641057968914315539914199144583899044876919426219841505767449100547170656070153799259638160388013040444360210467399744820584474953767777048834768342014629861498668275332856664413590319264004734228223079013940278140890637068719639504642533246165967214125780463875382086091846498532084687224631347280285956212480364234158094540263820354895642099353115817476718137913877466784792254552404087638317259815899453438029950942770148770393882724240972019187077658348927367434538857398706290634943624435461260300716450264900507167608433336692789403716686793075585076353651511752203629391682684286971072167485557515036101626104736875516902431944510111730551847212566530820317600220668260033003316214271296763999936445532825483022224823876973369844767856228938725788085948179924142192497638692730801875113007548805519923401493362050324779309126873228547639666249259039433957523152056077768929586872698511276215006443676305963448231668256960560565755304534246886109116560507154610113676062523256390561280717898128325028109683551236622006876676675664904585560233586948349362610388184213495042801926816351518785138680781287804321410011574216393796680025630577371923000601288818261923296388506592118422933075002547964956738997717115728383946542343558894000196635492744405201492272766330100084241083015460583124884758573858102448196211524839337300520970563975692907426376702624839708048134897469652951954010505466950180044053966846652446188069301625834107376362418232744654790235479830436589222300700064412129986568453653427094058837271365974245941396092190805728895214985249705306309081664689296531506956549108720897193642520699494286338516994644968579709820866675699335087032401677674851349516304595804889076693817367176716522945747172096123492587596279629122377286082359192126998748040857656738813934004175435359376656288358484252562044876982121355039828347544061606180334456268454273649672642451350138112441498590442777193599865053555667403882357067399462897193165869011131619793999349304815422651706423698228388409221963072115258278694336058972385896392788304311570352793125092024276079105022871284004098633933988751240745846756972452991557558966191835158245980119442457223167711203699287154787437542905464639086655300144033729052946984632085427670193658233578214579559629240479840264835404528869349484581328780403456485291443128245707926902284973506208069066688088633048724184028727192177004758430614634775422420726198729611759353058645487827493274380900001784841729279636531238868753504157315199280904212854197486168951795819324909817414263976489398829823833382895773241533563721638183747032940111307842297730341365960024574634544854560544677389034729673180601905249797700751013675181847603933611281725985238321677853259245282790705192087960559952052339673262242866930774577184124657271475328433160616193643966044662646288764804221019403435824626930723094085022511069620495258108835344089565159030189648409398216770709390992341447858235160856238280421821558455253798684914315194589403984208726799370187133926243340732834833619183689479389317493023858587344879782179564897267168162228428633757064165601592628733678795991647393566299591599091964782190321232366063253252883050618999986239089406804110684075927008814530592434758572289856224920136710222762974686129537035383336849867741181271201596794322777532724867166896764206828675112257516183414890079594991231551379793472309982081805994952039912607451027658206239029887138700590268926256995872791705120659387417647458657859747566201598557195945918952705455848560258812924451806785997118601336057357695512140599338862010240803759519255679253074435466204865655220289517078480458771909052880198938596672685900900956473065866593314181602155124662951854279594360372061947515800014651653572741976054235823556123889879489675500687304891298212590314456162956360732934206580452855643838456033691889750662357646518557777751678503495692860096961743452769708472646415701873595581837759642934411758407281680560994708254759841047610671879653194590839517384364639132604193560845854997064877084398400982962344080550536331231621392088260344381514064333293529751676803386233023022055243807960742251432337806534730417784941195906478475207312948724149024535121740040479888181719728036663075482414453978806329017825688655846620348191639788302983783851299459857265774353395172331667560568587764327273713771813413187406711079313649253859677549542054338045788486249858546669840660490103506662700453389142948333735148594306822855412449783227295676900679499663957820318638110897231808294079595721646916550163454434301925616022804419101323641491696128468223743370041856991997712560841821519888185140276881191756560079579137622528902517648781592804728449888242942320047794104547636009968341621988938269235643558317594892281197735236437336094791930208908348530931188506899218228464217963008838716353043952318735977109361864338606721974690395139041640399944850075375045658600349374636341270881087738074889384015843898681440892975915349122266414984152224445950719563928045290727529978516554625307716209009136669597041401208042911820336561281315514971423756623507524771794011639728738712956624205144211737650314088407725460881496700255305182383600650966127925788410351350804404709255098194070191055357465928902625946478027446928162112360517418197468084217121639576983616455782859683814733079509387583252629114703865729231508071863664836517572179609415841032267505728816408519126914968644260891852305635251246490417117902321070664370767532770792692187707246451347231331791958284910530569027161842892973154131958281731511184560132213602810731536231617719351392727151489211122772348823299333151589398317817020047272313654558493154772104353817453451553507834537646660175727691694085108974748785977862321901652573498398517850396037928140506102185053335145254198449888439730650606377449226952065228335842912900025503355482646857721589352121390947336793537248383087792558844052017060828690572558909050903436373254023084753926442564207536995907012946295725789444154910304189716747925415051242835958152661826408064985785984921878523628501160931545894954129393679629566351625121060680804234560858946783662967945097465872807634438543980833507808155559058409581486050191805381815884923586887650576338195857148940819669606051801530365902798694021195082836233943204112449952998906506341433356567502804866415624924604843028961345637462004464323570230804985436019710682548104915509375501366664943393985331617147304493075601085787362359856016554305313262151610164039437883597840151090891727227988806538866376913670942614307198603769245546462213168753818586961154581305784284763155034921053469093084539558222630192005588685273770497333408011342589651516965266972800420607931552229707029656666831974941192897326199800275693064811575444416819257908898615460713828084201133851383631008812744324082190254771533589309417333579899715823611768561857908719571764428373984804840149369106871007838189241356075239722923045497576099175864586403402138668304169677718786370898495084489888333406991092068025399804475365913400055189748396609204868145428322471993746628026884773084749701787406509566516719602074700044932300440778633690246502825786947728613558099129475019061603153790794081904583679667441071690314874152630494410713684567154023084950045027501438121371237621462527307886055772323419433040553374222226225185887196647259659429044055203131373694543048148283648054178682275876491020516864123935040675360132661929269036184803186816439955084319671916499351792002736156446832095693650631381814524811081423440116211435452396263407872008126425964617432378783636993278649525532391689796099511329483994102843577006450752826401823669234779725197350197275522175766777250659923760680273343890950492065096207276973976846992996364175574768456399780444486152467610905294286827520143396058032464256397873131364749637013483964385972304381087786324451386331590015941738669671328868486596519251352695327947529337656847118716756509283333759609843657143410255312522570917785520008636890990641502667375921652635655785631606124499093439676787902090506554508919191605840555675780629164096978221024093788331814963639026741430725749901795635994989512288444825550909599064777884025258251388667243630520532002593892600803102556438072396531413549648223637294077064528859962059061901613322172582640982046933969885867880592642397085789064126351509231346862899995658728891022952640584756871034437347570983133255369233249583966692931545462396406017791754188166424002735739901299242592767292894962595923736846108014405796869537867977171159074167821014122140414734845407502269148956737724147116524207748142345838248845775251573815739499723780768853623071000378932101825508971614676548401495299136441082529350768474999124362355378052268310675786671937816353180709517669371651676234979064361791637201185760557492131705612686435988766758295824113065491128047395805031082517503276984636115241640629010491247834072829345247113725276465439998467308302485701177995372246050165148220602892845377211289610645433958472591480240885217912318866980951075463162646517006927887424846219014850923356904544446024242034567440796798624811419662167281693811763457232906752443038465099879259043634391195798338278845384138762494565860387288491542880936210598307399726438168650744232093455723169207571174107456269270643405348694836424027493779214914998736521467351525793589379755531613265285449675249249251403161091132126796987892102568604395803095416573187070208222338475405840412811031596501146032037111782482150453071366404760364418878163267185941916325505762579563441063168466506777949405454632361605934082768757199718866308623461904668878587655046104946955159140030862069099999890943037532396400254240714765216941719217479843153845447424494742314677918346091915244305365312307539889661405303567071045154250501252941758533872422288172592146035337066464935389118553814195028317375394302181790201409978536487035823433775602194067581041238917271996705624244542098447852577607373131196948749501593760767140778999585561788999390661544905984321049178077192226812116662500831936089974914651399781733106232331204511272522193533025868808022248992675155489114345239983473507736484645007586892961109013487734989004799736835521014283976164773441456370893782578166935400804281263797471943875113507746427082119275852576809765296866955819125868021120644969846491874222155165553090885533569886490359329815469903351259794369532953676200480063376207315558040460268016447023744870619520102834624840706191321536703083026675538616791062492397153815883689479782867343166113122149171727602503782873502127384679401592304707327845663961925341177719329140759129918852945978830553332058290298121708227333417514778033024985184049313182731433527028901078420791883436036057308150690452021129827964948348710271057681159312320969685043429815864510093378255541694493245493536739125425471236950533799313334910989870306524254012132287302665395031444335963090209332002352320612756329831312571147945478618647466977972838895396781344591771127946772933957659030265049236189685099856781919670417655913518674773997914920893817577962038969792158137229880906446486840820168657345957554132474160198661550023123686602543672013487496703656367915152554616093809431426738091144530481190516716412014889472410561443101574322166491186801597529205218659944850682622582889506416714240622025659523872294163071720261177185050471316919023079760154791364445127291419474627107560757334624526249235546315112752828467244712292801719375803303273540825910955273938669533902387622800360346265670414411517427197048136576848439648663971928493467845643069717261877225855314677872679344818115572390212495692471243571869982860542664304166199783221598580794404415020261770944032919342266763819576188000107712908880857852662920437884665487961075629233016202582759312746594324848725751557601855337514610951963968858917158192152582901642947641535802419480844336884264201188299379309023503295692606995038732561321648634329893544149254515501510234984429060187243966691165102868875769734039705622595463702293461946485114922623871709953932281956126244763936048975474312605658966388914501804636866980337958012489961989480479281021083474143716344730946887309087977435565153560985460453847533464479154006116687437952477714744343520471087938522909909762310141044275053622321615658230761342195915679632580915517410465344265569589774605392513050066708038080866047055640896915434203452665245781304579951125488398787064349363967647783291793863918796436260540940537994679210207259512795318253475325104675169370760596731589729071069471138176863043716332459944526752042475457637957271328788153825318135586917018026156454900159494205076663087667940499332275901339192727002437965834822075766462385554215766779279587751478075660168503947185653473970607873515078306275263471144241483740696304066542247028700597386442441729485629238395746452255839202737457170408198359071989027555530893432369817530823908612958028381061822422304650183268917722874588215850493513515067724043563412344705425904101992614334290733307469224592065932310208939335483743964463212144217376421178867315841977582000707389465626847034368739491542871959079679155614679595089013971799588079513345618401733593114330632798958035176048164517941023321902505024101933901729177699536019019848113633275259035838289151219307871859067097332099280496396031001302822161158317168164434659892652903883883975302757505358896748942680561345951581707552692060577094409507450438318367830160937740227969816345384883545011954488609632761264378886341078262022244942442215169400856853810799925494667838275601020841929439457945854825635472591822312873992437834941096959633097541617985192656837095380441421321034366947151900082200031092187626041968367084565576670601621260191046556994072171621469342744200240624265281306157023836865037793296171950250704910123364712541991955051670094475669338952313710311209197787970019977876537017317936563207121772637066854177133660904111150822836217334636287427477601168395719786129337570050989559493715325948451601938865955437664262982423851099158841333916104495691854645822287321629023150244447674898798613224530211560293636940677332064578564326211797051514316797206601771121839732866778684433387049639915299922637112955263060468780399431350252100428423308441184406808684127654074873769553008659451088290473868189260456756052640966181619727097012827644475220863659321956590829808532360474082495792642999395764152348123144205878984079058937881942247099754990611356527886867677488720144253438378890599139899141834650935146147274125552994719904838951384632203529059158211209270782354507347861499228153613078532559390522782357576552490144306088546900235367779348616334612826049866042510967657003119177575448860433639428760714914452037412460569966054925868259292785864342043574106836317777353887185060873037909407657280359576381778240721035327322030286630104572872988517595637553361092692849299394809912586072359482222460715317386489810115976584145953144597432451518391679754581453294330185809673518725825060213573139553064933880506117912015490995828189205997024962302349039030069505555134571076769644346697133068321367863068095739386503562086885261307805709849698734742119698414603265593825097355101687203733151501310379737042461519657211705118909248632190080529249823274360420524142186719335836482970600891804895064946722106852790985246456883499147172310799436815019961852703133648035504512573991558514195122108438260691038274050877062072687809509957162243774605896879749148778668202682356736655487995015088785329403136154974755046927699730901202756879711969173841636685815687834145433214063048112305496556381864602709506979697772244404372030393531978880775822209503310005693382862593433130489216077654023415154087881178711207531086496456876504487738012508931518297648316330386398044801957742060248931273595075129079456334082877326714399039969019204448083619947754826490218903788531576455680553855870725929433901090726160334398299275893623640135963833057594034814278662180398060801427671784608529277944280751848671481281685597839850857178384997432651256698444144655176941356985211993125534286578591252287133743059869181559746821814892702412751363158964359245272787974566745844469002048054061469345153880987320980236729837642033231680072578612585716471780234226990002875186451897486926309973173797264040646241542940022580846349638021445889239265769385413506890656423908222632992211077671594790671151622721231351482002345106987635604923771855775543510556099222003319493101043076531808231570018029379446543332093725895633806092921311678630414992366398946307824146344506722252407122761654968007476147346435948939675107780861513040523694964432361330215848538335904879455749419686273192104483449985027073206700118958711128922565560877016922224014470128818766900974123788352762453602716383224434966732134703724524263493244201170230124192505921446089879410411351798374170602913963266672149610783254827330789939565614530014596883478607906411702498396727741315616467377177686828076115524032617116752524565334696270216431362116302583323025254813749736362568326591957771468089892210156951831767446862166302611218874085455545224949279150120079728458199246647760502384480947668148418306962912102090228480620264049710873621631151683384484486637753952772007194758736313671791534212508055330193457445636746471012612239010760862822407137401614404457973369062199890658815705919246943827022621197017670334832166768479473969964490127275333412808462662803092979674737666647766437682938324353142173349034206954881612317819398486888930248584755355472201897603705306683549937890107740661298372388066989876769963543780277167837219317009060041641174967487344127721963015963645148670661381348100046401163245720703335081709687060001002307609224882445360411899038650650170442652204634503694329910330767891024313122661312494692682979564804119891523726187336751313772366136676377716735280615739649425960800670958038605295242207008682101162828985970414860990173686053579386803082103316211549004852156269990113811080084406557132665373732949876588568162116939175518821029464673553207635894070459659782020241036423475117930449801044060929702363848222573082864190463253871627371882827336810705290628681587808011672299409082886447318773229040729021062642109161074999845207533250888106298506606766755739683087096703941084014662312467262598622245525348161119054072647699232445465941250024000306459387487596970333589872340173509036096224277627890533512354971188766494879222093872388007029290869170424622633477685548731389766929243501432192084157071464482789668073138363012378514966474036359200537702617557431086968435557586303451750506845137242377698580264866271896883435957576492144983088314217071194256411643128198898841710062441482542234535299628913531354081314220309056757632939884338821840425302636502337609616996437571618814384014954983412326195809453608169411005822199369331216001397093107304949733134108336819037630649123088916091016361390835384201255990463296747893520204750351962878037580574058205339224759562967143000993500387347281423841294840703851099622613220675307068363047955236746330973417284705310236287420917179024193119129003047028858361313533891775619058497068112021670646593956228145182124455979204075348059106365607731681033054264803921681454724308624697730991109775158776625710747295089928956926376209734323659048239774349596081606814977704561205162194250640469184800038877313129930477132013333644461943414712360570779412438022693917275318447392819514092527740639118500611612885283408634493252380989785896805186280299769191488592687818632463325204093978460889073410541385903058450940926887180430052411945299988441176531738555930827667764805879611467697809293879374246561705892150453536322944094412744596222810565818118480252270718263903369204717189019197169669358071489706977277040395619892247386056098671634667906269721372295438313541004694445737987047949328159608385603713431789577908097597640919527024343972646883071371134364903475802211685928101067037467338960845918211286784240270110872287634596432982512786841731668968269848072979108060064801438588839587625359287528481445233851063681803906888316519592816553055086771596524274918734687645430101748430454173055094443275660291955680289909964639463344053331452613523362541801266246115827769990474622697162727797993773976927861305493955597665713331308397922058196013465452922173546158116490078654626220921269239015287194620170625745690458962578379500934829229558895311924876254138975944996299399706129031396182284782194558635153589784418511310581079470501626145182888284421624699786343129184702673865321406758074983496499786647264025769263077221172623047770167591265243286577826195255882994320659680106815277886113522064554957666840133636015975222960326427622239376749460346954996583163923022162233877010936625305273381946014701457125717543674013007332042944231858555008918445201378921123759898693800830450759810987171852035779623932454277128003443528397828344704726014554541828957079862752298940052271044325958156207121819910755438976049680686998967031550583574721696705761522738956376647768450303539124292157033873536716182141814863642558830745570840645562215898313889005945395813881476550629948567321623865019623492610840415435118996589988245623303919991283888220249378051660228439079172823994663570470686973690412976073856395798638300971265263859994000428553325767534736828003236346434783541542332709292091740503686795843853302036775975556696458386332107672009138412425092589252334667036209568216415787576739770187896477688170502876626618266006580348148827082922017338151341103686790849157515515777446779630170959827663060858552730410908589838377887684627051393371932201451187927521873626646455308887628616519749927996261677437619919088701352439835943502187090764114623336510642396230134330645713822038304810426829900598221117558227979520711838422715459124773199447465731953338365510170545954887702021590146187932575267958732791917969364085209452528124153051919281497394747718165591361973271122543832194442362917255692844830571696724773732292962834225554549848235301367044822081207517493597371665687001691509220963402059861359269036982734211762977704474560388552659956672944588260679181939699634630199174508038255071653647434093294327017855199239143336954868364735186437843772127330278255135247841035427648777088199163815822206651083758041422511562394005744440420039269370165903420257211541383210927711275992009609871767039582815377350582080514912101000640195425523841235704842767221785661823406797437633335692117808783379249535644946740489539304922005650988625345452147344765274931168915908007900993404008339629254826530913252114516643198762888555176146009996875066559059524763466735095384528009988161697804096101795446062677751071860852184585079464362064738916710669323427018484790914018398416527824591672252890384313081792801036748089222871014806095326459554610488202522573478958469631891204092676700056905346603881690715599469047413274219285039837303311614799685539634745306339578920744944934345089228325891580815876134021562685173327552799337962183281495549890829644836791812938652869651167277523744967111529618986810670798440851705205455179748949594749863647823578445264925764241437861378894203016535098856056768522934887184957562665221355438290760781521425270588512604892046551007191299634844872801339860120170723453887271856910590750766577205941425763521874591134341756518262450053914089350675993550121099599617323468769815696606438620217289098144399108756070492278686990226279974441056584841042077314873934979654721897058692662024286700270892698453122690927628620903775491344138232281760629674757217891696982364508074682317911999217105970755425437434667591003220772868199654548333189776485668846805923079968044195177245024248190381480920293406306003184127472297815377192433861122912430118799936661743863783248884029736965676037767380392084666120174103721879650974301286358137137669236965405564754693167385984108464331396297200007683041412053991110716144546222691939070535126214173513719925662005723124646238700478181716282879531481430222335556470529743336361964189173166927412935486826950617500919447770969860740663751247687378794462349714795966385719916841712603575378080418365186661037236778294970889941544836532872363731398185218364515007906860641063584792171861740220041692974937090896427976067416451257371536679032373991585204175106326633112093999204509255617764784167873678256615835119255643626679948656525270353760818437672974438911425549217472275941942021277387699108498169542463289092998628431050977910840022621986613490484629761370564825060963080952696655895669021414287021673405460226748560676335414803624665021323623701363399794544061826794753966789915305655375053465506897908227318776004735523776982726989706926008600290581138579671467959228585654569621854621726605954108519545388221345475926862893908309211042919511774947661462825692774677983117320541407220367165569377184983139868624171825485544506365765990939424583398370238904516158336557699602901966448725263931905920480579254269151134597728165523009030122282281575815630990078849703323679036126416995414232451509649818320446543655944264710297985733322334864679520191361282490985881544223946112543963302268970375498292590241639345767408605815669170770854520174860874157613107640790034812196183374132396750186793026562868857794702167236045495288981828060148784392128247061374090514707591039495636371574051232382094089036111464237970426633078993562787175621877033581401628625864915195362295735638062484981577156311429926701660357536452427101050548465824419222023813291307058583676723685531823344476390775856312710909101688085145363321070089978575481416597845807155537656981022066660043753539144667426037284716465948345148212784700752240247276365983753796198596869839612416386445274660409655061544442698419741780301961347387724258216161754676402579541665212556225125371198920244740316807542253205253553124166549387747381739602735608555002912553699797568686676817038165175397258638478965914519705203399390106576637295986507397949347172384666537953151758691714519444612895691240254374690629705308235868782779500695331043440387399558489809623130621639354570420443033822734543017281817188744905943080748613341968697400787921356788540828139243662256723757118022639810618581591712615882910736827069027698412631535009894602982159271587964471151263652945758053467486971773099858077997444228448145712022563802435136188913628427082896227286792434635216121049633266561325319970430968832151833478781455785918509941817777756206396856084235713521530796573073045539295124983788611211236648963322907999626354546168475024186682217895313450900400367479779582455947861309632916486177600670805595403770732699882159929765487442348427977694269244612001052585499426765188578633838642361361217446395362267569698553783066815005102304994664289167286813648325504090763477845685986129851856326858012407884977284286763526742991034794868263579840289647176424758380568099891553792872913334081460558338741133749692954081172157147552616006529299627021241615737211393859528301040329544051912084152683931579909104935661251692028955728549242913877772672429324587723785543508932292637045340392998334398404597815021459841493885630865545084744043397122440086579826113179168945424273277109465452035149296687295854356479821116018630609197465033859479535942143138857988370061883541423121966211537406097112030030002784105482534605782605155060099960379494494053979118045326562819731797609749870690162087939185868187428358319751534092133570737095357755345152784034582792341136965922878386037905651528902236836295100557331669811397214531585147381165670789350697905190722701939558174766921178708671597672969893477170226229872981272928565571007172282687406473848216684021080547607691732744506804970769776126888435233449152614445477425253106717101791674116715628201483280587333327175848425403607040358085627177855503022693923741739458475332503377651831762284388031028341013820039425105169704576994850453223474705207056021294267815933705664562081334697685735855824966934527014579189031068269104901345008011021829778513807542897621514697062195672048841766100612268201795025808201835189457114635285471046562739999245395947985192710643891754596819911647872521350684635224764245445313224543851561128953734881119915564521698680857393235648038160013342342664012846081161050590261523063640392865210778550449569183858228712372623802154597307905007687739841674275573437165186501147087605011555205897772835486255748516695294780297220033770160129012292665812667934136705604243844578734853284869145191950824683761207409705688693453535067788650091453182374202820926863325820639461359016666183037963814638471679119393821185392735977328092238355750044380873884947761918325519196644050022604996456132102981060859535954999198097908071278079145408480363828602790734410520147450179918738565000408340984552228741143519612029662552346319008161314988535138405331112634998173591780286585086511274565585232763092920316835943218925796778155723984454554958804831082876661528505971817380089178943926879616849366997170161293102017188102733609311081963821343952814992060447053354163655295964123147164372364585136681710604902121305295457205843503905518869110058179524185714717064291537364245147270649531341085705222003608115549396760456386902129286978145835025944244001513229862193134952000520636399856269689478985372641079907291361296519206852373527530500925033794666212168549683782165703747882264961770680206004263956095542599860672615069648969463673024376866575326549987869273160631497765890272921878936185206219489820371849175846377503355879901451328447809446892381082181275131275670862948242251514474518367636689870773465348561537749438143036198982482332734451818962158013192697657120685540188309793463183127901710588671752097757187338822255568069570964737245785971048017654802301672404049990206895130184676205412994926342433981787590273419184177887009891243104730453968103194173587123201462172253242424707193314558092241209874315922039943285487167420112715532744800530523380001770825445900256634167273396168442790478699232868214536534456727248253604989879358485482226643692400502137322978025089953147932497980836345415023239318961586672726338140935814162457553443928354328685105357490036230079785158101051847381431436030376889352308977793761821816059308416612922223716164426838009680954761467132673748919891396750717465566200919255737512558960452347990012527434216820542523425951959712586655780228418696631197996180636363186779957423294472963511357799474954375915488521244155063252236036518133979953215144575217614580502799544484669562118291632487597582686103722154758376443960473896151629003906241862104254664878566138896631833008395073440689141872259974956065099628439378805995914706696854436893578580661246502803043913636195040560561521243800471885313342325701623980744869719389512480942944912494948695871639861372772472756966203540203565628197577575582467442560751774702676416636878019801164379083281790517750022792724801209420590325959515448565101289049114290857091195511739917146083297652617765818882612813731772614264540909749069107840919530203893542730619515512005824603127752051078732588077939046967181565107016041676160340961041895483644979396254529866068876812634916662147107220130958221049557930297084310088259829120012561776930947000815736437783988865658260630345186187694887959059905320343145399295669428293613787029095836112495143657942153257862316390309909714909176518348304227453303449544041520387051407123080792538748123367791401828419722702973808015810434000627035954632459559138869281686570061196025376143253347643030868477206312332224399460299061903897905125547952166430048889716365331420716822865711144254640182492363897691305603483502291001438318027682297524213786581333543034566000233303658743998658841367173474374821164211637403339737913505052710844327884524143636013986354259281023646475695934768347790533173293503546390782192105431126942083808006869992458009637946231303649883480093274027403711074981495723960395293031876225495213119041786616095467452162914221505344978762871024667978116227066667115767055098123107362573595723306711265799303243299167824730692016537100214976890423788531349439166170121343356348302199612949981675217419971318634092510418835288898886034150976296854933426398362213492635828794982251008031394027691484520047887916802122809196485395520529401595623176972116810706831172514566928123698477789100559440012724915866303519319622110665733457586554069778598825232509926653753790432661889322784878773379453545192443608309204485743300465997056273919092071597674091218580032366467164359838378222275085034407600359568514782780386215398255872733736516125189649939000950384564414950560583485738932675441348011829975821525783003912141924002608703416423094680766723967174727645557510417481602396797338792230756505107907169112228867848114788665683636385603529641692127857741017230977492928129980485294292264357420809706615945013830448993280274996696041609765422234745799231546458269164859540288328591007393612048527989520100755100279733566288816480251348293939301012590138867386148162996570072356314637944417815261450391737175933763031118081348996632484376503103633637436848276582949698897507870429585012172512687862891527060020530036836983357418976861483923074495957209481226432641068304881360155110083482131273046376023266327951452276165121547377934876970374946559688805883872627633411266717011106947289731104153960132584079059498915795473778884627797159607820103972156795436569231869701273348675976699232636130076460352821714567819776940557776707066025737648246458156040487138691753809750935721038183969137765710241331195494181357303971931739804401517732545011503455117459666643560679566200747577729200174748126060536886051992147163737448204672702226092991350631171974198579621362550495902167851471233432194769205206862657753723358543945505793372015061820800552212359987392323865134899963592268777774418774827976910984910638120638648650089022847035195831977744112279245182172540078790445137595254579114348343127660068897571762307527500492231915392755337765657113182046645013486948149264041209928333284371588049682377839629286078127249381164498503243761970519496199990358104073908818075858793881826379109778816658582872680751961260164224775465161490414414699172061266443172567531462263521454633512700020178901979600986988808067460128137369063659236194182864674874112132683349391772792213540607599860872248285064323710786089211853511736056502470673107181521051915949172270025286095666978776264078151405240686534754240594129235760422367964476756027882057052197531143686762740109196160931120318410632732788192880379320766667015331226870562470904440326080743199588709637593625998145492522448126756477375466436291792818305026499812404920932261194682529082221925205280902081350832720291498310579584301497555858083228132475061055243614751626184364412019278061192170177787498398165455228273502774586826359097006189387977600546019247627773717184849372557695184558475137892149123349340756926471242220825150161148610042875675413242929943985945320675288067349702988375596457508232462908720837098912817971020884085089710139722844387741094044572246282783152492513428928600238294723352151476200355572039016171925642793616823377770819015327822700258883602549626214536550365538746122895021796925395653777557121711247430553276070512741152915183106488203677906274723919115843335009262508570433794102506747965692626791872812351000920535501066803982440105431584490214401671169780897367696946385890871304425367670117818825843804256737344367220921425715717569123559465759878472809398661820027839812612570034142268881702394920530247439768095443580476660782741542547518413426788656366975974766452290950892843842382842451469187446647867021011541557667569369876881653477222174153433016329962888033823895220060030558647700834195744801986660529855795104503772762409114877271348019383788275438809630163878285651356135120519963266416369435305285124068332183186854786712159810811173142398217255242292537174711474116584780761592366747109039202457356882497782804805603276630541714302035075603513426375543671592079351610158706624098102946195037153636256263079939568322643099849401479789852785496567505266242913765242456954307009532013718476038499640162197666247879360985445176878360597787138148674548712375262723770355335894147858447665425475070106797490541337510860720993171459357615109871538917518031541895985943031737644706777976107628095279079799508241557865696486148495396018680906621816045743444303229849187094419658306697020613217005433886476520373565980174799521410131275344775861477060622306250612845184503619882813060105985600328179218341075387932018372252114299807562505294581477492867406525574684245011559789797872305846341415059500922575458997708147330064126027120218483461978547075816119001173861625249569125063831148131902472850745665674261540991549484733560657371332059040172554785261133191655138559611301123459140168778123620878875792390295857016522532742683085266359804092134189166045520184115712904236806798372135507587425241010992992242340734415427786523125508875295431633239818123761863586303194852777120782087266632894724320690589300882404846074325216833679631416064627781145979856628852773077954612992667935009957165463381546141969361824804993894044730195299919254176622042206616426649216673043121162984834708680181802662449997377856466836053663079188813662252213185333274178883998326667243832131532635613063510285061080209359180035832257392320595269195040948135908277699531231550281775375505691363490051406457742975023263769218340185968448612115312528550144906341093710879209175695135196017263533465549499897204255608999219181032040989380494727322117576162983696636299839440865746444848669195117231687844984109768747858711723839306989310574358371377469099891419619462197119838255805268369394177298066084498081005489243380035573019867444670546564576706543659511336248134433680862157453249281489339267179183964549829910703367192845629440689031677615577753452956698860422702608450143165546678204906873373571558033454824271485049895688591279575391087490442138248414818410375249786494260864472408453043131693082144501035203189036039781806210025071647442965721998606003818055698385970125102184485145920736408635573801763568217239497825093675315140813425283953882330034337365726991699634211891586830734551699202107140673496653859976316106519444315247534715578608858192700969401806726312781777003410212921836210232272524698551126148994007941155388885310877680428680787426117847999515652646446299464273066766035029030190784721196628991488848601335459861103209334159930833296584907145671094137401837376613036996349885167118344333311217913478457597484001517832859739177006079535831735965589556500653035698067129103914853539296032920627374292926535068258726827017342902954567561446651263331769746039255299074817848460008712690800485850519248673616163481940123951432532948522787101983696025078052562011691488088075951232802718965617530046316921506121803850930405674088881866473065499015631375542242790217216866637511148701114272899036724475020068701444749864051496443536655803993055400873323042572002452597535326375327603265907485161517061299250192069448548573954222792536914531042128809537063132427496747894913863929953902384979253314221631168915620557426897608150674389296278941888399646796251491798399574223359880736307884914863027203979976463653540068993262586224654621770613755985568490867758266430730429075757868167338542988303195626739791003516466939037990471662860624141079686766668297831514670221827643069590354412712630175998726614647703698742407273238546624509078975948654682737425438416180045843847303050326929607556237631665024628799959944365930480169927268853104489822759501664185329156542678737337499479802892492894165471265398024120960048057759955365863404087367171792848633030757368172438984977518341135621168263216057781067623920494898741359030620525233139537103747519281850917653046254323377372130584183341952118456260234062133957347341181998869766426732414857052584631947919222912752517875153689187415376038032080626587067545063806285309080823395330145333808333605839896205079920050923619939426056078738725000789531364062923179965511133728872758994609025003265611964317613020079792152492073581703907057773814220484890974336809244257853769817234136501765422607367795538308160259327004844297251878846153431357566809377601048101410167243359589267626674026830436260623077430227072745993945707722680091058607109616695209824083889208669985610193373769639126969617180714923461524272370100760446129837489908822208901590518905005355153164605636075239936393706616712266082538021904308302047813632173681258523120599634020336288473302459922759426475674179591407380790037552014297854131746547852789184393976320823794850135806785176894040688882951089408011326112879548600208718793027255019343579425106848866124855053719686348857173252436521908086780664273487691533310787336359817906475162290273565989653626259198977811519283345186165894767376868027069024171123116589812286301993329140958865912322997669154646642691862692576360246349573231551412454053549602432460426270509765657475872149908929718285896227183291957398308011889108593381796507270737671808246212037525354380785836790272438087342162930000481520825939833543662584678289999609674012235042204622524018781314749237016186721966673803850867837131846215480143988307598634368645962607940693529139753634372656660360942287210152844445158691331037491027871091075126455921974168034573841272137530488411189505821415152541703957922440986994420302544231195155881505092164619432122265226574264784440007799467390688853236123606611058563694395435061415656152655404590760528190209663057559347823217599121662826483068230253962061820904112994026963993303283907733014057613616720422803284615846092871012826568389978521525552143227939300859870633942801160761374356416739828497333426941423020521065108867134213896739012871239845038124773846225250023860577786790361912564921911997375103975307135813677204797201449597101025000926850053584040387788657413723094237575473190935467047975911911449881291198995857517423602809827932321747477668031762977668941806793921818340202152242677193254013825323383263457547371024544814038864432082538550652660323814727156785963132928230380576546222184785588202185342006421868978475173448172525169653384320421728006101284067029614761760259705200989106138365711624363794757451750590593071464621137238680481265873666906913764972563351777641261672836218952970221796737986507823956116037927462140704337977772676818059405532549373761659023802190040905721212009756848680187972730041229282394066940496640256594502442870698410058632133385045734275169627782480476171099694776877754079028785785277143924320387915856249703565988641056335763689205320145045809898669904252435851097016841642313317984608892791002874744420713029280083951041733176069162077789596761259757989885992998093477575869166210342308091820102601652854846258025889646650350728644607274742465841941592166202269711209365200351361238199327925086229685502782401579519050719723855780121545352449663125421658968299391898892158151683243540607752778175064494183548954243568794393058106680683605923834766224550156049048087858103240648627250165156111311841681806904822438822040673131631814686834716288826797246326459064358555645456714017750737280929958385576063831065678620268164218235982714808459502474463364164877601686635614478259646275382120190261733659057517323382024176354339804755769769462663678835835566784979720182405824023987703050270090022818736106156723521170513171998122162118183733648146119525161260559656555418031149349281098956359046959166130320678039039168034190081650175581571229058187593135083257486752742285140624344579720658814972485070452207768534899821678663589249571613228069094410189866168213460766356020841819633621605554760980993265824131157654525041614132422569864286073176619824497948395859658281119259746449989850073154646709112282334234487327976696317979005198187896533376572669528264985203675728992261315084355270299895743544023213322072779904461380800663506011018320838641697395146495395325253943944188952080774326161592902851838106413706496020317914493957241736715975098301323673319637254350901894277986762620794663941236606449929597859585542845189477323206539889553123141683824318431254936148454347701515236683881811246486330294422520197194620625004164251938313942710967700187484230398884973703217875018038162716890996294715719063483623970369375143910243322009617191238147892324049797614092100757819637220735681712877171732698906433612783515624239519646420682649604374725408105971714437462724346523287107848272048138743859330990522246592732062519495565154585006594617056817453467500783218337081281257603445044219535786150096880807755061599180294226923140613792866495363324841394016332790511923275509973949646690540048191304921251599069561653698132664899501994661427510682946896496308740382749053864020853465984267885151572765179489602360532458405620815961122950746309343331215948332509398816943197720506402285648820033583289806262152189630128657444783472566564037694594816582305102333845021186741451826865701799663497907251867666685668293971625745777229010238048755585304339969162316349778414059467942589137084896177358016713661677916269894403995024726520412818320081649728873569390836084256211781791937265880631879331396335496438327079129902246309435249167002157315608060162382996918531301619695746398609290428518490562126518218945867435697374067295273053872348979930784868152891960437907146091730339635397566701127755626986014398821575995411777651182106145581888801103768412024048400081242707197729042877994006819070190748446291872712657017919849652357695087183655869163150116311998761735954078285436062463054145773058114676950887315818028716588815462502699928862560827950554291213718638933676408158660803014531829739966609935224255555562699727356540874622378169463754968835960005581542799642583769616905721840662308068230237560386049267325367347754786090202488994888559532736172205501371699234720509983503410826333025788011578791247103075147186062169712976818215465640433629342852780226126199691387235171624354135034161606502599294173864297355428448371122275365605110177030595470731462208608435644591576754074228376247322888427276977711238312097916193408672769873364005523563536096821820496740206872787147367170506438264252667414768665802788391459780788729939096378150902989636514295979917962804422483217009218892600281293535461842242568172653168456630829109818785227325686060486001945218877075315802911227023558479694147160228714724662606304675956949532125283992313247055512864855076556228161145518774019569947712465668957960254509943680972453497403805602409154628200810736380976128813160728822686873372464245105788262308515733235253022823739980702308484429250658271679529561828640107781415987871453905913603876672053191155372069707688924986349310767092745017454315946073908229849865126698582154750566225224073227017307137926080666667787286970577061919988855481204462225058157854620330784839055574465030447665331733329400522042479273945430978373216348813656723116833625624259180125065887671462748761788549317544772306897777396445265445957280403243724120260143367343810796425726816416960815511568727784008959198669736235371047928789061129958149728168595008866543966305743798004103543565772301834180831428246087686000324422456692557784350609232262393875363167704542326580715319030918022075062851153276289877915691933968518509499639407574251001045828840804982614756309156541239151101065679088387678469033796512272019068446731744745401628000542519703969838494808814396969230766032780609651784519823068361468486076474570803861743150888387613528256783423629843041999162850897631541925989036381835738857239871010929269300051373705555016242123875160193141283195643069454448088414579597599091180794552555283480054481077754218154974436784783322241132195504787714396923583052212725159330569042805907275731072265292040202514207079439386336071604821597940130327882780314864828621088874182322863914528125642047038128954805231590166340302796811151876203953072016687799634026933725777686977877744342859794506887005613335335420893812636606180229962810292633917454034924625963723423421535921074539421918922902343370167286387704288776774841465392146941443768641246513817528398744891097123375903168660853268583702722242970529524562627155664345917796015908480003758763851578429623823206431175461765520094119060594159795106105796797630990191011520854986913488610191346273211703215431526297676903040134351323195434828207539575807934693401782418702341318863152631502250117135541656048731160574161332400358049200881892701722443033179359075831938359084904277514041954808583922405420455973424185058177577064477511578655464064573669769782284656858559199716226343295078749255257855166452453954853093773009757299928373731574072229309538305061408094226995134966521748249294910489303970796899133219801288206361488122862670007637697898662890433112893940100472518037851524320722066974147855871283226078778436957414391212378404434689167423793107556463737830335228903219745385094843224418167391917650038523501451427420706843688289115366728155853183913942534843283928777428590825714998854823239632897233013023511824091694059588624154531494541028549057537498258992715587455671389632131771805632261679529368565600281831946278330144229252917105103362624565849538283133234884507960430702304325251455276005245911467910750695424915311023257950174210136581796547874971954434056214367597769255369890057510444209074759064453099427110560580548085434948784017568439375401448418185194158936923138690081588174231233535486032359651559712547045283178005446766643379759313545931305280270979832226096791109205534123659026321519125009026481552765304291541418882282746198559760850413064101161031632145364117870113924246244450101924855066589800872235971445280330739198919336326116847061150844734237085110046548394029767236094968224392915110885503140587056032149485386011749725754446187743866328848531166346070135926748162080705655752211352004389844435230819665681196476889213235797790353555439591107053938351129149667297724143251761972214118550965406617840557799356123195902811166928890198260970345302447030648552823778229468343585650791006422617773582680965907114043463935841451982238403924380939605114542151293108643923354791602810313088842179398053473006814208685639116692559704548098040075815739273787515026040086343877273862823012054397510597569309341733731620439663510270143641233080577231750590045359655156947825465495704681072759892276301273227948586415921126383454502798063464499640723609514834293259197482163473013813155881887506095824180882850357516047000125242114680043298736118236882711478638264920971006392794822800901300326466402517139367570294868946902061683286763462815582414358242314961128340746074319206244835199021336047443458703437842335789289462261947661969419849269873315044020646847939379740976982255090047529828957894309971303642743460510310428738850346224865683559620868058945569625734835030770861219490524582863738959501262866235068910742265018799466121035275903769239420909820024691264428431897457254962771239119490039095896502801738703476964687802175885505334969140667309952272679020288888171776313198494643524420667184323210529180907686389039012249531465850388555306697157998892874767561178125191495389826439761024104670479196260201832865424299245023452356949009274163030839987839762134440772495997228844733286256812061821160730952307255457393912646043074760649116446527046830364307531512008075964237120499983004175673392194128344681813869654918332084684053215687732822276418304547765033491778166768563575756164798041238045702224724967042677053693179629617473844101424790052703609283240130728325703362909826443433730419123820794468058375324381661223150396640401910765831094484086003560531238153616919221879903470940025545579368721575982869503111060534670210569769745456213344355989256426559261723745792928981240751390003991922004657006482867291411955223691275869435786479750582333334288727228094936285255469834116205319140067364659309682849601613459438761294069075719557023178160864331880748974896740387482542103616732945003122019159139109344427987719553657837501112333025152577247678588502230706066615143319814846021804082982193982672420870034798840598931299960188005213614094608225697949668777866994171664782912881716127843433932922766481710386296447306366390733380259438416581249568946888852189696247826361744858714783995804123425087044417016748385093683946395878391244520993668434040712926428160296184713035763780531094561078066362698582576836533448311856531590835954084183163616700218317223846892788693101273789056469565833238114531985730363868452609605534361821996674822302875034935917425778404696741931360827111612160589161986578233081202273424008644130880307360376550591454909717985532065924462777973709015426144972848035935366556353717036144854449223767051562330788140477774955460864867482494147890169272020962799294462795065862405584461847097405873365194307368327189175778087959059561726828386494126726675962378233415539317504788050434217652420187952633002598641702979608018746810368444220843098492842907871467783169479712279098291949894205123922211270942304555207712502106450063566530397841867803319873387137649545013868810110037680008017714197138363913733620904602679039184587522861919726356946093049181484541131013849814159138156266201610816418501471529551003232819809557523477876091402840297966614580099498293229917660782700551747888326431286098899305248815941713920983633414774684926791810600533406869600834042985763076450664169776064155284179092280130860388936278349432952943481991387094040000222164184321410345811343426839306104600375789182423388051914875729914603784850748321822742950419033172271926585030042415729391167815592766764146454897769154126040990800598215951957710931508882089743493397278251422704059178205257705049134524633889673068054166507076824532854598498107914210315284299724678965356737745545826149303140694539223261888817222823800366936666689938490165984730182632981012171476053299943889546496851008346309411011383429995090956009324351145024039914936969585735289759885463460324740462092026786916138981053147987358359002747161167457698644878785446990095846619002437609442671072683511599235471701167508750646079313383977287642839181583712913145642622283490139125692950640698216218632245249584346641529331596943792706002822485051115094508704260383446010064194481441310920285918162500259597812017189671170564503531251365597521816386517865078456231206254886670481876924556996798094674831974724416468926686717874879072745766683757197482099419836146796209537705698706648333627901843434294689035246021275777998799752050530956882352459823636537106817430085979081335128542000834073460559195436123658445143758885033389051625962651634908894352228129095717296176235582166691340196254630450154278245402944631592015212885993594145605923118822693288102138515302190718841136213685520298191536793669065355197263464159002436207132671553504287297535640528864929065036610137490218321354269595911142823980438220044381179776565250160089338904239937727796664090175924024378620484920321943646932448505053118093397502611362781288007244904240759237605582614213204573550107759463963792370245930068610836229724816666781918664988356928088992474390774262011418843151066247334211098288633724849609556380248658583052488889941114072627290839875775940766815997526336499981869094069851394146001603671628313329538140458438983486157943144464531667907745889257571049188742853768729329031818178615778492471318844850732259631858134387308176959725130155084727167835706446308738139239889497939873887245778947189040357160869394049336256378001754621447910117023988546452027656810321001212737720654481316984907977707775936075489893390482307073901499171668562739657932026610939290266794987928117949982602957645100789331276357210409905377914051553423201081954991377468876386547705999669739416746544492479001022034122224074846917497619325247356634737110891299510264398773563011257073461390516802163750918048789800750876816890216386182627682266523463883105651361260625192403780970776251055087139787056492613525925906229072055407918262686321502502587949656815583380078335177497059838890161820056302723623320851057302191872601558641120248915847479827576500802578524573551723941561387780370467460500024516977584269515028436356128885126264014047611006073904516809754607596948835842701349637781201022103097626525982317380005970030435565292005661770244358685385833161561558334603153254901738948272999143624605472858552016312037595589298893037123660133379296408693052527169573000977764268702883245235649692139409560748210167717743307660572994289132475016687131546634062268837534072020682521873483803457662104536896845373930144539132421225336602804606143801217717586530813247062583168328437872373607904565781885801334274927886270190461554902684494133261552251999555941158244450907949637294992953645469924140732492909900958631147015881313746147852366788883245134039241863257336164416977533597535543431143797484057275801562434858208663296574275317493744999795055962881701675870955280736716309419814386097365070974896119097827398515611896448728842847338101879661120507961879712240404756431576965574692322522247013694227064577392810442123494663909779424167791145741624498306934907517970775878408036323784658641520593090748096302851096666448604769552318871791223332060316737174486573335925949845948790085946317395424849456252824056091054290660352744327673938217902076440173625235440981383301506718227101536909816588255278768977198374213898490584929527774311848314349016795177748622783440372469511891570151387970042582438544636574885062602294662215976436015970364160708766491271031790143037036994646990780674008803510492209321399375186066812434486680109267993411337666245779983163055774762994936524257928741334471299511870770281224846960181269744045174950077867469658644221848744496810374884209085674866149928007709220113499916019754198581064723331631834593227491073294965082452957463702473172456794755739546301123650630023128830539271155243875272159571898573474369627752454352512455168088332884299173784471272899539344266134626672356234668545857494273139995570943485484613526708764298035709453754618928964469650501325349410905781933731771708040738475504540464713533536170539145607650804951067702169575970720984293474092542350176670822037889498742758214526179601767892536025039049762011409699231301587353201896763965457018307713574391139540592452996109106740901610536404124672377881841854447146880878964755029579176238619531533821592538530923971802319552780595354522266853406921423780461839710961361010063957373314630299695135191967773517661963326482755151014221502280763300829402411007633545534260806330327382899272423588975535007783362901342263948864309858478113339691473642200002529841700514972816154200826165569798468747415452036279257890661469618915227617601998322192317793536540703738494429782041694286351584116935158294362638439369432059147527693483240304956794545610916379345139308221008793212584635000920853671349558387875651578486512611714416124188903795813330464387947550037479136710317082380710217681937855082484356675543680948728915984837952227301862380428526119451398570533085939475254882771350527508798102549005156374955059991190410481537678222198185181981168968800871503584052104796911495106600092501823162450631345676130836335768230043930019710273615829363322244340201891137046183854111778672942277368204015088350890337978349090490113609647017863436667012475163283339960752777575863117114724921161279738453024626241863042090370056835470397090869392553219127307403527982489951555956876641798118518156909140900096087479552713598606549372750909493587655493306793349954615421212702440760004269328290016386286787000251351340043230270725973544686960999046114005932288166539610528792043271882383184684948775935001220287408604342382271349690830951526267206492869460693658979001180944433726494656946717559001770014903666301915603015675788514658738985267282123257806208727823520624619982455943476153566708542070485005656034992300889392305306891386985366059786882657934572575108982715889606594550598649316728881516516825243070091062130721164970525508563715473589833862766291062952973525042558540177953567528677412828803591978070573414168495237767518271911726588196269718946164591405853351512941317838154581057626104259629233060879735412222800576672950496801986115148197012333180390330751215380194021499171450941414418369547280255212755766487200589477444544205258277920835361632055710678198251639318230351000169480625542591806323991803530561978999036746395610161295228502659358226676960092738291591294995031743109409519673678064908699896956215265848103915898869547613764850654810266211326718249005297674248003519515539534079442080137429726661296761646604487615823371420251683374739144618392332678086536222170503438315088555067248629367639394216094259292529011149535623873819062221794080854138872262016802358779372679171177065377590578341002211354917187231619211964652727689530548080316438940371970828804045080017744751281858714952616515662461474181715678273550332921508648163620672746618886555531415506138000592845956939034760618824735421051823027824579561770357181395519408185583618264083001011874226491957628600175180391837397830631731810805347642278234615453694318889956796399329663786042309623994468682682217427502356155467888052746731032033310524017349348462936153563126871350299274787375258743801558901523502060766898046805169144278052669802651933923461003725419122224255169898370541456020713270109232653317596176586551581352084495364023795939603496175436497059152255946160904347711581162051537532466464127454550928649216975364393616054334121086033135978906617079126886380462285202020046870214358938817345972544462385534442612565551794043567460642284560408793315786729574079837881576878765924482464789702723181210068638473040559411868705978993784963416682880309331053940438889468007648119571610938162051472554526293003709986905681014519954735122912255367076755105121621911369529433986767482122214270150130170484618056835746004858785763014390070707966452737066871600405807461325701009302165765605491047168855272652313093833956137655067757400433604518573660689621468190462430977236714840642886082403277226282182236375860546361558809942055432264181583701465542199218995320746134430753323820661679470021796511808839034428400250060220824483622070337346916653711151495116918917076157373284048432828181559398253180739362885261215448675329206994158895008737527374764908559801310557947404676024555437091249499759450317715143655349322336937830749238014624354672172747975661676217002558437044209995954865547334643481152957692509164362245435552465311923842053457859352993753440865228519874578456023171274203660860472422322862206109282628135455438546323996224390461245663983773507442421030950513141960011822076708314548395065287682694388827106676654634749134363134665720062440195785276066394792802256421872760000992645148755907245773013949966138158253783757809241561195083822841708815871381557682620538390568726988348361296112633797469004281998134790793815629330804249915530784867005725602115938052203795769289192678473243613797474469400327780078363863270590878943118638674300489336956484515861197592186731273147654876926777003096135795525234864642026402526937646758341400496027433778145468817150255683837862455207801141257945277796779875907339757932535801961773887612764842318520430650102511315537626855484990996268810696413539901214921750821123551670006779704587567121746957548661749443506068078555098230609970530672453420842398336150482861309739933172332609923471682910404929389875042480050098163256990929299224922078057347492801128301878741146746043245430768174110688949051134534958094042234152520817908350240569008261052029556043304178034914723101572880855496647910836348418799929590594359943518136104915927030927931784541941147557346563320948821789205647994897572857786335250490701184263844417113655445260491235600785893339801537869117317210220102606710041572546701056900481402850845248077213632996427973526178109202212971335281142426048332761822140608228309936216034424005450849294672919573345058367227269144788517046368203321748459451107635843362215237139727807753927877721640573098022025069701082627618604771300449731031002812092148191240126650054437031793516330991942191094849768538711402327784729244330186464157353700865228127195304394897773996044516155949492873837149055663971003364116279020084774524879179148471378146617987267659264709947712582857762839965577546577089966123642901132386309742938718596153410402944029711731227171646472218741822101435538856220367999895139188814595772568086442627834664395515949083321914097905573429656545012802044334619916668649497682515549883649276470072521172090263388930623415094119272883903989934369472457604398734840103695789766588389760308058540182379965921090583013879240212532966819686283969848760014185525985315230103721642391113672576674897950356226962430971224055678818858729356293726568450776308458527150620001926688415018550426204669685707158562784471931965574136427818269605785355109809633579177142795623831858548081540014297022693273810329944019933044657621317806978591351961095426265572462938273584317151301251910589940016055127472894430937400487280933904963686304315456114221080119517088178016668861536680814101939750867329168774371221873583782664808484777966616560965860081728486384371726183693555548211852751573479399349392717440678100911263505988606533155313523070826653413638892234753346287508547827231769905932882339316488279171110337836892206664979537228781584495239257706403667571939424981086894611401337426148758993075633441362126742959543640032137207351268175645463367264641282999200887121372029859866803267628144633545942412013655199881888264512051018382791808404974096175452654107958488916263390053730341231114391195407210196170162959837334085943944421361106780349062242808335980950822316343957789038223402208885149536208517449877335089049339905891565053018992135602184218742926137227452140074127341060250298256587698909474639434867341653055065129337260872370655027047532982695407942202512170151933421501612912259152149649895458433872104542860956599115404768749963924877526812550273742683213456600831550028615547508769019298070606983244560688976793061959285513164940116582439803621833865844540901999240216003049968902269143730121254727333247656411804162804288743137868436062412602310116656809988719128282663854126926356291700228191089322857528782856025887301931008154159204166066722612478651116437532457733214820616798763819974942286699631701671958074593765149269370328522550966188079656337843155281740063847762757657115409812213530649920103101630340205378719661658661996046536333751753081304931141481165486574599616747903026238577385074440821052317754858805203455719067773884186908942392563786547272429532853710442892614253646881775522389661988261158386200307805958564618396099129886531974906592625963078458916254766187811539676876781984655861903929510440399509741802085962486162188875788253651714129773742183196380726843277173143544607471989457239237179956492628426340676356405288816016395066782036401045085039971103639706874750026074016561960583275506985349243989240708839467168413496219363020887078472623814321006193739907276700207917011128118880498381435719494952681954773503285595056613969365301776780567380124510684860880423931917809856713133373203774664585742492909627260609207463995510424676380404713281789001008701457034119956437786152334247562781461265919562452172331664325883989578925101530661988707101392310837782270762394721757361204693769296544381597531119344376708529597990617165675332854959866605442331899335376368623416350926416264496023197452263282038400515348055743029969395779271017217165259355160310522999306802564502970782864364517619268200918706641038746558407060881054936367968576012125703644559057367196759813218760771772553970369051759438834867330416401914823631573573996321485636228558117388116399037754717336811591177283143733633245951593145475744083050511844971845308541851210329027525046723016860534531151797901168207931966020407924124281481390634086080096526521447572557104271001224016685432130184680654358271562893101992408507118407820390611349148777115520237587743869467207549834362688969248991029896497085340216939689813124518994278286720062423341731216404414801131542987431524958970299893033703678852452690247058525431745147614165088697092948653621509298201926035307777609273181529358627194301732517801102631385016967746995124177237118581628750034320422190496834081448076758677269755183555716161591096536615667582834865706951547493528767237226322317462092689950882731845424597772237603082729226988292364565296107607410595481129380735728355993809722381152056741484811024124625698390299325779415696573634829195616595830878391926369869359420877352169011798180753144247567239952814085744684153532881227639773557879659947278942107606170347777907153927937594019925663262431329089699115494414215807806654343966205199296935151190888970556175948282605722258452383831199187597594521119588172217158202433204735156278984023662652312178777888147600915890091702488293118761166930684708133024997410023725797221221467829572072322188483694594279681548408242657797606211721093970811834084903483260629465458684939180561167487706821854860245058599223288245976888530950987710580999452816730877709621855937708021355564596596186542675538660579447613624286933771193672645966891457498102468319406242610587523734181584029723107940264824867465495159064178075932919266627392934106161560868260952203228104953035510335183327788646535674352252315877285157621324637185944051292183307080795776428893990893394748601812532530011497294304720325164565327358645614107177061776799265371348153612150724943521067006675100396153653053059419902686756596494602269802231504757609364953179032974023227994250650899495476969780345977459443057597891691767524695114014335105945127249072604053782277597471351196807201954510538525301086226251657544061368687048455412780276384631120724667921487931600735672048840004410800794417182114123931358012463550091509709280481637728180108104332365578284393400571368549789047800002700652474324095992354241487537009701228888488404436984629654809737312755059563931861049200309541641158210534568537606263043135278441196980897822946873346528918605665135894637772314974211143471634835387434824666355875230259055245271133607584756292582570177051795052962367258682679219968948783864477076859961067204981998954506953722433896320760820594954779298544122001076713384428489047486060896289020998570353396792238258103742764733428543329885975735877364816684515459942117840867125727622943619253542128419901151793947888951414729763446961544745003440083132246843849768010435496053138485114644174526187373823040132626960961515632422263729749048421986039906779524587691770249171321449358389068531280752440404988614964780839693263620705870383967571538579295815210548039887026327036969387857860096155630781930446170635257261614263532094180333201695418570965546687526232400435337395772188281618712056382523717816483191032998220699105394333359040227305867735223858649281736728550923510878914040243042816723955975970701094657220784546879122032954865829986087491813747428296848030281800385283403031091342238625609710152217557462773997707112621204160140138784289089608918873169363188306542260045804598307468272029008811030222708805422523291376158699292111082728527131009226837546751400047184743149614736522082877493452980528328847537912736910909881310692480331843785357558683394548408679185743941796565761698729544245949786977697080387320728209240382067405223836874169208660585555941786622072609559635304186333696079589954926722249962690181719673387311506310675610233456590355005641998496735217443111600872159578003605458133541415420834370172761284027801588118397651340137397449272920978054849111190845759007767898917609095713296171989907940514733906978207579794150746278565296662668239180105497165953590038270117742233470048356173570604705794616817264264956305622175768627953623886974144966147577264106669997865210657722121819454157749687900034267190102741117935917975432267946472096116910971276177958073985883431017013529134048212915388923057646010548212285963338842150198018547363224267257788954275094497331587669261881507596534340464174518882062403426699319541887418279967933311447561739126500212048767144288965798484065310913450315035550924226993134915257539465362259403198584182813422121249227255433839939056533675879249036915516384158241607972104800303295495541485979521644241486466240769861033685914774063143887999789313294317718785154249376845271652267417086949514037398594647529601015496643735403056366285976204165107666136661610945001306833372342274017299817245211388432634060339114762176572462017070855074933688445918766681924337319820943362397240712013213714026935530910932535174307610296222082778963735508401107422021819372660637925277704503071489783440283265576780353214190414207174810672935213038642020748066529855634986723918066543925674638398218801721630807465949901925513514885610157918483707786013332197018346956554566388753791856122780218117381453878920338572261409010160134689180134198475996604772891821170984603836604451407453959839825044178440860865575062996444668990316743855021326928050928466190486769705515863626987020749933372686189319500573939478234248590809643619005818743463129971156650986935006584490577588090734425555202484038117282054090963389937764876488981260749528045298733066608606660269857745441851892535868111994552330390633773904921180764956454481584453835179387795503142974891724258503850246014860120360413661183235989645592033013137447530092605859068876700748936452845348544765355118743266561279268175150099434099848404626523996793803252267261381318313342633284858390969318395738763568727283544109056593056221353053011815679050257263680534395187248217306844670045026176691866926764406856138408719437791684394086463341028570537985415120462553458107817073253656317520071486777505810619398723219342344181504676773568626153099382851591250677067477035002136408245858874056371285504558094645817329262801172069691665914397348198228551031293616929547382634797979179957388027804339824688742224065419968938001168630107820631883854916065697432829074372650798024038546875207676155075838356830464190225730348184460871669253471642567024117897988805456742840528984612483005992004320677417259986146975588501989379864754018121516202683383826562637503801395218641170603078438559138111818219913369305218881341355458542239333162376859696022421747274889991543567433622826993701119533258907799462636384809408919339993759142989891127134859834880891090324899741429110483157091290606776406754037078157195264686173420033391874691356430367996648587401117766146317790858334909779413864317670250997250164176626677484166402555876775230205471449511623740635044691340748131928979090958869525507463890756488955994014971730821427050948985599688065363444164760277774398005506162224414479049384264520792415324192755825896733659809359965949064392022443440436929838863756155086237602180054140592957766223924070917104183463811770442520011116743239748898184387146168540792214234069026317988809279084035095603852229319465789943715961104003857744377294393861200512282986642137570746642532027161724267287467594765209672672922865877504177095537177891107842936677836107500827516958883105230194904406909553647408138409520962923950019780269542868350539327909770220620315034605181877433459776051397638640230436703856245538924987179985332739455003937977521426474627083643566965632955017970107927107315794693527268848223768020931938464799931228357645381466608472430789023957913288832439746257194608209736752577722214488733400810382807694322778023765330322077184578241603122237454348651218290656652505763557467218265115103607963577905350658670358773746854855317252674464736552253330985086603288010149315374098273102527001180895262325675355343763455867075968333102659210536019044340947655520915621161873244840864704742518717262641273483275435782899593544295998153357578943969460376997113693693997651610322859890072893507530906452755489420409309434911668655954424357652560861115301859789825514635595560940243779834569335943889048008629242045902184049401784625495654838158734842592055975121971600427012878907820040120874638741032052745708462940809846498083179624532095832995533084148022680702195278893372498404808230363991844630415421464879596770325951220636337641303467477018559029148461026201779949631213091613414635923152501590931700984400541385090014517609696808618663638370217072019647857410852374599596160519148150053982086254879305724289227454330087756677376356186645012717340910895403065155322321105465704908486427831961192220748124216490313293819903387213310798779298078829069553850343010521819303950275587049713023824929638053910681195914295306283767199384791393487108441972329512636543124268519885381692384689239935405121197853199339554847334613353907864699633439191306965064543484558598239748411920952603638879401370910912918180537132551772052889661653665443853350674515464249626407648552408190105723836255314483359534693739510171916487617119524403499608520145690894677920455477555374220015292131009452213224378449770058407316277699106631642477274252793991267551906391612887941994870574608748095759240289378281044186887102038959527650606263811969651273586060442490540272227451684377601473981111205564812028498635173301456311744060967358126671606378003020330455844197887069153098343165016501310391963685786547711890797642798038609556018220565734645424498075738941826653927352386457985517503483790758913206446145873046736794916844317417236166387042654084582870688524196021127608616718705467189940528441243429057546593759066736518577233713946718810359490440848688319877742604155122519378826579069630372099430866856163342108913438729591195130962322389996053187125759754558807800233202642379705845832350055516649852896519931610446456061058119972601417536578580412519526195695842984945247297617001403153538384468711043382731584351967175041018594923166139164982014894843524146718847389196493257678650385446596869808765891963582443203907444261294245443143209233814997971283043137965970572824480515280804555683825830776027987482884438237738095607162154294435823533130673918202188932370751876243549135333106247274040244439753131964842740277479212543216563625744443850344249364943095234285224875565392020655225886593630139121969661673260779932337329572745354104105214022023030065645340553357492438269447225286266846556722845535174547751573361543713991106888278852413956819613460803507518391409145071491222689941668094020647759487627063179908632830648203577530130241418351587649578839013974816094542948231145744196192036530618242274948557178379936334729913352475848862189430454595812994269690734123692609283469386629678054654131420124983852057059653238356941789612774566201500070005527592114828339260952498102011200148295565583517579721958282334982247218508315509940127299293588085666252497844049515867015753247704748699763079881355686710888166022103156204369638623757023711450290108784114483971885281530640899515344967779260471263346357498475538929146332521389790601772859532529094832572330584290233352682901090423869713428817606945308385444815449499488803956683541567227889738258453454101913687738752000390281709086048327309496641437385844133342315877210182960725684201517324943972197299096377552693314840786717555642682596049409424163791382444493771575299404578067486814020347743313114633425877209326633482406788609581189056727897890345999154593635767951330706127336232286873469681899360151547875979728600259203674935791931661076541404446004835594470665982961198556810985383318064409214438019694670962704141624754424732050359536754360661676668130502509274198770906771138979858658304583847736990393078019600570776892487173048560872982401267661252690058980988967235182072888231275737883656510922382203440945585113852702974234030056188784656486068728463318432682849780188844473112544705735640938228432147732338118750669811521171755696871882016062050078142762582716040773339978951415967134601848936011523525877557434080657336917938974249144776504101146262850783854593032515001681744346379207811782930185412910405725985727597909056579877804611949338985886087662255155621156984723821475485052548343464316746214380825456666636341300559629086939458522625504031135458786549205865088140419534802314540150807717206974061125823645274194345922747039895516243874939852661736139221277818633045667363866064862413792344647997253826633979740602795420284507874451891529541169876419284559851365433657522917898262636654018628677171297823705092927649513135619137219565008624300398190728046813644432419908677296475813868348209082980078942766143962832555799347336654765085999827863551374332440936906162326221675803460495235456939382939869547325408335716298783725471528177638556829042113560950913916481955709143708315838158899355377266631112400157093910664679814047008732716642910878091899042114411321953833679568169781684563958469572659052753742513753952580042355369448820820829956317555772481102617364982052023303064230711318483556740956478576168080006125990769543219970492505912645514103260705837119639468966681634915942424405652897556294068323329786053118470824943011871287008303487260374853492068153265574686403837880317730338465315569977505534621721890065175700820087922078524192072792051083345491306189848307034007801432660970246591988744779398603908536920444306587443073747435212906862265774523009343276157794850067215448704911790618261991715584379147638882035711294523619702510998846628343764308381797470263771707338521588187375704475753075720074793705432526650724366060604634604803172806845549948815344569405045120881467746786318615365031328731237874953255181214965956000432021797497305278732863920664004357405721271695174652606242223244337202097846606548688985924043939630460675004353289703024918694952636635820403785221912277242634766208406221427037245301463431046056546619389417355394750542333218083947269222001433176474360390825388146852104579380243798882551228009534616836321899993085273026937617740806353003234408444963029496751622997131786431474635960012954052094511611927677649931069875270356755335450344374436735781348702732577929087878887573083088756638661675797331445483945817549942353927652177917680561869703208788642118927800531340775492686551815691382018618547322229319726256070321453606227060509907639936841794805579996104894499660551748665398182828505850202925469186068387830011129911432340838773766137534838760347902967132145037747126636614376407552310459101200986687171853810208588687516218386682943408547589792858053877277826031141604561410696715557049485189828133674984606147611167259356546123846736135990248703882984838235197508340652355310922018162976074322593016097391126258842205900155127465668301879633354287183285662366249840865019626593840192576807259833777339496906839647149525524477829259637954737382450971003153264679612779333498684907573903055339262560221359952067348287832696742820133642819234098696123050582176105000259756980324894370021469472046863702110310573755669149691519186336415721299691192250829194168607955404707254417163730130820304525440662185263066060052693816282276201177357747168610569901973511038369118197543062167329985655385172769280179802598658878627392487906103183750958327822352556247659048541629495105384869151165342407419740417706863342437275931344707900740473358439536680044295067026034462206163086206783911858656722275907289122988958592713996425922087119460644218235415602632446739381173952309311498032760673241335511145905458114987976412972019865694497291167587044219354141416614594272148400544443141207527357836940261275449378097697429914993730027821497080998139082461185788029305229264289715108441127323391253949282219330941032196781201697802030234661696133617343656965785590608077177102691833158618881054256012414206173274996616800753379723732316931851804221711029371874474783279510838621973428159954091717787057929527217479487780483397762261043770938834783463762693191320737053719169343097792867727245094957105888157416817277562721613266803726022364289952419134898885916717101954586894491024474710747433312282753454200245645973505799464662574499915187767838534602128942729671292374890671235643122466877635564947330443499292042464620809323610126422298979878934986461693421194838372250970447528991026508296308164368592254858807983090044948646583181612137288623831749268510293753671873864340426228516556923057415466485782585755037596147877307222369503462624845507125495729546421949184596878699396210267691721060316232068618750911034119408655535133838815724828113319382024644416043066472303943406248071521254202606837829377432220989982384760072503495754517381075822434636410156879026579108439709382540481691501857807620728787620978412454865919786673212827611825100728091293450720060429901161749649637985102230576818028568890139890669275489335705147673399346600128740962523032773063269110169934679859760481347810007379232888518447995560980141669051074097367552135325704624354077646063995048923721809229302915176492787944334806646847022163312843456428422029250380336433262425853594177085380461242951916893926948547986250748540674365148439681275478608176070107127914971316014913203315927410562747669647665980329797267442754394046345879034073537736403138482576941890483947798538205537454550135232548767793621726860049438316782669727377073240167700350916937484839698438677763682748047325772241790056053022028706355359672678959634073060200342691449972189373806847254231528161608070809406396436292761520128752949866671767545032556085941881584435897610080804605820354524177044960256127824492920715159887111944240474767229538132937380414560513196186457639147863528746838692311540364762660447366342616210302321505355118740352300866056763204941788860342772335902974741809940221538352660339241215169793450744700952027972656327665213007823316882386978392906853423434032060270672999821047329859760868358377160901966936495566945097934127957839297223955326429990895636116054027805530366029679583374345721376140878736742645735528651880142723124208847822172065362585666998958367663027411897701892791617753826037359110040772054301301249467490415282313089252042691638316886990799091187805960497428834307503569597296620780369357986911231219179328087785207161860538301227438887469373182213540496457407499332499475075006972773781961600992809763655489067294184444976037853346831618575241924332951652620461351289387324380637246669306956476634120631775088428113921686666003394794908014458407386143295022800708536605644273061727453727388710080587816592031164428168596932053426025549208952873841770044922174600002474740327764880604307823573057713309806074410867699966521259002373445331687831552232915979449808830928789469789920416586771727994344365423416874385459706429689988674515214112738113580435379175816170547845710881147686345334807400609817345255497232006301030326913474326663755472177921831214416442120760824494028576462759811041808766543711264176075299575698386754234607199060122353084127978225760149846537027496577347102120541254120394221653367658371706539507670935795584700774220082176317474952028888699612770755566583297434261983352255114151429663737592325638021713397078629534901371355571925297124375250681340257141183546077795388301742568564152051801473630735956513984883413198085309683772293734628065484640130046886370260927487655257001060437611915904090281433268559961848390604606571581313603330761277620052316922296713300466066876521717657399907736038043837837435378355992242318846629639529852034029958068477387309560361351120793788065231983335913014486048832154463748445086654363791271660126079919433055693497031464801726844026461328923317810032454200523490021877728175687132678136752724529502148646515457491026482013775563299421785691179423133756619381912825071578329468534606466091088251074689464120576412050862752747739597896534326065791048422268702306656530518811969669629149896930490755830576705591449360575340612466812546584440932599812982573838605963942033932214004744094569396531849041482803196002218574961910084017394233814270275247339468615029456955934089580896893777267662839163356272058350100273475035453561372874390490772624781306435951616739711556136782583313097408161133838466702342019709172542833407701271125963064087852641493393943048394907307257616846119267737651530308324186515101287782102149528451125618700169843378710458037112003281791241972912899538555462430426234162257043824825965461787344788300165757904527170333864583345155546754425855173517004207134897779167917668558656274428809161085080146120912582605919976664506632842695241639832853163241335184750865988110076929933693595367857778287454454464937693983601128961264348616758079178683269830814600445941270052263683231899385539451814556571556395554196889259231791917361197817631909550749677702198072220861030469008647116696037698365296525593482446029247943039845913052978396408895177271986158654719054717867728318991853743426538917474762410716932507696327062347085939017666500497344551953895196375694488271896686545582875302916694788385771780387941989581879738949362637409600057975079333525921704543983717216376035451083073901586794076507553166068515490289356931773952309374998831224019106898328804259007228070357862847661928773785243779280105189031546697545700827889195579248999321474957012272041089732422366138683522883308003797604613982535934438031373308470362359324800057564426661292851890783802689101730030546131916538381282733463744349637562677095362968738389155566622382073395106991167478977471653543679289436620234813694405560370000663215490709253765564622930408640329339619044254325841846862029459458428574165767822425543593457627950969030622162547450992490051892676295516801189643354039741012167360438870093101054267755817834708074184971508354176500376773901526030072359667351360726468937198316090891979712732063272919064852711192349665555361220344390708829160413325493942096269386044252940293460085336071674843409596590681465051708175611290159853773325762370199196234178488303566086204650912046560524842037637260290677694931960849740895881375723655357794537752804950718415569013254870764656043360824774019889991481833410341082016798922779966289740258068883165843113645894359925624318136948942256229370824831130159033841030027169901375218317883407038519497460558191500243506360403602675550493620838786559851699728140637000326689675116378332490096873743205271717741633566223872723943931125332367850016972856560621135566277895421868489213492819145357892293049179761183704378270937305793847371101999819919257437220028275885245162608378081669773026081561765600302926368427402476039100060339613689647751079437841926107357665058922037423041818330666539608735818684008102163923494500690429736187611844253163381881963767508288751488258148526949840400921985090462247419625968456509225698017055458668677177107656569785062544639360373608836953625202120396221726558703372804941748980051126349469268619573492030480453283217580353665602971266627505805981141733973040941107281082829250802701003518288752622527138068605774249148205527769314688067353011463992613023756103733005172747384014874412760667508721601407968050673753891115885653006721979669038446638294849783889316915991491039770585462266284707630360600964376876114591881139472681204702018017809830169310014554096469085888601398997035026954015173217642868198675281053965787551942382927508594467591756396868194615952742874131035866675225878510602828225239751128147717723442736831342195958115159676494648427596311772092174158653871929252078736726543680379427003464247535689205265720653850390847803602946888187182548908329361356495691896037390997250490409320344631478075296667434572533725626430645629343323067346597631104227570409223383034889963277827222828237016890215955949607962147211964770177177248059519611820706194556518668944515017190017117957826878747860450388948782011299292542049361398665403136391564864830021390081288718831907843335150460149271557902685882371793934398000249794977874746776504800282180727958700394791714795629757783910186292744595552107545149913495299888219947477188480985515214997442762669350214352034563779802268773036344451430098164669178980128072757435432221459482674690785118363516599259044806808784523894461412677824500566011488250357357857818644086445946562455038860838631143428519056714091790044651993529301648922496568351654508385416166623647731388397703811448964690660844451053468809765882887065602879595565765306439530862530043711033390375507878505184529589680930284295997758751547522685566321878420551672973514896076663195986068104919262994046570790563412076602256322413629490788305487026048051767053830167057266514358646423525136361513572340566103852480310814632205104700460082538960164865225748467151230246557210040744160152085666830023926046733530335273885044522630013029385946667170598916664217872527700480436541615179774923813737414410666250422548067772665885458125018087955911110627121025106380035867187160266850685393299610201768237402570417546707183237352118349339688049759291050661478864995594664550901040667402732930755828917332670258267375565729890652346250008720769103549133637362093555172142065188105789203441381363095185393847959634373774372101081777617183415866224998654425370838564897826062085732223006056382549753292380532359559488994294365183361282291065721811793744199753541177835826578585850403519421129774021935360949573993332533553238244194995553666832231686603657111672551216699795884787551443011220714433347359768610586426535924614556499341998454637175938554188632252143279919561452605275029381932860013541865883381719328279470129513682819236583137913704216087021455088394220040911190225144038791019615343458663177876304551442711936792615512948878132964484940237864703968076754234079419573710433012201410312664158763331875758247206505442899363310782190432165407105482426520477680861553128836724936818529042462459030226043724548866292134954953099641489483806037834748762252114993429861776815283304712202130779205327542867973443284159889588385514789714183363321359158862673536247007018893405670063025558204691034001524424067458829333990016142959859887921224349153871078649780968682385921692612217341963221164061192813257704994581376149042595709037358598686756290001025749664167584597830106151115472310513203051642687325624824772291319770048521570777026646887215717257261174505016529782200981508202794968980699445618714003998779977921763150169935714236490397993869646956831633758529120289059387389195004115319074036968688770679049053251671821426908770090110294000870240201103919780967629336062655488026231474149222564418427475806983621885326027637834860049400381434334175830563478905100338266376989149515545859636325707593731710226905041810028346868342216493964592553961279227449117134741195449358085236813725764226917193494904382482353683800877751622890925865809706358185632787132244183790989190275801103169669069505890826538745341225680433785641350103637961953680641322034915849139889284829324452720161455890456503004288756423661297789204777832303576205777852416760464139934709069661442850359044823674251867069309876308436419450205000704959150628763438079589935262100355015328569628656700589844627544181092439200731612903180061423561721660182409303458494359545784998564764376699332780999054752140167792081193034545313458053692168522761032166163621730177850562202437623773145137001811582752573882469095598390469651703698452351412593696007657520413298430151509073387644990419235034850118858561590046756837214922988401572771075963830840012357416633137542519786205062391838825927231230990189183559867063147562231396967280444485825462410680264733861645460407174270314459755931522636198529125628852057421428999238978546798852960990392785724178463889148614539901337624723765100147428179370570089943578778902588427021569859809467155375222486188953190251688211497675693461037519119034334493589506350392599472353440750632564105544495894678397077668948008097961476078316012806335412026788556528253712885261203179854030577526975093972965369851874139259243909253862206635117682177868228208400199093037590549251953254633942446339885720549021330573667857367135479226866206166901029416027380036512053776668698792679846000331164389436601318191621194961560653412902032290866698775014775757936977168063152957968081223075226800875985191984212073035892482506900429663689710996597980373869454416794780881565969251203328570352881609277062655870638603005136009810045914717322521947324583010396872330180516556664962183493747750421434722190885237296874000682588090873044133888751493714182812236366243838299661912996201500297836433805715497396259636499667775962779690250203725553787957921437870634605136955078182487225711197424531185440268877802703133228651800522519171164378571927458410119047990317366048051301115608851495804569169302371247570848162996391074894490801401431619389761628008876999823956960165004440360658095494111287249857188372985862477372544410171973373916569857865256041109890615062436670236683006488499464296825290775254148449081613110594750064405724928105149964331659943368363201029520426999561054489766684645494063330823067487991830126619728689056287862857234128564931382645115704533281649590264040159200726220963145395855999274185026013787581128953795048694302423059883927260211674193975424618413729368301932627430503672085463822551584611817779273939483562292387276607741516552748259226164136520823929786823761984678613915595802248108531198284603337451093409516614096393455419659990430000127505634060195400829993307823802504620811924596173735604750231959480533929435985117291788583318216894864521083273526031773816156918126866510895437035334871749869944575760880808460153531693129443088782717184855184653802018012273775106283900804180536454007969769157903387188605137117950610139006073622621773913880031499712924652595368999677570031023712331762200581008370413214968256926997233292457517552860008682290000452249663962880107150272056591809780058711133439675265343355662177970890570496086178318256432337247027402360475071896325277647450626840497050130481734321648781238694103252584178080333086503739001667276464863940009096197331469137456478907365799543680693656793432548239308955171381869042181992615692992391317010426204718354681590283849941431212433788505024921690382839205573142310524753688766103514970043291650624999548635129161525583990326053276823922429143716134306353201183287319668826471334643942687878857939929114275374252579523350636456807073323193814970242869697259177756864152810431722089106805760856455542884630705065589751239971210672211052540560295577044612572418692255349340922419232665107229235711889598568450652720163549539287076256323752453153752846968771505883717297237372278308491048339540749013179406297637655353056688896741991649509026452287059744109471326861258365676735141328252974861700169985686684772591604841543901843090708143287356144256220216066822292454929910975118233969693803589697407178117156660429192347479551196882418782507235747701978088332285144519739365592575109013173720637818183032566188687727449669593556168966674072338349167924260256306448318329750710295245991933483916295818017335608617373376369264732429562450254481338148488359262058099311078845273478840191769076396610557964546115282784530259037668969156180727164479701684031916567495257128868019853654592736344473848537208785473005074375495707946163017880646098620817842861870170633523348265875153843116232747412413132477971834795106396257846348624216959180407360452996818349240377656812465091022553790747465137220637507979231281900893567812969145847969682225249841156449866747576275409600313656509406087376955149491992939309370445695819305205552183792720707254196804043216779964342209303333213473349123212937837246409185441345818315443553529973366039307969039892991305175551831737471339922723415322442621065621750212820001398470703527994135173811450307996025277982710459953910314741210188608326277133896338649732111558892863275885262466655717964129622173418235680870658061180648938672025020717042974874361157483421665429510830623857867201560611094260769479312750233632979297757915725120113819566868287650262972730894116663437583704104420744414704718396535057298863515949197167108258297273438990336631683741247955566972640703252158690443209557497673241453538977042704507518663217122256617164058702955786236223732180859135862520323559303845877629183773124834638515489034510111734954242666597497757470036072154275190208360684921683083155523819113147566029788785437147036375243529323054430827010947983078260437600600830682240264126299334909070654612583569742255452003128247148702251595428742954392872634185764658420841740238616641754758584153628032601483878037050505814116390840313679170195126919592833714703922805474651847957039499872441705720461195726489376597735624708101831997520311599087515600172057093969977054884715320152051448956015012728336840822519320362432885749936038265795572001570094191490165541592660059451816524533728229391069113484917954618577013137616857215074548187182038435023643411882022092014414966621285364415928514547912698300242402041902605858558890371938406835540151160824705437267423798853340087036801319108306731636346844184865162553943950048706168103544990648564623696324555834872629128801113810309400940831988093789117318417800842258128199443359271560332003984859848549319108981983971570542829500309920061472597679016445536628871980345951743024497844750301853939733090258783975416297715280700930459711389942266673141077146789055750397180056009535806678962704043139727349934865031380031190061279736606543400413372224662410969769219326155113069710930206825284738369850867320835447108917843657674663181283728632258301570930227964909266078724588680347407296873763971192127018238107693250426012216471969539284432420619167521190905117994361841291033756101080040561190135296345813074093453384056407013278029601002372841787547498035522587133229831341586957158536852925607549705162224568297508872869732281236133684997555344401330781478451788892026369803319038514461367225810692282968501005491288224636150028988417399029673312118236658153946587360015823443681631941550592148944543115450615094786685310854253380657495436109109806046091038450226107812747733472898202765555043677325346014885997292857217531834627413040472835409424210454842514378621660263419215394975014774121095912616242869879991846689740978686527901727299246318730812514417177407574893269054203271688463421452708305355441165879038868170606735631110280171574946782787637449697080964512521382870035730331424570179618842600427152330649404588130490524436251130027644333966179740674495357972112044241067225796230107786601112342646859289551945681191098804570361715920488951648954045587678141370938263216830240413962100959226323767943179123403266535645278422305617380488005424412781759782772217864628990739976843519083693091500993670454004125689337880546968398407307492737668507210277235552857179441869159647255158726606662941205120339396703460166873699638484033060921292385704744024574876412693874076869207634316221534399998993695478712193008642391914204752836861695148769895798092838626085967923843243868203467042794895416629725994515061966196349607392189684584423362666723295192992413594188638433840961443617521538102656874538872434067916166946148015471003273410513333723156198775487777035341104428213334764774830059459473962020221999024593629648246564000651490075365659471551369710053396625130775782703294378147683606244737946565412845992173240968119696871923885114990437447890935005893611267861100844415116552137071603176902674136696061825987196769798423295409754364687520905344701280241153182363712157901863925617284397173512084229654120466038440818995799222843248755583517997645366684381429950788215370795499581142855431510770496412343158039357854643455156013758141176555324481086419978143038021848550971997222513887449035259289766344402701725660810139931815892017736379906844239731732100687320409542512940142517448094419654572831915570232585190288615290118695855732219092640521174050569761236769134046671779698020880268681892855082710377350953065165872169460327445574399625255191766111364376522558743228198648965254013922075372628620191918633543569780668550516882784053280768708857410363470288814080430394858690901405423393396693378278920443713459000994939180771574984810951104011997499065702003032932143557398696070280775754470021714365415507913823075511175448420029227464170810340094133578070054711383290975431516657220537214221209220640185514744439436564323704480345521543772337163390584918422174378179879786692209193564485417918895537649201116047998252916629408292700697976750194082725129169538805852603851771893025957565081275259633982884032582951590374284119750876943724993548313330804120801480147951881087497232825834840795702348444070567820980947504707882278804178599590519061951908696423776900949707300902498047667350964573621580331662755213727327955656543988802364734989833392513592572236918781464033405364023670887563433445012516074154830257306305437171374182307322925027813282116041333823402089154364431644446183573152794715880739781439422790555268711782559084718821823357598732396433816845085600950394789326018444168226962667914068502756271190495108776346847369988733469364610073947515769827444327268795250401565465902576468067822364047392805297179831239933590357220833519351502696238937114097275810710914609943704462303217242548974963595587923854282158216194694351313754328469732110230853197117833322587322645426175378720399107617772269938210252489523270870847498271722970351607234788752603852497781084651851470917576780742506022530579853873633589651821025614286211599885372849323494791922914003113285049818454424861600547583497218286092120241273752475265206195031018185753454276413551567478492442208582479332993400049762998941413339255468125609135574408526269254221620847479400363623755037753994848627478754658299464130860693860237712842178134996911826644635294399848499287974663739117104699924154238840963757743760870887215276803074842733525111981446970788030350046000194989026961921152847131771276699661300084321026801127587494334319094620444329992612780297228608655648721827541649493594252063367961274508644750413644472186613818484688198420413047009653541508679212735211766724107533551248932246941493228980158722984704528259468448294577254850000657588127380951624083813804147057248925114019694512652860270848059716878454610865779018342422739451859614406282572894507690416969211138251838563131974687824451218560316324445501289768288026375172837434496870666407911658162548001916599716156207252011772869931133468008373969338211826911693417813424074927316920478326095402720629911319424804231977147945599984481371044832267200457627898326969907143542315569357489539016014896528329929424637376527731675183562887498919090704739238085316747180254706751880562244916550573340150936598992410875791078030870898404975413025809807411629116248475803544427394772221786781985815491894663881057611579687553142389992989250008735316141589722061624144657283859625770309489353337116775757721231554734562506966189035044938040924237388232514152219966316125506825553401241253112135099073980157701673458340990850157399581028817046553530092215275293221635886585316224856901339714414149149000508713633212122175817502503596383436043853860422237214885548544552111702262651354786705021442082914810360160642478578081534961321082114284001600453167986072023887225611708816221655381261829457269734368612739720625174279581895902356632373579202035467281134395282795829177736617450019093159105676089700725851057409158941918010199315980301876481288290999349386862134142706370620821594514685786546803209053991419392216490036292632639894382563726472024337811328803552830528564259851360860213135686286980177020656094063269958730684427518411024319783591216853409210070661167961519803445687404875411963988213455223862676963217263767839890797838503902032960592966541246277702003788778636810355010283749864023195343325271757991940874864177100630974524783534914406398710671290713577029904605292206924256680712677640528596922686919911107565316555194074607532000559171416826331004146493219661089431106015952456090839559110963205143718503854197902180702296914183068869099144082017654430703264376723293838272209951826594522265912569229232157685604608779415429896441176522577626423081307100056712122841815952877049768586071605608619511947611931305409637800023096466987843547820073851835881714017650894758140508763488227011779763805842651282155480230026278910504628164600564118110184399408051645285345251647300458948303272888806716532106523172592625736490986702272012673160444556616109047167425313846124020729027247674748555302003740279957938614669819029379626356889521978490446179502308272383917086890625731977159319118984722769869255629463493507101846410292014311075254989327813203076026034862676698403482436373485235318720216496147482471575740890102416853839193495224449073397749360559826802239046919216770936095158487408043852658734096011540004226003497867270130040469181580780552377293758965675112855364149770926959776516832717838374466183346520608949923090659317326599521712283688485283278964201928722634501196546660922323637204664971441555031830374309134124471065217555313853654686508286927675117731431752021488120301096949335026560925527116563268099183534201856935872449891875034566461494389604278079362305060833363920967997754747198008810982642439309931419925792250836506140905004229937729871291907807008842030974369723756726836320206519223701063289903604978587570196802996469028213045942230256358019982896004607226451829500494564179180844554381768524004381572292951384557282580964161194976107545492940461289139737376197471622566920297312469065197692421044608152820922274218551539395167765922489595923615974538362861269060756249608291833628727574164664563244439307840493008507530496819435191728130698074483596671428041110659454516743700957628894257064891072848342963940499387260060554254303242689398844784774490039326938341242885764671780177822881254674488475576293048166361331511447302230682826438888137557072708158392601160424997305618084317995439860242679996038903406959864665831074560815920996993314414426607281162482737966435519291876575635662122831160432023673524949395608658489854278383886157599756226878752721011694582076770136981579986217488792111376073180527281086425581735443906214518494487250735489666779217859527638905240246495584903269425010166186132834542955808359703947538749279531232647142878589475048056194924996707537745041901267696375159798677842686787045483850727542868246002346958585973306785200546812322112794440780409785407065897134926613232739297928244200531759683057327382753098536065462532738459706286356719443864741331037087821222971059868705587482958602529974208533587928115088386816666638539543205560861611404708084083147703674872874017725788710368498162011114171316672128084533125553998128813739792448291337830302745223825980760674369144064014817534316124192581229618570885823514777156586693433472821500223148677998861732811437738822184677661733187605769604770454084146527063561846492526968315486628254777550068728084244190626165539102058181864644910630563780837235814728800373927835071512704664367948359629274252635011229706857570990407792591500531608734536010107168565800116921723869088831102193155231828580354326137435060401392999173756402334242250007278232953850243167429668283171182967212353220779655573027253178467779425741045490998372283618538714819748281220125455810806359227247196484456812939324011754803234930784925917497154792961374769670553464089955053034076836064889289499730684317440133566876730031882956485185881715963212918526053344106401530586599300254633870053805677226200341230589875357631926562439612790963800301174373425513060157407728531919865434812206945347793142732846526061637780651983867189761562763158551571471176877267302732297839823292115462293384814959362040699006959413530546401538816188732831901685579220983000065835962222539166345057574511176666600045512789271663513463891750383037614269455741185754824020777341530333054869626849088571627844913550861899391497511528074738499017185473020349303888056183303255657944101574238187282583396267505557139982358025050377952994177019702011644324640309707471661127730018630945376311569650315888140038818104514510093656941232016082299171642661953290843163534717427453288665819283012936258849919500565976928607481499574321413724259503636654372783085087869170863005293241583695375299088617744977459123012172910854207225930292064363364236434444782677524939965025190779338465508530110919961558649842786231551865129492325630705237070379855916673622912107578688348177679563805954571919057486853824108680914444842743214710216572953193720021442165252357315181629799048612959793095472630967097789980065251404272244594307521349070144537539468774032633939429226262683249103245231786228728648125307795938812784178087996775190495388271551009578860846537249950933901609437568488191353282572755004306670912672710179707855092863535375120037287561336133783693954660169527785445974679791267675350031268106999928293350788044617230376509019512418878970204783489019814775489055999199270990592808675089629520758873416199756893418419448035649094378189959403439230791528315781816701374983975954061338773596676495803723051503545789972288479452119336534006251024485726662355828176267775971749261611027434859860372736977576917383490945508848114932069933732616762633612283270872305302703935789462295921436498469579963002567067117366829697848625754274567232725400999646915409156033037027771794940683696202179294512323047666569664379352179970170974323726681366547805047607491663410278528657117792909016054320637004662090541729071588019997249081825990470176821063127365796982260419989524931277650847072585159138723136204301352621885760486046599009249399301351559400275329374840102340850975555102161473611481831773627885212988388961393440141130317562598311759729397369723998626833735682741762895304126120454616751312433204090280094106002882223328184015150918167880366728309678509050690483089965106725930178290294605555122822549743274467972850030719046634919757717615449007534391904242111129682472011010150748140071078302937719428839217951531008743482688585504645650793215368495200066244677847912058434755511640951865490544242685053035594889005672864942235632443270234239763253904301299011978548031654755738846108696721622123850659402842764506018015735595966192343120349944565151470527583042105320659521374793313011325313111031754680805229182864757364753979725769293727742505507325350923539419066718410160153846317100231308150515253990450167404853765568665412686389178574218070295488732854371608004475301991407608640831044397288569363642467927535154878489114269287746256238009770887857300480731311461695093000429480057171619611288928485952043452109857013401281371517037531589621566042847725717253299266342504252843698564424406239759381666176717121608963759941642530842861137076343157649637678220351234790643518353267043929604902139860865780726484408373931300400626273656264706199502522592740316970341128655995119598655904574244408602573235522301811464563266187859669317234505254587026777998120347355890147982920954164195714744105197038756389084327377654805752498523880903022394596248002799131012981493396175916117998620161594428830130455145225578749820636632023170084628516570211189907602397231660962580697235383889665649663972694693300413440733169989762063428181024743523922843819381308118868722284170517052550649768659114759521715022285151781972799314787190110550209892739484905695547738482251048454537676870953645213768605454430215820081585680857427163779297582116637657152425391069367905602870837128279407799467655069063076277930233500489268376987792546036105005349551502447224580053485136245235022802928545828339082723825293144172694020488502502793783899590732130988757971055973348857441811170501092170871297222696016116157668987841332059790979910482908768476306078935714093389736416558804808595904744730983796169753722120723571361501761117186666145700274216264946952288904628022705118692226413102684495577978935078772063962085039488797997156870182491786932684339423390479865597220443298651797940997989958687859782565339916517028420145286890313311357681846112581056216302291409635374254655822777365858319711690506084374220499216581670024269044928258749421702717940517376558781013321901759686935463812528919487768737710406213046147101764223514560934485894606600082210246931065682781376024216547409631738209590970808824751819911942575673225328944361791833313065188430597148067072574721566540504936806522067237843521022565500457477396536918895449469715296240548416532335493908944964359227384858124118063213888277054256122456155069939849055712229947240277921455895904956013925368145302080804805797928624317488825010721147653714342419171823313612377422496850201003044926016116051590071731103036015246204780049446506683953727101408039884227445288055845648393549992958656783805881213147332736769084205596236729087097517808753650631514378713684641013277016866526273232311078389172942880938912223242944809504668162391626505193644222480070878113178918215889680087526222991079047277940863568526576478727818884290748782312511841259244144390869456518961838428263467999950188235308874452851785950404300295389330472560386988034938696916331915561118116373143849883017353877820154089537830745142916243625365180386420340066162543183346178823531852583961154549661818336247463455882642660802707122206410951057936895334950946866998401419018783807514579075840267609667547811634855272637846410148651399227375657864221030809578111350950384344347432206904146205863738698771907498312866001539692221828447925238097481722159252873830044210720183427840489403607580690767793602326884759081844066400741838729650806595012385283020684641770374292811337033943984231515260965509456238070191235712217965635249061326922632936640969897232419418244023492760082829113714068688809487095105953678957758204180294354518884488831312749061877012336538344082934120972078968564117228615539092902751451504631381362448651298756480725768459911255646504182032957629216742591765164503651992543896100405449475788040888637908917641384151188996277810255720155311863326588517872944804963135567757054045702621972690721694531177457218578793782731460102576192192908403951693102536832013416712470337553576551741171230059073152802318722476717901608779109355487250222561882435163134354678825443008996507132524366733530847515305183021443353919936632812620298651257690913261601566635681262802309173886187678019245083635039942814104345840418322551440489119479183350420938252940475032528571449754722797801715127048749094361042080812953546462394208306443982251938853594847173906852740554385918764598192832249083882419048654661066289451170731303473294152617079350498209002351938470165251191231913557135682531366833955458840227515633027625690793241480232528936315946230045541520295599403550521937799661768998431501075486348846871000501117038833481421736222818592004223745403179242499346117462651644020739781682166855764536270719830790907376750867689701812430817917348333586234905887028676188412261468799812448628877068805181390868394705491856124812798151366201516843012022385339430621353600825449769702028455831887042225583043963217191171243935040278175021815116252518989993437893466805073860350728513362203098132848601889433983193796752690762291742578059253976778600421366514265355921344914027374692490567107691586405109452813047352020690296788486818520783987930415981143636356912320060972720100545216035432882357739624311698903112384717304282152175425558487260817300517745738536601856569332142367666780009098640973539711026803665642825675570480501026052003684156353827914748934115721733296870246403233531471005974351619643667105372110175274606417246118761515302767792172350460042028350209943818877467358970267197181480490908904697305359892163391734792673341393544686872777673989699802668465371207985048644863404623291483757614084909924725571808389520901193644867651074697971972888073066480771065305389275007118517537837769220583614529116029946981576640987480195957167548874344744940162685535277517060341605768759539926800337824219965541308656346937879652779323440750742589535858215481269320490797192861759250215763030371113054242726477720200971704907080200127553979111789648002026252673511300422303416811918761599702419001461577302967647670357631895362881313125156685875917092351827324931949514199812256661643930287727002452742506522129992794073329520893310693169215291455724642897510375972051649488246754735089199692398669479639021247005292462256847275853511542215676383093108337662097146952286361177177582620583508427887876138961711079380888600160940033804813594161406992367001297747192262577011740440904564339028136898044228308687946630532448883713188815045872736996551713195206297153519275160248910217115595126967379079946532807323986153588055165193680742903817818334411018543770831909179021366855695558628682932429991204128157698131327091330133959035595015583856113288781837076062522619701326241245909743885221906388569375233070269701750302151773071379725263127514365634727771204557365171950669220255896022547044839751957535395366037572534640825479476970958466916103303361849949009611372971376978349376958891551162802243235123472903067233755547478278545915714422031263962262623104332851284330535563134539410877955360461838460239532981636856819279102372683203035920330881803548116945702505208305914350021572083783449296653918196880070841549044685483597413876848323608716663512182074291804654233576779406864078676622109412534808875215370809819884340553221032794706153422129359238774660418216679061154338830228253437594254239823969887550711981871525508919644647386040791830680019584455791273000172607225202065638385139061894877349504487215632303275550802181802145428900792371667402001600837704735694259783972930732909081240862409733026010811904867310894228531005542468645798223476264805199941095360496139162557252981976596082888628610046983305801793443367398412533853868401311540704601817619772390919956725543395318505717128388041740985205768429211858010403023640063008452623305471118515706167243229879968459544136000997553245640397419970073640769002032859738077366866780861871802358693412057546791952352396051003918556722460615650010007964834041068266636779093347741689805053067464036895354586863978849401744623805107621197819223807210294069420129561719143170973354985544716290722324193864303610915412776748247874928870813189909422801159194347589865930670643835300886602495860202494576420448539800107424603092643820706984050324171622393400481600883921895156593869146348968416358177034397527133476897309553753073991929910467720883790472343490922244891875343917526956845268818596635447762176246969641215269753241773487097505583775920346969561712456901976953661923955410777058812197283340414898422792166738496139612535946759768624368686327531293878094573284357625334560794782020425272228608768989994989916748313888844603608267407113305720612251593091594424839932986059462457646105603116521565555014713882110664383898922298345157547167635393882843793794510724306155859953268413285146732636861969457949098672514633612265760259446093405721228761427601264771527622725418909643688850917478912921090508187411178948401392115324133893180353400584451421252519042904685390483635899545236865595921354796734132837691298456488029587618273361646468689546739295587690550979624262688360212687567613114105101456550119989866756203762537323486697675298792091998969093159053244666746742143239651985386922349234946127664794864528516275189289159375405155282156117746092764648980763690701789581402782365530717445713615706519571491794768638770516900445218173167858116638953262336681523644152753201645016344628510498191235688006199056138693166300396039001889056249613890804882979610661653978468236537170333789486709105897920845960670508042775965483039446492397260832945965841799123700607873514825265338908663368996675086365450170987361779065124424130145590500269617207594377569482197956436744216931596855772455902063122446742423523578338076682829240946425663331517240693213536656010868773783918540446616429267193744865634551642753287091880284408990638502308612684315135022841345537528889241257700986037235565023360602584235419083803232467273637505601721921828296859975770121575343614395835803133662486883951613010647393260925032814486477141417862647683675760096116686215164084719179983957013700389923568226359313394162971221342624405205882268206537471517217384294899031600716919704219096649270526974410336413311532952774725495288543557535252739329416399567893399151004420864801950739548571276637554653448751752783243665805805806990362216494779726914667586020085467758817572339910935037524158273098644938824945904723895032805905627879570207922016198253070869218413396714299823831831208968336294819650879142349802524703165504572350098655151118214484647538587603024007783627377556973793508584855630081758562342602666561895171815100545102160538467508129345382811077168931628738965823001956805727395792941206745880893631877041113717632336382282048006681047200084285401001655730118531491068002263773119690194431061245672918152003168596037310926380086812505259814795136630259432066891298155193669891711570761874636873960929222689478214212806869202438361598161203778376677065786422348682739333698976967054170235329339404557333119653802101731086536689245776760793405266617628415746986717756066389842910351978970758546692342378943893681536748098238332115491950746032799130744312517982674174422361347872669482092756799622549299680878396889845789197655648820193707453001503601151069306421369688557729951316971383854669708013656218471143278039805082389347491686248224327613239131732360061288063184263962003105281410812100673306868474917073715199290481020137887269137771317210827108672968796968323775063340004879651743653887580608515767357645501931759463715207802709218476022039465907699545535194594923535552527398488646020303548266376704897807465589333177887700894614970319548987501568878741449177802141861387318049487355232437511244822071258304148711678316721889125942835735623591355861217025832696041883954910119857779787671835662896983530822717310938870812579445157639994771596122793872586337865393679212528401428413005954924084335620270284315186274937330072531522299072090035654128376644645011798908976236625886026635296287226026121590689235696705764537033701905045829748153003763342138040411074092457507514499379126028613544785710377146799507543751918467794977744754491917532775657508953572981542250511340474229805080656723548752127477007674459912866825347058378585982715467491380472582469913206969231132571959901992157939586147827913506229652586386092746720079202496387857926553577926512279540026514872439979116488750026981909067168087896985116183377869555483059048669865697548738630873584890220320917170269669776445848025409904046898012458815617125898375954856369686069681544575158035675730958936279577217323820869839567587863594173502978530636845808970324737061988781961114965199418828116322644233331222682293560933578119197493287947940670913910984179403569852218267765507517448895938110734774384653228925083013471533528442951575706601913552463431810018872158170445582815502864596653587333889947731357390022735594524107306179676513586940242115842210930358211713578693867246999665731682570829119071300925981036690096581042706684016122168901298843509337668245624509553012355655962981018376744458701774523378126954319298379689724682485583488210926330909890833559794339355961800121091121112653684080490436986981878624987880184631941306993865711280607474080927644705663977154696004286338960592316459610302690150624433899189839149915147779547458527733244812157928290732152069854767287685910005013503497860786014544229085201901219241902692708439345956746075323258660757227192062235081533085158312050441217631776124749485779653110943084865843575848878690050187224355477815799508198410204935470873582896932445809309834907560799552017440321884132458821139570579987540365042152853488727743561625784576600742565319934247039992865959010538689080278664893003133894805766809071226180940062134727799375864318277825011664348004265444657023339565304857307719735999532234633857952644084166721401059353564757520577728581465305778222765479886201883808879700797008527403599843867086068387546020091717264170843899626105027296571166961358374141637676094138131109549189197909110687341601252460910490994860890892298214661778321540978925761733893331970405187380563150858921962086674294179555917965902266135940878130338249890150364850105898037949460552726383412824229152165126477025171531851258750634813281123737643425087639020528449048299922722642931159940956841124092388690458202873837009573094434191182431361803712796892409483650817203556257787410455753801963046573569167347200215650862084633615634811811506595133241198990881225725006132186170798968693661155959124231441802406647132227573302578561750188792410963602567972662083969692922855921274897540605273359971527378940665253500587808800695134770096845619666509227113802566723514266005037862886520492964982527324135048702027343029939620349812230745313324146715870570669643774900511967846926888291915594545923264537021648593891681918464301875089586287289338635488595651455199615007698940347373994299840930781716917720555564919518317039918377047849843489878409996295096855119480558738462677283502326583081279918009025189206950363614812100586601361618542652272565924234673036701636070718941249545760929378853921612482742085330308385723935331196571567678613260746739447169921663145678318534342597790881692217825054874309123416917511893163226247729939537195652820629628567141967501113184978726507934900343330867280481820060995709208652490851685724392202693469754309673214380898945354951995049027589259007200688883908026842954596257079114382576991166762780528103582991194656392864289005003322019813990171442261657392944083562396035020848137098256379002980422941180277135078175690823900571660073517949617221462165632188487512564665993669118748189960783324378128484113720736736508178735010785887989290824657796056823234005701453743713100845077779935601035540977190741144780181033619568617344602880247430321290265430303328436840442716383172193529742102983446715997110318883898042069941168952365280853904444036017567935727092598106368870411837842043166245924827689786387290453718144029107280077187099989088072940559241174879811167300520107590450999231254298352400584833768659705489871462948651038704292651589262784357846362774703769450510957151573282859294881375850906065409239416490316820575710296206698493083095054580492383550803513674331074390997418610750672821458821873926464533119536288415629243516608760039485502939365347630948374296638155013005798661962226000679108689531591437867080117482689229655663708315605741176547806625334418563506398578129720689143880919069155006280849425813061380680862785274698131317248728819481312163413604335598563064217787733181361594118391279976114364736149908130678524823407970518180110288585349542538334586058191587182874680062111948025240344289815437086080375406782556677051765526921871542293464682670225386317641047747947254468052332416961466578558258335361031455911495522646683812351408353560498969317699276701473676404536058422775561840903352161425626513192287999870378776237170555153533953512306601165370756051527853236755283624501460432724234334484202013458951077873434016504452587025831652872430029171023082106332778855081565025847552414671052966098854471069768589822204949252528895174170375174805185935984128035069575309543478060006549101172537183835078938992556210414331695586442757282062908828415087901947059088814391783941906694856794619345263312347951114437796037744519136176801866022392619972637981221840862980304557160941455165313440283750133647274122685832953574573746811928772942840371166848049338533733423889826744271522782722101524443958724701672292664089646565435244414485760034042903420674415112794947695262122517121965212997456558801328105276450115020222500102262608414841581518136243843776255252806216229491286438179099032388804813917959866016676004252522031120657416830863469251762596205732987233493347964324673718147816658604537360518145177475122826389769038841332006999810499681028278797408425461228557736580819879103911341923992819262418314524192045551856026251838798518973789475493313059631641493542176094918648372362426758175987177712878803147660036539439209960040957750346413789706615224050544530839422030921902383931515465102321632272214141365163726263194676355346710501545402701012324918592966446324904881856025474844518974386458676389338461735261352741588130564078638790543068311236822858965952553876879489578001142473725451101088411269535546919138298207421981524676554816729018412231323642102207049283267359472146829488316726270761145316865802264254647556174684560259114562107208178049184108862170582695773565377573106841642122463347330903461781133896243941333937367842325400373617678164344581730229358138707323579974667433803187954643794057017745835338158689008217675392426123917244200385245434500081362933923770697167043598867118658488220877361865266787067406081580730496124580348905262795718349778379346669593437409023138436014789129124340000507683943839184607824970950648884254002362186556689488839201362349990661247372391425226418181813961386465467858410921542220069513435962241742355181755944492795651915943588290501186418349746237803553921688658183923651246110256257748442180063544621170339039383932413363767034691308822876165567404295941532047601601448442180802207906541710343374215815784635884101822687653608822458572624231037580884437516459676587798834633245522137062036806998595843381581416293621566666113594706671170019542844610132387118029691718829504636689069420893816804189860815626243771598940381210349609605611391579308805531910353029049764554364967019076597208891179577313664486322005503774132613163075964659902176725566449212346090573597773717559751885313985620215207828230081568459109144975712381294953932822658307337052556617035652027253872879282430023196470943393678844499546645226772783565486418118212638631473013745354170273870549511854120624843075831209788016867519833708259974739527075767300495466997494637453609827007946227262118839512631138551205760037999892117896549419715339734565980367240566022927501187849188431207453880684187064632132243292967009342332709112785821491570814402550174154138987889823580598852540516278193750262332080834966102608080012074590947273540468084509017781109354745224146358910194016898047500128198781695807213564040753648322472402302051302487480264986685833939061266729943836080188832305096181177578927691840556198627654411574419589599991253752759980102864746321787385290640562849438217963565715196514418565510467726255375388823294373629520746172911346275450330597374929960178053650016394264857567121199442094232234475614123148740809542033412586180599775523818952307992361063399589316555507108427110138122162172460624527550154140157624049094508563338089547007011338392169611923246214375608578672790329522872335002587804368365347378385840784027269267628092781953927209252046320557727211872102255660548485433718400207864580967358145279853960964351813175393362004723224263634531184288300589544732039618168314405954429679703132230042711316152051927088779573032290374066441549269314032469949451540419627055236282304009404019888013881583625996618916052183915118457708320726205273810872394945776899290784333019236926888661792388441027706594172851544997649607448736345416170740468073617995216793676813099997238612386449500679536768143172305662014878353964918584070790556325631897376215876551251644252074931475431162322932343108034973276193793168051135759754885828420589442938139566565710759248129952251233646078453773297655553634188956843895095335433461187812376756642304255584531530008423046625512908477090700743937460390673359988169312812035985352553810959185206414466063340872893580544270357324084307506257750630512902177331730667748814184230168913439170913296222474010240131220621243826965448556868999123022233174415255582618966565044376342453969013350467270805860460728667598616262215329087689884477100511440639361513200130864146663456230523638616944802087460100925959157150031686766772624068651685065619340724285341171882341782196316090017764727094650837650932368472152881151265040921486837753131038430423569914498889204978631690774943291954864264320951868462590294853557601047231432722852896229245535837348038898211921965545572790284057350041874244645225974031571094090879388995946172574247666665088403200924009069984474269449403671976783773876389998199414954954376154771427080766043152695445208511973381700310802793635369064262423773468205004056377225812625004740006672931984684712924928351635277235931069121715129662798040062976560331665383378450978843618746537732573269346903255353321906144396060914918380835216191652606159706534050389601446161324870202182479024868651218586358748378630066631230116970136938961581067967316041118526012549851373666623838165950354375216544839145379116031871570664368791974750284086322106132194105998947852659720097655112909332392863138073384574202415016621186969969225425892739585232158839813077231831394168865176768632555700263567042335593417530630722091392881106345464405240701444096096789437209086935537292758294472249214603004532756169649607232003306237587469458847521721346468730321801348055332188127162846440197636156941432094832726736693526123415063674377030961365735841234292528533800874511137672590307536129182608805542739589803734882338447219367452788088186702941175746444602788480428856709940068819787424886010202728438170101555423270579502347245693710886579464755099659889498144383859418123846799791649046545758867424261140658624982826374828379280786230236098435124126906299702279232010233814775061679613886924149938474841719334064989459433670286672503908245107463726477254321685757181326778926428412364342414661986619856093297625263566122542449263673694459969480315982422381626969383512595263286619403262253638498666610924216571243087050149949372788421145849818914879596063555512502447936027140300330171788319845181793466428553675457704387745189832506903233008364256388897316055925491169224460255639791662545513430967175443986308804002307090301957365260899315057018830122445057613020215262091860045372221874541427188362780056027984322029462275561941054290555097282730968170272360944585739541272003596274853668889744192435609621773709608622968003319227296379140897883300321045459753491868831917484242528640616900533466468191767277212975522383818401446254492153162939069509423297624472297759220108525146669605744452694361885486289469058532712268864087190128310813537525500886685795536079202859568542070736407101845043857514437722260407791809340507027035515747433428702987461609030219804189868405465238200908891128047230676975060441042893368205775013079354278518113419871067847724437350860562667092048678372312619171152535200335612277125570854546533372866488030667978640975078929835703803620135317399322105542156827230798131409660561641886588208583400661594250281240984971235934196258097270173624469272210597938467290451124354020024623976665338255676247869942540002480456097965337437777082851726177750610954558781499940317281836777926156872184440594953740231061778434400414014973775390167764636225033478974397775294874000870694553041255231159142392430910132748980585510873082616959941407685443912058674156690802235134716635609728135969296250685885981337097354899714298277596476537999802319043534000707536733469400660633668396761786320110230848371155229242023403304778730726317913293155691555675832038661532726930511995626407138157037944502188893545223358105317308267343399976218830142180032133317011619103066282144760289706670837707991019949566562880554465000180528950366745001898546448616688619615917605565302868689939575763515313307937645473179372668854674620318303450926469406565753288018465349409865112958619003457976721958933008581231209601143658017794047692709101454220536173122095737830550142347494547728072025062608194128537917624301252336836651067237323910838371674031139865590786831618483758801139881753884585447105933793669553042085428328894831021084130377376169281376409174902047425692197009091872639483376187634416537101568653490777103326031184239773918219233989638181794756708937521511422381458486641601724176240200103164003789892116766768500713736134175406860479590133988083489518774381636221754207577057864084879597090055014143109395035066372748492301917993095733095439007856119150629770396734112452373048189609628699299472519552931082059399775855747952435517292063016801174858521760053206250100420289790411419501747098323397458889505305018448873850700674241588885892836649594848262957989738076609682523946202256057721936397499340768452920017089076772190761389591826331776142283440454643070888301996124620050265630855947194765376914819472053839824649800463033686586808139259923151926350741568281693665348022686182307023963192942436848727615239468795332280034940654961208721913107870551507618790834211561648078120323865974434231813137956760815977766713478261964127784868136328206283179403335372777731055140813708810273377062701335678591446079858575049081929282602647010843112726388514156245236505364208899640896527803435872096501862644706321639735833983280186651187164358619795377130001066640856176158906471563471655659098887968162362450512321959170692557254224326180251011321524451215559794849653260871859597344030850896145751572749467018725845711244763796977884657206581551556804677092924357226275111624663708197354038186723556025006286768700126687515218006812956401633614327402772650302543597385136316823994274040909360547440089119655189451551201525754649787586245282264266285907309715185674380318690350855693383553935481080408067616875587359907410938247387304883858850458790894349766193306523587067736180474901865574411592617597259160996966970720095651015686328659181102188214998943834943255012826358420955309257952576535915923988606686546291872343647032861847685266923676267755009299013127184325021270389646719883602699355852716385519232405740460048261706534395195507499295566005743538458243050353213197846212309590172384462385633578016572892672238676479094714029150598303999936329094541601178028494324908167288767913455241245736548784084823403536243382782673380587871801688012187218828412479692515056887999579918301117695527762786367782680088154555183613772740457970417686491861891973192139249965322074517104031459202713019047991068836064739080006886805057328350123663032246140875323599605545628291356488560875481387939061264475157066205416577420038878122979181929581891236231431966754226242451821732146108569351364402737711174094779798582594459322039805833365711916696340893705234054966578267941646810991005802025875634715662580542408884901628470184974221200255083598903140580169750417146530796412841594852315211132139470106051044245825518553704029904971103470524090065206923717645906914308978410776285036849323611896117753879011681734870527838426599448030443104773433786463756792213987286918290459203512446228488662950393321555645192642817914716427380778685381065660569755443719831345918544976046929142761367708082740891740824870789087624479811056934102093455126744846527721022194293927845882889376163683293039167300924763613397338732206373603632694054338872604653509027659227557885454208156589178735079339289087973682087301882920114573456288365151184091523060954779076431851563245862556299827211590748072402910979954889911098514161970973782308242884519191031030919969736852220095664212663331150367433980069270541811437978468810926300753415557334360555602210185028647190600553162239819012822301535515509956470717676808714502544871629633108789997999132928340923943307722671416518174136522420675077753567127495574821536099264344970106738979637071570064583942213501757976641327793326745151758873918688710534895007571071519677690400079759235880358243842875649278399860715310364404971652215661118747460782127747023684132269238122935184135604589281520723213037968075048488016131892840583829092728447604327095502537154230865058920585239061409618536880621956564944779556466666947123629052254347461663652501806162146601248291918548434930992391784851001613486729682180478888079856153094420070035305238531114402548547366521974099561672084228031153201761222637906351107314246010832909439321461105863795348588414020813766547693064903168916729051111697192477081273468420124622020397696748964677430270085693572038541865735119769553752803114796025039621711211129611570101687706047193338664262300785583857284619402146891530366638723796166785247992752557101146495364940714604659337723874604128450966308185615287038728474175843866473948451646601934138124375402395935267130479334086263179422247697699335454836290905928547974111208018631481319212046044927257783509291079784281563832471440112249586262762531870300755160328041343570291197663850360371311777947724741096070672874695172236336297126696888150141100018806562823875672193828121180819966271588998399266730316294212791090237220067881177326202526643809314355876625282475187661431299362494123435131991672014452955446175026813323333946063006017413875770719344554767489409216967684431173731015654533068523612880005698750931706950765988898406813135206966995177489226371067617898398901429739462253666722252098421236848878849786349689395487384169275835961370115815319580166506075179023753838039525576342296258433596034358525803589889124026658179821780370283940799416777883390610788845636126237752016365539322261408139849006411774348090663389490609480777612055709951132832670674063778165678475768010805138656541911708596918907880117381904355520641125900992909893353397679861108320689706367439571497811581331315485453431565472944140095388986241069650709431808731953804920150210468069941059151664220510993982634856604934648804860936585750908395658778368712941560479532882687976912347930490782459195832872974163278713565824006532788755705020322243894786776889602105584879179630199118270536229819349492469504164998536006950796951501068912980400706580546071537944439823139593051576407465991378102447203690903689548966409628059314022449098873595346389082205362852847651941581905130716388472034472353946603858983012545936671586849365212361206657481397563108231979545048772204915542347833560112935598520315597208151171243425466903249354679089542919355163449377073503975324781072751068316315649270952708953965686803687011349550084788643150150092629150834533864556768070211097440126727154718522748671548482523439538741528506131917744941643735405239170390385584658129404821625651390590936588450928102059232309558066415869944039880929009525949974075910512778494510198030211706829833841021817849213679742974142549811435961206281751019504883534234303516433779106621274431508077172796119239764880834223350257717880735934690271140451364865915994188714160572268848563308724911950003557331584674442477344480982163016930114631967228371400513490293469943033969400981451940695355112862159157295817723521162427249606575644625007392986658531320387745144910073672430361058168276705543937981517775505163885046157965343133924419799637987824552481926574004776851077957221885822430504810738650574211191780768103734384354561905365410943128048215678880966353462372859028827616536001572253694640057432422009690564353522592592850373770067001235230066911943841708774738975781326617501046988492933429528013633235159977160453772592602010242545184200392070467104403554650212876798539972718677936107414639282766139628834737454829620927047452039085009688268056511432832633899734205323538366474705395863276355599180179019427544384185003537524520498943585751118936189205469311672527171098045382331360170779062713254026067919702518779906063536798085742525176592802595608543290402748589618581776488163096802234284274749258595800599740084399517926450849093685735349632190513297749210219818504592502752552541981759062434458508640834408024841664472982492854598058624383566097416670117120370935594392477817345132172373237239475335791777566009775405205870107605834961923168821086664080961810493202053044822242314306232817779781445607679184118990489083366172123085670301571149254314712216638205219091231902905174782747845817291874304996216278727631437896887296801074162109708986021376630427249772194902254528730073125794482271734449115482388720828296867662149565297868576309698536397852873239857473407073965594491689855322972523276898553588429905573274792592504319656131997039802045472148658736888462637847389515933107244917233651432695347183382659568206132046619878930817434741221875439267804454021053945923505513145941278008497426584187187567877377612000191835194139094073413536488291912652825830953062706509032577469868988500456391022072740901749709016207664092786631711649354632354212325572002695961674720581419296172195824347419347467637637483585872728260038785140879247738808323639353255558099496222737226934313069089298333660612188254157063420010724494601296074188258859355320250344345238153101191742643308328971079273297017724180075290976198264769675970078829087046590198010073601028744748793698578936513325104818445214760139442474809540508434366865244357326203181159038755665069486915366440048904771725914258765204079315236592941972998787955035251460160154138119617123039866560590678228489910207099887741636546465877359959622086679621201274638942875568536586670981172316940515054278229245243681619872236817592562003536674518866644139620190523481094571835645528011459632768979344817489936662821814472467892181413188070559338662560982773294350077033810862338317386569760327611599865744358247238439556959188894796498767183288369029741044176500580964000202826275542525521981619768773501542294590065328108654145024659190601343541113966759245513400142773481424147283077080834170530209400832944170654685311144526665148994571709228337763336361168817724910896279349838612389842605597511835069262646404649957379713917065799775215577378614973940445366037174128165920999068292406814896323611773469189536127968850859625817301993402176427502357623681805519142516205720466237605394577077955965266625002144868392786470238827256853761765704677233796395671563962641424077142295281023637508096713805033756084627734203830941989639516097049773471654847526324179360461684298064432942221680114821235675133650236889464069124154944569313579390358059937452285259175125349532965307855179804564343992471432428268841144876228901190093896767738341194790114179509535763674926734401899094626176999334070799076907417956622440045219187279079091326912374897545110343898943448871511348403907731014282244163334113282435454813960554144147757275850070494468164148436828828930818484684725249486948843621854342271472038244156317433834645860756958256142239823805557692228411835122517421195850513796718257872739543234720007776750915098655323804804793006258750399236891541947427189668995868421068738648480449760230849512164605059842342726387572914276765298344784196648714728691852513190213963454935258351976005592975330587020841410238319690908537434910059950747095771248417813606630055355323846138417579909731926252738023690874742334691830774265025087441033251919537074570235206787460515479523331334033267881520363195118931030086741142519317743073430950870806333490754836908133749393061739729113296451974058262191175047225749367273989633956669603733448183412211466797735062354347311834810115156406203566938400420301193925753840142467712822252078727320486138642758881476345105911972429483859531297903267712525706411329789080921680827120474036781862587652715005852417370976745375765304116175293403569488378772088039741413535117902111062135631611170530876714488991201486075584511512494622623424555586566363562196773794326326575357308500164656145062869018876883243937362791021069118734221720789644311847505489873950391507046289923350189463009484088867037983037876715737935626185288031197160470353078847859480866943014045243437600964313473037011019631496592022706178525031649763434156928133148525445162629352272740675555634974657271871836937361733852775345928820864832801421850005427770314390799477358958117275164692155203897488437868357717872287329364048667924859918091036127578366749270400954627274165519112145216610368742985422027273487259486937651357822581264762340519080264963125762842489978673413778342526205522258317477039079623990432471163872777308104535564596846065367410836662151954743991468442206377952635940404558935996857112661788025430138296303631997100116209386344924876185648713948229722130418129324864322080020266984516451440971819208656208982760480667775265564854822145614838408067468995783352764754842797770079624645646537953579234284093011617047960078045999179191827688924073215465001799750737558964347392847211608180680647276470413057354109549089402890957539649239377624116167907476041915807028985299198363711011212355402854306654361123808313663532582914327626862789267265520742125793218614443615696283510526883946085008900180109822379570455126487795399328697038196526502211383862191787682739085096663106980750263279191693115357054634609010815447877997961036499357822077803723113132968335449082810774314943461770534918244334576452960138902154821025565142745140299351313175534825373028085378092221947583979029463250403734539623536709712590799407821562704925188417622420066597210526815462925231170361566826669298011186506738134682732969160194983054000141478399524028885722886991988752355717558984612483599874471325301753380299150158754496703102991042222081943954143811799438497107881048500879691949651707196509814059562134134723009219829202497828229789792068452918304958717976452431682788031620324677355275733121823145927333917142096821477869576392589268813608305656345272358688369215071475177805739122312842183821799741267548732761794184002442142421513840365404834725695899498984846004492257719801444571013334298753674504980893467570852295756391910050517213066698057559138485238988517472490470258655046274173074469097129625142508980973575932475984658967871126986187365664900456395449509369222282246324207599841001505124145197231828311808232670111470601596971888283863414950844297258381720592866833444781841361487769725838259488635138960633275471488322116779370564058596536403107548845810302390642400552837771305613405050777460919801662852681710164417377861295916436893949383354121609569583486411711557970286401029252616051054356043584512133574936324550498335041383917140707950033443651883073100855323973361655867228975008166370546040099490170534776433756493896998402121011891574533222822419008192249255825189537534189036309352362033705075115386663339292123418998506961027750652004297037935660797763756930197718612776822270939053145398263846312088196163538503819575557015519830464449507283592727261113211810933700972894901871948019539847197371225320247825888749712379782759388896035241689014829097936784232949979959346513078732572020026348877020263079786632494429541250008701825330913103844553305554497311524639305991984968280523671279376148492926504905819103967274100637509229419211347018776255517296296157001583276900399918800372679610974636488109218859498722011010508690584231831894276429447754830159358659839280250642616411812991668000973156711440756137119371714450245904998852753532589353869065714179504537020789801428119352313090890459671408727117173791345805505228393873263963939084078429341401590914423119827108270665346835396280729727941651113634391705953840709963701072340338544380054528135239118844149856179526656174361153310023386782549736588056591190989026259981394046834469166883102759131827849997063601545405968327904815501972180760308507029191213248578035557406181386813663256264000097108138646090766231301665089115226078552840577494447681176409805911025520219973057469415441946637184068040191809710115753810181798897744816524004908344294922465154356074816191230558584687534207925170913849339654062050242420102179559823740032135351623109712511678574516982685270229801465869371793672157540125839290634268479317860111617175105896600186893938511119933163970527094885489634383085392666375318329487664735335327255345497351305546648790559493088540925778443471913318417435608387509958337876402115819784814536885038189070023776161267748445947382299509198284964663503306875902291164661494965142411594602401867428438356229967883197140092229165650471289645648235195074480098830285440536852307910070049697530523056343446117010236802969645404381192317709961331727523043355529561132391560361383964150127312284436281488928648854227109148617909654394500314821044607861751769197401610676387318855639151795531287807286510273785679468036549005106956361137469743572185751855770692597227418245336490133690069235032268236894962109946618493823864009792421497103589039278198494550218932989666972248404326864298496825732527211349962632214739088002657572942015108498958192398810471737877621990170695262001498777293738481587280119377936994646895010078977808483267886802688797031119883549049205897781119804446294004476108247657082856536420324468198794855717681133171434023922174176002402899548928101234878651902357240003183515518536527198887000151387817999473065648960586781356236319354616863842649979352685189691011306550579132070909008818268188659782461038754500823969388169852090640669046745177154357600185070873561155722412539080919573725975327905484358446387826814439553846985878582718261450170378105847489036917858352693250542496243117647205139313545594616543270994723678463588702867353616024726664921537774348044118840059037287229755059186345273429030572263215864111388760877894950842158931943382443057063181585322358814714775196640658226608667696330333044608834923949662622944113216300835273474351046952254794865711037108818653730559739606536255512950600716446383699540509514019841511861466476379657474040869679436273037723350123225148718799694385651747053406497357938441863593698063959649609202751281329245087682154018168719953780484836930847205370196478662651741380172309436639650904003345286421996389400634305721327108414606577096169947790865076710384214210954481580990418176077646777022922274418849040662735168265355004589019974275885859892136331354290619361793067462210832948509712619126427823871090758953879004341267863088957492563245502185917936128985471186175745645285843429209002647616681859739315318102498410940550636810940701109196473147070393473483657211104617746119477114682688373475963254320367756651652580210379639774027300639661390897067222812899258693397040715099916835782650170915120562162644198303855695287122542927642365562349046239802034848670886060287201621068912042561640220131296402271376089002743041153696897263618225452854811561291074955696697147163687596380409749146734662050489640532545171197023047640851385334290688998845252642540876114637369577353016329004737342230815712467372131716253112734003273841263643281056998632998373357756489315795352883299930452873585624868673159419086160931171541950191672923887501921116006120025903063807644185546399115810991450504547622529388304866469372797238476829792209601491853373674216759998859194693274652059899040840451705177248600448786139476744173273273394030798494830161531034728795422022574629870620902496190294782354635731059143276997888463000713630911746146807575224456878391714581427206945889208099494213477641461248182843475604412697088070914046380591691898056375703637387828052037287679497203186338579680654980170885355167762147907838210655330494441338590662723212411976012171455892704016160323006264117793263484370944748223167784046564719498064988346484164216116810127970900155601726702329677148481119701565576956886540449923782954537508825971449216694963054626115444983737002907747504922306447666733545755345520923821541309201626714317483840608111447357104371447165549119743798602192130209433795953789596851145881790761214891964396728579406462710546304336165383331952016585876716796874599465010654258272467638276562831722260420039374798216168671995833073372033163462126109778255599842422472458568704116828770413240095761703207586942322701593753170915387682213602192530580447839354717859466173968781318712112548249804554848999890001047214059344045553906639382226305355966915093712479841670314643401577718884083491952584788199326774128513320135294580954727649777480973518656920256442986960703484229149018338190266498152702319127407005626488624528499827659835395849228524458093488238233538150606327132271485012202442644034518962513927199389047921526276932834338776805719398792204703907850994879940582230754871161260481587153902247142645312132896793826771702910967395759305743804115974566418695625417593751143246909544007486626281564704978434346380253128631449542578974797364572629692610541235324008973452350878672095666874235284318210782392640952742067436690842638954416281411341264123728210486205304533302645680845760024099000910646760100812615374512858254295219511153405729354792157080840837934060565797607083309546250598023030247097462213885678573940746985314659702992496040384390670148369960698295598433942085369942032907607222684297031114397304233021933611702791874548748890876723984750982938948159677130023676137404478430648776480069361945437305547645242503805634884250973901291767955659349773612961590484932585790056085644877592744400279100589440941127577450016589069862988769808390387202249993144307721018301926349350395592872250656521712744939186190821328590643492090562210870797688821991958414241934565497207594138445054933888234327639933298303732976507094159548796130636314444552697983014709706003160089386991114126007895485466876023198722269684285067578216140307875571425512463490042745681949332260245886017466456827738169201371984020675184155390027963484110277181606055892133280959561237119048190836958686969196164391997766298678590811663920998951454097180779993723619405324825803034517482226600427276511319379979877947766845499702308492515322218136543797385356964442725719508804875701161181565902232813310413878476958069382303175773353871460188740253745638326206135489813186927979305625924950154299746291480446110710703409343262236923149705636666795628020700436396865701843893914182426536226831273995620646712521909567470875515127020309445104993253400033448862838477975632504826984271170963832612940210377782167789367544045737284530352108988174687686110170862799910418747122669976762714101099170911988370677872232439734182704807613183459570613194626174652960090978385029225237991310847417796936172491294307661590171996632461038158400451171817319731072949294138168714977201334414195696029685054826689779602641677174564764277881832727020338046450739184852854829947183917678256896221053302957709848217282706713063362931975946500493937353916362324511772140683625811143679528555897875996533767359358432799808244859369975250459371833243345519268960563500344288648687755393459194068704257581556306010452084028449611105349018776002575935815197447880758706715405297326940893576290271868195987981678276478822880133964951067671599687419865937555187318476326341915771603141742078381908420542705155433374125934139618083241611789058637649742169818997088509151530680719724428398519575092867222351798730027798975698028156320809677937407649310734731433896476678078257169404682793234829677471766922544495067944536936218705240658784870768837896519418412077074018628573907629687733497767967771703621755036924746056181238860273536579556380167134882338534373031626810828241762408945388810909426342926237471204137592528430462529074419320161008898204797448628555793408738156970155807935857710127179455371749711101450029423989157425095492744200966248909124031973181637261107958501541505733778928804700419247360548395598276537496986768215691242601618454912682550605940806670819403519905371703999999413935312202258710396249500572457038838373567690319237050444244518526169809364378791206143533504667158408029233676427237234081613766065527592257050448797151146408825072985838089976633001505590471291962628147230819546465381715077128044628815690259436287891944027870634096551795639682718743307678487602203018554432262788657603875925713750648130510186934693862728339163785267903599633390218099518640420545092363346746429697235330627693932867527824689085906966271632963839670250859637016508768971009962272180026434229832247157218011922220738668778651854116158992049117085879179153549386291835565354410011701890678260910148760800896850358144870324269470598879277427905849699784992553985202636362026922111599593042973338559577925717215621511672216940905367589879769611837389812034203430373561421103116742200365716052621541771157474119228820843658147340852202238202057763990996794937971145956895248812102167761622261216983770369642450120189775555241845269502319444923591843483063030287186327926427134955905469736423451225180065763815659879208914720995540358494348595202390639167528695997558232926220517309991093765293736164905408970742783860740922927468806999935518218921869703239048452415814699913448832091052123985433143524030394745100475139380138757931330455840125976283244406213184998943447292035288679088381204490799361398506359827859973267625330827479698429260853988575118626540948469596695390287165195121477406980601826176430975571028997245123013883748614705320338595243877971300656809663330101119348641429319742143555533960758147155805818406602356316999856122991370406249510726178791521400553768980245832499608682339266715761893396422053487027834712102948673401210081330888570786503451957741917476364952676102767446249342455364026726403800400944718255658615843610315468916336589730370526274503666052841141819329252906987678382968979286681255631462678551455543147808621239002502939474579472817420249032541628394474068390543646183540164263047793300889568453905294876321993567825670673148094598836478654001819836216376872704555455158283525719090335758997426272660992015509884884703167295357729633921218250668969248213783198262972750242874477998301446205225836585874332994177943086269668481161409750468300197142241561212310315789370111553906048190387862931433685121283958456342448744309681579921161807976641271660859953627462263847969302193020789467039843059764524488321425676148762927954397687611089314154660934532604168702025749183819797678210744277977864096544504533277421721074739677003732678679363700635346862593625659206598454458000979669496648175306872299664917715737467954557942760291556454988046484812634099587579625843538612890440034152961153278630583935811487409614316450986782431745564659983569387606841184554145289195164057301827173029179618169959781678458103919638346301225938144100131250042819948133674910930412191961667282578935271544448017425274549712771881996198603334800449072706175500135792182892798822140625601097748629514492174424121573168559279570682312569869969615037212255874845030006858273614361131937777720787148324541614778929781071074499731889568387351370350000363555976507508842962258080032303968930962133459214403194889587067517244814825703104681804426417295120690521000426610913299438042414782311986806603536796220477833874416419401430524671007676740416509831575290464954352035366535329444733046621483529273145198610467672860895783858081879706435632473276481035763335323617232816280790120327228609657296384825130839971615822288471704499194661794084884124594216638289212718133344078430075013741436305136744657039329723508770214870554690719750853515025745313958599762637541039042430878257416173264976836115207457943865780895289278665853868628758566188993985132847318648414869863591268773516340397061687558694079728709830983440136570455197879569831966101923198751347109633132891542235910055995033604020778054712979600514113765999563228988552559608931367572414554603413537723258227045355317224508448015072982286074380821691521252990293293273432734382615137390595093333942923808888799183554472671647553756128507975323707793174451327856342077673611800923861476857825956884372050267364886658412350533075425497255598578305901621202936328473019959204516766550724756465942102291553495673422142747365841549329654916133562332491507641508303119347839850333843430696631461587045854177560494445172282500255367882640403816435473726943731053874019786213586139861102592394495428539378125533223254529359392872732867463912304221550188700062181650599379866537050576177114071945122457310217829524073565319282280162022348411845597461660518996289221061279563523685894008258162600896032536208581030316952583605977150987162043150837507554387156406054313269607048527046967815123711068457514183038430164285332410421029344864704036424915370666690494729603378227762603225167669932205598074818197275593095112806092286519438382282730868146485847245766061824992048926569634745349018189753322387246635296972671649949132371051059723402191283637546839312756804129524334137833406327417057995403294236671113857559285177695224265129293956968368035990933132381591947664709206832535199691355227365554477327728058993158748949227610732026282672383672414548841607182833914914047635904552804096478462315070843190606312857128230781840726569505414527280936500720923356763182945095449318165974253522318327877327201948704980373244451012451567411135931118398635817102926845547136145114708742510170117771591504581232875878510490221104942066857482158612368133095573994851626239576464497097136211205063329429108477327921949533282075821456955569948405257445764892082313316872667083499031343492603234214197582386206792658501246396005320364982997325063744772808820829843484656914613980676952046962350638197295887981114786279048471925512540909615373100390582637967032526805356122509946626123254702370972965006191888817763221886384382788564723974452382359594000390894956345341165323826236850485414501598823328049677487601342365680808848874514041574018357463933882782814309321948035939573698260723291963333614085758827880786917167214303762299383835249149680011722067388580533019371217543492243574127440811947222883773693805326414646104522028946686801744882878900087871759413248078789885801386028882103830720391928383071248227557218084985838884465877441813062160400655619810359856656948583860798993985752932454740659182154138549946153831650865674128950089985847907986942396974185907410253782964961822095562276055722071395303139202384327519286403743961474848323528901928086977135549726324849042366661894611859069646347702085070232742141030212134729078159991662446151027260624090451020163446187381987973316754662913044267857752689211301479965134482974698049040157529908372279308763697191909357775526773656256395731346183566142094969156510818722261660789169861272294627878491656565581676937632810367677931246002722241044960804899586511745798391215274787240518367349353041257280357815344419936019225232804975956204353897316852968457072188068688777487471957830624736651521446118041926951798173652837865429734579032879305273555123045362292232132844649056514375476641450983993861380674712117655605203534552248047214814544104022214694496442505364497354550484747164154742273536023508419878246166053100774536331381317750887520475087647415091014195814192140260312290760794898645432231562461331979066384658130186280386755261196198090682352145142658729905810908966308813287426502133088270931039202413795860460571963933136089984732334581671665405707123512657754482416019963445117410350230893531358813420624625303614759681009785927159531073518927188142222303295279224533258361589961350173500363339072732439774674518068790275385870417281042870656662665826414694666859344563023255223885698862110454751013178306836880389547404539783362944195635707990849452569146414070391052354375380343787366837768772509093773082699904510503537731024226332685404511474247553096214312322397321910659864233973717210200242774793238598226914157453581691452910398765547646094808624583352745054419778119860361026770048537786928822403942604016185956039809908759085960240155438899898952650653613592445457256072725187262476237611888963862456340445976723329578375934310563523697586275815876530767086002546930789398300167432030843279810218292916434335578804678501884312442177234502368129459897925355285209169272936440358503995280904140383156159113711749927855335281586981867788290262467808765231920096894565564686019212013396195866476257174186458066635989875950174984921997847613575207642731996469104256412968624626065780595012423856347120846233591348239344878591107523203642047923607837321562361866486702448057832027450066531281575012533113229717088536238518858022761638031010053135716117485261722683502853534418936897772865736010978571405588873312041144333625017975420939973719363945484465510041784848226252230951190037991547778103774408922050413469033723865700074383994794152665003580480411324426972781188106938026931055260739230772633112666037661089754697901128644666180336547779458378397475200177990622836905738863696474339613689989359532450657310543325361574260524707921053445479018780748676095016519270922736414572690246922109682830425039029891697063885230876638425138087580053194723408000126117797499232271628131555081136291724789500966931324506713502571448764341248765312797184938001731989633564462177971918166391464034821651336482463433036965778562003461628845781418452767776036589435685119624438836069969197075395763469281491611016799494065148469741245446419853220742998155499086351189101040146434074020330281564874000301546187527493697602734195840691838438454669078056243528578519494119044845676872975580198102410821234128418662108111858404115602578867139295828882455408192613177053313523155387285744976416244480093889790557537747330385870883749720265851916490529585910830782132024054275612824503048216401969119140127359238772161024791998506929311267901818620534673492947730427565284825501474704956309322919988282153488284882813772795809670830692886657596606263985528897843092882256771458221606708879982704131923679771797978808887569601590018968833702700217068943698908167065710386891186939032171169919415652458449250927178462480019536852861931847349755226009744813911217379753651362011238153652044841314408612860617589549355770539185932075612449356746005221157121658855188554726081947615519860941347909977386197794767974863894221523961302945981616457433555500497849632094510022989475225194256787657897010605119347593241952456793353577307308385436720798873858768459157441142372550763270988074049947573845215857345564950048762075462226658824628749642959909524632824479358655564135990818655144178511759240687625851725920829005139375684029046006185888535104737564147131858967876280403468223270594175811669726092656688685439088297858449221860086720923289066634632991251518478287697155556886691029150925409731112334886670259906339652039682628919746022839832823474069526981274745860084443482163426135436162327111029025036303098358087294907116758340407727445316976504236052435943485472123674654499471438213812924576896348275222697768150301150312431478199199098948711038091594123741058335878087579246629753926636695793836842027799578419842170762566218236181154573852150751718951095010955258221185386742801635734989867183690675755754074375897108510938663068275656664639799050042440165634026465304882955542087561255506537911242951161299064068448540192447286369855336641514960490036820882695987894397637644033043860754399664151078687848467088892158519871928644743143541471466371705635328283094915409329067294029770379440539184875333227590286889545602461216446965392635421212860884459692308059711417257096630514997588603599897095171301475104545658597667191836620099498831382905020005320400901334240610225412280896914941401535953025581859632562899136943755707264076362628659027938121433791552151637622240345684675851768284621217283326701038607049375223066330327187355929322237514848804723585253128939964969826002866158338799511789302579534566799125334763174613789496399930995124198845881942848918801430486580890248010034604775870084841890181225878370655214881709484280066665813901709919236613496153701659815544189655013943581422682931738458780855949116110498183624115135260683122740340938503646263932303448982282960980952593116736867571645350744330815940091897642133332471669439330451858126346691785260078341390644289556044116669682537801369433386686951086031445945108576697344905041587558425486562683497483089994172910608714841333277615078502678771806740869007031331500313025895676696328486220768282183330688808200324400835776097670732136355666299948103466022011509290493543266258513350436616009758100837134072319504946508597203467433123082770755402462974790745655234219978771807214023102840186677575119689674480032127564832723635338001580753247140430330538471837014892903125352836807007291306940007016961064114966239409777102307059658756722090832485068731500117010338169153073764281207909389018720417228528216139707209890340797826087119537230425866223756412273816230357889048808155356267056556464603266075860347878322619823922176808662572415061084168163599237242167025806059605935204274489806005469041062985306847416280155529559484639872548633593283546775396135384200196368836944172825123242752061666429012469930489087942451006352560986411980912109593276923781718075822890769263636011652980623215758787566554347169822977307747340115244220210025694667300784290291321839536708936025348476245039839000719021034025046657658234915833076266433517373878078818242763647315948708936489891556632959175186999645613783883862028768983333046722084668644443327641334487831490621225312040599175345629223813248877304169837821547642047462386496485501174856678310918226653198541177019799919521185499958597466183593415265576210561684944947505498373894645887450143731746567121032129718372827342229542279038254086306031425672713562574879876636890706310431718619546332308402540288138307173553131301213055863687146970727330531475083989307984039108909899329929735271271663973754918097525844792209884017095789180245508074920953886289738120277412511772280155395718381494762860877791479845998009974039836556203535660429584576415945396593336664486138588501113931091417975046224106667221304347540870901400013156747395783291891230670227773708049230697109615372781030489464500772968945666053972375330568547250863625382976715968402163452011375156279945137211114414047834405773302636292003920702403114382847047433719652876986496577292904117345014953175817561559699856853693291646960144811695470490111958122582881061502625526671619821135814039327202546357583503035862081643502979422935112689515593069550957048733043619595457701130444525032362674616783887268784958643500225486352750275942800084482027526504478458315727650645659540829266981140112630535298545575261168620982299488353271310829656900135490051845371621490410271764582292327218930232189994690706838162642106414237491905214175290608941563370715533261571748521030391976176056267788452822630494612846288512052806685168218551134032207455116112597629583886662041639369152774657077692507249633883630374450988606762647365846781293249028434313885106493917023800549755236583356572976602338820023332138433993706755905840063899072494834273250784624995626406998347069162223907835136952345615580368154746096570961348675523023877721036176702856937980183913276201469149300566513018265214200807480981431609638454423317200883511110251575176865665620210780745045936576896977368076171323561906665150559302896705968367195555044308550119960271720822924716124109477661305557713247695762895500726687699608919304671820521849134043820348288236105957852949330177733023234347725895493785107045100279086272449392911729514648174171749526277277089529767140170654384115407781064118863513699919005062448597528250914978828621994451773299391346969236196771453830520696771638906210665290448362897878825918289308470363345152997556038169736096335195480995051637065965802944647769492344063037414686227379522349816765676693168989473688407002551442897104637279817250359146187429427024020884819523542844040659804835255772373190410997665855441015869381574641319252044637463021747003065803856623894544383681769905692361976175542464717027972063945550317724430274085146047679958531932023402784484503879156064330996023501189480577610886389381223698418862816749152953987975723755731952960994769765875523166724724996748892349790564627911712193361226283049714545861718244898873878213386035138930290836462149657853750766039709007667455718527605518521555219240565192093969367401730837900843307112963737835357720086434143891543303380762220560734375974659935461342097806638710546542266024105501248108383768780525711121148598344728669724506549254094231932847829573734060801275367576726082333654015534745053600503334335687194574816122870015651116328393913725677718037224051001860410119618141472434597401422015395890269039826631027465471190249579485394692462045992880342298853177526679155585729444235263492649991554594696391133626471471150316049159827437620794403678438061119047420165270956036896365927301359658576360339765875263559062365535840378118303562438622908725275215598736351540067012050306716766955822842078548325668163775873827593345478287342792702937258350782844990080148260819918186447629401882313289542249416302894289938330842322722880089461328387415299653476708706384088801939041247724086743416257184937792805179946762309466391477966994967327359105656880694513899988743657131155044126945370924528979909415552186603718435100536053409891125293830417248254148120762141686194319634028434319135782467503618389437646721967085775391208692548697148754949207187788320370765714196199849308632509958422990904538886507724302853300310552402732407931376998038823679793242929857878896200444374729383060931810532583756240173840391514789965810453599475362309685903670384105933858412387453856192375994007342466043987600453750005647524900714618040129845125462750154258761229273668912015769384849549780683816938066027809489847871970556723611277969540937876607961595893479860711919590018190274928080774909802365319069687882555871835866306601425017601145004537042682780724223001909455508986949659015300349781681475308453042131327555504512793400952302848699727541769397208037765067392839992952702681699974999260730113440715318852820926718485675138074372995088934294675420635671995772109612456100096186427506301750350335680176094303175407004514055671061042202351146277745432714060014811016821164219504764305434553252479715148547001174835956216226388695430808510824013814712147782542064376892705477829583402268086961680700827400976574843236820754551394439493290629194498260445193334703436009722936110799379636942122743403192889999039293011878873509986130736310585069500485213483319462809582063120327778469853137498259647859700087132012260609663843071451724920193303460726075534677879320534830724265111995448405066515398069776417900053128287389859927566638213081022607556696229269461390690007940341795510569085641271844122468179166429467114450578854957319052180068269201195757073721448176302211250101942255826690230905548630134675493004302832623402421844688551771545562105042439219247670261450666681339789384602371202396136208721493878710893552321432074346277617641276456922596846840238098378300578460154930493669312870640437229918926100100031148052297908807396348625878452947160752076536851255081986790414740892602688145877221467665762813537685523551163431296329994623853844068114765610620916964451055587666858413446251620860787944743658338654665486965047810394886246203105986929979988236155478813615633371015241061621296078064927734797819892600850830932274831006808518494989360450234352820985426346148461672192278112137705544827697843557457258081419759877367076802752166086256400774160135266587696405339893205332018479619973523710371904869755519653818023033278735818443029261370069502520866071632102905250050935175079690068271466276065288692843693757417981212612411244061350952797413569492222415807833387690059800208189120835049837069361959706115310376899683306423912311491096698034556019863803514558903308377515165496623060582512588437856476901429826376166237506064787521371664573733242998930694200412907253915740631910191311613338025383576728783442036908496306176265191507806144374389283706579061949456334890787174341078285422185383710617322957042079688030887797280822093700805973380096846750319827473434641608912911140224392327741506390746195903428458408180246777444009938434765087537586768763888374544046830978161138763277806133156537999987876448333555175383512826904566601523671114120674071930768697125409004736161605157339739750359983054611680526238444923639396592083222291036315578434171607254227113751292969036820671785017162560090269151035531420625688539235142558301362328008790149371841731797475653424479552896846662041134628766712878519222418032666114085527254751399274113190082182803389722367579223145078381257275362097459136957639605011065869573244538082037844032841142800929583047082122115764023392995432317397496554790697291964953899637947149970543733106574442007426286581783504153656951523349809214492262641644646164917009057850022861030091639637534150588984521851710604110398932104769975345449914721943760090025555720246558867697564013392065740088506060192049294733946055900920117952411489425975917082430732626811005471858140057661646851587987806939208335217690158309994278471359891644576264681298918315021899136145177056608873198321119264822122699133651450741487764682409469273567801498729780857768159403676459434977718179730975841780014097301629838530151273903080978985924798299225849964243712595651586299825756439288903901562382653915314491006234974370680875285814837702390253457843543833748142699283976659928136806384868642929106284886212350866584317682279513977184532082247878337505460247824884893917605622674967545527725489085779126229365222940537931714609290726572581689034654486760941857563090023075046134063518628877495540756544308416871766823631042909612588850408272756730836441477000410838834793679130600676276137252455197570694659056654771871140180243172391698855785566195390021020862261354687650154890546443694062239228632904442061390248906994721221837292509757520766501097024951366889009696818863236963277644403630192281590846942020059945866654648570549379488789779330561392105352036231753864918535670710219920950595832734647421385566093212020806489814408006881445683251295738039984775052246447650376794970087434787347410614125778374046174143972039336292560727299271597455179165426909538628430243089996440500656057700698915190065555648256440785016323623398022362475541195441461915704259543828833233929757329241037327279232405533932371977120333549649597667348223495092157553970667463441225773918614593051188154706665006493350512485043112377481339419935479130091033778609292892982630839268420679723522279398265975512586568168099308343243803358996321021717616527593750759545154133680819625725828294377046644349039555255663253961199454528862721687871359891784740025020263708154626993332410448956068891554938131963023968402956808723692911525927974284655267837629812779486402232957441531609164347845044336034214280293964536451591782555380672812293645524465937078492278836312902875646312024114391731162777567590701631874882999611803536226280383549180636392830387129341801933616687763696604810705431042816091411194951218008488650342272494087762939471627088269770108607657288579914118833243519941056544659073713266496328529216735793716334626634497418785299676233490419185534262102546168372654604929957672100369830365369220408117430257533633531213444103279598583260055989534939023125802236612685377229274108264829932690481963339553241334633369829519026080475346084960341755080250499269495716473769478531011103013145786579682354921106362066129843759488723123504563668268674618367014228546559927489112182407045360653539534457486289837147783830139234259175401846367443886291931840405604374144825775074061068450747345742358443056959674486432454724299702758469159936676060555901510474946389244547595012098416159975099574807939256381643235897038238286078108757782959343340220718380257050118922017549794155633891105134166892408107122464320053435144241649574902453365172921000031202547045612221134402692832593560924074717234722139572397765830091953602923210745023666772066105384737572385435852260934231561643454734218930774404370066897462759214361066138022518827676585843111729090708127051198206643157404644427306689314765443769191221161031949159676305794825666837365047608238490537903504045419155693265388089327459206459077446841322935020989624497810514411031244408693957286538442323915666255557146382427590826642627264738258515387277294808878001373157896507659153483210734488344753115503604114965745112491228442422690013829084320923954338931417616697477642204096955088559114185459939484012629765374883080419910382945667643867622033950938547154410850057484579080602197991977585539503359810527934427162333589523834130534416552025152078311928331908208832442016674688224203284095505400698167119126242642242236848116478605297577603533561048167931372168226807211182360420532116818162664245629355371427895529697362505058405007226242195867560834375837150539770697603881161628051813777342520923277205183847329848927118928910906870136459235609555549602752038581694602404920346683902790576121163077076845365243918491207148161436834383972742686806162475086192945322670829634199171529760951901438834935702006771990369261707568119512235209718813214181246909199083508700587083655292418313272240487157983646037106211734936058153444922937870100087441288642281440788516582925655497596543234833097497995766237420843941258924567154025735685047999382953686099748346524168637989908230683418532317111287941119582489303114256788632568104394676972158081342759262494396633372856785612641225342070929967691376343898162623082224101876388359951899848798964204322095526582568366905693996842903777879837737038609310081807533234718938745308598910554217774228788125303497441669257655320487159096686536103472851410750937191210427548333100481441085299419996043435727219142331795102584131316327196140643456069793953418102372590795385315577722982362849533477142087605993850804972738050133160791030844356769075639967940058821346368275393950816648437477508154283947833672825095745669563110951884370148622146874043681324309098087241189039753693125364472171755676867743970141839440420636457263878071309591697922092894870824444919978581241198061739230507396823254463952114639006259605227697572629018694302819568543583118278154607266556887904889070783873854393508109939902662463221648717763586907520361400425368474382081383071044021293642079897875370742598508766431170713524424599432810375784396912814388826948123812560689347852819426069190619303391079503984566050302456483848737418174706096194463957861913384033560846618455875319133008234885947686434503235650374227827287905807685475819705068497048168894734702737657066038139788605575068130239645638199808911631041030483754745985733486550478533813995200015929304695214784151041825500254582977444056006395706461512038130803136574755736888023893904618884924425264434190488431503975398482141592687563938268476803349832580099276101603220466214242686286627272016570347908229347805505592330946781420057262865720094119976090317876949522504240912727136322977641908153598722478738311689981229922774376046257202970960357875481330493742513137757960230012018395144937680887957146517106635388035763447634955718857299684865203499613574832075106253115411465373684537389591355483464532231075517581689550075738098226001950255745197540134583534834182896133063791578867600450225759981199139255113210483255866253644222477119385778288097833214479533741661857702241217691568758758775390842936321038245351979182107900310445491477077977975256765766488102183902773110350156337702985688005616297611663368223461862891746276649612430547426740509432922629317076527787077650803499296567279801760817518849641712634110939467459779207774027420739425270083409644321499033956210975943917262895288837481317225351190254623494800196490044723379453107135428472234228575301050000217697101036911985751630630859309843867424251496766143172003461029143073589346191175097123953752909768440686793166942336103588095398892773397835036489924463852311176252040567876265674327318921079463433641703140260387787306399686369718037534225060882809436217310103127161469326880438217448477818264222147219434501855143272899658896901177175106872029570619298391707636710634518784118530653435673360510537008744000270475339071798224311282624077698646924130682131818220496621197100004472058411408164001598913184086548066105779144387521439575587614300036047458590066996783876681474255731377313009623647545474628596114560018534418273311037199150258617250573562185911930041151881347974075758281149010537972714459979596452766220297147751446608677104648361876180507996173458675496077996360342920265189014646231668577415588923808654045950164064202218895155791918973450514502571900316425213798205191905249011164354917895542697752438120277948390363657311287282246787492175703997942670446167633395783399626458871702778997287534520014264374693588138922483909981131984536876903349898135698675204020616202888257576454528365502112323989859358933354356796236971470103285227060009002900635124344710277634994387665626767974897967446020909396166748261696872945235550379428545543701001226100044129227076771778052612748490434133307014810104560322278269319442106123891482343864250557353667035267465313207887580916376374470825385702601836621977138943614152640764940626543145091243688275432954771208092047696380459060960577188245661612420248973764800683972880317988512849579899926417813307990081741027464168679799504284629340560835081959642411858232284014642804348642410511920273919021543911423653612517106606519321094781862719980451471661257209348472465677339031335610045004629598192093789885874667204038373814041481802515143393282876218637103844196200271316892283210303823875032728508453707393150533719910009085669117070036718632060986367468689822070634314751423700699539600154413272743843770706702023584135247765384661742167817090965439068717181895977430151102076558027089732118537931351565050302058698387907526594220872129395264062144528377253448256032056640239264236276355762859631411248342375268066183322589078547916715178638672097207225572087965381664283582551742806076244511131179707939450628690577104783540467062296229842375280019810307233647462352098742705119499880951739096289639401008800620803477676763977264396788904479640945665321498945715561674743789614772585200590448396774300034243275234139485978306386808082578163141600378671715166507210317182043503088820763925953640528999058244010924756251770343374600097709432091233408348985854227230524711453227960980903767177059420765841911959830279814820567449590757860229139956687457025521557893160698614868413600627806280552613563344064849484347421139939004015617432698062248468718520036194272479458977260606788099905273005148228608348997554074190127502714101413068960569696273312915354040280717429111438082531819246831414124340713316153088143480362754049561612130245823258629560415285549471978091720123482888922705546028599170161949695557720864186699799401314950570772308390871771027487794995827683632376073335250241002413775174749131955807129591302776280936076882389692739180830527764742544369694515932172716236079094518106680472397186024588791548207473139746931477955001981552101255958603985714612573322895067771417155351096218494453343929777059774902627794659562736743543124149333121032348950639504312946524765388173105544334639879846317450970957488710560876692688272945017031888774578804913928213430114727839320667457644640167709334189793806259183494092693748969499229801061985614745385937511711180984122017384949425798500624443969001114811263523367333986496688376560712567855061996211806580420538274332485871280634060321452079735923228241068795048063514559219095342688764468079326722880744619761854868808260124538077396079732312390451166326894162737688140829579891450846989275656543165021073698085440168014513142494054755853652463232897421220060442739712690879014696497079938555021633259863637203497104957584231249184694706472745249224052946991270572811684540354976767616120955695960012138613990924979732024772832939852994432904900029996172713597228674612098846043574541959283402672100494189470415709926596492546491118696012010080884948380185523136350039781009923373542520422483205741707496026505860386036815435479101624981086395332025993297135186025951969432649431844347836744854172287544132484727988127042641352943599271341849068381836269037644277584270956955847711641662919107000565669708177713634837808230250592449655075879974302080286555452113613897045436345850288008147773575896727266766017264238703539670120858108598164667175087155964258410476989496660900664971686835193397290766911239882883278463940202442502699978190436008791953861674890230655209173104154980225249033465397089384554200262405753082636901200970952350343956103322065387291796079861985717513384267779287016959397685095929462038185966496404490655659059409918661877489250934781556469887225930277751797186202284388019005580303382120912470626059206109884058046075373022524271146529045771623042491209680419876168960105774430994653432105450396986563633123068946927416358635651735241498922940120465807931515441444821642341480668942777650463957340596882182117731956944120403023879470077864275533550811920756167384340823634630574739192806137126359862386781661723132287610995826247154486982370339839785852863880221871111720915173111643467112533848561512841320362642737332109437714454386634572545454651362183091627650192636717076294419652618020732805177747975733238822592407194306776355127983049386308934900445560312376947703761711883094541804222520099483813971257691242060328436085413723923567962023252540139734148249435040466874129961973192226578726730498001102993737963730309614496701384468079051085354542383442765957905315484851383089640081985523180961379053384579155392179059747105768865565329689132727576833885741734653632782538430945226118895757286556996448181504101521333153977585637528867030280736476288919886007620605553636389346740472149505586731863299735858609681143795645664450165327656857373115433385727277798285337265066249567290158656957198225913629662617794840856846263581964919185120116952019193561368041413656430185620811881598297711076581636884080036520679748929847113872122714659434914022324213968436037139076000529108374994963576094584928886232683491094456334980014000748684289949546991393700258715706309577532726143935468896397955028207496626315946513249235902024565598863429407559212001469187842830130381628186614173335738580716300787321559644756620382694660686423873349930194492433185892080699191186030599621472540842655154104380005195204441812677255444446013212641556368676517182553386573281314941312370548186555965803569998943900763704782637903762790633789139416810854582344406482248204359891221487518782606362374322953914648831565614080627763265450786703886989497706876778704574497160927245721180175771346305867375323428639848053371058871820767982119229310824980039868847134034134333276993691076701301582618145336112890247840112921827147041554430721786189750877201082812028012510012676182357662131227822853343079052472787639159058199482912626417423991039092176817943681823981918836913932956859781460961636809466207658484361683336068002493090535385382296102087715105869714467527375215706934278261463799916575662318979332209768477281434254459317509098130372049794571910592433702238471742559510246057321990910456522414459495452254101830367665137241186034183640682143080390050689254278651240173751550828695491445706435076329806605635447085051257392782720020077313432891226932096241586062433068118724456278616663937971769548352853604830553679331692188528568541852873731995709469149272682203854671550522739059656688969117370723138613531640281797119870792900704259035213540597752142464217355895079984964890129301397039298732857844322673523508008847171970495505001077752996684573913498813269174818202933774892210952400979667884630522944166712642836598699584973877947966334407853649880904919403683935749902159625360468325471997886707603431980756636263604494922940790937277583733999388270427455433905910335389151056132803541419764290315015070779498845433246517837181516209186604083467606184276064155074056467423793898491398421544712510137763806880458298686389881076226733469922916876187804630227033551341975856471372345688047489469477566288241780495572421515136115861612761001655905623335188613073758347248569551802646633777464654075785070433861465873596908190153704937137433757535677226533419774962429797963805056379688805484795167453349028716954220135888968061806362397580016228878629674331757166145315515968088050698293646367980726097015158695380607836332396759567434385294808441619656236076479674177835736510836854553163177759856230219699926868552923734285850489870008568744230764138327507454139259433675566969330967941921518217405584498771293763346173120985285058169823527249955995018676211765875605054274185500778570253631749039216298617231026507144582646906557847846168421590805005077458699644064007430436201382553633026641687752906123478870381617645987275306207690010171629678893831756670914246040123509322198981296630510975878358489878552135951201631750832939362031863402237819548898321921021814596508113264397962943239155019692277240046566671056108915644640178361332826067379542220909310785277629526000772948491207454780925820235580041179727823001640216312040973708403568424902702718833525747847413293477948180301209323746963231044643388743805580991396851402634599622089320035074373831548567254880560283942582161384777356817402701686406279119334135181398861933696641484474424848110287304298024859145844035363473770498088360366824666300557449475633973010291992802710624815903801860838526765053340237996541420465697312359083366134035292711643167193690210019719288421663467731873545715321423924870425121644507592613096455355182036568150039948137067231041228391489673061522811620492824198388132819502993065260970080261304496053452311628046740464841666665400838392614479191125842289353916274300005476364019764138580841320661027311100270849781677009075269868683804163255704206432917782551634073794318013736926266130306511671951327638609971674819092587383587697169024490288754042620894513728923760206603793116682149452912064762927051134117777984913912749900896537776103665445553756302734701174038932165954035319369750121243925478378311094787996484172592379410431855742910208913147994622577312924326244818884018667666540357176258651647627698256903656033657055929818414191881664391870586511150908381836572627452122593261313967963824865177561101729883055029986878300790288171055151835588149371361958228838546141975801182987372367273363049590628852016871665725008300895210062906169379804546086879308636235192372184948367282951120534620154089701424306808883323611016616310887967590469953869432831974512302782189945056612169817624450628597667495140662830394235897996763502597864676876273798975095499299059555077094460151928612233307000634839497456234790133249818596734480162371486614130782267327836135977543389543163042420099131078129606070444651880430377136886477753863762636233936789806246635194534987882519894037411005508593656462256166691303034821271077305737014458018440646689737101291904294901833523301685190251709384868763930300993390103625518088078608257003526387203849649371424340333989352423001265095574729378211288862886396226807269931212113163274771523118715214491804792087313722820891287529232762270516038145410681335132801894338011286579003318140205601658811919799541609494469493027647089080082520511789553259054795478634958522492089248466177589282204907741864966663033393257221355221217568882395928989502957632416066349056395870444751232588660132640463573893095250878656967878115252020784406886028000542269279550649928372844568165941189224292270237406641977580389892167630658444463626408154689704853849200182768930776835222276851269130894777283713075469570489933676912392633578008366743790281336233329992249538253784625302753053507497468556764480000826648263731562310835846850036629441623995743690052079424485105497599133701616735726083691671344795945745947654336153412440285453277279639115550259589813218853914156436258460364308343213460914255129405186988339116099832070455931385552844503470349242011803351731636637401805310264686566087732458430147985958550005877055718169815054178329825795276190801181426720253199635533504995992777673172460523951687101010278154701273320347444918045227745284825961712080673875238210094126701006765791162609624619558012849667537000595710190924139901575673485756985815698000774000803736029516870130852189423792929623939416891873654325271677771101052198408186617573797379877771172637149867085020107270166818006483922701093570296807154668782385165676048832439855471453456040310033521752082699673316059795084425871287792927409477981137212575372423718033420978694439991273697061577411161616155773972141587946570465379052946699867647004646606472286510305715032860131954577067254819970026848017827424054165719530336411747440390839758026889137874339205157071551755307440088330430378476066894518096088196556901323330927313488252440953720444491865232738185482736431926099944301161169825741293585596605086595847951537378646128446144961473013308778295420306606425268990922890455631579507284718234427857970532911986833053024375517186487853009017867971481752271040958036109462730872824457922389862267645770295614329460056033010952515537664399436229257242588150521559219183956712590794019819444985700193365439235545491033202834107365277610160201087286260917020276198863702104801367483880812796627318027679878556520233840888479232062587832677098976104995388196240961744360527354244628359594774898816277781988843396179727528935204489904989965316352417254787871124641796488166995064573468743899412217737290636235747021641408086689302434452986312904269276810079317484219086215159269163019976890622612936293536690208622261242084948086455646236822609469238517698584579573620585011854082849254907528502435919751839860418360275386219187260234211059661106906867538490878300377356608380207826979825659663337937083862289794667131771779642346689261032900611246102985998096972358201517822311452004695152257020453490383537260546547811962711022724720363541312111274444497310944492762545955948194509196881802303934930212520307679965163757355932809942528596194002698313449344996185407431377086427991451177583486247148519615058632937762312548511776062896326427625955164090922209936879047660199057636133502126546064446241065921506065141530526256039167532677363011965068643280970843030472180895583852010925780864354680605232661002751583545819435523201596486839540647582983166472907321450566487630307870956404354663109252622424106005549282322913441118942909118642933977197742710487456864509266503904290598726368966405131712091052369585047373283273798362387143369601464637240967899930084222085864708394306809069315674302320959555581030238795866628967366329170052333677821139342675297570069855495693809106820317066956667487805029828096678426335611147767737490607701219340640472131155414782847973394299421133382486452520668326397745679889441671480288882339662143776677678700271458038217359130653636029737252324320411247568635607683638426820462025649504678046928019412855381196263239899077836460512424451813023696795103488144871317918086843790851634560318357714018270553845130030015394422557222227643391857261515797923596448606917834156361572243873707834652601725757043812784085720353091374686760182934900977922200462786595672379082056365478377599113443608848958522390351658265291452013058579473020428963330299732066136706221208927754633546314384013603533904686459689890954523824172273530832062028371240878030346969117411570420604352156774256187864170617345601469016238502676212879849362301761475232756454945285004619481210269474032152447375648844934006721511156881337110184061653653194043713596919604802967878602970132659030008744822538592929162833514198662088552888028281944044220952481081956499426167736860528323154002645309690979515957793077528221544500532928854415214039059753831853609820461644376312912517786394873565515177018853582229837427786559572287385281751557801729992433280113691928023415093258435905292292236459476234034642441748530991531572627361338220482485293075807002086273385267575755924292830286608011568807868654653540657868078361807498623919693165151355056270392506217224660968281269221248391753128624367433267033688472737204240815394716643664774721458730015457932001816120054653830598786488026726321694180720655216354462232669972462513656017152401193603026258036898900013878111432817472320519053977331565712641329615172248637956212877871814355152746823802733045485266049807416077296943689943545045135194682945531499849571213582857518931322269359032577529228252438260582440052919760338570861495699735824295883723948085062933494746939263415570370414611572390939283343397699298241002239535169339447795194477605192343683452256688308823146468887103911816564353105104422812775020168736271769714980287436226804216995730441569711837962393581354395605591233669886238642207380535232249205570224660779279894839911117508740129681033105332932454061445635782036717920657903975455622171488187651101220972343155452649346124190134525911822308595565709928557069538238106470588694743076440454618903993531848909654360014045459122517621099272477667566493458709844893867251970064753638418440456817333077505048717940425162875415753695454640558219180988361318550612305895336800299122590682170020832363796058086325747105227155492780630451866000403087326993906253072306734770929747945434995182096432151246056836247393631017874778150971256258566944905645190121839833588071999137489522640978383774517101150662727474347515733415868913870236018407736176140078938624191830427288610495534993655663637787293336910538278280024460216662076911291322077133697316414041315033543303081004149973632242354985022384195660714088650454095534245328136655871400412074612476858666424653691248680914530348380377788597795085628356714183455169029775833966662152891879126558580122877730641458056771906528629615791864043884213456001525401621593138726544824585806260207609375687981004296357059296630333752092300395083004674570247803337120475769685262028214782643381188257238696129472364953548772626691563151488214521866128223109475260592644131941852093731698169339743985034233476258884084246838114149960187560881125635208689572960779249518231261177928485930695427819401377049635344875701098778216478817739183595059564104388055395033609771647836560681028761880033845001306536881240202215133801102551141150909400059951932921712037919624637866381547309977743151225240433469532993293096499999258842163221378318416677714311995245154722401787700781062310742478329143531736111838650626955468256664542981360145198461748067472064283298807164032778721653919848759500406762455998280893959242005158659110690316193523492553726733323716760812433026450783336494312217645904808047892794174194332157587018914848814758271034915142919057446461472473727204445207161029390253733998209837601024682442787960207398518322955362992177227756432284989526500777707461267177862118075233319908261812910248922274257289777142731136234539763422536388688407088370642963306928155518044984065477127672758091257532096457972514963817987666736600140347871059920387367421419480399065675216316651726728597051135779556838921669231349578462447791959165733180671353325951572592803698425055780799666097662794721077448460059807605170304728853662697406460249503271870166266345453742993727897378771069654056565442077750227490241354627735356703122835465023704656949900303713597919449056090812358536359025770108270472107675207265738435566687282258755305888650278017360952408749415966251844327940608134429531208321594745118747001211949396391679670466807182669547618857992499496088648793075973750180007435069267729528099043367262570350927315789992679441934370366544277966690506794808531544854707083576698755802044601151475217758436961659821413194939529268908203301861141285677857115546627652538799338685653247446593720210492057270123398119904770026160508095744380784342132872399960885089470704482941109267619349845511240277620011004674589703608241829673842161224999915356003577555876058173264050911672479233040391260231380742846741134600280654498255492890090404679625375240753350448323478390527569778774015055637929610083575362925728713199765238376513088331809903986179058606992978732158094896450577034363600606670797783298061197945426563772128015197400979577344735414495646677860714725508273821462028457667084285300360673675857762019961815157656029233493242427859840581121469272019382154954484189239932651569226083421588352279268940392737853411687576851021368592756738436830292159964712871093856117517421158120693745132891792870859241410519194822099928456389141506778022445714132203548309019750130573864602310803878392618270968779245622924471869468781248307330819208102362926026116237782450322242018136300391150361661522496062534976192267158261530341142740539029199218550961150415116928480172611478176000973764230577571993487062190999401094681685828336578960957223093117534156493268392476874225076336810533968172621222678151513454499395874965311336855414808364951481232391490949205112243369063568776061796628391121716152233353109482875258957372382331410317661443722455471810845968256314027579103106001121751215620475846164135241278809649443827288904773639639996456061956736215845252357984735050228832738593670782801687686789544752039687963615347279234273325526853255416338202053334528191272749752499733960807303100067032043866992240059341849788828503467775411404474601887062866275345400515829893548777112043694137584237167773681249617340115635240800301685558244611331151293851224027393816358467908841583384095668397599488086818921410964569178347991627098090810028107952482074686681849504852315120522308609732843277198381632931430357015922907388088966388820080806444513915512722403334481923773873606038235876450684799688327239147070593696582062884321166561980832731745205849022118491982258323096288387011255760690375939961845935667688003442669472898527325875595012432150793113571309391093824821285173918970119488182306310899828761059749676677027640852554301718554618126496929087393628538964509296254369980895452254275479309499333646222160654017014188034759348401079371251508191940421209435000461109345144199698588622906643481408496060466582544462991204885302607796004434323918461512902310074591990301912328661948701257816573896359211838316985445245791014931448538273874249467472315399322890578854366153819143655079461019136942433309029095692541453164845449956989610972825619957277462316641750837961789293118493547009394945542886029837101623362761042521238789072976370327820384125231772207665070240483270290740212692481882618714983902871525066922646463772128701078778160357829193354234141334135137135784395105024289359364324758749832311485902007418216594801550062442184008842313895190699687567534155587865897506352101314538219299335383813239002822597822450704706871580484503902503656672617993122099489924201431344060279607038633149031050302178202927468239687751618052504016449302691038580206022305239274177412938660981638718103518352720482517878126027141041604591051279466243245161468285926420406185071097817185057221541762905292228958786782906862212586723654518670201958943317425206129427058348777422471324583206870435453711097890390736408674074073689857946952898264880635051460754709248355371637080154545230987516483768684342401547292494952092910944992681461449551093410539930802222273267648928226513513168170853693256630552292030845282887632402369692424286354226838475743393325907592458616034712600762382031316209769558772164465838108573332032890544769270358788171142213989789584261193029825069552750954561365539862228352028246977399737252968404346846503290714634859742639489104947830439802426361175248407549683092358842478608487581526569122443992704319123583759780503829311550124893241225612012250389894767131104730435314932989520747146556911468849204789981762953318327999344079951164844899704470496637633155243750038875399639994769161933139545772964220938387311401733535887278094527830175703729059085463837857936661930834578673059686831848849408843252029085238203375701787784447535063582288163062017037491479809120886061638729411916403338527673533283958049930308625970352441352690193240586915425420079372910477347872960197611324135016479088698171721586963137786174081500003133415133812896270597033647235143760082164082154683149102500698852604843892064734401850668253127653016707196878847857840124731643987698884214144123123610536532225085950817644622857816484192369375326152621261217101555504683503587832426427418887703053643136119808960924361038395078937389270202977082118363203960980691961888101572520374803153645200443653935135336122058755144695375962326395619453620925612279201286040329078218107595146073751753607255273964842136695754796095757901691977019745122830229922076274507162846218355480549764161518326208175623468680701664522135258358519630476694625647283213462971460751406433501402878301419883799386089588109370012455855321816525456187721093394925337978424099694846437063355663185509106878981129960508834320607582779604468903311730154584168684739562114763706389195165890227347909209924875897506373488452527406756974902136868209137180743100249971987078612030212895738496802545460174821034732556544383143959855837895425954792928351249588946319447289905301153745284605037496212662647041658974924213692990867580075280879907694984192815130893789914520591947523886110776210926215288550512857765384408284929603971888893173666470205058720316479736669613931053226887417301763160493914605666584915415868301087789102721135742952334491211070162175325417499909387476388329115195726483847897847466559689713036703663356619981686198169407953764645187961295502859533046989632315069272586323750743749368844720897356221628565963088788678876448938172949054598113560759739838164838870792189279075407921070489061515227924950631245587499173456400734919952208130831964830632376558548790095987364694686479818650861714650973878392976651986724115530196441835839676214341452818293405014590347828947408549441780405548628486788143001651949294855634640314446831668966396758476802790736778822620494908414754662227169866366154491596420743534705432803276029736908905248844436145098071117671425087640029381660086317998847532603154137725851316580245503538322543803804485562666687823616707579282444521465200177580055149028288897023499081304333121389319476943064590384246023817200365467562042369065901502443458615585457888806840844594800015454457651054021344794725465279594964648160657813303302679314865313345588046467663397558912009116394972936255735917812071634171500627757169908367515524882790949683671072346563206000632262233560618008484400146738911989322824051344469454669555970643535008534044959112556192941714747543151443317516062109051307768769292210050187360958550528759846515194089859643923602436453778071515889336265235649658263250312893120831792515858614394243955578465308447521658843238624157976703381719411336772213298233943969249230513330647068137532521992062443773927098794994592705824645471695295935097088149900500286484537936745432993403437178237650802974128186396703180922470979062601506130740917952743931997169955431462393867951611550367148958678770827229265397610755211235088831040470321518671489011212750167242942634466515526318545518556721508787075761396624694422306349135303389866509519251868723278182988424567039818216312959468330952314276059656787994253397194294360860312467798747415886956124674802670794454549470435034101182607765568834182550705413312495266259072448160233896757815765803216411994850562257857429491445618206478278683693531434641485953911244899933973066413407039930807977211937812484085433095767259716692884368479782473750903547520353869927415685822382817629245185402917374998535134713264103841470650519197199706549951788030551159462656384201497069726208197432309035012473577837048908360544173674539538749404799433717499330423437340474021011009955934698737584046347013735772572972730152272270790360193838948843742624741574671945454736252915956748895788063460077117364839084166077442277725366741643521718453516792255800565723203539567161800330313515963603934687373087948046116664017172027535909503969398785507224961649158234633300044200325838812185442153256443452005337484566040481218015360276348836340220035007435689903508605270230946017996664225628397837868072591809852364146894240847797855419119079794225660003754337788644977909486045692973172600817246111963512534504331059531574474071545949092823674360268215749858634523571759179859756595288926132814799010308398614398508597972029127839802318882817859485355491405614612745188420858930257048190532279265859046673695697298005733724535223477727941649062475511925836801022898659996836568787182347606933061985348788650847848305776605181711948160682235706278868813267222302084778004949079629566853380352965908097756920205260138529235756044574968086343290114773666840780698048639762306777758334576869999823090155378758465639030372606664589254581901600774275650516390542815698443173404509345837415468057044358767207191564365623650549054141780603202944625814234657659229003472121183703818714766986566868463139796088068599544702645402147954273788063255654500739892537401959386513867310727873172102263512055192284618174875666729353731818578832611808034635241774557698655248122332643463002639405633102374104689034333545640318528502231794699827027332232502467883015894038687923305414096250459151482976319764511220733476396687401811707842729383184502186217630898261022995963651881407526719652280445760733548482422618275694294301155106926502205744819876538759668147535291657706828540889439171214379912675329497054798017397825242122583930886282279942562070203851414021012825681593080217196025955720997531969183004582615863081737697511084194731699368932515704508286933088020570999516652235285219221646384713279492991148793453715964335519596463090373105238808335806380199581794257728999659357935765803219277423208204476906708074758860223282261387061332689657216283641428545469558498537212207120077620060624564746329761859164859826200707605158004672596405379619540897554327529040763009645023421927482329400524227118361651233830143718346627824222317280011495689704825075710946080299509660397647914732070316933581560261955297321292036862059221816045747334131332994707680823087497387557302097775273208719394665206901841935243143575435949421218101886493641713634225901959021331263097461313907418607970426848667003807653621425090861143750626430786446332380297548667377478602711527655003638779326284048473303898527923662466391048963668950322016836937368001297621693184300480959707017514513631169852330894610382497872106412893400150633556789489319719984399525878813410957466679911924318295976432452676077809663012658260614853610122521072563592261841708067222454269391700107639328584985307435381314335052949649451071051308350161036368137483515597822832094673149958812916799309113141487084301905904442759928179188531554085624373396177942649737547348499643352444896016690139717649174990446962299079386976102827162164684193465553742331777061060443420184156744305781028481813348771745787252233281410024716642915297590850456857481503777592730680681456939472517371139532882488223674564414874385252541050577780021521318980947813479516137025015361420255206513355873411683806205552719665820187550277652351314897154180547130398129200867941079666194488363545367129837807751251714636690800582487662846987675175639274461608095018467685049074148536570144938687380450958313163895130738318101409128785831907460480869365478075765337492723669857803624746576765225898408699170576853805636622410158248990958273164615208337903450025140931059516201712785423644232989688916303587315406713223424053121624871354238263238200854112073035206566890607351948497637200388236381406616303624786840260420119149176903627662612428085248513290771611216355642927382639567689007741069377709859063303239925217746061744160700159868872966569642957104920861546072223330543567314265189658839234814674276303808785712949814042227589771889106126244249671521691101868424064502626200046282551438928751702251965403367464768291633576398180833194687797340978889446689888616860359921859235380472288684147200105666694483333242764163025280627339804426358243347443996189347351132725401099421978552377372787507286823425741319407480731255356086791794276939770724959939456818088635965384149531225335810245296679647253243598766732559819591478337902419308734613276787184688830320544956695076477243632702315840102405035439029951568854481330083351111368905031253591537015677950467517358337535884960345775205573185182310300234567787499229808433090093892694909836998807614655584552071152182170943184375567858913862321800345560938964387226307321345752730128208054076058581757607178791011065901059034788668547779779886250860744851465205763365807492626357371434735391115885486648374275519331775801786809157088972957870975466459646343435189554906731846777875614937224340397252394809936065350716115066814997812680491639672575280925123369133305313954154256200888771898771152549833059426584793211433816461163747807948427009645600179015083110483952649131212365484262621015825029999369913729393738882066066111224094251074785050052085077696346360941342409370162840955243247490324793984817671887410473743330443891177663496909198450555487110159367115922102549738881577884344555873757318058155660600090235486460258966455912794218542168990071474188510903243195824227025719801201146629000144996255668884765364142431830049606599245019854834643933834331554803391282510340629884824452047064634328037941326478085800467083145310132242357601135461446047715630585970935577594064019138167127779539760793313284478656958480498123021494511332578911649281741774992853336119317047157004736238033394728248673236538828186630318725538423917688427285289191147669049850379862670189070305029181863262106866258700541415025555892593014355811008638461120358370796155453120280477793724413666515107691292717333186431710289223523217721863678545687106350561932961167061139305881360167908140791867085018391267745910934766418711231913006966450723314777866005129189847595936897840294603312391456705506153958498062289494398536553112396111819862246528976545252541612107289798853178916872554263065281983367819869344176862044674376728333602291086415138660372953727122440317231779210216813813149431081214790810265567934202685489955751828800501988870613928841094784647920635389863969469364135653886801753497667784779830189817466295645824444612740549773385700023624205994829142106888874995146230743410450310958126056336805464441726349842731875321191489423319192044774940570622398985206341730234363086391658016911035260360936451767144778264388638592684124459409205531425779886152933942492259879707810298281055385328809325203324456942381117251103939312021343593914304901478589217001567914295166344336408513620174575437813833260268087823963312468279874749689931902986058716116967051430465151418857168089391794097691624720548947608571418536944701966941728079133505721810059139694908358847009355356616492365047599037021177231033735832792833806662290513859590903096831509212549159453607321095619358837761814399270084658220205548247317555689212435466646549442058998042005537939721177808941396097556619613052663714416319529346549180498378076143872070626724174606646990357946441277668923802899242044811870663737538061663398157142626330839623598345094746180849216658112152178011836077773931906782460858115615942147820264014227374645129257663832745467969185157598843031663474521873884202745486521461413342286851450637289904950482932225714832074136939737757075290926408903474217355316624737718327603961016054983482235741774179957474537791854711896246096478252634373286178285672159483802294897168633080034431853724878825291061787167104578277939524059467503186336427651850998501525967458823054222320074353950219840693947360002279927104656034916741065983411097392543762201072671787484347601376453748955107107443499777385918271185807671848483659511520246943019885232578999431027516485262987959614982084540796803156071762061784935937213673426965486353088866088274869319742754318490018486220240954449299302895115236860662478144067855778971953756885756919210368627424355435095032220355773392709262353983673281119959037515377625052468128599225301430596893317614684978696639087256425099265567762717538898856814612428923055639518824360704180969551419215601157819642395599672909373351946798712267145943594495540593396874510234764560885710674938783379764421247376225752135276170829438751380513082069343848293536362241278134307436966457471689218087141462640285729499363967156286101143765512866551804565107565819887083888399699728907517819296978573886389966191957712373682392924961122258675620969394119792022159692521989902923946560675075269580133266584037971211583857568619836375418329998551637295944693164009621834741161516170678028742873440460834936341659338379431511525512387172570421313056536702128632925709562956075262615044869034871460852980232043926739316178462646429761305052978416158153497886998904467774756860553793546248130348882607943379505332291050245339267329374877988785983618406278643125661603701844561655770934710131448631986405209923133563934959034562078562877899094262632692105889149832336692693687698789104148909396275085460549671862360199366880251056279142093987330168567353668936900868843532609866438420894806746073368709666546982296701427173758333834416690294087021616845860272342718083627198198158454842069713008040299611689081219290527073713759924277678531052584983063569336262579606366963164146695289261315676639061454600105145895730681792727831658066592466363470701899081729284019680539567493159446619428566084646289460961765732731095110086529405200296709820041427769523700917207908197408689278627711478977552989037409406773752678216106672319358059695881458270808837145601044156375139801927479625641209514789425198572068768338680080936795288719265543112035547578611313123525496274902580169643667135930561999061079682857916753956271856881988952521306950185014891621378522436028053789297146109908488529866310585276877631475069999942417923207862228175014772587537280591502158250630157724216074057455239354086925646563131706404443270345076859454523922778828181419202258577396246218359657267250425694539722348420983978960884593366104117850539737556612236881041624211432306941392214836925028933810464476938281188219614322461689304328720392316455756750334500203014834085229466822411363930892540460336030615886211317437429623998063987343158667025823160016405060075600671887310235906438016474579987291151401284585561060078648765423667951737224974091063277463964338250665743926910163446671756398038906778475651623383663036920038919544158967804530696437630168673844621865537988995401900322569884332373833065227129521855523647424276193389674340797132848660055595374645112887771768274475359702860386481524835604168763205302689109021862526776923997560112929224217152053060687748809481015880997663300253475233173990834004336102271109551158298541561981095671290954078774640611982181066925610111734550459880468723071125502788096814032601246876199332918290416782113583544511891043032459074351457700852004166422347239113941965424900448965625494099802685160108818974795465398772233847934270099855153333133730874807171526124722164693872756998043174768666391035067626397374348131934983854232242051676823224808332130157489963382320214132595698113802337923850530946407891205117406981961477308481709061830729858033161634231695786050021517618471127171714673513867849337709493770588407618629984234298847724896938263868770856471137459841726014692808364555995149697160334761588596098077581035607911445824622030263307384872939287386280239080687868353839843781186948522771769005932868328003453604570038710525121670106889609583189384407890607940107770716839010421018888944530184797310558348417327545761635427670621474317593076693108416575261357348273985847903765400890720548552758923969502509036475229837697631463575923655953933856566107396014514079077140875896624755114893022330659881537649407168513556407127704245430499114191491008428035822450430339932511826043742319159449785512009777709715114616871396923642372972689633605149636152433512469082466200838599520405269543152381401053097518299245106370981632961659569781788213417055299376717599052786560869154502951679775288813179826218675090824029242138152539907035694241555945539178978724987177456167308265944911748268230043278950092999391439522879636727525823141941816391421746762451546678003417800253120900862056380239657951167923854019039252399206184572083949987507604819564715149812655667157711426790367768375295327970504670633666615640757206223304459377587744634178580462316806964724660148875100567141933942876026816339075021212353651250725095541355849686271001396067765087873106136003445855340358821313060575364850721713971611037399810844158762198552759730646599318564007340010098001673341647962407742018455641922499333984467355473627101651586116003424574883305440913887933699699281201707267409234719883106839250768023701384377622952926457757372133305738970579529276423967451846721778113398721904798443393756908753540637741745383982573678848261663057763270808621097196568428146419555209002952179617758212934094486293145635781735487965050971278957936472253250342487242657247929866684363003951228473398077053826072465612344230888931050982653146222785882293156714167441928570416414166363828565450379079528153342316736500386334384697913831258711979096583191247837416012371541631119465640036350068151780114069139762317258486945166513994979946778835685922968064949222155404878159745901685557953482089033016426991297056867642663036441096720939491750978149730607947807989490828915961507157652029112620034772525412288827489229832353460342743240038225635572380384173574479683394616465347833184964501699984697388834693723332551432817850270696480008888442413876278223639533120632340177262136696101216270721174418439048929208256285283753150648332405303928472644701373641038513049072853886481545245776973568017427870839441408770579263510751345672586652697377320433439892696144401080058509881452633476227258403624899309834627820003521661509119746698476925956958284716429462002550705934415572803637837135256464831525795534381691955696729622921513402066197137479261000247254264660885920273686847745501396087222116182486176426567570597874649654074626952918434733846830661290584241294062335653141903791656945326238505493228571540564740835223476928107367515036962801444393045734752522800632301644768299097852336321548340320297630395477187787977285068952883292801303133324036655857846409624582634891811634858718017501215587194397286182601875360455349758833883566500896664252866364042170036631775434470217911072942073834350793730352608161234049658273474617096578497907234279320004782475548475988468910208841540531888071871552890641106344517564696581996718039214094418683922267332503685068334749573828039860855125058515923506629754441566184064753649121047471114352284327638246953641106409110446429046225388415376312652974035647543340171855431653494992694486050225085570899901492008649430793020445143242804607969588966973678539586397646841141606064704027566461076399512627924195348731742715837291343962484826779625133034270345806324088703758784981754602510101608963439775179585992553745842833471057452321955523112106422607830160253885992446444377251691624427860704162673446156182795631323423056383963599934793203824691729646565592054709944119679067697282178742687094237072958601581508958012405185327879512343335233493172723892561086923422016792068603018929889958681147275955785772083783575618503455112673828930249579154268090887543955303256046583421729615993408540234490843908956912432063181625526062629591085509590211774645153188260676755831248465854559202022188395985219530256084077541784532935469374452931195879198451921128063723010897539759837236554775778746293612271059773958270413548755078547195292846921570891243724012036642903718760375203377016255819502218510095672742289569959593443541028764024347702109768487195535485515596060955425832529148760442084485943931453509219203967462387658290579612995636315581910392810990252444126336632451479149976276776450548799633627207057116842664185233604593207384971241996952226881623989890187319303010885366563854865809077148691103056578253548864851589790758779605491701195472091748976931786846022639538098830899878559915890169053206219414215240986180987304381907128018224342500402347543314620622381113850819298960846445947929439666971339028989726395966291800975430512220270833763228035639179521224312849687088613941972731721146642888752662191837748451463424102394119302309416508341084010827896094824019460534244025885334912264792998134428914790493658638054140803257317700906782340512981351500950771128216826563894877143430003125763490319020328081254327606439649875987049441106250428144260847677190631685018192202722856954113564412282424503934197266840256870993503796837337114772444344135140472903074539489802224732378822705896374403995054746155357219333696751466058150104867313134054616546109277905744731371560157411082212303462592349352002896410503278925123107312999278035711899168309612200268861370649541791825380603127074905874617471541225263785941566853708188970060101295917383009174054060345411144275308211986127499927066692795226923309177368100823256497916089154234823829091561258054350243530194672407016383848877863175813271025683644342218406433608131517660298954026739331832162749182561445586931543316362391490262444729709864395050254963562120055482881310416595641796164876272885879562540928500069085045014754663957733388432636548963414246630814441293656186709240145682858037211543090586488761664030726839038094315811435248950392934063517561282894008562138020081950889564650757983562658739707957652648453877752637919790787708742803815996478987726922363135092608599062681102516845070583378774325804376855187361995942458695755013167190931593856822244481276451091687612006513547855483646750251890309368626153832335118069953342749524112309533477131228210780397393836230955487951757712306886865887088920291230111070840316130541330402742754053236258684389713351100446147106736322519847311065214977563036831055816013445429407598631067959902720339111841689457798995373115762509949073610098866504024627994128406509691780428793534379148385923582968874759819119954631295583188138312657192527221427697074410977519906451953203187606198652237091623658029324628571253108645169160686463463898707786606525981631655582222545821543761438396628538794496963468846548285861995800958789942039830872526512171446907503740584078712790887464378373637459146666307838263199335628511536623179317833400469010972408083995834538106537198693668135481846405902707646856075919940330890678499612584785825396640442261323619955833713571901286945964856115199033464191840475575557411307847430664412811790685086782120706862930568532528432123719465122212968146249440632224317899276027325754820328178958064716991446808624389047199032925350341279090394311615959216826788309911632395794535497826878816417057352705888115044391239785957398193692711898679122553742330678521880033281360419641251592095770342790223796111191960456129905101879994043702996918985914014148823843947343500537625026845037257156738594760644278156007121880786121293341953392441318768354182334368136782184795504417463450739720437318925870241292299258128891251185166603406329527779981184945551745854602511360765944347636212962690794323605839124714486171371988091508110136809334590887993047516517589980704001428265061363183718369683895786013595266391192997149622434373607331028318997659977980873132294580259008578429225717813556669019437369516795928503511030445176413671614487829265630158178279008249771604334917014012588612554380150270257636885155901121170842442330913919684052496883200400293693030335568693582314876301730363155236553951052753853708136532144191506421824415681270330601109620387555364895563042808366025544684962478539307274362525068270168838621366869876792194392306169380983088087055127612778048180286166590777328709868779299162123158023657250941224893495305617963292428580065612352814549282540414486188184255241863827003585845710958355903037339724605726989125782667827219667737293836892660874207664995045301627795645574226266286747416381092856710558729590935123642612926068911618718853934900780646272086649776767573967604524054483460668875479267595799665680469069270481950394797621165313639677691706118089578944543751069476366816780747330151449948558451350202925969431122941969233751066329327554333837147597102192114966635610684295876022441264043196494403622213244637508657876390965569543436050638748225831100498870541373788334685435281127757040155629395940087486135757176681737111775579791520671191701679692327331377844264223095032203340815332029397107203336298133541702485115249636940733905686439255861500547699415673590515843694817602785528781898091856142773569046329194150619278665606153190894008945407918429471407530372170819146345823551214340517374666878179355351312124258965439119315364375272724964581096330878364423557854723638598470885465394239116793048621742820465605294581245081184843451730793078421138137592516058874125285424606802634845932120130203357360252895710108417170855931291362011378071565761028710661066376215735855108409415834208767768188666476490521004827896094816493023501508666519408723998829171083699542982712987333766669255646239350967986230145376305158738778771822763837747699490237218586228184943521011763373278544258189569223961263624302085265942413166235360537250752139379628755826869499700624909382993669795305122515716000559121101090573510261674681576627086967378504974307678902948957204332430588913098482875997276418681676525800072897243917064721105804161873676439264811072545430332490503364940304973459646982711263853369805464664169098829788362912473686455292843828194771061550176973763387796482441140244263753504182711081968664606737997243939437198171140283460821329107155879369688703124419979022839258140315053349750948452974574796930461282891072377978695634236672530772234855521294308733070884281965503624918789412772371153602708556582384726793060381871347050115093072079502426407294883018299379088321012510476824896695991009897982552880669230053745846421688386712236776045420803918228573162417893241069883615329098191735653271264785018977748633706951674262792295699727016312830002777699031921246824818585671049126592337253863853140002504483367521036075949776715623766295782817615791873023220032775565457535964281457344057281133392094138530781823610213441751564831788512562976956885465463823839027455956911509550783988917903510493914395408419514920683459431327173202385056741330381612064322470906322053435069204362737520899922286266569466607076771853329999201933250331229699693904657546012583940766918932517837040418672942333103291820955911588089179154337788204015997084382039344595569234795823748728089865260088719768693801562024631366129022888481132023208358491265704342426201600532100965548745768068642249375156327245939106100308197803677314031625396478904768673229728624488131528756608309276537747309737365601844795849243847964491069718414729363747229316243319367756238534885239617597994791131927243193554560688354805920660751490614980283584493266906297735848613139012549122451758152882033895237945182061387988000566377569373209096512231652265436308105965809811231756519621379453920006992933978827137196244700432231480972242092321160674892355212074318781776903095205181548738112666436319099020872045592057271090920568309269339766345599973955584304600891942792640522723865888294275175364807355424905313199337708451841918936658573870888689347322266464294527473118912218093674725125720733992251085460727603847377783815722066473936597861256849067582593529943731070905769853723403399835600984385023450070510990308241379122901000827779336173573756837417781530942183320840652590269607159677508634314625852476536519321035643625789244711100996681093417933704737677147455891786956156845815725240881953376047642408769101667609187251108860291935258627581786368018495752414202727073220047331167292685438887001724192887739428085042230493610233611975472079793226232191453622651720139188421038223609307956722806082078194434952569101221499189611420164797009344984040145817174041251649497899313070000714169086304068812755063658289939426923145947100411087525035064507685706832719592729444809583367118070673447922856775759153418220749541213948001149521689727790822804426551090641381881704882214086397564233111026270818567687061957875853475580514972847698250942755701506137389543777306881425301886008368690396896559276928123497796596722751806489371919318351629009036349283947961855278727266869693123184599779001550650841836823105216360774704772294266680455934105393387060593357463701408965588798253631903174570148393136625252619111101062346706960269090155817526502761957401311523309212228416950173955261059688035341759963517717574402014246865658158169201708319020518703049721173009946114978416120425116827118370111499569426068286036861747699220278011476386957940779947554668136422668875626136884264808915445606093663592661392632670369271914514175322611859365877528720844182841020569155836680638844668228576554964077143942937459978451319796077552489272305907938130142911253318879671426865774887161048490350751470352182706943700394418139725742339472358158942750031470928721311412227626723858654488370971035767661455070760165603936745425404221239873664446887907531119414646995997689002954213446317312526328710412721176890500984429567486545151602452746685765333834123330330271474288603413002459212277476456390638575590739892083717241548058859604230391066852269135544759548164141628278400733355014841482565021263998364383308783789129674435978233890585471280761017309556312228263310729864607207140739200434689240485729644277724736070328260782787538750770296630243523956503729141580971294454084830025877960362692473207390573968831709293674896559910056329602382416122479341491364591909690335540655429125872728999697989845882005853972587677658840165427515945059206712429122433954644668334283955278360134109581474891877520403177915438168975667384555939449694188758151714992310682475939179981321300842259323127362260363944854158580675313575794721083367165807439999385169800680091570760785006030762136123551537525867372460318585326659510095874303225098544310599500454985149286846444123574969685703005405184747866241044029673921927164453811120208291173120217764384781266355580744624740446021726580432004861975504971015528734563027831293164535533449086583976822072769284824493020438729755168990475397134538373806278276068623584047438861074629901732105801541701066880303145709825094410313425137470380542127393610922647760408904804614713789541050813129080167857855691558362986469450642628961878728713011741460550441159425117835323163572543013148787130137044237498694126007051293678927704691000976783237478035275615623832390893115393180945551521971072050158825156525047355560392426036623631310207202678896684620066947516605946188044759929855487891463430019824317535003307515035005191594458032951725862456921213443923558188668387888473480832995732015336656670929204368314121054819349146128746986698411516544463231197890297347180686241317682061138455476084212646060677128280005635302128879217116332057548763018681413859713994136472793409232805611255513713058268772848573659719851856617493570414942694939876318231694264112005532935741402844443115536378199051690385518580345175529176543413755318735923128154422490585327313050061027436626558576848394702195077200583470914924487538748109166834940733354410301530506114758351331766777685645396611645743076804485502088398219063769989090303049338986931020269857560657659362576068301138585891587593724215304235323935986933209724037794269130918593084405241928852784271083724925004036275403855863123990572028744634363495065043415597788657931930281349549244589332790277169519109171026860596646054014398056224355348058073094397186643216379526535418104782747387632907923973881484854211003371694646942429658568426945769282439595273496182437464473091153670919181397500276831248718062049066354833287813919483461567862565760407679546081891122355934612012148925424634503886131484976500878541052597601921880371833233298349955814492979205585597011055940143792684937332621604883504461669508342180959787070615615632442201520362972148371434432601216876945163568169843680117526372346981594740386395212436576004769518566732861301376457973688976323501084532906181229215078867270282096800378764506392395075919217035345983595325383652797772475344896995610402910478424147924742576491189427815187250677571991436643563150599531172989785840243844916351304642532590276771751038156410195291171825005511366200522179432715532017644738324448080547109721047514822174290703456279396142529585988245625269665646288425081508719950470930202789500576123339467240879363640583782457123169244244719715995192109251554942769749910357626254012774700962650783557188157952342873370720276326150352260382384800544529137260390014127063175144138725438518448108397973087623487323050249221756019251047918321313619632225373772200833517113925908020886822958060529719558629234354247943379769238640615998416134860844479034649730206642644107406639204854359328641495972681204446751455057304315199567923295298533054157579589317834823600940128059556352556546063428990699886594368740551982173942709114972708079843916179785772231472577347585364694378633909153388921400088500045261742779191866766941943777241353343639622977739400507405636571148749931378164197218752909947999958263740360902145552015699540863233138614603292278958503191070312326664677869337926290348683661333602049182358465898747096011433104251212478773963464749280234764527908439589647081762704191783001504002195173072648770652573984166177386429983424521767026241298680475776639757402181927412924788928407178532923474140149117050478223491399391204768089597830862956290023125623437498185012190850617393115463008120609883064826933973130745705695548463047351083042035630611707686435089302527978220399045336282248736707003715073022797328806391242645027848427163986437160003468142701868854388699048841483208889795594746256182862325318384719027320771850887487494540928008659840061786291841511303602195575608854893836289568979841176165040008853586005262779598899518849149362595964271714717727162804439558921277588248869020465400217333339565870397317681799543762107277545254415338466293106380459644830328404605046189095001604354741436823860272543250637717106656871541603051186019613767587005961624507309165250504129185016397435519633617050946626469749560124468494306505460754328914899244068017676995583139934267108246668009042328919532256794272579385337077216662950342064373761802113688646612154102164557810646473657637468092268700778728503230883292076967478062117900310070545497510362164893218364361624310880701919330841581996596505128303578484461607514759134357403659264527584338489572198604982975264003105223625835889953902095589595223800417433859651054023232178699902684753984589362086891837531034066848000826323726056016918505119466013095938285055663564859838380399891507126694132461432069450319733441619057487818440780941881099042075564801175329262276648614763248268862405154802247753260079034807908998030930731138532216323149928310199292857446022367090164882089047562200504600105331135073332016449201710937453865228075436383382899795610042641499288886068631441338770644220683245178669816411090209468444651562013608219747931387492079948013129485732075076238769606822732514776962513543743895305028820984316832828117789087924959261216213983487927037522165144469601827018870393301080360977035102685688310350199129896123861214662384149641582444168908169049020655152521205685271025392793633001406265714181616712426587819441534312463768684220074874760241828217226686371608068620158870153915732821779425936078959546375920779927967174902226409669834372315971952900242409521576470738766151492176129569973154927992321252807110914086251470519108659374005085357817890226002773297713582190419732278465700238005192336282693207832326345439977503171614357893146492256960282105940515722024624652759100991628132268608921658595115037308053100454047575067092782361414455862355721771201978297082052696219430347511503785271623191252022422046842610418505297448822959961764862330966179299380490734527109974504727108855189136419889344798019922251376195852385938220747550488401583040697042671267701367605098116499966602487040650155760108215427469446283473861924189832979101744994767069009175548884405979584215662998376001836296876239680438052497626298830987281763633374779362528667006604173520416560697069833629977937782041933393699361466105693123911214862363591459098934446691972717620165494193149256716605168100906512346490965721652723015351232724848997563451815582230180791285628234006563388989289507111934282372832178347595276160325986097882633928921087248120450571643735868000681400900364006658851305400882672768025037502134203172653744868729233616214693258786958859571766298963703508955072882686444822837086702027808762361489029851413569266621161350837858129453286538857014272334876006782643217550518511422133553000374147475554077711315275581023458188764225789151065537630783937718094718419600919017817512831878032939789503510475039681618277604097517157184938528720260662467432379892280893569136778420166925969793711370213310663365019419003361992307556714118163010871858473354923416327909072820415490918303311898740264190075838444441625943236709248205790531357368839178380586131977385907763929264766549869693279544350038559249100101464674091472791514627603512255363065029319559344621070231559282348707591855305163768212086548847417369975519129020815629391318860505131097636783373774692121782810646355925097589456127111591903747166097799851634107767851091757875794645640337424876878880094564377726604256737782416281893205101760706788912860593986669566890078362202218207143920698646738717040191219446743933408846665271696368364299412365763934574969616583684397053012471300212560630216989583157094575774493741013399445965049143495327593814116064092287818553554761803331630555091716530362401916507010635203197480313063445058828094142428345624879001016068036208524288137123380289320902201342297719563181779687275568432048886484504472144239531803837238633631463018107631834045248748441073993155484739455453801008019309817897997116204613525447180378003053137765622737210270703402696691654894300171101539521332923997533639066383035188170159277837522121870916521997623257770550701516080442784715011236307233153262739983836975680133769651712265293555845341425154490561900648651644443031181665651266056601068048306298782773513800977236513625747405772503234284020084098034233192447755481588063981111625934964576973198806989087547622426034102506331860825445388329881745788637646764660582180877230548799505640800156719774815325135560919244268035348119317542761256213899507903041106908771680325002281716680406356966355884147322280226084810394290746842205129299051917233112504182989962303123135560151825340191414021096883720293511664363399333725438580190163241233294166854318973614292013068664508666663202892108289603561179730258025866132800470169854741428089332943193025496661294864216115984835301599845855946137844437609208272043756391589159608287619411357413271426096679977364481609912126116003936226715460448285361041997635156039166050391124556966438871679651555949646007357982048586781008743845585856396473192890526652318485280409310524160855854917115864966330624013045026913264363385650822833650619962408454262436396712530706165707240084470276254841940176634312975331985619119717196832295748580295387444479872087682899693780773592332127258962441900711834169332825839067299422003384694022901213154156404112133597545353165043779138540195495570602188035181771137230404880213839299264744733663688795705359408498993536476974464504928302545752740973192022573648499151600861676716909161855283292951752980636766161745427784372365053496001133694156619167794895548766380949522839214747241397712167126575832459759207019491228918215104608592463351613102148111463256339949110807370855120031973689730571856414022427179836204901236120254288893100013182137376017664568263811635562547987601581227173561364264424933031115680539642019574784498303755396065803451588826232164104351562305029513168028162955127806583788104167425518822696964550343763104227677321606158948745242562988677882426466894661201410980884809596586743343800788642627696379569535741188553927110796193561349629704440073176733718077117232979610304633989101243819095927280173651709661170435497310824464804154173631807370446680027116702108280177171868011934612352839147182399596199071633975178422145781522602168289840046566665053606891650461954957934492776059460851928140674154295853464313392515883628254593743618086394956012501285241922912717443788930710435184908288037978852162122120446077730867401670913665859198826832319784765688200745521771266954807850142978916831365588436947039433925259635555582024676822917570103251953031150231120332144406561736984691748204529439021590101409172663794883465539061933763365715004867648090846151397734720310991432720084852976256715650320727641589299885847903451665385519620445504493796026705625548164312583960897755770134032468889176155253931216337293132114288862993659756528622423708605833597603327179116579654298989199373977686027793247897075447624159690602257676643481321576997971147441057356587597133181834247208999659930643662570606781641974405690632308700772291231970550479679989602759567831416016509045000410332494627368406003559926121939507314316108466993603097338793768745155701627686385145783360894508704704617795905816795948226498972445950640037097108617200442555951561003311227619107547905670739811607135443017005719080949901575039774439579900057301637960368748387222940867828561796855116838583218479607651455397734235674326821076643823633620338887800962015802942471584570779462929710256966686173834846655680616369272364948998850042206460272231131306967446255213519265553420235560000980588030674133037705104690907243286288362971517132078148377472612061878749184274082743003238125803104868772574271737333917994049807485095295543222932064887674800254966834084756358675694467716538248631636850839110994830204697164606124607226761986578670000463251811516654382386157879384371326806287870163522447700526817322769666923488152685002683009806714205310738798383996932423906926957960483050004234560501855493756624445597255358805304117901604377942214065136850629888277843271024925675131318947881057203441896192854987932249390749286534826984405600057922568077211316539897560023172903598999808171491939902628047098963742805166998824702841327587246789810130946407020356234177102605186300095785249752451619339460015367773722718196708789422169065374233093653330571041651602300448620022436683976318802398684821440177477374406150569817084424110613784849273578676053308664512107529987480250052833447685933739279065861422837466134443120488097358933671664997706637499086389190566409890950131036942875833748085791522296590137141384255891822367344895250188513148151721591861145798497953245548531848807061296293012265839754867103215190185455344384470710737132638128240648714738630133710541495031051361562195372861400934576574891481181872850457114103722945379966143440426773530114940861208704474547335046686797341908730868330700001958960047589909000867980876447654114929379505912085282373897475887375358241233389743805534434952575211690740824550539960756739678997229900573349093267272815474910095751141589922105909227772593997881815039105431540255209164046501264066940742812135350525648383061980955094144532754108150290332660003056787576301181671279055504136012309167521100243319715354481632468082191331672808788868379304689211557273473658355219100242096644660035442433855908528514950358630062159158565412224225654328497974572497243157958196829248773930841561426533880809833543438412531905766341812580887220222086815385247411813424488569902665816438841355980079197719600644889369164524112755904363506150895728636047979740277869364544860814131920101528932312879902206677407753604580694105831582618633005733218369942061862900652697326075474827534362874586297922453040989737075413858430625768829860133389809283449798304590879055395190572413628519505131831334096490107427332662796867467959908942608870213604491646680786355684970308628473844413330947994736545142778527533080807325016696981329796108106891163362455447188941074039625743738844714897602665265450830078064705802881083272093914452190068449952538666005038275003888332270952859628221607880462004873366917969000937149062674204995807585264410285724322816819711573195401831930872248539744609501340815612475908649238058307490984734617107297958341520808166460421327604366491652141887650675064009103950211922430563935727224069825541119934806189573006855916358387470532659609829765987933958789340501452430978619149960323863650248751804467638238973029968188129477663661453279483686922269244827145506885662577750042899352363100570296721510444896544369704994651765890975114266105881768209056451279273525731998035509567720675722949615671500253515228666489737453677313513747559788930170407389648008953152933961712053318280500324940546640627658469642885420304863658994429792163311867450417518377930588861410178066507907090212309989495618554115103700513324106560970346511230630680321158073101860846712283725977447826220442869004213441632254490807893077561814806372388234996867754871363638474921398513540172973230703517498678223450770450859282845957442278450427192638618124490179823084246161483883603719125382992850271365114278502514295422714504925706500092277497440417430277955693094852102268766832805868748949316791243222370461508776057683465199637653657772509152974774300708501513844560299661059458323805085449174451922882843078889318196840017027269044664212468064632754981375813418400367425444221504596207975456557238130908146299114282368752533672642732345881548521193123095359725669109827587885245887297807927143636529183042214716691469839137564947068317534979685005545438888725996042961790967485955607745213716466149639608925290413960681810247545510517506406076454432027409230932058856402619944443153799765228949860738700894919591583587174012965072150899105205623157987386600736433066091979050306851102288676741990383230642883764776739061952942371745839529553914917946784822892472127364867440958454861575692163121681055802131867476453679302245054297649369785227294889773526173948391029071401954586606555206002884534051050809478083850682530847165406921969709811052127381604807650025081574959840865023865974720113801766170996974700149772442943767186003355964934069001218975579662553736924651629088647108595476214413990939805134514642443941783762041763814353676145034784190162321902850427576980929471225713071470823257469758642360172634193516652742232517447132859299923211294328400354285681171025500506682370016341699650840679515585236198891605669867262162191091331649417985185765335228363737180114761514326624574138665910087746482436089695112233565610808454123395212707579393511079151516338928711391477641296824003073099171308779259689654237044942432604377920964944761096277451444021923050463364217047834546403476497680052838756160039906548621126590228205526817876273005385353645811542474187026717163778730093533666029122968375834959957237433343899818066380880392649095430476915827375570931354724398655946746590069379923694224251969633772268615810343128585632697254463970763154770426338285120275007781587478336025649388866981610315186909920391387719704996225937883412662465391527888962942624709341091575376756774555375757043400938454630134761523671935845664355909608915351018613264652875550535285429420428739237619069728463158345128001497173803139343318546371412457139724003620928782651959225066801709879812333983555277781978965921700583415695769240156435971799807734331925420934320744874745504984578885498783384148195517093424272994875078952100904567230828431884289572993409991921592308569699027136365380519904804585848454723556234970137823533926094051599198093945933724860134205588085234763183458339395764871397315272997783281506798829654547651544121821267794001912418641748012627972868440478639924133526003192236867632158760590515579774802040028967087131936591112705656097278568321107667428889195315088760163055045425005133387329252451845143047519010721444535520796620929506782087272919442529216630107449030266789386553346544614704214252510974515108291233572109816864457739650860983321219543666071531444151486674531855039487063468543002340526023408703458346258925894164354447560491950907002734377152871700688839161012291505413640809851879919635692419992813717199002015223709981998245868587123700843853871571875347114793632722312830762786537095259643940591836844381847010210089001756329300915419904467132342644948136550136540750937928153196406862878716478139348199076029180419646466919514312821924581727512083469252341472724379659209507647553823404166570736367737079862922643876891606982013665807476794774208432402113113074089721407352896259204260447898367121500310204945566670797344457995617793990992157687771281502458584061943597439308859181080649467365490903126592192952028382359957172252680638143460475369240823721864698200227209437764155902802228034559206390707381901791309668077398625206033012777441130976990520994693497278552083358395323482923393837504168359568464600863951316075877920037425419761786776285073292843639558349909459723671264220211398077437186201415513361429879192764363015338783230171776398355982391569521388823357326052222305087439080476822426733349258075535125536416162726304529391776726119117527457226127430363746642329054575092224215125343184645339423607611437371745940287584152784480727658508447188364262480581607775381972996847473433770203476776057008561181607746573175946687765484296453177412703026512181709524522927300070752666192719183911152215516315848474790382456000508384572097336090836400831734177006803470817925452070772865032584097342529274541537149403061912982830914083810592508612632238871207183297880298530994773357978059617657256356568350447283586460114773762548677732356285067869027625684973091283331215738290957819509885828575847211007184471444674091285520864238925213774581248381042234888989167817880215036745243642765186102608632633273911050151521516748277360684407795777615236479427579883983615124084279077143064235619473869560527735949513780029365684862527294138519718984045323103444624218240397695019646972265500325110751445495809333789618528221790738496517281602619135588253617158517633460334131521773849521638663075553362736379922691830490293910699997537443981180625171495257833494118556723136046139280204546092069271742599637608920806454365694925770451975293593842149394242923348517468619111715567145114860705615435836853322344112581351474856717313802483526686497392324541213204380565865678182367512383963327322267488009491207218746136448542607784169226365224401575237875501337351605796266358919342068683593216484692078513970534240530435149583913850770782211513728357444801233436192508538380920325279646983838580605589900388176601008172477258580581895628649549172958755695280650195506396143191569852544459607070171541533777992409308293163068048761022664395351740633425739875450074774246066315776514223192529047904590777405452492467333965791757752411260795078600905222553661431997441441233490878330035390092646921665326451843621224684388660457865094508703063342736792363605974355044635135145991295217551117872409132812474940230715373004758546740749641149516909498483475439981362976554389444071684257854354854032109522358986730066434459801519768922232752303524550814831069319019857156741724826597945246863617335996361174998490840037422293816918405981474986618761453974050893239289789073399271468888041721065596240148867678351259375882666542669831261781938602098830523440597906946531614560844019374174433158596418811409128347377850436808362911725827060225905492860161708632285257774777644834414382974219997305270806218626238859879208690246242138501218272670504329221301467588938137920807063610006193700542186039893417983179023028419604996443916553553913571195014262935844345543246943526686387482438798627897569671666140408053964249258002243100767619984708520942731506608810056410441500134664386449820732171831625137209454907362400896878288805705038284635810242967364438321839714512909775082775171910621142576435468337034899451693202212351133162723638952732896300401624324471672091156381836482415550291951494851494619314427210346505467192925713035610603667077441913766631059588677286521299591775237429111635379957698198171442915493742982083927374592633421519303951700532240796465127155644068019289212004186402965379253395824867406965724658337571905649835443282659773426926422065638296644878668406482665848245854835699518335704172972581842908084132051119609074122485514608691743263003589474315864252043696487787372997429706896926306024107027170686869687885924371375674206610868006480360923691771734718931610998065554409441797944390439389782602639917448333764824816164854805382122584292354718232365941827064660281719131961362563004537245090374434673410969946381980396012012559643612624396007546853918647795668070484878531426698784054523617461918631512709553375972948299285541207589638681720639592246700986442834103666011406433106137230432732646418066556860199229160545266297204932881945635389503505214990121919947823366676784281467690201084447903239447238124601332013516219703873530590403751115015618069399628993664396511132720791259350569823098210109238937402298184418260333772953250549610830794619471855699443954180554065541581976578323189541230383379280044535345089754903814096532997993214852138794385753438988755250820207361922203251858849326090386003018107789435216249439457374528494436951372849172026008114355273386384138587410356870974949406016176771164396547725421116739400929871197795321005042657960176507796650073142796127483513810477645176283908171874168437426475577873296232929379071326672202102734879684604739674858175151995224002867009451543184923086605195964469596831220982627678827027379390051261825257811870883884887090937628457497826103479547329664332527881054308142255962207576144926737139064995883595232990194871004094755001586261115548582403593250673104585885135575404787540135650056211763647690983702447110190435329499211514878700660090205955705621861938475698814565673142956441055067672675902369063437408663430707974313210496138400867650766332580881864133340672734081632424127482980442587240184673697901303070156115821341131187368654564878548942110421696254312004664582604199318792093011816666578120290634690699350552133503524946187841580367213591819212196518427957697034830365187938414203642059523439526670421620518597789613645519922481911046767974604704127773708022617911171586609458319655558571472887446937080472966776752815865230774291706828588429662664086000142849638420570851283669494042126023375262376547215183580999167997131732775228138738175872632311837562108990408415871693546948711551535647862607527824545374269453888725454599310250856637029618731355498828780159371700001259786761600204446067295843293233687419741344326026126472094941487312962347851296851007805108134913468288641038069133048428805684354969605029746718858815703599516789042270438706984644227986920319612973772551553901194152992729182473083743050749635466914218235047665588545723332626932068567273128475535747699327334469094459501166695995009583592911096707290384322393664637584045061278333208681205669650059306430902607481994430945261888973522575449431343496340967293248186188393608958646660407656060935471079708654500662298889303881539212740205724217524288852366783516903577092694698260605365179027986378075940289412359054529892987340323585701391079497924923012571594909001735904081098590248191216217533117318946814931377268438090800165753850638900643149763918757202385810456055605337708880744644342449442180249589912711086106532716302736840761168301577735129983464138881862091260338626216226577425943409533537718605781077794337230081036499759436332299737661099754389470062602923271540431272262027152857596757260075885635946697175393603999912955025435963772112613219981330323319154153318452230292634538109742517267638835085662103660671728315293788272763367428477065216934030528003357904490163286243174812527347264554654124191907682047041411912226549955320468000371975516047805192939405316966400600891134395090529639178098700532080020672224542236882261573994001851558250880571286563019419447553161553559916858741976658911266215837176194756527483220068171288502021818871749301556257342319113774856376263770262111696128896377292068381318358354492010698231989564194656848016259268273226524506246587091743076184814428559231603091540228883033626669041247794516742621594406875257022205296502102168180548188755266389479740098612094953082541481537518167929641966837629006721933938854574180372667415606048764931199059070482828765825008331162099272235368567213413483230255811341136765321535785602890930934034100294335781494148555836724102053528848280576749561998457161484880925042991235734470992573072898818215527670700464775215948108840081092662278176002733237251014525653999757589002072913282940714735338956437486970461345716740686223330930426781295627628960760485781502505459525548222959255588976715293815514349954103855807319214051426339829665961900479658760811333048996460678474752839319776721764763525817243193525358762091023877597959516441018364981481722738559954259987872611619083237504819353726759947118505969871944500347462919826446835699577730771202132818258894359364571605788084529358411282227677353942821569143662316164964768533029646199641590963129884879700111606346577952851494051755107905332559687563640764667100348735163014065679320289034396762095359153549101072729877786685657111032771933052944641880332692808730864854882353419958870569929546376960503009891899388070456024396986742856013510117554911762223813432068342030899879035602401276269696254079655822296390061746939104022729291569956861997949866583710638604959224006647653794313004655875519386669255540415464563208494167959194384736538068950217703494779918984923464028209705774551363922640813002167692302061016800053944150482402077303497648554079311414259958534947700966317302675475923590412513195109389722796001831849169498354187741748245467043782905136820633680532423705562156168853895726205719168940804706972195529501865612284832445160294096917445243606709201612835387201757072367096505885557351239492353834789737797085104898589286097236783098888643283690022661052001369312431859380748524464213455842179749557439841006984297192975041188362420251362533444267191685106773478640315068809692784138751441225141748678707124668883145293774652921598943374352849275468828944104015384489970747908905457266216543444551049701890348406599121720015255383740168218697038112983293099811378675383383207351559965734501492478102206649968147088084990783626685202656598381448533907574296408465679275818214411098500435382397841589459736368553597189926945601305646517751850775770466201340547537059426684077945168574120200929928402726472543378094203652662999310263543433044479398839206133886740394705631366757792153532732960417048190440464623223163943792373271675351577612404441947081339483443396265513247746125820618516555898831718710165780541056030566573441494636444021398562289165215879634132650830316420822310632364769650636016394715192177600578485275986090632835449325296160274314175990275011549423891181289422377110085310867029468219992413851340245358597384939586664371469136253194841708784203230448930495171960916137507491700140592827742085769059839036655471634190314033942782317465190501575385554247687040883655143037150879428809775093496860574387997604815014970505885657129999710406196478718281039286432999596589279899624772329868676922763917096184942875734044004590580620916619863551890303254693433276247263766910608257651924022318141118904697102774993543969000199799579683262829379174071568684088941314483893404939926131900045165735215358438996207568264263193933739891220436871220800985856970573506189862038281796088906083387837781632714486734610149446645685103517017934456769934490058429828999440964385462768081690193588867822549340674552661583894296709495879329071824695777789189797163040501263856811650472352330234277664733117186490738495243308797156145533472077548877966145473853389715786859275221400548433249578841985009018520290939528138066669175857324917030342136665581199353061781445755767394753275835634927066433365902275899231642132610176825913386731586965636678400504839572215488455434164468944891649136854512520124134630509487560231740761137766166662369813663241126316484929564728297022869018973323172962145402155276927692660458129399979443001466810091640903718086622393517346005924327347091749555259611269839522005026715688909997753031187970875831152186271353543112482522826747242346009066507437519459363321544585615175816768772479074711493306731370840573365507246772044707937073002601677734785632493083308254972155049209458620891089726454934327811587424250433665959390529122754894381754928588984995344143153840256839273657897240911724927033468524127758965946835047355507982950658814891102198652242540068208114231599860766173773197923279393570839330265634637200130521505825245552890389956007163262854121196541080144799409661124404548289121806551995620495097301167615572240036717647301915725582992810751455642908030475379461107626512876079338604779432448515066971117394723377211334845362714663479336670877495904278613174433845679233196762737565173869836980789784147428992072475940154278041646892754161357675722435000112492154778013070498589036377434085771128244188656937663147423737675326365465859228449668424274428750214706723559400859465962229041484458919368976462930864435280253365297720968916238763905789263241319572517993690181176289013062237141536468183867845519686836544691247259916131365866827399951545919973831858103285007089868022984732488347980646422444942096741748787849682652878641945280104055261648283031608825169157065190081729264971548540262405955571683524384064089310117166850469563565306270714744956861199480075795055233414935114846911659132184721266087134871390840425037777964385106067140040188203337715333727278555115923185671954430167495508690825376059283209596452641272011352893541656102686653966808471590821188016493626198379719616910041954719267278786816750586709884661419273183096597720109434599752415344364416314795764789137308840473752743810944063935508781049080775142649775632312539169414633961523652070376083970918373085093752786534876566450235565068148401903252018513642270101121518470035955365425641015298413111546791459113054616563848923043187634288096974987955384351456909773508506666811092085793929753633038597173376542950073375267822421032653483983985410852815219809608242454490765389063608974310272092812769986913856993576870325800568147605687311185746411356890978886947488404854922353027172235206302117968491389237839307415082476078660092481443610920568438393042356584136267553363132115099723663370169747571830328511837919007871707708787144461051038664851294935696355781875981002978688548911235934995114261549409859254841246714436112010611658462530350758959639871242297800218911743192670011275675522669488702002727829512350587642776673530605664431305094440499644732579892726174297655540442647842115620496675394970873037762017154440735446854253115671828991248857810285795662638373819063458142533730196698225467424222632494949105652049067967794323575809270785799334191562911918007820801742711430630053353713092310290027442360678761383238075015601468769125172379533962029989500691103386195248508671132848477722524040145059241278476130992019900970326467900168860030448435340535682719474508217370785583816486236398530999887361946744286755890807320153501807853287910391641517171394803869133445590187924168853040078251023745857880574618992767322010252902205815863129880489831948274160746266239414044956296200790841754364765387012455866774015553849899744144648064457386126664185660986927931356647236008795334987947552660273460403463615556563233963032938092241863736997444189422455783724765620108817671453199453409223799292937596905836111451894507775644959537765153983990750113794759730824352275265034722465471516551684083493611044329868022628478688699526261492012635169827772013648759204937837203012619614036635221284787676389601769728309503607801373173375177290673424853614017758191276242076311825938803616039356358696453671632113302006038355579320037889048569332270617142545629761847272337347745877776377463438280523663297839016044542807485175403282773712856958410918207265510786028013462810918167446188097056152725683196927997919480513541956819190110581647991943367246320254236290670818878811133116209160430882599177793504687533547843217849679751920376170871918342306165785858110755890792511931096526412052762132462190897297643451671590793956031577230190916494170774511395563065798498770264279160645384455205347790565500758893066645996409140051687752802503143747050756399936294602899902724574545176238746695895867983761443126814791004010925277485970820383918736797692896528343798849232739047657052669085085015214536571994252151148957129259425219282450877026874786503723651273148518677571434655928879156311023257081492402384107445049359041658496548964914781518001057043256819574802800039164165253765554430816222463350301161650104081910170936829917500553148984601071898513053996710067645242294667038581226741583025744661096867637460861603846244686261195233654459421057921254168947467670861563588225111943573030015945527500060839310620182085294548482354845453918275481738100622133820858260066525444974323773729158515931201876713866038107290481418057959071520207920630097848410915307907372000611708415334061131398251663299193099333225120794443556143921261620178314020488081706269345305461006361017123059288262841821921697246438648530603668580615516908353378345565585068527570267739354857117948510730452550167227866408101455846432923976219661514311267572956890849249679639039399987413949652005530346976931651019753992089283623589936490519662409587137165012111544188428960036232956101861786981201452288197884118172017739948710363134473790294950382284907473849809257506657588505773257482447737835979014026578013716033732366140552324457095614622827440747141713396104665513697388160786963957617552650676036507813809966826107742372438470893127889858931529744532581114789614295775191604265982730531830076500719585672631885569907287855340283686067313511110976475345127898092539276416673293707800782780504699732300323037512022181380658213694695433416860329523602840484326328602265083774220284241039686192544361123914401985066469942654741633572157763270034518675277822912398016024447140746739592810316089863309122857172091825789099061503807228809732744760631899218947176326464346450067976880351036967416092257808361638889215137556392363033240509465006369556126836400758129806424706344323374430032587763040561154469796379738374465416529936532861668741543808083670306787694920263694370708153537347748958976306566418406267822674471979594964069464953668835438907070148351964252423794522240591636996004844265004139063215266345139966183526137489975174303728473534978048279652341335810785120441927958219159744299917932380159301967375779712332902727912694661149646019246462820741625070690942758448064904435701072630720013550524646987478349049344918327553303145997202107378753943874139284171173439449331869501106507916052515031269060347161041237885050388522214252882012378163734803865383068444473770773915580648419813748769801213143145041016226273308775945672696563509470890178934090962551068047704571988178249003027544750857954246352947336536883574518751646997144362522084965116798695654661387936411755382188742166691712792508647977143832494479515458925677036881791681239258235869877960771441303160551178811602574732480390175880318692966784222383944057952416578241092511517504331211674172615675011222363955643586703549005095548218262271438961690827548884439249993703368310656997032521572084423592586587671461746824771900355206958070581685920108538290720405637025628485008711129593862332984584768549486845824609041061151680118336632993232149358624781337794499732123119521264057647527043886975677952991455747881414284588488402722244202500055096060105861719528619985854845497572317622936122685385259024632596409123388203105436647313182366598822085002914150133849008436377519494785400355020724585243108523820627470499895132236602476886643716464228960447656077034393578121713021989194561985648134481710656808858169747031926937574510436259570963389795643259836108947603192106182862042259895474050170589807774385002286463493661785685366263088019058075886544248321005234355229037521211479105262455452278157970198450491790852670210707947065129917788566150024948527540206674485918766665289590007735385813815320943676792064190347089532894322606023733252862494203133664038908037855240076298758732075034777170266291262231781630206154559683603499617299691340726698676144469944449102530464692150994968130599594697835919747347467467729803684206318092315267518654802498879612381590636773454747426218581599194262448259715117291387612152025930694476248571544560390169636799045372382767051442383076632830651547513900885898430706311998296020816373115357905858205350532665756322808923278800552933004166297885224965305796261033995519595615741728974648498332951812371387138455183526496514837294281565103055436184566750866707490968292750597360526001902614337229102958643826519483035945395887185768086358842681823890158018379923044205313144595720866750637707877751759680824650306914405805306168226003042671084119008230133164422343986351060642945604780020030995157073518391161111816485690089005867966590196236252720875516327593226381895161739311682615929816180594883402295126844348553676644881305172475207097559741921653474618516855761290127270254309549558652416305580676264184267658690052692822125413019454026339111465997438843108602726956119841183700136719300469520034193895122745948565619627013361731094290042997947030034148651122825524586794876380181516413277427116839975095823185033055688719741904137758464732817389631705306080436513304139617537349706278446332989548580124557389293979782933331267593474912085715808912300797679946891523676770772415344334836413564385170996982523848637258763477797228322564704239457968187020638199628451031026218010662101809928669946657304493860713997091744187613979174763371105230006778883724238586543952905221333605706638502230411853674021832571694938310478624857344599387068394982830294881656614348837024883782275744778417025622708635472337817414419983955936932294932207904057776043685796689204840370807017689639517297951708074579313961490613806065791728717699124624167027010144287893188117222884923185913696439408384683773769241707820801031302234684794571059689195340365366451352889761379580174660568144154892913114864975453617212922152020833517794479579289006505867048246976640053415300920420743806511438733178406509512055305534605391051258064592924834932252484940035585377222455132685925094350961142118258029056805934932760135683507105896319317692266778251334832312140447762855745701143913333111612261765421815939818609342473615750922976673706058995359182478889138798156822965335690481254323634731717446520927397644088131019329292735331903952485563222213984283241668387260301134565919630702024327589922662214282236312767208073366832977627920683763132230044733438603771626225059837029282151580886718841433323018271389047407648952471296956869445035315743990492904848229308676146286974695077484716847858958508616286900224323141719207629808794266846329784141520477305027157014841920434647543063334981011082898091680534902398971832884871324346309595602041061563216107178156414008515663037157502269818555617562524701062590801784411053182757243207419436837758590435805396034191201771632674396993746884608376842553986067052486006003674938813517391746557488535936210672206975838781939903618550953037650457004231839892630252533544655340003383005703869343220058914738812617206964103855315586363532434524454714669819845850540305781731794424179935950265063378991782360355768046409077099246506945443008633985919495976359402919110887440430045326386609245462420443228575286000693313450593050890970998012936589125261893548570161931796073351007282649429524721587601704732705475108247299507804893325050052874905988436589939805492767577940054193897843735067244541437353775449818932059788966432061817038206405482643422461846260315227172404714084861978489590142722282325500547957819243824839055732163159669954440641690313406537948868284214453069642141377333984788710524939797213699529163416118359198525109127587889694203171002460893309884747046463276419925426839010569145409790697439534218854602697024030638572665666958643444723694956297029415433912911207804329563481484661846881334464642797595710234528663439582706933584378532688699926114164646583038400923841118045994723318692747485767289245699295702273072832113810380544866924653765364380191307830045520861256316277216564882850685784688089926413934906723995340884347176569813105698988210663214536165980242196115024839565714797978512960287170644607454925646894012344026035580412239631644060712367669572980449909298768741266570219574304705109432077744675175977432953758056533541529261114826349066311767630392993753298578673337963810880799262527448845595612229884377813405651953986709668449687326591100475305228484624257042080826846724496502905064580719813458851575298440376289393015119568549492230365299065726497719255862115401380666803191480654575449827034715076719116038248463775161643078923701488629578454950336257890611856795810311971975233809501794209768227319670585200420707678334450265518902444627588310475399924560059861357828274592912393784703574155471524598312722352431699523842092080802867605012974658549231497735905580222963111009066827784949666393776989692597883363792812054719629632619318789781118385138012436658204689091242483667380334939777739659502033123700829378525788938022521455307346496771386051867011286538491132453429991435315545067803466462845686358294634444103973688359743276444646106171225745222186497631862442732098230312498313806337032515449758862177439149008266501957737573256069607017628685640493599316889198862962651365737070580059396406226659855715687572245274510933271648222016851042925111082147614003403730139393843520031361875620097843836529459137027327168181425130559941097041367196326916914182192546194137336913735750757473105308605755039064813897865231109163744637374640241970280375895374772487013523621354739162540107048958504274288594699736794257603360841378267421204773519044295138513231954205950269342453360483104565923790873328501934323830366963927129475801335555135131003146804933576117723671095087966412130667519023936565476437667365408957219470840631087496377103143934896085118468935502029983670240605612603315772493006997970086457291973323029166905051265535043651025951098063855912970322496860345789971578374442509764298813736415544562268307228832820862565885216909894315100795917348287287152799345990217226182995977208171719568218380205412534589323239968904450060526163138847788054937853342855409668113883193647047354087777373239036361158311335996870376208387063323043282655997272056224087929896201398255718296027322103625506436906442388727406833147791412191337433941048093831173298800977539083304452357148209029436710186685513732814918639274833385786157979314396515801324297208354344828796821019728227186704686904442872141246686504684702859994713542412740783607802985404451147333794528504520493244222630461055452248838286083002457749247913646844061166175017045190747325928447078914101743307802539705484860148565127908168327871507102513592699573791072697365117682008973381473682370325101195907675450477734011358476400833489092033958558926069114435288826160243771750847026285310896836455937683238239527249506207410221560613020350998122637996843464948500306364073968823765386034019816230511209029889240308261341434860062256002709313774115862189894454757641074041019987988996420345313468333769323468649715148659951865818780992048275911857466210902815621657727264777119294786982590227845099405953470120859847531242554711775911541892132615563731278280022403114095486782777841084938591944463798949713008787760273868373856733363540074279630853922518097843324834067839440835754764655288615548900602827601318319450277275963246750710158204703658530577285393542566162642072743120343451622106815050864694740257477780663126212272171704005593145251427593912196991404051087251376385502925243627337404769630660264909224619484814878316191245730106075667294054548344612518012117919270065549337166997977846184202900091478057955258674752121141687863115543727791994002257050298816830549814964930678956538485647041520372875659285019508353915835931152398430451295966833121950333017403893798346677021410086049605378973423479026249116393894923608937217231752556154361370107908269513458244431211734927681423192741621252614389323186761097109308803670390863406629300718617816372974988306029543482102381932395191827401175557790824547663434723308124443265089625853454978225527130122300479619414781668294032704043845278143611753297556716507532381710786739016063969682195714483407366880087191088969847408820232356928551640877477782663272811485623397052378274709370840131500635782111477495889935802654584074178739098944361953184693417406952739240911011738117591112883394354920865369067951537731808232998653048209762743281697461088227233527288458821168162873235270338357380842167989267636449735475870794298033561970547694626846957473056888379462551819779104899003108381922568255300191434949837815674020679911860826493187039086978041656894931618710051379625257058905926678014122701850498406721185829375984106495526911224224807414799088958273668797961461926632950545547702137134471623783149476670306178999265177313415074964122173327131213632139099566470122430456375861653134819105905842633211434112031337126226844185737023981291590933885571563513176464397637876432536670019521093778044329439575554589647356719104125087743481386935741587390919087785183796450286349459891480967462526524735284343242695462908653475729872177127411879953902360918953266385468245929806745960040424350362274707092405004541925442928435923070512606615347383774143458910117505679910584029964576897595825732288820861235627465713478641659489396005289345639619321682210440787549344077762270332985833345644405092388613044891574796296176780364947656265628247020290889322555503743888790593775842161487797382883465145100522624960839330452695913574084228737014136152888600760151740051372137574310781237489902111670047497189658890716592737166196813375574397495398282771014736737423259470965152227400929543855218371770030892787368209834186407565322354977670952895516566046924247269381755381453275929933318987209740010609392057584278242731785071602429394833569316036715701545559766468443514963083381162892001303154723297531045423035583138253429394501680383310034840278459243704455252572210869211875701901830413613111137193262399828457387659118476698840636013312157092956455224107448238945690222549876273491074733440238032619147547302234893500019995749945665579850145974140304415870647414040999143257490209543985533063664764277885676424382086658909252638510583659151513528577003032223557756439711319651231351405424935537349589445772803539745503247074111112613154898473255229200335676646374939002718804827343855339108412630524305392414988100065698400920095496461812890716760846474270490082679505919285277409861444683700638493858977816703021437490796948061640233272706312242097577104374279109949540097144891586089582122424870837279439113073151475327882816955555197935562940921879207673165950351425736811487685098809002912476057715764886355354344464319237866436058740620812879513699766352949507908243214722362953573754437973765017083491940016869482851121524785236597033907450035507295370909251506933140204618246416542288971116424816277277113898843159938362768524465191413342423476531918123282494969437794811453776947847552708113988278420725645342870300004777348347734578621444479271830955890920689778298886525294263236241776884833960052863882457039736448979304886067380793789452837624135728563735115219499017117463074383903131816559002939215853445425657389821852734329972546464337789182439632376961755367894726526477892826795014903926949337252553356864353138377149860556991836540398380487804404532667750812930879510753707035920129253238669452327542710474632101119123014550023053502995066228863564156657385077617417731644729329072855801979783434919404044712691068571299525042620171306456283560917512876513373085903934400984419966331693442658083116729058252001215778407969987968986735396899010493848850614443410553198606377390617716487165239221123690468919055834316975468526592466279104481078517917918804906403359182617575418711517841630295758924692514022686750028824564279886065937632207686175535379880537364975555254953568873951039540802392651198609345736215836418335803194397375518119578392883645618489679839867735009819203393868434141431164450589112687631158650464688157937013507167290698048648983148842851147899901819425267923676416279195858827554662117800363832083693023795710747675996717981604431724751322203005503819304504346206643969045042215902708196834097762124485258170115564034452622763176613474074570564954905976571596137544960170652223176051477979657241606474747807639947523081683696854264108858842283722897213102852975188091181430946798391748058943098846826309817304920167329020422200964844848775140276320541178749911430435396623260702360913388392353093583189173870890832628600252712793828999249485599051743376497956183857495543237718256081017143405475070487885669311570181576392958990851668349537625439789123898254345921937150270119438500006720026604940274558335263510901687091396583310316588693832415277444803816655617723916543378954597520597808900064899008416823228260190568621434204168580014873855116773632015087885732621893167504299289720881032445906333869405456148194392822670530865961644421923016476054340537688767096764816354188458061932936914916598767788829710139811716703188575851696835636853065771020224296289185090869713878730184860818267872664997246594939771529810998663796495618340241019805991305016358760322740950695646636319394796797366938455644899191148384732666199212407468312505210217795720505383899585335553792673566202578562765213457858459208726767850267331271344825682663745088532136342809095997359973189605797381836718797684490355083292787890162674669941905051720596673212249429270330307244788108064830457942466340399310184035877852190669155097701402311106383221418797696847206865117711602226046871167980437731398658081763270112004503889644633295554165454120569409895379278088174743097106723207688831699441552529767344559955805332715816180802510439905492757630418789166756793982653250692406885953185442689003353723793045302468344794894836209922247624594230946927603330077731249862447777572024491671401889914035437089784354145658604791172391926310354723092282730151493130159917456585394164405845111881534110646563779354137883354681262604709112385058976384023571157029114071641301782495038373577386310167026425255574386519428734018868716646623976463189773683940609782694286909695581421397779897646547924743877564357553583398789938580902381979270694962588707682810048060757075906432367027096820816190874272110139216256006215836267778860267261035451452748639042385280140982938010275253319366308144930699896801251453465007050426081755837083692777057478915250995720042701368737957236875889633964311607656531614504939831335751468213526120414592355104408059495699314275938638653631601452393371924090522367276701622985002715400227302099936094220251997942759847691083956635138588101766485550096550293710184025569135502791407259393203996491141024370766607303788116092555444037561977196974434923563352897288820545583205806913668702922106197416927048446763889622583768149467789049039157670923021492573173896890487652972380147142940693135175385428146185273759879969062226007967575361658637061849375699848381427567891061933674031961344058382679588539930590351473109303084324860436776629804937667626853644109284837206402767269417839592903390991819866085319051493546989381722897421301923624301511243824935017396529047275883826437038343849261041485626185614165810209989884360935418435606539297778792908224484115121876800741985266477771834157056930833388816239408776359430863587961832196735036105753463207512722788317634075645102463277277077664901775759931018476652431174776234825664543555478623461691181200373403113708012485585793219047106085910517748206668128109292811985113932132065403929553721397118796604059332472696804518826319375033103940143698414368230559409008109559569913462062115024933681673833656013140620835423458901427007998335572368437089542895136527644549317261618367319049079089579049427758302957266935908947435471613337187536087327756084267742659001149635101143699322100542799072421272058922676128161577932753956956263085508296323926277907474025576681130085426279845458846536028275166217083047995375022752739129904402070195433975168959678094971854570216547830051799089494181179584912560341210360046596089431868498410246155507879114577977379035432655893396429330304819671992568849432179061265719845220866352324330337166005537223561872113451778713362099962996151121887060143624092611561858594002567501377467771138155357689906853064719140905643923255849224771717409362052344037193833501185345065149979467770001770512956556968759079478172278907561502045936331814758426739440729510433564308869895093773184474776564175273151386668186452531113531823908119698229951942657468583569131609769196488189846351291521015650774851567633341028759336341928867506276851878902447948234183995358156269414776603121409493645851444009804461429609172903519952186882512500079810131140945667757921285995178019552519409294937093308642038208961197296678422989171949695223157011732429446983250810101413755350376746987401627361340262519921970425185154600481677843430658476107481723849520871654086152694367565923342306282483128973704757742829782457715425798278456198874446854618480940316152948199609660772853038870315889627430636671065470442471973091385969844822116171644490014917320917764528232874595488897584642769549797901717625727710002007465537912786630865465761469962488298832510565557421246271869030091702225291881951943508656498755167398354996926386003716510867530981747303470398415887757515683878879477404970795877892691150739842041232267288948121487719445373654483294530211854732618077518346954877314300339318142003570545369531755876569059788778339756691345104840722803893936517551443702845700747010476916859699478299947471298417567442691708781220008897940382506110798418858764476972482336098258817562220445555751381890194797240812330253389272328191842584326000405800134463312522481666617630297009361790396274853336424859739285517738906500865419022257036047725623517043263517033575591020118410215722738756084414030646819349174047783863673765396318184449492644150822411498635339951408378081984722919396903160039699596671245200114388555298561447383004010162404668918099596450499512136911135424772559777525354412249300373772419152309612926580826210693593952068554915133935963805580814665710379238959901045027695994066745808502518905874545686633573115520145972084401555199458062201199412928855717475826252784148149401371296742470732442191102238773752062643919160913871704573086181220306290037975221196658737910254033653285658883972753409294828652259045348161437185055435730979452892727552180616551632846546300616104531261175699066244249315297765359978295512229396889637994515211233797786525663943014151028976264543202593425237143984329171514341159047075873245896414444661417982038804063605738597518228980804235215087637478509194838957883741087945460122393535481734972422148334036656837494285527203220811303264065742848073946248822718272396544388065205686563337318279641480562026444097967601205488186937591383066494048362874841027971811881217600269990403999007135017395380021874245501160928604925237115484886464663015202859720361257649865858605092974319350745866896480766892038311058742804534341797633187495685969070693098210623615954034320588682859154953953739770277380089674791984245000622120439998487041063081954161229952971832682674069323011086763277796805240830491221258905014698392812118577106535002911505641440213263615170195183228705472559586853756890402799187941318306737554773834629347700490929129994412982051260719781048050632511839098284442482535498805414197461050507218956929282025980427832894715898992776164306081661281178529027457928990790667631821082903839193789235415032378264318591651270158155967606164286147620730295313168211775116290187770936754939657296588263912558554695435113741564977856553227070463490156830789462461216635078701194556959641649045573778086790742086108731209585179763721982831574396793437578113543497904243893722170203373820851411983697562463678421488634417154298122824183650913187547992830832273927530973926674786181499133768150518948686673659424967377640016180199412713912285630871768501072477609646524569344746246722780281687538365058906995014840791366870601727589816717663071809495832933080443774748295053297804597426913040221993779628861546528322227589292854499398436053856264983226254047698953901338702707915721813623647495261932836945529732612366919164919289797004589723570848728336464196681290431198381286738573658524751443074532658840898141856887794830884309641370505681120416732205248652547910779105485477636028919376113232397294297662306388533030220838741144982635851082054317168476253974064753006349211194548664237514867312862184133046904707206207951070897870471713733836558263654597103252145395301517903057280590177669929174317154583633046207220819929639645375942190200925548892204796927615637521174451266953182356301359442394115933911211187341538774881522537895124659070533628790324809867279527397100665031831757690718792894045992083272242613624612088887082639256482606984126113764515050781513933673748245567332080860127497881472039296839300403413510290736421453298621430284634421003202282682423547479690874390661730466826963145209806317817692107373562821493120094282673153435747436127696083284168771646878027634322711636315848440005378279562815868439721093384107146262465503426804234007040219079053300848272101931864338801121529920225835091798906235150000042290965503010548225120455550472150334861751694754509698449464582983723768641964967447510327515657848692750548321849945753315177828588978841815253617625868223965456566392574554438249466519909387706970833853945074218481543938614483820254933522149949494387817319585831876724340673809658436601636381379729837707635032242085211379011475352139388962402965851113083272014299326506228624352205936139491735045326511202995804457533476269164774885420716079493629515618295382025851861388274582592871331523492666049137966690606430343804245761683283167815546831258321423044398215532289381945216976456216383323486417124405133932340330829280003849843656796524359423235794412076417367717170905263394089379910802602034854192101586114353686492026118473903481833686098207869952572245930416538991394795892104471067146579013955029787765541423013512743445551954830188111426857892515562346829755508316924458943846960888237680474096140782042010738013501525494260985780551175517840713230715435414637111963503309634768695362158110380054357617530934755117643507494429692219221415755507793624547210617337133057665670942680605203845367680112132866685026655141225941740713098079695430249901055973865610074066842791579295290115681306929784658342888029989604236863587479403738016459808949071965031897847689376539208094884155110800622868459649580640079341515379362303319338806574690929848777085841929154803699027526321399526210430975371271770668564627873325820738150444455299749435879624820586032198812436993712447755090333920024025812980581636660163354491673450874617991503226209267330294236714280360419974926949389460168327297005488205591197683894577988854814219337001199540381156435585358984907085991073491408339630386885071924332971960323392014431688031303388991803871340000904259461221243990024858704841301589213551093964647285218491011456490297466995306818877042691874867573507408061749222434072680550026070298438698542623212834365679328628270991478542824013044464909663116386197699713822195747768253979755588122778483900443236602358747132257740437454174827285117499041593824303381027909858895493196707809922162316649354417016141322726286932982426915778451383778204965670624250642452206605109288539266773234163734007609985558826482687885526716647181321562941448777979150999173295318054702849254489885975561424994565593912693740359247222175508662987735016583397947539324833641660532660506790692510713196207567251878940035066266512385287249065959033488409732064199084132365712820428027824262156722663278869958919986796483109076793559426951028336158137279253092817953460527416946764016083272401854757735828729208615039920456546458785358721690255843570455817092986047357077419653655600429656755000130489255011993683551754463426741786865412634612934841126309016821952473679755308054192932356181235193879439182274942375285616002413157954879932956462490489778131188435358216745986089402132977428694819876262563154756355672159393985034413257645430289319479498238159025705377839661441678112254518589210851796969018199270000850559352022766833242548511709082915914300293398639113383185265839818115031168223364664679837577995388014326611596459833712764458729760854875740363724888457153517699481414140015140906818090102243821281867761894396985992465729850249295285189348096354982216651582038476259834290639797046059484431992993126436341235411205364079749604707120777613086870950725237043781818395113320019246174034986177468683914892502917238728929781796927880556734974413790645224773988763214728466657099349056739905143988301118573669676064867424335574829168816767947524393634771922595334456494846233306408525145380197651394430799314670872622245035370842539364861737431408085214478087046616442193048166987506067311267574378329319817930639573826483362899912811546530472570126920425554220235232371675927623034481048123570780564593508072215546662282396055060706626424181415449010273881252070732979593573036983674073704623663359886719818739422171433723379215591775815979670465203640006022114904784204587532647912330467162637554193666892400113789207013551596167610923913284734443349227998118962714279502422758577976608917216187417024630016233053248828093643465394759764961700509804050940466969354500901236715360262197861973122229134049391962715847032318402200862296754568834378603222530247345826992332828237139795663687071410035776560856380230411993432842835964133474249996217440525228910049340541670924385220313174970026284237956165718350447763659747812076803484138899517283165540925834887080010609931801958635293632010388691595391425840821315804849085510772051074809559994850008506906819333959411521549792622595633100667897742968942248452428844901496492981431309621131466611146289148739795529333433846101302175203493081218518220778608854670606846411486897939655227253703351146178380063895033213045390838460492930094902341532189941707834460877351262069931684091377287796173370632699645381193276844050856687828822485211339927198706453390158052655659084497149809196001780889112495425050400350670355847613869802255061979168884652057658022472717496827116588023304049507248080454437124167182814617077720979584748381560328168952336839711884731565404379589313916402542002162198267167813366966100713174572056709057303584318114465198914358123984297722706941709827221043687829936543136874436091129892659161534183194425821676062869194960625378338863423642863360245985460512869983328129044816766955592525755019841226824631257526110530577179471034274288910718679279990746625853345273417916242438328797718182274902430983277905198469359558804120768024010794639633334379908362895295012133427575049755164871681180004316171108660310436311036662264720729908347086302064743834844416520862330641036947662837353069659198134026529981573616539053990126354120407155849612080277969733839197833332559432422722923998166397366504244011962091326393487047112597355223336906870407795618064121535333274481321979530326363059875477514715287138037827524569057353736958185986170478703160920305269598614136133147983644227360929729853678646293121650718215253160828225269599538323078099279996792667691320826564597000588693707847560271780390707539313575412146070665258394356806927757808994648514729639732280299920130609889862224519796484886025756798361509377367550924897205785889634914028760350223223865095034822372762736115543137017023784794674969296755452532833379249183980646563865272150506234061713350009370463732211826991018906531955373755260526326391015307980984047995597368982537104405412999523090238947669534733179138243242985430730937371327925955643293613040611235396353624771579987914085724924669694581679226544038232471932718647991762249053610823552802262072856477971904666861635921427032377899794418301238548730161221394537951789195662756419645726484296661480734641073160164157362738936224264025293401822033367617567495173576828236955779330211087674813998377797912243276137553024133264504219299645551495264224458253050682687937575854845012860794819463390145153296684153720951456084678795790423228870183823847142764038973875935115240420227782083847262443446512932065130184618734461415020333208254085063659525944368759819981500759027769495428555929525724266343969825449766214616328252923104275519019423247275237658660806999916834617795984920018693332671298537357865757780914717436459154931757712573398257408891885958991743976436447588878774217728836642628052277572946805949340718121601532836368668428742097709912452062593443160265277705868661570835983534843228189082264982295649650194837219040261156769637077317980651545384666645084652160024147384921944119751626063493626160517552888818430549811097697357391269136649280260924539909325040189265190242372668926939812710975559878421063399369270832805745878325918448775360662048115572879158065571986867582571592428603101787573759348761037034490209670085298668715620496260918236546500427173730431703769233859207103987202120010032072321817983927069610273001332347111043437755097819397560350691490136050172900508860232980230120115224848831072732574645339345017578196807211757784263059602921909850935197196346290907369159912469493903780759949347174455920292462314404031362938306673364252887925499203855677214462631533760795018243043066744297787159897208157571017139114679878129725685194788277973284066134640097415633730803933422127393320660513382864201743109312085700535408879061590461577037747260573082320412334147803720655544340435916587340214379345982318778244849485341046273335528706452424083057612492617668634100966958904313339276632995045881687049177721891729554430216348363028661758975511207606609617083754546970841408009471877843002744438352577556931442437757986336628477003669874101345071908347329936901185099501706840049538447869642923691878928007391145620907283893263782560118572003686837966870772335050352408753076485138808953645107623320191066047234618673124143366113703079723412357822681426342432074905636720509839531703016379860922527133740647119336895164537448824870571845341390963039425448110957873413934305877227449167325286302542740153206166510627923695348750953229576131734025814312070253864202614721862292928851322993560454029616348835914722184000676067063374098339851826107081432211332437551607530929003759759598175912041117104704275961723807881994321122339947826538508601629966278349487477372042665892649938335721448276076030761538438739092389690477728810437245202828717486443361840960586984864926018989264793115527538953273296343617893699053882560996276845215188779908525851225530459826159087951060707479004142547333291015958083893423192377225498984462501795242635259636493435891977958353976634515026274312728730514198468534201940881521269449213050746771858160752687163706760368429259776447402342369586071767782131483944162050003176585544663223959405538961038020420637937592742241140056598458889455451320693078586281581478391136201382402154564829183245530614674781649902735076936798525198954655502059039430562279714154598089479995017260832868460791212678813038932246139905323239722843027795462431444212477631112569790314354399260191425127680314761985644556894025484499189132265283648753937331286696025058257504732144522554612047309261815235318564917849256275743672694653170687041765243921169738827293844658181271656653809301065381867745035481766559456358559241394290922381810847761399564679959141965809155226937069181081675390566718478597571344217880670110519463399841395815525527758518250139722253852255211764457106902096751286220119760298383404973666402209113897239619430663028326083510023585048541713496152997798083241018120684496818715938547232355667159930741846151074462346724160782242153690515372346868679318357502929352748459760048610595814126706347908464110018076180176517371842039643433896899513227612261671802499671393609339690446109946010879556441765746768155948963094107899556320865165398873743279642002098051917144836300898190058572750072550442133048855392454292960983436975992570046574040165187850020526938491401991146170385296828483991202084586781172293084598285550211584272033656758505104671771118535909439327683364470421604796594968483528329324473983819231582612291794605582218371360265335096695127084144695591005726068341413636872138421146446099675940973490487701479711103972204769289869490271738993703415677569377662614649313464207536910102574453440917720819385346620597511229252256938576511450619103267952595266213659038043374210708693047324483959714608181564819333426763720543235961985394855490142217241350946025799542751308432010583842877978131509691682786837246433451142862472879346364901982059881772673230766529927852520649217244872497501465391055922283824479333501611485352726913825853735108323450101039386581776584359525292458860131961143478520382461393791385032350941512894985022616215763706356631684391229640350820189815171729258322986842741455199221138915430053308491240487087829660947676409010207379380889025815776715936548965609739675673336502755020393489356056917477446253188568971314530909500009682525605209862806416392671997421601854127195810112658529097260590096949251399527608286232020259701207301174180481345033566609032246176303369739850648018877055982111579499481041935628686599652078394657535159071618092477030069255626484106745022720288918369658256133256185798195798051023549326022938611320696982099549734100592903257912746784016203560592799647992900426386151205711995320054231326205348470799360906538483884825030043308904552915840831891623892171429105449166750416346029194208304321065691061455324616124735627061532863269701444819649183654420533026880484511591892436682695032382029177954156079411609731213254964690012533621909727479337894455162140543098549124715643985525269113602748654792502619909834966620871914010656529333273966403079182649518793366280711752474494110202142564619559196113417726897882204840682551584112172751511883709911958792181641858798632820356192297000237151028862389082201118952692204223746827234537379467699749201264902561636520135900964954645407968411395979907971764021917935588567610463955216274686578965277059485473915492374600205672512869787853433689527751259687723383024444125341145283713077024009488178802221812871990498982256704911463437458355242814793853204091190728041504617356937914513432434329397780182213332932944787852961149682743326005631326661738063351806177715233318148773111924069721702578597235873825528176266614740699989368134390476532107687157526475775681058139082404265895759875888069147718141610569129227988040604613932647519250712740883477749934580476158329476779906505093130002328989066915748143072867939161501369140199169073555408515149155159504003253636628085356948982702540403145613966531934116916432936973879394061696721082071761656746309967360790707360362560058868747634128079907744946770158525540916928520450688878584902441562084494117383917971090669931537319421822365513224452524426891324122000241838181487096822118176758179409824009492162399909770718903736208335807468501245024460543152704602056918228696935326996493619560499652865033577172410476947940352634330378479676575306887072700509893766181229190167902063517795757886025018494156719480744897837971943166071562307263762166045093516087561553613159056947962213339368907241564534432475399014372514495634729661559778049513279487125922610721495238587824534116007214326299319053419137645215096165963281494967873284932218790623930125914466540456573617160416960573805631712535867087309120183868978063681532850999165678779885857438795336486018133173033022228004194986964357572173817416120047669477917977548064272410773522897865937551006274701243813334063311525854164544668250116690236456934222848782523068010369818603010507328479735996087763056977725976227512799664810469108118317054805592281931105176835100145155951952511151877619222597621647443478452106249848558243552351729436266024604682419915117856887661293154745488586073993048285569232050064093666314503197648152682167942666152587109637466217440197702172905069568776406429691455914891234539187120777060519793921072849020910282722872904283379799208094372530854161391706240271486778802109035084160360496699571047490827682109323657676323033571547157751493635791211463681161389120624394974468886791099372541047558804557870100753351875452673371082749730125045258156479800632197333949165431680504283878334642177138046456167418596163761800200693114976043577376383911973790754484531843351011154831128310734931911963138440807813240279475607964050327437397768761377988999221656360366058949947980750770293387446138728242724534121719337914471558441915460527922679177125586427146262080343741241726483245995428015408902480058420393455426833039668788282785159542149358245740782896238590373234190717421509791174647932150345118449810541400596056901693469940963352333100433715112219447578476043799592344481675332273644304666263971992071380157430065889848016116504150600564135816328901660494701268851283352650148127364241463297371078706495946758766526623944188441492333816694267451974859735658464131787352304058868547315936639284118195062421608414110895675633060268074327537198887955114587903876344333469145213647231988228755366983023641171428176325885905972470944964597016002635483466222796296293764861845962022740610883284843276674388298969614930989851845461353475061939719943670950707065313581479949356584705156142880126278826313898261774071198988205866483562792701077164804916353373833232119677361014970153492624408865699346498464726462848489957332382940119793289608697454268224120836035250824063506003138240981810113454960342734961123371493822798049563625302164951653542658775768917740993378899746261745217666293095738698907943899261293073147680563098924561345029378216259719332368303278728830471434365139136827169354490173380799446752614868595701170948087232422069897459247531993782332298863181368288815652685811214616310312781985049429986109967874945309696090270891301179763656885159552599927362600540414200199098375257643512746270328353649420755405371001714410983076426425658919870372265434660465132006046281692530554475712535087858203263146571578600733226932464612336266168259909815300089901397738178014674608486889651466509689576187896491990509144485404896823970507199755927405202770752694677461662780752078012427612418731493065971615629519099109249665453902933381833908418488948321897669052403591212064242545676813679460101671790668680169651482510589726600638609218562109370253184041526788042049115244589055218867219501916716811370793919959961951676537165834337942915636600791384493327758026599754481210835346513448762095612375533980347558437304092059983836273524144046753402044986491333544899459900611534140476496269582072525943424829091033934894135751911456561349010216356667983513930214734966730302331801729260777767201343547041940089766319519702353975366898730019828228820736742130373656666038853670326091296890826762087340657122078998747402057074961898808148102183374902745597895639748147638076759691380478413969302528446351081746686243863969820970376715459511358759238169123644579115933629351691543978160115544183288796951790002814559928151423987305172624082652030978677117111465071820258581810084767616656003583090488853558632101363836709493896471474885707914151347761581455202073811548303641549596869543027186607365435330187676599009763788129018399181672713006570171824984223614540872896431524372923037480522177211345157827226167197940213456188506028220724066291433633927793757465379558984633410960447569874162136326735118400228503633327496782618936500500860466148621277195271581558466246295585648127090704390292059415030240441943502008977237659638938210137689678898498932809117141065781208006650833224503296642765698416616971491005570578882150034317214175286404205568610452510936967907999952052053138198467237977561044516577013162320599206504310957447065279294184282757601328103796736496992490090725799313258562483351956094894567633081070806863879638891768921234608275513491109079512791239894113895201465693379161173658991367239713676797860647981592499777303782355035376947744865806169670469937838352391694736754539434193015741313620394896127998509735932086531267413072229907344073711071720083037993842832362983491483329752776064967723310776170789839858173435634553958791480544725949564273749218195687540788303195111343583367218046405744852223881585024968126590301139210921859544386477403654958578559234958932381554790183887732734303425103837207111884126956271955716152278129387435849758538580342131431687597338993521235456544102626600024088226694438810774185052510518883299457158633288389286695487018137551069451275537703110005362557053132702645269405173182871676297492117972775953626794748338437189068494221927148854191409893598780297978967027277052232501545763014686294305108245281294720504597129925538621416609659922795388949035795953899848013451186431842825787400853708474317609878651867044108716892954516710694637441673844132384109049312734244409659262505172613961006181279690762932568810599563648629169025325835100299654706941017268762301308782540478822381698010488457572482738494206134957668470194505138588820902913025088002026249743528902556018156960883257230467999491527424524180471950982498159657315578875949337347639987856961751571880684829267482524282343747389796729570427766190040843734418360146945684125311186118852185037194938383186614863161384926659413663778499755447666995607440866602897033247696531541865423975788622229191279261942963870550915621078367491927895774535354783001088619374454207286665216776139986303595172604594477869163191247373069416223675280250860544623354511241776433834544078919678382423237307769250542064549870235917427025203389415169952703311974473682497546987759566071240806884489601042833615249912476343178629694909985695369074575305244252680591894444346209245611290250706245819743849701937471653711520329063101886800201153476396285201142856148954491895011832224288924050912911826411757277011982612435793692215101213636993910292085608445585076500075902049515973270176753026161791921557219489780168158486768341182538722373621014676082187661459936190138901455012205264863597626140807536329606416016908719824247176447814985667791392192123797102036147713083997709634851523924570646228236741252085083599009331146872891015758134539453261583118524929545114333508374463839583651960867426641238701590627214377073965266378926343318087402874186484315044815494444212415710188564260822877093472220797169926646791017819509635763938665617819289609075801756312471318044769284264599765546560193764489147899980356985059093525636381470576878529838487920552505736775316471382500282272329088542965814002458397100372692954037055962371291670596214477638235853403110511236519779725875734426983083938139289901455363309175158707895652753597524085581142669706226300259998786998260482179959238312601819431702614996405255051858628406596414394988822496676403938986561612422201395607468574170141973179404790168726161710850773118371698490174376660216043596524750263133378923904974136806551531745764783169597511569564875961824800334271102127228644703528983714165693592974012061966620477172160503293743307325516958036963202396358530946852997750156310027759192750884042248596738753875845524657553057579437064289230554794415762310238001135704905127375406383917073737640335109388968039702543229601453028648616427579247152605899376703773702203337553327998674719684737360423379610875253044125715181175109828945633054238470409370770090236373791366301960939154333050848575452709465176128932938136757378356698624104733740542844690168073789155735059017034085201484497034334214133800770844797652921570308930780048548594284652365665334839416669712225757570337712233841027596476066050921137305831661869947641826006834782692672874229815068066676708283516269899778213538304127570847259004296471093657464950546899646492251942458525388735844268098281433585510746546055540732544569396675434452446270032634061415510732133391489936959696502216126666801414197205502163783881756400559906967368778488446640221903994642305337696231030358880247921875621199815349256288974906776437120825505537324532124385179453998376093736403770112360858054281034325913924136479804588898554074342782015560924889489576600832179958265086195718456272257151553564692888255613812258115397749309977271721496993276483307662701530312329494238348758527031432665205655658554921020676184404010533369286508358239437553369532286197518232936860934795985218107179341079718063082660960499499469394792115716271610462601087251520747805771933922493253647356339192394118799049940506679015215589693734072493243693337791911725351041557204799149227875435766534421785009709824678709387043225652080529872701744364560957460746973063227011831505301267377160268292360184863280219383752650679673615810548424235110082467808073066681277581448800530012714611558478566786076486581666312970554742091084886836214059784992647200506773823856004501213003054995288141535624134979715665794711080409255692306856017553462695089998630442406199982224046968988582946015107686288951957569970766487147694216626362867601707021749304246847218340567926707917168609318398638691617752508376777430364181662084435982722077299026920950457252975463069011243973943314862183662776992179431902995239113270793139804034557287682677510525140012189420370932146505027229140459931733079175499473562994118842187783132190666091695973544624440362952332396655265572460611293250030148488196971845229738010085878089470645340465955928145230119032107610838568650353320070725047893938025231804024164388244186380101409370504552413737456316136685465509972796786889172896304734245596359476828822918645042138520411037892605911109711231087573379035036369327794291967129248514976464180531453619947255245225224816268545805446561309383936943208226318094100780089877229343488886754161125724924934960040288566234876392426013951493285896159915287533417560194548003960246959432901062805463068784018328647653687235422378789308652514739290606482513494561740853806170213116234228964192180328286098294393493345984201126641796024885628672702558749351461257026185766751741663847192224722823541922096141570457664386844230197090774040060795123864949497127215543406606152388660156159714430096498731898471035560115392156919785521325208457390529648196064093053867767457143147333625548054248196050881840435540592427370563976421356173347357981128954472018943087817209777495251659046617968124349365124011487190213740568227004407822138797630051391297705480828298870473682982166061036041214801678888103329422038606088298963911272398603009285606425640278793860199594071690075225241320527061719123412633369473066022527959622517421374925317339544172722623636831222333023198577916392621926074689459325242918141210485437316560074033615656627343892763553508638958542729157372202006638855232188405228657262629272844477956298696847543751942991768857493324225515192950023132505340562950506008386161553108204321894594670311820477521114035366090899673071141256869533943125291686473831910959805899931552092295729175522013508090673073402540825857752638834272885559492873049218945355593531658375396601126685546486440782272539145660048414282360386645553558967459166755104036502131063610846192513275782401866853535956162434186722659475132324606853607073265002613145709962138543969718678101282295181851364850428093952364427782817316730094845986219582907825531647056179673335279287461766546355955711661121403816537173427057413778310868665969622027447189678032349222472360549717654696000910630151781026103141396117652727144020347566331665563635536839389712891319313910758296482224950319199867247703920470100946184832755024799872025266103756787077139047527707416720493431172074575342016903692831307695495019588843958866156160104958733471517981719877402428691386165768714356788735304360163965776404136100148927466583138775338019763477042279988518766577129704181651884713088116226618955978274135634154316263095707172455956343666325092548173066475725600611561068743451569186026081456474047818998882373974798760313592599194220558322353659356285944574223020693427980026238181929262221356801595258700036261940699440239542763999583041365696667261729911115014056432534484823427310312900437581657752903689648856545592597509378033084782202438611675895182941007505589165436410019694216331807179321928692358227448526888010186563881831876891142872280265913433647303805574345698054034645174381188399012274063475440069831676039089022354099300424549538930621951203788732822920256073331787791867760761946404709801249396719230261385197753833908741413898254808504159626625068466648379433264963878410422135014334367847982532055558164772571139044448296088407273879857955572604203499665377434594756463597208597975872365170975305574490812934715864436573983834794253711019300613281666318091825867975886448637433671579364924549045697851473611471598527279946104491255023609102756267960913668236958439791009631820219814586505239900614671137922876680036346747290274028646815603260680458987420395302114685668221840914942406268643600270113682537888826920226617762093665034110126755294770168380314873288061088051559453207492377318353775571124583098007929629718671307535067313057185340454753695735661354430318448542569107368511675257621191405861616443417015007696645331272579255730589154985369971022065531045002268281786982778899174015162675534345874999367945163445808591908196753990357778742917365052011606056311086704541322085950936593079671405875428072846564818707265269986370248500765172308830297896344296237941905565100712535614040041499991505112621854049988134942031992829749448550951045045432501010522859549024285439692992852846664095646488675412308675797548609977582652701040007317894366047792390908379088688301484069451743050150911185796981795484669897762725446611053745886210872266820532454403074139542009903812200507126661468843262255765937127240236251082101725801992609013669826745866357639487246974119970094162136338954231045126975421292578278531030031825456712385199897138546918822941328805450848978531432525622102390356259633749203553408974074470403086852364680965917488450613156051403781700909553657223948322627723915223202714078762174412504347664841456213354509525623610628369006046841439329574486747636828216065448403182000911556366355601674877290359960766288013903758001931806638560014923347215207096213442117149778466187276361831530452961266259812560081135129801675256083736574121571129929546834721117762408766722656667713844917715284587376350043710420158937946588442813459273371032910832395365838102261119708019793621618334341385560103527375063315642379639792779513153668392740552225464709397749218601181972676320072102405998101019246732523717272006175898352795501049806007815560385106590112456731280369038256366911743875097195803731496308496543454995121262343341248404669385609197910239917398590915732780305030353094120771256623867893005206354350904273670326749977505966976166061771025624313614544568539919296809163873406583712473583424105593573259854236036635717751930511756377357972934120771593586123189288664094127891417882532109171730318362478860297095778447633442077524428438102869543003406775609836402417710863114426288137028774863302412495170444834140120694418500381686041462988423508332659860672528793429433466637651892692866963219752000161386332712283319185213202219285638666980565691971306462935651666334970184710284615596403329953203764698893074521466822015515728790364008865989356153287995010443669849728270942600136295931937581544574035641931039986818482130279012175482551869424468032462628992787497842846935278428860039564482759528627058593657867860704823831896348917187246804713639895086379500210202300533824271205884537792095560822241356595372841335340693697423824164206872909821456829902147770425927307333411399877128054874817674470331810430660575944885288265052829452943912145442212776817573621487327303654387103235517177365903959081160706129414683772350634596706798390386338007604228798390029697607835262048360605014659297556143244568146578552365095548020932996526343176174094778731416414415579334099107076099461254873100262352937882646015416147688112983102584251607732106743022987943258420533236351564368935338849361553820432028747967266907942291849278241977206598566570732973520216588555976413974267455079845202245501589170994310864737150057723055726372460529975470018631410649602625346204609946386686510776617709850400309733489313869761240360254157110131970030652758154038466017857343334805213017782431159904538797367841429176915095911676523335679563787694829574442442611140303958264117222822733030764046828482443777151817225136829329082251710564447928624837771624106074137765694299225651988921258736893697609347215574989435425433580597259219381330803329459017029652094934826632282022631179454034855407292472073503954934201143835150391563095183882875661219796729936115610503417025319512258002150273245304425778260961942909336452949174319172080957357150492889426218099607053344451767259426907243125644384494600576889687200250415786757457109615052894554991890280975330843245095285668912066986441044160276291264499930202289071423933218360333597904066574579076647072122882262305511131887674129194545026971324528412096710190757666945839236123282965715764386796532833083230983405327219836923404025495027410171660629369958396417148705791954308342921062048572863325456305512871159135640286931783846059239400052483705836834126874499061857106136089259394716100988673296516688760555428026602557131792214701608940022262322556055082961807481222601899418664060037546557015604638807065402857906167368475343697251454130336710697797513213331621437999204746768873414812321606386589606787602844139768083417459339419514319302809738311776685971024356824459883206518863210610228423838633786817017396853466555587459263947716432764579523641120469111679234040960225076101775421516252979599514255800888945897383400294464540816029718707947665917003935037472434101204282357273144928823958444526003585609317519823927703700448261261908138595654870570483601346371976037900790034691563233208083978076576071653974117762433940324060659565965926373232898526420074228696686680950646513035276334367467238641104121656105811699862739142766027545328964722968198962629108758005326157287377733769329085891115467145213478927830785576452247999008321509932782423372682339914409604275596063889342752055352308411495050250539430413428555363351109709461647373137247358982856246695424993379280635904225429866998922862840765493007563199629419253508954209830353552235272779133348882667494778735436424866456417974329898201894747776038776425231822576558096994756182048353200166909758392719497818640920722934526417038092366954506555361601900595788558376109691253511978506934466550337933653501836224544544299331365935840112506181477945986454168398875539753430340717716244752520818064987532492371749125349384305883663676685604000798339401777832747191783460159560869587622397685860372975039503276158330265169437569631479961925439841512506302868341085258079851168088707842443956761143264744549795502009188091108043284616053501411256191962241999459636453199953098923300232857896879598505256692760435705347448841920838016674648029217930686820858660003225974216567394538951614550915114651988719357238000810844454926827765568463011037913349731276614075761039700848677441067274188559652953004763950892655964472731069899636669702197709149411238732292452281057154444891132074365758078139541512636444905828245815119945086180351758063358667105549398232541789773676255442378336213665778423734309598348073612643811913533449392406248941346503161477212182011931293993843056324384345491701576371867258215467291210988457591880087435686266206042385664477843463341142644231477020055821692435849263211354266913448577774178805070040975036474706739747957235439043767479550900210155911086269579744436041895817326779558255120913107703111203549293955333746167432388927946572474698009094214338963061414327961828353777180043307477163059763440268372059950690352691163546229824641176049718947978815158958383478423035862065878280855275233907625475267781447079933776580901541519722195053221146146519149264420759256600560937502865521895190983244021250727606634208662674607625924525675725613538010619690665157076006691550175158158889035361449047529045408728963058941440720657432635766837713075096131472734945552408122984403110866712457664704520020297733389244584315862278209182703765844660707198997699297928439637076133918775265060057321094942366185046403071585787096935143338982376429886524577350142286891186954948066290912609406474783398601043358319180536985727642506603792791684268634562678888299677039559343659245765499882749657013860868102276660171827019628770883026652788296564868924177101451288559733984146376543212738969713591108220634508292961432456190835868604747521202153653056129026626118399128488562990011882794757357233510682526973536746935847006011064307185516604847748491695302964651340323139996947137078645649977508309492288331093009153495315270401079020365031840784239522710240787538529584665406800843442374010376172638695389505190730719578240888295275210142855503287091855214863265833083419943812589811807670931230927682048173549238876885784561169485713376480159361324729496765144973611603590661351059174233117006478150112776563643660288217627350174144118719015099928229743953872799146832712916820880556067695485165421370291885870932003032315001486224913379230132742228726414391168830148817032628379659757491266192257381031581486985932577708109647040000290404560221498797697044514768978772160773264641018283571621188353665469576939598652570870025435132672438750169845747156156110449870267260804998685143718291143167344734502139690925002648122810849677503837429683079147550255409935631153704105268106062456718821009272030385528826914631272903979883115977068734496011810082412785482583605709171947238958786460633054700025831778723843140453964908159158991356040566445833039426400011935124588382408086519617098897150878641615787798077165824963626276345510002250886744417292946540110508611586718777032354884709289204989432732003073483578805609142323772624729243496972323440658906189874461193283986083942791905089953566905965116976221460964984235193220216172159172877153608859512920455851048484610894571007866772967358978279800384738505155207457781213994176759418661755829074138014930547626355056908510553159380201234454281917023988071883361554754057578296954881920989951336129500910409814264453458235642832503801656940580535234202515415367607918449887908564648465525242852726382214797799695146079818294854440946195993338395135255835338380409224302115302835805857769379898480488675321942490421747675750440665192133901042484897946087304086963435012835211555548261003549011339785197161904593195928234180560799041673930388506195994966135582266931155444531854469657469846231997247508172676281299126014862625698503186295555812686284511151743384501464822597081676869661842911526881110493085959157044296740305498832053322794893898484035745246528647974984965998878291824274753606833504715485088599192329423808255303872820488715598888521936180540579051518735288099328412102365396904075644289948383135389749041399706306351370111511735909064523557571579462372825142102445341638516447062765735896420938531456338687566704815037657288346161884572973146322604816500521558334066742244730224518471378325476179751787249763754846490339741137491273574413369058448507145026289651163486770744875826046283700353460986411330399813273457453988228113552809578588116925616405528139165075776465842929817857454920150888483350600516177083533693955253817533466022015692498699182183473747263683221170798756985859393830479367616684131787572710251236689582193974415863816702726548100245789970724712427200862524924669986847353900347747526255569237412797908798779142256497540624494889989321543305557631171196841263277806924287001961852374552207065115208381042441936937735350768709240616337339816186128552622104301509807106423028564717412634283592471345621230658015025574790229699054664897443019673627073228471877121204560201556019417639973355829321817990067884067864051038479836373721386403739703691822304934379895505407540517592445936506619195672904123609308334702891185530861327838937899421402762438927840876922690025235439074518535264660634679179253607556429786975557892366280690157093902086392418037586451215430595019942583518762847522342694362503608181545500718297728777492547733324154945156722945470341956857273028933904804000893836439683409468179136900084764664387380107843178476140717576162462422507391190476061938335268033406121296280692377552975876215049453768883468401418605670215493453449547943236723058970619515942511929408140754575349626325206555558061745692909142034877776292028347720199154698443489944630186052499970468039556921394547452468273876511094450353504209433076320961780062713664919671300963205302810131062015613161580348096291149379838833534730710834287410911425914171245818298170544502346938361237110315128856586111419706164658388023872976627919114852556214968026395448261745956148164802318010688066741832015393442050188512387601475603423729450585892287578079731873420980186268737848499672885087200075110128904861115939479209437543949742884045082534984145973467490943046004067407789573727213732120884370712183008618978765736774297021293421508425172845725582994283680149167100716394702365931233756201209429653457491750170302174937011517886915922837130292237982684492282500682095467258709625037257211803337816726505059449016873651013921184220262391681219489399523947384836796090783455950574690694545903665518636587799441462139984916921701683897698479640647728857275867256326301546986333736201352591217122927517890182177600351583988586158012687732731276710960492574475162302079763791689766987151244824881532317375867076863827261501148763360218317343196780207557035548892703724047012877553660945026525892507031049128586926385681804908653660381342924559617401663553436739070680512404989389002948027603560506511578879857497002577830269531595130207502725808584557839066909324526483927104100467413777313019324117560995720271776226543940233043340213475168783530165391782466811524184833952694736850000781607532892605966653559598791610917363932967077910185742220594449443600034654170136865731635909950476374533800071836296814659098456538951811645631799285248962760652798932400910211698341672349548234530236129032029869510170775240558875769715024557446374753935120929216984374493941683368585646741294367695411959831334068236329208942233736500486936960676473356874447942530976781008025481596488240382405989290903552675498221599729324167815398238920149736975572316266274941053392507942322848625457600271563069663361455787703330674842324110342234788835748219532326049016634596464804743854533220434070714870809777747642027873544454205102509241522340503511317504076425195550070042970509717143845128497313744056645088101155804013752149794817292567937105859139993091278756448334833302202209288423056439012136278355809718274563066939466340941010042513682711580555055327057765026755892651441415175664725410219649577988148727023841938799123791220425411927572824160357871572034487610575654355666302163872958174825043819702414253527831975531420711872487836246941904897435796083013176972750700660446175769779835310389334677328045346921966445455622523184248861291782644248845744343842471828048248908052966349570617507423874151412474884639569355638307978443175925403463070902030844192712999099547670763616402303364903087185672966888551677106770174187486735679198791926841484904379037749177586911651924920233572905807409391018530053429108252167763510865281809028779184099978743722280174812113140506156341488808812245839680069309733796480227843026434634655226834477211146881883743613316275521874115320045819402079359498794143509869475736961450899118279630023767799340267288065125088472282523644314141884955493257488448554787075968001463768003522786655814130068966745805383989174298649824273072280430244908576268640377807805588437073884769794987948748271423927858326379133399248949647521535616978094691536732433620314727615453274645890673259538174492232954781223132974013326763712248508727466202420742560180487155754027139176443239657536214313486281106306278866457489630262198175370064442781799826322763775493777790440385457687537468677106265364697397163004810499986761138032808386964176252263653675306433009677308634804766636521758055527756905617515875053754152084323363229601554831804433660093849998621895410059358874687143788673602220922033490561298521708697627022860873191327722505149886354102582667871602446203836986665590302928110458775193299090318600156261108226410784842582578248739458755668187555420143777950552541909006223957285868539408520126397178759261797092900991295796763433318566928181794452563434056393829723472127770532360278695283690570796314676410932297861669620681095712358474581088355197972055212424453933847526408732149003033329657105121930549719188497731573897772371136595450901817581730158209694308481900045795839135937515094640175456358440875797216884615608102396743425829303794675277681401561048309000903515003164200449333633301261700283110709868608457851207868183133150541341821736356358546762228686183934227172700691655083804460256164850085084810394215479021652170391875768272222547958846909938593881659205889975094767942174196548005742588848748616266405027280747597961371849248426524143697017794259692208456085791833365293857435265165803602249190860410014409671515750424816162896903878092404566247172366619445205952325777366190151566645081748641270517777866298003450128229143875073120000049886921236698465528963760440874018291370219811810902014073430328530651251677432363808965510869698806778141580828066404314022050578473477499778600449708150513673301625678786454568225126500339452799812469216810084892973450188590486257148521384272566801651133652106584415746592537703127017818853809991450186728622690790649042217168248196955172894776976034031321971434506622969596175822386803384856895872104976164430991431502171230775567737239815401712011739677779585857531115392502876902038112175652843784662407488102773451848525750477147647154330216100019488204980895238641705329382658251961546510749384271930263542356885412750196972802028553539230036247740019618799263839980522638193893924017668321607089317828857355524985660510118958556469401940968116534426404859151994701787226131597213517401418883052351092393289387841275578055293427648926063036850005300528632157595339672306829337271449789874702093124668342856294913188980356624788816379623032532548898946562522983848598098937103437709821336838616279665942020144392268819638038456440235519080008415369471567032119253875382648558183641633256455915449224910861014044085769272258134723069313262103935285593617806321261432868703607656444344578011679652051076080001720154525362513026154172033113300502703017948934665021247437066402697716983485110139021254093753805597808844765637001440450131059870338825775950050200991179557180514210324333142606668979971275419455703177622167198068156544387996830139846760750951236039251604418940337898012621730610664565912958210989442325341406650084758378498781204885335936085395189936018003145447427372167174941865280504194482724280296751010150117613201478505321691298595152325956715715763823465526629333476435052984077546292571934260583209109187976268433285189187667606594847785067232342797374287307241122694939802481251929356960766750426710712723912179050533338489310081765040133259386594678613885759706658011164593336623750820195604929906507796050069514414947788411284880008389079585724248063648007234653228842972948607922805091250064755176281488019222599900766118295865442630766529626229353623287438756371520508208908700593741473435486693477785051604855912450186451164199588665307330809569215322627746178488265255908906368097532985281673607005678486084083642507810302442619164418564139786447931804937191072466737713078504898678616123964316622758383296367904159066817616748584789435216650082710215682332799051390273253844968398606735868092821241019715992207558100912699782298975162866940846835673491953003735927588175286460424664327424189252025231773058934188132781089855954416883927732663844976370512309471675923811087161224378499386378466756109817779486815592215725225406438232209108385090920239200794250985467198419291463203582073985901593353843000919602683021326338312809188163938021286041546085095422326870662219321808867890935497933684518923527542943210536900179009870921849259055493806075714627229493376602065889317490260967195396119256390335099693817514853061278355976788603158779267442855931393268523564107801730213576779417051725349343373135007536487951099320076039680657392212958124649523421774081702473273713435644878129553264421159196151770796574990580242228857974954486299818226352066944404589009969333695483137488595644990837838832934680318431576405998174691824255517593909954498631484807967619199890989773042664141256600078294427213071093608277229955202361995527323558028038222330090066377468090970984514122892000871390172530647830348282207652648289448738708309416880007005435957805902892481720240699254405089486517579787085015252032286229685378583315290021129555194969148788592456225455318613426424243993540433389060663716174628584347435971077266914459327597656014651527094556826297017051388001414830640108131812843317000618878490843426906085005451295970147508999677162857742620928306852188975147301281532367988357777247694560873080994858679023829367173781213963348020963847356435860226303443178563463638487337421388725051762953298637435099343774240971836768144697850050693448320651889336198633337967876258095134660210995912267403022055810064430278193949626088056578371518298029307180126966084688054176462585513703009379483601794094650447904437027266102294372984489769384503288709841231136283657134748985758402036552363073886012105366974198775575380359571680638392787070838847942773479369188509728546639327333402872384231827398988948984645853285773609341038017316840927744494229091417105006369223478420553770171119938218527611910363864552272893940546079704942244321475745171286415589775827604820581377138829917246851290781468760007317907865618546058365768096648560015819639762091195438341393365661773283485984884843932402124107965659604945038903129951556224273272437444208551021467338653207511511873120272314742411059782746439076575611285956124170889816533031560220227194576363860475447872778579503124323270506860396345061989890355048157750109008786048879372787676542181997104535779548622047057321368624657804485983972889689446159863529394185258146240637532245618784147044092364445534238167049525228646004005145676432818434461564444537352111974764871752463475304143918803836593991480873081692081427139765514802179287457351592768065422423466793022182705284146090622565909497585316911778305417778725128743106917830094309099490949210832073362160348608600317545038037702869046227381140039944486670474551995468982397922942351393121474178167639450618698704858122029817809836722033665081022420340452687107375380529880704736120707196527789793275910316053850937848049602249787110515598038672870506825035980404928745143239719170206611351736776230829446859409364644081533321722777292790113522035827060722139383718239302826300498041862931384941066668885433074001741210042577944896469858911291253227104243308541777047426140542055846230476052804788428987944305908946497049450023339272559855952050088323736400920974742456235763967838192374923256821614269785033563762758269692615266544217617310215131682541258163906871167285126380373579081202691653425317717066167423953577371877980154858882884562165292336760727935375319131398507726576655752009744951776959496334199717889382023028118871460481045516905485208362556065924839800061487129715949704012130079133706835316293781532634870186754721132196691494111657747600852128011114650584585836707953168379952651440375006474092795453229422618178555365064057960008112388659282589044521914089783394993129041836282987457270188930726405197291084829506872123330530538322753967507681235135364013138872638763125591673919537664592635454256840817496720966306962654438966857933358069843608388805466433511018987099688053322202347255308718646212260771353691105374592666504396484577305369337741438122421658853419724575075889572496078371854157399113505321589598126755401854941746471887571294632265062900378889981500188362951032106922825935309901569539860576704607169631416978768586386836997518930696540099480026911917227214055226542134448156271011496117423817257919747959339083261218716817232627802365084489212402062445735073938505345562689448246279739259783929424517425642658633187761090097724884490216224857961618692978767893973225301460675168889206966560711317792993769366985815256239697523985683923241246768342494992007732991585334829534214021579337077577729835441213903859519059830167785691663003230933945114468009253485450618178618468166839466050886737786449937792813583374945287942661852972857381395177930074033286995118392222211543124519718080584217050962278561480173412854639700730543838063153632724296064661333348709414660755041491565878631690762994716338959154405644372470274520302032470939597951280321803661916013611058345086646806862161832006687536122485161147222342150145266004323502587064588088984075370995243257539225618204143408987100316320132513703071474754255013897435071753267169283625696825943819327594940629264187149940882210563518210346091743371642127604037952232385497170722358252159029450376143463754304561924133092779885951146620105546716489582513074681349035906955904266625333323926699584782851186105703799992013346882066139914432903450276861727182487429322324088649502232873831044681067364762667743290429859611935402641831829127006060990861299999515856754247864413179288527336453749508404702728356891444691482792509354873449739234212305169147632989245875203697357953289637902562515576737232117540034313311532543449507872795164480590596606458353473123426595108589142923416380156588504749252322911847352348156783372739410869617416013967551711443078107429598330412182110814867600344545669259692061544777436261040935477710811623890326202438048601734037293867248185342392208205829265254873891305602346596288930815942016258421400212905853165345137996630331900124203485922801045182115234612764573187431901551062650289794694680911225317853635412811673213509147192658514895042560566173902973966591308414091944580390070572721415781123282737752648320072212004468895225418227080503057196440658434119039402422901619017458960419119636659056688023459897525334051919890568926766639015619183798537812763121630416543999675972293341864833776877698861221576782024900345070165913446808621263942431636063322147425523456929681043869297726833859081417494111385126915778646474594212071321439384425227951663999476850171667551678024550496547895206986904106849027019175212516352397616270904435591430748160113956024853834729660437157643647126031579423526701137976841462203522014975894120299877023547455946960742597668231327156146974973476677266546055165764106045265497289648321941641048707437835716981180144050524724691095562281806604774624966858870468680702479342648183873773066483523384502506157078329745785800430180928875070423713886097110190064628984563306757953873616897712665483464846169383572364586803835460237610229862086597385859802048682979842521913807962071712011527824362964082562421469578250209130600570259465115674327353747970546107112255394218240703812587772350696271461243275665394024313981980370935020979281714215196086978559841636002187725081643446916778114912031700913350029688679616424366362682398624139076960709106583402026042801313142472606137617981247807911823117758224029370595106181145940224108078837235241041489915816091682461255787558808475224641131784594229134813305066119613810397299974424213816537351449672522094333969948710539892122678585905581831917706066902085504703052096370763168081286823011826839625406839890447584277975834761689612901463524466742853503104827090683621817496402097572181429411060823029443682192213235585712172615554370755080725750662197664181100229375910108072244357376931316842249674762187163856324100355385313022501323756866977866080956443222311467931198760570951056703417563446358035007113015158296145940588715474542486246867853288069192703691676168416137137575574270529610857676876716242131414813569854569209118104659984427722730106476112546285150936398845788397229108101516028193455283609653415703295001064564829712203449794188224435093602097774075402403405412999945264332833043321769610687372334940107590403341885029526222897024812952759885478567435136483680389646481247939496974217345808658454767673500943573380669038215750000741834116847551424949980777688178416171104757556001475805867181938341193483648494340065190541901172901332143700624989565843113528593936493098654278383026171130822080852382055872271020030111170658996943099094751875211693999081261967603183653423901042266785241405440825323992860670830751707120964405282735220747391908799013357569258526296400174669150655801471633748765041419449078186049368831344445634159917809643748389303023934684505324303223550151442826730157294322602069778521860329731215851974074580531565109426049231643975221355779040533252116218646300393131642953275881855395012376829369479953635403150931626723571958821811475338522780876056109936995044156332610942050671694066366198977633297095431545218952257372564374846829450485821734053579821138437511647395685122988078067980134783371384028167879672908407990873667636499956511553314195431462060330232512168421227445584139211791761020716946757835874303286464489119427866310412224000588295277792307298908992777021144224224908462783736095767987895871498369035553862687877758808144769822040788027468256166270831419816088061440987596287465212646189755172838752383256626370741952145190043827804413716900411356092879707381047274878277836558586578311435047458430327565956633414459889862839753793966437817265705940265298743759999867878964078280050798084868416885712294143761336688247842086850319918890205859096362285920608873875594025001696922456935610144610560441872434784191158172660389955933474862233071556123662077558997115710601075622493449200846401918531415229737638573958361980793185533615048583852995315541336287334945742566926877608365683373054563776880780050665632200998079289036260063980146417209776370167014686433449208943083659352735316614520363626019996401941117480460686083712212323216867544478860228955000278674040668525768988367386006295748701663004721558551611077773206957098440865067105198889443538218749195601332136787398827610178990393480019917811137668838854451485349982743203561297452172633407595609850614209884634802200626026202621723266795660425489918025272460095923142883348420227475789384574800907105535788484380835249540978087063477105620572148879773277559443609836023629467936501766450476254105498148618968073189487204201590588043538337518076051007237578624584077007507640531045399869118744843097877710240650781138954030775867263846812227906519748555240416716451335263883231022088608939164629812290690738028539972015493732091352919311960780094896851368765564078023533436180427275420793632534431106758714321610706134850668468698116026371513237949534432904481197122517702702730536404485987576705066789935714368519024415042820494866583922412858020886801218797484311540557159102484491557879815019605184680850617427105299600778409880834166106320979080885973324594560988247742846984015208856576747139753622003895183735157547463545731058990622072414705173116837215550815275754660626120081118715886745211670211058822902393244751572311353600235331555775765569134181459850537799601051787374028599052287355450827980775277650679907626439890994177580200240031547861412433539005609672000391314748153647301188188329182820073356268260644989671621567400885473760409809714970931628809237392237950431188194699073510198053613222378270712193783604829762761862138475709268174232490648702560519170834850240449657945572340557802457618462429541077338028093010167045216073096385444474830139927215884802539628300977687366653743439385411001130807734814468989973842142603677660715671941790424134047979715233553185782741196090282749102136017819239091037039389113810389733881792889603259747927670873756225680798050466922619154455467071006575493398276233206747063285285618492437721398358217760274798022348375088591052827068367338578958375921710634105456027469913231410992191102993839366173131275041540161989826139793592957807804466164945153919189033585717153622193085447928404532336829672189390272901232850025809776035205405721077720723632727051926841210093298387530785303650994303147671412693052573032807114653426043977484080259979752742659509454123064145024914321793934549722133169052518127424097238791788711108117418860774504496463912018715515159235164627735841124282506990777252201682602848644652236624282221710111506286868514549025417715290317963101449014551001128504759717324655401197247909549479941417441821875805698769363803109978229244731303918155928937188756505807688507801596603451853102798899880037712242235929835513330320976826794769518566044704142235638566040737390961871558882162065352499334495708088718775375642780749969392165205451167074335218534107972422445853319419681539250798892595953856947462511904057688963759953299089594064676714801099338251597334183485375574840095558108105333727958612663436306306832500783000840789118277790400425773858291426690758447520725605110750956103092577883651543951557598564680667483965533862407167069976858829129377821207790787542016771327129848401344569774981279312100216910408067506426196478237146202704105007947662583298319132349527589385742604925148324034827938528202594718981331546907937978503812859764853812693797102374424667518682636443811278711215353804717225653982639486443741782695023675878235801819366687269784773880891176062538680331643418862289973454061614084152904773459872023472068819290763848399810261990451727665569274964626503894493025181532880933674373129225204100144675813664845627590355486852500402819180309315210248033928873965544110780867091396921026402913191789534182639833417545035562698856466659406667233674502335013737718493948255833067255117748701533306525562786724968295291243471172141542323248316727591131719402263169590103087689609640882979494031757940713225356362314391365102428213581838230198974327221409055826455912099918451694250437474974250479153344257266224078708480044587130082828644351950819699522955221659502482622073232949157981455286784163027375451700319538048660378812872629085195027969723469924986524948385006711067842422855375550914290861695698151358364465844716089651658058296923054204141177345656907346340496953167636523968107177941314835785644558230766943419387986908135525017361266592856635594964531324847079996511910671410330690391535974471320432072898490477181543659671351315116639675026562235720091830334256162503541164395075624454818512813679607145325667939197283527620790908955046680301841890461677276204550229041023729347049683642417049255709400157057737127009929648899070085431876425671561897104672370449202470013383756978107923036395416134877353162060372494220593927410724725097293605474833871830375421057435116207999056167236558286257543416517183443399100808602238203927219738410263144583748478064363594178871100895782007922454138306025867128583087427884219458908845359031046420670712371122163400764456514087019011825162610115420214730573260597885589034137022451990265794260008059187719879664271023190214756054831766701789862579575988536413968472860802124296680180689007132788838117247029699189411269485864672214114828192862997300654329603749542606252023239997711702005208625174597173724531064536569405181577010106868477278693468718773100944621653560013160808347960680463802391032841649521944343946021057032021034251102725866777095876005960359057310912868352539769915516517831679957807845865021409633024064650652416870295503878008377833591299759106461395757136610418012702138112356966419546605728214162738334351873568359794130629833092044211911795520999607451047647541374856122308341133263628927751017881585912023245440534708431471799967920261083118689449545629348478960539495991103788130433748600561436981627122896633778281114498622454244398823624321126343261783967857645339706926405656493034973278203353549125717826477782855149007698684870308733916770746204228045869982422095444436105171542951692349620984215093108904127911697244325566050980827503447442683086180060218866908713196233746148852697415537050760956552137333173506047772829084694922434425371329904874370029433038052156469059472039680698438714798838935938228153687086840820565292895317873003607430803034997080531531925535848715295110797537677832043162787181531367529601113848630286283316580333278635883902967647836689159768727293724586351912549119683739949469475554289922235094141279958545327289129610505896603195833132915400976582795493453946689209922990729801990061426159600190860359697843343038333324369232286284987119590469567052513135237744927801522366447762452332098668791677028860876384394763320162683444506542264367046904954951472056870216997558857276858008423161644600025114227011098367301826479632038513291858922678018431162417063521153399436221296139199431684584355888786625691807226220157850284749387411770298369822515118447409426771595556579189648190683950161895220282819265777793012461461762534643137484969520278131060768311133312875420113080076178832651033844063525989313736735942365239486560507043648146248787818615574285889985805498341630433587371233809801322735252598046949659370399267449397432218998476785627435603857066551445593845449601186924817970447849009946668871037565529236048971561659967754833908965049418096716291811414776578531232085447143987601403337757944321998885103723215320730953619972330152358856196105241442482499730624396102581279542171240659382495803339720298235647280724306129696918680552424472618934666606919711789568067086131698339709865758978500516524344594978705531695937881450969560978506983252544512929035237315943164669042007257337819741357434621606761377562079069669852637488408267853393850881271273170240695656131724960178441002785033080885823247511504850715339244509435600551197903525969929353556484325673692441588472882188341570478148353777550459428687869544550715014235572869248223199020938293965681731794276118165008629111324955335096168128731578115388065627698985437065394821755205792946773028753956505999888973047014525339161672851701597674925975530946884920212659368621060072243859440622110522261129240358312473684187281474561740966978623755415060538550421799699545967276114217560798309633015291770065830095498114333756844643940321926741878571481208105860304891507828825435732666788242329216943690903915444846292219967052130322120558247272464268015565371161532659718555115242926484222968773944762453062335994340182798304974599382970384181056789767768179533911565690491035789370156614905358353065343986783767154314922416816704612692495552972934432034085013901860061306920808086997254672479164923451029300958293786660284532362755492703669217631933401975051296943812040871138062427514603391998824480280398319166179789942311669895689526643052060336331627870914496305966161024760201573465647619446072572585286507640919732852639412583981797848761491857135039673029056162656548077651396435050030498739081444214732837155459523840168897667239109846480423968356834692487874385292704012909900883352156213154335385830730869957411050360160839735241193509145179161291733703328018854140086743518967762237169913196997106538897071230603387217259542147152180659408510920483083705909737411450128167413176677143823486210066677463138555862370264351990151267137525211969885486583350326778431168461839268395271514654406422022949128424848564113188087911351800829043086200530928504738217267601848059285691772786977661918174795643816243528326139486268929467489614863287688562141881122963618636177022422801561630911224279020770070317972197489977918753456947731957344320996576522599491215016110110996482712394776873538016777077207519991106536796193080252196137368850359278481967213546869267067375708263216788430302417281077365025420451592125436708274129685241117143961235417544935418002587483671113750394229162340438687131565094437442450283541103243164382576339133736766537475891486066309271051288566331424799454685605024733392330964970030767052162460238369830101198173034651627621744716085983839803172445154244091836209283738838922031921083907550008806770741095170265900409791620872025015814097595963018360465396956192235700661740290655490323061010827473727933579487453386191522317420355883546724306587386436518994092704908490654911447323334956938298837210092090375327971270474540098804735025268572474807914146984444132114038363031871582214233543818991513523126858718411717236999156377651708179659602447833088651287997410658310881278574161678608137121868867332425817150448526337826679913378643154576864891200199077684565724975012535490982257922741130236251727672000056886140291461194048942224226913802176104975515669935144936033495657904370649025734935531451756137969685567829565466390247216524283099267571167203415381559736068981024476304530973020833893768445051087097571372744543012238944535176691291278776173671406210884932258784478747273611109364672473745236842444979451357104107321524021691192114701452707912436774387480502990662160806216139357745569861864654034682005941532962222182173168667889036653516487458298015521210246254251622295723149698554714956413952622043596568685866282609721657622749326528774282798475516857530541780546963685439478650918748266717387608099786572513032783343463237647821150250423458748997464143395917266432618348566523687993558805007404083687470500178608957421956005940400907678736739396671243553676375149134267413067581292547372922650431108357374415979171106755026857199788456750932379692973404231271538359105427342418777453258548729545513871807563140887056256654290373139407250906024838676727026283081250522967556495188948952608218911034802678738405560085630309683983285063585167702177311459939494410917619885192970320622567665575232787312141727655560166722616988695320521467630289651353233910608327460352881951779345327482099593605539417130612274022678396521614411018754891770440330532574933870574544417942631314923464566098841899219572275441398856077712306225332775401789195602979792065200123533418902722600561783717157933774044339461096111177193143399056399253878676501535999823607030028224464099095191486087496904011572685443031991643418447400038238263924829522879732452088695302932119759195739874604402621638213466690687462612814166137406533705758648753336545619158831751928011096547160881946154249986706972392479937169781951887027132604958651278689465636285553191027218409058359841191627544839931894451482040422317025550323443270122782377753578765430105535954730815557678137126118880529080997736052639330449277671041122512438105528338799715977962006841088425722201799292227127921213290532389706688636212948282990189964036151456780279150844573885855311626123734467443968490570250680606811754985293846039251309652053039474660136963406963290183836009264030228376073434850830926613173853227103723645410569997733563953713047072036177907131323161537811924445914821887444906261080866790732643703889895013824443704392477671799193359032951223911624808247613257365739135919491689312067664508630971755548398726788595700566949286132417415209206783740423214561546249603857547874672092816958252561775205154512590371196720412548942332082866292278815617778550365515864553769512410368893486124488159579280644666880213370105728727242578278537389742034092453143982375025363584068265226868338828170812362947438092180503702779181446785181621295613023459051165843936383918680786865341090256404741992886175405370901881777702804739538704942948025484214764180002551957937173752361125768037977177656040750360957979740389629769319705441025151038328018584294058555769962966841831570241036819889372411180113421654392324996215726985545819618554356363786462632183798960895002091719739391069170550810704400538393619871606498861467436547793033900132891607697475664942634962440466249181999145098694117567667800731127708991447203646901649393280599883247541655565177129927992345242686882837415818455078152550646377613610826608557437546142326559019877550688805697231589000139734480548101570429925724411116192639372509491864877938269480424504866389761340412415486172773167318912145004794546423518842696023936642431851363543389551152440983690536399585032800355188921796569904711355967143489964197125230336621659073124354671576909127791884781270052388761545124833820500648097630734139776563571784738613302940254850954211428093126543361045622698230242496002166224553977813213023803495735505780178979420735159690261631505118193794044372739120534557866498002957826197812296896193113306228392579529300323630551171779331002968696294100158081381005852405002605400748037850319541412799194263645088519517191176737544326398177636676567697372283015498028460392201370748535318596298910924991963456790769004308882767855569002027001743003228136335717312801959314530447109416660679141305614357972072409546686949174990478219367365589817355409909864669321012231411792922832102101606484485960683659451188284645038833979469240597732786039498667153608362679935448095160886708510356475724686476131677774105191265381773761717536186410407993947555492909845704512679407291363505117051070405886723449563709382013571860248979839514795888455157662308856416945247699043615459242498617003944629997601820295758639912904753136924923921357628901404224573804107907663493924207597925067017666590063854928217561400867844130845470189430556706624978290056856942222903583325379341262122588522940961739769692269145698070470866538797814349711251278191665629111758575256934820147394613716567596219860658512001774978300045912204075983007388730554969196320621476571958889090654693577344856218055387826613618666334714638260695658011864876386755287254614394847767048718046764600622271286813807987208644962552588442267228821105879280297360274682878163324528656571649998246763046376093905459620769396779345589111587022578851737970033395464763750320169908081662318735582047104472794439047210456544110384579863185633230393838642904819988949478338917705834648957321399067012178623666709412581633794349666570811264347888642837216419123794881739419621552820397615967119849905460217991115270064122678170490842206862582797123993100552594678095903346698483602264153321603121644393327210866113149123579931081562364696172885688542192519797513958960675948826504044479934819995431718129512454996090224531489125771900593684562946747083171357724527910035393723219745170514468416818269182354872437638356716112614388573104153083014531404786033779502997735506672058100948518627770992614176491770769334427433496945340586236128381986972462501806526575324402623023869353819264280276725391047617188904675622221407352280036155317682203772650084002294896486929677923422925819418477187810825573678432082585758266874658686548912359494660672765288280188612123767245636489569664591262629608313365402069679252905460218372996457897310795750446564458707376787437239483273875513919880942302910928256112387912832640147503914646177984289461953785014852558103568974645908949834877117840710488499327637075732366431442580791657629550537607850313433870913848457244490085728374074006513698608041874090980663154635891717339536920192705283365428531743318996957504747782693141935194179095883614331637524244875470389836737364188277621790355058288165998216959123411952601629005701832914749121634458961007839783392858917822788811615754981061504717154040875066230925522654792685946141079087309571871244765817416725892536105906494422513575184610247387836420816845659447739627046994843123234709232168574636219433512235859122976517217971062385647784501006100196783763346052970483252678031766082204071873897518724107825569494686910895906539924049709868857031579492772522989800938060295108725865227419541340890230994663521336928432554701770632307400260007473739790608377627185821323450741557258704539094619135153494024395880120104627241763392466451479722152621696348352999986367645587624338183972757453030482320804574224842091542334292040173298955830279899896005084327831951350587933046340247028383442387225983439927870568360047695914373785229155333478020071120084448008340775840256907151653251428747981889695886248855327731661721194876916601772196392274986303078700889561308455684142024217395599925325966722260080629406209616414743216519130213529445483242345982667834329837807384712540978738386132493353266393350414129438404004724787597228852054090236205339516929392724349372353694573091808807520520480821076205986535531744644855940376072147785533598219979906913097557942749054531124134244998439574454776825350718140079730172982666625622677202466774763299091993438930662582130993608282623903056293744417433573638050587617138338939645386131726415265797396551416474614942915619476740602730350291060469231249616635837812616758665623703968775149184861365418731902373253151440304840722777140828172396353411226409444193016442993643003681829468307919478219079029371003143554026538479337757947149139436988212005744271714515539857745988441712896316787594396476546426118947129003981332811456743222694663701282904086095020425073659950631955094048871966985349515456009362594085716566664955305412009205126548478603595164945242632657791110250140790662546414779205111149044069942076104092702265713750888816397617427406946973919433454309748592987276719728538774989689197068043108207045842286771031390782839628313791389742655336850450783400131767853842964150193364628513080370469766979400068196171089191610749613763647466716939657279159958691731782397435097926776238203231433242257662566614394988730745981757812118410922415763891332118173425690625314562001341720518402598039266368772856931785764597461343607192307701851786887733550956307163329856074481860288841591406618472169348387814993304897278867033471288557419369259160413297747637482981365223307502735408571076719249102123590670924635533545210935598549426554791422071891197228500560292527318070181797103507342090798535269852691878621151708797558790848060301101934963587941479208891139743673913567895274379801552837659757350780550400557434187215712279688584348120035028888112806830488171871849914644123464058734928093182047529525638652010839768526009157717418078056381724743834782201227872230227353900181249614791534520830573066473543798622247914608218518835211269662505898724248648540254733366471814177247811928872515449863874054834518314045119816461564446374742662634589375348340517359317400053626932591419195380941545069288001411460926063231139698033592501202829626369242049996524681348956918095031251220882749574376062195532917805685505271096015004763890521282143712716517118623414019773447074144783026464230093040015022606347757875282100293670520286832063323202619876599627947151015373885544023476418111272609697793062585325020727273734039609673669160328467736793858267334705307786998368082270373912247123143862731956784135765075010742162990753329688281303773102425316722045071196936909197450016202473110702154800086560843732156493658970676526863125838838238109906498409952147026746258712230970254548391119010272915237141121416840405690189729762713438441378012907856911017385355600017565684282812110932381222239453257631614729333082871458074566560411701168716644730305931275855340803704811077381466384906066323769919624290115358485783716989261071696718164317687484709568994356643472611008130006535773283541379639401631411513150936487123781171580213878661135836461981576188852830374165929176376571130582543258781200885413109651402496568097617090393850385396309403557335049857679541219273014294340466032998715562470059515972828437436541095723480444616507750928340904365151402706493910189081038500919843832070231525947534125198983639296046359509140088819235084321522693215211661193476292000241112241363199589781995084320749560908245719550559134037427100978361486190029873710045539735822974996793247659876740843818934840464177947663165632925869027025261426419389026047586828524246605239342086260878774196473175312237028400888387205682244386901693823284583707323386163450246262276480498474131677069664356316396414744982969927747855832516230645352070187149604397273651881514256054674970624745704466761855925985837609837378879640384990170330118134128517800319707869794833896199827550789059655968771723816549937275427609821454797899667394738798536822378967080225559937205760581729890421089474299585042495772177470418487593323468594870700048513936478733098411882444903731388725848366303832491062974588702860149910765499025214604042105414562033163643035042896823147993751372166998067586042733462415366339386327645753840803685521272445700612837881434180024791883455036906208330578317370413265799479530523886606737051721325165451357254364806828720641614353794234313457052307906634572660597869075290514658302507584256351158521809054890548004967156343180708088246958122843883518895312297239402631132561481986974725731199524690636669310286617875482253725953722438060562843239960810492044930932680496738873726645138058172415464360034851038691286037974093248240970511973372026740378146984700034512870166412891737113892834569590363181481122204333235549400034615289844971753468788458359210131935743900670224832645516231172899356833623035820617539730961091683412742905362325588900846988682401927240568950146170733360581353302434658716693416919002258753474732455483721450729903998281980686425937622082307603334379834176493087412903268011280048306029019834438690106077376245107831726322290422238672179541840919431668339732886901557968156716075154045146541584172323757032765550922231588049574676082963667770638421402501100039335377222055242475019404107799020908747644947094538269383327927453580381222250921598087127416063478369142589681187926016288041241659807099592506285129268820765723473248015650091593840531300537159596199796174105222908484092970957355083128215596266347917225965241001304947986095652893003241113997925584852962427302805279475056704599494629573499847813212805542312534825694726629104664864046189060873833325293012964405746843778392626685102565874796275258671465766448828268495214290621273740184453316102646882940147780109477056786883074609608690687158111589320418103778765271815259763852859977145030784418497392438808254505260584000205202737548839435493763472513517899982910794252090940059595336975932869998197190185764200214914129159284523440801618967969609495493091308668527367180235074594446069379626798650528933076347481938054574510243739370091288734252297323690512446034552884350759692413348352624210478452436183854338250777466202427437250148944111800653013496881958761355769843870201281092006930460059973387257878265655678725463225708697819171120386909121079784994683206557839721833027319024098745396218249563666598601670811679522727325761134694561498346485855402138546141592721567949853970615575235726711128361503986802058964540293831536185118351429248748396138214909808875356654476588915721854187943385577643676862379580337194658602965889276843431425749162868896831827165710541650511581852765762434449389704105563568652695194894881270420711379965991167586241308723412974010176931401795211358173206422719124151444952181882519266739389970643310222008410747871561877449002573457903068388631940784931767496122526003082306476937010756228431145030298759634187112054431897405619412103675529703583723736531118753024967429394507105623441356273861004612178276260162339699612291136802003749245794870436750836114561362385157328669016644350074400749900604942639810088888333707884250634630724842034665720892129268625206882861390050488219105261666950248508486718360788201421390818596419762475126411890503162400713816063714591543688579464345614831672869348954466815205487801845595925544712666145550935185603433167472538939283150005676849632789869891008339823328582414381402774967613868236232731740428401309488953853290450087496131548338451817309056150531146037422576359861611713271383185427270035924727066339630906421036090417223626762768975797054678190684189724562092422290431083594678151576937821449522482374166349896029247652678442029477582269833875282836921485985847448632024628228634325871319659600278264038149378951192058861820783114327992656866072143424884261595312551440065750474506744080875304430752062361775386224428542114377901431049801755137909790040204490577315714323957024410944337514804654587402964175645686152847332849996672240635923129475587450917385165000702290103582276130948924719549011616179097716442514769699869167225894851431969971510939991499136140019977534560962612762178888764189628817053440536348061386318361422822679988348425080093590734657967531376702199209739711524513193339229722517101492319349390507949613268366801009249706413811953624423596675302017544024932684443437022565948008716331289302039174360368438116067822191765267251042519022061920607760819605180256460377173566798095229015063217026656499388902230743938500611338391463697652381592023565963440301983614355626095598603667005715239306640516792548424658248795672414540991360365037871587411928914973093451377819197550585683335997768626704196381781742672029249986523601794496680208309678636765718954093421785261155064481962029254511033527958179959016814719684049948920748271665817467043592657987527398298650601376428652522412428331738195043257924638516781083381688636234477351870503081140764631797386523808916719452735952561399266078454048907465429216352431621696102998222317546164889742636252395025169249694237977877410963046396492141823817549954188285463610937101437325548096393141449408743298755943523137246361476971660159634106035354903066653309866440359777167867462354773038092818292969026621369170228266862119594915970261686007218091955640607836747729502167807916271550076719144233116743994293724550873613315199309596569503450266274324430528634923755105047598198173361508497198610879397439395770649468486113459487645952388937062539264019146635319896132216948387189821951906551903484128341104503227918134077979928533815488794919166801998031745738066107250006476940414605295182889639749326716748336231340211081585435401139801378052799137975147182125564689039196031890164660297732135092876995889933628481353193868690117171939656717104632402777417017439487545522796945231776741365442696784535761895808468246323775625868460492890248246800860691859559836286199054406281481722631673936755638420962180218537863331898941854304798919333342735963231032744696520800575065502638622265109342584413964138750270661291442770514055035260336628880028289047882610786883085178388879100687146398772579186213724813803398334834642256904890997357112550172946595677504198575385917373374048765019222740530407431583943177424717532385261081188823206299841263326630208525486765911302695533917365421862157326404942667365289725723060309122272946158055100367874040761901375498440553506265527465195058964078860486196525058806348344427299454464326524760373766463175227974941401727016731901943045709723649267861424723952737620395862250983249281816620177442483083180363957657371373196454825249410747219596684628854459522107678291984619817591342943522609440799408758287843877461009537976073043961047237480542088376132788370220610820288041633201440794067386834243098816421592237737034200454105020499347997539337023802635945320418880844092770261003817025943718138815483269555844555238658057803063392047472985636044010682371478088809187011121121219881636687721374497302673103320306695985725419140410786457212168185804160133183549897447868318758083947236288015505149901135210166911407693146717104867321649363534094516391437371694197891666206172288523499556604524619879085099550876121744794271851851884233598154435370362345349109348056468283036120343183743537457271348337275149997772640777891515658752036547992580003183714433728822595533152564884278576670133820583714018411275272182083391417457735089789623472341192837195829050379199016874117704171951653322080994927214737462158809375913546361085070373907552710482334934040787873486472528609800079319163685675805643569741199236679922750419891205864835615404242972174422043710486840079837330393896796626739199080952089549637889751639815915616856670854594207106442052697282850888458461715344165640740448063091553416814273999883372657617053323071234495023706539808808399585889199668110298224573684274139841250587292202631920424327801779011124766062976990964133746365515409325330758823166611972797025163411590547018226959236594914462842122955984626096154778285811257147130162491350590172959501009663298753124865888133627445213625590239416775595253066503217199924323280263297528383977930526126317776024572281475864709764871279131707739142364541809054491535460371072129872324140487397216550656369682431887975102420836243121373733140798150095616833794601062730443072994396349953299788053235833305625458648253818959137508866312125812728752728758602875373317051003018688071670001921553897558973883966490545469291201298970050459386597568814733429569354539478798703838893582148036311625805474279503436569157145166005503438562891321502465856084210311665909940500552713017467247708574901750938906788971873265747823505724161470078568026412464177750541697939262751393484685759327750752759242723658835277372996742160324111408046623834349763853757191146306608033626025062600497823105868733109342012553992742226971145466242297843331316507430286454250349045894621947978091800287838560339742121984775513676796226258869126328276708557414096141068820584973216132062191139193554499472217560548449723921748994646131349708390939546528461108735424699645350938969199390292836679398920216334318686308433416361851596205370860309820352229534638237391450341940175361722899751039487275864934536729444312580819253423177902539663582690868257918958430190794278080215476252509931213583157484230193709537966078881305719481019878282746627223653415827397961617348927306552352794567596938587068203472143441063715743297866592581158533945396031377528305179164355432498829205238702998902230829748092337111932784651848396557754812695777128237277816234161295803466956915717034873303246283787731148849086579635074237279295396985685803056711204888549872330530514097308623139179645446937909991109733076404021202925951021542911860372284264724446594540536494429769374454852760516460781919545240805527526576470716155978583593671298868379927591949002149324642880544197604809402156624495980579361238700793640724673282827575403221254452986982618407144785259938068487049361777699477848531146142113417914594416995869961571347847042537632278701303771902188127871226098049086817693787839198823801149191199760662213694059148492426419403363296245308910452859171694515366164003013541583523589697402107436343205765506188008788186785044167033619564232037831894818143977877256646481613795200313753450725466548339999832344415830723158697820250050081158038251215033651748021028118375971912657196125768717022065936276389768259946182913312199571957933619177970855598858132570669120321099075217738225438632432922645878563361930737120763087110798765729514418382662291442077664417008777133726706211697465528052863153333982658042571474845607513465804430726049104527251226538334823295003108805278984427354831003016120041716896976597438770001082853244888515196961800176984699142583519971256347004244499086372384862695124366393821900230451330839314514213079558372759477245935779197001350126050342954728374770833709698018386799351825857264494313994056347581016287128326370706286681901120116842237445614158030935859603367478049168392947320964172074872429282427617551770296563358986245215458117347249227304849633511153435906403272142477475891445843429182387891326852972525244904385785707568079917432680799346114812545434867456306669362238333368265438172431072111281316290415904596056650869653385580604581829132936367382554983632164477719571776585649760117466546306160122866667656266117318112619128851551587324913182572705690208676734681654816345203253926749248910169434160767511041765847373154666499181803672758726497849389187263825299351407335076971385724659922177669772720707809883535796633063870100921815932896151991541286907626111021870057681758802203957019950149796975035010612177512723974559929336419551787635778982185303755381280114932968000559040023821839760796552898359094483678374059989299839239056535106952483350029779531762030420236340790243421330745692068851351246328274049186151527514599369264651295892838781364671832448849904577622147278767817724367664964889118989102045631568685020685555202467772776890445229820185346265086687414121376536364154510451515712605064782777420444135680882008676009089721031113800723424160928536263138015701466775427692441515374286316299259787898952328826786384291929642051972185125920148558965731635164252475117788576345479671459435964144134267048059277375577696938233491063611880600304634727351727041104838379541129424795574820410321916297845864181072434231219977229007419771734241929779703409522258366635337768635032101716688725628606943713104346712876557614803163771615476691149135525894975983879027032927735502989375552914330879055513396055155911564752620996710437158998429435348528314959898500626788607933412685194771563895866197838108806414792892327512053643337434455606461081122458512246908647310324397689659189628080768821302733497898042692582894642407977751069780246578245686242684150681738997137884363225823982475891806609854081032877122236786544977185315152630608030503536364401889959031599951263454511879550592546326430256695887220045793514118947820549902193115331994902984821327125450839270116959985431581762138488926620868527623345831007354236588559535671077991148251340914437464394368300698574132178713866326289927959685261966938141289214073360795455168072826717180641805701011658977956286973179901701955370204286045173943919260420677178299134069745934015882574349542214790213743596309011374623065686240728095932973871016844445218323154861765002095686626149317621819655177569702541221694920240478998102417756983723290131242971402569782614150296127274128044237419784392501009816318272336018493362068911369550469536215099874738052051793006275784345256472946823544480837954871321409215547432600277799181387719750621277008606829638216287267241820034419470614952466341289785992356631983362640059178574350873442573687517280500509606379580098975527838600180100205016336794641793704111237104526363043195110508377682513917733448762950598898991326467784995590896641002954847172384151411632713170963117045677308451416424281044935114149742767180629787931266793601543750723898516783489845493927952078624338394023088789711182234299533296577700744525703360512870065693858384074326158060397517877940837162761008785205249718836948604790131666302188389238386710679646325949226154331676545488908041709339097132602911662555363435837525072113381035495330043428200947653003416618700172818928505232367832965114586109150722370416047198758490618717684429073992466605057534706889876057683951300792020170748053043155210562760255577897407319605869478117963249146584703531062214928357418635313882792165001819435143570091324640524598383046780038057489994356943506742713401042426615900118072490173218908032868316613755518861222389662288652750248074467107626989543874671046042066047087963488327668117650198083656725031634740839899939804153607225672217648176158986799459038375188644078232792827766793915990237092914342055961012757324826966707808776783808142866740086138407056783019084134247599774599342861339685010526582040155746918344976063103495995309394434044183303095305409168969119144472663417571925310679203935707152364220387107441427955278431684920399846757663814237468150348777995733038701082459221132050721903809955852343690926285749526384106723628573054271300878753069695403392194423264374247852717401022116262465358801262961438354326716308584762424423303936565276095066650743135429015120782950674585710184871029181922792464055700628153324117302624772561752844259017696715743117248764984564111668833501584008644862252101834237278479159231442191148613071832604918004401586441366089673421072165166170037807640721879684375764421609381756592384418789355887429794839943137005229946119708304417113176655077270571273991739444799090919926364346140771002926275426689454790317229357628047785011736911197213267116335937016138316071155161388001134050378263343012345001073589374949447864298149988309584508118854496340419705071447944026672804453953205806533889282502943566617803067754364070771895868846579269825404276203507129851019809855316784677338326577914894188839928664436150942423863090131602923106533892834734251314733564893697480385068823878512031361846065876614007502667346793322013060666246317341428930121916047443705016250125576604325950037035722792023594067826560071896950516496187816691472586106771514640540447188618929041582198793577334533322850935651642538760377087657279504002914852579114580587277073674285424397588423485565198820910797623829803091004766259855273969645311676364882935841889537494676253427961804644070495729779668745458621687663526415799841806217667926048764030212484782589408904021567654460414759821278261160900122993633547219351344635539780628657873436911618383234945909541746462167673699144626770183779853247178916393510998800574969090683672452570526073715747618845777991394881408247434397093228986458478451579941369853523122364020980797365545845886625725657759515912605616870488279945988834804055124067869367209287804460238407294571703412522930439482798662804616000133080681608766677896334451830806881907617246772998302748803950942119552467509776571590379378657784759976298499153938295723253037458889004858201933252905407222415329318636095470494102424850057769259766242592747132690614934642280105980026940130735831117307007699707786340323781456438251581203676799086997161084580729942546866619889960499146978108088243988158150037271365628889021221427918579864339635617666267548979422959052250972643631002148597304743469182888646259348979221534093364362047282819884859442507025614570600971052367210926004279901619089525247411524942054302286337166608992132631538394509261245609284366365457192740607554261933932475398675939696164785507521634655137536846964743046565897771414559242538155327649654633351553890593939070663514074924260129466479477463886869037717078661691829993490363728401669136212192193968783976336013745976578240518142700986022423123670766916365440445470331546268669618372632012812053469095938624115313672457939375706098066951955184028894567839128511033924869007965767679519390045770353858170390715050347666953420952445000076929666325409382950291238004958454061891406709871751757878150081014704851703220292875625446599267475394614772482445117843826352453404115937772256063778936308638898963166753783148495642856577642968337590501634557870353897604695019526371860565432560094495872874295620555562816727428431024416922002237272569926182428493070891254094339597371563248079605473603741479360055944921700009961833521649098337329808844628039300527344149928858961655137353320288314416450305632381798755910873233256053974555001447873728230762442070863633124386001679084438647467837421667051613782946297450597364337005818160781752284004122818186839169491429012707464053702944882217210762923576863701531389795407922453853680174955788103488976135785164761821011579584783533222362234964667461308755497477500533293605897824997702881311583224745294322625599177116878960508485215320764148368945497187347847435651264302750876554713196333242975679666907268362651476856861982484101887982026372349130579782510876548278757594567011556142959412187715490097968381575701273597033512721085538792250564694407329984820853987086535624305666997038046313370219516250406947573266150997372181721756855151679398573641502089586481293855104999011330136869515396770868314825382958763690400922506899364178641565627622174734477811006718315477200427747125368019353434941717937404728783395082139142532352043007882802169594706158265020690092275568441095860582467536806554257296608125751406287008827555887327228402633416184984138689927921014542705107005399069458180001663599510398890190020661470644400624245752818812302395513664968734420876650010949790438249561816445000638996065823658176142727620693694213620732232739043321270674393065651310266342547254855203755544843812449040332925771960445747491146885230425524669341098706529974307796263214484295361961736788009440679879512806488022361292135056935676390512603638785315733658431403031624500053898361074623072693572066980009531948572735929018383673657027300128822999822947160415229591576502526977364065982589497618400241235386442802862968399332536701624791471322791657869627856758310356728936713189410685175878034737057005185225221274136225017785884513958034866823276203999313538649399159666264782618681836020893864797410167856910564543121989782764043574514297978051941020294365099893473608327078040098509073493952158446336680916532186672238741954873858337537989971429914089718126019337613343336305379187540556901754367054290191980115098076769236157340488697860619025887878291419299559989714932856760125376165192262154357066458850753284984631631770448214659792856606177201849034715358344717620047543588144239887540596787817709506695072968671320357375918470662520094592393122672828109433597771656493223300514173586735151084025990991727199507280897690599500163738427874674471141134756022788858792345761896503773185741108693386136853621398581325652953096492013165072269048352919165038515513675996062607985863873396222450105894790922226204049141532322141185452741688597814008449574914365967603822582116500735508014368919287149924972280239672391690360404732358852039232920182356195267729521765745769577102777250371972488570679833789922869581266414458179445944890646256792651132133624379417909524416665754667715917938613660111856918525914218681839320688371721416261754558975470899549844134354940413931681101798288225843265259195711110888155298279913406874265877483932779417174563643733690942028479035233738521852445084779689993843120423942349924540202642566811975677936684295019370783770349159693293969283463101819290912313244592206577775763062689699552137543577037566086111423467223170525943839940736986514056966922691945646523238676807741772889608859765114129198756752705475985578683958140922881361039124454219757102448691727883421635377758928985907042325842102672426000027444586059047450101989591444639152718022874445771417140825387639951210487854488408657230338508715275510527167743134598014076090793323998979385192269291700110733358170997807201724172247503019143064814657645167584909534535516480447455349931795349965570408147167363547163137239465634489462892679239020545527689214087573622969009040650475668163014215692144484659173610257216549550154561386563331991402015171037047225262493818318572687086128318782989078208172847095602414840656580246608542579840021423032807222361320183556506009873570066935427328580647805442539448213658486066622526812859062439257430101999765126541174038803865067252637673831675184033820502623505069208339488668079114298107553562807316745729158706457012057753108052410027207760025606920126850889350329057126531858328276504739186851947579059904133022465345800284207328845738168238592341004102893611625457826909531542558136045138994828676636744015888372345234255962917893481396553893958611286239142742736897336000404730363785895501261999177435241972418209084734638444336568576201145902954557609778674555113276583406382876149917064905588273367122836255928485934237721322405172430660792156020006998666880164649742820839878831969574515733187160386071590563286680793635455765591910050278869036490638051195110754721274212037770844708435845370390781282110915416722885891482621567099715628905989185309133415038638566273433991324977804127893492316824727351756858814081967808999031626034488468001475811234700601695399534780555755795681803934359057091011934805306691713300786131861943810230925888124062339848748084838687185320782759119326502289954234900554567215662453718742158367679090604592823797872146337668961010309213331785110905995379378981459296749692787481067800928869187727299948894225433476403048457035287419277916977517577053734142149191963919407178090806113250088549513551139443269742682730651938109987289189784767074206364218145849908215657363389173636978826058941661465588097926993848104891423093129519427631939164476965314432017657904145237281999098846484737712277258162286352340675590306869997818741691670550051428112777348093891550018041545032498705716309958487439734888298516699867128550809187242600173571756051047137127494115320968813298161269752824676763223540687181599601916923056731950724961684277769196676345349634671237907025364456924831418576089202084466091205761793675105574396770394849096602923403746471784281498870490215587748724657240931276980059128815348206574628349573848426191873210144577110128459806268996832723760800449674042721716554483041018426811086047351400245518462984177877074395250527718557677383562655014414345627242712216638575578250220001446569825021017343696996330671210038618021559030670517774419265124218257516407735093277891354897354148280227965127708020353036009299393297760851869470718106992481429720708803815077606503438583695905927700210731462088791536860596173039430302784538014850763500271532486946219559503328537056050747070826530290748331729728601737008040384173088471916408936846157595674977445821666929051205706320604909371583342735480856328714607752946255312055692205760207750471539811546898614274411892859004580322288971020222077927161153747683817663744070538555272317014533285743536135988184856073585510992086464595739833787643366278180049396415214747085420776926916744068864521474160189312152421967049784116139315066751037483669902319497267140072747813689589819658620254528635102127663542271652678445871316894926584805954562666868967261922124083019807883673756167436399661786685206858180510580271339367202235704994794475537996517634679032216379316156586211357951183925279068874776259908639150045548252721912914367833462223925174180405637688027038261044638574090164479017063824052813188351944119306116342424607709931084176146990671393519048871816087271853617941636390978286965721837426171331885775352149460126168403776647504682286347510027180704339557740736099215930630835536154494781809961516936207132701048253249671438583347023999165657753843596689924448391220126767422414313672063673350478240770550801648027434740510306205589275570253796930181291354301563252431203255150430983728733188281385782173837500742115594692563234467388458638304808227787366006606911206375203624278901992510448497090255974531428034258512313930158865362517038102115447720032657607186824059713278664029572626615486934036676797106711158665841670244585825052633289682965068449975875556213684513243862641868499480308916619185578122032280003423291795785110945464753536610668109757346564360034029639574754745745429807956365095763752819617029239303237411430267246625957072522769254938091660530226159829294042240618518091225033110915170242882032546815303864727238351856875322791590583209751055499626490667439096899286784915653756646255483266513851624049312765221523953009015831717824149310522215773443226817412708570616831574875721902037322640502694061143646261682321397826823240096063462747125360518760011667800265089132296820229489014071273820956316223381949295741021618687112195036325164098934235135065622064661461400537373131493321284390196337295715878734130166869145251631453398405626524899745733249829749783238178405032748124530450139832745288862851793913988204273753881398935691654923428289365726945716136004042076236454011106036081812318188781964445749011505990140060091494632606869280892969547810310403949568992138914317316123416037084238005954692003740796354503205105181653361099256222448818484254308763471082965055733959493273689308986934436013616752716348761313731893252120094658557463045537788238727456641798228766869122709975075860967911519059793289087507986414292144425339714627904070054538269537501642215919940783211057230584220959673755334494683335432091691530026840699626314593555896456027790120593669761628987831835433673833371308473927772757574782055113332221431573509219655293872890518935271930826839835684656835807033830360423346183402528943290563506214888173788204330150561351579397555406524257274687925042807344752046774723078859855801629087803858718217158268249222766814479395917804539627409075103197396907897838200282971677587704468233010348490792612746960450814095744312878065747327127942194279002526969227947239716324519313572048213757069869563349234507156436117089614894087083789298533251466177230945195607341376884249805835380195466259334856407699231672547148611818307980351233501004312157841788143588658315953612781501665690458295061897575733859362736554261921580975304147572124774179282570329456423105991393127916162286232178353820554656523311998018796796186476220844269246157602726533021100792992837941064340268307869141575917953778754755880089753143037230654086706962267637431398577720826898102818182780023703676957503522520716964652712547604534268284594878514057897187657570778484935949395872321486943058187400446941161125969964105108321179000273366253366860118063013820228049078342791428605397913564122066251507182036128652186139943363214115732417273512717585526028252109075146869168670806155907788725793308061937812037672827337053805436585038311707236849608422629598196192384653058143386815882488576082222632830662069853675617270611718047138108133385397369001616943454776607933303766728182572563974390299123981603749706685023349258832454044041514646267348769031733065077312452501069177974361130074335047172500763951504471622970095661942165776064591371655906325908320849538111171966775645386514334727239250257659936363688339322860340820086175100977390358123434083380053017393347788691353392669306042831279315568085845519004235247937052533879875345892366741097795323234174831808609313457851711858836240822053992277899176169487405721091238987182711163108467498637550076747932329374670441696439686047196083706151253830582364975549386225227864364075003976629266796539078751831936223753111064870825996465048612919611346108890651004957749894275142389295884837291393647843850158883913315756355229400088562765054104175244027829368707655240834499859619391052962983209102945250491612053204606889649833112817942213955904580434984007797738992813636755522382844353076037520284593055494061748920749693976819234341680404508603604990107198950105192629320370191247145039008376510487177131565388804188411111524981893592807148580941124700720448080777375594849630501771690944963251090000107666248529957403887980380799078769824674905794660235695274173735450852814341764908232746410102395456470832550754889780062879642090933231129860692880330047849170084504360516465790477985478274685416955910885667534987909411060532538870781412521181149373237439410184565070249299173039813634672299350116380740030874744313964082534265998034455226105307749914387480831019956863010863565339150987701406178848837391288211444581741217515387943615289091963859199611548141270449920035641428945162176163007553351615105963986105036548452686553077265482306204244371992489151970246584027966970156234118931409470154265416216840059080169617934451610119405733744840278455679321082917812373824210777865635764187033624014422022093481553523379550796372854160547317265411959003420371576178749466518281880666084149084823963163397823125973393043632444082709261282301917539577203996690256233725297130261461406616995310334751307793584849563404306125803504979292973375588795955932215305799786541015302696155759694098025174082778290491691278817169952867922653584768643083781542469390662534584217863334025884041039447756092349152281782647194107057534488117055094673553513520558132757967171580952651109685052471569875411301530409797307177026881237856062223504942280619380823580174267958093070233234427411199164605587100037748762495640992296862117006905890018362661967521706197777070221237489985493552485987467199337525604827062309200426145657558296034324482121355164669720223157038262951600847711353464360841050189293541153567494518890824866696385763874268083553720779053837142932299394880027801740060899382082534582997968097828477113506127306054281305836486002654854437622443967805441105810628989432443406980389417451945014619581579295683440875988549392680522479562289898303711906881818743205170877428624109253331069794801162463226936216720459092863420164164543976812372098724060562421051737015198270645277581191884412550680582922976543960340812943279090727224193445478643660343392703427224429353298435090361858535699169574422453749639744797414148189024694180413159720364133917456825228567135672604579091879947214924442695784187142034908960694089989167502817652850240360482870729929840430152820625070666801327654745724082755226240154929775453261897255558253709277436952126264307168196118682552558868660692176553362859675193265023939183343586856810074655990468296434798553036855260206938030843673534893049459172791948834056147995369537953179659024106803290254936768217262230214363852875113460314853522889179532145934675967569714023592248078103741205420917600676387409681960029723955284291209406783034419498237241159198353838256584595846082004707958320644480256182060532409487173195814946466306950639822777013668787519755742815371245434206593645668039572238174934430798601829281475580943732509013298840524021714993074732132590215189604044671556125719991525212913449311267777413717201612832401202403320044735022784166278484702480020591369484720230742703875330923850974757467126984227230266464561574610232050128759056359588973022054605886417461009001674588170064662755798317784725583935321613234582163803872210872573010581388293385376797872422916161042389090085182475095936175080448522559347009934196522380685474875405205276918296060123706012481732605891208288852563752552664601441773213355746984394829010978298439003158453838451993541649196532040548760635127880030914406947450480903193269343524149119014328616945076468994095647231328776323075805017138641929540832749412848330729777102163737729730915571189238207921586021975759626177349272070931492398091411574880500896804191343687101689465451615935635799499795134552082295220016970259193080885659074894372380333048231713654690289405835331733145827678104661431944548826908851308612913317933163161091628205950828849365517700937219078367399641544117638224703055765434572018305148810886060453522396420891791441009776005868260959625198055856043503273096964187641633768554158424936920615685985083863104770046456177842026265123828432799447488757393491730874278216491683381356437846369660013358388155694440381304285902521558775168943519116993689991690649156652301820637224792728629926643450286277382278993961334744221915167171111555231075380306892387130772396801810601519748536125774569637533635147392197420120629898005081453993931639905527794197007678703000465079143450622012887358764229429639880804822911883321891411170619400446312703335375752583583984136215462413564894092438856992990288498639370043961236534175820522744347297992858594019139283052797352275837810883002548057573248478819036746713815141174176681306940216123423242081433015989200332949007095849511998639351305076642757128583874038153956798944125504251804138580804181181063295321311798704707656163526054755295221049953703898429857526269269842103211507679102850739104339822589152078519688412836119670795093391208896548623866815804814540391311527412325689966722786486831172630936222423948898175956913243330048152843312486734574076211815385013601240290159308119439433944786829498635961133011662888453766211058904457229431713083020131063997222923709807902312536044726826645817346078792957408761830581392633229733973489778607055795396811107883781105283555483961730477004259919747479350721368670143416805131517298573391123197062198211534691961992575989754950164565192036825778905387476495346951013494836395849009936445889977061261243489998741649402513903405546010799898243121494325177541290279382624118038024285716094637243980553703202034688122278109865511144939445734072863337451946970773675009308931101154988004217413800420071114107518396096322630178391694170982211933207141803730419883929550359963449663305331493643149039645713229705933820222187582219031283683486398658890988550320286027763963267565498143102222191775501619205387840895735407701721598539957109302016038921810151904487332540582370808940167283754548088630888152420781495167927995227115140558605904069269493119843240137736389570858905303682737667132752820861192308771316160039925164465418403106192430972487595562682196884167716787268385821950330781804406695777662627275325389694055347876446691798690128306675096425795220863970433495100870098790403705080461852546627990608370835056040873025333654868194002659240682142156619297440365743124228140345225456170297897880752957375213469607241557911232296011280920074281992121813710212811286859869665249924399275650917346151844966095460059847519073759313466716713859286570541520175057078444036314735112550651503012647425909556156594921227752222614003843119703605627726340748473606258060207061706046342034701758003220218598262217369804034442543228140455665238752074161628400594046068146576092535731483823237656582413861450954891306723595302628012640781094557494741553705357045602811909030936230746696273876126442243725431820419769839933839810437641611265383699586019258031456093147351745946068418780457904603040277799001499278759167242049348212267280478368135171374708864283513374631075776515110122359578351310730289000197075823431673473753814143956790322340266420008953622549750978881425680204614523846582338950636107868154714562664536696149749462934283347708270661738120238371194199947231610274176605942004947996984335191175057068574862739257127738202010136867705988367666344281483547836726398143052151400313933701802181196566155515864532559796996355711058173156347978130999992211886307950840821362281128862860698916433580293525320905257886463675243001020195286258233117597550971655265743874310308090540464665641591246454729358392029999033261218503985831586519226439252126227554994092448327666832449544050759331023265639035687774919664603676271297691646013272466821666325490375123776288720095805329785706198731498459770887140320312194653219428251422340240521593039358142866383842699760673874097956192131615534588087213785586469367696710702974785224243842485417576960254683927659567111453198048835121595520660634911216208679722068266717785889047603171299193951593232839824770479969337175059662865964373915274062587200064155329400923800328838237793584985040589395084091503229115281705594203985785942768583770090878161087382572562395909670310044229282807529378984462107385777941989442083331708430827448698458945409209598859964874073337325146184889753392771193550995690801843333540790418879238640679577367781669244633919912387813528260169974428739222973116200922342815722932492675548863829064036498219638973327995040240637885888135649754281803577673384700357354784699485139934741193051745265576418644395524145308350690915032019819011905530666602965755260962482932588848335791051938483751356636812377596149737178000286238473205769503653842991874360268593360784340176327884051719160736422176382887918735624574012599182221964082680952617570066609216348613865715626896229139398841367016680152244696713335546933020900743045726320182453697925423368974455891467587424460326112339066129387087310928969032902690015448306041093656641656003739868491235089273283508540958023593801720391125947891810585500844673314193919715965332371966827715544691406509007919019467778126238696872458197311006473538128632120583751163745916936479039883941835106156321864395663758095721785486269110078080847619971831446633820031165109998212438541940781866846014686109285236857714737534813893323105365966109906840434154784934429122059199329994473552910255345828734935543132857120880037704023303838161353289708321740700151977931510845329916893789295973188575267968724652607348224764925214568864214493974635955814268610097490286565756633281804493949143409437633318516325760569414727816038706057824957658368166929219268360631261569762572924599826628676517604419884312397964864770901373078326885177923774480794523502309209734594552954038741380155401100657640733171522847231782484651770307422006334295027741551214785604697813876246287323682428005528284643563711192058244697265891723748653726701761920662730339806937480716384085179584625136350529904214355597071975091452166024076647907605342477193706037279084121427713068510543219872808683946131816846642656855576704804071678052157241264714257742099037425561738538355547217762381134176547774170417171292055651505169996473963895124707014711346334338758611958813034425028945908692504080885788898866623046526643939697447649515093803358469587643706338705101616092224645265077208266639243880611199235061687086099753242632265208282155869933847125603913614740953442576187384712970140604607364398488989202513540918984321108656542666247803970552208599529072902780408965434647051412913845398486685303505423305941736913231698627740211509931931843697291928535789377468762547100514879342956597369840407341920354563885616747468633979380628694051093097244094946305539543420325068270310213180099683829757570449290367297316808958419882716916425981815664647370037703111161066539111167816213678872326436095605566297352049006652587096259015922972850870592174199314237453594985965376197134223514365235749551715639224383597234538959433959829105877883591676206597612004077459540869161896440608569378316763178106030062967650531908544219368152906874680375265338016314130083017465515711878502118864643857391207455722046844822841118515507400239144327814446156136191722590811206138485143524846379628235016436063173079014330093507638987012078347595243673657845523972980972194748358274051043699567505795859957020229697254544366948682971071229222894438480692079920301176937334840095346134609954156301384065838390860086244927443828951215822732785054401714413299417663931330057392530828936543625812385714879162043781392317148466966800369879349635255738341747739911202893240739095562298541246999132692452003084149738248428646671635059294966160960398860614762575514595081430423486381854002515084564449733374833324379074633152501292387957351734316146587811430990652970895645188916203968165653995410197549348100410626687900954530380633635854792753232638817317510506967556454187581831019203186291969787568784867191574368326393620163742106668828676549192671632837461791386327291799929700123793126640997288249449268147993683453890486041312228917257377235332129947012193674377635043272809338130651593904324897694086043744405826469680078141966868798897716869104558075967940273838996362913041004211090779479735855465475196614838673907090377907626547970441146453896324761891874373720709778174346252692813212859713495482553197249125583171550829904965525105712768285554194743871952931588740398874011134043035741020615152171593747614470902707577891702933790797797295688620555413370176682264624491383104753546043156090110050473911526989880060998778538842223840478361818578915909360169231538668168837051726161415615040896964407977509924208312536941337848857261960604654138534378453701255349824674095188607088363282462709982602355475728663721327800281378790302605207160305463815760418866575119404350843839730041977159481554680790007970075133579985610317341451695669723075991664822817824328028866161637946205150113284834808215209064357197862175193783085566816697095236937867977235000991783670455263808802358597805712756752437382278589602362730593973298838726925893500529579349156168642179095800824056146953504781339045374454289017867224585840105143526122337179385551410178514772329262495343515633858433287240500989077276807707901937860864209764295473999783757797454445555509096794663804728880616062098969267372629797140698408305680799503426169362279743012970121113900697342107615260768966884782648245438571374256586660646001237915212055422361871758840628406629305299086482588572759151371397638258835411523960003829614895199722015962632095532375678663521691567507413597581251283904910297017125195738994348035792878547347837261975008637885397796475102002940168493096520566065920410552451913894201837045917897108580766900392230190077142928638228959644752480204468516569391575063949380030712061866977602169445906072881368918292023213134686969576178751166103483638655785128952659903592504045652475831052897617079732913339275918653855999345796772037980787604071720022399446470175481366119784544172914774515530813021035324207364834650946670782472611287099135767796926525625388568748338991119459698502193148286994101417496603385085528817280008217537473548437639534778122679004514619222927348201550943320048803685959447299589582848814973030124405116487644989740677934241831325988250863482965960080424811165334880667958266002101636689957464051387854110251295808891147433854285714879213149620716213795618220137861896535279540325765157318758796828034756794900560520263882504535706110384778463767674168122541800548087469962197619703961982710884950423028650896853041212569177962523515749875142602106880646604012067589061015384509092495591980644694079165266020233645978634200941581904845391216217241960873507481437752702107693733749232606864671927075906593917064262016075103818842930848790506016108965020377453074786990085528288811022022598886100714405302459988570272347233935709589343176314262690967699884419768136277942944624490922494272112892906562005299272751203415782242541521995085808533579997326974989851184148027781046829206499561531587379196628611882379440500648780307932864798631051340036544230016826930796694043785904333323032458046213884235452278928077247584784635707096679230981699426529784943280222912613439129150917994926597940205214828595979601220825758310708396144253356110687659615363823710017935252771080878508474593061959354353234093343059325256632820654022672456485540104559197301039390240976678765014954060925258365507822458565563913417351829016011583713577446508276049481761074902978420112862791152022735876330681449821836001652981605798418423625439597408388713345918630224099779196433476654240815924323231517963441794735775431319408684665311701919788691744718455734682168667433857544143014199851907721674848781716050875350693199697964763854364709048326796619930228767512488630972154266987811427029800020038416463530129388128963858305186824240038710269788522944375324746099953605720672377596886983090750255642264218095172278902167055498192318873754636626211667629703249548390613472428673846702564733153085351541652130053531636500063433848550038902686063009854389941685751070709177894668482914192003305927148625398222973203049115336248034875497232488402715567561348601646573435017297389924920772846492920714173344705166263736005660895823076343718065342450309617636238861339668821779459985812200287874134281940170365946804174358641084482458450049013503753187602135314260135818033972140561790558767544670792792824024200267898800768286545433488903536581666042363784811665303524608702478748940435574908886867098768554014422456521271668182032913957700472571883310800482197195136055036897221082032950645254158801973723362681896160827362244590222578912176687731200302454546038236743144386092479210419302731912661361370837854533830474881927774165466454971970412421933970448317462685863710795215017201229182592975526779059509778911129886234699739535538519073088691089438554561351368553060902911668752817512866479710879829196944552349771627738740981132841512225382496433761062603587979808870740745108220478495858399417535072208324252593694637313126742422776957799671075031200982733671850224147228731207615767118535662308307241053284504837095878640085869905518086488878470554432626410577404848049463712624936615474407167540265109377875345872070396228004302466108161326697846932408821834693013276725216208089210611514321258857657482830512365587719353601646945873254213647867922323971252293324497498414503999520529489145348648277412125425540544196396174921445758086221837686119666791320137334285566272654506728524502819393501215751382303163949624650869361006415398487673214061180990211071328808425296024472918357939105963288795234901933878028195462391960772854317354904774806193598467504540226478900050455386354053219286763151542649982277128021897408792815313877731448980619056389855607337768421594127770018858364884619781525412322612162670541484448175224337547127242796113389867532734637171865354316209854154466466109858670146108118065006149849840338510049736855562106109308455124272440873164731961722515771778203708573213475814870425664734993646810326866856999824824642528144597916354648965943850052366275991032596519341543151692154785282223068664990463042117904089886570269504778744874211764345119115321959108107021385523091023938176917343826549817272625235031447319124911660919824625735402014923868578879763855214435024143381797880647299669134439300390720039443352457283796347165628722515917791236268802747795279132041530350498264559381297244566176834090634617956291036452847049210228068936809090647796864822434162509231078513646342979162458739570572441896454363043241224937432363136360720987317317137519940598978717216379630354284381203311026196566436947789821106494757696884437989272713290305036776573362108024724165850227552777977311984787182025007248995197475249801742920814846687379487773348779402336774119635113312887707219177985313078666617322481801685032178341366242541135003631481995335695960203535931103233793810769030244459676332307450877435044403038644771822557851197770673877345241882919560420123805296714219594849775972263550436556239049391260828481734292384380833140638128657262610422482226102850166881433623420787908930820871067629460078240759546707022221625092836674240773749551846642827609229746854696322308992928628682569815157425278978530837317730906082138288322617701018525392483906781296525062276349347599111228129548305726596747254205182799577723736815498802228907819969531299506130988696116299412953223602616064251508074236031102889220855170694805933996803677855469125082786847586763367904565649009910558971700198392992854592859192094484360555970896490785122748166628164873762021762554252454759916351772474787440524163774722282254140491643263071902201344018468433690441005687096825322499877550829044153991574808623323451148711262094241355417385261190717252086743319128044239817342831823733519458624564987153270649743206442517091377951228232454989049370456556078057301557223452785741521410700074897078262856108954634748644243388837586542041266706480028058544858163054296654317027958435119341967876413822866787525566463150187994342005985550154575750951445721493495333105000199045142477018897741675299490745702088492468163661709965990454569217709892841541030347293913379739575566342618816971696714847612880205595366660851322365845572960742486091521117175335537846504001723582492161318248890250655892824862627198830222356967317073813663853749357643935967986929586844084949446061407994144008186172608093052407506618923200679292369716459469480423220513162010839928685190751867134239360574555869435097952915683813671242973282258832572850986996298182448124261910090697346745453987872195679285044328034046168861332455639731468710386582602981658838815974032074035187555499883159494114354860572087154620986632522475256713715905945596646514400826429624037137632086702509622828103661217044284062287553476318988532689278923006446883315203750957480393623410116297461299637857265508362290372001911247239597130568255140753650184024984197408965616658159817005633981408334100210157044442908127243407495259205372789804867894415708082378035010321818662028242798881829421345575649154704892303434430668025832775178884244936955740840442364915841260039976247930896792171099542966862577050282565938816405957383438793511696806734498926785262702452303660460634278088904034862844439400890113562651364389180952313238240356438824546725454917707174165399927280336021829396483935114085215526012273921481816354165627688614664382680855873069249976033642722203500878957407334312904077618313612241216233549164078708281747216452134459870041848263448825485477847716106524981889077248191799264181743692573086000833577777327424060602135973640126875062673568067438807392391650417921021441278377452202063420293913154941727326161791518488007799734401066016075240391593888135336004903876398152737983460989268246086671248802760258979363043893249594681971088375601280640666897449304889389625032908127878428083396613852752520835452636359856252939807471838652273230416185997033331289733924113888353463399174822422913063559995726360296147923228603943412324854400135230426072996636596618446783767375709116508708404499601090168034205754365105984343399341836782890154413755130557449992760115933256754742338892325773942866384574174040807301872862692834805807889288359836655857441084783114322045323739357226376287750960746600691875000539396725932562765772448436197980475704674989620295155055525195962646987556114974530051117469825298085574278178112719253705411006509269606461590313203644712682010946894194505644556432692688576365682595865478235935828248836653444826294044275621462321369369344579557421412484448522600496184438047411955943955784328209934344734556178776698805161070983559473420206699055873035885928793391369516217971947880675270667208825752905949692794018341463450638960430833907624378396139523201962597985720713814037754363515133734829893529110950760649243154674428599075923216002345378408345388774670782607277454610680898354952139186956007606328758101065382998447400459048165185195665137905787099390200840362104496021167143792668137866265399640346496497499641437953422664858618021017764981218256994287040875796407505006574399263947707692026831820538575051008409012894038848118145747318131258935621232389163026196146612058638922906279726260773410707956829995073421188445533913974215785239130775972227820636239689584281826536440906020695948387527768012487469511149178667414924860419611467380245637446784488081746104375522061312058868677072201860001407607928078939230763124201185195755871983597062039912146719637829063337228216630395212491734935198318159554070120241608410266715072111779055723247098454579536495002091977910610005085997617452048219165191482608245617799290728241204402237920756148683061048600163078219215603728096112942427775377523175814565175798503727612030921449944637237205471670641460060020782590112432867112067662844112101479648696801825981137019414622851187719019680997902054693170556570773318626606835943357376459958404866312980313091592238110015123644507604931284350455992088929977614871218747858005090933927686609784810053211149864530200517568888157343263443163876084198395746330921061184678180518503672744330487754562933405545901653080879599912997656803000079474898206140064997421072704879701757461074387802992934023663754930138753945857848397996969375638765271941689371271060165964979927924791071551399531333034227673849682256023456232064852245320247180644070593457850925119130023293057635651722573756496098445251752395893588460984559405041771168603670733364623679582375700215067841344105433580823877918959514787166927894708201146490976307365106418255762347496227809264561660464466115621282440734872731124382508989454950193826453314066869995751580319853191396313448086965381810899765108334437511125559328443110485402603311609655151533557803992519421410311276862316363398161076611965263404627699208036738980838456945212306146894026455353549647383381680321638035799626450332851607897620261059739585858124790615934313827332801003886185467490322102211356629384419066100027933183636038462457238173186714843681882910414911944461029097011552771336137077988289691106896881194427967568791903072667091181154087676506400729353551100049523012337636702081030010557049792998322029625037500370001315451541212135508999752372294798326343765925212383164037104118078763047417673185469125503707644721502915282345201464994798650063619963974864746320722295937047135368800589690373524299369512775886696881223690577182526199953473128056816472471127011904206262389983511798815117777963280105953408657863611160002777470047953938436597012153000465058420352933893355271856725028704164273693640754191585769905034077959237297508446187326617307401648804529000205297096732294641603959212757029483086889004395636363422883443793180877135759261589478770954602678291805942416496058152647100064667716779203687858592631256273472540341886538909272811776256458353670864031305632401218230876327429697328003357022491001363888268312393832908642257127793788653042633384406148463818121672309807070039596771279497516608600976756667632139791967166734871636201616710341199185343818849991315002952191045533344573218489092031536457878822257489014160603239077596777238869800328421306383899993148159226647593572160369762406161654012279616587416272492361679078311344250149887662456065760064685969251796380868522726552698782192418792622011295257208951584693126830518268435560672261742547682826227837669777449074038787061776629568957538476613753249788582149010096719648402592284917153862351527435140595548979696176688971308496816334377829344479996426685336598318919151329152143791674090425880478240311770166065594872786881242670651880433810475008473214031425925531917493949969929826374199259090998869895950474342086280297838390069304874037551065108735013472204711583545317101903933161954592502301093117919982052820555749177027867327735629132292816112685762809893469561873533044896802653009821303402580089058552987725730397440562936067433826281276675317286532823450134678442384021125469407157369895467328353978257751205539806923652981035897126012852248905285567750626134888759352406541494717753571599386067385191198610813761666133564463021275388204479949373528606933347948700035601098761366602645913273586679038449047326762514547228302816407063880490157577639347746354892517564442491390977545094934054965626075123634797626461534567177804362119950316905192411370981341975651337978914692003077927408187282826184751470731023553757881665493135977457129748340313030306805072350550432276905254087761879137434607823495635684884221290628524966451257223082156725609713474987950895042128380400083059887492454705105769406247836690530827457515737845380877934130216963675236652930231998620520077153921934220753435884567319489824803370891515241962684222719284701343944415044918356973719364259392644102254424774087423426647672369325676960837632991909442977394245046559566353321753630618623178172292600885397045275669092761784865184092835120272172374887377831147868822321295186180736114272800172560640365128729635940864903609575689654756728666515342012094741716642921557287362761251908939159788478569677045473460930311889494619216507278516598378186212831166704814298114974640666443466149089492292771325443546621040395772568490661238024718424315901259155586100540403694276856089268436186763022221111478671452550103154366573198225678895207630800685722025478257796548969653085471987470886232972669289059355769022821383995943400290604135412227579938098307213334763287739287916586582327566772860537669533960336220228222743103835259961965823018402420577029579916914875465944383911027313473909131895774799129153922068546666613544104781867657838309054480429524846888302061140784037220718308096298703651183410009442945515560448365977466239262600545512882350543161132490412072325589781548501185725147770742929214679594700770842613508299900617152099836255573864794634406633525363305018738062052857181024056115161778867045399473479393033205267870546997196316706738514135083905851848702178668805471037033600546436541322988312650405762875275558307766884218615804941110003280685243532410341754656847519604940745361396515193135636539804111148863015675357679864969067515983060692545746220396749246645522755883675912719337770864400950106888882696659868035186135263459722219003318878810890079596628960468434707070006488021827792717150312903750748161642226332769702410713931789930210538273843066802426610027986486043555600568385124437957346132985890871655367178091209812583410296171324234017522115170349026780036713122031775028296005815138546878768278337137755954453342175134711960851239626565296058672979472375410498565665636116461616767652703068382637582428612912434193966479247274996231003902136721647662161967318129875939100291913245143478475181815851954619772288031688059208675454952773538891259281859084011606242560558780441837640455198227497491752850874201511849147900606239483038498890755298022468944785988673483490146640405759256128580615959228009229851852794784891520530456005968576238674023395744410319504398641638150912680906929266805430149465111329969453830452125942608611768876471595298696057554537804594922758982220748360687076959737166664521606351631065028661668123544046491390113781217084196519863837050756631150805840838405166360403036666185748726108474494441987019541411483535430993203723371295528753265435607596297064535369930434261045797747899259273544154317520236985770150523801926774668953194933226202017368112494114195350463172812425096695706186021764521133194921569900044758958142209281249113400097125623727094585787182731527536427345813965459570767737200206568666100553832249030480494886119563007049792790609092295334272122598214517100233609654349378190668356200135027732742485593393380036476268277960776116081937140654417761822480584232024978391963464316484021417842647455457809084132373508482114697922462902438800161219800916476225716167513849366988048287852870048433364234945700785598569290769626214996823519170897984756278137476796254117780127089089311162120471111385320266080421929445076462534927339834223406001417940523665467828312138906194074238425293319751564017513243043035239850220507947381991097603056776838543533457296633344938244322650540061889497683536211653160909818062952881437177386331446743487853077738114875034019309119989620182752562815793084237966928293916892259451372698014388583791729056660896091915604501122891849453429222196122838365686396242271090842880589327501172952616476462006282191255180937154468092275440037687091727158267929500552786811092183808312612968831612233898448579629400244417760322017552862046883911090074148780841718849993660765349713998053938268860723831019584571246223662118654587252341506193475414675043448805323294437472191601268697880517394639294767356613075541659239560459265105760145347319598927320911365162625545549058274795009337763562435198329414567192391313106737509431193623505314765412744176169588194544429522388663170387865280488000044841555805231925558439036265575822710619492422003097044930308801347418557985459452912153372859628431426378365457865579693147111419902981881835959576510526114871420263352768164231330310284756603225344769397197334142804333011232819657675470202293794113695449741837257515761646378343509348152724107492730468665058710065208614075228200417659483666465366295860763771228944881988940294128715315035594995853646694072876395316245829467121430771351785305371258995707698279966054414333491833989223215171420059259871407423992121286459193056293626185108890718562161737311186658425238961529360347407714913286763469677508556996721452867760513194467008111196135575750057660837951601674686353872459958153591616967215985935811509861513299424546216793093183119903441880477679723122122613506586256595048070382285454678966604822318118226396374210490523914995101231866227762148898826976136825603757734413338195186722999145885199094987672593728045569217698429999662042848918695450594362693471529961649274367834894635893839497935849859963561834387787372684251122687176210641982949236707271639042647079279481631274866996258048053763184490577354041421672263421596517200208007716199871175733286040523375658941065636228796338566653939356438866806816719426564680973971838233726368260857218426898033580774210559791788344231904747940247884233570190766030828386688689622717058198639277163739732390729202608903798567556554910536718036299110869084695697299683666789456390835826502081319254453443955506190249910860831250181205043387368437403782070661636351686433112455326300906521508890299071962026100286403218844733456012818328641391447183577564660722687013540113030001063485841836608976200535884721298858929179093252323331714895055537145691746043882734020325664896462780703195766908513899477436504200220395711723882823371545831514575376783686547782759125617030548505339732472594130018439743331237963346446002593290980513896551971499000749341663540108069580136579849540064046803051528323466094927497581461922052625809440290042106059211650135827861187145862010299911746030262115713920286220544092698011317103198171662477249032802514943598188251167405425814420169175513879722595886649204336571242651575089202770456359261681900398395918196567516077160167362251064222113836417235829643080373609521013884629060340874428593751883040253404931391462297851671665279503481433281922902166353618933490951673639632107290067027522359299320306265326868187223199604625830545988344776060796432572857139239086475673279384861910409761730160159699792609239331052548660846685737992408054797284926298915938546051790175598659102414560307645552846140416401956244178506908085987806295735712915220083454527645525516121447919503248539421849883109941385270111092643652506261281162715711541195615245409138102390367598638076651501355632259922996626921383893918089088587297822463688768675018533274852969765199911086689445823778468050027187403367732674454661846954502651005230619272992352360609723541536535264749618824908422274571570489578214685432075277724089728898203007687143272572908760736515429635212733982040956591608244389726223398109830789077883308715843123396655398994855506820829434545580307425857007779059323226965149089819890894862150230664542434833636701022133581179940111967393596588729113125784912013291456562953820649583222706105747634684171294469464836178172624310064367531655855110094593603571897083682965647933375360746474580806853194208475111731662991635995460215140633148284504883734326841598384322799207014948415015502841710430071878120317748501243896614130518193608149129242450405890555003117350405226920934673856876893054921849293064380070296050765688726290783337615764674515657639060037982833875114607515262374796819028798582053015170502677758702150771802295147796895610834514202373076883150508802045809791877062873763884970198342902475865535092995443869602735687561050111066056560073291467178588572971942144001554723360323277177709619062606542905880195302937726879801744297635060236874998648328906344892905809592106014391394523523962296886529982269489016604294487281348630004621167877071293695144244189578153218705562665623441576427923745377577811844948451501347154766996068023791620715665778635285334557077508566715691753170732677973339710315481386243424160897273198910758135832712906689035283227983267355047360448635911204684199710420440517957827145930373149748113743440668610527994908657265308179660990049898949325468664503729616022216644548216526447001661849188431823687747178082403696227943261916436705254540511477238694594264159796154228016587191307232748513073791023476646266174119440270764038999400628704065017342499393093901268361608555656279991264423703042497548910114043779762213054750841781170808129102447745680070383443997460478298034173354219938313418352528659482743464439669537745970522591848653739918340601675613522741806611516068961855943909476642201454054992351488484933665879031420157930713462572911141716551848342542184991113424735329921009061842848020566263417294178323537491055577967186651988707012571521403391691275208568137317043256954222068341457933946815034754000773166736968727274641724439376855534901366071457360098086081776992575263450208918452812322050764441946372735282847234280517431857433501961543523318404997690062494048113432275673284050614350510582227768754246066138986287048248698619532113132459555581912000621017987306128449787922307398731058873183641531900330092216036632349186518216855515451288822708179773744698406884026751040472019411548639180523291133692528856170853704553205611406205259448215369943461331833204243695334191986017918017326796293569510869833626526566936068284506236579842555176215595343312612150905827423534040241966926452406487417814041358972272673466267327077664039033742072602596220909507873148705490756261307424123548123706601440240426576480662389635986216529514368584484440548000297691593729744168253505623046847034547860056989010457893585214197537213328564395375509540933335394336471521931956573769253902692948533695579446737789411709767905418010121511899126193968173039523875614740608173489048007705605526275293965033114172050918810952147832796905565722763254341356202173036568062784124703816804866806160105131794307637769081819863429296282156928508253744060596914022817805465800116010309795289647561545590318885341470962335401800551859418772874672824127453779226239137195427019174096212850723947539395328497672590625091206610291966885910153626070927185971276547019442196479986711919300190082842295668982687933543450742673699282262131616831699032322364519825279133464157532282283434770261307369016766777869839405065110799669865658069733505736285604079573503494486853571675965412842180369759020515442909072417019314637129146616229699813499187940312349956362301286691130652238905672944574598835026113512136181559750256381829814120895717653689340773862352222034722022575326799596884547187990430667506358061902601730128188085996420015726360338395207750373084041327224097108262812060954517070948492852226651108741491600809558901643260890019244614084891976132530427079122726048354056984428625143038870110238360355069267146810028022230270126744988712570440206099139318038987858603950161525431916062551311765613944511321605880152244376089393069276330586789579380090832150311206680508869861657922169393727150801877495522016637252272021175743664030077575637909696515491267543088136875272751242471909626687823549898454358309334108998471353008723318627285415268253248947649927662938888848290921658195715844837922905072306174486153192975889696832678035900072308789148535246624972954447057218384717489509971655157289473156733949829189404194907836308714155360509350418772441663139413075867659129560648224535367764451676627481836286939309222856077561046087091276772675045401717417106763852224848242580447909120129964775716402279273330735895960971507578704149873964294791385583493837212908293254213984461423896992424514619069814594905713680374937881600191696027410557679989409782988439220246198892078756691693283504333683335717903465848250293292054280181157043790843846698085009805745116072447381689237279510724129755387562102559946937071240479707763213493435157717377406327652138077507764149813231819163390344799663781624349923086935444962100872642182032602721432521905110208068004022259417633974229176283416953015485198304701945798406904887395262780034983899981449295021242059668211817854253446692305652470098749793181141067073072141259257994513790775699745557085547293790379116005577014554779326049642898137542679632001496674020800346287829362467156167821548703358194822526570811058286478259143966961863893721253772485175898723557535073037913951905930745168411426492000592620116738513455759346524188787742731553114396838047244429862064586160498751827770222464973859655103117875446584945976626761876020727611215379118500026614141595622197263754625230050268133546092346911426258497555232734145330295578039272645017183403572734055172561359142991972473890702113247935222580172791733573381723532178799376310722086558912464607764474733968659189161133922521997701600231434215794469538611904393867262815270282530878059644045201698206928569608833691324752922715363425346227402295846910658672976113273040527875734181812688361331376875921309206334680654319648512802527181996647671093527476817400408089972343110010277142390815771087558123722946076604579045345143678998933605565378353738759939050619022467623854573143757473805075315171184991585499364695285771043865639042857962652926893154728402060341084298891235575546854510113676163443512515152296790836465463497421333866328150888117612681951314068061060214191696013813582838553483467165132948635921686682551475068140815273705489011186575681069986536579067532382528666590091978393282050108205501159390392134663562447679355433400798509715352468956183449857834952298801536098949167444932009574060392408407850604575174519490621859187737823192892026986443750009062527787238360683115422621377006116194294787915091454054043013713162488601981771116009732450287486438233765661989101459138200986969612061589181083378915585461068057126501037932130468347893675491162933083760461758358251102460320389668457996801875580492918074287443365942986473186688715051898897207329129560762392412182639596481950898510428687660250363546439682516194631284865319009143580511961717546274036967962056917219823276040298758363878089291651438525915453540557707241090998617958265057210153192854321021565136684064514632534547379683417294509046529537431547471052113605149583086246877984438659474910823758170026880493495334118557960610795126986211163674341970063083463882301423954659306791332512445236604311296039969842298331711992620316259390843113714760628317598173189590733373372543260079010776610995513187023149411531432016303294674918288976855554943354821447645269169053371775911944715889509451553283307535342143914218015611958734127367188922844984602514888092667070379010789734523828248852579409279199092971822087738863543733161566388984676973909437480521128656862784154263849679457870777573611089315601211503042388788351902955998754591560366013710580585356607389297129629918110106013216248201094524477228202527842170159895653533916788076651680852697389779729845806234840308839153911048882254533455681923576225251016849889870388982101929621827412257701850293282637244928680621573539490402219281500145895844561817525837020095032351878203562022561070775343338190055912628476767833085881607525304055291979695353454440923126221051876920123368037874803236528354531343429007587368532241916317690314863907833683562628527170308137341413068900489092872660542654862484930683564225345331101226495388227205544708679502784088856707215020588685923501316796212588925072837324103700690765354274098446355931611665394451570392378569909734565666857259412886582546202239858819755922099914942144030307356826843537837944543678188581563553848265004961025857236681283131014133792982721547443312422638570637180295948504356708101386519518982860431746014325186757780373367989324444193000364432575444608583929877289167896445483792687305569353414936152073747155802487632032622340012049349093513676823024677611744874305236042274849181943940900946718395597764341669441455732467263270509845829592758560072589520630847349431916612892388304579467342467259531251635525467197795583782712188757634741756616376966644791707756802416454790669445969884345620177788556279979394708710959036296895489813761392015968989461053186792358713576298127767591095597394794793821893020586249880585171711729747050804492533905777662947988143301208638047987546900393972487464637691711288647279766813058651054255678680957149220681866436187261506335910676787221809610652739153230943329415113454445518606265952115266922344691537478024326819438308728000608367791826209590696306695534311784369004027912850395897124156522807557959014089056845692146106617097006910450652431417624867183669406617011636615790326368488552177465061060047404738251153142409641905907360647277016014013990112283598914324035155701042536259883003006500092629112236890643583322945934139823940817799780779419253263968825310876892434555656642009820101086235672493470740520125753605592542674256136527153311067236541026534222669770975052532924322115384607762354889574989866179016512033801998664190837840058897531710738294202843496340281751056194147368995403102082857070068213477505743596114379840727578520492070431611384706317680129160146006842074788181627746547915379978055428742988128960084057943601356265275547581118194305725128868981030012098049558385409950549387856915812056237666327403379227065483071100566398932545733465827115395712906577485602168561205665242846972996417740511601924337369438490228062062287244463862103977473450960266762539150480926714991542433601678720788951463483532581129818444543400890744488970525783099631191152017296608761888020117572355590221843360220700452433035121966098878452418296101688110914543902493065285884170411844160670101612886033435489028791215826849125526233405890724458185651198627582444906634497233830247217672179845686370362740951257971154075636362034150018731250044355622369037058227932279589436977507844650180044215394533078804793132247004564891427033423502786610627206786531237887975246289047852671520721020481894227204678164890159256635764011470016310313128331267162329517600131600028971396477980871142899772381100818737793200570495343743912190830585614548649696740480395016893766776866376499427953257760581698247647990054457439188324210831279984858242911582197098079793918300929663301129193297098308796867075751678602443132211830133018326998522954941956262989775797690591444368032722240273591969199423249531746763639312028871703809545707762660905091508400058636085949010495559729375531118635967647278272239786664214988870170828020459157852495562051433503309638261105858646642172765383385907819293341306659720499808908847419714689932953731153905251887638719891772891623540753496515894681990123461941220533757073228267009255485111675359038670061951398679203326558782533981871365721821726767757101059622620436804949593590417595374368170554932976665793026364606826233419253841367083651071372212433939433861771595033962392611338937854525213916872500267697858234685705234492781391246600736170324928110850736195611548556462415669639050567258366819052109229923053579275043881777986491301065390499536139104462435746319208947629937251207704891286993587440429810731603941538651949510172864189977295379005476046945500840260924745784767700184620926223194784793331486217004322432108011120798537074660779375692694357491153969278716553110398379914055089089033482735042124520679923682039108748843767481536259262816555477971918773351107759096881483271150138433996637771388310164421047701801696314555582218275497315933371907458660511085580811443747382244398634836772497299529673963620511302609972751744316657268152882877763114393391922101460312651404495241447417479337714863517626025906669153989553141998497463658250739855194474691441893419974082495439068397952366535552256882946385096002536431234641594066932696515899541335634446709668410309984268737674157112374417939708924250405951229521923912232162947348178598921900569576927721166667829267051083529365840807359035665890547340497905307869153507281383955701536355288776615098255195129241178481588912620151868647510762135108371457706680347644025609337490440176024693491524248300923761358960490891329974029634373389536507342048477593740906568397257763344342135989177486101748230479289376901302782362306687177980192309795379006093933549176814776117258830324980850885213074866476866584322476205185970471743396541052991982879809184150956453621571159255169795947841815466737575050562194549475981832216236413358096693930123337952380657530357240681094128858694793000653376360624999955418170684193701309757263645100761422572741752632983416181596831837963980767403059022482688598925512659798698685938993158206490554669113895661296819333383232020475354139842175187552683481125287172562776892382686048450182302688509499136865424962514596623536125285623504691669181578542507839551948853334775351571524596986984786619904339441262626035612995654693120763077584013458855317338457157591104558587136049793682501919853675265051269797533630772056896593256088354069301580010166543590387197326069277748500887456043621001407927659087426654821568643501999071956019361018307295847213914974617795208747427195895927248130288707887347168788509398674058081164526059297727954785804161090357800374205131745292788951015957515717253254685073842900663155374409972963486934959528415967183344243372048805157242415212549643622501470044858441853153269084445487140324583200835585290313199286868055578621181598038626056136706022292521574405124925509041877617047938680927997644589669262597257740180257472739961431110756124307138651632393535769261793261231847764277433160732238926933307828846669370842497001221827560174495377920595638684301727474113139783316660302304636117706156588454931618242853907327012638490197775285690893841267772326700675923033524359590319696676603560140150501239692777979258421016326140217689993308561968586926267005258712980316791291076792358110232748429432022794175137926288957627431177607541282726400180447609255768399252335667924122890227409649599263602192569067379740679857899897762529921619842766353501837330872857331348275377132484555677241346679185641940622195490262362957649069653723103690201804675455325632442232217993756072404175525298252553360382756432209751334859974005022891582660800684015313860644307446160845247926895828175591118128090466402384290647385870564786760944060991773253112309197732783804358692733020703338922436154454576505580906551410632685557654250910263111461446582748339149431626505412657940445610743577668245633784930093589356244477854145125038044625045458973088143544124871916832999584148674873432395373981854120995686802371525176086627815168209676184204898567182557962474095397114671954238913424821589521968425437761481820106118755191295151434899538312014693865336277276691234622974803442571447727552779299403409723114895530538899373663485039743797301729995389190829887466169487806488125029391689854172858400935425934569961112930336147137932684104369719502774745943646760040990070886213171259558731390266511103500698231078787035387356632263499840197927302291907153813289138756302047544996896893957676258786599935025800816055059513123211604601478509185857917057382239918209661348637727707835541346495827058853091972991351609829604840574423366845498603453482857983125151502547638950942360346770695448332937124574434068387520959207990696705059004951930967761325236295471650659274954488372624551162846488969328427624875442004632247440388096087114062678870810863946780093238461216182176924280621520943876733832989084620412933717864144799937615379088422776482026142847778540816409358924500422269265483489758708806678164809492802142930234487313278758688257538682385124377839252857278525134079363183353729452073062745850619249106825994068878901441213077253041950695903465672009703919778740335082415614333638406903142796871570495767324455147284778700128909457159725923703004560693999444992888104955875294824462272919738921563770059815887145566343608338575929546975690772842016158742450967538691379472295643299542449319498056569940636492951473002047938317250159614711720890573933181047424180516100560155631334433144281410553355612003172744402306508971916254369609133491335922390661080829043623120716624843858260516039383861159771930692897826550478782495570630431821309305265444826655442522009449971523384014118560549669199029545037926411922198838451272349002729975546126134788906576182888557671462718044503510639487379959137360748749323518102377685267355368556794223447481047524013463771305655976024869880973245938439290437939668199505185787197098216839618508209296155425652027954604515484201963373547953427342570330664208307022598053649914641708509193883010838942304097036265006660335534241236875735124312393649415778498164095364528998619656215483548769165457357943725924561402246842047092131018966679499729560174463256631345655254676717313544911302133841007380255200693055593554492467463672150268329254710264719998787918388541821018804068729179909094133084938730406877934263979447955743357836154123243477375642452844409840056172693592951097977898232990739599589240935537999921706240650537631396911817024202450640570922842963956786393277686049812313424916225630250121995484884398934822071370602773388446399533970759985265714397814480512782049934335555181361604024272559337033362379132319105057988162693115156787295301917725250455972440173506281041863255734520411917816278241883567511614718480282431088399100381229269450020060427025377692751020591421781143936345840465887541160777263102833789889882654833627236671631435587759426588462176215853259126104031966798670709937584086114595430385275454248147146818146194715588315364148568539173573514368935777984992575947610556869621019828121184139702516971945542203137222971276114287877891922926327095044542861931504397468669528548755670666233095617239344915257468673503187017515850787263353785743195167045278091278588654953060712465870549544479189155877283490700682485590934097132236363339146636239351019056588661458721467796705605832463836530350285007299075484480129584627898186251701155936466493223128665382111924879028163838922029820139301549296115954036158756922738540972599020641976798621723991097463163762225347147570950233592952365516190778674113880222280535097542744609868686196918348805879124582685353421746821078423212069303051452389719268209839071206296237004607886203609934698264802683115331446985333046659470040216592842959603688748044161731705912578376280666182058601140609202116970776835753536237932015477852852309690030783950038308580735520318506487531726785682144378339068145119627901222748336114418917584614354824533283584776547621865093400616682367773373379868741222739979977694627807246388736806522001136458315264470947458931738504002369616667059937869345544942371432698484287393146065846428219741709418013437531050258136522150417010160255085729501374856487682629851902822779942120007532313596634761656193056979356727536085661728293756319961106083432827155238500905938274267164846688887204786119307371253784569231409348897152365681906494438807027286477029974119469106770757749891949955249091097638992162106309580859243638940562412359033351803381367399672436362760661829909158644222197439137641300399904686005413877086096903957081545649037450807632725426392325569194507322887065020675019349702475459908757148923795070048317167906381707887450852812718281078779497427395855910613747137643121708705367391695965203984248425068696850205668616331260883480422154109308421682283188128126608255963495226612932010238002691980429261276175833598811998867553115453012451772825422634064063561784556594578566602834453309801353986889707779952609775308639501705541829170504995954668243146041713704726189670080769417283916906958373848702048046644326864763697415240347556700906372012903014583232422376519602531299182055248880131639340765435769061955179069877391515196144885886564471900519629340375364433705138545778409250146117150019335210047321953499616579126424070654226990768992571477777012589844723404255856852452433659503422559551128802790995210783202604294090054718051435657308275629048883895357898017827501162883856154416827037435891088407010394413751929238733616823893268626849968895863159550508411856354717439723821477569055832254489052495446959109376408603907352262713859493478794522781665148414307151486275702193195865477997736437305298953645344334682879460670810425137845920180513728647305839360919627274276452129288410215435729215899572757213134896790846030494153308850463634390250339733869013922503797878927492775299108124844214510883900598106738740534146482829369858674304828500027073252272847259964961435844987120091839733063098831895365915072240333830051312969076741212960990290174898877821914511834867554225970630578964675540606472080976336878558028362849722239131948780228825372433767491379932372608038761940079905148717666083567097988601307672129879916526706986227085088051713117252752981202956683583949266348041173352456359470297897413549487104245275532415422458095291192917230489920391756131263554778300297980442934291566550578772999677495104532369126217067279331881952765517434186304463302371462566991768805889331743898316976168574983496171072261440901327570822002770757972892626405177632763700457479669530009627518993803703921671040310604359649983718254940615138769794616897921844140243384365339577931923469929136101023992925279358454866644624936159438878376732537924674960002452522207860522036137117393288460356046540218369398564546760791115740662344389715127201997653169658028759169401404674606015958251039993151859688442638086513158424900729934929951656031029473512804849736309540606018973816914921115265464801743117094189356986258910274571755651913190774179994422963427265814334424743856470040150992208956644852809719163814971493441506070435048914739701493713863162685418186457156445576811297516008012687446819060433382672452236241085483343028760833275219278792881960341648895598808887681109018909647334988973857352969529580113509746323425054061014599614484417677716488296828026356345156718310596887395328263247488902065123630932045021349037824398149662814114669727302330236677464450675430842083238106774137028888939735326265217813330231363132273923465398105738599373470763691474847268445210608407230089775650620505299248014374989199542772766604402654120930135724343334339006711491039349998638093784078579224576763274651546219511902374218434955024491804795139513169605316358721195990535327637113865592424079000034503321824365782571469729173055928023599723526904572596525282724929086703677821152176546170268995661405706263353503285219060965270092135241892901208959770078791780478277930422872069419424507357032209497250278224554733106052522627713829416240615923069000472370146352641828594098946003335669922748328643286247402549383833364768623474723360881500604091550865382349784954778173684915865711333706378201327287992068117443447298257547203815079972167976592199001191838350780976899684782235996264996851444231043083606361669829201665073256046814566931659400082203952176699400685714886484409207500276986574079891262416072250977424883699638076628327144128533137357216581903498605650225347383659029621935877454036465573617200518601804242871624289563854583896405891567672758852790385840810316810191751699193883755513609929520650226353404386776784494328708376874268559045363038623436557193435862131186775125025926580861619621263041874467535474592394886934904988335786676087190009758519623248849128531711767888282092756665821181668841526821949627115401707285384583159931868522372818428288131592502274326518941011296004373128706116503746322267630136776979689112384358692687103351723140730548380997513727821623749910263783180850553015608868448612518889782532391588393674159075832541171733232114293345727581665227803878011736423175431795692477005537522789617738049275588310274804725464369731470741191432948465307908686451353093715162565830723481391701408237043745790549038400417267460459103896167984839144760051548083502824115471606572386712371200927038010021308760585310387817638034292072302004756245282722410743821282333731759313593088945616429389949369795800074078995257087683598200099267490422508188354702125001783295603440364580650912837473389121500027843089784818329911423771921656534096116925195776890343452057302886949552105938329818742401164918822595454305696023116409463157297609072434971453302401435126734056500799631695786814113524730977517306514041846973220802206471082197908509619159238359744943400670194705633523711137468581313090659429107945832867749173511565271360307156588705508610941360248341767169284534873952339302555413598919290250035495015887588019348886652614548678620063697795273549174769678827217342391886742014681541313472217811295929852361063538012038587631056240429713269726354965335723613812067803661505541199160368949769517998804779706145411158892563917261785863930277480454081999144825089080102725119292985265137687559067918136334712023551573203045858631981150415544795648133208768195603099831255854037460463401207385089507654253224833529188005142911438177334055185362884883537399225793107113750309641613467911262990419863630105672816605389854391767681376648453053672287890911487306320732930708665255821599647176517614209543203194128971198222112762477235001556747314016735620943528558135088187670160254663429362880180160967105657684604014370545226018467210249932692393821877295645089913602330187375750127399886806869670388297234036916325157640635992310351409035456388070674638446601476744343890270562924087658295141297679776012637822907811379033351471441808397845801905875369601584780076344907133372947573543202064784991044048142004216838598873977883049625799370680219226348104327081026838070318212255115834257710663236204852815772181505488921414857993550807991177248206823546948025962540623466746141231014232193228737660187038364281450105299555719814586934739914457274665339059659107831435774820882816239824634723637601403255457415700042462787591923453582810180750088594589395368081112192371995087142007788835695052824338415450049796781425174488076990739550727652595763749828537403259907993658383453357463349483795968766734264748292553233544261505276409221662467254768388592447029849924464335826823354759177720897744968909570960920671914840003888892694880670284892366078809470955556294675312529635399557422698726017416690162454981729404887968815334232723252371617422174955953760711794795097379046431745865602680012433154259808159102669368226868838939955385968355595927582778603738762131884848731698851805285180562513912254287602946191256695487116288438136519849345231286117506101972859727511150523083311947533124153652279828449221335150297795742387513219041818753624821853540355114994231388174094268854351733678694311079960764382305401377940828629304909453492567683742546958671307720019205117668260179395853556914134622948570902656791635081976191224822876181601272202528274093023647788351907548760571352385200267025959798998699753580674167231322822653096162287091843387142649588706898427326372018146777792255312516859892928090453593284830092749422968389832945918780097324379207406093414598579141640816169888792414944370394068991093513509978653541568648602263384713773751365662662872891159868920591898672408718061071654381420510777540245864181868990553073603091981040982436756510613834600439823491798942163819177240445867389334061618340023720703806929659361614816329317344328407767570982569233324906121511873783168547194943904128905494491152142109782333295618118241564232477656756682788887609299946491373547362853171092387936166623170046839001741182828294745686332524363624717236520374330279049138353560023172030175799445874766937070018238000065818886407960701286258537253443102075142435211629690945400513102927984951333488338166965072630575127539018410047370048009233793267280407389640860586140321950893597570377269965237773248892084207005703654020100572822993714295361722876474078279324816988466128422020617593242328517621716737811541323670154597536260763895559462874981415224025041889628320713218694951949358533668992153148442611770878221489798318792638137276969295194671309692394841149040573197239027740423102142352500151818442325275256362367864630586393119957159511581516371971112558978514508162353520635642108546300980777735165875858962812109101584012692670380159066703206884132878064346701186745726373373558054253704388582955606152844604944288816035524936651774586785097220829057052247765206234736739709031129460511937815493334495203337113193971421860928837746380584630089435925700974830606902451243926631362814796267153406872401593680629788899354007742523483753248400442640996626415212811660918723538557143521746556729237265423731514684470470188578976892588854817272988744291007426924496492154284375973146625300573650173301876305451294870359704795139481360833401540989299410692620053142157985960805118801248841430536417958326009249536215498000495491334931013183684541643011131597680376620971829156634177733487826823670488395705790105718124708998559333973871322492543329202560208908006338664170137454026983749237211387318648003111935720530116986437575667358998200865740586585218371314955394566923948208352448642542787937705137142896420478239297128077956834537880114097753736851601922542777995902981521440441773584206852754343949336714060635195956528516269445123320450276126875038344242790339152393656490670249169803006173441856106452643180725823578103929823124136665220577169269397804229645128036708212969306149001534437557800184620845633582246309061062470449659822005882426275112045764993063296663152942116651333582929111906454470533571192888167392975115056903288677563996715740683985620896080531336774385046261912803543244693904618118744611242420697174666654693579694032101297582095783111947154705300162895587662997680723195130098817256103100455113249827602023010563770743215319771415741808947876869137301481516335852217772541473732646526078708369214222008573909074804433325704533712793606591333859824687732584558515370995980393568465228436077026354945978667286998008690073306399676467951783196606922394254672209498357363119414520788736871937463321561298054207380411307923650614043310954972631451900755629606992658384509982754542257438670734556843659680479075722975957786259988460033312783586055011177595390027743573839742794374061731902761462833893721209073309366592817681574050468153874786138447459286184719698341481187284845162461601048239048411716570410693058937459376819806319426929048501242157493864594195751268597135695746296810456063975915655685097838194182969713033117613135774630261639287174970308441924702107394785202973259237945605695989066221856746980139066709493571011343766921217521049623592810898669220177426039337748451162597240362600164303952886490866144241782432301878666109292558644494667490331046512479211075650922865551506737741259590041660980410248639040011357498925524047796227586704599992624793112806282999630079034474352894659502117020979039756405415213865793191857955299168900901362150757297560646325500900740954228740741968389573579881057261478148815523466266210560646819965468473667083675520692230759907824613809204481034519031128780475569050116984590172522783853346850974226592380981660771020550553905725075749718428073349978488988319070427906582491053393108833487196382775907336010018188962713439970508732499515729469761988732795475268729445579577510607601954716363436290099295745424388092837623649720832174347627259690534593239112183098069419899491641673042714244305988441692619770053947803348860510368689666110505253151649377266179947025230027704940763357394011253767281061665309083256445001717062838412042756706742072934834107120623096212763088253524944586079988570581197046538384189747699826254539189005457600382626610352572340201261840658178984381586852204446014893717208121411991243782138265418331942487438445902317191162495321971448207816590675728828211894047641269729279444440052860327098306689424804981513911515531769285558822401543570908009012329678733602932372930182148047418712241627695136417224986825164462224576112039542644008887995466349382331986651236405846668854697524284165658017920327470546749070999716616149231330095319509859091458152699216908400789133093854006041301166632973376834255102990884884662129009674789027267259054575809635570694937605081885287715128269181199823825594891560934577479807189224364532468867142694336447979951968231101711977313135132415746986810548785473094063323109936662323562855286797336734023755199896093578258664035045061386063702386057948902776254421019340859442170964996018459822903087057105471225845717272116605420629103922937474811622008850442956624669201250379445850112344655749529696393722295072074174211979056329638752187766605323222906313105660540722265633654624709007164445979091544403580847065872189775288096235147509070092612154461001090726717531338451062843492290675853750658110723430146754957932273861142070602441755644677068376203777421636472820960175028704305339069477999011517216395931981693525922172464552240090060881750510197648209141953213332166971750554641000677263435489230318958351481891665033369982032971249447917548087185936705764173381609085000269753708344695405061891240063988545402939503061770118027352882947527630551963864639573189614696253880182019327812923932575403797715117636179392038937610885080776325566919726376171726431738241115277145343363590470719419289135899989171725613422035593217825575600457709066604547041496907344930064630521336424069883683805294215019985293380977534138685181704945472174869141779499446350491381513906082701250609966492545099696154251217127183274707680070290767826956489326641077407110073797809798135117408044885437628988207340424020096485250322962382599621922221464297789228889784840277179223382696439472964032605141147053219219855355926615501059038796034378304438790615541483200821001573322816974365733113431741502343389657265988890840627296779973093946435227028642864344565765622925393115788909372944074516609474331276624161035078547534741707297687871788418313701976716811178761085965662295475974972748464857861836779477764951607080413929318438874474910744891223815435580277895801379596502556125478140746912229800362275115020515727595758762925740670768733149582019292731377681824303089619655932924490188935066356389346177825706342547058165351287991584774889062686645369772622475504842841970108630953347310672239069045422820543976952599021919293669053763664970131257541916134522427774229177861996674875892705351751294741383552685270659325562685554712718890543262226504156805372807215224280337869866795534359377968261719006301035525277388622104961095567677827190286256172957457106518347260288788757038891603329874673328026555967388637519142540497365113383941661928290984743803945098397199263889134135813873659927801231522400847530237208378651367723441871487099143922242467246737692240387333912460552121403118837359675684291968444418542590663231020741535070122590752419159925090184212557830286049027798954069237079461854394855832838672356732515416363642724671624455508571791738606045948696725232831467844349189890140581560164569143212528987080626656471666796773516559301241852883371200254694515321852195621888937472627012737337574186423280838319233177221024012486386976311670240839695933245634781422046827056784879412899656010778926946361748753874587640754592771741994616135299329343727885346733256411078070354361869818567817794364064966766065803514774216160411466261955712037667779506722766106748757216348397948760604203234794663674527144296826781830063058098675847827893175763663934566248796019719765585291291708722355318904376215026665342692470616942517314069148399156043640741260042967852321522026366918100078251149854155077502475127949861383425253265582660406535930735223725054091874711400443850924739282153673343015936696652549356754250169123960204775363282780852145175393868277288210545031934633118870701732974782268280028782409137375849381616875393284087981295313022455839952998472152115463712280385682683204357352769304695010368267570389729329897964094014753304707537413438448236264747850245720381083751586614203542478641861068496259698495644638988104518978326336594557027643222459754389139867471206948368701350022217522799171154725365611722571914239452715795770763756013065809315756101789784806877572010398242855981984993679714073031652189014770966550516984116262363517058278284859313038633520041023830057340531412866664205702204513597863880933946459153742457138643061539752167406448297141193331100615083229950166562251919414428141508794496091182662683234613485424952421751783252929574238770481778852389049059367795446555008383010441480854399722161204220787612596097932137064070915586860348337092113798523486102900683980459252535611735096792738400570864900557277724678250749882335544371048703693247392334312794139459463380308990428103928361337959986217249636579221904565201450479402049213429545945444372967379041288913365108537799565300919802973280868748323067252829880294284317771699472243081417863351334188513159848332576309864712337173842809790227559658017787733775944175044468891256609796097698902094244441806179215501260345582368859422607384647093026407421091617566061317346527473700129679987214917740333811216681676238059347819157193398151419684233708675504790192306718959629886039251280689721003671776771534777830459829567667830119926762315124559790254018461660251838224156678610508334889798620929293813252018074171789113817515073390113530588510639479620411127040731910042758589168905049294614183119697343586116901782142693523073017238836455523627549994703258438524697218055178057917868740048755789586933733347021082766017239391866753364454844368043742123245594951821693639200223462808633136328920675410147000161262176638221923758139049603780713865933511294115112692695088229268741583236206711448878672433353374637204592552411382020154315531514363498221227961578635328107483202083532804072390265610291220584272729715929961959889834940229545114994362975511610222963428520734597802773408022556337748727442458447400122425364667824195995157751206616092498850143612388648320104148170911845290416156131587634948006037682465362444150960494127364349541452854121381599846401019393691714625236985519588079947417059238478527000413381924137354934165341824677798668252012323098935038109665265922676468555059792189179760810455150652635746509021285067152259755470209027908934735442376608202733452875897596741998853093086264322599397971834570134599509324239695326593684972093673811529731064382959671218994026859699511595442314954844705578739470269772144430999615555442099890978682729685973128494519396563212685721165369321849650361757463286091153687236586234798044345963895822200052836793268837631370051469813438549919731819184930104985918906919432634253641641657019138176897720828591475708456120020586448021134248939786597216728583423680018211774800975066989216633943415133816111183676983577641638317144420526276782209330181831042938989108731195188514777350395714724744658416979369427285673089015587531631675203074792706534511487463234053027377303059518157520636223829453479992386258569928626890765250207448225873949023561528008110025814298914065927393287814977009764441380946101138230020981902479915377537101771115136373151806887482175832616434804476665308457770928681369754948553094631604282289728259337242808919424969398098490113735087017513113841042356685646179130355488553479213525336058356967781989682516137361324110377488873252491816025849804087949763882370953513639624054663324121327923954822309372395303334057610769143568430166166625242339019540734537973887938663475451988440261192253271463116833711535241729543074740410484844524227804874480562535146442096704410196030066182510317137686197329698841806766461133206970331070839190075995021927690744165444413166909667677063372355564436770256602004983495586899590808211414007791892133900096363279716212381630750522257259926451805726312370045986049122577197596389496715316609800902540870536077436338691523709350403361483171919583071499369880202622676824826828572850977226946866351251549216173186132750030912314704080500418275835034175872816333521698975029056468183741079620563217063323981711406052099249445982555676264056815211417680616398648729974445728547952472253632599322342724871819327835278714385573324501319395974506994293470855743742431964594660565895385572181645505688805111699552746655461698837641671692673066277097710871611961993706482679691989253552376440547728828061520908408775218923808338945326348304498229531829952594903589393274681991424771200537151352456098420423825785332197403104344939755814449372398315980339653160936133692416519650501874791085680072385886703287160069189141232586375140624858719411555355031433205133790364182425039749363683779510317605751290498328264781442854081383707446019391535636125596951979866357039954543683461944919130672278533886007734457253807800609249672884020587743746045225955510897304718908666802969419572325438647595158283644855063053913429069900469753404511358371530928786821869543142752107407875927763304441301684654706766015949732868548648999732782381538809553838396918546719178392074771217436594944296903627404993046390658110450239960001375353297786845338117335555198199511299679094445325609138533005942168095647126147833668571571342533231525562681183690397933017670470911420160861900341039722715720225284032931806570563874016799232674762748388466013455098495243645807074371330318329959161567225781224850559573695972445476535300695300887619490227167072926274894209233938914472555933088765628133060584037710938391912028870298305109332648922446228813720793702541183799265546975092634026366385557637910728716622972696475094297666919086050134333129135347147300692581136943507542936028962335345900568111149396337558585031694858757314504164151500267964387681169990210886140569238327782392010434303146488374852134209425343812031968667860576902573224129857702100660436352144639960582748633002284291524316002572199415319711704340130269667382257721952558772663645940243353499780838585229967563799929418583208918201824789733761202224252344217195956972218764644106989990595448551922546682614480750560542324518458832440021418486510579275337767054962503266557753944514531109579905774475794568344147647505180526987172680776013704035682040411680360926877794241333298747180908030998060251414415953936496128807416098186203734460859581461201190306239914110126100992382400841708170108168655915759029238479300143204504847314987735440940727101445983099038516843870797564244935618676189694631151016843426266206165653689422847052100716193005903871056013984933695373161817682520437611356257120697332007667953443766136325272285002285798470037972978012565104914636103752764707840730496491115383555910335497753899090050781810148315260196511269327817973974584327047512414086986802259806615997851795122965844687919638639852268294072198132752682813104186774722633537746323730308198361076037590034340474304014612902046497386729971076495579824456429009859128999042858500971045112283719271003599343801613900668361926554152946553176426151480687188829690016743990627009614419182837142755982368512818855101906622883153202552868742157798411027475686747507670951963918385019582550767359284583243225383880501684379276931251982524734665921846615775029323261159736435753841706589953494948726665962308894511978223874460699674890308808310868502775436960725710367339320131979785105372863487267426216557922797272343878053886462007048075070389374522475922321654034316805635877582242100525014869105246236629112300420017873448725388342047986493582349663772016107504201542314111927645813776978106877214019539870165709989464315003217629589377468009921127486404775717993128676285097132546884780464215333024469134342397108732991314053981562928625022979725464093946047218690643955075907835951961612378787586106253002650480802428780493517678870480583164686712583326801109018349148192775497205833793746392781404801998586534486103796633731309730976350966941860766464591771230816178347651743203401597813756190029371293676647007948286359891085985951864540841883878957909854761051983324193329238930713239721671618784136737310391001206328203849554625234752055434868798656722932726974223049824605166420102514330280446907707215828168212112049231317007240099204088053856466669144251385792462194796570016071196821079896091722763165059006343900053242659194576130581073154057186338396956355988804710702284104580777560251132931280497743525807975138455684007463562375988038275184395654974530202461038216661859460072315833017762383186414183571083649770574611741223109329665228409696674954038701067990165763745199855161254159884406003767519265255963982936137516268272339854678531777992010314337769288010480761323760071474439958961174926223522293705936067333646936513005027453778960695711276416187381542980475176096342248565033794267634957563729944642948543015413862040154345008197779135236192688455071029267100833233394975948988303062328459244426143667818575829008067101563553317249826321015921146392039215512680521375851121869341431582014966714119081855781007395842513170582340193467434940626090943615028319156728925797781962171414588233530593160835749631547028615948404856135824565481573632581580082415027601384007736879931209302349332634258782530902646664078824930632757184722746487899784109950244381892826591390121871345770705854240328996593483740107785654010311561835574738347243224852312484356054741313402717520449826523147494289464323042380579657577082351137352251178063715836216528271517252982021627200993308575182891238236328326009542188417489389538060399661569866479387591207620281502269587966801098736605520929413190435046422419389020557992176032948465725061603505277520155606751357661815665539830897909205964691147796005728415032564510736066793858651784696024048309768925577546818553901755837516503494402807841680450869900631210217377428658582647688905654199073654169660562441167360739907849258255410462273594084036567610620989614321118888411036683602697813695494749586620309995902504268346748435226776796455543877806487532478605329096723369001848094042219226252079694269625307848363703560908974241969120016473832833103558306568848860753413091063988828573901139275023738229608559834573548914846743366847328068502085827278730423405196374300567254879233609522385880071153443611596619470762901910953575768690128101652511373956694563775168961666388330348244756892296427149461965129990660661286424536011349599274078494840194027613502303030630642626881861994400182464804012113002708430137937976379463745119819453268115488022140349550492249713217777806627910389829121491362910807484198210860394490117940532173300781756480096396044732054941381021300743357795807676982698110155184122576261406237142656494941509954016005511525131668532513633548466549849176020535692354783022635627397798315488279647961829999879451196230762502826971438649837845408121234444641955475014317059432062855219464680856230765850594496363058558173572800327370596104896868542787416126163353491285058793407437064965734560375784342950002536046548448865060815976796521101112821848692898751611288291802287831912044374687147427033627479271967582432035634883448041752387689141815877768115932257047917851767906890552418026697843853010770805771312475715564657149160809428193786855296311336427393990945210433854388263919802738302178111142392235343128779970689176215313417912349799737120509868226169031538343988105720353910504443083923487333564428769170712376693457689997674112662225313585261411625718760501624088135499410770107513067577382644902217333656796228837584663511367744681106623661219354774358067041829831334492720570852166158295836326155478865508827235309357745167065923139060660444252038060529946339658188687398228599669300131510379919343821970914856051454234243794331292928486379976762507930782759248346022977866632073876462021904242775587459490240460057239583023226322752610980268034464335270720715420925091554691590728995155685086079369227629402919809586408005076629230701423320451318997600446876104907915292121123241255709268471477457368767614614150520818401269448231663907957611274126921170412522385476234526526481582113202001758630496808019092077588822506122292688299986501365568478196328537029830212779898697970897169884300879600529106342069784490275481443993689695593256217505140898440940131004224423832154956391281860418437541009335683806720969563498827755068413010698177915743437123740264020332855204103801947893017089787553353860497998271651575723005601077914291136753229360775403825374935937197433719235839749363778068988985586882013811557428883896089892185184875355822517576034588084800463223797254633934829934830674454565765855043334288436384323946699830952860231484086247234794287562669552479227574816790980030190552904387496457313266571244454861330061874547152603588946158156252949456172683403985560008610463988254453757028429566243098883407843330952583880810800825061004095686812408272492286424594107748393599865428452272070565980807052459528437471121458540180019234369083399489558295380773303400141182329110591244727901277287968860526530145546222436691475241449577295601788905482275687629199227497628754876835607179237521359804960710303090223499534269999509155599345609105940331127064617243629328610724496102453145108581253826937833281178629527886166901649570178654959121805105609320795054663730538684128242582915811938904483140738477774836229854786266931225082576290313128395330137134118921774251293496428533708770902359294184246455522152295913529381122784564081474204566794295296136573922090424300187637194322496062538212734959793361642187331616336954950994389694166053881988274297434507955331157727477808377635395789808133120193583421506692369881326504911216766105769225150229266164713626334493060238183562896376792121921463316033618752288826204020124042439774263891380208449521052687010743195772187111143028161475932755624865207644813873951976946848265770208505087179297010148482225234348610086407142537817344697070924309116029452522244452010380781185740803465700396816780733450796495426060445684995211848369691689650584503789255361794424783271725059194665079305883501018137903010484667890526644524522512795907539401785155722246774828660819293307395591728873904502358060566622338943605923825392210810919742136380351443263854309954607706573530613291078722831977156333143416865312784823460771954193774816090159710552006201885643658598743196000904402093924947298752767931111754303291183532355070900173724079542483267292912110798069740952465138769619270818762493599871214500744321133264143473520030777627118018435384120043793189888235407986593702771103293518267898153358759479571946595400650716816778865229170392698638119063369771072125925438657692359159493111181284893516879917544450222739022707079541332959319655458116985059641952381961677059439402223809718930773517534355683779416154590767417769404014766509409537094093778101745395722111000054209619530869329008246129918969923144565955710950043468217762987895499343709472455636682307529006118757688402303994317306128533131534787970786683949462643887724585236293701838921710196334655738358235585008415948783475663408014674069192110474738706313221259699226437981086052204310369003119713211796917497913321902228275516519244313043078074174062612259845207321772737623279456705404215375157545479591167916989023189693050069234173415592705801248210997347011063074435011007528901104674964550500968078007859942993355082147534689683670370244216860557465301224340117219176130730557924205321991714476222522319209432438238664844014741186879858864366312972575164456129245602148063471931175959875265128142698768010946387060330750986680445457206693196137388903437318922744030729759062712852038772233615560054812071401531205812389303595793889004365982754418750025692909727754406843736048003275815627072842940339156287018190730526103652451244252994834698107706365587662786160036048553907674205554397884853261842381204980211276205525815605568010780677434797034374638896062021882164488914738249163165692882382286407125230672982715523711463635049008058876120925463189737981141528113829653155424514097816942522078830881642258255435493135492755411635255234924678815134403105148102878179404945910638761695316156577676037868986212740126929768047948101568927489206933381686443260435784125490833248102765738777164854204490460767093587155518969707106413023638165447447036466166772120164385371427162492917564872750795821345367709821481168191250355254863190120181711501872633648970182750389764682469891878012255016277135847846825371110161766562841213250973293463350210599900149040283769984917453230346698272948343042712132760406710566429546293924634248149452322259079702791635516577077812898657047029975293435374756330360885806088799012893043197043361021593588847526474056048607588262245255787590706363468194051921108539629320059720183223648611747378518175881435299611577270973994033939113565834570069403976239179598396332009954967266168930090915450380753642353645199941561472335181335256448034402629487835630253762761064976155338559021043306630181175890792953672842579207768955268119898711402797626714264768357451290623096334777595567674194610495713146690897767228450766352679424595368269982667555516046863676532342177783204450392368376638316245654163526244977208744002808444340374061095115731942542682039008679198759529614200372953048529782120110423568339374877542755535668261673576392987978024720960143220780167324455550483231474607529504265606991381491327649294009571789697223437486349640540347893400599783702583895065773120625115675577987348875350565825028069016119476644528738398100088573827828760470604480175959376473344440542940595949056099387471456077418076560516642779714673666262165424492254352959917316829016506934443603120743139902195260991003443002669649474230831017839781520990078023546685037203404169651763834885811916171313363777440885261792344093648675747861328136757190766410232436318750325435352390235666428745338608800205471634509482411799059831914851036760512770212504997235419422662187661102023367719705170417712246426219180209033519885157609941490537465380621616839505418177768486273230076237006842278483735862317530275144912666695046361712227698876697261543029402369794489972795487060922514288607934134110133103658281204376811827585234775649853887709913136911038425914780498843846245422923078225735604052930776991920370059700527921159882622180990141903204699221319322296443513474595519187949667959438533286019130211274746440718202258270122414667911482662189547956384932367057067067099426936738771392789877324637371433300176011470864799048364484162105298012632836259506647506301960271748253741547493746078500812576102373515163838998648668357006844126060720301063649030511750145374046387148430929880319347652421117204647475557468957632446951774059217577797602373324660939645879865559636657888026750756811608386264440269433870275335259465410583634694005274372472138821274685176157691151074422349478621529951986787578387526441296334365742117041917728834791286169043704632576314108175380537789806884476821488127091322095181209941212892822472470122206846583520605067651225699180565636256297593367199609218800013290199016798489278075991397954496606292288003130653141200196073231900601742377284477093200236201583013547166485819644456844214737368725252587689817857028865426237751992403410328691222072158858098625636054966867166463678849576018897769624587256852543251652571046565841541420845002422435127879863204794911786251311930026497721065632081053429836670687256219220085770495762511262161094997645232768047309323876246032796202171450062196798989975240926490796872737958070704638797539689074370785375227494996551863091949576820178737743605211525538604427547502821926610845324791486439363540188640638548705819122886080952005160557096537999282173090090967824423600742996046186779057680813810406309505662633527711128009185606230384077397185227874922530330499250169972658118524037803301268691534339788690489866949930170489417225903939619970877634877656754151062213024054553836179673681762596919355638767160825203406144678700211156156660848710514264129336228363449041799691275377420459486401206731936286565335022564219672655332312509842409585665625233968195749768898561326689392756569059957885963142446678673812387731150754768050218233445067465277539266551402605243775641331118076496223308974379933441581331748294450968778826368366026283246225454247800358401916649972368952028382535186708174253190951323943887698165691859138141836308412198011405529877429579169037919769448165858914784280259892453070337306002592848831971183389709406547832837430690800655247322971718443208950372231454138588927919239164664156291710884885813697266660986310341223519638673736670261263120848649563387116853632528320139738215122295271327679921121252702936876469575783531352660784216593817546224103785398713659768537537282684514259705212926072830515570852548892016149184164637708835376816592794950286419839384836495037825712916604909540808977016893300575823063399930133742524719770386542311135633047508335645890738576504677286081888813503261155479562144004367048145287219572029162449926924307837338390026189181969338105369568051058171357652075800808070891210676547264380454739560034336218750251862548257695653714375992654869260373365284335103832162621151877874998017063233670694520080339431793925299389037479235620472883586320049565353264493433175491570336807179013135958685312337070881204959966810094483595967636794731056396418241176285901447115433426074927464256180539412223930206994583716149925956454907803848964610922306352257281722859406736562219892803930670831076611282779347362510782520061487972071531155886108419139517714451894464699563977479396470052186067441407751778573657075826985010040128052587722368431899438807731415814732335487933618698217516628469058157081051732286696717476807614900031473267782093502641897767183292745777044192614470025008381468126211240652038400657184256241806606893969681094851629900140305671239399724362922913879850601692953859882608457650313586956326493190283136691111718112303848183478349075235330644803817840273199443201993977083878356355100304919301714952822102008718855355139881865536954239958666800990484487613983790663148747068354165935778612071583257938870871318286047754186602991474575877546966029974087201012174365445844449409022156936297750053927306047049278073902477400873082855984032349132047650202253192260478655903973554574960649173403847816132732673653400718956767948564376486503702187924120971443558952576592291214106072467904202104414412329355982159443243300428676781197634979247119754824790661127447234339335339946236909434579712432786089769568263644034994081098404372791884361286692184236170928126890119910860778552569240367140389625897704473415505130132621583233303403892183448099135652131382232847576167177374667234320569616408116639366023248002170893546209572754570935386130510991919709052361365366939752130768238178495524440280040170743024940474561027461765890183040334793341348317980073505186613682125141561914759891628317332906365184256032535588307855473033862151667872648921871775903546272718259248207424333075626973279713588372351710092126481371347468535271900292123943606804426807231778118791140299425414889796078061072893758912892109323087899551936659401093087185354324196195937380627479789086197393810791043441983117237352391539715481576815910094359094570480494562243368458913020038090318508330491689793349858818679054956554834046355016733995793978308263601651652378865971210207277182595453622868624941311566994240255222343695711424242597765783503346519922923857699103037628350893653506806701407536489320083167031212055233517937927696102992147961258288672431957303771067404601169252848051410241033979909808838882771993727614114974283144329643722742570123012709493484822860611078007383466051662021550864241053517812780911031168201296466538397371145772182988421085551304290790200476397250659535379622240363894772497839364498379033385718095369189524148386655509748036763770256839091026477106399988324859802633415859868118149850943574757985847708977264201842341908418544199776688863553072069591532382704734860337188632216399234370247783427681965997640329136638657226512600283624674563744819698949882843589755875066206351789452187598508461786358469736451047620774333818295344417143438019309215403741928588529480475519939298508986539767857751228365161383714311714892517135285049582673923509950738648571281003844831649118286085498178810469502906622586335620002458178485899523284917990896824704948642137637201238535200154655993553610381867811473668514061365220776268128663102741489676023112272699005063449733197259408213837676904030774736631429010245230527723101491218691249370176017289188119028368004159527448719154784915355057078337265922379164378029581498338592918802969272229165134678348012229161131523170361884211646720151282309638995612628831086233071554427715386888846094220959555901272901007656091235808162570779408206065721670340079191468166676394680729722132469656951965208757009281968976855996498989627938126046309572843157337982327170399346381524325148687321013910620879407642213066354282965506891678955250664998045068513709760286972895347159057188088201413220335229563304857551179296520730994059258722479183692154322622138570454901072752080423609380073345549326156338303444774217538681641435476836903187204320522347365274111908991067955924132703220530716442801223390180782668558687161896999441280905449524176037858520119543633518682641396643511487102218819851515732054709218940530831712289865745846279951196596693923241731271231212079114448893000201024796535530016523988384987426695759675588248534673279821355393126638104493055816834759726151112089124748452725450811465695107535280107295259207691717413548151017744282640550393708568729544003460746180360618824415538445268387839088382338723622294014331300101152903810507614613110284066565656843438119165552228789952756153868591149728193849674550597739428002577239933007608837112334257017980227389958189970482817505660936038808050290479177753634748267378575545159903144939813601536409109716631346099488512109243611156670545963188017818651964855881247970725307068411316861848174803703270810122547606699362681853074841377759420149067802192511173438153678157287149831891902515382575324654520363024137484743342059725523968895450204459790493016458699792536778660813275232578362395132964125038288560761720142523924049177134200172668902412203623809554261454006394131481790739350759977565829952395070698161522136170746377488943257755250196821459833172802782140554010504934837932166765798924210098904141936089321320350036240811576064207373550785764247546218106209565334984472421834794270263852436010838300279460058165020917232669510393343522339966488571075387153511531652285402304164766238658986522198238144984398500379029848062791142301359493356066221926311536337417450047786497835391379337570944718582995974859846943709330669234270332308175610340104861797196804505320209082210058859725423695858764547692569766445961267413971278085459201411987500198026867120389986817831201649464159272440241053901390882565399396056186536606034406860860853402852952699188178562809849945561017869717287770327015449514314109110833020120777693060494858395881133239911160358629711056818121752299271927347360162045747354445440703386813230020806766851901972670788514474938470819484333983592561517236611718597378188700989419914408874826271382358000178677649237177150291452356016819926877684911723949604543411604779226896766114578682235461597493166055449542555840793983555040578253623333161107729144872479394843183738728165151868702607297897575309544464054976320595043181096004421392531908451405759337896776880378765973450998654535892151812930429085477392059442067551559244049843705560208499404893641643529878534794753271214883299037688053038745375454740986438251761742357768984941158118228188245695776696997338342097252409156282079323063134813029572568711317335763786819012409342450676432905011914856788654838062701472196081089214240643189657782524623845658157998335336523642858638335748898604369662312799201534644997068936718135374788649144876771362574640235354318866228425954746671849720722817018568819320279254239476880064465650002981465986933885804861406967166348553396028870336769023704902065618518897227259938672266445631839939522383385372089483276921428794243665287118717683863171017791474991441136761436018018782626246514422936150515680383814804068309414985619361410748728685247568768176587251476278546493945627167327560274798144446359682279095966913173403220254840333956111562400664676506813475298892516810640872119384529371213029876977041739516362309977373831302436544220712002779109596269525747390605415640837311450526687307781883511342878780992865570394547849930710287845698021760870056744708296162294422040899142910047017761604977329105527101302031873004399072232017401519514121902529758976708780151546779249876234315257227406922711591761428402184797002511940029538094898281866974628416643359887421015742168518167809304084099430847332377016886994504822863425938260778625315051501020013848258520939486441556417871379718840750143335211353639322602539859330288046044927396391261407675062539564125606397215748363794645003261996304621999370503478750086728734371292210733915479520686624184700778044022056215058189159657536685293041384403944846263402003675886963743919003413710838388353758974084891123092181637514142812954635911648429498387035842382413860561802903316874935860745312949344386799602964050724783623625831889425693074634175270426776253368513988931592375266221280023996626868869105907105002993689277557575388121668651897542359960380332796262863788142657518184568114783266728200869357349036408669720539880065617226030622722540546802584814995425043004006934856329371249381103940982543477510724591041514988135009745510492531054852124638292558265526697000788090308327104292514460678216358189133001651161010517181920198025285256274001461732714838601301941145571056748421021531533192619730402873687912155193607358935855407609140751780867429996104563386726113216049917885813837618734219739151227211790966134646637896319052912409240348236617752922794818818146944193089532060252526634479285169608477512897088162639843141054587281537255156150981677709322188748063652582592072139935016752232359455088084345245085433749440374915419765122031656546111548724523960257745934617053502702665736858702182071174214306676648928510890362960585676363230382043474957652236607991517644463256447007428657188702037224177922227836821408832022226478892968316795980863576721078665265634961011936718999686511501290004142466653729952514543498754734778927159484607357946413837514194522328015506385866813333727834931750498508789336136738814470192595104799789079430960950657224404733629012500869337483316748232303238033227740689849915990054759404102317943737461410003445105702023502684658342350188573271645998946969256817323043605660926842469517904665539514999208876325925958779896939744563003519973991676221735409117117314881308639905115792981014478978291520997880171696848820932522259478206115419047419866118604120567027054248946934740942350524252371501756394334056222008027300299546204886916700681315896573184434323434795633247434406375746953040598882705583022577485089373241882910272550688936738526545101380752548173573045388195822828903689024184482330374704685447806132168677039251175587007559838461860433691289551663667427243149832000879712356713443269832601836313712132080463059535152186172799107347880920943726733659024851076709087513795993662841753668175833899294832114087869734728943222853571237104449836725634163650394050341363165898636109806402814112528958077437659777456512415361847926414615665489112498372739148573788381705057268539437471129692179833870713230725464697494277288603042220043085528457483182890688912050003173361663134104639670300504409526734228289261476471192282426837209320238952071029597422357399961444624838897814071254336998243779789513098919177224093485451896287733036067127539994048942630492719264969677167394189224479770779419006530287968600380091645482330691365134597121108913298555546886655286828879390174907410359866603508423214097798936749638034249185210078423332664997033064803308732412950087776896203360832440657087641787629288478433574405426282943279404656330167846628286185517105378323628133431298512982776224456023372035212071415775184864187398371371224956893356474168870975198086232853058442471744926727945880644888763903945908441394131063963759428515495162056938881291037755919230631751021053591423848176458582704510672963245631011100803419580666554403971265295683583898792599024223065232159409867327189566998577870291779531047437887898328834880314003095294459503196363579351404157051104680717575054419125543544634733078774593447424557553095546030901969887399111439075682485525100073502814390019263315821925152045327602241123498868896045756612960858875384237852318878075703563729102683750795234382412273016912069912264781432088472058935645883072771633629774645932726869925739559370938904764108313776430638092312322862483454619925295472278078376546119041387787972173627723212388419200207813318076670254889614524006792773884880816199057427236056014914102003929953379702161302463866212877309672765461788108330402240345948668474300637050151121107982011673608000488736734925366945093574625640187675924370687133167034984298413177810410739827136624570793037300247284935985900471490353001499345590756996170550484785253731109977068399542378001140485950650837733711551142786430759266026440712987665090165055938123099479678406341365758283305369743910685736615635283770065758492676790290852585177915703136979995876141685866448895959098870483012617668479462898060613040253262548048698661190467158212233868952345486194462659096870999872327703610335937314339908202494465874454801324140192332679920308577500675173413055306049034432054219355759279156446087059310305349373847121377829704619879470577486124197520057751692731173050827553396198410936883811451885246340016778789874731732461294278287285120784759585069059311234858585107345469671206534760434134898979801551314198278561409432231610895556076052209355666983335257448781336222691251450504983502049683288515854756560851552014471981605800052183059733289176333524591152531230743621472152256533881572756264221158993528713341773128865353826331590303195223158501732368555312234649982611947004362415020091481655116469348565433995738659898591448457182400409889030695565588603426312171602693101239809635352135338384683848942145295065349351075232895241034187473288116380837315767060911160569247307864701621040509896802126458663771414430087967836175545798204975844583545350485212268229038368821313300337821083875129730766499277342800717706367402996840265608537824407973270410970047020074400990163346191466337962440103291125334635423726632290724405533386116522392024254554193916260987867069675876263140857595343336588499984373814490438348410932104048702105610645999416277455468319186040246288812521238753712566366657304075760782331508666180062021495399325031175119520698028491852620551131191714455995819806697231338391205370938477945510840943648542802174368978438840292774268331226035379298324021089203282798337844399128989596235766649123103720475196098767809081303902060305297629689325596036807025435212851070266273634716573601519476389103825724234808126199605136007640877105314468116686390764999356722699923970793139130411637662866413092261965420737372842190629478342534303015498573041590831665268226241678343238763463900694246317975295385699010299159554028375884020306602578333257663113298148225450642268206325114658336695790924246921341512375226542702264463885011595485810923759813542622744723943178067639878632591670809455913776317334592938567598591236518922543442119745104293889409382448285388497231978543187453682842240428541899943192316984878722379716125444140799260603835456087773120384035711095618328515765607082488298420125846094431719895475566819940551532155557882834760944079445216984469236546531897233747536876438538322038490370236345573356100995355549898623616152385930650256720965846151529528984090541512797994028386349223539154890850775429558813332066294937299724538390061768675666310572315517974175115824032154607456347087843709787005366700568490646895856615458664721057950333708815583875338027569493865628858490030553123395629715228915599835494529136386433693823682912591216223293895260138083515234347102144356422534935423430054537213751133289311741459866074310862714739808668096993357553100905025795785944982634352660954250961386559860740356645232201435256363517406680178485938831515175880231945194832472688668404651595815375362609114860608613197958974813463230059171655333944253647964210655380360838135104855193446517381485360562723971816025810776434821493498469138288863388429073834177841539400544322072834352703098051750532243302520416341927889085909803167277943368551409089287738112529315135866722762788778372690715897547234046655019684284009529049961407345720844983612594623105461315028600317330312228047253877599025127447705192851339999473575384172370438222164372116679987333952174667113492549061232624899262825301451820897733802873746543989908478512747261292452694994774258218723598874357705974831316529500608917112422240343054324509437677733010992926103549879701947006754113072461586145098470570603283454387416220651426808145256138391997770277120285193382608576908261771471353644914547921262763538044211921804921878665163999658493636430625723528707549753939168833237079736512887709117153062414417306150281026617263864348772325777429724547552783561481980090220683930340407007438298088580282508235107382041709994461989277378242251470555196905174033144578207648060514953951862755714988616326483167634605805050225950964813581577171813130928875070898834774107275457478507706149573917503652779885527840860530796322833487723629881442268952500104846919716053264683772363622512267071322053513824531601903072328145904835988996748482211225045799702996737937530034405891411911753983138374779171903577596479818757056032248584161971106434261440316142933079983209581652779576327192931221568652967845115882518312501503010026529386056344857672797720165460126696290127461446525977159861099122840054702526186315905275641229041172140575368836292808842173193624636844302894159404469490626671090522801722224981620475025988580297601863653676053029375800237389733857507719915323276706455510134679572819862367314183158887706815726211521856248820640033271288957049225611462810732326976208537998281671974106427003004561545857592354682398244106578358408104555321761074936620569157478759600690913285119638527966378113763322705424136832299124761096328733534248654759615564984258463111095802306214415219478128781982851992119218499837463688801566303989936938506225057357216791492241162620288366716679224894969352256186457367979841026706300905294629244963339533581329958824009962988048777377128616002981698389119775816369406353810516236521475980575298862485178271712321231121922458360693419012252114971404374797215784940389305729852476485152279087155891408580553148283222273433863903058927959068704142948173837375396177837837713539502044967307615406990074768294454083350722320349783318119267380879498878792675097678662304800392588747758766011574187797660935758785576281102954550557436102247306369950761501748461469804246508815154073855973322293156989331399487915321301515752020833045072071802621664028599920925023585966511252403365566299109157686887691859392965931107910973330599291921422090730765304490065384441928194580902733612028223266108801051547669406286896446716436215783142719227931145405604820000764400308704416385011981257787227094342059795010430828107326874355692438960535231657947571936596627558207015668421699731511792761116717234759239830472775958120088080397473269545729618650102787805317379857389275793466407638117964938078472063157802911063674620983296840496263761572509659795114894481323048303940558253021406119715919162454456193842157003850955720779304491952899446247075343330356515572513056036117082150779301796690213438983287532534569502733492921714258081502416361771497324069139851678164477789351468122418838910710427953190563856526510789806122197661750830482286925721878382423774317597320568893216141854854636039059078763250796038225538697577054598025106032664911903784786630082174484137697797362305343608058903523453338666897322004644195292000872883109498977393566493126197995144455637025596400318995318254518886180186578534809509483271309422378237417496523588722776197058456346340414774169683089316315382967518141975170592358439578455109038489951791059754547147828944192449948151406088614495143343857732730202163945413409366233975963352658142728666908361337165082067526871100077519836196855671666215668275716781401778849046061886967170383511645329258288059010972339039864783383072369056992749948875275960123057995260950340871223134448195657694367785841058663273382219236996454052188090329177895965101141544888711683405544616225001568439591063228263722736815693641546631658305403856000305786034099530582873959763935734750143948363724910374200306746863968086641528425438286119676332425281949780253155158704370634722719802990286644157063504740696550110803252251377926535308221266075532378950191859028824086903783038476138052395641620547376480467122459931979216058480016552594335145294815062194613071710985100543534878985733750999472277298134675591265576492074833708421645696521873266674455927663750879877953550130129607294141738507130204084898725679002339029002084047478046829510935111784211769443958226812158855058417080989083532049359547793222247570978050840536032978721850326711532397082506331626215646407555467390505049287891377620499561806114070695434061723020943199904132235091429387292756882134263069706403628368918598522241297553082261496106867250141751139929349989161483026170045698881739816845903458668935421351902678481689539659014443665038126167844583794014963658583220342533336555238533815433842718671907865975638931151634686469286235284189318589823576650269323268866963932639230199373902185073143093963614574013265725803644007432178007289187205320590585916858165349936172415091877054258875688788220849419302524901450757411472541528765265504167655650205508829408541268760667473377800645031234992576657657168553107192430793548931267131745931044352460924890754564587666081030005297521217884167368376928033233522643199660288217517675449564118402142380404102011730694965748209844282691288780854728242312736204438615663087423308782402780360557668421127770266699526906447610285382779347020991309222890466028945165402531742038276766654897711125950019503796262332296011293073821670757366470363947029894670466645068334277888062584519139515778301720506787086626064021007199260183950716991300134778743875763844835457551413964983255463465833539429921237057093712743495059447741287975698023627157746299438710424994761308120888916549741314136378195648531162483402293741267704434764537666353717089739059381451150684230940703235250699578828651711239122555275871145656027145682645827385019028131359034620288047081613595885647207646356610690009247804038761535069390745821061463993481921430035283958361207822000366939304908940380235958254220690598764224987702716352391991187939480444335630838330633025906468613206625455940324068370840490058247035867570793956817967397345808977175688790620330543269008255537898462000793812370562196867199571272442917741740350667585629753523013126994858398342495797439354798248224305233210426317637474687726206208780669864963396303260179341284364375511555801168528264772073573047962038825674095167273135162029121412342242175134286208920052201394552669837444868539825998085598448236823338564269611303267190728284374126087636282072024999343938876877924448577900861333606296078257738459877466448729588715019863444546996873067812930297060419751303759639549717908484860586984774034955627163855330353351497563529261212417109870217281923123763737032312551355489170782022157449954902744663288697850135380925733710065525314124212618843454917672214790117514381566978764111249622064081384052214232692744658640954967814008027650973051717888803177405341588915982426239790927925914666251703998962532208210283507662546713730060427532754907235091700115286634663404372978738141666116244457506855023139111956672769835434544806788079201959031794451301025342861181966806380176617327420885118858711364888058946306807147879374199501621231735017925983112138356175699948077016313988651270680243685348512138678552260251349278124539668703222217131112534941368755817526732086886445770640613083812408019299263963518269905329964094208921783172515947773071406542541746481730408104853534746232724745512755131057936538039373076071738731698664713564346422534304227190283781662632500142011545224679824704056971320005057009274427458703503836127973566309541068070825394412988570699998811422794032828531749207330142735525656960901690453097695185839614977267468271650679630707208259388418306527648848819530277470959116302211050865875358040061914461309476955750883847180332081024836495700158070847552961692156353162510159608382538559486709538898494460527762670498583135192386741275719795360594743648949519162242324668180198869134592409281334945538377045242102204115765123100520399918202170400761686439983249941537251182587974946947070310349359575847933525270556876407405114379021462767528771025031681363874651352690636733109770600496280068278137754020404418057099585119920462522929310546891147233924102279391505775975118836053544365049958646279063079249868489065572009759969261038619915203019318290652373141821515030208582710280803973816585072300930665718218675482188451195612638125712640763001565446337318387776412971274390575274664923213448485571721430754876567462033180324687370087696262851510543528317581615658668266367525911109689693129790696563417142310450448471048348166919681801644164041189273814232955268961446923978074072068783461941845287319358729532131636064696125784667511457923720068629405012223931436458241377315838305260119919025823500595995151906302862845208432263043580692635848201264322587984238960172797899699029341701452679532674470615738739273381211223054093378784292455779142529474765390212132967394829539647523791547613935082384166426339877073297297094388486281785532022128948773979455611766176742319636290212915468942663113283269511679968250617041087839708916554038784898144817590605570900746076849010507087470270704492103664263445508571163081043590871737265270393019917275599227855363043349224167927577876228738166793933900536808097575383600777145765524432560699015276494267855976034142948046582135372172943357577369485938552726095502612812920931911489723560000685414157807654049625376365509984366921540168678469940238105379539282977731752688826774651923715671179178718686787968828121507661630452366200676788723106837022922733265432316003837977368999584719741870453870604825235103917936829010924825110399697175212971432801271557403493281560002116936745925385304852342103194387117450154098004969046338508002414435539681518179356150403555507499334905979848938369223885621212893161595574615431645251174011545280239960503032488430687859560806572824190396503566525817445840873750681260693145649841488745232417767022262065984785540322344781398482127491367878702422077385595263312285207752821120666014732470440719258653077356831539833080338254922388873916750193165520456924890136943387272173798367382474558725219462449430861065504786319825760857163500826570817552788734613141815755539389156412524737398285429748328132827873546643960309732680964223194148511091885141440293751790138003509837619750113484920724978252180579953310695453919246548059672853075865268765827344676224688851755028829631224334169333425678334889745131626337830510497190906481693210160429905336048121388327325907317550759311817596690659550002382824475409085879269422959021974911602025548314279889227425922508688268117021583720657682927483549104998765945724135054134577570734840150077926278657756022291681539599643524896374548056248160650412506907896339753912033297691303385967775174779450242478465315155566089420116786158547895442026044835783261733540659387099007598402159138146541318487720950869174692221350254069022372033885733027846388860375759678738555574036821711903114621452937671510865131450834498250468006741629016348760867250374104268941574322515280869427100113130980060719330395223585888318134311544323557853989825754281652537599837520779813407474107567000349319679835547317951490223039149905106104674602042351997487521286304351238306323957216642030136251890583225613262162161054025296592432085028689332292335471483643197752592517285488417860492261817627103592235992022685166345276174203749113932512702408928464307571396639633876768279537946000922806157693345204164722070104278200165592110411133259359713948784299704236250974279102111095889860043375750563775200421742581407595591101683430998728862455940930890056643717046617505796451549317675533538006064217472190585646602591559986607339507590630313806234231170034311744251371766761373087849624002837162431581415421997636857941182531515987609501384853258570879804959031751554365948949859034513663077046713231710809827900164078671371769380298067180034351242196561458433429498920590852693411179270074798251954842579270267963569123646947010526756445481670497729124534489354127767799401887078424298761668577212776665146365381410718906038964715094564551877583450493250140068577783190397965479195573685181274311251923980720911936613941577983861037004717914174648097994514732137936002730859349345859612323437852516288901343715204882042671745546054271443722875731743604022502326636927401008167942519300661132009082004115596708126535626765924664786603275712517250695813767716766097702817184910559147715877479779574700933389016677986569382305150306460589546223288818208429471622730642297241591330317194786462935612249748266662463601862233008592709642547555984307220913437822727879100478871975583021763216621477028897614275325755776885826377157597706266084501114502724676221774975942318282674104883580813447557505633199711249469969738519945706624289240076447204622475955440162274155073633848743793604587993940031841602005565410880347897931958806319250949820188034220937783138961175507347594113458297159437684699107015494227769872167026430929363578280731180050883374194274586245482027933791099942852444881532556964410189497993824045255696486321194619607166591446758590177545548630188418199676241931630650453024016945326100675712681006651215855314689539427200128724857493143843448245030263742218449665746932482677811118631726565016722037650080724100427858747329031865017970441611040612986540292948666169236649275614973291267685066117870271210564044924889212157368631726063859070956956684152843604435497789900972860464734623617700691951089726711278664935911295029698078637810913816522378141303138416274642297172738183387174447280497421274701002127431421998140754152805993309292798863814150407065363790609058143454251120217752728810130166169657471170731885960223095638035292153391346952459804487374636762888080855389672338672981399380717050273694135975564612642411399390542207982055495344337873619053751671307655550510909836308023774026491549749756636698684155202187397492349768701351120104923577643885034374061694109356308243168459861321719458980553368369671175218548061774929352046905790378208365456853796835179151267922304437090622127745843431521932100143273337513040968002475485304250523493381027290586362710444031735415945971440476416685170764495865569352969016909540227436439432642093386305587751620128367978658519773034245957676895248889605227052809295057540887028087702690227367954209228209610170538107949248499325323110964686952317988436605769715394209778635639444118952226830192558492944421048547946737752332729934308594887140514239955618325472250868390941627452087635656986856225252417357537278408007718263040811450069629294557428872644876622278700348902220964092746816493553395632391087646179719230487413514227954814166225780876704665572975136423228194576494132120128379942472976737659710598992122951672535246301423112421202764355850657777195008670398821049771080365166215776060639654974280230234617518975809647708901646448576204768193673922553574212637350174444623577442632096790086210612434341274281051149252850452643649953977492903664840033360357798058482992142299558109189366849252768910862453832345223012633301510947511800356177957362487325552410694386651619224749788863882642673665234146223836804542661218379370469897178150861460448375909274699077143239431262660332900850469966232656915196107718214571423310997312207525344757667039140768362377013993751808778918462158375904298800723117454150685337661976786025240511273024522978665662219232300696683845758360926545798324729283557785769871373770847493517596377459798932227756231628681583900634824674273252937588469993548628064344540998162824857328997378610602000372458849319766851186355630501387123555572654657335066427743251557450453199923967193826283032551654388895539483801721583327973959196442263443180039345354195604134889561204121198884400042505026836128937547002995190421265005642468271492041350282034198491141399769875126971924469572193393563226074595442386930881021951310881571942882204061159385129825779227497251080487008636331523619744599288275621709674332454257305823189591898114163500909686298994232804059703408408680677677075550834172320769370442591244789484852394662335154143235781856808124281832344340668904407058943928028967172686748659466065641792823168760077382774308247952877130437069487514511515857105649336474248178464568639789343787733539381574912912716123812978668076777666790983454769422225148232009500742453840566552081838649197439483664759260417449731996665048615964820542089921501162906611996584278605667726431529977878804022580484918247594051736295280147726292838144920900764446634508831333652391772512100745418840247254856910219957516057226185137737007164952313898897341880742014032479767289619112569135792869215089780364913334499114799040142468574441727442549623725196275953050337600296870478263774698917175225082034562110142088787187403706341714969034563561862810522406021114122943788107785645297279818551191507081594779937263350577598348830085471095698192309032522191917820248843645325088752546821621792679500837289165335894741642602901769942671726358762270572792905548145232720530081453751114878666281669942182472736516658801652297731126014941334218471296197866918221569746279975705684734164229487912486874653682945563673350119899690340477592586010610292027888472488986079551612520989689608762753058410865020638988633650863432659342021939218461739741569410308387495445184494555591054092684021831065179680825820229122353243447381353989132209593482641228583086118590842301401143420785757938890380088450555986889806366477236509160191963019435311507919343154003065351530729948317117936734847439226260696424023607868708807159186525883619950622585815719545948074056516545704726065264813162604634817044002567143350342646023850073114188059842687639966682910607658742480562746429652425508472218180941106154883363554690498288341260494703576639948611884139693477787938240000398841129817723283538012006705453196704068212600670498453100735081607517279532618837909534347417050391597507311525367925272460297596134088282268389328344345572978822017335971484846712776386899841055064910119838907571001911623299737559180638589958874555867633877247269808148494582370203514928843081775623860563999272460354109423110438763101123117562839299800113483619158732538958639738211098642815861511505610754764793472976135668631610024442383037772396062924615547119676105089976110529664702337618970159355835926631184706648743922437503723171458775794757724710363733729439487719832310956965975538399241211569546664349604416274066831967235773221123530580499965696226947602296991132490637482834989451685401196378669418326472684583600359941210054804231396636962325186899415076229326439057762397156673108279388631015523357907882713035624877762986282466226396121457373888354580800122343298615992881819997561844913607889952985499901196855734666074228850656034934098836532139758171572724960398948476203812032591044659702607781010761449481763785427258080529984274357942868597415751890741326843604132769603650118956968294901477655876291360906977222989431371783679642438241381830677273126070803324731814537286002933655716671842421321143169685573243109762207094185197211657730809143862709603973699083710047420097325800902155275444311942762512120013123958337200845054879275700387869841104320016287822506061916166006820535301810738292548041035112021762449803459913375514780460146294510947600333328907377806970148718052016331513637571674769151799457248849330693297252547933272231825924128236086122624348480389261545646408974278721477613927430748771166453669009254059147395619805411950031382267118050340103091114635320556912148904455684629146283392132577072588521593528912870694921351968567522841463042037700626157937116349085608651017725063998231074495843218311704399491881279945910644716740388342034039913022171969711351332816697579537167047318088110447807013131353246434234375548609945466834360222651463751844256642438624164988513496787875671761569133786133009275638279008810311025243388399458107774997268346823333566391554828999669842078078959268707079096093961920733662944688400332380937599193909791243073310462922866037776429015623642673940036668481821749786703883456823161893437586644188356432912100825851396740237615591910164841850673130154238124717085847351762883712234988890514967183017368943768012012554034519917315619110058869298542842106947638046974514378997063333208000189507470013389932663015546964425165205592316654790397436538555210857898288265814178353286343992086035365551901639039246438275699410383451916783026507958424793733209820426407534578878190831087540365761332391636537529471990008316339413790052310490982312568574716156838631138405970157528370642598569912913270543697447117014285321465607471562417501615776653184314889918105171281286686364567754148277956586219407008152775036662290183864484234252214146902046101301528167154903060909479824083569691922486037343204695805352388837278034089625865199444266675377265718774227788733474937752562932946090752524942193582313542779511221600518912371765332729551573842136156404744356410911699715044015530138323536734638953488221472138987440584557031433778973586299332675545692588302200728548061683149015848108654103955796793604852338387025874197167482055808423578014311968171484699823310597009262799080544430446629393401108333977248458222865269739389529749388704305941857392125726880260335925319925916076154570089823458203803430111361798553736082068272861979604272067812100562463476872940906915078530720869526357273376558787987049699464417457614059693776835394651974326402939835193430527489703499916618488660160430216724177929550578467597486654772737515102736081929381746601397222430666511435848200815971956531969295447097175078927969081193017766815244133940845327167032177170744639818640953841213942505117286152666910209815789839108479078414808744039569211817199788458943348926630635108042026965563216505593366103158846955064062628400804880681142253164843566555645936657399356963240129487974010606812331934099133780560248103969019557910351279331402037850958960295456196745988301049095662354384114827538536825220997012351412905040605128916831678529245971893985056172576270358870514289458268431577319535025448374983667243064540933341144502431390324521777978363949983634863477653521206684876684201023331042529053856035751535336222680074991632997893658975124301266762942617703084325008511403386810107388219868224215637343807757778555797107498457423903970773557713103647217696988814113604312233638438646565550019547735047699420746585653322992554558054779732328055408608376997830251115517138135241164437261441959747633572184573793780074043309477370362437203692865052489557920845962810286057993267061663079511144230573402291886811822868801458913505315462969347909586413529540366555820683163393105803519202753397979668566169296028476535900149613608674092076586987749720095012101989478679970086491225345207139032505164205271499748444627584379899000926133390061256368394490402961032686353399633901941679566068576360740002886898171660797072031881757279354669753759992850469173089885612731001245306130190188384783173785703414191577850276396823496638617082724375132190135580017831108949265381830967517365959053681067248497479897690223964834036984571198799964232369748182028217447578132112342613929581909863212252044695082905843885086836061957586398528105365709893042331733650762232599197049867833509534396077371667935649411078460420675131468562652645449439749282540561173022839181721830558131814234023561890452804705520804123505315674331936165739090289612089296260234419750061873681963229493429593263264260393030754213392988510077335999824349903441420942508209890605748041546894520570880359726994255833611212211152875953153672714579395800243892594177870618866284588829023728331339801583984449159756889983708490477370744367562944378125462890057459102172484805554823364809742274074199574625245692477295290308690307162010530674841457056889849500853736974097110999931481993220239550450461466149889059266536569353364440134950920707365567274151937938064629098198008450162649897019068324401497241360870383627031071209284406357605636666664407392856092591603155395595414818382244022138438679589449417246383490860178409657585441095223645560704211470514863587670773324340754174550071780559247978763428471363064182916827161649417968619866440082238874821272623715159510236240756013901108406488352122464181651330199010440099347052534238777902005842320702354680707209107107236313293179387858894445753013646179488212308608692365368639700401664527009994051424481344371865960131484113024389131106355051378022681607450799823620623918487358818826822721049366251195497885954245218350568570462442767797917906396816656029486757509264023083702166881581968148719482563123527763109650277878049921301037341056791534948516158230248223396482296829409714044152528967991293252001147134262079544295966385948797588395816586964607329922699672491670016485252658757033492830214679621146350799109859588266073630760596363335669983090663955093050591391311735739655570429158198070119511160838864693662261284830182883656759548653907734192512875620327904658624012462499003044433631359621253189483371075169396621996023073905222499963354025139327769458698065523384059765618241744800357483469641325876747376433005169214020441271528868477942416946251870380064883538688509930461509112414491571011840313746382597505259216123337651035077108080765318014704192128058549894619256789079207088048966257051533013665146028095948336656756430610691879972275386837131849838511958170247531884727896558092330343947189733130399013328015376369511440263582032536740155701707413055760506689518203594538843969133123004591444561715092339048566741979338213180678728918038201187435977644371571346291975343231302114181680440976610169699168183032893356154163957762211812829446691415581418540992512639318068343353485789878834603142628673134431700695824812313361776170934917257036911395711939233115686554692615082885328426163991866500614932903134954025958092981953414969393823169169728554876429483777722460227329123633841874168395018076056432000216048600647173496372638800994239420903406190554589201245885989896823015073229929882844345975142142631191631358219742502102336994717378048935595278719052108782559903485052873107481698268622765987971928970984494907087932128943876993398745647010421068291340466492555619306863854789828295516598829634874400921591363888633056209560509155260109387324738210619974675129422696386938950184105523289638395531773386848697097911976977119779780339877622908450147754675477753386453292833253433891261401200958531305004238466147159435764768762999326807491059353928015699625224006908204456228984876025943821002609253225449394110372234061995291826918171110675808930465786772513697512613739350152477316403705800629016607552417713090449940972441497031853694311158961720503693400892078938861115758511924385601745111916065439050164317272485751445547664848834479932896775923352340490295922001590937658219645304884958904654969029240860691608289804406727587423815228206509840220487357145659304423874830907432511313395787683722203385863746381909729797960068521252034508936923997907230295659938711852657614993786397880481557329823783855276588473412607384318251652943224345138943374584631190625508028331752327295348583200412641903967833217603685677026885498569508149083801154634689798841508077715371811275182495454234533490084416611921437413577256679699488350465819783601754275425488970643661406397397929385558720575953363173903427059949803013849714131355564406086619548172796514026482198382235316629791982748803030050985724088923242287451329823554960753684542497768071142102065778154640626104411365043646122478490076952388185144113565080502680378159769850691783940354536804746361033536767714342310186002252479907644650278713817678981000726293743355729946330195579035448091059979410014008533142924007905709839548140401760126602995820787105929692688486650222088430365564610226570942461977448052871998745649708334897457707681429014744813430420902171886237003670210896880046807523795747113752623710711346712039130594762811516702005943638413733951107313886803947685541921774929420437797805542179100899598402797884297400218866429655777201308314708281484754317091171485359717009333862090826110706310587211295247256765613305637537854319940887432410205202815215803063852622740015109818175490718020748244671826450351728893478946542104681697722416243217587155564102558944525541601836897859410007916622364530210773024350812978368910040280096898083253193892141544948550661632158691644734021313891476217058553478225886775073631821707348662866467615431881992331286083824638203752627681234286675680137436025148974558000104404877159277517594405751203751260102654311182858724762413617638451656325942878237556356670621057530753482572514736849090508804959912463671067592966255623346110009328225995981965860561206519341177423609576133592534390812348158403192576895645060023871000686021743905337950930648390441586167524580006139279324407921571574111445537446363825281238195086614824999716558922543644067057916334539652308435477253895576657695607733909453664534956282884470735786723798344555191069030025873058344138937039833449392427437560329644938225359277621274032438570761176054442461193883252641176874369140390989169280104491217696389601490061217425291015271255118838822996236390269527070636342034965237740484267257921805589008967044624388383647540718181510364622892002831160542246278090765755403710667595122000230605358201155177457461804836961111251933968004128856953193658954108168050498646506007444600833260689268230918364384280782488084090853416556269709796861190430817585018477661421095015041831174634772594730478048600107756106183904844005024783306885365734570631247279137749028974452476389986649656091863486606189019433920736744590192297156587341552260279268371350609898133230032383116145654703100532646458697480016617161920830233589320278011416654043567240529061943853010278702871823796863846501521724580302950562087295916207993381296181097977586004405211642128611662039583097525366728368594560805631982932251845216840225416387715140582728927636918095726847679581362780123898072775360971874457891408905694327345365816945293542983095806927060738360411685337892732030891608739188247665178302617810143867939433670283636789570482943846176535803448895597707633293389103433758424367856721242290954790242344156383841781249898487933089121165401092662549253420795707362294231068165832462090434928706077082774391575929875923307693150383931205299361959878336456360296430355640061820542568836281707491155013185378048226488920454518355470403324363236508914266329310454197739819599945517188298141231315232194574088293476754515595942201345445057274225422983846169451020154638860982679643070887790741346691151490856227737077499035153437918468596734168733065224178533954894271157988034521640837138295433463249090525157905582616640257841152806023611185059127907034086952714015938416892718120609515802587916666114668083067410411316727926340973435955478013820716180646424441302843258933315320554700654713406154192687950654166154301572205333398182126692366316917961030191632283390586901389812644583744163731589462402923075204117652249295825912499675831122375614405233419655463853483717905117547130915062490055866598932077733805801467543767800825577451231018417318941170891609510965274127156806671701870962375104521786051873475186754165285860411608848027054438849045272684092651961337816453887715595480032701527205384454784660312995390344650025411790368236984866583334488244144780392985724248845529563313098072665757234617470646065958752116375390381356449864575379150841822039761656284040972905551321898776118671191000303180069117483950079643677400887336218978832237149407560958626754678288136008020529725899470709622058551996407536541827507554874452458663057049258593360118210248000465659594898075903160642650375396755176405376186078939867310522791741552229581452289499292716347612148640325068800056923607196243708885854254031998841575948940541829175868106699663335874602100632063868909138074180317383824346653582787905740654928071545090974692433341752626993792110520139684042150110290051612826976861468785747116846191458468234306282865610478181155098136549678381486851569586565669739355962484514584904321178734396292439318728429852571994810028986191808876693596722711762013431572389901909142639042539605892491942495975166740683900641580140352687207127465086931070091138704895931178654860750686734690570502669135323823904136832855068413483600793494016100557756533946398118075975156376603466960640363971518369815886143491224416546717265193131139621744026855842392700479485706821592496711602043660684620177168824415184831446997060804869169718165028220457318187721927773594224749553891754479997897861047056960806146526429139110405499897849396295027402778779681061443664938639426642023195310484830139779129264297794915857343460219151544068917213868109652032504710070541583621543105976363318571395982511848626741626905816210780246326383096336050820545618073024432075493430183092124586929352787842910360262433499007347784100407054052567649143642367770002441385254221354351836144401243137371990086253040726262031974306622723034572186107563653342413454490968233690532558697580623014203628356354145076563010997826746111375488299535845364327554996992037161503685681882527390162193809448680106655895672311251022070286750018360044720060518272151283256443089914726425326665437013294098979457906612718772147675197091013844908287974812454298318526490063588119591436240937119246433104436156964893293927070350222251939005260041402376935017739123852197506298945719822399890238412502369824399796371758425899679310669776724039313930146096805680017105021304074281537748913464883539374632675336680539699987579896532506771591500082678660313334920107833222789076366156435115770373025629714731001065752133687045384771777101412228896777006255151593470241133967374238870189140895858368447310324425744021072547550639241393238993057963080038414760930138352751003321722596931307206057041926818204366014830096164008683643814770860619822422565156544160418416839584662450855340921009427199977181377972512300315062780678179742504896006867309962817341607536041598887482494964136795705046393492342762705657038526960924483548601784806981997099451918035834333774338698168213795564018501781605402312676794887754926921488937310046816705595690312694723466715360766313160229238274169465086077278367620285920381867635956515093442216831275240944537409318276734449762682028999110947067197495577830504560694844523049906118366121319972867872976611981239181713098879695277035954919193153705796514004121695871767240575063398594888702646942560296742361101242358048731558145094063317456627724513805957185214987664778752442337580581014916093324770485913715845987812386059115754511090959385272578437890147746770311627331894864450689268942972226392999626849581330055236366306556976368651875830938357701791504939444331695108151247501550342748905298693301056619480013492205508651013131756762951692715562541751984398709910590597488305981196105062882654882129081808839838938500196584526141863290679951191040315824372401852336230327691359781987902699716626339809441791602787409847542946690883598590006810013507700984380648292329105165323611970636727707798408789551243474093591355907760177839076045847963751190379292038853623436182305141398699706479470725251046578506106744870125450904025418887184811111498671689790026470032470297788823595596973692114189195917231626338228687414454882219981826550187282147037030170783517685515180283855231317324108455650687923029276242728999961127956793234675838687756695724091794300353933955136885882935670219847338799339116641629599162692131710959956452378882229248375050168112889438397378142270796904991241745043914604027657151947180036968175072526900104246162530230999616467397332647357840663470206766508804549960044537918572375668520700524612350044622791047740501065948418990879446820491310472295826965158544919736073564727293857925887589785474718286544406910848258190225611041247402918301155450751766672362809734959530727480838324418974087148415457201816398389222590982400988405350789669346195975815791157626037351613507929591509639575290841241273768961280586145255560526799416073327058428852073019051091384213103505924251718913613941428400915726382997787157933821515982938862550566452338010798610243707270295666581229562914000959697536904445264880768916858146265801013845297953245324338781397972721426483805525193295372081356374971627565819298493312919083764323450279898455774421595256814369974495141928219066040725323977527541009292746194790772327825024844914588155908744952221966877446693119511434723253743800286147982892606783399651862821107895580792742268159801230106994382284391324300754445553390144021555200277776349780466025909926189259111840694834248115240550451113714913987752391489557032403378556309682332784193117954463660056292701511051790349169346508190643917922151740124692703895574601297500409794592170571692823618920625143368916408783178530872490193301754278642906938696263469208512229364275854027593223200509056191848389171022721791020423913024491890403698870554990912165544163548653364099226620134485532895164004629573165051882196000839291460545120749635652804093789907757887874591545226335606366694618174903581839169945739533088191580621239563367464699511327182519594374154710645242644181018398801572187058677120193342624068877428899291012624836980531392746922856652239724776730218218991237140196816907874234885455821526547292726134012357917367685362604794278965590281036615428338143164539213367125653714839703194671035292233177547928146291055852723095277339653220274453854950061562260670922966230400356760609320820166819279083463543000421538671836963437190414207567281377656352485570006705380690897514309577405172570711496083536086774492751532815912395466270408439531111388341512697410485868739786460757377721934281666114321493410023170875736070105369422416540706494125074181411328097042533507418546829995589931660902779520143871651912129041748419235896436484522624141212623475888148455773238003511103220800850386349261269733826956281329529056946044299753802036171778701853367005302325216447770666831919702366798421006861905624129115618952904211393597162708202675326655953551693378704848434241108221430240853594529784421833987382013312014608943318940271864213753329860440768831949172762064263211862944084443426008749428861127192215829582510877673734448246110727247167858122326566192296114375603325076181903022627055434502834173602149020464354313363428756059130041943755648179677411764792484453884702095230505735473160776705916257374234805890638375710243639112226948337228666731846462064625247727352119827057199396256192365936495857424883017946149775343494207948945829239543070898976570328894757654654854834820385802574028562512355926146160750989876154803932942112233065986269330470123561281773023672618084355140973048714837085886760624551411297148686789463112797208311989367040048053951520684016875265888771318881050940898405796304684243424954559183636016670849103172351843877122953386987736322796473577988945632442224479179762480286411361746918506159473903726733655306139229041966319222976073129655905412481023707168722048766683820469072276176894734156516035349949977560970147060180487742743872612636474837066735186832127140120509285711779424978103447222067992453816814625997684973179841039084071632521570942962500487847876576616675974383804473125825945884031000978056802053527136186912476389235065333244600996974906249534219260585681600278727973854299443817021100976410939641191193448801067776742162093678007195144303932139813609249809984079409921519511727612547965361205080729738257872090297694510700746411356075467770979443392236516609593449059674986869398121420420850010678961779501981134934684613208100281853295887365492504295839744615612155243659131631121714468517896355032934860382998272480567539016273250999817039348711787466196838945876290410100286156138396599728087693711676526917756339649352562705125615243695885350846335336532416656299706005643669620374961127680833929491930763928886717953288119290919639575550461125952364331776048338069216164488805999717326773848223927936910811812725253448117002259640279960530632113506824189736511993161942639655677914467211550326158877966279777731196649495275870849201897619077358437353473310708232132615190162708961125307581408478794421288084576300533654655324693567253423352142703934653941318016571463701442930294804378563411705366148232720222208677039502970195509745376398901577995008650948107479171490619477852551774584337619002371139744576841359223114023888710771737169480524709915092710116679908549381128646733940534768485186927010245932090454105713604495599282969768090804993911067221759006778180579753504950434425692565625347021690125569592804582246514008783888100872106320388144168768943752329392872522261151119374890781823018075350518187191050883761839699954727467156377067060994240801725846835022008889593203494868852004409132715170189180888263547124561321945462468845871979183952231165658465424881680206546806235982338229619151745771703981892246614906472104344346554451086995699101982386788211332122013906248521783482678783766866654105304276394198094892592271870133630832547937999292757662199244096470106390455587521189780216269796857690485122078329037463842429097552730289225893194963887377910725333592312268331907907657723183271237067313729561426574677932431699660855408976722375433614454750612363161561116377417596756747189766896079124683154668392248010855420341303406887676058778654836060060607119449697976840812830566013254226929451738894170872459121784799239989001076231609259503311792835032267205625265345813689228135940586935847395364031955915665786046968297666223372464981629012405780120508558881543410368280453317121124251846031852377131981711452779396135349984110037469266766215842195126638811597479112504896391841656502278520932545120027670450732542531125853904711677279408627696466887321846395806517456804862756025995311071170647137678513953553654334980198152041991115186178202953877539125995618655789862335405359014115729052765000929579962568955789894828332607238068023220009331877062088413937783025134684729122647959758425314021622928104334952745956288817374092876009393713015920957504233830962819612337002455669895503732851332791370460015735655210020514929117806886865249375039270772563825042136962791651860918052976953272136836596517013375273465563259357841389107640704088553057750297876463772863084258291252665084754818592113387755537735414960213628498549677345812251969057150217769776529192798468835826295999324253679219100170117369635578138513619006408687806742593073325220482252509730190788399464181080867802509556402533874885357676051782440846428599667873460076192399030035576317567220913481863611713452756473159076898970710211348213764040588975176340945833263679820614509439033869435216754136139654044738147398726094110276880465229249110928792530523396338766369129910521390840139068090008116637249915044818677934603818760251762932028093584263698460399024113154114728439569683345834227168854419209143499105106412119378032466071688798046424679817851161869648823546556876034205997079009183536987247128903001213339867794574444687264553839681053185685198331286364154614307106501110236217326755480589504381354631472024121577093594615272121499651694486490000334347027080536238876799554305595500828475187403149651878911652374473522632161549467741705764389038663983039683618288880241842768155910724295931550712447347315160667922670758583817639954527854467845429033328005559370715236060477485394283001390177442270052414247440838892705792219097624318345168802501021935670360008174298553415700078168690326510757717700406639125388862678744356479643623140220139505221516073146265938581902952096660684395225554490365598408406996503552851936134091173613807569779105981701811728260373574481622913043182878956783680099798192206394904491865450614996636960161319246123288537027285144146792790483585869776070756607876544887702393355826313139149632351623604928504822495685364438972317852779361585346909498232955021944060023845921946018798905966539758563384420525042766523473506100998128276520932542193963753559537984503442723113771610104899406396884757633679602559373997730500292509790887267735124266065286749616230413960594617049468196863539652891019898839619227654087264582505697361096362648355733522077533004134458463463043882786196020204256572197168025743044286825281177917620750741148283872921396460261574163160302747217345388519260950100095532769168906298045845246310591823255748914693165125276755560643436663510067788704289064797002547252197445159366486245144900815571132266349141987164081416456993505409769608143112788356593512826095137396603711509854153520364602353464353754891419016069769397498740368330622045402326360078047913714668793028437400510776753193964711918436614676257824316527622333810973162289161734660527997463537227238640580189161644088258253975098624391127281798849485505592618013727472451495220724829968697856975212620618564959191622940116981570824043990934521164442185140766496857721268765294488105106371615656950214068372753130780557673285952489401789057022991672027190524445967651517369494554420703216971382942586262857381055753995400819901579028683013179972489340409960659636706578954043568804236079747440599689109197020144212622133196118272330115235019732361307102779370390686010607131501572961295474760617167097411966194533422208919844645675732817860427376428760859825666748800377603325084272941999362206510263642639731352554103177730563108221301721483256632936014377614045855578847286029766894584233057861037303213845367801077201089444374407254616723474036399028735190885973379499560122569099778361041997843385659025413571761010868010484779961608596730085375216356421634339928400768869729971243257119671612647564988962248300960456359243995529448501470349387781159013430632910905988523539845603735028120277567624973029936147168660366531164190233385991273300592768557145947713223479620531368442911657314900685433467941771779972761537543978488024850783357664862998968647603460185080708825176598279100665017699471704818830449266946277345960862964869183980930942989553127765253364591001315301924199152518862239009634630232991368525111439561702336225031110080902476307786939993585235877103040968528194754256385900764185134795932977986736472995501244494133510047695484166032982999021220055864330059423484661890664327556984083060308373796393525148147521395353549446837827434445565801645641518178955760912384830138694249942279237391722733383677709667868898227551733015382695458641145089231562056429951473889291624921888970517761781606911313444164924687542624257289084365129865257372777897171577937734320861999730388443553221370576744130787354032418125617157646868637580832031080206214930162169952082079774010243310100675162930565527817982403545911213027318042892128347614754544762718748923637421161645867666019325528690061999791821946633750003808549377652893292920117198129281229565823975446500961123920257520553509287518658726871248293754052116340896795591651267422462540151374958294328852004397573634673303610545491735808663231647696359017758530505346545127735654254425717098401720391069120661555140190961247960344575231464976640656737519523647535618916219324975190545674299595532134832756952523060549409220748752384912135944714696746218369916942193283011924294670709207714431012354836497917559191861497315396290505338373429306004482035461229605176418889746128153133383419290618914183588963371570349323350789398661239342085199465139289813512092625490540680680715316789877618518994295939319723535575177684033662368506866908157246352827410550977138755953451997475063639022839207709937973511695634372590401636589892208074280739303818351832486314090924803357309354792329828416465291697594506659252112060244466083794513800078102448585683339476664785773024233149956576213247637049428653135288392213255141039515847224633563696708312246944330575114111156485732462041985741347890410381648968506029185705070441308718160885944315576375303933408403373170760876178329266427292818069245323095283750081859183649907890099254434941640205646721796273434800307974879422807170653233732469090574689379919597073565875757392460973398728918008311429921369761576731125500427830121198689757545955421158016212652020640014513139635016385534457901217341227601013295896194868064420116742637873483938884134578972010823277018036515706086168625434713394427656964491077040209199743976835452780161395172988918839108598736948483084354198111697172999354914891712290509091553881853181991331541529104379274013790015549354456204360680644539084860790765167618891145610461213595078585438876326256655328255294183080438499497972697264531626453437762485733523608367922272814465446283141262410090126462611469288055858217563476755917582215994117278056242012728497751820324970754615369963962937351545914827233068722716323670579114354486110741242378787119530481123518524322501460719735210977267042358228063122280810127880741966775977824025040427624199887870503538689207392893369446304473226227177921779683675626608598440527537094927916005757021298827482319719174035548859470823165467821290078300792397328936703047456554357870977194173586548014353402040862026288523638263683458525203824575738219862687390532699860910958420210347512702467051689330874468333915192546437134028166757088083161060927803652001312033650687353668656423614238455925610922862627545646117032738617414464246396364390387617223315757784581587403257457269867431392953056102567098938805947999997798042710094026309351764843773121340434026580149686196096736982236347025664063699974729109079130537747388755017427276480136889379374762335924938033468500518766277306800635835656153995078272257326862997648111940301029275154212616256172268708516860029522025102582307455865547509290510286996902181580840562348459489717102700045533920594581553829606017308408688978369228731659680464480208371969543375618928716343728131073159270217261053175342336088465571608298821187438962794956260876250592131859165618310412159362413859686685137444463567350603405168937175185779341229380250693114288957809775528031848026373537984843062896966452454467433130314329046107803133447847387512764587273312268848996234324603233634637565971388938193662600274523020323586065267592069618966073783718282009722271565748794313233296320870037260440308107273607905756896325245830367475517059007273099968469171166442396735788055195067068338426507429071060013250961133066051537241076575742887885803269114701640887827588620603203731640091086014139630077537645401977977874420382445664404049329091361945966726872932286587925917712266037327998846484747121668369759555331581694917887420092516211361953388952794341143657691033582170102950330613357746253209620176182224450507319077425085121018371351644871276703903034441899950320589308110514816968233379907212350359537025876596588469134414122956129733614518156891543419278112855954610747832580457760632069895687144048089368366331016323330003102832924272228210008926439213682291921185290961279496957678222439464602975885258069508966613089973146321142390474426894472684116374650796616557154598498456152117182193792075218122700240858230369449089151989787371681749756238609569854626117478507120469746336302967037428862854752674743581950039654424594948694723634734357492559119567060730091120730924446366185078498513721837568204282160961948117361320396132730808093537552950568157042616245466025497178700200584363015531135167444965578608346427563009612674071795519311938578139963145046949429501375460150564969206909763462527684723537512302717436903831943488411898843905935535593995655710245236962628566155880652968616087331743689732632393441210348475841444130653586278816724536584301227849653945127502348508548426969848281097095869742176410612815144272986944799284542478113827500411967831964244440561838134706019258139796859903490932392543337474443810920332898153141410467856139184783992937734887172037908179907129697976525668648007589872961990240961368583475333109873471686486367639824621179100427750265780546936348351780699499072636893747890087568519328837214967255988030397345411291017647215290507290800632074571700938904633969175605753582948856325213246378529080735965638984602104109615311459375262138515903325680866714986159037892955459840563228694688489294707688156074337393691995520440302763859901456968565556740618486647512167032551610260059812871784927919127198561538836972015073702956137847377465354876548966877729350643045532962567158452311707113353873314998762594961618033556468702485278582830677590756991982325217940928406751520908813023451276662984582932555568808472793970984878990496949727344670589576267652883042553032083721278240917448355355279053995772094428250202352847569784205684213596155822958713215787320141535776340294597137391589632784224551519378252246987981131335319140662141147860365731875045520315893300761572453901404361050600750257364692757034354973383676308156263296840612275197827392805137779345208233363899990161346000871538265767162010586728204722228695285013541251351907369310992452397251071275540382163742951827307054128604851781661132897723111854868628926696973197206706143961560650681311465614677859013793053711256208912123576198255589837619016334834678147871414836952406220099367614449691466502281592238758007102174345610314018749287709891908804472110757155739914679884047746758831086411041441499470239768980383315168574495330760400112989677242253918385006571449853720787842274663807952325885353965903503628894100881076666554495518595428927094867012501391989454105750936357799352594112368905000627858232961691307677719180478893767480957839098887395370059689997420663451477184691206951417528260772872149204108651059564121058631576673007513881746381405912506208860989646311634880554910383647638171360825974981853801134293423658577629452849052236634886449759664725558280667942649387685970084442658577046760404403956666391255085247150220057453973487654677838273252704850799785477907065810597632316439287567184609314133111479523089825761573103187897049767834430070478433363648521282535944548001118989629871758073069974891826439488127780523636588276766853159140563390222799232091681961520306604982741306931405388936235549909202739649792548369531808171820630831160616981315461521737168454031766457554619891028051065720586149038661043866505453241884776331864425165885977085579730783126085018040305136964972081151799452320611244553267703430132827652423622138669052694561476057282538007431627464927193693329512334306805432156833004546090939533451272667160197725700629037150724270547757761299020785789216781065551909527064416684531337458425034540565627098866748434219198730675861662448715357690288153421085961386041220064717565603165375608794360198610746386826670691120909840650524744012355620673535083083274454267169063995221459311605730423576468594853307085075209920374308929865643482944718020781655611860892330413497887788815782430624419324268204200955021633193267649679618560629694535954613702291324339653571340193464107656466365054096458809587317576098394276135922316165105360454304308265361808898457033717254210136362817946052663060173610502518758613477882300515928502580436449007224379769418874688088639882603419236239167751611834138810355899601534718594116670173427408908241744565231475640033343039217383409801553633532532367762589436023482903128813208125658366592475893081553134781172038420516835625049539733391111764598311554463635601223873928846799193792145890907100015348178793753598212937049473840642546596037416081716007442668557090866442531434223167170281745888897941045739824781648396264006418142046444583330236688023577680273725965385117633686767186238235558898267734600645202606200928921635776485276465430385436684216361383781936573619287960800007129988968071841477021257417692663949672003268184875504212009376922050006195286521223058865571112038359608273321811029918071141472870617000427583979725058490150311383763834747167625028282964298313966119845251192861137319986085796910314104435376748046684793838778238518309985943030138033013718169927300185369902322270577908201171928816336129586848178884216535794343357949928205548720857910147756305000865705317115584971504470134214160646818946177156890550998029882382331677199678505764508025425427111920149440791688889934755753261104925006928460344428027750300727870255328561317919783252945360435598008057200987465154400095353859283371081905390304196675448558110967937903528513274796122470376006756701962002202708840426873982579390641003271789275713093707699481943983684344947951537599694709497020634725951103381533959758292502475128733104169001292932326286739143620132372736848022186879770050562074961444942553000272656574104980293847242109816144135395179880198418914079587618782319202526947195803740671721605448435096394439423198112088484381441116222187520443170354564331307316148629936583250338502449264557460998857379249905616390686092279638137861632545531223360653456570136757329649770969774102944962773627032286010587252540901214963594745995804116995505903756710590839755439233383545261957195677286858128302446074931025555874034005417260706101004015046238589723098851544774430959045005565585617003475435264579431085865276153243392782413932202552165735026002498183756988352397944729777944923926088661014721712716669482548647069398476251998572089516139151740451308076714102032490374138491586225787272126910540594346891343128764781450347000929373453238318667468267293809536609933658042604048881550566167855255890906299206385480813322907970821646508924385289191569103295827947371998051319064182183905614095827918781403705629381635853296704283943926859252585106160868234990229099262948821265556471256666544285031357236978549473239181767197715927394954031489778913031570068372322171070015896871431168652215534330647282585178033408750177584902532747206407359290272137396667505733983210193560465812412800546780011737027500815191428060256838840678965620834529524100058504181918774614886357648219184037561398193801750031960131051235677602578502666526228922725608496669430002937048839424908294308175505775462369873568724281920936890614994974592109236771766293530797883305144563288936602810772034271684321790980194561537636738329130527128286148285724857396658841080034560887736752799022324806662400451173193292156795769633782672440946164581729222027410489130693618091625983131364802260209553133956219396588036601945509561826049500722702896802096515861035625893483923766296481819035142926757461273252416452235985227923593246449615622713909510396217026861174399305986467387458180115687938013041873996132891693771958362041514829570033234351579190789903484608029019045591153026550872188951831534187887493501274518071975825907924545618040234545551279373461616981608874041966174631581495611835416862460187294963873688498484860787217399161970316500207273653193310431907274344177097372519649825194392655995723474907437787005417165523821405478379059437574953764656013369847827180766106505249875851292644590599055767756873081051471441116845469309049567790102941636864026762833699624184725133531947884270410582422267004558317576832494680313778826695855448353143975007551453824639626263589712308745202831519469752875744304802263695705759420539336274631126553395158606227108343504996614484028904303151426922404645708003677896929374754592744014982395775255541816544286280225103911238822607024063549732537315028149630463417099358018780141798101654016219989851148060324858573016540678326553077308683013726649111644148059833124494577688903041691739240360806566934501778627416371238179199653737723532507797276387473333127370263248257627092225563168834627225457229751003756407579382478126763541408366380008927717482246404904138675080146434443821362521301217921434864887063018875550072824294636702111101511436353919673236266300374241983326388608764307730483099206649313469075790244660516879580747588229770251193258263650427412862687249535448410069209821306872564117141336343126460116329532863960677509616251107834900009433136147774051226380549466986909590154215715360749888355723351023607720684503516616429384111030858454548208468205856972147653527311396985125438180231414824921108729656857918176453163512108916110562813705263508494455685493728631398351997473919245313659354369759897110969130234847830568347479110678690150148166433545865372534077972645868866824521602335785965083822571976385185289049144061329006618129255632631412495024101839824252337120921096210275901998705354643150065865177275755915804859789945859297372346389490382452326703149780652694467602617700643936036078565366606595102103123151745235102143757548295246811276878912586772724683162378818597181685722322242071208169776653794685832502590026419730650258524855352484016873671486415489793282876360817183320041320107818169154257905538560839247670126335480557638928178491384379242773429181240515699559504313696613977209071979354596145907103031238026173652109914104999687451647892605145046379146124546675041554500398018947252369536706036462057033808979265256599098483648750828939573987599366104852710975572740034262997233703525185323819729923479176268195787205628968531089595303692300030049759554600499718847870223797011629913864085250363342594616798396523589539297366896143857309104314147739215075243434091637203464006077203980402897524066714528566127278882356558758332704263231555980251920674787730448840313710301278608517311341533051439560470760463519140583013277770550628699143957597820785117422492658529313909348029823007687828869161172072354645736675979310206419143060540719156646679179599960084060065843378613041781017609649099439007760520762024711642755060624641476280856668419144872227103314769483284420721681607590252791253892979752529410814203262675105872474425317313794554013483318413086814189029015863349621484203269167426032467653971798734166552167774281904629899974552106605881088555983228517270710630465676497597177966582186312870376032627726827018367286907585336222697484685535620471958582670948139558545859733025287792892541133360296967245971538272967161245982517785131316914583580660329476720356132151095933090573465423949319419606840831955505113105030874571030873187845961490607721383893150913979899191515673817236775268252785079554949741682292743435431533306138503913620910167287401109239719785667475131963902901377226353147222659704560878370791291522418803634489430757591427023380559268920827696254774094536282211156198245944608754364776115755152611746453202265297482150720561618621419611200413097959330579182266395388418889843266129661753540372059860752365789791190529933810131141577708474615055865695097237511952831879508518789175676851182518051339242227538451620569114022968030412416657191569328128173460959472955001845486474473739625311667021201870083962685043918097019733456770366520965636021738993239766022501334792627333000270925696632358035360569060057102468705939038791601338517440454200024761511757371509090966590169880332670821287182542189028918067562306126199642834535459707551805929899731154162848690821975338116512014880065014708578754586956040566615631797720692754043153510509307767118085440745431666793444490000175200897638528356830584775343537324437942118868952647815488931139268278388151283499913284881603513316873786019156141241404596793494046197333445040104571441258002144818323290117597128850532125202514846547388556068367973841183185169072906074598903359651665717422963389678624949534460794691403805094858549300063997620347638376481613275277629167394179075400093957824434681794298095148961355891938573053975397678205363996986794093912295982145888371682013591642518197729784543169328067739456259427384016083538575271764171823439900549273283732629727982595754409621067833072274521823464729248925344265700606364105206251710117241466167315454576080769550282583621005219347517375446479225923374020985465076512169968034987105053546873964186868079600054807749866787916934164820839031726813921015713418732068836710955654291666813578357975669186696268135143114739779276764395533755513980630825484155235908155620506626867385134944003364989026641480609503411767273257017963722639665021449694507971662421108615575820879515876514811770980508369533635960817070081029607534141322688414458894332849787859886959127175585850359490177202762543301054015543156168528126368421053109159163678292235093064307737236891451314412694100238390834637819860366407884719907260376994709982176576388572969577970224597920330225265067864142635760140117138396411749414429120380400471469702229175899867373334750647715727888596463962425820339770931498437069468678113611491791334683932310585021402872549727642673765705168794834375134044689694452762222114967612983176690331103066734511082489627214511345184841187039713801042571449971702202164633355200644820890069532623182970348390829775577723615652237199006706276867154410290319553288209988979431179329129724884443556580666458011100543080436601014572358965219042731375399410698160818428234358021616362043938355356109318129246974176347570068450644868209040783560153230130125870337002317965761856646968559003608908020907667680076450164860304383178574638335862249604410939248732104475259623499059870073967329909630518472134062792073157124291935565829485794871893912266436151193253188745084379005919020230958483089732670307930375913010841031283836712018741429895994631914015404484159944685217674771631140478541640235983491200603896736219840864035041761797949733853475776047736456118831729383294450183053332512081248236102151034248733371848092938750035634172107137665438325484932930457989986442944360497951126439557549746684462130527190692361291807637406070489972820204983596445188646878545546281718291487749324216772309815526860944801892326386036979679404915321764567191137028510777016540486477187369681502146731085899970963279864846060272181831853317877692352816173033166961457956636661103728397318180614820316393335459712838320267467416486886500597882115766424937603308383533546632041535210398635048038952304208421916808508397344168293244169848133811840020067625139832128578641513638172296233823224334025057122272968573405170908601543317563239330942204922630006088048414155107115911157099240781222605111888512952861464157167784634383257410826742511395095037731926655775163142751673491317491024021626602946990809115468785133143411878111165577249547921046526445520487887207500193739107996764453703619405822859793705487679908113080537911639885439841572054611215151072987631703956864067057578277633222137950181396440118830711591199294070847480908560006768914010393708307074352156817091779888241871815308032141693998319785748651503901494733181545638973863636215353346681315644111275218077759590858633324286726333717853341360696938180423843215289751455118687004555733967359946092696189881875612369625195658540744846638383061574445844987367923759751686054623978204086418165564293318599246131313825117599471016638341912515219323648263611994459587673496294538382206572736275304153220466169193484833933670872138348911687989469563270601333630042139147671775009427058753653504555094116637132927783058992003349244193017922248519119007431013196418403470200390544528457405923949298689007979292816610821394049457939808798982683510380263722290742112505317489420323296565677534036699659788728775269050544446938135710610923131202847191302392655570425061732117260703854590584291429549175610456122771477417627813078478133546260791689680005970301333982914698780372197466681670887048769403285009538902539510845172177748888261887575310022651138843410399799199455377015024717721923781856360812705582167497914305838883341990265706275107656335682394987888129439421239900629796448766483748876605902478345186999455580265350298350473486357824426277780709661841315702490387433690921402059006236933209777229269427836472057630488370896699121001665864110753578774172687211254166243154272124489208318842430846538101916561648178480502764088038359456189988641501117911035122961612606235689711690474215830175504702183556561901509458047477666686088311800027922041884863693049798955491571126901887131505437949683112307622996164799918974866425687197084636966226347135305525703902760200556221020067996090375187406651012737645286987297016864797009734020289688188107898410966473700404463781164664338565300644699829656945539545426244305622099151138841554305240660102848380025257301970808415963721690070245109281753922572398062976930650334954522585061605912159712412933604974691318732418394016136287058678353389098269191015342144782777100643173818412257258546296818372544187791885300378988716034094123900719157554264766062865068652889329282966993452536762718806309220933207691964083507829894631901656966862099149266758873483763188279093749619770287453113212980048147393400491522573734896626476691410824718350855548996585999086853607332860417340547718581160734241310686949542483031551510438888121721324459480026601372207499736579983442760167112140628730966010783031600806113882442541275535571083656522026487434863745394382492565411340639891972398324961448172340077853471877581873211583447405837941636519792212896144502042058385820604541621854660737599200254564403637382573392203903909612606791280432190684697174477806400875618592273517407315095101679576761874179195908260384639194404389685240824045601327286684223769049973972696693437086600788752677073068057118171170199037771127020216950796707372765451610190099156810316331017880985263170849029838114951488318589839440813969800536711390937930146469969507912132595364848202092883310168259906915476987859210431575701507830044616533941108855518376495244166830613301749499987778116959001874060366959074344496934315085493919624606065530608138693193683175305745983839005840284397155340129012499992475930796429744101459106435602228846058610655254432281249263139510919675309909587098195414261359100349507042659088651115045652288222170159458526803202509917356251607163441366525002593158982361360848479318962176594073440359338045446429471034624532724452840457702836164974313944792587593385261946618047766862235866540555691562044135217200598405403573731370126427542834361238454768703707071707369993964285371403234126142489507134886634905591273901524309215875824474612376121008316192857091476456597412790213961212640925123068757198430867687660449955453888019740102959540072954927380543893636815092397053726115608190724838546071981731045408623463777557287603094263295993997559482406927388088474594351921564967637045500036425799027353296187127919002095428696317923943446533174099830052988849718219515178002477202895202502992778562001945260677918903203965150966572710242037201444305437194777823374093132696795340869629665283631802956424539213684272324337170993298670617211426833514830602195288955042308954429425114333095104866368115489627566700342506735106721313967894939636211497897195369244070382984003298987443768621749895122305826197309125042617498513902533497307688806668024363681361802473537603535789920201516532012212278649165705466875984022124092357886589421071883310420415040732618534849885245484617003906665852980182816667413256045131807995454423624955169283829203855194301216031803743989312002970479246845877605229724913732255709764289548491670858085713743559697846247947915126168610905702400135263571149487391355071375592436630008575921277437120342216984299391173976271231309699696088277633822664174499312687120211798752997701684339191490534212008630722814412184916191873246899434228291076036822748266436249366957503713656550917690508600059987914543520472995425398588054906965883120803315463185643944937726747112348733121686747347536673938718389075152400688681752596756232782623115374114569980184500147297324785195325092681356300816368052332172870083559759629899508873308620502902659833919667138763456957226331382715579843971153155324535194890064836510337174585368418153109686518782328510772741972723127755379824519516633757256908154381888461234948655689651500087526104521523585472780972456605870394001161138059976793106413748855431403751878609269556056099611725159472820357713475564904302332947096715655383243762102821663112625468538402294411484326331738345742339707507539286903255992325405947648957461770095140922063580723090827795701329700846198394229564828061366124044124785053199823588975673538874362560467496052551807120229740884621885013110038035702196768326602293841011745685148366954349508092069777389844001909692820364683877697380390732370039941016001235098098703973504396135709135117876538410154225860542494588787966700030112610871588380067783866833903742431400816198355739858092794078325404914856423581178138674042060789556290675508857146022064237453561206762945554782325634066523204910922656501193255408694409407490064349010114682341189208199185480171009585180146684906140282477540298556939613812428334099436266997179640091657602837376397807777096696130860402454795975537670571406618868508443129847084887269384454955574081834811245830364420913370012034261470693163285685125933524751078769055178023908241792925705511265224082441423065857126487723264214286838887411434809940385797512183534264418909010365459103295959843333112700548885918665309724212263030378233798113816993820209095219913849818370268327237436031409931052263630052450440944018317791251308455739924832196865007253306659141009125073864795403536343200294444560536355138901319634613138013626294119406952651399407948397773442854963676430207968475414279628219103145133464913104345668315317279482540015075789455742160175170281848742984543505204467244636622973976790951379017124976028562809038937264410597899923566602356448094067136405386391560741800764884542574778295792310637547899958771613445977649092924784113383439915831923052409511422181585610724724355657196185966421886568141187704862586725751212436732768923737358598447270347252520861529896883045626095584140274571653470652677619693250856443665828349801643318164282824778737968426493697009935740557749876459205246155164977150693506411123602244157447643347707758828955465841515929849853045988309631130384986877012291297117442864162657144797820065814334789725800752877815020897484018218445789852862918569780087384954278579624683375827647620972596592329078036389464872621154584542238873624143156672845506156977504529376103494610725065678976736584705853857866991992802040290613783012889552167721916573905773144936655979673091677614264077951782515508247771857269858009160605397687616502430527856201002309993216607098798875707323939431232692525970024970613122204892472399704426998844880112953164120457047228195830273585035322768852384091870530571074812084629894400597974860161170414841970911660581956931689752180397785441002627322175956789109705615254334610577153858487700560444034226486152765767972484729325251977791827074258116021669370434610226920759529902828792570944201494222956704473341142941785740540571675248240274413298582161102258136072732607683036255793566327376668329367016830247412905269659517209908751390506352808192548813022716560129631835974241035274708138545907093604045159868080987171225292033195881693596560781164839162931268982034862054366532113606629259380896038578135915164204811327046897590956958363035128722699231838580623757938790802551752845032487750202939924401333077791569169702660444763339899844760898697151431755993193009719532133710232203002661572115084288505732308444185891672274285572732908597429794131679764407689456986195717682746960978356499534138506360270608584635585125904037322976259266541861492289314164082802457281841361443440909352126806760958649879025674755689839553933062392179641939972620116089547149877001154353223516681282126232127094260300236251727146934933139038230686013193685245249808701220977903913873069240430701387683446377446903525115248741878094835428967296659360293094122895084208320086255993367585460345189441370002237198353912111288746742908206896889821479774131954620744003613352285712583252394325129762008995387927507412935430952087349371854157681871644325538734882921979954084316310895509077175841509823484875821061051774864092215017237824331586029159265145665137286595784893883368675336797585650306088572549296816854383921454363372009192936864309350871314233835814952385052342422952152519383688333706940203393074586960902403057542578318378425167042918182532715925893163781516678868091742652567216413997285456973247632389129595825128607046648056923926496107522402056150170290165432191815845995727990869073373740873910748668255895337078154355523325264258502586376385020932566923924838885192679879891123046069726526822107410896969333883193872979214376821941956032106300780646275534845446242524850259506318754664040806764629426853468330688224518126791595615015484317110036091557733555827941238648568012601653694688156383875280173843969836478931910068917541586347794623009507888946315223417508527181054097897358364123984649720866408788130432402001084809883095105848659589605850752012245977244991683009002461557617170434932951700481701958823822037017849554707919985197886161088204253980524789012330411854468136804102149957449486695806300128084033623940427170998487508456721441747202685131073681133731015686157627856774176336635870427909559936090208176569945996029661862452014493221376009771606370151986240253495301480035223424396436560950978657849389466503432498209050429156331314404141921863595312051842187330006589988179752988144585680516542068230571827684847504351399094396409637307504211515676280446471642415180428031233649373249133687097086821117556389326360958407315366615913017368514631298636121471344478849696118749199032768846699214258589738407328545018298187941763571366251551408681891991217486972886939015114774214671136169858474206907531269379276209597426960541977668971264129668068994520365976554981159176882334889569220410117516458025157214481084577509557586690825357399642448172281988650935221506957381421510434560403538809322717409551893000844812018827328967758688203605696493153787486680474269576511804256975097317886709166960582753328207657088065633544445603993747393373703594619111657795897687217852304973800997018372200153233934995540655775638484289343352622955676255306432453459277454892876316064087011480530866954592821909903189701732542176542722321114557678976524593384499163668217867809905801248637657130105554925055696348158194812283252742292467067778405230328859966288707188421494477198940705516336475609097614064599243058891666855802784261944981493282969022040039771248617190195472529314716112991196138110729749717654664931314180825634512307019564357758493056483196275992786151939997907773996857850075363131251247193734498741029371475332848089294881085388528204246669458362873313179838805012969338519004662551220459994704373689761114175675229922380313402329318596346502059638898332279868055435736874157297058938386341570999734955898766653861199416203555676385373081570770457441348387817703461886520525311429123448007408333892751128493451948797863407091068973485985751432158061582058380763214074348846980070745012888717918809119017474864767822307148477533735868496539340127187441038851628795388305636381389761647091965540227156427495552422851502628000351960673035797886743451977215782740581177192521000113454916099804497226924757404097102384326201491571009880162737731481509655344256542081096492707107485305975691245539106317241900795177659251475096096331036881755783666417381489604353166446336359030912839547496962770974557644116882772386651109242954033988316157737398877526309167531102108803244144410519775329322411979835122327968096593693338328395801463722678583146014550709962342345010274813083416494485589329632876595024860204352213751690865825360956946366893126766793452916500707397220502257544142631118522607666047814117649901534822660986624475091085232208725885404052884440773384602780699283082409271789626648036741349419616526712177835792476534817931200899586367720512178808466299298961875089214115455807263940356408703035643558066436008939971976516600663029312900036568829822444500730432245813265357532747893298354519033074034299777097189187617972049171134832345390261403701618165171818774467233928497858483757897693026237146151840796724977267335029883327965154900625412759205251508437018716398539340350041252510647966570621443634236395982889367457342248537028274122875179773245107470744060203359191292841649924540748348518306645316313692612187864202441158663519398753659832201710547437090992250581243121662366264090020989768334786405519112099064799108701819302056627568037613739115045447570415395463506833402314161247245904070752985732830428294512976067916810232460639214472733006570834136845896797474647330261596840805877033726326863056596844613965228620615350160066892998983982444217552341780250360691919429501425606799553178380450387230462149289136717141511573780240053031820092072847944542096861397455906019269294933678094718503099291558808340452669374048007064698686315025510311055284003425502027274630414002199596947101768862871121125822087235014794747666644524512054951546273867897394422888357058730005748274742425830787597740460630285145796703120575799789708605547583566355828233304878273504398661774087556603284234197007628328650858266310503956389328054816170646739622713716059207617767173958840257311596252577826113042329692160749751959528520731133749157658248818765270568367576545083258091706498931277187771453217945952527551477909318698238209933508252101393610735947468454338989234201932526106903420377380315344235557266431598799678376154842218344697793152402410381095484530233171914005296579466933682361511446028842905141460242182737528225555584116774607986825748790784941157977415974114512705107071136037248970139887787762625280987792798659757139364121104688511554785968210830372476005350876556623673654956862091608032619554855908310743837768998357352789071892618537290992153934316015895878113096081834042564345580262614598385306430195884068168638148686875353743935386595772118253297982284877478536834571223219334160831403425275868527985185812586962658561983460568843431362638382192461313565242728069265537988492164245630843815544838901282262721330898858406414999788140000772904114674469747876490835903374761218575190266423899370706143114158466832788116615528484823433898348765126681490328397369759433474635196297709943209810305312925296079954378071000127240148152310045244095224827115968711226547184576707303908187212321102487251537084417321930933122825721651544685893741834445405189321241925418671303721865515081125030953794348546448834746773845064023387265969991214929000757208742950819901047076191253400301282361735971893028101227791096920378704207432324670883750482046155898254571047532934294043854475003119775385150654607430726575205091871269612171328100933748509548287061550926761684143390800582249119709398906069466332359688203837305527160495994850604797035434809309127428291797439991756188542011164553842966907874303381003508621983938210513988220024600589819386208570547796792369834192975124244909989226881321397666242264772372402732355054972464534405473678427218855414322689073217928810700275621736072302652228265898080253966092118562502136362416170671765308153934601518114968094988375153084595727121154807378956288134783029941048187959623443469688002985740823448045550880218023463080978895344504429566759395625953477354319823274960680693468868248498737882001190522685898224262146063968353276897015058012699171125976790860922783658058142213945692957053511684227463297322065163381308651868117685964499803870960045660260024079722341042921946909475477604635634889932299220367232293431216727574504470742073423763071698646309041022064368997442278195057958145067562984805149522652047945720326735966055481489131097505895197680842804231745897754667807793396851826845473046256140496428920920639821143493640488509531503351433271538506476327235380815458360337336256648377284790875296212499535321011525936631305588516603001454208532677951984122575497035530038273086146299978437189762622034810783339962946366932878679713475604857630738504313859302004714831963816957075247659033007892807767899666060274798502715498570714978538919928982806788757244246233961208066947563706085114627597406900717315360571250658691038515883264959266424540709477902655178646428494797657802181714815368980178017348832482040728863825896391546988216150872967321719911271515383036158312181647278158865553847687509270301167960519851497240559444199480260508883306562979636641726004033946744801159613555665812837803842471843995312291293377031391233859346282237503789395725134426409654009125234332806977096206011741189373524052257506579942508013084256008758923594915439384248062160728247393801915048087933087667561660432742235138471793438863241223921954843484707057913582421434266869991774356966355356388085316383593273497839606910770680357141066050534922191386898062068052071535120867975294991761077675079631697552821037843320214524325307905688838080420490196087510735508255859693361327133127650291908452698634771370925319012898710245830822027965457784160340835041998505766633795115284825933506660522053214817974566338902110010329249750265943573117534478093959488857591039128899337004669141513276290922062297930625467034173428110885912203195605291356074540645612167256824888410478974480718442539410159613717748924621705068507707285398503428010477319604320585346047185859795097334359746622515655238504320023351708004668684073188417107551755753767416114738349296779109919663829496471619377992226532040711347886170720997339113787268670826410434726089940532237631075652850433308096499029163352710092504582652162196977277270659579163729866232869324404747940080939638421478412361201992917570121485050865486519653739322784830628090663887348639269267744570312021255593977989584522506790840596239408312381988370897526268463637070577137047564330445252140808615729009457352851326938019342919073536744582066710449389382789808895338061226274552002752745325922247521455390308331244849160705494118815330932742556292681912685513883797355135983693254840235210501702827595646749185854729893302064186933947523106504437753217381580726258281786567164884371881501175733094639798681108322624190913138993970310998828747132505121303436290374823801614470427217594392768998780115354064489809986401586630480527907377935516075429902466259933913540284815488665959099526962214540551393926408004449679677769351542539022583507157139303497719421509289321421706543580605786675556615431507108599061277181122942128751921878659735686067149541663173652539679975969484927549248862974209911224463896271559331393310350778158203207077835004856497448192089015155847893909782665935085150428556309534931289291603923776424472388915509276661500816416911508470856738084165757377409010890673540240997177051147656003107952725876876719525773520528204715550090809977044747145164462241854399443496242581849590036765130316184137834662575887780461771523762235494332287140995129662154896585029307998037311438776789492324203373131430127717157595682280581763624929988133144500861630303886485443772107834082098301321600733892153420272371434838674665429048491281772821178356025892008549341733732800497404664193580717134778235144692910079589473409216389666994285996638484792551733501764421813681696562659174988832767520704783567892575342561933597569350436765042887783434827606873723586271084221572416632614323313429368486844297942479959807240255280153939786343561548256435922791774370578366425524383092110980603755451034280461248241214812543612596121794854129805908675911347831405327360450166199870343401822223528610175503073951336361925530380712382641838335862126293528556851188331014965569212446959699465265987027104292653165665957546161623364487677608882478794914625848927355392387203830780681321979049760194350300161075463038739984312523792853147023892574033677195205452372939317622282433820097573755279990022018702685220113467965224320133612210146107485222276750119507996736351192600323691659683247531595000548601084308622550490767378147801116728138632838719071774450753130328026441911485724900711872331691367147338210246305834590534986843037324877359967709506454632337380688776340009230240595476101122832294148302084572667334479220795654172884564592803502446382774528320229185341267397827685708578230036506640486078933881060834623617153500981660607595687047575414421117923586710614586337681210085028884606348441501201752684981016566969353469881444843421564229127997428166515189131627166571786018178417611870955793294073332252421066302685188363098416391752564191335144490623723638709278228709167518542180422697547289566459006592395823743987434690315046700491544052548958288974463019062491650554981467195203803224918032157708575259193263601123986355197997244788700821031548080344345635885362310367011115492266768265426797321047342860611120548317935989453792332453398372525755668234256973600534531166332771712471942491676816790313585594485280831426025322591559710946110749921837347311431895349160964986432812240495564618926401456498058869664887081469501483383899912308989540865758430098280020854543368720613524507375036698343301698118387492193854406693756905863428916851895224641493020923525132661414642160754127245955247953926621889606119057867240642778312951436070092587881809774528011017715062344475110769402186219500984829029165440281766179693012721018826294967380538425434988530680160458738779964199582326511556937910822313277296794336066296233086445342211499126531937152442065396181899923376514084232778877282047319710919500455319146089973762375489980002711035384100434786306009707780293492371570321759997622481447700707942579881299793668426626938017818194888509589343861585328678578797563462367645577617165471521837831083719735606997795426519205664418024044807318028879275228282286135244117508748769722799262098286591263711766668748557070611134245787614413001348360904481746694043308120463968307193056624917409464685587301222279299578149152540265338107496918855123006233583858768640837070589623006579045120336079970760356419002222632415399396422398588709246327978161665246668687992805256760586597171236697498670234069631754132706082625589568268794003713994234806473599364778285382740137757875167690300898172738088224414775803641762639882570649878734696479417950271822574704241203823339957234758351175668779307161866469836742443446857028608652117992533127953047749526069620745804226941263364745242199741469111202996353565106644913777968552046362307939733827563855170691859425502339049002283435677320915726847193400891235433368413365390433579913278826139891182184266376677996127172509270477868058587088557656691865888142342435607222321568724244918676962447795550766429376673689313372817901142722615915846925677801923107994657642542120629607127084648524179855864499219256240446419260641888044885193453079008682509119746549624311094059981646757900051811003132271104281475430554979782170281253840297236054527446588075951017094266430169580873051310178031992042991647007127383747211392697294309812688984699190627583767979356485522602325043857246744919764321497875096999675004265775888934052748426201343123920039591250061878796538266792462673374898464646660996576951827572098645348142764048471037019616975373195954167597105332139195338718448092321677195930460079720472816038385291007694149375523802110842851946414539606138849022599976723219476223137326266429414091530316893091428074269221583096763102020016141210484433381866238548478303729213686120545992862837365668548717452625408983682379688165127011374754889077769290832762675350147213116581471215264710035470775284535538927349286531534102454039742838099901795602017390952550370744546412502198069775176088899901325532732819608971827106802887617222683765750595071691222644777656442021267871437735180514782689844936240270890764631661704167295004989230010008750924035447796876046425024874942371716130388309024925976659286630731089639199471017666414358750637454461545442820034876240712319012802111465507205690173485351865405535549226857076607474096532058718820089983147368691073429960767592062549601609458464122563693740403334232947751858681678986301482127405230096899894845760804654801428173549569439531960870915702525209673838724073146043991460954116480963946712726303421705857242480297333785084802832371202288947658094074263485081864184249612884950362199260982487564131060217919064346012160352224845988235706485440949065293666805765948364865419610358510347891575294944606359381819634368267884224306868646215591825698374018024759403717080097845758413791082798003657102195063262530309751750807305301180559379369445816708413308092181661986376382637937075565781286401951780089459758453626086507203780654021620900693693962721271973456120713607176882417636014500356471290710582629334076756278280186168869954596862278220025689055509154326204587461273278030489148828692965894258877034384283335706522667371996371750506644988196532421724623918611079023481680130271967384958965255983788185488345434467772101111101191902940156677121201035022268300041660843510013711145870069134354130304129651574589443836341791359031041360014030030453911534243331159166920288323926950321479813576500512735259388761994214218811458650395567922270758251595638517683691514468178347838642395858566835076830080333912002463128786340584694198255368354900144338898779780939703895687016747919756325528641533200953082924019427491465056395484449633929399603585615560109862814685828855009910201949152681041622344634601350831466132402211816146243871435481825239490315699570270912128460032550539935191585695093317773102724543309342834211727959416702779267191105877869846518033605632411936385125007879233354882012129379853341644026350356596756234340065604639335347239281547868970010565604938654340318385234212594488546321407527612279767385188777272941539321194529996856065536015586712853131052725416563971947146985653838992659906133463955466895542124501357963727716809972923900399943241936118185824622483270869228688781796384873843338234182550903612657255784085482677363643611428149987143305658388829979277934286462726453288418735087043405077909434319197249368864065001340156088457587212793018145318503481467009825208852205281012886980820866594189291223338020510862700339402193637716565529425961593298343895805649247856477939662490233663268499106986559202508587138594230781195433741375910100968033824880567271626743051039555252133801115394071496936492786130189646042967129914488110438753139479680106358035922819114899030530830541114569807283567354951641198242766925422769844889270601971907568530641854111407363916776726021777811504058842388165572697405539104757687160331717008299776031220086325340573862664736616724027306948537420750399740813124486568853631042439672194236504383136707129343246957394955317082953835428453627950214396443474381951759070039633942769133079684768613376598398423667804225699055629137176144545999439893669690198698092513939757164295128821425907061309919395859684106080429828140676135507864260170508525270673165743885973404902841797814317761296341968562701878603413772459480296599624876671406756558613348481917660485299433243197592790015052409115783626711180045154669862927217396444592234528609378418908095802719578537574325254684021981546442166147587183984481268207520706109035624729409972009776237592369990821954824991346428025739132666456568987303847493915035136631003630991171587796828371786296710546699305495019705623230610972188423100220756718319878122323820504815479384452333439796413160364960459882860044022669540946056236594815770938810723152162640441301182272184966969639912916831115280127861876956055352870075642505396378698212794220704767121008797853406701141193965715875556357071119830464540321248075734962989146824168399498048786576205185188715168065610422095509352260144146301757644529954228853078280506146095813335376448806657819905798464795322041858191724640896523420784018299571121973083139082366369277453053961660035999223730829755569271285543965672259761587780207523562622052265966796250906352851320570564745183807883386756016728280823239451107747087421227618955130918433568108382948906873688278077843580253054297698543479005230851626741108471124119178851948270477252602957204365353465741508911548843532843907770916169010310946719682347313546255706776560282803534754847863472281287342257186727653079723611036827950584971935523899674786968716178241018313955433905911601530212619694367801082464718939114647410452788745903161829874330413761132968900378508585694030602831330284524748417516744902205071631145702942667727892649342776814150601857471799290403315472759316498184778092715587704387152347524309175417410258893591397079824100880914754165926179252648065352508894848287554165713390202453276451599700669282853862037815401943094641186467655040678479663027046856141511970106068968155451495203698256821614366180941454446075158376621006213312820699179374296610280405407491973982962026023874510283413015745301947495093199189957144954014601646470896015197012444847532261443627409387295965192298763776408976685880532285463286192846522394633942631229242485828912403662387321423939940535235042340655898466774186785841996229073989991223035147079764544043149238620133503449116569561549513968562688785457829345572312216457056214451535119851086851544139135188466758260303397288587572047775577981445693663181616132981969361799524453592192335444548695227066539717315721623156565542526271168452451516105433697477873989850158544334065384443853529432958536644808278116281397481801764677190094847104849690119834368603671021227853076556932545318022253183744609012029448944361574828313628586962149817296196300280066862362459331956886468684821932757443646229918231666588028088157559119026631048893933434610116721014634730217268138140280391506536994058184094798889937139680575348950068398350752758838350489938414766371235341829434609947891332822841167348259623037269034622337672684622708548635475561852975292508984259556180216404391486782009589779650858867207226134863588489147679134967816648347929990744168430142367132023095210959653442268483715968808841379922001497947274507358960056266953034813564922822377470600661698257093010169663849636284119242656533946290833999724142242384925637998041056677202786755749376793927271629847213553628051289876902389646517389441158244714058863190518853414358842288652818703249549131671545807484968079619417091061636462718395216763148384560657617068555902011962630773189217357555510924931735623796966859333825868282540579004030623687480406162323341463442566411159712026653136618317900382992708236286859816726306832375030941351038853388793374944858238458358139030351189051384003190296971889743749062048677793821162606866677852128876729052727507074950404659452867111044509525363301105470505870098879379074445620186010771040040428870169285941157641961165282051275059923946946012118578094955257870915059840751555209106824909214492078268147792893948182700212524832285232062710338018786670010499565635271062683723343497992096415168489816810100682075570312122025160816519049755944928775917764351068889536954966998127972907564823490246641205171998117175307061848267510202827223629405533970492490381324422903586399953235043217883936825790238881488387876417140098240681590301019936742478802190334053521631883257962008195212447322990933510754731854344724487878402127798528891366303670855039329807136681814274321201338027990330653556638938793237628738861637522300005460150091837204719118984826157756781976809981662236168985970638661122612031806549105780382137911087372351868153558134731666631092294175284923968037343055539652667828157195033425790387032296316036830755541833405134962065975384966254880462417371676875904144603472755342710501899281346542320752083983341508195276019416444983000755045083301583260288071419203387907924440414253862495582095070104686804000341221757567030466650175058071447207369628104010174856338873293331300393431721000670148458229000557456719496492736453516815576892718283065832891516183614268647294634745435296966992040329202439246131518835039285100048979307795646420945744708982757239270849971553530881011137415196718206573578946969037347340148470404703812657787130080635656512193021478073547862278961726592635562740558374346265291748146927346610735590185653414219363906030509538521987769152308295603302862458981928408826320691228018536611076139579242662795191838736757240441098165582271634268627085052661163900268378409133542532622493108294902136032224837583897074259296147743033451877005846326452506381477975362146050487382664280249502589987721575692933403002903008256168391721082654276186850280338091221209764882733322614473428471592079727732061311529659954551837125587998754330663030979589653928261780386440053151493051394799555883349718976894282837062665353469397151352415710715181865654509512404682936445551987924773826667180917154388403348090862306149222471363744960220065776314639784140557064598030844582193405430631388329380907014968012694773422465318596681019276520377061397752751975768680497329058266919180039779396926307694778911568634807879327566485053301450873322902419970092583270840688404530665566924872647074730713873786922467849532108829775561703140047575332015002406867784543896825142941970478725133287069540827444667972482203048559385343929887660253685048264612724894973152834237671833086688468912581114995657845311141539475919115280895141469005812321197907424679377011740029990028496611141130116725870237539010344107995527976335496891103024667795028563372913377781322873905430476223624177432945615287943473045745659299011196486005872129800303641715271264067196646909280169141927913441778022942923138544362985219870167649931786805224629761752454703971114286811470297452520782220764161362552346595156906782273706136098611207758835001729659441519082510015742466570241829756962201408887599800854375618953364938039780421624530229625975342293408339613678600690216222586019091943939556911430882793187291746115405987501821552888699766974166946069379564866851139094912629289128141265350587449874704199369325769397573120404838460287448644754297351139898726403189074720321853222992437061452398657441128720877323145918048330053140796436696650071988169271751369082568908945873949149669475671428190525357603983664962686645806635283136654113069632517098625483550111658071788033796364522500096638868218656359853155966342346518765705692078500503485831072961006810851569101409105885813482920780431187783941015136621236919099267000757053293907942514196294490005631283209971179567467970493363348615259350748148019533750832224463325780001568647602470275531282852791117325362615695653079573841814880092027572011100225667996924033797382463234463987181822400643794942044961031379073587223321242605736662443018425355509983475293670558414426426227694758327543444903428516669753714968984304141996378904407074966857335653145271440888233750529039012934906276767704995743542516875649024956282881832944019788448628719907473803706206753834077421535671402601972451548506870122630050614040829828156078471460648026569285499490730103229163314869218774244518409407122115144704101513262016741370985111211976791973602611216700984255132901337453928262287184020329854369877060964618329915898006034700081552142038356229222229047541712803700798015160375799934244233300370161766276551008922943052901072615248137168594350200707502112915665846131844105824755620771142181700580831799307217817031214190397758622857937941454899523002170408863895413595898090488768287283832551396337869685975843793571943778559064894060174397925056399407580694444922107894647496096149395897389315390413190290104894354105306948895376553418933326224051439818076168729360395261632766270676231917423063629147576475760974247949165287340822199209578855429087134362256660307679158792911056357781849348596893521063048834997272965739148389757228290057006743040030253992518726716962669416651315996241611637229029121411352029606627943711314560498047349386340880119338256722913771982546041234154568808222243314175478926825235850549622466851308782643213200615817331111090713783231188944992813975785269650571255978139635474710148563573033904086462995400211623551482371758308163826868540120995330774401954913960549729578214438165894540427031381240987226105949345907148768553855892754147335923595447885242192487456697698968338724994817702196412968848209392722735015512007530208679820075722081424024196439661941503404887814083303121115958177444267055259568407034414822189954608617162186363773591932534112905767878320291116565843568110079574853718464370386404349687621028403577618904711923423394949547214938953630729042175906205174415772033577714469930414750836282180247501876084199342923356184725554509222392205667239984617645402215128321181896305439452891900060636527562899353465244572809246646190045785588007036897855297642640358254765532507900892390146431414729656139849173783402038262685023762538533256188021540604521619771692334630565314184512237035011359660336568031566362507671911178195359904761872958625750464504782484548443426687432042182443395439243158535249165417238186251255169929458845114404345275846949031789548720972696178415224488397645144230529511604880363115497918832096609712194109662470682640357817425381781725150693549656166878861186522230936982271111802829500133833236743439763583461211970581983910429688757887357719904860337692825393734024327132643200842390336300241047277013409103464078105570405179234144393259485394542364523311680500549117021883458189245196675094316307838133568238743836558967329677342890747255642328055653033352873141190501922363633767045138711700571957645103053077211214093007006544584727714105300636365416123478391663289667770657244440253295739558416633074935590100832509455554078995360977354194364231119653192188968073275118743468246652124376711128801841940477411962603474421006333958069306062209090841439658222834694537053726817226823849431476974170452631463649462660989322264840228717117114688776690147721777254734306445759682802039206857754390400952287027290680631669781674000023277665732651215715979253693962476077267680715290750057656768498735917768399531930317243104422571664867268294881830025060137848866657162664321446783206577339087832825002501326618470312069777248516549260158265441525928214804208692208397397975335196060421144984195927655133895351382006358591787149092253471043115282613692516340548441377437896155365313509627825566113252110584206397118879134752999377478382362700155925969966645016101816746170117847717600578354276282045925732753830604091993539507335974496179250611087731436093370606645405327266048437763684112029860555979435972559343225016657628083460283279009657829580412810307187748236504794918829892651008193717687833379975987029769576837884289095917523512395844742113483518631333415161451560668364489604207573891577556460636990250007048928432965506080228160521982385713019390801525041612287878641133347867540932164319564011550796393901156747823495712300232483881861127976421733158608035107234163301240696599934955967003765192449509068230495127822137805363315867978782053446831579170655384589130494598370276766223168551120280496299652334970619279380380497019461415742750786399363992684324559789826455884366601392925269069324225647905674770039649215440435725083751229616008804552193321441871902175393096067585967914331745755507834278966473750979162637300586386800032519788046815511579419661955341438445091282061795902549169939166392928092153614066892525290460232874780897357945075683768791104828361942839668229576323592093134466749435927446030963648850009431667568782811454602367018376438437152143959859331995641289840491658458887941489323544017140258735328626042208687852262543197053004801284985655794496268610462374984573480986150057843013879899615908094600358676781816621047633803686990742228963652744049557345247974704388328265347510816466302418804710057594139048741433824406823252928317885832622099432332073044326641524943665202404700162960418614394948240680364346604550523322841582179506286961650320606840729768416872276556999988379637807238841190684223295075497605109035093086958397032643391076239419071142871558808922299124597951478822029640866930194292664153365023513795536139840351658675255920328406485799480490151752203469281910228129422297345994370744547182167140480831515861364958909827529009857452590129618183945081066589637634312008860084259971350420147172684182656607631087666021007557167114877260642487986973227006854009078855839269566709325881922447766323313246749911302341476277110088848228940906541922889710546903201728321333236075712820691917709502145587857699147795053119215722211407107445041576313627476423070058379657219811631673354745865538037959831855352482006463226661307729225272923344296912105308232054109237100798033237892249614587590474378531625231129553332483577438282865294593870008181594110378801278623210562772829298227270377866409175411678617417325166589354945761030893370268165433811790013261979883824920542518161121996537851719932327322247360964660889786290647584667650864548467693584655977581306575534735972497259282929505359342586433338382211967229191980754183433060878069231149200838618099314200274487938401193511347124470717592993524427060727120242966312588101995839545635358917822685088300902280358147368497667469248373092868073671144432558229252234634547711677335376026294293601753137069775773586891552540129136956430008225222215201458054617185316156594766292488877504196084762807183325006864459599686870404367963628084730232882909817545962004771128245908247408064492897291628131492291427215215923923861707339277535099294837575003046730244016835395124533409619402937142493214695336843661806048387570977148641024345930387949356166916894308693735838801840974754674333992915381094365528366866913200641039864528226649885675219552162814426685760601465691997835480940567905970942651385842568306417758527414984057725927344128966716534516037029559033844955054603777785797129110566356815663418075158854838158054084645297301605165091872385380001160847830325081306320861895162203144320306621923404708305900087508430901321302153754937891534919120605350643304472592138799658501220938005815188575580879294240894336025838704207311849050365781847083553814201030096488699666539448802075986276120174592891641648832202094842410106239112282156991271554803006902029444096888461652035580725614052752382985299028393416298383835080548372047992579447868329063595622437279176186450307320703471442969609691570405241084277268727042864855674973328064023943916678687980555394287131540616033272996561241447763319496719496986310438451132326217441215595489182075703583599388152228773610009493579869512591365258953868157534810857710378329632440880122937014546514851316409003333497821947001030087827182378316698314616839688767113968981856755693219178203635884173164108713425671645955210246086726321033898689795615972825239210306280198343679110653771897727027562103367184504382303272850396878496503388373855625961687059508844541889760990199852944959222750630095080519562262926170720066394467480286716925659881553629945681208826101538331882652153900533232995193863591796967742176032819896677785316510062084044202043107972688896876388903414376540319457495457425389317744326740543185973433097270266151648260567112803859018457583964631955053293716343438545938888508670316103571985007994123679748351039435372462102891548794801144455525035727694010599850629090361364058972004329613129910532042791260935109258991816522318246143480229745656117292604197936609743340549227827395576873627424942945946050903479704532759770812222749313644530602536974058714907241122380972776375736938664063676251494375400956930059095990116351406240233909986555274343438306753654773342973126805577106748879356395017156496558244756720046040288601785209712955279344658136864772677005098832387549604198257077917156313899275209220489533301008840164723260934308396276492640832296148481187660985971839743685618331724623127339342353063011626577688604673124262830926606455373694667557888180469970398421119181331518612149575706022806249047301137350994829856885701383243780188577962416814085084135724530117171462689433182604075554883712063955069510554902371259400931163750995092099568750410941269832567936707003021077756377934974200959719636596331212763758803748284698563299153781163637129270798846894393784714743856137552235397065205896035246519982336907689189333910638898266260456321914038910956926033459875473421779725112448820971549166415244675322411676540564411906454436950834463666486551344810657743320056872507405460349863761833443724589212293506209057414417269648121117280453384216374004340325157442428347770130898972398427005470544183202139303916751205956736209763330671145278957684502699816537600117561583313227116874140382763960019971053519949690255734969214585479998227417464914435475132065077803631400335624364915695082011244344370287263070126387772947939980768162846597379135387877163463227846080659080653543365901752426792479114314981610532632457416008036413580834949644719306238281156792639713873339413404851449109620176157553551434173076648059384928725861519535056488512206287729902649521470462179699251976959013517519179054128889737513859050984912214652146371568244538243205982470959820616275526677669803575001732837111196545936299111907547947890956165238074737299415914526403817122862265429007017022754333830015535332111405984561794779320168516936914404740359245690757353058985789301306093913368789173437113453423963950966390829727967633304193214681952729919284028441949643961520091788166820998119778345089353294831645104661505173007982901794680932508832732052870133639951082651990406796653531946771362159295280308541531266127938296382945670581057170570888057775246874227245910047887362170397989428680575026986149020487793088755493061174602382906450182705826914916887855911089569260351562478782414523108382025742900573667371283664434757117781151507629844249376731295183526315606062179131125963678387823637691461521619967216472113836503911354925520346067391017006129439375498765456711049807561790200607278579252675349222687033306478009963972640716099574547859018291847967278768631772739253256024736122392801367322935844237465667283870774419294662025579080131191015257860841435621702092884615931680562790243439384224175171789442173797171083963968827992487861488462654393953323231502388754308951844002203896328532264866324349253400263821580938801254869499047199299133596611588045249545672002341780047327812947006640930552689098900716086325033124241855301540726564164417822603564356929546484112513022562720726866300923658035264666841618175229413455825909467682713116199644678882013887732760988383672084009580481087006276883739843990837039443504755509422526033869187502272630667471328838808763573089988868182358780105089464406316092829770545334631817729885592131464332388938483325118611044326154751527127063382630899260963360090084320502468765119615069332217961831287641895995152170817611387591200537099732470522645410824945564399795185185032207672111742186933719172491865036665999689729438088301321605649639670914172357740310911609548221314873031038604410995512161115712952551959994985935448036881075284911297651084527375499654441303875071343789429914365819064352131557183345770109188357661316749200655508009926974772262736149960888595352781323183661227789174310666623730620349756974344220853517545083934905020287884083808705037836789741342055163790292090448377998740828146520422222523042654456765125354750005526487941227904438400879041194589960692086658088688666245967832810352402603935364649540019247303746865206814429316421285936884636693777651915644113706366785142227119228440312681261672920355499623505086251197905417749079353764074006442276782902795104880309043022142466842843400766325318667643182829989000882247586391767774302663349383688575800143277234706270704487994595723088603619223793791578255147296340183778564225804263111084465977414586147304344840444379429631295248317162839140117305799708800813962530888633511329347340640468972069409637882884769346079662867019940173657834933700721140193455176264570859601218345853554467166258559177876268527905809279438545450579865048927286648768603879439592535162210975413577817941278051598888816216276029239706105627552171487619214713120630748060902488822555101600961156471002754384226361036333341527616730843892350005964060804958533149959754885879974508106965647897396768224453847915740737347640654054323139451313891859433816000761146799033292314964459986028956918165943235872838212724337452370752990959612595298537217802918135109655584082938944859203668020952130486798291488547788688514962530438045137304547258697888536660584540207521358337338278583245102884066247801618891380350513973851530898775274394909987892225276688410059778029240104074023355214730904579043474331394648973566539732299737663978079617380028046815040976770291260851304486057962023049731439258160918411450438526854222939771646710656311181313612721962083257347953737640251972524979511766600715396464758176630815387979373656512540807632368854414942729262555296439178202542615000350311387038033392600821012131491462067370879732724439425708479560524918962289514439890122846688020651800527153675225255523932791770372382836832067043348541314755622278286320004457615993655962559663882208193460832700741269873394502250275957484249952352449715698121810315943570165986070020033630266421399232428427296831254921401362405036739434916721896326216072399979805375985638452184281570391520105609729496146485313339559968270508683126138155569781495736818060008518529623306781287389915023519520607480037985250818027849604351608166899834815872342119525757470272062220225036727274121009391529980267218728228596902045076395040613752312996829621421864246797666237613451624709804672423554037264776472830508036390830485358079263719222896668711646516854205376380093677712924684807643611324608591786795475192049749956033044187181507958992398475627663434057070476009589890059479880236725928528257464677686780407074444976991638322232959291289118120938976768141302997017334198897513747826142958131144377669748132566948671959253006736347175521226535832336308579398866636656000976260088990313263119351072886713334462183584570132119024623720283981517677092922996985133559338376924003766226602448825589875169964391045049075531681784593819586595185539433239587202009757429150676091579459895481130885074049647581039178391195305358506640839415950946268906133237547392289832840578301337476436258677282921836678118630917168961944885220384415723943578130625917838731453505115234881325093726001094833312902350446842981516954550342659099333307968411818008420991096662597309038637702838832325335487951043489376926219797956404142358139104917387621316542495379419123085872342738797980617773940920229308170650070575042148788982152936398871633788893961532691901280330524052459382681444499212310655343668214490762986283581422644527201007210664459316583007073603334579901563807163227017909582340841724361947158708571665281412562900444110288941022539893243829812557248998533491607381950147643889510642070336732646157601950972711647380460688190418517956929918601225215149079104858883840807058834106982269816369865832795504677956466867922216713401599624576301960669637018421580956516515114209333933463639555748134292581948831790210484182423482697569198772492951560325444107008257334226637852685137453011757622205782278345716241275412442683052551289192484843655807847728078109820710665537144627644340511940958256826873409280063538991863300897359374544863019323776757867110639649434187341084600554269969221003479449611883087658763377855158254456179671963701808894782207647877552198305878253995171748360194480019813844908662379917996405001744810877739050799478532142612784990906630381846363278171916819922058152934832145065063523901013587529527767766410453743613625454194814516227227099040416794616704673305124960575779530030353329732112082475363149338086758925018218758992945131549155501320420850965783542781644681486537524299177162867021204370878901680889419365864817624373905470751347628218990412193461337567293270581059576268652814139897276114806154062565044497326159881192437303145440192635225215543428116553409507393318695457234239665446741750721919087617097014580037244326343545770205946544489866153084175783964664221146708460840962080410586407549002128951101390174015237375618548432178541509333179796717522338222841857364001615520321923002312145222421316040494319090263482435990210479760713613053388591313583691007513230193748331472415831377897922095344589149970817120890680364467497308651167847816655911644532636192038622802832668939361998869610949710242022518149121663115987603660300490333633711251916346748856124274734846184132321930244013449545042471504361576028413773843913127497983674023271257968023107043580876836205281511887293947913364985843432584426065482997182652167184310277985391859123754684649986191584618233866411478025725430601488506381049466191683246258555009796951436180396633469735468872659302787034985245142513647819772770935568873792625994604287204083531167340202775491619527535242816899735270200352733117685386342005630928697823257257320117990167231744971409752128053867605260757052791322446482743936612971602095643893526157582793047091126394483325750564773904204665355433110084970063465421258830227169092973688093480640954131089798055600756546934881771776183718685073437311433103398580038766381540223658499453041193035735747392061041261393787838390896391224353816124553557155271195254838704936473601182163317462542962837334736879587183063724747260493087615968956560565074347782501964979231155477795267812750886639918987837503289255858728254455207577728299902398713086427049295678507443219249185185952621223243667958610823596146557209625970656146209239774607013885068584502909128983533823554704221216534206810441896163863045433645753217816013781891237311526123556159103338634227058845941510822611520594037585960365416587908966740986961185196325979984423507975011768335684482504657817665369648308591081651435415117183470131577286713622292425081263563236409972484840973257852102982203013218758568709902769729477535997315966583955709190096950197177349644593920534569648374249756249096863490686698704683737583508799672985059500067490137494635566721706896542398417498096262908912657405750178897586729435039885594626646025147600374557249209434399359408972554283181959270942007212129801844166216690284762082060568231436338161551351060957916734331384272353647945518837197210865782203345534561070908124603352217455762569941338320492308113010820146192756153528166742054035264267954145343351823554826191218021590874916254432545492930646129459842127560588420448711061448832814758013275088883311400360148943280499810358437891189836268962957639383708699325484168514108306437406512459601203950343023729592846739272768313808599690031398538919666606039930092747645297070050652811423816917715865199026885949893469421072317467336998591725584903941738705810493606518748938686137958188006579999834660947145826917717268132281217135366524074794954713816895478716205639358257449128995860918243999030564495488476187162179348113151322348116633910770617396928184404565170603619957669307700312959989294712576481269857937545992938762414265435674638976377203942649626971223220434705739552881629816552245185811065321282182901040472030720369772917738391322522196877556581393799328906651715664786934719638836917006546033511550262133031341328727094577924724378495953932760965244151883275350102891362667528095479177593855096706980900072263857105697308107131501587678123927501894417473888605993317715506879240794614597710141450910076034688165797639011013662114351023820925198534840865920280436198580578239254600844366416342678799340986636550323787651149819666652651835861755510671788657213007708524739386664475636016986867233228317415384790322582706624040260105463138308467224312000257422464318037137421398918035584959540763991061337450317844407718639766500514321684329719163731164306411696461771423924152308604670856301227928273067200126311726984298929093620794966906129517439958600984276913545323658379771906107565905524998585589382172537808530100566079481099444475971415582733350695477568281513553177080685158746926937200823695960622401815365626161894427760194446231546475150852515057364469743516593964149985811553769115167400375434607992756554612999620347402155696294188585312763064751321376272954535622448479817156707742786546602584882381214954799945145065531577102688047333342672875678714035163654413951832001388753012408815294888408886857264894959511291842811996719192513767713589598938658121181357314587219552764582620254163503730183833336159498207291307933942518525808318740129033916256200849291739138306240299897286216962091370588181932807120440294453429730904234863826646928053063135452796083677616036215246842756928890073525231166141614998101430852312998085665983014234364755047795375768076389805078685299883796002035753987708349490509678091202776108557198470455839068178683830160244125355669409584414566533607351206555784131112111911478872567773601101592550014246428588812932699979199110871227061334785398069976109834608000956162894521004362862509886684237173861336669428862073753505650243243792696316014583118750095381366316240778241531692208782317480280480170946210751244067602731669969072071317500534082210027400877003432464514182442951171414466229675186291193532991156471575237548734837587740218938939540129441319661216996077396658576019119782932542831727130474676951353164168735104227744720960138585671086406805207279426359741943511767690905617039056165778199544218385240748988885685132602169436613379344889987114483616953349006909704227675802161627958064224609642036715236030313991049669914730594976925882960771392304108837195195034108228898300682804108706721161789018505668529683071825431795998406100462539842873844668796192178383063280569345739518188061153221742671822650172102539420610487666030820058256827791676371454686003988112313254425152426115769063779501537423813908444850875432464159472441615934177529899476831887119248416840488757539726992410287125498743070752166008208630613268420168851676540796818015155172239821121290954054580171453570034736633466643901602007116025762336436659162923781680585737928440836781590525128628316218296607561680779750953756909118118327609547184931215768662475763150613337933055522553229153361149561036351267815732149316829073490051312901646194713236153887082019366038283572683869682620384576016060497263531080106951339282627105460739134226350949959928616761768449249845409301356014559084593939595313375480852105063729875381679064221349362606682759932191064453581822598429898235382960143144808914609797752117614499485950695390234207723699888765974215399594665619306927920414008448686715077607640062438798948664449627791056841830021427296985093358703794675325362215704088005902768497813090287878296612044062679666629087758782315309108704528182553950224431234386106840100600983353308680803467111381596689581391020090861913555899731826552178167812668348921406403238857496221147529696025701536719419912819164046187744072181612815743763468062971934425643309798532651812038912655833649421997635786294004847797657376574446444946687781272792716299992587114439035092087968935380974474828477743442919250916148667525908432883034895363680953522818061943651766319858088078930189901490469925018964560204354191696989466151441144166881646449569649283332826057519008271874821381793017491058548510907526408099576714764119801248359012863605436083578388266454825314017601319919799524935322324628644108878438753099316327234370729171374903570626449341410121831382112615889029586709236213793861925462976110280118619830402128690151647989051937810927234642287211980346459009874316228583721426088411520244508540548407687792846271714496117142131247226890636568021396552440706594249639200585839888827895682820041225625365097998274307264436005309984189144065857650631133059648401001210874033981045968223084537828025578363688231814429216279168523731831329072856098698703339162893588547539603520063767733873685259360519057665569525526388965291000700306916248800586676456056463014691828939922441273693038501631227065133462064583393117310612446798385537748610053090396458976657844080454015039607203478486401242657929452789589588210295012767427029221694150510826580767754417972402490075116912227122866309606125811566189176922325614933521095258661278543011179947202286487722564264293458519994353740538163585721271369429754755852457085903866234136787481446890652484225295644484830307351333274255865236139919046077727323637531116475878603233464412994007482335272999661746712077517377974383493254035063602273029162819122095623691639394688614522532137768482435814068775420352913874096326094567034337007808350482917787830312492589820553862297487311913611123915423800736336015868977293641808521743099124105653386592034612604621497944729119625081414943311826235020553583925947372560464216074262510890290843747207238344467241424849893646974954891255259468593164216125902443699219426174992967605684066979453176719176145025230190808908900976724542490273034308652222228161735115223781441645178145898237163491854719944880165213423909107179415479910446789963533531791294286008588792976843775357471788389327548263732805957350225987933628637606523513220966103030635623682625579746692308488792719981508511391262170519685023426340716281459892402737599283287152690040176010095639198157103946046985336471050473717147308130429834101570115773276012973293143534788617622523323471262064861793687884266744983766270702942485654424665558962067341117871961879489050854833277432106789919199263870775538220888997798028339105209276019901333041342806103996419717330941850545007012514739948459395751479453119935094801591556041003173108505983600322325958040328340113128871232557025177108118355247816223450393423177349928575034728827442083025311974390768077174786552921226153713182969883129834131149606334699078737241947665023934019632172780259163634587147188349938303539955081543581309303594759287285578282837682608545275154370870375052506300848773778013753102824922310633735225684333228863473876095425987394445770271321798860699795138759511979788650729347334245276398343098653395488522338926431413801101195124946215056428425541542256033151448613859092053700428817550549096310790881356575883643269791024080089671802976915027422670180903501433412605073005986703325444307190558124733440916473768063495945881118395440041474707688404167335044328932056177560975899544700487233476017438473386787385914692206829077705251082957571927729428101982452213350073246047894235826510083998845164743485829038757404732678339240329706553450895985045559166108627215096134707056828139623587210217155121310332780027230889048387919136877393692044744094014953275968048483389251530480203317147942900428225416198571767257507333963240049679010248172253404995697280556660543473844679911621707543972523716003025261267217953094333015561945891143780459179365770889055832663842395240593336604084109892487961118837952487875141926234676103796561147479930361182340746565694483159600408082280159120698837054635593168370612894801130527873623490554857058368631621110115066513495971934327371830006902935708587648926032548657513858210716996770730866604598441818513609664345161271605759589653572134788557941256628968489957904233825425577290786924877394194689385695416891042316126995206580161986350044430843716507352149945227322077910591687112280406352954147920084490630700804174761406870295862580533465397814116063262775032188665002394826361746608107232175597482238327644224228546712757961033985764579176429374774923247461725071172354507679120906489491056136446260842249404159986643915749313273245306068023354113904458284769307266445689759551464193406461398325478115815669466763332778562110000037978248119126564094119708069797452860926361388323033156973066337841496557545229291971552942492219331326276055907342668707815775615075311714531221106391831766091510129830345655825921043096583312147646559564171250760123131419141779178695036398279042424245837946227099289207013395412720416514718813252791298530464778747513981157431922724470380943872454618258040189306496585526845988082265378318962493414410850526732616465934858760060632023007921528475273351465987600719202034751057936919556199456887724101801355002438087712674165211210860859989342753115213603799566719352537662449022606156397053924043074577563767899460095572972233194709872635742856493146415869502370152870882721234834716884025158942670981534884081224668804910404572610824526464778074567707327045409912196155227822070193698293957723507144476929593423291094156990117503134830813379933146083467491546368182004881005498772314487425686692768544892124623546252496128189813758398929163871871026748508083351686763654526828987096252456599900174254409237491066533915312839643156444918938894169145893396539495672927516305464634533595563994817785106073146812651032550319682765826003085919340760079615825124101074786583186707092673929679487878752572997941871272860256037854523590636073845580176075363083196910452764090964047475301303693245374285647141398266217677640296581365530099022285253106062970899958692702355853189495113861425876498754384238619305930021994873091342204210298735579137105464795455632364805755506964825217297930252956255379801523469663806974302339893532173563542578911774967550559933133020616792223574752534674688560112417826035702101490821066953120746417765942157492904507479114765317086912159401841753986103984638047305822002626084037621023162276645674854379180000422062410845584956955701030066196424210212627452090455817247400257705054426734197121399740493537826517912294226285026401462883223096775393961776063519349898997836292239958531933169978496066032972109996227098503225336996544428977769805802941888791297421288990768382314563481467709315871616569039187380594803149572578344028062397252755914537362516473973666509032164558952098671808503259771644200057571434100010956703631258655273210372907322809143926567639868322355840484576760258191148759567296231487354668120547236530214488767462469733278025065178832572584436680676892474516480889059464691623711232303709008848608478498524094455919511182815741592790736812036838547045404102485855487724076500647769486366582770871342379929660386583832951670461314678401690403305794218452482646902665503784540754128595121546812396246972236233525947447897973249527769149186246293026457795833733780523026660333452465379478527286503159444100610992068199187094348446453227853005794584698114071377671683600667802522925918682666331600005442525047343961239604176396790956770643367497955888383709928785581185289995009495439575947435514347564750123250258016814417941763589644433118451576078286002329635638514782287261822127915906741689799201631761572618271350318353247940355970594811014232539296362172505379976498515846900797560892849596322472313007695330951589067369371845899986968557962266330773562857873199539161574476803256652745812309463400981324132230990143252597394814327554161263968002914662269326539461710549251150542327725638786488216960350504760437536658557531225993877441164056530244108731295562284714809247656383992503507161436507872043180731184183368280661362261547609707543899488490732223471977941668406514381267010936205221326994448355584702259287634970882563308817961911540845090910842244618846843051514316015275330554744975797472440961068035792304514324284202614795373097852607942128120140952357399984374546595317268666636196037247027769182994858072432286788254860963532887914300770382877310371885823692746881554745720606992620959897915386987782202599753306701361947315591943245559221587385260688436848661358288376060752485512549591024190352575651618524495194368315069622568412707772375413084090029911793252709117631687449726786841551143790340616043471141649415337212333614451874239685039184278656411582518293227030094014101009532639925490318873583039376686105954323630061217091095548832083859358833076497327804243115454312677887766867926935672772311735303884388412357423565826841873021504802559137113617380115240629890389521765793020976291887622479448435986310902433425972427764911585597660939974011903104530890729839033652096136367181958405799606628595836742751425953838929639716698521505506381400752645348175214846610968704227109355153537993875419525601743214487297334510734314843253850309199207152982483096033500968241170113189324339037107972346662620637333168623858537096119416682829344823385769527709604173357601177525678489365299919019959357111249123713772548837542046341816826317980770773991499918432530078260478673705811979263954207849208691422080272468357409375034704371677668374378763718930261055273427217133573041466882161043301503128589345962542032773410396458381475068112312702799513007346271392431244922315278098358010607634642445976978310118145165312066248561602540874384137349917105353263867841878863285179625946463764182704600779715994943906148102141833696356539129683395724940204679753823450167473585657970158451002878852057936535941673459780277444386430809815131147474147455223826184440074070247572936102321570396300160531257740087358750059114064713040427042181599794727078521805016268541275338586050960882798468325221961586056831017548192293213343528596360634157258579032948353414751122355561194995975901957855881406368019631745151235974676565625067019012784851353940512331598262623050690751461737979667501678407341039648425854074585340197922200696685648521793618838564347136242120291170647404770614039779031718958449541332275110776006749902894396320736639443347084264203983208976868486791733209604158742194325374793154426625647705995821379577131022636457114702436800216548160542501619753240499744365017350459677774738914884496625018125215572755527845617483404824824313181290304040259913751491329602826807930986381900028588091866540315535387116457559968006844645558407180888699928826931677938784789541498470637336172975816850584490510272090618480240981044509125949088602504712285361787816009850815862992976307424777960609962469053260247341403369995685419729125329454700879311894601305487152018598113105584837254237097449525183189839608377881076923590354529168798231810144012633392336709716138140514387462837105745005706898686420007933138462132414423951960542238721013937284255394700971019056149821383564235161516469357062215267580366187581438035485445459525480751180175297111930953141641411029603522677221672484603738583236297267218522817119934913711223300195093556396682495668486740652241158701901238245198083344367440266267897172982222689157389553063342934937610596562046894703944869700746325284621662762056470265058463278129728976368086187205029838057538828882365823511836919006593648189677727047701136839262075453577012425385096077473178291985065709641761326252387936648014897691919676047940747032745360001480484941225463777223842512712126337975084050575998321889641258243580866655955608526962481780985808647901332774283367518485737726230622241428683100740687452986332034724607326491134871556574576878080173696457047928135257293988100544954593192796746586444278593362258713137248558624166022958515860386193941767005594811068282810873353097944279855076545108870605136444436412774711602892826750297508219659457077714811914984109792599801156990841508406451478582090388921661282450468679097897867176415145667507260963025117806700111582406165912877793138252451882437594631925219383364271382994691540494264339195681326774162493283984985839120290714247947109641168164526715873075210112284176864269536713035308587878473133960181259664595851478873160830426206040222499564084434594186688350227696866833143881072694984951278085887441744130053451557895321676240739296599404949084978441797390887996652158157757092334525942279800366712932072252123054721839506162378523001327789441675453272476958485283463497871842671501148391811836810278166571541238986355970622197404812981908152860643372429465589695098229933116826182250910305562324126150036727331890812309506170669962674554531628976334708256217055639045426137522147205989063675645719457464812695211857537917469663487538701667256985989438675442804129838184152858239171267952080153833581583905594790535791256012035872553231456057463991947947679930947275005807984943588907398504889572542717391573214425095325437391060724969633682380223723129745543438641627095535749475299635227978025935912652579281882870743646566054635845482265409605819785008502822919827345538089512466230839451660383567713526781754301796716340325596716304014235867848639049967102231711712867131407744329118280041981074467710194989447044837024897165247906545671018604139972316309597067663630567337989297880371637679160074323704991826439031939214020964017089824347001889165749416340915477382748322603880329347306049151449549416793440695966821337372772356336724958005359373289256611278951732467451457915204461172796913049342630815801234953416940175083868697322476695985018599729935465156861772879719383947216145338222954466264769799358128325068754057722221541836296694414599176390203205729303843402526203399876010955146724024226541268017858655406830939639132779640237463919900186740186361428240156223503692289659239636555557941562402063701943983293966108514312737653634230187312920642434051483170357872902835677646132067114027931103120405995079158749753962583002573731918471952590315563477389515097792419451264015870834007180504783270615287514034730810736950243851059912367184881825518580542873530152878345661536439355998752190986906171212753792849992496644553234810186830109370106095341838841356375483336422765756267782741906785510878002687442763262397962968053043855771694307522471447946123947807706885520349495440346544379429547815468487420166849931787852820353228238465829116424090614695601339065816887677934518141115591072042606874049483744758037540185878058211270321365994128693017851343976565834079550725943911358868802334579007823422076121739617810104756287836453598458845636596314618346622155323488776897765464777302585531322283124753723777187268186382181937978836517610416101220198768359074820965741837959131549822160996419904563800736485076763861444225981858408947174308858486220024787591242784252216015850722313640298527940001530996466649464396133904322322892614539043721495515578715436196594757409073262582357340908093229923324296555400434280084555291175345580302196528462610252481854439818834272040653788350952578412416970896497935288931927605438600152461920192413300559813519826843599839407161082073033039501923121946892796016655968701251040428830546746546138945869020783286602083054471909801711451482804501202511516479845559308974132942591883485169788554671853956728263261466915610184794453732501699617130415986889633774200907098180290890786724653572389664077344301296539450207501116733320172346063520042930784359830932569366795172952241809192858675461668416124478419856426698943604972452499444359070590551332933701649660825421428277390030853806384153068275858461810716628108331574700945668582351799957183347660104054280404577670451802411434865995377917836086996006519184513037032693888845005231490910008311463686492866871881086248267733343737816418921121939314217472036198967169147631170060518771266787946342658383908597022841124692055999109381017636881855682049676456566999733419401936144622758532950008024670690982149354368830854536518904023347084220215669176507856272832576323846193193742635179356505982072043071734417859435554149794981279389494150086141352144390615250357013529055522266946780582089994843311367584159566613284998766176875365675528620706204273620607491878444827115511691694623499040457520487890914200389132883726210803758671922360356691214408655395467964900396266999565045948142031594207862791035456647695211778945777925229106748157584380634736957954912762978803609417315129489994213673811440325730645647123014868517867330166385331450435295865409714590834949722753711274431639041486155855218594437474071215686226506228667081913347806364878566273801193363069093035577739073230476256191886992602905302805556874806778312054663558011251785235427575374329396059952411202554517499035554954742340006787872051222613961386142436552754860953312965200295232611982248955547478587949669901268775588912327414863345816879557616510527471081822544541849553313876304327355783499855001254101967649661644542965341628918793336896585679691592894007283279470126892193845011290317489724010377277303269619031580926556874633948380268912441997519591832836485295577314924883853148814924517239189620249529440995785440773499026701195932213532537465324099009401657401288950359420461081187155641713027748921868591522579175616375488916981777878629015820438510726504776446445765494881741788464268965130094241765882763870260616079072869080246986940492399264747560361021107292329829049484439975517881315366817339914262338380397856072114409005156472281521941600197090235210246480666079377713588215200909761307465209132170589264108685036787913974084519628735804565464580572419167176646270611950156845072282237174102594904279929964942139063613089867356350064471416554881827162282771882164746584355548887998956879953690413273153321517795734682167065410347783676111906906936417198125441258661902875318582411669292769903818838656022319312917767120498128993043054918630955393689492480858983742744730911120380184254763175807499186483025644598068577528618760322129045302473452072197198089511898111586391218957822096115859390507846102860602492173349837273263029284155851881807335406044187039683018632430205113635319268304731418651218075334483988324437521161371045931689652184488773758015026708607909341467593731189468931700103965553298101098450198467671343338429234371397509825199176651502293772098390796112297091548912149525742222101078735368931982151338476557283011362541988577765965279126805881092991139626954795089483983950613495244212490951330650791051800605125763856938242032816988056330229505739359426768926080300521166371848030033990804558619797112303174238205696320794083483187895886582218695495784750407394360694916059943122956740985701568829540727522592197441219899011486029658081758461435866103724679035600972547899523185380856782270041066347502728089706108803101730490720560444804811177357897757445567880809088225634429108886754184906626269717089229415869102996828763654965043638552304848579273336531917237333555446707374347928864855083168504245808221143898525638025550861071547759308969330065594490001542342232542857072862424924916373405015201680497495495166837127753622996531947111651977205451958117283263357584872752368669597917046072179204546324676540840448298202757608685590056660750990692234180420312339327930146204160030453642011351300049152852859629630090770134079331231932696357698536157100932748001578389218636415149278231789855023839215042376447517953298810967941118785205121436861854052646631384843603191710094374161304979109007449817715809316200876257563085025861267170377053852651563963914401330608271622037048747928124621248175337889242047296173274339176841660608204532879848605545314869508582751361494013382825847007412896708059022355704610876737413043003334355848429628026083441416593522057959137169852331064473555232452440349190049898957263156263013175216369913283638798067283867950389942484678428324245664787153786289775542634984581390668703598074858356865865988932272976052377326334961449101999236491433258003623698010055997484249697803497949386413037824457449575473067146565142227643294257333332766528772551713314159760537535656536442109892277882283721359082621927515199330442282941502883329889995802129707724871869310820001689460879484945080358334935766438433369363554164455687618288207368554761252185704624049366284162826788980170343642748789407944835498915079968121223138575552016142809884340888961131916374821124037254931817015110155659570242876033634059611944187842676681695247988754564599116430334286987580738103132540231050848992003244823575052117502386982610140018372672010926664516817968264728293532886753156229136654061550379039136905358935121033573068013916318901492759522049696058844503783238447363191757961470919217073608010589686745762740106080742671070237317049237075285983870190056042151690492454277947652393466197043837171871326978033127917697628584007082426537009854628032575727591819326479014501656774850681518147694591834756770078655440992031351661700372416787988841667493115887623893163412066224513875375038273459369930087274878407440291772180878898511013893746006597993564777404672409857193447357176185019125901257243033871026415894980828757153991476870146697849062305020159545006332993589157208633692965621075714170623173923299685982245506673972247648674914410661649740618256418155476921418777576969219157607700881302090244940389089897103480627593032772704028185943112178379972554611140043961576523398372700260941921150302904897123682067926696723822946339704280621455385716240277000119174900699312475206870253862023598343625794905196457146836289435267578738921012708072234367087106887635095466170778676473212357469056232059190469346055198482216520299207793055233245638547816448466176792536783150531436584594151714753747022433689706158338392032026210061539146116225171241383229239558490994952216786135935794868979378815887045511816935091368380487100078646527677701568742762809452412074730058031864418851378590091289569169690923793506080411428024969790637215205783174392204735595157287421652655604734189078386497507906803997163914638830867998668111503658302403336457585323904119854607327856465103873745190447739727211073422843607903428599829017680135267236790312974824112837773496171312560405613038332654533394644138792681599100833667441997500257860615802616675255768757684074688899423362124446113834708546190508506323146705787453050807372186377008081438378039968633723677276687680370247450584491376711450569679551942787523012934937344119789515872796967262061627555660046381113042998488652664623048859262585058858884672258947782424832543625789105327383524050235568430696094592167188382322391421086617622417751684984932863726318010649154396301114465906003434181962350304090486264173189553818528790184533435952550855740092257322870254154763775297437901841694096425951303437664957125566868458975290845534802897273499587015419994895456104476108462877334674826313420378894952146175732715977331946275449290329274239808216335995434042130922485516113612076505777230916741585895969777546404975958648616044563353430277170872050189312041165479883501481055240836373848947016831050291616942314444230756785953293676777194204374986356168847662349794623864489225779247265225103766191074623773284241556521322064596393388893618228159127229707228926097564623573562087851563489002041145234031346184931925149442479806762002044712317374283153402398559790965726527270733952936318553277601705403089177229972742692836847183146045345996933771625604469903942781406182326034078841826594575369369068135643288760812887673934053044614532149107449962769383116062889629532694724854178910369775428264842950415566444275876468439141180158262774576615465856899836556862951417884429001197037654058089140388326783622042052453688607809371272297188525390179093545181009317720912806853013095942451452584655257620183432034185589140798157973459682175949703250269308357205975650199193077869095105935030917514525733504254350865099454794589409579032323658340874171735755380617063487502655983640273379131429625713835170649226652203386226423198540770568857036309545196630050624532769256019786641060031326466296460475061755601881491028754167890094424395906463246246918195739836308146289677115602749335230338659555323257247251281275635931232406184698117031714192816815286597393145688949367997207231874678013322288000543516236897085401799645489415914840562840000630040081158907190427689509004724092734314497253246368634895822163965479105527569642086949710421870150093553029402332212112539792685303087576022136059234660494906003261187941743145411849777755724237034675809296720680298275820706573629116851905709594112858944224505816220140187780702107481638903216103166973078938875324172104915604117843627094176937215889313389144219971116697294318975814342316770792391569541751227873072316823906082194046397085433287611945518227264172129089917720997228578163461626559701292634056335053858014181343893412184486646833783961782237396914380667007737922483421470982488726725190576822350018915310254394535920568013596845502662479336825269671906880890369548924246340370409349157756625098727028039492746816645659468901034682722327893204467606497064006679462482777475779284159991399047405975465058173965417914123847285474192311594179687220240374267862729115633115336807674428089563927711160980982288044213046389155180668458361504503228037960638092116728516394854975621326761672361976360845101519450119241110755849621074850097758586840075318895892293573529540304860345726327218449679749212874735465262824662663563965712123172965079622249524001587911352981344098699156017092512487703666747293617110209540006066003067868793669176030573194863648928380322845674234528687022346581101533934343095860905102623715061280799208985384190101278770716061836334187712534197770610105889073195402874828008518502429773494306119767214844891948004250066074115707153768249274270283015083687163631316597866595685056867578130044757024278292416680915956193823107110456615336901003611027994800644635733003450701418604074183456765429287468344808476133584655108358981646342564748449863374173240841401389363646460441082734790101765702705098239013248177261420593002971409369437316544004167395548093551041748989161053060086058073411186441640275858377082097331827614502380769472639693757014818509377135491918361558281835132960920842575226919392894978822691877034249759095726765744554524867616108779154745116763201663086566636053944549225589299903136787559474378598237659722971298172678842179785602564486318969765690986843108708920449063875108764300641558627894566137568626278608008894766324030837906858766667053928060667411816764977237477840630603466158494467229204248474627385190380687461892824550691175343720336271756023585871805439716120485260874128410534453837699126856063612900368611141184070873283982264078246934022026955567524704656801619984890412702289420689181253654464549158927893586054906261421328406499468299725021522425949880856264336789001142155679864344944574045698364071683499792302277596670991499345657821748481102351829086421939067393984198106377920864091990154076896624242854461883727398863187107228248575413435798215118383313890413561903893364214668528420283081866790979227818872718786132680800063712011641719333373321451199231910681045320017706878107222225415469992997645697458947391141238513530353746190500118843671406991324566964818205366964826407478442567673367054513921258944214081617509188739812067044066451387933778093488773581625012680767865484120982054533497633278483322715249626308516005092323782734161477910836053952013782727529184710927686535286537053714732771019085169779809840530631295672944520400340707289016960143730250621614894011467560990238845761055247156639186453594946235995607330451053968307013767948373686355012833567456619457168505443129092858482504942064122140130770718170079116967242081995496041061127088517170801199008359811196495749761212854373459951552053942598944965195141604769867264278018585425946586841176301524792526473197739452863432533286850856915998112954312938229121481676851383867117016442160636390475854569021015237053673872865427415270408672401481416214211220667211888409151207791606486571180510753532570237738593143158226232286784440502562313987499178983126585776347903378022017129439732374764660899214212500873795032032526098791626125049903705906799527718833782059147144988647165082104520987803760959705089396123281893640980252334935120721739105943919943751013586886219280326492482935406514478665832461519292587443694310788305045469937316780023025597420251467150818672379239654686425212723187412084650544817144872537377668020782826552771435516073732892041805199182159893558711189136998126671147291472589215794890017288193018788759820564483618471803107244606187280360545608786610656783325080821733268946474937587829070990294757891253896740052049511401586780654485018054295744862159313574725072031932290227066401844199456816544427294297809610152564145986474671444488664991817565231899505316445647886963523453052610282329573487995110380374178725531233174011037071310077796780218818207167282005658681218815851356739924339545664817082247641466412459289706782320630732324530320710759884150284116096415837438787136354125410412455270286391310555226754693826066003634766737017878267260003387785509826411131464518613695518814267557335196797413194821802718120609610208939138731103921961708701408248071706659753216058251591258733096209743987576009272831779957323390944744858727773294250798737850131915343310656806761522414862469488240630425752623575398378005219469693805691412703273714897629501455874538222208307178627837708712087490160535537651451381205004787932115702592292771962823334337729598913714882152948383388202280448024195384733506631720843321377066063960849042578453572895879419755959605287315936945875499273948877786574304401392447674752929241211621368647412230408857655927439029503466174207837643856187209199868461780719226436484941979443380084075392597090821033979096099705270802185396845074611138378898079110762192336973970608094879412872432774716451834682573053181926426307070884260685361788974380862508612016474051214481541640474082639839649191272729400261260208149294461456716478168153807198828676552651738477980258779887326739520229585354347815075571134809735652848530112631077830452124062257835920686252160237932977121281174211671783545632019037621838634651055862460575428331901424537328339087518663933578063587422822278649395575182603813044005905051614518764481410465893174190834023787120601271905411716970939672772643701169834360428562640752091552682407281814131330754019269258530790240266742367130094021004625521739946299890743078575685887336610926522138596551341305272790925215009172876939760550716950141589387254777833992044727834876645903043851650986944534491534532847260444903824591298382601916399089027327582203801963383140648127508890863736934063391867089880968720741227347978037963926250705699097619065667162130047583413165807985876034530193124942543716088901540725501387905458588546933516807660438463189311543820296786816838221718379407151341496297112785963403360371430238051146693131626511016307610228382094057575244211425993792945064707678181247469669675303754868219113652549861589520506184847329284966820567954170633778799847468958723417333939938889764304721950611503166873246681363704811501845389729608746380370151449709194446263231584751085057259503173503104052628490713507178824886207838593257370389974230588371553888515676115132885584420036852697996607355403735208944620412646817060546086352702462202354551563611504872105246582527046392799003795788417510062935328750750769139015303517826182353421780770871601247455134401256480300195195240121252508888826791967251699627788658425152761724945294666393968837709380180676606355555175106818430654196393541730329718183571133771305995683734055647137928690064147061437339766842788163167182572024033557777382818256928151957789524889130667816357084048875417169440210427425546683860885411955557633200907238996180351033658760396445604044779075361042237879409465476826412718090128053440229484860415137779185944919256176155618337211253284650201439591626534838263642823175627936234665891573431391419181263179494933024591120334317644853277273951180480150598616433131441782491914166423716737930980477437807024464960241194030939309804515499923336079388734250880391723105896371592448535604476909626230881833027891564039984435543422201377063737602953345370943338029584936047886373962531481417323460911764609380126010357128514222993723653954572163935738289570615657289730290971981657895431217084467806938879301857673730977898632607003051634410512509971231674626861688898134946424035894874495350391964056986677015902288340841333169870394065069346867046367987378383081861049401167126222811742775417498251480828555527714455129969402224669514022437675072833692146501244626001321581641692117353311637688228099073043892554386112901347154129113064496512581990274847289956485707511190478358637367267827300881597227425950965381229326474105217906281524154277049422606021316345984172798015089985732213774853059045424253637201996132118002485207250278588014188019208581169724263898107536245200472566657991088061838977587125518890451472251118722410818621234456724055423412349228161400959340998816270148129643905317299232568378574978990043613400316720188417992547678941336103035414358350326718343423377991775151257885074726217825961824559419376732874010007869596219097909657945092159785732980621255428353056627567129611850397022221533805019332833314396578545597540492966713232102043984865437137991592280296293596932885026514537611300609212337155142641859071514112329991030238383654694143919714847852040059656219765776844276004637957272848537471483876691464937665027758121529224992955667861367993490819917387112243012176868027994353547396608460485492740220189928083494997333928513156754329626384295613835276265211379668909532005339850727700189716609945698223947308153816839883595976445140000919170814515696638165175749938930134915519158370978071246478584740177784179595084414654025652760363434454777497203074855692519628797844748882889318700458610848603583649591758502948566556556061355625809485039712763704652208338169222209220513757006000808449512870269663110846779063369381930922288901069639340350399139120716947036733229235716658450600034104720749500703359530056399853791417679740203937972905682669359328963587728733379627208075666138648810029266660917874815301182354590014364423861994951911525786190574854645891535496570256072346549252058870892951718360083009065556612386309275376706428440523206630081026764531423195078428220883306956393725818954601992421904289523607801345683139465815550242658212644390709765542394437857786661216461865543164196529409506389468530577099902777223753114980350419997478466555387100100452804660792541236656045766409309061998411686025106204625501638227150232549634379252174411721952463298711851892202011369551019372289401851832348291817150864507682121456948662482751839618681667000658104855864369640005000803450819846812529926704802784077386782607305039954202367544385963722050923300419064917212583120531498617722769748555381096022332858952060000747728423432867140035681757366555887041135602042614835331647985335115363952162741719907716368942018272308627597477520581976491192960464130243913308424019415497847122473968906075868893223861960370078290508783364199591051873748135408965050622241401002847472035679620365271317657719093253235588034384265940281192979052279721025658544173483367124722565406126850856207585504670081052066473445017863874350588668074766865281258304115437384408895915130179383054053897101197171730296630070015617839640970877752756775799336198467980214821015067063354419382598085410308201472162783906852257927257993759427768641607644908757309295855504994465753107211098508498013065327385046199140830844536390789131597821749709655634400251587591929920722732172952481611600845357220010661432675068435117069799678085827162558473507060638401070553286994537524099848245349240890171163676145320215820769500463116223269497589437502143794163918825223278664262114769302312816236655589556256213484659474937189729983419024705780272668371684424443216819044245378100070284244313360386166121053644852855405512301228860160210051679107451928480413369179714368772073284877996346055149983773962425670477856173748854938422518245800496743150660992338615126642065789601342164318349272981098892866262747737813562436818121766244191601028090894904637881184804323056545413283591412482846273868818336394606556035860114992019527125199735476432430236333762058458704101091661434056315762013121235406269915330979428211793603783170404900134474429338946348405079972570109935371339434882122103649674858608036112698591009566817988299327574209177311267055231866481802832844448546722755204382551253867344054702098909579246272582936283395090405538276794005132802959451123713784658062710716625638656594474735936112870772748795412615471351061829512437454655897432539166871771439556069072860479434083911700679264961251385866693485552277779010481253742535996066001802049356774783752034176272036693001978134904309105102476855012972705633503486541682200656045796767431762865396903981810233444001859281558250730815953688490821762257723608115573043151347721767782102562316732508815469705941971457184106148731492246877010949744037719025796141725749957687667828379350846649254467422885293436029098672431415826319885859076813597967183056952463986138343692909971275111945760805483204646871559640790925338579815873529717015712456476846477558507301524075675215862805407200042296334927380630492095046145386715525972136299071967930319213151379008105482567965491596225047704475737060234848630306461435984123727782590674444572131131175933666252789280665694605774929336223139944537025112818105777651540314864078281003375158806719476447687032633274980368603181335576004866649329899379527814374866963637719980003938416427127731120457902502194209733922840071571911232817363774291987917070763052229603163125249782012762875162427733576614439423972661472219535590025481935433350157896693419971798065902834047249526817100292250990721542168797432923678862200226029164841038531998706127591005569261823717567689095095166500355141464836090531256084155082989180294464109956721617973987622392399077158121305847376754021464623442138303604305114684977343886471191138120291771327250148808462223807435482015654119413108177999451705530370482787746782046529195608041567491390175804247019954021653641695440022124756810071691570037101925084186203000330733662091597563940862867339004227118860799936770667905905680769004841473609865983427690692703978896886300076022852582769293733268510266864644146803407962406824459493304908900098044819837878413197277936033283791509675944400975432141165810418857680155543734446934143037953986662549983006765450445632267921046002528137856704255412965999886339931553153741852930332578424730760762907995675038343183575881566568680858577218591082348124992077667596557551216434360694102692519331194512753327353129493335268302373721683995672355744172139970619353498226337653448967739292394805477172993855759007794335852930753319848846603997556507260867668535954505163551191120025898569856718368303358937880694019621177338409406771469624988141961266641606479036172438574859255183527634783588629371816832725321439476197459686571208938312361023965455554098291038910235748455030034809566800744495722704206174165469930188110492385100696489974579060218438537266105229205410330324873564835802927908959122637517544227008208359279594825831508494712659546811860791826598295411964489730318810122778509443353420642574447468315335994936109198010678685708833763041046572523281867945985628918509815710301230845191506387542560157813226974196688257897155922471199584785726961805755014860466991793827137650739124520735222414523178881102868662388042111843681377173593554502905812207914488901441339530530063750785598118636945240466658234920673046238666567975558300371306582251134822075458743351344728446618509144689976624202033812677483348576994906691293207083436516194649427991095927729937768473985067366290470912561210847076966978377754712276260318636119759330984964833736362975642053044799660609037053114423957079997070689032479552905474352826598710659058470629548570313663233619204824045420179666612093737044765746992830798479694714587988595629513132730827169452804610371005756116588743354218950665508775485993619715567729229875410501304483091170403475545478130363214383744493402924288828711751421334477914806746284795074346917912725942992632981661404577346785265237860701062831267411930771589601837939994594853074811630221384837942396959809586982533065996709948731201983896568239242593000042404599452988076149770187118434459122717606766364727283571536030343971293220306834380844070771785202245594451974103397355650921055682012369302505024167660757059411472240794161545974770752100075747266410952226929073852894253747766803690718794960740663937689015223425406999124394888805889956613778242640399916706660788399962677471275241738239592182277677858667340606658789978264913415986879972853136173286620633703064694953029660042407779078674789244964768444162674785245236326628559771424649702394742815340283405412334460864824482042216631469543580053754262992125586689578087534916639742308243629985605336510248849451554600032774448593221746818247040306028200177123594150015008781400061260789861608374882655498843712437270324484199102668802612474465762402195112795841068685150789673745264810542613569953535815691306568347859339717512863278809540325024187913867139116752627064103057275264520786440931840299272815127709149057997759402064427497639417313606132114206312815774158866434836009998270166503145354093663877203855082692634527422415920465619791452394588463577635771876772093972187170722615467832924097936189414665849234341521200296198281730969806677940051681766860646105716888246279198682559116580709520915726115629886646002645066620313155700677306433831998242258777875377456898664455621719121272343809759649581752348947254934349284386277955294161891739172744961694773686415662722542882900106978202441912390225626544439086641532982936325496898262953244712303177627815705782398248256351624120551250966065395714783845279104343740020113855227944839911328516911334415934450319899735028199639069213530265655376259587791217995540732688227174926892367118551523699775535431503008713910980926921096980322887728566465828166926723022583218981506787667695195982944827849123370149853798902523712647163549503823205403150467047352909554954499241591114832764348761899888763885984706404012396479742524976460052040400726100886304734163781572128855405938729988692123464544145198178665405918830940564912902124302582106316898258159219881947218903604824627897183987790378874440928618676588448604321554372017125691078593540417332675657166589830421705723888036419070636268059851052383873746468554531897216792348403480962835813568757508184126565576708285013469205446020057199171536508694003265059765560229790548672137306336472210644819647601509972225128295123861772031771758286896184928639920239844668195493290727638507270486636400754576265399882720162084836903962131340138580070967689921714701010772287478631195155015306051277913412227756631655163502872781961694327370181762959180643238938843991402482498625456717122928856123985892536227701743191001160220052633113115176678780466787329916576984496283328252659772395108782575526400492326333485901315729311379694653507200983578953537040868191568059626383765709706600251751475856056214862413401803310042701502952435514819768590129758315916729636749468946087079637262079275190245153876414735683756907048852765246863338856143036043718692983614991908894074190505636542864624398300366597046121879814780688939998941776012809517622999990684603330690001949461770217780031484587227372194687353052235041194733691327285684807814626912032886326174054233660889155262693763027788746374499353515283584487810141789043316554932795214330890684540382479496277892885205252515362422300581485966951038346859922824551765416308587435449750366442715601651031631433978711791795794085478948634212645335736712900250262765228024445856702187195283034068199576398740399977498200347452529177675702933218332408570480686004428498662361007817641392601315465415109888953316212879264695311278036605692015495099771189360956413383366105150973468067375274182079280563600614916260369892064618328308817432389720379294671792084058865627531206801690953785362349257102809823516330911224389578626817146385240630092408302700439224116387160667853957747070678129267889893832824818385419426409128411813873590903986743500677429558449235582090187339709216746047991007749507263975657090144438000765654399397333390913387518445037474992625791809295218924507050872226311665641155366316570615863097175268732735573158783042316303906429979951694118376589692954862218680469677711258942498337096756062524375636896841111868203792292205272251615782376269497334954476457688207165738544874554722582339843941983552782688020603368862393558175892431702334278097742460498782331639996776109963165765187660446656038895418344018130822007192519789872770209096472060977412801636032973764675222311800512515514464396797973638884888563019591400516976811087155126470420569456932971097460515823102007256273887485217620746424083837804129871733047423543489150245026153736544380151721316018854492217492269561139187456647985394182274421498642303478305754617612394115287594663009086780957069399928300438389340833913015662567607998898539588296611889206605793823736155716668238066068198597005401685467167835402950523947853796995591022890207438709804438156831532038931558557010214116352901218583365386155028432179608696391628805617812220913439361596990835698775714105256276916999453837109425875318733891805670089321948945151995327255252337511693317117998698662783553874361959510157867998392742259080467571663237906109305324817879781404134900874906043514585864009625771745148080174221005266930437477574243991195561784453453374034474754019419398962919443477066797217878197007025254237630447900256842263216194616131084086624281734145955172864162731185631071496796291326227119595277693496002109239221934956523429898252379399372887563168776165920340537853848464501121429660397540884312309293559946906055758995543487117249945179300716922135799939362543719195088713567824843582083332698133508142768443127173550773092143654456081072487546244700208828878510754390778014085246490767691059759858394351463040957571512323118792034008801153180476145993810718857561604259822931763268202667921494132803328366017640263417656297688427338882469110031613246465948092015008044861055876772309485979852616144377826591945314783314125679866573022016591217264040809301269804125649848767735344383183932635157851243875410922281061060261947564595854073765587223994774178072247986295227155538944605012109936530635113633009364998563562896630406015849670387390302655133860531514570744707715896360768651994570007835800944768385739801212064175339612742919843350556450611005448394984844875914687385760008261295529033088434453446727815329656997960563157758872338689533565646887121559923643224206217838545186490956283064660219092278171622058672859235204568080104316213216030377762566099878206990377254768191241715573127536769320577681340485705702963740099349136524986620099480929670198895995829198156802956953048543901304453720833434371904695387145219700145026643328696227149551844236742452958810195571273625413675183345693445833906812697278997447168129539784982501327899047037804929664574455731574785729660645845323701240883588116906636667900871340243393334090789932580843122250655372928529707946989374895089297625899633522562678353658337510969115684288692250463134798439192238082993102586857050219208952168057890448210004296933237332327698970216703409868809822662763901679818266380372575386662420695944996116507299405739052228868260065663179526473166700772725596227476752292294456489054084164730456650778261684194631914798096077602052352011790939826929212148432052497784315365458828730137905687685960071715268814764531292864742998515781338898068826851924954123991542474260670180338480942594963507730432554772736605954634447828053578016280730606060224241135054593308014792276134946154786751493744452065619864768414847844948182889606228943101748858522837052354207083375197481767665453504574755576901823514382182214015399503738703786247472340706817079253714814898425924819671217582884453367698587454717503501215895051249686586729451452350029461604007581535133430326802351171783479762237420667638160286142156929092220490179300129965199324618998863494246305348158498212603555495013548412726879574997909634327245515418838917997949382437125930566808679316472219510252323034020613975731645714524572312190789459514681635480446476800540366403336909902095931076828520574670586340390995714775818599184580679747303315937278316207292272733577076601289541757654402257981425521038124431944203922048393847757055227953061537306940575450965631945497746335880044430768937816046165680695678163565190478801778810581409005938596239457085032432550415265803477175493318439077761306389002613548889519388806148091809560327194163260397142783646015155995652866207475481637869342301470375592854094307089784632185320486291662107355684823755293289569887855317809241218070557632595494975894647363668551001491181608350791145964108597177563674761430602615448533538697429819962250906759135195095027086727854334458306312401174067819370533334555933132371515132875782050099087182256982403953299046159952071833032860574348798411479440702291338153896575719857682781304033177085836312170236394568287131099897994922249291898663075485772208511044482098519716012514622263613275154103128744327120556881296014776714671082084248158196939214576847737314001535148800041757540525061865352974594082041151490143969658750818115865956370130741309244026162376333747115750643184461187236517078997144703966402542701674795821907605848690528676135815202296831996785576484931431278757880840466519350213326940860997110986343368308024345079565014269327171100989061996728114965703529450928722309722865582340705746234007118258583822879039655935675995002551839062472293261560511291204020185406156944976241929144229249293214350010694372729809249107306091938246805347323677932385084352688708162108040685602825468797039311884033745135164002261825250588971245575892206223549167901926083200522653221084419757252363294298997954284916552672280021811178825195013587408852981766123813681386201102033245305333260317711574406301442931870195477122268201185650817766264931500027278967665020145300308982131116160352872388269530094400296582593241829522221304281520037893517750082315292893172564651878408368930519274353922152161980624506825407218773573352109937814995145498880007326141749973376617758569859417207453827837249149134870345757266761079741711977477788128156931037580229706167939940745998536707424426000779980017620397516782318979406226434557164804549051431766390818837063457274691668674786355058648190291703961193290815281157608255570534286058610108945374670520340030097054280821599475180648036182545890594345722246526657552354464998945430149766040779781047041745789943760863394972051386993305855050149272810717987079435747525776285708676106557975984598990230403504021726665890798118758530991285695961594231348862273826148053288738958916326452117921751919587448187858801602353966494133599175369607585325926094943550369946401815938387095055113256122947830532940269125954685745791903006302908051965712774403294978868034212848762844137509995658563056924553519436951397119158652098377410815994661275171076835849541979249052088390035469063817439758595488972246385680472718444560315388758997525564704226475017743777377251827141910249656442785378762881020617223461942101879796648343050598180717193595347422099841113000465368373071338782817270091976478795424805988305805749972183441860127497187250254107056482383653968286332190284307789348932044288668347696230152226102770528038666831662682563171346333736284843426514141153354665232745385607517046967968157498893408815955478695585596046492687017278877505013077990261434970056531852009637882856728770543402899817856938378024726712303042568447036911218542393026653489498314401087953109542083271867259524907454624499605084016379943408232008839918321061490782221610369233618801447063482897057337452213785645036829813493919569484703033366608599946142336894244974786574221360658813538495144369438553801542702382122266381754300812642422086560439001410803939239654907056363881985558357607085139324953747326491543471949271639512622576211902049652328375921926847141391160819163973869744379196252604853137748173559506077595369267146567559652310339180835383298661695862832023397876071865579260835475254668598933119596986120485734048399469108872257150863568252316870095505144116264686769552809758119181120266397991849931192719785416175234279477156896173972143772740171204253480062573839200019117800146200754451359055320569768657576193938188458103257089917895934254241616954901626764681368223589711063823386116019663775932527884561165193034811654177850270943329547178264898116772451185761537824265517229529079302818892239826847260586679566229946605649236167346414659654683899656757542615439742387877433422080084809942437067834244299237833764478524858263244741254813739171886133542779804734657555809045952289055677453128046761609469852490212601141308786053664226343989213417480189632374357422822433759379727205590274986085094305922235363152557515344688262083917814417593767470364851886861655577136059402665779649680962363905988112614504136492661802865878172220633157739913421088732638189627904745869734849448237837336678932067697805619028157451022140846068168613665029306913850527297555184863510731138845545174410994379306227998040683416245357247627492341802239012322723298562874409080919697847828221313941692789157363523185398060321050105712724790990527993058043474686432226501398150763795993508502945460912407728616725484661732231963266042570955667236867947894544121718510212157477100894717723139182161695245404099754494990582103342827276644387675230688947070016162808780854989092785718542726019011441151235600964813777608071611339006772008546654594246547784062526956572299176027783708350435369074386839926153964240295300381364601912272735640183584321419247759375851251874049130218378253817474487706132032325562702882481523218980897813237902338795748644960719539348829461539229684652167831730147942922325658993155254956940049336433899288586296443401556593211409566947970481751848748811473958277177854694526669273648793403253802330065420997260327071182365509503830947590989018112417958311319181879645207242720020196523684253709602988005297614262369120923015762826741327440208829630736103057270487461713612549626467500774201703645967142496460609738246333699155719172272560923554730170273582959918952420325931983532645784294394767102312035291299537973111222583809736000282847952027131214675755182631623033994985492153535393087490298528347276664147841998047426682010023033038093881485825660239666361462726503018030038871876969580608433467896248317096291166270068827360976827503429513202828592212025393174371017078068505623509630886615551721077914202339286198391858007414998895073915315034749453499037526115210480237051447409541090153389236637394750500854041331696268694014176753656814102144037176651012442263391790891669081474449737363245319300868130408684359401654070487844782981382484370041712962650688378054656699263064097995011883495582542277509275257810655445022821353592831988510010140502442627906797522900002235933345034087951922379494599669800561179990604437440346723251913914760494850317544345012006147279445143023291632270228804100183818863165846793011045045478604910178842324990178301673494594424347682891355422196943646978822633960298323208770249249712232798151721487696010144762468790571809867420356551178088352080311058285747599713537806863167722751482083684987024918312484646434368013704358214571744692855421071975591369191470568093832782544744236912266504862441570135446328479942672055153200504462626590676615941854686225535008858722953595492858933637647617445299908028810136507947468231442369625048312186301889391453908908232218827389983295600489814890167746025160091360117625362714131393231669569499686351995220786820320356143822832700778402982921693669288982016161342265442300175064074647474051524826926499716423553133645960101991779021132581455430755122217031383189123459331646558550836634909941542917700578987677273376885696798907989372940951874081336654702540413143699099677446833744927251599608447519770297324741496837795889782144817588998747725790507630631687714777239690352888988088576632487505677705333891974148456574429498599380563644524060191765620689361185042692433346819082563325867436748611630563463110406759213987927678222531235082161612507348042402106875774940337441752875454883981723933459930621643935019895877642794222985965040927852362354335417479477930921831661276542396335392158307143756477976194545463020563676629294541682968300299661066902124180826430082056763132091243046178159751365310678011418129386854260576087808580706513936944217869325140778153027097458117861358138970081963020333457299496556295338725030869593425794763284314197045318572421463526371631757435919481656441959251586251505349007985753379265619703314515646866081746778849248771881605559869784849273459126541409140748119523397241160346456691579581643962037974434529485741033283149636422853427080802122209601077647806710658419749575725477787211290655217957978424168736493914522783386866428711808202110194621853458764475595905964929577100579784438157906686274257740697675182922411360308636992942383711861845271716830266127119037582335318076113897099863690556343114679051884120771371450226286621574611619062638858119958898143966034211500733514765503087742155396773935875615389025326843869666752755190277876497336383483643241563827751386322669389912143951120369605798294512567951514135746504210095432348179834985093077680402646655780458054340798630873795484969921006604817450210045537585580694870257801148273377837018172866366189940263083348313886662307280332035617521735457366345075762491486327165689179345785122306681829985016223560876473536810592496874242026919585736928450273628522153920947340791152020475361842498662007727424697895392459483866917863941449507088265093466260259158275660779692771496567310507940940051588279136060284291143051619743989927062648591407602678435942937002473592322278823394734862127234214517042312991341535927273532836482354498750795455580891614346274780271891190602604627209627725069214090060084538104102498953583709079299310079396596947644528231685289700716186670724906248018024224906899334741775843567998094696920907537255356631183899814536940847509362900486043463225206279539296556428590167369479835896772057206618954074836667354922516635420441219368625335900561714451842253549329142695259412475828314774427481896900923176958218271100117563539340109601489842151741955882146044490224205052210493665427291622192883650643487425865070811127356021769111061696696904127066787500192794695151898608255322361384447054630833460998518053028912864994839300542595697625103914487547909673646194694154048550541932873704185191815976260742344445344512453002337326894420296971456802904058941297082493574457900278375794117587754284974301775430884609421092484445625695291368576562836450272209141174441660173683479252226166386574443458815691143076227173382345963690706508108568837373525413754571956101097081043248970985095427179827863945661450824893979428061262706819277482161075210377897087371025840781562756986773699521181852492351013449515742377798079995505870842506965217160468808316890674311395587551356313288656412949354636130330088974003952455954043241151559236446938786687530360109346363371691401108495821596213240405766865715970678855917957680764667943907036220864270740878176688643757215944304518235646807005238530782675848346708225693196290753717398929874410437345371948876014765128650580485013014788102703126730447892181315640048854848815365642785096523585378959373795477321988465498332546111903182915139186585659830733571302921320960088975568446212434539521159083771374626753816870170015814163577204222593759061673264995813853753226263146973866340917790012987702264273478835911483064106985432440097127821931639657788980094063518143066278656984109090528935642928557799132513120213289683336594445385757942855574455991935606988554604967056325874128580306937400166701998743048601998367676617249979314148429106335008913824852051080842297517187802997393851236937910521053755465382022018335475664252691968246523395206537577424978278959462271187261965877682614056305176933984574608257965824580202875228948634366401360640875477211433753146566504303487330591538276777755420467482460534836042667429708131425965411095516028499696785772785825798265486657476777211977697023431001616258989189328452048357979869605601274539324152194950248703738131133293686144289138091104845015323642614824486836620776474441481195049128509402466495051288174590025047700523512702147417397818321095208677397532789838495635930602887199976544362281723209930438232100723657504214490486742718869945247156674302609789704240295875380330345675305255243894550103596687657939601249391876982682873315366628876874804833262601406695162527135565956698664699844271134003523581983302762093298179736167512286469592434406479708449611564008771114117105148538598269286814286974286976107434421547644079025765516416145841257289111174525439238399749428660892993211038748303277987235715456654663897611605167178006686059452689780912980211204601236416754111103094614752111490883069173405797292510559336652364798704559860242735729318581093009761982163186171314424301048437858827719947247489523364742824295611802477176087428754970539752823764210696697731417568664725457173685487813482921446321134417594486432000360905305425689003740778241192236832932463006044881940521472782173152916233512955304886464713670701302366292532121898735955499949873899849593460132551473825306273129297945173733078343279451110051292738678603647641009253076603513434993141614253260344168587652991926911539746410787691341503280892651857894618614915524639053518476886853760047858138385136661353360746911301469711992272541956859520627304489790114698833253453950188601974876604525618290644336986931652415330624335126652617793948468744787749478602704531472385867428927103968877739350262106459706162028973338885236518231170880114325683274974090314005104262059420857152321092627423752235210125544577044698107069004524553222079071786501048308903929709170261414359668329956316198534358755901330197701255220639653383502844848369558597428501522007475498059084463982347167928890245078194839106622267119465059745726575213132511839888730128690214377737559011304484515293455755681401101140878345560008272051767002968676299996171899985745203692579518957879958828560469133169106604177623399961912071222074487545541579521673685423917585328033363927335726911566442210686832972676288758052908940018728030625308881265993357314896430957460030908995244421241717276297752202517586024081683268263454406049476844552286275702208098716595437480991189246251275829699322193151004207342844989938018471829372223536393950971330287167569738019080491355188301935287241435440437732381519438190000824663015002586484956744892522199423396096017625223078433132070666921146199442394990422969959437142209856020431796482439455281758789830845713326821146771435688567633880335095425575361045573819203606119181253110991406607997665918595156948401581778733757407372618056837946130167189959843949357623139918798933398027166989160341294768705826738260896515627273743676868261769632389848207603039934390969191490168870133732378854321387388837066902696911487135154838510672803474483314416296453242588235646215850206507329764028290166863444912888242650414657058709269306446302738784744942905907885548327317518433102936473442983877725042043367612459890671092021506924549160491830668520301810431978364066065684477482361861059991526628734578228940124881429827221145082971044112102192866456214164405924573318457572134756289550753169848586950272761324992402322341941383555605552507995953466960018040218645926041320376123236479437341125449186526633440545493363315309963110673407290808459888544483842185860386604333929341153423431155226529734087441247599618423935892722257697950446092690176747472950357697312726540986803604645832308842986075118183463463614081186020908942064273065274941330649409880788225469874157155288301166628925464518389384186398337992545127123003963709028824674209616754468358018834134032709416796194217205918630810627201776834893480109725440147643802743749270380045865939672576590706183959489947467005292372726152789020246854628198521920526130018087244422146562807793918297386416195773161016298955781772723325090010651381086448870560816298717911114717799469267205456147569135314427722500319410540838387969456207417035754471172261637679143801365783213942750644548955646025113447551020348440952747878834275744724252450762558951055398576789313383944566697412678939106453995870517410886198136951608057885120231966261679959632904167960165330464130244435125884883744725013044488263653411928573751008727882229562277166325850078074439727630239785678573290832422043595633877700335116627787390648426765051328891130643594520214368705360006223002370037012110966921437067969285554120628626010844896700297951695388495205833444955877468476427370944737207049060625216197684519365877809014747630092182989916037310364976819971116561604358367951603265072344532349445264948111344099622109528804278252017930970416867721413141188953358147302110444858580175556325239435905171808477030718778649100924457779000389018397048132561112098413933299181145821877472791727174150015061574544675424009956429620660467456162963848282755311104682480760119834668586452010635955954211757196388105815857706152490285559984203837456865629738034172903710887520528530903081018308282260842129391730998988124829492356953670321694799308493987545297025483138519879667172942161428431762756486056214601612977308068732800749750074829861630363119787002025571304227286397661794747337116130388253710466148495208916798319999956390850923196542183432732988556422463784976262367854595111234238679663432280430820364414273706993379150474489216370671429204187495351960339454095811314693841821065106394795101130327579968514872863755735279340235953092700653795829073595216944808505083659235895390130612291168527455114386689813641007445306880453446151459526377824851209484379313920654166795804611546794433155629052599399779040531340476634325600509262166272633006374132791948241438399188713881341677640751944664075043920494764200162333600009539170189331044810531483454575021038631604728203002064715942657754045974491897404878934330333622993424154558593810385622839035433661769229190320852618429330300667912943683694982114206088983314475354966703053540228638197754767780996733013890203914243825351521647168620405136032144718883712716323194152395096269590754935297012935709639740189498735255165189321487123991396560661045686724793836989490088952642929535382569996490756566967688190498488961588146706537204851879617316088549756924791717232635941500663658462318412820012337137629029314809326056208132744128147258859463196710963610654112138033858974996151372514011715820552385771325260498742850540854452981359049050541683064294074289085570998484060197749352037625415339351340283309278386846450461562068043541035139154598714561115021256556912456298248187006669556658811241950110820413653227331575745041039730604038839138011445619190874866356729509934679388362070118321437560451626547243899107637693499147656032374808903089528332808696487478995097334971105404735377177857232256506969529935041109081556346963424598576605458006909717380441738292547692652283128595901575395657794728914015599487720687165279632449419044654391626598475575243538685145849150433610297308432074540600294159855570453647974075117836101387564149735083472913072940203658353847500579062551919946227072049942439634111931854817646405714813587116691651123956937313830469927678085908023423662947323618682308210803913278095619225045606450222657693608468425435443796177850533694743456509571949125624440107340833813558938311954313352157813546927844590560997730880451727996369186474484070828091726193585014938052759499596296282525149681241737824530646408458324151168491401624407113784356779779333367149140948199104345211593929699959362509495425798536748695770018779307615088666485399797642049203812179899252258229865027278114623503074270832977829076813145444090793833995901774504017162889241538005745988543088112777142262707712898147522561722636835966312342397150501985276617352618720307480259653436052131474023477277807501778726643790472356719751603573793115115411978840791704038518624502171575741286556063278903405141775497673846435062617940411839804531125884708950953032243633230816205970632489775790162243122904189087472484988023907384738899856164750972847747078526398633315952619673626946401154229524155231151823622318979474235386565954346250757029668481320021069934106808552742732143483989304511296480208729197278464130359547476366858064330509449632214124551142640368677780626746001546211977298634854073842593258190949373372817954456992770724497072800766793931677871084735973979225121639115388180812523937039964073996577292555803737655773052790881281452427573329213283945343249415083099544106176573074939489365025032176904728551833786723630884783145612510324236618493052869647643734256891482368910533056047576414026538523220361949687576759756058805491566066467279701956075335446721146092454056844666191724113292799215450715155788390433777309743207226323344413723689578396654888167483436401720848298667537251005907368599009646380795121528050475506239280413357898473119570980050156710194624201339834278737554252677435792065366230421105068185051378875369351376784797729253620479592970267185431892080769728626107048598391741213142448055119872142465858318877517691552219359883399457347500448301416718986492423072854835869241073052474994170634030913644705124802486697297014115384825211968279271293087650127953383398197586150354461726547017267608005543008895422619436902757377702484207890517949299329629408847824437808581815388153149965644904449610711188770872895771671455605820943396219194508346605577556575717057940961488589768686810248708113016525751982509900797249638609027535417819728220548754989184416423477363944199316892150765356820398098659453860228262192191735960716876357950874827966727923616427375955079751932876744552912915321322955931394445817816407906290984720877328803575991728122268567118837839348749093191218115109676511147829367488594595068583642894954443338854246927712913850741464903311736231832326260413143508492834511170116022983513987277900659693651876745660070481851557956749555230043054468603946910379757453592819625718394287677889895339985427434672673415432871080465449622039293850320946205307311729750470809377150469617692013240904632609187909941890941108737598368084165462811864538126250869281653471915809125060788150176760322246896703192240530858045122917667256290863742641999030753094237162683645291873641911676370819307690410207409298948955551973189100281816852852910660091459311210647256772581922745461014526915066033155811062394561485726955289546866367723643781610221125687350728328271906993787881236119119979572491632739452231102419303920768899794550707673130586215881662486038918080220295561538141890165884420242816813587377799562924251180295437144608404736511761065902279570893236987325858386736802130461323706253847562583184108528289989365887890545995096929759119335977626051347750891556508385408210035468856894777499619744899375949115305666581853894525320287193955693952404515534282147387260013956400156999113820607883203882868277436982887382193288742352264769204459322786807299122753329164734470658926466525834831843457936671298242476567294734756327801393369081191607181178727419171298105410604893907449606063371698850796752420459411363190338541571542874101622867329525125463228796635126454677227416734115150540124440230097983658383341611229052526757557096003551486915299620970751136940998129142136199051283539411729861945983927168304932577735834927268788987561051578252944446047980741005561528747781047430779760825353518813808337332686556847718361821392841826225639436213555279824995929874298779305591851377027023704306193614673004693553203930124182380411311183451762644963828633450777076507095934136679857783982481345318474756551751528892614915253101788072226939981146831154879119045794529958450652258883038963459465751188819493624127612627173411812372828094944011518146045885002316742193882151440509483610657938070022948608568568083219064482986483760720642595455046243831612424031973670540960627052264291667836503616149760486041361364325166460470539815740823835569697099311637945320639706817567073443958143816100786657740179466705783354251823477025757022416896130434576249351349068842708259236298893943608285732622110991332585436337892957585428818609894715291503299718311829251485422786214952490622744334603615907313738085504415037286184999602232875291389864287739456792527268324005891880687533594377652290398162254452909555380367610045943261559473108403492077060063343056002059430256301161947559659171080766508021759847664117419280259712251084973147087527650953083644594043654461080391006626567108977989438840275125304275369367935728395098210121352332363406180268762435029008368851689411784551616159013332749820190527916282352867247455006963929107744526128094114560589073459545159789410532423762894647437688665268733747738386462145196958513996467340638180004897542277645860691663668845474657067379067834532351785514373916147857818172717003450867067891775836190764897582912428829686143611206453779702777694737795922401483468257419125540453874088223386835524728854884581248740223835895750977516502203928173762475322790353887081220228670904916221331731038027460679826713114600898974169133591298804933689437393487072881740856503688153237670355980288458364731238478185809279913113093430555463629345708131478198288919668975621994768930168542739043280146081297588251080861390094369495586810661904726086442230434149202241890885300038529733845424345711920153548994338384616803089262085496874573237459393376063849331058604726014481965989959820080830447920251568523426944446779732293318398548345402309374586316491826869304922858792911378377221722509939432667546438890060744891561211809600003015266325613917578651502158393713465729554972466885207292084981531560226484205631950202981567159057838229372675783029851070929757498021522841747315698642416173650509398394295956475821182134084400251725968101980215525218082872991747640982820288903322544356667327937849549814731967299643085263266646298697046822686548871472151451230708995742651860272644678459360865204819614859559329399796386124993701986550810221770754427345680967691397150533674707203587954604694528667491361781141135028918384060074029618689826977234559724584994971750553570606241071022625940848540907271815508342574225441023119116599164305326836622273790108256098648813306949312227704450930971999222294757559268659072589237923155912603848809162492243630052735249251141925091936008432675379209328447576719371988751321971427119303311401077055100926537312590494396920963869741590482530510011736124628578408118873730586819996763156694641335441951710167876360050890291140921292618795794612235238924194695394303054662214902051359271945081942459297227931419351144548324152263405432163772426280504513892897016440787804599657412446450022555334933712361808868921576335031722229113541284994646215977920143525192136464672535159684953416637190338818674641518672385458909975644373622635685307435066563662722348315445306761624779976769717569194852054252675405395882847990395877383105795908502567436498206715266904815847186267111909757722122900628947043176957583251093610143934874320021413868354036016817620597372658289912766078560675034169422009039863201922835474571620429092007553904040130566771763341994519202920360859597388312134374329131995635219828523988926421452935509351569686306994753488076419217536051820304811997442945236264240358488754579200259520313310541337357691313955615049392478837105571519314467602163087391700001956640591602129948085985554747623135432528881840405799102116608948523689098480560039388862845027230241527658964172452070394521119458364088582891700140795664892868590888453069401788061501883259581623608246350402083390491818613395194102699995742088134993358905733015525101501125260344140607696324825750793902352493013297064132774119209634291782243921651986722616299966411088550906568396384015408914551747483423768543998409449354118304081425037852778743566272117899490238509426238522226867799401826656095933634546462738378613312314267285349047182455961482576334714559000490378758196703773841886253112049760210704627691645749725717286345178239345744635827264173429077856281784769017759006404064109950842096804207073558185189496168357823732859117902308692387874994111018555793526759676412906553379626131040286803520592620275507625434778798596761011608751783145932856414103110470567155411576499416895360340514522258973466290350437832557989924197745436155980721734893198622163652701200193372217355511158993411645188355485300668074417633310354804362416712300980530210758002698022942720037780540696899729851598839233148608035645834077528400126350678647237701374683669108189934246887213108725720267311239681641244207600835588793825487052095450516077065059274788421591555329748469808840638201448300042171948435960533447204856252275414475982604899776778288037582244108069089020469083813905192656552799892396026055191296780416506852166922670428559563410533190785740913627427887505583082064839180644983907144120824825221523258559733023324635284811273749982862979284598076478178234952744940869536125744374447836820235453628426465094119232545869816865751567215802163518667478643705698462660046883629364539312616450537077823188815496217865031788348273202849879644919447280584801075147950763842240489982194538012835521372029328680985304886856378119167522284435924186507020355456893267485678480141941063160054085832186147353989327818153583768336308981196580339334293170498970955721414134895860939552239596460309022550618472434447610619952697556850234090051070292844347025803110069080574062919371051753472669331836419998169535558755570678343917166848338477563932968248256509009018849693494899847468968883538352638933576436357638688657734847011398797508250450018077741671844118882899038288912134204099523569781692195013185017005091458178908943005190635937596837764649218733020326504063377544943300646379386308368561546622849814045268792050118332405477512825700931338743554426413549471040417563343316738586451991738417470593464870371019475310572625296813923760523874585166409118452516985960686904278443092786317910475211306665837185616695571890628355268964263179987375902579539955143130850931432303686205195732798082757439377204358987996050343423624045028175684868089559288609706441081956021689433071486436770058562680118264440350284228776781521018813353037170204384627475192152279730768611824915762651227128571870724480249903650045193530348420561810189337359928645543659774865586816626687252254721458197448173956394787264004681154748054898468684827304198773086721183431947600843391238683587343185565054950691900978327244007955227513034289906000793850425424880969903620643312764915274697586128155605860745161546035409017670432512366388707322895370638920694040561827515724891592344196082871944999541786412416746847471906624740919797650310877831598977039684561419969974457986782414771576019560943935914307586749167634264247173309498468969392332752335469408911011939348614789667188961314683641420688561310489381872229784810253093747268828050969689452054346233273562124133564523833365309081401733405417499153039846500188407066904146954612453416443197757266556525014523466413913764946027130401736384550854467754727474971365278063589345746750690475354039531316568977573244778503406305098800761732084888451611747757386568753069662868351758860016785955264844360161229689303659130239091004626122238710728926289745568060641973088387635519749673844561542635602870645021740878091972508005428068575550116823981728134442125069400298845308983235720738855087217586920702374095565403585528126888353717696222577606790534987637235461023166571489335221660647711909450943873698860454184998547620704400403345916316250004903696759957978933447929833437073188746265989525172768458173734729908946146324704523664526972764825118228604347502358682133880137266002237872015885165261705840361040172652011888078488529173401160142085906241393365368147983127341739432688423318537282273825915139321134156703666589440123301831881488561093898900665934573060861562668758781055420776506326390166569060238616814015743803121618110451045929830725575040577593594108290749695519448103254694392117974675834403438451235255202495611956961076699760198814572362406557331483739769703452181045983424788751744598053214055345722000451626364108977082228310906684406993057725623349511118168376193775052032910166471973630195950086664230437478158324169711225173994067494138322674051891430157963387636795774957483082483629989149582872686571689622488042629523101021583243125477399234367296214729124836383431908787237730236562813544921532588049992938540553414829283277759608322887925365723423064610818361134312262145376431571988997367956953875730801015788187706864437790723527252164690658632573306272581281533380543418741860793512008591143816835095354469731901219391302007639326702406501668336019040808967803793247700960459418144837722255880114818446109222212672015410508976750076523239402439040522057915772291747143233427118603432228744602600564961151537775405694726456315608604005973250942743837002850323521969392164741292197440748195503912587107933092423611623807037181778342129500901583519872800419262065736897919913430954529104169044490322585336272671060236637598064157220643032356512569266838634763346028586631005386654791120047994132485745528038340551644763575717637105968508657620123949156560716729973015490666249931967497382923449891037956641973349779673712285229498013973464850155631067263650832799944992834883147283006022852518286725996153743835504831664085346460042848969129882472295174047326432891235951073933749020823053305585157069013618953698232371316231175105994323130637824345956920586727048229040222894941206052168570867887379157861688553765343891062936721249402266758772388537636569811074608581755725829724112178771058837281628259840360442504830109710236202866322472900836004466754677706672910716900019241878034089131564510380721460985607454064775363046882690271867160044690022824236792688986207640214314212025317491622654170539366210883248563580279025200603457747008253274368580000251728070849035326967479840923245447682369454357077400584566727966102300222004768013469862490787783336496052017473845614422351434983547083063181502253303823505797125133896684634084124764392162000756693983580556660467856706380381987486418989147718927735970665904139423491900811388886436888744704330327304402898201254488423619914782353062568499709084889262374139710230627847087372745973971078022151983045860568685347403915664812385393947585404524162416154297645513099235703072107601178984018609916783412730079186835214841155904024272099299764144973925601814732806507598497897159155000727530928042447243522382692349548026714387929540419485850359529885199080657194226758585206422002397325526192612581747044455975781684139809652192266783496272985913539905649199771481117852133840064614155336291934438173028287876876042747879606288811450079196637216240977902137174267108059685107141568130162280479923290386901855264977149153241454883983732249821601970206031481247634074728078475959782537513803565950496451566249574250666043797325469291273333443336544897754100528869557079903132006746267519882091925933041141829377717228438267433278750462586991021951543703330248579889647548526410992755866345903539610669546231829627714977499234118847203197889626116515630953232062059018540944859020544228692448271370973810192936837743581435120253795524669697688642672544047856644600452704086550946803921788085270427999931373338276126049122758926757437264568498312230293755189923759092559589439044790226853527611735401718267447874060042638774315376461973912218196906429655706347522290847823008935932216477763092936348292410713625764788207362419954923549541607179791014719172306793063803776767254052227695361407834073145649091157093656074456345286583281611196388493032586373520277516665112633790743892477898723096090271919468441389985909217628133474204368932180265931882292945707158295457504936055960562720210332438001516708361040239391603979008031298511705534161941393678389440592047279048943278368679109856725362253435595224670151222918373319644396544917690455115512621997687160325213572657690567837443208612355785374713806777654583188112122084633889733070341444619267281144755848440623461041485813201798713052497713020862645319089953635615216032941555655973801098596890183268265489867371740885372853633382312823491706761155986627370177699283761370207855161023322430555359327386537990770948450890555106508632524497332979940894814217421298906009492382342063763064575182145132788040080282116488210057744940863077070360145198225346901905840202753609302868149437901439384454959174634077551260977486078840672972137633002261193551887626405681002496989670175456377216766126162395761489194945717860730860599353549913550375400936306989914902119347372822143793442120788392617667598040753693046308884103921227944374543385766573264241145356560339268648007984923176000601427739316880520142149940878568530024925997350681878002863856541224953868391648950750421208217165392657533866380395387664531692607807456458024929401962116874297726602251557807613040841664434614844953744165944324812271669777551781642569450151584899315042911830893959645076997593070954519107264618173873964116419908269399380924458065108972383061626796334019992814001524506935242557889324585577803997381808166324292364569319623193025073633194196730167215139317765094504575774283988079307823843393760342654597915947205952256226589900013799328738380700461318845796716590054589921273153635494034985870669573025931894187392404117097467011209210926823526488364340376562664898989856355829428802747627736877850190140856520313673014229668503137915841402223492581617727510401748713835109522427988681055842412449621747384801332153226947591222029995126907720565443458417526060446070802071053096432142180267173990024839268668942110004040901590087576875167749469339233040350656161961476996803184008258163757969362720253462712634099934507778050306124818740467468267307636308675015953206523775913299071083043307818975315843219691616031312846574764068618783403042425582570681217382423373540171642253864384156546601404860847279837354476079420689808536110106836437524622128521313967139415526453278975490166741446055120103542600180566991191184895671958785644433201695926438924808106539746863078825006295429484533593957007283103741089863956342710852941016295349927187591641648421584886340419537608954467229535996421673435912833942921544721874783753225509570012617453072038408599434097705993439833695496741304448034435135222707373405589922345411994760360340913583615075927766563547931381815252671334916890622670868568330620136604601337582027015995651948971870426192998386335662176241711829940034290949481214962234730201343350783543804732238727118365074812054367667103681590998312157638666566847804831381450130960294475417843577228353550439050806979987247519739734905078193647565565342298686615078809611709383499938809280167782682971483969285634428152555436405831191614860976117810795811935797036825555469483738404464335193818786260046965376999614763912170196017086669841638333877773126876758102831570275288053857671186062739971676930643871562497197305651685909864134746790774772829420550976709700263479444916639160976305521685310770014253380112951589426610438066786835474772755084027967969798489657742918772073569171852257962867925803899609740582403734477018273666110347369469332800153731624457865692709725731540328475602782055201427370440587418527201854875393812536467460435812526148775855055575299528833948853638545064242678854939782337588002278478555458690610370584618495165458961290746609083567764509086130841118525965735763805644919207150344158478039997756339526427871211721549767733764962449039464806495517704083678565465330188740038829706694554857006194554947123636240878443514086368165481749111658770337703246235896414332084661591006258921208893075543183166895791011575566546548098893519049397190694920973413223471460023018117308365595684323608747296729361543022886641029613350865383729465872393804566435309746193960373385439982548508088628074648469183349158479576482411648989311095682217058790922833011095413859130003795942040099968321194107830358443387801510661624685585397498205793793015455869900798649133968013520171610980677140906904521646953523829556094179904436461632429930130904837804942499326334807100387561349043972912860798631922530589774828275939034026892720788812939916872250750334743234690538141217458327565435817394815130572846113091759735279327225209447461269999252154033288936320103457011142667306271620196281339657695574951456293326085987210741838013471142829949817592471858846210602017062145089136212701254321843820384705706864956396285695426499143317910160281139912652111667035629959194917888492044496849919920679782332346466079594146561321458816495312720340510158813475140872661828490657152562204030391818411276793276451959561965066295289467948940486552827308190967673867898076564832063494031962613999755869287611824646168724693939622886458320701891530575178961524657507086101924757461199539436829180385123505914227888144521317472504327262052644837217899335757666418597522899985157500799020060972608482570076355319948682770046438464879499848896773826111183367712364834104174101278044940811717748803851318375983629688873102944851507165797304093803662689119833120349291310242558879389075630343350079743539294886843154628195026804075366453378325670695333930779565817310485345520481551195466932121370879347052628970756911177729932594791123668294790509823521473793251870048930509218258183454243301300599539887836498968514123624738729329451447419017991894859040328314964446065402440569081113381289481699571609304884011216725404017407541286744692794316500468836169379535640808418096863242378369557383209196051542014270370176984947991164927361596420593379591436256119444178561141380960096686379283297975852169867231396105671378769058755197923531458902869913774706319504286812120666689152254969806254861568767489669069890035102209982135274635008110561646622494253226887697322302053000373007791243388263856228353181844402218150066806000202525124932336476686029844579224395685944763656861138052662568979305103290076975485736569882573198242440425273432003688751002348898525377068916712265384643608081592358571196011860293752539196687393024012936649987650180057549834327655188962392575792665258874547679586476977559448194220933769227051733509217712588298988244869883204817221645369339370272207940322646903523344535415907788958518860432419290127434637510106222189737673885900991797108140794451568543595148926726485996240528494754809373070785200125594466100357176386987291183158426170951275321581306588378329491920906809144027568967656474459115386956484112180675078546845229933244209393823073507151475052135810225392511917035905382585818605248374666682121826177364161934899915960407224693933719107863585676846324050841811850571964142721257210142585294373190984842733114575741780933896814374701753907149451073145688879213509290643786366533865516497419428860444456242866390872468388098034646612037802533750199259002445275243912056564550065249065285488187895627885767613172415584767729472385122891019717237856666462009504989402509915018724005540164696807802013683305175675803163262505847607603364174512567833597130981082534374394869211267463462679013682541503765942119082444705379989541787932317950518846685945214050226935380748866680293813150843851894229682950528845004801767105236896052619040444905495130606197936207786808322121920148371353619979559837454866190885209147021678885363397882589632680104705098106783420596376231672370690234156764210564135267802834854918283129246821285385330367341760394624917385772109133215339505936022894695613251979168119667653418882892161790174552955732033768959430772655436447356904061198342385769288777157146004362997087903779547151994435369680048423730884711549501967390922005233750553288004298689621537801935024054895036738919847164123650412009266487269183397422805363207925303394730349352935834085667408858753483054578634952497970858310042974465350567360869513244502728853707999203872101133265653015316323020760152819412231894001606229962046709684120004248730852614978061437328978995390674244524127940698508169456607225704277853910446339223597949057467646303985268541472737005498240048800753427750867304967352251118400324395339905469522116644805489872754015709936133526648491557567191878376465950142997487128422673332678421100011842399071340089301971738035902475540205917115599363611867534037410487905628842845330592585574118637271167041655664525573015006616804342433822095746160644491867878890335359123114378144309200191591210177141715360837017828149744557061655052146334530963806911946246771817972169829123727750428737991453456160456588111232327230087879870066765016256013476466273235987483548080886497438217815626578295113344181964935644106541789185659749368907511342382959350507063653206570156060097383255093510398631194667522734292024362136169784221622554233902008378156641596898201832654979896798245769619793914583395377120765148189284625386205822821851853867435545381643433946346324399284345565918898854933879459084155188256680622515842726681511717201669030889706034025701602657007524275077442649628656309356508870850357084114967825597662144071653119983753595119015173271471635701669459738198680734542891398189656049054054137003044587713282514885210366881044165114244244600489370282435026855144221803125731782841550601778982345027928435674569275530755692503928270304874851940219918675032416219016693462610159769609793632164755733795145317356181247840504655708174028565277110472644708732111828690420905059695137076181181315821674583499256809190233781344694732941727502039572913702765434388321671626004792967167112720055263256465568633143135406566078372597141117879902304247217870792445642129201721468643134780829970553093478309744786429302452289007687871384444463511146497205061910053912811190901704680176036780422439842246284264675854734833427491692170922797812588188482921814372724818020543313156330576636998227763609157106403700482361891082200514426605244496782287885794616994114670878674970333981842915275582208709597412791871049883033286203562307123231580793315800835894245835391850561102209697869962772115364610382111746925165671252953744159552459999358042477572333723282331598238406780772645603863911539037103880667867103195476876671139574097615446383398171919856885094614827469567434463404507190363827009248051452225511377377998951949390285048803749793497734751842162318663551211166427621533478164754093252314231517640540849528540869538502821976662740204848169434279611076834095586333763096195396169926574049285352454085359781428954477588084967684517414622111993256726200506332559023525270364105015456905860215806489017920583090042406651922469971076634653540262161937568762563182174341936214714091946220076367946164496973107894212520278740439181788156082754376561549135006760720211776880338294207895782166259245510773754252627345162350321116335359858226077671225331104595624304396910895365266962735866833366916771426900387738432730418417815741445927174286062410981219620206757129727401248291870490927157562295352205100569666426626079674630209144406189110092110754196685384256055397879695600977626411418522375107785732744931690096295617525757476513189581507136656695261460215182304736301867846374646670615649213034047550130829934226967434601103612541339104744254992112326013581984730993784359953717220351837426870126432338970065707244596616478093498174380939245727686945735664997921556017395687704315615150438409088746241740369635478814253956281277359231222010280014795442111870467122030812314988975127518339989643899208571117694472293845484658705716393943222438945760570704823693439864488982343677364753054462146939307691411634829818019970265930948265412845952828366844261079714298649480342904562617326988727808949286197355908441498436948152106056856116114951903461717548825122691728728970130214370173121158512367798854556401426585499469390403872437686992208699626029381669907213591187613373957025238682299524381653967569303519169255494031502070384258849877890753331302547868937016711574948273469751570468810747485605334730664090041492907486894407925788034581561873462280753201115737660070499891697234490881771849888541208139516452713260546927250163718646489327815986903881035032835266738424172891491251333901799557215848580591337680818084421792491587412372236155273534149016769475674809691605162885854467135454647119887040824538228886907167289844807501623304555468293792043514475277090479711775813386486516924527739176997141949199024682233577427121141561705739311983360316488718225221559094787186614713518684598826373220113749980511642616574091044448510187501590142797446586679417328186879632995137872730905236666932734496059814111239720441022087642668383508421033727332423101502714062735591827824898949562022037714848030797107920115575877132154820447747375699729811354394617786242563904862539161064972005738219476254919359018022116174652385000385727968107309178514798953219044303152556796653729381654699152201110099570676796355313135413191102885712042816275802939677870612253495066255579009365592282519743155683454323951461093674441668208288702490515720211635694544337320631301008988999013837895045486777775029936007861558329229526302097322568043680658190152732585600348927356370061765256096908525708868985054731301851973341955816472080071798305676598938920179781585975317779781476009840391991549889633146913341130522907531335631761999193379935604839422310643788283896112316874267258435447187733416369776661501448879904355297309785643225354763290812472787519494702904368818279018408265350836942094160804998371809000204591502034785106094443382910822834174467670863086799317379142253756965297088879703374610268904454500215264283840765391576210224874397436210040410083070306403472049331379985206762180098721931595798386474895706077439931607757149959279324762500984500926893608276192055171657507070905122771848084410386713817210044000211195260469561301958834727194191292175718665348253406114674012237361169256319154738566291379562581605875401110795478526151238631466731526488073190405376251291586287681462463132449239278749205991463531507541850799472172221804638676605884943928959202298087085339965148590032865638532421169474416622321430676903047533360739493781533910346784033170338864450206328294484831006069195423480643174070725446235965148682820059862833872273142134509153029265892128355759099551299443646884978596465960346775423009122763207388812920686229474766460408458154644736476564782152569302755932978769922445526182884630407967928142452308630094542031343610689458010953034320697106274213479446467861387647306624220279684102969184277632069869211257872734599626871102274846721750417601662700259158710232555253765174241325014996999025041257267541845977835308940990481641943119012174602224155440022645477626746885672187488875682440951463512070687158449222805640783255281759646251157204200669646089968474506753778414384923599568239065851836650882708652117104006429254359659184549225244166363675097883686522487249215766411385950882124524882472893373214062109779210295712425120349408279382841788677821154654791615765630071826255145094176153220043571795481982169426734275650805571522836042031941191067666910941673940796610848592340990498782697250912091782526948807716786705914524616996628790336876812022722397155998664786728264843776399402357473382453030683016769240133826835288089256232048559600672279539778360853568607056058419757065516509072187851748604054063926342292472471509129940354125669130221623798193575264302050353591377545715429545688208948542866293384940885368351797761874929352034631696519686979387043142443269272769172262123767926019097604154086684765388047882654342489718046158507701459967470627827486610190567327548838328478504786999244934360748886920578207668766693782318034838103053826151146295381868345027537485230224171898538451366064607220091918163328612077806793413047236851448766137525226070589569304823598523534197979275703193201635312353073442224177455778367874405583347254646246338922400231018240177917722989031414259035549735918952393680127172127124690639744381410633820646807863336041903442032867257131359647383129371359578738276623478137218316735999975114556833651363814907508519197560929532316002488529944934614737414929036722943319802038027220205053819284770338658598854652334393668902934434028779729138847955076473637288613243660313083146586389872083156401722349598717412724388708675402910858917433691708199464122362630901498875005250765086444762233875625907827493370179453851098515859115413388957808557630032744269416900231420304312604658757417935402734989382202106608443053162108359069717840635561601401730622963057059418817272647447827354487839805955708979661644483546359180382240182642764924258321730578171838993329264521627494035672243494721619070003020066117776845953454536729332158087453817545483564933771864792980686467658097556898077165161354336735280837839755080032611390004085645302261515541401234672965252200440984600483209615289299012366083448679888094687125738134295005802227967695593891492423909268260316729095327942020970778186345716373281188817432757291581046505232839685311609447868052509048657083071401028641512274513031883233315428209673766254055764405293369666164042557728714354261825321071852216739360697846011549728594452239422173629651545509008704400947521805212120840018845212116135719819976753184615518067786555267109129394258553237980182834495297695196624220238909003641811106722833918527539359371806531046717065328537996591159287525242226513360494658189575348300294926990693572267347462480773739249305055867471138279504250930669074518582137503505624842648043287627415056003508932022118025199888319626267669271677376722258981468513941429437316611830672912590164449421423960078540783266798369445024518458260527270426966986758996718163233263720928000752596403965301344092032682520224820585386284336257796682684792703366509058825399576280835793166307462858576389572885557727756936973086945521636150364960131758097040702750418416053137565245635529139991630244706529322141839696004241582553592447972496875297196284036949099794606303490431798613137406354217826624471057536419957936274494715021459977585644860532670224965619280004479253737892708972100773394529476624490923881783951595932707482333761661937049025973110767845347225389454796465623127048580112402053460056727963244604691112613987825430599449721106359356446166367082251675833457682101973297441232968750720531713761425041110785116130266551691289903659195819043574987166144054384916013607101009566319821233921890983308740181736695912582477976256670357367184708203009255172296215668655839748675112291840163826350140847833875092503789968709374962341832759616406727022670239998788655582752142599085544147752180769877756693606141719553172125931481836255762230833629449440851541888549454385478023832089806469609580013016281083973675610139697801115881441707267610354648414959075028870913649976266964355942580070612299828391024815793667523728283309757589953220761984451568834650286908641726390480651493343723977980912330920385122461478130917972481268920033013007410671968053191185916631557429096433772414175500440421581786424150706656417945051137421483268523999654192277890678752954027916166952463846405068853155604220560812504225837573167390288633090650904372949810177295170284140598879283823671779543172985465839364429962093642597957841327722287506902510475523887252082812099590267078823862287966970073557999159907581084911753472258915464289475209177755321258727762425255716054800336364278237781668103014652047251558446371768815897721849343086504436533307148270049539019004243770852118775094758562649027479254767486347642864529633896629638634340245163716275102068163727814165117523881392704495849927864808872258013452346764345055148092492729077009951786632674846560978133391493180918042734577105455171097280818018066359561980100638434317001430525343386497510742408754469245407438889839901947234850707278150573148774765995752368130703072119872845804610359162182385034474552821114925655589401801351728862602311394122306018215758275645855594290664639062116352324155607037546935403949981004488255911734227263839518738627650836466224391355146004086413882893592158115909184917181917679450258239386615379343678145411938800412702810531967089801800808459169156273925058969589650665778786581099354377129386615805092284263295572825249354539832977663137703865434978080745564288068082976813089856497138986738200033225036581137460453270572125852379877151532203143888384566173360228058001653455611857489518427352501369635904732197978998205881273448130591366917028701161402176372306372993937612583136879334820822618058598402884768321918611956523756673836815583337197876978818509631681090297089048451685791045950073121152812126383302480135258929161566917205135287343695328919517720697889334610685567166250688100191854946656090860313508384885678069763946834352656862401441150543591729318165869007153753974991926604701639798533864844278030992513847738009750507901893232221469869821495638037720867400183624329917181098799745293118426599528915981714765806050013074716836705941481078572522810220314795263784813817128729849775256754792879987273277970788223876316384495219298889573803305987092749468598571419432216585075348272747822683503010857581057249492217521806084886930619637575198562631724765774110500653496301612187389418530537568293105297449724561451871994289424928233537076737870332184294517916623153988692468815114473239455339127149412483714457058537145373749244028183248133394255835047980963404196405848920854660371983456328129399673268786826193086362440165134491169126730605370036878578643322222305625850118096203196929310394406365435407854548308724471479036824838997446161457153292700256494433643741833147503046096868874382183219954578970409717862719277318342348227351732134698303409214512550922772103863429264563843632138457993637932588290120057678084675384863653655678542579647252323291127501152355840228061459717680111366137631085025875084868571756994141408239755705094516244115182633388856844487296087849100268991283582504422961678092219404993327369848841245170466677761052022036834429968546774368087530321493848260666385147050227473375158702469526497186923241767146904077394458743679739894822547827752672897553678587967619358436801087280263369703622298163822827639079201191258114841342997047907151100896988967267323248639558763322500185016188303871333837553017683051384748988990578433590636859797535569715721072468844669575916300228999920912285365552236618873652603739457174051767219656312013548505465976269916490462647718316371213181337669365916358665132546538210773796683589401831912056641018481696704039901923859993653294265690242927211671796753981570419041377975773595231360128368541322259672578919212825910673604312505112963122757567241502748994939563422785129469730379581090418784862109914187042562519609151392023638629477117423717806635231968844757971242007058468097287839981025718814329314541693355517779080341518989468003173527282203026918968420826216449578551281146881171201248844756008830242100423570745791142088071140292370343879968274586526167774914567757358366609131339316412160681611038586937230816087442695229860317805753099216981437480129607095065220119661014716372997698060514719891801895027685657892505364252799628281067149311628973439997264785578926441180564968469178483785602700507149286959961361714504464094995091672911116488722340867292162393392887183729374156320200783796274497546009898932345420807243104402992894747082584063895888501495394748958869166289013352465107167729589817135878896129062185441830361864731820539666828523129179526884732750431385194125950563196709897138297174046993094998414237671753894275754997345943680329394407171352160271575279090542999949892749308115972919416671773011375405419436911509444449990537586605095936836763178691216502450254726628667353587226743726266011980607850493134482708367158709718303469247105969430181769482342228776884289336486002257810918249846477983795946607578120372156018408919079474552725148128161878425034536065407575807848979293847374571418760628180254751392023853853257587651179652623823220381369072013006032697134079518987140459523373479557318170013895937909509902713467229834746369562860095987424230189210804684294821412733073660872978517598756077525567606012040477196633964323935728848450253241356095411930855817129605541734428474626117892341303537082475925009922567705947759930338262958137383897793315650726112196251680153195314175377919980807375054511426460426404651115313772151587207912671384200431270765190178630461689700163985554303240885829830231313916004226651484826788883721176706634230625809738786883797559081647002190486013417784758882864941074429585731387489352431878930508219770483637404577119554938032457783029525898113252642138418111219860451939336779214150232931366130496910856959660118576073058019068628074849517503491439672922273306482093863685529402715778523187859126541120528862996266422634132734857949780908923086236353539761895877947179117317996004528891983233054943218111858810583757361937332366505816959757276720284957467969530917699795380242248275089278423541582962995131303524722709905571201135445544224641623462245703962250544917928390548504071729365525022214432856673046093608103418073241080567590032471778199268899635960054451645467296550890198716240136557379546868649394416675014037435162088605003095958078077851402162213532011545651220609239373264408652292747356404579129268805460791110444805767004737603726752251520441886370290225639994424097083246381034452492133221102743128420827249208522579534642100778038339244592955912767664982361562904829109039979958212133437306665857184253392881766029564072839778586512638685607511324927696821951153593474339634475742703965053682287803560837502363929574108586399978500217893353080849179338891054809736023480059183225556302932152875198019448913598629034322186121376574999354202986568151019188026239733890350419030654029899086509503055904073039351351225528703935966788655634143273214537706769473111406256194178806240809880973266357399179128632363163015081264361808954798131361255689532615547586956494496158840513556013812315911743352133879173757825861382400856571911966891889592962129942782381628073320534940691722330925125161757856528871284997564211014496756285031112948101530110939239238126494264133238488705301831257102802408604572004263451359354723275979794805631460742568701057975901604528981866397987144813528158300080071650233362106636987080457633578435068384063706191482819344653421565569100496742442128920425245944050976131482850365581231641428985262914842309390332285378368652864578645998477063472284690445305427013265497142029650554738759996296171095787266235069555048834481173950620348738869360439682534149505722706265407583289273339731711610228847247421824089707564785251926905508866436681344506737748645294352022176375236818980504117739468485311941988379623546670707384635415641065413810160346840870907825948769562255097017503285675591992335714040935810306132769984851491456677321701928574630454625817026847035890999997130535339840670661893296596874743015301192283955802371045528840511675566214192331046849286899079639168757552127278294908126713455467964479938611958130192711393947365485117823267667246890977473280571078510227454952766142658145989903643752761206095351826758082537994566407943363944006997863008783722916765456070236532701704372957964896637562467745285972471746222406927062437927959242407773377460508009031142334635540467392543666348599194840953571553811409413446783781250345185625450804929236790410160446280090367125773317189865261679514854763197804360661624702854649254265525376992320320698400839597729835824775483158215172628799160665826064655770967295803791859646944425885048915088981175861867133561104449271062053654519241633162855163985515267699331911170831964420487771401516442323188626253679216704726056803438437770523964526557968001905010271794777282079454339422746282609108651327831246109857902896754824638790348834978259695208748090780871868641447763533027256863745470018977269220248269314760463237142453263755987221807001428146781772075655957763740905609377801283108418141882632019101871464936281551630556066428357279154716712210651073831720654572708685765388554029491773774472795912132302964422590313274148160867838966631337682511180459946548209805906004847276951819852598847528170835893169435512573707147705727618475729461940395249836380637400091468998577588463166420540681858857932097807361731351358318131241307337252872281178044651755120270348621966772080936548276147434879235695843430989140546753395636276780534645513161797518016105451148729755047216114325978262547067037204554758369445057101409174610643050965818836443501254386192733672662647091403885647931100252438735441398762177019257112972905909606201691185142905668883784326903163217935473088570643423338249225509078121001709717151624503607328339272152081448019411241699891419358547998783303371241844732987566056381646378829275972436788347267995941982099887277157118377879269368799982609303857989731992101151049443733141849168889483343693943986560848061883585260126859804967197469629787633629585944929707923063271652402531694426116664587078589364884021647211815993869920714377264828488942830989403859267551017363399913397000669527915994941821847131599587388709445349208293140134873221034185297906680469485483307251359311669874863669060390790643591511034445456818242644922448481934863105325775433756203688868052206302511963291973148045813640075198196539215687347703781046186613441355241255070966986786688465233584123884512602431007350260019123971426321915479407575572737279366186655824097482356467975556886761447387213362686510591751793892353678322769958843202059506702827779151264130865802365795883321034246369619135223668488412624711076095971916867761767559309948745456819449624578542762257428063593864980491067891432795737462017054382319368528060721214193786411162158009860704592629438061499185847628045365916204579243659827624025957748309611838819743053150210184747620119139487814343745609127358353970009183063509492912826597936654491791742634386366878694293710887840422319731059423284406327140558689186975525949391343349315983494337639044059664692014734971213907779063442070007948595862705579126341948674226737580996483152111583916074200990762261711341279340670531359282750175205920401134671747294777767365283288605576061735013947668987377209841808704806186974294828835280124767779634881813823612687436357683717769389730093925870877116782815614717746654108223355471198694412638712250343544921767112570502095988688701398407372186029162572637389940406920775835310630890974324660267246424929609743868272304064104899314384507920717150412152579924592780921126529364000247851335189673973328878574831524717573618344461345470702486535694044530950365882342831749495552025523102039498571429641051585527699915216312837562800783774611758701188750620654624825786606038700865843555705014097144101970547664104576327472336489990101902100362884419631642597099564360602221625776263049428564047633761716994535769708487141789647641928448337631419948792700893175022674073381657809672373884351432799843670443761205656011884717282779676858500802036478020498834273477668297597944143910718780886332769645570010833118992352989022856663187803676227295297018863602720700896726247236117093483169208050928271271472994840430271146526933337906526689519928744529069251325970100106572833813711960705164827335359945418929851674293889796187426105205356395142751260348641921383760316202800887784135120942441600701269701171853024334616690131704918413733552481841456322562916697217411941349473861025226469286235532834797049733135631606844749070411810041403218762923664405379006815517169333106053108187916141118545154931166802393803283472803728226327660356272291270791537211033900648538392714052584057530270928770202574575995933182633783316370840442784474849259447834507348191886058258445021946341449764960081756162280267439917589119013038308356091552756164015274502830249740825195035658543901237970814093039782572606317727532392093026934115842473344597876695180178636466390048754093129639378850475047984500559686092843546318944012522017024018581119592998417478573391312280772484696455416717633962187759665073463290570647488420828595338303670794592305393682403416031390076775218046331256598159008780916385446445540433726148187776016341342684577438979647304224672072601222902940919591890585891384177479638281205163565744840166675258152329980926785963556939428812685603079793540634404821463034960459259981418640019015612843528935024935443333076019139814657251293082172881943252898209049189344061359796548392272496500723447165488518511196231174731014833530740189080213527838328708394147286371059399577530948401442349143535104935247810282978028322503621907625001074252861007107246891339882353755952068776929948731236545432692830302069718963375618490914796679456693340661603227597182135338421396524993326554422398152878713982893056702424447352261334815300712561025467635232261723502174644690958598313582516309700924597424909901693237441640806027023108422420698284243438825500645166992522536084940984206073281802755866747990499999909354451985556203161462645268345319877288351772932470894848018346867973171382879627877803609849291814368788114141662963926314887849986021276766172322929673461734200740738061186063677215223799316749230279717599248389398763022219570311311408774175462867560064435045640222804553865079321056891744686113724730819538688945557331891560254509013673022986117411684953980712043467627107775955099546133842408969829140103879168428335578591688386563767415317960472703193116160965048381402899897485295164347330459202881022282236121779165989288924688433361213763944642071698495688779983770947333261851704468499177711610187659254995067848391206512537039444012764280673836270675179931213862560179025473054413814698202119970716204227024553555186136164266545999492951461074597357009640415802386353795958732376644112082741981640366383508432844305200180711782182252792350631456146376425234212917413963227310092384173213721202184588548748654283373675233133598191250608402693532746978649559131972642093502031875781103417393979274483271319640455891662024514283310799632507895279597401558215646499970375585066530148403964668214386359942874107549236260229832519521444242482214160548434273362062196665257917665126554291396275310295484103293889028045145840160726873993336785126472379473440575016386255562904238672856751239804999876224653571766731756989751802490967597303228848647767771368496214753877791784931743364568596619723187726439681108338882305904185510263468887625539914236592440245043852804615030933071528738984199680852566962789346393924469175462387647141928233039432746718869430588799182748742686313586263319174111019065080734839044892169456143577020991685562000225056754927962203825233597835786361842788415945595286072696769088091304099848318081967904722372686791871363380769151169414487814442063278314028172071079126806787843413051580053299444829276360739791665606034324175263861203367939800143243271453460968431695274740360631875580486004149553345554692758580734051262622478179681512095826583078615809366433636630760947123420667524965678047558095702939693265697082498716192305921001944119537012622985920185277757727505584101836575240150268159169219763449789467786334247896844090401533526668009818241877549694478548655226001530699219449046393158711269406143647751949539522893593026730311935405817654411060438618538394075239452617405793651745178004294200224197867773855146338898015554913406827048045093626644699495294488615482557131041058425877767607437401842720437954530618074532376713282316508793004733429413261354149823876085448099654737381980248807121202649740102936297441837897733544769468166875594405687566183637626839594307207324713796706195232760297350710599200431081458554024444359998041021273001198785395923713589917478885404624177789942182734741703650841635720762851618858018653142439477849212529213191366652054755173623253115794784222189721232137619740690777390307265417088104599866093246173684176503547234700279029839948950209028687857486314470350963204997064980500618565763744136986681094687283667065249430563612632549063119720863849734645987731286462545807412479043274672975550391204120490343020622878023215326175952507697470559522872379224330639539432156274542960438785541305691777762080936160790693515936599961601654043315745801531995585876366957863728711757966907660117582238251343561500346463937426923723822288577610333280019931326720983377748388105572642526091023926912368082504321429847698831167717835425371093911567371271579235985428964208972638604210464365885572720553862507810852873692024251273790873754411655725009356216842002753563081383491263276184488238426881698502762381508942823514343066322631510321298908490058766123910091095986821795336670389499237000448459233551184176571719985289666884337838070042653268264812260965503664923491139811135326027641629391002433128014990442496380186321522351654804003344590946927463165607417333131274384077149796361225492724741165850299676253428093384698489378105266179085207322284473301647377138395729724039684975560102827383737192572333872032494260283814338442439488267419678268659773799941637925305883635587643527811424161218271356078085811496441009057506669191625571517698318848763001209022371038110077659459823329706014455683072900286536123993767124799523502102708389283956528881876979787482905870359709470879971926066677454595905005210628741103352158426901644918739109614958968390164455231886866563078067581193948535218481039455205046254127921360100035067955421257889888469805249253822465574772266150916410975887054386098145272379725786803637412664992911712277748098331483553822528475982160116913890467718648137285830062562430677662637662680817690744342294946507785425608181445239538181752167253951334181598412023218130713277238857234746444273364835315928427506220193456601388652558069440949499492612341739625061041234391475258447781504143756723633853166912244828794486961826528382944473818098756307960689866904928580608738015803959780609612432824206876688596235283533519112991282034657344494667607870446678769022045579605690948069693165786187195439634817591412357808950029501431276891268466524145452371076476505306883781840123612512882805458684812745293524494837077245286333988975053213947690096954083220107543057906170135121639123877234946532411103580343536067728955471641610528607175051176226478607695260206638411051260537012550929746092083889887142214544592630632756541510217969830268893243429112462934068915286159491423161601863361281330945133841668503577205597633148082194474341130922197301762956373493285654936972045710977523234483340942033715413047739182083869387294538544414186124701528779431294095101443185004086407390170839019235762786277014280180620788850780548997902726948273006375466038486037919984826825376343649010156335996448783020062531631390700061542200762830245302544801438074080615897609739348147554931654894461519867636977316639627783822342446068681188701583773587914151600794312048164112575373029145317619386610995929101392604097989023795392762290531334243850841730491525756832331251377028227055552177393613998482852316808828532998005742566372839005740649866382497909392884894837243572579424816262551812703812323645920604038311567183707809743054142679581491216555694668515505289740023758006967182550162468697846013413278964094704758151471383322433655922329819051539704509750257159128026086718610419640110141639813063599014038829061042648447122081671392318122780505569336292050285847633167722506112993668368570706101578465709900334712025147850353366174612186156589882029996271090262222714303278170146109758159548806805265553545191592341385476477482206692432466091607455510289082580921551202646463671197304454924502889003873542392538515824353980272832365011018788337841934473428048630739333299616781085010227542846847824430076105443199522677343748651441375123768878378032343695629148793150041883316960852637796006578721016048100639190364244117027619143098284280905542114215382262151297958685196609122329479663340465488176603125571070579870361370874316684078994781455884354199828046226673831050982068025220496364776082779892446599899736998071954530571568174613648839540542879585307375678538983328045350075742107015986063097393235544560838658826820572203391650747444638053531709822886783734896469440516963786501478304378448713432246150747949446184642725736449926055109278588859103980455162591884551230185465866438713151785261095938514838560319489678309851561739998340723840737262003186142988150432586630963768635324935557149671186294123017682675303151670221598355582154585963575914192583075732281142605358880992678953374006334694570188065942209426693464501254444687745268791195306363923733295701134957191347731995436045141395870780055216553013710363009143976490354590422510101887281138007763493047793364962084573608060284483372581615657207082785030009347394181539690286649636577209254103338387548432941511227903142243299833541556163454619176950961667741683352076053090760387604025113904831203086631571947076773543554152088898724220890205728096266359317972541942961339715447582995291068841804770225985816322221916438055810943419540144138412122466959001971491407395001878794091640342342596199467039505010168109406902468704280419152709010106978068897080591982691895506292410663760138734386160819579034940748036789183958724969642269488416211732404356734746582102568117929979761195714106828851075115897882076274158057365877164915521016198943215797192390959270787177150812084264456401903656583992855400335851368908861589722579237036995814669355436664183930437743000202563138527662954982643251410791159095225681848262806200332765716165979334362755190339106319633718652198427384856719456451288856190137785309408835924490688528410624871283114701980931260660930036090272658550747402017793599305922921891184484266513606094629698597755648281955925591630862186449959607748590257790549041636469360366439775450088367397865892849062283533952242244380865538258145078381846385940453446869123301054762720511734713984563315067890553632785009416650429928455095646327850410161587014282330227005076921074979433689754704589639302841236489764023617729257682725188619356860638995693531151711831710435628454032791024286887525493104094954230623957925563065478369498582838769908627750644418996226935170256571716937848807437924624475343010966024444479686862158116027440832121889410165182893679647900190314195134313976046001426773754899680360380527393074234144513291193271776298900050112784063640496072118088899857639846639827145268193179067313906835102133892209479750226332106866650993610969605909609732223582335101703622948462810622425825791304578467933067101546650362114491571664897638067300438624032643526576972484773070106173726390892659819307329662678385333821219019538770964047964710622380187681987883244768465895234489287627154120143807609830752254180660019350759650367628219926687545993510413158872979900087655543062314554257773420891593287746186909009732529389793150680660895183754972554324761447006804048534330831922862156110070123490207316694759953985648942787300362038948526272036278538893052758888321083462856292904190322338991662895835077179473146342482899076850770725978726372088168828060848311699110700345350626646842424432037868107398641632636998091106394510177872375455069718160205273940432575903107719178525110315485575174708886367797504617183596441190319827049309853920660129306917205142644497006033421703925644285311773208800602940758485588003947036313694479715711200419317964184631639137542505513805642943534878544313355771229534535696055716844193294877799970437577678197011059583350557672462846791133986367041048172281281092134133699630548442536661528525797521078967434878129139748460287786199908649761958034887222026893951090226875376212326122493569519369122029940453043663411307904607953862837702319714226607165853670203299891773193552707606176083905267704940333852518404393736559400923648153118011218923495484081563423767105458890904400908822415613449264653205041593201353052853809796897462637112719241002365467251111971340208991718950755253498173683276319506361568872372868641978778624281335786175049471262261397688218564939043236918778764939271905399352468578539835054110111025997415225881213395246497296421389768943918737963635219422351906243883542479011691932538604859680338015124907854720578244759878945135772820414614090056783543655548153474599091309605354038969968911906418840177219040710091046921162532536706285549123069248021511912198353942427018803578832768532442979124472898332247863944730278072530406299129711143108736756248370718763425090742710295832099703523406551676915694333634556771552324667869229999691084227425161075592119218669394771409552242338059544319800451826093266264531853247014351497861833509463744472554311336020522778471268072551498438490037640181533393454130272923139556775796422054872687696690068410871746799048576242309528894174498832158114885745839133446559685467130359309767552430680373453140163373659268953267628569773452538785586831878665484546161906460926331168877113642354130181037309731783074390844226679938931867144922523051717502073040575979774206188588189312158948004769306226009171952333910136794996253589116490929551894802634750669777375289565412838802180457004737726710413674551374474763311424168233616417064000518215358144628643521828326135937835297857722668120603163734346663921029642425882197258960999340251892531791403307760619270063405127793361097024364315153199780342357533654341017021520351934439806637890648515488823063140879823364939005764606219743630793189242033732759956857173095083076574515086017240110319396122810987849216271881562457567444274108793966123445798909197379555436034178691639504135755625042466983836936460146642039012424034322297365989022231959602802577225601767560868366200105434348041367641454189929085932994895040666858485258348612829104632553409038754469106900440702300598253661192446438634218725904919970422687636110542349881767174690384227936156465867756271914329550936870532147523841219166676710224598719860860293391135295696757831718317004436681068790321811334308176054782321936830647121839544161367567391655928594192812846708736705151597734013221582138351933204103406360617359646585039824252371505495454595691322820458499580452342146805339279612371342117384107184479108705918123120788130961086392466775980890210266308775813101233694750634279499217383030703871983976941867798967470385444350994413371274088867659913572526544601472223288532721484330883302875348878248169011264450406968199814810338604956409069684347123652142499345801467353574357938045498267262618235364864308269372891852838755312708031707270104417922420333383035840931320292457695620209862997580097035699832996834098636335687398875319167595831817199381501901111600721579946290153467750720247908707952067323885093805874982622877034725437501424388919949718920690327031858611135696111664298487739611860739481576581248894101821628463965828502331892638863981735775515266839717742025085828443264873677940150986430169151642809741845635775956486066589980292993419557761144563855757443547340017678406608085849530755753364958067394492295965345578059749884218804833315192773821689633167122334498737204279647224904373124739146863995859791615178558200399507193022104027912321030266696994813077726543869248175462742683936207883563325038818972825289683364184570735284305597361237519965519007212065550709967629240488473124430114472527678662940629464274536857819899382727975399190305134680408192338498027154002959353869693940448032568435797038989611828212081869059424897107959437895278140128722266757658455552778081426835075385455036989037966198019372148208724993783683398047632879765922864686488941724202565598598939073278312163384461676083507192102212697277475474550823018479899180847984634894956335568067618543617523352665601862326733905549295982309800314280392383234927805516517204403879654696558078684167911548436589725993259295777200539724633446205253301656537010871356149403993548097305834375975479142277875097565537690438186199584296562615720382281696543533732185427432982665913990057872940034475720250167606901570827382989903577273940039530785408658138101272759138257742121580999605713146833117730352608551603214160789532442603337487027951462553542727354943858703066278679498509541128576233972581319525846067670821287741297287730261134929271988437489311180780393150224058905035921019680807109661431140123613213299044659362915411771787230675361851455741468346591248333720535803653976872124679210021380122219883033718142629679191316793115382729851150144423946844751423209983614765865194471042317116304931762320511962560505506335803544434522084068626852187029626626318125742672312848504504125256736227469646210194096848279002420367236541973004803123606342806439837518714367586706974228753452859244416417014502017895966975297343621415095574681299985964882066120367800563175113495781396095859587260039564405179733864262617201966852849691934780803258972836898412293844651414509684413784400501111244158111352394146670809467629452287028156196957392381127126881239294252819558599847396194810286394532060986898282579162573624667870562397978593947515838429992599492612060708611860044476771252832022960281144449424493062402157535283081139823738790295266248850740779275844663832260971179008419692946638434628913475028415830692962684686364825462188797965654286707873982030090926096517506878911756936415128988610535268500485954335020868875072412967267962883228816167140271558864233622688789781670348704031733931336862965013408988976273586314593653650272205270324284187968926243894583432030811148725508112811092885342599277300242114815706198633579422704981711224398309183489749688955381349279170026477410884628897827742292854513161689949236605402761599313798037091390119534570819482458305215923058785900357739525955484021097068705064268510078853490349353608684435712772921189998224127616419496914242153148070062478947527787175462035490463754255564386055419743709615147440728685709994442333867183651847132469075932961716914282115550651011679222279653134992392141395191540310831850715915204702436331896808650113501299653609958167848877510665422616311724551321866033801157438555256270380149774237312765958942583984937349218477785603452510050125110008846735039805492034279170799046094830363825594862360670074592818379753104978002337632372592094748688344182690117539180523562858139028783745160922254921424232349313589448220828852363324912534097237803612624193536940831455537372114444908734436251552166421430333443070906418116573501903998600911422014646386740134762651104727751077489551672697811136568350077225777470508481746430093355061206723856053271541014755155790967393707629559941840440934798850514851182111763099202577632862223659604333783183983726455512379861113399083943198726838181252137240025152344771091826060854900087336698010919486016810527685826732212918289322840790912424537681104899638711489046234292548695167198247500616700735425132034782959961207269511103149166004603536730506025529202560157231731456595367402135178705600964448148086216209499025655869185707759725740004838458507586323588259338763470894264532111638621880154971755013259895889474292250533457622023383296929834963591948975063267397807303127395595956425127993665718533610576500885333284144018019762227436893839397195241805172126074303630630051174945319621580735403018140483578215600939585699777734430320853414778904588630406559654919619604436146125362563588256130673071359874431086306278768258635302682132556648592940804436322448428798724832507278478341264426519128168099518291914767131824919331272040182446514775883311064858635295786133144281098167708669613831209009218689126914331105032515468721686719106802535752632659508257000602770604282586931757503212167956776425196549405529517846962952228102820973124403858356854897909905920024753913643491818874762664931080390340107100528118040826666749281007168571255055099574376383808711343326835926811706048956028508213181692779894700579417794999710293954970698374675621888903693308039641464157578851947700858075600586145456767404157710790193111417931197831848319874021717656822683420476665507814413235217663694480263156704520788956185840061287060349824766194836661194391495699441219057362013917788888885489064460252036687107636372321130352733591492998660816369747079332341686318769867935238398309771615908249887224318181683078616428137985665113204314928336259484564600001090925364784723067772293252873178526115025897949604105715772984997141847513356642987535552897452210554633760351265087610838408125515497877205889118058976856175370762112010579032459937341191115303108701768171028988652288705578386986545804363285564855155826875810031075824865045864268861269403821158462658633386763303644585270591171598318244268803521707633891832207806042762378528207120054940481354303828556321902813329584105082228030730815473727106702712642747189434264838562004089141573288226251483638786909717907405901586380947869680985863144074802634129071872208777903273643085310109913594734765204766720124343473310399447661985995740524680762840651099041586952729522270372892903206479523506917481266621991062248579470379142513940395877370520192595636987237550593709277419687115967575695534229311558752837112322930253065313102132016644635645718831872641350406786130907237216430463911456720503170415160380371924457877377060310912218427855765877406691366297520438372663331479946017674779365610706131948382754710225662405250256391827050512042712101095209460718376468427580274388519087150505604952132350608916632813564064255779652265424830052425312904204808451048335671968717626492960931293838267280904884022561394636944405273123709166580754592466650770637504562121536016675840583697434772649627982157360355025919973762523606210540204556132929671978831171423274457492939142511592512720738517259581244952734448243805258793989709849703081748179009866881434416523172583064130661507259443643674735046206075880718212620546977728651966011759196837118016367765773150910650566229688985091250951877678966786542829116055751969161096844710664209243111128694834247309737695105519495483265576734044902199698861913595772969968667027224597652797185941762264514857340740002975546115212774072450966770638584740682339421779918511818207815866307975069956320974098237605269451196626411522678286532361029951524627947500587659869401103325677915405901245072217258007978030699228442246258568461746550109158170270358653863638910877930741422953973629517818027121574086408059391830154068630629488873525231871157829293452758241080971051103516383588434911678979880194879246377923273726779533672982756308038450482010253777272986075834205336023495015762655870595684121767462928286126995402837256516653801398324122530073536054062262188078820395907546788224428959863083591228584225880978816095425148975495752008249152485648504288464945570502911262404108950651521130864624457503730053822754854334294675042405965616586134128563625607258037121507671383373483996542718673063316354764392903059391131012730950600949203183478814877017871875693357878876286991979949820473480278963369996026076049136329065474305382857203060594491752039507785541046820587587935388122568392829481596639599514768296499524187861575444877053163600698306001775583770786398760310196323533489455723958940136974868956817426265322541340590265378013853337569907524367035854412705433341299314047744791667976706588340017912618241586218432594259121767511488516801074143669891781929824830334406535041673820739580037501670248802818412585064378316834221293431873742249742595413324003545815029669902663280345117402523467106743988069683085086297324550879796217195917611599645114540400864183247527572185902820374206992922014904641309202022841119297735635688668995013011462056768633101687235595070592176771478508077532944365309327054190796299004002529283336720608430765893216172939579681718804440447019052969773669868347996032452998602659973294351507414399869715118408693160828898895427946558843253166470884757360148245038435330093731463080297237212190141408732787479521184106507847044384502388513315673776668144237462879258811914689661029345571330711740812707736607550273864924709663312970872708513276017910292366992416000625514857978374827150798698391243369387522670314250161905826583535484529900688525279194119311106502258655309936499870939039910733687972816271622464880596821897212566725946228280190227227846336322251001602517238235820310919657242519653254586612047055182307234219615598568337771448875343688767625193575380245280125459566336980629505351855324371369395307702025115730902852207309658106234216359828839613089533988406446875296127961993319913334072392496299338114121085712903683190700603162654274205597090574507051917682799179742997446983598483402856801832591365460993933917989074288460995456203878788062714078924059194050827298793939828022208632855235278339756501889414605612979399004572399493366601722739206003490074561842864083198772787232607993318899275036304469905275975261233002632872126146075644885609879630565512897292831846170515827136572935204436460432886509911128417088741936448610912904938257540821658586105446944409286480205329444497569394953532678363776019799404891064717347680840843503364625047837835912625167786688313234422735981231894536707141576247978932955162258670386378105426865481097933631305778043310325769125803085904080689088265647406440891877444451815292907037620236060182679391460514002553927074510134986215771637155279505656996241055190762428159416538353451486104199665149733856381199947311785592988687842656288825343262893457666382980260383287789512160614537966451640434762592050431585534083513178349205682385602362799754376276443205257944403424679625098583881087133671712945357250555597050109109816755202336099119760231085215203414246321068834937061455819083121714423894417965980253214964791266989165678119726038389484082112430460938376777678228625903650566990323724929881820601504649057371928143880457150105069519325366834390335657338436528399232697123301281354232846195379683198518065300539704787371371766664250214029050670197350887808611822010714819311353516230453922859611758620871281647421304356590701149599533326268507766220664064331723938259130388619393779647268265744511622257483763567504674886254204458171639150262815930515097807887182084824800374780874913098348515942162686584986817869381541416142997923726871806086017649505703850192227405690864845611141960181292205301685869161179069775653398339270810920399918443116409023255874525574474185270198740942574759974904294046897257716069936900364830556468591262434362655252482705948868075330162184648537750054888197297911836065397338792068073613917349651340969686900342025957232789996897399252076439923133695415499162333517149440512566449841100719261353516752733095899922175059365723532071037322421078059132091813907317625153478834786242211691900065888067542065767659555917967301769597831847032508820312340577032172351487674305915057091990981245885601717552033270283464071193139956717631257488649289004899767672796129540037093022485344995652283758068086362466468251737168416623145506951628894262062471213446503206362676675094836467500333496036943013018783357762255381758275976517444082446983926579368634250646684195753560139260680245468863820913390173066422568940022778143262749022994675996188670660675076264094968694004669238555141578378907919860123867042053593573105595305344140288439164018779667942704939058205029245076371903785387628538876457518662956484745499529271123709680100820686577911125045716295303997601311188352130880527355447943999000263376705261824277129525423382901282785039518170794708336300709015197782911783602676652861523022422323010480220697892134242004668409084723399593113151965850574117662398745556116403387086975607804714502172734892505004621080428518745658652286126920911319913416536531195982857046734504644812334269309478112805070260028207469670648332502523341637338978276208418414833350452054548146433079235991491130079294388516420310893643448690918189331382031481584122002611120900985244227229519871696141181530273455300414678272786085152890331970875217675122159934572799176299107964481347758544969756724139700970678653913816385261348151576648304485237260438916173688118212271336633170668932683249715535973726702583484846713190163019210785706111841233777289159080489740501661242245779073335921988247394736689314455906927246824676310826838928272071372295094434474168242082884158114942755066670919561921561066113793454844864995789509399962310728480508996259002373196505290612625369984567919680226540230013376287949853877636984758814668555485697323322887845717673385452126800644826178954928751167277602425664432252723656740640796904709731772686296453489966904433914602318556357614058435673470546801517981165578114659972195112161927894435440392089688395059142879919960664935819876069293487056831183104421505465324802987075394713754381797014199981124997220590974335519642495721392550359216920951864616241892928239325896007752473736338294160174671297249139754932644102463526916598655777490441977223905443436288740762030972909489751907481018581457144325944776558825927126793912269761806381522138560038638383705273968273896960145134590755213669251522081056892964314330253675683232457432329231552969310376231713546704601701630257277246023952548679117933274606909153757492818060853975168905487056256416766718934569738443437433565419724239297924234152923999214040215664568112704104004988346317752463340993568967711733566718689387987244364741294610506944103719718524249048710598534009616893391191846743577676618322301977478118419567368635723945161492306315981031179656563366359247700184488407807763618462379173309782390258642005464361675634403503715210876134260975986093252449001298626715002829368539164003548029254900951294529102771792613330777668854694920743350269689517338558516267032502147790395668704610103019251990927285729046000367836632645616879061508945948863207277935404182892215151180823520467206303867755166970225063697231048355409696877976924083050029643717575098571096833314294066590533774982475921292639198440631189893538660349172195017678397142688297290976658416224530371509222371301007897096228971043551424569250707231964871107637050816783827649552503268751925148975038508018887048128913584227473658259579336291402510330799127395803085267151659462740124256479804300417547796885671095564934853352722916674420168245399391287535046768955834560974191164523769457927444669018479784054074915361251023545998978115529575524065341507017701132785214646279086858822010772594226988608221522829323835664896159228740516648235037943417346226802590192067386432876577751170877033885983261303342556806752270638171692996526656149022731842808622200618203743133076002990492195282793326601753222705121978950365557223932885816485352604869999768444120838675443517786863620422538420192966301185373201022018168209371664294118250211119061502249579410998289278711943281989895342674182467928975862114026484204699112112334061252971546763356833957173021234978924167923423027935659857195209654691224360057678471192733815331813118538372292141182412841993280594346899422124068934214213685866194895736373954628151421812852486494657823058942737191783914701922950436549213329483377776567949725078535512176346771282731916499539219205282606928466605813405987308817999474284795295946629879026720176488905395811635654425490120391515207888610007280484626177658861368036152336404787690660814206900287203475526649103133850890494845464452897266100181592896801614305811566367759822975563520378825656828724783983602545044897773572342152706696786994576438795111820078505745563355933573170626906941587793198626014280537236798322862615525370499353376395978542579118074914489545002775745106750098342434056011708197484293406471420933285715071712614453188847610295274104686887591140892344685467908742947362925385027452818936810887169605911381769027065480896131039360023518284298465854420268629104328844264462775042181702858921911039620160813430421771927072459975728726877176979896492745457907736271217873224053071188386693879685784950818480620603860127525153136816863839555515431473900150157821451078702989023515083456875623333937506386962093998633243575449026898423051629304687870283938401800719301760064245643231560990166697634987605773617755500060611414430377634500672585217016162995240015719780527076377514813277241380317231120879787100740050440717217922692653775371905627630365345193374047179798217283921187573451833737277863281584853590817110911575601960115980387716718911843964791603263583605713647136210843387186579452979187795762400931616739264006838023187207915386043110958226625488017859832407752883844870813570684729834509499119937608334523289894637341974144357447847034745034537351000835261569822140757769288871599400910914853918399078735125808356428029262325608237700060930848989892742587304416837139205703749675097047674351377745176219501079329939081093822199483820771369654794848496187526783348496719128045904560034489345447171056441174089136339638403606811004047839586491404121731282602033177964866193866491489842129483633693497107648617535502114473578027281721473833105044001863311069581952460377861975556300783182685673220708974736794092078069738131645526213941935432056338912892236211446584880463429267133047392057297577480346954388864912094222419087284253854664233461003787237991400334092665150633938553267041358630680640741479814479912456736233733475334712182237690364825901740577143541356860897187291313200310535885759757459877954565185179899101187461823651948545410770101405929924922024716076855515166231484424910996976812531752214629990460740254415893227920585441411440786810791649622040741887709638597859653341470777266923901529263198967795873192434538001609787510878176119240904646374101690040686324137453521624962201425306397926295324973981403431299785830755319525013059688679867255371772893648429288101911315072086360121663403491842625728468444952612030413355251715444268086552752009756707194405487194941711986908309463896084852588796569274726047161597485775496096038722697015828083757123488603378453500685573254949297629626225357338806113769116683052947465099413369975522678338683617276107671538410917668946019580961214752995617230828592550143901936231709290604386336060129522613972190029786573789860623745491856543258883077012248270762235049562644060709486022924409996494833133826656373670363445196407906408872180992211862274791171284353664796166307517087853754257653834362850989150619170943507247443358296346824664228109171859802900763680810165848976898478035184547610565038688856071415142404716583510479501975307671820002004943548124885606124869177654874340240572103110116563848932267596631274272978005861883268983607190963990602175158982082173604557475999726104518254935368859711727999905117517134473505441359166645601129155210533561390067447310559299703445028639699164256593562568026629190732563922412966192292768796756732083764050663828890638572426384591996603383724939260881842463188351058846885434262404507198590672943367306395317415592623432906914607227249034573137306905118433337582048025812408338820621660808439255827099641076849152007695088442640277751072251124193688642961810531657241777785701518900615934611852843705198924459881104104914829783002107711575990975447323340994609571257964473287656387395154027443099927496164383254097899677537645424176147794898266707482909724313395485476344263519288033814496966734595700910943723412986677649842092892994551975979142610859200179979184916613135887430983289720600645120817515568890116526921814635200889115477850890108624392653898058271156193897199074603320153622989726746411182272329416922345506922525355530835216105761566533022495549712557172669207965907431240941995401678489790383333756744943212863604206347888888347265738190013769035368484224776140225147625640694984422461449715256344430653127646779975292159026881294002616749393590411611486402449907019037359059320721034958745434163604719656734892454444542291757239395128756173382609640137628200611410567398430236090125461907951790757656245182141537836432744710130436901472518406348802369312027898214884395880013060590635968638041592695392211891571066023666837473573203093178652321747138538994785692492270005331211308809136261032543957437538737389291709638180398212264188416359749775572739860144423212535995133231778039555543601753955477610201063183726283703344874336639428093570597712407120971471167162227150143463836321977124656754037965389705916638585896137398340237968140418560097746848366620425364292522619234628228379056908641586455829334220275344661889902356194685906012139638131209018292804118673550205967166428141848074819552669269665845067048108924645944819118215228054141717190474707229091016962440219979821191537114896991548377480361543476273833713385976569548203209663894091128806154296972568852679394435017682091532928504114657242316947931929176596962342629785935742681727991282628834949955024548456076465241044071213731876665835291495624849718348791195778434165377394852713613138978121105234489734112020352753485378421510933762575775732409754293378728373253225680781131468196108975430336854794509491747390383190084270374815201301727385877891480166491959623002335809580782489735189291448874301831392657227182671968664055623728954343704303782223226071578632297583268710895690013406845258508581607817358126239686567203662569331371727141655439356703843729409345527480409131763547917479741075129696058359433842595911300108769510040078761608132813255458996159872376772979748950944217618061121147633322208352343429612514412253819014568696768274833320455685769272109246654968639589446358489609703322349094337709470432978729863868854358478402358193452169205725595625625668905622967946917113416935017209352638302228236146069142890919558808434273535327370094535841070185673979089343116855145659355983542311757381437294522668806687943048337074713645311986770776342118924556766169931265469118506369513319011609665535204167244472432820598308895201121839013128809129125996039419098733702347835681399552288818882565095501091812162314294222766088562432977819465246971080188953903306870513766509187680856767736352618288772719412018473615820154310527290687469153671035717861557765173748053715021055685033286498983861300772950546956228012126593317300271378008191057287526002355068837351722728566622904171046637381803237874366016669256999257565089119776483168629809410704718832762570633965920781774117185901818362820871901333375909638613990641275214072153058272147755996802081449088776016237180980196783564227432669107500942199166408171348305022989998902572972875218236121024151228639830117156071815379433805873187993268280788112039116719512218612153493602419987439190498923344515204915229668763900745418192034689603802353362017805067633648296135028663223048835643253471099250632116599887821947347222068803900649116394166997947581203108216757654093555930987488269360618651770351635050346644867952298124597687173166829036896974921515361807657351058135455196365257195149901559848784920361705565719178867207713642395008361964768229463017249852483315024145907000964131091696793707575632434637829282250566689948802831834046193236545095297964601087944690699522919462410904032382969365513906745424914057116595043118217626673886733700995778330733021357020370564385298784727173654532970879139071029810659897066132495306240766348638475577159636618725588354231679674855100573249307177673538966398856610616043719359436577264186610632506070464646228315939272807857701239322247910024757293484024790409712121524165915046582812926017491467253256907816619678949707592757634384730466012837208075856054135801154925534899473486723076211711890174851266077957033207644230116832183138431898263569514304114810722742049960595395042300423817269809916608877987155433478826180448582158084198455761940475595060738648001532942277298961693056219596254561150922051265122339858971160585662706706733975890443138876695036445582126192621161511154662367475523382215515263322917186533080964532180025578273057159790852875179335920645055683317081534352291131881283946733183236916270912005404380495613610413768171227602540120127191717364892821651147398587904269187003850092402664834977379547073859966569174397604106613424666577725799890696930261154545586895319313547614494189428677750797460004603724679392540796983464570262493239479862296627172938738434403128003736017076319856480829380910394141927270901733250036718585851433863556845606557281228662946263360883158852230203460327524044210231620261526615073099344286362938856043578037621340542831783582339984525309155103999021034113198076549578845049230230787140040353815361085079226907320006183245809698338357847950225503111549093095153414178481712361297619388752734012348998508574795838031512048551596103794035641068743111295028097812629936837807206614677548469671538780863645158804290041864970829309061419472738916694466750666933530463088354930686650739441939113254327114930089876517641494474915075645693464464298958955498912153258692566660200447128158496286578253855840281629696774597230752094739690741635387561476783971853430040925175041692061876104315876928902742853007473848224904062895217993219628268172534598313492296025666438629087375752020639807545711108307325471163388463100069085668728345409788969554944342889274579659668619210482489689767802983610139815565099199976116324627608207709641769572974041112774731164904847386192097375730283472538350623899032963498766291861199416379680496259234238596903629467402265267970351793074161706792333759275653145073259268991949095208481983658669503766114896400350781091468044047335854181568607633971423658445387617191869395150406575154497112029808342094105599433031219115067416720455398907540973869084110274874241794099501873558289465235726838307358158600815817521995242759441699191133495267472140178227050080219398715021035706463309021818939720175549016377385676454596343652509517624843133557659054854799707860677488263381728993161711489197347375652082382628212168033550248640019544870818768969598192456221197687702291840045039248685914381974639600285007306505041947714490797820805222557642317753085590164692043147062061492939251307060440991647818070678827265206852462224832090681607276741828637240739089710779769393557372361250116485630973930709837439546397012429662837209323666643953851288476575243940924416522353584442822848607971125281374673215705808283844552885120243701447465972648811633968518878306797721580944450795728351052346203184905799085404869350371789765857084275481190454592569486124066881469237470518677904317350316809633783088254077917429639372892222276053376265076448876916776814234801942653036977181919815114019137482461961508393364804744781724882467351861941379481965274308655659465253230159744481309161193325428235113616928509410606805123288431296242659647315584500236552868529948692897203457348960366772861264489552509371837266732025363089265224466812765658174255266398357412719434809961383120235540726926883639575557472090025394239515863746049465386488722688184659362127639603495095506240322974784139337435485733616819730562957574141464211037831377824048384558998986123097349362871748596514896771483125165789816426086494483302816197878416088209125591716275580725842936788024377857713034258665780435837587638417744209781650354250802386112453579378873175827933826972448099561047175324319859870742303363739530161399854451025519575357229394476581128321510288413935212632812667398412637021380704621753941062979836589367651432302144700459027186954108100423927922006354240644526534394730319420049040070570546970682386974888620417046977561755787153821439695730493261403499350384658103198901429003391192585302165884137879005791164750349559203324402042875677481774042257634230978849858600191944461699365461244731495350791168796188976689963032026434488634220473800855350217048174125974080557163285323884649656487863446557726705832862767315201647169290648973564155993004814417215449209840161513128880410635617028836464985675486284232081721907655263792120292130178093677638339955313554428550649777379991503815264083305449310762623724694397554353889175183379230680787903556293349844511063443647895345631490170326521845264136734258570371157001813241743437198203053659306276052522146690683268093641168149800133030419028312913785807641835384292293306880060850067836907389424543028960092166862814383470927375242538116383165599928896602377703073609491651201263316233111894897648531013540882918320161456374837638252425426996390309299195848106669597866724584764629692122118820727885507273417920549110802653272146174860289209665462062237878588814389461684134015132613138221881990724650261648158592942734635622680342708100243286155342262631489121573594423172209916890279133089128679333053423355480985794562401010216897233276255953224709085553133501765939939287050944457485090733430563377842970138600746096163832966247565672805159181809824453972951198604321857084031792963502304538834928586078249123956098420437975406785426839570945858040268409561935307388818177655181259090118032127952066127311365789386772944875854928369228541723925260948821487047274252283848081220763042829917887152658154198945748221398308150051918707773478941490320836648207410500945342445998790198734232838508161895806620300440044505607404872647280050264475829212512934523050557128995924765175481212025383932127635139999754976663533204823489378594282203375552079062081340428353990544452604272236073746639788096261437631174362347888949889466557042287801596134975265563441952534833155588738855757265490086125348869105013316690516157615734306893910914659883009613547817847833504450469227722083218260906122964060403470159752436324574147894254559004447297975600876059002868382357911844472907578022330682267976594208651433702679828331573060616487445571584285975286322698590099674651617089321330914830809977979740386484662725251297338925121929828584825977759331427372146480270871228279826255800399922400288375772794819712191047918270666051511423374782427437973596804979306770060158589547121656459785656346652408164677588569000476692317194101679842028510567110149616691517662329301823203746691858137901915216207345166302383136152945364984017944384222955832666189583592296944444994032080432074090056648196124902425187046110526347307277915793053262194138514478313937968305233921467892779345111741168335738059332049593062001114071898125883595943828421589182633530716060942066920704406037014075798325523426442851005770517658244745649631191487206453287353865838539299366836375681808808427976658149853148821359194608173632085190963700589674501275655288931857668194265195150740208684530608984744009730325782651573100678750721914528599938906626833381324378775452303952523588328324314317183391739167987100580786066561952769871119001898997906140135317261696001374869143139625886322872362050953846578237237778686436164596533851759859962424777510241355989031462986634778961947287908591443982749514050943242127549341528614409958575010513784596952024382229239514335546395407627954084585613630126787689107592129108946493903864050733290787025829171155890052767640970809315695073670614520260114056852347972758754287720334222152069970126202199143619161612630601033212753548031893507881050312242861214115243017456803540031295153384370072191690415148423199006667513816038553166959807774263684232325186553705669096030367785647951677897156561185920778938483062438271382271867562612882761989976692998355682232436938894246553967750574835229388972948726145434777058981998289690931590138028567146196532208391354588018329811833379593152966531366272213057601280455944238830341163136970477318378108280864281819578936885982561021189412405543270461960085992844848496406234720765864776556634369658083842817662810901647538234510882528321598639624447854228740210883780925189784314419073409898977361584636836051085039093282578537322722426207413514331139219062294434588780038584420686462011628244966996512413841639356739773357073352206544207407379920006274550593406935190848780783544080209859852143113021630827484826195428323590692550936253322812592573209994429965605514468640771501664319772144921881234387346361051937708673368948720610612254913576427594129051916309801004980183957849651121370435824813061767802938040983348449608051709246987587379542389055779687368349709317752011874983077819579231697808873646826647209182011753243179984188508511123853969289846314217028881053788073832442262733266816274289775411389133997652826671699714637310828936205773134690436310538889438780639863150133614348084714934274210649832646062708498447789203574335360881952964246912785487584791466946194305210458057302493669130230772109805149493534785099409704491939991227353490662859597685727068878527814756428072198017302810200161373542094886320847252033371380406290009389298412538178754999992956994608012889105994009701836879066455371400473750895690507683760007626310961465455781142857031446434141190907612684916397740535410545525615248879852231638234740473663298281526867054157517051260590074001009778303302358213979235255311609463454585245555471628334702597915338051624847355995202694307851676149023424234448693844418849482337927293239249490890768223089341124892755048228490512145251485880728555582344729646475673106103322019105763743377363543615695870212386458554332815107874194229041189046523703180185219068490974832626115603391617551320784509544729600046676691182335581671716773748413351055078500423725725265388264863981203670254066031740116727172518007025551067561102721397151757824875638305387009836960424671533920196280110454925879092666517868277506577129090768110720863047735889532419661497731261195393008913807181764696282557400090101454229753939700295048550041959910628091107143340924034315722829123281386772465678933709116786212840148728645167236400493135159162945863241439761149605577771756483987644687167812295129228080880792756961502717649729856755096377573012041973065010164184852419966211136289839214290203958315251502599350537977619625667730283019762768525479874713378872263396981002287890346233127804221019865649137161332561228550834234668323199945346111151138845347776249905557199321896462124999112115245440430445260625428852824696129841869426866410895261324849564623455630142018363983205613131326239852120895306946241014718557318607611237017167492178697013645975565395389983018632453762919839069936165164673222438811879269186672210881484293443649918430708918645898709946519344594666430935623092751085055672992527462135073335772347601452979424495599037863652970592576653930704025411814369387820748998318203532509286795600163079406326419531116289287687513164235220459498948750252578835314855921038994383244685898213141689927435796925034449293285397748656574960953763561333306491044014403280527043063020071580469625277466136415812788844664781250402974477087433884079421759763079303488965644128621943808937570122366624505307790499753974768978152665455433509051851170290086755398959240685187198228490183735862130480882643289512719801934421717371953825917427925631512817543957398179297524622020470379389785086805157998066855396481558825628649847272985442359591560135915475030580472765285720786246549964982230857430407660651867558485837269973322051342283690592406174801044042226283145158204590030652408006507161031932736606153511911278582552008403540010874081337132851412844616516765741600948802930653376248796723552172546155389544627670546091851773719903005198079111367394524473796952776289870921187044891307631776080655797906412063558368678174283769499464313922821358194514841211270182468886362718054335719665114053712717042315954785471882796243736226485897198352348170706412718181442144589298494955266410787550238376611848642122177353454495230902460226691187087267982847768009334451308897555319848131686882487116544964059930789368454725039430895267008647423421400990288470049437276833097888985836714728193043223949942311824467864906601181390516458509927894585079798656974245282074914800278323009043527478777902577131316431326330810217956873824551718066779947422784954288515681035716286747184276020764504181083915209408867568045346639626029501128709881543930724022958663278996214094836572322902422502996128529225543552838406516984514448781460285819111873771615358215674087561063960752666268305057824944256404716886355027712840380180108992760155495875620805230376080673445638649066122185847642717505636497216768958725419939154141055088130136336717759283377035558614582890594186210597592632954075572487121863941087419431507942178384693404771192517740016279816619528569367221884758186582821214070429248135462551133367234223828186586898309673987438529315795783205257162370305838524235860823462679603914711394181760487866570012514269845324154319167538890963686459568628801582358321992943461916518156174834623521460866192451330626526367256718611460894145903316229130238412275079437654612722746541644540900994498920488217679313640422546375436811850673426850698579500286550624902944948095197812957340077423898033595273658980547398471670437651748505787890004538757437736103563520539935604247075981380493547995849386093490476370295557028848932952948687139108516390273954596065712558894981164728939660705959452153572416546409776827155819548404045560513528248105556479295489042461552724577569032102941146524850479239751222459156555229827077524653904300965846131480873953289685813250624497855017105019325412433990985277237974979299359130642265935880815955206956813425023503158693023035535219626707729129556695349837455817616377747713485441035080271310319381996650596666332874687385717910119839980406717362659477222336303979297908368682897699735380060687925597369239620720593400947541995406307722004331320382826510975111608690510175120730705375330312008038086452817958632101152729285890725667021010465980606417016693881105878450760500622469705586402441854012927039431804986412222291079857490031974801773916338341802017096216645224710033907284663659236377082388436562113908713704307354569154926927388579971356468550497710586423639285312453448971746684985040235224339456072518882582099273185243324765712598524228614578856282922406684600421152180112358864658655352359587648361572838902593848019413891201064582505064768472282429734646419698775022379551596335426302382421490592344585399477268192685854702309839404204408435785087326264986992017572813434705389251121670467298207311382196130510670429646094121537952902496020231943793887204256778283984155432826458926570410038365492681028258894197422323725732198469327970909314011782782341420821972709892603840603256529451524926688253556357504693132957497691923891442872036281743224635603926170437979332833271479859009243408559430850398009676205520347518411710384260663219988697185883592807402775775944212960968961779606797642644236144108013909343883012741480545342049981240887837132595247478177267649483445628336534201270931796431952265078815276350937798261290417364686024870901580315187046011995317795177357652303313141602721158364573756783797338760633635362662394067406660813585972171157345923011484741752481015310179533178675094741308344933977534558382136653108013973844414920074866210206630796553395452856617584067839027929881300131774469016335513275997774497248939771728667802266071467643528939809509836747736528253786930693625783629012317750066385505850755575917120714671021975351809677191755648375655317798373834033688589598760452755685594104657362340545367367440176699795893297356657449762398285589379156562175823841649161942879066554307665169637997725489674459480359326437643408970460252282472430694242539657561964289403356857860047553478988315765636988891783836134346439821201898742601472014542208703101171497703872093262002288511930869558179898858487266751525203471480009236855611223973873390428223823173404857509668301111367720516874477563390599498250712368047858530705740540349029982873504146177538241960519156314833818855404388056723849073667320834458346688210739336190902712982585846902620817169467477986855372770974386469380886767306850588885685042115470318104539618630399750402397459450119164037474301924415481161518246225583832278199143904020329263589016192904773428854108046341081055586276767843752046309086226415101896289149282947096154566660467516846503203324701918046605563025972384594346204209889795504320877697922145290883184552253441672466754550030707440377086387510070560172362808281555447264377276385265783707822597142374501569146171234646617041817614351297621738394338074903115917683070176711798652730171755959061704318625052164888406903036818036915843779892360799441348967446821056032026024212072907200978496977774556316246287745581734849722872369458688449494654331995221076349040153613570837538468464423903072223821130498979618817180792941801710211343430933206485594816059284322115310383447913215459407937433279415899947837006584388530616879043600055578018500639028318303340508261265910898528267383472149925630457612871045288231308621913080455662497252433143075522538817137303270632948217604062777739336059375196987729266392141346404260638284926592590802421785242895510981621611465476251845273303748533446890705047944824713927028449077494504660930707611654501902622942970209328569158261128142226458558283993584927692415184276204925645152631945623845691867101923232319547607254878227575087107689803375792701219843549112520103966477380944579815314224411432513809511596890134897680123950880581090053872423531173637348550130090288041736279115741622681497305443918398537879390411778718131983942992572869951153907595617123193491179082799755553997421855946143695070615276811605550966972440314724524416318133841921724259421415221379865861780601652703807273580993913813874175476699255341062275826745681135979993164983533278278254311981241102306282861177011267540478287264089089734899060524143953138077896684209002424919908953032890620440507100770375375367707350600974580271307656402498705068460747863546653310254240498903634628096804485726336578680991058778831858434273254582904833190213918398373657707611209198513980214453325780370300896050385881023398170474624118443932032405260636615875651419623956757042986600217738492466424206465211772155247794484903728006943502478167163384611496425334760051366602865855733247165352256952782806885572365147684456270084419262168536525297558206257819203653138665480854957819016039832001989711637372618725557045208773927277545330467843812615028954127220739589066884143906757300883631794933272307086831184996173300797463736852299326939803956207299976160178947759775348481533407609169373335379672784409103872614003530228002307947444027655733420189963075239773607584597411000864112736272052902695083578927682455590356666678362166625858067247414255712291436653236133127171260210229689580246835375481695506589458294992658348230500393806279720898633878924031561935841936464844606080716741717045901336472470686468777069899055067702911150376752303909616330849937852904065247114790761709844639834782651748724786917536314408046111535989881612643925991360319349694897383953031510960039905797777530271443961896602414048215829597769881224423800354521295450150423331626834648170894350545286465863037123849028535294385473788506057287786917689682059578281776242646752748578954645445923186019574600168556585377257100709587693693002010096267912956830818064105550647106823320566946052418346156696107311021537019485347481493799346539310538851763528215940344226163814078583786168581062813441964437431615346852181622470923732563026663157866933654482472362405739358352804537865281214455607637213854738731626991803891578498912699024805414256673443661899064096297807197184008626891959863836646629277639509136692285849846242348771625167061003020450318649504659633516036848801935973724166231930058723860977724206009324175123128226284227515168180862535841116289871615931034816342412261574153762394455729873355285878744030430303512137000004293544734934803126887410378781538509032654391442592887581032379931844424835996299310389509079775070332469889648030559591088359634081061857228780768122354655551508363284611213447168751707097306072809510184596516034149156035359113919538722524266165057437734312205714494069209624452703512951670663181159345970136077507052548539190774766644069578785687306311245989744488468856455610107728172812824716051900133450887165061722466917262582050345541155311957835625821947528370574950191782713590458143978861913972137865594576426917117640387545640896015052545570843530512708116781071299729472995530567923950986495626851443419737439506363883173126212493101219949154501772679018041861976171655712380526384369629322478056416390185786752798886945879677800461013089270514271196256390319905452552023294618054729476271695384184795147429686828251910252579023742856808894743940364923126168083483271903431740570064322355665846808009877290005159493749110903635737309568765810175281631563053508181457989308397826736558794347402359244681260568019344171041759730122132406268239606122986446825440595000606908297014779722999065544305015431540452492947346488675296803292245938765761409086595259926469593520170507802522280408789690350727593805993752517227076638346477052681958939775892148388922559023083611734557796858974149996698291453377626017049952556729382152235984807860881999437036680403660892585729896588706626924857520364118901218122435766456246056777276678568387122814034440075184167480124691237861177293116540823785232683445179599218921913527370704854826774977025840739670593729952677617913021592441180729236979355706581576208891898936880708245945300566966477026176672816756023400541575815213765607064109588688123335591543225795565541917523445141792919002927104703456522862153364023691511238657987382671461468628533253836714877533121967141886799948495945887388790171293246464876385424167633973840108132782417711318519675665170262114257006649867894845034618638577318213625103174241313071804708254577878797453296910363745146912291147501454886346688318786442533194414790227202886553490493384407092003198580964160758924888102092115669464385985631159697767393784150440698121486553846223913886666453619428978593762367178628444057234603477895677344308520580944738826313622217747880760370487274744558865691387653500857490505802750086158748139956728570572495022519393625521261792367564358825653283098613512459747729440842446721942337299574048209599401200695141755755536980704566153745143552082224719083432329996916357668983683383884496558696524555842509156131862134906431060168974600555693695594159909303233347020462814295265497217860179290565730702841835238422953648814669757624699307724085854920548752284965219086483295619647322780159678898433201774287302792178243644119292294348388785910806011516939962625082952390176852490536102935182160765073464382616940216996013337279836596718745588748641876519437038502678658766700114838342451355770702064909911141892926685504425322816193903305765697602595816094174129738080460694738971719108963051325826103073552862019429913133581631934292485624624946887019222264767593697761461752366509976031586939538699351311769873813795897523174522239295099241666521534600388210506091768458702231465164327888894999701341645038816417668750522863821837121400815853948217855402012258017941057056529793197580044948651430716746087364135996218515840240616559980148018736283585434387265486184728860948297773799884304682871458645029520418177558410398875833923120454911844960723567817061493896932305792552571050958650752203749422050669243401092398687176505434873815573842107911376413219912363017076179161228303087093399670995575972073650442530253458936478736884817782065082315740725256017883865455410899309430784088831230901132887726512446086501142083876562802699720474268031840032408120966130527715718941158230657708338651361226400285127933037352328756452469318766809924238861747024705192478385522372010666237142163962831674505025014787975217743831884107301426395681420313194403180737682143091930268232418422060822462681661401837963625302067553851360058199633519777965422677665526157096263528489085715024872970707240236518057517899515118531480729599761327067897944358056605798718459494494235836071775405603050580059774609302242787142975633502707123154355442056553331255324940324985185391992315724867719728585759741835273150516616223182138931998923825510940086823081229260467908662763474314813220309398523016643730130979828700540975931064863115190101102341466475664259185540723486851121596812378665385406819025552367527768196723380364272485919293770787440375201017179207055990555169573223924516913384849178960139586558199279380385346598109293216515774706577098780444996735364600006753213879656838044253415447107333371042365042346450911557569550403127515777833693871213167617362104046674180298004606207717037589504643042430692781306025876827676453624887407722785874658748773187767037672210484228142408930171640668745663831531079680742868504644598350059900877152878172006602322913745837305293396936059647204449254316544118126328871777542772805353740310563412705795166024596199887109346747713553302348447126435458834797213058376020869846703435041587421884208635060613759145751579496150795253947400029644583996511930764989620778120676759501782012817873761641299604373517729335215024111908336140506438449151429509232530648820380206965811025111125001047710027290404849424807243051702108486030968632947370242848181942266417733784405870598115188888086429577721469633189875336555477440256646839145787612196843424294473522909603231038468500001886761927474025466463736972667564319131518995194772469294258952566044495612699466070684788829341903534737404154612235468657112694092271022801712054844251284356044936333225053021554177666830789224543317803337364506407223763405714174825879355515072419057519012927956234822284889827546855509055995373211254235054752734573584803347030565945667443030054068599127538127177893344933648636137918498768740708586096532695706871664604799722626582782662310545693704365312707728980633759285987562925756886400950098845924953697918944646460532410734025207360205923300030221971453955442532018499469634920107756128063121143785376790100492827471950026683742991333424124602451512092354625716305715447976892014425158467211663839568698977300502173055714583088381212781449887954831346246457269406066796874708339913578177484035594499891762525533401580620330697199337755002937889577943975518878063119682918948482586183803247024154749968148592535078776566603299788953122512443596647841923176914077997937154896253865977050510399147999923955773132786098918759296046684738495556627534582523971369300940408533418548387512386448775466666063060720373562590001597973709716354510954035827189403146722536572278301703551696331823161629839146239212688162765328756009955073573987198534514469430177028310070799075576127012165850708558633510798050882999251434655235609008288035410198363105330868983326275707567454413977113438483874967760360425290906086272059846040327918097770813138733611520010863214594238867186173212226646059602384693071202182376232151139651101809267652914546424652746469401425401389029640238829220265461837276222314028249023964764631466961764600081983673276016931613503744207844847713501061116914219425375265540189166439834516706139729431449139631704791960419038645923675792221613404935218124286777706096867085387470889472080546926446343939414104758663539719702214576948882878873223163036940615839170845709835634791672488228502037268480128780992472754916294072270789486383883823545799470908454074235519841904610225177615254167677408395377724243956175014250095054299524418877516103884323561468688837334171532312506365786384476607077570120320815697906290641995135213310557220133118296197099017035585385309114364723902972233812844380995941943518202172391802479568372745562623056863290235844268984990706003508030835264378102765639094536636665555082208250202046514988360350656664088810068429152983666950017966157281251095876954390527974281458676645040305671347857498458204189520209304238561806580754398593423244067876831932860296167141260007525178273760684286912989333110569847139129756589264429537507232399131009268443644530902401089279344588884183396974032148103600199028130310299858698627033459865886174949219327118887504729604710187132490302180477037918814504826141839928562208760771275116483154348151281040039387577118445663529217060953818148332948542298860808453909138227784624344767391907683228512027766604749725775080063611277108955336408862079678854918432492360221377563677268356249347093909987476737211171536953110555442401827067432053810687662498836519125641942304384182062917082351949840026782316127607189592143522319459504129449122554791002588773193477060480862874144735052855620205209234354141913386406745869680599589006785473700963133981593965055413395148074008888539133283437911205397237155060591597377712472626815796368823636828502394349880320304593917138348174240704453344067694940658177209021803634921568448340994061961141301814680355174081375824530865056434545314716489097395847177005682403905125672693037166605999364199441269289348563507924837752045985330710730679044894249885917043245897444364736611421987136859928463561182369848175128559009748441348349261076257922308635788039840838952130357911300297083879811729323839797937174814746382921888572129171671510080937744612879203532740600818028741860295682439460274879745599867772826079956308221509936854907379808062673119256291469641280388899827717159753266316215787007619682387930759012786007168245490922766179825986692998807512873124945082982233433225430961345690539516926548040148842726183736924915597667815573937399459601266048470802580826758696680926141792435145437645431451030984025224789084558433504975317153101628255348421766098697045235549501569419115242269448652061302480033857288150488596325793938847073670407066795328956931293023087804163199797650112583311112580860936553531244998946017934705455438648514482665135745674154166631151430203753860962317237908601903350834278047580171870180120848467044805903067693355641706137826613597828542190387898165478894638006650706808398014080269612177662187929719746858052787850682065283510728626053415337051038571842046333093130290998086962502929531055176691908977237676519309539664901709806195865269754729739115097740680333875215596324781944355385779494044596635694967294619128278589276564550553114362368633446430765978471694878157119739196032510442145069231184337434811781367071487589615910623951404607663201118453292033869760364657673239306002210921204220209620923041973505384023626368261636270341592080850752451907714644844907308635428825604311402743279158249409471292924003087093436769461796510112934941360759736503938614338522526475870935634523093273814279451034467267951583634642690403110360027910423784860803354493127494272280476979103293360677475900167199671987727274403741462244250241994233464901542529406045104007201077735744501265434965457880395458505090816683187376385320593524732388262271567850217709825526854946943942646990701558903841765933763862626925557760273950841791497532570373813693641387935092364563842839463147715014813436418746214282604009073161289298790936876403690373219618202137226187578058511760712379023055548912943180918957553278750901714183911377791379625408999516064674521211310713734802700230634365490514411021128345176964294840212758705123125222352774092651861930763474159933035903205138300055414546467334899103505803310833357239772464281082720492795530652495453467501072031729533291192572617718978013312277544278216197275719901303395913910271867086598902097124016695802753445244257852153233552164032437660665965383679317162308622647024316174872439816354051811246989541257423182429462808973857243892187582414484893331340598476385485508813233356347418358791615913338529751040171548974871630374138487754973576418235928374228511365883561971131969769921405088849314160716771947752684358580661558776165877624715264580034702258858305509264187270536650393410107166120096984268837303478404745633784786649152982261800508688853989548249087799377032705424429832430173972466508047293639042242272795254838455710381359512922173916750631964236115126370453805333070880769749699957833397658895621464293454270953299672803769204199661460185685026548680570644621034591895412730740592953994273161394783689421111879530085442902285882672895051050380698235038684415807437830077429665712149296437485333992313156829695489215934914494837056386477616260694581358437891678799113831087928046094940310599133540288179157563156905376999678764976224110187178212350576986026749191131882855717644019871908845527820695017386467598629201117688429533126103908353679483648079358343339925261665997183031111026841594846908757410780173380877577444115524524894891620219873447104505138677665449277781989577418300953488319957989520164603605268161389116451674517335858072832192657538351482950021562509601702790972022710114925792359721657167687896138455980954174915400310163510156655459811581545730686066663766578310118687951021484778815802344402988306293708906699364079406214380329375952914306328909589332276479742398438886063527764539667746996875316349971659016342967257732169750262462727395169898207593869690690447118017283010043288146452327656686436499369364594681850499847579307797348442206897077386686014230881461463153547210599383973004394680420029057683848831221579862011100714859636038712764117191301811284282193828175071674444668601805100762638139844753556206972762942365671960259999284747963872237339538201726298860684125563607947443393856274660741991316284152164223586578532709235302727181227251377282482241139066504349054498013317270152345212276310979959246478631827861985429572793954335061945629655513724033784715017799081770785317524204518533524360372799024375404051216460814696115227771132964860396704786632997142732317827400824609293411610511795933579746713147364347315970527805893726248596142845241875021902160082712998629028117501012916127538145737397042483863334094175166675040698011657235151339957780955087271049428849808553690964932654044444450761389609560221038870349517268118414719307748901702037279473765020648293357021911695799878403943291978535545043930109779341638260314439658920936600916012289074342884925550339036709666427176663871296551673734584980536273513077126434731931025847459812051245114363775386652438592834911571999310737266725088435551692320155743474376932730208293689574593065639049478309405213754468543489027641428433867971071608631978267044282081853175831779430376230522975314369457362116578144193531390467312728430553385583028234940215777988408579142190799960370064577252759558059000646782219825776586194344410028198520298066766683923107156431333101460037998244287475948659445028599337980216359120574003455788843606047437107192336805480911840873266350101508014085584274276698808177734392112341427977779492633099874089545592593278008432810763772556145037037067439827427325514067385074744068405933757558857188957092182590012507060166985071082337010130608669892154492522059578049989415741651213247204623918811473480933661082376913840477880716505467347665382565010707499693123741254585320787554332739351340171891594234640440579334660201205193447920754339078886603129305706797550588096453050585719384592132333128211476867375825363055657093539186902496118669079790242378275134150162469552972758409513846694034398086467876209148570249317096088889908616427947670531559593713858529547632615905590754645080322330596951380809548880708101070091172287491701821642942220438036327596012347679041863885201047944613400280156717995098044597697824520662581788961062667437250359848692366406412255232276350156493055466697223971814764895973502124753926713005417064234468450633782766778829565796377552902613968882114477571478549373748876491840866759870514508504272493638379292844184094407766901005181130725799107182474995008472702962157315605212288145635578301920195809645101831970126554176074228196841141415978719848087867515778973456320035397352798864201581440761910008479142644739718023261223045877052592787340623202410912949441433912731658313358020925117131044369685863779174469142427673765252220248846744754184547541167393868971000939143341434612422980818547691745486722429505506266352014777625300647692121849228347776557028104486850863510071629326575055883968651318127547160426612460485726507650389562458975427553748411544902410397374548647525388749350669754369818036672992540961203495219301083706591887588823620878889520180459042714532784539797039826938595922386531063259147359111670747854514994971033389961118729510009221614501306418595573419997385628712005103509855178877861962202093985024354276046535486835400189072469626459813806299409516102858696298071240595635724668238227883983024495365855262307384921589793778320989092169900009499888224511123143175736664803283531105060847270112264091201630016899874489154876498814577682760478396845152173384026206787682796121021384756869465785918145651750670463738607505098622683266149790564590459791966760415765891084531553196103105509759637238018473919895739765226536606395089958367915750538201171708417659129209806069062966046252982251525140038086772423348308426824716247293662610645489003943450074907331495819766370841591894699868483131406780488958044736715926102505310779805388388288497202369701035701671504130768083324001438550621608204171694426872811004755030707228287081273338567682459241176490585770040793149386411841485471141671409716935913501071572970696740381647175933014561265295012373323862027478362822024940733966411022964912982458347087112443724606202235903387234244300414061531134901886553973520267411779161576347280193391062895694985958126671860527234158696098524636020234374044698539669887222421217218664426981852414387928068576375818274208281561959001236168265307713780241007808297876166609108828775894188158137223975266337499803813448024250213109112021568410856352793847216324675017046338686422245206894096957903737219934715176567164378172885572933360300440773355562394969403201607989580588411378570213291679962204815425165341686524004147260616641173899993477176126789148817244937510416451749550114786861153998089046020949284167503210423486610621153736237008329354917299769318367752074208573178741128490033472362148722388926385826853126614899032425119581541911040403036826228673932213077539653928410578082119779433234565474358031964338237118307912495909387619172000489645858283968224122036424898746724466629791625697278196474827842704546969261632903977462567612395642849814342338017376157681118024935545842857795617422712047046232778763557754251979265143347087331491220239705727640472174525781806750168422601769008610787472278274983590306153894049569724154362197205652567383706149329002262374641781447394482075864006075730056410884216661053815104952999410256812493934634656375986726933705503349620368618285571314285797609723466717944872028428770215647362409121757946387343525768248801442697751442389000189304987764794245216748910901834803026808120370292831259946700214623467812214768462495825823271840928671242951115919879675244724071127140137638346405780544213041259211326417240773060812832170825580831486793275651542027313041095842385016745117753861083263992972584747422631795904107746194068265405854935024714356563121511334389402452839854705956202081644006468258757021341657416040573044623809777343284792536663373811291245731967531995853271148780085363748861860316791629923701602361936204966657993225102300423500395929145192263901585444571416309057847817855719272466089529579836675929995403328533556329819647320597288616756407481045413743272619170729481717850834798299231559820358950205911986380454249874578634950560108381620239049243216534041624201540396992450437435843379734412786381958002799522285687879733857215594395544076771737199106262740835674235326987635445305312225668089411151506363273606009047899668529183927543440218719624885413401987046513465541580325891445723974100294828223197221076411699100421911486084384726895470249218768078229484913566893321234485882571074029130330997636657268418327282422162697820854683077360821690425539584401518954487181974879899336853121212013534654476555268427056178098346632298693545883837077432079859391261577423094622169059260359434670245037846647510583338569912086267016610175810209523146518506261237592580983861058673761071559060838515718167213762416412749861589608238863011514956686500597376019825526725138061764289963811583754984779912538679761551893356540040782919759158199094696548648705396705805219843541991009446123525945470902060081180549803593295985765182285336812072934514852234208712873542197499773669204639690791973193451911363833490843937894882228536098568284341071101779117592076981544066121170664920265859771860569773517333101880631557628260385966570249229934590643116738519348505406548327044691284273545141253964428280404966369148053511165896231768995887576102380269574545114918583127480679062475697829178762270731308920515885476026568969624156550806790862050684420485123631831145278877363023412469682947452773390435548304504222573612999441328921909208443220797034442811517257293146035205623612714771893262535219375744108171538440971547237945227583545694657541694059750510348109667222821425219904021969848305724994888564565109412308062888438860134585983041400032303271786456377404511180988036792248460872776392017937566179291961553823328152114374910114472037422464170933769852721692282751326988851207875418306137304756468431483394014500165270053739456197752024545456168972592128711863749843277490946199132803765014664998882985088339000005936879825154245758016296911272052206107589588957827092800891659682780500250102040015565610552050115838232111072786764595640005240812698459906236232874708311735261128738368964058624800808565205197234578395063686266013195706454003705635112047206396755568636899395341182032698010791415556135087849267217976446277271976977054445792542977198657171653149201962421739300005817377255574817910470259980920108909346178281302264233282893636089034884157228712867042273534133673125163089617900919523390404429915184286860373619855188174808898609651476970161866445731800025023491307085184788010724178615752227386153859134576217188895340413368708894145756040904577907977453987583373632089414950873188851940078440669987208396033739242028707175031492654128602053177755959095798393604736564286966317790201984078204415526300858379661599381881534462204089686123469785844899276303436683141783265272904585422630468056618439494518616425118157455552444927161182392149788723688165748998060493072990669537980111708102217708220683358094921111353757959331066682165191913781217764991592050826248063073621800737585500036276309634155096348139565497998682638428741320935798240542354476867554577958693787005490281754892655011501955882271447550013597394177799215577649096637371357125636504891692855731055731795307262344916425722120710489545867297954631436617057126935100261578804099815688045084546023696619929848629765973789791027451390706217891007686615059044885722191306245581852627793402513310260042422771182287712066110301803558124749370247016253280465734581575732993277384760585026686168150105840746434202513813314192710237216984286157645326713545760853648026956237437519369267320786165664641558327704945079880878758798088547176591826084087691616888447646909390797522808816498229788032052164806084171972416716577724971928944995237673138367608631790289209314484063643678702980865232749674685505864040578771486098424235700905894618002500095693856660086319880374294729484230532695057857523221083651670467310936663406518503867665692321433991758169400676939072911920594937652343348990881544192639170073823464757621674429438870206523187278746811747870356182397836799565568941911232272549314306941382944396785169519646413596628526272014277435911210269617822232048123672345255635699809183472163708718804812235272415318974397044297982111076163883816994299532082316157713617323153797568709187555004067822348615415761662068355351850240385902293735247480925573943068215050718741614578344271773190493527714520774596671539829772537533103299775272099323628162139726593154587817531482762886251016278222947836317320802169008799123046542012194612946292946827874246368540588113737913161604867421789891198906182147241777277693982172413702396765189108194737497290978008720760771832080117475665930325488583837030930261437881738860524747154063089390407640220245349062539122021924877727274621869321417992864972181981607673574447197587497362956880763251997743079791264000485434392488597503709110203351620767886506331495988880862293850742537140769648909351611607636644253370904054534769003656461038422221141890883422131954329781066282361793506216104651296937867129492685620662862625562408107995370249584039268962022044209721226089239538590723124922071355542109050581172293092763423480291079949996383308378848258588834145181438353362065132830444560681952930551984815094669475754396146301592009035270276150354435015287670672676582414243231147856309482891393440445752113166961334100746825369742409068682891171466663788560620993349554723671037472951839291752720129934349184393753499693286551416960268893599994172436744738335571288773774181585816337820707910399157102624053572543501387427303484330506203293917471247463920621657455767982714202988992779453656116212587572940757652600193775281222735009881718012157163620933078745908306890524152416556041453948055604221105912941275359379225622841237646527512573915005657025284097209492268209748933191541848613128313749555708542868501502040129280965988322468820213169675267285404442093281558196425090626163778632897539419971129461468424514891575339364145453663158754701972295506792285820724827455119195592186778948709185382812265725616134469055565066826398593348069935296580097512348260097892741100867456309271643846771243048843015929336181173622861160539500779211022188786369440829155369555303861892490580854750716515027148107746366353271018972748746038378151678490722079904839578598942583409732361638434017972604241177294008933075276688617093130648713312924406051414264979856655526964256784821628964632445076211000965621843977496994334035866741822833850439784360307454739588969369491406557574320472042497402479147513624141973433080574896272060976187603358638771339906637380455535297735494115810357090058895370755247429910289080190219372959353417243454963983025774521858362272098706326574713070484053934563790244142642623994440562841027415189079975599227747347455218786784146874996473205822345337125187336650251921871651754118767237815205615191748490285688667628395349255850492495856956111729696704850657807638842418473818431920010190631505488682828066277169924390213652870163727658498648246937935970478644074336898654206272466805388798532150398646192000523542933039664679973574188525669244539531356933227679074213490125972262434571831369143574659920524503957995492008027488907927227407029508185696549234224360590607867369963353595836101333861186250016693821786160111096695173679866519900890940434855967365284440417148274310138110938928356100603261277578545302558409377329432116361868094898546898074182114493204645314897542832421676075131001118199052889303344290492191681020664113957686488584701973064198962877648709861999958336043865076674491342433243208560419467926278198037462210074281311643097988421893146621191535780197342201781156861055545568949824898497754620065796301589655170086365560635081081222515105557372993968006795501594049950065382487741150362016301813168842270480550489584323016484613828561656809096872552206473101670906021952813651556325735392026247276085590603607435857590496548337017417177764669398295748060368236679916169656788367258753049022256036015762781124229973249736969844141861287191701084680389318729878987605196550303039775948908542010123446821940365485792895344471798457980608107942461019723187728212510307254510650336604583580984676100231119140933705619955749755892644976350611529470881929921442891698906887823245599924831352986811120804823333875763868058064852499161767108232470329465034814609855228299931513653677748723489057575211087592789318804644804432061355285519330103439914381397638217294161426110056680701833823528714413879009505219764568777986684012249184359357989481725481101433293289921138585390222961413861508288369142353024443685776781128246766510659500923540006766847212839808728941919104740019984079128628996390808137930463843814252520503493426843248447257511868623621256000504409458075396506330991312351572452482036926139615092381330391210524558735853839882989869321073789245665199595292261088465830114380115085688272521900669381938575944894113365383153505630475730089545216591673946909773608070626842072792390526577590736164980018673461810591043201248469879033000548031341167591004902248947506205565611441878768102551230490380664268127954571181674921404874291968068437256827268518969205304772978115174775103770995775491763022437368489350004797870800324546421020480881866341701566129721123845103078039526832387733875655915518011707853672770322391368274824037569465754501492892841573493758163037865358450311635476753017616606316252060395456669614747817055900316392289671207606747272777988953223252772754338585496126399229461973790327191040976981960027480734605972065843204946264304095609085796114846371492424697336558061559763815573596880297428864729265208478162458458145279174045327492021134941125929861193177553095630542921321212926253648687303690152720745456568617155041643450081378338364891917460253937840398993463730515900684525795037173161840889477518219924578016061839077447627548218807391824732566851738475315063934890335967422922331719880406863586306860534453922942014453707695036545981314331283988669963839819761906046896331459691233867837527473783969673076976922729359401501662368216206134014433939858815415750708884653861914988122087207424953336272429382030251696577146660826088310900250466537399298550005870167755304178483848763302315683300446434727411687200360111452644038297422538374995273696954724061445114429184639520890407110962151335412255632233371609614233447432154466844120478746240034266775855462015393490649291979382950518623992956558298765399664529756450455934032742952653361081984329395791892990779463705342353812145719733463862484333971837899681385162418542599377396003400690954912388478927221270192708685266702348475026997625635336084151343550156764488520338385496344999541338779594486957813329262552584875736051989709004208848630361408944638809608630151225414176042620280506685934274122998650463240423885987018415586923975227298015610356278176191610613117790383346714287965431519361212162865652839037928141219353912141696330507269229949376273350854345213833289929458161012781396166628173049969339717901125516891991420633555455633978176158499055591690198835480801076392309673164565385082326004078086916789136253088298168600021498216067428645048863768506811895160499113039547462613513007240036620531522932594778573532237882502108492969429606360691180454554065603885900572809861265853394973113515153273905971424165837809661706893222645344206544865555779265018094144003612064531976837515222771655320769178117695595692429375310249159263000190292656580551920275101108064107871582763369171159874208168085566772737793493791129577914450550604233739995730508503567661651480185542532792128938559663783469300088088749943363120680878622783553608734351036871238563730809795751175051443769356271820782779742471273872153180861663799040661612148395620845726286503891078102481635357761909205765661199068491409321555310556515724684929280974870553317473280646175298677871521635614800332756969107611291220237833631946151739747498011515497239008349429368938006311236373363823429915509164990884814411740452527870182973272595823532886442505377901330646134155903556653235988987164357565808425813298280193282889456489140342140782021126124816843305451443721432284418876172468312514123807065331112387460742163661497673721371811554598828346163527855459009470030359083966065924334189094026278819317682659869492327694013545951167119795232189537683815432885412039917245652451503062463660317198234948499491293147269386918328933752479347125787007338502332534656287982319860866595028802839190339623432626071677259206474651122377769457282810223085058425218056091862525930008557235525066831897437425046212087879508626822320748247607080636519913839673029684183198400500522578435432702079416439768327837915791483283599481721804299367613473829454368047907030993361207626722437121768582922736612241754049176319691654910635487520556047930112176373875202684485134904780943130617312650718918246234742425938803366788067643825186768411563447278428442811036674496349733737686159756491896226984513812842638827810785405246257272066792038634422375696690118823854449942905062204374221102211444707166210259833895856260373092929269777914215107927408739068493156166283294926214540028424243029853766619983956052892214864519598259089437836065642687276826332492847340720548360149030955314541389818357064482214045073647227627953399592539733631256354126896428247032143857718741641671539323404776527801430506611458917317455521435604806761023017905501255277910729342029348925489225878505595057108004565824570787052594814503779459413008679525059351305496086646189889583684823423153661632818226521083733396401746881644824317088587441049626447105212704347763303276086820361154462567937863353388413018014498323255195309209039377829855615187244872503844421829042591120365178388569283739129414178578285916134122666144625434381685284949711381647344442006200881769219320285921879675192567841561536013806908938169796296025127487492976422967602791460783478262088584886042019493524207544751810810916024942320879700999131610164314846179393032192653446510930808861295738345453000900243524486330760843751831017564118817177810612258816008953737269981503694004402835376878317726271277314357537643858432871166158529865800079026477620714831049807424955012820953146832506893548234833235935075452049560751402032734714443184664503659001972117964547873260097486387318649592773282950265611612579618155535119000732657483774248126929564187755940806130624833475222580307789243613149343421875992724498326104480499731477358111393398437031688002614310622072705718785002752250274288413797985343433924715165018650684872900106590618711471107523639971823304586482410504019562696627943547069773447848871353419419992251037844887805321789580391357709715968903641312030598395977665446844547878123015376866933409910207181643460637860313481196517457767222346813759661548491362545817238648675869321733580290711519452068119571982784960698042185423109451383197328622068066669665170211821406434060566788178208913158059388348095934270808580218683960011811382096630965592636350291974632961065141580333624686824129423522074366083268361907547435232050693313610500251583983668091326099833383038555480842542706914850522975055543488002631534648060907806867973331803231582086206653048469239164061555253301490571075693861081385684524812940967706852872757383239450802381826312745305213468838841157307096497756167467669245352460509692560022207629785931540457469260080104528327042047154112559657216321773454421057143915981488618842636292281094425563028926174765231294219722543247948588017025751533253899513965034798143092472987162487973874705672305942980937836381072699340335083272927657165636763573071509937818704380284401252243070398238030974582626633868185113254224890718472472168058982216712434925830887818872503027093590722279905276050065061721163416976226990928692895292197765737057725317329270341987885840548745938772138440686526527809484375162869552873371057136929053436354882041189796427329153225098377442780411987017735870753347589321318686110407499902152144623628004315645798489957449901264710201410889497333730712114223188511235502776173461307901112833578977924102773582728526235743101210991587620913495285445170671839232506262105755472074337971488354135968072350827796657157580802409311864085702716657097283012359494492110861369282897849297551948804580401415500691618516413884205677681461793135904635500339937361874505056269875880612444048844542272844519150671921418261403313027031992658807679440293554701312286522867030927665670138570572965469186539159483539549011716148189978345695192268181301663644220808000973826743524601865274560178042667869108946122253146475327368818800137370450173869802984605654013647600750449792059309132359607225673362332057444989656747664319698931704182480012293470408188196440670494972734518352164050678965767665691031385463416842782235373309159099243290414764807912837851010720843619586338344642434102051916935479818202880409218521789142369813549137654746104743012009796397768273290121360095134350532558216805488750605415201487239297313699895250060698187332851293274871152992161524070657059780274162939860383565661200609579797956087706867341812902721040774828150704970518089301792409365250507225977356793802182503148930046972128077642387659685109823541888948135296771897545990218467566179533105582322841577541904733257758245085610484535027884147652533373110225279066000053839404407538282190191047515350987062573372204180532032484693242887817235863207143562365867796644315445080430380856842338220533295235856404770430082543877216043387608962238651321756998345788157264811533437831099161192799531295730133310823293240861305434919115541373685711546877074117469132950002864095655648539853146889555829210074039473374062374189588544909215513271854367448829583185908908511605638967901937006241787901133596803176062879130828960110022042992123119811271027553172360198817284726340276623891744018343018255319575351906673580579500255565845104139936393161321440266664041774091922996016123945951333460475179567293790851619306554320910219932520431674928948852792536450004654662397068801491146267662653820578709266315571237473467034965914141848003425187954980891560158688258537255838157112538682959926269063381752512520667128108523272785056700654803768412855232124932796321064437185952456693193892450682652459118836598935407471507643760372254513125257673273874352608940020721956854971656032587456811914312089442394612365650736172879854026020615146400285302549588384501211327903861588674994605659549168838224888496870089802914954702344762997438268719968949981682858755804035710915755436642107029798742739229097099224279574821522439262913576222557543370059441035017363858455488286591149332538768077901831558710116483282697062716482005428853948814263833390992685086942246971963220038915505078358876394898215717468282744926484509152388979236728895609464339221268590484924448393931862377889425279823600910895182893130079238979785581129041705934410599010144538034165447926411467034680669172065045097900742461218593313814144674317824235219446001395661540534865276171665554749495087758214818718928666921718242426392665431805583124477569803819638046943094517253004467886083927658388558695338492584260481304587472038033633564686438412414964057186205878227100010020757656120601334907572864209976838740051246098422652693613928922935997175695538697610081704395027473425117170696725510647621071112811901261792564070980058311947941560166745477661602376934576924958667181331422659651524757179926650671989085447734599166885227153931739107506957754769654251356382747714861505056186162010583426908526869419033551014351158365271066554073237838125221266982690814718837256672153187715442053219227922511368807976956966439597572546290721990224828321814328323738640590273334243413190373360817772488422334112726568507215767490370899117405868061152465394519596878969851896859861221989808672599150994653257615944829685774411520972689005277635784001138341917604131335690857769303898011453937251375637931944132514250106775182683075226977504865539874410815238076512828840734174327970875061946506425489366759955068249337986432168783252238998135106241157714762778642660603755503788347926993040367193476232051264918792280287688944900789865823023809014617584167142543610358637349826945083172573987574978440491393593399198020188019502482207473495846039384292364573937713669395317022990627122378105052255827739662805651357662510152560636037295747977665840846958595122148940707206893333270778049482494217882658906976315154525133293039949447151861366057985852585751676199278180525972187169942089371092494531260699847774350635830790595245408674456756495459220194657271217686951395644799253264124721771612729349305347081119197894949280231616510105587817048059509752891271926369123182117827400499538651834877662571165065442874287449684739291523232808570878063073861587440702291735288057597680267215963524740796771892222454754154335401940748536462172107810680646118302535720782841781867247457368359290347407629143943338581935513040886387438368252400191687175734555660030692373720817513060461202536923312886957061581112802493526861788080562612221361354989068768962151324146245764919812485569153383329703324349267172340818715806232073616516575048421229787097515319533175775075408389585572301176763641781175275447057327949046277897099347933029116746612410720775150486992073185022195740288512598933183052329725131275043420194601985814426134855033200789954542869552452255281252303276079224962237280001175920338004492546892811336739003413453183501928772257152830854126672166573259036972295857538717823222180394706148481478729303161165678570871326587347433384122159252045615750008733300474599692110017149398482082331731664355606432972525228329262336988860140738144375569772785754215163387454097938436679879691600028149500202228956976069863133639537627566559085547689838422414963887620336033948017342086586988149231004396312309638833686897885033399457749174159485587691575046236794577444237529572919535802959288953453430615561012951058916240640454293234116197989946280004922591332048177959187873450656168068210165616378840344212807052029820298921223295041096805208057494416949869918187751411533811803321639274087121946169643580666384254556063678549046079862729481161406177489117652296410978749168989593456502396886161972122262210812321422851034677741340701740174506906146581176391081835758787813653006729485049313002544080333708428976900077194150344584070103910625198209744905550209903920513546320698186262862403679459751756362160269931780570463428868923948910980765683738421688933539317272859742481894307508385844584931062533297801885218789459645797195497909324130931652557857761015718018107789097539141021704966857658605479214920913578923729757554678693645610186408307126642923598425708090198119336877857216370496648918233434291662878274888166554408048082606072734441773983589968131788114499774423195914250413185688524635849142068693369130148997250029613772226047193812515249438644536822499359810482281611060066519349826043343057227962132535345750775899584093236064630700490196068397945373637311675660301243318313933613482146000226874006316585650830172807652825268000872338509137610843593917991568105573101179933137757315472941868633544230770277275704800156178319687428830068109679771538898031721511280180311326655123157816887623869501614640506036202300482235128096996480657232903036091402019779896240774733716387750281979695659883466948522727469760917526276454498386151974144459987853935650084858333267300255091006150358123124574702884795610844429125206539097489353944568216213487345691630589174584453217179445438544905704629544272678712633073692011119164812872088340543899006515423301050182859497087675197102120720921094433886601514972293166951873006515510818992049642680007392391875375553883123651481293848998357425940044059991076381769889487138521271251532924053011849544434239351306422243749023022517152205637890982889668557697185200336101700665311936091858452467595092801279324986565702139997371258927366477246335518503046463391712878115197201235257857444597296205241733620419307564116269594958501529376142058410079005735228030174644978429004073116113647150470211513684048978786468245570374337242241081097851020844626241995807926956314990297323942577319592849689930684084567712007122972044651601421929832144923529578968335048161511488523425448534459941918421132263222636940864452311229526491258329407369462210591192304525991773886137318262380226034583540460705429698793789825519837291987050080195405474465445298750893647299738013400171058276406575592773518196128636821804796726893950129464996468221697978118249060928034644654265841508443609390752591905532193498513813780164129259525542337838880646371883597153355588581887973015473840529434180990561879004072713637744299917679464907933896322175095983329621272338191388402719907472781938835487249129944590326363740352361459113356930609470849234100314589529337695478185028273525002119709723862676693877648007487007958109016181677500606379009956135505057323810498822524786610151454700649368851950971567458396024831182788480777230618978409686398805412078259003308274058410023330736202864806175573241603457768638030152941168970409541674026346664743558222630768123008560775035632383347348529966502241135609177416423359641522381948395471192595994129156066702335520564249854042166854303397958883902469578866025568354089605247809354824755082609420683226016614207945690998029037608199819032717467677509757798198092861754611909740762543011575470202578657864191302527688147537273544540691373745100205961537232084855933311561612192978333632268416281863780803338898051654960454762363391859163966741330565410206540657970579807995019417257897674986210807275018739072943325260868494077672665256679079280878178713127590689921374527866402358679898933339224562286834734463442875296798065803153754239120543198640065751732793599069818934526712776807890611151314627423739635842750515973019494156644518582367998120993188173296369182424845780801469189312315440172936921101360077764805258527954583529395061932454343377339598205257713710102300712809217791829580096373634015310197470215478121276857670427555197887159784104675284460131318698361766525841448310792811121979240266980257159830409543728113971359593681940208018829684796110391994137879933818907160932523838914232650204029988031158718155779212288549485967934295266090002215617989770352402560345540430540450511001793829157559587805904930801297243876064646935292807751093195166366302391027145076720511813389444629519499519386698433210752976363116375055891679252938937313978770061434061658489144529038638034562885865803991026343152340487788930382414684587795871755745668368018222663837506687081599778801591071146767238000749431829833097504976498873982260892712450445851814158223722808416653953931708648296104559905605892216357189428765681369393254611701716158590024326188352133230125379397632820984298569772294541994919693586154337939212068758340775936690989483285265750131601003661215658955480174310443581312263502081480179252658984935655567638088724915679505583065469209840444788393724562445874717184116228208958798569376011937474462181608485139642354348394800185896442496852321710317275051376675954289654185257062707487599609271625141184530707154730482967824912551900173762169394294644297195233542700720229616990238512043918454568896802727772025134144457193217032206853930794252357931930112348217035079487090182157706468435943498254604645473719608787112676199623301217298649777905212034004984200805998396642274661834423811849260025492674627644518924207972901521703490676029009518412212148283264868835598699264476885312034803222209605463471679476608370020386017041769353041462986767943848096284006984126669301502934804351622551759040806475704605384564408229306706155466619490640468293091518781372191151479186341761762560299805435226923878490715233389582597004720481516702343884530986901617672920196260708911773305744544907342568088168556438256816723826724404582654799753052398136864869680973471552770824450232951400658275874889074894301628867915575648625617141584043620432244457627206373467463387593270471714336864629703027731368172637723515877016214339334841462988724075587328696437097832395222700612936064220743199168800072967794688717661524530603203469972373919604025736675399109037160874701621010740102465856534372497328811349317656331391979699159743138803168781702374393209663802344870242497062272145787881546359864692439235181480239324351497671899693947004682543455048962802274987344171658253909341087278982504695798492871613570655185235026083303190975277068617160317027219048711794080057151439144664426601638020155023297538167272682680777423535745346152418397108313933415031650158907461709974500732912091325918327165311873617227384253647131816136336468313642854978747382231178457266382184835972866639017855410771115333287689555695232200618695653959871642899934543254804515552751797274247414925327180202730041436206061155483953926429622952866653922508837092800720513087272079983402596524228923217373110682352679491389319932489023759910166726570452411085807638086571565566787997550276309504918303828493310585680670932516194378744760046653529972096379331522611561318153458693241768495070914539401011507239931968273371378257628538582036124355994006795792736839321717220871938517887832551065311757947708245420224395414116261950377881734434561970535563034061696963836322856576778641731752235455549282207591587344752004856251546536269150296147467939351775567547819729167730678491720071494575188774242246356842769040294805536225763592779492875171837281653686088874412021714645039452361538530003431619760311884729807164773225984613852575128403070769825367397278214792885138662240000331262652259075957412065717482737532702486823216687465610038675431732982869934038140860539765556155296783505262913876502477304174947165712690941798977502391993349508766489657497584045847212181507985581358591374576945540334012550921281116293623172979165361898358033909714924196711364418131336193170929134333062721384904184303837845443509338128624055435236876610142327487498636624754324996146154917281907058691789468616779967873142253779510963569569837902581884868957161522221522315308614474822191373127714484573087662341177186767598356046616859756771880422194799836313295187827575732096912223633076280991023389617581379912079916132651909752469089785565701178705378098826612776121639639920730285381395297703711457914794021402520671611963131032564822883511240431134682692771666112605345841467285634739431698921498263797842216288579148301646420932501480355739496388601624841001770653737382922608984093741712649304724926375084257444509507115053462197620834750848555896180856551430577435592461743176184373786129491699523458467838214159891632526937438666685306075195943345574036721724499565515857527801400929463703353441679432530042090526196784494228185317977740822005443086721289127752304543267901152816419591211732579530832917611244645432785797913114790744667204262353625200768535307718721101487019590912960338177779306245522022993573988682594558808617588206157088234265192419138048419581676331683446858442065816767855865307243466536911420057186736541776295930098097216729836340462203375912623394337302678752689040998101600672768863465906801979835203060197657649147684503432158947973597638465865846792124710184187728615897081482763879995406649685572642533894802651618208249782127584420610593590840922288172095843419112904985413603315862096610157648671226838315981692103868612258077917423292942646011851167414582370221482400668379476469575280339435399077058851617920671383736783837158194336324230603600065309516383303212094363562110926323858168095749916215890603758670055342951763045160304304406269639677740942778077176161002687625638152646437029623832006221975242205414091192429744543569027898962517711717971132290811519192355305238929329216105415610462666658039942014312856842279935469250284884127679088887186985187579794540234452884984972803806968342368517762226295785608317869381677934444695998244897800759396863966291674456493268914055053624043097739348646901211037078154665508015586219690084334170854067839276066900950883783024025414989940464794958387016055978697794536725117717435267747195083315331209468918373418583459871504159548669724816715427305361966218285156426272427235151036388748622614669521632284504119170721327366371566050023075482661668461796657437419744536549288607445343997989567043126940990391567006020093118779976567619127000236632542256441451221038850008019683607072444105232953556110307564503435394501230148062758208528122488608429538671853064666218996939640967585743137709600946388353675059315403365385043538345945633442357674194295274167750529042915505124358335229772953297692682138471339922391748044627080752741561316510456087706111002743409498627907618206205802698238680793964709137241140553803245485678758187880350221026022363218405619897264006072061615693873554808000838750151111756378620236034933316178132874486910423453586417857956011115971536110384801000083105575033385171199517111558872336339843212688895922168707313851033173591182366071690346910016603645389960439540466473997855918732452774204059476101618518973759537028596548011123312311581615131864044465522875191443777922720998418081783872397804576345971294624419346071805375207295032355101815978935144948633642838792457095371720135580421664696939996394744486615799105933621612728873637549546783688080636841811493130511095714958648409860629335889043372085698558754898823426493719520349389420310354084225383333109738304345894819651679056142868131863667993593473054356409916241814015503350258709836250494119538090941106675302688613521598827110331455178191040487799415229445719669131200095995393314279861480980984462041675312630794203781584348691354610540329271948040322542303462729470402412531000413627962939722767839015056051711604006471257231717339326949118409416685277330603821364381523142846751494681578847832722468328889917132424565449847532263204105695781753310298025943867048012586335506516199186872834987346566330030218196982897863101880712407562722821732122802537072501823098065540972380922298318942992195685981596335359193655256469560154837395871225230197585134002464203420809517201869631917781285580148918548712223678778823018735394153963189861916549938789976386800730874671865655965204891183956812057538119669816201214696291483297677115572634574933269396035065242596900828948188806038818212247335545638506184649114148252069504037503879301193520705800447126646121249052047305453009141485498890427503628655106360801493819730251049431974673785762720511436167426559198999098142442100783114238060494618537649721351771598327440712682217658171431721707482746182439981766951182214293196924836809682935375108370714574116811807428658040395972366409725016135810135584007669052603580457352167008374247945779027091077086881028538181493406101980048180677221944771375544964528944181213895043354646925565387570806903580580049685486460009931203407185293050339147420948957832400270449149239309170461660586474383584081557554316422720341539262596421511552539976099593260109365460729659672150040732129104166598322638241790932530800582894963240517683271588524875170645923904018810126096999054861245607781485644403353967492270788666167559551083201657536452328119409654381004756214745065327221889617580323141581661042861736238555844410082323461437088275817036845978233649137310795239380733773162752120681939521599975958139251660290976172114138209408590181060133355531909631836542654824135138725988257217409921080746911570717247671267814736176055487613313864637945706341399688903719444305394926382392171725597888594396474697297478124343221043487880533774725117185562379050513144957668012605863046347410181853990344511733117769487019657722704023717193364693338977637675898047356772907038896067214776970602946339688755404619747664176177552276093504720457086294410409734864284436407340371133465210762051785749395391228597809869214736873762333091629733314415923859893816115492713904427422771449492373166640100673810430482631507879955044202842253777313555260310053212681042658270817124277825132056406965347789858651364738101233110559155175601032083770677094470584234611663044180696592219850010375483216713740264432351890989997646590987437413785646935653774857296959305491855542233160299426518609084098644059994129684419542541121994788004397677727433810523808394087384140415575181336452368968229526087265976160039290337907156197493240899078006943252511986331661937088898402134050904692463670055072603251019993012020781189504275684781411936773732897846123990396721128466426279315933340146423451480795491335046701324996924380383951044818998933027674947847331280365973955080815904658867948047526301507194217970764029873854034469076971254088740101272490578344555041637076436096325749318976959369052642908942148441036820076986654753566032284041020823109090975785827630105998865003199266072203492979335971087082428683816096482462516792288738085017974069074763488557340618474179590063241601306166845471335363449130337784790530705341210986862575771240660867833817335192594542108274990117841015638041702830471416824097520067119714475951504581099284109963409840926106106530601465463014367513449849367587838019145317542983219265702033786946313063310602465779067389665691951795999229289364668939608550159341409835692140758465322934090491135433487952241241964987206070019853903296104669635832420628252955199818588081214420376351399971036990694285119996922619379269400179241736932308718743359749519676808850033273475938434135204675346491360893711777778417441315489762685736589872564869007472727233595553220858551493561090577130506901887383259156253434325361914297353783429938436870104819992766674699964667474752557431436820217596097866875533476599559352080110691640668324571494391994810309390633290422874184520659160105313562439632376519488061035816459595942057534719760629921162278556567402308185809486519291421271804001030232812253974619605180209908188191931441114645436699834599975859527124080191558306643797523287467966798937708276587155657349105602861696261058600577310466280456101920285068481637467537557674646614673539896580380697353352445758588252611443682301234888784304460745165030517851304023217507208219020250493942385570124261322802590439555044891522623590889619573620477286064032143892322631733442135491404979158784884786637904129660928540488648852272186375458760160271199285419365179472008401868135772040554295302318284333990217068761173379364048627194926781404289241585503055464815480784157672214174227701413929095420074421688389422490263999835036871180901760374915990990181799662982023807070159864975342146264531448272592503942022918046386227815522084622754755816593033406540602525864608852440681493492128132075045901614245221420594125313670306325323630882277352343227942761326618508892550628902684534813668893264159679636389615770767162448568279430510689977958802564702443491779246852220383981746182688010122041523905490284265647048664539434470451245612761783116645881763324999400043248153661927928131553469920902224143894785254686517823069516897706282492070271823764791927902075689844508684980366280743748721025484874321057196183340865246054542737361678168739245622934628836007743322923633734483412450412753544276043840825459514781591895317905079958472281332940950085074597758225678110477241246924706535260037071820383190158585710860789136212849457351699815972344242601128447895954360897806498356503349356557453302594867189588514068102228072379876512708924979001211781217589433263098196605100285737825851581634398644766822468668287738724539193630650289740864001135606487393132659547008607244026924761891918547653333264486674230177338907388619388365595993004000400787113082544927976759869712659152877114156846873937769732183328698478672045068045933954585768270708729705364727322536428521608849638372017380313679056463923836105087131462508820971225918853564857247435958134172894480130126884382935687959533901688392764865318064066543083859100612442903872711072329840892579989595830224544962327089396784548600954240830099949284127686203661867614630281533058399929780172372421473165575803355718037433822175871048357528343512612939657537284449835383504658119537056770115118390092898595522420914378046182654670495648019835978786823595711147912721616672244557766602020252219767100327396622901005234743822767264292998277362555354840730165785142933976577468622789393655751152816858039708690599328178942351078756879136285749393136286156272292182041879352918879161518422669096930909782412100860893481841433244169750427708775453315759856696517756107952820308872412389301808096221640742474354057295073569453518792311245217594379675113645850067964840495058596017981552201828093799948848925280405287613221481224042054927040303049035875360330445509359124743352171906262652953283285042271001963562179449010311823126336610535095917307150137931007709240509489267598455921559312353529158940223542179789451639248806076416290994858979453385533543993797483483221342636955145504906249511800106007450780220524769240977748496002205871824780850555064400570292255439496229673245358260060112590609756367317903832497700328816981042886925078100590129891497076404960909560846269432739946390679060783764932411265922562144109323852848347807440472196692498199721810585913215009529604722147874520550536115034657603607366972261325558346014840427708229481808616657203392659267375446707644364586712572651148897468332104703244735726323682467177237052922931860651193598261786870755020912258028557601991804424297850175014412850355864081022258877146381749966204872987189897891828220095495128745841202152693954032082200651589527508738734447695951880683896782370890512150854748268864729708990817010857098634229539148575105624041797299449104648341034456392911428213615354655927818026303068340785969584309439687227445447777531086761238994049012799187666476560258581872810895353167286434661410087055628334099046870350632738908978171134012023382981046387580916627086172562665779787408180517725798497790393367768667116667717571676941860637813655653311210072319252438825043980202884571809305614960731643170216126405237791013328304286276528824329533086386011391516110513247309281216640946125923809580535040603051589668238551146784134598481360848605101209539608368269400002529656351281506522987077994952942568205994035788967972749486971443095547885383518366497181080103134201623847700262236854804433237388852591778134319326622525492821015623117425205087200869810593135625484576507379188218356116158605706184725378788065951984147775010089665949385302840460943321605530848360765223582835715965010617080705422666210547669353361018554165435700504545425541801103600747858675445094722522010160906904384013177536573729956132892704951075434503774460936363686905493414357575827144352313446908156428229433731586759098268186848015692402242187383460513060547521667590739768547495414393084555898954259649889566940272683588664791466894820816406256109346482467368137848767039220678968779828547038568260707942418164537188986352097122371380345696134567274464689523379094136365332220187411432102943970133960755188971475987260059293549143367127554816394153666140375837338243942962050194160696800562328149482575001300374663444354126678233709233500438188411995335234812364197178988118684371617020767700129485379760681176161776624889549822162627202610547793647184861462703374792492596260116281446166513543796049441048981614158119687773900916541843555507700814973027990825934634747577377561734828778292857189324522208522591235776783470281628700061963783221222394873033025300867976342439105690614677790857441767669366313425184189243555395950347707609529267799581719931242067839682917445342808328092179841188707508390384443979168571982013775179124911779404910345546198618954390809417809690299487708478005283218858486652994445047405148792057489123923513075865167015806178864044012096878902506251021729779807815780466636945741763441522547821029892682689469835957138693684342373398334430848646131939170636929808014531221004386606059102181675241248986797642757088060108324575088347788453680141482860098426108890131974016667231094993754458623925097822017217668859851656459254001523404747565590251611551589953780588137420051207401542273918700369567429666583475068344068348703971388232952367480444451109774399138816216234233898337830980187516243437709361812443413125533194729895123528470431529167737098186654255704070496142214061643096155274602199565549247112283676951206858283449576346530443225036175049612452876028389861855799491419080351833088209376630125966602073306805026000398623313888961602563741367050121930592556128738128859889546480318278580960797891085845243680955972740960055170818665411718592945955663115638402994349535265725933262839583138089791358450629719194145321799348942001572653247962723373921717680911643194136292285468355569899766454344260027496335463406831807550173811970587451860701521926627425844602317813105747388266749164835253966830800607158560394816414178693444737116150412897138358578545908968009758205199389153139703391555308302584726314075240473769199270670859317043969658697741247341352321322529364954746791221026045234353092994769892902728977344342739700141536991609342076553778597401666505101019514201864125885988316230143474089138074736784839312944348239522597242079993637323518641467079971626043764733459985347684650770382597729271343793947978565572420540588005554769807083130986332486988708531150949791725568041427505712513320665704718617115681622917620417608590977111418208804109868656350037957705028945515953879603916766379649226971265944756403154337537214923907101315696569402822886405432939116898443227525091439787461662478013834534091107476703771489515642645441992930180657980473413677033488269130818161356737242421882757001047794125831062494769796280683336563436427288585264914320599609699299914322597721967794830758135448886124156518728856561010847498376427236946098142770966126210745770354220861445652064990412273001435907271995657544953837444781177818485526562103462090158499162395967260349559505483877641442754538245129875466671081561652798713777395640423251571409724443201427044178949148430332935114280726778110951131579840490075345235810478129112676330954841661316283715105257856368987766906488454944575638369971321974906386821895206721083666056782391332151345352335505652544114979784563738741355195614984530675653625649341920416956123760451146808755582626839580602474187871785351288449745002056612261619284961863289029155579436252389715254014035978510587285814302092011371589372866805571590466127183023617351569148042184189513542808120589060328518199306358812494157641309895726412671400636784511491395041654084548705578125481774932722589795834283922684358738477139831733670478615708445400651584298966459062165605927786094736695545500837459860126325061357863102033038988541395760292238005342677221771286583145144007204193495348673424161043819844894940135702644547080987199839944611418790404764931136128743628225271845476644980181336985410127306741344080842201676848187355995062423294807146542953108561468896493343789362329684624974199801471910901327989127215358692459617263998018944647645550118035774469455813152414079354375776477860409820771570199992845288173094156966988507786010733187612394253395386853399036305883859963531196771433171257164272089009471429098610007491935150872058217088157854781339984049773473899606905729767928138342821424279031017932877491457554348612578049326095165388597459128426860165861176214368438042178806648190947791277188912688843249782181681670799880200160957083001411317565793864710995892044077290501455827833631878696760661385420924024674747478026240231071184350623204920646927323367359442119172246659783419639514220121191480972684838116482131478594716969722447277187417527621188241490612220481806667640283102004188859120392375395419961764961977373697152034188099889384854540721613480745524268068116966142863408064824342923997217993541150310566117503118848684880752605861417704261335077181385638089209676560619498396601294231193595050062042172351309335630122709333782564480465718455106572304773833702574697903003424682942669943988631513331744212246069845801180930471194232717842349727136826499804311064532805133672262515779833692393086466299493798329971565918478240735340360097952022435145627722961335619751607126169090297002494498891095086978525374589628366874555991715391646583989768822532225769792068821742825670508645241379393054285486579748368859125063585212529686201227250209779446285576653984506925043077077287223732006730055291348764743719593595747039593856347164866188536250314608182136450972194705494760349379532913973819893798076710761710550571747777096749152425211682294681517801081102870079788712292871101545066128037556829825023975726176247791890919195511689039681659527215409093098370756639163089282131313097003122150890600209820946409936734547744388108524640137559758689588814883833253131066604715065844714752930681647352802773550131034115000651892489500608401966461249112960931498309644741726415724997905242366627384574027456459666230432083446343613247575866552821602423943137540282436503568168498098760260114464802118529554119570135727538022902208684630085588355600540210470767882634669776543692510639377661922178567404601374428891164912366307877305396315193059423901852075419852920258079938872117559925682747708843041673221445457676133478277099466590234926617154740161241502820460404409044223416278909366267369805675822938560490173541054670652044377129213420600457255725497840168899149769339796592365578047802890307569490088953227645819426620458055223482178040169681170492287136993671767803106676914577799379262659069673698556783135158595929393351704168195712290748080335872729795093579059273470511357670817654152487879529305767879235764894565820481185554097511774235972443759536232272914183083455041864303429791363276054914074238455422241733848011912159178280896040218693633571011078837963148917952304795488213706369988916313865269619496286548560202512745557944754204063758741963289591298011275112370876570992935889780593698275424433448442297626668335588852013408845214281903951060914343648886721553695833617048473154053677145165186425893228230567686999135259777500434810293959071683685969406317125586060893589705159226655252254056067706697267225358107770549344042257328582887917901260842945859572710889665592097900520073190782314686587371301875855947903690889417034469383089111285059655786554823722529519541248339982540881643640375810761096737581556093098914790946717881331095519883272084358414350261588504414664269160294879231078743500167058459706449787350419786781573810908755511948706462625249200108685282248187095652422724033502337334753425475438531873474675354744412185442447514734149548693885801171189759317416438562213711591073908635145655310607535557051004664182677664528302033692844743978237545941132108165160739740997109496224205701870110647744308368684529334048748662170132724245243840933721679407216467788949092032270545512003883735914701121509416088219413432994942694102008236513460657620942396353396520593806396092260106232699158007394104803663103131332688141618714863569368272226074900975681673277145103813458070709497849566180709715792995832660574066818299921451952381905408849606880890510065787139613763848957238765040447108592486605401311929783940772254587032862223576190620413490492465137968643795988591124003936504801313268603431108403177741027257832753454216456636232273794553376038885751675027362250723642477283492677211667377324889192016554021599033875513649610388252786439368961652069024073837865344394352516644998863544858364425395919784391348312053373454809821366184885737564070052263043328453907897782026684372642631026799804517878340473031555066788904501648583543777853727375900440594612203492790287039966405117858615940607036216339232078586355465439037902016767814322240726482715370890663006827128727141822317117036613101102048530182220080775676191512449495234461955346142489113323319304222395218907820495157145014961723358394581113090497912468960136530757938556436486954153652983500483063757045613829127815254362076454952989021311051674544627531342072606812759657097224314326244335701694315947166709053712916651005102130523721821781252964388606196152606259161149782625979574087120077199769035355030058243225971722576137699735720283770721805294928292025272920325234809706917485691438505366165449388756251874864913673029446135444867341043301168151658781983727781302285058969637887721589314304900947844295336531715114155491314365052653835591982363606813416363802401468268300367372886960683909046662317678728591902900579147041929235479297594241772522884110905731051620802383282133578783846053297303380967268823563766510016903902359035244858448221326309983629395155620206322953463536681468810774342912124483876954665899248411032202796988572030093296648053598252129365106875441915071514728353444171220646962286019073100087610414721479566067857356144003971447358310814731450331592527366979731080652400955794420908284274737003312981860165680382486575794254426034859778034992092207703344182423747761918904254185111740011253224629939652433341131859584680514884120166979615601758947095768812849610933561257691086569304048780203944604873062723012207532564743878838371564811556484304765827262751607606102056615714825454897602830765033604973404702560566115534184159887429689401125486708940906065522248120803394402339687771897323001026304150950988519955550974562696802566921506975111613216809715192947554370456031924185144372080648264937251782795121042549694991566303516918023201019137896489249797244806526634393166280231648074905490185409153759120514149655857776482538573542523060108533344079263621445732499231527217639121362000673800809521378313344816573650576662639219776475874852406267044068143263317844579466017585771108500809704622028272152647121265464137099235676439986068941587696926196678838040435059329976756295151363423658676140151020385254527328781187194610366455275414605015312158742292384517210249354418731145469509012725864554373830770746705448120308012717657821232120525241479973280618617789359861423505320946453186497553252895363915974506470768753650886102626749048029027108640365544840559766273935887360685185571750568467543550390281549939040049252637107160280936312095767700380994620709245306856773329121576399027739447591178832598921988664389202582143509275927548311269708932547847904214010763135840034356928791787312398102979569325687408860810744567958144681627713033742765375217160745130176107521667900172490374873357247170179857759820835520242873496640876039237030941776581745865632699627382167029777903672273284176103801540200525484179477160205308001328186233370986515647461875523290472965775638867951168659297365023383235012711525094056378023883632424182948815212734475805112261268121923097446259598211153301496234740682514313837905041309025583512680652234515429236388212528760069394594355711322971972104275834865523697065647285591741642917894537666964021161596334461456113248628669170229750635486518260947475394135250435251223045629938238888367938305376942242619243765473180755352489918518050649924702735408317576163482475134694769899479997230437039219579185802015050207118647069093724010559121906291156079039488970108001331816037251859209696977389816390558597222870149734586132080580308943261015183496827541509720221223426703903561477536507079992379815230054924843760769466277083786808420936096831487878809918761724335150770192662799829365199922342506347508906505539450856120006466771159824923079947870779314854654295887463024227280916231441768753747398876299548808529377093137589242281062414716577796886896678489803552744263566256302210488448247165866589908287492460403426543249810232372503417830208714115352480908011214843206251660218914930102154302998245855007248661331800842430386710832304670431632852392018882410086746852170324960930312587787150601659272996917379288478090871811019691749320855434139683565966293329021877136928413099464965671745140414678432151910025738817438596318035001622982729139007251980678757424121971025326475766266047604943169068088724437884175893916982127846965957073958785300531669868261179549083573594037267909921922916846895961416769193903497508526623662679599593265746648186604512663918949519432834353843500858983680444830085888383998660166836155191787280804096256720024116238188077102195329689367864921345226033865522162577303493568608694967599664314020339385657451204020936523260085765604464521419670284203566265958007647417083441645035984905510646267087965388474916408718448007670153529115038020399056614001119451393974673140891141128121535113972243814865232705849409248424471018598842612680218973771493078611462286998335323677205788605988905762435741547456678282852634725378360677556458775134326320790951902962823104022001550395992124105554087164160879411862376919499825667217050691093221991606993479706329110066270538238399478762959973997483372495379795401831397995879873778976688554003647441204606609283662816111692644626560870308756146408733680316872135453879416748761270474642970325267697541935356074083978979729807467715170273402206700316851791149276977619502275303446914958662797999331092095198000254653440175845005411436002780160522813992612783630246443431283463911135187272416717454942359675488247857525871300842361438310625456211082908975163103278004592380148994378623770987117119299258389951556592872447046464273478519719006035041850358009976184155846088171668900739975420123060918028266836469802692518374147865387029092275651358852921263987291358218510221627714865911476138398278142083876985363366868123293295446196834351657611629238621146992458651754327840435850731629297236485583439562158120950755554209256414486420422333744280504482597657342401582075742331845363097129065630356870433238989764567752036820319489919310038813844929664483753293575158059457374375186236654980746263228827954631975052195518263929473496466047097800476677262370058962334359464426992460007155123935597475258434857623232417648342412370795888789988837118276446459621060895791820523115609159213068930926601682000149596036558138538865858055831705659965277277784306879902028539947487713450156523368626753971408181359679309919090181805966775999810397132874968944995551382915415042810371056216617491305571777310058559585036441977328606087848770946306285725208416938914955717195122216233793150879216793415890630163382215777831330850745373363593047001478123270301779690215944292375728030552091594346287527342569268923794924533893404687392954530770839855639578974046981259039757640247518078182062488627399745178816503605025201193261870414051913673995077844762642507828603825230907988355857316967862879869198896911112633016896708479791467587459296145630326482282453990662316086032671377327346160882819081408229999720718216342811851013188695033316931589371087148872295523063537991063539236300687104431794923238908386316351114378164959531549508504921482342760859307790540067802828564208953440092883642307866402185318688270842157826161516885192850335555235638760168170093539398785087264204778976529942749618421851448034915122424791500761404137644780761138736450295127671138353333521226171026090219828439491133170787749650736385159366578762617763294875933440897851674053226632687172503717233574247003371540048120468941628236976406817377188623903128678608043292316727574888234826367596553140224669448412044360423873264457033100889155639130887959120982898279281028867407788572868361998216608604493086870714791253896763199025977459088434323416773712256632187923825327177583759736611219157236667421534921661551558431509879549592766912592068634755319124092241734132895724385726278152744195622243441788986156029784093199652954506916472886553050708960223689618183375240552169863173986640491042672579837621475118466937138976438561871314197371907059800947771817475474674235137815144370769666077979550430830481884894739999479404514147512633581140339316263602615467152829465837504340234533542529903791112992123472011918308011221489153583827650395731725222310384460936616239773405887650952400724714210760539437860592693338615921497588986722080903747771271849118876483859207956458016037599539424200360510510447731304461502248669534752314527858081589790162460267851056126652059731751153409092603014099143214113541335006498484546486803899982190963131482616399689613356260286969381858162676779968321127678855661103467814548508800154140126987829897371017709134071812472014064693587165069505314251608461436566539533937985965821224413210987868286030066260519725239879238605336609242133812229749147043178862344491380648390850911424488760532854746341974623312934070945594692412178629375117239463126777613636012590897769770826042055014352512780393723909170361897212011599106247703687157541271950231363919057697004464314593073699783727951898969056782726118684444622871973336312381394324156504999529687272040912061705779473435492867783008725696394812769485584525359382818879752381404681756147246385437279473727382222996016518486947202891864291322155244158377325035268153761068144651706323189701412341962395645810581610288900683851903525926651275802496033403599292238479052776765328285643483285811061388284251495647057442545502549377882847256520561072273870567577652784855220751750675477842075675646634858029556467789782078718278599572839501716595827272264952277135239132950544019572371041848214159729712845002296041952406052960019459307938250820546950404969450964037742347260753091499673834955314388713898899847122409553267226879426358448340835551001889047607978670957887474612902202154800201618246530872126314860862057237611663526978220979457696782658586740179379603879180660864352822662193185088693589249843443947371970217856099957137225942824172868924004355295635759115304004025502687338128817465080380029972281069500642419247851382490142394292524047452076572595041027185694158259067404938962896157890461376472524333555097058390932923507590043995874593992313144534053835979870067870637498200176362100197145674796382228661472507509090137230536378150148862890845074437969430712498350608071081568979232172227236333310608306570945532137803265160316853330015382107612461661473234990352471444129450966092930229760500079607220501539703191203597448988438982988767870399750726158020617368274374858435703592701589109333518406406956955905144960857158661130642197018200978741716327026944337936186340844049690928840206705311576115331954837550865611494255376601401882866637370301628704786554494940235701392490326582549278126711053377446404430478021577186904729073242186157284946792321007539678150320212272973251283272806130438657891071030887464003481818014813624987586661773329184894699070676429786692238261759400398905534741092596414800242656179024529854385476302130779664397941986088434097842823323522467112583584873572295721649083514791979306768903677003291578685311737888955844518521040634358417964487692172559452916022370218582757016139662691622401220270782512822874037298255576892611554452748100559393327171919965732875412144021290496692445895906220247065099698900017638051865697582460778161852451406169767437345113848531050066025530494144881603292734880047499961751117472111339583618798317643067239624691193955706164790178294407251264981881038689846315691701295554014595246711791206846845825664686149521694445929006866133805128318935003519714984606605061305288105626955666644913268262275053698830919657184341402060278780185742876564066064581960453616266352606556367918359615248904827813209741175894526126164494635990246757924363107547632422713453831281542688687320340875288216085467031513254504498867734793391655267397041235428771634084567719605588012882242868343301554647210229004199185448547601975536655765960287744562411862661550255199815462869891983551466316757859482934650700906324724845536129092539541600524532071858650176499576601458877880504268315593675443724026188129894564596317212066252335842939149792017047455553673398475089198374344546833163485049080666583424783786486178610111714520025221713665266102630032676290745903047571047843277357613806256174529014196966809571031087713469663562572061990605231213964443530861186281068296365144707418332389339697669139130214106609077563101621151216314726375063106085271785983798717300496084414114139028361530056423166779344382042783002612181022802770195519743188819994139021585011666806825084819633304141978378540727914316314751364517423851931753314492827250127687656762446005911171847893361140278631445626035472441441464970030552324742906124495489673187061188618502637417128281046229629479129576298109854657829280850406023398774808636255518747419173127224129581652597084432633813471400272528919705807310059527069527924742037942645308717126320323933255145414485035846944099473567582882657861978937565202339738604186925788065275385675945666007563754454691969766200027603553829841285188720477613233012018883962924443769262906829443936324401495433485450976192021464363288081926665014569360856948058122762270152755049695310517708733357681141571532506889712737161380594896507686796181959863134847084556688202481059266120602126697936841523965933709865273441051470565854320035320706413500465919369401883904880801912440580217410789125407751684484969918881866461655377581957676441484858268194447067790115737741091341078263166611404011680072940186905286920883223102176621785371068304232169330820206484482015449039682007885693795659067782787156524681084421619905838942632221067556488806223184084709580465588329935383949562806497802345845540409719729691521491780234481343747316107551420485355689258341925573433625152053229633333058554088244512922424677575856357775881054107689334440905664082449543433743273716920726343214488950288242654822600977113033178382432424442636131403604926520067730222048331390627514967372734494365908902902702346266794935587628745330791700253535794426136418185284471998546368798669325542190402777173089657639463354016007480019571934780127360833315177421111097614094064262716142048220614280749316555714904969436509729960479958425186224340733813329191986267429923943152456784110347280013970613332608307266002464749210312768027186880908803450540724565802068213142248044992102065014115767898096060229588278066488724120157853131265503560055743956255978685339432736740834523111574539578396201474904055594730462420091128817035204533273920376728655901144405451248604767079635326198046665144814856426875150578371187342535524672833188767324638444329087360089357920736864140058498590638904441285892181719860314584965733929596663487889967841298322319319074725130037566499341182766469669352024525596486935641811966415468677838198710006572264930626831874098214408244461018925622251273070460105637097940615093145656789116885984589167058038939428971459447521426878860622602913233371633803908472428608832231415926575392060759653424581057641217376094836026487582260859367032344476343787061856294378216666056582635910861146999027947244048906146396425567659390579440879175554500860665227483079685083335234094801014571682461663012436022346023803271644254568825878694897521127559432969673308416187441101245236713527738163816957256041429155676696398021375104751450605412713607345484727209277871654208509088839855647913549659713027707901253740447402782483959694802632255443230258885663332982012671062116654946282655932522046051114577091093192277573810299949582765797054290760473814451600181985440079120141363066006837656572389813100226094408483192118925813575431118457842799061695911770447641338028781614790016264222771041622373469756138446167774766188918787384470323870608931000355212031619294055441979298489625148806649547848481980988589919571999235687911853606328798215491644758453104562944815815620758662548455377938373834302560330170686999680978355733103912345720384468106496523558171961738428032667706713383915578406250776741918121058883772965609273047399271890032633987217396086842769679781158417093122432126428206159038102066659384209478714614318657421833613320313202099646425492147296912786242798648095310979450495776962449775171819947401472269277226566409026966150257974157431461383217864562899779639493579038920604157463331634134507666043431772494075696587554929581884249102127635830174846460744824844954732969326214681778136366993891017003804992845421453098332143036980346746513499972589451507427779548019443070813841660018915600764299100250922830512884880008653890381978740786178539955875611827744119884945288794748854167105548164193837506453040861121003048875988021440777979258082555094291932486729550627225713192208725855302720323377457956560694337700451197236106406448140755783170586451200863497958402704591661888509150880200115555831064182264210546587469448715123886197078618629006955463709433659524758425620126604331187731377738781102543892480908133590975937114505310578257206379672966556497163277894159405779672335182533084302508636879635351651911019563888999069578138181116223177698879102608973149038845864127119596564922384682506986819484568317038235132741377560426626898129113715843947593062841206904294433805158615337667026311548528725915182695600969811753308730278166738600332734891820601852923060053498358892083710538570221938584929556181792830752654949471769718964172854554406972742800142206025606755126367689219434614507049335522548731011503583879685488723828001797714282807812629137194167090706624207072932166123865661067638003394205773210888833906525355376279658605563519224527527531719084176258006650803787830398718241902846099871752170692810488012731998377845754498797054379374687274429795798730810401974219348130852029618966983959261063003480656942624820844155349447587113437783497134787186481194894585045923357377220383845556760357584587940637433868767787300609303965274639924377417928721257462363516135257623603968685159545517057242239401389236115369756040272028752029751400734335287542887238549887292510275016646931987308843258902008583102597114557653620902495617129806618669840941444421020318118685128602871824941552362190471124411834775642754413613515057177587548624832038633942146222821476430031747799725804886256494144179707752135388701433196460768449030711598234650730259069187690504948456307446603343500614443657047116306911354541285939123812441685388728719516488255378603025049206165569919381773564200261942237248327396605620330253317035932747202978059834300554978469387810428153975953286276012370154123181978078687784705257931072156442427878624144671740003448596602402701808087488550848252496743670400070026054177246641628227668630240675409695327362522912561673315431625845100200311152194385204699913792967962271162409514938968187001237276295101952341373113573598570217084522982642641676746281923321211713729000079161158164964809601678892795992064295553624845470595078054581890888154686644618662146911071546388599585570628452404169072659193051471053115330503156711963208438895988207963541039494260315776420886964480942129632969969453812360756229660451165296609077061506402713665268101816678802042766582667346447581753799522959268956343739878644858227903906227613274108924045092246874977251816117711617823676369008857395649010509140181822361058976403232921240098789663880060267741989318172754901013319929724337364308495333571782597708045043944636283025914684412048669879817785178844843673777288114830805028220441829817961960005658264598169757732510429771443359471075445455073155598491681857552926544152861775148523208619207186188282106384185954748836015604038744240529623660504705460695098354207240442537631040370769347230845042868364239816529746953294724803859612464777913086374487460656748754791817087347677934889390922149990453922118656490550624469800994285762176596536808697684696625823039212630736310294247592765796305389139221536973860432897440846487987214288568728374076773739728077058188608053042080987068377899093129012613430707612522798105949692564035770412143922430575839913528341477868281105370203452602497675172428975554815054674504160972113111931031598233686353479064594610788597610030879708581906209549627607865634023599966912547246719621166811929422747168906278133970819541776488418389627472421240591726388540156900836793997231951148240833065405926721910058216506667240041321994550468945718611825896209180659676346562859044079757689450622820328916756375936384817795932138159712115442143137890977682137288910286594021895738362300025183630722285260813642200149002422421311982793036197671903646055347626446131090503733050798381466686157510526703209097499986119693461104530846908806235040417274673495792731182737704779340514821959608798317588255233162306566265437407030798851027051496566466442208836318259154976016958318526522611948200901976207851505216207225079033045748991113942790344614150625618244704025225587268976093703711532474739007597896128117321955276032597798859418230974711611001379238889478034146148617348770309987090453693805887847529567387303433892306880971947713397801982858362059176915786033016918398148665747978115491219351878480681627648456500953395976765074954766727833240659468735086983028477339505762314967290996027341876094082415795616102284771507177218359582811277697635651472782952699254402530389486824170985454370416225761414670149478710477264469945891184411684304514913916548742014795290532355227747235461189704963412334798233463685193103882213940425806403686379927349934613478019293226044658818405986193808759164146463499814163823635053545093885459305376854766063506760889268592437338061637041258405583708872179779492501280777091232258460836816112843157522681140432770890430375010657513756581492970942323666359668028603641017602522219631660867359900095878984483224717838809441202569211087945143082845770103298556788857986263505438159608912901271422217010500061191078244511301682952108133803778938633010024766274780860850100297462932850013312971972513345299630076687167692377538859393673252053161614446350855454084926393032356498013515946405721601652922300356193926291517769205525614987522859793434685325815244212179694237757448851975353880629415545775367489123227107848121466156324644985262325435614844741307591852443313012039329865367899047334586664041019829354278757339300554995561514353822768537481319911638718087241058622918765836442432820581910877892562217153125023667818799859038140620827615765780280069059627144768121224489972914811980459264451218417394227361258740921037509736432904925508145962391328683650614145098911956100556479688841286416931935591079099069637167094335789410213717577958823886191020049655048436374508481442535931638033456626925332112919646247770450344171256956273510674823098257382712408027426291716489676096721608937631708355211136053140373775710390573655913493367738596192716159366420088995259235452265776793257277499356306108221340612079468535534608826586336068132730509860611293158959196320237192046945132700458143089191216263628779179106065629558207981330599480067230804895189701606211382026661155056922889505347084083248307893290390371732931780386651851969068402226539933848060539331473586230157156684602842102863819204523743464199625908635900923253833390152371742678217366612516524925959896226774380357565941683112336073513706249251215548085662879066405618105839744209635638907443049734092754828774425510176594599659839248393895390174751725347329309356211353830732555898610698149470522361413393809849409165118551908361779195614354368891186986538675184232567289032420749550213845434414658092501171015028019080052980673481109922832311878479118174276643151288374921479339330542930233834327276057992729454832906210032913063081409791745390493099372531554212681837537486683106590659434782332712590994120267611719026746657764408283561691129500336249886288996580811759870058900893588203183386432677593183779171715535034976782308797655140501368727921293196027001673362660023124935721382104895107922553068848957261113010413603743784299900810740711680281102950412506565189701864204374591735302524919293861469250580712190885683675384613565569715463089847424575341156912543998884794909660801982180756172874447390287138299147120904153039535075342971257773181589081130815240576282279633176590403154370065644738050867978783194627182196765218405335897047312627590791324522652579158733123490073667180907081436197392784239525197082547463495639443992848129183084502994956425268713772306439171816409534361726021487986272670043267029895570043156987989317129784362707575094217359550005373220569631803042028603990148829065260051381683886638746518706511336066270661754891878295074413233501343238082475669707553093593765461364037487986924627437628971186116881569272351974285920929771721253691654635062082901308540590336121543157760739353795747093418508731259605366494123784509400482710167347068371067765996590604086169971704912043743237599935053215323846393999268801033391438598563706514320193877932429459234910471559944581674641536388382494472117842911396371070134227284565857641033123880901409756175081873891416172947881374643816278325166171581796888645996736467562509056960880600749461268329391608189568927419482984490414625211400945391665044729603953599487798569490766415071724690642095178982836201444324750265907005626458316760297642146101518009521134478809391131318760446822204122955608373563482599417281563811053420665052139848036222863660955381907784032158458087601747712881107251774744637511319543698651320459270370886005647980823783574272234836917056088694324939056114495776804647186379459053098294498847074556175965230945318736046292377707947782230090925470394758007852987741231770835968132487105608534426178898045876664115019205827228155735699702016145944642624843581807933287437220638198679012238658266677182038030341292230599031143218098347616910732574147716242882968101684441834304958366492524343578163519833909615016411623883306774672990925547243083889479190367459866941158488879197680672849463305949560940048877410581431539605708942239012895790114226048563740486022606416787652578803268298568242618700443189743060179139242923123109614334421476344927075475993090441106428335930311396530370985750487812218796468247467075077555954279387221761944225035722768250897243885087411139099365646045555019714140783513628514803777375893546377997424751998020115942359606293110435502263836884145223046784304018972507986083691604282835302000005741105777320487417022681139476979880642305965362461492253945834744541919081041915555143488521260981185644886487753301650187976319485745588995524305165724160116560448186276244490555542239442738200783724293461427957318807135658753139982327215471702971164767134814889220137147372963030950302284869426775557960784845316768473061468811114077025005145861926981265423891105220776049340984076637540060637529281861262555463302141680943074454540684770736963225074744691337124276809315751673104410643353262861287860531575931186739501031092823494360156243802060801905095227036114729258552137370677375414122983937794503249811322585672588055133707757914561300087625226493876402137352807503204181739031589654849744079543535727477916556970047204492414174980459188529620497587596903475679117515236069321316469026748704769321186391368565143882141755669132466132309869716012222963589198859627865521167901887956863641516055843147151245102843782970473509823825149320026087585441343712051059754578579412143011524998603554150984170057962202935208746414545026222352378404209259832454116990528310917614891483441303273502105590692531735161012601179401912988972959224407271231204638461185634100365576158333835268386123181292868978272719443296488479388783410760284416779850302570545371042407785483024209579029887725908250181580169668105139768482934136612270716956275184598404902161550702824954283486815413794308356391711483360956854679212758377029648387284755761507808518248186147322793510338759267360353374551835395618410048176466370204133851744398489702156074782481191744173744825258802697282925350354388581288980754897703900236289623905609950981132940185722383547869893085248454816247212512815970935150371172866517106676492743584382112411963615915176008166208375102216204991916146268832048080058548413056802137644041099863751023774589033348599992370314024865947192293819153239415697872949950239139815874497285172294936734548016731747835983684210747081656764289181182461295747450403671358282784937146990932706625284508065953720306486292664357933291783169285699332385608647199875463844786216083717270949307078248156100024741202363087161125410426717146529476686448250301495299128556508082834095204143485329287248104094043577768038553064685105849286135522530222411158931817423602889362850347493404342245822929130505839671349158493654542345397910319551580402382557457625814124425072348486687285314888360184946849458807802589771400454404781133218420705639078463580439729855469609177782573812656089466992119161772723342274053162364416165368024164093449749948150139592975350176134629672721026700656328944616136789001415931018719461315159202317395595177688805787657692246319349752302175407861271782492797161775164837866484432206396707167129623913476236903221918913242960971941619010860575360071614603164115367624548042677299925511409699061009227299453553604490293371986954858017225735508695041700923201449067787118443214179519260586239161954118819141432204158764318197271221382224023195447094411015278242039523814692300853174867032981038111164099932168510535334157448428121589154894334139677798399201558304122992656155391663639538309846534038802892094715525682726714737971851485230718406225440001884718431358264294869973884150574895504623620311585539588009713652095500882957334733605388328419128343031319441876596090105044318107689329521415138861643417784105632763736802689201106841821857319764850982433179582312940590861676899019279484730326145830745753467662983235342083424334842390598670924192953755966126742017192377481720112619454774257225863483240260548028205824216651883407296936378207711133818683839589685431455413788057071188239603502676162851256955043059518278973562541800576959202592348415460872582104534013506073124768073886108105207612824560681652493066322697165446116494083725962711229247817844748234929992950162742188464058395660181298189642182276620780542508576151527795086354842789234053156158851583323734928260239999257625596894641787032206642894577567055957017483631386316999071050624518560805583287929261866839501914325042968504650823028387654651541753000698117546458112946612475502210387825463957846091946495088033368979890828418224803212550435495492801494603814899416910060006924998804165727840568162919132654900327014540840249157172360486529322906331507124240732915756086145072748177714472472484157904928679428610048061047050364650800362901642791395238731523524139071378178496122699439346773284827145533401463425928367500409964304025440040101107828956587744900003421898878491537309537039543573935487117004458379350742242984164541591346936867942041818460931505070072225537231592392318422409615582293341890576245217389257282268057739293531458218337543109117166834155739443336697658542242086760924439928124605496506906530314160059055100498432303049030759574298854584009737063348099729746665848181759117205345245934947512863334062409319350582325744543164809188469495891567054861016039346627730066796699863058751458731494421905516964015033671310891487881576340533555602981572836280758332097008853142445588291267657594947226456804144562912024127942174017774715889917826342726068657357377815023408631598506055736598317839245006543017461203151911837040872481588381899011170343968120419280353222029707197428207321624394480684408142566145626352001501090754204387205495343891456532766259862001109076259356339134411232296712169408551394820046867081395162570868206781537302550326676759909858586677248593298209725594038465222315897625756992460329815256783763839078734246199868200895229594539074730673768288079934108926240682815020913546445621094692176470293262827977440194577237268034861363176671539264407491238781672830912979646105196170846397417414525724905719787830642951260473065255443212799487462772143152119255904129276745812756720555295306305370996670831502066889540311670073099670500462831650131673406302522575782433712484593959063548067069521414683215572149068979941346730760836242579615572071604351287533930854129591440272126110772458911336664492806198589169329175047338094203881892930599969818820387145294607549166994677541259995971843752302949925638815712585165336722018896400850404935427566962128378789966282854544038126859866349842443582261396057815554272804966186491087414766080188591705405284364131844659174183289125625212069442216596247261843045958733296388484805189299915665767856588503869883301834099367693246560515349047331144738505697117714483360967148859503173662503402822158445294300779319853005736518543764813512388711931668281454046755487632607354922009772919756479543163312841282981006663039432078861026809627907039677956458951765729561418729926493850958273696036887613172541901890689636858601016370200896338835005241119807516242346265588833137019748595300234687886398465742373148289798551453590885997731017692751873192088199224984782860014489430482042409449880960466613192113879703604524649457833943681016793585027955259625459970754036511866181298884142797252060701748564437861882624588955239710812319384117480041709676465981622456494108090431789240860814998980904167408596323001336252197684168470928060019595303627087073918012460584634402839428724789970088830185362765651669950243556087634857354674025661360680813846740084253905877851059469707010905998826978838747753378559902008146247822523950601267411893552571700003895061972743105892713171873889748787649629516629094957795212201578790341002175663189708356603823402416914671413589586901154153610129078642926737565014456348282549177136406734751680571236532921400329956227301980498216862262984066798305737216918794396539394166228472374921644645362005477294621403990082584943812370020791916374940139199011901483463839615714218618345082892160927584365512776835803567129417040864800959151632732600592442304774691964601513801601187017987468954770518773944515879347513554158242298717618136491700471433575174231733737520066542565423432433042366517990756719604665820793527809527591818937689881916465462495354974803847122418948099599290142879146630144227533174507982907697095537636769827973812709718263396960584494342285105208998092653094338675155199031295838243776751978784169586360828641626737220595460062461471479138922529920850707014378632786233724095877342542919590904159419178297266070144338875597455867519819937055690149173724717051109417116476967600496875103704776472451027899759766605743634646583769217114637336101989128731705501571817497513738465444110013733242912199024722287167690518714807602972776414761549584480652935595400312857518938881490334292956397154283457439002520833233492380038728317860845758163964703465665696653539954937930815776460498579042578830769186829087240085562560563008277942044052913249055217483215006408050522841420155068320229615240407009912367649239082093655989097670728757888131536121576273626108892395721489489996981164691711607665865079771625072618970598496754948963726529080423859238591743353731848854548836761329236891583369181068796504038218779960229158865640401707173768731442930536764041391743752999026344058356921912542212394691467306437422416087388432316586353038048898542974866187929413294349772943670760678164013998821703769603513825337745304556379337322843999957710429544779339524708665333376429724685341523730214656446317152911444373187718856883260077513212943271282552446691827258618061225972270215839160653220511497435847215167951806977825535246625082757328143884227026258433324875671935154186195588625418525767150299167193831788427785257281786446631253132151678693918190273746789783425228057442658328259927283352006110479875287196069630866486490816918297325000728492484629945253614320919234495029293945312550434320381428693371877078261145503807220563238912906230411457105764228914065103845492846241378897670800792826107054512032571909676720072525149081840834341953401334985294857997929971124866225617280223009652538890363050974214173477500398092765389332107611299925203234878567159992776729135779000586475382179841291163374150422045516573277620409574158236876310237892279752361668530854488845005778458973368303563568116044635527097533084591254459007754809376743787447533189753667454051266151814672386854986351414219063408919157536097983955596563897925400855742211973346962957326366981002840242389937916435821012489185286072921561589399036106552130708612952724258008183021691629414974666190348023834935919439005505405588377519426084370120104612585049346620924742168413588206750886165599937306474456960930762424957307345727048259722214867701932889192856113953052802391089713475494601040323328014778491148503445969640576425621727686048027044681586670439034639122394123575402059608646160611729913440998765783316694738917937856756547544377593157208307274316060724641988559055999226838960758636202002692995529690791798846276298286470897026930593325992138354432882595211569960224176885053702980133702368546135083550097172489772953742027876867233243196019387876033001086713179783971121168849346062946940879700650673820369618931859530532457650602815610328731384507749171827409980988674138181846412785728200337403349795714399448161845240946132375374924610045840633440321984410727917536917760940583067040414656847798644796332027222508664880810456132118617681012223275108597337792409912298646418579782272756143816027229696273983249245388566893315952454272335335393691256089459255752215450700001125981835557599158050038551596237630947380602223445157329359337415536971674154639895991899213340323289147004132478876063587678254942599082127403916420384670583244601270346633854910008816904860726243707261479289438129711032558242761350458090686100184595742629143078822230530423208789225281822984495545376065912598787917225823158058346471545922382369870310548154043084429406621053402040292539086446693973965830408674740703798437599100668184626914622197422017584114103043102616619370998814912952205465767608248837320952157585298128194967282287051171859334663136383310345565762653142640412205397611109924457949588578765279987292666719929504726444039125918901798780924081529515681496713070405826495348501631743246088840768817295223709917654975163567195107082449695246294589915051350145576690595164810426064188335785810398914987747581620321392531085547612328545147433344495592925309924933463922412859938581178885142522176736635805285035379818121872176285339530746714605184213024101131105395975988399699392639607573722309970006096861439326598977447175506512737972512415988392237593805453913450932810430502973470808060782531089641340383085776211988269319359515186832275150790256164757985820250992768572358660300280639115358828455593593577157292709113753822618805937141905134890687585748920821217697208964893488418504238570060621131528650728189561564054459050131951094712336535543519465252939404959244614734201825533930705274529745601613387822570462953197541475679322643919061497074984269628038515554471462389825318226903874094952159413644987197736252580852493575319001713402174554950307184790241365679294712735090867077082149371296856299352067838127941575572403643581096010676369283075209524040529565268114624678730997292380316699252230675826724582855621892718608883118337525813809107858299518622478351459332955650437695040307980392054222820910220068753435926946766784499703126119071832170347090210350222393285110886555977872827852046904423592119287328090915319400490747739303722465406444344265857846744097304215165074511727663187190892130266672976827940166112876524345181758419697704814444231162475161837426350293551660186623654906354455032044821939818825275949639598178030877748466147429932735093240393603246102550339122855434376125442120401309414969737651480128085145093375614005260197003407022651599170377403891800341100873422296756169311820207390402566091773082882702298225543145865615175735762921552611399661856750712211748722939933769663471057012139458227418823644485550203354460118387756409808372355049640402671707800994071090984656437352985767006504155714155258632842287810066651600756586908398288475542760456869910189482948210349687021087125485182284925355425950789454272388405154818989643403485235031347575193879429356404750075230689446149554731624521590547366202476233088731216625541802430073044525166203347217002878523741439819352976733375230718312244008639932663859984380101266566084200643314477025246092943640654679640376398614606286743912444806043469742927598375190311933665186883629406423099173733201222304533685438921120385740255103322632263047681463364918545130899726667199602442424571722057653289202949205556917859677067222295334240826645373306616099780233927920522510012650743898979304444971438163475622441656297363803251138537118049963962048112350663520964567565261835925213151690134566647674459403024959571172745309963854497955378413816849350786711411476754380797593096313956399663967082415272249688843588276008968732268348743198447223417582405268304958336330068684895903294700026025386228897861813948146208021598822484138832385769548202646455805754711754665592997762128759744010780122783407178181291433397749027601183956810095606787354115290412154153412784528808833164121666171035017005924034580907070387766191695713589536246391947449202098488047560718311285394268527258274748388240302192907418247553498836288691062156284106979287681296399253409623771531463231542687017006901898237914406396399447026818854155458818955273866448317657728428192768332312874999311364491769391734450516555505126481171258998831077939590343762422550239300760308398519348179642134863186776985125869873331130047927783286584339428730867389465735023381847302700781598566783449944107727758394222657008593351009865687606876594408936505916546288950360154228614178838304006409509106735301839705904616977328153347173003849051439333452545383109204082914784682541129191686040651234356093039306605454812746992930243295203253383636211365317811649843843698328892171467593600825483030762772269020678059553276888235572285471896101003961565689047012911335724275280125589225717121208968429440769914274401493922482626320495177565170913525159384503663751888193669208898743115649947521537117605963180883827292239877412223237363238236613417102538417992941625149781463404813623488337683846506894450804315446216616829716618104030116548210285346385666653884282745700186204223564000119658432613287351518639949683042423664022102425527117167375625185432486481094886908160807780983666288033475576378999875632664228031562857295396010132743112503192030957996862161936375110344084950039393013313111669975060768150907004776973085380405064464639496218061451620680025287823593379763681355188899319868570989438618038530076299962776805224474361507059579919905201259438528306641611510995414917717134289364843569122718033245132021843115047924821801182990138678962319400751815415633538534671357288452058450551095834080016500293025817539308040055465320691739037010401989806721173916001389060491460707046562452040103927846970218102113474181476663772120570146006546837126854949391342882446649042513059172371921339227069925976064774752283246070104697754504837932777576770947131973003793479218240696942962942713383683682555039805007196964106079814299279345470915506519398192002771355142020263629608133158104401754949244571053747508597728075825408154954632232912229061728352897904433212798399290845162237632499145797828450598098743733798027788223731108118408589628845829902632657658311276925886258566547398297223836509059091006043099928485166146926035142822403848332412067574560796933185170868091459119314772038574445758989789384560150266275654961894219072599237614794648174773377253112877696523566517526190734993029671407514124256356013759305964029696633920765225015364905770150311114165808587234546201934330866904368466114458288920249770782615757196233970040741648025062261643414653797676468512332252637406018930860763538124340417028181782324169629173416268774571097115063112724680477784391624430650359165632535037920438432594495796990743011484002378892278040833661978137179754177288343200445913185381953116722658156244681983208160579771227425122827380470820615831021153541783703246693700537042823969257734617072424055409974970761318388141357692351015168151794865952027785811396056898740915110226575988083731276414226128523907058574286345543492138330823427657334329775935105431941671994860896856243963957161050643100372305545012044221293281636645243854137234219760170699832276184882339121331188772737441628419189392353385953628371556348312145772199566675292203872626463225761757012501837421166352765432223432599512704485528218286359055645061546887550441541859926987452647951537492508701734743159125734156372589040308601007260721237366224405472973910941945878850561461099188366159611011394389129098773181638972436940407530303350942273393330334951951660273022480267632717233625644147058830520505174557070654756778945672088485298315144571448842942789819159729529769343343283072610995779709380688706518826176963316933686535877393221922945549431226726593087506353933141563720265811006180922413428641607487151934707991191835240521092406321034483589532652250673167920607122539130144470778653607619641130522041463962366665585716237650014117583028893322421253814434465096678113986319077491455017741361425164603931610291908263191114360862967327221778270220447145108194666211261877661093553777868293220709100303491369763125262678205035649561367254802052462931101789581703498551069694365351449245308803258587717196361868875912309697890956161910229306133635373438073844492082700243958631225263115059286852652401888281873866127191007147039612549023239143509123651798445020555647707543587052070712702845689632381454859888580348039303848562221411396184579763394276605261389658071256388540413928255860851067781192809778074045715621163942510235691490919497575713854796431221457976307079287345526415943165823335120584370345366660177974056196342943604415728649717539367638503736761851025180540230535603002868461563146491353461733598096685281653756271430380134399293675799040944605319584743024840827116062006267716573032336606993341349315520455850804856731713269726454404633830124475028636703096226652685561763502903067377521077577793085143491194699142972188190335136398122201958503116724985592556624143384178030385590715737581068467305309222709341616634735651431927567301074540408070426068889998428775749357415132856282013254051005855880606789103393150708201165316182384530283163415961155176343488289960018283091946421330459928057246706994422564771744354667987736285044003352536948236128154874025543417012942026011538679821454169920418490387928218928340249035175542284518837943247346022938476564727458644104645113614401668491822728612464722262017414617120311427397330254137738166024035354655538259429694961382088078870204292184276891241552807891824935808737085756406241171585656513340493390268506150355782876702612044763500134845219138321091897758317450607802175828594283640996528475143998411140997086883965432312940274266782253487145729133446298570990151787580421816263727092581932927556201990114039743950620127552069995319620205148227625977740058317109173343877547275377811850660951908167528587838793291007584788660832182860476099416957087400605425289269251933825066076512905571141459421830524266787188400648668422014236251706704727056673669164496720428090347008610802489968038161593951797493564915981813435015765459509661430870532323232429103479094243485562057930680802048459041140632733568024491165725037620744782105164858748408624125904432175511209623081498861941326674086762820718577575587782903296253753875265253567338970659477721798400905739914388881073634940836860341482091603341716768175294911546318066776578880158631699496852719425270078795743985860362348951531008555891897360316098152607292214035738127802456820356527314488108948439495196134257572883438831740465026959439218525898254396792263175623196229096442818654825424663275708995225319394585455933959304886968789797145936502012583219438332516073465648546064140147063732138672390491304883236104646055967820769751357317381106833063516653535029733625405930076025320779530215363945041583828765247551469890331563934578052516536965448345398924185693210736377624209593218044018664262070067704444798162390401094934389986093510156743669762177020805052909615151582614489388612043552337450374204349964354750413730163519340645831251342003063790083336219460510787849776470225988441721727442777234252501873207990627054255197781491921165877373080358655525077777664147150594754536602419742589540104920740261173165511034827370299411584924890819739173649864042926363137828002238835982094571918530759835807300867825275749845453290211098701178301944502438232882980812165411177844060796921464721856963035507814389200095598662194562367528388989103603102204390729372038948331865349056533892332780849183834520688992528794696023457680589599594838652265017671335561200200487203117758454012889734988328190415859018523343763637805796796906588077354298114306329707322416899293321938679624719774739220057037087210064290022437760047924268034142718068275177500139559413285727999202273059565644863413458142345282100438628343081549753745198248588070611466908848087873235255719635602500075960410227527320399922801357721916517315388095084401126650593300776148005928864482736903959772368381113461751269495872690052011508997384802386157511152863175718994231483057144116947350043944038888473624441971213296939167152778309212821225102423353161705325724019093743914247508823698427997669692483936108455586369407488898979364321139701605614065119835381328142729062532576317450542706735153926544541179110556542559255934609353118964820030848932013543296875445842408573383871888141676687980747810616481033311928456022695932454214577558153172688050031048320178513793036478876216992586407537643594000011609502828195597983952292785064907522971898095807875150501064785150220803706919787843528101442448418738041702054845092919437806299054216075710263079608444900138361067159905637077334495412895046270019598668282269596718109721686468963770788484447448360660355840076898365631520730115918123269495608014288502675287371507906088186477999717308669941014291746317804546710262474218870064971157287513346006026331857875447814470115600111559844714996428016578409696030894990962015969055787825099048468540726388875723572175543761042102312653001593486256429273894018843029438815274699317784863633538501573147530380610322573811674612918991674007147955957301452342812646894838433751212098264263482586249314765779338886406192276152082023625883319238418097851951399169302868038835552616633741032541731028752824367615246011674660540539738077272615764516841801831565131599460509409552531600590401968649421130384410686023563916299458428286568252652466065551971406317741913299809621990380091863512697191754986642057286187907908359961585658791989151273538891776411851429497123286511694763551783198425510935031949464411677981331528484753266609957174685091377739684649204614828304191541049287284319886236815808805698402432093145073087947592697454555647144233105741152898411805654610754196010357324539371283623901673951221788079535000759612839333580612926289432768469112329652492459185927166899758296056910334497415573106955178439745059088261849728877205907670029581801881962234105046936389342549608997775761886397766595638486444785663794615449367346540193501182811794190801408574500565260175335001119601751830521038789010306026591090186174390463787405885005234069126366886320937931650967641000159855252629934582872467081247687556626397422929050905130582604113970240483488675880737872755952024892601446756102918811412833845779184262008740668628018312050061976313354916301970661427806962949797839045974919521245222336639872571206812350099465252044093037620396281083148827770430209443303472436555432171470726432775948590385950444111025581649763768431298401286994630809718574552319721899599354247025942676447933420213950038042063091189912836667050842044124965546480223333984777457897291351384792069413000360628294979736692987627959035290870872067379624691364559626827096350159423102906623093759013680601386776185228817420277357421517325793260105598495646426455096565295099945373711616252790694804852350425500073731080236470688136188149549818804178960468358091640181671568704607469856851379679430205674112818843283437939977465402670790412200847657156474350142221970795344800214346809961485525385706444978154662527872687882851810957614984482961093716601481350623719627986682072253102179826289637765388349467179589631111814631898860657043960813635741105560944883055568910215068068304314833116636471769089895743073889337518737600424574544360042903518124723343520418022387592113835591799322996042566944687338837642265496902126936061924595364426634595997040012499190790352071209719688031589129099796641995811397792423818197708584612392644812678981838050562509893148966904663827779480496386461455358765340918262142238432178982203285453413359136460110924772335460922987962061588381143283006214805907683748990768679839003328499784399095775235247838629968927314067583416992188762015154912959387895444290085930512546282241052379845462085621904693498787704976554734773920522038382023949445160842660740916209717081461215753278867015561482144545790733193547276544144784254165026187677999478109276909060407681281087731215817573729636936040281065687637503458733836416525704613853033580908107820438854714348547176964751256874811587377938967416690994967562346963839861840263111033006261558264195111755931636417240610002955098578798240820527940154692601676879831941422905915142251769529438407422437662483262240156273535161710991880873810248692322354626661593821008446267327891573562530588554213293049062075838794919379683548704187009831298358505495887672734456999269107358017983751557096293763032231104627855528669398573219757561757164733906275830310407237453271884895802697588477454121893107480430244605928946227688104137784109992716748396525228165462656380056143547700890414741023166829895892034469659180765759624690464389325277570522417375484446768667193484123515718024918069832469334775130853754186583487509398999154529154313699541312158232888896428039931470724615727485780178836925224408323779521104120893264004104966804706859796771883454066479009544446577497995574142493328371240145176943581737939051550651210341136857885882134280977614653981646814821569149196412836238075025872395181815870797159216483216698292751040181963709668649990270228331451555182705172968151568191967991386249609393999648195073007260783769618228827861816310688219865304466773396540225311784053219751352108380593416524792756585269186533173065193604037463699577864386594216598247653555790894344731047928686862468357861843366707774498758196763297052124285020958530764235777942544706703666410792292839590772505207253411219905755167978609920161179533801232478875952732667455397114729975435320934457761064611223977925117790623856992594561348470518987683684643138083210889414412139965598869365976928605065417018280452776032276840294750041562808300233468954933055403982936203536407488289426088219586360363877585117525008311257038075547256265237127589407341450022194796535696899731769136284656600956191314187331500840855033162086695060469828994907302819344802864482478898739621670207960644688978166647885282100684299776588690133467927110274085562224716691785848236162212229597049752758142700350713146723795607656846710037254380982066119423920128595913098703832148960921084690543880177189597431738489247086559823842105593448919245773912608352949158757733753142136747163447188455358382791956762051471528698997834690129813434529494387709953957382428461149266434631406131626176314432758697413156131501669220882989243747113413947438936312920969412742018986177483576998430827821110117836795221972728366111237599097188319411311614503184677142333725078665918403312832030428481876895271818288240524141607635488401814390220346056389405296244352282913006502511007227645205158280865182637744787874595403387614045394118330181794024686551350058102703417270083404119880154893221340741421586420834149039280533885725910415162207521535188784757645805405822887966822976281553404488082251901031457475381025535876436061685755918677932819743558073111846802547565324548409992245045485843822738432684658556705433444810917771316770748035557300261576423440964645363351151516796550205421119853820167268837247683885280115511944453985525642859339948668970711022237302187484395793748693540187912820733566579367763303857762585176395912452432637603186907459862315853525633637733209635412101156218065965677442255831001307885595073866028895095257830604971873116011056019311751887636017613788616859486466858903561060084421666269862514518633648172429822131586302815876514595937813733492435828412784615059995530232103519394584729612241210372833843304141494976022618462699213252063784523263942889090564464915831007402974872124857424934144653174708590092850311834283083653820598361755710560330019605323170307719437494762612274627846856201744556559697271486249571978270081197814466906277293603107629600366072287815027899033616590596556615508721277114961965648699067898973744995424238731582007827590755017613766776089114241229329039049173064842885952013850291982825570757428430739999702925337524521970953157978172937414572313178336713090299793649281785515810502791446372870364684648096945866310234612210967643403870106304834799408190905082716188258469036538774474898321590916047554532906603338477092246816282906474407809132438163470559962466574721155636619374634909036810065704001610240209868402067961993537735105448568927508590270374732319457633301398075288845882096333508094627445035060521385884390252578707133494811736074526634299705152695807402745327870642000259382256687237415060405522495989941718592171284086587683556672860167408599096423814597692061866167523411939216199030869165002200756109786295910042548988170200182320283583590624892506106911589701494359060452785516503391801421440695360717583483664935942572921558848575788440096536568175541108436143376786731557844469092992495389305428952195108054393612204476351967093681820666995676780021807195210046358091417196163894068330539283804338313267538383467695382850429903459697402095516899488993190225929881529770708002258082244019951326843793353744594491017429278267030446288048448775956772836467879131729388427457652705928308575825478139241321779617638058454307479294014951264166749497734129805377918629902931849915212087073997346513726767258455469453447420007511275815515653300361361702380944455880298896419871581050963035893894775813740647296480072134131668624768247842374035896621406620030284623071954485910412022526932769258238166585263370848646927103060664507203199823177734615960711729201988976696130004651012405840125458688245664227041468589531482645213719496449817575407296018162745850377778784657705265497062767276262955863072258630449602188984455177074019833834984021210801916551876401292426340714987912775537329739842632718559539106737259798671765008299593334745959951517865387304627684013098058162989083244110244491444727854916683569278165598291978939062932561970999750102456410250323722363704944903147439948372427028124608994205641773525008220980738332535462482095937694686783485259177220604626951189837148268442124484892177303835430638514181907895154814694773643969752995251273113655598899676429063256176932959826716986897712989119893681239322358056480789178105014391164308702119531397016854280043183657398208846378061445571766133882115137944702447665644879733336274016665936555268519003531688529812935753910764407482845804448179408401041657892363443263321321673840234699862080534576616633925684741547271472928538009687030136816664378496321530048430011491303159449138314847354554202782631476288623134906655688883001897771293391544911484869345575939614647279073539577030549966518766904931448596327093058238938353557976263657643429154302315214849673704822837344754391543307307865568693002948868242647178223025708150092464164366901522376302335159843896665038319314304860692512277515895162493279650529875728789221866700037463561591942581090145790301331367518627861085858519583487607580444138806105608498216790925678667437478198321204811280204766480153245300928141934132217780753467169403415551096555700465624711935293808623326910218987370696482050811689204481943907448706132848908519546536670523112007317066277242501679605375884208006192535336984278496798394054794193284172512508354727899008669655921495186873278453635969012936205579054327131429956818182484301630330859019842716563261458580595505647917757097411540932076318125707868299110694304540412040311690680463747315045850523966201433521103947842861400446976379284282933687639457186824044005027244369454118309260335086567616573468468715013846474304549689990170836290990371549540327539875685078595956438456923995395290683442208256426405818646119635624791599519848339839295526055609806013020105600032265435615439874848078952028214889919207001305551639713123682542571554285570543599489664458635053579398942707168964506893028556391823180597398504063805503269482614616935091100455823276235112988043593708165802424818737364629668065135587253743590285456647333697712994781519984498156771350906644646114739718848866990443177905736396881042586013504611150216756632857799642319203701685958069023231135933590857177749611496586536084063196020052215541070234719187692975792267907430348601849006456502898504703191988494195917488189068485679503954700032962384558270921101650668078782205798375500884669818707550249125232709068317662856714040770647621492523533989324743106829252161371563927599619417224425113271450668925766612411426187675450703920801486362105460558572299747235416722753626885038593933798903895758586944155822387990058345934688187544767239347664029948410315265324821694778747657299928230771112720959462657618501419399626686143723317360720519048945192428955009269341325158502994474035201183472492134038935386236035039566097682412785111245746008510551863722476304272241725542305165872121672025365810354640222341828179685531223333955351120355464614277403345785059985407981263408073830173603679981178494486580306291411347301356943283603011240044922375788457723854964603185390063053078704293038947048263018561590283268916596118368957674696911794029520331721627474058436880803730189016767282938600366833598525953530082592716252787247499188668001521423656200295006022819675348159174733734035724268619112234114719982737278620540532676590780240826994110597862274555283121920190523760753996362401147376248635147597337761456383174492968816789551389782122365958783684043821933749468166065331351664236861066611387727677634314811111331730873613080238989750049798303042293938502551265022976755705590579398034485761133197839161163414056719591706276681257138464747796459011039961846782058583425117531271056878756287959253668251915640036065812513263016228970280924217958708083388513006308088180740131468462066564139342782529778532484708799281720130065993642472741040459101884416283163757862164090324106097345470259609698676478068241103888954850598826889447972524035813034954119662920607522756179449345459896225256277508107820669821337943777934936957151485550670183371862489016869791859268106109854304612690833783467874099314520973168933431347041253214580572906135981831079256163462475617443175656787739486199138054895943941480611921486296983582260169199412620753685429649929522396290325172513431839037238599873254078324755406570948037425667382559254982710883824193382863571082181073379952709588006645196730627353056033676367662992136270753722771264499420806923889836677712566056487949927826901520878091784645015790876635037807583607633246648820221745410790635575135771460863377270293526475897041614323132547065809434068702373066093560621797031886201184493819609191803193894536208244858948220544791672476250814671821125235540114961067821412938230674191613520690089699352796457604671939228740521760162444004396767261173518699014002525728535567868248820045558290491619502512734186645642987681575256270246586988943064973179275127710013190535398857649738901712700248698290736895224098386838383809550455343318206072938393461216393122003207516337876736614334750345229965924019419091224029556112119299196141489301277405391844363988917568262850519186055087536248518374679936106699125338616249901967378619254714507465408858404543960415023324069021043275116046844405574626728148340768380451346287491098168191642528918627446489084637623108319359951959597986583162215757952062039829479424528032646105157565171978965152808868757297962469840952704124904136878087672432559731899446726927939247115363183519730512054845855627588810909288157569888638214049388988588734428969238919481611890060743264699126915907256303687017592378812567278096151157347078077517920291052243768138790576088669604667421447705093360370343065318124406389289527922963613280033531594083125979912925761926486773898458844575759762987898033230734891345896403379198587513630502329663954125138242865108299728027239443414067822704750128477187805634916676444207660076654843120570802136652611582190169231174840393004410133065421249425572306803196618209770586009963429200953503932237051176810784328089797026966402962734119116834726021643789502347713992222741512787045646996605108440511814469132145589672090339910920530366248068455123142663499150889511689069830847395602191407863581901739333074735775758014279644068684468607931296603088057061954379908732569936582415499062497745187026316282946096468481427973679616726186897637276052812471990477243204587923835634642326474245210785899894954535599436068176595019585915534343846623126072694866296772710565348279609244763979192095909416668866965612267535654392558662023459154712866476287997702717786068562867859444268201244686618347629289394874861003840548718439207981913490913368959779741380264627228249102692470259005099164070884268374140565505628008819104369698874387315499647336861958285496675801295477701722542390503432184517854609224137627093180076589978758292913936993740424483193501133308132440333860778669407460620894493915787526413171164104950811581816633560605033981942753419572830369317959293294348966585010510871688000714760250657687296550775457176447489582670586410248742471912851694278776439879104696999324626056761939671602324701561020053560792725936956789141959960221691844005566308273273200465772396379479571761104997694270023184684249259125527964585161678657508411366257957131185582052871393706651792540437413849090284295942208595698913506995021799359942425777245279863783489189653948670380024799775143519496848815428015856556901441088344927954248261283808827171846869187059098433281447707864109473740179463476820746965347258698516144421577478198747652657033287532169565071790335727010734726771135912382171693967970621687652750241892293449112985930474175826013419755546080037527853116234687871456030721147471686013312465348175655836284079533676715705834798749358688707950402972624904258296323828453687485786241062273235012887473852078911880468218263547071930549519709753284019556485954348738088511620671723342828283190937926841470699270914007811092642843187233186562482059045387242254954896423398192346168820359638189027743847901570343519542927680222383356258956680137783873089590762060298332890137301766540189771799351679738782643506471783915153538849762929935451483145560301804126689966935728963167996650206732873733170109733428917988992777384743858246782817225721738880573442487185370055065669435256463426892837260222987354399459391989529742740159236056910696615871441018949032136131171020210800408957455242731062994056103367862770054810914229650924373819144449673448601897661548059747747109957677789607832945037572668090520967569057688508432490680725790384432339113610700378176779149901760439222190455635393121633309768750392057063849059508616444723094469916246784333637271517869157795332382257177009498597220092699829644934068352867317698864465598795506585030709807945709241675848843171401130869609142598715267682540675344840161822641993063765601860159894425011846276256315285429860778067481803460648844112754697660221217706717402497682446250074836362519996464835962777055319106496947952110933274059311460723325336636726594474926609811830211566109635864158049018016196846750856110199496049040475916361822773379862101161919700494360857234118739144148572495115996839612295010366137040533996134379588003333927961189575565941800217694774901327926741374345430583943717392204413800739733534772274636276301955183133717410933523411337971931608955470708388627905749289722781804598039781443357665491686346256720056015940451069538765600057200950870311469201368190684632012033222453816599275325448065338627492698539294907712922790387912591681063351059822272738548312176812637711403553862463656738828442308068692382313450846303027808170240757582419893483236161682984605789839995820881362690757634343492253337386146284814134090113139440820521644279010133225893650771831980004869216501739711749605560523052741727954969300288471632621978624014317909929693325135488532099130756524034402139627957260112434288043866464105925418741729488719699439610978308325174494107276470363811220417589198930369630557178746502685310879333959272513219519929159104521305446226427388873400231528363446616369402924548643888858032346376303987436884907576251911152222420356793118374715558298542515367793973532943328264489105760907307232312082588788263107711463849345440251039164959282416895232136062373562293254992877594328022422926338355122983584108271558615862383527770708859354410283859916204342517814247930458031338731148729895268364261495459595164203803169690567804600121647361050505830887387866822822494817118249308756395029291552507256709486579642921789249550816687132812169511572527914282866989684767605802924284325414560311301832241270409081756073433689880752748278496036449882125012621771078674112101349829484496316951077582277152582089662513697995541733260019324955637159251130527082108770470182812247598860407225627857207705039606216915419485394848890522411661347765533605267641228560506666982565419165480082270434619024543491063538581933837804663685108361550065984404211465393306550209648319074888177800933272891178645582766525628175257423620723298458954464269082699744786245926719220205345081974787733203851929402085510219707394907543877313789849182680951373139270858655550250470307391650530151040840297942501071057277217368089353994260651549512649177774970824747712113834865603341216084772438367164755913954943092560803380898617212563931717083319438844480648715113189524011963830765133270269806272340743993878540038510358314432578027271192402233269193793776858934593508937352672622103934359327985247482647980672482930000621459667055783262864613298460341001447119666446845715523444369196190241896997657736084241018420987351744704181992346225423239444619761782753121641266469294766361197151234655775366345608360068029907127897773278934525306533485706962352787225421056922995903652168928905111751610410135522138022585722449681825139430606220900230585244484042613817443972065547714491275198531120690731433257128002798208203380278954343916102355273786362851186584066015062268489202885606073323673418731619017804985516944914093150313951634687313667407983248535932792139867526056681213227318790416848599256356115029958286587624074253449345171556118865520971563801638509549556863244400407058417736651803759044874702988997318762763329213524861239355371653400305528135109334635009782998528415320690888249015498978335983050746953812387001507115770072314457511153699391310695618887359790995792612703628680016544201552507653636515959071693600236417815651926928702747397177937978874797460583028633098181427199230855667385351811901794443178015282937250325957975421987115398727540146445414810475243672764183827933844718906908804327909307304278628395959668494932580552099541519081490224173362841930944028469455647394650780913744427935651650686019268822617554179867548690378069303858027696158472120763904232792038200437861622966311837537400166968180146036193232188247923084355522446088056148498049117575010983865264046631132713888572288499344628101129561127919251352159719230746203991812567827172512600344083645173610756018057128004868228316592121537375193162643513739895628710513380189156198503301935567282579060256830420029273127846093479233526109203060923860509252786383849136960970805138761523029071546012143740659679637532582648021420649677305958565873267983909046847289809014724410165907770239801058523975310066448776248316331751495253214855350734888689492607654318398304957029837190478307355160496266468078610720412986183781424752181826805365584184056622331780608817430087071414013313483898365822777843738222083874545369550013554450828570062757783458979503106426540962569284809486425140762782835905749983206660452879646716225029612401378838989866933562401400579952216466109499864252562596482040738502944040145210649476861428069409496508411268469779334968807113420503381407967266031144967343945332014140891967645005416991383739591532196797481117007129410677628410200132683768488680387540122625133935597591862597161959411264307435826793672082570977233280803699257213606592368959592166084834592210528835410174407483752400627389389815648531707650044653629735006238108624882059379996452343257583399719883565827391404827356481207354322979375867602958759823362058959065057726739494955156110546251159322278184502602657876241583358695251792342767881428564895547631315835793161237404703057130354712444766426918676706449329786653928550442447353224209534782260571575261963839934178862976610630371450069447350211029783140944307946079724785923230399278337326482636663257384405318681234206747730500170610146805033995599055568402694254420312510201300542977171942946972184169563421247755429819921231137307043281009939212098166489582886628349653468951805390923126663367011099837111756520648827451994456296089480406476167487860605005899532172647078741319293850254171562013799660750796851870282300832933200960393269746955830631986860038644058652357435769974608744016706117261157507749133133267793081346623229031433428984835733327563977203269743471282996672328665299375589517242570394258236575129540779771968280888809154299369642454826559051598692832183517991545593286551928398464240425118930434920178795798715622460906595147820669303884906326256601272563930358531064924862431268158695035362712424767945992205148182756868794724252745828245152203421840882059929821696787258826437157775117431127025295900665335479366738697795518770018235005017118970192915447911463424356981966444393295629395989564878349964892085941373414770620714124172202984711735083834397201808983021506175675710674002515357544100820249366582215076296407269122587804262995262380392782840060761378408075069384100108048464493799638792504419681167193074828525773278269594521725209566434030507045473993038853745583255482928238494339626217754103264427394783674689472782287402503156571290107496408846281657900298990810845036462745589696146469053945775901113888039273271258191091544603750912595370382048514001441954330154303478366750325225024291928077292980855594632897474589055959609543940397088710988032731906648349734194197201979405078523998733726418467524730792081599159516307594077412356277636701984734071526993010403790397737497521599202892347239511848252016110170192608860342964635696820214296408916203945771494362180105379710814729269124201630783902380006518761059605377826705817308083679067426178218208844845815319455714979884305607817770474912827818819732892117735174018930594748366271418057958950010760555388888160357172293530553419573090919019486830735075581129671448555355660550531156944045692434773702534081177219903578072358587211773989404413965059369134753656968258191341831072126534904699285089085408078396768948600617996298656948443422827682301860609762319055422960495200813459337130691623786943563487546671064289557279780676881141211853197356853013299649703570407566776720188877448649897819952706268611745557639734406575495138614973090334972634371571348256222020530421651188147422326739002202652345249260683418576088639760155674719501687182887768344660458578498114394110965836816773623825771056297773601128621989761060344980554499148597548199283391518085503400887544354568394238252572474594357853401520769900942466411963798761258503506306557979829204598871994357938589138479662319124602736680992110294774229109775583886059345644509965187275938080868473515176903221059201881625718137743907146302458756088774805762425359690342295238959085806486175434123745311812252784866423704437512427502032614012805965646039990062655526891164223722934573376814849488877844288657246863320697823660911531239377868293550746959885880361999771203561281058091145873342519467286270525214440846893143733289176239104726162191446944081862985471024824128087246044026391414029897135249623361149670243526057780762701425767132209917578068757667915872097121600349180716901426405031270851759376982790924351319497732412652193286531327007374055376351447477931981245186113804775370654204743634249072936691810187221331958784420124238232476245774147774713067759917201562296869778501396526658996957813098542283651639403426842143980587806466258467106584848187728280054807901326561058988456152302936193243534411791104599187312636267854117431954329859274490029077316167809199487464555501713405345973690369274513583745513887898308034252491068990111920811347685852624778621610212228855292122053385648284409782403343668555192699509434909455032283676581205481366008211176630661480535328782787312568176544483138021704945578923629276475071535317504698292696782435623883639243637456470640025269537240211867414497805359139364818872294835334145571337027709828241827940105886690494542860137763135697309137874510134741376602809192825333009924043917914716356433435413890097343738199511949866583318134547964332596620229801417325394383172705055847663771833462190716120608378942019744286469050166759456087729495861255202815531741213865805738354983461786729284537207440523036111655730158216871695958438802207736395649553561904980501751642110456887495473674713545146580011574835654400159818035315943877803235444922896160459796603273897742470598206439239000248394627102093686122308478914633421518160170114150911932359769842995470895851319610845306997138499362372549857209045048368444706433324511638847762119984727785187631732298926362743902270049259481350932192670828477599145530620210231552873574650157959359455086790394312280452833615447575155937233285605873043297271229118971829710578567877931777855020417821566072480727625584821968070425995563706217879001256492133053998833716212812220598200927055598000977052275155618852881730487249583946121341377997841645682944617446764785982600498097705342218443288923561212161408701209605632069041083903896335608749852182285336164927340959833394210930124230756542356041486154072143912297898251083121203528624626147617024101014993995225188742705045318490489245073136149931959279078283153463679786412039576751047708807209721149241885209246755812934069953462299807335733463895626815335581707193055548039769681425703182662212779992724535862948523388871974849229285589717863286374467261663798621335855057937349719391377974329305374639053899791401605921665801660301555719157578408100091979529599590243145287238053696034337502758191185398604289438764652838056577090649458676268477014956656276651628680636499829180143883193195440314055032818524929713373793400240109126538276338835692513089557335155252650355089507291235123536866896286441224318381393834544092970818344767378898261803868363887126744657700068684781569153266797585516349721614643050900950014159229578260368252825010170323989089028781139920297715649439645170195230335850970923671872677450442567120823669884625470975244294361710457936371635647148678871659472239201988077140059087404876421314761776908895478194856278531090888410546206983220780842350453898371678837339245514773002409828088254722846072715429508388587096189172765546508878383578702120905978996378585718221268582546197639361989693802954066922613620079227558754266205774906164805855671116490468509505697310234547069427107962084189214097232887807951487330776512811168783213049988324342915882496260363794137402040490291519468191122412843103946357046678224421840724443216654623963269571112424919947209801704779516884195699218925325687799406324629535584762443832893161076027516726793375259069037356448446410689336534892434898696798456816575284709085474377225406947236839436956415035335706965857738997738312878907963875430704461776307697343717615944029179610864577424391526709640104965543424703244442028401588176957227152641326029928910887266901822505603248853401453013752497864628466531159066015377381744258070856288658939027259163592817035722288535146705679357702792154368863226810387362875554808572913896102920970281794327267280090945394496915429558435298008214564513816176658395744948054401387231373836481685788578955999498816415936129087331371393621952305372617431067598397330414939097388558857053099793509320842529323113480883502524112065176031953843759310881274587511312767655660508542863534097735241321996375663791514087109223856963169674671593319985210573477894640448466324946127582612716746359148271181431550315928012028510515366209619736081112760287502597200810211124674438249703046023813433197158380697632633116842719014333674904890371098045768927782708817595493036005341571312961039790743584024333025682034695773910105691412477289736682949955715155086447830469533506601726420949267086916521672618720931631973430052561942566123733888717334123635655982870722258212079249705382182522564723048739312237230370579409281631322174191122185908127661407482725464917498217046180665882253013937904349105671763266471955692676586365880185643790889637760637424007707657146577959515110561819221235196467896009252193884328553720979034139060312270506019492225505602804933689884932182005696496717167555304949864286525558443785725312850325263912520482517023309057095438608844359790671897513068580328287285901832838889899261150615555010059381640599135420731071584078936005666612597554011154121178829512637459461059397596881488853164044996898294016202115798446212159209688918642217484069781528848767546830467174440943442209149474235306133076455559736075977966121734245888808256031032620005537825456923191031647150268305990631144653820217253027339966013490277090312716141462069082111204931974799225022661353577878327942572431689683614264769243945853779636784245998307910490698688966476272549748124416074853981215873731603654417404226475476993796278189331727473684600117866330597214387182482828375603270048226083243902304015771642391509131515567088747235288472821354265018881077903832932412209141033438892649589257047982660183260981023743432745022136459652125720252734439982336815475926300050417457097893021860775491604628284091797494182620366313485401006012214900368217177958491566555806283656892793945535552366457996827192915447768723897072980461935294647442062927514226032255938241531307270960832955923771296613246458741338284345979015114274091778146841832276002983818396315820976802008080670297294507902856676365500866576593430282418003184270215139995908383146150354019057347497701179542576332184058665461980078023013729777333715707849039128971762679043560849246884109998437907131167611850971390617319766629806888762324424407888106469781350354120514676110741980130026958352164982511835068510203937678632809163694967679119477775739687226105825188264403199930365497786796810184178527676982135268569551240919861710730891795418146534322724800109373956661042656746794727293947105706531423230049320841250298076134868335887248750160098465890839323456555747214563139282129438534972570013951943684228183203697755562072532669415901653445973614567008732144896814782132487288354304920326013894471720324747608093520141358358033098519195030030148382124862116749518832599299935673458453469190221710099612426544999688940549512501052909299658408144961932949201802911470969491618904672640526717871442334091800113822263716858001365147418944208927435265709969865943451327779580472838534589893584062171649712817717955184017876098014640615012342652301834095137695706757573561236078160919276510889674809542676254847618508361595623604866888815329255568659414953449505458564905396263742872869618361959278540008229876943282253392042542866793640273182164133141352421340554410581602960922746089798787108762224279741468855182097919010752892633945550867638857731642982618114349465200344734451917876448743531697048347001233895923591332319516559985397097487707215042314346153833542685479519118761295563192043116604041089069860762817412579331912030383337026504388195235418001110707556028109997739682994935954431520289064370818316148194649584936268009489962356378033306808371606804854408804732788922524130610417808545223583501252198962610786153183708409806803473145366136148195048323772508164822294988704023896161141756095263414349475695180893076447891249696917855441772182870524515642624807649671948949885136152661022494098137427564618169880752277003463972954788285649197449373584627276697984418175466978172834068262344477138539567923942268059070332864440289824285791711552185300980378503876887359643745043850784657005900740293268571106165272964614934614126388141475026882570681928834462782642585668430996354596673134958517549225704003764783858287230055633159671344536325918277993726987840043006233290445917317916752898318969459290759263761943776104669554541922484383029504904853530522448276232996553303409104669609583950392749297139373161770441992590506203435123990653907233160853157813589145104789285319915327825279003786489445167529507064164000852821045124824141701947831261429196892424434881863669321944176750037735023971387528693647171023061547076039506116875115656064109448215184698958491641729220208548846912582652348243282687676535793153732143833049904256880049871614384573120735021826334517530687925978438904184163387103927225548387667810681475751894426107099489547065501900067163962369237029479569956306254742787516322984232919387726824929994114268715634817475201883242714522405670919327916535108043155123898316655094117283717855871101167550191217054299461799796657817979734648310548034418572089861117500784439790741069863912575656129985743338759121984971814135227229710738242133193590699842657304235097764154134696443061203483955071370805726480501268607313025004675893719974333160293953217455677750991407908654349515603371136807346773113893113242245740872251348919464802808510708658887713357441023132913263486640221822339018891622288206991878562216410892069913017044760709890179199237181671120240029309266115887473804886421849892757711936473998382705851810526660858139432079010334373404243392711224675910829055898188507775727875279445049996965563383228009623681401481488743081222005599213524984585355444893097085899243351095416006880503152949366386599216801828575847512546471562001144868736797674756435007485718394843860634715939358873725750899368031689401298915518748945262789588541019743972894975846693656221306762810876701949428047846872969794599583201267538241468392829646832660239285768523052097324160706557947874707901977759109860987585394348419745627470927857163013570653993907619424002200281362999001479260444941436266299742245389651242163781393939962225004531032122458566649754992459771969715172655936583769874526113837719925396359666678824390314624945994235865795675635412398511325469794558735516540956802203274046528735314741972060546247431220898560308732512026154162355374860264112430521632436046876785634165261820287841312165468618813464032364695883866279522887277486975006319838872843198688455061763242863376751953875702650284053186324719469162032669058011268100151855673743269207383795733255951259454622005652759688401546193437409626236987892233884225048558131844291717813923571064061796325819270513597513623169334000410705042619653880321819762726716468971348993855936363014571318060541404237576259029400916868459602576006107030068857831313297689737347654525996892830012619075989897463962780777506791189746497561093253696483258654632997495607793384900339700470289582775913883094763915198560012272339288343739297354760729116902358951983539692195487109165427027411761431934066849794601571333515556464077819985487764470264753781305434300461003473525322998104692168624904455164840517848367422908989332681493487271039713769347341778406630126080653863908731950475643366115201416168504508066474200193261817752131690577901387745340971112772543938936043256379495398900529066729246798688753627880585931310599099582270109811269799237812146440704515105972908108004834390933543166756467133552384693219624643509263768845640359916491956365355310238478410716603332077673594505788395692783118548019749829378329832786723615692183663954004604411120443981739565430781754126004011378920872650147434140046121481723746015862602713682570114760753847007314014365788769528867542611865321583452478968757784609389486468067787846936461404607454929945457505410737737371826904820767649548714976633348719817485256580155477645380602126595373066877185027950423185660214796786467967637893959076003824309712208758925792514878945744748852069108792501361683389687890481230520533253325878986166302292737157343047587731045910344914637019864279552336405806725924418295800539498418409942439646121010794548414402773994495016296584404216574542205460155440878093106716374056793435020848327098750728168734321408167317783228750325369883234253493685266594563499501147682240065128310941328871421413217575721438753743705820220499535466999334404796916232914953142862082526781238846592070955710908134168177322404423964773746008793219969790271004054822340612632904452149397050407018707582784660687186242824516109117141485964955960752084459397722852148444595627665685734285118769872705530867845766140632640656736339090102665749048276040546124344412338603831456398841636933948155129303663702855042833909197328356600391574565023866300865909660894542253784477067414794699162044902136736806193322203800490757509390731412536125889730027003796003508079501998805327814164618062309056418354759374656647115283974328868765967670309134471948190257641735888686928512600519383729312608321766107209777707770876541747756488357378726009546616896065671179411675082430496721019467633455343962766014003985894169077526899197665243944899322300708294384431956217098203881738172740787554286165956369702595168676018424155379481737347721811358693633655110263175357166236876151425605944530509582005891265041419972312415831667457065517352633892803918285016451422444319091893052477463486697536896079537663647719143144580910288636160172771071663941495931787541196365493570039384934398586813396180250702189822678012010688386617832189653995916574109152211625533262882226206311631587013363335376608030814773132302872478200388975821960007940450877010456166059668681651446885102000754593362040202839195893211576226734817134669462229617613104462209681202653718282695616066220910722332942020663210605591818929227711021422738657469707498966800668046617249057593524672994399045266110499754139676991163184385475098728605520051364244203244504959350466532992530346125901292984131687556589444756311088380675237564294998862329939056497898781171471942930433008968117336721846863057212828944155547534708438913446451495277609247548934993817167749988942649951954914489420332297180116960409953870150050319697694620049422038651893760546044796974251243980053365582899893179258457609402699508743162272334686847828301670991442540062138419995201224328183784140872808418327421326322806107606274359406390395845393994456699250446242129897081223235770513379487219510829467574177799904297860109877748821778949249623294013791372576888883139079481755744178009973703013962187153701286634795441970138615948433411967563773435751889521815435642945958256567945728934557336619923236736933074513050932567876519378670730949227179899435455500158698613472782012477179869451012342802184693295856893441325777936872780841993322742775271111611373906534994542619547281340110035506044385612044610527771119979280272476785738842606533037556313605417207437839332089872637414616262952700750501278448240933315566973460689540224017179524389000834589608654625481908676822758890104961301927796835303060733401333008765249018782113426698308832573196638031176145551068267258796830943357083538512707749129574332159421399387902092552150281849747532744849253622519037203766432512025238333249935754388836788201239031557853609466667648532496587412260174581145943056524530250740163314891784703248828315475622139993154426265423454167723714355517420988261539945951434353720341183411576138943205742844015050048180959645279723939427436920306915972097142219914954996561188444721726699827937023861890644070485279508449968686124855232495473902480678697117160725327693253378870392183643843133816631960178821610659317703519443746747168878567617682181774267920546548815936645550287931728266096644457160722814443390197517279595860552940968051568089159655401807067409701018205304779628371412241784220126406516711385890173082108847971565616096862979863510068108739120518700111491155121507619104066572609941281222478836534412452710999537415909043452275653190900104824066530367748294767547582470302654747899561874326039432995991703123834473514699861278113792729357371548106041861264152441997064121141832847944682960610761254605597939227573043772462517515432765111187250923986364873267582253804876250133607718121942377791244590931869194453374527412120265918792368052003069689616546790736480298679435505871995267582757098327495105805809600431939803085979488496529381074550763821571563470021226747869474694668820233517966753692949358555633850097084247369931371778578122398602927916996240757807102634381047166678747147489531411210955505827388251301494445873172291851006805175556464434224706049832903396052608139006191712201284615260967195349335032817127307909805313016768265412132391883627707168421905721153531960280933244334078828378033678232212841461671452543120508173269467061659174326066961080714056543218844999450330620662598384914405958473048905720124883168352868320405461617677614628753883444867626950015703609334730913922718871592610301385772508692704359619079722291195099865146436780547140184013142999133721040362275266489368176003598839507971106356766169211554618311653407088178053256312003298494586579513105628420359656214361764462913534755857240967518915907293902927698129994642301135602049733572130563303298070390091785457523082549173701266775782448851655646941124756820194033137297646870215619422798250286659909393931587661130152894742305421631724477013661386985112430463309445789658588266348931025580722702038580633811865245888956855985875623802179584743827427589058992937942648887273584596401431538294835707714856839328227200699856194037640231740830493344039769342533697700110221320117988567719580961891928456887712488746605921407593171406749831044832043709531531697717010683448487608593712651217028464793358895064169152292941894495243065652758543750010742300695664286887849415741669614565376299967439690270569711609426449434685925880718981259471561947909607778892055185292471403886947925287138503475324118358096158411784233489921953203731825500562029263426892623771170082732061218405669726449039856891050447235833250030270476311283040093768156730268493239433501285839096379380014367043846944509739745885424504570450033546142181964799125218199552979403414524907834511879644939816899949992025477219759598700162362599822049328373296462813290784633558423444974132375812951907691164104135326643212859799547395615756674658027388015939945521965426891391041403664215710083794067883558231869170834720018085444858409860162223837033188063086810176876746258141907739492119791195838055943305472589364288707237138774666739383534436922228190553649209802191168477949948549827873542322001037976040377734859432486498058366536059755034789554535933442763451865106368026332739934570111170766666127519737480304086977016253323907421965878205108314090427344066217245075633122065376874089360996593199084630546964943595025014870919476068850407405893716449416148061984061559422928269508684135146431362522700319549098986841955929273022827329429737736039047686786233198705479128583660078192902320655114965315802625158356447935528373347844650100116427550986723199481595187380757125759498597777712028287782801533457416466829818633607927439148991000180700069905989677419915819946637054881553056628533175420192654307835969853248062220667170937867823741263255828292907477402900837042755916818159277048396404548873020616161873572402626041551715895209716956383686327706530334439393698275812521513786103302825686619841554910864152717464252399025771702106122975495311783889718255182290348960044014930660099724067638476903318061574617081799130347080385242842241359814471813780978924149540928399557352148674948844644588782167247533270765871032073810297592827599822777232057908329803576641680618709852867900146012492534368839612106842509790001626894626652487602163332522497797624478185786723081366993647632552986011991991375251395198569732606642380890306871900700514987684387245823585876716147110831513137154705375285362769441116551499272231510742988606792240572142576267381388327475696489448429725106954571855837535953717035342966186660280137454869786403236581085557096080182518659997404807547742938493550918433026826044365418153443358690976019599648083285016940365841074397242014413390088873350707966936246866454174857736655313139946049303354482865935723230883040127328395367646912571813568805408347188378123593831230196937576620236984802483632074646359780694317965372334821050739255084418755481543680453264836746319776124706862410406014351536187161920767573634026737244993400008225917574406432970205378485348790471168393003319162282188069741015690612735363852186214377951556130941212312402335711617865060548263442013330805730997281557348759364424166773470074912716759495580949087180047470754415974131073559740710525526146869688729081040817197041649325109393081993457731238857264841351588668147550995934530265174576925227025703145567734326402542237308398629653923767145284547865121480883167930670622223066462582671815593339362867189214221862921742312370743378181294382261787175030900185452259860657862244794603251028265054832106995509743879498049451220088551901655334601521041969467086212031346303685392760923846274596719363719937534149816063237963963469382636099019438657240666125429117987754256813060881088145121567918258989084235652264774301871143748686375309111244616763624483967163124970803319130177144349780461396813690908925588097362888057999220918170598874484835039205329189039594496230269953542639682345351728781855654729935964922696603838888559482412402834653579795081546589105840449486269901828891617952044006632987703417378038267670490796212835393420788084924819515714511845898469164682390543855978100185028875253985645569359836271235797665216845187740305734243782687335994584067802266198667475412417089931233884264289956141180235683682107211766436106378055112425589965588585415449841144120265920132467038821609495776606297888983939800778497263833879909222983100705982449683350239180725209911536371927382601498679615098902982619022431092077166218403391383539940747825233301099550620927179933188039746659789715017993936108534380143090986630259227334903061698819741616845164118251174557163544766212201323151578813452461766348476526834553538703326728816998242266088078639957067054024980577135113790788286822837830039946587298898594338649381343389760435570584521501155429548383563944540756671881702411593518475041398168741440099551551111309843730355893250271696271886014696136265218041994386931343905552124869880895963968949085126187153537917144501048817323360143492558789442169608723236916111337135000242106472583656438200543198380032649217845425620972328335077791575798341131682129441500549129586792260381814653772569455182204096407985731589123015509887745090114797822450408996317809932319411168793830162749985049864326969934005218209780623960381516048838549069758085007528590325311085625126954124845980895633988596273532044684357857937797122052223269486178937197147068909458866038871507706799752310189204671102032008036340654493967572292109050534119967107800650400937689267729999302474700380813818400516427072632938626937761528198652661269135800904585994396396225891941640624663135110540394525284803857104770721286364907736010758276177525529993154534249344955886332376306934197539447223521132531001525396365930047553433327145080172329882105730284179980580572304265532431608767785276115174132273012219122265263598342666538766668608314416555032128592215607873972594256580527106625703313308676590586181011912406972709429437389535087014346166938902464534273193626512215767841866218677871003702483000096478968122366664791538963183781442708726029470151135237030295487834871118985882964981898254094919354902016428866153708452152676633689049670824748659174340780209486017710946894366780369659176468983717424151784940099748711243658179759002425335444126699960018818024730357949185132064529560107244781929709054653501706765030070052995152916050612643601978197520951110954289287803574010403966131419589685416305792436707480502426405712518687325279577636800386843078835360487028885097269856042657938751298626161987024758494740701173581010546879437521510286608353281239064318617519145408379314615871142425362759245200652955912315155868809069335955938742663697826988901456964014355107460888742724421219290533455061674890950673327614896357555983245540130460905401348465014491856787083609380914167307002140629299556708598848176254578233751554176145200024100536302347503665629342942890788877488281334803974226735568967631350641774739432049534470252811216755647346883113267028969685228386170927309893647258221711270738379802505418743769171699909267745123848990864628052944380330638307883391466425630405302120351308132665024875771051132576257623458879527672798766248576880368176995402442553075724333273787014404511982154969454709612351601810780274933424990667353674880161188272425303763115379626349919390739557902373388256150967577652580672551335512221206309762510975369740764858156105460309374161005287966555313461239287577182572073575913474430650133873708236042560526221103119497396941945568399044330622215598439907194715339664233879843124875666085832854614470600945157264483518137460358043544535516771299919614072436575453633117750812632449691630911626950466660882243737225167425625128805824865392186063212732102243802946899203433481987258488985684781802605364839403339349271013808213040026049970141116032302004000238966753074534572462278983328747700145395087553373739093096594592592225182962791681027190876578611293418033780934545937190362975099580798936303340539714964836951867273055817210368064364426016836060806571151816818858250389712306635420763490317399966817112113208214186656162737831950325637790200301952676134340280958593500718008470533490905056403153836930280652788970731856668289073740743515838219344729012811961679879888234475287728971269354010532211109746466632955551084598540863907428261376444051939952676700914526320373707823746261107188247887085272649150171876670875352628081315823290858825744953077856818543085051233194103972377094541110101844923834125583176851710512572968993684886145137004367254976359889171246818759026542254050016780647552636632417391897016298574316846432901497442394983344671250314605498701982675783165612544141357377011222197952365318667951843810690237107945128850335007833103970348151387274618712975280070014537302797762466980278149980248451162254511929212118468930919553652613755395920057897983892941771136175626353506522252343415812909894446055940446936864684504229596165441523678005620827354551297346479175788156717368913596832935257793808241071391844770066867508662321789755969541839813444599774095811852891027478600104301554588548856321181257442854373933856235013716210092211599250166412994324893843698550893869890952813736438608795862194956367720203892602379626270617056064391917892813965214840910055244660487739736637720468839620870341689968613998028768555565645255032825585193129786950166675296598449473397361218925948708666511448725088609048957290950782903437607243835168502767067261518816674585425494766128131260593097710151370308634623997433468711211503724058142447005301298347106109388423401589808188821539878381077207853232192428229837628452221263213826064765146951397794172313810616901706321552971464941521103582054845993712366364584513382911420615683497900522047149107577990678706083566817460853153915679160348008364893304691364853574176479351984864153592495888454724447185995725054438143149703264907066021518078076400364248288453944186386234545836947024267456914413589050910265541213144390124339417779700045608521514481541750987907157386948600157552305819760896567432563032575385880116129530020883010789744350557175674602123162267292823847072591060736645941592852964472620144974132095504560320656953208994957504319706929025379774024502607099227808860751771485601456253040682951951890971500705008240008808870873332111647503347183608342663561309300571014571357310665326345108717518884503962718894891815019863870912792675935180818510350766934859889450345402002278782954089659371475245213073488359886220910374590890898893590475902828215423878883608091108100969446829549563607296197372446824375409422917714218369408002473005446877491755611622542525394487797557447725843799641143885456038453485619917804390466129401927580031651317631523655948163769232244489255705549362789714369517893575080426123282856255965937272012939052440626074215825595755597987054217661877309829181375042897148965295631852056449117708783641670428166176125972877580508323754650287988375481822683551022551466897427905451681447152449896351036275235708739828870061600023781958363393997364232611124531256355917997237977275596402868009862170711127129601320864372415210256756711325770021274156992601080258198729408905999894972371329956434740987375468336141109284551625256250901525824118332065013968806343439226815335688738364652644889152949565080194726649382542235345372808839165644601166487842474480381144604834438552049330969277353979742187589875367972156782385364206740006071240019002213270615636893501701666677773089571490410419259807733606022006358053618591912457420187162505920315571943317630149242532736182790345440186673780194726101766596492437213132039446684950717691033074149074031223632987906527218058303594443589729269388729437816019513586231751339973439031419477699958526642694385287461193549705768864199830030519926042737640608751859076566397469520795735866175644510564833717023474193866605965687430246695268433072699863297538419866127301747749706942597826507131741602081599166065497005702548238104289718440124972535210641952064832848754504980120164846926525921757115263304341701524173977962196545820920360794347820229215833560374469864547018516050041651812396255966974644424210077183759304777300481019204302945999772087989232219307045667564789967978178741088580188797752830985295738576817654380378003308612874996347797857047045358816669196487080305473459123755690448932703586005956375206983388869893403027680067144952664665118848371841017311687362696986696614927560491345231672818340359153643323047956370304755699096058913609647604912704727481095992675307957469193474406062584717072217516829875811776839993145128473213071353632928540005765197696040722655656586329503863832012328450852176115180509790341516817426352692866547453310193750805514266101416800865052539974313736130819908886337789094373953116105208925075629545524859000825773651374549987622178725064911476580829008006516889541775260591229129608989123308516837379711353857740031719234326623270419266545327548931159099981297626423110846238773960462944410704024242615937477155917796797360887349549911057438230278683751943562072886722088375308082580394514811913255086511035415780079736751863111700564169753953925710974716202852489203478570613485284758946899662631166049760693031705355999768120401655364378645006712634023339326524955132467645374131795447635546438130975332625953364804584979611766115709603473640819569794757413758113358052194297485641388114754331711165673886121322079658551596439966241282698784572634218198590234288552786483558783324618482619424160618682797516841778491643997770993470805766073493092859097240532881094188812858009264206531282562998567459279298286872876854678395443680585990120931836016038790496331925981645143085024761865568787628445819702028016134403578719111707906510535546385428947723843136079348368119079536871806313897715965303053963798080371631073581867887532708776614813553426728460126375741684054239885166491244129937397724246813312184295573770362425530418467275121549835801405132167172760879581341599368374797852002982982492371204979293345448792344014815443929386708777854282786816174755290823277358290714783321901476268621643039483525036977590663478052874138071938516547350144547985811372877068064144717461224513805360491661379637389007201170077235701044498199184754943156495243346522891034761628686941721459599535251257443963687887116699612795281173881232632460457318637537553521490547955060825091330300252213298309854343042327078785756252639179100916364789568259723287985812566013823347264900790833396927260194068268218329768615978758471740392890944504606682582051416262291070158638135890223683690031969614283622553539812325585945915253084740531580654591491438987656897946717353740598109467449767584727753496970844447943574041774834802155600559105453869290535458383800585186185424750731476529135829228653169457505050367245994312168009052501244026365710237034439689753421903250426403028440158782841774931426533305289320305864209643313835545116322251983710573788439927792755216426689285163469187295340292169101104067184367640958203674529921824450379833577055368401965411743445204270300382339931734736235903342792815760955579171740622906666451060463928757928232095805590764532391951774423957518623480555193210054365456712153270073276956716698232582238119685094216865476781500733553261318993039437411934637289221549537034879984902062322777024374280126564526307727808260343299134261999070380938089938782428771288579706412382817796400692887801109754181767971369347588338670294061422348701624652282305768560432508872624707858619344914053903181725126733133937863819700953122816905688920862755813105895735727135093715220199379592459629530171011422918557394098410429569887799821637650379219595935126728714530804879980513564569328020681922150915056518468194979356601963714040999005047411343180406684246772739103735190336730067599125175797108483424044155533039822232438980906665690442769881628739087547676076682611658425633262983342683851373350058752628422648112642320176626488459083502228796423028733151060187906120741623789490016457987878975635486933177703206059607418379878166425823295246957810625756426493850629170427492825679749033474830923363006992367707567903059441565965460479209243560342761254900319210287722809247108099562304891264984514557756356027557972604879907802397806069844505409238136677440614989048867350754864119628783521418407928115722413009242907189344114271588670369124657219824614797947201443837124997490998529473757626388808338147643975228201347489744741814754534870694689902573657599526801666078906992331071388449898556897676182931325536705873245900852701511762833981416683243768305075431743889095279743471081719628591665610511475461704276108654935294583775856675882989971750209862044000060555565236677867425845047559277479389365607137459462134497348507794149153457489771482208989789925846752914318502830134973012328957601141746680166862470208621807568221253591450623462867316901300661875163584737292356283135267475493361016603178320230828150541143172877282547265614966990300746296255455643810291226724534769706151595977871663001501172546697595939012901624223478432523419885198474288174395465486374628933166942580294927170642939614112649540818714598140919205978714276913789017663612691435624580038165442608931604937874130094614059327650944823850759699251738709471329352562234149028963425036405113829991432976603571581268382561541968492901037998855078373418734785569453128377935514011819006480548594281947744849440904221208210989730156055746307415839731265764710202369763812181894026497725611945637275886737835596985924572103918791617369522491153819872252040246206350243501056460069348360542424496129769883511397400542585954078210513136334665917083465905389911979809542135275417288129524246004452576274654019628939370842559081217548193226151906064863771946304771646241867796274834415053235413445063667022106799327692736199294656259151182867342928211649095994662811152877204462157147500303771576799522724448313875883787306656833110025981871428931127510615306207614766068411419315781908637566079178493665638067682779335247565280135173977432386474879964231303267366713928698803664087671459039526682180188835293961819450920979806312439611366247717403557416774797148275338760404712199627682277056614594427256703012298740654147561058483422722871451315487743956358549963992873305090044193095464359698514924373619717637652942446603195405418196202365302806857779863801117817876927246733314974939879990306021943132838734522903143887819210404325393291168189967439810663900070079049948728087955130763030371688945834253712839895799418054637203011676851663849563566291189790291585505951427750428704288807299835128185916810960350373224668474873525913758606311473902910867796707415008782323499788667380935099874908204865514970009885343584025058637174426631891428607085541053283776555382686515994670720262529371867327772413380502628839138797666382585610488919172208546328219584272434740090741927983902146531215705157835401293772234579613388838898077526982705716572230202281630219414692095907316273363897673041371512054845943996460752984008506338812280476596968258382355413989793015641889118794385706958768330349968944408236550006690399011805080908244966668996228125328935023762736939840479563814351276824124913434822178584874201136864519864060565096964180214228331074747528247046526943626890377353280090633430514682800469934355896347788036526400144522494072568240203976289789764139825025743838791173502065459587127052976973282004045029546056534230691069823891972917201643825122496956242272384960186318618524725193854111509787854950903057232823475966124633830497195711261976188798865709786202941020501684938934530396738254268620512182319403598997863977313822135348767483947193493469505647575201429671330815927056363783585146293619218571445231783312569351316624255902394750305334213844433589639771044805370530917868529082635796822453974367034661442733357141127232251882708777447251031725967315040201219806487050208784220479446827938298066358236916306319094367286610030341633741626218973586132934912209293793570531589872750169064504318365863101490261448895364386456566937067911615607718403994823054463661560907239914442004875469657939260796309637570405423774507122872233687093282058448085783864206807378033373038647858689944224449310749069108256842951686271033096078834672099113557230317705986293090493669314831445642009826156026196683177016331407694080050112800403698785244956602678140404910052783161491850087005870267129632253212101824808561503539588214717587724652604146754314566625713509656143356634780218092495599509027366183830205811973815947818172747566238825339025691966868410109099111641089140179191427642434383379655537263083879894173533281882777874776380248816597827378033542629050096893783187881509234611057001287511618322966537603489358505303669216162351352244866355488894429946153655998175941650796267914263268785576333759098226608728053770721779872663306335206625400043391248071206049959804201591800056277380707819650724423987213616272673662217096696193431642436905242227970863593412306405942295587183664426290618132562407759226831275567899178764828044307674156585320103136415883492465170651878373329850834617972650818153054583241226282739569452007302990106626807992652583100760747460080314953213994727659873394575176099727087029523906342019306116270031591650478467620040589675194593974211880442852964011138226747532201282247082443123574302617451791718900957857460072110773092233210503659173314243571323574429685137357823929480015908381636218280485640109120324408249051162915798907455878033694562730932916150584798109849338778972030981256192806101732819279716029200811300609611137092354159186243447779601085938613065711769316831638659501751373093749255551574509713262846244484678909191863906668286392944415158876148547590100584167729917199895787630553203307153405784021378066600782919389476263949539629359873984702226333656260337750348569120950827230465970189281535166281567686693066012397160742620996088119267668540723000166722091276549866783726500042951803451764538117214712658856769943097493952867361652965535360769210215138512746268919762037346387610584403918595123116579482354806151606670995303443867400952146938519490033963590696462261749173646199108495054250376640409015788194632310366284137984706087979030667641801103764143080428010472305418174569544167078990383558617939197083940994553535041098236543060911048133778806411216900191135324283901063784340509361931864252648844076471128308292390714897266541353510790486825520852750808024159171582411352192772562149486476258117270479469822083104296418837150017876702654112611680358452225315109649543710081521907365635281118724334630976306002446705990594339350471129715919163627292503537547127368139538984357036644840304493784329409416110808719088736479491313914677267491192674862597090206861463161726341479071318070103366235843742935248588282469847998307911340704527459810799217575259476582087408381880678509754387555367348251600664785060815569509906845591527061387237752380820752794063642796546619321854109584482545508529015676435513381733953304622100126318069472658110055680625329185407018330418818993928733235392346179537208616355242149461402390807613225740622585846001457811398490321526115086552628050651091229666612344737943378677581454394058607241497784231663364442802386096743000937490024945809275827687378616050595093368416070168333059424092983454302756830425290702075883015452831908465055434172413910524500236089355687151001625363255518273935280147668237869932135952465945832954363959246514435753393008762827437831587795113258760415252738084460115610065574697203978595061205291321720172100051033689522068268199427892178601345099117676285326164729681082947818538319669396782718392364407652689969489918612577100585200587762461162339381333895834831416699708085404650880253324980948181432784920784414306703388211880591898941240236569414698973649338273060930537096477400267639032410475468441992521836833998802669900026489839481451743165864481547509859305600365136629574653877595520009772778898401821406856003627932617636253363386262071925120170659559596002379157005042479084758547217595771979000118108867960786369969336220737081336888049951173894546916539621697858186182743231520175994005032635785314466570302022943355466662005210982031831910508887474641625567788429556177738474805737143767176644652302678907455379296780592771484619165180850686805102832133084531096016298294760122026852985131210254067095003291651626537784065180518704560792120984625992105483741752829995449052867103584897852708183899314406966618196679424133661228598787951516999388735225246396002731630036153331900558629265510641449708884696604606943418025739420166181192709026100783628155943717590446741381405876836026238304269993763918707656786570153456447245221966289768548230920734474100113243700591698203933909074017052399711055635682925903708318670346428897333234538006460483396970255646040209395372335218088856862178958570530021909072220465684629715049872086714398218103799252403553405524076107177831577012945642886242879935257160996942907295251569132763946217014667324439455600700577826700061645656991336508647040818347823712095474841610367315264241466401247610460918891221084428572381256605556319925820298989624693391126703255235222646593306690563963113093983559876976300276263603729479547480902421531451351384847191791854111190469854818172458333900303355305500336074231643760113138011460032165368242236388398680965965002608087867405782904123632099786309618005237948778079977078499821361591970746957427354112841249881956248063866115114433913847744769708104873940802802535631577651011623003875003691972602784840207072932152036930669754796117875158140573566335099312972286408124135594870797597355761834465096495861493137706237537964080810549877462624322249939735234445826519601518014389516604190400416663715021710196311357224315014460473830024319190292981621133483202448535836303546052616696184817301842174929753544345917604676953256133272076981635812087593907971228981045268318318461407426718873862048868722457656762663773871439504284730792860013902679526570000481024561532720548952062363335272492352211971767474592754638203980913336680986704388848295830338070287960446420924350506494255828695055318089119686094536269084944426052130827952740530197532407932669386935590086705533419067339742948894304467230457515547549465344886654139389981297238585550186313420659350439412184628576051162553001248800852027110471034140836229161756539011549143546398514125822572311716259708114131607814762708410648383493187820530117550872033370091047882227961728778576179461793458380216028069646612752219656352044648454055753572995119482284468795821793646587046679817569179641827599500465455451321424414403159421597444486756162726063839569958968320978358943194712319383414356531350843247391941542408935779616650536820940169213148950866310955854452975955490168426273011375419230098751995083476133534516781426823149703653209856762502452854113122716550914336641353110525821976388762621122798408037792497309650896524803384783849382252621415742249155367520102802059471244100227066337565927672811211094632442366952777486516801123920328312824455174791112781407384562935784152186820253805280536193391543844564950353752198659053239961200844169577594023819295821093314125089157376405315378214669909976763499637168946658921596098352281729688338374805302691951281180879775517186887729121935009007800887374067147523393874844665927880532131587822771007616416823142263738823579348379319125914567844723592265775363128848373782480096395705887488361567324330392986933701417221690525665943324000593345252561107290603327280079098909952000341258307567305745840979231253607517603052141535534757801608778584660703569895459405785818572088753737825641677090173224609908488218309926490782204197605424346855932272305302443982796085316162606812416635757139939710748790910053648623850417313649369748628019719415150111880791294119090617496294198455395783747220562135308118285885766642556887667487454281869815542634683927288471455112159579610773783711496442068291821428353954880403546581588753106039938466035263244327276244778581797564738394442192603281135133297841682258884499890771418446122705246549031347636743434940548301457013978474455034344579090317115018346270509073464133434041202637836647277018780763936791388034581731878372275079640477647264661597806855421610015225351128736386196912600098894451280840367280281944097040083390472830268029056473059527069760383079773645653340175433367293074697483329042734692092655876645053088645358333289009571665093822399008389403809755216445235449002597241209188927402987803646848151481207977599316320864362378750865223017982300908758931121162621018131422623523933557322459746645014232468574892137882694365341609432349270658402743363911719772809236774646029241737325703896071972953597646988590936042198992025274312825550994167255515719781810212344651628309844339688854482259320360138152669316452956335031253146172680479328547702207615713392915371951988124358607803911396548326575510156931596237139142106517899322074845007991746050235197415366988092866109756767956698760010006494070485053146808338072625062461056170918128431507539606707085274792411112154673080595795595849496175950797211347550127533677359076568217918372768174475411581006078263615969347389069280177428669337165238711027057343038183794658834993694504813592339491171964703720225099836058801624613623462955220478975354289059550949876324077589078195830442144176178830634603237506830469921692248437065834239221561704086713294337140776904409576897424279680196062985637624597170776334688716818249351224426133958954383287200379621777846878994578303116634948617523099480441241024242977890316595147088360101852742464946282269479632214850177455381015853182983461360414751066687372816344328791250732648074618948917100672794401448208635509858770807155032051524223582679083618581192784786969246640641294022651637350286038892234814188607574135938595962729975781958850823512897261426786340311796934668893180429782309617697406911522659515840854514886652641828214487336818453870452127636914976913094033232466727094516603807048336831361411537223332219857394918249383881104570170003914881605952478487859324521811428484554469867253167099881583718060142531861329293848835351459827549897295560631996938273031325097408305087236613176546178124207599287539061652729926402159803364661575568545418088922636125171323868819620310424699922223746348929015045088504677940648371321821531936797593911631732577889993054378144813880241337832414870099163494038958947691387783946558616352212830280085708691824407134366890704524892980471452778985578801181837133446040153508248789141073639763420630804221773812784898742568176739959602289640956154274370854804481606913353194738107437167261217875959040815023239948981778587938897719104274931687517754366459632893801167974340566355978848736016303913008358884235103393118363464476882237412800712752301230126901367681300733124826133215761288299146937135560999099528702721454347390913390061783255974465350817225307727150597960673674362325160679152736834599765665918689118203573985060677619992793565195106846884537665173438861168398216613661996123431241168333699195417365109596869008779028799256713550448636366573460980050164635575305319848346007468228595393122873827457033003339190755405770686801974153735994150813890081615221161997830105135949377488283014935194361039282128549087534980414857285387085840721738556149760466945798669880647429655920262765126307516741306532030930115913561867105440610535510209514983225501678824047088517135114379770723850887068027997055234999045745676730962487588358970097060268491165844968176182674137064328361742996560225661444639581284964487638156751358548412436601972903452681559836557079938031024586050482867920167023637532696279101392310880602852114527514871856885765323680498895993207325052072650382790841019677597141025774158503186210374339676467228455169922620521540574991012774944619731068182029144053618002730854151789370476694966969876880103214365553765874727085397717762921357077738253466566705178021159061545263543154872624756889375804913165670782261933562045331334858960636026394862011059678184253646541724128254825033261608003189540693094015119175081591245096408703100635490012912309799766912711674525069471296352153029155981706536412794572216269521460943979044987692921375802562624863185024955282491041409260230800874685261610324011204258993781850461265999564283599335539743257292622253597054298708715935428429040474562004148215611482873178414523056858868253893839112310550387267651880149007436841683832182866554521072256069384543047554336055829077089883122143036430032208374039488335870105338471872081764646708989962612185250149027337949846379746666466703362039671574523772076278591870060382665895513259556407161169560749421686286814781909916453911157206135794118211364809822533398453467399354284441438711455484651294677497989902065853507251187577169015640341145531774815369772533137222886730962756114151057419614569554042642663455592095308050062721372226160723121395414938112959402025188479725792663745378806047359468108581865568873906738199018416149858140375865596765976179446144500075884905988344725956197652611922569173774961673620912400407737280630288252194052688877371906769767135592088172413608637729338951780962823120352067927125460438261165365113839050399697081635337921955983156129551752756368997528533940144150282061290962790121640925441496271165585713372624655330818528076171240285519565584280505671974989651106409159279075775600029471957574341432506959657968964017456685441218257653702685275514419104966032223449469626940977396444956293197984639447207203867583793359926277107071580394078701180820093813262097349588978152355370333835691981029060203749495173321823019888535936765611718520329778733023297336295686095259454524903689231847619691087875964073219909040662763299958045244903925222566591452164526181570101535674651332225600996632041620321727931310091946784454502469480717718571068759541721735612649251511266277509408450530760317017079608179152373006601274073169887003368909944550215806350805727738701859962523282431237167453627377916810931897273552070314491974302855989577471046818676777602120253624696114038900015272364788631756579948685926120707836911171743788109912366231783004803290905282041610077901601409985696009808691657088931600458099892329439103571447226901576872608741487212753522519409276185572536123097923532414150729378514557702767499856542919469728808161919357783336282716467459891951660562920870274878417757307005950213374171591630301119851669406983758529442285088201328208682148031923350299004978572003158283557440673884720220218700956511649742160609436417701034136943190111297423334499795062549752634324937558906463806606272907559263824859863564779553674950655904393583024240982218938469311785872274219069278022862933984334764913630530684860972148492878801096823210000938297218026109423952855751483612975751027372343296126391964905717052798196492192480711332625311554129684535473270969760075879733863615311650187309416594912467019716588424698861513697952150974165097751099896595806286255801658695733080327149153016075296118677773208104221950391041500052187234652205928619748339892068153657075796287093362582140520458541114030255890242715456919531794068236926497338930118702994141101072058789836661170258807571446432427052478902041557533745171853712800341599812135187845560179531559661658769305465530110432085150314839172075361538008783088354907775759535560173093609374197736613957961473737010917746015029515005140295568273283360934266611513585654553265365168697937987926885070658213544107212665622425549517298809224210104730654524446220607304507206301424332461832268284952810084193916796556202886267293749188970597688447954289990805153127196398710059021492444551512148552136879070004965042490514852732037898100994249532359390205130401090937378470862791411915573276398001179574761339924245062270160977235000860364232135048371171500902498113619414939947658531430960236213629988478038531176224797393301424149070680074921542503302231802123675191819229667494763864456638198927806921108562521550419556054972693492319105693770200193592826264767514171129261865061409200314266860463922211545228298483266558977352540754871029236366885108690586828991495237436211649698643239483953662284387510919637478379979017134090141034754378625196587985129294486379287989718898361912974987853716049512912261743953532688792092231648418648912779152512693824681854085462604359187362600180317259364963275826875926933904997290553327330244607754350606320551179574686695404587365031831112015359028934391042971173201348123844853200061186468035260716578373535450527468907979052695400671044797077996207808958613689303429881297690323847652709343960026065699314275113070683200022135050354187005534226226040387163098571399068583172204011903851956763682677456932301413902019594177518878395031216426132012492428743824332900368857950926238135256715119831128369459405439643341096914923507848584462976648589959715897763529741828527312893721036543568956716396858729651280390753645271787387322953025141217946822167006573072899857121918189259544586054398527475397768813894252661164228878665413194178699933520302784660345230182270127385970056690702006672948267974904284601339943790817419280483399047304645434558728201899083197875948308844447945808328352420193926770037875291182061779848523163780954878981719835537716302777091498276693139458761924604221276096536922265870052520403245130398685567482840608169885330806929223728058064123785238485675471697977431112895236399028884819802003859859050938134809430922727765117316369201697551963817816556352196453435015960079493789787277331053757751240890338079694153318397786675761260405713032026064596477458461554151884021732896786450646733409793146273404177515841990240190078118641613755497448197509725222724016017509039886941157168213126022933700144558962885031896199498601133191021069102284977261316823289227007396724056751530729920631412163872648142446664156612966432667418179668347162770470855946011271250273953098069032460511273664994125676524312851318233537966545212167794948436672605558085011795113666240045586273967706250055309624465760881748089881218823040028531397201693941009039641156041201126967850063910622251802117523694506654787520001189633973040270659262179911830220351834689030202311561108979730424940647000030276075153344857391434827296095353989505744019722727822158273511678244788646393837964542781706150877222869747848888093880808681206173582342516904256182097775318203028979963691394796957192885478428713896295865630454998515758164276310028721383745754553917902212016988043810388975536231411933611099495648261263392574169327113966865460688240764989938139829984845331172694703541201464418439567969608515755478508596603908512075125829490341563184167134632720393875162317684997610439300983261200897036583023763869865328450114769670537813995731140283867765989722589806830940200447464027167769674842865702418552419600561257257975864443658320303079838643069497001704079121258329628320005588797547784537324954797711358384922572765442066243397000743744169790270368476798708310728717678869221271007261053036688756976487332767289476387317942560071198781299432755618195506207267553305744509161275652855276113578769586341660802207971647617827752503518759071841935279614728349664767705057772218812906650768780264812233323397748015465979917462783242837481350830170181019856796070012259095526107894228308218989824795381048444292787024661209912301425496927378335040765496256341441441837604279206879697516168453886631285510099703559319908851774100901922064709165451987662981675465627972523264811569503320850471347122908060415021833380558941004809190016005557165574109438380482438866636185414219051275594614750886201747117474529726140274977019723815426542166674818341194144223061504025021840166494603527308728027782954819750447845341137107374761808315095426334640342141337338717770791833590611475578779496670502612187728877364047933885423819458101200915606375056635842646279078639555152851094303010724547177144214534821391843809827346365645818976089326946033605880889905211927204009788486734479492852101632390704378339002549154449765641335930570373953214447125636285153916843474953888892790609427523586700482735731792005740801705111727257694030706066927904520250436948738027588230884447006705464087371388274076345662689267627888202892166455546823855898348130067545268891028275239253222345766022554167107735493537542529416840939341437868422627897246643840445167098611858098370061745507033567624995329276455240633404996562717996671938368066478890650351306617165936478346493980701492667982080631775872729922059713268800560287547281613566838379446398511749667713873202223896402133213619934515560158997599890029151777205911373356220842500580823599700802700876032719266244851888858316685467589810032179275928915548585423396809130861112365226954639619961194512841473640295088566710014004913366167428065433266280249767912774144042006967094831935106285680553541503623870211537568449549377437159995694692429707203008925581398109470438532771172923059021205333696398679866318255253186600309206970760862539018303195729464694953496189266676899281095649826174085369485090534799592313593703323828983384947087055479333308453630088416211655702840141810654884204457245618153995506003435654029604036225627298356520178501448481371348772409172650747114830089111184042111918841379411354089382500217908427831282498551467510759583341544360178416074438556166711993230771274666838873081985080024010570393808163272692368172255167413531298492833113409889347771905650035332491859918363570789847643670015861109202195932373151670104803300182378172976608744592187363602745702780197918338970730475822543276402189584745286956006783632277289432004379125807511442386415461077259169818108751654893078234094618749083997913398206143218997377334031134933774442188172260922447136421291539069246741370910805337876121747790442135776693227014644961408442983902699762637595166325596749251892962977984248345177704424816932502191973203452190655751109833153310120274174347289002153086493069423867146731416686653395121636190614881922452526779451710826997041103623462393588326255910831673937421399432894148226273073022934403464476548290688701538469906467052588528631492111230838009439372005466879465536155179814520215603090473739814418329283375075123750897121516084247907874922064464021178679938409467471519370845140733016404192301779479658166990826059226195472103777728899229369163711068905538554436667900546681386438178077694731197032380445616019638243819422889729549486453793167440446590529644777716572437054635519577862561608986636780239278020183232636726007293361530995014896764764081824522013952940287168685568459001609725713587133563175160797111425998608487231483896771642967625921614288183140207209012574193969221343849919175248530412841163149508532962854095145022339502933265891722323144470135685448225704831970309391424631385130032416152696829296660165182921788732491634173606336740575167022360042597508564451743278397131621781313897079196822099366177940511281438065991318939941944578913585086827342075120659244213903038126199384922732307284370670488633526215800652000781714352376117323649256401218211491796890154796813595953807250100144945160793091308561518173637561561016899778676272995855877634216122426432116116969036893324791672667242743621895220647366173208111947371498593190114687464312347351205433143437275731651491524006180654315191348833288417887272953196649132761950370258425150435487626123933513682612771844515696247211096947895662025039613639027280769339438852793301640156711324579186659422752463540402563527317077951500893600167934736790558852076805080952323277015085902460694585012254001796350297431944010669985590960002466031019681059946417794411729881687221234340426177058244663379557989089030719725629389001623216021784239886966370325047656651060224521400376994864200060061504779333742512961829488458562742135687245351616457366353993118230606415652124223849500521195763939613622776392021565765495065137868182473909710770832008958074061009502700831817020405527614368739041400887148744797734715830723876643200664434966822000562199169294160636027931448703757263125632750097835459120603038016229060127660648955951521250794512014392911359331808098738186774775191155724535983682526186528457782216014305128815762776337331693198205915839605769084475291714566887183633688550012077069483002113619376993723232820295247952897394453558299487535409854852167558881456013863161820197369851754368702975838925001261830230078297000686502508414020422377741383910771724091023983968699441383643960690062661204097837011624387337957189483241007199104273565804203212385015440329644733479614210970389939004070867086846696096721917425959124805154226478388562098068412475145488974358014846621895667769338791951476786265472619808646082606005885947250534076383566584263458758840337457937371681223503982695886524252939038310345664904533901620845010661948257565953484923950273444634459545659809984058630271987063626250586787866500872788926752827923620711144213884443098842582336773170968550036872220919921229132265447494140457396500777821248027057425538755604552257303920470747241620518989103392271299699621890453019730485246292108480781701418230810916438624245071776916075083634817635510634096186797285980479215194144610288007021138190540467987729441068155654220210826640008985617563985213087142501722489961358239689118902932390613223536290316590397316183678140597527741943685880065951065543896442105244553603815886947661803706333691980104635779317308813167241272789091765187077325588155047836016955953061615329314023767997388767496103087638533253403882223261481044584365289633899233366303366263763421465511704983950592783060688756905931626260110123134922313031879092959945932568878025527225603311231703514153961619877498873902590261162036747171811976708958278799615112911873795950895062107105981442499950388851665025197547428170789957957580812773248816276570417004205445024575306850825840190278283825362359727909408795187331595028533675157449293955730250395939892036109255318949183127527669960088104959762588993562670246810082840366716097135644796469328591123659147641733758256604014043063837114094371725896954072576433099140053780525770847431707766218314727351027974581042549249787975438930008251114955727513097972254306987877095167002201881224902717803187160023053315291253436636924284181600543716168139761485319776345843109564263619421079856541308680490961068805891683627041033222467374464119747083154976288068849489119285109937964069129499951537165636452875614659024038893636198317643460542274264627102605993536562517879258317741318830841486309337166857196621973843043646841110035202032466045183049765556058183287032282502706285011827344211965266430350386766391445907233047486317295563091337397134353482934173063626704613915338343942488602306295999440122648295451770541867687962387653836598835512279962132421086833554707130691996302798229799745846049629896027379352501779134754321336215411657843478006504655386278989007895995772338283513267184612347626545121870397637007817697980397984420028925085911045370839408413911008196907027804028930861979880030563013805722192506496507070714243381628340169165597615888193264752141626456862900809901816157800776164303255108780628495540529155356352017655597863071293236382068968455006614501178967892318438332948211076838927163552678793783912998065438306487629470988758786361058021572382249400466756878706436669149646889945507050428891483296006619055322546723397897430869801337030919624883133326790816658136743697821743389673053440553512456060910632422400335906445847641151021594552997713202687857197050943409046644122565713967494873524803541469912155126852525942182929726879192460883888414183503557881010145690533198825586897601095882782884645840277702374876620971819450587597956689333930583230708294570080111224645565986723516090536654524671302217935216072887415389128890681988325692020820299254344686692961586410432159044488233658420509979987733246230393231728630453686144298954144631838322353416847570908319802586470444436151839042419296174530096032532966638243055786494062155732475068987641939739842237929576569736903613319314864336325086038625344047794836216799952257009936842654719134339412291473379092168770999563880871191362222804812407865933676125874642427645478500357786524816246396934481159941891382581602152141029065246187108689370457486866318123165215398714924335154001433980705609734467511302292404392123022551619134516489711057458550864435815434733437382075707970822255747587515865624132097386762357573696273336254935983573917201521881971738879195754315764434270402119935076350342000226907264116961206430050800746854656801666667899769774557131949101952142538341161796575503199282540099956185243265198701638373250377177442173812650521685617079360418247163326550965240582158244342198062295322787007494782067170418736538537728790387355176139753792264763132042587891331979529377257176147633302741709876689964581584118817818102280001223329091070892365670554829073520446034638541577700267993062143362222353661221027363213528893024323732393329928755545869058576991688780304806534329416929844982966683816600956485791745799651402874591859012036898108010409807703011273104053547279089443899772832382921889886390990902498146276674657333828978090284845299209753310467223965555690036477296949451503982325303558075919780799034481386772465147806409673572983313983758839117413577339149283216139810425070157660930952724456863601043267329758808019491295456098689475759373493960973601527254673493314134455738015401434749508537895740857375158660367502739985568228543999768007738824001760320721535996922085656953628077213914305101597464061063874156469058225311636882595856005674902593663978530709158822553286829993489014256337207396470751186129747307448326820966257716883182199537845280157475035997358028122445444147723478306991962604204944716533483383278102262583392421478850250268043945817229140941175291425065449483001552918291703949424322812385581195396457404296132227279692530191488384628448470617463425449468135216231118827507592324946489208711734267921652602680712868699886781045248175958686798148415655263503426374000822208083028510211225158077270191499614079044395014053407888469176662316579937740587180133493196756559263443109891553518651823865710289998145624387153300496980813665814035537250531251528876806849061993079734684993706374535841872075466164171919671822906715817958672635741220858166142304298957227663609099120532014458695692092820917632972348888247275514515176427386528410704788134394101898982836728332792340972198408579389330622995320068889200356390570206832146550141278021354210352071666150117534963767959579151133152790436000553479596877602775779004455358842529588534303201606225393926892637175079253385714412075252275681325173130554096790444263569086628134472526132743413758131448056883325474480980342480975268569940189850029748067177495182234334417863261448094490231559421400816520480905637894937387890524366714537548367026013622184802260371124487594011903407717109638640697335766607066039368154272685123130515689720476274496645533319161683065921309418049348599998439757028854181028831459658118655970247794559706486391202631555294479465737605223787364043702587248304864734836827606461255515519798577692776480527103437927019062122882552123998055753859535070370224246130044168934489814676732176115373621185421530084894712468346521302766191616851893020434995305426469748265212814772744882382437518400914897792129116794076343379703180309352366705815795836469939137936215614663862561344822043031301585969291303324794694625055520313691994314351501511488775623918140267591626752419721133141431060922450511264683741915727784834180871419657038173235138865324125668128456232839439143510734110041437676861131211314233321595323224659082558416543897202441889644429450502941857586779789584524665065576758086678938543776172905364220648205330302334460922111891677609585042716832448021275869477894612946214818160963063282957694720707732787777644430272224466023723191193609531633245441415636730825090457360873341637798108249168967219961586464483376553960835746529094598483529911228154038060157946615072749872024281981955475281390111775302469808414431654147102999592501110048083194212414734618831977500711293562576869761862009809680740917225583980882965015692276384585548109704699511483350011552836541226139384239584206178255039772324339341749238192394513198853924449064344814050425478029933299815819903360094445007746759036446439145015208275966891226525364764247079597670818263680115850525463807635255779528795309598700179036814482806101400943715421341743068301704603195334570989717764174919489676856911944322077123127886037475280484428614209969926140995450499285259214881136297016721108439580864295014716034339095001037837017333210677849481966701047501551161383572766771458571460213944006997578478585659487672925107675549909666994916744514894206227044396065129287720333736901917281640595014434477110502891789626623873111705294685261791363783750608234741654489607570669610596878208304032905281868815798630190626027957869974981732204891325611844388744474204123155340976577296540925894977442836926336086617134977258412014816085235609939033538293802636046032192062697063895549698923039780667500980713880300604022939141153784693011021412127507607050008017931929446393921397837348870300016452320700164610595658897482903611659303985124957539557877373558785968680628847744907432918284916680028426459917209198352246099139218503453637840647998843412728082813056042475618829160807209763331156928832837952304771065609219112803309978352756833722936495464715703089904881832363432281445740328852668382575079774286091022831806248172752453003232302011067655367459713547650742210079690560752088578324194587643300506468917194391541994576829108512993013806843446089147381166918466133022419397625968736271184158115312940934419688657699341482159408570758677790804628398718773283226239223123843450643900011747413747520476822844068793654329346399737870748274004415360182646636807339829400873669428659043574274409337175654768410120462493232388906804724625664899675530569958339394976829466380014473732437525339510839150989264481105145755810469529677134232442663192708462570193709766541153604462725421990907356860916001828003372777541439329380093663827796159777141432491669787186545280597292039183327268167856574845241655201240153704932482150317715198375482801757518217695206304737533347656124354013134407847394950221742659351388966269536556278877533040234929173536571562528885623777527001074153748034169022437003766794441697277890282641178718031949187448221625136321352176676318173157062549451698029859898311075471381670661017803281756233476753026620995720258332607885594449885143168030463728029948653030411580682572275686020812600051301485472033513962506329154425907482554520680809855092314541754678461304287120477939980373306416959867160258768324215266217979258858115536814638720987299450926399375517916618705441099019365145913987766044894127075294803286662934995148465487800468655249867043157724134587768237648057885411455433279923925755822719828524301265136011333675196518641161626009570695858734136740584131423443154867983664778845184879458126099443845375695299660090051780551527564085772431632662129962891719815652941411799045498803921943561539512276458018448667113394033104471382453468188081056736689441779642184450490797843821157714745519898253252201748089731208361808964684755693662260568452017178799378373839172873952904781145174354453589179769999242181442056225865826643201124256258146053989934164471498936172052867746039021788722153258257428486565144981733486673029061637512493590818561321659328430301954075856867084092108067699895704476557353073201995448344611273964779767463498397168574671846255928157134320996644096837211538704281206636618334303759045394480443302177796588564315836008192422075549889918547437450190185090577210378862886960253903429521172686522054881380155345775018419442600931419426459721477907680605833838357449561418590129900457556558526349057061467369373140160998342711821823834873285493101245865706841804011776200052070121450663355271023965903692022947224208931316041112367266268990495735645328116118415991742981438853301419405910288727260657937681495589939954453240836241561619480090253096325947478944898099270288919708050128481132123343775741256034258452790123712538681320430947256968630789122576271515929294136791042717173126598581780814074037742056621171283133608530734611702169878683543906517442649438055651463085859717201205374765773119758228662462048847804580252472004381458507563448419555807225471749712975415808276624558782555301958783906977933819928094287384209710649456062555421594220115890475121916012151927778374001066937888660734149102751038757151215374827211731993147678239211644724204261636106485149083325985081504823822247013580354194969502015879692704817390444707086851190547666000970317471703063384458435241305636064936993700479207771219903565188608837500762926418018053103147058823014346542941926426186503492363945354189451315245202258494577367635253539885236073308609524048139872650826104706890529312043638588612705307763116280723945566266390677269626007733771658805448852462558470387085551074646819095346884779076284862231822593291632821896470216258815374819602601388192775679305462850462856125416649050825727601712773142975587054173100132636344547223144578756902066120561046077268858584881554619514801943684966174892437690893492200104804311991579942256756238555483215344225892405138417983110734840261396220482638640929856508912892499473697470838079463173018653048999676175681531855707826161715111708233931417852512121085273567965646926461184348882245015336272942304668744993692699360356322426232050665440028218812084171837454461897109832406674576421502113215614796071383522290094735494791984133585014036359928471877281799965531340777502218429705965156975139971786214077886738630108754627551584184191835729876222506338890871098693797595975082693789384499426838218030305683906333830075453274315810638610427788985418797165213288759156198831685234538484917345975774218536642567312147955503883399683608476172070160108620100958373226277719830400638837049398507141101743211150598182658174513632030448148891786017619253055998763823361503861825116031434364104908389379072907746149843531047044447471936567542603121096442544183451278332338472095644466917330799939396803172337011076408802470386955929365107336665652805382851054568414244177370047698893514037338298892098394304692092157399434247407885078916107742344194344809182420662987939328532444459244474873068878066099150272764738786163114012582771837120018912541425121667438474788073574688071983388429993087920990958635524886071971748125625784372748374446818849438732293430926450283033030611400156794414157014962599059758117471550759337031858445058328024124907425696769136716089365885996997939210036122646928974717011695108085662540278392158911268012547755692125518440603895139905337973691664353826432373392163137260225261253376712768826200145477358025494650286960059564725241993599974497925017278402070852262422680042679509140100694245385237804252816022180728022687451921986238672772096322120513034640219578190897072697488970523529552909883810553134628081090374500704554626807448381868553202689679873042198788388763226265864021674320212115384504952101465225014702901464085738965810297092037098549125151652734042094638453244850937129442774273082730516853212189006376272992941442805193727235539719389752958940271386226618359490520219518971685562827572429551378028540995035976822922076626822651479710638647944283698268834299374804727998575683624033942541596847307677332347506951068693613740778089902770293474547586115484230361809964946911027953590396706189489766342670744539247090734898404771928866143320614333678630199535572604266339156361322860577191804965892626468178932498755560753537328166973639116998511018152012894169762903295811252649729931987437920470222289461725910769913144969349523894059611105942737291838068372129881667267450363688366428309802500786059438418461276910680442664061106752797643793569089148602505069192092592114339907108760184247830264331029109150212681532098426390848013325943178569052847901276121764209232328065509594378550389067603390795716834744058383064040986390475923178984976639165592774833384606706073445259764751218902519725562176148425784807225934600496261214832384096060920129480023950568074458315764489379364853553958722707395574799756605740728309760844607532699873911980110334184766407448055343188795987378489609728582799608458158272147640330746721939808251088492574029674092458504063233155695926369121454689746260732917064997312822890857869830374250567372125802240627877105152718443117783278805905949849410244772180148351679775399995278431301964497813287016496403117029239816671969352078961252961332196809065143203317243090482298524175681539448446014310665904171263090205587819683996586377349379855835846847091052059683845322995539150090034323760249964895145144703442906842509761509225038901790208844862655114225964704617642532755305501850165042917801595148509914994723364187146083702680502400223469743160957503405556757667179165669904532198986242570530386785748985587781371489536645454261012756701565502583198954339726190002925252845553688988560706331558078762965382767103635742469153738732792742323787853529879678645674551054042931641643599092330348462263605658357561011225355012792481090585844478056129253306080454469402029448213056188740358092141907913340097920608137577425764118957162047146434304457049802965862494579873528776929642920703462654366282675316251595404217074610959160920399556007293247105172706695776392333350083049050276873429052993234755295264489031357594711851235586771605501386594398142951254725899783124328795191251603940522556450142116319952196794666687033994442256504345826695780994243214361377483184044955276244127754394842688835266066354962545100222334071765455063845941509736819272380955405384910408487404451349506138064501200329074106405843558235968856524570029770911245568961441021738018905564190160893952226078983293465198578089900364073817662660658977781962190549844466736887045421023986544893203899818982898422102511831578752761856843424506488647217757705881624755207069043584734362622364207896212395553889697156387709095281599888051502430642227610084579918669248933314877477051375348436132684150150188809617143767039724723575442254190073688586760125863022529923572418205563841742780829793438725658669445301863668255764963135408763684327422701164438355754703306813280624047591004189209234934876199251289287764237492684172546083065854611157695506112118867934852399179131783000556782840529776488085491564677494444343633616549195727217722159302924115777951642757274469114427176231033894370242369500029734803509608074913792120233957198897251719899380529201409335863609012673176731768573777477435461587384059981105142739411425117447957843370881362116555602201860422869165658293740070043038428958992765797438660625148413230151067842235995227837220095655575099085969869145276531924815484112815631538192479357134876436568375012546316306374208801841592778339971716664330468455193761696597359456329948784617439658194801920178861134155755090609763488293474536646701783101903349185301337451907798174184152340475623071614382055770539564230628763356566824171622536835972876583387002893240782839653373724828558828445036738763967225721031019702188919589529591239962682691486292330206652898343198823218692075769547851814960041574216272885253209281792308687839965487847941247928502064182438605614790785873263623797201716214282675032426898877814779301118847562656513232118808177232248815326960848993178408078118486382280263270672882333468671289555259227527689011648874705769370109627786106137096600929985567738198470471963499057330720579288921278497599800923573487241595491638977543154017095923069531547373964349216840490161275106055853634879038716474058309710912273749255524424829377199950617786508681344931579849109193294082423269862063785009748440604679063410632943272316887882373664334515324638293258078230194973440077548046138818819101401407485042777866233019956873066253199516581677527071063502949647394631008804859852437320599148683349460420107470570229333568230573277048782798925124241515162980117418194738839351069368599616467347760348621772425670973260675741220458631876200575869236915020115459462897136572524710825775025482651492729092264298712363230833633999276071748926880519693665884254179114198571436440013591090836858853515500174778905343473375142850967402644315631287527660225273295601234461126267990833274456712237360349800956941224532557627524584018709196839219241185093922925263780069221993329272959729865671530904229127569056643967897245492996537991737934133532154681820714470086775297832859212897496981628483360528252781872919596593766592091556268685726921348005379026387705132305607433479304129883973887357909332882299274636733677952972278160898988772101915764272600103197447948419813565526043654608539689392760999244948943213982572669929572333879090958090525932056891246456906855808096094021157141121041178077401688209461002414681648077670107466289508470734795298831159450025179228142386475974123066795936631479359677087241888338137029691908159885773493211196832267494278127263130437794021465983138473427828794764363296080885376704535148608810084527253432732363031500872698160051259187001052612864215262744115184374410232015442873358689123749023647659947000941402727600567168852879698181662374632339239908746723858920987111060610990113418427920127523644130529948579490002770140636400415831259108104831728989513663085757500255337609356529918777061887683148352061437048157842072946383197650685080641734805121750032683286002567533071552155749980948793713040145455780256313064964113715466230505596168639801278577760618630446778137175044989597269267864676870018863836962101543336993962407941252213531853956332403345737283994631992055465109758679344569320266520207381507942552161169254178909831767169708456792717162388234131442508855786300918011290267886213600473562246618163245598772612461291741785617684641371986541854472891005501626441757040046284180171877840554430102224541239397111666367844370635245163074133156281439609426885692581013088206118195735776755501447964553021692918757328875098861254656488050732247668129076684315531297252862266614355533219277916156223928987954710680978069679850741988193491704203490512818709245690995639993394730405616322955726819503452374920054133000361102383454751472841079047191605245395556554673706104002158970261062499455372306183580191554014027940086299600877143565176643755147056196029331906265052227613716778327969286621712192908731513724717609762774132081022325362199227395910293953094305874481392784904925461695908751007958952060104949694863363445053484819759653643189659946192756664303000879478531545828847774020422529848454877939771820411481398057877737724842537456300611303883532777099316987876840774987394935628906569028818161956195658557661008333425965919362115078508102937729297738699611331271721665103480138527570049715009118711878944826368455193061767832585298948643856071350054556169703871560540541847816687370904300649285877419321660681933986152871658980037972042518844628182406391128367898269690845676819762835123374225827225097389237707635208445598960559834557729354608527822145625956421158036514322090826264644618193342371732092455209753887216973807247990783329741117018126220538695980359883938504934535432987001937651071823377048093262498237139152905475438298258733215543078599654491335190774979162966900240586872951995992128218300139898959866442046677603823278310677004353707583312969328067240209202246289350334426276663375299189007834822838164455243300542169172991980316168221731213758466324329175168290778251122900987560791083781335125456734969216365470228516794219217787733706945499858319840569274974260131100880943452784029850833171794332980994624637465892669102721920658032828774611794804862912784921514601690965644123099649004097336556085840531656917983770632064722846623387566859834351161577581560305734408173850138572595427460630849201809862851032247179217233653161142452866834964066652697212724864922443199749572530231761431399465039866640031466425329352325155181986739059885246467846347773484564222854754839656823602744058927826908233635792455729869496914981815361725034698984154769349229331300269062811005192422209573835044671344458893658504709107302444834033426446518458969993665312418852343215975166129770169597228171233368102485846389095693225575442654133591856857233087370241370216817337395963665378702019932806198819455209348781698098951802176840173774552616397366928060274942007540176463812235565939978091169304948126461605098172523040344180670642775055880045249045712382691552615047194400990459827746654494289213213815061002490255753937925739903198683913939450695895666876226554525598328807148411940353385772778111879315074101062241472447913988744600573350360881781684401067792435985706518223450443935768225466539509122790311323326525772056889210009891918007978724545642436781673193553504223775105120850372474133622083795067451338425346668805792181534791984848530555906104706976130251087892360736171317437524341251230843778148015907036628934548143370918211286130871506867203966840470420165657726086511857378768987628135035281406764183333490124411542200656894454552798781633582838135862392828345147849080956116319389469581210433836028244703194502122320033191625822134351102948182567506436967712915805238307695067613449760271440261989067510637322859588250803049274914430597340921631389289712372514046780067350815914572792562655388621333742797236031462154843540678499082105733586854694707895472272986271425177935567921865587282961491071989643140529364208441221957877265207867650351246012657931139597091756536208077051537823201284667496277928390613890319700279875417183957842460999944764262256375293958977198511119081402495320909999374627854048073200522587149425486770192044584734918491202869815631146159576445434449983432040737663548590511605833412761587542976280429755269675009776747851649452154630758126881493483031604315706557933203871382554083524820626813754784938301291999505456850964094260254739109925691715539964065675521296252888584083164100050106066067096385944358413049048731933315828367168773937705026221278657951500635897239523073221827634918549045946915006252298236161906704837215812021765650037817302473378160493865106150165390080729017699098073675499763174523104868255603806976533569864856191733266509573789349031658917064058093119375659076702049740986898730473790427177957373163580143340564591595087619962733418318234205063451884134176263926090931865124403160324162638883788754144628849106749801487648772690929687270162131776963223038085593510123249315236278097913928205507879078417516772611219268514269785091406114145349627263930749909878633002794520665364905317931566072922810264643065524169433571943852224044235712883938629812811792755330799768588983983372124859250430309040365939102391820188824794959329456123393368129624823762210708943935281531791551111264541573023908723536467963200318873243692658555013761695016424248457474913298253475524519944143453767966730515719568340800804775320893325110357828795433615326726506212478910871076577883143479652178160438767064181831252037832778524970673040769645760527751763924465535251614943775366897829473850230370792519873618417492780746144336683238320383873250836294488652228290597731447331896057566771813089159484176649704903855238360413970129232316284721555076772607527545474170999887784265911131942104499017169719678573938729924136315903587223342197045469501513088067707826653645428371545756886270546433512909651115877715191940587808461815043977275791656275137170273666304148510795375486663082297709534397916592448873176363654360017158092995086522743118438359263524886122203878857543032741856612524462410488709603385616855918985255368729383744946582189334704012355890390186832790287572883809648311779745567118789305959840491823183379447031301935016852615586810593887871264289201677415984673717165964135698390322590296256413035426247420498963942911237289450319762733214072181890409488961818172088271865332597907943652510222221636287986689523532578765835619456501014179713381525818770217840661363715086821275593610784545353777875173072706297566190256380225065444213592876306422575058669449829791726903532471532472202820844374053617147140819047294346976038242022914467408269151283967117928580576984295026298122321204565705497761157188681977074465010702121261065800286453430195714899283921259754354590908227369686046542742147197951419136492155790222213858420373849631665716190150616432097310581424734489530330894308536217989912749117855757777214795464990030152966518511199512870766978739227903225311171262686916886389741246734966218683025976059895740859275510102126092368945222647535581300357496076807007393194879773598797102484162444332603805437168882749253098150011770453573506861439813390933517897332273846828569347453444843813294063751592919561104238750419233514280651096181906489679453070645308023743178925108678735704921736107669294894825040235753426958018650308310457584476337560956697104714096156550777072633528661266287675503929213404070632355520200510035051510363771862215419752755415219906835086119837367024060651345559413415049739611666155508460558980436358902662253871650836521764330066315660581384518852690764429139621563807603170269077725296315011963669101809313953232181739786800937828536846839643312676363862147437663454710351712175614311560693114722701422998301597651735963922423632893652195147379185706155443564964572061534615761071397690142182739984718470281604410866535017833138929752725078878591970441847552731614666809714295331351068562399125682570608901336222856606413422825639033503134187062160359121789054431616220109793282134407671394227677558221322665195058629619344492555034275323042806490429243351130989962395304102755771225461692182892211218210127477098886894472214849973974634868492263043933920682822739322100550374915998293650916069544184163857612124111889711036590254500839923456382640755901518059301728522224383912522556417245729084837497987088661054645613753408265718115523244344373798969624596834406480561478867210645728399191244507143986188598522418940022364378624006900247053176276848080421418225401662994638190243986625055596017511870642448885763538425586501902767337941750602729631889452834144334927747334494404932620681624846046411339501130211279167226261652086363533881014424848394300912845847159075924051383601562939125214358516453194386625221187505159805837223555579152611823785085329259122790945893105839320304421079787998239060384145216851184385057995483216364451714683560922313365505694296172155170941615871628405869500148153996944836226266783342496172218594781472596608021625932444251897586132301711829832616294258084336497977860339439374434286074683662189540440196113891694225316282167700693652978095722331776163189155706428530859601396995114269254755916184188056335780454374821201615692129226358875503435937467428837137884233859563318328485956177875329486682071634670102591356268247724414909623873237477545564694343801518811600731375318150298214115174034155674223966008632540288713377976053258863707977751365927329227507216433343350579574090141658787769779389949530131870030677395579741051350127695520709047655566307491171098582905996298946069925089378810679244405579082624258777169895630074649776053242060727722730869279678386824417374964801123604577401141656025829601061571485871023376383453986489292379620490064626066604344724226591686793942502329491444621889256851266230887199426718920800870503843295950673872065509794272100829501543840502099717831715388799739665498722344841983840187825923522151523382776260914028335485142118997693805540397978176027206523204195861458872961269030222525767217939466564996350684438457737975779322811596617557676454381510201691006441542218484922151225253539442410196778504994006622371410904947930210276421860466546055674244860341415007550954357477301876901578493345648239564257198162353801179204815295348996635238058022930425068820263981440402034629256058503510571424422076175348198839825640327181317018216474355564614209945075924291165085670986250568368718771869305092119896172779727675013241969202813473243514407537225577407248689116252080638048212473979241307054870321173400668270902590578500683598276989873177027071180897402389590520834641648943414906048183859175236179292271092051316156730023862327370930353636961597587420549202082999574668702369372888547589648133293197890100993821911683340240978973160460875977456573799234485585752574895274764157080292212496756188062545716340461678732170227966740993315931381756719804225280151759537645859243665641472230081834070841077089672207776728644104115233954244650551284786754149922192712245813620927643125174843175638303429564415028297385915428251491355332074563499452692844220332587228804790549012333597258213469479189752775909295199182397383708297642772727718023709718084814969911654928691189209208055889923672107822657893217263516779352022550525148964785697837996316488016748194355013850555614424811426826204900395578165641221832880469051447722154984597838859489966452126559667261026927715539189094796255866248395180743318947170128612427331155155613094268661706499792012085962076583971800208786016602614731377890813111377671409538424510957517750215087579867638746569805111245998269363466275897793332429680790010684593091974844777263826436213276428327846894478571952410598830492839018225421283174284014549771240028139814601255465046285774476899025122688880820114009123551035336896079572230703426260527688881703891064980646658275435843689166170118971770373087571476233236080667997108827290025153802325112992548622041589940908160977666793941972049738959433655137086507754445758120112250899744636616923995312107191644376385157863610710431911186899362845875499836004706251127774189642568351901393293816009531923946604746352567313010624341861925757792201690797581983112296849894015920488913550570548972056918113361872973649406780241172458828409508795564654984636559051265735269188262031505370181214106211474255128920256952674523050134956669850280144950240680081095391596584546470010955276259259534163194547814784579802812938858648128229983992849599480878562493790938133573845695616288192474771843809849892580634048399931947772914277999409943568739811620632462883219182536924502036115949646794259932600614104306332150313779848554604682252799933748683685214905000625752240466039760087805810361996556939893712282085699151262760673062680045156091538091707345664044457093887187854350281289679699940129792172935896145920275226711690406011700710646467876749892052021477108568844634014304586156516761322652540255002614010795273983357082652300339267691376304565203658915937978085756920588502347873245444823535620653804483090790810087904323435293637714771203297666075603094149603256335841966654279651312530593394890069225024214828301856105669599722037323291934759885700848468777411035930482900906597055822469849179915107710333592903148593957342209463116901803337268348581345392621764683217165865314315436004020711918937603238400471530802119884134186620687188454078582430531613784157243048843396964255823444278061446326433419299335623668881811863246477144903067942673394984113633846970786748010632442274748430557356211228089396688307842260642880959201050598194543077480193138891122718711443317758703306273743419973625014471390116678459090428442797316053196541585060479946332863418624845862558317288918181300698732417487810653614626563645994710687055091375450384343577571628621435235594216372222551929243809017214052007726087457018567569444457292567014972491560392350295346420295930434390264597310970745666438593927696837180231102104278137069955400888893256065735057528350449426738219700384373729938252684716914925312542054191882734020911058257406531160991332931208120822117721825516680720944813968064337430856199553001549569109798698752047632665323398673290219406088131957766215990438095428695346368715160800937290961578884371198033517438301214002798241917435747946188796471646380754552144537531846929051473214402951434702363534696133593921742184591783387555137994955798418536980599082048813510147281968057333712854424079393756007939462787743972569945334552190668808489903044947526427432361710711118663513813913593843095793472859646787681756685385136951980863283756654835485323371428269501200766696338628938812766088296768776785192559213041554687096171807537771779087339934183443565822091104462741659177597175854788816618976252290242492502018055251236832127337798890276407065856651099780379047127432044827805210942956629374844983782587495530069544961927418116841666313621062189645826992106766638939360299193269699213468758249855436774942576070660504269035847681824529231652563059544907198925109231330020551350269764102586918411717549928119617800185981133897792863425706913772668297774856056913691856564565454513791920955624563382429598177735475527889567351453319697187496616430293135567268724612818090252977196694824966624185382851760588486183212106827197795981102639146843340252587646775402944154140099966321166587886765147248262127656596510236771805921468789690920347550540063920734618586854284517542343822497837750716238827748716592750015211435747510038379217766627402116725828452350285694473724083536817457617951991732679935560189026446226861334342431851744397658451916890109808050560527046834589358707622212360604905267493506235631342968761552613654636039603920998032372570120007102445039993074658023048769159069263291621706588852725806360029866556787396336602416841636213050422526110225774076406440073821912273568295969664223493749240289964577446541864084456551398047129795749985410521627110964997347481338938777385120317268598985631785134070848281859540360372309595197977203383298471118795765826606348644049358645050907351221328997294394899109449946128377998708774457150077073965378036866801786600605909107662236026877119766271481072788555976657462824438361771480763369457567461396645474659223911566633548208268376891311329074789607059939179406077930924054210201306826190054650787909038474944253737713385254449556772687045222736339634830504798244625451045501154139699238791558062290563810186254059135250900551809687524742269603932845952956197555252807362643374152287996567057632437062821384417638794431985532639483680007358315477765092637029472425210182744938582151149734170364521883560367939146950982643435658731901575724277682445907800522203212892042106669783399889249781668460370623639190478719949746171181196006386712527802079474935805064833962294598838913931636775508479229545790269625622256186855071950781542116553308316102320600778435606296729445886851955989919173210870867465599991883256942686585468992559545802150126135684209602714476656315352129887390394612063765487230083147349135753783852553476085565744408276305163510623727635370680210480698153695846933050822958596167289470265037520815590662696274492248920000418695667432748415660220756517927711210220173382873888768854401299438274059133831365899668305613569172622723453055322553817883832101571293441591587967261618965555430853604524883847725161040656185256608337536430386739505954108234694020220687242943767876891168491015516805111594734157589243234256216355265978596120895593719401815177124610431522475125030902550851322462230592908925261758474340860404174485203123268372664876215372103073241988128297512303563985990532088248754603601213419354935785425088000872954095901270562890984896308711260047051777193512935888840654728307208017233488185185215211060698202075294542410853987402537967568027266207019446983956629151285350278700553801530149784248069458133316178579083341579634292798374662424898505375521378343015279556830266643425955991559668528969831113598910246611571465329120538440152678552088702174764196562895064069405234729868217823474550177030638248168548570170861300726099493924151303699119880053806113238805310127735977769819094043999342258837065196350617892300704762360430244977856015526804292950127053671702918209903830711377536801016271148703381515763790940500216193184128840579255650783765544712091614354757053037873682402218387374901094590026434774084358422048669281021219721232000768335498851968464679549196277766878887582141720017906563600414966371062953761771126259794444683377372511891509024125255255458295315474685721733993654035614603802942051972547588566739374972808312329402323050777140497594388565697380616757351896163362745395402901015731471310678087785424259840952014193173311026295535288112644121988397051473411284590044487866413849343256072798345204247907445255705346504497814877958520186119819937152350766168122108910116870043656508426650504330105774159467480395014878221390555276898860284063644827477790362105990138592182370532636923334834326319571129655197928647601659467120413870111710034566898836839579226245618713729561563587873063099826825009881567898259257311107692657005886448823702224995884861576545377609350887784077734199923390315514224294306358224074699850893944853281074702471714688016992817610443763674793839147409568057151187110271350439366158878125879541446213049803783000476858591673165687371965047806207424540226260831780318137114209218886893200636860111324330023069912733196376251175407530809461628927345770964457569596014031994637357206406525968682807569107169754638055318510852548329627453042410520341829138167958940512660304420159412067650371021864686133342393755826694110884493848217120192320955685647647291034494438368300411828398407806863652994120236495780860521276109715138330702007551939951351259973399699423747137962505163019343879020879830403247464410688141544890982031937998093423278022506333679286453740329043861005578239332335642685321946905597217259035931015774473165694737976148473783750195673120932107753262707475344113928936502251271652466111043938962012149269579947843766649976137062320669542189704283036463672260473363531569196816935781596900336616228613539216403262375026807227173578213653073042915346709358373031114511486947264493815319152863479991394670408635281324894766227240954159842528855238414885311582508956473905368647289464881618633393069796309376645794528448331996036892617002728597675104240203927848387403262513174476934863746535033367634149362601490758222203035828849189903343890194753196150249834805998258861951434307893223105330051514092855464356422301459702763084170608223412790884595339607592272105904270941598044612708246619383978310334551087632075898589335555331933746533419089253451967868067749301609488411510773220942955496761056126438984041916526138820462933703894546943999029776726954955808336246126903733473907460774794188171138590365713433369420101992159529577362199294906242043278743026202130608544526185397797332609973549647786069619420693804378151166251548664394911273991675159877296122972735153479946637323598636158763790643350229969079334053318970822682483335788292447145920094722349536107162534245685736255936277212465702806954600414893699783309075747167144478242534387696606636821234184083154275751164986687306991948608750877230777495361369923995720456624230542064231681370037593556724948002910479068168559014294632185146274534196501210175655193016268447366153813794558493157084851552223145699105350968209818573024803565657784363971189289748832650694939173368554244301232187589454696661904643218829256652342148584375422901629385645159090745605628523444057420396827912199015285395626982335041657583501627352682757198237633296898083013089817524174312878385892435978115103341621639185277382917148170206589881541177065737063908864937133410412666970732732360809316745881749685873360593429264951051568384878217317157805274692394757066149669140525929313381003077318760217973543398411136467174170118076988165180272562326852721248256820178059804238007020376303281244208972505545403171086483188747448717464032128776745636443458412117123090105020014118738460579312373166833102639747470927600264761779459452108751719500415260032296353754710820414152481324842820630457104968818647722256237018226434796350967408507064901228539650352768534953687208796015818827661585272101508633989432571218396385795272271142174625754511927015185336228396586533026993340087870855995651247017650128651192780679692499307698485590883861148258240707846094606486896175733719846051932749183489659330774669381126501178434697178515587884985321228592891495749640588673945437133071787595494468515249801633208046043396271709398697684085318828922891980499595284025626546192955538810803334187254443152992930276497630145978687810778712186853886769056362640555085204554125366076193121006255014109157112469573330814600254670393894926871537434689959248069524995151733662795723292340159690577685505035610116183302039644313679668686275801505312864939737621573812420497751135905616310880390783773270206082088213591275756304356625790860982581136563027226745444045210942717319657156968244377183385699317858940095418872692279496291590529071034825983589505689819450933478118163138759735013951732435015596947389610510050017060303240672287251307258873035007641917874653163300811137974867775607803597297427491162516490654199469452493992697768959763969157633954447726269329024784615647455427304998901493370857593369948778787397583814907969211618425575691471708226754251683467822960053337540375119092949712189310608716846498043798757141693217973389031873606262559487512283402759188576017126986841642657891740821163600285382454795341698570029023428767394267092328613206858451650147292957504597995932973673951327443219181903507144527198376757172700022926424753934736066399667079047762666454533268840667856249428642835822605238130469930816650117002196417245897281725146395890867796918566688758653267667592625375639941474903711711864208374811076309240280553504343757298410616459279506546343848125765585762545970016679069813612351465103707054117810880658862300339428604942998705906712969824065772605659993984542130301177876355901549440584197949359096965629940599563181524408287382752979441489645538871563260634140598561926111194185175548232405251883289657334257417267889825519071731272378115280289961415306458980231524898338120473175770094080178520624082118865216015199516400070177975031458293438517527911153912369694857438339419139735171173301375880666937893436794318843067645656811412756541786967767792526257370502723852192024525472998847518693419457740629183819779574335298533513527995052285327080149916991300858007990261893369492314481792940087761593035866642763129371619791051707207697444797323758798469287648688028684578218559295277703945135355358334757024337746723888280113034103218079849040399249067471268527743759601970235408553253678827685105454216285064005004641552839397288629811611329700010763872269215180624757365976995198143769813400515168808683215718902374238700020318902442013034589571544040217125442896743694977515509678586991996834664534472686592973034401738425610590072576190587964641326280420874728987515240983480519306775878174110849220731078361470786528219541682488046156415729191845154848886184310221809710053410750777843952535470850850855834789343157942489076709578797763769045122078485689902647911586733698501530274835644688797148479417024827126893094479033563828147306473647967424385763743941323638019308510648297992216763664100118800133853604370254954028386550745303636169615381192225432432589597497217238750144202433554261169866446660047138824781496151502041442647897561865254144210046852989571145827500758010234938970118245900477143152952196858498638693508298095178628608644545459952298877017850542389098960034186041386580447558733920049700925685895072188458067505809664488006354805673002612166091014379814262534370725386758285712025732473432209849048008474855584082425799801026966904504929003743878050176352831747806396889379026791303494792591849827126950688721465884673403159014910282822568230056863857842077737403829295356447718488465754583305610896246274625715247096806869749563807861489911800716441917596330446480114339861723705874567727674674418185306043197293003599438345275666262946624906631895005778291164680553541883985425702389596654778300155782822984433572619699629871599414816817435066443351949604823634199813997190645025322394769142069229765160057186235326641815422069657613458403214909473948723061155749087008569004282876902054520543272557467347754471232316312807090891840135717644543802878929541083166559883460194656286509954043959424153357942338601795523774451206339409581643659521213482413478831934136666348982766790381862736084981935407723311769211680105542988258867326858411634124168530263129770775638691410787537789922111528038261383984667448251900593169872858585359136466707960216985336909526726705802975081865729028144658082584420623845639706867359757669200346442978713103866890577047957016693450603439110396317435989881013462771694839593006993053822518430218181693968337305021931451772373910931139514935249748107186480836634750445319285971237827982950376183823488685487319637513246695907356182203986531460993291137231579206739212598856895651874741632070735935611036159181047490840979715019896706625011607631812790430676283354133596233831809650814882873126033870771432848911941501731670426446117424707200857712070379216460579804004002662243436336411924704380873369081513602538707526642044167927605610228785928699863731146789480362682061481852903461791559151373003063314172034960666857204825652190032669629951573674343864493757265085442853292443392433404606459695777120507077054997195773332569066367016131984193813428545231176872331593627329601263220326895882915411986132608372033543170731465177450471914849619649689079097064699280531212064955560861697871083854887868676114369453405941515556139249175835778845759473095446476700777345878225461664128917001940202499509278427912141269232156838191735934869113558039333502662468434226730092182297964558650957705016455271124785764878026067707177089596138078147729602848080892232502121385720435080828898068150226362314958287370483825451360032654483402738106456052009557967097940366811340236157971125526560098956828324503551007960140494445499566792051543921171039347607596275238322492063803510053908115723031304890305649138276606615942164732350668404245066445135826227180018012557537983058751828167568215292496521386263411773760412271677039898475740130405313156841583202972497346453110243761092835254008090138354623125415290647501765108973139219160126974608263659890338732798431707701620658431060460580854242382317837092012539185991854828977537837048930483524402858560247634316525751047634585523325067091517144972761604482561715874806217730485003057770412253950217675919638262800026475198465951496994311321464492281213245550700730384990941913358332533855449429869584322406732686263279153798026596905460093613092415086189258918772971327365435181441265209991344521240233427247110875036839542028356298241361153869351609009289497881531369168433917224703557500333560030860129719886526459919640301593807013735830240325160850815532814577158159796691024401599698920265172663277189534492013243052484902673343273597423569892616446319820249622819771400441448683053730406634658818052423773348102385680205992064793348738255148661159354345905862854866522555672261289847532963463415354367713090112987163508482901037856896646695135143705048915461938926838148850385279557604668138397091659943542660924177137530144843807220835189072449924985821927622274614479153207442463901042234505920728521724474334995405398097653318236163438401065006637505595201849915984815580824900699281721779217270821311399118499881116417364095089968813443314280307993401929012927733854689850657015052943584571444600567434102684506515617122727072246077928947741349459797235074232535716617013390573884682387044223263142390386422127684455377683485318677363594757405002247795686027483916712526835433630602712909309183155027821104247763411314401761850606146854204197133344032764233735377225084855150455622621201083768563656126368024553966703095053763847997870408245245313999626156761481612145620717118565960066230020953065582477368012794878922659403209952256059242107148286814967967775924788015528611858496352024533100159271308518384098823684861997426681624849397660278312705247411983464596543489776652480641309265088358552901610995923439335135608700554546575494722664578346819588801704429265224996334509321168660791919988969641043634227696081040269823520755833954249078067965218902143226660390910195112967578286327612467574525664058960807170432491451603588517063728278937819757095918270354299266193399589981512319639348351042211283850921253401468398329014493263817930646756716423730092108198998021035797235273718041953300016916755810973287995770136028104330388230414278766388561598904459588040644753246979739913241889708683615272207544188080108793294367287618260379270643854905206919768742853126228687496916507648501632505492291113343852495096398432830011258613681436937811721391988561821306751139910368697100313425882606182286948602775720023497506629829769883944809364585067084379246857506725140555914842661675071013174278897571647269796796481994815640152562060882103834862458192764072999894418605925788711189207300991518663228332762977036801434524226331263128146002363711653005398006420159663445442122971752325938613895959324402546303277129415274916348652321652795488516473971061431573711913689899771161747008631242735487823267668268630884001496192259337716632420461303900567690836577304192507785053247528087917385219901262977968549453385354163223099122151064064982444490365468262623402810518102009889396431921811144420616266181187601333493306542014624574469900689090462173337647403495946731762534291774866020505618217798774820178437377132789896525173748666028964214275451906850693066105144174053543632572911501117455915854136465789661232492683611782091454720772321249837779334401758690254317047790855702482205699877501284132227152729257447235858479932032562308309075555131074266692103531283206313448688169556635840216668802085477963036875707327015941719674765797913235568343293269824238058787904480193489560864894916105535182354682728169488147588448924410697594333927914739785830522660823416748377145084566040551478676946527817837067223112042906633458237818787013016183485780053109958379978628648722724461999498594621527704343509653080307939149109633129771877813620192245322943390504530735958503175677776015187867809607305954777441258432673186855826297858699419633322877888490239848019619238300836223394583777277529533337912259538881359232917459247121480418142238420473550565340375885026828039470718024233508823256075225631022656869867787407061746046800431745190741485491580278036386673474700229485959512171326784747121928793756982082328598917251946623206921625307809239712535066677061174547721441419885499919485111620989082692842603111373091545960789186268255863120632627339715934516930731042355010810562960043190891578025832557011984677190790552160968443696200757791223806010960059199769661855459034509001326570822557197661246416062269640364101039092578815479799702326348229821117256665984575015541983905431803318224455348634788426900581793445633086110117803037986418969168561177985448383041806281706373857329151399741829146130820588143865680346726255312144562781158789431930541592168076824752293949542203494666934031983023023301173156068652925050501635406879973933344377966254808465554582334565333636076607356698448471526490613222101594245375554861705616752067065219681148243199008667733076507767113912229741575946033395613105853561907201806568501399160418170056018761056370554212279806695843407050645791088546620914056213133005934418733824028094174545724713267327393254512284207558881465538700634265227413891286093765058385649954717810839290955130004454791543272688830081880293759759529477387257073613713585431053105242485187733622906978332596778034957878979687923714494936326097334513259021044768103495156521169350540641286845473723077365833234680555474212046322456036447135122788180606271767024829198686950020208243542521483740996960190766734406424179134971040430203022769796796597213684004424369528999221482115841092383748595718079044648585884242822493584104086293155686132088241034448197666592041691366716455507542661547686846856593989617364170266859287721185502205100045006199853722919594757678247170405946004117006022144551365076969809806522934547700610738347240629321931206196631085522849776229780398271627339216820450179424917532885347572792899289975525652930247938001290035156462697182837210722912186319108518112601713408923499068808466186701334816223602329344086109287512591934294411487985323095288174311344039227422182575416096662329856793003397992595869737252968255149627516937445014353232582256920198373762538564744025094364640246092550786746958953010906532793719723942062200800548194810357477677259935128597600520459745980773434098123633230224319398386318960345074875125918455801913775983986632655825297580650470611012590544346361339225544859091839337956362270302352780393856655408230060332314187845958141662608714860664338752440501411060265141981489241775140030193950383111489803268437209503822124577276132352127179718957005111967869308383054924362644592506817112711035849704373764649702289122591173186770431803960008665764716585883242340620888280756994242862527693039063340829023230721031587374651844542447200174938602956869287851628110896086024340474076501342207420591697074922442531988638018404324716055517398030043846072199451686911422044630089735237011478250975368288530533135069659378633001225572489980872144223316016708047248040025479151801372371554550852596560521495964488980413674197838840294382463268055809749835177929999939982605055379150665674435835724299259385890186002374094000782913205780448079544904089995603899345608561600415233883062256808614355541107185974012767278242199586796800591833017224540115893615599810160255895210616868181384037411756447821994123821380545187635905268057580771450549116324325600193281182816352895156981942766219116754530995650383978474665183961067499333705350153196768788990631289093925387068571947488871468735054136117734891868397784039411271380613769482616052503680073197255275373839569378364598117610185258434130909422658922951710416655063481288634008605446034641649911304667695913821185094022847375590261443842178035039725887128603642226679239613698636916026276066107033733373308431355482596128064949451836970865009902020355964826817749297103861386821124572801589643955436329345494001697891700026804382160903795686728276405655655665593705226967683784599469282301601923173535767828730720858517330032078090773114794790757922952457350875057733353962129383966574212604659488220170167096347217122956035918207224531533062480504814571855233358290492067234764643260009448982407517112785309803437982012959290748735398284687083754469475050250669173781906043705695330517950885487142553963273683712017543774354184099100056928678599320515035980470417860525057731680402773107856257737288767095377358954257541835607815736693771659207782623668701372764944131602525913070625088682993114150825165408740085008991043428780524222717467588252223539746595353087750649378082053337891281296062708963661712853595779213024765510792337332926539214150312913100368256324673619021941136040382057046229224931812214567442277677971431969289177606303768574571649753667527351897565594693651514656847560316304438432469768435719632078250780583662155699263904576396269225128903654542771676948798690817731533826100601601543945421012540719678589525951869727482967960546642530947792992481007086956113351229488164512491629645459158739733761716334195989393992672497352780513945271681352913924812879736476597947465263172462222830573222443186660249705645407227182445578289875114279784386840990706908386696370083846642049527799987674160912957384064066706154508794483139932963901572144047312041737772389637669731793148568197129730133507107288405215394410755288820285260820867735137075335047381672467970076486781875535134050314225165687019970697557651856829400057649913344668727613485339755079348080597310296264283531793608707088525614969704631534041304851965997326430491050770159964447662245809962752697375201319141760588215064548779428270995727731918357456074467473201884245196260454112993816927964761052011048751269762662559708922981721635615927476102174278617057116609532858439735035105705987524173626508014712188675939070197718131669612722697405765112622276763697430264758448137736713312349764597635525165072153730260708508744628038481709328355689192513687912686849682278651858346171398344711977997597116431253000420768571927595207017463556972781032456033432876658970534212067888130098923771812189497107574464042763104938612284591748201279920228427736456548679405398147795655477500057386563258277758754347260970043329935242992961598004127731658091488149150954970580524178683163086939131549397867085511468045946925347757814042179587853596489963888227525467679161047857214553946746625326908893886160438693494325335130919576846617336622403795644009179570280433738941257331628066973879871049002374995503567336673188433060375735635952125465723469432485361072712696201512703184169556398660414956563680079939972728799370633417292522924643267582802632575433310856447574701252096688745648610215181947635770236112662997910018330004482662186339384101439702559188489040209749508924539547572070176491141750315385621023627049966047667406461670932864753134424377517709727811468580777940539453484340236069912775493940769474295192036513235779508193628897153452503709003265713929338902128441774619007143201446832666160474663521701405357696352047912699265712938576863430344950183372515897619880754568596555048418764161915958525846822975595369820931590741095297625953962130369070409640079969782042002711360819823844135995035795302626046274842454418713729693503282368012627382905379242652917828563874121461729033407417332971922079024242414420334738898318173923793922549681149290693174033332317746341311078438811060581013324033371297630566472979131072964817132301470717939380243447726667581938014238487459153262567545937197312263589579893584766104033973487619271970211894993112037001704925613942418229287653940278201507612751836606759455314210523397322335453299211765436117481517548651109451044357513052442185251095639950682714019804574981993165137109909437293168605990963877756949761250041960703027776615202320939360736817215870296347370913903045426384320377770867600323468243426887257249000383572277932251518606075403043957069733259700402941019344794031162469503114098189059972190500736980028164116583263428557404437644085941997322109598681964553863611253716971493487975609289338749285066151079037583894279201340601931389811262828570024610424205685349776430894642668706335328162514189802300750852375925999351419550826969954622583340717604655180433506166995306058376301087204429989525836852050456645674827261858520169021266819335923509607392193484395898705230393642096763484600632671324247791663746827924275640595575270001298172709676907550943613301997347413487821980575529975425550253733830022848792940625197266531095792149426315788310233066514384568069428890021985095302074906456633279402744835715557367564474660432562048911926188584622601339231321122674037713473338751740037719567923821533044127996054531413005419225775737338314309748262307531705548447864364288247633900275043241685254753596299467821642642920243971021057292790247245982251082038603514185645267368998337190187651671009487572877489058529054833428480331202529621405892411818288238570458936791720239686999761997524200001988342311520701429632083130977235867060678455974764872061827694814316941120038098423385797097909866130822073304605739774394279552186811428135238773528231299308437539838063915139014014464342002934166388278976172885967905036433710502522426826745782879890836081802548825989488780846274117098971463048633168102984852344499008259256651501499922186811937507909798346729715789108587399272330931209040461093677361606164467732510292233312262149407496514418414528901472747279964395972073098232030645783699656060198691686890494526534053964096628669060724021038721074235792903273086536650957079224138656254459648792409173256012339488816301873147618616540825176049244601867995358211809956549784726372099579826916153505876512488966351293700739378234804326288147046540105666196913699964781128725932195410874573833707283245394278376646920879882132444091498958094228313228000142851315758348794193410018042048379385596446676017957450675148351271176681878253405996149832217663074226586949518448969431523251063340201490895543460299743635408255292373403198537394895730309135760026882542087380558540948281913066702779419774823708928441330025503517488893823758870823954029162065428380873452338637643202847450255104980447567026072869314929443246039472033493532413263375253386820272312342952650524361937972926087933622243841303095246277542253061711889901597895709639185731530526322968011344884129441067444333651954431823037473125433959010783595124989674098361949206025943557724364999911711210871071399298491761167618914124713827578993992122486862744475457784800631678591231727779631669648246707707557763377175108236604230401851099824254074985447260551044896594606810131406341753928430379576308832232081872401382084294148041214345010364621057457173542713633312575921887703230221497937850233316229800659829555039109910372984470833239986171165662957594248863593750772790668012892509882259522654304270420800164363015618727834421371546676798331703018791159675720872034126041624332343546592941626877229363920508874142726120021049026127298507868028631524802070833150982884422963775866796978034148844858329180686235015067566955816719962444909862104338577036016824508374539220434699377045107124401971977029075153662097892935031369163749784247835052441617461451713339289758121196749615540047687569229744372025283876193576302128391158771851013989496306781825334403862763255033655143411545938334674565054191334515542068660353989559680228001078412366899776594008824505462386048470851889392958896009405945841869990251356481212016604172998694580291924549917439714746400750888187154784715318071631876673718027244321132576013109635057560319630770986706556061551709495867120613988882044892923021483378715459157212026907536946789622241289256630241877294994990056068357202768100894892182507961897534569171540974667791668585537250596007018608197497546806723619639237781821478445044751543621757896582147778236949593907059864263826932781376890365704697349755446805701909662971676249157415270429235476413918304771068822637576170761280982795357575622981539939378216713976498429446261958087065219796233694760502923432177427220359894648685899038226291401899286526456532052267546552613801231148931656407705065763912190307145274710691875509389785806869680725065197076723492142573364321168941671972935981729428341166125218067429981349078897576465340524514868023687809308935359660907458785299724274727557861663884830197234737420127143334026704701715005986514938168338394167361085331583751610267334605560662317381201168221317589764963015644388490900564124953085738044642432911147420988375054541093244866837579538634050405043005006165134552696310135772653072290772561569403396117032610826588218189992591385290514250949239822333645297652836524723220819931430562259905783075010854883900764804739318366448043802788354477251740380037600032711833884795646320443291588760807133449656162795299932915047634031152870667549553100176115251245920938189760484291403436501331865926793896400052210108353074167653429888312840915313566229628761266668053495144129437532734976893786700972189516370736111111463522686050000851879776970030343445144714698935045645175138862211074493755294345638495531838239323506212179734996024957812090783748208517950446478318035354294504772899361638012246510783493309128039149357225341473054023799773582887757875481279466369327541405270193763626270335143198450905693010874277620729647145376878885279789305513020549283289021508602733794922982183020113563737011625886764723171072533730713908494219847554952751425355473642664584125959414111826539771098614627152662682357167534251579371061345992959889595851690535476613477071277034898249422696437935490731664614693015999837268114665954189435270232430175019854271995720444566322126761046619344906755764243758583376744852448898730574753684087274075395569520417045914668828593200711293841832284298956417816503115294276842206784615667318656083600584749190642116748635331109026445088344538720588146512336972228193063072693884886589140973914692863584739044778217318785673709430586442509534889428763276938572100065134234862828049098571738641593605131104219350250077554013481482546990707199759447655905392358283941671102355008387661733376935702272032907734784810010434613106973699150604947427670607118773177777535030557832709544300206260864310097246857019368981431098319717202671583813298704022375229432416774394134733483509269954128976060307553344748896144793707552192492346059900599219155217522413092436640179469711190050770105958214741073993752755502016266414550558916826367143313458390966469952895227147067847742014112569751717977772046083041635029207857240429602910421054249863781441303978859710437339743181325806506133848515899713165814168458852090809305326806482525743576084389616513313823447101725416905182072593715878720023487465910154566680269806499764083694682028002441677026021526262997196599762470233605383429432911958706156668489660195278632539547252556444708476126103884104897723721306292525485636534234469201755086778903243117997893703943867465521622309297326340699967323249696205764319462264847995249845687577282459042596918235349532335158052990145047730436595181293651025684686600042964571868512755264059305383536455150974840519701673561677950294120480150105993358303583947620144909801583122305765523834767531874599316312281945450847841928911362095912799613885373363902650562459327063361895019934237490554441012489412535241801834713845128000082776946303735970378943899624950157178276148127028411052370098931239535300186678614411873735563341917622008589178071843188112687825185783355813948846968180902444174272604148199907818325473321583778637649739366426944403337084018117490623481657333078949928509153384517528870138091315030634820258203229238098181008947290649163092599207273773383223758759817176176968317626553693631269847568137003045327031750415150471109177770249149032836215730873878922231104494528657903101939055418563238566884388384419242393466840754877846036568718151074246463652732165702645191690120281965317447681434819631748915861887723908182820205460252803700160531002070569173055545271785206633378470736135995869563932569189235957345676460207628243619373921380621613527107714203670869594219106834260602741931480791735885822920657298341605785933711820664355913509676529657063207646619414015056766048646867115873164683455434285417937193748608654769427883109797733756247177073621804382296379547360699598141424271932945989830036258499074005429733717586635178660585140583452132302484940856261103814671211526884401879509599366639804118656725950441957972854459566974790163525210646382695699396296028215593287611154975907931746044929651146573864948084756937107097394543221016942152946978415043622053133874802516813673669622069007177238630088753112754829462435367981266526751431443808627668702185103906423476495606844162765211834607690936410285780028127624167602041279195210305182595474239647454970145689898792750081613155440873126190398632159710671426114574697972560014395089587276546482362285304408714957897120461757806891922554183978065875523851316064221611895588931788858107354378917787547656567047011941827140854123936966939333141565477196464767375136849578856596235794785001027835143438957893377172521737002654769014588188490381033460974475281709614946528644688454292942486800461754799400461596422047825762297501443675648801022434644477400815743259419078387356674394999030120675150437370485060510554212960266188346393298325970799254736000584813293707477099059728808975315086302918005766597274307622788677024130364603455686375349693802060977804332684058983755636394309986131538464141674001640630813531256703613642451052874807777339561672270392379073638832677738718079657729308793992550625861853219057816301968968904386161887916124234033115603313146619621418442382654354046371747263876309911759390464812042275333344877199695533909647362576060284111586236194912211249632818894839662156845169764232205311050319304756521863556886474809714669804963344445609213259570003603350530131570094668337253418994687685723279010471796752771828704375838429611672333580684367023341965888128081118825762082968371378922582420518742078821935686293969109168114413437713660268897039214133405335407901609642042496088756907135688751840658655831235763348715544498821358154047766786004084605926307354555707207158276342964172841901975373040994097592007474013588335006491201995737086326345357578561359174774292272662427491156805070692297019709654594372490683710499193486061352122690658497311670421617862326246229293381641416561939061405497918466401932853371531662668294977158052966819842428976631263893517607431883065849870068986026544652603406853079257616328829884722103356904080612540521362380772107971390288117561725573566453355719672231694820163997380839590832305675117461933346460001639519348223469452795995463424785339951952703159103119116224916071336462400043869197417213533711944107657686831174715540911292445708588459864540650770829394816793513827531143467370742261677359291791414647273995225410116997516156618961246015845949760065515693533855609910833476730582481140955114387319190479248103035386938428704016511396492123243214611013090756292733207570338642716979963600799083756519597882443131908913093404970629857060036428627949976632462790876235353016248137839294115183510152223137819912689467882931306035879408448656628984341978201700663719703767914279208360731391626811819353260441591785819222422656615941060171753699064955541507427280476073706909026711535310605639766537172538248324007492820218683974924533597411151382575258654067806755268950164836911552787983089884522581293412839832223158805124849662417370551222203305992300956807544637972652998625131677061088873172935689055524974130248845574563697662900680098003037814528674135849538511060623328888611607569841922128842512280585678248707814549685783269367386743999086685308662367632148156302111207643616777004531579701719655002339336767585645261785363191639910179389476383925749064696297503870852884826943142685306331100474797708548571271253360973671077773623303996763886970845330877962171594020829068867997512116163196441273557772618314015624151366160824568028630732694525743500760487970815020271939192150559291178456174230819447705344633402595338221017492153428487865425504033375421632463481466731102182377908339667232253717340756722205496791842505459365424790270678012619171300725459209390504564149199361061054584193034663248489758312430180854710872256191196504253858314602958171805554372842071713438375817728385999981412231464587839921419728994099362103074053067653305531183706476679208662027932955028780145571525260591388081598010722166451710898460863900474254670289653825088874886383254791588310389408534055582538430209914479585093888224209284702448685667879556092273474214793268327463086536191682986634652225935495128531747496311595908300550173828686886350265108320356962637545516318261247172619288787344096887218169177953096204650459753014642183295264998330236408480726929649258181476366445395053885355521120997964227413437395903164184591674976477163529152735316228469974092209483185148011035715279215768889654800933989489296459437456822276408327108742735469024354613191322008851452741355350227713753948539131865774451117638031980412051002652564992787337924982431298549933332322034315261849958770772922413126788717478947379641533071289773581003367238030044436455348963431937625657713412211679786715851424713396081155747479247183758831568503036360270591519940495686193380326755483094064452194486537342152693569856647343859289775599927450398341577742982051412292029585869207131763777242139508593205080295769767180454233136564690612717210803796630546471060324320589087204871704493435201617721253539548589969058000438421122817316897791202938980385448278603714885638961577917268445213004306302740211725427941352718391042796541531615384258258104213772931208425046466265037004198857635927910115915259378634073398688142936698045764116216373452105467905601221741135912936054639362969020311441202588641321485795129742336315334142457763096432479730611892884485289191968802085144605041759384059499192869748925556342308891253452271532019914949241923288797446992810630395563769044852847196760677271965908024058699001713009180535688986163029632136396545373920308521764675637768542001961463323097514075206391433699611953284621466419975251926379142937017055355054398940571382716492050638728762092845058037829822701167226324741257652515840620389718936417347677463975636713746495132230851606205474589360620274442012146758284424107921612462367229178068541693085831239056111338849626063275208835335719673841751825907649645222783014453096622388440046033166393879304349703367962796797101578898982218116483104084467304288150437443336339960455786703004617869604377535452339982358625888084968220403519454325644190774521407129578672879918608766067239693002135199466246460443472531559712945384545869390154356868421175566619976609770464698895676226355739694765990717809767124718677869629857757422517873204053377804460336135567367636928221612716654181002342755986424017321523589915324717593347518830371083217770643104373172374381227075649267109277594267304136344533468210639673039776627016078951474873274816277400308671695529551268081013421128045909853603472864425590799746989416884496720202687453286908360425384236735879111226789826110090762963171163102488154140226015964557003487657719218015899835913187332918748774199734769073891980159488240530167522750307873853815145476134372330716667692453480133800146556552066762599826271038022224356686738784505727949127900692811820461082189267389685807001505962552685239240587830545869662518188504422463901847990524092342156076097717711824262575844735699239746157308397252319207072518148562231233051466616681983525617125970675314919298420328668780871412989308144182631831045329218005305687545035264125298509756604337016506725811022558354156366037846925074956205191480297140128649419293446540742808284454558380338666543738585997399718645788892763579742781599206113496437507861464696285553293437848724747507643202270325920042868201430530887994288871684724431574183066393910379254165288141486457024217065113635535015415764766250952214040285543235665312296876854152822077578680236798335724137685503050805643116374388194473288283727099454028124999435628795018197273973029895243396884883136474405192308287346339420122743810857696138329120934089046656583981053627956762855314507532437631260350228022031153913142979606470586407291102909130662891001901691552687328508985151098988000298828938077648288328317722953517120322481468134084352418136482746246156573862437210116386699721294135347942458773083855210008227318745080396595921277371438500617903218661591638738335186507067073811088074843976750695004836412623026406874643792133034047494790122899447316181638672237484735309896232577615765945016269924061462646737853494926448907199722346184344065266811000898667941384640614123861900165126749555089709975286276842046492437346345665050855709279336614906107575802044752048270834853973041104838369481503566669077078452665986506577221854753696738365078053979108812303865682775720407589613474926850980681179174223989197107378644480881422682032457050561335434773574455984134242473108432205289252311852508494993255838520809375270603211034804521567598745561086928324958082743923126009592645863743704000109617220446629428094789953949435627150913128209624244128662650304494204062103934449545054908174286786902383583865685531375938447189609934443045465111004850819923317248964588644586392367396813799935734399277975732999561358180447191309241373607863047441538410263779585062645903413082793035339294517813781048610578471244572241646533599889929377059852516852439279348025635062662801554851671695769801092283258113590902294778796857563771188577493473781158036170248968792434738121183998043354998927977532151535941916025125925974430498008996175782726373737576463407012122142541926656378676951353766732729083577486978795556585534909440098923144917572778715323894715101525900077982480126702055124318954566873795433579646438084134781752311388723383191977730556778867615723126703036920407378176850625072750447716196826600797954997266102331801035489100401848117676054306603511635139203300480142803232659546799376139935619268235408069391470316947263738514753536848970029067664394054855446983623128420772764135184089620055089976630182094908479855545790477592028556819306173363403976838421911206211758307640245626979874285368035902844503943264704256418528123210486861277362426336031522903975689516741724610119751430946954800679983158936898531625775499936565709149625599243935159449643861856472025898416271107102565826006708747642822679224921145990380920489137805707796537464195076948694975603722645194514091569151059231179977699648352755493886715812438337391329426067812113987752752773129097401940704058872040009862887901922292939365239378846243652384005023104062242380471628489028134542631677763671913893745353232067696979619208690375090035998765356314500776141452395808841208489733954755456987935719955037591213219337562856527919035321250157357577968426206337283270246230731520199441187408662154725948063376646575737816299164963977509112007668759634160110547974618846214815795794816118799451439136675345581358632439226834937765280034197369537056475359276810805809543365542937691608548837019921326149760926137945633704220331616170293660894374302613895056439269739593185360511991908219239290409900837615215398157253012284423729191580457435807165543041610490765510456974663828999231782624153843402348445610073157611372939733783639398996810460205420598782668668771506008720993372203088210240569584698981568371304537780663337855269953888670917320025873141120578023508163151655632361936517648376669782415087097618499050806155628438957261645902254293639537889970919010951351871596089771539070032723809544162729582831897720014008703697346912009980297167249047346086024925954300279928597453148525735316707422558152967734325484750219698780106340767216226489007992055509908297619752040669335879284139629910987980621710048505883481910943082594473457921220270783334618423118714790449606272096428836105388184575703462877644383472823669520744636982839568221490786017956693329226975434883627884172737422755474380431254251386767442110576980175467632453964064172489607204585243203798623552044414080591569406222407266544901019257129508260447039967052544892406566852911206073898180245563640581564165359169175696205574881527143121674129390652425681873662522166122152552783560379290535791858917659311608520214146553937670427877200744732163822619820880802165791244444098357814026601452349550389794622163521350649268287492090100149222073860458482500757394822551817838919656509784525475981965395547298862373372476473070832120564513236417800649596830119505610540697492605782352273882107475390860475672075771167516130889915113550254731924666022534904723712058596988546848457609321012144930674669322813328083126185561143548323024411723802970359504914383518034037268687033576190693251682341477672088218686210847565144560696740064600450289336536283984181285280549271817957370331683854043516504329313763963147855985256388255879004641848924700870410146816440720454005030885836431427835768769207749001993883313870948759981116849822468544411604964785085345452266938725265706359434667535514744646581326234823836464978365110259103318696241447747822297909260621249392766708207381654587836332732084041763100381068090739691849499768317445779473740933930239273369265443956720135992987348782537042576942194099529228800357280661640905429453818725498658537220867668480951702733504384313317663024337247666865180222179265576199216163707209660018738162266858855621267618541001676315962133207926152860734238675331757040167787661881143449643121779060068903304419700690436718927530259794288686799947576049882133704415707613006950484734227349200845050022652214180868698327100065863968553059415293760885347876937783616280670237384113006401954548365964897150857375431396924530804561136779398843041125276492083231764905619403020384662305786016954153585282501731132881094208429547443633501701447866498613604796591255244843318300061788342510449091388277955904954133506924510634384562239091551461259474882259119237926748292626411420027969457225279662399007473635195143270009453674881122525640597602956653390705980292058972907120013650801581444875759878641186314816535553500629356498109458546382768777767087386668736258062364209214524610713683021343146384983001061436091851286884169240023654994057117486430851740692227310999551882492482411209065431763523614444728840922086316283942996773355855270662717874796318383522534268008902331900213286212437601778165242777620617503002419322803378865273470290737897363128882142114538812948888341451809325581749285411790895305815423651956257979259881480203240453922699245879492099435661384053085969519819092716990486179931709505242049496420929808629497497004825507129247085781804515864666317270861398086302010083671380868990077195102716581325037585138107451944199932610253095414860771054285647751004660518483944246967931332001308873574821626456089090727384920300974710113497406017090678544872566580693679051197204599393639280794873696964326390423291816731312091839630716792678313359393580028693388484460606723285829074718747093702332912267279249174235618416487554014186326841987153816260295702650052852721703940574410837641256267487312476398267294377364676929959630666264396373453732172603808915639960038130605840932276850751938894056999134307762656644799340589353725782428551272994453504474766181539319070494522444569838509046435234378258172401421150977622378293587490907280700144527920779130406125956197014231371419517942427988745894199262575078443468447791784308572908655425648928340227773131030306331415231545179545736517801274046588310077345237182238496594029437457816571339399184619901638940608255974438767621066927625219795916079950890108833099241540167924018309279873463388501575640780727844000095807000935459141908962989489163094980077556878101943099300333213961587473789841344879103796676476948330163965934507106020742884443008355416326738122166282674229068889817383958267019155497667458793737339625246087907661808572183890435155649931935781675292073367921781025816055000630207944351463048535090865779411025514294104744519719912238975189100815307905751190994340302719187681909135327643784196599141715780783444849642820657332659635134105806254256576168653250819760703070011178290414187570951643637885563866728881851696192422559608613429842746674099041405231957986870203681938570313924936627899574619269814778092614600762594791730822039019096127852941008063899034385223332692275406704325062925574380476035611788157113943585003061305532460637524484968080707749483638814832853164433058583991726265328671337482631048344752898449767831552268301171099610311324116027469810819018881106701219587096674767402130391106998871364295009305036743639573952995579901086054204505883864119502773877537529293213627159082094255306972499430657667825424783340425680076584780986019832690730607727983838763812423535717342511179595400838052808720163199483144516989686683643230298518450547334872889701172683503805411385755564350975519812050470613718461107185004836759928173732284052026796551303837235761425944001583985221575292756952437899824235773058360074360042372583038257041954522170466434590976737078184575902759391821256937764250578650062325050842254049130113373829090244266122115659355591982640446441020728834443933781640521047537883469767224010168519669827531548441412507775854953451508316618405890336012443128430460672309303668506237790047918661054519040370901151954469195873627951799456749062427425233771306789582170269288499724780460550785626073881838239694779862713660328355760296952156544955876910717976763707184324622636353371269343365314892574152019142364051863064262355470871773393982485113592970793472349542865481324618747130727691674979478563691041055774814813523522461935250513998953258734888659384846897914441176377020718847672560534416363473932661981195586886733298235684336774963458550714938176602579542281716861440472767173216266705107076168327411059185280275137093011130524140172143041909349104757926306306280163469695551354639139656358236602648563994234514873277590897566245550532442807013243741275814585281982178550900870620567888614364936467783563519316607538523315157531966918438707046649478368794934483577344301855765173663527396512659793048245869893974319730196357265590029950910629531144236668009740425403646532384826039386614012108690086207204751234477393974317867871191932927853683934228710803805352023562149997977429159416155337977810432454501253964214534043985864527766927231078839082945761248199994481164670867780558781628939376895588390587339479056291119535035190638897057496437888959987943843315780614431641131679633903473341602133800522995633193593042396421355926944834871386271489111046586344301886986825298043647925951475014559881443657291335362017218769842901879943161260647253821147174900178966681549384543212038727556641058907711823672361988021207747974807914188970890789139483460155627909434188778551449849244847564667307405158983853874853158970172658202255464335652858633924393567013968557575470137453944034809381388186643203622768010287254568345208083876481019790170085421755831973670722225540596609678479083701397990138802096537340705231822939286584596783367435029100008338912749759531399138783255753794288862373340893570047601586092933742995514401442404848855522821593380369427056763572171847504439569752882490641089351868953990498838037770105110744311017002744952702087690827367897118079674773772260609702608225676950242555584512408943635793487140562749553647896484006900403867918000412587155003520026340590026551325163471526612021546689084101512606563811457389614660641014573762922375613146989139061576001088507742596853003336294866946236881167213670290599637311640875050022929724423913199750124244762688837673157666770836224529115032426422283017657906903392308627451501229247686283140118229064758182839585243869925856241645594428084279973756767116931195466887218849666145547789990496421120753945912878616689947275033408249570726657848092987075770909615113177269327651338527851018558434792485254557093154644514405817440320564096777490189583547522463496993051543885605462115279678234977615917653215453870823711804754474958131008932564861891860917912118856842735797408760769159720571607836768992737310360576546891426550581071176896158413082947393712616105884736254449274397087219122674925434231082410560540241766520685700679173344171827833265514851326221592803952687005351508672088831793622655921042508185464103691018167183252968660519736726053758349449318532219050703766267438346655445057774168760439991911691777798546962833468374758148210454350114228029216863818812910780118486909117558822994301910355364813073367009467361577361480604689924216907658105448510552324980974918741204209085809200175758219013920792367736642538017556067998876375560332578346378531587177779369090738192182053465327136645893051297300768465958100820721945808434784730372826293019920075676325143428461451753379349613887303065199492833507819003235867878689864739348018707282791356498349645851754480351401177188901075419706917572726949859433899143101117456025594844278973569300894115705701458623551497229980082526135018668097442543777324665910098640345363242772307521507418633516747702857181319568690866404350800581794476095666402968683474488687625796296256060954724846260364620617250241585761045856072114881233569821556492745262238103993047936770810736097849763652700357067565486263184165310858120145301080976774283459296484651363667777227575197709138663334747606804743212316595274669873798420982912448905764840151148318660942657454574862605081072814746259109596300470796282771084254000650502337979850214698173525251085664984398595327894634427457564488598070481615994625335140064035482056012531565752424712512676673362912769497288491124266928195377617744990313587448308295269849338444637439548954075447244720307441319010587919892371655371120292644366175476621270096743276395706839841999146481389035999862254412614046497736231329205800350711940409344355398288296235168750504671580676185667533358965865178102747943706415711340245647886581294217761582406988357627148782220495607816439647614932205653916457460629863756813327423441258374710224652750599368361075688602859018057589452529448128444036059693266408728697040289922336135161295988346518971898542514751145166091816275577485935330334547214429846108956536127735810294024562279517116744807232971153743308500837133519562639750441855897366206329560450480097663329481052806383519967070709265642629070077082366139238660926400110498919151026242843376164964833418016113627478833446630608058993330876973664650220944110292920732422454120784341531950552292310479096686462953361570523778100716196348848866629244662217106278101489379487143843251805243363990968082579698548846801950225081047219415112321747588850863674885980950809061415971911513526145203749290711385774556754889472055656751280379255141002668225081684290462097834348858182499161550056916675896690552364521897650739497048130750562558444787100359156342672756157578389864218644647169234553351729779371930972823149521206816761107459925809639704965310992795240875241732494384425439129709063515831685666629970883172651642895527173846632684014332477613376562807480895122443281405015121390855887686004290727767698896951818544286143824794085485589302401940648914008081509380175068135158632355314467095290646975309190107859269384738145270043832911951166922396378062567333239826568195195812463504638813933433618641446875176751290708446022238118705408536018463868071243202525354181031129887968446488093152983040431050401638821577146302302214646496013356616248234119193427919866722514099713793429349512219696395341000831386236488042730121943136809965063425741980246688898187019756239569609257100605301693800309507402896783628673159188826685523732748768732409835484705258719203411728567651842920411254631776431435332968661894682633131670740422331255613055783261664709627676431543653780280280710864522500107520985948012058586303591893021042488150647741405422943910332006990998126175579235337914379463339416272654704882783576459233517891423605892241758381041758720965108759666803553244611565694706600311321118718156613300961935546312145774537196256618070488352052358054329341248359026804735519964884701399971898080746617493059227300127875934443313121228301847513731333502405773880740273258153347401423997568378912369460024509456059250054718966710367895842741047485664571445124711463547019287885506249753429706784734138288354125379746547959151254643250013578304430294524240071358405518027620898222753381735267411333380642071854482509435629019418837801156703489437756548908923956850059796524583538502814801965256519650808408667463903431725262900419235890921890040342008251751397220605803433700828402277106186514684585306708645504372446211584629699099492068044576034088229183291920624172471329136968775036183142011098365447134079401699105203817558524469120815691250141838437931499386019764710212780109263814642284253363479511160904155296978449382881006984794928420908354649366880876227729620805415876652766755935757967068769784802824609838880571331808889972712185133624469951657192652574598470813699950933956888106636296662032497483598692138749490591339973512188717814957596866335980624575289867363192420931406296749837774552784217674096361008510968944448480269225015446942140898011998672680758028296898182695166564487709391666974138548689912305426148953291500154995648182187440250401163034832478266651403329313375243044528037790553320170563672100218385792318566090078468577511361196695559633564785415581104170888747418267739861305504450960750081070889880525854259384836540696710320607607800778941793066567757003018348337126394560194638899294784599879014949501042768157379379393615461301237647111133559486552016777777299613850271208843433324902954732909618976519937175181354560834558264179948890299160525673058310058630940639027082587146958041930304911595933273139940578671240694160533012994062987414642833863498331187705524882873352375406195886759201437772700827403960810740410832377865572795743566655794799817490276522582126003313368959644980458656722278132831788004387562994473989747130620284370128258781713937602138975071727008206184702850531064052929919508060568435034542879263533281336546082154785716665633433043363870402105993793715099688642508629640890588419330382590039448422822137407830056538464224095031897294988885765289452060537670861633307350903646908152532417594351867565791819047109795295448192181231821433885032421741412202577992335335205629529358908478729277218331432726007310902398441356795615753885461213522458723871978259064765779757053501125102294957081371062785045641982148935247226068505885955516000350682615483514946408262410945794183980685239258492576230011501356201429910596687211503655782858244702344932494496208373872879914163441051737600607592956379059687707763531675299771813871452541281980886195270239812566913605263660060713762142703823141169009889971918216216564006849435485792647524316246129266455567063453644167564546863667396380427448186260861792375215475594731780845476898469055920365535102616811959381800888527083432924224398959742427609152431376670885756361844717064904466984714608804839306018615098394057092925334008836015630559111468480740127448533458129822065691575797604714974471352560302724179330841885336276885887677263855318777354959995982749767647269495280740150782815123128898617563259902318444799186130309037929162724505862287636050798853206600610954876198207834312498837865223875620950370382580327839105676357254353655781576142088690398589998406532633653584076373669488921052547726665509992960095242277893038536910508551655103787385208006869137974391263001829041773399119186596091451926915040869130823564635830778638556023317341971905195422380227216830253548090751639553893048632635062876936792310574277057248114843948167791035722390213204392527880110136990127865963891701548535050283233531877163138856083214028707304424978567218220167842627290167362766229387656175378219486491797394866965746241353094103172560423693808036867326324789200036418522339654747501969752450262645388726787378692044573976757250253872029510822422153914667874262456630675246938542736967202509474744081292468675033198892600805082751042900412284375313090634949501045860330251515449222125904949031581783739416268415947551682656765859093570279463092819726289555701740226945219934698823421568576095777251322328773374616104794941521207968126561839769235435407581434906424382870800185630870661090006417761434538179340795667260365616737343511766847255177791576558593550455516487735762485618756689929202328323409648830465826426083932647387373731460197996199057505626689528314851738275025151987857838680577134020027366192572407466667409107992027116237338854280206083878880409087919594208961012798366959179055707356864747765082773675409602989081769330526444790557681113328085216655851691757932660190605891242612885288669126402228337362247534025820853280362755488539227190033389839939150059265184790363611420523503455373600999495897886768889525716817037964272902155426532799171569958743050993436786493936744196024888572364989844801738229052031839361266670278878793807130348907080713939537796047014663272550407679085918899898978111239656567229413916741364495835107879373328309559484989626063744266309010229542606731033190343059350505436207131565134803514833645891859572770371507548411186950662622618401496730910570245047476367002939051826593639874561878838422261914323858215782405688304543046364328633570735673797423425055339432373474476456955774063037559795231837455205959168539065500988972657748512332302455337826009618852852809451887312561173341488368423271290504594584394650008840497729516151390075480456870811727227169337949349270929079639427874459337621908767968153060724898747314896581227375082959224114976665154871928727211620990779567898460275777202845724802515668857620624559513397062557175937049634044690527493685098885259833617194412451358911232527198259708887432178964272182158268080213201296974132501913535072914470581378880440697097165532842063124109387382638989122014264940490270245449438558393085155644296144794644601045939283255698687337472318479915651163983191831634699425637002916541041484888245724114535782490724739708217307374651811859975501583658447639909558445106951967518289626882932116592676369704623403503129990063942600128102987580357635273994340317720371774586479565653584447796516230730506183955242098983633522824246979517470485743048342960077287583395406136336806478957246731585366403568282633238657293575984142552256226486254455514288217845461511781226444957741164723267338942442170714689576521969344282186960606353755956513922719003807714289604374851972260069244297230896786306178541884204580393536559386284378801979129951154850848754501687119745276146550578670247468560967647387776635092557507219481974718645403406387010804728139728791144125788706388225746996292043911405551359939876237287812572637921787436958160165327202715936620262464671875279869130824921962575466155586079003616112577130799377515315096076164964308650965573472952939441854616992364690242834629484553002953588278803751491608870462982602769153585960287998568914283356624302635785627110524406659082960479634428901023626045593675813150005573690195650979838366461463245127070583268794857916755536808947662050441773800858864969358194973680159919892127169678569803204389881288957639849710078853531600308682972638645674088978182181411038970377578896582701320306273519322530057180869273232494088756721132332125723291824428891034206703879604686130095203044515784862638443091489189533942901834015551818360608255587060600002588391303611599276720275698989827329633412287005614802125558117307490443050366887336139809721876436496871788799153765528624772939833596287663908762002847528007664714619839976779225930003992655512818088908908123409337337360388254392980067554609581077909694490193514697316049465960421833384241285382067596877689307643395449314875956548922133747628861492096307856580614090520996156426168476624244425288881835695471607768237585672830958775563480752816469655886392395592443477281074566109214061633834408634928409732322683553063473924901859779961527183379101816814612308099944941831016896903182807972065502584318478354087997346540421777432228451653934624341890116296318636777086172385560634227597953997542152493300559624759061437143165178094498682508135615873198071229720444331006856985827494348646261767703312420746068454538543234709944586351890247302915088950236204531883685482836608625163279366387389166529171619421314812821224560125901434972744781949840805406218346929843255614935090630460085191625295305912477477028276711274768142599426095216594561781198462075461104764976144630193945942432935339155526198024512917900572532863154994506045563299937507174289604451332129825110639211628271464917056726639517545281064566300338546817510593951051531288226515667071854376183279295949952437809922195629565217521340346863854987053102576598186678559128701451042631994103352120328213999133186245969324962864397593819555699838418375279281031103694738678445355501421202629101568930536310881514844192789087215776466665533225687250044894529678366098539395796363498320190915400220781247056865181245014501937572793700672747644829646462916436271297400254865024631772135270895963577360732592849565427656897715204114824583785764794248237858708563131390198781696396263382485415002308431082316576853980556952542955824712513137905929309942714301116499075845394016512008058110901700241497041596272979261623977876189380498756095908528064691884574903491723412569520096801943240254289319632014318056484610630168380805325127634575239813140926598067362304566021363265932836338327896446915633254265810800958233476304642544375121191268291095876569451236955407330267471322466701080615199436795635361934634453075428162035556442219591355242883783962143702965086345218298367969733489418076081819325289167202208721235621623715786764423333447760400513299560492435969334241761251025218030533300209971290281872657655189889271246982209120676830510580972942230403160412270511443405544742999401144643215910374910929776489894425228766953991348068264175427129509999741815336230530211602996470285360543682347368528452352337163050287161893106885702081351076164129725670125165095919800113811256686341716033117452884018046417848772016624379926112797699177242789551991972782023547237893629651632914334306400920751191576629176915271289769935719829931424274135903650373371936495463859026209206561213857850851887587759133880490597055943129029519383154304226277150824486228281980200057207410970364547100439470210092755084514842959461284586740376315550374685844127850665879461120661833805294980182803401666160816646288739150454560142060542673927332139207206839652878157582041417466006085281139312913984375259703668068022863116730039899645200868742782797552854865005088385275150816046200990695402910159462284082169978379135474696793618946487621933442262796309703048581846611235263055088658094304987166710405573963679020303223607148600402072463290162453585102805787893507591320905731341511778100629703244191559470700610002569866734108697188282784690959622986149890554586089168079715465671396500653775181928652699368526836248183192322484672134869959983058288181552353575149755899745751635189407900159799191068520774885575250762189532900317814720202620657178240213753940926106147711853229845847786729434039151791586383947159352945130778374363405201246135779828581440135240817926046236303434128177889606029461198946033420757147866021476034630922025547893245939910002316969029252554990172788809435170303203756256049249621103283998667398267180504483545377919178703650373488829372003010083184588175015830760428087565585756787690181475493028149905956840452133986766867866564663689029440201385732332602082135673484734526487360322342115524892379875709936831051392272942833087944230610123232164341204343438474095365966060198251855777846137536702174745605777930658823884602960484064037313195967518070686112311202024447589549375549482298057470235165009069413759931855567522167675258388634981787652292868053250046434707537992695827229076646945470880957433803926812339756458218090509949410030071699893254963470454604659118818511382457946437345747026575620992779935871254089774338742075363011288513271386852773582661614491691397302211002777115670834838439140476994203061843862060382286995339365658231098317397677211567852102547341831283883268270117327212997013271671928834369736140091567297307375992322863608431772963293680047144544400786523600406001054399835658365498313529854551501222338940881532024201773712389994903248830828590643245587946050911250006170408306146268059606929256161372935925492455040670471993485421594029861100397362882045508533613162914325722729805615756866055411866003990318280701598068329533942962248556267280347182450584094960885636535202431899954589641750426148699711696176496472150011210392286044858373872252121428613013307222059378571239504491918831477577243692414344471664975565859529975768285016266176870351757900326837299253089335313593200892275632801282742710200982086787667649649111844491755005900290037657842040368355708023928393683333930760036031136928562975110636397221993019246810897020652772150351642396997253721532390435202989398773286382689167374185662224896473899018170855193176740846789565269120363877862126755631265987529550597928549355197297916940563601829614400621002407070802510460978627184101368202957164344719844049364167220630940548547307290555243510226676230054133044897335752484060951548880330711321853007050916587757411909641937000959061345479730499966674132466711004055099508269675008536868803320694553074204343471173301158798298948213283315273255156241243779494157967556030928675739492716134155040448549944735138647328533838933445755555367649183033811301239835939680121043352896096147242844147973278274832185444485914548468351323425431009192440087154102080133352836195050413319456591371858850705040993756449516791021598793440221554700510577151951462748716967121556315606210973870987168808828861741967822817714666836169394536766327251666885312422970908027258391869644448069171610838494321701359828038051894461765669248354435164441897990045130065794841856646508021431442343245408588615360910475129323646913577626563475693460338259979143082301120805628487563880691163182976384861752854666262649179793303564680144809047930319917461593077426798254229014013644559252891069663457803243877480012223867094231088800212462444928717562311250472446183692951398075768927345092810833888099213203251328611130397715853587400630440704600639732509215617891217752513612361457594397907389934599704159099560075546391536571261237603019080494929109197164632813210898216111793795392469390916712837081720471344836350973615795496711793999028262866636203465978955570307672072607284290411111794147454842487077440182359555675071805929180257272853275461668635781979147635664406248376213700383474754420111247961157314889486511162413428513885477292309196883589084772688494959746999865418928841247881633023920107666091920949947668521110072318102331471221379024124338742604561052615783255549566641205819037086881195434112974634622459362197299419112485128271388299030218490997249997638135886562876075831097124311536269932512077877401851765064414797892978249802223731620082583073076005991637754234400547164746691580403741836545065395387966353633015918226218050776869298985689599469173249158430247754652322196084270097795033412375364577180702321925971335913971973384708996987506235134723843311542782114628203954636131725264827412682179742383132754823992727941834263213194087223000083937082776666948903708482601680301722500180902089138868985888804703550929531029488413113316148315414804875149192192390985804337616452227670563596670468291410984906171605482350503537251128341402208127647709366836510644689258185080511101408790007939608835886294116017088075568652367179655700090356410481567152124140896652792963617888260177149395465567713646262490575278780710283109467479332045405832512205060404665125194389615676571922549979644738586181781197797818233918073450387116473800350133501604296049141182769527710044431592032191307087550475340767024836825847828294667574827849826688603298522721067880515649457422417649830722690903334943742204003477703401701863281786071209854816124384755426191362908088576361741390697875455626762151454878448561807017530548200482777209291003565698774822332588833040237735333690680963435698988015508889373171340880735193252436317402662198920588079691425463968925898073942980437791363494165075979991572772297210897084132774044982671407963635089301740789750575204395452980477304476692611017395689649742267604435153860360097875200520626757240222164015660281034436251518816526430020662589766768093559343401197891679461966402430826858129057158114556731027661860956969102792807119942593829874565008215685689372170930177962719129157234757705335559644861841763768398860692842036473256742285035089905272389623626291412645833474187203843561376098053345871131646775317813978384907546566858389870439270301311779513861255476980785460274759552729144212401522478385023643852873818364341529153481403952664497269855134665906120311933274194115495966314850120428649591286695561896874783855447378093092980443310187611267047785245867875275489397309249817937619793869373321358840251064574983197237738955485167506880456718773688831810895892108233462663895525532652794010964771382318186382495002596348204086335968521175728966956579243853286978817307806501950656815351680317332005444065922625793724668172303950431256518900281657881471697346143286825895199465874436825507193338778022155524232760578033391806761017167127531292528311270373720994702274866227582204609587006666844219693924972097362474391132058330759617761764085264257587917269784792110831683381353083336606564548792599105414270767277267407455980479124434530718367191525428356699674689170875697757879390920108563579850651580721532945596334692991172600935206430510366200284557074420307955214920762598325864224902928217515199172328699363147329469278461537784639146913988903709719809995721487204731553837375561744791490186989387568716809248179070548367211751795095043030651791747792075159024091662378249321020352922769590647108895941035077547706966568270243794015993143143772659699334318445158468192971489444977417770932606709767967540740878276669656454416431601502692218074924567223868186094475992676753611093357785718776549467381116835637364715477324832641900159323390841721807274682246567156060635252573062031877380198171452941649640733474867351455975571590455105003590201324082191597144076922313793405505565665066183336226180739529160322973241858016718712978878138977115188424004320907125506258996318918048377070308334574694537981257871686557653883078690479167561762835124984910169864489353639979771881394648935072228702635998676795786837016750263949668693073112725763951448421289874453177850149286873697234468063500460811224346838588232061537665507012375836579000010331128352297067756247793757118552142777848019631106987889603081463822949179493259439911881560866445019841890581015429219449579911043025558131844559040875301036988544461685010075560596976174300945158196810602622297190084811801975231844086481012487233228477647279377285536345123560515028967894731793719530716585043628474296683701321811808780745576884373871960346004952719439395680188094046506289737391949694368767513150464372875080074814193635929786337879157479850272305376535770460354869250799481930299875492874425693669339079706915558050446718975608278306160964294208673517451421607647175808824012851830131800711891604853122943125120685175515381075456822965609106268518431883579787432378170292996251118405846831346388075705813480753873354743869394221519125714123588813907302020198339972730221753084941724630229309130653832909276130247873823951386736937888037589496690108185748530019061050703556487686389386381088710284524475214080540694256262578429667393651429380085036246638925042916545248816234197477569722751580910601826922298402327443498051508284781246028235305905997085267491814033022307579426037671756234935912986260404979876247848870417886239599073441098948280120704352240544100345728700708677487730958982686850416457415804424038237755845434375646456014762393414222969860560694885434181045725561587419145612051081616610152581670376923885426240073550945331973487403793523305644751524105032045548000548792474647929653645955870921950196450261279693268830595370230868757536528948306317787505815900473502976928395647249182580881468307327358999780154249438762453334949323730142159057276491085659786124932294561332449210281547032579827747190550534353399421752876039005567632869912843613082242328072833260369119137129766836894143990751085403452393603925444179796412363672205369486727998115931914934987507480064255490922917877280440535818880416163533195578064077830756019081148084003630145545922325147693468243167670448177575202246428606296189771864357828272709559169894591530468336725613505750603203394933162308548157559268927170190203455655243623765317926120779765730327777809187273625793457131398701819516057473283131475965530849416021579597519889946047319915251852636010754428239580415513995605535655823568848975431607529786974367679930125502940054878150601551257320616044765900351886004449654898220328206394229890955114165846532661010953368134544887013655149429261364863656929447953223410161711773645975974854604142075272571171302500433034095733937662361271636148445881158582058323907431576107911129757175838650602525215673102956181328272317726073728755134859697408384638718880563070193956540722185200151306504077916681753780099773344447345622242405225491241707041954342554659881460352686631821502554740797290783563653800900020113723606767082491974303128731583878435222622166118059071151646314507607156391156465134263569688984968676131237441790278184246938478916090224909165689652399997047699168538634751178911679723624687716665057817399635225164708038055526116825132025838430275169242672717283442625898245535306667264222517103560071829975721771260115737844793714067232220955714064350150556247365230178494571945695675251814915768797264113344899576564519392079631122617592389672834324914858488511703989320228044225582531998658355543476482762981370800741972527357676496290888418440338723884395964667302971347657856594915276481265281153747867708355119737290317864747249296281428276519382310752593666222247125443350639565028302922394029298499254115834721761470061928117012786962541253273049189246517502538663638206982440795290157405072699996635631555162727648431013372184749997537754979250797213289238039615774908521203656038315917815326612611220836531411545301726580886598514187648954113151901133355804312644829046246911105292461962404136214241563821110979138035383387979925063212509848196445605979292272803271830558425557623300287300110692538568454510030627899881726035627896289951865939647537062396541465081080773279299858330803232180960966739040476003315485131377059048457335503630568229961252337060761751210691137779952077814666306077797945646719080397433875111748118926274369289382458575642761161158089731837891070305689357711314965550262564156108562080458663818294221094030013810738375310889985451382961252336539615736472502826994445529189189370211077659365205633059096715111325443367698319838768052129754449299758491889066049286721591354140180700581561342628040438041528644373171198346244488827492209965821826689428437888582129514137328183728795710643280243385740175834688124672089036485686494310795545201729902343485885764975974981570369685330953438517231832804091139881633446814205513063765843285978187664968587184014176602159083647156578819295244514288149860395067309192782757774436198769400631295178065316567782106978491709810314293610412520745729700548904432281488915158911255710184796094723664811332635119290784405188421789129016368231164443109364580152702179618087229939858225203961346200700058258043175463024244983978225490402697491763541073444787385941892510551609558107563690338037650925852258147251649199622116439394936858974663698197271099221570936110042701770382831418907584140266811504544464207751906407310967791972232448508975565933497065386074183306655837946467478571356433692437076829533978318605441909375315117984721187802424902927248075479810790877230425988033980611714776770646880247775816310934076662782585418967884174640450144520744997973260636830571495563983000360419381555770242654778068954043525265274326239342845077217334297225878523519592388384937474631834021502792541842561563375398380239539115370242512117883079249033986735043066130284389726178210578310107702562498443600425640733384902973188171897264220476889020641790297006946951597298192759752019804475522457558503125671653824647864450535230086808624026322537075515032972462053315033004960865434161468614032926546254789507020536755138585386185967156220569703197827939647244278348936864438777281713885282718996510988359100234018544919476013988618671329516547951357998272071459334935883118469689059511766151702089031276394354708649057184074378144257431296621765241621256334155013280631599765431166494573845226608142661953851378884521641104764063580958961186077773468971660401289789543778868940382466254532154218951045439531068506825382375638329441075603627961929156824758304001527882702434999226667576175800720715512328821158742552162630242556633460371952524912315079723829294675997017758517998035595833650359822131125944631007136439767873544721573426509531765780999891065425016311793950969978243469702097892318378124691329167283220300035868121094495822703581948973856747915015357929494985842975897653100506882074668821555663538554344091296362016680942433328801902969190766529638259000871929266696837751143164632280896880424418107601564927228396069082852817016985446267212340525206266449040975035763102813540453784520311761737652277862068008748228410197275249366655071934926569335465716494810336456902025537394098943328584144656731922457502816771055729113583546126505739685575306001966198821417739944325593701243521394760790134188097091206562570242487855762081485633466465534881412101772932630535612069205195272270312153500101134210546910756900438558483150251601569524630359208575992122020609538183467373918562734767679032046064272627048632221680335423791437744753946713683245656510604430995389635071253587912036297810342481930983659603455751492058319907265207371301679610236456446415523579853064194755579365308873907015936189752355879554354711484511430358039938577409191653880239465430171544640594656310504053146549929356611913116859495939916050296331871606165938653067237255045212025392253408761155941221205947228470921606774234653887228829543830371774216655105271076963573305210449898434821332627827223959872194186617311735420695565931244103728238828846884627659866629092930128190883716801444630551511997605315104396704202863216600117071944161426510857972283918139723140050767756767836406121667047955152035038075880469977306592480887752218508409180584556014984491100868142248136626453069657472850622984250342028102929563483294267564968773611590684704651652721617561872669428374795024977637875262299526089046128372918270868213697656625512876679635521208552411789516376642066929418311226986875142603010599608354617822662457400132236521048387612446626096678504849422558857603618323858946238345816206100113560936010093456947519277044446893462371348363389553359261773525986164337200934434606215478025915339299583675226357431687750898480132647682913434260162132021932610896340556085177117260561381457458453325332654577675957849858088416101282045393159214437604212188565867104415074961476710783962524780538722862140076321812364576341546485254425821603858122930865470127948860927797255938270397576197903787326807675423194304888701425694816440986240373079190485917758156530704820555647122047319477886448931775161522890587270873004319498585643123070877899227594961640940043890381064820177331904820392850350090155752884870621861167639563548394920410264207326015062739888960061267963804513490204490071513309241342507588479490337984707264385052064184093985944881785475913124272055506235459329317731929677502266155047971880404286220397269940400865152323338585336528501616756197044910540965340493020064540659395105939851246176917111007256064458226299236442463089311367018739967997745756449853212623398729324849846872954307180198863531558193184882979116924983875010120977713202161835237882088728170802621863319067041295213287251387796275866977854384219024429212167789311920855499031916100883632447862095826344298827489420512244715845291677576265589419518819319188932261245575673451189216664600420540273408820526099211085898729836812634631532746174202418685485018634764453629372281794565186581674301352945079963480792939526338684727088625889781600172263616068769050724974489980688957034922537327616208331385132408608613045129966451794866049580549805329568797456397555051569886546816225015618068685400437855219116121418993452405210952117818311478714686517017699475602276507062458065307192494520607911698468564109315540534818757455704496666188571286380846642266200481519439274878267782900345322072605270964848102374398405836635811903725954918450031185888865576259867205670889406748313606970669964611011671530070091205412418164428808931911395462408481507960157452917250296858034748360423224290688065909681880320313196975017314890135441743165901204935993010589545746609130997865831477178672378182076659636012062186736805404645275893297637408324459488809703924778644197898661005843495529023950946947826811021787112446818237403331196920635486536712262789249965691191324345369741143379867768942190424497974750566129511936458738359512892110073722672325028991190720248969763429226544110672889751296327749604600990946703397470765972228904848679661216244525011676797969448529765029982577962329585242643501235388611063279095555875632773651956250325942774940432618889429731045163905530847788421069414260202257320639863235846766874068485123991258383665436601175693309381778798883207202771487766006578618690405248452540993569710360368717087947129748646709360378930834310375155401077543216539455968409324805415006184617496900078761187552941479518475725245979579899164578580973980082977718314373830563053815833282898964425192581491032790804904770761849038937389180441136170737725191086830545877900288258043562614556536112577916773732998948165424218093383743287330907375490646662984345057595094592970406197048945476483493621453619426765461869482684033658362724465726000167037131795715848756926018024863136288719161160973990951092682021498429473118722161978524537408641590134252578266128039518743295091267163689524090450711978532921588167915762381987810785218516912201806546117424079552367041020165866294032407010919345869924805890911472930859449215818718973400375759114627491343893586256527538746460299260855210841756717244609733866089735691348004506717760233828689188308211174379261572232343255872311381955908919240466178541772015857463121244088427547773503849430032830710226155974346935096474128405502434651113400701888249071593508773220523683220078151324892752155420605789063898071322868322405674570547057319988681925999575565317749575021058661978676756180781441802035948581673684436366660472207208039421012686235071111571546318207120054035731630947535402816630695564679787711733876698292033468826691985041499120888367069663811711106358909648901166939141945702824139988791809741460049262007543083788210910018547511574549921736303049800443880896244163625436645919646359613942063793802484725942651838600779306679337490615591242452197910200985641251045347009718036642793388937217450776403455272233173834547174746062209314571391456254135617897158933694076592695136221055648353190335006603422798656462128266200007897328506862184705071826818368379328785311566597519345634617594013047981125588125788505443112515553745841689314692724220318148603728976495147195322097453196097623116492205857624620445655163575579005846328840515100642076233990397223627847136164034055976049184415109331890224076708874902401505401270798000632909375819284542006236177461062753254705316645226258196266631278726263598072769155544454581103015947096485142446133819541877554474247712728677480292598547069882879608187273225767655658997657493822230713633051059786366766049522925853251539755395961178333560583511220009779124475320134740612872394691215944119467962775585800832802955302226158918458390298349961617877409624387268336919853344973035525168216836941655765729126493381956414938863794822600988909248160279933509611526526034025598385317227830848567482139452796208131373206291955594992286975332572262203065303913795893066041007352471614623096977019445146591701753399200472686612637299407151389172754683237414181475218027188257351165097476390966339278673468222819337301629497354393539532282321972998840191097072279226679991544470120282758515206802392654244036129523157006581055254565853158284867809844017220952154166124698925061401351849805590803534068057453131418470810273096925561533945770704965047225919234313259225763887538169585409047603622032540667938678666500854126499974388841112156039056483209336255251281810405952241160706512651587319604972537583179500074179977830608011077154177549233421570434006487928571513046537696653268440982898393794348923389470823825355194338178610343032642570889577810655831073200310011962983079885436766697158792096088648334007741930809470090861702063329303662282960196645392308898027190963659558127842224290802201708732282123151798520319901510318211588492686597114246915455874403061538086847581050081699757002773483201814916534382946199465774342658994072215408683557570852098862609742839436271631364063211523846393331897862419948371031858579794912993845774482962207387003257206938266937040600725786207464006882866075786848548270879832179389725561521982555107521702802422173675855222836884629893049108758381706905720651245507199189313685205781869691457228381667446641174912411349595552693919218654011982634110079284449659418961762941589693493817547534636642990338672953321423600113547575807489850836165242742061505166728061992234381523300462651535996745979928351163415042859585872981397195251971889992846633427444127863370789507513028005347170341484802170468820808462023091269760228711619743942334650218224374727611337384608611499366470657702600671906313341299362604485017274475185176742604978324145387977950238321736554948084674572359978940644176831677434918559939802059204746995754632569876121274717510650734061035773370397308644731657802768051764001950436061172390371002794541111700009634211114019731353574412193918177122883726677667214838203444034596559966803370735478421547423508186852379434802066462450428230384453034026417977057628494912032888714391352994548514440138295247865004233586646341074848533427667299497789284183607815465112279369594830730274184610517591761231075753576816806004323832125441967074806453826634095059987000649984366761162275748816710425545603699982840780571441846764087994393694757101578925441263646268244308082805586798377818679301025109306075050987369375100670999792731866810020769870508026527618203691331293833073904683295260243230084417447587505563284818439879444094619601816120410369157959094682820526368150818564041131806275655525213325171265817866522727558544632026991885305578889199974934643257885211595880901201611906591915477741708305099485042787855129607454284154201996233880190700780396251752042301479322582467283637967975478001982955993885028595493212189709139650418692082132440582764838058027275140820674134558776827309106839095222851401919413005170481575624244444094106693030122399195173246872670430420724062144790352425866814714306293946159877803554181108083674776756415205706957230512555021142607772122591561036681136312654136836484142872499834818145399163341301133680206447166333440171336709954050458970953867453365202939181429176275272880514662700613705547451989583478264330824270808210950560018616065813314713198126012456666380028038281779199351324124315641460569735391513264605294961996804210435665307717422242692204166150380807141740946553655038424304517759016595064682683105998639675089647027742224579133988543226077558189582961076325106746578185623162955311612219963596625498486296028601800197919102870963405127134797563996030024618854763397187146486682747845614313478531760272605024878661998937875428347284207114361730258032961618243470309494551476192782717813481071792105086193052326200604537910301821852728937868683646253832260386741633380289615941730712337079708854006254999719975072906047651000270797983706239377019683388720942210275862939897004040753828799860734889719087616886772486777333982742892168766048426835719646337060409162533858324200143370585714567559867943649078307973635921184477067156024533960837110246274034988694067934985386719219506562810572688688755767419830087029822747376301904718054678741044631603889404596291050731810921070824553474505582769655134295982108214166578297233443888820272020505974983016875024709034762703116311946529989070018604250689267758128118718711177366816272235196816528969006692443887261872544126669247426921171547365508108925679730646856294452150909878782031201618904440388663157315033396867854283858772020368093261550636548555544978058508110789336409726021400728805670703987756628923917541061889764888299025417149956271257565470452429453626647962114892840114663149931789072108561890461399094683218752775924107937693924159488969035198327534115983946749201282968748468206447681723239725120360639139727137267068120813535049087662986433319388078147120687247460315180569552109585910210634853778470169696594756072245612322348537431032469212136079014959427421943727883448054992988035501753670862890413464875426629070254836394703864720934317148226951541117817087723117297803204060026161228880438444938466493210508868599830518491033469992720871947866195461536249024077660571014119443677850948245933457126815189860585016976474806115889183475039280312871683371287612607313301572530646788932531856073452131125649851284281448731305940717174266334033037682084547891723239753272542560841661692922139000513521994435965559186618679282182691090068616783520720259751941811220106056255104513300026733078168863927299572939757809213132118163262250213896077319876114020188558720989333606352031012386957423277352692730725903768753676388493095305351214642575145480595039325706226805513870069089199667837866793857442862475206573559492193826338688673870029141108619425099229421511750753639789427422254327782490444272614809414691959116308876141465515981281622577077178669931176387715599051090057704116459322419689579743813777205578142286449147941493630145060424878968401421175924813364244417477122557606396749731841772849402110903795644012212576540981158926456450473973703898495618338797047087195447160182701430609675461386927653682241295144056862703745660407752521376036839517956856492300370805126496582846206372125510932142235359287994241695777709970005637506701360210254301378815775136118401177340337454159496750845912437982025211055689891356540210516231805331012305368083456357004063450086060610366275919453542180653087358944872907967430947776364565064264322305397991913945516664360427453283318501365594164748362167688954308602081919370414326222017893692382781976028265621845016974156267245117070258391052566896847077782973494789887845333349605132301970884807721611299703870425514404867261370384042155687901638412981029796731538116992405800964810448516105971434774002454519199103279204790389451502472078645469019401698764160113701180695152169484740757548689684753190656764237351068543009767995157012838727282974499570361351176945969840216294570590865288423961529426406494610812828273050508924493045595062812275882696845926435071001640370506199548777631663783478114149026641863466677584885925386624836492309592225189427215179442754803122568658901581551693804265436874816990403176027024101666461025376931542960044030988881772214653051922558463913145529744398593534870784775013632173526377630950754611175666851920794620669100176171731320220731860682674332506240475967189758739775544123237998065827339247413464256193195805119060495369457098545284060246266087026876935737509934649885638760831158676722700207258110848825475187834114860075161661874184133174843865605815742066845028118455715909946349867593323171580209997674778982935123991720167998040357918141157548429728043894838011013887957616419770782333232314248594790108400845491940011158888582703273754489775883565823173558081314116186418013191204754607857743729184617806426744279902420232123357210358166691497808491078195147498183552584030922257182425745248814675462285340670277225798081192124688149107707309595228213091393187974099903091406071731277563880866515193649176624152980682919773791634383983768627655021196324118670113479832745892417858254026040186910884023365595552476067976628783411768085767581513504028307674231885324853857152982466229448086207004846663461574813034756646449769249472176711616430156570185909428210315016258997969962467098756525917305812470252946613897147219169376042523266139162310164373358399917813832476392679444410377370113696756107652815821396690030760180210939107073504733879770638895423465593669589946365124727128442921110754948557554505833932798552528647211109509933673950042731765675049338950715040798587523629665071725824629034275942491426641394309787594122267434977188488237087174264550069865623209925514679234089356001301569885770184217002478709910476724060028554417466507443157734056144155340645338745038525496135898160600508969679483920418575090176327749337708539093990232941762801722634775671266458124801659795068716133058972328381986033407704298704054133079223567975569041795034327895409018750537181622181092405256258550430718065862789222525544257040878690408591976593596780970218885441517846300859901893778483124094969136205663719214295817163703517467212835505367541751442058368517663304210094263041281768730695590211074043922391627816683866674237025572659134196177297485342347456124680820700809211302560821225729297997926672139960723841078383738655967217774112454623213910527693087522431647308490122037060163896704289452017307341758819294127756804327237859169814508262951307279577536728126951586493054611199813333941626059925383764778405196021836521674485049091145788060628012221274524544729590668726634636681164582005624910679895393422057561406142646433945958414925956356892112567337418685297153467927804523767552374721980387726723346278679958074163243277543753189173724278499866616952930840013764711905409285233147973304890545888183556433480669676599198023922974979735327904164858893797131304682875264821978136039119953934868581830784687877288604352503894799408067337578699782111741448590347122079663409352758531013557956734345642951959500383186789863464860013525472314976275370178961321716084863205495332303823312954554871322491081371410943141517008014234125622814790574974619871542085841586879833126090632182059367346013454881028867709912457529426993647690624804014474947117496815921075329474617875845297412837489891866372360851411722371987556886078360651337622503015755521409380825513007381085787780839272827153833770540995160963115414351486858930587888307479332380365114367826615305553336687848423127401844048103097989180073915800078385650342708602583939724296497170488737939559866469289643949312512289839497440610810179557920350005064882185787902372928124306394506005650833924813483991431390877205899452489407493195979104060870507488321053527881962574180163439562460101916255789365135390099437331083731015613058312499374530822187694617690532184411115507289384588077518125496005955456190165546066117696654638274013241792010310416847356998685310731139053850535972284010403501657660327365742707581455538114808601939647722769603126728595708862042601536854014047608395481753370050253697898172069913212966494568379656150058752065877765821682123602876992686236075254428415583751692198818249076003180363806795080178493362095998318134326666472556546224652846407025364434151744983305640784414150359005853526734980791930000638692023442268462080578213333749623222269690915752411304415402657733280481972241259570846178680231793289285051464646132718129074325823495272693470522244924228575417333958963916058033375171960920843188706453512013442374829176695486944396268249822061090626922044537190459694431126977299682488592409919648031317145218256299876192028935516207371756929787347218995924287409098400042453181476911066239416404502783511507310856434152355299400426173005504327848688528269358882050725178954419384297070861236460168756561494901872349496885449143625890242607593901180115779421247543367737515009855637110620515351654822964677790132970442476581820060696561512014577915450677469168874165417492503834993844547233778872438168411813560184763466813183574922708510426860775546812445779172306305037961028669866902477971469530281482370012230781712716677710426188402173793756039913234565698219691114534879257867373021542138574515196121266525222359248645334232307003027405313021367485814765578966899013746521120716109689627911571161562129062643848201575550279999473567790477079409415772239848081938611712715620491969036838587370605681498187372428704520509747478215673401753785211867198272489569493549697275677319838052292112140255525750414644904917208470168918966872901980006147219544664618789364775292112637473825993884525363205248069090942452000269916984934920077706951983385508190794052188196690014193210503242655260651030219358406891939625701260507880123700036847753040410878834728910007421311000482881105961046845452255062822040786383372660012937927623630759020562252199602956453859111365965576793059708428163046497378719040992879852580406189874534700737289921160363855859699575418274039506595944831722254722999938017597775808801514536951359633751546482947586395255140414380049058008591254074572742922446384137015910328600785338619218122688288982412878849581117465080965369874136361262579427379768669180793041466118926070729387611313685100907521774739949968153748967968739299550835968117200871853685931445703068061087813362185308249704328025196802024857452204045203368597393922622409448574579187860128550983448774270786274303257679418400111899368266959487148220201076815491604789638927724345380319621676969299390053700460642756352078044464417162253870892144397203827421218187105178439805621859145910947646308121010384669850689084378567256614484774512443066411324191201892940869759047777601507452356655130541879216207683069237723163381069619198967124655339286726702096626637259453628638284097584418841086313965021014839968893288202640857342973785163214214911965302190758257983800528417086252519887643599466356287681445079924396112047885547839027497032735616454928821050860729655761176171810849163345006086828575873252098291976577656743200722699411244765559895220872490262825286787724900058490784288574811499487951248042718455808386803403305491327347869060375618217008210762449556302378527355841993076059574349289421647044289142435074994025777105570452372896810386685285584847696172760657313719765437004173412864471383546202479287366566842500715818753156397660077312595703632980517873936353185951605292303917693004024985490391558294833624535876291603416164430305485973676386245249664362520955250242954206617585385820056890071792659687467490432278145769791069323017795845102667627665358998372461994057722940945824233002165375682298134857492046024249113764220286648360763824818390798350758013560170026760787076428045732040605452147085875621319585515443761650328912054554795537916734271308542125413834561966532029355081598668601115923400364951281478958659890985804769146275901767517707748585583870716827861539809371340812925836160050518297594272319008668758277496018895626164592113838697763016234826282409468810741367545362769567585120363559692906767640680672228135064282456703753126198661096317370468583810434577413008759672271662581071700849215142831185620108006945231524666010007135651799643076568958563096819938218047762393783476661011863455310969349859492682262903220850189186074398309817784525046439097521731829294879923589408145896096456539886145261447090978196920329915494410470634673957612923128470081826271094062137718582368470350720652046544305002064324048359070653060010030315933724348472681650446883723207984139952632157102101603504152610744120140180984617223554361913068032177132933397274805148064526805906426620456027462451006529112682378454265556669106383497669722596760689358015491148378613806261455951398337837376566729237830908536537870599070982662182697050702653669391968911460754486570375327100691574604454748645489645555944112408979362782863254816379717794644490976553051189518033195707208392322242589256093168097306271812654225505489830943302159268191646449757073979091249555984699046246739469435850375518372583974659628955566241802043747287081915531227380477316300888339797235488368607678721754854300884032867810902777814980332131253520932716782565016992847091189689299706842866138885990462905400870643154530214246705837979736899494233138754739939813742291503434418159224844065361266485642182272419894820579993072067256874797820935088270316374229161904303937015627474299572826210683830630917484833107761098827397942994927124564037489115423522540140925523864526032593697510406147842230408066159901159730005332132229728392770347365512282003303212629440328495255175127313638201018761063237316707835675775096953431130895043615728667137868080383386344506575910195709277105319093430060643570231288644639885515780735047113676495441678521234176596746477790868570421945774244986263160216522283041642865801488162010251799127863707485621306364430749128000097914916781297571384579215594883123888330317242321619433396347151237109621839114843519235107742793000768332887008003744592888934609081331590039405638170479071492790450253293656438134349995333274862539084041192602607476130655126628564142884223542715404745981610010992376607485891501511246803381716142409969629742732994761945045822805903490409167684032882778878038438719044345306643359350789929308027223638748872277632227921522515701907992509074501699860424433257729695625202053087312288691080969901955866128691346954345989702136821954375231329846078040228075753786399664472689312011425163924792019480904953527744883027413116495872589050675109805415478067128383051347937267486364248832477258262323070302737077259921435291100727956932326668556633175906168074531190129892806523410395747834198378377943806999728078695349990514820914448112150933560430675854709277126704182033465162429316312390966497924174348733851152778460618122007985629258320539197914280786295478597639108611759438802835411683756760294057681688657674511330005721790477156354149796264898597826240498260319859447356733799775951096140561670009264401851413213729326156177521508028810444752809076464944284687590840944162489486252896017700631478801393567292017204272859699831783306180666396978308654598501068957221628646734281411859373350108033177033785023745087851032140071739443604679521531361123381643347455680813727368611535370513606545540149490765263544361235977148080158249390504453687425479594182776258286550240274729124041038937191587057227310229668847268457569042330465248946187850163218952504993750553176334182936108870396494252815993906782477682794097518296401606176799655567661485761850149202659794878448133710860975738133663832046308002728376996533280455339069615123860855011386224788514424808535390019997955521490667843204061979062010865360960373941179260651193741211516007901085523365393814603243341252663662824829884457588004707993454162737503506002646035086507813630012414021978591490387556117039643007392506115776893831750451812804780210954860832013921254495505116258531305129682805304137262394839731699369959134474051865976558850099509975182438762610179304295219017391360981544870831388368770626699279150897535637481925433512029792584485480588366250625765442774147908323166628751339302124248465972486446734493111092023489355253898202750135914799340529042679453767117344301880495407184457563017730349395347678742978979838146979622602939015810941625908540849503848759202275608649893516503489773380406331353988134699498054528656390920199962214261510273822516151255751511826385978894428792077424594381071746917528668835974985021660384920984402065726629434871232472669512894296470752356886556080494863858711711832039604894796928535182601830775612149783115694128309591304986263219907456112047034005555898551311607195290482059120923420219924523749729503143757338756729837149821699876379668168999548654268884408131417275514973477545344458173648044159772160625889958981944472695958197824611521165794008166052932997791823003166886453901966991617680925922204096826048637313591135917861778931943016384491687126663187515405244999257300303912271664358410477267750716359947097389319520527470562831655386561760072385057089993539147116268237881737467221698264447164939978188860115132276976776859813239885246821609311371912715522052036443779861602653013853931816450838664809031168946521446022865650175421219927744484419246775671394551833559135211054198112708233438965771022167952454222746261667008036583612463474611559327570486014991508234578231067070191723162204482223392408315560574415260015180257070599651209701463653515684751451099207753613656700320324478436522340645168006578241858040528931929711021763780441158672200299264550294826852280201476582716558560720052097714199851490590888421323756740162488169161438614164184179534986140773989191188407016158108809170533771133124391297620198545274128537015575640003282826438319156453956241693627312661027771845334200747027635760948084497190156299378875619695261366728452010031020887832706131439629465374813408006779486014680032547226622971274146452814895884977147854289725741474505383143631885287636612979936247621979124604344172876712029238149976600510946707902809926778896254360209053719570184667694124175046795305375126247686487424984045743791165499049163432821304616850913515445030134156010442828751071227110548012075134630108430395456923435443692761480493008829841142254677825454649781357841790469507988809856427368592944124560450317464738319226754751217575362756541102551901255894481434569190942578128363741826025197303699954759530713755392171142804135672505279024217741331225003518226620105069971501620231544461312770322559669605637613527212148535722176076954099563732813125495123534739252366685366073712398920228521076160664385953195111608029939436821360064463793811138532570150700584706535816961048609253284745008578771925403716921575521550033351611849746956960170105913761059847494058935548977717345021752556521897212672096434025928833268860337839521812271032327423359731054640768831577871854302505505753328134872603633392368234564251193040441267624108336768421800275851455358415054207039194775721839737466707553337085540895375031623877890215845063395779390994719941509604151697149898313354878419871648886483948520609766057820662806028606692250330533533686137313759495801199023680515776378854261615848321862778461389315477626016367926962371260465432879384184324690061292893428048957973413966837043022485186065243118499223717608368406599586363234993033464283042693365281823046366174325092257498350335402378526869439666378497196287038791610994805086791717520399474437640799356656326941220631613691926953325000781900700025747534647117143888439325207546547009392076173729739895613181174253470701313371514849417121493255483208489631437590089915284156866794798366356191908860123673073808834755050263812850023117859844125050467602033152485403844564294948794596368036551945247965152011282003579066795300843822303241156850843354533838529306090699296642423419664826732611916104342940498010243233981091662293395842965586916824871959128431844597372938450843792565975682596645575297121664391625913314336124429647492071054239735002091385890384173527131239206899984133855986816956441971587208347695592471099026884468448727417656468269396618106575212607104969542130698824798888557891619580539661566905413966396206036891319740605721471056569458328304494263026197570274567063132378837636163308646995396820449350599228781385855831062196880982577745501493179300224442661789594698706014229356632170075925426850676420164496130594957058303947593591547899585050246117214410311455607866564003023945416643963956733117830276375678083755482181315367510993039897907831822187367124691924125242198857638870863529254791158789740791591977116472089541441347529065460859847855721157876400007461844458308201407453123095661473589874218607794092365600382228556451203519929238025327540673489964704196142810684808063251716686416577150016597605389099100735116863179646544592032309823963506830646855968633086389035696138252501457969568045639391144817265758540081211991393614646260250033074714366868501052190775621889346959416731481326898419335421539597285866948921199969553154412440053439223588899499803311085053307977955812177181935346209625184115392893575070995974194451944706973444775512187723803565583836644847208306783262857237402698897204373548963516808468358023926616193545250439201068748042895543163236434275564758562062239073022345295636593386962339281666781228321316910343252409312528332598697206448179190594736455564009114024132378185815149620797655504078985760728799626858870186236979754973350401297222525580944122755713064926519098296552019466072616865744624983984600729188511969331778739509805933534076819744298922687444799606137467645578278528031151217762689572618170436709934536938815219618676948433450984802003452798049189019114230627561889596561705193706549507973441602103633215550054251837989209204701786939011145475003462932318256654067188250344657340585394260993110671877539280342222125151108004281304514409992348878581229000376962103941413675784768150852423252207729400785441635849310210288414760502669534700790854260238560240573887652031554705808503870955764283703542789829498406379084853403991483943217888055867268190162841231393755570738751836993962313869016957234806694912384028874668043143872293191921497907131169473474333034346420449962456748187156791274435537463098937847134974460646157063280193802737795993651283735615164125059757838441134235683888610371281154982427631673019589969759788783525097464654695185687329181649679203816031808677671029804690998027205996640468949079932662399311033588355961616264936060584605932989891827416106538075690234858506118675061422345088194600497822711892132562770048624061404651878614573050000774549062081500627365963362199589895220672448154652392482866525416886728221226814765476736165596938832769233271539738029379520653402415289902821397356886072356435760065722831896178296001672640045779268794715265056640060494720281131438013580145223753192861035686767718109659796294999392893908549538935607962304084188136853284025534245223761204293910094664920439219755352475558060609853811702451951903632410671293720433607613033452156316706769678336797305404844871113839723277352392878666783010689810430553488579270847065270173996436708654875879505012006432661645746817590411464834106839480031164767204091976191959363361870689107746945413038182410565441632150888422132766800903665945820076515500684199283711553955306295733070864778543097899705351375679205784089666997706095635907344409778312516222777166692714498227899668102598857131332048349977798006339666430986789516869076526767508577689608733391331245347947083820148410517824370976270486227986958959389971573770493844756801832761834253565426515180735994450289692549547054446427486986410941219316913217262361402009827758843758571927472344132464993082652747296834767961259397335271965672070163064917551799292888190175933217991612545166062270502937030066069911124789053473953011949565117509994236899293961667005844575679455866789854086448025196206264400321213382896341292917131743153683765585473065240081209192987968070843105134066976753426736934431282132382149708494997488427223166061926854515318632924021052736551717827146495282979040289371088199101970617634376561207496277568605108952586622979857113826752702589208978285174878568741073403627711282097015720094995727397777595618990114343766987410743411417007645352715615767639532813650159333930511754580209104433197395669658331896631813682839708460613503803265131698285530726341358426897313701701431630951173692323481795837252332179170251583651571774658045492261663146077384750090556180166667512781319347202058386100151677952638117372675517944082141480484702098105410997867513886092872927388122300563031611863710421629317036684806109521382098470683100587319352199173142910567755591953936495389763336570610466464044250846831376962042425094494146633325315856940170292377060290134894952584306760157507007098850464738732392502889498143208986482018016222077897680611361590749929697263988720414478732926471021215658336819966961815107899451534905456931899535785204845164179858483521754894140402467890414767271964980373962269322259175221888710645054818744097612867333234999928349940261100542805823870015859417167592838893014336363163447802499257530357667703530252686596840035223589356749591876679945800718261140118124652216154227202932958922465981320453814268668901404837872356340211051576523986401129368873021637924423745209419812612258782304985398768053463710058318853847189984017548858400360663662579512119053122603001576458910928862892047404313039372255974535972103493461434890705837750779860966463042752679564978235178704649063133542513933470582820290825928562157322677739983199165279736060060373340444284456750169171284273189741132654876211961144128585660056122780996341563803564525591277566706351705484396791642394789259107052297529386100303469495489834422707886628301554303995636609664332896697620403135201330876968728860340049776485906531365994645057292464803224823947198685287387171587709864584904662125001735111556518220945002139286463646624996793083075893302976989369579796318945621227001781652881756385316918573369703680596000225356595958139275072051644620189785873363419404317865093471297139343091664076701262950447784300657423717983653903088983044887470697704848192067216597309168179576767917756701721993293215724520948727760918911780061267908972114441604596128586343560376119911931088198991527589355037850795013559562580002391038563101458759242652186433449706979144601992977322980964220962171325108164472434969021771029476809552789646613724596337572768190942810896098386506968169597579614820073676953989035774386890583549912445171418453544958580749437342200887773374027585222817450799305782547706569781283107718760331444799020463418133903132232044854974506941091595115781263517438219632303936273752655619117809796997012155594070163090804393662249970823871123571891581692995606999427945424616428056751911293916820619322746045821510616285351624240033467987988244140120537720602635193717808384886191412224689700089742163986284724418719971828392831179493696982517974208043654874274547268567186255979398686038256649517112510819718847255774876322865290657323661232394805006850797965245087771903517790013103056980298773476269444074422284333890104757746263158430137369821539410527283465431522723387167209106768802474656398579046492395371728883145039704103684295692230762242687572079340449450569539176143509722881228304762527044968536273218911397389134174138014332065182907702782541749139177554093331697399868963591024758694076242261574792766345641727630142080300609311154785435075963977322060193385079559618008270200329210797434513571289758229174698960282349067723878594934842371220673980305098778350369098178080028245568760654176710383454557838929467368878302049789821725075328062925649800459390205802536638191485165609062068320122848221905939155949043076456371786927214394472285294781478592725416439327087087137330183203606912549174553509428543991619519858158041278648873619971045352969580237771631785859374854145847039186278217604172763545103348468012668549853171078102115764891991225340589741063074735050894466628611277482090277031992676988505357378211741850595408557240573866432220000210646823014157731600195493539041391733106489737466093177128590904781625298695834755212905045395403692054945293277772724974225293160817187926816232751463642137330337765722854169605519125289727790068796914692257981948841609022151615334228687607227001784918221117100769018636602190733252676325520363359385554572738320054931202257860742560787524062634801450351390593638625212765684544822345727479067914190918854014028799880007086250647406590342426656096742653985458313794006295815842260220755332711231005516517144933020599956237396070062663409570400913800659524570307390303014093968359551675017897091664643265083600799498272977904528661457768565874975362521008660292302056878289997558433421637260025797203802896031956495105126496065127159073115155052745578617092927362831987837046117496447203174682840849129603849548680032073981327087468505551389749864747688955479909425132311839518166115319548119687155543202221464598176691811124359987564759408792670889617015132508111293522868676769322500322619787828816464410378703171327900738204228001952619409260292945167033748126538959925711977466284428594384249588067332789295435124428702426582069190165206293380262329695438922853475312153410500714089828362749802965528893454873895949567606451749359305596984146566587568826209448048098042261523951654550950577173664368072020693725412660008475095872503791546410543094359913256355723798991820554591843655107311118882365619378694684484354599300505920074759549688055032889184320849825996278803801140413452268478072597290613065364879961476287499209305209990362044061056679052859477336695541367697455098286473223717465792116431951073912124504885394769459066145429654525468979996825775218468340094440288874311098675777052247584651336643139271844695021651931506451483743219781442753355919168702408064501142264849092142880812874753418132357423903076166155084432123133291835431295587317607397649225971736728334682040264030854039790978968490655746616236210440729163626069318451540674653151372163114697117420434770817060707472795209562253449260142183054203556025886932453820187057323871078309736590867005023442261683599563716215560035835701233069419792177859892266126552598511617173336934180346943651630379614529530608918558382531072091973342666875824316334222628500789380007386123019159585939676566367554650959757229101545070590714152431249327314350501148049449303760150588152319427256259457138429142005520247222732563157602652788808772779982722616994140818540624694458760170723297133119022915983342641074178962223338597867333188611587442724666944653210664433428975763534745405711565648878385204953392390689594765074566916964094848459736717943241667414963362374407076746826207789802245216533569578165340397174415033801206811635329133171403574146483777319967982806239670865917874259477774383217857017122339800374057968551939131077632525982609315292359241336552396844005661606323780511414099203828253428159731278384408697896170607181331783615015378655284814919377792691405268758640585353776969060272196407919108651475625034080175443827577731524973049217345017814966305898176977248402940243739465042212622952171838310259243918805881882667706294305576113940037079692945012051521772285979115705213728318144465366072777057067153191035364388999562947462057352283731599258269267953949563482705829726693140771395088474890316535720760559024271999546099466547539984977744566998899000311181089845437756225002335772054884605800863076216223521340422132573881421744725339948046017529866151656222281625622067099176955935473497156606502145248691998877701504433182448561351909104162759117935762195743523902232977898173465268787828872497690796800207966632745741948106407899876675966283982297742694007275937589516708909205624459146223085830158707978665121403374087372054092265872837246827517769978227239882596313168611450219571330788703539736996457076828433814247587063870213296403785270272035605387907969284531125288288331196235918911476522213586661258933184660348356557643463497604530378786161421054095701657734410071334558154987452659628074664927497326809270092679079475282032897747129461162501372688779324470845780063879507616204935583197515274785144744043665502038083468746958529784880767150495198094113308565907883290579226002359286326292446671694774124347489765236295598205038506697147492981209108484092904213450909429109499421419153854860674210925083006238433465835339808370468770028002906750229528337484603937343784386345846130426736856306970149011416917126168377522586282586003451729499790523841012419275679380789812671418506133478856856305001086682996390878381068604208526004504065829476159195124430543608845486287082867251616569466323624480164761880948098608212665975920948415360406989720081192038188282991099979955132885543504634335352480507361003339261920728539177466451142935212293106490629331008444030773780452833386822363528332015328137740156688582258668120329661371314175055835359042320877643506453467334829944867612153728723420944655219947559342214436018423151602153114101042285664543950001779096093785186701277440400175177250898321435394921774358572293348493164309581806728375015082810310500734094017233809375540037261706924946566650820375092506955853987066707388475854542495283277175035192470170162735506601815204351262358889861623871378422365760081204387517274066755573788583913959274162326321356753803164271176087229264939874988033636527031340778574900595483951613171684783168408839989371782482555859035716407600052341058478781040130787687836209871268083677509068208549450358203307724280108534488665295301760629625588579426123922068039480348378175295344800525131766841247258686288290944280485968054664047920875676184574325982401462100152292738498405778687984254258409578052932438766792250265975119012962942954759800838077696511022576807575431087938547918758015383301022098974195485878801968574575750862079778713233361971096435616396054335744777772041972056900699959338620528809070341028419667723752493554981756805927196921528621291988835014682080834189271054108085275382379882891801418958324835946539196777750163718456340937414255123119221524094473266921466113000477241012700626891210186850707413508959550519003202445546809336884538230289449789916289147069488651812890541610168064416498266422249096138714344673956520075089747030818002247061010029657280702080666490252142617807478727712885012001743348779341614906463135496356116094151228741190266073511647365401424196685122746995842355537320657087747050012187793273847710162874967795769484444348310292955458781787247619736428551760385828701236612954581995476398276258909692981311762397271468018319026463934027984040961606874883214197285143707820950445008951331855885828713254732243259036424957211904200592844951945449369131340141149489420756920077283240418967855938083307039166500203680080571116096225270861195126348943504783420588022807673451029102429199382460216766948876980160030849156080209911250957411668893401320801282870716501265352106769593337856375757374194569450127125712009386118414132809211178599803461071525028941736838985828549110221237654852824367482789367103249191615959513574669026603528231446268469350227173823828516767523031150832368696485878687276501041636613042864167763779848734342602138844044893874625654145851246380179154020447660027875764581004498135942593387121095330719775468009940001140117969420055300288297700443159184473243391403326539687742179832995076639295769955344220424737852326208363550462076926118085226698851659855508768143261885596943819765324684404808225157795702158191199127826230869817840213778571600037714000933772164833725658783192547188960720070977783343495959017948783344867988851532345950307910246979185934917124485084490618583841379084070834632571692924652121472989809330813063568515360480193473187134662140346461424739319092959205856879433637319049965814074632783528285864380180907980733668926430876772040304053524799658825472978043943002510656019792305706110488538501708318287161939646766597553884410745618150932505035882775797188289050559244833881243541971889254691638459475274012523674736230776935165950212955878773591674750629789143589110102265487328893704743392642267325019746281893291013178172468918932825016753708039815808776172492730754120781260817226049554942800408390019616970981464841026517984827630279325822100054616063090272155988865365436144893279013257405173633029139544330586610719615112372563167293039468395894658699469806702378616682685706136710546884628423630991021680309032903166224265764464629986959973195271977385476745018999080083099843086660959709159083492543618660659313372683889476455295294602040458724534764418918321284754259205570107325375918287297400105063881227409306981952918465913278477213050408969031306497003650105087183000231181874022083545280614119809876260925210655910121181653346239093495495259737953603285960059448582654177310801956094651506962327413622511526360766625792843190200694637274057058591206902941417461567593869431787861638544680072632468377619711709973457846502816046491182193658229822461946811761787299452975529502217169789341459153651167277789159441250905763474449593145561745339953475450796060850820125322630630790675571285249830457387085549311161446129049519379212181783215712443004572150303086821670277470323489363323802029453411652377373261539160588613631847188285392102873443339187009660618306200017788309700645452976035607731906549390966257690055651624419721755035781854635549347072623775581830089969583777049677366899771347412251508559714851769791862567062346147091337148926407056842186140022796343499777669919073807402150470868742028469720128901393126255988271925778094324877392727287566643722329727756289047215710345400930869274343917197355871925769380609409747001892753719571277466543399740282433235217112020814247193856789744380920375693632920586235331875707041750987243253563625718297075315102128509377040830470502802789076011299682777356889683418194151308258800798282808114369064883605759129805314877150247820852578168235861895114472418399948497238395543988565612822182802915096371271352065860227042631029800322797643517080977445234844736472586855801180404799663356009815956142918889392761156961204426957663186974772504433100810447027314032483000740309958088212417841026835830346883279459762188939712290180219490473982653207572488789620620908529075902368041759267460664512215370263241044089864865892801474544797530411178740271252580492204412737978278592262335628527522184496285766638562959846888825761206398101731671521524710157304307721510832676827088292600152717932852992974620408680835394666917318149737626836435643555019322867446886131913553149360554437012322730464453515042322713234154179591042276728215578188407039795179076980893319524139901017699402780634282926056069700230573242153185584067775449286755652914768458916357144755540268646197266893292479655297071696642051741273705416538453694131933426956138337414322112101331573667545220877418799372244107322102906746783173644856456328404457824781085551031573896540058734892140957735633317224725387414217174024485724980231624212367219194284210033609596944131784884670704805191615960074578919391170339781964759600961608540545345543578308460813856314554168888436014595353225551110923327212315985584420101451868648064047809047285857910332932865672163526155620695221917655492766447955146063428290601163201773586220314285920912087154555589064409290722253747578895976657844618793261975411907519513136597311380247228833716383441147445837483833986235221131242050831549553400302167061323184182024242000120951568158840526555426170592186694230952212128759555467441424345741422206807880719771045750013499411015369998412059556745678620956647791731253056066829318194479073601826281184395246079464648856319131893328771048349795316220619214676599200574400254785341924141625301218503611753839921280371201966634520917665639356454549641660361280531392869369303449980737905550073794985880106914987324204791783192255568784348273805847079392658868517488122356745974323546123295788869679406231316034169207379443166678039645502916182756764174588004645013514562793514534938340614511823973382528259682113996491886558040777288107858898402478911909063838072880270047132978011978151554757601764006126527220858595343361077908680620083970315377648237066523789613053191764165329402562477351274381459138007862571098681926031499684894331354231788211900854040127496066785166925293616688882993538612798858606623689206931553621624902508412969000344388643341672019829220015446992333359785997229074523103347896338596612286153778161283964763755161759704846701246226061876190836543453559310303452287799335215529978208088135732466824477397461104939555535058661998161333392716173255873260204036446285613684523435221435813654598220611595136633414676378720952162932094110798467132726821453175355834073205657054206404143154912928359207181877329759966787804926486710877021582551741463371583330569422921132275095776660897573746489252935301262942052989209210520712099622674803396569926669811461433462984647353507922037789966951100722569384604554179230242479167431325587735199203520983932638800567251423680822655537283043648611009723830001085806325950739033938417890073996304921993909877409891912673795725810166007515726582317128468961631437532055472088871921292113756811536250311490594778068343596779718093746228072536797576121062068245484077300283132889524455281250747772068018395411070106465186416952040151333508711978312579720205103114690338210932908930247208685541044040846224700793830225064443439053973877379749305757848500079253528492856354136558564130610328745035197103867677193163419731984797452457618460748671565578054956020371741984909075680974049022336345127106005468247183780922616783825062912529797396809539134987173477073015849290608129343293994102869139623524590911241584024658102592384305496495628815874727294122721261725718563259215549318290396241861312792735870635714896747335428169394520666855385066736356317287520583569981024491727820865236342286122290893305458671737833053795920661374949141116586258141822731938045625215878959631274895005077542535632665565202765668056453028198417535401984996758880059230800264083634984599089478054474920235910255039940863674210293718767496334983883796092194896921378103916309731724490484802062390634513775830483758258523830914708683269333213167819365307842763723340647418337954581316161210411409479230062970758647949235769406961501369008137713191537263557737526345238068381549491094926153880253075681066201934444358237918999476265086595738902726811554186377375905090169834237245666737599725720215547931247987265215885800121403689117191369724124579074225681041075541773694527646086430048948565154682461923262580488696769776571016052450704707503333228810331830462918652298195827980291983896771541960280878935572789088437229630504365574958626641007800616180135302980473550871246546528614418329935101587424031957316912015827382862539968538395595732604619282178653679582272414813467335976275607663945070821608950761262497014163106217518124236209573915690051450424684060573937518141820596058397087006722498325095685658712422480966297850450851477562218764811995138519902302755091211239054658069902022991812792628872694081878914459708084441136688882986433191194464336480950052305698747089229970690828801127516351200975383611297809784213287860325534218452958633916451494539966177365602046532764583196209670032395547086204374385554609356750405803338308065039228640619506287727772056153967585707630836762298554908121351367960904336486040222720537732579372077947297528305246288098906863566977291090715774212708046388449032317166823645995605695652309142492983416896024429596490991133292448231524158705193177484991039256438257108642757480199755894825660612591332174321193467335571484507956593033107552975756850887342274607081229053694541261794240262820628381556575973324432146533183674619979212392558578303567865463212540533684664737623075733039990931107489644248705919348849555911121150771242341622886495067217419385438075506262074750928138766354732531796321969812752346092156704549411026078768209043311790603029808164641720598260704761805421216557290260497544553912843923886456821697914893476744498006883579550131611928864612299598769409597353390284985215988346313326755411880198815473291191799447005309926046308747820890062993959117980296571514598073460389127012771344211966326105882134305575121735810429898654951203886031395500570612095344940580992480795659822673348214601615625528077076271795685573764909710882210673547980689258366406568947713541302888471886107590419565673810632770759863481985482688020391284963547243547799401251844650382758682799970035475121661802769486780466625326619300573961831815056804829211160483511265476865972862213956295773670348465858810849044343616533537021481706816286456155504793177189646262058856843777748504109120277249681960418133773982799317036967565323845652474303735682921977255982187742786622758383726456591182054647570187871461674646941873299365818344057774855329210761077976670819639554831636039418916755768942084085550874751521581114962067629781389270298474147957799661728133610442063956914641825931548659008330285650529489001432001772619422605286817187525244539360969395001957271512610973474550013935573026942471558823233440572442365360461312027251868712257043154528846789037855752755482329035291208859331329527278968102055541570569237715504376381455938808838452834892397812791634157106664921005927433984153584700095877517677632803869318809732978681231120164159151046386876895645973829717755710339152227990993435584144363651984822918261564907712937172079364912032293499180989276171553989903470455511882341369335436430171017208616003705939232557408918139455243218012449475018880962431304515719828634060428756084474869798993274413145724164411040629579324380538782485153491663270710759088015060084823523886429083874984598722055040517266558849059741367872324907978749314900367057121029945609952874132535843258486328266078212907491046566567866588928260353557967144494458103262033612551007009710708417482117491647145608747370493853535037066541402678420927287716174772470302598458182001990470199595239205238666515894687450496164588201405056854079453913236561520578384522120459395128379543620662191552799502629426121723404552189622510854213289364861360596486845792302890993684319862416539328310386563568670668416436434506675937209740607639378667171732252760773118716170422490921977791583698883219204064153001529141982216506502950714557834032848094774762069552962156854364331219385798319760976677705870712407172382441498261371213298526754595067837716961392860932970140525050832196044932330404551512223242740505844648140357317788576966899828426732312482524752824408158318323580089962676852833518003967226026197057282859364495119172044125512735357785722183110237858532823985050743350538570542429901490399345454726428459698039191513406605156289274311060590744154997368537863227463771833810051495123294399395821378993516309413610588215152419792479734243325820781803241081437445997715061130260069331222025882066938951614510289663020461698969892361498160276587009164796998145071175288727170454189768362347951126217691346854445267349515514702695479475589147770714770860463291739654045786869765657081929783533714261455515474402425748836012508847701101539781618522240988396470432747946036823500030074744175725555594992215103676657528801625466811436829772213029401655290325463333676382272504937119491334941922425305770623316428850858944328717727153737224383898693980329034101727882567402032722321057108686985277231513730238421396757443538459645258932021480601100356467821088145596734942476530253314523084573924114260636076873728656603884880190358996150684476824367234491410043882257035982165437377542154315715451070063873503968736039410033001724691697443549591334451778580138662852423515838679855481878633869443091153977518985603618352191948346850951983402219755142701141099138067146556468842455296748631236518103057642739719634794090421925511313578207459661732841659044061488216354819142547633124700888409952984744748536948906047586740677710572890165368454815905481904666145452647094021773935178324614455047837068385528058586572904584866015238351223001698432897624934482023293606876781282801636885004386200769777638160776637716735677471273259372264238894056204537156120030460093866701147851272668531456678505890794001875996905582907701370639162649530266049245743037845961885330445449644583736651633645752448732292497463019937701234815103251810661441962999547486142102332243720801920657712703912620326307188633402464844893997889310572128581972584003821045562247940718416598323986314589385719171662204811676860131857820951034494422570392354967723705997799650747579146290035172300442400164953921156935739481283478758405747249150996800974095903846530704145649050499827912895336568124580150248197984888046323286293735523101058791668721168334993111935803549073189157316288310392770393391865589143191554468818962072404541756355601569527560665121003275448510890973772885185820407396362619370271103439382583152158919250171993209176738377119517029528531699142659821274146132321628535126888036311371049228215460711278467086470163183534656757756333868377887919720770527919613823449063075461686778225504596029043535523532971052494624563393118069205637538784392237637772591213458768361412944148186658073825905611625295183153065620349162551628373804757853888043532472588811492867645516180850056365996196552978174293662289102135020504667229880072151894783661073234738149301051226765282869557906356346388469940584838998196212429203950353058899282297195429664460289501354445343671740857298492874431866199151859203386889205813332501125039088622108341198479107457818824601999771385129013227409339135099934683554143879786827527805265460439496237650088719769640529593511110792770343262099910613868407789802864646717614032632242168509891982234156880106092992274468080013290281529543983389200903083858455604817532268847282923273378047271974862271736145916586293202861169304786190449542943166180157558876449537599341401344980014571929702229397174406139616474295316373230855639993933333872221702366507422961813334220555499132579927319998248952242221464853652987165168069725574048908861574315882121511785743072930889004101327181610672488734195380785337377830242831259287708899817577061664532991353849957040429765323965948705104839899832252559758434767519535591275182264624003322791157065192481666880823831937537794401364341619986975197237863340231642324791624324574906678195012318078636825954794609647192618752980030781330002708331400014335708048342845411112099741535290124958264732666310150640218812061451547281491779927507005422431686220794337358903869951746235311793353167285926263263816715456232672031480437785911374131429945867255209454736878992936721009030854692922303115177979210257275113418641080973204429232745325230988395330311234673963427985046501101072780197803632731832466138469894406917000452680327492565508454167807662827509032869673559171986944651643694688506233607423625223893408544573520084443951824039053183620562282048634403423157662120896451677141555706164574486533920717080379682829822820793075138826058369933284051551342093106081202580789651382234832218446282246800085172712695668690833035259442528360274642343547344654541754680632742965131015259803569705124469372902841419549049867877385596611837800441254121918708079404384604783927805572843516153957004716272836525520926084933949571377014471183228673281065356719460424999523260670859429249262428058753099971375242909184105272868984169766465438812094744112387215757024562264546199275670202025804130495482878851312989201140212676142288261116613710023290859541214544783676902173029290813046146236432890685525315139320487219910198512888546791408868851595862664106713982767421121189378890980853404915974003499749190388563469704162835979937318292876070117700749966760750194644742273628870695228809663412390138738428074273191044196116982685475582223998642180556941966935713522155401530506147741261438530758473057660447334682226197076330194012937230857796257342001641712280009464913121462200403167373825180641410005718706587639883558334311458197278151741270461527835494361201930270781986525289322430670622109541072776145172639390536940251171894123273884847801918024142214847693304295249808641945846922202414080484083342595759669860066156872130554720198027896486909323909341459265321102340755390433816317241486396711415806693082432084036512523126039475693114579489038653139616240609065762386955913047584438714995576159837361238240946109877622557593825775584006083498569645967406296488865552736712774693103282540227311514607706226346724780938686240640843566250105377081301461831635465778114501963433661570106647797645382817168280691301294900639228535692112392317864824106026432926025430368095197735233005186171555618295359767843609719800001849925863704314845936734772450214756672877520583821929362482226226409896206434602436468876393858790724794008952736971875472958845102527996091891092448088731747333511174374654410481390122429062005691261375398095828113850500285011453105004125099633006431427508548314216366329270210030475484394788412981423620098300394810980116174268689101411002185924423170869413403249794331548546603241076182851248035283266918179847010552997657891373596133483851210231799068749905386727760338524622644240964058788736181381659605339404048787934935573324670136417864039199387212668511870642196426657028687299787782996740679917492477206881997245555802945922358927593506902933882901195017516311433372798869493087035505812709761168835039375284544308599061157783184879024073347185625696954828889116214066929224234738464520409880453014050179853985446088514391176243092999015524209617258574301835707546124170222266554797300543005953192194701578861311728897191109927512542775445322217308954516772382794699546078084389909169806465795756950546502061324497061918382199130247582970766436212355228744086685016010101581161783887152739485404616274831802053611211010738686096365987350976464549921172960956459014248558964486118439414813739794883729163366713100020718123747592032862265588186358278599383095258542824878457231022552462324765245429590002808871190785358506564219153761350354497056025574424197797837459965789631011637809718621740107655810248077616485181486248368970827883632194175468496256338575963616384165294221488313162383677471819841688326842141436207095896508799887170125696992519828691384185726190151209262501120310416037057277537956638067836311753590653857829137583660405946919331737395082893778590240732018427219944612746060072513133937696298333243565756342312328831017966214051117805009228487297809085404813371265031375571155622710657783283663593613395033696369843635571771579028159463581597963993199873788278715331634468203306074622696987841000128447147582182699890882883315266602626623977851411487335159161376189285640739454013179089971407549190190965542363088278482369629131708609324100324095911748468467099355134906617772471533666362723322682041757502041424172108948291153174130302117923736276030296152617992508911870867498596746897963959208357248742611734796969775200743184446421945934829948651496960126832664448155033578457520189629830106496078217915524042707131492818763839404227236475831103787651499815532610919351567173094322639554578054511376604460912638189989695677150504809050413300221777440343935346541676554064655512818911006887242200586173933162406396030461330213112553369644993698053588821963215089033850155083297822411886273227978086347488140957436991254784489168250222861451182327833551025794957244867936897339285957642506827842732014939263068595974517388511043902147506514892593455120863339994587129678808943124395487157590563085778611049020020642105652934436721617802425647569453997250065274958863585950785687531093766189582475892006664827400149404066012289092651829774568583985408708236452209487005304098845245206881018842012962690746659452779232285177154582915003773103759574903371154078703332566028628826234002546194740973456099124225073515956168001556182650052760056371258626519037281721384767457754916434432670371999339229073851224964528359087894346770581656016581669012651993940537463086047877271274332564565492679913900933797150173182388420394382285483207728476334456894380760379845641186509472454189752251746363649401313499407416091014651217219866326733096166079454122815102032126478550482877378998349523667835548501405157504167597073936993543240716040156344580640093997596647227260887499581421055251600514266204970739227050224979323503247683673171401149720915319170822391122973067153716246680365170319904017653949375726960427235523082694918378562866723398694312692724864765573988883694804561282629890746121296158328313578315522928064403296697907951672604671243615263918706207367071299227667207449728565862408283057162118301801005294680906588415172121286859618383629403348657220719554315562194708252096163319688309615459063397099842650075428216851704663632284133430208095326630958815254158696680908334349559589554808573675728747489834941933341981448981034917630267269239274168890874097697127896288652715761981421720754745502225057963579299620289584471417810271995712045491328655925537907267012566355839099033497948912206204116489859949293331576382756253742080519381021272801529689120295494746498340589601227728823357956847928764417611289810520205314018128418647426876284259479615436181809579820055118503188921904087008108480095175899494061514621955983857802654685146229842002611896254091781179523169345052558996937554674946731493853231017431383373601376563899294187013590659634270811934666062375035515722920509642658177543577944851799165440936725799417792116880582803886768851963586884481446531424716302618777246814797021306762056561753969566153763613932321195117889595110839642635189898395313888679577053839474289859921768028751514890876572471723912238335945884231038579795365334750880050142819029440814894517142386108541068721425814396731504786283753680642814817305854457456511509207167179520348189440486695497360378420210253144951686610237509392273512747231907294823591645363485448655796376720861326931968694731946990770978689567495629367544779563793565060893598497747194888334109248049444406964005761881594560684782865535396112611608287386403935165560131787043592557844278772914611239541723285524385243434611459334512602495542757318956964203039663464855415341051642647895876269253233440348313783179435844516964087750672042836421779432524018529866960457370390723275492242712936147057704379378492718715757489259766017823275219721409287163979294029866912733625156800434122303417913641382537262658642842424541830832601583172529775677850429288654567766467522628339766890973476516318221270226238108460626657291185530984896259735653406095238090401268661913145946523822529373257233499030581964479046918774650251251587704067526244194537765946458368801914097973598446532493999042291274539186112301381344241981575085897992190528157290829231868082196647965591302771202454014196727504259713678207571821973804810668524835456314977407924113646065926079189105918577938555311076224311704939974226003697626323633796465162031864697511180888210686582576649528502161394964017852440804931658548409910795911136562179096542600171619922090615705819679063203259401571656565144117999740072169607496978313878285997138821884797926901800058066956768302922204364498640237464494706539659380000076370782870110894980118961793727841710390662830159062732123329108592888439258874816256744686633406295792751061999622204158937445002136723968509472097169356425953662296609689769459470810322451516834705107917230665630762643250815495985687749733518114971866082657254064638716090334977730620452827105828186696556442260617351084369705717539711874309742347364599707766009016866035472826857103893073945406511649404634780010779106628464806534266982941441937915592822433106962484278418464783263258566143288289660378386806832941952410264317476827334346372078944867415053462328018014363645869035428031374017244105781502411711982619947905392984621996496331450646928283639904587719590089978450624432003462893146135026645228095537723801645778238671943846368327862488816622935067012033999463632345316951684674888817881880651056655244918935976968758057176540224895589976164450744738317183121573205282272223867929565505688657539316402191161120196824058362139523341843356865591906551440246666840613014982818444852066531119898988974774008866071523516678836117363197291786379200509450263271469158217928178321406845495831386271850571339912007330658167397028874507643815251127720507021457815225186805987780639115449966762225266182867818803735028116716720791992791482484856182426579979572663008463080007519827131999811108394327047784831349100484195336088603927397602115765362544975567344153474162771519524762794156108609592374354959398371997921667616808112363346046414678665493876490885276045741810831220398073285497915425429020460953332630981111769823008439837783648078251166933671031007190780067334753806611589515882402216897368941839249481175551625815410512850216781997232010123440372455507983765254637689420384402602913318047779049967925299492882255563614608319264688178416553861886309951963376225805998681684434226712486299981660495748921849779598367635128815770132968466831583782965288533083745156076248120308507221468287031105367831630291967021189784404219768466277287637292454833958893027156959321766700346720468455519807252516797058834556671196125752186746940274999389302942459623403409440270291244298004288483382807964235075948903661438146304626308830769376221048985161372956427997960394975042012203121593013465946390162069037277976482048825205718506320901598623849673516478882605916933167670481969370816168635024460287464495537632821426233571125173347585972448113444810430441699027276497174598752400682125687831552890869394240294557570965881055464839640801617561967805499254894499998185931823430456106358303350054989291337183945622563759756896700698474226272857232152360260799311331207956718693546101622375629588847515201978168480865023584314583972456325181535261781674227748650405117451483205643641180308675137574591816396723521278317173856267394902703666264112937144717369566521990977498193305045831253208869191312137416908672544222100309338712424269592460058547177724252492209450355539528831648414583133554196305606732535473376126353561711646698488136013417060112231092840228929889317303476359202165477530512044327475728978334252670475796331437790062268792476013756533066578376115283831950129431897755154181496337915608105019359825131278326522078124877534501042034537669716008592136982063880214685263829084167386547628888208419691742709721718178803725135617490031545998152515795029517990126838297627021586709050160120810198212899609396138036558541961308466643485329243804501403606598308655926446782892381203230088528607935981529312516457722471139137702688267754638757974169713029838956529610410178351415263938626712217134292290674594134991203867707726974109927706942151262447740143191446613630056101698058950937712805886745076267761248453741677447477974567766387675004763568300208069135180394355067133191053565134188851459426663210599808378991053517498042802356669306381710394188222431886992179528234366650072158845314960547859498242721716656033434429678725429841075990876022217551731853110784899019882330027432827424459605371980544722087438904300774045135534636586868177905399487505160964773222437850598288773061801356128311198216924244555509004253968446142310187005184422237207337206850789095473823443365807512067159388028830066340887643072686601686690546294355382826331724014715079165285362266080913414251721963917316065600652582842564644704022326320884003057930253831015276210110984692925997745444199714353175119476729143597050676737446539680637476615862686988566981640345217212534419403724154001521478954062264856223756577779373659695822555320257998837995081879720743926216390887670625251822832435281126679254433715540009391962901246205937850787016350858067505838057745291760390301501684188942452069730570227211892663024490779807597424130945015820773951831745002199481693148424884506526535699823451904906350953189060315979797631497283643042176235232349456011354633613266006950684319088025457657672982842055135520110824216918958524038480623944214773739962967145015612068468513253220970953807130171349415802204681562891543733669052595400268160992084687036188374827876223405282867511940245529529334520528849533074298574388917109187072728487952057891026055786121992205266293092275863807023002108785059465073175611763277149190318285033951598662448858080173349372415292143781609497187737804987731393818253960315545268183557636995156994860816680268063467707120441504079415632205470419793870634658359045626118614346583554335642349941565440349392819450525991074297977858085820640634928371884372609856640443667760925675056706222890679460472231194281898184764221415493004522544377182529774820762379589588958996592582342372437182070888405656043154917623373872167652214445720389952134594843057464829924679158467880459158733880845673652275880395816323439422141394242781612229778128125408474050840469367318163644347494431208097880032411392882063688698017950253428747792570109229012217708085143248842608244744269818081659812372258193377181782747760521257805075147709024930874624598426709235132724755964804374092916844484600823748862354124557547634178545037693430457578017478177218790788655169113566808761241083912696853144204037183068633883665020674963958169485224011073552663599509004351297834288187476640994593863629610718981001031427577701174711666151490981807477758373361205411050088438985321938259561851485279619817584682974147537786877574757596421256339045962214727846084847112632603764558374145008469512069740578344369800797600922627622941150916035249630904683053876863262940520417419007764206156176608485632014416462369078999960122863353668741626266504598250519919476534548568806746325680750970326192762737760743604667508897712117571939280921712663917035205886296211991817586835243313274445433398945165167639047947702732014332340561174675654986371001345254417799217652410801034959527368855801804730066254121452459585264600459022940917971698165801728086781034736563470334234563192707687512005141444764646946165508885534054351606356879959827088392066794193405851641550238992790312542919059203642650379578239382426160559833877302929981594045988782743480599272513061838776009278586582901315228055460189803333596205052119995691507803749135507380281244385303253152953167654796794076703582557954405474645601398459293538473226600243982208889335204807029643503994753626705642274575565486137996335889329977989500947119691596318400108779254434292724886513002628771645225946235925205363086420327099801442614370760754550709004824833790045290214888150173532481925856119007158010369026184012856828139723571178029905293910178852180446432349469668095451510106367658905748342520875982672930064466028088144874806884815685463635039266731111543700915856959888978041942944432047162096703716367070335712719659678454990120497474491906194151607736943605851261851085434041525433276539232664703671638064788706237074350992653035302352617430175410731355975608377207566241153176627454832259265813514002493475424846441769090369822460320831773435180769774134856407759285397890033385895469337466343150719583859419093878061346271675605130169250067477700327331994756804576415425200968489658214582035350993031510119981575284056550940301270431761839480701015807980466016426317177096008732289833683761003028284025457788039916521310910561633591218941847600611498612677331236699901909373933201845349860121501559091664464946651627882526869413322337566583601721061741426659691402417262480586599951994411089187757162972332381156786695405314784886434187361299925046617266585683437616834985146109112186725917295778039606949023463474664749904667201605931702483245928425747084249020205012480337661428241234264484512440184366294558975552745949387185539277209660450876548751041551304262717382427721308502019424033332887520162971775761330675312100131638522069624746385790665335078676546257018287700248411210986529476092880830681738647185384137189800199193053378894158336842262001608257092060288691410824873045039251725310169407104057883156156102890850139126231466090739124759462786267168516464018886208375517927516459663787577984933010803956281968332044825455569394827021995577515309924113293044236130358421067660999529169979440144195986688819203953949015420797979710002273086839828929378001673245173194083320564761832289354695331474743845139637076071901746823350157485154807701513235798336095162907090407857447008931551178858657851187007678061879939627999005586274606449500896077935853378303858004623766900669852279438569061260440261957660427017498249992311879878670184679233380092599848565377450056780537134698552149384743844924729222687675247523807238890353458433043965613313361558116436185249466300512095545274571507410898324102395317722375928832539523879976885951259410414428113565150856772568129779298212627827228320139010144928290970744226505976170474511517153894572644092607183288706391348780807107300628683942903951547219037452038706718519317329393102712974654206293742687356019896110271732186737361976625526355624648365007859702428282815095765096628874931676448179396125331656578110998661177072587507964129889432613121842884698968985938938929961578069034253617829170040532477099638518473600132801843957368128568852184625821466839908963009344174872473531003949153026597191221166523228544161008865838606712176505647118182676034369906287261370127147164099909150900216489321959786438491811343754588672077526051462905349914177241068576246445647614098362169852286548635514809994769219519087160283428592265200454060275192104286388143891789457143706087107364249588640471630817235650421138368474985309235574654581427733592238228393677106095572082772891846928695978146309717871160301640001868933248907275371158002493316355985348561941747535192271368554310857140918956423942648821889880423974494424294969419522682174745674109617468980076294267497337051819339643093260322981784660655268139302043916676370809676747748803920726707788246901438638518378825375667598899254549002577872819845526532548452977231013479083337252004463196821806570660311283753534186965649710062221897757017263485024770674463955434569793326360592056803979530695984325381181622138790832115577384416692016690888428597782364182551082131382534632715910093093771354625927298124249332138197050822313861923508833693612869255361172555379634062769314285571018340178215861798481813177719127388763430145094513425025624433626591403012251575318920641740865134704084613303775223836036191656329572750677440840710113055562606803015996445597965759162320794911045683121300037177522377237681436040510195889266634939027166058731795226389447233689866257717222910023297514180617363477986048270923610851533368864283370803613633753704716226097045690424550765198781836171090065058955902477990578708052447444666476312666312986019315511474754544139748337419013365429740506175890754566238719980903340381165812732994299280278426461524181528134516907886763856673577961338807566710194128232215604134311701956783110529537194681674836520177402337379680577399001300975857460329489359380598954488050181646705927447891766907013677204516471713098444074999424670687382888919755729106036938088349499321622564386787345239548764912637109126594782654497714023712580564113383913181717174678784765476504680882240300102522491267182213122399520190094349993945664672182632893137787537680393654645306268847232858826291430688529959860931389536135190238756710562927697072813311639548003611852559097186407835022481495483724332702904014426991941844128370091391867556692984529195516738334758191759675434464120540013557522446305987647600883342558210894501889900991441608030232664407113951022854764105551579206061262486109568094085178854421585235880686143586532905717586280123701899703679073886809864394459319774316010400619102485418269558036849695326814921345633959222985816043940711382272268346759108179905685031584193690189690106722198784026187308136600888500824122742798596460402547817385381929859725365904708087059050199545962634130654043149077127936829603409536768400932552941543277153239857462712729041001326847891073408862057664176626682020820541174917102549256840268535488776824728816192520697253069607582284464410440685322675787316792008745147222723532133646654763192555391034346214738438632269619607703565083910881524508592360759092512075038366392771999944181728138785158063768838135083252959984209359282160992838747510340598119082098932298326008915501307763568594185995785808085022680008379255986036043913312737899220911674143396599018002610272293228742668229363851943727713284689270759421196846110468072259292233611969961790046423335722011559648765936402260112929214155330280775114327104438175765313534958277471108180948861515003087505750996487961801832842297091533546820112744211824072835240385510001394003109897918430823185270724941082314990002415040795645289553270654022300180964152760042159217714586861781051095755112097213728051097561058380285756318000412018688420015782398615108131431595342884665980027662041892519393595052429486759381011077354218150890297308210288634581131164399937580685665306509601243561697183139855138536578835242957441214120502457708936514506262407178016516627644887379435129541338933428729775751448652604735553997627496529504632365448792751107787957516085088507020861096969868784566193786270400176641915030933593564375681744510151479724375786357956573615432160028764368941929852342770604570458160721223457518302730015083209711948991722921537634115663044056491211108049216333409167849776448874182040771783170455255077818826124782695281781112436802784812830940638390865014824754360929688344046326287148900434360363817404543998363818402974606950162812243157016146407244398208921675543924100815978312642622457473162099951426210602771620415763935133852826672826432901215218194537483129153007899382436266628122499823726641374004325255287274280392307271026079379957290643005767879201743140328907759776903911373692965235081546962990062581207717723971897252763029202888049132843909541068199045299186049281783549587246337141364356083332454487064556081944200739973981701725445769769022158000262865883909547211491357203999454495739215223314686032800578134000852701150129698209707823173459286463086042100755787428081581662954500751944134928573212214822310427215471432675576925771107685366326674578725735435865291217189327606624707866163529428977373332977780837221255903572482032116611883377365161627831831611025958737216844374212252850676202414822324758218643769056817668802594373189457468943600686504281786887570835817497700123387147619195593201351518449242923173889876242841110781683429920014477222060282241222545772642881196834622942133095415172583545191870389002958610180126895728336491812369615086199119593225715996420479202285199227480312452495124798381611648308767736916260470193097511106267242826468596117178054964845524232934428161256204576266339791303570472422800179753056758826703288446128816652479943198655220865188786595416865674957159944089004432540396282117654714540446882140069831000893957071774518143551421363238000038068628076435754106992635455917416506574097433213545775028090633904219454604479865301819780559472404395735091194550397013010473236072920812791792903752136154332992179758125023636055523648824289871297200101010197424363902283485420403699914310880184305561463107358707419184497434677437649736958668426639138076543784219352132243186249586732170553111701116629294630325463909229453546005492739914890444011062322865701082107601081666965421413389258532536331259286012891571112753124190711594488817180023068004394170776192957345660055342551407876442352281549567467980790485885133348543837814767274556233253661911551578545310364446711995949657105086135722198749249341561773675344874725390161363242310779283568439733355485690434967635050082670834478936430838567557932155473604441704122084077438149720065023035863852581041577388614785495648092832057868238863580957051134399637750013258719977489888278042807920348696521100349944868655585546522979180714497137916941246146876979686235674535575527398270942543774557486945105747201850355449038211203582776733062263378904251533391511838626846131026555728282323918750069187938436781879797374444782871559582403003655228759458087779927515793005680410290284012080763735387660311708592467130867999542763450906257270123918349113521561885828941446241264215651834769099543389373659113009787171699312210142669615972390489534885759895493638208316433174744309001466556808184411835267456464905801934600088027018137217497689257464825227441230746898651261769337253458181064323761355673850591815057886917754096375613790061707099693847958094611631575385847944585516920030070684156348436001455769239927645707480716545763013657834721656944597147859263916776588115894362599944507211765398524231474743318722600963962638326577234467218066811592910473617809758997033448608663899706182863882641055426642711228570515843808194132097718441540019536123858080002222993612684886281555834237420898073218902861632656189756688602196342782850905065061986387247622201637244051599331601477585116610836350084248693166979177810915529731191659821587381090189899654330380988381434549084433738911193293400794171790226026977805887530022294557695372216325006179103119026977802550513152629223454585248615311644482593312260119811185494855344074957749242830977318864478040849733774322595173357651249970463427647428889900433625598357355226914632153379023538035623336064438073227896026183696773755604637674780169512324739007366075144988280550261816320104403508233192379383785377049099428935110941772260364623559528874766005783592576229637573846672571489990812026506075462688001340401617829860813200913246879937357768708911029890019010984374232769638296244116115263894384522610011906332135433957136368961067235522858435738268881839507557632785785499644803408403508260532273709137702492242767150437918636805386812293023733628827176849582434397076404449674829661110857852376089604328535244838016605684444091026587686664985858183881775842589081541614450325793251082898151491561882382392403507985260538628673038192758072083303852975266705728421572794937078879635760252565389015258532465153232620355323592779522906716507928429058695780336487657894005594481953681138637877798102255648293064751085703584053428191973286364062527336503386137163500246933136950344225382741562588368060114636281971062556176922055286353270176409121884104708156330440017904111410377244570358168162973907486197507539962853854729266460294962640912236625596319936157116038042753279039137854964603798573162070191343771143631347758601071151541539090693209759019471200550400879027467169712293120013035516311300446332350487571680854482403829390904995273469403656652176435127904535049488786506012967701934106217397514897086677353681835276421023577903527046810376304327108306394132762290034473493123425721547294887418552103155117560789301303310440931901676267547293640604912755559888926161116840051133109863547252981822005129194198480788691665846612090109609457082840001862759626793658102114685386556727699186757313007263306389581273455977613539174663384130579725387965708217312990097525148492661690522378810413751434749873280271310235401421099819541745076133896730489276241344611321301488265009506128789811619750720947234473942228858095682325127543074026053370970065769629788575841206778157312974040003303904256856250646336438135880734730101147336357787783982187967739379387634187176479690296402374844170329319273552528536902564629471601754267300508399555752091161657230852875893891457323086928932379616324677461924038673571235474515983448656336116590997407912929417102656046061524662018145323981093564152394925131186352340593986188130820701750996039515801346556466396041174664193469112090740738203797609275693844973364333897103628096832618215428510632595799639764192857508085743004556570166401024666402603693472999957227894835165922706455777566588848397474666652312439432996875444970198053122322746967565902166779506275325752470943756702524354066963147950220386583354359914630156753307099029333637350383361032165866481489680371831923497879310669987890043646044125551370479012960549606417283697162520011908230446322591594796409145756274833832642858450661890205082496765915686150162190154091773331883950226161594765086301716757795891909394749583796711400311420624219557398838057801288553883214137881294204547682330151134071935997818297000531685282523362249520738552154820303177892158612013755641397313547543755404085948831946891949086529128941132358038029544651792767431391992925146238028975539440600857125654566639868332368255505602936359902242894448174189884167035541960846083972195612564366327552462724447243932340893351877666886510038152331761942854783606032152304558587354276393716756174939828929740219035419151576005631227915188048919408843824393434830580632702970264331612328343324915006700977205951573629131149041206924341777068061026148175406320424496478243744680156439129810641496611347669888664368357946071004995023509983263402789219890208005737130737116166172989870977349574322664621790252765859618904217160490571862940935898983724331796215953847825841972846166706318289706292429958837024588029195802167576681811865424989775342608015854366160031392625342428519881050658181218282310519287886512058022767001787199921210640198165694164574572848597671671927247275075291845400811639811251362584166274100499593156082793678080041722331924325444722203835208387754202160559628378102046243259462039420982195120301508056723859867471704670887201023971200193183892509087552597714853171176675071492300859909795762351943119110881775700331993668816725781609962827644844004754764824549458441028918805888585549355617241776160239499136524162212187275493536631029214278809328620900425858315448467267757937217420308821364885501576317238007926658443289156468396723002592800149912526023002370641956923289617657162482497603332101421663491236735877142814076520210790162984747827032357022082566621587244442263179360422271324807904632943546317512416678656292117156729744378579682919115842873169748495029201856853913959261542222065953517866997019948029341034723727037989351738611043268950557961412104694467214816043422038945917899891269204928390668069493309121374658196442856550980187373541795082050656205345339206463120887885972934861713610637944207006119428098244016203358301638802711947594161694126297130839319674973879927925401949376626806007497519570649817494954486814879815255764992990572256307680693746561716173620661006434482041044425932136510115201569038824715873486807034014249116644923290062575421908696031341273478229602518733201940272204643755151098256888685117262468222538393783043828584402781403818812242951342136169462099148701669721989592917148508280207919633197538064888139943935464151295384193099702033058838404631863775174815597378522624299103188861444716151207281087311621448318212162541375806528501857496045888176659247446064526209786161264584400032598910232375292383991015092457991648471926153062891630734846773953321548683978887271325360233098859956458489749845697413822966243708155995768237939665847031541862270868172816851219872127675753115942113360205119261042936729879234808550942739902423086099950029861629288817427587683334995394035343678776649510202140225943851408803326402262292000320580218147649742374389854999923758639852225576140539531573066241034919200864972837014781919676704363231510427315425171163007284035747899263445538028421593854720374036846696897040561065171170854247617658726745407132814976032099837294755509919451901521978565408714939746622372536595579109343374512402275257612120860980614878928572359386094885929160087934504276448324207011222901295680784106483094332865697517344377067720909789463368900852697823610357211336353188833429295115381227200695214170771951048525804661849728231823825026967547457971584774623238687893704271336239527493449559536490519166583656241619074126385027543779363637320198549722816091837173412617380770339311604636361061107470635189850379017038086353123164947265836547625672909337038404759474726533401632913387289677520034479406164826062879030786188213263758852307417427977397345496446786728732439447592815487726462848155559703286693162803681447691470776086644550524209488862222806346183048371547660657460235474662763036059989747691673216042802237533046068035557437702534385288430315341942495838032808303685375754500675484694228743022669006291716679524423590888057028376990134721497900651711484392545528194954639032506537589299785129450325250569152581083973001423089763742745568775650229032198420360872276565530219339633633037780498791433069917731277995782451868840574168099541672382526086087929715687576185584434057823116826230788403030838924457592541057427938410432939992286404355904476135376688345554584709589316359781423653335139672062106386089384591148175018018438751712919440140476055668650187836194137769788836252220317080602278153844665714834099854709371135747610638241113125006656128975007773138899188355707437775905184192417307489082058155992197821177942881818995206269175764942387483422965020479420099695181868238822656164525120943003658595881056976161969813668476740043710530244016838941399655898752509522518796462515411428639640095801438695448266931647293570401348955915995444900012517240396076555756838985453632432664886038280843758572218006409457241328987813410410404388375736283341794585855233506909096307428818050820932370628301954760951968607313852225011962970627288050651020849922718121189169871217451037075309109617260942297364677160105785871526195876000280635170160644235425421838734515417768653573741347417296616151370991042889034305169392382280182896975456941166821959984740682210072472081532063096123517734584700273089173163503824090643395495444362507181906922046588483318586558336778993241526508643198617808902210240664116499921845392146893895664075620728335471647050862804353025676048727393395448445835009970337414346895323909968171142505480918306111536419963575385146761754544941098336685723069599435373664764629562517053810935923247547213554385122946511613221010954962800094355083959561877456426922283997073898159754641682458304783946312921175013818467584203058117654157560710529279684177863390521832757762341914933540504351288658337513615926945868137096683716163433269929333760807420856825410225556370984814639954052968668645110042529057018994727151429483830914609908361897741353820149879547226636481605798190282618662889848384781654050118257169033612002985250566147687322899752343134672269380439109359462555172260597133403275926307565288780759812808306796750632457327654373197357279422403306586971669883917363077271950763995992464698287901686190710423489857523989907776891157763198484769208824003829334395500468059744505493225539894856286446747320432618857084475837675612001677933922454295577296263380142735024449298796698253994276078984546946020839129520538029097799976435287795685447466478557201982967846962109067819418237674747141308845810827965848630520697498612762680083652310440847928907008570463445188010166071236145232909302537365196442191742918409477081633613821659028499271950161118071745290201356607364793570274018134713194019842719975430049604309382033215980534745207326664760859139167624892502379036846687887126322682664689594983764305875899030614842671255594133927744150424178810179116721861356418146979856437750196961709963918251424278987156535281190845026120128716974843551564361502229277823585747038394156550817473641234067313366742510753931503516148441461109669407065092568782094986558089721136933573046233846301690748331948169078619453365794401295285106675564787451826042899844718163615552754673653448793001181238663260081801856678876126483051496828040268191963009680745619513360984169934143282317807263302968475367969229403093602812721559151941376310444484557256785815975789657221635252245055396546136426987720617056086311763365438764849164024070104360274679044478228012609067788696814309084462947568611441498083901606587312792991469360754644132521712708297232639302097343629129538170616774372581958891476353071943539646866260443063544064325930016773576239929600009591642113452133363919068470370281375019885410200966641233286446563216571212744615394346508746323595178109029893890550106114932837097548565719585264616969505496611407683579171806403554672747680654764126506586041346606053755468949146733373731663284521433540773173571263339638225897462157705840430292078182946949624528944764837936036714607208287981436107934971476371741637512901593433878057163651640746004476791126388169468269823543976228503100881384383654519874680547005820485953040815427895253963854077806602550078331598776240521987926157599229263081130811823649359604003880260194412722256654666028453527392828412370881404000432689236497801349717179759095725078328530492024924701567767005445680060402439722295329938492470862168681692368221546616240475817137111810390075721162989121831249994987993642847701259389431410383235148367422564879940891711789581064989649873999351950998052917079410720136375726207340593046865016697797033981343474274664871446146525673980699037888665480560599447503506311621105459185254349706766089881546556117727582942448010907615049518254893337547358929048737509890403197103695735293282832577204011582794454668035517210145143342991688349989024555739622855115637477804732328514688836098490387230494571008349793119870930048699447287756052526007066701354530322428960467661640738367146395408790035087665395857232915347335449140928454593419026970550485699798338934208867454543257712680868154949702785696361798974997446741147831520672007718951571342833979847008215494922732761048126322087731151976987979647296021325233518060925095633831187809148627091004584729310002262521974587209010438272887833677126998434124214105875937654498600423249359615918499029513432737994977289888121724449506076223378191931440793193885686960835517069495979941494566106894077317597471349538963865312930944780972721920157016978955326582161208622968756790592085976194851733174137245876563296953225984887674879212522970005617649641009859999809665019253156321747351748804629915131793197988438865937958869557160949862605450392831950278406633767915796459419933622579638047239427741154960917929745587199834789176725371629685492896172962335275930217834353259522254137723536063518070359406087286686152119643296838169105418887279968202679563068156883791935870309291701195013986258487143579351203378013994701493369250180006584482662166390469718424561097232704694239085228650992448387414834957874787313746457148607674195467806214638521201420151014787361088296289215280216652172734844202023424840597955725456976690261693604014742243305420720873437352978471763953295580418132145599684568875179404963437276367914268547150647787305461995988115175954441298851023616162162040285638772720839423307295545182729546069676360901726093387499410633434137861844013200874450942106832879512210867262943965274711194250598266610885857599698391125625977860125400001464267609626097109466079291225641787322797334615557281360934032668440319088510979015280998359582096275878169337724998092629991900005366658213235656592933682035982880562636966245669128263694644776587891510796479383578556757562722646666838762645433697682490750745435522126168205518293530130335164574502822576484803268241865821325239164377259106731883668445304294363294570491919635050934295139068308945374557213852702285328058353383561610986575982932138532419084508681677477677725791537796150469995265409182911347382655517947627250565329275175728398085498572951501408542151008117411313389190385699700606171542042406898248887778146655324460443769327423322708871647827947084666553626905251171983911822810040655194145855066592355679419002472590014545888907208990402145960679043801680435990704527768594700455661439783453469007969403035576196682356633797859788145843395896938701030941472359799526243016268055384703911718632809295969045332122815768672972243976241506252365424373990820468096967220772470372597643960570598395855740992041895195031113005453143667232786168450734709365056432238828248954333675143126236533825916286880986936530846805848534678662308098671219762316542892317659278796014136470898845050566718184804110689210605973088303222664759936089164194779661696637068550637423193667719218887347492119895264079413817613154452903565580711396670226718310349121114912663655918008207313753357359098399400702650268342870975399134184160837163598389381992325644946584135692729665463735074270064532278465763944015990955207934179689263624159741894022943922382049659836824835312383568279565246667956568202624152095783483323167745739875625287266580083987502920844661959461879719597793399286185777214123542138612367865145135297591829105265829060742423780659100487797182281712059457268996114116227187322321414300509009342250342356761361949802343095618973769295494597619250283761884315336959658936219425482960307359843026510960898800346002120724411888947937418569542870861665862245332137757447283634500977142066414534326019912344323325839312942496111534071650338826593014729160272441804002322937650675527151829322187515326303749146920981541370454599886563571235368040653371164617762949688862565001526210367776839024049831938526548989964574566443935886511980690822422340016209663453400950240898817748272314129081834652275690497171821086633218466273129838264759201436225745574451636759721312741306940981841640032962990282304179911951850438850646804322374044916869638663042379583909294497981892963906096974558113001474526402972405304278834307402537186606408348888035820965426702758742094216310060526990938528430047610863081861559937797372187445314209792785282473182570935660508809869414336481976814275263101275949773639992406675408510530043945236330591185087385943560081736924002927781514403332912497585979237176572669264009847102939409861863542087869927077065795901253033193912814430272414251355520789623394543771592665373699134914849174201082324937898847628330611437846366937873937283875348515489838848091762153737432208928190023938421327896491116439156404786069961153586972578821440623625996931715691620091692393970750040616758068109345943975947680005999164345988487416769216197183653243035135890275519420564793180398684322125066195815676684956842135013875611646644618756618071152757965329907996455008198834816466646807767640956883934302182755669015463286475762663447126955420372260703855964065619712575399990406468306477233161585672527427994779052055613981597299370519922271483351702649142522165901429897543462222966980668000178656418781753896342752295933324992682384331772216150948080423350999575395778263579139954960181629976461780102317280682980693392822409286671319980147963110420650870736504611243875636621370129069579583010874833069275494243569083516840495964549538167268419779722154698030640835256905159489500362444718234490848412626557424306279862235569330268147449244654952794342130252190899799710337926000299295450714526645218492360233605786872186892499496318855361198610329121467503673238301696973827640152891613208355968160301621135409510466016076636525813632174132245638275637373435175036049894915461015824536600596134719062339442712746645018726255470768123228467954956824145212577279981447139741014066127084815232264685781016386590455305815813455259141525956966332581844475704817499203536645142958435442360158041712887714610491747400662884644787350785189173773976444978372057182315563919903784537091081851000797961055311004885706735662148682578821305995363541370940764117420825376567031970702458612261247748919041913657589003704372474772145024518297547914313094165130683072926970918753649961050430008155770172811880076562505475909806917586664017899592390440963304070111131165480637389315734034674464231724228588078828599465444674326347165434167230615836276638277805378645713209911273259449461659721953068655005342344735376171515131258595263106453046013120533969497826849699469282011359831318935435322558835751676487839752106926134763356279146460597188833887605161191360201360672478036170444633324003082476517421569353338989286396865802282116493848240372823464623967002257871318691946118072872016733057009680099396854052065973627500631632681301697200438696799298626859202274004973670397866561440482955864659354912854345693880903542967552939692904776164717219903714681733678865020493180524524642046421647999225088118069881873070647715791261698547161361089581379615436242740244604907009583309899333629949644901227338454852430191087478287880157893173915168027092427936933982211545583965707124503144396276217988982826024884899722517315301301835014450654403677962628336912783862683168336216155439394332666222632118871191083220278393472581004342824296245416810308449854986166702668367464912382003190394291149716882453708111790420983189402610667970144073978995743911079150025968724027200877220223805069945714602824681847266643690623655886553085723304811465441248759319236432508075655001288498708888855727335375918759820201884732648933905804425703399761089412819107567646156061530869849066323433516245735755577594708081519285218891786697503831813815723753474708677039604974982661389856288973364897355399657230145407610025870989614192735098696241317558409220489373216273025606327705379256272109249361437817678896059278492903024447884149754381005665920464559121117544227876605018309533405745150815515088117790476510110765264275116323958146692177591175973581118708088336363028388889305829553040343319829933715200678761238424086747467335436404671417000175895342032199743431888235709014411321188140454120754159430796417524808506017316514274376769557580617443694539521066294104828231780082041103934817933401643602931002429836171773681000421304658233712692727570952955821084625609861043900994754235551247504415643942233483521902982993497995988708934593561107033334015700699381890355542398925736958364190156160675151535362184221435829523801662815021493785983479867299618139908801305857806799461622554203523109883192134487533786675729244216010168383659251669067403131385184590530248077897111504408445241430032069449831708808254991403224534088413679061886405581524244215298425727622412958027415732871995955517330253221146827121094235044300317001818477781453409803422656048402987739712569913621388712997755127181963028593152476753337904037479007929837408418904127545647913941879211620311701007529532837939926796509956647886052236359915344972089135453519519798307818237266679973339703031153479703486461348741635335755985807893159286673440529664956356277323199585275500275050638369689980684813757446352860411119287531863924733122809637237039134635700757640240523725842395514506923821429186580752045811708083090615032766034635136195873081610963725152889041156502006297331883222795962292725608065658348344416865695462371436426941779049306565679411067732203365825106709318549414260845402808426167910966304532856360206151561487185915055710271890095258261674779829514991079491774359308138608472853779760685453068775318662306129563938701470032061936987262212070030428454123561432985988214089764955343194554388569397443916181573141235481590680752212572055354012941763558209103222528528344593389067382989043777681216846489523654997230705068659808741841525414712141848423166352684639288607860200167101192478576120451011571467643005923850068476380907194361403466713184543699478473643344881396966428518618963524131783073828867700941997996667417291676808774302836732332705699239133312827320799455231736975959287769237477345430701196056174921427022683442131481154016331434472975276524222887132801885392204585678025355981251737187390950711307545290922305847283878571004630397900306527104978856746977186065987353865226873464638799185803168679857472691880849191732815085299725106313954717390071913604456373221164463784379727892965785077506767509662250091756717138705750910589649678819933130199561014937004892187803494414806124133112738400849865828538586377650268551113457460646994445866345256509555119653251371818749736930322500128414039101955221664006634151625396303816923461216720248044376730262176296112233787898238298038450316111221771175838963714476424386775056470043637762598620840093889019974985128389091246003389906014347595136067682580025273660826253539021541378577793717489866218473136245418297440095128300893610307440420896644567240648951815348420768662879076543990301163248318585910138687458887667169885954873513878861056431270945847657250990511356876049316557607664350284832340942021162518510779464866708876043100128543503763178446610615882203927369476232430473253895468259024656252636136160098922797936179150866829289370886945535965528680747534942029966071453914769776534212629044121391603649346641617765013024089054337897784893528756165280465188307127396050255304100728472880931260837485872807613495104416498000458491861345738309901516266411764752242015249045113844421591683517626215231570218856339320346308717121225589072141190635260521669862841457440267309453769001792919330089044453922032457703917194762155133797757874162125396518946121228176492547138360815946031705266778581087534298384394717689490141254898468643845849564476168547199581063738460941242863129674451359913585150346285005827556634646414077225626014145825972135192529893422133615402260561268700759342459331522859997608085190993767383469320779058324945840457768365958988098714525392282342584811858765845791419109032575853029538106292298959196241622182784956482134051502084406799965626119664145300089823193052400683201101561257573235746436030754976323975406138355539718816804053065890953653349951857584255143898075273411109945147851074281505929349358696974936041967160914915614041768392715706509191180784616738472235685936689901353079723619894839811577102934578943003087135766955435014165486010708809204902407610872328427305500321576772390107253036023149554482496422326774500112606579737850560720317308532821126943590439344812560331794169977686842297109139106568814914249790646630017573421184093192168181429630733595850292053463351223212419116591703016628500605582767157417941705932902723494961578244328905386482919866852311533813688238532697662448994028534182162061432163710995504479383837312003770528811172777761893877406784450033532438155930398233036304674735867451108750364375939289007868777803525085675118549547902316163736888660843211198621973656121191339013036746446305331488557475513766006753013275898775197987189783437705170396656062721790224468519981837047165460146859523551692279078536892380504528397095968591497810427202630874015380201054582860275463292058465055438531544900598431266275257445250925883292918423140234364392661071139905344400324556617405490198367006092215350835647876329080955986323412426716564058319511719192513427912293416890346131748492919125995547680968377204279948269489055836565639588414070262261304544293375232498696259304105271584418753374177193449216100812808893124281394923032330049888760955062035967549831449671993858847570010342862527763899472050667428730334977034015799830912324314256221568093141702477267313040027446037109780647177883424160219732840617463343891861058594915769705321925958106139178777468165552865165041987217541641082263572426650508952552964520515286072769041117712457903158731955541192262371833108193966389438460637804697039542488325939524086849651128187656445990978748774574307876975787754121437210579800879743210034516874381576361507023841053185234676500219683250766835673502894435135117651193640919783223504334903776036860934086091471731631027531913393152561868352726666486297367112684215356169906560971251761661142797599451125761650360273131356018204252399068908202658633720631576525988796771662024519853823812449353558359211707431249096993190510942136249515532249574889027851928830142677355522365096061116214077115950204931220250627210771254867848633978241784372287894962148276780836377939186421319696926152964626413824953888128991325642776043666557990523355989773267960012541439611576214545962326448519782187587423532471144236965715159379777460275666382196632493144177638777284050521202250292643608950510726680549713165947179525609538992665779570798941926225537537062444292766937242033330578765938367854225813654702996869422291006628883108639626450563719382371754455186769265331666946103671716826920032188725102611210527265066615922417940584465837764256558539989090856692199194677005006829232657413417587887696159494204359646826019461859804349518257054360435008270937906543706942810013087937897377377897391413881163731210970469628292594012885009713274704146776464162648709304279612819927651696954480184760115160299958085900573440310852047426465895827091409061637698841217352064078598058033867212145547849189896264900003186418919699317968548072333890128496269625778957743459165380364875193720257150208010977412479661233506525972152324239176755568424921774023697909133850441665511271081239409652489728816152750366247616889745490394269381437897965347305086207247881545478411920596544086754065348114725858313524587961590787011477370006783718738780180675226026380385417205477034821013364898930900091141393162646533970209932090708435650853742110154977956136478535097491820571874000454846422819419157540089332006978437625520925962835644755644537486381598295122082565546189119883280468675676190981471634344236808709388918904902012068519628057538008900211637846975526608611758751542761284119551503262770298777011356984611296608355826689423350877784663094935951443825071276632502019624106357944951402516714461858434010388113785564792912359799328396699739877643452205671938965012023329423303591270821649573162500378157229682504023852881600177805838384913146975863500794869636063046383304612536320438612008082195055062532092220652965183748337583615862615936656126267638122266120564221460404032157663719592931671931045542914146648787857307447512141214124372545439296508195631543695112805311618511052062251602438366942902012086649794866908425331424860238597844367102932572575801688129492201977912054464555248726969144573739525459511701334647526847557059454624504504240682293134332884051648941949120457309575641922592423555649610549134939861940758717162105482856345838787301384833409944583759100578116278552952375618582958145485201066955648221046961063647618054940613305301689727353215123557275880462030748307917242561020573919229180681968959740672518951121040699490067131844841684008742031932091823560952266232320557577663573060118801946889178401120625286037403090084123398635435543579152047958894712765409425407967551803652870921215686268619566291997545081019644846861237819307914459030025036203305704493445954283240256070222095131232552344909268540855195795251020835350869864676357408624437901130131693504970961090335925567033564702323869533028203189801051956380649066049308816166176281984675612528887570892390588352431159250359466815615826641762408276470132914150041547240788123551982171587963205684934633894238238889928845819967327359095070759982041603885191129618579386534427143872050248945125706965391170301914103844694592779400191922691321496453738071242029964404312619441487952970322336648958527290091061991324778031498478530896572628196187079034119579893047991028142977241624610771321166101707789790448130088168849827574042018487080200713823565585004748044461992719900164270515591513141269943616829331001407558235164304183177227216799256191650785128528969992278793979107365644961697524252322227912702468434395364844278215942117512941192294156425936495488558596993928312628523216177832725107630478711284030655622332963821794738356172164605577722717352101800830658914787252624963691575506182922565184199521491424639453454327548681214585907232136905756945733820779289240707597322351120625538027482415229336060287457431662976392496948060146268313989299873348335408105734544908134101203630244507483228741936681609067420174823026336378043640030860981172089253825597989008696374843962520685598312870149156200285049949391502263093793363068564605267283969331208239305178209210141238382656842160603620912300801613595345167633730012026762011056954208367838509319417694361462759822097862784252838430621391098730945219712769643154332821883772299466288958579081602000054242532742999920515505925226173085351221966858904069565363404597825887967417097592093668532033708500786637193106524769473505892953754089256342159563794387282662742250041854381008271309458351588913784858261648368146849447297171661369873272427794336750809381059978517033277287808036563218188422831768840620059470312048539118703442569558529915215470533502970685857187234946791900827077327168157861971669116344964301136936249472709639780261255389920151748710179495073181954347404209379556879582957954059255248834509376517326829265992115742670339716253328024881296999448872819718984469208194252733481634177772393956000297218805671326106438211481942331409916036917663381216980821937269356513506490050991292302759216554693894844902380299265442556931648010108568957849846822313419334326345358930120056129284451741853793568224214989676139007488287385594547279605352028871256915658803316523127892797321113170951924277023398341462368426009934442208705803029472576214573298587943336838921535934428802101751776663537244347678303629657384541482249552884653189426789587878181453887366907999360636256723279235101260714630631659872059860922567783008531168855358923087252370592384690357907226565050605975659360439043626902803610220361029243471263340323066029556181926307441696910491110043997824191469577427558035352300567817514568714883330199670191957946566730011540105435871842260339509587184150504892888320913886373851567841087502538115360140753079592597101030057846152169382742485712975837009728967933948376051334448135903745939987742305468483469055255373056847677824862123302869562072260547835646239725923102978975048818510529496078728372750696881857323210231173363624663399390007611658377316781722893627258217847153241151670573159943554733812534607065408306210963803662480045456979213361767364704976518038999641000650023960023497337427236439354322196024229629661233335585223656566285252643047412022631814697070772527288954165257655054050053259965839671701960550366591437758994433706183354946718150005724506335439406225585081235234352754321533291631108774139022482050533906031738176346025148434833815123876364765675379212448053452305178942733791832011968364318542107676278041875484130000189634360423584978667173181918363713459363295431420043447808923039698208985444370672415060061732685608658492537258567063137899235219981172603998109495578088093246331068599959961570722923499133017000303536180075711377228398681803054657306695417131935199220559278156840971785046168740532592066888045814002507867914587811374250440869804434197117253465756028698130845432703125249172049417701994115737091555263642905432472147460132595188141085969156605516237278644429162628987611857295416144200280651288447138735157632737147964231160049947942008935716070319549948434925678815130996787934667922953644648218144628987947156305162087123955841791005902312590090654525386052300426248850936643908144939714118573230503159264307757514040071107426756215475116253539594805312771528713892327017462599928445084030469621842388087004965892663832966062731196079973127983778401357740343084642193892146330547451005557039577164594095778808287598347086276080455701072474939064635884899228769691758121319737961235196913774333788573676111862991881288359099642582914010934306111428984668953337071010212420648542214459795696797238928394829452390046085114809548741101210845737641282373882672739440479780156178211477275937404240190279797040608936574846428078428698002197524808079619411505564296860569416798278785994841823730583179869121624683929257306536431283424184408583390573522358001690424499568509042233230924943132904918895891833748580751479747020819252971624041587300030160464357022035050890876823688261601888226373233175136692117162793252578219183359219234694168398238574393310975543650542929572128952032701230918580215400687262424793460866014228993526641956256089033687925615799172811595000099246280428467013663345354211414611971206244343994800905535837827952144991663133666891065155128804682622285613734528012184573897963847136159511968041281601908469786063608550495207581845999283951302680923533108694720240620877068130798943253564823857192664119233087899910050051901870758809844997460108038025068555760872688651016005875040503969430733144830709999539193053161235816292098630549388796079485312647580053062811227903241012973530668926272965091537568109163603003039335128383775211044428103243085668692386405661602932822097339677264752005008849917448170251721574107771014367414420417056098641147504101989206900921034034313370268053051219186720908004750662821416146114346567659347045079121862765373814633653254061336824154056214139443156378247454238917315647069275184606271218712342329057198539072809819619244238007156958117473457156936243049102494563615148109169709906619393934107518528393878803781879685537231539065607227004321111113154437873340513319302733536162855460714897275494031612796380484847417029439440836001926244930693029900435199072253378300971532401935386895360283065590017880670686549841021484783223754298879385382127018950453214199558622232556193462163907053455283574284930623278105194287788984659786184605077692680805776872104179573991490696474245321922772883495881068895337544801631046679345474254370718074581618970891121128398731485700066461170603954717958021576598420916246009004763378728308662724846483223441137224879762784129818287443837721377208905936232915237604386754099267392787928663214542532620574713374563150458832543490028832954276972303593738633662488355504741252890783509971138849046617819673372966718988943765888275883128999049573169723946174121803370329376649608780375106640144916126615001867513956371026071308740074549027504284984489231183327815436630871729688104859756246114735324499520888514791045001074127229121355898650812196238496388048388500858725322874524186844345184382026975034870313633753228486470574286438597035407069762224172906455943187120712045860676925386204243076516470084240465079378797508338906894552785030942639836351940663617489539488395136769226489835214470722512994033610948113586734682759291721418663021666343310422772306039954008505793152252174754270245136973278647812685574304585675833460609275571301042808668562111193409979863207539013959536100899812319101937571372904701838108761634749191456747571603489576991133376169080115395971504092288627255832761524196904862645285520155737857618139466423130237214415649027677915256761947770021149347704734613195281836186676016905250415182725091240344674228495204340204907692351006976742742141503093008693049863705163354178855898158652262375138779790841665705791442040804687343391187793916507472674256883914587204691870879935393194065372767135921575269670481098839652002447116852040812944626843494137779408875255243836162737009511774288605024124804375858958951205799683713322048240321288399253222661644199864614534333747772996137269949209145978388310551572147910606231110522066854749848655889744916186413401532605247378186511094272424017284291207520223380582054108146435032589854083685756698971018760838161321145838908271214369711708258214883055985197450894377811950054463451898924004966775242935392244070257511551184403701818194823691519500629316183846491122998502450427789332116718120467072435264813398346823334510213048812981709787925430963501678090219285545391007054443022734599357408670458240832185316128969351012526362726272872074105196721208554774329365728627813745468408186750859512091996173605159242065865172388751332909195766219131216069607504798196052943103034951927626407447629947578032425699986455846721232724297847471145718401214723976776642735618830937711760706345742588337247137280853556744222991451398482578951070893295776815665052762795204893142974858431668153253021405171392419955697768601925313828236855781562262772855073521993430078842265236132746841332161357691533199900446370588603404305109781017776231808177011617904382405642016268284155402945506236413081933121732828515850251060255149064508268472834563603212953411290421786443659933756395177978877278261462340840672614663443878665473207153951962284452407929151729566990975797461521592669002055305780463414059500674931194772624089499167865411312231096914148903941236735288272996891227482970636110936337422183180105818068631049133253936486435200570177897660672190486057444571592502196533999768201302520808434880026803364921598306471498126625286026223401946363125676507045849725422788725618330778220664957541737824027134690457666627116531057250784169412246976577222392333590974856084935740260647857907560522672556602337766508392999722820113899728047453114751670402305842686235790975702490807756726926441580001233156627205281961554874500258182535841759963957641389231573650296857651634242886758675472529732238149189101510320410251553871556132299433548532012855957177660468926178412637140664459413896496861303841552161681061952330129826999451251172311459027698794910838520870296028917608663081682278378331499591278574825489579981801705677144191584447790847537232895447281645994246369530285838195390918364340602133641108861193317125489973364732846617009141840340532933874262459971309424683874170682917966698550140630315304450520996862808075742726493932264905862058112755439523938385216440400296146172951957090823898743453413542852563791311731250718747187789231039463136586065430675399513583830794551810140955979540634510657992425628096102694815943780291147876086002042920466002312544711541353342395483849455943667919507950784997477664318384920134125218240196796135582142841729571284476913791886299962629752634515081152019344204441735133240896796536132732520704805183239520005560200358034455854702240689163887915117293404527554718891498542160594648947596573399585440655888292142943088063358218231032959499632865018982156135127563219907067847362234819491595087283933269927914574704313372531667935484219546079837209316085112420723279287233566311197178952066350654825742844449194911111285024814517064911502873842174311246990924345989535851897259142681234842473686590160961829476276198084420783352935682420403230172105073955887247589849548048481254654509505318571602535786155907524867653186430490997738465578917974157745381755953723547437502144994758548562301385450643242990514791031818521010260448496032955325151694557909611189983973181534561552323243781999455601046489385809522521415707142274291531110789762414157391928983531665730226960931806446098416595529372705677287572731311282597700050574621601015223778688346077772818912910850597255308249544060198167406423174668304132649031688996601363116470497528585337960300033923702114428103782449663761588772192353191117987867853022434435491029435848880207724100553544436764687104265791846164984244026189565540314049533496471610968749287245051670406554493152173732567067117697531341998286450392116203775214033817835826433007992536121320633201615384609757551947430815508186283686304681459183952072600920430263292214447466892249315480913886646585623516026775405774140346405677932151212624043724683282941849894701745513438591218569370405481951464347587126146658039649280297583252802637295526732028139622329680675029845787302972092178141146779157180646665153241349520883030337529836475982914262695433926502695528827854524941150276036238682816813731019126469718419478093425859984446830593427628116894000186373227625003597119988216919193162637670283255756706040799432503728010430042972057205346051852574074069994849348778287730784103153218106285510398479530806706745841785472373181740690031993746500006700833112172062807448431862487289099682230959019067578310416651746678738840148465257413311586727815162742638769151445861266551838535212990159528202026691636165779503697576230321173097813959657858880927892000257232990614961745899646268322554805729889328434594051039919000028213312491208750568615548681466803772227893146953086261730087316393320931760628477944718730674506439297378565432347462953487824631681636197382502771957344174992517418711836658746953298283058666919771656415793207585931152102152880493537892421185919745281253056410547873358550997517546920923230127688480537795740309904381659003232031436027509844424121183534535420751743696638320703316231001389977229051013103514483096845440929531214860183371751906483749811781094128627901417049784046874773772560230089672470829586220786542245954933586449911702434729266667529146324183958731915057834565436630172552830604470829576077585451399060439877857405965426958602434291437648604801417391652165640712912675251524350340222151435741566003215107176860816070210771122380433487536687607093480989300890886173693571166867174494611776239199671532490850531132227110705617645824982319519043515302255930914287155186281072634765099410852525841674649826338849729063681710009365864770272662290397199776489366547537120574835762224047556372572656128402040960863555171735478885569424407444740314515553041015912364870323234785571084732977843867038720921126713531165717759788947230895010366988026976120614120769531095871252870511516562199667974516159823439519992452379243640713450905324479252388553565675835717129775767294499584130496734734248867795703525265241479014940080904394877725798750986035851700879371987953032500549886267329063697432195658669661693166679916658776766493485045578052219593080839427801500214496282810528338986132457532491222336318969146904175202824220534862776905167053722740925243974864979588424256009188076233279419499890257243849819477811700287072532964119436660762655409382425920470507530131089475505187876945934362232758981214243624581396911179018735922048004707969538705235100801405511973033320372791234343308317157650219669958434915700344865080870447356323380935707292469810252500032191824782683745870118628198160406517974148172000450157249321267890010531603396713381054276164229092130431890452394962803564192785846582654320645615771813957860569080373339568561268616144589307670349294501407110200274798831745195355008065814418035956410603607256745160624214852121409348592436719027523181785850800732719324644557552206611633071900722078934960275467838550348093055669942849947014755041181242361682927333043558832661695333472770043220650081741547337042325684550564875173546071191018837532544853417806810565465022048028315716205090307891960066530457191000882361515342652274393297445817796647163869537152836334991162269979778894951407669808798465597702114745563773735177210886706003717948534399918674130579245385522616157577277155467664249718217084255851585914771497027420408999429115844150521530769399820202531986201873877018257082637980809813784126888447729087347670412894998634478233815545442011843461366563445161434928043799879380791923441875832493218403964760388138321007949279433022386239689266186265450425864355077076366508286802161710460683377106575256241548393988929635651264926059596607767426947441354367927725331491950979008255295757445862892004751276640511668398372804896777038840831655902076824446225367947259127170436042845210459808168013940614824406505694782652596074641942515710966794409799976086519933134998711033476687621290640922804927595876079269746949335779462726683442937687118526645947342851877042269329069142016479148239646104568053936665271084369237017957452112836604732645579335792387206668044867215422361663852407054492759512157596736839689820990993206069209744555426348576107416765799245286616611661786051948700931225148970236636817454998290903358498268036704078688803308633297980998241482448555486599322192333963927797512650711850421881171361236014889373153771074034357574267358314655975811669853850320254981313695373591042312817784633102498758689895238623802279366911500590288863121796298116048533204856783168744014445990010950118165529269859180155504481063947265376201680295922315169567435662461020082098806567073708690728505755658156827347862182383167138632527004638536651376541026644671289342000923305884025920184185872089981502729518940381171158449868205312902159243306270070930348178197835339794487684235012645301846729267992278364848686807522106221667830489659585841262203263597552975844488973216153760446413763153415036504382446935306664263389982796621375332116598272151549458758045058289405784154533078585780307873203992480068486699600655857530448540610383120442128360461978417025054045255182697836362968596153006225745623380054707720839709001593010329794288253338887094183636323731423699869081540863670134021748875093660423801308399842849311092685348737463797650703412410579491183594235523099305631314109344894774677838506488922952665305622766417936539104551002996852460996438251241362950696065932374626894438238740222703365323937256325353866304409337276936064891539549467679475483801508247835283342818988776896309094750685087346033574719312999148476701589105695531763480981862827061262328154019871292845674552214732139901369642753882480549962559881451718877450393284682852898952035727254778040684131434391658113857466278589751657038056053691433383057955657067611389910407619458630912339019766849658142132312978393733634998382536073072262648547177201611728358623788303254533040643426175891015631581750459497080634709547999598276748706921377629013843508035576538989787888442244101371556143560371384051889674068596429303300149917878519108927584717845571316165091041080246329665303075543090764179432043262507311540276378824948094602585856758549973705208145367771947418470498411608357727844468168576702279325845198461909175236158393227232548175100696919324590753787417794965480571449512802241940203166680144159414829192133804210119667562572181000055027589651187867158527121861446443920754016670689305739583619987352936838809326112969791328671469780474782029698700213429993567346677005030032514495877389539054198223674403951084897992202821991603619477434378272481487969917637124140131103038048444773160287017453347368416233857346403357479943085216260336985961084101673778882438447214468744007438724103283467819558599339274148272560570690860985363259950966224617491843649857775494054610419116403029763602657873645405593415319669081670477678238332834233934472382834757292576241798538466049623663237082580893603830936126710960804668938140301198121230428187427726148984563964326292812737123880623251667468395003431976504293191283996144737400475734998442376815788544075014950593539705019165984495450658618885944561834826525706440468577710442338184168284332435844053925507975514499997904292521761946644699190335902601420710221304045801455164223065214295093473550968816796674299505262510916781102672613714384403875785902723763472358051121823560041108920209725919919481011586422444730898158549195402830887736899944059549878529429516129547252435460377360839700442429555986256579381211110206641506414621314705163495560881690975212615171208473504723668561574215896581771615232065152706166303696123944566440618486737600675181142293882092311185858607891462213661552203966248712800744551823486873482535988993755206254130034870607205409900631879550571556234164735460451873986311512244751491418534505726879183580036823513677761527366768543485211351866655023563947568153411587890032001066911862494209022180279303679474284029177645161732755204471449491277375551229027989928217119924503843363460336868632884960424781912743948233531478286655980583953510085559880306975751179823918465744176358689158144624109065092927293441240880604027402442330181914836077309488568568402717062514654452930788516166618337507828736822335847266284141629761868502867169268949201023159418128268085517164328054005986490233383009068129970637458811852443712340295898775949756647008026420514383003498808639309012602112089052130970327794806458090231834443062974715253274115223331966975811339555663107506217834705257610600439547495779182855694334424401371284773024228854715616490457926711761894280130109819581281569399886559358533046704489693704436960405075725032916958367859585009921448613141114807707770675108206311166692552337157581846829844266414104779502425860810521154341579993253070567724647620742780388019782461831094526868763764519541134186294837014073694653981501240852814835589762228807676154032039190210824201172384543921174684703140473207821084864370197631950142999430910840605348288585436118926227600400761940084007942004993662315165896939216719877955694249565439054843829396459125440949849318811873683188640324748429434255495063876725608732747131744126303857780457238927484994641454956535067057403763233215870246987423852874237893460870623412473416802947960920914812710762267685075523813101431390346940625310410354642535219376432484669686535872459199428209788884892083551752219551768170659293275781759042914268827474575415505320503094580484875326859219503672564519157988612771255617842894732435419980930598807722574667191065130962394984310951141248771359278372956316840997972639165038966924445952323531700311163690872454544444197044815516176402869103950454830890449932835625777050544458375974965547382841346062549348131699407232728669005078419576186879235639337120188063153298631173658032213847677307536894957901210054054511777974982419629412515507583223306079097904812892835975656235606479484841312144515814683450145843819706616121799980647355997408228900207033970478926485754487969798612551962274661708179214690189564664924460509727732129447532137928138599568384710931465093716164130640943405104957942347465229415752493484092473888868788096711454019300665076450687322684831553896445604411449006940427218458416412638112360928953001274923919471536837625528197306083888408619991006596904287683723072246829543273764024722498349198726409880577893086529942560036454950891705665240090356793693844035551823012007685900818451316954810503928723805740452441407314685249574219679565333026037199977064693866036791230495519171677338615054444965768394421237261684958585040999242870335122280833967497858548211360943493266994056580376578476777957594437005154596243083670849248920126056925435126768239673461606095270899027981998279168109700739245058636416579413900021097224830449575127926872951753143194983346625630966075677262235275472416215929370233862123066263386515008193652511865226712602637499992391087675623460850591051299536908850281290380674018358226211732007641779729437525208205195880357644053927401042833174863157273896816610794746281683404471494860010964513315033458504328166082786443203164573194082749457053933253140757206917637875285982588886031933346526013888448138424253787450891881301257058175378678045900314562542955434117124768160363516207477711429578479984436879440518781288975522372615846819270808547228792059344894154336504706057544085720329538603943912972831475139785988511351606134565938470007333284419415477951952731089690683017275865237268303872593759233962652306948905555299387137738427889865208537894073702773872106856868893665771300287430757143597620186340088902973775898068317374322599799568376449950410500686874390645171734871875812870041075211497555772078163097537344493840692577396474017832121160453114581771658474297135963525909491570592865774592139675353889488740001961119804912493814397989117259082948647980993959475962296323893763832037078931517922382808915677364379043149832808994111204383275198070822103008355930888866904472419201615004707705734450858092236786479969106447170540198632233162804597457381562641854539512763758305839031856798989742924617333595892158959483118714655838333366057824744877634288379293138449621317608439147112211795489321894431932725140960742938010854615886188288556768862671719988467659100734189256421122274970634131542228512192505175174754166303517419790305910683852537707312144662980756123949200782959444104713747390046470605432705328551011263858611051314446801320216468038763714003581528787532575837964481312372652025158848113749417114519341867055750519523532709295855861388735472144717668755632745544913661801057535591177919624693615406908467085200363737241766068095818073222074277155744301770124969346624919315019795121155362690541786416790913736727347251745278137456099224518923587916009114325201237339070451351091496518922733240567029302605992511737793141165110343797198787898218179611865408414225303852380990237371838065233395741286777937715881260607952027918173534806631837608836200728565362881067991994461307300110419375441862791611424667437599110690771954160349661293332240988958441163636108802575066748531504301570824578871560151324610905394881975502558452174335932135401297040729350484707136867120780683495602254756579096296681903060929598432012437242214376810321830809293461623284596185232495685627878969165921441152771156517746369468298330182516313676398330123511449751390250287185924376946802827187039324289420970699963965794660794855088925779734646091401639151087709223980046612186063335283558542907095642273566436407697269994555728868344621266042702533155966385515452587494757858376353604889905907030540039958822742597217721588873956485981401032354514713626440625082047160014073657060250273391327544111712838412154509643513554200632297315504239543927356092869827294449434521143124279689362834419211570269156964995531279551190181870878242494380376070386087604943610552640250160971250847081992391122573741952751120560551354743533615765024542076589379020502834824727421392902470397177227943246567037423940711284892835293292731410246313468160152462143432795836982988212041651894989166751468424471361260433881144412252133330506110081428488075872164303539206731915528292342045696687146830770226769923374713426376021643773133854252247477783251302842634395997384766287059249745935718410999544944699673996399349919436199496463111821302419955689491476103372004137286524265734939127403638173450292624892779104096832054821097725895495667256237623495375855354741814738030089696522004064269969612353523657438422996351555507661005588638681982364892279025555222110228147522895214004847804649631139109483352233481181714026264896076212748512170661667012545636779628087691029743557700557847526291774836374471325496203800763863959957249960690620005200438456940036765226387750620978887633060046390471290284535022430655371453454338215996886507042985858963513471057206966494295541853361617006353760227091440875086642129859882472648437119919044633210292267853140833461566260519008064624231679940547700648962786117912373647236083545680031918901238987688879120588916469067275752195801927864329058312231925657859985776987043243401159563200458539598926701973893609634976423538645912780546125381943606236099696298851781015127077550257580606232240243587179349596399322794842108110229409271166702922572544986354908784852715638276439702251133722968782654310752130121409898638478803961000088290055712547079238770768392551830419063941996249120414767759570983295262027024778623173217958124125928202525554581974659507104498105372194291831499466960380867063505487304578578020371245428782858694021539978708998034856249523393040580742854959177028416662290141361949692307781457276921658628768563107417470036997815908076735319995711643353806255167443490321635427747573845398354575861290351931497874652813375283835995809297643727788060665970673264205255664845822050793958685178715776491298251552995799010252945352861249510720058116270287692790777618097608718687178913286952979481667231131695435504277305698390859198397327892702273668777898059973961168961900610619335117009084453904306048512439458517895872472925762270584470846401699269772760443106937082493918604448853987259824465584656681393188303028358490946104080666922593756784285701809922118856363641408395285710231851511616318331216621183991849026153784628380832253308619478973282934440036945483672425583714216879772924480176009120758670982178997603291375821479275105449077952660564300140769892250615610615347645503211297163718014899911769707305483857716211984889451397557928875433785344063631814805602270855050304703863228178231833842087109679953956691012489116095400635926654268942419260435932026473438564083872373664582959724619027311272993089496423866091507476569108226696461470273581713694501691597969408409868911757893463210196561682330811119814952999723658931482717144425937021031058600065523281629867536257324771798794647968842428467048875823709729619582374122480764290064285500479853618289962240537157852604905578527446378020886748996775963288371610591543970748130874298488548721084983258924876577456803068511082586993408934875106460569945836277694389590938383150979379026312665708746029612063613989585097578520785540495815463983460038780920356843462138839796144256486798103830372430281832246211817902054557936072241564908912139147297636396162351746889184520832142336551249501299675681929024929196253898184749025744257089523154033170868903401102297686167749366040061605711680716238005889702359868132272233261999205099651377809789235509957264137926344897689121681483513760643612431026458739793015589835463041865819187436109912738313893188036322914755976720214224312448087960810902929923251157483917659531802753711963120357598251767113737255464693648920749193896323266108071064485999549384676052434205023129201720708014619902458337027691744862123651234500615886478247788553910614092071640384359693714136749739104037241739766369214615570744894257209035115640775961394545653654523969455040836664592038491822656538038135428613136683852072639593618322757480577946943376286875401025539366294998030478535647525855321757223065623280827606243965906855862088420195728884504462088954514815709425955796920519789018474610856090240791702426474793560331067168071754365903993078049463902105413600833880876872496659492660824329094202056320472202550349224963241775184512106476560165406764859486498151141191442634933816719027570729536759158891759061718688340971687557037792838479185327720201903686160511785331509730933899681622120497877102661086864099641181260497293536398342267497918929258615938854920722044631105726704640513943838635523526240544655786905835153085872149734323487668281295870428232861549232970883370502706293365730706787874064519820849408692555298188843208285705840274049440850998812312557236885026732774845011957972789383175765911334096469701315898626767460930874970012330615785968185679103569622317042264152696957432221866982440678029594797377304177316590863761263370502453503080180683717431678321646321091241945608519072078981567647490021631675587026696606766051774905996384122952010999261658491822194390167898400260812843132395503532172121812204332681571208428442144824924976043879419513235183503494903242947895256754016813499595367698482308654358021258627484999613181029691309868186140139730845310975646200397783911988130621074423310712645711695671235162602237245602006483933035998646025035112065520778512262322305014585592107353923207954697191612203857180664090926496092429291869514021947184730044446211421766698783314570901179928578940768592621966162016358136010609398716051292229975355447590722481835567947236805697546981135538662985597438361479671712999135340378510419076649747414303810933229348183200041028141381750667297497617802948841059160860578617036858594228550635777691937436381367629358920350924360524865701214925516522748605867319500440266192328864278122661237198869076347079439259584956036733675934515538273958331102003695258325668089594196203475573426307463803354767377577303497438561339521216931195864677925173480545585462191504731305627834725259993435595363485453350267662221951283285104085368750691178800868150998094511281841245849909839621775706412895940060844648693964885121025065777582746500096468904711547191797958494823894345831433840095275285405484056832406663345482270975289773548767363910752353927499225024473140215029218813611960838348261956223596353509938763081962644417230027850025992488564118311091135510871328481174999589602996090693105375059447009571590020406722428528936756628412169700617310693650580723054425546890876230852561907366818695390394510277959488354724386153952210930291054571846360014365898451722018517560204286570769054293543803967771751410088360329537620186944374991316527954768362006866239710098032601726441747372500338790726539795740813172387612755533540190792504922765625219549368916723130638397890430782098990107288759901455759985533870682108375261772497073030363739339204868723713716595100736700929710951405798238741334789060779802867297380579162900251422904420487701140149040575209631993392308739960811161926427082163265362093264554743694335553341667602601086255537797426519088341267717902216188055283541278969376516042966940660344128694066787391042331677192250848274013816109657281889116609838598096097317200808823771444660875105176355540236875299976915399224988229055869071589941579561050867105250087045322229226364371792955628929406957791348253714621287890437180451366588176936871465930171927558309914425660456404493691449879742179435458357137794999368850800474287635956293693343256890468461800989909419972827696766951267919928787848063904516963197423954658862579536459560792002152388751573781567414760130025206087525907018419285236761218823263458402021866173552231617315139155729109180816755950190266017746024524068315600099517805494799407768721952769162236545501373620265758083096195389008605826514658048742748537392501470402686132841140993444039508868698719931547141520603985305222255939905647947516142302294527003708032350602470521764176550790690345336630902153909363227916406482613677325528932794933836431751747127228001559035103078078515835331641823035120464387142904152079502668559662933459128848231756799076527233493585568700583456002980038893670806619508474057579788254786560103132760084660512669770258564296755973533157086702762260309063302337191506962291749980535387018445612502960076525152686642158983800302998019579491205910786881601715513358205578341390267664503685795849944446251364848286163286958506847078162415102854365601352986726690600221696453456028447129092147202314461607864487936300515198316918633126674416612683701412406401358157523304511486820406921950361907881682515823544078177383607484662842153732737506600828496858982793752594969591120245262108592902932732417840486579652019196377253051789867796787497549887112961663966128191051113408913167044817876827089818455282047759470959853774794142374994617096885180898156726059842255207389315603622488712707913864049451519715275145195758913270892231921190367168305697294677002911475670877298502761541513430625845201329194344359942570261430166380374799230381730445639462221415413963309750678138392451373684158743795924198583591873641847410240966503641730363177501496694997061927468284709165381922473351522704505024156763007901067656078146408706334644966115429994185541803232451418232174991385976268232926833775329002069017085155527721281870152484192511316080841171955930834950042326418034480225732075093109802443796418310600764206330602174523053532533651362727199105568046020166415304112605151733621686141127879976136716427494685995669872414600874238703159782177562281101937911562332892075837286424085590381578864316041633781025893454489498044930269362436487803585194878301152512316304974162669953834313369538496851810700202251566876567632256924700084266928352468895176374130632988122788960267834774651485139993942927307828024667990120338413175480212967206276792915953106519180564766357407932494816784237652729784715247515879235712498610201141865521219571630147205286649594044856850150458722006192927808071225770845579150806221828364683067239073589929694120736517134494572803177089076403730177772184493729402215595399790043944835495672180899144631597374777204481391127396402495654945767174170270339456468317563786420782069168745374631952287050474057345302749470433205297001554213926363312046562573511130620816525380929558648904403207859961833985098414442623972733525193635959194334930966407158640896604478207241061255738291027691499383099573471416135277686169169504862881660170153195693599705295581970540297008389824933672851408433670826303331478883581094967673823615158885536726717299969107374385649000115222402303245318752710148689730639960154278303168596887153827649979057428745565793271091935812614818396164277390771384123444528070888249391135038274517981918052810706305043399807900655957461867607010623066487766467221717135535190268579051003869196128575356242412161137220173021962018089480909579532286969975899791946561810956189112209732994649193901568126466325136853872866355956836850178519004472260377328710923181967344393368284064434836446224595860983448522288873682809036148743097336706839849900999381566120569674860484813044030523519179174637419341965957673729636336605774668559537809478938814821543794793806590737806339076301242220055802693016827797831027042802153091062787780594184663319977325769569882864492249599799302831118807057089895856554971068734020371890379180866285345046762176285384488501908930037512398532329259858610708274563279437031532182226755749534664552206044813745502334504381234863433693292457531373241219837784333377160147570749292590333732551408619280559356321727231460613106551678829857457123019102103478625046070338568176151541459175767987441113551063267793869763543910916115492503503756320097377332624629964873965155277584908703542378978011025461522066544749039562123399099085954294064276915487874431069601667252269639541757241405958797510880538084506530040835820202685728662925435616357422110197125787581939858917585100814958828901455110505924631219369588431732722726478729281022308563984817938701821008315465460902442674511969223799704584777271969281431419953966978209587034172430443387406314326010014625352380780396533147221898421997232464198355122911259356869616565591170025278396569914552488807157710733381572867629758331094368515153278406321006649628492462072800565574245965017571222801863958099445166034061912968111787382277699064877648902790380458552758016021935172164617469725262903881667300111055447301168917410975984132079924632137462936911064710084943648948940359282485691992393212665273576194478612866840128036720796369022579340679136581674871963426427334533958303704705378670919059814766592320094348323308247690515409878412750151987586349038499615469150560890071120345111309825566939328886070509685269779689092919250376857783300051507010770648537142898244781382698836202087489802357281341763017956015361958133792308216721604741274186231978423010502332042720974005824993700434938865487586714455973999393735442588951183180972223840712949097644874867956954798771583909951655063816105079554746654042951861414184984037371305902414595613192785614491870362420421764849950001313955642910680962053139727284497428254219318187559964260505907299906573356140774915876578287913409718975600877464472486021690035260460197434059543314650577401951885769890662124416711898744736194031352914684717777201335311201183240851398659430632022423193294937885681736176818045012236269154534529967076500106636856462605325715141527307418154000737391028886707258882857740707137926980188492063386338894076917985772706853744857705789332295887318885801761517069660649234981277188016764011916182118991392527692967400287837848547628739911776071001459940268010159905594985826998965346955669454607315165388527527557023446661223609463375264789491341827058620340793629416825011801862775144064082738227578057906713537906591735921624156058639905297170115075687768544060327737753837505799846740928135599455036810665606251983201364521497172639275652616497017565314255701307926070741881452465305297853588772681760808798010779644747905899461191091415529502818552337288036389628392055814789318701074012119677981638515053744945371506017252365855542211057573899446071543363035521058787594624878175790261880481049373550426459723095984173647714746837180957062318520831731587577532540547245711556237289106974305821333761658412255648455225747117208037319261282454397587822903312291060356150384394787996676961149226433271335247438896186946796596459047884012965281197224609510833814853892246421264082044648242830046952071268539092650099466133880500868426789916901801180971075774582722138460900058027772266972059646393759196203214592839120236880135746763802578301152793957471857797623225902101690689064908035764940498324954046059754098896672209680082642239288083244824712095109279902693433628126109531357401841296562441983751261522599515648792007856247085100736636430724550270942520903445905576707945099106791259755877956248911059815743943815438515598080346496791014533631449380374472639154892117448907032543816034326393196684882894277998504932514741508197235138831192848701625752223570205250840828789878766825163189677989842660422148341363774445596547906463740236763634700718699195811943293364724771976453782145657954635095872246951001144105801425137777699659543717120574499586349343455705257268298749574484067172499221902513029659965608812967107107940902461598689431235749598641101097387013997728117689982359854186491636097574305284317138037362442117037393980529596055190107587441072652233222237837665738963867077000198178435622965967549133698944625831258881540377997882277332582130163146078680525162200642814616353356354449706005736371735610542867468246337854713045356447838113470413223177838971823377757863584498563656992944662289424901818252574496541677025099562648220516153119052288291200257732556085457699273997813415331568186634416849046527681784013982997955544854132834333247253730567994723507518053177824176969934990376593692030404600981192595733862687930462374886746868513737777017441692283599351601289800356022682068756055112739880541312338355254961104005126081315282634931151408047656118054328935077531227790179295017425913805754353584829330113539495797897889165851332556755776862994580401966722527540686054072854980936071313833759880161842590258277803801108181593382306240117764753880628302541730155550250025106698125540636763394483916147561837843972935208254189672281261098658936857308893728103196974891822152874436728306055950903776070476135586066356663474166040255345781086073896337514304666564614777331087598373215099272728046075137000923939665041110260112944730279670408342463796133791069410244901565193581066179062766614652556028328191321003918237131386767742380361144717561450480355161728460294232873103149167823085653318797175971889783078184858378880514788283797144400852818048035713448823042486751401125614716409862248647824176893114025881620998352980333440458728426994118585856863161969221341836071080464222905328416156728124459309918990629913021729323244535182034868301260079672716463042001884676817948536006651368231031048320249214340081042307818027598697759045498092992798511592395547137628272164261718624901521836284426929748627993380839813859182097968899032970276778961959753275760986871047818150305899832314875871891030711844796153897153086456872944482264239992610947104095571627317509969539353272335499048153940463874864979433213907250197737407540554416774498953591687893274543647348581283696385841956939183501806072233926796218375184915241107804762967609099795641973090019430900081965592133683898772263190290613882372677686380173783179669243661657081536466772700483245613471338298562920284105041575108074963193031919158048987772220267551500066456227040257320492649341206861073174802893683776188003198857894419004038028707162171641329422462480716944992960356292117760375041334706725991300635286758731761703642483332430164949366158281283132127627918181252871382062391739013135628705323143778972348374730860582065693683622647103593442502649176884799723008306983459272606266609788799825258648041015074387056613784016882659672799318168540471286911359642414899438135043112195156734021287600926643734947891267133504046771603471222686060151170100865584690534037394726017110518701583902945992223313149900002468611238082046048733761099195417734741426940816978939729942291483725437692124933121960567185457569997437137620284730723963978976685902306986910553691423995294098484970399450997417520578051774181352224245823824880210570657064372294138242807709028442828909922255279137365651382039088624909765936497972855620552047222567695805304123116842930438880101300815704527430584298716950492382315253722908176878939960101205559481003066696337182353920533880400929085869213646067035993406984497743737622487276923695037532535479602678397331813920579085012562418313744793882913042141512558523929305195981357865544220043453336354015229145794338749256735891936474412219727205777694887461746988379925572591402246878562159297661876683028893209257057282399443011570872041197279493160264453899249426179204583837759943480993793197563906832807371030631604588060707952599647204635374751240480224006785321706201653897931379193382315118537979884942175821597013071789041840291235485966671714924074409498717412511040585980122598502214215430196965046316365158755861721317939075500802108803872163128105999960494649989697474313465982915835387688213362979204986785089686213628105429607231998401009541651013241463013700197440729590290976572092727214933329326421970995728853615926889408431653823810532545230348041940908404698547024909985533276460356523799555604436194539142331841146310077289727267465920795085703865275839543975613089662362197512516552516751774896311327473996940125291824130512658956601954378469104698965353500242499820643004856230941188354643296307328772923820850832116401317553266609683026167821662067217082006602463056594169642556783455240029112312714094461217500138813632098916884218766383836776474609135199563690629745358055985037329918436369758171329155580606689817664526525928397134967286972822825899908173132584558400649655906205843238886693002584617538843063719233805098167442069630389037130107624304154408073750081862625516914307885204055755942366545386369602899076806086790950981053445707190326255968495556070573221343876259774355175592815167377955310802868523221776659375356645992962209030358264152833200500496198668717064314555266152221977481178151037480376358308200778325108906772293739723773018542119273656344383222149903859657645950346158679728920791978155126753190547607019135297559029578934369532186271288048286109290269409935953559486071678289976916301378648022347130871648478358108318816552344633514939159608031305499590953099296814114748289086939124373426566478854503055565445594914495923895477613867072325089609711455294595029235587507741633296531877513277177174687246355986704949646651030358327984743378315331443077114289413248357676518148146264574696216189156302837507658506404462620515498176890246693532937606505220479850475155171566574167845361021229921644947212293648730781589613308332039173988934611085531918606528287115334092179219035449402912318815929672198545303435243505985494437900278063073655633419295393213542513358842338242686099088163968252879365570644518252865758259913134544728128257514686809517628264947620290277170907765291374623486236232196811876307574795916066658173645518656281468024500938027199352287181243799723280342820996493525210900706059212961644409103764924532849906596414001591321617689726324873273835370219493582230990860497674422736538312530329368327165677612649194504434872088504211870759886215924560329575163009018374188774893221636036818236002553079572012900230212181943712341500879734130593582500750904322656387559513609711122723867114045347154332708059904099727788981229019687459909064383188539846614530641777836344609929793437412224087623841609769409632368913425310205165636837950173361695141110043500918230420308697028521303057919361266491013500452957020143969592110684458290324382793869895454037320207907138686001459469328867263400474690498791466956222547334868777126420366341071016904609907525300048507655118933512159485868345557487895847927438436532881987424773037704904641031855338531701196176528152519820422363050315939025019995117854238745866933523552103052289780441053035962860384482008830944292117648450143180464490990706288451958448005851984861697936491066482877385942468605566200843517181600328217027202617403052240250648701001282609727398536206098445360692259540467757217646854149807712804558059987658692409529109624965818476055544707653152368898363444019980135040674852895150902796819745291901825783409211097334727931259499951807685516385203914463981126747652343270629580829670961990260666843637944792428924277741210199447491962236912648480798735569731416597667722343266833972779978462558288068546853748127196832232576169576187115048605833433189707169823866282604248312707184687181594899618392771279677427596199865523628925593033554165626234783269820848637047641365830622547159688498596912529312377341084134462817673610185835355895246151771194069683643952459456518065551735367336120297095257743915443831627795882511805657397851615873035607089826915860140944790956506976519537274392269049855222072508420236960739746389375453059359493162975879558527959575350084497370991924499000677500709452148559640373296908296352925767438202562976805903794650158833632240114044587477497128461333939521514229942472722660529170225866383309940346891338543362184121242026215569930635967916882895893965006042730621783051864091348548153033338593794230309987715491753591458221142466412184968944021137489489015127930486594202001919283082296715360308988979588401436304365388772908426432514702453325704012460414271412627361525342477508703726357726377442058932084242222480185037762893065435880737956309445051592643706542087979926599648401264371056046579343579350190026829009168825004318392417284253165217593667918258439117824208973523714609572109412768743099225522251107877187551174182047358797315034766932443547690805345238216876083858559579265215412402181728236045410451747644745809468711874596813708038922131195194641313462587186394811177578945411489256806845046423753644738912336360772327707325499616561147345927332242859785809041412719782276222474418569939486452876774447628466960722666084227766933089146096052440744423791941919833161191549588142667905718600191887844566188158474718861919905016897384724403709156603475076966348933628538021734683574613504282258478207702994398830658674148336103522121145891867714053296242158076263646007303724636648721299674095267961970856271004078533872109087449901452193364402778651049400114461524700890484198936223134413370982609306864341400387327376167306405518258952952934715405873702558797648236798338147891505159436311315174708993015336810736123023026630705385767660920663512034562094961989519633299033113571552988679008432699941904277865651923518262169664906397013123745985820370100653849946171327046177869353819136561661945032172427560888129615893238876212777387473946023906700277145406554846904372502619522817988951626719662017576813750176866633897541842890683069731247406831091634630275513710764097827254202845315521149765587925931838549184321736601112857604231395128867222947451651965966682443773950692556146465633340962600112128518377552157755298889003008616930043329495433069998787092011888625116463447923401445219589712907035836879221432900199373908741041345168051713021861129857878023694091270855999384699159659155191273777529058541730161443261282091676703521990517932259518777209811500878328616079635929320940248398128632389402952524299853781048203228987274691157219420709836826717035196603486191258200349455947776978985380597905276080195460902317113358297267326376111916733943137229526912972266476155229754452439923261555357837246435247962122167121489117957769514388689915835591129727997518253542849812398564409096256319364276327513433931956727998075142696854143342554631223423012427087851345502849858868414696793840539955294920969710979592890890050390012492609347351826082732726971818799400823783111372094983352364600469417899567254567814567389167843947777074631266808382019403933082063379344162148335769549397354284218099095519456300562053118237773723017642434778964848628974784513078278412830984664417114121655270564061521808061859282084163947620386101715958311878171240832847146562061766896989082280345303960277107672947797321305554790025516947844582348279022928718799255273306501523371441662806608659843398577153280529690448402593356951413338334654824450935430271697199105385549143595126568859594175489168947244540941207977881901935974978268688108728046312798960473805673231864542586609001087501790298720029067341024273553373496452225367403079057043272195450955432760658107719157716389542915340045930204782047933274364132885148054530124720485277621522227011291068076111471754975952940764871316958377072813117684300739078318685729628240552008980161479872205610787236607407007641935669704234398171166315552839978337571403713948358111446507720123177825611653247803742275230957635730651934278130088815310878311964651251793928622098739528128096157927749409785140064121578815389500654757733020345362270272979646824765624328636744444621059322061034455357923386830711494534223837951202387739327192254497879675715465966896440211299660467408294124152500769312401498239676795549993172628159035277500403160577998281896326708935046429449934934038067147389411557370715829411259103448926276199873201501103051161926530919048921338578253871426427511441441683166405677920738935095701904265737826355591305931382557883265167761069601897510776712406732703431592309160555934195251220906337967876865683000165743293203971379464734494371137359697648889331339329650340675428875125374436909816606053631028673164277936207964794666091449835396413879217641977868635651217132558938543423210347738833541379373255256162334948947965780123043844404850657118226267957724398142691463314473331195128088047239369397368934300940079539413849047166449423243562489943176369059142206111701727455111916332765450273757792090602134034707533231743339923189731947844438714166955188198958878737437731355887789699112139432111780307912738726476668223020224935629074255754575577670271542503396178952570754903545399243748102134683864211800778445740813186844895362118564169771790823221409524306120123428130765988142565223352610619397781935949021769299554711051082578411113235976781445490295538105515783633665885415777306355597725759429908703114807307880889158894298790116331253056925398328761040669219986111428098649866186857267667218145380072369311686223625196874455400022514680622406737316963446119493775981152931367754205757955002497520439604138622281329465859035062720809160763114436413758289649654882699957592056388847151380239439110337375737459201216818179140533304811868445522479003811594291425907296735406891402808533380369821134763047377897768360623501934811314832448792150307786481764707527020845009934026602809422665335482561466579244393891967999807804871568495225233534036520139786541904091382376381164586077225014129367533910223638597339174704603667891508034936790280767244483765368141441198598455876266212664885561075558107277269535375880496110947238491533898157356296196679823720393273245550413050592224201374046032854269875476305324713053592709342961956631669479506466396945868494240357868034982905788691116148045842439173838397413452987525226898224438052499588861943318418300653442672063326524478563426203665284430491932218558484945717781065194822883648310040093769259001305169109749196644118113537767953139924212960549761689019746484170642472723734973589632497378388732089424569953724886496273170639805899971742282997077376616371554879766505273585867344522362614014068188819982197031002337310892715081197003536107899000835260277332147543328375033383448271449403705028606240957296082198767623126029841792207254725337125401484277245000106909361594904946129023831377542473778650220703860329159068451703179807078527146134650689160881065582312719083279537531174373461583805886287902789122260086526015916679061891157532175143658102405567193060570139491007964135083340223839223299309842127252593234366595371583968054511846991899464864416341919150862348857900712514484037559275158630029811041530759149400558487856919698261095224781832006082682096013733404326458195912176929240933361678037907511474270524778234796041263934713361343794528347569098910244801657111571681174549153622998655194109104784852093479091868370129837467876895205090740276723234451124808759889740791669293494171916290985191209633711910425142971206133899948471090402734160406380596962459230359810540650651293354701393719347665679162339389271387637548424401616187917394430298173525202316300270461034943301120480072304155563933789742118755100481930801629243397747192418557905289049481713141735953819936359282945590469038235957499157158183974066748041280632338610908118711786399052980554404851202678670056266317715114558475089041148659078117663756933818146484363474669865406507419575155283206827184565224679622583710228236811041827346544507384770287833839197530822596775603455762900333045460833787764655216356054777610560964668097774346338465003570206241076672500120070034380169719132834879950720555020788316700911048370482420836389103867079494705393631881444877783057594587163029302404153437956406160063944974294051960843579069698376332792057865866422692743199352132292590607689609994339221115750747769422415295704473091914663659837271405479649567766342386873188151744832509966705164346640490635958676181350759110588141385058962366855571097811165635653197286634732373373264949162315635382795399555524502471701900967682282966799423875910176451016392631591498247263192921046156707041587999510785687393805093101913321778337275686732228248074481017966704966761895119275552727661598116684391295913668910286228457653985364759875566995198202290316397171064600350498584025040808234250469800332788626495895569905938888409887269027204664710577425363463404043341843962101450791857690876687526550838669129675179935367199085826687301796543793552550649270489049319765721813308861122736543021970569430170974384637444430937734463324466658897948161600342521986158745475090450095081859331372330390707717105415247156845111136891541521074869145234410236596155388515800152824500637103231582979520373178736374027940855108176076703473361332197732036443681254734030786251263457492826917951294944413101953840658655287966415006313599642051244045223732525927691041421169030627609862854543711933287488907864202056412603289488063993308384650413168830677166856177077633189660898756654500771285362167199402878944001895175836834438982145908804089974351163793713503345387785448124375121254223470330755377841154527545899492416943780684573192010000727428668443569032648175155934025098529206618610791912686546317672106308110658809570776499607071982927700249153156432154699946324382936399020149871156500620238370446055309527926709858309719607778524739728792944850043679720053707887777040972946754906921708323080964446565119284812744204510742030325724560098840318955885352091510892891822715041297307505433419416814212697758108502742087360128925781779652729674803801451996404165288163415028994951663628768512313018808203884962462291395941547052966438640165864186208580659485750985500658984301514654948417372784592152762228506294744778034983288508056325783975130819986161275117784797621096250356037011163494154599298637875436486947588683592376356659539016018084225005582447999709223700442085843679356002378944682177279966969200795207437636661993948589007217554718204524947190170647171874095479326418263534180691016387581052321676627849839725313666483222381425516617346017810090219197657419035624468294504865239868382639406201378635068033076269591032049341889758526319553693108603618443375052853882697032745200056826804303568342104018410139815574679756856601515582597475382544281851862819757468710898824893482624564724260891168675179514200280911569024767167299904192304512111041264777503520122933981073313507396320571978777485388536464067415861335868855194605017240237025855265903125084776134767045109404397105779066842869232030186605186342723248078239699442203161174349598312441258359267737128016293379651402327452578485672524053210029074574350620796234955947373919900594714566144384644801664264434564027301293853070193696403081727784255769931806434378619329756742159901328311858019297355420213693561527203192334831464685654737261933830712837941586826989597551082291084863378996108142743563536166918481441791220883275502889704824292023095295306408276555373414717588881189363794679078353577377548186081171183002450797817841883975016978287364328713304655021015096448526557219895988578081384249260254173662963851300189293984079000577848300703362950373221538495298767100220433047198906973206111094273712322370633379371672340513322810700515833572407481776860793289381633018965529990286325236747972019291682167770330936480812108291041540790884355528845135487431941794391961348033113804271977584093304256989364398203475806217365461684806451050274308614920544980219827749259206658541635812849283535533332039971769347453088233304358872948517283722002425030681517834475724830487333972234892615492295292400635029024871642782102251355326267684244147065411456060261635204851992305309561020119107752209973847245406647561762963068349054638542655307924432169295845508676096327345024445806473010993705554325547003619252245374427008816886540247346986563073101524923511970311483540056270415509570719281211587943671719912449080385114051305914095149204721057926356727830766040399209669767691534286863539316066555558776022938775087115650248780459529862776242505555791140490634112979901203231980004735536195080326382203279536070379454528506780783004773080034957628598030546051652462692966952104625281921309736556452080128915819673514441813935850431617592007757770235166753713410998735358417236355598857456237580557117199267304469859437860436345937068086812665982057583589519856130612656684211181464166002570948404414208606508963691122163531513946997492276933634886667802333814267729429656501608601804462630365701488419502438821936572856764282752354425050423314658697930480024184745976724389178136286044252177541407520360797093260731791874553841515925195674990297414468346734964774416459205807676783286767138090220467276046444836410523698674551029603025654521217877448978182204558580333985585234247893742997964906969795524612568930065253810081498093051210524119975406936499701018637600548020377316106241080294195616991400462694448149208590131254324739194064491493142934169113289935377254021134400549219892844812982832369307786562081698879557030177820447002480503786873658749620114773252016090888672551432791239847156997235575380189428427838368616938775647176143538919658345737045427934892564108358770026218307316917801378322421194077805010945904600334823057846124013922122415828644678955977904819985674023285777379089868839533740880705781259681096200086630673221958586845427017106357113027333530921284232617453750538774933924393631822211225439139113320600970052625005459097165309123701598519580446919304980798470475256137390421501664352377622985712721697116432669153727429853926875466506980580244157221732839827716808938409960564636106517007519908834068493884153906577509768706763985871655376922654481043386750587849100011873257632505230657189758456711788314698075525818665846744524692856175926089053684730346432980655158869710397480418549278586999734684943985833203506515368813012115427785456997651759501139163065519171982730684157815693764977343657482212229059513721913367214861213113781477744238487958928133190318411737946958347522517611748170405070443688382264551659400281730575288550981875438002919297481840275571120336370666576248824858560864021760447950309687833411708479338285482567525902365045613105973364194421267381206515209156455094891566998801621397177483921224594044804402729674825009166755546396585877652725551454331800501978966542858032033738627635290669700200968958855608142423790898348259623024708836974110233786479122100879426273442555106716172957090273477058500449493307340448765610276892371846805759462609214715988792706990145553542995917260514353844166681149046991048230532589559219001270097870707180370716080370365197669850486807608151992928442484048579385639543257676907267455145485615613867714889926548326966814893364694787650521242244342885293365223284852411975009589658606386293944089184858464621302593411072356102832426162304049334341602151958023789453517203187647450698154791763716774130847077513117498667524694709005328821915255386584928303575447099839623747429793161775935770803492218178082634159828485685654011901744935569767936247928685914846957864927380718282138662902742945748769647955688678270623023807335872542030353505756817477409528582412465289410429328513940059818410037010096111234533802870824724404302928925178537361605316136588321612733402233370776949136773873993977922509788266951153447797213076533644246114573080067825957773952376211424547911375818355985009632035039598870455447315544328927100104431035451373277393987708041207447497159148687184782841052302063824333959629160720106810893690098018423121200092114127567158246323018608581581958909932968539072541487741447587816180822671673877185793887179178699225752780845496423559644746920582556087305823708157074885194858348133635557317982174663177345083208459739676331237244218466533588997715678123276340020185242105035247503448356450803383718710409151630274298405114631767525888470020601783678209630446705947264573061737608457714956505843754785873900930297402065801689365381471856153252889126224156860811067594758108281913950059619524685453205367870910427583996712902067404616448980154745536064901848651995865088019738039876570599264632166371797975563873341441208307924839226690980452257716021916380600258888671324085699971608163378787444925907753405883353029527481336817055651286132161403911382319528909469833678211660461928998760219710583207718623219754536546654185807674901436578137034248303072955509207171700363490861998009557302469080938975898503307526749237886178426942947438119712032912018600270363191936855950972447962230402945926432451226079146487590064458573767334810487969997291052209624986210677450716580474074062469021999518663397382511240405731667832108165854693802248686967883208236190562981706142601592218403805293060132697305794891329047210796456127937142416503220365116461210186621996827156737481703608723849703712047901525175213350211097422607072999719059300437933017671729287467996441499393733448409872815066925864148122174609950572450283757861816552369319447578403949988285695868135410811421261445907443523118450342402563881153055430299405424594638836413859977808120486647579788463990369122204576382379020725918964194516492041429477541844742252904388682742070359015369244979401213994744600557563546352936858849696027668712906525055900753236648911073716575098145820130775688614275292131776482314280124224598194074214775992428002858505417455473526975474732220947667911058645117944886631089376506743450796157772167993808993436320646340372902168151945783594847486120173098194413640049739234128083945858666368300873848613747568294002940130334415384430728974430036308710815550302199021714292461583850806346426350307154546925592795832571629139831760226489999124483231907698961763288480059748987807467562385517021329124407012506514504557171227732675298437422489994401020247340597301829183930683767463999227820104115400228631599739027181889877135465511952946139169962736989175157124288885392860311568370259767009672187533723275550757941856267118743305038205537764075326113698467301372036215179946269188498572492029159805067629856176244789249419326819437182261830548010489383962592551557532114160201703929732382246913051795656151354958640308664202018031247130875146613280505386440555004928543323189717789050291380246049416977850922553273561557529315149092904642152577778370582316474234312939973462350588110556110137556269240854328905623796193621754129402601438011934279230576034083876769748264685646987448685203409042705576704025369544901850344556178195527599234646680157922251678043959065759344861416584266814969162244958783025228166775394414925323209376823520871409562842771930226487341669137936976627805582754282246126893671441953193546921286687767735720674384974728439790419424248566777722574692543129113805931411642459798299321114909282468753604005156854185971108485638791818872257928001392181529532849494429077580624010300112151304665764998332953944753958286245545886706799483865035021767058011533960616550868315110602901796454546532797545136450075675294942686280076994170999559649009233345377766155592402418361761451005415946718885619821926026070299618982862094627785157770432650184913448927203234826348518185939317633605172904613624281106115499154430839181571880396243051952688106962797656928128136835701625037775062788624278698423115170738654552302080391753559408799981223605174318589355785641214211338728916208605994744207123576085560129252236029440264558456206587408873357470258847904220759596020274047406215329852013787437004771145433296030171373981350240848837798042527772979204557334382051535381109676443955250613520200233418579868465168202642710333452932148411225811906892684741807011154585417241164100748395071511821745524618954329465732008387989995266511910644270803774202002352518025855762799523235705490417997715997290083092301569017813298111164975912819087366747007477169170828428652078229096866108600129084959617149345025058117045952076761828828702322432604679276699998006771479152564031295260221187646106763803806916375609709481746485781582823631197153319352845606013949996498414122771057808215188980750804247722469534537755073537336962739133472547050578779274374957478435072882251623479005167171480909118221232603325349750684242247901185301870454481354046749895861498747995164048309797886497158073241118003043448231485339122633410856359496013486577276484793010248199851505521266935995875340994061066005585634672568405770726401716600490059357367687730314734163312014193580745871981083390132682037910248091035984981178563791656916966243514995622582183739147674624933251561483896695324955095287547136532071928979121345176721150988572862704008933654544393435509670057923664244423348589020558813900925160502842009296864995477071234425381358503887481501176153206924798821807931274217026697365846094952530877173292699563776615807077609106494703626783549928988496401908489594200180468784412307495031652307920578965835026730002516482349321252485635338925663991728097348093119697866028283280469787615677408067315959518512170640876714222734568125762977642305541076855891253807691807764699117758449844025327725436448025160614503221976887004970954407246505569063072051243661913451762441166831681587292732670962842533300089409775579913968552348589513930344111681060687831465129880259427067296271368486279217702787056523694246689028088523442162592096729992469701758409792297617658409580214537954153623070977246804721169239150176161586145471772767887271763109583428125121859178240513395446999382703886301291597617580581273085110923535026424826499807408889487546421885954306807986405383744541160513114027774708438919532605968327256054268824183672640608633296088945431890460181874954367354149423517649642502792781519469161551662620936686851655659289576108608616011162813404571729989996103532973238760750498295052725757981529531343482304169867129951832672697183040584615266605221381322564307029849514946342758096845031336587308684705029904364273799306797660898040817548773801636357367035502195740223086665720548669869823275844568897564521034099980204150490437318988447058441995050943661034702038482906196887985921164491828234369316381005593402993635414184267132302275188876848402287673330557412854591274754313413612065827380114462217998045139222214095143735798289174125592287088973717703907159232335927459446835266536631049521930473966726813812312933988530381895929152140173292377297157549288612604961006990701755515926189388114608309646589705959128749912409701337414159933794439716193450274162691622434107895970902597756992728383365241765909709131237981665538333127311546858819963908764618994366246586715815653759062817521957814721099759691163573216030528451270329610342341917618504360055111502616125716333373147044119908211635361813958364628460117245439918809748561730967111316898576788136908030104931822770590618091328367418336683901902851018758835957211546831717357687836880975810664612285237375863727755194968068674686325114674322175451578478297435399079546105483511323528451905603014082261484996144525633699615146638128585388492186354452519688714403580887969347027696320827107776724074960522039398535215782730141002702371091077626921464252078970079077946328506850534193777603559211849052727285404675451617018668606911383443584439812367412691181816698641454971899062671844224012465541232645844483720739610939089654539631762719981409532240087552441424688188598673751258700496491927922499798520940939003746160307541976289040479947589650272196554954361203636376168383616732090719775714529197022649765807036664650147342001806314198321396784405318246940957919701894639899010382163719689473886186839529125489881845891757421286437456364818532488632543786990879127180805262387626857895700949305962012597128725729597561560212674753520675937851041112238551980426401003282722407959848843759929340568458031570532348981949430520500511909753511798097161501064798284862172408228265050712002102639991609508855246782554063391577704538118070258161443351550607736904119046433975868743249501529117566163766887313126845335622023381591745286065068642818348089113409006527918240816127421177319961640193504748742206098102995972006240205660762285559450489208012876790903945980805627119201548524905417154819480449849776758820080931128774629396125411927459915052271214340281486561675477976750919699333773009605716586133141465582871767908033906237135831784421872815897309592942021261787254176057801717049370611444125073119695289451350818849204975648164118248531425350679815943485544037752662053009754972878825462801842041500869683323449485212496269398321463316097933266398910757426268010509195469451947389778019044189703750267098926636245828852128026130643386883719434397905848762500013164757154604811907493916294959641064065356231979424965903789111674420497354238835711122769945100369322643590353905406465056899938392223690529167306189777364427736230948246625910626072977228504821330112160871554836673924102778339677107852769703314154094091840615474634722720795914925047265052071791174421108561494392054741772049425293663944405886858636486090678797858174475716667893018229246162642740042220299355823682446790505309090123099188967292647111509506963771644165957739656078268519066182315183988721478732165883337899564380528826423370689502221017917684255483116432533397950331934056725379573649441631709518533260991929290084799976309284997531543892485020900021025553507057528759083172430577710201234779519624630824077170445049396153012631951194983285392085985626574636891965210224059296790530996616253170811133046816427739025209478062954364421830976632890446132219566381560236477978932039114157720723010538453966335688295877125359502455197313717850150406281825136902409355428036953661582346214700937281619700939177423980934113814386421084159448016514271415985864383628915953740922437511102811076032428198343870629159674522191921218039765428030075496471606148910280330278266794178973883660062895883222891829209213481708222664907374839293993270786549360264795419947720071981844075304210800580916299634390554239563590891721453554285074550595516323178573998281065956005435163838060039160768778161700428593761517165296013889662985634996098010654766769914023498400935089874775138745233473391296656757816800862876875514566569789016912023860546197754519578166548929933622393437431035926003065410660369708466604107573691268450650929386682995801462394106672858964816440848168853435810981559848896552256007544738603721016197907120033875663774580672007591976181563734735315797994862100345972032054432834835674546275575630240789021473730815501110633683993611709394985299213978224904710023047181856269618675800176299224572149489402761540097493064269387708288445113521719901144575179226865377634962906045821092718463143437562240613699957856182064778217008548022900898544160019438448752485468748223508497712169653049863166619324056286791029434104033514549396277698760381339711177883324841014453804074016420535911414956808886146850340392588918937755572914128857997453938723059973600095965737899001278324712115372525998320909365212411416082921236330690031912505155621157483473475916006552510305142767786252690644355361278847015793844185828132549412700670971984559341407266233271050959043299336624711479307034347674020322025545794134454062241193062595921251644955698493609691948030828300364789871769570431128235527605303857891923525755859732791845584145262226448670527991701336962265963787749729911508099168299195070048242640929502062366674473019758293958259021935111603391739613385937366397873121542270529568635531828637760589134120624841472659556906561139266836614925837634679550894482485182173999966710327163410655652384592239046935359614557319898873022866298291316768827578806647095149940376804208244664123422376540429806073519465507538377920101945394267879155531898015605912721698303066497761577805025381343992185782720068468433649618123976388948145192925739721004123769165506330316980208775617345305441578243492598744947821409105070503219789960514043168170181804480109976071535071533531461443346771312417960365347766219985562812846768388990824819666694158333108461291036001745478994970519586085326157307907502328514872730406545043768878104402386734914173286607117380541827023735978507924069127528914126420523936898764421878018764799085448810099869399774687376410249193280934195657419815870663332990080892122190205467768225157409939573781439179791777981116199706722803821500769795973746332020134266201886937580253917567238973054073270185492681311854723565932267864049015700327720115599684271553725084322724810417281951351123625726308599654350955804207835092159376889625726683093234803427654509473196055334431969333890075109076540952182098007232559908604205466724138356824415976148538097847850320344436861742561462775405188701174004803378158743732649475497266142697073042934715314010718243670494332088391344363648093345135156204965801549787100706763743148212586313882880500312054261337766841298592321864928405029509985677565880729334147527940580783660748736874565826199086927818677867043326528007367812033212619422369300732416695569927963394542857093512922823221082393058369913768911924532625950940278360736205117088565001452387901282815515555071123121761068908694375610220351305883752404067164719390347278631895062315876774465093183528325645235327352703976853539315700751293324913881938432711907834149126930735673130302640718402815527983406137860968395646808759917693793096380902994920200960216765518297358304663093648823304331513602915634162969287973263374445557731570530098576354418256088225974447283030561539907821900319500710764719974374538043222212617504049715468970720794645072608707687186493862579933305929265627520868658396824617502443675687784492009660034627165118355380023873092326344630494508949478951942038453202109354120914307015937613763509536186951931941330166361646418964885683792727886330607376028515537414838791175154202606163843005235133377254451094283784165867437899023423743513469147626609798447864122065332171850055151866694671728916957786732199132275078104617668657840942240885471632852028729230155501075625375367883507800824341140335380140368316983425375802653760268820614221429262599217898176828637080654551048156173745838183493368983763986870364892843948994615926736950743033748699514719199033615967613788530532125795657715606355853089463389789095981062718752299216013536724280415655786598807862276520817532489629741460854187430196116572018427675770242882517004352343757361926305038816521364244216402094336385007173422395568028153427130131683421706572922614185652252508110562962868971071832045395821526633093356626650910541844672498815415060403447576345429241211494689883799468890649972492816894333723206667685403888874525640964497805401165912400664539590130518354146075772941541000520620453772261710462191600488678033824779109597000176755385601921992868769524047794881544656484854157339345286985121991385775749012560117567052349080829050118270982888220847291996683395762424902589371538037414609613901798430591727681484210637130893781209471333263169528112685863905268176458507305659451798425884915533530031611852667471227546308383714190352476849420117498126808802619223765936641669653249628655428460693782716771666189054316766874282397400647020576191817736149891491426411931863950439557214203646118288515636775552777677333812678051489761726211281485586653488856916675939899469491456034209570323946134131304072505334801061882489845994782874947423661719884072419536928815151008075471269947106798959269910016084284031002650155145536908976970058568064242827626816316262343216698225047757455587440594920023379279657336124084741003327044369562141314355975420816106718134629591759694012591198206924887391318382000678024642998484752133055596622065490600233946502230049414622822687848898639758746352563482466081901394215299393226936192481756026153580248361027964031568148768042536554159718222353734384426469250396088746539963267077194001708276885097248682176163765204081109575841268357232371617314527372481138141696321507697875984417395965263148142199220577186238197870719755576802550161296992800813633661361211327049242934065604321773031972510973052474676493641584247680644824431440828375074784058696493820204665124207317935746529690498101845098553632969344826667756162684776684558196628607418191198793598234796317212741260825788863926553076857733299364448170105041793577203323010787434770843454922756893613160036587834682486303168553532416360930247142690636966292949443086417136407202158644544981757088331670169024333945023994294630636806536104901439633547963018302072904779864103977869094886454391127033959555656648069704487510901714431989997167339007926024954088381486297441982931826122603058874967279475198504719311142733738661562309342299157307118637013106466816442217600366629059387182534727507038595913604533200131684348219947555032098926876107696581011381085237227092695481217846705069324842549523615489590277401035050937554378388947533235020595648832221611376903598982462140263456290548074383329069550735920441244172159828083606801274733658708801797258368580746270031115297510088353419272948172835099386809204484610295340427612533060265487302336922848126819341641241682684066702035818343260804686083778789344084589100892323307293376122397096219282327684404772494533135279359359721778327923753687640189932392860685718677362593641600627934493893309064623855601639819214458850109562016415136750705755397325043641372121166370411567729681868870888068118508667423802598872842858036361704068465381204075877291297833905106291750593833985860287346864153147934798269452890759007355234541136900127598843192231654326369268958558468394824163791575481431984428968215565907783877088756624509349940263737791093454938013351497167276773305806950980998798887872628072369368112169045901087629723811998773047441199849826229162636190743155444919465197175385015936975391053450859483370375565972350630619382051793508354151341831316373563456561497380130120041233008002981410715520568706126246021864162182499294906722575945723713505889531617198606839291762551983910024854085410885615219805374764690991578735363437176830525085506170515038116253258324332286108971011639137955517166045900253494162719184531807606456166961883893614884071699110866361887993659496320776608512600271337851665658155722577398659800763681274245792015482080796291585671347936293097000027038864768279035057519101494371467960975731992005456309559335557754144710207756316410706637777064676562720698115042378038657712355812536096313189160994761661915769942630182772471309276310565098219220673577460577322526628121009910750402420880418422428498627224794623185313362517445509805093027169456598562859574173608298951694052028824956237171085917220882921859610902271950467458486837059383153105079797843913870450978317090119048681019702415146142679373521589928575260831341942266341784625388334485852227028752813319019035292661762186959342278617016408452944283766309488584118539239792502709405654011927551832910786297618928051145393710140582618899822244739745000086151421724409161372406951622044231614142065871102531761561602081420357864627355529026823102326497399899379871371962206066475382790829594340465999875815847741650954102388735685114422863170916462887037275502865416715238048925540030827652008118870635045306352301657196316206757604088251662453871623214422513177340013669880346743861083615725484838615956673513919316128708514731815177622193953786291102003644315326971884310463486135247293050300756937551222307855749839222830057382122764900991370238768371327435119428756407419412372161696235046233950415034125602005200173054787902034984206854132626551076632097980626819729374339773230526643111696739786772126186463962801104670988305689691936263726157365388369894017255455606905213152343593316604674999297114780734547465515123560488065899915912567936824211921400886342635014449820518710553318599357715055953181690364294702538774104166354948149910287071804963806303937384499375266206104205214249028047050516911371772798103261672185679321232468166875754552184686899756206583544040461810177075451956422916549831774734282161579162488899973712728009900030064300914450863665162943058516602955615018070383135890698561507542950512460773969675275800573869078677220272677569685582371304899377536066798678601732715269562071016195665908747905606739653151090876926784409970283686814389720787202560400910317631618979776843317509365778142787911546554081324633919342083437352229364901184086118352543675518346694569644061277239697685274788687839224252151498022707373695217011676452471055713783685938782777090075026435332477570819459435517569063710213430472634450156914293789542134301040693016737534352744782557019189763607075401545266353245413282496795342713848907492496511705179591061037038401871138745082380089855475834239628639851245993193523329331109918152064601559307916334185652912313820303719364241705840741529168018443732173061504190491437192351194109152847477692033486694984924342799919106979625908523244415145401913622780452409199270153491693333028365634085787726627462487761723905158747420117235156651779944841963489021060184129415749444378625719055892577743015853324868449632189722583314870742677171127507088031605659560378607450710168629781349350404812375127425635241004230882230983054940788274281180479841592445713962633871056798152729770166678566963771427575965220280851981128277926346964079055462856577329643660214233064030383417949756618267798462747510413699054845045136472224938185390093700608417140610273241907944856624258591746826716046439239620411625585271022141201467605183347353552347125537963814403626788320537892197648583216379522467591748494599998110201142633130808859830448353358143903226915145870146412233822820700643376072282445515037893948955978056230896111695913895454157007614923333525519114840752494232251435941913781514878288542449935462535236317678863591711778470124254460155379755187953753907675565847322281835223143386223831801543306873235352821843369247748166192060311445175258274269609942419878164717511413102109540825890013303367899175509016134431479381962163568352694123234776605825271526746552742058479577701771324423507365655572530916847848263917335490750261444126758584907201727174022729245269622525795336885232476649545215231790188769307279322544415315733908525509870651437696417458613513284032125886439290512715566123539697881107421313079801953024016880361622926597623948774697812033515249494397833329465009829694777868278368894206143194015926510818417816246810449005150422186157870708619844971478119755331587849073755811301667214055529795564765812054622197631257463365598776524729583295642140084808804667255772791781875452824964190519438406028177860158506502035929459950021679497695063921341403010663631995602610152069445612840058711155888393448024541956066344376427305630592980320867113073362167261724206061494208038389238137516024790083884146978585417395892237383034463530278501689524031891403443085255629145982842027017324245386188732418753614479591428947486157370807938679741119440061496344215245275152077137148739095852212583053598382672433985516173451786934745816435212387341402921298313144461102538383117738162407816907318224698153295537411507709716114387373490709706569492707161907567506560974563725061488210843641179843495211428793449307110224007708581405424713616933236040060680265825232450285215850144038964539585760188584090864189944232453190140559080908094312640229448665193923479427821629158424290974181082032244325713132125075923217521034732047674868597120166729516815992354344919800058587348423664734852733401348828084792074038613134122971596757399438905209409773919217596913849135570580294716704325847687420418711512480869427352455601578679169182550598677438459241846288115235087544304752007154555557942681503807499892222944448655991347176837671104085423677518053048726571005395126733935832468898417790024241069580763263582667898133726609518625889654454542928880150352504921928537215362721072037411959070764314017086874800139745619920947635886493973620357559784513575594803139502577830254794084640592928617872339434751093410515374820343862324899188876487168674181019555717757739051273040262881764938516783738145390484301986034496887298807914304148370729606682479790650349743629622645824638494210379391363702799108038849833769161806145761350405257203533590972588384779736667858271137832133164153900354129558214899668813732334811780658834715482026457554664916123419456642697514835154393445120437231676469910912424916539195602793097413333769192820294185613285000913440325473517663637282058543298069852734440692014916791526382949822296282417915767824852370464063724009611978386746922423674077586540293365494367532513323648407400674817576114770942926726669245290490752775990435634762940209952101298458700502528752713852738621594423401064366472734751923005304202965651516745872214592381275950184221994385390832493332964478869048007921194186186970279296503671317236491460338236418620570657037845162061670805478492418435510888822522712492076639433414717317683733043233864778535055771621585457034390614061409137957908360888561030408361646078142439070841677687893548434920245552937578170434596338753426134130780053138268401912534231440676164874492217362739055055453545196887231138479841671054214145420010079912044563991124435493872148624140578696668080768577332912292200099462137140405924638200073527835932195421485670601007508668494082600032287185344725515990366964883804582703125231937387727020576128837402641886859038645134153108030210796051610472787021697298667402771890397596282021259039776082819473887646596935608256739213184353935154965355545284181624749441680664679892638743684364335519180078468998946457442053784974768985447676880829266867054884263314308711139992489673469483321797703215189685710951200562900175879557533709580280063605859390296903584624436546539706581599849603671727544009006868237428416418199223203583779487533464067816966760864330815882014083590217709048027667113955415222647409233949641671370139502808557643173032679142078999010618701936473429062514169515963229482428864504923950520928106402101695667794447302679247672274565145915248386765919945046025680141364358809653981393040311251859237117266044561328238245243300550362235009603043446986980051817384780534910833639308937095140395256774998613463434484683211413083213518116779932371462902350803189722811040949372168342212810238080373905944551261706952070555046200422744446476985162901499303074574150244113129307405942896334626801731755195949555053186532607094332767316450284734169089110340039367208644753883576071543841672635872785965132934277935889971795127333535575832064958164610765235519294031674557876629297014618869905177215763875301032786946936854174218718519470206069368241618009804882657254808222217311899656554777761779377225556015528145561795980265591230376852316438266321338819726590537876093612742021549454154430450647319572955991342249075527776152084548478199959068460486976922021075023333719166973643134722324384191122218174476699213899031615093847038708552631141096696359862411488823247064878200917316805115298803386426792340514188219255458231022413706033830988499629074964199125332352824532270851506315432670874296973435182273636680197511023518337218283271940146164757059305557952826286114492597744191550558878275662421439432012771756519633782955946938707915903476518349697485738495663424012437191827523089784824191182473733735289765229063037593566145642145296897305255582583960875952115376621554849209519679254251076101154830535984449004739884807195863765871494963810897636708827645985956611233733491222581078586346140150028689862622365565133556215428546151025764713893555564411250391355221173226076132927387352013694132391056845998178704446605015866563257689768114776077581084740428062972312843981812089134906424981358439398342519711213379070343829261484770469472894747921734512897722570858029951751531104055022146841430918197513563285196843722275782221177507858398823735611372266894998841914172077589419009361632776543128539261546911914754647421236785549329851128840773012887209949899374996483763940625890823111851262694188651111303327704165811564644805045260905306596798598576902783327724462618177441939640477541680450072741220796634110602826764859484851430548652756157328343238978886082592583982379287231351653849145005443902045384388560343586439131003691759679861840095186621814173676059139501219755952216532186450036012213530556459441680193584489938111912029059193977408016494810208079821591150472801969065130574687187136863382305855920128468855799030076642834076184548483735067363558446185021163644174409331387947307630327732629834523492539025832528232115984474290393951696671163757355853674052488619914612349271909892935489509940958814562292345426026385000572876985162379057534371908743997167201398962521534305204629231485013488814295592079033123206077088313498359127797413318291597412503117538721494593135014597684156175845000677299618262665249556264342227378837918277278300298524179124474810785891676603183295715138137160724874535596490549061681007989764885693684931645749442301887122139644885584245184035569437663718904141313362742848312631991970890949941993435616025790722220487436510986223686011399343993664192963752353291813573833757313878066597422563876004778071032319649298027530237991600701093310293812124477609097164214737617405256587642748992887172679813727353150195513382295069078495380467603840902429827055855964576533778773410403572393607353190831677493968275982536079537875585987127921107201462969091524340452612641374928139192800779723014106469820069327526291487691912405767022294591610031917111976190207268441246427249810522416162167983695862149423231857674180648812717589877911116968438665438671834971442615227956494828082029232505103769073519476150912437151864615980466622020393184618499473074974731578354954245847434963329983397518720207642063782300053195006534376809203353102459585806192822082549776974877795326050666216030231830616045534258250810295071747384443219935776349458443245912950099395845884966665113738676556229472217513313475894621749328950164807279437191823336376647622637656182707722083299466908382073372166182196558800826883022652753212908741126438636763599265433258735321939639619367209867336250424299544537950105136732817224694298454830342283135647467652707184575133967157221543647004501984152887534946242538232160428863860456865629573795641016146264891355990866587939770885989929748460882686623803417691149678794019581690031604994460256089171344636416375949231503933992938570379891463626684119572132017978853611853970360401168348706467616094732950789778593682541614310554928736116350757600214956413284350100524970253301668667831598567050997251575390155827130358039279640627072255290377398590789793140344300161140361076959725865524290174780611641620358346830033946287469855075211333847937879203100573243414145783658360795259042934025881847488706257971941934904616050534341413179200282036797623186692067918255923226055083518960653032250417930172528808659255267555418766528958262222997005517315460599150125885635621852067388260399324265061847052034943552495670373149927941113190022777729531212237128973382109692877905144583590388135029142243224933902422260281049847952854662920160261314751892515407427991827366746147323959152942588886091886776121916217420217549031265178021870058033357434799895953158408696499696201997190106927101861791512668268344700600376325316786080904566613522243213977584872093273495566004261067806727313077287116574384478667832812487149790501043264814849452922480670226282936845576758794951557944764638794298234279965819888327830426581540283978893113300687241968953880255373495697515453824085098581131154526106350390121438776222747726066141486714126626345339770795593023140906838391847114601700047216832795664113004641511519781780426795185091433819878768362500702242270078289574471547198563382948195280372003818002962835871652515406597472652480605792581681812907318181686501647499583975504617741842134818707709663347882871209736331191947652543800312635672356311857577022546973593481215638193804225607299691278567995726746419383448267643003846904053911450140169316028569396665075345944711519021452132142866935899622640476655890015550871710730438031178928167031892367255631704396416809955211548495277293582614716746166030803584211867431462379364739213998209059818271134361817849914085628099047260726591908736132190300288528018366457995401477063137115063454287570377437738653363315168451119273879724865211944098387671121462449761918259922632154040453388687100578275440262497940133100781871770254671611664506466278270271742558712073821796396286088208688168333632059651367023069358431355979249019659859688830367143949203093714844012906691787470438553870851859107020036357578491568721874052669612421664583544001468648092587095082234928915371815010597475549463363569655540629855324857246027955901221751440180236611969333136982146900425965943101735796390097853947870183779854594756642149208082968495067418155174908888822170884591183971031331703205486911361929973200822398662644811132246210989695045337300536961520945945688437153150959453232048397422113228697090148933935452274873667511574964990646778047383770514691837697228182155478880229462252572271293595370429688998939728218165074414623721007334573145110234840901158224765236862623212816915834835352600891137421350823910802507220243897609530478858547463484079383254142697757275334421190146342331073343488179529721609370755144196616950019956185476399457024978042548168618510346204126561877957526889861182099977789411984529822924482504444045172232255710096533218664855623246996127038169880396228388169112666324093956589461576749552128199436131019854034786631475023900215331780593328047254680020429477768784219381514187415077449377270797173124387856996115718794048316077812402527073447890748809990759321367237013408394347327440777104586658787174028640092773165106479258781518228047051005874361049211675609695814784940345465730655602224662835595730993781360550681835668069363490075461671406376243267635047754556389520748553043032428272248877996318711584057944042798000284551263720552315973800570099259551838705551928152138426532449740344102823439971102097191928454200679367630019215019025086877432943735087744552273326343641456612972975381504016632058017060946328792634552265271719277509069739790055855602227386311921419606186772922736087343189461079676409893260304924731816861572901091040641754399640202492334249571398208230351293450106933728367307193108429823603886691517994766673034595346337328996215190999462900305728137540240133595856844341436598049324506088579059534176058092026788340228416826517901820790257374733108694793502997705666675989725142876604280220714591021840758575144207007158004635806639760670856319324238296637424438048049754706953100604437520045705126179754609384114472359106874724968117137699372117630938494341565077846133363199353292500100576786659409865703859450477913095687184808679522609015488409321571972743362259263764920464906629501140662494265506503874905777004787819154695842985792275471648510581031254467918885147389346185850495496365909831069857969151593138674781405736575999362382674781508782397180538390542316620502831315079551692305633662243636107283464662969285311930287394569691681195311608611109286617429925561563797829639610588807286958523006313218653587136034153625483363798873690295266587992976318399388416512077321461208426484958510163935139581057727403094527251351640754921456277648084068289854961931640500044137504986239959589625728107150617453273573669825114397142082619931279777354598439641463294482152552329605175778757487037977586983873575691565103946287372967351043351332490071036317710163106880168148544088571495105515057984149532544600451104912335718628155233082381925008061796207617517960982602923346271585505342378891918247616095419644885726049347365439196486830016219788493417728975949395574621254396799509436775305986057841378000592065078953012206403473601961216824724988871548004812154218163481054034145154492279101836598565968953605315888147847400312899812864398047917818146292787605092057486405260379154864997691306286057363034651218660911254569618800004380661936912843426409625868811635166698006401637093550989338635342940397352495954295599808175497856687613624791069539423528353648265914775700460028972151638637579857559455699478141905873170946780442845557660163324685396938852568450315582450804362872785921271456205406604364274121177353503546041606638175997439566996190069627960336870702188103028368941132928019358016797357691914400763129458334009885965108378928932530475200770345090555446783812728061670961469718521179162960298632788591595578268268645641306510166047392965990540614163102669925585521980080357464242710560720640394830823514004237252024852603680138428469036956842329933396516188839189237747439594411422614790668062960411796168580081447314233929037046413658652708221518618899360398972927192141530159612097250873335262598885949123288200815232593609591487102541596356145739227334204649661250333905364522248024980131287337887674238860621275691779259906061611723045719040860886029854368809919510874769925779290662997400459931636889069344202449790523224768168967327436226862806338939915795747536385637326885056529954444698444751232433931858632817858536912489637470319330807935538216276516358140222680019772554818846338830348017076089539356440779444449558041467344018072824754605495495057507375012561837112346335694630491817279582893091873139787165135329752652572300929405243040877632115054710602940680657918177856472158909487877709878759799195440390723217299924836786543466758711469428637586199902483050773451670179190627527292799108990133899985205788517017098338369299894481093279143837258101744226780738879478879874202984976708719276631613254588941565108979518552837387522698096795893350823881056795653062054157790318717773070423644743363618654392781068361676113409922368901553793934394335789434938805908092315101051096699041094932353245350945012537855699499485834348996394662925156736099923837957850384838929840330374475831111510665302444646755102355997909848371846632600966410414647989580232405578338487972617698083902732160870186897592404376183808685655842749501819321823900768846319951732199189786256042633298367890687326227570832747576542374341586072727806308463644381975755260705707318582307855819378521566270980511019884125513221208909170283429950876842281026891328630056618386732298536045323455083114273310137256123826817456446342332051789494545964343023761946334765985695072726272155596860610362576802886971168789655865390781774349529721338642103167794299096659904129486681311569027085086596591034087862944848996220876769389942342649004452646942957689448826434691745938900414059623530302010943782051198472084160594921396217626391005428087204626020063871822681388515874826118856640386001928965917280343715451165899394430813029514488874682221452150389142087626272379584402781068947505573866469212615782240437673897479614978104785573351138688836675092798946612407415070543045820099668307178337392535138570017450180567382849797911433127959513184931649542932895558697534883942078826542245159866610285205629960011248635775132693682824813151797123346861458906327279302720679649794496481215211294928426094382513376959151331964156542873942242858121215821650088022255520374177227300718641398079018171538072056126475743173579034712994868041761931745144726735129001168906069544744682494957052314532518574614390511238747599394501613531361552781064974983497221242439005065105764007015163179077553052887715514514141191035628135243449500005937283481131566803443874477597173994666952022990566935249390651650625325579035894527101823295076711795701100571874719786676181215108867558810093091101604286636737119899173237556824916051503909294772442221187958234598830674741598878859030973960531465104304596875716102571819557615532825983611174800931061210240579716236529053186049733649462025350184876398349374412132645162226263352545297303195365083500760285563704638144112560938693462589155656864234868131263739174338994601293889758577470584189937738869435231571508638428086492067385982871315456167170165863664315338617655412353617205802043569962483447385374580171582426540871472218093973252273635459611100239368936137477263412202544595835106691947488098681145553093268116703661633278511881792750353829458779367007571162502091765857515210507984392106823442975369076945869818042199063507393700757620638834922384905287720285781299343881358303648498819362588241132967328606614694194736297462305357027893952704592722708496866888994137261105831678816185442061462645546571866373673951341007217064987230364750332444745601410981554497491630434651899975924215346436451229096052371271527660608940090446772384126952229647503242639236676585212659624695128043225172347464094667865283728324632240499737459167748976021546933931627849388058753463574440050298993821840980426932787741931054398921968072335194079389216048979971236604890804323324374212946275079259435230292256400218150908352177526194965791102291579702428031478144170078710201236025054273076845569245226172967941366113539335466056246126349022498304814061842435773022632017267850974156319304945911083913210318919857228320505615092956482530702738911254449666750765696749111610131928934716060665517834081519592522671421865991421854445551802690009408004082067348324143498941096867188297940660199884037224468722879804710656591107466513121785798700360578641787312195596805663950818654438535887326273214562873891942345992247729296066995297344063132899056298747209672450414625977946566989868198991779754530882805209070069732558492265110135465998176830151375704974649576994606251007184705653636274112852342020837477436264012693630510655846375334431886973083870146157914379365028096206324424144122727290047364372769436105104499328749311251698172370520631022543020106979624628091393910068938186912998140708952235049410764110077019738191076778445959201478953981544097983455795668230776504538339425840818226749852247438335732754576821820430261477708808462500070710110420636496238673175676097475869789046648112166512152946009912065997729785696960544500266558578580796257087533387341900240059371882860877917999992910515887722377211526045605361278147437791551751064239680253494591537190489115422185217979950607032730569893553488457355945089335504196426661938164955230204590844421630797780726485814642575904830987589166282143999676964832673657056720603711336274006448139906853294524362597193166509203406724133534443341286962069733551585437885006167940922313750892087678075431981029634604935441164758207829989193113318919517459954447565182015302808152489376486390767004565227201169795277604974467900649847123035277167429722650144672153823622522375258812540387251390192427167158295497694779200489233859215380765351833323733177387911074580567023653501896863241306083316580035935386240548969858862566241073986393406732528082828783898031259838278362170399804212706184003471274947443908891765661104515572480270021606616734726022599377145974400496105132470398879653705740228377411929311390950244003709145045177561614735828339621306015433260795669729971525808342772127235663727579453996339848648891451842682690246836651161585147885288805132927186260426300218763141817760459222203920671721783993947298707069196717767871912647166029893703901647528940829396878518415500770619464359828940143540594779592290286149755725515130995687947619547617741959543582220867039703486039258888790041925321184355410347388484526799195872288048254913446923604263018558845719310597514440770984560678151866601938837099335905123488360605964795672649116883179613840940690217098219939338870868211289423166402049406050505585727393143643139226843339513455242350993046992261044993503408842615456648786121056342531430399543387404081144927333323324230648843728710164752035860524435790168510929939382976134410011429996258570695575871324658494480450193162390223912273722186901909744935988638610918214983376959794603121615222970197231160308783801392130143360822584029770498667885175555592452697162617412175872654563178214376315835164667810834955648740710107245284447067631896532274880328189389478803339035301098115886439132046729633748814543677273624108776509587824542155236128798029679368251331669296100263545642165139771892350668541053892896178224612099496579176971864290128265188952738392176314002297239099473881646564995245030700455494019875913637276513912007262854452595088403525709106043261482472740842936103708076471215627512991376338907611260235070235821076049811487747968830326374162328649962194943235986160202442315473594459730998176664236759191340355633693700579416395864049098996125318615376673192566846019437348594901098967918051402875134262775970499540144000606280640455499655674405448169720375965576078259606996251823315330980880133578019071191380068995110179458953226292963815001156798096249739279572490059977695510691808356986016605439259275345399722962036888354672288284218650431588128334093609175489436996369396737313384747510015939953283128438153158646018755639817547013411245760988892816087151898219455208707791842000596637604370495862829132237945256255106501040751704402860517235815680720351697950283502125245615311993114950001363429685462648603173150672441592613153257926527706235282104897890179615858807102784871976403562386982927273237345962282405375277715535787876981737268188399488890396317593171792718792513996184675233273060571408176512803882184820596795416114043223858745724318580801343667531312339090396565083669715389213229027685387064718573987416666013838422673645979007464853858632950289023379679532422721174332181355967861404947748359606827199363271128474352918441887982487072873840161063169874567592266986608848787141224952098205030968743003060920724626208753215809250750642317515079193199198891562180900649427510677086405361679712443668747276126586864213280955595196498264889528527333956444082337167520972500277857696225393793491117181305526425063090287470376958533211865055449114476659166241840753395051883611199724929165571311259660700691192471147444279812405855506983735382000453673864505242658645837321878963455943886791044112772475807790713820126230202475866730595886601513502775099943162858140731630417593407544747570456994099920699753173727591633036035411694428641316426256006769537529951963807323713661783384843032785556317339710795778799983106868108466258256078681667087799889403306633145226731679601805678602111624751409913891596482987519596343846083148807490596824866472824907908094737725438591103014007852219533036910583422487515514532223303048521925401497448807257394070608686095344295556805796443602741975049239814213903112601461614074387351362051106056992542318771646859527081493715055210283850855349907137125748155890754487986132288988666130872159286543472953221365500962969973490732345030706221425387753027461861668758557370710315560457582821873562844984385203663267674801528759558367844502941191838403714228556398442302552645895217856669901356279638772724477998225279163321612405032398971186713597215658070504157326763581398584930535028165753573383453726295599277984846958550634741342877290981533722084329123606912101524319862394804223656759879816515946400695963539964492880152461234082567591214505799015765225060261179896726306252074754010288308902180626911879471047178975203337413533210196216845288450766537486381090781129378492271859106122207914935737640469521975750987038121079423404667578457900074907337188761847512530222795382079865611242907959682867716323427578534803411010876872404722180272864350273952004914826074815116336568395565619775010283775392781525752654217653070146247817200095441778483825561482236987493357260818223037558720745692998345038502996395516496300487588240257205048916875135842426314536774749815835537095275998571966777745898962132964830141483381970570174656231304490067703485768930050145252181057420477052111492853274899690948963709132336923897310365034021934574911324351822381385396635966352784311607785907208956449391450335129835702926714561874883630030187956502812449686264802695428079746488975525025442012980685321766759935621902663625336073400970105425317749439300607038675514915698566441548861036631684697417466042412279323974223478286788281629872334417780934896091177301218379169250485998932611913966634941250371523748295401519666595951278746163975608989901008103451513870061368669906707202311595889443563158326543593110856425861511471974113827240256342953326462365810854436814861248116213513657907744992599970829942256706996825706855815623606331051203224049108414024710007356241582623440875118251559288268921037491323265584058187635842508251661668063631836530553547030075565843199715767917170560256083888158538691102146933876561622453716680081170676117166147190387364185599237428519603688171220541266349691694624240274274290328854305838725710774752483612726584999534890380706009191739859648754920373601556130850482472565361891625856979444853984354093034966990520120281119910544851711920750287932916458347763622272446957037633609337071833129854661564451172150421957586932841327778937002355812642051366466738758578093788141763939289905775984950932118248104151007251089026029720274864307637642396552227273202841921619537817082131464073819491954919216823919332075929288578223272458056439999330039647282158197900885157071082443920763840422251878422594183939623746383033956684819325562656976193558660277937453738154144866228006630115089927105397025335837574896007885633231165200247249805842982186749852284638569824900580457521208029840137125857363323143455620787585684261558806022976291651130395000614030952979361043089926930873015050116642810473749720106345438609950859214909455618817476307981896670297567795116333254398307137381686198293020725727507367623885713802512925355663173524261971837221070567992944915127431905959349069174291365721597276586839631681188092485369093127929323383032078871077782426128095705354216657277575052559473589752736013905202678093938696600052030483302828588504327493578789715532551358998752659119821059647725387341073162468307258479267754343161252725470485062173105276726942392063728251911901126471939363457060615618437490392535607965684116363552088170007332125793656110681198897282985878808168830398771299300075648779493861099102904818288227463335242835157197231900318931699328866614180575700676450810327327364569915987141334899196770127419430675684565965371626806889866021526537597549838434645888306495004999643567085738274323218685062698859239870809754024654081424148536812223505207162060150795807112197903475499376181103646317228165824983631282991702811357008755576440388931594336730438846993133954578915891767588488564628328610623199828809011361893504434241300645337872928132944562612803675293820709455534476620261068328437349605484904157295361373775652935463395233856292408567892506868021771580845078628985451044488716411645554306680971561881362859773340555098844067357077592554626210147958880847000684410531590540831526405824424926003631177686472276449766319782787272512707060827744979910222260329824600415780536951712090139898080514546353573759656306296394304654001778528353225051524651265799106090100018550366483408590807586435989231426600228703253361016741737208338496852787337863179059552323732656740679901198304567033647590249845173848031809519572846400374550670417663860855568229737753622131452575466456646569536276366713616362129137024243413387799674547416409227448090817016565047452320827557620547407999425945182401426392146063307862059188643198861950416521390374312864976631521484478172513942837787776788309464881077697842436792326995490673946194798868531212496654056017141866392629161722453005680536031941899672387597529549461204446751475133038385380866970416653763451118341192484655413734335009232179669155577296040073565912661158556738688952003283511578568398302211203696155372941032302219747354037700060358404193046104718922468650661043293667882758277319775337312361733562742699902915996811520764193654807228153622543947830596221861114897641580616391212528324830058507151685660445141249220987922216837482926801624484555191258501710051635325162009945859711068353726462896244846421505482802746618240657860650729759295062574280519480178992746311551627744036392619815783327860494788817619957102814875010285985896142208872975025158040436356148964256847999316578029680229878102840496314384765295475108993389135494847974930968947726925877560348447186999535074168370122675849903216548845499026589277289588839503915966168949907059084410103414569640949907474620050933375739651214218896736475532184515817697907933333926077029368502270275915511799947223774527131498599879081031808056690115305089528123065023070372979764510750359337334030572615042689521775830177138791931706242092514893859033616203354898088806501027283007380334795607941883312576129619924520426681764941744968598722047242849513948943608644844723056355976313335733620950398030409103498854800043850782310581006570880493589193945295786925379946056636782892578595689807805622991173572186196398660871654930110087401364528122520923264408339114862900256179868449252997638262178922131428164124954288090362443315969852075084357000603102866637660592270593347534134816582896213852010073265247182717093859244884820706315425588071579446588081317836479431013594456729324571600708912093292358977711548996289133653745347081331751443806299182819934678882953840209353196616135469528360244336064876781342441387195925790901216859293041334195807982515270447388313286376259122650170945755208725964269948439080126256668691275718933062287767199633298935822119731277081678325018640308783050702892862010098710688463621769819687257670961022856120590322199270060930544866864140307785088745144203838379461638380036614098657001380770652033917708996559443450077624574352360042367603459980557027881298987793211860592239679763270993733181797714551759227326182213255824496292038599013014003115940217826891327550718754873041530288864695908283686422201565445145795989477402269975060784455764569176025984797021958382516931015994846608065384112730932135196664884860057147745034515118450873225114447228124502729067754333454374207620209055388696505504818534347864383877150872597178170699347280400275944482310361506486723412990560226736631466056739399157521034228505572661310074730438535905434407389211249183531508985026507055230665308534380846226187495509620821741024959231356158600257571675798957582019448066459382437263999507632959768327995427768153930508080586377376880546282964233948385338722110778651354785923577257752285842732110296506937220143731982774534263539854705135795479551607847944604925765071307437121720422536842645574187784023850916737523971740300727504149475105179815717649010025766666673349246845103033932647226961319994944827271114143847713129657207574810765535870297826530846187930289561925674236436614858922797826828832947948654306454736256410430845031889826707204879144177778498662048406779584752150374210644161991798375965041574551549691826156507785478631759741846785432848777465350222149757923515595154324750523891097691328048251234900341567721848658347397556872979171919862832720684319572296699215100400614508486994263590040764074971474371303362991521864388628388146920864331674380626691591767820851586024619875896280482568326916146871826843659670065895755624749057504001861168923088159198591283666668254937139268543504715462076061972513041899739502434991866751778225233844668202620169374004628621151441337902620708657909098249315613763487943828383002009888284280336236508802574899002843358837984689862758790902513411218175061590439464730740493766265334288057423723683957579518038516148413525162471924691790586149380042366833700881491207421075304565333671871352534476021188644014322438843557988754260125451061495956922915625281553530789057741195133724612253469039115121819632025667080028190192036308368159992134362497356921458710721108659856597580317128617521459096351573655926063041279278092968504798887971731014186688125708234334484528274018922457581615388829848320764477780787776750337635773612705369854543445858231260832179819568525201526552560546102445934542271083776829620394426413145481933363987471114597671325676916167889819875014658012445139656879843960853384457399247514168665160095716015019251220713630809848030059208660914409680063426164887856643855190571123724500057698178646983567221894857442993741130894251939232002322241528566090296326079803520361274747016083414775152963170244684562462902231289247343426695123366157357671984952325071239568370374843626536576152588277055808057155604141721129921667998110954672638178871007578494244178219854300633462346878918661801538246494230832042296532422203558392650405860523503519627304278625357530662440914057668551718730073383923912074310965696387804431661834730967232017693363646605311552895420542583773044837046944565012987432295416871010978430291815727448673006165687840413150682721419591920076563234559955769276848039980556605252163785613328314877517613959222215157802952946444441238565622814361262301253902752027908523002879648770842921118458201707711181369140267050529959695324466300506075328245752131162891638063987669900529455043813690700573207402600974751799852183717177029281360560583519664358188807659731501524408776158762672730749275946706775494417820570727847972758457073076455594894051639506897914748437361219296790605280985540465565438101383365878146493489344165568089688532836340936446120365869832904385654719760345183511276970262150661322968759414333126943520442697493116145844528347047148610863611546896554225052099792517911968342846782890801565020806270818885729763611041824294914052420777508112139653632896287909141241315948544089545156871970465750803474852827695185116646913692223379719266256473932076517005494748173880599449487634334582577430363685586452216409937420604393102183904381618171462457533345497145768275307303939007887712237553130386964119919402116112284529510306882550369965310553624184631777157899568117671556647464237374637518535783731634883547547711140853927151360746994019197182028606626156697446190152969680744279613924115190379255235964699632220383940984872789454780545624098375120876307187925014636680605677571854614723254033721786915574192363555746642149703553445418748875468815960607001276828587988475736486432802809217214841761362584609632110119146850755182710420192025053709063665436537288526899672232723652491983808278509251874761758958808698324689351539778627728205053421784360735652119126410931531392845501022830951751808094049955356568803113699795590694192837353276153919901730740565405805168069755965897733883463263754398615509048040672372360984531604683750030061083134911790263660686627134292074970390293505613651338924282218455885975271012631366048543614656881029942683308598720160707920325795374610906724402493044312238109866787961136615439890270902515354178064354478353603980698492199057698497786023220039843193815126248983555293433973297472350265768459107018398284033127920118024021299841147219406731954398526101605943482384955197951915234255477475851515048160547015660660105653791868579980618281268427064680161061588338796660937674979428760059478703352089799486869223116999116804339396337401614434454609102864884520890656632742300754176249902469636725484593537029415573716754345088653196280701962491752153962788078338779436832692376975459398214736817835526945556077526428197726630381538535321686885019463228913582380305302787176596787729327995339434258443938297364438664159856042175561330510306901704025861807896320885785176347663011611257461535953705821883977116811663516779856409422464979944784561693190807020116906803302616207076958156694849500519433187368422375666374033066019184403766622113045385800514466967136618408001773113172694901220672344236316877179039477268268060920654543337740653524658480412867565301973205010116118551140114120577761884187685650430704499184810997953407714619771514733254081646565660570430113945571922376272664046196917637452474519210916923599546005433153057010870453816123085478095166773308574020869212528048311974515851478117684915516034232096765193967452910524416979149170069032145856296815980828570083329455785621074572997720186705323057985023231412219810489127555088565380056468580752950468978000385438722016916150281451462460265952503324414841817039863813265277159642770687304228776219183833959482415096038343896780239452978429193813895160952778382666900108857830623271960622085960224417920847784688544579200477383054599905273898433359834624847601026266220452603526716993096222629810036241794682578621287659053702165093123562457574577320793635691167332780663341560240406780152374556707293485921942155338650788731781540783589630333052632619564371123814780735832821872368012634188628370152503125200891271895259815102168130809967642209848286877043659573009227018339702139108123022006639142374124319031683906666935792240314360034593776597053188312243970862907508509622937640628246596167385345560830833690600220673734485384245480969836556891223292977700519400391460522093740872393380152448981092418173198917541132665492641247115649868809797352674240392533510535914954360614815969547525018650424406229899680924664552028407468250770522187541188984692093894776661803990325782913504715885100571998299370861015481432442777624412608976933299574777812576765837941354264110026161042644204220452852187105923044946013981781511009135483971343285048261086681129265777649899170230187516124066836710765301663820994021342811654585256306680363182611001755556439548752501783932773791853054194782859239214547836903778904700176290612025446223258978861058648890304361524608555586232737041892572988425539965541101259699028685822704268719188324167745656759766900324214224650149049690313012008801753748734753903111517200890586073549424797342711929833763730831731781801419450506247524026090674540205317975327619864963440230564658820099226182835656599498996489567575749699342415638255352613048403229967847017097971264634597445954861746410865093578976341016463408205070822134450232261950287053127029803621802645181329458965361097065048622966358421511731917575386630466752578243624117304966583765119933618749659251156537333608716680671342430198848430304702552319054767935792579494660102978258539861988592512490780299447820376484271483259342868013338129379583466023794834937731653383377781627934629337252802568542771753535366220590750144507255941096611689111653617615509296364022076713075388650582820913216771804489293570017861990423429096318710583879131927174964466869907317752966032339265263355517249623306679139537581001127853140875066989650071277393489342969873960584186678493285899216666395181718477488695648129851506907508303382790075049914397054642586113890402751200550820761468389637653375038985913111299168329727095713125385233972288198483115687474065498170886316811819569375143900993020418500661559601129663480440410082598217163464320001870288684884434534421460880777656625160840524902089874095704233025053922091568591204841673160214108267378008745394610243022752218459466317330577580589880342947219052955151329358199157936038800876301384381599584697198204091451322920250030654331903235173999774736442000746162890064032751122213774218728582540579812807721400852555081921229212107881790187309440684631486845302020598680710346373021641976632690529262565089807758207192608393671205584908806243725600246513804999149999135362274273310035067413683551329259911050875391243823435337800956806199532312855465303440429666848485286366677010799691968046546664000472479659486623290069618909010949320431499475049044159551606956856080950695894787773381242827936578689158268213137722135518250529626312663406610160645576651451723873431356132779260885663371239699451533324707673127959261817228780620019925218976436151529413787756561826287675708239242797202252615607980663740184129749980014373024700188449134607587886308058307863280806760406767541638881937927725636138188977255468816486389921004911081828249389740398492026771140741037043989755351791972555923214600558124460386257653505026609326465970292337322783656539025142374893069725387630323241797343183110469063813721532527147613726124689402950718033409687566730222626727630784559217310308873550340127520918151067209140447082392117714888454105110122072022065756933455627027102706911352265289700615477242392341987210539684281152598490320438252253171873137813929348851983315705075758509842101038852286789081391561428446863204760102778182343697488399271358169235868126976982394019200226774614535278699803674239884801756469527596240601023956328331646716525367367191989208735298229014211170168472213175589940330848842846624286109637093511107568035628531895149509410108280278041277576823280391450549677679863806701862439583621793558295389722267993947426981614651432264916975922681328829361996773628788757213323241791219213230683758122210886287134324815309587532735402431618504130688273773885587329910837848427095138858491678160988947373941178090461647064169956554356751080490910550943195344296655544562730968318081061216426653923820578309514280196344372294954312084066098248046275924074369815696722162420693290082231865544064097734366896479741332382474370388499330847423744257146264275183661121423234732387072943713791340837755300966779974504389354268592496206917137469730090338580304819805631464495930801414123157781132511130530270130963636933119722829608302717268239900628798486313724050574120449944197495305175964552251758356189125481850419491019468968990708672471651347571521735710441340838641850343475153450542373010174713550851816492019539598009225599652716282334196272040618384749983238499926750237887491381206661214745230968144280858055407058559933843288834580377335911426619048246386719636076904057517205600259446753055236290293004721029834293051880845140146887956526634108484616645758298989214783069526739841867618311753041180171478622236182646286704281912978632396242319557903019720249863279095185407450641337751733575807619450881180954533803845998566161602534035151105069509521748817166008697018626829044158999391736932985572695906562542653572571412736976285111030109368382532787458384185669567003433149807376054493692815702611899960397572568181322346725298207679390652047047018693791785728589601321883858040246757242906040683371320087967473853187091728272427667545807996509457073691028861832285201742954560522769943995657290727121237435126125516803092389784903768910902759735449139165499888776116052077451459187680917298374068020022897134608342702007026900013836079360590108691712232342584220107517982384834751109589118041527990131493904963029770022416328481044736949340083075276915945268098779694646040326820913601124766299414913367741777779510995293401140323596093002533562130906994152041012897042058831873294451959079453981646770078090534754764477495413180369569522147862374176055872325750172095877731797416520403114336600739041730959111219706136225953831138061111799736434047603914417261800285547796471933484693049713494824610640090132994140618765911842408258910870730229975096620710664758944409954903477314860602646866437817040651441237562219840594360369418374530290759730637540460488293060067657805037139420915326073515329305306736201606558932020077176423215236192394130358969787005760882328136511134744729108365286929769739932823724848930089714663048789809072509702220017758104826058860281688357535015916683330047144557195259075715711667123992488947908148823839389580931397196994913781570324534784349237407794610242249861685020621899168765070550617593398561017011715097220983989668800796509329579317528828374226811831095537708196738770855865842113535866235799038514863707855972070952143429696012930864022409648292773662730021224202319501832895201586333291953310695824527290595083523024345144886222902926987329311217505556954336904112565921668233360680666567754967338059354209557484506711952782000456050481810013868304124976645495828158186262358573616863902893858986203587557680072563355966181842068121156454164278229077117134201920538965608655827392269671089383184953119162703311960987875593815879384882698985969726977738558201058480889737569507619176662900559919716461269148268806184374604148539682496821028246143102839396659661069390363461551461084449376915222996173999396343351395864885573653374554540334664003520790668667095168862973562764825798615974182989823638253945004283147985365625835905272253088805433177838908135460287147442259371590436120756630682254433250498951723148087408477621294268001521062213581146709761716763304832217575364865931271689217801618272202305791902620783873129682352209410981363567125150629651134772362660801447960204535264152188986273962923516909392008277494543495254522381739142609808409717040052105943849458720039197749916725544863154151992678814950386539103919435839411696470930626956760943003399900650631317097046732699841916557917432241836624454299143933757032455761816354752419386797321767307927516696012721954492228905139147998598324812477962225826127791901604103683103735832712465543814542511792798781772373013117550991863100519662679495477975015976232566627226253166154262422287111427441676110923280609617486164581747925170258638672582095364385351910388013349179180454194796641410763195575951732595259623890950972954908285423197857456118455407397463223343977756003691066690565742070993500131297680284828769519463365108483630020309895929971895295683862038624022461547788872629814757628575388446541046767423507980409060233764520377219545067389365084087637205598831045614468089900451090917037146334351161771763235116533049137692786361292337163555999195381373744285568340215948630385200657890253502972233877458721604580906296233639433455314910268656947630857708681957976283281970950235578555777739623184328870892967689000778968574578014277045570939313065341105916401633190239641130171988886486403482556832051125054073459125691737402874489848461262651841457669250096335228368585461757942182116208096116310094121640374642283277324428444485861130569209300355229431145078035943941397305595716998067711944308899978091909951439118960275308504855616402629196043131858333837822814174838111530410109662808527131014710952350450950173622673526355894544545381473631901535845625165098140176332120606845591929171881676831947899054158947120696192259418674536631558014093996846589845977570106555496064336017499399348807131858167473622165518756786606384577796445447777976431222265940598731623916064808913198956368090614588513334005904459943539025154348540733998400196220405420827730624057555765384376408602787992448958402625356083538666296210802721141006503299279418636933192820549054188148473670439809416320263096127666971184293769113497741077043977445501426463047742213423698262450636293034926821716347519555337153730237070944121266313046217383607920719026218577793139261523278435904231549274806031139153928789648520861066380151392852482192714732632431983844722327929056418002350234096667016027332600560251535931040719672581461167357185923070035352218595107736414368321144941546313556966479336094445366342901425772293062035823103409595051154969497403857506516440694048643905061828619708633040950920939859263710539345600407874690648449362452633119326923362222037968753447065490829312435661661683303004035977897599682082864739843765298812349479624783023507056010792733390503532375423441461476693658946799259630464356271232871096246029641476337938118915568200185693986326048813170114487292856889700259557432271003774941998207955291091707050012144049739305798804108595916285283264894179271051885086088715549951902695018176597992884956073820693975579272235188060444093169473603674069746165717603469049591274231388516383716439512018306817282588794528500314901752592276424337575071431201889038486137210780463146401658473899686706437636020520058038695923709183477419372829314645192966276611695073922267782775198460921446698646344308856783735921736990035257314175815861478831458469968983599999662133999979315747238020983519014615072733207551812645625847791947871964768571571019676589863063822403068600185007045607778805748190732513795108352578340918949473783833110666220748890375102114311678645202146252349319414227476872549413144646997466714521244458911255037578225715035024805208437940152301483055695772889212333398161926151488338335473170202107270077843294495621586072275642265694377217617764946811285077150246473237848018554991729547767629214971993605531342917655249853424708338775695689937994376526465463062888685536958685168210278643263777050456338773392031185089118749833798358282376678106312959512979901972604762715825811609471345985596471134427357465089965642559584232177543217294483384590141603660835922416113948565812635990548911008551201197478043029803307150451371794887827720115628383425650812194404471290899439476966047546986644003942668131675932834464246857707179982203938150450698345183066387169571989523767481224722221416826675023237681816265604894817466014130279169659279750609123019333921394277959466438460615885481312399234136754388387546514398206744326621289676387640395351939562752433661082950360254745163098095832009404319993193620596994483673288215415248491772317161590092309751190395852317476042303899293999555961223622625223766631450858440120333527381884073984600305743167081449010183920927985836224782731594061973319192503471597383533287681008351605340926070771869097870644160037069879261921716465148351639402543054318957088495568218324356134376773849745874728104003914801209407329319282897619935108137463943358747298453218934241531195392898203072238050609962636497194514555436382014032225327986946491637798756250826683073049462952812235213209969967074683318611833065964178485078345765864207307022231227054248317098059333921885440081008980899434563223985345693188299370009800106742254290312589096060063272716386743304071726603816795569869045783087050375730894707985855121331698868528913396579088177136752189645986643605449061191683362990189183701928126377096164236554815785026130034648286363278338373212258800867594055508531101415799949797226171956733036347657532760789823153619076916259512173604016642035633140009205814071090229400985075990894579599931451027208859097389041555083463003506466372930118298763096915999749717390240362306695582626319288483094406055781532383143188235943016994675835962870074491665699743079161171412961712529242970664547739292444379870935315785342724310128684116227642703958632532515366946972749697067442523201747226107475875716650534213878955695685397772854056810854912002584367117638842370418251759726185200450815870007219399711106974776216083867911515865118359351342456075455748061379385914313059170995405444211922861944125554316213498171475705201626138478136691601285965037355174456022610740228517769275363533948375919315043632303690054608624119355888847356877370043937904498268562301224728094074207386376748719949334277494134716157744833658603906971993646197361183262192237290315355250145503080010585410108577557994029691850762399699061879231088999538158286206344660141937183156539681485352185715120047394168094060980491770784496640803869022730424675639130616984809764137685331895216141247634060980333225499048640374912768757338059187919953744683426529999722919804715531480630584278627566624195375868147956203817131822886598204359413066287940586456834932073422104706966729724087254677795794759739337429683983598601050525049140703815166962271609091918124960133344472897281367507645584963882022781622179296742054526151543241341306066472846323299710157814165546338704068174028912915955640628220622222119386335383404451433878251663184284745090746547504532160080245254988199435567244089663264511361243752741914010180010481554505125752039022344602455957909649403902509742992188495212213641593245382257015841613119675593691865714701477409080401425773776359156183926209064674055452862350955752710800464158960325028558201144941714675575116033542431804295350904025626269068626423739486332995550621201674890519690866921655401964986982430518504068455585969109544684942788778833884778737081629176869964524614125132158295722948716896203064735409862685616617506568896150505715665921967030965016475295446350778164439050700999420952753198310939647791156537875299739116249924978643407382915504105965623978810515884097395350138267197214045407014106332107283269346856754427043037243609928510039979944421323417728432277934875251957085840242707096292865397238054023209081967668164428738987195865873433320774489787897958332273679011659772486358160286671021931540162296172596261563896403242365336885520563678491961170115424850611622229273832020328850685657735923211056880708524218715711139717571470703225012104434136076726012723469993742161422430427817401248824914346785316596005686050632290405630843538506942129985325741537695559306545985762728365098729050443326757180118690193263093898171766506871577963381333687968046643197289010127616188849291148707079252729536482024385328768212200755930715492316402857447421704501176237999903912552629985002354678174517587338123678375777911770306192350240706267984715117745101785600352413997915693124859182603352628556435849196232030995918231571136412237851837834206914108697831923843046619853578920540358228956740051256121457168016413470106917911355272865231752906871795043180276522766104178764834733549328604341392599867793243931262502703426388521572671270966447338593863186759206458012423624804461839916298694486073140711555242883975770773892044864123542209509528110558979741348507859113027101331474386233537680113037045270781405340194455279859662801112706285033134736439566760735608239662624084023134177333372119453818198386602912121716642725030267063495093132610237378883344024194754590325479723703996452856078389108135160905718063468950174385959086388888995817731782057882754510020547469453083035954703371745780991951337876954879103357840514260407194447639352002135531978975360037545573337442762566823738715230161147036848088342548785652850443044854180765057369843096164877564696406139997506260138665063933099371690435321597643740258237613072572233826716029934439604558827363735657880093847891006414002831722933761013185743194660370828398494277489595705260221229863096506043979256743725468045868428384038352324671240731016262142831916408886652322043195225011534973854734608407296103719826621924424250863144904313980936971432020302008644001734867266174255759062543399492203369136707825036110537572666773036868601717740511521371645497861135831471323909016304559449831404157834274817479065712507699602809477058254596621989581014416044070777918729027756497233041990586397943544171131575240314987252792226127329616173477140787644511665895712616363035039193599701123292195696025248826490456739585397492704083354462041598941017114744571308956063791280653722376433740353121592220373378343603459376915979773505354007017241378451793280729394961118499997706505891263182688852107155826470696674300761061146727780993071841149160003821169599919424460513486982015830430963831488606032735184115683554544545183369893264161653688745491444945300963046922083077084277951936229124278519690297773024498302066994271217701135755695066352867357885455449348820758282710586545633154820232495186034397289337376041273835391949945500193100558895512793740390936309686650591975809014270617940043822783321098750896020112378142243716695642210431062102229117855248972748692491768720494553207096665505753639459516180059414952753866837444777478244060479812666289168459546768779024019429889760693601159980268103240174338465292207401876190992539562910463713074315472086204526813018987465665888243620193350958638742619276736327323995312596374088740993100449121492127271090011071044355228352558774400903550821517102914739884663718690470993144957099468722011932960229645188478294388993114878523624198289393561645066687850024613496391650934755365290659279031314242338586050442148881782160212144331109049295009272214318148566277413306936414639050102512160749665584633205571295640787466475676633757715791305786855716158564957589010168576575041563281827783988903876064695035005475201924099896559860312559783773808136323784662426623398947235579812539489234495301273983283949827510952594992681102359564689381507976391428439988251075594531195379570843521607071658318770301746123545581447009443294085332328925565832786877146018991966844264488973566647799886025185266808846057601308765918028328254194644950389838055408379078011820532573435489638638967552417681584149405567823681710102226385691478578727585413226681504497347624882155043946538103996945989437025629034785058477797748337614332582298758326219599049781044108983312923021124396997492635107513052164080565582872132842900547301648931095338050108611487318648420825524064263230871949289210802316444772246883596421467410584117984216849357886510694989267597477855647955869070995963757472149732965020227211873766756756793135139294637455391242456084567946119563178238591085671849254135914240287338307987468684313438210076328365918557541855920722874960645220434846276486193186403107408982598676065562183392520457943480045655447001473635761859598136948061983349108411007249198515010913719806357175478353434058237469943229174245756339092775854856634523278380448934690198469163733380030932909829797676485324201797779008642841192295864267265045667336866809599804489796085618147232854097618138654748570137744491611735665281401499413292382404546360622420265974410513814341591122128993138480683844652204398278840012279561039312476185666165539594166172689929887571589451239021527194730632045042405980847101924243626704909395968112996527010982765416460041718804642516574529627598863711264060458446492686976260116033795634871468026538399296597819028862084996244704364170234037264716356926823510710203027087665752527220791079159833660628859166277383166299377709035047024614297840364948725665193598684208559599124932302253334768008474132445134353300344861300305609360785670335210403475841486267402311515006872968739839755519650024373164235776180057882268109582729804300552585115131525994830645336738979903243411681093142799735824922397699990574574456068422778696082706522694352954618158367115499716404563385825634011453412416891728789916341809904246438928064137762687884251009356665489624235383167437169280478049920287107567680102201478203651795781217805006796819831573854725003460079880464331506749594258008004004213211800088113223452385901078689605286258813247867782339985460411417654618638063100333872098516540482994605135976892815917468627589167991492351382981514209673539744588768323705054645653944107662253547859138149212308469186764328389185276219342735690940398726934661207321380005698088075702164501091903861304810934029320483419892077899296442187053418688464486097804255788007665858179283678258462801315667959337631253669498089156857859292299242158851152998880300016559888788583489241861657511425508398665118671638347913922621111561564418369510679436780626193149950029199597198522198139070857206332868873435711853279031008792165039520157524677246340163582461305781690411474579689305692387625392948579918552518165977460564897893078965149549037973033642653212105594144056424724150416536581759230924054740932091210067403465079950514275600022191362297875241408241138514446876312929806952606704687988810046808078431136293509083016092831982249390606182303309655870816914489660467769479250697208883751365528947642399810213938668129307151205045575266874587798201053064824183211312225245528548646925906956221045487577331463772505574813980628679425778903664365793034603377093736784660137747496274836422800020043112156680790186923783055073812935943108704546934444630752326281523629655793695412943943313452987504494202275739942943045358508225786485157814327213148133846608002663209955506220942400199151956107988482208241954550841588283587235821168828679278319076287986771928760203797636534784295341152947471298475351645113497862972078273372718010316872436020648357957703004117542397430010008987562609316023901232562417394879300458721582798893839077091806945127963139731816825311105470163451696907837881949684798372617405020999887300183329155848686446405436258757727473568534072572474260207556923205894673418087614250110660518544482177221405293609509792230909531287906117097332577221588018734281167394718354187347675713013887425856336598013927696676559735855301188177521589370910357099292047712485826341350191691044713432756821565173189001224651805360600041924475322716737160116725643319134051866497759002364903735537709547354853536148435066664074243527094531312868464333571209605895591997710444793338961743373061717401286651674502574329539771635575569539761179953146998798930150987822985108341409396531987958721700995202725642989090717368924695961751699707839188529202600504146262136836087329672919059655849334163147168171401530510704516225099277404392278609251060487734541039637906440355949283260313386493586987432601234064703828211136993705798403766616520356507586231893420779933872150486967724678262500653751879757328896577704503427242875946507017746705932223743851591030412286931495824795026630308206251026848317524026382821705490117433963997412729752183300110986372637534679465966293383768096658734341111327480028651910830348811901383665648642920284823498967726635347519265642857983877501772753787927187920723434153843167173622456857161760829392388271864518818971603686615812511950256998805513344450800959439834294440069711192874865635353840856051230909660358435975550598660101612147540675298537425850251409364028001513088625039212424649920153341178310958243307153256552269838514386203660801083391791613713649382237855105624449343763774503104370012083163078606414672367089044909903284723371115263264626503817307259819769272176652276671143946809108559632208842590054198945736855218133446668181469059098295952102804950321697519147845970544494838113353340033512350988961636302451340827143350899023844007775089330359561290499698260599722527700577225001968318679303136490480643800720035599693995162805045805213520336596000020918205072871694122192532622353475923026379351421619005112901053917669307158263769933307621033416128235548536141244434681785697429966136362239148424792438549017773892846026726526138038587810071475341411570185451462007185790932792562034413838241408820460678795272514120639979471028308925287162004855997114244190541286962076072977625493703493082718853770394849174179707250655761537409888213118649123349494702290955947435322209011755993262577094201251747039978101143851192325971033372427669800313013005917964959287445554089624599333799301358776893551236132043622796541600817211966095543781841967860422328640618065507185741616327855548074241655061074058445390361070608965163858502585095110340503158224803656743264289113033343832697417128573477071758440528945695823693315294299788644160942110369079077879647235634959478295432950852461187126797442851319971222097721872579171990152017360834498942522826327758234984677577618049612083634685353364551767718997383295905698219161801418926606075979169583209348226104587607797592201551956136425658656346549680131273386067805434071562350409184584999006536895652449028050139434626573679904088543193946911070380348469300170480091461509006913963821265193348282458081642268733891176464914788240823680868180352879081146825693027499747820770626342736387683488829224829555251389818252422490319301613130039882149573269899857620457514130283067340338651309597805122960386051184470576831556624407386526608755384774244254737953859105644600762326870487134741142346229604462412360842202740438966443573793727659405982675355111015383997308670299277759477766661131209463296435828650254156966571410207432491414043628800134544891281615945963795863814090207766756014051938587569533001492699141873245321656654583400505833845052561411062626797245987929335118623905380312417254174801643124826077415476349419007186560719502968193861407911956492355234471337809078216225715428965996007291915584143409189164491884040453944582823189926591772800173424131436217692834376177735437562249581897536742294681495379932114025796353571413905051956123160523235329292044090455392488360907083886351310069605564904491998076634902449062845543366197961756101944433327691094966105865887857129198428100483204647798324769552209036775199864334715939166667965027937490842786377596717595329934088973625185813882392692380974858316831950116113928830502171517835786584802022045443520865931300872477037775676148503480520669878491008559261452837401943138767329271402245439746505719328082295644329569963230602651106359204879725475459500214133218302737325630316362016714045620388168314117620703381567030719389177261810880095786062447473306827590291671214499551662580516241502550577154923018561481317322364923980051054408801361932519694148596872005719093259771467974338549955237747679118996402697069583988456652829043055898947435416559744868392835178473848695455317593014176878635047865824669934890662623619162208452769035580634272682411186721930349266267320093248413263001565550537105305238820672474019240062044645825532438014111234314100361521081864993340130628813060434138299613983040054915057756989556712285553820782598239909961121945014832200265739703044345946899302657555367535259017656020260795424865893892709803855096179878195833112621241484195599845452963187728727388028232788887507678721268416276082769314239585384911767108430421481245967156010226281579151946768794136156724029809420499749601006185979462184081843724527285557499579573928732640679360072300763721157752090925704029466746739960972953484960390441484288206731758853642840899050339377918050436684512474771652288064126601922814962958358676404516569531555114563442784530291585918514781458650851461893028361941144426011328179085406548984609231422268784887688844076283868306393976179494351776295945056684062513809347712188592923967792942647633916632576031631672538768056421483578267469804404210079397904104620416404347244165244756418275375441174720181389450630618128047160039800546781589214018100832369951720023542935453980117150495684160377970928970927715129320980305637151006102934208310333384645008678606187495345071243411777986418189886186150558623680060555976728714256635848022523637379393333163479660084281049190551235264019760076938469085211923419978743596026488230470175619360044503457408600917305354307787835164354445962331796466347470193578877960037243136407098152591405208128955202149333745459808956057920977345930444346350757964104440705175265805821542066072791890574939794624075865456926378316297200983504129646901497530172622831073370339420069664760042703838881397918900762445611041134064110337648488781981684791015251621337133179901718338970706810032586793233928075130441778215264492694541600595236843808017915032412085075968947294345146302552760517760984197350554218895235792276646205307567542631550507840767307586706620168730462740650438318785047970286736007967429704500188367603826176223725255474119145231369752787525405901989484642334492978339993442282623885394918110873560021269897335013850855862265101169380721724068010179449085074159028039785969973027596369261066863205227016023660033479092139768292707155380426135535917222901916133394899785809407222356913341910561121589395098758295212755614614383935365466192426765506863652417833171800831718197654816255286210403689524491004787783110217858412021754895578681408646266889281980641004412238989063672976821472257105203060996582489731574899961938915258135657512772224432045684566670308777076219779102661125706063891290593098459264635858630609754251275842872309885892505513004840629116982559225678575466300725300498569845714698364466789497345748964968648739586844384094224559003113943873665072893798802141040036190816995451634895587527357609028945975639689997192977350624733216845101727875079068163400268314974783324342544427221495784985466316498867989051388571557817565446097460804433909452784795423356125272289396820165365037581083839194009440286436635554470488034887251187447912123025413831243395748411326273438484330915532072292186073510271264337761514155775512446413713056903789486373203423382479538945997708909063434329149991151125395065106657566301899933425804319327844044593000370832292468227186575064351787858554680001796169539990207423813398123353084687823363864071720305093414159094828869635973373072832277112580377603392207208406313077837821439431882338384024458989112830108936821940899044279907285849261195119233056908586946640884633999340015457900143111672169840363169249631047732816910098977428278270418049322846686749728244281520422487394706691332890253862294462875689552147673420189361663605312491228492777963760812748190063613487655481515979881130968619698633840510087949098294786408509002025091796661113952882364639799136509088516235228643263475003800390528410733791842839624063158739277786881342288169303050871349254434942780485332400324756537777408136256389642089759423802267619620345013107523217559664201170060671902131812650509242670237589033142318035400846401645106144345400857337672701651552840157251051752541980151418090362386689597309108720826582445724135665945237052036153111888825475980482266020678319383701860750438140197793794041315836061722831481075225218510931657898936461704858473517259625096901565339883311878824284678502278715764202111067973387968853248699840523532171672103817998934133844312829076219586190464584446702629816781668282064411165887046729423840024468062070343894315236281990299962984537712517621351061032913013893995962089317925245200027630224721528276126554963610147697378370119263673151068753266908176262046286958827768488630637508776391346066726492804048090841756011903217795289896886212706551259823935351935395998817484442021459311106819710109253950039842553775721208511450300935524768275881986018452708266657624467304072626153386623556634920558892002582929999962688759249801994850066753135512864373975317761571817430185765421389107334827844164121497624571371719316512244892880935412281466486342672563504411571640659604743396736233291501548860330926131335578502299172757113018454616200710001829686080461055092346229033436489794175800662595451631154293042477651090621614458183689192066277605140809565687763237754112114357076771266900350332199970868384025561182549133602090847712446779968279875805792803286727106620424600642391333826039187155123270470371046295882919550858567540661049541598828677640316954595547412506056001723445727319558297020628444733717971954744176863357170635692543419093775234406393261996389367511155382576807388200684996404650676134765714876177645224059259041611584040767900387194111710431792769591929320286985978089280283576168910847823165033099394796801208057513592966387257000859225706478599211773289234203656640952503931171570220488314904797364684545522739469628867397677611280617807739542545884943544259546400919089855094351768784155037843596129712931307843884112336193230212320735317171630399953700052103758411576174719802262300643158695233796094770499243417097267203267301623805589662450535084613987030873783974450667388016023120747882796401271988463909442639796359242261757920943569055471976264632278782224722203541183199289863508829307221286147782370380048639848168219470765945323945730721815727962707996782447317857211089170498841588226496663849623263896010472479288357182254283100852955318042297788009861941312586282700916984747012237902100071659608851547711999878334057985376110234764325902452659486424440660394369478304628240911432125887563806497553857494578386719696577278612513964538033056925191083610532689095579313292143146359657997843878264087889066521331704194547786101745304219640254145010052614844451493753501773727209922356820286023262969658288026918142437130971227387480710833842457576371104529443834520145706584866396686322410809959054561391712236132226634191695691403409679734894776529247790593844181007928332625155205018477498834957720411066163429154109926755679770873360231111226306301304041278385689837840685922043095057471200042958277719403040015813693250687539292192027270710538743374556849643274736218164742848328121071858673404014316252130930915091100677575371052267668929034692426356994536607858841112472087433116987216990327036550433456724161357946324042033487519473268915473257602932326081220794819445789346282566161965567609064008426302262086902199400497235136762491838814840609326057444196742868822822489083005346494836749118280788405565076967664450813829719226866194568324280322879104794763602348938995670683799021827578185943391764773114838147682966657309482012220423839320627566519354396003790549765436996059195949863221944118807453301279185668751636129437590599960703806654856075471301538857224750609232102466126945284518585547317670198662523708288907813872625912849534046149991076158916197191182665458330863533709694446381349181605407362273723994738404115803513926480174053235031351242511485568481075017291307503736673599258853353787242390159350353939644170378649114316300253909748689974065096392507129394704995659298123087555512640868369871217767212146018167402273807200807475114790484907097464821301524997748112105990839474308128656551057850950056772802827550863674788732428830805750438251253952336729953647574627962219540327087780912683219339323955084908213531125002393332751684391822598816385111152285043374128750597154759989275073487084869698909532720664974511970555006926599214361004004188465579475736908885526759474405663215464275156640851116776811283710382574454101526382235246752604457334778497649240790402178846142791983511814654879118354268340003555271775515992974224249693202928041686927890863987561282132710736381182729742870563585707587726460338330243126355591163032047292805216018360848403627920776912817744467686760821569590222690391815250272957991799815287031499290974068271613225589834281194642543250547537602866817717622714219872804939123939116328152114355667662159045291629237297813819490015792370491890699579125756469943717773517573310683197460728906735565163267029889507555314462160841776280639418799604190614112449903188266310049704564867674291583479156011803430018810944357514392883542184955895142735337150385486119657974446790743908453845809016858294293499046503745352284311700968078066357529236576750487456330959155713451534403799984095619689722223978113612499229112673316026711536471101711089307996018234255198360652345681183503651976668284140587253247561645065769045263337920987262886100649274374529689139235624252516885202047105149292992022400749488590773609737251832419980494698028424325183280555795820508732416515815195920784295389633448310290823200349987216695055145756187309063655662655119687596770889006360059313810158214028473104687677777383692534787959686451098436063598427484914507706940875042555814645989083799989012218563220650353220090548869614668809800444341618208421760135468833039054389926414896701934561651103415615872670701900287462812326427606297051203027135215524082471112939643053988267199024986417082865561091118231872323007765354614071685942026461663916235290337473385980599419358098192977729327869114880377100128589805059965080508038467023087204006691563772027542622283847772087590918508081845648365413012599514765029347082279742229177344590848214916230816837004483749202717769332850834123927072111286623402802518034399479484003733055035581563554495913282216917895397982670140490427313810245193639900639290232413533925030019921462426025016980962315946897207579823593305034751284128330457230362474645895776451289433644117566443308574136765008445697280298653529809097058185054485176556165751126289219178655162004181559333997866077077229429207524262017972260802473133415953478720981829256210674572571671271709537899502970228486468793274982978918309925099699298820787280004378313217760180792002617100501200960134327665723919435715565888980418317853508767258921046427290862277313881552031660838757641160281889157914115647906221407907522971771287427599673229498818140534113436477260330489356340222980218312472543112220859647590333516074055003863315480661266791161768039942705771295048123469464757438231914674426650681074422481959215785064640285694907660581605873801280754898038515724227159986195628492904537912488211242564505025241446811439824454808926765757663422255672421678587352154634134154039827337514820497329242179572760432690845340265423883170425378349157164896157356764166979510611728704577815548129578818931068971925670646344904546650671357344663213162808611734695843939156264078756210978979631672176105738726423149877469193272062276676880633781579623147515705495289039798757950306780122585908002862117463715786280621966045927719424866097827945815548809191139891147434255679210013410108374332652013487485278693683941831710219051342250959451967806384614464469688272459451662157809880037883990846260311592157163246819618489403068291560671465596338867457450894283208642094782521091681129851043029936025147532676344355687035153954470433308180097597244189743693489465795815244277846738032382571266503943075263752854241099038403725913645744957577250922651168747749498509641723325013912426159363137992569617729512094819819783919798862493043829453397107533854463286224409628517831388264107536135126290142923850904493157089663265824327001900222238698645732200267940145589601259576997222848305217168855522738769933308496121788657002449511397612267164803153564325679774062746003777824915900551253922953072396635065773390729618691050531646319975989758567201002967048103975452144999103996650317940099656551376569269132808781780537906594861260109148883678855399811407947482414666660162115109556090818582449874289023339269646658687594700689798638952497129151683798809758110554883736385605625813779323299517605470861537551994292408359405303650701520416041194423155034836110699974285472259022973073860901524881763389993896302056425607451282793087770247940083790668228789194043245972564404013877383472300575299254814382613786965150379980466371885243507795379320730559452733758583351493208479911565013910459282454702729339378100654633255860206775184239271897838488476781746850928798250527413970999022072654189261345325575575088679607901774339743019363681344934986104883543495273934684480299796294739988983182746837199022847344232472167139906295855938374188112423296264895940680828013322202289546514409422442904989741038427524724735938253275120374389417639850071931837527200278572199464751750178505123646156453422912960649776732708536614405785022378806376331388914838867162198956344106627087645454118934362265773328388787007678043374884041436459279332875423777186457998592924150208971646215787952986276362745804341930368415902254808791300086010310366045474927690542302297221554522891840353529730420934465371715010065655659771045084886244579628844950152639724966642913874567760389261904995538104854892792741310890801819054975817821611423083765175009546674346359495223231249874514625900344677696866577312931687874000631481807526285979730174725401420501173673826526986835631840995116967785122063068222584580268884275438438131162123563633265323870079975355365666001451531511168770992496898855833361816708095199525693802438614315978543030102096471490728025759558339997285258485269332395094797926937544272224841949355399427521715671612404318056702556467627995501321463649986280375413689945609107889243877171229545303867736966354553607692624201583875033416403336585126410509711483569799064852559516441288568376608947834120644464427248256463078534748286263446728566190157409873582700906866053817433616180361596219588236469064579794453146777404328000572653138008071720543673026445289173417312867226003251037730341054011705084961212426544684368204471008966743593536348036856634022386536228483314042698276394984718762688694012439451933911317143681125961854648095501370927389283471413331981832702991274164351270371603895539308521676233531225369715240567209197462299518131939254315626264505024845943300200063547084142053914441396672079695289151543333347957370246753876595424913052348936611625343709969844255687570638088886121309125664806296513086566374844267051648076691097201649216239845435421366665749133696517450391284586207151980915613525538027699596702161764743312849479287892120038931143603655353358282621579981841113215567224054825384772938811735684377921979353159429996297108665079708377036654173488366924731630304339948902182340368214392211174254557384369565772461236115572269301898890306351796476444241513985745986042373954031244072714418629657652823330308978836082225115640999207599038547569423548150802076798336806883285016816801248871556626645129930116301477934187148570576856800913782853033699936500350824811087846285347283131649748754483292801391582172650523979360810346692652530886801245922120209101263597737479715025734742456010261301378165772141520742477232759265199569518403385763619107949091882018026403634977174635101887783926947532914826562777824053837865051492849979614351230101839792165431854675251698796823532209346088286096171029300976458222807792619320537240091968810011471941274464328270246358187386538521502727835162252801478766367689385391405594514364840463227109121751498467130749821706260497580739240018466887167981405970570838087510655451239097626664085735836797491695425613656772043246645014518970698163702195246967524145727378714087301002556628537412952312177636267595841987643181738760858140493013540335656621229266595918273069538540413251026114760312049766106343476875256003335758656012761467811743603037813875386818892831148521508365513952014481888274293579372975198318211297025009076898671797390368385018259011847559618744700745063564761816798689637229309421502581667653980839986831017616025039058782384714349092908600402859052760538032031512011581810380110378531178013684063851417574882259492060632933173052886843459604994270280377353476464655374757521868788884393633264226711508976600504672659571095392750362098166739525767803191083046735007625760323523168272138502061364096000793308519669508518907065586075361805050175986688097971527066703158441796950271196052251842446938103216958021431479433754135407029217601891611417022834899056896798893983804384947954449544906360382661905305429491611559760401925231255350473833290847985419778117351805512964044891913849617194009056627674104965548398398652850704499182982584934944238975660033287933346098064851215468623411513503829428946350304465400670900953531255067569736935507896744195380996537789937494116132309728358663030687143800988847496825986400081556613168731051354457265939149543650770197287339751914746206005333304381850564044932525652898612483849469175271989716347411914608841261563796449042086693568911044483518799995725829877648718078438485484379374850281768938304399309495342354706125533773833211049190666144281655215187900407593668101350586720474829517772759831054272330619037129752796603392516815087897194627512371850717851923768633681751804643279407014666169438653195428990905658396738529842558921061111397976372961981468765347190054013228501923609958909994031997602982175431559347165550912841072193780082171603096955702805983520280248161256431078741507651099589243311258319310587969253387675262273746497843264099565381834513113278254394143445111297643354741207601999087321737116752359903160932468744419598508632651497375776142486294318759438342017135910714782510759478142093780206234348310932818192084791999728553369159534754521734065561282112285149918457488789490429124356408120810457733671017398256678237469201500918788572267570194727313569718601133306778868204327471254512668296369039848289555108571213796769557835846057089016181775681841994414527629400249955936884941116276204294341444663324155299099798600968137138605216314643815462092743280349051770269947920781115153500443231709924469397085460514161119251821301930591349535354224353490832981190415199200870029172038268555672244459898904492748760299807908585718894911365508961251116852020794146030010138471292584230576198515225146625383462113373675869013941537029253009084120446497512581951290257073776706993749911997501631890982202459935404275380536740860809460639194248565796984131141406330014419243160931215441341325290316865108501958503990901501143819428420708385282834990103607491610521843007213035464891873780366250244225416958597437767786595893331004059601802892596767852385562468524379542966389716463410690556171100054210935592204748147977440159890619160663192258174589733812078710604654236310661985029473324938313534309326495228987418780812734096769693493030238490544367471036712024885320397555078649285727231304583400340797205984184997503606283157910282339268870725309824699779557909431535086858024313866470424972315614859648380169689732971650272236344913626035930589131110235293878405152689012052836956140542127403148323306635852422257833594624454119331589481967771312175815548180766226905565329836349069474607127550880666790242968322452547993410662329360495052842854258895712359463987847043724822174471697647924946006277066357939565544056595749629070068975263384647949310207314868455272147294764345581399575761095730403461154619186352379580937152649457804100559877658729110904647888899082540017249794171357512139100862884304837647721363642209700775872491858886354297754284938594911873265431098722148292562236812092788808182835057020155477111223763727922161485888544001898728128007163496076482731606347788553334452966919726031042495121665165176004315425054176451186979600655328437786796695868826642844626587098116858000230881440222291192599148185838662368281245047407807422014300778405652495147835767394380778983188873304980967275585299373511367371687621393731592270776694958881255422969106055314143396179761970866940078323906144032633060917855581888911739664194468808392760822776275860281659435819617459209223587691744644354348825398382663510731871122961363721070387555259853217769259853757081066872039231979758595775456752323407547867235854524844380600538585157062510079012400317653127636155525865995764985941374597676595057822003451141795546545360830353914923477951038992811609986595762999070533146289613418676239699400075527940305634406084371134195227307987330483882474753222053737427472772607915879675889418117139480146723733601918746752151263772998487656981947488828841698354931041383323800661056093067463666070945555015225589636207972690649258798496668522428241034916914706154097298669349141415731656841180905972912059020438499818642072800171141851019229541221895260878940577677361231704753173712631605787278430062010066331239925113887700493132548747440009873855034207081561356646275467062248034299725976805815997686189671351570223149921389499636622147243898517211902138532002050213762793904168751021163668247545047012759167152026235883955824760930628756634207542703393786789496063919225503883359090966267964183714706218849178674569322885124267842476620687759462604261523410118112626741617311358113312730039618241121032672167690348756032320830039930089300992760068508285940348375137942105437441450502710453677533286359946665768539814609993169904256999049788846938493546571897444271860531408162299456324875201545163820504386947852551485078392854233086914164881651742798025770681801539552373977814025466735084566532374361761955732708120245202387374199490156418282756419505965534476352642507217657543226924566314893600380445878639980549097335480617778041486669549852401978169228113006860915949803509851718784395055579841923785734470664831682291869973254654521229836074244992874402877226964275863735257161979507199026459017287621251844703328709145871477367691743794803486637044053972817669611854587802514173802841973484870608215598005890312265022045585604203491993459075584272810615867592265657908284983936672728612355072081767443552861129427074178608829155744937468227437503275893901609215151431619647366405496167790504098216810723818920531390061440415144581961076768476404073972325251343455300117528876164948698762582271381905528273692305998274786651893927160589105077019514315593602349124918414218791868048568990983445860572295572418371048669311472687715702451311877243699728246742149124900766333734081438397625226257921660043745216809380197673309036731574411446236385868366047516567723981206964868257413854326240702150237544255504491530249610562126815358640594235632280324722484395611741785420744089417947996361038185040412923304034745496984487555760411163505246240795407397282096049410866027925741733933497606517585796507116604399507848244257169101340922912843201087918925087210334126060272397333818765471567952320263560954932040466442084773050442931984338336070290953913795653572598177589109999479209651387323880216718811435222423508549554781780340730883041684916284500243056350388466840254322422359835820126509982288085048772575591851623484564956436803125239795817927849153107301564080802122061908454956305468650419883716989819583144005068418110619290354225585294469164249558918612581479127283497167364344475915670688448415288720529163002759581952227300441448361627290221278844138841585601645702269038785770405341517006198538393094385129983064552049180071464491261868604481715810655121888884884037406747556438731779468009919513441789781975734697475303837804942030518580875361157479015788719871703350114987507686478824809621775508929285741460935029761420474276870079236186272424553558060831357208844528752874254954518161635042834036499473991448056245206037171323827627528171787068721283128097976885571860153146958651988708707134585087394562728700775305266983286064860025953477686507019661991570155800517029875935399234508997236224902963140568582452715544509833426293583219900268545353850747383054428352169647385006637314020576327692689504171745092872314638895679621887186274287969143999158615215061895515553124430638420788825538948209222850592900135578793575586882096231159771198610095796190936530455333930432284564571642071368572591934333918613653422950499486699104334538258354310762486225819669337212959591235268102617853282179272410555837774048397746816152332909605259579790746183993504324135750084086948887373423321502971566208178112702276267199413424822297848345927360415403827723443965019884818382762222470632359669107445545589224072032025747404116663247452967565052168747024761933894600049722157859273736988994973648721428370309020866079702068527946836719860344273904094502754479871728958344288024048447145292048492101674286503316649128388756179307151806995509755715231414878625838429695888482654092744463631332688141529268885883505153365792787484517216483423593698350723239244181250584653138079270725702291694166105178819906877050374824922012086611880924328780960776657374491226951885166075890333647347441957790940356427312070511488639052276111403952818853040555139038258264870921998988199609981213322298825543156766524758591865928669858579216039731585298486005789459686087969939248964586111347281462078116610911030259858641771458339737780961318889621225625416906385392962095171548296722719506220147376860277884177963743314252936298768748905059495726647108298615221848711440524794998037870979071084447233982535689004128157075830873523300035127364558521941887305187949023115444097121699711046149254752850737721295378258772880445437784317124764316787856478243695150620461760310380791270505811905121073432555824035522132150371182471551784046636531421001957331904449555735063954106999008392444202212204998284453236116913164206189019514468852466957894070946972397456128825536834088839047311360162775350204939492424771639670643218523136663668943005545355268342461580229693551501654803305407288979146620095247252083090559191236121746849787726143073243195267766515332617718796074897406667769075818204347081226310459443835553669412656587412497753338224743179250180646032936198774628988471571562751800927009593704282986024256287445904564635234505486959687092336529379748206637437349596244707705404287636085137698401697827067784517066200741151537774587192402164105123449576542040632245487959083086144621119446637503197623368516889637393901759047981747344462555239154649675110099126959863389326636252904764923268335678229032029424046362004628627311534711788301659846917951222764224230921109742310422674484434362861860102279903060210571632573440334335878609171257314069035951006022478242975772949249841000451732455027250278820433715694919878215919539151818280461803157992816187542577960492092986573556128254120075575517872167593606806171152075649352688880217834774615163428439258954914905586531824166530821085357799941172447037627773280100174152715583963878444853015158575426641290516442617077181224299700089479857062701995514439401488038317134886212142331377603117090694518720970181576470794454330957110048773440893227928804479259050926627408020943017348470688673614559875072175848807996563343849087060745757195846911160001704670946891470490184998174415147515230932050010808144482453777173585552726186233910939082047019929609192760364754483166722491550035553618269351600427300926265568435293462793053754794582567867052430190425853081141624149737691995026320065055286331524816035254481162243023202441403693716346546941237716840002164664242461898427689797197028922523266921109879355401434359799351545563078795906475914456382895657305570872789837258517616003392290032998400366227774440616676550481481543411281178991557669902936857835607016314537688940199117243568536193551302046997482931752531658574881090518555137434274867835830246489184991498976220324903617518092957329339666282234668955239427335054638532133609045023797790476896639514784876181186110816147471446809959734396491536066394593592254078680840275803265259437321717898218384866144073914933979172013016509212560461634752244867717036782053738252043676172387065985970650526073845008845744723763672579833204810028340717333646950794273656651748686413210021926674101757227494840695735147160709183034680002017119512279943887507719166685530004868691686167659587440776810706065309271977471254113256329337738656686734059559236120113411638715395705046502725150889585204223727271308131121143311373564137152390503190429058602220650803077336817142387747213398240431028100699891393166341368459743133204299467474419994224696407937392225666087697582361482602560017160157866652889732590113256365628634927333326160623089874559331715726552612011729929676314102483404149633355943516717665657932556143928577610005528793820815538769593251834278150986363527725927990725484896023893452844059975363674858778707733996375245759651997534110096006122519310190676913082126650300755295526971132418709901697476429521578866629643555816160209159086419940813172306389470731884191468044459692360124048182287478538520167333707006951868047537800535425618416290199593315116169265221316066526860998924373763197547351652358558776967024893330154710392717429219256200422735663560058919379424168894242853146172636227269757846464825592859057732924107662643450455401297699634410571445954034665546364050289387783205938534815986704236817716738017085692302067947880589680494342034171696790248123692397794459729790662391528984143396445404402867505159342836855820343253051920126893180124557558441944335951811753887933906957555733464229766062714934102867547141035357880948500034847791468539527469395855311073087293050044614715417061923466477244583137628608435957044465627528523727763167830035487076297455682964262016757440873568757459766486820941086497726763260292884186791535963577264109114274679163889028686845684033291676583986947861979465830173254248761783349531735426436655324394137995404109183483333697851406071868327580648131667278470355184431857241499712683145040367315658607150139148491255178793928619284928025026253176692683194292287849413886689779739646519003815918484982979712905605654207647538444036458586058217753519861346915258323307230353040099918613507947717089110068178190019260495286244366716105512056780841274998552410125159623899302728563670196008562523199810313204628239761852629993247917375213701338692604394728425993991114509812652088981415425513753399751055573779650762285852916633764231718252259570553835356829200973910033362940443252312823520870788284685126455679910006872584819225566463704108313441557952136069166358323576823084491651331620885449376212947201747552644089863983692261114984066088370085910573470962903394932862909605101738395979448641343327985422511310954360313920044941283274486306468442757203279852960713479301793824007721839995060524345263116803908635460489972618208589076548000806134481743214262687529680379040985817815586398412357130460692211331270799013767000219883636984246564903275250298571282786300288069942907177670014454749648004118428930430008789977517340691197337642966760226343323046083212353627804229850480036496897123665373840016683820655018890682482530650378910950376328670274798137250382158461228140812606525102242182106075374517337766435421243369538122898422293681428777776275076808315423770175726921376783764014417056874094713887141211299187245732458182045087730035316579263910892334361892984773642264703808356722768610279968650531266381996678779071388565108293088102520726581451401994811223056602534876833003119512026207048758690364722062833304752931440000460663561967224429068900037312650323668661679495787753108278574143196041720276921245961454503754702840429553424114276954393798561472345067003170134743909182326395078593786068241330932767824588792057936435265175731887236563420563392549156429911632449171673896000779544887212585713693932726070575056345491528544137446697207702505803052866755040902391753122418060435858415573324951419863452417928267798156835627379502611624779651529007928537789695522654725719674140663348755797100945526555439013035741194603864580930075822111792936621330210403991524151042073519106293481619470014042961751396977847601503269550817287785682406684530621124750369312448309851506519693225645555862309719919895787893021605345016691006235464746834226725858214961130937009735090325397326419615125979002775007892231923017388850562130391260665091830268836016246397769650027510827116552305923887752624019704351647546730762060141786103382049421294444980852906645824857473675103829057296418450336096960856055281345769470313027391707614841058070493080586866648965971479151306882500811961433913103945617852404239416763223656871697269204870141932893318185028158202271763297173444221133584179778665183560228388261393973747291271168858122974475805937690386426416850695613728486712354671885049686379753059826285783275579656913681252575440064275856823866401800665475836715457885860090386090563731328659742374448634659578433692066254821483798347858398216668046847751472058999068268458783548000954241217587148260205798725517549654926799998644961729473892265615834188765683893390017600019124145989298254449140272561586069118794829972768075287816345143674586993981080475034462265922737598978281737464649258215578280727360670264695203208221694669264934552759813610072011949584329428854795223027442589728177112079143497899443722035643644995896962711682459875902774926416031635777180151109196509342038578851107054932390808400449412360396974630338268600196578482117141393775398512202429595427760581197668156479100430154912452945071610616018482788318075835442091436601509629674704591175252494939598303233413875215123402913384684900153903078334876813402811925143437894031563709439069813230374415934450467394055610775317935154526210055458539651248071599458826414960111538664760284741151284051708427670720454865968276803470320008313954712337367782732570856216531035773070863476067556208029186552092099843693451323544495137256167633875933397033995840732207930730039017657738441712241581906782391474969340042777893180033322556630313542234052892452722434379747641191792544817934056578209290992110778393664536867837279342702178545895036753285820866383557086013166373882568407088858638331408203445841755417265934008741879781499535454738295782891778375006383591434923862694493387181415910678105782862850397823779288027808396201441731371076475613775788298085276799645272585124311280925831762211756107653320010900322189846983294205486512132780803929478902010204541987087775410797384880934796215572752727137757198540651421522105526202164981685525326030708683684251547377891463879669254182844415301883050291939053863417131077613391736405932836317202755369476299889768970624277237119806758182308025793806573675972361490471536842291761162522302322748709622746549580083390835848748153068862594600612817467523928801116603214590250294325112525438060974169785465462663646573989843891923802016726124189872812851071524031970726464081429962080639432030810342638364385044206273375051339057746595628947245939803024295995671148334716883584390725690085745371050308879991067538985993306201685343441329489026094047433746187206931707329688629257921454161204950177018373226778831975705518438178882931900313549999970517410401541152069926970658987045672946386488581011550388470088957216688323157628841633276557294625354494698798791717017243420194121602925851583277911927805866900091691792297616088166167327962086715464244042383584820771893914754033872712243959545995793022643242748429104757243561227010253611589828862303781476813179205002307311849673974071695294630713019194805451175887357111308036926378399563193364294619172683047434015956614909842116040016799211014846307422582035832097546576714963059751580046072212164523742862477444475913377598563287486388655462555415580138680411160668398230729375609723660737725826176571217059265961133091289284662545781477669119113434905418466790034855781617662519648406265497271841176786188880135020474014929683777718609858116964670620541813483211274268876966943845786908902194196102325056296428155538404020039719112172106369214183614246709117773027296267913892868960274600388097096479442406470101650454775433094294539804310146263788430225512694815624711860584117376860088898691079552635020392428979932719079507578780330981522732551546109025045432101498296854930274724857258984265186419103204079106079342979148962885760701208380802177064185485343144520393028352163550093445928749105574245885786709056090835248055904705337634328043395344397263936630867846180557961690425887655048840586354917370552525240940933004960239500252707006924648719729813432776416898105172173432373518030272311771947897566291065604048431532186552063026373766830151906628950601417566798632996016325975182037115758694527260820130582583517605073841355529358325836379902990870637897143111476621934611467899357744182915385312537366522460423866462834465868522229154551080485714828540182829188804911496813524768886986815687508013785105990274330151420988512565495243684705104150819861749763691064023589614836329330220380539311734213777648523834000178378003242188955495441632017055454358547778451404356881462122657839799029172769606842961549425911978444115175150521887765823932535584307791924915226515557005844542122444251931958202580483289531657755256769526419716544955744165926238489362512683963055016327596814459922351428505891460650741012516536057090428281297555175175167048946510142470882010876224357090301099885960222773421286645589134098977992202947443989800467094258424963555685309522517101286806399860269967750487625339508253309132090896286463268921042547012072523894109831264152194308395793239124016336645031495898434255173453244674543601538382649543064032264362999870194720740395873621595175069265883736744025261270894209897746125246108699261516210226718435634296429647340395127117359010641024359774776313066245545313118085499071417640164310522977991652370723984309180586540717538003093710830421977515090261032818642647244325610630929713436570565524935490680669280279368702280144771830468947974200618783946091951999687421888431391293464115650550387970464461498855872814518381665266563063723986367705087577526248155892141122990261063340145002374002344675151308157070233910161978338877609629045423057802551017918506365221930431042070604150240473794446326226862067766580030629575023524068859960856558417854688938273886033323923369668164044917977271060956477490308283801726619296006548278262664817591735905710016868213301758337873136881371586748393160078086483368573694287577423394647510118867905216360967663873274811970032017292203024402923617650243418042519486949017202497118233268134672378630732159625454915042486475689116107226216180619374936967705989045589601211591262963610690894852605581525788708523990248283469282766749773968904607164579062360027489230601867584306967315161768619772274935235351980185682143826331376384040486056530370095658374928440541801676232148453348290870777716350119016653611895136998415147731458091110233555527998315797446479644141484771923509015797472715757236605313855659268386224628005013687520524748288408220726882051473455349862290227425649137266659773235795037551694573342511856603370789237591069606040280736504146233173163850880339910298122303204270858175316769183804890973611748257405629497865005377626587882124962652636455462934958892540690409991075158742403276864142811111560625707222262114423400884066825552309548190312869402896178929367506671617879096548691176434243036517620923367827535475579031438131070752305705679795995199572460096410819097470163989182652316224162200399221827358836193758326170816835157508983110078735810576427440185272501717876319818028804360945118464609362475970077765921469840470105847732549537079320711275804341328683185578244614844944092654871663836788744139691279046940922002092980455010971908388609971468454439123373158389221098167493758987024965767841029650346688760184968379352575840758511851408341572665088760924467591971423488619949397682372829978132962930414135538488619323091098801165797158912030011334309970492538067056767922164754102787425452858908611597019606531521995143909326060546517956118336214325189160595439099730997632836534168595456194028336428271757545884158678181887441230549187745892766035272195666463834113047388601287213737161770692724502186862505850574037761547131513583259282658472589354750140979026786315244297104461445691402428863385716729513834734871316430323343172131048775704152909636736571797989522806235908784129508913401885257091946356268522540807814759519148681024926730883162992557067757882831054190134495312704676235636064372530402042258335078686320977049785358458928174326640717023399698529555315976843652837622939131582095220396024933074539000762906030985901671720258716994944162762487778877941938722582738328164164160940572536527101478927512383576985542400469850117158125294220635881582663083103073814951869158193854592464038522540288094121514618962026089026338889987842757487183388769924917179672902616072606627511340410800224174211945229915743300194677232770251947681670801834980900438142538975621389109591718214361861547307851553044820972941889869696769313856105419893344438834685831798246790640831400139881750842207373346710948630741310638099246624352367651529799462548289715890219129291406396005129273699690702436915264289549297549954407316010671344586923240565216719060478393363751203740828728849671284756216879102946600646639294487581419276410797678067828163650342154995136244647580017295079022132241383097596203061524521334757299413107762550962871430995506042448302519923989655884167394091093457838254909004377296631487219504684155260039564695119572002076323258449689295809711055002646427116616695353985016924821985131521802899879229247764647739366121390459670828592191988846527515812365950509787507811539771565138495708074619893284759204437160364492775992643959821469429019453959163244042535486742182367181037520004462204755148078749887659393304951523663532225552210838186085484896709740836830170503395273441731981946358676099151998216643441160209468178047312732493098433870534459424445153546645732729983858757662843407964409896310574010000445348098143757291581691785424016038447259802140342898915114242826893395449802480596679272444773015611930868855430795302644760785640371344797470737751588883260592459057217664814403986913405870831599782693450858899983054985694670923737157513625025927099696536952643460351700083493531632382673577120949750489054074654141167159119612814424822853331788272214828897231164723849668430229545114103412922467724813574148332807007555733005608247635394832621929284764462999965409089855290720688940403001390653587365034026609510677281094187977963396600094922203161103888752269915553450815670653588949830039242484960485017035823004668201652743100644099907205400340168415921834555751392190976852155860957389823874766415114577047024662624191464330872851272256513185797016968186371951021549762976964873594148300368515955311219691979734629495693105207015008395284046491515505492675668912535236568696323132586912773371839126461200332314593516622338053943531279144682047143242445164680568029596906314117184440015165914690082710814734903167590148224101480434776040228065490489730301909428966496786180806724067141693980625407637287422448114257752839490664708371569530224491462472360880883928228367348307504837650068466139125172408300630236822184082171782137009612308242061346021944592962204304463363578053045913446187530682053005558174091201742904953452655958358322713533250474217331035105256982417970890369265898298376768650296073028076517887053280827275932624408081755969737544363044726823664141680960187646703503962439979496020848991863469139100862325633714716604241703027114475602031734189959372930538968392524646755269152292463123546815115368940986993199709546213314802354454082323018015703575654060199653028897537713547949052513699077270811914359294231900575602140971025958423519031796803981443445341913179224866787875826814340316539786049219954210156804112481666147404283842361080246517951821981233641048099352807913309159016371204554996593746792591943991246550834320216352383888715195111381835404587298457674638364268731707789639988268720203371921446887333376245373770394379375206019443117422217724523249993186559050697059899264449636402945683471225813276609779843859175288722556964562273700202474166227867099783097864007277846322604443538777699233317557022069103030368335563732628698055235013532672516917868457670318054581701022276203570809861654961651104690565544069987568515392175367944587525375625707676534227236364335346937656827258047026701660373278688629846446138913496158272525777122006232501930130629209670580375272176070271601324771740343993428766415309522817745302188112433741225054060799497340255664613543711613510979664469447121909059468150032256630182622766389804637217410708691596826458789388494061970920431546366716588431896817832513039894270926228183293472516011694749641675115257295505070738170464325977200234137754660178095312508349041645204083754788186951807881633699950992248002731628617906537058105550180890955865233763162765719837381430731504470913511884231798150441984025383729302886203723388805278654205397693295414041568407713513219848188932540649727787266917887418882258355529921351584416100284855673152631595310122585294196205520378511991330665086193529358290392023778344772379556329785953587665029488411870283379490417360254051057318339280697693686206809601286662756060635281053722585778596050476230815618790646852900742477867925075565154391839926747222083081551582773810375268986432550422748464452810829359403389197579216273373246894432181822271139712164342925770646569154519296750201934024715784619723109397677049409221255510087470352287607400919589550359348871283190768288930469427847416402387459997515194472031008368504548743615160850035483624551447127561676200536133275603962274886207531165020348764788224549488482451058336210841984326458094345483160875641380468782397475282580887539556935050433622245071898592966966515899519968144539938818570097344397458126970357184647491178402701347328084586412405356247554993879389920678759033763777460764052793054233199867332044708771944058163120424768500678391726617224307376461685308199176027511719385813032967195586318159676286563420115605976039022571379319452392363990857902994006650503720281129596814827693790430755219994623929311550057544013861764826894461776483644751348981050882639858793394196221228511655159914737679793394730554671553005464152100933616353721044346479529543939555477772224866531218401162984945270965455229980600963953264810316021089324367803314517852305991350763684438484371617972459068607204704847911736234005937713453100508085798104074115369153180685609108062270601452117840418750560070185650389005231341495963711804500291195223290111791389504168891262559183991681500747127411366943541737992566435186763858225972054081418796539042686776781416126864026452703801369352033375525287487592807180133652929787074693878444796326870359280430779806796903125453402172698654550061863906607866456278660398898019139110372954836138936696885707396904010949086203920429086107604780915206736036328403401273773553371492294437531470464529820943925595187093188650648618915406687112251487671131109999521044563490617500551156285939258332504373255427649935587096823028464334488308881356405157959517143028391669113579485289614571183903817549267554025338340237189988036041874463174215363858665762298824758750370388917200036905756422133802045609024940577509483214437137376786536215155439661789737463840824502861006301950767143702304106684277072109792429475150618720019280434670550848122018494761425539817105373992611571447518137173191720280420700537787019783928151513941835977567505680568252553783804300750423633022290541899713542997407071713136018000295069569194487045568264908736790734833987737393521688671575389341039363643892679695201538379924419189333657087051220846711141101118152530096763638540405764255936063784639572812772602980308070117821064922900364936886136347093729034371127631753862349202191827732931058130297038851176685926703191248568072098239096354431375831087847729255830539118046154782046136842821321157095461026031871731885770108459942658227938180477098014484383445997944022926551802267452773372761084484330316470551418670279139882932155099118743430852037389528818330739115829044222441561800480167440092859594429770994582388591745873445832558864428055098846750250350305205147965462876869254805113290281749776979303601603490995820707862837493735471845027539497408247430521255402337213317582896762809242656871994712341059687672121063452557933428180777073185410912485955879138998107964794334312473879858481148434195829468698038502678768369091895421054930703457923502758428060573766332081420899417330324396574537526261038567230780525602035644814689849442449271600149167164195923439348158504714105896159057556552824775011707466171384339737397839184663211576153774186857164517557026275462669201112873768185485726922701693911694110174325342310817506179977782151701820481159438381338617173571318636252949465796861651789747063550942788780774640670602874436298104162392909364227483421847260821099520730087204508295147042650033526648356249074515581836766768490612634838420613782835981022666424840515146898692127144317930558705273461611915882273151480550247543945716767676928397133628582173859422400211698614135403836361532003841821286619033680855769636002700036777522500241130986287357868082799090647190809606957589754950584873625399335621767471815192600964545891485154933897879224781164471324653763202153996728603271038619830218151144058048514945391712540733998622800122670612993649773548287364588964234344316850721389567670282546553720902930685376344801110882112730391444818184434952176529565293343141423522212261865933032261548809220080227697195157526789500535800796572943154936483958795691318729475819805883683324554725597677228733245066429006024673205126559781316258624447402418929210878704719165661268046114394157380926417088875891654518017398900014896787076195396546148388275601583750395043241259749983302589150844993774646374989788805504218897885721148366815150811178338403954548905317330349570663435417207075279795046298110505715398744260421377343123853031396862414340838584058663490395484992085204876208873493008603293431949025055773825774159145004415764816350173276326149022860643053264906705637898008137434579714568938125569764341776196383757779324339401996338817951333098411242742989793867550580516504064356136801530964019171417990302752901453039819345703669897661497673907797689234752015883842720520805177475574472011193572388982927875962408706959067607930928440031398250743763994740685543872771720383097525193738211065967818461058005712616174792999088924568659781441050782565942739639617433958647189828593446880719941474234003797624069449506413567517394994545809480451583269813190773069102649565581501088236726016821998654744628488963416690071459529461221344292413710210413556553776952710152195421977823978809951607843195537575845974174591202778210233037565768938193226076983453336906897541814166313234181382357013794085498169893157373216627620356920321101150699803513365016850122062579003419721161093832442093112842007526878135100062440753715525099940560320624558774776753120007806561257671359925257926318328275761472258919150853188315817380877273764015601850661241912816651891965288014688283951375079053821949345122274913257141034612347090700427823484969422201843640584312717243665857377083644900501873904701843180068644456856546868054053919755655086676002526087948646034751727992849485651035884691935512846661745802864532060308134370666797734591130451117136229794569932943249407941401717970323991124438060610004329012499880448357966599687334658359479015188039488733366415356865291899894997462050212645351402940425274490037904673976243722307437860411115966670989815724770437812117772778479119652670441169045173033373302261530256258058848322043471693779857983100597447968409165738186089801472298229731331756181917089981197982710732683688238694499571284500560062408621115236644027590607210597423187048841530791529940095487985001797183140730061311149924116742189187206676654311230939943576434648506838375829229002711358355121270209968510299590871903635199325530073072556926309767283502865712017760225770319685062647986084531885556996901626172191771071614476258277575322582239894876618951477364693943303578523241918201288431747860910078216277693622154551234217025598098038757015860702607300999505971860872401046342830646980115923655736423251762122028429885285992456621120323553879969840162065886495244385366041757712156578879632994218634222168515280805764899903765228604077126736799421547984415658016473036352420276886887918990605289585540947945696445297825125912129666507393983055967622826173585849676981437328017113168339245932452011353945037081363906049250963713793110963112753987490395279029405437161420352993658289744806252976454262101104430935309379510914975595742853034726095742786825305142260901861052073473135135752594313042988654215383578880623439553360654590322230844674241709387319867576490354290675233636350513906094934870543655869649759570673435003342052931688631080431939288413221040534792447040711054007539964518371034047778592956613071994394926257698566273342207411441021156549027708541501557422726382391985945726446597486254387510749886818342682284597993756030285578268755544033696965810861037554145281240081886677142853942583492650616519763537144270984321267712797534605032418996348620772059929787812206524777913680780396048652962123587085790791476032206829886226088519766285966019422998652137392735930017957700898409351989034244311564003788785536201622017145240250966653254682078372229966903353041023289470691304400083982316591339331114223960392085424598177526667420266228595570756603999925543093782825681959444930210266346524889445743766013342200137372313419243205713577957837181505497971790441092976240062701067989426860004758979556503026441890801316133976905818783147141606352535582600272064188940818805634458087726670110304239846307850975460380707173615112778301879399980195982155713746061715925906644624253777666663566620922305143450177540406384174840319548773969790650083923259795754583782179494592077535499638504038415378405368364787499067662008621887866296392798696106312797593414792285649241253115477565468282868887350627795099444558792778753454690197951937849740934713898331256343677638669335482560210231548802969385874222694888472546815921455726893514148992956522583160297796382342906173019834253331054205621911221328626478953137049592542492364288383541359722898245344400190585845954170668580467383108365793255168345502886627266927396439165962436799452979634831214515198296492107306984221564046683115576694273426140283363221697989009456858925754576759503395531995139919127149200358849887444763881500779784300304758276475797334582053914902005571794622993270417420336377936657333268906164374341948883829851974117097065616915026163118185131342515059211561264966821610182562427172063171881414995493095922975356478171393795374600788885173120496100830475970479472669730103901504022603950421599949874120636637184662044274534591397708466777663924914765403964960492097340193224781774022125007507351643349146110358089242456725412108953919438831154083616251703604060434804901528417337098921022376220804793717063610938236778470425184971411559638287985910303915682040057310841361341488772147629171375129781372855994670840865277218862394320187725895490763752811067254179957286909792930036864325765324387137786067372622182650960398562868257999019904736231830882392482544111764828081873082802922604658219910685277979071417165391677953184908862606238630646745841557999638632066724330330354750287539407215260671635484425867714820562061722768450516316072615382287440615904635405145638226283669373573525605643960834067758503871132726566010594206676919962791474276766234536360442065432677765996482937493782318944076265904425817093154408405071011663125476226899677116857563560240924525757874078147900351331349596035678917704640530001049082235707575839304546828301764905883226762530846412734621645221642128436800901288960158905468868983977845788979578436846079383446944430582598115205884701954106354535862432551646086123945341018046785416951917824847590483409848184723909926568021290968411940004822952969781029302371493122188549754293479047309198353536853682011029698852888225742845986988982380188243831176691302702261701882073563891523600923370920086293670160710904958655892045875981737427734594340750133459455396794337264970169116040344413594560887333404311850362836569161681123619926350895121439104436397311205134020121707102708706466760803857072797909061123209484143020409413083528475396905781166111840880447919858652455234634874546984060071189143529452114350507897983277023196454390444971384298645244435084340941426484398399395514421283142686940397408759473918317593760732155334069088970716916947723328173464176522040436601605126596950988406529667275960666709316633881553180004831132883073632038294122283982328991928135834283514791516242238581558769970526668197310311798563703997793621597953720349824568590711486116201403794619184414858059484445231667002824147761656068131500015907687807660907986187023920453198097130710417532893744492268189535393831861959964075076253523727918924792387599589997028384072578051739604668230456302369851394019332462005696395137078883011255707378262405592416321251901543643090274413203581366993938540819894017328173039462783497734831816064548069694050045001197710446949694744456305576795388644934483044145187212527167638030740043322393363637564743077500215798525721179011432837773590811959136147279849544166136599031498329486317523728029363548747354273835824356563870714303469815505664106560406101789411944946380612219191234843576398539352031957614799592797784653598976190507442799247429198041907570396282693396966545434111143769996685203433352894588950377160715885751991863836312994750934526722454443205568657123758532259214195215358322043543203766611488875778810566885359380214892150393829412458029512169376320085998839267789864114194899746182030223296434256210932406039041567780907335201208211986328013216977589251968992309247543456801212107661583149169174288135258848423907629654299483817072541124075686483227170868450496370644964577193721449511224714463143841004033969807440164738774910807794409150734668458316159354346861692206330749273537904723348119843070002103842265652783029344003949280053977010378823979740603430629274495204816734340489282342568563355046121330151164926548466596782106483333224473377181489704283244781809688556690633487096080069808821008794280783679852637823871236246518422199757994972973535735392865449432157028975419467818185554658056636414454295492444030022231796823840716692691069166512570881399210853935274185322841769134237993172914411135827168197662955267008211757920035881907915085867719490108314061135772177971894270205011229403059234620119442131008299187054737804527980771322965736817513050913515608227518915109841129529978944758979708169636082180148106996121833577330664236577306265387299652645964053002453571180508261741725660771976389618725246209825931702635112086506655908694185916671590998825934190530778591732875566787468815711212800900318713483495741471925849011195904322546558629099225926326886972815754941023160755381603298893779271235070405135139424123340167665014226632944555248663374394187386712747384983399095423281534782302914376397460823553609699870635506830507619745849316246614662801255616465753869263218113614997411318612027559627431419838815220556827080287011276913708376316587106022873846960983423039812116664582715499679254768943262997524993892280429636513582703020089614834854426819033061990691338488934612419683041262831155700050239257723356345680191927450278711233790656269772547531369357017860447014615183725863494773800131515191369485549333656804587674606501892964493524218054084602062616465228439812915498098330987492299380886041854870197695626210597216679896823441648426801830689095060976948993218186782000612341972820203219954629263391011078636192840069449743436261766877197100220436200012198344262238056030011342579975179014416280064747432951877985505680948735930973802255133092263789657580387503411693757463842674216185740832876059351615973549661998149281217037295572293204288536503530976282362974144165629999349660590344455213241866241023618497273211121599312072319454801593276689198993475621557837186045006027651613087958036719229736622438502578400000471095098788987005455168282658799835242832620313011321730446550372176774264429190046198929820994475985609353826750496738222438700631892820976591021662234536509194976239021466019871225685218105733230047034037924355241289925298848193267293885382109310603813792843828080536537492288777338837574282731884715490491446237045995417201227276607734128397684214444266555410869208712937741122298052067524827327720513920056864844832746662654316791017091200014219053361878630950318348645253876488766317139051783465205111033819788997571969671461845917808700732678523506526692903466808036903097082913754155943216022668575948588625831203798627731493042405138413286217216844421513065955971787570147306949970495170160078772095751653119169413301933089203741180773873053035271219772617612720733708196937817799419266445889623165276673699087704556467384082161283200337257051084934864359430155101769128780218828570762051939630976736303514969387667998739643419838115517832912784555607620113157565179445723362931010370675427843710739901708232333040642262308458867934020107684473547340737881264950590706963388457538943547909295081576959560227378162857572461527031699722139306973682485879859140260862681317442461935731081178125664778713257839077224184702894357235045445000761857998970362013937322080004754031175677693819221937223975926752103286590143914839803172468005644221829682829680386058949987577237283946449300507043633576890161683770036476038808628082781740194589614770424130281675498786755097616462859638721967835270486628109761415203177967002403158065575919351966523241789839756941880033941167408927875845203341345596995901776353514175469580603758798309099714457889628023310168251024466916778897912324808484687444881730789222513673635417373288687156677011053673387598732394613019794037169487551544055964214193896451497616087050293171151948692561998454544395854670997973051776317932936289294555338915070240211730892458260724955189971401634562141816796119795595329293798571445199201010689622106467026622431487320321832736281677711966254079419040890993812717760851279452833744824571278742254532316973946370176762793486960579969339143997227970418474563614534094808469957971867742316064930738462447207783717883552654139244157448691325766613451367939617653819737266837033650338902592376989797016285073872518114139393397498802077144976935802943908675893489268238224937754410802275848932989479166574600991216967771216152925712018493321310413195415740819419911865222706940167732201057350266218784121353108493368706953936711241599365050966960987560527321415456328746716461629885534702495326996136042290621309822212222907110384297095015371628163655575265277756167471255509824524311167950915612012155191218507959231736102354948536488321664741468262114438986575865700331181792732870159843857839836768254871064548334733923696826351208277784178376242108731524971618999487509849629800700635037713122260650667772900054994974125096177578794990780304149808470649421375797545488739732053984400404946830082611302459565043493224089392017436359867818442155865000717885164238895250251753336315739957164923543558557862140980148372215673193674185498673760261092662829161229108215886962029178362925213678868317188521681773781580458392699594731898650544650019277270763721825238565204523010907879164974982447962653835495007447706350435480986085159927126369474058175567786852153677062620603819679990687148219821404513576374074040822506035080026388056092769381072400808180102813082455667718098866662931965841376226986586230501719206376478968163247484829867888575695972501369735413385256386798595145540566669588827917463951360674649451095898258694203317527505207568197241243055362577180852601288535267273289418267697816238212035767253492827543477179384255209049337105337381733096938300743569401229368035214359764723650242319594229691513385191344151227458812943318819717457234664238788341704012304266506462564263033580189599990713823236144224265501821957018711073755549046026491673480081109293621773210142120684442400740977352993866549364600528763106881472182423513949522297111726774663120508314441983440902252139564561151099677320255548702179456698474010441048219583394760428812947916161998492940692574743752251747683805011003445555516385794995990046690027327380874014072107137152036206227457675152062345774682093013018208870018322312305301169925904647063709009996048639494466074394320444861542787405229774162716860164166726804109789611716489711947988691382832527752206256397122018197910164844490473349309770789608632441886607279487060549538260225625294405302356347383736690461162517163390378134833849452555522735142422056104338641640735707361556312870899712029042766958007059066018678962268890915953367611410881459699886635760561997015160578529794440363224715857160898870637336275528124201633239550096310827685242219093599849323512474045440528827826896970847936785128757228694430642446940230412479318751760655807991463418533261374746355526154572699442080863149552694251977281015333789199830292117122499390643056719885002599695817427232861962592617374089434405530431616073808937771623315962470460215791235418865834882939761027218839730512127071747176237648683826219429525621328984897576325615621559203321639673775942591377883036225414534870489867188064574554955377779981015412859166197928817199357637081901723602763665447572599175673351299327495586356166680554799727850560363183019538081569171741269684207671471810230581700341392897012673995221861154431508206282638878100250309404386179478972034918276641930816996049196742127776406433834668444482404748533058258297460490395342491131124004186891213313117166127516942981698358124004960173520144132329423610613254084796737360572046247268056613194248032495442174783339695812337489817524966584843819630543276782613876259554502520067761236151767672966583851530832361443407629721422407703372626630173279677845191884263760001252141133778469931802827089264708882805301839284352051240400771754459790463074121855763198356971300334062127946380775204478091328475796503741322845430123570144013613015614214700249732789573732797168750475298011617425000841899667972709296194457301522747031324800045392217364219940330879699103120340150347191880096767204928788353954312048120423846762346869724627907840143759969676923993848309694417291292336617277261226781855043754729453761545425975450643344730759969344496895412885051598405678598732478684293165532772721929878269574189585183596751619917780806480943142278201755694261594526039287061638373998246425948698731110667789855286083495427550173691788363951695337191032823765279824405240835004019371218211375742021812799108201705549771765394769909895831943695707533434096644187611434714742652828062038007997232124358128077570088421359220328787565264886599644193765612290030171325760240549688189225981491251191427874084245292481367054821749809360392855325693452695385712683204052237460854759695797794968874900138041588650098865261821073535898516039617577965971801835488818060704502445494565234641275578976175726001999890143652437699341263100578413050761670190048403288385393211482334031665419101125962810399920923303070935448677478018068588888595055816374018007198623821912194297459298642829153159852102318753035025651761329100589563384633111646860681330988525096362659801525970249179883390975536450101895768128072686117108466097453182909840978544358652327469579526277756537934292999186607412291166107686451406328803103903894403582568262063706740950532032732544746557683594822660539232797129062890682921911117217483874293680932614847958308562705337560910436432320919568334235933692162281570516313643303208628945768771002677644772228428578320927282656092918999814478827246727789468136422404216081106770363248311010389456669584459956137421185262507337499021937085105741463337489709492854362136303761122153057928214367438958417207474653569820945197233348391023226677543638622611871398569439829865847314398170796484926042245434050853930042157679842692705496341590229295723805929162191543414413842932629162561603247600516751146307569377657285588071653090159568283422635494030394484035437834007013615345044329904371728644375051605713036417272118470023702118007596947125894621647716994640914509559915598691868380753932889890198683434837764250702683917406619621578100147811362526569682671132062714324096026064965085626353153867991161500883856953134385321910938284265735567929602063843119728140621856352618698781799882488100385112699524415257590620352684855750233483986917964209330655365355364361614618404551006253791935290996200069545710277910451980878546876285484508919556871750976308416991108625946909722729632913673120718937476129891783219840071977160599412327574163660705223632942383357623509806869474962344200358224558584477396068677677997863551527401594090567128640582508080376480831199964147305144513261702866284806316529547834312321734624218824935127775272137824922142596355466729262436171850141248611722790838287518969509185661508591601767657089594943425633894636140073051197437218014250863314129195132183727747709758681418466565845357463705502226812561545892482791052504414778265398286161747004263616703228213982111071101025451227106372617103396373129754194752116281860906570590796852795242228043223798446994154040858484099904707391458922777718945526812046076300003043033750151125357017235548608764128843585454387638406835679026844322871353606584617057915406421925494660588166465017865979607011307746414131144648661446869276955466324543132398059219838913654621150044793859430635006101354093471075676930109589320057005397264702035485481858077191541687477507752747722431727707345731817833994672333046901041126649332402655072743403798772813235744250298762106477948523246883525476591858521954927484102545820152548746526714956015160129834998211638539981587577902238664463618790472469766950738666793641810799699956946526432119014370913948898102639790546049817806357336426422604402388332897467979105079963742251759362613648881187226712939317420415972582560176640043026292757736506161449337536155492170733876307463814943692621034528283951737448312561792819460880835162217017606764210771179628449423326057245578070841565697057885494125373755661244065056349117641264186049446819415905708378836676153397355990908174816709182870496462074106690260102907306431708509172678879418110984142014090279669137614637890813629966088285614526446499759330849495596238417918871619914726099123896452197575563103399537115847984821577859489015150648605162226012118545232580324867218535737520726131989022414437070614806508286809359050905782635690199945547198807137677002253333376068705942080081371261606778872923605791280306613201702490035581325908083800897091775210822957963448248237581344735790184598004396307608429909244508805909302529982657185123945821485038148296047179934141837421030179167468205274378640697227747794524689116107394295208028164561884199058551192278902617608957641043784829341167212588099686340144337241332280719761623727006375180732288180186536935156325485646140301687633170393243969318917417208839606777490886161531865333484170646827320338480586957728591068858922643175061761972921142622952925963694157770315294432414439053739058021280578817758585414886640135871135816769597792568639394024353116078639649302039153190268858156709925421433245337495421325704299207196084230630046327624216762298061365119573397829974737805080344921807956421160005767149836726023127438739057144782818233669778565910736877874790341521538051841107542237520857399499312900678960602287776566415732769187121056364401798876750357062969542136072958674651689576726336461486176826018770112365070522860395588113047866245270388932575218267948856662249475857490999856587077106618858503733190074799189585069095306868223581459218112342657625125325296183282111025907685740539971008990207155415857043153697684653717921057488893503149558879085302908968552013571621160946309372899583596401453219560463115322604980350252813941798642645579160367332883393335822308842590396211639620265275803442487207042722961205006665976711091483550876283761362127971610082107209751313129375766545847370831145922123399344697419143819349859224359570934776875123322576600445454510485240019388578166357529704196253573359356938520395864720683097931944937345559318047502141770076666503270744863864778939152687220341535502743498656780929366809970863577212796750434541495155710377801254457354571110795102692900672580555315183896752027777424389085196359815951926341232466480597618861325426015421206599064253128937808371829737062012438198898418672317033636159110509144807685344204388597939936212122728658611662956254243009710325538846204568026079801875368016280680986974426683539881275776292190861901094850291604758345341813530915945662479417227291173203054240200092605654994560116010819430105784200486520914061276202795511915638331389884545909965657831711210689927815787827104626628944807919465756379870845718637732087149552947664967774054792465476315058782058861113275841555220307025580593523754000051591874041138764567549899454522847963138992871597582187935877337685898578438477239589838475763237241048898610507062630566882076037443341243021068133808353156986318238324342588792610756416732535924362069683225867923625374146813830737541405351540587840626726844672651175295597705347329350886960756859075674484182468669203925683182232894578026656186162613030128793559054541109161835424687086923877004274639227958784504018100677957274995722077379467781748572449254058196122761136254757158598291995194192479262194335649550035947244824677170575620867691275139101821388292051806372805086447837640955733317605682949837399054695622826088572406926239408992110758832972733462962695412478072806696578642579904991181683520639099659011118557583347696107276199739251370690396235116110711019171594916975446419821078853881794949538572333660304481175760349617081689851100943702656771053296652506101977682508501527944703152829769761705579708274653141570404864883086029952039959787821226844730824175007157350933207284270443996182903628286374385793886433961442477289891811708400274119179647127059443011715856490069562418875067705007821210727749824287846235049614623428574525961836896138404673248539551184659932730331419965443283398527815369773526898342300961333825353606489940438395845753246796484246094744760091500481598695490146130773703100428670512238602336447765195353674736837606090104403263212905893704892364706647648984268583155694578786546983506031579416870471579288052718981231898961412312509280803755531329949310179428732774740779496503652766227399117623374155604330096743170806897550255400469222487488395343933935900105269528309534660007576423326508306385287842613253259236281749637965614457890908769945109196978787375838761460104629802779030396776196560618430844558294311523524032429650943457233260084582442699056297921983279368202435613528994424676514242878863963157031904989721861053412658658352046311724342287530720618271453695681356469273257034626802181603213766970535264154854103925091814228502438695344885805352371334603339023092731098387407795796891315745453455998091856043872675293822701615532633382910578935120479528073596446361844104164493000674499890437747698361213780445971856091129012281009245535292119718279370096306088683147509544446692828867782797819245788192363630445789322275129708593798169435284005971047004349483819796448914471375744023057897511971804222719826526777203862492980052356516880065583395180853671648324305118692873825135422659807092570952463476771998705231706157042230476293748612132059488032517565980359047837398699792445868700438692295002352188142508552673303720889779181732059460496218128233059966175258383957122154484989941393126209807820183852337965190217932192175083955060852905748479593144611080148022309608688904297561871125242554603891715452656159776219951793526631847636082869978651176612389336859454421022090842461738437682582602422795807742306062385059474357551470242270366846280811939900941965634193967764892317351709227145014117664644531155203679676567681402302527856465417237996506103580930846279400809418746099441937180319638068254361610940088161201212534912191391107676789470874673013494195565691907543405013438998351887627594895471754702849526133266874509124399315870902028591338397009244742483936837106902359954477484679540911257792769933532729797296244501032898708787871078776227082186175224623690356703142133630731995270626033392296385666292105742987607244099934852871749177377147591892305111497391803039813505831168329311864550617352392258969035959049112380049244561691003984323560230659709723938790368094048736170601614717714595525537524247719523972634460721368186172898928453866936513144179906097895066595932581120875924258224182469935533840999909016826847136168489322997726386842768852353315474315350025411333275675065793558804714387487629330639548560494685366854511571504864183788929694184314649923589391464664458684669399322504747095198463599610973478943433094713923797987343840337606721960766944793821043035045267638695956008846023459558192004119300859540206156458420309856550968253590614031742826837433814453997446206992257979492760123564170318227510054285320505447239542010242121821077097027574740262274815470718047988238285126243965194746055672678249944697603526244626554453755195432648797875584375798180911776482901015101916897235681285339308898934435927457581633505420610900268084008728496221247443234313801086794749833461125134653218504661106180890231917176789469342061974726804011616393301754097330545467650520300579480140516240603881452766642502703239640736581491207962749471209126889701588431765677631758859889197129220826992788907388505304917136344892866007436335097376535007888688269357161001844793469170515445194429343276435580156804179692138879435921819505991041354151306968912750677914769336797955697203148295017025002748080075402685668231465726143301449075436453651909962120303181874183601059847594795766126802890529904105656430304720765684485756068771229579018482348690634445727857832540330290575512712625859124690722803248423930002803231314115080055812622834901459801845880836760286516809648911598675803693470663711139706266826755810198117164155699411790428009388863834360894136849206714683870903660138754713145910427294174776024316605889457930885951756593960289999281829322095166005357284082510882256240633721526329224463932537591673284114240741038955195543689391568599202205505623272219288386160812237501992246940075407322707700700427529912162634069145081443335970811992900826720417159394226980924520830435884947907173982878893008039081147644033499498223510498738928147453644899753491158757111409101606600413390290817769236833587991266042088091593086489106852363301982946901005934041084221257971248621331116935748903365948837875153882563178477550197336543983105687607355450843736617098804696822339005577326941615967890885737867665624191629402224545976576613642445557280342034767287110053794586760949525039603603614413956599140912495595083735937751729396914074718371510082951145818177754402530338433067156252882253411170218059493719050142256891022315993438142090235118355650000198325122401853481010291173436071291894084158806945848780223502875072891668282478951650208376659984712458223739739764325423677293849577778888439038718604341295932861846243704315676517995403685300916701944134165739756725850111836418516888247480796098212992919331251103126295887326130741741808170407059969104835954921915978088431974170198755433126079169376283452169303341958100954496467234471086483081714830621448098346814344390017517821414209523275520952900745912618783104866649943993416473569365159287491580180286035264160920461477764636182564357528230458568470737781131730090576377205181073805806367390085884862462483053168734195020867244437493480162870456748784454488858269217795019603523133177041295404378576476093125804756829872548677973146032177971814330427047776986167066120781510372052729555947936529090300714618638093173988111716226459659270175694394480144395967005875214707681655262716779900623433690829822975191880093213360824060589815514489565517770759500791291742959993251547336775563398283422310493701842039767781434435495225382561995072645462959976823337259728078926491586086888176199941625098349194707424313607274572826466277852377326414373099086399136100797908366947390098709658429406308748994537933002724497393251626655843362807966402226462444424725479787658478540601027770147163634105243520006534864503454056145065780664424353835393207613015834659741159834307108880171650098168251542195906307106170601012856272328760373911653136709389374704318076510961873279513126826989034689717216365688791290818208000865556189852257164948216697421683337855349755185903638724372419645037262332285284056424491850484013744104431238454984365744267493974546570987072312607908727122747915878154088520796667406308569725499680749591054876883092548081042719161910008812464107334128479577970604679638961752766453810862185022760200472115431036160685903505395139187811499820950139803446425832313958290067386493245548321314355505308640760174103136454079609900774669083181830845650727651122320137124397511222844432254452939026668658045927190091747706893910697215151856540040825626773473218333595925252889984050972459729762503510125709489736278899718647541687700102405222010418695404782061913384182516231604379880462103158442031169795145542990533400640275414135404904087832249108101411401005148048630687014062183397163523399341240674509681410810146732678480447305919260487767696079278532064570825761927272216841648424794842809323938988890734237619471298437334806633821991438919186944782453669943234576750833137686803451667465468031208408737769690082530105082721405020257878086180324260854342449398776146089347483322001582620089158110954588428226356375462415354202170146308340454796686234652406662069615778208357577790326995643208408542746804962774046739501465624008738899245293684527190587146957794355492432311504181625943908540446854475409506534499069067058136620469822531811019858637649286819223365616647724644346197516951005658685333435827683092509822959221675974472156665719016092278797321665590387150613605120004716240494305230842114605073677202243740714414269383310079758100088153247067014561223237336311557974388039580542180916550292740290307970805530258156852149360347929685403573779550462632169380802898848198259147319036317345531219266043228732019915377889145812558361554798577663579660035588691598762466985633226061228910257256296489559261561285749236276148665712479139512590215652004640505902503368036668374255674494154014084871333385891086715402122285439443490696660139962376334357606499338888384390293623818992153758589801894447632233833578732562383606493566944155225870739393483085233966802272255453082084789103973730171609189242434831633993252565852034534925871899882699060510851822067856618357242540695182733886982130168575041219087828470484049587782479454837450806151434787607443655832439238724799448628592712197133041224982843475192573934726211980844746654432853424190894693831878571550504343251613632442240036495277261812276040621688777306475359325407282993820661762838824423304016494269555027163226288495111946362345568649460307358812102177956683833376048610917979476379209930722934218597206924801564382710472614283728980144012194299412879707219355669192252982912471694414449648001553212140897632351565080398584170209525725019361100633735764922127652131475563328992706488360565521945932930635336281824178078712068297218781234446469243269861239160079344395732597705530906465694850839403755498982526586461612517657589881228566931571970364347837312014554702449530197982659275698974401887158821082419475973275821735319513748014786071270191286389283144825678744045896664672391208704340542114730490602793393999682197241921807812642443567038512122518155960336555738717398761110974483230842631768056201044738488821745332821944533437703097262836946803029534146697146620323023324793227584192954607989424653325861027167838394446536832550780655520609134555233088415809434852366665141330332182421041131085168318971979486978267206228786549970636995645259089737030291579909582656797447256612716494605788871673703194195358115839209325141759072135392864763467965788339579106728297944783571102144528032375668075457569114220383518453309534054353033435345051797381560079088781164111055867559987578255747045706339273860255241093314555356541600771356954576423680700416088692149919490617380998662058870979831966645809295721480465048019864262284905163846584721145559813788450690019244525213937248122663985132455420523135834224807707897173276986971358275021060065386065837441226311231392943170543431954976129810399234079161902716457871618383477068616075773204248619153503071457502883474821955000067487916378481908702910594336633403772738325217290267587894360908539101856382078555483913370489426368757871830937596921693933176358108023818553372468182565223003114909097670057121982931686707668337219328065040800114057231717759604752117129521533079152146696446889862536951424801672483612766742988238383427232832661990600650047296727983391476525739728444321177025914578522954388979494283169241806243450708681951825044217679357004214665019862940716366326373824322838733320014491735698936896697477905844865717220372700492462401227258059493523145745746250919867751647981839424365202273094324969248084299556350565284613447682913724290717546320484010370802441811591638875280184757754836524794132503772724251073254300596999150528397910568724792269360954278835720346704649375820736760707999247817387912369375238346386079022304751001938611278916588441793068171172685324406416658010117160181939364087060749221022501509220178363969156319849288921140250548014646640308566164087846681265253848519798973202315435275315365754179417772059262927724193225808056300757757641074059563482850603853789490025884216050810795635559166445692431093887345183740207368778669036993889876335412757449301173552512176759327322008667242038841295267259907541699101284316782412304900997267291298557427958414811437478533683479754279511601727734978416303593428247608552904263244649587463408677955422238224086311639665568648888425110854683749198126711255401138458579843392653424343281129263460096012961525750183538504965904099781039229570488401201052532959415551617542490916522880798872222300639879501120761535484997779282142555513387953875673576178972127548294842384739100823741930675555519462727662815905379779887144423806285551698217415984963779763279839242216997422458001669284510971552752406146365300826413558568858643117924867037253423466258789806090191880195685291568311624911883309258967425960403510180950716710353080512758879236846726420065375554343324518494591406039835370736831696474476921077600326395024615564388791607262760313910250610526287249484483837875228620709216185441269614969794012685155723478012014852275599030557688492453431497250238156001018832194273208575336586709614313374163709029098489516780826279253091810977482743988072067192571032868543777410324169722234382871362501641299378559247746973205214236784838083231600140387979675134534893627904896391737722346111572134515422837242842811306785599685668065040959930901822650329791886773434665016620646176514876729564654182914322736074716519917020531638754221150435216180240775152151642089364461957099485988064320909302974667229370124069629426611627546580039757161900015327792487062173396777361373467985462335217700314419616885613367780415704159500911039036878029133058049891482909027826054326918280242156577661325368265350641307645835895991671889012424033601565225924130751432023912326797033080017332511472496212669817275264558342878273660820690329421599338714103092369477522821711836801804683885505171966804701855930713117153498969769600784068945458330491767708603921547591157160772594273009277144184144112110774538997002437150255878708742416822748352576728621167106596103988792608353363489937866750980914714898134197395751627925295441168765298988425152303450915118971128493791607275954119725195278565237869091955123186099020053848868522240410752191617519383822708204538621218218438770821677928948597501314180352819019777507881543376472227491145715963748191299012830970410696037759581104675503983883899516767659800468407188277093256047999801239680138119895785247242755550577055660134640504129797039592314996093237686739841193077651646825581162617025228839119960000214014951840795256085058178495544373223891079630033805889793066921903538618398096397191479591796964129129656245285276604347990422005680113432847979386424918186866515100430372563573384868862705434278721784499660725259207922215127799388768915001972243340477902095447455589417537271224292889882483775827209452810173612204424646081002225713361222059269063789576868245625790664097987371040812303446594650120326746396671570318092425425209953939212130009502094796219203439359543626570528908384995439070767587442897035153209888733567140884793468872123493096139567619749649735739665302778371945905683206311822376830778649052984234850268966718121317642863909550803788791467997086722912090482536919579629745952756433443883371642810057748376220901137479526367704568989708316852014994968282059144335795248966599513793870329877249929474710966232779369478277079265850151104200267495560741190440340189741323099118252163210767040408292608014631638676198407639661674383959252744690255979400918515068281866210275865969930301070759924359529306844083029744903661034145960937249919056185498124195015458236480722655280104035154313699693077807349562073100689423974472251981472645588173954382990192770787786076130597497165722270063623352128447157611596614356557264694637870202838430643986056864014990721339436699034047853302597315840410078480332001016187916286548546290702653523537321306086999855334550681719908555498018927574988414669252134946899443752922467838080550040707092416359478871831535556726406906572086582053301020450042955917393729666455703977658271747301107600850660979118156224742982684634342578685442577648514648488139988589413683506075254695765819670989783596374430339885567703997377013498107464063323887999091370849443686034518619963954867696376272778775314473695005749904129708113401178341596799653703141835860210719262644443644801825112333979140849727152184626834933040502704305750271566458933710988574975536406231969667089873403446736603851833032976085542163812034060433181594383541017016127640181833389764144619507919357401594578913126604550444040880757910800239311997056557629820762156702286168449312597202914837246916981843223264540160373736978364740910268832389745261066783686946601272449237602453121639609370869641059737770372137828654306520854141673934529119988437396757831732836640068945597597311887721694553114102102769589936048026724214744567871894100585438791083620402637517337625553384918905734054961735621698523222134741824793626118309090282699963015569765290899532057339658487337665952802468797009150690072837371767277464780063556801189608928920135746262650167024657688368017118187386961997716630025862630873078440755900907920998039448580014446821927217695278800706375106657101039212674626826989738539542005164285242787568434846905981848220998535839885011042046704221988918042674805633055640022196576220359655472940606390295719830430750389186847607282440057741727450110038440963509438338554323180648614542163755852457330084494116208489570227204229210191096374460328944811651491737170057251974054322499799265506583768517166656442404234385183281445548758161606721026127806609369913542838660260611716590100179860815139219855088682378040014743597159431333124692786742864931328068679966717259642482110036938196978573466049458246260389660384884346836470487260273625939611263083875635931210384347540397229284682901883859123666158773109363866356425336064891106427388178183623042389084187522273863032851238630123792710463088910963227736291713373016751241006797633342595334817862667539641407357622299980158036452244991929623022049516172135937410858618107832853124954306279555763125044510657127780204479124230532984660042657474633147551328367185731169162972983658248995117386120790885981483956456976481898383419311371658197348876336320460521210546330212203249544438219039544782786806587803864727638675297642197773968814479454399584035212033120207222944277138342659619858242747402836853259808366628990683649899035944472135329385690742477268675835834723900823109736657477125627550710720085868201845933991642413881649436491094613409940658756893332847417213636636362366262636009245022742956645901245681535746340426747987130977129223241599890381472762608815005426401566113641967478421577921395366383233416277716728894893304291915319086240041658855636799835923492050628571801809090719363876557321486926525618506874180498379325219370184638580710883517428383697954704467905992164845490787268645952280646834161493767571152796598381575344106838796025856450981268025656509110360921657429197739467889985224359576717485998561423450623324203620353181565749730006225040314971373420718761372969883035509420382179730543647709626812918055914518301855152426594913437007109263296837718078495179195763127200566773170915458109914673445195887757760443070116207564732101420494783581422262186253771776323670093633093707927552530171725499928922574469226337062813539412649100466742806747855503569593447885062017138393837416488997266582011984833760612164762360814528289725296154549948042046717890107358177639780373472676422689656922722142060365116385971857372786260524248311056606352044441354314411413710323060949711286888506360903344699783545396918328146924854754244627817175349191588710673571495138216087304370033375285626183645081419716412102801724024745947064627594267276687226824405782753387733735836181937503725530246660600059472151638587949158920741409930960776444197885248779716268492248738425503229417372441099394764133114636948940743894950412697184236075017183330068850078063065847168326076933441389917260531688053167608238801538179405851903312171272268761857460510137192632017428925645434737601007934298820411312518599475478318438528839879144822256017236292082252278563131965248893509837474518430438879208917469893070183691564758937589509283790856194336131406317093511042702659471022868058469053010969644578910906181868219959248467750189632714318837277431013340662456146121610237436338711252710267798890027829786439463560776958021694481881431226433006228628134126476299820842140665814308020438939866392559065864584919912144262973973737659877829556644361010287352189078903967022444491782678830135058107994107292235737582524631011730913433162665971822409179570600606930605824891301401081920767979346948072133176611262878425403187758767539258297677111304718608111045047147262532785649109359430616881889740076673164903899934421954570212267563399549604182583766496843055381487465270721135383279987983940121751609088283022615625130724290357607725767536828718246535274911690725115213589914870172635209666701738449172211526413551039133653723247162555151918991798210653269870616815956083835293306252335743113950088140866677060748120362047274264100932162399076059264314774376562135239880226916154179326670219456762397617467388440680139821157145036494955095653261193467747448676422719282772517876215704073867172609787933752326786830389897750971324603848363317258931939676052536858062850398214080534965580154353015575598386280905337061696011206244331282927033108720411169879755454686221381542782948407825088155040317766296449849718252820801586391030622436134285980624943576770353425087899620661194789960375925390712009784695248751099661767703910073368501116248431463571431273445971562732752542998133270476642622889519174685219123075459950140390655120811871916785363442768797991845876799032818489769257222516244590217727637760786717839348605746449617048933458942508478718291507013026936841080635633028213933769990829302117544394241647238945496716582970833340311348723853696807207538047211085799286541848957169109721941425412815211892846744287616914681214893488210078810169568036596404512383094422873907776383760352194813057930737932365970500615486175643352528521452422748940168245777446731753756508693505934649106425401709682461527562580044635341697959615816461180773703894238681461663949697990411455051345882269521878926906507725728643289974966563249733629389938556366808142318737874645363268684093365737490283701463022131951917080780381061550174600850021889557407652803698525635337662624813012623809827721345471868343695367788090661807875482079275942114129083379429106547311105079088540799406100813386186035250772706180184629789899581407952012921234726891067096805273017447516938860692907032277761355876146560397821813871843330658082014527010308329213030830956848949740913152658778209055929615208924245667119100074805717973462277109820764465253496378870207769140225237449430949824689042298419042231430724011023654628874400820240709262406090243854722278702998390960184767159357537217615078907626533729729765317334294472748817545779442724423328684596593628508326030246268089371259812372555059301595712765786149733980613428415693825894988655428757014411716543410762448550402956078167690097452068202887127834178130251805895729649374791785273376262796214323855699866708655995135034389211026978926412933128259972662984372252159756132124037054914608766763838104850786219456183336347560000607181582204490784844159578209763798820161447151206764678743793187670823417801620638707067341057959477801665582477444886105496300421254457099884227208391300566615216199792259498535710787401909386723706461276589111351370071597809865048722455216647177310604264248176221213368141708292579660362275639815754862253241095505672571427594200788784001372249408574195552700542408843985173310625148013153959575898824944371885454134682235429667205348196505465620868539070526783071553827176179114914427589390138640848821738618540880423352616965561992733252527587242078133438595349852121977130626196392259239896681464514663761014985934046870457295769356500077994965731408443807371914231722513941264693774193662236542910653273400513468714142137075460258074240051017132723398117657903232189779120960130965667951735182075011241721498718332997216486486683765298006843301948597279002992964873634526833724407431153548686088911337959122279308266700369929242138786788870720861136365995344793602098234195683563071216437340616974239147312683795829389431462457993703546566150238994892873967814109800268790391615385240240818974376739507011978456152426411332252014440057948499369214599809680406272903125464336443848975219051359158126738974870549640965573929220535383031161149555988313647742446068089456639195030973707762385808640279870377612049227129656387390033942813456766190987229569211868130346420214293784308830158817403849155397880225723153601785153985057114711971273527876978523359992474534471497207419815640055586302316258937637516605425835841731495852900722705266226210455583369791632766729701593756873443212736760894159376193590485082430924337888903191584627478898176261852167616643957110235016733380544074255732911507310337070236793919254232555485201086644186535549702739219823062291251107004018115491261549588161058610626410028370681213888876232575772035399055808465899203561222937565277619417248108507621675636147009036151611697108057349422018683294813614365676843195529093042612729256936461805912053448785603643877057947515077346050180914687487035722342255073797898326431273694831468107131580978842322278827715797159752588570999825728561007616051203640207144508462250203143053021459011630710868058987158607888853392182024131213102348951914774173422609808622635705080055703704299221474652308270299090245970935455661981815544029308776656872957778411862576745621319069518921332719919686365526892256741753885331168739424597207198949785919568436662848678427450208853754078861658965286877068222483709977569505168067694775605935912188513421761272689901188839020596492770431539042455070848295209331513704174941828915252636569042990128927040774304615390327944533622335752980724078671009073552808078638434408377061172918887373464907650226844772063496374592562516378953062767209297611322694848937435093772178125223965883382969128335448802592576617613012257583111025972329411124191712067047293173038795300419100206944905377595900465129812190518702180218861904356988831558094404595072219929553588994082464256759257583511436362893610637249394265293833205868439549183391129351538453735563654713116121986731030135874788853324601789364966399684323460453378171340204969251106488750687520623040045027306506172579909294735618037664297437577876072353824669666932217117558732347093949667967081074174861869423536750564032674437921082538094156391151078319932914393881784475381207303850529384067389997301400208784596309494427963506471987069292255599509247423649470499561740056202619034188604113908362086939034866294912937888869993277219263649646850988098221046084463376495645961453407546479856828978149910315405971621886830347571193012196516073956098838467327177811370537341395891330809807111250828403791478512366674970147161203438885114582845898865811398993327542393433725265809678288772835509547620200724192085405376724774459108664481298531563046584588007564775956808368083837746994825328811470080234902134760565322228112756157113177140813649003401890032633990094171755784509793035924013562572068027819096388345833684593537575195659386866784907358028498889329939080421151027090915681980109555220234486581777766248681997528008029774706197492758220474813959357353889119666292081239784076869477463894927083789709046086348519137612575740877486194234251996527611343486891074315934963712637803133003908701836143254973193445726351369702288018807872571152471541125279609981537242116761006585287315288092485156834954698809785251791815392883224708905944382740414445696219239077381369128800835906861323323372476729540336866887132147847348956018310545894057328879221959331339696247243187914453179270824481802632097110512422169229073833130616206813182621262861162914677365277974073355738844882157739131077718242125174573855457205642777923213397955670155164940437793193915872261393984838071397045942432246044243277123143373692307467626932360490768364904017764595772889514700969568856962769676756788113862796368487284218159932029454054608918425112773825651762061338208459641756645303753859182456389652621508295202295876829980023467924229326383382052807386803224646442468240767560140250596616353618474314753466839132014357521188338937616402716125182622983732986971522368480490647354477836184073565513437139239539309866495159465415928992078936766018243304119833481549062092854878389296395302747472910500749599268292821437441981496553998636407529824230063470149278380626029695596340096546697911694044535903261487767907333197988207448928112032521141010342693068727919829015271443233484447783450499262230233562568970732475821190807320844857977251310725122208961493066330221850844605314652092885656622003793985521704551233673768343810759860402900787991169737267753453395696123875341944618235492751285593967108357748777854860610183872202103087138330171775041432912222513219263763486367526080516749961836243066839950473892948772699266628001615652277385131614319922204001197657802440822950156759516476119640950196024335222692019045992515471237411354793756554194248695848577700683632661526581240973001241291956498096948523110288535632526871360608978066756122567827636147938447438827078043935077869348825515924818991904560555549487383370243355369748823690578543967067979662268731771908009665277867623846204402394211277880935783244182100486788371721279148241411912205655612129837099448468321692633787786679458338556731477306149516861936138731657504080866199379055965594148532958113137719972400073459685309036717725898317962639719385635654201286286618496714861418909951621746197863657503628234381123917743850151290523058934827110757872151669261864451230337154955262350964713559925370286115985724681427480392752453993210561646852229176475832061106277445617265881163486317896863751784279045850152857098914317075753868497141315093347882407737501386721259698913931568096625304050614501792215384633589412613771983242243651528328683108075798382198822770104986482892325577255809757630425984975952025227309480999818415723396913636964554238452150235945714962476686935478529342151042308456751589929737606264917375568680595658205748342145943176215021487073641976264199998124023072937447925311243923773767734085434351882665858705285980881980219042162024161092368546321041190883596667873128836236896818646530268912115406137951537262689177398249460952559184806099079272915681296503284180617750966678788315273394210726427421629346188744788743146861134679085210464267257291394587816419421218086492228771059716386038770753811217025165743819297024066638236654232055858140382515568732253020058860967925613708468400040924057534980215857983639003391155934664704674164056559267176182059349280682878326200588917980495292513668163413511537335946853404408311545613720415753058827974463336369091543784675001015581906643007509290644304063097687058637506600617128999248810694568242325148119637220611842285184812520117912318260468202422753186955838460581739757766237431656751279836932423384225783703291930499519364059322676042431749128241957613983467057849051582218110401512357906106448327794213672741676127452149965638134468027465795769107877313210099229115286530261434414206934101745396878568083090147769854137914849558937084729679131362672658092071317487492444124545637289036480579118470697203092635634711811798184297404814778054383987146208968929358048045112460549351859284034046234375244269894943481699335237416722009046352981259754810418456548137542738991024221547161990035378577063401773691256609114120523180610523460924329676685258192150930587207321839993968961065590587241477845569538268244024737150051645840813346677120639405109047719750587153116215864071733556753181067320392030778308172135270368043112119213241870880249110729919707571916953804491712246380194150835286113124885337721247839859005976334190458335587485059509796458571914075497753544780572586300330844020133752615307681315622645065083308724955465503422742555087767422459034069569838538191977518155619569132528857986650515273007284222019040954547378416569288109379787546645888150237055497235337634933987290977244977664415206201153426049560765405582260314735878723563636712856640809401902245293122360817411379011058462947378175166217786021113397411116778214163874805431463204867598049174786572953220039739576707709562370443800006353978625751152291983618677232093015723956416478666849135611658251806085845394950959626085662697573437326023685228139769401489066502196337063324539439251069113449658777680876200420248679452733037122649722837821388882850185923920277217145756716331706159400465145026547387185881137057632689514331568260723743158993736237623435928759880695275794747708283240469659576751257706215546103881101838344340484081345672076102574093818061903720448416362014603910698321154257996507359924665857574423356939242261418423138979054729650132990692227417891860129748785521039677149444304932882438842528099091174289149999964726024971556311860720855929654143734844919707703185836876475662541730791125651683963989902748030044957389244250571477869010767436973064614714078656254722936108781351930587861424923920786227026652655733056371492235862326709414708898504222572977228834547182418658253484684541172226587175870299037076281161359124772052433089205704977590712677393474458721519238871829621481434952214082023579095102791967697241665947404978653569504009570296156269934676915410990419687548892170923184508184850664660556777227425883577649899076888658387862067321693086810575299340218330947262720727446939724776816212828379295937886998408324899789092754964605726564038743230367512609787407588382224915047002742974380171065601731864039998212664229342143690014822386096079729087956778901219235384053807252623345846775906711322768043907503867710171881051587258018450901010057230811419237550837535294042429761653982639266974650611746860865445269524637658583830583653075062309792322412000585859297523266949514423842599914098999865447897263646094299243361163983691432997354064311100817984840619203001610195473794999661344777725393387649268104690156458793119123059501282474537608895407161020045391595731121457703217473830144676147214208609546934783844064312200609122840512720524970149488819543085604920100893113369265919538255966909236709647765945537228345375443065736872817136072926840447090512292714971484542262390555890307171533279431155535441009903646858667185582237855530902492284693541097693561012642511678405923296431512050587702401476898230618837237592201678292628720190730865288388313960068520741417205654704285972624993744422926117974574525031466986478093299474474347928132315116754791635385457307116851017258697571016374718192100515070377967731996987437292403446012775440480958717715818685798468553131186456174775448073208829367459596469066467131605216662550511459749770405086721258546549995474220531140063468879150652192564791486775556364794258631463117298937358363095335968056401896547767089400969849249892622906089132975458740114214256013238841724268111731388021406283417444572891309919708902371158200144148779051819630905013033358673654825943972931591816546115116867028343020450262967096513833992699688061135595319700549563990333280203196500687316179016206589547652904351404844706987376378997158972450138458446959371272996254578805248035153756573002261389333164177236131093558378658045880918478775358645720732902457456104465700019754411638422051596235223364705621961857123893817067262351124806265932558741585328922794182233921447832731409371439622506019560897248530539787320956534805532414752052583807933580575754390175638037516064968392587426397467880002408210880226306836670179435424173791225643896763177495347089684707764301053036801659943012980910439937053805196034808942231610731828809042733798352404760467418597055539271635736165028738578037519459343584220774629507187465671205207344181780543827422868141907598564209529222897696276203322108288395480240407972198705187252336957649505053749202337529873305158957320161592757726673298469098563316080285952671027489996859181156366033520074739666927652085946946472039520950964546453258260073463105986336659929595149464655445707198845610315522564529387457776632498394647317073789184748763909844678960662162760076237766937067220996258603490608869294993577794033589049194248801847931968601183261740586813074165789891700113495443372478006931611974792816091397348708731482259949627507873769248037151225056764799001574807217501155262444077904136872702926330307967447164448549590120696104264511287325506099444842070080307483814102045422485152334300998289658804045317188498448598711705323194869031270314809335371858619962251875602358349028790826794934841910553248546169957906689787716073041825771136305623485046971657520089571706191282437138027585555973549444102508726177139349227041328524068178620046935392964353804821097111479050355657316090046975538139301312990530944533876330017318379060127803545050125556556487658436461835504484027134197170040672166113668898768791247408767350897321184513979962446524852876090722990125733442822384031563412376244343147170108568462711963380589931098291085965901108122737440849117409991407754466518670797763360944409634265636616017931691208376463870703106609092338008113874177198072850733267004601455775087176482896973798630618849348800694777358380645847395571977982061432594339937482437791699860276120485348428152967582180587302512578317258030715488589920996886339464990303054645453533084920855820613567040728117925921519324126792803711900485214087643502568811141295530181065142659155979080793935290692252535174198143063968748821275219718427744930409049257241565259215909577312410498288119103969742386958003956053289955772190226607039016317483034389372552201516558944051075458797743010544109210791053680373351769418238619090184942365155461112688973147398020929044915269115197983716705714993393258176566015234144376090998828298348358095091863864676740503565020618400546071819135410437354634482473547814548071018797976799540234373384797335590166495437603737663335578385312913453078369720359973646897882270271584645273640481858042689552573983490522342816848715947038927046613260158044861266257591814603555985280650629963549173098311222453977956784436067537149333036062355528448537860767823331056324642086305964835865991013908551918108803586519530655490272178485435342795111323535259330703885149353598752838135873204832908234279883060539350321182227402584423404076031674456090497590723444726087451147276122248513104973393465792217734387414060162007208569268420953124516698261416831923364131619352856673610195252022763743486369785656928868386143887424309992085947574038263872771836323300177542437814420376501296120321122841200726755411621572850540859389498512635032329217664462881591004084549600896527432179908231255131171421154540707758899489247746334686626276111753148250850803464622159707333734612153366221968565202081744481462935725729728925879017223601711983120093269943146546688265382775284525399849559346723697379456677777020244296622161518625750421670940383540650359576550442451571925644586152716503619724956362922285221493032184402688343110655540926119899706003567283074864939346292983985164667501322631353973556101335570505396516203449976483727140390263467696853266644190359809702008386153262094798286638628653499812462378740212011428104497595071229356552668361337508825792368553316394057827627630989879931002101968865351646571968075986053415775178802515141757027560501025409000540944123995402030615460637905877628865617026279623554571097910112488527652288102513131208366556446146094688255003167715474890524498358871989785422767937340179234121721607313792707488617731268408943885087705103626558943378853019615800283225477598252767843136374126109672514443979225427142262556288186506313312307583036147752016659224101455004196231049111690589094122695370470826901762033868146276273989544972627260247808156600623567554675064655335314298552941252382919514026759797613937113406751170818375581371102071509391804194602745503882658187880645727481218254738647539587449832422148612967694896720132135006327790055373310793884586673898128518299814576072910437947782220057090270972142013803484344501938725483984969024683275231917348232595166900868631879772021670039056161663554167116677957666811207456273395642978392272993026313363576493145854161928922526194660431844752161903204178789469906224067086530428890219026738188052532170488712332573930844805787070210562041878156741505946462097079325341061917813289207848758128572788382415577532535250018029156338179723905406835215683818734507262166267839381646735971155869029913086756959623828421660844923081466490232517212420811790060879176657965539643392990728878751383559130881990024899443181814739860701398883253042619968691963898830012434542617985500528901942513455035052970884960445798704615643798414967717112206086350168129420281006585683827107662790739231323544778564258774060881380868589507283302399571437472047803812931716381592054892155453288743136458168471694089258225630060835550332283421097000092289381512582152910009076393651138793534572487327152130940107981981102738370101429557137296356042817468295491376159694361599910741727044196365741209627233407404290528962047226685827207534779755709990301522640925597262430136656475582991151652477485336599675524007187365006410738536010165720583276423841232887904213572620882047132044973204999097842102992633107324086578266914944414034107564579863079660734615595716509839592374931723007527565353378598092751212290460174790088153610213622332348004477353433933356743476886097299847285307408964315008023165324454454077553531277571959502343763603850511846306817368762561903184723129419381808292970170593958637022192666293469155114744572682168817659960404907222129175952569229677009538491054289354482248023059383169872894054300902930625292080656398973649414503114817544186192085658284398505941347419347129370549356476822417056547964763504264069504361197075941937392945534674429815770857833358946086579609015283967219639826780892409917750804062106614810689419318464425472620592092576087412709843391616780775055095578754102532031614553926307650608498683991182054165974836866903125499869943828584324670987614673819488101152001631353572109605736076928692162871160265978033904980141169531033461060226139312006258354308698370672847319780548232949502808646822390634374118564442359693294029992880365668531128247100107683101303834806226398708818630330047454427140036812257149778588832414679259991024713051359772494921328424562204387147594527647339101842385560479329672514042271243652165159021381712480775853745363810567131912778310187417200584096323977328733424116114169697634273650959059251692803285280621252044892657452517664601245987767464780929298550607156010253002857776070568953852205944038251704304729574576422973232736502725547345914005523834999412821166785650695138235886145248939124802886051844433142583242940639103554220184315404237061624189239190347078891378215089447442708905733760635721532800559882999640763786668517299195890844684840799969559983689950140233268632257310507793788293864132742926776329673859791405940836216830056412395756477831866403275189713572251407737832896660937672065214345462056427725421097730534421308660532347811097244677831027506162794806233989695577390814280745801363711166679461378511257843915401983948217554722952401034491101293463263653367789952913362884596987001271428271854701212503881305570471079375127641419096704319753669676997376679201812132234378352225282250898381798873992669699632327095016128541884498100996434055876734957229747123602382600313711935363584652186159984226035023799139002787429193932642385571332350925043446666036851505970306741764087289235791423984911560147528270256960058766729693639992094787135341215509229408294386299150720689848961744848602128772576716127605505305744705793296700268223475131070134122106646533384947086248964128350265179187455807967070692553164995725442234633314941769519985710154392668212733291401191837989542718926574872161334360363175724673520489394712992958987582146357901823516486435834856730383414390351422609499381387306382087173217952639459857572496097639321841651210081024879230478545138462145331782742056544783710543684159449535962724680874478159070123519138921926875324029712544667784989953890986061182370620220396328498577920089365139284643621582553036212825792703619519247592888521226009164573423185473876803797976349824519334752354772174680485529665753683654500761620661721641110805814234236393357615972515681717519163250019251413969408567714010632068895405101738175339910372500466136462596567557014685028275966632974397771172537765095732567927548976354821967263513426375916172508229592543546943847480100949635021847121948107437184651897477044637593753653108644723554421689411259292578607295460740381015278363193914539301622445519941359152912000857193021491827622547088725537978422766268203632319332707725109481940507732586612675654362933773774873997492655640648860975942424328957137277719520936262568546379992298264610008996570224749842892006950906747945886956990540712806994232160025263693399970870393544750946723298418443948296899963780440131771760437305761388253152204966405387870842022096212213743543210422007177145191753133724089164424694363671471656026544277880664231547736943598030458639702717118656389913691412340823970565447469429746553525386713975924065645960834327750916373097343021866250304014509882559826709133114020369691260433923736944100302668967146566673375260468854416516820733765448261825820313022258318912148854225857724382826218474224401152786123915195817505609473423282614002194363525515116673526562229889458289769736052652074599396218246626629550190311157093680402835425824523882569169716740198457954523387236674574766354094140158736886943525904378317403593957596705159880333553342817985167409488832882091149733982559915351974642943572664270689372753091768967174684090585359960641234673468894212202379149179813791691205701515056742294467657116376424259790284490051214437325870371383709794921666671346426975427335140295672159403577200807005424870315707194549300587243681810289418165330360374703938628267086176726609645602569800858557382726124566024341658565814622494009205768022062499949193657359005679254879789545618368626866369102431516050608783213075220750714722842996226392409539511514143624120145961664252171311134499235304481071432739245831139157847547005366955759169288713024780745808098524963406638031431964456406373719232811755411239204572274107416340957756041833340301571611927501691898366650256391148877219048810989063968597199310523765639385165631974376361109265601121708273771129525278291908961182476697509351491001312996971552178859583831686300071216393592480923204938855835338295486907034977034185504320229054429046992018835363360150091810998022421197209425419163245656389135776011747630358857070236358156323534986994488335641066300601510933202824116017880623676261803545358382324784479927968598006364180428252785110374331774218207762954763851376218775053894982962678297498497546674016110517865295214251443550956166568084147704923397403516544732724298326151066808154901092774841401801693634186843502019048415083056579667735124554448713153179877844622967248544432702054233085039094164984976185365414536717961370145765781082887379502799893496136348694991992550508006833393681554086066994562068757710131306248998282889633645191080862428352109210282892147745947258583393489502153708447087831581905178113188423608106958355117221387729302598220246650567223569129146150304984382924330226220528474449923962263305138354068440969943289170985755972018032661459358002871406822927754605951765406786311373699107303653109732192219816086319109311641276664282514101243955766046992672510625885389381317638216215214332455841589546565970333072330560077449094077562114470504417034016616427271295573997320519990753167618180667030850813690157500051550148078717738726449588722544800065692620851233703441151934670383506100846173378099635526817616106732814002131683988985987842580593796778085558402322392808922393523540809155112756825428890232157553213299973616065329207706177174963329648963826059353537810569594691527260916633255209813805322390808875899318302032150274785213793156757748133427931054082769575395571708857111312299853428548992860604501681593616085969213247624903208989523764561765154516068316696938051750731815821008917854165510157909530555921266378191220512393020862247081540267020276084848877945418982253811843380640205418264088434717356964769887195473129113487827890140925932855758804610501053147943362557141837856982652784433611312679593463334995557558391387384877856170468032839877972357392917140807518409741640941636652856311797610633151414969525011192220950522081372857774673385326266213229121795620727688881714610911595715122083316558564913271653832984882336180081029206785382914558956370527594775381553668997434469830202392541854525437938527176023783906401614198088216008507554209669101412470237033993810674898637450163393461915367765895472008231070675993945504245169208077315679158298207291551107642663892148578825904980452356778715290663999310393030721056067450092098023554873098971029873244022511881702443428463138283780959061182227656012724849858816158967190194871795647167738141853735052238322110982040070501853864012363533961680683047169212113353069468198135672224426855861088595737600832172202770764455739466131348585496374899656845536008269715940646659417666661234698597751376853823600467273519194521191641338110113559145184249715419472889126959038948957163823434200004230279933374018073840729286754584228587686402412584698354744921740000793085990246139400103959924406082436431716147210706013942655108693686115790626616340188332850902752996171870029431116055758048352590549409780739168808041687413739081229137284809211974428274860056758556000746306939378560680234938882596758403799636199961318445200631523378814806006876412709759613510473524873331463196339469800642509318965008544527716770465801284553782090595544576433581043143092489863154576455452253232943713564595310297635873190950870916573516281830402184546177382772896542701630813495099736516284807398287337958209545700401332855000660462864929248495804441101845191367119209056839949904565968602348655786840451707737075672791246326435064859609739146908876239216222379408980890489144504872638154638136329257940554716500636337305940947226310183589736556441407008861790063799054128276400422346642080534532532663088653726652328530721553150703648588509922376783485639777093944086856335283239673910592335103127051463738612365736113407037869102130293022072725905659542429863660969804794165286748354353419716993392838166939524992387960762082122212779332199713393537554893768042250344703131540221141452469135936470369764941147722877825103138914830247859844251568967023845410663100778702651516764007663960546978399995758621969060840148504537525894840633531492833297184354506946502706935963422086508972632150601393281284477033602587300580528552545046880913032734132550225011536263236686771130592185429048681381859285089259950399760006754199977984530196347686274198542933477555276037716953845366152588938268885501269576645994142180998856861918947451923356351199874491328487995163029643547457182859210135298310232692091222547245530137203338850679987217689232132017614624427513364556103979211920136236067792610708923594468080345102536718169346623451059423697611929827470267875845500244077356607906535105191402433601609684991139698999718006675674602845470800238249421999473816038603543762236657233160600880864052010712757045973273560202139092986317484027921328421290051671031872453879493058171106964380806903808902577458119906118529678477995597233615746731263447365578460784953372995372707043413311666678283919458208234145041673262464478425303159068746635931914522695850584470699876746944399837215581961005007615583584643746151968413547195733310332756672738993237514353111973441979367337928482736285524693234345259560398468348780195407803836753499507073567638566562331167276855095831878272728851953499416871469077934585589252758877108379829478170787949277434871942751427421276539491586728543007596530469146474534288382356778077831360779721853180491255428421890189106747130865612753885571200610947997760060623023962262088655169574312646895318488453991938930177668402497100704843984975991078173677083368718793636906010877368174612762145053965959059656134518061885690355712561839716971976367614628865606699614085152566568632760179093131824038749913442660775782218333019999193139276790973180534367487355925584282947101055271258117392209774891317534578702728463081367299697548393609203875736902881465545886219191351397160020870498224894379732272074738373922994915822301675385932821165359073198244034186724057122261719034581209885850295941251873629679005196514130756282720371061457440105531066890736525561960701760879808638049065080425981706877108944805033134485595341004914847839682090308596313946583383187312752465727840520669668750712471553443396680332322731822563722772447703664750957616949215027516842622791316465861990192475776722756758166413100244585561491641958021067253678231969953509518399911167576817744571262453524191573704789189645989686160117629132238798733959940541341442025879737640786177892319325513298724691544812177563928654313965293867210035454760424354839023507682428305682997618270594997389096038653541321614590047139453311301889656195811451868503052135491088882600115288640173293126254588180548959855869694598245050246035972569764128729495753788499900941295622549935402621353808192611838692485486226134382763266862345396661811301944498828337879575225565955631244780163543186361719310403818939173877058497306731233049111095638210685912260150392692676644175408738744507772203628368382864656734185740554880589816739643866148159572956129812388344225518336224062446749091482343873932873999028475009649781794274277642713361215048261406968671103158085128884663294912279614521933345594040942729559717511647079412004153978651204236970746088231394345676670922860405457813486797787823024077711541935709138274190036927581187901791669878890575418293817567160431072049901667815514780777166896445972312667103590926896554217895034157190151211069114887483431622917372584601922760856949685921919408573561370922321019137086621738395842397171417163925575131113649259107803952025916656313070505179418044952428874225952186281628363769361716995651482129822878624177452809798438237321886930597129328404655996868903617873334949877117212320428697995069389482706726216973025843140889659833527603497035680703568183430748772559923320869826671027491585103157760886166085137637393407072119877079870349086229251084312058455495112358245202456796692536565675067649756340533504943997139908053233910985265577261391179902850680035967111666060393451839374441570522131880721241513456601630036085405421219834131251524506833987112492273127438658416889339082989782524288120286959083066633325833940117403263563190234763164637408043251538238529076825038749436333976048592846617945300675402134947052934443946359483947413384703999717571465369717257978856001770269300021781815911290761362330843709458505156514549766305305491349647626799704862996847849436848629795563352699234520484617800008736421012370593199217749695351917720896043696823904557205877497711561544306981377477423593218365101958936367212210040747508568406602583816769794387192302522676496808764606975872288581571961208186402363660898834521146404969944948841267186039980132121236702285302650734582098691939386934473662016403594584141271858157505269619318132596453450342260474967824157467654085900167361725145047396833246605102293535038696169403944889620069863052296952689353195317127818708771045633057760632260264748743350498956870746537976627240241396729962169839148071946511112716738804683046291089230123379777286662055676714453591619056344418231019136189182890688648329151320352867302842366278112702360687982092869156296161608083060320502283952064459226818976386426766623402583964726543021561231423040396722461001016931988925620256904955727689980077451297510151701137302484088098210061689096602049760128116798206570220371373702695130881930209422471515013493280447036516149199316897592967476169173239866977774680549398603474357273941829046214620130801575105693167099345318815495056114843432473421776294586950963635551984303757699504751572658874122831417091741357663917552010612299262221477851881134535723904534179005983067145285022019836986410540349930981853273506093155452060946275831921026319715901014232891976649021608568712030064744288270705382204767708941305713330071446902455066344353068646675847458038324206744350867143424744329821962476036456453292925127725093937628900707590938799114109879056506097289684459712646085062790705418186646019957209379641400281626417454214272295265267126627255583232123417511327467396069210675544278444013382631211889816844038952551123155150272607764952290271080224720575600190877752029807831702865031705139947711290892087681017826933244641084586484526465863884851648432144472599312192544427264878767135573962680308389494211617721252767889974993563842444285993127368055953363754746030074199189980158056076392788875636680179657203334049691887909754756039822742611347285086118723413820926939679960534402412741672413353793354859658658634613449327569699513785824002814907895442801231078685690595851441589295534662955554730030732332375422827479345785166535407100570335506491440892736301560892139777823791480524117593594438131352634906951057991099243539071160664394595562433320965182667069448904386157703795693472475347881326373588541201147754659190592632559753594004164590091769901106211822649689055510362203037161263313313856299952963595553772395174396370840349000120810605673803423661219406897068992128172853163184929280829404731732668812370674218876428931881471936977333696615153318019049377582371444000477693237503507911145554698256534667925724850263652193576533261529759687451748880692579091239152327890005087403313465575015114862106812095097259098690211156590398530185935926280096895834060854497765547484817967351754064202380969725198617495026893799490031625014362695201458876374051207986877888128183595055045659912295255491704539509831888793999276635835344309979831622640472991720248255350994490354102486036572587798689112457232884128356103908397557792059357770476497139423714492780967044341247474586796389595173463533554255817344538772629599279649557106355130025105308056377764170956813980383999075434858002725980623307173808704588966992433764534823645133032494773421062859100274663425436925423435741981252110729162069812889260960545250006160214309187958355085274263387550737054938608550105866059122554045656067998260916578730974262521895611335355474730417145454545328690165096633735244450101924136370567527593086932467703550274648896222992754995052376729948004199790470790060902834904574166338143747078624934792637583059022743106713625218345465098450902372451037865402666395058562907436989000765597106765390807282263230854180264866322999321745868094264081832306905940136136348435392473348549336458784716893446581162246206728347679947028623824354295029972935001451304436825154866183904595734927434454561795397145672559366880483317455919749734073472460507682209000641871495654561091496259890734113091542274010169761657394860233962217062510605461047663797165550426823938016070630573204729532247371766962341143191219580622196479185821854533807821346877469436802342798686555136242221626921342066919348027669796232900209418655873034356081861105251070303005288350609974741706927499181338513779000388847361603801719141814469814715176910905489231715862250523054869300655149715426840360280313372775247088919072446403111384046303350824248389634625441883489118774384582605667123394809028884346884636111587542435391751689505426891584723351668249866533188352166745390868541681939919125556869249358483377520327852256928211443272830491997910111888622935267179159232195199696248161419097057284120764819409197531269383198217492746084903422407520392739757404413925957484100551311302913612465539269084012609952801672848592301231581611035665321279615946454440759817701132317623066256391098513658646651085560252205645490375948392794937096687225066349161146103154684493066085753160972174137790446300445026659517529034017860763107385102153255933729188077090745194221822956638933822156157250636167628735671015554469213321987846259730020438177285346653699688498676962654243239256925542362224228834655848098529593289213455040181127115915334409110426251772011354218385989059341241277441399873955552356607866431118040905655949079202925882463565148893093259455301443037908372451955805597506594622183308213323348938031477590530140166796950168467851735198085502831842834674137758589336926906008320114895201954042406855330303925340189969604942911106086584900640268602444376006761368963627187884327028752307035883858574267600226279921287286846585332351003457483391641316357933169425393383200378158425809561636642794083994096580867047288691023081944691308075549424774588793725554552298012703995691217497663330983833735476611588578268595597517616348660043065564416852658174710162412360444375369918605213303103377158200851536771308340311618131358007696774334947925416357363366619486869650481981270681200508693238980315029268884287788171097496494459692034387906079130204708599063185143586234529760906928842851740049639745000784911785754850806426554421452142060869984251525563134739588570251404021585353655135793609559505532272473497632808392019918054906647317858196816418301184637907514267091325102705056963173432510449476395249168768378405297050769808193665461747579454947582938489747654129384852339785129011702877172099881140617120029389221763492295631344175755697944097038506239048302414058755539166726813961819832697724298557907891064873840300572710022605404614168620283319060919370335838045936625727983085122345257445853650163498831043136506109813646481870056454037389804195154194081028482964092650799433462344271185228775780655561612502184972211744892446428998770424145853456157244163791609538911610221151014940033962599425060066314260361780554185907901876843605727858880747175092513217935468962696144932033333936871103235972390575893025965149067062890164089602313073186982722959339256761275768383107346695892633734150083480989635237891635870112305676596042336778646718088301280295750561843543103109254247715983701826165297016574072572033385216133861033244341933999898433598473501313414240415342846386045214132213927681478562013908794725330639799195234396036973201204754113178584330672940063915781348302907972436367230432188970073424973126424285825184653627372654052454971987414386763225364878747663945871230954686535680500341562263196854289538538415985587710062838885457041360883094305280883971364149449620416990262786762490438016318639539423797733965468500259647826806302250267406465244937061585232252637518594420005320411361472258508567696543967523809079921915336840718400562923343444675290267474926698901396717911050982970142510700108965807857120226467707026701322904043808809634656847665205066397360308047868709412943450834729142025965855110419495415544243983059297206639631068810243111442208522729719321972084986829500739055498324206983428808823151911034154751600920251252020309899692430018126612809865864615611238933320200579612670306733014979921214675138619312034859001936196811795791236420696007982957688285494359757190028642755255392416233453074054629178509242109911668898573241229431370872269253105491898627227003754743104398957399058568539426006401269241142336487305904200024505504920777982341776107597924130413556191347152418934228338004025635449833339842471528239209443291588359337349897836815925004024719419289671568586150170446547672384391501326029322172996425345020982824171163136778233564547767204397235496068670202872199340474361546401021364873433651721069799895657760119665363215795967744053054391224628576937456130607746414169428084113117223523903129657880719715046617149698289305730890201030820309049749564545597115115999419689216281809381449556981230444896808386695366247065541597362444720423181440227301252767602963760285426568972544936233560963897861808467630415122436942252258196233377782552029369504260350905871174417732083101685186107832357708624767980556560610842634810572223802581803225218177988372595823802755767566359717532846664566471652854278412523469872761729216312309800690953102953365737022156367021097426386781594775362017211048084297815699678436076825296409149275264453063361167704291471889717887003860959077479396071910642743881930384894658683983290711176554326191298650980283294560992662185953506798576165944411232887584009845572694449479223879311670740470696507308553252915843873023225020662003504014817262167534492972050016351488988913002261635555825012285733259282492338702758997591185794105191443060514166872120834158634323898008562843074276030562588641199737954196381126293561661598714832923060511310221952647027187991009392355022269219029285037754390478604419113399103216754438488240910577687007705511539526046992014767952438586277267190476387730046613687148428314639627098034445235349060380247026183015252304655429802158805848023049489467393630816460143928364616735658772211045048487336424070846025623097623526192265124679167986963845053727314533718743755448484152980745262543786178816338286201726815896793516809078924653203090855889991845297400568590436083930565411875823643057670734469815459071384660258298700531086386692387395945155112516236791541306728162051115808059991181356567109324362352388645958368169456531431265710243743376385054907867200681347330591924076487758414266825366423130045942341543009844967005720441843374865146919488403883305015308435302213269948467387762937273759223872579416028114555913436852249669420871057906593617160848316852656852382305434508291925676461086161077602285257970174383321144225221817066658392367721521007574626078992242690401443499258747152465100627125213599788251097300213556353059903010183869299372004553974336351168792779866551988499180530872898484510483625343266852312660542846012383547761437041213980843344540517892557548961394640825361102600737328866040902294484555645934782799186159169292040104880835125944580200021465109452989726170544062506843454151130279809546765968495532713392890082352626361475156504936947076184462518960839055671493042663271411149623531326943140163706159485786394460869451209959070876372338603327652236159617720181797584084238097921260488791416680848692061619481109842413711415353366980132209340959176870168429812776508897141057422105868521058801661362886989269000915448094997899391527302363907348751039328109259852335349348238631427723818154950461828722255363122069113243235955365892664437453471169572961846072715703908390884519984652058120802747149452781825803838371568670366668288021523207649228240781451333181640201145214645791462663598104109422622618078209648047032873237636976154139515378707868825454756619626379258963312448373325330441240562823506396068000002489740110991104952776942519579973124091904934822197537389775680621662937210209412945745106620191281149012677242824885043081453983705541276691262939349453816289671090695405088214452104648011351321326615253483842817224266056077678065909821512778712049547625174594175400964915869673208828297190942710129595907012672144632117952341609764362591425477869303982376051574486455052468869372895362212915854549437948662517895635499149269099520650785174014851306867377179063246572619085367860933738182494342204516223153095107531597989383291624108968888632431880729604425024797491650669486220082220718353670418559721488689770551303287736164637193351800406515062690382003661373500924145336975649308150106348639091640515111982738044350307993924880277733668918385349917910980678986499345815726475222094744071112233903880015431719828235397586280021343261374583569204056458191735697636183283893290525261042196077553866140632943483562636575806633196016732963913195268055394738340585930278225669147347852902263505195637358994715346410907726434562236440315420708954500017664364127434054708561610272562553784414151332607515857079112656997232763323626686018957498736079254136261082465872057626818304454370336983102163169965046531959490779656295939560463686762103905697608688796137890140991713657876683060023908610707752921419809556712840248336074020690258794917186321168143310150305399819253662193150721630135828247349947986184308302918752016720431060318303403479454159019187326655369430336220888031818575122562624491270562481341766929822981140507902012641267558703868613919367969495877932628662737802049851924849947230543544660322618145293401236545420707787010227697879554538147607488764764281386146095375554247592309638254652005315011893242491051669836072097405029054869229772588925066371402369307088275319681693952896132856413931220384759236242566591560701918761858438424561042493733241783294042504481867567618175635462543711402656029639956347438771159677205510672958654003193739304612345491853637270907726114371793967861104513760230524276588284854491284430087415773627746471966412484818248415531589446747159087504541573474244866207258208030475662688228860588419269882329381011140250953118359875801571927191979782564428571277927234742253195235156831519223818361878909878490265788819849865523028325929394807121032735474197574473944047323402138650156916439442205780669640814778315000807396725965385793670737563991461606207964003886049170977078001029365430714570698316722006461781761949894209272080377892899908569013898053120474807722782084911811904662369838253150323061795497231742071835873470132656122344730322142156680734249515034177383981992291193531535255055736723102913413555059806176022258169647424857323593866563004881961648130607783681487778211171432547098151858533569022682830830516484861323282548673330791329790679881539694775093020674932651585860037303759324721451330536459286235822992565629750569139926082575290655413274257163027034478561915129159939287761021837875611062813291607963225300587848579306919843790283318910543515257547180448959039305777224905730247048201489259772037501628782678105806068303848362346005984048508917207845502565598585462974486728401253869366244273337557845930158617803539907718137155573006607980009606926030886004704787056010941760278677786328018538752456773931081612152723439794200699459714518568645078490861163772372135493589775833952784820780702689087270222281373798533319073027285793691124066293138621384340487992359199433874654065966292802149157342267933865099397041182392866425450182858990541631118633094738026526962229204167866308645845467164926616586188261506559992870778653571169105614898804886579574644821298960507391817647399434710930176499403201241222729097121223997557214242208446963705560106698879808967258821480856460112729983920461603425463982017859396747858595319809094412520253972836856299447054324420812592147849787823110637919341445706734733487468860706895103911516705065245748853877355071523187460424570585031453719779419191765609853918559149763993448898736048716726464610759827370085901836266906809708290948413356469767401738656834121379390498995793856509557054327372785620535364321047390627538046878088846671678723191944018180792246972072331781726493080786763308260315157088436280412707255342932181134989167074717388928441029820043837505246921045806102817394486714573085002468616833161045856422475038022061453606766698225090758955650968974692995325180349587784326994930005415382424616392119911291318480332003598944260298393443366005975852081082357229656778740793200522123634042517148423466514263662362202402821394060166058811212743855549667340673087489776715280607989304859585893695600545369546257787344724208690365364424814150143122705310920359604147260375826829623034093058074624976665963952180392663793610403498468859862337540877587154185187421930464412284717766847969304576513471472628309191669448779232073785329975569327657666954803539821563535077792335617169004003781750979458668075630152764833779321466685977185562944528932315770577744583287017055080421000740257102383444905035951179952702929057219197188737181880175913548499990931446989167973687974769562475256288609933670985854919119991746075126232153771745101597927968720174815321042323449655477050827065921203731010888726956090925171983494475648794274192199613961855865147400190794441146472531966714288356603865303231766947392794939754304107145188178218802537077713988217862718232852331708755600004967059237374682985321748780441875614255447480751087272155192807290680471721117670759853924916331835716322935328942811161216960311682256754001637359064456221750199343943634289744679194719157721316576640950444216289510411682499440535725819399351516109731615623394003294528214218439607633360040268545810498136408530968882627892521145373863167268135023726788387273456512832588435289408773233287670961670184735251102312400238883090198828702451810683298910545283568900778024747166843346987988812526825911078537887174343756144536324924019350997666244789875325972090614268917825093799915401168809272917487173110011593543714118703407230794629203585609738163407839900692446005903772225911993084315175540266410476527573408907067649903745925591020105364910407427565142250960764524110418924006003225471189519485892636078603975924468591777105605826331653329537051284330791906515924277853935866431109963268828066808490998875886112215056836387844205826646830702938855446946201204872703825827946822788196191831617316641633272671150081563287069788701958090749652078833903128297313186867406576671538453587153001379429944343343783664383099087863227486267483578851339781995867164453048601363074150164232339019156552711866373919723085265618139934947847079790587393113087836428141301904346296894087290988728889797781523782599226877014835156238080506018376837979019103168866276530503675781876712082396051115813315532156581388807588528869614885807088648737872185839742451076911678724797989357221454401097505535976591752696146522559259300134901714415366691146386734340016754359035849116957643669419722223825534003180973048054843957854992933665926990487270711338691921934410650425223893423697101013353890846550882654115632651664917011145807199522773569396097653557191724751628468510496585304632946323451929085155380447782656894817746200059531717957722542572187951562162429856840100994446626260532099094761720413635401147026828204810339605589782642254611053967843840914463565147522256601879166836682335083672771656226502754408211725713465131947139626862926348434779421680947828145508080628899504728813105261922120977102212335270085419850078534632002318922952093306872702939874887198090920790007049887025034579083545966658313214010515658658268733332155358545318603354772966801821446753539510470004207458235216299673301272677839212557848138410307230106097801675899661067311733892646684214770810124531595219830671612063606645487763282359289268184503134496026675229352384799661508186606509168501497078085286817597058462108369437972913824553247096569609010116702873478054298593455926726516580705919397514415704793393874297537832616588397364363428318657802592590337126337874277224684365341571164644363227192882349894864179413835065414630442766940399038301192680829370344270958489420916917727969019627144483988909659917398889690373412243910018473754667695170115655725734567909206380251096348173787847927276302533532620749836472297118479845082241100828575052011869601288770144424984895712097262669302715177065113158054901755255809464346686751739717791168623665329421092440964513023836014551140308049214313889512445566188355507471116530709044851739686862438549666145004572069520902414345577192811804147729532342157514328484350875255750090118069357493942554485862350794774822245181095546611038400967057300283370089136442364470569091014435221278822326604705056683759664064647775354511775678760986403904305105533852016059418912633079497319766593252762242857700673029578394176061324063771632767390526262729323170806016974740328300003541272542995354476065176148312267281425255845308092714738395305104575251544732003303850089461119331004084591443327674749061536751470144806070363067278217821714086404324040304453467522659170055464698436133917507489503742217504763335604077365307884608820951198499111083827921810636520576979730882603281701416330833642343585033430321037567120758496799781822796016802466147425971858018632244588913664918635896494806173961196177476790718991889792260263501662642389643656229432284087395967714602282949413709188840870963076619017564049549594575197037112221231720198752390846956420907913135373486318940997781322303422905191087744669682744941121679047590115769881907383394154741134543341001012977083304920006161870607249229354258833243105176995051321799584623677280017427189070376871161449308051809625656226317920272219269723463635546801589585479001192503653226157881603445462483949507554987847552392460288310730122032298535351807003257349101948279444397579277028766893495333416390914240778617125102969798085322600392540826399985276115056146532110304880415615569792568191639097394168196529951366872562873969646186037474937396531061398339100355919749562135000923923746145764789244964357758980773579581786082332320983199221259855068488906656221231672702955633689030005601220681448529891254659537403560126764493151116905499358313813319251038268581544097300484084304403951474532963299481493406350783601631272496549646984640460614439178505057539846118895731594023247500903809537574040618402784112246330029981193503040930206996163442753700217520479584983219901307080336986411731290214596421028124790776629425557581352738991040885783692856536926583010020323859834668135262834240739607242909925369247605257642406507153098374268533210166894462738159032774639137363741871335204528027766638982372646101478416377864304307780363374072069587361191687750905600864587789929485612726783038242737523549516663640564091812611119126739662178772439551969280113098576431520918408093140313883694077751388427623677918351032781832587553569717034810225950294667334233496871900229326821176733844027085642605761855976715895893429211161464690770715213297334441477617234862392982220692161071152885149391770160881778491978576946006795433643709771063096283741933632551091149062110845434598792927681094666327358525206751925208728788851264715921445196028099064762780861193508389748120264881831373715359027494465720525441329546839427593654555921880421745959720013179433350297890888874572055239979944819176882186134096028473860707561784021730860458698958858866275261791236953566596640623001895598236933020970872614923383844430773052017121107370386342133470422973961847837642075176546817601857780807862148274344942867256424052775660841180675609445644586762026844214787967700695475423453543057455062588341612772751529778093050747375332178190736950688986543417332177683382182055212362740042605278558735770993365872745324274097162946119840414290558971335597386255386506246930988802354036623155351168547150764238478633113236001615774551585003672345186600106054329099172331208681742780129578454901737529814149367568961770466006916207789157763557358818087799258941407540077124092240509430097827724117150484216037525522265867921177663050285440248495528953224519205154275688265969292954122713118626401795283414122549433774616606801618346668185707409733814921973884526910037721133434710102639241085148550239979801968500974177424746168081830190632478156162836387087006749338838057033376635384283734370235411251270869606965471740775781184214781428817326384312648459083782714023576223039043955494483965115621753915258805484942636293645528763845827650343339573102601633150751615167235247943846040403440176314699192483454825434770162828791387163504826036331021365327455607889312367868117749957939998681962353794170009949236259487880132830735309199497277936599588502980085873767229144364794652768382081841363607705334558309111296310960126261565872634764621308154925506983822239053392857920312227702044395576563996353748979612079276722943333302457806338909879351340596672850772853976551741920278683611548836325185480214880415873006490279413574710666139297361302664105253273044325782025085696994498966432175658787518188662892513171589289576709457964782156830283087123209896299622342914162632468852233926617361937806570530945696061453527054935569744766431165017949644333630267888696355226416759323623454750656250167998409647783882307780909393411343505258879290209989537320201987180394545704239839333770488108897326798555033023519538523525838399085399614636867547502892841042967073620462066021214734366265715286246541239974982395597238831239502823632141174050928032220097299615579448637493136494220801064021545705913713277270439192055457346672593301506544348746007983029088499832736975896115226931431140367675222399048262159536103856964228720752794194708251246341080661257495532059550872614931242015039800140138118810903888312901188922635677519507690408325726338030909413348437345682998754935840437953402926108551608304868818365651962495604469632778378412886269146029446414576236043418284082846543459090977207514708064328013606314869340979656210760504104454537817210408716250024331812050694677590459583494070728443935278086559352242366264878989183965772787230712398422922440113343235890022130493036909567981036993054243015709779511782360253206756716657250884471678542114643085118311526363514427732343940562160299933226858478568835038333619965190182342180000080156306032952842300020344390641158723935036458518812833888998846208964932207535203717456570387272805796535587349240982837907546568489587748216018528571570961240472549277207069771232244270483229555316856196777667129151435884246310094592462658599045904500162327690380228415073991938093787272446709527814423214831495931765893386458484707703623599148196543026267945149924674806996795159417015844384518353497994503383706281222259250507051970547266647037262765250347497706446792253362959164612449239362938554166925464973471081255029176376275917830849735579964550772667043996286221666995758119250795485876183793509358120037357455084433832971150893059697637851409569178736273527514669063808525814764451801108616941346793618910635784334529607923066492963911994080038645093592836261563408779071664189030943918083277746583803799762885670657005415691927697971925459562777598430096295095206370762246614458894437546983651677170559672798215176245276513107868413174321046584299557010714447868347451844076513466749884749194872195372774154952518649031341384929440827650761935929628327367215658402944495616472478901674494120436186169575108726489244144367536946504938169105924526222582170284921262634203680263378522698942717855930243025192278806863791534754541176332838599024640694670357589615552603016713690467794188759746538922500315092971905774061122403038795626943603151746416729247082911991745425576930603339760480907104565253409548595910988730980722063026736623064855752545946319659716143027677770286704263763346616176672959970670242314848031380852574292831207349149716643322895976229302417476856835481294699464983361435816531479376606839090683639084478535572618742430605998253428854462304632175733574034186570758346367044627359733428746980798176519245595291498903894716273367532000392773718040897994523231764078978047262358131496787943353683278439034681515128604696414629001225354780493277254889568517566069206738048937700376129918410283583003043170786556661654791068183738433277044372420965260448262013943601288907336283780069339859819947854338025193917760971039082909978676182727191053454145087869067517049531329259023219243570104208550722243838896169899085784903242388317732209142953932101375897221394601458694197917447099253411461513236390828851185521429785957849379434095064375432556331007133028443872192040137678699530225388623840868159046333971665935748440741184398307825584518786124117385800050040571871339735709669637599029905666201394325243086184874430407063421034590751373550328287263249612812280535792123460129059524196920620876166496716486761062104974377241976017408044178300663820353304048927135937242701471407192609580479982488189754886905781198519299866397006872468760327391953575348182910074398261541820080377949587702223114558449482876610916408447210476354664845430321782534742324744495400261838667657675581424402424762404056095185362846954741630071878995159879219990876044537053728040674970889281375055431144872572289197147371528897153057017352805658391214270235436305711902745948395059688745814076732052597731771423405880079202019375578017105717958854499168568548546458306994029861064025567206700139698872885918039240156746756262316814872561200035210767499256762383765144603917840573504464268618635546994078582062662672119707287943443935659482783003962764973219250913891385413061281541260309267676935931842278832794262975195899408513597552363382594156492021925484188795594764194234262341366743926932345171497956487655604496302843897916453152153909103631882646944498906766261639885577565555100823301362187065026864312673589903663262494403180664272513919180484751246521937058772952390042939306133253341460265463486004631003600292201879105094279456807923494959233586725813297315121618077473250528106050479053909788216751019626842762684142109119666968276975023422187661358635716778728173038207359272867814799079703264508332753641840059951096482458023569902451445625149240873126634526368977967856697386274680519177132594537880798405724886542234781264296904946569590860565692546588680564989548595622795166150341855582951956918268799434289933039247347656096580027339716208725116809781480272578806501395957299667213576079383507786201608465439302716984943610979471331626301804344082070030244776818884386067673512877712373642433056139397844064331187291479861784232324534637088214180871166545978217352786198879110636899673657084403301916049341155784670988500690725917097936148563834946621744668317050491679220312854828463271488314835532167492659979778703728967850469594705766750965921703776222079953189804831440154354683853085095620784614197555809896728440718805644892591998779157022508873071329372536668337294805452508969944757867100033950825849298563349935754594039116627472204044730944890950714970716285012032455431792502852905854642902417773061109694640874940892971529628332883200003790301047758655807277587613404708720714571753677119014436952898694622878420075529917940188164549931439938176981876855283077156437464487236168366055325563317221354899127238940115251626483553685341750112075084765782329757097497006890244315774310178748160955444549751827291988034189312868350046702834896566253225147552775849591517307204519022769700264316750719621084356381907431921373653499988000458502604363060412961398437806154776836506450677422254407632607040093967166467949539642368346305619473886523124222306610642267543379059603525500066290519359885019162504941364822991695110179163559593056563168139159408377324726192071165605778845475035049516250940448417190788090564954913391164314424647249798161226235116499202002342816200456926238543468244937878331058967738996684946423832912306099265380477375405302072303176352096630756580524086435531573266001821970511099466922853560996542040635746592505944740281365435510860471149507922932755621703878324735555302904234044482982936389996345469327639971316522084807427362844566572282296602354860498951852206468681992749148834778814005558193684196296728281013307496677800429376223530540542198801345473536793940685581246649536181532642896985321351715327399943851174360607816369101443279744775144221490398920647191185055486378675410348869882658880106737782405212572865181426328826384856864153003980277959709659314111766324706693738619631071228638841913837768261112530764244161281752229499953206291748012750436148668921331332121725739854863046833486546156563499909454819047279132913006069637038828966268478384559785895574851657637402501239182001442782035329459832964672226689269536808422155739655089499769547073556105135534487089441831681141094583416299310910364279615728594069956391944072350234654679308596801075174938751259409202242433197964600599466451734903805888063075363894824219753798036070291325151245213439929571697308292550913174109114923113871315846669098621885112622309630305087123248060524049918940404730148174315864298347679023906346088002672945003152652077113417444616421497313378671705654444668748110885635062962169636473274460062867457956089682589311393016325949145654327786700273010414681797681531023590864443470965051629919015504148627600459390943258738409910408698580423812100766951016328641198695060221592760043008780036246666690793402973350908845369661158874800071244338854504079614871184751946714644377656877693045500294248810902213363217839481028049072145312799320839019298510657781022861345714662395613600935201673632249085345346873109877000369262815433754644327623671489036417633635281039784661734794581408752802917944426904804549490468529895931253092125594289558042909950237924742196141881580705956050390254799588944121701006100072730099354709825916845977678032385478881492705183882053596383364058180574704392621285834126232735450692229154903696158055742429759270622973909721087800416830141899424098779013581908793010358702126180193024108502406066925948924685941539666038570923568424389682491691986381560194983327188811189616004023243908196123882951989646028102342122830481372635517571709658560677219056253561230796343659924075483288535836726202097648500123665628713157476936044218036180167875104987754518671780443955976754655392147561398119412443912383302420506591041649498716836435582273520414766712837749788255784976451276497115040851730835986669679822506472284462062386215221063761548029990022502681580928576630409621053681260431899532715043453411628312006169762144065147292731504503375063472317852950946521507914065708856512543490598185667067519052199243550550911178994107715679488864538230962370970770974749062125258349303925040935306902089983719149220984662301448375712851134840141985118716075214760497815228464941534172468279069715591833126082493920789517743946281142050833193654306088053777320192003607484856637811905288977369408860812286233258746777327608118561111101198551356098368617780730657488097782501280289982817522271928161768843246981211475273118611018298065893937012568403233119413557086292373614457223429253203491929915282830968675177727170282874839190334598117111227562493959979154641653309489207239171142935447195773567735775369357470252420327200436964190072032359232655543731452803601863649662504412935163471190141858531374787176552425183487886041332345426797901314822974489631499509447549362739501116419522954600070875196509920385173891839297493377720354750937062972012986459565225044870467125507753751859493642521216044888141626167012991257191752537249125289170075269343428291672286356152399116226401284218676764135285131364763252862829347261690116438396602186316612009161368411400798351145366782254373822180955642006249750876589841107923580424078015562242475130327071460933754296531483610108692605666272301488682578864462913985527286276602518920454962369527462469814557913848006700528670720805027585928467105101148725980066198088779429104176725451234466920006820580027084796824275613284620557517176137775774652189289284347984544044017125453365194108520086384929776117652793331838846922049968920291055126899836585622903756617933198207419804834001561508473849781616457938810560876757821608668432360567607306460138578918862047507095368887360231958002665913094402031615737005022294648620004176178856019533560398628337520020096802092450351971155383736517052071472697258845617323506419368540829949940949244773308177913195488220942279833792410231281144099925394914781934285926591717734402752918681203432281295219961533897967638081802007245428476360608747538596333632515423951034919172923446726101592264887804093866929586050694901552398713658765954141957418821983531614925020795665144599205733945538783089425627049457255622319582911008285762458616355175978142052345836783159431890080920118634784416642711597148134537090947194427966037281785381541907007376229729943532690145504943923657949285957985711292966690645501087874468063529759902441346207018191205130973575755086186527970470311973412517562721636503157802874968525862075887727345749232974669904629360883520163157371197117397165116412800257580686452381208683284437021230101633983540518118102686145680606194640580757440432827557023940674869299811038142781581790211956868724653155085605246377003237539034535209956716087987820224831569333322605028511111011408517996799732426751568547293057946230635685501509709105795325736428657500211938395177495226763506380024017581312991165819173486396766799361786378444444259543998414384841555762241004840721819042903000648244805869012262201907027886519123600426872657642244113032071699344294509505733105496107254271224001929710695610733325903740005681628869283493345082401571678393828719650619874890076973623818032636685980692294434684950419095460037139189489899895650796375448637516890494999177132344500468397748514559850363353946889545873677858388565153005804299921740039696678776078565963401023812476657639687481675434616659868347159120005940173963287460722814632483607999449244797962995971549509584011760792113341273726713487917042436882446678382147098319849250542490571314845515626905537734397023750541916623298634825828172415484246256103833387316897875008495236218136231950066910071555502865930526636702835248220887321891877359425451015609597257714150277869262545124392970678508142023153454831792382654575471000888139758381803076973085857428727442933461217450901567055946346949652035415348101491422248769274493582289680047530544273298488517724933944015922875423114076540141210177566168137704910370673592775824397385728166312917582619634158150801172441213733666930824633106550558383328903960010803963376361506287651392462241192071202942550411350642849744236889371888218249568422319848227413750816725638166979768606153808721060509482245190875862775849815504231971634767899883665702202062892361774793637235856385680587255381762238899935632539162319027061593782817076868093142501783180038897139084317258455367361642140924843220433899935188920197304878109944204462469867516024889856960175048598100749079021750223868384040021537151410326642604407728671807532516009328013117155704172735272358065224042475445877741159680034905543588079408316911967257568818936213654653671492250369381489666601698156856577669925138297638916011279275121121814824929136167421433941738303399863074732382924144412062829692367798614103658197251112485069221673808646287776086058163979190809519166363511249846925833910491499166744162930133369041122949743208496948117405374270511880863475975372258477170003438394259113376414620557576756847273284860403804397445569235617052484927161766092364499158605034650909379011403466313364099788956331140481525202120740564157712648728225703704637988998222534752060162097980115140838262280241460210248549033509577664082384276846635584720472126621732430889375115028711768667391200209684932637618153190922550385653827619594471660679275952134792343345575714596105654523193844799751677360769880020498132857088333345714933824850128868081179567608360076591598071085697880867725110171423732519755957225076609669475500207963187300699871404646058096704847366830831944149692603845701612105539772210500781942810915843175153172610043539968267117474699076968385493528451179660360553428459678903382127192489388382355175442378441998108096226116887784990426635941331622255792197304217007432381748442096965822471242387866168733488534320062793772722865410310758669776826720205647517219988950281890408535011193770165469578575096263788974095882889969322312133868478140468048637720208647462428176230415893403879956104571248098429281491370217181458800112823177474511726558844179341859264875734707452007820170614904919916301007624557681654519433147325858884945795526054162007250271589528041753669291057955141206314684655055955803602273103764993658166791121052760889651131199793767884944354403006064974881865860624129173259668539543645190114287691295564172011472492647076220557760121299033266299988808845389990439903646051929277312262780947432295989580844028143083878940644449598778100459372498927708819256703382195058991595922346332463870745321455538727771183144041309525528793188389439625911484915316132319806841458218388767364289362452451293576280550341536476941454708655448830787532894099900975731335779769121016401293029903793700971079941399991494145839031924876126300272664732469769408396045578675490641863870467955887328832598684475034615313406021705454410827634326059918938545312274813543005645322769348544332376424221225187614152592033789633736470818071036381034684001173980411122013893153869348735909819940352539495829159670559637822147451866147931224995929398887358901950135687526299967072508176081116936379619819918984993125485308052764075328555594828431697005958957807580402028113945629870689096371312619880073666624899515133828410492911389390583333332541324277579810316854765319436877995869750024366239266029710157097449696094100135440397014598260256820733328141595244347354825224779546710946959339123244960801053899155275457837445621555936916335432322973898616395113485533244494447962294295330617964937410562496145342556903032362576549905625287034469471440011802238997172865943206579319701015216772069788508166481652674514932595037477371541891553752957049623137633210189315326131534975863447122791091670179367713552160718478660782659508704106438149335071843325307145055424832785466534474644391037312491285447093781395962485041243373329062324308729763045062980018018544126317173747299776148039515672467586025493868791114785487587163944224583884536702313137262754100538449476773960109558526470769114052927316501068989175416960129854658649898378211597819416552009745277280521230679405356435507363265036930634695427790881165387759617817420927112904518221386922584610016950956864152909794938330620368526433432166900216956447689570165938283603322357442812395079167793126089281611763732426717358229203239516032587158277002272574458909470744857231933570866692858445697339554177150651265013986326111846460860410224999988623850319769649721740497117278179843940536329408123431784307687478074178875517381133195337680003035041472428497834305210220751063289018118868504275406376088340293521319587365666852786881733134452887766955723188546801731504367021623968127958310642895999610491991792637791404030424289362581986165492280715797778937945734435764044198884665804606046039990531257309062163183649054414202309982564968390853735356070343198476539073590755958531285729961355798757745492470232441882391537503438512644041330482584320841601224177548886960154087681405508609763398783236296699583485075587564088908471575323161784979844934861066519452268248697606299499752177934896394536455819532048463600649749762109169195835691948934937580589933795698612966102950777800121716531531122437091017270666144778774667571369867560233980502122878193474137150957419621902597363726412400071033287740936362558556424509575726326853338219448923597404203401065702154027122799516383755726896557624097424051335367727719797269898123082891940023711904434163479493235552529658911007082533488515237789773715767796610231171984239407791144712614420056985282441335811090557687234118438594530910731492640784093251895888936436487199530631602565378390663726399098930042521220696568019283150192652377258861067100415371146939270401342518664572459527624568777184774441097183280101834433227855522186415417010116179329236740161776634931058654072004546215596762837091854486659906345381320140569974868184981905628200181923840529719188067493288919015975808360684457425997222276135329741898313525852724262609186741842997834899968972051622256284098376932395952856654088090159201198979240233070551277717031034347086913944035552844163815749050435271381939208488875386769202443841800794129183434633245339541134535072981493837725176828078017538383894142567319746670721835801022235654162419094086528659514240963364854620803507028808161524522137416932515675598552764163268558853137481587917010993040583392225281919665947266463873333643523086812230243703748256677376414242487772570375859419350017178817464226094071694930173736779510827994352997037349304768631942806056315361264948056854033998118112911551024620351351125002301769181127970508758973651354395415277107938565770916075426577260494213690108613895257391951693405098071750165502644356887157989958008836027632376964882136401570948746424970285724932149854073520989644582429133218904696151554267208516844419421455472318968727992296307271440913450204424111910545463876489570750241204067426665708162559758119462519374901192289536089280443478599504259511237741103028285546798819450463057307110083578092233101295811827397183302457713592447312184819603664639062309512427466385050762536449066228286889340923841409758934780946486147273987351075488627628516420143125743495741776491321369399626128414847335208709970252007267278385917283626978067073629060393700829145102000933504997200659057326856918744867617673412328204832345063134239093261119800401443817579107140657571677376370086928771404936091093405605982789399872740228156256717441369441343876958387359624235458494173456807342548660957334200985443859209729394055243372125605664443639064351125949923617272922704832119849088736204550652188232957959205250697882040412562138808415939569867777929385959776542489937419251467665332835034376918992695255067153783895955313561841909652638014862130267554177888261383398713386786538122295659495393487952040652205098992830026795646530853022833564380317936046305323274168540775876142031458539969459328881265372040326500239848523068459347142594941854240857174291229145082477277016230531883285885370700342827607809931568228946543801179324105241860282848180577448080680618203933321944906466634008304880579051860236391786586163529607597441229500990756752730658246897007200751388511825779475346567093643955493975748414003414315056567216145146991884939834583112319105990478876001844790415101052396880312084519648010725010042717544921387872690465953711393547517005434855392330664272648386332575946233600486026109923949272920430778251641344975451919109720115786656519849588322422635541538527236686875986435431871900077650024970072946448978426620375308883334432006685835881712642969037943839345811555660486800524187887740514361641912627921245522516572150100980747307752171303033077945666546696316300244270592888425062734602282632028200444966141875151670487047207681125640980381108311386498695044395804802681624255338424335295572098489863323890577747479800981086050265400749374655718804721509888060719683730655035087800954526938185905895396004266001088331771017029639618310042330203050136127510917436948772664787582617501714276880449776325843068353542233428584267612501780136324783436424154161221875339166576472608062755398127214203166622089022791693659357664239572955141196610166302717233049575443090478204591877096411052366443982126888810616978447558657332581415893239668557614273612783944325114519765713454949600873774211578394785911987817310135744144890414270395533925663041895605911276580287773770145169335477662008376501559484471617212077692903396358441360574394852715881083673911836459172151044486476365589109015694964341012860232104025397849322544287093421091429992773435797156646766957537678848258308968534477967293791772935399811377208720334607769258548911787256715737231121469434983259944280585309141718208630010068328056321184511017145397582827764886561935755218934926394657036723398206445136726329048096487767508526281157093846883996105081364787924602127163248372378526058238353044840989325327693188870523440370706047151698381898592869413088680903032341700211572069023756513213066694606022458310181699085154007134404672736832653682150569206520037234829093376976019468991412591048385784827680266061677319721590880681973347081111339894156043769755139561079286616368125892791297871249533318167594231563170095338086992116773127594976866849303696220996082522059330831664362888371818882627559463551371733377999037506029634384711917299540596238315245310518479973676479433154328909037696754804420984465126902674341004238129857501338686655816646593152567665383423132784843170191235338851259526496079099126789611299522794122091973507518122794305314857255266011176322264793241130986936282859758149806472609722754924309252393246654206965984851272926175804621006398353512106166706722220922945842148714333724438481712756795373089285306532600590034107718010523682515791104678316440896704984780196781033301226266795211203862267178950194186701921658745569630348566277751955260803280740410630058499325803737806714000386328637234131389357961067770493646427866654821567016842773512912383506347766519650948298455133756988031973800504171461591225598933822369653275905651651413573508551631813277645548395806948568559507453716168658854822834117268097223740758460390182501901491623567596579569518441888222879821078910599610116594423588224808244928367602276983970939062085480515684135242935945270113241614299806276720015931321109173849097364496891021905113183381369385023051024825934453553572880555860155012657641409733625878738026590866987171893629499053100988972648956204614468854074519131462679518490172388503909326883124716203508468859405409247703032931279910042657919528230748008397625486622132272654780892940723129144714965379183918646877775560865702831040920435506025541068893299838718028421884142559539442860871681188232680866739082372321052950117495844439042905298947222267185804584965157546719893737078794075241272607104971847848489233305468338216674658161435818082354277852884223802982741384116949788666407538957521287548408819932852349162465759610332223460014931839604288716156203392771968129319918227685972927560598564826729085226624076010484323656098493674607159226782754830381730974773728339940087536810350062757706008079559264404722767555557608566068495594878840118236401679659990515642660677597979065351749699319149559128279745300587894163896282992964895245066645643385839284818750502777356203465483156055056486494191401324566778820951718931711318056344592562138884615326765666087042433031678458031845425687523427692919908012761995394325368067559126363983668915737173590840672550555422946880880715084351994668420206616462554205150888198265449211321941312927248342142809874492935324567234223888781081723943717166913369971021357717436539190787155473972972733359987453597658870436701934527234638743770477253066165968266691741783080062916770593796982831825887725558693331885860221262718734114708024969690538829231271458125915406673362422596791323492950924909080695614927686085485264899121100080371815523904199017586987423367115081923354973163595830911917376957251793721543625807587978864227488151869896010392041346684048941083674906658913150314007941399303709839803066835811433846266603163474614802822589306723981042464975041809977610591288308529767788190250651520359142973145370494932172814711658571435641036692786617950471836722439843472028309553518541303180264446974196536537188494033631900756358415688175435541757771112900902883323229707442060889717075801180486922212394400831236633390343922096328666376744586455207162421128679495051037996216670417181767021106048063954457162591884377474659529332992852650869691256472439671030355412590745584664645365663436265734457920221611360423944257472415221012592943972391457027931799647249951138599190171548760896453784983328072415564436509774001450063852476807270418195869499494473334270325852421367311234349204218258559987523424448387978860469357557554900327468029703970381454269937849083459599299532867652031046035187699455930344319319206845207931871766485925823918814071609647016958497076346978190151703606507457558521186124819502310933857723871404430658569306173608217943216334027630282628728856534892067471138689388247963796029259093026744453897977557280181539805120241798517559085574432130118993987882324640633501195380528001893993547208792671905966608217696611269849438904215700417966915753532030523866755179640564153480543766118695065758882636193848944906869465416188011278497224436252452300291202128104846369464745644335771412985661411354346218007071642956382815798380691996062006765532736515545178497090603292841115687520645576327327765319067358292686013313564936560960155318008652472539830349126277698387458432956735566314849935879841099583152031603318415566697043874008568537363208106579877442412186617430215256640236905757126397400041743852417352356726225515740028705718319437366495409171370761383211842615489234679739983432944217093918031771409879232304999164770161612658657489776835960397612150973877560023964885297317486767808624048851764677960948507800694670005898379196738538312321507971880428984944932382129557737508814237319037033550700344878411734539169988405148047222670526675608841329002556466434879782025020083232986034397173173023005735875554778009554425457726105591047870630610631207079526359010561261375440813252868802361767095111413545122454551988144901069254959517884724737370404093874815805253372333163449845121473914075712960062653272840782838693354152992581938120313270955897332091524798108853524289416793629085952036911891390304016796200563228830808599218735643044849543602404566250576064215762428594514287995224340883301812949750759262431147824851231118183308528351187109586485497478963960212385915439679454495299926128427257103614819940088130626606226461492051720125597318486570204650675138619788879494381746356902462097428656274277740614131785478338059973036982870510688167563959343410664321067648372502602434629453885850997792146709783070453325869366042204666262719335125059063835884317393488560117962514270944204445896759986776425405538929345317534535245744249955554747842561791581586427479864823609330931027231696623186917276365167936855722437644552830128089781023499420716109760912473433202968338276842883938667481651324199212565604494751259661511164688948163863798638535334363893248012889828554291776550193104512492841253622486408264341897381817104432792373996989813893983139092008582259690582771264906516064335860417856825371168422685158802841242176602631946705244616463320145473592504754154661118643757133243044936798428545231434832925190510707566006089856803709635216127773147825335194527575625761875430244605396483401598658263668357010442814371493095417423625034481531358060225167369927170380965409585261875690304051581478306227285158165332532395063691834922669322376764270759611924287676944237612904246033315415505899748899065119523351227484321876090670894509877101682880819135341606972756363955493232790061069628692212568660036484314834641806251859671483191436024563335212884759240166808314627770295771657764419559756276505024937205251086365906999041381311277698994906330413649810111833512232538729933653574269692686459620288319397166356347848479276278964816346979129831081588537002500946241705045295008356859906755120027906953318854995526312055394713760714002064324689290479520481534023175851419036288877113176581761494703928045734264590435024355728812504837509756595436346938728908959703225449145034421690871182680348396968959583502231186383243199631479627119733779949146490694776891190034463102344358041210458641655180090951511628943923784412454615632568243780442297349443998881763217998051248970988200299674827370264270948995854143135379053342916283344700141732129889917064849339235689867865326414747398060742402549362417160806122385711223431717612209208111366397216277669157102045883041886230352613088221973045679932321844784509055271404098494906471091130043439238516735483987218188504943875002977862031907860852703493133554894741065832848596148052312098843014886088014295940714278456292928414527975922917676181276781240250243816741730947539008807851216620732562752150812004654727879468678502915566623301470243742587229015658190727164929586009160479823697934777665818775474258118985338398165591517155008891515671263782898631086592811959097487438912698394453073921936012396211094307893831029640003341184722676328651276200753831251297558390708251953825347380865598887009579181714205687338431711717906347758682841610360882070010719812471111658793802562302894132922413289836052224045465528046227734976170628079031763358554912737671525702787628723025984980181372136150761577796455468570205193675240482386464121355183298837908353077678531482687459541314559217791405737782958897821790059017292790559899213836983339313961214232106029207226172757028013096957670501537696077561024078784819680344123634274094808042986464735909022096899448616998845352446279607304818641180398165615695286882588998348875275197043057323421662875971817158454238993045319283863809469175996164238370222396584175135370078462683193727529699304817374504090126620736244192215389951518981840809919023616504248050309558042531616347589081570046487500682357103968048608351139324449888423116133087878256574098299016607140271777935571032983810214426112056011440405110469424295853192603557943280021261058283580091916917366287426606957901151199445571544311408502413235442330339676356334947903654345237973705390368040796780463387672996465640855894413138097487115547087778340525044324937586594359844161695044162680717261123797026146967876339797569605439758410038513635890035253967277485673412203381938959381640144041529008867287423871735200779529252107210026565063777916187201285705860351796122083076521589505137923667480701629818376503858525057182687043390820242341695412838739651638905297517867549021402872313637514164096515706878918545050857809857164256535651181754414835117319387524579177758032957528793561346078720953241213470073230719045731285455187604273183380001185924704540579787297014687222078474108352653845306347487666783046860399678421157354250645067442693839126821836830750219327757230455722539499990189067654503750258894656486366594738172140477051590158836579802711250249682146192843470597845349986513432458246581853819346113591661492542210840975363474958656810819000541899746130478668266950129013025947817923180272685025069396342292720312874899419859057049789205417487491207949818651076559856798435355347925649609258439791262250282231516948059306270221256836073249557643459991228165246761552279313827538995351363594090432951456089026112063807712843647157089261862996128588612550903045781098513336570177694569446384194761000964231496989134058332229517343026456131473247778268006904626756875657422331806622232260290968362022331115977514534254045818119887815191202321611593436116877478990942221407575634518361838332320585528623433610736702686702837904173747296190109186933075051726010207283919621607390987796285401039940539316065846186879177123973356567581222644699883141882958513716298724767160209079881461112239496266738712100373014358542976739667882921918372352262181733662603019260303951770636432582294123512431277762862368600617274435463417455350206118774774461421281103912654975857245900337101306970654964631345483333572951698884551021577317036104792033626912375655859179069324248733258548885585933017979728733770789232142015443925597501065744874922449521207419504545069230392644190663505916700912710779445905338920673253338119922300039105527314234628873355227172482283460804818595219839021467773933028824795180933213095140520099183678570025777394006406120881390292333547038520307614343706721098739595481080798179987066203835740509935267400185979063283020398610734160433889017061772631722141039091485858459802548398146662922058462104608163548700932364874957098319860785764713396577417880567097069467705159185337075962381185291520769330349935333920410649024093103850499577142977858808816027699880746954964464485686560621616060820636796193825361865137802735122348584382350881159680733660727278798621362783921420936454222138039848836655375643512959230307769943082852524980180376911556412650206334209063650969115799239614778916992089809490415497783550574553745516733011241308030328663499616095484476266189902349407908456405612542264162496518109909430187473096139750327568284612159410911676836595842614084115571707384647291329242579295242762988975157304416571889428330122347614994823965159104861383986853826633511244358930405739768574278638325554530746431643785953946128988221439864308371850087459247190574334016019554189695403465060307924070810505542005264200556047756908417397849715018779198870210882534627675038940463045808874538316314568324054749760520014065744679631191628362961707068395425588046790588877126253779302371131949179345503441731907802950887234769365213855390573752829621209632107525040570389965763295298698429860948904696063122980799118042852686251405750526411243412952373604659371932820343637974204583770525576381056829401830956187502924508227651537769841136659593141165050805665685592050723437109081330083955485978980542665871118946656271603022617267136859202278905552045890600142101907827812967997571600976242392169697104656092365599745082753477621483897811764160435581708364123269837349751745210444201797799260388992521952562624076692887892389805922783576247820817995337296885393686971517311024573539514853354944944439462327119966061217124527425077010783302040235869877698411475219559786524402781049970772764186237903069583433540543402258495462135184520431599552934701732138970000343065005587701165671927110881678017976577126500465441345011385227887061128466348982004698721698316435726716184858313035752053412882808710491148301498101744915990833680692262676557966747408319934795083997986951956124166477926689848451115253327158246640182372686459585159413254743212698597349559904864182452718176124598480944834924980420297992018017841504915840139554807740259983370477785746731425980639211192882690680832318665928722020840605212557550194579766302360148796389546840562166565859183361732670250701283595035848136150486472652825878653134496595566962099031495184996920399676031283956603511530713775354140141256258409083200138468799090118706979796440701984932273809075241578535134958609621656065080037459889698578251478838037298530185026407070148412204471513093727915229986584935100120514604655839806612432054146594017006671093943108426341467456022393932894048165362942236991274243922351521582386622176396171248617440550535267031424769516160654844157606211980435510005059234571556900540649502027841739905235867090240135615578085462025047089410602202831576521250410878490415964747084833206618435836729064407607625532570030038894411662943245990021938872866622517378582393487522051791325407570368405060293772547553025197697360670602239764960484300638035992210230881907835816150419333394803754203183370811688557189236698809487136489105541644202983010828593357997876631258744292408597452351565122504616887192281948573660905204239654868894020459354682939156194003112314567679514844970274139313604343917115347636905985201616874206702304639097605801333670091435527803324501210224654288126251787268386263999116690723842888573167893490321488280313751649279993639911344617629285910918193805037877152465946828540955808744475227141865325943000999006971416178073742534022720556105665834819293928866353386517112349004092909204688798455650021708582563522019967017882727170091507519691513434484328873593726204207906709892914138326247750170932321265685348259186279076338758655773365576545275447363347125863590612612046517458882212778623903772715539341412314552586135191801665601203476607145499660709872118481838128374893334996530605877023151245419652611842918196274875569560490045794795759049891480792107493400429205749384522239810586060141615349847620953261019072058176127175798699546659347659599958801921504732033648889926118689740903706379447841708222179398511568151486674286509086783940618382116196993873165415548620091104053514398264948263728411193737057168020316814065039134899236156136009196166099699206652981049422720690069707903214536798992201662163069668361410580612017541518780979378246044080983871961589338684986059623829846196937068884700374272109538182390420081467656630388146212518458220231424552755366572903894677010038302217869952103204648108663802519683265517119911014853655079235232741098851404648898299921896790512750274137964454962375171481883356160547636319325221350384503970216533597430907797641732344833274797380709142051706723491317854559395884073941639386117055392548398118052328803317301211043691794849182719605269274933545022212937099785653731496265352739599556865019090937363350758273609906149714759068087503310236947829910987668792794309308914702761543848451257192145880147467558334356054658875252793481368853755608501232667378615514423191821721717177154653971731151328122679400718197162567965975676365711292260855982501249568763547223802074142446005303942568592320206923544763359270328817641494191931367224664409951576136691574610877189000632336087108257402800711602118904585327960314492125194777529966101423344351608759246325874222402406048610301104474232596216311939755749049709065461476709896289721500344102372966475781198736434394404452502090569407844730084967019374003045323996933379485292028848465213593752335225122775764687675369140439113085724279231247265148585019356584719864413355039263448930646179603180230497284992557259645095099799948086029224299185155270252111065572917478856897224927440659065852460692561073265133117769128836262039573105040650484707720337864828034045098726341767442344803155188443182118550495247542980075150831980677789239890262401553927072515075195515191787809091615103915094688854800706837562647846770667606502085798809657636684552016465370478752012272594844256377396497004030432223598744462471303671388186850370498896423584711127353624620134531451363626051570417032163248673048617506461615388228898571167951603810153725099373129641116729198991362262807762209042798859451646925376282377251620382244650584916716650623716620940193834520292038028373039592708625948506835024769290531363762055179539707566698345193676546304945142504671277680410318266847303640276522341410133094069274674570441724513322321111457300511830178254291226375913120028695039445816420572113254138836461758858103753821246221751549897419842940999196420100583877481440937933802627607202474658785164236936760770893015224169322430898450211697875641584632785381451870669322085659775005837821559426188112038788243116582830664961784578470376626454282960956381966218105372948962837433747078021524670999577125616433226922386161660266034395477081510565717761744123931694870822025344962017113505154299045228658173175057406345136907245371652648080978736031479539237989675367826820591377786170884121950724102535076612097675267603895071927994852238101682764215894035538628178849602809802140428631034067798572195520363021808746158437633528390728477651007507738994292979378722316019310910867257568901393740203090184642361082723870040893565292755630866264312768753137464900137370940089975318549792622163063824929732804491568195296863094392423685386611663367160271124777337006376260446788086049402359711656292071149426168417396713907260446550342916337462889461230196593863441724225282963236298213210743960972872422508183821518624708824575117500127803351356961665413089845773536651329732026642338564651756949364914667529705577375077555407996508363790405865691290970791694722242396947304212695534785594514565333447156233537775532844935716587266736343865597243422996488020821783138020986532423462994494261921541914819731008941030930706329410951263564436222939358392164574758557582728701287114994956772427230778567403125305439465943679518851210496027362921580521498625052342510103516157077970399473915313405059921432551008896957463361203330421461494090717303111809910713842478229025234902545473490265804218609861717805299366823206613523121356685631416792037464744367808466534901833115235988158232473160798016244502266642053649842002973775063108456684843651361101797859403695311411844942373452674171039907663657599332222307851502984055925541088354745941182172896862878233468004826519104395350504662289923027600684583090719394707470399800410357133050778804343085829078100411818118549259381828144209235650422842802592591468302300327784158892702479078925730108648846921866559966957783389233880132254243216661151390044982791211783496846833269294622297269906233204686710596818334787724838695558177732220893410217614207862025596767718130899569305558290495617194382625234589826312421905670353996539616100995284793936831083251087045250631198880351094788995162914463379724250212282157637878663400879399020990281353625864539948692468985053208035437472828620238926540667418845998399228960154805584157092232402336644289471413272426668759533192032223136262908458088901687118900685391182713995309137727948891980247680316888137831442369840853026437395952109142390231882797294551021950009593656655765730677398376317724168179442365340974508864426573701295611346694832820305812552884563999893303526602654194023857284812039396124488004656346111245850335449071130848300611220370107004805286262143261142137428777365487777799714155021700291368422005072594346253736302867554836302599046432012239627227608234559628133550533287294234595003569282786413736466789921697721083828256942992029538150812529110644291673828845489983737697246176744378812498661287724473640191167646540966935733444944733919295955753866719183354488489061014758509961133213935745618751248076727576497410927121801051892824505844665473970061063473799883661505721350657744387889514150946208432119138030746097812622114483678907889199526046408960216804690663320222468928773759238699707226230266411587211639056745229937168722540087501256526557617796408133648328337637848751000740755241883849264786480634604742179534557776148400568174507394355710862237896508420103863778000568248471728681312448647334530127196347759396970925087626056678808029453525125164103567678568278872483991861333132546323669388987902017552404266804571717584808177050032253873698536485149144301403856130690132721423796510527059397091428808323498820151260414221244084576200219721860265217699936543922862857686755112432017046472865885113569096477780101936478100066222086431998764588370012811539121795233125644774014958581697316302430539335710192219262285494153527025987838711369946784640078297046668390138645307329259151876425848752209086520928347447976659254812070312154843762629519193059538206134953513281907190980466121001576217571765057283696254773519158604796800815899564867729491579893169332920190161693575064267057284686423569970264097607753886682020580323410239145107696285378030472186989817035783043752416121021629886820676629243603101996034792703777288878642490703380633204017432757042334267903218745008065503577361170633739578282946844419823149671210944464262369218827425925602828375959478522764969134082402678995863566198336863749746571872577621239675061133020527117510012979346773483710035195913328752357310799773723678456869917955733705109053844325697318021118979042058057287206424140594347273472053851826817346266418357849801033092545973700329698058160093249309749043573700694231926989083779532498873334067768039936212469465405414436421051488681728042084008844995126676495326392277057398013345817807750231761231076712148958952143217462468459053176357863401186967537489766995090355009296057298623362769317919062816881784746656281044926720788285926414389815575562946128201751615467952279794616122156432594395237586710653518370090197690586416182373720574656599321001837691635106020561020811493788333744533762304518738872903014675804415112401251521971942653610887341657097121998988878710016361991367353489081520036063410248349667947752921176167333315751162654103951239409067668598093237704085959684762437879770165783775001172058761599435745001832778632840488358044601013248762403044691894186047783454444769245907104252201778907525678829243890834840535261468500107226806595361544195036274933424195575952899349584529562362566892337604452429643957620361070977862404067293178838725315785454752853472676976050172226238560027860249742845579483832646909806102974512729266365621509520261672804570832698302114862511324954760171348517113967955297336309352733506123247446984533671556530742474530679570918691740208981274781374024212923913147511572452142226079426313968895985099905448081998835442010687816590379282846857768479568809503500846779633545003299759091155182500020244758817101047079133774791628949770865494019801485393597874955519688286489485205669596726298276758349818077481472803233109035951573030835366610473718538761254710212541704183809673542098769467289897330619533713615722759139689514930246695167701959154077823707508593915185181903218054331631674122460278491998742231844706491420164361093802292589453353214315574833011520951230373047549513769521108372953213631653037952320719995854981046500539396255842594421971526000684322532715281799990651957670102077925108798360678667510465923329996002982503624838983295829070733271617119114899626021667407038107724300539481680820190482276165208573133757893973281540118622914856275383311935257321199189554228096709606945238342879694606572935120543673843393361692977671735063413446575221590851029777268785086226600905442317152326855593752638842564798625100991737322639973864629986998955925587327382821604599887328921789514701472331417717430851032917605989062120587854743042227740025724657714037118509750270290587971880822209907756248380552380239694050469521664975432073050648202270958648863327217100156789863676529758308674136762652250627538712422122948394274757938990548299539001492684645711494580764175224760400842978599900395443096650642638746263814803411931284965197183601930660066997881571674754910364963562313885084522906899467456107620333785976029579713177619915489151601338208270109282206845218486872230022435886595541988089182910411102843440422237921004995101689880391852563605929641089926185716737933963359888764403703572198527955115839468338551636358561113549435412842027181470594131200500011811246301468052953034994650979695862448558164801903286749835787820244796810163114013715326575576828344671678981979575404465742367129357472641214046600770626933052393119570651017942296671025146769396023248467777094161117573746007909693997696568979544496830326768116279278048031854699405325141338694663691589252946956175032343662834110316085960127761661145234503065093944474133780464076288791319568237435797439023489006124948982814827702723746539103942925443447033937466233914856103727418713290339216896373221287448792580142628674866984253212828107129857005947851158736336143929755297456878169349962709886228581580701788320612454566266533975918238876689314498313084533007367466905307863657216536040321235431720469119482978551888093283954010251301743628481153069625507383002297752411683181362378421911502847771581618485856994131718327951886569432384960743982266153581103605768783318896210481062091706693867205936374282488993684739116854929151797680840748102364509188934264163851016794159761885911451553951025108955036139104331084095607964383771380838138203596203068835403492575057253684339593559360176077794936059566866222537846016384821021456180662614916389412293306334370420275486073775302412195494959380026594783923942472962129838231829783498487046244263427308975513061096062961189952551015556032121383510117304857808864142240760749484456185556413649851811240565577747866968955234260216629558607749100558304683654670403205637039017068078308739239290461029123812388155626120863180917067891680992177169962396589328546111027046041470784012941211660799517786196631614392765791435239693773732557056245390565807552067788295073552612414210185030767603489459999250629824418060532945228724769190559032066251147679685068240422521304848894114212661285270389298424353718872325447705914968286133056228442591515797904571751275817459110857537585604169934666189433141869071474040922530545241903304032936919303394239847967952053358369240814751265865043890083949802301582358563587870028994200458961038427438010824418863331927137445342925728410999020726247738860228952930897235687525007861170505394504750355673624942229152572561132645831919448493445691898555120482952954080692050326620102929234652707780197750617845192873409797983431809853513288518932569907591049852866816800619530120638862271095243573287823965820492085902738418676833339680610360089841405658068047430299040561685825909886039920475783207761102395505772261384372731263603332278037241550408845198104326554464878686888159463063996261317653492070763748553812975493991353488214485867197513060975835609119323768099693420374654235180578711706557774190104482455760808985963488354194464919162573946013213054133772486823989131521868097646509542848203834454150654306889254593104478714086596361871612608593036490355344318091080598789839042177413486038952705111458168207962255144412284377145905760699973944316695363623655225236925035883443536160831311993949161334829817228696094181821036230618871226449690438622252506891582453122203544536785098647464131103204895779461591491002152665346717841149911813267833904262346351508380570184274969325919072613409270386197902302197794789473496493349837053567829846295288714717274124691412765463593202094713255909540538926570713954509630372082259038548133336690893932490045320292397679811196634797283916772958521207554345979191320643917872534697220614100195876464295530448436568768408944673023618960151984168767045565437407794026527436922106044016320319448021554065625591851840161590820866486798167099387985229012442562672531367403101282936089701622476501486818622361461771956195903291498312468234523383931701955943879614789783141217616584218949722969459993540997119793886118337242280061018907258427161001876726111065603626812798279898026725938851823340747908759081923207665639596985214274865846896726907713791207446891190723637804739563484857772021077849012408455014836642367845754624008047405868230110649361813264056116815580970953606289901815716724801078002909449279289799111029867270671381283659293102333598869132740510893311676520735208489554340100711528820069953548909961063367233694050098204648097863633436507753448130976182425906478519472617801617157504884039167275752269267958566471254449656918674959908019749806539257413118603945949018008848604853040566719015213249644946185545270775226337812140716891575252257140580069845228634641546126230283066720195150278131751766586562582718942139524208145296203229121261320595944495973939394416825635912144573106228258250420765599297283633541494428739859589361209369032605777449990470645897501003929523866432705991836431901816602344312699895592813997810061395753680749394813051952708266938717189920351510192417888375265172846420153825972875373031115009713737364551529354681036278764956575781320153195325018133834341329884246945894302700224279143300750405396479730852699705599333028075005723116291383917645674282626942341508350029426124802156332636714756679309489028980966848563994054379552940636398147361252626624675131164565996209052591897413764377386363005960028010703922087034248053694708823641815053237688897104324655942295403768629585832629379147961723708394438832620076609199051958419914593792800061597860110062486994390585226167040312617408934437058842005581831086471654934205501102283650130882766650005475325831062245466239987089682985726676337026172946922681322278511782471627425888425933056400499248531530100934830463282878702141519679127361519917684012737314111935616256413002448722513459112920293893878726085105474870550975403884772836649660650127951421806011950565634118878709545179704748323091122449948867793034809263899097443620849338462500064768545342030891691868976392283897234021609300879489954567359606461993602925735442600814549907408749876454789395969161929434821156248646658241758782686732638758742947750168473373094282295191692356130129564316032729986061119680050162908271304175828156518491712746257992426593775045004699800137441861500696072734537766981526288441463417465507077253909644959158935052209696500886605930141987809501994421781762306071305227995148636176777577528411516736242218889161275903567331943177591283114268787078967165898531456503010877659427083439058895350241989258203795783358159056071594757169837373603034766847632950170716347962647538006153508952030199171263794998908990354181502360629165523326302877533769255253401698771622305599069315705812604964781813087011891844075524979706880480568140657435820430855813526007304154777166601007120387436943394478369983227755406854203934218047869279639868550827481600816530831532264621134906694727610024022447979909352279215823792136520346009214769269876723304588001563751148888296321760986607517452745809709023258392927164523703883393966125362905912912370210867103243297106065821885509807587659657941502105074962628165616559237354501156258010072442520256343860320011140155474741098714244961218336457402801782314870511284032897958753309000273533056139206431385998709594335560976215932034634644830259686071009023002457155036148242002689147446016823746031864045616718064048971701194215593548515108347394800613216755600133723338208413882876840498958118104031042354241598462528721950251293834367717009560059051969695196314392892047805338275818573787069112276507719948528553820010232913652886330487283076572796059730579547178911748569007164363762044655334243566110188417012555115926588458409919083915552308568031536123741182612533920954316312036396220863044892235782024764475234100597364028878928261795448382442284079628060747390903687768341513856218424530263566881404799569927856974070109768353107194367921051009086782760254076575970735543362444915871649231259352926411675810130236668882102953277559902276658219931822240506860429823729891728538324501701931388040878201340888825659487572679722472401188229097531014249582228972524246557905029910530149017713354135965205919386084424375515862139973863490802477671708298145926434881533031076463262276182670533706710980380192113355813054076918433684325412623536536816193500945464708288080284613082492806398234997759297161642361733129741683693689889342143889028816181941078869418543059656965053157205779636557221738071177609534759860013697271947099421100366132013494807957077093238560654539603472462694084930160049546664085879691478333618338833147035491271113411965285993086929286688397184718461710246410883829590815386252172312308803481847263617723804995569507906291378292447323918051839567177260319029179752525279581456223200581004671900594746623347566663104896146136787347084197241947801867082068330440942578284326446245669221225045977231058122494298495335314108155202099153649149570855134454475173531598203356130656328544985791979797543300151257776185867947906841910937237416644494390583602837972349813126393126551197093047590436916791111627841714462769671815436180986774989249694880729895690265667832700374045715451224134154430518492135316810830761381363451485993061575355901000175010749265219745694494462357835914328246420198683029953490891198119479855447588753226776783565328938866991940734658855154406107039273828786523600539260880875306649380115829750549465135676234349734556120295120706525198646164551174127189330274014025217780253020786643087157005096387335981160058187089393353999531336790265639149944339248125585967315823472481875428411061151215920202217623355453867958551571301678459631641934644175342461718465975968058580106804574990285186978329903364900099899790982837337103411621918689972095081906391100968364595672868745055306997780058656237949269143328251500140425514041287283225316643071904574894149299018482572911558507758845132341445704870064052530872660577769915073151531464625905895215303071968234035264416035176888515998993889068680411639993946949954089730906878455542820119749323931232914732794393598125714368899801321468977762407156849775022546972196539434546683452808318065401351450075684960769607415518084924857480635861218425445288501930629685858462153564511679321054027228305370861136853676132114636105960725972953699855724466085638079447013154606278944490194946972771602068289379359244297197763366694442466790809096891950704954185313483510353004045641838576292446972845856547292608956757536743494967162979408209677609956609298809688878691017270750833213651101713843375342065294197081554781260332138231388753485456720159659347041841877975974858319956366072860871131469136843137252912986330568638663437503368116062119820660714128588049938369835573394042985935017511205254307998366078950175896599382348809225979168416263997041142042797263192520321207107533191577426898533042658737221016748057474965645222317846985375040465927547321134070369869872679668634271455593524969377130588410065591408165564974067096437630077749388529498978626416182020635203523971159018593285242782748450032984578097850405478912760846876101099547696004363907914021844627849441703878490485966029604180803781505960815199298896790904710360623933459806222089930512531482828134296953992291868156366473414271965364661964611541097081873747126578825651318674119367815858923157155303757964379155006639710008840053917666796384920019520177649259149157436646673503529039532910524903430750983956704841733844120888511924271828770727270444980201096157237138003495384983785379816937355138464171670070177676386108805887601124864453201816854654578147480202083691507810219123563099144777804809322359278217499965453783219195391286884632691734697219560945549216624844827674951474530045807706169399365002864910763555109192237535761052407462645471257789378919513784674138336782847235022266105942922209447544849671892820975548526556509370369725275810081358355434024185835468656706308298110263631814890257601190248540793635565608617466608155209870987214256324577001766220715063383742170069862520311488847820418347895556461245934581252849026169930965088979394843664359012586623037514190319720721083127901503880986924991839961317734286361883878385372714927743001486592658353410895952485255567770868896868920491714799428504637898234072271433236013018984381429525933521442102958521178877052580673836357849743939178446729696253642561820928651352300571344348173335799637645794657644251714681445921417066357196168022024198826735050111625179338521140277910985569675393639756212728317956289689314176339960298059625944256328287327488329305085249656770238756248163394893680089697003647435543705001622546940810210282945443611292815230865613555075260681260612076206831292806471503687608559453937980824017729201740981249025528479321962399498938761615086620801184984610420868724065168287359737390846707734066417553995412108516893266005807705609499148486427317585975930028457397011792014732180732536115247540863740501032756035728616792862468409308061354050569697395215348197302560068229954574916076835894651123365348627927725149615210616205415463227347855382792418720945608518506945727774424902008467191459644437197844094917989818279989437564676059014658534242916086171246961758035383282298070089114011876327931614080354534434668606702474202947773358422496920484748416878197482636100860096179940361777469798947616913632342822649162169402780811129260209290608589866577154509366076178740915022899553969939672712839483804312570956989458718465144461983427938756763905553266822465485065564587454652365851925437101416825589878387622963201516542052215816262070094749767393410597471315939861579521945893307049940624608205733200006306725297627393784818481096782315085261269538471980755875993832564826498049878269903561686955647171300964458105774620665542314026955724315538135888861688169399598382517263283594645159560632646871299988200915561522359664027282134517167358390111722468236180068624241144162811653130369770629213711586694833531386292010684798919192659407209386954013465572716235026285969721186117754791980951513839057306880949310739437757081467881223549646800941273192101976201395516123976335108019080920584592097732228149715992967052889627582819900645824138391295735857618590372410973238701378426799815200706054687788050315914021481582986711924330647348980594605888074498335416073958792300292744404875963609430525247141693859750546999357458969912383983843498387741176292289598130328097253530974183024508505720209933614509568185217494096900520963274628463080636535381791391712950491387534811420561106440882608053371574235440050545800215685416452056939421419868308591930568035929995146228614758813815453018626328355511251001428073349253780931940498370850568660616817246470999474087972675887150591820366961710661297290921221408917277780760712185232115339853591682304536059454525924123896605475352756065678029203185730893550629622624542850044377730974066318865474493632087505997784545209609731223974917210164058782006393926238328652521014786452358518024369386761762362578613999485456857499840984979212415964424347879511828537426993534713030473502602931357316407074026442411495062376147079825062255969155298488600487097511464778381830855726429565823007664384238378680964652303372991135766970164352529423822484746710914005059098188245803385531918494601698580472274432846955087705848114906187668802243273518332498412215561951139845058205860754212825484811714969865545720971158945195449034652769838502189794747276670320650033110656703082580125800618846667180397133237424563997195932595826417686255279043010549884891029257129744236563826022779233029571587267008580926952219335032342150842713194570545996394762268357721216063234855662392993680492133724109033972991701261058695131136491345847257677100153352507717929941576098267568330968782775303206888476894799070497593506254872970884860483631836225678461519757298671233812606658492850528282906520836661495698408006557487184623529482462697898846480311801933498787632294669262091347430598169109929471987967191955269067793456573304246048448183407199472764468224308931459665566142507943082325570752555143926364955967205204649068372211580454620858021999908935399769655497227083376431032094488250600807435077380750692487113331802604690781094915654936948301242849017653111677036547589167472573086473686140291790349032532466246713006077947750538841442753769067142836778940834422385739082047618445032242603050657414856673852949933600595906114728648021089532046786623880703041146553536893098954321282986625860075598384595687730528392306274664540924434047951665947173380386571668730271145929171088948954420570962502866422451772113027106922417293396696564811630087536624604440401143566283932865006721058143934796421461064516167399004079286637372352269363176427320145714448260748993428832012247146599419675012126533963464451532284551782953833833656116506578383748407544474715683004968573190288736992102059852984587784612722337506732445184788457702722030567836175211733894873917263700923811774441992181148937381052250529753290438034581444940585659707651479766193213177821651492800463680492066669941397405179832170824631713821259971681601143453649986636034740955679639926116000994290837143730495321236456655991556120083582177309558393066700454834386027813571205758903209395389467732081487676179457619186383308764946257140634443987918026242825669071564703282884875655378602091890353551823702075320058519193929626670207288269555438646375203295493020171718768559849023315044209996901171764162393414803640521624016956039237875777121602908852296563817190973709261524092433728056123074088937347078662304552523731577943163571821007957456134538538627334294968416335851949445215840061236448696524912759669409944291137972846840882065189339198198199003814394465718127882671001866974111646158643799986002327067977667828498999757184367102973125454724675097964033913310802259738039610774382366941935866617545490165198286006039898275836467503618801290763934874760791223093854618602713543495580589534796543318346443667180307581286080780980966017957223875817200376341762046088638640120777451400584672486533431103976528085085543983748412405002270541164799139954340008828347936469273108530925733665259412731329082696522783115159487511515831085852460067872879166393600097111867454033751588658063909729619032398655089151207041363439532596674918874495538827999541935378376869167552231737364908550697290463977179335641402523038236169768730957290606968582245145891346454340993428964808916900141017525845170804152940441234135621323886390987358733796440204068619051553114664258822758649959875524366177784940149297572637887356672946372980248810185644944732599064754303944585877926924505383334421722849925603536441119788321732040997840903406833668287559179233818055636888224825489469802307469344656667520920765425858340952553668728951896345046346556006795769375711193143544845345420207767681039813441400754269766416675559993275662763474008332054671031791015433995814068867188524976159502789541209785149127539665283495047366356576160581829245397085036834210648472911668688063647420778647629164820510087799207746563840236419727248761384790629681868202090499347692239989657963969617481716102926584809609895465803441627530878235556001543686380076206834093008328937555990874926647810525947235461321896603213136660239895633431819676531193601465927340653776676637309112926747579530075121746843769154408392822840007837522342648094101169554295961769768874334037314380035823197277715009382097131655055631780847910761278064847768437089254142125865869289786103551156970208110540834807696093790219763209706596007066716395882445391817703399443737506129253736747861866535148739762416633292617813461600732954593873365226499314032435053663177631429227804199570552535496645986976513516811758720383941467994030942467385702341390979340379103002152434455749784161597967556419652360261357370173863808585485573981285784642885282392462639636409769593652434646029694888862421306785399427115438648418826649965768735103437827094001018031896671129716997842739844848770069240889251901103416125788115292144389635957941159790782172975308151951502524105779880460133935983217654213842118168146005236863791698233689825020738578424804920481637072376299252952908344978467282812259633134113647173319410957510912364961891296104781606684351692762080196608282402342795376893600580637282967600972510152038321053975600129812559700506739837134216831504273529102008029779950856079793302515314225295769316873989463585822512290689366266705160054393365240424729674107201885128051379976100891682861284223733166867951968997289349953847804074028907926669176833865435865827731460446260273067656525256232416178380384895756792222939800242510770339582604496351026167766017444361865469812731406307758247243148263871718224066392215069654656694587390875670984308847116791759499548524100360079535641073679092166177667027784388061038126078624137223535989451830392297975198813131204595353259397994729383524301579113507629963593349499018938932749087473767937118667765451583056787354924593781461163283592683782815274068617247253408015955184569814211807787139682204548696269731284570383726429933709966519667536622713081299274159420270569293161080561814798985637318309211144909824980361512956618263878617960285973199220270199145610101530469964187818504281366504022030623127806713941611870198637205242454534741735746079229104198663027702353895109898817628855329404395570340427045821094734259516290803162765527050654113729572075838794224700212401276646996815207238275712413872572843483182289918513202242417216846548550251769009531934556477931081163425818163149174285380662897169516887480878905392204860431250709199824966504124803059704526399374468841613986271496948637315283942982342957228112097828540575122077049659844653615330091627915188569079522911543114213971579473789063363077400149477594110637724992057438518038099539773417353135487227689747160110120748862085592665978126193792910142374320795018275556754146343388117067678597743254741138693448186590509307457577250604161402517529836654812767592792750578452807602912984651467524713182605825339536951701096919753044759557161909857245498185832684300156607151026649242818221058803955294735373660014018859571915481048376757891111926535640394176239569490328222200876234263929314401993990191259601827332637053230661444087141969034088927872779306653146894777526517892433891544781357527492655469045629304217155574573628055687742081287018325720466240274214559749867385826364904540340068225178306320864333867268575165498644225754879778808047729482713858463392191328613574406193584439067105912417168447102763723707026910887492970919113812485835245588338493418874457311306452176537138675283083139617364693129776639698109953745406362691511726963451766772182607444706846563820872637349398383588174244957794299362202468080573262081411422686667361936140347163652323262760704193161018199855752908503834913184795509157940191687050474790696226822764011660385820635023881672815286998629064981932450669929582642378644496115102044783001621354361101977259566689724389301908306357209580687664408952809509136600539021023417837036356113202187799583829463425329799397679600682931197773317795964076951752343087763954379817829088703435834224916064754153405675543115038877167887030989198492429194461910612404125523809428263883878210196799147167544311537703943152532099481300783016656975905163663217147871074157224258070798803593775914764104542952899034160505008757328218093181289670960593566448118185018844108980557887615649700389364479283824154247307284590137846348172427113853096204591435586089034933829180377391383777723236844591306577429271675887582869199408469970270253879430629256191933518031992809416420623574284439821263595781669203953801198805228855804907632172572641333258679026703838919434503123786006051854571359109334532852304538906005150909738649153049113024286410516949307617017369964218778658741491478706986625742785940298322070671981389808235055546699701265790920338369803958532044875281353135156508324195743062261657358979315969789543831789949084558859438853496118916726927799381079913662737823476894184076312072695569129604972712028768945921335316067675395903883933638662527786691598165859926400226442718421543090101443202625883496720232317520925155558243557145394485018727956222543265577523468375098476669214918993924085065230149342806588871178727022447708523280784826994376315317141706737964225148644394418503453904396723767915093123833805065063882619015182361331671999189512150541435859993423891318313802074674585121248813226488245878960351113047999018397183789959776049158947310167610530580276093169984937940260317799272610634909425993939671165812608734025501145008421384309456519321258819834190389921109985090559967193965351738552930381507007381650968214696654575025017285172862470670435950784628784947668134881678553185315399921508239965809043465529116259267057212347144183211915745627949102521608023248429354466603933902245935349883201353492902395678288486392386101362002510633470493322179031502271899540758460244565288463737879588268446014926418166872838048840311672701229100646011000391357268494283733506995650900355673923423093559573995158069835007306277581252777601372764584209460951116027323901864544498664248501426659497285528596023712646595015218930143862015921731455178935362985449619338575457263978421218840952348379684565682097381963897600005524463243118154026820979146839388581446082499372808134407867586013276357761280869991473075080952931728596830625527960827845466144720994020272473414545904746477846607880665520580373251736703612137197496901800855047480765380548888975945633131793947013460524082088704517856403242659996998739275063386230300736353253596165628458154788329121147314809299578717966257793286545849973552163092786056563991936129210786232679773914854354181971589111551743196843669435668315650676510387120812953584244278101875932242652195368051053791471475767500464478077334612129696301355750122409194110955161924843314081274470323716174523929434908014739906959096588425609813779490083478194144493646426515843162888567591985195329512250954886387261460192647225966119375929918997202984085402805351392424854293051495922196059389623257627749349454172230713038447328209655965265828344187033168290536669007471042737922826085416271997379501344998349489836883289917294200957903765337886558571216927259238960342978795589236182190990322309621433778046468023837758267257021065468163737963947866185429838032311785263691664094216226085617303100703761396137004267578114172323304874811567868781542924164036873565947334813415888605588426644303781260469514787117557235383601476854127930004599673523213936623210517698455626749709927610492618723921541971333481856857686799089582483226845848328335515607241091846320614610653394462473041409005523325881155392186949191804496261701153350040435420221443050007625830024675825574915369295146608505722528692320439377608445426799175619136183291170691239762915442257423875235350556624349627561507998302012469758001122748070018341710164648237278390443750249679016152943207553355146661972812763703502549335790176947199199300032109946819805229705484167873194003456221180073545747780249126701720271487743494401600434504273701566883363174442843129766483160111700926525469766107693251405130827174062832151676544038415775757528032171341106310639890844844575033442382877376083695592761282321934288891710469199137147486432441872844764455432118175872294316295213011923341186604774468015869380637079894898498727391161269129049899689072313808770899666802014285377783133001480025492965303226934221152577649235069747192311575268107304816391012316368239549778022718490183445651062103379550227302282526432472605692064534097331304202056082728778490326173105257980829669155051741223261805416130889826476163871887188864938152712641382086653350952013328340943187242734371355785101461642670309942635239129951724306736176330073181552798826291548996783361666681400012149431434567077651833809750917354001508777596969928798752439060058792976005654511859748417714538198017293466207151132167583218091379398603702556600230598799635095774693291085250563064370966722734136621443715935092563797083269096520978581766149486797831933944432150437894180688564519950781852049627028624121812021195406034930527236116479345122122594235238153770556823698099186150000691387125902796519073267491392333897595756802299639577470112141253774741284480682942412666515042288891380479685223564828576440796528346017243084088053702822701802454642527438935755917972179843206742042309956344808578751136796819223145579747533023942457795543376308117847517956148936760972775380569080477999658699366936590509890731973599778488103913303694548520098990722197872935802081072372387494342888726687357549501214774952787745863210416058102071510420809775603453427160926543229377136191962362028711031018856135030688774573886518938660424727480089279525824094953285732798961347313215686826894842759516603342452201432062253271836899784184582973499488865646771839571873009995005914129185135517944780435058202263722975108029489700589728755225839188008010374255664429741066979382057171978959994843230490997371934393784795543228649732492621367381617928251910344060616550086755488252405428670248796833695912350294860075009443053966377169033869865699007520252268895531525468646135307732005619042704942744612149833735141813292903365456900564047159207886772292256136559419077932226664064653607818128262275531449976883518992105924984987388609126330280963492134937850356845145420026353616528373653138763138562782379553814893853411410900612293799233923089268307029289802255647743367872877796917751814683777530823298436876570380348237703429285038111998764014465942845308217204264087436007920770469556658372392877590346347986830879270286122578525342705358368619490527100472984577614200541287548178831272935313276028953375066456554874353192268205151279502448190424193962600059099029984299690373205178194861182469305296692053082152305420376296725637047998787277926547936732473679534227659704704557945147473901848808388555289284214348125279436180174637280815087387688291568676179632590130607528964365196540615073543158633742384663423559756420736847862813270992422786808518395909922146527629989815697088334732166579634958593740660336718040963142517969708432196164083624506535472565023282594283736315662181526183768238891829809978194743727431285968225730598643700207707281512906211095742608710505435524749250818954084253210481873077534294029526525821679729552751313934639591118546766327189641999923425745274838810786122446005435620238162087392400095194045137960892487345674111804348359239746940180514704135195797292493601127059568644548269403078130837535933257954488968767854283196132638327623831257109664856491335539897298596639001479139294820037656467980083227373465595330542386105378590313046790903973810343586560985579403554189222085838900831659474966092084807425070538111220444803632083313868935884128597710810979106303317134255169758328336727832012820536700680001935251127081946309899511522768386327994093505908024399726929616461340916509233205657272869399314056704160972822039615655660666673061404275647571555682641395902727332418867465882730611463739027640950129067875010351347121331934119112459724992801135732184877174947134574841004158470016683103529216242546524586381048146942732675965737287157675132558136802531891989433308724035971200362611893190289919765495569044523015377681207534064994607189243740204145909284455571535422164357034555201209315976560706388488028759042985821888809479029975637271683977327495808395502363397965738981570779632359531280126658593313348411318287926484987548344302132910016634196575264037026189839254170489447317022881113757837886587752310756301100638233215237592907856760445481794616298900000497657029025176507609920631421985034619747738597405515815725593889453857786932202034417479649775555107578396320263798635341281255911394969329565702072609345484787333651973456509777239147073060885378362150643012183150351891798077768978314880954477450907056805373345447488597762823452686684601370488180715716239787362627447942527180873112021757544381933170552218348914090747729802832776360649471863175078409527451281876593309906521945581254414563136703096724532236769989685168519100348651581088567896797020607058684925728450608814493694391684084171461903922285267918388707560799182210458337479963747131487610079047620247485279943819411033929709126495849247512325901654469991029602573749095670202593441024684576711368871630897451884564863836171875988103878399119961513925219054672766450460359751811950042791403628662721502450797679245988093647411200722255437276547232288674882191229922371005481034520605727830838884921424263881942487424127307908104915595155524147066959268121510418865919846678254973676272855395184930789552666076744111895777759177470125619132720369119897205519548958952024206840291393326819099760030195282134633849479171966423850828417623999741297803381537652277367653943860488600384998217406053309267574835554208325386047060235833824630334412962354646733562924869889772929704609858856378454883561828299539218380494088387489545585677147233993369032508688894493242064562989772419928451954889062004302270251733791964132747977057992225302789346018358474837090827772756342969645305035716863874880020589551856056243067405751802720466504619971812929997863928142274398250880631444877427032093883611017241294493741828099156392196429817995180129717155788446870602622943366826633542872197317624634170379700174008388550772758075868201275582478149653698998916086571019230266020090269324761582627930020142488579978949836154007259215169170823752006482969890511688286561501339533923272714428723147741684631136590487751038056217176511583892746636560963007902573991177324637633259092965971619382716364692732076796851683852488990425101285468135863879711075859973798728487872199121458079197396119697149859556936257629991461915366875378363454971963974245419540023057401337886484193808326583894110707998332170485278831882298523138593085155998877834742156807838759582425009068273672811411543616403932795284628839027369910025788122622953382504275778585361305719166879928476140536252572106603598872697234246647025563548156781484530595655255288335213860725911580545820143352234564550176774112180677418588099531056641534560225436664158783074719036662483557869477773255924603789781492968980812866609017292961338906582557663897587146036822574821290080833596285153027801524921512384755614331323549958279116557161303245072354490867413034349845071345846083338978190984753541812609025032364844845875724519557131159081952965622769852364222918299840343209614027495523764407060367810216654161278795459622641859717563981599200052074780649503172088583369809395596133768925959073495542459396055827308422074970169456703175241299501156539494310316459247177696021790707697143067866272628003492554650013721841698981886720493181086533503219355903168416931999471058144560662255989984209615533241884735537621119903449440193368339086699673378448964471750123688100047806867216873103258155576080533120633885471769842705062754578425659219373954298561028341908282432041232625623835449028729285826863537271233156170247184915054817379615627425330254458870716356498564453695405317628627962892806571451373513336377036332714795939096276388179548300888882121045649940823682603888088920270016614591209485642209615540908582582895362656355619893747176424723889788356087305755835149718590520212313068312425983305452673682211344562585227016767631657281591052985189707722354818748268359198651364204725656931966488297780729015532348865716884002487929052883961925588398923495114363400838613881913926692334479636069101455244764492973275505588997408724680334094341618009749509686317901046438215141588482319217542094794393237398344578511287219483781148877415870350096176160643170803903396061915427063458587681119208363596570396345503393325848406987372141032532310103013859680205162284014473737092837722502410287285800340148738096542384009112972484232033843641234468877310548453207760168104852462538452669709710839271107204553316947204630099688356270325311312911828781931651951822113875256854868973038625841683867446482660946120593421666940855756387342117908672041634396994684501888978389632144337713998005078603932062587500574599618786321420643951313104958153063907817690598074803438742475197361558517522200290290266680740939675671455055785022718525606518699962776522834136418772030085133595550198660432626189435050440009453947517834585735256804349191954108954515055127142969377221120647001594364541408535249435016885685190042026537132522042559573665911428354302719073840151570281541506149499213278346308514697600198891924030046308082044857931236454146986343614873815109107988320628283023496943413297498806204091051219098959804839428674577654962160894859048513078407828149683940968096252326257451118594381154186159925193538832070291403117030361780432832149291125302773117260906356300667453608711924942638822050802876118805733490213178547271693346560357049303921506208914004426656929822059675443503210912700714320173546115699008527881945846516886500535217546834546295302229712570925196369253617084673077662892137529287909184420041516690137448443556951833211271834946721657084838543404094268661508433742801259891627391464131447346111230623888332538291942537546952391783012184769597119628067600142450932212790522015774350270204996833843378098128570049162405823857274760887738819067944402470746602215101100052796205030516655688322785022630893816811310441725214854625097011647887537877971637061227653084683212513520656400870206441223828293467195701844176398115083702587559114303797029868491255020344826975163235165360416720156404328235712097530151234110304709141588304913240581856401221812184980563579327004620106590320114788855118432719418028786253833435467890312621821833443080787779872428641159412604431351184016660513191861176588341281888066205961030697117456944968143597697885304747312291424298152458276429532480410949022026572267353683683125954857603319321563239711995446282869976584472854517727629337770891062279242917245829441536986833652317580608596183888507564070528280181304406218494858432124050315487316248914985162413821049757318136791382772780391019587314861199799366261171940601932339182439257710425518764892092452520498457667423967299727849832321623717471973830226792035921742115610987904212108379883428684188754012156040494682399588656242001954483152324965473603525347658285833935936681528060989815026861352013988209767928335901454467630610866163390744341293813733127885243731361613575843032701920259435274081993168591547968807142316438260651499906882374045911965494138937969445342380808155321967468081949788146792233875384025804152155239924972095249794508514355072578054907123714016061637123114419623732300001289562622703909579708061919038507549714978858924651391741664041897950112499415828242405840360005784982063401428003093566231587989459489755874195401660361917711383269436090634776717305568089309124453880795228227343785834234056324426288564217563066061973583480972051869262365572117146822320050516544319342341802740235992361326790052562754845133005122552778888951651991552312554261331750502191340180307006718514984177636363745240103349293054983438007212628444087918657881105249063806938587882927403156549573762855588643954023647931300312282816207502635837918760817247751219401158780049332216657899741636258041076085617898138629560615528155865494720864423695922065169513380599955278579256918193710249314134145620592401057840562445222444684856308152853252211844582244298854192670059341271808662705384077999590967195714790642272823047709163350668996458053328987005150164821272635770306635454873745373810708850162435147953824344310085296790429597548050683948040803587728348680694063661863571170951698535815853868238885639292397900436885480959270017460725604191598532762624947740365506815365731064557056189460329475363505352581499585158960092767195938963071136476405510719584681271340962585187128915147174750905643597940358079335741981732757336155925240248959170201231044385895231321182104435035161649415142321108871182504598210958711276249789200447368668227548410223713699352165962834650776491019860868804082477995504404542384720030549376277432548702830456933628159752866502471557704279827345028899637336413277750067758092313452210044621310825239250194656188175170234965356941092934691881792254525434402954069835398414645586281028933510922450980337693262646789757523736930488058208941953250350575493825275690108942418702670586871131399988426734133774807987598000339036577694497922400668083468575107800999212632291571911081443957391656862454306951769946891019992800072589715319292583526962172341786486918453031057176791145400246528215740352692118372399305690795116044373248172712076821339989932020424142645626632753367150910748048808877558426002334168083607873941071222876334189112483562285472509086111033776929862899711207152154420497808542071176953417434805644264827525460507369606577971263339943698065017355625811265707475623018283269494641821000098197898471880448286888007535557697765114487468700569585388273933157149190753859191534518396446457969686515059959942166738068920098137382306617693902547233889272133849484185352920058240215132167471280499834261116065707903299483032823552234548000317729211537931349118837767607000249967744428524518998301928326482837019020719967459762617685484834507496502518228031054975144601361415342325208729160693289611081548596730814913694624388356166158761083336404416442556308919522621798022982917414185761386965418751508119657736525973177963078717878027972815844686553165444831269752084027556618588643066495231432405693008492015502520825819221689843737814656567290375774097586284760481705946384042247242907800273518235869734928295473022267936011396208172375179769172470125183781927418575414622023299692998153338104345706995023699633615979253462579079242545370160416413440177939576870412187763265037905716994392333039373953448910325273810962128746149124475124437404982806479524716031015281860470075967685456209814865161739073297768351303337322122862439184787485723772862822920985448519412923486630386626648343425039000643986681974449520147710194840327486922234844498379614142746838627288232060511400035741565418454050145947050450540137815236298831530891651377634131150713212476128905326982501663897579643119246005583639851504246284950819467370655378862562361035821735151772319351155558966628892370628603690842445321741422580529926091100842837853747064765775930909746993401249988246931164492779597928047752648703238380602155986999195317833368927245983289679000983199905765157958132065964269422276647146575064490595896927518653319412628613992175818977822090910645110370488664283910096516169866060624959101624751741813831257128585639698908897244675053346311140782708829793255391901907218941498383939226568167327021192250993089053778828719864439132657250686727573172689775461180688037776294176937796145316297467751255449847790611658835064162634015590414771215775737557104352560992050860225638877578385779021154206228892461842250678404492700285307391696315123631700828023175622156507796461080153723839679085341854429680024519838571902401484681231850581493870243932011769778815835447690213908073903863065652074651162444259534148155416398335835241764745712139262540097213314377811588281821310970561378195159071417335864075024486919958055942658959541287435778964921824191907580528174360964563108389632804800826327432636064086139501992451700898206930014578015637320339396149845128073507706425683803727651750441881554537587200578497221873564636529372851379770868012605913965396191052607841330797327542921200261958190022521311203517504443965168342679043516607878073974721102224181699454891147361085815927765794345956366680180482670598911122822119355724086059713474200112315080565547800796909706899605252248603036758310940738068690877438562899586704776176508296475855309242505449811962543587062500038508570893720295550803822373778552663930762948999493427320726648061940590816358294529215766045629009880012767113204903083767678655399569895303335364669271047683792332428896019032274846372521890105415868100647485857208261985870924395074130535013915426216371996839406637233478729921252598867893892310996343300293593734578722065878461057241742904764616155218646441201686980714481312785564812973728990998995718058452222086783151042427716162691384191224714494231558466098040316075552701909425029256838693687381662767117442884098456883893179335312501077675309340016507243194758913562584555651194861954763608686224615395769529420077418803660550603430584567112109866160356301497997059789050125294774964560484090202224113844390028502525722503950469663160931294284209124907284518301151871355312544894248792797918454341087764393786277683635453923519785988534172400400352469409607542520721741445215905547384152282660813867627661281395291808453829546914564900433340932602938501776682623449073135331565579504978281967295620647002857357458710071953197893954468091636647259353103154072856367578907089078477141496723152269390909827920088706606153212709688347108400085766327785632923977586854471147946830746785054460388427235684787657175246680054435530570303012067455900296947044810252570622844530160878518409498608111184101107964318827387874922949712381270556829352114734160007624906511967709131925986508635374093445312540673503438885771656868209635864429041657218762560644591666954236945263564903079262957498892979715240508811317033183160610892600995262034796218458725665051211696668799187272733568072355876150727284375444465354105514406641885522920822863455299959410414717135733097099644866521248699885081807565620694177047435014849503439302579426111477982079936833033593707739173480727037629045775878700076107364832755205296750811464103552254324549900355413069656353567001786964158208993276145296065928920481920388834431415015105083906705888800400834166753411201257203230173055621677304962816414982213355953133906334374877947445623492836471603725950263478602715809856169389537878581669837471526234406655758418920990312881260956297922783190159700988800427432085655533321015746345917125899514086878891527075433357740038302508848394232947795048902313137521445420319436083084116737250826523223799279184362537267140220829535876507309560540783770519596295410010619106019446407499643318270959870394784191700184292820411765120981324575525322990540401699096089928039241426610265131421443679630603229061458392087418131335253876012222343854574070983075238691904466092121614708879288923716172685544383647507763183125489415499473289544792719363797293528256417271694612122561942751481499171488049953497836873266162436799028229903671320901278053797561482527305198428862194742572093574917409966625723847007816346848142075194497649229686401178220153263077777109408586509697862955896593954349454306000968710000191484671454235878035409950568248013851727945198587187842521394758957263467374321990077427514045366075823435534958502531858832605604182311471523256575299440898361887763027785518499711996613721887415040019137844195708793059479441917804584398339736030693650969469386768138048301102723773527178965175513548699260143265217965579842088909563737024858818090950352767483882031923711163552068888230903083502748814528867587967638358538592262599383907296861979999306597494678183663531763898027225274150914151680145779150865712980231122239786012778949816619325784368960158512996703134616075296913628230037429046964043428921537386008548186687004848474673850490590472631607866560376166567314698048410364837707332431715990327854106265957059449418352243057881764800258508090056843235634541898072933585144207226403937971354330564436334960210634999948168928661655740654617064867779943864299006800859902768128601655026434997065843147663536553554651889304262048273898770810544197774371646320584008159882208576431945304012293171187277943807674400009169400775898199744156142829621112739745893474008379460307509076609009682607604704520063118206561921997499948534621149867311954398797483243081706681842472941472643372573933015727084479773921068716798017135436114449379963552663179989307142231058024052971129644480607902764831199478564097068344629488191675796355183317629143872688028271530856557326852890536042875457601693136998069040107741156679696468106294323343047809576094513468281255205422119605806548242580399706956431936734070875586300491905616326295860746608025967613663275883299140880384198592655821763855578316206080108613414585779348013293801105283248505540707314853094989090398681418619493288604435189043521876365923282927838045902373599470898122601361994235840835787078362177105136711096213864525643291130619718168349987895543020067298155532788594353846729118264828841454587563478526643463641601104412385834940553683355848250326842120812872454246362177282338713418892969032902778833546705519173545461927813727518797354779943466007155536893358512068362960835104906196035223074683058359782194999572030146236878650466374040077629369332716315817980867582909933075750466908135111994194476189430368182018286828895065198119687006712420806185376816723470780439972455271751613925277555161037152955179648975963677807675923454542844607944022423883009384812895946078340693669621129807681458078905606937635264673597716064853565568518970296809339954553169649442745139636816535995287810670327028748984151430472036435805422721086984385793474809527201213710288894259125393954979754736771470583174282898919616422163062717111730508709160940724743300574027734240381661496397632819473225389691853272644407636815188321903773249787054696420360770320456406608889520960262650578628367850046091233411489838004479891971093636268121714389004683226872928980591400192705654411207528160371770964798287452537529172751596912323796974808603295136279277329069614250673359882714214963955459846590276122547502211372415023091159201259662130313018616223801261111719620826914871036090530806161596983510549891014264526051254934977820765284737455022534464389802378536670007971381250106951193339407456399037408653150182593767172307720168859022271554790224532415819661239153662846734706432969531513188198410924908453905138723144767284616876835617371479615588218877716225582957935758812422856881606214563123098132115638344784953500998554953447872738518331306498280255195735647555376361471235540511456368092775720608919217959467042003557973591165890464744143950836905127918080494010937921955401209810993786978783862907357573071543477139674953973144992431659842957534115701570265050699619239365117075650977798901868451760490876763710026410372770526692503617904572140664769326837840051961304348335753008119054859133202855494722745234298679063830281200969442664301114287155526096342643240646698901266076404229696985373508650031645134498410573059366382559620736241476141600862660171395580847493218746338291373318059969488552522441240985493837858913108367760585707982238810271043537779647240224368869161930051490272780158273755465722159115079282747249516196569272596522898026612283026625812969276680585032222207050608786927278344084773506695488823904601239163078124575370340997408357060436693440552551868979145248536035096304606895928507354063419606141251519304198597638464125429624751073498659784076244290026110527223831901483347877572632792470012518539517839394310782609468992130985030963314831869130530944134977371976988378167980175521994016520688589189769126862060669120332199785138964515683465477985939373523462847239874880543513684260562803504320328815288812683093082587369189865883931078691856062146342491889470201575820332216389792289251861382603730869218054795020685606192342202511885979920839336252968964095846082463460443360807295680983732179356675518167563797513659468130423038630731664660247956622290934179244291417116409922773262763191476186317899606039298655574962973202420287511114222721728397197030138180034599823264616277015827787276837564304320433121692998556835060289751125282848373963478062392374319672427025503261670857366769430930082854414131709635368379084764126683048386237915766249800560479630189675284675957808371888791162164091462365839571479416206814405016342586095730789318393442714040212697417126879872386159458157308555692542170375684432976133020874715472915504596618574440286761929173597135438386269834246600396768265849365326003827818621885993487578290191186426869077167494460670406948897586888093901534328622423656609116853300023328064958150470421402885254859759474507734016229774778485070774879349140753271912004802536417612176127242831107839239375721897068363450638500725347451398848482594567683315267966753150264364027992019421750778027767422488418180986551949509280827146226592246745126846900588864194945203849013848122197355571534144584748953095386996128550307334988792873667484783478553390930927534682546846020659365025704954508648038678045092000198099846675190215805808232207455168432190053465042340160185167102154354011005549448694432503185362633082417999071380254877072065239187542975682732344730626071487025288770656123576471664595876529862620085284714940900398361509605072717792048055005753317038724418479426785834387204705852927388470129935405903157612188419014474657254651340672602540566437261540245825312287611610377913487377232880603050260500300007231665469049193446568077979228304416964019028631020644555029668953879707501260445227119585825289724041948626096111515779348675414348887371523301550898306843699846002786571061351794767700177726605589255131831326350631770657779551863354719376008866232980304959300351872677735713006974461845658539733109245945212473596924267830313743933930078008197194437976654576764757488972275326193827393535432124794479306634077114439442152245389454510106023925823364542410351072474076611668477944841063185135511016354898585272733239819921000327463276513763099929286978606856211415342220606478096104632348035403236276521188025714552315869125066902893570320557113356390881897087645840007460020678714056044223025088509801648986811187372261683468505610430856088331424371079039150967702945927071077760677742142167257798223075828206643476864929331911466833429982420984091440125006776018873091661810061439026300877282097196651149624838720565602526930160734595057318394757408396735210466400655867153851080659680616200958070166177336346927632745190711588868655640792381575971705136567860876645285627889108438944226440141443324905806522111177448402456470411541000492603214142747123441669613381903490813549331480283655986961013321322749386301503341947630290892660830783475166688256893123785742081258550176620754911520131392345357317327022761325430368291442510950161641237439337073721742215538539364897441268869225829598656264960326824185266066830865428398185560176353409176331906679355575672766600496078467831592527112185174965224687574289864785845787769245280900146297676478007283825036228038134406141812526654560084813144589429410341966770634260414579967676750610971616475441423567396816521442317321627031925719766594565682327036955582033123774970385849361917432437206281849783079985349453341948375097294959226550736314214003860869771682872212238820035009725921903487078845643453789313813232982650471540027687361851089818823426950073919793292926710468778988095785808713537708015362705360184176988594452126017912301277819830166420947069623914610427250764389446636887165671205387873773700269846433141280009945970569407432589541048054622786685932470695235829659199406597476047018478401896084567396976291005536948018722560881784600617316546779377658278233128810226397712854723451367004698402983125242918626328850233751901767950421095942926796938440441635537698913003354609103055611131897085345436571567371129481452844739351048115658929397090816270267464368907822000136097974300859529167701721632943978178852369067448476027762295769021976405253109092983435859105243543148289829558092803037522730214900854626615972090459906632736962708198546104553485143833257718999486936585154943959985462712623701665653296952007215444825314780247638430404319061043031891114139764365886203401264233628268231482701920316177137421681125223073957486917357172856174692314583597345924069317927950914796322859742352839267931677526180952579118481589263439455832827865836870555360776804322761101915738604847830719192745801862373864600228348197025050583232469610285691681878512088238670691313258788285806478187049781329605775434345270501107005365752168314719497160931243685214628615065092882968975899338117147058923238256702854033510590038389708469595690413905967280086835114162622747297720919344667752012436008160996102921458745589010688051070749958228098611154351616637808261989836359759274204062423464009264805374515604945812177607309441176786966984352139956480878538786933363730405561779833689434771561633876910453753479639645394586240158343166989520968805445628293058987077928411500878001082396085317056981414298071805588452690028253467712805626190583071799580868666602451326891213136877739989530213053634611163286612720471120815453148664119542332102056859310435847709912842918546390879392397811065077828727434066607380690335246938465860948463186396189711324315504197982959309825239243183661821021302591413370095690997510070287108375186346290929869883792442798016514591198875594859072924815792317484674179925035888102536858140525898364133764717846609868565846643926572781802806065524633647439290945889163753841607590122913698260514711920428546685001625566510694671023957004915117128720769613351679551936231755988069553464529578743984577666173700743956295460802002254355026186850233910900359754991783041747298880743952240989150312739895388477261672390906602982412083563340199860227287896139223067285221952688516915011579724530449029747551423759381817631892422676731463533345626314165233510139396867017950451378385281847767748666599729472467229289997573074333688752850361505620911432694449186084402380840000339796331650663617933985229638004849460454950628257514845873316212038381394183199689344960767436068032322060350536992551684571325746099995132551744646137906382879269885844174185571415886589574560832574475386896027516746198271353696379019575109215625149870681778500826423702784639324181703048901765892392822366261826479752998877895012223420784225362498762880021794463291806273120279469661383502103569208662606301409713157277171382320081804488680856902840336535347244132547307494632460712213012862048469385242266319069485016949074927603061588984094686313532742123766029669995289861794100758426450022889434478169283492297558668075272978034764068513515628193728950845661924739763601220507151262602949449105953911991137080724597140635421226393568146850334943394569476570085894778284377627085533525886919752477838952599987877528625712265751023698241580491072553062615670443408058044668154665101216419329462217635783662242165652323638354001900376803597403010028538484568238924561975771025190231972477460412968838013010819675222501892629968082391479614299499692696001282606877919500698700769864608193909051139825413978901864945301283499498200817938919995377869422363524560562716394576710856313123858816461915972390425971661609910593530361432991045813903054291360655410608110062790772647968604767557296075793332387898250909838495081961292624962688981227539706574724306299114350874429408995075153529609475336985063542646456422053945102770513076818850498773787255181213284116280248117348052367229713728807377569586427576265297965521237396586673002395001667486390512341699375769711779379746395474220473286694948056591014559300907081356855246578716653611666963434772649942589291652662160931507833310147754602518768523802957494202484533848314967060393804584670115753040548902469587589668348501089654645772627745311425797782990767776435459678081014244902728356167862225838549734074053046426774369162978690291898230349212331073264034010406242063674241486919965477234034660373974040339900889068213768897446679487869887348726565402646702514876892552190109414094039215270980928224787571967906452345303850103571631606978010531808833168051463647615865746011693884564256809182831301305117565882324008125354379241395664756116309991475736354400536035431007919629936043153225327421542929293939219238933659591463224698867478049021218196094412913734781612001436000351096715853101420454020554283899419670075981177472261967669999742478129821599595162115424091520623943962933578394477141809006361788009467452191108365595376947725630078486128715042620218565127615420023188248402913308662358504321647798178308298591736703857497325071477655075287077057845047734726445109627368103884764530427001561393885715498145295466597321913570016207856621505475926726496690187776537909465362835428102396902972144197907929296836516991236018350879186828740533734672166736904433869539292688914921152112463974508495735867470091585451153776409327195310428935087047625556715342628695586538582542707764597084986989677041907127137905103377372856486882998234793420364509361185532005990311385528578490338058920268963329260762656611847411962207607341771762789129529887426323999065510546725191034692140313160728782283796226467778448320073732177565890741853688102464585818565043293376798240288388722859675410366211244790998308453509998556130260141378823382540939114059648815947911170656226923866884932603484422185741554362953279259829439771062795960803143543515631048890255833217613669049258870195816525059606359669085557321451127844301257444330006972236051804789172664231074015230707347672604393638202083313354399705990354009462086320490068975010715166030559380993499301327962334835545863625018752368668222702137119119461919531612461977847268592325855577242134396531333593755445082971213742437851009977051397501384110035544925369625560656869362198078292212096516042733057100623206255942199496021608323289374682446557804513182795590158402755010626158318614288304672423649289321554304414910651096158476170836051335350243967721037199764665639335189601740361449167479309388020724387451863091764229053346471120199855439391951386996755758554108223217838498918591946027607267142861129624107898578868105992009555088965764522796516162489965211559126874867997813252730435687896294388379225092726418012545283910643481793127556997558735867764372333982062559309908933104683828116304855052324546842641409484507721467393441790832404284584664510733297719680604740348075797190924070101409938531638035194795433677645948868976653020455256799370846434621197349351044094543744113699805729613501166015151140279889003589570929746271918167135299238035037162939815208030069471788620443928208493790437914890081797657025245860874065664197819416107940135244971121011729263967696112935928161747044022423995266645108996223713034517385112316544526145515212343812977748540183198436425410769006542745800416856935705378335226251633485163063442134916603573415897496225330053742398175043705031519804198758566584538280609902978749435207160307745716604751790198723907710122942813017204827645607370137525628019604008482039651167392524731264837062356050155643020368180362462396035431079233051924140712801370363876004855920819087981046777344165829247017859666774516110265091180384150342525067628024023157251599629338934974048004406169710277468190903706398736621774902075987176320606376001643266504957640421662139490264630640455942520510424338709419953451878672076242669232541864214401304778490305249183943133131050439767037531574435778582201953460280351125476994073460923902974146662774014111109856955225976787166163896852313036783319573111081963434123417989112538020619251327858346531224714181546369831875649960877737629071294262377036008663775221663961898138861968238648908402677248176485420955821603226037991253883034853163505132063221338186460447732730211954072749100149161927782582808167767340383439668191411655690997888782426358722390625479044609118995760476095509834382925203411869175203868197203822784604035089757043127386601310259654779608443637511397592431934018126087050057295443872654983886844287989732750772802585858361131888696430608165851058852282171613950701575303659283069922847192229761313580648888298173106196599887810155722556995513437344736065543021531017147805005157095649341979736850261105881946217382021954751595519095933042519334303540877359819757377653752302853891499880055442478988344329579571304218242162652303296511090094601510749105692103320021376443537631257472636282543853721351940788970710109194865604882281107128309109441640286984498032495122934151369433976351946108222601996555533763264424362591047219749227973896758130916861356712667903901961194525405059042211998227366445209907778368133135213778322586252193406806620951293284869649287058091422749509284433749546626752951902403585614906905789697896831931143215660423867976276341274343476158579666311494827816824836680670419565999353992559750216428998186868618387128958670503535068176634391182302957993439370072832509743675483350922344118824790548682769374756674150653989796646283680700034432016215682891139561753212147608107071900267695198100797357177883072441212429283303931390944431550332493910542250002868316352073639044684158834405420736788847281803216441643909223428128999944675736346616729743744045598763166184223059519191445184164914685415676186543575271897039813162550105569214416915826212311868462255276195721088993850144091815194017670907167863401441846547489038187948231192063354575643220404169646221237331069710453234006388720933576456604169572588357939858020633273642751460972132527437468165580243496820236915555364750856297558210766263081963846382038976221034061396110984874278046609145977876822920596401046181719952950010631521783813093413098595199440915662913661654204786001318864628549929477133451477737797101431043676544756532149908314191695126950367092869197341523142228831131572506087792874048831948814369789593538195192931102737552285382513038239253642263851476284140249824434089895647373352686134656438477631991936597270825904079977106260274626543529144944047007902728608777845117352302932972364755411535362601487402083363714316603436545550647389460453325654097806448876577856197567036374907549034721777478791896051580776826439528056206814147839605700461475380448179175917496536487949940565895023560451790503611252237316654707120816851629954615494709726351533663448005813172844746020161840965777636017750452133839335505933075352073831149441903684753834889529246789812687117002841584715129686639566446834131441503623362532242698378853870580204365627341750850741062724454991479990759571233406053619658831683226777546218203675685934218778559671550077630685902951111853188420382564708404089562849136158500024738698726189660625294317904060632091628604025891751601763547097429035372973422051027618525954942492833111923942446064870062123388881056958208661632288165003778431854897928474565348898099633791142191170303660243482981509123948328966114690775900632756645290927185789725378211525862046865751037630164240678103621909914551182749338678605966219343487489416250300841178873324477403999920016468622785420147259592783848049019788553598751714489664237421548351265405322328364780745953628886859006726934680109574467015819080237489384261752877918310025462768998333762859054785859571256945031974135812465076399608635622653350236804755153923940675655192791546080136519249635000908360050123513275725141151469564869710087771923040438837339691405023847188875186344620609960541327988929300221036116472387591661424540047021367090998810759903186041379074406622446110670901644602646398947049521982115329003864452455618121152543083539615509587033390255598831425823041393167139929603682090654742886140519983578910663821737467254679501408335836138854810881595333643859967803771526852047822495003109808926494300008564360343903178761391810854762161969643853537002226321145505678316665194487859658624663321041265733710528414914874335543841940230916911314525522139015509904668083065316349827398992027592507989207104794672214232270782386153732194768517618711006121979112954851080255313288065913728658267771702725134469874083952804650799187930717970006831268636834958116391431210456706209970308026577295815327055886404791008119855790269138668351676693266780485582460732721709661157875068796485894456923885256995414464912567081828041842412509438359922171044509446780632959924707725237444478080312418736571488647150971919874531971511586687427600111389410351835972855120638775981912282368333395926708966354013600244330867226691918220459976207883738001621182655482165711810239163801902514461533942632633762032263561240867969728953938698288048524635947039002006108815127277037709425618502261642497071526421552163561201871392359014705605573559583385851185960759414689770432038265368038697308282540445331208917922887512943314005285706914210450194693233769780377931636910905261711866752102203651899814213065228319126904493977221138289717311996771925471689769365210020796282024455291004244644915680030240810841007770019528316030047718246137451068718583332922149203642511334820675096482682780622317907042578191333369715310417551854758498567461158768988796619712406839960328788770187464567969340543897439557413209265193236202362780843390786326524625367479595021166243901774707017449949199265767916824185759730795145310173295477779233334133862019319761581102079755752554332011471008776946027090371441909580759421595593021881222777000779391826448303059275662432909236260966505642332038019868499542733398563077297734915794902250982730946028569280598232863064046335393608167907208565412544239602046730789724498150390169633458585286041828139702569209675863418460210724239694314528739861364434123095355567030336175816347456367554255965427578941226631481584489844919943571408158903002498598172960720176983723087161925216555939402473059741780137080294447164193424980819101792515611100319554547299557757720170954374241444221601512028881993167518150218502935724628300713728092142428623669591556464016262250221719386335849746220144072674710671334804696137370954216156397624675372300517729478888578923938240334105441214873566604200433136494468185103865083461287700390214385316894246574835844171940736643283714884633726584345624456822041316560381511640044100209762403665311140521613002213817187225746193465232153513156758952664344891436627436720390717795005358725362638521016991097414991522055607822048595739357679477439085187354936176348706423570776917242790601822428109747743132897332937357070569130722397214565411099522811693819627305696066333184126718585749076273888287710431526055742893574976854664602227815294002252837282212599588770076034142846974052782630833008865075846807898211076097252192013733290223639548509035088747504984477662399465686026755602285962956884853850645664441419704762127560471656393416901681593274768284657604185428696237812888598894098612348884389885439636336854634961466491346291705654026875149613287286194075636874089799402991514952609780529549937926711330070398385493606435780229775319661090748404399265204661674365354596851333260510392411989583383064313161150813013426869251537932684690936616094885848723031310489588654081639231270220985059511493807386882336956573760573801409148857891918859318004684575621454961675276129953289412160641124135759190818404063153326080401788555971597108662171308956598696256686630522403248341773522795592646318288487954214051833394656621201993936447590400646247705599559272666736032235503423497576485479937199233056093214974207061129525008239310379933171725764505264480733093008438534364884379582654825497759270058648560714747403956868844652842504811375557076714278954069879040982766959034917912288790808485164188059648716327514568065631795119826147081062568035067094422936879386966692204670336785394611716912493149288414968340666953093498512054782633386334504662972103173206398087195110834747790461005035961507609184142747645654757639850152568180007435517460763754282299349792032061605106321195130397993055900356545385693827902241230612586186170957608356340560980400968731084471992701133998970449232466318382876055608975384739047989966611301337718595644134902623487204903357803854882053675981509519480223885496793677067680547845192224262066821482270001068342032370985974685342123682427537767578419664047993476314712560535002002279207745210278801987641352688087102395677848305118339201399804078265134849809446875877000726999300225638416762771750006926307063871749555442931208719254149753852364395987741373982247491388541865040128586535149037362653902427728072764201594062965639448338235517207877546807562648348399955653506254261212956411136035431790794256238924345482953960679082971738332336509173480482372360717601462751462213597008684730509869683027468907206915765019953992060060749115021950067080244177884479078535941657931369808962296218154555161671516698254197084271013063842616950220384327441101900801205006328117122310870256326310337290491630238507378724487919771278613892188444880703154776507947474200331672391394392548820551177016931017399454390737025007857522251518131515091488707240331859307056611324327014238321639381807009981410808003454390018356959540662721482817503957870130760737029885094368134206418329535598497668403338376637755458657430825486788347360215974729548327926648014544021881512608450436918853964663041128347786451033938891883095469482135055111770374217325515619623335346305532928095040833314624673478564125437894721803398847468149169584768910084521261541961925742824639547472512841803087501670599881617206614616260906284770224884714486657596007672810674454612025505404175975394394860119096554703591660038889454954779040305263293285610824976006336199709779052684229498733375396684267173584350166921070539961541285343907937561119622051960851626320764752644263485037366762872019069178850588187509220578464019032656553105626515847045816418814855734037956772940210825595705325650486853649559344550728428987377751277906994638488000591721254019238861286358829949552943497342566003693105260923201406081492171558708763859339824807639848678388731267763713349366704059175138450646743564108907342353472249574254369800959409155457815890982284555810795107561132496474828197116541249896580819748154075953429771575889356756097466167894257547553057039998884638571969552785326092514706287517356831962944196596433282914844555162633956036887896414114163398610561222967944029405168495738609852511677126412071812441651840692741190649183228881936260347612404404169659353223833468063643331018616006923817262769457760683194328259238770718267306237393919055442664407973662029036502349505858277049198837567303759576442499829153250740840520139254249863738129786981718824207181217603531788439774263763274286896564953374076855824957245873114684953073473218721603179046829304054281205531999146913936496270799995981427841695217893913845921759085888809343169590191959310534883031230915145385323500875071411820127930494461235432947522692851083444339739463378303909915435967176826484351228786993100012471442078540576023359827104475625736940863503184637260467090963934715276215795558902660451568328521986272837288603852574551710891965202045635049624868018865109854940181563369453491373007862774020203344544835261353769723589847913936730206461451598955881934738018009870720725815880187744525032184191027740300636875760700739339033046843980391119720054326476870781216239867128108928026453260751545916658696872829046733146838561240048061727292886148962894353715052928996328047715569956497650246658439376628909041206695491050828098967262187325024275768479386078333693575873384440883662794787486285418080009422962898826595651614760939701626708572168121521543742896665105123431255456583305486488791165593707996832657395080492722697663853488807517733127416267242398958754945405332554165355041692536422774109272709672550831645345954318513555518047796909854258987471502730958778892462599517638087338670666045645014752083796687219946180229780858671072446654680925613837835611825145661511531530118627304610558860075837636573009212469549080276423125678275671611888311467182893976583014983139485343074293631087179462827806286671362625227643994653816599562724709412926549171943785544014908410712532397554365006622301092825103840544517092699689948559676736471853308507629962280897395915934767004750631652618579580720202957631726252513332526885158892703298041430091729800772072528841517115839039402133897654814174305970824065867861375829750493073184025000639171644315223320886445106176084781652947366772179871010692920282136602475222453420847191163597746881397356157856145601353250162997439593574713254487577739592769243931573890207493097079189436300839408814088291297603418483699398291154912498320779238645243056204548641417099975596798320951057431503019934012142589953971587325907634467338480429018035551219805623786780451934997813767762768378476975990507274828760269893075216688555135638846608640493301721004812533198883587159680735544589073638893186118208083000001084822403860933183440825464877993184648698449586957241469242397160388220547955666660535937304294522552887554896333420197524696370485276747364589890326495239550602466396754793372712594869063596223541770261425438964848514871389283445829868196950070054688300014397042305577861671145249659290453794375003771313205715010381329545381785215709666177548771124851646193764453076828198750835269499920453456333848589554863658350889822751868791059901613521270003586128619212183416053346235309954327526272350694821670425148113145960497283231774193288517997399588101836992195518932263557689827486508353838413011713421998966147621019500634105890703100792691368964033379300268573385431744726945920243397538023526402197248037540741644705363959987677616442989115992285815607489771546654721376089944028517104909577611523907484233624390239445759545886930369398530107912951376397292820433400114673153514028961693468146964088253567330823766537701952335027005906152464428531042130949745977449039476859408375572940083930933500077754242740982558355577631864185091445746363334490135294129600282475712511716223216998431487985881893968287087486183765679905295338787275049271355646683216704862603493055207559418238055712760200744668566957659440552747294284715726067128679277154732284145323001502255463686126733608528121852242615789703387305423362819256321476728513994324274146611738227803263103414219520701017473438690350830140952904088834761488107155461341388501843901198663934415706872131019658006745456379534101602061981633433309554231464310005592566817641652704526254110735430076823803401022017701395769771659206688497956723366951012109116473259453712410407721893679155551211878342330571993456658169284798925232098713848135958470289872613707435493662935471098328328465419141061872358708477788982410682683769781864041378348561644751486080157986342154109123574509852561086384153799365621731967246027198084783254448099408925849296784645223428668348583981704304653208169328432174766759366852276733150683204609736998510921888799072680685169781627581367390998848835014063064890491273210068573238819313314683332873883866325254354913699468306337719760674789368489809169261464011101404234345569229069838987168609773245165002164843432350127331523855436992338048281969947677265924329059446276326977078259552381265678136953523982333948055038712928565732581475542953821437360686663387962946220231999183182724274502622081552908624965125830210698190938266783317812999689191618153483347938866872688993989155794490845746055453036048615957441255455895112903304485612071012032680493704136674336476880436364279147592039368243143135786832059669331041133039154654865024972769394899665441319391824015925950828405491512007398017135388822062083298452902343534511161488058531741237408170866621722857571932323011999251316849879577969265502418087486042457090389099522266895798708620018800682287987814575483961172745695172154871906221310946977728092595682998648811223753306724155384186655905708670671423965889282214446612551974866443005941704865032499203946910158054883591320508234310780137077885283161855949008617085612596906368749755933508096803488872393681072003658784734619445018436106209267956017970484857046226222998267692196728803960617947376259170702970115727705328193402468086826595099380695254745719679891742570746931060961575508847722198293038197433824839976410398993215664906163823628495767086171529861056260889093518100184243210857902254769733437369804639779266654949127218758356861710444368801739137707320196988901002061622191734155623216248459823130127552157795310885430517401984173061933491249210692171051309987936304007514265256400752926262678149209815765712263656892519774272860125297245311055152383549804782767149607250780001708674958357322884700288981747320031303069768122766537837631111156574336514266529508368026699245135370352418298396531696201853423692667690871765976501749495707766108296707125594802808056216129151866682461747166521248874276281461981091108822224839793738225016864928122892704581390309900120500429267252970361915894876310927735863234331073673340936941093783730363475653597622630007727416045151865005760349821112673792859133477444754470557256821918757350180165774034568749233907380741386040220271441249958576445981371764485791716386550448057620427157494057351259058972664407833380786060499866076674772887928334227338072423923621851691107207595715933637945808030228646701511420470981684323270385546770497562725990560450315084739890913394228920142581669384777158837908425089456009562619287431721297392462557775859213804905189095766753766765382687254749866331576949062603108558369171752693562870090189629111172443409735050251381202997762137808109976369209798391004811293818078797555231629388116011766976099220034890660340975995758363229566694126068383169255537429160408524411662168635167904400123059199691970890420962002801453537742588879708476413686594105270275832453249752276811062332310481916039904779188472156716372606259643231095384018394519707985188398481179334323825464145087613071798038220657298869201551265295197797445453272104101130942617439485737585620174826524215615044051622379336516661338238157122675907442750490422534829031899488133037645827251786523629202235366097419273224676556122122285066107974455659681566752615869022090750498324923662514688795662310001636071450841908547639284190942853664077984914076768664037843606850489507351574523028058678824995765221034287590232114345770578357111710716049187828784360226006303459249482443913388808126856339587196100397294815501310522598663109510326800133421028815004477169091222854399544994705898199435185998055029209312079390925500043989514675845282486685549328809400404235100178140790681804915217908331612159891533587786233091616165423938022048700359995241339283365787252996556165470687614763825943106150441076353692584759704338308644198158580054865575549444518772511651528041093083536710790237995556676832653855739345202495753645575643530823884411213311992747674014260085475316718649817324745175427486158620622828362956439361340127645108075126583220657719359379129102332194156000995792350196321594396075406154201263672476134822357440192832578539731453810476965123818941270334647482587972121874101112932724968347085542967823762006522412859185582958355769170276720201235952004701210879957348311711647173401717308933416841356299918301175984852186187644427874561346004612364737742612513833993997459911289987063365323570769936324633547777149114546291882013287391232700184148638584985646550601357063108050218903989976385214256932690752082166656986197301406630151453336055999224234942582762720215690270469589976001872395409926759210658036259063479338821989290532727172232734494324805606963359648070815180626772629213233009390986421326778610473228012803799351765002454213528334911267087855997461767998540227621616749677107787100178215809853213239758675863702687715589504371752406260095556020690766880042540951179166805262366191847495215347954702625622592987418962040169369484170071879577959182684222422356444298577210095603049193984683314551685244973740295424296833239193417513391258033971341965899800450065747276935286114312592044558393067294564968773727017055844509216044884400345962159348103876985523246597551917222503242024299862196965409988187280492663941732573025211609622917069860671250806236574294076901518358810235383807830673417997427037380306309653003079234215695155785246750221660360824687874329127999551049140387025698024069466097190620642681963601407306774303028279716820885570234377930939073382451374441296378418197390359317556896075072832580643158156496342380163270119032054685336539031734187185298039278397005924909262787058169000386719508746645759171180788789693348303132999144115173484540944282430161485821402237404651617827058513129487455501627639098975658773825684833521508958660617276614899042868037162638032946839983670776994541406647303266395177210190005685484973743378188226981965104888529770590318888702618556665744811040203600340653266339533843042105345887472648360547420972154362865930649887986631009649032764927259839253691906437792438322374859047647664725758994415491810364045677824677570592557305100208839038900262435534091498805157020778055246731460599976313535395200424729768726320764334051343375545704941859680088119887471812266898147125693050672294346336855789384026119550103006074334303360270714612434318470366151395407875896585220447210108163668159724572921097201753911190502311338143691937642529230262407744062829440665593693426756173352543730614929211552243183431090675967331243524301096821344899557974168291759211014569503027091536022494879189137813575697129031089549657027127954550712309697404993809255004049053084871496711527874643315723524839184583024277745623904766697460418231285823033426545088205190895127915016849238452570343824533306525287184086319420225861773597693860930007946492106544965097196305247077250132211103087669244316931466022857174951422619609198721387929503663978789071667861432597158055118341853599391441247811779602258690445513325686613142428775131264357083482512340041192014153138305556640791810264692515003191186401389818878876259574253270947342128313494503708063703966549100189750998802041176504682939611869150647165887629232813083233769822905514415398331531194035956314732370750689689432071243114272628171889194167273287402018225672208220730063106042920859082235654385118906208312221931978941247982849390650132498753374643760179778929180178987015691210631623787647071028521975923339126156650892949104854206146837105437269211533158344089753514443903578905382669370663832321140176324758692255301658615673778931182945584468056734037604133249933242477528193512517971522213640612358217881059758076828017267894792431158228720458697905972622136097544019196021373003386258924402173513400441548746102440361668685990105124123381313490425919521292738435900080170775132927174830389968382919700272710356415957010496081236261145154438164815010902059212435352814927067051647148333158483434127632336132710081567120999672790604483550487260801675790070445982084274364450768462397635543958059941550889570337296303875541471904577727742620253971326080281122417461043412172840229696317903452213855306589089302705456204415538879590301023815184669416851643362043135667340080434401427476859044581455905295052041785985479727863637582193736460078862277218698461107331095400638238753652997994967144447977606795494005007607168129294902831948355219118583612455615559617636942090366747907178209325280520727567537927735578210810261310126981736241249928072103432546767361919107434835428074419639630062630741088050835728531349360180911368584438241166090841342165427374423008537703978470565794200446380732612424286694509484502343718189202604093329728108858004167845395742960015505818498697691872549413077399488640422556442720246651021760472026308270464323777657363376837361483960392809670194404083942207105761573659497215151983215205939069492186672360000667045672772592038886137849755823734632397483274602124647542029894623429172910801985153269442546483284703487812727126696049639287022306372333973484756236385083158306864053467903574445147085550396853127598266640103263668503515158449278767759001674924201048151803922812913336633839976033018630623764766500864690041844710031625785970444854948268741703882234368046961673637136499087676326574408989042861031424227512073463759378671294717207976200092882924200111636024122795167567230661737373588177676726253694398073055903370012314766237902370606658555362433104944371742499245229963844270012838554295019164037807930067955349161050492081991749878505277699155078337560683514162257509377299430505573582788495629097479225148347367776970697097397045856567392036299584687543852473501310103768945183323118373338764206331795586492733319021547055588652990756573878694135770839243784934628996684908771785715517329040510408964698048363242387114320902688770093758115618008071425918135437043458682881173555895757995308632545592112113393428402274227365061340138471394032654082452096185352959352604091257562388996728031426833494362633231051963452394290177753997882565668335854987245601346849369409389827574694917867710783958242651523950520818647306224548787102199693541593777611456159172222231292244221611487655585236838340074119890216752956709461672033270667085959939276566649637176124654812032014775651648147361665035627715706949222960896068814949355300814762741954152220126583172981444447306029037812996617555641669409134638704191914591131666153133637692311544119820215275644289333264955736376860649989113736959486500022209521986798824677054421663032260141674715602027279569885985014224960120195569824165945308502226312546838588028730581961026132966882007077101397300845115810915372482653866103084373127276451014604122278730617172426829834659645723170536409915612607820667521235571858239843360211111055036941795379730870664942514597687854582711405621218720072326694105905887752510900734045106050705110592025421385692333054485606059542619528246383811353652215672349769906030864205924196987457449642887145249225536871434343897330475614142811239171860742086965766403848294415316264959424315309815875581916582611963598867536450018830351897760560732981478424292517594733585761631998406829639273114274475764574019363031944388267424119442236537947578406130133102548850852203309609654414826734931181157110862265157502955194562228450993485284444958202931220063204595654091723442918080311972369924046833769232364543153248689762853677870458453565422867242989800028686065881540147209006861284034655036418908947410252973886656954328806790163662367437338413656359588725810392547459296815883669127048709356940536135492543823427172230677211032752134922739869302733637351675743428299802913089439228517618703802524550065434489080581476881749052361345828408411863452541645565885746481117692819790215744769554179945794542233786730246865670635038246810231584531656837204589918152652521828928102342050911833104774555505024532383006705908476294691269620453056527554170821752840095495105236915994435781514758984664518161901423995062237851444526581364895265802520200115131372044539235373928606189334643888964518464707524710531313273294507639970366898990748782375200706175132646352178362698310613961245238344845023988220701514675462758240427258519440077634393302162012001440795696519319719035832743545515804039136868126101532481719274052283496014507574353646248376102937571873752485966332266803321829521663908195433077646750818233671655649132609181319549421104564730073638457086839059623585981145281410866267982628636375619885612603438533409910183704447018027912128500636353787812638827097230355343121811271377271081916671409132226019714654480535652817637033377934074648032263444741135563629704011759426301228553372322386502270793559359221940361789638652796735096669133612394109909304699733722576569759366234352026111788008058727543410102524197196814048444349965399917758825711838591466471356913880483444465109076884248181806469487656320337728844718533424030760636598794223196055475272280141025551874825865460131657412325199698511905929741802754677791305013392859134680480388812076731344578850882253096275492516482734883916171299415411632197656182666082969431242703821807215485596228910791407600388372051911412601150837202500299305888230300189413906962516933445218202913733705713375053969088777583539457156367585386216873926319876411105493741932858550720618141369121853536070209061041699031614865808595562268299626869242331154798016796234305213938490934330425051582093766472285459523089135477066782097925828000104194264020947993739155422907941168653936945933384325943328236244925637157491789128028006934387240577090860318688337900478885997782755043531991379136149749212861929782460274270254911107385660989547505727914108051804079339240186182519165783725322405236579150074088670470406618487390021453677261239530502233952040798760054601759960914336975357079823997552159622708698022267662972388870299403153626783648102347726336749225815391304885990321245817116018875690385490210660077951434327224908018348755792430328335317810135475524953844369575745600651309537923514782909975100499760651846774023480961267541860013134521076801977988991670157625955731530400665033320975945199320987655065615191845487934559858745275196847001476709923366788448495985143434075339015293916912684207798551740618416725669345311705770095520963330855161253853046227162486465068745844890907698066566668766468639764580613095067635576046306354839639236086766174050990454732393972722996299184770659564845499080184103105191554990632871061675774518425330002058528376238999467617686218650848687390538189503806548271384715228964120029382876615494495974319804562012946464884937672012746589113118597893592395681312152556448566550339943477993709598917941035545400440004783521280483618000111671012816091209717205602049099895811268647254711341392526926164370392751885851348922057789296724036980849515484086873521483667464479962678940186672475124193128478185029233880175265880623070347394077826253375456289139906142337943154392310510181884799396604136686408981683248134543454965036290552119723397609575538105617583605097338046893622908210033963129659964782647786449463054554002632081870052849859121259877762334419684159017631460576814153169366698123057838438498959168445058328107116953995854102336478445203668709153020810384172367545055244764587161573567592875953910941788766227010031110417856064095659260750009893278259757654960213935513673340025150058481210869777461533901886051037981957527588384288736114740363974420405154255708546618207253884445845359148647771353383408901867496440340198237054632610178969358959238215350134766813975787126954009278949346780159042258292505115451609849885326072471357825205957681516730911523255872430674868692780950686503548838213673610869977420428461929168586516439108496612888334819692234737591866547492314522059005252488115909738816745357580684152659623135957732247908794666469802363120913992711023847393498570334129662540656458231955266641169988728749050265687001748933273876554865455472430100401768183020650218288677635665505719846364975692398111929257947864810724393915746814804352281464138828946336743546366160523018608154824461336026652849042519123475474274498727105297632568601811913202442151549369207255849654449597762258507818614688672349012932957518913407354264902576380496684815721604562806595664930048204063132335683049761719461794596977026333859005057517443163134194269473593974372824142141777934097673998959024461298424265219510021808967700829700753304159356224072200592275779108236328367419549556930858278151495273885664933077405413457736928178518147832662177117249429972560773397442031370601507461324278995871635577837163604159533820464778686113747639566465791244690975149466871497900016500210322029359597404223007818237772824741409333035639232946288700582104486078028877014176374740379122176542671624785857045630756506881508646867690255154038480017570569586743414691270800264530509001536607048886342867612116208909060884144287549112722492372045785091800257587529582804618863625912794486921575607239780409366555120143686626435374171752561874174341369898527608645893182212463181451064201090179117512622429831601966396120617970989127619192589740084211203750154967096435824604164931187391427912482085690567017544467251628885446317662376522087849657426022288105862060653159910947953001020262149779690958511962690237863657544607088400965083655904030888635223576801835215752423903334144232754935899508236400393404901400351011402463832063201347823801225904123517765818831057263161071741655271930354358452743009284772436128707969198371925880645479513789808980724607039598969411166686191558539207170924243773251312112283803566159899356263841323731434038015464572623837969763480874504634638905870219307031654566603187370950698893838699348341749258031755436069551305386865806296981020110197459567878190588561497282025666686144902172955254995067649277415654016475357249860636439577385835358504563821034238423126302820437697708268692159879120814733023387475933153898886933796582036439900196120307409440215720083802158376137771828462682129808055424729412738577483037811781895263076184843669741704674036995735934505622415250436300351692040512349848647120461208093163822722995215321983715497003677147011190613036736971881489599416346601656632841988361980138240174063031067175957158225996638761369593492390024985032011999955459081929639366918822474848426397604791369167813288842213543331498842224458883657365801445485843507557764061518887317551817405297102978414512149725316619964975233785100816213419595711924921980926385225164284905474234214015484848928633892194367425977548515395539689057454445291629197065297749975203832067673897261034350553872292006009426821140217562474043110511331273692396620881189435536378883278487504877998777726537003250205776451777862835850704920412542792019721497270082895909336742771368828204601648677203524080672912021683821548175858357343971830034260029027725873098797538322212595045976398590942825305050136373715199755076137050554732670408385367518214085638886638707664677158515636430752255735894478846949151028952592021042150982748252315314860100077618523413253413655025580889990196183349370078468039735388864285889224265045534409038978611471675275128720468064108855306635905768994130888503823991185010271931173082463564432312452245844022860538637853006124032462092018003072445898829802488906902409071574153566588066085435548061529534718020204252806268889899300681141696760860984615876598304478025976976341287473687318840737503803622129389259259289993611289788626272385352450613157697535440817041951207418125041372599769131333865146049595457888674706636313320569032238724695546416654396436196533842755101047634600662101933439374814237908964594342546609921384207008988149532571291228763412450805998833681953126993892768985446696799612622635924569724841156015316763506252086096806868988244557812068250652172705892465817143721514841007863351289180193256140067748891786269842331857721623678766899695811530976860894720907170335034098734002677148170088548158672681816704588747008305066088485423604521141833822973397276436939241249830007982905992029822806706410667320842732788254839305244074935347163722201456056974222057115817234445888754638110223484465673684657181544944955657432945260363774989896043254204831574347399106930385603407398571153611113668242804082175606205352870160210143282832497444870143456958790330586783181286509902576487598255628266422997920547710110986578169276923038387173494190567699499579309833628911823952714449410174077570556707810281269497677413784553306379551039972504755115345626374254433132252569977688376954869433579205720743389099695723192626199702220574847081705507109909499035397641661145022508888740778523885728514535333938117706725955797803948842409281983070890680123754747968208328692951974754057910353022213787201051865892894904277153359964133955510528752052073180929620118079085316077975478736609300858218221745965772422940985853922303815417894200565495084186499425646281926390162234507681561495987110650069476362145657139233925731816145780879899159072476349087614263614363987654302794307728964072604987139464113891892762174115288744379849093180023123921640936113872752663585652822121449558514914134993546299855738557182247337431814851198232142027326880848456147063716077571648821204913922692817747898905701422740604641556534024477497691824426020381800718943301753725734720411652092687724788094953976179377807457187761277103956097984955532256027887112731924454640540321303772088497283593251801057331696557379036670925824315020115217062088452826019152294750263456754230781206571004673852379890566322226251204988076775475715351941498925644704012510966107884486330783452731045411450005242288660603542108008819787967080109036066753258511251136003553069677684646804172669462345004299128299623481180484134483246025202893103853494164398075550986637765952851686866918521117386768483613721980021740896748655476705005440238610387832103602206649671963213622925577449895922760738025406603216548425319795324097600909791922948725686347400337979151648149650045557631305638765723485175351116721829988058961249348979541714148313273928289091786059844288893130506488474349748965455775796941078600458388217727631620753410210707554686979219505400762834349788909343410547789311458224815608735248550229278013000420031582639953734856643933151511115544263533601174542778840023975607971016017449321478315034989635127405617263973693628617803216469798098257930165773079954569003770617552582903475897938302816301111174678572462968177223718402261068153253640158781055824260626936002009240585787782750177956708958211536330159545413809813413135166442533557102259095468063737511193945397943741039157415507371890704112071115088484809670853873678174363935233555696902781589589711903842031011702205931806213776902544883782559801891694712904460808923955464700193497330262701567750499603112073444945989925671006223135785747651828328744907012753725567455525960652072431616059203316695561215610158814734737062314140400507699864210395332528799700712597537741620663501218600854753099419132295830755548574109991915936972701956142053881684065207233415186936145299113760081859844096961144952001933822688812085926508530129349960344368651506711897331979903930451541894130697794768911711705680033723401996850918056200634078535735278659629289981810801231715646604066644561205602009826644450041830430272146929929644926932181659433172081422766897489392595487975922434351881912720171403483433474912528114994969836958605808768405193711966275791854281313129056286979256299100107386836029856614576809584927855044015223047853895115940092871939539741950006608547077581365715214416863454870820132471505149064842814846377905469382455525573556183782968404494316894747087508154211596834085951451833357285989678114291878554397980009670756648402036146586542262020227200426074889519370431643516543536901714527053646306806588635356415110776882177084388483637240910985699057591736955798622812031349139336936197025100746107917821453686347154573102690908458279581313456541271409633597199408643281826697815942403583872479418669793989925594701882262889947502460117179760967216710965345758344827758153280008963135176910061728806890902723395146657550557374316284528035626409982415931992767057799882324599258404596737932090151256696476466949594333856632506482854904272372384352631903273270390808206801482901941496969004307632614610297230769818430936372952333885721057686519794879693724388041139879989068417064517444392537632705358489630458467142298441648854947122673724782615358514073726871848443551720260772220726273845630059467330550015620718132757880963478614859583242409331021160401952715027445524953837501383961627682364518755460321983935269215676943288610009067417045864101976987948744382678900468907343863892012320827740218399657246188536132201672505714656879826431229083863452539055357690074178811007382722750641769127155652673968855850353491572972282266111221039894365193308801577605634419666351685989452072286131023558165958860347642037581191703983390213471545151232302126437441280620916639346299876137478129431608351287542230830891063040826584285735261472405411722358013982537408529326036560160817464018550814269439324228080861026815203661181062621677073477712409066770043253843539291025879822233782682888762070852755645965243607155386926247026731264679668741497430642752080852287115219963326307244333523042248700638167828558018469062984894863085794196096404083877270515604921051915235994713676773094630229964985604021826246025274560253841830701261084134776105519368873790005746122873871207573195434549571530736041381625889717473387635395693263791417546966829817725257520624168185697086915503433308958429973746533251435119804494397416139570260596067803736132794536340431859709591550018999193104930071783723445835095807246991751841319638361580163676374467196120112248191872273928301197208040133893949373369002115628881712854098582575928544213788282411144914304025185982452407650666507387176216512930984902580390030563874668813835686729792843435472094138432806807728519307394336580842818939773349543960170801022481840512670148923066766470840826948054865781365454840224805608277414882541327026778362947905843783318301084407535838064680484616617010097370774194602959664521297274706236783891075465317348843249225677752985896483616558913882610987437385809146107697516389922760602362023423378521438569272823776644127003659606466497055184590158869006323320479804600964329981391119165702005021132236445151053812277178985922543561743241580040445258638953183890932208412988159417642313984086894352309389751032052167109903451820768309485631065053071522452720227054865832513332927620215324296739779702612124398183980036342103456670274271009646766892865181564206494271172121942778124578691815678971581097948060140887458638301623206272439819347119459643539033108678680209612278758876200750238319216715517192454532474207388405002432448454249922483107520837438927978168881153644423773300400678247450159305512076655429602601414271096941072908403491276060183212263904127123090522201172343209956816799097400640964615928233885498270404121231580567717472100842277664757007233298394501007996500806882224327072024576182311140228361389288622859184278633925024886719095852078359056885048905098635258821616606036786753955839885720050467772847463999950372469008537858162343845273154823357829552943244484379928490488907833103042486400605662606075431889002064889021444783340600711984594126386420314474171583889356903677899058197599686593916909068495453742258659590574530217884942146342592246582380144702116190036758979696049492323937842265456680610625917952394468985785242367389068363124455724367294472985651266917231615877613671317001485508930925579461909365095041104374611943038875342550650227274865935617059409185599923611266116328615436423882716082622334200484006930869848775995904337382754858816985622696801431246688118308183264380837066598171375421710690906939658007965324921253585477807211204357090191589388368914472575034425943247463521487979614783455967742323490102493616699611448101312258828321353829544840518238805803554369329385127950243960339932203169287370886976576383516432058230652662625454847383287773245121182594292146765579566697095257920143881800305830130190796220749506373904562140474834249542526202392466762778246799186123923757694669519130833145226146082614775387890563925434193914165691071990539145245545580548549321881812158879778519092879596391547568489948616839362176549353183875174033529588579138072819249671616694750897976675390858855300484364203584648789457988318255762263708607115026322299370251453753242886259249594338346131047308995414038831192030435106310212968530033401351895100483159348799833752203666400298113705727855810291916855986051753299893103924696558685095663778238166855639902038286957218482263991621826300886159744886861385706660857597362082411803292167106979791268544169351264308601763866183126264107306547314411239017105307101692932770905275134481400840589131718754611846820683808831991237495667618377028067617428684226296481580361744189976841424284519796545834835086968459862567348293197042791121630565254410542668202819126787987364323530066598834357991999781000821899802327812715319954063706013607877052845366276650865734905811537562528683974464764182489810769164662685601094358263569448096083775610347875771697061095492010566659241229852329808714060456456399525511588620259168729479088177946107222200550979516931238803867530921515655822970191856650177340958066231381755166717653475513743623533629587580093480162390597629537630747027509299716561467277093063119741739744649581040900540543159609656021833898955784810374880141655321133756860704469220277242220408578998484896472137006767748069811257491412880188318191803292027056319674648872045127916802877320554672094523754058263052176252646619816005741539715068856879217135649417500873024468811930711414776051028418075768050399881462512727841188650516673638066560479466175251600871804314946418840053496085006957706842675171945509483971182549044665811645194976749671699388476064403606858300388750596711830356040401314884276634107115127221737540901967336843759783017574390200559069509207029923800641003640618170341358206785780314412418268412760401513047637598456408784453678399013905004145241244460615018142729068054010913525263519940634505848176309747185438954155192827240953880901982627219220103725318824839410662715795649617519505091832723634549897034573559315722570157791585673211355397718077173277671752275806825975499214438840589744826177659964806570430058415341771010586149798636756618646789204786738587037483168092928929485452485134932141748325142909072763360587561323922581217596541273935196118633785084610362271640064612940604031311800612402354580551479423860300557614262077333856146915431518182143624846809605290567017222800654845027836800155182368026005116092026698229714794670769960592136097046321657806716316221440439628303473319510670791855129693280530652265465925282027672652684214970191349546455110215561619668196757245746970164447143674192289317858798778098344954460604202491249202322264780031880041922093769059719595093970995964519488490495777425553336195799385767616765908335500348151105373432170884961769915560409361847966527333253445734676837315539688513797332760533703887750002472686080995516612897382280114413699315735524337218663610547900023617110257002559094190655611012283271276979793426299936553981200249987834615716616260650382254038073652256846961786799492046934170136294969802175339646219594961597449113414525834319734378883720158195333564690104615551598437956577281500984979930723547098124684550104370622507570602459644567521528879996349111814070930131459330744016847152517785581269091333353848083155379351838188113897787298257899158877774148374376432924087077413167821177073001370599849669404130606520276126901319603996425261747327178547150116582260072865950825134762307822010069193573959957442632646405075264161918159765281790759102567421840473134204780643507468175134015486324003292902005825554496471332880881773221813254400973896173520098787131269906736139244722570246291453099457807476825640211540714169009698907416032449346952373436206018618589935262907741391406254016019153951721257998532249727872264498603576811782153347295508345335226339447488803701386712624473333376782807681462324024980956345746991190925752968173489966199110755409872348342449580706780646287956246140246127666764395076303442997199915880590264605645469331096349823518194153434155776376459463192911470634548877511602381089340033205151630302819528573998954101729954529851874947362589375264240343110137563410891159753374233659648027089715331389051258232540995083644994894491592179941600897515044400570762014491182412075171053998180158131749922927053034970172083179141926738025662316631013403256290476989665972375516094646147149288635373013779591278928088193652419020460759268121034060901005737519681677086150067914967490439746563455566588686292088345073457549936385665499055689337888538636808412802749233691470644057526213165949823867958543623937240332387380459717387768384351988208648298293169189596600466813513963657537404353449301419629285549181072879264820286033130503410981317704297649105720166471431290493680427016389505258738287569438541120390940964115601117021869398880894435131873989118834280565704082711925586977309027674854355320163606991152715327145163738843638218854720741290506073849216787734309120428034877892693601757889601026721942317640890594036369650688346551412882411803706888012574503415568149730360112832308538426115176820137707435114870467747391107339754483380526212150618636664516153810263711350646048288183820262818955581727016337457995565286878369891522550783157445644170975071742333606652757210837465888899414633959612934031259047893522303323986079580257332384896128156828192235396167018033726307488388322395567551747861527370840477150276730793185414848282615117468191354864610992501891660126089257548286145695346481400636031663533333501971093497882209085068183704600053349485665961449028482661111396946700008713687744672739837993330708899058970314547542061726044562618150929033136807525467708674710362787693738273947399492329664514010169370990481358235150480431847303934993379196809548790280729486311450234344116322196567038106300366291749362399458421793229664749380611849493610535617267674735810034203198195104368030607197787444360896256495187835030193887688836801293638314676610692195844401824980450424697561181398606297761567255039449203250910202375251949572653944054983014746026530018252414170400425931909463624644930334496603990464099241873118046507147456313263854602937256205736963113153141050713996494874093260927524185713028938409771347020883163138051773153626943172143805712001558392591853264702357375455161272460102255345887236990668483435165423733556829650858997003363638624727773503944262601228568451467749035850165631828887798956091258331595125589930218831842576703557293793142660590539451877068575217327549051155871272817385344175206976488844684084812829896325721245765704182213780035424125596009439557656813530802010091707946271862519920154632559562643205636916382887815749511985489681301398299310810481482740644169646261544460332504919200311624322593370702920778573148811883221948087653828676355500028202633891755293447778053589669764907179884219853807256881209918695238140098209076582950625443583862625797472818017973660263520674294855964959872463504963495267927954181617727600579012662240237331399982012964727614306373702677273775506915855058309129390374305957148401447726713922178532829779947016764764617696721598990406547547038802045323980293870902831552950034633955981541589791545787142872134113407484560839359275371168765231841506444555826559977264302167462639309039400383817383208246102360122174557029396319547995196051483604070122190938024769518746477806634912268238457949979656841937812408527768950411941586177179062698540953482780633764410745983596033371268472447230897830473421143016312280834436852954975553423946807493866694394996898484839149628519978359512570353247366945222277405410557084506695590096714630779888580279006601953242343287511935951899425451101923931446800205884766949889572240592786985781208084387021864708314775393102165614305792224214321220147431078067475981602191566500245539933636844794698176772511918329249495155397247930823966612014513669666069361867497170434092416007744606156037542937562609379829997187531871178128094454205195991353535980775567252257422623166626601576303872857054986910624506208189066934089009306333403783800308732368639261600601617137824699631848164672702440691552427392825323464314626593768904186652829576506320439684591203779363187533545925046450771350320603656193008011836087686092444648455952295521811023044964623183800777695595905520449676502424364184209504180545285632958386041342021383638558697312561942203954227354546927961588666904814261119432955798083512120937753019950880312644176092050507175988689535316862492831325236022645345789028852435660458925084667448935133262918243601223371153546546114114457618507387110020303585854232796380122761321177199311030044044714984916914846655810571882422370498257503137484801159241507656516598961981754571002577343589322662321086362639294812246023705322123835223654602187315418220331488521423500965471426088481435117105920932672534690734747219392366226141330491366905338055488397809515938138993254491103658628760606536248748035827594031285127390116139917849841910183514992071315923339290355640707818876609903754377515410175181001857459438759576497426076739607627433461196120964642457397037858605670046764712865836259542895449373314192009861604558589331813074739256770418007364331664369880669515025983689801897333729427157495926842549898116727785309725810961281046335633271083614465363222138052979899906661748209535663981361921854231691867072757006362725047249054333455863275949297583132868416960977180282138819084667602709314194664254216186246093682261083584067875371200474227764544197601067732421050573087087382305953116959722797063290218972079295798909106559493283519940568450052955351358822740497712882895541704539914085961365065971906985085179222594148018948185813258132555003171668212611849726728900341501468345522137039892988258037961486702222095096154524268445363214751073424882050343416333017105045797642635994083978838388820372310164076929946180256322846314202595145832522892699308814283488798510761531810348192317788543485474459044841363312315162214555361413922635392864723613545358589679568842271275537339124239100749431284937516693313395644409238332886743408639257065727566163732071038244145717575217122769431566439030205447242039128559042305274961921456503666828292256180889881422932633171109575704372684652170779801094518899142930949184869998451063930963139732306525606675046798996619979423575011693202599707434710492062767944021710810507523147110574124998653360266019607442816751288865056278527144115410317175270725049558457497305473691846304047663722554118422425214294682367662706449182796881788113640482853370985696260123890399494524136201152084047826136134132195340842038371418811713190283213777169798290278171731784787699587417258614084136500091001388806043051532403891894663768551873775607953121835453090194912967914991141932217492707966603701466354931366040493945679570224214553633818195938554315698759059077739603083103016995206682242464123368318231853418697742008930364208696299244058566147893827168147972778664279969463617356524266903344865299801685738881187208325134531284145688354668518105301484218921865521500845027118034707214209212222121648985985023369521124271453622843401400984851449177990171745116099993365003055960998593373925714373459953762986056013216789128146710880963795394552921700402743486271392358260768453499949595590477195442289551884008616193457996195625034269567340471648138672808989937108093134811882459009386441046630979711487577877342984719948120756694458124269408103236068937485638729270621179497997621863475389866105695435633666673310932551051646388043838738560603271615257299945700533111298010592402603032902326574005658444385017745086230258370105445505854080543527441233005226090507490632923480359220430847910250237403487876711894890290682617121688053107951415977625462092579870930855810782511329503344333258245678417500951778584192643422532288776701139453922450376151854493559228146805389386941573621250520285236318387991253062465106060066146504061040416478835124756883635572761489072864152408138240569643008000499643829802386887214981383257402944330203789196543080985008445186020635627114839730254943441081104175215467725915709012284330712173395694047268383045964320190985434838757667778531548479007366526047446869471226795282268820494508346590650815534094520168836149632844992299361634187924947423435876209685452515971415912298777170633139335735803311997404271359266578920676850200877976212464219588085906984200284592690452090581953531249891869619453014621950951929874265238887405060320843025500025179217773326864189666152432895904546136321028462463691094760931866945294183678866624496880919913929554313838478843032141234983247824952058471894714390135934704713130554014415282681407213667732212354139486064614073237535948924594050871317592736367594396361483355617700568956175394771664962032204421510205388794611249720004686208945450579148539194559209797817054165805263414517742379622146313124311856493603797129361008778080932443138031238162455392288927675433458372087706075450662752566528017193988252551501694127751873142832343289256835973645987515066377729968113835444563961411959132647812213434769394981873223366048392883861282736372279850078425642882648379274580794489296909152963648524217200670108882048848826510132113953412569374253329845522570935845684853777991466234296157388438161803919001385107463046830800966183936916389638949715916055289346167312381845630975167186436344524653445944277811224219761891651127511279005670401454266711841046655141003385666101915778172209631457490287113288596942089021338982944120590318905333607508226721700483666354463195724954777229231750277246517111474927415322576833322989167464165622055926709373040670914424180097875519781538823666525687622508041739008535872301074229188566349217152961372238979988233844358182861835045472742766586728086824780618966746603949648698180451946409616333170356444667001216179078545838218405384850828544901708809373357493303889782050989910922986989520446113921382117187617501116907503826377260505802477559287565667954891288893027925310219034019200745531871687679619114162050257614879759529019371369890545684623329495785962798774832384111372694369202795750987332158863415193648464963152858244271959188772039357292477742651401736816608683882303463961960356268606918180099087745747316820593726790034472278689683304772168195581371900711550851540968748741247390229351518592638198482687109960657138790421150195754521610311514929639067082517421814896142342514683888924448023877763562304663465664780708785869213187319492861028844585528652438635205237739286631311965069174729695753399088996033143657204108878860111863709292985223655544875719434207969398908827437340603002172991713406788162916408171195038812388399692034282006540188457292294297376621957378307764187557112605213062889511710528789284526889840082317312461442419199984773031154731666113052171934003238482207987106031571484422481265095121286937330705694137839862743797213063845165963303822715585849966602764974032549608127744522134852897202275779953574725569011312159567736746446600017483049911156168703930112355363094079243340863795716501747313574714022217001195035791502730960584307371531552845267771585762347340791398349058859475163715241508452221216743010289879881718628632476904491475158118307888972215586689531456333486805916359744936426089549054355216785399511414641933156668025090088807743009220014620470730193524355284908406751998856612863757080352490180618236191848301003467804622552686709689881197227632553461792420818378558908044855619815141741008139031274249485150771538944118362934635817999503030588233045553501300173737604630119805856876526722005184532336268935421675678434837008262311492998658843270669819986718847557552021504936819982150174501796456441698017568466423300378908833862211502719798104621654441804738334882137320217716812815325174000404654209431823961336412704770740510470638333302432935733417473455107242135456523821601851866723883004481404956495822186960468928399166591506488526845867823045521000168786480894842786857162982480122633143895385445327981324927885909428638346196524438940975115688991920172843276559080406572716363406082066369307685792830835569111351828702148866675993097489893381722921966352316663340045297190213199253657644148431040602837448991093709571774576688273012545368272303633313368562184102725168576891745196815911761582734656412378300020447651965989620999295304526349790102470997098675403136958172189376572485027839862510472991009334711879181984596298359061483883174489754654118328504062500661459608330975464645817727916520713238263189979834777992685482983711285092251264716066550045531484161034744025622881411046540490445362818239011952473020279595921107715295205829305594018147872519728324019396506128022281732415441518453220622740075143128735820644150317668380415654863415238838909777846156706868047693079090885141650861593849904333524576603730797008595312289833694072744764371864213966887361284948283119702150178956172388143927533938531249831828170193652915960672021671910171374437554150278884268608823181136435893819069348088443426678238223613699254645575125202460026485628036517331756754491209389909315355549255459792104450938226575965096420072048244513821565725549903825877318813508483840235708630803985635282424694498412335422503090612961513719970133241682648979251568230085263521507471792923774389724835925005038747243431828261991142693474145056435177756866717730339153413217212237513415838384378099316719744711553737301666126973821618300307546924030365257291838703329302425340651861942233491228754600601581991507548795326376504689020092590688081397770423526971787666889020982105103171073302391816577604595769414563953539257445948426974001622862733068254803546827806153843385918819519968817952445867492368559093292806965914628004489061439683176587204505929127381476105414161814544541348720241234967267640561922386294047934685265919721399396453938248252575870820499483621206356259044725887571620294065782658405530776113701775483452364405484239834192707614322984340297999719864198567603017061827959941325199317215810642413609843126364629613983602406275548094161894705409844119606822314704492752735376683188193693430125766431960985042479955832875087908186460111810934448035733032297053500534286874973569318826336474785470000312155022085022217887553671988674411079122979259650182537070786933609792780722342098140186310723599527830614806896936400814523563534404672541391262290453802529492896803484370659466302083591960764116140158028325722649178984550693904598307307231577943914242998086757997919291300398701029242956516841842944151868575556412391929067961627740262799375628886876310762792370550374012756866201257462565247838129407735280198442746063614699639562767625320206909298878582669272494478241526045219155437887365563148682478304939611040304483036246166975067099214830125897653060449839737415462477410761120563705613900252149760535501875308056331851461370788687825579977324464229819846547037048274387444087459463995099557447517979091116967477490394341736210985615189527313837448890261268865678905641235704571335959561603169889035284653758721767442633491679609985095192961126045720242206655215501972187352087779061183944580173596103522555901236120642256829779985303651666923128795721237887549049983282726733303079677163077011531047129129441102795180288755745412395535808179145176192107575028840282711289158841865862372413858874376266989506797419909086480478820859682193752315207982000607013608850823848475481716680465984596596326132008432124118294088314610897893614212305237057987341311366746359378828614473998861257777914796098610863057866780199734838537875671563740014749461619575464303297153869231175907717724657583813877453518722182988557488852693371825456936938713396287216702056024648696826510833784173315822630731357997318423742572382868789996532759672114916740080468530797584684971610081327366328331203501176676376165659093749560133579657452283644847719557723939639624491152801406256910600628228487244275232998302976591011821643920302519146012954767297158501346529108276174906666347192275111649946485291564520189339232471523748034183006712505894792666688089922222280134056518174996101934222861817388813097568330770094521860767382519949124849380945840451284960937789163588192818412684824900172644214694983370741862211390060308602902565493625177774828964907430015676248678495883997682080863138054168132159943879793400657390242721013522871649287936117954042644498697353998408889544720953102649169322088373788935408685120014365727592944685318475214075610090758602581786047641291018863391131776147408803585309106740048916909297889504552186058377262109156185040461977995142934613848361158461004737851361767114471542052367769735586883802231723341571473659473756376563424664966477030573910377684826796974193447964522338071916938685189845080792949874132493389423098036665329040647360191337804099283779576896288067113346511594901305013344575359585635589385116350463465548054080540205764997854199007183502871514133841128625407551370272280581696872480220910832150315130779514630269221365578461143673575811028286009768055918481589622292652673029151642752575592990884904797089855871196506488223820842236629426800674144598702583414579102355548946423257400122609292152313757349197434935489262397887877713503235314464325848710476267354027940895496108207367331002101247120357499872842956587257793913492788956247618737704828158763245597046562388506160001075821059473089165090740263007285414011565507446334912975512539008890571406355184372871926537875889518829319292264943979753544329085849632575783293418803228470744733189740210986338077649113652666174323851064265962850236680857487466238090359020794123986851452671983477156185961538393887861074760652643356034061552944802918769641836294064646186444048493122900826643979603244476034050034816840062786393694804765939365178184562388401967216066175996139961173051266004333360374240692037298699129389510327713405245442776288296626357747815894719644217171378922248025659971092281946025756886115034232014591223181710134467744461960176718526429354308220456985669456903205662505593968130387628327984607571932897476370057123805381271667761959546079681692689792451175687882991408579050012849614475721396730208559786911296521281803888471883762528337715339781469494670445344415558100812499318150816474009610507790746432114878750529372217672581901692321248427988194298097326962336676699098431174155397644191615449794459568669167509213606786590542222259374036057301211644655881686546050703735317609395425685966414833538416631919601879936298512763509619321898520179724653915113707687053347224571824394705586476507499458136270374720340299684707449914959261243452560569992665459262110422247021742404111101713880773315482571462310801124078736600831579489101005328837317866469723506112347766111897634354699827538062769153974143474886103470735496089278038292458788890961849424872871057073125257232419776904561121765400921707672966080458349876646129118769480281285904764068033523544353434781331964629230362371137035294748821832696213448152468540335474300252184522812116930968031513325010408636229286292769331588189657695275125173911130001674940596582629721229563713571833685164409587185380512905079369065532910594949524238236076779250570465739868098483036709768923343266398555179847814305750951153155090694713367914681448676306542923566205825546166586521517292298607238340813650483090057189434033014265631331290512620944817278321805418727521351208567936683770729418621556607796111214028063360034919643182927010778920096040848328143458894860944008795110282834373057977983564757597387118204977231832696666202250964323509175044644362572037072374629284629205485628105711285088428049665284534503158913283202010346420164645152372235031337875791887779947997120711261915419171962365834877986110939927995438606125787500264707470309240913477932873365066335013942234635196822735002187986044499387728784637800631938908588296048522198728857854303002112648734552708344311848210878022610154671081121695750029127112169598165297775181876387792992350872835602961893581580472604557957402134656478676877250353402203572906593537833619877624048707265691121259312410691820124084647473822701109200543999151719558125968590116632395310188670687827621197446862936602377891777698266232780402765797062679783500343240281816859792662262497741667648106405856336431657656363947989725299011655662573996608867640524091097886277334303754287930189229346742346399454793650839908709849222758045553279749358069634076153388061656944082302121550178474308825763062975615787287384051744298361393627173220373279711112150692619297205775970139171947383757372742144316102977879555595390526804357353686454099633090532534364067093656371779410918245529619802244393868816979738971183053464029505780383052800901772860523602584464349821297471895576212155126558760069409876689855690163101673244716904746860893108585615544035782385023873287200492804658549208864183721069043134027043566501911885728005330193887660702462189853270094374001128788739006354526452489988703741809023373835983702606677801102991826339205487783320656946755356046546909299650551425846372966497184868424256301489281986044363681205155023803638750213458558712329818783895690671980397580805665880893362918325601475055081246576945861838318807936590393680051586949431902788096123400702806745703051846269164722806694626405961243086593502786133824410959931570810987069361797644093075734794365997897312793160447579511318065586270473960040475861724152832501663271866249131037990566673170516558267124725360152974712014716646480622032826940633117800855164712469096112635688948725602076057955798691295121672195015282056407762301474119608495664820139125559029799102042251688908232387619605779612915294029296241072682428227782824635590364135742505117769476605916360869073984313152303153926544660962326141191420956128194666289026852477440012753927698653724215171672622017958597408611186742335095234314567320501924717490531520853930918016084734050536808748437743036437067843289529737394448225692944638276650036292570970061694716182397553904362477328003832228561271758200583381811165844031506209563397220552003929720885873387849688212638211603252243851040560998513676548086222285032054310335360250594132936399614434678449790570248342742601592635547166604047424301396284484646592923966379468637658893554912806490921075691303151423474989666133734549803101129534720948617898975891423315634125626175397513313722746185437022216030598889042403347236717596948649867635220922488931832014155922609928630341542998198037249670493300628710456141573529132596419656078360018560162779053785359815760967590556513515453823332366889941227817225142722063143395708909830033940289326926112921972412319936088451845967082976253168040230689641058293693082337827200413135345499120491559475195175150942060056840433718799037233811443363084721374236764685766667996707130480673053856063101936744501867308577196375328647442346622356699933597558581959166801092680723652920452803375004336995605220445815872334253437033828623555417823146939450189673442741432391643108008085409520748853909857921773464343937711779184169559886605344955490946256467158739334375601739645176496247637518336241363675385690200051868438498994512170238039243745342517476186807301184639687652878893712483463352685523988450240901870950098284294541450642289517777150183024710913632626266722708469819337669138048303418581109094345570607169066523184312302387293747378469131101255606268869005786645654799430904752377640122059317221888896318086809864676978312008631048281574379338907315152349057984151293287004360757325168922884935759737067951680798669227680226105557521268676295055923456608340967635743830643480869042447508213419937677021080153784822463091330883202056103423436307492609734351585297783615597811122280194992759458086123335964378745547735365699295166430342456738004283466370942515646459824508061004335350218631106627558661464894437266002125502865577948206070692322896264417362374227022649555616153477025095830544576936229549384372827380572202444384619568512908596925493216448485368383762862002002227722806390817845483284516088700834937544001395435528515030693085734479523714436785600468560720928568688332570885027475976049979890569770175750637739426238538568577099370723102368262180968954888992437136703683143635807369149801953536209367300067751514477536102663122553852983341947819951932455699672289107839361049539933960140565079133957086782429165214416684526425700808600896888986455432577413254803100834509252465584442803817683905234223033222547592055734613368073587190420043820756922814902122873955576745315127558140158519539365602586728594624628180833481497243385817933142599574519294146768382762407815757155794404310083364805424671812782838427986361242990316701936167184460580579245312815633646471876118122281052984900737603455436347526614729595764338344085622688279689710009388604696322709407873516974416315198972069079502895317681467100830030945366369084096911151713044779920934699040151929388827241073203287143028488033304755636747595545310660841970030468998106782312232047214437884619600579752309705608853588147993297672042256247855904775205017804697642882984235199609668401347430421857123415741227470417957664254836230087050342519845747114945132901859928988734409228429693695143494064174628020932362923440936318281698573860506420813974940675096420538483859540615475596846353361654769091515529708289581054670152129164683384308269519996654470196201782978200746009155657096694882129907727703873217307982517444556154707921005030582938485206043543053970604793592214340028788959589686246733523703224232096312350379830521673236928725770316094676497070843234849841162248099020814852116326805319860183051791260411555440960959338094743941455528528286497195980497876641929842285228989756600552352007283237482956023991679475706343295176132906569852286170534073484922597695705783285851734364191517046881221811399803116753110456012499490047269097050284245082559121422400226859716850861683806909341396272795806018170845386204749509789777138026726344638849467614505177641803069115053718480360330745804645509309277183283905490388089650955766846996925708395254509942960584599903511783109141904836435467691782430055804730013364413925422574067215830857094216964172333523679740434018111677622595622007301925158558153538425485665837694272807533434408274105844962899297039170385375368411224216019929844682883298528395173403517157223403602702603893479309595235440502831767053623715298945477777751911235042693885697295002696485178473027101837474008631179967129129120169744878116424245876830870921900953772176024290078470483397908245801904479886455992379667527699914608661310127706566026870060108668185733143970148837898125693589722887040386931534590590226926644001588903644611419270232162096978879677261425686395251947111020476653219301167308200392806002939099988792013912094544931785789348920112214201756533789602337282398431685292238156565343694816408905942554524691581816475741294041940742535422352461072869530267178966567319289745485017700489666727425898257913791351106483351054226837684340743227707893428977125799632148435954645895461447900370620093478606204845054765427365480929090285075787227472990995155179772907860500037860559977102587370516161549729926966336079733231285798360635186382883114839711567945274752164297725919083130567515526784081537321148656602556838927493416602285174253257873756413426797432280632212761048485919470484186365192419703658073860325376846301746841926304862002019441221051285881327588784102939670133826864651860227266300820683913817024400057754143974436987770620240143273003055894509845092472638571685482648367447441618276715799253433534844785526630332086013015430981304434712071600560646390113954006378689377678481492940965341638154431959993831589919755668167652667624814022755611705570187756271187900793007030351825258040039272115006838166278343912329696281213407714625224807854365911194193121408784471332725334930355402843777684316269365620114437236857623294071780671042161757790596818835164773007260806636606434563165463383388369589300670970254630749298844160719196056878577324445601432508788120558945411069180616979993694936240660216676409341448916630914237927316888485777149400221725296081411029492417814852264500592570909168128830333283749862299286501049603998125335199311951546903200483918394737504339136819362891054486762671706693947982856147243925111295667719118835301404500402137379220472080006531808930055946612076155242814637148073606309559116854616494617033119479533689607768527034769065176797731189715503054505647879589325825574660568359549422319545380133589801078602953257444782356902368108106287231248908194356408028487635147923034642420112568177420893200189910226670678143403556589340383778093769423006467358594060007041653126657279052015608559563506486423849794170447099581232658000851618392353685613440390989140388490167100867181811998822873530728961934255079782298048892624513361189727819218376943262445555231706459764733968157054903633826250919386654629905551795038053628684804257750090320119341165314474163158968640290107914568430312139227767906832569968550947382407119809890383457490632402838021751729239996302835289127083967459586984753439447742117054843229517198339606197831705228435234941672641694380292522737037375149084468055650661139930753211574186844334863552148201669001369932010482816723471164660839889292876665109422361516412757793136627190399252733428701366870386656204918541501802381013744522047850820799253730585139807883033931751293977027438095898071604296871126994604087554316662650708213677175007469823031403681127973515602474671434508570572828410573679284735992045298177079336424952333062606308309044464406065659065296513515435950593966522634189805849019442371374152834886554878515528751730168003195552263003427104865837683034121595736302775114442028106343157306250541898106946097085739693766142416309551355893612830310428249065187885773708636008309111119538065708905580164929265623014827810536253184724629990407933024618448123658759615970667421239888581635847448344639465771899654812446634814725138369155124696100955087249496765126624742430292956933220395529400710439327749072339401617562675476626958918885992885296896271320992222299754365450467990501079375493884186583852469272500914943248197756501359837160359444097818866908499731313719101889514715147856363369726569886502292883263343784749044911551234846710884598252197016991322950995872933350358134995725701757967012865574060885512512250520275144024853757408484281363032413647477602062207870333920483627484238032689288191005238651363887983544821011943659352852859675090088601172870102646385912134265220202824509400207804822930611802388147905652922364259205823403767678602657187261865578924950497378930345127711722996438799153908966238990878033952650456093423705677278546675391470329587854176858944314403613906867927140525586506640797553845923291981158970535607475230080986254296456002693898439750062943005346065516646178673154609621508221796184182733467443943816528771795655822620575909842042249610631429155984003145606826445133899962552345975833872937658691350827204421741291746524144501517539797469063258506150307226131575081844964260871665698351908081235677041121965473173120126327089043658403213163498886105680356318711661644753046344246675949942144326159887969893396015358100970881373280211246307149272562462255388324111582428224966387555133524483735513704005966514498936851446831297927840636445599167603817766159992959978884521626958752744303551983214394953851443707488063042407380576477803116451566592699614390812383025396274949386065851674724863834749059487518330169254147000074076391885686138636720194911299980090933590058282758584144984726650466600151240974165450749746052587496883512488863879982754966847191790230043433273340241430026118447958715402036728984839861168536658334782200299841072259383042415738809371212495597528332079261658630960893665748988988136040346674054863787132759207889512783279243494664495035581181899875090273635889193274503363299894940935934181952709545371505013559424635730720243763479513523074229467648617995339533976055061924589223579497386961710638946578694292430934272547675237328300190425112784621409469874483834809640854167300159069453373925983466614680401442780137340004178372998238006715479969131406840290637303641220207204285393540951376573719625078669529925827748063994294609117059871649601279120576130138014134315031101352666565580320411023366682329281274329092842576587631539253014748932985987538430321079473016227990141545091417088480401307724201492878974326863760400370283660190343148358149461917032449347221119711129700497231010770954964231598191890672571366864019239171113262587618330736582111280141839683958339081252908579635832427929758303772797450939249594079471783230568305452380036071455333412877617091755511690910666811232475047988898107656614643821176569883773459224201972493255100431124126719950237045745112825512081226824706169531860192650899972854400238395525409410161832999587952399286347299637309332903311182955787210783844091921736040741432261888891007833959655268071292734628850327892006457561261308211943319984112842032821544573385616109149924645780631401193064939387592177663608289336363923388883907621579471182971181383582374603087894598997239604147840559659568373351731499436861193071738197184517245797535821382658138875443018023559184370250153812283068953131151906431040992850674232483838618380815037566671577494399686051585118484918872090082335395872057159385108467641306242737033559443230719072522779970531722030921704684295125872601004490417102229510369284477469247053200101157715554418184685633665309588926054372240162834652104225310265493760620181934911604130031202780896654611466133555069221373863774033235523394552770411909485753139527424917787231740625208955714309017601179043647970985497235213203726277609549896880456183688001406571913536533665238806963264400469451103981026666500887195463950760183568402176370422147474962621044318126089810479678414788167046672582803061319756029122432231821614315293525756675348977040186337636524137420661073385477626295093682287228453716920623963839963865964722231633609618440780387850434311673824082258889267388629693408475293700213321993713819883340863343111944616426094685897608387441215275164575478515702404471902181794346296437318559552400628022376191514672367558868727550065869231105019029490282440426029405939348969800490353463907609917239807216695084154828371955854879468289512244262543921222555724950283861103694308811749036699790573867082280855066397561030893670949297634150853004000164535031380543082272314393610935568642913137575141017670955862594703319152081642794789402122814557366665357953028535114939561677340820728215198811669889350332356214581916969960536300786549591259812636833123794257402486438278092463017654778959118218257917905082074601498340977288335488595505575547663733667000475784962542382875091858691659071973665017521271377005816412421622141277914083106717169213221201464630801413791917091672752152332919289064638642562410176567036582107063915540764948748578526252444430158812637619939930319834558669263557727885550418480619624991256831464108244483348742812755790537669738222598073964320045483600232389994122237776824699730714360495250050829991887774350652729081454416228305030678680185323004532007775319633771654120713579761576432493519491339254382345510393519310043748652132485890262682480630961554336189432157422020676248825136375861936794843388361997782144543549405641020082167565179443842268704749501531015591353321552840863457005034442374230622274285676991028740382902348955763205060216469566306889764920302894872024688316486183396060624713198205284689754435850072260218706948541803611081201584999637652399716395884714533305432954025613890097053056872700705732237022741816964010830719333001383993097537832879165564992192683984176554697641162098437624640797935349938382343042106039844118643262510831754048131604847682973826884519230088533433370643771904725723659689842601698793052369935832882790581116126341490962549471757299142223762211436281506166688861625021092337998487058629674121219150617194451149040803715897273531574111441293185798942543551742179448547607785533651164182705873528262811472954266505595008234194040109169326141415377467267468331195176060552004215119155680910250209499797120485455207804542464449302338804744504839336236494177843759098793957084256279168905797023792275710045494106898221786984848429406082295195307509839562037809614533895816045731146716923664467158008016814728970715293951028251333890262055368154323393373968011088397577854436440530588364959737219656278017211104274542047758699442552877198616904417650835106408453502783789467846744011162198413591173661699033093245717780108621799932625851197662169957691193329698224105127618518753275557128361732086929803633295538002698112530883073505047393258511913197096198136699563739493069702266076644454047844312583410853065078416977527127548658139668345866483505508842516996048295605572998178767598489906546192563176840536112044887941067346433977904679835775887662303706879155919703541067715708565516830757128843900686130535122721011738140890628521556541984729397737361726530048107955363118116064710038709694892808759864194757849579620262754304659223238783847133297628670781383940821679801247607999298279043417113769419108261736382648685740273893947504062980414363817182721346618404066894135110978440824496002218807396389325502367147295362640095570653946070327499967825711445098302264498991013282422744421792709576958356516551922513552394194830761546512403008369481429795830901089006680231099974500309225944702361788080121599664561728572601907776408372467283168767734711114940945833720386099443741284230524376949939769581231943640130992639648961694339014176221338071964465463779597676908101252031394923849043922297627281304147658692334960049244899884236882979020110070669928296499609431377274878374141213457750018759830682742940736931743390202951962603538874108692143994387908973939949828367362656894395955653276737090975271645336861715160250973726677771277092370419299430563401765597968282591333131933184623237123018226160638353174396530853716299404426345299121382577495702849002807382462385828761940915534377209108990494033347726956540525103827950505223315189049500245370970169660230709725170715661317951770475935030623916870908036620311688482914425762376199383937140116733655371157533544002581706614262613237046220622535495930892166584422977583768115713115259299050759039324098897093420899774983473626118853011449881501679286933597546189987321185113774689441173272303712830073419668969376106129067856985347032033507300853892195180324491633454373684831469284315370273166876552809986338431998693759720328062406442795749336051550492934569273856853098130634941713702993257617111656344308726008133580448063441439600742123029108919231145480155744766541410700635082458990216734037375115127781906969443991991396008797111145268054314979032004206195815959423379781062555150769081453987438452093405656849481244671425266234862292142722341479001083351163853004873493279109123516956103996127993506145308819153802763769181647793199514060079787887493830450240790157321197971587903952617511735962526746222434220087814320675471442623153582106959515602400525082215778340782236266874291643334078436712794735950481905440536136400346689596043670139888674869048742010264943810058139065529198550099513587673471431734799515337101416456434616642509560846448257065513396987273819541839559181351506481162494010194806199702208552576532110375555412460453805152621407590610953121852770017811621781945384098500210850961449377323685070028829773889740606503953771186997403536427961723765713182195029694830675072728496849242665168253888844923841331073463898021758781003383263139203322601619702077551409225937794936227900161449884387138411962824023732411930310641462945083324064610254876952998110081618314408271123543186904035232050168060442184316083038089117146388167695291622593072258142622215469979887464711257762660501053769371340578095067399902961963819417251905610692375713672294403673405034269096329539070673441851372222459778279020612753252741432768324530048810918267144418008467101855265885438727814761925702751051893066596443439214999756202864666736100238725246174717901514384728993804961429316157058679086255222494969592649729409033238355058796740154222999328509829280007217020973748945167305497332897563627005892145389557933782630721344857435547991587192094014350731358194007096972674781888500935296055381701058763105865246217106784373453372532068274824417415824478441074490703957030213925647736454098535809554701971057023874881282227370647059642132314044972275285464435815846661203254347591832039703074032726485583109106831168283057488278126023774276735142684535728776466966604408748097748658550428648557152981439199543425064463070791000040749453635123483031583839692685276243967176441449555887235194606942416459177591283821937852398836259723640547174304311143615733699964515053226389088037969825933269011963375531449238037196716575178844608685875056399259707080795372169072186422148403178181872156679807636429064856903664781132391586048406591193700927823316949948452446344622017472412538514518178016100336614312685376414469325287271632180838903927250297665872954749321761573904709064528220473904449413738606822602367065382447345535881154355600215506877778985280985501082793391416968378524011784406933188017849380924730356680624891263515239698321376572700452833381916327636654789212190249420065902943854043811334685240588229291943802537501868154824549017805297510836513745955591739124901412617365875669678674410678741823178173450217742935944508703598536614678289466157793797548466440485800994856110609574035321801109510458041712358966221036216773719173954322840472934732821650090977307810409670030846567271035324376651055097012526732545330517092199735511631417503981851248773981514737952427341559830847872058504988296123513402981888217503495914158819467214268580103312026956046002838910733270901085707143245857249757275527132037096450501363977125736433362532311178094904099395599397486239643354996696229444792782496951007100938832302600039526887959071519348148225853849225135646788703924027963901574490200961039755278713180184200234813808194917111244180809687348781024825154176755879795897937335244705554978261807431180990161126934470851401782193892086197831830387774459477848708738539614267796561745008713247327457211714881216763033732325009094464024467426510066063677648994753880902782370546390714367989954659717794290553419964302613203772311180902680674327383225346766186960915832342822198367552350329348214423148122676632888083021573904769339050235453790140954031441763359460585891678807740320213895315490699722287808378170177264369528281455583615535275548409148146179052175695983611290402487425956570688658576752174988113688229901175401226630291172333499644171501593220191363297863958142128616750542640617880945988454506597969723886817186234770297951418586110394384546009262383991905549658324896150013965684939169713887986184312569931565725677187417740188495776308054488185171693597204042947192073432696699831961427791669219571562107783028642635545336969562278003651616407870020866693188992886941111963919783495654463986874244899556511353932382725213776163746716465402211301749600886893002775614440012955985958357569713974140098181726644908213482105666290008575718880897208642191035217809762497068626159217331495265413811626079249897090270261305336528261702122656742880967986274875348725353667052989208648491494734111445044800680394606539782507957076434541307973218064540685471593842308885167316002737373688309310066755632636720206197446940092515345453617388943339343491591119096310954209565938449238573974549043000973374092811414743813211273337655024308361670617421821093471421564394198194968021716237506868052192212930069162120828454865798539415625370733037376719368784778251753276359486012779665864099248675998344095593517587602133395252558779139085125175002396279604081342503356970140571714169440927279770267023262092997499089550628537015210634128250576405241328645123368818806999399235572634735771362628494574194338201178426411311782166901660449547506112232835363900843533653066780740811297881875535952764722208229267261219463946473578311007069011408078437840413773585121596020852311960964351159621598782865557365183221296875054934929343915202138799739510276173187304292524303572285146219949070634494265555847157093357559582672453237760305117833592469431939891660226461765961261950974185033326302982232627191799502114059453617954688952635531314870613490049511434400510115519763860242104436568250647221906004930322392019351898361148608839836022899606119625438359835498491121409026554110719972290546885287121255315648872073482671386268302192773859238042772029603537911367910258935849562909805508050882855422192223671729979589743987271853067911674531830484877815522531607068262198933877504768600235040438977977136799129604874305762046499835287904445910028801151948172833322916289155703848939697505645159866802845017181440548876512129301968567518472146242821998027711861387305853769177280438982420737900801028864073277138997956287080403421660901295433264816754143346301160253263744394636225901851490453796065312500306457541746910020586521523904536808454926427388005975543693194968913452240806537816492230270984104190801558710113383324896944810212704196370769027265535637150689179778907715698138738166824748887062500752154016287145245990924978797449984557425214484193929724287543226672129881323299192278481514680889858964446101335865452511241829782854319188150125483929007821077001583338909611913917327288539020064933623019734337439743417696971600258757752244130183504693543736938346151087924886380120923750853856278749230861714843741542691743296518393064672611498698648396902797158822073176125525780815905244516863715174757276899834878193178614329004459789924727798704088800009795857850049735095573320670019232070707814230900870922941853128634914016617609092313335261003205910525215246822125139297989658959539196166766708062546867006342801894535622617844937709323543511913635224745212115715687576756222485638191131496614345527196948596618081227310683216502241331937519310978240046886866362540502554110612797455936742158012181272878031961798739161055491039007624585188020857283566805536653455516719471235979972625660780454716135464972994885633555633414529934577417707852062392123778926172125993246505026121253637364351290816261581083262872698245369024104307208604223266396749278203955686202861847313976886304953507543319130329401823179859391017938457042366311204347635447250751627784125613660595322636012954583053068806420683162773398281762647485265226767400225303574599670880819928625336066926451515237520828390405524957108360366561200895276360329535511851199951356268216361697366340253616615919737617704153378466474959717333885540593054583574007103984508923717195919358892299261247189182163628073356921408398358587755201215085723232414341137122344840702303047049556935477102367855412877974206686407492375521351914929249180689353344525283783161404321796703433586623689581071525203902484792298697717461840088629014867442025267367702308893300397042176452731405657531140938595188368717255911203234912713138507712995074079796561991040818543797584655231819523715325591132861901343626946708724430010926990710185906293945586363227541125155251143412415179279060161009769365240149746944791134739385448393659633017372152556172159385692261115429944708587534512280113516633549327639625999322734939666563650159279062301194410547724231148715518868239256617833906157042120157624975494778536062421866310340577396786884307428621877831869784073069489814370189721120095506119015802021722347664921169170071313963092340241139423870881245620664561090157991101499753364620083230263787374677889550600343892851971420400981478976608823587997919323249025969007705794160301040533173777597538778818978042794234199784808968494640005242734392654528202825428094047470363028156131313992991371699744665361286124049878544074502704097624563555293381300020970111080041174146755246798689690143235679247185319430010070070834761894934545515436858868502825873604285014152027528058230362208817700496764395457473825499294423817659915332511700057570356774376213274947023053915141153762445384225961598422329408394229760548195646017391384252123962789658398508099339922354515612884817317236822333594349791047762950634832267721948746354422911379968627917852655047069449556203209272335098774070483774147321776276131260657879481596087964566388431048671882944353057171958272923581271483291568789321204718098491471846858913941114635407183026433057853159321799070705943710205787875839796241582631724070463512675555065344952889916220433093903351382562246753128951788200444393096988817559229524693037726523179176306569123363114175907552681013496118673458548613046069446038602285801845202160503125820134326173070572585122809275644996888802995158823399452152243478511939650121779982468708604182045634535938444049437843069439091303712550294296183187454884937821077311674258868922382750486764608826562873924572674574569364033878780714321854473799564750396786214384868623194780160239109476715430532860244195419718839022625231386899502746969341731617330155420432384568673691443829478573805147959957802038178135563499046358771082560483313318850375905253041746430960519144220179974227799482540547698412483126227165049163256660558013077951484728396919228513916199185518306295104824070777928504336836157144687392390942229331263177345297715307883473695757199640210515061274069115799167723654524902265730384698598824833341577474225229797779307130417188829625665200871582875397186256000224906311499484251022120447423964295951590138689427140790647729417647546121981809302624533497468928765695302893057821581055072227045556569719905833381878816855057225145851405280101480182067170948089674409720514045636148035222699974035078531392657658270702782196609501310925701595934009652155283152495683692892841974900089836554783024207893683770750469256184879930755153711334660167482866511671463817311363595512191817538223590492709752856588386056313641646393577844668730660103129368265510849239362258203556425809492370125582394418169362506997336240140077606929152905307827653232088340303535935028912374481361469681694098172947056436720679127955710147043779525181603302989023084992763359256019276825007572536120907302630577561740972948640576597636453295128752284106941580472611889156089579333651493382789076960053384484080951697767147310437584300673980246564613002413851112641445093594190616299492738920916215996267501067434779585734011534334977532693725309316828488621219641234933414736591304283259687227663087650683467115095014203828073005358030188367465153709028775711750383653453935132288178036941328957174031978148240275163361714425591691569659796317136449770619750706828410281249189693169905029071396202160750688884929101415067486293749684005230704493565964489372731222533759834969239529271306159426046614117520722364111944418121016809705543178811668976737439750452224001848750546606846468152610687068258948646955346620479884443016232864365917417793686859466519611272673749787749971642844201170022101851022525917763942691911860743100612099071341343329222920546705519421080031376432761062273794126606961017300917441662799518965910977114882537437334900137133569214190331225090181297809845024875855363449959821981414992278138455121386775171850147008280506186969960723375247047250624330321814690436913210666937745266228991760111061889445645084946870372026918488306491354452568685050760114681408909223364804033590238793735160778705523370888571658857554106195038139813056275472333269530054462305492981690969442862885671544274808364160944455315345376931914845645446423775687341263864024917471827253865569264498776554774838231719193812283691737686875121976845431544761599642241228691345969601923493896396213979212338610717096045531503357414059463421248860275918568065198831679725861965761094866350064191974696257463831933820284948018963415125688693625575244739033249680003035426466395531476765238551951749106477546430613284019104560600712598176659733415227116579388617317296361791418659098974955743226461326832951306714597601364580810001740665900858546785627168204083353376552913324648857408947262389739003545428012211770335298306301661649054994328940233331153086834401334548288601763014505186218016666794396813559535269408956746352681456272923237736121323524992269384657494712098406019143014326141543989687667339647994136284565146853467678659877202253930602108369608086670872015088463646549804063030643964909896214954196228970916179860156890951279186421225209244328058009258668895261129149218590174169107828947003484087970086224976602671804473050874210047958408558999278349110539150998007094313381620060849165669578688438163332763689076789505355742942144222147735424247232875651294066735735563771688721746410047370005990443664499604655220575231472613699057206916671544908686111207867209870334573618892847258116604475782807709797216575405567290062423411691526348730935776399948140864307564516795462866717873877197691542871430124874321512888144215315613666359347838027579200641921856680725532830869169088479798621278841894972452683440347052563927882988170668749067860416414309314157698120722329910334132369920329681667238528106896999343319792414556556650720110693210560711061990791612156330496376184882666959161620288804541370638367983236580251063050008205674093397304742106413951766175322608161706172662354262826629258891682846409461755944428345700716284655318518562897134427052492777914609255618315186724876766633898972220441235599558846699610771085926507520459568191413111121425452873465049824268573368809294252571297721776788570148278231532221833247637280365131781591325290033459161582868244136793996185756317615275537069754440904307179903296977864463836728728517634003041499847336671447103248103089705092191090682372873759101583759405079593011116201707152158016355087653989182686499496829577961466152039100108666526727596462581284990592696995282239450745097731297979590068829699741040811329382744813807152313948513162123862150035428436516447041383184816309928207305296238774737807926050202008224204684878327644369718266630230748601943078669065515414755382909018305564005770312931619564295746578394797656911490763259903443564159314654345123424449841968639894626293097940925049656198770595747977137838824896918117435695587243996612050115982339053748972212628666456346905854731362938867792744591973767072187317894439239135158751612996178008860414367854839807998648523186710918441866662403682091249132380264341300927014410018697884436226943924878338055535294603085855896554372358518463803545246408320619988551767926023176861426647511758843514372361052932187240966452363256693125030235451581152367045252621100032969429579836739041682721306940144834839278113147746756493165282665474865753561397439986889573318012223313426045009799436857515417630692279508165728851368685929115751511528379151516426195180503992120105368706596414008993614403733119547466472180768920039726253613687303580648007741472621646610132772480284965314366865497241364721141009802707351827139407699888991424450700233196037856682344941916095945986453500252665511002778412866323147902845559057233137534868316710172968177711342732875945683673558894001481021771035945221792284513460053561906200682150781787512661680244956316192371280696111376828250791749209258781806942013975700939915569962042987043067508988496175842459776104966034782069209290958250931663377305667067367218257888315854871591986391349855070532597922045438015972712619068928964393824566085314339223431980597728650521100299412059998950293285068849891067363923846015946987489634057364061286606949399427662388373287923069167323348408167946396558152110626409528336970276036870349644035638685400772647057179205199142817338750161246485724253807119105700663771236085919936133998296325191767075838231211938910558885176459872809079174964648423202568366406898537526640407096178537082475308240200478896243360059750720312165952293584102940236227747703784191053407797647702100242707093942168480674575189449498439508880731459182161274005204657683417324622320662260713447791705820446221320216841882418710954790003726511914307740387052853476143712864674901538872690281327619778461880240504454619557740991886899653300578395936469976434522427479099080492723891085670623525067989549554398378326269639485749390355868796515448240759902383008188464463957129092608825985152193644559992040466739223988599608943606180656613137163838194718604613154171711428603062310208225244529896174311511849711638931801610556924858768569459717917852980570997551589921309641412204885124418993624739120829248016893352840695233257586208059707126845860374661872528562253123526218086521349960122222790167092150292845303173754063293709012840191588599630959918660963360019493980664480562535390712301170513204862338851289688837158591899918880752945088782875425064313179994104443705292514881984895386382696979407031930103471667925057389786952304227255327294985277750973940749119666015008366881905548571936660764552647847775405804038241406858552809377012971412507255702885061103227811181358567597254806544309973477354920479448415231266953824543990965367209569217934538816748502020867743468110112465261445524149151714879869821403347322691664525892165108836863935520228401128141251464437061238179655049016418779308541277907454394605966783176413008654891060176333129211593055456073612561685170690963146409636468920473713047538486273478579842689718438471481486059553157837816538006570323743588847600961254670565652931855605767782694827368981196339288680233671757291478901106919729234714230246662443794056742484466618919641502691012917148390646331437482539570938901924005657871890496134497252025045982786244457023341126830858724434964057913926479342015839860668883096263910532349014880510779175540101384588328564711518276955725518185072453614431559261216901032628280056928637174479738525748806425764267309123680400117987531340340882838077154752599450361312418264097955071542648704339974941629561084098474918189553912742194132911292068344408185587025058724561004934203015435092192605046782166008546549835356638019178737103792849389488448572825270397445500763806056634138960844954092568741855097224088827726959081090149298477494864004766302022693914571595230579693872733942807209581291969599942622855702632314918259215288525939826330872679613393789677322644052393565120191469012816460133009870816112695777659106084650609128294876824558075116011355190128682982745591320240243684779113861077930928954177779461668766948342344290907698351575441880308298496679735020312012118189867676434303678058962726587115846121873185944105768346963402678364399802039415707348735483268907798932570655732837963219404553278274390013771036609162869758739383229192405817759027060137218738870683436286743708431032895538852884153408392332025624186775960446680803822351733670711167506740556016341872327141095552215384286188426377834338491694248557483214519194749403964678123635245094462592037875275727355114002421121387155094897169663917736928793151442910390487570094359457011389752194520704398094902891349864472174867780295889682063878232796037472466389420917516817844946965816641179990514128282177643904515499683074527774175715362121899174179347519068163389522890156452278946884377307426032073896770780836922587070139468699890197579011852028653209795732908557463757631854405456908925852234050302325863763823674128521878820649578808763002087967400605437082156334046803640414435482094798238211372603328151428941579919610858290113065560346284898227329228553344512547069073788192366246808932328767020744059268070440625630107717702179744825444230405421073163788287594938655167693429793020088108561409235280621490160811959275568883244176030870655178917702881579136770836021309924244010359507171028648454071327966839351039171432613754463538728339712061131173359717460501294654285134077388004054019720132007029837962443717984023573387961413904013379794697395981124435289396302047837944146159775316961219258661037135308806474292593200439711179736184551364340899725074835362194539404499679920012378091810537092118124368144511684620204816642603212542975213510803974569261770091888835676929196685197120688964761374445044272992434243608104928791707460826187538716301474928513888774934601639906453402221975529422041421322730930889823960968644299173286422909734191543695835424821718011392754726935772099765402730141791172102178671721071720748237960911715850393238827725371554997322964896578901297399610328682833121015424791495571830113790172895915310425607260206792472696356187427013360999636509674678773700901519668578866048535081362356347482173491098006966162094124543826068753647781847356673759822497907522110577247387890120688019596415894699311438984923097771972506173856230502677916759206770156225043378412587098788230237396725797671923617758108103624271029168771131047422131187275525085945890712958449776767354330804233045674773868882537642211055847721862851420646529910924634727770411278728843267731429392281866464120331405264976899324399372099592774859315763926618160525124666419702176678648502729668476735466934462751426722552548547619469034999463121879794572209138356320837045352350943189337363546889567601308813587436569643356218033963006999284614656873047413975620312734628809054480082196378668465866083918332362419938396879422906688688570200073288573792874784982830493179406554327956517023028302688014322927836564995436372259448470287494523798830800432126766319930090704276113261067494826120211671832186984615567631621224042349306623480278440595359677085582595854449682129871351863645306669664735788228449264289438516397920935573232311863955037478142297190146264439919138098275406280893573832113895433555643132346172942675567317491530737755318067934161299634421652909427714137002435256476700543122915344936667232857089295546949970223973627655345487265777533315857305489347689506511374678003186510205376870526836914878389607050426642520719417225814651376624441624101716954038849614800049965557612467858746308542256199544886112744704237600251280099530499255396835538169745771197959003298995473893021479569336167107894029240421386504290039006923284435660885117728182973435092731103212017429186703265490695435289373647164310055466762889991055451153027006437023017195465449318201894939028923555539650318363857935066803835655924138179069149192850239452232092138041862309792992549186470609592188174519630094561914984877736908801717018306752527399937021044336860468555836440282871769132422783023722201921661111637274006988444427084383750490580545550525443003502068818579968974557380647628453968975648501066536407434456686236988158245738034475844730345937040703863386106130211538503223667070871488798515501072449937474476258312164070196854430563615838877278152175248740889704888524849071922672136078886920639066172830347085757586349901607981331068047711967026939904216244431588600319386572659904260283138214843508183300675380774761017104206252181483861344210509257480211504691359289645818250006398803766972716460583164691924684244982411762980672638579912092152994784778112652497373293308264632926545763040378624872594333650882772126501165328705482562576499883087932598563013046127102138585770312231607411693187909254067956655208753539786256040686707630689393460253493107077218289533329828875229929485561745836400016318034365218690142121009422820649290571610694715218199204599899554557554098423973415904241080506804756734201600499421081965703415036242404016563910810733991718989221823203619768908797381269359892873132829591564160750680984027508990412246312366305125675723857898853468999354164227094637113362864085056228040110426914768854966198989437011627709758143690368016769504482930643766363707589372395893930610666718965416870194487961984983167194761834297058388318604012405948128787448006561139873500294886363552689742394337273877781023775480787854487464691079973096048692722465179994338574196099211465360949496290597341478193076435170986323591156965271950934070313278198772293134001602968978830711298297562637048251609040549676756939728422489926628094718868969826053668445712151848563250676461425930984489696856441118530026009216861381637763436289238673998208369878560780402907433152226542231649324707264976660464133320492578017590338570110048015344833554089469695986007944229122784690114435280524014537611429364735046560504525137306812712213809574299451665327491489580594034039167217076940724521270637738156538387965312303627063951490842525450238411239734276179471827024494387336432912607867882074752751090422774179143850984723787675176387169265587541937842292055610904801184978783810493395959858762293822743171397915693339643438285363829005297204677474041173352220688165119826529536868271204994678178939567394201991519879027067442467122550340101232675251477701735832278481934201293057044320969200769258754980375520366516090620926729944551367095281799394966682450870365243504872348300272430333219630765841554395493842713553202101785959677826199672812906899295199787358364721325962356023143641648730898988355991221244658380667747875116099268860883446743686932829399854981255938107013669787116516705519756588640948441262529849229242353030850417812986089509655592977862938687458205066196098378481777086911820728487427091031257536219768233586703720048307889247592338957973606489596544430391872259748873508878834867098307954352697164473867824933822247299372096777036502705626231764975722389721741263244188741896823881213393781285070815204054687555101752837423319898043318980566451058928570792699189755042266593335491305646072399196336742830189259470312586735784941128733655262726052350470223323318438311061354510792923832349221895240860709948386223743409124584463520635300583368210375713483911478033814200896910194875160949472813812349605197794959586863232842416873693129867965706384634129213610826752978493335576316256344336161788805133451202619632011403120473489127847311257410059528206320637378029321428317677108372903837535721359490364553665683436731620758526552542768417417201127533181807300351613511318824290988521115826739406494695883077791767481981997039773781754293965458458378333774533295758485895582785787842493485156086904543691504943835694090096545095904878420007732855185757878986248780690993361015922029595318202059772351808148346092663071810127806128183052542663871587320645593724040952912860687120516151918982145154167205812447703902153914191768920131812279463927318323548279507612127023897145755424196935662704574434215682038039069143327704305834284119306345184595193302005618127356801720820994780396656019865520218549238868218457082517940881444136567071945686554178722361899329213458314654739525224998058096181551642509833736953172868829115541815662634000427674563836181627321185965840593215161376015099993767149647570872761373899272731088693506351364012523274500862518709630935691636853541010346373219980775090072531043864842391788855143800642524739441558910466745251108243835052449701569159161386770506299254359405910038597512619663352144484098752326944315436164690162303411831038447289188310671685843909675893900507318639060417542863574155924103182522725494320145001543891911293307582857718982420688407155893536072777097296399633111465936302222152879934733724537892243509835835219320095827342497784372657600715161139929622172468363037360494002408783515412105343979222151700154704379123235954878687371612795184607256770771576837511352705847156302915500467601238588448260563919583249000490232198987757453856715380364924781508179095445617743982896764649272831687677454490139729551468720296420371516513701253826221627088023436114002766325232197479593010014392204785755290710787086961404408362881655599826011915310210153406404171714316242614418582397880495080287283885445949351465408139847297465727719058800857849633704351750920378943088622731067218809935952942135333998446811660740223046022741418845484956096072757788977816839634004057232749334189793962749910597426821863103985592727490172465596407956089938176378645298313720257951008923445680509313820327001993572219343217115479046341113877032251866123199462567845319708993628662310593182551091763368140144891495892101286743067917254625971936659120780707192142271012574133406380146924803597974991800153674564182773798001353942445184203936746764317290394568716883361512206385813494564268883945107779798671220376259359294480119714900194654925385407330343957406496497080044845957007087968715686864916469684024890916541158917019625900792558625816673106166146768641867426502068300340255156815022572099659887037214811158878236597592627879412745689356896829957979571244624832788774342197857413559997849814356933461811968634751643626129975657480071916197180403439501904320469536081456854312738396917966361174602175919275487357993378678254616242084522821804621144651617987592648386769106494941633983686387787182064040428306418687831891055782125451157426766006615488500873076503025493463213071758172124125215371968807877692114421698242741481265545931194194296542636267974612503844011920292110973123598979432029615776480597481304182663143601421268262505238612772789006439548428027499116923994117356965622596876751734981157982849057555977314003442574875581882495923828872487118853543831828062643211483624234990643366028358018817146231276091708318470448962779656043531933645097065285744230399014914255363543816293836219643107330935228271944110655352130148769609121493770098208699424320420891994217938373218949195742030171090367435777539705862154558587498463360798502430889317822565933248399456849226734404418904255261708648167782183125961029262284965336388988797157945092909799031900360084533678133831667926922339507187756538009834764006084054631602173488555662881594582525690250450350042261807945581615826106675720085278078016957775173072517957382107008941876326928764971675187816506754081568002925049499130961089761906722377660521164463085309357991820832892235108748355477931288131554282631556162954543645674222247581621496345300807830793764171764976233656815562321021748880248081154058956204989579708244161183979208876491304164979770264806004611133992993475668397411447810951155680673651065129665732923262114399138602674171225440705553995885476612722416938844761619773946971242799389418411028561116678303742197243056211815895937380105305649946475599259933221594928550108538221991220549725194200218814307433942493966280305125392691598048973397766678476126722590185347830741348310410037786630998766497473850630560279506107252326599884115380978246458576981786828104328167861434614108304277909313767725775741950246560974206773840696644152557283028102902223807906102293557397942476138263037917583113836267378686054094061462104357221767730627211954310250080290060924279855979068305678915169776561033984764881338697488770482149617167073798243809882683480496476673741662577606231921354264842727993063393323121452175837917437225294328400918081832076195174961502480833127308204188662778279799583972995890238849600816497920270839173267880564570708805037405569339288233160828652875352212692012973476959970965001359132223498136160556306444604309600046849960692082391640166126869826974469648965448055638942248984712512953267335060541611878513290056090692564407314013785927584559985823785898708978577264969894111855981666283863317213882523383569866869327545535608934267834333859282158193859702581164215058317068258604503331151815717521401650878388602633377471627138759999712500747273219740720436705378764500587049654351665611537379360711413152305042938427366805724879761603302725573593440688015440495935043379523676695374308448157368088289134794200646539302668549194111745102755430680816967974936324806632556242300123358528205081699433535518662967067289879523360473630251492593993405884562483321602940560703816790257519463062236275472225423284024218752587315575422485697487863849815049308116675916851303535326217710672814234058281991588968955457349752595963813883921836985451009230938459517249077418867160975010589478021515143986975427950832427187481777711536908206809109553771413768799960940816265793988888489369350571875729293587079037499754250332720771124201386124118684520804304878394681289332861051396992386326249266900048628561602787359164712246638679944393731963623119967714546169673967128279570095154603324525084394557172448722696212046055525262142955433713738568316810385988976470376490632804305422492190408171458252066072102835976672151224136380543177938952287975317880157025525373280618318675698593991155183514157893181950699796744962830259022664703026918474842406039494893242250755170732325366654926347716350680687233418723523254630142004374031907005006940479786654529600146307363358570534406304745296212326401049637188193777385539003102498272859267380963313544593887074624049609831229758502293941426608780130206595113613303049519068862919624058063981165123564970939844019257267379000098438514076258870283269087829103406611265594683841344627613139173007998375538731909024077657792517596796666357991962768451613277530372430242428029589420673359649387414309098372198645130244886208404633771818821524310207429666592452699907963540229646519206535154831670798123568363537664035317149914139944957843562416762816675969360218696912009204022144915407495668447966773422513866650005100490199278237686710065743199312816737244360592304775090817801461653570850401396997750650381860842253226460584309195477084149635861759040413326966714212810772949585850953492901382803897279188954240949236665861649060429117817633782139281295046018710524753688486546273096110796478718348442316876980542559353359295926395834395672858281909886325877761961134511387357763102842186175257886459039135157960908814344492453245974241083527088386586573662992736592366374215977763981768151575007703790552667205318710232520178825770528166117019210773403282853949171907831334326986161109586079537816773570856559912893164178438542810364620545180153224852666711257598740217007779675945369911202064115648677739875284637339871117342145682726062918119278142947964890867224172390173408204410993043708752097423764806808258748995124966961879301802505250769498765426132821039540034689891857333639165175120949714988711598819261329787811423336602742515562460576928515651267363939747913763270076593221724218625987866910230633708255200105072441318518685729711191442256931063479918558748241951022819013577664589144022156921173772428819729526254187967628876487372655604697253721014835002125094860882395405563452399424628244271435413608770504098108144336842757520961594626425235136411645068706820589042834700047331076163034998475819861045640138382873904680505169349374376501498056835295204538241324708636189948703178303994713261390857809907754685248404605320126365103912167836948091437609236963219497668444630952214305610139410909857832692240408040426037746004691619846016839011025904786007602225524839732616585283840507446389710833321803932472754028483260615838591750452641852811987590172166684142544077574469549918242172998821854185895610334318949410516177297863821635721720835426305360238824224496985772149468588844817226998273910739929524644979125028139853585300393494384154264093612413914603656666732848474009068302629170868654692147403289059076231371507772341549936334835301972785089423117597113043712699700370801838941693679105686486356390599002048039110571158045000109416884884704159432311633844314428043271547108684452378231380176821739807358802013494108303842222387584601447258756755393268374220267950590483040495824181982244821366705242537785987309719700525563089716448463095993356998180132801741842185136704294810331674656690696782684020115618482396288316427648575021003667911838304544408028386053168851388537045792548882847436853376414062716668317581133427729765557852953217517242980096396850103713876155373701951977454868238950201829047893240602386860332331275176122109810386170006652918289583813276660613248005306508315370359581668390218430238099051897420545089134990881042283205871193613644580006054053396077312792116622915790718941686449407381713807657241868767243618650263109719651204418405205162284560521632568123817263635029315844539613323177225898414248576766804642421230948278712616319029741141634278246540438845858797945192410205115804546435095012726378671307978375664782208884407635444429367425860841416836656938066866070958165830306734117956469984969492443910879884680239988480612337233546323515186256445358431100716984881406639924647412010024844480028086767830041527416999486165045001044852022667783963234301441549562216717122062181099245147022946326455493982961642121835274827670548225180860252826534873645158435881943711101598750886489962290942052303547094433625425888983006837234213194673150934955037980686422276522518749927588084821855434572496992566544593952438069863571687618623021230430626082797933029728334746411597851849794272941137367832281370682936118315419395275478204925759643278725855888633792740066488714510438680280512289009554551084648315463859969493458685239920738171259876803303168733911246917886308737321827330965582492173513564157427822606380464839483265231928763189602295389047970457041721779707657729675789268866841819504688868332564258168621974708355247250081994843877374446025541473645760022037051464537036279731973669200881120436598823320482256861582412906217758592915193660871864649439671917818352335772296705832383314820656268793259972842226506802847504954223318671632257767175308097752293062625118172244871670254246731068359824909231902223626567355291643612169001671711332329893573822981535365577980673653921680948911466751427945452569074154883988515521541118962501001869966566191332368107992990618083025312494315673069403491201264068606694553824480603125490668293002249211165025671204351401602115055413167643279685724414538425571131537769141885957087626960993302333664182971257141943687180691878574947403493905707508033356784410462696736731795394934323797375497049059078055849838009768750731208622932092660778614062172456733046575411423950113746462051187732100075475681652357690309417712887672086413905847016592363188865770046109881024883235653046824270205834555809276363939689913254230026735167405339320330534586483255145133705746369245129732056129756173150230412869190738163319412287241683352862630260976218962219859658174816810969663477492500801192936661492714634597710757072154957656345415931647787210995439035744995963836537370116315541832665997639211084030301019784987200246027512845023611351070849811249043504735711745416671649311057225749733972434340521453405596501894156093798784494500850317376397812645046031682018323968179264523878339069823847681148591367929830634266002252550940161561639171738004893995407001248667549485505381257599956309720713170615299735472500320454165424325913607299555124938903654859573801791324381143091309931658686293904619631704391964116143524049195450019990490638120123407840305534791450113478329896848168483972965398638565438930006773477126968692213100982124972345784715379751385443760723910711672543089107399160214207600200333238818983936326096169998818716544157454173646583562533104062564790392893842226946228715531136832172064858736585966906703213894125198464295609318304649806995067484000420538516518076442377186478125865107419015579331660420348952015839154118515272483231939713116199435204997404482883130049340586542410787189786037882595731534714444839804461579002854954786214164040489671410185152133748994312871024492867634312463851420931517051538244572003615488415829437730797051768405625641556065788905744406961967833274787380567951451022272855399543359242434768966217132719711434696963980481900339435283297984806838140020881360512787340098551836450717854919238318122662229427138011164631781643592721473059153977246266090124562290705105780723802349010799014946245378014503944013794060881689717281403430227914528934234507039380863617381398110858670991250732584942936471573389834999680865697107538510293570530219336665305979095833565677089244935782426926514489749724064278441447832526756343301151133804909296799811628859604853071375560987529745158095599118537552192155577754192593581105771307558524674348970426877564007439495831699765113320864302132688067893234860509411791029396208076856547802594993885231669053855614421872840597499785971969847478318825179343111009128598711832419790992201042981637014046745150387826656530131968856074870195618398905696398964669559614412688104810578964179261670588923360584478845316727594125794528791797430062253900871187548627317893271230640585515485476474294010768722141890218153749505952031508657780146413005576751653672524320341677623866797532456755104866413275761375509771165443490051790200859549484692041254343159724846958294106528550355433657359629990811228863092830459632743396329410007310447624530536580080784716494446757520498099801848111708389871031376655547062012565741064833773320338579679463499168075486966579372790804884220248447974893960445722337729897649275876524249306847050458055078844000695640444821107981432273062100579275437494683997424650919761096414779182617390425196599204032597317790878381832117500639403903974097245561353359808733389792486544234645938990660079693132112421853852560782628060264060955873922580770291208435887953039937929271221963011278246294702421860667279953736427166798378324444407632874133488542417766690636267848739419139296641040092179684844403029349244841571726737637089563065269216486341234842035988004243325068018309914058633647825718568058944661164358513042287010946074417335869336097850223747694473176887754391398119986603730677700286661609679704242281646816456527003969978415472405081640159681023532723914143080721653949186832465772414475998355306006243446168313135809850065158259433653323314183452923645159326338261272440833756407957171796314007369576344887586160215720760298588306727315149859306605495813959992063799200055651356507136217293808189545809451354888425324363156034280802366953275321896163136010878560188662393920309265534718814167970404826476205359620991890272840876340863206360666530352334377477123968242799959832075302481690621956256660245142809837268350442626079492613116277317494033849532054577087222021259409861913579587801706229479304058133585120294321612028123442007064008897192258107845259872931603340993757138621728276991812151720026322527276368677654200775714027581691935242867235620535154252789352932679002994921799344258148663553293390000284367657370901605481157037084986772790540107051052922426933317726634540731475675089803913494879291129041639472664221821173965201442509723473739118423009001094208698286262369088549255240955451360881390495225624185440324959117825373762286453296124320630624944484360688048531804197587867421173601621570143595142391558506684019219775703453476136933430934898747493168021210862389989102303387545306375337731071563152671380112248533448180599970422406810670249038043354235659138919783738901494576293611797577262464152851830323521047062779360328503332471210044313755626014631307063397356657341560413542311438505516832863666492897000550513985802029753498247177870454268544712595917273819319029672274274297091723183010695365400405589534741604624215243639489358775075787511136209139033817758876132613792229212542964251166543646241670684911997818294230012863418098749462329037748459523715741464114860620278056754865169727628846471309603915471061054024432925496404448188286735898905471424732354912725507411296965794162854042907882382790612597819128245556186119935567998563547735813453758151518600677434822247876425439239223585851288383950828960569395356943665798839807899791493879527917097976791817151407845035915178179682017638967177500263229730354608377865918953640006662979587001191277912672957807959803460809405889971915227765514756363058037286700666151353944435936768244433230341091863279703131963147588013635434356925108035717667527046601050391775647490236483146220359035581448842683938965842127196474433802762543649149976878174779682605295114334145272485043770027155691828057351253942147323914202310462332015527398908868038974786179753049930919070511852469771180993544816597146360164792089045653655709100678786701551537749222528331022434408762106686690210129282014763046258362005577087006070304502597057840977929115064285589163176076362825270132767400271701989958254721813884553449396437709270898197712771114546495781391193552914475318752742287602172403818195898008671769425976831628968848394966752283336632219978783546513501007642142581193784755839866164132740393031112354968012091632592229426535414637258032119445986723242286089891767292820015339475940081359598245747620066454040508034115136455557280001951539309714339430172534763936537495547606073969905578453003137712948448316496751270098104104212255730544353049692088830435955221442670364484361989272670164453507296159620050217572771052212726856930628758183312990323281121520797838587777193264088265781820716105293926272174675457572022560788663035712323230344787428575777638690941889088075703873099116404884753039638449691090650125528685273652076347459129658034031145796191190442179431310453731256401321969052257740018587989393195487586078414443454635077180296840190023617481495401498285227564722108642181589637354821501630097270979189545722353275607922324389546481668225554786042782267349312709471094996448586766312247254629670021092503809711590448297778326476218050187131470396424521614932991252865900725965833243569228678019293690597205055613009135520214502173693537584358480529192297681923674264199580721488163901992024533267617735720533919668173205311742570530359922287928569298247070381194246970590252183989710421260258561218204467482511313180959132575118132070013511332547401753191222670035849221591058571341672323744661733720670045472290816793479572083270707867325642052996171537779195302421027138807627424880240103425205945796092315721173641131420083009926469646723036112490935078000832538654109228710489293817981304785172230688909616799600801763005024182978576094032048581097544672621256057207462124410987716860801977754158100437297854206356662734577639108533143362091829584205848725446585527066492786398966948122455504951946391963035625975039277015428592676068922092628663764710467256265459323798534038860412428443590952099313926995070941870598644836346142774481223820430265987822915117793629412273992257112866929931604720738469735212338613296227840211027543328274668570824875857839613654204566692326051807431301458330716822321003528043102258221758302046925781914981136542729201314315694357953176118680232895702056321121131388876585482548094566095257999848954062331139715843420387108589344073812294401217115129269978505550690638909773125277723563493117078050415290792638805982054714268609589544903539361411437885015495779791585290546088673485324155559319931772708558357148260651235167507725605318496390131783696980898071640869586293737377812029835510124318037746137213847122043781344187457949086605809564849364184039635582659102618964337971632596735165169177990796862053926381237374196878800719376329632024391535827369440162468771517523246090206316474756713059560983463975939271638329507325377051385349037868732905916164791627247197680994625684756571953930006617221628401939023073002159233681236050171777670637874118440639391574902528120536357469565518632643769248291569431050559619844191987650180469113417336373992329010302673099479424296095181475325244873616396439676342040098448641128117171353363006270340778781851316288222681752552067270751615311983030602406662160920582332841183692851753330381466654809277380978526132701403017380070780387411583486241132086464770081848759851170129922878832277764572488261524766617576998247827316935096809815273046268591951093206162360367242521769300439584687252463141392629328434089237091247009808781243494592917962062939081729177829597417291846581770324916503813574563241591154975737144266393582396956850532084475809079529709113660834573276484296129179330378996796119735852874357111216807245774554814323075136282300983007041731874608316246721116220424091396717749070049344764431744569242477154420090622379871371941142452999687199955382804479066278285125236750930627389436182771293883701865644531960906416336942212568156210558701237503116154290229388996521711028950783741953498866607665698132458136414344296514079456332505474151526022716008010813077417657954500126750811967015287966611164023400218691999685352554028160840346203296211943274196964061220286973667746244022106222178121358875797064683549130657332001911827671410001153120566108836796958342233603340451014616587195358916821115034312106165337367373480220432308201894517824774542059138701358006768079790415499899030650401889072537502222292894699946944564396348963396428531277999927055234933580848742149446163623610267398708255137145851540135835478145587783820228575188423818910819272872178711526534261714274394422165591277785925763239825703679838219891289310253960376714901566531630134435653783115171453295691878687452340551315835143570034067948871168151961082009809973266228300275402788021669184596736228394036218651501992362239929812722486253572569031148335501554762611255877355243958948737043755274006594682744557767200721426153457406942839196057381431159295716833215438186092758669292414264885676722338060330961086408027540876609361346185577647991625521062607547338436934696459110886544505467799086981415655270488279460279189337312381499194648123999648983681914814694289176634194152655584961440643866521777572638170244403241244026216549734767410068601637500948385807106879211777080326437388334518299731004079439933830407209478622604244458660578024822050142491114254619023660881989984478513407683351935279124919505932758494037771049358581231167609172605781645699710558951573343749393565990631403626141340285329655114211427207487037181717562709629591756487915344879038332334690640843409342238461361412018669238943890056972393131220114702237808290500561879818613406334892725919067746991527382006596013983327536175739811977570162529042583465139137665807052195053046020731152351020179514689036589004418209554274751687310384886368363892669892964933828654137129154949744033380820350446911157320185623003351950583203495407232318069912944390127814325489054843084529445119006840174475346489776616411859338424224274269465460944868618465381939657966442391116643901988025056615656772640482283219440490650842097819739766332319218033528550429638076767349441477156395924524599988561768657418591856295448809202562717991117875002606667578843291083566276398102208399653602770847920931669507826293073413199065736269455330254841187956407920624955921073988630877091249018845507193961520859089464877658400882690056278373971779782624614135855523739357346352943091385737206112064521650509054343002229659421940935264850691720770059143595554495521266283756080819632591568850522020969513166295411373425818713698321039700556209529935998872399532750122238555927527942880599814416765874067119078070459584216792242757349930533164942177340325154064573952018166466128607449365774149004218095315908817011264874867133771019124188917010424797404907446129015021067176522469383812151490739893745254893683361825911182383251044165347212228583219483160699880852614798440887378306336470284372055983762972312147897539359406620352890886117415718110493076036885570658378611784205644012764234232704749924308744610342452883191171352728056322637199533553152417232257744374311815849706246732641738015388014825027345847036584928098325774133106007224150135932905173280970062182953628459391980632344558847543385032719904343458423824186421411743335422657084509566616587496657635073655613565959285522018790605518498108569460012954034407670000195476840983295267031227358513555794116728318972975748045163397741783025052851166460367196742602862717858125194667293281466843883704270103543499572713403919470670952237236312143472847898968913474796026186131267035138876270828577091122028235509042680809221337497038953935200591215227646204881422803928616826714523809087318669604497946405794880060854240005926741717340965756822281017412539197726246318072518924391861479186296221938794336837723768654031653656723338748609998587414422429487566216159009854516462729807647683427721286299990565011600240041834898320559358373452720830826339453664048713584972567612960074910688648659650466551327232444403579633049301585444793953812568931314411627077662355470849560521490403675202358020249965888599637652072199488762960290064808258634646828135237502099517514417631355076869327736838339467463785660711008248862560099474455361595050545181834130226689695476510123480781582240414951370932085898062655164712098640508928682256967232434725534113819657610650944481075024905596988824618759907124881536904886189261922851620442224301672505151492015764378480927537693014531023503246826817968443069156880545819411359335239805558765860543209035958517417311022775618784533964232906118356560805253610554594639620040185282849979329490198199106545932151267491643964690082598342394507498224255842554747365367509960712851808434078630852692765048302444592385470090929784441941304106687871627208734504276407124846165843142667039990269958505155102886585075254944157285088491179496910039192409554961660756914087248319295814174446127738521576298359146666761576622330117131333258117403951713094003106857634276415737921445121491710129345727387206861737388619670346398433230696089227973933721801078931390401057001952189697164478355421246426895443189415851503651778166238471461640037747800855989760926116459535498080890611419134292795864758221607367379455855422783943090725275536356847882591798813193362590759829148567619180729909104526801890071989144884447844813704940622149151397019361304871060510362240717220304263163257648318078866690453515613376292756070665277054892525942041785304510804995890953482448042514656856311390109313694221526215499608619437009635328959508286621008584526298325753619533844540925144112079458892687053471611047438152736787579004154595427535633126448536641144111245435415018208506134138974686274068731908235096289920648294801163378354535726708326338778345214102300033962585761336053036636945884064914221619780795631462269439882216327975948812274200756312704383135533872782193691967393423933089428694382149676012634291934350111768468901292150396406613089116416418552853077874985496554424801046011668929032135666272159789213169587080144900732176905842636359025081659519882576907312929859291247668851875862538693275842491735756326408405010382227749265099504009039947044648579592470976773364131553447645434465451841205915115903655846207902020564844508029824274718888927719437565531510209176683565773992231669424930897453616654920441868461314352420557884312594918589350386632319378435126592770049768988845279345496901145613838341223489989286695059771432133322010048036645350729309281058387170133091316908764657674592285058251455975454599424483558206412436374708344466217283868429108141701366979257514081703749379534449401556155315722323506660957804732380418077973203916404194428281744217738690826708203455327231885542704864154336259377726329974264285526985506635485225868321603970794639873508895483862588044133641622117299082314529745040083740526096618533983498894030854913887953871772110673595684496297950420645743258920604571228691143482256180932206485491347727908660313241229689010938769426430899452229536255591453148926101020121402258000052852593407034879964237144307306517310194880129064352438701874036281673609614673781589628839366420572034940015745691481813934879618342136294335045317313476098103563534974519434531463880293546144321964756670826864060034883187073169593175713506358462973458784087187357124422529579161263538175622609023269326663583165275256806710513192168359166307805806966098703971141306917582863099484714939083649675029717178796333205625440453405824386815137195182362549776850573943382547026245045174621680958457448886315660911005554221773511115434940470956369035764289579291110402652281547937449327400691038341003504911533517020959570722303817686224893364854329037022838729756456081755316082909729301189924984359330387016817801651924975821230775222230125184669752427457906717179571431815599992436834698476575615359204014588326413087766492314294521676642485759472096764185051363966625373330305753815631417367183209402645937952952058434950652781607450623518559996855592214314382979092011423110849596003813315538679733394342632002452707472198021087482215566852578987181354769116658242534000073392967735678193457844455836426050089243971592020369688148639102295370183516699796266158139135145710534864604918714173020755238155958904518846857188220651916586047520190682804116591321673960685620473176183045016630707691807456795521833940646857911894173542433742392310357354001396663916995316359012479735133445907260193172188156289554749507089515206800006810788259921501268531980785847944586690608296359781149471564549243792223745533881866090029832382622815413312075947415721179661505391950066984946817646745877996690983799803806929765762759269118242407585089787087332931153670776998052097098797475769748054023952013473329120231657288355458781600042341280201912816240192226434527961098022566861067837128273494723936943174559268651048710017070857258424258369956940063893961879108245692694026383710465971684006088032870672372703028563331353617034078375629081469607981089326261579214454491243200246594155638030859679694400511344332972086549386326757160375609583057871067106081829361353830608051288936122827029273581754318136458684611295487282045287720656635505711327741398924732876590044228358546165340886372110610615670203232068256710869488395529379849669129363288824946427202992054927388956428194208357409595792266985339731299182734659364547641446501031146388913256968613553868534389490251336464582743815396169010657565263787385142000032916387427988352323559044284812469015315015683502176459474763878131021902158978703650291937519512711820278727217574595739986347383755784342230029775861179499041344404917348896357430895262852698347392338887744493628459429389282883489382077654976570580580261552544045068921779097353730936450249857644322586894326014373354421705715960293214240455792679949601928920779077703087053986906077365464952399552306530030153831559712288209656668337582812952586355652648906252917807074916587235331433890874316727896742847682581396496454666437178535567777490128774575568842560942938374568874660264250906858331490185731156381807807105110294065890536415662848377408321660742049114275348753577291954493603660789874159242652701923279039858496174390449643766522087878133895473966364829587010588992358674285819841439563042699074240647546063784044331411691846778224959107304076328334016506629217190328962555220197683253386704829380834087094560332837670327575490990253020743656922442533145341475955673208157995893479044504347239642097618553819186727937209177133355048474893025889232498423086569777401886978834739914789556287513455198926005852342620073187868380877110638267660467819894195949692672338491943447762792384857121400906228104528560473828140360390212614655203885762126267678527824957533447353649761428273540405221527872961313828185840678730991217747898186370327908607054054790070520560139386010946484684014429576829955048337207826021141912021820818527542302705730225701937924229480463837927021054384736566901103299464334286022472106275085345897875540209116659551194029846051693834839058519193327545589352240740432472203144726571381151796035680134880152264289965204514757590388970061565135449498162969451632499436729052013095954807569902970243396355674211119809108961868806768845893628890040029515757444972150102387939572967019202881562473023576572943405497519523659941982899258597839109648814540615723021329598508406850726332924221196245661896293921969291140492280187474216597039644049432602270662066388747062409674434736807349256284626152729835954316012536833608057587070350012396913328669822119531153499331537323296343774498664303978697151367150021502806383085528153010507395535220132604617196498525098984201183549740218531511044128822867977029960578417022329601797864948796974769978163980176286635871942641448367230632579858019463693933543188450008861135789877847364614463232614809517408367946386207552451664602448968668934253584692894794627647210285863669240663180610426526606019133277447622457452930500711512430843047599501196327367559911295315800689237889005849985871224261758009204430167281774758082264646312633333266301889180952875541992796355898601754783893698372647782998614194249770321234880010130116476750394326502831205814851956827659931663042815290378863581883067771682648549412361652708373770546393645126339814889512705358213032269424665604931364278359808678382546218012618203056428004557323248819448243492538241338407172999867711860493551029362801333138606305276598540280092602809015007369898149853197546011448978478940827972079370693989467292873263762981673052628123371903663918595057738375879819756739807543249383953297570691747541482124616215601443707819333285844164733340071441229217989870012571481905867729183984287447465451648828185535619626813936538961239881776599260361495395414896879392539362154423333988748207672274541857265427434399663212633524799343411112229163269498887114594063900058250619727900709116562849444498531923137174987406581813024986488856992914088132784722168883757188346721076187373149914243575181237736602752626329334525498318813394933478409129414462842078804929906719967437370032064433220294303402626893056240468728239584531781317693941605956415180018240885467438320865714050523569472509241496352994913231904056444013064662387784725064830980580830282175898606216467008129464942311921128580080245340760533267311040327272356845174538509758937768129567029780085977199794411959837898798023372608376450250205928021004668458466406359273193026336374298616887578903602517078609308843645005214928795904808638178869607602767165040137427975457777532588058935087047480723926187567191088284432695155690371825021019276927417058509322590128405503189626780009973469507229333684569044307506628477724993707812679819130738496761647535915185397482850740472792794725082754299351425068758764898014471121778487882200397586557668071256378611321017355120363518532221627442282134806668178617508810417985364687341488087148913598762475932945843145229308548621852790911836935688780096487259869117204854848668798401376883759660098844401471947202366190346862761283332719681545761828091366273897042317854915116206582498924983369924637984333147636493980601122780932197421540569268685968556666918545907144071541858184398548864330708738350191994681133490418071780792754692350176406110386225073639826476410003877386388211155692614971290406768770866794756869427088602200629960374352309780067756222402178062193951755820675350733490156269473362954320906712218034032256879731194549830892933776651594785243453169858025092837636520972823686911546605176654588950146556767862796787703473886757967412566471066445807316661734409318155402517799708124916821304553506732537903720705420019671047530700574928821829299981168062259198510254148000636850552473246295907216296888319507659712644134846958970468103859762074826703851977121245972082311532387413571674106821732208721775428447118170791847573383146673592343960634450610703004118839835916273669837449174006472227595958625198943279111045302972021935797431375428287724777328963703956040561813597421558716857989373614343003907686436032568468426612413364764233962824680284728515347413866109851704247484351459104330368437565145194502147168217952078501082412714834575099056427773733051497673757660546961190979019040563814903269495100621639790139795817652110822922689480673161527322305406909556863587550186369396942920058724703426852907550235640251126727904477983698689662898778356415903577933146034536446434514427190777120645860831987812611555271754519789683708752986372335782889686711364893625449922338540781205450334820280261483916255554159613197884154702325664605482884318476697109678092343684391681463358536937828097105590089511331853208092684342925700997069045971627404636830768349476072314342644860775855595594410911312731152680380634739433919748454297969226047490082588059844899124218538730220260107161406654727113466992927369752885092525456934213208656374078532687914582628123538265477983723254117788354987069396341213398500977500063047526881108850671021201532261938081540514923620444575653463324010987079569260223952904481866477184951960898709630787416804292855182406393600316810467491781127404680638948803862928838511490478844010280552235087106275405656539508958958333949924702643503595351443528500124905313993700193714400156447456677773514810248562392843050987215391261464626675764335949355782422520936135575619932448011441811615075886928897530704623299484718626009392703278626690870273554097335775024466589746695900407638931398234909671988646502675641434770280818447423598010012425317157783395014342140186465513551216124380848978547847532045804812962465807441705719296279760279958559284257776678322051071265340683802834111805656134328074917036601877357632846151298860961003613253510240890900602346344707931752301094526881946893383199191474497774987034271915777380794581748718199290418962116833947585647477963139577912490396317398796866841100640425972378717799793508188039934200784835257894639310239074966900512800965810982550743921749096762118302915097735788846202920147829674254728662926257331252207635430610689775797934194024094674800720778391587825423239742617293316995474996854250096610147969786020671228140355489512473950659854183823497556673886049275515087249421499105114279655569946510329843825488853703399833038541694351866543226487805431319533249199358732110618607896955594352612818132110892937057646138693848124928557937305137060212432830815875321391766334714340863452147802583428182739214991325481200668912318531149692303557209837814389787872513932056586766477704674450758009391552010289019295308916859301745865075524555243168651112125707776123820951460968896439337101738078393972459259504118123607802135118016995448651164248518427289965976992519108158429993665487411661547987766035602467703095688061604265941624460279896514043824533729813972752263462423850298133403177871233547015525527716314567659964269466196923644105024407482157959367577632701862147733330368736800623634033165257787627689510238422054887839381692587349587044038078153255223012477178386103762351039795593961749859664203196344222673676418358799072198273822373756714686573731556183147920353196546274472339878817416707815089802808639886383616070457025053157866142064167514810904750224199768088002620686807331322850258716324684779460274037829656764328402170314631544299183118402028346853899615014104699376992160303684806753875254005792942865461920944326639867533032920772737421176885980377189343029167046043327923667588915865625684184879399718413207687096827490932697367466152732355714754523637511951433350802269102735952925823339552666176056955030733119719075044768949018012122380126971082939359093296333162394901929606784009315851055597278220762110244281933794585697321124527275529032677366942938192448813551013596298494586037857776798774202758790708570988717118571337158162730326155430357602893635505645039492108837709836277847745002819518154521421212111129159171816430629388353496998078008781057258223076420532674296301052471501405493396926844665161999749945509349509621323700740013344162604621570238900774084893551875640236890093283051070407089415143841684387045110579899087101852500207445987583130762711996757618901961889376646095909162820610634401822543606798109369782638108061827019835476514470507634637136542270121108207395466152871386361453504672589837598414252454268630470798162361173268118230293009360774361013880200905452594312774886941832051305312697548381665328288091113184778101094277346968265435218772352563036541684469450603164790133061098393612749830092714692466737881808949513251033651672052481536164310857216319453458338127454030378766445364485470423562928250044292541405507448925011285229382372526319007973767275521394800987083690296304256389117344760305035764525290557569608885170800712117740936835992862057260285603575937482465035325613016919982463941461762898658077953058972218988489648201648250340445831650704013215035029027351729128196954124509138770326263995134836080783563667414511674098930955156109585454322839476771423852499988146079448193950908894980507601817333125134353829389142713436688324234920297847175532787260724548853530079983569103052133437833688420770873705478723729342503918093559261623311994308887758764065946442611462415079968893640874941582538905584807862198464494548446063554830761602190624062301114862257613819946417929517528333112619460433824259449221866639393743992204616767429401690136010540421048362471978686800194179370443259977504499605893435423269005412780228603713533843338542976955527407923305014308068914095758374023841734592923772872054926469154562433841475889473727716511843337151644702212659588210536366381919955756796766162130363499743354314348579275696311732118813328047716956544123749338029765815033221080508435951606846483986576673773401354777286595962428454066979622624336200445544174005674886536750161313043297973135876388153403966525717310310159074753724933392964764437396438556860775323427127608002611535583964072460794554701455201273744527716674470673218115809368588228666190347114191674829158039758280637492027223489654954516948211887867592524363641466243518764764865142552360218901254950819861952718989622035040443288185446297746014671928452096730616644326766538786895722412369739328579906679634481678108861261600591312123059214574036616643455222966350067752193848235129645445114300238213624888048652958035997947371205256252535157577088238844545591019161609529090195059285002486768768513770090641910049014493159986317115271783578022286582648395180826272007677222953840688278016407779855233570584894591851121425149360866877868260679243818433130872765541673327405945390461880359605719822499239426429112803307813120097279114918838021646694882503530229074823469714536218890767768671839829336380587478215723516465237822983269514313261290215941268311719438463820105339610900647700672115271124478347839158592961493421292937956982980178646499447249712192273564473091438710851160571184639975034751965179467234750313313757807597805171014370239122329929840510172033736629066360423474466502328138127901740028884822900638694059479720858265681699438979375140120254034561198522462635330190954064010099604254716849359986194536876958042890630640153848444472502914991947380646336386212026630843225822962177216050568763448705543004432088301734446415179393595247029429852103139763572559765793143986572036756765086089609919436381730551306478207334751171728178804601799171423104152139007549277008332313053335707107376776773535771873618043497209578755026131756563178040770147864428859213792454349896126122201976044140935362928184527365639922850269620348459433787417135694221013218246236220248286356329640023307902053243198816442550862635658000155102579551541985316724569520034164652643352996260124211146172787652614612832874446813023453186953390478604466712721274533615578488894927574958322583477237319872942370921291708882379587135906811985144456301671337630344589810723629817711418113883801595737370587224381671225221010257057483505348839351428737900850429269765217628841879223273170243835205174846138115781181901134463846240494971421334556219984101802705627996025661103609221911149891572309743208382918831264373162832022257160210626786480260100270619940017304111398530652655462930361515832434344582451464038678402492545164827574789607323849309824139581795590279822359318367924520711022057232649173407993835888589060984234409846332149301885540878847288552340020237935854755124236752854565919381215591686315004780665943843907532031496980327568446583493977165953650538029351672359720147883001746010440622658451055543852585384500405352044669388540960164163369935654041482483360166612799481620999865379593233295310630060376721832076034178641779492864751203927478581125144064011374864361054032223088808312876157200910602625097567228176273093632818388946250418857986029302893956321132226025075973734049505394774764669775233354512916130428078041569139450471963535327501796252686432470483617965965431864895701839223266008758740208334504591865299144931254201887728433777070992875734496445595721289160365920388739759734470834636690986268894472050061919628564635496167090845569967168508559153032025930064357397648570917549628627764603569564500062252750189655543966894259376949956156909870914099089997469507196765992003586498899592346791909824378545925760338779036080325540681499262381826958362472784083136745392783918174207692232299726842466977180069234985024991726314753058241628531079568169968966971938984893439322712594631034280180398664789267587903697937768347499731366080852483734699958274435446684762184189973034971081864990676191304318564045646173380135185258391580073010196413574453578886587818669421035428676411100988436366461856078428188522159199135873213245190615625271983401958683901493637284251915217942129726931030414003247744758534589388777800783229684899112712231695678384923885456460650617296045209535319491705557877429248441268571630194801055498740406414474696565933630257957392566024369272348106230449001223201895379661344066869141760506752092588268756974076646663955838230963088667974993769457875784553803734781230548305414815022415715087057290046686077247674282471393284048372381663333400929353616251722542509085441997149304917470113775336954837379886575363535843380527219537391762502298417546916916263443719522851178319366195191676612158340110407308712944488771003215636426873621181127652579790843953809888235398799699084062423374373972438757158001573065067914703691216463177228030139300152297955533597758474292400037701089127276181962748855952121248968672527207863346787861641514358335802309926246059288277958511111387845472833865803763780192780538446323256505271914919351382543008982836110964063380745915423262063394754168927374522093484758598009874385077448870518111335264781853782699386944990689881541102667886511143198088662162208043342908713143557658133043036734442314851528580312974105249284194953952734110878538198569497143779885996812556639418263757329397354613188559270643429580763253175605216257707277984869563554191861639338509112682596227871803165892123233509484968209712605183083654455967856168133570851958051751408650862268523634061589641178556053336517116158905476754960601484516024531203997464820923848611388955506447399305526568968795445039255632501755578089851330945482687246260171768683439440353232959944675609456962924883997701127872895921918854885452431922445784187885111797923924378447317992069399542925046954602377852837417621806219486771103597004561586049218241570295788593941164574768645768870318408461928906473754942165197951059392338128761687292467503956391413504912913513422811287145024352471586684955233656328306980884477984753203696498993166536698253651538912013997100290673339520863750637337427816141426505074389913088456178300510381532856559112513890925166395806906507136507445353260541495715636462272433192470059715547480203955200180687039014992821453229886985530676780496158095055794197642497608194929536716878119324412016524322416916618683429565734347819977031913181481240954082778654904713395111801753215885917319977718072150591382405872536950618215264628982156149932231438213702707500340517421908056794489914256596692838503384421486665806309011672781299880504738060736701738531112191494767433976499154109981930862420445470352184744381355517253145608611575035430266620629739358537508701305802958906026621388639561389356089598190661252401331237338683680381066741462395881861228067236272552969834152893792175242429127454892207440555885766362213982767970929398186798964308116615496813807479048397321944378247667937196107493903558081387734492054250413041888229253294403981818866065080341505983898989526175307213768469193038214994920728980749896658139364496100731608848244039910348219334585654554489494313965263057476121728765204334871930702980980838016328466755314893968274875335680811903235648638735053780880429359084789277355841038397299781577953932774759199691558153621308287134826340881139668208674775616526649288696089546879748537524010916301913432741993729274981856824627652847786738551760234937360578516134763294843558917636242583472099332629146759184662324803126897937285844399160147246233011955688154668665226300859656596553498669622037699936087864503861627485652815771337357627293447988154599552737128425052224677482256417443203346262865432802157397251297306289555093193325726461601110037488516140411439115313855974792494844655459997727670638104210908273940615345484234161759284361345989172905234368232880962569951455862158822284803863496196622996453820598171319218193145105642183257217094086740447265464467827818575244347286048600567689858478623605376843968334856450548877179384503964602468533973133462649464050804364385012999770758136704291175893703260925490215145376210041056123500928403227008130171300080331621070042803565050387062728085891008080844534171011008647689077411743347650093017988706692719744845699016606743783948674861975650082722276821671247741122606559241288870880240946565416879477414305453249780624746090427913982836872925309644599932076427415239767034494177241845347307543840291338102071466869115002496435192963765030906400557489769904946268355611024084651108491810109991273363610500214047775055502600402178144601590393531982194269022067068880404708304392158685426712697950559784081596271139960960009609013085857712834710162766940651249507253437615078988531267198929628054442962467132075503680923726770449893110781657477472249720399953292690084410297945045534753666600601892235398281224643747480413209255239899583719333109065886169084634711022679194723019431215722909369619505077317708657670074966104853964222075511202173119785806129927582166334450070617957778478348917763186907128275979241238861460007223833197072358042539544128688969453890242014544097581271353348536545024861632399499361366172061620824409500352076777098664400484138420867832335047684925730119111629793021121510813260912218239618907183323627325796685398061984847666799556029541878195403572955602720416872436569059197420102371499788102719645038480867332333115773147137605067378777680453580756727942753519145366151359393928095380388279061514087997646688917033013934467894848027172786785238141050158221552623997630529355356418306709037762714940500085493196125844475087903557945979090130436057972546485496524261388535608322448737564536378579384159681062999405651390684231699541048548202977350913418192547740564594942323458141478371079766008072969310950311585250722700314356136217834817972314658758145450948156305483071250621874041187897148572893937757536153778397396088855091194572967679514298632902049119874940928257279784919754108079686139373143342745355276185963557094541174526323112822563426193615349080677404217174550555796851225998270953510565466601185185329304131833796779278949784270979406980612967785316414061897166678450283682679663789758447712293348570606605798187869469619349980113324563817890948873751617863427976463589914810029458250384644722012254761185272804415078357899690439058317953558153511388475350672067468427615695290774786720261292388278865576119751299659419805284336281263954535172623902822930592123294693582886567012965140991536012424337254239621338891267811776948825050610243114065374001104212672128546692703035365499968586905803728654723079276773159764137994267560904923732224471403025502319802869672945183882952336453774025402246982553010537592356001726769569435567548047829655115509551120871469337046553732347130375294331314969928048067253273425196334943548488171792204662811057106741692039962341190902387657993477914384523478466275605863710983207272235853907356698532152587776791712320668835024339934003278373606376366851179888438727729772621085452464649066315478836905327592581571594612134403716386636858257490868888980096586532002413408664383864043892931571363179043996931729374016804390153943940356849764886829334016564700547494354805769938232009019302713734618622678827794753929825832610937162983207232441071520628648060065605045715127562780622105210771265333497815150703556594749334430752770902142454781787537417424050430965778107701269019909885776348606743232958844753691982904602548493719984013917402612617404319867882488929480411697155304256592045680135511601376949993243176022607241385227140302119761639934167363770287264130075410550906423507158287887307685033282291926006110462481455744806970308439250275374129850932857204129474252625981256520748680205811380324538590607059220668262540260137640260029700106123370926488837783332250800329249288393137290489620334326075471050089448830267229878527410029299738083171917422129293694548433308643751710437489030639602260992761333172309584799311440640325171423831426339604238060685604610285537704844492172444976974232343861949099744725397412199400085830622943093220621271607401727565781763124582822941710321121082804451956800062537590202042374741872953458663554110429613656665675901696056315163274878277908293309557191895560494150510911258027140059558190081207229423993480073448113306164420166946338132447733729781022015624746046248448215114836265362121355247403620979202571127168180299691554894464832350857749954589774103332899092145919768128025931211812042876758643931413246117381543131977911122037721851710659926085318303215676316907924448805768151193457740724027673248458319069952842010089977716742526120884943575565368193403935500511939784635537610049418693354338989841286061698150564228488619016533561134668741375545497183775283041854021537817240575385475406412461390022837229386819431475912442364832959911909980191302437910902849195861518949415676383467148647420707942299475038345847451217010066266228891939790399686591376064721061109783230026386775253459149748376919539337194177805837339301385777214470245490547919550327710967776633174675022848394448798954209443136901599121747514837778359376181059879799453009963595291769946197603276405610583564049384706634690951903517284509520016681925120812076610094167820773025307836492895263348282331289890173137293541080378323343528821360756593078407234846150908352584217861567679706800432025358426039974974101652946937446612144853012078911670158484062336456357393599610359655372612115491241112713649684569329534438820828441498899624174703252119423029228930397364037925702520085435202474169615000960599238011238870898457976697382173738957288369846755645813153468086236236640815789628589941556165180206235341934043553174144818431789770553161954973971957405698370944247174459468667493072379581822828140214987800784283884998387255711802775945898332689363803973001929278637937480248983539166735657544951371697873352285688628196659526481570942077603253397567811353414091528212856837236406356108296053690512996583076626470706751459230251484359795971298599765986945676123593955328801601269666496078456147523717893811149546779771558627394612081020244213547699628479222274523972677676271641544872004498496757778881900646901889844433770687551391272168446279923784972834931259296009129126756032385089863154915589878408008621141100837626366666900553973945657830176518756572370014268043277371304259373191449540176164782398127142005748268651334381315117604773644857050669522625842527471562508558990749293977330135173037472857179332689291679036297396284203445465716514349218861891312176265259846555056831494303390958817413802822434558985923887320499868468018342019233360424126739356471126711513163262098462624467386542888844043676484445437933993329429890970224691236572042700477258124048158279734338897485287519713329696257527083336210948145451806122028928034984668697712973913219153331246331535226903220639913384232070953764938820485464552490265692750436421898157313062240815269283463997471144481137407975168684806861866699410344636677259967230626750648867758481648563026111681385006688654519872163779742765524791333384346238252961667520068214887181968508268149268087612679622019620206723175065925823087637380073147190685443172815610713261292693558800519256113172221327372510055440167575688343028582682056361537524051889256937308605674033366526774021254504322729613599815357408381366531551228526846285361364206459476361061626020185909072046702211583264153251331478911736568836879047848607740687782515770800370942256837706434296316834880041108036929105009972312221637691286488441092180761648517901166507580637894790991959491861603283667662121376000410402305214813516122987629829981808630182964912792363941419289373393486343543429116765405485479023386727458239909846517969190123463022238125818507848636783827586179701192758055036278503325102620557359569587700720514736882234918350453921930823969482966324852235438309070148588106061552252641580998107195827471725884236688029629700063115132755441349036986292400786607999412727243564209637556668538731876843535654660169957403170664526600855130133701945003014723098583694676575602503402968604798546601020334220536534593246733712225111783563041168427990853529334615844371437454591646615382645551461899767879836101273869324798254672567151807302752060463106055022164031922842728690815093116021774335021099370043971427058475204011111288050593826496955637129127602729835062422870891812795950766843813500332974144943161840490761584496032626721155239222862707580121800909228774124452537825324587500481607864786690391762681796869874453509160917560258916776656553946857103537005461370961789226363967483799498917606278356484224395136504639073302833583772743620561144928055799619004462860966977410946065207797640928381849841639626794858318418098246571449565620532151161046164101808074760203159679541240379414695501710487374575223621723675226024072424950945754884246332999473027466549418659899854376879199448813481508169495681101548743659754770241724883472566487695367554106531876948186833628243065468530196712573962644760049573180027556675655206619850940711932056547722199769930675265119425884159081798045097875218664801219013086810295489023739132031379055535164203049346179618552933284013264768556282430121356573261636611565433093297923159016781017363467020734328438231483692304935345725568005773611453066100685309320588091425536258841020756772531744107655162688607613703660126523609924873111557690731868839605649316780400944084939797033373212050834309807900001362210012037419372050731441935001149910347823992782289017109132696534441144240520830676127926475991831689205234205262292643778251348343606306628658649184767041434855781995075604457835060729372185944669898211778303552646656186675244883645551509259017008648603048391219112144072817097922543235088242233197337097635467152716967951149594507018889819207565789083775597201885100558480667226272350014988050881660114391920797729145257955460096462672371236073047496729792925414805599550718518144109471171511048730759742921097638313082577284643946335464851006627192306834187149419312862147155015397038823908414901850365605264397237605059224469169305409795532565949370606354512244177868140037752549560745488633170807229013103589128485819079831097536362658656258002065628193589181000893632305581976993863549020628936038286251140123800430274595681250583105711467683232209761539290743487108431453055748339348420807654776138709907944163276973045168342563539951809341266538658102823175229798467213093134701393580827801902437373160871403258273252018606313421110880588557270426055782498315448510401887364405924004066868799121117288377542176666100065591011797106771169401754440915135563308683331907764858161455603022898951412192033560469986547394636052390919617709789676047603279651795525459980086271287494205680669838357291742223059421609113561710021677575568823914006807126190855420875891346024816410206430950582457815673407358231427598533376911046093037711457231809777888195155161203735195115035940365652751684417337523599403471642214775763026351004702505831083181515670688106418078576825739203736223706391169201908578960413337143997270240996061223856729563070542237263653486104344984611487432612119483394935920575622857795103992312196811463353383623511947896848669119562420920662240188713836471669559546593731394571792364895540271129679601836457195508918026558470385396500205910914821906456577083462723054402245423683060020481564071559849102973053926607159833559631391705108447182990193107775114843402501989131703048156226846883135084632296571743909392770762116620062421893790808836801427693605551240213900286993671331032473630564831358939816724507600322827287409766142058496260315173237010295481949914304846248502899229826074992966726520652132807389699164293079294431260527204705211193706785132771755828053351424631076121678435415116483909739380034725998435823030674796673833964146209878540660131912280113039223467246467423938967003421032960715963169397952278194302610491100897717343800595665213195596803994302755101977076772769609224022352773693297995741762645030354483760346683301450221134738089706191572267439953386973127587651449307740364403306907837990258555281556756243349605169732012956414755345532333427231132284363738987891399582006178101745938686454376168897441141224008192187482626057538753656607223469064586361775943210308405171300404387600063453617367491215423097218556198294093434509102539713069328902480051305385266222258996132594735791878472670109113935132229411917999783504600523347327347563931564178296443455733012110430308026498481174304047706822915888960049686570296856641594092614698255583844650110797508656069556762016157373895120490782997091317383818013530086437805063778144491808273153863745059226216671884161849838317971084421065598565148246508909654974274993043646747555229589259624078619295822791258726091958063278752943977654407078617620919278869702541289215037242487870451791588943931096405841377055420357459262238122682298906134834923354301749185806342657798644900891754958591826761167560641851619651457274137438901643146953663302387419176510566487429384903911802985518002821274950366451768165541364782713166370475502307130596855222884528939583303666858843416174619127407329506506009870818292878029028096928306926009903285983165237694130390080542208365477458436156421724707439774127672522101160006452085928427572312558387719666784065687021943296904508754638383088760077098878403332601296242405193758161878014772716627109757747225523426322354921256171240185895128623327299732204078692678805714063012999919254798978664727916450494257827420726379551038171589087022799139806869736156462000857091297686890792126531843204921486623309676329748514291884447745390527180433973122583846934796282846333404202154140184683867293431582192211117943013903950946155635930925961614193276756141289805344682465657923105110245163710800674498984339600354554622538783499903548368800226046577107016599750015151549482120753858972588122766533732747630399995198402475085497894137699272524954844064342597163844258838178163276925934283535242474840474780424893545193355150783887471355726198776194287074927966227323619468541749187719615045627007643274275392366376164838689178379804436090394659867752615034200838594443357874363384507861086615477003699468051133489484188577750083673844238748832109356041299767863659775190285949751600189288803321495818888951041995907971701086622952822400256840453227304343964071819676573565960948813396004976047948913523754355987969003202473560195289710704903839042689125950661576308080002648820449739989257710427119610670677107386587007108800806480687862979988593864969846012064551538523538219568131342206160062593886167863507833155130119803785853803833157404322272888174684980983433501476836461366171950978363493213960185681859846510913632162625919736827321657309238071715992385975780492405262690694432836136898630033479753499227013905291828867288290420176823541359856227360735070095746436989187288816231797921091850812041966589759683699307245883382229090459670938832631284120904602379486666050207360920790777820642262400202925563781449538996308033156835070783247277820754361808507913042424264196215959693589139795878271498111281567768584240238798802385484189701104779155083105647788502921149083097909824904558901057824448084762381455954796765414892809233984307132473737340589047241702366138121331109990078007879679361533587040225666010928253522594947582674780397248443742521360786607133306897901662387148180388810484061630649512544802467077250000642211610171516117206575016991522313395304187305103399235488996934898599547978167089884658737763177690295792463435405175360945212192172437818638104070783928868403228926819759709708292366764706094211706134131985474598690850411736149019958829260660653055315226608700846738941453432930937820440568216099778260804547071695049470109012405105382680220813940392399365827549775008316521269157977482529332832242329602191958321447577391349494100183910958270022837595992653626717726554476109325851789376576557146438471434394794957541202477421597719511356294646801138334680369796661493463297005703519159409041264087173738156470416179422825065275325272567399181011706891507820945994248414680109184548996667961554519092927365902253948847951663372937031331014560231062481311579355599677355510609227521084326083157688916281179537294310474832113372974823969053624094593711354969719417911356183197167357208713613902412870715445568294984494801439179465511163115944201717962808186122942563450854750440216520990253463229590743469220001800487147780045813563969310054929470448726180693698612349886525535938345601265679265291237459244223000254645693916398470347770406100000189067782117685268164058861994897137928396113327583118941015600891123282420311401458720942037623736559610467176985930295785287440568374360352147270381497690676002184738450452618466783537901627701835039673134857835120282217015141354653149374062625827527328321259337144886667685159811546944554116232728844770824365985297131562485211729967680147624934272918159655444225522089448843863441129154725088378859545534120740196785180001571774986001463121098853725250381792346961175322315924631609859793649226103546149727300873191885755746827002798655267342534543628243944187855384852402007807415073312386879912644888813742231477551422006091002137874494697773316612659753623124212754276218187137564770819621159305417134262709515528544169816152207907111382774900767365384580618689146444312359904027401827864594365376898876574737168630608610995043710599202096814582889681526180478087337166448486145202227103400287447401644561541445431594303662204219617794284050881999997317510785834509018768100131222881244875433309562827552969724109238674140699798851495718132692818557183915993937601121110092842013462642619053298229843166477272438220687510389718597939297078955850348816992299090495038453348198609098319632025414184466268946100626049605079121317803993302610495553974141463306404310360374523630580349553807503083734394434824021606400755772924986060366447096103289560025713271900452207961996734924593555710545470644676737372894769810004355675972641965162721410151972454104388510427224991773586200996980823504603380843736480375514062585503683283774137274652298922948957361304698510629997063683032573641415405999044322685478222292936269999560537057855636489134894964404334483245967187492220819481081935606228882458077414357090230283275620842683702969516945833606623477603617885896735735435024681842509937933362427643720708922035691128940961666689544543662856279462504687806753734248634563490048431216538987440571326239440217504555315825155489595487066131388637204285055409045265144538749101104591456819291725643801374952097088640804485286539695160192310594237780066859815607734521414704045967814287388551481339163731823104318699173203711666967078707141757683728336100323268343040986675830468372954864533592462581307229329339076119626136269741584235333271267077318987818980680474019542035066668123140837872865498089216650056021164187764018298923453925670671707865822702969028653375399692294625324252460017555242829133470722292133437831478122429776791608076574290781104190746099538824742456841521882174942680948992967122623799329834032362250372318860069801852089107077081730481281106699646562495639134589808042573720856373803567115576880031926621256368540045949331425795609872655088717382167732818536693580629637955497421820731660119090550951151088159997112924340870742847260457829297661906824693625943755630664731322125467589937320398346207143643595970418260419493968028595367958715663984387778887888409442399485840138881214414853895704628783292839408317199669251010507464225135524296262162860905180940212596808783552534077951224172595635616557121216362148100355050730127223067202181979272566369356491273231300986114497906487427806606698671940697719202898365757853563726383471238622246503371926829980077446912062796917727973744998633979242820982883252460674312825549089253185124460503076310505393436149733511279427776672881933416351969563429833522200819407240882104574496228655835120935558087571367862797011679072457800046400247238546122148674880657384025596897332097395063548399861213555909536060684295204527582625140819692438691685152313354653226202963125174082835422295962638518721507375673405245814578155569951127840265267806487868828921580675091620872872298954442833238769400744377437294629931521306681024943359972633965399901181317350646205907426880829672460056418595784924205766904660271073918602915413376930407424995353567901381978573491562480980422964016198152588230164371871731644320727866393452339568849249562163324050177231511669422581482319992316102573704920027885474087454041904114916285596427810955058242270889105672947844743643072091811141766308100398540886731434015826508800624012512110553515617155040439575507798735004816206445744259682113789313988575173079655342725834430070586905903482944500309776734712485551173766460461722803448860043170655901286906907248281825287646770268242347289062398401471096081687791469864398554783288290134879334219036387728753000588796639833957044821220274535545105720755666827951573163562886657726489021659450423582412412247094389280816704555834373775829618841640466809773332521673943030466667574384874795662680609032492841863122830693368110792726169400635943054318830253809301007385373059239616533067960532175674001669670211169844317910379552356553737070285090548571561531459648641485800262235454352991730801779509906329127903928216094395813097291422069320708108639136621178566124617884418606656153629949219530233453769557927586322741383297874357138987961333976747836150309386431129820872033412894633374319383072685446545930964152669675263697226152386649699895181412352742068706129723890499594265601447372396777127297710559310341142149867806332631559270982887229565336428793973216954165001464821966596823404659642400104566613195788807064435755950141383906592973080146321103016669161883736510934624069975312245800217624511554606350139974675879635303407789088422432982357106874857423660284835125901209050855578412269691699391024807301681668708449314271319396549930956410528151006505665284020837681643793813216346673476607876427740696821264443219630614116285156110330787416768839797766697139892601721859736224539352533110639524061153863546208696216662249765899661876587640130335941995996705732782598703150223206229384471468642213941496923049856539952471753345217927602244827026987621019679191008150661888721625487287838436327139871142027589249844501953273485843615764894894669341549834937326853355617814010603823845258115737669500316409822691092162554113992830068431261978762677474072615312145079591256866940546036978112216711036764909244036738115773916960602969767994206338739209377869844370964589260960671872134028733988771954353031531741150901661958298451231471045279234061904220956065994971056482007911062808623057771711613061782720794601926855403866395002461677922483786321390518607597920944950321776081807129531334598969970092533029943343684316477810931603337834551777209905176784664026887738005587851075679828197598601576405261997166643994649444459091983907469331958082976571033340380192858983068541166320630895580945661494040210765454281596605003459097910934022802071165671601959696496137700418345392592406172284968583696096702804494238276521165913354822024577952422280350218389580613714912272948308440041482575849471101032814542318516681347387185405263002423753852849243551552217902073869192549827009707780282947162258604576393059307082259644119477427327077718041713741158931136898155943276400925449529800310645727738782715411550891269527128190444802783413642750960052216188547315618549809787366446062553258131303178110978913083105754172418718816395638727762784625937438006750693898500793480937978699704888363526340064160598080391772411866800452931651228812901765959869469338729289191994738244412229634577449349497465279102055533406041646945022835249193276157877157470537028002880881183100356462630639355201399898260370736367814105791940187185619953824558471235677292626559749784775020703997825440262981670657885361135570912490834728027509012049624109396445192843554939259275449404192507915623323636900082063568160332227671837971354190094814913655647322957442712086730009985757256804672686660652295875848254286480473047309009420953939649350824390533632348392397016694155343284577371182941007371555846540071085274808643599955481520468904148092607047563841400190053741348182575783865301580033442547746699592461758236706497268780279003974474111254463998959713322190189003770521295235606980801290134165608458915246390764128966579671394910735307127911473258788623082745541696452652471556432783000903720942509907328622927363152722229152607552167059655488994338082427560901686193127267612505993013263373214954530538953202565282858394265397857150586572922353728419777153287375845579832329882055858790196808646357187009482675393883350419894588492539342853698905968721913315327922391476290300667208470343512768255538444876248499876633921939190072362241906919574546460099962876083803028424895054042585061868778337130302261345361346813285428344750815541816736667701012462884238736822036970421261915907690695716176345053199200966726149810760610480695406104668976147535288203841743129639928452986242313298220234509656679101989545438124914305829587848912046383988954566958274371353580928485389136929087671332406944605867282023562934654196563823260054294879922343252603370511406155442829609976486537216322160058349790878632763024972669871185626814472414002737486307613820888162709551682743630388587352906298561495843615083804931905029954489581609105493540834565984841866597436602336977603191980622852593573227466563469263370094729641628836860842639338109067356961014752981719368972079807851279239123649857546638269515677979395474237974311670629521771140926014229320056425087013132097883018642865983801690727135538425267683767910462478605619496105278911471212640454050951398935982296044026748040092895904750167516685976811566930843720524894654407888285487565616597937140912426727466445323189930179577310394607318021746824996628625947966845392175891363867797807127602448354644582979779120809671620874740998827526888693177631920272053813085458336609440855917772500504489475987503285934542459618521964488651273397219738688797270493413646693738188483271305591215405307426784771307524574179161434773162878029102583689343323924336379571069931741232459992575883660972555200754141880985690728698027038540469322967286509212123679875114041794684970929773411974536682076969389907952103228383459797417486764978495230956481247981584989588640842658763230817917911647024676002452443482319905144759421222118706909379759702026566142657599519453298482477892705243364470262647784267722851424736343998111637609413935196253451838514519324333233494717644378434087157953094654507028005481628524890432898134476021935533448560481626288225854562509113577582566369258652350955062578558399818016954919355227971639542176684504698962065545389995111122743474751608043567924583413552972762273114886057319270981754856015142883878568671354244611841346727900453436311465562296554203669590982058813273403403500034945497278962157375733460971830275160026915813454850923956475787657334478329277356634880254767022582182803663886533455761138272927063901015012106733169327365064907511250081127446707286686657831437442083370553978104802398960226068523236995451025598493196582370322110320295486602155028318926212497472067942842759500846556128519549915915378984392775511667757165320415209160406441243539589456583909685058537519355020144480076322685285664444582430053056508174626248291370188094424170438040454692229247518147506217919558139731433980600127330348716406565260737271896821844401403871280260375204389974042212727431268174899652309369062546324000213193866941064535834257401744400985915148385995740137243765575846355039168668826281465089851156654208499302529195268624788591447234761193403695972549125806060700460922621732944260463152609749933923501959150929716014101287282065670959957804541873694857420177546698813336365526275898670972806584424811317443541337614299783570571734872171892451004349999690903243082806247502035547726529022236883489063065767195277372372927928040230875220193388643983291140948099163834472067461228468375351422571394388574784320734597573178944056061579237887910342754070926047129758405778081050826826329401801983326280928135276970229223168666894344982721661977408091098816806378691059982379657453704719984350039077016401073302527044224071159788808264530974144946622218633425056346764372579389212774023129681096449475843962772975083107294989056305673754699545985185920032428864393899812791852801724506336351408436438237504281380286472331888986498610342452785463781361682797597614760504640982378412780910174105231124901602738803329585214212971452610842268773321287822792656051858342663422770804558298136090726472173033488892823214502020323226276596848686119374352717353571693444561134582172276664976644714641087911827358141480479098202600070860934216084059193656515012410070381877370135512363658870923475140901382054802793831440750615620983298096813195935148125092496600344816664958450804035296833875952714994002416925917602235699470037494445294033895954664183960280100688304522424032441102685961149449373757798616440416395344365743405123041796858876885959771464383509681715700623529579711865640348539695092050305607330501288489009867783173936155613543567683266689069383455523561106085187162164558307198657080504368642855289239279134779970172050578903882189342742007869558760542991771043859070858065901097958553965528442691759268033971147948386644208501090502475360647798745292874036375552012209831837120863909352475069731483596656739270269104050434048524897869345551848159332073548356557871515906207519472040454217757043671368060205162840390470657618817788734274974150172112642472960727408540274423080740390913989467421742069714104033912945120808121276577570651949205193027410535468016523243971555906104272909420161465279994048142803214181291910815143558463946913711502611730801523418964146076324449592287581020065716230951432993897377435258936927074536027568426932957213893867904162555611435745556042048762173288810440086068789130995006746505777451410895010560610892267658323186028957233088594669483368322079421392128588447656067710935612827763303587316530480617080367564198601252663322973533569500991080095507218215667525376014161646608628915569124970261323236629321220982204717927696906210313529529607219095944927128853610261849498179844095809205664080322439669555536738822012268884063515159717614444436240993229353232630925153294078629635876237060615374270917624938665086995884398754299626094095451667333769863992063909539681931131813434697721974363596751760330011738376547182844878181460764020646808978569623212793425325500252596099857360069722528213039959875792608221873852539626473992663132235858373476030978291965006249807130963022114411048312162166714405614085055165602690419511147077031966285197118618099661609785987498445149967383209247985502010390006132801513489732233434611285925560322874765846121210811240790151404565068943156504018461224302178273394117489430950689757081580547151210149659945134660636054692244540491132466990474439971329887628846380701211379933138942156090516076065535995201646214179601011419161295020576204023308479823064036889547843636904263544994740382914744029918613758121150576616023026679795763979689491232376173523684036580757142192189980690688894840251132187752351730344296898667981914202408413172981230500939857317917732844517570052490669708371216804398557953555107749085425919337885665442285256651068977957367071870168109701437515793145507892230443975166381883907417838481620561471798047214695590153061206394782397081919319592475144537887063330070927327025119492717625032917951572273214520421593987761500626126382682383123942257476796860079477932836715815428906670455554404804852082865364527219195553295171782303149461092426508968470898713152299924207467847995567158787884491361780035126077264659698124453738002540197066525631802752029429317522421948576693816947102988963626594443856296672690205068803329845684976914013301352767595566127567740048252723218389173121097579634400542538313704638090446525079936387996073595534553021263542820746104882820884445680347928752024306143251076241765041695445224243431237805024176754189909984108786642104961944979962474201092293612715506801698201449645997067267474774955384866761140622218645767652215933276801943585959739048235085598704833533128605985828885701999920847959743349376158801205714022402122292403347491052914413372113362607100163830310370467297269916959108942368104386356269052761010139348543212116188737715815247970997838216245693385697729976241029463350511097482330614957216589552516427585711770634929404632121517303734257669467428735498158878122932336867214541220349665943276111516149278389846166483128451778781970957467933055306601730859452508148074893273821212606068760511993116738031728814696910336473082572645861714911757128677032413716226650862088768162365540482353195221392617777538261664995710981604718478046931251647226064472484847443461414828881443254223032834412463816181727734457020456898135451580985153947317502850216945011501390117965155506459897133963169719922653918552343855302483459624730216040226847413771946741711463557134629318868717489897093733071119038650932339276084559909820750044446211180421443257869789163547366299949193627570857950051434446582117068881251053419298596809987252686830931810466526320724788001331910047783861230778213711534209582252619239053144380422580389921295170746459094448767298854128882409871086701362227973306540604895823195178362297456027157064140219339755696768445372600939711460838272034873977508391184557237176408393397780302768998038440118373853127253172114922812839405401777230245713229654906367415336938802170865545647130070043220497537280181504678338506544849438469911215972066184998461276143434198645750224294471216266336272187016994519621460335778564997721300252267801866259814438136498682838125798536751066735909196251385244986117452171554589718865273086990317986606395734551316483295941524630021499851531259306173686377919922635594428994549214832972458528874614278434045554139406971810397426334810554859296647517081296554707507353875140821242797641261966075969240763506817472041486112402263041674457871589286541827452566272857315028128310037900057257218754291561294036567928413864274210229040017691530139962077679713570115171230312334931027407067157303618616981659221439577971635432588057370166333907028029897022058611574226283453142454091462653539034019798913031967218595133453019943679890040454612943841033564598709686096854848380403822966648498512628130671490786657072498031955984810977369317481223501107759871379413317875924072024114423220644118931191096866170685326688431865292587910490457745830078924357776931865903430706095900493487352483144540767379560747127312766971297729713041855048090561714673395347085571512943360297647171920472679898039207180755413009888784151950323785302563453517751286862160746548089927365472000270158788446643934413070010903445826786036295905572936908287067601186543743358334827752881176341822735980235501478839171781579186446190460557132378720895451651338842295047479762992186165606452574471555091789587501693226299509534922761419258155123057290021664720944706429746697106500672188572864417591944965741823042224405396096728537767063363494924981152048801891651864188621503480044913185150917654347330881409821597273070289490519498405464157456647886660492956272851584274851551012254429882018681869270415254669371895243500631458523660732242619999494570996334336801882698884472655538561557239362660754060672506289304063555688267137331535031969698839963664982659025455176293574060159356757046812277231237993786345981773387892761446492754679871625916509262585321166110035377213691387535012796006958731434791896870508497186669547149475131781502323016179964923850742199086080351303378421956740699312960017819673622696346994159585188689207178478480962690783327177470801866406337648010037541496103044970411415767555349957902184754415483959615697751602781979719533862253356779706273446847545508338437646985856160636013694601097709191305109481259150271893910502775765546069521616654195903893194217595449423584709925030691825957128776113612552404119072765715178782394455549166060173774495457712796516297408942511472234094594525277690075077910185223810181871027050657785704721659032051350587194566282105434724467527804552634342431259198380125368176191986560477811773756821083997966012653206691551281562445033167261857053750685826380457090893788922709213170647483415026788816650173056386524403641086756112875831048163261200584399475571263019133570471978591159168039321053362899654917931148211007528043020553164866805692470965081593828835776874207534578415646982030474382499332846294608604871842750018041272219728846745658400819454272168329756293595880900847058410510791230736241782868667330180503611595381318326520453382192420596397066199063307197523769820851232527424917916143590562519143046337950315624659986388728917302155877641456844805529897036310909647816605756068043088391339263953558203795327614019575947281630333757276182243641837632809148364772513785229464044974110984874468281094885361029806585274838397990951770936804435775342521006097727563755955558050295912212901147903944253106002794611036854791439964800220184909438196019015984914464059160654843635921802283675391572279374675935803323399101130955959464904780395261510885888032638541796149773151027851401726771122442829705171222662047673271502685884166857878982942828263305038309941675081442015193658367219159176946637051004834448716966243216887375883207889644092225347274328628476809164272557867008463079036270292488273909618625954442270341843024420508382245786552657447942233991823858394864013451281371516408545749415053860042970837459961203909079758765620888483167013588425893771219985262255754186844613924361488106229873402799348064094925029960216881033831279603456561192597502975387957105855799574225452109339726960868411684941670964808466733676451025435843974802845682263669952441116926891487613752901883458564671851431523578324888063379008665049494357262070080050010857107329827724482051698802478605313269179441659582083998468406933997488385947913404006725198451140047461729710891308548097488191162348634174404379130113640176564538231142968987148160987233783181007632984398813784928040591457973139516037395303536612940936693496918255433024537851774537704847193886956796324377566429046659690413090228314944013405223417065125113616797443278007475875175334524493579819775461652476949377822592742001057218493580280734115148250907828136298339616786251176385391440567409892043931541883799169279042981062388709829933457292666493766382076256748046725978146432774241049888366061948446047713310215854850390135907723175336607137303885351429209058011931013456765071160570439507031500392382589917158680871276765410727499940784429754527770791397795484629698399337520849487657226687210209878972345072904646157450603130146376162869935213845158074311961633545754878034630009439771651934388329853372845130097971438664942006920437388034152888131788847200056793719935624912781178634030951355524987966992508573651030867499792463566063209238764778502603810370783643433450632943939415948026272262351827177371687788289679192910265628953871563956115321047021379622126294675138540695017296584461819903715713241240093724913008694051308404072648715263296677144049882704710800103425099823266426346832485534871948387604458997917785746186736397051621575546834561824285816893219986148982896989012921081881850767752237532558862767509836465945560794526062028338455017939996630221231339351101575035071036831492786946351252087433491785463269394399194376896012295540494274630706902598634640775318805601533818693666597864215487066741284853320783324595067432054568946838925434608453209648812127179316009093250962850207934907788218546339993300703084646991493022552199628893627787062170965575946959566721052635359621171148825072723104508167707666716840164196996753838812359553498528447003923519496543498602161814619069096055092086696258679690058476785961561284934098158104788646141488234419370898936331420411044891348753417081864877160170823410000798210331506899477977392348133271183009083597813886281813981581801982670926535270912884834945195175044003036584963617708876179333074447843228611344727073020772223880373876644689268209188424630448923759542904026907451498046731655778127327163157679012779747981785484422387113617278098336294994596419243799717302947720184601437508785816846909101483062731287871746408467935354611722585383728489169271846265843152369575195403629658982734367878931628867090375511833653180532399754134281880717696910945867093671821792197083792947179881939468875210528308494105216404534507472602502710876444411164501876667507075266358568758930092391992304633426441057519395638938576763611514055346818814009649540099440363835220281697893595857783515721671924834144098940168909985657863800447267703709292285117370716106780368446435100270183178422806746251075907114699449178007463722031840497130647670499162844308714091795698048482670582820238821292234141847660158202967447803386300514501365874021217925416229137712489494983838262001544576466726034931632168714542556022425256313122574087232134099512102739184265241205306111391753083952332080932397998239143663505018606335799061819679603228944988391580683694829994531330041161905890516828770548580328629972384387613804669456518654213816081524713471659106111847405460182326642440175026444369187062894932667638639976793280901976404297487607997759450592309517660240708440072997323893660061386376202770670124686852586866581703793817380472096144308472704275704921568093311237250560831072309092326296056180381526884473047595322915432582194287318650869450250815753511957071337242997581320975156555781121723849831979299361077287930087911710660328408060035100198456469211100448465361928028944145361295339029029910534042540399918446037342982214017117287816045885886619287482761617487635263791156585067974350317911979138887561382156494182994954259208260323799894112764048861405698584525766631804121159132960011494573855817916715424042506572366267231350866231407340781889590664330917051566361321612543659834735669043171775532647447606689274116796381443190856802396928742100115829913301577644375558613723594491738578485575621367785165650655720931873515269192624062463060655347105367572831198802403166790743232896967242357810983011544843402665954097061665362027781902105158610792089091192281581010722760607063987011599888450211987156061816456140033473524075691552541033150253797558807967040231146216166848910878854054869949311219063305716310550640831282015625634867176177677751590465239118907490472071791660086052848667114806459413830725521459118053122346501747652830323393324043865252166786742175497015413756996419845364888860087824505338167812009145795809045213532670280426771710139053714552167122095426538450451706646325366229411829942359995545427766526826168020650007017534982007095750057936535867356310879842350949470052880050121193666784168319263440618326536060007513590228170359906697913130559727609342835566668087190608440619783228270887544756060067090513631633731411932898775537393135112841827722222287807133059531976875426473728399087098552615254257452540664159772150983582298613341619555957157878527155637601295953240282785315837701622032239553491197253987130245799612729142666592241426170658841383318676011783862528429910734295607202115945382988987997818161476322365754236024159265110981109147817882932808246640627889386935013363709043548890259576805482195580403819615904106030150087871017198334237224240454790931101525239803026639730724851130974417629079483784475172204765232423796988902119209577854590498370299275959162858933618248707737874195698872118763307956636656161011368020144291188500820397005010132957024970746810332542850034183127388473827984353454501061283327602527262114792304312999913176472089608421225773589719819566327742009435878395397646583554393841258547660034867557280093831880436317040589441924809706881551863845190085388453305233586585834382368100729757800418588099382187152400455517092286847286384083857507333784591831680489488826269730747552607660902231459771126911171333257976890209341089557523338847611261755206164177290027470017208259162366663302761809782560945060870508543280027263908202672687189975275926951488842707603213070945871502935014757729666672573921037521600394161627903348412804996022929011751638240643231529140534348148141922759146660058693850038992825116787891403404140204641819662480580751186856505142364549838869263875184484908934340531056400137246526528708684412714375962446196199569832654207551558456317526294354320141981556261972128716287644211253456679484644812272202981137930473047538813303701835362655787828045305379986858183190921003950774119803282667776820519349577437220702350796284253246495015798932739777344402595925649297149700917557412627694160390847915768808650880309853715182060590218483622431489041424796841675964771263361792088013237853436251456829571251835839062853381691769815221519743021119965126314854280039590209762165813486008514486876520734036317587700527940640772221823635269012335738775401035125406235471047418375987541961503415664969969703681327507426042916676687423075802800500195563841696408733584953195950039067327113317110537933961672121829095312071545481182084133797298426292617493299851531648276830025088216648228017073367694505403836607266236339156295234363766000425762462993967644323154236165206478940410399860337838754860154345218300034897694325403933123339275437136834040368338117945135682504896186528890017950345160615310261181689504376299490074715592303972091267187030140835862261934581506762572857433931777729810781503522245840951820003271582358706245509850988451615940575617240451130341748248651487078818639932478337018885077048524735372865755417998014538455937232299986674141583656668165747950306581973114405962940578023730012403965103216527116818683207938577552542013352056470946205744509665168256366744553792022217065516493884612598253158046700816824706120236217255125365172455908613055361477490679804404180409285938413295860308435214752178265834985478647080475434364860556967493178298386327101775326853874583193017204636605974301560170643279788814663084484499308199675788976427603881827709802452720574093649296445855456365911109002766417315545373963191458711456474884221620304658488640864659854516211366789321806946722809421672033803183532450701463597713091477012224486452145828896635895692871444593255873847542591766562003577210582257771441130427676825288127677282217303152915004448643679187940435194247116523199905498460254689584477065540748828868944506643900141670096430107100694227109594010165533139930275926868886831908101632807192336339213190069073350845985496752189018853528147198758761535704873722811100296366988963178406900988800539272382361300694617745691601674659451874159265333969617504600663681152666701128686711707420170519977386293547023078518408655567047291606516022338524336166887985085970954602185853144570919563730772652049050812316456739202331544876697391359245913070846796157686357689038181098300229798043130114611852064719285784535883117531793438243275495145392052257615285660652656807435627540949671607136208220948889592015310759119270764334366142122849671861805514104613139903557477354738583219226205888187351798562704711685405763040885644192259349976626662626855613108066837867600959793298987323990324258354166808782992690087371280749241027009774152374632401323548018242878740623689478766301629575689567946274270617771715960992451314634500990659355468464627151851431763713645445219315262683555341124140387079023204309136964276570199829044441798516584523153488550247271176602342862341311028161127758148186471394959245546999970459367672983120949650123666927163061949627989435222692245510923762277153620064715880453553524079272050943016585500848653195827656076429315104743555277706529402454416714659026109121217231689652934690160879226784526002059357799325385368334214078808291931087534521361620077191216598577826818735983585513179453771988492842620128240524252679421145421871221960755998323790969706486651629361690394044685432388272165438705189631264681413826125936496260858916093568513988535280686548079788581688462478548930386351918876271520937727044744663926281465817415016302623238529677061168609723958611414511113108441239388624081820968510445505155975114750336969161604908848555153087115078475880470425416333068433706526923056241299840406101492423975621030921615465993675068227514154826364942862145055422228063983964202581977330837878446597927751583418031032054588507908239292847896102354667800158158826775506610004732122128013204972055055597118542344879536414611015092059617665888210625551446347371613059433839320935723084805725096940440679258269318776052248949080587174925817974362882164578261471796352457021300700523163758995899556192283758062129124268765280311066507218776223810224394113750685752672814077107672318883730673481484111811587036986715895035800541659349200711064071264068016811671782886901625249956594890289926676999850310486119395956214504490605154954774935241327037549264188365349845478367062958011027264523154660061224699230848347961099320992453429571234808252664618647816406402767716846388397811858998192580191760660922845922693094046383742240561497351248890119886852735894276196608268821405468776211519211284187521813764796485845811319571944765304319893961429423602453801421017078056496701008569982991852335768880446029539098764360942390706408471723717549677777083656084060994353786063303174246180607275207873246036877513636750390735061589025552889696035864636106714947148208199530745145822559218378763026231508734474116818473451336404628881403731521960699832502920488484129467357622259343368426022767905244294788893241095428594897069538715179231387368540415738795043526982528862869550928435296383627465990017715110314652687423414903849260195076514159739912690707691748371836872437857761661354324409027832615608849449547754027130993708348166991052070562162561722287173715421414298994957382954779589569147746784451700085899296808761752604077075028299926403575396680311454411226054008020906822086510294565292611462535864028792703170610431711676758712654454560132779758585380158949378570051476316245732578021987700239654701941706219038013965794304285512449599565354689243791135553765042569222792281625876442671220424643606903564822973266853943800985985147749529260690892586645284779937145614753135754556912169939524597810011794868596282320332923004678534930461484545825588720534452746379302992145724946447392857810298433026131543195961705215932373967421008315734037932259868027292469013841772940724239464256939219196158730360662510458776256205927703345798306163594566991832885473780187089759592448153990092587310870839309598180705363636628544641940614659874103342614725855865611980246955799163771813690271834998659760427949847767094199196172659536052416897241050768441690236780227143842397466706573480503739018188267485334684315076070591294444538788346475149939749616369329978545580894528836100053713920377784365372326005787569061524361653232051692598594438710180230659852189010755808972828254263108347123295562742581503520938895427804128864873905792743704726225291780253184156826163713680802067079180073891236591879031447684954960458020784428021085535276783385585222993169821254573260628973229407947244036166506247861332802784792328418837570470643320660192243357980495712325595668606559138972284635248903910871281048303499767635793128432367852432497512637023363102175188798215281058598183214301915182285085481407964566108334308957274329671416204816313554435123686226226117969760850109976773679649884032081134946269598303950672258653176463263648853805708832667628206621744434299269296572779813053130219589232463211985913632603620766779330342377702685074870396714970882022799398584372861637699619986486469276142208476953542603287052331481878208119528868184656335969515687019606109561234213122336235647888847936564883843809706955129187846979735930020749591945152765240925015111126163746134692997839201874299186363279991876893349886451758823892220275639761894455345115250828808532483978377582989356943188971190703405387279641746565451610002996489371888646672698788289614846854204504989638187012549341190442638143532719423505925044328126113236590329026907064253625329800411261788950150766897082578937971957822812805244669330292296108152442926419519453713022999274336091276371818031625476485565598780877160098810868685485187629625349694132713559264701618317987262492908992227006816134643151687213824839003778601247370361073915816648632690670864041058188995929589725994854256267835156504358098505696245406569411167432665948634136189310708803406065143189463062960726430166949422301842170055566833100513258158559743823761237662452622702503890263837731981481708623008844314975554944737148849904735628721266332329969310517254621875441327648801059994211801938808173473476608156259848479750484365050393067038456537924752796406737187445687104971816912787667632619980070770098190643356289355399804088070732390580480131537083793412140129558132315262210302501057480836254163626784494300577989089249467001918618282008276602905222143502101486480500966376643246598861429035823773481474561251060188526498243199745784510266687398149177037060532907410448223478283188900921243913900753164954601445353597567406761676026324530496776734458209185533744344231931595040197292340578409291217981762662276680094543833339430406182300916550347293192974769180530767563422308353475978146872515347191330157899040174975781049002787785908290834809155812592579225947174097905924028186274076846886575553970019939937074132514538525171963410910716350065459854838679566124529923367018975805226834902757476913450885268424127390008722617646394232250443753747760989795914499408897505235498337954278215950769547995526503305427629929313047148272052164070714543313834073769651763374280057533314208245816740526646838395502491267926676810435953674999277344552798457526997144151002025046625778926957533262907395634308662290711533961275747390075121364353681016585611162121316171961619992659033544783993685565738914283531857389881328844170527442977924560024979315009862514755359562562498355344498279142313286783709012132161086205385435966434302817865935527359752151357685751650649768445798339619834870484675876321151075802243084478059637029896191424930263491237794238405795863148007203574832933812681600108364716695600936249641494503790842175915227997751752217333983490863357862338833438914644556557621898692474403258197389616267110743477572689129351156729361547903377672000739034574607975469119803448166293819986974891924659972415123907973008084944874020631858422017217456150111733168727928994283345808638582009913965883716309599180423781342720435251421220939139504622723977621282234299939963503516329149081243109665210395400289061403092277011228355616784568469152811740947767489130232240488218880184681293420475009078061996426912229397496287030216209014179728544091573223454133950256357611847423010460619498476340597661803019683400327809639174481774659892841275176883450061723189061874098410188910407609207387906896869320698545044966099768998750924118199559236507508808439639989900268970116622871423438915899041383804555694159768249152528996594328542831701032046595368933604830320961920484542547240137658742784344540275483901644066210577440126615605778159062627656973310533495746412203349652821746439959899397624807811327471306696388698313695182122513321227830979975337423755529386482984453730971612867100827829028364627983760755911543269717666722740171914180112816539711253922992790675140614104428915048522231339440131364957769748288882549995140929826173309277832734029972757923316718067108015868132803874425410792745697368528661795486024544138890123538237292076142534415541671431870038720439459193638979580627337747327121176503279393144190979283817279180604034815611737851293769630392773295477111349868313771076009364781744326054335067008543230155922229129369903338272562728666129280433549134225311793825082289227847827756241845371463157885222390147943226202666469232087139834545295372665963422450072684110122599664567172366663025617777227642687283519000233462421948780946063964218644117158891637562817413817539591177557596003202078424385603070102313056533971444432430753976787495979555671511995424947863801804898317782918926644129128632149630144474354125907144869326163683369075863880580196298098420648869030040107280842823300641303889675978821814159962524978801513155888136326039870454666456874429263247979621716462130883334434463846696788550427066708793802138819983004143210355021357568867774083924874288365446113022834567850412593904189030365866873835990610779410358136754203866901119678402031801350160051949133543909991013137608491462266047536938307888273139322745130821484960687049820622160178064024368392247564340044171805184352251033133997934701154967120221460263260460106012949834044116893682059303171490415645889828340722475923130756539562876044854551765214224216537602087808821763687596964070550009215437103204411391967541536962121311052472044319840812256862476616400400698974737271397930210691318459568266056852402897459290593835502660426938420297668686221383692242991094825013675658643614813200149973558114589956930702224959167531294301168868839406184157162005840338775703301871855486681260809200244349002386330830192049118505739124110196118920402074497993829341329630484698501453529263324176768279904428987312052073696193826684491448759357088902536075621785500432276699002378517754808974969379470548256682127925495689424533259173417517699695058625838581037306370582498718333593074744776868348806432326769659802387243323176845431602774379270206226527568360910864729346206574053750546255490531680889688565481146289941705529392828175974728345667072613956957348372217844692209288490134619885589537533835749895228058695925661145731484503940252935566693393918993416345281941215419359577573084241309416812314398734441503387448642996042076439715955026992315169655097577558860328547503015747663848859451665074759935989710817522637331365705458923781752532135636181651077169844816983385528073565340671831539667487789297823715837113136976200884533132871183648981203681345868688265847218497949677845167856589447629550970029200624208971563000206790264912396786512697546969950740873292691600297233268982760713931476513010736381570946480572255550581396420432141981938719317554083924513108468417760078868904158713332878715985317795358699927558372916546382976194597925744899521614104536265795489820476491094036149296634753719539176562892265294487048466778090589048183865660984889749486737184436088862901857499420860581053919228890798972261080708282319066356225801751207057339912368754871258419694233421879094708651826409956678770596379976706431573179013866618130334220121060541051960745214656399359303707565642864336561616192938578235021770254893500047400750120817679211315304772157044242594405655185746010488121910867384565201079753176880856092420235868313618420003852265071506296967007844894614863331512150884887345022875739679153816177991478617462602565447056966379094204929130733046322518872786714423283968305716729746200171260094883437104239631487770445664143145185951638867129928446700165100907781079145635032224962478029370827437847339998318982396740680796244853214287650145687588271735723063911057658066345324052241669324263904707454129260532104075746990392453033646871409286219679297424426959731520337667492103773924068740022225824049942934760898796561993074293393141124284684412308372668986131326662632810339501172039524113960579973816165507057843209248022511515149576903190335729348713263498136388532290345626628717275115746356950665247977315943856233278776537510950470429761977941365947159074783557926929373653219737091471006317151725693300090198080758672039053858404018705548207015848401674950972721266440172938129124354554903877262695734446353424306602409255216641753430882713215578917959836000835447851141349726637243969413961766040542853001534361923878181576419975063003369230831307369558112565861284254358568427340909733582769585204659060440481272369090358633455732462165766816056760116702644913859010897699993509864586891445363661963257928958563686723776629569544596071686547179488436724384008949602661456302781167199578536112214568132889383343835703201237196608401325296853416681358600135825798044938190925267565301063508695986419515463479266906061365415187751936448509962213903568519455554781149692873944997495513409308821916081275927338263485472138285894067016977639909545549292328712509929117922691185125718989150514003826622497015577650166293089555263942326433572647252384165781127017180508615580952254621647635778640878349151871687710589647442383551893404172706104959074586639858557022961618420906408055399825196886084977550539147368267333477433248663292705697009030846617836917002336780984429779045106176401563223756410602968437912099486587042568859980901046792551401765226803622940648084627242177065790664623879049535996868420616260364773284125201316323609793189513013303053797882337367271217090472619579008399837277488801776699282965625231677332624652076965419177203621726054422797142495620473984831014652511805022363811029382630624307001148481746755057079683959552770799192316363663418607763818473818184443892091606729754921876439197720126881282008005672159293838947640311275385190185587247416624330720425761970911020726828848122443984807546086537680741308319792950794226874219324966776049685812673713379195152630784014938644245140968239194606323892167158107594319936172044940502710203250956022560307538477933979577395021557681670656787075536198951297120787279704411111308399581974297611503511551843228652235069789252849544149854324955871527322060260461519276817840713082340536787390141336285129051473963769581049865416319109005657604578670137663681631169121799595752462875719986890327420065753962010825041167501156260455141343510403997389709643408066821767501739306296826305707265103721451876558849623750415770475633633418903208732252703733427425611529996561212477369321652289551394017949341919588154238100196697261678626447160983986944087571584132048124202781693351816275116075438879966614079933315894772710028100451152388878818288747672759752027298678285296775486796238770238654193746903977228313414863639657519180076262148209712589647482219735414805887892199746939719179970282770973242811101421892691245772498824941506683743624934079529613600667423240480480307091407193106111903813187704624743054621080361974344589941620483220648012097676138603440022173383089293895051125464409114554020700374943181432562939419486706987950918502479752922002461836456341888200033974471247545285816169357868833396527721511437163817823415263305987785661827339134597593858749439198512878299736612805268110385518063932565909760642031921387502836576230876478610011086974290102755420502449270278015439218836561855372435898511310317378013236984053113357632723482309890463612716409783215806736687316877688123594960992117074250525937041015653468066247927458248917970067285003754296213456611076911844730723990757071327259141629754800511130015507435714616749374803455610375605854666598095966737359309011157208642682669080915184849761776742080146055999979359895041333412576704931431176149851086833085561291760617863305678285875188531214943612046897856864173607017356622563966922084148207899546607459328482675198135725497985784342759784397233894297503572602945346647936261182988612846656664158094635532270638261648137791927612998712599773473414371442586621088315260736829010426691218954367642545314119876918749563967092815636879486150240579762337794557061087763052802230908474050876370188934571607891870840507491214934227854599636022494506789362198761398512617413305097517711959108410911700803803883376423406800729788809531641388713805100281298352254805241785011007572830829026572236723831233577533882584183051125975309277161877256980232160057657273280505077308212109574724058939717242264808064455827965119153411311209780152440333733251536681171075734208752806114567993221021949588425259776125539382631132196229970402254308007623507138034641996264373705664238754875238306605013072674324161579128377655955889920687171660862516164087527587119116460215675739159261377148795697793514033278269817267635499815236405323198124161178495609407081093682315972650217266339712703734940845621331822430511657039669298613036254444465378908250394969157754232026933614429294182053517182714300950147575260289869199774122350113046056776937217032212824881166840155855849115458429484313070226650661760414727632327790211261440818973534457792719569636404719474641028894196185198207385695334296322525761280346153159411201203621498519664517326177291980354984403442035311015820167818792988078128392897020123944703654821912434151429438804748288358669114665938348062492429241675200888334778587347241987542392068881193814763525393459269074249668178851308158639294888856021315836033527553405772499561050392448958062736923116937102595031492219384988649319462052920053545315979137665380354722930848004647114314300808970671560979920185579823179134522429730046638902894166965980350544254774602378935261597899864637969681080665779879141354199286691124733387614662346277813102069170602543822954749853065821807053398883899737314507201132633543378554286596527593915980223626553040442510005005722791815973265664585473823948035380677386214886032852332164798819322201978651142310847854192707858338427601783485672466304181970208252279545432914504618082663913906371640222593987314173483584345713157185006910867175047053207185329114016655217043362545331343455452578832742203562748253623939364810258939648235825089415328769044477469391140467464638418016756069662617942382872153162916548734526340228981531919258177297277323185162581158668029388669355672382338122380273569203534839056409467399391523130581283130249893431636763583788523324071819615004265826298945120364282044084339473357974709663509823988441889157818081220782002631172900657609767999178505060807892462485794701741405923966763912002444762009427202936417288974032601004938676856233966309868562105587736025947970605822305488039991548897426308352937733161111091023541169696709355580500503610361492554149719689995118808591799602901899975243988532988379628369862212489543793068674698477203979903660717160800198474131458420226937936385857674637917294732686603478002689311048859804854050371125829458693128603642960618866525809181977844065833103787534835474240504709924513546441268120725408171459846682251495631683651478774461323306401699945085781866325206407140138974073968369930061621833144138675758416665253041905043191299089899583154485893748051192143038866618659722639782727419864189693514165701557419595763403515128308221639916086526936164281243231845287771211578829418004409496622963730042064193841137994102276249199539406883594728279383339704556217534964713388435509640425667794462397717834919916004658469418353409224392688805757749507428972490733122859012494452153394889475746601962049401047600092588253257834959002709844076262901873817419654861597423369426994082440792930130243861128980577502408096886348202116933923813984323242838455649648150231582533763276564907686288039424096620045033952991580795976192076680989046051365647898098193868171080084944700667341527084058528803469906796384002028997333962178902920675587814750141494833620643506810335353332113925974341127840257147088749437715159520328753063679421136740964209352427689768169501846067617715061237177518064703889254556019180937383333673280974081736601811783627880170381472879218061965095168530467058079950196416788203267791127211067950431494138026514850309166536476299356110754923246468452678248826344234405088234087189807835274926543650008941135973589014288559011222065484647527003975580917419722674140097456952967740867053942189003428288388095035797328161530652354039786760186541132760799433861290093344022301445043934861849653599634608065755359766214075774085526637365626077616312842407080582027988535290575721501812067997994799258634980616613572651689329417849722046562563374659177810055556269563831151159387200286371462858929552344323155047018250119222010502302077828235661966116698767394660834891507319494304129689278144702770563912086585069953089721665754317439995513040606101261682310226174305701107450302456661926588023583683677689004820387600866683776381195492509315356314197900695201029920546340551528848674670381101680862453305298890137847673566187620741262422352174005568195648383735617736267347120403399490943025458477207331409944642470630198761660775218095802260842709369147950767664137596507902796792996273757133213679269476960591119456125048282007661587273622480250526169843665493955246490493832200022888249874514795563408329957001090362166983168251296471386336235441538405185054215906151275094006425858388904601395453353420361833118207870099478186672236436740684593652236959846616825738640973946419756000672884513906946221339703376979914225325166100543506576388328981353297635711845912100799507829984852898114250000879102368110914755338408069395725383270015209265284777599092514413971639327003006898452145943088961209826466580170299216475837963724144947608286485669149247595546789690189107250537839126603689878641518284383584527734895470277320570166896200263350146350467152088425184247577191435289404670523983330361661741821204751165760085147244376406349019345810724825297577057778227285111173506735194219892348831674804443319354073974046462857037289536228328938781013242476430320880709070564662407564951978300368200566516418778623511722987179646541438312451282695855034491585538780891896616385310160980188458040487000204484724362796845837607420581977981964241924278738081127295374165947332395728151517819757856736960537237801041185304401655895332479816519840334883240286556299037465500379464449649351297696513538265190666150787087030621864042674845002025388946097540874722444785065564820456254713997532881315244018669740165032533351108321253835547450667199784862379906137802119121526712381601042767294262747528541543648714234910392028581154310933852211751149282324214658518334898922911440657410694947680887142005417253586048729498420919531675760578350884395128243641706850783349794474578669311775715285273876555887203974658254929294401825915569535666422549901342352618291189804101816404673912502896882419028748676666397723321057347224459388544700036065538510294757621548599068689161548747048437425467384225258464992443753582080436528385746524881975581863994054191510800607128872503369962724832930673491208327595337552651104445592804801368330646005186893188329172022553509322610067270858704325486754055060318975737461364939712180663619825000994482488798105785535913972282711501901856017693350459432745713683068692064584732364607507253737344260278992346634363676366961716072524646904133152616550233028106447882750519754718767538290147202343383066749015697863086567462657892141184053941948438799698465508762099563849798171153776667542509197856787678116956953671264058464134781965171038954757479174311377828949551779781001630268105429787274540367802145459548656933713386424963000036347388785886194918076747918737800406997640757498734842094097188426158047349015333841221487851671688414096216720997493832399220231930316300306810813435248982561041100347914583836788425566281986364526360241439815811899173228419861811136433543631670070235391459984611413396219212751376084138668876943338313671459607080643882043841972038800690068616037460991137000260075876758277839473577241872718186152184179777410669113384259399342689845792806316945680798916371337497587710293044571828948186633743946307528313847123466081553319061221535507076712447371068209384924225757841398315861127317785942550773588033469832521210665542927350502488429929152289847933083031837604804914975300701026647536589233339508247090183585963399059084809987522306982927578861194361589385609996540669295020800858381961671362590958170598441012270595657132405043333156625916776085720674969118741438750763683429208441425178321507686322602689734410283407589206972479547691550803666112750997096276578511691580759496354842206012489828771025106440159106054209761043775880416894322951912470554238924788250883260420789188101344667137673950543809117592071889928202007472581041824695345200268488501367536158790177928019260068143242291545459736457052938433761028809763083644291259748477158243809601677855766193768389814888962531045870821989790317974216683369249293234154220506636954278817480692963396069297601663859796479286755150552695191335657926553568377364694803662983831333770394605741346206236158746988706938703587529733180744861797536821437212763313400315275610469722387681223065803179160786476447499663780649447222491796430578495503376306565128464366984148538554384239557059935851811828114396375669184003830484489258463421056460373213744444193379548153161255095998135507774225183248286699490477108777126258027815527126040581464789338177150009532772150709088424231182195460983255807403044279964886485560223123371893047216042331637489030354616238668214392174172216781273224822722056490397575043672002101358883770108871856598931690414730407016884339352057109171078181223914706825157829264154600429994153585061326224543158242943644720109447069449188573179995380173985194820899632271480533717915859237763982624102283863459580994222928765812041422315102182926318412106927047173463643109110596397277259356312509930588691412998966049889545909650339336352029094912226793873757204610018022532754591469561407875576960173452227761457260289411876828399835264107129330725235036815894522999026568666158677910557306423545288960812634903295463889737970533209850720020429774628192927168966076551176740637118582369234103257990347968088742075065302634155889473097144935118976271165546366332631475187621152790182101260556871113825127725737896901095064399964149944532947249318869187541591306721933707107242721581536023527851237778711267517523661472925563067908039650337978681827047891074843650882137636987190435394767557774375583324207688705144862110426975933813078396305208390612055921431266274788998913502459199155746270685049042301434081013160554374151665883215870289499533563213484374325287210474623704381743059329174592309626684484549598360282082538990693643685430617188295253950312656346427720499081527773345659801141812776095633065265016640759229426524165105948085816096354763996340840147792388809610856394253907845748854470425593827176656423013909552373312496033847824348490570781139342334508983285004867844928852183979086785067843072224969584283811685962577325789490743427877622993485180698353714214811912069089050355984627128760758759959960722653883897848191806761994801954836533778192480177350683004993564095827370352751675530019190247296212909172856678980503836077359449722414588274432334426503413938682269843684328559330878700133377726687162261336222167989710929681957751999204572788742810231771669234757171896669709154294827494349026911425438636604435755872338927220594707274425756218073102599327655371235272078461207238469252383086292547082934750615669283578138478778830555046737840427503645892930072041219525174194503039936169527391638069441382599888786161570657192451931334610006301668528641078856532984365059059717852456720512942436851998468594638651547612141781950194217920700343568577671995211367224406222815656090873759273537376257127206677785463716764737073126872440529674134332830602103529305058756285654416554410050057358979815477998402411927341248698768568322998713594316037356127144230130485979316038604216782897010019661048965838966193380106541565247844050141515580929259764668248728201687908190989447915734719766074260261118584732416170334037643487522227061233876271431276117438137894065152629350009875189671016357294136334462932050106270379340892464290160831462238938843469814246599382927262451019534657551645069759608933627147199283420335123514998960154273487594424105246588952984260808578897602465624607991403562566216175191471851892424614990532887334604891928500815332255867132084577802117170267832339048881460851952941226829906468734766879259255846707589712375904338788084328180083104433237296837822695077623145644176659908588198521095200217216831611211704252863842396305623506045731989045649201981303227822537518295783068100677409512042693978821704241951521329597185134588151023107824830690522221714732061217204292394507227906163236649472514054083357321993472703135250462485491854418701202025004933421792517993544508775470794250018495019913939146593028627774835276871322478303624168606731565538129515970448862768135584447320679333304309751122602638381984597956993243752019637577772490002864948988841747385270693967519272252319363672749856521647626425967176673588442833759441108323487542665901338231314094130046459638775530789769029189199841221020734400774676446678164010608427307878856510263251033165651644131857943325266649325681769160066071325259213466685935716380690682639167378717787296955247937069020203218879063871189752687344456960044569300095442077846481814664343479958649442065273995128334759050812881758885293357244625437556481190934730237268570074203521384394276844624570398002299477554488032272308379887794249983029400742151468366231483277450874649354218255426504769809622706254589400115864763852236876354727980829489571963417354788527949433730139399415672633744539595416725199320072640832134228193768734821976525473269706510493457962079038758006185050641068026462312867228158287049508664195894615673111296768649111968061978797725206578994197719525513904215789105806273324574397354743394999905813730953214236334611629130249384508794688771566242113051903382329577058585374965652986442059565042302121087117480348047849127753449118670403681502666736285826982161537351560187833068747306916536961070226749784087677458325531008485241178664995302885012202376542292892174057238287329915514768915944231501120249861580092913967826669362253186882232761069962029976204132817889072993310936625507979936507224651059227056257856311978226533600195210599677690813106792955649567017477765959028730109923086407226736539801843809231976901377609518897407306172503589993334804335718730938554155240366179130770165224681765678612796493604010392493542064409508271109450506583360997917425980745526421073022511969999984052633538535005124248447456168400393607935739711213805304638795414468897492112227368287895443142973522553619167924408924935060744725566686510221337664179089304768934782380557844109141060548761511468020889815236554859578109246125168880749706560898170303743296182022093802423927136660915494009371352277944046348807480656733532007663709292636042885834520665600082227513727916466199575773507450910130682910448276583971573521259766389343352305265094434880634769440402976709662737326722377422954933962478735003506494692911728996360401462241592929803003963924312292547297390515862935199905510980715952530149613014853368588945456846435291248055047993150388822261604430248314727388837606046180913995392026382660510578149538165515235469092999143338850704937177253774507570195252726909953914574934985170079676362283443029590102547502786552792730263722290618980360963915727365327108829256948111053968099433864385916874604654435502726636261937289989923997247679158468484946726828784938091181406004270039955230317923293135934437447004635716588587286716617197552329061995816555754736413914480504579405919396048468927973294571550316905285419503168401699549129289596403018708433464914768639910323363111390298972837118970556878687632992181063354540939020188940649365930068435461876180086416779623821345220268988600559263736225533592787235342648228702111993225602120404781140538166753103528051762167848774943387631184986244570270018503240860928337468885236399169626679237981583877601374067370068623783353195115288867530910683927006517099181541145906562152753756491359522076301963461979398839422388450744614628361651064484356869723607583105396380608959443013379546409091171619117922861727990992101664898878536777929279838626057026428418939694905497922237026779247935690496800450625277368580687514673322467239106900134986770744693152303697630355392268039558711896479199108161067506358525857177922670546637965645785820512236883858344034528249592515151972300872586171599342179551171792267826343609790064626192281451892297588766727997432571844056484739024071110572316026683955967778025911934378475064037860199805711143648607623540026457965001235404878987637465601590448690866922268117210112466036530994741725650656966920318803423001827155650055394713272271771634314290343592211247874222720312911658347636350106847440450843213625371793611202496376989866611899117986475487037871183359859833922250596178911741508733500538135428637242013379112949578025583914971017368989445411403860920595951369533335777647395966394823258069989142904656528156092306833835374635260338385891070325513871124358541560386464309160342186711428173179003845489720939486507988299313562604808482169670280089652974361949110514640001168038009429516267082713518509490528433187687598844065619188793779174420007963108721151496024412511553971060241583600053777219767318531624688584113680453509775937145311983152538340709932677483640757678515898968236741232588166488390671927687618593924808291716850488708375706277266533843061490887354108008944673628186501193998200850810353419979963666583873896305902660432579954295978766469621143149741003863488889145588378453726685558971565414240495242380511259715205682876484346732586112436418327963086572334212378165004026008587324722860775269952301526273909922188155437134983970909495433281858339335080985207030278785211364163049623430568385614032747836771402372080895689083256434490194473434921258952935274771014194961808709548475866093066676113312932477524207352855261549973950832839565825307938853620385762032764495301173595380247770981322350548474662849490063782134011030527950185802954294827257359706066811486767551285048887205516538652510537193739373078588894931820854524289521876056199186451647870032103555792214318654290532070518621809732307316836683245039771297811384281285649020945930142275624008605684426894249826034748269597698135547357733666969416852415889872597799487095952688091745730354785181317138428746801854464004490979023198145028097674783835487260879318983660236487855632866353581063897371970597858052045247731127063455909293735221423490652577365968240699756986369679479652405706465747376136471913201453748707146082069766852829511238371324844884190080175845302763458765889654401942819892186842001312028322373737914994721275032317496242367795019948666416500369490420640494758715599856501183164628925188139931256513653518935032627428581406875643104712575055987953745959961178422820640792891626012318889242743808389108189171339598858349537470728011959516605861823035390246869193462409138586465687605957611851903919316239476421937391982026491183089063669331498259102534495121818649237646994572739774576027520903741627190147289753315166700664802171089123770714419247088149546064902570771789836745898335218440338338910244201218018241798490433737995514172963526776372945049960577486319357670287037210811873151458185872646873770825471433109131602192918926874213986871060255057071106528592481268656218190682957658178210648056544123488799460115728182543375592136561339840787277467396632619256420952457128835945756806506578111331296651703370663658985823801487759082097391044238147222265711855583428770768426098953616198321954270675441095741878821376292434763124279985788353832927392776272576868208190329962738627789582088446369272609284823816096469883964681521887840619062984344845837859214266694921708991238765888777376010835946120764391478893430245402688125222703784217813974775403067860994742962516772771388047062168871445586096277939766659859886672617481785788576358750834427215478960883286364128734147786931002797805098538983750679433595704393860997121082756977929545387871962519997046056291942842632510112971884849277840512056343488549907558359532435442597274405775441835585845839387087761327447170631853467462606110694493740240025533408812920905343546863298243037881000946900548755397989586904675083767759487280808733325947849465871549814493609218155514979027908284844494015897650507103370205508832014309044794274145289929154511047661096179247186724665726066402918432088999166146499229241163520420340445678141885216353883301139608860232172424188712653240999986368392823680941494854241974870306813304349618080480043644551385795673678496737401318095382325325141031689075149181162532062898828655067172997385946172289213902975884108732000402259769672661361721133691634559718583579889181715969103599582458825535803962279911116859741292311481746243385100790721479277867831161802033477321899180736226856061854951866480902637976964597476728742641126916226360051927144124086846078201887728305698520728724241543925491225354818444642241751674611710439372262521043637186409063404001352374891882009711648575648971286453366476470997250967780744585756154911943212134354629904714338778259518606731822180506773578511535724780451871018154925220050631133106807574655806094823383905016982180081065066276793534485214806977201008897430196517470396371255105292872810094852303798977846869224025580613895114381339065829003456131904812196367629488176579183584874477351853439617524961137769844500577547312353083588894970268065860694743404026263322313065629623788873453623021421080275545915230948692637877670612804172546206734079953527320916916171207074502798059348036740381989900713546698110784516540538740639965337763848750041489692552050058184280218112269500999085784536819015729695890658343861539868776209710249169524392886020885761877289369337153919695260655758940465257448808756512696638301640561529651015993022439472479349103680102084612353411228560222333757677948839780212151554642520426960642372047347004741302502196001365322053688384519557090166185558606496271209157468042422185227253165646837127072109227533569346623729472601524384927621712076100362917907376750788207923000177514858669161355405390306275995930744444969346609472827610658477804152240063372009451432017598854292463143001576918363676170668362396371382974008700304786339528561903675908093823295188014629886286027380452503805857980083108132539722575883139402799729863715698052817549277305846746270063798125314981062603951574043067373060980129563494926851151685294801519093410091849120816957019464594126219822812483605688354832090758818311810413827549609776459772001755759556396173057377997679527792107179968383138797159825753352475287235847023620395992988313272489025884456050219467841724715570525615633066368711572858282352638948283854814505462510872501850144624078309523663492968920426166338857628984735613773599836266837947884592296954846442023178753543909985618494525278056203611931707760792672031137722906128429038406649648966869649484199756091628945843592566468403577826871509140382484792323605267827611855993048972864849198214517121209609687878241017810283720222547483989651842186486088363337157996609531517638940804171096193513013619210079516921670654399346213766695735786929604504272633775443594790373645481400647780617713081075366826405978368890601280345253015791459225174146867473552298814245968189195961257930010287765770335900274370094309692102595933611146755533682501953668592836508239513734811240266233118033672229297517973787128011340211765954946313193855868325286338093850378522705851162770557960622879110272975105345872784163996389631431496573373332943940359705937396493681249317695458358795757604629376726739595315363908959212311829329844171310580273404746383011132255447119093817008637689629817309270091155226849796142599338961507373141204354391181807451798501172905758141277144169255807790470436165005505595614085307310859411880829553017250436660493782265418172194259755118517711670193294723845683000946411409551142878124471548770918803390936288725920252631780381491616929364710585970062382095753098233744421976613750553178834319747044641184679383795516805057338969428770478736280343531422235651633742448014426202963652504316759782713366369545871732787000420104199576412903116538417204587483249349265329638889404620248778382376203651739061517741966330560224838221229862876477182284623595533168730713904271430480424051845152890192866096204755802792037232335604426387180781762535560880765882403802692001072483655306027390346003018735724292096681586905277866912423596616761635618598624117144877829390113643206333532248451602781820730820574234711538533789903891960943335486111740995247039197478667910860508062933924206822018898269249759357892147997485584206323417594477582267981560752666501666478642515321659860899805976970750541580759932059701873363106596847553337911104058611134253602968869332003379228087406272958955514669629892933216964341903510620833932160773000535033196477718122880768614256053716669662163512822350612815590665732654414517664353956778554654385145290930917199654471776053935426897990891700204836963182395144289060684808216693764745106550776397590263977388371955260996528582611982624713312127248779385887443545950561579710080648884524290690728059664364948578777641527938579033314834369907522861041655962568879549002152018823459548163303120823154481513746756385408502551757436582060084956726560260023225295751806862809748499545483171179678620602327831403830565042163166821310654527756281661990384775293337021616104056247049492824076843544827346049198730736191973060301512202104408876423677146804027481275790500635431890748575984699606720323261503125287565713888947368608269215258006409661315932506233633553711972217318195003107008952829643943706255638834108082443906333376808062979582760920642803895788606934316660048616805418791654907212172839753501674466777113120315433411655991719134634194231336969799575312216541386447852986679966811620038633772058271739983063993649866877166889326250743935846830468170123441682886826201801018229642867052307497376574443916549336385516243325576846141197442726371642657800322760203244265235871339198424512386124107552105027682862129497481358470210932654327257800143455467809493885769413171826334917120694298993062922256598253391467112108726021371421750226970231507435614407005446439496838378753074504506059772133528240252190210819372965861996179315278840090941233256185713335878520309684235791209513238607247172251684725043010855737951711353718056878068846493157424072914143487376671871813884601882494811499129296873951805945325321080364257792424657345114822558648031689283255746147994760743583843525599284405387197521244498971993057810949363195447313827192750269677374050399078049610938386292172901512428087633686843265568598504312022865527739493627184726522497830899145481502779279217953052526000572331666803853484055927280780994058769396042653316708985311295823172265720268626220780264172073160893221303526730067765446844430572855948287083687498216686224048988130240652778372239544505642401352968029706360246895451780351677598258751514525118947426628728964609901457982947167419174517698179987721668092404486833361767236234804568362410363280797419682168150049737475221912295783913595775528542406633203589440245709414028648820005017507950136833861701320950502680947534549944867473666561630410157273864387259664380049622764751023681075260693096910848466224822074546049760377796180116980482820806456630228990319637822335864285254597208206806368386694530814059672541313244592234339370389208704127281200931604100229383279530318738751586489232141012314990248279579748353320993865245169699946011455724548150927373618918712386055747779938277974970286831906777312090673900583725388046312792153530333499362540606057104722487927729536185040457338067182922354977836024325861785953933204207921594493500864333436701208991263227249626561288743818857359670971860240295642899811532935463834689785945809324791416586786726652736897788167246596992965092505765239748344332608775329675591675051170268970690270547077419687555177467624698349597539885387642688026125457557831616780758353315487160278413257699685438411741915304689354170535409627871039099037441289388879396136823080475038588075011505391032239842570440745681311602824202993848784090586262688509032065375646277028698700256870876065245459992182763327765193733484498086410573919652573360230430263226838297804005280226981869656674529369041082970849271453606033337578116454325338572877533351967763687928697569354061554069796901855804348803984100112133881670178292463171002011910658371494935442747150387098409550001961526682681073819777012282874121098497116841008492421957788375120520783460371560236253458134833855946613693228821026673061594648749485752717585326970635957265759365913352640578400699476477918407746633803037867290969657542917993069079937016969517108103971418310211699953976161755264053036411753287706249273849550464234313572771067859342021263271180450936829415102006526664993402833411434935644573133096819098770994574484937878696240466301743651315527651919480265682832467356036562496057154124115633697140522354695537982435609592425872773708269136817810289104588692276351417036042378945883871762355479713431228678315424655428314502035362708317519242410855735936462664677508876330609892396170323785161005660433954697565920890822259482692270158594547483415462908297280453522091428409460732919220178764970139919802440498967763674324706633227086504227790691358443175256903907414886258280533568104937896865900754217439570105066187852269047795938675427380053894613452188262318554128096812836639535717869324341137927940188807972784040098107984849704257797767974216120659609430805395122959765583446026461402125154584918691165398500353853248012927040600278754556717861849469511034273381504819360236197878045095929056920777823629771891520863260774464503703269669729980655477721677392252529122695654870448866331380154385625179179501231110558761639156827877711329161529349086968177775733516405800392891399416279666318355505377972268686055141135272292789100180937852174473261822465476428335485005547061607258466056844222003639406268730749105060690082974528685009220681742077714629478825890328788441827832090772064036385599103065363867055647478232252733490069030812082480832482748983632659349784421060228732373643049862388550522969589639448279379249639113084732681861098352394541006353330973406632007199672858128666216980416469603858142119462528848960280556256185551796637764430564886419447353270865667727286528451115370221133075434955653056629980963221369825093187175063146556937349059443987530296423893645097426396922841641471814372325051631859802693798132556725048332811319115432760728500356011086515554691680143631446811015340665163645285617772457151386400743347765194468878677014278517392836892415289791565882948172367150844417627412678491298253391727005619667189848411786637656403046935775664341078964388853904708094643387407107382313706797136327110205194258300944303040432843351376998012797616004895861609205452776344608128340361323129153539912590037501986193224545275879706487790109202231609547516654681514707977773903397804860668565648086588988834863630452224054987638062080026042016782366714533545143690680138118147912598979216056289801970597393531735987255282360934023661114959072467593882244243735844515992140756468114440705174405392693988563450534566435099132154068406669945060773086068071901784000443998188329234613054944195592232646471100725262013905301364574908235995798979543973925835830846407099488281355420857316123112450036526852004663265074378811562167772481447797777082834704938552122192920961617750621993187545652541159208167778533655311628268149059710319049939408460684767671613636229567979720075617866625356335580052263718470555777091111732343253246042400704184075893161144074245560377621484973756438736129911850341792875903349616755248809743315363695170274396047060148717181408402534556906188359342168498081968875149609817877935437263692221859467082310748017196686381550691864877848634800220350545663861600894832769102153849416494406530761067563991006705273001706229160451835643428573979063274485425817617521804738791148157721002737567688171761664811459041877366921325295808810550695387885326319218417751503197247648987002224510121971211600202361208852832071322282240066922098820605341364144839222655946476181231449727915178498025268241094348170850593646860666124683000363894003569333699870954930018597576769897137298183563338841332047917989402956368403080187709711721931156444354791762312011763232442302733261979691251970539743913940413580114615715362837099970502431293415107739336651332057610735881717220527919229234561971064028688087491257449316984369392788225628810279854532718968702143603397440642452670410626629433726595648647022283456984155935038547121548348171743312653916040116133534288657751196425201473114961945639532609711119254295835508749369280646097248372544639475318448385177326618241508080930952574444760533531337341284070271431311587672314977354323927948090951655763224774250716048820013485128322038469084755122310239810778549384274047884317480981972111573426436119533988675942903829409939353125340815453903560033580491891634814071371574616947321939987548073698170636667934835386072928314906428814006653044014931928302508289949442110854972312178743541407286371746706348938035867340894900562463583198188483846811507637799466472949150836953722164106883412161064746048978782282098737719737790364042996703984784180472074877543215470258623561546169260091306916498324541923974106740773985453263543634005917764255744914411869183428310601005320083303675463579632585388295441817623438698414245246596722969792454668467903748748278982134502872436048273578839977466814849779550096654917254652777408515574598091695403272785363821111720253880987731730192622905255083104985215751684243616676883892015498523401328175590063844972183838207077913998382768646521039719230193670468980271080685071027740881691272017666254031444959995309814930762687534841614528147932822987869684264311629635711143906353427611459599638497241990985952866013938504653637590524745444998717655033141327268062192378886669573159167978661099495056726683400365607651459316878273280851296487065177109625854411366197333765855152588298533576472570015936442090197069016114338810439752411787146370655406708040416140803143223866612524602659697831211357095458112019300875851894150725283800758363612313370933761130022632286665102628878405260331858733939492956775966949140270071563644871890650112732217091553460234149348388970633436178681519112502118481818202807059563375836917629142457500378778804175036160200768516615920978284313606867201424860666035918134069422000410498565469328187882257192623954891718203319873184255699037123790900384826638444037866931479369530449350761759154769019763708445258028155465238145439246473090511763212565371002401443293707801166820996283129821682891742361157212536039415694046562028412101408644819778622037002112004305820367003349495072266637823795615708550080554482399553021136763454085532895337461581835349855444616392887462855205503665370450731985860247802138484763890662294179964062053385951815696155131781771120703036028141390599204850645776747485233370458627716794062450873305762646806711599241388342075606618326061987934880739783272531773817268525973898591244830999841180395738490225226866518954528251076831495722005339190123233461369397368365976773502306719069473612409120540084093011006683519560712339038979976887152481715596690611828581074759843829754400471055803098850288058271426087520801170573078753511467875564745428997398098363758582754754526167268030286048894201615576536350778899870126113876531316270558758643001303192962348810029533924037236598676626926583194333227465792814588251508785962687979705937352197929724729206434265963101225731569203895095007349562159595465901759235934209786757146307976620335277965798403119514183154960560554427911874216785275759521520201356999727612491927025952954459386929287341672742295371644964204521720510693281843402921667741940661694793266210191238600444876413850783555851548173724877054556087673523401874158165181164867647733132654819161318310802159113610322629015596409975506180671663586261850848466074086240848940042400341266033322217535125383024797664651315818406396344788641591252063762823740100776049253396846646903379471123795747427956706509088657204222865070761528322066022289484831391770817488807144386235563921857518707719225993268574586741529604361103894716850095774031103790167652278921008533064170633898337444440196461680746743258354071989332703855793824934162341865992502820216021817995348381021065073519087432676636044404752764859579991456095606650742315540926955727596518876863389925789621237420511545456147656712255061592707442128578692879457485744379078300068124060550861635933461348874391672155582156603812092548605896891602684085816364876678809875815404523106374727234583555252589311406458983705943745941898707658519518849666033699969127865440261983210448181262854326756500367150760361441417813099207667578633727550847863578035905714420382380596150546669775328892713412237923985907502686977613844880946751504082689656677623600972368431425009417733872777854047943007598397265935422996233512666464927178803821353563642875331455452887503183014481410506202957676776325158236951202745334371686706448722990016105734124656565823130547889819222679427248291245042879800017422809618793342867416206439407247848100269411172273269175391804345269030931858509689071553361578709099781277494375888646822138079382603714324532758357844985022993352787054974542906819109623632396142266040819525825232286452655005732908319161019184349655607763284736387734968055460955305294478525982325481096965383889072354631902905808382703672856628504057187746836456338618557646810979575152592074450735200882342192162694239658462768292260814920671235901403504977942996694014685080574929364100824058103236244733104283964475650146266825383337987162074529709055266352459656726450541200887993475862836033070100906624338618253340774358423914460045280071087628147812357690826847119511839019095292900031511343250563374377569704109304103210077983868591374054347963080989020074517524165256265316759974162708354256972431857773122915155570638325730976301993322150294493909603633413905469400495478837228551871555450308110919448045719280107197025465233088919585022283504160282181227730919444881936057890640294171659908643488407837113839768309739238818423988084846109556026956521100707807492010477030355391255399370839281114370718974154114750424996763681579045309671460368537241705543032258131196662007208398606212969904446692371861945150803189645570388251622707146657661073702939619396712416739086639339590600459708885281514664414331193044808224942901959574674894397577583252987710524347595155212516705039018686092671982155473093141489345295908388134441811756937545904398373044359679271140299178515045742856354827415116152519746010624981358112687654855513395076737879342994249288633466115853199651397879732141007790515733925806679939067300253663770933855032208331169573447820499565993031101586178278628761461539629927849151969434217271563126795084871756748561939410981441986101408874449561878839880183369083687632929110348551238488811763395256890105323893766199231322809061006062658794581409928482463711681684536540614921411212841452521167566797143276645865264518578469561855113975655092901541380846453166435882756545503846979875826663640595481740420469110686862406881511784580705214707742280221243899077492577461547249331991726998346979594572545664322364099426368847350199550309589657739366383766119798764080436915290484972978120445951055121049935117163181523029136618857719826633329592785614715617968524519725692703231663826038575369191560397526878822181142756407927129884533335829983867982996630139708939742890592547627523692888945405734324649917032421568390386397511954887987965044969390093923792874492571527153940007878836400588760800090189214757170344897609579511448391899637825914707476110727014727611124068512915016599595800266454081386650215464286849006237242821876924933778491356398283870274240219602676127662460971247428529333254777779447926684400814406743916447912007730949427064464419245285878596158997223677428532109487682081071315717795453289894130291207062976602551977008808035919137402144640940416539474012123217757549530564060211098187227133382999196340865106041635033955159714984967375476860066202041388563055219179124497286900289357782683486936364457824086193220102958780534923209176659973201416670272011055446053675226142824687772886815015234742859380179902421711713634489257076206515706960041648797567455098811963053687311169421087548168068370234751145656498561629064050711309381949734891670418412193914308061043188349715578701599868027827066265288868928744706376807507023074397204380752471309382628697352395982864788811390363434090817290016008910136382003009277942806440034206145588600553977847980186925709372081885890423307649889974887785645986045765347902086094999964764950127762242555968632823796358538155261363424540735682919223993503943202683683097000255033972509124633828308855731395830268022952347958326523247795401743991832347523152535412326527821686563481379737129864918639082476139120712201378947955527440136848204410229199206142014413334407198331089878531142059850503489398272345551644269148632147296200763841177435861238442642520653442278240198018745912181317207908730003453821883019378048079895651679262919364297283226820614112959948693843648635193890144567041300808874346798798077283873633268681294948317315099306036697703036591989553562677881081661519151743032610471132206326906354258702704002259187127146622242643035786490485598290803216787469062839667416398445401744494911193438690674411355012321878546953876714599188969863650786222937105996626232906817027598822199101508179309717844443808783947956237694941413299776574513982551269927860377993920862366971666739529246728328950683101228417190219986346661972318672092291217785298846673746840092895217987808802172473254102953067963743601239541965102016849601433552985959910469912737314654178049475408661822922637447880432188280482777700994299535525967705152805376070060376820111738819466791347760054634505760012274450845470231281524480726857285064879800940048360913274980400485733412548653109977160326754700737764619259131685084438538552156298306826735156638219536983981400536943398397961588097880645476172335779828580081255881706561729075680375833880004458895592374433255913723994309515641178768410245939361485575668024493358606035063515894846439222479723843835285617371337508000238685483203016821849153499178575930994329782689419880523081060272554073932940551643788868132436453535677284632468983826136629838404739989658219661183452733488798506398220718385526801953523406035738101916829610623765849952726739200932618315186254916144534896428748023455310079610613750263248502244135790405216098934457152335387135582117794296760514407263600948430508539971121324926251049121130867437091361540311533427977502265599924801561218797891571113200316894808161884595603143103090800712615610158407547000163319051078273183371031721796607681707385377009384189359613877359159603245928349218946528295870578350111987575193896024994571194412561091527256147593324560565652564238706266989854119212014266098348782937642052228090245081181706425517715665276448936676117307083771726763934838665387772788588401509116862669015763123079303361859305424758168842104335591712742710967769823554464992201872773303931049228504602871343826823889764647695204869722242662496454345488490495686641358348310430167878498493938913477355737964192596216969186810849212471449060633229504112401088875477634409509769907683029321189200584202667193242348496340707785503578459597221656474972864126997412044358687628625215130914728237889744257363068194965881688941071215308053910996453525594674402416883767764337957152851086848023633050352098344871329163867955292420121782759505978036948067803571701874815926702076017963316159132678103578123204500493484412070314510929988742762834910906581633294126379222196782613965325261842288556470268523364251940064112874007167268306410213978945000485890394051081743074934170342683141939349928812188696680754070284577394868600448523540724774625195975923081076524619508607772555389884464867324994178851476877497993220198112290916319330736045503884823010093237156201544681155260972896689386283478148945571379477013426508658273874933419960527133899879465457505659264585850881060434793754464409749086101199133759376504387179871190330047567268433028081275355083980590861669102506168398518615961781183157708009619607706313353633309730269906505404338309256531690917609257444489057854846481311643074792825392735780818534581817526468806789641948139125846189510997484032383406938351476122571440103772338143238416913396892170639045806897484713753773301691155773678461433845609337085049723560895756682149008556807298105543475111377912555846255761241538282425342139253368300528231838744072782311077527936672846786735962089233479729874292668594606486539225738384940735443222877583159382581598332212456247585453975458518539788081452492873344522285350917079263853931940132899121352640111305974800655824194094258277204902650146909635915586609164394426100335284916903056530273688803015053436124706809826222035903045908042904732396269084640965035791429759193173084586473766758771839095083786069114488914853257458279270681400278914563522239894963282562986839807992334152173825187528173466804068781009473998753070861623732552186120687991752874955157253892943119618579283302138249418550346234782996350370648845387090775906232391596715183345362134894524108222793101128637139626390546859142743383680139397608676649674649434648521902765836493980344474437647964717443273184996092730466245921447405532761547958879724105121105075627938969133983866105684827735016812204230729009463452236851776166694468934760979376470980454779189583126892119996618857304511888985464849074351166641710307146342472214195443383912360458736301007973759050804388687931817665626046271652524668185060850675060780713981893133235596843704727091145674285595302731506981844416728386295304041388434889416116127021669319685538217181701554608344369824312220742011134060500967757345351742853928086217777657453622647304874750573660020234393431586305511508532922183628023029220168301770334882497536716110610698582760138023888240060100329483016619706345914944504518716091121247797049074806411520395414471810354770793261865322793553617089696946824438421133949148492276796885772806631445057300894849530416057754711517936487228755725371518150970936008205658274178751613426437613828471725923598649524309697458945629651600038063578447246505245464293007895381628453943550357653873228205485249117609489461606051137683216132183451990410615583984536320094296377057138179624918323202467836551416543685226973200124186937138942945488475925487650858797855770142944816099909844075944440462669320171051059489121403814486644654761234887023374697086907549645740184244817592909203264900847644482841353717645263713764233815175785874967208668769174939900784394161599995899591890419002400151550388916190145890545669312324119974103850346751124293216876008080310437114885654442824383634869549257614493993825535699755389560167374890404006893975510019500909711152085547200056776967826999065858826528290306632921517488857668262679941406021780374122067196575405881834458111233317938924985522175341436499321412561990652116160981535006946115594585578464818200636912346959228778674613344911831639043309753554942391771991391537545140467925351299634376348933621818544629483083356560787438895677614753207175195136990836868640408049884598001205491049917310754916730756495997049938308676663930065451775228305802053584414579498727252273050979861506339915541543520544849127019166235944061173694757761981875011754856242504521035894787976534843799123417598292152817657373724547912838100291740298897051288445683833179919848747379248447293591343697568125933805401920642781148985562186550992938628257091257782734102972813038741340909391300922859136851629243222806600327419438818124629430030192660927827902799609733976542874898860122976805429339884661059912299788005490530074197935847982816050513860239534749995174419709830511180269274467212230213862899703605251575934365509486471469894690059018125283151513740607548065165892010619955776458269480615049097782585803595786033416784021880014309256698272768716549163180261417089151300986263203281084913698748704905705161100404365943388300636184749077416109179169173415395894892967270877250475625060798044319550950768924413429442059659604813126808619356062462418804439081763438921354611312552568949718517564702710195659839931517000434518604551957937596521051763477780989042287227352751717421902702861460784994115074252650484984486739635509754011159713792784681419232121836912075646785598229606848017636584744817416165557518610475957173809503951721922680587683455928287232694578496287548965281131569449183226376169107355829886011746094584521237200735196486965420761119675930046745533468819577672785045168439320600470213566792899090849091757569226557350099440375703153874122108191477477275759976528572108487366387138245790684055203318709659891907937314033748124653836372557490715190294977177808058247031562486679266676481934615475370322916889049867647472048670851316998083413794057926687754619932587944159170433528784114887618676872939300137393547684956124056687243626355290125204970314756277259453995750401765729263737033249829594736226539218870069597466304276676386643701061251393143417430073788012700352783084855448776237194445014274609098331687183594911431565995344403422123043759941312972399810212293728168654475113049702873463091531737400525118544315613713245539524901298515362423139466383689556594374479902403286910312023802750704773911574084465223746417519938543687326265540456649887801457110035085478448615458966432372760733608217694527314124170220116627382970063323279327359970327881515741822133936310935993653000405713162038618839044453037441289229404247622725352809123071915277383897006123013695069235965882172841745965626492995048978545070702235447131887121897085733338073228031125101091666688202047390367880848217242263370666835430443683988310467164203146882886434824480450899253181752056616263084948707841091596729487891455401021931798236700340931985917278282156198621031546042883722156563007689338289414059133626784845214618320406068598686450038776377483273508371588216886050145310766612644935649717682394310303493926438265437818405344902911600451579448236076311462784166640767496824025132010086954986801943527559784190560997491843543315932158868923033060989496612325989132003861076071305076013780230507387658173530744131096630833577813866059520343070287226908813441251586062545661292767979767620266873933574288063507766377962971339965306726128416202869572953615987760422435238378119309450938650939655738181020846834786240154056494211504957323066137996144847425361454675773660072656814755750656773850541371802385233045579348268959655978268895331452197412163193126761575462982756649432585371285021031967469814739046762109516940730604088995318079582500510793363571985086158718926501652325145035966372562915659710242513250415776689739826528632206756368842222405272887138628573148332631506718238634841697994474125203506098380693023196417520776397019975615708030212045861662883464285238590921688501415757943427414225146351285494702260520724079605690978671857717398993496560900305611380432777644933606002328830074642697737731625636384576248467971493499868832752093929566342397332953207877702835031097744371173151450624646743565274491532927903205273271582827028009284682148764005585251979431204583668227859585585821626608788763119714133571605765332157380627573926016831852399795542467509584508488401618796406365844899844623066957958645846805985397063604266507282175929910657400694442407809915823468622544801119159962124681540784972859842891842538330336426227335886738790880052112178865824193695596776685541372508135634958406757954252477291687140318760140455090410877177022036966012517035698951444305850702080144625753626253810630489078351274636215749391226650749247852187295261634406875949528519538559562893190754275195430043750970425040365904236412955751989412636971586293458778007652729699960770697063736714064779967957227742790746424249187352569269710942773205256804379035322970490874568020197934185598041410840433184280827598531043737463335884045212700280127298376962515726895789005331260203801707974417010546139143763136720824290286542899130143604171353263962908539317996769143360874169457709328063781656041371307458436962676921732817163795507652125230406319364032107941126459954429015795290854616230161505914264418496762486237514171895301567621060543433034930564587253705782619002664508973180740167174454598606260183407348181392534162059484429035039142856080718849566555680170764533780823266546716663253894336441233499500222151200309846386516777585785377852186290693717628922826592397397584423712582912348876953006029906166534519587899087843065739502177067856972419474929437243014910837611151579180651905670319709624031324048236323357610027807303259262214540447489225933196539189990842988848584246280347503529256866952260368395961875957162423713535586481067083531865569563922826634214325383431210468962257021216891781197837300701272643191324629270663339307561726982101262170686823620111263278462202505343915660131802148990035454802960255477301464720701028131803063956008144351069468280234803967999908855296071373818018992741538632779486435408233275395866238730600901318952441238059105514464278923140086857938523910922812133091738537498306643273370959745017554354527050714368561458896763790993102551846209155650031608718383160893811040250919382180161432945288011327614367425956688635511755818747929289036138715377520548794667065639632261838447549345053955047967845670435371679111220709339851363970803433717894221514095172817219400627637599177308336930628711828169497700461239694040169201436999713517104409161530444296010387378800438494701367653173679651371920380884416595562713232830379322802198109426275040245227379562810131299617896341439921523223695004416328149589879701470743562201235024759286366355390198932505451612816017254991533176211893401716628904437826787139646899472597953747994577408342271068185917661379392221285182010632516397990263174028188542110285355688045132490335633035480368841719747972620188537675046581170170071774971686321808603496825775758488682603301884033243334828084550334088687495754456491242255616711313384387015754972543534387872553293578083811593215886537166810135256655123277976585408187577650298473865080103203815765071811033515216119255757575274526958348326803645539974219562384452446478984156588759521247288791916918176400198738953680802952556141397878896936629598464002110158042023286877395784862947321845312703528835507410362377064781275046505981873241563607012980958170884348986078489316309181084404481469988047293626583466572601610046115978629015824180129606500236815395901662091420400704249303507971399882241474113288928657512184588466035525361318530041173473751898547561175774746462784537686251129666752620460314803248646647339513774652300255868758271627866254631227418827670447014557621766476260533058699967714366019223713656905284303829301095752317634754518846036345001344276991686051185772559182324070565254332392747886831393299503826538395984550101393348269653977429060958861949551637811761074467662384231854117530250084099989560015979146214138318445911347164096249955387940549837712192997513364468041254558311161738196716589679315601659583366045132758694070822083006757669555115418990923357830984279312969713287033849565716940945925515420945931000842730578095262314356859308446823180830161367839609095354948009952529769125286852789994513418745477628548778216078919669938648004421746856111725507002584093359104757292342464556256383695810499694007029575803021049729272108661244502594277885056529110690371235738561282689167267962017264228881633116999799613618567105553329593421012461476349936643072078453284097148423061962815364946540963789687716528965277265268090500598693359077956808822355079376783928310263432155852528111677606429650734453405274496425727289904085242878507174807099737175289298673992346097182079780231373527417909536276536148278837574848113254645345200168426841471899300899232490746123202352739654634208306481523451669800704824133818046414998825868571160706941075447573577024655211096532447694447571306663862745718022421445754050867888088642011228949313409044385399566094522993348893017225712220692475604508628571185591842557093371130300113958744555300249016195464762146421714481482113647000324778654903745441997024733410084794771834594753306464221825453410698988041498445714305034329240850636754201926560263003503836728297082403356966144855216226736949003857574552962303821327327404042760208083657979561777345893073436777346869747817323751758400712014674953320003452210831343226602490837028536018934220732154964951395114335631256333624768247637080642363934554834071888395764293661725069336634041758888017912276144701055312770468432111165905801688900159499613799040569008319997342516139635256214983301353965841578419112930703453874714675492121120157801105169944380407092211688510845361904618807262840475801968450760294158036529091330432477336312942531717002386940720568678093549605215736358530295351424102867035037826982460722934053628449868277852156961041775025726927619792201322350470206926804361294575922077089934590137708661735283223335749872275402633322920190831937622531963961584688949923747027348648816790478410420795441646712648368126291985797426826746470060535354038202575522515902391824018984625665241329993584973649542015291113907726225863398263063841597321782114900584480683131333123476942050354703978509403020552460745606182200325373440044342087779266872664447073402414618556559363973554617397919427377121905289074889511089014646825928766582038645025216964643768076152025479221540443223939406335301125441612037991738767994085216476075636068510461564465978227196714471438872691342924637669100680433567325793423845409100749544758392211356586643757083253128061149574905728345212033681095790737096181393958660490895124227575323164922007106142830933383732701666385723115108792550560258759886444850942032808779037981749984401930968098821109668708918549555576628416202591497840212720416096491842984746212039615802014785676935155700624579516466137105302122194410630420932197926495297217101025108114400754939303894143298817024409574484007290150743338971304947262070527997200976096540218499624435724732113312091418142756254450412088682287915652943271165833439106502912671030710150367676076025781441289496186538982290081199338328911855902658598793440049809464978075346056423916866570060472244952876812437617137582561950842934940455403700505520633619182782095605314955733591675710994169813995764897313341139784417969721207284260092489090794430097997274739801212592006732118467469396157291085641394993824523720682702637669221038997680807038703903533284601406184327930349690507936236367491616638185425692546283480911898892080527498674507867460343081182024534660719559526791946214811141638340492132483870335159182309052744379255945293192967421287733122229212501534324265551043326250232678245676540433687944641965867124856529753176090397991952871771346761576272367264832835751225786966778116757284697449949315597176300512343121019999185944138649456661259873270410663165366687896339018024339735281151500302593070212503242395587068786695242091425643266505071918983417341666540842886700653189690532418854620996672801598403622478211109342903369933376663503644608193073550481459313479264435697867257460973246518266063201577794793559241387272887938442778722942702133433543545209862136612767242092253002128039393355064539700365053063858670818091135935657177972225099562098546823944805408770509405259212926408247343253232346127538622306611132480571731227039117548481838461753009224829424508673423592536560360297084790389275585119684436987626734036473515395972245660172724120394100035893043066016185387375210907593480449365150595046945382270330653989686630975617182197582929854512434228302843146323702957690778631048134631162789984389500364228822682493735831215551926816777604880014935792086843402426359988026676462235982661637191171690539031135295200330680719221738479373340051571472440073802570703305985475727909070153941222142012146510314875959315782707515708545358429298851728990616116721660889067402186018562498091084612698462783169741505846848862255818718750753107281218206120598270548299719680139690197055409524733104014401603903023815263204556020279017970931231233430924267383682605830301424196580261290548953601932391249736391830346700760528686406064943953484657009204815823261110653307816704894242424800940202578851569184995671448212485170902986024443738689732202863287790923974104042679911039693737279686241375222224525065599063630392025591936210770103072411075833413388085294924435637225166923149818879976048358691737333474326796689495960980178451417547520940558977085704448817880564993367783027218202241474043617574598151846275850651606046204289557339393862019479856878756985594240550792721666028782867210862381155472944615121109688576371593457311328016823299002685352660240939178139442179825072724111912196009225517982147154899448162713499666911353178831105528652599676806823869649052831527394482042734346799871846732270242489105574134759742923808763414583053947740599209976884478382556449370002591312102853262066681546527372945341029719165653167821432172006273990233463219118314833237192235008164360229349742574272608521315142780567511869546695155948507704789815881279601131006305452186124073420172189862858798119834804645073934123639783009241699503016503039849373906532935623185547366704732271234845457490539129290184500534972642663021717734557109874918101021620828852314371473543500608166713414007772082519260768251650783588241883946800377782675174084259587592084222668426164647782880566884290504884956317827831952255128417871804920121466775546697452291613987420507758140572997254022487986819138565091021312751619154354571333443395600878294895782316595671934815218330083541168067951643493626266554819279978251948059894129244235312723338960215922525167462516550737116929831605581455079080024040136507186767572182995494284947217891215468651180643830438470696082584081176146061681649114603794895957658462508950022739821285523989576880339960979216593317100868861084383686065991931459434876336262578752704801076109759583188486812816391440592222260035963733959949232217035446141173591483847565156932116832170252583374178606333564973227799742893008574131271445433270925303511201058663415846102625696121048071534437115361881971127346842140563359507992676918754703385096166786625934601046593122591746788724186510484771326586036002191676367122941339943314526256200532436241895276284136098907506515401418813912014075699097099343262772271986286688465972543175481860776172575447010441744776479278110508545192968468440884768093916437734214851733204958425081460657417016331851643029853962080241341372339705718672760261007580157268057516240493497576803099965656196606100605470686583591768737663091026142369809957402225166995296749835440457446133563339627448502160541937267047214626859379221674340821260216231994921698254455316297623693140717682902040275107661462177650876554564703718124190442399227378607456961742609600079288121054314597279146426863869716197479409637315163232162099043856734753295214391123691812177366789553695249537775607886304774579292725388271695368427152215875147370982865387221028256100896010490747602822723716437272314536901884733790984016800909035010703240634385362984405133858764182597147508984694794564609778353908775747442105778854112185715545834223829755397959035304755907519291391050124066421690574139674778450100992831147717843809903438792292941499683160550547843649335235067334368633535421255804638286276321132134252172435966316606002474143285852839075701227011833564934243393643052502012426023991460717475560546397895661872938133780209537393929226143047671650354891595746327481634959199216466690698023163631545771446235420899335526002524537964192756080713049589596058997905248332160671871682532555023667674660916483378595394497842668664833515739111080385371799726946575404894041177069249331182504085224024287587117742963697840002233423601094402885692969232676156338398358587578963978412308115136627909795895849854591429361267583185734257585460699972728271775115424372844877250416757552136476024617987823383240280537429815086962879926746898622869285675067435692147293357680672420661198992283876181151540670084837719813442885808204611895383031085564109279839604387031176298898186650339574531161852407042216830990556612574482928359102805349519748366427910067021098452716826475683456476584147841289247922047346566166794519211949071449173545271168584188675112586718176972108093432723426431539317037002063019913518998115912011941864998491060451697983962778515984328605694006150885970682341908112866450148496172312060697529785071096003035715134021473232763847599426509911099079483634163772031988913856434355361714382876169686305256781473616339970881753717328981425926127323545924224003263072800539342243986246357054497665521738327264581019630646673653008136921287182586889988364352992750259474708412619276857295704254325965436897921720126379814330292206143295256198032991405406257789663333622335208724349329585979173353521431933784645867235395040103658298304516673270426782594655563437103427317288867926144419979618164496031167684755988632253956103448074181958249471832017519101281786703338097472301764968360088953764846913864940535852371925759804150480298138870173837211235497175357506185043564398039786006830084217101449957016578536461261440130214076430716392552394918467513080552247495280899278537923744974876675871732862779070708841354698702377933226571392272051798034478747003913749204798702506094804201460999976797120167455535171967207184525996719835262816845900695339603888514299841634950151168246392373544019884045285138131181590326043192940699682800653228158856701982676946568618385225744201757807278058974506405053128528017712844731246584785644369824719319483523948700592494885030479284261880106647656396624723406073586816763205396126970242868446267725464224558332263062423025678933644961295190905160653273806094206232310582772878589058016348553136200533403293909776510324084429875097630968437577780448375062315205340706324117711842371386270627105211426898551991687858403310490953388942769363856679961937906541625151534814732059524722387490278244279990499723765832311101401800405957612753980224162727444748458679166638327672804999745799382943442067884531573685744069956777830796162756789306723157468019279994135624416108846987748921784810398789334351536913706117394652379433863809137840481803400542263309528602835460485740391880042141631195317852690606439628495027187343929630836315365408088117767438109820305119173339189731447958702939769589702979906158114082847496691818782947492451726400811245114830218324268819773848567421183873625110990383473627037195938137581659173396561487129348137713485009300224626193405070384445047142540798466504515909675452113973586056088693725601340727216194297250391299672227459425501278899103626898251179074515994909311054902959473787569306520333064181038772934011062218704865529411200937463401397130654255433355547536238411964054147514440863634246803794959700891339984534975534731487756009365269535340535857720889550322467629302569241145639977121738488089402943497995376986392139433290549571402903614130694667012444407045415615390846573654880997163945362321970151118983753098114076738492090473055928684101183167252902800216543112592460492042196414840012330365984122444766197380496365782771415781354766483220689737936208434528774465913018108806295706934572736594021976113068408664678867744235306129355432293833606436371612449859593890760650738227354121676015730192993970007056163118343869187130744574589500299873267639366206474211946274484404720113643177380333737677469706042389288977869275925405757473349468533408647140952155501200108586852945115624187241373599024160826299152991316449900757388018839326070460237586217367472284326760095264364667859547985568126904935194134976495087092282689727415625354939353542671267753045314442229841713241742516262370168856520197399475914675129602247267673025025317755597133805464820794891182320320827808936259472415116021529710251664968558689700395679499442394878323440714758460213675816935842865806276621955484900468312781692267700433183601975570749020541130439521663097328764473302701099438303928137208695671426716948252809709303728175041822188684254682103788768298117785642674683151039696975727075756871037590466913182581105568818622119976027196574883424676745050039940214448834277381380909448430359019966912980714675485094133443495535932554495537379310529096281387682320861178267156344179265791005192129195280185490471823264971939366677227116450867370352766859094886175279662277155295235617193258348517495169178705389665530012916340656363952078078296952446339365427856298598912176383905861804924879536914464324439760488819251590799408061800408990842201526881202242325750067184211223791492741374711176038081271354862396361051967504951145337353021388739266824291790674340949288898705790699602653021029851703706901711677608078887473448588041352087337314793880178475831804001012623490013180064250082577617750023563124020829760235373284882024416228180783175714219123302375726594551395645474112825435531514748417336107046500256101563854470486345070498068684207593979374636697152732549157891134966557895230518613014466467602942384173782581767374416549962947933529300823293404961258247196142270373976438224331800627026249991920626335703979580418668374181639351744379184079765026737048946684519078101175099591755167498324505304540046743486502368924946853644577629753730603903841262010202853079729754704251383145980563901916483474824716451475496790527362419464226604876755050552736933146061956774112339392184521776011237008733785883206027114311658049730995390863298072263790373171647488473899114569796932470368254889769439081005541427924444712612515289889204533631708063407352897625839111375748871240415026579114599414788142262590722870839649469411305388864626826895882933017256242723946173349995232719358937846130825884533358860528327271273176545911599002430989018158087581865553395704189079171672798973725885741096257668269314379867087961086606456771621409436423875990644967665483713561349605158909167126520287196878206655426547928271254293472681297846068254903625310441800967792849090449078955582006516496943729261137247833311389416875402740280602185199331544295737991347012566141306102732542639565033424817075895954973381057264028931744380636141498027393779436527006395319656609090042039221670814496740276294729827049250531701805168841786060435776803302156458831095592382291786924017585712262928539218341354266358888149028014784897405793793352944461821859292666736672245107418384665738554626448814265191123514031250303671185226932323364587450584266364787075416925307593908732399268494782224851638616979724149897384805439515914102530387532654060517060506996509771221681295884561836855332104737002695852419233534474771542087083208608052260914100208867507127296713896486248100072119038892666551971134554346517244939362335286026846385374392701256700188539986214064390752832898272685616331528118384131257694065902502962224389257422753377364806451361949269983398730779417044122717560698644728442447607432956097981547659645239870645883731143552346688709176121978796578668406539462096247422934906759975123662369803007246066440149019408847072551802453455234944239653765519396458606467990041927839554481341436427540035319020169090698958417545229748296850535468566433217134984626488600642937829830245181494900114111655671095546140219097087435979352776373177003871018052206899037336998566477648184704792016302274239808583002901414060176007068737216499858556691180799157294570792424966652998038276834204229536973871917254996112626844866350519906254693621765651024903362123287221985340552808058532374299369525315997773666619973202695139591215505981550061352991266236397901839525413015719409612529808989499245030239484506960782739904556648963550873191298381995747570673087395878431499475825634885748698720633907204860371646004246926756237574975228037731047599522308402366112913966369275733967461141687340154958363028906621598362831225885186563562534788621977173238144296504902419087117978104152458722969269433750741751395268063822033074172289004416414565659258962153488246843395319899084659701198745320786630852658230457445071511088164978424662863358136957278668905655734994185127286292567884198649312551516020360253136862020783272266423593505051097176751752111117316808981431349387053392355531792147507764139935098167023250638227737792233817942965783788438761102205923336554680449823191002091695910127610175668072810842419154230784503696924452000446800581155674606661330707033592215571250430007463311377602447610707450975710426434170855171620278276858972411693503614317357120486918555333615138581186448759624827114581730667339043175952529692406469479215601405830510074210874904366434290028036422706645228520304684686334248123618986056747558054885766899510774501421088700282513509300306341350446386906034555457108298839244644691810307700062261312150775386932545858131365704217429133671171452461994147633415861752443333039225339229760763189367057563623299889273016982932245658969437165234889818122638557509554224957233916920293162975407969863147514452707364698558407205518894939589316698934517309921279044852933341841640230882045107958449978503601855735458022141804640623626120038756114214996763703431950378381253174380800747575243051904726427802546992586178192055034422682934667371898027391102044580080257230964166663534991237945942678362266567232261572665624417099104566205037226289257137156914253708785244115345832444403059356681321620813190167073018874243625116081422631880364754025818214570445504637909830955729322115115581510013661249488674577027966344154249037000647038231648771762134068635266831114093557237122530570203822574834037892287824844126890797916788756519183167277370935748704639331035169400622121774158605059116283736209634660908579302671662271870443933494118599167881728519868023711833721218749408004593423681181387091052629859872106272487660700157068112432113471653082344756182176390450457898705971099883709473699135264036152158352235580244896627349358422250238088150486668023718223201092349450830726242992265668201349519014389332981192397002354400980404209953753706707816878451489866299624817264626140494399136575675901312316269916530140844256150063362861705744799797683141689851900231228983738133023482323590994630767767032175385751739675824753582633333309281940719517132000048184355339610072613785599647141977342240994140540425351206595817290657526135314991685107977364048947461467386919438317823414535202714648642364853876327402860725472821585409857874001448895360369908651991934467172946185018741985810553125953358163020212134715946284808771051808265244479697220717193239912985417563998824474013517958046679703544406142314721243449952198687605665730303110719332827611421000085832241464032111962466122607771304613156674133226159139135342768554118905194691784370866522135605890209295522768098021655945530467480181771106360919841142009331377263150052396477142078396733556704253172323368382103179864757790606234972610204828185150605370051643874653121021460869519438342061706476983247426602310802041513493386548633235189078776023800284833997263222270922893506756756330984754474911757973601461400129113927847696845310035783011876190639644069552126221327852156636304579242280027730930894669891219472789906755214131107450046422921404581928909657474335054877810816863383410076377074770485502076298548431975013788732893849130532325141815913964481749969874840759041210029752313542417385215643811529918625381059503755843098916610720839311534468870896765778625400111541427124631275850552283178835435085450872712857900370151464369871253129931882506762865379298276437206981973076597748546235914347925941672156296380770485089582835216044992041644779409802438247331896076886702900831197380158616380611640504303784700880883501551791105429974138054891319440435940802355425587295231286271612948097837951557737520424396392933307770983558384949355327871128412222864309303314940892251796777681591636104517979789292284042214366459343635826162232376769219778916184831096586986814395580890492250705527447356698714740909424431334890752967009669316500918218130419183077418765970551536118610828202689173719404136473914153950886113724120858195839804571881370052455761743367415390672115426252171423760846686066118042028433710466425142324771166806927134679565027225875005983815223566967384603344776308949797182608701667170611379822468508188252488783203088536916228165657678935862856978628054387156945771914150940630169280117745417614485099149052164988856387433832216500643253768698459760809173365856351519275487849470871327617163126007407352655903047383791339252692203094728876294863060453467671642992056604254846549279207257703298729332761837682772211092725823724301829838638495066193640196206286691245155187771194380065549640802256941568301545147963499255355542691362318015678084291725226573934308715907606052504902287144945162701522776721170507606139910425458566571711968901376486559114788693979756324780772069333915747147758777667690816647152868253834968806639378221333756737564306411353120033264382836648437304276358842134207618905779243606347229605195267787199164037129201637044935505314389532751805481914666490435578508050721614097242897517558844450200514219893058106578489559275287207021143237428065526337987981374752451275370435378460725803042890706558455341866600315700729228782297206507566964544704487713844812813456021166369726160101403505269012426407977316794348563823224967054594898533690971540884482119734532962819847998908306713617114233018147679084775937353958457880270831921067776666642137494665121353312381071372610696424383130625321539994737036990734313075771569715002850556307434501618452250457420482792271525813625510487853484796558520233915694513048371496521361724824712606088312743930785088084395452846384734300854969788890289266076720710886303261357278896074110870889877082750592809896791820206635229155330664255753518467139991832620020051517903922112531917970839749525986325797879120195858364399462772974336577031242746303680639514116291587761824552346172255774223691035803567706528034890889384764150570417203927483207774928091285254289456388252997350493288405480970354622865258653961630362869965387782280437185831783507020696720352693711998287708152864304556643295439180752658085118142763786586161819931035516868949621392378499524366793642976135309551900250912704695193894927793131107065575946795183152049803521173832403986013044884533756758723208909377511530229544067477975842095662074858334023036044063956330487798589136538367797985966892376773748305126998768191894539885761193201899761228790214531943362716933595274741605804211138418831642610642126663385987194147463789884745819890374255658752498592000096705864711556737728534958702953865066886493662776487487820690610717910271224258915137961290548645266901447378527557347975522811507422635747776048071139511972358436071975494509373422633741666110908499288080206736026341828264256787003827513052954440098972716886822665144270754855468868782842392441525241155881170358607056187706106930702720026154338813640991413915820998852557609442259436131797629237297236836136946523090198007485991798349771627055696000297931042950291934065688427609412159511615555370506603017465991992877883987845206706789859829951200071633712414908847307693452206933217513222406369168746831258989721115799292246383357187735499363352354029335923045161512564708124224016426488800639610221699949577079967714888614948094966176008900676806816350683128006400071891119565734617592235411114194449681417698974262555119368635240716193309781615741970609465671605153302265412994210979007393247115730329543789760277469889751597390650829356925365489204055778339726214225749025652597976374450762445897606653615621825169251794938671287806791851466734651911542401367468398387696549356003061697836882729487005873096909116854150301376158236081756730800693313432548538184604371304764668368449889752679292678341064665968999182623925922592636531801063663699144566494010169049491190252838669257571542482759918036057779757844585442828975192170023764027636655856998862323543427002904341369683394681780948731114758297405132469116529351021581121122644979372381077672194406034476999967397902977387605129681259310634692421544173298354561735327544166605031845428818291958243757904747242485093306882888609124976451937272005806904906399040364242045088636693072301127004825115184769596468222373998747909502969141752788983779773790570604388296283916379697096592129455315753638089053282871566851589908290785059228271124893879766432316673578163729407655244443760312254770195550714011117052010611790808360642769031422514378910024455549221185267785844841685477727821570707351259328545173203898074126452313325614950159231204059544899503641796602046255894626835751999393861725438467645070631128852861879224793713447541879920164535576593128884448987187025978854932178933309343721427444691539225374959573806845076496300365640882946360147183899418237488162357405038217325507588654390099623160536345514528467873720079459343414182371787633695374170738848633964516305887505703819352902603002487838279939274991649343513430209247685430444335801373911427536634274044771548112993715065628255818460729869350376902108543496129687301433702080044394771760175048161730946570089349230040936266594919260541519831980103560453345883085098595826813560178397006337054470363530017373480788941261191959196525984659954585649610813717755899121283957552249926296119600406044605492730712334916338618088974851631999037650729530412660905080770492810358757052496025290267661422305128350309155437031735617052570301178222666505987845737569597113199798926360160868073382103855397293664925270316585711648174081522840645093493247200228828325532533005631525160986529296682796809668476547662206979244297070718358996332911778111235878853856245152934626727489941424993925306397993621779628309701931380170876365407009541368700111792389685872364573232789261459950346489345513081116799722474825491238527601906830241360021622414244553262142564742731762973961040336941848194605867546768670554554680312175172355270902268811946677842100787266351230545520300796196867869497720756671387230384318201753606682049434637645709865955574636769335839986601552587286793066567642490417139671249818869286194831266693486675577501938413689624696589289318080018160591555729938967920197205478090125967760317227419118085673642321819001396066854900020258547962681624441333598361069705996982715658111322401189043093208718830243613141407161868957253433885918610293941990577181188354274476322774747882805985819783184451517575585086458269966118110598701176620799533692000849934858886982598373601976304537302196061573914451875736271820367312094499706580029244997355505003194907933424108551508531906080183409732337260428281902474829824255141793688036298531317798403379793623295283008232850849193588599582858291605443875728410646748372806866597906460344940951200167797186016117711281655932283716671531198287545270291629402769437352878525297710860156330599048637352650428487681151850520260030264832742372812721357392719682716920105717525139922584295773276352748729789446989884035487678556611516293807861079321439763806839061486254484358727159431755242069745212816515269878722745262716032481654580088533372511434550808773944643498416417362334575590415583102465152320347783528019532289905987664410230714145753304021634794322428239220635518890207313006267420638073520085816330804375351684720060203315800589774954048815657709051951853507954716016659768266022721912977975011987885294010422065733385598307024683967050420489863860068442274140162617429119466016113897338841410883706491110747995439234569111727114354405232782988355717655435186918759411578186178686058547233906354000458216262765067000382687084022493348300163344564414407330473543333402048560130798713976634838434472635429838069840970594720891444492274684309729344800262937772584739088099348795266065981812508761639868117896050297820629470930533058127991262132779153715156811702597089411491842752065050184575562441060139865055122395242340969078499259911505142172143132234839604577251760077910600743735049745390314693310059003062040347986892879405588665765514767847975989842786752672744823323869884552847277909318173554865240595271489034826812659663019360856946530341113720828300917691465921134617311586151452773706725797129627091489364562498856824303656777754408069743090293854030015233774192276326455827980598907035352612646508638734680389229789183872126505657688155996286293549425066900606955083702848254621181282541103409564650733556557380213231354626690114260699476569537248713119359000885144578192520755555126314145584661095957804747425033625709230291097781329351269584704070795632376644737896541273483512459633516023445514925301193084496903656339343114849696156339319903997949909140985249137662264452841748835388799178492915284237475642984485152128484337013244256496666454217498892415942823148528626203947792801531047242978147042536236663564747813635270090343051597649584652597192520005426508629806156151176367259558700404098224898960021536549734704130109662540931533010466075879414511444916360467100069858616653708982066094740914783564714166384402056445240311742315674213187264365752389089588603280272628699993836206657588657331898772987117128008214581018101225422421670208114181126563661467703731331853982342749149041690077347280893752928015975238360954000991042301857354740678271457840914418416442327917216939330278700124073045366363291854665326055824461805140051093134120482670848950373973798763647303723020729189921383114351269488025403693419969117248103748352179895999494246336700510219261314275752347015052703874046314232846148370415152949106537031718848741839147135919790773221792055802270381022688620401758918651827161431176065439827228966819384710134579581768851145193723212834912522262554954457395636782132953168383447298610990895287790557441348641541147205773925858770502522964053951297059108228671450338453437919884250664291015277522676249743116817889549538948946222058295854830618645553339763425545947566621742947434776901854576703906506089090758110722102858235516373034380838717982054284857837495037786933815928775410512476451297371920894370556550670116665692172468362985026216926490739088040182221064045129890165872629645690500317257095535002220427476967951302371949720959694126919257963249176411014780533412912516462886093253518994904864045050965440794035357098662431921568726539323979331980025829284842649658848712287500103589438783323155015535783761320784976643443744138736509715653755120287903876180094081999955251114786631821904495923181672470726543136165706799956449563430835298216703158646588761610577914567991220172746170881002489886735709947111005443357197188837446260366853416341034707215597287065291738069423549388267020669755558327497360100932578357048683818083033629967630424553396893221351257035312295887768163756835065002670898774515402324507952118423537169218179324311020343282203374824002252090005766712298909795681606998027989358689900385545985299992521298411120037689527511009567596849314830096766561493588622101826903114184722210571274805157589969669558094696551295684319528278229553214605713794229240370811409926519837806988835981639668741903017465951833187842803973325603990162274754327675491194542384247628736923789328391530020533232347851031144327831685374994655696368979660940126216242499852642396183830010444890929070298255970062973745487168292291427722002194504868673957311723947634336534311653725054213414158199998763387172271210698900409148525303232172672726485995284481882764174617977886309622411948026256993343933709738101389927180597497818738037179103300531290908546391356640758577117603560313961009756552997954718545878589818741708122731196243482271809690796331854972664497584604512155096856366475825042723852683079473602776810205777763327674241636604284649283714252288090675800898273400427668858942273270868874944702225776306881569199850688841100937525835049967967469516116321408359337559747125187892866968938053361521864726057951341600334780898618495518838631088126496027880129971653489391473070529163633743765897175358700459565563735142611679524424571095922497613926997101176362094766214357557844989274859876091488629894298904995699011462676011547097113565991167794085441053271912836303108284586825939486541127783703045447092844612211931597886780882814647049756885494448874456099685956093739167840597766732253315099912521497418458000448031955970737386389004291098588599750403310200337187398474779384944438510341112825048084190052283530259421057405425980313271492680344646619635747773668146167994604924826472684519255308314404356645867004036244447992630272520813178594486401262745182455633740365256123378178836256026858030632863221756092781169332709344910935537004839186909080629292640350088466297758177119097972065263581116844828106084712294042485120789338414583150612878239902161469930353569012642943225701955760528633870847268707824645356158081755961236282292586812547935677652699671334741803210958364855899848355953568903333497009768310669817934915256060819109367487061668338112512629913364213941067320064115696911597325137334359883238859002794364382839751251213746680014951595407693411064512512310436565891917502352132269958386335195354774147810492377763983212967574386419414978024546278458317960334469520542080313257785855189174110799333591355599661271840684674041327760725149816605758146256673634921227608588134816865228043539860748030380491551150730394223276142352423406273271811435500540045422297161722656527977642673315595108544060749433184037055927093571945422465760549693826055097633685784422204689641677213302629273605142559702207183458662101658463589212653686696267429478375546740243328301423032022186969009646309429214536629844663376359738845938889643201326130900021685814061004515390480108836257522005609221913934058934728497255205147213597521829854522821107351500617867291387555840570655400144219807643884033388863274592503815712092052669400408659307610593308604099829190260925362792075342019385810986152645240107175748620049203270402497885276894629131091899958439034775262201141618381049229317075905424692109552610571133953294151138167147308620320093560350693892664371464979470649475524131294995783197366738783593682539292498882773650727093876499496125379434144698035285978335104662667631747206392990436710208202331525290584254266705158275507316179454849122770880295753059658791790051165655417495584856350735199389067285930225712955174451791880312119081331423829053936465195217856333429459932248367489298142658805548328174038888375568682825811348037421243476589475130198615111950669878406838378006304257124583313852451278394050535447329570807322107204635642837154803275599008448645107865394129205245485302369604901659422491608869475020882427465924354379914976842242328470659112405715571577324707701995276605682764872002244030910432603918645135578458991996061885026096961044404031740003408578941641586112943721635058826663228697561136770714560677197164461572786793253901246547600334644161063255017452202563219942281772695879358671509104406697394948785965109177800425517998616358643834582912416085091316989066874789852607865034686233217404114241969589276469413694061103965258185257307599639942151303095690592000239451148370354757910239135608156389401597575230165077349966050426008784373428662169475976463974156519237635550485968877013441799939885293287591974574256625018982743009296890010831278851219111644996681117013501734859351196896779031161975976517443865804632101625946815974066175249312668576619402082928041596858029931200954769784239385747805896679543671389684079158073604366090533749293524475337680130134020868829532813013781865448567808484111973611144622936270966032592499437269135124622881592146488453091835527075519833317902346622017533206206547987054349085694660126195295130389625148798981211739717601496257808001023504951272779646174838479671962780530957820851450130354299585208597625267676014310543911780494317853411484976889139355217742352938647383921554287386349640975120161267059070945765112454045590159524281621635091867060885562716011429810723628795107879852005019496025642917679004695299390997858255512709004592437779853725295993143315748639211706673157719393430161767772775148880248425222751292875080302257494350497707978520503853247881823606158876591122952355091197967765447159037066821936460038602637180979876876883204787418777089375139381809725272956148904666734950160178940564624860119600041730942551549306283953407133935083802696022953812041243538413211590538408800773012802622920442975904726300033336309260732768583846212630437950973263314249659330037437020536177696415181464124447624192843278933400133840243161830872102988763547115472967473975545017954357966103192335255074970568865857923382992935975104928030165374816564632605022308706010729322485007990020669431299409065621662813092905910122199175250116108415499885960056873501922667540163277162546360570237018593094383417772986256552079883433238344927414937642581897699685939289916417806623287989906613536931613856094002387358630842505578275488905837334325244711190360301381026922524753662537965164812369596095960234958828546636141049423665580108697212233991735444776075769031446101647236033256433611215435216529292035106667563366073052648493511333025882368110007937911093954163264089315414265331653247511803102148219831044736631143858685171575843705769499030351235036812647410455750397480906755043984946006081559992164353273664398937556613962477867124263199186821960311566785727619514038165462302363914353382738681953470921254514776051069375104256947339190330051482476924713521195223085558074178505130493045618053274387113694257504920833980246421167157501740287251373947737497267529526895743210569640686458646071953498067708271349516520109022494451936707629616136836769716454268757557116774716724909136329594804037494272309670687796900224249155986842973823989452962611533086821346064024433752409472580066844524581640611937042822844637139141088175384169887322136998318445138082628435364104268311636382719000210633738771549332576356201662618844215690121397149446107856262757381096939706579979571414912567814026469137538017291657546041037846093922938772467037156990416057301111983173724590693022871662689984507139498254637116608256903893371403073850947177533057396820754183692090233610260859114437497619132209619314652761435628106343837967755036129691147458234984925960111352343100772639503250013586958733304891299729991198127986440170383157723560650662960557535289185505774814303292323987872961199572674156781998915634932904797551092686876173269357179241956625453827383223821428162452938745643452136937741592256001017246428258135313386263458589165293012537132942216312276166219943532014336543355523356890532920062022101030088429555249306124742064218568115847848758718994050304903794145857934921396156808362442581446000244376689865518495820056022830331228028891742407030491701962204935905380371310667357636195198374880235851072200720518020945778496598679639974800170413271014703935379900910060485016589450629909549231114577472514274305054904434898442083540128388481777553293866427628212537385801322435527783315504012202837056283042115189001099642648579820318286692101586863931593272188011055187043763952823112336010300155050677326736897099524335172989793552214021911431899734646643221752612747446675092312931359862189893573611452742438080834505204110094479908638453425725719571568684980035365126037654522859686700071776482016934328618769121326695085438049991836535344825317335720516151451037640953323727977210972064761730521985854563528785616288147513824714287113834426353927562184932456216965754570942455418144615757287271244771860336842858721623716044107273535852871148341453729778709134239359589143764146536950174631372642676211404209276124454573485798356271740307348494638602873913623090397156412896841408938481201135580322792001505128900403483185620641742080842797625640920837168164141082251856647647125799588703383193488040267612727476247964408512569175988361084623323855392264554469209725420821896119259598978804324891738972189337184072529810443801968210632447252045522226912098972320635975629016877397600576228716882737670760989546341486876876936565749071564610310628643337138962882697762575282482027502196537444172222132963114352787849270145489700146060235540460852456387284561928521058557115190719549701964149137305118110485373880252876519099285517327117902032171367103711436221804326798126296888632631810825966744144467256868769658224997593861704558004317635472851828450248772701018977833563001704256779932052428524184182706456701623501455613376766376255079376910462836067569835093664878103228178870219248061345204435754776165019158662518907924304231806560216279355752244945182779614770012748146505037157662673243728531303413001359476296423557987746244204680054303076185686433658417337972659299750395749078688522374758058531987951349720093193250480928353023527893023735784627870690358018750971889197922883592181909550397119537023359709048894723509623408995189397570147331763993326120434698738504625296594826464716594361492336138148820522724620497122292731065385376410890090696160543540055196595579621288542703595873832006270220748094982800225275779552369876548034989468652578621071922126253476515990241305225466240311262764772723718893620076182052148054559894671406377182328859890762197162900892050941788345234503374468698833905282894052578914710274434831157453506950217485556299639040427107825382110443420620123649799563822579322251854322057740435736073512597485977699653690735852022023010682493124756029706085549566326448313450067154102505041067544609419519967942531920777701552123298681690208127453315564161517910686574801128875806271994197378797795742257388319477835994919871023466467145529508768157731838264361400548597761882085731852346913235298535991702695495969504297285701964172642544942339086097816751065663830944429631391042696488619284806057086423560210730523016157665021817523068600616792969977461118819764451913683446679562335874090070958003025781881992292385188146171731542931364597573961525316478183428071897811919715829197945492965204842925380726013391355655528666259342227028991516038356843643271822971061736068962934338327905058183139953100810116449139742052489577419882956215250531454516077043104739487567254101728694281846903218356619586713110646140190063366569216271596820491956432887367321084793124619653233529345774080102521092371275587238600643264892110113235081045454016860600952149700144370299075695515794982064180823834862263983942699295362040019396878203284856121366594932525959442069724982573138480607594495410640698980662714160799408720043127545381024136482161421668614633799495597666373875545061437603340004062584273200561186475445279616911642666454852036332851583131248795825059635148246526452971838577877320119811814207250033147835232282033877846232674657746884565117939590186619343068069789134711105009284396063997127274368155753693462973275031984666450727619124911781838784912536546032903129086350902926233657672966967072498490634011780126009754017914586737450271684625864461154568938151774617331245455855469756469454247920789863592355520562042184258546842478904407321346196239321045487044816730051767993991664745958709532711370259914811022624476697331025291943860473943206913333308738822593654950723477913403573863232966601649794240667992779146561519696256081987280992849287181799460570485415289827147718910832180177262516689121308204441768227958765056058715942933981677547221544714643888105953090916420530980108160703203699577276052413961846387856691824262593429803784780071761695242929305814636303754632222673268471546626410536593537631145305112421285871136980329451025045156054807106279289099208612571531779552007061131481590343038774503363925477397989984373903076951044533315432134184333015867095137267934287091421516896596772055012438338477214352061504617037625172803567960545268593831512424123382189512479704897491465623526546895407255665294046767466552944222164058721161570300372695846355379226700152485787777079056022568934941220050897467056120928384253221129179020554252811499192070118579961247918203152275315727548790534740715064783314539941989424561936471121998037324820764715926137437435140326834695388515634926253256153228626776440162185834613158059391603568732409600940956923520985242477249160607812493170151364005385019231542463512148817321913121525943918513054105645899846049448080517066459043786644320634928420633433488433300674009137025572102819913238096216853100515498436567540241263223476899801041922144363114732586587672750635874378046340552007798929248987042160352983965144221847794643347765871378916094899922498055446150052194493261482779285729651550340001270597568064101909507801040717682987377516585547906542553740822026536017167087532877616240607019171922551336739387713346013065148603125970171330913284273028865494491263758002289178235635453919428604939969479151084535374636218666854174827338354663815207565121921291850683664837682839699642772483036463684518643460696145011010850196104751889662970278826870034600253486629000825691027231665282799733807457121467564317782867758547531434331219379091572052264686428484579587900290460152864638375267206160591290764251859236888599396317477050718485627842807405692204587077748738674135021144806695606454627667967978175303301392797813106516244431528939334276682334920346651259000799096947392281081177036311140990526089484537606438444557518112223127369838580511861580754492172151185695469506381537433792593526373330755061322432198231731530933485396191574773835475701817064986824845198840641985411944068412575217790065926067242550801275944675213759285145458329583172205430825476571544995718732038712842526540897787126509968509496189166376713741505907980793919278518616131137244763128077938423272368818058335666860866123483167086389507493476820885954891572113243293528908822806371119153521903894915088349055688496143735971257092915150044426932859163634727546612126214414406231274386483965630693657272229031078758487093059880187690365711863225466850518415545602274237641031631918673481478484283472868837802964050759466318621584419606509436077135103860246309834093208170384727281268528112578437598084216766436060404708045421994085177743177853910187084101184427790591380658754857359533341190659352574594933401166358959138959393440549592860787767986090918370307418215110264776279484441545950149012953701297561312239810586609671150550851487825218482437368025367876807731897654221213015943495615679298662655516366218062458957624651461270312116620314245231175144459334187409442726980036179712458899780407909937163593283049725468694188553492667364988089885234399315715896662782552659198220497543014886661651827182706559451935567353357858212320894441663660756427701869987919484174124788778324898563168809640801888205221228822517763568274716284443814820312600710121626106983305653294558217934204068195681428749146962653794371163108989504346436989558716275493070136184020542281094239268189542629565114532325641761537488500174165702374114454573694135131481380571370892433292830833709286161576742346941840769897546698646983195634342714138623500523835623357823387864746431133274075854768771522441783504045523509045154027688477062267777557111219748678254101267615412701281267913371779632250859237374821932526086097448739194256272688459198691778271607670754595650546492710067786912637937315609089072300142688606657434745880994261494636471571482343335457560497513842568635949938992485718802257027366892455326300354758789066748024998610132420064941340214816297630142053196720551884151056289339561374288819718755823448724063491242496681784846921198853866998882005994900441234258331697005076805442653756976858346314143229116335403534770688815111562226408793713812725781145598360013849256178808063040880832075545966648653328350124795050527423846661876757192039883297810770303095758918731764757932438450987162905100018562841937955896176132820741685474594118338136633357635795113916546043408401527289529483180648700780662858169128665971960264172891267173199999283401180159818641648227879984931999922818612364393801462950316646324887956073075329389967949214675357969969072966920788038868284018541774536112801027649959398580288343646011731257539721394522427323654272273449560750007593092989276527449811849803554223441016711634817548138919746290163189264701699844410838376847537689408683930436563994439569802239078089872139465491876915932190198735714809674972579552140375591432588695253322872187876153780879986171716975411720207515219066232291222122691732283724759898555266133315147369334994011318126214850622988770260710747212438785059326892988848935326028694524771294866559239857716723768087732702532739691993862640045181035933295650836938581623549993859432205136988064947938515285687349516223333748289628253361966247648509713522768978254286696575957504152240592871907505145275619370592691811975450198928361090305870273725489205304959705796049105559712295984617657721357584349503278730817667607143359169986241427273332403751396303239960759483018868418520165692766413536013565406181240999856898571469237911069172379262789875472093931381472238062514021067605143519709455383473223267721273131268099271746046176526357065480790153440433818896007321861577944238967738762494568094271453264059695317561127335026468541376133247257785915685926958983228180699839112078605897119475695791370845536391223885991127100235908588325825660784143371902620051214153149806082385122894959057567631032143984188298773291800701665353123481487822851880982977534764488107149099296291083218364731466207201981614536076058340416355531857916548570869666566351621157049308648179150869520991044303389896026352933141781449378027360498099813332254454639988628081741897740614816623802099082433797799048184060791236179932264380829215409558607752974310965275073285490029125421632701618075732798693656044894220502650071408359502908525963374349907077692765429932052671716320491670569492637015587998423982655015137719441596019745374574249984261751676460420521534038703433007085133233594259253697033182479366401087349430478902440235893869122368935831231756288985404917931773312628452726973559428266064585340431591489131907880503766555822506140736549710146415845901592813131182080885371384188558867509582421528411822544023536649752687886303688742341643472694917273218939498211168896838676935174953674916209358743947169853520045182208291566963690566706777928420499742939733327277990292968385727676459267934890506462251497270647189238623529711942273125154076784406046993675148928150592144569170524097638238489280911782707359755398424822697839775009998853641519924796701954112315911233595451299854445461874404808106219977843871018009455360615510854308859604686413443352485486550187378205943510244509519854997903934023626277823444148013921382418028220746818732374019673557402267006261341858546858369930933278920833508583894390197970462312824730809265473748569991853250279553533531633316437282947483851471507261489234445569750835461645861368148999879270467118222386906140964313995781622747050387165442574039103475310715618910426365414894681638437629916406241105192529847694617318120942980462087731312788025996132723337912826274435569621470270664483496303456026034807009285033014161409767680242241769945612322108361724968296051448162454780587580366087457083064166927249472035022071700737712516556431236356752805955129685227262848708021469239971593845246471944228677655603015549527972309816983898996325480197122221117778506650305088322753939522665805167562591623628004832215139269621734152275960938694269095881644656022288248019731545845590853365306498358399786654403490902559021926788045721233883748970486413061494120988980280912011750826087608169754515973302414274188158769467204987106757524615591305363241707181883948804597639295366181609318378769884149539052222709388216958968691067463479564552583372876959218343670885211094475487902613276183522521190714100295094777565186115895927868826662639435705206287043903546758523938756513097147207610778188781205234195443852196517799007084464288484720957574860234988531280760250290664828001491127411740234102607394896603237621306980425086732376706938477430173225496976563624107848943739550046391373066810559856008952231232219845092461891076941700491767421676125868441378560041110429365891792729665326160365424690950950244318490589831264369534791131112110569808227186422713602700968415444617398762663034926565545151868777721506264793454348050164520948764556229225089214004963292039047413831375021906455264997337006376559667107462511057339572786581705449743454452332546499854453519718413055790806427083286920043062095484168651383120997056562343361373145354328359419371205750139283776434431450748535940788851401611897474552089069663308026464694778368969001253849608737194857020791510986616500162032154912923416272383072187721040230895267545160911329599179925949106861338968289720167073739166622003440466918993910992177596035553154501747337293544855672865727229550756284358434322712718338192303277173803113139353206490168728501539580884941218232218457244015733779453033038512269156400899581302368248245824034348948657546679835898496407964240612833721394637319649104894797579905930435550863667362159914138367878218703081699514150507179647201053770496626514260339017440296879475636399593801199429727869681842488693310794622679265460752165337315990847136927258270773999337573075869205056177760001618750566888706942859558707847873029048496056551046804195692606259982543156385171221695830739880488388094868050186248950721523170033184730750435377289584591557791904696860631372959355301915702782193677635953907203813184352726811348734206466242229350020768122581094446794760347354049256758336083431280462900336974400546316398772085255395981540939958006238721479535026140471685582793224645663372623374606299570361732942846930175576934573871636321879109840730681099320304336216671625674151336162242316700872190367770328223744798154034397735845827423878537855411244365332585291358005334313431085190542125251325649482654391213397396712441300848765755171735002393188491194953030773702920073793327839828737420824391410473922209275461921184207287184138478270816554401824538409977783226031241458031460278830876100113251611709524540449754951431530777047603331283391683975689078522801779576182245531785685818974817473482823452176061517051732068563470821506726743637403957340803404498171891688994903037785420619609882805619127790045089202626407568391752118639651422601257770213661756769436959128839483274566232193977972334645039303390928592560241484296223618756795227318100190944221503375731571554158946298281469137416635884149380855828961062222919844471859592501652661924828340949370222106097783443549045526495873573599178962286330122016588449550487843288124027478770224481443479725867833886635432960164706464909097735028016778553751371013784306928655609779121451617896310692882340009402431156274641997401365078954547693530586067696264909937546294184449117034564857598040733037069636717397400310391148505571790430266013061799941833921158603728559455186343315886308146982504658886943954448450915585428672577397419338912934241463867474036421753523381511806553097562394675381696609848245805102861338621701428394624107205286327108977599742024207395100657193631034563767872156779209239030413544287227851495358239301033313706247881035106641687839010869944538952875928814762912832234126955096607563654047121046190978386402399615181379948263487536055707746555116392615171500266506027816335927997390581852884139129092276172347094272336070096562886503449484807901585142342896994513330963026149849121512384580444404737814516722252996096671642969252415122521225437803959077636278894761265720673841642444814486417733836795549664623089353080302009543374120616829486000497856756607000097300738595738720926084389428315663354446807779974777125990052961982867231037050052379318200169673568657322901040094210617585435169422010894370153231536664169033887900304689243824611467678331413624576542607863213666817923672046770675682241575663211895839845435244646778727060144543220791527912462914799392050173008585390111567701407079780094441612951575457197803718310166520050394857695056626579218338229056365926824955895767144037598691229536822251746690508490719251201156088159119396908046542765152463909073256651334576327316385115105464697508736731431070755733892611275445022464331290403623043366681473774379306968918020609909036088747249843852482253841337326801498818948120177008944390394714771303293115663171797410929889397910709930062386638666621201869129058988404720618062017828470852437571533863060355070540138163917623189402045284850363145259833077640429006579243794125560576175435366294630694191420609684634613638262845620251917840480242852283314069408642398226326727621060233942946956127094200776876141462304869029377239051924721613678271333091467769877920036237614115253696749230430441481815974970052514121999449751068330691406211684426378588918703063810053031026075043484792866060829812633662400587085373169438868312904946840529424440164439117267837480443393291043764367684922999026351710509997275733198366432999827449630488894158302150851509585430252540029996987755152402570704214992687202205509530801960902246480389364897634161783661013372339739778654819656042069621369167025999774143507798126656070195448662483935552110706407121499351445253676788443343352316405678795439885322134863899292794009354553633397796707693415864002094682173094689706941975973686422187750076696721078839060373298314913437841085330912129318000042787997888269135424829333307170628223050444953523525919860930155440804862152955295196415577159811361307863968216281685844169407682222632586517869020029522100249487511570678351182240359039458639072724524034729753343029344802570286672473441591806970087792800047333247298173205953896939621254774638349807178000757046279251157965612751722943563402468320103244780281759919397659417965033576815202609787448870187712435424453916162628310041429745200118627676815887902417126906023271257886258036508526459748471028929900204492254216113409409611625145020500058884231041613933143435295703283561413882766362104702716810709951511068009112575414667631835351964572065639686414964384859939801865715162611533476760787244604036595779268436860664636011452207207918453093454889076999632241390138596383675373464620248799032708617037142770085654730300494586041151109914950345236443823050431736842695000098545198190727311413734109358388612032375311493280445835754627293718513243086332217477579838423630654173432106623662953392817543013342979681974236190991406141392327220007785988425239947354049510996791888339714467210318201781338972254067408534816449786223188638956750431084739096136973607801616243112173694388465658822438836320471826569161546494046581268862503797741304082919737943799559821273243396594913733129365083821762162736484909844427402876562512147672906432162352973787204125458655026233635277230888889580438388942775334032728029146184596686407618513377520877185939769485747906118084771495339630610851599743316773927319450569301879452413367828791286038334526378157960139863774386590115842793037949931928395974937222582138890136910353268456076334126378149004268547269225088875310622748656242264476272084978325649059283529392132763965931402158394175429895122235477886350955538872670694678452433256224148262434702864450859475131328855929916520847913905119935635095684132271642831316975093645876405241401172928326261750794729956093978293143744403314124336680662415292591368050089747696486204024265005760677452036184167422187449457831995795375393581189495676755553105620789440840664572576624364799090198107260210962831292191763151812025032649792674913562470681110260871799876404236201548743218106166397095647090732948594728198953533173512346749784495459362377498064470991728200375775742959296467434567257520467447760605186155692783066797594995871726258566774070069436407499875626889260960617497598368764195386642440686043216287296124878843744512291447361520899452475629574636425234419598991866481952959299241941012539906728288935807430751053782335843109744408877777635614460322352712517769827387466105859075008831858700595370220335501268816229268564995606364486248466950373231188889276045331204163140030547358872928009361757440157825086792080107496329794342326156270377622496360082975570181969427975037978852536538649044414426276332714861074368272403148990789444878613329177318902484967834158292080978996475441154171860159171464529307328622097830301151037919082137644794021960579351252682396189552755188639369098750273503295957146454814778696641198121436793818129570189255751966716988164608310700789124821891913472396277527737667348236475573873100223451606354820967287567292462722680677836018142737256333130228444077010446983531190307549253335997375558946582185087878607951396544793453078193890082207662470985912399102085786440826062512387770793564863136548031050282678211400754289084649760918742934215851778885046173511460776489580154897718007541362476908144275998075306162284602035551083983679025780740844010282312735673461345785408059776938530686400530850893151858074581898917016336455442387308955653145995250175821878910704202376727436353864795647732570754622174133718812847188328538458256098872313726909723214661581619252175934260064747276183709831918220637732414688614392052560058533261635685466381496297480813623547039615872428739774623938780571159465031175493378063485101160848716870901861215516503821226170843494560148739330126200480044055518427354080383787452895631525038591386586378913631159224350319810319879779216554905981206014734886050570374921160727597592324880771853998534213660970771746662625697727692763493341010143601624456959603486032789409252569560905379508757677605565134216914446869445792891392056104017216945410760510932819791504474225280082671989632976455748188660963926864942333287717028638016130390733796524991028990907983851594014185017400283957706301284740429257069281886336901191983025161029619285459528946328246763620028769523277243474096985896304967045093975811755279871870700078542442155977118521238769118646583631096416419776908537555554694373327945883905060495851157301238140740559694068946296009766412027425957535252580329217050886330512541698785258994791938989430410661929273137653723200233532962907244637706404191590445818331954196098204361855340938193755459682689328762270852836804549509111030787851885307196261797464061257964997509869705073414311054212944092125615090106272949298596394064804723920562406925359162804070088709793374104026153171791315857970250122309252467819840480096763697848541876058638305155708168700653667309946911205616928005947117786455505703441741364097623322439922764607984726155651897242787646847838814453879229768761694160521291805406142171953611109887381943272628742475409293683739572586370700113781897063522699877346715519554224828303244607696334733548818708701074742488429703315164961295224449213074258227009433360756894761218580606625465453145689111274934160238535046306280106695277344881796505060954270378040623205958048368803827653138772713169324986648028596407706534012185055570331120240316676816270283737725088566425453118261315223685290107739358965697233016590019640515462428791603393357307621167854418085226596354248864628444126549746911682761912064569462468918044503852045332740011931988300419693405622925909603118478281861452364259581913967503755046426668235847433882600674459933653400845473397390302252952367633523212587560369343461471555731330690265728453518755029565987789753136872241588123115177958967975847659713638633591378104354993255885888608019629121853291112576940334853818719179562557115636668232811335918427137961012027769404277918630098329042667834130241584982498532348432499393352351461196157887045484616021180694485599606602183863144925138743985957639438925005261663661999692662127956127414833455625477349183196389740371749541191683862736994450663650386831888219503970021788926247220027272781637484291016122471541823883005090896650905791145477211329532165519895343603458518965197696766831209476691459932520534624895985940163320802663859052189460149412168791540102302248112370288066709114364128346020795861408710201342898946778465941442180900211461045259375178422415514309792797880871008867820890097396550163683625488110417399474485371880603295005560560377168804852043129913988359165384062435391342815877361418711168127332263629465836391283612605775261121268072589000488362146313006871290677218506346989004641130224404460815945265851788423380752776898970711147753562821080421647770123814509758259502502888516111999568111034772774312307195091502086270014326038961642808028558184276385789245577526077799072426608761534965649588554330590068454646997257850293585195590456196410240383022713928752243617037263621122341624342796174899609420964054882462524915883268294308265752725820462813116630444724713221040107665982868268033930818060822384603167716084519706471011274299378504244687223284004228551596872519951677825722716313771664290403464419317644106255134845945617831727887481591717346140802617726298597009866157254148067738967965263264151146405389360919773916880521848764352731338681110878962274222544228166322498941971764139700335211515117737227166962713857000642937135537517317900284807360961685941891620739638454421586245233835641728951326207868732813852571970078010452434304549265726017465227760736713737754026573600433991093738765097457030054469735274241909077761263124290501750604858403430457486353776766042111597679949116610891077488761436013682566501576358240079762442337347195617460287179882809016270394139414061507310814361079330123661101682059234952668115141279460686376511208232098827725117977049499264965088825725101056061591625579619671475920728656890222421216499149472010723346753990718083852961368970195108031107052587619930329145186352053387174968467864857001899505474908154351984728189323912381086515513170368858644967082951390455153987145134631758370676650083189026868510240630556825848508759699257543688397129357590384958947667698848987908954503634356697855203995443230918556833805610972559874615445846741890795705877141784440250484818822810239372158560968392789248337094107570006580100597074688888834793674550486017066497753427870363710986777043559748663275291855929035293824109734856125562579050486732743170514711505498937596791366643296249394119471813467510409623811770686490129108014484247241565858385502010543451344289507838361633612939433353403719263013525620251071614800971804473890444288434661738155086080038830377909373072018427783338484402748517912128412716424519193064258788136780197307131289261925515472550875959786997712755020274407807722786425983009073951771133978352267715136282851600756182317228975712696177485044012834671370399499972517802036439461222397271296511681526220396156105844032709297464053964390465846549255461535678496475958027778765953661638107295624534380406634413675819531566717889888317952573457436255810993023209181267179729402950965786134096115845265115963563075047649525003091090164746500756632538484507395785268225221256054966204089017426461156911305783488443231328377792290307531984036853366946323111968509307298161551276823445927289736635877222562542768435925365075189576584111254284163620576426662671259398550900752481410086692967159787211488406602580114816471812448047593636381627831318893057987107813856808205045504006091799702982861639733509263144401021138767680439256652216685054478652273176850244356652131414376089764192716641021520366206799692558902481088991925548295582628201222582708365573431364805469591301850438193019904267745008344638857322770204247963276664798885104882385025871205530738665373230696224410491892100973565740504514349961709521589443190734434356667711479640920243146506353058587303285110926196626678748932335469911627302236863603788957865694120902180921498465679020826238152190258593939647882088763457281101788674506345182402828136725550930933306828535908004004617719347557379205307460104480953618233304585230099639600125642185417431282691827934648942918061960955273275071248786156253540101509783958469283248986147048018654412139578520216373169633464783899059831054039791113565637545665285216447430033463412339646161547949381035828827495229657349412072048643488975123579989738082216654794630305504214683172222824898702891445381663055261352532699844469492026392884078202321664480442468231120400018297241901338395477615671589363041747022840514637444663546794849279542071799374324610794102077710840372719513339912658178407659487916118902111608161364002686298231994329624843327571938754738826961288439834665488063889748751979333984083889320927002223224756321903439267920460417002386838448947875145189004002091002515958841524160539035050765289203565947862038486546799140705201795740088877346104748774696443998326253333857812018734290933182683199948541358707064783061025997125877241309900395382767730020353622749673684716822189693522337613931623159139592792637878821054328976452849981295273941077248581565582902670731551091660602359080019023526200742788902914221129931882376798632397637988744702579114801650308665650690526158001134506757617339215232024719488190467043336826060739847034179381157291254479279726122099205266125433898209176532072179003224548923753105806090400802974958980338050280172237851897618883657531270836592155944560486293466379650563554939524600414885991459790291474175350591458274558759852949913531125450291576857298190462901908575075519942604437142845176954208779851701616128434715165814673794423066899232547369579571796121222025884917339935892839961594444933963033073724069798735072745699428915675228509226207017832126670018235086674802182480938417857801669962073256683407932468020416504240534646438449411966241612733338150532531697515877487763021214861133055340108543388454620085952133132718022552304866881936999152296025394699621162956857188030657160957944510184297711342823137954037824793311006086612752817713314417617232952778239212175099952887127332448840354274873604998146197979421627917583557903441307792204118654383689683070743430472095850654753557960262234790391434841110374335204505398837198302004159313364210444956928519983105153463437420846499145606128774458966310876307911533026300665920325593742536236987414700291611100660534128914326893501025079052176210323961495466495676568632975030800869590913150869589975170669771897667245041428589733506204764289870827872876169929795319954170886005671350439264846143427812554193350711970472645975829196288888234383796002267212164000504991274441337853457558526178867149760968131789618001479863053577848441691564187606360810807059623649264128700343347463964569144746788868187496028599078644145638359553540137610481723859068704716129004386678956009995771424518694775526226323433759865208652455560458927292195244265639597332144466898372637569353308215805947163465743124958480246130161034443503897326755390848018587200462063898220585794217354724159325665855767679240906407916032877857042956150672206983716403457794951173094070874127182737787233326922868621467761500764762082560215174104691236580328423705605862960069274043871454849125470588316611429472972830313158252901201790623508384239112804194026502171391535515908433828123351635186805256574525942630047079906119268481224026169959470958515291641791083776751208473315189031508055870674773661533007747802812678547968643314687978324410682307041659316899976527555119753382404139684034950515338632731086793305642882066159882956521613448768075331104308316956736311637262968095752732471246946434040933255718824476861128931790699706412781608988584440251233176829375334045851094811011701235786428810316869889730580988699992537194136602800984409342191483365382141474831325839127542065784475727513337853690820838325181026944369114622622016273757004145743478203978233505026800196986740147107555042906891726531989737008171514586933720343106810372902076250896565467000841520713064725024686682353152415955698662878476047582973087885718358301991160473901480551302164292529931619697800656417369989510961549904564965916000809193352516935019779509101383324137919837251517214262796864216370177985100177259627230683001777949683817296105953230352383987796771162160156374733725852958035767572895205184000259376119972043748437598568814489718399104550142297939191500031009855665089656020002420994471080219431220304116046444336414524108462578361105277613063389020767127995365018876143397786374585126379593220644727472468654873914462371375654165495337566153434717825305745215148335252349077271179058488052448372783312960325982606976737153727874398299703744268034433114807639512449658138806771962192833720436234202957402520552770855585861044518017906411739609481019386630888814722729910122376063428234696051139895826735488462731476848817612570662110722391867129221181887081255242888658305405951919755739468139700778294570646853889003348867003123897217912921295462871879645205215971103081052253330735798979502310644655983899124379332506296014707039825967347510074231029910086477130523495879343743216587982975059694065107651245061450778822718428255073408556445882655552165795631919672770223762167973493937747666024589431365235822422033409584037634238972676453275911359533672690792387234017726586841058056266382212829043058665872796915186286779319860905431544225342088211909156137235480802563059458765880126424320749788378826777021089994623403950460287029484556837602102044518771378194508975477607436769603045964485438496482392490148733581871161523748903119127008653741263957126968351278965771901538314339859835582639207120407063138224646526023167926156047903308681167910598566004655698821178502935198753295101939992232275762879320775243934662436190692353639402271890783361583273333242610322199973698472468556192001092634860205014176664888044939983144566985485681696443978969645779115537717971796886124521341255227683022240250373494742810013955845224719826478146248576797184134893791414090770793329533542914181572812899655500080266675688325740577308895275953509970915036174309060648445692765431478304850784066268066636932080902076240466530555749476076813007009140328628956432222426174187417993648219573705458478585556310301789914479820376952385308835918663566856056148143020072360215512928560883582810243740084015731998632442602978159875111272628021591965156580871153724939400945949310120314481628301493371763426326171135199792651198269016934058968491295960290180210992918473710361802800565844990213264648696582726249678868198349422183321322698473668552434850415601326654473491563974043877524796427433035886843315878155018906114940127959811477045048843611434885071759641955485739668689484048616247938610691899252469423145165556208278154769555510252042457238005002057923356150799840690449984259713575092826353427095632323257230523142261129185118121170874494143725404183723216439485935693076129651405099396683135384612492771831601562091395962639861766196450389793996385628550324234778742998585527852896461441276296677904791995454578331716466301115675395895790610971606041531509111609714588592675763184208639939032191932263677123510211054553961764647977714922573708094921920642915433691891121640171387674332369168627586628444300878895395199896388780312139402761961296138272414151124322426719054320844058082098660087410058615753381160654913484376034574638156378901050904882321092274174097137192817325893881175151927486403726574075825266915844985032060448698897913387123318937698792516904848863521933589080763314233410553677913484403387621571717731577042904872865690346484748825052436829647935062013114897863992546193488868359346426373834193504634316781931741890201058541328990905498235069073171662706319724977124753843770118173774832385840747558375513577750211902139155701723434303003015295436008910605574074307770926303633657807865197016966315162277826771274976033876862942019300632602623619718712077813742033073975219846364927004512386730400155726555962900796264490159379253484203312177437497264878113239953658527437185563505457132915749664771574762596491972551836168032294734504674539336809909282453720620165636826654904525813132681167365399264560983854699136987027268990920293481954111290114478474204559217426854685955240186543620301949191121252547682729946229752722501953032550882283663672481896462521140833980397182966450623688454482020905631937181216410560478085420587082812480456203714516970558673713020331783075785603855312484922412938201394967331320643555499615018361910716110365961999705308476874721718514563450048850438099991744222732340460941110612963171015739472895685496768619534981438037571288929798185973678945958189032593294638367181616543150239007085504724995868236487578732653662610713743686348165218387234357761360512835084717183287054228455989975538651864491253027252909571978140167466052802282094420065865178171090009892841230951939501473010525690859638115519694840084298084460630571622232772507754555702584222849507513245802177633057358099894518391371085076277422198016746490968574410526747848338797388959532049765726701721413153862069425550667986294210158710317858141000129734424987135047325997062477291715728366266904680196093938954844215827755942117332425834506624842484286208189700545159009650016632915697905733650040008965959754853683075499522290866326227919304859896512370507789278243915564809254685186463208795834929911952469360644710761058907275676890168195810242603577324991702949340572846543131378304743432943400163242193552141514037139068083178923511410673947096283942523936771476905125782773633668120636934816832772175815334637274406909962632928941214855552757946704003234085471265965652808691913376952380112069033839628918890900923702969429885231555284625605962389962346720011925586149254094639277590311820988667361277448766238588445982052089767836278011549271936517131994648639228833027323100101082346071327864837549581687674510678745342431634983565401474551331310343048936703101182280587238749244794839812957727397754304996088572302532873268905772994893878294220987057485546845590628210429974741881549138816853500850741061838176894755963629897659833454671601639021309741235309255563577523190305203785123697755906693079674727364255650779720551158755221659458124866043413752460236267414773326175948744383581789328637616634320624054403429136010190093180908614988646229143323670671175175800617056345867589534479785340391699137226805441967483707148210626941221687358334845091560823306691558662801078370142569530631122818867565556933953776689664951455109021985454416696420384760681818963526093934176192303066682659463103034611773444412793348625761284952864649849071656161218991942884120318785846606590030082181940236731926276850096370676797508075033057729825452461992674248898130823397031742834887514542549291307367874351791859689281733623598907064046917574903064584577680439308392788316285245442209958756584533699556178870369887573359184420205430677814828455004205908193134800972184304953773749088550679514378020124329108884380450840146402330932161357210589018041375578009484891373118506414892680750844906941683425752597973002210944698533221283278837227627583516538916606759158108934637428928566073650073943165433968433374743361448777963271766696178225618950989417086137426567586089731212982343527352022854260874012784475344370759157085100659427002537279276064577760914996819121519540400712307141442945709303227211031854531679177064094985085030640640953767238147024926947056128640199193130559460103495218422908553015353643519825630450781798796401225670758990382594635811878413663050104584992381923662804596612083257173952384161315723776321468357666872346631915598475037991098185019313301364379109491752548632435961696497311927628939806756370079469468181604306702768239720591851195119511337573971304589986808644192206053417782871662986429923931750973917417102513063028084362882327134431300310172311385199142629782863278583144977704319590244443289691443112171714651302956750289097237656304229161723090639707841339837173841638467869351785255468586599831547216986823108492200736628796655924867373645858249127694011908262737547042175259775078681140432795600555195001303358291020999168328599957369695339967619780698358432697509392309264088228857235004138761523876861359026404088769821210536074297216991315752140968459051054992251844569850497205773815291911233778530049226023196682058460142231865444273724087165176305224437422192853123404390142589994532352252453267701517329986670852202837851238866471976297601623958449272578145017405029520878228485129055898669279215272072732600549020113525511852690805110147344694795637177037002773743014683324274164818003817812656069063913439525446728898361493305478557722536608043446390349458136976491121758208496388272296661385099846134326187619120779539385243670483576227462565224257733362330628872571161923909131683787383161204310755855479156671427069981003805073829714898689630518574705937469837489964394595792853124568468576055896265516901143414541820292532559306132274070144751840788369921960491738301038688002749596930804072175075963314776730026545012929085235852219422813571878908824275909545692926209325894658618108032465453144294986643336888491056279153970270954575402489823087057850309528411632926854982075647128923165842725018941070587563946793320185507257118812660098333324377830578932996817107724659293642692023951540142365917651743290801750764292378588713110082268292926983007447111103160181168462206015766025429965855298084611442823922593400339826577447127864600489920883054697655585044198705818855180569533953406705397994418230989383946039605136753319044014311989532115670887827710787543684574230939616336802154857438272758292747052916410451705747872017848168182213630399307971481144936366526479367640881679890730327005809939710021963381469275104038518525307436035452394568285744905704270392600141552802485885810739385968360554827547858953559137228457783449909859975396789097154794794167603386771480391192728034140487417298609678906040438005036251266246916925318186780990196857429915577663186708187127155223408994953565678437044763734994242425940105562919822721805507323674299105773699656880718431621686144692704844827031188119648745571637388228750625121602464552823655463261431713910383792873445911089544647432444311264401146620991626271354686259783950999641699814865603101980987591265039242245078373593442338390762275600383542577241264727715357623525977637779062674956746940089047577296985866687663004310113111237153677055325816454507275788194647885081864526190529440565879856217397411028744039586568389282098604098224470797493143508002849707810198669227020622565329730963481658967423313735162787989874739948154347612065982967396314334016363383807332045613128277061707219008205727005191952634381198291804768878554009119888275568003487090533404486306761868578560678501976730539796184766180952303527296906338926506331467610860307027225686052659427699669620074362498834132063035857620598384739461057629068595751852996819503510875641320956292642960895208235015453899467477883766850527916221206567303838856198259975007488944875424220204730318431408203004560947752887738895730841911147534156420850088086328958116078122726185532295241688132481985740101469384604920416066435318714972496819780740923271085139063087009662689375947146892623825462854004643256198670921523357880578797395487324961687377806715990047088193300664862531271041278175668943468746569550680183848666377717949121366883599743565842652771753180789783734316144689250971600155022599837567472160110111642272076620910205889023223904723247707547073121112527903059855407536882485017567450758727936483131967889245008677516556093176808350624615847430405876536580378666714634072595730236803644419840100590683026386064901860898859094195241611956504792326243793365786415779886230246575745895571466220190223384156983321514980974501973921596757976287455836941876526178854382960920255131621537303410276868276461523239560100213360806681682642158905951339768665374479610038105246815044496432084428376854785779721564356969118370753690267630846583223971017482061242753708854634809796487202694692887004881416406049618428584166459763008844476903599147963276265709316385163902678917435336814717050377079005949794345117931769698403728155182404769787993376382879103466267195411683174288927593725062355482465074884971908794560751026396304297723556929379780918851705304949682667529523119854019382513850379939152627422588272207415980805372899668084764593027878390172305476028864857716307986401896282004228333578579931528210705639701947044878911171004340101874657140159018895033079599388148583898248976274884445824885900025112564723950719282338471944330687706940026480310834417353583987378581477871678280195694255370832087349596406174700661159806115785030302855872777111763913185604429958064537031788628259790614781806753105821933062095563059004026970670836695498799463770431624208150795566784905169308923112665371464235411207497348400865270261396262146462166166213386600844725988814369924938050647815302496236784366678539953715883609947862958810002475107563560569934248180167730211369333065819797894822809651508306331273858132587130178902545437912707150785053075035021054113574290299542443069409000311165808305566587570629636510312884657925307393800204614063468337949852413183175417232401780791873983270238730543725813456162843293982774782005188093793375489283685478588348149961603850444934768160552048589587395660511754328048671029632904491881266008086151495356288756707162746071501657539029611448836618936944273367844916839400542270359553530808118544298713871721274322994816013760469124279970722435971146511815138117324251154507823323531532733681870446305579745630703663639522387973344411462638614970331861651836859620818527447253706634712696161947888048160919150185797566712900761214566426462390165781719513408084435531414911474848472647384902596641721979557671961075331715050400478066303578561674595435191229359998350031411526706883815501178892696442998358236963207539444472527439488451460011969181329519899603631476397845275604898513610559450288436016183686254833076453517831524793139794681506675011032416837451541527753984452940132840341616945688557614557082374783551498549668970089701092904357565316089895045889923543104646644161622548751433649847933650727949972025292568835373487675268875119120250056507242843312146838212236085644658714232540914839642567882093897006299864206471091201567303208494547424140297771803946609140502556260098605534710890002036275747275743287043929581796503788657770834449415299282166011750092230832187881373729145315471477128935128933821559105877838257837717846096845915319077187181308336450658956281654733249258122472148972849792357432664338511282546755656593874115090174774710018175366809210482290921750271245437143783062959893219745774335276847255071474877431918859719884864517807327320269201601136662923401048430890809722542019631091947910663016865113762907083903394649525500424323068171582371530103014466636416502028356467389307981425578097352178505699378575083540391782496331432414013642630289763328434515327721234267267422994435497045245188688230142317905172192228485615999849739507194999900698093324852535170988724928138981521861616843671612742203449744302033866726912805313789461148032223947188986356900598014974660985875243733433675843142516540888508820299998535812399390767581333005234616507559264893957100758747599154754914548486308411751771785998236793009777154396651916299857981816006299359221179560205838767301238271442000413063222299311654386293347151931805235866040645322381244906541028463487363276817738619947868784217173849790129414432454126835596322629813426254442042359949103738505450400149529003394945816946973335262227115484358008056657996470907025319604878475712679161150640133641786604176134222578854946280603770488991436465048451213706548175299426805169701039849147506376991655758959900173695289083209546266869561014932794233310722225368519996982092143503343537601056335645924216364123761595195731025018740117769959619936986983488439225565960433593267087714323724561616129204367279418453564008826265060558565474135655923173315707744955383715878515291453093608802859878718043250945685802982035363414931875804448791319509540851649265008509106936032208936747107397525435458683129751779401216180520267709090014656880396362443416159858412630058135193743278653351009588654681535296175884949834687247472264341281436916027773609571262791662278960141593259416619542393744491601145503543605381120285562779235252721992642796191571027387820000839997556185630624500189270784255521617054320019848930756888389696821293007795018535590449450723644451682351775402072785515082068753343499048076854366938627008374209327821159978338043380020919122115037420232764354430007340749622503929406144718480845783667406260333589922137471790634887256057126871793348329504013888678719338318742463327286448150566584908863057675079094257497691094254390114255099715547335477089309490816277866137064299689865687127492341062625760177643976628811796566921656074813417439149220904997403766231949061856560608068627357474306395548552087681055454485134751739358323113200803893228587476891489332046348691839802288738663929520828326160215480280168076714730364865444031790582387120610389868427922321274832747824028564778323733560350342609556475875626052413469400775972818009684799503265192029557868508100297375925049050033832213478442005506985308165315258352056540695987532519451978534300180828291275533666421741031505328743635311461311739898723277458293469612443057870708387165093329366256327602942334334836606140195029181934425292285859528993864249225576160078365234555723772290289740622764481909954954872100461473343225753933964388844195449959230612210818135195821872113326605484212857197317972547560107490385101870877474459605001256912143482920909913200925247694631460488904857054325817148067093352663375861591732856582105630327764470771583897163877838848405047733717800191142504824028892489662383662354999837994693089487424941408087226260062804076126215049966061683061498890440217013948311143517344284342723619676264780461988691818796299262376581626282566021062367207058666164910259332352434901929686359039563937246716044599596797132094054355801955628495430303113867775517728870229337485242203387803185981221857559646505810514049079486775904684598772210342698606859781979070762085742181304250672037610685193093773285892283330129421160369737224165251527095942043506367263599027537358245473271045357168106034254732897820773472304595161260733535957762542226663084096459210710570061911544550327952293036558448500305804754784094930139868037915580792943861267987132374905214202073062466888454102597870732021342878091879549276331347712698297629416260825779163904847048661593696394901491442421944684276638464376932431455448553677457040857831936318846073121425504630586201864372268897904696092876701211094346796359459282893028473800167313287564726131361229732468037017752922893950492009230481495532383475515558376732832694411991599541778180584091552763443762266722827388440897485513854165303945095937261366751753213006850729805297490627091890765471664331576884370135569386639446182725530627972878859677030220165301652018692798004809061128857411476297923047401325190532350907843448344289434043615089484082652619900089336717132289462569356380179633294594961520752202928587326241208667940865586628560470826113947129989099855785447113284912169180362493132017597813607850948972262970789475471463421418267258028257865240993705733313683859659139172202867213854977490156487151148152903130953748055220915602057179671373700983492485045872231184092665044726960322651440135367891947723020598574813821890018077478498145778855179883798533061735637075547108682954593097885494324348838373690962210509905657853695806526901471527728629675723072221089215305372085887760421418008216477099111661422677921170719023937386453120449176112731928306363395540233735300925668185046481712669189703149911954777067475894911966939057296949873091415096805231798729030379433530734076316163464726840596758668301685799390065526936035703243219552826647608055800875270513330206084415118027026486525028793059888823507246294225537515198359558699339519205095094607515994524532416634955960820298227147334448095557559851619412205748281797427706785810930226163353974333332773387486602058776615702051139263818988014853796372390904421249270589769582690761267189505650681842961136807670709229517919748544614191136325191511512752380531387281503644584537090096653104858071695466839675901914213551067883094303254731947114767496431764060298498921826989280245313257656659952095250984174851694340200530297175588466351745090521745597705254253392601323528490285517568927113011288315211333231072247723730434355504191035500901783885954582000124683922981475025860453307385269966014000097332383786681370671062772120450809560095570166646560796439804143253194720618919553856273966796426276749568311858803271528576067321199802764169058072244368713657649278141212304186871243179125158462111020924797627620309711392888280409768261892503679199438824924167790498658403403818731020792405174453114544330447552754261821622064928955648375210562172659037513086971972091833293357588974229520530060505488619203845620926959670287417289090936975686876202392808737903003113568425403850896628406032529679204354029249720416582714686279657600320494265785777218965026292901496860990402615100611980843897988761761878121488320939891764560048128361122803845769229829171686136367072841073731167366805409048973728354241805972515787982357306297877885877077548376725373503227450888841362592419316315318701910891144129253727349266292482212948574094809259266593149552244156144914417167517921539781282652392472207057484345137878218812116922737206045110835214643100082763592455224535596472823081982614344753985260934752366578008303841295871049028831949127164049586271273098364955231658468351208540604765432992657841451053193497423813893455886971409988900779249175497671000740579299779098486511343313446379945663081628052826942664759321011039856239729396295947753266284479894021182934569806826885381088036597561056584143232130985663601912829311397009307783591418009382768518881469515601341876270447110989866269037152616314308859356014809786533828264704032190626253390960514103077461332845238506762916179942715349619968998895710303639905841621623254109253668196275743175589886054118281299799973016617631526033643969672886393958957326458247811412100039506835437372106068364763123911921433183949555463182876004280369937728096795932856206955214451380843300945732152966940608241497056700822157421852892746740681311706195923102733914449076550590008986993504500190512962086105615439462209869456844236353465062083772654131757764657162719960730553208993851387032479696815078505596777586119412413103144835411246919702347595472862130091601735966174444923350147895690065445559481925062708204709351624242841222165628400239713092966000898892599411278254049808180332993452449293033680626431698831407207082489917779328642243079954858857414653806011917464012022144852281629613270554369060743829363904047377673101624321986122163549825363813238054665983863705278255054513246514752548169537208831664559110185770707487048054893307418121935553678703773820280383871247024255174567217481341784012402453299079828501444699343747804557960354691843903075194583539158610922185170393565204884659860543137494703865254726477462993479925444831952162017476293666293659414764461606259288744490660797822408555225105399455380465853966541741602815600354338005454679573185152312567244910313731911287594979326517243683680409165476202555320496594707776995608341294025917945819335151330912921021823119409400099585135123953505432165794663079937267941292223640927718183508129818248705771050188266465037125676681787266704682932130857586188515925081334888752210073142920134102014548428548642715281357102779464020713775969956731015936428690652698656903551791169322688638949759358823317662837334564056062921684072624226811087620006397766500267630561877028875268539170730196293069036156839233984248826886086233031227696447534242068066839044543827899176626224545881974008706745271340344697502160283026880303455757047666899558413604287753629565559476638277875036615409110869486705385063582278169894633287480914465462398801798460110693508968242021539186753222961794132418314731296325255636983512806238170114496812428288950624247156838840203286968772350452853494074832852630625730846677377379955168540239026694139573501797650574985912973532220615252814974316090993244790166921567117751314938847163609903503069890453560317479648325240955263413873023773764148175203451321221012607197537263924249410716795964999562524926500102931061151093507413322770380476751294603682951097453492432286813550318224593715180865283183229488728015465004157988747675046097717819268750059356394135371475163850961935498514495431437520498130236208509899830360096307370945944076221983641785990902661352613795618953941783652903547424904604724448596919521132454882822185773962576257787565249866792523635868599864696306454768628753035280131554672024307245229003433779371591566001615686206131146438723850889187619130843211090915774002429055594831019113110983242590231971827886171145057918216153494748602780717424933323683669380057004243732999367468774836751318500161126140951941548721846162624295351583920191786338862269604984779902349375725565638987412740567219418712040022298692717347180234836392262687748187851754701466281397472527477101990780494932567871005212292349519950097302155098343279844138599942717222192208045504608278802423561927198565628064851788581755391590926836943877828444407150320914220583170190493186770471563064569513052394476912099298816287750724712828888208596708706812648593148509854872642937712417525985091380896923833138748901090333683560213888066796380543139916631546297578316810576569967732296329323995333273895137717367948326346023634184729214973683816115417212326261825432251346788973940271445887924673989870736054841016020069369569114484642624803463913710699797108945187283581712448569868456244231838384054097504481303029252252959505791010888679938726444507620614544577247902060623997971895253803584787463898596103990087838999872134244866107649398827941857937262459967324849517188567696440555327345848507777502210461628285446743374764866555550153151124305812749698003390698427491196472501549203557731162322469179638499434681271598244752523661602606869109144439369671550900874837521775062171666013887929578146060303896957222621270934384165869917255712835886787347408268969325965882864207004284492820704381375015412437604410933434536585660830757852069848654681242353048928821800980474515559902380004674080470961683902634428640796830887628533350524773321061483147330074417152391323201628750348031169336072181371613456876692409808649562774700737373167183921762386390170124175392926148304314959392739006740474350185142043671294418662092903614742331340771829743899808221073089169907713599827595697786470672134269966641655151324880939609154282999193140793261050145760449554000452271429578304705281496827642407687848850257300009621017424508869184682424959257447441694220664286034733653200044008216441851035638556746080750496034689207343058806441251144383156433385243686800965838217983828595647659543316468137765518936573536205375314309293342888993181211396994496116197892371492763909292440081448846938116808319826363192927256975322502924498293249453393579200194175582116399075638668132753712001503351069578123833572315409641564203433769172902007027614454264201655720631574094692533922654407890779710164038036486977182766148206167228565156548253898030894428928739265428190928493016128563500707440511219033788352719615160996040383433207696974844700589295880592838788923114645056592361344250695333564506614763844465807535657238872820064920354464528802877910255618180600248496606747590749821092594785792483476172813226115794724939528281920339063943023363451643637503927541041909295978541200458921330957575223724230003950485683593073428079413131138370758624376152670841983739449985567672643452115927107468263433925293824206710680676790932864081164004385020293576601707198715946180855870702032995576824433420843021769605878142260345350219009565899123265405780248118148414514312885873469060912048891464377689915155909717464155300562515951451298151893166505568461099254547159767026553682615126604718062684650079543200988714587196012275745711748272455832922165140486232204029088067025920884959684959616341183097382006195311893906459114384366218645138087343554009338929554443208487956634042867376306503273900066619894481887986314070011377780759229871866210716772955796012724739467147430438007444969268921278645586435278853064905123508872707396655710519870716112068676968242340822632565823287528217676459007294850130939206913465167077741014353998997444890640105800801760757250257374713661629503843025582211231521023399551351018705664397216219400602584843063966049429559330931461300757757475097432254522486342063214091475286381390480762678801723681604182438162552629156715982133575515771224004448105197061437245941446866246958050225269795074928639181451214808893907148812065410874268089811406784515096523044205552398908293136915441781636250642623207486496143313830043693889373380472942866477787067308720411519446435761803681402619097115145772223809863181488894179525182988851010955384147158782049486898342523234488993366555364345923298853433009934609575707808029315650359360160187249969419275647688224358541374015814017707106769509736793648673005087925705012713605389239387559973074552564384356130763387970955492839576233244429325795125275521266118640427142535466186450464974719724154333286153998521897896834703488422092992107964267958335132048200622483810095867875528811828616819645388161420695994942323345043630411012458596911968472839834483168555014358766099692398004489596824496649218741834002645289208807784309833263430874615084967492212660180074397375750462206446735401811176896389685562751255250127918175760038700043393590324114495753223783947136587477727291763660002711940316567021012065351069634257989365849964367928832486159903892173372831117395245960956648498340088074920030233567390556616298358691504660856369005378019769023546855944022765013335342384157165713193447826615265504641284121748398747034287118705202425578534952421034456976515433035893914616802257885205522913036746360678203798443767739410034152792830345456098695872775809607266724897783262014950156453201271296065337748277750385938138675400458944817904531381066278590704791590900940843030605852930715706082244188411377990074007083730191273807963526093093728307879114733509578576063048410231408029943217923057491723756101822442840537497712476996284527796655995242718895727998514460559473353340472954078126013276582006433733095216114404145715863446975358206807504656788379562495675161546706023348545377339886065586198367915435488774290738112033798513283206034726275457132512126703586912607323146341302714626400444511079743233773260586058777070796002826675805091918340969170103377562068868982501717915254602914578142477504907604975007547642560009026458516166491074245794376035456072288529822375004906398495178876020399323928801684412463577660344096081468215167543789181018080737398687393906675581396562990446650024094810370175403467884894735004229095525484205269403324132259069720790511111422491176324847936711663709036047433813104066089507868966791181124688090416033985818939509208900471935292122331935347858659083338154904947185284441296696564379054748894913187890530796279437065976105157861487157286552030502234810346229754315649760280643016312272084207324648203673526318305905514745092537060518924726225285288992627684177600836545499396211429873768067932772160032096270869631561743742539312465156970633645559041098088041480652976708283842519009343071521562774046980774104782836877087493168608615094309115623419276546022744598293276884986903720859928773124572290749735608225544760451433274265148491044755145766548624714960762859956396239768798322008676438924348211255219697257728772697654877723323262514259100538685175874362793527019143730154690702392429484247141095056107897269593187921489030123322125457395642577810106727866754948062265661308031735295391580252607520159985288648721253834582924021441946739105873736477775545589480612369812173810363849440224340846395277113391012909776910958859819799780078719445360199768648795996753587277770182806323920710683404850232511027689252012146661700360675766501711245885533366232522730497317105595285725182775067402466312741267592016799187200271413072047240579709121861899442141743293129106990869979445183034982533239246247627306866697702855994997795127542386709258009152912599429471286525343594107151785325414457743118897713012077069612429784965277362928648986135330269493187826647716677145263983390781569989782132129625633712736713096045956158226418521678919633134993193648811569579137465561898160607902301110454199428777082995114600751976147644501732567816990036518248137492409429258993351835357183273038235323636958530975667450973070426382020012299223037269099318521773721022060073666009567244104556739320356365269276255369591501168018460226718560070300625988250705215247204676919351573405270513203026927655823155812917707120628751229852906913254544009326068942345418306721384133794906394967565043814434315799904434564245466506672176766156434357933004798296645486557100381027281409857542030182451073410157731889472915861072067217699043072889483457516073959525145413411413014608124278756052723161186907845242446483864171986407921096998101829098604751661209199592849862016531011290571258361408012985703781442858859129631696032284191314861404828016004951131993899630053937085796411880255371527781866768184395518086466395492703142126580681543803383079692059802873424421033130230977604275889667899515903632165986378490603541049843351658014368731130390531469582642860564574935430146564395189871590700448891628833117259117923723699633419351342032899647212302146769310530138769666854584827367988961116926003342261482762490985754313479516511220542567736480115851174301015320574004663200929571013650505413862612807674767099103071197194852507925474457457584396705584812417307948812678793458422123789819451989608699516756283115548709934775182646040433392579996494612645053091272769498915405584418102561695938467261723053414939804370276826705048272597806735202188319507305164441162427526358464839596402736952219973938982490214614077848939671433420826528834327519476763144176161705133872826113506510959457845077925237154524149213937293044390445839453130636167799934839044966817058994663740598326169399497051376366910860255239506490460022350872954425341861936519966415004435155077115651630647654203400704583569169663640583182096299022123511879559563262094666899039364365492570235510582934306710838958401331540366454844345043417803041565993752604461668515684036404376574678908316366249731154065310653084839223718014282348706598578895744570613789579097052986350263950652141394392739912999062526133382769957448603400044458348560666744452852743871898807031082214628493348818471413056387282170685738880384705996686986350328758965298434253952251030634124457223496196406840625939080462297087752776656889097381620799337225395910365826538277021122418544012309063397025074912440422079600048198784576449553717265836026570963907269423768646485198739409576772191679637655253465361753947818788183757725923410841730729217828177348956477151193807997303599400227714678494357450947870539008033309465997856170830363886727587876684669030675671652216648541086331981414977457962759898721718049709466121216430694698536987246053655500012954928929184641796233314774746660647840200266322077820411685175575325903406356563141612973044907695245900971076598888399578403324609133240035076857914058149659345670715909732898770092489794486312103430162631561300192672523399351681614614172669370659868841846615306917571839965302519432040176847477351576142385629812033270482686300485824600693497232325292429481364879599191016039115767203004370630469545895300327178435843624287015111539534229054311068870529215005945305382767665259589176429735987779097470194858543555639244354334314241546879621763717198180387987290179304301030493036506964185449161042850245266949518571408439208150102751305348634654161290489203146827001068272529050042468226606907211604527605953209979221943833986432531505988024592990312887374899213526994863034253573078317303058040753944104925367539221671742069500243731907527301718510554853408849207328772816072707160414681660265937451777612107484293309235506828923951295303715068770405846722457582257461519479629700288726083894005056830346567062215866746559269078062364797733199707435896757963237425318013214334491198119330674467091643682914693329205293358980982868394350405191332452589473637632098930447253892026102229719370543849946786310374813523321165455765692567622428129798604624914769295550962720715893972419923028428681255388603529265013974979250964948973669620549315251808177674677093709195510817645011263853260538212123954346550202264866523883898886647107957022896798951452287882240420178404852921427117231337210916595128857783424869944328582702910928261197628527021843806446581402341938042451742204617176543760232130446667390138866950084409891032919754299698038960779517333396534747373696614074657664810955502126552534433240579428542597074987689579016021552402526530832584757713722324866153426596956314615218585442220406099755917791845867850293151848900946391459810713404232055311742842487258597713945008845887134062446520293558904992672349271946406157685902339924859126075414812317662970607597415637372122167827350395158676788069596297735540213584711149053653871710845082795815468876052969190886989601333644387025772599119883499219079983913009457219911176027505387300754453086836612731702479835950276775884553975150140061252193273554784251157635133160098144269303475608278243436448538475539833453107062265591173510021341278342438196035174474818528583414637542585904512400899468588546191990801610545475855690285992047535719050121787998716745646357604836831148646015713750963313714838282606357503192854507535902331593766223874744958765124170441359212562089237298883621434138615157012611143008256158066722146085210930651956861221933022889137977766602739678414744744846810242146888981060230366632739217579602954123020208513310777908996714504289509905366844148486355743280762664901236027591784010726210059792226229048286959258023067582411905921185870671351810203324133883438708742605658912782571329148268087295245535906183989158149662713986365035804050541312610381354984164783523573268119005731470504962684380777558096376348536246219487698623669736176674828950860597451080926128537642867988961718395935246661719080289301915161675133287556462412306315852962752726611823211567370337519575260216823297171443889366646962310978293312198685382876240204590656676378270342624081445106562394641145052678396101115018977044866108599105837427968498204066790094706839526078165762904101444085301483020241563713377619719634653191498709463865592885178834766300349506821108898387513593942211881151669419242222245363904206430241935421290951277105270762856400664024724552802635900548204696842947375967990724781372067218335446352982662812217637068777623594828490892803486271360889513375033955605277218208777477360902959845239712831147195054776338318255265456304687795508544622556251074099109938375213551664661983215369090950659960235015204550701099640630903715428530517008953187879368080088001358034709742285095242533916692210100554322256026258120535795043261234345461129678502522752705616057035278401634834591561197594260705218360295810343705759177525481938589017041928225535493056347329583968123774258196861413490581550125975920892863952307142824173246898806697341552761398059126511895078502121715698730597821481163314509390985429378123538656385165324610117414618971123490500883597296090354512268033150878993473169074629788058488464831652536171234536882497252023982390851196892961021960087730185706586288992940482770545302824871452324105804745803929023439273899900542001898960332591335538596234198020052494991528042346305144583288815455572456794852004446928281740659515719188577155148946333983867739513707055600241977147915038538619092278902863742153411831464338655656434276747065941839631774383476995324457480282760978415069942409656846279848772782870966129490665935301307253537419162175773593376439350145905244923421667077485892079083286111212185993366285767712498708733895787328470136364159268176219706107388325161136291855495762514324982193713620550032384093862709372726437987230154191148848218761089080704594444716440443055720498156532194432308265106511866785180077415884563710300217585736673230808526658188181528215001428806728751464206579908671290877882351956911689087345233656841803536422042165335409932707187268204629099181796552183479618129931189188031083610533555920568474419961093978232047040284614773672342126131265840611859547268961855829219909713289481780794168734968527176364739198169940522883754568284407204806543982221064397898610681564619807032008229091022356112849746701133123976184901055904988993035795249527983718919254435673580651558531088933070049440951900450973272924824038609237076538234895817266835459826173695864050632599021494725583087429380475012042118683718379703620506346581303461433781947736688198110173479510332108987542075524402221691781721746655331196453905363108069567928084379425806778281579402805726394724244675049881247755588580503323528056780545438109474000988910528415032764474324243521848768787175444942581512568498475634284970560911657680028305392804232379171025625366792020837522062502989192598976158422600569392363142564459224418518972833325497776892450406684869951869515839226443389347314799427019486720623510056874971434545497470995278770291978475981055440672854928840801031085447776795484989948313340035556150549403836782713180654275763976358747633170118537366792326555900362826651558133293171484333638450398392476830802648762513732704839676990577826746651373350731639614700029431015095807771466167819289688606659443071723923895189392669948091131662711912220064216514936450128151055232614425098078593833620385056252747048092133306222211329095220822813572262605690303340106596281804433738401622182018809936583581153535568867007657191798371095120878812059088969250469067487302444093463507783040208797050676103574576481682791803914948067763583065625861958831190602245108597294821114900199791556083799621300830506347651516448705404892391174746743582868170766369992406354189754715046094482590115182667707841451968819063403546003457720877739877783722013701813804538059210069551065741931268401229723971538987689591856759505074612967331394146145555842502796660454761713483986616107402397732465129766710655270417826698972952771229813416573803037181452687055014640832484160787448026320386449414611566128731378055585306094016664143881638219257871022364419778554469941216137102240064898770784178083981033626799417572333842300012313091088830695817271743714642171424105597034413779827746249070240125462642872745623977330567537767688143524446287826192635515070095579190645914753563289720036723041181600819535345459669596117993918661681331502198925420995839715114795942934348905880239294139731664722845656193562939766754390282135267434236599168968489592681360034482443448536665872072525814822873142284259366050074331555361059053878447741142485046192743664600822337542212130708319540825925734753682639729859287647885204100019135866739663733884989036578038994286251866733094044965488407570029074016640861695757289686272631082390817264312739938286670790966121316592870878176614612081178185042167827259396843008442768268565041852874061072239759999648726872276628345876623780410018603275305672391555752554863384776909712209791848865864092796652930458239620496795226054122900615783027528031499864157354016169378380671284002916957566489159261502337694627870985093521978903817208256410283279580923367996582756533921689190821896619324139072049218246748723013578725769628741354192307305414964192170243314235782850285018877007669761769520451287252866576322723889742385433558779186294005935772612402583020549929467138106507601258628421572207947621176513878765144437945538023650730096848819964342175780997536819401716716055528964009100411843246599986078415960303694316689586741852874005877241603016527116985422856835541485834352521465253337221001899499412427952695787514910113192482553549600365916123354690252330425350520524415505628967501181280756478740838548896914415856474514201233838162172148122446230200323734481920181822877801044005948424355285308186361294711573846724211044044080483906991444633873186031254149041881849076902249906736851680878450180177818792939336121541765826633156486613889664147413796488960661981427802390594365234809931088455297464045876230113860704285216031937028366793660270320647840245327570278098434811863135965391680240839914983815158892583942508503357863343126333299494019208890803584277421743942421080895448088310566066150622760039655099432254644759915719379230276358789841377395394994884494637444826654656198549805559153060153970015210869016608159444966135514784685528082885708618406639809214321873137423035656261220322018247234377169273693950360037796522605938159045335910209777768624207828362328767539343824304902219704083424162147573548471008291932043075262104890716770476346178976376164588844914008389192001616435193615944203928006302713708611387158018533825092908808551690010108596218314878138457247260463459082185215863033923874136041056056959539001488833629142402644090112627288718125333926817197398456165605515213247258738628418946253912074631045372501066298242584758667090871062479172689296133959235095941756947765799309285640255931249881982183185381758569247130976942062547299003109741573469365063967929101570333855834902577954173405807668950673721198345361228240199731510409272891834881224177799131990797683012942211517550529256794035655379007396991775327120135380207115092193585580173175411471222140225470548857516347134702556687808778546970068454401616775369513213884464472621093617885141182651211809207599855722337905099287024829628302929363237801677829664834570811834799672705568351404265561702632541785813880838035193690163980699552283921381219963060218462031784637612303334952960404492917639334937886886769514136821307384522258581242742856559538621703235571441615917828694664574345395501220486103276551948884568115855178355893007643805019052405664240588196904126502787032555590830532109097547751724550791415587834760089484202098723808840790310178003269955925869546829101555405969611723761105795269184336569727312704735777200749317388749942071416675886695411040907500630541368041577099566999876159401543672270736555445948708593460410041948753422034120991770659655662967754158205580175606259505876052369325431043455224757134256724852258211049521223202293588651401463621475088525592189698028696632432089566337264539548906386749890822757832582899212308764434885112484027923485376348992955884604127087760596520266177396930976061130333917489233613301184141153634412038734640150001288471259339023892449562109385765803835353434719745547074844421668624596956690053154720719786209061057172112487156994785939051840906411550028919656129659094456732016274059121209312962635673568037423171280643895433293716801398601789387903147834215845002992361490137262547306875006320356383451482102141889747456615344888351394120757054227310924788423224078414699399237658439460177291210154359942214819707426870870927393819477107741235653073012875288517950311973507513441672400716019310120296660456854449624759575528392979775149037767388185903375378094696385652098873954873041697563757887217850125329085680927090560368920748363917099123454447518482673037895841802452942611165781283929815028889242374543281719303548681979972387204351025906616728433517119125634405803407827836872936193527019506839059476679724558904788819919962157278120439751295284202271409250913039816521732689131825440370443050165683733616137718778865139395394576938391210863459272074447818572969498018048281200851500328441463352201575623553503286230221130170265783267922068049154688100636509759428199343599055413309494432246003384800613142828998192870823754752118705474234510478563634572836662389777168242336454177561738871772009026014728300078186787784761503573663933689335187756572410468959738170967567319185953570602526241012111454637572268661798246454493363247729482450340574646622391394247414181762212237009135002226137853741873964668510046961602983746541870469369160842253785974512723018829562462333866551242835174135687432269364213319701694978541424861899902709937561161619556793475346107656895356287750602140378205762990714857164426993119262054145817608443747213434754407900713828465553097763942934204134092512993022633421214197407929483039915316313296720281226977496513934195466288857217236173243338166932925206313863823341522123919648412570120127922837780756386763725332056104514870217214476809141026050785497071354765506065518515218628108092338674514463826337997472540447596509994240651329434240935431474343580792453347012412720921439912572978076761541092815242514175597336788689061479856289128934611332970493430377300120160663943282488551297842347604716460811204906799872875632493987862798810772197953466840154625983856722210163009444122980706196147329799806469011435919074636628449431855027891965750987752832829104764854780551852107177582850001578941390373150179744568870110551042851171085709206308758596363518226505592735289060753243957672258415096962578570105089144411119783605200009843271050743287381498371521533736254338221357146100981981377472989240869505584074790604444268495748091199436405840261962702211913579706569343208152206081491675384919228704821071846578513041240780011949431732489875210034619316673108731561712962490483322441995660698259247398964754719614437429087178506145424112014112522068002413157668720755727394951635300086820622263306568411701194791531820994598727709615822467220323241120604396759684233732308794911880471851646492271396309592779300272210990413484069026040823541839810492861896088171000032789442702026881154837333520071814065245690402656706381764869514411714212878951843085646778310850556477143637006874704730964224517720889706407907624869754616838906846109894386310059689684131796365098775779073210340179681234317256816901780805314968442326255228659371278111527625232663053267705760945493125013761396736643234672696246532864397173366145734781186444116528205380518361278269986703271532585053157212215942567827341606684381740247675932988703544493444654747618940370356302983099756056339938610705789454421325301295619282094282513245472791039921416415612654979103829227250792513495497159902067493284913965492078609776197108627131827707155720542048754805532834575441868697592904952550484005849036848791748950871967883723050145570281588673829071478700041015233305688213630203479487799889352019494370710777175871456720206533844027556031350093931742846556866732353122776358014878977534456261134646801236659410435203490902640496444681388501604860063410794378806333850695170000801133007537557164912997041917195275431248332731421243939126577537223204488888936569992385492559151687032255382614670352586320796077792909954793222028282390207041918869726329924313912292177471706662479260319541715610249626164958938769946759736804984615351868397865777978903515981617896054717170051488108113339754773510274003107756511781858005784281950482543691004063575109360487215658671079616269985824927070645305995852228576705639406293181107646114753646243212852787646455051991974062753159247445699214710227214386005203988263320842538180815142108743813516620978941574227884439841595155615492556335243055264339941462130800257027371444326669160052285443524293419952791116965974965365430878960974601526523907736459878124859890938099596976334540640321098167121063835734143972524259034166685519100905553560913071487599533871445961282761364214917223769226852336142716439548760839828147622448388987566447734897361120856199277174500869742123514325647764941759454238187482528659749468645089811640377591968780915828894529459124554176666062450335338854287525517359570283074761386913622541271811623515158047877204016940214982493813269597438328618641035697687683272682239829198710609650979684330013402826592730058030084146375732423237385488126638666279731402141750879680907710214091824015018005322391513213639221869828416894114129018877286425428257290998962048876754107404871723421638724370369298006872593752880477417174753343122162286886168041260628110697300880967289358744714052500510797906076463393969357438993698754618434784324689103760150252918376123914072458145198517377311028597698511037812799198029034320148567887192245481895430127664934027020233459062571962911069609728276684488080046737397922638118415406473082611481892478687147947383595214685747549808627566816733174827509462793563635143486318383068062572113234075482364434192948173584438524568223419211804431036249872893125638623276727924011137742102477481463397395766211060033128251182860686080850350495614635294653598713698340284186861986236291623206002456746745815684652287393997817632741370288347035216446807135818010660413368330632015931815734717823493535074160681274167328484332625468314270406828262932045126447438730431765415582763706400675224218476292342289453293815911424287854371244739987584752928117122553691430353429475662832860563541929988420179852856498071032577160390540663559730893307696789276259214942719691687497629512695613322450405821279776986842978012115709783749843308260164580019870277792246989832148175683485911500256822155860705444800832240972689566838653453826397067725067340706825558007588394439303246836663089274612227606468563830170695057016382002949993057625829941123408528440720289018111013974890862107979638655438546923024835095185544632752089585141688237033622336818994217035566857798015653026100963920834476590553948578182513831817344461111441119387756357642432432853662443602848877146659666828341301205631586389196626236834590286280244748756940126241121406164077638381071756475725593643278435062746243206490749173092538903820579002173464268735648993761903963338914967464236300118512118190568795484070108714609033746204475099443413151072049817570305078387444463309120942901616848048962014814189307395710614054312486364861188171905703055322581814550129028148410941249936121052405766717578092981403289581366284740200264318630072558856464440290747653860750018841120275872363228545766537353364325574286509977579277646160748386539621312662955470370383685265976875244957546503657363355643022957346338498777558587275868346161684258221597559477528224761411147889059276607449655648293229746263211957263673168359330978573325580478557673765283728905942954092194623197821781548205017001240857384539655715452884048978187495706484074162643186213228084921510503354836301680284388312895519616572470190483910684534432949768780419833187051401003966190486901581856442440775784282874361277610221979419714234398569912049489941907973183788452826196947893504967197865568291134325491569220353857938729432596474880809854876134525165727340625668954341500785088431457170274645438040736274893140271449142917531746191567534577840265637822576023850648113020091689040427144046211490319316819224454162188789098942453781804235259567572935471249042154118195662807196701894948669070243371431010212891234507134780570822622497960326025104497014874650550676322376200953089012382063452292810835159918161202317082308117623113830842188342088187623682809654543501808256663562523181002307650891903023619455383442413364370022064882484304891269448782938761202306144262265805848828648221989584669223837826041561949265601188421591702892119868937561940941853860443358808717046582416771352609513455781108264610388326234445755780734996801749985306483000825820177168528826253556007377934752429462236038509010633216108244851850414076229007787329659462581475240784466586283265211333930614544714272642968067184424517786042337060667655193978037123305648112939930075772195276854266016961263482675409190669526340008770064028289911169636840830334148546096612668194458390512707836046404083703434307840188576246059733884003090319506585191622710994723656759399959707219957396865511409274199310234353340323812799541809956807180861778299214254619605347782159656576328194071128133011859682547446627068867194956488922866581077162907785514057520420848764089339153485224903449960698974347185669874721744474205678268913722395167835693044149543128295323823166477156380070439151631031185594244817137004330182541081428848300391753410891723823521594951576782908636346823095984790038639827338322237178560519167122738091413493761709896122613539342529704066210962467775660651969383599281408068189911093455646537593379433664657790929299544268526332824686980131648963697525710055516119912643788763683958997625142662080100961634925109551944816777570432164202557334192178433383482905947027113378846359327513661768168905273083559744594414125966309993210093899566723307885589769234129540627028124195817328149736038817701615648194543846166381003255294738797008825135112593618143640196232142830368770164191364860705407177697320201473733751011936736150915408384347165441790993049404773865316121341428554985911627832338988542705874105000298398986199569310711397818970713418150128158245677386763551417122804748249744013535258032347242504721512982355463019560517670904091408344455021343779128615470872622165936153038320734716122204407374893368107545683051598229690492749643701261954880802568230245610284803647667039778319106992292053081522665577254907950497020063830877974817915340601471002800417690610937448025993303961938132142104929398288702978699654509731022831691418822209471288036394406505980092263764225825459540686329289578735428135327222169256195189276393455015964406645137855374513511931681100397172463018175822537474698538840431433330686781050204046460810067369487846822933059411148600664374696348811549342190021368304719236224696590324037372131148490990115288678359559232122220432242874459144978491405911781837817567397946805439479161431024830441390587560768193666074412320843887658517420087831730593450975858735053180162621496722129096688278790898287343798628301434958455996255985361035932987704806103048405347329908605205846985849249363518157837202039225275971869179505441638614062835415599896691784686143862110692151377956423142309156018555769311384584201638378573750059017537329657306743076820258007190746233846843084700536665416983546613510261755379441135835680120775892374521452268948239329097437928382136330632149221457120213813119051793304555051503684627859713830497969770540178293220110453036685015134621668245149477844591421205975207692714770850079180190110917075599613394996092195246748624810197217838885576176527464199890583236635737135794458438015947861037187479842894310800902254685738912320433422149850604583185910468087583167308467618908667365302083126163251481342292133219535970821544529554252060485573803649682134783594377305754284889986644467395617683916715108505455600285176396609290851034612037296508724470966818391068741933731796779926746522935058258858967749682544035488129590894071124404528853111581689911192924908837313430216477591037542766263736854337571881324702143912993054325795450199400100690428559312988806983375493773587776034580540375348933973796024533500816384282165714136913013915187274187517753041764681502652121996248589634742466859911634901898511817536416418522957037309229557130386201549673097827710617984430224517445648647074955512053108726368266421250420428369514633572017767001742800180889824074299998822273462176524448695998091552389422956018565556759440355258177187088183729537811897851382017993571606064707725785616406220417476088113996907789921745528425441889527267633040706220381941019271080223934968889912049176119654712351328992631287221705590459057600281861531380185808117298689996081601244721262099562302778297749437962184323237669747687830998306667922018100079027201656132842670873108731413422046012388874008045120781992135534707193244424300991379736208283780033239796542977676672822760070308245073971578109820092577231388592374450115742077332067557343051067239309489599890575880903747572329072732444807195569226167767993464146593672903133077296466068307422599817781993782038620158959501751798755846545886695385143081630292883354722600957754605829370727718756988502481085657866034570303706371356253401297687783147443145765477002128541811934728113423024745998513622972487496733643326245817241501336988860510638081144104912851681697579221888164550878617676517938194785587207702018190293653602891682994179022829530903297679168680709531493316855318639436975669802039180334816746346787689995257882207424389431902701221291883774450100614182752346975109232566542822557226015645267133628640527657653443999123499709232851245411191179865565408287362884343599927985287109209953967046453350661902241613344566366944134612189102443807771907006575718301985546160595563638289855081157318928982796353121109073207321995195520913757315308246197593670344910051079183151391941288410101660444775389585521750887488701268630749091416034763405393544527038227295070685075451700892959465105299596701495346675341737022625459554762408841759172189042417752058313701138506961022993084685393124156988296376556398611713830563546877223144792458510164031598005557857104206027214980035884829882098374444907168841338264822541021714152871313877789281623405003153832955491324513873023223000334568965161627167186213305952549815148195020015177691054976216807887379590149519276470525215257193237065377899962267855236947530969074454525818630299957778451832406612861503109855196957508864620474669439990051083921493403819311023639289799490365130308374446408535522105336037895664589386359244995346423182867378599921425178500818394324753758209107822479803328068343653448299604277864872302915065615248640297022756332383429465254737323426908756291102327702967951075994866054545635551074661234599813048949841781654749410707933089309646119880278382666515075297518408633524292029894491894419901383367962429428030862806180801438081955990261125850979725018029113139751563963541288938257247730894532962112969077318219006792124666831709414079368975425300823882091932966979130811131601996719667623497487102966895254323602678041401351447991153850507497631796865085033483995829938615191407308476654952461535331659787327568621793336856491958826954087429463464313403356069881546519123256645149602493380393431807111300504037066498656314400398945629080792455864164541349110185865968423471086415680031265259857111170214277489627468693167233989456626082703759829903629741760486212870585199492292327285688375589924288295489963355612814119946282048544924485862573722099100091179867083475769595678593958976862872367611873596453973371094784149371150944591879480352757438540795300760072399514074451471792406775528940100533746307391991308934873714007927501600089570433407164307043611343104884269490137763734154134387898174930016853588903914725546281692423124693553123134018394187583680283601262670725799053505570294817026639008268335296536068616704521234470186591082154584194161030473963699995576967867525341172661360620913490763049631665589265618745660427448931315290778627479847116599660435831176910073785430490723111283501230806417951048078020016208383484125237344102195634418073928787768793434055192185054254757547289018358465724120499889586817579321023942660985612170361517684092456141799023496465303997594086288999355395565763860769068653965053420598607036682070805487722697245530861796150034506412082348785141659593189646443342409845529868134709435114407477815063477694375005821584535942932570655944512024746589537012466564129371713699559051130726935925169037533043264867290484238988475586534064739698278062608350002187044332069696638242421332218010992288248740165549905759140890172709750694063532620733856866514490204353086131256531631624043006042848055294133370567247028107008012779998543513025764656788416267742574683893287514911280583965168381537914867679767480667731287407635639701633403047937026440384968097305694752766935225016419283300443448583575548683849425749121372715199485517671859218316889878679636211664484204674955802881713630133085431338142811022976116755107699756944521570519643520453789985145935029697971384959922022991016232863146707924491907855966267313124389824310478380478197594761916009581125160786515193846088687798985444164114301126459616729285939304825644963785066121653149919296526919182814359523196757459342536746784912759670951071541936115341134043971582857673164517983625880697773142256050606780042861233684100550538098083592105004814591936747258815291835568730051069396905970840078271596922600909229620448209900534429054662798166602598419327040799349091570151202560788975438748547943419145470180480829892340178119882138449018666760700030099574169847220684936633528621033589795155006745872679353594310056550403436690474630863898843505261245494393402342763351917367772509192495629772503537757454435875827678710621085370813353442846027409607576480327869691887387811273752709168694570973551218746343690822176623224279784772761050167564053375642081309987969873162154697312401967019902962976478803157367785787199387740653714644015034308941486751956002264755336357613274713221377406541547843052495459536285715505157360505805745162540711203376810666288864394786224275293763876579807420304948699117893414722226257092386242923320004172924327485144129824613413695981886055831286715894307591115296902050073822223237720716383204653360086019057911406598978056345320250860369849294306085459581798154290517812395331796873325445436625710716706842286005008580053795093757620039976741356780538921740881108926646451530866476472601824067875546545437676197509258219859000972361030946785045994289771861587838138839447202242465533995507613696232170483574066495500947249185508498142173848553682405209992556590025762096423927543616436327327235434476251537517442657057910327886641072065051735187374393341774349692277124884240566109947616364292242680182399446336725634534600258748110266300823123868060879202422805830546580192251444035222589985694076209425907188024765701246776928109759223865542783507429844406001097517597184809797997582112839091914362243876861064349308425886701485068330556735965420046463220187085551869071078427062053056125533282120053691489047722125625736600124156605758262392019422515909898628193098438567065048080252509648798688973396270459424286162023385207739511850998716461066342146945930686786931768578223612327612034955130774384646309267540560266661677783352813514564772317866038252860671454996709953918580900477974913659896148051026493563979453077561404731817106190450758566427500041058902949691126850570915905500693868776832842954712148931130505062972536715666408423446231464965859611047900291945090572133580845204989472438073642038814760287496408108030192255378317001780842482282998704572587100055649158196999466239818902567069429243208859728721138791414157623348768132222584534510026912461411850368827171065040868190271667405299349948135534984036619879716203474647398250627610434947688564738001362721840531327078739055878058468152999491478889620649892778137879065436553593257723087479813062777060677105006334179580336025217648201668977695748872979832088861387264641241203951894099158545065533767165345187306554321970483551041883141890824019085453216363186068249273600475544555525370303077310388952787373435711687709096216123463475113781464158496004450669934117271980369532506311454675345357530128507389819519517977147497101919449175094081270227308755572526153473441427178639836476690812017608456047715242006895441178086463269169967784958208505594263667480317072957488020786662969260184491367924871580706937110568073736566212766552175605630508969911487377598895701012710579922730884356288863038750309343606681266087421827257732405421457514424554184482437291845540156444988315487216933575600000025640358543342779720968668176875493275293864937732196276932477847520795400122256050101551409909415351773988934960240448028946071423712635994781465752507385729064296201069601673853338824912294141374724513197244997197946908452117096550738985937732055799755091805932962076268624787193732203150078608113487676162234746793749254739699369853900746809775426312436318673207757666559904874604140783082828933275383218401711145079292510939136534939589391980949370216636193487446160768859203183152615418348724418964336522517937089854224500382909058946442638479647429779233772490789928352137961325399436450588747290304616996149424799275743354737155800914898265390198775224455622405085246436354248620939725795209686426130832556615151795251407306819080351873249968417473789293950529126060149109055708548078098905447671206271545358696779080612822192785286399390614740274630856455979100890526737612235769111852579721750065677362825873417359006792530749072700683947398966025565667658848939241732692300964244048911716577002693183584469804804294153395759992653454027491403848026658766132722951792098391402632362072896556197925747423274597618853869281482738400603952194838445531324014949300503931876438612642070549434153020106317238161811275414212693735991650492743257571126524473827277227766275726092870025437344372797045516148937073627451951022514166083211730590890401154974558628638796396962359122247789755605548079915193942778650169781402203037909437643565554567667525454033057797894434369270112998582864718266977003083236215539863309036920398248169744588568271681410694794492027508611450174670319554152758446242384683817578810566529302022982439398956570289385819506536315514479631936188604993231599489898241862367440179589766542950280389853529076666060063955847644945522072515753247776103459268681349749389337951004390560401040894521449665002647822645408690377927182104466203932306355979191478172214434956982501939300582775140882746456911773403769044302533453252685004545256499640204180664020070541193318429297034619749411027698871765044349555378936861820259092536868638652086356376777110824082560229520367008755665817513329309345306194445819115634244904407841332724060217071982138815790847132405654207159688516493663565806431475248741923308233436614193188692857056823830552226896832704441294927283369072553895711956067845215420654032396552625081122622887779224559998508679942433143942662014363022162904482972639661716042261474115090158815063770789688828651326695024776289293690831212747703371948748875692802936211975951430520593816973993822499336941081093652654345849841748451733953480595283479179198873747021046820392926314538583977035027624640391863039770440745765546623016761128282915915581215957478476975160823978050402870720140788071735799971703674031827487779237838488316580603776958976683607923098529951479513665483575659167121104546840224517450856147077015165696957646742280534951404674414028762948289475625838446581736413684858860028222199010680262135652763632457045112775195435468977476043665739791060507125340427332387241191719466483339495229673459835076625703466787983667623133215611166034138500048185437238592816132684099344030682893803917966393274341440230225009487601088185705283288943539073724936256989841172799055333190943463655472536016386093390726937412785355378151837943363641667243328271800885374548941697112419339610262569171713942270057254657024211872152587474812065299794780970638773629763428154084105273609566874151510006523016833129311004092545997845412737358611633679595757986696957704302397128990023060566030473849270432461238330248022518188925457918120006526786589735801695570015466115586422912253501271564852444006647909516504320544792566490154203747289216365850646619680375376186637194894889297200084744888451582600038212947398894804173980551514284034503213744275803539986742386065156432019746233412371924327526927560157575587420668607158812831992477302910391918901173566685507264992493510376421257370731117913324296134185743241590689387993790080721013880384407157327464996655689776147213906655779806334072334453407899067349684827492046161383884216420209167288685106748696678204779266243813280118960173649943443277087120731398262464784070647039922311358221082633625929377238216643533782787049320253321210056864366516593137589548016234989038323225111556511357334893788944490773486851003228841264676303294494333275525179298594453347849858040977825871237853511600138888253325930206626511647891604037362978447583534751962865249188512986978817251862287291039321597598089905231620941445831868161813119164545179981396034607669875825790173752516871339414877942072649415384288350151768949892090603708480913765712928356831001383699820502461395029843464005466866119227597175118438391624717144380795537149574377351599407284992415900162332685267767119531445322999720524759921183757147766396052392808279533898851207870550680916245557139078178108119003575311422596904790874870842156357248204237919127608342011407498529012549101785155377377833173886996316363732429883334133654610504052930083071775498916198957996170821652807892296020506262025090496828593171414709043546695112513433791088763466023044478239600949811546152578700191426247471739724101880009191064786284109552867522188630097374669143234431513959833330587444307644089660191213403417387800205539073212873631629762749375319266748945414711721144951090009053080925709523535871568687436676176365736396307573171270706892302865389757995955001168336648150851874342402606025049940742485354503200514548736686878214015928971155300574996748806191342905376999640110570388808749447050883383666578198436577286928701538952473745302520033254745180026556385831613857189138996876375466810875275726102929772663620772452864237739544062760027276125342787485007486678972911673687015442039719556765581074767183988498446303317057751265007436907632279711364417646781481586203130350683259705374819549763153068021664190555929875263663686335459381106650826760874644975060989640784201952460122079763058773612686786040230112147349995258787350178151359412975785200598126043528580675128388390995049389160609062066326415622903353141221820517817015780192993174965640377183141405562804713573008093031034109179620120439393491917049498510883764129867408225598184086044149764538985027909916203095465670890380312965736475920379238596186089266890842569688140729948584672090405802814173180505564612785996978123553449506843555422039986026419488328950809885153232439870100131699099483479014728616087325168018257573016668691363033083943771118422326968632589311183444992619724844633924486910694907211917733796295908019373688800532806818996730251372301331475793918784452663275366636451332757449055117339751868152734929031839805926159158509652620179224609591525012511186606349293679222506156757367167448671387515561759117093036575064313879293014413752850589952912593420155864053998070453509524967076491168282608989719451415450447844910367066614553713375766053440067930224791695959420644529719747931585009943530489730142484969242906976762008595916400751998207437158744587356159093203062895431796211270972509519471050861097515008648450416488454338639853911254525381720838112941317381742606160819614924664122358715806573184709522622032901867792123695683859563665768935846626767344144030960207398412077827424971269915384752699607263725291839493287662045392701109259581996951091469772737133210056323725670260956947842024472952742154998892436656237532412019687190607858695028818825664512453038652801196921237426289069916451783569411571404990808650817936300405626553772741396978787801994310473513680621443747307396526068205889150640033019784560395028675143055331255664003620154610764163707738494548997643935208579305947926096482801887662337483882057451613784988601075323887636822825277110253734831305040580227989421784885322466344809311296661551835110126669906461582831108251875661234870152896475684990839816054519700399285096581665436298765259085655853004336724505147569908561724490324169209931267335285835613141067471874957939747223406473196413109790311752306400329788485608011177645244091853926474160062941723660743719379337680711913294792505992743299047406467107072591962044556300699022310591698382478234729848169770156072876245044508307215440216813738964856556464966504232446909969336696083021463794753956024684671101867051692007050070290923825487460329275926509338698920713301637477068583705013219106455798898404882343454351855682242850358906472093552398402465310324485547838919123625545033198636558985956943902363133276411382604147912378343159268962261480940495043817733877068202112324227111090511767590716002145600259100772330838445054925772499438967454396603912245183859683127520999909747053966344656421649605601696023514678110312524956264967723550049995144800014408509736103962028641922180626364953563476663566637382383219714166750518510174431148496813554123452849504520347038759415610691430925817240230803464593528502064813890452999410002787784345803197246216729102913233150259026505485870650285824041814414155549744805056889268752388602794275673037285946126807684878538714193407314972578180943458361647021376816008910005598140950341662106254096036083864597703185288257841851060102775049406811684886581465513959583602950967804371183802953707056826343294041202286137013970557906885049213205091213649508924509467614671372268279345991508789449712804979696518267519385657158920162185968529437492607087294513775909641943195462785152579085492117606776876682158213163241899477970054084493426677882874799108324098536905916180838059002694315830519862587989243412637580239301746535697660699821968081238407242095034039615829763665509385973254306343723739189607341416285938824253472723675955670520167379881130269238117406762255995326338794054683643295714666324556284786873220335857867982643881915781562927322163123818050128479019179926017908438269278443065142974570475512255364437958228391853106017254919428627226710880783155045325148807503401641506171514085643741973383161750241980008323710523825565298022057061155366799309986137516071212346152178115603310734668641015484852234525442499923963625625846335292017754579632749497676965080121703487955891240119659964723375392236989144231258550298774494908383871855004729382982088002084932332983142492045675546518161513587114061689933563748500560846949483422216983978373733907157494823155458494083870052647359309526348951115986623651562844611918281455567271829974204252694833526593521952699506124834706987559675426674749642829699901526812795416210133322690714301806809007661154716816239369716920984995754538294818893370074657267106142497672315172718303224745960546841748481889370578925103924306804916151580409626261176135332530135362717377806659350500580874995491510988396497629076746825352967315183119344444372627350735332543441684908070961828980896612694523465924111748893111652351737530880377080685494219220547732929677029882107730775391773328633425024504689572114167732342243973214651827826304071017385043157449282439734080629997483765503187320284437715903360485589153969000031506719389382434937793529793428019934861083622923895383801997949368193051696274503956799467409501569610331373019261842143456495051705498735373546765962244228307390040127677534534578971400369489431879864276313210659343100676455550211156731319679379587389588381929268872810964795219867526529283088987872177003616941241749248550492296741669202770494758521344635404543689165134741657959338480798186881286326118811175225137309592606794965340600942677657944769526372993878044441994514956037009344281520141460257718898051843877088894341334269009072948603566309592960521058923882258142731668830948358451891028818984411528576287719428610429980793776719865862007698732761766987061482954391306149751232293086691982082076713924744600676318124832685318836172824536530100952370673960403798539148998197552847725350867135288712889980733084875682416026630032896260894904866367074251241082692173309601888735459385896580777686583561528433309210791125344360149073300231389296100426337782232835202232688829349384889079169577090761568235110108614097261431824028423733080707538153574787133683243916597409148500084343541283898253399041630778871167675675965759088909175514103699038314111344183522723583408526769207229826500416636494911003813190053515703640090915167458470563996583920775122410273132991124798685680411604718184025233386295715027055431351925864349167766346417139296121633649044650645882216575798925924023473075057959570141328004364779251538132338746593495440421276259816192261392260084401446467714581272692282177413528104956762687472650755251581156638702547342038911983702747816712644575935998458853409307465377932374385308333921529353321051645982675921897671231854061085113851429877122101129158719133608281805562466117272796977818647022363613620383458428920896001189071800136133884409362646467556899462782038151707800702796029211811969591446055358885603098961791814201857070770055654642768688082414573670351051179128200449685600830175660648027520459013852829843567961999091299883058005227331816574951735486351833387402590541250858817398249757106220085412591554124230930825502734242017267411275067518345259981877034393370924640422982486007437717667593285884380405392767932354096902844199283793012591948829182522316092410360070579539628666838133349271442978916572934522646711128442136303099778214682215052650856366506519311776549694415047992027771025137831491874216371520501344714330304396880672631904325293083011669777967649575692443909206747280520460751368807469338902337815577134163052551042596143974617744327534539790359311896001870509089863840896810228407365820949219282053659730148424685326244331953604359575157843375285229541147072310653350062818320720872388865576994489144490445260380122063029759605120441227606527336001793250764750220190621947634079658327069862364664507623552430101052229492991580419609108957603097594765312125390311361478469373726872039447430735547799003300021393045478532470752204523557464990815870984051786930383914066694626310711964913098185209089486488190394800113760261589055806806232183205215811105980046784449271142940467656410676572401794281284030775984674109438136673960350172447312788152891530139795589526458928608152964000672805259555266228049836434859200021025022138592061139092900898344875889634314824551258055994034024468776668793369864721382290233039606334424942571893984924479228153113427566427534946129047451695526968135054184712310082366120904830298600146994078692498708745132160288346126018176599186649791424924269750076201774874806770713699909901782730649886768962159089343627949373333717319122329390049397608090288675628472908234343277117091725378992098746557638387061166967426402301239130812643860898420446358915624567089404745148724644989912606710306665167455408899738597689096022091442383214903765709395208076942401333943078344906534141751748321395930761565495950347231753445738162879387719256053302805996759151971276093963312757769597611451627489640118660676079769929370795232735374361707679582114247075897130573101263734792275318316069394197028955366742181024663557776129469010945031313831684685370143304888742772779027851963601779663564397794076338742625468798753053489129187726535641675264327611229475280544317093530437134873218093088539687504199009829152646983305503419188652666599124653501334364031167799377688108988313846527508847637285626710800425591386785505895698112888862974915734421229618840431162769353258789798393122313281771874250613370974155246616765692569708355960636850864326057391189042063816095857431941664548265888801463562327551423087695228738417607570771827694013481744620928388400674461460104940396259583929071004263431680139558073406925873681540169350430063024815344484107891722348145865181274021610449147899809307261310260131800357532148258081152363012263866150219232905598834020572356969241481687825981659054351036024272315576888158254614857703791887159698560295761523993332758410399930383800767881667619942198207544929343264498860331709350740523064130281874595756608428234612156192256797955931197057302101718705296554138476780923194390767751273284990033639260316119962762438299100961134301032020594754517115566265230810363360573654068741627179353418048307979330199803747633894873113149151956635378313227401353545905547704987476599911743160275124345009097902449160435615447002891936554715833596873274463271372656286358696988339117471187283429541515725777413615745461433222481677398574168079844726728821278711725712132814128110646938887156628869835152995090809735956264798502972306198906887251441718033993675284750496515346228188673511815517165956954727333485419230427935029856954958178915772633586586898824050973042384410647864126020329957394881646979853517356145538995180437331096431366789422674831809464177377489796703772222674133636780713591716297077780456580547707977484024951986459230428345660693749482096261064465262635784402004031983989981489860990501718111453875528780019409470417610819032462033996044103112509690238957506805101351828960352861727328293203501501726523088640729476117525097376867692517844513409258311211816668301241670019821483070418644657732517199700402071045228092050855716352106595893124686987150841537865972834007898258672409629655383455556828077283585646382498565868551572619225862204461669908032057349892066148341427169191890323601857276271389515659344655357277957454481119755706980701618980001823348632190369574249674289640677404380172014747026013976000342536069169217851718051659927353291834149242128466917100595344033655785228357002884974658229839866789684216337366243604476983205732139180662136303640229799028141141128174538650045329575031843079965649056920212730447284691453956163352789707378924583736828456899185014862676153721299403211288046790512632508355992058393135678537900350126364425230427041680948850301845086407550843430343515959508270796500049716540507109256736629393862526553730527690682311407967831081073198625731370408308847377594544256740650541135938005586836336075483722583049793128751190612290355046601639184035923405588131078512236848137849459356837271566211597681045081912836586185403112820727071713710068327476942750524864817337741793076619554936429813109201668959472666486152453962512122223559666333812766369610729265993146613741274290395900684790647346954269778349094883413536108451904578112798209883813500612120267634426233998232929895102032593279796996737422043978058372253108820558316831501407745059192329290629647273911386880055529993523511650011454888371385447038408311771065460608816808004288089787591525101629352541426370201347119825878499202410068905136620073936987595057969795997453039636478744442005825801151913006222873513160370939341801154042703836560576349210144109508161016161522183698870600256104658261174356531396614260143916414536705852098205728767818788119519948278476180137429929397084723866573980921918687452081344175728043999066000840476376037806099473750438629857664448908011541751768730721998935736602956494323613988403509645887786665069150015064534864320864612152667598201677396208981017760405172484627042407303614282024053354204755702470913691654016917746821039646903959471971613385862588619817040712570035400812083351841677085041887231920170256601180727859386605959716356548207434111421854139035894060220986098684607484876756416601714452413507050678894910466093798108010912832157901851973323091273028009822054096187108836702822572168753576012836412827005243480998798539236920743446894687403743024045613100362654925808226857618794163756153724024006007147883100556491536802690994766729977636912042615499146867752959333977201257475299749788129989423972918014085079261850195313550873042075673603322553021703604113590986434157256303778030932743566824347508279219260969713048286728679441483510230305704276064734832368873463918262272236680381525205190638654145906879330403177429351839444988313432557556113943087805760987221975905580112868493232767885895551617726245878116127216513739007740137175905042531063711032380953931971559285599945197340867056107854477024125022052936342427298949585999676759398574679515551465325667890003404272412825304292169541474754020422122931019714311683305916766438460677401887252237918763357441549454026728783576874656335841739999825681188482388322909590870043314369389209986433196689627443342964642364533413446990142778112242028301795484966595872232303435142456418891424203932546035926958816088436548959928904039847072264063532299418154035671890671938926992268527237817386391906621339394425721960307181723452291550432561911288160077865654679194979181121795086637229939718571580268249406817861760157370323072397311159794771542945077824948672582026675339755146628296458521862695647085276904014313648242028303947248314165152996949894296509730051107395247885758631101053258812937559357632494356516225103907456280296139161966024652418508688088395358410730423891792937897444638421221971982313260067499554736942057776192315868531671240372750923759492537598334694309424383382753209437298577890421570287399702595020638236622098191623201295007507693746626929750493244702902710908566759873668990220392797301786572078757806232667558383266765930178783301879443571639111668992952338418604695881374204926797032288034573932269601448167445455350193558667944246231351509165099886817624609614226067236026875311230413853876713338392096944253990357498240981547924693265311088783197306358152493452850478917452318226357370708872959212772374047654864136658875413420602058764294638634822944881797112066026685009986167453891108181729977583584270371123985218311946456662670903236341470911186697334213444794698460586110174676513814799965306666322732520576780645572111657667310234958731679586651163105943550663173683587900774479644914780892591170051339839309459444780075728878885197398103952304026137605621985437613980082877148162979845022679293991164532095099188570908112519380071479478213570677432741096643505648406378530966804168770967449623980560728313266335112473839407704511050466062919639563038155005563569535168024706196461244384152613034341150719990737940310179508594241778419397727290646653467377297336189807524048991636508341217325108739221450221042223910164880875774951968761592975883249352333851105064070709946706311892122573445790630824149322944952109936593091118937532161161565260788701540006348137461376578080705046433006022237997240556253959413405298290090808874834889215624285331847124551049052957099655870200421736967377725701683993395499887791837926836917777887382594290956375768659019233906175372958988602287817392751354229369560298828205774635067358468916099468508896580338884615399640126995787998050186483226062385510517037737238404796907864052991714184242011819320465829197625111959114030155397136123198169239927519531904785799241065505643239160377761605110405174993371194735754165029064546202651924632501099104491864520394405819596959337454736622397665866734439898129576510162182725030277393749965042706605093225866807300049940732354524481701326159726788142571964904198358271367240815734542042339370486608673401831820976226613648452027821905481675988106853126616219954860691419444043861981827474889644795950425568338780276301897670699617719978498259659677587496074485196628466782091339674275453974607978601594987226043560232175969848160612831810252067432301538732046229918227473221914333039051869778390946778623022188161292901176170401675567471548295271982264343339539758166760132356878171611192149138237648845909839354243948190161109440036512433485715294360587912397424912201926152206425085434564855869309788592283910380703519137854651672504808048162612740237299121948971712779894917838836009115364312350448344553837961553903185851772517932586361402561281472976937621703845405542626504997293157002738000760638033481944979689318668502410417801693135927417148779463036790700024615488319363668991245453017659939979982721363023754287864365292537029729465498698112164834139607716398420746253922173558847462663399085284892988849345306956426322610871219909488697291309773983266541775174282668282675962571225841983979755879651235666662091326863562517010599009002110565344127731532130270275479279069291498279969579931411139543157296073668177490286072907584066386411382259510531263546393259580841461179305756756076448297405376648533214955452802045413723927942739974389334745566226522647092922277857077417378130686199899075848329924223021805796521519297097574510168685688826014254878679827435862370918540038879979591192370802218484274468653154111235228759067011029953670101186825652698378285266813591430666954132299017309054024386248391584751193108966379921945450729347531956250785700449815495856300959062952002085378699838291966754004239378306891037794890657960835631344722578061850568181812860284946532905468141052558336556067129956821806257361384227654276921688447295006627173345239115354054149578186590500394940898120720731678457093169238268735591106662230195034373478790963284317828506028533944989151562532935008088701151611314797199281440173831599643092410069654689035933852249184561194382084147562827646049924477991469093323600594063835659641951498814511410079296382642963975534917853250206899198177572702906768892200737688218933025949460241313671052964203594655707049553746975605683910778816201061011955929152633126497005248872269986987765403587064462465820542368475218182748023484504050847087259665059415204695249758745938188379467510229924247550683547447400890012290468395213710763335972299932034735023897887605660548104917457769957204635738884139783203968302452134257313723875813430639878971828172970158344951033932072720865174186026965958131446070454354015340603366821886492436128239421127594815558026954598584509775279430268334487982460532680933433531193792089433210745772787050757834482693933555558708189080534776642992111027109310609956798459240608205769915961413413681399501685835118946299006114523565948191259390367989796445959228627356136383088660511871747015687258889149301827301540967250982185030686914246636931006242387363597027787931402957298313598954754471992686871835966703130902198681337418742618247357340528991908118954891441266264755104345526536475422669429387614193821208620378091245104720653326027793354248490369744044775386010639880120771351491179579569439956827889603526904055370052274495546619425042815623009014601029814656112144458845829094742204307720753089152716003726389610169088665793152216576065231718052815948120324120579566710350089360881050720056104300922185970143252253749732832559386866341089202791754872086605835463640981300978362936523277155801223873382798587946440525521283990049830579137108161270604511973401764835149018315645749985357172739982702425027171916688729058083674043790440445466442748902702827430468533834345096985110343360487411284656545018115880979437189651837615376492421336844167101482612117053755352194123758158711650407180301792347549229563493759247983733076425921282684861611098757496498709127618005363425113648593840785838992359851821252690604532419214970398744594714357195777820198252756235719452961450740416566550299423766731762388163277018247296598425266140187504334007909125023117399744607017025821915717561036669972432576698419178145089683228113300624652454763553286102877106702274668404962006964935883071117055895386052746583026280020876893852596575769674073966912515568316058262065345698338518007847418614051033132070710706102130760494348442032002086442922772259587778665486539014567556103210371688856133555589562959235177204016524978906304546877303787256503674437746013544667871132890258122050545334866285639149409269938263426456880744320366508436957321759252605692401394708779472071766952445329794607638494253032459590356843733637519731562734877405316365121275381250775887074102501349968885665411281294401786548407254974745515474850729314952435205690390988737927784585280605550727576847606476931261206299175103924317830665584192649847058836383458154057922994313704524943642278704100549259645160024433022769638908490524173136742770202769383159415981454638485932947234857263354939739378716844575720512277640661857877614152608039782106979696315752709886321521469319374585193179554488455562080574804122744804323739247647833302257552059522881682546606124591059740360235060867478252653802176386457899643212840302455748859905386251738313740995623248956849871851876074885869784212654222509371293025638046998832858295152232222695575922783371261021930862619405374408853745778501316877271700866228415019612208745351678779350848873855067284618001098157311166850018732009342134059928400141804191854340169001717049069238788558737281191795561578540710619734033623635143910417376765847210832131620002343881439390407467316068461214393518127544164624426550810732396842863951839621416954346576539628446435553532059382695367623204965181548412608455150581535971461767021858435697056657053730575298089911701123063898157394450160602309372437082701483388086110430642197440594407811354007025931227221353217713274867379224737056324584067361257193520326561472156102075755489264614707077971742207085736629416359968769334163392884340383346712221268414030271645690408971365809236459557356606005990198570348884187505120138112146396364241929719702895173679293967272163287123367260628466912839162646323702247549859041191166893439115125630943009212497947677013979416402346297272262357835363606264871357968746523922949754628002448939908938908648690659978790532633836618586543468736518214927963488869356296373337141968844388712818028406181529157043152062947007632531396010089761849996764589397961716208009972577097669727892670011186676297159734063617635381109741776185690696954216693986786233550047767942888719954176755283618267700285570794609147317421070765469748738959298877482819260715403556107096823769929388208812462582139264504128644834124473138490642826271792636403013941103167254443084669514246727540532158971652956817508133401293146243456097939503660809406266947552509378665734143379888402057320978939212829581562194111953580307726516434139230038715683208461451267219487812908507979707474058127255696676286839950210485576596497480137031639770157921697098223765581871724042459779657626800755068000179431437044926335593839541066506071358088827803220546129223885298742929903120841389397297604071780233548093396495361569761983031253902972205289389235803674712433308220301640874331134782001851764508028493547564544255976812064484672862278805906244162165406725093377392080940330856722728355710163768805615353390694757524946034803843098926513388656428599550619989088323575944830681126344458427396685343570408189904246016140786848896416702642157152050496826818676231999114039074311770111919044796381564567980436673200782253223787062073670688813463504722111767091733600399342051345308309878061769491676075226463712497152104925826447518254149628229865074699846644845198814877937841706995885288996822135187749355323981448013879163765481237092945499013600882259770923404187783743941113772519711565818746815468507636092482142200006970715797980212858913700678634329729833103686601661154333385794134033820431044991090680722609611274052641059601553657960009737436921560329947305316273884192590000395611580983646360236061627686840438480077413882933925451772820691147088693060807806734200224775766175412413090342755712106961850492108202820397359379452544264482969047751804138370997334025561289417778830585428420077504357802513629139128757977107648605701595944432580684558419650363095147854443727398989452314661267346423904479712566943808407554438529596847493210910119474499045045126842465700567542851002500217101237398840336676097101616364830798493232343533420105584030184081640525805584733105743362315749055955484994317761926716241711624915005820826510236142686748164023008016789879484137975617333289245695262689835551278845832425704803297310626238029377750351742603465403843518330514659379195481668773739328620847423329800902295789410532125297605347740166286518179350035333171163655935603996024252356224117098895410723650543895902052364911406773258697559170415166023579077824861128572292231362361995677551967622340708657728542995757518628908367601687636367137600690728640510153615202045323078519139469254573062907987080519180093849457167015591522533378611040109725954025008955205323379663627269511832871767593227688738137081966179677449798057865865018121141724355654032995252903746965331921602728169088374876294796607105249921609472881698587550027703133743867560611291850047472312231248391245808882581975038663302730317726120486855589970953417803618025408438178076467889332097357667545678631080342865826717389309300658533835822079494272625693689124544109590442323600046374836752419866387663133140220961008173158437170374828466583918770701939278254993021972370785376288418023139958753541831743497614860429700441717821925370337662293345645204061948147026880891201860397693367684594074882653405317928691312398171577349577166156874302162557537119642734226339813875907207852284354632320656873104982474369361678661864957042232402855512781885072780344946111288087340519909870073198489627904142882371984575344601295343560747588022146204042596348362360724480337986107604975778843824698065599090309986978033920211172902019327307467619043074980881793925529127637685353800533398265179993359000866154896619788228985005625409038304703918357501623743699152423838795555134018666680022955709676631579220271636708636440891033548746504300152424502998965257390023127874882246305262570879031686565140128569939487810197411479495917980808054584732594082229131180657495967003908042138269463997963269839232307638084286301979960103003314526258520059274126163276423954219011385298893287170868493087276399545408860541425264803166772307582047309267389105475330926692500092278869120705682788921713683978789533262553897705835931672544458781142522438013367871118340933398756591487393677162818223996521121892462242860761929689482870879301506229445370296629487962890299673648203010707720906906257008624820692155477665886482580584169285721940639967076057533575010566939994376957866483563240506909906814988789951340314582585320128969188290433928143285184232203561959416508774627069779636356683091595412835723259085567107597103028074008667853753515260521468030979774759216775838609904251088279727764813987818512574637086724485321010570056644390238991619950086676790541847863840679136858273520632790931484046890961469626327255957886725755416491334669681973507478095962031658376353035915131506393136434485894439297537352820671095986388120580315549464119303868256424452847316119672712193520092960268352492931407449029689077460934568265276497832201308189249094054501437453634463462145610023352022303732168718406913596042014932830614209661657195625145300042064209231225843356603225919735840195659447409773621716999213662786473088729867413299171090439372505834575704909741355395003216429938396337327703038931840339291428578644026339714839473489119551734465717286706048554123266082444823444202109158109888148524865256547377552336830537721578941589823456148824465036340715276716403572702986157135003752817252344562241340452984486199916376402618750426843106877876478640483399783552774867164177389864986047497692170771638761302540108354175880229920709524685289387952806253508884106333241794206715828721615952390158560688493935974463870451553397909239177563899529559218332851160060411329828786725098403297010802461072834943735414929993186619749333004176980121271270175736781849956910702124538440012833806673039814421785579106855909117691012344779050144055446102576203613059231284396093115022110739631700737377598813500125117655110238147067212097952895964819567886656996945340637757416804105916260686734377481925622186292837655800807445615863452385094858976004596501576787908865056744769902590840331187637181926941599317921866905165044227565009334220115111215097026970587183098460723818815247067092991627771659355908637998081283178640194659248245937352857273564341699538545375673818651529615630567174655244573276966471242288524370079637953009954480013957377937175354411470797504765877589988816857401115206951325185292868294486748374780230558710769455943537190824677269865641146420610379011723690761352785268311663641363387284212556387299269065023647075249905500551259686545813797228295779480365629707647435524396555658940103155796146756731884562913528683586399163464690519563866114471221834016524701805947096830419656721418877586826109059621202631618003357335474873036803532033213878124899422029998239116668750140720505815880002448611278437367391032939567089534587794124914316122735979766398983893274657300997622998783218693794725428088956476929726545807783623749020117880701703309493434350029725326736728839093219206819582849658351106463032569894289912447537132334324948832554525395805951254045683508699326428479182503942230881748144028580569848995510141611187630892797938897021695855502413602994610606980606829741615972830233004817457208766206514525339216983006226685763900429966931239986136455956325717602400603107239168132278084804186133351373626664625172839448508672824475670045780987428391354805394144178181142353216148195614304116879281433215978975983884673722689065120652881670425687143050097428337006923175558708688786840250685317300372807624496255299298374256788043740970656264108553840211842440928759269974573263785391057377417475297828012733861360890672136912290534127965403289935808156875120261963101307492839378759763507092712554538753596562585804838773995000625788052737383177264556708433076362022202667131868461583384903818528450962711773233528215419034911448615621961670267544297416378693433058724427881367892355491789948038541451764452390048052193165760127556267553056761668140170904005476817962324304279446493216232150043712272450048901869707015988339505133569716998046191634575189999404492536939568585539960908408658428655594900176251373417987674387191891391467524087803575765466030452849985656116700836643131545780195667098776659663319612338957209273239636191398795685766600290204968416249794003947158021648024264155533777667206515449689976027216886587166477218142525129818007324958219784032776505353516625466550448774653558207776266982432653851101427273125473217772493150091307190740159894865073761191990899497660775942437001521766730140127265179927505695722054890534339472555310537911501275240952245143805919998503878434779222794907232019116606220907776210762236517089739424929329356131314355547362464204911867571923072516938166282161956218873883843252078213610640559237632805647605906095263388908574703262172519088919858050279403663061194502161389907196858376079570882164124406914008578432221292189803789634820364581320646236631570766258345556124314521765006293616430562062272803928820100554028242975774862644535248579303556102980500284447498866819393005880748899342746602613201073144290048588496637315053844678753843257152707306964297589900905396798548415541829752481263568426946482249436436483843298445629864510118980558579196727312140949746284530791965606841958638730943987110917884324571847509954447354774402437075507396906968173374024123926642671160940440847803895990864052566072703431669926139765311990672187181056640966026709759277639895123273081357521043025138120637893789594364805655563905459299926944758520419222403584462343969705829502975383136725938279645200625039438061018550518761116853141137589399630043619233217614808554836310863975578581950402375733399509611379496925189378055807208352072319010583380225827783056681363683211957518035882075346667121810138985126081708507969202272028536773508457992419949433175184179389916369301443010547120550735740102091073085105273177226379358713670914868372233371997787488220655878985284426845190734537147793096977251459895046431824149847238440959829218085588859620576710132918126985930201026731319036590115571941424050311628678619064711539545278736961713801553993184288992374641907826697143848024389456722599285956095706100079142867409521319460338503045248031249457756620987111926875046287314480856000006771101138787115251096743325309520847763832506581356532102465996625567590667024565651169823058570079139600525067128874213171159108543022272603539488705152529068816229702291190560531152535829452317111333881893842746395320826728129791065240255740632584911853351320701377008143240055113322134611420156877185315661160165048117077905698011702365975480910027672776204730865168659696047698173903379916676996805454909038537821596539296525294371124001291797249649400879391385756656901132259917617645194224990958830063987399560540081319005512494870429437157284688367160576981256682491303339400245395838832968583742279474264368760679359957675818627348267233892300762252915874244533302866643670854396532559390857573088645972161362464619836014767575792465005915537474914938619483097287150762165001881783550036807646587271691091412757882825317031753756176065627403459367091140236644445905906828017803770547267587843712418788631204215305313834741161273798392166980653109226975101691892663647937868330225374710701613241662197102947484167713253841920659476659190404572546805844854480714318474232450189716736677561427864255869524929289729115128113832156424545574916732403483278787868315400096225559141423861216817765863024379605359840457811297269193619815887476294088376249378703658310753737975899530965440399598327419977680476502744459320922575048532818170700147623384281976896983788440833568456603934848792923690778401708033618726361005642356749998981812640603288516225366837147202218459026935940736131325449926813628402839563968922056551163701842809919002955128252512392677541336786102407489404513090987927018732233688619673387861511209662838012989792765131794842990804353419796519384791171205447446233999999920542793395014675960989535962554699066849491052595622869427228579122278384735242629268567012238308826642515032670069118981368739094645072411288407086616720901322197462361317482033070898975985345717062158681697114218316561066709148908781276321974146748248078063269337054257905215837835098683979496470117233092420227536340533411377074194898863559120130568946588050075723108867846830319092885413293436239705279691143005476534486319104466774454100551379810343366577685023163263606445620327098115710215268953114292934802372275607512516092754555058679010260675309758539831030395280413262883318180939410331760567309817978213344464207874177987399092943153393850466936557032081676226077630474117275299077252648021441231574239793264954265456761106440547692356725712582376977084554480803640575776169973949879947253667800180086805501822397922176270868359926934972306286083327694011758015737050615663256493257673345711700142357435919073736974627166067617252708214388893394036717886433585750962971260053197664552415442913802170755313217878900346944786385751244194196010392807413948311624773924680112094717643898529141878584058599315210649751224098238553802710976859986765460692254899783349185779755817858037450862039528397100996732195951344912297023306181713197118732057967004758926169831494699051546247871680539030765732299227048829041784938207035991653873276430033109022724653463595683874232371220922858287706190332781671999153985846832866670392707243179613861062223964688839030674896438956376080410980469759142239131282582559036825254469699043733524574637155274433154547662195532542993416203792415293906415077990527684070401180598943809353799402515674407625294623471888362611659478465318933221617203182796877436957152072111014298826005237990952712173444183330360739170039819824888564528193631020755797078215893341354003187033330851937137478648942811036917161964922876225792824766937028652504913211676654944254716968539191652856482701817657877502388340148329738802622594529735365035117081970114960772473739645675060229983938486436293075577971824324521620356573944826526308024694695234200403037000745564637669624058790808491863321089741179353738480818930012688655697936844387218211804063586264903030747511183473787446380181436354289565564885944461892881110321015522864929822034674061046753531139681214432362097559898786020193853908460253296025009583683478200010402805049090487652993599120828202443780558893398060015585625959035991457431538518368070231701885723464087363373477458292664417928009128469817188960497008958067592593601893623547444528254293314473025100765549728737112100922179317343822637251122120267543051644412070287351292307574958151384629658826000512803720998659861102617795291945864585626344572764059715562922413341009863544595224746517617285506724590005157758779796113206102889563307163763496671523898829291405062819970814060133620527737944777314138783729794821010264408554745266357047119964646236695131023801961651032754655116849275612440876766842846151647526858141499855061624299027119740687139773415524082089412880350687600294685879386076653902369391068299717145396220234516359512083925322931116603369238197901945004306287332501730187172735433760716015186295497659155624202321300208251282323752656789625143167549157008880785071059883999185606100926092411455742307661538181822570327937104555770400937924552837649552938011306387207853890616539504307598021802424421936563574715917276928073567041291065003100165545293849419819431923846462612481672798810455659948201041325887536008303114996984790605018854401898143323080974089648774993218560445990050682367732140473330088268675659593452662729225815721026657926409478377595240466007861619918401329831682591055655679508846062054706520386555846840497218713129829717795842542786407170199402811032115744395196175607838500745445889803201062104947942525803522098766277438332009468449827726419389609672570929232943209567346673996490124459887230734235138822046906969335519775355700067276413264867598039438832273291666874717366604000537111821312624860437267428789985888154993143125815423869117447029378315150530186856792613562289228235226722735207447478277000371573739941849093870705660409206666511327132699886832878334028281107456116912054826365989791426967539049449208039129311141934308232447563994229789165183336176902710607637100032532735632358729724519324256105760117429800087727272708066942705880052081340466813796066163971374465288590160333613409485026684480607817740354401489183353586538419504836164643288217646572097745704052179078294338915677028802263965085093267900050223867264188173682055150459974170733717258194395976384319279193432624909418573474231750484614983010120131197715753711872193706716500354471777472446119916679695964871066424883497047124927863860162032829398510475681861446607340277230529408350585531900238642404278801630778493139695129998957258894456251692372569197584819784190420177943617467809852236941999167035940023164839094439290859981163445243908097743367858738952392193415603177133370464792977691319282451154471558572442140309146995086929927790557267249283099593713520586900674566414549429843148241894224687231171111597675025014488022998056898288038546026679387705321517760215550081171898655254663036819589472502358708466086319207923912977077105646529367665403173244160123852126623312029739120740116658340911821465860154254730449243892552758336557153327036772903960338090450545027623181153572498486954958196869902393407782799446458760837181661604483953936943826821434533482914259906194207836049333524314614570851815039376077155385438625480864599012653478058961465741103928487319852805723460508572573434581604916857439390509273364185491032454860307100571352566543433693457508960613950576254758293102516212752898283570696726840377808691071611936198089364407925746038123662839909453341726872421260561377850706842258284188388281825998893558754711594245618428213242404972240172819138004059111062997222297375991974499904450359724590095790241804558692154191708692133359587391847619400992427871857441481710625095805805458612814923134221954527048412345989701458642119236448345506973557950685752079210446287173833348353063659328188785448485620941434167746982162571288020613542474516878564801938534226400309353242634246110845990779869749171010097791342878816799116593404019686682882310742645530264539562520150252699090404243764768357215913673330617981958672006581709926463642493467197993856524814587202471982799207791233015556913100285397828032033130428813266994618499377793234921377446333944747186082260242854255163584270399402579914223694950418954008457244902706748636849006145822867085976462399757747461265221303088412092926489959384352577802919416746573988610499002383882604051669794394426886350351636050732550983259559724447250438914153788999168479694836970623929178584890810151550139546217745911390789397247064986036281605452783468365505012174809165299269583168105142801662644164331177725455132714993944134778121684979114223513650033524138884176984400522811739192475746248984642161522005756035506330431351100871381290638837035399278001235135288597394635539070110742044194968913121017463775342954471292474223276899135113428947705149493682208498665601729285681390261959080808465081003405610635764346487557432300588499393109179781841646176586715086117094185838334449775114094111867175683115948786743701454197024933704365432543124615884602609647090636405258116918683968298708065030253918990549024293954190740321446602042114343926551062947526746716744802467083913688228076700623991055494871653471791508982641393835626060300984902820432326684474309608698327201808317653188809176920566002757472964978688591961533386669073210673687605881170456741984005940220029147462838025758899971417357109780964010794811207078010903690424075920582207383608692829485274417248154654897344808258137090873800431535345014817732791164597390030311761819514998128523989345248155624746249362922377785076242063607731294119790808981608113573684144273750824890178230364674569961550234620290776241822242620984842700470602658818456972471787259437642493313884066126991930682126002706028119220690762455599722587883004530407910021094385398406705426036855756970089039416993121244808670454203940150372242809541605762004063139070832579680964699840689917261161645946253642585198843440294840898630943430774887203628746479927390721089826519413781635037950788475888413728994587904446542770351858003138384044982586825037515405442991555290895373268764904693332647748246392925118177699323043182044271488648821086170776506089568600841265572054446471795960137630264042518199310307446487711536798959914941648368034586882958776978362386422689548690355802399688296460558681072930553038395246615345180961033931299567217711124504591263613661328784926751230723617950585909055130218153440279236879132341703863674814492632064326251995841435825078393972142987880469769243836640230159932407297289777974494794580071049907386122255158545440675486656623265536592633179768905452713425646898183905198369242253244687852691280040382260801041894721091812719854938067443302933107115774050993009030923557498791457790371202822786750774924656594480643674654778606721527859448906498254420398018546244576679130363042268604473706654811030225170899011882330276248462672453583550662027468632099696337136957206495125588931557674568163023131890172210688935633554088211529291644976482333695868846687576423308433518519538700899867836582977266025323837191372282863167816308302142810790997496621377063716183950106962708107304736925094845811134851728778755368870060048136495831024107136241275137976262966075200182023009007929254915534349079587857615314761049021730273211074650596207537384963515343263313069261394340323954907139021130375933163063318428811292694546928224070487519428643018535417571365752133634592067399869774554097049460600164380373318694645476478695211894239471697619844218613469295224236987071297213929747423818589813835203077944825639173314911167796078283158103498588676414004319111761311169880052947397756402776504542891588388132536019952844012488853449423000036944647482177642325240927727420307837150364296448197630839291000267322462899080071041058772402419192688879432551173621639139211322918771440317672755741859314795535468402596195380324713928194145965330312950533969114700381099522598824688957957918051305065937443821604859078449020616286566318018223752716077594387310701113832530898106430871296706677522658804915607233858419936067255426465109380032150182166341285270125582445727532288923621290820285933250381850960451336537781256101322348453462791143276097656794299666777564414469166670571971064451280622843248833749000444838750796157918347650885554123413075925912126305932024556789287256998509961474393826023790053284146032201168718571342449485745763030075401082954253011867973706704229416133805404355721487544717228076692740134086541936087038994992078156668025097306731881972416114035124706976824261984294042120088721675005406378147624743441242418854876606467870746612963060463077754067408007892600456516838051832188433773523586163874511161419828397057104980257014334375868707950139181420973515070404440463981584925462808331272292484084163825449538624004480506550748499904679574260191936821335443805377033601397571541732595027023440955506782747755620739116074474832643825455590552567820638902382592732019771039704893526955090386981697874569412382793462891342154174689863610905021866090971304540177284991270048865791553440930221409398584378737553567890497498072001955353089938517696642203037944283250834245647303047074270019055311283485318841771141882092278109560691922960142136472810122194624044222633917306836738631997231429591155911008057229528801393442702616217397233194731518751183005805482322369072221081309543966788211370593916515666477907584632976185663599202189684853450908312028293453235891698072148499996128175455095156135132133374551811837810864047919943414287369976551135344766092438958348408887754656269614523060741207437343257260408515301480690580372871493680068628422730918609646594612201178285398063822017053398008253111656535067526623727486997028975860811161121613755732216474406273410765115731907816154227204793447607497837393265929791121556207126002732795805108647669992926231247672448870912286125032128955888500616704053620202654412445327585950741578750316540075048580425770335824639758057907269172890984525225809596118335990999616721328358436700716431912804076751569632400168282002855253957322772685393962403522798799141888321270511178517101415812703194552459941035624762465227193109762295009158602960319023040665873531309497217272987253636152753911485196274926261078161522742956843723873641604087520663879091471308474500507081434277734308365294622746011968851539823499910693523049639817019258033159939798166182417440382959302566543791490029704170999675912421943531937067025972545017952985433027920245672856673582330218162002515470884218544739893736760764162813265891228127376255415852357271082967563640334914191203691943951187503936246136565806434066503532043759400586531354848582815299415606166129885988604089259824191311411925399685327710800079484303803886864314485574884017272701534316720415969117618947047749930941987587871022494727740673798010568370714762244574652271988273536048276230642845113334509054380463283010170001775512976387670473445435357288560826703847102070629386177326134227963538025940849910567705752676809196741117249909642812065888062042883041195015192442243769446405390418705796399103588612311480992222660980931091058077226514421795242915829890541719505083266758030830267631690177431280241624192376971125906577994165121042739625840421881537379509269903830935089894404408114011074198799265266998850585455028303503735643773421784277240239755426000599327723136797921739490205230400008164042783317659158533043414901769854419293659621467440505310394651614781376963678272471764862058465477100474089133748734559890516217938676281436439539408854984957232263756157100934893998641226312143607074878212255157373937050363040268480702749798272537007488543471553731532036384863188722778373827586411761963735858613853625550249355541843700990765103247845029398780046518031048991314279633161941759821771014278935698808127029683788914838122212919700659007156506362091304121562631973651980627850387725293847231500710868584555050106050598173579636065043970628415621036637609245493007699361663373595187666035857902878156369893438879163726631876111011469296450835601103522115685386695427250519932505908185364785562858418289096663561909998042596367293501654794672423422006202155712370080133606844559259946968332926495549220233117920801587083617797106719036169846905413533324625093591727921819281466290824622103940777925053398116238967293069356918276736498041748206175413856280342814603755056138186812975531448049480412438311271067930333421463037964169166369051830459146051768861848680040000860165474601129866435049809289260028018738116309662054079871979724799252387151858521702789464054705314952985245544225708689746260389605771044049938534231542442044641898468149253377362813131379755600852022398120883533434519070414506312198819133250527171078563484731723247849552469652122995048394470077675606502060913921850327327763528343509119929687943547450849646013068289443730409192960659227771174664731547132812867529581240167575601309240777117487481742769474182258146978099317287928416885487588551630748126890502944403324429029056331530090059316344232055571503789385364805985297876720712496973936544935975465977727360337241712942426088464242657373497161486102862042378579985138948625703252115655200778747825195042748203861415862414305215430823758920633110946112859053221831893851533296161178346682916668231743987860300363763530277226822423269543875197085900439687303674354653644823452730137217250302376377589869714383315908529846272775654722754824333097988238768623796905038240776411198126003067730570780131410833141474130713847836024243220254934376336578283446415796935077775123356034087825000737370209685487551098521833767555851801936829074398366376408933764907805699585698840791653937045502864932723176015765192671166431389141734821190597059606282095820769363662242515380396015307477925735653449521032243991360059498193509599754245278631393598662157504747674473950770081252002534953317006326363815003941995573598231048332189420626035290839998478925053051919280795200529129392433961868584839291673705515796055385950771011815975687154825589137051442757215791060507045390763676278377384257802958006210763795538294054993146077554156289066341297367385807074921581558436095765573291318852624859188151274465977014751342948328505386964102949089586700532713230144999935862259434077815841679161676412778475935941767948305686254059049129852858555152502463355574998533605324752832682393801661784372995312063140015601391435120092645553522883130885459598903131137673647078112579109049548747715101461107125602172099510981064405880418765773348448761396973709391015009580812119387071833516603049572350535054787329485258329173671076559501669850069759296325877626713206498940189936534693410839734967350690859286026587362685461679396631769376711080389647962340140102218521908681888284874073442345958606123014337000941460914462318528619082982288481782275302303687338851933980869215859124486803314614751689406269118531353740050192225770314887907936672360940431567404993817655327195716308069453726720217986783791523464991130926242977162616288060648962677674239081904915295434917899003277375264099309207837482510855078991819635185011156591112469376079174191234341123307320896504052286491608833780872014141722301014649895823895478323798219545449216695206466007764795091985590271951724041364845351572311734024962209461356208764525026905108282039314568761911836207005103451470593746358645739218809873700672735464530693545752681778602708502834445160540285516300637367370579999001534806295359890156570677118951608700358492010547593340072253126557903326141775803060004801186967986047906796832025824411339413267810176873105616219062768956757732679682557795332492828157157805068722256918118097042248495425191773527234861376530445473006222985190744544266186532236578292998812571878420740424744160403230023649360549164829225884970711199992324048970251805235651161268415257171412839494704001021923646366918856009224532820088650265896888680211078299194194165567107664646759540007816834831528040714919295061292054199838125152785185126982121966729377718568452449203270646167249770085748653603549367090188075557000081373783600241620247788394614105630135109686604843648732281140008454460546289600877279652242668096447070587944731116802673124320059523625543967887987659178449307390244692385047184246007273012429740928133666856793266639510714372793029198052094222215083445716502242760259953951764335142089136987999671422074308004364710922586402274513916274444675678942324728437502287140352854084898773265073750549214691226529188914734397420795307869734745093988815510070477313263234087130948872075941853770878949108294822708800650864529079986954223519338064591764760950353823001852980837690465149350358985454158579698583704237072330784905616940128826956579382130759016436469077381041529893026941116573765667869136990938380922058202911438500815326690782615836709710049141803917027434722433400098586452869072140576569868563879239523253755784828830909752201835495855863517897730682673315200337910493513994824985821736253855545204308747559409846733712578808517550108516632650064115565617964397295423365789652445122045728272661402673694073678444921134722075410300591760174526092985909204077771250201218517969265827330842876882001669289011191184195463954689430148536090476688342709071867501076805073420575620490098136053317515482314559469975244012471931731028473159177686493105124792550314382567062883264423660083629058067826939943550738775427304176002692290016351863392806828426916525967367042197005123491270339732130634633246467558502206096029943664821911562207020755722696263641707664106917335559907861397181820766141196340102816744374556733120405375710829049486152197659332671287148950884487939030149165658462553322790964803308092309119287476689632472959251360980367637171377468231198323167174656023327565069147047967717235276309854419626454830534982593479887672752908409598256644621224250716684907993096302381801297440974490532872712268693758727381793211839113955357572474827533597100862116602745827855913193463873788343979229774411111625064903856892713157689805625024340108936325422943581683195487617449297514828238262511013872728183564701720472073985325918334553937485100671493852683361432623166611604202040795242889360304344100559598016590772206659811766708826864203666884346062230404179532757824223350872478497198012113853090495171711224909123333237082319167107053044237688910608870459999526288606601326822654168535639998071398665226217003009471832719446063115661794777417047474193427649893753320137158997252861067546140073162080292646873829239192481768542126731081795682898000813932939062489993991607501190390100229814130457684370688740399591482001978837718363590521061864748281323770355214867022133693423806417981863015557681323460211501656808185858825449225318084981844479412628906427899728126078347245342571372525685273481199385247945665973721686939625485148089166885226013136607367444132186968169882736446339594757610806495120973573711836987094820076106895813358033971354607345193637301343650917659514738334661899912321494950036476720710493674710684791865914467954884612321640552284055310630004796538166789980875360804984588133982828759421061932720699668529429929980642046904087978943074530085010904973473219285325449475581407317980683962251348692255112445411283705209416890934280382396049147401674113330619118122884996260405319520849912628296239568703056094824729509566072072051160486815323795798910994336020942141939528356731357093593572179810933689735880826680685539564901703800832752240106512550643246072652579053012062388839842195280764094123576523627653677548758482823867855761299044069228943882744285383489321963335164265266216943895093872952469648014145662731346973934543449409330366544882337606224399667096121115754588906069929346341088905466132668586536673257518939017521529743963034026066157256412444903315978521851256716365058196180174230670184539598305114447231984596753040686591944597629454609864993651202712828189264931744601201108327603611495492383897033626598910397127351944243098331465470315976571658666545462433312527018245242627547225094992030252435775864475780854256894350136930704055450633983092940209059128828350017531212051249764339303117692372593140079946663528402949304725752440131422819595830474899340588487581679977292980734926072483396260316180646433373973415216237040976757277530560511235252346041594483556956393728258016695612200546958699952835138976597841575423039135242406127054008138774059899620569225689547337165282701430361346990999020538281804098836687957079966823744106982702915115864967208638587315111626955743410227450241279743160851510848089531226762456350805706418370979755897357362324916598789371980140722791121792568216619596911860452895452873416924550647081623496871139265704512979395128933980950017851705129346501535851853516556422085432674552258313583692293579792198869275854338981769281118072914639726510331691490632904791051071530985469596515857179785028011103290031740209565806320956893546426109764501665295942070560209332575813495345676523114697358716065394250505814694057936194079706183869134310140402319317539091174264103097523148855003832453853039734909200790946768609271162000290151150520013935737997294382739494766695436195283322073333485527218309629428479924460251741453626792608772441603104182486011189492556543196280289746193323444648555869129316605479236578227839839792684512478640410682882970209202944917743191143136398427062029408074033043627492089925209382057904472528794249705741126288494431364411704572542658025206913188121069157450093724824970432872967205150049040406802746438450958194539839427575849061310923508150305776616588851532373298027171996155522283419253149452650281305562321019052461247407101499059808134958247552623224069051945447916668924743223579151962953319018644634039230591540628451347512957167218312198913802726117362481375079920932931919853625048518876630871250066485617353592170391328669833729371390659920521230521536038406131250633001473657130175597222500621413154276131596926492978851087849865789309697531189042595078591717450096057658496847772283953595443853581745873435643313645938746708053451430055574559540968185512323512918584418576421915912623527175353887302423669414209003883700653133517926523244958087151800306296666503896932746834011417760247413332990564648443718499419391556949591719807226042582770106735713409534535769120203177735473331168753484667736301356908047501993956778625806288391917127428800745109516521244403536485240724790916566876184357626340879097479205823911025141890957561709460718316623337180226578968123544680944978537687056743710143499478607751947275614709142965270452996961726126744494884514014738214706489219920055901673894291091153670975716521181347657451122147282124973350709776347197168799308190692523373446934831262463765609622482835940014902194395320421743278997947488338620809087053880299522747792615884957215009467763873367619081582489030301880258813863869485721125418971925257615191284581934322036380439584367282857009069145158233637673191624774140364185840110154190826552348035638586985035239600772193040156694387730294588032049399402012097213951036734000086869712975878451114903274606582609316114723558430442562816235841874047862951137042684980950238817139520207574967645237183464258770477145329820101401911982883335018578897070962778558977907085278699047144935476399607073635601592600241482320082385808904876243082381260630435314473176721562814197292443175213476027858282121592487015866591358492997398114956803749354678205780117455163051410064917120948110998763904565912437786277430507400607816684867671430820832370044453462628333609167246720985191606174899012917004596721907192920264776809823835132645427984620642794199999144762842585594611977681921790124429890847381710164154781386388684204162870407618519878895746947100820279913080026013945957722352687892299486784528352338146048948047615857568240532490915614909457589789836902054920971632417982912835965249765798127795579534285777623457264453812022572613614393295427526368928796990968203826443634811520309498051160377170123807579777006499251436800007550389485854054784522238032763088260169692043937040068957795086596137244482103089928964749704786135167409976427061971243373587110781988531703651704586799873272512961619354577749552047959884699126920168471908261294432930357101456325216923736444733631147981801446120441787182740283450023147155082480326193318766154937429631872874161652203440333383122763803239491614007862021059578035844260081130331360269731237366697363325023654441862528809864568041963782016893661737632619785159800218479276118440396223281856955201945400598623363222036293071139969654747676121008295651422039988100338550677409013259620154083790765146358202522363385206923683750587935890696515983288059662032294936900332630240524089079974326922073486187109806215471909309305194942069517718776863118160492042978833011034924251012406398461767855186256052807247386763119340163404646258929765604394053641790719009770706269311906312492482405261664191900547552009502758097817545972177311885314594664607621922890298723747962180484750425938148010070915077827197649699612959160198588610323476614530895513926536694056094853782304336534223951731350679360129226846706638620801664357959331509525655363330363361149398015551569033108340203485990186806772306308431876756007642424464184108042163729470014118370124132110642538800213147130948822227908081175605923634860541047703281090466809072929205033948170679915887790700103770055241615772894679999904084960282040280137848396999282861410371717602121234273897475386202154782776633655139628500520171580779852505396433325686902825619991767749515485866433699126900719103492341529108514252443368805974340995629781018601652209965738597494067615164165592294662979089860693906584590344546667366438601694470495536864905635583841893637731290687945516204692756447299207836718374913516601999021049302299600182206561409810125670373673447033111058167572847985265858251862647046337211352529806360066381764945686681877144357814702266359459597345790779167977044071058503694353023485172810358629881809995331122956170557601018255381321342621445875088375860017538569262325760605195858340928739250705419974883309062853721413989544809327332518852685346291225504074240428597153462085871077785409454124659020030137282731843126045829964984916397928758891303524101593553182424945655744587293197733851936464797879797609238868001582048037287527487858199988054697105107731562299584157043921410378800847048107512694797132271905049160966390967333200665297052335761815145987949533697374059146386376432105027197710385446504432484720446462737753026728697709203905770154674742738491299166993300196098403635858947841608195866183948318188546069102581559900696107148016858340179270179322500953483448117499022593283616322468335983822869912445592876584348776613129371461876762083987523834461976523402362944756401653941872602529753360343375627266816589767295221829226069947745346452803196220870999672302316731037067188666977360186246512773093731149326803642823023582621113262436171939240369741045726352440911316389804644434281572397728545904901620382641989501523290614517562889315949267809713862296320813725281874313828848369891411915496415286999736409995686909777235471100498660083630991102651911966768277617624457255372837406163497809262741433214549455187625105053825461551819831835729916540430475086602630833157334295644520847203494005338214235037746120180206033423478563747110748869034424417329381507886981493359451943966996529453586649885728363225949849281235424643598680931649802416245848888506282436995839993348031805725795954213531991100613081682325534531302485687979281857002815880694090792012905469134229825753939203659833058178516919328853254123409039313502245463066466753508139285398316426187464961299520290309570479571401738677912966336018702236754226522065044530803220043431920082863855762001662084734095279153544267238949545125585548822804525369320940081276984420547349435856622531049654839137933194166506997037480326404604412191786911273962185656767731589477855067418982863119632231525704265505091871119595646965737066750003985138825024430866108342167675239101701003116879525601490127630693155712500558941447693229631401950744910008475425312236052736071754163480344698036104962182219066000429818388601415417169744324347006994593617385219087700462275837910034748050585681047348772918933735208640620818502141542271109798050488725433422306278634707837678822960335209570535812335969321262494777655048589852190066861455659785765960390611802349509501432972103598396935084424647289388390435642004319947366992860442305333332530109804981202246874499312076491440634503003452975306668953212334584912320952402043364971493693419017414816637574471915164662775169513078300287701051532360208028957335057185922733491355167821144360244131976132196461954541596490732453287634456892556148468159256620364567682766287968840773008210865150889476385077636772101760391378168528086959894132623917232929193090752623203336434464349607451638148562486259597743675937032677133325064844459735495546273390392830047770182083789522759509155352774752964411741614673053234462979187596017405539386735838381432282899833970599335015404068920735846286100204816029521792926066876515179784378462779650700588331717348665165957993099526448171534010877977701768731300297241725147189351115905551905733146645893792167598771682385857948639647425772267264013575866014269761730236372635733293461110247968014665439295041830322118477247936225727166335953531583521807491435992664259565485151379284365036753521514383306821248727039519954099820001089983025674368199714763769349723302590088232584828110580237351069025195874161648665411578205095082750754446406992633594626726390832106790046129476195114469122924482670616700955859306981456987171507798982664701028894643614267242274108977469625587619792542720849239229699916604255837083277927197662419209436597255139577241269790926728873203230541239907186054627650737938341670231714907060303019079601344780244267058505828736376407026147601101406147398122681403635669502398376755118689981766765573759397929091407141320271309093697141694901418580003074643848847649203765251995365445009844449659465105097468680847111992427627254108420391833861687498716489252167384073039754697404523416114078978767021311253005765675961639256010673405930827750123998971172942068595056900142089237181054220672398127944677495652302589577982892532275022279653873259432383937592132564493351224802973233354668498316830430686515717443331891371002649056722461503339917023733911093877885884644458930746321373422783139512512493716055438952783283401006484426247430502491228847147130317596002623011999544811238370704836534182727701971174137605444365431061750003022984749356558138423446031604667188079881744154875622188700876399070139128443717352789806219572904752359694879880390501996936895320508537854486263733754903983603163975542641187052250686451953570689444204428063722868124210090069285100694518535338554711749779710801514341355946523818347083099493339524591236731704531822867677040465041553802057716772004136813418004470885762588285950047509984886830232535338248635045971257544729782666221714865341544451647781235756905420738159108679666477775645262723441230788191993639631186957335068712525262976043439593190543382961939060233300360699458293387743746810713767947002107929230978449186822145395846166569045860130625239380513511583027227407771233681668143586599311683660952512669391040349801488891264340646082372484017877811494207317519746726200132481228511373959344948428749409760991004582925989716237453075569787925663525575125849807339123791433695833509788145342621399132456086646414323236328599521948968995057379965483514594559466285028326741183378059015408919988148977121814513328553454738455034966550473550857434539650632355326904848091614208051109587304110981207861085521528785129161200736186784850456349260082016596488352280441901213470078056273154355395555299721354582277118100577450202734595408720862955287797169232444675285485843695070508402114858217142095197598840429930785038920081848051728069450312771849145193825916444481322138392841691605459754480907518698828791854279521670282823088418011205242193630390689586756226325537666619369084280641040203648840857343429045416753529330174270107414524853368848314416874246408175774176626707080740659284989622370472965557288206770356856280790947165321673838263583333928763236276228277159615925357908900271399529009980232781297731566150950100116925321903052842359496717756614357991833277714229783334921995772841883463829752229183686905932200701819997787369984682747150728060140209917861845185665464410533543594765224247310987765420424412195769097664768113606715722821633391068130481388980927370409891858444468265147658017136734484329896029183473489554434266452405810580890568556752692684789028245524709106789116306306358400333109775488184020123270683361412522339897845576008619363692217064751830239751241340058629485910660183160867763341139392881770918098323985024475790126195463819161296330684495118467361803551516717145026801440722572528119367202097517922154388928102960759905275759362379225704934976223083563912548798088200499966020887637395456925689929782366155432865154152613444415980159470418741348123272718245285473503497222067083202385157910395461030033353418987816182724503385465277607143739162415787821990566969907338626977489188152597435411186927698305902535289528410693313921226362390502971174286458999570871066686479788327351039920093057215056261688018618409914534530229610409579065795350850170797387669624579118355944513273492926142486729781731401974401338253523826519155425737247191822598544634293333812384359803885123858073502766306027742347741126787869245185952607131902595616871386412427996581985244581276560808446350141985462680918381748993329144983938515529159539238292806033593200708812801876636388486181463920281670866014963499373650432746000750689120276172631832228148075142181233673135799078649522008458472949515220442944859324562213721391196157347705854675892373320739943528473439243333168970099747287672249107334728829652640854196127927836503911404935606777255271621880182489134347092532385991815323481189614753905449163652187296035456659452289619118407862518853822406499942939694123363736638325819265563995954125770084417285646153549131482663075453494173137077214131901160966782969943887192317300550801062853643531970045521696932529138198511030593892924694462801537045896344249758667676460247829093116996724715122405173778111902306757220378492935486602410309601009883235083226312092686732151206131575094957823748574491724962373597437088170344039003619652096009708579253836020897337165350816801380002638579186255384764808313590693339548723562846200181027187447688605757473817983378595251015947431363200611828113794776765848660819815469304396375390815827932081899219829360818432650497077203846897105938651765848262862450196703857386733856150376478233102384345186448305484750240693240275089685808365928694323948069355577181655717150564298291372238324480738970087253088969757077123625323386812423455848117675498483138955405189305413435841998419537421367501034859841823983068745634947627639616041161141633275210895603944793979082290347002761033484747982132616803138854184421083891599924476393769936821281633581104716260532411309273721691363199677180442142050637598568430885978322679876218515423330935668210927409417084822775560734744440567766506686339237167953755455175387926505758860242879877187607135927076076051485115727003684457214038437136118996361411979357033659512786970660048803363159793907685689790761608676341387823866096297119304356580923341670811738328525833933866498706192658395878307991175147041405562594140989269293678490477103259531025145315505547581710389147368777773073941933325130191555625437753771293327040529313987715302373606195385661016624410207360918827237411804936431297825495001570341551703781312283171761410176164954753489597351652453004899319758409548167024197332600718382266420571237761825497320607515271332823751058621041242465919349360511176148937312818657971189211882691754780254132860447081610024717470998250467957161059561310945397218531619223998437278496908006919900170289581979256812033865264491430899567129722267670423400316032825492220307495936548127339763631857207424861726981329990823478946900430466870501639582912347232977801926270717661581889405427383001874542039741655842514076276268572846373028139667301897681541598233140023406631349220083656594430467827499603034998471658372611643098723370663349830730876349066940284537149467626249645251347957176918937746796370999090528405413992886598438230149803891082089101457250257459855238265953435822220673082499805506904087907602621417591376178112298345662385634524978803822473392730757797947447699725858581423575552525097118666807421631149787072589293029283121465321044848260650166014713402514606161382503752012199035718368093970434688983560915677550115983616666775282080875794664558084485577432532297229254440867007110132794234202637359325962945121915078437874187104713679379126229900301973631703727282276874142325913914378260706030399457010116856426562742477757605745560697064610813844729862961357149431471666565700019815931899036158176903641006297655567502433518101652938324857494916564916025079883910824731743008591387944371072676827762110560238881616149614447527117325661828198396688731557823558740434119505301807132390335122745009102969833121460376554696307294978641192208721207605120176021558896193486154264413614239967862017182729826677063382144319576086295232723565350010570066404430436871853958371659702435314913965834347722593315408899467209616248622026030446544357577438836401992057414333161850530092570566259819799460399665879720878377259227792807287289091248137870790028739365684515147132270038775027149927262022470522974390468458547409016101868673065328375275747851104562084551424472340704529995396958188962901228099462996778750006997887359699548199658693772374707746303414108030404213498658497093540591454963043469686819040603962621468926374988298831962186887933972214320838172057474712561661968386525724340051376896536728924869969521030699896680320559407737318705688954349709354722995373926213713311256083026728899236371726025818579508544814814906917442248857669051811726219431017190597558791162906322881161858942112372948873961093427434388667990812370192382694447835785401545249182128629774041270561691963394874001574230712963193374125161372210953575382284053120295649311092606291144266360711364712988937473420946974562983791753175698539325184446438040128970262920471477194244050371730932915723128098985854158206753733778906328909137594781271343734119953079465822989276284153472317762044247005449351971445853036667706747727775775427074647686039097293692834226661844063245066651157213225077452522199425717503471801081705237242668043268410609080714555606106404044048436024277506214824503780841969766749801988496979064895156445112695238061207583318207844396952361627489238210781152039024152470436556374201676322908902717235970236634309934988146727841743945134975138688336328929006684426174898114355148530447898079944719563799186635874219602103953601996124733844218269189863503254640994138617565825765434683615917179148855715169862267339890786937847341074432816842317869142979303165955464091605523078420603133836233942451913399418538590008861873867634482839635903208561482774564382717040249915047192868314919395483062490533103068699935715286008402313466412149772655205590338893715880551664848808959877128130718256526288397347812291722113013468043931535465094878568890698122728021258478852961112989885471653839027990953181785547649339981242295033806129241261771313457465240920664172832163774281320571833556718561098843211071386156550115840545632378037355290899017720206312247831323884115796325080112073260499539349202105025608414695520866287720284369556168583183825751889143048846388981759675399402498249939722637236819171094459516672805700132704352715401209897231900653873935933669883964350838363968107581183016701408539922243077124180009901166081779928226772885937819955413041222785445283339496840742452081512512958691585047674168744875345304993262582913214750701287187018310320031888395471636624524458828837923435033254830629279361105357433223328759347986964463650548456951850061385846454330811610949784808944608615432727168005430906836763744254372046344160914232588073461904451133140809179549947044095778449694449376222793650225518402583813783395198882053552181830834527878736371599413350894772030416738750142958186339480925747476112345843509856641353104298571430530458304325864132759629042867586849237193148355787978614630881912018252128953539311090581770671555745737463775263967963739920522012539228349303564077955445040508083535043193285839633291033714476466861470575708947085686772572673872414375553832556413916429830044892413432212484194756457853727814398815627865530512100229419140974855962184688903400274383996023593308383227957736634466529214347787241747410556629654752512216906370025272854384072394802174848064588041059415516794606582162857839556934461960479255315445055656201381097746052573070951346876680111942137152044111965885450865286720574802721550180958910483235310530625528104996734699904912497012762033191686590901536380134366494150520568560470079018108521447345525012137866125946890751225077309992216943826466520455258591142518831220804567771345193672315029651984417166363218010955606872961853084831729831591055982080313071494872129317584484811759759615642015692309576221413433408690840141130390705458118083683473845280009678010509363349323011559744120758724478794090664346302346469932598036301755579963331921147957471914245833632492916975705271692794415002950984020447090275255235224656860192392005295882366190653892668059735186937584677709557776384327525397731472227247356899676221567594755259957659167959501769713776164953114971578391476434486716375738190696129862092968510010582936757208275349513676899644359655944692695416660257632166997009823571361852976881201159084608133628211587988640134906713175363883171028994486402661704469094325545902241195985802847362582515342259880644074094868237123217158647343651617933131300116955109316073377108573224672724400616514749357638533591014143333494162001877075540766249403015156625538521274750653374107884440068023356623524398197752682854800849950310503512928293047394059682779435026526106062864229253467698240738835866705287577017398860466011652911109940963048149225459097221131722417230266145618693158895220215619108818885752537760242192344710747978950640883129873307306554817904314215354291398253164408764321600697867560852815536519330383633458294204294916423202435780905219495490425020662012789028363246581266215588778079645032022541332406328773269434646372135981014593643155636162766472907345110734377875640784099087097889145789142813780737690609796234512155917893366378541857172827785727283363713260274347682147728240588863057807329553129837001446844998053457264440442711814766765716262842777211326704659655759576869284767161689889197173713882895876907419639472406771176668760313199941940116122677370204498638001910601146587488277408637394685550589885151378837287462484052070276879629266290634274907749773060343143662728165989048505106775500319783002296277316421285917400230772496592741040816147313146511846730735688034086900987034110452179576220688503714557855350831450829925621909223825733545610282481200391929671165301763436062459725390244607189290552896180745654645587092367857292374045580133142247748021211198917899238996302764183001701829441168515601420731442071927762364944110119365839497671433818607220502401326048087757785113287820227851092683867417121898484363205274388204247485743534844387712842631388085930566824417606733668947965942248451578551262464808303731931951214400014053775111259414865219938414687776617801176193202662505835440970524915689325696026592773579618575080683155215691424298970558078376356302421086232629694843867633755416624916201628198593613328647584506226397090594421817639864553908960517116409599916873433042907608387228909129787278356597957428529254438297752889048614505947876552407385440564514830515659079881180299515484711978567987354405154852679428929295961265763507449944001403957606672766323835666862390265088823181806527792637747027624335282732946383970398788420755320912686597433969392083544525701434266209352855917333219839853618504614705230093966699423675406876722439962221127104872027953300255692395946303605514983591172445043368247715808716621308782598328696872377857565712037774581477962799874821552961989719957717261978731133214410906600956819823330046633230018320119787899347930427572450849773896586987586810207056989762149298069508293117792776483857427922641100819395243338768710388191545174169591185645893829269407239978665998415449567549465994989379771399955657428286112956396985959194115200270496336281619301222209438943108292113096249237638437057684865248353679022126014771513676665010052388753237137396308003166698175667704231339847601867214081995756771423433277294567179958298749309890670751770039833946218404071024932104202159027255623670179083982129746056861208753950133871798476199881670003575033377961785701514238506366352106182094498246570531953529378976650207306698050738770097772008952165508585518149116989506609033776287444327048683242344631701264329766754036863628332948382385527615488402444047039167566327887200026008316076224978426546560312648704394403556414663528922192144168426766392862887432490157658641104144491502902607147953322310693339792794736489011637163012034288169016678627892040152001443635534002923144174747080820431037836346734311011937218690790611437224920272089185067873923959510213292987628455013995316918277035570337900692345092316981340430625653485355629810753145585782027334071254715340792538503464293112717017033047539936433436669397160955261014804166432497754849682767754932554827142999780679418873307262007731950147777907052975155055195736210442283555184000843419147056929366890580346263480309366993507474557401056361488937171540908260266570532560559334654842300872285118303516366612769729283759401834781810219878722145145725071392255835221052302499707250724517400310039010461023393739114255927260913862873878848029285792252142550866632430573999238686932091523217364990092421757226334816839299547710573734907044083513524635833676953452945566711525454258932264030014699521239441668388869136493279761296336628055370580551170555128865030494927492049436678642598552653035086461657271604099582344397215406469764721511792789767994236369577889754222806305287987527233679294605738632553569619975762539140944641170941129894013251033592568995560373226254962930485482707993612900714410804286468349099554487942521829751747603870058559484747140127690916497189000609948692798955969959965878630529041775714325831947889837530529529852886288896949225353498399870325665506851932350414720375957853225196348185273601267621568913908781089948815308053533142402555101190405481649769478466786337526972429470451240927633005865928504294001366026070102646815028116153374019927277220134265099050843018840502781957700297381899305510440899200781006047298007032112207493264024174277665400237823361136916271763715465160265326523662888496350735879381899338431948461352356809150698292720197219414375255341523042214809046758634923278124969455551579008002429660476137743195807589939242304007361286202749468568894748940993979329926887632404675212417417348629475895451312352505832331048200624590570049137748886155393039766403183448621964321191741775301133052285912377865420710547904052660339961716481253338961827446168311840360430156675611141723447213780910568619335212882350351112636604148680127512208186414854694583403328005154451045034832562206692726398390301536963821061836696258486139816929385024820114736968707139381604777602200020585017633982589211770901399337967300184145425530698894652230592487757789156971122240983452236717724140517083160260173482941543751241962029469558183938896718373303920437086604184975293239700660935047904767123890423784918249157907591125893074951590018451697092164538754953328958695187810896658082912815852234160875014290175070805552624287424559920024487639639241769744460447927106270972410673547477782529967314819765475527055338932365379185718821973610907439864203238593676760524732835581552748344661732539309788823294745792543454895046069689254818302975668768361591876723071167770807412901181636414074885442817541731597280361839045726105298302462423391169778758003445688894290433607276590702673207668341105721166111327794008576281419648196447963569889981873315018498113902416236632996198413806294577137804680531223728493125258299105124282928651157749006348519425506304794535489153693601876179155317640745568482021885321944529007752570190173166957603603463833124386450286119651733013456276009242032022283763687205524947243273339884114602833753229383398777446884365590600117469047844745143934899511059869021390595692143844713603830546143779335392448443461762966175732308320152561865943122092887818560648005374342332041474522086806145143546218192358233252090744623492519867750671526326728626051030855143328659180921922862720920118222301078639175277855782330368229145888810990360513213795320262910754869861665051063121373981047548153550365318780115649079766915732545469249434121442712005637326494411650845362668585834113907481790742159117882186764479979223097251083273664657627070862855171003228081725327428858273672971429541262984458449954868854278069045794894494799357471378884071050869845125667951927455328127537941595452087322859983716939838193164754224237173068814080620922155103335120962998202911051327721235579616682124382073598300351146393385753037188808984890692378034209238936509060353132232158455634580769548302719199845062594396602142844111501612008626100265598746422119847114199169223007278289608667162298505088606176222104104202836695297437420330437980073754465612730800216112365726149000690763640360287928836016600403119947908445349652485612953194058647732769665640061295778801531848954421750217377884730294408668824760328413306762878253222667147928175522731064524686818061647796932531728279339094204774438295693741331159534255775893485134098508295000396822787130476164609075775496632383738042424265708743832675264154505364367811786867047509593568113269612608874707651980295312721169741566651540130640933977631505919840564554941361007009695204050389330729427624636311516685767104571594727646427598628649133092295578191869644713363637213988020661841003744110235017103736753422157003497219671483173514572999246052357913047772628779565340909737209803975693678570356341298918228555600901649292349160391111220641394271837490182993402002914884440343646528585518466354265250291098887707416014129613237034465750289809994969587617793003176963664650021188772137812177274714975621887089884563688484947006736820609221664213382897338954669273739705954398247155320728879766245380593129407430915368852660195983352576701932937626733969401780493755025900985591717389560114169044327716869189490733299419477603082326557592870136060036960809604956370225065441393156260939322989284984728263750731478466701336453312071050483050048443680621272549642876602518372474631165359369183405288015113623209712560839384659226514075871724531015214375052838923263892883171586228740104090237398088670298730782901963795880811368944635078035242062829890632369563329661959533167139015558691657471748400456195497428076481546577400553901473644828265817814035413296199022180357553393488543637086597464402550334143545853903213373127615540807202179595090756579638510486681981512362175665808166127798549677488159383241848642130537374966350879656137263267370713379659315688619928711566334250449061223667102393870002050794643325519195752542498690341709624656216929449936090247149344086634485103146889101721275963845069482223350153821259190461166583986266918995085365298175800674043730516826493462998450550450176858405421720010966881134513416150878948687440164004360008447745829363595690469078723638328765978648376771910259620422740526232215977573179451279450203103696449455044872061004803011257572045595774250734772378818664235561997200452155605742580995958282222125595398492981198524691112544708491311257997965789378711124356919646487265932480555588567690858215927806575058744890111190053448465195870631660567164900865317575652878007973674869894759528698179719279044723909346899847565169728165809942427693822640108042539410287192400876907505477190632490228250841826141125994049587155592059086282764436020287746028960204719794012356088657945260898733552921162600706529267886360923194423348413512172868838907505147797934555655479694316955136264682865101512845137462031060730196087454923439215850783572681751572500285675936930098957162265544888254610544102096837961964470480898681344469510028607780731821615671421306759553997937040418835675117108099299351739403659989078560155720109529250940000359534739680090629051471287377889552137972960321648422347386752714612262999339034443872895313920307525905109387115406492282000287905387036565139095007929825516001704337361712204034576131814878293080003788801800385216648725248816905485178859998961548185212554198274490944603940925496890424165238858711039297860899304913723660997016650471346332664877788612326982721170262611261751850477277097485347307343227036704163552185315374096289960187656411659626836863483535648554770401239282034049797101496680146166631716664783798991779260319524493944752587624530899360155819753134719539344835256748112442680630278294026462722706771043131287570674383106915525769829732479813190964327277928570266787325536270137396515232986918345322044668849554497132686845442201023653192716962411257542602300047879388475267979337420542825941897617164152194445701946627313302273874310558171232638912388073585212245435092960330045130014238819755418047464361043057629801376486084543808648175628959497023083093880776210520248149681157460972938871143417992095369988476046950820024322132222503094259764442267719588883909095854860112681336999552580791166692570159956377512411270437984449675712081324921290282960705349267113151277533305768590537980735978560915463669721728069231827094874488033413972097746408544578556584726917396609216567504727850408220002666015800712796862085417487744217407683327384269833593313176242194173858929657849000590006684043036767269796529968408918874640987603670628132034955262624132920069525407684969787861780909848374270353463932121387047921541064717077486402215896101570968451542487801327983600459837958044419079169684511109950556244758548565944047830451919309601998698437438980406552656885457538904074557985483906149308675498775296806226404525593364042748930140083245097031129290129385050568673689135001312198201243008237484197522688246731303068347467647476184761705285566630309375633741142035107338857648968073274607364503499634636567176448960081763937724784964181328386010741262743333214334304369830929210161644020771043325480636921274752092618659380034453455418241826065078310767963887231879064731591377036398481084075732011286322407293057588703128235554009940855249747209452370613201307335844131900582651224846739931862178806887044140064295815162853068501793445474246192552101864677301215678515342684466779565911252039295835754814479237674189809000379547190456856118864689036633106120387773970841928966675116040456591438907945994101180730743048940889372989712644678187771003261684699834498416569852247925574873167170546038417023746218044921788127338930151790440151320455331902614571023968360569057572176899088076294890392359799871723412815602666667990784946977664677634046829445425605221704036960418465964251921758493746971057856189404494836053065810781489702945015985924707662886954698612906373091887450748431038016707054636412468415237911216059240611419322454158507093743369935165732778374234140185380279792662823532051047156368397603852239142003947650393786043523778653268718889147531686743258452320689379978612754995984053277167951288159442585141925392226697527750888501517001041060691306397654945662967191084823904147196616168521723550254530053832729413882543944091216704133863938890569399857904486194619113101855897936400386430521232992711476492844751505837500270287179365369395105355075222841879598369880250968683542227331986767442491065880414196876382469618824337104097244180871328515758236615283318021965406001142452264820169027665772955039353959386770545732693321669149751863450747727216397132036582078197129754448158928524595325594801461918545702639478231994315694368703200170317227894709035939953096935065252320316391114552679299627269457182258534220564555906860768677563522282350398753125630830235744528223594630158554703211896329041813020519475669076316105510712615788373424652329208592852867066768545230401761402043169848846037383354924192364699542328600624742832516184706054599596619068615474121894723201072608567018930610238104715310737920750910815690937859353196323790662667661048148684482501364440008697727351114193208597957004663752887437911006185840308641688559962142462004375155723253959691489824602518824682083100359030116958752409596729604794311310381325800681808368305409207188751819770822694238804575902868288246018369958143789094228442271460373162740337543309775582953987594380955903327739982194590082231942632576858631679461524105790178937582031931808683527874683542063216073166163344819612607981949882074445774961915542555171043660262301702245695812063831593023455237460738086195012012714486857476806860142187598052099639527947100441648894752563701690181804001943169082804910120823641360915174546374891244410833167654794181875685725300222536795882594096084155598612045278263791154702067760382638723075429378330061299161839923902851281591218665487108689915872727537157706517284944191243497193948584906878631370077420844090246518717445489295973834718735638047245497883994983090907799938141748501997440025029797634907831350188995077462217341753981662046442066202693950322302262331425243520031990039896479093681355839350071039722006384893763896406000354474230213158994030429994585740503694697305077353983716168934747166610666505912466573721340240456983862132859550926722817240821450127065850321131793557906043645007437222993788494364984732478185766392579336390484109172751646580161251777386247496140444657556996260583421793130369159785100340646602006670756231816821209396528338351647488339383125249041453872021890865079026671981913677781874160322883601202166146085334360248041803708298890554929755689112763758916963766622416301984812940607386822638238225739270225946593821216346353096983047508461939255087094670709619634698626195336111012770160295693028694967647794356114695633735797639589953019981722301605831666773200601247416514380431728167021242892483520016165552255808308059897724823480291770485687937213917039671214340042038454132057976836833684401511301270525189991341981777540590827584867879093941173410124928375982702378294276814848658396395229309106795167326132897338539407573243154059218471749619089317559016046151854567207953747622658609586583712825304507718522275512594670473355315850622798857951785765040219096962775522053104855282983966609957989916641992374610956902924490414357036718112093508613146997066351845121848902969906889271283627946554593580995286808955797691033805659123593468602774031050412836573114600465018579439485176002987866669021648374222095905739674388725512553893539597441718895857552292524993681390899960844962573843513731922765032463359819422629405929552046897271684081113373635057227942592533164027786096552288070391162108446941917426749467595307503812357478539080421287966519037984573129529460687979322617409285463673534631247490018170363131859926911264545585555552801258602696261423317966096492219090619072870414017979819955220613097149876766322985287153692826172175414120074381554951511431554930873412272669848058714816747199485431844720730537579734612342010057196624928799878102022265085834493539562488743326291002969898741055088234756418299650109516989554462705562910838625178291209698880947524898051701414418202449728549290150836703644083508136254274076599504502481299067200007036066686580230792612260165296771344593314622572210505118376406380813784232344994200538432957163007038912240984733671099562873102350528137086746963426372151689914397650394873354064237577477636518566452641130252982050202456784372396050031093152743404362559881752351750735551940774092237700315794304127794545884185740218023042069936962027025544351093472990820147168199071965056047741052851230804930565351720934958367439404289755856113178825646923377878209025570886697629108424634847462960524526513221716400133803612311552766195905496717880236570890815169607353888607413285093534583002509174718973712885925768525120714712945685042841711803425340990877869157652022201879526102836911806910190896187531374327877031793182927250987091950618850411603096532668514392116865107404376947999884368953830897314420870737664416597995227056506682814430827723228198135633127181483398210659166534550455161476935699805799375730677485248273364714952513366956472426263616105859376488134584905651490613270182924680814669597549789755388475941215921404426738314671794820410365050834220197660349020860434776414092545875368019889518437747858387658461000626221414246301729025001518674380274143877342472069849825864677404153188268574255783128512325074599906556608516495660965824667461829512635516751492973954598555321910236621857224205480026661018320213661024301895070220592652954982559441730579612783022150615693893758532670054629500300580950331455290057381972770613557852501986561733902041196326007234768423881127915578215811277500811035218924659811827686642389464641795787794602068944156410241719208936945499692961466558631543557098307558958354264230937851815655996964572307562333606737366219226449349347906099941499159635484477711964393981207412522230607941321871649531143194355429935831216519029613735363361531067958863123955312838288176609127699489696208480933906594338552157911551648442355544746224092374112095503614165796060843375147588180704424792455468890982297040382743163551493062646119973811235849244050113808359286304383391212390767373240923452016971012271792111261853526817235294040984579188557764537423575418555492096046013855049076289155718316236002540076044636325687422809799684217823701688186704136384640174513658246440176936454849548281800800477184557811533969126146362795687340987503718532072091251863892179297279542521765505341187654863452921623587960438162523622810743999334200716891756883548512207928506714074535314737878009351221559189696855047313460207625356203351041799882656501929068644501406086800876692602582582334433621170097621403448678603359982898458004173238268978200308866926339656179571429500184645019533846334483658778911813525901491280050951026672426826273358878285083468922711948376877344295824459533324037047888013960940743048303527187506192310757134847371967894166663941212631026032888504943438778137148265084102726687619843438218239052636490560961894390764241571323796101708186627942899337446779360229863889400201984313567151062843138612498101786029573118703028617056132081353044758850593281035672053673152254922126051489898566278677618389035028645994769162789831290696984652652619442110848635475997731013292510898858195502025581748165365293408325451899145706306055957811495038669890736774691490239281806761073471030265313297798868177352056373405167711140159626970912430513183553121274850397088296466313943979695449569822912428548496190654818688521156036996076191605516661498371334630802813094922704545912247375617570161207034640988915503795022483864930620902889627011949616341328147664517504638728100440057648563958900858111607150413117658179515906186639229325600323810834833592996910197204928770227668908713675075065825974511425314257755002227911037123840358745796259359689378065923216644651864363236029448238008261862338578359332425295281644649082511406117887279638204949790477310270791136284048400952195511501112358168636846476802072399699918482669184381915362219050945913631907588035624978390720638509075183415877646289571902815404898930820847645319658108612119934455331450665716813453789430159894509281510805533718006077025599150993046795400385610542807178857699498853696047526285656033835323590016351834947127214702530532493477438364248166267793448067697938586894288693985142101695090601239480599921601261365284307210081814484566439144531241087714599433574047781611720924199483723093877477239611127620640374608599470492540101633701464785188976937742793529438987626789162770277307267081384823841110254719523862172030050917077305708280539359306769818390099507960617389657026065773007173079574276814861948266778769390493217467209199978519791871110389952726893297961200596950898851441940306615092594094683922350774027873619907759918631517278147215093399177969692742621492265674050791183066439736865845306225662715572607778947322803343802044158397261442505596969680213334919141643566065785792757223302370073104065614906218155728945372393389620097693335626722016236700366559636170434066774855008414314185444646303793542072355075799479889575194178473972963001265899897627681103899062771270831192993473663743298329287623091581763760553941407341290995043247497210193341461389792767897469887119192940147187424442686511469513614961662089191888926780758726835419247749733545471398367775509250664571975180159761618603843921992064573979325320407364995692031923131016042368048389638488184275882289400013486554531060210203798976577535257753804566899668151325711434493213371229569063888428275234126012728075978849013960532917861943804885937826256114134554303809385460089693422896970911525948084988531491007900386647824056009642434239523549096885243082139919338187019328498886440358177888748215919628682190055278069646134369224485293832240559547359530861458928800837406112074633941558917525592379301496721140502091295765335301187213261155577528909292552372458941425017571781302347117637718507661503609027046697621628171655461177752666122092433340208891767289127788572610759056535057967168557115130044766888553444540742316694952553468930016618495797180165973245141783833412748925169375105920610519551993874330723659878600255793794341298630482200985128042335034171138177510250710574890057426190297261957078530395552560983854920441084418877193903840846579446333579816415491133148225309837199255407350834672879786494129453205526077648762448543664934146195569864493311135126613953152256700910280040413148692796653564117882538975575345215845519244309683132965816080731121197775729873602236787923733736541348421515458460536973381889939440457350445286445897583130765288996793751944450849877381485640693140020971463885649465037508514335826238382411017300962806624168997297799002969492855200203589867526004166578423583954738641418983923810274985360504840429335281750979788034895311264751331399017769437789550950718427630125340187723946647385906192563262316382036210131434454075816130008626129818019898566873462541248726669701677375338458321688230193795594841734426850683386735698145896396913215376452532967942350427216153922486711288617836272934662009807047902588140948579582027671885668174268213534603480841459870313369311491270108512950039718309750046004871962777689492688857267141248909595328908895066753187458577795987260373995193489417680758996618717097751084428533476234719906263632255801075840437894126481332425612169004454187129472824442644553570751347726420714687520097148054196822136558124367091557422679267813718982366294326100592030722726455707181743679955717753177661968668347023894377764950602455144884534679117507384752916504787350420146210090294386479535268648280483137646982680565946164374659325671088049732349063036721445310873073348668310250996259652697510229076817021899762423252964583359917207064873679326649192807566535117108911505548740218848011390314190712357910227749407394831160839895424896733402271174160914658819773540061327183201949210757024593213777063131134145712334836733211668760858666836364817661098428813695160517875397543404299384461391423438501508270902201636744429832005430162612175900843165016069240876167635090192651529152746383281557854427941184169896989129147688969847285319963058005405250008110665547150700618142466984440866627675132330438802476903942535295199287841576964628337449089899565254991933013038969546512813615094351913941626429790190602408585423066756956367465351360833917970068403438210671781144422524005690849180642397106064405053545272461192995451723949963025797975937524902210455902712497356025336743196192319698848216277343304456918312360438725719463540204498629892205344135151901825776288381995174944232700280496218780090122252699687113129840487921673706702004301613324851165964838684375832591773399481076137807018355765032701448743442584752775949263276484211306601622795725733840965965176001486289438534823283018824697161949885410517000788193319728827075800570762542170516656108055392719792921202360098155555097434239595707493542028509847269466518846289451800471284004502555391950834371632039705008610579052747130092087454839255960376008924893170198933295932895020279416605345435566855162703873942078949321000686408926032220718745223902113285208036871388059183163134053120218856873117117699536238874996288315285389037471836090643138547206899379685020315171416345167530129454920131121493115379264050887880311973349138544345198347143681014486065740641993439733674679237416441130864388303736933805496599044608746664994870974035096854484653789187246880345820803366214627693331217321495433217001170516359085577195106373086142193306211276651831261457081710643474041501465873484229690752006199541057724170275959466578736423867763602972166009115365787002648192020865712343579327083487485170322191588422190556913278986564676111099461234710611368082677643122098677971807677899485595561723384198561755334963012937578071467268425774503606889290332192660942114285121956742357800262946248095243649030512823630443944412668355295004081118078769392534760615542081222864917636674238953489707441423201851708577300432121115413315640213874533735682428474552317280726145392622832388186082415650637392516544275249596715752205380867079169357137637991832586138206542780640846947495421891400065707310801487457062424901381539996769348970286289741436076961286275451395614201924166162446913900970027836544438812225190517749332669660894833710181148634597823902802641099846203609117892285554732943115919708032118696120327003981792721807797723673352379656403758814955592278074733775137389414791691492376686993059627866519324527301854334726747935870875121120692353466154245408922907694747831784677487710757710853432080105062233898913011794063264309678414848069517834713349637671729347291318578024364376738201551355305445150187540278892716954171655542397328684615734047205932210836597044797226757414011681856395021034383981628147283007080896800348865276150765641433811142141703469947940626813226268135919707708935580389309971336250190900708683473588512363271932476132387722374796445704109607269614112928317793915126710413383612366332364643768547384536263654847043110089371326073805362807778617781326853160941261084671687576768438772720788629188142646375722908761783905460682510609597823521242508986325769998218784345552062927263856814881894137208958243188420048736572356099513631587346644046947904294118903583022629014829405114722393170595760812646741047889208190455887834440200868952106695672412774866234226284015958314417083068132893520771106732811699271514016632296327455807945857745772436161407975407409996491720664565332057379610860165547874446090743842190694558893421199974816149124660019093531900652154330515777262369593428664283149218585464435932119970216863359006161029088055835203674384510067107268542463604828606041825405511475126087907389674626273962687853071847827215410864165985271781388836708879114137798453307783670824097887669181604722760692939669702115689999539211482784900626786382856926383788621482931722500923736642494199583500758187474547081490568560368676819762837907914373250657020831769639046156372525762890104697708690655917239188102826203659151311249386514499169565697828391697990272552413613388053228063977203321509384430864574798245222247093331840350916086616680143408946732003090370609118699985488207978238076305913346086156095094625473530039833579748647561773944355781958805772461331900932534027687193527339046158842139973494739132004172008758958776461460910427094192379154242221821869867421586443187568345598626238863568315667470855202286225516519697064421106106164358126268768629763586276428268888308928445359592840012074133091653127894342351149172989173981700088138425580211763002233062301477685882312745756491859138909200420485322428099367565319141312931244946934831232627539826773167368886648441374145808901368086997668260381186081513207151174007474722448972179248834979999953170713084543844679289098687032505448833789743158742617680550871281829167466108193549627093886734497191108957166683642797212468690289177852348039388736178034781242334114503525590935331578642575171421551925002293659683976071854192010047139031166303260476235665563437974781294571109306721460169205276104837088722011023296099627294923703726501703804506887618784055066804918620085463128532011802326821496160037919212974378190552277210625092707910444324298382387947240837257349233319336574826522117593440005524712259085438642261131943328452616777697019317229918851244801122542927809942288803603411546869866117212545472189705247155250907316678507437672577875289073292935162068192586826881333355698657964281120176938822470455180715132922554162630855621849368722143953290463699672619086457296483420584690249158798625334737680371843003362042566211958614793216725234364167386914333823870889978887100351179513810178767731057039808012298371013935206162662364523910173364533687962250003294839340632253570565432592903734330291015070901940616034142939748381323277182720653287472880579717920927284028447858326011183392370636792002425458263131834411479028755280010434220182734807630691899645033048463235385198857731949623808932023701135034754085364632408004066482767256374996690534191166353661931243512689935273840025480544692899794814475895994199862014300822910943921074707696035884353777283154119479795452579775362479759107961148525247983663679167571965278010344918316976992341907963101060332280384541988624085743773321874817695383344763799971904967914448078862389221299077702855704896198739291136611333932881151430443662386314334396663054344156370917172059015369344009168897720870883149051787403113380597545982036245982759340251646595128422561075303113548265486518069048360384107811408661575096846939534846634524497023717173666695367980895603101398013426454516302194734595688867797131116419407823276368607562237040482515094630326905961701274723108357211729926011098624708991789568449701039904038716784102706096426660394753833529650299358608311182472149796068641094495205795005441714307441678510749672355600729534839868529557140522215137798876992960052577987772780174620986392580444663605623772602318421506715922496386727228725898331073183160252877828005877813804145142781571833391444447543301099335910970681863224865021301986940941905010815962774501831891392020824783809557323723430753995027648296663691994214056116942130548090331979182430256653669577218302173178353244873866837793776003202384919137781361087879662548724601479520779002424882805141603855104690129222887129589131455107319500716365183846383044123429342085823412440536824021920039366786139664930599087257819715921790862054156225462991015153009758999518366679936160567391327132248823097135237201965270350354744602195520842478033895961601138040595749203263928588982331037588946948152844958876137155637997862431559776142315626787120809443327811363576487400628618803530753499114999485852132252276559745740381204910017573379909411870793273496853160164908478233409866080909138434595255069633742802117548830193440702019285130333780107166834590680107964934158464311621015192380010215946395116349027079284026459236905122863543611659625529944863278951590758643864643641951961394372624057902371163227576538073690430087420235466810312343272456030213437448522710343842839082992097366392112780715937653300887840175600307635831980921584992740087318771223249503432525817783518311941382444236082110927549678908197603862771669314222543150245122097451591724497111637260304722762814070231004161134350489601754240853368644423573359610669019836340916117159454326155702234304838047004896557068313343692400352782352919683734003131227578005073321368475520206321912669964945987436639160014121654456122697031033171222341789343952385679146512373971840523395974645825579062052883656106839045510842120603908913594056469894294271214061769744365162804328276466811662679552815523368459263759515575679086464978502875630924410915844331310282148143240205230572956979817461549249066478308498901051915841055695651129216779930421800401492893447894503691180835886120621184779131904142141843380504641341162223451114253549314159757456860988147099610251205664676303699730070545370271012705014731861508518717258084981215157716743195257719640283413357866736475461138066805376850941318471739817299949830064603653346450449282061624993616480908374045477305279020540330560701373727100691939613613479646327914048008989518369472236083871892610986037816972901877668512322340283890837694834228186289435153327263347475365960418030262214237335887222926939523968764614376956721666431696135876931010223255411504846293053072286909071434938974055208428531117232455966213458672012224626098373992275105860270731746118766014246910414733315831665219842280070425459131956235935981331418834615803515411083448913197734010499759859464532000361153517431854082656052023846990292605313172024460013957920716229704078432600706213123099098264199517461139099807909705950605871821352112977032347139100344654168877049587362689250897923484240744482431895787466541809646461549356079230647398925318401354484099501684412555381063735001966059259822061853555000501871069250853402154495915082792269622255354443283124393127729205587060926962538613718799434387581597474788067155122536026736062215360820469797220849591663033914868102150602625511884965187392311074116088839821689298765426631229223257064571053668357400150026130150190266758744906741099800793088911426426503348375065212567921572976296865735012516853031142269356944002843500036776813912182104742360147576674655479269500012069208689190465987884861942030701347389999782304200464673619944815400679668062946715820809690486868980148487343560822835676124707873504536238806525802320483461631037268143684941428581808234856153252953500361578379088422198819295594911165426189342724167999064356027697317337817649699548503365344113478262566949832773019597274209946396397377414899559509095546207661481177114996141331709183544936401206384571408786515069398905199404610009187905167056938163271204321528851377383026541145192690756400544569823056858679090753830047987765027561240239824112573474477111335645135149203242029811174745673400813856017599794559780888025671623592082516606425708539597408913964462704879367201031287212522710023085066235418908278785619611992699740890596648972093808729360469671053657948563340614639220723599532752874613540154550073300431802005469794460859990931220263138424265406124118066271888209508607712724634807700592112034944160052545821330055847518913382586065721907384650900881494824402610680377400393748357676553978381567543377526117590918831615746574629093216530770498501560116790249460313886544325180914714918899087634476693938420897644202814718668862202252670044356299485214393864664059596207556513679831927871381525230471272816712878570426118889070405530036982456802547178330441326036612433704926229896670995984415755703010988906304986736445647602550150484042396260128369798832690042818327294593438414423325743826060516489225610064587312043674372124087536245129236030764666716503570064584751544469149169586881548387630755289535527587596672522736668499807635271851698365952283350231515656736899515390132759852221325806676575814124127670515911783885349104999039554123207434902065498085994766262088847886733728470105475362473951546111259384003468420382140373616308737990489979384538222406413243371408044586030481652187834617184768096887001559137192895316155497006517174172526974554759560389952041051443632723367329006976805515381273773312058524438278817797166844380189342347251676678756977342331032858579767052675653778309320687833107453802480012761126818828307780742900527305680109803726866944455271452680594297731086482300551818496638758009651383525253469057458746266907506707926957685723638288916569976252139171247534117146985337871819086064267872058714170898668469538978404462794831619254263841422430890282651366410757990926880890640364978373338776222450943258398031022552591538395154862352482674833281406695093681073545664529595547849120547330298842444750933133584093912000916170416904332680523132622035368763075385281922849207868086778873771535021980659878019468908777133810558178822621509504355254500000896373620187770719676448527203828302552576680541339368159007543476747073805602487029904320719089524548401540170835105850689032727665390835850281418658981846757953052103521446546696077986282520109753141031227295152284573082323884387290534416175837347108965800801601643290052849599502338130150226563580586245730533632017692195598726064636587913794913965162161345548502663270681269445860838387588384312069970368469577531351576616926119467135839197089820564360119340037889854532559355264509244077575705147002686055733453786760720483235128186173930922928860819867033639971186829243155921140062789831716206224272206269704237802956897819228567173598102582622699256861251556396370128087707801724065799077923720562086515482824075063326737262148629097585916412668280011921480520072388789994810508504095891577095230816482990384497823743081256220037410800185620107253189921569942389778578953456271954383747733633592329715267330070430827109598680765278466541849419168789021048146560615639922232881292642893786072782204894093705245553927209359677370004896813732486925793728347919746785862983748968429022426514179796747840517173822116044860604378458446089329224199868716835867778897670825675886223731196552630078703898754950744013451515966835162890259555766933480646346544095197305809582122140814658338389097106017035057191345199116611259955699123820298282863989516217123617749774094524089903483397396529196502451529486993967990689237196729461938846886405577821034772861088422072245392900315842940593889649264943219225382793951976136346252788414845872920613469608979921198847045104308785848195491272535247612133081892175700048053836165266480766914159095306500114964455317682063424043014843145888431861486500334056841457201095577155582631167123322919782931781694423464837881441680401125048067013440008094903996518117698215160963660043566575727793405338889803925419212843955974759842588201379297249088283421383580420940637497383436933618878334473390348046551853826665468693595039028797533193949945703770392129812808371074359917400651078494127251108216345775904314126077212595057764839923503293901893609317711234130842722312117895253968182635693777503757590314765269905397595801631543651873725265136743581220978954256066764688911875457841309405585019515983056441223416159640558859220336198708860844878246804515496052423314960268517913086061020641137387827103817164505460181233131627319356747782040830856245602543841877224092181284891128839671803963206706268471371529429964689322247110005701854083749978373139893673880258300705845774672615578507185250907737001991219652498930404796470333744303170444185262477105419081111810670531363795160146119217581352547913595539416291506515068315040120808503122700905792351275815198704163564605308500947526681698267317760234150656672841064392110329892330918100508539443600675793811469363909103882980295406652578781057878164126877001684211688486050696290341803409322974274802616200861053497472784785643662535547174014506679784489190287935529551936815452935383091654777686981868649785956015051564398682559728499854699495953269441322723597592509044424744894766615126762034036209341664553269688124089909144319354501615342825652107614156496319452340484066365214026753935591085497283041495355467010788172075402898305569806279365804920846405086856335745187525222012224091957961828540056666569464033221934466091881216246340729756990842264881152361317462515859301374884757344028182446560254200100107914593737467964017058657172279379689559011994329747858424340505390001239407626827394215228869898934332399395890850406792653207238958103741500061111600613492412267818339074598926609320538381343450781996245154861412190802518234198353644398990499600902160702085310476375778406407197381850337854866031562160927372036947530587199952091164496739299317359064464679811915376998952908522633942198005975168260549231504657748760449319571280494925351488997504798886319092826152298779679822843010621685416170470249084772521021067235300013068938243715644658930195477899736455109920426909392275842118390919111324657069991198959568778543000383684239424512109338400293786082681009226932415908014295783166772277377777806365493730143888524678925614454878758545568653973038651996936866520654914886802950543552716719540514196657081616506992699206128449942949874098057092125917280891364495483281857240056836459274421671713990403858324690760980132406893172752307848237156907555301346032768932568422022886587684524082563055358534816781920558683076651297463676882118064819347132988628473127141772076647578973447609810386433283530711199368942700823877555166666311680675547655888221186326333298122572691690886787293736814084543293009256391793588179261671504554343902781433108744285289958856897908189830620213349033970054728994449363781241906646243808495444110056790972714113698275696576124803904991856632283681575643731855847174908241765945391181988667656884205479587715440188099569703271643054329994208618110875040185835592130408051594550959361918418644563367943620042685613254357108651599438461111820332835554714715046801703277063141233120416460068053556947895225667563452948385578568368510735979691833373763551815743837078509101868548654377278707918266627965919260656175987853610363213277768017304844234189071216985338145633046113730586003008828409642381682730785783683093354349668413468389494928792903359747901932131304654295843791706012753227022269145120049920153388694521103399346935597644030653495687647412127755950774437306343887698603920318098951634580478179872276515185628082565389717451579295950139713376708405362176974757059203634151085761244570109207108335436362779743529947498719153299809933951124868490679054336838700167193752628750800564483636729242527679624439270918246718208477185290117427995541804879858120309492222056083232758842966455406127301393886034222880970284680656424901411894064226890593309170209133701552771488612478880641635684420810820344977182720444289604608663145302891743204224532558228923108463100521846566858236263393229885744625500009635097663608096787787811979200559086953742049976602743209108167511300936819306279261476307838401872355657159702005532389112980889639940925524093295130581205720645897446467766075312808684267263566076643411293006154828058122760371771108815841442318267476769312957879207781082751290746162998795125404751015558751791676717065217073966205921299429258182706918058372616151397664993578480197670778709784802811949110214466713187196670634236183473062420212756574079028828357513234841375155820931340316998584233359303273933690505031957845725693057071495267116339414390080444619819050572623671215864991242983204154321433576052651650079672795458946727954708924340687819157093291201874777642596212676819373938211166332184880688164482800308043513963123320308262705685183409107071109428403160908618684640398652099877050128082160756521266862443403092073744505772407205389595916976774616036122621541528618398056873102652241534071622429947818706614750203275702996954666474237840538658053590314858639572188991070405992457138489185324173328005859945529286116052725240254399142796694327936598147195048198349564824458992356832233018945203961919699893031197090086099220997878095192224926257530287766908894561452155934567625027948181258572843041499288118913245286066889518136672895379578463018555816267874228340931088160352454428857088857401206226479231524121803556779696967270514438662472094578506904773101578044118025114449138841261894863558905058524481710698748150457094888589210583121910343180272304178772152458300077933606973299078362760218570406241458560513896548621671789942995365919576865358298195628090259190946431582107085568498420961497496957282207488910913078940855536601223900029268623586706132217240144708250054481584176705100410402237020955915799291416288479942822385342510671402174802176585855519178075276104702671003173507100880769002576405077938559557922622794185171641870691984009416120402302917461800695546167782573794759931551753358255317823157854623698879574078716247206022431256123973594013344654873389401710645450610041746048277908320187965969668268143838164335509219941122926219917768069840976746670290461241589781488151008953416440087891194419094637964209024622086104413779172771611284023419255352113976434541354727121793331726819286948309812452050295749773667698679536824190339618220564588660607151525642736424032463726755429495206093578515972895032817725698742193662037965225348305750204708876439746764609537149457854787417487534835357001322337172110395668294509469349985409457745154347516443514163019896216264438438340247645860797319138479771446597623160931966879313797387641919214016155559122377129577791897718796087395029924935562532678825040198335350709878386446794449487188189504112611052824079641751031756540953251346537565821069974383278551668809674663641278486354219448482454221075608410204467647997386468719541509830619951391091170943512232885809279163659769528494833321760881927364977690771303296623018415150947148792967767904362522947797093576753646056774097108344775891591815211029504692434147552738399201177469430870663217737397904893270115452730109775422392757842953565627624014688998238237165307996053391395842768379089512185029211039530942574256726018533590892813947266976198886143399596762903128824937958796470617765920057311697258453179889490978116346869056965407004256551014567455589021563074245576356272759770129610226976600567304827066216212285523647945686425332002004909743846134637919516654972672212230634996347712398357376872969258793541239759505352935553074505227372065481826978452547258179938891408057611108267131395083405297252003574515502229768854687566642462297866107192817010227642929221578562007128104324060652239941490233983460832514266382663915848354606628109623022999510470596642732490472903814653873408875100487020069662165721261978328082320262262108694923605622219661308430228737115867800173166039027602313831335945033963102352804305594190562143684369941463104180850519235295257277159726471384038648887447539845917442290056129813673904537768995222911892052969437454706822315978375123180432704963424222915816563000382681473742921711430608427646295521500071225828903974223845862003553010508304584974233503500461426460280363943966934536787891992182683845065875702352452931361503791139248111486291260004683937170041274692727379361628677716630308670457282872446778149130541616132475927775022335871889327226863223436345230132209315098637519312735429638923461113203273549602078623978730176012669285672054806582457439919708268547442122900841895253553692461667636085544343701798388608500254364608244544813178787647572356682212879242273036118035436942596562716773049941897765641143475169076446444683381045939951235651884091616425652722650841639202863232692626269254673400359180521146389430105522511083530676289223335766724662380343754723024667770229528229102697103406359517902177001511482330726128636294380184545199915096790444576313934107259295535003152445508336087599995550272061750677987250945600373091656707111182650417803332132637998291364032907669848088916059777793581898353074712078884975919798363178706257076083222500725684857823774636692718396425335703787636909569506720933187928422464710290916145562409066360118117324373146804680794472979032407280078891237933041726862639336916810296227364501586210043726113004919860133401916615367261502861062558590422791919438422487085773951524337217555981094077640195944923745716682514919850186087841332397366185572456816846955793176828687711130487133756218485276827326374273579600423564132254377576535214631113476003734714814744877575179774658584403246806995016608726860689133820258749621039920155022636759843932600776172939733893298654424389397672894932977986820293487180918298997327556030102689469113751450088492420750735749951638732981439266368260504418661885633079794011135102007565386245654620897742999656509868044032309377263325969282868958804256436217697550559573576849996996270025201402894752401590903144712733026378962386677706166383401696380975829014982298587762239044929489564802710677145288160610118694494028838048214165233276435177117290875305325556678762914246018329591754138434837652509059802368371104196754828916328589775470882811406578419537467807482344827866845374490777716764813752474790928795044218027553024328235914602537028669072478051565371147239085412830332113363928185994656419740936728018962556861964701345335853076605362040528084594844465091188958733369496247526881760752896048325341827140057288444815763324392461159584072021620089551179740761004451062706913881062819900865002711763680668775218951501029890474555515363653142253666545050853479015069875320715297098026304969349893025985298467697669672493573429078763534475944846071367894591745934644650474732371372681929383131289614447111642591118578776947009379850212859167610081943781060704715619720450435068964578606697843989154257411161709752910279133246651183906866877563242166081947788966409465419267644427484525504216468293377621330053040360274987730360996561592189250294800160268420313329646953917245858161155097713597054257077132123524100981318345316555176737125415669558428554426955412917647399904336657626972111766403932297451672349165838367387108936656293683061664903526923881987599128687191161660129767703390089469049765636012740714983637529414306297457819992139164311696720029565373404543840392553186025360331167860605102223152989398658100714858366939844169060557981456778774131857311824924293740777366211700364002507678497351662456800929410310207322466779890645399947457629030576436053305033786653320151458423682332347118956786870436543750331596113434475546794727615408911312778522430282147215289297878737710897117196397440421242999749759406894863796266377932557783978863435966794320763218265438058373274472871474037044171784252956734150373704140288553823049330793931005992111082104330234230122294116407631412748704016445570614790132253849995647959455641787197461244367185923936666534728523963849920708286423515063760968361257861121785302321802870076482881624707826478749301952779396708086016150733882884890825469363086331193028070448921619425170459010238270308571409629871553677291191658065487090979364879426182449592841196326944000639403603195487567099832211438720038109402347276611171796932352580481382375190409491140037878656311015395472022030998739138197037892501211295837327926218228972272929648779019954871687426628985587933618027797448133210573857283054008686589199638837287096084698367622767082951090844893192519446982646972018031510888206858694774147746244210741358716385576161392304744725214459513304115975800075524314379379841784483036579387865333590573121207284421441006373587201762653871327023167189743873925364139363851946034078087121847158382669432126139465472900870332258227119934129715129158894731684071572379553010866621628114109686394425502327927954865022787741656333564493472852599079510250373334052029594428295530045016869473624767447472697158736002475093379412553393758419177935423854233281784598564445940688666215241537680542888488897867864172247325946960545842580165163211491934227440263131671891449943718965231757277278178747949062710006483150818463099012911644707620865333269638306181250018160604479185446335647636615213052019153291648626781661027201523691939548519464536584665734793238037592508378394647581720602849022209665832037913279431570658692029503238557011460541966785791639689838811549222441027492682903541652203767345056999486834804553733554075814069469364457702857866264651708421469802228341957996677680009898914041616801131249560930128390235188412847414000003575894116282326664328236363949746443009379618408993140025213104353416879831254276023970549319809607672681824368531853810329014707301609293267122566227811344360295036198873492810178238809568015255168638025018329701138799080067600862573976005885163492161923395315833208173639375395684566236102790162499085505659759411045179578403719913911979226255984994167116906144554117779406997429369636598195126365010223502775108367378199242669827976457149896634903837005498762697165709592203709153516734086346679653617754703112684106978248157633284032861055761913613328109335665865698593638627183608421428537021585352533004451659980731879233288165790334894132307250986969357985694160783612993927050678785177674566785150200869489619013866098273375963285092583547921536072578793868897352198081541247678057298192000741558403093506792030659765662840756153432290419005203462722680805538314309831784702829279766525499442153383911112407510582917688123170853085229172028706879475756981272429683176521373584533046874872209167594271527616846726999518914748229443100055050040220396848286054040531886294254061348557297247036578277251346879000753568738765413772301257402680797481519561646142133687851092520554896660987068498084461717722109206432545382928552361459995277155142134460791184080924597889917374355113952964021684124407735381278085805617235431331391645372030792169332848645645932428615668349403901025065923806908416447999750867491094938541241744566637640699712085437209648690339163198216532829337096198105044803854501957488263650525081473657516867056655208906408864356192940898046019432533601229114667153841945122869361009601722799017262143248958841756920126289179342022996070821923919602926764663902377796705759040135438777954404331813195304391900889577929048368709817425985830447597119280227706938796233936870215695149950333649608588528007030246205543800612726757148085467712540047110701423108405084240748517541119798021378133199620590697305939210768069681370403937995731568840553502155847774512942322847694265142107712108365979830262129768941610281147546731134709101434632147191354419277167259989307860821851781278154627954371093188812401000265365827626049462281415912114133398126899559876955942788717809139906875836985926317057278456039987990261296354339298391502634658051628834745716825561849218226217939003620696476758651453281914264947289075249796017842552525455232739780979868938328250750075219439942714353861315132878045461228460656716507123275323944284219869388073722393010435225059396942623135254299096131371489405855165190155176821120537645371011956869796275324456689569672889045878812484170170696728166635437007519705308418535776664233094857316357789459655662660884438821650535462931003794338654458660469560672543596031520250564401071051293147152867179957394383651331218917570339473086539292923439456931900661565958790221564118598582320149668128869902048813331029300862054674045478071743502958945114078978447077987233317359211489374290225948144296116178010284298219685864116833282960507764144984399319307434701944367534107088804498195115323504478613971390943445189283723392401318476936449445490967109748252876246982406296305289573677068319156868500908741148714217872845187854458797442458244300405724846521238870031523149135801312356716568804637818352980025637918659458450606336287364614833284785011835590071260544024703044022699948585556928506999257765277081021626551007095373610074883597935385009279921867625440564247970601486412284427658859816758954581666763544062135190392039242166112869950849778181041079130848889591854902895622040474062436159773888083404322491326942440612523867015662159324897358792205949546692541583431717494732685381462020779099714523629481319081091254178200182942148355004133025893016483260937579203324769189972538608963981580796427992450064617618037118868447953609399658714336430060432242275754485348818861478424154621551193469309870454918827204306268692091833585124854336480725550120827771289848790683226710528518769397709165288015081547528219709225358652313592785974941471129574841015768839071520523226607889675453562678838685399571852108814378475826969125052720456674844276154192258447888146768629071990704633509681746768553317400182904571990490389818721083664133359959092382080710231678264779148149493993087766873193198100863711507525258042507936516273473682856798542088299886925409536569530456865711289961041371498255810456054401386509141121757752955198393404421904422577269035752186765841487802059350716892137998564213675885084344778330768110543662644264324654157853813138887616490839502369674435596111282734785385565469912335662365208678933559151747779691095671546741076990189805481325275749356286088606936327901194233079892180910544023114464826637015998820618915839926617527299974524030557878536088174399045537446462920525510502458041399685067882819296298915027961533631718110329276272832399864012298326212077494611629569941861289080666184819069278705967840901544933990443884424754878814929623140629831861088565767144418737763753177750183531250326776666664178795109861899942537788378359735292847566143850784103029918274963987706214775949608996344257866352768679751773583153650051564789896152823436168410417939535557024719822825760610219884269213338409114878500373160867473483511718736830651447478881121075157666043827611012792798275015637295789789208601920599861204306933887290344976337225293939880529460155655874800446829803748962869673244208461701359420145710039878088884995271765969563822462518690665989778316071586546364235623230391600972900687820212937759452916759033752072708773962929988726121708574443358827177316368046191890936845799014710917862192432240909508665473172294877239186953267734617615397462129312991738529347295474927958159431313613156412749462273620683749005517787221517804606483723874640969803074299553368615473898690898760676556071774352194800397334623348872884716125383332320959639165000634652434004705459935451429788326486441326534713731965448477568875840774014932394718796051659461017901274712190723595441264854267222998109668997350725380187588360413876042094001803597856027361710525705434471697191469141304630938203334580852969957817719725456618302311211707315942861733483250322329200094393575454535929109385605252308886940888327201298653015183208157774974780713723425414904394093156825355686312584868911747824231769534368295467428648516757951885125382183140366447416325999205880876262674786114066487065358275577153270169639705602100297617382853443197209002980799919238713249192602900402011930487405876990975269530255917069206064909951610777806669137497899060446324399738914057470013937063917700612319360044179934543950884580856349862550964307889004545663738951103762477073533247296770722598932981819221950145545497750710567499337941226435321555877235883634969070561704345719013992184808712505798318630681977983779170163724087565302276990464751519644728800218038167983254701399440882097111652190115037004335968364147352528660809734090435891098172829255522100323390197719783197711143185448824744103722688430539492011438866109130623149276905532887916691714704753010339282881203983143811866490689959379909416574986573141513603218926662885710668720685729730346507547699728655244210810251709776060634580911920756335508383642934689818713914539957847231682127364575680212214022984638973074333927370180977178636847986389327917584650821062074729974900714867101899458356911642064811652549273878139015119713072947596013754668797682373438498101961914216816358912548858453105910056141762175806812574836384990314136784957617509870862924362418501678964689632943889758944920598024582797111285318074365698706001176437144474540688919661209775769271649161237672119988827326519131105174480914546925134225215310444134758698558676505241838350375409229509022207616356001695836130086370468930273625665126040368981071861755319883884312398500825642189494452639456975157862650398635199856541824118936384872662971332664168276052159593595073969775980669454206399408938351247941132354527964251360737781992527845357606401786921717730392553365311041422407338379166316140160855318669459257811608167248768649783571402818534764548733746242796301514959008773039135237525354658808284890459573352412531245049834113616008048473226758172148401628960609697238038123618231513690690453905624801015092558879990961423127122179625451110541960729794962823705774888588123569538062755893477753428859926123955088737967476840524324805086929640668797842376357856012049142082233334612112149873391204765204983646705827935694237887344616852440588267513323097416639207201215677495513489478679987717732839621420218318106033742085094812412517858189545263032030828632079852886985960545400459778909492041107392583357042682278539996232809188713960738579105767013342007172162850706134665104288452941307515735878016207360145414711812996499193663650664090141077474131664619533488627464240174829040470221125280932389892096533295317503648524954984100587626412448446320767494726909785927196836325593015820200246702081603054494265728432689381447646500996736920172923348838430763897196807023498670122637476208748089019285998241961218651366089718842458696251911612890958600484299053562624359239379058285831462954098575143623932767423626452604899502460846613201413621650471677638287053341120987556194598887823787184403411923376784426193887154147004127988154100249537477419727858228060635782167253643543423643450392654092624830969386669809625886822080748727155089368510545893791650517231214680570996473037630907333289190080115217078813052271556967657789646204094216538048697089420455014561945510514394506082003095045408190767966335534642070155534744065890316623430095179553889383968625317718085970001919007308324978527415109108918522388588564327831892795037184866238663068010606569065522568854535986420657931196227766947744715351077288632808483494387951661796469039071777884047172916033600809382106814872507801360458114591756815273695166216719482528345763857847854322271292721824696996798767499848001999582767593533100029730796795354208656883499223172041715638813356880154421071012824581288856141746685411199510488107251446990866443177561470206741084032796569191427843812052418162764377747528842321792379435274386048696871962575703626227181584072105753265814199591941452341965653801865189025292445485622066186289191621175093291669975966376406785074453161528176025592905062931144588212261354540594766271554506147235429944228156080467734840661714621778740402118680809624511595067208793210754561083314044208839847227442239149039486370615569405170817681100698637203225501329590670355148049188831032144692452003430907658098833089394123726807925671049344796739694503496617812834971623568460179216560472660035887893676820858543806297185120109367174876215100923555082965210561678740109714473394023796071382032489227390052998281869749948162036236485715034716949648055537302728548026721410983153480335020166310168459171171367461896565444847191456018166600902158942598504727805387466891257412080827434337604951775945997489283960567504281135548756837722088793595825325678872500952259775670300669895730334499526475405653554701126711580949320027267428146849540229886066324181621865231826699382954783005180751337550154565615202561189866554802448007682128115837332511537259328228979523463214725821870852928952522514023295826601257002792549346983813699571727577882763018764169031597732424707846693534299912968002328516740719891240333127335685473147274961453781938236829312107491463446384242287042658524804165301852084703967840972668106692516667066052175108577465598719116707468573806761944173289961415783862465494875085263775936494222823251786071463254824678867245083215270488070908746867166844838561428230191904123168602608850764792424553710419410356932719009317478182179553783550582431774114180144102350073506633155862252954502794731581383004356657833008928787560689460658664319780058063012941453966717931917627063927507818943866260947766704507632335659534653625655121449713387590826026643656950013311683030700247939788772946125189369087849370049327417473635502627753373619361129956935978650226598345095301983182120114879303195234620835490001466141942883878854932185121742194364106455941855522796047967233469743602153871378232759708942734461117855890733249041952357502029915315896640458131557182365499618130420218457713494665368249638187456302843034192865482831486566861759745625674604010352336730502778703125816777390413333233629589512204972518719242914230225667606129214029079426149114696143477430099670951104555349058438966590930321605054496798316848362777125948381307214850908833257274106651156758569123128750226680457149792753570477972212923694073286872986933707278276705823491178523150652772120959836117623742622894957413708264430410619563313349164800479583129339171315932328433400283049445227399295421808607798584314892560791292054038870663124538955349820014432712921189614586563818509590918068643074746623874326039095760979524054135820158179455685906096082121227834052394715933441692549051681808122553822972239204571406145338922739617250895908062014808460881882543409173774262966446506235334509564592448159329958210449592494627781883351304822014623148982432937467971915903816144255321981817174193387263142936667679560747798894789196385035574104574098568271089507328624709288181836849560116708841320380241408449518989984966054948016493733433202867655907642843557975622658984917775983031655157779265178447669217502492674066418095377455574622985416635731533490144136382876982877393330071858005912177546411269590464302740703795962381891335097438643149383224735091669614960314760726596498326243911298532220431304007118257058668881851254988492048498328073986276486849484668486167182322468392471578720048466991683695471308931384251156557221440323990941091067442166426044084703901923836060964829763142289045656639874261256331226953641219725910225051298646465420392583771955796137960012900232897219253113783587625945233321872021979141775386649829611077751219834194396254911368930697663067819835893096786127214952757642012661218803295131293131548187914435622474928637736162763985743910454039874925977731832301557811697514916625848716432968285995524937257313353301274958842598372877594607817487892232467019621128656453847567198794503466919002910927864778619100890817028812438482600297107150530538555241918782191093338362116810125627468359696107391357847265961079995657153538566327306426587942114856249298287492675170513783380323842432548980814019535359225135129893640410667914257772728001901905913797350920963093824244673618393725275441998718526768670990431192470573963835920321397981892454898757920717746325936404848641044356244667044270649910569210728215200022187906867560254636930858936770919227333146734033136478780835048445609899341147389919320959722831383263931662357893837599453957299337035555255270008192748919973188031065658279096495304948323137694359961769928086354478880754517501627218345880147230963078768156349055178603860837462662993287900177204810283520261195293075129502992596435692909906232504772275617372656460808853986621740479626924626060116462000945902319595632707386591962812405964914133916957888736661724044098144949212166006404609947507419249572524509608890812682553349479719952353194784081658815599139370901563554797208392739371959722804144514031813456308118069312705811225037254859878279392098328079701934177440230656834817641723567661436612690730086319166432092059053254640874677944978003437235656821157898206582357648193073930712649609052072814136989194374871092423210702774249015565179608870516958943694636833118584242902747424582766275754564743579494211949266032379151992559797280136798494183858808311634231206662280011099948189692544642299607028637997531012043454900012581861556601091361126281076098371121710587194382284867038347381411136511342605825085120763985594751778750020302513190008424087907702282138716566717862638074657645897286440458551153601600649855127131890133784761817155705147695802668223681500392522392805772058780646869748284846164835087746887825809843869755938207765534421517140191761086853733748646828502731328500571453902036690088695740697215380894019773750966579840580058503829677170123500668223316255483707953730734522233222503493824444815108719962142215917202120668600565448287166472181129393465153588523113264098689408783246786519675516656186637662159514864707376567881287209596389404076485766211452366759351728340849873800950967065402658357778739448247605937714638018515877990471972603901011797933383888342713484126420071461024791197905770073073481772839729583312217782082433999151632466570465617364945670943622618570153020261545681569333538946967736181836710074092927776894936523575011658153125514559221995601088283308256832600847397058712634866373249703638798377902471684191597380642355321693340747785496667674783168120048262488394402274861502620556099481361267625695258928307978584903668707397755151984142470151140365657804506776874052052682554295632093941050030513883350644179545676390710951133773253715904325614936603455101773099809264679409500759641986886972809142205064947972357896039382059406384428314645367284462395897146668651253711460669352776213263072082407059693529666474828523341296485487919587670806621456218511688773616844372238092193990992810962357782293956198178856609391990777911566117443212895577158195149018156756683976825984025637098629617275323599063515848926032530297097765374787610877556778565738001668717615456143155245121700822724284901183154001522241336136448885472235350405841694189068173128096177086948999477700411138736153318361442695897681203382525009428754781893816330811456768516217550321533172661404749007673448641977070904851946068343274619609601302955431359075401218659723525222029854104132692109847603044550723626343889522878205051715003762399317741285864970129587148560335153797451429102439783474499014961098823623309534503627730901173497013618480020853192380295035196017751296734118840801381476408658984947962772889805525342104719911082496467673693661931445237684879140724747418880673794916674092777636096138649534294530911063800847977718027045639995624844890258128176145653017637665782821074381050750288502389553912174450524562950286608576009308448081530465330207466267094176580813248135681514562413086932227219190577474284307800401065137215530601197007915796088282727819162318370340289047375169145816353676753904059484435822889701037258572221745166119870849531848612533945791108927884593384729992489749317215909550389573106309096840608328654253984648783422126263172359993988662445023641340036464129660331080083664974633324759845141748408854024909943056613209796468151063083381261571003911274535405916151920890688251227154242065826512208004547915079444904254059288670770671199066893357607376760591148848159734907219761615760178315192991669897817214444680796973700387711655358965943588044834515546034086603382012709008423073621198891098120831704559179019571654648324694506414265082816046353651427610773016511659814735668516677428517710399764665117157853604755393632979807996377991535565066926035775139175976084345621642051423596675992933199626028177724600188804823875424484726567842230247518931474173928729923078195600686314057993524671362721838074169779864320335353233626554830201898813190871881113084294681065222089874889795062803954617856304186768586071571044280906613595399602341153928775154897755548557251588713037014191648848633809161263812385607662797177529385269349993979164142471984265989021291492110013155916183018535120716767145627383724050842834940705643016157393031230066386213199540321312331719856222379352638335822879576590772902698176642478354181489396748687064090691743278479788945720656839895888552372302893677401839313201624877100680328736968153341724200037817029384706354965240360894431032804586996917969691146187201871925813490519327513334622065408375482003464656233576893889392717990504930824709121654192001050014176379856798603038680008488430965286309333225577624699516891742681921876932813200123256561900129131520045889289202951865238740432875714423055736825850974213178842915279098672255281470975238315635786036688608574903581852339522738503232565015929263436844793805102853820157860776684670681587909838562010128326446629301638058170377355099240916502219712143764547033914239756170325415715458648867623739256688192873475142355550732956600356766483829927556997089840822253251567885822344550727285266579414621589117084477165267454983111977546424596654756335738343124163095699087497602441964633962806518387382981634306422211498534706330673629377631617598366927647853134446753419220837570199991678289885357281772046922341332395942012462482568504028826188509609671168968208778080567750380061528484294254905537112970072969919532640116664141051866393809759448087077201791348206453543559613017525868711686392655028646461661268315866032075346666654001092069105851422544753918850368340625273583420745102835617270750477997654476555988259514684983038751128640425761546999922234707194981912290129597980081047296606702389977929148612236511862374927743749904031779966333040871679727947323377081411960926134243131721042875639411226222569809297561180748595208150140346595232136235269472003140809447796360334975290531629252943436288274713576693988747550055426987579765235559110841620539881714280165678654724641282609596217835468169056869933689210969912706369089640854202715290828540150421835114083494277825715705452592431002444764374698035483349714818968234507659009512149805234880268550084084939617556402553491218951409635504453713605166542518157086620573599851958020740081344668286122127318815461103949829832513539283462415041507840647919653753737052473354222568333030297686130998804109205097698679424052589741625625570349378585828034074042963035127522412114754404390326741623103213426505715477062048552442372989818323786776884869538155854781427539386658938508646251891306738083769454898619209252371986256512317257829692202045540563401773547925080216256658677847715023204814900271856851153990882224080473596358365376188856946679725327284376423816609283580994843460372863547809060962549547880507824850499141148253798475728867388675347129297262111506014188319712771847234877314930040464272520780626246878536441543505324724559178663428936408696882063156368774749995136353894749594076265328049972129685743974577926634922582461167753134509299643900182374048841638704798452347082928794966507014707140273031072422263113741748109406000849714575752581781259530104081402838377711584861534822319762278659409531444150068643018642276759908111003767035284248143656324240232208774686210850475130855636957886047567654723839113279208483602817455506808676298087802308570197267342089202121731973381990364758941816782373220589845917251787152472756275546522985245780618706384473045891314032779301470129408644850695838593386705192446908396668095924910432584378578319688856394685599124530540648675096289862566242061475250251310030364538469583304028168130328947570503027444363238018748378329854541807443941117621713722378560389537888335334344179636620072439355890494662057941551374782878246674452323672105454392909634104691973927549138347853246001569532770587968495207334711945495375237350486544217659678729849036395149801363909825173038806614204946855587452339819430764407478183164756879576434309179772946672113754474705990437877687568539979896800556733568044555565056956998437515859735847398430546323415425110532789355334722204837566549721117591712445014017453811891858018947633741224154508039260014960703267874675683674998494655392264151545058317480604795168684724408526979026515588730947593407680963303846127820183721228311348354950327978783511960895568591370519830375737826494936695906293053241774505578125203699142362467452497480742258260008915196359268526639616044291167949584558273090060299301510728179809620060719408220448900825599721864762820785137621070432479089787614487312384763939877391450325324596184403079292415732274435132329994059493704931541799908197639993510918650850074659473928527596376190599223886592480281144254633643604790758259926896330902842415192778162834955478907636170334867161973795903013115698197255175952327235425291470671722161456703659160227051880368027515173896358271119262335394747453757960554633314964123193404490517365355948673603972302054971288146941722350972274701080789266177207679635712871318803696016892248839300720443707530515279198195123325808006239853711679232070473201597990427312721363542196248208910439491604288942555210423828372183303063307211164946551110822483856751765573618636112383553133609650834910167028587081916876229009840075849471030939220903343192008055441936604740910321588669008531297962232328981417402264044606901460174682792608247917281299479744906815276280018699129288279765793668259308363465041457477786259644874551275381350807305609359998876846950339609041731518419940642352048423846863449498822840688510796836223605405950582020052320641041392917257412376625124025273317252280886545141063117838516141715804630641942463440637227692232443571588386080272343916441161196640953716911620883149721685918386652029590304969987510434271105554809179697128222280777675040010653259335020933093050370667338615959574579644786635214633476233102151556255689250958020183756102099358948042253961420721794187400260085670882810043600309525786048687184530116422254703494838664597697544335110190905637044577413583771937961556150501929865346360863858367494829610851751436297849283242338359865959654811967647306015266444457511788791350858756417401187220329260159322977292301444715245815770124430235255901543519189128572076349665926660533897893180313323555338925498163027816833476049451893227733249244495293012794133402027169099122035172572311885428607945281877924328376660527283189684395039589022630483641167004673576778559821337847590947907867610289404551891139752416926563045008230447104054511351079259107949715398532312386106345557100808146796554443009419953195115117677497653620853924893572527037259312202785311551605902502803938465289571510345972542275564917216190875639030765516525504922822861915570454269669052698256957067321338057157508657240165686850176584428053254107913378976203369979182152567250822523088895799170736710758435444348176380358285224274486942285766010478801530129903691423129913252695329643554185020685978341182426705433241041756025006185616343706942181589967821467519842468074633547514355401784359973718520468113137695981806117153363724189801707389823052192741124401474351520577061108387180388046078584748389775790755631873535260133470980044146602204244527973741416114522667455340412629676159689834966305212720258361301599084830557941435648182940734049799017280476530943820393337588357852203684860726925625107619643756080545871481732541970710180544384774848031673788611503932799704538712784159079028522591736434861252113228088275681932190440931763489223107654194281407445447965754298694439774355891790183753748482339712946747104626688524596108652806250209837726426115819223769102098573237721819757893125361362657707792847079748011551963416328952375913828709199461449119856704764267045239174376311656468778126694166517693211653749849231083490701001326726399314404761259042045539545609352036415006066556088286172133519734638343790074528416897544496427009370259425081872967080375699418344197549451579788925736071863037316831101040733307713935430122468006008791810085957146155203617688783895893673403740121924599517795044602666681753057491336710560095801730212823381587601581157888855093136403147369263402732761895807116801159025258747211373888500282432611034242405306382586226215733107313112455120061896677264675829840611586420016042460956681610760786838564325802129380223465233805239427821641827347606858611363742860994416569381540176661054457075154773770807751867374589321650885429659396254784299147506669618197077772892847427681251651220031401030160031891539019374063183515800733883454251038324999511276212694607371046094629287923703014539553629775396715003930510423471240146276827693006168144074907504469852392563402420176057743823254544927408834464218672999116580234260895783561284210540570930147365123028750143998335103093305022091277015738268777199361786938128942777924956308513326116111690469302975331729316630822407473797525393771048031394900421025384478374564195993906942509226518309108705698387269644031001775198714529232899832088514528508944963884525050617328644349090000369712472061809497106933294222594401550509570059035071337263154966294288143582295125063835129289458504313062087088836522063933513348447514661705574121273894388906051905902326381875272045581982248437972821476048041868633924464916096631398960016528020081004332314853711858240372385316655856408318609512810013525692014518001380795194697614947108997038671185861886766733125447517582750129847543812158355044471348379449631033095816378476488316914753910835307854981764194309050832440935069234193067516596028358405586652962893941564955901447358207548738256614598378320706552048961336902220974421775415793345448205777933632612915376614788353473092346133301893725634391491302728578602728851430047441370958517571077404880337522850875886626606547074831211194432624044908432775908369731845439356318161129850565726771596309774864718022735755321802280430275055972992872403412278441955427013112099510852738923399510223446493426573136511786171080163393327248701719351383652129927501081018272280556194798685740620025926901600900304646284367032819336798793870254598431448457396639925387626578981018436468271447602759556897692070501182349633923571728652690067345017979171619545378922631868190010746135083369696587522168615681808033047016666169264299864115781304415618368198672305320643228482960399950707958846969344175637592071795037931659666617476647253276741556897236564654000027625704564638185817783707054244527064530184311907444821137107181097625569472721946654561981174340618248043635218149254445892962521141690879222472596567846115160242246782738639045517582926041494380825289982987459514177544718160540823473950187242003192988064639983334120679757714076198584332260483890531427713563125558639861901907081160503724150729409930022326856048687811779876590713801572236742036253819030023007653893720930940569881393077769851192033187667079485780602095791984940551412368930547056899275207677582294271181084882077443631700535698622544618736060991549923101687522175424611347941800047681120801168578849588851595804396239202444310799594978613624417022568923452128479032786931746938201860500016028777076869849584827337107704857313119100285282995313017851341227168793944495879860082667072842040631269233739302833628290632948267460945330742251884330795988755037041378191567031993644793025769838072250788041251757552080676696292574275789710813781766709981667463130530084818987036710730933092026039737070036385327631873632760509203265100289445938928985874229976787426913826215605200864464454334658613431918638469169124362535697274687753568847648997949331767912495932680103633751029503119509125024015649966210130198757386169172057389975375442638345003402159522952505172455522238134104748274090294001499038078899706717627666639287770726663900037817715246527624969365709047184665526629479077441274211533855495576867045632300356700221627431459029631556931668808391152457769071622151608316530599850390274874763993958232810750704332696377958976389033121343441316664064272859764688449678477061248770459570416002451527308909574671398392735593859202547014487089490035867042756272341498689889372769766358161259691047241227609827905895913221414556257928266930088070627213737756130338823175071430566080466288236231557227648251138206303724005537351696391248790662587692320526100985193137933787949825588659621850057520705065625917415050353485238272575430219219589343549945609596698635293549337828628538972062746152943422123462064501400079232186984199363496717405072480560667186157165677668538088752001236320899461296742624550430831430053757956725845263344204846881712141175278707410229625259036575252687211458247062201491319350478597810912102229054969503641898851794233060349992222854720585106345170489895928377711243437127232109512059886701621997609875020787154376146625533340381810820495044847567931069814085350567512438035210183368454479675131651045112720491752600930031641541502922100992675991703139122534063098680000686969580374962303589308564567063074176279416624590185082005281607423677602266377468371978027478219108509949045215264747779261402313232988080583662459184225370627860314496747874572579674684924196128463681747390052081091225514078708506295351939613847897826672373039569802899468420025020987759230415497797874627986196653985407370466492948681682346580967713738756983864460212842629968742453231536943207468293519578037804949837482908555982534650152158938424993656663128904491681230483660595141013177363014399315012706006306846998963866239191614564438718118720851669427385522535731675997226540565498517231987643605242818236587128319635706990803781597731731296196394512682324999893584851095519859566922617486071929230257551903901857922157637189534892970635446264015235785989843969017902797903490486525719208049066478899238996308786106999300422153957702025706301127756086284031854123150549955060371730489621629921577709999908246640064147051669134266812660721103130262730080890434216881777147788936706769384548788225122496684032744268760461959548137830161402191017058224629699903129519464777157747776505320937724190242653315929767048362026550337940645170118112899879053712817487393632587041102089501893139275647798132468319748964413428047198081845673634199583395280897089425531133868070364952363342961367691564831442115452977907923370194737779039251072527160114233051240494735920974351023555963421853031520221888956281612171541991401528068128102447817544798056267930773752223095424386533247302927411015313088619991982805715856947339421577114079317331674751179213117429883523252161025080061698854433754576430526861315827541114700162900970901319589368369572871597413324919059124769854972403663228560844807572484631726970218587381790379823950471661593555259853311824683933583093651074164927267606052100197747807029973531600481887992538811037256596287391762756078855660896994372051629030731297652519445845760552985626728272354387706395039398259231745553479605336562375642541349434103300819537196200462301880429821275734359269597746063085555596851414493144771992182549050960898202259298406210330621602390547776196576917952544520370993837545140660837291870160691046299452531576859588358274854527948004575630300634380465290414547872230875741943089306358611496637697003572978685917895796216350293824174534572168326054296937925853091177395470274044572267300555994774637463001616431229111261316766957169238010679686051089160726256377413282878527057185395000956108191087818389936402733728039156151209026616515420137024551520129391953057119799448264759848336075267237960511023805435774748022246334351760524392837451576512726276518158291608437287829511453063373407231829419079635885782342831931187102568340633012003794033276497376953872521984903485229882390618748566140968602460012289432145725821227206215545582381939277882835714878899044871186918263423041068697422395532348248654605653433340933837868764808890503214297627006674653416949986117233292276227960649513671438580201075465701618438117105019873152797538319107527799019004656921586540300664006652978012277141920919082801490506537178396353750129724305426193825666830923423755185665699608584143124707259452879025179412967392007892212357870256874127804527563527027772069590508927509851849227802200237593229926632201060394527446571350832041574277810157469987258729601891945544397766115429892578399346859123047668175255374871859230316203466141759685929445500136465941053463411522637520687951068667991660177647360176935173376757112952845048784642173973860168720926824739552316296543896506451167177581766552822956561183123652980975279751116933640299271064213516081359227645452553694330615108206649872695840946226607622328513420096986933231940641361470382866877032390148771427529416663429527381950112120056172375837624978288614544959896540073636632251369384286734836657694158564174101267849991969649272350364710708606530956687443553108410979437835867781079324760099093445543676699624253714534734706193303446197527860696941911522994763815492903394907045895987438810325420726983415862222710133259352154237047660240948455754902266931844418954111723975952264425422694019744927790834288354181405816496800967859100874022771710742020503091009338665955269988765218746772833619961524408718960303413782776732020080819359114518523894423961660241957847596730016200956197725720785399480278685985184929841575349904146076682080658762523929171243255823425134030543401704537850085684762863150893490305182577165852468860302450230287584567391095779671194696351366024706636565425634491403538533870100107627591319267121722738632801889092017989565383014395591940612235618098758280489437096114439094034374208870720952238142644594648325187389183444360505956951574986563715649014622086821480512586772199736802041758364295176240974652285594931538901202011073176724605802898007580392520548213954127572139064366314438917570497523711147585641565180454371135069783651083631440808259540140260301940269600703516971650325183000552314147274636157376705227736101528382290629815564964608394071062090092158923993273407714484091006808454590748375097921754950354592496025425937666223831628531929379461906877595959815140262185908366209106121864536240749833572011614143941364185580569923345786968043827631680741992783731702182839291426907506350911810466478080911611733999334081978932864149604837519258427866463445684732451705415519132988004290545939466687228662727432867870814730005117794690937914569183646494854060317341526556321899023909812926154165478051225413294367206278281837024862988168529695384445568405849140483555177700533309298752842788843218630053008734926933902826103850665151677704920043200445860470926165971981312991540131125071143920564253500668903751958392276650440840496493593680407280840212219306827730330787496842193136572866464435209362567261474694782288678502328796080647576614035373064771095477084477521123708978187060614778100880448888455452515196279796359145898866859155895634022976864753392433343953891238471613083466494253735083400585726829365583258394094151800564005490730463870182763314186122479919996823028137151949000831654022480539461915503360011288915711097412827830541369444406457304572573654926081917055675346431434035016825041054596123414226981976083365137881074745628757824149779281988380014186939458450055264445351264242386723923872527484656227471020259782114630925114404377844862018221713594265350755412842774339710883403087881016150023690856492634127038283004907898830399468383414671763696250907803731192979175206073066674921704644618498140823966570003938293167425039181728288647666465772425684598660964603205801708378000290677526560815045973754063335186491590116877950234125673611987777650166674058857549324020561073401940334870784500859634579343801417621057509748580786567166897559214174166711814049108449995994225060790622167392937338332561133157703933772294739765905665672201095771051379045703919634152010118309843695892673497028387413446201608857562131490552602230253591993616460915781778792243295951295856154564316485521129251112005552039809813535490440365691369881338912259226656513217693039474460930055512722486749632744733691117954571180045194490406263875509173082330123067593425236697132936683945702657023258035833964206941413499637949856113756997163336093668757964445016016151106323300554460248354075735012155011550200222196133916011081358872140226747575462818954287665862110703385189087931053360341896774601433376545820539703017000226796996621523733808376132581284345476121969850025874120316110098382090439468369693011503824178808534325276610508772233806840171173284415618291725320208682815304393404463438415022915952033758842624699104178521500618250009137150972822316826514108132359310429526993575603347721878469039931559874656120403350106262124789481334098529572526274488594856073131615708202009656775497855360619239918039979857481413492239979872813240531818573735746176274899965524864147532135636744442308624621896148250617706452531090488016543572998365937455832224171703428563405188626196026399629100158821039203813599403410759169825302242370132916684202306385592103198004242515211456937956298863979838787784449141801795509355422515164479135089873963433152210802779868708814321439501569682257295131756095268904483961323588682857548514542928842334083292923072834040296407332299268884009761765594707304628322481686488789893538527098921284012551000478758127588644267477571595897263331791655808514593282906913094760476462398104998804404898306818763817238472984925347683297235041983029350534491335980070419425753272905156554849247601876684511640614084608997771838132919173535137183862184647625754167423244571688041488042699421487536296702831818504687553069083186914415839473862174176191060442323568535620301087949226766874681805954367417210532418663563716110133811086920476488051457023731333159688120091914573890641196519222773243630132229812068272698656223276670623518440352825965759761421553918367265556343393063642308973610472016935116149173706195750478748318790911106863148245813583551985676345734574007742356572702023536179939798395733352693695526679203297872366944254666922609687247665559598054345412817054865202818672369990976941497014681463452016488179641360498742292687995902641261789532111537093218227402198534984418389456542677274795223386197089969481668026032422364101471839192030576583964658465395341609883722268102353625858998475034172704815136048555434022937370194736819970041647792238390908030761600779793290060818196093378525434343034160642379717267549454158210613580852887468810748349080007403778604533998064763014159736397240013035498016759246193425569698862090755991505629915228045261983492565577789255731075733532409460646596632065581341570168947083079304005079580165034981330951400838337068986880043621998959552568608771375044887381674129590605605564903591983358499438095235597714141303109408109954891463773187885328798658993470573958780879248452405136679666119248635212078972337129414686498252340805556018827895552364044176259831070260472352244203383736209478468199744830885074582223004263732689465059739934530958692657815019755444209799369129245423058193124283888569843358127753554229735001921908705217077684049497940079914739052502027797642159388257401375484146277563012473400976141577983273268433886138689640023484853810155918316510463520384285014102447068690920716944285642559696089812756554849447287819444089197037444749527006367401985525140817647500677762246022770912361314849246085157451062157493861791956906062776821239534237320864622500862962503410940260356411291858157053971597099532671368353946667399409283638603402056633533750348314153172893032117352432252886567038080340399303750089512285031210023327891925675447265498953040556122042626183768161992607840277437459517060344088367916784274328323024708060714951813884061140241788181782696228832786190161732966752323152296168809781068211583138524664605420118628851818617558516399738114659032332437426263292156246967444561304777638098102197174570490934240782236590319994333650159100952622558366170387343869350836398943093951510310804761240893800552502438176615822902982196688241902526806125789510952329234243876324391106468225973291651383763527330958670843047782822868236284063484377360667236694722842989964099350205574296480704505484705966353410930154883543163300129442293448081860093482573015036743384590656561497501492097870976793551898444692417909316230672260358900936974854303430178987330464570190893169269589179550305461085002371045579809276707060780522633869210076857255588721607390989604541527370071904319297528375581809244558396528390032845269011931485900790372805952490276233670539998465934824880567784922219232021471983345938008712480193167679975125301023752196123891563055884352804510680046249884858853316842058843551339323509807218965920931426715118086563602345078575920779892257324614274962790768282507590341265910656122975695170901778051228733875579757888265971848719791764478304247415448705261898636187499501189261195848942627963998377800609611346887827020177067606612955370730874774030921357843488131984269596708433939079360630582966198004013473668524611738763554718633500440558293833711378135943864857508766524858093621067979868079239787943773832011863872416726510003642496658370309775159443897621667247335333558100056982239239906698010632994167282954064416560438018154987186243502336199568681135645656868198524271884891508973340721790995767073863199742921418998655270309926811524353703880180145706646791457707411703265060716719568331422494698974048889716034725222660864039177985435062290122741027460570799324860044606280732856235969734119814929091354960427172897923621691242567600341403657028629525783424047528801487967256153410893632831273602222825877035916402040824613541640910683525399271648879681872491118336544738387231081816080456536931179145221173360564239200625285910327216633440126022573448278303416698362467217226344077333985790645262069929072003812959274380592476140957461400170880877608582379279272375050528319005714872940647497485496438228792387144202268705718694793576309499444390983739153370893138839240774411413470984046860461235104828337799333843579742074286167169963228585485299917910933481451571293924616897956933990680856525802624603516605433839692882415337290530578599499773584455480539871837013017579678207557249699818690243850875074860395017491722182997671307421425607746516448331845328198492647140346672351751084313827734148422866674177743243951702314125785210184732970163731808954729462855378269985583128340470482100118264632404832031154470441444996468918903631037933454327272476193196816629395070976464175184943513477958853706037287694967694333365938707861974985892783851591828272028368113701890949111455872450710017440971603934389346191636803822587477066839348673452022181876572147485102936868398312619620199316072002161377840273155909555894977878154448152610806773192890304407876316989966362090004007102163472346972522095700291552874339529107889731162270755504200793913535515187178259898488045318231021725722247841868287478958623729553268901090577959847619856609525529858227229637311759560147058437786065797385814684538888044087320342186431266805982728816150900763867362111417470428297982887913524350596295347365806687454680902020640329087529073848678677645625833088299547803390739343223229016883876539024438418694284626258367232019007262799507845261179034041648544948152114938288722338568584153124418718758117791932279533314426109239781185343945480430794743600875592990381348214441933860605199935191927792225103423722764240542703863067325103785340514179076197078453066530146177511900668402739968675528368300300028122723258840930628370573476888964574389331143333893324795722941935553569891017735334151055152366403984126102716864933498380544665091962530752348889315039771542729140658501155359618783603912700510520887983985878472984390670833175718016402839043512528600986114179175485868760767147429533376661871545635628771042028775220011481830758904213155534551997420839383358555028154297347771351466545099872561817960233773885253606065214393594558934805148455075034389471644867911411641333273521806632152635331907297250371180424282989483681543324065058117614155707136246789413130956057445386544322884234574283726414991672093213020035636022264473529515048509724550316545896068328336267532431336387474558491598074042334266230288690517003281950773227445272189022262458536026233389870359605990081578005253941718949387242581415412271344026882982792690739204156264270171941143313871256873586693135243258313531329489546422326443393785809384928579287307933227140107139172999744951484808390329153439739136112099344042374844480821634239793161233793802804068790109825321951930159464616260806616227339378936330040362070720435346458881691450625389051323563367359372574605678819134160037769664190779050978384151879581163934562713087416867899190195887437364167237250347652905747375444921500013710768576766575708736991824213824841980359390069442583185411754457215215934257684811356060559011812463678423126203138573614701930997339330892500953829602008774877642188038812112097025283675975736875211167128625480180092428601282178145114685657488771808610612377518968147379531099661654177017520398776943117939907715946383521895517200656864364754762945660868754898689258673751640220056036252961458975130491244718490225525154337718802610280357330543341344595188547382523827742806804615385698409770576767397977975484641510180085915156494513474133288790611791942941949249971184870479341559901784723210268863411851177782734880041774169453461395752681534572632711259182309813584133352685613077071552072105535435916807149117500053226526842913755043062762867681928240763786702094684477927561163473489288843612425832954700411900806837567323969010892338412250338541789879667077269669143724995266371574618560755427563555065050848607430524655157623170751966606978256361645801517176222693488722382040648077850443843291323030723810369377705060465726016019407113086319373418296756151488153713495522135194354660618096496259838003455838643143290375829915868581565329528538398461283128548551035990712409353021214064369952917268964507744041450628711603354514105967979722690385562198077077072405289396445639078393240495977412719987623870975096319529848209172845414083511674635421568155848271970964232480943416544550667207785121061770645957789255858837530208859763163942456536550297774465666822016483423363178770269146332137863427401583620096959599126269601772225103456872799407217919885642886425782752349837702179204291234849710243414852580960362032896858012255974479552337173490816314940124500373766954150691705247097059232815200097834996397788233386020033508941670847849072729963996116406795403639172023988821273244707932938402696597349352828714459429000797478557148524398827036779971224751217581879829047801449204434173462347198988652907337529973865630887244950455278787046568502113356761142551210267574289609694439411669008325660542201799562107473266952688264046499735895122937196775205227690756360698898609440311628803270454221421651247705054505146846342401436975576721490170704188331245986662316827379792183189988281916684733759143575492398511894973948228573045907779054248245158670706025202249265425526024499014337638396318773808243174975526783759451437242728236185788889343348908403611972652091703392273031669735549654264434870016299337349081056095339331269536697450349959039379419477254790255107442178643166101044353722065231995017927904179627577581303425742348298247433703887569141958970013317273032999565789292216331367067930530803290106303757977183018860355976907618732571356088719350820279957485818002885068603943796485929583008687151323870450761845825983327940082758219797287495048274845436272305585973941875216891576426518676549143943710393648541621840710890722326882804702160143434903395105478410497311399969962638300916699377130583824299459369194659785804764673270544517575105509472234036047517189308212547683443665334496005444156859615657031636445097290566209191410089842881056546959569571086962003951393721397112248972413895993690020984267826874713514253238648315044521203593149243415332018379120025930136961874352380383417033235759251753390179538193527506063703935666591919988831906247793737230953464526122145605966829809573431409412898796760331039630912206284093857225380343581469690875859265072223637489335931529886108132811578833497584468877318605911117350097144851796568109247330215346925811722853945085033769197143812313912502541049506691474936739432441258530809084492645759943360078335885511819930434585414233324433377691378334750318235641868623616818222439155285930628918929251940051967675805397444907214814612787209444944222912203289651538651980835496284946565998708537408969229068819698688859955519756631055159890031362514489421156890936220752510525347913918917198098782291454393137490185377344979472336023059157950602864140708911531872623929172176548328995576237015722650805445442058607368500119946462467005861859012956530543968863886950215657634500778175420318566474732785865022151501890563116715754953627986180240194704420524938814587088568171708721807830717463613327694295999649226049962509606407352189145394961736351357830900922994784645240052644633867527071100417729128615956185377390094040923310549747281259303920402271282133303073832572024889020767659146716381433056137869640489218482870428855597504790679573584900167662462050120318378876349900661537524650976182591995776962395344876716176717701949587928250154547382360837560924030537286452936144325600129246661680071591899339429036451749856770326389932108290233935147437555573496220661555789726468261460691636953989943195883915099562664124896215533435367691423531418493694316663514380665111691185271589568003878615969899201126052648390044397030641698391928649872193611973971306065855090589778259327081679529867464715818632545123881976081618466121493637286310701260555948676786567338666107217889866872640292581510576142583615440036416183998388939803754030554250269702272673389095368072281060883879835168689454078153540782498610002610188932480825446656311800794609354454969516076796676122179086912029397288555474527875099141729890687835328489034454025888929871826013890979806192551756985282851782564416315758454103559208741672908860396266593551296307805502629027300821577442634571498288179885499724181617175614434145138708769629754076276672022831870681398734344805498803578974996593243075396236880813284212110356272793866809531304958137898920486825178658067016707697092961934120006514850477643826547345467369219961818199730453368948088959504250588979909311141919610566447630234858114397746055501992625764020521115777540939646645180559376519029480119652650140263180018459631064828858852147015345933186198336807205655043731519241312750424740746475886435093955432182201115286317803758119917163425319834340620358734609353590877360274899117011588617709154073430357111764018103494998520955110880037932028211718357417564736507744768775000949727728393817140132527430874365938271644272718067863504677920042249377870724188092208626786300320628989768882651159112895569901406311898666919433007595071442340723943144428245612375011376327352013870550901514278583130789186637840994544865926252258163191271199409310914189603409291345964899625440283945123910441338040717081788133367104833665105043173547045673130425926127277018629159615610460663631050241522090982873933141382466216256414305734182227256299231828811168863828193124734065568536131449674894358488871133002086581063424482892267212215442102169475490753098915092266269762569443994598955147786080343249424039926978255159523064539552551452885369320017175488684475256339958985093838527762936769379512713275909705974870249030033858275849787181454139002012577594104390423116853011223577409229168749197879808271630465964311087225657727954982691488297494363860405901631060712923383175400047389419187582777658389133994835142453943738757042941881192791408374599958035974367014125843520747334593975848357952553491032886185607490854469417799071173436775420923583330311562178355241090551446177240475609163989152521586579889880802353494816282114383137570257498484240842280805599872910041083715322396032576698577731561922290348369051200919484702594197567347285236307157635004011617164829671752461114717213007761013835655031399968541146630175714101498231524417547901624614319392250724668478272320511849220206740533950550204756219993358579834853454172059825913432708475960644333573319212380873450375213214716211590833002149672699551439320587976298779161827349789794360735639255328911043672897608886278682186479067863439957947310010410821436798580079800868625783782825795465059877562183686679396232865717818333642746498837033453656218345077058271328450749895506045924987619458271880317140454268428992109836659284507458378296571426129829223697283078946978208415952827721369522387001097301888715557265483088822276361905853805526199807152526693104791540577411997541870879300015593742504970533354351599530977595430760811323043255482820431729625354029167039980445098951853274352493424709865634990483973697926405072361029966113580661519323672694024536282596257930987685334436429167262918539619095107796110670809330301675246487114644814776836672067276850261606468143794427554646185430562152831043901935145433859253102418711068583007380326121311086559660221215368831883369304152114091000663385695166343306541279226590178681259868204824838703402731836843083984603532851973641912481125917811517536629829212561963333223070229536791092327046553336083578573642194098090162543450641055618161334422598988764274851897886798541177444719020513812666411306875259878073867687155141397651601648095422454727606118723933771392612609930139792984186331434512295004117074294085249488435909930494623983877363480684331130724874583370847215427336992548136447453506649215934641178755803491798875395535014572140434354797656444386122990763041885641252283582740208648800682357046990101083203987500013290084666287680970923836374725563229108399564791135616536955615457245454003706303692869090412063298420282335692015484134049289765408791893049268272934461246319860008289852581300508956489089917879613050457911210588880703818139411253728605830803024926187806971989538141739348140412756953717085934898565186135478366062923487109916487041115027908688536818814907212901892194821548637186634910945336905943034040945498720829900219578306473377711002202435037798998033168034418576665650929953454629593859847031954084151383215307735930962829632377415098255577276572944653134353830422988738695876291767900494415683131926539098192390840665303569819147907056208992249729531043895233218264936820550358735949502508507316300948164759761604242435908081784981057683062937064437250949025342389314638929649648159108070341344491774658028686659962188254645978406385032867044628975801891302632643771882083252586456234844114442277374213087954439987219810998933989790975122100627429698942047301813213103118485358155836818473969817954838658286226227458176035636787792867219741855430690762365501565861333804781494712377334763869906155054446927960357294613739604065045589344833378430901562660729487847557053258316450582028531926207164719818606141005690094680506328041649118799294930553058993390360058865887401601657746617137109844106951964742695896599755388129628396004511207873657755059583721916514041281551276423013025346592647345143095902694306522118664580429017415487342420323280951502368897861896612887632790150111387368622013460461270058986076573974880175000548104594508315665676544239836958506566601588659557711898593844946511150961258560690370792853070022303080050449036016869865734576967110144266555805110523141085572500868406600186367754100672102830873437777649376598585880404619282258730576402724681651237267181496564905137023604694951489948639481759507653961198377603909515101325670929565472326503624914960661481700042088198412571633174232358474712469768349763494175062473985607575873075518916447600192197347971702122865773630621940316778509107728707275505699459831391386336837252450735341132683311499582901340112153109278749089583053310027125344062851844034469756541505292522631696074774344642407245618731775238143448778144812221323264212525427931107961778083307292145849724122647004035363059235239204588142121519093963243518827193869563271385312891354395774782775281503703284742616616241552050614625322802301457422036735798068269128541654545902430979099039060265199785622340319840639550071359701613736193606323661224448168684023759869317614006057501920983373294673025838268202479363776916340975896465593986989278407680859853081850824897603652000677928508089924674484295369155663093214650780589924776082473728201841578132122911219041084071050673990453349203764303464800973325553981201668062712912787975188900733817938723660979246197362805471731833622962638870651867061894878810743022926668637197492205329838065219649309673482575295113385976621911041114055271672391093173138611931014699832593255541663771432967322416788106035479798732670496568610459210195577978703156756317804497368067400747434256283980816153463752021260574113434370750427298571375824016185692605125466980667016978192270404019995454300707699779864264414906887167484105454343755458015048677808391861664325881851737159077827334312830187617799343326844793962878841995397653704639369325456730751309563935962877532476783157244182221235609452889554924350159824603227181300144439618757900658727061571801363681747520535208621284100614623687568975813390320856432875900247484243446196441498820860026222671606344742933897909133845848409610791769798877415107125499497813047434118290286444904981775986045420475872563290560044484432365530784424800558914203039744853970243952889861606935597975909631561954375531861882956212227798923865150419968276386231398516375997372823196283898496189256254756986205950885975410212542178215801460482750944254073551824569692677997439663350989046268725692168182123193874908854100668651171721241970821899567765119522998326113491367603220712042639131396366539034831503279166534346781872690795038190995734437450784804937491363958336071798248479949001867377310436672727245156076040163931054427307313586989351601473677803094037456886497504572497387975259376840944076370857575436888077045401024268776929929091336174529586404779874317114415362786378052001853158966464247314621117200000963222795661257782547700144784785824476120305562718079059832375157934101197121309735401381815021449023431913478593076566273807653349492070422837546800165804298429326309304354490977949727741239425877599960660141629341051453198947376564924944839736082201183880399788179754666271106465515311347190339033979886163942423765791910876941658280134132029079860609058911941219307197655911629738217381254593404793924268847435856394132471670554193247632085213248405313869278020708257941198167369235942271551164503022381475582157031188260976594963664491297819875094527015018334113932623456901960803188040278655637633644710711224103920600448984292758849771905998548043340694131111669776880656261585514779839758809079492255839255142386985677044550033624023880730343123083294432341836279557030408429359292541740318482569284900660055185980036362044164870415302636646753830745418713265059457149205677356470328627472992701347187598622760240601035395019730746543793642378463415613394074633698468785697356636297517031970468348983690328245674556582597973424890010613779992936199866368909934544336122685600377346327337109938129605619764348201965867513107915550490100097501526870148029969481576679823819606569895707371513947791015993523703923659440954498963848725209487089316637543510010840308679645577245159493795570562186626048701135821045264925209404857062839397603314938940667654163841788093935608867730397105618758426818732138338120499784051143343682574332632211187094760571822792804001352484344021445661308970761822014800265834823788719894750287403076505368044686110756807634932702644026845766895607078171856405924756365608250718957060870957280996186755964812557125987361156332320759817173537602076727354704431758802747133455326834580278822660654976113966368538083329351677701823070115791878094503448676052145792758595725176602554252007098061455938981602749044199843736425836436870596199222799465081066956485353682069519802074978446777338533439760788669429940338218906273131112642339225406074727228963382064238519652015991686633111901342852002678642606087609580803357376780345780788652844912491298660631995577771113710970994317531248602307251731880245553999915488047372571712426248651284830371271898464365491420640295272221665423802507004957546699960197125045715384946045855622626657014782257740916884693782148054164600976288294091536810026428044083936846873983596853876634743553770975608498049309415247499071743424711336429959813956031720306075459175475141367136447565054732433803686700877288723920672266537724618647148203002746590527945666805863373703005400402094166598003932025118342408795559107417451061580584380474966268937157438633521675076148538012473828930389415212487651386203663975943745830562142950577586625344191097031788213103078254059949838183341190317164954849557189158723884869693439120656395344310056533289415434530361660652902672685600529472671136296340638646425726876109861802666803486801159065144177997216232730126955610694021264600724046732021574603040497835425591618992105608623772281042254652151541959999517374182816477489878567695512298405576521817976102573269686323937843036658041655408122299005268136387034014033834355880165235028258588897871167584580148293723366452458263229655231616333546075484532464426363447437470808156975191764817443923862512043252373876962785372273192832538269058430155748727236499773694343249809778087722993167576842184782797821315243631347967284083692795664361193390599341800631500356499858082106774990615483956576606112238508690497921454800992638371548180062465671105590663724012595072222776282948583710285606967319663163838331965829255876621866648005060783348240369031114665977770498709355457883683699951226849352639306678800146806011874052231737565362793657988713218700190882095030725226778335092857460054140383371540138240545008878713689124908431180020811064096560155367340244667272122119958876774105183322007386506001160298278119233430036508306287451703542586196570220561907236207225169221542675284808357553372197195893148164556111429244753478434699074695404084027458553049374347625690903284380232056397683426339671983457674407150889285467061058828969661963571445371350000496569104341850969478118397579546987790214920275666114661909642155262438604699350182543971801046584751664239994222188137975084750661062996150347150704014053641115574712494305493658729582914774546283360996724707718703172216780716497016076202030696308266164306794983507343303070057947754650987106979254231340779929282906317051125281839571299725612505375193318127162341028047149163331670823952251525595734688910900791377583155407212350653428661273283090151377126888652112704896939475002866416294718538686611005905657930290817139616048633541586648913450189469335405988819680017369907764578749705939435235761715127178929734209659266521223620540540418503845123188066685851868409821797604481078908428208092498666437407756569750316095280178271617130321434451447800904422032569621485634320054154060418489066220816283583298800321295547388629826202590919779775665527846982524574925203210484977735854221586971622611794292190165010368739479316360045674120938439606120463785276210387139748822618805523497851696590620233546870908111214075314714960737990875247707844544835467646670315392784436015637657921082339771444036221856357415280982090836480988803659473442578755515650404211083762022668169269579198011075874046007304930526053641410637859235199332487872267658852611307763249330890134683381889503251643877873167664890855233079503234612270360532207762604506497079697580413515305524674333138717043422361100951756175858708990480161915134675951709754732999806587078399383570545234587122919601226192687187211808687262683863106291576043092148714549085713962981173687898835666840016770864855133554573771361903188721625800447638998461570473325228093137199872899056121016015121620435350062523209422591594983347759586539441356545449238660864355385530490033031995340530297716444192879088565879884431903219076886373298658586942217224061671581769321479335116934770169746231704945338879830439273796102703741649653921190628333017486143093577222555325614932001025894063853812544852704061450204266147533509160766679069468702337536682165088809133168700080380436136210486950616164434964289664491509360589494055565125030631927085600039300437247579824460650402430295248583873080948068152503118780643465215715199563484641673209373885890331507861939621656298349700827437401648053381401702630819800626574414320451792522498179469912514720629369360573348253875493890841735392012206453827779606115624470738559313772940470436899156090564611402718985333961734912902482768458880469495094347709468561427322694587672854664036694615332978198559266450907018393198413084777823482659440622990460472746550165104941648131226205514342180553436107961002708986744307215349347035869152527396871573201578166326200386744907114116652658437729203186803401354604298419009885467080715678676182993007297867898781749397245178980241837456349068797436272164584470402894997238909505888161824070730769361596178624437426032104131640456148826949231907112500134431289903919657953506044524689415844800568230060822527627414632013622646053412094372966941270288716844747573788755797051038961791630511125888447106080188897695235529660411827006206239752847350923794576699274326730611632984350466949755624533250520452130237622388998195503044333319575390251342129229887941087595540629880156672189595211041704507327142096602797703173278595958828481176629287165654388306388553269239982062947646956852837454182200959295360311331715206981042280272814191623207671375008259397831980689998101219710279944815195244270400089228671368695137008126491083404739827299541311701285551821343730565171256306610810412982457254204037964327780474881965619175628978350036953236427777279103123176339801813601990762599132028073939151585494890232055413385486571740153432163344108878866391834298089412717850540888302140395907869646279797592850617095979784731007604646701671263559083249076552704904309426954656788127309369393853221478113544754344366122005770118765520591496023634703987376916491723931070443498271892283065302786907234495216712535764678140789074175433099739772494468369182304950358308283906009665809387209377967984014685364592505505987060232106125573631946653212849950810281288228777167910700163994240794623902496330469540400581873284663389848698495824750693347794158376342705190972863483609254308175276052333038837004467625330163146825032766756035368469973241648172801766100045130708683030431432855963993749566704940953688340840168232440797878330498461902194126698510081420891033259557195441988635982211101992220058313354417138142749141255930179448430538486946149780676664347375305591085710616321384590807013975128712284212172340551484083759554804727420670324047557705526002185987048110462534909390211935476921065030967950149002153515644138157011100304950248701967930548391179512192689050144645516893657461860752750892778985378032250163370248776402766643545702048582027755876440212077259222741049278711817466572302025494797378802798826502518262829647649391961248270487318425134790752364165692309797140889479758623428961384880448338545729854285924579882830962212934182526735248297186401302741346143193545250948923068955751201360925072090913578871706150758027874761999364663889584390038398941493240053940965449193132347274695531139369855690339042947199597057725023964932354547081787192034801526281993031768731816608762586776679556322784033032466580606932743487194158006099028432638807989583733723434579273358479988154487312735478749241034851628899712428518642306465272488492342563857566932052679343979062595975104661850382914812374311744636386202591105878688138798298481260498323272782110540482849405379056431564665314208514451151951322731173055588652349650193319196060485021016645464355881319327408878958118499683575840815725710578651639923605687227774591027060881360887503669066536404294946825808244996443307623679920666550816231914484693288601970880903630688401647728842063315208972521336878815056587172462948515028114456302764033374114443929817974510729978914809803819173152834066369833008062333782737041387262860054523651223315903640473876706149850739676199629983241154338053733595740164043189826110225303478934137650545257475202570755291503503796792931020933476984329387554062093372328365213255000940250922718989608821583619647569314190793089969089349663758811598324360910799731725995491901706718874780750846411640935506580627998503944561732479859862426691966318563294194598007160250025333004437057920418743978994083161141636154442635885203013639424308461724228410777805914782147966146583631172103915936386072338840704025293028455537330468072489900384640960115892387586547307455763794944254081624079505532200326112925360311771394269950031785668407534349154871430411859451453331051062570317807758142834522540928233871493814310986535639852829811157473117184857180920174876645460853222929674541061123967718483815521170250383691687143050511169466494272057788620196179690608485151557578469368550319380361231949668469181439759340347813916714512322064248738256240095546868453766579378465649714584749672586795250607184986624747689033572876922275945175605574361604374079961777276604938131332893135712384259013609926045124890961227449323806643215981761348760789180484507750475443968059962702319940955772430928455562825841917964967285908237977946017439182333310880798017026518037976908658219554368479170299898480069344923153026278558100122573062902317036750809588541162480545329495828728891818756236329817130985256341853902814985137726341631217264435332804019431042901125785033248834110320190017848996308365175773809070537630023988714597396023980816601214794648663220228896329106088878631159558823561290358375952023043601771618327688383779111053268058191169744761362896589116945362653185945975805820726705292000938605128713052112148923389129224988843642703387861492235059747030866050783425563964311471833085995122265007671414558508719127950687410826535625126824706517629497018559838199768068958312384588860638306579873710844378611182919878667702732587726439719088318623092392273016541365359706634743247146162758934907099394502113185896598691812789445274678569267147044909006398341505696730885255454816235836366105760557236158673708576455066456554809603133464271940623740607321375159740663761594937276529517145957444000719020051819209364858755480959350468292813087814263750478111330290505419209552637933156308596795988428677160419750316647498814385155130440919420097707993132522714846429249418006151404096604797965709996130779717739660638755838632871421890364746138480058489549272822350426770897952402761640854976975929666635592306957424598139952900607855785748179171538807562662804192306053246782298585502059128397959378870695771366388389253427389349441126735832969918716558222639463023838165269555129428100498610656286545537227114586510958542667124089195071596987446094038443609492816582981015868157507796049042443899369278448057437445416924356256108972699961381383075917169705917536544998231069978526918756567783210347728941887183811823846648417063180895784073215260086440926003811631538661896755763857829391552378866069772759694146885972280825047301597220779557992950831806970634576616130048209406788575521469748018188758800039131099039024477505463221373730289990694701122509842399240366406811323965908083887274954163754202209188262191603343629987798693454982284499250160131538397897489117882656873577241317513373346581409207581166101296540353316567295889554330803958695670544005293802478229540574794317803832681606301952054270558064517293102139885578747468103992111825784707127295315325018534319382333572439944670603291927034108722165829578129550522997677300710471831411336527837099318005982420569614469157951641162473226414408492974166436931809330097054901488247820064730536511337810584857415072876326271199304862962528595390444978839998441079189327825636565088020716028811474263998847078029176562509857034020274300927703079460292986439193014710426197381547400725939500158554058880930988584977212043975212864290617800674711986733397240179493199708174947469559560462160761344852301049391639109538137456146106039937984459882748655011746167505688180693846055874711857074079908792866922276040881258691904063232886688605469368190332689364671010076585526493642169485915291057875718372406069619440108352432300429054998793688795151947737786857611698244199458335918271985868606653865815340945299714899684194522060149249500495705787566279461929667815592167274852066754048783904568234106079457426021727197956341389100855045605699230868480912602984005105674823798675370983727523660004593439280283783592672246410605832528238629731785339072262683225473687609382593342714525305193701342216681946725219345574637319936973858060996724175342184013365130751508954207317087618007102557397575646393584775615361414743194476889798096592978367656640083521340374871035462808282412954638648442519223272297116198940258558805756449282650264669133239277050787789687216445872328005638124484004233428456868362453327024802276707675548717777932812593652938947303688737715550610668579333311957100115593776433747899456162450148426385075255544354116186139594290857585084397842431061311672408863088075241720446660975317030027427134290705459933445870579310970671614499597708801858907339643072133489808870481839727527696379828619326482300661120023115736489877948169223326497160113146157752780166764726768838551154064558099965258839042252965899653814025953223145068548406724721215683406293357928128152224536784256111616442394345924867163972062638288537211124450859051731231855676858308432562523705174377180724743906857059578463890135193646004577508917928869425170471460476147399101261826566715662901609589128023678971216679021843067302565682917505824484955262949301331006591713959020126031303739159905442087988348597571774783288816121767160396536219670401466313682898068596194859651897091937379128527602287763250367122015806467311106574894390077213985566041169439809171964902608472272671183739584452705620402852187209241766673355387952992562007661444664425737882092793881684643462894993777083512746674526630948754453047880635982839383355019994681117383782763097012005074765343519354778185605345367948638689730273962090963626246764839162395578165625777318155232653987523373076134695800649913303580617722697787878510419861985522716230636045960432589714478898779712942571059352599075454384799542672958098385784950935015040776970837330439149969274324778258103012887514781622436410427456414100105320639308142568953331141323094560537285833944163239094698394145978635412959788254167028025194066805737072726234464566346140440986720459828308002489233203420014777523969495289904325264961493811326906882385215520762733099912603379226102608244481415273208936726558868699386386343607929395353740640669090565688063809336779464306864659166943776462964042939738586003101203744420320676558731939388075850031940023058570319103526469775696206950231723955456305374816204225086955236652799609872521153502818471567610981390970495976293055649709262504133927217685582186212237411386016637491986885043928588195073071413541072966833291057868335783807055123980739549274858064718254214469893548676819171215032531298797966773604617703701197406580792061899737544192406291322564106315197518784636755986268936286649467570785226143891579236439683801973673092038681452134746318423688454995954084294705370487696680467757425336948557641324611003700206633539136438051975299287898129905481108030286502918746317862770404151589092234728904485239954629656639768399583688414987916345672364128464496238201814221315718771416425480104619343877129762940134533664077057125779756233201281906087821477582751015815017863465336659777913151440026777967364429480573564019189732693651962500390041669278138112393936663678069125445054723687056094974027130391090082573605139503971189908318355640338643127269308308355671089276511479056108688884613503352533657430915143966532452833053444451365764927436480854866160468273983556723245127025202474676386275285563410470790272916528909449712773263107895138164082149952827925133069885666742833360387325895961686432452176496365250500946764203217327702172479802014632083735644301576566093188646661314588987328757385648440505874292810627561667704309176981459254535344979902594010400223384435647547200532738844563216052178564734840654937626588453082107755657974924285968412416074839985600133825081520518246564275595101932785087170017885322125033324580180902608451990217027677799540895163692649135854502379005844047427235439626938646036927292807067526578030728888530933322528252714582401793890249919103823285294502732204197282765987036024838536949479455716144367446573595239094104159935232733350079416649574818902960010825808540315876418465805300035923548701322225983412294331997869173288708112538504932752391715348871701740284694961207328042089036992897901710880929867016154728776192302340970236321321303373438337702598840042871854429225549076762602852254111764252700978213223849145504920934563422810624891122748392103955673571840168961254425337145130910230086195704897547267123326574395973704153004789201317745485956576147465254692897480500002585102889700612273641719611960604583225015043406564680007648449234869335768081058497392418626295100923131628735210461207493044007686090661547398520594178964368910076356289262421926380123992946579041012208285969076752179755355687201242242404637205947075097539770951747452020949322824305249285379966647103575635868742963272177535473083334734919233486108265717446233283636211401061753319073233822858648226242089223554455433333142788038711600270793910463384641781146920271164748135336700942629290974038570928829195935424379678528572760208184425356833497535694226990408641174486747233691203903179350812271850899823170831284317399763055581310619024775977424160566401891549634530834391224347906039169533769014075194454347958867562893180906399703895800347009475061876925271878211544731030788599134014377797086914685807937018801553650713389741260827653492284185892499825121819499273335574396324387316562040765932822461449440544822111126847643551596489665544895366233846067405586869916632937028726985467030688648894152196454857360134499584507197328032264700207718371007661913988700470996529593346000706129830833211783511573707171542890550777087670245141715747194868947177767698263770708460597943924815176498144106585477230838872940550030855877611446830918162972905971224103993433662742857513474617813636770909368760275310383164862975735393955380470449071808865172503229860202139875558682420579952921388885896210194964719275799626043104077462193916514470260911707955054216394795421288017109236261763150321465508754328794945558070658160761450378761049838394448827559957960727586402688991656944869136981619722240503185200859626273512767543214100361419884569362241990128468061525134066211732596095413258797323083259617467525533705720433953783998589490210505082504051526553042560943141369108692535925761569515598861657001978760649653008733484337159640123435614598078094500928926261873689599512127028464804650834598338258051122178948895838403969360298233434370583908162784585113794571106163147354869731789530557277710703271385316362271017327689370902352173796700937979676021356663609055130998235504578914986500591153778708631110867221767626174535195878078410674079943903831990899931474097166222322431505543740407677959667243872124282832997103723431665493781077362007973288401871813036410384980489099203267115145284564556882527870249019307283835875471601297222970335624010986889546615633865655037890433270232133672105858383276756258641190463060431936396784656990303518061638830185681056026499394739379306226550643939642715729399286816573310446348405592138909894636029580534183468857252235280878646580243220564040426430395607696993453677348242660040227306911431080286598058968243277980513282684040775707288274922010755271722151929855899172178765734066193946624944513595462215118743580540692078236154577683455414803987192813423149045864835709082793042615769956939056901775357156275569042407711084489472177193318583340487845207519091724819571106969058478937946150338919691464937396405675898023417221601602297628446716251470954082526889184800792104614550518194491457418990422371914446213346590396107011824939442161935045286212307341135635805650971791948686818780945938038967802317709872619906254483848856341705874626538559042800089084890029910804449343098911518044492945036070028702194388314115645955731240839143419234467485817008349068728707997003151192285009911017165553431465944778285906271183449531896110332357112653247353496679574377357375158786426533845072273937985999639262739701095021258266619961121524667116204974308609818396421434966589196912776839533604340762502173328224374437698591254065971299120155563105082155253719412156235645841022540486756079940145604317381055963664855043032616678858600987494354265475749135538155677564937340358381882662031325983913629130217815814590957965581666143727947630716587017341051454183469420002334773836455408534183854459605862107940931222711037795886093832513504097232295400662464368644939610041174184920423173727891013128532250623636071829989733899666643487150461748246545680719361499192756643727625114421369164224589162810381665191649833247899126640267010158931219951301910015187022313572473942330608104561425005480919940780856520694180198311476731975749197314179130680012697328311377504907066410182472075053186875796643412324978200433839936110872087531438156195930149714268417745808040601014503738491049608254669021971899697971817719028781091005366948291762972845064187003500014689090805959033102657863491436825834503448470336030942064577556169870496905657201545396176518080519939872540579733831571474756921731437335050975883270088633043537412746380448400832303764519209306319196574644581617176487775239741751788879610698035370592884702845282685751698957860294055891469682186246694996358896666219319578401756236478933431306490424184701692933142757698829857017266171697685673729570459135791542031783807139431438995763471088973434453638933912320371704058703169940418307701111971711809578154944004007331811590108223320057183459583800297890017626179747753613980219020949968438247575576753947832248786089523602340437297520773496342960129417507750265605685131499913033939592987634393737551139159495799926034563853309457614870204867264305985725580159198948245060985965416851420146025248100357362811278980019812733811916022233826389573422824060835988191458046598262118860861022292306151692583714508069248959464922024292014259825110829135730244781342057703810680521672692555337352863157203408162817083058083662868547104912789915308028038052143026015517043386865737179380028112208435037358686738433314577533134432607795240592865877628836990623082986587144710502505569541851091285603523589122590804228545771217551003434607350996906412024384870211752092377111215415357720786695179167481875033342780155874209537956227186117786715135349292248197544154592844606808432803917977932150047960174908501004333212875807925054950928182680981681428610685763643807793186306930257764249423595989611591790541811885885306598844247121833549148449620887430427998628189049658292514144251912463781609862272840087517056561347970042553037243717995774965555505955872036444191656416629444857685057122812252357648664950067291789779224708117346236877695730037947558694517135201564096834560506086299022855747828772623081090091726896792487101608016464641098742388578224254710779168860744305438276572094584761560323299100196942201929314422893431715299870844981661492838341126975452897978245506847218511171287108815413444359036133057042563975051753987399627976152305452160750536920805202500793247968098505192570318947579712141701188746220832709323364401567202019924635511801918576834957673278971813567523780101294250594666614432204114613453089464129240610599012329947031360491826230270465500241747217753289282356320215285644821917221554624234847377112434157929859392887895776767262774559738437186389101035031203650622852444397549063204049678396696907414729988448556699089938017359805433435707161735863054236055645454781696710529185763278289839888765605464836255603149440468316556440042789902982329447507983392798729984367506039116376173087934775667888651668459340667542378757416497194882329018834204480010666987040027674234140272623757691368989945089832798738641144594626757481369273487787404514825573170819907867132883527113522975231349171244988775695137758502782591817984114164150396529042029468704757764299922264475098176379143636105463884475016524169590936743260600089878091537621093467841048293088090444740555126352390435596077988352497503206031686183541282605709743701613329231459027130601148207891100987530774238236581072098152214511447286563452903721685831419159465301343240346102889901885726657173764976845751412749781109903536119240458533566468593394816968107304590878138571154436907754201246474870398386034324835776170404527456763710637726414428149363614035445508672167780502414071045885482622194845750228776730213124516076502308471270712024264301819875182390967202783419577465986452209799325277824661427726311400897520771002932306453333920599306570183471207617234033977273009873356060025829176881184368340477913810792599856190562326897119939448498225248297386522062239344775329162139303981118098109048008080270283714216436501555190300883524894076554445988943241359449941212950010137227753921868092419480405347932993499035375217344774474819549224903768258984715863069069842897082384580058203890962284294628760982754491415554659568250263631085787247079766413575304120761994421708391722346005367991955515545781262667323874961083728396132909785326593402615557676360734067276555009936593716073679102801562571860146549217752090589918154693975648993434658938237840198555088042122319711235908458476351046982916855532488089645358189686832671519315406040675820397688024819029980822490322906404759075919410910664392011460254658853301692381235903742647405431081210937744940294831251529268072219327811431938641685025513361178228057486525247215779658683821431072711245411609980966864959856725759090814859737629018285517581333013527543793176447812132385634212592070188821325431864113556511595435825890460585421249674978293516876640415336297644242935535224913393935543551822885766174099239400217595558573675043666675121473196482686495408776827326355325919570437870881920616186231951695791758989787512371000716438327812705688938055413756467134133590584095126350000726337241146607886555706853377803881156714109896186796193456455682509343852049700374788243436439716727468183591199208626382975392156525276890726053113988895710333487140705089291949918976898505814916855657009516048586896534592885180956365206082072499831608997506362026053902334302981424287498073485533285097218123149427167300861572522205633307569959317392883147669492205185324650548701373968265989787503312548585114878486096102655426396645380244477902891121445988486083842925755226424687839652224130567916644420526927697479342009654000125178737152107828983245303925769953308090462426475652100195842328983870641815694766232879638832439033607688576556587599425206992899895513660058985607594004653278862163022496972608536758342540415767307755759472800440369760792417789498092649492043749954156208749922747386287164726420530610014659386443065203830473481634205739447335060625407101734239604415859065423932509241388037405518091485784060825099302486102883523095228153907630826646754529262732031762274206946823968511956045683429078843823576969152718647949989731219580260940871642309119550434146853510694268815249068104230426327324693829557560163054303516489997383909124544466665682147434836270081145578739034289617910091145766588896527840605794493248016935039516053549739354640151648726584450941689291620465167969652991116607255193120831333691725919445731336554305438135384446536561092740871914048658895959354549801033812929850933198994101958531090251165424868947587429415611407989028239627752891932231924078269105679901069071524016619042522746711323009391678181114279402544996957266593626418924714118127432355018316649974359587768062003988238809302240958052931341104278878803970869946334143166434034610829953329164926894488035682053393498315077623550145482139271756911880233107742383139395809473286186093356261366870838806949637846501941716201124599329262224307278117816875718371996067397806570986560298106076987295243567202077842746150065479385099538908725933338143989023010667236056981034446462424709939470268221721876300673148549721944741967118274285188167901771516854271208502873905809751155062374328185284187617650889326146150044776992481055685049946381674744891949061718813147695189405851293149877684969047903230559315761014365710991045707428108027838547958917056190133542434233738886618005760711857033308770274109732352492498053150061749215249467828507281558754420548996116391303340994389124557381542175397528121698932466415976545895361855786105983515362744652779808110592849182580225341034934875449066203631851128606969168130861471450698022667103072873985485351937971277062258019788092935863799547052986462276262644577723646856408134207009223886699713888561776991921094146249938603527521960850149220659442497056057208217277266919509143823535781916273636274686945803246944234158425943320849984792121681871610667024222775018140775974396377437561980892620079728482035701028995919657018891782587387525719126957538542851292391753100074532353736226831987055925468093691342389866836949675817606072536091509353282137262493136891852583503256139718129944632577553953955177309495807340037866194885407436637607209451338636148686593802375223366577219124417690193404671150588981857871943753830341566943978524847502859433166832767886924290523775324994107712990216150440737441602048938517519595359680102212091569771907907276081154828466364810126841651244095969227070433335551220330394433317719547485260920007037310112909518602560807998284705539115787355225054420275418860661958413067366177854956529802097870783275704730236482509671782785976235766676874148948283188962182073704917396524406165634928724411238491419169368117425726572590611780434818582598279727390005823947374129021347271883977051696117910587735460176266190564251235950832255299783973466841620570591925300292515543287376480689711114417009115573439920760350818854870370273425248414922703164507044025879157956133234232012979835549400913206573963495436621715732342427300747578661405790469549658789765605492867204632122734760492614164010669196157095738418999804451488074453840179642828159472303873425922849338595185290556208050467381090415105557609215634847138078155924449306079233337167088714602269632352898678144502443515425781165294199343249323269854845606450114332006026954976676235060579906172432299741352479393976841818244844533382730167489942847540581432387914380192122157070019120167084464485999560159032357257137934213258199326615453960499164905399216713780542904955835642010675010140634918932168328695655493382295170108515252784040638186374463428810727573226550289940246897377014140105141853187199665167616682874499120612634079509487201112753854420704570085768224645474654770279320788942163630658795838924973756722649115118810080683887423774816915846430696929857705585914672228169425026217101007256772280236488264695051122481336611385411069658701199261945643067590622149257348975916145225264371813770153062847717281403850347649313351565356710428809787946922102083563879122523492408618396674778308713408925455472374775116685368180930473774523890786927609014813389225913201018783890631028217209225315117528046859832163698237889912454625489579704865236483436719187279614191344895458008273031104520817087051428813052322980933501745768584486976808601863723629654012575182694382924216177509246216093674527002149244324045613742792462158543674630691529425001586265660346906144749230024090967092017668294697362542387802528117432301540102940456368619720284322756578282712762446060699057276164479090698067558034657045692676779349109168034101123835146126843989534426008737596064237914370078746223107864087720058995995856906921531739250115076508186485705150300188364587409651943983797391032342598770169513918548479193641783285293661106608911506295696838789609202494186707346280561178477947446501232107932922261307673553745594717857140218079516222576094571475522416714959874208607631638929440100529315240287671143926438724871323124129971957489828234812976446233655859797890520833753772064461411358550603420987058713936670330147682749715826194361387386612816607670553052012073323023618607703422036142696741297251444599603393243995851221803807246132461011430987802953843246236275366847115080886596300960493509522213564176569025298642516494344917181825540969956069459039283945478114678703682590169243757237967901417850558481056614377048086975836405515311666470993820234084899606287004744528873788643902029165820972507050328800219904754267228031004767327822671535348086774348192656156062822174435411513005008940279964920981514584543745418064422243340218389294736611969391417777433679715233735273462623912628618013624222775081637793926549694007326715538622685669579429622127848036644934221946329133757301336078312206388398056928843613105184743353941174451241377020294332109174640777815663624297617742442256168561944972043680602445969793801840153389526267462528971345083987924535873857974013856806668551293602527632887814101743931393794737139860924370282046538458530001734533067779975615090944466288860126947554484061556911557215581009133588777395623563101609201099731088533582832292106986369885012625058396537991723672541464331129425361453638329091760249958490564275827479301755253050607394699261160290511749746312123967392321060753287537189301497687278650807528015129335731133911418476492960717113115172463957793423771825515764145515564100907430080552734566017406469388444513595445543917431176316419537871644934431615687827172633188848393001880236901414776737575247747958093905993427356020118601012040254874116933624135226630576945846561967788603004918722555657984790123387876902190950624192133700639980648230875577930226763919891816544970562364787621632014508475719653825260519250300711692474523692530380178421238182401535748352918381593804193136077554372649827964579717278980650842049433289003593962972844501226385063082389670677624266739508527874819671365067002808375033187034192256297650742403041034449222300113525901075618896978801943321977789370903724362000384443018995484447021079035519455623325063359676922052288870193061204476041530803865191619588025976492810475119005553521394581774375594092651757966590245694914693965116337513457329345666959362880788102577205207809998130710728762177801243135552290269628254587306527520718343978341081466945751234234979682425056489470108927365827259312625233432394075290281390327001174851247462109631457683965408333191081415875325045016197188075820177890989627692905851929637120666044276272055919258697241187854932630407931200367081933026982142041163444585645431212171539220717866285138349140349107145226002707058966487608231241836241169634573632967941449515471991561779271474033570362921097742693231170692440091019262595592724330552585118658709602635670420527426841941683645089005954944124042584025630728544439438064840838046967436688733865921332511946193171514443879269507444256822759442531405521291987761972041926762941632383721612754694905781117636515481823311183768311975403143610606099875085620461914596135456721354407609755598260259143507522325934311606401448680101544766733149603168784913126925294202157150493554990108258615502399027294409868018701747041158904571134284230251460415737775716555634201398647957016776951279603048968992394696802788217871681040047978672566842607922458184731809379081389024194919329036923438311616011029980956000831653689157112110741928813051315556467520860303240124346578502473037557060554761835403580017680281283276337357649977203729820347838626450390786721643116573109772989371056490083952043940900229309321467587746772128120137592050892535641791231715990095248332851663366278337039814856457253434628117198897325376932463405765104789969570937163048634302389899611520420757642963469026844292254675089056239344702171982180208684974688367140372012626378067207495214064569064486523494280182438961582202915516034775498739231890015485837232163905944458343329103145021496969300842368710492449913939744570496962590610598282998573085870777112665377067943642004060820577390675125320094954213614257789994148253094208255673173874999011116387687731564399514994796821006966722902644024629596747921133643023597743241732084735499421881008574505708400968297927345724461827242161958832719547572587005977647332298620850857600575283827145203767271240230991351985148186959388900615072366838808305239093709856198509934436132556042291929558160419945121475436198389636992206316722097910884159539674343289387772471419873540028827188763467542275509479671458434542640060466834770239649555741116192875199884261649671457172329548727654181732539209606820138902062190818001167954733223215196825260668548834405110509360800291616050643138566698722237268407455647301743620451603259102465896856900877571935316807933963861681748077082282187543000039823377306466495992246133868763255515432419373041381660501588966110106361745049631969171771520422924115227209204182352556065655740632452609415661617536338118850381667187272352369731311908263713381462825357249399379552763673697930126259554432685081195380384616922403587899019020631144849344302662867387472626490225389164288606051031421685430765996661905945227565795507783575215483787483929259215191430200687233737678376945115882204449906578452064424186355777525292766950496949387303153474435807957018286428987372724931674375748027971991152243523940411328091834862297653329470515969522021323296981168488939104150244007445167474779277948442811888724761607707808568359256389597615532081503183228690315205661877742040742673084815202623257718053486863280294237924206020365486845693016118493663934921975902438199279640308601014214774171501808287405471573272916488635332818162833351956850655146905133138949992989539455666712301024408451439588255765767132206528890014184887014888981042645130213894138268725136947284219652563610617048720018061771898788120672316223364190233478495176585761547101000311455654735584757917444635870248114423944828912610254134820244460712503361700761303566366894727957646750753769191146972212444228667909587822591200179436984158682489379745480752635656843808190680473605700567755368488776428815254063220871522405329897313101451019065947009522136757097022508287948744481577763786910451026595865232923746617499735278982771266328632662926117825860818056683220960509225942889964765387332039989370471889881892579523900617413440041546982463990747756293713287828045686799590737569003935030839330196945323809972167062091799042385310489986563536156368737409461693430037542129191612966501232133447588367577613509772458560316216082603277334665265002694472738429219659812991772398313705712820200598976372545020843144648804111434029823403595705014694789092235687708022903880309675475264643847140530625781418173392750254808389521770751884136949555929391930375569400073934013759490379477937804200996014357989338904266252063705432166103127729712471689466384598512832617541121204148253211986377115435286884793753207338042083129452886695359125796291192704471176280851696468726510044841741441751472693385951118589966335411891511947266869803460832887324528087968064834234780970343305302180395048436726933124840794870088773362196641184414078115838335509410145289885654471434302092151778818623690760263955798696199641751886960930466165413723942016241714447226900400208142354985307966238556340620733835474070040068061898489596605242416200133662042046539535410561177068030113054931837976597709142362799424458490740729035297789838019809983120125441832322967514722678583220767144838831757373643093367788422784130453581096440698305874510320927789056250096398759236738184756160099940067226508567977156706833000756592596881242996305895405098178921925326576798571213573015914885502466595662950345847421484705716687357823683108405138361721976132213524020672088529555989831735372491301128499600296287197827817433393095204579332049590695049076518901302890327233101407738125653032344647244797976389650822072069956398983133134876983562343881151202779642733492549450456695878581143061819885209019479298998482764011815241989407585205042819968792252509311786333440018900760722958787599882390863487549050077039263760714438170985516777295668771775767689434340163184525208616985476910605381401641871006905251756784945879868079649661173245137406676905707584207788440104835483868376647794245488570518781708719013872922226418585992108009148551370466004087073831716998548260394066731307248703610107381266625482132028310468673149711924939155580704065854028074735451416594374776220974186960308276137586917382365427084502399424819627862697652039491796407673152581446317766046178874846973953077560509189987698028615720085384550822361849911349224058828776295655466983812028685393484126888912628913811295455753836547032196015983482154991887250427649142969024223814569568516665392531815720977932090099455149399843064063749199618979325021655459526502186836269904105396296158517817328497316367603211018954157407769271405873031046031510556607481181560351380675054121876784431198006475342028505676051268092416856847821260462654567748066579958302637241239540234824251689830932752900417511464505376278527658110911156803544048003188658259278992971682860775817016045187544963540290024082437332134598567710392722712324029376223655116213483310048951992633413461471647712649490647595378330754578185526087329744541367399090577667231765318741240893800940843999684696603586247326045699974121153845448000841236650926967859054022417385658732127340224854092505981576217830369095168041532463562654241255066075282598083023445554825621518308320893497512348865079621157204690288060435070819087266736206497492055346725118665264080659384631867804267860784535420449385845964819236356802648240246554294240431560770659271097250293151183128870102616919832477033089042308618234895510773544820786597419626464633177590880622564779779813922480844875211828463771616570398439203328990104443326376237120389751779618932407180236500183867944995674773912022433844760650472090422284484175256000683792390170933262498602968139611570417262122141355964547184650377399572224047888585765955898010180199988746059583999707316267738628530948451065326011485519358253020574718295296713008149103759385779609743891272048143075951808405107549340672572088587419355064464679502796459010588141260614292720730582857577477538099415336407888294893171025125593561821208980432269560637243474950067786854149173109992690182645588464590993533430702426903580611482746148685704213782462607010084521489324031299451295567765592142327804083528290006161348116104335850638324927701127642317262297328062284963131759473663754000380442491173667952270221725576423842834754195276496538391776227307877974286696611902744361308953981684815646700075890914593808203459633138007797561143921394668122332959822919712663673828215639907064188405473495679076683996795308147973896885110298114892135371152556487483472700647303731820597051583187842880661296958330358941437911979744671408647958578179252911501610233844149184292722560238871736622028797033788394702132542254751603776102421819320572196166581127066426701761563473699466900544947653456973905519346354839279681967407222017451766181855533950674600030673086012794809837002120450101589122624371518568574889418700839623058468799763640439825490948208027989792570927803577811273930812919436217661717072171871342595857413623023846669573427082210693099598798689048907073420153349896561845634417295624250794324723741144478293152057991641604638379100287939406664610962227313008559441783807592009757173710261616536925700649053764415733896997398266824959817532813001939827189106521045905555097051635408724490338777142701302125213849740679459514690617037897190933791941860097623590310808366670540839097825444196282396233222381722263168698989342365625941297626641739703204085007211953893163722014536624876655237297697613317027529032805553892539377266655547830719898196699648453458797153578720395088682843338645805636589891807373794661267923153984199019803840103753437309707815154729934960119120548130012821688446560396967278599344230159152768552088554960130139688690051776448689716364996039195486699133388380547677827742417254262277107818139161107666864171615325025269218769015453217184020347164039358676600439617409059098938662994978067662886982767622621411176818429845321822937335034384030055769183985200225347956979500761886931258616099132354997492049404481348103233394002295106093797166481972262149721439283464879436789279978716758414207533971156478224494810303381408561647640399406465867878573079766492882000361220671309382084363797884183946145825122655494726328541680151833107468373706565562613311438334569902563851561872499796365248816244310409486101642095063378088790556024697114912993886394179110695425457704483880671255591033601439312545191682708234041267381026604945518141089289715922841033341058165956915281358463077413710372052909799078899689882612102839847510860352180619644582279283030463963943745508149433636074699929294373641465221105176439239919168931155864145988982740100274072922736380579841830459703983789684371636697398822805708677840640621549218096941792412976095163428013813409329230665830390618261574880695025416492367925021695430227347438066509938536669535360638645636781469946195782389016303477871893305078759524494559126097607533566011285789151671638478655263591662257816924979177242474100649813652063514083274982589072358752319945613951141677733424405948969159214561644872570711457378461998738345440491024024166840568360415070367426125688479269685702168427231831816232274868825110517555529788095063704525818116157714314884202083423463737423100722318243080538449699179235142753446751759293371036830146705390903949894529146752793386077450084390698229248938655752096277154462770770101729693136732089857711485390362335131721381470775388080994750642585330836265488198610514177160235034128929414732149226300647290580883767564920689335402108926764883320833861495657689884908582078267620440464176275624528822033920253771954205919047525208665799381975571804637104890564772987417038726839690557505532073814631184211324500467102842602111805481119033689084563460815934208340202891102021930460063951578733106974029322771020835906989983633999562030885692430383885916112722679003718034954689606398828488079520959370238565094462746199415735009745813683555683745321977479524781694966947482079382105640505105697475914016089677713460173369255363111902755400223705785955414091968629950089339008580703271184639749139949112026277778442204183903781884132716665327474088714247111702407631074474980761650731773727368019685154620052751642455472168028548574690712906077453795359547250817945946326052035635088954231907944872714363751242998832381375195687001641860646764750159336295102110246402133688278747512827768227318125007101041976061959521133790252964357438279513516908554853597851984640378966435363351351429650915808232390764516195714807001408556587695489190410334112634595252113990717851482497409209985823513040961843858123345474798861205275930810127235092951317168701735629660571583634060498455509198382014540839457663374277167002193433961230186675850422706976901465788620058636607292947985062490887057316576721783100040516653638425619977739530260174040127192022753759496873346872270481132494523425575637940393368208778572750746843142414091197630006907258681530177233439706665795161543058152837318376734869044608805013824625292598683232410380672555150564384535709685873361168109855232290326719935643138353363591123632605219908288296236687940151074197442020136421818948823237614345616807898036001817130560383954149366606533900159198174078586146878516335416739400684791398491428256849409760215677112567869404965540209930571266162255277415171904766227660127665332160520395662320127893272533625536433456892269687920698380396260366072094414005204595206241360321738546126827587327302885554750185463619323845083761108087666476339887555323142666690297737393298037189380726187072238736160088712447206737870426603279252958853680419209966096571825027787691453981118588147085013714104389079662626060217062940465650990218349032715173732394587022971476147250977452893125693289775611251104329160323520362911537360854012761453166076200744054400994460893803674212190076715124590917831712283786440968588075820856314704236047801659875311606626194040635768101469057313018249869799440536949600608384584937515638160041593614495853039772974966508422118697126745118000779082685657803779492998048138842390609424815437839757303705464468377051456960600526637443679577903091355323043916900138120339157764212056858825222026804437115924308556649087740452333907412935078009965391677825572774256977641798997119163715214160403557668540728382471711323533272034849396095393892696110612910202840541807030254390477231031879971704086993183359573745714455491700463609483214241287449319046095630638148760563203567387601334313322444117846338862131272531418645333851088419670166138416959147163438625710040628913751445966678318720320057245994584730193523405598258485624775603345008324754082553140754913918520077714401440858783373808374410055810829700432820278094630008827406585550854344784364268316464991544411998777888876524634730865016522715356149535652222809303435391884885490498696996887175179783530747021376207095309484557873164145644884152226500664085256741469351034089756972914483435976583833774794992492693045692812309528100789715498377713887073482770104573107026774240111363383888099882655335194100401111955260554670196317832500687268368723192440129158734149854276912346468852053223481716821095305785670166587330971629629301878619937091309179323998204172918284615514902317554233649844449925506484495390784962255760393723696010161334333950598005777662178443673822076081325687389055657715925042876430027445695174795097085676620267151897356611265311295342820572414972700012195813372472075573900441949043868814596963541815042273947433585070597642812271956210298845781628489318636242193066972967995157289672837207282498991998361973593116322093926987492802022496866079715071216131036595887890823518028078613146966588287210279675115454512083318942241925556786601783008848061746739437926754539993941742568924248794272038011536469207584188305561224277219633765211596133594338242384185511321148092267227818806408374889107649023347937065021352502612389595208644721668768699917881390814329963246742255047530279926320562829142019619903553040357034798393413554124423036386094393208576317838087322038501587086987577637178229776346541831621961148649908194950819476187498039572932957705641713124770147346076288275941757533112732850221675132390930843866768054083505438308810377132578286275449064065350325772104347082078204305308262657228093113203646934001907144630429063445544039300375381755354434708025450982409382708633727747883281787007283055543425429914913849458775929619353529190882194948646219662281889031060950110268127864004205188162180093465578418258613063276179422181875069053846423602994042901609922258149028064463602810439616908785916514122295973661887384931185684594322508691149225405238357991688496262412711319306935378144258855170325064137078794896824011151493726315637153986168712533237033979420651193700084994533616269670695155814874691625797884993763361216381072941700796339077773201691941718723870335669999031155065545128861105665420859750448415606292210919641748168749299413128345631248207854833916552853458830846233270966833604448774708551216491097717312313252161968333942346028201846959149483122010355032798151519505851573659946036463703768980553735975161469407964354621227616075323913994927707497554672486957380169622275057307034749815560762906645395373280955839705348623813480914506306700951245886806098356660267756067496661950648162354412171783357725765126563902929186705948487532993229779219153617039592614217762248175854671740973643405659491906216218356141688705788966863433385946121760298614385434360902430511428520647471264391848916590025527800331207711295767767507606666028935512307885158228479465969429742489798465042224641182269594600283422909351669011556254832148197561947204168390077391375727258929074084886366568071677427030608238000805504933632296890117554207266396430704501184305928476044170662105987088357157877374185208717964964254814455712141096211655996692670877493274216367248719240915760186739362445082789760242593847181108520500406528874701258961230994088514263706739044701449267865307120688459969615862588921827233122912767122685700740510500430892436243691251189134548186195627455301882578525502240317242412072665388187383199604549907496500263113642873283779933761823216254494911113184210375356685418315832058481729790207615543031766874334714143298364461052325808586602922037379748323501031415734515490677155101304925567702044201502102986845793531359947287195131440176488482660218064337447844935303072016982967578732259372295800724788923787253929216016690569001468505676092647814145239238333019825203625695651303701536985267468686360677873638513644003710725649801339372319970441650768839187431678976978994726093490022591578450102611057675733401020682722395341355943883522134816080288556644087778549230541813066965818021896029311450714888987168786684842183426120944079711810155654209932973241975685360376407272127429305488430027414568060277204311418607739191173603278484993086552555196619912659879377545555028301803039387147372586747649684847033302223835775665441779839795835942340416209493346515082156100354590823104553106052846549615445125208783061241899757616767934655478047318822680610678939288458076361191199395653938273418092624669641705802654545350828096377302884011791886586011622772022671875233405586726144948531694640805061368658021165580498037342275423406346152750470869869597450994778745114936115907778509453289073332735181289022502860512274195302130271381173978147582836894755928436820883896192181267189257016811880077248116649805384390404036342525603085220409963896451116526201736316198580211670722943020422025036308916195292351603602240087303935727313716071824891181690406877899232470674890492484567642819598493483677716904514978269059163750517265293355634310545432183486184368822358236278772302011889418176504669850745234158081940964676878231901713270507410594743168738179664362309067331523704089670700657874524940797195723072532996517022820787097747758183807233841500795373387275267850207004298300350440327184117634749984166060764415399271865627754012486987626119113846408448575620040764573717657716747312445973896036664125614185207224269966782012150841657470574072280878886889734396108067335347833685855159456618865571531271315202830608095574247721961204107327876452259194899352984857399110581554983441547385215821649113776420541858086267252134362962021636354911739440887875328659068087109042712943144211440215728075673483940500723591255036985811052892397220668155829594888087063146046413262068935933030200365029169388752545108793655552792260512551653333254392703262840763994729261733898002274660880723629210364555748079533162055428704489006120824038831599618113052964677018125900040188120506355915354522974568859713241407222806048349798818315780083502009969019861996003487831735276481803557192240405444160582362509418126211560026646469188558299362471441611033622115964507148835380119097783982757454702955298133649749374141197525028136366129037081261034912208347831346104706355987996552321466367930489357379531404202473975972427993254015968965713561628636886154634936560463914618724299552475074764313262445852173327879902342471632693896449062755210419470371395267397386695664256916907802217234756290370976808706178827751494286561936750258319783702322173820397925354420128802545709443334323850210065663353152274796215435979143956596821488872407575120304894550014273213071306950759005123597079408541873977125457568879281041029136810462863503161386637705249620617004137049104530419990651804070369500320602770200644827120504465183803864849516256751668195162641184984433077004401634218778502740066703358815114197831844552468634877779696564872166943751452410175565404821247367169172339560839555325717075375099160590428620859565282026082783213656149623798539216497676480849375563764834980789891618642377184715590129083290337545220330608849483503495318838009668224035145150161582515180644048377465927591125417934199304454735210254746864245753925060217458069152406582943440759947187423646501565427164134828902005486265433001438137803661878772009279866750196916717881587542132203099781771122526872587702394604371669809188398959535763063906235408138795121342889688384415816987355091709630042730300739666273581586245327887422840405431891338696416631596764862498777681647659542910518225673600120735867522500508666497166162706144599334679436414313703219284680748579781975069586897753227831470810599175282038342211952200105903241398990205212398779174451408752288619009623289406020407208260954092549671759990763216422902935981305847404189028017534013309235159352472128140378276703783131390766920851844958178618244851557468212727941268821682393974150883347565585254209243674570031644041576887518580045185755462432725418850113585847018151553642211074709169119814183173189400237382952649239299408915712531569837702639810003268166128559201206036512046185714607586758240072883766202505760684531657345662465622270848773339638054015015619683644644002541397810068997521920627237105961580624335027355252937990517265319551831239220568198945506563136640715532368183805987185824902071962008621840656830556252611857335949971778378953887193550035684428170387439528640510427950473254481814346611281792855868205811355209876834870790199546943488088510548005140844133606768850336608116795229316287675649699518232828594530540432877530232135621310866694686952755459539391406250528865795717405005090387340120007678735506026674683367777222550788354488638714785674460930201886826342888865503355053342293280366296885618764715274789190835309676966236351094976684567639637493673340053853660347366282836803143067239096823270459230519445461117017011659593692674212236994476828554708953779439094192329161845239881139078635262850642017983894380599183683386615076797924678575209295311350225830320131480274875044253660938291512447055424702954465552022013725041147306651785155415310951711790085356581545722886935218990915677075711832843651696315650090137364684973007067669877957455837680655539760707740378274484087496888417011696381975059027516876722573222204284250730890587189586580746986610464608875929640512479224164612885559527096880231367061567736009576736585569383609064050662287931180148898465063486874665741240116434491580048274274797222610374244302987431455995876797907488843991810150243483666175539323210483415426224332952038337484672030582413373477269201089909659231857253267010994320556885504192547199343861713911029590054442977993929608482331941723909259405665157080182127711803749185618782530122339095458964323242542184766608832606554548833224085120308527627850316930371264489917057628867072569922273496039554592505943864475598539289048674415279413327947624051279545819643167527498685794718752121665104233017508466050429467008171742813288771188774897096990835365240770478620174501827572968363943040543710313727143209285831967449417223064596057317178582669344383351804497078711836583263173385177374249737482064755348435342249608035096773320264749101925309270093647384205149889526755954097632959061013401342768304288831840469186033057203256651347354991892341738679717048665459536254541527707772160010519173065818995974483751046185735816682326210570085036066355661246291537161119715822207926069412807955296115343480441152313201670856286519124491954847895138553141556561509244775560658770250899243463304522318930510224424249380336803118482801154289458050890191184973829457886285588411843028061739743667490047110727525031049831281992613911754961909489067689059249947939235314614236218375468849388308137965007943632252947834457136976516010082604497200659573702022961549948272558607081835812626089405736365480062714102978391143218477139012697160431146752977459435814819862935081342692647304661127623171595611291792471549307431224573588006888931451327363668705990004636291615695684451576793821084698850521478786107934640180227418338335113097687414165454292190049124077958036424745928827682304049507190588716376515467048337364716377211423615080527712983979056215657996477839218915786750940965915494915289053243168127063997194817696707458674593685495255955551204058953574622244563890071739339238210940763669549320722758551832195502608517905478460548159901987580720745932966340449324211744965461341512889806126958259233698371942387197298556309946300818388870397736421460233347695905468735896459555461015922513669295610351300783108195023230228638066606019555814536133202879541958769760892235121459724451353689398386339549194073045603180628049817713327110537808563092655619860293420914724501723707387959255809610916970989125369239557949227739434128251113778376984845960273568659951181442814503300867575629556360962536836408375672780757044369253641282341989102892340814722511641151011073004372119925509425907442358735276413901760600904458385283393615609449277677395927054409949263899301991236265365140379473701318989549779039112908960184626447837815103771710485981328511855544004413720816847510129362515737162881150637048847748253205477364341822179582740001668378667858606161512494373396301221251833083519205451449085922559042259796817889734534047731066311450158377872669233284970781692771598640013252048140771824619113151684254381920239636979930124054363104359447816807500676574854648231662681896121565428686520651799085225366969849466192731312825552909441153652668182786725973840409208402610248237927662458444555949820591804498972728396803209514921734981686021402894649901361916037946167972829559335636859726246370434334907407041890298290687677717766378205794712305827475281609062230128873080547979312187557311586320329824579427497584043002820048210064080437608369766244985012706509205317003619309601292314669838056041915080245813932528658413163245731680086899114631916918442461969628834858381524922996653797578155052052122632138721336076804453074377697882918460136089652527689816115831582739796034301510764944984582712243491881137496392995085228544207759968333775729147132363587988204661243915425621440832089552447897761444794715279502266216278244319219679174259049235543948077206056163556432040601698434733914215776596206315691393823316880185925209452339954004807593429373769420310834547544940122449992617820551906188436741386751317670545733797198158643262852025105283445265004642558073244574312940779938643388570836510550822388114682659684473252771893454698222813062498767478036270767474913107806186643897573134501065958868821755096475709594871596922389468038135306238324857345147393046792341106926774544285083695471310641111651141234272241405189139113685493556152242928445787934549296744985300441536858465053988733523538307725338233933541539773241754665899952113887029119818723309849306038086434280520636167781288609291644324975509377748110524233415011042434282074684914067451700837032726099440733381588842958518040793238881428738619014548256056424554824153981002448694003850674004871745062394344859817365517688257957513465567492357772787825187057772720905852922810712492432814051793797182043229197085731071376022923653195525111779419156023464108625892290550867906603172022535436722437002133411281326008402535911202250034219804337030420886218632806673091559261721742377543936455247497557816107932103731906324216859551381801745060381147585976645350541844821011274819054093005353675865929110065412396854088649875451584139034417181955183455754092661363936230926093560969010874949441354429775526591456802679570082691137966505684578996837205291721516400467264905612517094953525742840646056193020149846483248515918696565859156554761995768728171020818637960959121085342565092692323242183692228799527324020234131828424127774819737644161417928460711376909229139936145882841669418128378104801374210369199499685192458417461239397018847613068628299165556264633802673513325937403999524217758053764201258096228703057416588367612740061181750478543291379986773516866665520663249115060490359983567928076584376923867962620095739704733917229417214684207186102877441572992251918835553700242634546379792714063119578424953959898526339399282172334861189445572860392579203249214633396103623280165056977203955522509483549016966427481859365704686313362553357652263950532801674051692806703783859480897288098808304189901809993781554393068255983468007723466182401413333762293035522000822532419181689909073423363714138794745078591275483592873211273388918706527319564689775685194925921631992423063295768728268335833207443520840000854935446669038248671188901336009398488074428279451424147652225175883917297702936580049205183081713049003004996792195446471736025958557949709582316351006464774017095092650758217955760231173693136024914850530867929847124051846260326020884366855636372834834934346159706747398015856841402468346370776576442860752498730507073872112615643042651473925476184968433875234185410143629837259178749413134703562716591900366002535463387320523014622483693768815037362888207150813948841610382153240828121675926460452646651974931902098822077197057271512267289281181461344828103513811283834874909060515667786126440103152180733777761063688893760026919073682261403923309623706915047421759959562805558092565437297035784673776689789916342831310675203437814265659241261804664651583534689341561136827453496349440465986526079651133692205643369832427932559379315203343142385082059191981274650769926615160074090225621829838102348606474800561579490807562468131946037895101980762592238222575686088638958498112916130026583372878074746578261091742618209100951485079217678501306577378178415747769473114975659964052548782712980251661776822233054171637705639663278772128700670953194861506735558398595553579527901557253127120139871747923598573583361725484685434455566708100511830670546420213062422719565934975269838821997908258479703262651717468024593679944836540032473127101497440156328977290119232648752721240615107707286916488254261140389297456273433264636348170453330202329256404671030978313697322966572655661152118275857479949331877752433544478913886900799862474659184773539834586805811687511500790236356493498675119047039545203178884984916346709541196722793836149019777339302610945860308848923207483941046133216595194748500493943631208684524263343475570307981686172322799620196457293706419792930027804717446601742933168244652656957666613549317495348979845308151459794747528377224127014454019732456273563355779423701685208585508890349500813186151987373606441236830992020340952911370320328877624431774567744399727589032281165539470456740648649658314738653686478966856238985718904982393919991106846129199879141656505878680078121488797554458932404529173580788296679508523106932915753163746490711106214338535949976845539526606857958959958691570853331860325650317309911773334204635946432797790935475268352526509507425426256814710593416717518646561385319186023424836817915990146205045075770621570114464339445711919069206905112195502629786528316993128795423430948913414207717684450600158228693622841320227963922584355595706631139784325175959067175402826819726983639834529644304585638157370921756884748236415572087466539642825311157816319175859397286043613789266073517486838262090361999901654898845797130992938107816325800616011762171333998914506600990872147312735806056789323359328511941247997875089946088614068324102160568030215703492603689655292192633464599500707474451443668723684571053477307933780938494252278521546775899578118038823567992743383879331459549073639637055449442634156534005618450515621286548454911456021423303673089864440645580150894285059995599152665876764457968903396636160129066321474702935845441059670890316748563389603197936768952629821762670542883917170575985804660533398662329250434127463884326054793766555319221323443787938773271346326454942504015129563558461503946579387841046218289086258626671147019320153576760599983551565483166826655487685844953974682080231458619041049442160642886477995718015693711601661336434044507073094541849821209764097865834220383969099930609954248982696180472179030004999419407059788132882425229884466250183851331270489890821628302837131838129356280689706433479096052704798485823055734830825213757622208825027321382580887348174210087822367197695450503149895157787882790689091565325523000281126951040535878598799146881073718770611220071660950421190558464858749597632252735170409301434364809165394130944607667782334774093209928798873833939439745175296665551559612644249061104161651426503399718176455711778383179152484401559247531768340934256885208778629412616039911730378077261017232370436136169734709173041736888722918415375613955898700456976785688238226199747006556047130550119263029912529032575945955921573511262951578474285774796683484283601470292068634658066698058058506017593585679221342797771530849217389659954198527221065759499001573428177746882748637986709706811367898384326315512269925086878838925751985365494346630919279875045134504102643211633015581113644336534675058185870932614377343591425628317685738985484964795367918553030981507553399479306530686210593728280015145243069459451413410220161727559031373304036450348100674587891451337303021984123008978394838836435719392253453248919056689296270337296535788877298020009863128892615957170966298273200295295069816734665084704784145806991173570008312066765063589101162586430197901093760811034426495724054564072001797139296358005538738514720474603942517415092487660411543118198849079796525461477375912765108284792581190814189109753208283931174879765272151011014597327687405852767724244893316460111493334201659498206804528253703094670113645646514495272443768257110741125639691969669606297951555331134094254254402136695363873183702517504576271190343780158367391027193385836258611216611905402160209412861129352670005830124606488152895855577273417938649134035420591627797075655049416992663594298116294867533993355572466668744083950357628469700695243123940952944587678263017881501891377360798680270464647985604176744113566521220015137006005396870212357176801305267399915613933646029062149704689969954174696461745381559973122206575592089663785440821237013836179880235534299828429417473033131519218358429424327496053162701255839979272196675627995685053074233932922826866359665269306350543666195089545339654106626244774184180227830748712758749025875118389606528070159736285319383092307479099349586643245345228523547800182296858735929525789215210356902324072689443219602477976827446832952278605530310829918557444634114419405556207117073533654941564515266674546007067277273103016335937607697191779170206074678569490873474266008886486525583965868658056394229749874587535224492207089050972480115276109951797654805168073419421526043919095254467701587425775911230239548452060245286717901695027368713525038461482372562426085079503102437934943310848111490181697091583070629423620584699991700678389745123805610856526923056898469930587976823868804260192717450747925110089218827173117694469959822031881260129170844434240708264172908279728616816827009238506520167666100348839606653652219666519368189353698776832816279937620467772363534242222365280586776579284195336329851142813658594494199670959807687167068126408331303450603900637975615383494972407854898095385842342307372098297038641822402186107084772324552524448686129952334219484530302448495351739971405938850057998387343085198787181409885387341940877229030990094466708903555282028133499545698480956983383437930304777029028245318654655913650773162253883372434631241048527206293355567002888807974409698644992471080894006308523627662159558746698649639375879273186560163622561671380478869249138080427424051479412682033774204366498668106831183165148697274273451680956191019677890205752827780339873272935658592749913934143391674958911323882153583694175444405397310698342267153141516894222821996353597471423628811265287898013813552390726579118000206632057874221631789763106533100268079449479124102001218594758324865299137840831603475604051561443106023734081883472842951962280730584305244682867211603923061190011029256789089989045855603260581701833962074515569008733703712894963253354067037553009562172474009495758362566364820484743995190776293262078998279310925511392021610821059934437394940620424892324182041359959716745258539712835899107671185114074360746381981394409403680942629472583112404266987049847185129014059733739201284330781260353269337450291127636240078868265318244924867688135016605823549040745860552738287769469108042996360501420672802500691789003768942418164959017445065307725204508079515245693319286939123300736584213424108022443428624008794532619952923622291056758348868218117874633289155914640393606114636942769100857864254918057574967446078389753004857411961298904900217887417620876448197888646153315958819970124828556270916606472661701894179652901242564094454272109702896671085530959022173439267179067525201319817224251494802723980924352494407033069982691850877830005317620085076414339397064520935317588916362850516283722481612774722635553602998641771053333257925917441446760187894795710544753505102469192949545243975552383836656534984221836847154106868500290476997299108304983449364952363523739096984457783496663145629066550638408306750510379479387441006783982527828960583071384721918966169439941864525953700916905063660481724547051567494449328836245796185413547158850499258464006875152588689342835604130838549212655342597117475858695170987554662481167047436279237394314975898979841640708970654246604442393261104955025356212441269588384687601800293076096558658036730420339579114920412583163225202268167282021474356348798397235782522763727551783372460480319678994151193117511014389555578367917421007637487684939797677535464351623982769230564915970978503451100377238143080483082249623839269845416490967054495224080393504394239114476339122671216588696050284297912449659668095988299579348449180827583768600157265602844762655834876530260740017232871211007306266746529576539072904479519908235903083135769860116980279899785394053816350188569443111946585454951445044974492538154869657178171567202334443926182032597134471955930081764904700429401359667157978973540139079551216999289974726800758739154896212544081389068600337437354141558244066495426175596562080358454117006191795738509550866890446805935284041646480491175674476811712390987421458454211027507422039278050707990357735460071829436669952063814702841204967397494123422169695566178708899369242304868951858677175375915303078651445687352381099535351446268898089971084302476543211665490949154455227863878179010113605293893879266127033951616943372835834837822562271953583517622463390024276746456046460087172385093095113990754049859578955668073849578028589400116805094890079500788605169080606227558031644617665983422587078987909467144178348222621768225686427300384256012568584964282018247112281771110953721377198134153154402199765468390929408747471700647794571052698007606934098145262576498600358319756140873608132411878732780996842894408314173076890407926286510469476020826908444530949801323022108182511682415930836285541719166897397986634335491241160275914851443068963768695475624811632306666351607475713306184021272731878801022076061917964343731372418445361965415077650484794984855495028905660134068619790594630890245567180723036390188519306816120361766807357261125315028246909663016184170902486181561698964680664806967354249689114002913424185384172624208213129286360289387098228943521245133787812497963353635856362687459043675418830208037223108311052939080690462565650752226356388950433445249743111006039651554796803741930928706809738609743473594369156192985621979180649631650396038351365687351071795102637427706202092438231280624551986749900257790322717214704794299411504841633433743797255362288004957611896841927735277369132767033214546493810956654571751631858600944731206077915197471910152104605278152268688550876537317420399732712246221299301996618879878200900931814266722299869093521658254928694717707108601827992900250371007669561274704282515575562256054054469879110395581884855115172824661720610162459788649467865064126226720390559871584692627196291936351619869122921782607644692489374382518034500607903263475262449630505953115786696128873673909324305425806562805518312060789714532793742100470359008131621240832853062016506066185381005019446607515906773367127832066433076083561884245260028050883149845176181796502327987335824348532763977139846853952679083121960835042351829983551708661558997570003196838809332260542246009699049880914035406578636854821564826277189990625244784920713939828175218995886733321295236306243943376287233293954098532769038165324060935626931682414280260898412383770712293718929114026082299396560707996225227349413096586596351096960646775606723943362611365149291225518748393650575493332426934649716516880442872763193558270970026762122011220225106581353944979764473489726236212767811504954244639715403653688527743973648654983857878912669902097059774155682392255463057635492276168331710744127975132714270560305730511150089531634788335890667262303198693486989752617952837638561660522875875379307356157488120204293693695647508208737530708427100810716014250041002936818550405153108290648106504435101949734480477465263499223970594449593772299763868986882282402309387343192961136851982838819891842884685843686121832574001166634847528107160017612430742789227571172837292658818397643385721604960258228710634855682900251192449220755160667526888328355325436484916652921505275767097602620307786844198767490124139171928835709294354122173123015707503940829373610439011088471368762331043074849672032068789700577176768551258397591188079763374502202525411214939202100961294060702762824860823114003728522409512644490285879362259137974266172094731580835124526937100402569723552664962858653719034565023425674111370388576513871861286458497530791357857634724326454680727148054132841438183891165708020459965213753934900916829346235949450403224517620226119210951218502174604764360520547236820308005215513918915531438840602792128281611816180175179574041148312532230418637024535954347153590824501618864969109784034109247917651501173594038494548504897021774766848818555545715951454958998122733841325055335220100466754364204614494731977114587611992251680787573030333719359397559451172043361164074595539879730435766921453119986116543074792890519526597491043712813713455223017184622510941719713964283451523823491391444318603707432389478685762329999676412831057652233887995808000744990676531998487205852717411896670572102468583476146786447059248904675716818002131373412935709191805902494348554712470740952481910189664266138216336302440565007507383213692346543668620044699446741103202705666994208856098300139678418358011632628062969389814578544039073786715063625907227853625653965550974953017985173222015861933293794179826912975488393702963899206731285334632947586546982429791489025358267118318191539129005866542331705571801954863800604035749881013950720041069759844577546231066776501129230308915299728045964387634500201233357815531350839037675277396267913369337704244426239803975263859189336957217645753488213678499261897551558360098620896029320575785095327552487617477736684275213960567754037058087821801656223232522958458250271336151321464172783880883589045821838956130470576925340572649703855012661993158035968413156040683167176550946609042203547487410308545355433765745578619182692287274412193735732787771237179408633077036727930158031664579331732891274662761957723730965715291821114198402395089227557591787119893149983635018462817047094814448238794067767197894216358692588933610270939137248712262340517295154879398698902676137002637629170617354205961136222738296821876333225768866681486688411516880600073879043218210281365935149504197399443909374794513161167797221568550641741465905580939904506096122970597694761655237219532121010142009539433927968550075873122823277298621026346336762587357830000691278977168849229790704981937440044424718029961906794621011589229021425068496654418220622426560882617430544764301487978790871872466041553323342385015355419134505234386166926798286125506867954115926519528260563915904142345098301257529621309341081721657014154621101406294835829761399314267444120532101887299310675308449946643098218895894890128569555130165985411597188163585457009600959049375426166169065480284699933228757015311496415144287249031947444890338851585804617569747145799422653985248630572046662340170358544575727516416270633297263156774401290785346740040452414477313097468989293241420068444102502690874954376210626774793496302627675761980598254422344501985225062239251095204289434850035841455129764447341105570686483680549673881720916881588995356056896525449105488672330347988112401932447605536389391357811202779014089052125022804097535989390717526981151467590337033631172957166976971496181576570162477110698193986302067486837207786563728841602208154353669835772092280632009808303744910198628675854402186460955073701648233323963037696653005797911218104269610875391992592495684936070079683912330196659907999295582654360188540954032854837713108742937709748893644471809951278739560008192354719364334287350348752566213753865113376742371873178546631726643632319610335124694132988912268041862582971190627765690597091542841356397338274126713111072525572181940261934448783558895785329041972736957050334487854750037306142253175248806959334334447207008012761738997003665795143611355617129135350684083545078254160672978948236686757543223455394770524639961530672024154195344796501621676019065327899072488310464499376395435938363650647346824487606800075991033361922373363252885958070043228295442340152330543587728037821295152787451243911877643636145515067040740140196467639206210660873908216033652125049102409147008505056638573056737434973979639204788992817551408254238569405278415236667940100379584382450525577407781856539230848946351152675571132347491592322678045709837454875888722589600919779012393908800914411094085915161508774281376184696816494741417122472519761293679667080128633836651762135284223283784875869590742882442233449316126463005478973009182976483428331942708776605525866725776295639133636243569143431651866948357152049744561124128566654968203252339661898195584334039143448961473085112904559025197475567261283257910884664619818622669720375049866766756186036594695816815185840212525815320653628733882481278109476890499391870780745875146233216267156192167183560874094866809393556773490677723835983447458469802952291788320279323161262660692387388159980772774527889503216894553450190879304882609725450699202761096095059612326896232970888793540604847659515299685135256958881973033342221899956843602701084097335116604584489072592527388309157413366853753416408689295602536722463987119733376652048463396518953182072599847547475568299313805869670629921705518349763790327820802857785537126440552684545508814142202658690208213936688551868971784413383308387805316948496055025854238899836412172723662644060011413522989599495376774008957407810151346092457616681385684683777832425412497455494852219449120322773068998950814531688871867458551852541623041473279177493139006234055410205554636448195962630165531433763941698588814662712339374271666112137368530180906963128907759289511424411220753325589973113626700149744631381377202929164280360559237245021810133969107065332298644548233043956520087920452408774430223845056300894841978300154895686812243436286394501767559435880788313715477220822228737581502460340077046657133997144206714728367399045940745893782186446881454885234053228023611555314771578406299151544097072309462963371255200702794878489796016076481250720194784283190291764062865774704744387968851774780724064089292570164419848031828290204255030470831790670855346612483572900146235554365550090930955756167785152793828090075760027115540183206133161105124292150828982914106905930902680825041630176856740352581557686680516694926559043236307143037115521343749648123496311526103771277473332859567066500257434745141957731501503020887951483635413462311556398131167917171234017078093140334583416110644535412569913158401098221584380538009294708236888483757960933050233741466333276347224320570350817267418791875869617509851145252216307624600248209385441596217805538511410143381941923806467860549130378845684778332291471834279149472769457964884313505468009445296802318751244188714559135421241004867863306280191686414753399232232032069483352980423282770871831431760990243896423943415989634632603625621047837523904706846358735013501761259032444292575656894341410954920044155997825501317549697603453397651138625410869160411588933659840929696410058558799243095601238457211032094409187054667209278294209564117036571678558937963138065891972794034931923292685566744310547106822188914387415194181589369415250572955365348842286951676798270167946393073407763068311612406109373223665579576416100037499680463690739682030316900539462563614965522272702997514215218286717858774323419303300383937777687883874872119627749168421950843754697035057193263806396786480717506954964673134027941970950225890511868812889920972525737469227997362164141960322942758471580900052400800858408061119901215068429817374560329470265892909469962953741221364922140211170269878506928281605000165775951712071077440328061825656333278006307659692979729438126896660011810904807631004894625961691220640799005966128350511774277961350793617750956818968015833781000977755948375209044869873215503285069291696465173057252692397428868785681151494129197444671657192401041925568551491217189971602192573891979260543731445698914676797544520767153309330720245696771755812894648963333071654853614606163365707909135072469256713653925527179779457170885202935802825470877987795846469557826318615714684575749206924869235760601823079436444587191493465004320768156308405813453198200576488051742632772731233072801389040766962733393412627457405101933427593271396425464362382407870291943039864057972299224928432686208464985203310903979554281172303296966310014064526009873605824833277146419297557390562711754877653051097632589140032340945315219902468537200381730811036913720965872685121040546663930818604669350644332410365504744530078522581678040957401962887005588070883100691689496463905561715742597453778290275748784015839839309938166929504050117490196916039330960493998786511112252672592254598366895141613049095922666866345309487340339226037207812531814081352162840079885441094778462732468780777185772536940235975548694890719358934869646376121597899223032310345848513977901332525078804085758693879375054610718940726189956070036081364752043601873605298245412526020321031488261621545822704815476691991600370431579473494615540799271711480574978911800029511944866814900408347587015636217010828723462791461508308077312287197678359023176288653523703572003344318211927518755706693715780175362072156516855262397561671821688167419588521151299719814066360410360598192904609520979194565202027062510522289078529297769437108458974548509037603280813884109555764555048874551857208502120986526369425057706224561634382605346491893968043162076140447691287531598497139217083896695880828798949745979238236565043088077711464484285653370503607950775472426714372151700532790324436573075163477470223410674376548971750220332080535068448385904513046738890544280238536339031390052887071461423948980948527227936160301855618620877317996930407670141736460910076219770069648479563738663193944779185035829630160526350393560762107031673560176118265653352019619667572130328259865193703411062509960688708827558718649516586364899590136926098071865883813310005440516921617063658812852635807764579157028191721131014613927965472360792688767760767137969423759479640432219885552457936518966182353386368459897586789374553090982972938887253313156032938938632975071412602233939107582613128916487229660842894378163622162910950145076850324464065873231690236858669892411607877181709121916268685074388389964400079180053025238563114703290702514836101393167440019328333055203652156711313757599728975703923453602702867839011225829262714578531912624104941230026269053301177959904671861881111303016245826967407804723399781422271819129177612192158738614108703365252282567903470911118139081595870689660773974597659581385468459699769686442687370128499757951052288758521140587705761259888243927286752495547331031725364269687197344340152398423792613574732546078510469744664814135098601478839720016336273547180870239514353998505195328393199950724732053635614607397179660017577263640048034754560451276887820490311894026723646767226225178680347088839606846126012730497250367629450659364409180469701609254677961513098836482380374982714872186615496882208650032434891281079767686254433288802626877085681868584197883340986987811491587040760373298504687998733215315062895308002750273237768023388829484650812668775248279067097936952882737891467403434553059325065500462460573604721352642817642636721210319639130953820480557558923804601667281065766244437729997938255659431635933471174415135960219971236190191541431154191912439181797372623799019781392960107772223801531016362543935623853398184886843633979289942920771056809271874017333842212704811714566512918533119197201712545806983753176748340272278823234895503223927358555124820263787346373080793705476894444391276614027287185094184679343054379805266074367752801704297512727949060008235741632039186671778679111015290637126817313718449892405302882199723433501743040777111372461356478911925927867230783963815583791302129666735777936597168334646063147681880603452241033688056419580282478251881138696554189480547458955010799144808929509644584535957563359893752121545673310365624683538278878722280766204543760140804001792897871021134773307849850296234040611593092637756871114120885503636259424850365995886702129999113946215983860692164898766297818269790570564461513169809451853395672947197193100012588426760877504255930686388817911675067648538889741329611427201973824655416971078377115016815789319189961349452003578726132795444725882168937896222811092380023086314144419913450981476487601763229643769193198513123986320887449912335203844870815819670574754986207958448897749923176805549324130456463724664120658320412930468385108692810568675216679162342273897875380179460761303587043183099407545045190559859291070019994659747537371850501104836025953701815650194391912805787691689925057054557126063740292849662404545090304278167792261185393516807625587795753074893825148618173620846188290865974819776482368334411813679778056685948945181375006139050732183468049061865924098095208897696027617058609068873018021941864850599981358398954604918090323753548929014871714438961029240783512113552127306615066905454474827826143430478406482890575400423811997956153250200134930824672681414395636899111797650150671984798279213199815503244487922702427258671154497897319933526474162992473401421556287619504260846601294189783595203331212894058530833835753504075579624059886487633321189902088090451264077181984757041963183355050454426865173426700181353156595206563493840469411907475813915859474744047437864553031077026251676199470272837783579744868673795590269099831220404167331583657603786389750987261964162187601304340129941150320579945722426343260450808933829272120124043627533656877765045865602111101354254336776900693063371404877538800496250878673246607735281813546195119579367697364160446071009574735001357100418768145997616248532144443008857290214122773247527440437412176853596974737846178128103719778674047816378579768562601178059151937764211711037340005737539662659463432318742023805937493248383979073246435564322094188294213394238491669813255840740283324461074377766065619924464441054380166962256572215510610559455111054266589564519208700958288850103100533466257412641936282831511005249191889760051335240090354269913973264617973196755768421036421578752963705586517331454469205293352663246781356668618394366114483535589028781948483966216983474496413066763992134239319713689994740952465598336333009555270777359660124377437110498200973877608238779853702564042961621131799382005614477684783296190607674795191460041657769145931843447036309583152923235667389074775595924941138735194685421984603518815861096593794564928554035580806835890888850293519708627183469546622679821074018285352858599361245458305146580479364086755623597597442898040683389608642879826770235535260793787630848436425638133160544950646824846474511866597907494544520661424002391321042808970071735088854016383417373793966023683717265701571115889684401934943908151836466714183130435796439647264810189574871114316327207593600151038817586617104336857276318564184490024503574952857299743104343403065940364984933283642756340294693843593386910382424549685220311890187354248834135892489478560769850717534712541061871755316203037990718917224072229380683791441955636661517312233630191792381048315292756454201839533175699193799112257490464820297728101613043746898388604730472922071959192624103498433988601534570470151441472786360293125060699017180891334964328020997199490051299568577461948345661491860880072747494103220251394266943722029769216881172937384791709825976117773723433984920571040718136919639108980947158899861097978840074910836629148559437074438113666302691492979834449720850593850775171943110816931865355656820347501084701770360489953850743987201548656044424475811589964678171379298497412380592071468718434450690310955175451854291482361567635504794902493680000729478699383095176014077514605414136952915124376113933228203783386979292502271408755692479215566072453282548876917168406508218974965307012057368886586123602433560295742857703173992839827746194060137275199766167284837864007947551747142006517414746244081450929680265310424003636175146581577886485141424082053980480930451589618044595593281630224084177646058396874115300805408848728696794091030608159115989190252490380427676029136935270655070643448707432065143605478138622199057593741603967127653097067820464034486870337714457224031460269363512639802279807019988721245654657882410696307917126512804753457785956806105827264099429372932277295996425359611502263740855963920966046201632292736884003717649694468299548055662561097792166487505609017646274427483995937318829849623916650924933952257047097379996849644185918654397240303374542119065185560484257433279410892040673516593642472419291188477275416409476606779906624511940342256008541688031306274745584284434057567232270654490041149193966599665307532818668916192837385424713381205277204752214209725049681835611416652205320221163671095427875100365559135793315073470543231215157823565775878235295434265635079856240016400420847478988210736000524441366831666184114010042700352606540491513958211033178656371226342033576238767638013715844753345312256095514616041200884392995501837303235004430701032775885870494674247344024977294069825999511980100527985069708893043174436739923794885498089824665041719713357849281514924799537759916006146092212163157626508820140777296785458958453495093736944106444478654720920850727692916411046140221803354025494930067949452245626194363355690816487843861360260708567401938005354284633655311903933677868046535034781914341552646361934811050135691433384803582586408818954613636015500684295263890641231959159486472833994455883357211199535914714280194970436474766323515375030286302605950584682927925979212143435010433642496727960947644604073088947692008450948192494339334214109773180903603913866894790842216054635917387641048063143763056243342652759096553416350472249599121051852859338400929022169273552630955993943578967083069144485078578041610015768773767116195066647428806768373723151599390117996825016722907597901696307038075747903592254923639875190493522352846585618981274514894697952590545189038813308229054572078024026605988258269729660599306901508182325255609373920639639945495203741661926620350973748639835442003374653602632472964174857211066082525520708256122943756201074825631625428008347681295810225321384626313074237334896587846461754931667447843137207796581318280383100930845079752706690915836011400992308262386561723946033511802699273360786650323739503157912357227297853535102878663573477259466464966278835360769972773889878949871290644559221847959559937508756495465764444428888486941458971668115596255503990048658505229176982787359654805082803637136238759668808510050844363686333677893669418704577942953312314203946402845064985702356465448599241025792490917798482930415143110287927380938722080704540565836770229551004022275429851574511886246493693305313472214897910123479801604798520488365857888284658299259598386856949743488433132765639012663140858984497241566725484586851618765722260321314705914300108240551011103896010603384918306515088764584536525864272078449883151950414121239802996354420958088655847238006857306682285172928362528276586252995087008846031287115829959487583329360864024714729283499499251978811520824661511804499916843256374803714134759589586460026256877019924430098936308118857786497317806449935748558439642317845272291445820979558117487840609448916544497887526714921507064626820054507819003555667743146158574793764288257139026120774906996912660078254660059426184439871637629271115524211349660018895871541413385343356781620295379598046064083912206100900759902153752321079589587577153869661178707476600661814756006032141910445158300037274064026886768794975476051226196487827210298574278726923571677530292270617618783236359189792809396227578569861659774184756459517634408869393440057865037564133568007283062914068784853240897555943974906418749541719395699030850188100061411417546999930028297344636818341785160517876402278809815692014025305100178839088820035557891234805221496360312704299918167309818031828536431578076880763427307026391670384990245832200746879595731045517704229073007245055862070650358316454041911815468953427482338031898538423292464670353783170003469916967320935688315731961001108996260485297610116101105701633130565138212344434821829143948986308898572391967581647314143527982643880942653737993790529958105947244795067530326221510171769279020691784182849917311086333941688506867596061354484049190700675870205022607460127345852760066795490731287528625871755148880704526692382757410987737535023311134652579045518142198775638578480984320231466737871889686921278883584183847696088010857855121461585371808281249252509971975460831915862517553230404288487941395865268919529757787098429748602605949964720314590732255324924724345169430797206911735161050996639233662804425063706578524936631116861129043535628633176230304990998171372012764633566330237227201834132065460949573240510730128574666636189730339708212495577262132727738948280714157623239858509655701228536736891476620928917397727799840642950120858957944902627391897435005683337647337722725219205574547161132836199414438695094208327131328588494449249202336773185940892128384192505217584511388543266793252638835976857263355999167198706713876359576696126419300137620851806867487626677280795075262697282064465578552413610876094534833612747202269915849457675266852164784359152407891950478531366138907352754296331141996972341189221680141594245853910924388588367959008726851343451207654964265493646586786780777423610951095064072693232607075978905298264470622560711465967517133141666805306511431964543324487583993786849779034464702565625478636930423457296474712229461058975345565179793310039159910207475095324462934776118250345614190601806674559358276702555481177848603439541051542216698191527246212712566675683075392873095152953829910258376749381038031015624365605612528597609659547276059163336756909407480254964923166625559343051779340579660454403796717166913349812718764932350664496621153484292958981007172515036060944715571674328139224863324981181259021835010582350185006637731285599996051230923507689866514592343620942269439627245710309645396275858967132035711472443397684993012487617064065345964251908125341574641366280752038001905981499753354302053340016419962650910820651435749468379722956173737043801043872399303522554549865508896936548455254102341359582689637791170711845142364703240079547974443500978924780106082994445484605465771369778073799100922678521305497600920824005248923746667453126525387873088297142186334337850596479410857354579888152720726225489410539010582069640829665502864123008070144211975312442485183306579602254373596155762148707004650014076563811794982635285716464938928592845596379883714949112298057637173902181879145537718498521237014136078479384490205365031394659464036091782906492108963691561163966017018374402573661872536593468004490869647306196847339886219037669856720424729455375108364553220961018933776414836855298819833721390045038718332060023220027323734123310319677953482496861200116431039421926659326139464097087708592213171229101684098085202532473389825604020641164537812647875806561251529035069933909638899316450544281162348588341193848335204863881071756735003314373037999429541845077708707050816337987216360873867015397618260371212945424360168831624161982914726190806116105902230214817638336864787689526461343040522714415349024839973429412080045840519094839886096428143773222401282039897841795729888388601095487331065251100007944286884231322076601283213199079453193972213458077416242475487724398922842917189774514133971446358252327450568462380492211976713222263166567521636682743402264155443350690601134891518707505319761270700125311248656009124861898456343104995734063226946794491680152394346558539536459140358453526712527853936305978062369798345648409276276842024472887357841428133215555305741841728945488538491571455090284803914382693200050081009662470736565543163936260318638967788356685591958505873227407292613752978952685184276800879128685923545159126418936040530722608415553743956887734308310361644782304976125803103193834292061966929633832952155451155451801969222596702928415401630086016976097597940520143576861385661021274226260954591974119470859057138804543652091802695913666718701336088746596196893470229704581967336501168958495872387106417579794887318229209610364795638893535009146628639843824966594471544800694353418271599296374496927191011857553301465882660083562719243541703264328022552707023679025017232240487164877063179145055691422341476806626593305282045919053834325374773911663952443990000463343608103292442093359522252755619312794011768767219959177101064575816721111647666298865018241659946181820168796822241737271872329665787173019312983668261421542621300791550916006077086613929089467818893413013777711220528550020887328695222334919947211464120226801389902078607585587016967548810915939192139085745930321233707875352915522991991669762240153303190736390591472296676884648478923499299672927316715551281406033706272322904935059444621249751584041904973231335389806741043100372498563333739936860630447869001160827037582342665077376005654490952064566139481792664668181253041016128437212289515625701607594955452237140482925890766024503056619078308703801954298973445009353307604239944247425697393243295704647499307019757508338347643421699112243312145109686840504787000333555378977102661784504175343506965661061652014765754394909579886765356134085523503988893840891727395997017962203810569040932049187059265897154336999426473794048797233478586211848607917099825703703379183409013425853626809038140544616780684219525660494536752987251374059560595671943228094604477023956720678183679301408376633227628846738902243139480377569617195709961918847996695201129891511497619013320662308334815953303542193215893418972542743328398503287810579460126451059027042546831038853834780887350962642730529685270322664641974678650922333480505927908626057100209913055361830142042111912779047187030932095346474773721145731880731047138340584821144579242566503012751699906140190973815802590191796546476410159065978177742060678066996071979021766321828874873216238517542838597813735902970600016153472534765600819394007368914814808848557747638264692017284860913681394653543219736592421967097998297218032011261586836175176022028664957250204753190479514606307239121911737077020005179047068005848684578574549732342974935119375124835515458103046382946982271989458696269154901372250946057742486792779828104571213721973510854372726752233492550369686267286943833684635869497611420948893641841726657447308223261083134468586558483309686149842384762917896851740715842127928570329708225388883889710981915880098215319667268407475358037049424406750358525074238045701172699773498950063391047786988074538487755912808766289023805428734248796608073713820981398101628950019923057294535417583937585690128187464218346079730435807793538127122516241787926283468827035271361368105250919926510202216719356658871515419973557006368816431419196407331125737727480619300543989574747804746220570175739518445204479873114568375351895847841349191084418599958442049260829244293517589667339718673723455078244615756374892761086459751533857124217260331630065990947790595529306910519913848465207592695938171402252531512236259201161957067404497568473480235384104035304746961673707763852440129515625785687129859449111148350486298446462756479089642390460962936448445460625273699509949667014475017752215564138523046873655470056635381223216144341767813342541372094538805357048719541436056013881699261070733175668225612612391002613333497506090225698922246353201529976028620679499965537614909964149356846986762248270145595712946052627435041905254557382751381350579146969742247920838325839323972002559050354126462459926545429176076662315654621991814002391504043342795652017180795985613512552975733300535174291231478547287842511167101335219283368705564556547991585754321237734931672086167791022269791087774915428644026706472749388779718977666360419253074112801986352899977151501843257440648967819083433706624172781693207272321742461881701383269684061093101663864405905392603489142236225900085651078672919450991765093806013445040779672374461300012319525480039869650104090526197275517993656182296265780825710322549093115796274796461766602776951895114820515116609110081623907937750622843983031507645972402724449783133457228718093984133159598165191728161320880262297019435782223276158346130981757012162180046679111865537060559486647644548711513090341135491949408851354065320168436838541577040133127795797283702950123504997650035579149033466474952997896825338187248915246992027653572987485360660921003183612612104077209865705486394750602363345093640789554992177779634696551013738145590142310793309846762852663313789779257214301833328600949594249071025003323512686865712255476646132171748709482645356484068350954134246295412539198930676925857855027940186641201458121091784229846240512711593802350247208586363077650771418992498001850687368760589704568008346960447995503318260439144038738008482883521669525496307118631075580006462424152156325712222268777948653098333051005532369084888220341878965641523762229604938654434559589923910067994417598473108197289834289725926656957118494057065173637498926192417416778809690699934499029068388374262889837564833942553786161056891978171845143013730150807649435221654297341331959289283990405496609097800358033974298566783956797266604793367519290206413966943755996412132147561378013217369391661558006283614890194837642499774457544530982555119327066239703209220583191234163914034026137688618143834095393950274270036075451882573040196164308792648215804841236846498208585608834943068362592014986529933110371001730970477991760039659619846959022495848529540464820064733426933886674624700140055914382749250392469754989588306716388359806293567238802138359581667206422881581791592707512630028673400539315301337168718749968697740267778814830682988614969264474121645651021308826753964519911725435493589984118098342212601555670249374615693945408244374577738826579263856699885023759509786881619036402143765134361454832286253408248808306613449581865212275843309436553940252892269390392351649739680678356136520296049509904581077038887141489943117099198840329804191321595005983661451989823433702349335384998519354603485479130550009091177505461484708361161234583831436750489610785377431943095028957107134458260321417905834397665331605026900159532789209649577403455415078564455341416211042601083119226051515670541652199194263013439650672186924749418012942347028904233013938806753456126510172547637481517836781757799225429557689206548134861678384393246905275173863093083862761408230798558573928769585946134596145061564346843172096983618187612920040745832047272981295069647064290682463283762984330957438326328018112169926128674403254228134034979631721206064430173916998582867202067593739321226401522661673769532790188410533616723308904251986356931547730093792579167607183626953874273042093651514762352475484819478928026183568761908060746731034611190938797992621095154791048657732870798018055089035691708875069816331028974225263409499389274718555148695526981710379334060083645310712117218014778839769472227667123477363647098324125096742511913939437308681969927889223448489990565387884812259981071570470178011791870687024306156511504602262343298988158719629749646277446287916800281945662808693065851848949492070532516252559849956179189178701598292132640638960757492266524942491759482039786217513150816182707913762709829860271051150842082344473565885362034401815903760384101589398036004863068535732562542386522956073738699356083653733855665108172530514045404197771381846453508797881608504718077725746266296758529259603751826178270215647681506173095535459274749924061638841381772624526572621731989493007822057498102973866732079533247674035991112909491766201047994789045182656864588907939867862750585805931532230127162322622346623379309333123957326322079520793764880086917158692820729663647726267462855057097504253157814819562745304987055409347329579922302518415530053132194498435209439909793134086979031075635115981148281648800503349515795319770445394382079696737711069936898620686320354785970659314134007981046168229636535329457291997682375674234747371876571136631651326475764158450004900170754548468891008101319096021804065385921613744441799344892581985357818644020578498509400627070373463679976924267985553510050122861041886483103211547936745658518659991834937445125612559040106302598833113598044531019719822611716335793678658632564373746301838467971577395823088481939832873463750036388159399082398862305486548345566658266157465028981033676525029134719700007565744789591253223929426276466200657262436973783792473658183505429801030119585155852701842114882895044750480317378255350695432300113728654194696083301104477507392641901746359047629548747954910145882158380269441106493036115565499385664484615198115167729016628246231898322020493622880769943773307840451086818937928740548226709740738078918688982019257172862969619107525036844654659835427459037075860782365808901218274207015436555209585148105813308525010168022769087408030813642782516050099317557344735401718918106803814094667776591449084582446123964028471000199717398996253111706539405491564980398521082964307943380075903271683283700129257375021412622781564671098570698404460407695177696863424550632069324926284655703578366827221683416609363325352927050131641675125631960346002979124280299196972221441775711889340326957047961851616609155689003206662945985956992398948883698536288994726331730242132899712793684438628863957147389451049955948749503379489756729250474948325366240771940015347875592901070219861153430762214216993375430850777358425519214731413085119196020096235661215897917875798779204717607328253211582793618382252325926611463661753441247404545978918107454811601656503333078685733801617769286593680124722874365470344371209520590414809079177403002138979292131648920766238675097450652306399957590954822103924334344755088693188177726926257891830028318161025204263484158709966032425863459377188228938704950821711546971035007820049231513903527939316681412401214296381622297074135003525726160968914403389145741570838681764474024255603380582177721457104169663107407172292462589334805163500652872273713667279307643835152145160523164856366612186102467999671309657277219974373906501308142779983844609731126975747454449380707494158806269923855466934118664702395852363391910536913045531530334961647490146084520493179838014336253779166082509573755543104243693141185686577587937697593421865903999701720160362471488019934831421681389275736584901953794025634985600674620640960158377612673093053896885074860173591002206174801276108619144960514027160317487761947233802421927901952549565120888161991940316662573659831599478620893744609336858755437440623393540719813542355569224045188971562718343801593686017441307834520874189997276545544352167777035843208910805878836476526064957540843930312345796087156750841102328302144202957416035844596942224464714888863500706509451576963706393492299110916840348292886666577338406982071366858474182079124356830868690154439796937191131072565889473190714743181249099790647552698898897253919305865494451394626716141501710126344701732132596732169929325499926658606780735907171761607659599388087218282653855378066225510006130895126487864771029216313872827095043048879584495518643468111211420358205073707011758564656394933772240215739120720075310209425764578700167965303629584564907888930823184909561072778036747234940869929740203915130702481599165473374390157205138967762035548188759616577132273022544408194462904111426060305138040619345816628201835403180163817808299155284582507568025276791543506439302595078282126195416702730505370666000466895305426034723349262814464779940847034530874977225489731340999050319931727016562688932587930416892797202535353402690305325002341735572898585218028773756764133139757995864749005876944149654718913306153750805715810977908523569996458001176779825856767199766341572279937234493361912740750622076499051321968847494863438828956202187967113340360569997205546835891350075592048836890903554191892399308545883088911313083000311430555283399875910158736366508060021856623297295310854354689082549718696348549864790905066568785510126169644714684836089105813182533359034345430041326952728646464303871104603403943577628912001142109173670287832595681502449343041314853252754166741511457858289276520016652055429115839964213505881377553430023858937543285280364294071125142187610802370875556165182148245845283528895399135961246507582407160442827428885569884567343613629377926291101908882075361907028596524833709861189544182521770870833223846367772377167574216031238219526336768713917893945169271762194404310847405075789703453358895997970784321471596877876339924996279374245945381286665163128903365259539337538250851988114880634814909375834140426755485369615791825238783660424423164909056457791386113246060596841100273689309113934064688634540193738379769524781814822033708169417177763545998663227701843870917815614578817912378983081645022555860879122366981106889694480476352654655822991702236340354752708221055802254863119033078034611488413746841639976256512576564775138896645959462689642732837642538808485554173111544337654755928840844928518097733814951888503047017418246829087646978451948454231908630026865273286975819954507203282065999005919168295286554024257436630794271217788728836253217764104574479280259486797425595981224631060098699148606347630733729803000319127557773232679772866834238238324459779655454113293849964679570377829504533204908065778530372383818697982715105174497151345996037010709784428640685531810699347553258383569608613140573856199480186594811350861055039587613217621885562763301483225907929639840309800632127577882832460263437386593435681227282589649263067769127792910717036510402122391950146651998196246951898903029048838091522875815300195993165650026186526571164378999862984649657345310829171180042377327201360407185828921765079545116744062936649134727202913688081118005534798884022080128919088592030729778749084156533647784489914094158488324254063161793921592216816813959375437906293914903985728578655741939339677308814035185968628859208942786355915856253749181392350116012959529183267836182703065388505584934049167128078139826404998084003557893579134505050669000154512582438019035478409503285476716977281137560789078290056095424965875386584120766158361809018117820362583077487467257740656128383601319786641973095925324022127828565996071255682442569738726216579661766867813018312027246519155051518846240964062321733933258086752769231499945935876566455045851761148092766710840924136668357804432357575089731255798214229963898863020139248654796550239022561463096438015549861103098034508976909977929422105397907533179739984896024602540450371400603390420775579131770517864331656597967990844947561999934272769177664181606258994017403662941893312330266050108619447186630826695880613696292241597739267241090363654821601073710835356921784766974674388075856209446582131685796666992599401749153250101579662185912431811902117901892171950572963229088832621141580584872749529344440626720525856327161083093246074936985805094397982819166478292974223652307658484110812699100330387762473869078286193159370053164430464411946552689106765643145662741728942921667185724073231013211175826377203962345835136430805734870002560713635166380290438818703302736277683483756233907342503783117693178494905924616891573454721917527578331785039481155605634519387729488125085732805915656856556735058324483085176757077330440290087971018429759686611723365181848541929967846998415060707170935311281571598638468234221277384548115983479064449352451565001715275702043941275885573632257463507855892321467109452347539610924707983424821770372964593839398841172572109873706607755618385678749110733127816107235994151116869730264984384970433491586933738803960263138563626074623132653837830192258491477101051175065962605566861850520618264825752773365517937554473942259528982880253114779226834730068532728033109236301864098567854702139489726832901397829145397736605877212719956786303244765972478871678264481433425431486622830107209264861571695464805139574152645325742200680503174543666463234824943781431152279078104816070591124497200287177440717388084087213435502337825797287005121544577897311481555631734137050075671749683642553359188239537074823970570539871936302976866843921028972194197363874673503678414536086564752859033736677543819872711071712359119683075972190682071288799964255082822520017874408391685986098510458624805549656319048105468152532104047138442512107754770290132732555038809558022579729758214450762857584026026438682911205713904188279153262739058433541082812929732869892422574615976070213694614564440918208788854003138416687047484406670018124641906737613396050877631535167150481753761517371129062787755483993667885013401495918504409768706565906217973434224662819420531273419663701798423162479778819889570104174362697213415357309823586527422140880536297162383486588245088178559791707306277170010504342429038748602395060313943671322164341174917770463112427396968859775812950275246140601093620121615875595605495439288399475887958889755925760892238922247545052560859018179948329755181299868329581379080869105898633045847294980155535157171240136079085283750612227896971918996189195066673943208010828404293982169806676093876116549007561074831148101507289272931912985664666048932823058311062270754958452906093635996070333616065364049502395873736028976565430034912038371202444467774091144582375129912357614177877683346422708858358951492812249253565531456661339937588097706340261541468504756413325221390207896431975497374578174631514785297388090701356951221727884975507223848494036781815683426588908446195914352751156157061263523152715598582138613362777009762308613358917749383710866737949279494193138690420583973062323502452847764096770523110675409020899095823862871343990680057031045915046022662105264831753601620476412405696797494448870476861759031136841086730551115778144608155919991570661789139864445403124094131977265521382627930348656676041776223206543337318840183775072102324725698113861430393613801664087187000053580601066853258740219096408711169718838723938161664732029402305235588840744086254788125209736650343428447017181340590571393053985961247677401533351312698909100526494514606731950043268913199978254294378777825420590429960191272315112329352890381591599775474936333668442565379135532405654659647981960031488938049687507490522832978728747620117087565349731935936120206698143460360441090535537958932464289880661530242838573467584058692969040819527637731837617509303982985308070572813462072386514981403593689295323261659604955856270464551156954634145750778075671319965881165463027262476296613682939712968238630177684896895565254093668524974324274825714768647717404533209084314297459498374120116884791834886670524356026119715784645800834104235401528944204821797591511644453589613079197813949647736902850077399980946303299969817235669127702945324176499410511145359116171774433905814997649433990307276872151694154040113246449797640644516100139148098310568644393878114276124885967089084479810562817467909824471990057141587489754650774330916147490301630474268346848247620246920527390447002605815015432571806823249364205144120362955559432040019713133776021189544519118119623971230170877459711318668261058351834470236372812051277450271425743035429323526089616223431464462324697213805199614698639531614174414399826045990641814849850958135534683027082926494468834532132875719829740501209976902781676367775699824592631257475280371754894803699053075852551566998298722916451210118312586234056088642845356258959384046854750451723674186592060762899640262037173378953062709308907610793996498436067400437179227389486576886632570054126677486724032719798442315557015776013742375828940231291799804517998384178215729109742254348932252999765804249384924669033993497514366796592845134474191080580231530479243890975741708595334360011149882468810782789999607409412413938142834416259008932461036083275500721212568234562696925353701392334304582739774992543388674242694812414353907216684225264024957127739338061991170257150793704098622476930124837754845454959945236873357048641999702951154654556900949801957432197371440420125213772848272072584981458503821585539397347484129735064895672119728673017386780643655676875205621742796464246668489370156531788244923706596339753691787172805168548482583580850321726173249540150719522196993879909770455357721271466418626539417080539846760838827516219912920692106972908133383605445084238475448514673817715908752188362008546038088133362051524477511558920551050718560234418427170610114698193653782272340173832106898597306465446959758326696864575796574806992524469825136564147369350039868651656637944865000255834157037080313352512516156714473907657359110547525615094236946113022574957851227778221378144803308269488526666984383628469209351035144736327502920432948164454058026264886807778685275934602801470342317375667330091542363230198958278661341646027502524970585911796723321478155987107037703108475158698401101818196980100120697022099729971383286910697214349054323652749255334356505442939411625720085878365733583010032468196748470700172675694033895808915660221916274414824266540411292969741677356618807362350019811275881102112494954486636257099125264721221402938092797787858256082343545991610058292096775713296256276348054894204123288679374281670176766929949823896899621897958116434505652676258903762522018826983147246727899956445877760989490039180017670904650490765179498398388898022243715622553619438249790306471022432135618145047284046521306442215072810254500610642799557732056157890867857814142448142315206929294693819517532846185812310344438415704618912163661939106826095232628364033980105468252798734440869940484718499758729666631615202167996068647113394247394448148933439061656259235940132526013625983706011830326209889628216044138422384028003256849678295694339776857573867715339257834115899011793962678524142837603609036756499600346583023690943846117855465986793392863301730377142363841903213583626572727210815283469989925536412466773087452047177894568547261769752604806689854666555752542157195648285532845265785655776475665365895882783646665336617202013136238044545256936468552916017725507814388126338076568306890469376992486849121247645657443287954662973219645828579806750336430552426852033545004811158009019238588683199585367061246539435911568168068478552047759527438174292707636269725472007118412393228178386646157916925061478532801680799393005627163632730419443879749577401844780556091457629190632623768780157589591646747215956410336739865501927668933597448775303838934172102950412510109212336465670861163793110741295328403768601961034429974930061939486090897093948622075402559326538401514967808825610217907087871238988443539267243983615146830092347985236451720233219254938190489173341254189914317386806020184349455120719675436554407137470550097766784969034280054194542919051469650247145034811601693207846940136137562523601087498575272709980688949169724640018340022849871641078231179778563293688613023223710708025223249848723763842870053955316119862703453820038110572990105256140701428231008226867215628321562138863206194721142242567558989242824496178265722699609199630374833004192697578263247805618174486091436083516185339140821424328814935885748231062672851031846386679306744199839678597867093729259799794423281261039583808217639228746515506023960395780304305250049687303590747049689393851008456326709980709343663408581398438095496001038507610797586156651577509942579612571293085305121246398147734210921892505141895721265871402162115480366927221767176225374224683586960724749626223530134646285191559334520076770036011944596560768468149627826827151787917485415821284226078576786455858701096383438009207563339962543384435478652542418807255441228266457773401018545921891139869271233675278607403955951878719889089912039420101290535493897609394143839937477683683532263965615446370819410593772223162240327683545650140134678228007966509335847481867615605640234353084498163644512277129274778763154547541010242714264085320229047306637964823573014326093189103636865680335355865514022647497549941431685972956224702626780822945064249686174758433323564647674650799911781427500694194421594979918091851459191794692024460488389985055413594160740780682982141692922932081541076298525377785313569463254389032171936513863523169942905403693929661500015438255797139603548910713966442842970982238633142104920342085316644749491984367618294243664074471169892896892012052978444149617245516572667507430961080970821556591197825068336007774839704054961433731438951453631339370836606590920416285779890395920264885493776177517969991079561723243645437784395644184657262631806230000083352422076649718357785636170735867627383996786960824970910571937483011527592767086196919776555579720404315710885460083590355905359227097344162403611522251654564526901329986734578578743370356676469813825624778650968620419585312862861676924446208064345595387391359948326042563154768396851357082396881224749159483619392937622149498487421949191797166404574800323638418381250243280039899911138558576068754759862496458209885840209227530428373944835821988315391536974100520433661290247612777373040368521525326969491253278163712365696905360583523820290280116288068663207119084689251103920300762724737713698823518956424241833251602413987940953062481846998963609854561927142886912360950878842354428070185754673729813847146626603534405412870971799813818473636144374591319399826160210367320755011504160982939678955886949592044392984111375745589610338877509403575488420487313777111733516636420650163377046280668559990384403819991406559409739433164420025794998651864344318989519280085033384223661595464409917304030720598510619722855708960221432532320217607533890326561707159974352972894686848325411033844257556486072327613227109937566120182756217148646841491146626223935754721356951040418108176596228511772902991980188541875603796683957184641783282493102294608469078592139977567616673226308548119572774444790325597089797838754500366994254097755807038065545598577606433969945784502950663544952856036276592801101945253478131271353008336586047124226815394015625412672440857825552767819872672251966483389871752837984808193666392158386837077447002398142317082772203987036990069077458485762119904079179320875609161677566829244590433778845464535182255978991200944260058855149833820027913525648860515565949067434185121805452358352200275231901512276405723205722647571189005411999335758856760531670227913932879908721982513441595373291857544021635192414479958621435993603738820938996930457148396998466422081099258400301160729001519470917875285250363643363143853219825524580133520961579119188883414990615214515488617589511499947383464138149344674913772492367956464352550909397656841148320893334198927387020696019304156730589336186582784094592233956783112264858287261347945908533381047406647495996573333599734324657561542945688311100330957937042281268932212185643135143875288667182889987615710754021669317685689531754567664259129426146886266660558958578638529027583711689398523931315270900644854872521491015969674049004610191726150953105858296798744319932697691522529476263982711675461630123910623139702408721101689752043158566301510123940830242165784858682091518310734286122950775255593853341545092396985813895338260127061989266689234855360606162825908796403550150765510397199112885817253030398627918543950046370433905674259843681973818915888750697544130652965116471842789829430492228438033359816055094836059350895446960763388772027412497268024969421280671718148595648493803171022156643561011211256645433069418898739283345840179934867268267513050917458020809976836002122587986115824945180153349297044614596805026874317716629804912683166494554699579806165516712168036731946655965479930821291030559033673359645110446383156983049473145155558123855084852469250964985251350116863074339283257500952410213710617783430491103414740195545316233651178330721313172819603036872820481153216849435118106413425224570997644853958847041797183184158922865633055789300424159598196691056959583881210972063317104499412250408975274284107260642515839341950663784924714815612850840992390070895056977561012487244703172157596553231192415527388596685780940783618914471533910828272985310438146784298707443250947386634389981122190721212238911263754290879966094654067336919928314715199291881099629787897892098136819927127782907537759277832706741113951455005212211491489844691298424149348501892759053647247547526124606616121515197079378337132852475252972996037508899183816329726823703208788785986947267032457834658911556918453367115771346121993704848874068614208930761534327104113017240578685253001279320849091796221421643971913460993488014213719025104041688558160079249860889685051917754075272718426163431728114945265161153676149362438166244177231448054108943730261095712157865430341813934156011799720639576079256250447728767133101399716456945201846816181334365519709634814491458322534769402791021093930702051864519532284914134947017396976742276854643345719761636511365963528625746215610676803846352458852644882582585996102879249925975031476336979529458245495302373141371653139446162454073059850513095901940938180091524985273613440498748378831295866277314364847762632276622911309677023458076797234932418400262281270600355421186856229775114817045615837638502817559751137598984860988286926737445703218450833340423225146202854013371297490093686312432742731254680488701076770558684273492531890754911156303016309031730835917798721222567795724356042668426319175665168999096491067826139973954088924837495832017616883379870330350047050548891564180453650060573346872108382062587626994765066429256819169035495142340633016281165466676937435455506882378708720611680049904411423473230830848405744698120935706288974521963355430376053104902144856887684331423240126704546746318233139034916326255516761325070959320108545202785894725231385750335206236363713871061412430681144329569566444869760610763525526431498662276107961242500830614867427543122574366992660673015726735508088184701957262208920249531973416469011951024623234670597185236867619739042446566886605771229710375909715822043962226675682407476352814209475660437222502338653279670325819520795838604103190595758075107378253645290163559786010150475023841502644960201831647982978387622323345642002377871579717862137111137781147970987450452206138967551845626689361185710157137009509250566052463006098734480375354149514919348790021509363909623359529985336418846892200926654517852899587240532788291347560504085100023373978966449433297998734903354090501599413890104871085509413137213118419772786762029991092935334602381528707351684519905077269221148553968466832652897726750204879312435854951792159495251016299784810879614346591114246848544293966164244743821014405079267024412974344801709049967245088111394761917615827478669410627189674565206282325756061059804104334439608589689501807547561439076353912595645711629416716997313527620242519635186085440743316243345577071368068613347326830086118318019008015873124941454942691253603189293911705636043358607236630762927245585922768444739495073609088588083206076150635560549505959249327952305914574466587642194648219289249181431241693813657652486094320053797078972385404345451995035858594624935458540046493851211630034949971817180419439573327517963200357367335535440083892065668815232533741406608176564304281541013534165798005268837954714289181163787281052266437638431500487512414522597913571625238125877719785780661299089063474570741888273721139226912499243442790135567202850834019021538136398916941496107767979842817772098673709283417241386011220650383069541836120926657565147630687976586644620302938676730036483008067232709958449414605478557514109271483684526820210854441400256711193864436417424343716668025354675890056448148523787831067262475218781238118088129751054100567923529248974616239123256903357384224929160948922865307880714830919280007798979230798638067771981885417535783485352198342687055456548904579865668107535081776250322010011075975033694608583351517394650475086229895176737133159335503752514389366728064810205646713927699838548941649759587206938366011815854568105618429649129384005117270330606205205026670772896588456215598112017281840530959568489558951201957713754800673806194329494088673517343402660559329342347440999226321939770221126234760867578944658031310051412505171100187983142651121564977417799214454673511031935904431809067810159455275198443904549308896305699944358856116476542373075156272506417435416383663076631748244260756497090369282016447229403451863068926698840154317037135796651346503849964085508283118906180364724557340489222073259193562150709672044914442219351336041683083830106582810689037932175957037038818087927171738103230068211887512028850490125034549561162343895242349870681274972431592777163744474097874784431873199567959908264625368621975382121829709447273356761288177579773422138882617099337382798565586726335022850800432164520550870231140573920503645133224131492518033380316396611194339385536149288292895616567195434746254865420209978758094930646999775119008308185797066580389648203749254760006604947070854449636022756170208955751051685540306658946823414610540796192119989812087409761054008520267731351690960083479621667554418236766343664005394749163826238785910597243581987078994999413104081585897081311872733561735900828384209979077504438530290758135502188040477822087014040417769631922685401293963264366620702394422432767664756205908973601664236279460599917121703081319710929454504271979639742797261752712708265079906127217866911380420500919843719836891499056162858305715608139244820829913984636010324519509952723991558135355703954353811822235051864009052933822242188864534674121566104736869982746933301669092176582426023781738784677890399161916434593837239364528881376396362471298232892637418213489586245832918577028133408544823337553828278182984449041666573671908174613714094503620460151005098193043662706211386793413465644289613509649419788946112825208234638253642362004410849366890554560252005287684010190241382795844020245975907616754087937107067425563063166894184276846255518017317946478456407921920121402192305921335543206993011899624283576255901641726081992518361646566539664321004019384283820084821226156511232630885546678848586200015934721131835837099439165465055548548535261787176471138858201982877636921882218789834192775414513642809692775901161310838505069228208563001263406906821210015751664148959312950849049081491872041703201017547227732588715950999486263703431940161193535402846231055313719872210933484617125406424961736655497131875889690795194842752481450274999297921529852865333967000230700802089129929280338007938298375305537841493865425528260973058256777024585952306263887123143949279781258489036198037969344769680615446647623544895513638972592691744434180873339637204013148024795887305090968267237617328977994539610356371683088877459174649798117248920187322129557325079962982107723788031797057474594163535401453818869101586939010589365260552431019778580514333424516634912750690425468490117853520787999028888775294037511002778733797022928255361339285809818675896884449913196139520791399915244249357645369633389346552266635556757037877801032263377359629419516582245627203028352328888439249219635614454660045732020228456803547629927792950331101363834612731857220550318088139799648514119026552607237197551383942098944094170885671504892196790368543638638173933197416614577539496767417403054721266191824684759738979459322304724015876593459589081459425616922934539705136129676271978040691153774725361927185620792682771076882795520885632026679739273475248080704403567933386913333518673267843499229260602574783773616913645852220812249007363258513327051686398763183758978389185012110020189706923814424344303746914070585028716690194345559294731731833255423150465330091124801722862579284890331751080525706016648400365852824191812622161210342080017885616264547438550127605596742177298739750357500303975678014766597973754546793830673717817479139810547742561655547371294587173174071739958078625508681564747923725997879727336216847929066557600366612627874780054260692256778848529061556216823079717182559954174181774313101260640968528520032319772966929633082740141468698294545503748772504597496974351989353941802409933054247309679288013153548114113533564045044413468629989184808842207132451047718134972523959987470317567773657829920007795822119555770455965786098353413985166642319107372705499579056189208280706411732661094473302043358942884154381006556607751455174483181079683406956353627066128291233361834826593155385777021232773055269932221112382200116531877300884586301207699168624864850486143002130503844626908370135664127586606518726009587655886959219907519234741537062753176505525172865100024392571581148928072811291957052974595331207045625004796555205945644042530679580207288679266063553382144336133179448657525829245205021386497071097620739161558619746941806605586922561209204064379734252613740978984910893875097663184933299563978240549872279378333081772358174981902623806305214501965859043247901374004933789504073193402159390427119307896636334262390654163617988144417009382084350017021829867438543119841194522649632302275925487498608720356342833462542080750844777366200480341953878837387874941841542151175690143407446907552869620266620924751535739477340651707967714728223362501352307306592128894272395873685457525770783254252989389538256446189786794831766256991324796235460572525558084279892240347875911475730306835028230537805086512465995561481056603061387501354821707542897230008226428034751429368941262955497369306193106054756151584389272459157561314244904502862046076334221727736588481280986310076381244052488326539305663908039647453943938272230605804121235365862546281634764474652835982241332925083722109526740722298664441256135498461558256197320924087080831299090701079443398869327180011461350223545473274677888484681393020810162882486351842358704598916973652383523212474995030648816479703239688661927257123551918328903596978936937293636258134343193187922662551938962384162085917103598260008797165699319944504952794548150322984863482513238269658132721978494262607742708561227816139023406659373981972657549472675965454919667897827371793277055268444384564013077735825949912560681339962585036849213743392457196126462581762488508980577563737599087044288273851277791683137207986704602333631506506548547787619177694495113118028638095073282115442069286055408556677131199659561067557244729951542724801547302731592522238488390086662853039455765992841308861579303578466688522385862745840673476270978229441615706078172973405321435612457907644496743422048330042437234529145167251929776521276555808944392625068170956025704312377762003394186896681671628216639659391325776626950766858714598204157359565207326125739948510666650173144293650999011998666183885440780048067001591363652481460478935961248371604985008052443459640924994316617377700829077423061276067692416324502578692397999591767334690222257414569808120533272240342434869378247072966951857696439742461102233185386686781173018014891950248194569408334743271242548203706917589831412231310804731135094483517458095924190508090768882538664237148281050575715536010257008816265499622334219729575656157470018615621375660196556649243588726151600101674988391360324447061520370814875519028614846596648900203694620107268925420794790581657225200322152900824433074071289140806369901636690534015337251815916212945382293579420154038755187549012534588706851283064562971720992945593801244407117530049794750377219943365704981449341743618311701389479384526166176812094735989479249415647851811068937466380182150134627845942083745268991892076047534728401544395765770678207025572451335975108854433162948431497371290593055090386379303295471345392378887769790380171383241060700437485938040250904923495764671520464540038318260689714419228852359707687094461171192058239573559934590093082430300940950436396515019197033862328452871356490543949808027559201601458080374176078191683434942519439219900553226790984898553685560048848260099407460689147477464232349339701702217793178365771358941066853648373463512293167674166703112311636611075484301029833842749699559870292185507839716108615297180367193941910359066111825416392495335268807751612137492154152695567943006933366580134102249128721210070662695657003554054984262780461128606338608115762342373802683990926412658267652741763732934762795611063306864593541336821737361314116226524434649316235571202760830747935471307855860867387154812622654719488593385957829299778235046606149568473905938547743153347270211684805012303773972147180320794990659503795606187187817175573411670279030711392439885860458726259298668333957830177069510485035596384331261782696402926058276195307898321399602982749094669780745877717816683587059023532552792230945334575428802063912581727192123175822594428252967459972722250263292691969389255472365580877426461104807829598085115702474712175525036384730149768843603428944567802292121789346652206449715538474493939979160624538876400202442222851221084254821496002528807859603765715312641540918436144725853756095007936342367280601662750112863243838797380936021028037847807479168624030120580409801853688324632893444044520659191138794913124099130068417737431570361096389169469266967101793843359638960681342396666625006649555097269868747418395528086531272191959643910908137894658285916342280360275755474005432953919921602142670150895482300443313574119960049166006458442698122590036850270331719883629130604701438975055642170672465972635900121590038471730193535604001296424499978219882574248214671045190795267325957014112838489978737422664104775193764121338534717258982060447549058108263267283897588664474469564724492285437175572591890341684496380488305977478650272271200657380924760750683725613120109313485674038239689736643892602188529917643852751947935473576316739085905401645299562717918319010886197492681777217094712737293063434310971114897352386878543690671442238349574535746938122409303157666532053741676640325153515586813404292067909236747772998826453174690375816271194544811951395748970608537696345256045795141003129963806216605990923212700982757726402866767632435405039161869805547578318140820293265706751284983293877823687051959832950435136372976667604246406798410459147050246416305398761269285353039623553739978276914838606968313645321996339557191700369574037941869841220171137051573800763780960692341444768647593959329287601288454020778508274684589375258079208212526718324366376376317596275680686918400660700360777278519145712998859968505996704699293953863874460069099076250199890141921010827399482589120029413979371616421706718680998905430336809115760348499532287890255400876536736737048442674998905163122862724949774781834699375549492176249143769670906749086362240756364895689709910363400692627487818662096910893767001812718869579575641749131220248546055192914019082026175377407055909324711239427483039902446400955790682039430511617722364989016884035722261441176094610134282552541832044097313492517477669357476318650588557785903303749761385814863268432491951614837678652914954448328936448221362131888438900339561609201500362723683391187478418393770931288866734293013811296899219820493608218636243276814197041734343760772544089623677355865188849572838568982655246420428763605016712109903673249013007659255412177817071022376337063220462096461444693976389838809990943027784788484724973136074689666994709482002007764613309008341082781072089167052126821871146586398160520596391403329430462229077843062166507297718209092991468088936898960514879726298349937770147787727795635669666071336712650715518333222060295189665696066148683239940486430605932436106657496419645184686493372936777198391682741306832840619252161598526461139088488271834322701722346373739575067500165285745372911782885307406771863938526406465254325348083964683327346008731290529518987021826808659341553772465687599797765155194295302323888896930589769094223270917240058312782687107989733304978268718420931157246319554160660961802668282372276906909727928966595581717762797798092872741655746247425959379598348175910728986053213519334539012266163530569761393831892160478566828196990813784928211180231932984722158483706030362075111440091625309769305782864544213615140798423301252503604197680062676225751415788718615328142692215511100918387822531555073150713824304105282710619645173259853064907417165336426392767851796391678487393242037288573427867912441357020003428565772781360095007258342186058758363594103588346628007111910995764416051584774294929551884893807225379358602538633709164988785195668952761350125161591542359884329723102908132749366581274971603114678062976371326279532703933159641718339736700275972199128731089820094381182392852692613948326911666969277679277283745094555215612220476735082304840374760851463033200764697751952237060637178460940368166087246086123567920083802274207870309783288705797965454223659892629631137183127741959727564809345871010845497663167131308940954378069591299996173527045192487074881929033424140939124220539872115926068231153019359680255572326666690359266074600523876889414139368412586711886676443006788657134064072859732005984895098932355859558883698284774457591016771825870005280675555549715998995615982996868294967061757882782362294247279242390150229441260300236430934265226573663801501387830428776106576258789579757500961288994542556766618933835561378295567817398350731775679404655435519942436343842337400912495539872632581121372123915525630375829221310974290416735568983977641754671545835000211411096964002638615627063287892875071551917200260453274100645548021409129068899470424797774886766874368654805891577219039920891171969638920587100754401323331204112675748758335320025742442901395772399234878635864956706590396510581162770871879211656541467366465271846503393311358456073955749508338899396166204137304893335940774359026204951573236818706410297483402321607943698981742203014558336351870112381510134383687808804581050918423467196418728007777017353789176554594048544860989573674773151005698759025628148519085544540675065111538467892699118534544440806495183371291807375585104580818063227902894655374015560190209139130709008164858135287665833620206095212216845502950848310340675981945190197074901380830594520533487847933459481931689892161458586984970409984532829021385320035988083027080617937891140534572004222395760321447899112733123797285125290607170698840261650867128995792819598539047339959417657688117378317174875985632820289953303574094988169128429176841002028625234786217069912027718140714108860955402137901421778014678513395553718685283145474497350853813836808728987552238928896839604993494399349768622292972681450432409364041552881827847592842170901706367815269381711204305511496631264612072559441244789861190891005228522195650111033496954774228997199252366082725622913835624446235219367457370887489769737698886200942055439167330772926169213229075228814095140341777073251351532656299308440272162601050964121576061702537890773603250078644338305324293585419373277951901888137083531424585332129146031737670815886104948214027327003954007431352542233302752874592997657199303187313989321197411577135446186272466216716752967245150658131130503793503754769469878293689699991908583956964990420537643152722293984732688703618073567375037452362843006206857073489224894681676476398566962484103231163357718301005831414530350457032290741024745047333752786753815338314209476925352176433445444958062741150511550730385630950372550519811710104814634640927347921630038652828796091609462559655302237133465473464443558499935568317241477093165337451676462080965109814881783803223678021418521882413778182825886703988300111971581304870926953646967556576485905310770369402128783497303026512347590832212236482167663500074008308097911848807262890436799812914728353185250453825237372678420029814902106683243224559809340431682500270222248945207305576378122654676177609956918761871546677221594275606111457112985325730016113061294333804223813083593766253031118904835750068113948306606904094275661233846478345876005101314949092351604113371237379193526448951983552037881410777306357302664102772737443062501636505903508129971002755014885081342104771841100472867813976890705194540672729012360761470009039793545539303900884140824639667581931969154632911467607821449473060573415461786381224403207248978905278493416511217974721784577684210355226025040067268054706822681145162300262635282762696176676091155745341209433001309435797100477108966976263289936115242412917262336338878330310852588054211115620413660304112520493956258755122920306753281491782555219340507390519901794442778319141953929172958269657021762435844233410490218177997377424472640040950162404048729290271607712770896136899559295375510813727411260177090163434610894318221486544877775973424023396431408779787471722618074424759463548840708666483328564021107015558740655527315284213325386397400238533765085566510625415380336279363757205511835092499393522564901610764668162905727055599748884958574430108310326514915195854097756825127850597333233086608624060305215798627928659757726359592102117132684458741349077376486768989949305036794652871359709487958591104474802493344665503157564845277559902607916416362955358912531585344439500539525975476711967800181595533644638329608395277770425017951956277410069025503070031204447265432805049536586111266605986942307974807409132053498885810625662351253306088628845301557759825929924388107907272161622647342526228013140465068876490639600751462705573071057582425360903245413682928361338826089217310159707345707354455761077558311011722859244187301532007709166632445416845101544945976597062405965805628772367725417534024340138183183663323456170459473226422254785749992441545358090933830207972838354884642037024545795210584587741549264888184602026955770456572547177755762456976197398177438560345917860962696176438836947407964454930321086392329908825435369826258638489299429150989323232989542479875272069798719856232200838888304470518064815052333610691723629165592757421291237559901495602253398955431436689679276553447676187669602687695393598231869125918624775178271085155668422749373216119437418690262635329244531081214487117367955304552464704964606207182548952789720901634563966939381273814821868461208134488335760139318718855354445797996939981768672336504880633271466767988892805121711199542216545992100829151563479554098068876486046338906350715483124139975253981667973846951091224819439624881839704402989127346543290241601045663872237374451208619240086939128057881258379056975993285074850565714324098542293739176071189374368907777332867427593220885097360167616340236993017101371951759348960720306707898532467438018519864986482031424214877979558428135901910562563032011244752707652268646086388160936049974401572752429994412693571256803672979201814570115990643344466792817835978345598831170254576763591473185396671799439916348155174286057241092109870251987360115617964348536889279110510055855456200758049004516966147548269862819421914180295305747345043958698617048080736707993485622888974398935683906573720785798472107616132868031940687792907713344059448947169943904514380905961964591304875756906943806645779166080034084464225799579109660515341508043928159749604797282894713402771580086660258110479783668354398751214269597516304541561181225147237655900100675235255434881745427546379427204778145631394034432869601015109347738663255351969909033347672122613364504067980793732032157910077214598802003323527960362676217913361688712098091675313410896370404319120289530837658489570078410691041256702955898049728538651476208898536216561904549693872210038474980401351055888812796382626616384564969623563018753021009735261130098555315167464933952198846263087123849194716775523103824820998583393627725812725036919741081780587817535054764548845459571322663416707569939998119084469641704028138150282612707751149809918529369511937315660828534918751835935407287523856476303562928294114306538361327322556400147990742168204697795422071820948470283620526171173436403958528735778696173442099664805867170731667268467322540466867467149225517480367612991789541888708905147437749293392282120066150110119847636204839683434915259380746659981766473358509696760632764783197332337509936174317622191847645013482049531809115205552242902485206145130124247611182078223419887333744212292516041947053244524778456101077860470895517345811761432772426367987476256301355950548018504945095048303949620337324832409331510147110457378419638899348692531249538755348535834285929655920535249971368457241516417591539001881257719102345704898873147782485255328414324527720471941361404266069038862486003124062538068338719517804553478333596290938692592718928296914866804298815345246191593721425186439981682287862345992852944813680224020439186467451104039652498482417999223958377777787767421714069524460995104612256199898071305160335727434424716842459830648072163449090542204396319101308107339332050461406784413579759695508620117053523788563543252521252631074132006445275176656070191594803306793225999873015663894079433712245695462909098218013286472355111362539742425431881570332992043337610307380934772394270350828613997005865232363341212204138625485749501324810349910894119209966594898273505768728293990036086193274236807553359601824372884819317227355250535759125813915590876187422728750583046165311349903676071454202019908629295104352950653963690286536946576860614957638459772060868051848407249335961906147161152519239142372539271321677159427084952896239633374297696427644072945929145514573376321884079608370226899677891314827416494091461170747317117787681032366288196112133473176925986364635868450816291237521181955894854758872261655966491699400952174397318426372199948708073304754017040094144055765991724195718791539425878425284386159641981275386794452987733123915187336544366011899347388336636874516527469056622958285451829220861577075357165196857268578639689332374208994645049026143887620860005938809719536351976245179465232224937994710271842107489078834009780309660403866983022446549431759387511441161229794774676430006732655270378858128946331944121109285766378043046359098191867093092448222538405760728386781702284357288219223619831125100448141131126786593355647223491350058180206596176626968752594214956460518723839467593328308865337554354032625583372946496311363409991853648834559108238836370601749825975504449242472850225933063269244353644405595627132391220326741133459838875656003268138421600341020702452659712889138735253547900917563754321374218980968718133389521811438929710988822338254529750579197031532503373005561236720509749824164317373750905292869413793552713558678312383216269037813060536237954719248697009240839549063055275017874424471301918278377814350901920300061008700401309817943605653921143304995227342533207568425719758437827575696991682708701446509846232739752317240849846357696895976081054361371446704822857795645914285155970796923020518125532614964494596186133131596711358663762434075539993643529586999110069406205974291495306592692614672430035367976383463347354455429418731793323044665042818569271272263172760906210531923756080965363361548021711240634270001149994473868064530549098579372034689780895645241566660620641652663156062314936464575165315224676150304060681902585905650055390495657903629634343047161441967605168302883657169760561007261551638131766593483214793709361734945502379458186511468517392075682932574548531427623631998171031909454766114090608744034931317031843874449886018830728118497032248490902180624678483711346445618116508040559919614280899338497779906583289484180455423540828791556055211833947565947137434305936324742519050056222959456862509371251688620791497640583616419993340033378495308272220602784619901200417374475100542161715799143544008570275540134204273200678688169020075431387161228282176712719683562859038072371527928774378466294736181046669383944354810964086997410572748076388261731323833705751460261530751765876292350138980519650981591770821359921479455145137692075746511204217366945124937010878462570432157729979351368317173975121628333900766204301989880842957937722113185358563312835680657316831116274425517345710625061970265042135962263911748476853396768903045069480787239702882161488652420989442489372106274057100369766894366467750537895655604966710991719391626821719817530576153175780395092698382353526718298046393447027662031590195069910593649337049262976522714011266875713323490160289342748363964122705059402180731005374962799123792454592366864505380312569731423506941862359704303179366173366410047934137520441996617817820704528782763995976803190897135133680231114581907689570402715082511750214732062235086849128208304096063692830386185649727978090003805585099760904943736107450082101706328414729217278310416523606999444968389764661654635643208390061262286878182963975173593889827962213965766976186706522446436734634887181831167571828991872972396801331871867066444524405760705707447753372236446087299243310302967465082325085369455101705407403797665880767154631215010338217508941660286210989433604812105030296262985031383523438479118173365292713365190589199094295744608645147867788669843543846013625671237725203767563634237058709244536579864413991313729540083751532214050997830533727020299122568861643137318865319512089879939212167835317679793986158090087518131186168448125671192578881353866541532891726231111136890484906275674464926779474833670092706861747824921078105402447564732198434703797327804185100967919891957184707207828576701459362994807917703872090883377485908044784033332915704788501886854418047521412345567955465907813223901197632378260701437340658187617086588563358010330520280357159465535795389207544942935893047140645695001620579684565862331554650275327452034676644720603703941281140918890428421297422299166876046321746684486894794616429035858234910627202034759045858336464770008135812318566971185034957521148798820010518959640153471706488054058184145413619305636639645169324571050386242133221837151610564220809075967212647474195297407138207038766084300924896111567696945076156874735629942909613132409546222185278721763794898129636772852432095786563607686629617308650813181163162546328876154454473618823720276360904473305185413079959379302764142152900352014206721109704772779237417633769525147738449919710548278008363036572311408943758175361923261776380408560828678409140884999704491478858413123169719516020545435423324555608316300465930010224101596778368939177807617701370132370830986929606227624747579653440524803899349836901268683843436459668368808710084303447675031602145337174348035991500862278559463954864065683902171559508500984275040555114055987060661492566220475450385899529517285145246142690238751541745615786073812396929499216238766911997750052878457272832260102635344633414507871298986507247652799578533731426999982734123513936684513194459253172286759952735108233944873114098274018607766246089690562144881428661750960660374073417016105894955070560917105919844376343408305394823009658348023605859860822280980884743681933791983037389305779567346271479204988987398384762168232172383395619283267382482831277909572841077054983279468974029617488510143402938039227205530565551593781758930925178239984180572605341177602275624573764342880807401156322525066630781330909185181328892628739374008314096552523760065508423970601188444793819772789529866587046079664180866636483878989515472344332256997726217017415637338708166574041491935024636682465489440732339948300268576947405932879658283657913766536645368910516386146032265571117672819010340512647854040801145117889348879204949369495600741595332679187222632587655566833465931686777187218679188585886710844938727585817877468504640725482536840142935504402066222704779208033706626757412801322421805482579412639847476391213355484273960036256999780351006642949502041217196177531604844057097341842978131693500466126654819586019208034139700847163258453307287066529166396912055858304530668737396292688945538195490009300341788591276278316505287267040615160046701968011679323657195121915158236851263764273197046881957075957324796672304039436588811036542542232733872538986834316038995827122018021553300124963769246940752488937461638015838668053381662002252878381551240115413873320504108277904730125354481081519759947120970590253748323160882108362410407628942627886185318443375726422668998682823978094245560979687343736352514587997897853190452762224880978397908056268674126312480101688113410037205018848017433461096403589699178599753825922524569318327327481948480901642895614169521400742542636699180692871165956233154860712350244154235779058411008023767075949455077154809177491157150771670771639116944683705990346263582453565105254374396450146335658416394094964212346610390932301357011954100063060064366654665645663325587965663231561879314222361491734264653707078302637963996473867196543953815493060345606241930802467150224096888892418189295778792982275355996747941984696647422300565381079177401205964315818693174088907565659904443247165374121287725875530683410258334139425920502805153884352779789704241394628767011338122129196428933144264661213911496046653269761520452400077695969268918128390036887033695122242648998603528261006179254540399480468353641940551106164052769379883809529215072913049430782408132075843378473288913327682361623470478023587439611503718735361165289754218726283938732311527862883486723583008138555920292121991515157025549897305228568475015358896716789437395489029521453499950773322012288699693896566887722706621612446965610724990083443905969719407959672443402574367745106277215691697941775548115032862523073855849334995016451319452009928060680623370440607319884036228177377390463989947356501054182157466487675848720477849564273278824376843622913301434595679466968601808527892489577957018650842469303906041431813365897225195537627187498431379355005874770091161293693768551729650158583236044754836061242062900421565846031501965824838815978073833553528050406609740690930836700610140516078622573268097179747077610612825710069265825257426573633700300258245993971684835357873168615242178838068610488443825334496495058279443915033305049867221742955120953930501377836883831971371222656854388963354664614853371951355560976574141794728731783234945175430122973441244269251805253196588548175261283665706493386426665899414146216848606270483599989488210833684450118333761993547965961303110065946262002361513695693477432791511341828088098908100715220431482113136758951865388727143221299963845824419082434090110480341487782906007238895607250642593662406342108113320628573561642031515169532924074294847133608325326587190640512874221739161477580975132924081836239030369739904119491751624950739348929154132748195081304822549442721585817279931654106800756682611669049208139277659323040428046661547711446087305821050293389327260417078825270631720234356593643867679319300720284890285121770349972840084557931955951202041876591389152324602144312810571756899822679174901825897587937925688795044715509129355879770757724195412881960072742782581350696593294571683655263753636977404377881012215703359612299289392449284521622845206459522038345418928399166337472194548604563939541535048159402924776168201690822580317809801947295845978290292329036478917936557471047929958138630917412119038862693121077883556517933207255138678308177177856421267349416030330267713787711531974712725050231848182984673260601169184069712757827056140752003256231777965736348220860575442207170206628669139324150188812004847694827555443806023163956189938346856397536604908753897632076903430381283470721433272132872984880955283181603125322549871977181424275174709550649571183210301642342507109767950221946828894960431306179893940242940971250436275579697179913440217292227512396136903293984654788925408655841002978069695065309392438452687581685606311016576005429524483821385597397476084271874069312009009641407711007572648327483979445787264355588830030072334520588564783724367888866560222097619659497569303642442705390331200230848128555870494637210056373182785560818944376898309302908205900296092860548435286488428876712109122008346954813027498604184417211103019864238330644322359551805792857303127288191928628324320159069100518755065119909218719061481501432604457439740606689671348930717561365809392249697664238214718116798090252873338370585149687530786921802257960792448114001499002099104752491564223664244052138159387732696088063861518893391661916367679798124550263866617633787801099087434966635101956960290762745655835674579047441519263698408801662542158840274976398387870672860160689182415123981628794901616478699447194104384695725156214815492809461527971112456625771710246470311372060317363893949563673491930181636645601320427674120759318458665662107647078505372242979998028824031236976289332745463473344347784494306988640350867682523352743970289503914915172788525122647974894093210415166052078444227449660454039566858741452401515945006655245999612869355749449853250511511130989032423051461743428195069519226119120050670229164835983890279814428569576693371010970731365320486633237512526099763773246790109976697461505527684810326677150519274376801508822581159650241536347365001093200475781939191332243978707538630470540263737328740786508265472355950149989300048132044251748068633073482558579148577104119984780852065126327796507837799498907206165836321331573083586374341530079300435856031111610727011923379906521402035393221516460514364491663033203183893417283858328651365550827664092033503998672806999216888156492368068262339574834479031299111013226207369687191768764787797601292207182172390135929416807408635044278753667560010537498481915332680204944845650467025605504083788049166867581744157931027218216887589772851147198869595847193705116829764413545963569173209244560000530083750534337209122333124852167285125496423771315669712246588319016299765991360091165036528133601659210019667193534061162476311018695228212609478804405096568868545090850618540647111985711652872489599679211269254809953048810649886282746935020471747297767680560220022851477962932883649862680097992259979500612943651112262612408316989389699322856911649939689621455565931560800916193048207161244877753703304054493176208884447026255651091610410690850555251312123845381928773594176135587371448373260994883538275479230728442477079982374340834891238097701452981220615091790818648210598828648088020146958249127298359057024150470584517102919117739844530568185263350894021631059808860807025283510924500871123432692398752441466884985813342674133583288777458194260690635067921318232423351644991789346622960709974194238417942097620145149928526188328364781228093729637586177797974847077258393506041907253901806659128904161065127404522866303818461998920173206670495292046547455063601740249302207139753017962323677097976618366303298438957403842488996734514191822816334197888770886870521415678890049622340587492183521070218787521150394429445436643047768768007652337725181172957817081737437377538605192506958305742737151747726742585871967055378134769658891097107309399722603930532733697582353014227498262925372023246906296732404055626752705406884278033589255981291882106301174274359517072040867873226406826987642047222273584315596908368787692279008567616375846773883561206497691809853792445789370194942401554480855658507872483437265257457611317017953563180574578202083965445063499145241113021898199836039950722624285119130958303524101032530240950126743488818454731014204237565159688305809470976100112468646865388204807697866252416522906585568187032459796395658534129224270865619040750686516902502853739559168097601170047112919532415019758467900688779302306881939101170736716553108712811416988320608037181873455442158338004480861724568475011278162628319664724583945468559031177270924779026273138443756150380584254008370998772190592578540540534248573126628078741679810795993937787855154492979498074125285239824956415441636533395933235202709721235378965719402457960226600826837473571669450336135656999855760162329954354434964807776595775833285068284404458238915468426898800172103062368452672293176575336048026110732661317162132015596601917573609668191413069196832781155974601769860820828207535901255914974711594924747749773576898879245757406243433475855808101460769723697399401686246549656440443264202858993008030032494649862363129881681700071185219310545201008538338228095599520678919952663655790871624489124668590346330133256167974368953795742247950892758230462548512316096969707371533168675512863559268507016041692653846487442780426112795225663672947597108738227485933668435409396981441071503537945291528014228742435981149271654826014670415051505091598249472234837878190908725172620415296452816111553712384974938494888948176267728559051377015334649814521675831810691347322769857552794546163649698419714478445561835056971755673271027929676571950727045393313307179067277708678214028502826891341527875201443114900357200769617583876501030935210827794473968756857428152935441194084241686605444278415917886987223070111261123592957467092814485521611906880789638805689018114962303073734477789109962721636986944784941996169574494901579017258832531809256768625307054356988076465714604041599712962898281520822025782729433677121886032360044438402915503484130307820775315262474194520227652991662874097321809425639994225357634424254953112604435530354659882883874722850347183023884442787343019294110817751825274763886672928292554768004708433948234666133967596001593574055202379747456883222452530683750615144480831018683182109407433386183348740341729917563189451779079287550630904341829503030515348339475250274074789326420406016509143455297347972573183738716076455416445926168180815069444731290167229491511652771503627949334476609781424943055512020292798810858737923523622915667087757519166101732742966473672515977797903872015748381268382268080499637936781800799040117902629194279296572694038332831397627521550816206643752841155517666153218530996500211356644805068672320246754024373676669660108278441246968932122060599113369616831675393231838897699350423348155508339694186776528732952764246688974707424749472683641984507908241985482633114289397714772694412899079273149933806752305860709580838175431799338234740090011416282934729761687079993333558518461429915109459765794907444374850168584575426675910010113723805780288931375802452764359297803787594128424283540749289184378372195433075548618445280168140079619336162139669419664436145999468467565540827358405372897269162953150464451501147300723499865362714216470727537896536300280692320769833423710135405935290891148939860818914413701090626873025547322468957438876451180894488056809853024825948787060544720593967057282086235232454909083051041238968667909812848617030965445457426928273171316725021696871540080402121736259682407659867667834517834928298837707735639035050950662451899896617000873580778587978447896044241244114056764373110642113367831646812304066871221502532340343834742377340829017080038518155645577295531442672487245980965688531196247703522657699931596552330000921731858994502531567311028725683824324601499440209305675655291355502145384864903664780824933811925383487709048521476366133358443342910434300543227144559631333182764853843385357912513688365673272575788281993582922451099408697900415721005237652781672349222750758232375499659745430849046975815751468889653895157383332512168745012390623982526716051744970778427270511106382143588485937835447929154094978788987158234585282476693471268768141726055951286590950760604128172897072101028254942745870027388017367676394237906677127500053891297827983348109900227370000509228473361304482191423054345040729943141456845330335026864815298290928788151345795626575741032879286467960338239196436936321421960105541798744637964361818576376068007138521467036012295997173003139189747948485604164005061129068795568254989230857612311316771622367085483511356805413662805344241854617622509880652621543907906621309555671104989089192264685850291902629977674186469640634103118372971763951983826574517068065655023063729178670940134019154285491054386228600786640378574568665369605069023495583549141045202574513918244005137468443017295658578019650187841925015570022057577755828164668431918171908240302294079603897167516882358796505253388402794798436026429778858895969648515731328661729016859189374479396965246531744646641571042120323721195889356229929824342598044661163245025921876465630066353487081551391976835538393076582628275981088579470650849606421099037866161552647401395172941842994521185214130414095100865275639013507280756693806118839480435103783709468780411129103947614030924210457817888764673703251217968942352784476139804238193301302984100224158572949738753776050247920659403553284292509720802802818795452322644194237946205451174639543679502077442244588296178259903453418561723426876125101074911472523416377232337226108595046416388531719657222291095349609640307458973693832733059126983944096647345354139421778560200814859472560961987372676012452622687339684985406772345963492605533079572430266462351886810686938143629556625401993032604752631891053048365009269527604545471312226772768703373399942159749978750695309300866316911852194429096458784691438544930132632223691473001148025711139312779864953973040467139716437443367189398241627227192965669887268513082233448341328241500662696701370243739577504247351960164793414557511325225968626397450003270814241753230129794335187023568784263272026336935368514851414226304771933549306547875234350568473907950021909363680176820351045919288218147549963241683473308643689009962339883231398567120644067406394676262385181315305549164546212806450257002021174070198759164873121815749822644808204807857340317031738612891039067717351135077799469514690696651047206829404710993412134924634243628054822244841961306933968211201900193748303892714940508632163540887956338493433654333156037545201807292584866191142269900583493495503365130159662439507624197299725766460254294040703584130943754717321737378840926567517695802803794584088759457600127337521583040521849321100935831142008422935274425782213592146542710142286480721305903194398299884935673011002829548369390816384929521816326553068214420279712501831372007848968705748545777270206917656893143012082330473968571691770431722826187855793326505824650357432425511533111660990638151163602972561235390594502333857508535725176705863319948668299457805209260019106629859132249801585842138240658575254886232018039925658357751328307207259003979974294118462706985789251260194522401498341615089036780573274353700914941960190153194118131982219395688014189485316627491251467776494307611683272973896724086228913197017209363397354806818807654319404197851996726763763663387579336857674230834433419551852228606715591992089737857085971002610779528267805090937003913059817822191438036996890406042387794355723313740862489707487083256655966497338757415182496981963206593768091709323833315298277993046666415604878901726496554647889346868421073368950936233795738053916501556335403655168610044741111722399253532483166483099856809114711143671931975216702274273179425319024024352937978440009277811128251738934404958475743226825263989509473392299504237367716499115047875665046842267676122521872556739856613327094416851612949059030259678398541197997827816917327862912028877185570049791707972887903086267651016894020505358766877096829246491358132367997763492574211495811782922426928015443109699821343295410631362000115434682010298795956708778266000393832910184177923508944949114901230089440557838723937677988887610857041148861417396751528581984586999403591553122632716389881623671588719335488824825457587146295335668103578694969494596107236427171388274434177043604472825664848203761278037055888864449011127221082213879393694127518274621758438871066133329285597768443996492857516140813479744499574286733651128205909057609869346263345313785757672207144531884526142093850403202059999403563058315180171166494255893484404908256482347634225948788060525301365765793466849831211483717158899850191308105117788022894317114744261627886456917849912128312150187777089403351901652812534286093509047961915329619168339024248833556656037582198243942816620418290400732149050466645904984713637109568064277758513077488514521058260622029736699459585890223957384563178538497977994096544280109256698940603534103140039063376530954082021291794150266676482976922004908403625272548714058801855879342422088619535441064134706845560780685734610836596700018452444701719240794435470432858967742603986092490048274461585067254934698658362860155089441465720804976608370040045205665592746775141598171656230030593692798490384963866946972952091514649526860656691277172495258709900254413210537900713576798285681211122030256369701963105061851012844081198704365379829050510351160074984699773900763331674412352410934392356869961408480730242269774259474305364525033625649548908409065917772674835247521278089124309633124254331207718011558670516668113675215810035624251523291708237424137805016343389843070294163787758113212931898077670998795762681192805516495893543858935721940652239549745308280704262568518279436738425544672817774369353192216539113850532167270707520297370086991053060811662156756530131035573519081348830293785646156380933782574746893938838290548327186319368554317689898834648464133600161991243324833866566607764658721602599533301476822324921769472974628667953753201121394415347538020068178075753667654605819573263368923243949739485361598030693055558077223164418224551925499050766834187936421907249334316427867583933372324075783785572487029796447956080153668771170164114847548188043695094663006003552328210359796617606654812572531045498937082384695092899663790595262034305862577127008890076833287405439298379937351004859418500591666060980487488693815742674574446928204517775315634828713195322371110623323062693400927898789232712875828136679997776704261469432636205203896239254008779505144739845430432846741736311625035298967390976846756185800834246259092657616323171258625207700897526141720166521972113824714995662125307480144453557062191807100375829256035542759828260878313963607445383525515430526623467822093644234412274147192277237609726417991318152894420025824302576855164705674488772098467250273657468408208925949300428543809704471892184917218068794922976916906551182339044701469045713911096776102895716380310382943047831336859697955571913195530999560870171152340261479077026792377997698291579897870786457667479619487285450984249759695655967726757098718290014928236966879284309060065971959875476120005453177064890935917241221451538744027717290153376474636847761499514326600929102845820318129134002133249183879206411586283653988998936481545040544068735343691074342754685950441115361687798411736934408829856847110046300091349088556020907299222381513343149957448043059292651168319756601995514303942795514301617314242313821604695826245149275868534392164115695435605935805895875011743238011500054521122101307817552081830949056556251505279885405559337394101417484203932021399230244891654914915490969118241269391308004325736866000593350608638099707478465921837986935680872555233327601291533373711434006351482386775823397723011867446185627975750159093522741305253516546534792120482865564769972326013523855908806685996119388650351755984005938328640579173666844225788601659316898670027399603654460378366974939603756653868585990950196728007942201666421891199994485896874127598428770050120534290969912209487311389168573622307041818748278262533813992097944000945580475672560607049744717798170771503824594747112322063992124072048045942284470792466060468183833830608283484411075953322269888483887625951178857259426331048155340863999500975365098881000701474771744502878694315312226521996968716408312115195901937109511259331056003157758160379746786789167354050249339931751716926401376767363446181882988010349368437140287962221705085158331385035553856836015131077187750538681862973650036180640438007816349551033743276902676095829438146910657310050058422612301844537359936628326622748963824838174755945635445146784758018320446129520369094920027904762041753338207978954312869201045152917468566774727055467384295209382735903318393838859998919775418541006274815356738631859919701638980710779229343409761221581279989382679130341862132822723337863485388046273265476001532780216528068936604485574414286984444578647666591571258709518533880778146614914764800308960578052197337028169144008091378731537973112070783575337892283743891741287617837540739465706203867840341473375193676102061266487552510410877381719031714385261909887272466933377763653674074328795835178240919206150477852760087156872595539841889723974976883874718761101468424106318400128573354759948490780924324959796003218443908566433881863422861557266003203242127246356726322966591640253548855339257519703355039119326158746026658530637354532630137502496664943365431746174117797154723338360640853989101050475944092827319336319073838163187712368333609279835646959671611719880965504396649664272353840457894560714741053107117472077800867609013553939433812135287410666854511238889342963714382163849837318808261429901389437355310907874439598856121359942536469403162912169962715807462509880099383489948089070938810254909599106870012224879294834313747208470530716809055097673407469072632787147106641115664203429101911282381365380283287012204274199461780169619102857124914697710993278310990230746755197484010599836442877878463936294387792053009602197728933891158759411418553837665271041583123198417463664359753698082252160042364006021366574326745969606895498795800649131466394692245064411309825761729717531467204772312569230895350090907457244805142809842517017624662185836995213496018920006128350106305496167952486708707076418112006243918633699015060389236573653433088168060898526416147040933435003883342588540602295661625391510451450291255774253702640869226356089290718417390706002984756328580833499836375506976296532823333097562798130153014960780230045216202293779051634293749047346413206426264976966770192639323641206976946851295138893434105279312090479053342386248390035147041725118936001225485458737823016496933650293201548139951181703792180084933334839506253972777415232662383010186342730418360833256797620304629252145115296218017764233765151163905933982044915182915139673273399646634241279386890980715607550735859467235446196775445033787537144260137907370603840500206967416840358701439916550191276906191996032655867739276637813367084268265333780136350899389057864760702039980618364012506294137158407725757804921495345781938425276740266283976842629814677232993405280128209170472038542338025080698786030403125708340505914393999112702143626005114604133388967117057924412749297698145802366557328152213864686255970183992409346942064851199930305344746286028512055259865087721645949331791057696404244898091930004806286333815764216472376394095990381863842305346448327175160004061564576536388577610509519556965221311063971633683861554964161368203315981312060182972556889480957761907356338463458678254270172672316682323765859624249057336210012201061524571686563986710803344818974734410336652420501779329176887832334781410802072871866105052401318823223703784580474690137869038867824157011407199118284137909583946615419213571895763782765761124489910186992984852084388136511068833890925233616839970198672903235190430797097790595730092848933166869094427353073736346450309453384209782516484835837581566422666561045124952051678531578778020673595031002284240870325389204089767236077961647832028220421359527006135566732026102796302446981471022405469058341185656970931715293548509375614642004256593005776354783374947212929533274066256620714890721235631656864851238795730949216035128931783201320997553624911835065261468993014459007021384773837069974200695527142170726928704973840743561409388310445878659504197587176288298907345258246655339843840679657620040792110520717529779282779997758751740646425858201555115154270281943978745211058993691602240458982172741844183628652639868408399313864758862773133792153965209112168377993445645983533247690441725276469107483767265411078482724157603504131696136552529575802399328227478370508266395683708966403436544948862070764952486419277838433869950547209760714864538037130528657236774127049579553854245524064375187649557110964993245412090589303829986383884217488749965487654462015782400981760539823657343222605507347529787936352905282333108942493534447831306074785126853139689626049495603354166842776305277935659756786918032957124317111182563480740062176438207377828388943400530922497682716448697398431951891550730760539621568850776378862673541601982142236175377387518165780745411234260487690917136292255824904325982477888586566251953549642452442891038222093022141461291709165108739039678540223963781406682855351053575540028323911919027229134812138010640387984446105534565663743382631233300964219490956842418183831626551461453022760475099468945269420263136930145020812435690710774127926171202137012772117589239376521026057774235735180304249128397264455952364964198624728173685090631763514215427810439967423968509694578846053755118439725540196280927807596007003603373331104017965644669612536901614118861444312683673678092757412163608203247264324001454536245916936495285911809989422304534026257998383039636227976269196385454744170720297030515834819526063836835288236993116178768782953602030437140050422402532583314905567042768402911475022743442247233033768617825620562393461569264219517650301283171257777121269151003977409183186810646527745630508598429438606532823579316805587690369231097982360362294723092598680241643483747437673543594192283211758489045842016429483937037503627100158509134168655656737940092879956463259549415914383496987113085160647442862927937346104939515101430551622483667693939172190340228903052553376469397768809540328896395791818122367063191442231004122511456892097876520919139351068376478142577922777167520460851504833539971042467249345087206688130589684408613845752693095245234161166558035796442043587786976311311774352476287349471784926611279382172908937462346996842616364995060944016823399402573037433803096073062995186992878281666520584023256233810849183476784011912959699455940995414406509586333069218492481276619946850232967056991297369648525802658478732008938452551653960322504958316044893549535391684768570306900048813715558773371828897084494697608721885326145282867784219963671216197986906457915142637882747261474827319488947471717589789034960226974569113577932461687377145489309552460226520032546634759621446806020502684439376082988876710671325105217514650044476121631046117362002120917253207056271931890736108638425357382396186793538860271518712605132782978622706999261151466866072290499998590715193157506948516757271475854258783302881904521823154867834205515123038599370011040559572389719791574222320819842659044419494033279635732568883207650943933100757215492650642788911985399355970178585675147183199142958058765816986898106846449225520708435086030005854617935225657899651262760326082809868815636615987767515274462608885791639771480313307854317516558688271837754473433259335045982261846639324943524726933957476937970875237770686885845479278003820076444872488198085661510417154449104423419975282021484158048762334368984830817128892227420429014942078201192565301620566175230767873449852890539226128943396342837564754396551828233995145074536666339720190760853426124169354187219479235797080287515700214333889639688639998146016899372060609616821455342393182583842568934367483999334958639138619681813527310648728907949522348615048964710829648426145600937099478351498110306919256661571144800631014427621169584878981644872511613527941269693695593870274442633294366936383119074030309270004636747253716931549354609112755195010947310634245142184192749827904619078822034853256735995031866872570177153810798184381345354435335883919269973158407983566547066012522837971214273233418980675075297182878277130879308308972497457638074070774907089314174658517803635361924904143500511624121958380164313219357217586596561471426450337895686771402104567821035052253109076369092011495252306055921127105508306500816907296861648542306399114291916810051565654159148085148774720031887612710840609021691562421532427855186475717348600072859869998357223295234913371080979490888342120934886570498489314253217997765034487430491594835380568282261957791391952517597144121202204920484511057878653071362016203220547195463223648033619697640272521270107242741801893092860690736213828302012369331498745512087965675571291305414132091901060832186814908800345841204551148369200746173977551009569775446769131858676211682348637911963485532456151469722602944954163401966166003130079382879552672275833907910854928185864780903351053519478836050184323938916266527981906259881130823368501567716191952664809774320791274312800372274595989852356341757302008030897924885917799886256555021176118807023186093180583748064177276899522082642379891035840723006355284805052871647627305630435893598672160503185067927246694896633825501968558142907840820692473825978317579426738361936099531647348653013691112464550221407293802339415803391512118349978091507885888847952691657400794277887447446846506859306509731603950470081104459765742301465597378508118271562782756664883854368623725408789566374014298715765323096863138282938000888263250595130759610951066159748651624242598959431661980142806297023678554527771240311970486567113452538919415520318844612400008575145565138098612667253727298054386319270651322802092953950426527963895380629807147138445917675007027123221005322761831017599994161340313970862440994708887389704868983839895727074436080249075813155531990086927765757476371189952897662469120970384541717880747351499709189762383995636995503124726863802198552557853615353056758684867770158272106098281991079976076452815905224572172320592879584308321786532765320197636513647506199276968314677684690296530668099776055016396672373394242346538938624635456598181550910986912615472130176295623226938100094409759357451470449944945711469574181042553610488446877664119792092058509761896271565730446590062080487557523068924416409265598147427083346524036133099563303023471005845251310154890666671574828336339141088086569926503536534037498904465037046511901680216996916358080316646833943169428374492834623646760598380565379888827045978539905145377069350781043109932481811907402365143933478203491349111698385729982033992073236022898589248761402934244270086566261627864616826843380758603385101805260071700978888962960548890408822577928426792262387690821207776601638495838846062276416537940526153065748204224748361095920658200834996519795311808112146833841252179065228615686939866833990441633661425926665820304760537051508604256054884090065459291205378771088005570305161311738780220874281425348972647085246907219714884669624567804173032720595139279378749086112310501642523336926543263318905443527858429720397758439626051485765143244096281543192413243660169421996750782687364627808303514552855421136215944216766083413836901893472458042805507679953417782829683351070922173462611843336747458908690040487976559782557795723922090016462669855087213654951717819434478722944130533709436978323095456576829826753495768894527621936219508104243251227333042754823684013738298375427203218517380964659545611922200217029767612991608332488357140072249996127689371674084863638114088216099761848991859982534017370546109575284738194813103066372751549763358729527418660731132530367339369212863454063516218158183726987041539325577801348248291294392781578425715116682636231418424177912200946791940561969781278762739268415138666863872585404855430064604844830178324161351417686052765961951667781851570899248991535219747170501145417155444810996596756702108722453887356805076483405889543085918926524765794973767882323436148498891851281533059800883842048759286918471683907291497441469522666313653795755441245178822490336757432563893443279038170418400913439859139848599216086993592413893705492642416918499436889728743687661099871638718088576608456847995803848217343165088080441413873641250565208736771534181654163361464925529806214654177086335855033232418943324860593889235105564210105487379625802836303280455117510578266856938413458527102058633892145772810656706141552884575388907977667828667769019703023723691551669458526880860659451358072817330082649266032805726262502696195391211606231370017769170960275041676694345922071574614278782250752256011072388498054710693669457631770597940113973027415803544715833642947331886563712917824445193308583591157954731282335200593763587133805007339067353482513493747793443179500494275246718125298754335692735435591997456300052666023504757546229482645530151828398427165788049133265982339120312879221141751228190479341022621779658386615543784823901464300940356166401955077963251391677223885291275332651651790822618317752098985258504919998815613090712110061765772503894117077626915204776579903043042152672867462009933211801917201492699401627477208605186851195226439099071814865533263983345989914598366944018609255944337515907166583783012510712499020112535121105779696417891361756017591508538651912355959230082755925751900613913362638601870347219436804908742621578152191464941600435112604461918870845867295485098914541970501412847525043095376747176061554113520501287259724106795743144649042027685401975604961742531077282576143784199872396143679059296031968988145628778682807711864415344859947312705836507839429227131462635073178384809230051291707040482044965274661866215650646229563545202952430869672031013214115117260665408691483167471004650346789432671367553864894872472697803434892045732778067850685746731888322605923103729942227443254851989147656575009988305681284151811408842040396462404296788882029966086725937272997865871373661601855044992768347135802721428865896337266716657965590892321330919645860885127013709083297186007767039410285557650966366560993830080024407900493847249742115928692055441093403384282449571716030661269627760155231851942854379642156549391582164405322900354326521407837798665813342251530066839297351287793147469222915774608797244208141921212514165095105737429694515758887906645415264613153128119791400275064822094266876328337699889199064381457510466682784260130869781199812703442824434938665217333907619577038816651399542610434277098111125240355048311251594958429007945028471183268524918143401571951698060544213502390386720571842238860932259578465289244601127995476625740801013749755705236803063446001223706097308254349167195251782558707566947435901239211332846162822766150509281458812312742392011788578440240054708751792682228683151347131806671213122024683369379142341628644375055452230940748100368126258107177984443921346888615897473881056945488024019719763321941745531018075482050995493346113642352550370465774189295104933519197606574234512814398257437433968292092504925887615665388734434648933604648726964891303415885447474959793258237595038697659282434856790045581474530935667965116214183094933685503131697450284258354699438317844148679393940532262260221831020800374034299417281801841475099459604977914663770076755490498938602477888988070814404187628894517090766525771643306709849072706373260832699304306562238351932908359368056123993282184355135799320416411813066823286134572775946476326107301201195244103010284933624115983801672796006913419658753017292382867466920715785802153194057178407593819006925526405702940262916209829769373507778531884775209945011028053452215586023013305315837795752224279693914726157183000652734476084953498727491529040333361774136412307834539611499041718482000383320608541300413337284968885006802497949978236129849324900643263030783898914869750690689929661488892588606739950447375349009462742808824108681186272532838515947872553303766281068409686236083650904491366594917595946802011788080091422639654776736641664810232171914910309115956231591243197889041015351540806123902756901633281992033902771243263738086153714872778009516589251211838433100055950858460289555891382070418322369695591007651688939496843665010768498867697479408205150319897177561550014668247031490040596639086311122651031130445366943347817409327145348024393114776133115378480332676920076784260313610430026278870587791000169183188717991279125900001288551867220076071384827622961017366538888816712978495858705471832139673505148170552666034769199172873331646683439434058859661971428135473557882707838019044644119837954957569253750277058901198416046781139303484170516919934759453932703511660301906776511247756610205193497424581105473450437167983494206596789069981332162260414197873490159093170113434111182957882895886250698301687634291010726832481174464978583759194457118614820054303640669055955313337710226340558713316030417944969540247983356891584599296347076927726256437362943423502824965508057877515032706956836907074821685389693919876074400176183340612411869390265106994850851356223992771265022122317003123000847507701499828184414198315360403884970024762556937606760306727885516335846322574245867026102748942538065360683552858750320343701615525582453748678099559168373612703043809955883535324725895904378248195130185770382400346871789734215736230727517296186522499531271686906124092954690709871694369435088896370422097680315673287387387884046450317344633245926281039499533228579164834772779894950199817500979434083838700677547954578653410523552725033443688999878879162333563467030419645197145678267791061432849306996902750799976595507820051134781921767912511727509936768841513169813616173892347657929650267549997066387874799326612406552953884110308549546144986627378507048678749754076360608303165587859456061367408921709832376956246902354648426704560372208472797822599127324459205193239247082816024681292265001001423148995062329240006217403384611333644210029191339274319294111748343423840455324957736794720852244084313690125887176093270179826813490428211361662681346683050501174545946633689202102445672688943535541955100715595755854704813800316595062513428654008458777923302138722714975328898444288478413069176392408681905582588661421246314029469978581730332654897664593725878831234544364351777547296426357384109291188202131375923954486245566072815330346302066484983380230926206730815402786981746171368163085219048316314597946748212847461462506242366447224811860553552805002631451103342774635033515979347752094630831835998435536410172880823209793787124902552060650842423195949793726155311450935304475903245874579656772640968984426999561988249448278463538818904336970274007434768142777581917909932288606540055631498261223828340856296862227121346083411769454854870495230569499090481321814878190567893541101523060235482882999015287439343312833068931105269942554393769064134737860469129037822656882511829018085545446263776125612264107908996973258981636471669467277779381519853630592098926212211713132974144042657548846411938602930540999522147370473834224233039725482526903372711460055456169560199895014301271904065647084462839427664930961239510271890066752606947439781000197833955752830917743907025320664872548693252597942363310737573362123529954839479492668157885673239502658152136850005905865016203188313297833075459660401221051787061360029821282591892524671243073431572107993224723899118637618078778222489173163912965139100654837658553292688933856611372550064130297034159049455807109651939673647706631023708259826500139125844776563091518137394808220449990631868382318423813491981752077907873853689425451683681353074230738705070685928820998538839486091355045307949087538737598241659546725607958961243651676287679233250130715728173673066527147624425885984079277359714520401105209540881443612526958683135382266620574417214693218813079512119827258215355260821865719475327190526990928665834655813631807611034822343171244862577439013980851320315520691965259291733554083701874051529657434432433622272542182633759195101454974078416412743954182937109657194057487512739533317924538274934468093627730812283039532957262938429378643085299728100878579295594492548902339987095638793556057469318052344622251728892043788192209554152514905469177646128157721351279928333664446769965248045411038473499442335554288981374066127995463549401524417062836580998297472662869517577833413214763108151347972492119815160727668178178297971153530285651721256660212700906368790021666306890290283422794020050159342171074682613855380788191720816076070165139124494773488358566784869629356573914990547668100149935690909887663009283641831277853153998543982049704578490449586430900209535092522820221063219763062776575108714457522472846866938617217452103374673314858077033157983125258976357573332679321620062502069780197296857449963558415433280096485571556369609001902941493592365132135799398054713729140943622094758406169885783094685309044572897691691173534517317820810748538127196494776468138472490313881594947074879380304219266765810980833817637716681122023494468129249309053347754133161775698404541731506439624415751037834603101775768739717305068375316695424143246312091849101086210685301159930897396896965225595879131367775040861633014856871573560264551291922021688791604900247124955884737408212687508502170727711647053746685033821257120651713790677790266869988934752782600811877505090493416126580436451756525004209609819443915891510921085662040660000177952766706022080832448647705952191864466289313971532353152347897887695734480174972005358336271339442456433158380328034624258519419606714059302154654678128947607374295472371396410364274671964988330513905119855046405790649717857620555292542148024119479116064539934535639094997465332793318321884213016755892134161483753493732390478691036439586808296922839545368977439797549164926212682870371933443739215322175246954099734643444873377288808710317503574769167465154027286058843373578157388978658742740242474361865458234179399398811956262162243786193133991698886736453764327307692449787842156425928191312811485907479224545546277072316541779708543123489113649879871690304411788790733352569434566022361525431260226203098062561837536033809375953580809354562886070032469300492060918163586910142424790043068999923266871747431832535406503217508987780402425039402772747779301299079569235301664540321925371490954843590940493571979766226153379385556431431114453590357757345649544199045523325323040944850962544011578824956766804699879531738322148632530227999558667534137714877416686411353631682100376268763303428761589653766813306958502890341731640635993043308592344375249844527475862182880756395120307086578970352694963303464051908086270649502444994036683394323535394494042959121929947124489866912707249011956761927709740130446882238896099296558217425720276729225704515925042895394296473179163398069438491160756446966232307414967513681456218034790816940906613512992557291262777186290800983346457355216761650156150894289719301139981404025455351661986396485762048544927401793582229084998240318463125302789013751932716474337362867248066561442616368910197786614604731649294443563974465443205903131552778857815620739810651326416334147799667895668537881465324683568917259780611131841438174652240938965492419130109368788862904620592395999649222365903925199036238933765365199586696252613587436004935513727227619118574688431965814894501107285190423496963441314870051603407864085620524931687651867691971499639187844827492844641586742472334018797913464002557812905660323913844227116080192633654960883559460216819316482517856003015773617952749643792282057244627658957196505116883558168875380611117378809160577537677270989342531907747902884961253290517782892252715375470654518346146767826175888131856544173907874479142804046968839043154984791179095773889158502204581898863448802212003057214871967115177519200306640922970535993749194881830474916499850535721695806366173457620682652658681831037358296766677853700968048000867030851897275632983022658464442254685647678138849825072467322022420517580234247257854968321940779366975592944522332847731265959188004047258700754325604003488807994132199962891406800114061247366478866161747163725120576991543201322071193829456093883541100076715903838274424028700185980246288833457454675746459278504779853284620969305319557962619660006000900939559214551351211115924909382089348744548232778173918692401216475011236667823410563051499906340183141595383465830658239700889317010857014961595622154980409702176277692080020393315531598841937055698338555079381819923099046544635232820217221932940555892204614359688335532806991591609749984129841459623496813114292780547403273176970006823633346593499598973029618952244133746003811726562409144275670766624448103868971305599895132369554814184392431937315731048566727312512508061175536521580354601927429288689821076541053209081434856769929190545922377947120825144398229533796698562321468515382547854108858751765222145118069310877811981239369755905935555716297191983977369343321911413136198308548985541382385700038575039365168931020796847903832832485870192892425682246517883521390903317174619748396389511120325719899640956242017707953723902378931597619212404184761370112006473332438963805210607490130364055785093610016914692089026604920869961502369762992804996143338460031115616330767845211314662887418319107281717558664437132483841108189793097544841208512947676887920986602560015479587612073985074471221454242061002695767299125962902525998902472703597248366797732027927413387688513090309605785853175612881406585982790723739341377434430607810960898884554686712881637427608737781711507021695801003142945299300188351467857004470040457738097491703090277166249633016077557777872159651394855544326407590404354898358835388435560493960205099856250680766934769844374413365328342085334675808984493574636490805585306331633099828513317853566996265528834810166782376869313072944161690246147368565726334503887577063651845444147035669335708030482336087928543302809350386179713533000293572463303142238345930337116273686963152277962428099174409908179515023562235484707141776715394299866963333409160400100475620301353843263929004442494002840268636836093882784720168557580362074459970243683479609292669837324375028237000443500850565584193623678934524130130937496586496442050350382380303168332701737464098678007505642543144920778210232783031483418895914214212624070914509528612174298045147774694997349203787313182866424627371964031416437195009468995738216062246956321657126889919960271295392765173728961385409821427368688864551431373177764650289338553212208642818018196978272774089321215141195598099270445602534101204838984710600451980339694623383687960490554161693121486032117594451524554141617319862290289645578020152982036137815259202467322527194237278060418945855197572991889649677127246889973985030793333670924828056029157278108907792929060778519713653358795292296895582411976702607555595267498424885965487445056602141305043903706355241598495358030138611255520225615659979690590521213248784019715412782010112692519087286269053110048808642344420441402602669631889334819789677042691509657934189742503333033422668451962601318096306443566101005931356157731465909946274085847624461967943527450238996829163770742278262649555986321699445164642680413919290190168887185758028708184128365359186301454359202740968706449294433649085423631423582159409779710938528594122601476230467965646976691372811362909650523220701753540453230206938736164469959178633139004156666780069392348185943952861894995263612594689855255474097356130466915909307105290645777623718945976350204381370645964891234824537133650990020824384600441098213696137971728342569069251875182702429242821729333441666513605782441717682303946793458907042929482295658893502352613686458068088378078750145108743920584858601324985043258791726068803187154547908184152166231928388550234830948827455178814955087356571893129763415063278086095647745654055349792202055639006625371623213256259539092745679437364676840817923909957993770651797848683032766169030287430011837028048850104745300805035569432537695472510852907725264425182724635949413375447567207509544011797253779735260092311975733964776720183319417442555754128404518071285528298626168534383014382707332481508923143244502406679443959909248783156135136190262010866142168229333587544084816859788816155383104238377045228282905144356952645168988231235317780289749563278901805352662795140830359345933983911815520469704958512158702794714519893139813510997158171098252334109178215892313785364466387163686906670832882489187940913031133128861429654730529413180574113383101697791525402767166926460119316729809488580906455360422038456378740378530465298622652756078436838675671101327276639177985760720164161377026495401448859605990688071679009072886943897533562671840642742043111177959434351526634861224697455509816113757750676436030549962697995305944237950519039903459142008881618863173298818410622752816325351697138692174237783635865098753926628714015291066004994401837352109470783613513992796258921637958754669095773281631354403161722879972127856133338409366768881286995444443276374018819165630020120373602402787855862689520562077697064825131110221294209157953291715532424101141118772345562633315918817891330241525130675374935822396832968149276048454264561076213110374467742954840462086405112495610350190487221925815660842194577134102541873078406063795632670486014563767730427976291035613999298593081704793407834029286354604192515937849412633689719345347760203256793108233869001952180894074488214527079997089706626096610075348585336194205608289261433498507209543915570645006012792903368150981895750196765308275736185735974263275582503871121983863386046955706353302730450764038762297027574166809127179536654488513546990872519846180458395426345212030027319804997800196392713800058505388797194401754943368128918893070317695349852156654355894645998408456259078289997462304560071608870965110835947386962608824772062689699701553150875423803272242224926119695714557244167192425089976230782292376721690266453696077267656013543296720281574182780514784115682411383159998291006475335051198910164081407047291975632012217562826943035792110211133266090533532416900649775346067933230120970137763140615487528272349266623586194726682684452723628055980707626564317197637601588027907840092815764330966782205548314107108633481411522231439776373172896859999001569389344262378264046967719137893744241258679305331450544376635639238499670989772165819856753938103862636446732850465288635485725815801253980030238871167602622180920669279089761813982122294315028425308136057223799157464610559303492733258107928151048945856897596523087257531022299046441671240483676004659402872091629980637095470697506020182919387176366566698921172528678486097879612520076250576262360664217232569699288855705627629618687570096198994529712200004142889696890469509965083234038803690614037252965387818426282590101518182209265219068088418429063823721465376053284872646121732045302657895805470065535455327411748073256551153899061963134881171772591812524463860968954418102619938612655252165713785858313423806124358626080239276560598940199758289589474636920771011929764634311423986782636197871358811051593093293196083751340911777484034059791483964324759173912642996026441894723961637846274928375796275159009707424777702936571952030209007511458820167825968427352427322017418394787003090964584895723901966450420205929913243911750617451462335168553460164091612934704497849346745920041605729496463722707319332297095974964017297447613340107894273258602847069197573449510875238483694381536121523596521438821800531519348162754125079294930095264538738120903988840450430723526957295812986661684555272540625944360612353331851860339332252277667766105465937568348622040819441001178196878859681834893918412592890560609221563796047469987332082937000960150988443187009878401290115707167206950748598573288777090545942059093842809728788431408316736574624736563412759270808370223811615044278927149013947790538502475489152721118332446513076483918308174503709297267152907101787758925764244317823030822609901496062117889446424430349869427222774005749715083505840381080626017175373684691810846022066050108874228030818241208496688761800121012753512041435996995106090263430258560926487752337415010243180706352486874619722856044985547318164757050915592950133170079738142334085636690946306230764919077161477119082036543559825598876693696906499188014708948597349513848068381065100579592263312722267277194275757465036546423055933670311103171358163401221074019357260367618899686805926775409486389777610437998012334601973360793743199297907162974617575663472008819947240817515122830742299781703725896128458963432380533563760585283727464126401610775191384217399109261677940419212099684739161586044647820598850604165753855538297549929602833053655445489395868009494361593719300432797175876805216403436225867490106069770711640607584895676748117753010513216029899920120000086458814772061388485632387612132505492244744223822240865705074242655268277468496608028036613602264586386624722702449620900089106123642345863386374156665126735036659674811654980548760343684601679402568640595373702293926169562127773995481921418235423052959341932712618488819342242767926260918471068433973101143899671688102744739419149059149932630543702460590943032752879910540357076855485304115311515788993372298605654618442305623235764178069310408273568782924456503775890248809946664938457820368616433222961405834303693640434817456408548052710772716244397266671138169758157223930628929114917692598773213808231036569698850562794059020776560425328777769917482008679579990241498735787288611926632834949092248588828374785353559294760014182148268131142753557086923782110976386323431489742114695332005173784211328927862003899829224197791543617469884181574720511310281508095498279603793374072575644706811089549257321221277343956293272866913350673368186713378493052267531200400241259366163074368142728154065289529655733299427719200874562296970420276773551397037913074692868056966111098497367179203321875005156809603836883651446672458540109472628880129938142358741822505467170238372563912295703452329468391480039940530419029992580209590682622615955664961695143004076058549580980313746684640064619800822104572977815068241650391406984190624592568319654521550767363678417650076354113807888398169427492130561749974449970906860552318352467930285776266289178658207317155393587923862752992542056053300061731202140884348443910080488687927219481545761167346429519993040707362721980583083282626929043416033092294571524397092749981830048752451103360520016102907163410555673197883622153937206560504484914385119770772282876130846252002672094782348082312467941995001394665762368494133903522683275371825819964300276589780695757809097355085446485179963739189990139451957573976016344466888538569114623115754017011069349203352275700154309236469365956673060767579241094633198307878981296825031724975093477282824021762948318571833900502410805133112088721879050797059067057574137005312743981858326022772445039357637533401817847518692441909344298671656282898731999417908722025502500041480865448512332139426305246486801195464415218992754378004838461726653040763278066026173922776072423174169445635074590979354081453102585705051902334826386136279369618316713218114822444616254360419248646353689661521623258803098858579642954205769889158303035015130248299303166413342695951987905654600131763953819184397036288014413265714894341686609994863028015774243632484522994019230101058796473255981646981326518593729144613633585598366673314322877157533140941679108758156401450849673880735509356877184557276151632073164490063412104851568367047230760473731766509607299487827205447992079227661955464774503360630242487418979388638976666203469361310461587997334351410961597379294732881114251728963868004558847948806879438648418272125525776535396287506367556179009844321000140115444502925021441176040158543992190575432173705771974711839650757287319506523022829920156821443799776992252246465621619397631623435106775507787362422725754615851632073733157539983379196926825433875081910693633569066006583075739947121205444354744615708115615483559926098941857113852696644409571284293259895620800086014483740372252793340360844497680990612775407747220307684681104269584474921030035499083905211224697388511124693094043381906972207408321681416817917366944187980228697125008165765702247072814021577179734169946916749173223693630849258364793112203850899112631472811952816426789366607165401583415185085168495170727942917311661631404318107642512007890221734921069592298635054012950117878325359356324056490638070834706947484193078889975308693775569532482646096213803161919359587895116033148096988417265237722336273363311806159165442325874159290747973141069774403816756694240748690237396268206742287456269398944108708979948073373057996858895765496464346322075663724536989553996130806960155011680978567142161874716618075825705609972357389290337352865337242166690463524505421263488005630212886519225904757486330610538651581183820135253179623950556466374545448504878059245753443417493414995495962636631954777017938030311458920371133676053140906014564932070597443077822129849041212763793985444191070241361336627488341632711381545906385438040896502192746671044086200109439051560277841358816020704973282862099659833196795798315064848581210982570930231429038321902211407727880396979581372324112880272804035377578890270021867125941022667648058386729879668183185869640152564355505273041037091950435121341954876657558253226542547087732098922653747040109344275326816537951611477371715143859757508538686036016047850282975851941130462825420559543077066163306304642867091890315908167039985867595676148208687743609641826770621216463272502578513431530911429566621830798984342960515429027959899141723546511523623476280297616395184569460802029311980661687814778796932887301889467102329243893395572188037838262052454681353806855427373254932202671981697043634376553843669613122389770332421664585397915632285307261808871889667376508009532622263421692193132047100987710816461893293794473337244318841172926647155922408499926260591418787469529334938695439458236428608756591642090134859679694781619763903856480558238383059240850397733648818359869971101482626158154423281205016227460347178039221107871723101927825652319574682477758744178149907183407308604745987534258258217943379606623726896013313671294147698201803233167311352653167654954025683572470806522336708194500640661475700406291861410430722800223087944766263982119952610251070561794021932919015855506795786012685899614921282517994522095451191309928200326953831867941644771448039115103857774001902446087881961651136382026809243923795613077659201836096125781571434482631566449710098974607002346837290115432909085398780695956558714752316716252410416125705483038734574478127939647217734842100648299220849117108551160004439598112692026994272252601493216585871217309249431026836839152613964127844894292956301416385022676431529144991276305291230561595903438322100334105492378552273171759662074950850268216539922916523549643479832186994802628390971295712264308346135205523555954285730901453363415354299747611060969348472193648285837688131670942195984706169450399716932371289445424064729990609072003851611492824835311770505972130445314689411393705689621894457691203112176452423230150417374425361586959948121265911659722520271636636689121730575598725078699138848400602584833932208767449993571759201978088854820291773359743183050701051923171534509145429037402156135924007030986689342941809909114250901416171463586883706967012389895601181161783408975814262408616980500031678039304252539029409989333057750684778706712878905576724941256457827585738308114685708668762273198728274435132325880829859875090807919303165609716698833142936028974548041384213467289268173101988622783653313449890721321617167629468096353428286669780872598244890257875670553275154048961013060297591359724064703563864821486521066454208850081791022243400466255666234716350753085667866069295081173117632332539935753044550733399024353338778053306801845495208678333441190837597176194260108440367561406963258002223145560371354188519378321016820551916694906318862691286493180893500390081153553084922219424286188962693925369484160914180108550955546621333990976980388905417618763431777364238450054668056899736465677868241084915509712968676389413067223525485723006224937988457540732188419668901538905225284371362767266306019154770743698730275727201605150559294635856664117633310464536038641362197532682563916468230953488068539210394453177759676331453127127708110384923545387139079815657389649538665215792209887019790120023817080940309449055046058784169747664564252891479906013615788125844395660010051199087134637477243520632027266135693405964763792240655206998975020491130776976393074370202984759643353174701899854220054663737415334525356958637917310652050024381833718438874986796121793401908710886812645978084256251386632764352882696721830736884492161608577116557343603362538399731670203318008498913917569762311340319927585002715744099674638878545935839924921948068823076322990521439751616766083915253649508910822940325508688479228634828022128925516187160981035353248598581055557636458909362270361728754309727795944734103045089341239807151010171960973688605788642336103613896757981861882975694244204804588865627223123669445716135758593550450291244993058547610732429734315938876533105594834598778389572632323476870069239850516716392256967597272698132272078363162813689605398216431604702076261614476016783020826736772470739105578162725860599040526417817561479228418982979820860042277679526839647936333888550466932385453976302048733903570971158199228978338737879082869012039954264233769165794372079328245462082941990887205330936631284429033491018847688925169521408637103784801757717061865230988199035920700875517247827819907015564327626517607989329193709649021232799015471901603175248097770042375762029506055581943820813511919439235354895942403187106000477760469797749084821002999005763968061849844174282168530778417301428168799060494926605625019155849617273202884980286547966292024021744982308061726596853942188177710366563856898137186101967062195035018041050996448572153321989628773613441896528489588551023820966838994175667099434905961335396635490353097088220991052461583298398483425774840182088058032008277154168210826727676046693253840966754631106786231106114263241303053561750644762666601289035330957427913629470320384896209473925735679048544600957033396358542538090943714639200514370884623246793910639458432215182069506900374062325639413617477536155079038392766218383858472026924570179514409632525475654278466264833393855405555776772134062772411157532092232523952730193663052054608137584253524924792156472398877998078225745698700475537521977720982117591925383357101313736191474865325613630368961703083160906730580701010551981623359131359076223243746136206855584921557945225451433202069209059981783055567327373364597781755899580214329684603629143304001227846949345315170875179527600224482466043726917152722777353235481148670235295965897861619443931620040608084235352338701193304211293974853997688203520485711424633593984355304524697501155856980674003331292195895484780739820253675209876190699860413122428078398336834856907301989466032028522843683018760459817371238291466969545946477867064888950073957732186931409717764417576130917879380256462158193177750011324932875299620887924381942545910591263316489964943281405013485408541418864033041948261328441789053251072086118149122116856638436655469334444718880227787341294504904610471026210143824950908140476738207274575340240067644183779109069640908234970371761955144779744858692621119254106711704541494794389843273625560535743614247764015683148288370926547329674244120916453393221355644907756736470601783337912757134265748425106964362016854845327006350899669524339214789610398952232737573723306176681491236239522182016219862799477661329198098624344402026299217717083909992355468565411024057497434032594528271429378323826511482276210426486356302049212599225382424164605103242791221645438080670232673711428528072773257425523170548747323107663326590557773502947003361645877876717432290992723095157396822472718354296117512687831307756576763855964739431099023219913161607034905061537667262768536115935868233498748057990002909382954834131308263886271570872312007882736148147613086665177631636339577312601587725750262875738889744088948299560324799399575453937594882409323069796499133114875381911797289397664828457112178531921537673112774657457174541767446019893909968483316930722032658324076813854907586053705509114247291810956511332715125710092399448062500376293425804861003001750000938387494298086766127558139416748932917314977739821343630370896645404834670219421288135609539395803892070648412239232388904634500827011608219963354848078921286831049351237724678581159459622419495715897601093809108867741075984657818155489898627030872175066799581020124558203008764796434218908885535665800940797490718597261058054565113608800128276449835034198723791862782468867232397092392437018682903360916670735546045819722951905336642803677486981392488171022260173145835585843383823945249858947134385296326067107263327460582653013403598855234925773678683046771333394179535723622645046328414892270675657443486165831817544273738730115727299497258308309944980583061007972631175267114422344966921477809566169977263188052743221605343986917448307395612897080586041839253148620976905923594315080795659049146511061605882640291961491240344260664342906888956619633691227796783015833999237762855473343631413130022687443837625932535387327260693876813133807704353253241798086658870797802674016199270266033374567968601394444663496845357321618320853580687829861856507241584767941814125113679590536592178344445102281085693279174272176795064606456429471133067693246430816416579799841620022057756429817397214759953141908291301665677271224956685456845570214340294071469273711691050470320645518885235441138568675098176569359084448402419823099933135897683140754939796948710761242346756908324919710530640315035484684162656036039031524993825391808760340143658713435300461881955163059239977291636270043632351958738339440027299818779335148816092913260646573936763795707195930999658538135426030694828746241993632858975765581834896298926211795177775933356783648851797679502845765864371698602199823412843320385399434903105013151492279351722513450527816968625177913291209745737407851616113342130919238420024242517643490432137471737872400525101308817721614263397759398421861525949665532380772292658650425339888993513885514043521429275343887082648297499587152764585860687795358897650640227969788313511572038380943158709534977884851180011003105595611511440550056706645365245495993098661541006129753435744360139240709249872583587562948254752730071200069827174582972341846198952984758517065063842994672694032916178101821676923687321085053870728913622799515709592653229205191180090529396512837181271635364300769337217719500736691149844155619348336849151506826139273115683000026464046582259239793141288574576144457451847931644133464840606055400875144667211843483102913388513312150211872906481086015594068555241879181241534133947199774754452612329043399696695476412307974948915071090402114763310073207771602809088432935569076190443019611881381349343962782078300322964348541374785994104774033055963858718895980601817951703630092302513695506196505318587326555033214208363034904821508661591384288427313631327412485811928167582078594084140695317481251146962915123975460635342069568833849487037799411679660931297711285834826728469466398433678931956259825620727542063852859849048971107116102596082005490938115059551424143075606204151593600995434155325377394548767726130732073944554707910210058301359062258900528115939828561446040033491330631286263686130097830692903926933874182671710406863040718660489149487462348351226511618524010951280469477680137036957790769916432257044117645607176818280742013832134003257224015791946920639528139680045216496728154289442277648463443889818218796068579446066773234260556489748529401170796371459540994151071010795350119594341059618271489956152229276407653002608107550355671417508991917109418200771360714831796073276194942658048176282780411859696463686334133109811556883260547918801975045004794451427531956429179382245754710416159726150106519498804961181828544867326914412941906982606677072132081321594188898842533780968245053419841749504033936552471308571174378058023770608092395134097051924168752640747718546237881858180597121056787420842609947615371113887042536609207547413254073070457039266280174938500868952741201906729394564221155656301867713282460229944933343759207946931877071026606706991812580879435684486802805109078634765438564509256118116397710580602476618866327235388218506986698609003861811136233250791034821503560853388214889462603624800798677390727692100113000659271799756586609263370847483051567136292947398942714295641220753711954333056459856723146481609411626660274037020959428395787922793914107249309916833633468359129703589668272755337666811254519825567244815636543400799955472230935587360986557507725657672316374631319575607758454706267714537887350467148345213932349888681310986452430897410412890078288273029768136538993177696137641775362236946478805868346388189440165084861259615247612426009344005510658362205336335875168341995019236926457684608868599602095637244697125671906408962453241435114145105760251188255589990703424117522465987000314568003271299728806942008955910796545378128562730268797396149015630838176473296667280640259961389780570897543313844676019263254260030620033937557045419314844221911412319728264961756194239561363734140822306456430434248145624061683639510391751569315606436534715555715601485262670003679653925557535184488628701044733981942229881513507469110497538403094065399462222420338221233777936004329669151834959653563645974684976000964233136869951043246081862963204602222039339552704877665453318079191473030521900261244978393232456696757638765391565883446322310065288929869952023087111829596819725194718862363551325803086230462818804795885144337806755471721134924645556206365327421274875395465574935482141514555449406171573218815438156913131063090060585185689058001514746931447116856088435468444477800262341417938649472468467704953880127398262406545118474760089596649586398381496297951366857494564341812633198906252471910413067805611094919149471278465925336566450386203721530025810009293367126070574358641524130696666063615056828492997885145109640267115395197976048191916140389604447362764610642441765684580918316111155526236353709020304161075082124225250161227883291899633044519691835739748264081276075865967767427055749199791722327950674471333961082773367379199030369856425708163908276369249476079573086228517387399440837842654985316769339973467061272579524229933079567113503583638503055083096090617048644989575999623999485214696939168379406863238932302180539985380548775067500782736774744807933402766135982783130162010494065293373676206602941135503565225133810497387254366193025709232578778190553160095374931167254060976124592407985136372378743785578346372778679394221331802646195747417887250045833076762846248532682715539009841094134169768404805405573743143914667601467788274596348734163879532984156623314794694277852444794843945627038885528436336813876021626155177370689418071363385807284770292957753564220432909338030374109551603816960788848489016209579252593711760349531113024940105065410307867933935804910723769940223713971393772669277547478934695283082220843817514517987787476141566495451130447450233394720303699152160359370978158837028078266338166459091159871187543270001026962765099072248036094253474108071148498144505054621529180151954374734317137825485660691297127572639946001663104508433690924427134883287932255530994961161883773737939254587322666194856208900446377378084053302198500102584964568038337132249438247065038141482964816633782534423584197609765502369948304908879735185438060081360616823083600227926632664009602331966988425818006141293074091106471527739491063462501587181746835918660460658429048476862172911953495809065617970017265581847754649609263367028734687822476436198997649245248639944385232473979828421111863753247980716318684793125059311266262072550264833090833496470581540378537908894883801974346718906185343229930285294625203831240294988928810052449045513403355803713202917062229611391980928301904800190040871858229077220270558223832298277433596885392236987421742211038357083122998644851790060350626560613946374278965518280095946195698602902438292196829951813823962080943953113874754467423263850936101874994929816886683180702813314577390341739137256668968412527590256359026198635431814283391679311941160120065418528649825515014995244509429981128164505270251503781396865252423894532427255666842560390592179654083379034176681650948393747616132723446657322102050978380731259297041891117298659591292022642186497091865990655112930239854723437584185681438111695113334307457737972218481327934110235616543859643303394606480469544243616134453193677705481345754161071110975115231081093953580845968643796586701064541650930726754181050739566896569377507999968947270727076830413871687839956562200305891635716667476485310877540590990991824709966429408683542496038482789242923785275838003548393156891884332613040562855215086047693759962841264929406768584341894255661951778188865041715049382551766097520566744891358237297827128550232701881478996097516575504072629774293806520385619369064558953528990736051490456350451635784477294017447850866381817660636255714355922259346777302127353631108077849049207250170917657280210832880828668870885940253159283330626528153105544843605343416501272278615433202692000041590317192852698366119258283200060656554117191697763827361741465235243719561598545089248379575984160918019269978086981406948682326488875343339788111111971260670296532993302442282791332309651632530258602148990095150436518136707292108840064591274255773685519680245302080025837572015673772990631910646831773925384886110326644208939696658234735435460505716438723115881746472431465618386149454230356432016488560846993036154425866813321741421164588834319913864211074115676643218150058457820613593128603676084839759823905442085655121171703677950218531700363700001214312399693694172721619202037160767320580472451536016030465066591907017540545330707869251452381188370456236653585636665436793058900858356282020744446112949250240026234784938025070534522519802885019266147581706327469949495891437541497589263414933249449685446078532890883514103438243407849143674960011836265857304281234802010922995290711814332630183501982056903717616003584861433820307823145163252062243760779107416134024546438638366341505595082247511035064795044978114592361784371726050194930472723186203564794356581464481750636404669315051865631622513823555649652511283883623795223718572800638146976587720335674844024381463662557562420930356286465687232185622032924349702922791241712873551394680403324746569818359460327494730328962903655395510333763270325242860303064358570120275801051723362691005592220289863447608320468918083265135626217087514556191004642622755273149596425716421647631084903790505394243718962094728818014810049433269049552368298554438377836339391762587377832671532118877213866386901306367108159417917524482531390597518876991234747213696669421498665424573944665511235620624944858845024953309188328479288531601484126310235216903837953430886649702165226768596015637667865949955983898739581025536183740567310404859100504932019990204435103297489074228907497786110808914898318986179443892724884361485929949530043592785896577512994346117209521649055548767313098624222791030820694232990851575817138043625373292620582555430837713073531433514817502904121326946434238339509944948139707067615607205552960535201798296583767815810044159730556332685116602569361565564207128635877489035528459391806464791220791702419126408587381341467528226144309361297368051276563434127450253757492579794699719854366600990125233756757701103001420811737936275974367501251660462659965416848278974296597962606825659513963743606018095323882731289152140025908722228726919516812434271214107018046580354630961135574998911464119126532091660242338991853039505319519928516764155099870766092494883294298307426516648656910625396883759938864059552802440064110244134365768640371682319484537486758305844680720931297286716697726624625940154663426094161422915078735736270908486847671843431666691341539943715540165532781093571448191435899217473222403420882714625018122599163886224780343436990221837487852898313668537632661258932694010359205167343805193156515963661059257780128421238395430154633100169098512933501193983087149191843099076161004895071865775304474892865202865876205271862839341642569446110386061714935486530457610869241989917223654210451249989151724577422882661578851686510378519833810520439220767292085201273756003178430681623889810446784463259600234502236226309789828936216166502802151924742931269015885662308401818991597343910036955104499910416186267808220532092384838712240372259536223961280723199576190947582201025784120546701260890237060338608890476229538227289947865464234004857146375365996602635568377137878303106751748877942212255707181038211065015291865839838477146014397005196451565934654638128022958044641457167256673605985640009632872907141755205437461469273703133112284082003989607689766982608123207010816139420575171360816153453514848911327520321410963538640791971004003916435067738491334847367695732989193243098558386919064514227828710506759655686202728801435714253104199173811890782131313091678372706286921162307238439590640234437048624257973998113190522516643001937652767680411788313045474089323858331189761740971743532494865856096782030322878254683780610489267245310554265396015777108753784374110439607534776313935216377124670549552533151501991816230076240806216034903722233767392050645941819119033630948564042962161610370544897332708967200347380820422212456319322078467369185271342472559813203165925910146285250276452928474292112376150645712458466987173192766005661723153998912030255743226843854527592980094131172456322214102397088564184564016806243729193074077468886217133748180746430220586423009472188567432228985378011014460851072544414680322127660190391281590289430438044677094209376071185688102630268338246318058238366681313822098942920119311879077625638666379739611206518176400442537520708966765957038560527501042202371692273053682002278600551200541046193370010552018853113235851433041409665900244113003654126734546478151068963101508643460698868557128513227133095300366400302387588584455158431194978926471559570209486215589417383912743872205937741118218795968246316247271068240984438585533864089875911524082887620281388708600642037565637131700772528824161246082698396992402909225632691575219517499999637564565184613763527777784494572067233026921848300930589939392178965129158472150685241104641204024457639040508969045609210062325176458679381237354973764772822423557519629899978993849921036322122516692424686721583064374147867684392166463592428163792601048906661075878267718488010111588343275569673943300309256822250243307192071703859444696230541881500970284634500174002431489065841233711113321294225562060830665434215934284413758274320259856162404203504052452170533314129073189729295195905552182477264051329582555405561113036754492240595711858017225923779041807895192813908603014582331581270735268300269174718308137093704400631346334401559723062527888706114981804609936016352825726418345028983924721827184285046074019206843517694460536949176788875423573699390332118086707059717477668035038145635137601733987668036043552036315111851712036092557243557214760985303969564038582732922790852210479066117609929723695895684502261919958633544116080381872976886681280714862069263633222220793326669593629097531683417281654596163969118148459668133370886637163936972183865065922671965782760723585614900822605390193381127970277275387219961528008404663420872314959125826503706956237854750126615365763632071133117844632518934080949500128432389032570086436607684214593792024423994187616700426857792475567630790386467987635026643282521677045281845228851188586300068779363066216487599202276744681741186207115335136106846646231409604016897336468889425575730509183245641646707144328120727136752307919117460515713781850611211723441726334198384127349176610830872401886323123850158160949745472724118095264639018822405446567030553775475781851213325631775787301699403667586577854552882913444058858962848060937212672261464476272983732663089216989664686891761534820612410430882793849601595199605987354116762069441526890027186053498731634416617099877327728192920889763567520283971604705594471008538811089340819388709532681517493130729139718981147748710861538660008775893298288100577891889281318665711032514993225653779351998804724828909403343011920463584446269580537270035956178729731191765077594197340696341278468532215195302310260637862178388826580963250041305615051705723124437099181961183646961231491836420301861166282537370736302226790902385827020475624388459282385839295594311130396051685874351507833049636038681440712657025859798520134658129132642902948503373263046485143146853913174157450537182936520745588620875395202189527901701669611927062006167189449905617652383090157643198466958352187617448455784718731294448901787946091986797422135298124256912953183362739345800122826242759786859434111881491134233395969224530711160440490753043961146898786057726924187326217572978947930407109612141634289874258393797277658389910965706014431423079080858786379628753242464235420133000208730303380402834231928704194202928903311796445797417919751671165025484803268732297611513076281047154738818879427925287097398337000270768544942749340951805846180381012057502794291130990416265941616373404396598466239433178717606605880429688555637297597004978338228604431346084927672566878145972823695823237803292964449998688241025811548775173958305433076242075129318431632741790822059821820995232497626410762904679267901954557419800150849365511405463331741719220321349256187768337771184600032514195178107529270162877088604963265632216048811791912076543583002539352636064466906135432416805037387867379852308004388036080322103543288930474249388748848521780025198904811395339382450189851876581593470611725823826366902427289459592336607334958402450044261327920704548684173155076316873049219009075841121362273527906056883304779241180617808831210105838034368547837842353119579769395282635125745465530645558032910266521011484931698337350730971571857091394729889958827898112204815048046940079520196436602640286642820163648543227745579892812173116118889031552414276807587169351275457618582135341204868779887673185880743343757433299083622307891725562641646966339833620178240535767573909442972255836779387289165116410405986215506594868381854767398157214367720013275044466730043528464723462593148064087288879047945609418113464387482602828421587789357362280220408664399126838931165487317974050020244453487764472599860041987741312112433524127745475248133139151663809949569195394773434474518891573934792858841656929522468792231936149861713175786976562274378203661382837236956484399628022696179508850865046885420768193230865043656957206858956909289562111503408682465429678709397426536166152715932630116220607202847948821309110309505165434197619320483056143864392233878759246157231372796425301094960422855338032263032660458004439435271712098064588255133920869253239441067114624411525099226043825432797178252193213503598622143237739989391305698459283880071729628019455569955684656480079812975532299205642293234305684386466665247598748546748928309221413850855455188871186040698323978097662828592871637321952104282632980766481921301302208698554208364366095211129667851143817577137428640644171503837314049161261138524636548629350787397589062593458665524682568117148014177571494436399116269592231546300990921155132391056475713261658054090069702805063888726838156950440115277485786706712433695091449982189445440370857325656627616821065782922931536064063185539747361618817580674407634899587455030215210576377939040324653726192225235273516368116293238066505399031362790068327647814282212441189748699877698585582364243236976304455709408033242265524799175704432746709737890480565070397241037699383948478078480358433399293967234427872960205030574109427226171163655717529689195804010986874281682289771803149042978731785413159285034481868079700009171787791203425447594149914190438937146938907805721390895588313644518513687063422789571242500524299171757321871674876697315658689147382432619925367179540470844329097065417644835205352354584137354910160436843114215201151960834220087328856959945138525977357567959830423923629830426394855699494508715883677338137303634192874587287845836175615092339485896013664140351757020177729056220063696608489802237549974578000699102742743778314914727486540292685089260785636845719436852315608232964463410292633844695970324600632497700841333156695591543223954131901879524309844220884177761439079404869107246258511175005799896630962756220481280290728038914492895116949497107407778710710102431751693152076068482733996573461564216776346086075915958027717425541520228534014605611360269216187075269482510320097665129523529022394559755161381262649875699774772550867194225073862626953744790358476668284370295383429753198241853930127335073576820297597989330321577417481259144892892581357442594047730982304290192746897090988488396233265151295693878800437651483182150174491973491462980719207602994970313519937151087904015901679520999913494640983733659600557300146899602625304619529125991853938937719881660168904408574560005989509081288105558858135954799309892526384242779979332029709281551112374669515285960936725881389995812232840735581533586080323154393803182624565321521777537409957959150654639365132826792484691974618948442041826400095656869116774410035943203943450452050839334442385525540484020738222796681970188331661142849358185955131956528210258259826168791975419172762746699601008744531801196558863313892115020852575941010613265698616274044954582489613912420711777324440986197937176250830979237866354080934456182719993799368745365372693974660939234926656124962072046230068882940676727664787022294563811805712146674710373689830950987373326321051035231784037496438875736968148947594766346630656483277457752218646650835387803302026603527356019691206561948832108424132219665359202785337199975124605891625165861928703077437196076124186413769859426832291757102223559181779661032113165879353356937665792666229497770589030337599602506819573246121260866489591914586135409550571418554116934125225400766026990509915495175369115883915478353326611642879412095473344500686370976199252745815577397186173624585066423434553679669903761215704822637338586559657323706214498363600878424804509527104916130278481108912255465783194382274564968157810487378767284077411313551968083058443273807972312976505476160779307760189551874291423364130036117596820365506499871835286731184229271833371949265010953618019604187260474835083645990119510169123119333757396625166904934054014021187360303314287042228224076620168645792319306059318071756030732173711023482511959508580596358666726457872288837671834707013647234667167848325765840112315287320737997526914119320792006558930770065714846720757381260967097397819220411715419291194945657723824056022700359033843056106927182433796859695613879726889196975270266649896914438493716904269132944030992918844442181483398148708233635419225514872409434333967518814520494734611153214937967708793117235633090292137206891020929797455407404898091620421689243690368094198927728320966915243730418510695245258455057696161863642493596098753785315402435095462215515466887015687732114596256813229949654865546960780027485968412221716875995873356578848043578819271714578950110840969389154464369636051096681525822872707863017297316879176101223580729620122580298146359228082414921392582907559356595739818297023800355069581008061553710510873318721560065856686369858483469015930526092579157690300409447175271760791194538392379894405139174957894437984699514155904407239581408167895957899579683502559236447415563954758365959861887801952954403846899035742839991428175659115650541579850672685531649376177230973559135219494576758264104441070157517180961230977817287688962719189510324492934545754607148794402710942723071041381000738441516279881529058852873354753740786056496135075928503627566786384223633187394688623484688796071901805697537988562911008267893921004896892450204284889626489599016692551086178590451382865928917686428579420767819989393041469836964235257469747221543172497702387274406821147942855402835295668762522671978877160025040477667239571541410176879652746140301291697795012343772509764212810757583375029584488229634655036489010472774816561008948608617191015143375069041182933688147356257066896593298224943020661358634415513569450030855423349743845624463860171406481849668665834422090187521006360836487108791733985024196536949478282978852034130518733841876639936368386993733357124840289714633839729856243128939460185474075648091266949246896779461183953527586880069812651423580689436303564889982411627096509422817702199956058647118124354624290692569949250845633110784356019172213927745776353099222098084703483459982923168574164912112656214014806903809324199932536371167819424592267968510590808732492944227268422280333377182975286155777947879066087051486829177674404604408811660962934823126912287657963322909130768310957869070960508350553640374541816530955328361852241480478884707895077320375681337441222272638391038570179448127414397791800531180748040417375835970865445254134218288530906247476005848810286014801265622980734265830568763183033910458606960459791826016949095015787319842965101076317642393095851792720714455543351213261173674615832516407763904540122769682930521448920175310901136278812914655767714594612754666667418608392513184536512874086625608480965677388481938471272184760007734782207361520480739858562015857158718721256461791912010730583878033064964239236105698819398053932336224325612056055067677975318979221347209756206845620338135672066236545407264822656274642736129427222665149533752122538394757375597144753590691204616544658834754316271613130227624578522006332452646659881536066367625666539777304324973449299893181099530326972820617092386519510777793596830831561157237999088210206147195638394216431286633404791966700690493635427215710823833195014319290227226064142324927232606171653239252665886523557019331112678246633658228646449305654473558440851200862193952029216922318327561791730695256758759574402821266496508005452727971014297822652837380510939842712597532605752667175298573087194785746109616064036431122668245459259116917058471053346611555906576902007593901392583379918863803610532346229717958156040161597774000273991696691697857465454117183411395020702438039999434256455200421987847490636091226579222475697039059044373481152291288572083741564285933831815302731731993439941495364968397963774718861916269625681726920427684283873112291498143731334164023862435601722463111502671919382098717446501209637384678326120651533208035986816555433771362030404042868554620115415587740853710501661761312455911796504703416085461135901596018852006585601686774860317304586926276728209935783446830841692080458410154582289282749056924514764682735037318131054941299927045432868185217148012110434991257145958680704350140004253376066368039787677186526290454701217538813217295079009477888060280637957651812946601482797103651231912403402218921663232773696836875842274156125763967276754389566564094448183731159978030006440860937862740508655811348805006203063618454008466949669198848657307102804256209245338729201225347495307170608125817279975517373575976357698061074541170845797213472203522086220844590736106652715094759709587528369372963609213517520684963710809118740896036947953961284529223552846773632464881131557489771575310357260722176278858171037099762896625885782551454722760053743735607327898448195087374770872140671698639884425498290147371798928281643382948650910220258020551948454567335005087938038786772427416900439342881612436262018233130773454771289679979302036931943009566660115930622609799641481447486858081822230101316231837437071980115715794396299863239904562017273982840965865977299083480854414751658894515145678002764034404391389579632729658051299110994430004154416688241892458145275149629474121666357177378733231174307246577941371261134100130454696076880046547814138410289032821053879113376364198274313672361234449211389603655806875582125541252584914057150298163842108747755688258907935645912985118619040111128436266820543138699810063382896081938009094848786420481541636784479922903176188044459872543089693222621670270989996976259420956336522490180211785548007978581710121647370399613353694988837260930418189279267244964916647474594982347272369079862056289241858244596298726699465471899221589638347655677250022377572658135695486633060781833455447674766071348806963203053282776728042350969181819823954886990518516335782197781301420879496243441585449410189590226767203649596390343476797379769144456511277727269704585712249087426966998160462574378610753546901219807954132547828349636962665842763961403528632093961310486693173026781592080609982651578534457573645474127419705522262400872098475477648049111773150327435139978267449463385567412786033024894285467280101617670521380626664346726305074035529899026436513488563710088052750608530677660219833549736634313581098018172667822976517205321854862096553918006894696547271348388571119093324735579485620335589168454502188354806597293399246206846432987624715369397090088445710869925920109855759288551887072133252875811439399535075478079402012356472616491405731211331637718954418831036370023263812178007823485226396666829356362260356296451502616473943861707997221803642985257710390888840997758391896728307154767093586214695419014917821757392984886842648744929015228248943206902268629849129443337714430550658427057767716994776668155430660856044131568341234860445510053829743241879464269843626003971999630786082483640591998582155321028065501543850846337529051068000240527220422303245808495674951444871800276407819696887985279828729762323737859322648452105765267025398951206010809345447568798577902651103654243678523034948927644184584421414645458059326057725919794498536847929182815067111634229653279885883499484475020888187933648929052479159271202154546047111468533641824886697300868756953090280281344068623858420821714063567058402621194167089766296124060429872275473529856977355569141095167439829118136155150719140765554197079480864967208432471440057373872199639538487318073939051124684744849248726649069352643429395552551881248476980984352044880772399881917642237444864362347071833704866226683885481209792878141626006060335330381039492093794943396593315691589377813507563653922336011568959888703786985786069670315933718385229515259841061201405726399040026870062863498287390921219244733385457565992825205691811714839710283174946794275446767409366465801718221761968019436375233086317983814554169105075208354017019672106677668552718974766976427723053212424082959045556413814540334661360932318270961286080900553824665877956695842995150592052706462579043837095699207156279162685896099917074046814710728434130466032858572885059836474304341168321241185011115524301599828821729679930708323787270182658993743742103926391539054562662344056976792571893066546586712174142694626647571172748288084443323138581738455472017398939701064699704496811197644049916331260093891788501144667790326924454449258541998539778580417107831369144826577980697203669240085557257501239547622178149087799942192681663098979657865643547858204333380889720524974902350875507996266389646538142674507925926685169304949812474644817622091522248260560228649305425683369889321992237338155442318025186051292789681487385833581673264715643886373100368663982164789612487555214313316797184219726625183822690070693844435211134877716426941409484054341542785680098460614126981390619700882139102134594691986250787653998124594909024220597325391283788041074087455113362724848405482120599671806520336127509765020936069900216052106939353692768695264905054111524304628132941041910916578605251099638406346104171255087641258885169319841601459696096036528979022562610622668542399802533805357317889947877137327242097154322117670731309055006105101838213329091587782429236046112435621609835664837232734605605601324622664359059346230580812898832844625403632033720933538977372427911171551350386672325331611054182406669907651263013049574767197443850423828514331442376385190698854695296919816231932796641970406491448090283388952290072027470909978010373503691706143522463553703179221767978878633364211769613773842365760655550210365266525559549138760579252717331944798537964620442676881922775827989318247322561615645970026569483805697184421518074595406755494172551235949720505344677009487153518689542619284998452252889791276935850561181567698478803110603478242337749097808317687087353966910990437852346929009946614187051526688945193290099795017699719053339991679590295138955473717702522030336991824742820926470161831016196745719538050476367489122559876053220161210182798111555914860572010909396538860617776660397298589420576414606588503506604702640049555046738742221383391301223353607147652364791372013925536402685440351150330484859447416603501595246582458363680212784642789514831717812007790743673432706881675951696004872529723158957581233863281531693506518016350108025796501452635258715253180028585140727210643072248532410518591625399751048938999123152871598050297211469807194573217109908910931482887465627815244282179194700385312630276909387449429379800084663594660470724249436103982532145716861155105249951949874827912793733873360525907114910710690474834892851555802138079028688864470046272248459183662394950578786045342329088255135137145620710401469146509583778737759276306694759444424869774552427240161306709158428028970718269969060614298668622458778311460585654807832754900055822482048094140245342660986187766857248894490523582092673216192705128705329723658978039057417769174562106085571854032397663993953415729916274131890949299969490275911151134999564630157489882086946994459094696391733629664223711930857163872095404168828935717707890517315500558457112823917728310892308820171621274621604670807013882931055289061116701290261202929292885094113638907615387859181460789149015536445462150158260215234108888606023603739544183652769584944618471349635842593056588431395257821026039303003097954259273818309347292132210447252710000620803772530271291200555551603286559156697524459555860162458880708178055862141456921892249895743481831010294152663671982386379264578176426041114641570819916628005499192307324842880900807365819828703104947076921500597785042710075633270892664248581789065886694334294073031990402407868593307174261080564227821018052224724794610918064812434530864357984143272925135097983272608326996777017010030065349751539403061218387882855868338651537263454121026131625872301403285225395593899741799757106148024135552336079921263194444091644411056311970455828858341426708527209099652616766744093417558393428103985184028419457637821248246070643911354091232520176819387677548551406951931720313458286229655348244236241894714190747951234230049473189708803431858825106385791004202499607576549650905334683930076795747204529058013347857339695247758447999773269773148115471672374089757587028190277428695255468633168550219415977312418990258248609419094678875729467285531910957473635500090454576298631231756078199193997384125229128810860188208772554252910246396892746177424206660491815036764029548631574747588353449412644881757613879455514212712938812184430388665340296694635933318491738385053624559530364855036285687321723268287545419326265714953357600124083563424360139976174869427563732565920396838819191690094518108000757890030321035645377008916677365616121139439960885356127577559465025775169878354081002940101617847936446950614424852771625068525778092722868814542316881595590595509210961487386121786748532483308058039442165647744001565599850861320049815866231938752379003542400604070198461993443084085433724723912979146757292614218437902306911090522779079859312065577040485742182075658719920393468239510911978904665056401282537626473247104018049438618366181686628117794921034221657949211814030026511157244731642132844887588760766184751719423332374328399877333828001206482529354560932834797467320962110990961237369839724220841016832539563996060565468309205123437454831443293503543797864511886698577970123584909455415365378338806515637903396469958902068783612502136000226664535784815373914343586236943432429795046628490995951846237952695176302657977297631199657943968846975830229759291798603734249934076744701400237459958510145885854891045798299182081288540719209377593270901276665158125785351695854658930012314709071943538487594177834958926009813974866104206426019151629068511813416582658459719246107824344530572320265259010162925715822655766815388376802986850959162483419322328043337836525371359703434937395149409592517613669401750113007356036078250392378267697183658537189159082816338607459687445286728943032031488242271352926907254521115889013297646225581946090017299571002745435236581133380110940219644615377096579620694076241786595091445339142738404399191278548918835298745968427114860550636517447134934399160076381756449950608682778613528831548706877863898128082586558002119362082238974088288155594963115992261543371285937315463099001265872125483742675199066223658536411772210740947098078570745029260304773473788323565888459786540525322336639494853534469750799852238288478079909915112679121899949978416168394822733342168985180041535717307532827598201301014715354204249476419032442739084963994974227797127225992366199141138750957507690632614137002120031937752484478524052756064703847339841491818895656704406428538780423551548662915835248048791983683350119706984807726781299465918982619877198543102181419665932942673320438115544706994348610694580473595603893905838952923488419953227070118177410591614491240113295412004883876574017506913156451110061489010235534413868054221101810483401549508444172161846405257738219179520699686318481211349027215195841777133608774185149183386295672709721642286889120747638552027179738606756676156222395208369520701524074992712977872698220097329032151562153050554460196485204686818820533483193758544436376022945519685790000294856291044875812000894371837403632957244122259607928062802764397011231165819972239624743672551274841777271007769217595592394972919404349170665272405012096177903112321736341761706706012011074476450865516473717020720392734251356541303628930697099255127145596332879250814284458378984783299176154083329471037713907192119232665628422241815596103568297063149676033103029870681196415024916239740259226298672572506080059953240443631524655378383908933192751429173097522945752833356173235097181480822016316619296744010917887589828008514744410770138157700075211185043811052331216464970656782204251050093840246206080346952699884665718528963571966013061010688187647267299943455278105446528467056605711773174129426910741751989652621241464023717607360649479736252144010687691525145540976517594348288834919690562938470121930005427443204753841625408828211365591602492333358525661284836120236453570386990130346991110587112645584885404000766782279260738336014893925184509177645767475670955521533982151631219336147286944328098441860393594421125732352274257415280276017596768729253680391868463435307964419439802827976071171848849191398986678676926515532219184148565386537465275807910559924740343298467226425444485524524077849508751502191171968877550321011018878915334605736957987637840020808990540066082114384972062295899405987093806543166016044235496467308495859678621222533990576380803486353739105888632721164463892326394560342412124230905114148556691902189871022859558948934036049430080940232148372259074480798735478613162891467798342693086592534092905575000137526906815703744208428336341201397024167212688039858362152455515361388139007832190946648432682372840472080111364967944699616998322989630754658151839866920284465077678378624948135373484234703913708484772249171054086689733265811759288221653160362189653133875177007569629624378967757562718073297296199498697117900660344106972418608707846692797948822719358594456182137322077354169256226985729820991200960899208775443451835596775522496095749259953201283380830737579552229818091835810600282272690435458369257236187720873520505578177105227120376550698231036460554392411364873439784651464113116238262023362802127809425961861709762553801559283854687837217429641456637593795446196115824484772402329840529063449016906650973909761033289819420971020001762313341943337411673281011695354378272422033428498608352351954166929326283669703987562780801411388632621451020145068128178851740965552521675506804078076721622693121413973149664776476326126973446966368393921002977538340079782729498475766952780087107911311601154362475579238357942823116533690411045983119000165541818057469310901508729109011211322534699652433809121282915941299296605261985013700391888793778297009677359615987042347536342161031492300741979185422346737942570134235233338576020690930352174643553981728787878171718053896030516187045136619561509915568686982647711150432726059691382159510339653087321769907734797530670100026008839570542473892117371680889540477422353084507062787322300006977638861196910991734835455731946467454680756012467970536660177482506663256037363337482057333259748996384431503635883323556912488709940784755206292646716416387425804911322663976119081432901916297030749337208352625721693817237860810042039727898614527399955074705939614723187972749195723879811552714551132792909461827971973323977541012799404041418927854045394988496030234822652949877671363976661502256711063130948164115100783046771697885140696742149923432578263103166876339040687692304981127855613418232441230564994042219254749931492130257604265158602061192095101648199689202969144118769991246841206565314781681901476495053973155179543618749101618378072778041433131529065073829645625191981928146459799594531444753869888486464057251203798084228449546458950387664513877006732883177403582381516448680145733816020002655899384654762918055956612586510821690190917023146500014114415032164243105944320733788438853477273767912943752805527266661928060209187637413479454643249199034041412192849628284618212620308147050762642783230585085903288159998585355849447695300785185510223961085333620703856545517479623342749380917249097849741099157020221675376043792296350115257670663575895442799420570120860673185603130243490802297866726781413704110229557821037753230086698873994127289017597688994461474466390086236593313641479759382576224028479339306257929697218819138680525959344088601549744749282265997171232370259427454238931774705297316908937097921031553262586741148603056411049433616498315360661830972806656883134203151474622281480292152106854442168318641306509491586946625200412747834952930328171094284802506379999755182371445888127604806289043428699875288302836796147738720477785119998517579982838474796010357305374358737170356813418455766080498509919430270926960241761163944521149815164600327111444704284524509977825758725276370459875766092519404565458496383960938264746499788608802071442535266101217388352837558382131121069397265076685765343139601657521354544613849226211576197072859589152774745511067189249000771294585779812940090360606865167409185430160291621346393487126244270545381497381017969308237214210413219478299223654617473336050092619999186334946439562367094127321206535311474582115716014526114982151950803043678833014170008407094166932039216023883057696581824919154386947027715211035598397513820585346387134300808615616031677612495511785150120691643931658520441613931396343263165175610083013410177707023403105651391377904676937531498034943150541625464344607464163958849171344299755806840955728452929084479976328833438472854550830979614780470178932539785273116583757792022967123864903573997502538221863679686419027019867778367872190275159258357830273165595315842472265720191539134793578984853076874795410351957328350754881532749310357432855096102305498406808871805435396645455477479291426611378152176729488282998196835135028423382770624599043254394574677350489632173525361428640034480752458190665733635778925860838579355215035569046252095079081596172821709136159718297450865590395892579972771039941252658605770030902038346286118578606326295521526370284213385786719668028005464143581731857155116624670809107884387297787215919202230040051031946969715981184225739223764150146806201709604501266266226822375238333620687601267332424746166260462019052655916433676819106298117917923501115462800570774396356398873263584705905832238115510142914316565545242062656373653900927448668076239752935237050578946225990058297714805696265126793028225322464393078412241686414084934895923835898620043081248738129320923971793187735272594348918143798804611335162775431432119637672601048068026197136994307548705181136443053615771922236941517903383604746722433979625904091427144399244885024222798218600948994129891377653325453804517969341376116523309646886841208113142864903850149285888541622180634246342749188399045680348709247062510595866556426721472180551836937603908484363532290201178184030689752107498563823997278070284033316922923735428827198340679303982217153082915635082638304127601189902209535388081754553322130138393340573955414242872559356742095506896405632434906119657958096030996902068988435442400214023201618592625750148679481140133582693075957585610088281283617351869877023490283819592676696820724802445554618239426902421690227139315238601540874408314310587744726337588855400379456891162815169029970230171025746729431071118345442477212025597054330729769362229617499722143202607004422425047423178391166091538611000802507875729499600465272657500927275018247552924152161436835076800160290732775816477816379396288781730707660018241205620636866184458562918461668282714474379026495400446361920980209991870175164673065035354345787893880117649289754261774882749353237888360463811390267711654090981224529425538456505708975496745814978148389126345942569922938879112071446160762753740065838031415623995711409325804809889060813478726167990127825471136368897932312837286621677803282014517776898431181765895349560336396748067162443966029903095149234802872789802073141575789243371219278841412211380503996355388668883249717771011608739636827174948730579853463073369317857477639269982851809354574164242215572293742920268322885677925774240643254699734646357778445583543257980935471829024385493144275869254939783374550137074661695000217503528363677354177951188387181422062354531984240928358965965026668330592146755628529803125957837096879164228704623114208941213086980725349975909455548582848162929659441590440972639957066752953223015504697579738740677028907518882717361798557389916999390732209334619469220911734988504566795166365500954788191152360394721236776895430432925718034373309558165950659822541455325736575872568063468389707880028732991503517102825200977182605541710446216746365491128366685524799142431305827398037608237560064850904162445470311227079264007080367775271746358984190128652427556362536849663219954188372952188875558924377219722092081439598859117444282028296985635039852093773981320086569773863734347648772479081784414378352364457130070366290278809762091471958515968039782350601432479832325270351066568871214429397608597380616760309213749374722194811471565193353190905550798924614658227446615981575889590497527027055249427550412320820417439603595198088790043907842866228638326714372791133058443299392163060039698075160441974759775094560108734940044035064300720034741443044617771286779788876533533053817417469127265891635450423086758385646561283511751658237194698041967973755330911969454180504010869926922219885667568389201645117561163207919268523188065872129275099765883798713453004176466189894701774881917611469174545123193976927298895597139033060767871413172986564938264928648030889328101262123891626111729727139055831142423173868078285547495244636178755317904759604336206291934737513250164922256293686179702308533656966651454811477732354986474046036430929538100120116520506563401691222239068957089190226346246454663896274161727847560019697726713130261351025537646361070991811947505227779373599859341344704433944466495732677590612269681879223663260620974264254396015371671079170987231365990688936723201787223322437402298528474902264515039120936273983122273935146795828248789324507251931502627255296041452486919527157966651898160586033646186783330971093788464927584405321750656895763501851483265404563704142071078574036215980032196939246886417335204775949976363121189677111466023930250463082081437633787114555360228257397243669153991043415673632131344760476846994312946018095038658857679983738000575982271065566201411244758025953802314493075725042017398453379960524494686373753740268172539759083617602525346393408282070398303044221713852612011755533152749536977163952017540233148961257112603498977198601080429101343815696386602411073445609304339580624556974476641686067341760602996306203717160828262668106838453906843883330672065818933240136095235892673254543613742662392801996769924196595097241481308978627860322557524596986671293542212277908269288049856426510590898911960336582526118962599292531766811451300738754863328569162320751167096138539645269414267089159485527225589190356476927542374966820598665960896704105979831588423667195151591256538143186453262573245078692439729952781253682399424814519031047399565886617217248835038979639813817056914775933339842244694509640957007101535963245200619705466512774025357272366150583168695372543126418261504441165740920773149188983927336829834361567809799816008892798323315260310748455303123707010676892976994670634879833603694452144022250556022782719563569392939444827404886130658380164667023910221920861986304103507502638847427910892640928690699450720828362361044835489606452611053133898288171291772776379461691095999408914764401301963587138501847986233459067907582329823752922994837021383908557422406727607610202591352673183427194822684415338091796901589761063837856124033653508040386522316020208303024801699624735645880968523802855664942167036994958500693990183081410858215989045479370420077882039390476971693560709011139903748929518001240661460607218889005623808761423467428077849530757199747300849011532444221389566311783675350117936710353751434324011588271794431739255839016656860332788430033189799023061550999387713085431050212906827971770188915894687800420670537850576744642950995669586730704729832106007150798671567213304609117010150608480630598800025571278537008244819151678508575002486959882631049038800323800367855312554342340687917971677730627883522672093311915611455504593087391517897076908681636785038788935999939385737475418766453069308928665028971900952912818208864560823183711676723562309469677266097257604040230984889681622033030556532175419347518560793846542442144000793846069666352771148706252309928368138693466780561420116179693608880642381832075056171748050572441921273250575271396414750527652888157960990301910555953822313764131994148207522420723498307921397648773894596954124325509142137828802413273601675382450525079000236268088276524785843131033901409365841840377666412114306333749569115873159501875113435330009883383153947912097359214711912007036369539115660486556647358245348720315977175143812925842426187538731351875554658120683953829305695360135950932259656660067069142593113965037694754435539233896259681565312160024886619393543195103700220346410711729280918937851973301553101684713615468003843067833086559233387269049967841057006457659430594032942886819524727911823568633935186525081114135263908759223083185108884193686065736084709508235608744886978681125742684730506974154189883902476342468611657532115284102181314020618374603763015657725467483285220949618947847504330957839157849181495310264746223951984770597817545098504344852982298825994462566828280289113366064022579316936502471930234705592144400410227588613136054179784818175522497464407307561219587909710023348000125904118982215271052633922156290300974510867898271563235094371086211659011355217041014960420793396786903891569546240260039692065550650314343511588205894123011521259137284090127870235945233573452887191614352818216517298943667698209728001470080522902987074932073127190146625865911777833526852348224469527209866350239619045872865279848308733978013587611394969412740449454898903338441608700142145246210230154252104576899432566485179645788325569558140574206408107509815838911012168223057840860903083801122771553946072762535776936365174038749740507879255936111450997316742571819837415966005398440979183121789939156421007856344016410000084284725071739406893105144082868640198165257394400791336721127478971287400947695200666946343225612192278319450213496011644420203442560407430090332199459216605184751961723806107501602454583643821529347533542883390851781744764266713080923835081370267651198270593278728448175141947994918589833632068303137686468729748280710822186589828328573621534292556357025018348295364007180248925169623701983718447922801463072653307388272382435737132043117955640707986354499879776867301320647268862370729868185470677605850923901143105574485315502485780093929348003321971584462828991957603377909169459912203014920896384516698953436762776470110626905997420908609800450105197540909701199906355051671767086549477964304780480348340695840449993691705214517272507210391619677721765312695835699681388335571423438178987795357290994020974184900012927809228260143232160616672640858806731861466944130582291436679531493532148604603008335415261132818863761814312366174804379694749803211555230908073641362511808081928978097758521884790884215458885726258976809599362330475218077395836493928376209135489820422032102406542886007806333005034937282783255693170933481272688680060959102961363306570371255195672863909542223091800295686319263619973130119362622343636198631812431194832161465545951376612704633276419571333303333651541226272196500094369784543206834093985674223262677984562909715577408821549126523106667553291765378317093192784083010380946540902959001185297556473827325266691453621425894656088346629773187499930197935813339151569198720955236049323677211194004596739821549274602493465340881118742496684282772434698634804970349857270242230039302086868960857809288400358743605214749774183451769819033223986831165479052930101450821522308666112768703812554172944992173755853242585368895873766508679664396320896297593794609976945896592122159783291875511413119733065520287098075440269848127365210530706049871678451435106014227726606074982052823287875277318041186128719896393315555469800773149066051726414809858332561333964780266961974153387494347864435859403388072478419718024803245884598799167265198787522044194707738210265685446375089293799507224598743906520222211559380787118331202861180799939714010015935565604779466560861518040195511570445908198743383627344809986290954936501926516902147765141494889016205183503582716755150146691072349843307615584860363559181629233843033295913005821024667305686773512888641264316052629182487287598569415276557429693366673554073253431951361650340425380460749565559128640780911506517101206462923400988476284830839282199740096618959787200922219579635752581436395241920457499186051913899684138520304082546600300860663084849713921059224635723594645009714015923073039657192301963455466048821407452603312853247784800399240591461831103106295679929111834124768841499100580780115264884659455300868648327303682259060947109636203900805220814789078119008803274588738304677029526269788625154581010994323371437378244658726126633349949575720436607923131575242026462881011956563651998235163698418857863483460644609975850732391221615366430751854005443380755366383140346727043763118667011486963114633861277673731340412729339824219722935425676063939705201455691291417850027653160605431408334635967721996691330085593229666958576014812892529770017034175092756074558886123275209227009769486633810789914275089696295687752780103471282653868994929090955425712115462928805828297946720987129483079019527277538405624259332634629129498937755354407738184240454809555887188109803143913408445843762611740871994365938133076025156290172964107127278177758249463932324775693795883487690406266955340888816393288015653188637577906211584071455331178559965500943972033715041119704496824987654778431013419495628917246929229451296015515999343912274749506905904522114595762132286871271241931747680121592990573748942165579803053203623313791287840881982181333981748511452653193181724803198716068553023831214501779397730277335743017786923617581559120418419111997677734612013478495120603305076771122980514947779865641314017733999562649554741701005413971276359220665619950724699080422393233667861232210251940220542136791224750225506207994843227690023520251026546433556200887757188329148449459606903525234659090105720447000367898726086042546589211667442206433925637676140686946517399869815805090340755948051222129326625496330408277357454401841520258212919288434612111510380913708275209541143772171066646119617144308018780980679698120428584210578712782424230329544549258629734205126393206626439584945964948356158778238540376432647005225744451901377803418945958282032723623523415904303387567715097129596739634554098004139511960325310928700263126016513185540133740099348955894332210728640527345153747176521066716852889488077884567875904675527364479581411814887183717104252945745675852981767198574973548153675138070638457019705335437313321595114139925384525627896662870993790646190524039656035581605507439713340039511571059268092713326615546742752163547012281169829331049920508923091885826197004122241772366868368691080499646731603929748250638107870691545394741179472618355409629969251790108561764572170314193632885388685687363419316468517705076984631826418970121094327137539185566606166008567725884297455358263904303185550123193482259561632045868701006599181981063760676816501174066974373830067858594007367663708462508294439205194780143410799719490653041837253361283048103794060733538812791242340351255084638093815739580916751781143659128140870800199310079149709922231546576291230366164085528919484435586536540351499308111660558196665934875749097728220306912546778919762411899735092704343490672964581619809220135042797246918269110273612546710059687834759532791665206525812557796859324807808218795318878125593734713926057049954939144234150430051876981951351625224822480788293823571266887352061120864781192311790505620534215562971396844409492264883842497041850746278093358205966763986809698839483261180963424704916138728321761441602856229121955450527526416373576881801208914403266431631999160236124582524185069562320517070791952303136490834535119392515493733780127294255750538892848769051677344065857588155707162676414999764189857391918688858321499310658991768145929150743025125413446446660394407500090173425543374047346047106535549630412551309790457782419186331512527096591492529766281786878830806582250165231680019015322594041438748716356647860972715824042736495669610145989612905819301643112177788719943962713936896606768994013206107956122975559488696747896979395308241131780538334373311621407741310098280410183124225986492068910328365431420181466167788680814853644474758060094482922888755748795208524530397500223671412288755085607792647965079659269098736501896201885134476299334391616416010618919375881053665801468391501051233384449610097467400147275134869017169546114741059425552513313809398557312408271750883643615872098820056487388885106321811170027612732417802881348915551641441043672419061037424426900774786548156308729365525851519792002310103072493474195126725573023333975687346321065997581696687560511183940387955779890750928411703090666751974950612066923950846905360967787312980526083912431055022108150837647378462428744406740647498990954668099495336641585502485630009768498770241561676161967279363216043417175194458234585123076231293091337407432176247085790101377780902075900746425314099159635085152684113345079840827151364398962479493680790484836829502591350820985079915845815711144203847317806645891565978145532492995947209676397650256321958757984030691195758721596962598672428662949266622627245045763096956480131578471408797505623100853370114921694339458214904822571823355150487145391253808560326627107160071039492390091170706471842156428122591486533110599144076638554907026407589454773674381860114248552675617042412974962341457887791436624979254885278764113143542212160090998403620070370361503179451805406529452050548323211060120034582142025756477290156044095561865142152646744204156176760573226067329623754060005464865685096114995177293202792817860454525214811397006440392572045162605933086185611435999902523707007564737049368882744384353433978606447553348795058595709874093565720845376902228283266226341535340872828686312471106184852854361996091223586311782849754607733399604273287354165767729586950567732686438186592566039320777846947646580475722427455249573988375531559163046479553806625573635832595128734304153998784436801864194614404873678866842607748596445902351962032750341162911733589661721516285419049841475593674917483884146060119137154192908850667413229022373579928090181422290397733243567466457336915934361893428460247785574525389574667918236605434539519007886847953816816432755217652693448735466478948232455149527374209843095579718955862017562755209269264375807987265743049947760962360760611011481697028256572568047446534804127824548030390441266882097694301984906571026730388504201540235804864826536876047091223191380620468828573194436316551532503124234824875136580383336873485081650645596870532165702831887473824664348424447793960537859707541578436814241721924533551384951656207485381209503385753164224108732989326480749713623766234041793953788157313352161259311787844550338051363797814264350038591371496156899888529064306959406374390283188505604366839937246491722007172306250366483074150010075455463812032912825177750617125552378965092120476985959525052651395964258000342681539766273122681093052044341247221569355476190641307497148570768961741411964019929811445457260769053528401710355878757886879676745898778761953459756845993937791051519216126700314947155613261345289514396622927317908759930411588180504495793429177918688550999776521345148492375828595423450532097524727815416454501827225903936099126632230687807741499925227492864833449696644360507686815926016284359703817134571516485559787767078768086125389670844631138809141372655557666417589006080663757831797750253331574128790491896535688078606282821241533959560700786877837583840462170138364050707384794265387874557387179891473300459260762412410641398202912192617553028879944437953259947378783544867470579807278924951702551038944808498397187908607660818119285913527721384536038500358351861120016236251143441800416728965943969831292119832271093124603933942346121605468189154073409410112149593117494405810272665116359108962037973603038238521497556201147332023994063918769131706626562964163690365619862604239695667189011542803263632911224526760032202592532073923909077817494522457592826226167614733206348827135245705151095540654730549921527065197197735751020048243342976680111689092211137159501206983187914394249909615257708073107403896857301018968650112105864283988583536329086305688238754535600891119512620035282622601610628780298667605490186817413672972473484508639004431637220424693582290543781845187244232272134302181371239619297859109215794342612792606318674399111145429732021517758755921726516950925747171265680054188480955084659625138377085245990764639325587268845163942225254634281585040633076053649430613323983307858471449017674260524533124534175047295933293960908600453562253339366552512832818310551958751034673404857829195572028299243867550197180931465415794119587719016595777397262880926993599061033461194050041963669555026588073294657791707165434459094111346541310574251056759248236588220295638196197041998772965789549216991007976968627442714374856774416003959294728853213216572806310601215448183170440078272147347001673162475077471047461569613638192588389619770955194207497691227192340200609155595907592928400583800626177188798247297318925660107301160903182777365002195976386741086248670139420362557414339006102391921261954783687153004774563468539359298287405372804385284503131856864165028602619743992860924978565654215637964870442272165582250941694436487794107501294031516946946783266081949286143174725659193813158297745363926171962271797017658685490543462265647299546014391881896830182235013300725434255838886509896517459995690771223469834237249136571785182983842782161981865841089143148759695486575687369164588276334420493472444537802175444943628655741867585555037416502568035951314188193566401779575134310694912865465895462426506025836795403193214617206087424166663722775254997240126918024204754682766330490530012835942876261339861752141957137546225914779203166336662157091469373508628249354059010557708840532464418021797628991511783503049518188953550368873553141958483564140397977816653728465964511843427329388779448087892448882714814968640687487440554552960542173225556616239044141028657806608257419844467440071948153947205745287398562499329563708394962582771412031864445924402209890626885762848313439511328412954511806501654167875727768551896450050859546640356468592939843926772636954818981325736064761206898745577621064207212876603249315483144574085633194604146472653017103807769268546370097399975116177028359116076884701079612696074580794194490624220206879147249587297291069565064541583405673026104944804109879698395702935042288104483537359021292639669868508236631272669198721751462600747683336992558756673271423985488724129450106439068745119671718208576253784817565380242754681365145292194028436180097383276930993496040819017154167139719293233983001506347848294454978672386493710894613085391644545159446337321152848883483894893461629940503828619556521288272381313134948612586593298578213215070566681282697380317378778634899085470168025891398731999887815522364972571259039903601459804256302494401358757715029206957958104896021719156584987315069920943319912795462364639411150787212002443175512114205882046645832179316455832651945928203973741387011953321983323125370003450903504273318343697089786600116846842808289267609985919152613165221617080819358449193981792495595028408240125179540770480454010718444901511273387223402757692328181201639444838521680319606545190378743914197856021933635312041800431201536817289569013937420680955674734118129368774526681232396887969203568528556392181795021918510538722547963313499774943091369679600181110072938237378032942982342861894028066020026948990242085396348590868978837560800023737914967141825720611771385622519213701777320004392398513263369229710910982450083570193062502916207604404656453062076163406410363522561396459111697523615586086571536115729859699476832530682864583589225481218813746835666667129264691585159586636224511850772288588243038201858755194788135617040573972842552395192382826217968335917394131984868020927010465428284070250252465603655165834989830568824633398966891897326277365160055171395876006644503453988661321182676525797783165832747628299897656155937203800320022730271547091131566725620881921332417430202327855400184687831507791168490493954027432865972497813899007199476902182445409077349913699691527161792036626789409361403806299728607769057603280536983368621817541181099765680104550209202539525936780186242868591240721925981133472754109870615944585748715853847633020699207281603899814128996431239010056365342474176445700910617523544283651345180740100397635753138975353406102247537860056759705592327880279188792902975115751880990250918419778080777341469943497789240848730853527701612196867483745974297352724269420706231283348043701230228269972562866301501870708602183712870077940927898507102424392308236030417937002633735752690354602421683325710902925300425733504771049085222705335184496440762573198116681961708857150226227384769698326227960476367283858630833493927935213304238180685408940439543039799999161034689369096363875950605093527450053053586501055507799367967420243451016394297894579621567540864141295380457178006115962948532155446705304827722861170945914588844694198428135152891279618782969357297050785022951084874014851077483278471167454552982477552618461237169914358891003989002401364479482994400186926599909349553349672605779432812447836680836679529770080818925262917838046995416911196963934382748990013649108431683069305538086395008329009313192102354840093885207250694990996268133768977543612428739232922861107723661188263012448216690078883495715793146657291904002412556594422070238207227969794779460295600732564239668450839337022523463554909874062217687958718055765844411229615069005774685505836977272591806949193256544250197098126339213810406915713029761708723643206976517843226825386671536618723471709224636551569333551193623810747432585594380390674845916862359376927279480550821295921234604149972715326514121114083628793139902630359939220870396371798911014193999222124521986813395774151871875983654906970729734218712762822213195360878223632531720947438163264079541935633002242498376116348605440955851605585665964850459055672602413035425232818455890513153058045386792183908643143023367516958101212051459298965930347651793510986823415966234951918136048424420626711447228599661097989764022345773978479188297180376007490343524518684547913822979399887034761793001129021588619881689580705377064344057759390362532876182053773618899639036070026267594093428906402106931539704463240781751680972397742323581655785108661575168845985063015094465252513915327787852977471717660176340477090056954275436304644761668253069886975692836258317299012193173972172488515623568912623646976578978996209746795147288686788168294852539823216219608718463052803569831475614139372268004028326144846150067164343461215979157278907533232897857936217540441407216859037719744659185584408356624321624565625279360129188875175665361092388770399617834195747014942117137662018050596150210020307901832918456732764808099006804128859504947883369801725215273735722098370695536618609151597008095621158613583607521246071750782798332226963811078030794190699541925759271634849521386933376645825780287972470897422009305737117731136799222928177347243898302233715675749202325745011391995272338623013838150394034100721479105196038771240447892527332014549039123650719886955033354650201068336076334618229169488826702455420609132836017172819155495671955285922007740996153245620179610562922878883019832928171422858255586576652968304563499054268176248271157031065207779501965586308945976442785840565066018211691942787987254022328380143575183903168298314089429599607615123135361740871541454745236608333749773435822085533148309631915450244638554709171206192590766345594156670812742013794955208800775524735712832796979750260705938499012960821812874532055564381382375719040282366417779127330662197354202030568448317059111485547720349549315039085956630713360396063858489006368646555074770991315723799271320914993156158095885853804991537616471133059574659550218085631545184621172867075115226671094795064488767926962734122460200905347818798991626339567918465696568475314760687373804823572038039619947432965599965759086408902324880112940607114739790183306722109652623637402780520691376263785580947429301352927985530661018113016327185729667616770144079421780734793547844797287022845905524556785419878533842785835286240998962123137209780165740385524900257191728546423754719188551766744527463249311470419619327033146755548766516332835511238879325401833826779347186358621955257638023384453955112985452800180012530093771734279065847067896518066026486266160345009614876010069481545083328561445747893653647132724279895957147098236158636405256965063742336657993970394923494671026707764883351119610731491179443624140507979721069547750904447773567272675345518894257470641734422882899058734049341924900272446279633428744408167636949100074924760219332447286987479583238231708552094396212957023880398149470477127067047956547138175189446562035160550134676250784608217153363329780598683655025571992818606686340602334364298873450582180050119390917580487499262909472358453426733372131456129850470716009773869139039142267475135764242902922989362938601396577448008575351908505499952341169579386713022216534489277871694075200922716019384823998327413644075550384486546557679678234516950483606739563912213704271029584712296654593821241034036746608269990646962894329209833659255479568568670953507504544669659772728316338552342003083076108024104537423257361959992458640334400153755176744396287885282134108638159754169315111831771534931392091761345938758196308290500889219834130639651377970888942231719216265107532681170754542583390285577431407546991400469779605641866597319094457045012222112735588547568719149193453681632652107134229579747189848039046364024578996644747098964936157450191764154077338474684226522445418198757682662098961198175831015724494630719879037131072350133537670266592782853709020971900108406123081682047905478028656250148471364387353147934349925669301117437932715504752825223965568635492994087651789026366323058084432215904469042916736859605093502116802329710568747867083176193372460769252678140679324812891977256684276068360798657310803767512617865014214635670807262514387944881940570921440108862046363876094172822272750459582427050491934675128982336603168640803807622154626469646983724008131121392150715609806512006702110908115109935175403848331579110022146255605064273456966242958797981481197701773937779219539036852532563328616455304183901028862858813270623971221000017169806048857643842835158333558972634772005555227432607980079040636257117482349087863409625952505318982944069314196234935771245007781104292730562071378493222586061225018013043109701486911887008189783701677405028445896380551402517919424330842126463731164650502783837908812794161560600745590790981999514998952107340884177933357877438326535810831102378485626611328546188422518243466366610285217044967528728831207523496662341150895541158615704506427338235971247621975461505430306889666555485814882974477565921077978142671137742971900390437749606796595653322055788288492993307125737617072359034752803248904041561889879527107559968070856056708183540985279344315244039747771758033963789281660831747062915078135825800184348648213997123985011013585287593655697108191321731697520357942648634086827217508874779637558663507296926393305534969484382755748617314181750237291114744197048702027058309643338231688573404161589973929040446714508264658163296559566246476169279070768083485226626396543917329027618508203383183565617442952818373698905935301694481802461915720903204763450501852983906341304395822569829829296505937635860297558067210004906904792616371326956004354233385145805604163013218992337312675351984477392143485578626637366775343066809600203839467426538357667173552148127553312494473586785432393364132920485158422050665530327688395595989583327353831334085352594900937577584655498911884465421949984309593334930331532518202604255377026338058833377771560019188556279496328890855594406403647300759024491510459594533751706220736974211430458068069243598227840637008485025951188411019282518527950079109353441183881859065955872505015996791279699889062366012616606578597429587330341639527531140534907550164252789753310478629738608534364909302896950344862864122118965035833870196706748974676529053834949790338542098470856180424520859016807911080224376656254954786043752262105935073474531568168124136446056418048998321493735574035755297879004109004285962840924528788471886264198470194809878900449511205096713597852241506599871059483970908417118475279673247703775752268300945553745326342803507779160940496992416807978579171861616566115124751257000596059437232624341424046262338576628849598494362582320307889678452932723406989406260865204443221307788591965640123916941778979541444255097872823958771036871250093474950405016495256419294879065071761636966538542995095798960686013279513045306127608988500772412242555526859177845653389555986159113091695224297630388130513052154998837042892746997136658629965322623228838016260996178090767501476847908611813883721749465982273870940032178016826563665744285703221802377446394672612931330977872918564615940838428695117924974035037958012561779004307208922302985445891827245999093669167833663997266064687035502218111770460582415557840627825861656025880833927055796444061455598052436765749845182907597612010276884504752096635016793125974631702316155447421724670298575794711484648102014836865937276222115641607134191892302431735978642776533863419840808722301439440119894373515252663326996719454461657523846629682336290720175773369992152618235545958284122739055974943222782496790543335084850558026298098540744755792576837213112637090836311725837666093406006710257276973507587767746242332613715535462155890766053126926515712892555855826947331893352467925405118151580841687725913820728780648156825898467115847494871709804290875880623482984045572512096432189103516813217462051277478900107676046887522123494669445236967306769138165753278308245598018662392111996742438891823662124611196440784870667818938677336473339263460227663806960435942989530251287398634421054927416138216395760117440577465423207471578960958219167865323915763226765150669433794510119794734203906159254557255918879434782120180459723318094628705526609997769828456142159904755201118368450578002894998288766890742609054456548200457155423329124109476625792709414562169503640342566911936802681508480569568930444711984989574222112270304043193425179160985942232573021860263719119292730402041774108269850018851156996998564125148359692271667696074976324076402523555430894496370993728105937265963388513795697473461580583723505224491022778298071634132005188451165682498935809803784772899294838252076529570986475024243108522936619877159968905342208099687952722950319607573789510493069182866114477363343750226939166211764017055002280283868602257329594427169404503033618626439533420241013445221738863839015853475541730947138676051565414078256233292136036462613988825599852059932176026208301617067027029543167142266227925559210721864716147838966885465575620067503288956455540975020134861076549193159079264165841786735601599705816829465505290004113694837240151207246866476561007404224469776250680742140826519388756436237150254096205072763066139309776859991650895648808323617500865509964335824029475251558087176418094870329915450094664268324807549086655523447796963846095923312535084386513508294293491957350019158989567551271256505842562701783464370366731724504743958574509118555541175093489582990166462725088895942787574218716400968910638061741500067238454088583646296973878371014888213726419966623382523278733092701255350904016612605974819403409512863216017783949216825083003365249664858308099337542670757693254143058471478460959275856523004519601678067778966908922555699557098593036294242846169256971487526020852612052022392427453992013577802417414079814445567688123188363090386344022086244198043679221218238005554073404089130124849235138440798006106003938322286116117813505248072039018279454823438363283555324196321523466526625130859078556479316754955388780166437613667667587770053312888486226558602818941238596662112188654737312238332920909357627161209979755406402815017977440718719752286536632504350810720405247358327445112688356122002723280938559013908266706013146658197273448749597451934813482394887142600405911968378155456170433871392904071106761043812255876757987732150320791042945331002086802276532502091426453565379796306379541790064523696033326519770566342067480117774360277145075456655917966381877145549981691861912990476785062632632264241620947166102611387767698184418237007846127456264559228538593612232111705515290516271057021373459975930994463700921450500835419030119217215970074776036206441655593109458329095365086048456565571914385410859273795714514723004670594290324386665900546925695835109599265012640899290058266045424365943026656934700433064131531124068647104012485929194674019750267687304240013512115625119996768451507185499792518295171446664623031029770824989500767660023557548520072678648130613888203829656577042506214492915085574556103366691554477744602132581215063190712069108660790543120532001851533716333822675051078539439970349157088304570206459704241070386880163610723540403491180866845388502548726021400137614093110416481091905121406846515867651801305406148664928493548499955647029992394595581938419245801607387063671442680046431407484909134937131421161103370024903166085399917520444468926901596181258500415139986399414148433105154478556457806590776262670878323799294856744467675266502119288432614506366881123412043914959688819184446854471520017134341113587550826033319544972616341597976823622589308989848792756857499002202222345256515716008656372429679206197005938079529336636849901031277135024309194855062423906659926003005390541012604742695988238743781292606226308694086435055115001034136469918588983891297632911777436017237448890705215611279377812847112276436374800803896530821798001069625785368549153143052307114164578413568457210061851330322341218215512298007706901338577459062893203169095743003643251100007650166546242664405978494640396967904897955044558198254022088733021458163929396307062790250717213472677400047389110733916938332717535400723668111366808306695537433059818875603398671661964937343584234172640901078532963845350492672212112045374910796710413702998652112933760176337397116445738133510600637321453879617421074896527107306387393345572457887090866439856910467093421844433620264491463348254745945046401608607527223320083866468421211439922843862033802112581978081430580493384561601403824310183130069407391206659813638390675816172694400535981347789967646912928900195185754694156253123800427993702655163471008848833420858784881598377344689775954707501323659515535916480626132327115450149122815566892667998391814320648027852933935620228109463629156392276711785297710791852260457990406195668096355347452152537000967764951691549114676569255162977490889129004629177573470561209378518706547986989574508947466195337092640135081099869157596331927961559048191214609967349582676555519175738555345967324709770540298429570370069575123296904034957216999497700947873780188742314735387781250230275848854967280776553727388218611728139754915420231726865753978168041989893996808110444993520391398441496231007092175866280439868829897537303618849364976668709608209263707503283833753036548114418529532228326396609945754836286477370606160815952459474551059773319926965250261366797719466105713739148138573274216141823456332662155764833351718646637317335749831379734639119568840000010196922959728333685065911639087013699685420181945100281026171838804866398859239211865964978333033183093773098153105763091597602245947229895283579051545341680068602622767363846875404488369083464742631143866076911478057821502520207889602995347653820375139314775559328130239633920628678349348751365282675571906599683526170244828976617972775643574474075657235254889496332932587717248318746700134223392999736994003950855519117008165305228009191773296281687897624900579737673668834647623733670061413689354694626131943109135496503604939877655877871474450700920309446654045179299307111733235056534058268795257525030328779554578053075249928557233053120706931024123939063010709723446652590509723645314901613067970499307930409574997398403723746946916223502854931121281872533690643278519142046752053829157507788807193232877362925051139417953062745522003085257304735092681745189326760630769427969130227709484943363800293296861569906450019223857991985013536454320167197306679941349855145185371353142949877125649753051760314025453666320950781114817236876138253406751433890000160789026258097109825976425420147790423700845090185416323119395276407479958644924625563260167668103090223774160972227380502378006063126825542350781810583073168291938136138237514055965098734577199041314087801752033562474281105989159005751259059539028974130845773990869188341637694695178871215825194174919585528407511245168960722291659857584550691068158445040740845604512650937881328612378935245654167334442002867743501199822279176314577764131062259452857695227721732051459120557177319459589587004089227850135964840563319404280699065346072569412010797371261320197438156729758043813405275899747722262013882585717245770860591896680653817109903211717580566010029041550589490185652447420899991502389106308063782382064098787662172790314079163747429269258025154285947959559160941740052416337438079319961925707978202401884681039299405666802008716894812755172832594427932842889427037521979938488764319221263989774799002106198220548954791508934938485018700412453664127265638132992150162845295709888549154166676215648324236565348643569599724982669815619174863530528450994923401292261251398296045661174090986485155059221707701086953013600070996303506090701162415803419067227832272332560537216141153285480041678916532085666671925877789665142187892622453357598719127737747856624667422250655693187161387713880213798650265938687497969917488234004072274019546782564351194516543030207678523304456511738182127722232483347530611904155597331846686072207279868645493926523823925929913772372455500383142644109272917079872154573377006649509251358147744193605668730000930368866840749279740270148638922544336476129892969122606244817845945099525145951987764426030731364851477750508495559536652182495674817199746103193399487328340910622411437216069394720421213238819909470913591593290873753467369738641760286755447562150378292210600310701535084359888588332076301204937247182936416623398037354210688679383517831755519396658800245418863699240506725457237607220609718473447240347464445083007625128760959382487372053663663630434258468978161236641969167060441820063829320098605561626250896577150626716129250940769971658979698139903447471661006177652667761321073748214653164242557762838184089490836742782893897323465897518719983831220036452871538930336842837304765527017956551604059005508907916626108234764588109636654321251551020338019340859276750940695404511357993836642163111436051625462162047741707445491949814470265431563571227866616787112077350121166758956532856380048265953449536063317048322794599312671128059215963951863347909763787013801147454588670810583616698554745026671535866861046823331538379176565608590148772589642452733314704677274878469145186420301668478597000449167421210490041520228613615321478731223641808936369296465491887711666136150739310389554923406082024436767575552133917631752616019168106320752343465592687807878690846815099402611741298965893166422524996037234078307144258778203319417818505460465218707619191630490017011765733547810395257624777633171378819429739017043497189188242474157205717503107152916108948731938018900623851502783336733015256626716444016305528582099021365282104313670255048149173449452739891382018974212343247085656572625485080335586546827223360561344082187206817507928509324108194087305511433167068935171283068365117893986029559669264385371736427669325093307725621333282622199062425669665773714101097960909946658004152657409583185737421104449162729686688898099072932439114423491039599847494965259512473191710243105017165231755897727452657031583117238611893099935204650923637806080443704971879891871845558976586281085943319785667532861970179693225132742362469272836728961955088635845839511505317519738504542890279197482542552011767351530628218938645636774010984202785440609492449910838706711635088179744422681369503783187143643125323651177802469089555795648399093815487896408828611838605967784475787572441236746659650947386865310089507412683992534243594577908928443656872817592170665728866333863272870196242984670473279364912332633646681323775740935427387777995903125447331571850700910448406978232649709045955489083252389710821203342036488453888176431290404904637959721548721329155120345071211074453071281918363238540843119277262222865328810434268478487248464105776005102720682644689448814882946075752092757634470081431434395273701331975378783131623401455053030862670424389092275297132305322603131425272809350086879425766437359083581810790812390448763403460175138277164187728462219956016923316787617065808353131967562198009580480850910555721012886180983645414546172758502456975870553286557659875741514737074974831549934197076409419436492966207582239406358454571314985927286196504702536424702830618183168057138398989308813204796412293030564338041100109711393096150906122008471671950743893458016253165815918901566659649885143113990169183081969095432734390639922210148931947240746041665862804327124555298464173104342662771785081569815988115324753987504991022697770533997040844629430246376627951929567375234212415019786648335397108995479074007408029551631323450989058595234201862888181646061762852769339674252434840353222249032273118047425954942701263676935356691912258224268488902113876124156472961396634926462647850118498910900334428036193617022012098648760187737322499215227701732751861495231975271792511790456838816579269209660922388129632345859055195178364507709586343495895647595591960632581207985721771671065937040104615397904170942952352192533920680210545063531004795471887620070084917959209830667109189963850961428079868647407720313245600629632569732334367689635658064165834593801378884610586062675795452390331629621856062245923440483957822100166281970084714078987852180489627459388306492335300821632151891587480406495552218472243053862344196707640798046673578268078753438650505413826702565469995921468872394495577349175818358178772820072642437300558185954966708684297938192563859390369097052998377066216047871584048946765661580036503722910169804814942081110524480614801396457097297489822037415629525864724595394242598616815134296525900908656847247839701502925488375634890226721814661309196104645490212589021574388656490149875539022948821643462722768926152332877769428416606355794920213772108667368755727869658625264550726661034312328651027896942064650865691438771983289573561817677775433609180277343044060051008695868208759382393593057240563267042355509791500784861799882656965889642430409438470207495699662468553519480648286896838844830536745427718917064747297301834689175987268497945797263086509451713248654290023719855202156272424777002605280806731192473179859193842023198040487989452173005442982552394094497343875688606888350713175471611315642259019005381328030638863398730931914661234658745139677736713401241475431280386721963834994859614347833321582263568161521509358116456501919901792669983435604960110153506596133460947518154836119979246772124131614527751972266340764961729742907187653073538110659033383873597066307517154183420919824966319096609279850026513424973486377855974865389116097240399018978162770197305995217208750922526788675373111412053281768565567608403811873277253793164470166888650918639990039368685387535382364266524812495301749343091013708615726886008249072618879983174073696440792169308880868951051340896443474176452676117648381602344709745860735944870434121641472790869209867769373594007442723551095549411968614857752102996262954239494356056262716641731217563252314184585065533516690256891242896978923262484258898851446734214544731704515529233452244768039976989336832550459094335727682974426626567055853027916572711760586532660217634792403458527648506655454745271947615437568279692823588820951458881750367888522513485452935434550166417860249259531821333521965580237497233979678247473727885364984853200884171411643806508119979496099614764034059668865816785169714308143154765839577746903116107186102551772119401419811866630572680768122244045976291776460320205949102670908438438428779663886701393054889000053473795087812493268860467544661728279409188916367081838816202404658387149691711794118802223918208557221384671903201394055416430874614734047011016303285030753971557295684343193483480348636959765706225165789624660177948369474496960715133647630805457749070008219535086786942022706695434309305607688846019147557910240658482214267487280589744956674368707029964364529680078080032077407837792819790879833593618001081992154859065290086313530310381246262079404263103315527702067020667644429357540042032345594298045781604302387217788654501754535825372290066415023329417586630165645090197186316718343589298743662765079992823878935009501033350936243792948600795040830368027671586017281036832895336600549650734654263213644324890616665682836101005716069396190943846268106635289936995785975301257161769755304157351283554177040358091385815094268985409383509285590946500822973326564248541335144761294498611925860088975059750432580216660219443204800653870998635659856404104363236573582183536423163954128538316036939936027728828729803984463730865261834540220008709040236199973760483060184101605419017273176685708330343105862056067503305202899695802267621882549884427626283341800730527343408434212718033927001791531510506045272676193413613570046203089185099021776456347123754785345246932504887792086319177674255706609877031142481275896857000791434049579045679222651769028412973171013550120344869766075855235549108273683787656690276252345121095456094995092233342515668291932251079725672916504283503560640638400173858512219643868031626859589739575521307896453415264990944150219469517581314701752757715644464267972937732081514357360348447219695766013146710297487881289914503669783863180764136772908340544095096203108055638128072351269840657686456723056159331317431205782877572585500647950118863687670476901337487495510223770185877003986552260174762162840273476270697610513493894174852813175749704605456270219008979452249834783146649913231988444904005614425809258859342255410301946663805798307146940330960232010336251860159897965265478302706368997573491643171990349437034731085177021640521596864386800134064606442317744690546155786060817961381720863170836860918768265886322571069073554141670767444091798878506960274874111586000242793372099071046600781406586044060834642329216959645206641753120778283822703840143957743304959095443683925377147841703810636343007059189928801459993184300775789942950056068852218139426798874655765306348719434675677737874838734579824645614141283530875926525842272262934413391116233667885905462198100566584709289861823005431927983659000385355168053246269511486020905078914449604995398825206616749159770299552905182386546475541908427565059897154913134403272988570320578901526304922483317338956410987158204757844059445833148554075230847754953075298685048036640680245020384950311655457224677254610674018416542002673613970612899555808210984948522523870011857045455450694040278728221657315996918337712705423864351178573937873490104776757523204576634444360735851879971551963979297775749631875486613330426136038420799478658751302666568926824067192737099392599143269003870686907111843743122615781424329907246351483967033277776942732858254022076884908708483478118033875252165387005360241565154166659806325678617994511038469676301585857134856411000368339335657909062184839108362120127406408891911726635328445888277275867089541773498418029017068372218519671887246486996259105904727259652084177662733757989030661026842672036589702544683035353726747018395233425904724098105248811705558181827330064366409132573684203065010030007005854480939474689441106500562243913914293283329964598948079556715887148285076223058341443777694870827717826120216503417182524803727147866936887533487627378338953257530109819300616663458786926736281223994103771350208656887711213786023264925273933346038962114644407462523851975269303970387976357885092411275428475933124772855888938821633351429708856432600546350130282251174040366247541957733185245200111007506056252494049937551071024488988093384938319877353385750788749929651001132452157478166634435714916293969505545539508366819391410343953756351155583444872849207347047296753046610393120323335362305949306322799546797396437845882619141922344980405356269144719080987828248832089118931178783900686353062490326385510897757251840121233390689885872398001729320006495010096693411543216562648275181043453834297179311449580414612418379286408115615397871845510819261303824873264036017199356598276881312052496456591522134048592742446845874606180214595744900261713333508149523441138306265955567130019991697281683735694085076731734319538034751361075047763288286553793480512878577946508354454744621528298952642244256847227559350408357403039155805230039018871417166796177519543061657638886648817311483148286450890156317172047254364771991805216337854507091549541749232103252923135441247455869833244979355785081383766663376237918769531316251283565766878408787017877411667503302919883063931480099516410299418804670856912444464915802830900442861662290992888112699851705208396816617128070267291677327070553226350097942589529469411809551113940397678495618884138859041474562223665549626490186571400255120170630130016048347992934808280311104842591167936772544869932414690778422393819454777992071487020995759244020576867467511773811521790459823350580497021962962151155364353231208348419006032347102351576078567697979859759901431251669055745427048632975563157104774955604528433414476682864562497980278716346774338391727636963417992472987362741055873799410141633418347363637184708970087744657353920479750601579583628745999322406582806317276657462591657488880208006414608263668563370696920418878431384183712439644783468339040104730961988724131317097324296985957965163715688357209576287847966022935750420494064801658229981028895154535574464893541440601977602623116958667670703805313131050701994754497651381270226914947715831960698728323372569988350074343616429383908419108866688631700953672427122813910332716705191938800991282866626040933965172052291987136683715323770614285974996423655322646239897494721524425309439922328948660593876891211568742584659603323250126035064513037582036444252415871899142183010957283555797994617846100714930231832563784519101041325135772356703332438333908429060070918111447522847817878908470543868421154441472183320007344214409473776511697674150032077078120040057686317621066154998359995980271758921242337009101558890529170433092647713804888541628080422604852059740192011031510715346787638635468320718056642360755498777280093302512971576464315155960323107706721282586764894017857521182336069996195298911972709710084569611245537716932661049655597226561248648539297907782911937108008048614992633363016641354178196553012946901376161239233878013206919578981516973853013874022742119048814983472539593201976953620960390721294116969274579153162325265702696887913275042454445666143296583938348005031320281078634523401211104948105922716877798865394087178640289404412170671870864618232238411356448637384813061315911142308799822354638005424259586915815394384103350256859905164426493649009747968080352513709110581940881349048480726841958829158832120305654800051813696757488408280255892237259974785968370354293276198138227497070027264697835768546585155395533168929525271631306381061394213693853894729554352957956281992639595727377435308215532642521723900123615445579675727439918121632244282702268924318572225694746238945092597249744724721992020754753333690966786924795746788269181902164115986140885932442746786297232545661054147593258138010325198598926000117948645436030570830599244709642701357190122106295911285668663601931894213464508324588112847607376417252561249628363072600508152023515353211538593898827889499092229646383089883609541425481535460593079176461985953469141845057548409655346472752577281594358716490358099687679736793559638628981493806488826361888695136326718869332189138517848043206876114633660749529987564087406571832608109219886967724087767306843697338557436923214257733999698703437489805266708898100304638253267102158004305693956069775010551988053139094532288652182200162647873355639508602441655165380352641122309825186814873309463117513017186230108194416949331539967503205060757053759329620946586980991392617637548360954191410884662335722581847262789647653743441206066310812201941288278957524214770759123362465312489138930059393792182861255638426512428100640816932541074632800520978237528659113744458617075195475787945837203272397849765843587135966017386639150932685332186157590830016258391982450813430915318961367120821295622984118924832891380678810098092321338729403792489062692661159162701531584867102389953756437340938075907705313787371132713203376105636849462974341988496068007510569881581041149299751261508245445873873858648106388005773742928291977773966404156434418311567365212347166930354348342262581568583827154330471403328423520597253823522370929080695595389962293640558673486768999459227833296604660668269888807444334367688825718817201962786903277240695330706152794947183314288958202346166106197594465563864118749110879669494381299677652146945763764195069594106853515839941503031720442917732610220416683020794730717336205820293977219302524461890137873233614029507363160134577162984758520638608010485426629058114319205377767320862268449990076705170101954970294269627576927470134526552479071393683370181047877104754604455072053752976041680946033458789459554565292399390025284870367528486626416309027769230255202932530291013452826160059402896908269900697569450533058369246599497400973733935476332934435704957211825878758232226265692657120582275433457844914261358641998187711780778891661282650228496119492690573818665906545180517317649145612687627154899700346715151811219645344305893454903591131579837174081938522436037107856098112041698468012703398868242167925090965090325688576577658349518540649113804898596284122436975364459196106405428103841681498300801834280788078253693991012619813347518713992140296882040452750055348333123466908537834344041154326599797505935784005333518192172468988488823400065751845878551746843263573469969489904796654305391996300220608234194632686121698917136175993594766691836815512193541368847962103516588200104555901643161477938033527257371045301839988030667403182378704769452476602880347448164981798411474851466712337496057905356935185105208034219812939669777517086281581243609746492854427545798445169888889848865278949532491525947584063396979148245175831612473464604118131457272127740575112819755068270978725999520514349783281057631147144709062751747951135723640275153165733239203335762311635331165465809412410470863605438612921956148888503917868427080779414892473670561088854556823831523249593353406476666890245206153705836762450533641859094759125792669257296863098152649148877021269724961661275542807762005907003185807571941973241154996098265548121435411720555075408303602330635939321349583053169706061053625898624910612811558027216228314478167580624363377773591806251553620790519702736775380361387421409178229576387202610991711411802953773868080107679342883155191652516369572431348717634054289199515116884031884140214415551944340199124804009683888487423840652123427238652663482792606788530761671916651225126786159014798712351594211508583921810901156869115373862861596033497271524946985110058980840189130770412530936711865740635363043936295201783091053045991018401866536380837623144587274114752413660266521274186175984666023655089250948490445906730709991551466596663989225969272997066343405509948566899400065246528894797668759780465910093493174690743466308791059682001695547684893794463726151803984541113957805369108966700645173919353731294290249050167509353605816609087863383404390931378540479384157513450814274386985704990493485470203980404003149923766000053764220733510900237314119550032148531073801579752045070297742726736990563005396068125378538240254763591304832403412709288836502816027897242056590224371684441522964712645374080400826718613170713783917670734090889983775663714730333715285991188132182741964332514517740982284289550291585944194213623049822777771668764500351550973021404887420417526461809453022775344568435203491505227092025610488401346847085588585158170522466866342327549374625435309296979931305855121955781089313079012946439593999665680536669556805637648247108173619866285743285919246816662737513705321992587540633793485701834672473156843498519459039277490900862954131241273080760599014407218306263009706066669456165077033924006442862515277033517648324555140796014097134122543906490775998546832934897408551153602267121828268471506578607738153686900040555468761574531937949863418380837165849623866005052195322018595520794241210078740056448535786284932159198342890159151196045919236041798814751041561917600506337543430454546085672171262259493229605142144763009247978481495347934872063181586830119778010094809461168496220681532944625124755491028083998407584687892876160163063971059927019929147352821204518832772831665796650013665106814549880526175908784612383271472590914278361942207568217712435280061610654316223834724551681032043682543344316537136168218074430179335541188846044099278198873532302714962164807619293736096814689842890867121679237423687744965202624371107448941748576654264468422436551166219126940394052013951928125439907068533948366879636513114428859457442625394795673977281314334663648328579605167544017158099789047558367389017991442053597209997110388250405121921017755949639837290641551335938990814269586159144954538838313219202566364524556002459435358095812775435600553781462215976689748111546459138785434482131345125380937663577762194202784155568668763673743391103506679105584138938796985302739308017249710960521075425008873181635732046840406240517418670953244473417588963515976368325840446672136158281139343318360015015666340100130693188844370740568130287811815070133851744409042578811402934153207053210917347574298445850870035908901573676678294053262653327532110939825608138838612925785388581056388558640027107432048106903043536292500851781570330372830040398253733234251589632861804250083475625987692943263105867028154761509630394715242305021936643741153205509454557538265319882517164930606721056637312199878676742020098084781123024114337606295730542293067895139860876819673190184145843824357105046820007474062953259279893192669682539170051288437274205318908687583158174633136372305449744779140669943743446973206879038524747695748695889734580691662054361742482604895614913577926861280384989826677015536989861615246060290600064476477551376273501139824587722777241968333554284998191774030473132093732553631881908933340147309649546310842759667578821807341468764589672889834409129413691091861198085643893103854607735412906657131708475764540592197232811627797086716611332179277312929606946607935677162491338553187847599108261994824272458100702332057076857405831080889456639320067135320785106063264245880946612378269528064500005970065386937195964708254466505512297155866815844660223725993820707575462623016748307101087399144934203748907655381830473896759864256867699249809708572530796551994170304591288693868175156936593515956431900471825416125019548098001666889120493983027079934866698787437442987594865708174257122332120446627698773573365085328625848062302559113219893791086388117462174864887997386329910355448046665249169273672529118832803398920334517170492955100667954476756549970802732480049371644508477367907990675096648271282622328048884012616136196098083262143603081378435668897288201181540024486854117794208621052249057924649376837221262312329064065761977177980082391012891596287580555175953494267458283527817643916422065599948803205307193503960819944692746424278155382092122808189980455882329025172395817624927099744357595180624923888865403567590675411964943896262587154325399146268777664971598525756647220004604897215954930876919605898005788533428399018610012543228278089566398930183696763292144278108023050627870414509579053333104457391496744610882255092651111965542380371031987730817410421913920353642528787705639298103140987836437132656366890274693298333681053588162452490382459903343912082264267554869251883070806981734164844119869018640413969641198059811483334538012833334424198186616560104389175131830053379852684161047170876384145166447247581825523221298514066347570230650992914051689490212732913508037112548483050234898689459008654417488419163575906931124415730131955912010968720336333841349203089717905942832005570577669605191914269005300510604835518181302203055217502100433164019503487599611293117335571106494562205535761312571103492980438177821595424505781589867428818639453261765768781761563066842960836001766590095945200895712080750322359090836423387519460354508156692063309181926717664715438453878522324107513146125111309206579044732561130069822174926771924630963285551138642193385103945985567830756076739318984773475340784764457854151070120225355190555477006184169853169681656779835897209307177000346347898276599518287178106243332919480084561828193928867828250091427056279321520795742149377297660619309565113657191411143153204033158593187975783402062616052944320662434961567917240674114599795468968277381620495307765887335924874510915252603326306363798900297947681222850649641520923167212486245500428401657396023579321509998543110317665859947654826482089493194322617058732392031826283451593388729913134220322032605240768288924492321820884801376510141443805704310971250320671785722908375826595909634130142204466369205493271694150281487645623194297637430198203658838527297267757353983310236762588522107007916452814392235881853500091872483691692458679136909459052176955889836185368937651748141791850575309968323426964795429185343046491543727061117685690495441452623386083879350402036400246597131538982311266196729513391438486440264206869605969292860305923525914040498414750389092739282911275821667117233888841720055397237883376421492851190541250067384411313700708598847869634027266828740457256484826855249859149934817204455114057597285822111533956065965585781989373154225883810734129217757174538625842110709751104323306632135654802395208090552432652729564791665793750735007309735596305452722422821563024348236503163875891153261028432594049956832878568800533702380772076241218029274150277253857935270380920697485713615789059257077554017822693845321073680029626428400964570956364551810987137682707061825084530437819556861530255910901720778072456110147718003003528367677511627357814197204338380498635422080437243914219082459191399426409092031021423268424127197394933683508787117273329657639285459546201169270456719892110765657487809761938807303690441582370645689944902504232026157641967901011900127168392911753118507912908456370839545404395704961358377976991815990436378155497606352485779107294136446445281709223241594502247975327442496417079232700680530412579625792450471506694197023569131185501326802263493728497314027557614836321678787497972463641388485515201995597517188429118891298412823618290624247804152344505906667818768183465611142041925379261752141172019284774435413902668345733224914287465664072319980663431571197853152052560555613494192914760958612462494074702768782057007133553383659041764683242379430622399121347384818378760951904310010456379563916892177881056686246237412126410910243517799843749117932933772943165088977921706564516700186802622180933993368044715799448098233834717870046993747426862660106341059993252425806495417128838251406490090705433993485159367434858741949295052773052113333433755687479945904704630172568924111829797531654452011858574345084678463585293509695522398972662662847827230758373533692292877102667888265752753117741672613564780695456400216913706896163772189327486089781386648124902628070295551591356956345003109651621763989731709624482876465003051681990392778287397592496677090723590632034683645764782745185814800379850140429868988370464230571656803020923849202757461269375580507419724297627799944125003982065174707374903744821287410374532554697283955487642986744747100081198467498854684275837896193745742963393289066003629748968260543603104987015506510688404349784201192292782153462904540777041362152435470827009132468051528733758913487596324702350344185587793724131402284988330910557736584725988691832165622869728170497783501458689132463694090281074032274450992723314084322822510554277712923120342776549842664832108440103129578976662540906265463378040951445846650888559628474341719337741007878033072425847196049809730638894515525783669323735697052482177335418951121951202457826520759136916252674422011842080720462131359602760892082528361287958297397025994838742811999471252489815008676595043144361377951414192328221668557497554060651190095142618489873921119754762542725554459976249078043780001135025198678954454407691306680954018267137347812914240694758659687529170667319236726656003279038376518603789851324184916731709239210012738875635214000356383126525762608997788692596352778544731332621377724882132018927684065535615048749479768747265281935943395333217348396160741542899256170910145295391473258935450683112462994511798528528802350540454379475448674106033119189037613488113534327081334873153599436104074509254946579384827436851426095156547287631983248205150134336353883810068314029581677255034209274638682456426534199372144615859415590381241233330997787604383634125939065775191128886685533811996273836691665465258462403175067241921371873205142008636343062465988086270878818489797362265926440372715612610814842218490542754783470002533423110958470397873227581057466780352078446069039674030482141014013877275357619307481092797508973970474777924220373194216178752936385110026529074435605085294165140037473344038119141587158634490830630126620296671254129066504710686993983279484883372228730321158453505269187772606999701010024277005474757831005143176664340995505631404309460753102624534299028213486577663955335429658323230906767792770018509242747042170772047158675724261532374475918679971982491816967097486111924523306885579858405849648060006278262215115944706821316097100062028708705790083966227835416345844742499498573625345919197929437783294953785222765783175433810214325123547434477808981888720406989110597448212877089397376816436070069698082891702751933802829587865389304542992354949901755451196930807568244127199517518747700083746628540336831288030057172766083005319578128094714194851795457724018972662820254663134472807691993349714619518370323371480002805073990763337038540648535988739851007486278273526754128651571405077928852662997067811732941620182836016320116699094084999901889902285767338067265313824005948112989833709411131652731759959487678268913434640714266627252468699649455063505567821321226972822423833766508456228913338551478078705914924479908474508722395209352668311077504526822717074005361715028067199799649004977678705483258882137925837725262756010962858571010851797766673142701836272910068819138176944353089521425835255555107502324339027223760878103287826226657190912834745031638837945572821227107632507420878871862053115403095935392094568827732510932030435701370302006936725863594313875535850537499917634745492256801254681058615489196245322440601077148544922191498332774358659523172666092568967409247543672922167430810120819457816784380657442676865322782028481885931309712554544941941521767357859345154874257284625476408622105866655597252789125014528469357541029880357825365285254996522172382026253352043725706667042472249896969906815857524977591661178096110082253331622251933074205092081478254581899368077622985537088052596994264631025952640976280937954382773140514843291136565567457821895806808009443445608143246276352064219228516586414019415037326155356803119944428740766386007391246116940808402998954199942428155402058829993996125537818006554544941898928933191682817220917241802385003125636529690065054544391732421552803979764344155446878469920202067462102266312778103581427369883757257089632267646223913765509481981288770481202845968732209780952863840138472413826621218265898897230486687947498127656036959736034862463687303696071435015529945690470834244704567989654597055744714398841206275876038137819599715975697358889916218232805505763987678220032010057530826050318381573973876690812006586743786246455160479125660121770911552287414019847857401163190175565064107488340051071450973333341443357556076967358603975504276060094283976643034269446325264830488314992463459694428259020294297576190352326499360673181114761373852180453720105780682568206076791567485932368280105004319755369221333503232803781575993149524435431149117796206580626305896204204337657622411244484890212571821171676075082470970971608689890875985727042029358759938184335771397812729339871819061602761784100493951390065749716241701986486291817935102587203813085194837886640215242042134344526433771819517477890258546507088469354343933222731106604512016873866032811895367434929681237252294943781810939704697628898210264973353570533963975824010800092123181968350423756503503235391436313743702472734445227980142319752045446963207286710978714527865143898311023915383127091384124590424548626268350088332764685640160614345714407002885063908536978196644521124671726631158819732301813929138442827666675413771022207967413779401403251091470866632313329732587924555616995787633969209470912356524746792018633361799322765804165282675375551050912331485413584486825740191552425208766289663619230075447717147574454853482317587526196959516168215915845598828553812744455293299823172933501061479742208480206215056118623936640147269605577753097045033842587102828041442476675948628932290191343937570328478779268211984122303878369925220541858698420040333384814075906679844981236830820321434011502600174559951746477337902336014661569903344815835366749143923758469817297197738549397699491114332732773243409350826483618985433776143719470512713643171751980736934309867188899077381192369217205743692555871934873406095795308000458502937775163977664802607064577148198723938966212138129074949887431202992670396368063716609965650735569756677438895257056942300326692198478966244846131575239228914648831958797899723241987588187920128835750806583810492133925532233278393638873217644981910342554549650657258779018433850294937580829671671618772466777499216352781368269012953751366845919148963903918517764697880729222711320219141928132285820987784838804163195045669376797062069191812706276905449748976826710268327433360885054103297182983734553718624582051531638135075124415245234112124375429870759210581370357153994542176222034349876911690496874470024706520836723412681561630455592963853914584858595200569906202122693326702423459251055888294430390034831787937007843509666752715509982009120412978305871829123038433500581548723309822139564641448943403058547086999403067619390478020298305897129882136891013386600177901905859138415054258203053254442646115482571122456268394690733953718350706333240518579601017020903537230949577222992059701206457362159213562024696961610909144982902443186306438527418731021663613164333250114652168232696870680952789043610533433007263691050353776556430034557392410742258662741853173010891036523386602923891961327018434169991448020606528399568845103651590818092039726989741403515368681587789049200441815752028743673551741840814441455425976624156997764361450268782149634917065767311910801624312806462352450701862447050064872088591769880353685847578398236873098571449667892491874606517017114039365125599812607206079800734912587493531911634756878770460718122054497975204649665674476889508029867734123983322058973320081346264273924574544475889983868027299940909931157399314208397432914941259138753160814787922067735845187022636422000196061463025468602722263615528146677026827292760659785163002351006063236196233680576295193015965215622960884927231932264565328837612260378496117692752746090894497596267017580149256969386672741990076092595152059827614318205480825507080770262636523485462456664057722272502373388051588909118413263996354443542178157942031953131977628504514250207259834243484124092541330124927223006624500083977761292018714408629563127400410071567800072810006416249039551686641472575601585551841372643529846009538207729842573748547407124968528688418332898914814621879656039177698432214767430210016745690312699108115737435986759131939647864804308817640227831265761612718984561102075032426996969833836218190968067972682281783851866968186989714287080405084677915426247329037961425375676437796135911791777034772145416858429612220550134110170174566271746228529461617389188211156738904322412549080924736699328910486282965436809544603855741063268640497917317515489873509508115857912623131425591744664536014473768647831657265805627098608304304719757104556848150416643717615177874951397868098833010297274077531641311702502139398622464867565634508145863996222878678377468244366723875346184601110742757759234319546230107093349353939130576306656969154932041456627293034197462857227756107360702550645433975866734148344233508673880156785394045785425539567060030461363445753975602607831319891772384167732309965493178842313032673396401188809038127770228171742403758257516947773447082066783761946571586669410028853527798309906320575745078482616809268607983016648081615657629634545440394887024629137107238521416034530228373799705549437302011678075074494634602744187913968178918394330869561259342113802944287380693025046258611546777107660633351672274176725364789145878453344270873914524572796884750583299554192874075095184764090557887602956308638435727583081846520452299057682956712128699469732383019610702254262262582234471398886104124062429815626125073103880564487556196937822512826290006391857072021856952272895217188584045601181105874993737217215358332416308746967766608533939681069635613008608073199672302799128034244966511927049937302080069203559126172527241212739403011974581451591086293891102272155137905239145791028200304520159108538345589156754325996925709152975567677272764920606745614495928103838346015499487023690370320940188717440945377078516802482571871861457662985792048634183321571279927977895591077236344970364046052026008254562427790154936355538455927415802134682987195311334714005276276293672066776875716523678612925509277648621196783758448138648687583630639287249774474217483914607294414090528958805984180656586098732372092044872901789553868101728068112142919753883041497091626783980985241660124821909782890590302017538479234447794699667277197737325821184832756140733584335137003058051142210696447393702460879304615308508694137480881781363613233567044336775715627764957941517261808227610730625237244883919175117450212839829838035879313707542009137062911139593802059113171797159159733528030631352035174655905636854242327839312952660571821709467481881598446223074101119709341491009007537807674181102662940985112370655214396903229135769005441420513561542551868942607060672900908229741529927074618059779992583365128944945822087166282221247144511056914076179511093260584204745314571109710604183879813669182189196454537933389525150220653987586494162556442802133181354741097267573149335420657623023952306002843358000550819766289105220978958421035665996634632511672528499697179710515134491847908649593184946161289764477162229420256343561838421750901023329265580692665095556627191479209124593980678680680118612336727376115377137505749366731621587746954002222218068900257006220836906000611351764525004390355693952787053501580598309935719006340938304185494251617679803692537722646502191160784945580841897306580657864376400674568350057263745391473509221946881530655896770530543980472725762713776891516918339855576396882548318525234621888797953895645304807730986859556549699979100595414805611822929625920986604003406992589710503496049336286104148738890924562122359041649931787822826240008850687305034679791512839564449410307940236512518536877581677971296594171372419743384437533084601944788197459422119975373728785201748457903990368752792284378997470414486480217207451883316429506971618891176318227948972128825914826591237362591306172954096987581759233367138663789836600512958884559789864285021154039022432460711015496096620908249890199821227696389048637976919328144271662474246229874121059789746096755446047578624268561862827793479078674827768996553415821704961332001461129143274594242940597102243100236466291878733295072103610087817215984137425237660598841443985910963659946833171684642299780219640647736582596176052528733649032386893365200251689397148224787203523022756339385115801358413567758132102573024624511767812385841577563827580135340861429436544794448822437598389672486662050572951019889096995616024259045167179480615914688877881182343638880703093993046720417590375578487257421120461612284409113451797471189591657676424120539885160991116090471015131352062712090093816483613810723408761819316187052215159010504922752759100478934269696693570697636184590300650126381499379972481921735871954833915513959478737699957188775426673617934265061366119914122463503365961013204928104800606550657254166194218181261032096910305357511206302519258292016929338852607922565019078530803580072170238695432225375697621108133944419990503070297663405599632457275426554790757383314767908175553442363455910197157776120149696719718979926621672215129078689637062535216648329647961799435884378625073410739219641017642151341337862473532977521115142558989256218363192671808212308414337418335547171426916760441884208240972508701999916678757267452809605572748977117856026939075139056673830173298739469780290964950244951886438965483494856120786656211655139359780471696994966814869366311486719854811519536136438309251658404226102399122995691513639626500852592997138189677564075073256114612235427643791040296800263803042683224342690023763731936012283957921035509889757740743812917619404173063583693538674141703173120718134782097633077943667509373069002330541011082258646878904726378040540624443697706339132218818691434267869994712111889491905543873271716771816613637924161752911196666286880755600824426854542252834557549665364724142432266338330447890811433738860807662491620555218454527788137954346869573766125730924083401261007056799140319802424572299416688441969895968083448693051115740812512829823171292643129617234366780756479087730610399016055608859589391190428260518555402853735026273478599939748778370604386596008034649237117952083471896720391530568124135419721093344349341755671598308669941427065615785830327058540193407315500849735366917500087678222809995474490392892765032173175143631000173158941787687208150389741699348066024613712646690046149125024123400139980490065806916983221027909733678279875483256258126018938052238820812398463520501770161313626508047216349923694358193394869032840872398031928920089669268311358882373710355002815158111903936363644718616226587851705024275329599626529991977097534699941445288502949755249269101912100562992751120004111450781335903907375397856854787226757293844218063094285610138638277300403731882677958138015114499981131742924292171149429257771785339841490294582552390658136530240065975145834821683720412169828466019171840981286167246099685988036286516451269867527345261832594715796246777149774871735818633458089670251763659216983452982387109136888393858876134433897312457121818255377176196757856959456729610286235153446713794154867219372278931160883794317567853112993192312836189591647107570478823240875230747120704980722166231847269946033675687533437242947190824051686666679749415872019092920032729206563890333956785165543741022713092628173314646781862381615407946124162169792414410925242262567002714356023128132106804280110381626164531307578311143644564142119831436853767905712660190707120484824360626651312863764813453061208217762925659908623645929911256001979544486001591919589477440960111263087960088609422207871934809431735760539519589047065243204164701638786225533560774966803072162534175286890319010509744031231189638563048104167659222431306284644269983690281227931299879019643018000421080998164304601674871248012822574980343554485287297780356277231988863232216621449887851514378202777817050157174488296536782839137152220103646735138648494364198758206761918581887722462457936633804462811536243406474084898951502946170260171733329383299289164785110006586441227232319092101347687315084886955432398000809490009609741192491381600419159872730737458739566410511068972327748725015464131094057353974202247276328901699782360927780036142076748092466904387555593477730463291976634169327166933289725588634008775487756422181718073807499817268177033556523656011741305135903992976008613455744626575577258089004978093636658118644560870723656698808977105956832651384816778120616244962562204859598751039703952881697292374683759728656870371928880855366366391416223895043617302713307335222321148281238635947572074605239122733505236596033437715733454097135894436514634771543896629884810531491388150152918313966002642819845813495103838593054571096279315981507092683200044651580745900111673055588406935112080911718074888495378531488115554565305334201808871875752769927529701080338145762545361769014353409080743504049898512135755320687895668527151886944086976456110865711068325204563420292421006153585791524126911794494683827230011152007626699795056318813362948789283674126693706832664876400872978605082013367047340466768519447721438567516628100798092256973231954273754168433063847112973535608229013456668905646072457846279382500056147219129383143995585972713539460679759348372411171929266660118306848365981593709604828034141834380986280573662189293556621512221322248991202894912850870057667321979180736780374703915225073256123719912930907234770020486398762337044010339382443675472343327191108642741385124621105295708401365061996013247868077042092810098785527292671303930592236400096680980866234415151952715052294103580294483300875755189527921725171704117675429983296587860003570266270396319739088702833101174850988574259899562718389867337358314129920431167639355018362508538944702698741398732122840397907272602283687995839618151730657709670511181161506869624245645759266169537334637172176646031587046585263587961018847969528198076371063649422671213262901079848827844652829031426093327086821554017574875022186573786107126334086105058727800880179394813219481606639516963087677182965475223476940365211448265952928522398665373225562575563507312131745522377462820598345047998336215876166564225120764248650448746117727533841922498556512032465685115993983217729018770426932383832695762992059819023480084281912400266605166272416930296157027166643911968563373408612472423460485308262834835074768433537740336874162364664103906486242249948715442338473388816105930328228620746208006579065087124561357030715505352118382256328309154753508873364565128346778230621408787578691774602518314135952610741806394664190893156758296486826566604716790501407894705493903651284198311090713193474883592205220493650124502623705533879652170562138850315170126013552967931218011373607618957054938939126067706819051479381084618942717289467226535043823544266044496099289952072844579632551916759579369546974584425266132478738377018705709726069148312916712663716095258290424145145774550783831597040311429064628699832610820181157373529369598246487719056430843911029813760553181605869612078665697253980055642210825607378922610687881585760096297157597570502167421749098629177020763472612645327941910264437947446753725732878177071676059753244253400311741914886660075019370614878544613375428824244939394158265301993753387183914044836527170454676799847462956908933478438672380586819960539233718784599834671257559036288565197864641822118340720866767202109734912118616305146381666710776503062059783756596315440549915318970013280140279536648045878841134113601324076766374819212903062728767095951078954273431964920825524866669292795048235031232630655578586929491379214557562942801441943325619771668437377379039687512098791577481749726026718602428257387224727914729548939403156218328636359395576934538006614072194246619769391596387275537583580105846599816726082537853261837694578523834590510136260273584796403895329115941847426911530881499321454591146284799071197261387890572241164310745447683256115256593976406229508524140606115637831243515189934892231259165407454857868956223601790875983764487722529603659733865161799839741903444435161144346788225397092513932540771231387014618022517487784855271241685901980709054762411516252827905154088845440610665225985712798189983472613146230275337148774123609908491123473446974383473231041608433028734293018763851631540828126324215332981460784167810719678669072628400004530374384676895379643991533684988432953426014046488829006739129387959206817325519011359459994875630078056218825420958449225831712028157188759988998120696525402808902153881189730221339263346945400812473366995972637792693905469266060009007884327787018064100678917591437483208778485514038816484401619873955011985442190095626955619427496752858871134026148808985190441963627018843383170001438343128626781026529301113772636366563721326091345519041553460142985242751394046247058840184658524710130812013723893591807737236872616498698894941063460987517332578687830236515521489087726682754315951704974340555167316895115713911306432827714363429472068939610444459374063392634866532015274796502389702619043723866384995914078606697232760726757627686586534376219117368448610107965873077596765823601706112892054022236488287110202233408184148999508918949217975450654910620857529518286563728755874350531279717728582197236315603047485681088756704570035511463740583485680357622869441177058059512169078118908087915177602009714016315220940421610437966615789581481406214313511859660573036884788113987744532950444259671106083426876597386074476912917942931265615795238489231295496318897864412488667952319518438551659259757604247634119015396518311864731697957782689628070962768200311609022534539707790994490524285898462582951156063219071312216295912250496446970594177608634197277791858810339918045410835612485621065283098909352978228977264828250818797166886803691079535924339362696950237851346985900599219041002951975874664738118611346352408660580836120347467440240007213568468206980533566167872922432131406083207858139300974124523272038257323274722246014950477408361036350587735984531903490966928890004798374957712666779943798510269383001451744433481182405808217401961733096232435623180952237184971222937464845925913048555298704379708862987252339569657892010970315307906119781227700168975104701372687293143810462893490745074306420432083829859782768461695885495008352066767887605834190361650336416611282633040994161709944405991822722780120823135783378355981970566700359984801712158543424402843032443775950129937413117391378175098224685419943450996196169741391516704669911201927256859641873861331311865718998866709696385838654441535140905953222242482653569919780482979311480378556287987728912568056252035948595446753417358354511023796296379225128106187056162712826437083391124571970677155896504926909806149732914505652784793115860455117994674044298354680525414204591717668735659821968957005098047956652465673891360881830612804038720945454415739725309632074607248029964818736873863306171066441837250833873196630774296974470434713446286841287351970122683777777533766909906358065602039009559411232578258107241046735163567580858208008412544090471103696526690168492576280473831855395256795100641854402687673733812711597813006196825146450404789515307669066598420885042537974815761933552947869128048977312729994415076493661057755577083253537377207074028898911529539984360980961496737257226964156824641990389177496538358700808701939586927309297979513615595356418979762689174586905441427569229665376667257826549810848504984031354152949680976857430641906657245441890814639983987374048145271290596619856315726028178156994162077221049101809438517471960045948179705760813369850616072713902309607713814256833323384103041669530149634207972612594531397966171637888991175984449430818002135609703603275871752091342196746212747391307725313631593575872242325083236661252685690596846575517957886610703726404748523663055978843055969125331099325176175279863952596182528554915652720396028667871632650892354051764330671569869764656924224037975307904685721107140257340369193948947045009278662853842234713109381590207567052189539154032148363186153579313635466242158296692838993454273192123041170529288633043282713871846682693454265184626021850853469569711277716242731333065602157870371179942424024818468019530259031238437792450651879725743296388470843051160308796562274427770699916184713005451121484539149692542226047033984654479167485637814795499443186886983908328471787242679863567488456552769597466592339419357395994774191612906686772309377702886203448293021164821770212570089401396372994896856281173042209354415630194968859799845921093998989833804537865436568000296950488592181976044213241615082511132262242251408476261376992553404349638672631266648039651039580074316349654219772606381458052443812081421300326556490077676246196665748682516652381597747939051107469072463002316546193317048614319884328387917491689892015307563318170001349502329766209756857795303286716985861228448890233701592291503451210757681152371508804492800871279425761955801087197165748439452299705040447902898396908870528410600034420169130239983012042104435246308490543801157297454511703059273718652124333740965756408447114916925991765114488231184966196406190713607866316873721772384800855845803299940410783965630695502207405764083115079985239977081595908909217844410118955045564710564122537585635075077836812904739028254433050057535352339567439899618006924290053715675495517550085974479957489043799011564833035691360790455357282566346051547069192862612798274656321594756983476680371900013836742928524327865835138908916926556917731285760164499410044759877561756306723431492899726106495263315659263850722136671880823189483491776512662985032850892724515351773768696832188077448927411242575934347505123144880389718861891220310545312574117403921475558915041528174658647453986031608152540104382282813356566326535091759899796936077262805802931877823406303877016072245121556244648760802923166577929317417978190348712911854544480098256944536112995920231550383264773679543066309925279925212857213805330709157563834493864431896104840011503914570582963042860642393511786484612973580301691858147783115732394713889851517277384903745335490985244652430659981719766237551920793473278899182706180616221397186000176934051457672902332855374467312050242533390852861703094520445598279064095707526757390505720004640018935278679845439828990624761660652200504315612662425571137698104556098283571382921558881966023976134356541249797077290478909922985201575890057074331428432299805447684691113373194413040170507264020492027124468694867051530555039117706649468487407263608742881982924959818901120539957875032592895457287889967027455474269006157200994040719305149852323165111715717997602892917108188634904865794562089437694879352657669247633849611402112448350228987462058671050658865713872512159188890663293107308384894426547962025769876018747837123218346427721798424117901055208583149251994810070413536534680601284613415449419360009925443659823499129637413291829144261766825630679062895724248926349082798092282590279409084457228667407369942561878573849760910491233164333650178216122404340498895599138231862210731970876226061313145802803863021779011035524560105559138144412497829898952961692534035371912631944701760772730346143526617807754095012194991470211077713660787045077371623370532832245824559077384068779736694004170309074037364973596941345394141828629308264481686035148092185594770789836139260494951368243991789356626809430335884163202930122261342866981332073605774094610119664873170838532800941038277446859620796451312756899919650075268919690192808746152779076894514286457976449342976618152131814695715376979662993910023459679765948568411974492237315278558883481069941192794530542862869006550933949917378565926139103318613997865829442224220847414651564334528215284733058673300971136393949919879444014865239745343347386299346598840699962861616793928844360410572995740971620657610788178717168731026364391627492807898065189595785111516231540891638752180374799145133737125911534998106765304465382931380044711600688027258085544010800578595995326726121906023533892916801198870051263567180934812593234211719109393474119107323187762499309033699943824563063320784770137866688971859553116453393298408649307344674276026972783327037193757116703927004903130669231739881547544289334908401141854523866299070854398345128608170234378126025554264378290758192451868003002767859460550827404932900447693399279431732302378285327114358496060585956779793724540657535356416461672248809906425959330935898515047913492347605998929471536738306221920955090299686973108758465870243232131668469399845606290902597008075029275756731753782161534456421097307130178896770109434575853341549539962346989673425253119768565943340272646047366427439132417730360921940767651121722527856533080547476648228352791196133098531428326607193954681254782898049925553928691962483729780980680971776054865290305368141994825566185816306752555269954252227920851141189377265172415940426981804985522777270208644532244705837667683816641529726528854573918185502216758131751335271687513322016020335386218857431183421058929183073956475523237174686869666030484139643233260778510595508706642482327300400675009695869506290049093033415001006183464563187810036086439480847513101117506211328517337512475208260765602319877565737482159265870554418317419744753273657202128271396867746876587376193466538441212584117652282655491380973540255918905168837626113600375256099865638844905520116887557829987134896999456540980631718794671373930963894794914045468383802030421710755190897155433785649155896374935058295374572331690344511303815321768357475456608759594466586995729423183760334262473781745990932185775149866821515583700067829046841341053775387971633907983014047269781624384254994004782665195165920564793616480871954882389934924895129086719957603176828736015372968509666515251156070806803406197933329898128199440967597277021133351488341030322379797549839039279717150472703271071647708310989317903396327211007915484131214366577531595002977506631096174496066477980259047197095791904593222126468608300330810533978209820270585860518951463295369545697353657783498529007193368114616800851958187244136882622974767137774726767702005985637959591356348795475407279778604278499367729647378464718930845138533639170623982464434664338155561255532156456319516345056775554038453126524677327486226230196491190893163082418361408050633796238981625635750049787043327474959480101756839613448801941636832423773320826205327611499626125396257543962138700898135498907370605568190486253761529412136363669332406320843514890861500109932143221161204681440861736376792795595638069812495896180078174470061530545752607314367285496248792367485575358304204961667490143816306691660153121046769156703024985312277043960663141586480326083004385856397097903308150563689966803564972395621487035569921470892515094175549179318510540507433829702068131693681051485576402693866666897078692721214633456170667332989962672246205927817077842392702460132788190957195106205343754153122925247045418323023642360502732494031148500918564662305840963081366958630188586099699264590253183626745039729264072516377685287002973205363432943770723323038262709607014666176349396983936658522224665042255762161454901308109295241444968335883515203872887966426675507232764109014605012661072050985233199108964850558758902379647606620031021848522670149433311130158210641604638884181790004041083284959298206748066260786604198165001794175709604219853492489181073379487105764941601829130601314099831567383537514290124949045455203058257493360665075964267453154410350399330698282318273898739411231112008034168554617549285232551431240506654930963960426079479912718927956245720341710239594945313366905402198455352160504778624995607032097870406998976440332429117729992537725137664507892374956938796889900139561794755857462026371852919752439909760393524525356898975686068412590032554344420407177841592396577237015326411369805127261737464211448884627077116898942834872954348885309510402742891274220782926174941443900669870741891256457202233349642396384305089644551619607532741377495585887964463015849865879001779814314861796789771044961357423678761620615173795550895394916594692281485143706501063499722147896193890198198591763793840968230615955423570780702885123718106587692716467153804783958276832047987269276611785629362957534331261305556731230961335847607116151030742260937681664411232171793545285487494518203008244988011009090548503569271191384245470702300617829356923482632045811221730517440191964500135722553799625044724394934007244459008361235298173763008906109561278167572083894080660311836116509980070012521350237614585250295443182874732656746872963414949870705041282251580176388011302627663119085681968045852725512347020060978453460802846724237984666901227615127947264566624744409476762248126296768740593666552596055264727471425966810426575542825033458302012343975706518947222760214198580955809123248069321493900495861936835401006860224429968612368750846133958849794859077123736735120994124826790968619681396652869129772524427240023822112211379033604356740105906767565929651002492207917875221927371525827436142999938128253943596437979057203256593562504018812913933596355329541623471148438143735268520408560172756473091397333674685546296918730657067512722463006738173952553623666536332412002098489770905801494298342738704025836813052914331283617212658124166790142039699290177479417625355821570531882930515759180672458309958235205164903503243827105933438228007908274953833110486418058252617568405214887286685727990600438827812277224407442127416726634040750667038834051649288313332076501679804583481492485065628274931322492463788627210893755395979832625868924057772966671407051599397655339322571652292809926554011813259016309133532740534112290448378844646793892644500281190149183190807960591603658981870958382782183908478966055344864895433252606771268213892012321155000960315547985144426270101963402191740299284402988315962421295160800762323107999225065556697970127594413000756673959265818705465992312087751938270093085798879224763338268733356484264799607833746841523029408980027308649369821505262178778731358415942068155713111055123886466297184631624238687159813618209921892492566176125819109570963190418253813263014416810452589141605289537383047049834620801759391853180982018238669473386213974512108668866984282577656214451799904167658074740800553463574439837970879700219379162495930716698837421750400155987318180341714961148785547965530967169946882956332720528800423419818722540106494974577237252468708591402840135429033948920350623111872216754484573388328194582507078943026531132003057801508132844831090787731291746540891319474168868765642100488564473738230432365941552082675641542184118945553640790596374826439200795415523922055992192188248742811676825365399443047076471717260465789267199359554094271667667955804640534533236140923548173669316076789144360592471062501358006408337326796399820911451321891069258310453126393197988510348156197625927831164306265987821613511631656830313074478892785535150103079766530443449293711828739378904954041145052959917818114782878325816759861906525509016864786288305505405281489522012210001205320742028618490739513289674605629526167464205563015462213530851114431819339415196804511784684527976726756356126305826092064531832797622592685680218742922981451738728900895599735261283908725922241923224804051470305317470624825305907884181868778401389135311596548289791316264328648144923960228499688755790372216516862137591071421833454883127286738973328641815139931327663993245641576988813947349178490069383776973287670782428940430801167116929873373884743102202275974840614780963935053386362518454044625025892341672992015055034121565362757573568193443303726517522668616660865019997396149742240239960923425402540099748787249501446285136896796549012753168312149367988873962018680932415325518568143761921658871177169258150004477272470495180854065900133311299546977845845896446352345437101548495504901829315708333985106505030430901450387001660369438861070444871533961406804149248809428235420985766773745138464895007363683479058786104746846215391679663061078376792507516197104119322915976156312792008095284793912758475311547352877790822245911506550646452965588563146739760274381928972710270647265811230362640748550390865588538204024868297972368280782585832046586070304517689727526999115394160223281368158715463583610503276608687042844209323733089842703245300180642943086931080631939798692258082812491234733789309426495594399754201195887941105604859004647127154473661301410437467105142304261154126092404062479815079965390227698821162734134002277692923255634598823172815510970899792636204599571513816231885079811213957939796350865611189893354818144090585519827880622794361688434581249235197845306202838006180521719224470028686592687933594138801163095058716851033610808611971874737042709522542995955771233686602578304580884339448027380215855415436747707052529823611459056843277578406160942678909491548303149974239916560826835302837386076915249061627355538070572143415339639596559352698864700359348975365483084166098723974326380667727279987875877414377836948569994203780150014586504784460110703451066482421546815726504064162847615483440669208915873756248295510761092546854015798379138128473869210206346369453949219611631867163570147714845982745798397624172449982352542601524276359897981032174692972084337971532123986057813184602492155399329064391307570157135282147150643027334284699010191407524651611002688643369732382305543311095535794494176990427221025559374999159709824469902534776955109177183898529894875711803631000913556880989038040726867740678313384245760801413428172484683145558548110538711108173193417643277679621965139319398833002286707882758409337889969719282120892520120469236499140546007214554839643818025052020156447672326699724218467616816332445145070863499554756728611027716688652824417892471430296582267594454908809999478275693801856162015556370213585656023982128444983229297479516774121749467993823322197911957946282583663132997895086685818516004738209868931648575676082505888422581760659171880701799396868117504477334373667323808025488004443176980050864932047755846927689575291957291037067197382792733815011312255192790702564504541698810927108730135210464847030979661741997060877701132368703282157388043024918887089910507003844494637440630738829418890476149352116946265765322001557792126477172516326093034075860478914357118723395505813261421373905056208221708342716237885512789077677667985732476861163472633223747596573199283288233540183439334151085460148023479270140350210073344639609549840955293578211299057429646698061878349036994196508795035708282900081065903779861161371099980398232273511919860495258482387954820841300480879546052751022604258809131425629577159027393660357191756423635552094677941931032250167496733518022183170899759063720135441795534883235954354152236507431658078423881266950521499763156602431499740842437408732951025681040998291853915234972127486981805810833342210302178598930616988370397250682589444958263557200925233793133420947253637189485936499645613376939840715892032569015167306887686224118062981567540607938124349338504272108525454820912613220135694849037665655859528560268501338674118153086461223528335322464978941702867947185391793887874132665323454754929987710734778207490875434204701879021582607736138905663628041555434780054614277520610400227182143069966003501940223849931107254985491526774223053725792829512926675139529178572054729196000707779222263790759174893461004968293443415151625770888033568990803230717901744238843789504928719280259389538052685506420745336192047426450419297987233654263210028573890508736905157884076235996589823331198779964724320192066924728084386484496244072466341693404575533252925510458527012310895541366195074814241561703765146423561378130541117540625448006005099810932002402248235356940941622980243895376274856895855723191205957659102390805306822044804173777948117208148670099599525129939867172127382495380389903088584653715417257842970444835343298863260699362539353088971082523432599840940241432202419638082758652195278770975204646694643912486830504100457003756787617173745488580415473771111131435447978754934989274552691875006349888120091347771515081779665518884577981740185308080260630167390861931732215449856534295579344899984588354139480219140747865543441499209217064175489159300582803334159516915478369002832942866812719462692508686001763087474795048593994194024614599319955512643792299607205544850145685111244515452534472161256791712418329709696751190909406056420385597539738076479447773262212825917646663535788249325153692325226700735905477862714402597505513128205180289656622297529632409965906237856305080723704342261574312178563954068023439114399606484925662148061026947024849262801518580591916990496676813675448009428122293798069488680152528197661146110653829447820282731789844649133402103130881349207881860952615700506020875207622376318322676368748256408810143715795897342456460105429826946659861600372929341100284341514402802487803971719860631111235667707734579661733592989070499004810520701713919613016174013639797951284541250346923625403283708158887827481262317949237260455710029161640762151083553388971013538302423881149435550766132199659158594940346257078941203098012715724333067575591552374158464194366655166554812901047599229151224393025902629369387963727438644912110321186790177308473993135253742361878393200052676853786326837528024818116558923609771153154250994792320239976350098921378305855947467951091677189034726674348213189128887545416501703605239177237705664731718772521371428429323270971271790581235494379319590121958136937533249760768284880111590714801347743965672066846813125386055638244232745403383272305640161736675579480798443132717006905629449993753003439785390798192571937368897085159824602719724261287548152274542562468512731251278153842613267534016610450323901542480181787447911641872675274149478702010677288741566761542999818492952616657305128822034448784760402358155538930409124522852343193161228775561782102033404991971407013527763576307392058455242260063031132366561947494022789506880048754793310531565557440537729425440328657943778799951055955347530749747897637520089105192288072203876292930440369893870414270706932014069399305194569412208633390055011103196456906350948266072009271437707953390916079407050129846831732026565499365973006971684227270158692764612028058731625717476872223992426080622420358663439538744755986114456594996785900080885740912408219793203955744604139090198435266432901012923338662716388251910509462796728630740850474225716078205091339669045117883614438949997173492002539842627712845685536887446209059021512927881497326058440848674672202266046800214460461143383966335510995318045935285201522140441636479674976835018907172010050061015580067151336382365191876331557676888890743784026538906656573738683047001434812022349737252368140206920148128055468645872289944844281200725237429433292129989221716120728843958003920830492424833220699131404772300950774886364206364211841326810876208001117253877652940338088631663725200587340286919835517909370073239098602653437449008682492229195548567710221202486157502994929311219184837127693217565735126636046670385533861503641989791621683846443994809709355675226463690591728499858394653262363261683269918396217794609159954862340348989561589340239427734251810672615070872752357778748173073360443596628326925166095886717466703199460259878899944669627614241206213322233172590497144606035848345559809300949234953385311101053237989249323786843810505558603877506010433652405778544619550672941187231862336907327674840468905187375474678987942517819262385786185485069162054235685641896867022011710762133502898668136298487968129389390023865369953779112061496716086394934287650414135435289263606664286703060967316764154893196643616060097854321154010470760138612988655261270034568097585850574643529194145971414409863451461858900243472570573547958703402806402091030960812216367809730029066524355882328841587560298577472914690693778238653866808070219123714625805443917663231271106215779762063808494965937366876581566069350553812454721492090526660271538588962107515091528225631999231479958216755690767075356064661148996621143461845662838896199484625082000082831040837321952584605354822497250843603878573608863587408679392276758853605790179480761946657082678988694148643949334506556546936826894470758687510726439718355442161652254818223592080799611353561455822631099132679668414581143203235672340111893060712124919434816438027636938514179723891794431961742885966279085304225202475147963541406683754996840073423840090375102296182348225886617230533340590378835135669431430173108948506669148003740220378361396486033022764543304999690056005158525658279119008164564154660166427959349894444073462205505523618085969717247889415325570182561777653434732755766783740725179382496581984609051464032459773378444805400460172466516932887058502093599730000603851119105403049515616659554369694905671406628807438122437929420699525217769820029427635937156353418733125432637651199528111476780890942978328960311194046757143951604824883486274875752863452715536715155277765357298954539067310909589505916460061544260685949084340461773539550819295023694150622799209188302278795933864317493114379007278196607868447638063780425161983611107786929560458482980243406092848299813170593408879518492987097849048353206938478720369335342995575937059770392518958140141505493676228573168362284788190420686739433227671968957489681626263181883369698008842782305856426003141343544456251187567137042448213979753837236408185062756850173173498759681542886718644445795268718286283540169788586569225543125693895581345248918132380512941641206380543069899678929722198457408290634931993313995527724449593342393222611487617950595863225881024552952000111497874753161564968502081158818360958406240647634706931761858701613251143438040690930448004716305302846410054189036603485576397738538511789916782514106578487187654638822331778429079915342878795154304671679061469506320874356203851803512399407824554823725533844832912422303027125942674941677313842532739124217002310414031598781426858425553074081617472923503036306711653067102197650574705842835229345657351099761233395314991698182780974946416247957332610010372380349080960037078185287769719063069291934966218963235482338193016718978164207737179344971438702762713154018577333863326363006407141374195115222113825959948286392298454947375366238410613426363408814056893138264731328423403042275600652507035329518920213414274276419037880780697171269290869859959257901727994961077476637038255892357362920868807936323519279538614108198058073618810591631369361250936961693334855941345288928557386335041337951998655508158654363147038959784777409424294479800782206932244424344511659344113084181602324581045601328966601586308496314933678075721858468915780048848880935791615238649648205222200569695395114893712925784707713875244179994990206767075366806945754806857926417723713301524391308461833032172508470437777790843912026637809380366855275036515544121295371371267720487894815593549686207541444336278518134363403212973771324569193972618555017776406651896761444355300736589338084968286893611357439571392650681847077859578862601640717570778338321588929124566878788930737432601397213053075881035307624413765527844052536681407816285784286509702486187478572470493829209718861723655826813706147542718337415347295564156592292629247346090513194212165466464969735889333915595632643352775544097816796988513430683120596107147763413989292755458354322370886489605744127081312958816703070240885903169697721144580020512252522495229322589075967099597722419642301919100304473273793591459353760912608194629245708545579012484589206008812593345884592923502847790628182926244199414443134260754353692452442312904228341328730580363921750941164502092338633199633086415174258962817245173151359295454630487148726750789573274041896778417492759645011482838930870412424546495899846401491838564244164346473560070642893215597775780993335043560300802214825077133554100031068194130454572213175818733114602672424365536306200927375121543843671734038043782237585104053345142785717530121524791457317676391810311436360842793184908958810142394473881445120658390601545517181976637781720264218607575676879795606203113981711558898011085246924915731938265253303837801371862843898712559289983398763920267770354324787872939440661247100187667271885276888295885733118667263797906239030958545133016135880821097428718988192683382443043783183080862844232748987042705957195831331763547193126085367462489252837704982200412218099681425186822654916552621364277744944135778144701675358237830282105079093124117904138946343463959784592935956567794648102077693680750140057586103880819115531306264315391768826390736728310039143378709663916885233324748560860917994858956673963294135295154287974467346969479154075219293492597619901146316069903758786300847258090015881522615897980900490166042354848814560694461076502363510856933104696713563497805756285933191053695580902997539953313004934644394319519804341568029108601495718071489143292365650284783709177467712900215421609288748369180918216063810750720978783817004910756458565790700424417587695066766431154368522436838169560814463125386107156096344265293013041331707128079694084378842873050106205467567021512203842362030751965143583804583007015130160024469053009136776086820511820372008921549609083825202952547836606496049151451053129818943617069503805536723522698355809323423437011743959598430841387131329241817334094390952083902323036345799359806264801398364667161787056077938947460269807059019486117241863319861956629941614078079464172964391917606719435880276884010976293927261870953567313156459280082656849234062069606769552926441205939958105781312128283252433291511482016630333558272900498029029539443943822575989328099724777073943385359609060411937090357350514237225404957053802613293574465386110609318692911891619448412764148967041032672266556267568537994881998242964771284835185074045032495096193051340882871058736570839363292664591697070377301554160476688887623902994378901804085490719533837322533798749580914196906030323027231971176703235209678277320998682266984254958115837053880502626861676379637997786394160728201797051863767752197607429044926570488242889288888676488285327652071435187430053848207488515124709563146237263390854298181618264093856815159449092433328226744582530995477045509746021735597497702496935211876811981339090228719498251372447469692218383465384033825372851335879736678441380562840912354539362815642097471840847588143030404130623121346937165519596373297790688480607277409967467013611747221088288019919982278206672331259788845695308775754950072300488618648591937488849025310969577775186569239397676005944417788503738318829513337835571242862492144047872802529398049831723802362724942153374227185740391045626190279162976282400146307655946734510052715449126068751565385596055248235098341930630341931069509040568924812883437312239706647801025038469950550809793183318396658242055680331653208425179408494761986673925136334843237793044704168381581720509924001597975617961947886493009365562640334277456930132970391300443521872913905331742450718631015094189683775354232510596593951361695035149791863467228092696683507822915313895305603249549356881924212030249259488682587455743575106712367187368082131702198446704983221321750379110358497111070595307773727680387158300626984246905850935245575668309458012843135876665218538925880945696625759830897525230005063886503547317299015384226384044720052722090759249019684810155663544355960670955428733612017417120290793063757572075774319692982465058180078646604611701311374514733585407521488511433438976839081585163642038912094336075734656845538036087587431401819778522502701434196236820881139601844108324214964230172605128815422331728164442644851238499588167211848814342002763815949677198719375455476273227450793535117253669766121846663504981979021923106474402440702936681002922599193156780436612867241478755590321192120027737308338206710100805169203173723171320458111092941692555190135217267046351201654233866519872269637843962724704727993994873357840892692765948990575269240893974583896634357498724617049270144625986737649793428936211963322880383894676945341929472635065606026343535983715646397751991207850575856947877818305534305710924462632499034088560639800421388118283498109984608408863889641191739811885001724539387132244267979788148935433995925193004772494728820821078551297329571605732654678723040270785447486513146013551634957852648915201121835239503863430166231211600407732875533112396096161794096775462978695651824610689056049227608763538590340995157024474688623021006376643977262399106032150065162613079227713131099334922402933589162893588989860903570532915871039410477375756752488286645901747082012654648367384523268435961487244905272289837441736181268140702543117111433549068425037852399207547741666950299163604050838798471945480457090758881609038481689945062649727204303974311232532771690942092278209740259892535918190607668454579816123141820398663503169616736513048028789361373767030023234323676554391469266589453811823015501502070893049467530594838179975383249816369307782108672509644636558346976907773503387360610554805350725441721867968750191311960354516471068471199569691589523645845320992213635449515526237916333502169393363368339329043846499845176330143761965120698245978511362169974643984057950671783720491023663907964685120464146835864305284825624830637575412449592408770437280086060005302516344553007059651500771864278635048892394177343907063431485746359025730088190328872709642034678423901913638809284302394329047844771388191420090775132660949167488684197001661441981398640066992144805636834156745327679891608355744595995484445612741435006229645364877157380711471236690135392730012269034303112552831471984520999716869506219619159926959260537946842122010372624648829707383717553000644633484492360161008346764996757444220117730376665119158664473270924594364742958254847029737571851184948924110732518189509139007493512463020506654435803890239354726683331155946433226159660091133145373004774293207394868776910410426409637283515046523041376185387995154869517271455270219331465802041047738376456496774207596805466348316532568121985285074815076892653966480728220731980270672016595620872323603534451419752243255395882362124226853965457395629873317043847147730429623361517099327848864692368530459697733932634174454532732203500433368057465802427624962530605968063087343190944529469627803097201985596293743803498710222491268993253458625230886313716650761323559963111114249934273513698672376180317556491224501208671013109143356551572066403246903292116274475794976838993873315906389206824485960024338529923058688333777937218979602837036046488251370415761661126576608487856388800804099449297751453063170374790760577290798843301277311448618870214212831631008576303844102532431303545546324047727464531754068289193407134955435430459260709734058603971192093125443657702918898078591053918633420354337634185371056006025878684667967790310581086227746247802017070412531545711218171292844995546432051217191937084377776635138984369415316190802826841210311390824664043286971244256575314072521204742866561209725340599630213921689296602928521270839860709188620753438352872325114241168900111548950237178778044540930370649207436262343502402852132981872549215375378788353306376688159290802507069394252300324446072811890581197313249451405145051563484397735132827507632074032894982446285469567116070627292581964614515413203137329743319078272371833334148405838694606261673398913981245651504689768007605283310743629227492033133931779016429275283977034485874807937469877973546909891459978916037747106736067782713263629265416574639508552104289902481589195144910919572001844872030544417184437527037647096506801073900632251306052941476046037684294092154694789741228623294552026443703303384216026400583384056730773238548812035951876196924274456103760281609209019782087560439309047261263756510318782630413821759863774015617555173972539087434830694722831449299684798566046989553805252757704713532483796281516341659247954284447336770434254724959326111536853042219562368999896597394741721248788770019203576690214028830681206619510340985733166834309393428191277678064183468144679937519095779913929710689322390735905514426199117122761045583861226057619880382074891487349787416155919319256062394108889262202411901713005013883476674571838408400998953050969979751209405057027826127807983167333999754606910441865282750154955601185402087324222939161179441307897375237843617474123559875571322233704056172068185121879726798021038346328327237278541360099203301121232950339840184624397641564707986254336888122293982719619877117118539550481763952464997889243281542155387354958143554003257785486803949082706217026763195488420746097105104155522882528434163816930825515929962007874544802870508583541385729412954811210646973198299771078717889506446010689083865624844784721126721412912530211158904845065836352185749773466892231420969225387613771090422120679849966341488955447705501442720826376256084470982240261448582482744559223201065921327917750636267739143578601239564773164399160983705689908220735379250957990192525049412135872672883030426393906135187863237398095956925709818815108956645568451644948439875297353806841400376763648246168638743529902205128356561940590780730796130311503048050175644232821296251798795457857455161553558696922607883506924401016653546029871365740399445655538800837569156726856269207472900312363216036148380483441033778337892110137297105093928485414339241763550408612849297440531784991776168928968117617101969073515985856506084860264544359634077982496554266314570949065171314080835366759346675981003854361972862633789228684793872071055885627851584277010850036550235852124861563179561942459803998739009974395609687274774411849300651230128609363760756296287071301890714028462127636380356391052701285931527184929422711191259243412484296869737971409844970302670591546640286467241071381013652223901467159175839051092184395609997712987997349161461994119136840794827985791113135044177538986207529656812913634493227433746780659865853333299378677184359795982772193124749750033807294913554164401325924488787474324846881154748603503603186688279389302365467522937364154258727005750406863191367297519102345941058854680557751851758368415274700781597472171313629489142717693103293933120329233913234171427021162461123443119853844275692495360540695979854366470916582014514461589402161215943630887856832529980408351431073031171835128460694115515269901535564636606708829066087646521788753586034278498631024996252761782890206479345703784886461126444482375674509929723914609886808330999846708978472495261654542532329860013371792301190305230428057541515133132568475419921704824369826165535540783075873617390733724157169687439794345962233062357565699913751654453343954042701448133223264562883827324433384330632753780818509377803478580019344569206202363179264381371583415208031697133005358280322596668922832946194982950186593497088077151213361666738997335926066439714625388894057922230367270500203014362538689548912228728221711291196736080460656905287428164280778046037523926768512538718765603802274113660355528393350620245141380143964322474099329513320472878586370954415406340491774990769118036157038627094952981575791412155884602538488477295512751890856996308207726207836273087424112993636845181483356306947801761487652747929237281552932062616374018930416787377507333267280630057623616417087005037202324913131578029244119341527797967915629759633393584428753807315796403098415477540037994824293875560235417854988165744432335083068795517166732453464502246721683148574225770196045921193324840145785424202018561644593754015107586793882871229983047033293706692018584935952699750431372291368176758034660413602073471191563473283327431731266848715875993905921239041634836535075665242520205336287003920550317936531342236848284997450634928359380809472506958728930459814663757669501436301842744941323297786812218984974736548115515087841462110128149369757702093690252771016913437202262683366095948148272240684886228015645722678977937181876963605076007281376706931868872732774883058868067790641215876932475937859871643933013946890644974263616954297458114547263978494519574111200253397126897870911901785008992356343292862759004502810767740492650352371755677585483913575717140984919209012203087547403772325414224218972280480516044738988452480596654910817930356000455271818358212696279356046066556621378553644331546216961773768857409195451991871194656300586373544542825897083177294971675333884028458146223520947448805654168344835432467146490825575691013280069110412805411792084688991360419217695225683230522954275568074000008118531871734292130826317927879664077928681468175943250828582574816955278279971714599687136255905237308050023946510520084152571828824211672236282826882698587675035660235947309501418254646256341547898092183120120922475315519730828486157829239379101139886080538483766009909041575061361153371069573177187835475147627090740935130239634900699595435724373461393544684429240239209388511844243999750025579380752385913252070662340943276389021948882680352211706833815930847695830748218020544062042417268150278735571827362417904321273126084173623498614881946949347590105620892321257335330678051327835089843293032914438639165301475338087709727268825394609502625704757024143627732631592750046943698436400983660007403524202244964781657045121720897558393147443381837677990673948843119946655765614881924841865011806231614460070042378576256575715257808659285077316786141835069261393210382410623817174130962612721596365681543393287105601236179163051704527567519059915193910348223198971163585731916214194273588989039886847299719767686482920205494613499304312570525044643384184936052531062548419499587807544068424774067169937676630666292279426193063991417090178790905073318230820793120829185945148607616673551903846462244756828039829570362912120197449029099524122414554868957782876922898400632739252491425684018979471864617368257276541964504463764245528977905212291247175503614037316660237457377177372199359123164960659148448049505033113253795527826280277736486926262881144808698746743396781652114249444924580533821865724701595688958022879411159497694181211303716212230439607946520099713879016610308209134815860943842964165837181776937090128880745106582906551628472317721537654669329803517215494363247461862294763063065577185842778012803295691830755169216927989459068989049484220033070520818252412561816793692190218735209266387792946158468618023563515121753715911243601734797936054454287679594512568110086866388066491681111024396137919430667201605863806030226420057665202842758098205496745116081744490828386670920923331483695811571551897277731677276278715285863931488598982052950550588281269464676872089138311321302613239703109678154936451137913061138121208362937480293813571399965950406757943065478754705109639582904970758247474684756343118675538237359219900541733491857687702554770755166650003413293132582822884317283748449970076546143741030084981138758345090534072083001182066882085934296769492173538191433864153737321247542590356445589232318165151394099853273737573554411774085427187918723036235442328318907123097366862585082296176068567723945416771212485377612027635477615096601568233463459187336274778553314440544659937858605757301049477159667900972978080592828183435626527727496122450685888559149787713444829534238303884910727459215042638802206285549357545527742921957176753584292097089823119059827193680514599152267013092628001110038272639342683413658874994383041009231009845534929809854840379106157338942589532588279452297429919897809803652068453008186575480123819438221805887528774514286921083626684219282694358573780497569868949331834176648734449219407644927171468553469021363184567588506901248644824051362193551028601699039538686344719750352554079766512794900193904448824383906635941685417927862577849533936061593338445414426467361339590935731776153187166005324399508646745716253363942003520430105318011731402560312431787207404734432671062260005544252580777352921870436545791803011520209023376329870243915835357889677152056838447885733699168941981069191746484926026857822507971682240329813302116870468938845847702458649445164724686917758077905830884389327814205913198492631671064835227490383180770927031472079469298770715589124214994386956664387830596900646111451330648747685068163045527311909008595885850671904680149208960533360099532523306494719813983220916362294210608904443564482412937689625695644433247375067254696181322793738838069489387315371361527132868078273062438445164061119946709732848190789754017530549222521201616033160549854968690839461203456551639099749051841335827005511437086720574506066351206151682505800247583557495280631763247054408367394697458164436736977340172467310317429725576642238145044453727231850037949958401868241703622661522568288843496360586655572757872049782496312303657541274169412239548282318635442343289502641562621160631099874143692063222438345243304758730438682386186217867543323881134366924623895839886275364082444867850343569015426689957002074666945245551227038634260067687196321859872297218890989760748634755701880966728229862522861886706786070829062724798417713528784473726692030020663951320953505905600068148319819922732526777494062017581974719484950911695387425611044616854306876113440757813434127171058403217235366019361538148571758564525928869215777556300323416498351994906092273041526653953990781831054343886182561530059729027994690980606519878722470332549748440752685413496384368230210998958871525060123365331594115134943777593663409804232715746129586766313563173245427124136380426377579348764735295363561912414944823494143847047544952058885299414775832497022137207738742225907601931840266385493342966535836228302429475854480092559882165871176281758659558849642466273426670147198705218348254285748817811596433785178369135325693126405123336617007491841751081711621782613550189169904803163620139942479420305530020097670907785904964421886818245562505391846868116039305988524343088841733686399711896433417287696863840575463355324333873255125949148279937194089475716476122460908655950218508624759313649473767575047270748360034456373840667120748595480152296552362440041871506540001720285495508555283191327898286787611412576301393135095095334500541432291821218157971068761718816583947495417799039038329414808889361540281355004391730706114334403684103580901536922741532135385609377742191422432193999754563487878307857866220392112885657355688072456887266135634084895963151892561979946211449181516181377473871822947554409307510053309419028693440182061335676304833402974720786875853923972557651638317586946689471553913146740620930043567260293694379476460847468449866606436936121526190446984972276665800395955617645228780935928033640912055265911380149349023710810501208796488139692826892116969621121336097306489422472200042638152626939795222113686399395504638901781578742715624011268835998058685434864089731479003333245425168996974812902089231321363522952583818103248771655887777875504898432963918619730589496539223531261492128698265783242115798078673977499281309300568224891928482839830817469707757788110015136375323370606735824503688834915323618598525577106621288331005349808814982233649046451805444240039820126076304665905588881628387400598613707275704420775148868402575409317734965119657488222174150979793920819881383587758576069679462863589391006553184742916327130350018147139999355520258612383526266373079242052845295773004401687731217200115160285778539863740527024536259303687263062653108181213809881090898014116522524860427312457051769882587690524997068465202682792156275626069512967268069090339575578722169793781887003298354478907764651143642535188301848247199326480928706542824684528087525976996829607933784473875596460746355469046198204485982607453205656677050874253859944981553981425024952422264005969591860280245607592653558401667528173494240204363078034975609757598538964857520043729333096003049680664648557774148845506757297819367534213080909435941462355771555553472959286178225229801696982067485888293435288329496697480849634152991968879948994607090673767535272152985332453228474163001946359907744775449157217905632002168564341882801349939536250628984330318855973939021338403057877781236792700660651832252149457530669256215216160626068775030103176837208819591051547577416987591699022273067582790023941014759539531971291185231924093686949201909255005053331841766249295017762718169890529707684618261733649133033634255367767779275860433082892954020479286764829580633862648118812802047091784535224265991534260457427019016926449338332961490202665972725904834499488799532625495084730820229148639787802032627102295618938893406591883067239956850078632693160160203729729185279280169768611637630374441259841441919554879940240432550762165386285713142863724034609935383149746626176864855336646422294695385170887206208483648884735462637641089102845361082687899855731453868491845319426198179476059558171738425654364022752686511583565818963880491318154740081891414011098913803469927272354331696889791068872855465274273004807054821924568052679890758447784078707920313295924889160660127051319175443125824216064643446593520297938931878316076006501688582773996456254994065433029344677330983290758691847549074747151010825888039457922010511269207653048774035995034179886563264287323416076172266090613507288766645451281392845771038281539650662150142231616468965014035109806269502933385331474351439313668197466640546200172304097695424820178658837655205691385842118199740144414358012273992984488329437108294355262815825642254975267541649491734545703204590221455262034037596693927532482196023345857090741279868240610614006621480222963714345479403888257219049066091574465096803114038002055857648092711426603039562275229360751245286607296208804318431712141672217014847794124585373731750990442256377002449257207450556666072274880813626616410719563122423413208351032582807617759731897702693870498205988163318088636999329422310433493411042705819704327280628715437327192452824055959306102945812755585293616642048639046019958185484898586942246619177721474687900965882012066283207785800895951171058397646232189124078483354465718246092731252488910007674226008982179166376041852705474371879024180302215209015245877631552658722876947975682175229840207251895511909143281366295509397669078836539752986762551653666827485855830577333108864529273320593496852863877166652647935793012791998055330528619307386240043497086919049582364518746425611359417237280452759300010778835733107430169222841917067175677782946780061484457191735237212787288919918998775731185264881905090222839984693922927129231438977734319776841970610781787330905461006485582276511656683408793456527257749433883867678773211892688094368923000686644709462370232494091359956398264438863961008072149922601789983526026985184600519989439859191604633755110976507476162948899582567336227142613540649988985101563836563296024322347937608449816058990513247272423789121932907579568215813119446547385849526648361895285152684832150288869300352081557628077503059439075413611686016359447418066599503363512477387541946747647803882157919077977887730570899468281936806347438263588991817652179149061122874355640844183675686043219048467833383252417835642758228176983058257361774616517319124908929683412829129873554070021026998123868816304966000377486079174088521314108752102062904502113389311755437116477711855133612700795009999242927840575393236878625969494321798654967223365753277547117263229976870556998120350778195221095412473450364378529940321933971911780704402550220970532621502377341429959752997790082355655819116127115021304054832732690711942604444635699644198107424038669276353479152133764271284236579479010645938890070185514056543106717959313366318670125676620198620678999479102169928142270335672502284285311246458762084675824045865986486085161575861335753061148528794493691850877343094714162126297944063345519287198284458533511421055963645318257329100828111877477087735375565131244430834773833501670949159862954839018346450100996585642207515260419546946329016026419748227918782498156388121569040554935793607147827967561972150590707743116520039859620064466619503747451582935635496573340365376805707396006725329411897041265498304164816693861248095194405362172202463656035091532601850578032488562319011225257818114183887539335099666067173417955270960049801511490885278245826330355728580311587756586735500219198807866114829579391352871992906063805701746042156202758030620225363519765985645721431760857513861162222247151340516099045521829433895833829613897408504015554943358132620866940146079651825987933012335946666318171730010491575460465304467721297306606624907848952213644902632991098880264208037804775012259997759583702024019177231965739336967528230971558081271700062803081189699204753020561806781793751079435593028896904771076224146134077450456996308407583159059278387361216566952250667707657222173463397692456848622684553046756717144805974653136438077771665101315538047938888161421808969147645416384714685716264837933418296449678033227560380625123209103615178415717823724943835174329089013022330719319546457049687474127494298388207247696276840431697893855346552371659413104881699116579307195074110030135592271685453709706028630114206656363818220114384567217996429807145472089049850052860698521044310094247013989107201377120804906188877774811731757262482169966225101693577698374715831593315690066780748207490847265156970512198947442447541099380737377615440878148263216687425788749297489836588814705568339366149907825420537334204079499538210740946045902495580421488369306447121349038495772844687494559121514135491138171259405146837665411784100206167146697642739560535741386621236979351571260473816672075443418103285758014687209678151728720067821694634818705366234690138928686088451693145075321407986807017896100406417135197828624832750179658241981831787559845496146246480162787935802836075852240934511673596226243465888227344253018320653912754606274408861512554425504058490470419878551943607322034531279812966421864039488624775690516609602463138307577812633378352933586139854049427427663796493325782810727205732494563324548069431083030993453765929489344626534229657653622128821366420284036592759822634331435546682673803548088969821420656019532848409793451187402216992691362033286642360130519472204775982692910423407651406042613078333175727408461559014487114533249679079560425137567874872600942067887201425397336043812323783120770065056403072973311732440324685651649859386656672321790563090036749342357398845357247365453864401568819438177579818932694121742914598874332206249099012892198661976486733669098324972740324213493614151051115810327987614660219217212367997364282670477055906399861644753976014657508814863921429595831081152527862314383473985334896532225317257706883364075766169200676951052678307546688737839735786587311833492250434946253512918215309997827844950310154032714568831299572743072663289731107637938061527773630265001970478717458271644117382850034737456852699367289406831247424791326961098571655676476358224482625570151882365481335877449724093114698120054792256976025018912146536287781008276261132517390521546474868294356950134442341873544361316131762814280613392331634414731543928174699215719024482529037993906725344906626483699629454666711591302026250357201916675764363440513435479343745989203226149431034157008341148685401368168907675402371755908041612662024511971843225338774033592432426948365931926199363662296800676643469352600881390356090211853826090575855733095145860921555876686892069277925340574053279130694760748800695331894005174887288702295615238621852514559257194743591161500510962889816371827025122096759839886967857332006125641767133815637292401952232117245556963391112169480644904737504251610376322553518835847227053537436356750574843365881891411896676851343362441916703818373772109914319664099806589254651385814751584175182601488842139284610448643941543429907201207066722331344449661902651282877455898627684761469149216567947318659297894774692614413295358013231352577576552632519099455954581630801231028475131109902078513625957623270855592699985872051042315985365601446716512688229040265065868971573538629772337800428707491350291977403492022547021877102041843802931055455296373374514494398754138173686847435528870395602540205175155337023533741621339284278766872076789328904917335790341153974877411278997275462416399726316568529856256554768628746882683916037984402837260111303759055599489945784352780786902932070590767741184782471344488232432725400028354290299162805368877702459041591195976348518840066136186894705522565444476197379731351185473388346383206951540830920993419470654308389710955346441825030717464532642450177149890124949389329614605666437574949758404170246756889167718481480731432357411229367288891222495723318504548538557445040108474274962756197090166405114470690962818791656268772400906118002716230585598332630470704346554855736300666030542844325601604467550539192590394971311920081657629005029636044819917993297098299734388855133436542741082413856819506787218713854558528186021885466594162986682461594195306276750993273810955849938775181833787942662904722920614819615697877034041293724724359317796157847642775660153068227971143850474587588875068420785744468763750833289960409760410551873902525304375231507418446534980113709935605034783998151988302839033371391138322028292368313701886777994574843017857902792681232801225627114581222014774597451023480690172401315451187468603359976479438553365154251162420253401925953589259808013976548421504678991730578995410117276510532489454930964118745792415418709563935886692780389740287993240586341815397445044090810693755191974561495722767149888892591273770179866131294652470378104252436800650204700171171568280505344826739001668735403739873786308080946144891766817448011543509840296644172407785503980269504057156586373568433240380226902323807916413221012060589940214543236478750756396451691687844790841798289125927233167040535115956658700651453360018297567557182341096839555790963846984660662335077628479608488084498537854501854868114187470129945626478810994860615757820271181506051970863121591947267001642741540655801184375492919479230159285955438032137991441897828316170119318371942321187976782652899237134825424521294301688936156868767231648682005095349111533681488333890764713343351925251547096114100678433021569586752499905294310447699337497845885427421818469774471417988947675477914459777812781812188963063650403742312422346219634550664743877718001856986520445128961773692040468840570984368637381338292440779139754833028347413552720555045888939694941428559510678171134519303266092114421939825110852478170961885540008091275507430457929607630577592282810795426966277216945236919237754183450210438064390560947658723555485875303074214783491897357923195262654192433093560168284178768206926078513780914624028611051757573816238765819235459074003149048386937523145069481001752881038192995804877700554909313744369835772237728197902126054408002262960377292843649003503079739212489834630712733230321458687136201991039855909416527507126542108968434360280373173312072167602083704077063860639516566603409860761605718843557244039447427202407162741759397618059061718300890350611456208522183360117743441592008494701922127272491959872930863309954723404759705003991659988685308778445083262265027210710247774790382444073452523085006346581510702084692075298214825242067524114895227265294562187438605667901490508353445483111941062439639744959593261810327606506158345799441561981177691452882459547447478533293822128471011272875502755923666273079724028592179828013501792591772776120475605337604271194500103779765927109757054792025762382957639233590189282734207738544677073952167758416232325393671286125415805331800449124300601954644136355267512712016427584609432194321216193653681890579139632123319806425785556192480991456099301799041478041495883734000153013719270991754056951639333684812438949099465963088218615906409995653590193676979947543080731285399932794853969699314879983188249776201711167020081489564132828126901575458356573396049807718823276220610329901594593242038666332565811637371536709622113397031675752817759048717552642789437177726185244882124089885652824488335405263647115051126890648580153689747183869803636827407538759212620543319410243711260168722107653078814561244253794249289000322250244470478927869072324349550542414249660246863022021464692018384127810419000013009915261257055488721081727666418802288430549799281837739465868465897385209781270236481935206175863396090761653635827076137713489572308908800401446132516719289214378168222975979893883002926955879259242688822379356203406159312292513072119363757940408583863013106854025735128063915848256691316569462185744005207222216456944912613000931705435359612130663184616995817411969123504136560921595977992997567620544312876534569666296497589079150737644077956578504576935651630670228379522223630501594475300821817733572260084983614818933138489093324240018520794415579895122758655720574997155279222889565857227710614231582469685831418038667580238303482067175861053119627311837920188301284413183872216535479258653040503331002299267174375833592262478723155916187642100412212973808355320763745174618593857303673183434673640692408362023191773749713443414182790848045999376313729305928962364365624446870017342380591952561945219678870748224137515277674216969344720090799616663130770084603738064263178099729998624763697184897526885462089517820921486628106333456675076464758113981144509863197092851015914140875662920703185865334094383124094073448966360868089115040354436576700123602561711140057129948149539386229177212199567582003920347654815642917620804641276593342330931620277954698282292775628120784134218200344189630902496294975660046058042574144284109405603971928999052621001104519189969141272725784285103297300484925413832517938440018410084484261402311684533673806585553302792004248476765464311175119511982225241025187960689798734161075360471362545426901212653879662216266570581289184536102646416766854474166620334238424376325041987711629023148778337337211667238448954851623329969920850286737292662176164873260979015211733517754610059255670814963398333505179632150021064292828166164068816867095878558560655444481357275388479720824281425171593079759990230264760985276458075848711849727267917002652716416613320422265258869789288672278156741663221841563460081356148117139091192635155778478255063392335019712087399102322873763555990183178718988108389183290247123166813071676212951973868860142166113287367328280878080887722151238897536375172077804003294244534478653624030152417054798872844141208018496449392523940143910221621450387760567670612143163302744818880651353305772602852692319785667993945080801770447114350089854998491258804629629251211270042770953753213972319865416647027175351272034416380188045240851271267545297499639245471579134793354280129991604614220962601838106670707308173219720585490834205707267549051112847798045649221347069076966722292649446151604953916036951282794006870160846280163988629238068651281539579025426946010344607898957075947309567793315640534299672289253117632186569951515926263625511433037802926594220211823395782477835990540310628560477737051609859435637310506891662498202578677348609622375066179080051420236946961917677207569256759171643984043930280699067881032933898666856357992922973809531165680363825264765979842029268074850057104824285628612136488665967561783041710300070073869241665771444017665200677079634677286199359758641175102028935617304386452612270662086391565637283329290177198037085365724485259059588209714709566222169416172399340056608551218888870710798368036192923657911675785216865100807537040210385920679526486311805388631048719316001608087566494500013094453997768575533260615283743871958759249078373121833767508273518535401637445819328985079702044169496915983433666218631449292992515506010079469718899219658877929714293544570021829778380201204843941642637314740360744672429107111838579768086784448682083301354495490185204253536355065336205378788296473392887048846915717500439879515542003883494215075084668772048057543666522387111658720158607275353343646733415643074392105290280332353774157541542972009636590004348734793884288368092869861148682479444715783367993655330951400513815806034445514900323179601743065299964250192892252492026138667705534653725847654318377772227598496991723834691283636171465166385175375953475677142934826696817173993242017705765141789694357140247736407478440623809204693812624578483682548720761025225704192465192114312331243297884752943776470933654694784608071596610857343830205413903900775985367983703125205913874446682550248431949605796911672326367837574262207500823070585129847134064617136245568649222941616545880860341632453124339751244549694725945696608000521536916408682016553508521899709633382932510849937071363739180892986824280607301846200453177111010900728169319368247002538092146650204956782049199558854991845221279819556124746152584265993766568836583393637346812050510873293671704138720112724615315481827652840299620168139442770378433797033318883693011370701136687015073352593191976677889107053529574757281604899192576781332719256391838437213379987039392510181177317671948954479149800282881527317222926264987189256936209842133940814855065610884707067608781885679645911955610572530731631696144141909711764082040972234338848246092943362664825120547685468001434447527449250404296045601308204989620393051575897644545496888012862130567997551048728282912719087420175326270372281172999286429634264684977295371201928832066676857791265935039942841717752457648031220793075170341353937380525990297923233739181519200031968692425845520924654408234728830267844239489922983298405905448040668372160660144335349037125102064488116287258346571309189745577485217722869379859059140219827330807833793335105168681710357917725852397575027538935125299983793130221876750512512227426876881131831281250159920694799665006331973233985499897066608355439190482673094141691420750536506544365478844927371824871885258843875189161956853915442165260176112308917584394669679007058018207159186286781589308563899534040838334066019558927591976578533149020890775843618803362084884565303703598466506959678458322220887083808339427257293428162068878148781123637689287187938951862034026140931517838276783188914940732896922533680528676907950574241527153234249801635082782374790008556992461697957948949252743730567019360634808332858551415406532772625226892643274123677069792769006514929363832072808429075452076653672651540220523285924368843144670841480713990778348465350699429851812011667410593208505318511093897736091042224686414453381737765625091482824452488609244441064765919168261159026049699900841742935051960433616969192153996698948733803984369733871708679116142209561624255482880626572676787025057991420663148031719295680531137381918964059054679902543421772731943762346119060658528829097357667856974940545174716009160895060337253797378327147667210696365164415748933858483773837542366755744886980531727103095678872365145497510405873936046749590319837652668241376479624319015204210862489824905680281303423977431601208240600921761788793737550956500808918889737076360895692371629840202137967365448944219737185621694822405931633105364364194213310032780780170853013265411083040149500569888878585871568782928769625031256993774056058991944870992862380718135417548802603701098059945597831656358409814440855360127634823661439429330785482879432992009052998324241600771180027200635449258401877164152516580452740295445057237328760428967018367912308549616122480577720430064648237747659337989263742835213360944629093787076823351841622126386610662009229464431067338817557015319715590841653993525359229500231063916783247161327752062168751453792314379000907115190612350178038584703211520398330503403553269242401071773962184616420632240703588478516714523428756950615313531192514212388578297900697572627494821327647864995456416536942181415312306007634372075185514818354223297382143280531029734935774014974230277624970028011172841455016400684205435845678364917398938054202977602318790599373230971685654778903912666046040454517930503560895814212314336344550754299643335916046889989281656512092689495417708295306272652058764020593990257933394855393837327229055227066421843788324212698398296087744510537346393338816875649552195841492155218253072373266594244162134312437045792042994648969313015376351454863483364775386518513673968918986425190464119570254751070964697884597967409710881408260053459310742275802395752942190276397890979166985584560118345285129186930559994726839257451510541508324416085582340967822562738731893041371566380912363892368106656321753617726787730942964392993455220915354691254813152517102400254810224161992555376870063228447183040046356792256581552616346284367054593980286913644271849008484425965127344040218622594391844957450135263041593843297615425377640504343686386141078069664043743146435253530575435973795629185813276562131695521853652103965165377761938929270273051795177243069459823347079167114903847163419617342125089190576005742043209396363867049725243430614722456053607785614181177162523588424521698340503626534782856776614645594486482293562065210096565438934739737844480191889057795020557428368643125916029732600055404278685247379538210983428286040698077777958867188322177353723160605373279922209654296247407830790694404568078939888375471727163511956588216047012158764991954778055625315914159619510242452341078158464221928653525612957776112347921450117138668395098202148890623341623572186016802241215982969368767343806329370654112056782385403869955833341075281735073951225309734110894941191115917388370855202429246885686241230727084481791100756043113651622737559812432585230901996479608557305985181120433152404622132189230021789297962240014168113050365781839065951568325962876821297951265472664125734655982192752714743474901788921641324951944406279980049177981781919863429668411525670774530326331073321116722864901239885372459570449499649370172883629612980890387563203887951154090840661761728523207800375556457620371992747442245657196930263772480717843475650870407490610437336149167531603635120249306370439689301730464501530739638244077290043830768812593639353495140917158514590400810853331933848980296313215401004100165960772446054501478744806437607625406347810506646974358446334070648912743427540781107009141193045526795014178665647286301812416711459235425876845219020762096890093147710755129114102363917097243529527755529123417507543449981259759888038534773361298888025130837484058067065008713735353764165035900329521036163102842152319723353874037591741907497318966064423512224780485228968618260268389070902471210817932596226206936417357613554568880895734754613545473581315991009293352241260137855365973701168466867115454688754502249247218359265212734299679158815148889989611282858268855498097643269729594308185431255915467985505626650272683169404011495999557158727970592264006014991205978226752324356275899465136070067212953866913424550186410036809974368487617785581623884837423173342958925224728478577976814001317425943603180374030017717749922295024574132684489806641759066707861179399856814731389692508530556892439777044549616771022357215790424669467353407025658269244910917705432946221428175588243219302006319774892118022206973176237183344007517252290643114730452090522371640568735780617892528740888726954952178919806002836593318795161742724452936988107270709998337457601794435908497276057897185643250781433609321368571645576534113708922212437621971609343472468094461416888942879957139489003038222437089871469835740256825966618528242514373280183091795717316722950592316251695180220134152527607074664444814956298881222176229729547641256939911725267121562090623747602361171128945706397312388468008077527635485702086125521607155387726360879692132279370674465278995357436922922113542937271984616763686817420018578852639997813526837638223637397091200701963171207203397438490833171707338078157373178773123325257464842668991721575335889355892625031805126005389194993586824567404366742628822520264840233971246304486714325368834161309455430782846747734061244823541074531483237142301496605682377953235874301821830023859802095523573832546273015975285779755770545035721079095131180899952372462168583403196763194535457881358386953983798710548674753290301751863909383706172675138230808084090457532264334887289580942291703908931596739647712187517576201021602879008416695359908565104410651695143758142626154784468788606835732152251955464544871671910557503388018120716275957053900497538257955912689938419732602004741149209727512912938618191192534684270859303512373380594735622360413930850998472172379430128469378750370679432274239018177617174936759884824814687910053521916164341465114802124666856381897235243644647207061860006102879108228829513029341457074646192172967487783058988808820582267042631889575514184520770958400851801714697938128751939985662974765610103627530344451205338923404924890533575170518371561898282707372916312482568280524196971061808023697382369575162248318576295848483725551020530860369980389552484327543408991307135915989981590721078999208161851082938374486244290705031507074225066590584364339360884820016747789544608563943392583815279854623365557488235136480868838605952819577604237233435804815424797879618466015888853786986093497066071157884848652823038616672540386095513281820806772668273183240178101011008302044547284646557860479411199676831997344525802691721900695844436335530680928207532775997048727088367722887086437363905557147770226658395710698087781091847955564746338507276731482288436978448530522251974677187340036016975928588566317227140276950589580062365521871166608419232787815726017528168028154951488495079197385649515835150162384516863142552858993038838957523416705198303922651627339202241212085965370609139631936862459797914121707129721797939030539828364756304578682271083406024291696671153835289861700912328598720203549866051974657508142654142874189357332592544649734701946214799952006613291810315626248510695646163093874222231843656196946128001943171457326450442251148232391781478216796408706317200800086435079899184982468289786993078309610191336022568113235331166773225162066219128510795131032175204179420741693694393242127145469836759793170694042449032471983490827344121528491088629669225910633259871839155579925692189459195073203887690947551368745973884564064152490758236109395923266127554801489816844221801436677483755454953388540521552322560516087233946193497684830019906177334220458364938475683228859550432688923522261608132764303436992595535321049182736669029165448492503986724004032240390436832616236391405253803399132798077039258275973221599368159661665508527117334998875144114380250889758778247721359298320889294338683494357285665894006030583637571947458725892621812183615963463086582863777887557496902628651679834234796980049587623470719090228426705552682470953006445875167362492129172599782242226238203705784058384766698732991329075378923720055008827146285566067525268427055027947315630393285499252812100914738830829139584078896746661739148463389721706248845837701122685672531399738539727678622766780417435851633422253338123367417915094063802314081644566584174382995996231539973193546047690677650911952497943126826395043885726747856856551778530629004151127392652793355307500076486494202410316690593579743707958096441151585052463869979159639416373515441487617071224386125900450039352002650393642957993616071434284787857062785121024098429175925863916269794550648608841365058993859054080529917208080307799714032379063506432345790172396720700522396364104907426231460613711060369091453616566189465987670919829211287514616982634975072620966495601684399798412324129936740411081383745201910305989011313203387679726685375237359178281009897284812220969863087735347664599832028537533757562380503478868501386728988645963068699032826661060272936983776682771292828983236655712857550487852492013958868236563930039978834145079170389124297319223717266551782615889463656676452622612496419410444931812746270242160503106885169135656749972980441205452641049856223405704783717066923668678657479989027361670596928889220514849860233800735184808711175310149743823315472047624692329836272441025306890623434153011771316876307710755415142123691405173560757334217949894429592299508279055475219218319383782486333543419852205658739294082470485577599459729153442589160861599049944757032018354859790813873850655570976609682296747201159642795824574178120419429231282793724908961944435954798002493152120013432673541182134937074600374515757395489128180777051804695355214524400584426127925647428415768306879786708949915976834449360682869506915677928816915301365727652223205154744134819239950270161464383709594903985534448691404927740215872980735313573264837315440075334473015431443915546999393815496284656927039161537241685932773583978228732930653011894079457828701385411121861299714594555400458034880027574762461395305202740770685560915176626417365327523486998996315059405529696066380550405108143835124617527002297318931471341931780936511437885721926231545639686360568982838939232102084614940368654061516478365031831106209550771043069100445284940303234005448613368380042933979871706459370968070648079984334119122714197640939527316034239079424129985174890880128043013897459346878802202112073311794516653711437081391129381340135969273407170735814856584915277896551602170635554914258761864165937171912109045403776283955696396189436208688028859955617045993003089938584240190780612165769238307628901814833019355955001858453556471991328051822008865597443343388172857018261034239177874670303578660359135734615467909118986123250075087273728166699716129554800193690564234405579240051427971814852971877195523482813827674311754377058032105870303357325597125565638385124245528679750045713177321996795629231540637155099338540987902984689511043172943412691004998659504252919422243853649353424398005136141621116793457017463879668195616995848007546903747937395048482347188371462264769087952848716277084123110530265089158092538617529372908632542463414154647117638009355806415739479907361980348781487729318779312928222187874047796679288301289517030804414852687394661545190258961539328982013054767421572535223910262881233189020988412591993451892015328795682961085110108170380258588695162799696750057132565957724783900071048590962029283285227193347468889720692646136801981482150107728916800235163580217233778946620730739467839795072609106512398267154895535673412186926320811822967725455048170001320192738904901160635277309298324121033146009138097492356643582575315920181122016227136999122036583609102078870346409186882584120185905921723273535430334948762743564054208661770476053732071776254550992548645052372925130746831667195440180485187737600452435094841362654778732379543899771500290077959060635045051600528614230092934232657270311990417736547421770149223582565626438309936393507261219254638235669141677113328764818099672047356506063251222792200031354466159716285212450179729364775699536907719167284880087991792184097827827933279741121327848328865547417892745526003418490793559616004193983513570453471755378622076672065704874235572232451444428268896966512425742879322722834205812802120685368871741925745710721228337504281213917898358662258914106162223432699328561410368773774441066829743731857200952982113017062783185310582749884702747665551107539548184287704030606782710743397143508656712274883613273557703223512111103999085173761219158241833618531724701412725399317028248266707086408204522718620768993591608610222891320920423715813984882837522615029524616626122616905680752302821602120876215302108165373400409462280772405535110334602318969625595455782283567583981388482517164748760897151306001077276143890905586075495601234517660849465071234859370832138494362123431318801805953297936090222313371836296968739618842032552649706033113236095972957905267127010499455567802253644191077693169570947089071576624991287068741085239751760507263018170326781688444880755276730916037058865848171326734151014184325151901110881720313846315675271305147928446150179281670060724787849900006482880335356276862189933815011314008515842171659081424896368993012455182429006292585131334063957515157027978598681274022863392873591807347706356678536171132482413628988461721303207815585666404141635313111603944292527810322781363185485629263287327803395723674748922470103653001144535165980932319701753622542700341723327956690748314888537462369098356505341395865022187809981172925557803091986881268821541492850126240080959368510134526335528390365906349603974991036314159745842283062699907576810414041989219413955042293287083421299918861180699480291943755086659699784071975881119532684506771535937509693815974152804620882254336952373008352808160425132894900073951689344899413874217079244633061949661549608593280142407850971415818182227069624779706092535418021954126839290692080626674333320986134861305573949517021342395757281685998129837489477845513459161826169998816929769270158021024448752423921771263409670353050797796707354504519602318629264809341320222667115783145495096996985628526891820854395953190854332407808098429351882554945222936872492321959790358775008817461645225690148117951970458520655020738661219079392636933275928843071275789570351577722603606991233225795771179603961549920868122212696922413881655102266786592548662035504445184188742509632013289193900798641482794022351329896152512422543753321063703788235744562211018709515967477802565923502543572306008115080195123695915021323824961029385932643578894716725570655589987666879616891507072429525858653491301298953809526574976922021732355559966594043407287855800915615310117071633412449848386508639896974233374126692614845394852920808207645393330003253180987120335776050469606776323041379255250645606391842053743924554873108201734422593285621788030212538719507821296907201728216139465310228230890564021920992628696497899723656956426399835029837049516230294217453044819139923884815556065113117421373774614600467238043003646584152046565481292148277169063890486365643402199434845273119938732994322031225247367693248279227550640400962886706610264910438983534668382147654762388923565158797152081850129867222555586494411587350355275917133363232604273016848813972702271955929241530349016170824276367842232395291158759228946255163941790110147652267914411539361743695141092082422567433986928966103641954574161404288705955461129217800430613111717472223017124236478320291596256201216181036304208499824569351537898921825142007796181043000528169198029007615503173444432373874150809731034978584846589407359111772708510883360420576163586451302082673036168986197525713516497642230572461994598275999850347066259201592424041079956999398369041164644761853794803162231498588913512752412097481732508751716585874420706055898200195079065075959747619633485539879950901957289405935160785644878384791768826377779078216578431059928038633469919429655935472943820687874128647734948248061353520421833998150684958338762695507205382866383459939676079181415626135993985286878075761254334237989919392706828583840822533085758528297632472633025129312557230404577389449241036288230717045639534224443369733723630361801647979228604075713222456407564618799348912247860966040990180585620498920941653028901319161954250092798184951024205803147097933619573414378868314203713117857492848782077517024794402350406825271136821881161981003309494592157442892145239045475219776993494403554172208945847888950101986836020164680998277550019612414668697394012677209445025925068462014678186660636025101081716506559723218245359187870678612123383639191659429512961966929963601166255627550342957202319170169690213629251549427872583357049157070844650135914310780105393697076257326061733676024756841130858099889359600818841730582641627617178088643054960298317260150034026984020836702622198298980746748383249568146046427542538699917680167605814362631687702836775439093473699720525843165486809750499579634424658794515261170697141830767479583868748744075165236422013726623974313121386507248450215976419837238970849273300367601400746288818157351411087101080455867627464292102829198075730947153514634416647335482083484285078973848268499989865507390385149505681731676387262070157188436313950369544643039695568095898222759848058544529003893940443221167766010287553717919268402642529602053823011615349656696148982749403888578614933559290803950600585529592588416928443425277353776861115434031301938865428899526716919242335818569859752093495022379578003020984233382288805304696761395686754095388730167779164060386506772880084112306236579455019349486971238179722104515324559800259436273963680259391716922724489423350418889638576059277006365129587642310127738033287044610632739051511526344892463389422615591491897738793216775581297029514555988034793354215486718087130425572369862564823427019644210065349246480927102590547298277752315596905650000034993512668618928190340412655291690734750257852355821193512295385841147942540843309082827500198092717709563578087940348364453936478743078387119672082886816106412941223110201448978422136658378523016587730640924352137623127959405059423430728648197149857540316973114069254564623007962790973961164347034771818375222005553942221270747491492867862672520155356552235674251025861990674525573138132807163836381719985416328203960871610816721706911567839042810414406408226773228267409927598770098966590902908454942328549823784085413459846960796364792994045857962563198726230022277259825587538613263652295011025545191517765155808270099371636650427837677072637907757472220291831302227153285717361203121470137587600035386720164715256978738928926100324814185723170338045116853978347182394126064457692940944032403487385058203300950476339369932198956647107606344819198617124974116342142048883650166144047781250955313264323441759195718330446701797825285572104393663759956188265894823253146968203967585604051621880947692460558443998409352167025112059096296803551825160979994378346310296538165562501698702203696812230872964019943399602661361222561278846928414301234424108000316930344820057083439257904817759127205905255758120031335577538751764062474421591671669549242515544998609593600823493555383758192826430219135511802180902648597649487226432020765005604720331564148185087837569834809138742512587959712044594227828990280954297921906040234643079492560505149004173989715543806208698564273714726557087223036790207824383014069900556280738937040789348689599806345881755171504521699934180622898590903877750834323496858437720712671791902161704761306339393604480438069850185566188156792777036142919789738789195607622232723782561421012905519508122569615427533145651946147842455388887728612640017090601770732841038789675768156238336254391226993321760001799223772585764368169266460934414567799173113785857458136765011328708020471550215427526292848915591621973749067431353225118918168306502170566506886361156856521559326088854853731869362634678505710846609930131613926896889542313044726745629269884113520906303226587530486479478346858250156873273525227591469297219016971256629062014627274112261791212155440484755381846635689522175739025372175583282837980915097763875557966568326869822949787036461232156860147857124187941411710769311039627238060435025028399408754454424257675584424443276768742343377028289770056061422222744074388071567876894414472968751419773626003749666447761108325894318652522451252562569400934235110801988570230707768179724585904266861560064728143063038035245374895499184584200396057838393653780470693644182573206953165428412638113109735859216166895245895872461029280812055966131951933936041313958222642301828450375160643441027297983054158555126729237552783851990200468574067162927954645884898168728644520430957550745134388054569988696738784233768461640854055878011269022917852305601498496115276188123782208375863201079254997745237025097890865905833467164018636115296549221206768046303450138276902866089501596886780271224737296233553126680428014461175074934202914608852470197305757772547497913783349671484018639238865196559148925333998126961487570789929915635503743300021459320188554329820603387790083159364760392376630040580384926526912311011886493776796792558559520000181422701427451494672422600956748618801018187734825618087157903532858496188532399733302040573003997221027386286998828894487597308974373589043738538026775152890314854500660628669972530542715476940808499132610812260855601432886653508754211151908905564639206863199799223262670609393363201462449979139577991543542169912089760290792124741448789837248707770525672610036437216554383965187483464684583776724000002983654639263128075881750838505974318564381647478532229527276961092892157955447799063294615065347133935194366888965597359791296027705743002721692201946460832655929057675085854484200915736226883115023194268260181119098566035314437290650225073994586393778694946476746536408692774193290527927319945241111168103607297598612986857343217097536620352154467209953690685579273947215835954685650937492823592534982622630388284979540104995439617421572263226182410822115169673373357483591152007208888689041245025913293067810257415432896021621232535618620544451669736619430305403920010553918042914829836226108391688038319556395146718335379594101843910169016477171454305900078963791260823262116347904076314557968749580430359627995129989917449810205401479318815733438219464094812648578383407098575682543391524030166406915837567091840045440211857155199604715405859870204310586747023263398571956329306663369916205917059922595647236865373228524190212942516804019210014616816412598253913303929660264251942735679958092321304900737452082807280105454424692197509677446813331154491258600934725614740227042680663403419949511813231036946156470625415820876188515233047020129107302891366043384221196372805403922925421822810285556012444422398982113515920886957431800731271768929753858861033478916943436920298438928508219233568977804151457371769292126525685721054176135280133560355757854847570224476082831036741043262732023544050275516100596777637335740952722125260366245627957827125000052778427232410257324082095545120108600311508308353029275190536589185149647682259621375121062157264611475990956623770880825250657736069320078875345835655658690232246651004836176378632369367981428842980002515818905497772863150115896769319753800291487323315852479400078497109243015644978538690953737716482617523865061579259770144841505017709836574796248085980880854659748796395386095779420705532514258617036427775546714047262470872130227160742703568087952958234982247515061174109039633025901640031559814560330214440241559092651083095438334490465265327602168488186515195932111123826411028938531041317975712423388414648575961449121366740393869848269397187836940802907102592797585048267977639892085068332261628843533916281285057642414298289525776479377749149769983010986296837585645647416329483141418606042794540687771448204453906266907001973874905877997269298036000249534562027888666724413508004822283914391821178443364063808675825722446893984053069778066962207093646537912644990502554055609005871083724392838429933965184517620968708129831215209892247452427403922458590777101944152895959436215147708070178336394746538505126510740503653698041923503765784610167902394317410537906125474056286145070600521341370240880638770324380171200274389365098713705490084695251551081925318182786053901855690795773029165182581641295141930400018200116336172241836786595389890909991128563893664686779824168901334713530886393833015208722534026686318343879968482942546837587241990934528678318075008951967735092931178467086751919655275502419235936984830752980029434120670262971716438349649551198243460280865588507758293516554414548869810311856352604405113460685374294946315071750470261569560906853010226470832421384741880065639835672653797307243078429701157495272857354920873707352897256764029805496729649702144138000222613360215663060489917532201298259641538183949174067478571486401923337998708494176421405879171144143627037960815266570627880662737604928738501247096870484362265118083283116154704565515903582345580045145533373986023127602299713033612545285779010760742139285533049682205497704240238871315426536257666689140853548497168357001546952034173606369083787337736832794705940358785948029408880649150032574208604654449645397340096763943079493742897149112588525261252280953969827386238213389126672589688623688696782412724787761596308607368828462246691372810187804334177486005600807798258401773944230896121751333617241965497570414291106937636504447666506383420270215336548643509022116932218427086568979772704346318477299918413861443595206488849401985779333194837521208444953702070115992454190888023877394556058699435692887308365198589905077185948730970964417735609626383084317402655374392924701150774840184428293442945332821280058273212943936468584314474315320058699206857844746701259028461775090693024201216580354821563396172642313405952113972781497420472469765175321781833818171458935982068168251193536855620918548260143672643406803758610131550809272905042084270383978376957960426733991701215147338212158580353072492857908032524382815757991408223266996787157734577177697794808025658257545356151815427640727279564605959419836957186265540140686806245798176078403582523124172859024339146218921291867580584666099945406020682229970586992456313316311886782878980170161880508038285613521470290933536113753395814084773703447314012035328288013612587846787670033896850475209207909931746744365282966915799747941037578368099308848861719794851412285546322051628092245838277009141178814170350099814232850731414848485350416836235159286737183498874344319636831268976656815226927610389379785130456785913204743235917082586130198915223163803448119757404056579432485993005700103449783000405747349947592285225603164153854047174617839977360752478037757409189311927392451133201196676682460321488333385790891910383875162979268885829244803971058822904412236609407419161309190070495243797118767478858399205134689399739595700436492025726863985705441030646017289562336167149128291629657531200674121797669677108854085523346961220781893550696612738073919550862836922961330585322537566058750063240501672527331563155421563266275507890861838510479448698960982276708994514242910676568078305523811624063321473854010206266184036121775475522848156505937064831821900171838337258756150231415387552172752222652301908307631566142846905725535117251603760991098901778439393355996968954313995280156464959889670062275265556520240380717781909468230600035442533980834791538240994476512966304757595685669053190664326647383516116681590771597997440073990232323444130314413719626861483157565353875799015376550705176448265784919851123100292816289715436272731516058676950883442145265733379503840970433926127808244678965160700185340560563105989283609362951936641338897215276559386207982845319124857989440895274385890695764136339737879809091312877319016878377215865342510270650943683639097944374309395813831223900177935960888804808142707899238300764863397755380748368981583631273475154418224011128878182479379842878918674708322679482820081266797296640457267946977801067074615366778104536144874288664898589601824878395905238334135243262346740573334690258968678942628157864983926307348835756188633828405364343611823099724301478969249041799520005346894673107443954476987519803977766730727505791643260215577733478792887999144784433357043820513857282875137113339007909376046915564169318739090757270022827971268021545834734548146382832036054905405954251452813438170386576731236841566472842926201995771979815452269052537874328048787656990855828838927738754787232385198007093736155012213429531484496346670878672793418423539915122669019076624649136143395223504080314799337170428331633261636557521453297111258774550649322267241774642239910702263980513354003700077499142190192394583757084143632616265524013187670406377403851176801529553180432131693257043022115405275121831533261122857083265555208880142636538597554833050942003790152545870905275306913049995700548454485010944943679359379580081026731266566693002633306847529827202324853104004792118870525552703157563746548560837284788028438505458493703346680205702472874975549561977453814149345586431141031134039049826702064113490975340443460743887109267133772439464231149860663346572826491580152629819742288726213871852581635508928723178301233094571268465849057287803886367065861470029134422325724326712282599596037684410247469755851769311644785177307927503005278212460599771956433735353592921980293396672871992033898794918543083808894076060199092136570942512621377996168631248347068091676892638623575154903175777086701555703251707101690384118430123450418909680244992599526978512078162616119626555576972285027032044962267991853844718420511107880793328001061090594778610440665499959160721180777899544041807850310914204100326553451293375141528156587887551822941172555997868765914288534833541845181971209419217321410166736428733471461312357078165573164313965253220334696870698235134314519809044859302222059709586727743825809936710291392157079646681109739853379588585812326292702070208590014183991400173124309215902411535811049678890341715498546257131263151426865494151395820412449638587050851326238272225074178358212793469086219725078263376229833466402224018756761417044673523704555687297131408298875068260960116139818498439202205919268244574104986205422132751095621289981526660048858902824816660832007791433651162868742003765456515010740801928997058784508666836994496597855899058376569787895139246197585545983696627453766584679233707777725476712722365114046489800555359431789511427660405312622161657103793347505388631129416611667501189761470335342755487301956164127770622106306366933141665440434457864456130405148179398317089055241357412138787689939135221832408249036309215241920257105727504891388588144419700433810802331919158970891595549839174298330199816584498235304750273527219855243612171603682625553459018621781775976411400019614360808677001525503435805267441608212690860601239518577669438086590024192648753451158272402280030681970345642206274820959046868756041049858753098667765607492662052221767711817342858340632739373718689074528338918574912929819056770119347393294266256117676970665161964685893238077611307022606563729067662459933694054686786902952975293470949732977132496492740039367802881281277791160511368070297986365881726811359212032342584880128016481703179625773899761073096691496254722438421275540630283752690687255327198028884933388926024786605625256455568569999213585413561384789493625706510615389264904538392761863460049653671105312529043603157585477795170895608711675171250217757197862604962222893459247389310480850193420431341810689565493925828334381375505978230739308737416921731729081916449096376236563317021039698025679642554826453367562273685994556420590098965126140668435792648920016364062625106708711500637279854296326481160843661164077500598934603336623164703778036681304662109428851041928173796235480970891491347014385125756899779536810063290157303048468474646941515971468966110819951838495559647462001827580747501787877495118283632488894544659562706518143816504464944282431019501425861673528600149055094925744461978094151673425354610162469281663598766328502628761382668488094931297862159545265184669059451896005753065444626356871373258189851533697957147954609316923540517237802619068250966417346451548315857985894925570677768155709937274663036182119803060061974876673585668864509970678747153842642928471916303328786592496664153434857056307112816164129444842822890708602635690215656664164294843442422778163291549973383686324738019391992305259681968775780920908691290958755424167454035686789895677436429890360658491171765012367576225044980814823215694311666007820035256711504506976998041884224001260822038683569842085851010848493132000297538022985154177506258313010834713689538672778126576028915120650960018102854538733840768653520379406005517678437593187792689374180310544802645444732774710205637670713902394874092974532831861478078519704829764505358621323674851995082642780221719691103639133322282155071299191192103411729944424436837064796941258854768266625594876886401145177067151141838171776502961783984799400094863645491082788564147111345471924391601700880753403011021461933530555645198366420773027162388292953440994880284746452219436979188688115222166879098672637971446761022940177826210543644191279186382418236637975274486571612084615048462205527482430910224453099330050467984953763366148448328669269254503524998251843758102057397261039961980533267169388157299588075101265257628709196341193393801441352503985903762199037255026499561149628319920011829985042672845449405419240014020002400196792081957367945625450245003514856679698466158203201663204099460091189012451593772031724518158868537680472650080486850413120581160183758078886915268212939986783020229054918702000883955689573470270057223978079940347047902637193152196084044069845336568868969055398403926883431529899678189407682132235105382815533303477430647656555022170966661504201384555117602546497648415368748762396870546849218478621706413792573537150017893038610528649751734812080334618526471478201207839618518119661292476865722786174961741201988647124541592612793633846610598991448093516397948231157657891704817773053340094849633527041882018965537629235447895246557178438210641777438192730565583124513293208665632755921715646170635575755555930385068889434281954416480052010136340319777494202527554420285164236507752690228019461198209687179141549976166555778871045165455018378755946494750884562206339165736502507272079162694194742629370704030877656364856500526911913284234458439699483932496950004988169826857309557420587419748405045257816544334686734860469867309019632448493876704724213386758617035673435545631595602647802705822033051531201553911427381739977240061955355353430952870765347091639808269412300855193916645908931402408381937441896720086310948279003605259560079099248900738197851732932059690697115184217640505129290994773957949834044973792013187379455518093628256340447242730554648894424479788887329003683755728856548358792540880284107961577568041996572902094020294808208034999638036271166672931799717612024177137434500896850471073730878098182218129183376903600843662393001257084549591608713730323323171276081326614118996763202255840764910204782461533235601389647323572151200397241252899535291948696772475680405739383961578632488114414909038682132730195190260666169736171733913673815972666774609249392209049123426278322737098603994133911513168406289157208545192795968489173441679154378821203030489654374253279103972914121452410707398739746795454943657675349683399878553975236527868178633966487707883660730078214325714063174009911149913303843565752922685685949089346328526327533335346324748713511661677354802048018955457079546245109473098834564923356866860478180672526736379756718184787116129681877056039136320921934657485098057837350400253140504601921140153717048902141425929976831027497446137785061692730936444971728555219027793972473050506263194013962567239048734803334015681646765221194361761426839322631001027600792904952813116162812678789019588499122954519935601609191932505841581685219653791069766946835267905386351450329259790603999843170749441301903736994218852599580549031053609159244776413460815241983392766489858130831379854993657513108327707284357702139351947651205851203976966024406882403658276138224447880732416234636726053507705649098966969884086714514270293637310755555848266949206068850114572415700091962498658305382098612685920258830346546404000209257861932079757072603864977685010183084560384579838736321251547285898207623175844376896779758630525856423847186917081827748833152132525242575673973788994666654547316637438887908693260700520139985323038217022302940403969509211958436733016628552874555170135173247948440526233933882377098520640713474558924282535889499328431565093921608801790135867708576380605065422987406015140364154155294723990226905950102939487468421586798090256289202843542493725378670494808010923157341826147122046385474284963674224333834222065435078586645100855702947073239013057942781116232558238486858924862455697135191723668836883921303216158566364587896016365828811516227292780015586241199365047161848299974802191983662050839959642367666713826510885554717620723922038855522711315580516629230264422966067259401303882917088871583325585462420338463826477365501200658653420498982011866129088860624905927476357998912746713939453474299355579071018271231829540556551019768424474102536112285277979320806762479704752268716753059321884861769437575127219125685158942674697711304220863622002204007414570681797895670017640289542778811107873146947774819489931143813036608404429062553170187898869587748609328080777416023727458385449586248962437154520767146803210581392784398536734655760250219996043826972971736222027932235449810177884928743263854683160384226127260770669876939658241599738140705772621050189775254551436747897930532887982633438298439007388661513336288126696620899547905842847747777944821551010765669172082827996229685490892489800571601683760420541827177164545995550438393882616865708715996988992373448924892571648593743382681419205959037387568418845975472869052536909766726801439376914881184395732848808510555870840792083108502531725271659626408229823346763168800353632460993135363255458077831807491583961389226148125738345999231483768902581081454642000168793082270767803040770664854876338716471163043932469725554928300412246467265427936247799606526395061694877019483448535940579055732901242017139645727744980510904500682085232080129744091714379888516904053274903743859262635174744514622139162305568699572382624450617622990362095034965911277340880885423253623448110429695448566488756644779562802164210334323613413037919798040867884580187349570897507378262287860539487035513594272501074424934510368299129782856922553082143701539812668120056584566390026939222694686757775285311924443999393531217012733279764508284836192885466088883056978459709416770873871298808522079577153126425157543428644619070362927691934066174929206032235685774830506249758851973912574168693869734026135302565115490169426631229196280295892130226624785050634568122299242280573232615940962703648835843462205644556118461153430950486742594486889825564146210828771302672845163092285950348974189988547167194719273803000538926679367408903902081684204857569034503606594238976774380792032010617716720710784303291275291805821983611219937650751262452671905179277935085702820063383804788737680640896427332836597308289365685203848889046601135092669422632963572407298792608605613406499083076223781688545726114467963347872277302016627257062253165321251997071955394973539994167367988704384374603231735754432879862869293843172206642723191313318351626234005444095032079261905889301776588536633823420823144371861390253306959187869446315624755677535238633544396940519369457447736627417920454376829632768398331160982171665465884541196593814437061276276672999484355573779314740823749052996541763773939868606650064691932401702866350251425466546999340044061345605519821154159256788369745479065364397667085930061241834406959994557596886115678042718834088897441567845669564839344459824835022178476934321231825080915825808409930653738611860443894643629903593080196178230204098303586508243078732028751348392047470644568577344013006616724241071048453748963934858050675188118573696854600248888726050955381621316191567769238143577930358985559895033603649415896709296301516015760349300213417409798887419324955299024947990302403173956749193906102140784944796950621795394195167035477654603321232508706542619358390331165191328792840500055525283804947116637582667216781158334956922658191797995234696804695458467790904904889101080010388751675953828328121549420561266536225179532816974957348513216843628863694360433824236412092561935286003851491918709056100672496266924738493300523879574969911739237350357187795591076243282547355653885899347122260334515770755047327909560817217792460125153337476834236844625850674306423302219324685998550299985917503348572531715060267528395449082450221187933245991479778524952218135750185512954182576113545743614012394037677327915603016478237681009518833081766844321355022491800043829227958184907172680388743082854258519333799747028210626362921664283845696986892810215809144262055688312816723129733312502128961472751621591938957616113602376738340906247898738881578883909340205354761633956228697298721935643328457672465190792818593091028030183582796173363646996110671395768491974598061439890552739608773342833248839294845323375500064473436267794067524452800699348692020475616381267233558614465834251207038283448426625551054490526397663019458057525229383358821870493714098950097093719205199697215291187198268387908424467203904353759194025328696866218906139984566636496280694818830128181553937225242296733375897817310370257337959982414028587159502483139765924100795241361954901620658568033008056074204751955299530380294958400008996246575621737823690396899973639081111646332285682006555751542202160372171292785315905463703555873889755482035342770799242314164247082761039566032843220839883461477535082851419386063871945179732430681150725532894680031490728216328375657082434597283282663849904663431094891960765021875034999159812249618382036446702364943588827485654021643403478067513583801568099457490010350194534228733068591797585637442001868565817128543992537622604464692807910031755705280083738152576450183915106446358569574980084428830345578773425525968628460049731224822712465575755862973215068709095838492689748319649181048351117927582502078365599130230674218066831698435421454817562534078973211388298946852251182756127881287261211041598361725307158759460170161232219005632443033375457460692819688257035824736311869004031127133615104314773397526900832974397380305779430843630411898566828643810695583897261094451639524392479965084797427060136895414689608407783665626264455395059681053093206814564217400504584974070853940173191288971159657850297670835860604960258244664955521479665175013868898494762961499017039761548819527817146183665021144445361675950956124947344221387452546778658057120915061711198630279557030311317877129994783118189817568962139993974562691601807781558030534251379310325092653045845009573632066143223711058338457393541366606917731968482113700546108226960780129678617306062857029618491329557154303594853555391332677732857313185463360023967809924249082094430769882114293295707730365473566903081426904740282350603074736499232306022507883426780102767439063256242783429683426071471717573197284124712338500953250239510926094686024121467080680314214425325093817544783588271195102899121253021846780976436256512756942423775802013822650062157650544786805372424242625313254326044311182376507707577983365504921736381448672620593530799281461817426300858991473661476575941407932766906766370241051736960240712603395261772970033485721117222966112740426944686500096234905321039044316717559578574345601534370459548066895510956208607243108157369056126493196006556123075101715347887904953735118389773417071061170169652757924146063294265571714472208220689922646434616849403555969827677902641632273216216267586886013849726722155989089870885016393032656504891151052845689582522210981871822457381129356914524215499239303683095262775498930586939990179797364012414132297974249472016945444340214354338425390340893432784682471903794103018612864809684205701541813905228795057559393834432260539803151802598950178045501048032366291265041299614913961220164381311296828235435329068363645797991012032845315256215075706117258531179095884337225414870481826721652760671591604144079877419674108832951671127390917763288957342321335611507856145775563102832383125581515392906648387181064148033602602608803842847211126120084235797048307616200667908879176230185763114643139400410560020274650707601967338474689831893691636603016382767045167056981514929503325242692663636395549429830710391364826176282438957581265882116934207554358363144050994855024748376297287422695284588863968593406383342000036569189613967828788613489330005402715011459977704032899388032310024606640880424191434067810571064779238281584850226384879141493893396542329640157530179935473464296883002863557023318680638037420921588702428906024116791660241277700345923347495169852922146667535088668245221393307960360860821107170389512541889347268485634160632742435450512501336567220305424418393006018233554651125629957036845159165313788375881621483245568897202910910162980682008497974488063773181739633141287992648888762218084825367717688521200144299160785876968817746510415972318368313507456161644573868297083298735862908306205284875290912392081570162555928823919374382228385768567837004676626835161163582272660593382637804602404521890995034075012642837737055928639522586176676109610812015800982260673397981049397448145717928195509088243024322030419262448027400113994730235866886822426990221555751688274328407708626475428280430870810445031643086944805351838853046582877342631739887169916036714552174335542205380633251097071987108576643817137951707662779437861526144438863545585509939623570631174221292458227598670374317752132867380510713949325555966555413265657854617062935567713399606140336502820187378423194079476872813486224261267788671521243071733520325287043751421786339355506565870036922715604302021782803323938855149989523818836850946660352911385967383867984211752886976552400093328526858896641528035195578991685545837038801559884647765666844985165160412504919001110323991025767944233422023691300975012239949992486149839177373956748961545250739075298902141909864292728586318211122063326102499089181144120099491822719403958583053061679273077080332633899824407416733519698438906959554126416464606883469188928707148731512750458664569358458211141778786277177776017664663341363070239161788826044312144414464262258963426281991616156449856008782715789159932947929755805529309177575385827300969079181555098452785367364995326487247498471219905080843336282374323108828228378331289507819521223262696161622374470554937857909705604392717209672768693210401951004618568623115649810258148205052084946211914751742354378883063722778765711050012167302791214871243466510118438654468134510282371859157605291403084759106677387978145152541256273514662127069849793013703980209974422734734671991701527414534034648394882042667216131814458199420137684314989900796214986086359986379011500507343210516262825832303722507299238832537162197994040488217736493457382918619786998932548137995873619725991248176515988739881533339626011449504703446539847706336575834435951684951846078244073777949144836837650381985242180291678240289309730279164544341973207929571713610477961613575214089564436467014817070845146677702468173164599902713137596866198684064243373225571551658575683718388073525343964841831853382116028692673902602818345976649555148942953897601538563781094226862402722154256817069717376774269181016894546207361984585302916271711118802401534381727134218859581274482342757187874444156274001726725584552426115241298000776418248127565887888038552260482177610330344113123709564556542537205279714466306731163597617422000166067362337972215167754084895601457086325354348443228715474112455260784440001392513395070893275010900857710433039476351182057769905473574794775752724270080810986573845237872548637462134025884177060061277641376319577772075546700294008121553721266235885916767365662690938298230462891225446961892998916364895339996978199859890844555358832749307537718243186987998884527443613665036350065815941546895552906324522752820967531642935481304766031440666697309329764562701659539920904556821492678977683390680335495170896608679555039208497846812563568492750554848694200306061321514860690419509193805858942207008106495317391864811781985012484651340285093886960129799037382732968223373119221994858134105451935625178064693457701862364513955940119346794276178083765800195657020315582627198135203937854487832163953637055391329108740310397032946957411864722175014498996594559328521342919739213222544068563661133540666235876031395016633652127347629293467246681569922384236200616751982768392722410095609560554419719932562183471774990667790801118949178668165599586312478268678796918369128390316193254926743190395707175263373011284506973420231692812540102745879529382113281357409389198551445138321718798259536824974261815176743360333279582713357725180738403653534026757287801504334920261281292007076973843548968792398020882479305638197873366667553666883176055528356335223839691468267792727492706787408704104293824889167993455817154229882219480196181183765582510104706888995945105477063578687409296798010002408244338234054744074629683800625608286696745162362357115664575341347198858541128338618667601485011629618078177489453336419383963334410919688318462875250295363756562611010516590654259307075850818497186762800139902717582855390092184698256370908623412893299551889954913748934143351001618002236930715111738092889994360425407269261848070065126366305734749929676846657196761273811032954424707357145967096457486746359413345412402701012622750237111066820269417694194679647114446150047538654716504506060845905111253753791811452472818617183849324727193033348187707460597430126290025617691861311080273312862201808717310085822282646279502998139981879496089784478381773472448380179698979273827328333135879323884722899409903999971581792623637781196958210425375403868048656510912151277133505911376400339561614981683867907286527694665502273406209124172372713881342950973311465587674517951935942627407619337826270652349353308504175996581983396924123067462522140520653363797401342802475607258044039704177357143378194329574264264414869300602261353228599840655010854097050263485006122480357687374139059086175622672226655819631998532976413470093620920195617293200858969600487017179123827764488571423562745241100800432702678178184161413811659281947974465084109420491200422426382788422086497177106970926775201624557210087200592031236468881015365758579724949103883407605585337961463521795873111259818526475820838913335226198062908576563641147586782963563483931303001005215110579152057696620305813630759111807472377523611122053738031655694728642311848155923482440518577837912778359359578103340577639771448631280706724877539378567010222795748731076079927300460452305460995504677442963018863010487690449864028420159929748010523799290903256357750918621878410960105078355256243113079692613152835634370199592257320315820246233059872302668583404701643703242999770991466501963193476234463341133580822905455038594639874821494376098293524570849567742508973788771085283197530429611643772525356250826808140559986403037569363541700349108170495106011571072599683535986137215932713008679678707693608221340192226459827657834648041565303583683462298968801242470949010674198334129113881931931451638365059504435466847108230538462083913111009475161909667285329472357720123144446713674606741035348091707690065718177973452074897986008507877872233823874325443194695461904685258777072249293937785274836478960594912046865281573162146076004953191460623830391886635291699572591980193629401018756422049092050991549567545160936325013532557271684174152091175240323275502086523469553230063495209197209827986180682560918704257858421230660566293829089260465182393224519016287092629005958114282842639763078099365577934191408889855569139708639901514205950719244587555109768934712541163173339896523648829028135941145541235986113083404570594639355236912568900023113667423840778170565204965518121091790580775824285903618748309609184509986415516797786112545909024875256181195877303680375605642409557935386170819737486163252450356562676465279949989157759992655240236616839511266199887410181018723805805145472723549812198681661477882143212984923704365597160572492001825896702157027191972117102280597840041442414946149219842063120491923575050782615964127325657135319904483551500938564106222969891449193248173547385525013079321223583423534765375907944085550334801195566524860247094538452124077205032602310039841682130738205133562071232453579476122439696705471621146095993227027416706473774490840345383081453264400764268907917662860078298634374727799349199362948736639945647860731052619099937919116313972441200479538920289725016686497558173895213257170282760976561255492809343206742176093606992041307534011850230465005674007939878858453555007284504541015482285414262626091405582357009273185165439097634474476084663529196121843749645811483395181094500623826623295009812396168639814796469250620400587481290516748276250798960870261816095785019169182295202530621676712928215228211653322298273294711319161348037640197608965235326309493154358309566584674615302710855196804228069633441825992172363215001521963490732589144127462857441217255575867323530534702301918529207958136677371862568425093038166030349763949286380231128469435652101158825565999579089066224486408570837900760906635717621278269993848430143720239296562508484853336634197940071865538022774647895671197610968594188437487589798564523291032560842801494089177189066441321070976698338674326670053443714984182412690260581445517099194680011450282490019946388472762234783094794012322704373874554803931656903667540455666651663664079338558197995927063031792707502486520474783267704114266257932996554157947064237788570527180032114842908453100691470775531703513474156546148465466877534771072027768621698705265223889925939946192842279506362674493168663191136967064884300963983412171958876270449000569576363483427514121258862088093681533205190272335234335111343567420955990041285929690619158262513647882802129860011387226385513393106816317970961911166988040765002879986857771224533959879438157753887097403954657183142649172488694790271377823473891989236954553943112465517161129460709296650687755374432407158987627884599612400676399115650531575165416116158912508494006425568533208548486545588565899283015238661760256447735230971954270082567987832166428275509837677332501510349206624573152082249529728855221835892503747396700149322642578715664371025693250938582222435093727170336081792358438694560424387404292354014915510602035354599382998993209649927695333282041703146438817619804777610462269218226361429648491316041139367141048289767748346950906021418419886091416469092367141573672088343750172214522277984918296365650957259466601773557312662999843667646777637664941162968378606109377899903127451379159250870690808912348599895427984074939609299057133104715880570432725059710489761349935840658093501590909234910085373129917366028787707449614338903255353878466511858866985578424172724591620088487386355254788272745744160192557213649592011923732789250580258072792922323170388429511295446084513176259097025860777916135839305100702423296799480408220058409780769217246232543819721687083713428421200656168605830439815308907267283651219586078808667720329781825421200857718657328643686259997760377129451475662964115461297930812735312857799361227464757948411145136941954428705685251443947925392816534852096755876455798845924733037717710381000223976915006221653449210124946427714014364777616889262025350888822944659564773563576383174902500825314915262102643607607580941602199631276199054083461010017884665848065856676587616641057203151959081639663465508472105349270555578617373531805914288878741253606484154355829954217600134056785289516767393844590577072450673253922102028999547893980776310754104313374810198456547420555682171981653346479415699728147231088938960090488219132971125502928502786927675584926117116891498775375792787984391767945055301894527379525009548176642665149152177721044645277113733283397463969452519268934149011659447195235376556030867468149252706011715731856809555485227369243587395699157554349989784440442429233590925417476117218019057678716650677519490284639941344699283814335482050260603288659077195521238095493319176846224057813940890594927033363479999177242220046818552541297519148025123651224461082683266282187548589774170904539096525704726807373649614731110033530820546176376846926949736918980640914519652368278432219651180979874605127790916901607258419218696669480412767743230056292061188240277841882338641956345168692372300209553778772653121554336312285580819028668614207084793415921088139945962752291512044478391955997339870313974656232445059724305407990182386871100257059729473392481746893216445893471900640416805398476831309277901508091553438865566389167903950406721779911483085043892120908579707101167269209455247684691881329381267558789460097944554086661086360787850644975382283458946795970349497780773404623931009384530750675402489841993447267074972584714065354998131185714437817221004796904871530484132219046120262854040675423080631836646426194641916201836893281750551707444275165339452378241395691059779412822356071978466758868745120799797975277444084217446139320196715074025376293585119595103950492471409097816827420326737852126999097193051915152547176404030063460569833952778797068390029612927994496727116111297599505082337796103693590306556760527062381678695848691926401696889994039164130330196379174029991417315828639574255563870569272171380771452188144660014808619602467133171958602243765761836560479416929735401422027643480574453499143873891363021636676102494924527616661393932324145764881539259130808430921861075450767474737530765026950897815985976902069652607266690975022850332951053325036549860926537394447803613358526084647139327509453167289770428595475275247497374456073648571824863141000556035725279588763136276057268187526637895945885303327125045685614158934920251273232488911750354176317291726802844578691425414002679247401789912626429517601907244799197706028100150119502676129917457682817074389683200293904130621985046631390607069756935541885078643214056142918738562562954137560365905857755689396842845400819196688203846814656058540567639232691777650976947474825541277710079013837065329734873521819852002194459483544620599235624831236353397066724465973981483082491038666325776060813581372077685189870012791378006473343461474301320457933076758372937332581060359842088187464291979219990770436273820994738149607585073921824960748618238737392885400111728960669047084298568947620878488540164208777384129897876723797732536077973051094564644594534457708565375929364834145003406923950286429769891783716368851618843808892693371895691056825471522536155849909836296702660483981828216076603605085681131987311630234699965761235032317813163015187831117926380047516296067734332297720767053780458623514100330025107174453526108101480920657548095450304924345816214641976189521643987056665550672364453350123222982306820419331592418465318342632981428444594000697168260856712629485737793874301125499928320675347561956449330491695990425424204088240211485592863370445579638963334347086392723532917457015112123413066028021316520601503757539397419775213358271553750929352841513331183749693640941988206506350952927073503333819523885767966680441634576493390560471529622746765151481774254113022975158104099076933766577459538166644257107511597550789433560624343885253546987522176960636685512343796228756307659758265884513560470577406569072148962617754767311758791005457932459150990497455030202690840133246930956475638130754847789457823717892957154456747651094656236738990701565722190189663439821089644099310181442029284375696144815569521249252447450788064505696211958878866421996511983500831928791657220372042141072219287203536212605724839343155181341912494686324960898812459496617782764736124606046969440626122126490653178569043083864390703561869737637070929057411069612858144237822297648966466596843272249635919555441283792385589517535210545332173674366531996623410991966007929748160540688457071665165017803605377977900733829583037001630915517132926292940111471657132154252058862183496603004279587801166821291782707754302496315812529011048397965469439683124171418038026556890210558408388320296169665389410723050727804837648128624005369058982262922064274659302211156248671661320480550101024675423484170658667038304236160977691300800013710393781215573764262540470373886015381305192190849253099530204886905076282689097752245291454149187055443655460793780538211720589693464298859807608353911695128422429280105278306374741708672673892578370847912449589544350047524404751666935370853314597417114815146783858801389000117541751573553535360318408046055036240341938212573321791507972027679620238109858317356716635272251546224744163174433641703609116324479028395578446390885985183182055492506420233757594787339143904880586552913258789212290814114896190916295485708409412712493590169418482085429810270285589170820428913970505486060011581619978839122357157586712922023780521247857734323408930201389638944252016231061349377125919847284834753956856248651124256238220955420704737220896644677300496004715149544703199946180198683179531089995480703594659019632623009884760439510389488513241629383420472319114606732963749944817899382296435920421167758752062631792163982205390876461876552325933590874058495398091381994805054686438452754112233042925127556910592172606803599443164554325238874955367627444170413512926916998082010786291934805275699210332589804161294780976946513624769514175142421912509173082246168181500973186163283555227249255255686509236683144496402052878195279308679276083540982259862957328079577170864310252099979717534316276989797379970266847154984441035214967828522017858343049320374369244069809739730720426492211825832851029704289569749669345504843382544634553447757982037006936226781028746190617969261350816810118338071389193205724868442477818804322184391144786603534675500318208482261281554194988768546385277368126221705179150159254118668331140493752708241450373326563592498226872224339799609401474727942846864041299253328901387051704419780195503205656856629264803965746403097436922784586577763918727046797377805912837338478551407813911209917128823046997262649986906728229272565634481858560630970871517910820152901794237806108924485118810238897967789255715592019874482278814386871363305910020705986901874804674980166219179908203114531642620381443612437995240341870465351399341295829572935497267340888976191493015086391304804957654519746046870418255647800475816553580957610851145166215825812589799812181207108257964421868974418775606773872690178398299472643729554120413464029844097073103583050539079544653067980607596972454017505813324824504754368658332463638477999815065091580916664950124047263942975801738671946437559837555936803844794785564585986422148218992257752892317163295224569845486509514964433958153620867430457481935316649815246887164851829137411313838588209469490722395381506338392040197155231487394366972748335954441408146138406688173386812618605041947713493265819339983760001271234608331367892987407921083652569480605081377371122571885183019300759674802056265899338873283476280839538688867504312359395737765750690989393244604112667706744394573356484916085386331878616919731912124886872567038491722614984156212830765813965171955774389254831830982895132803189058269884900186394882645530529638662760488861785076122372482047631561084255097217435021555248078670048947934596712077902847759391519923741248580292461862941603086898969008555795417947475875047747917357388259964608979161060835149928660299756018569029379654081034930085107941033263167064675938949824545787852726542180705953649477643306697574493687659683620450766748171047330633119897315674024617548354473917957904699573866364432493226475810574478601572624847341014282931142208366128188404032597587849210124314783171129609612510921528458296113673523729714896811514689897878046084917233192480476298704019060332137132282388057366664656993048825724747251376841675618501396296718410969878095639803686916685846273820172820344122689026704510785269357181751335084445463217502347423320189021609781754161243534924908421030871528672459827157974001793894867278295148419635787581146160171245348146212611948191714255578652509107946919949973198345017053959866685900070634426848362244717194066579292113226132446624636807829953244942326906323497983906995399391470351506138913812242250212162034557069092116453931073886392901217074626672243463935685155196798105340225346203195497850438257519380399340181826309902451932655239015738194622951841451072583974700178100233746689825653112532110876031570434298726314312259418069892216944847807571360010913294239143477407537509155294203982340044806427479861231661085431180760995004722987952149559584409191633289924215705860104431263345598038052922727084412104516525149533330396892958158120116508344693548396426582525515652428432265485314952852128202668277466936217044450174847725699832818000920494106811673435604340176517033782562064097849363914917060206955307918925491661179507635799012697612939746302309117958941023672001066625102371584970440776715867637361357074379285760318122457938571505131701556983744884220280564930193281157840023996715236936597385385159705342898590555468690875064771991242844895522807855455866442755930911316465972012963593861674120326574513182428524161342013692835613699222760386915388346391076584823143102004926843779189334282384242691741338691005360521570960810353667391539341156726899823421936697800994320383537118093542196060052466214209167777717282217189741840528316628234178925059835665539856340921567325470701938131726671929490999902482700744310405905690652859905634434260959450278412528208690642593489581400102286378451538889930642517791674248845652628700932142450616569601517861662594454913232880116789920658908328576220487529718216017479852845889192071954571904222281736663540492230662039351310685512425260613196185598246825612406400155491176274342225264400328326269260062376716719119974831521417917201285006747848810802411338141110625315729139054646574289756319946040912381321292703223189816052732991545364157500810692479262961264450829566149872430493971954792019441975193388465783647293048066145666608067193222319232917057636654376652117920515295203031312809219951113330983578563822689792544511637864553537065973970364166716572181621442517268864532103765159602418322626105636550371761453380376260065415218958383912809298320496938334773129918029352311204021441955097455159593221463953608898103021954442632906724824365139439572089937167953249767160845583224679981151060514864425932925616277999037913063664949691603114747757199421997855198759465305009487195526040299050765137903297188580006927050309155014457634955393883910337323003383865347126807494380554970050323744039215081982734361599784986347652214098843448095150888083665628969125255323429062802936036564479259889495417456302355264578877188969149909466752477103203086342951453116871981609594549063332391378506389819224678512414901815599643329231795069874542783198385955382695776694016291409689905583876118535804621799970285941197774235801278058874950319352815911192313850085058029084477028366257242464357846734418625916187753357378257749487375755192947565239005533078862355785896129493202857493424759876505564990552935642522599329877705730487178185352812360661658201316604122795437924386602092476571718426648258716543605341436293632092311260832071399255871981158397827316027389966492494088883036955650816873083839503158677089548647020271790398668456044286298010575061483618458081985507201462570425267941083066788719031106342391288530233050656340848920387659699302403172918641771464130322762722471623861157467208049140682431744910094666696486688240582143680635937476153170118351590736838057876612242911027394974139107871777084459270488997968671651851610983556822544919274203462420540684358337977719737990755520166258343414555435172533926797999107503114606220787829562230707112677756146673876203753977159456556988970591119162275859327119774328473389507666014701113754364537453910073298152238845621744117272720043276193097383152852222531442688980413405496894021009735842179837513786161746306999127239085212930734307981631501052871028387080609650008084672400755913021502928140158611839792158319914581204846247659415648762467175985325337933295875771187043789530139014679774529329030167609610536748608123535634699463380374302929939327870557805164487051768439952395696697164926276613050427472501677422890639826514146712742574978240425220236691014653886666135416340344708524710636480485254690744065527345980080544831183362294385999974190946369933393123660986440651690513800798107061141197375506598854485513291379438251196770261231863723415897488659867128707673571645595041363087545720074969685621875539729866644752297797053347724540493867686910128857725568886660770452700800722805201272903242417281364540555325026816197369743204331260153640752098648852990330198145264428300956187525308511406774141439020749923006581898822216118930311897910452541646762933525127680663006379105219500501513721488210757885740953236498982693131489999946982530689667786904283899655100593070159520304245501094408016395536922724406289427006401924329053419632689252287755351115010482529579512902774273739169100294164666851386908871978995787682819781964360321982775081089979551879997165806330843502957845688843033192591264375056565944679036412579136242058592329948752058178146042703929071707253535229181948537607141509194371055266041718915878957830387607801690864833070786075991180113141154236143831047102540138655015608150796076968436499243317324388982939225808529247733854992992077149522175811587354535228087384851287515784601895702364163487860953413476100726569364098050134702736526126637505578672782710909537906843710144380974072389342411730191337524506295635655843540578877834814905890411707425051015139918473822906192128522402140845138683275282516130433811629413674402969937057219502337817060552525613512651144986376648033120055359463871630620416859727557579456620646470409149037331146716292934931178682464544206360895006780007487595055943467096444494486078194059617842130934273767386194202633452608034748636442556184810866812473785949230168779290428615315897018956718763811223317652834626644763176212055044821756726143798150601669843345615093569953221909320953209534396536806337942253433003172502709469481972284333002967802460011164722374044119975611906308538831305810726344516825130558695691806263029217955311311053787803177098248498356146509670368156462707557542652730557109135375850859722222946270201698209982761139226590574043078691885098316881298681379357774560525409951762049263449893456754829071389492674057393365612332187086056084164860902372365839606421966748671746046503324591491116955515608662452050321579160197538303325988060648485532124433219115532810643598538047684221014050486798833999715169123195906075883679838357551157524231663966063845245837847218020525715518218540088183025522019361521356152708898068478222689533435000803983230419127278916380910233841407150157626951967087526425912507236647747977956107147509935461473831317106212947791690993076863806790895335175397848880593152786094257808510667757392336714741618731901444047416152301156716257866573838960209644386973256569222999353287674883460051277435881569050638845977336597550102713538754026348657521475218062188082928180889753067469377048765134426761798022827823953470866850704832133107781582787312303502235650170319560317664947818244687743017326587613089350979379727340999529753512296929466147108279646038271787527454258980531284263692519035501444568666074120884551811789363213749685227821047357899032479068081400235390917941297293549083275036979738130482727487687419272792142573367367708336212282086803966090541848004280494036600354967274919793354681102431398642118598823795682585318726935879365241335459185574425478972922309430772507227097548208085734661933067070585101659563966991351408734280530631728101985155570133191814725834001800124497437653386238832841548399768177552530520178835905321227039964189923553425730431497917815461351494371881983555767271551887900337328609628041519170796779207594414922497943627687693001000581341481086893793162804465376080327520171194892088083563484280405873444958157895110932915850581896236631452575593077568892084575966552007543978943751638007094616589165200859376096718776875170142138798869164058939313990297445495265643948009688012409284972483774665825862769749432004619408890152992101213437825850598876608281130086549533386648841737850869066887243928004633564646700954656896406109914851939781254251225732418461310600547485108424097255336720473802416365359744421743712052329548930192155213991579755741832699885049215037628257559185034210033448359696609341536642674555155318546133714553120166918465838738036339148740601468964166951628490699313846540249563943681498436896478266278686204178861586788232509190136794722763572654832772088813907814984463994415501963868689389880198770588948459949474403407765610219461698281969278287505955703323912816767753206071738082818995914565967164004599639577757566710380674269577748690100871217104172621580389860368204436448534280270768049846737989549240922960070174148493241266108542716458202187873196394928885966513425709848487532587963119506659058144426045512963586915880634147373830915423691439563463786908748132033671435163616049086586002287060755954782774043135723194000848271004708320414432573085441670121627937279649533101583181995881231874007210408529722285221801364975224386798186055069920002072157669072867670291138710853357340195667399959840421979825533820931358090547458062000964748806334574043656886380486854258836281021429887285928648033633024252687590317818398064757525461614071405630605881556529221678399715153337921210221866040104139771883298648856925493318334282374831967342032226366432343399406928259070808173719081351828561510809641371751887578586936226454612555568996509657389437175346204135446360743669678310682502897890867634241315549624215571364844428810424207070309956505262837115079651891008638845241627687284499647414584102645599704744250997710529216645453249454552137806533245199943858044754387591990298359757593174429949239089822469126907772102891760626421773326830534581639140209798759818223491406769118033177591127070703038455024014447866141851065085096031205773664012975424958176646072648043499628743702511069779631641129639079953530030686481767785792498088669408018759277877616766399537247179173422181782820806391079106663668434891176694539098567926193460352272982307121461131838066887011357877029747191590032658498693702578799807490527654849553558917712327102241511046677376658888443974132555344228484229246041460591032812100892542726240753633440677564365748493908963178047127748658576593554893522899342532333015644884694800360371230788839102934190559033864747529419565059948251666840455472874311136528980220633890154705584430761381132872138475567098252411090581246555048659004011943076727398261467887555037665431921477021661770565416656129526921328275187106995855785228118355520433860990341254646374387126817929554456654761261791801865127253444709719135573411901421963544834561330521932695982306624840599358353926366900310825959626493313728046510115750486276927196419343879734141458560940890253275771538660230655528853034088789101889137675642282346019327196199951242630037499431729428140419962139338628157913169743169981238861823809718698795293560909147901895168366873874452156442099180712214355368975010370071157744290034732542466173615996369874715645527959396292379657994057439920776200372610532339017813189656895641894592979193320958299135321426493708410481831375259029663552092460399394220373299249843525518243788446679749106637462219079767576836202678072272067170376364592360433806014736426186697439166779043348604526150000093815828079174561296979620430868641222412808823687258701795816376481275933405491475563283353260652759278316865254649850999641622783326906151709549016956149254571641305026196852552946901933577191272367941499983916092293434047666323832497519541230746447179471541017036398995395434863343500257975955106553886425768116387799369345846047450807274720371015001891935117646474860397923013388716764191791172579332177421896328318805539469064647440844129384659877657535716704355414293027865813074640668307971226588231611607206443859913305187905624695962934000934548869240612574690164862896685905243449157264176509173183093887322620579173372172823427988684462263980653852973863573107965978576662276248657008699149653863012280850236811480759237115723386495191800934580311101354724162849442643912160095992964574722781306942068003588209546208631191448023833007805414407944497892148181719513167716237943646705761386393574554167838777746242195207792442000942264223956370735647399127569287445683182980533238752341956848498137067408938668858998833728107735599789897091837424762558179860027622510697663453560747411979726728290205239182342240358029533609448492580325920398193654846651212062037400370424499991696972209277750356498681395298650998777293415424154366985300121382785245883201251609470731689377212473868525461624950390331807274410772189117956634663040928739935951955840516958474868921875184448113191929320142061697409325985099040668852145780265530834737824230881998830247886829781244942297615486498624406695424303902928805751945035705281371343638130314225985453679190917637146230592406318979026830273215157772364363719395676886462398847034812200732425722926511548150447741019986064984512918226154974646572289175680119173398200241400954352443183892537407458275136480240096181701763885344616982516974988795934260680955866917355759429147508736355130869592146397884426839962194267506781357722016787006144304744845465710305178638358281339133001969938932609240121122802621867499854710678298041072864458355999807232427843258534520851988672873214939588945091847693694487575799766360524601755696573943259339584021519098268715065581673538728993461813207758397913498734658529730249980101757370398426761039209420229621012111462065763539938509285616768489605764815038678532211458559001645509834480934293020773688074429024721849552589064573212119627759058844191671225936202032208751697258319516204582904672372325263751738202623826268973955918098991742518387628889697471305426119571947362948780092066972997819827709324836015223005241819606799858060402554940535784975507290832199482160303730515725072406347368132736714189478774076112127506186991282540326459412805170567437807651721472941588808226087124556793945803055393682812129509341157768035181145345663583930969749880714763014807063030508213948235547649128258658177959381844074396833774023351018946825119645421000750554572248260093924151232690756668657788504429783819464943829889246320152363410823836399910941824202387425881176652028012491716772484216733937544402975579879775851153177466212146691132041332106535458710727085172764696340126138961293411810792185991191461069937557671059555561882136794461361728183761503646923003272426716609399450549011504059708385859640909056283611340415518414821791974614947752100076761086533687374223908419568465584344385618976212145535182818421492215362068213490325129882020505914545391416038051684410088506118157933785943777704306241239469442458328646260411251793679436469065100036121386451990924905860203070083425270423402082194666621807441570595830895380108360771726629653929886643093972447942026201252226191740791998442608770714976065556893698729199235950053153166253379368786222494877594617331655737962322864675205108317016172333221370337800699039285341661646782703931088416477066162477715598426968951048926930109970383406810053630196821556539300540641714068861418989721500645370799813700417433858649431251105456905597193103848057865779004760847895257088312943790173646307381577524710464937552122072977803297835982696172716518180267663474512714869747374706156830030790694967374192779687831180344542051246578049507309881775644701318562565242308429879991021172602940200960917415579190070568589881713171217019791746632281542368037255039717058455697061126312067843634516570686873821126091905687580956801261059475103173016564621268994362858292001465999047503528602582704894180033560023916800993552799263544220404122327504392981328520630131398264041711849406623463163248219051154999886913584161339343742259231027632707093526000195925264924552940581857978232421892339067280590391470334168426230609412340306516914276307423696819178953909895443900982748290556771078164582496317497349060999555725250012762478765639580939676655402522878442617777990167226249155979035734811936058672204743405752646461424819387186299995192794665248016627171274261818032827698103186171403436313909026277434058845148044606162062794049461599794123715155433077331968335612974150409445916253332820695432782435948095169506222209500406170910088458798377548489947809692598062333052697083271742201673677550985880970015457614338928316503610345876200392093216617918384951068317984689851917321237308201629865709135696552666451764827487654213137700545835696889076943275441160215210099040661738457593388550628900385481155516205782221911790426383809473452288549697901562826181531238804226428790332627505331976105186954910345780794984491972838550499395931617555387900983339241426420213841848467397004917605351429040355519009156212611187065079455448166328293049435227394463689464207324008656615575253306193728790236577781527526877824215223697715297041702371814818168666980398087826399925287044516873594721719404941739910309004339526257042104849923369260543731634770709526851473529631004002055733311205139796292595727208889816073569510532861854066477034471880482605693193498238621841001997528007345396730047687255812179864028371848404858184024651075409784436371054086938089876377769771851803171128401426307528070493911153159063819245815116684448445698766997946174202068298260528421229487351016808549960244831521229119829978765013671215007064600446941300514835624669072444589193301006755899699108071454670790057188417192403521146386154856771194671671685586296293027156060929556886513958734013102821463347150374502210706678128649460012355342135085147166539242038424160287929235331132245149357713662364225611230168199089820164104364680860957587940419536454900579708223898190500600220091431992467862202854176873433526458026745453554391345778555143042540937721134848339219172939909723491742700754372158660864850273802820135156368140344383704444269020607169687087096447781603405047062972062792965089567562910667860396135651779990953338301252504023907907663348141695661159626892340227356791490388536775466930163956071602242816160035361629545285466205639716285290576015054786649119337247562484459550438748380150817766606838736203476117371096818869657054493515987816968357533456449187832541870486188712761452822815288445131315739737075139737525892060359764255172893278119805991439950217824155496112362564784031397175646440253801277236477641539304344981230419408666995592795827659393701859630985598814929367503796081976438969945444994114103157596788888045710276569151614349979914503462555841627790085795331595348475719903869288556663108770740367120841136443228899634254090288445413973810790891030236198879177748879398372456462000638220502734840418816048220954499957281569104927354742194009590903090302018127436608809110860165660499659554520895436411567683570254033638267569165843000411309693835866061429331508711406908288744369101689596673453880881772220101634297913250462054500225728697133121675734989424622377034217800594762755591145085555752667502234286561386420638079961195910715547198518916805076251544007409959463817566164557058441193966391634613612246057038467971750805688263702668812657824954442437602960008647806997784827233377360809752577187621072316947906403303680520668708792287863816472832986255031181615399734270916350685427956310823484134002813637694445402357796653990154579432671893136674174871546662569932903097075935009882821610113086467491974688048682256129086271664275690808224662852622568293031126057995401823323148335221573370579772313469675041935240216659856831064178446125695594978160815691916329455468692500662895862543683961126946025969316984935512412467739623618468229059738368182328175082544001646245765957017533726917939851463365375048919464687324355490774709996973518945582656778896619758619838020455584519727158804348599687615769976668766462531519004474796695814524469172433188661422676282419278128450577059990927314759995286085946136077873349699162358344786945212739934621915280727761983545272875139447714437361801726805908662307266667585691141845931357156392636186125262119426659006967736434420988584333992735596588558804738053550497537825074966175819212201406782460978517364451356205917997215923485255437653773975396695185084383692009297413998945629697754364952816211477911568817122934187105857332795552629866263874946796304346585957493482727970247781065919204793344542124590800906360052463519699494769742721020169983961001168157035921155971017287233020816092273144540566816210600866340213100304279139528120914900072845836945802069410179680110083001439045476894457492211886267876071849154697110035147467643369227030352906485860464532858981696474682383211895464814023511830317418676019344078464076763777227296784000840403879455607861386267328033154427580620724261699115195380411188634804959413754066283506788448848373652239241408371562797609538064339565607653605194894693807200364890341210481397708136040980935101324846371012032845396305499692622913133241786321505400124599659696619384656378864121479940423599458668233827637911918836567345737436978986032233305732887816211896796438598382719852978821025008674957003035503765370701820908627066139867854093762132986507059935334316137258683842869056442321442825527061730767264842103324324393172110221092038323613713768073046821702890224102243926814576696696247360704257030515534445269892689654462337912983685482561518532005520977313159818962295883553844025576358378147602685017323493998683936133146627399095214657051571692896046941156984518908414588119390460707076426479375890452075274962479219146827803826755269992466366836638435509059734996180197655314032459093093309692037527446080328336836933253205611960276488062279132657589961634604418105703215516473516551534028654487203170560546977083946533574354763374812183686687091906882592617092319559933004932216697844361883872418435076283159454333044922715018729302482474057325016728862865088871967569067600015996066064862651677275783772119573861962379068415467746711608630954268044103066066771933569489973711546586511923554001438091118199398394329677443493490498649700545019649501575918879462830360860291024555301615923096183880201245136258903244728738682781721822301635943693749477976710228460604034553220241866227482034338549777296260635860884018559625595493278485020696532210377632824243794458389194047549699506100524154046976908615618165403961666472884545428928575659733052084303412607496205746738113790747655507155125007799915935014636350372250457820753466774598200681536807807602808532244450749144976625529690715188371733288316338781189369881937881597071548993224662489095993776966847527352604374145453184051293841320301534189719461200059509262976440330285811110227855948415698771545897048251977241784013281977891013378397225085905531934846041078120224197254733075277194704870322285733778078307145223082234029577104590314181124251631767476182795556675158239709739398453742790288285666225836391871101635254167970738651268269920363952361796172997150330708735829915753478583308702038901830967514033518969759490434839145980187191495593449585172960564854347907611996911397700408007211628980128524865841227288929480067302695835380301498436705194838757984189940071623270569962289121651693068121546019580124313303839395113399412536753949799631111759266355845305523959731139130790214125297331998991886491394121680167299610136358334241388149182645293102437490582111262266937030029323382822650719310791218670490504376619875187636320715994624124323904515862087032415903971864904638700266758222581273358358808164000469406824392744274723901720537475592959307903772104242870748036953355493955656248547113260935720053523754853144193291890030384165115354087804435999629070136289029553639088068453382759093753274196735011696505743616668635572037255268686897189949774884811786590956560277882037720091174848862228676109504706976146540378153085702599140086978195904535000192510111721856403103463589076346379563465337012007730539034642889085259335387441219921978567051328724984643042297032974241774443300016534674613937517856892282186067331115162170196825625059117023034204919653097293454404282987878144346468891502697483754608810277708965876687591508234563146077545589780995082984210777484937150572370250193985541817472090707090647363127856463097797980788959646161995361335276435938704082616270827834821270203563975442383407566033975861434969104475082449811057050273116542592612087163543756279588985026867921282295567956889763099900558358623142592185378140137564879263139307531125371328502649602336450837684252441049344506655143688270231854920590856312270724471061051402955524803011770865271222833864256124257692989535344103768072459299066931215855796368254359616819518050287372198171258236022070138759651442780333170024134544334118594987741772757525050891619008510958128509605959001916841501827141207866690391737570345621848483900451371401180617010870178008907275780633601731437569187646239836834902679308725056022231305196268198485966548925779100728223995806639428648181147195992949644538002751480379632219907912547493894611463952098348379390655881999013086487331552063293998555639449732840616391645369455925120858554003660745564659898412966260837794007118791135425180141942133528368977419022026317908293132724101163285108237122365705995193540432316331196934469848576833230178719698402452514226996350076911434955739505820005177591034475716524231716242136321929567841862953236701951524701850752445442697200053334278980611755509249919627893096846643063705080410027032134783651391943926838876358944977551613292416218939921692737550520068710040785354328380205462565280476385935875610356770391819684572339427075272718384827972376033633515525734860405378399287298123384744479139912337083109356424729794498979523814259707260219607641325857478455119360114819995064566666819726956360465057034758321920833164642723284879121613975298883403354874399210596241891155434657999703350144296371761238691362620562942826999561788924449344756358393918628498616431035875772282727444425897269092972650076355271093244202471305796188523324623836659761755933054271534116143493809751342594489825022040872747054533872418275859813597164254921878905939301516938592395182404542805044764315800638577436833888644386495895678638480467405307493880992968117790787799093313313981354596435429862718399579587072497621424213578740208372899472064471498928829698574253781976768967885059024008942764800490052741565032453262571557300333946201547154031319611619895359564912709165706454872657650529030335269187127822796458401380408008951373746100284129872245874394855366325428289048352451051953058987785295592655185350171702006914500267768042102577335361346268106128103142246370752716704679230746851037251265103005214916102295538439650974445718012162392540908389492615127606904883530235222071452443730935617239978236077603122896078715725594588894768110649016750312573604197434756164981815930188738095586587719634089662964039314520294902927498418012305415766130007782967829545887685536287088414522552037498398980461069902990142402955189050591227852030757347412226868224431046775733654601832209827713152953508731020777056880702856569967394532901904909910726269253955250565915807966735303570422761648476395461096755583684927355807008420708652290431269036729526626817808752816692683725648505446056686854587067697672843132182094262045226646088772000969924069917472062622869255060182519556567492452616219348837680353891444250388028851092476225884547060706797875000813924229054473138725928846054301124801420288005976473908433619955299860580217473790078919976537946633252945853571129152625832794654465426382276061204439281229729495254157182978130522261504949078839034704649596167323229647352206970833632573085678481953533695976299207928457067621200316992531143287658829935964396815041708807204922682115992764957475826807525724715364183941662897028842555971272354071372905380074949728889574661742201080644149086852541467977529177469660641285059426102180728222905511959408977540683117565165572550777402908174684028006702059793896605844067282070673393519262528145510766867104089941270833958453157295899973156450208640333461549001149253095657106969373995692519679605817219514499329726719823322069214589791402661276790486158598124667400368793833533180774048993323138207305832556637512354298896971753237645272300742638392211601824612043386056423919220934625767276086670728076421751262491354557020815138166036876849106592475914004122529206906962695699517317291724352660071639019456807701319789993871697589938143684335460581121062920732870550794095974204965637938118930678458191693177728471974534487993940885883621551791725744545796119077591753394847955174729038122936043550662985080803256316669438986567341086555671285329818508276050583014627344567081467980089085104881723806717547630940820620372692578993422910191601594009789369343882815988835573690419926961439111082272055847546006562683114319586328012930526582628251840431911527638660304914331407316726244801740303175388463380171572848443506012326632164788301119191590006853372951411878490792611232581788468858999733509627529543596603837038339228938613541298224787485682577610887067700765052752733693200212909115357944649507933823997668806967075246486666093978394050781196889104478131647449742222811145389452509570006445369572014123583576713561391139890898932561991748786857762495470073844015447678274334092799577958094108682444868491542587099374571739179522842257912421197729125270053022989760537113836495670967053648236801338390975708603165067685863317324422855673155479375503966358804151279604655033252038627368301983364697549028473039156032924122804770806223524920629318239401419981068104939333733224307024981542432415103442699721089210504080496206094054921221686180889550775760021162405476741581675257187744109417131434542253634281184263457496731893924491350460562033744465255591580298684768623381733166997020591673812733875178758862589468798400073345074186034666529839503867192249381077995066137376263797510339617479211277975744144876427408914338710348540654355439974714707673342003504136608410275303851091357142772349538677610140744540368577144682905173517273351376024897594787753340390039871613258246771367592885264122639832705778750706471606745560888060996244382714718462842210425929100029183801663444520912330518979895141298162327400268792419231548738155419732780334072681182476260219622347170773815987148098009323718190949793042995325050740989324073516194685993480093421145309959228618753970648119880639820330990565696227900515781032390713411605078436788468295535991678839642589510694294457290444764355515417768307856555294743138178646231055536917248910193637112272947141325766667259537661041514858708397162062254686901112428194798434913337527003803765250415695529224622513333125242470108671306174863641080109003531512951705630766735128999538077648308732916001619153678313203179702313227437534104005284210101028524259666332732989168906492232864812585141312898263961920510917050977898099883798834658708470792041513981997961730878724318477415748863700887815325421396300624845114365864405976142721049633609481363662052541491310568066424414519701952189320514372922410105580154586143779813540342128589185291262907983500480361762077705507579835870008151989207313758147941707421122985082925480371560218628914226984044760077038177719282775227258739645275653190498646798979565576927123659159401232401589293532173249920803312839037150085261614758241410372574884443189137113089844106103869127585055851099197988200466411095608754573576693793277825286146175646774647373711439272837009755305723048501546448285808721550057090138477278187723355057096190151418805934677401090320646888414116633914253702746262020704235856300465520655416101920014542034271108388668960719019587728234127006126696483534491819663367753213580243680732962992785815117270737914805228572692362310270676876321547584610694795829509010975034587762385048194404194534225645975985053500518403801214873420735328087222668056453502613335663633385523271761426500048576020776195698549317899776776641586285251682524426460997196299812577953971454581737133356720466207390435419614004773615259438622051028229331488804079632883474058233131408931250381365531133763162549815392125199094189698707768351645719476495680450063395218272312231247403925459378004709449883618907736391237712532911122003666474345615275668045994023904399221312587243866575263604201980796551447054852626983343569348032421623089066637783335395914577034299687233314525669873282151531664752959134999054449155606345540953233911829802925179906481579722064193672997348779936808309229866508005406030052423273566672000308061209965508281534682520186736792105406939293373518380386826885635221121923551153973955679864117789628561005717999902047237357988167017636751137055793093823408720481216681977339670799368512940889007545943105204368721925937087669312009040371019550823803585062684179587358866495521594202276831600654074114771849672015478336968410578440727965585791904787346476762711933918210092082347469219871094742100614307862640356726087934183887093497938484595718367555630735246203048511392494488246522843985884744157267290518110929252639696286077412082698294786722064862900416924191559651672624532319879004746545481723910736364508024318246057597128068051080383692384266565771076323673783314009550628969851116159046888018392829030469983926908629340240467172488579520240257198046374473755784163808075323982788009027920171561551062952727472327221261451885092184815999766362172979912672688568180024230694059078607057242368713518152045821390724310995905379682081760274788344996846500784559406464163618893745143387910992714127894839464287006600190565965434650188194029297462355729637908289142666493653267547435105547897535179290349738347252577080102409480937838770733863901700971933645915397401029586880443617378157116142616871206744386892181260631529891516299208404258872715100640240620553713983926393068132497313414546013893767879318139449777017965106005501467981079889572453346063838510399907574437588988830892465320042939239146777718641821764788024733437205186823705315078470542641869005669501760654858967385524538749433267479083397372666475158247996133696153920009301103159793478402417496039395489987564445557275066728967926050861598602789859960679643582845380289736431672146739196315129335810689651601840083631782430438166872696943922948205470822547317589030895677386085953485766680460111644220907818077945471223426214920769299689467756559247299356846650151570728743090866083809778308520606647151544371509617329159628853843200668457262245209211747357146858791147374473277866955893089209934677957730771851247090632538323164589955748542883134410165654180173418259861540918126513406983258712604577582790543912533435827319643182853322954117969705335503276053213354558879504906878315399586218003146958051473006997539438006640827688987986859856933976726369430458286593946942705138497279192416282670250421157928103932014145550545133304004352317500980878048865408054161937878081482766841107918027156127506422253411684701102527293032285919767932412509786676029115918361251855839945226359928904073917437951039086655272926003115185293594211524624572896078184999753018714379140492489813227150722828895053758383362331705082764566309887272597628282809104574653535562792655045358971141439336036467908418871422010692943554941264733291526381739707303065489074178502906944073868715210034108047601879735102587951479447722561316079732443653164607502318910526682726946819181505500127207228629580724090459821023756625146368927679901612808621727102062922680198824162112541040741836605926692895014741159778785931563141904108796574706500675952131618118929499294728515852604031402350600965552499967180742285838251318186763754342723446301217946191865396149636722865465756239605618009453693696906870231368812511282296314940597090902526224576450973244512463053747788938159482891714856306975429158708168884582403552869056966057268676273237440094219918503631249033062580240170090019273578573572335005392251926724621657656929483732529397413564200955079032223328418558219547496886363081472561522395601751114368851994303085840203984450180765395863133983617311323658560752649794241690024506491464094489623909328220813719252405477272512023976690518944491799467945843488532495764829838052958258672843005331345851562389358137236369404165604811703630021610181203654282218945995207937448698714071821898767242887568301464101084003367994599976874672681163033492408992754259024571298110352379181192357854704018218920844966449620177600951391788787709649467734472876719255346640530773602958114294367165912213378054540223754967347980818365209490595504892554960984577270507657071306792856113739574253639469904170096241133877152338765516924551110408473260503651971042964032147169212745074476021736665698842069571912182931284063124051447289957334248251448367560196528145485847009571665314503167168650705021487517367869807714752812188708908159335643473784326697237613893054893514934305062313842144581073102921435743349785344374997548283310828385727834566883536189878201039257320671000175188278510809973714180707626914744626932132115436987826322804765618132398846323609151530361021819428878492398200446965056049103668512625336714152091414090424612318222808763104485457012234156994743234603316816917435079664730600705656492803287674859953104485357638137604078023785811757595413644944697611040618981689199047079228410633864851123574148619206119277392170674153533045924410473593529474686060915496692651999301281201727099466283771114510984701163635176170749319665594223650955308935994281302446480380190317817714006118377107474900305481082917324735388505992994619170222377296105635620267855197717577107632772613029651459524693743795448273410793605339260247519245836255170928393036222113269061574937439659001509754143783280633808995604684536716468820611706145838939394630154167506489085756827421127098720529633199909612367728616112447345760704751449107898402847790739170364755985694009487814014694111470821407475559552678701732220251189583216356530913316509705089411088540685489140033013818406631389974711556202787959666056960309528440551813921065024221927066983785528533616895963015015373139026024134729313230109303419297705544048460620662438359599935842213388855557149737358956330284319566771469718478576620219289617408219961302888892530098573996730030138204710044698224670609032864797907831182866904800553683218936045221091123394488629231059234877474503472290357086131300885489832414458298019908996079567790052483711567038547278928709484789195231588731361599195747956120496182177925149190409193287143986412462417292281033498532817838956172077138887422387087950762701798038187263355336281871459670226760796173467435322707534655961751173256058052588601597333606124459089790328109103337927971566163216551008121305732748265904679620961142740818282941837516910627239440659519371694494766929988631643778533784101149946536281204507093010529269603847016593753150897661721761190801591196698659187641474026539423976178943074621477292611419225092175406807760789420886542043515040815873244170428764470209156517293960782372803201371463992818165231371086736083928958024442404961745204150145496077646323368315517621408395246454724539719431513085805727282484771626148759520176385034949337996169052919146391951578624318324812483661903410839363613401601131582073648922377246419962600589940183774787118749482159084298475537565632913408431021429725169773045128958612839227735802414412564963696577737447549346382648366033164833302079497729721051506204813416706381489476578688517450783809403651557793673853084195266279733815172421785919069734680084525846896307325256955911642284445778784397669764015386119354614923713305604038443334296093200472799639105119960406505055547945877583840036660058532993967618924089632552495424384368688258018534005924421252829562144222338318805194136050575636627025658304204345467422253628119682660378467313748490129482546859485179826558747254421964281895739361550991947046614672315657259167832378023100531714552031258139001966919995197963164114738530011274781688635334773246224632149523739589728599137058930210171714292487385595536556869018095341605467585479174977772659050866385148861089580293736260362024910892300852402503260690426442993478279980371421590314539614634810455075579370141889324710661649792882189377838974134357656291392332371069325508444010232454130457209607292945281151971454210773126232961239925316111082636329706665686007923532112765086484094674369899842056680471016131867744179195291554224952256954028070518260522488686417808947132829274743397225475770632910754395621908303737185011904223679954433347952706669762068206725773413568465991519959083764388175734705240121791273263510568900603152509002229022276746623816388172201070820688251665370787075375879649235455017142746986269909912064764491829121727070522332806600518937863677251133827772707363672544921775033463589262423183106528251742785881316345957159935432451317954633482843156442213346437585788377300674494890407889580699380393092322264737457029581809581974609415607675710003812156532449084512308754118318334378045271795963423391877806976934647177623138655334076072526501077828369469653013685910800825981433505711052525204624818491955192071757997471916402884042042587276779095436075127913360584601531294777868411239488206810055930418334893443745245785043720845496678889047763353379535588725689860206484232013515627892144509575060701870471970862318520345658727810081368585464910752916522397475578854805365025253994929210707759002187251010368687261363035892249280230227517105978354626690889709579408564497609758804747053402062985596243193875171598412518330042216413311602798556191674296883851351458355670851510866589869454329624169795586915471670106718217510497920030293323112918103658434001783819743239968140790987121785463687842524622353776376983767867861746680238091693187376175978920305479689521392349290639620070319678895087542386084734809177021835560875856418995165507154801371863084342673446024916201310617109774657126722953197617410859443237833813765775476414081838106060772473035678013792812358376733689191881291209568594331426120308117058093331407996953436810982227443934361991693948623066301225740017467893330697255424822516209627262170245239172911124959880706211843653144085522928222663233655135984683593128289631258562556956349465989957382014331333595104117666930887601191440966529707621340144103763620962956289119184478063554487833885511224022502163494455117279255742037700866237829371998300579820120415115430960013549832260235100442555064338710417148572683771720995756648548878780199442308618090452438922955466523043209125785411574979962218997285949711288388291636580432645155959165552638659215288625406911070090503890098207217596348597319842482164112702722203717586586305916470001758305448665249275283431353424442722485222791728170389137886153906421506865708927120859652804955444103201767350364214351476014889710267159139520920562619180424513961453516168307599548109682402975761197018055156253843981851804651329226645701576205279555063363136740236098559934463895344647881015752511067549166669768181387560034558088380525883977745619407199570325217444277078585428270523801830962870738897616231476978561599444596781312942484765424354878354153340564831482169236819955153102895963088064169023960763207255637900629638932039472868553263007362036670272387913032906512428782169537777163133553314599491848719667645600445540626988200632366772957246928939098081185621742213745668628455232144763463953963829562530906699381949185118989797536339175925108482931424633520074141229572013704485300058102503779609838618727686804030578714629243652352600577329518760714597913101955028538994892950031344550758088268253686934081991722535852872275408778336311733259454546179703347082053640092619184949743108486496881920370453122003553715768155111991305018665160691875663351258807239798664195142001532204160189977763292548578955661766742706962312285029371934736223234677163797598881986882982606854578592217037362612220997715865082665920961224190943760120680828580946937689440597475874745521907861900398339852998033715336540443042415300775771521623474399649823136000234828756349504503131597168598871987830290537914328630555303997173552304593642714714184317878163102204612627730572138533470415412225624753404657884902722273174393521175000970533123238844078204615608809536405337513239143695221978984134058490044371251095152628462403308890600741209539405449262044979007553092656086174265050950485796267367871844140951823980164160927864811339199554698960392293211691842647625217669564464621457749378765592754552229681299190560313094359547753449893439059310452769448412185053829180093033851400539528193426136644860927047525586136333969397365553835706777487474011217007597173952779808873437920437393255632445561116140323236152114590858837427355445040055156447836633037742764666766397689614007225516050926508985292124101425393137545795234749866882108457907734444738258652215959392437284865775679481506261092172285457690570117523517932317293503389750651032088001856248318966496378536823293665252755571877344148451713404036380293213456824785736920439311552547602399653855833487757708257131055140939323417068719693080864344739171854989159876112524378140290996982785515899127519888271490544965201871081276408558811591035353559080337713662467373436389915923866945041233835801582409909064013373659336269518284463620881888768933171630967323514679752434754597420644962170956281186474115509388578614878626229218044628774187939865130529978571584545874162687489033340547841149471017475490246018073974123560761807423562549299058084948702764661906877374563444180662642831810928099361605124024816340288947674410794834127383233895477365370408573314677149306976001118547882276931489569724111655133891598310222577115041606849812420485902492931360561913297838883906904660656161632246375757674783205334287333212997711682717703259912848026306003057609647160374090433526967517035210480393024048292666354098657036984953652511184863209682801331499087916420007063570827517176815779114906631633424973974032889706871784230592151041505126605135748550546833907637262968813079850290452991771253999893203350845250592231691913651225609554687160749446205951946570243406714744733420515547194985997145025791068251781020660834559302356417952553691692490136541705238746996293854493064625213947527327547795372399411306690735475765006814120569541545578690877055365214729417968540462219813674858937972930939674387853636384948151851776198343417347755345941579824278216821849987032482919063535577477491308119348817748837728766406007554163443949799125094465345367399693255730710629289951121978717896502027756614415495596792578397288001545223110818208228893934169879170993149623628432589250789783111284988073597925578054069763878236200423947297833829088856094071926679014934036689810083867546812613549892474370283646298299047641185258691334458384507588326856875413254897435881507121924862180299393868511363448351649502800436027677531659585184110858765094521183902988974980532562192330738502386318466686866754757639827864951304247402229113148754347122161823743028118458748982012473963674783886723454474121062357307003028933740822517298759880555376808830029973290937755184811049146255654774295967365910328447491441996687660612428519682740273142857699933173755897640350258036319749311456753683132433253939070901946784962765424458136429469938294040115137431962094535975497376850735014485596555989774265491345014627105373217300909355761633193431106489428072359733724626014388923591782634522043348871130042416570811773915876653232546747708010291693395815806195532178593346531209395852588719501484437874294147495365615818643929773803679569317578636168706161257764081657244070403143491295811249081150711027582993987658532147845759781424661104617362795633320078007806088632983420680679728117607379911621216838359927648319155686661365228960840406383744932304310146478510300801558664115303201663838536326218419415070824723009016643097634894323701772777825494061641217061708123212064239632030125608029152972097852620803977969762333307912990062085601931330661251485237432979251656725838124082960751295335454513924501902012652885374369224716252456288702969286366049827401171033050040559902997424467322004163397770406968855959624572976894330533864929776052694256532910203076084031035173912366853914770758360381458865022113793694505680930586836062427069998933249029244402864348565553679197151158031092050742534540938346706537995882942886445328130235263016279164673830836379304267842250982704458690786840027935766780215756626479810017188849060589678958481134777366022567511929429712619682973915778817929096050994234948727552566339771319051687457729776282580077668332830408804275888163843057860468025904765694265940822643666210406563317889667005937199919666402753650075918609426683558744044973160646548787063239047183457956142047810966977815806411984627620611225321851133841246971711487246695841266658547331456868151919281145376539096543469977102040392607125902825633101033191252430557241748376263489153720107131575988547386113553579519417676403552948753079287642933423433302103128097760544293973439240090008758766612138399972672566513442132026792290051899053139397305943153806862869612174483944642894135900167743173341440339437267647812398771583061440379294860876580211732781065968774829493744848176900443497612678149993330544121520005193853133389076759743189368253210732142562905989095266250388309261007927471557608715214764984579323958609637446863237875840659361362648099180365554273341130049144848064286811430726433010988807879471642531267156658090636104146454138380629716174103693531185042207505567887215949374353553622515068035902226800333095217324710311827796173648096869873637610746661274032926153133071417202136083778816999254206462608304006168444315958182796015048438187985930223280262794305149500256612357586106927692472842060765681634710006185154555988301737654776880670833701018306794196719968321335707392399363249301935324056353968316236144862930868790941619197941548658205040674601665055179535438249964745529040751259198345245031467237144999354875853818678673694739722503760827730111943657965711095233634949578663542344016583827391597135333758185957989577241734879004478305636723418941210622944317564422295083547609871237457460797697591256036623439029165910309634829999354815697340840905928523788068057166167105461187534339716844046140505019978393191041899801446681758100097712957466249005715752603258416907933015314456342567144565044856375651522034175522628296326557735901308802815766386654124372782906020271578202871279715296676261227452878906454971794737098298473596452816781648898872421919730883820802518828389941764538170081371764681489770736798910856166515149832601503930398338106739291767474328951033150089400466625799861282637745237613913662882890591441260671574459341252159032460900257640937804505419861822740332341481917850948971772961950006455664779326386357586711763634496078804477342517269342988912701942254875905816244648271947782921305628715361383075829171205564393299807318564787694028869131387203261297111406637732031414626731275840599923568902043091891002702333537849169410878112817092880414391942948401930166246177847490676193640150575361269819932109951586959552366896440844010500720030570447870863945495552767578972759077817649982192233700245300862515249061037022200767747366892631131795980540630286509682400201079560988755857315847526814303488201961762156829772509820928206798980795145909634206973406140345364027076958037142984420732328575757014811507706981053252975780058850663536721321209437714455277051693242082796680778626248177511370809943900357986517464085424472879466264177991878343056677693768772301287247578682027005492791672480973569261620607976149267912759945440974166268282653962762553510365123004508436870306977481839782935926457853197517350648409778293135521521393136703515779437815296239225092673592262699712352488471212272838710458459690114498242105681467900908268163994397321182190259586503038063923692867925426806168527407678787227389194411890968133217487410663122501217916181641829306483769298660023948132984787675368541623088367266227799170498522364600320703681436780355905092036344894401982401862959808163031939678014559033212160020129340573985063686122715627886885480500135099948567371371017485068431774951289691988992598606166783884370293140602360736732793058444801631514210303809081803376967020019733185039248971315039262608358123755930355195700517911826219464639976709370317982289947759746912154532665398254253380667735486209030687118956807642227832563435894924631531142538381739583833558098795189708473371123525104590586356190180779033544187006422443702456065931824904621427937812343495686530721327077832998805273066217508673528884711394458663626228151198081218261963643545011680049943583017165900064007052925555836844251973450882291787239397046362401070282001584775478644419746909954256716792776157935499865327046717368929046456635878876774515676167889921734125366866405376404438815309635759807105497691262699259763472010141966013321476095204239638130771211282630851108083547874470429573845384602012224393962029445360962991087926877542875891298402532084078814538083180266217432229479409227668817989098895058048866921040718851643341645211783847596540093192384067100749935652644322646416206159529728173686294406152066100980205998848286602121303808281706344770101318647566078188273314819486051465251681263869945062570152926412319869646480085932573516274875065710466488084869264087165216438310832278359428705801355938980457776344227840138364907663455957432386263582873851171488669253514328262311577369980759550202028151309527411859829373622471320511891436370997366763328511246339734091477339243885450513428780718288939186155067469382371792462453321473828768936734771123055895464532848441710087726660317479599777533657296848542628618744256078221030729333900304291943817890513616135136165008853897018073916419414864803192032865793634681484074883400994962913205189975318199273658727821278109249400768456244359206312257234795716714633159338102257815908937469395232109582743119025611452057736435550298806628757782895864890153303954956130999788104407229610858811677161049683868752576506242827746337321550370861770362389779448222183098133375045413337277726358604071371060578755422174610721033910521143324614307630673551148276043698969682663383435770229240132746587270015909599008394566756864416604741597279806280737536744555804412599529977162611097138109176898476704941226619561031392684623477381745694704584505391615502865824665608008191891623008252852296039054669123833443769398217587588907744566579284561152993912799799176796438587785922076902736130221684885637699307454452191511804522009853925375135345647643708619154733524086388154852156146861933318777981703068882218838313853609048787150654834251028174481575610625070924995151824826110063199859882877161198966109695632689679649469387551588296540081316942340125068576198133181041272918028209127164485660347212937496719623238864698310905307839925480551649285660676074602823732575991631436000771112275515507805203463633463871105181026888899096887233339844499066550914918827368255772371874992455066717731454490275420145656714843547393563123473143988147325216500825929930662449839897164659472394384066865880286298361042447165377719574554938550410418805241544392954420007193332877958778055924186098579783646839001424287640835486178390106443454438213203489302029605898921076815006061883759067613310782392929152816793586771896778006691697524233656557685738496327472883777993288595877970920330516955090552752961643637923427192193185959124436782038881388596533393100313800274924109641226604425207985737239769956629741724314950466636200535975271744087523593836471241243623287529719000614251341471380104510273519959013126739612448083487777028347708654984243085280641498387609819105985217342072898674293037834957671483952802507990115777510074139871847104280335955349731670965644586758826937016364114262196302125798010779446670669249007407351849236208760579033545906053493152966265084325493650650616006943211157631599579751467565191279210664243590831325618152425704871926710734883667506571765673874133463053546633945675854980555858564134391568124357513016137395848163200034608403226486235278097534876413868639614294084228067016145043670414421450850465052735170175610616793692532440590255581990730523848196684528371647230802638036626239441700751017347389772550057200126502310420717067762696320294707336588605450583030637795303917089762626725937673967026032926065318670218971741681924058943908486525274946749560068641539640102661465807034456790590101062039230745561141837508491808040587778747466628706709567874679753731260388329997240499110117110636987947430418777458431343835335027539260930841818990158756062348973937844301129613077611829931116364401452386696699355571954482390438588725351158220526635867838583324208344502952049508177447139297342098416510479842887314817437359805140466233179953521003414945383325192614750100947983915660882393124093147275186365432023529529625839261702058741477779303288259854895706696420314440267291836066260718068980952682055995837791395014346188625571535907714253725571827395874980831661806982148561361609933760930485703859710843497492412760149434451192237248822562170266614322211432188615739495285759713201046939288511078457982525277823170192607877478773658644660139232247029375983533242868298230557859391750956069479993803541086185070379513711802489392863079820040138108525125989866728761032803156861559303535056833472063418565615521299126162475498575574526921835479310967716501906173048030450187046344959271340037702012703192165352201092139259747122500411665126467596487061960981499017358354510708391167485563860459897985529089189726754884827366498650063989139012244453723277429333333104751165614474923217636771955266079286997801438280578779940341469499507168641510367438131720799668876913963171956006487692060087194208111003763671556288984147166353710852415991877042482127169057949582859836031439159788133347797323143738638336352783182817444541072423961835299394338341362488781247424820880783071059024624731912575045490756120763875239152966064776168238611693416873964004591331475960043831838775199840814798221380286908144797289845218253837078602829033921750775453013777518514366192239917339814190804553032354753842168781826772026621914169498701702384448143677746055497489387082416412042101827429334915240984843383255095120183392039976662986972084679815000959151416732180307210506895438110402680493512435863106539162128407740144465008047910881075176964643971108795927443130699491885073123739218589990338769068435043530656516000269862722575283692098255866030094953562438916535818563329307332344872779864877844474417864406148003536810446522216518277944093784773015246359166473895644721819342733593036681828946826262706596861852595453019749300926296881042099098014797373163416996903429791893260381402183096574676939361550225337052322465610753825723136088157781408102686379034535278685560329032711376628479153033732290869001611603255962575461931943876694300489129092671760643743710173075762954049746097679075625485907531648654743753104379290058194781496521234974366710823238152823072159154736191864908233933534057832965824229188075675523054349085036976061793504017233937788255171950860074330079458605418696413428377449304953138361877401905833873880209311399297423687852110765946173727070401271394392308164406390621082148005413815612888385257287301760383847356343709066839575165702552218329165324190607310638493435157867643929201326810192497044093163675602774055907882548662587660959971710715797968553195765864270740002184016544469385003837352214240295209154841274030554923390041515314308720872861013922466095716982177944113473565418190355771001524905148624022535543172273095941739074952384759075560111758405506578866720165108464358325615390462077374586868573264669084249336017811415304698344816644878279752846886644208665376432587285995361638450875396373015230719001443668927195763625486563382775450273624893121933858805909767273303795738551794988608606750066505436567387941904554485997836944165460494274443185771684774804709298220981641127325772008045121892283024523007381221784136426610322156814639701844831100896860834277657294118483286152314894156681641542803308251355057532250131633285778877480753041673427868021476998523291993315310150541822576445042208174283448955398400484773287543783210478079847841494048440054856229250014123878048330692059954654813214244476245804140869446065936046707693144724695436084470081941336808841148088480002407310801599512874146327402745194289795789188118675653216492536353087582037799974563704776562074549223170483355466112672497663399279568681028312681120238155271301129000835681408266467623868308943783460339802201800590211465702141714395827038578274833967084401396506956755540895854761212655263103703281161822621234007758159430880260332316230315891509413512747765266634884365017572225379452053930489908965124148953833098341276715542626765021417310276705223016566326393942684708198723864372823206059425511562028492557835298864012733838514029707696960194838998767109691044515511296978728886014761749281650838194564175721872003437177215498701565456799387101944769697291175099011861683961282274253351088208415253244489329492342082787508083270867827553919822581927937927296430317892192361350026543229259956395117395134675374186564502959213015935091180634759217803215488432381013940941464153135367674135695560043387712906910539760364289790280925353085251346600372562701308671059366380849107256153531375161720654909604986835072978790771761228620636601093809602650058970530820511495918423600381940195681555649422722070035692939323693871228885947252911674591031902189494894037350194655916987422724571999304549351512199629492007895672875519169197767578528876288947776976776742741809578532607287976609268852413460704745870066094531432498031459526249152533743110593584923991272088126048591905968294056248398210686533735244758708306896388589134669733575403214851397062124918862452456740489820214159933445263229543053047258368066882856171318769439271679376228076914004237424567072389020535444810056726656039283882762638390426885435402751361460418584649835404098032955428197730230162544474992213397696289767222865844545683152816463208053063393133275026136457153100525622290063575120705874254108447278992346492527807532346896626729247989080298210353600437323351290213023772021143777065894864192841807999765530131211191720083401429030662295769013862007390044165807198058912141283179917238350614836712793310440316345377520621802453519966182781650356593375535983440045365145264653639950846628758255997876893848969680712375504179418092596846505824239416990927094733603238348170167090914266729662805629009346118730167465125121164950057217820059688944639994554978042897274321801083498576896693093155776026785754942225144472608077538758120018395280370183036746824080765214858885887120848452037477220209434903658277142892396874314446701374866050163286706479942848951023284622715657326996599074210392149256327361434350736901438037335071338263150505556719680170001386344366980102377434368444446098552128421844079241056112454161583220996386244220857886607366459168219428063804840031317652153566715117328847137957870727949508036299059106603467420565994756194869063371883162277548261995443496674118196150597674921284209015236960414259934022209831699133192816773037211410332727363930882420865053124086079913738229566623773424256734934901693194669053742196045837290126071480112283735262202083222147364112330173170285101091463507233130732674808230927006881341713863490697628593674857367611595129655772680963380679139182891880170102131199712705694765039303985896546708532210558900480001652047820548418606324611748219498228394957703596372184340101920389284675192761506808762384456502030867967368205645426657573070028157663090330221373558422383255260116271182211876885977482993283739320699547668684119553314504404652363515335109090784569525801610572721356720174638811171065130293386931302992349241679320173391653776839205938268033022785676020564078826535647688011699256957065733546675486075935695133875975874926826768518478073819790346708388826433001845925612760427465735010287342707644402348965216144307019744502546437651232644798658858309220938274509366647932517335549577168381693369271938854792069141311567495660033508995788369018513043512256194926273783197037382860405387217005952135347112081500363871951054060488019664482208285414368354511198694941474395889038356570938660637668072224080351204183488056627293399079431642388570770908241623062599836252255355851992959812152232802276522237030712353078415615219712051922507849244852087050521564764469268330547453480105538461133853974785004847035053053667428684659324780552668534420737124847620370923267845331051198719969317651559881841320174492323049078406448139808031403273750044839753640447287129497960729684212964144276086328670026142607603593572990094756932131777481169393400234178308666416744397907200126986940968494706284317436723272049834196411363750233991778897544913018318792276764221204913051348120739723241431433864863726434979669836998869246967351200280584056875996440911415961137812027922302689332557024883505572211988385608650492030150459279377972401337614813618704190111150853892451064557995717274262999120755284484058486902616270853288681199243019337966710497590240889358442439917831086735013647383026728290272827244154952097403226328137925666223848245361579004246119433165308707314457028284225255428044364262627920585578794335745383446048393278393658932386414851179185244951226441005001769838114356290924860023294813128135125856996523994186426209964373354917898423677810879762112990383228931545179696795567465536007413861558388123311187691451736995038387041423593277480888853446153831437061101840975328160045056113761699590003051689971216018834623406373571546168918956075685310278240554155139345767644010101613529766150956978977045887924783598827956794375428610569673311918439746834842582346869666838087244312580132151919888323560702942760647057561474645750792348245553290225629787858216765113227827481358727417279707989648112548882863598746807107864738019269354628521767270621799048721225497361725610611253646191256068187243007213521158468393097967792117904295507895010866868900284357000853294261112918162446266380101069287966227545631809319481355198668517850696700948827461539567049874038137198243568606451265186053151491371178467276391221341358816740030774605108558018807943782442617092953510168762236727036933822205051754657465149556996711716568741678583952728923998324813302238962056154555205541023173656660424697807096597188787120754710214575062571267920487336606895256460046776799897113488756828773098726720078820903988819319315850999832941534819821650558883568340864962886522471048211646577358859310833778182427778290398248791880288541380491083507512746186286447155001558454993860392632990222667549899795793973402069182779540948342596953508611474243292590056747528353923934201378077159246918203097737160890505007511738651270762976557363115071792305461539787558528236637969012236506725730293861289269615747804984178151470744312957854306656844549752086016691241992922514803866747203946848942236299686890733746342934698572903469060319653210149847461182952304418877342149685746072586530153396412204580447496548510496733617440337926030488900523457725840462166294766376314704428628579645686266230286622230590186487263290166148128500371530737971078833479607961441808151512141243486638445548734975716780542563294471458196932527002174241179122227930593817025723854559681655244411245607571006949261460913992763819551659895336024341472065591106253429804286179550427154904755774282970883495545207657922204333645967922559786551024602680955074184021476828210253286598478812504176640334285063643592135775213809354479805516701121305479571058343596658548030571625345646839014236969700875847820203709238060067506942189706973756715835676886557753246292094112966187743838635112605503003391201668962304599362613937057004045817730758458986659532480568922411343740430441790472573615208533150595878837553669317500402379308731098943431995202604400618323460759355268824272333167887397408019578755125313895686169761819443090951921002626996472246172746142489442396070428557774133999391677018704677288382931435242083147557371973870673563018869583511858239034626002141498644948502617800327631627975551722030698610274801247208422021292959848458037880469809166700174055000243034441793123999526223361177460082650300362468115714548002365615144470796408299625754275273387805711481832154658784117044710777540439536676862417518604058587883708539259791723075528405730810119351122122238185402549103124693723813318130112411882963733252687847555194545731996360097907356694145313203176995331924738222365592100629325247129022109477181763335272365171165128713257992434235124437191862008653516841430790562128243577789171156126654478132040553354833533543865283340054874539179587906123174994782132380278275532193255295786819179296952232755924079513158068326558183404437933488929512314858587936465857171474390046036584911229533545166765173003745155880473371483351845683028767248202391862836206492624785858429028052413914217341581619856227765381701889909549328423499661227150516304196115026687594422601151657675294181259952535731717213819568469093859721872003526214667123300608567892962626048965644706833313134488945247900693357924501048480304110837035561278931422487482286812130918584561576996773200886841079730528614308685447031463395810671537166633185003585254981029004181795522429985699085692670529560919159682775768587177033572038296368839516931534050575817141274389405357798154755749615552883370555792135265835685355815965287172291762565153597197233383074692591283338301967385213175297345671375259809479505358927785801741044201684946342201711555130924444941150021689029215545585431548684247472713072594583346837965051308973047910895300489062116370273557878444593813256015149793868110778875368905585612478640621167773874278994429169699562518027419077378620294165670673847141277336044142398728085631088420975588312095512182623222770462963225725204457861091767675144644468497936170006606809297000406970757171773577583254752948027846474058434491909251621004013547104537672503077619898937568951723183629575472839185827186504727842650629662052369889055738125454140490238947642720308800923100289277819128410537494928015372521477730854142304104647152923073498034096079409063076571583162171688331204818240709357414551796840131512407049159330188528308086440131688223332149755063157909292338286969946194588258345005595894396915368287320503699246911952600449530747743490280402987043514576039808393184644057038430970648249818658729028332381276323676354860167536743786407983338418322864169866249143548200537934415477688022070139659179735006017694793867886270065886540426328623048713503057402116255902091485292789421128630501558941599965054976370469190156079454219134729408080862768468591911907043094521626381221344342826103719271497341232541838686122892218424945786508699840546345162418833854784568896405919124560618260252753509917540643388301084960477520021905643808151676475401194522969555502508704602350563601114848782632131923263879209702260229299071038389081483705009465967953951703253708818206085873447828261823538824881196046736527655442136325359948457524995837077244390093801911553877265842757318600866068461609480799293561130359586989946329714612479447621062177531186172064229404416742333239047815875048729852833772565701696896983320018604754540654215069709081002733279637975839515651723869934644383513720573119611301426011932860255372140778234629110983862495006282455312322449188732384069188094727158017502795056331038106988347484624109001379480148990572769146687395117537967854682124725802027584217724543898957903188164438360370859544911573610637011391849802036908489364573414524874526654377643642603514976259395700211513701270207011899295840322669015182703058460281560990525157562849324830582315975772884119600108062647250003495966689381718140255182241059970132741662844010920117183678292813520834392814565582870717519822039180076189217661889265986187739410017182435123560030291272538744105687485317864343789821648060940127356402336635348749567125031301335959901252722708442970397965124894007874531042395077199595741479407781769363841110920051429426450787117756607484609406251684198108750613169807073700432235158535100591564442969230083572098429029951500650780853744547640873759504490564414512325792494424984631562766361048139368554121257761484253249036674117162090462692448320450514754081890977856541500216659888450675746030086930123379913613538281913892936949902241100886663120725441269360892642418739509270378753226777960933462147994659534797697734365843125786738169011803973986209090157112102864440062644444191907662052974297261914239928774447403119026750129053114433207984228601621039628716401598435530862772716530914832306024253294565502449558243489618989126225398824722388748943439312837468962534046586194469443060765823930874961576000741376500588527397213683175064115437825913625079333514477428004459841240347175189481047418098275327436659741305439994800597227855977578918111613106120776727292064931435978753262775056902716434472338232591459942231941868427807746841880116617275684692331283040538509692893683878330926078421716776882121342195725481021874597210483010331891987538256900150996131815562719422094044681522785543001464851077709116884631434511209464569296158522579609153552203261539183349267766941197342228982238665168379782142571432702778603749988612009521653335100135512392348317476152324044561200796807416228583589198446139160560023177287442458132684282017134552124577401197309648531987091329738533455681753519878984461279118332237318551023797295450055687532606338790376407038676122018537914979449424324336480759119181643234704093883305169089640052377561394913369248846674395321842263105709327600339120714729424085817653884384170669414427921885257181279441143871628298374837957214656819685115762027957664289723838291349921921896062820488292504424191581507424184680675584269628490888271891544783030713250621929168124827919566795924513066158482668074395635817532768061451970805447175334967037473055479452493449190282908607650494346819271746571357823076427058751602283442650075238765163814020507985085730381249601768628185170479060549087220770063476178398091316485476066476032895288695677016804348799066666149345181351992867065672301640982577060790877359554808716685743337115263204421502301772674909711538201799445914638330823781094716899414288736730937767392301435441929890751829513747903277630391353886968086933165140124830565065276802486757539312632959980699738202038005251101555490800614151694333659482008319867562135916263874327820569129464365118494195292110733457247957023301198353233600212192853919273793219774955956259440769828293470386715330167550084690461483952959022283339628930187393712715317062970659926654381928226352799447053236843279133901132166924666860662081422679401939987858786817698491538734447674222391619235217416728688573526808169923846738946338478634414469504795133773987927130368587998571907497777689490790818542976515605836142048284085152081920363156894161575213148281155937284669918064121694802653178192716187089660985106314141602545180243826174371632126549730088286783622815500814232770272669004231956181989737477847002162520635349384824436252500901178812826919631597856814081869457376269591594895836698951994091000602278645564392331171168460225511208386659347619807957958161068636689340684256085465872059387116411665618197386768953117663176763881194593172798829115136645497332255120083441674609513358366981881266457508725294486874052821001559516288666256370540257825775220652090850004784290460928690177602089900775097361916578923487634186898831865017833197270302466267917219372584811906421765888928735574946345098178546462160134315142388394988370000352675456397483682824719473600006925898354948481002506582225763541845764539306850948722132917981149729767130569566443081075564252730437500856050407630051646961374440337636877459582830569302724395794154920833636928851324585473728513118538213045606480875111374128708842891469346817689890577366675123368946645581224115302609729976541072407038216863195993867815161136877565024717730823659155857123514397073490752152534838507677908313808890379806277516687636308789286458545789646836286562584246464007058009584398271643499562352326741050456913449065215812164128150431194317071565935661502469989113256620036343490961034719661657122269012360180233799344159758574651691697898570737078966154852159776748382639129309969116412938943274691988194148358061867927463427248012622008347959385370673987592689381915889264781313576519294207770752911157110579439425080141974596106127187849452332174876960703458584527754636895543361875865790877736653852853801612153934057746156538508252049646266692088128192118532839034660992551398988035004945993549342790047337116809354504433278262734921475709161904694579858944141430566976569262920895728609899170228564717738882114049272324540511772033668363430970071358258406921946859927843239511584890275685720050017801792383427538310118078068314691932821511425902544351738294937173847599612220739837893107408955869791003070733151327678401713417718232976859310336865822114459136350265387418989035667987933487887142984783682411678640216235888840801142934756465623808675677033307930665464614678203937392967626970999334083083231907123932310201194406754057633359856288610416453569769829193385221338200228318425204917250710820978930819383455699901250312477151603867625694621877280281646373182569337929726760771195675439793752612362911815359716423848770776723851849645677859718547891693488831969553047550999183444131640658893583442603667405164169135223912406881894587906028272014888746083844981321214369039136888116996070388701816237671130886786967490455127899896587469367626128378509302460007083840986862726027767627193418539242538240270772574187198962352910531602541781149421727572164594482606770171892094411773005361889031645936248519009074691263895669058476703845472629312658549882752428234890513375251722060670104751435572566256528397390107242633057847996938505641968047166386027427396703665580770435109102668906404371774262019171204127891728271474443982666050902976786718585656640523771500846895658349408111572712508033425802703746159256019796714584291436326833130966093721159313555390682233305953097220077782435152798796671767515652481548453603535630512413949383916559096457209207724220748647089163657332083973024163934560475745179568753590100132256928115666917277193653862053782408136420464976962080957100735743408153356310158274303638340085042128191059162152287760433091508439325895713972604212341814628640671183565744369404832462792124757797385596288093721853906031841049017446804402853630158615032485131393166727443952937075215201527536547551469769632267442319010375470189258412085886749845118089857088867143332571330824919100748651261883605327305284204220180653298407262838518364892244155762299032414610732568914462441165784260791739268089720244047456819852250159109649789273743813783444692067042655239944633173556569654162698824437328681974374773233009799097619959863495762223337792996404214423535842744658671225308067999474659560938763231053339652394631969645089880506123469949210781848095510792455927997226644739088888385738165409477986987340206784702163582132654635321845833693584949456804536473514771054027042938930717225866091403936949189495261880999330920307464734360310408727238549257146650081573890399818112144002569360408213734707581847686775501174864045813213429871690471346719895574377500388222130165793075204683752140123669882721825702093003909314899100295108315142200507510281159906582348666144972210531678839571766016887086271477784205922877266551027576147656038780285737856135296500865632640710620361829839087578968489561908022929292846573707562338319113564253014254167115773583042859079593017863166298264482449618760118963743248230813522025118870093812022050682964557281903636888239919920084509764038302223888504237099136533188247649325761991607762883185770979495346490459275530096218427507290513994713539009261863510110431684772666618946210310296715882371821093481417386927867189947523443446597831518480085277628325897332797028585244677305082560935977540307415385991926987191487186623716422215876102126596996850895100008891624402832201117710266101463678132108829446113899356083820568682287180703145337717491992967610027627151037522299477030852977182385588384607445959081305245208854433571136000411543890203410705186617141967522755804155076167599535516566000515650030828844477761898768439734852852309367350705548812400739732206338227054373357829727535504061039228809302676852322340051689764452969881705449539036093996556429457530226717787248168422602727960339753523958267836062827485212844395313253744976528354459829012192549962828152430766988585476891423971587789717583139958457901786685959817576333566211949162109951977879660434789563601974918489752928934048570782018158486303724785482315708562962731941461161889408111213500153472200652136864628913583480434104550944174511547177698283697624658167038215147536679628431482303699046844737417071635116504911314112613699303088695409045326360877465265251790753389391471076429048133211775124516091960206573376827401391386308833674752875003006337650432121837705121788683760895254521569672740874146887221470610460068946535344924551003147139717810715229033751161544080148559083739116016706089695945999584441614985788886563373688228573651522469886081113097576847043823925612869961339941081932837483321632655132969476657553911044263898347631632576971552534559814232079064398411341210425830401960617168588873086646750923829990343757374626228330744376037445690561356877612036080982369067977005013132771388547766612522516439708897149607956434871551818679064728996189245349254190832277466150947905200812451252076023080649782510900841827110967551309414858365799817574316610003672629366894084826995800535371201504746319832742401727431347635491901184093514153428707897370606460944144364801002978783876494625008803762205999171763250133864443299769932487851421992772926942517070253811419564964003443640505726326827700777222765267754254674592232373235838331360696001800160559225805241443141720682882429206376595014502583327919613890966832826709018834609160296414027831184651696476248736524061780308318209234702162368766127567836073855120607551249101615443206342345445503570445452016959577117799277816830624734418561379939711987445616459203294128444722427230193373586839093210799137657236851990545616088717669846516785120083804055134431724362700368957066925903407765877363376742853786162752488602310182750912936529036384440722397139479783944119622349985724284639143190597656655730431226542397495653284319035813807805177742366999647132932997649409855173300927385786648851908236608233190990911389546395295118172050386660949522669350195910540124938396762961055885456627336080270655905674185224252051291896539554395628853281303585518850253877523531698117203953381453903794580695515316528453525504869518757705854027114921297937729775020576876337379019278919727933538985491981303117588392790577300901445806248777634616765108993934846693172775876954658767987032708409601967559711708678030443317817254578106018788588261027506987924910094903594744774993078687985671369621144333014793635645533424721194443306841460513715334900087357619748588237012361229790651127363305819907138867725568921973477311360830619102645370675821936252773146102888223462822378015864237636862614684135453775966594673146965832787718848844789619807741293806758016086760754890199479153685918744732434800593975092999403014000687768050171175040672989641390114201342260457650037405153932610745247542005676106077827775402316242340120289773966696703882372290315105981959326330287626207593956841582859278172395968934526378343731962180170564549134627140560174519838740102312241688430435837906012838582931553350947300986313947983129144409902389023773828150203335014152666795489650616750489093135618806803559102505784420793580094326370008439812476387146338432027996825524931720691604810826167609226546491687786813713267289264329650712121291525421143014428794964606202989990833185372869086095135738019756989845498558982178086372309238916518754374103845535009435587441700685242082154779429925442733929649569721842637837883629618082471416510728152653873681490056853509390862739003274140766007234570553164897291369535305962652069875333912762698424863983581251876869166234418665660926159206213424808591911758805484248938845904179716213151505630073500318510075456118344326654110314732932821038003539139541903819499578483200856311856785224213016547640273073577351586999424230101805357036246662461094660712906520293720513371615308784120900359989662345125745618137026535041844123540940249447996059340022564106536967949032126650293105770335483616875786882317453180836156153252647833063031829224552162009649559659641167241183257427538592322799192923415762787118548277291964918742718703574215738855390175530220528021205330227724829334765838641407151796714259669048556057323590303898826480289695527046089252637363225782076700920903121622116581064322179100207693933506072706901686966094696577222362141255240964751024323228113021478261638459794708336854935650387278118280314744311271531529939153522585158488353587406102988006303478498917661179070932111409291345935927215280783165583428027199364414133487676799260224791299701170821368885686500363733301740669921476353064832879345404292212037649328117592210028294521744481210118483448034514234128965639877496622575167221079897324361941100069101014431986919032542854879593531099515237999018712079407854815984554902877378008581384678332117797621510698331797020040212965528414590829709059856071795312316279575669158647156778841215522946517683542985469690063506974709067988235354194831853136603741203974586322465993052038622001721274492719535774261474380524652701960568587591643720301825883540497213304034317542200269784378380843545316478483602412450445757304811494789085674253488042370697067149968388038919074950216680237447519010477948296931186904953950326656405085586386690940091384240094172436174388847623796715942560528056006544466636886680738471987660458976056372689303185331311047715185685113645673658350288953246952407106203954311248494614532219013078171475903701451263895933410469421670277723957039635408459527265557882948521525575710460223623465606779668881113647299716187651603304842643582323326885981112267096875259796508812919580797725799529728526903582625070226867183437122657296162959752758022542909240240474843821131619156287495370649108967161043918376681911609589964604406162662471594635210349085244044702139133227397265230448878397126727381625420723946479583406060224466399466448503392138529662595937519395110437195683264488873470543312826666813045920488848213568719364703574314185972773912483693647528226911064958591472543774201500045201798135260053016779298207645229941406527428903789469115710811196839403066471346248209470460952890830771023987734504634912384134691519847757511976653664248349772170715370872501499879615763209110951874054987866853232093663129257975608656440224341465531464216225097687455372991172711062162500218243475291017911819401195056031920234560420849087127899366650797705017163714026467127952583711979741994896490666548219609800426217722461985367411946715414205169701194412876105858282558060552717223224900928694056111655264041685514092138941261947945842455860224293923432115238181331140785918377307051877978904024538865575909031183710355175581780271086606528360485444074104775449143649109869394466653141465587302357882807717560147458869426464271228959387467055160867700292972700051945681965154000466524735124804741190596114537617506816186746290500569304879042071254079866953533608482041868722837080328088135638023887214257191547814842597836915180647232462267039334255487540912746985834620424656286113684924278916681155289301211678533748922304395893784192002679446476581744938753090565592617610285632284384666399744809457558964889642719516862887195689710023307662104922233345524010808980208169796473410372370083197968531306075762524670152275726575084715440230410705764720070001807341109759287708214287967315163784025322225711424208973674249005083471486836718727551244310478115810521681976479150036635104223453121815840366732457996190740137645869421921127264520414029334120318477095184118126354252485846269435946819552436990488524404953650618578838833823906536343296634229512734746584578576047299422524506706846402375684654058197865765636396176892962007547832131227176671581408246228899651155119605532288471452032927162981265818424229815756246079113684914206353830499132695476752503146622218027493741960316045874478932981224699517224171717371914586461744036719918029024818345395848627825684904654185238727226905867480471372257749574579220043903054523326825101488796814051679854418113189901690360925544088039701090946841686846605394326573499034935301638817712257259029244820542899861333977343047902107752690132845157216869538127510486436917384920977013977142900208272841437660103673701450155344083478492728709193348362991710029115091027607572736691734502030827964562419530902897713794809121820380049456493366535297545985810905104206032822360118145770185788180255996941129483004370191173081818899018296020629187177191970307782994210509844925851959202241949024278522222892396779953105789076325716438396874034884891667688198265013055415784038452258118120026551827445609243698341940141351749630495337514549869898965921216980805328843312536244228835647251381556268916965023822125819781406405985895502010874325117833320510215885005224076034875406903569528394053797732605679479242200619127624475742763707413891172093292231994967357983331404377307582747373906976549031082532973433112435330490167795424403390585040228038276272133110432674662411152268296828707400723824201321462366033975652394021439295715512333759667253294380755753560668916475971409510030210599017071616623545935504008101004860539694755140938671919405499319563156557419737903305382050858793566398916435362438080545191817184138057636322783261829592520040487036554337109438455411422913487126988752753346588738140768778236043615126017103244979172946700872427515767815583567323586730673558243580828739529448713219794007639234796784834357847240101398181378473919124086284365716634186794452025557323042242473504879477642708158091709312908760406963774465312531138885352936910036216284161668266692025609737254421756926505240409737155829177337842726040769212862790569788051307714942955000494875561553838468434373427634289159662662629937663425467247160517469740184855679683185335558636430364767422895032662557561474675579008753261775281067451204520078951655367411031902731164167375010486550130955952041149627983624007250097931255851759006542324904867100404969591322828199617805367407267495130654465697878720146701801380990257504321233073851040066438317768518488601562146405975523649772502263908937503408186940732526091373892170195756622492186407863433778104142733494409073938534477305253588384349773833830691781454388074438265829777616296136906879574225733852932423863443912718245970396256391319830471151243605887860052273304256342504252265328880281475214565222586832198648865129798797067649634885505294376013121246683966333968340931845483774430398541141164574644036432490238248238645001806352984432043904839489192119330875723141369976192920150558144325787353824332893331432962395865390376735066096423123974781373546472042785275518335063878482264446106629652620836889845508343008431195669518824096627998051782029034766896031509657007001740497796516887691523321227182998134257705135189622764878475712560496637368400731029777261586933680929972630467823756309323808488424218988967408859060487645248231767202154398813711921010647996727826700398571098302668104381048885774008997724129770757743850588685134031869024535991705735965408939769983365288328899148466053619032921693780441378032624094894248639730462729244269852356706543452065519484732367759673165896454558701623577655395978308153907595400513375726815539809996037285264358879928487834328522095608109149078682363479466356070791649045629038477446906328840035699434064714866847512809366100215998134961370999939762414417905674064811925019228773636796220047695526151994790425009833865964784550909573628560156902069443195502680241014136065912921569327137498633645299521135645759479238790786552524921055290141465627636417216087112106980535637554008468482094780336566615543174459300390082206175033778585468152648912273144389828338430493294322757518724861578584049752267203249059920303059704819046472333342295224798666813257334070212323534364767233340878260271147911854267876364407337280135817082314672394290825131387031869721199482338371546035367744047736396832076369014219889150244623167189953229022069027999937422630808014584497374290345170689562165732575225203094813975287351423962723848226661155828057252616246781093031691710102595866822126744772209490838098620363339967796675287172056744253197259612884441361532344491132876189309596684688611316677411066253361373865848248263190885540190438282537390197256471374212549170237792479017673982402802934127794106347704732728050490760697605898946698534171507290177390536759963267868876967995066796415358461272751592814708724173666536719908742136364157488635359791965694803265351680256794093799434840933722511473505280110079163837089023406153494754976785626550462013550486211337221080840582883635706985150021308597077425863549199956125645072911882593123145015978486174158475401270686353386485393510147955518752926950068894417467555693562914697936862119343094996404778177544190530393184584824581352552957754949680729526093668359256225892232564929475804454316480447863101569105366461979280430640931377986873754084287800381325896330001414665371413529015288747739198052571259111838434272984680471561802576528127646387109856427521299942540204633508130490641492602646106941000660415279058177770397348348341354392326446021150654073227678018311902132650715582269324212860617162079998980572077233000070278185353850268168367059851763191479583300720655289790604427286430051349809504233513040040864213265902890055213308958751208965029042214038461979131132700348757301917385453364467342726743857234574662310461319105581054763142216665357510506892103419250235017868309786984947618198955227439362357132622851684537468363705579065093446455258492088829745368457396427024902827171189845444037152797490478262113084119813668775287632273089118319692026599413795310390284440367138088579082635640229865051707517009689606484523543187710241354661272522606818504423383550433610827599800164442297380485055206422454195865382617793350748087468687770835294824506229455648462786952224129639145243654681205429380505729523881609922443523997246671152502371089369659324160852474737390535683163506008130622231989469521114687368422762279599056280579542876172304897498121608751555971720415686097457034673148388438628328124606435887044460795910524684273492755988388083354147403633555222584216970366408068564343917004259805159225818711058574377523748325270659356802332242720230826822854694235809418436120508956038311665377717041186448745400538709368885395185938380705365130741860362367308562020588638234336581158211085510537906504789909080435265405911990136414227993355118627316593846952666671414372631806464796521876097202128218170003102236136468494032151176490475994973160453762126594934002531645386418879131670022426301816114422981177028135473616463808433282600336919714002085891620718881999759881432865777304880328795408533096285847642890022315105737739634909477333198077504516076507619678013941919028627765123638004164112100564539422550424762129796852509439673123689192231140940178379849743881883867026564447183764355185527610587597932072526522608939099532556822674848973227512362929936694816571086361809320380767111405532022356081139455394493326222328361133648538111536164056668680048135865485323809069977438850483859818051435825657069795321497354985385734340857636094940815466037817824003294004796086442120811408860174201082608857301733054887480343874577530822198431226506050338834644340303222149227036348472710897014363341667261883005635403533450719030295395397120676320843626799992206616210227649085804767034047572777052217084520556925792128476279035081998813153679288536599071386422806388742410934637239692488028332876367133327233803772076017394226597527761067611051815564682237748467636007549270685118794901771117277251960176610641522474763965140528938877874546333039195761576927073130411045536144456762084311172961958029429468490077170598485890655470098424780811176224651852868246492166501144976555264266289899192341117013894908868915526914785618185476634482767712414876022268385838802509623575242066130087354530790285348300768853637452126223634883413828593801229308813641068133233107250787450839946358873347139052965653570265914132254051180507974591312714432335916212315957883967785101524633789528088527590700706458289327063359901243111650066228880763860967351044415798924990626892354894022282203272784602904813091880045118832206522394717242090654279635503629325163677104905640042890263769608218947436153692300778160706029888391360162807840287559367051012995670429667238370695766947327960588560948946326348327013597470210439323567100123119504355769445218066324341622838071676058653017682457645807221651222511225001051627771902015842155832997012830040417786124336644664875794654713902782821805301123976648661936379798001082394202844067886088125461766069730288130439146964670701924323282833199168065477402161818806455496525916354386515846062220113814330613368898088019307612955543396307119910641716280958578785502874348459190015240961020680439805043544141272202421450900529768086777476890940288244008294169641280264841694294254202422114327413031897120416881934222379741470962374628667396687204939582059399661536318895453714297315370050741019165777456176426218643780831514791097834078804174260506301660375185250972592796736001805685090438737253194367749203877063436450921508607036305398980401684319605365461129715583576335849900359576294554143532588645098388634737652525843772869124423945489066606053198043318681288077809218474729959137945491455657012270383797570877772928184368937958527316449897664067380310364493712570947660345333515016252689731108024881118817314646429199777489571357767118858679845732122466681049011398628359815840523101185576133916366019606482463296256944197654738502867271060195600358258024263593584017379717445526283622459873802555510874988445396814178343315176539248276491945230527973867983373558623798997255609978806947938535883191785546025826063508293112351040582473288935609213569595633582225119745156793641398197749446626075864992687288040129358378857701851285484746174493538988093929465844077122789215426845296285182115868886548681737435790209493814706303597417516396532047985129355391916050405001486369674308568795940019500526413013825259260550133843759167513408727534709698254044471909317950269144424714040590511609538955611669012660116169440887271807967069073002170738858227657492839005783607952922733124510606650387547513065743722906886202809816552211839205261965911869178827395397932792098730365949069395158878727370826467739999079525005069513071370164540244320495686722405688777713768502468222843275868929069561189175100602854774609914097038412070844714699998455834238234003508510057901502956836037995625765211078131483453725275815100182760303952948895894949317312963692882046129002515075235729940857168782320621656905438773070587759185786050258438995340496222844853522880228437577257781357525685785529599814187797548292199834315790433690948140658712440651606976172890782595042218785022518485868662916826821011312980392794869384227433721268575622172118282920242666382926206304681062544210146990765553683808574191291488366171333427178589230673187709509350980003382715081711494770908664368089147884964707358341360741088706840118094420859042843279442573219435298179884158037582121677157179595446413704902705961480859939985553329447860525056257495935391112924825094153210180859376159260545790390553723688160840830654042126875085496711604849859207600698409240843447833908513205610303846885686922699373629180358222996873398199451836189692224935431697256751266174594386285436392015828429157793742541610821725576492102327806216464032133723725314322883333549733498597392666466361349084892593671787255584139764325643104273184823460276905301913129809583900391336650884499090971359451035521132579557465174771190759027219723417265301053073484188209927391510373608021666277622155031623490997004177602539430070964348601773999100171423495998302887925927716747633222131069558429560634795300799883753181179272026964756249286971621502348076856068043702712367314503416509259381217905281297392449560214044283688441569523296296037736131855469665985310777449145676266162337043379956300720259707479774062283836731857244897299526833474841650218564677396731797404338359320763427762982164121156905913158874778924685234883134314721861740138738908024298572312574004950553863704560417417196057707393261146449491222543129989282576064214444199518407936259021756835973276307963258511780556747146326104024295464832003580126274157943883047421449874993267564500752986142766002514687247423531967605869056261320652220728936499030730473505879573160471098619753431071302647173177565967498391147182954986615915405585214732766885822152216607690695378350782539836802519868470021376273569724657928853360373629508730104819212612049908824654610280907174540759517365857717723000279059811366386524123472390627785786592121515659580943177853578336643182215269765958681999396811082573219448923036138944065933984741467458015915961049192190249534672695991187552222946263475909404817913300659370232008724007957481437286656212639982361399466562246099328333947367393613881731308022978213080193344550994983094975447696531648663073340065347685064166912099884197919544841290820631819943770699863070543934280453838592039440981806659012540414397526349771466402909119072326835543377605569563876980538859434039862788871203384046127884442020870824941005216950600654480323467206479190195813890019604541311562895372542079262943779465950111576893225307669578275522690835764895898619485719397269320499812122558464763942694375370223271520553155555954795696597852508953100470039094150842435748153203096747676751416667380678271808111303530189153736106025661120415044379148394639944894417976263509338716017920929442695315809917776112224190181423959933693540118616323510517348244428955081227837182651309450023838833668277479180517344560685693669005976081060984046673333503093163925180771241740854034953745400932244190125816605330076399308106898939861293864779735085552650736540772678414867752989603104058594819421807894611790194455472089180660004533719676189457280738722032990614271199307421454994441653998098736314135279616739911834686550381607331891745335263882170486927915828810807256807503390456604283180635738899819133780356310209849470967331368041774393620830709200843796560582376269481898024439860968295326829321667075857450979844074914620078972190674729440973376558313600286641973901991504331297218615676787231651033834487312356133801205443351921032826805785786215863264700096058438526402938217846792498170648355877292235990424341928938496448740005167925964144251719034657379484603182355995837608929906947937701440733091769108732169276142507067849206924564754871196272695667455730179207255858062973799731137378227207220911976149885422006610111098201139168696737804729953560929590176714805728713836735262525347459819030312863186594872534163134341125511612423903266795610035570877864396067286889554388806198026205985091095681464472367298793277575064424480491145277602638115418769566565208647545518332287295451599564403978438254089101183455700904736742829360855040423838456595232492958742191014378527590337712364095162825900841288247541622461414923099844929597402231333395293794233053824870372172953603077292556263990461434602899523485316676783986952079418323157929399162168998340851078288599666914216609481361107754214052204336371332225554835176678682830057487465070627542147046015011161494712927364788657080654879689575420618340769876704163196340211249955022950434364462672527563024010852185860349402884240972552187281781277530716060141683667680145895320691844639179697289391472923365805454700749729415335940735628385738129774084446291811101696227567657230027134436510944172431663051017932252667507891137564768163469199507169148274571000874724291321981411771672772392350431987244664149797531955064879446446243505216158344127257617288760619147438931846515366081545201039189362337370811355733283794158819996170486817946426445603403161415776955079650843361387502283932079738121684161761529628447881721391996537122964249872616109395475437720461474508474456924547594659642910891494435042833953017864700084859972426039534737893981099946577511148204302711047904891735064121472016135598398327333711755459007744235983472360995745506227291025334299444484806254554248938276867131083385183712427844374661966078549916388716195577259664763569138351249487645407134240515863264077637740304569435522281072276036204604278288091484046290986678820290883979829915161834162490680991799179613518001721061542420944822245281690945834135253625450965846042466222487555796358796726072601583088676728248105010207269039540573612699803941916078475790712775276977186267809991317539369095331039790025552281540614554039590282951548104384926679441641982143124651098099026737117286057458595543624965912751789325627971310151175681311951270148238763227787736439867440176667355768429064903441830934723576864027925615889547012480556714212118136369032613735790185402617190453977010324426319482766401678702827406411552581269825644503561859962493290509808445178743617003176803509951717094913532689035945409656577312725021074911273271709734627969133820296397210747504768029042028107867736530398396358984448509917463561664732755101844514439125871641532420555963715847834616931235979368026131814845307208772447001576821553510707154009044405027538611465860009305915260363077951873453535360791743035499224382795377030843890347880826925498914992046244080305102777826917291937430053243937165691802251847005375877271068934325501741030786378533759328553473101307035121651249033594465381944493078737038491897221629238352736301489847709058252868779506523145816971807779095826558907595506899544150321124882933055405134106095401065203896895035374965139729254369472614549101363687151407928379753220455417930132897841449122043719217933155535444458708783569705407237053141756941229610358231402350347572694072322043310679898156455672232942269351595073274740727220023750472852731700958675132544815578198678193242544141774381855003877605692807864391163007769156332994957100291387157935920861288454175794267255359805190492332651222521831227304613473147046814259359733917396083143034427389029167133976422731310494740253545945340621398071177162529520964631583386661143705223346229250529357787266526145816644537522465481888009474227558426446867369681363294798159590846299754845756968075868283814084201285611877106046039254743109219197731391449974073779459813868858261267760799551059841207054880335562444174100163226360842737864982593221533741555942496181952758216188628918688436796429329577052319249966201569835803095252233452537500883490090390151540201938092120506960913518113830079791987895798673902762193764060832191111385744969588215085129819128332441584023836497491620792369674824954396519238129049373603288773414513766775503156804580900408741775805476947628880812631801480851274926284270069243562774930066282304613206341527410960022730767029147115192385351740973444450078268816231300079738777749149927798105346436880559916053989788623495112196615818360357926179739341237526904823205503398647598838398220607361501814529836948227038317441232022437083073028228767110467125789059049284862680350380694385172938218891292681493786417816420643514063534436721566490375287750065142542741239683432749240766531392235998537463924684017726985715211213038731579274911469574182899487311263441324531252109806803649999782550825429246175498962677857224319847359000355856118859475478928764044374583471427370766987516899222576906422843322608114264123441680670149232535643962160643828147041744576136988399806498810373516917052460835507665913513285114125402024577997438593290121364570638323170525394898178444102907142593614801741740430035697221106445370730765501789802018647953736659688901221658129377831552937133393552858248403070371693723703758844055102751676756871789922478032263302804664745170076083569695312873583211616859150309032331858780171963188378160608701399123520326771725904227382358514621358440035157999337589226701378841838264412861230929043677682725146074388966401540443226156769849874763134254956172812893593432851516738416530630073795117495206788636396657211548067870847823339903237856552436329929850533386952254355281439780556352188835376117537014158211399465686777380301357376971774536711092707121131217808178512950451698428141438039414098596294276010744554145758864666461529418091738254589962242347930845992805314483574174470751974463163044927533829549430759195819118248587581249008073413209154271439476303545546737047951542427799578394396742474206862777518611534482588718289216044964602649350473778600924953850818708950326970111975051610162957373754124807579320810887509018442176042601986568678757697375712864035432202027426862347048547941779868306698914306951545739606132386157509295372081973907825185901211373840267784963851065782564770904053091794890285699864385138017510610375177606111156375503228291620700856844129327169285601024469648165519813144944009210279341392590669143341462771074857673760616721273605584105431034953667157345777091300303120442383885575919321163927316586056416196736696317034178565905971450994547681775165346369272190907063109360315784372962855869986803057755480522112559015198991268003747121300082682864078110219313906333981977143761919551605513698100743648751182201598869055191994048423344608112197657121290741944201476957069641251710327116136274172552036301366939506192372704195707558716689210046947336109435056991463672924493996325962673011121644072225550642517981476040446399640287373441980001576572767435093489024493167678740207643054310856824271231483917539579300314013314788182732962134897443947734326314036410596214548785906683576874843234691055398669416981148757997561850244919747530283480136274422722524377832009990594175781223163428367104990695861354389131358016982565205561827957831446412078050769857709397593541556624978214800206231650056748928131112802830339923206432956928225895969438716998906357667253120898410147110701422613318731951056243146849664952709266521959286741952096288090329983019006579982465390222743897242525709167217647627191765184281905594922882066755860513832409603604973525419841683648983111042821159096457394881075892686914684367743393127043045073518227977194252168633429957634468493902362231502747991836608281493146614427263808578046441028865744741138820028378560803122688549328853656532373921972257103717075089276957196344599120955913853703038748705786655464017879540158539533621913458120051042144411321362642539718882748130025523500889086731989532712243366270216380065447003011171943991756450629315912375793592173184431238676126034938013671103647643269986740206562277725498691401806312140145835045628955894290882143384259984352061920711431771067374435954392584472693403963399771971707721406302355915671467633132932587720535020848427839889365874562536633596450307805817888372987301653380466641656570509408881693671621594302859877228672107924036068540233579852748235038980669285092523405824849738315934834725948368967897991125578316287484055186732803111812738702047592752244054050929181955168560852171865431482622355172407551624417569552391344482367341174816698251043433050376164257180235737456487442390636846782008688890951155970418839752894264618956977041586868135028115814941607869322120165399146452664058925599754859793198112325380579071430301910161915188947748278092131131780123113464608604587611694382268582349261991309621762337363306885823626980449703670677315541746853573633933630282031857467388417474387978761075222372081682519306144669820670173359620949618271835920631540660196321681342697590069658365257228339675400668504488211934167186386006707799887437997714730374102147962723754007893332029951555852739274316529194165671081234702799238043530187942651247429442092597024414753555241158292591336246586111875210997264860343079876039720506229664688842022707542068077428997561571495859029383323395918972462907720602765170233372936874542843681121919165151836736152412639613742122400838522954576685359549017963824039435289079507038230915035666221117993343991316382288940066343794441987645910021319488845215059858076955262467669816988844755818558450086032014204365980943225709949495931759723289683472590491055904072177815906919430215240297385516918179502401094694344051010719244001902764097265118109645896746020447044832451096018159328325659849386155680593911565009486546412322114661884530514302731832639427003944350885051023077469333421784470764824263488429596777208041154823002109655400013412220467936461353282988184563487204802718736234523707674947481000626885668181338101490300805733593727884743645736401346004562395214362970860767127723214848903178890137662510306859925476821279891533767385699700642404465840404974549900846146949334143615578919635015884508482192686627258777381700869886978115634159693604135900244998844058394294921122064507338671411532581011696809715666164071953917907736062351051349743769909297120781210945030667122371071731116038981904903099375989933505188884564688612440987238329345908546462072143403611476206947430135102650398297052861759900030043436227733083078622526711360211408268631893894993749367377196426310977549801547470056893755917029452607789991884470764089754135706183227310311022128167593337653955898617965967424834602146868646263284067267698227969696263917564950811037800217538616520140215769965038237301454358902350772338827321736010092187487520183380222909024909850838344276384729440019662226606994392165716282621358885563526854795431884116203794196852897362104836319228071750556995618635142693823393506022878289035190144148013179888536548178894933468404578751678986989571796651171628621369361152725054017311658082555385508174533432705764406479907220554009811600157457663447195812906339678092845452096454905981628372519846610028562916050356683460385940416241920740181602578511035082036408655896533282215785366594952155927935925137601645386890476167626446738580470810800005901275996130847288689405913497880327086109174318848066269281243087036110546626547332664220372245328963030850604526003927828802877839852397727422028100814343136805044609242313428681983741467509578245961489631571753993367878467029932671469894526195996054141479309562016035210822165120388819327967273513689941975522566515599920409536840666051427065655934136495017057716225305519523993001154271110752331858296270431179576036664251294557259434031644095773463727649350190522736136020954509188638878452671498748240657146288167283558118113565677543483772345393394059483441993400435186575080955335161770283675092628675370885583968012566969071795287861909054400546610251717306356524429619367312601334664496856979377259323986684605729811943776858898281221732034679950834723326287095242518594097068984532891236875271042733752369326541936710197877417474356462888668633983085477329146835505122053329779368113771752471074288003220346051139086789210829766192267422991616277875045217341980029352420568163413029251365660639566742441468874735104011363391522525971013986804368807048591039922144093013272217144765623883443609662595382749768080420415788255118038700915603799771167197090240258228051348881616999557189949710433529744605386113627354262616638744696071741043107238870645361829155723225826802454142257013831444422628703324759917365139642346381918230785546604901272535506683133855667779726675538418319187631684379340931872725664924058141865538770376784831831925098585522886550568398003555447862758523486289198289849333628037435268849194942427305486892495954537855126039486272630920748144046605698042160409397880860190002313737254805762221036736861727599441506213453630400207462222368598551622647268093152992213923253857552926087582154030240743835785109809314773098312510831042305186329142083350451720215581719759198765183409192911849206941394903625663680648134666036749567358015249924886246072313808848954570949626210164947266629717718611178913235298068250850578477172096374028434552352447848795914680052520124266245111617952043965423801557182275213930500400624320334609914748481786222859222110036989518312559395898689031969194835979530475884325338755030402259645959681007838654083488884267259170906065180660636727771695854205342729008379284352649065050020219729708191548558770413724284047817206124068928839368233542589716605790705248902489606905473507313297828158733468242185348891761696403520506528632185625051280126118651658014241559327438951704579569617152170894084328349829268079895910322492590146911458552067773098807482327550462937257572626060465726492424584066854733003697420248565204223778663023436610574040272172254599643092591893090392058714669349546836166868649032117927647183372153826981970172731867381147812057097976682531552589071856059340283496495756365669562362135762082549643112683388051338452025096224098828281440172129022046404321241619428139886650061272199189164794913008329535126769580729437697131267346297379507373446884310059660732298842258176909869225194185677870816237109676150601362800939402551082990132047026545429752625425383534252965596036935224497128547282774598117822719393047014063231409916501080842381103344963546485781303248117476903051911775043733613374057293498609639929134086779388937949427969580874311395098140285468188496790317355632611888944161816742750142254066506940757835679414502828550027262247735425386807529474786615524958979162495796102501898547753598706081450322101596745329967627207711256479347387312244392916823640276395633211655304107318589185377696931057541008413434308647174575525854667219207977706716920782967866783287428078792578215832279269586521010876506671837341432417379448038768260778546340306806620413253090059462529835827288652869986180733019987124340520278794054101179582569444364012239079818437147620665632043556874391087228592105986464328532179043718194587660126863814266194110736938180685932358904241814999398367648592315476551287459245529348873275718906201075593920477284309201193782262510594133345929250555443853924722578068742426337160002795796698014489619348935152065268421252870414686304645328876991941575494476557680212825614097688347986816214626946285328362674233058065394555159121304246334956878817695219393618220938986233568425695105809392290682294262523248928666760633576886623376407904709211411961034153016018327258846687628226658149825681658570217033403592202105359669979442603651459357082673648983272248549348534898452948411535506225110201933699072600696886755595610120402513090516427733453363555961544630109406708262444263213597135822178715519005388107832602650217382453287798586520649770870175953035678979726153075972658875407563853767080609519363820761062843505466943029408532456844823331408447318746978907592456587059509208914166312350544003941167357606484973128873086930781157980171375413476989762073278535433259064616955775261884101287141461827058061168237409593421758672758889976643363054169161337282332632642477624915194608576859789328870076183054673570736335948854605393955977264543971008027161554627992051998201029887567875124346998853379329676700517931646890937892963059177308865986022759341474931496503087384267231560867431136519311146544333220230450575287968979123357686164390481445603851851386281675772006640412641118343319082878685178107486679183602798171048876330466054662695012769057303839351030220753536611195806382224444711155138841461201253022651817181644941206262389850811737839640977195590512405442618886585767815898971405713568606949061841861588756285411359972888692581214422370528335363222476484705153780689253819428013362725109688880323160469089284344315200797845921000755066903164151930608870685220385788820990807818479133296157918197204741203390466422025025085126534039013439601116818727641246561210320466171098400805777949984113004664980363014402549443362155639704933486382159955408993297674527620794633799420596659082160932410440111031005813138598258208766146045218368206422312435398118982162750155487627735176966429336530855642176896600036666562676300101536446085308660372959488445239045969056847911765184043081528978013148578352445715658689449620427996093362534915756777902490381727768054081469434133287822840231820498327067657420385752934851540309941177786476966214870968885829510860454410480160401525437526090245513721361839269909499174255934235748290531411218195682496008034150631763173277235739205983080482834194768708008823264019788419037904017699899528012658387092149901100695779611205103520449382450991689700969591407670852861763374896912925386382929486395296516473218551787952856588323175801333487894025089787475623312981515927777129857243285981490861934079862208889054317846194033891667410861743545196316690438927322007807349924401590389535249918404600662173424102727958532380409672985986799286063960444463531851649719370843573694402410636448676950430904836699698367472859891275407390519016909495937729423653881130585861592057797628722645618536947305219536662823377062646480304130061179130640047103090735937366613574308085523276305360890739908470602887077636410692735207125007056230425758939284830375645036780140776229019244494391170144812253583413416998827447461793689880620837726647128611841359484203317080553965204600239088843709379761032785813233453766808264692476665333275557664852198598984056390450582131912095130747464205020321525882039291079682781309621469758535790005335035858678897487143363452380332227438385429054972301412580719166511162872927204995650695938143760840445994654790770823280354575451838175846820511690730692243760105639741899646591401976100272466592936758378463027377270051147649526808986956043297859456644503630350630212009841912429956499990690034666028551357375566596788206311553452815236862294777574084365204014142430259945463505645378585066169605416027203966254227746156716274843012516729802772432753915586245235076646911772449905489669023015574630332534529534916217290612083972266787907096589945500897736284412293185883714730597002926124710791786893385396485051957087274453663324528950981938653894525667501776280734211031980450763306231511257564927191565970140959233354851089204698520356209409981822113267047367056737947580351158045908851086922486186727908847997343513049971330113135765520782109591808300469966157904657473627513008043436418509655310293166778084589066420481857266423905767073463833189405718723259626026503826869907673926142558862959166728663361697378642140283564473175918841234075468850174379191612812839344514641592186472677565157696387073565001345017530987616488311917067020505853643023337722447348778853315501589201384503210469923618551228574672482683931797175920153619926152102634265529553446264005662792972822020851209216864387454351352246877945323543825194496330067234162622775370649937299361037437111442024400409298432669594695439856759282296360483861352662872490089892252716384468267728000413366450181894685846010070708670890151140846619161316480731543852052906937712161016480651950148119384813131822667984490499787714422418241446336195796804476038129690894873892358245265502566642071317452349856320422908113558064739396295029024235191632224119763352123551595846407526728621038433017733106979986182232587919621592559935425676629194346029411536800146317667397606494352622047337498803566524513527030455945338000821138571759657589070808648887759390989684447606289305111499335437550151016164875210154749894247355727577564150235887839030746243442703083565959554771403632538073272714199370175970471352769385652114994926032761825004007977829739526337766656166846361430973369093022327776280427243290522876219970304792061531186512919497080672221006598949095058359224564624928516014216433465529808924903101862012766698605060077923952210234825336691370633462884452593670934403189390440977534256684325559173872103323398097396459029355358586523968240285323153618147985949632722762171700720030520273371742983299345376753320720482614096902194316874871963072728928080276508399813999640723888060133751855849255830511459780162004808477050703577475970386749766273971122877151286128293994281471733497182689055156989637454776378457913814498435567512582068725147435685223420861815917408414474106598317616152502922050638673251711981406964102921374104503209257042100173051353346788630076592689578366211979048896661685410062618908972561817448532149019112197372081529074484420270485356242701299491439428068912773566032715616235361590833336052924775909825875404584806640555636836266052549439525784933169133481166434101216991591420748903049804984992436680568067737645898980265185812542651430063919330979964734904566003128554413065743618287391629204641500938930124663233093177736815846373938154392781522667375137262796564443606249152725505550114328667051392601645256843370023093316707072081127403873125041112793917597946372101827534469437920977683194162201336705415999806711743943903993745903794160126537272872344531289520046308604779164032909997477097293140685677835661444118965659406849056916667481433703099710542666404463823456931254208298645213724092400777251409649124149425208728933365836686884581905479257866398487755878500832897185840837419527929789490856396887879117113733179398730593987550017037869265457561066136183511882436020073882512233257167410932293798692334728020687724936033464238377315926373865147777739658246419450314257428750528347112163307124974975502915463363811294991180140741471454878579540464708111357012467718509642029057378486402607308818624848805260107595075029798625948935818099477253702173373890899930135301214804619566061373126359461141202505805114131948391600177589874614876389336906790413348080659464974505009728267915537275546762847599893391885425705760276912103281094265810516064892108212684237842868334688327997172887287694075015725719866255575936316657516617074119274439508188967960421336569334624467811453823381000437798717285759640065510415334532397290545963057608515644976187419938862564870274964140322183720101298788462673648751455654682909869644876444900615102461712196768291422235032777391016167419721856944541238452903903264102134998283238370316617761250160289833358195430380176540059390076869314968393185071215663342008847935724011189684419761890495098351298487177543252087549930888548810575262436402507105020084031259679302614391662944627295282465135032595336111247145392008657725702443332118266745739644629234799839021758421010283488510820050586111883555108193493836087420583986149943590256400659268560821452699800318971618195668720970026620463350937806507726466473432888421457649434926602879857856655423189773051668251535400755529130713273504669927039388527597958579930351433037714327768387214370843693179169125399457835693194668493957307131601803232149849586804570811171952986266321444809928796651559398116109783744849366102613538348066196759678711863048159270435026377119193999637918507952787563138048737775539102663870448937658980695964856708248778178854937446671683559679892238630496441900140753101369166171987264885909442921698067625035890130520274209863876561244054675915395912864373888512289331388618201649990271265901246770003168861740768178596147989754465931570416018568709848920847297105373177779887546998384006709707690459321046795601240860628845938723388217089181453272249812241734727212609081457715453911197023963473622976827232455441905732966978934486102557201833963491890826358880301073132425929431583150155817404918934783091108806228272611356354891717576599719854396030594077487705441878792212128607660434422398075401623855493154753201852369156791509444852492340890410454710910705958192821468482749238769067404083662240003013010730378303424974875548490966332173517054869451219671987888483210524669778018854862398636607542985884319481640895185337602818952063177494196529166074706967571094069011618194825217540856155674493541443993118017986945786641603853219617173065698210247040302475524800153165193760621756379559730134302882604822708895721595548277742509576046348540446071163568084258668040317186782702378060148637738562720257872898387994354215936198282967235243943407059966332162090666810575705214351361042289300976706766310695763781081632129924457610232061811332561056054830412746767402684527443176487281023433705239460213605929023606238133680687632889573759446446637608098098363856617246647536232017617508955888703755644970523394723923625090480104545044974505388130040638948189126874888771158319615975986553228317440750818964456951551062414968402275479258060062410099118357030301430277639168894568983879134493627534527711956360915342317622581943835988950617830515599110946044725498366988337911399137179342287691662189992078249511917631466678959219834482221733668489240221054936213294055211974383565937513270372765705246776701819579042879198763933054940827684145750874604587786058138740431418336893179654477161309802585937078533888284148560011046145512434182011719606019842897433834926696220494240794828638468779102099904416007643624618573998663548738957810329324853730999187237997604470492467852799965635013558822671621896528942673186297308044202043766874236791342828570322534317167532749155738018370710194316202342049999085472637011979691270234351321283017829148868375390967408703251146131410494938282854495266604972065913543126373140232059650550551972484262161411642399843734047575091286917631582764144814669765068192261753399553929171288803377654257057126682601190018397732008043506642092304159911370682466989516579486778994233058562825943539958417225327304500073166884304452732816240090232618915881153475158303011438935509913866090816942392975527034687586610653832958298666236658002828471525537497340224011873427940826912333890726383120243763468328499006584165081960647805905855518834799071698729543182625544764207938406984547072025756198596364080365838561949041403686717004106470115963183543963317248125644662911041592009886996751442021915874176529204685564220701159746624807180859095819229096770364859536806920049850840456952198352589733444208219944898650715588375378676262184771943916112562173220798993933486516056951262322565150627999331270225309422122673926206470926372730355770201015060352730342528498349624873430296514891834198892319639491364111469750410093896985038191855929028289233592553962558048075031045556685104533145463024953522722995021834418546853675644443873660140523199666389163333547858024318314699256583846328353273783026839970169065392257774284192896420972619199794618082560744683669586894864823632976773710270279721197124712968039494954785903504461170498750751483662549308582622332306843598789630996664767879290151360011977022331260486062269949407789319797957510887864884783700893177924459062571728395231834697923856917593632584192671037146054384869331655828649351786284054941991092466327871346238951505991091303727006254961741537874136113041750030395915419892649427405887340553584507254596250449877382226367386109298974066935541877898816113351003784677914305105052659525883285676372479865924504289006342521433486466814917899435402524828947158082362937967353719779141864121463814813527495287237699998162324916354989532640095073855036704205129391943818510786713111805034195779505612681795743011776422825958637538018950871684146912062919925050815709995577362461622202300667882810407930561614040139816637161410624064322001283068591082214728960306921120054275613830535446148383168476681670838124410252164431532568694688100216092249720927916520404627332637714718058342009073462326972307872358867540533000308913635722836121507103170205142645683985736395163823431941960414856592623487289281076446246636862198961888684627377011005849402520331246204642406451971712847373368091950205782377106373068556767673136589993348509940665685203571046650736903879395095275747496956710098893864509656184063262314141095074198255698559895959312948966423829944804616705104686980269563157560863460478703860733225831013729544449099543668755536344010547203544877107321143563531704067386759292419009994130205367746070074395524701880660407204660763759692591488133788587393803542309208645838580607514992711555540870451300539065667727375998823381466919086594036268146082066058566256840723873773590322415786962028605624747288650450547978775523328271942953325484600979790852661955709532718709253885312075588687495021820965630402415487965349468866578095203250659507537508042996893727303851466482083947531665946174101149980779277340986872577823604370325677178386376455712124482354000271232685118417004488521549031651284153947904043964823185503794545433586207952302493339164772483030611668108112594286527766227275334194105855262662755002326595367971812937064381997283917378539719536155526253116504398804396424121928317928384209137322239377884787476929887959222114143991750447135130807564586055024703413532173528369630039584943021879170589678777766833194391625978809257210690130545822013778560554891452420256999933081236755844491855605008757893338257676522832995304301328563604664524289110125994755442382031920991591403633905197041335073015282369027558012963621619115539631227910110797309110938211382692740126725544431977000812731556451975498437510603451291470092628333108059703113707984869952847099134311402237297569540577094487252401606442566313956442541201594093307278820749238901647733369905021246480044225758462391261206531693238523776319318674670903561257178217814173538034404273438138905136945455756753792990292233077980510821336773029641072436754746741125009414962425603533795004570174416578731621508677223874778443105544897437885397373334294795505396374749638832422209417042682619326284730105459326347153309026421931581716285631012714411216127680052263994546239093046306734120882856238881255198690792388468759620267962662341955919898010643115371530088413355438421355325502040290163750881844676404324846891488191187836547286185408987327456876908769512210489449689816198082337985711823137485212918105330247577333833297527955378257573666886036662490483233937251007590396759854316557555272632818524331941523952743665588257343061539454072721433391626735585363275304278498388271767719674418557041806471662306770691065621763244547816143641449420530518333695149248452642988026593424862599815055320385261025745372541949256346473573108751310398718955120471776578932382349303968463163062806866823115393301041083246226274133707598338760653497356313466625597486081030572782246934769280854131410831050951732516470244862026201191452541990597340137305742972477624542400700785253498313685273345636954266035983888103432064150489934697195332394176388317908293709008489613865422894514771865055744274393157066337708194612403192386423571219184908681704718393678892772994354366586350071785035569034935780959039641584064189302008421036836458029821994749051762107662763734511751010980924491507501178140442910025094926247904706269552590690250469853731943679567284562135567170007225205261773100066695782216721452199568203654850311169274929374540018758676911500384824684244201545382895744406175250599922079029682862502772608799384166606640376502324373549996307346906156617129356119816894186865816212066686496128383092293195632898826210766544922344944905605723014478813414882689722803662633894900507416036582388138764054210119447607855588761679893117669815490455860672727674790247709972245390276621246359842099005539631427299941877240190877509433497543083384315998988314254471425177928462510329533127059640589467358860889722027882245952711204587348700436154960132949988934953905746572573492330972623007594693330291639973808715526192602458326253162369367294621287342878342396973160025794446899330193527416732761945724039433914271789155786747739778915969343715384946078532926582401066081001046314978996818822500781696023269578129123573344637611080418921136962154685071320162178056299118536017622852530780401297694206175696583885449596180837622938561655738887447652275519337051717082345125008606213542752297833413162318751395694105156446622954036635899203030735622283204360600085655057600187851699705389926771977645199946702605376872846142583553064907344258385446238002930902659640482193378918867447168711619270199724315884017063066103949515628601659337072060082847060704878377060096218316672164669561416860301739495345359912821568086545998321894017823442867630578485419021040753485849054011761654776370998076910794935323380033704213549711353897513876350253428893962000224688284339571177547933690133315724424558552165476643075670567645814575747664013019045353773846750929622056815603758716072692000228954036129378527389857578702907319738118934937177146383654335520122681851522191182944043848600604405982426151759080380287122503706520453627849219907133524465253144825584673780449776391959852571719251664136169382117581194855736487065420975364810517038066803958490359100510378139824871344404117094671805088337308792065410245330741547920965614363474376235060488911088006954588677041079718801711917529344815019978264758810153731949950388265425313778057730299774979443193328857482370098364934319729152650025612964362066212731090914608255308284432748863438658319178856452010204801410517660753109683595580134465831223223133658668371214976148386709665739797063401489940390127893970509966308557678046199420320659129933010412896238171753163583786281907169743618282159643122915154344961062469216149825379319135760675936075829409487651664357905702511368678393647771255425854498178091078720916840756966266487331321403714026822615379577761890851940742875392673123193229866349066399616607006574003504042318774637447296399241691253711723651950220084744793754812823691987432336236605928338466264266601426109209713803725595107623753316004411213939641794816478246285517162416662327556680985977783156101745749359427861369459175309946880474428834512352022244307865141399475637854012195342570037003310885439082308896222047638381446104103985502315191213236612293982491121340520788791787320056125393828893104968326021915764980945644470844493589798072083590956066617436551833053439369094162858915010326905483049842206029984462102461737616464218578157672160026171636852503321426980543403640098271969932395233627644850243770934399433596023788512284304846641278514404725655977608289594174927730828763501216292125546775722080835762437972498631765954409466648591305187763543624906308714777818653076816538545417447208712347616982179296480370390054002269722489732520605147427579480874133266175771603598716343522553522279342751856409583773543172982588889781494098231459588000757165526869043922192118034485673332772992478883071412239375708613583897147622119805005569504135093226167399261254949935844749653014273159251381183762677196306833993626379613409128659910776969453249424700689628592802306447557825366696383406834970267198681873607662074692014965036019365942676435369423513335343893572101918946861488948045677651484499712116298025513337545587631529386969325503664452365130615722659167463190325698158534463637165275935664252613062534662926444046141819834949936660943265931576638410253372865436603750110670376873776952967687041088439949123814571269073595134694583393433780510307317314034816284146131118054578617415541612405915745021867986726710653246292655535605759627257134085585171550529242110766299892776459015802026125837712119659510705556955152052533882408816387798177676835215142717097191680882890884805284059174101372489526926824354221055157038753746276712820243946543450811020378391540134811108033291948345128831465019263211799453685112710482699598390847560916567753731402703331903057669826364653044979556366864888804480385759041622877354198821925307095686700559265216770452416797628337973209230284056941877426367322830418986304576475239635206292326891191984722298509973273626930747334034153742446265886361783126622913402355014070318610864736734007890960375257322923632717873650070780667507487333485655979122490413651360911088892384960475780047685177658118711430933168611942573133106082323052228845483554687362221103014830538965923275087035518413315293084109088444151922593701486983386079494980588955757745780387117560179747604574394072850944736825391631286185689061204115669231736473660762886341743395438623740411934136665285085310685277525620188524547290154166708949150235767839768577616922102594048882107218285858363787744956389512494925038376564242815570839891877434798036566671064484729038537391713933628332009378012616431471790911821298120300210470913470427542794019402571304108176261955996791275542858859102525893396086333081400229949120919962094380119574693545086387942655950725920857028849553696960778793760284350649591949798202172111605188963318304528629404132224066768768201715310024733172048136797544578952643196285210025592955148144638457878038444658127427117246382942686268717136834412429180347959149430974488995212840350612229554610835824386713104312894148183108593741040309303231350725759014030575137641243627436872623277902897772595843244583360206499568784346680370241099839884963490512164480369388150567982520324224161465306030088432299067714988250271644245587927337260518029364905463012523901512776397306124840476390599614479181292235364558261295820661224328500909222017474097106462231485101435862512000920835228611370187686370566742566725041424454422497830551859403127292470624023836818022072086734712580327069179916777024463277321232131531655948180841400674032951649505158532213602270731634637523702678640853381236510419060256379946861952542340193702007115353900294380723762471204773015485803390249860773243729663809883058698808278118844582762107938572655095204732639354799868867630321720664419083313451960017278166119558172516304854619779964435025514428774200659118641324650962055858154882050022204728377221092536181347491513956329004993166692431824442426818031362255405172450463321560889868076591165444117233198263572968047712463266734477498238363427298218471070037277524876476965301669547882256743123747377848123856320309498881921056947291223855986960330080145184327977295183897749623634782827812451176305980964189063603013704511202520360920255218372742566100339765445606708184736877102350060804236321137309799790725525673611308511548294413528739012962919112396948039534303853532892504653630212842578576622692151013370395595859572855651556550546239339309503029808712265175238922901757872409810222341412645167273779372043159013107850513348307517033753207702573556009682528857472905572796499806537777439171244922169710404241144480474386382446131960907173475418480768376216779753803136910961413802417395134477941942759775658143061539933910410768088288129306337065160167173512447031943975235992512838063087963733031056689182051982471865157013084652560396871236204301503456400346559221832877987401704874008326833142534311204312160138890231547457824934675796829832380590503180668731552305082147011813540795772305420372856138232544655979857240357375533998427959805127224391000203813179016660910887958713267076563442896597238088005010054569714924843686340798212189123331891802761341649525066675440695293805750075435177410017343618540770301907640270870352462690825718119197393953594524116751610391770865898947272232835758519779613520047470363773221657294893003519775080274921011916099210734988300097038831449633722288753530151081573271577179461246320862337919410807723108301480285968674719083741654868079911927140284011583269970971253878657825559088445923940531531427088817531425583218334347449184548120878026875202024908490476115582446000031416603736844500674815543623293640909382140195000088695187404004332308823208660092029644530093711379410571847244507487310174741489903793705517777474469970661515639658956910336756570253180979337423725838117006149310721188742597337759105437207912357600164468329739211303854814365121800657572674728367305234205449507646522017226035717736429753076552530621054471638794975326049178831855446242766213877983706668710198411266094988999866431353678949971344439126520393740537803297344443737491882412426733494513398677802084709158773012130511387306556866464021187437150102733249588063468362856099693209623394473774010558909781710072102227091047034579009061970902724021976877245785178413169804846998079815476170038189502746626931907241144549923645684508878429263740377040423796082773184772268412361783966093651389148192026480887649795186177504427666334955129206907632141601987374853996695490120035365804467600788131244283154277471785374052888572358580421675553174177461016594471565631381192368285091738506766984591257104858067672967233548379561623847588309121862056851996455548877564582569770403943784901808646667599566424953475599751436387448167446757877728260241445336496679586588191082438958447323583369319463141786374465360827169597659469388715876789709961899560655704150647134454796790822385173100519072664387587370436065338138894596651719104766919622442365864176067900931278632101431272690721551667720559944896579341837323622845363757701001086557701501494506424789039737792059833116905620645861874909849149257667918263986813619340385022390226490620970038856603806899144985262462223265839811707547461731578571772025301161169091428883041603872017685972305801148738160559316235539777622030248517122191836790322583551784377405560484252449118263513563803300168459612763075249105773497620299142107238102859631325849737864510400028133037677103083856267087515412557317816612921540069016707013002742121700908817912090855264060988417298075046654122084707786360474804758332586186391663679034055150337997145879554464680067976759661343648970058781429896891658770070764320018996631646114054206214825057702826337102925785657077590925291329600948787814486069799996685051728956018582421330061009211736834125198911325478987323970923453696381741691139255640250822032948811428874559347250284398694308806196533259116640782650961173355325359465242891662960468407590911609167175833355858948060391373618597904720532451078527125027912658338281853062754527043341127593611125934288918737635381465606664157195328282428231248380026078162431508319912212675683388952244064512901295965554205323563958666570090854110914351629617865181606365451240984784827796121549466714250894466745622688391566344439029527194596043860107706879438184630752653579099151651560233970927654171179181716065095815129175464888831321769672026954783718562255303911466182843777605843542660274757554885790456229535674504406464230412991838679192734888174638166814835205608042988257290809769534092347631596380986958628903789099003939808936134790682205142587923354822302742534784815564757294923382306704609648387805129862976813392726341949132138843473150378997769939586358267191114088806048263258501680584680972456061950511138509089139954011147444170496582457795131612468242243282976188584622911446471231834833903752141458224368901726393073579382569423246067112177936353722676719704834205416319317448078241681138548665073422039009078165581483627323598591805160981974330528659179128642236643213112278720009224763094425756499526730674329542139463702831625739850608419346138397102842807167801303077532774884702367343934570841187028886551166842460122600406200693588052636955437016585415690965899288742359266837288122584282437689323000401087036039984159236599887669392102275683416595392039791993302318882176008996217574405350463045052544613546370947961782766822238805284813587692822985629981392759052560298166925095901049008584494937844131117781596956695508127008681702793537914244139426134042475995369219015544531326738079583650168443360935780024317920089033002044841369554924928651065325541982377562723470637236329782260077026096065361785178904924636987144925693453273681401183760033577609632023065667331517489660316367274009646814369045009245957785258066639605226525243179192456895556098778424959317048322503897106379823788199770894710109783006066671875982919629882350100320514727682348811312013662307369435405368901331386895469065839120240450020807695633471072538713693614300567235412874292443740809178575619913384320308715965055297231978803871155474357227887593041704591280618717078962388660750787830826452360910658890810903373642764539756750360067876238684895499985719948916310011542578479132530453093674649534489352747422992343147430568640892252169248333388501875392293739978092311969925525221432473227288596358772720974914821699873457186387104417739817431068636695104563295361183091033631483729822284497899319394861992991324230831130441564881991207623034460379809675205550387034539349200378459698521409798606759974117802266698363249015955618666491379939933036026887244122447492441300674149502488608522647946908871679981347498958381713744537558642502185827661072046899140105332006617305780359426527265888422603801568287866797959489017028152231365117836463763459664408108701987808203857537896624341576219169813982690461714777660516817879475209120733154531785444364968663511682899132500916648328767200192329966464496982883934235674256221326233675513383048964728112667280845537887778406152609786298689889689058612649306338555281041593024913875560570633996477795840023769429511191548904675587808665099728124317184827904320739798009561861778425412703920509380915333867041908113480097931505845718733565941241522426026264811829427869051843749780528956978204458846331735046810919832689589299437169645924026610383155779533673043271433089290655475037568610295184425374511579864793660946193286405681112100141486934502991568226521621638355791453253439276742407903818104030475670718644331586582110154199859524300387270275447167888792980777391833546532891058891785126423335773093940392218250987250418375546460438513362100853878484563969748241629119479254603669788495762708455647980743591906435197646158594833412407971702963725676303293964405828906759019718458209110474207325084002147350458915769024037003566354045854556746519091946696957988475167283396469069191497446576753048004363302502946666895083143640263833180754704636884538553639166292935323067172625914142888071368067113449311926054546593334237600694831645558824652728290615794917560626507247139282393689571072598710111152477934490012569593360964160784364693219498173993699811816104770926832081480268688846699407924503831126682967763045659648255252085602253776351901514319253363343974015309973198151663938783301106536211000999203730146815370789585915381206098344549924456593206761261301347296349947537176505932754146138200535229558475341129388644523634266058440008834212049916092197906173580370494587867086262719207802634143640377476967343730161862016587664268345038776455019642573491292625242926015316185916644128499104056298234441987881818979536106807995382939092749293793036219609004131067506534150770167609751827181034869622467701226585512623691297690018443145501642640651520561908592676456643372300607548243519282018863565170006097854450007380278757843679080308414769713483563964093071241916268833553779010588978809415369638766036774925721792568717176544171430975591724677719889671412204799234935018229496740246048683006468197822611259081953452069564475385740548862798309074749941632543995027842097162346491970037023952475873485491609123304798071229616463297149278288859473532224583128647132746115558061843497277837739646228620193228926948814842991135142418729285591693296655379429901760241973854522563353951710535309704197047232857933489811847265544766720039299563394836498906403706946754693398281661987539692474367018282031392572935023538375334912292386526861397857005575859450809888722205443605630075519317026482096100329062279700391522884779432613956014723245984689004876987023129828129598865595446091175069383268089278371416228757960749115224339555176968079804247841208086783170361862369927220173747743261932500222005952886683925263800275315624091873221084949095317534361518977516332089411009269316367797839101261826366342731112689957786866474784358744216586513022202723978768946516243218399997119363694947889471721404793699351924388437514873184864992932958544198742984818398600383431488430674972116071352860183414495454383769089228918322253982677878138155324095694707361119201185468406229675985692544806679848442843988083129952083486718284670298458312900905846979731040502723349135118257754397011929961255318465911430836605963845456608859828557064958634836290029536606131262826716301183380396399314056843523357297784520191092912797384562120020158920421509864039871735371207168937076206583062225805123916593518161939653367946837102549254026423821200661822269179562585744900196357151665481298073190537459770244723904428684994621059736910589550450884747675495366079121250489175689974633578969721906825956831443362853094708824044967401672382258352104795593560669557048872498550909228427872062916147149264140443638081160202699012128283859727642185468326810590881068067577042411386433169392418533416600056156470129710859826834572924489062003996736574804780206517954381853431040058190382360662918438081345412811679886491931867036886949306430087232007525871625425013986706279178384061948560629124013491338056927067079069487499169941698297621925498742288757510590776293675172893884019696722181015223618146009818867591150163195123272602609058445158210452245220529832096644673178190614675585321053097727882961785410913349648740587179906642804470967834937728678247774433577895827724781798653163718674627193212405770390368414699900079498145962731096464455878446119932710118447682610492466026795750231500917568167357238699332130762655764748787965505809938323847623182172935413394712106854321226341862630297535625057582269424661899047438115387737237964254911893162979817292545214183639893393246828942538765897113712781681721521936982542127338972581810628753391318135826300466803695876341850298698102167456068811250016160108894041015374265196516136424749626528228389917352480444058906158194305956017075698142094185879021283432871104108079106172170720732466918393470160397063074718330080280211518954827606398552939593924083092106119346942805383233484651497400504646039887172883460861201957489815507413540997068464070753632786105896597086197696037512839930488540801619098280035461298287093535400250328767999275619315172470401355097270071244319950613050697301933411663767691483211954501802900030762926803443201248874634426445641440074065581996867434802832965706102964732211098706064646799679245050467864741959807061931891516295866897515522868217816622887839260006408874760890877557496100957990191572924529130526802352115502468387999341124742643328995759547225171617684784355605249546717080592972670581015218027361072727745629627788598859890151925936733405964872229396699471460480724242015565680980319767144973904761189452981159269322969614329403884926703208196021394034369276607412431243998667551694957737339643484011897410437482826185762085538567911341960289385480639791968089674799391003189595676011774670100761463409277420095480841870846723126434931644071151818506062883368723950321019442537476321704902405439135346324587303673727319653643450829001052255535245386054910197282011791202266208869579779623888493745839431356010450244023460359310885553645491165734072170739663238490966609253761765777882537210587685024092963736414625994448809724542277390856965071398415491398877005858552955299215844827025541785902131682666628145176373250989003667580654396291265128980424212412332963043160696932163262784525882479161621422586072325987458977266068185029899470664927975745657914194657588962859723021527735260566177490079221458940421043074614693301636502698736007789665610680707356332813249298757407027649098158973171531392121697383864840882513717214311253205957743259378645675155846325620538779384304905145596321343742870406062895856018499807509874215111114667946669594360636611584225357880378214661919118149141849615083407379153595283799492624533676789461787394136446651742103456006274390748171983879174233960201210986215972941466201698491456931899797087808768727380577045019681553788150183622924759931730234216515904573008199764021490460299305714373934608010141731475331591922494042881611236061320265732175295194937806036089602219832428748529895236282938679459995547484299022114829917809430478009233759550959641963096211019943979632432394599934083621855320775588418462562478619510411505624460498360850420560519021297303765938783407320345366899408137589984584835104593002566047468454996195841177924098307145386935435967273692444134500046394381611499233720415687112845186346055210317301709024721346482023161432489353885130796630777077651015278468165081412812912660612402953271789613400859644646596049182424270921453545287071413852086055119632764363648030633986127130129792256628766200019247035817428803202515805775457040601950270094069734709154779254332372181860107835534465199044151672209433899855392573800936302998236034189370104607707706036468806080000767972496542678015260740826079443355973688015971081129455265909692800954901591888787194966895126420300900755976072825048862140688917541437132938224511811470161030101928917942116170806113572122930563924092458905336268865537394264225763369149003823184498487638108889516999269836498553306484777304294229873189616913239176732435657177709109959540451852480439658028667560575283656848105680046110791463273573245078381775935099937412795341080808828128345071967486316466767159121741623645483021373157515803186184130958737753663159463553775680009854463102550951082881362774612319131883277268153524369291460260032735285720156624045506669339247494583238813984343810464438694281190001353058801767849702766789523435995900566475644944955470702684287719650821986279299417867132124011123780935626054949736392870499746026973154122144885908699361392815196571091858539687396959856301217173967207439998252710746525317117198100466212174480851490419225078452393042217575569479867974391809296978481606547481492637842025569564394582866641081697859579682770082386569804922111300645727790772456752308387175467859108715944059658721413118500551755167665256849244624238883734592929223863536258509238492549221142116740043930463442549645755066025748233483471952460541203107132418116616185190809393484003786594935353582964503963454481872600323423722333185520645391398157739649877122152904613387158942720744986456535906025985883463340493298937302762108818169268200666905667011528322067463019017919262974149525435859547403189182606145692217888510281618389193669144025367593896273816603454146248263800739589576166703238754962840634181153784311874861394901541328411096519608772980462420198624512974106090539979884271908904175903310409953501605780574126168170376802302154173429087890071579444240514433214017051157564130390812300391121644284775782374892368113561621380139804442628331712870785159526300773256402351813420735978837185323304959215172421753587971354901722971385283878025300911992874379930433967541088964052854979744253089486014231856938993065897880708452309806517496226674552506291513520044832296528359054646439029759275692702865710796572202870610448089931959267052424178273349658207403620599108547329027750770923844652848495203301102530133667297110132188824637279021491357808749927260125894995072498118864063248342857143121632093287632289502093047487867594055996667720433334013672758924644025096068065034744165939756134291950158392049149754620655114297159244313259885790085184327720122590446202673628947999309336845970792458746662767521439010124758429445967387723903804094513634534413224411723161864424966114852323849272085489252409611144768974420591442589199553780794493221688113175027635072563282996867411621824648228230927064726100820951973980911336509553554231285705304587035821056344273719427343638569818486093621694636038815048841603214355790837818835947445353445592466788061466995646983053216373818434546660922023083077763426858542385743266870858422554504173760694616587227817165020486178050989821823905279798548471784929597390062936279914326644232877810431714961670153207773230217816453279867722813541812672169126118430207721779860757487964807530912199315068848881001573572142806681239077957056973407414518011138367583498680722346992192197363386880546433281255064792204040862934170357946385955071595609213327301933108491005625521219541726572915054561282481477409591584282034931343818289516521634153125756174198115637123845607211683893114321219146953893549061308962078389555323188767834464970814875309988303536978332764927026953645680699673929672778967645012342459160016235839097662886152713882289782965663818241174836319577140012493269876760651812489247242350425023994094702376189144433456299912651465180370969532980798625376016540251516769824571601012857748968283333577031068821051895769324887607188162015278208704615115519055815263057878531151381804721196860035851839215304326976171846694070094464115549741508984809306375670666429842052984218564548034118005916122034609116010007069530039761616041945470363873031155605635631430415751898718484493444240896371140733749381402395420178007334494182714409472088189482382209726772835819339594867754037818844206569025036941080400182300013091028505494010613959473282223453063301366154730047820883595293810925223301336975206340622638211928976321141752678402271051163465557452323144154695348645558059614948603486787927773833599101541806982607618180719855471343672732147404969994039604521617136199733627753345676948985065547503608778839902632839160985741172332595699788369105963238492915287094511500295045728043827648086900427987441480114272034907947193822819307010164508795586769201549833478667361032586456849101843138567349050396158515958584422150323238371092770807333551577622772581145494577629671819077490945760559385222080937021381260278320763590762858123314701582613895572213482238090702084620211033954858812286737239076284676541615293938775730162102300073799314607225796200291332937376457305077084878278956293954811210186944008012254985261866647866784406802337883336704490066323769677479278973567677175572619089415997279665206428543304797458638960452236862927972654215309435239107075001372524147956687621430314619442649965707277178871447804452085008108110655822811635952482352873770389926803002575902580161266478606618156925263386993732828621737032458255645676748840218116901832632681264807095417386781655339465062468232171347151564611912967889766306428582157054467937605885004612381774057803357044076239841351311328388108960509434430286023153073294785826864073217362310303105748792364859772546492590064682304376070478974434011387323914648494469784707379961108909185604680834739181341529917279087505689398848503240384395555402488025169768285470082068337424974234032042686786510038438289743610518558201467722759244726632786063474390100746697990686515636183871940094446170069774957898603614990908530127839381881236228109793419396258742780073954574651923876149517429977905092693453045189926790713325387190980206074769733753905973442477306006896861242145700888968713799641257950056256687786974068698680008511100694624267110361684275307154235112572381675555183615308421112883080645163968215645916817618157358272129061435442185503892089331231864089764124170190085711939939312691944320316428171087948890815758228404446736577567949938857652117170479169528061819963961284836824618150753844743411031965439471685909679673973917476265104181570813680294870859498559415553969995424904046865070959918814309569134501357893190959601616065455008497903956859717565060055935967445067665079101949716731255588604140644442305946806301142038682709424177475355087871792128027421154372576884213061910862126599144373048298355073318777177917497676581818938595688667602673792413658987096020574945728355760430109173040844888271918894637624213035248019446609776813453101021918870515977335184457527166371714860752022662438537683226265287228477931841862576614536316599126367337419251220348851049064999255385209051020229165495311435093312291447921087754808925787410867975667721176890833480765292637165166427511749151791399044664151546653057613818461216459933860645469114804236510128171039729189748308015106234129763428061064472285263668325451912936044867718469883109666625845664514660137372464642371008589694832898440340811137829512207695888658061909354064259937865734889591239183553171802458652284083028659560269332968351480982497891538332575965420398099720840530932365591964386456327802749251978099631592730084712083212918997458839228329422606019340513000516382254409626784298658735433743374706617292862634325286064876965246720865082912095598559176803256372513828634237476103960999158916661413216876617092383836261591060897271893301499611273534518820510329502884333494278998228994978754414705805860591326720629895946978588094648746527328720545552185144683150058304919376120584512811360298023532987010626054198585644042185146457005853362408018547152869497998240954450520842712262315249259338887223347559797143270223488795634277742449893771864899449174222848957414095503828090269317379066452267551818489988258544962087518477509850145483415649176558369839444040151718973385772499158508573261684601071710684134287121359779212349723193738638025825990259531419461458560809369595188005960925633390817959451491832711921345007360069360797735357663823030770695032673350900154267466913452619414338143489593456424325310066845549292826372067319755049584569413767622628177670049010750008778644378416761289663949591980646247252423371129600279002137007786098090923337264534718053537553352026441210545717052760600170244955229779063904913192839623185460471805923179010410771909142785734440641638977265402932933692947084856614408887446397410859324557140655666507909604565362411625974487232532208872894913049699641445408367656468112046908380130122348174562882183320044192437423136716976181770721237407331646841860505959142305051773260942372665923601051524925293153700152873862335790291600120417149527673804303702210425844457972227811906161414904308627184437714345701313490578145474888657967910677330153416970302308589379844675031894794300691473289043391068966323164996996178938901997685417686629646426239396974952899344755819427986721304941513068666822076679204879349355957905878661942749179453725492020520891008429057532324623533479598564962408690549658541903899118802092067268699195704797146726939801115674233601835650329584680193941632337657245202820572490213911006398309823667684636167903847580273251902417085676108961204598263630129369493875782464276580184762006575482586027954142128658474860907794108658647782071827522575623078660933484750321177548629202611245907312656601731093725029288100850114671124925148067451219393651946656107870725933774887759461801043521495819367168718845060930323771426581569117203800498816926490901750504468592391200943018246024489818643306371425948243275277036629571011881247397363640786833281761292797677827953812074914007437747077452710805344726658854428171875808488155848722165564776164327981684012749085910897389779972764379209517501307701789005989152641315264290630311210699655683964800931813349106745390935415042933377721930123084277506797676111155834582090805694442627860876909694686496277798761286679498881376855106151602326153945995526216244253680655982051929724040840354487468672038859888256343136059860666637137617175409976571647448423773878943650543801006466975603873192153323575551365072854456973098696582923743035261159004854709475874853853451715846059206816349085018853191892834779680712286454944079589630075327377232543589407125513888584875337050673897847414285275242290047223699597328011248068383731198279139313995312682882630891758825321720327594555400672644699389581217763252864221989938259117858826814064998846297429547532311809201050846821637728120608879993563858897957282526290089472787738961696960085231747108279224088514827766273512348085251682917920048430712247587845698669407297784927441685657426100314199713746066658331033377559517033154672339670660632877253700138301515936827947647641991591719854675505258768545316361104577067154289026911710758661606403902421453132055110729526603453977386359848528391728032138193912235757583164218947093314578136745219522691846119683707145823511590260764914845239068306127180787186205759902568410268481206571411484738916155093269724210775816950491007766014294706879712750069974971469509614527429938776838534897426278182336352446327272783761842583739612619154023242575622104906550348698485402894369155855011478578865844873537673761963140442796264094790854691884035357656213762681624837359974119853304612474390547812394228168913767094202583625308442764329394855404959412647407979203940765951873447195696497869185658364959737963583450014722496361513575542754625116892126683662327685626092260536892046656526186564486051175834935473573848083632807195292067043421468438949464172089425731900524997736634327054705819139040171903989702693063748544102552210173795306252978984912681884122941407872856877005015308459031923611608209427798944395367204978975050101117373336562327554506177367644638815989243300054698549388922663335285292083546241731853407207867094195002970533268591046231360870673688352834294992464873825661936450767253496907796094642558857040442308297297102836660681712455262108011107749501360976274053505888782414703854253224627320941914662584382646442381090826532096133149800448354378195884614423851670635550430484111381463117440963225617800556392563012473763679185634346793949672004685052569074596014888393551515115529394638816446336065999086520396561327663723720970927788092096706356583670708427606242489826666094904327952054426026374021007496015286210501925689357818866597615313259046822043969323427518543406091823377494215072506136877053779478689314466565520485559466060422342243278310133914366979848246294065894105105428879893300376133571673416858232851422585023502276078959445079717312872157380635535666564331333532304368464795338122390742331142769475740270135997417214957472018541872658326074831894287252866539979571371353905493103086369426878305875722091341674302339170246546433851520536391707640628641052296322329546385210738605695620594567938303140220318042466495724609896401153917134075680077822322557725833775444953144871865049252050195962110356443445644799064489114659354029334857343235972959668193269444353571233168232122167253403080112400118255570124395151098462186238971688821861880895730254744245154430421542760076434061224128715273797659277644165449787473482040745371471567495387409239852520673316385410349667994454542356943863089809262589949620783118367418963559408652945648531943446473307301619484924203812000615901214788433917150428658272652545781967041159143492237395289453681760088223536828771158028241452852420530196481753106249646233636233388007634152771263952989418893437384594323535021837421194558052796358544007335379237373973361378618069206591091750475917998472220128488753752251751606923763473237711383644659535707357957494854551234475910664834390221782321082619398512702874417928536134143287877847353481512792752713903281588878834664480331108493916952229038791013089422201005414689732332504312459765572575536978728057675064686462745795402194940623136498727844172042597701177728451773218215044533707857192979190296591877302041370943174848031068996468260869597934747117949952228663195575237735295544616466921890016942627751835718677951238239288985173493582746260601112640776671615945668862369937059238686089987119672760352040107741547536931936571217327864852184096225117676690392362950801407023389305092427988429722156814470241589536676593877244748150839763813875458706761155949193448291014775744673697778814368936548713933371382635749407165147343412702337795771541349314109075208916127021429372205524475322281095783073467745776394440802186186395705545845401474150321230593854921892791500836705489239542729977634176145645920011270481977611717039623843517180910868805768184297316353980234099153513636499464268364422462900836196842861843895686560689539195166330899719376442880446439664581966667963105461260181962480932874728606808740250599821853764630834287301829470612202416016760274883474110690206473622133239822164937697539855010375515835897890580686196342836818977559443096207721357207725696674008987582836712813555779249332996081141297586239269555597775942052092788609686569320024295434496929632738264689078881247264262905097121093731281146842714044163533335187764525320670020059746296866992216672716954512341293199550544255906949898024906940499238379122748210039050374356992104875880808251086871950326203594830855605709995004748802031732557485783590104481851584364925987854528552809129504190638818596694649004120925958544092386888970645918410656038569708323134080153910897289853527567820936766147221085673040989444179971745964952354184214466713414374486177664994387860660798190775258329896373354840314263302010421052807125670659901503802383299684422485169490995763067401735918639588800227865681774027652984871192943445277324015783214047020234435572745525384085420070605524700658843783247455267320396288510166454020733617556950895687809068428344100768674190760995702846853097413860938928175988915344393071730850067881235157935376706087104103393761578318188491745521416837134755298014322516227095931017427481513064478923927453216910367447139487963739513643823609428542783490421893693914991932656427406528871699399728770552193649240399204805608407879416260118292295651168090050208078693454350133515414876187559706321324046437659636281894625701058341661350228948770534960041489736151776246823396533397249004466148070679978558522101236925277574159941154891819581826176609261308363127868971800957675540284184715022577461691855509833363497325219316814331735429575245242103737982077727356900474446149210021164935034568705508693072649688675332019694909382135444240703354159559273199071918618495459255039040821540716873947778052271966107370639558265444261114070415751890199574614278199006370876961236113235655505188367778787529486172129008422694552552142876808909330221299767859622992048354866299250628182317219009650603678725639136607675292834091622750817475406487927678590455496684736331599357610850097962921094861980503496141080067556617274822997735990532436902114858873519395078571531032513631392671031763731617276822467409120498467716038642954985748637598607705553733150414309421873428731253061712324170007716395618756331959175583470724192155366014849692067200526158449227941985310652287758003382896934134380883563413174929682123039411987348874153944617729757824506556799289527642270154777195372986168815419112205656321677656052206515755619527672273402612147869029734811601158958143965255796036257703873006551886811211636239247834685170771676085286727408937276542860588776471935169921514927803993184031238453672199415640837829233547870325292535496989063587138981168614071610020557395092349139470011974044469012655404180651477434989627081680588584667145536075252542875148135784095755195496662371767579567338730168312502029480938871002143727536666465879347639020588969823424308692329061594670784084400314999327860711824514944301498934085892851283532214715720183589813126252210072566354531106254014412407109738211450212160707657653027453751835574372918966752606613917413156357548687888954014049342118705970832051180498311644276038108991851323978596785337819173469889438623019324646002583214699705483102043282668816791055577938137288570906762623519969408469138962748639944551005980813741441405715460364444665649807934512592419412014706625616695318941559799313763864265111953870949531072329463928999406669848241719641273482235222022713990689543935352591394396363106467960407722450211329985066414066408541742200554723142878176214084539172601014255013610891904253718815089122095546638474048395726464869003870190650562407494632013631903831490703636138253891757617331197801955790224120174664917831473650928806949386884864599125587436336152155923990254975299855717654360876015947936740749123195778536905426538426268166361860302833922840693750146559269461683786720574254428788546373281443280904481413554573733130956781968387979776548727587692623455129336577028449049430783665985231116050956553472130074323156994874866561943168647469584645877440930798217439818773397487068880665262293802547972094704780524550442384087874351611780644268435273867813761271827824546366552187424197923284557724584000276791014845458161932727619578021444078487788158157458818665838269120791621854587615433285475588637920495327480001526343597447760941992512644994377424442280130031269625823168874256571355827777820730337232618485177353125375615369985532230373969188914405442063353996340154972485485823050162148186094980932788062076665461607113814796420756476293128552373985697713617342014490558778416680284453875352861809531128265703557954353959544539614094483475743688363258235122112268965624603110658910438737910837884730802956992758561767452143457473997590300114867805574649661494398231330451084864417437484503148437303118355476704171962805343376054322283962740735323999609936737897603226291768552458952314698466058802220585341620136774391351828047596721934081669678039788676886232020368426456871625503905375386848921180325953404082246602004623869561147960691887017282112156312398935550786271349276963831395193653324515787650515345480989795994309243401758851845816263919502679721864377963184986702293218491291582406818815469006888525850959198508503004052303313777800732005681269261539690724787272391410014974325940780245105517890989902828932446702091664137141817092349312574614837409254190057589626642549096493255886911106466242388360909068293940531663644740081081658068380741176253545987209782919871267510335812261758238068678575291518684266288601979734293702198772723193182982983383716976992877301777253254568699817449634829830249957605260463512905194647915853952296980957605917636637549893678007690778670132620626391524224971181793359245676693549238609106320704727218061214673931598483977229430345415696245454738142558668916883810098182538646746649518308468897821985773850117379075866773112099371583838138735252393786974147744704209657215493546928830483550531485485093926301610524648737143265404952753002225810224816952363915901361595258439701986864995155192932507253108391146706905485854864701263327691389221496711393999589969869948493458207073310039761155453920391764777397792011729875234542631224674928677857346764028033114507419803846664754618051160402173462709063850560566698672328975025685047453110962713809130671451771172820184280765003422761517875286864755030674966994651887173803003716948933817176588967417569127429119220534592832516506667265778245157811092489352655818206581207445859106951211463291797173680168740937486096958097388414561486992434246929614743675869077208274122847366733091364508047410875194437803140844878510338914508666577078674149830908699876102015322696596381488760102828938870012504559802808232505535896057963378800637782004425827814888668263527120081316151567432814587669824763221385797017538926299249674137844714111228880579512181777099960898971892428233800184049635559700944105268029069163851169338474318679800624083688078170776137509662748878078063081742523200600763665587382253099698567095510804627444835648133893492489675111156770996732996529952400772733146147174966201043786086137884059305269644536319759906794729423568562483475096023944404285338381232316158051052773046002538897407697554927017135725115928623697895014582314660808379863506086587486176875100192662601479451380518028416320840676330783813586697270863805490579200758551088334432285861897967546669897516315563698188919085935588719531369771285859561250871678988486385363367487560516588350613910778524172294645124976810231491701015873900080456521280566390450397475592587474067899504235438778100114507591838832217317128233078382075116270691438285713864295290588591137447159030718914165143172426037877312620978017710093168454852727155542391061797916348054381873357685907646845142445823169186489852983893913620880737235174332723421075925776337916263574464717312045447388929358713841399383419736789754524985202425963712802057023715067006409309278049116068744199507663004741478057141151387944466365274636207234103848637519763243735081543546263986442019125356764885407787702317831080924759012808829425911703412715907945688375316430581199821235992916685825920518463302629230251517860110702969219640960082415053800122972066683975379334744262519820159523186668397695553986685854075761327096892906240394690236314455196515999215314742405023967920912318280555176589776959116342177433788713161496722598862148348025227165928157544545745821601520544927252395864815230205603630150376600732736065514255139889949000737157228620464247149701343712675450875136589134486216872117083569533125597373186800168153568932239551426346941556858324186261467629197958547361943136509425122970694809818193718641365012022814665091354452355388504582200476408206059249951158896549791379194971875880832796421985360024193158983860968870820843102088521854847152232957603587024698560820853578816163273358458035112629953981426558384711393181360607280682888619765140413046951672898870388477951127147145897186131407188640478278376885655669602723590297060186896850405987254202069902403286024532509384033989704740415561050078530607287680663335188816529535417232254477124746300056293910656759128455202238836506180246855565603658859596664177729182230302363479070212375122349892718939148449951631902845573678093179444209463066605326761530478755289073648866857890789541508957999586191560021480727632959012777449988692368543683201023388805328282748212654560829538142591129773273613500172826982290357780982182428452031516046370926853346112517962493726991680778999086531117913510518114973455865209348936677170184150904789274730013574525099370618561740574583919748688110482654986166831698479675301395635085900588782056566428237153924085595529875585950200973582633184343166351100798684896540896074432090817675806992831037674693578379719756093953944517909512828038622020036830159476354802507208724232234874552394706854267435550780900616236871267558964689987597891770792747384497693361460909237183399830643274100490340067384041363707424401949077012436364515100617420447640950864471075786243876385234254384562077730883899937086103662945083959176740624361917318550479645825989974166994718638578767184275642159167336681701875118156583777721720203041801144521120964151165464696444809722352949137642250962610455632025829295430459230336237798943201584081265107000324407343308589234155139188657312772661262802718995981404375315042609865629606957407132066935679557350546687955937498197381729534743483639856306379518167951954210484374249158109436804037083275682170889584817748257188694443947987682756946543517947252286025499986442540977869382815788992321308741216323969876271527587369077538824931514642352231706520585121906131403400768522063166173852723420352033081925817257675891006705515507167295309610392282469092939442612387143480704793856765370015528121179873061814148105461111038365665818906572546550550535923196668781865902151117431776756743428380849807861980884576775210686002012478732080810392447398647529897509051896474748502172136407720444105115839297025029239752763871814395915708748662894086359237983583197487706230799464932155570299807186677010462452453311823250462132634748802755493652814867962665366220344299930023721910930750405497608208262615079715196695715754382738808721209445514177630216259023072256847453829274858324703219381082078918206737484622964603677162065646516410583819578781364081212232610786755740486425697435585630421924169403555191424550268376790110007455263808736903215873917200989829718688406480767820190198938744188040229649890950656091984273895733314019602990756460230742752255394515356860489570243448326121566865857149563790110802273532102340113405500771655131083162467196610081490084298267349118604421155967517716037969288347397508266135313979950238394380646920392110394707451511672302986309161272508279614156740671500506779225265212027535490231111844126513221868085775562470869186846676921407654374941864017979954035003850172095956007105700599683871554905784903433745957900732191533673364976105909728549820180181134730026475096234156034798754031348546496520669500379174552916199109035894588168963716494338965160140390460820739870178982018890707209587010370881022109659355570545375251722975479419395113383757308237530702529434933436455243479378104464525006560244772025039718468884169074032112586401684456269652651076236305967852957949528649201022771328320095829900300517908168709256845914619451060573190892680431444204979340241886839565674683228973022054756712746240488457237382139245212433050313509515136215055254269270800806682909773580941461952490467411115657532671693417327433659176070033263133895944396589361546748294022115620489372386367281122705740969046943586875796390969112859302027613343109735819878063778841565665378266679634477869250261224991486852855144673791456425685182752770161688620679215041129748605695069947733953615900744505314539734570935649172977255956548498695336599807100214003179002946067675812743012102839260055595641399813655881236254397801460841231912730833501990403297447868147624844983469798769998065514435052830809223234591118179881567217911405231209077379464241685850334689056795220841496342898138700711057971867511819842168880834287011535702659133892640929266193379623494728882469767859573405984987900401130265128503765070240836771297073743927646369934946961944536686131970365223115422973789795263304183680654006360911694946269883793080487805699106632922602072664787892279920148847448340208878964882936001136745546155079529248119980065974723247050278140804466385268751064264467706630799861684305619237778362009775016590340153356627927321539855899533685600760901909227861329624315905000279384800706033789859761155152351271651641265205163451471953439010717256985922700214843924287651470275126232839945313932298823237167072889337608203260952216625387088435100066432521385809306206085849218844880885184721569829211732444712472100681990322499576851757930523871193455440002289429648838990733809203485519908269180212852718321942392353572742773984253917377451072465621819745632554869949554271267195813205694971053069161577557696821447293603876425307829422789786997424418116899913402698189945529294997913702266359588171318239754671256198602853707344059149670541081096474097107890167417153439319105373400866974679188106531950000145078383060316003169637884704042427398839351341036142899453521142716624033739246901452672918173889617352574675287498145883745602035477044697385106099599224390378511442430721414374918536560839837983535351400137389835581879482980718684356660725239047879828947319708874620039985311884406047817480781027360967007940029346936726970251239717889835189262538202646114027724563001666115705656678604823234411550537139349174857094624556591699624844547897323385179067782467373112370364510579044979877055418220684654726609359394604091226877225530410090757645133731199495262672912430033706470287599605157580349379818455923244795671630085090434887798943672040197436898643048320029351771182527264976460131196351613240848150891896663275329593366076026668154539738002556721894831735135324466356720891327536556464346055068261056125901770830818306990905525964168134717027987386987044519987888025674605127306815997597678636807334297320197582010072619132861125353501781151246858030685189970539648850921950413477494002406962205036673849769869718420567849288481665886721207083136135930921564290844307598225225359103564357415112708702807073457099257428547012408872297941305860449099443156945795529537624987501611980032998216406936151707827972780893384110779258142316130413456089711236288627815898709036360906784807610048488604271254947046291061018264470838578856957186009099054274710374951544849427747880225731482647604662724384385959279752301767391696032033975801857043763608026714108927184590392892611063531241555560213062002922868365391252270870722352759308329150338145148264339043360553831421346391556381824079347129663645125529518894818795240641307983944632067467640332697139283043580604873548709867047505412473955173049231857837302280982684206829398327182138890071301887255494958422013327571663403166520632590963303833504353897296338156548739604007314024140099329052216319399456608635512595873489610864004233306014309889309150516767346805383081839209814694272830699450016494918166227661849002445433776143106960824476347307986689913403490173961591474720845435320208084943210398957305752334627900572581542265675945847299877483120665789611674113366819480927563907940823490310489434005395786640446066574419217499717359964755515950684179300873887357655719429190957214441438140528124482618514937865452565449498235182970158124796709912448500731101049291365935862783311686037745024861204033606857572677693975703343328893862370025643358384097818249990574983067418550153529913850527414271102201578809924721788951964949006099221149202500491937119643659564709940630330736655329026688377340306883029142535691841591871931935804505748852938692264201133360695554497044160164907154316771517016646013032759545836099470996495676807616937330921871237185369305389258856523816773095118746830537287907350570536703634913961169226149453085846934416097994572596434191484908976086931753084802288131887037990278635394714234694649906475669492561715609985265246129107201812317590369484030866787295120460103678335277152032238327411092976518599892746816213634024164618791145590894882703992889982975736140077655905248339239249228450172581994679250547837296870752725793448802050011539165039703635201655445834285069402880514134086750742416959520221324238322732682123422835930953759668219558092192166592891911224907486827532030563525667009033697047894688405944289068294741505574669675013375168959019670634304398063979751536055750505970202846458658552435790643689994634950539863481044246305782226419555180805016324758866334181333403572700282135060260358116160715869556916525595385301842253439626093740561053217482128684775287001517700102923702763398732083605486654148275395887258355827047274323751438012428119989723855410003589995631239628035207536985301690671746421973473627688959261892891201796475064933992661571520053699667186118214739175148094581058178474248748071912782340837569614892167624411978928184968766218411905237440886609974264310827901870291084176958871156565558053135685256241615621922440163641282379551738109905258407812069567122713807138636593599850067126913535706012321238466778968663470312633106549231777537627078613243024729189218936665048032558792900017649673310007209683084510499138741881541944679165340238178319210177289113336399634017569621320394702033588766815158910565402544624897705751729178635414073607226011580585733977145126746136821601022712415203639193017656722991702931299124307810512155957182196015680750392798224604948452420306986550438592427740418961870076110068381467964351718137888298634238915063592442516766367519543325788178963905741385207498385111499568355455958398461718375692649885674928200435501769026654188189511732582762445750864875532226894570199760779346144813644259455805774070450813218664742368924013980549801961087992033537595815792590457246253002763062079010765537198348905008347887499540803933483671499981962312099914485577560121146022223751597322032663370918863378411440158188491486213161133403573832487080267607021261172890354506412751718461053578145529603933537307477392607463375799301535670366947892476586344861047271507426361901485738905383269640229469907856628518149120672972006104824422603665473357355709986895819696460057525179374299336696936110142766033528569222933065858571820483259861315670311411974348856083591242199882095907421552289806509637912217516328213661906280584295385331897604830783658183123912137492852286467406940180753793630761927297015105961814718441846421287903807074174768565188700740816642175297277815467589749379232240915918832284718253291989169467820914801712559832914917799852842472035727516470550574180336691855464197508234867773195202638731649045546581585952818327499636384305943492764953640362733415150077795861322122079349287245841401333195666905281519066359100306052301028098273141043437029471761280360603429413866995544578884149786977285628965736606831443178281256603897516564002845767587234823018879419694478653718899336953702104933138912252125503778082508843562284913567626842361510772645160822757868570779358908090350183611335191971203485248693595472681752627154006488542716900758820229184468812096666871034712506371201703942332987703144757694846253434851387542503975338784348711413645232889442415241126940315364503985468773047737705916678140716386366837525997081203266291017540071818328295183438574124394100095677868109917902454101331835459601857359442276521277428862976710928437608235354580721034865335638413326744006168963800335085744556343216885663798254934473043941336930006804837099316954750515885856933018266193563775196615240379673938291717230465748015896064197977952211923823030153278243285079253361307996181098832022382784311650067861105922783712744672914516238341454449563763093214891806135450623999108061164834159510418238580429341881271045955526924385739721567222191276217577732834753746357029646303939768121304280876030597130298866795865352060447254581090533927356745600131828085268223212531247040594353583428321197176546141248084964929560402836545849751003518291759870750236083657713375972371094524304584473189467038644811911349964874100466623376319037098635018412824281063657270784359029367488155772290244450734109200153988493574809901135065771037365703245171061616880668772644245910187531703452005301609226428529830164692667709809495773717155402325242043344886735866058534591289825000343598388661907685469993213696097245470751511246236812695161728218588496721426126852195111672550139753632503937176612656367182862224978966056289866068658828550163052483471928123225578203160936745246840705707073464602535744742267420714270837313711623143285929827753277527808367857997355993242152880498376706560246255175821820366129651937614623444703109395665823506684827131374434845742281485494279477712908227233110013345835845650402573812788185355670681534210377164838984230115488396116973553816643397613739781497489097588792976629825546120695202449081720215104495030198314833696757778225772295015409965851985933296567768118544072006574266851463655549194527325038574402943263835469349972046514506836392577772088537082659275753618123212148993393815093809140785290710618719677277102187710551798668185243076437580726601730233817573471752173147139054194145428334462485032620907308078974566907084511097694836482623127966612853672874938978680194126356956441787464498532489811485426640197908330925624941065193879553221668909545627323777509700167909545941044010390428811779891367198168893804012288592684568148579709745189422108981561801897131051174044657133596340245646340483872293741589118383376806904672205229835321451514900449110575487182868736575614995114617974685706763737069003448970763317509152342709646362680300386747672612837644570792669049300615131200026851419679050256832781031973070138267874806131353978683573088803453247117223643246756071242887493673140522739590747253208927356412000169273754428140826437554977811498669205792396814112931408788498551532816763642989284019069780966889761370273927565493436955049454549436251313960020448418486642795834248582072552566374439762165584722528598075245549156772710038838636705753763612434497397221552614680900668694589323988623514256841224852135640293407353969356245572558354301616863780529803492375396035044306663836373177689542351465005605804956852897188081779306688884392119669815170535397920777730070082411361817787416774851083808958440961596643440071487583041233504208857061299875517676008826908900879875936272121411552237285486415590096439880264534196234463103253734105918479901387272301636498452279728393740913785069700731113366484800361613829551921007222025761802079271442794938133027899791217176434928622457827680346898161119207671800725680136112756348126985602673563331212594324374241337602113807433412745403194105868875918189598314405420864397050489869407791793673123096904387468689666872420909363563055543555443339315915627221631028706292699380206858418875175091853216038553016202396844382026180036139786743971397315157182729807792684648178522009371132443678899754742545800450884533512220577322778543657550610799823550185580007543055421892340665982023454690001586375113725347803785505781138029076417523293307517062008770528822023700143438456057824195832109393564817006047682902483935534141759116669640168648467031528868756184063120939989495783867526611531639435171661385505430541990561307096365202077112068646054691358542910251577186124581427498458233753651056506237720398041193014212662776714406379432123740798499182739141024681027351795091930622116827113160014118356332127324305968947183008900245285919374751381994272599558417466651863566340268162134008240564298418306988775580038179270816841399616725872383224703513271596871269021013101459949503256598502719496251535792854687232203406326128686616603170976787757878788630912755779527020541948277323411228491098084029777381217005891521924669554445656424772777280594939976614487009645134043291193914927728683626051581974980019613509742433352605772286404526738090129876964492746738858748365918367798456811182484846391156942372114455216726708342457259997772420840071566352801899426795764710820622021418168681448567332906767234103141471588156644694006587425543883489760561298684042141059253571680072909817280036999494068831021558882456557755306733274101279349645248618836189306676023827100579914011032403589340430745578407013014070890094702469494876267359715226512033595824915237983619394024043808278838693566173868912386450374432538924591320945804183265389599711025651101185092924505695892943379699167944108135031345240905986288756088493359300963768453339325237468056480828154242514581080827307104411901756531548805033329121692841243799107596917502303369078059819651655215058006459347734154478163704193950123946014248549891105744379218530192961476202263518453749846316255231310934635585682896889675565496678390385989722031921886151760781775163821807629797988340167510386508474568970159788216432998717427641697282516979633658312402210558773468507274345710751940921243748610109707303150328734087729806824556448292527642374425918427564682509884632867187643948953186965561811598307928864136790336552642707438899711517708766596914105128910391891575499439525996140414076833630030633296608863507631936296780127983056292029999692385422857621792025082291453735148600851123312930947797728867482390405301688332510947871430076711126285664174596670539387256762235594042233133494029353580423912901451281109645785989246047304686114908748451836798481684517942267016533204225916872841423882898718511134289372235501783149929531891903050277655190588320881066673526138534280939101313428992306621810557731196395933278616720342296994678757514580160694280861336392103013495307907474252236858640333708244922921115207220797801977270408342609060063087063452681402511768721991014366286574652176175016053028952680882106088325487580093444025199314338274035518518861846902960442080668145869338014091111009496920042257151057022938845724306120940525389405815680363346683078612117170519532461825445217115148928964119024576096521375618057391674952391961777511454458652349335502094774515853696507670580599890288983467909454680191920947174829404486152512153334739270862043444092891887735239789841876107752116203335923837111900057516884184591535356133996004342337518736490402998936236335462820107244447124511231118189462600952844804176923582386819352762636585592567783151969026321727193488187230236594300019151381810307037539771292332226762414059759692802921011093417343081327791561600197917718709904184736791069791289526364639748421322090501578866027058723964167926700016777065636014886109806377152843882348632629629422519232792298522084965203398417368111375120523887060058635438708179684579131666994313939575047924175075920556867623772467641217612852368963572034150454883387569106325473278173933397708278174177863191872591062535479806233891457757912662256508904344682469556202421782991878897836894609425739348720629338215543008236114394955102308136838544114400451209497154468448222599791463295441295513023010924981461292869476313075232576569882390474570917325306093104939256252147204196817549003084619645198573469149104233124948269940137726766019739344981776736590022447781784810288462107943759272054596021714910563421163968699854043137613018209821286463058914872550917780598230457804828240422799648226038532701032481922463309914204989857905376746166467236048466741792765096303557077596430039320589155626236120317201027039143788618647267973077171983023523093791185303226925662831183704905987943753668284389824385121598417539277831624863802820195317480316081905057184983286830161978946532554426357417097750423489478414388530505433119000992391322559534372183474258857623943631501448379906312258886899969895644123965954218604065312995677696274240826183724690847959818032404985487978677640453735716897738869956957228993083813823664106434089179981091569304902698061248930504551687414633488964440428339071207610509526394849640689291312347130141432939416629960434644632319903216881984346160178366577785914300559608340172004656139450669522279509653307204219338586438278692933659268775137615438455347316617210975419909816473928273545443350426956556398696323316014223459914657628420182449444628674688924909501419556165074775253675009332849563494497982652227972877078333254202374762181761096353425029622234197741399578700172931696032611224139239738020366862364277072848070545769786776946488945027440963474027638194568931142935126931719651758039780342470319625985423539004319660453003301230123358140952368898186772960031457995101693085773938738577992091860681070240919286719578755191046500424484774602768785138500002443532478197445644667125516134934528206207893594409585056523769170082887720072532379705157983966338899549484973584781305322881655274265923097729413609630244670719587347502915709251665951216619346675998298802163111147580564958992089232340450788124318268340313297380611845558742237349732705376836728476875988652071896860440841397655126875953375235900127070203285323251852750378435459873330123790328493220421204015613236448440125290162932127166728326166166993730942374121231632257945275409076873121735737620016396770118770750118125467906715125336274201384170820317763599809464486355823520570586334713276835292908987135052892755478683618497231280563348881180468896302546907551443550685286903927672041363676714725743604398302411263129401638940039179863390395458916508917743968218851710589794874470994975162153627121946322616042269130361814157816940804220189757092327740352054243180366407706911625153424745093159815035791382119667367152547699729215535437467596324144459517040937415285329628687934885350126359099388055633472350199020210574989055966699169795703115594011678222219962120745093592720893275437397633281267664455515801529557972912855866950480169334195041800701505257589362876303506890639020092090886239545753981826123790056795804301616046561807689695188128251029844422667741195073402007436996386286283826939158212483703875979030076465610136630224924617298431473248670622287935778328858429033320918961803938025274394174777438974070399177076767901920497781907524077401503612280112527524166318912867741889844569444792120569608782089485978899390706881563352626751746019865754716319006363303726808856699429907390456328466170646260514471592741065703627383354889859135266506245371808505945901155876651045751407848591610972747130804793418197306628056959787984225340369695374337070568309506175474781053823868169988258633858031870254769776223510097083411231919655485100879032432802121734489364520467452906899345824183338561424467813952122458557434264331971117660009213750506262848275565895328803785178784152543325703603876524051580757964464130133095449476577519458905382455090471907214841356891665108388418157467142478897004460811896988968226982441446957224050224033187220025911168679862058466130970561465835459158670246037082892026233210055941683318891866704133960372520472696945296895588693675914092124346517132031619574204455504046430336474166581976113675655094244309248428108368580451352169219203307540792717180649387465544652264299390395362087220876966685958355290621300838372194420338183160418112092485947224084338211454112484788870335430771591615881605188548697877134098511147868025827901715304672247003561430132703167411726881295689765544300500866416132337631273274601850610476010921810539653061377939803594261169268770192279616084369541960431317954223525193562050670081688610009246256710208214028245134857758959816999929754743012201336797485116227065976708717707542025498253053491610196092333763688536181098326197069199400945033481350970949726992841153380618795094078332559716001928364379846940030381254323417633225169987308429205457859903567527693656590214961048418056142846387235915101688309374319571916794821483168373443546761625212415759525934154758081976764358489266205651025408165775038813244622182311295198655392266070165203286255791388003954116003129562357149170228283356893473220795053169240913860080836094524150904511208539290243916524223218429327305320882306277308469947530693236364725892800536765767168445877336107541520765213739432780495106772193772273081089635361522333320707833606436528483706524222337867034964851974779734560906069135055603974982354412294595004340074359531717825467835210396730370593374624960699142980253426914378179083838536628907102576190953263856104417669937294215875528497731696874334362097852016151443387138368685816932256157950531429456168028366493070723195770812106178336630338029556896662245918768845529988649275043624628620062444246051735936100819055444177843778520231694064990504628614778044579802165449661183195273624457083453644874213618176546095213844110253125488573669436568552416301083931914124040669668523778560884827478112349440808998254697526475480540985130780167357069687676319526527320859863383422894081488617236990438535973116924388981310265510939654790647415724297095824805005608908841808319440686627428839956587709655046429094254019772454425591383219529801872702266184135328233303978876117318162302954082676692886472970347989161084529143446791932849860479514843154806547632071756605949433988880714489591531089473906840562312912674785168041778581043439039529612937104735420510156268429918563400204174780746959818875536992062836117835990930407336251066752682616065059958545079650293297744741716823667225184526341391843826707145041626591544532204452828620513001928676114913008405486860469763543537583002049972881566359381288862094487284067657173415328987395508475030224186362733712727492635531930154964702916212670016201093000787843206722178374361130985716845298076287913924029993822511180384290121363978885151258086451616748174150311380391508216635346779715176324360968707860609614183836603036252159337480443528463215945745293856047716263695012387629048877986100585404244573616663756647106870355634033112527885872874050482471138615134905678144239759843841329519029427622148286914058516129876066855011766704900128740647952238618751265871593549147056329768426993765097925004601756911852838292066477824991315419444735053756503303477405353938256824737034251418290196248448015754283068472083124206863526825737443854616774265884834523454366886405514871507684866164350686502335539974421101326317871022470855578619769085707956075982490464753952225708574287720022917680716167478613729753670999094416847844032243605024959312055810363481832283646596470996468559240098893320779223395734288549850570972693112243955708219805220966017675648804652033893583746346849370449746880783193540168314576206423209925362328342748057859951213184438662937798027884389976322315442653297985541211554238733016275502159887964964981465113965869931692777552486855378252526213092660272573607658715358745553814556110741823901016473526721003514154987062809173984064396391075491589391165879005721945378146427143507054711032363853015028911433976402199675602293756853986129042640753396298904209738962438572853407263286903427441376696028433048387376395601323391584256659262657976734354756776459807171293534051648281909643097805128955904542901967788718387776083306013577046597121472598293038696972154853124635322068071581314950835039856418468442195710643424512018152415970082151235664940733404994448213801388941167226293828687360680139836778041293650426042438921850633987107060225565812846946624349619434477665468208539973211869450768622036823143588649428165703379038963379233549752136865698123859509590681955619551316475207072051221670151784606545291466837008063487305513680659616230628626356713418207218655164866127622579889619539139722931985999121878303559950563252003737484234998045129072184434344081465391569104268216843124551914241763231510499491057096756714234419966831166070974475865691461349041096205199129766221822481671655321857828375551117913506120662018420454524018294359314411742953881416299147775110208856193195256534099853145742448530698643368971115599208862501284598906544390414173308554175073470557827794613440448665576510173566375165699601725301893176022378770545154314269006866934244075817625639939618961507993409682088737372731635660591936833366675833517224129982411102017677962965535114731077207763186768968837533562059575047277663212058341679267771200624169608730540254351826293330131582950349409242061122098215807217122156733468855897327357568332403470152648817771264262869736597887812226691464830010020373656976259944222331056427764366568609981538953701308199531266052332081225687476131965952443410215447214504207886183293534722379874179310015176269477832369017612224221801456984828753946953612730025268849826632999132229303614325192839703567707180923876394027888794449882646186286959523593864634203402174733993137733732369009362827787117865596258719911713627676903078639619514204263575240706096053017481039683173012639568562536380641861643277187237070452282256396516016918875838122282850706098617075756041815161797552479624854112285042204526888805515364835884936064288782207447067850846652663452518623411162725852701519494240201144359114130687258579802226046162365465465950799091964189158138703530365651866588934337110860919730697044839486322612785696844534936904069636756508888633380275305675885360133560615619138382287015720235890886137970026067706845368564730880393805689362895422133905399896351047713526201943549209062969851830738793704452658492930907175845488650241103062508180581647947209567045684290726999620069785108844760732150504683034291978693201547494353860918120622466087453179470357423399865387792736438174884430108448451167943018390943597083293685163628589257007779725510472429145371908046687303216783288431056431398929662098101741966099476478288752302040168666574876548705791123397414855468945550383463461979359423289415487450444985614948473734730021438627299756868206957990900949397189190296045095757015308054425046839443504562887042212992761679132346552167388043814450141377369662292672053943834941393373495211888255460711715331031064718188966852891742500799749891745102370159563964719061267505579203128843311714404820544459579477437539489243717759393990097246113712449104718267345931374432640881680283808977978974206987279323270485307090060326055814389853771155291303826728006388825093829582519034275138691535201519846284125420761396562737773558497295756687358432754049827868012492827076251403216606342014817196232551738047137698202106812246925310409937595678259496305391874328032678249427769826814460123528199967532175970581112121897755580993479726652502108529523507292426702895551733293592205330309593937655522690979749648335483389448139622479453968520288062566114037862294221686819994701204886974271252912115930924414922259124343210216428737871280504240794804509387064541517335191282425293461597562184633719943519115825224426705115916820475175090648586926732400170132001448766706074122176191857669067593553392631418581156985862916427011111168635413980545324272839547943265810433496612556150309893865974450397586135368775465863549096700272743753532094569305444340758773821107421683909285116668200282871202910359494632810180568173321927976852850117527147762426854677309121765164657968396706532077863182613259381116622981314599991636885953131711829266729133163642851896662517613698928586851870138132540585758806565185505435372938740929534741804792973812209563947152937598008246416599062669264803376254582728577749328122380367489492066314219520320964079770623455763700652314118570664231134276585598999883519350423810558858926840641255125753566220890702099323033019255211999483621793142218551828899213250040206767487360521512982792239166344602821308806737645088106402642774842497765110758099377410334134449689532071219594869806787641391625365830341914609654255376708863645114742873855329560130386720576718275788081723313735140791810393749898579765107869969775901810361584771957568293952892264498928443778568415183664195773057537902744338799445241114169332328981482129897351222370674494953425636329468728154433001635833633257791393971943513841233691627862410325458210133054009927219013582395042483949102752241737118127677593748790791820490508440839880461056306231977158480988618085224656141759611934973640423739405654535515287172895591102655371753286856613125563481337238416010624775417145475420908592379389139929797763656859542212011912775722304386178232459638693724460644913117120137908601574665502147449246623977500743613255767244965543886673184091195137112504081636159443949243343669296554407654876147904068215994216901236005151497274230574943785504623616832808982824263765127922108035632185105041318227015789466910293168817255432916831665458039356989950635999435619551169942262922987192641096771504816120215252428018435757351640884422766803181171508746398673345831954282402138891231426774397959511545767714906184368542782720602520579549455423121935096366844133819657635546800662230150034651780822641733514285428852998518373202196269358503125328444827541700139351064036921734784150539763732962661774681780691203618274055332072860634864156538705517352100044489155343051135938020294820178016379677097079069366617551378671473684633386483320104478994589289768497880947168091698460413273401234683831084172587255229415094058220298101208013182037742183329291725233107740564138032649252839740139535622385572605853098661078314051699919445019922469422026087935423467649489207803370883552932307907488287374749472199277426505830240733671898828605392052180296166159795988403731248962477750574300534360274587430730133889602261913495231741346068771898618640107104773998256732551023236598798721272166523951018001475189809133111453914962247699731332649206584613395746307308966195227873327563719118075272250987469749129578606000332994024765050161515919213922659706557432419768740672387651122843176962541225830665654432018746007260790231253733415906126476622846554864654776396157611602491997742951406773242428912413887383555199072363918101088462502632402019176342895666481421406201015514216207734612530559274169861920263678733786383550245922126270010782057239082322042243994854563915312044702964797111051817845464268867885654382359334318775111063079999099631182250820759927924309540104595507913711633478968140954042148842705982630227430106546397360991815792970534908961193277659862883058717314901736310242602961221089214302924602863039492851593372169433906911465866496974941535216287697352505939492198681605104958130837701212489097757888569586650461481644248667490172419359739134605811573312424733979175045115204259579149505378422461470784352919534773481158451538657415788532746125165572917295293370574731257093840246727695995682754661947775644289645317203322897652742609297543114250551913078931455150001824388060300377084291389378245519752926057476713856369644673878597043928543123640786006457920329418755558600386011850990123645776233084179713151824010134944329243331902361684282670576528194440718713637460615435031841705470558767760073177904410312258872442722119728479666404698728470492168992723077537433730074719577299087104320980463671450806345917951764769626102907469188260577517547249555805353865484670431344045992124823145214356855896182856717285694264987483777856427769814251364624714480580980553760394448307316525528010399973633807275936221583796202472296868806753748327153827591021123039553599078137567259368778804895386195101217456297871220033601913195161346732637632978038319619579592624956359824789882769184359539159575965366360402086864561151227494983044160812836871477531669486210070898860661236122729770034482378497799474972289415573257312880799621988392206658061511720774637606950273063487784036286775227500499177718423469507382063943095602367070397953944149867408644053665288692706139509596478069513082994768837603647184591100188401537635563984056475435264114932257113676391231166384263538334430061740176794396220733569022163127384309225795737250499514665412788021733929829874060625623039587547986474670938827160362322802261650174439887893076053306820218640293032377400132841026362233422714310196333057082713763294244387686021633777057571616576414022277427571294718125742053448134661079230184828439260221259201194027452029933415813686723300668659457539611961885302790034050372260431474692374867049510804771192084129451012181789733285226698353929165777008211652792204714644230711086007691444118030463771407809265644074219861427726351061282976722101823287679352902205666394418390773631108450474320833192226902030153625304172144150473976153255920242963780774781810205195221431763912270578450407993143081623217036780708828786634435181903922115761099425801287262792617244724619608516421480531669453426974651633487039722558746956790223862759539468897151037323708707814964306060237522273834450384425261308697960144135969461109334316378040800826417895526695606529697968710683271859782315907295421276616378151648008561029288065699960691668433765198439505044559266723660475511541637681857890805799041298995926370662462994820700370663285915351789770483098979543036520624210130021270760304184154943276235024310746470176961635008686076553112343816234517961646802195701604481810859655046392160537276099151747871348013945496003766055695021764185474511393958584230432419920969695452361901693569430617086881299828007714024010177364367787244966237397649444736461567380001811722964960998284676018492736016234634734322456168412895751062282793266912489828793746221554808891086767873208425179371346176329183314315944609598872731779132255982585837810728187898148487115704356151031001191123998899766229311347567640456541674214116886333510830449258455551657877069739249423201130572873954432064821467666802089700867456846924254797802868816070469906628869698386699998431205039767490030283941063594341062308267634255331934861496168850783309446011684837747776847923307182409253595632169507404427526002929881888128039931891453139461046750518164911196963322809307060839558698711979068099611668823835499846860319415487108200707387319400043209404278771028598993050426321638698540410754080509665211301946612796013921071154394910535656254378906699096540773462407830498773319249079812555431561187591664487135067198055845091918088683507781616315846517311343299765192278081290583322353316770605499295907161474291527290049796038141821106000889292974654256802436641613539255910554395950776239725920148694409553489501527947258056560597246702692105170800786876740043512109346654233381681799818255503644413614444707858124011526447999302038602703537639891247623967138361928140845746970237154326873999349779498881814644314752341023303867188635299966114395267209688445244873502343848904612632587353209298881617402398038524146801633410167268098429782616273282282483703231320256188949475696662502054261609166046909695983286246711219346681401295735386389008726283597454163431087568274975901737466929139912738463089608389363812878486636308475840708421968105562289798784764224384949846327456076466263574633141963713879167563259049851487512651622672462435384869835809615053058592312031968590465716652021592276057616276279558621409691700232595544634229440310241027845348201670978991305584084653062586290765368895134309043952444488765700929125511456592254849701967341155434798367701689513733352434114666071951729857036753106271249712779183677732838634990206539186776523010303488144407715253478152123694535118419453406269818880716724425053462054127466745241508655638193145505114088049696945898337840998783506218618795136187272362805700169370133466065956473800615538504581936202254033700234299370805086098039667405992943024941787580451891479050323323966228231643577472602813831255775539649693223155872482033969404411748800938066253365692107831440874230165115910432008126718106189435101011327142266316529996799213483908845894208213586705939870216559068522417421621106396641959148546257823027606226638502319848361701968718529270526452643606995586075774519193401313801719695135167749059659003600257106891372487165122961506278395646698536315859189464195088268859740735762999430916641315480792043991273735696805324651061884043847165488909037437250644075943053328415653562707357737188759432665479938145457345892479060518359849640078230132802001516390406062593668365208821270136728674577273772900930928865029509145093217181431191681712507440260104467776902119378805703672767487216888737862872325330452939670947267611573464393337884779062306682380951771384346114495362892156304289629085142420147853908339525790207023282127816035868009714777176815170756169280127981548156730855504786310662644795677568584929482003205930862074729773770387503900274489536201156565984199433855417781556613992121363338077359239400119030899834190121437124751627881876941215815765764692425545148024240382534286476325801756668890624861134607100342506405905980383198844774519911282337519719101686529474908030000440782428203225787015406988957500627381044764460648131226189374278859361076823690120467110692901485426998599365801259029648748989963845587900120271534552973741826871688101844111022564369669631799014762349008201083498378421356011063531014978768961433674463642125685150526511722172117710671279755704217917789502549763144999374525767253598760684845166452964014013128079985684547596716405659204537752578806424710297815881849370176522056700460711882881297679693687703379792095165969180278003957634820491205935895316397021221930368423516335449924492723277598618057043196832956622342248210601947986209797771103728612144114182447207273742500403399752290876332279562104178206009676834034913997160603291537002946431134684331021471286303364544509934744890177279381299093182456291580135806323346425451726254151939495144588733385521022284375874383157239624042318852512557722105386664198339760099471273063303633140636127723267436211527669061756734549717508782048548015365958117515817370109789811919094689814273444048118854786394078175486460463802767350212387882179290671719095019609684706075858735063014121565364454079274926222425952516721387135459215567637654691298653786180157484053564618729623999431894572430924904404252869243596424768693975913503422258451732709263337547845621808884558151171259574638910096776384147584570768780785605377201292321305739367512478560642575374742767596391490737461774400563020906561910934334134338131260234284348076804534974390602798786448535998679362589561579076056261457450456738840799718216798641751275276064032339073831367313555069142089341953820446694806878071540985685882306615053730127341707458924894075292249035115560339165753808709445793210302176106701538093936500542813877028202378094485069598623638890772941575523163244001318163941490491769469289263520826748837219568827078948979549468226030580672988312997169340249096228242538833693762461914752523851829221960564141784333032869681231445145728734570476853534737180142902701173413748242021429258812341164285931970031379088750297362756209103354752550151434817841267996155858916049295860444872273133718153992705135771120583643203651574291280665738444420040014903832733440651123358137575680393381080116466045111454508759131534919046410161610681511461083656849500674135303216849550754307627256436643712729344858727149488462035034012865704363562506870485946389189580237922768194812416072411154759699312012939831470311306961871297667681248132198695676355329694839965196063024462962815507228358256032923454030698586011410962830834948989797793397119180292262182147552688963581920233463317664664453412596265210676502914146859763077294490718128684594209941123532098084656788608185840347900298956950531981558023121420442831554593157129469613476198904130399060400689211223779972912733116168366729745201696723881203450683076961376848538253886835074578035118824000055867805801876820187375186878763523463093198601245951226348242594006073893175798039342709463713032048951884954231229570982608285033761520149871886941618548772887736147641987794274529502487876111660819295818492202417794990698434333946631707806475996712731204696923174069420297162202803810440861241679794067663624304438029325970936739618553499713431341633859029278110079219334651859946156391578110287973219379780075662714684845606133944130107426397340476286974072421542840699917946764337269205649161497635185495405955276360624082079801553602632276380205903059387341613258358777881350873079234835350230498065568852781454271537067626423262273484111190049958728635056974032493478281454190771063918413481582023272024884244305515301308438945119328440118501258868191365482082925790975957272445091061875107172869798524514937723447011077864523252626059202510247455099520880171451527727064846869212991872397049726118885099169257118988236680056344825701338883424136247705968225318761651957941555415063519290089746711072976101625163471774248251005566167986647476636735918708524512098021192455435196013403441329165062996945665573442434486705580571538477312378567652520400906176005536645296798156281685266838844935640864595916212109077500599281596867693237326275999956207252521085852424505264546921344599369771780447838949084920020486798729701960991459446778569201808290160559686352985180228226508513615532841711605245565367027244203803853797199643912721850169297342748176362284639567650893586959343059876037604835501603465876139025275668529376694920036405212773360317718709647108528924986520006988437845251848308307647428352740007583507462953758588657994815882352336348340062204899240889286995685662364902234160590939316406055215554133821757729001095111655473380300868612907397442759687918206656296298458620207536715318912102529149077812642304945434322839500962411795544842866680546513604066288470785646158773619499300357636872617769524980756662727754635173272518121358865217749536966070754780455452861128160652814100555652473406240309745445966318132187323869615196340182775779867820610536802512426396094619613518242109852051575380072387640762372087062010374775574949469165683130163539470630540532789914365141534678018737269661450331446799036166784549506290358658099981835412519897441191160675457182810233123679908991177500495982306186522684861823284879992869389626307132229708525613591713782678331343676762089720334578729315629815842566845826404939701111631375219100547015508402325634111600147472931159632410769774629247460512213460093069941069310166850887264762321036216646539544054067522455249778306082413861227110704489498666018634421246462231786939882528121040106712031636016806763397496494947539427991161737368426286063313855553322333448653396853718072403354108635284496510916308700561165546760912944748754776764660250914320522938929319519131823112205233030754684453556419371785927214533771181170044059769319396552543929550720016090618628878911218735125278555884042259001997303452748269546593717346799788393842419243113870031972333949095466899403056725840659127714467145897291186578948391470788900127523724742784061920067400293230228793594517241600367381049618994923117536005610496413220964225860309459530769351915716120086467235323471177718095881474496900753876500403343679260633652927430369687495554091510952344355582584330542100035023782615779383912068271153332621072526356151868307315902642837548001074761678410109933477846338617365120987074796962744607649687300996938928612823251917535762531369201914588662133060226730506310001980181642297189081568871349567088275415868154577264193824679917872053038336883798837334413733685805377460301974827969080554388830722558646328380055352327518444487815416854317573178642562426328379277731197183656118065165991924611200461075235578990988054236725497901196647272356236981405539889736799566891276343305165725651674638964864787435842224873370732072410113075513970491273910826347323234707545908764176471030000365025847401079250397315941848739483189608037981457303953331923200590849723448035320341889827945824930236612967253107519250969654105907775959829631305708737571011732151174427365447253808752548729024753159085727359080458034296595858741046164907115985680270884647784105411637859241954250120435736979686332126819690144791298333598756144139423391480478520829586150238658867436184492877448995152841898677394130523848341245307075399924844141060658710443163847562510734924127961331804608147081875645391857322353812586835099055299147545697665429621446479451015288363559787549615413320580097708679147727053151047305118504809847182330888761117784404216042356115694320279269080082140162547995904966192720256520259227785557260727035503685001888723083275835515662390207026080222738635599492008652282012026252169472889980118557694914884838122682413635365682828345057994686855959618549730326409629898325031675449663282201501112591462894020597298203295349066258455642973745240209801568406744740320163850126921353820915894901349628509014424134639561766501897610122618633797253570537645125816731120594630148749900864379735077239217901487866001766780491370081183634890596179870484750445874452967547992977701110293865164674400906970753271316592180508198340458074580989259225405346685130875810766538874118704220250430680931280747475624847050037971691616662478788068265313797019466722425838236712289851977832123733528698641646826024268098970748517521368624364018490834973492976098492027960467797553203856276285622815267164735823767070170482612640092706944951261826143383704317353218689716211373454515307251105913297137274079712934587115300123800120768080684195366754457245729558630940494566238500244160751445890372674521015022266713825727448636557446095552696474205916489620874894705354955084703854168770664389403869634801407299552371600059889367898396454008404875971045765133376201977807424799898652116102382818782725664412323474584443324804906232483616135461234925701788597458380122763302020342828037609948371008585067082656241208782459420392309899344435656487951380084808297456531608096703206822635312259190244566815338145928848335074128772047992539037781093976351091042926760144460858141533542137184648237463972649761797948092482550326147464084601395578263076254330420799438523331745801188513207510437513541230044960491374702860770687785832184061292070775793858641231056008037388245726730045585111332285713603541957951538967500877857589039288654261247502990507486363455016530403902432424824451762791894772187058287471473972150459758320189956523380399491604660807109960927250403022455227900383091212091432169061034502971744106406595051444304444405112550448060779008011987585807261439281253031468370157658540509744046272423740043588710998755490296248236627432199619227744963481380649317271251351554964729074215829557940650421417278780966907855014374391935207829388686090070915138454835037347384484510595274128335907266316597886018852401287727147826799390067756296272524437733281363663529030468021463282994669786231285578191403329045829901576431975035530772708759385867569731071581028224868735403781406012329049179575053408547792895227038610685454871491194461334243254786591250282579788806744622289147882905559427002150959965938713206688770116561311173108125277226505380376263145527148295727706864910938966548766763721698176735357318823572641103380411927770634916729303872382749150147978279924582585646553818773779656832910624923633461379707302278456696617562603155755078086105285816273397690897931477653106631032079964484946828702016006332112373234321038630691427601392804004969812196407291556552863163278039167112951406600307709978899984920181130787049351669228551911141011833136826225821057389609084466490781802505169519727620367632273642222593070431737797067981743566172953322205171085961913557992606784284343586313208389603833283632251521746715879757778102717175258847879166006115091707667020209315250389419002547489940949315553492003315722723928474830644183675695553895727361076126808776015069528203111756737646479063743974921996116964403547481889762241863937915393554715374531752238455522326341506548612885687309843351354379039853073667032015992169093773988592529536467200205714767430258598671916258330851250469599114107239766702284555599080916836082618926498904039625687140156787692406631818233105698867476488281264659273419770241309286153350529439546030516796032178836748028947037044098639446603033771923444984560070619316770702826522656626112363615635331138625292562065587785292808209285879749220783627337570832051674657919575701198744619690444957162438493451771166390801532610310860585585738848937362617037176546463509261174136967811106010874354287641882888586085605158467248788314602628230762562966244949459641492523635971451893791055161787063835948917578794415041011184117242250992210524883513961414514768515383470639477709367179856413905204742517605384161209676436723440857155468179787329982670256040146559800495120168326422075886831159093570460642354266935385649423452183187143044998239772458022189134447537473564214043074150694200833769233744938990454726483153729957993657046256480021452676912718998361375710199172135685476174934025818652297456928474844294635042263235678805093717838121408483258171926857000454008038602523555270486548080154342549290683275943028432261828451429637587844844750726799572789662838355081605001467622821166931784814588900533068072901977240444884966182148256688572661167764935009612726854472823901935440430374146976384561937821897679303353543270373746222240600029941153929802359833157215156112674017280162203971723113299032672238227567906373187089600086138789904593487732045931065130411421451591302904961833667797853324788481535042237521106609137769778306344274396869553879573084311542651377138425375294057124189867135192959523060273798377932484023575667184886568406970277933607490103613467190699541735072953344662088933601701503832350558120732479909293928181770230026134682374096111988874389875282475750855655307495353751201757354157719687049810091319991673676613615320291989295046504680447350481703191088428182644349021335697895762365517063378030872349114095513686988302352701697658254591162838494763110187811193716695375340429081331923240694166547610264156889531335212574427703289253846446246555140710411357364292298568945349319794359891881399473667879757608536175968164253633435906335697520650683666571960279334560210807052633779092192502063717912371791736751599777773890799307628934803478398506053403875762218457575220510068232577954484646515316135054909127994321461931755242679720434519039723223540585286205957997518193140716881006712026072473027091628053126113870080970615311489314551856076645772585503577219531216236601267679062903855656003408882836844839894988363370046005500114368910214190721474511138019888545025460279286080154953110331585037821737951376201918719976294569083811900138037683866917365789098109284877174708429474017751638432089160509296921233320168965632154984473702573416622706038357164238050903551376776771846117224231859492852301564842079846245147612623613186501832842237861799509095901560230698753045789597372983905164492835778338367855848646767904973188303474488969750204727148574544157836076328398305183822895497529938371604229106666239119358438303593775478741086394275109882878529491745311398390822747083931703639103379823525569801030201051798931502609117683327979753928863795185500642304097192524481103504058562638238704587409948215914760738896543290808883191167946826190961649062241146756408047775904532214321886093324867161972152454926831500625846423495816092411913923157686260852984369222445803180703637464471964638797548572717331361270463238159354395962632725818868123346364530839607401387210063058139329578811347850121501812531234611473231628262447786161005747406829995993131586233582791734935915498550189878002506957637472329877623747217137949678170714704237301147246083377256810453343311938351386338546111391748173859918079249744885042302942858550724082521407262663116122203781564023853957391878711535308812917503928857124797817434603381508335206925814201486947519289294338444958770314838188124826864530389779026057636138628327891576251674252940788691878323183897604374455996510846835076682495644462658835689111119161014640828840317885687776899042593723456103259382969349002824944734920140502650519979943367429166032535239319421532481983303454682045272852359525059186918382449148460427129526401416424436729171303816236522896829478799689523136627423969201866465762351593089580123418077435681791659595314950177443394012132366894819255518744202198881269438412667264519374127852698212575659275734277590420495262373132149096000195329464796246856712576398838981477658881402514735272013955755811762198216138287042596653645443012567523255411973715843821337171561723568499776165765146177726516587692729383505325506438260832458359266967127874100128631645512605482138620751671762195811664078180943326844477356367503000132817563255338175240023624644719546961779232748916004051629759998955297001457443899072238466081678036893108389642162070865608187677977109638871707155635114398792088187050791180285961988404902172954830767705613964897752280807988782855981400835904096327921380455176455451813983750540916030556843707666178409327502049745188686646860178782197746438530997130570318727283538702627370369227063355573094605329250247437900778546565875709269967412695696792475770323748867307710720949388893529851002116548366909905994652697166158319249630254403681431475452720761215940000183899523770276990505545383900637732923209419117783226113030001254781875120790530603391624196521040091595860654101395264919816988997369380265082566225320080990770845504493283106827950926396158400627872221515638079744193323591930481732553015723731727890871068042456324853860919012894078365246961218795109162982043241806379727283525246071180947930449088698661073845640238122053327254787992399192923715257317779242183505665674716846495049976977859951746368546294019213919793902001205063390134788160795924077602864135788280640945055178968007658984631607177203804351283797417217454971858361218434926538556853423234856664980965749506140772266092109198309461091079448165733263088558617883130099937534307958363888071993153994951183960229399853326603118819394498826521124044548689349428152872507909546579721519644885088921104774267138932017284714191298225243202837513865769842000161616555374552563231816353689957791951524488320549967020102743825004427568706228492727570752392955364164136031783337784421974745862963447953922705398488535768021899298653829667677727899588646856074727857171196613654910395665364773206758305811493037076137448757762943583522324139201898487382820760179715504535011448179542582192018660070271979334131901779097717686325984755095225062986526442889814966431368879983570264263303417486270770454701674358712046327679302326593147934020929563303126231632129348078670446345164123137432014989778194302932496005085803614132274939396574171630169081198271423909489267755495313450473436406385271023984643728539972383368058145558470150846000521809354871325123194272137961759839411539717248815251352996842758077574072635392462701867134751001304522390181315144007980466153034869823103785146853260980175033558537840267181106725878514333978643303208919580331525396347970332714005682003894438270824715935085190349921423437340501373470634008496500588654041817271521142526506709367962407539403715860605673737482004406999027924155388200446354266446472948825056427376352868011737392705402639799654138159206225626603074295181022367458610999084820345519913671730870581801515708356778137234101835866891885264805893884869596598365108031626703040725686440206999947483118921828100798580799851331771929061556785814182414572673380524825720358838539173065660572179429630668633827181838659234196822065332650134415401416828012934190302640641314001791365601805344272161389450877909270812853151840003469723425203396546188345738256457705308952444287112331011839390770037285178652901912456151750282391608619179002531771373347577743087615154738623157456259191638519853900544643399379256954911559675395107389789053175589536199675382608505200499077396556864300690344099064953953583165633408155902784729163122617773420126880630139442003129376476226637357974965438372255313218396267243979758101858580704118378773756927289871703669118295663463195727496214001719263125039892268721298924047900537671428124677819257490986181997336054439123059841590038481271027035019865888656032310566121344855399167754473918486866151207602641778779457231738791572312020924298005383820978233257109700871844628238606679463860966139245242124552322903701327198320600834814657944595175238433939086943498892970333759255134101819091016498893960624909242388212574650773770596394958030542374752165736400514203894453746256849171670331656290133580677165567928720956921741557413017495479666470387646837029348837940281197353131379575062170417269987888337199260701578283870063957285415594989695603648555009852352757986344479220010853555261443635824497789517228672358051963004679165185829424444103849704059940712445847015984387498638559878226465767324902369281569556090000397514060874471165232468950083554412643971939780082872034720830082220613645932710179159895012909263325216926415403842995131326080686068965688004041824100372811639170417158090600262613601839173399528181327467385174404828372889351960923208538861545389852119276254236529122371333213714369464071455416409161832337544549682830648231192765529588099395100135799888203124488431180714420996440211030579246159813235110717982148856075489322878144701999492748985471700106654405163425301283561437826453266265149856324105286777323482484539476104591426130493688367802855649157650460098330651249632734865876666886836127566117830288623241833546877032663355010413094746710114813583225778387858083949846109875649267646191430439114396326368516830680876154064341737093480724280546041506663424757404668323924367113765391006124740887274821047319123224493746454636487233322273043235573948451515790023827473128428744114410717620923970842005824943723126703890950782046330488098892641723531748767841921216308754022564524154509725761198605648370283363433356503438921138796997986571530541319724891915573699768818996967382001447419021678481274272596599749073282825687090924692156337830754901597820703150624147426767261692456065100016637417869781819003751887161746150949798442768655988267594027538463661090395334704994615685793006091988112730149152314807234066128750358042648370293260528354357940262860363803201038176607076036883812879664675459667608108432753554043862308381767158106897557006040841939523512654503982350473569810747359357746814106179298453039989080057249616607843192751324000300209942751691548255031023340802642632754746577209704006678373762674314800147623678575567558570233953429944770897592638166683618181676837027443860705382313789102930400226660976328424985053511236027923746775149707223593443838240645700850061385131708998144212560499135962940513569677411312209698768823878786550958184648035041477912890221701802634547839415357001367856886021072288801606165678984912670137773916229376427802045472603622216546233302776996599180653643113668921541995912790316435515225982900399397937617249434766659121407325899394934099350753893574574377903348577996244541755622627984170694592150830884643277026052176257729097694192072025122093276955189528179577286210425081736421201821004982708404825986556724683090018928177432495587436407476681677060346422046325798513265517739905596230551357985055082126746244626233678427530029389639145380867971434272666563018720374254619105794629890966487121666713139306310151320044808236711964068259624734481824052464928971515409154610578983268080482789591238102603913085569111177495106486684196916269854110773041856658242093746528647794490305600354987334094301164695652652829270459845790884494979483696413956079597505530265684646053117957810816284086803869032335223462534072155051367872317645773945812647394031282430073915642447329463946731702418308875365823556783892905806535977745035574194810914474686254702369629281792613549746962927040919801679313274263708458892828788305561975046753357181118957799714656099291823461334646108204792978393032585648582134381626603241964689227610563733609023969444831017470762101739778794560054137587331383027121530313147300125141432989126939955424877176802807328178943273781580455938182698205116621304127258233230686988679572486240248387557810238222367615871901385491840888674663274643616503449801367166084766772337953437780198840437795883653053706260514051045680618655125053621667581010177203447640244885808507241076966031687396935622740769438529111461829435695650296813118047403497166120718519458387010466569084167896913840325825423165168991036942565808464137619655573468786559560743355206963637198957161439285928436633476584303566694593719845624034984569288915548809178274589465443763366829550578618873752974550896560926551972428012810857776083851737726319377772136430969612809932599242263864900372521360897210783577432545427533930161150520727439831273726495395858207879628444592474843047796559281363005859885884175374708234283353283005938683563926572814930244143196809188964002239765284573239043026517670616065365801089629704164658106985916886245720848181505883513866533265678341701377717114826716121569908971307492995948542487784132522137424773055960499173038222853248521932677639675436504008456706090464413160644339069762565605565251597581781890970052214574950782777758369134958888630973329121406296531428507629080486690351513295025406895780393820387700123572051807405204566515736000987032642694693713477049629731562117661235808681799572095197210936727304903314314086154300574789870032965011400012690298919115771385726623754592903147188788059811444941063646454241819953047854313392216538708016929967675669119944252497921946016285745873778736923570197759936690842811645766355993379837700228573933201902398977840508194310350800577020758613539857191855552542837872772658231573228848647283660203324514692799333285341332964397150203358356591712597117007910229809723251805949867601677837221040383552500946524100081314557730926553922009071937439743096451543692965009378625974425051139580448112461571850916250818545777175836619119853366028330684407249430411952407610051139525421624574693440185100252485710261417054513736526612623403784752664507775273867302035898402072007054232117838129862503684690504618010278057288192441809039809117845233715474909075004585044731616983371998166005084572523080115524616229457382699224101435465018653230590391567670675986558489684231381196325155467155363247475058018255926039930779671999255266839778565838470203530843122514666767462205974686447503520617749080060613086809359956265540910030155669755299476682556981572568865188697476658052929236571592811099814325772572477488083790096740564732029130375987926642324774211155256352828654246279726583995079529929149787774325045541428959246292208699292688101513892312404558882035496310203854064121322487431497538988412677619951345935547007021342995898891600453476472447432340082652415325195820114426089341103458790677384583336644486700973722960700853512523420593308576360902715157801968865012807257325889896470263052147652257124764499054246957203024705487116120079934764672442774529354903626953082035687915451453907935505426132661419960928691630338379405328190505601916157766239766619952634226404892938574039659561969695811475178005788334176443705814250969770910616161165788094358733495595919522341293211338835292193106836043648981841435044920945796282828475564289324657021846392575332027447666692744089831733447505589784620441367388050191689625746051911111565814346902839215612185520392686503555944503496937002781436849321688261094786415704850965760104640944251995769223033390479265762532068965400577105598160401469536427651740514052019663931356621322738934147313459725327752523178727306054335640509395847732396432503863713766186221398411407311615258322247590042281750939515503980695398295543856544887008261309870295189075562968877134372285330349058006696070556564079083010377621361852631231890976489019529669275309729020360950667787124720789282214311588251507089743474554054572659651640094207329641185150035718923211878655713857945543934860403234678537552008745077115796149008599439590563204532588141380510653133287953451517903939768980958743343059784482886584187004202050221858124471931602303036720315205867551262636518397753832260928785886338374556514371806118770621356498430505501771714228071509338764017776789326310873582206106682453299027757893674613304264209844579542526328649411099450515856354747559624105100737711545355083739740471354679930820841921564543908968236098016279138481826699543729999094711489531815704168757852913195124149208234400771907112304933875914724817398448190132502205332869840639656852611826675037694102249683482278291017420439109914795950377514865743889237246414707244562648122839817891394420998889984953990392571229824594592826860797428711023167869444330140728652827614733531227016949540729265822791414888151432787135411555827669784887161884010287361713519026590867240320838602484507160841319443607178776992306283914801360046590338959430746856572875650462056623022871845224186078886681866539984967406287168942345249364141712295870962031270083489391756747288617332772010957380277275073979475954095747406537352686960055395049661054880293348329278014214131481538350287851313504056339104954180109757115451397803442839070961385221153874439912815120871576886801413179263573056870304125559889682373655868095934818583768160776493368929586972970128192472116363529495373037162204761919060628583561514297358527048811501204248849658095836482750230621302196114200575855732808701540288580938832538596060050670262264554716369656300251865970786040845304494383838866490032500685849106884876637551660955434292350028113371277588104350006510921881280245212219153660605109894731084344208288909332276031888827082685136776673792560120884930463049720665606526949122117294484790029972869656159568775570258635266117319636888295645331823547346190416616797913572550237611777721915924890839166374948492820952988484191643078487621405691657167687376563106493069209129132729253144448129241146607792164055959693505914749150794259330170068500940159581950024356658228273714580667790895438245173473315128728526997922983211266883054309469458905588033652967882406857617229377803366917355068920198752435846240419918101707771171895901432977106547860765242396303697049003568703427146585964948067481270588146074544088634295308900161681482658076685543787416716075868441246464923039127861866797069262149406743622838605341363079418543066386092908598651691848980602210150661660253749519088887919268441890436166967484703724383702227411850460283618997250527449189077057200679401339508745365389021672407739564090617953558568107421608588413098957701399910875999490760250203471138989100933404674016200944274132412917883406025239257601368315807416001371360813129514754937294622147062219830273016223613614307004813334556318570547243136587062181246709269709833157065650400654708103897270598868415123983118279215032108434295511626952297147921027673468037089527184331251123310275500174421872897547592530543719798255677526099265385378787150627390748916670152682381584365868077929873278856157862771831931523770670276244095452451537415305385266155275258818103463411349687937789207501544269210108595126828036108283649769113392383545025019695332839013754898392872368136927199376203924706849952494371572066967941914570493876704163156144159136647676962634767177671012158862706302691069801346406899766751359738573948228940087266951431916194428142586665118426051126631636400597425850055433845849493353217618381679403426750632110639381353919689712416266723033098331870907999180377567963803122602743992803657041347979525456746101358702445405168228729705450367002145104482945479650895431385598833079095512553316790992376199302388368591351268366375780934681860376123159831464769644901495750470856670179757092014259363973293812096347696403482439013094793812578187013596477236506543746903918309492234508988589533725534104571406430376734532387266577334041790142208346527369562827807098197913052045065413319761141423591804745600506029734944240375071508207224677149386705721956672901593777910395331108213780585076015052424770496162930073057670719418557543319404035355095430876669219850501186259126679351522697168073953685715750894020749245765124485573255759746605388034057391825760021876093111221529473163353871445092219460751902183031145830884783404772065645417245150322862761955223889790038143246786507346930853560562519959076346104446785322893176654968714537951083392280118709151187138020585486533326806505775551633774179951122822899650272162940287648617735366699531504719585752463203489107201554003652264957180184398519610149627180323148623533657680893035138347650555698429920059958371041798570512739815156835114764723268457470017198488866050365295344448943471602575484242077896824274277488731681652090559863781647814108091489527094695188931497121778920562169133950357492296391667318613762493718754277715427706139667914950709090829649896018922644519549018488467860001140935189417723643963484852825820269650514133528577458989975685981819741584652154551078291619241738672214548550504392872161956735589536329530346718368244808461596084665734784840517842945680239378222499647611404340310410624500454756325772160401406995149160263088035322642478373557841803745113572425764086290258733267517323275595306070838964330727519698165789887608898786801359527976677656815862456569810496599090380425017595422057189701758451428299136859092456689170005780385614397126908904443345363652089352167946743231372193224661964856289274830153249068357718524973726624466185070055966184903076611391217426458286635328604667847947477319267985432452936199187488102960270928220543259661790772665114959841101032859859871884868663098687539050681635294533789557610940290531943783884380707460261080626262388776793665914490688391931519067862483729367620734823387129858620833059728879933864892821945825589715440828168821577598296044242226710565634530148319604011672379838634412364014621152976365358298197389154779551996087094792150254312530271832553887275803693853001001968713852696616301303625418607107640962970265893416349850673465613088835334632561932223712072866473907830083776629182009670627968973559205161662143080291856949931235575877527248584927357894917812549289810696896446878944127743935519556485513416432752398767552375055230985877429633833677486658538082109002375145824722364341645325489592495758063765786783223105998742828446440745029838836471368825961193570443054668577091893154445838105297071000840338446856305544613121754528008945980308815107323363827057645047312660194765847262879845269712072985238809458096402968856575485931758890787592883464033920237683181312197702097208904674806995685385086033902608513912335092997290865650297912118205683263658220949774112161875502363635706278697378961847375885531351612002402738196515060919446880580745964981161285536714203568296992755347809766641244134379357279967296710320694551330039219190639214392135177837081110852963651986433725431373941202329903463730815808503093368555364203129715293112375751572429807671956802653783896552995380285197313888827615116037661233468095538650919006765066829554264232440280104773771793086066139965222523684622288755379446751609523344573068300546458121618750511890212938590170600024754881036461167427842545657950554125141017929667537878397582694867875466334349240731577347488543753614610549962413517875369180479144284623581924179158566878821266819353234617938199178288389319144495699835825896199100421866663881674702950277949671570048915313560470589369697779065733569755922471541590807979486252767470668491568533997431374276285105910080210852876063214947155804720464775959942959187686435303942369103396821397506533065786767271612895984164472877660467616075322345701320467271708595854933378528999715604822665741932976577146790104171076321979442020632754524310411907768868917806648669938556109251127599908960075861037472146636540306890731415596010088470328638804899679576935710929122430236659168301014351401508126923296181202675637029692713110916403325411077293673128849477726009348926216443423893741969144483603532615497625312332360955437964616078724631089566265418437766397901463760025320440649133018594794608433991541863142664028702201003351959883415094782655752426986438846403520632098141991428125624436502612343008842842316530272356621460020311471785166862512226485854190796771674003863035874373436762580495609418160562866806630299526862548248776430249585402664464520361611906914395852095778600002807796667484986009556228627080014312237106742630944595097089298203374494572651128154884771589149178825276470073949301916434599639921848623662724133549848322295151977210134022020132213887931768979363895862638246394204249642744158478349886853669079574884636674902406315473073050897907326360238384573806574685125199567195920206700774683484840542965479940455514448121801765931153679492439892952171910269012569030013191600300591235029547136815276069030813935473233295634441270039750946983071141298174546965216056723110648959160364941496033232077102200393138870107242423201014933543955644094361889650588365210180758866282470852131700712099012644817780813924520724364566431391648710561952927973334736236623494745496660165686597744083392557164733451015425361551019832174046052435211508765814615775979573706308360581128183183473130536360867215157396799552930383569539765353204641678702611427575386519152733931758185498538705545912349680347371465081021994240028735927110062355598770106691488941011102327592627444207988020244331905604024084167070283024520949106427989439304652397623808347190731183127322601387438600044352242628743634851179247462151337363675265612016365905032486985789211002547883565575248028533281621314009483349765176677052499665174043772236807216109258679763977730936635138188154729271584637121573991050816780272573169696029368071800145706654862507807294549037689891689701903429857508457935328937848703079621870448572622445118223783341944364290484016320567035986262186115531549339853168556762681469126569951478406358852428240189639534446243897222521795135965284273433188908020950304924812072009248865243012040339811565184887326894050559202717155519307805793587730966288770789801273743444738914815230975155034753710584088379434261093626230333187696208443628307703264391905976742665759510749058435523942987815482419007042650287788119496831790928070223396444031011964848563459157475912956335102859803091983484072456571688919147126094497828141994283234006570159495675613998354520425709146467741499499405123699858400870096096463304096893181995155815572764282393872000100881985769090442405267993540048702192903969952224617724541827802919025725168822455127544204149901118255200928392760840204354893785977236316909565918934864774105293925401875889173723340983440781596114113168545064397183794603385869125106037214131251802586938912914232261776901254495347332241513464567778255898674914603472701953134430540700527696662663799314749908893644403059502472329262336581328155406750850002807754229588755104226255933203878015764031026763476688213103509542213941129084417981678091795288171997069464536788330594752547091680959618652042913112733652914202303568828401439176158468915308245542150924660334711285473448772086062918076495718072627084346413167677697112486787593611813017626416634811820514606398263712439275176263162457583324079774939227104973770141589846869819778224892776800971299709742681853539461636639348633611286801970929048908930340643789918255778829293357221684322962107128442421019607629260517531797104111563675750477056761037526265432284572857758764120837422392724391093787680639548952788726530027883548409026728584423235142192663711257720201114841933003309285402562864876865206018597059929724535208809131872708669364510180086149672094771043982359093289827885641388892745809086205658616368328430374448937147410363750051903664595975992800882775506919724462319740996990083592603311306331111803811325479048309314419863195469384867721331658128637845941552034526566085827283075230002011661271374048585158737842831954055886362331528782065000766188175333306827226791736565052970164020862649568775289017950247110257465804213101218598465863467986068438455277221126451801744827776031248541451993980721301577918084511859158711928145199715802113652349204347827376693332189585116688195571874037968216917689489296404059075617810673246440863987326810501247252442564120312402380510314444648444926721226569586207501028907518483633165918023116422739296480509629021538648768590222137439648703116942022902759395393531297963428161574651491547756043114272797565356368671202085311900494837321577100935915600727902736010104475656028549254719150299165862129463495660547450630091631353021271609410695540991685436184735661872846632769490218976277003527216227475003620949459229508985551985677521672439280868137548944484382491578755146822409314073350737390047009804340888926871893173929173593466535932174157621237786578596983185521022886180826121088892727262508365873820268010527712395011582532303722888982719910099632946543422732760924688656653950841168572775800621013205455264436663710097938204568856513375301109332164342706914743873118620125507298534061948776458041972996273702761067927378090511521701617120174823572614614610329404106908452243044565154354054022080495540071005349475925641803452125623709267092868088668779692869574402971973721944325462572087582407324397352358029610952931107158184803459791657174806719291698927078820649972975247393068219673417939877063444046432642533677935256737687521566763758302254200137252637726073707225313572257824616060965406986068916961166932877166171660183421530613614632069192326580953579586420495276938702627158165139536823361458791571737117596957236739524106967388126170328220861830017244938599524178780596004544190225501730858173133149353695937147588165092415052958164645585952873505674434867286407445619823934851642907581124039813921871379273667727484218454790876887499800991905626249325680395801777920438503254646410184003602695641309634373231135681150034900854035486872474586646447126147004489115255793962039962868989875048430182449037885409497085269827139673249506043495655647643611205818809934888737136499316222823525665079199902108959136179701486072286459603159826708386452759695059277892569699336026848735855384799252789258833839175718787013320506939189133803746844183773678465885583073686042519073232681088034803692779465295937128980740250543262736660287597957172790814486770572624555390002611796376064900926312490295659594241038978889867561522716086061777868353347943861870762006854191358384541943497661128490123864726778597982279929635019614372595562659602079455403956680319404001903971349018186333622178563075819208606856467617922407583779928454538837080416749273382087737320049287841498652137094011301153042446549600429816840180744464776432668356875372565430771377082354441444969571261598052940121661594022873140458607837819135087809849300691564740197420103530456208543523653015181081960977325323041955819421305225407079544055562462056001536922945892561451598865693894534489750149555274508875016875584028482300834682008536797612954552066934542808942395590962943703210110143952300002310758436336308736417978892089038272672238501546953811331430994107279479616452720984863583632603474746276879508737000365505940601789953072208864586890256593583190979623089868327740906217272720485150347135439738971644971485548065181842008031000865734219470349093923326415982511883321586956717244342658724777124827590333241777516717395982309928397891373837695360174160793128285367957436490203223663026073180705584127731177047494887652660327246120947340392543388008527937193942412557167330176502764005409088211232886656082531948027956474265855582888729490380749030560141547842289133791463945079112381040221222129535403193981303466580842275096260548185140532093438023609883265961419986983844208825931524391501122327165310717761217696646522479908293189544453640337631970272778416686122573369705947814136596156042472594475015495421688506351432746673425834907497570489043421165578249040259783606851426022080088511754659407418160999919508195932365246183819769151168277451085844986673475239140524976705514700326747023833744562551826691807553515067477026988239881208974648802470898537449045687354362138337948324670012303790605543920561722623843869753157396230152154488029690122900289747126434080087731623147168200544210507609024226619089708906828386408575002943640049058681725030631474469971220016140562507616783711153157743893439149387634688923394509953603890402938989457548248184709255965621467836747588635208513893199287066293357362704964298745807671306722261462024954856832405056864429653588075987985002234453662555429496481820509447460021273339689507927255797648504282524334788168781536626833523661168606870998474526225801633202420150600282580260038944231135002781072876446563890915648694905651781556379841383894002310673803968952905425425905666159294970896370372673096705041800168815583093191616808686661242787913609401466434178932800426161500613162060792541563647647967363908840531023556316314292181574260821237697197180916081606873494450998316485774869990589411231391576143624225707962991081455471027676313106344481692244904997822530286741055196014417128345181527260247653642131261072865316049895464347639612152700341480953476790937346883746064392857316484288051022443662059922129989009805501742983893428492779912782099175705256574559919825563868631510270179581861869766177678875527035790415128276180400661801088358226243638208144962291041592509601936064466422490724792857737785323294618262327741171428568171398258981774571925936245500115627987294959886605638670851361180040869164030930180843647017371623241962341855665693303928469934534411959593815385474747616103613357686581986248105498511677139997386482686769815371821134810405962295780965699884596777682528730256613669947224931341535538981990116760061750199473854733599600083742199169812183332082974089341187533074571829667561112223640830606031753226161839653240006025366980887770375871228534893496653037761065670398955982755177154387355028920711586273557916386574767070077879885785775515066251157671845956050157403938639536831177992676119861534399818691082339912321205224671160884001635686691146810335485062227362138660570102473704775944859787048046367106625620849203875780709613851834640209576839579962435097801347140505646175400301310030398099275570608030677192698463240433253664693123768168227248537411967977681339410117053106169689165241265235603103539844722821808512423205144302685217608463372097727315632354359757018481409508603292750304209514685662791174640954078677079888725180949439060874242498502076446611006362540407140314156644123176462318075394525778023360534212660426217609116155966748744165066764285484934582794351405375234518204359862890752978594491391205329301700646138819008810495402719843231803425081189660824075334815032539945199195672972655558835976187003227040881821013436796109851484228997684978429783188131281984705187063067048899596036961686523578983887016318962785358891694626124522599124719170192409349670979265964202835248266470382762524173891251261864402838064422757100955435384930664408511898577447078437051130027222101642231330985421260675406292843212402191686360403710493284799872005000188849826178006976544905277615335856237161015724118694582313792841536239603823610449081222163463486383191650583850556792485080102438563980528462757891581170021018710826210296043040126684643320191855223340677400147705487874957774776179069012425411654762898152575035482858510564748069209194718415155993872350555758755329722381581110293570456360504670240747009281669510836971159475609727917924858258789077868358443947455163386336441385246451407283413875724746478977144665701932506066721621545488439443006522308079161480879982215660586030158288733081555311141357924006775025857420404623682747464360099172180326899638856370299493325411700049617128601860568203525475356805599565622802820852560804121574757934066167528891506304325293663773004896259914413556308541530698420171047460861640627759430014118731064534039827550811776679689545981947447017962156708005268017954854983538497048093191770489027183182876670402177266698286453483001479296294149518848068209754632534480394712384838377858346726725856005972944221740970617520154155441611229818749849399231080228992849761676337481986052281792134078958689242142087551493311326285441706168419498595894073996157862978581657497183192963095875238811565915750968174439165899858664418552410284915038778314576690735445979269308988495576087533772836363279900317924963267335112653160338829516165682243264493980797927948948497969935328905286126410585248713568202374558624546824946315848796494072771834143528663807339081394231403504417826387292744615947755026195059443297041725602652930398104849455050720110434769789858009284706522147978962768967577216922003538609917782506574093532112522619716575906274599541595696636361235092156859105825495282909842548147093474970802320737150782079108473106042562093163121146692622089131120972009050800091505808141502377214876571994799267750002895500114627480349603276325738784304595389246356166220336861368363546747232485425663219058258418501698164592600057932737834276716044236199441279643860315281461301264014977063955473078152394083672286913946741499185843877362148672632635515582993840556315718903559354893630333634900221840204415478382623351168686412436893202664465673033279658957906221905466023676600535992153008634695264738541556846554214546741239535203352685229793135867230208273778717761265894395938170442976796915033328645547428192833345062616005179873517081907091447096581618453106096125074455132199010960187606973092279866835064019688670162189279656788713508286371789433760824426006168237030443666413916910978596288409761770002009162914563868754159159324780365393993575924359330596814480734573923416052961643814393570357592015917623096896692867836121536566167582198542603387275060869237158354682834587910759970215935088195425819618931016315132670424485718400816333073604514452089006823511017975994398156201875430227881046065482307047711947993469067079717329616891275822456772391292863559889466760017423023857715883785031058953972197834411609978130839034768299513523041143521021195364406576501595102762502438722522952185965326827400157784885712535804659090538625976265677630337430365496147367619408223740968047615588946615868526994824010051343291933696768090734550614205865685865130194502955346769564166635284280489977192425864759326417907254047902958094892570278240926377810268992556888384832934212503335091214725629408062641713806787565172046133980396310999776606915221838318881878178472204107031989830715982553136371769213414323423750872663018131907983480227571391339853789609918759895548873597490480846323849333539475485867114011121533141084464333530646288265139693131817317891875860534322518546692393809421215611996611667640689809137317018567975152781825560221353307775778813632847582409591426518483021014301270797191746897909480825064584742010208872198667083301833460063612162700506069858618975717300735328765605675262997259080340581298704811845433840128947706642811111236367155350257987411835793856491593470727760155246732054952054810573397951870154938592961253987952627903775988218819678822059837557889275425532692872512802653336589360524878026325978789907099935553685980253792039337230559895013607765247647008442822708809885762049035705249128402082816055041866092870130989367518923146314978517304911202866543322851197804060340450763615371131208788210552848670841948635965954794596601423754357676268153188840296452249562477709919894667166512903476663378422013335306279613453060432407168954554311633900129284884753378985604111059651093920580568176395103411187882951221615486095465205033989722928261477095349124008106197501601864036082857565744261981051216151354119057830312218583667153618346918382757436664485472047779671297583558392336021282275536199665635872562208936054749240922778457972094129849056511133396591549037091081508459896895957031363136341687173753857478304825634872553876883428429244401029328525110244408493727296018967343614099096032410206119654285770678755799575473740912014962593226403957415573981181562050294809816533522263369110941982483304292916101940100450060657909363403775260763168654233675737276952371810381931767726740105149410917193382700240045504942001681422565491237748063884212796441159844876077396261404750938229306592966018088192554189203443470610314937322457810347053495907444459249402998831981011275774144970027854936327457702727119117600752895156509416762909100719621077800431114223386782556325001069769323271780538353497665865374767303489969839790963385599054076859997622054831106054052588136670303067647284777073966497403730024392247451749038125097673629803080039040727285300180783834723379652806838504183569642802127580256588347103135024464462179882792229682847921544200433242125352818519858785636403387156209207066563412182463565491429553150645193248065247092735241867121774946132875809311658460248271010383219746537245045560061644052405292908944532786812459525378081541706981458133352812261349112374421312688245820373276031611042067971327200079664995651168807088839075085277321251861839790862204158074923349060577391803996429304063789175962990184871682327772572577587651567779309248777173855092911774650506485723350573623423183399289296348841919714656051979814144584054769545286270549074488981175004791172213420419623848374322174652119265575261976740735425704062282106069721952767725059858574302423683005414095230720303827298330647063382147854750925762104571958393591094097384998288722806593437864215518208878964588866065448728676280860311388203643572204146962558845846969776490222614828717920623488726533241469389954938044800280830439731641432519606329934291962727556509519360321525177901502322109690399472771123081742160625169321262459914982937161634753719712336378930493337361306653946224215024406034429843265116382203105441507638042850873656381298622292835029358728918117935760453813655746579206215057529868844751149872961135180973254648865120329416128665537176548182421327015683319054112780796446133103471259387251220542028861813792741892425331323087499104941018077014709828358731645749843156474858557141607471595106925157822327657376664116102719761594572182246637521306597802257549026930635923482501414278812537371169957101333023255273671307548817886253024148344250965183750893518135330627323474642388464919500845349528711384607735569698328217648854355563410105000457080851260641126406170036348864020770963459886927923368621992917464229165635692118942454248704530098239898586285437681276530385929351697343636356842484731665750306391307243769462354716024966435460916287237677357706205993070747811862866622395132146107700983900351375438963740718533935150123473962778436926922062363363981811240256468895477796315579702893722881560328135110388354885432624088518374312995773577194525440283996819210431676470382168410254342790480815560734260081938555601377945033362392731237662016276553245443368465481788534808691054245693939292334902134539771959569714554456614040562183725449671474662004395779064965022424511452635525799973332343489127069671003178725109226832968604200222244827500750821030509057848980238484246336493593094702059625259440601084752643535833788220793823288983728682323558148489906057725391254809886332190965590274180939193126683953304810143735101922100132684351962708035433081097080441550386195294702592060809382595849617216626252618538004368974324832321063608905756362313073347327392451393429913191707929468795752241901215316839314122317959794470535484802991025257071225631621894292913019412130822171288142383349377328229167676934014801516120250616657283105937079198008113585214341047001622480187284749567422962259289788446813306249126879514503824032680828820607829315337734085827779876810638803682926113634281032743039082305567312553203638479965454604716891098344070109924798917717886043306628044438707923215399579869945875485394190255014774598668973092950613751622466957519504541836322639603809001223359910478801948645061979926927620996504356274594149781958730114490986924057102098205976282145600147274411774553916521830242415356463326012684231421704822882031183693514805270503489996304224379620272305365281153062699617336936026426566685774322525964553868368503795661982203962483914188142109308191576247311393918107069837498905488042484732857003108625444243395994602047635756698461138047439832251521544122628922481766356952114385960331092672028749631539084278351373216448540548020296386781362820915615565091750037570326750922156209634372216906295383590535703625034155578494473060629428041889470975441516666942480043466046420103521605081160435273759119266199277646001548858384577501571791008192762228202667284478889459991178843360699575360797731233521348663302773170687866934528724899794210785605613498361512864606371423792581710209699466014521232049974715488734046572983186171844644054288752543003606129175806896485912479641597653306741454824634101232518067317682246957693725452119264134404174192125442480759746749240502116836076962684729753232741216776471337443369375768953274070936300800716743449268689181125626345298637585470396594157077603525195915005513779993936326245473587166073224562698102356658517194512267381895043955041593570267839874892523177113566117988302149347007338328414923573057321346502908895125095010383480062958985812006079134596469693218206811090447466225654275681489117086599397078990533614556676808704711840983760203103504320485836722495860537002452737225811302642085131873542402696184739231064167424895358353247473048708763286980894095818634982085814414192606537017666384650294303208054179927147720978803909934675007014869608369450334628353125675568363858425963182686147742629783844927890700568745258432912450091418644550309674359383408157920689238865921090390689300592643218917572103313901090741574977034939485199719686908467653599983618146978798103671136662426267139274879060511171135727036777735162409321395110068014480900001168201235917205724711056859698905536765773778532451292262438532239159156058455650130493882497848675069993801369965830461473327621931535722947609219915769335178950159413111087111180705833662795952493598625618289317229905182923839949262318979075728163042404645832324977261695551294395494014230517632693671507840857530314731929099726842481606881327397724693059770548211792050617070942057761300919219066439089281946564264660365084749212922311037537034887254370197010851810180434688685730287302734143610551983803587006637001610707058215925466260424323452301435537353547421032114436826647463060944472372626706835643037074703439374275910385012014676713107987544738010229628358763025537733245360937064761983703979620265485667561510272304011394313701566873711304152092421318531236085491196753086492180386726312862119369732892697367915317532997564724929513709475752851637173363463803796917420234023447202805851481315915934471034351876182225196542099943380143865767625213471230233682840057709088120306365539146026991462151347886607501352923075729210502552783612711809729685095738879564161076405848406209178553320525168480024789194315820429292023477549203914132091038513300697635744982872771349616648227158769552910097619241232204912206336881407086925463778390277561003648863584141200799014984040472387435821562033687267824932131027594999509825682368811435499934634728919850916338766231144595125646587262477793057030437125346583766118658405127223854754428607797920604068230400394442976834357656388674537469201297897904742778290899854821295591119984337632385946283216086645468164104525543944364237162460558650553429509937161597610784343017515951511297381694718146858772682501116956801122060720294186395815145688193705685115518955639011901869756718431723861127000809642070804672474242363273573107057762227224993620774792604114027820591200651871903296333822466910740833477164928112306288751834267441361965874378088693856727180706858056933302896699622602305103402372880465783538287520025958174863751828663369783604319464927855488559427008843352065130232998446445532129994634491230800161290917202888187890633883724907150769230693048974842669894918417573617554352380184180279046204463569104546225947758733947889476851189027418146414832575162799342258046366964853442749766054433955748952740324830281133592929699837477417808223206022226125944126600803304640738265634030010274257401993654771161936961678213225805352115126987352891369496923552237304030000096304367350081882260333055172416016629020970357636548793767114644192397582267529279715489527374433771672770670217255278417530091114108851178031666258581814928553170487130951963661498644421582826279637053856706523469860375085395643104152157248477852944225077832402122337270182024459520380182261888368198539743528657761841001265506001919052108695120147468616037785379250539386648507210482339733282106291394762596259037043227406694551026055357291375100862173815756605192012586152012476583183583560261251839968678264704900524181333189417884199818164946714226955682229055886035669579385670081386913680708489158903887062927476444275457396792380420534559359085592231286580724745504624598289716170894599363404875705603102229483320442985485342052651713896543295856491109254063379857973373016549788163507119137397133149968689811712657792467626369386920238842382103391680409641266808904318479981422703473680648120425379409836789575085466456458537237276374480437291298595734411844936515516700718952950146622889950159861111572283404645717952321055471937782792469994462340090855734185558877587486667913527296484393149589249521033469779581372247055203679150159533145298760907041778268711227646535531354368465401390315360591939433309620317337979189795172853299425693802977182830877824603449439803767569245960729728392892897198287340881902590669053286373172041054047517518200614182449273834384574487198383432970290606789929552148657515807887693972733537833944432251310168959225683844240050568073370191161865836604521550460616178299221815424657791634166149031381908599108694248728832878790050358716565812851989739219283541851853768864664485239052318997973586690564916228617045862388969308694025838094847042564957494007380098272236609027094902288144528365116323085603470017804640424523628978118742223688079044848157388688402098161898851524551238761622851509706533839413651194067901690299624001228133772819373036536783237248302908582775460475502373377071395010860142776976795211619877749904339592357433197223903935360980442664468789686754580631016802685360098887652498740819630401301933432316660119060615861814238338184757774315943893373876177023693781675268648267149004315869803552544869984973989172072201129673692464506717785197809104600907448857736355421163187884239222492730333996312437047392936773528626405160688225663925999893444161486588953157043118475003200087612074122931260105583136543669540690906526814593789252240530053841999393385400427491386714556401565222675907019865149991538884550883538268778602806662004165066269703734377504280399026227659453423875265957017248677536339869486499829809718203059900879290031648548779733828414847590036691865695989127381781404482880880270884670458753102890341386530971791213985237196718876217423065643348519051772740931547376576797978093602744458102343730369195202262053258602257604865148833144411366235758544342249540973451567709634885790178529343638312563588449388091985166756727679497071558160555310232140160726904085226221194459900393182209691474547725683942937242396025116773984275222016378042045605993136549038929599374638528930170291366437541789953388979760802751594894627350115510309899220727527879637312810747441343248362764075553910415470904149011805072981658923974979958388060199298676483671992384936542444628899969900394552071937546685665583434739250999344220432599958585601596727271412759351905368124306880275652272477555871557819192915928738424676624170648361526071944009815504543726322662294547650024842834416471872831658044487145060729525148059410706813622742896004195811706966464802131062869098748354954624797786963742887292035224995349446216600271215183428328710016392847752566163194522662034584411835126880421912955566616897694438560191432019597869827097024263738320787211558312954657747898612169820730020239033958334827721909135252623503877294501817291081730078213836474789820201642596581482751687027358754793873357664498276032527591043613798304405210447789175620714250221943648538218554970381584668261646344963760237304055439038477806174179273889040359815961048374123339873835094047063459591995334667871871886174926478931376993424619521258204011247161188263235987409088019503702003063418480534605844319126028148361417105097843523423036396338115288806911110119098447154204344335350220901088885260166694570215468618549082016999917435836143757205074379406559749562814508439247030883865087780093381357630622872351315894295864279144792683003853305809265329839426384280331494142345926620451735578069069141538846856827703505434247831638332063584429976908241447691491382738888928696553960545382409822935542562364283991598030225753527769115681787179186069750929345552732068520493114737103954714395517915986274324812186062259680077410191801880323871031676129152160759901176779540188370159086871181298512034619525398214307883483380057679494910622180129061022764178204195892784467772064881028479609434866560174027207205451488422999559395567983160009718045703680196188646658230557372136082081469876810393642171853018619411328956458357165668306421584156917155861340841249147804158322156179246364750583476564481564514898889786052297720272409873343930555216898413379602250226224950641100493195571822919703703935892672473194938957850328179425934137707711387265230655550013732791117149740096986457624863582247482715030094285996048817219509581037614947949521079930326440663927187705429624294166437627254859674762104435700504337525327355915705445039115817657458998100087922998595310843839255958277169927519313807440261457701335024240551303538373446576000048266849198537093085565652969371025952335785330674921646483002856423006219121353712304800880682553141840868793346313868622023401396613365663251913241333437725233721579266098221087153954414992161977161291849089923588362121671397558852739204310374034330545686328407146290397919623443781801973340735190133262655239099611971168751641915917035219116539787290227166096851960457238411720067778952165075702331833765881187177794204019016220014813193362210595227381209067040908475687867868248290881606772056444474031545120857210549876690955649457984974442675166446285468393218532400496894200658621178584435128618016121572957667460930281074224232879375597786521382748409859540048282771756533041057408222952729106234583508952862367092232888075721460857150635055865904723550745128735666762953381272823395614981985965084666304293495649282139031839051930880523905929072351986972726326174820329335570614503131792458533313831522642405328047350438341532219289559123038475914570247343677632821277174948692856891824504788478996844107972308120719068466318064760830126199814604738605064115272555031961599099932282349917709920061109632367611491179165990788477854879140518177672824246100699915521887027654162853610418619611790803160569082314278661634496268635891257959657535034934713012766179877923899265103355571183540281301738726132587674267619466561531340625398130987131928889514457613387519520285794607067551804048889861473514631144521336007646607233260500530915950198711962258146168322344992242124267970264228873782407858027667086674992928222056017567224410409099339531079718211947280343693269443897367052044115731114360886217246032988774734725820098842582276871871716349250145042100245647838840568825111684995862731924177774344304503477300260245861288699428633267750083628749660868445177534069739461564979369032392289900309361672961492228316608143676837947132251543989141911945325936849917676496558482656240260335802723387971639728006635923584540264109566511590863107843940539786791171363379367033476664593540376162023473060688744598373617004721210771467378007910431447028573541072192170364936982419244907883951682448642621846436885000247964185641721829240243403788358718047312436090226327203414376465770997689066998579462902342819894002135109393759941159810168440935109968771474872727886945745002809809255853842602490455468428526874794326851642310408407529504897161554686701714634305001410916761362438575102821900110150071331695104696239600079651225893617785524355524545625808319809840094714324851023045229031211059316432770352067295507309084024316842608887071164300462251063267564452891550579986026258137411015868180051652817441381630764636983699295578774819607806262114722885288545408880052781864092338165439240074236177632364758627114755375126705332700267545417590097170158176680546612264599467667617865326728897281268704879110538420689984712431772333660011003307362797002601149265779768469792425398020699972045998545319531839366108386906661727595242499351127450403462035169301382522404224970088953361651543580740794657998460137248321329445974101311873517226706747561721021926501046680569032143261308957907102181225453979236586691307206417664130208668110059653422814527537644322214188139273374661430428434926871722786734581050085583992422672948062437889943224546624280129772228727637102471841821570589119052930936851905513260513952283025994574654527537149346402584240282504824512285462833340510100397868950677489238160355311990046414159531844211451798124573035330156959365798161166727951870686191792158480755386519741023333364581435795995623261067152781593844352664748995490108176832463633663214214001966826380048510707663317924810936440728370931425285804029527944546782473597709466867924808441244874844297526723531372860478680008525546091676744175274679664337166405397042866247127582888339149060447292019571863925359086343323731518951104469013583074659247921183936006337983164455432678800994440774655265584295329430786636213707299080831738108305639049974513177897998092203547419008944952710774251990739326422022878500591249994322802353719385035602053891848246171122790531732567248245146901928744970124855778701641920239367902808415807989566907028167700494372876470899681077381298134572008493770094402518878512924321742539175040610511466979307469529095781032027706399376939082602250986422698726394756439099475833698086345828564763258168473624284911784465808793234083414326213103299933458958748630361402027891673428748258108771335926107165358649369272798895574551579348279074443008482646597326569833883848163963516206879403412614428055092219019143583244203334526709396147433682411856401539259755845826734622193540344697411505537536375956620612545431974039172166429369354856124496721544672198169103789844518359009138633740333838711552243923184213767569603133939948052096615546927566682456875521799567626411195194259540884188423626485207081443914622595844665551939959864091472534670474927530711992978794843638634553074758677808803829503810754783208675342912758252246590923044305333180760936110054170382461753291944019467137066783434828621743682316994882375504648129144142710752806869234126188385968221485902821194634728856992112915042385120700886540871153730820088129867596351098296030534093001310635364321393263878270006189479531310337236263238912003570623154324736990818528785579054763145574514976598382069647887164268009551002392949168546601935758704538414603514190791563089009000881007245343933667755243611704499619926432827758044385592543122871230624878609547616579055935116036031840731354147673485128941058139363728835648465208822349414525251652982609789910418738599298425903321944813199912286931755506622239979440735180217644914815796309267497221359172695229622502646605848002725075722362975209097555345266667806307488500970827940106904291821997841842451291532217440163187440397993695186624044923946547126811345500945162043291723554375116650121548804958193557092905855697430248858357348330839585675375699547144274298593700301065835996963198385384226616220854338541277901961193531978243951237807470047956844164829516855957048334271316128566910521354830348999803504437174755943295621073018298933434582762479940913781424167850049458908452659284193911684960863238132472464686989614956691790384321089089173251029592500260560917427103244561659620963958376542102275133948275268896165858493074385084027287614613911032385171495674178165987805182147595545785659613275039301444397977069554919752565059684466494297689732422101222931252864981821886489781611821137033285931118901826678638776222195055030556003008905660090055027508656017174957697051351067423124341518882913892937219405405303752889590232860598260582314163957333581425732609107574823221059284750298800101942603461065535029957844442110892688740668042983525884461210267499238155972265409740435345516949924037656766202737201263948507841288558709545494824344730229218679082454880920944011687888405138635511545294824831755750473341218557646628785174059841416691572705236997457704795294398251073843386478416791237905590365113874747164368548091041100554981762410748852173166818203278757925315971833667923379327436534559624164637522349229144321913009311133532651380681960986110344402738457070324763915358766404994814151529256044034092492847172759709467874280319406304035307261608208081347946277614168495003261509162269104523341342656061927379165425376161100688143999453158677274620564920993699154620490766394780036387274062401722159767314454052761399455665024011278930206397138074572201986013315745114141746815180490194479276271009047853461523911998451134798091822025404679730269571058115886613926281445487678518564193947099297580161797135257845137359350070701145452369764476656346678994202247782519139146706372207714913031726406937187624023107766660911346296744569377714471924667051239886901132039176128213218412194778234167973981006309933554105588523858851876519829487285828598122293001471757235563106610523768009768025515568797477176868930005962736654541492466639059150093659997438886222798978517610817060108597751817067782007726375061219068855556381922303729915246756000950868458639924686286990378370055365428974609280485791456533454478328235637474535612681915247262608181412697456392005832228813059372792143175374973731757934341803944413661949298219395284092410602179655195177907596280194382520938532398609816485037987122505335592917081574787455111476062288644888482150813823552503195950856784416019819403923409810408572440621625625357667979419263831535229568854161642932818206058463646869376537903770993223488457574866967511312096016481665621473181797180676934285098478058925477422746624925631356288399959537791826567547003997895912746380080710616671027086546183160640859957401829607124005284326991059477320499365028613596965960733279844225555836168177402974897213149693628267415399085558808276171165250254275121171001247364244117355744907155564758360149171335420745733848512191036435561068028597856792960679119147515947844023019716342259148336389520573270203158925696379997414067173875123505599562021839752703588714704298186496927564134584251711820630033259878646235545566370665425307162761973980956248913694817598739510453533620195448304973411455964625733217187482884152581241192760968752157548477870419328188814729602993178161439615946898804424434004046481625072458650277863549810948971705646442037981142456913019866041641121231636338841817925580346028134545106930483399335681131388058272805133750540484350225758555751489968198049817338361374319555596958463756200966269349324308572577820149960150967244584916524404320135885279357972036424562512981350704086563128139052380179361196490275512879040078114774070621025884722337883036612538500440522632833851421014886236374108365645567039317285225303556298910318721757383879607884680750407771857983619809485079890742700826076397610204948753434258872904595445375474180427195908146049439119821716114972184786553172383018406525035123782129670476459270140850833337686975930167708674214861612763166648360126839966788185548383958452187876345098067408089422305708137121442364683447857165369757080435541408568304754957906526725327075787903771609037692858046468473745973072654669824867769447149348864507098578075118591554518848513265748160157643793524806372508890242513964161163317949044515355241814376154615382935634610127928108703700024540145619560249870984836508487942863186949215901853085629639444922797041018391857133253404784180492730934689525217447362175338431664746239335207309732255675494502133103453439383241951428955487171245163515683628690265200692617165617225453813922210101419877477558702907540201717900190667499280324411702396437350897732552778287940570957902789850107850017899101352323778058411326534680195417559021580058677870568212275380991002826456341565860893073187394400926737496362059742421322314256835609487354905657956145801057655937381637676653999321272888992598043619240602928188610850053736369199384163574546240932450096457816023875360860017983835132602436961595444587667895206345827834750695183396475197233298167555634655054898585582754826244899337939589751515278111806436100545942594175916180951153103964987601628162504284902663466517551004316012577817359355828795121917683501117851194196852580158290267542318574064426910669718116467018023499342556901696427641059774420091509833039901214921168925844822188267367826293493189172348653040407285443144418818230656720121069672171849045357164636908271342050325297441287647432897159882853833129055538601814436062216907309764975256944300851298940723182385923268407180415198343264833023416703022561292274835014635174442502958133246225523010112281122090219441491935145961094660291398437428134981069044311954613289728964633287027320929285400105625483205727000330671736211636144337075630856195904583982219178868750616564837653126971562735629090193518968409838969755533619812359127086883050194483323342567230507559006360707177267393592685211739412004892037057668410096798576690872149869112180659792634783233469836333660471224012607442065430621291622980258005736759625144887052573660547012967294719882033434296000078857743482808502754888634999605564919753764047152838519700593010812537232742064657648755701085078964010008259353141190288680690172190533670919970730512166721028822382103729402824440246071690907266864166841409795032871329874739204508614464459482697290070239093476501587286573927155873021901622989022673603497771530638233718685295285638267732943390389036894311821014856619350647947220431774172639982505218803505370616664231372617363941052424814862181293915015134979583941096683082582213884637431974932566651022474776206698059758417357986648678189240700263644430866511152749486014928983325815549245367417613542040909122760715454303297005881646905573357524978508156909953253853496836838116294053051046768000944626689797800800415455599181290487201713568197039146450634451677166347706705471317016300121530173437797178550751143215518448405108766537369379078717898978198222527125057135954422435139589783121156044439089505072278840659485420065503699082276437393077205154512743857525565278184388638512489227298600094952147965354539974627075187228429482770531954278667667187790534048540641190007696540375884924093483662483736185960389999896966892859847962018535570191486586430631504280495108227661420775129577439368522147220981785775447619256141665277668099463390463657915734914094553075712263762682426574429282594902479285755415603783746535033543949802747773079475804486705171791916776994128668761908295331238184340746771382463049713707851144533095663916916875497610910210159563581431772672275655502127020743823006302242337414920526312090160191429801515696992596231198400226416917009022503827448442421800196225644612432051439845523372595936651900853914663628294921057719295039065066647438776851530643888942804496434277793845365635421184748427576220045701002861573442428029588129429852822101295011278659152773839566230267988562902766332924631321306732676361520046472864015065163541656637151599102909011662939097307510644696572266496637169049935033039603739403308810329550259892935135424204808719827231880564564135253143840008060294322996589663513113837307321152517079139494906206501887053311664097575308562976948653766759220439134614247708317557268012063046860594256283945329311212686715764547947516609921654025436187194813821681317948467577757735743149798839750745230351096712895301909686722368623362250118725075459718171996588652430535983625824404335038327477723519459394788227497352904700904633665783653629275544479841439561266342105813215949190992814611005716253651832769627201431384028471640745158420300939927175980077267313620530798674388914381701885135457289672449620885686246527269251716086089661239786316054953103298857572092174180149842084819793344868513919435127025922152762086948050192599772627501195112634349953934731517851178776224227866731809569022138688283887289981097720600591849917147025304239500823817870226870476894198623043554319089616560334269711043540108171390898698701879221527003637665905337204697431231134808662978261113153134693246941312975637825424855878233863342701686524810744907333705860975798411853054781335574107249741277034984451835376727177072454128808401730241798659823123099057224511420357553746398091917179730711796117447765259430387160590245206489063070658006686726776311339677209182065552588534518063072100812090465787992977141907726583134629955603898988839137090029405149777848499329376059036874980790819674368410545677004766126452402549018389325145078820525816669271170275130299481529320793375657117175939093092675854297289965533443109026451165685569963359152078903621576638983127785479049788766667155202558433143410506876690571626606429734320696741240971948816758009202127911878966688078660368527510568123582890848602779875893448411730264230291209537677073216674042298863144538917578035085140058145909333786773236140187925596629068712449404569315898550656607344936567911609964948578599029726512388826339147974079185119532524815408101759338067311112131445926146396776464759507120805750352387107293219829582238658053324858992426401538685308059212743411551779957859156289448607670761015597159919444891231203134925243798361185130759987493616984415179544613107632168635211619867895200685868853269882757877366588378179466295169038530493070919702677823473231514187384486423732587208537131019701907569532336178749390573212020550078516548882024745931247209703593109920992150073684063807873074984204148848282767576787974645307010618289967817061226828506995525682402984115790279449282726441534134932551265760604388615973825913243614473586417857030772844551877210167680523442327374739456000101771740262478984097459222064161674774955409303419250726498497339525186584935831463392982456216943670779779898531073334227302555441662629204823545462072951092220581382041938417329133510905475283631532516637850691406709745109779792242542999075998132762798578087416879168808047802195130915998720796006061856081136774275769472931557234048501395998779697617182724033994755063264345972834780140452058919154059963350374974025065779933859715804933650339149309656091804227707539964240058036698750842508542328873071714226665006755790942664296622785032651096442763586916171894014101855077401588957417455026256184277128800716459335982090021334625760241479867578709774251059402572176132614207560158905664807425991988675082935246347024286857284348597078025948215894390777178533539993188817526841429503543745666445801000327965777230195016212874534540247941496719444717116691611340809760482687423565262136125612670697378335465366961791265540346697831797784733720796339202823391376942786818283277802418709402120220450192352070925137191393932196704107151862961988332185011366364664288929408642757535405359575773386023686760566149103325596383283536863268520635499331138285059144067968748702445155021711054826113952513112273286724184731419476586357519446973522363345792263218531393938937500269705387347665814084306034642256138214407198427549967723779193896149783696856687552976553434246918641252018725341604903798547383663806240881275524816388646715824795342368431875058252135858509585296980303066276568332041086398717493078284791722018532286116228703541696433395564274874223380022332692914713884194160161032682236832836554045048380667366619237530066370355639293097000530437513542260186917657634160044862236851585639355116732232173278456045333540561891225339760714333111631662207699288309616088260475214408206668222682668971893122832896037986050468965028321001884183019964402458986246141728115169221118496272460260526834876061939104622309518755813553191598678997230297623831225083409122385302053489531308615109172226832643081560028267765285476648342919268370288791573728831871892332521039171083009140178296175353245058776931196335473687997162318082709558075043718664291632365811071594355556918853811705999699573368067154746611588119080763709373068820905624117568727659578395886486330940287457819682074667431252886039402081033371592171009442827769067291554472055540785568751144092273950260004359507143530330634597038459672902943031562594910627863601967899616138658315323434195662779923354315406122102034544378038650219841636743162752882378794317224072763209377728549927726803569748805835395146790832924662100234269409944394825360236512189723946171856026180015653841823244887989783606909493063425560289322774474173035941845726705792972046380477353567774148303399668005031080213586765242628479059702134294476308897422619367268378620992384253908367383058203131669831050522706498064936283224854921346308982797984123609027353814533548204424517553688693642609883667011822020532539709347039485495496420927271511341250250479242919907653984297240567326154962620239813656261433249817355134075575666255832702737590708737504413528942406357137922901618113339742399611861617668848582326505052735443186544336113508309382676046899700155806159271857243506432558230289456823467251184703821491763973403543268873228126301034037161349813128135096771581154019523714276032534185421439532694616008671815189843139169262844208239228033341366659890541354653230465557708627542680102836619966586272230726770465065991031035528919977139410595997058536661556133678958809279547302161240104728519988742320899338347510270464959438355696029730226264941152667773240108789597753764703277324319407047517441810233983765547752116736639396778699660493361108563540505163413028450914166410539482290866317861381962519245658308413580354662342053433643607504093612270870657942041296291482016111053482985615096155106195954995465558489317449898112119213056364131796512423481468341099318264125188194539603532974223533711638291207004248791966665981107374891021708970893931348906755442805966830020661356992881732781917169254338529351336949994357106100083336116953991327596321059209455310205896788025527804348128045633044415457638004506254486239999419358466700841618158286519268523739135659861296869475092812859612677303309713350772039808938624515634609813346213694902753673636699798842860149521276584881097545769195948686182067627903849494834738559606633060677070547130839655787226194498630532331658195338381232204675167939409283172590103076841967171844988594296438605084420835047905997890356652151864156415223644214553276057908577705614361032812628413203691220860811270234472656584959798357760963736661153294838144045616086587256207333671407227887869715145353824178951997532262667646977152874277259461771486465222530848583204105957136238754908813935344267230895917371989325626558743554990934132449029254147581305091532647203562132206077477409541497184529180141878649140665242581975538586813063209583536028951444804050909841575817805896545632984196813778617943605061882986870506140128545995478895004400339343395505306813648848457934102615677701834746836685604289311777951963679634781123310477855976127549784901992864083403343496787482861362990750738836214672534225467640697929065180234916585537634557662636349954655613658504857318685317787235005211046878752581127415080917253598776499574652080771143349518396263999367041354112616616249171978451433925015808972976583111486568931078529827199025295525610973585000440206438669975647557150591294831311792912961481414897590627965325300009324992756759682187484212781135164833052067929131565715754046367866422836801638629032575337184984619802989484830335732061961960260863066825196851878813779424738116468035306290478136531089654242984456945317684297048881105959538608902816262784053424314278934665822026011853210797601540640403122987174688055772912629584894893572866585806284800414592850317135257271407476989639721709220916204115798819664806508929089835761905121634429507151522434457395723798087836514230327385302323748240999588248310934149779354688790356212471369956220158727490518292377722831033487509101083222338989892404060504506636508950343905897428244217975680990439269484971520231274440833696094663969279367194079366232981982295910271119257449048559396687351029238428387378359241054381110179859994457885733100122160387764203214772889260148241812919309241984604426624839814156051142718684160707161649376930334795943875253786665909418746782139167661768076339572510311583980485729824864301691971093629279502366187186360369240326851979242285322138488803490850966387313083928720092674497492768140874585133126834624744185290893018306024760589332615184136109817465436236397230535494341526542075320080330174655814340756153702284017922319896634776301826318016118317579061983656277422690089475222392820177338221676086435229113140393523155557658761099231615860961136234416944585745845765701911055918117131006370527877297416319504594768752442435775138038100179108180601736770696111045882811850255810037885614067940369358116153983958503467537512469029921784976906689635273375997269354619510481092473459801220137968471719682107628965805954279340333612265991259612801604063269855947233731050004341714862669141850040457946027726779047744095360331349999793154549432021097480734621561866596322058811532783793254459693079858783275399267284210021292306816550691249045154276704973891559466818661203178772711623501057650210871500997850037496326471732891786120593048679181504439979352769168482145946629928565899671337273322828620384095734097743898987891426970575696089120858904314752179409537999540597880511749822159229922893059290761838308189939450587819594116956977461565021559410502048608005582643399726679423422902844558262814210375616711131185064677342704978878827244186047089577096911328608159560806074854334051971038435071273414853470152461371878505637791058220959394605295170684009603658736686788903314191444654855096294074809312942568476243687793287107922043649076554482235147742784884238993995904611088948163018326633345177483973350811457878127964180156364651187305593066085131925999422189525649652239281433694791540717743097882194978306497340461119611452215462732377571558820063646740286896782979851832650543932220106230309389094961528028497951800538481380873427312564399173429877885667433099998990660317392135216185981627408185413691995901655195980482523747604635455773990212870505559773510299074813497658629668472163470374345583510730289768487152481130923677506080166815501998317665192661431102863095078362860295445696019818280709348315889656933616236663689188761353745761969772194036829702529826180506445586522728870343931462172919050020070992891623422236221303446806940673585768686198851175516805318218179405379085261450605349540681187750729011045081288839289969049242910419562742869192536123518927651979150209469422306702401660750459905449691446623137832651820283173033498997960114524620287225858943257334543393016001467065221285390271774670198812240284255116624946946658818308854268377928616896566320769140907675180564547977875352798441832646575557244719824880241651138395770383936770733724956573502216929487401513869648413367463290830334079203947006667002164610475342380804336887164143170377493507733695621808544645415518680893822778299386271047299868813357006170769001846701504860912829235413432666755796738675656779989974300756335765437305275894598727750688961255368899458141377312694645534711869538846914267147372888441127370148502286641380522222395614748745423497644794749429291459818038321635993552079376683692949255518399459276653047635763333218253881686764551144405538671071897291668532911473681413202045614850531129446898892778287802612066011503404185548505192135099134668062087067143142302162573108424207422693993876766185724867683395198327840186139063617864686635285588041240053578842213192344752040274970343875093985915993763875087186956974545280187923285997070043091840914756362978217435171805344371233555042271382188624177339024036149186528062898963400500037077180457164297447287115917420635429842839679019281261615771657225552027474298955351322745777155185696341332632421888041331726002639809215938869082721444098030121719649706842045432458851272083450903921993199326644199261953269167226055093751396492976936177229951902014706925569124153376059533363660707716269889375195496727912788325952246854722378627319825986512197385129144946367523106954429200632507596910198506055781174100036514665262134233384978053425401020293494823451465036081445172821521514298148845175169247968561097580134139980625212637021070286989624877618942695045108559973042524927003617789214706839791494386738589328122832673038638570885744042339950373940643223961925002931793502455093250084530479920112937299104685787225174114830347208407487874998984353360992807794586697038633391311181067979541334522071051380152922705338207052881754324564160130082604898863138852932502218079702332271207473413869180829709628912543208604261020754789384350090871692265438277858167341552683843453329488690756546086752271802327377709436526244717095998606604563818770112466829867343441568583793931232055824777859946820914112765361287860745347298193668510327280745551092726718695491368458974379217879564359957023157201552979187727012332370851532362536520965525852816383653063802242557655869095287289417124539079880607039537708231756481320299352906860053916221667118595072916157955661647339166750307946396636823110710869154857773931375115558480584839886258589576490856191227464759571484890346777840669557061289965632781179958789919100059660775294477500333109560819295940097261383337945572923931653943805276756441038615950302082232575879682831979846184746911005902762713086425898393027181022154991647177944376983757977748796313189291003172254361944153009761404058520375623753360992645135783920013179389419415477115134389157093831362131005066652278613504477566185269420444543152434451461113341895564352392824288629002332967898214299574638296773736445343342420125590769998800380614201029786351661305625860007685527681206352424520467315302251594003479020162961012259157019304435178993375953644464398309370107187096558981009560999283466705879754621590679112818113075246461443056711656707946920711516963284522244094630985789925061661975957141404481106525398088559816240862763910285972795114559594508667491261683346825083704675504211951715873051954173838544730306543167147119252569580600826691601638657742822379557304638369411676300733099997242880283552746766018662272931569809292283361000127961146115710272751149173763389876198840204209000122969703259360257943911400560428252085318103127009312496717456728386205973572211173731014603587438539369954704856305002961461962601460207630532706814760538525432983368304856663011720689316422656323293740521254314803303163016660149436525053183459586503411226326872660840246898935076620478962980725099193964743884729294854915227606975000043293981705984486328864499774244441013160038476928524167527083641605130985329195274647710546232303645446401391161707551364785943639557467104563320689889210555730542245492067712520836753682293654604922670362274319625580213715331849123242821850381893129806647213343046853469909941760889305436005597634320456429136217747508868942508337827467014198647178762161999159717999492700645721256537375423814568228650723138448605662206429451119762342504468902584586042670761274551775313206650164894429812605267071841945859402401636974606787463437289355695303295192054115395816922975703912750455800101050036151432758885924731514030262453896333766766298223246484682312759589020282904203554979544712083876920581103884485697678118130015017366396001388315572981470064963265341578840771890203599710230082938992638009382181969814804424074224146496891054677593145237573753020062715033526264923809628668023342976565644848716584646743958461061919676983105474469443511144612453653392661499500727703945062292312435599214378381776802417161221069391612064700811755483552929713816782279048423427881575624634193072151789596997893577727856543723685617898751529362403001392556855178052576643714284977645084916206879223159439462530176650393471683859065283433011663055440347781554540476310502962169077236499812866388877180701700067794841848477961373348114456505848558755974772844183709895913906801873499090267355772945812658061423122652728253544222238510631486756455970563513257553487704212681252074623717139082811093163129427575620656873926371553982866263362169683989495706114225307266559707062428143353028258672642178798689177080183284163727981983151956207564365973533765787580315351497872882377449671255668745665499010152826358956520592633951059132416787420055447540442618342552164375650000170263045865442840206158450515624621478512292292607329162784790449888027671420715748896236247818612996917709444498042976149217080909370147957949592672357550792272147462302269229124571180719971554983010739695031890663792248789535311496734513745567485976455091184049147707225395335120222712580197284933833293014714156432628853793890243167895457543125944516850568377916625646879745286010166012682756118133112728944659260837842440366960856796256985345835928968342696445083329188251714603742613132864341652061654090712459195429830625549959892906881696325884802836289247957598157752452469849706602368021901878309000540647817117875996231828299587262002997135599982165828652324277263312569912402298688341234474536635673790337021219265702115807476641136017710305986701250798239081056351692212841143364659609545520989144735310647281899624322182234961903287633876838014791064621436493369260776292237985564608798159221194992391743394516452826140450045169763142038089527709814290923644670542578303354344712114974885847350395895989280983727034077276101536065436222759621727760201390126531431409670360792713057640423391709625617365474412409985581225013448112213895441150279816458674001684364038389667517790063665201898891732476328288361769389883366785973878579151338681931113237635130294671022153654484422101149323848948788922026491841659506141032476242078045439512978671701686839191543664198031044102157291019159108467378202944205934695823157634264026931480493638966113226737668052383363403729713836027899029748404953406234619403302244113101115356937931236038019273404436511402972959970442512220444000785499844009540339676267995025203434579746614282369591172985444049664072766748225639561877856900144968689738849422420014352861866758187578090920794652998488744040731902333334989011117650052350157827424103413005531084191993692217572949515473416090342760459042654112838525425286674739199936184416290052858861364392905875205399865228188624757500278200900707777524286692910658115965593368980731968740787169721845282650023971567654616855548214418047482359509525403372252462846485431482820332387838863345144359211817762144356225803191639460045591481824669832180147741952753357426316440407208727704773702944259941158819660229800408469797193414605656320408602371045519612767093528368583983488352864645336854396294933819468314201098636103409090020478490669698648286294497603767037719547440902265127858470832549335806416007748753809713726817733556091408873681512879139163203625789085235832084936195137028411065798919096402266417192262445566003079319475216699932354792718730776417419121052813520680494507922135469234153431381405575182584186235083210960134311542448381572431694326235333341867180860813281959443600558124391612062594001592950614749089569635262030506036528795365176582670364576873267930369486290952634260980972713351818178055585767341177451391456910780493719003075215831254649760354646046230944418284686471353255113454828840734952828057383337099615538719933458987167462876011909656233395612552766697418517918531615037663134619430499330261129853053431418621403984979223081809877577108543017703033938513937869935800851664997571697812503048662440515240802711939751705832853403960826414763699472277211748049949280348390867585001677201438567501393449848198522246156981050506861072855474143932545907548487439878931321846168287066787217345619524531333415093624570851193155705941323486215581169015535950433532612941058651733268872870740365993015827377799363918137727461723273123808904808018066066549615608974448611982389151886014868407243268514189478795394130424086054973307367263441530305199955189955154605849248787942637093688924136925955009500580987205951519601450914450987408691473215690616547681552436834073639917188683256406189866077580231683957413772004197401779168564093241704098293594643315257654655504354015207037835817666662091342068411756016416362202036858096542431672806116578310977759436124981813002811491720749724031415797224316744607839463129697064125686629645423759559601944404796198590350653207994084864080405810519711047218790369265199773040804114960356754312330685881697605917521371478427679597003106342237702795452908142221021232558249717731659764657708665840816788172382483928488510413760399989011988894281814171638452372844569160912473347408145142391951501738418798401881179772091959110464117235815572263467722270483114561786331231370039652160283801829498929036950681019148648571274060406319348273971712457822021074588860529696249615835276523707570543158618150054758889870541316633661432844367880252522771472792484785202349715305991349315613030376597848586482860648171934779284369732813368728314197732399482189863230779700399685473811926486386296897787489052347671878386461067326966927553440621093433745109807441510494816106861997300022735829026049693129630269536834513440870137776618816735955160534258667487746977954494196314400595894464315311585230055489041524467071495498615177930185370396154820140819701126585680612792536286960836215198199991420560143419609560645289546198362490187008960894610721715711124719041448688517758314150385135218047712326478445260591977445360862164229516910067381495148866894796351138140396433243737340933545374795659249643622811498963843073600493936508878222705368624937078261776673394942104599184853636725026490645945758794430113105465430736248277433269168078459497685891595518675271343512275374461532742714150884804542118077398249646870995239611280559613987994215102221178492773769841637492148846964876572087377949239106716588528093891013706741842850018164364419665034619008966762173486375104542079944893996694654662503564498253683822646274034895082668801270543647525644586686468068321177240334115935249748752375110716901362495648162462723087851672481923508395297244508298161239419314200732331539165843677300129560089888572471624061132096217798012671094983410053022597826842296734513713526714865635645535479080900942301990914316528855245254948620417961869661442334939869540599532670790134678297737141553014460552897101147101679172745960982751441219278737697035882629414717296590536384814295290417704263442334123140632401611738716796999909091626497227408090877847051429981418287510508672056292511653973476542022155815265231630293727977726352301137992131279454409351150347478880881037471355204236565324579342487225129170548902248243295857910579804350174436504178251664379692734104939587562565066543292555358849119617455676262904238365826453173213644093452990252252772388115344231755792043627073280212105597348417184160646156252057609758539529697214286299719024184947267884669430743628667699239967151541071625290371580026514668043019748625164452577216659507507079567529092652123819524269938094076238797265379218394492010041629496357441245532689041747437132263978204378779423504381340205801315500893626920115430616903506626123356018101798502759699254504599511178278444879738843324132567990377545833421526622640487630186129953011873890070616753898074966268797210220855948678707040006541646299374177276101845642265359341780645320140319518864271403037535456234438690243552005794143764851393314783518880198897358162470267032409747636346656905293391557396088765720796486245338185860963826115411900714101199866381447908693776834594255906127553706491717566205115475165720321324746721464238219434858274323413277366168421470742528965173604823086284375445038407627881150785657145584403563840673798459125517017918218751931021579217929031802736099400462070506170018442151071159756109305365752899361069186803766046836764299093456283206871927521501966454881032386920923596575006727842761487058494488787561803107976624950020350979885669543251162573127883650579576533714162506908932205630741040863990120297665983120410243963395862168015259758926849935766115635586284553336951163685675667804640918328229853921154065338907140643242959582550138524333388892217610423540746972376414742992163317789934474986190553418449389351674863057102942548720309924193230092061672556095955831264818622112203629783383803305943589632472850234941276465893620865290875051177202013830405439550487108559588050482672741121693085231340325583029136914953247462070630730110406689524634157858619160545717840066399968162904168404311080595967973037020282812666230993251930091643047595606814526208887039983924155373321375135693058015522083534135413922102205343802852373087533939692053591836580622105497725603356282789666609974007711664556798864002666260262232476934842901507903102054776461282002631914169599464523696568286119085301711290491560442250451449037701563076129452070515514978665105996242801610712158399557738546818162457536849199436641444829609448652630305634597787244109091794949504915882921050875050000338119560045268613887011989612174650732230422733605429882871658888996432356100644579446166181690417751099812034548444305857389169444051187424730428457227003141759816531506255104768688068969152590117077165677459858674150966009380532862603215601338245740476007990082841969941561397673096260876763008503954169315247883432301093008113087004934286103847936753218842122146350485155378995283842763309009531569562285661695885201773203536568936615476777276525381627159822519109022679190987603033809084771701327062696698884171635779268508733685886974836676178425447489132951669486124205367378975036083816569320528864036588580895553766240928518985727437907157983380343194705116632386247222516504242550197019444102380357642861532007303166995763198037401586956214315815312642805636403810438236039056883133713416570350961866188513755124822207814050435968141066767815565265713656426578697470395543484465475392880991264630117896477108249027716428195735139198278972570124357856112126435116470743341562639444531647416192594516433123182199904839491319366067755536851411337852201949343952599937330152722729778022949603338232653113682967722340098351688692754429038663934737127501407942504723598424460269643890034616387101838912237401558746219270709135231391726488725865685508232931944956734409404481895426537883335289190585342729804946909687019289916281807548611301672750624010687665073129208166667744553608281994907535856512033470585528673889875735030605228566801649666179298434213568617987247606810725466837267761037154034497007416751231906040164107945043443123274374086335978452620973110513347397380733861183257913385533768169227535065812536769110513750643844560088666582779433423468164171945396878737581863027507809601213261434327264030259376102415179981208364912464491561910681446990705295286289446649787218172806479118478515275542050557794851329364602909335243568671897465246220550092618004356529439996321539379557785616936440769734743311944796755920203925982308471834362827009179934543153285348668071386170173463482220137810326207524687739834207748965390139855902710352843993968906120669372553734221974059016581913564176993328235892378187843004025365318677026654240143749665213626395099461214518349820417915005793088334336685621377146983624707709622787282373509080971403927220854809664510221635376517503125307035419517574336942077844271514563725905591656074992209554968943574783089043356504556677673553113144232645779951161109253733860757933410583800933809410811991875132005435933740648464978328534195942275783220877309089640781984891565931629024329482314470132117993330210970030123877030001807018113890237552349272995756877971981664364617096495933733088181716252675882820812029935389328967725222688767173069949824926548226997635380749105399479690653640904337657035372761856438372846613601628868230735757437231553453519735773450186489152447844029179916643972534307991174394624432503513674985031868297387576498547682761865025837251228195684101089446793623456295570531608622792015902068569692377548193756188648380860857816713950814166255241877156598062730748152581371783700695927751613203678053673519868177404173058297817418298002129802067536697848664653904168312686721435296695724735739981176382094429055746322698810262582708913470517393238631854448308080201841650670434220346027880905451555822403300981613741034692755370424942343590833151938031324768322018514064753290076265529425501209225409398992478811655608119147504774595943706979050635798715560097810020603052568272414926536566995905488845323625029171595654436355517056468012394213582354731073160445351327793251634527382335159317827404041293727242209494035735682088715328159412243123555336670292562233267094122797745547839563157746738726481332556399610119019826136922931198902787275844306576932374119387379137180563349443745188838864263759877125851569789917010668591943205271867175863498876072992111424047099821213338768839322210987542495854371872430880894385174130268701100718426783452792965992690485645214802982078531381847403209826193856794013186396535936247162076333264086825392247255911178957380011631875291617240204326757758009298700225365196628124450633919207541480005730897304200977071141887628005746091128003463272614952269326060460894274792872179846567713158856486033090991472107006625398589705343189136289849466080783527488716758809503107922651828992607872625091917331079556046284190996891339316826455244768776806465877540620322352131736389645551208583157235852772429354548846948622849570820641312433928494350796733694689121119007382089584096357406176292909710751719615934097905471089628540442249625816305968374385643794226155008885591993476082861032924955724949905095032138146099966672938463564712731062377546550593007999326995765059475820655083457268074553333300748911234986409072195622737185331916696375458163766247549721506932925043978712871581062183873995671594024244929723642496558225286996535532438419896516068167815408865805711948469724672784243418556662215688617037648152958628682373922539377290130432755317258695928005513220370878680822603989279092434858963565205679517251310342468434199127730393291863781023350764154078859485559468884226327849498013324432858370646381599315046171598824182400587251310132061695024153909532082242712545563149706705215303399560219037874200851426341100779813200182731400348946795242796586743872965314875904700451735938683082611612012915332702730144729877594862195133451044609827296391989734880936439129199419213874009461370126067722416619918590772545420598889254841521407621611850475847283736614902435741645875673046656345453761598729275472253174241960635641712981249825311074120429125679626041277800752969448429248591363804805173121625086932525205142842961569832471756291197086967448769724829714148722567481847407712430811290449625653097203620533766916120383756262551866885948721856528349660897239279825168401526437858404631069418174430622477531021945933698245021511937374407774786874523848555717028905056940855176042856342504201033493657834306561276136449973670589210947854542872048195199744632343324493786066449413945691762949177877024713820179392064295062701399072914310447795020302210622107186454620633812735512548962831880738310014454333084085390966461444375625092513431290955253515885361284190187095742171654819508765324091797183552516588043345540239345939558600594965860687407802725489567309860300066621716643485149170317128810119148549622543730625721545773654256211723660227466082929399952122079821892521512531979081231322468011752505080425474166492678837288251956702945736577486469925558371500494687150349950797225278335594080003409155436165037571867782636467714955028254155586444653289943762592858561340465726204786561616507641247500167849435960211474027982035039121812881614474271764465245623464534149489211603959105905902524086452570313567766886067165022143868466096020359570958794277261589084854415469273709967877711816780063705626518177628734650911964746185321361188002686177101426573228408875953642212279440724385925677209082861894244984467430334179569428825129772744262927856915959874458032640035877637592091474652069140882457464639206471651424103433988800577378336760790982569659885741812118217838228546312321959064944037132921199494701273869522033179338066413880239135819633024912604351816545856854037927342990656318251753820470703201211074145429256766080840079010304663231755326857705120237983077181387985157673104229249582191860976834617811130437455591156322726893258294652299714901710282352531097709112480108313211247979357261871055040933129213636456957067967540160264531789889511608971471162911255013182848227630668702179794916624301066731082478635248703740746798035402622929993563756712407904421447853109351199161322291707802407895656157819746068420800211603582735759140665136425420947447631951601413370963163269109504094323926275554505623150531723525931048546598225758038535822507845345081306938929275710600283284559851827911612687026732797967558097200372900684953474137312852022470470102667234745927943412248245673629838366530357858188377701585109142558872345329972970410164534311776358604199543002077914989916746606190523600083335285690155134533963888003348033926066612806248002075936592872154583404637053021025513206367968174672045904303318699179810241700008161294045827202517783717929836825582621107681289426218767854590866917812956658096345285391429483350667072290119331364769781636290280991642147987076910664622904472901907302763205914262957769437185343545374013558373592619998743447338843404382158210186481485296235066509664392038802152386375570509364655700091540405298188777758538129408063900291974694549840782021241483367972229859104267827704698411791220499686494077615566579459244767661157093052202839971000255664854744885451901653429830549748464066412897195233256448478137144158793826611325929492829390398679790341552020435693652238771891969898960600713377599789527811443489220998113731062272652987459954626666962479185686946389809008095419126919923371732009699766976106975044059428985925919081426881241144665457245608411552147884252935191006743423978025994382169964573552360647308058480231618992319686866662658127485704377301465738007837055242796639990047091763487159779049491820757181919359693088040305050996407915953007863166910589381463593172157042634095927887441266721668093138220720256051414008595407681558890878237463878750613992809834649859928757488900230789159590193067331543382356278227993754140959251803581045950482368819478594935266664778315817235425678317479583371126116628553111648830262794519355889908744054001043565025206567856020719206179474620472438531053454405210717460546421844667449209780895952690698576173985040140950211642201904887414293692730043461903852833539313359916186576725983346826288120516142890523694071206474746070032790653591441898791415721916470421355286578154046125287692049970760095455947099587034461375599737011795526526289364838781971645518403943915300398350991148979708258759777714602794898916101210031952959403429035427632805317591641820043435171440956331259754634368279983556600203336572720131542062370077078389778892022354734195989101175204904856648816313709087332862284567784828126402893850599574957445658234079876196460168071881993242066903144831184079334836511157229738070509195247146835405811469082459030101025854364328963825350595524284023806542760971810979035882444619525018829065381749256557865891686185477618170042908574165072739075623429933225926074659725013348989346703667253011026118694382787074274231695482275342446355019457040908799735251260049578290751062563575080497794254284668020593776257313218023615743875734977587910224159276102520070183203220826453760879704008824836100183807071974105081489914678136304488216589623973673934075623281319924085405957358008623592125207999166042384741523552672105641122582389197723141798969298036566449102588047210072140352249351823804911438093944954345274364739342473991262803425118830724834760298911201131368865210681858453051448781459539529249728372264096468319266529215712331467753518614079584253796507368633175188639460823804933866890972168285390738355177892023760963688129233365484159910831323552429409666574605700907097843405286144761058531709256946633295625700892002116747585044411753123990935984663115007528336840321737847630938973087829885487172355473839304776635230216135784156178199373504410643481842063935364678149112539252320777813016863031976522212100138774002062247993230451273203395598360643802195482651952614892481451568162254808109035546781950634391332745848253534112843124256326629273753057213896086916699399974187635217640523675855692658029112426659802042013441021750947625595172665907665667148950641950389104389436114768340803105358998816950636407117955573901771374381498337497741298959460045643804041730130292108082580923479304888078927351509607170676644791391422520435838222686455277521337640932521124398905126413921534006110660331882583673232337994677045152128382198158117569311618964424580284542296263201267366011594035857726056755332618312082893539120107752873644176029140721952327846461056792763895676558074508948879499520709839814035999133885690808850507958656027883856689734963494984564879705294191488441779352786419757411110159390005353634385928670996807876286045798627961684036957722556227524699640517342165843450097068995770215837496832958457049175767669587228944368390182636905315692750123561043164060314879725664297776334643007572427108860358450582632172982132623163759734901415542629317783389791250599853502707829808141520542159284375399846638148690434348389589521462442782130756184820566037170002394115965360823806958966666201664810534209511839250182970959087893298622797039683284370348149645233725105853917408824454991353598034538228084756482899466382583993868570493128167936632427291702083993930188026818527495570905983945510061321373286249144444316618687071841386779268344625752239759150845791140164887110478358186529824010684724351339746672997552789426410861369265106981917434373835812086180776961388179874940091784905417074979126877518596367923569067916388558554414484708265632015994102257495813369120217391290377585355055525504665532902530631688803853934920576197928174259797258945780619787286790080823749325051646754621134554034077450311101584374181601441592535226455206536911396183816676646464088341978723022976163153188584822855168781003193936606167943636083858568895180707124404278022616756646531811511980028096747173749396388449041348553225175235687978065331849617578317867388584766177080964822634618697879975260692777930024877718191328762698409626633220170197247926966504162795368630588209642000086869488919855135940520866431989949938255840794325017898519545364390544335991098324622253089331283654858089356873785599215881144206967071683376241146615814649273098027722678845792622783311681357260835738002022583967395072062169897721557222316048650740283558632081335250941369469649912693923401958204500640652728446157691928102091989670141316477542924963534218523477153034836792735638512131790905124067944072474216396974031618383239296511514492122468930739430766773482590315373838936950594644266198817616755647764719993250427897707282439206957977230630446270142722628335941412389466392666784079569518597491453198298461483640716663479707557102275620968450403568972010365318691122841563247324959890435944256314888511842564619877741694327259705120102187312633238593471946185087524162357614949903008777682835307238231338779554966793220120937270257895372512752797167011721695007372668687923483284905699179892771270450047932271558396759298928079942806362232801687509929594971624779973743566430580554633726048083808870193112038220981624985942377110223457566870917872870558095800906271471437817656899396845740403558082083505540238542649683846082263418381686646972934372770543303339861644649293252003857974143718293905490319032094920254251129347980950723643030728367769801510788806566378181548193319195859385431600647979278465223507589409614280992985330563143339095924454234656250649539228329876391173351492090246503168398321529241773308124292488398899715104153705785806803284334652603075343722981839870156413498553840787552066458224380233890325751403309368190960357994719153213959587904404364955226281252343955412253178981162202176028968124097125210757563264108425998568646195140979335415308085181506876000898046372826699442084991392959287648148521265751960569639855622493228801502255525333374808075951606577492441909985403565090896591260378191297506036577789672215455470390495207394028378868166924939509570059217616706667507330960747032370442261098455494945416110850273838517490946693933739775042002376496584297452923489141141841598372893907002062779377449935424357098844344819039897335912111659504070592386835086161398894090989660882008119511939525309677760512360161300931968568430608857109650159983837106245661969854509226305753380916896829082458330203078452715056304109632377008259303200481941850511163999453438101138756180926427998762632449979840917455975799859045487584503831261873106612858095020235120817668737763907985343205750012978184081271240840374794678499224957674108848205035674744889755212263598531442054264209923755306085379374942564036673113075109784192714727540733162429749082220969876148461181982171324409963390657352324106712432521904317336067620482457451058647666134906333836207211360294889332570537028562869870111538085566796585668012832691925738684186510238168927031855594087607692045054068693674620626278844452574960926459994851400009165758114177930997634532482578549548725629464733503626426742795998058663877655837390848802750066886421385418391586708114697816896071435441526572082713582200854547115225757260349924653576431510679743623179864174673883847836481122522871122602319322890489771046366476195419306573326552413361521039319776975261006898911807591939434671889218844361671927600053342839166381820219964981067737680048240186894611949595963523469155902136577753450492189205458472033167279786321930222352047273706568057779933223179967540249291353693652765643578133624238421264705557728951304037068512896821279342483048820881598330991197652134723311674171533246797106590793885129447639740918745724679718309515431456192284840621448253089464548951126593410845399293705389149704403631695617314596483167314453975161693595904104108637777365813644216637756850595690895160421107780970913537859646820282339646217345033087995472585466385772273872661929914768965526576306714629908537679715930155354317987865712333372405660433020391639818897258024780473779163188897431148778173045331545962908952411420896112870289420569866362609381581174141642818522570301748823616381379625054341798251839549719146057157441601181386086715380605867480125081569944734066385442413990131708167103371028682710557733321559547135989779393621530877699535165601294077892478614144351464019671482729073127429274722565367172320758822493979483430901745231851389159866164708147884136634025726054268470530310580288494373107901069067900026399100701395551472444690663860036118379527962335660106701992643455569372330738912534472318905778457570161972984816438177739801809159645965966653376218045302299704550837446034112662483443543387672349023283305245554865788144197644928332763717598836210483125910439973686527572553955646984357414651619204031719012553822059912309681654440275572192961983833248513764066956698795764854044400848494544873899680301693563916346256367300121754177473825765776827402033331197249455127871229138130766355447788350486188026737868472427616593944646027742051518215897153176776509866280405038154793200338543440354679823671753605937718751624949564160765049211260427465033633203853395122183280583002920486704807500097401350065456270655880937359755653185302970787361992625774919897518656565783891348185721092530465557894358686684829379609503623507981000746394189306933449056755461818658801539664252827924492353822499410765847036331562350092511491814650037697701307060369262682875627684006218114854613686814981916110579747061090016897160694131966377764080193305736069131266330020632300519147797330626655494118701530114030107523852417955649024734321695032854297070213809581300168894709892219827358124382640927432424045976823575787347776598946506432386490213910752310978087364037449550036700462483245273758555022073069499841394274814320464653645230594582891784443397227918402352051461543788689080174045109145813391416833287709420586377771871880684059886925224574491295655522785780389652665122335759563157260518034567288987809666213040227797998684718929516570553541486572816681463982474944106468940513094569213088891483776068441739631476074916616262368474300916370456463751621874050959416607547387414580262031004892891955060786940805324616581957025524964502221686996519104109046554458474404306381557591355762551947827651863604324808302452428654199085178459531418710247986676749467248640161399019094807124493669068989502285448385341810157897568757993483287823009088568111720385306685908668467962954230232021051954893905444447037966176144674542873556081282173426166044623748485387536618963458063517635574760944009271870603816530291425716394279124119065717111451764318264835669799071408547965956861102099084246304877190810386899008606842168993112187994899045978416655190494702141473930804452177620181443978409182655374683526837322287370847899784927294494624361005463579608628507368269058635817092759867244936769505296055619595299368250801792433974654436229153748301395582720415602835002199825144223404004624724312359665470784390908262651536899558639094096129419671842960602381669819043799866298068395084966948953497343396414586441869682442346245775405852521931270761258136300272215200809263443118108976655715813144141219449079005509386210557568162983673176152605286966669954503521281416950270836812669123277195096932393938303727277478215815300211726273956724704297970080729317815628938679087841567635186080936954260366519125046656072368825441241238748158023500939145361295351783513242967822673692450629311707138788908570051320777844026130269189273582624987078045727757400812626836241362491720049407368727492158366722557520539124488214343144905701136676377315005213877389847013631059910474203366939088828935252021184983529628650694186489371201768959759088548605544790147909306216175040316724788435251350367865703656634855595788904670762097238981173681253294824320650504581935953911492974441655880432007160064040061966270464769086161466913193790039242687730831759294324576276416504592650601876366834616635682584521306207336525316373872825546773401053788992301097463927480173490613603891174561643350194635043647757975681603181272544210040504256703571620904301324691826043800694527344983197145162385084860992343500047302188250414152884013692743318209808180540036564292773467220916104464433966280339016975961781537119491051007060048468613111845860857360797442042111777894704746165452409271058273917964899314772956492677073897600785061473361159246468183273533131425697564911499860322163036813752510484206847682348461062585324588577210629458782900400361626627632770892109056260599498581208830363717701810550480303223392655439952644502570547315916460854333103644157878768125662520045780273649238419173253388514899029723377423076872507581423893411811200710471671661960253208907209271288176645045881817977045695637436391970004497553427824001776927472676255803234934444614234262880011304603579471277362817187708736681664609289163545756177752628746381085344670026508464527762989856829037934140267314108011097850889266762536187806687932552119944644088585223446293975641753094786018758589247252428598428859140032628023716614326613865177210604303279844278116198664131917738073728311960629098655964770519629189358944902762510238882725119867901596749800647491359582219807592528399956088997239556013125518812258720965202750533402597969226334494101756299007583107109351362643417568956583543605415249336164361417899821342759971426318257266222787871926039511540321982878532244533912357201651963257038738822505034073464390419377433229615481458852993965835812354700766387917888558386315739627658442033348261543386974174874690325961661161033879609359786311171272895423321866718734353704868655532760918328081278712302000966112252646023903016679645859328685225465578549484759281526563615589669131028228041839970232008094910135510394252166480613653203385171770228870557130609320066396648653644892647552362793692125165630207892175241791044914390794854056308658111347873035366001784808839895604288650446345396524915867025789185648677374707416847639179047586082495234525538740785343473361323556489829492757420083164677420466638104834583184945318825806328537310587085412952667657062068645625548798485365883371533639212266141961954286387734494400470943478022946356609041868227684389092906619196707280926137618881052084536362596613433813869174999674732313142557994274244253811135412887169518055190211348309328503718891580751302918135790757360380744528544001453837875810776137479590895837122897560473063817184533430015732463777167214567162388687961944480238570716232167278022786811327147219624521262012940419767281664138887958452212391668183802987391906978340721328193197421853345656687130185971505439954071956106166525595588031528560666362385304582114808183137767359293311560405023701924174988198041283779113242116863684308940693757521183512738524917256760807563742216689807404903334810987405031786092408886094848375798697242111229482010088795623357733323408774604729848011757003596395312762846061291001731240539812831833229636990698562813836308594986617664613108618524755012706747156524118598927711881802513825006157090650701615356981856265915025104817852487909875942382392349647011037933011507276802844288827287152271512428812462078429234651462814839726874687042306655953253688607412709363489050808238509621868614199319047994847660418920893305691576991148054117559176339572741156902014909134957701248282212241832171909887225968232889267959550653312761650568319712656262509566774395317988637402719239170767862751934131260060395916495413013112481435459055646678645668924082047514800967868166846806942880079000595608763840405109631348755996101523337703242742313464559885607661424676505657632973300397298641810484365027408835790193056335526591824367171425347644660252214481834289769799524638704048570714809601722306472956216875519934612553969264161437593729268762408947238195962315261765536232018186828743558176864507508909824465495015920409870777171241375614679225881940055875106253500576004552998279158285650847964903976808570656733975841893240540227053513380636830084765030691359494926502700520384230203459499093358117602672151259866735190120960112025039797900856484200767541571298017096150051791147505161698547538545682244646103103808991545710370327171511039686965310820356970044878900392968071954125266679957965602017880053597363548774071265348509310330146633453298091405516180408942333236462077384439935633137914772762733892247253544235490261994485325022608299453217299327572617363557461554854812466197714856692197990546605866866663537287079680502838827900429469578274565038155590742489041022420102018600018999638550289558142584037246434153199329258227067119430305627299293008801327839201877839890341845681294522912049764639998898418188500593109120887958003120477113881184795559192357898605423937027738181383392683213471974769647717634039001020148804890872078109510744095744782736952756672782281863733086344764387416118092694240204817990038499184054027527546811410867911542781017152055824735247623475098581052314796293474179131153373663890902424684571434106410933056331205005312550074168977110810742523487653374933920443345764030990344742822651812217940562351170493322321343157554720670586431081712141351646936031739766710544169840985957736293607330390234031765083060076607752400972963084092806742597119346536638595146616660719791653417039694032619531578109759428886240669373493621212894601672004530477127123594930820761761592430847882247546240081804790864437235855087590604880381879324683172227660060044898623437383126834875941514563363357772964301007813835830794046604386805210893254671583436004191124702186337573850662203548987941112135200883122824446304182347001163478825323074303441726969928473803644326384174716331080827811943141095966324556957976667049948604776726594678708316271672325217340002406916468497983247621581724695014226213355481670007383451243649144337160707186288191927329889750857736006575081974442242036520115942660433141101480845912747833717569879214013215410777904601557451284224670756327966516814646155540456053085472191979504073507921562503409654757475432964873174756127369373392060941470064009015873322740570891656185323824920706493815412043388912593615073641561415573428080836986244023518381844726591704119896835601608163301031944443308436327166304891686915133589021489339702222611804700721650413652026750759568549638751697762049874734917640596844655880815882176882421933205982639984244212680086686155453393091406622594938130404947173135305423705855421663553988974296077836067188667936143957000786592539813392645583285575727932652782030105276875854797762173415815434892805001730831291707905809826311773543060381148798054016846947942617070547116670131442044921731076970610614589359314465492057401680128816173481015250024259648625157254361443044713692448432612946981143395726812141769368227501727825615540424217969070874898277327898831165264796878307304757538093833924990208236499169393475875757351276861368433946872646593814699185291107623824197605084119751816205256606292260106908182561930226920982029009373675262075439933876908769783597648401788401479029428921907028859374070648498194245429099195813479654760772012502989014607309123875664178254809314657393103443273072404002626792454791887492075220812782825575694986610312570373108443967300992237773790094593895309090084105835892159787399195891659998885726216864967559171436532753875997624893357530914333488230100047058307323516933639787299812459751298625064313979343142401707366718766667394749058379526974563139770246461159567178723629123973836853562089527648697632651327904385942067525522197383417826271851492822175552279841049555686983694605691130595812329688422587902859280824324043234380091545879572568805860245579578674574631766242019761284815607254046747519074170663294694564983112542812340626355665897753429818839546308298126479696965633193412290469268685493669521957981776488944975725890865048398363217142486603580106694151574898210809683517268561923294165888382586442133266705362698773339208874346387028413299835155677212198356024030509644215907419993421617901706010098580642848505217128004062527186919080177188595230023891403492732002065478947733328869830477200249978431667537366405426425260260656874297380972560315869106490420196619114430173768563330656943291217863808631533690575910197985709093950874004816208718820131645899082723877525163606801334045532404504539410247241867480252070360268108648897539021642476025189457646774817587915948896114578971401560758263248596867423781848601821897275605168505024014094116659104180731948153284511565748402929313362267509464437632067906950433899446496091284654251374411832527535003972871107162113338098158058982398968364190934481916429508742796090248404571645943570090325675435052164210696789596903777012180204997206954166674740399731037094988828516145175016047824535183961396075378471388973903125351112992609675838365232879480049990876404854069228366834469617210802358916551571177084442755013575098812616749660087442513331217515100780260368550723916544999395486643833538952724908672864524218078798573618686046202412396488666333766270357943076356735977126717783565712752802850723854597747590744637879346955012833226726191856201315431766924925228989369891662348303180763853980129848685853176741254749315243232081535201988828703231851849641424246466396561542118178264464796547555914825490792901087229351411461716582753831309596884318647861359774562724587923387236395030041567557276701379724932195870896730619169784699803508050846185126907500028419423589007921918875978677892184652392482159602407292719190372297236894801651658916522324669893901266198368482519241125236727479155385626021128446565153462510719839262612823467633372949334870227508226674108716995575899394532098720520117810334075460804677137137806645174808259450882108410888592891872883718852592475167874324114732694931555416804170069741024954159810532430882304996002267271235009808744928480318304477512318619348880023916166136695038143526963237950762607156479150174718512081496990273826037875846181327729230162735296330916311744719676790206000869506484572743397226858872955287409692112100848080167829373669201354352889868987854490398881227691772905228040055989147206506316971603390003401545850782662561209751108512119836639948922847714638498180140316986328833201175212289937367248835202154412704447065373830903709423126160551826184163130795238034222107147387494272786611715124009846832365731792692969352976961989665469948552798195087678514921131953510056889083213488762351263075334421487004582696202044482187773748828637362543078002843534274280617616315499159552366847972215319808780460902346346609168030557220016895471237269233498445540954121131488980866247757179883860564760588197501573291464060727693947323483437106130816362889382580801066578696081453680307949582728261747870325431432477298123247469464843658811398584015988415438025642229163239687022781259199193795919288224574160278901677759305802261342340282413565557588647059857973280685145727645322089551809985625691894862202870234541539205573854641443250214119363474381516964821933062115753943988341283920608430766194829139558608875234454169169424638168831030230709011187367827593333265470566970878511564553700850214412017698350896126070712622127290507045915052618578041789014768524768473865657584547512298797898842318552060534674342630766463800512362338188341203712474333129094402759966725064013117015761430377293440286885334974648836701302830338013594542248360548354107192602550303952629784391971331025377501560691805319973465312030210354510782826173770700851539125770107808633137884916101651348879736214538175073788375910804622811801566242289907983606849095346678596904404096214445253791061400105040229592476182431196692283680264990596304484999917502590629525357962037262892414405306634214135279663629162436075849469483146295832744554927029790977607313249846605371416802663284346489002960067402916150818924760353142808692514662246262233553781174715037866797838448400531188077233398652251136244610952138834723059884074898340948648334692779470331978755138046075534882680690080092889652667312768247628039925443278932953082048589003031500725390802836388597255510483238219773931559679219549730583720588012717686874488955988118879634396539781663386654686141600070493552914833219132530805925623605795819090169727599806726224420159487164857872340805738156657468251490584093933493871673989166100713028976052857622583635950623869939984859908428495883848989607617997293631214089171019813885108381165734165380113494329416951683092265794324290769707877738503821366790505879508123971346469979989519963853859913360213505032350359865735475089185462062689283440960085746537511893454427772055996681491144501016473704808776687381909709697829848075953218579457088872938026596970159653187505009092719482807578647305972437312140235923476765671235255346995661147962192251717188402476007343755452437412391811930800736055114735481220331463994869920230910649528301388388990412411077319640874299078423175516894035367391637620423422138678529217137094898316229057094401474719930308999922811820498732478345720861817321963825986008330642623789681668972384853352301201534703090296474377045765068947205857700035863039663523877851107516729608250836194301457198250777293249279271704147280972096344824338024699643738496511650261883228072557913798442522165992519797512338627882676322980913055661478762750603968659656085558973059672326754172877500404690840194800211749977518236368351462854864560652701343072866334837939458702417815752451633078414705461442004854018747967870471894009653699203869565810404837666191439757306120332537063409693016809490832109908764988587842578735918191591654167397006477674843097429194339507204103106236668886290877630468174249760902752229568101542422355179175361430133784776400439386192721934706507924232457126780627046361807301580059627330743107382292253137615743844101689084995948358469171251167144495991925750959808087147381639308825512502133886092727000967433813898050424573901923600032382034175690474776550398576453978726155073224443471459760458835215112324435037189144742584767813414321805306816826912060216432407130116586899334133466501042751976692956962325439017094665211034983074977253463460872822102289309180257551003258484398863534887748677921788502043435669599172735508504336213473369738179297985136225320719194121246470369078572120625861353090579899765506893977757577889294244968350293243167895052690439942017145868409507198438516320964516972105642957744323214494450485989120489237794320313569471030771664120394012505627114597592989964300167101740173838162058406802502197081828038772147308937252937433459670363048328855982957760780826816686833350936564122154041776004112618649769207933115265796774783409038353110182974018419855160025985658396030154996029466701182668871486198110145260100552126757379958990618673562435998660595369493541445811132918129016461528861399977222435561413621147578458644555714028225782247390249127644896613496567083019752346975505487422571723548764169518231996386093610706037856240797415616174886404046603603220183662379861345517281547149488390132077512173289738316059064329824722543340736019301107946209186898324927955880273054827408558730156482870147558416391968168651388525713374174623041274888254819820444655785921030324647964274488089803189325015957434446955203989294927622284020625829069649441110953123649597127426484406634170301095416788952279840079632514899407357269532078443097288348930210474667914812480257061714896970126673359624744427452970477519060717296943985694279638527660958585115103207567020231995569774029279333380303435012925922453462216092917998568462560574005102681323048185474227185420773287520421724816370488088889195920496872249611570698483212623637705458920541579897515639246181283266810154687530526430170143671002474336875019964771398283313291556442221828732859036841423896844494446779104264169514843404651504381452772338049409563884350285356889371856249711333452685558443552910136920794016012861875916454077012695246555455048612339596039764272454405890786383050545446491113265033882810026281806415922636783896894765031218111400415149558438943827590994435754450040762335908122866667656723590451572543850213264204400730711356739081778884984043198337639905641775469526815817203378795599964888656230393013200141377728126502212396458896967706717426733778956980869295336852736377091636052547179874807117035011453900983846390742490734115414172939905577505230830779596101675127990176177392251488343626214746312442535004721033191909432751672860647383739240189012898541757655110406251144402415906154958321744273410925172080018292473767002067734781112683303027812004925878307034336893986495525034432223892176878536148098533818497141228483855093048101411693220825479798505386872528562611701374739625773840691531409003058785457321427437351729181697273289657326000060033327927637367510095991272720699850269719916627131231078462671860588318968693803692814985450270504504902000180912917050343994898493689279112719131408921220294745067024586893002685585248837276113903166920789813509900170084733896544578533992984896105225423599164339410174886111254223684483413038596441136108594071395602435457331220843410866138338870822880271930059771746260920551991126518421233872933211673276837191084768768592131129486736721212345894914403931185239349312578280701010875367855086510613764900433825433790652393106091531081447225686638475208951737718961016452451715856078313113098520882445397600270176985850367047726631113435952941237251322771682571201599990789125142217368106166498383649393015630383816585278397868682522122313958497875281983265960501964659171548239254839775671552352209822448468677666222747879251874476736700541046904356583198466662363841656138196803092381936687545347895233522446189232374779962347922575053876518480695038729332657673499688792797324401694824410446678487730675111514878400576315042554130947992020517951165964822425976145626968620490750100068491124173482930294272146254591793768928785922794855741897309277325082093927989170423529319518917670302909472462994476607667553076830377573593216254499596306592265872649050727823732917654095454023476052308892786561892863351161152009047115963971141888488551218886940414393577275266825287085457533702726021139913423838520406194340478189528774134491593758322694813952226584751134298523221934580490372442512593306496748672188058675039063560928574231512536830709648300128767074868661218199719191689408417526296348158844114544444149367784230962739797054183476766977282309818351732182704091229167472622266617051729833372932100429319020301691721061371540193301249271937572687734671452180065699277360400723741825833014266574611771193339901725035086592047511023200473008932372086864691184762291980575745194920180424632182980373430459449897084328873608759925020103384225328470489257777557214402499320404111946302640149758395459668823477730661643840579303789331989219746681953829469176671084675473225422857917374608947039771303028801690543908362843976698563546064563228814594091997854001888534214854826181577057529256656585980085224797275243561414656198433731235856639532149119135283805182951780638199314938281800896095988009238394833593390185297954929676464416209564710623108218971818434853223014317853394879054345503673997569340685128302298311952975863088990207649007754910358489352886323271533002049942804592197697117393288461292709315487146830950875510883127500454672212610264024728492362767630085869025059636699402006417364090665180440765451426105448143018345558122019359963418575423674497575987371202511374230584035504975101680954752211791113286908687130470728171041213060500551573622497802066126263381506357269645390280772903950448412612431490124975484146100166465704416375397700210823627021201664479668689606874471226162187702555018377274899174269160190048729395501342651169873583846445612954769032368958855184199198519387370075478904639543554509953065151406692757682375290407149816284952057069645282302332770493283671692094467499540587431748450344141706321647641056251635397718106195231349112656516986135262520019836303206933652974499237038369250407572013828665988140859987417038394126771177060300657611078375688699748949240768551860421471516340573593519997448938370595881054521584536694026875152353039946998725247481581496579851165935180615155952074096793832636308804978355785048942876007703743276995430904621131375127170933718844939077513025339186704327061154539217278211657641167105124176213545615223469634783784255132493819850260951679129279411639582353342212398166015340461097539715486296468609799091468957500930043019601825613021431570653506701119886215211166617080256924883831942074054648734732749662609371231840895930059802310342106263334217075254418587603233575669698037327572026587017812866806695550242403504782310099740389067525013672496574611246858611764504440080413378824895930063181250120086903287379344078936865080837566598033753008746313893474082701299977619648848589522250321666057478113494088958107897313465561723287536963012729443481053911435914248456878589161889619713904837077482737218518822718281139180087137518286028695466830890514058003613827349788585577788604320397062170015505217544404683892343766162538252196582091173332093346663615408672995324914689630695694199618685517198347094819003544530043938381248035935293586360568500278175016466592256662374592081716418265071105259164253155134335379848166086583720389420348876297966043606662692425024375637696895959038891685802723769308260156313499093596163823169473794416715030803821447266841067695100383989310285059826148185776855584961882755638042072206015522015408936906558406388308062481318109871630369947865215493752255600979121422737602779946089438332553243810057690132946297806882163130373303633148206702045926822936138046347594949603775771547827122718213146373207301577884409002760819101161777799200342873394940258639698386446674967936247134080130380952374480440602565788135560865214226922402950085083104665051912696492196765264497251027555987676708066375929361983878688803518896194176866529586876022616199230445610144204179020308749778733282797222475552570381259213126317608626361805211551072164611236540901691651941547897233149114284637043280038418255344732176737317785839069827620358327317527812681373770653647763583356248133687165647792992674473566355026682690643806274963223223740117346945626217388890115675264417764280835547990170810094321806766064456685161402681272415591001259219442375837629747425166621613000857066423584892375419640489981391769016331854346124884701905547322476200986188550206432347607941974991767255941778292722766911561794343073470897382418130477928159803818009584392681120906062148605817950286645336507911088087318260578183604572904713915833649481068551980286737654390885926335670745825787904149488091946814121072070692635797124857182056407835729057189742070024428130819302408821718924093065665991516959353025453471257217469338611133852954607870213004638079630856821778373246589175579690475693769057862658320541973638952917847425397050536687048049269556040725446459808811367205775727909771392732381854550299733737844644308338535170214955221638455651137904060486417300107692917182665312757357065800847094856991364488425755409926144905271405578100067374994538895702112366983827583343308943933875317559640441491118380585641899653450267437331461901709708165729931098169648295026346788090399988162818339573239462166485621550169311897338256193081261129979442289469203611426142622217803534160645920119479882407219925023038337397597595757994710533340884484344449830698434897809220165145872559358620952792081501613667017187342831501735796658283376974148625353324403308176011158052531307422815065903892423531728609359277596365290309106534872392076188664488988843692014661864577460602553287548715878486168093983559609808246443492744996203143638256615032766783832864434954325013447311890505539516538011878472487302036691959325412110389001927669976951430426450620883755672030763089333166047992594844163627340012710048661805626813512652124558016217553943266292123321597712239024397532932403456861131797808245777921344765374617198304462553273448712939147131954268094741285464470918379031114969879425532342730636373754217014459511137348143436510001228841446897273206151983963599632057362288047381188290059418515284681389931365448405288927080893494160918334808759087329222019842056142394080954757328189910933776717044122065302724518490753240640630254180259044573269976505366206451093252939720018268591163729502431764615172316016112760620884276549095435907168107482213006317463373158025994176321314864125508718991544230616434613555754516329829671196943872817860017197743799799380407174216941436821938515803241974791654410800460512858914632461326943276712297064461324940251613845031782150900628042238457582339344770147102837346511418252946294717829617638036667606677967377113986658150189926498805690330145088811499250532087459068329950932429383304607947584984876872108952312123222632260640565165985991267637030627270387339070993737008583916385857198423091885700939858529158778983749249432518661582706092585848045413903412683484942470193623454549616813036681190497972945131579295659534848558317417489510007836746098288529445523616897233375677929690726689799598988416683464689904775643807120870514816220903144164618232882931597046149850377101870379249210054002130356931005612313699989005389827565399145152608459932526248440262850461222022339762246867080301758494575687364921121429242411457394105273582735174231933446778851021346449104482569119267583090218870050251713204899930161680828304459247411454408957181854902590510661019897559947666421018208016331584110728073690873078099736457165811611540559496053408203758631437421897850641414491681174880307592673966064572555720782541271610210182132891185472559491335663686869597877088039489675990986922323628708868818352714218232199984681474860096792743580291101240111282320766619229632937235189214202647711901948593649868118760671515131682315849877766231356462585539954873519514184086670142631786520746582382493451359309865597383003880367936147818831230909564115625382137080737891964936809187035392754282611812015937644960396727596153627830737231215296987659142224385119903366093614681983534653811720458099467712926637701876083655781121996202850065660845520485301380013767956160115868911307168820183927114856424777729014084252674639287827591229702505962198398454646379619896795699287053485606189218777907163343144690107129777488818897633658809617365042367035342721344565679377072652663791690860615941716751195222329002856836391739517041794327206948568751645992833421934409819322349713606948925693365495407368183230767668067847289995304345074757576658369284646260597540959026930088347888447439308078707815473188259796658144012405229309842265810004621560493825082847451156556207343598634454522897633292204400220990039599686382467202964184778867684441845465577176512600425923747492244599614775748512181835783678026881146458258290842841357645458807461366085254666798248538334925400344752818478988140639769422129573135464158766314391225652794147358474119328645143793744652684955621785313388338957171110662292755642463086820200334795387691403818287123151014606501915540208371780165186888013989035708620146036250067098327722010873486936873305802512318387933865244695061360637660064269178651748310934068670003552874362804697173439471744259461190064065081450453646028939799246825028326207209302612999604889835110851844209497432081122131138704091335453112275390123820365441833291672819347127003747239605172399820295831608045472171786774781765872076300886894339824189387245055156684461941817282500354747275076088884540912252014396312056281797169655413759109042167646350540746041455255343205103680347405475725918802869616963546738468517076983194365533019575971930545160019649080330796400772287544552555219163465267029323847130618520270269584009137200855465733830547712428232428340668120233031955791248787287547939020095728257716843333749209107528714760262263259033313365416839847172664558808357247349482877260731408227920151408184448394957004997222672641264562635884764999036097106134251263684042345504009884149916506212521978561847691594411900371611974632754493277681439792807178792101474387230783604381377185845832279030934001373801612101238124641489482351203470409492098584383986741113082964533376329946848939782602809352184444868346472168896291285376099253694057900902663524374248574962920111933760333373655086889997819606202808551173982428296405708217967009867792233475145340958781239614844692435241825678286423269501499102638929304728345522858554366747123719126302342492260862170687523699784627507723780165024601144188766644281891773552297578132005098173228703957284396758835306212430856565780845125819446372791704006775981893113446108256639211550168871953049301924073362885510991299645776915438709291107843072150438868996372462249425123306796428381228879182639882716251299404098956157327560994887627008129294186717347114333272616743880568697014220689534729338799958192933476768767689384366451631068605007584796105283896874952124175490019902037567978732515128375488054167035934235376132326193798382778080624012108895079810789693095431157939476450319130760615126335891999991938061331648165471076975917938241521983384782023097265838903113422358352023855923094239899128513210237207583909145377852692340660825693222492116267881150542593231511841114916532981168062674977064909468461085676885880572714090487900244082121838874053934163720901821009073829682309767545738633522823138777987471814250119595988233962919613793574974948945915978044650563798324341450212940340706310391021247202721548736814557394084234818557621415028245830508161199438703420092945936024877906798900481449043078348253363200375009949723245950655263349590985829908037321255596653941457505696061839818920213107216265168531172761313871587545780947230681633545844799838946479366614252415479300999965721378549681745591412388181356215387764907682059890155910467615966729664667422683906240555789122990126382853739261641326771601674823067472839795411792654592657000222050172387458562514907409153044987841431519402265492774829374877931412950046724972616577075758516109684362916538356547406796432259392890556025142980551279780852454268942952335426145031356858158406714017874756533141302537470432529075769963930387018933876690340232377061349816488441714185291926632675032885251738758464527907492525142834110412280279195319245043443651234969227668368842972948903737414943344879775100429752440886207066304838741497743030065389219654941808902934600300443435212077828753801698837303862774364975206133465984764094499033761842439286766733439830610584881211269058297703776490901846613006808342482986933193942635034976578228302729974511294419460830407646341217258472817157558525901994314014508447839811686455594190387216791319982659925220611340242042566062430230455138792005340148767449454973260906115255411864489720331041523008642239040617073454844338858167598970143622909672963878087174531453764439267723865068776746071803708002152569696643179930061825303125621511579317707217969601107880878414823550429509295905645411246800406859298490903449437296373998123038083474552438955624388921587816686926563294744423128492648943316868497178123135134537425012627091413400918103716955013589096285942775545631062440771567306902012033174948109105453140026620396551870646960421830744394641885639419885087744825315648234442699341287108340891552987611804507417079362835494839891449152183719807426111392061456184873044952281785533594437384482637570472677084539138767165235980075394345666216915498728644510910697175289517293394897356214627200663817186554142016985972529664751712587866533288265339897555730798347674695623199068695450973275521120714238601832738290385392424634904555632461147823631844744293468794643703592818173938355622761763107431738879498956317787340346972420197711005221632696922903093376916137321580976113778211040369367110924992792841892874559876504685532911550480376656808968138039658810411282904289126419549187356145686636384664319810982950144643467730743087100841182354367817414035505713682534457331845465091229998070597865463805609899134476141655958983610247060223489822128610570660886968902006287261940360100678702266780510474950180601832723435538913359438155473375471805811177758120606732224307847723601609937687419983819865291782876892750077221051330351357707905597162877750494582980830681513296643622430070309965387172747233469319754931410070100577177737354568198732110665974694311485119314385956471565038194356294569561390313623679399597788737749879544261528129290865651339648895744280022158529618704490143263065692024611471133227059903228480941209417634405233853746402500763014041904913848953661565767103293547620050807046458792637881126649759530961814269387567102177825318640929202406288586623125528358490785784690689563738358984359055418250550898515155231925607006299733709221412038805931074330585594813799208503640617232650331875872762499018075709592713297003841084343751293292737021105881064545019077601348935134005750662687034890088363413960466551309101797085492848337500352988988883257146533533081449440464224566378609646872794048085220083202933473703011339556746996204559967207378825934018005775174506477152045129670296848120321080281141166965309436337405170636135054836065539568900703830671261917951293383565242772479748996940238057340948626477451372990602191467137998446955460704665142619543634782142330257521902550613035743238573667325857214941885618946316005352553943625455812147578094360334966141073342400427636428518141175467378344833238823055606319200868585477657366527520072106807886914015371209550776439913267151875022036265775306799098345867286289655725443573089732914593788502204832464664808529963166166835969648309397221317883663194306654516897504080198923200882516036116622202291646062621493255743006823248492492901581428286986508721381422724957750967333510620052703188555986493314270830534682632106520264444264076780485944971604903210093905592961779597027405447281086787506111765859609398384120435483521922739197724978566608160585727647104149280017275863261822742735813803541929217709742754044717182546505301872160837579025268420012591651926625696649539654083320175335048096892266964917723292410916435667295487015033555112727354392231435096162506724959118958163756443483766296386538250627781316184599751676907082340903094437987053803592960544347325430968638940327058767202201634783733185386967139251206222335694617160851574636368790991090221685722885942744896751533052260066751684996527106446280677730717074047114818602726132304241639948005791187421541679633492366667887116263895595334825612173126889102838832248759067884196331947037273182172922870101535763008753216677386445980954057778423133562704625763418414770458142032865727308207763657019827066997455506807614024610633654151607514205644936884501666430866251441918360050071706168941686701547030413829258605540875903107310183198064180471524742187403125939115788928614681413709110738451440404742746831380736208311799094488267530842683227797709432672190644812750057712372450053629354859657263078276774914267947380711499386120380414365821641920125366088023302372645953288389823850864931799980098638483044602914324126981444611078212791562449759467476839728299971339046843321356491207646987449888534775584780063631409304316608612510644774477320538358957367967518423211291943929767356410738165677979087730185800720805262699284956059983090152551863325984312664841407068704215004370098990425750577705381716047847314928207161195563934478276884274698035667106819517408290285291183310714833765519154035639310809452512891009711257635564516165387274812033508885346560720869583582641578922549910245174558765729948648433009609425190919501932965954266989027788906367807782484777181585674416922865343236044306317763344832191747392315917323445090951137722931973619556321187146377438270854722418849110992630505987400509383508874137428695911981984224848716781985107144366912398256990450534888846593095048657929812903796682286220424195522610099802474085589071136033285757764983489553378389483642735184603090415103567823189034762593418931080603463673588728983227022079616983423707100503954919871879300747471163148477699225594671769748909748353490468113034505755760240360945036840718122227720982046647622411108926799101546340303444763592901366903993883868372959975476014987952774840053285229790071651988815040694648020333164151348039080879651316751893019403040824722819121277807353393882180245892143222222030718360985700979582080548323549810003587834385478536334067262350918578781789261420900230869322433914379966771215033893693004336290888150319698329366778022118096341917289740652603605785701662625839262942924967823020517064359013808986467260527248436892584139496224163002827978803074250058141455635229600147168919833820325639136381524028122840859102305305992980665432357032896281504314407478209620351578103142878745377155084517834751283712574193613773176526173097967337124461138876338802453002832702948942707396863705580393575326027032887741118327711655121816253236862624576443817352681533331147517754938215597683243275723147124969923743253041578736581916133378977508520398130206653793854103502412776304405066492951931513077380143395663532724643165244594379625310791889259455767004620759902157008378963697901230162690582487741701600613701231596398417865335707787147663060716900632549589546508997379694905319810212975759713677606969824557198912529623582570749604685251624233122974953675380813501838153868726832605460254206624238084891774561293205926486470065265779951900772489055999868264158857337960936442185667271359784108200229234256131955163424219411096602993603568490210690321633781988196531922198387409159458343422925272656222972568633829793840953981770501707528076603002048741011573976086297504968994189097446300261051389271010320925890441593631605832619315732772773364829061445949277352489718148917660287159962935264006652153768689175162445267522203016346803886151723500993258283525153077263220620825988027497137710567564930731805504031164672112601210797426346112765509315761536659370128774822149236823843847063579192327489881634128357938117453802319356207683672655982367365544564289472562754153633000507685310981929598416618476913505372325433657555318792450728662748868945068243722398726954056106966636824168998270478498368963834959283305180240697475308322173676804200094856476868773783349164590494744304237353489939194082955217598663933429309903061754479788515260074499163067746549765353773758803290921207661326204392877020800445384705467435323824954386620105420789441531887599505046449610890606155969317440171013256535921237758115928584451144038724961505805426600160155949735583711081611652519797056784807409046371250755057199324711167908963483385930157631871998671092211640466693199785700750936339558921605036381933747770589790099280213873537461776848336441450248950473219872476789197030931631839778315918085456792571288661733688970644947281059596886273290013745457383485787600789289735230551827655818843488936628573903487893598598146038114426771471956081555802912793896663365387197900094371146752415303166203029565725574138554737262021879638894765699209858256111722255164939938662753482313776812439680431408248957942224119815153655297729298266438321729184488929829330760047390112657632454046853444852428517030159550974071976462591069886659428282194469762253776887020614120324109835873068882509881247905257618397884528525664713459157315632881984329623214977703564653839515078168590122768442136641117790424610267044066028590765929667268615122827971526994360688006267323490437835477721020512126456040099821865563086074165094292215369867181511138819754712705753448914474575514283205300675299405642859598965054367892147194081285879788488102482677247826091636160226242655398303531158553343531640638798097777541401650083155308406027114189385513519190735417844062706030591498313700923206872252043170006641179929490829349190251184141817686404973212433757341058512961078251764407161970033633985588611287063439224302286519925260150144021856953073078416611814489469294757444150103745890004759067192270891373078882985445064808207233175991950177462549543725133901463822217470287258360175721307912486039503631940192775290928059005973523125180841498638493505692199369446435418081384857151973852175698832399852441733962556531361528867882333811719804380484222659712300162913477279033448633018574555348612200725679717475149815215145490194351817918579380125387568472873936417361265122457877570333094462144054228315636661461219204073895367477406108216720563832136444615588131588659266970272260186932540971338531175677063292576808762722945484161301096593019296154184735333829618551479222191044121569391077101344315690899953078258483752278772298358294066466394992870029486289374565799305467907771954437540667986324603377847941328535215358522831376291972672654662787167882008730739026448165518346042692002842388456863653238568396127163034833933114575718187288947492799859430478736865968321658678739159012163450288472905611829775532604388718502643173818385136249763903031344775806391232026271005977388543176121774283538405922043057673745233800624582861567177699909057318859556596873066928002982488453409914250378091137598922696260969261340036891036617965165868261607129039322900644855925291122120794546806356185445439941792277883368675823541319671745375166089418125900697915825945595517886132561091993520813743337554548156720081662452942805558180586506695770712512626726180136252086233971634157930560204031271592514365823629530338944164301719365370504354997822642111751128678929684310939957146407521117817604271935000228968834597191781340028480263400670754670158044821574090093576871663644232371220790668888275616341535487735619445835855788990109584414552950404262673712518917601183264202746459706257750847501620702468614143839158646094189358200819868641320905670659162883854867787475564312224413030101679372835688692020387031025938220496020386044250371289581146013505386169321683755843411596846184622739947203536250233044609814854891557503440825222011769425582957140258777154879975986073849046426918012852674802709777374192125686130234249517637185804802773380238642353386403013876609947439049070321015564785498499693069825224292272142733109827584188367900180649535468724124917639832992925457709697604572074774971531060895181860053534946638228126993410000188544412619412870998780097653441178586056234757361357536759341729163779325011981673201195273339647313299663847984401839718355406410276395507334820121127618495045072266268368989771719681876948385480586895360124356518758516132442004599949265453240798270009154277801206107034704383631754048535969109899395742412995610726148701342805064917100559020239240056870084634289118363312432348446743931619921960534183761652139217064525887959716386234659358428008882879612375721230175568336338046133942411913070020638507257126415281147693107628945356129684526090837158075550393170278660150631915870593540224324370122906343541479184501508077656016353584265046362856675660022428550824070637451359998117475681050312818462635396960405056616816009017575015042829661722400519054937602652626331393899831495209008930355953597549684106156184369826994772121216467521665713607675153455636148198299560593547954839605108671536052333096959552109176421067084760184163679839503451587815334932104807697233552465648402439951875539435223409085416994039396757781575296395713828103559343597867714964986977182459784842497262477981451913190565291501102024223943940866279480264228473015177883699556018797694323647004923695659351254547650559071834911274832695434541747389287159604393152360876387525308923967206960731349190194663987222131209198120716119807854128867711907338202414139569835903467836020684216114519262268752274505066376748587067569482662527552490212654065672254301247183020052941318222728838942594457628147683401911992639078591313660201061549159943952192023319839568538091117852044130303489514138428295447312965734755980670468147532203769270416686204277186752565221916411663629646498435944389392612113234373865954460868246084644110782118263890485906664483838092310831449979788386722117619693643849827936808533717426770370940279884655770547074452258760879556290849215423462780029629268378608116209329096209348899267090246855550839794676443146597322027803939536519380552547850580460746380622744400906855954738967055873861371585564812569898938356966116386576030811068709169104365780947256003617032041555933002752106953335200419987999221264810169887299020998446608527791897912675802996505258217383790294098675617617042109338089813546957745839890620090597123397927443208413677828262339333296649868748715959255285403820477921977082943443523816089159387080978416761355847582332997062870510226883059424658474890524754884532611640242623040546413687973717572396284526874400733091216051857276818506130538817835061597410060235566018707494031328020487154908994700715027785393137517781918269956198775774822254662769106814466128047137178034849852265643036603212137051007569795249307670604292397211825169322488439468457736732097220946168741426013868056761145051454941366710552951764846057423479634041050971967929910204601884141415876092817800961471314475756980761935494629380659984523572168291005615832831981014282439397192926322372646203964519010671059571795744398608794281341894411708187759423222357595667708332218050089553916825434745274724144151130877922454468917739289590325424170137839340476598332178250144996089426203119573133098045339237557989345692891497348265295381858370687615109128060017984005847413336421690567451300229720757479259632722858234166101751970208714932052662161032244078728706987994494522743245433446971508504616375200341388098752490048478160521137332453220551614608556183317803467946988175632058499016718326960014158418348872227970629573009352235805134654421912576349027554236846040016305494937673853411733505704545339377234864194978279754836880052824337644729990180068636531316259609923863474553991115313205099012835210695992629485626886264863960918757085002603967661007392503140562426899796263928691554925099190982851193152843906446692081566614531058031188974587491983329090863309683718191620193299710026491910306540182736732560159933066888329540291826922616295381768407624515906063682799161463208799790395036917342517473074921331611372291042739191002917927826604002091563633596164369234685050078793326494816543520222523026614718681221868168708996053909567167852023974141539897540002538990856393515432020497247538875408795353063969551784713537674847708229550498463669118195934154725601916350422398264461189104115256537267496520555166814020208340687143777378047003423789198127671254973266138142322142761940068864497390702271769095695543886142400352837356930911054464958279477898822384495495993464937882965351189846172490621474352488755634124655043796669964142005347230006467390135536123181793514964134978316577388000116861160425284993571296630198678976114444416460443589256990791294601858542536479057473127543476384406924912886623703160799693047052933471406364226112467423745859782276119840926649170641483442730691212877790631656648212711411136428500836627139631911850305097044395571936770357526058338722993366478636370900537291851248582088486796979452075176744670796735314171913105815866531461912568207268633735310793253090324545939349832809356012351466047467702980874961574117730931642690928655608952150507121502664077216314531081285466348558212404531848728241372021881732215988012452601275558570596198472140999700317712647593592642899337599337730742569778259141954635109003861816986637012637686296155361493307094486610662536054286116441937961209384744522050322631850529478963581227711988416372600390997608936591537685487619352121087702421866289476009520870037279415014828133882740610614852024507060337757908859371074072121282366893475550820643137902107075703753163372488649027931508528453435670944436366119857436065389574815155067204514259424747455425638433643928918663285078581818844942639841097801683250116416066831245325960241366954829024094500793619458895402780080728986332031236868725332906774822466397224440725384930026990053226718766598171227658243515682186252327997627916260531042716984908412194145114658773940372803838398916202616460524146773749844436389007367332284587731029108113602725041014234777903449615005299716208583254326191584530973317689257964123316690485109404280841429393644759323061898352614341730044389773000710826364975159035673264161008992012957966852305699476636429698771702270171409438374094236216655498640761639278832308742491906934725174623004164420887767551667943361920232168461306942364083826225620053417010422244707828887543720724273642298306679302272237301068029171619776593716864202828435163264900280551988370983657282425942247079727172983560773799646586045958460936568908191330031387822853804707740554751587113048259117687522980283233937660498209416345997343135751212841119042901187562950960819064634150755539580394486387478262496069948831016107455181320356551672992686068455388402426106717927275705253025764495949916837531378407845106984153505942937176994135016141266024880445677153959297037368291922981342486919177409879634576542237613196353641808560667294992434514943048283447963853179410502283447565367775426803281558883547502403408430774826377884459107077955198479620906690815638612037641795983600366548183301593106223966731376161013634935110712339866657815527236139372172864668237091735941808795271870912946050406799278604525315823518345810312747057776664633715973284269964942510188988396634800467122101478105609328942733891049576707383960986846373806444107785066256547485419637835696674854512619909366419176400380866164739497411988462307450469712875354741855431747064480808245064473009138738102932392322675550115918866017579435542834840708123155579804977290974542006502019850070871433115296159270723964479699313615758066007295314313514449724319719179589727416328431526485181811796649531912297849696448374539717780436484806641148089803199105005232396089710408714502966981932857505174475772790367909288542346841973704960044468254418003042560942798194464315479192981603856459461994237228808487084908826228960765472588724150058527468152188721561019620867618684918709353907068834921390190818657746397623212339763620726314445830674724663947942092924270976051491912819549845447394129181573466973041744592393375072179495183309506948437088441713742793880136563356057793521841358501432063184181579047648393913335556724524294744768186420718965755351394417723484157615385793191528924484242698945078395971601700941069648493651886682301411644216401291413861276542840782271347108938196310513513086151231594383602511674654611347773835398592987201478157368822047296685700256990451452476211244620314211120267328855521189749390718046376575840784622049653194655681211329882099224144435039418264691146792876591150746606914263612615426185206271393054424431203250187127841075694663756019127713380649619145648579986758284656122866201501606023403826295236806088633887613651388623071088752861216931207191915240352565349794796635047378751729468452108131277019611601893984441463514315953252567985795346556590111103504606736070383493064462065854016872705937922644192145117932094495248936263111422968900639822580028087673039097667881240867540712193321288351163698456068738481046854333405117498048413539797622705954424439028017219919307342368971081224347804711458862908627225694506983039623241394454220293579774266140910322168817968553670237413820053566674620105477525417157048256193340709300469457213629847406273230609231346803931726930666195643072212028643354388755987379647270681919256215399056730958294701457726194077385868262940190082643217195850683874531825469398512615851435446640215579367078898287445161712571485930908559269336291682461883998439536209397293541896677057243728991252977598358385195018406607639435909408256113499884479482632644863100179272677374009786125806852960661420266818713578339499972913213635313468307867821959411245482614357650274669827081036166641388613620103739546968468373753915258221875797588511948351060851606662674942091809524149436292240881010964069118732963004877067203948016721446585273751911773909791262812179360782717248294985639308381806250931319398901102757381471537097226183460299301681662037369139263454750062497264309607809257441187255053489797979994387054667012057694907684845149307152156751144751163357419124282521757150900746734430988371172983373048397136123850282773256864989161874763254213511503660184933911871959383370221252313569331246160325932014693755371827647537830976760357444548035808626111663045485278884310447650289599786968821064856778390672814844035659196469072422267024201780857565843457822310421267077005972066322540525231721469173585288235459591988009649668198426221028108592219279143942842388657114594640267290237938876199493803870683178506208708289417285595220022905948224475000817376034842873499322342031343962973881902535226099566680117663422389210748204769501550813540845936662248023618766493468251947126761214460547914020285924805159545675586208600542970045225174436629491543919464510196649875037488169584453606301696688050701716415709836792510021698748895709668629551707545382973119587966907793093582542664747192356336447617458675097109709436627762324585393956407938143542273593243177287512674960482246247274820425753432109336322065297744551755050894396448969782521810326470198089665815422170492179110618837957333998286703313484797637994013360243580103182944199513542090181580811924275943854725521816770438335534298808594020891855203680406075163490334445869002948271487457090946197435648859799425111748333030993955108175165904315833974035024169644103150797039571944901552105634217656387164390850398625488607044355949511192006700765864418390258626036290769373994283062333164383605218520052771891416689745279185415094455772512210595774848594209197444288706666560154486989392747989917029166873335150955115922942952810047284917343782947751875921743192590827742349165838028360836238418859257799679138599945288447946938173056700104128611522235933087567345135299193555805813701655560705595685696487640252118861695302615012949315191908737437489861675656331221005269385266717327857026888148145757702653019638683876361287338104734129358329764578417227397973180543458438751518844906974799809930782582196026137544254780842615699464182323150574146686221096372639015524743894913947934082426960978875176524323558174279676573378716430194476358809154471251636351263033898894255023577954857022291846495995246138219234431039835932921014238579059442494965694517561865107514580399736217305207330696194145228700531376219344112091496956046484835774786965259741040378506726086471031824664299303210559195153946275280963548611503326115788069444748531550443097022231227680547720917928147231383349428719301717567277482609873687360082264671758053004656806036455358950604658712145375534857694525152255957408590670807476171530529067201657555416083050524594461061922722082106321203902216986674272434867302454250910618941243875873400854317085705379647394695261074998210407326040192387092070729181996103191609844495592488512015374949426084675125772263879929705817204854233436348493452734636013421928499282265624946370620364146281052928998779783142596921371919320574949679737725619807663405238641752392311558302048738999602598785453096120210519176398409796331262780942318172631458008482864613868040182721305640240021526616948612166896300423521910211806897796392140554511094475423015296525871826300206458418863910397895390033135871641832130704595560332019617163510032250568440930497335772533308432989946944390141919380923793845450117494521403439763202142195078547718231635947469114461267313998436977953725583824783370562142700844941048663791272115075212165892249014663551440841471914871550167125224168689898769698296215811870316234592375129844202766763681663515601896211273683283988093180235234709927496226373425551760955406126181536388110789083974298397156965669219239554012854940971475916672428665885427685108044803339442037776372118014179586571913818693450821834426286872420989786594437260919186332035282637998131337052318371195445716055186661687434500961368669913072458826720050543535789405342511693740652385141436321909004090771601215872413472139379907180967408533014488627520456840987638231580480412208202345343032948975005071894312242312192018430501594552191643995164116403271910556677535517262231979247074013221978638900089429628081336753896738674509651658623356768029567277987542225357569737837359593962645462759242976741116958519952594890025128957122003984949169728636416475253573720905142971156999848247068887945633683310985802451692159122137964109070902119085942693535314894427647129358987944781329969781010428827484167607985473328826110520830036999739500995041672869917179068827137183201389009120871178158145823787183285718786759950070001155448624856118353378381209464227577947683337250494310586750470020024045174637574057460431925642900813648251488847245574307732258658679052013136143162989558957272379789057414424448012283015112192221915564034451576585264294479464725607703286946157040540099695797659549956062678582152992701336623752214435859757007721496713027541262199963686268445180577410967600418754257804705342261154302417629604749619642714560525013992082710620089603795981395631345830037425838980159660553056056773531996139482061953940058446424555575240643540059985795617914908874687006196447851664314180561813515922566300279088646898000209638034248339917163063523729391188680045890325647754411871648353576714513922310506447718155147193252298962799123142043081508346178635818352807066050146596722992310817028233451114659111765175153301451037548614794019514274864785299840049614780968300338674971833423482928726758607827624533346316191681063782368866712686498506012599832660935286867288551495074293501224714461569845705822415774998629242452906434243256792927071552101693807724246443476211927202888579617738582388644989584235074556844427528602812052894722967801166937722342065919326163572892067873794301719842801357479098663585091668925687793162429322775427476639173910328386990989070229584580148854425894869916045675555265507586860806351542103076932864911385105209479773595668566644190299727722470092118426277989394298779205606874189486886958139912233863525840975088211721373926553223865004058395782329573880384723014821719261248589410877090982122240966248634243283320262633881181028236805815570234509769176260754247231180405219542637909738217274214234052841433548661888847241968335483341500784358040598098802310577309016192446247928897052070166642891586068028564680674938927892839607567173857939961740379633884052464529371665278163950178748656832962496503938626089391674341927890028107452474405049797541883935921069616260536883450113205399462755644713035922587177893234710344764277712981480241848534048991027594247854549363875012849625002371381211924731584315550668808940580891692420180369290449040060239758684475843035175290935102936228633949621514961448494297710650848359202420664803446313539723796830699854565434821338816227452781057833520246767807980970723168060825788073618433156568903613268940726315493616720039370677066364234034209729807789128499907162787121480216072366401627038774258792712525344330637962052883130148711327078682353804752950223914604885346844805463648054621270581694681837773198684850285420200786452107030984304050177745976881526192528740505332698460740536706111464955896369483805420024430635936038204971148905798932163511057708906359447589623291650898398304389423705355855459903462377469573227002490698524093331931620163145432763796533704526349552898560427626569927124608745701103762098878888518263376399043775965011100181880879590707049704285189403409462132271530601629756874393709869851643989471210325804458611959453408946460585002656309621526448916389338914041094031314437760510034349301391672224824869743022176765163656877355548412259581256881046145065909817655727479595911043403213144466079898145814738215065095087015702844753958930656285869669008430473036906852589359399475898355235057326367833246134878451281156893209252970051652302942553594898803462319406166084416654821235694321169877471785345186442829871058909832643629342088123465728922951952887709250896151099621052127322682217584018219312245673834477494893127159127968017838586391792797681964273643166838496850991165802181788344714848048678089177060942585516978027780538929927718984326928321148895668251171991663963177371508737544999444082664065624227683432465329425950773604529618823153199396165268578922305979444639059670033145115413997158925081116007068987772199215900575593967980521247336168866860074601515090236241879797632256312469288884005964923193787467870857672871878805184987915848343644179739337747216414773847386606649407038925407984723334603859670425346905243919156789724376746557860412418383296142816439366950781283756856424989068984474064295599709853623803984742144166611528049532735580627372471783170340799109325480968819364532194406164737203189823104770084413657829293995735933231461220229869487774545556555182874666795821947891249848160924343672267380523683395776412557794275514186206437489128506073205005055706261599827038909294738558649606371548213075427230393127467022957796764447109386658910000799352395343786768556900424528548700263247579500161605906397966177058495392432473596837467014831047320360895461563626088466247626914955938108917709104312807497017034496540543403759925623608571005275276978894796160896310197159791151714085326839065326684521313303771841578789852836376158947224427044852278838551082082843034472907530580143313967486110104828920084312682850688719875352471750841331143850259342214396976576763267377929700809084854718375010004056768896710153252068873763314351842692624222173985386561626739783517382944085599569441778016268486184975215297914663413452709446771739341330173837659145348799538230997249983766921696501052380631849968604769600187847483565128458198705231096873048144832382743318726489010800516862643356245111986501632071321074644604155564388468348450550367249266665176736426000931044337956224799342708152523114641998566923002761090268572625311855134505835807375839600121039984801604262668734638090227063211518322465076381112876977592986632844302434260073026724311967722657512493039476500689840471810542597657261711258524068811544725209936706005831481700769228249161563995589117576081256760840976012945101051405916289684599894185349240820406285625998962820596238238699766319272174043729610013458085007870458200209932538914054021276618365912099003021323470762208849881486378292513582909349011353804613825711499102066851751822522162491090253120517512191187842085137564370997919198895972511094814894818637019066439090273333379189490133813665440092767670131612477793781686834759619399983641118227520464218134900716060293824222939727712155241247983254122553070151866867795331055223344272430994334859095187611092249761982863117500892670290584569421159383509482636046553424799657654547015472632973007649814992438195248871441549646234624348493682120454649420461228397194635467145436064636464494832921008971221805965320516588793757933054251305928671310582806485909870639272171512998587548017622747687812712161481674591198685418993518636360756805955135038885579157600428903989637506346456885926205051190672820533968000055661414434487221154705554631269350628668852198352394007042041851590000556596961541338438241336414529800106661352191865494773092758669701077585566858005851956145950037541831567353835403089873804663451115225115256697843450874463865454935934195661811764432515020226710169591919018813222102343460391045012416778600659807406939211643374411926053417055903078210964933359419484245408209314704284606032453023188173991741289247299743363812309323875725976440528119383649060064462433994444759632214735747533028009505069170973168437759688812557331849071095751376909525941319093753202644250372756578480257089031094738081944730823036585767629229892811343182492169014581843231731163336878175346541477585719697946067726810184174461522433467773904578085523924653211518268005575762317511331533171906499703351541729050604561560663405009442871622628446598833987437548576407564693442840648976228767152855875707765020763410348891570014425347225927161591364327761561908769427241141031628819245096445559580500593563193299985047326891222293039207346912384331702323467179579886645831483045054402961319659466486353880055839755708115660939498961669930903222606222060156350173689867917997603014543046623533202915589417065426319286531551661393832004073903007865424381783391488282718328679596093472812867827081808851629126489160012184616963224723969645634474427978864580622083907308026626610022108513640695423846557724824145574820014124917253726661371278115088911399225920307718625317860498071934084391355058684644726839808223227699038041472307495220694167954572125840286726348448945057657636845674271919415948197189155295552070987629344974726411143768556236953881980032180510871670054194287779507843615720834810940584896399552594410016551983813869857399615480724938450177176581844147336806332730388844800046876271913020508125990536661502446095409140373133197714591956801314573922888032718942313465988391187186036976776103693410180399727435023556612057185235787719659964247570288011888805287841447617665661570216945746422048687211186737571313304829723854540147005957403636590417201878026285427250697923237516447220705661316876629964341961925685310373230059734426568242076154042449394736200970542927209894939027763290255621121496994760394545447130026068379505957926714105071025120449143863119266345528406623146732450909963636692841634346509625730058583227250717236255724535366418804034319285135967701253290441982379825882405098212286753268277892247514214438451736168886636708195739376013156154204571277313787169248153032362624958436735823263533748254490090633120552764680793275247136399852614564593276456369262148768937193334394768087747570771673250292704376850544186676599240034879745457124309231081693882121893246757250644732185062899607643484405515540280481091269502213705912090634072252303770796163809411692745880236025583546374421015061760029189870476480311128837158701518457070274901991873151644604186101724495246261327711046786061123223676898627739866592200913385686413203047615004847581440971484713437416786829547240987852412105809299878372097712399457762122840006001721727922251656280412944767247993044082058020331909379482523579391135038541551074627494735105023684547669106111636847581961885785939768692275526994044515604912100530489527086407090197355570603555986551170199244458143345143370486838541398565299726549217270122455242654261033068571931926561388886210681810510055696576869556416640179361577940136127814907330960522610643854671980950906634348909580205443777603674516296724969454695518894979432176770270924896427757986329363150665989310774961006532500360704919764379488872408112398369983255363832555745591443190447719106294554554095428559698413069041507521788129740011214152643836901816132716735789891769189491567020319839290970782600582185710859962046527580222041315702783013093288463011356461854160840918964211077103617942989219595777966538954906673185632892852046319802519863921846646584019743476990263154220506909723833208093411813659246713993532230046909268614927439785509685765557865882305632558139508732343894306033552671103745101049091078278583577359225797006083372349991439201539938139628476736115828900378503393523195918097084459447499569208342951682213934792849762600493933389150881142699335404914359013820458407870166988638977693743569259545609095622008392003150812642632983043134688238318275554112232410345615095691154528291690313121585746716151726944707537219573458154456237364192515025704445367478095327377322248453680776539087328102960015864402512822906478029640520947055749067948256978577057759979118249885700475386540346512382011028221572130881801653986372099317598886065255457250593887674999287477278373690189973272320499031716815867357772338255279167364315654131362273698287169929913855445416068574612623129484593377795716635445933538000005058558778364932566000177530846725227979105846977934192825328430583057153063711619707770087723286255918541020538266989690106410415307508904772547149957448071671313100341426433830980836047268753880188650972701840278536903822069653065286564080390083402295149892759151888559550565067227747459956483376931708491763013102275203677220215384518509885703732241824776365543247908245499429079949141723043927013423496898996698374425424391765986363538439547726333134768925717799172633385774981443086592658054705531540528074177690285522441237084760135221396954459895422075776042446819781586268325629425321058330834024907964010295434118832598858907768306074923552915054311786687440024548961275731512116983539865426756198461395512824794175966992806223045841180780335583173067092325084622527740759485996488229883743845310342124467264636465727932524020710794605590652631803583356273941761268434146528393333059916032230350220658863331657932635116895125935669173594663718361213919716804206041193153703163387585008118551606559180818853697076166819978695782607038409451785313105851187248915988781172735721684589473614081330006092341688088971140057046234986167731084024938858080869193672934070482769486216572407304050497277948508367193402925247533798994952466583979157759123931955542246646413534937517323460093186514869776226872301984615161749197212923161261014786554901451209061800473838565804281357520969868325596435530366903853998181632558213904313690584769068817627120944009423413070001669489139773334043286725491915519066961084516403004980701398281869632149806263401696014759570786004222061361349954565501578415594854574187675198602713623428298934002460052918957938727605507620185854355098421816264673447559920841350895704598877961646263256881602108146527149288748357278946918724171516912707445065798817107368997235400798602188721802522827538889584237259065360605237430028800683513437373933572343193548336983514545567249818620199418473237671516197179735129352015792489240919463101051671663735342119966753384633548776693438862130318396551250093954282216010406326684704815874442846171787133162062621806719666338901496755300684968204028191085630146185540948676572640941993876118551593532590019740998765457717482867506196526330828222176729673567056220583401226888826857398706062063120857446580711610743652287662173240378831512911313136898331417174362487076844056511774985028422164182141099403635987265833809777352467666235375155470699359444484395498195068214176122747872137980406646514025447464075112769892957804536411033531849888209034576633376975584546249180527354321289095852775236748898180426803273806505473993985493445595155037876773020188325867115675047743286203349688189137503561534070321749029088531495103233621691796024695218234338924107325974547802325462907761862141557072109550117282247172438388753564045676122881414062525417113848879484090462365333299705680568241763962279846696778179587950458407786577847510677175725273370839324266047281104525515189236693376955953641108280621483848670682667606023241048936345167753121215584103044111392044811280162317068109399534823923042549471006223098187756783615801312263828439703721184890310178577536962654101751298216040858182205363731375366336360687096118298574337615601440243250715766402094144161526700649638590591792387464542230841839120604893908233606085648430401526116766736194201503116884019928522303964572195500557086293863723265849073468409244269219402730512494330538530476583524361734674469902632849916101234569212121171996696246701226446677460355328007257394879691250397769873721002699983644419534874370434090373808558545255325803637553449107184897412314970414233394624268558597065188084673273253819012649748598376034423558922525962456638136916170806237987286747919281156518455386655743026886270263489599025852661126563627453434438764440609393107792096683242247128161223625872679816456264330230636049966730729263425300164953471990031888187188602485562714143912680371509832285709986451041713548422652495031142920282692609705268620032966621209444331786402526197732127888741030065257652513478758297961744782411388066141241057182698539441087192657349197469397756420834187468355836641079513846565640256826364322296184594037172466381066607629638085423165198448620724456582976559356096225068281842253053749009833275898484326873138258577517572688504713093496933733806637776914211799325208056876803954362703270335734112248026957506924617835863607754566505589515062367221297799639577889314883405442093978810706225884901215240876895796251460846952371236879600797230724063032037631588023221034815770880937976161554270987573772328031948924434590534035479532655604140278221369650628309327262126384829033033290244200048340280090890410032880744863805038155003147177221250183371424419280998761517819517426188328345742635070327635385257015341036992134911099783720617300514709653510028017674780526726865936288743359693051597485946566230252543629054292744536721267247458660881960107496751200727171252917103201556026869859699571744842346170456570630448768900172112133630892400510159846199861351952384832260271587853926576348456861396249911713669910660388719102507471146559750431318049764299741731584434624009483773036727520403720384207587460076961394630641407842380359334705917688238254190511033321733459165937939517905784159164754217381839758255967950606999456628789708725697941042357884846139200322690351346929693938811058398299140629293312240468043039183857041831986607644257179893463636640961966272275711325974495528604824148993460498217088409500546894649788623805692415053052660844840980689408943476155607895698383092500735615345969058014466147041034273937531105740097630570630320830917067850198190646743538883720471655517072995213454761202331773240657120747535236207721948838515989734685384994809713325965624910773809862062933798098110693756256291011452719742839545414857391173293438219236308016329985394241345790367827544619516066940258768089040179692890151425239617432987992657492337732495720586161644832449652551841702702516791143254200446463409250440432750187030163158767106743152994357683067630401821105991743152192526259712013021988195725682758067888155366427698304387631274433162788505191924191348609279145699620169229116406105007259128409764300179161373381733419847662685492056892885235668895063312678479518615151134398283795413580583952990684546137125044302907786186998588605937914859039799674017286133525415679671207218050001246214842433035723375272571954495073105434398463971377846103324577757391864187989866867640255682507594921407284571190313612329937697945554153681189276936838014051366241776707362108641864669395445667669391390923539352862187498159764191123974963837166113761223498615989911904406661649856178591638167173008463406190572982073638313232958258700298339288242776574114465639640377659512199015913621792311955932645657059304752905710439094328245210705638923982985812049580538129848567406935864226424232479297534641788174656632668131414745871144835455565166322736403813689009327276711513589749304234462889224061318013088197808956994075758855162019964546992776033666006926363219920997887139506993990575648672296724884142422504057199489024337705102840714939879609269619068737213504525824957688172383720729159559381453185097469381370345704513180040562592690196470451135798652579544571535154094697034554399115723271819428025088495459424795139929141306153779422831602082884903364130101360500048407264738123522302558103707865142063961255363268005444299775507165576583939287967019203184999866409102263903254211723792274844926238528190821130366794326734715439632165973147443986254194388445470789027630979227080074073921499856964367473602110221587589213576967131125968990714430318236642052480655603059068755587993643405546323978969773114258633686608891879771056412722807394406450562230185143229677726349924847261088173116380424732861837013196001633113012586021993660329391858491838841461954409137150300180979297396317374410468617805182584153848908559405952073235729388563709942680258091298177986193298173413321619279898337118704992052464811130332255936456274770489372452927017052706408196077701587819991732700025193782921518777321684809209877668113240789201470494075455783386455070071818541966499233869191066451851717098871321292021292682986228060197938690819712521732542426916028150747137672970534379752002186568564873279454978843961107923231274279431053873917881987209583695905853843479306661788391863391617743616213730076767858239835994526810953586010983442141435652978621235577368177452853683035680618956779676970441726262266567409591646082748704751104128981586950434981735639441187726006971577459576850805354145698307746861039262091548539317391676304612747845918831531549130974057558728510322979332056693067707404564810828178860606022866660455864821531572878666047643698617415114558035050991716301295250493894315773488908346720349678209214844045650753524611893882076462399411779292803071324087787350567814491854903630684555697241835171942977198246673774609171765203000257800023707390081749143932802253044794299629411987505305319335753554614084090305436423472478967840503123999586177745051520924492498782268600642375212843603814336991828323715503998650872647145784671169895741278799201209294408382963522370971447185621729871016756078101095089714324923352945905912789119477787884216782858115666320641426782727589987719291698185310207658506177189984077073082441181273812050147220431196181947924663560560492964748781240531244091025363209755708740950748025390883585465459567055147679020747232936113550264875531009832268413328927743266334608832076686382675950172184263607908635530749376043822565209138380814810342822181339837278399366500414830550669413998467687664384833057790679945524633202190637877697753894596013572688690157571801143574647587218813385303074829919589578346216898354445691458619414391914105467520345409177814595207860985410185670878148363415502559835602739331561036726394115436318572896926969680359928083987291287403509559037274295467956267043955871595040534505062070629811588930122912898208138965591787850770343063318459132131855368610835684991457155929075181005476634020110732605219836101104839371384025857826941384679352977440043101405788389485901283464101747362150624397708678440194846112277462068660502563455609530148658395568643104349306450557829682747926842960166753259655970589700166486686871513781499806698866621778467592834364303505155583315018577271576718454047661243865723183764116746982622272883477019508067320079764771719817118104222037176732814880186048358989339607069844452411144663501212560988031349992255173609536646549052558033901729236939735917138273170215047295660976236576455673800539597304414852422343535779215436179176079139690306095614742441920359835019103294846317286044959449653003931729221371126532557292289111550504757806037274189937390719378560816781506269367210127550019675253031808342978955322612687332710061450680182147696544313214271139327095077577946993140506113823523300793678044322738114229093357130183734356433344227462233363510987677062717037682695691799200812685755882767090882415880886796926338442906458616166535791291080833686667348847348609377356231857642445243307592081543630656642862668030825044082318316869469205409314277541687245281894315534494220530925293035685258896661813715124223805938397506640842338409248672931897543472949479057103835809474105090474574889214641527523773945182921525791856360443713346053363297340925178920195709667428024537441066297507935865059880297302377692710137620042360437155993720778927150694875932465502533791196376528397953454399330035382084830034182635384692467042273854953784510930612925490265784871092099615058135407639678954823445084069541246924333770524966771367418006569569662905941609183473710515924496218701669194065367873098154191976692819519890138949934714002436289950221115994964862591113674543096641049277075455520403004412327025191584151424195096621512375956066385985703239968705263092586345585510178029908971656406392729806047840657674148700721943895941438831137969386356997457010692885263489414715947253707926728320112307984484101540251025468403115683358660187931067099506873429550554406357299801207566844217146943770332017009564525820007277667780552408911503251572767903695728321618412214324278903491982165235748925603153277575204683493965645233179460676739028593173420673173120994847599726667409477346454430477146840915492036423553237401943914261842893174814544667686557249018533697470629353831294785215500281963523676986112621872019761615221681457464447667421703329918213093159306220586135325008931341633042013188546217189738665802597823563698903123995078874942003346676172705457094027415029758429355959002913851345192803568220779389344606468613788623673670824133903493460998398585273427371516406562438732582500031210721459422055566884299830977209757029234299522158485562235430412319780747213378267527215374810350490613329135910939874161092421889366625680638894339116816511207790882315842524757452699373403193690329086195180427089159847257204198881314966250733906443916908854837272726932629477114467427246166061233035740398978700291503119457832346232309825106103275504562571127475632407176276994253196465718239607665030013759264991666975711000926948928030086046660662758296045091397459625830090437318225897172916263277135485508903393036810879201705984205173357470187150607428491947444614265563356639413016394402560987881232317824023551370341148395081587928854784517291670771280730776543425385945714575813311942773579390323713135292114546262530080356771946451743132633440461978724938804977829734291901780851546470820334060789696452047040328552985423736859609602807911092694582289926918117380705574848761732392824233787888006178063038285200610901007507704335856387821347441388097932079773096096514435777468457492743206247256441170666521830873824026010135421382139621261264097314329139075789934181074018348779183967279565114380060984094676891076891548117766895982808771354907953820885719166890044508315911011692976872026001129195539970403530812667970230987603601812385161137052746785126933115949738268891249502059146471014342113313727952321148759789360944589610938377868274958518535215150741046599471075536792406633741474762011211416493923106940346687882309239585490658705121969503907478767725594036293891596363143058615000070847064007623671818730946345702069414501394759666692886283966338375095284177626247902505087885369450149459737269609829140279186416366592117387340176771880281667852275095398955668898726407789306241379395780688393974552286094378459034697384466723359250679388497957632640054971700603272984886707323290544776463707772958861187349465398090197304271305141771007716317214182134096263216007729391030261079436274603873661194637681719103119587857759533457356156334047580258895894902210986280841463898068157457868292283271470441819091883006604035158274124400970133811470359774343364710676538134091507026516560161699204298942140278229011219986730898015493012388373402234600551112241672126076693096453362559966827967892572955922399035673751395004550598350910257205657454457230740212333940526074124722029772563844363506904769146621853631931024044941917660894048680622445234913434207964123505867115568304518954540814353116701701865485875940375503720538191191796672450673030635923787985060244699780355246056870650756905569780273002754350551670725809605755368524809933642985054174147385906511306910536249638922868298729080288102085314533481397167317237147207915047947584365826882906723026811195523095158392095945646880615736575057166845708005735374980000841548673006002462075477496321365025022333565991841395629878828477456160886066769165056912810048259243046660886041911340023566782146221725457542364673108336015159449349740290488530140364867990787452418919422689994375963588937513125345206147874911620347361406903256804103569610112793421066838587948271066074447559576154571634675083030530639334258353987339267449938702903293514063824813783398187220477741638449926740475884197809920589897745164337043953717906359100792267307802906943064127629398672682850658964024447793122592018272174235300601654780488474679926603676014742272835978272541581375444631762704046761450197361180104594241154355811317812647690592190253757758648027174800686346971342866136718869032880403394004955638816448686077042000586200508604855282343658094220732920445181359838138476283551994980620694785279260841515038939051742004495861281906878378557949293421751348590277054378207649190077527076653055237020885710759120653181304834551772684719888081158861869061402103576629908251836276928592641552093252064297148259089557218173080757994473380021818859468672270697056301148658845906610418344586293829077567286963990915500126662443244011623290576273605281891856913676187705423364052777229903624544192387818303562652215190527429306857935303124554497232718035084487988513468756997801604949952093964852980202089830142535888945195031722251518127031711794971191068395163830195878375917078139653646541069765146420136747584588939688394938296128908346405390252455739274420554327164198924847419471004757436442555747091525794944861388453130089184586066000586598828156554342398628064257326437798517899541811124210907821152700043512910279268784544957980606502339252375045573324535345243983516194414182467419350375147868505425441998349017046619522126675052650660887481720791298171297757562006743472800762877105542576208488878075449663045095387079683572132471123313904237680212452558208036376092846686734627077991006971355491052034300112818384050568441155634805177014872063057269031077222053659783562549668041256908391602290616670783381501610502489547076517028182994267723457256366642299595038025781523994937037378528718642160592808179402140432338316996867377577420575336214185109365240895513778288216705650950298447162333879945200858377156109108508082675954759192579509549428574524724049748534378405542346171753334258187779984941156036781094441201425194224011422342092915323062463173596172202233386773935011442551880128274331084873463394738305257036784757219530622584872064511452243742268925419073563571665200284955574877278489276362837555609091339698095733903638969417262476854744172913511183560528739342906085542167407197870342410242743527207263854956320387475576044212061109387814067500369497445085845397961980062286034881609531578936123407822472796190879821297693800456796657174060534551593602560480277096927934808695284608996906031295889790548487102177508213265970609342583100357089621982823127295996129344521505547810581464362134362370539604030331173730097404791052783969726412242944221506656093799421639829577004709362972421630461054611249419475545695936979876425637072495719684135459343954657756078116971725310646108724519845245737035257648164191200665424078402514505628910368443099716975754431050062761263733903832758676097614664492433369101903979477424371100270395593944318983891424895831964684153728192954842157308269926597531357277637026976228489159497468896507451470197458797906995632964189669867059762065015679274420875606250924093619332195741126618041927899858597387464452133298405112505203776237314294484264750238213979511216292721335761153158618551617486258349672581898767731018215065232254659879934534538702529455934778862379499939147626815264154158813693997082984444225483789030701642076225315030805452720264378071632238306512837978688949683473940152919730616303494119196756695198037359438722878066187917578955384929948569135647949106077156684321828233902846259835716137908864974110686975237951497615952857446619491373113576874542793209698602897789957893255683109696268761536314790014755179837500128457912436674973247192416462330261681716826228384892565997245846910271042043094409031813101907480173874359068936824291897719843348822373277649715313316769482370667611368998458563175417750799969666096763071879722415189486762265467309103581066446284716845252594858228975895820406053070597063963027901906759626866074451815990500486439143555256185408790712094388768418116876147130925716770894463838582072322611649129219570997278955081284756657556293113140148837530658599995706426201624352108222620758092265840131523534041948632386566464519659096812320696667324221989452653009156904242978703365985517742711192420899355700748352084792852905779899022635021451316766640159462269329812580383091499874187083458661984633623504335009852655130529567562141740154847826269134570682687603845486032875198300398350046743949590559874673128293824221806631481836268809930370175183707649301413875661283282844548070682093201374152415381315031297390040670525974567497973620918543885953733736119114785530064142047016156495040569907416930944910250928061425414347952594917251573926475068728048031709183582975881330974880806519745923416357143961206584468074865448389435921590306537155165407098802268991887016252497283934883184569124388260981400217620958447322161755381226188413616152951674357812158738940273076227799249566924808663178888012088821121010475617800227488577844842551976518976037600469680549875406817457244734785646392265556580448283390363275575232699924954550362422029446239821986651980038281478651737125100419161881190951588768132571857099752135506798605365677570037805823531417926729030132535361835935644338529915681600718244320923376915483457643812697682595008443415378240672415878632614487096135193317448772827684846120778053563565359357439068427743162066680865701504948077600917547662988125468034923488234566652515710644980106124954293742173025435244058011861894610376625133592813843320420084646537045909496280908675254476128398345665555228157851193397150162352993814478439097026481540715118215937887037664542204455897650152208393842244553355634283128381231828323253949778748411018080826253940230205863419780691364306109416017983781906864871378145315319787309270947529130365658921135882500266982923189554912837589963486104970040381315608408660122810595347560635676602896878565966911967812485550487169690681452485730312024791579226830273822924324307059195084488464708852126668585203361620370046873501805119709930485690235647726484855624644696859378706205795988751357161601242518947201628146126956161798217499467571436871470550850242494688418323989418844327223137388724631317554060072883803486319731474392310286892614203860533618399324530491202980833504264611410894801165627769169932885142853899870649685375899515450596862932284039898392011933161155699462133721656267167899379885029636135801494665061271772171661255786821857308126343938617761971110445085597159128288920802300872627199704550510317066336033256163839271319741130917477705251640120450063321160228028807682599873407005163268510650920876685639999197998263745309386345715473039972920606051073319863602397025216127968323512527563500440887018195093046486355576335993217798453914315516481997291558717162472625496229140606397404138681444300996194765965329632152957726949246665304368108654985645292695086971077469565309883224755163375964563325317481905137226746562067052515623196490798824379897611511330253711012206192771525344674224711227377386813105074750323683369283782939092405610299490798138539558467695519280368489031332260507493143961716789078967600681963063748118416642203781361068561427124068911810068583194204862341035557891590399984741951513879476225135180194008024913064101067811921809521298390510363744376990108403296756325094741772571818958758224196358434259971703427249949536029315469663055380916198681855977123461413205097166260679983211483568382251982459393180090898450850123572999424455829602014686784491999117553050462787087246312303781830599876701261451413072549209610109347316452032051794673135287784758625046472863206445136387560976264398567519459467694096430345421957021383171002838232863171312077918602633629964035051895777462193551607899607298657757763229557439725904884607833607432676538421108010331730461951659164565706307930075423620914633662427520463156099171085151449205593320625567769308225620359695817542433356796696281234378514339797984212757469392819856304608926932612271147949154645497293554817838547029963194176657218613914787657990744922508347133988480268362907171576718153023366171733770948082047014077770625400300758994305244089391040590403323681629795862401317500347737464893384703893952503556634139223182976404900861693136981425818387812257098424634572613157015685151374139969532837606340960304045797707870163940663099899488319122364928413545379691595830493925402205986485589873204116511949472497096670138436277865428984611314129095623433396872217130745668198267328778661614440478017928590440162716526555459874739591967715744986483144791510209363464337368733994547269928910844339665350993531471993418545888632512711277183159753089614129461156640016463531939389648571786704332855495003427737700181216903111387259252986033608068776843547191235858556803358574997492566396937950426030983732516852861542180014378023663324816959264346115042959441173947059635932489693393485957490827865638848231561253977637698221303045312338790572878088498615216951171301654312133323764509536486699407206751477679251847734093575536574795130590726334175663684581725396399116720758799655843377925245800117648325810323485359220147395504782065532024139463810523629340947322174145373418897955539720349319214481458063977997493823937697579881467811497764617266752271268012070822936373997315223596184847750427612867606557881879138367262666722723238507309917219075961091306437633138869914852985904070618243909840716182877813554187143606526856708285321033539258497434243877797069082565862097282339791623753143957792981583696753178566816408873876991835166957251730976627586727467511014802333505519432481294059668816717174612929723557076823202590840711515769965300960040955201250069676500991946377929895685787271282952279589819935057486986495074687766725227119234183562180766451897184371046508457949914797814066173835611165979414459937793329033332434992517319422993697031516702931226563766166417315948911555805348326671091119378789690128436026855253381787302901790107719801109445597909119942786427011550967754794794167236137975922628864510448068395089894933983723148161332304980165512335038418838292338742418646481220052557941165642304391513120071292431924169760134385885542273347089540476961498465577813719699765266549529407218748861499058345933015018599914895354907785763645884368967179266142747320821284525021126133867074227330991824186393972966737415561510234427045346667602241889192207269814235992616920001208041724205184783136985059130291628597628191591209071357275464024076039531562439561085161778714541609449991506086653879048557076281796291434935627038382417674348988686589750905822428398147968391103349260028303844800574454420651322762817576265449727521723379375971502911215778767617719206317075326821060353261967814381487901456776370895973070066164080436386794045484232666128866932007950488793761281147414863348369072263357689492394865267137045076556235980203596816379677452902602742614390681394998775344267237420285729177810313317081127735464811122713961823581041815402135018779970642990432845793532988489884080620892680327447638824437192429179998599491531389700770850819179822585315979713714095510349026271942555029105922053856376773844492180165853186399370710752523439486389481574690700327184720610337900669661470103731351658118639875128383442717965751882851406772423612256441594351767126795527257564043224104014543253330170861068237111371507214543869194195842538739273167680905175583758348036276394050691449018211006230487144801528788863317201649248577508227640756974111477717790663948731236126499227140030504981758041818246064533826772360097976012048006213784137605617376504413829631772956857546817339314477749186432939860722945541896901363605830819626962554765695963363984458476030437640908384935763201275425574952056450656915890343378894181449019183510013651101556039514784633934073273121912700962854155888609318977755538063161562713302151731792090024453354633187868059635139956474998747653087498477383721320942626158561659484145483072824883921686242173718801905278909291274536538349765353895653823434122134167808924953126381595565632219479370390731697393118124781215983862338404359243912463555763931466460089275314705146911355992559668341046363507688608872164466894869203512814755970253103305849600319787617851066532497808249987291828186796495123824969749865430739288226725616375966374966295845149119851733289901871114298894506674679826113845235412532121178990985796677779287260351343828468170401151697083630724426747766693611347739510729009605204986331535111012984578672448705777746822560559471480914956293068726193642129369792132042717548601901158293445563062081559812542060809746525701048680205713478178183934127379042935367418431702135337420782312034670308605347185105465109099924184557251053442036858358570157333450519424939147225695768867225569521036162265320582062052069246580526337083805670024254576159526456177346264741021555186692994953348638364882688756279291825840820789927823209785236690775211279533668595807095932606918349800953874378669726234155755706875666507883423516180091796453034541331539121408864238365956986351262479996490232367208574852675811284122139680961605199370832863962492905589444596900738627122204610775157126716596427962861180128752872971436302888849096306742591904419616082157615801506139771070461645612904023243554009813297485353781946484774175252883629551701321244364979316356331205984352105980378177296740572727750421561915204614039092188219178315065039412311656277378334628446590532504965857758910952042835312632858313801886173054733201411960074031400839802908759996299846290824348730423686051275008763682338420502986045362832706889736390027791481545553682787899339979888547017391154790014136790844076675015029388338288442291325910969987821470057328275779205112841766230930843789905485207963014601295309128032479020762707398104411880582902790613287303145423028087383002267538240059710856793462748008915227999556464630891419997226938350540920218161867713948723284486665506743461824864025346979644501757994146321717558157203047176464692289631772980581577553927152075488723602265217784219977711688554982053122829675644805639020714428902788460630353055030118675346203204248597770320126664895599012342671823928254954032434702621155480574925816624919308925929847813008265999163836260346580568032162343601393962359149517197771541136228157050989045193498515262685229164145973964198168671126864606533002447855759217435940335144810250125782765551407276085942821946948306565931066947830276999320559415737315796433796761750211966228080210495816316046630309042196299658410722114832845104926043503673179530227810384089188157812151939100440682927275480627109583302163508438722120503395401738224884055752199986965607578452013563195473857620416626284211884969465844002731630404717422253736643963789413474455569162869609208853234014781441001824251679638939842698658687666124817289010690598816822218069163756006647740824945222235262412706603381442250831763381372071841081069191798741175971040414523813080876006948417737426770351602141483883248557866845201131236645555963220283524324251036902456458676261297587522962151522709415666358819755914252198657179544198512477977055942182864269411212030452897963651979212008039181523002199188452462386202153881996793925528334014302512019848137293171250609954209793632647228936001651560711336436242216105239079575739106435666653973593454918953167059541735805016449558832947246868893293265861294488928538627698281944679462000863607949112948498423933455788479260053973373658588407677486784698923930183154385516598707048778819016029799286781116060929436873201259869218104516074959088325296583306542012023939849693483803590660668119570953088035310703943968292871194635650323726449692119048635574430756238358022777884358856865802677500760976329558657644888506354809819958214227736652358889248278861615624678959985686528604126281791445042835024031277039648425465517068879446584295799844273028701316151061157401362174369429629784356620119909778841989402196242773217016539005411471916526769773663700359685759141804423693963575531204393025991771270870679739575386792365559474422337728814812578482514024662582535611311244572998742566881154614815792158758486355061587983576678279779058621112712756124151888387745142650644751505952197115859210194208718006132202942742633281409997924614604229777556631387223742087453633481489091518121465175932692501457804988282567810079965066546216778046692860793320957908708679625025371644977922813084159437552990820686966424640508112933226295223439792863015682155603644977227723291683773365357467781648227540383838201469558760587243164354288764830740526361288450663168859870090111233978772485712524101733377751775353792010099568982170547645756987531475055275593032212421714467038198469492343113900789153096366194973030771965871552384646045614534733777236328015838801066840978329530914634810282487649585421922985086201978178059485083582105979133744849815830592170377237324740523843290464104447275463852046728815558881683055616310633671939935682259148181582523883869356924999623704902210128134423691040922929603218869557836112094966348790817239149431618738902740000428293073664463561423475772319059201259909887443743315342325538319288642624220909765840212105025327762953759067753412324420166014127311706195882668028667332421341859232319675457338741876631916119749744522600903362237967178871361051808013389578816063568686797470836323019848457096437418964634479822981492143599047855017360700487363326599709560684398134744327332812717065770600825052263326757401506695844392454467997248253765594944406104779794230788226933831809518908049989627387415565663159493110151475538272802881081372431867565746127797810772573914816690748480503050648178428086690339689829727788809623478562371071384507161173682844330800602584149618848862054370878934559445500447132278139997621533957032373277353117754053969101250182498919004187816539442488034989085032950434056426349226756853234009150253497585496830133372940675020844085209736127826421619226069003372071348503267123612119112156084297311473170919236417211938708443912743744305230945381595436261143329264602982561275945818887864452378598217875108467043147286563463695500268539033348316116905098314681742207029712073241351129200473790089180515137532200798246223341555838457648608610186733340120631331626827691066688948616249906326252757020861822837157197913497880042228877775211872183413792310973345484799460574449276702604501581723891873653390185628012798525541710881800922481237477205873191061481588617151269164132491548466929126625282404102096058292844388817212137739863891765669579597770295914019964343474910188815266161473619700720293653733756103163046001885752446640685213555113537951853523498897383303518979903965720162221807024879190991907918833610601944168639975906710304289178789787133173977511629157401015366069393210074645784185093541352852104855341996120930213434951140951823594547309664926548699213984096298698787384864889359653528159216988624572030874817041311005886620727428307103954667786813036488029955379822973670283287166137558921814753374572235397527190272965651172279948232063834348081433661204350131735868550716381518680130282216644571993067021566183981909165518755632864821027884244982405233879501237881744433828771580255789159029886373905186561603926487627972685886568546085712448778876935962475177446257561197925243771080699365006868415524887260873407885068885805506944804127245781103211360173326785067211312759636216794206392077641571713261667748919006109226445354583451719296237733569941639279871675214988533391940207035267867738914250445780157294416406837926791180087711425729030762793744337279853887905630607602397257012198339843343931438720641755329714496143159522765344807392604538129239508415180570109642354587568238465535434586640800254715251858551836079030609465501024640853082196525281619840934171873642719306333678306154078399595969761880332444824449191191899827881834758229369518781245979246680981932846337719780418947586947615166497267896988469707276603726110548088972257904737749513937841343277382229063358811971955410367672895230919185686341389813134151387328148795277496770755132186016027019785530021815955931552746536695463661861696873507816394406636596973715320066417880635332764602116217488665917223794440118764528881624620460553560932787764061465626876381992779406453458828947631948406949219185882444723876800740597766240950078439798444650507208543392216650964620527680459047201958083167159815924735513420605934246893093839171507655085012798072064909511633312602602581578952432938833162767956192479226747768385399340788971771218760292352646873515914836436907548860538361747210916934354419043359599313536969595671949671321109728297775167210061926631658674700698264014227928297027637098299216780659287478670548804475624252832306593038167612384562754947500484810979845169509645214072509287908007462661545309527508323470667410347737064852894196281265751794795485418318365282809927795221453856274948778435951928120073925015894498744841285020450424248361111874002865612629808678264293241548224979929209211922986787270021611822528389628602386942439588711079052418032114192845312224797168521337581924917433954717358478018485159565942115166411948957341026526550594304781276474847509071923152178955473697970679301314044409313717869244819429438217055141260565428876032692879693849406809877178299082815494267058281229459206577362409417567905542567884995205972650974005530037597321422207304154304242478860202745497324638993539211891168154177075093443801437938072169475824417003974856173563886520236059781609305038264391537896529021069491170703939190445113686906120097364008942276862707886728841487040251812371392101813126292611665636596817056573906616171629452212671194675889724432150239363290745893469086144730279639234652377666574448160137540602306085111790594691728743946741185485970907393939620628122898449069954399313348660512859719204681641284941180086291310047634421982605015761043971415469300968777335485182601439852778077213551746976042271393738218986694018449661050351294152005655634785169128353913461143506373082790238493603058973550271128844136987558040149797291646362211411844018816626472555819951362031770980402652114072767059137656520995701004814535318549208714713230507917425299218441913613990678118432837972896978949102951840553041853670103604465267249664886237092629807915096390318410152622272521387041629768226622636791456734787786944293583776184599251104451641219256803444603530634111215723732344357960750753343269949630212988869929110305075735134825274207171020022287002498906787423088795817923041942132399462184107973442584324426035896885356939933499439989899870301499573343724466439775269239873773180919768746561164878102189996688513877445970784974860739497117626770100978597577354310269185868485922658140631450556489799996961059172582635434517576307412562036123153279530241230901101405656966997460414227970838433119245128141232266776112861185489672556730260969771063621372622271850020371892080949276772216054010098962714529172416355584741764107770145568920328227437793920110628126641377247175829057575279786647094527920457958802678459002314097260983413806630498445245571811496664862775789238213633854177811825792275610392633757881778128708294691793676098712817622171452678548517221800737295598864688741468078461799764452173914082543873668300749417117881706466210388926952005886250257832400510905265445130373065893940913896000413474321043736065225456673867272730034009831724218863724276426829832627805913558923986945667542999528086223250751582642144862482448107516847480038742553126410733701794521540753280524076145848386645867125500086297347945779010169665820231944001502467481604739499656754400729282741897767293510736489908176337272792626235965835033573989233865085049800685423976479394819212156580295581587306328998129768511287103145021079476260988905028963007046430092031811709144800067628655734806739836499735969728130621573263100103862839935793755612198253664569921489431826492340437743516218395646103580999022203677127776499077863550843744098543695090924807782401936821846275182670490978566644060912625777775478964111791349976222057051351310461476515120133414351747000687107792326804704050444665862590725687667470292219935525856284096112244502651799716621089607010655665517164088486793147773134633742560075386541067378849999749209818336323598858933294065735693249518795574237544597489782901886141559308172557148397827726678023588563270636952785772239872443133138824811420765760617122917460130370979815147303329379927879771250531724997562192353895154306623840630366641590896495690187833873696622301726321106966699809057370202735985155654744416169156085668312269391837701292065021596499681518984189680576665930615180397864155909695963928579481138510709469011891612461261357979740332701757419856654682951633287062852338293152392765113256248642666308886670033902042418121153296490094862573265248086663977566575874606613237672530328236965158396043750338427518888420958039837567605530293568295419786120751111974957079601777768349055253901734176284848434979945096797006535897956207477081137394237760848536660884277997197582390841912964849161201291523181800739772061330015278715123700368086680325638455917707224786326110143334890586411479803234059138430172975066491815322037330200540897319294069035085906590413920760722070374626145754396546179827041679457978317914726277752177830780387928802772836981908811952442522425042392733679138832327869198532332052895978566015565506753627285369400196131984730364260071576987763595317874353890332154406391524657011807471619646165189700302282651273696487718634256268375232511901871713545495396457234184073661645767137587553312235692218562105575756919234537680533576960557400904013045330951423156057850612527727979836302464785972232517921695126741572555109107467579046429327731195388010771394573005387697942171058701759805580063741144765432557247793856791180355868800345043893331685209434444429677440573436289788047482206434652531829193674407345697131594687228080393007715880040862215573098604928938570552693108456976568350228372125661155696676668397854391993770916347065299543159436293166966549253572313000819985759451058925992564415082586165301887073681750407482937795559142884789761959422512549770246401248302584461321968655963517022141419846370833165658207816876986320521770473625924820878705458171846575378753100465290515022694708711232871020912198484375242352394716972784411631706743919036105305535608385291566907044066119169118992512195030686845802302476155208480573063837493791092162655349763328603492709999728810648635567319396945257065919294058884145966980124581369972846101872159666722550929087643017211512054418066359435005050193357856288227185473820405645334045952819177774738822669900225311171873542759045978602489126601048194308045916667286284141490809568278314142478017994901144654826185342606674118884509415909879213069758046343934496250172796811711171275005415856631680224950722618882520853219893316112670924106725362345006105515388353398957330586381720359385255320264954066562317887823331427676722473387807232559374250552793658682115258304178182055641096107413251854066141268626335588290914270588782915981795688713078520772662063073060823679194302622394394613537554533688368227207410279027849761896805563007919108609747089144656675726597282694877485885574498281511270413294732676575379081046791245163287552873473838069611394913323258422448516794413177776405445393437256069093712012240038682344128795018599756238128993059152583006143310913074576007123791034500415489000044056418979888416750603912304814109508982731340249894082356212009108183559177494214275751144922307329811879493138312174847430309971015445739092364127414133051591816248484452454813318384281751496947594805378001926757469367284371168384456524805189115373854087579954270707466618204119259596355913319945412833447967610577385338537816395462473677904264604425991722541384232746615027751191159326908899225023902813967550297636674948624643240636536294694091961771696826163780596890289136686469756914512218390082474209101957718787084042538893600352811599823577027589361831179628747776828294829780467321781666582412355145489663122986747951993523686680487181175658704563654319013182252904602721537612667556917707225275934805725838083074532213716298860006012467137316563717870171099803484651494514271143011636662790355497042581150902328792558997578311635098992358773023127959595043044719409534486431642589795873498190653560546799226285120332815836504734819640149831474542113255215671393228193281096064116419566991464686758805028248655467378551514024347905389796270597635914221522709695437619807901468418045020629014984733919223868912363853069483374443148638146219513097665901585223959303416105786140727934040322577407327645200681857896880955308750275548468314612315999789527844608477817840354111105260467781505818003235154864967826545325462334763710338716835201786295775427926183632285294882721690552750907086867484236993764785882779149615236590625568166004073821213245226494042392700310032456315563834510291803705578463674242004235336555086193394496313068314322200643953656066797652625646090022847606499581227434864871129975613622526033305061413201618862285917300708422420449130612736176388001645024955236313471729398187843632369081797351411196070326169609983383337952893040526564005298289438094660989609981345398815414874728018908924365304892358593903702770274421303645518047323157846931598136223253798021493933442831672087023331155301440732119241876181853303000371286940964337333087295196049660515297328761504273108670171615627386874733989819329611001961786209048787381337921473269447302941972727573978217275894779020571122848532463609969405365530229237876990695807298348064274005613804931355410602341396231575107599287164261170680620833854262545076924176942807198951303036756450150433125872073663618040642866360725230552216078122153616542994291209522272774863426993380383929889232438369385243908065951848206502024174157392929505202936520810528514258801705522611461023623024763245411250548635628199417195999267584905669659731913074210314638318691662317837181229033132204198487248852442995125956541585091700426062288342199202829684625110771828485182439374305495478408106589890498959602187423680645374052661257125660016186850336619340488466456434044888311531104842503107371877101733710388327322040782266109235257429468088501178571871560245409279976767867146214728587492831552953888555182191585183702763611124727060895605023981431809094002079443954213388408001360213322827108558446828473292891699307519626794268158460402972337691244266412583290334425321455737950909192435730537622545033160245339422168399542628753754504077556963677332590343985612445369379769576053533776577458015087174419270611873102758556235671282988556424943563413836722332377728116279439388064081672639000847061485719962417804678576418648112480911997168074378737366980325077674023345953671107457541121264232752163253365667508106380939655157956656948687601477107432878596442608802116387626328738488945152281030498637597351418106883084547398376127153065406041173086327023325750106447161419810633845962775043758378060596464637387146390909800408201990669955876885387137412151592859908270395168118023302065907254966197147085378311627736475397590120915943834025303591135388726650571713248610497648179915535996386071003281664027853101759429093539065988303545734419708900098172493103744273086824017611609121880740357023678416243695746366458586866220892502488932975011275532992737564847621464644800678868764376139925702839573819002978835852382667862556743066737103622991159222970571489395372926873625800625318169976016947246992278047595586889087455424023030863014855542938197425485811184949718666610018790056838990252268175128685294986924145477919152361735266201692549295698796805463657390846410697920511987543806229909978462811656058351753752565721025875393393139611479881493369834032864970886287003945612080483165305989300830980087558302226524816258924245309710900381760332993493161900032563248850743133546407414647432061063521616615427101776159521525309650077507298345558223754724899016576346734931771896426685378442770677890207658580426379797369194423187366758830214372352853997388932044658895996685293994977433132197187239360747732727110236478026422601058118452726058811407477626153989735419974334690243526928387574939848805972150514638468971379003744908435060715215720249286075404374026088331125455397776190445002462916188128031798564356786883627988530413673792449671675790751973626098048231551325948761137683166236787350292561064668481652996532531477680967100124011816290160447868912158306379809136301672220226072233302595828849046000244931477855124761622684783364113875538434423924133566331215150196766685795256062499382108885454407095200311465520193874666337902151341854478597144174691212527735910714885890308695343076251725656746645119823939297602586466703967486425760493814338961575834300425763789514282927479589333846867135163918925700200451408677512409386494401055422477755455711341358608255833100214802368300645475859675502598357791538463197637246601702195109458079674210008092578781032553803692325017182551635995270490641100443669122317245959528415673043955718508455381935823328544514684259608321772530333001123171465179068357432435543066289719876006051991534429079859044870631007982632096394915136856756454476153041109702509928238965077171338227097519488760036840075349571488153453059390838586413539909709328121928461667254392550988036716769047482606204031311182280467091171404649496139838422429851981566102112961709619396869268345347815282505248637682887502602553349282592267183346991717314896453042366543888236494185580434281728549889751428566891046871222987821250020029753867985237556165362874501296604884036236970274155445385588997311947013138561702522139392695734426224506503234806517706860490827343453127785463528195323628083437649151507849096976060339382684130919767526868635562039496797775216793309723951957090248417809705544650444884126317955807243279428836152899251179145657388198630595409513983725198214140254739084173127117746939366750716596383107297106466668025336575359638379315027836629807734089606110117922785049713063018675944902346751415637214815311053957868246248005633670388392302786927706475877587425116907589537741090589877250379353361116568749381972297897017668215397767593994597973868339338583894602150964669504229875654772067398213500492992082135301358853237221743713986718718736709958336202878797704282713078605421645068972974867051208072404315126796009283388564683086588478112247138962266132919227815835836676824602163924517996004601938895975972012635622622677197741046238681239353310586762400805648050415789839165619440705587568316900381496333298399243335011071958705392169208049946382559298063975641359266189379897008015303950205545617218676785582270802240063463393882707643570333842593800026477327026575888370571142986762530392802061903535002373067473122935261983981610591030829190644434608842126395247314075345242411970131253823168864868942637641835819967734574539626823396310110083089547516068481645155734499250186649836337540514168777612750422425389715496897700073475619470828260203098982242955194234661552062214259517322427619446544270469547010652938430020547762035787298304040965020504149494202043955582001206515807376445091847306986981655412360408585256797840114824616937978214949599329238428696267117361875319483742337913610172256812316761293152066681490127519197767178451584991766771631629892445713254591077280081927618490151546270502534998950722642832109337735992243723818202703005141028073611843762629578335117605321031445562398748854574505469466942732228282720973509190994890368340729782385364394321822947302039335996474859153996427726941992425150554977972235088056645490995827207068082933656428366302619921111650827697595280771584677284595778442426860485849039996574456535903938682821745652967093479282827884779917761367849290841095135247639198736414002241139076381478034924665702927448371476667208922405092225577035563601852352399517455873340933685403560963853297080172196931585183779845148283572659727484977578415367529713714461353928542322457070376008577988613069891394802401509461059486354034179619459794866264239714756688884635207378601146583775005521781183742317715144183264938244445766806913215453765450959759042572642889837341121952008677732463072660380802403128756109430832548845727368810813278632782677930411267486513844658711375953852071815914012353181327689793473327771700897068686148791645472222743916667757700352859602805174190244039746080396683374005736789904675131635563476824777753152801125303792500147321442931599809716794263571894722450134462192511470836320816806360396650431473824128604361205387390226073085407990983090445476968859835006672093193322217616901731518022441959193600513446154192352213038084461736468888207818326521712713740702158067230145152997243345271834760299780130522665818668802038979519169545984629488305763287501418649687800110407879946302503239550160944924974948788826384883744398076528018846890681403591608678510524666101363066019827231855512584386864222591841427905190798014007530615824022215476120766968613649693602774426368403027144295390480524801066456255720938484700298585164434899103266289582947792909888195284000922911179366207466416379863528193132182312376234162112832844800785758084757778898762595607656269365208095783315730262110924909873154448271442736429194244974411930871530960991645689899002277404129093436478974437157327761227616933989332051239017095945481430099979209646931956141677467305791240547422384801175967301049971807895411152952641915479301617844617190776623085861651739824428051663402130715081919750989145797001852432717143963666757330108175318578189041867230234844744226540144083382495613529304204499640415299143864757314730556214261365351153246487551198923416792607117568149100050347355859868085623603413179739134759456021004261185054267023869177098198594238691487768536213199274391510571919403303828546859475392033737172862086463045082269695406444386141762018989836303269821882373623618225503101532197086856912142744446036458758799477983567545583754354838511137477504760660200253454125679950397767160038163805244235753722675182354728613836933951552852530443636212849696947250536073949855077288133781032646061701573271951154624285930732939930770298914905726037233898817787210302965734316351357662111047093365116449235019249320131183412612836996592726937752770861741480183920989917996742757355594905692755924710566682361240432797920460305248446475612721024181311725477840147764345459707932718683422702669866614221957628202906854941132158961591325176141078132950682657590292898050220788339546151442619558789167228565154592975538496832421037168879730110694740011303914656412041559266640220174269015024453495925058591673224614702867379682290535897161145926321135171535379612142996024694627026135965403498100691362781600650480134919167462932519207728634166311395203850326306926240173650511069011492377253479821384946378043660327390539604014328444252495115470524679520936066653466972554159974875451483187429672500026117753950187129323357258236808528124778239089144583820709781489958285410322849709210699984654134393089774161321129270541355361194933891399128433924927669771768451994595392783811073102794349678576172724573595604189597195223642782078718329489706870328728796055418667293474120625657868518300190465941034368227898746594537329521483459328438224957870546582077397991045128885488746116231450267160561119634349536408631685420989628681500976540195394978693403629235947502127191974822823933229127374341955225353744980814771894791280381878243967660974579381147591337922436542919677768047950438842533185681970251941161634798663320591704078221155168207638092210111996391949934521486540881448805175026279376661145688527604950193245041723155312770660490719375815132186395116517275433726373168378891379140807227218878239454069490156636131358038096907210654652672624748580389003729767958942905180271048106773538480143416915388607626405210870750379235721840154155563039250767947581420505923325055142580734582046623887762010958700997584342707645633458162913819651205341971196462827887993784069408968435408748277471239556023881685410138826346149591042894432082837820449370045246031522688428012393534395567385788908206398362596427913482223464908838686635631223357184286674082703671307810584271518961621071998653940521705603202888992742219778070172236632226437417856982976233350095633728021219283683633753156937733672579308840324469241024497914604385333165444826157827598971108840083924516337169077248638764951871360694281109054034546779696458562388877697780027090847301185183840603959070874379064314171722711562157282276224670714130046382345067643446514761644771980180444237471684005205749471974770373575501358519278592697577591560502816198626408691616270123222338361372608373716736491348034001851243195433135973902158085169241396780295637085346904592532866851361036203817324493567655962866894083528178488201079237676044007693457110646959707787668629597526411392368298794821841364198988819654582134818736273396947236705558381561137665740505519701617078542748077258331270345577589676314380690672581448323049253285020284818158369400003185128404434824522029438072627790794477311991259433687268153718536700481650528400402275604346873342560619120453342703053485147333553344090377869153394502140723536833707797604836487323501599756056283065732683094393773166753826772515863960408361488870138603637551689805768816717811376099772055302327979231826175875766272551594933587280165117132105149572337942805985564164211950385967905252383921129792925410439449169824596548952508081616479852311728011541145229631516810710120898999666254340166295939550478895659867550781243819044621628880987423957868902001058859995908260641327222464523404725306106470454752837759600877777358271839268443250236905595506612750095482947585147505251782525041128822596336005778439941353029744653674994673979694180242185673653233841151672935973851513017935571084748497678209785660698413807243201008519683012083085026284133369156976937969268434788332638864685476502807936923578835143052305450417545072886058369050555056141482945722285036680290422751884110854458205611881955010697033753119175364045111624424917492746523342109585113980407382528153925455070956350890812862769853616881986451873959838663988001844924148954256579160986549054386687417902385623264653421406489269447512910008152817736173631346290904660862186441045206667510057130210169571237864657446726815093569095118513093876890277845246098734741191131647043936301817204476684651529149908799484447938462090070766807267621810032659326787351999274657240049624893515559978009403834856046532086769304037080762604780474592465691768731607560121798458650278234049227998488094898419340532237553728448260151147342810860663105163147760632499174751259141304247436904030921097907589854940300395635104360490275180081621913471127023765003843003105688969151345041657273371567358501614160126541902755979325969857708495533231233105474918551001272080892524855223242042547524408017000469317395695632605351194420189148104320697757777542090647999177213768746499566395380138268114433008704661006596155935273253259701096539870053865462223290733718193201219952630940324207879721713520878199955102899201883941228553043675623637078944882392027073026027846248281948702031213786755073772858750022354965735933419141067531063048214363372935822504757669058958610553220868604565857413849187733839060171115738320281089952421303716847958081182333052669513886085090895180116003370595982224944487212908011797128689220195471681829757534919449209512847606766328430363682281369933255779086346687592593252194749762636530342827551872067342474025008807302031567569610237445040697476292212184836900599319746082366051872627055635653970961443447794220795394197387626614148894171543548237417368891021533293009682077227224208174238476005467517888662214732058025842881128811080940308684229621008884810419040457273231536352701666645565158061139901592798876452719196692197134918404643147633169203782823131441441320545729867500265009743773941953488881157830034821744440497040848664375626955838974970869843475261106914971692706585134565069667277513010086771984061310421373644244161750265874049775425388868807356615196974281361334393964031499920414794533956596039282729545646272486858051111386238450510353506659284223968383224616771420209512246568877804252845335190123524991443814769170511177727837323221817980435685126638666892406490032781988831161294397843639357112664822899403560837054700743700318227811765865666130994236943653031650674037414095501263351042403496397470821890814068053587311508833294060904727826249539970806408497405037169355268333475384440477305875524100886772545189757203003571376632584225926821410513278216244468459857827481198517678031722435129889248750619652846188308285892392782435127721496972113769673057487239128238294532440903925660824656108283191371933841767506622836031933746098042093076092758164343121621898919878893472149871888735437932529980877275106973826721116115350169124497658581644336081624977276228744088107268638633324415670602538136745668809851311365631606075333551344261382700020725495402105481243669437015075974425758507089866750746419250486630770384317045916327560700521740336803459940571272028238834649799501605376795900496200150725499526522910956908160861759315615061525830460080258154372580224912842890761068526371110226204984860008902573507613229808981222451737041536032647890808723224040313355022287437142552849464923642967188772001525366798808104866746131961432712493244041138306334386282936530894049262796480956139833299853072171142167856313175428798735556253985482596725661934241957998904824247031868778217703924210324557571358161421161122123680827342258486883371272656181263643307651761054576128955703232992444361423147623238671536029580383363731300446081585898021316097365731479206940091977020079011660666225524825856298789286863934821985302185214697876197126219701195693632924097333514083675667872550142478364589998343377529293320954478532458702718429470016602384384337300126426565384893601146858363822264657672512555314991751079959067589063197194876375375042962948234823629829378032957416919445170330935494494783814976363921982841805012213069957349930867030923375174864361335587230759464110450348730052624969531852627485105662131102984416875520709270791589883098076090876013432199244189055245071208202738479926018374291296413187440476270668199621324971921965096096943910454079543004789125112297442025140856189159974067234877560435869421455421263745397742917427076395253762221021399041849450718091947090345515271288887225589280497402639287251313825761539083131157168803249340221596492522888775299185091241388451623096490613508920791109584340137183683235113249983995677491797430681537724034347248261983807274508437968610941186030801587532463896784780548536501566432705660653936307274935759215412332024463777134874259985559978382383250941167893581829149851469449636497032829671513990661513493118090672847252591016389425789177988566287284120311206214122502027978067352223249769445903290650609143876837256562623485925119402031530384266922798939706518586377703558394288154571663159210262092460669785188681517283252812703872258692612508232977745876309428650740441850469247669307784701593046599857460031252861704701486383529416094216848809406128976071963734002424904802143957844949094980690863830699792615480543250955470073436858374713007981084799883965345663154612131620979105676890397706274369421631766401073552383955317379695682263223437007951868624528068566636276396829375560264335900261109031859170878718378957704371160893617373445077606213104092633881879872779852469004332554891946678095803553423473648593979621201500043455560111833278707639852889563286866801073831523134593970446917840390213703177844171532567386664367656454027185667074365268381357630239192353478098242489499179858216341675408118144859970327892917131869410047110713526961523484646663525760328148111770375116808146754436728393054585965761157822855840609679860912604778064303666991677862955475319301599651203000620148451392928271387068976082804686075408391325196932387984704024388272679416299007127213600074312172177723293325101644376729168897923411992833171634234017206137912283488898115793416304862066657030918187001069204821936404313816511101937016823661411706088033293979049782739217708255234835800001862952069276641672010019453570839201068921731416696834600155922660682408602277780357319095342319943444646652228925214590561853834752527477649610148687488248694597267425155882045412339103755876145084494200404908348063440129506294554845264886965972160105435591523204690330475718679045405410965615076808811492214993926093490006835111717970114459718401992331672065388986827752295989366428824520608948450516113216478321715568604237612348511179302565132101065649596405860030999247355902784630550283511454543231588107245292793434692101926250620449631506051320554151781051715674330759031049344130200213100135266572199886639776331720118336990946679396278646824387621549046348987105696263529651869945856928994439231764232876022743510672514038283103688873201681363272600197959336358502427940676495380765970728070206326307943735963586767600701338777565730665367289044465389157559140273233372073810155756967816309526050341081646336584706155103189564632335810825125799108293244232942034577794403358156861051010162191097825098142512400459276816522164070069349612634740116699969232480970210312388908131129209155915301350147850714598086509581595411836603101734977774457574924021014726197841716801933563241612651763093259023697833626527004052394142936900418099906012459305231697681986935222703474777713316058050494391573457924259823802191942373570311262567554181104086144689476549108842348054024777950876599255156106045599092429857483842862078687509996099987252664079129955792200736829630109001868658792063174264930059393881310402360770245664130682725868958883359227416276458309030066951286640319830459612841408698730460496471654406382437983323863328657603859537033032868144709439849394140301161322480628633709021982161416047625799568454732210986526413055227605571276555056569129421052401425594286624988066291911443760473361208133802280957215420604236672327365525538017420147386168003892962993306103874356125074043754338700820930191449242712966381793687151673070507876944421774531030256611528807263428111792726214353677986906713756046929475045474539772701828446379886991681325630199514217139464698899738347061643314615984658127355667892171715496497317111947024251366706639756892525211059995003471836544550268172270133446477414421286392536166217546398739632927258664817489037875568940471756091237514953641681583452798610045298203742664714804817699339227029931036487224691344071202910142820903393371742945671550901935793778566487440706264263330223203730769548269321114136654319642707787709776346748109026061222183472445606632941662527570266067973815537042039209923186540201388147266694355718154486169962807343918650002578818900461918507554615869345527062957192257389485117893602611921111057960975948356872601910590905610079863627285794924497054875819152978623878339240826971397153153865883289238850980980509646280244309450769896226213589415032324093846546661916240252632876308831032185767821411321880004739533014022168353788099930282903033984238756196283254856430258578331670605132268056549388158560674159759748011928247768671364958502806793055045483078948290883879927455331913357278854207382538700982518534154326493932822732995808596384377123847725125563289112867594039849030476835298524139192706806386076001672706885112901780837670632404792652288535578786238140428328662514524175185217137600955244024451563800887195743917578795931898173606737254547471693002170830884932711755603050683744604401405145157982482301040089137114923906815092613220777311030072448921192648368819388098421541779380451378831724198321145008094905754527769107761321148021876742765313133121920126955046176860000884048341346787472864998145198701927438974801382338049338038666384982014344322544346644426805966057817756107763180825453661387349659663806759580584558879338495990652124004133018548033095772978703849699269754977975607996213498261439770584775862047253652421750961601204222783468423165738375882396778013194559653041304832418379883773155486543628973560420640819721855779408312493345957925783208192824927362732214312288437301951697875291853187305819734698259192700399166234586413062990633368331697920939732611963641756965092023202244630329306829474705503128151636168869440227787204133590711938460651224255743390363537986112625255274481060063638212564307513132798512524378421281479498345672448227560823747149704674294869230952763175097611570560663307624584135551387328698505639846006758683715825385738165671829176923108809177099771771189233937287556486003576053513729013304359817254360485156618063860116729342299770757753177284257634068383758591649525072068959128127469155669359788433062647511845948919383642789672118976922085418307182612108012887833429316306304805232634390184569675215201636083707181109256546076952923859598558032705000472987478093062201221506145064611715477877389861923151071859774757359475448374025385948546103699753744349109690827075339549454593248775001962533902495333628120731776043058990243038854260240443295581805950242705433750592637733583958989933405038343015550992376174351598924739786815797155884611542834648007970486439177422112712974446542331552408745144723675684172553019786263305977447223604867988003282382249314660265984829801781856493730911165028748865170134604345980926090128353544857995370734650304261669398677544866407752529385624553739576608445866795103499219075822307404508523254130151434651535707663946626788850151780055844624343717691378592438144069975206970305562818328944179495494860179213599496659556236984038557970631999524669271830994933259717585408739740827140959348280837570602253281135217946886313462143385299421375370477380740289583430099342014937100967607107100983478706220471310629687926969623088953640694038420872391130264573123498869946130492320712553062258980129735327157068453380110983297446418683069217088876514746155474944769731296481923257423825562083556286982897220777472792287871790517014655383865953586408374365151539672522804777129237245979918751455332235926949167545392721137586726979749918620982884468767171567814597063313557358214703556997876717998334227013081703703425471574998439760303604774877926962014113033090081729975486664552869483100342861320970101907595121074649124189766103945943673455197703550303411634850454983404904764448076716471916787899180428539274066028492067142938886713475410444492208863853444684521601850427866846566585914600973691873879715745339980086360715095504142403286362635428707423386875812071777642873837149373069026333998950764296476622714704846617802397334145443673749943722114095748872968321375919592474589595243851236808795051626050736628363805510327861733038037654450038407260310402753146415297915387955291890113785743500058993085133352939185396026459362039499932833155220108346962965152874610872327088844815098962650864764670110110487152172598051767967611534511839468478225525226045875642931053833322328099047895386168401042328774439166142750663723309353679441361715979132871525090103087777674802274979432840221793932119046701316833688922656495970290087509213611135090016097782904686264172350439299649970284880179310655030640499074896808127263647076191582422671945756441042490832629243647718793166579078971719864114049808616566845151019516521589298461688850213745905939853720759732998912368446285957528670312202419272775576270259911157997086438481918758705816292059454820862147139487799188886741140983042284175430651849873543474938806774167185918729683832259211506648241741006264474433660098873247344869161326213162036574804327234354222342183280086985946589082768380171372471694053950785386990631057756965613758297280422532088659891067677599411616125111149102127976042410154101811591420636872419862964968995523807381549822251875154296417578313002156335804884383989347431423777853919353199332458074447101782958974627280409888061567898157181906621637382857451051516688746747330931873866400210810273480171911230069743745887748483142370757812829851601528745081355632654458320204331596486326303412720882515156069551290873681238437258235256081405040220974503006546677317396170209910452886216456878372533181982587872544775860420433565749768467324864181195613327506285358943794061184523747571444092073698651880534102343598983567227450252802715979503297989138530219112748307803212899481834693486197458756771941445072026901690036331749441554195994319562765328666172395205123570793154034202283110096461372498997759927905865799037832277369300374602837775988014306822298977469844509626173569150153899052120735158524709465922059193493711784980820939214771130581548952471430356599195659949183232130085584363461309742898181527092529687873637150851256459009238835884560146149325762256149402717277059685417126346207409983628738092861574864495189346591392309308329891518221984064946250399913210579187228530902877232192663769752639227759553494154347384215337451708143372282463309416198467046172633166789338226703133888065177920009699760414727206020347882234161247489685215627249488941458060552062717883720181967233747816052384982035403932657571191043899156816938236079251675943062371146748259780897983119043885411349120167823581669417531686668919291808796668057872175813403716813110807295266465797471341461752832615911557675417093967240468065040775996774130317929396063983131050336281050890275575947555469940919701849232352730008389178204965901914203977866701175515003386364961480254443429100660435449648646569085012157912941357039237239772142233996807777771595951954978957277904988912871825511936435253048711262657716170657114657852188031729063516946404005421961547864360413074446554635984134078344535878779214210221506213453979465853800976434561805515126441289130379007241643342387167581623174394082118318181629915265153034604231376759746900546139949999482251797313624149395794998934022102913866974805722950356540533975527169722382312633518710030920884729784151479127867753200423686724365271777132698259813684661321546885603481866079687584079706700313889212262737988452646044472783832265247670741393090505788920041417544845463435803599640083805670561854826995295771756204975528132961452574471027139156630646548512298056774572013134888953042548273595785374406839792493011111072202029066588968773684791099015821650767486294839666430359290670897185179044388457365269114882587707329197988042311796706482939099251702269239845408017899421481510373238603564305006604182726941061487441432276926973573374135852998848527273459903188559998498202294264389780606225987313763540430444603496849606354346796721184209548436617848645809722385964040754623900723523055795286190860265344692527113262590882670403381268301800290437434186710331384938407365083783698545290107963134073084421892409745954116945780422142201558563157264222715256719165217706723990836983624182694607802393528949813411851022143872918963184395303190234970004573770276718749159953283122302999515336029398411882194801191771972149638655797356103194937027699538342502931435145724786872151806979237418939215878264935448761368994548181210371098084714222863905222980788030356239913686267717555343134932815260199095806604394070495158830438810056902175818640739335474217367255622788872880315421659627209198836586938476577419079808845116521407368105092064179322418071303093004616566019898916855077300185233173825615306336953312096540355630433991832482185559299321222505018291585764910450677684557614276587420406465208952101646200253102355917606865439510618703711183173049527806028937142878524376670549253524348086504382611025068733293413513229972624792410478130629723722010677432991357705465986085333726829913869684385484551258176607715099069955710730387660172197339516289501068086118529075981889072587966645014486599707399110674996293916371298823867519638182438810727135204198182485295307697740592723383830308118587179319156367565067380992292131952537161318236224562493969254401122262655768042488293631827849943338319563349011464449622205537192697231951544589172323865587888879371058407489018124133453129017437111700757898648589634058589552549296012443732676991588659254958013559537239923978703772377136268646261774832406063402210686815304802683386640512761295038744352523769516825088865643491249196366757996694660500709122938671804073353801454862322843378796138753292350579286136841169336572974928444558156449290690273584787620578730972274724957088208008423239226126182276372395945858836876259307839031001048174765923843991009785554355218555035909881337221747395197246517832154631107132598084885375480707435190876373148802353780148246008671563522538887211828709589216847024699697145087220922911903960478008069366112786230115386073674545106984790889484528737057113388297102745548773588310072509690665631398319630316402736748113185480090618305435638442290693933553110448604945731716048652284326453165517089747809279787780085662688862371077407670528964494615421962900700397598554860167649895996805516422337069055010516865873823952791678271005028698193899050479682794053889449248715550446712823667157206002861242850986418652340966798690518782494260920188701825520334965334806788951387805969752251229998601017050631815937954867703413121757082110773372798361488048626155203096455225629049011128123518325637300976586443973088151096791694689805559754681269921303043932331177354667721839626634637873720789999174698258692037144173801233548361069895009799362094762873165143787534171266781842633075691250826809919177056835349567653067547184233944926999247765385342443307564689777309886186422051897959074567797654203266264808509737498474147880718971906266197430240372694779576922364349423177129289277443893819287578896335587789535065856235194071546647010871460144430781733688226624431177541165583950538153258796654041363478261845316157591061683170193574502346680356046965888447437087084169798783478563759714621476304244936593474467902916490733992983142683938635271092854016187863892122130544704773584226918961790182800200458738445357164875585714073750301454090263738302889896767090884572035854586743268906321235994912776903871851041649382321864034516935324684408702041112812531074699812384154577535799963810816283421635504680168266917877322138880217055756115823758744186434135823242311604093460415029915310757498326678205930769052605695602948325193073086415031804493959008293244036944052005083086748577737056586183346808574066916884937554362370803889947801154371161749756172524364877847854637351350983365583129164953525917594060234220642646661684711243594176983441623671948944952249042128279773285863974495055772020991279528116927553100601767807828274567239503091904134641266712420024554150545465598173446148323081894251045404998837722090318205128040437393129373714265744864471454902282779417609936417840900002740008192038252482923734312862568530585829678007202583340729023669158993614393484216718703638541819119009232687297223636358378096672518391441695500891689868347765432788101112942812388323224764031558920223713494895130588487716617547831632968071854462062210243376960066203512180846023547477542275409351988108016016436124648691364692694268071784572563322621208959876462269064157798262310496850207471759590309490091513430094269451343970741066196729358712891039028905622855729993188378080079776853451069411582506135172104376926631970607360507893854804297434094033353562382282600721154095356163729294587235089734395710348715250785337295843337509085872088985228108661523146331823709090147205496474092373283996429655540837999676468947723562121071016531136624321136079506828755587316875773194338549110575512679700406794160472792585650648527859942025172824390555963592950779745816446261386756210889392597272554211786694894911028498174918583665483132969378891005469090922678278047374752279782536515508904921339107302576363353504313581268009077477273518816915038450341950817202564206869886668603285464155769886738972961315269522938594208149109914892918224081800279087056175523185380395870838605081036150255622225700536164229139284629629228784351402497477754455188845019312502574917511285283291252440380194454790814243568164203836853744345470564853511691794754751401550887822009062389498799442042060171191925669118602787880671098369869693352494773214274724688600401591085872711888974631778421670000273568489308845029042680390398487269148676044422663764023831452529425704173599977627171345946775949490481794924318297943051975627512192253095631920608300643744336665001434522094284967320417775401097173316117212766166146729414760885674357257867951419332452063821134336825012596046552750197264876324840583137173408827220324551978733331084080077928233411826613632485577819699895636943999238351944650769464564526767399945631642970206864480758157913914023821116736406809114843299755921875024277119074694936916936543956326255125172454693682812955103356562800024754155684297169708761376521554993811358007854077730974132904735079648562883143405846280416850898186112982255778154379483062843455927698073938269598401809794924145221358305495079341217264868969858026303709327632659319147254746297034797550039828503615742722262065448019637225896169619397359989994983065484209323395053363127166407934594553657451443918143513098628927321580349883043495159295979793596137145903003444838305492649278826821917109146031235288137611080652567786088663441213765800675304737203168375571452968429145257049502650101017950853528552904283304630127580781565104983607845630670274780192118650284931303987508317349867823163211355927587232517097180582969909658267264046630432275226642115189295776965156321906740086338221847921678804245632675573708096087683529095600901675280886619565664888886502705113877309213157895024636034031575299160791543118018577636864552198994515208346787405285429669438318168949132827673414332997022472635079160381686891389033795026158100592439818305988508059324577929308020091718899685263026030813480793924890687979103938193177672498495686155676438414000489709495173562279925518446381604081725387080941531964588155968834290648185876707639635977474596143556416321128486233243906367956143905368905586573349323253829032826341701765147501572805403101061961993121580642443309196316448577205691375880314686475322374869210832885393176268411971800410555285328808317279957269637870355542470812225197888872020243532084937116158799068297785784830691512519230689486445618268107576603546640741103696624799278918998749573040792318405833857225471131042045902957572329406281492828343484045102739774477643249681501592198511758203996991798062926156090294113215212347422751341570575158435468013741149360275341252465705203790572046268598085605978396260813030685443835518383559355657687802052946521117667574441760663176137388399843796211397197615686172313519242805749400153149575815564148789332501717736388654173811480785150609903189758351386666774004687491939135492718736472687212792624055496954576912612640131517799208243210696782267725698993961565874441115432393329343325550722917263147192631662012612436083940349221801430575897057257606430302121441181513757885308240888193829860395254782748393679614738181136478077872814086523329190781802358880565699285035331915380360314610184994190448926180354361989693594407538454310058631170976420609679368587240176527713418789257246057508400893349478564001648522504217441684920757325934087788270196150344973149878056389077113756201130119791091948358847491028077950779751047054501253097305774101199757319764428523598271885814598636157308017235323373739201069604483416893003594963610750814865231107036380986523290106783195777084648862099953711029167234356173278561507222415409210407532175886820447258508271589340653972836838204920292288797097176262701340531644027580768559283356920013493196757947027200382890987214505824895798805975518205751693626425142333058387321902842549532780237924751537661861836757358233858940882806835102327609838116175547787675788664275131701500235063792667786815787216562390796806007973280176334189169727677371921563320019889539359682901698705187908434587821788509813342653950578146670657008229229722524621904108498453602798368771204768913232574222734013182640485629100866060041864836744283469752076954583924107599778409442539733226610255840809848806734644655941945414405254554837389872652338174675409334203513856389867575201716521165804640333801136004971740974348526231109381996644998879027721587795764826457385780304284940698556009646552397725569290167496722011554627319758291131448125194443075704691768387920172007086164147587551282927369234274577173798409587779150654328926085723706385997987468380195393334508064989331984324684185747373393266914162547054876837383116212731343404989632821117170771362482543943309311810341670195269106824026052313059600172823062433306709675540845340025988620765437278979415624925799146447454140246854581452237772702677437369294778091088012591045433623452700528651483222445466887481364130711411828803109603377730485220795252708241046968127053889703529787344065246857209377498153143154866440334221794084629550783880562608420790547643378481633216358995085689574536957156222705931277105453711780696744180336332987528610412184154971484823763269242177934717847539346441502743954568879097090809848714427267148287511905824434893617514115400498975494342158318537088719747296172761094473876287987925693834696093627168778105538163864916811870106993164276842107899925462234109002127939819559648880678633542694166142662321377660683989093686750747803507776030105428721594114842841763320399535894811440079887947383111299386997293040408277646449060434941809094505771097858662663746588755776049539449312823477072429741990689005450647058899263899002215636062732491064849347762367128654905129260864680687757216913252777599903017075977986729196538927577623553420179509890518989974526762734761762823336803122623063374696516680816336821212114909908076477612017780130128734419811171238842529987907467563500636030818249281848902421489606248869225973361973999687976156993572200928157303436554075552630429011374952165717714292679859786116239660483169745411410291640121285890392838653136826339529306607113789355719777037935404727993678125566074651688835948539642609693989006610308881673134259980102124787264264429996231723774805761401130036076312033038312819985703723231230459850310132207136074843166038676500980558972043278207527556258242288106516616847398398846435982681177538601959989640596018657560024614727542898156745294859313605977553888066208357814462682274984165445756509183423449110789518064718764534595752411944033818274950631219830828401864081923047587854301405357141133818933845347939877784730122268886295146352421979631426215462327205227107647344246296695920315710367177167697541565917441841988413158213245444477592682055462754932267330612614478367316202787091738652534063271848903135016934258359604831154464427517292295496274210732439210204743982437524344320752670308934590921281157243608050706207756200140603534771145560391232175853549188798107160750372435636184300911730213332416141456717886011226803116060743914385583067836403475803646079372412417097106854906094221076564314415475331836552068258046862056955183759946806620788767601909836062769177201300316350154245312848832191186950607160932105282494650294768912295270884619657128277045830002875922522687128377140265245306467697730183006742434304757292972876854854380818199252730675915136694555989346610666281216915186079843800208984424087932768859816608108330559113405590292967061553675688581944923611664775976559738198698196680581981019191297567161051991002423362543144808284429097772762140212899444799815959877911454608986575985499506410005694735636208768507647944726339190790633260689785575378843833649239003284253569946670087433998985933293900328780664707305714440573497783358484723281745032484411939297925899127905738112626144954046807159583111631399913534185107219975373185507215402363577456972896764771069294510624571658468149713544360896753118301381311207711922281590610931311652410036394137394459899445485163683724038379660838358045258968078211849422101220869469975748037445813492373855706831259156522945484312688716896069438508458861703648322595468185809468904199878178393534250283150894627414588244678878976343032342693712263437611412482005468198589349840693182282414197694215420245520009440909425267870039324141241988175048730402174426998774670416474954618919072078271777504390347003585557007850753051293085919489051174272075025830439861712080365651884421188179903401234477104091861109427916365126496767011230126664120521504368318339955484071117861816039930938704367580955815683701965174957224749438568791891741977948535789834915759921672256103960362968877643745087512319845110063763644770830766897447558695079874668672811216878905156249014774281835586757149269124252543108535433853539501417628694608023467798951964231791325421074224773187535474726667392962379431162289776854608339446248917757142835774230458225415113002196623008808921489034334915437853444848212463820893850610210846788314601741241968999607842909062705276926455806802471048512691088553489241266831341632304959360656410568618239979427281717940645873956109455875459653651303323007851706149828836969963074190818988441543848583193646993368322351400591480945514112718910687721143789745748200423778195433010043414029067977812572880259342417855668672436590007970928485251959362149788329059345803395180818182474216383214280863019328577340487242128683421576583950269133282637654209186328208059217350530068665283533726327717038173533200797941337883571049844807032616362651621221523269420828347229686693196665843788770030582487934451852468723523323529114981832243840088562121538779920825281406580394111764466750534248094746851297165968929897179489569841742689630862536143992020323963856083451932047059610523604102064017523301112768423279799957618841180926594954069675111535056014394540488356637362552762201131087683676079724032601720487696721871578754606939969260566687876941378296564474143259076850832346509155674254175240631323909381977086103354734628503147175248798247838574838651995686121848203091601287967938119658646691455589614046843294008401112048388267681199861789226129741497123310653958381210389191151984176194818495355034221118869798857453869403920583561706654964793295306937701362583602727456318628915893867574599744339692566585998225349133461705341419101091769510460229433992000708721113064397242276375384225431185326270693216832894052646752325668240376937866672929932028448567874567005026087215008514509796903707535700151637395895279116230704219671949859918739024685638047421368651137321077429864492124321485205042598015508333365036616154740164996041740433062142820769201146428334102004942339970888318431382227509756065715763486985745679842847751576863760691742150174519473929208299259126529543188936629663613584604047587804357694905998678027494744994099812002011555199058346685796501379208407646685606380788421676656940393184051235829103972276243484412853199107884330157361297008032087377775951032624473151723250183452258362821434631693068247968762847900584819988070221924646624954704542349166742411690322725580572849914411541635119551677852206051660278807146688365391247392117491811667296788494533673038250706786787875837309643563827206005975504182871945096326301132172320588084841793974482202959652898086424135405904682241096787596360709706375487197912215818141012382852884010935287592384543063369162176801822126791825675193607108957464382004200467639151836076849332982143662142692236583846532121389968231734984619633501697174060643273410665131370300391684334305327158308732187274683477996963934997304755289356802696501594357739068942172298090067714839031874993387855839961318907573555422639074109274855703364369677004734289025129630011039432695347390543875766270073897825822051046185368153602599248865823585092059983585000370189048797621093002722467468930541994659725321069492539782581520169747570243933801175537783391825464407823270686700615284808318631841888169155809631676127326894524676320757943818800262750942224211862241935248360612306148943622230294762212154741393661517122231111151700106459903483157593677729044692601139798480711694417815068533328735000889170690767181298595087629842540661724249972499797834839735033668552535800556499535364784984583684244571687410598178109013582274178415792545783568392547998391583161171835330809212493802059360056788138076314755575397832308691484784430679547155903134295319171079893902476020039781912843308910557647883875924705629446332172965012748243645008154506444098788296358647647123329271839561767415898550428494158859715253864517725503122694304872294197468697844701916200375413140053679361498060622639715754361640981715292199230321636380744486415337954256381112209589777850253960551933512155102458881684375544894013942208442404658094781936122837434835163869585790761370211403045441740087388223152173137298425121614567562949664126414038518028868750355471983452345850445206733133368746891133201453805646038644751096705517882587593218319810648285683274546093237373327466884645264252786604369999315291548123702550744745999137750931995897156675271348036746709629673140373112374192401766665966839330665602760081072248198389596457983083392866129217561686558551486410047999586584911740086181601516300672524739850674722562989624588235057566829574196574219143327506248265409650611535813806521851427822997701601173608363974455034744537782531693749968480776961371581762656637776664280924234286415098659115556455553568307555050264687826875736634245519306884941065899553719163210172447686413392494382607594028295808612770013852051357379188881962481093635963772043048326418131391902644989124607680436607465494680192767709900204379407032963701347507640422872257181629319333148801511106921160214154012200656430001108239019467898088589265206637524022350903479556875710431034843160366845160450884443443572716034292407060906826374175514369402233016805844964808542735449479993177574015831013108888966065722965924270242869186339297070494588306361793556113012125681924015888786961857012741876941427593117144317854811239943531695324160509197971698140099087203376283141984755791986415141941860414891126241152342863262240208434079373425767635225562186577916972000842208779348234129535460029844069444623528364926588851152088390708126908243801514390981330446138614887165053827622014324323696287778273438645926152219151958585913074341131521238002369688556645886540791817860449011189112365867633993575054620814605987090516884198363593343079532805073497182939790181368174702750109275865585629954878910818265005457733730003292102134559930239188585007721166494690861065745690558243610714241529320715964294631098897858734945424549337651520533917444560837280889465178837579660120817644515808741799332952143472303405919957270520166763759108908029263054826647603818434890295275060173120967364163930275772136831676091844016764974059407636564510631366473653789176973017483922768155007918338420705358230132131813154916960579400267671792684911060928541691366311296628341834483216436508804862501877684808242410826939866730055222441221713605855998352242611984091511325815735563830078183738571864070135908752797763303234627672102983868322283619433420243283812780624458016640984183755423287833065560546693518492448818261060352266517570931302812312364189681833344552728656973240271913777115481145246243647685102242156676390706742152420125912413327296146052027302728754410470228804459081885420627633282829397796022762332894979305824649465619217035075504952788705257674244372044283046666894143945375336840078692301056477963915144896238513424695560701667391137744849487050753055762232311258813527122578040347480001363533574651867952223596738579244089056565639004535709640084106845068011779234003766097242402474882774225100914780546652757889765786656260642574654958771350495430157515181051153537746416073037253256094635504115847494280826998885258512528134723780464920559327533895852155787692988012937270494988261063009718366271651463556574013595640020154272882958045630591914513621532174359459094504809786098751438710109586681114192761137408172488607753958286229050812482375858668101331830990841280710571886654208197639784910102475092077228418376852421032741844544309865998435419859307055928099150663507876706216166513671011225459293028703151802479986793376188084486389766351056977150407890469856109974995017628447410837053513642156497921024695162262114655356211001726768120228797703353063009556292770707917213907002054663229812969050440809732305183105035219864440598077555925375454815607650540231493644232200492820525986726263345973907535595093109335219099156602042040036016977957233499876304489111364520402491049833873419544534600416257912697336940024457505719215464922845315460775476793490888995697048664828114779823923925558623949561953655336349590599267717879241022928926721554563895545146143093997201678949766046269732348302718116206899761311412987418805738389561802961196561071563945455314510802225709647112233011233536852598908230439154716532662282166398708032023582625582955951241262118277445650508542633750656872174304613989551194219829036927843249054347953028657406002078923616502456652967874232105332018843287435072077561663885103204524463092211413567329672429005979291178254377800655256547464433715015590769232485177451638589489321791932344275907101062865477934600292435846037532509965329662924056411270794931551302413109060019464413632930322130985548806779241983239899570955157504192661937551804360194451093620543388742455116974038149242664910948550940414785494194547481291068176726816164831594320341122811583682568851075033119476511381947346365766023507137018854109426878392715459171951376777151818131609802417685288067972616403452349550855437451848906967050362882205596686565794765116996290862939189984444882165854711953440565228654991006381184196244664499840646268677814201585002095647002631169426017201744087581259457745290467346969642754035093562248828846382558582163384100279333798625337428943706084494053695148816754156442534305400054157582582598251887730544825061482982226655137010309579395323921579888112182877899307737898196219396221557664681224214752142877972975005419156617579193314243290100963134913765242344513297756083239621650618578993553001364149936078798737367650304742908932731771898858933427922606692227577981806932550056657379178410149325598172659724552629352126367851714257985996502498731390791269798258423463025815126633674887465474191629464499761163596119238822306985871883838411804607600017422982829488381456420416055388758726732404045065453700498802174795963303110224808514879145971839906586225377756428269481892037532408519884210343034238492459684261336569800820864540572305981227238971853787504359227233630041491574077853322722398572702803587279554159820776659196829103582815538507016792355406094842251377074211287074310668274174333296389950209862528179992797971125640234431060095416558169228788563107653787467214949293916629412266524211540439644132672304939881753332947055464949685192944077787683381454166743381558191243290855928035650192694687196450229485400911602457137496728043580077436127218823259915054378761582653282574410386440142419504793221059208537022761511100529107280417764762085621380601134326494682379952274252215247732949941369061800650136315281679380208895627454829103601004089228067114440058150531480862050348344340529324758717684339622909242110104595387911851384188759980443027742043682647420962492562424767224743039795930492356022706884156775443892726809770000357718640022470113722722003102633961880039921803082097240043118447400851913059662703319267881162369465016941598165561822821869365029134367838804115570878654909402057690690123698961657070263749685713618476708863507475225820126357777851400434315333091020166112522329042516719564685191619162895217504148427112656618808574194380310099895624375331665724127833493215224632978774537769252354423191004399430859474004961238046712660933749233875318449667045791732829633566789299581294180398127162817448636176682513702060451576127908651754848604315638946073159923587264718320446963816751513044425165832704293174768713760111684492848462617054865532351555013292217135479214329120387014950090971685168708913128487676294407222688286584724697028375896918262219348856456582929791834867275119772110369518876047673265646306090628247694141655666052192443120514792804318151340385662978298307299027686745272152550766623633488108672668759052365896931566016789270218439206090636747185769883622714313637773669985457258217271481757104352958833851777898337969478398142160371646340914590787898426433017316587441021256675269540199456185124052637714996046219868742992889921917190620969746047036923253766137832026836161513357754413862456478178163027619925804545502396901289059721612880972467803004547695577197038036747101800070884250311743068975801773413603756584423120294905239317371486375718449598008641105238031334889880889300729438337944354513787059501132046438803502091709132839397953223652258972273425087525595081936495789073244822378091868763321061054406446794571474151062235712385503567864300402955100498572011075963541579719635759945809260149089370993208189773110202900708575575013029583813132328258925152975774126156756659602336795898794535708988156634214147979391239713927353806716950014455641312547793189721028704102600395925167636672141776120667183079267328702550127490408104640451791355528509309131835614967977937006577959108131888471476095055597026816741026532898379520357115263124808659586104184464626070680145814304550759516786256558918107106754445244594787679208193158189936882265448798607509957863981586682401646550893008349639671658160777742062447679993020679609352558988031508982506961466971650592161194558674022687451967600176820819737233198161611432148630257203583843587315992291514485859482139906514336903252320985630418657494540269909869509849191677237262047727188801981272472225524913953409419215031728809008467946859620638813879452813397645649224591875851468568004249138693289347701334743663757526556137969963808046559211809395830333590926204010138341307713584445874426684293407468185338808633032332615912827311763616860966322018243143941714822598761030377877897303377509380904096038434990329646965981236031008160925597408261193640830057084828742116606259132315082743519385561521342228875985586926033301177848200565285123317578485984052338837978095167248853783051490790018580964880030623154103774007278746818461286398332463872849917928436721779458204865527252325431975740175045235371475932283302817853661434557204643946345863006413089477913554675932737277242819289027544731822863147433640678710730305290325481480789310680612215054490744022648811586863119042786076609175441987682288844243326071798933372332334747043406741084598010449637995118372433303540835593998700216449063676447878436952261948983458125162005734583601873473168839712036410765815247181579757390049423952866753384967987727929082965669871779841597946770577603512374276768906431001117978544190799232747252396698651601091357437676928108388972854848617069278859432002433045808858928088031773439263940419016904705275166293723771595798400659019019342786932903471277956509872327308590014435328920620110948185565956988866325187998992588893018453509186281486354627438764859746118076855619381483473376563481140651304828914867527890736746541687191385990791254260134002065310905184645660560509372697176943749225367326962319851464750591001693535526466267912324774598236091337547031400297582709318099647033171030253331114553293204917312598895079779421741003964104089951218221820614374019780860364656536134733413192844841439763611289557635276332282338974928687181031517638462867276945924936848095416331268076112374598427275138336688464965195160603111387157452918039943292206524701824716507497350355363349201716843195190323334332034771263555762426069220744768087965732749627420579003543040858325964311220302985339664506868800556856610467320134086968567280220325257741973784054903611424945838134904832439999749155299994836901492993092956221326023449712721011035305494138982327088310036307365472835753033433511941487902145865917645349967828606204589867183773245412923654015678367424007046570924069097031767919381264806185042322109337762935125589845704486235293440606147155930939411636904134442109652109198391334720452850298386282169025912926076886664121764814363097821386859061387878977299174974227459909906712610173674362151577108252866769918996556512264485226836688719766095397045064616220333765676772503727680550749839847498778326551168894221192951339762700266124699290340367005268510799962962786771436575226361280062674765990609301718314751502142727234035301849310142474643458298668753506304594562166883161533165949527148923276915199397209172060005967340813342509215058863997398493409832440030068227821559451952421448907618851546292584891585870917833447813567175454622666980978456316819516252863595081965887343626489234577783726422980140048416324737825493438016610305675176780964260728364139383352781861816022679625886090541745011378309128621501058885381317227303336212692159520683455025159156761156337431003022597124754093609330691890162542832886712828512560793945480620770421533034182326324757355873753523278126208741136580982356332958156865704172426812944542236453737693576447494801895483221758372242588931970553865366078241953479957941423642632556937732600827943949842657320840867419067354748903772996530289252488226469530093699079836196931127724830506021600298013295845253645043613103755985860942039158583393057765761906961950195270136075396100961129020626920422131335246683007352277133562375153547981057533405483458291780758568207131020877480181954321343329768947086586024077968441839845153589947428739416774104055936293861839002607950288914555103684439141089227805786286120667919210624179106851188634072584360052977125497205650693073982382722403998573840205714439949705050427359604039396634413761871301040152241605096793501931326877159054649422370364747397171984087518246870267780782448096872842544409170981643084234707585320877752686215347561022464757802243585267818881848988361346737878232515252504766692569168795014966348992020941837269358179368239898281641504721042510529474625491318251791739671281291385006574228361811830754536707129930821039420749949477484274510334899055904398102763299644387574908809917322031208211072172163008724129127646241665438986282828651713790961705664690089623081962133067468995689359853809721206076092796240101249410156662868508694175554690122375383571593418702263032706929465353275337486506946333257498667456461107063771875018475738820047940723674932121090422071562923400410962635498442216044992256833768023085800073972097454221576753252414496655305804648258768410790123395894222177512301022785971825459723734161080017937137489107205773485924235527744035898159445967789813035289557052999188021922574255115534718156485684260592612670278931624955192737744752809064996595441180890867387766146369987565831161438046303349713085232007385043942210753308205773562387347881940356886832655191302923571142879461993571522471855134677769378817425376663021144340329697893989611467129339983722221509051238757449807495458404938119899960949796447105271286341212561081024008332040376197558106763893999672329011775465656045809806382797612323755776936617024712863617192116635616512012004104573065866879506870435606406292638830131049861811024656134979312418263192872364585883999509098260921092881785163855763158321500841825056503180866107590658925008892848068589007296705451804948380646724891664347283551329611024744696096035636859133181762914525110623387987422695854439909408934835166634556941828501624706235631723105373959298629433296162807913964549710023446065203911292775362121445185550928084540483831992015387685214675201664903648756352782730038945228146626496550225137973998900380462541061803776204702653986549648367836701423117799968962913598446160916171593163418325197734324750794959534800258527247816742495366853534687208991788147148038010887622462992868201362976545195818298352658904907201718981969976652966554767856644987753648668907326228595986772000022032636463750459099612548275172671867123108109950819102909935858649220623533800251853915181308814521299871780140910241895623980422443793116616855449585367925026511540458227699350842784400787790365551486351887189843232672713359413284796894490827772449887686232563188921161578300963682794803255868485274160092369975716515682361192605927589541809298394062114196643803538614813643923767712113604084457955116202510764668054746889211255318708660284460307283219086164565193175667762899251146837781646959321705530780095517500093906565078140486564115909892039238367050865074169736185738691142090127134019861802202463850043370869816967686673003535255243116932455727332523124483265211855497504170211669123417504091398361355273310934894517737435743591940898394503899311921177099028448114661696130432947722348827326137639066650640621856965424333533189997082348750618335329181326765622672608639731743315911892839439053376979246995807000762944280354734755986764286779944621684799903507031093241420570835109837488422025290653087718761867202640357279783726149431879731007295936363584765804265505847384011889492420732566020225083899002221510107815928718814788543289154278085417930829440435557249936988957973121840909638456436608907686929971731492367690466118136468657911816994763644323820307068696996241347411499972685771466684372658071471881707948187602198692425022148410317778449593162286743651890762018960917328666639806179701699276934271928057841966641072582236946687206021013229428626751269447689320341548094106621516524252398676553339570960958525534362421101055590202618277481522634577980875521903104480541813543221447975200157564555787084345244123018050557519614928621908552503819547762785305654987216492211459094284878653217916676904661018303740239028998597917738906899316631125622437546331671142488601352536587460338050005743444839964858414979332284875133988426510192608401686127040835533641616616034409105075663706194985310788636911358729064249522569565147758459367449841869202346348763634393665316812848266454303652722387559762870444079670975855805218303581799916296729865912617248801931200401645566214766104236740596064546291512317354331044135828909606977160188130246262193625392661455763360275198037655933271883251555398348599310172942657081334607584112581555027821738747708879683255790726795772006118512815253197438234532398686521650040069411127459888931822173788686463948617455240022969611161334469856635753126034139893801948791128847269857118932940925822258742430555957743376895401714899298175711487443391764741038633765996729633111339249731620171078536476426125263819622938450411992106677093203243057096498253774719228463122382573986597218120977375600671344923749552400126882946508505155436717234558577227641389376490749192507808976427704022671555231472947525777256042122293772079723769203353507079390065996653259606757458599386391633080730557153266049276386477936095738504818058194607957585152108634371217803074479628240102162560059261901029269452797762850926013705382099652996301268902623144303338490446698080106461992027386083938018988007945078910344442834943949019714991055310395434442051969553312419628774351768096342798700087658338123485529552749261079249327173617655157476823738394094764998131334632179693277458635151268244820862984229459736393952938034714926651916878273494291891538394655672548381127111989190029074321943258718023330563291467656501928731631717551867516074506390782673905012458870670935240093598582605370852758256111158603578163198113933687009379383872919202717010694809207291618653655854151266159953475400084755527026095038549183198023889473766919374037375841806749886127232075558468894368692446413136352291773440190749770008146070857354905867783830501339717126579968269871793620309725935175731339587179138700454426597471096037351620397938520644203411123595596590548340902864416612950394599955853313792293688363153132939778396992410663760489710914873340515746443579287488194028671465794475050158540550693038094757422872352393946981371824084481094260354100423660451426683535377483885440281358172574569704343958751875464465385293617633612814480074384397961098966556115027096731142525294643725074719113960630192169107929717081542541463468471319570698625249938150449380851556084532287854838841412371849942720685845689392069925971568067533378458552963873242623847201193174327265914966194071321686609945011945500311424217679321293280568507596090671083527973151147559574643410552146144652697466716678286988796920386850752934891873054067365365053595786018692926249889197881311144344590056743785301929173940387667679645466687407090332396882782696334154036906432853990741571950226665232967740806038515468917384574620253925704870167029948222974466289818227443727190432210760945143017705261024937524827710759429116569466945863796260969235841105795009126662174306209603849039289094503128317031077086795531321218002803991358337955981881043493204871668191662754830758299374910860112858899835110617709941837200234119609029493156550592842921927186578156044119112003898013519556950190692730428553111594182603430866275247675728083634643816830170733728760375001605914267488884349330165392174485622668441454477010020912841379734813653409429573521659789820931098719052568122066609515188734602124553702197904997576151041995191463024725650002288660921357474545311335247040267171715315416927400989495827652664407084172866186990406472781334854497256112824553650626754397915807360005690255761188003984973596204791891034107337914785885284290472320607822476718981796349240835861356732479472308445039361539204721561945430850950190257123152670837897200633897201699772091825225892339775101744155035029610401193144875615729847428424249772194561156175695846976343227266576162716157651503643006390452157163063550262774760389907957901122706970771716412757409360416435080527979653297249322750139114406049175044887608627475557218802741983420523488566874122303126695269570132930895439122178536384151029189966785503396025991222420518642455093264353110880829993045253232863380115652899923689884976584051636914938353085380701922863643278893481737348851201858447903064764125493928679831960508749303938032304323336845323232172453795602569762269748911551394569034679833674660179374019271009036043930457377111245476619370325388661450408340790015858515281572745787445094727472346486189032475782517861817858786843050044772131438478083919196444999646053956152078089549754706685839686636228092576706927977851016911264338570013468184092319962252958492891648655383500316297017429890081032877532649458827025740286856948371255713627533821534629530509335299939917153096176900991043044060010478351705505370768553186207048850865201079920355660342788832739410232176122654760178895075638252051716968459839898442486711157098806047294110378442437469989299604142107030201433423791117066286740488006199220737136309456186572156276030409501881536936721623055668567290973980026045009415109628877861005565141692856939870528492117163040507980097488765239178108217633151179612664956244293771464128637936504040575747364873492358032716384734237353554999025155815767943716939351241344316714782482454045434711486825575738843642428767088768040396281610107588851136158685623235724680717337694788808391699406793983146212430014363729461873567577553373327449965914233598564367595505136868087955246188681881958879458384038153782945090516693771135648873835150777554482256526905722743084543518658899822553392463703683192978718184183512448371436893069458247222692604034602216031311997202307969051466809136152505444560626501175105978820997491268505623315410960279460030648651138038516036665700827051199227766189157792824046200172093878588948165633132502096034394804948732661068048237877556592605607059120518531329384889626810642000129843560342263129523409734408946945563877383636255693829866523656518609605117856780623313979618418335752798540995452335599994418546716663763655476517782218548439799606049386041706066211868719178497554308990253905633360156542796715023572207355494695225254250933953405763792176221342454034720560507947200269972937125719148848512870661776557205733102361986484597653800257070858887001483250276383630176043736597147596215099135392796435340087151295518482202820876036936796825689815685177503111944470543879155184951444021840305179203572089887001448651017641200570868426232446193266702379724371481570737705298162321279093778237348223131713111462317952485913768838778165891533949992128478739523867639306776810561523842126944328021933576974121864660832727081945114073922731246901325572498879246646256822771336342241690688288805519319368211271843217039233189006058546114264149449684196354375545844827793982499584153077780026235905607180070374212275248674255615848012373019141439265676153232807511223346710756513578899512217040909697278591073192991405677907306777959445433727159836466240314322180097304591171624292962942743102714062391162689823585447825939507610992809388624101744968747682535898568331802797413503201168257396098012934020154648217926228930951380607759130521147349413158938913749028587653376752796112482952957168368202076004685555083959302439355327397482056571123618764548104381502616506461346273834277317868388028216848088263226475920077362871820805625443423433649463707392203079432544963808244550212703770948028343545934056971407651436851270554307410157639148101405780216648681780151146705318070119410159051928347876282044126607679498262417427740051154569705162051263248958046164855795488620333748776732401598897891153163052845882226360166031626517102710571539947945225133807771606351295277634365710338764878329793753930171483166744395436735003682540806189372426696799033475262271773769371788852187649615640591795001932975101966410554949870396431472516213701835717099617738517775645782353938758763639430568034845162279943240286363096421149494930069333553223125085902596429568856262612710370651293468663406742678983274624010248457212247673338951829595229859623959155589638037925435381363607657021534166165247582094749447409375485794803442474637803003439463466945554022144193631243244556601488424358632234681244776554940135350290318476268839935552718815182341319717631148552318752136300826311680208653092988384981506486281867011182823400840196795852005932079416175413304356611508576490515780789239002977323139178142460029308974504312957229295892008905001910393447975406573548373906408311860094072905393555563769918083801055456808625920636559884664922117362942510083099816061682178492842757585091227722547008828492401803398530059629560289609737490926218497649702927838423984874564723804119800589585653428431590310954491126299094242398270957964818599479036517461066919051324618026025221058263274038462966267166228107342858468642548009182073272533307204165606681397626178881998813947474888835784134156016502532165695580645637796152687367300851906326634450953634579649752612029336923835973302007024215588800455270163356416847206360476706065295859339124111834486821991665123225009745766776452000849854607276321763234153865960678751855173356696046523709744736647881209351540991915820404051465334885842441010938737697287810045321830068326012634594797554172710403395891584586416266709213293680078761741181775894229326191051253913458281260705642916042685103935345701958642604931800749991167825452899745135239788923358988593459504666629700384551364636779041375606246840239641547851076460779690248036916570614033472966060649100103060183683733157040025231360169438358682957992291625823273269494670257572348093690474430556240901600937268941430060148587514947614519669934603899766893363075651259074643804028721340041371923322782353847300802228629476730787533903404532270630986066378397966162077139009506510464945652676724872162073054348325293062233091969968818249305639845037038613919248828914705237310383901602321661619561093925349189843178558369696115968338764323355403871183380594690444734977075048153800407723526196630226904960747880146510011241968740517024975246351441974920516526069529537757833073287913629916713992901215443453386345019380048168924237330381254261071694959179765589616230895515478510361209565848416946756777065424396474032590393461487449492502465357748050487021760982531285874387307913176188275363355829082096074427252782539576945630288813705604422367122254926387863398524364281463653532154087373019279088409945453461237577436303322273986525742734320274246211794580413298432426784629474948731523153670685489229966193737344088719586825187158234168654683924552591123153128273349964648169744981592823218805691593223593768818349413544619165807622405277011460438196643685819822234250579659984051136242751345832110189764172800680978656563864324683731809894453749270266167528397999722323735003962964627425468801652118770736767026714490091227666612098981428309018502250244308852695575184469253549800242891345613679474378675435877297563789630704036282590192782317120145383712426851301986699703996259903606093525069995641169327577113526150563443766331872678704883287437446941686293918425736876073387829808025175600041924266832597535285693511232477165420335785007720911475428729313085722738407982376634398734355819488008416601916173526344507455467236012643835191966692793261897810262503516256819804940729340320525361731302166417761566978134043408861539719712905778178152725837960285441052714200083784480378680092373291501725518341276295368096066006290910436567100365557511183380160027366921749260646584289251258820334894848096321520093957037396969664287849225737593609389472156008706880510808657312144308252729635666403115314048589751031212992621781808351488481425006255467632407278636501729475286985557392390480961811119940616744030516911394778656849717400768235722817360263233483930836695605469554629734647721564480962732001777153617912256677248223157067228539821921025718846301726182733936922552016650243826621077734162167934062904969801971844518438295014586981953644863307129090304143442519144223907751309650889590044093233172188086767095559748541564650806433888611125070222490123761091631530549079520776970162678746156161109852675499956300640188068908419154988522083783340387813410527508694686202484242141257153111996005465969024346053041277721658413631761467721456838704602536898474372433201394985357812712121404356934658712918677893688303525786418029312203238173314742769521772024644389703545709481197548147260483859830072388593473975591780892882600945756843628685880049519586365204626347907504339808390677133028231776735809893763527374072860011461881877309400614154169221511877372811718229821365190608837927224790401204360613358679600160062141750886621607784824826370230238932581420634013168541262051906989719775700108477307092083436181582316190034738596136993988316447655998781902379008926144544896840175208507746542201208119994577581030919385290107425463873576305309898088862265333160438799539452042467637266540182429957020298539413410389889531113949454567133855878375476802381794009830456577748343173168207070066015282730874029495039749368198658445814875435927822629397625746892530215094744203492885096617384928089703629242645301827779927775475287459156708101421603913265136572810517180999238675553009418759156848687355211808802198398190569656004614185689435666158379200678541339732372219771296634090340965053740605567047984086584192951637240484633531187993841605978471228496816593587333400440161817500138478695460123600565055435678476881441498226731061017905514984734735213435618953296412230159251667557126939488270604766768966962949134012805422151594182501912982674792132195161833282337390288750177633804054620461492680778757386461600399628362657201229096161542079426292666209518746550561681010256002043937236496753851286109448027829875952567998252415722455867283648630786112407868916129419450161823109040757551734388744264676629008102034337398974956568271947980606605532516534545025238712107895780509003333057597206420583228199149801461912129846624757091363757575999850867599070800119838146839832865578630082336898267852641332006892000015831942050455511439605033121751137271902630658965244733805370415865089911491804200067509250854545686256647305142724887801613782877700438671296322345758574946689838826434044365522873745348473522883817224755923701692126054763419801149381325538379427285486204694614810337362821088298394532763240681888301039954263215735503793961616767242785823994785016347252786316295081510292109557386392627302745063356728319611290254678249888390677242398957930371696694481668563207249664149764631958634956236466888889022613801894564351420356381716522586802219038711364670608818818779149331131791759683314006814386509818939700095763462358118279278495288688466932527924941473145287829759316231814112316204178727621201462254562312699505670459889453003316206487767218536800528827461658234687848663825166009754469589611670446819996616267294352852333761344659492303761891638397079707545290278428313947220363363680432316439123108813319335739395245232086674512533755417765966305917978238522002611707061566764919322461574022173958570166512678084181686453421410685740277134916237484317744109482272710820540455280778721317222073208531186661676144272940685398063957591628920145147612618403808695388159257110868719114788498957556386195917291488761161167733969290907086584446048292181640091137399019158986507686103664902567824345386555299843062353009748410580787121365566074270033389837442438933437703189171013608132593251912803874136773946993457215513684723224868617200365829271465133744549486285380577530521622775222354041678313639973346603719601766727617861833945308280555748058928432885680392081931034730242088394014263106835625416090123934284492997773006801865677976621309102184018162750783364521887048456711034550848721652705219297232843860437144395638862066436679395228567970784526610301908672971090027861087884731052910688907925839883871952308009678701898137363365739986161236355758447882537433824938695713284386581318015407528139072594685590508865865792680661426760664289361753381737953123041485736895129327418824526103649550912897546365430382678504350956091917965569940310728288800026541979738009729011677673352920558809490963164650554655947916810671089941023922797508195371639035637993311326696633988107903152834482080690510349420413115075937873521763303370302247901671151347587247332400307171095555687388814421829850165907704020221355685819506028181174899302415612344183691178731494813969403277473746174769548186612425818532397202469559557942640192191326832527313549711992526287422345559709146599748945565573103049954567221428638542869691330957770231676143614178901289667499581246669850922543578385044267920313961957520759774071493984369596765323620435953440267353655932035490592179951287925758533836199301373896612478306720780502361101216398033866738443852326570220208745777086256888344138921257963791787650014273363271934877316399877320626520182132442125632252189876311374718403770445368101640138042361479288010897455863107504838962290035412331297925363288104409661590244510161177680984404457807260803286230151097109366265380564129652289616773401122582191907204410103762789099140684971777774788129214644276269597040778873652523141924017417948509261425387212742128862984880142788813974243911033181130231782309780383762073446640538404964554642964560419866814630941767525208253688258007519023552486910909619869543066777796689247388368040943261962432625813364053747618699507764509043564817031388550818013639083268232847065565456856269748585367492807413521981943833951675600149837706192035079745175628173464385613650324284320509766998926046311543823752739442876256739013336185605879661647987188837710894337966273513015223879854565278488042484706889502017329514138332610443708128962181459472613759089986119169975982625027889675167544936547150226464792334953548143405036844585729796241608597867338603735288302357130667975271345144282895329177140578419685693347410176440051048551798300559777377401030931669799388757669165585818398238968227490280372171347355905618813912413868143187775635458140583187513321497670161825954173741249636122575153658751182838438438124922557246431928011684334513526133377179165467476795897296311438895074916719001651720345271117882733580316363099974054933871605254577728202679824424710882858830382316961994282953132604000896451033976858544132278433564039982164579094714983745100977057747825671905303961281206768695039637268124273412914665934844039224895726831564326265045330395008988345488301789083695601701427306173263463976627872511029319517843748933537796215336504290418896486949509899422621264692468900914231916872858221297561190423494545457148135298338144230167251837590760187980804852233434333201976574794457714094831469381546573336973255199140088186351254674382545674459641817707577177026078501086220602297418106829007741817058771572086401550048717766065261085197080649474986842121834575609119975208633180670286710014252099440999805155762014739178576897633394112283791124534201150197163056972235044409268236056515575595357035795269734216935454736056750699424912483489807338556776319608531083332226825515215540338420012336771157135061412326893171134784459089015563230194097573294992738408084151562055446016379143781196431441304484832194547666925657096961695805241507112015684114769734412844976702858549534438251588223686367944408093381044529279867969206161464689644299226311886701101811848192906980495143734678915155917635354647432397995321118959316965181915379294952697173257733868543598329061233913721770307041451928621852641199786069197623728027083476439901120975365678991195237543472813268371398119321418914956637923023395896217780837569969766730262030923414754669059322754307598659315096575735675915755355971624926501427399858308175950822646091736954440196277234605462058819486675271157387424987830751186893853129071949908358102871322349127347497521662655498095504445715654626877192744390988081187753674041994431254259748325758155220380595172667579620078951420215163755164406641178288433596697508439105595261240526358493925029004851386623325615286680143484023276019381550606902054536536090997760700320414090016004855839413446758126857602290080644148436618545565140097527983122708374339825478130235628603760960400179943519790415090739410920777979114584145498598811479373566364498668159944936188440013723904019497315902668889579327331122824094711529130335265575325633639191774267527950576522038116777014437373765359678913808935501757302953407728460336097191355232698627315641383752551076633946587653237784531100308041301395726836060589435132451171581829954070166918204052540307323196666841101778250738279772736606447122861051499292570182056811863360959495465855612829382653562678326392212577100774507934617428040064203633700439207934791839007589408405841506663675272692259715836203942897975718945865488700475481994662822027233926701780447328263335792824170134028613844724589239940157544048514029772340492905166246437114927031285087932736416131178345570678501088343315551711904779796368956847962072280129390356870082798431315153771557837462702865325360651563153391461549702228948968067107064992897358983404765008369762053767370953191910868629009923071106318125710309417372054820050221918662312984004513423752913590859467475656246267280169817971109759537504656245988064620974739747836791158950440624860669371270986972981840731320907021452685080661002625502704039660966405486802121313005779233076695681587445000311971136990514397379886766524442991539886065504924991756252021887378713875870265753576738703869373101433559580461016938726733344878744080064960141724823884566087902882914033313520994591311169909814890647502387580551890335507328446766416164692415921383551377883721747734575382848411841097493590794749993805792907545878395061056541159421985703670230440162633821260561257768930084875399272598730263039288971601355643606397443657596269341749653356628289085415389686828670516496667204787638342121155613550638006452073437264176372184017250898317658633867491747259089809793619778017931586835677925397017532515573084154754031348161795662550258324835500798929030776101572035335662746105910282244341198505808372546065002160132443108578639232135107598130676778127664043706899571622568746716284945054344738301721153398563798764799684086300002726866440329824091909561187782048681290586148358361797070390640915232727289471644015737957922270194026642862120503923844970490301008000981944902889048814389169964725833812328609947229293668361639874847866363250727040423071154027871630935754442155306097826145453063061645664648432628518901151869459642153208005334312163262452138728223654981778102544496218495695760680224229643779213160407329353600080985987288942651095019877522433422112368612067897629850105929674599890363629160924057394831146811402267086142689112427919924240250639320567732134606125744287619141807222237970603412685077711097586796210070246378018343496146954407977716067794621739263015528805179243816678188267667366369701741991446918449403562308036238876932544762127145986112797296328136971526426128314152071459625186642533780893128029615927985715871132890186504823083119584280859190185199632146152895841748883348388573017624492066381625424488486143471119916716628624192887405601843814594170243807003787092919244457071444583709113425422140942424867447457220587390646813366478705293917465883439451131228797839951444235973452711944917575920635501867573543619637656753308322751583313576235190263424678540582258913773616693787830755932106605891435061141745164895547107587335189999557685689261311674767596989427196147178073527646693958059736668608933597443347098096176416934244081575076561843785451943664630686103266791782124851633928588541342123657086113196812253393763718721465270522092691846895247381051397994902745955071876477788443871950353219644491127523210762629184549315098038765578018124285232955194632361887944451945530459809801029434012679192436556120036826289848903554820539544374350581735374329181034879670263757425531908858659937576553527744888958566464257179882490863268016501058404772423524770494278807276465089359291193904692216729425138901008505121527881073933181648449476886456174620870481298507596454465706836679021909775005754943701466684138119564262251676654661478801591021688638155097220056489057476294241730856876951283017328645143520288155536655607495268028746178838765014938037936082294667000609790547602235016475523494958013499645613309576918607138883630343379506000603311737742620299016552230601308263680997851376263494787546246996734618333458441282376146581854666171154298521080499172886882880274620792559639433578248377657633071998486948217552271068418342180873184113970276629098076738255092548660213386945414391250846236127195877729556439561198208514798828704791652507221109552051157048560588307268410478317425409308265859460132006213274701681463654505007153682468016422874810877200199613366213969807640416779433615667668974559757224960526871392067299788616885562974076479052567743350413341700154044769501735501925626480043695762990240287749078478573546393983151047852660277967284254237944732605078614396915339051520312262898498697775970634495151298907528375245232766610547483749004636576197556620737870979546416771189240823023801203848979543371698091572988952587088842395745570264977106218643016097223805056699131998810937113462177818502563597174417635973163044588763794951512638522951267596188594672984133680560903866570641425482385647648156315348081601946667481211171025000591123109227482682603751512856202078891376277019364312098485651888047569861517485676359995255069321257828034990203926490164784240219968157706394729386754883131512420404226301610143523652473515708969134496020855877011063371690570347017562356789840822237566798509205927831386868951932164274062338473533424906069883694783514969151576166370349924385082425657913927611023869227710448681933626004809388645759854243477840104752603533914844837560620918732239627955408704242259823369923173221966110893068174123757478741044879850352826310772027087023266455568657119682229025403348509953917072988586486591727200127436519811219648217981523647390154054854036103078987265011255719097555120360777948650604756976956797248787612499986470690598396859984445571006951231007219070388191192382380630988158591472640515069395234618304904069419759579200766589151482556715534644321721782985042816999834246695513899031050314690518934142364781217987797433790159195616160526169329272444903470310582853911830893742480397545293986453799056929430180217302521758894354481040173971334013690474103073658278898191412154025525370214068041861619648383572324718356903897294657553736036775606448393266831898461196583444573004975101126152718634091700011163455449845161904143517248760751247404772054890631701686093352407384988118263806153392910844364106154192574699941956434795950601195752011084158179256291457676793405565349279409005184026549291464893557909666337174305288626678608342840188105017236781014653336285088305028234005193741875998726837000805020078884678577076841677146420742908701505956903150341921412265727172784595200195014968040453424292477020556063231518652606441913031769131116301320762379825320887620486349039911555735531580068211367662739677352111981397097141187787258510566524764682826854600352901955674776812712600430958385017405747044641246831527478500684579493350891955238511580244366518953181736016321462126865510040347557168952825023343034838453855689182483612652577464506290266255434656189186715695648378702766143940805178993815393350611096757065107875802058242464604487258955629197585771016084060982586539972339158458300065320535430042224368786326774362547737755643063596048094561455790262850540431878432355964053386032531010057919775863894447338973832684632591888349735783485361504553578143889202450519960365208853264662264161079369898530895125117725838789198512623816969637478572446955002756979324887336780404454099702959130123115703410700779294508423306905971090971334763661912930474139349704179786075722185673793559051662399233694854033750689146934937814581474205839775283126547567604379839569665279141793532813502541304533708771729290779706233935889855693496787843221738613498502014007264503830587943367937107080523606203336350933215296978083866399903616227294779733475790610469393599725316516771472563925875186662836263629143115142688808357434510452702577761695249136707768256647370788563627293488762533361194598033925109501435651652531078956655845656006284630665124726187533085529309350964510006328098729343573362199115369705038118916684184790151989952094733647321222248954748334587245289836149191445675332199702518210478528783069116343542176063300295453723711558977437073995919903046876001447225948958624492424749180835062500053093227942197470247131028466053489732161855145155408374764315137068328321440658284787981469315664813054907709782107640321395168412820081435300374915004099763659778762202277471453228681545545290140918334054686226513756552142282174864788555748066296230263088762096263169699844544251877129707129519037199077788308517941080827057126125673354961513970932652594495252516785886257764110008997790104702205492228652764712881483602523648690903873488630761441397055543553199794113752132214443739147682444240496659468064189420605086070986325663562752809217186692510094062677137020711161383022316478537879682611841449172087325378785149963671633872112034946298758967916092616222919187913894557315053026274533033420838904275656343846035592865588735672391136739610100143418359277528095329682252327431152465932294435013002642308258479662179438697255150121026072581552222818635133226880963034426597531563607393572535172879934092077536996093838351556348666825026014902245896628444419537774582637653497872096843819575192606534058667185472778530203052053181746632129970572469338715007339595827915309406720762977025989406344903398995518306193247167693688505640202826156692568697864261839959177724994108008799295117084612922218374732556273902617824574583927711162276008171589587685010796745595484828579726308194990952417962404905966078012166002708088740511747183195602512834430494060258134766540631755750519790760007167027227903705215458662492311483452126539612511753524934160108908951435358199537104550537353552784664872191130073770125250664766621929640299387328867716829568896176721474784611665844785209193509204592392310522891998712806980871390601149082113348695508011135648319494705223346235625236303295170949304871262542572947464652287151676642782165567718286167201843280326993992290899447549009488457438400814493354465259509595562805683275685381725954545782137808638800410064334973805344685268409586868438082723281392537380575543664980051877803160295488651304331003007536225490189702358944789894798542692219470641505984330917748183547455717903745554663337624013807808028875961604100507286252223087665459938149343328536130357320274646652034654718034906177420601921198087777672888101230718109616062010311935113662112539829898616208035941104114578202633660594945474386083696531092376640681007050434969039797808344533805587976135565625391152769730290938140061362830923911564496620212901257000646980722307953761110788338417684324719209271300941807375487275956798018179884627561676359520857909046197126949476586330926679636463044736017286232323084043017631259805065614998497854874786153670211698242104394182922635961829904126716529177317867560018587273972461095723442996828518724478450190103102898601584379437144106391400861725790629609462961638200767019616856990740095389118581812472029145106263260462167784420885113778982214738332091961516505127623527214763125097255325485452034187235673319029124842402488362709822383439260820537315728074127817696639395688617986114456023349167282290385517176201449922697382810459247059645801067714007585176918130760143468614425043710533750892675254287656477704577496902597322864451724244942192978984648998799729024007899262735591587781481802865821005324920158045466856692638846586226466920502812872292018678851443209232680767718783338222022882148999046558769374498991666868938847646461857199596574256994755452999669460858826888968934241464873804838497501251875704732651434949774321288267981002445941665150952164427471272395003904204194871219965386286383395863725592281020634427491579472965417414296138703856203235319465567045550491605905868402558529729177641371738822483023053044940820671263722902881746137281221929814453074456582521980684054884267953127886911535288990257174806269033650921734932286561475256362841474770462673077606948648295336829275654641098452199247654854144116429519006287611542056202988884031131591378497628177036349314139650510403032481555912396136689964597583525370766843603388100061187794753379176143828164678163686449254486978351171183858461818963478430929860237632654822632129753867333269859448559775901758630081743418634395410378740332516308452724825233460886965048265336265352215077243997817140927977434125816665654240390502280513355162697797206728451920574547545903458442594360309657939682092927033271120861348995441767164730453164058595594088817408327323975169315151979482022917583748359035898103714549335080002521873780327852753445677842234107913625977333098865196165443211161112254522825280587695707917574145074356366945617401123252087049070534678349722620966937138002581575583175167211318989382123556418487218484760617344982522585076366358133458458102926280268214762715490867756023337189405295638903910035364104734345388154997798169099969608398569557907578486090580630273483700543337418329468897196440898313870401303415661728183637518902490761567787597897569957799379053493283729593085773674824026147498308207784898883624142301430981055574533235623518389605487229599013400957595996633699753635699365154783738127024764032771248307899831327311004839995219552490171178201852033805407803153568961560691221576386284033273205469588325690539175582845642320677132762897123706176400610315590804223040627356899857390653069331229855202533560736911111544643377160353139784429246601226340767224828336325447986055747717197554917658478834329727977713690977099048878357044964992533043597991252637564497254297485597880129122471958124248794910203083970278637452271712775663049440937414543384857323065352808663608735918282618909624204998047089178089347497379129470943399396074423316920053021628894618533674964334605066367277231643191432502893257232559884096796793432575155300492481825428088431619179887314014069672655183675436229062077195399881199534363091963291244646227335691870421503658676820922440834342583268410222491069696250632021364033901338735068175146097623312960645377302224840337522159219555876465685348324604275030733023056178023635537384748417558512152299446827332439797221336853126927530376002997792562919728831448587510347138870106816275473554880521995677661977006811701849446310975846174919600295049959243584415931147772963348102401970730507585795021791913330149297817877268575417930877576360059136395710874684590294661545113374952653424371943261311181930914778227239824229494634615977080054269013148497103489317613794432256028753657405303603647039799515802942160204845782050685719151597182083291805574473584037014521316569131247484760460989658760879006293573521126895752633513074839534947851531008872894727818339171017999593991341231726487708981750944741387053429388967683378806325825098068254213053685339691697776999249292432477851890769510419405276745468073102927298411172658185959508478699457356267678348597554771870023533695622886786066772389921163749525953517066719905920985501058493885844014032510623871761239821244558709774725183282006681307256938349012341770337102535694350209496430396389630435572386989596039464970514202452424342897214712330380201189108540993261904204753213395377053379787870206616267248585770327755053373174965915109349710545034987653605750375319053295596083327195334199065792596723267829920511148386980743025312210867233406516933980085313043244641794001663320995425931450947031621353448738569274753044349387773273636994092582138759028380973095674582487863194915861757601925124221454781265818800732538713557594284028091429273210028631650488928863839318637890282443773604745479510281586599638105233338497259394336117303927142357065757785081839551926103740720489929741927361111704331356931368615855059760328796156909926686241916707706007620457382412014271865834232248800790319651533585789452622004990561597927274845726714945210323812423044576317532384553178457034256138624222504704432948111890545842626102449378538567690687964463916297414675146151713858744291966607420207154121652738833553062644368915362336345813862394954156713006352600613943610787691396308540986216914534608718177622477921563348852309683533621174578459501766286548579406634395609797957020807172979167495581799108606599858034412060108721791828453353109019025054433100966297186773906571314457338416949073901024842365534293111443354972407418690919622561322625454693177437105027617022405034535108939323852690191805887294254798920457738288165434242868661711534399252472326875741980056431990767610854293868635477741833756520770700519345504124528268548499805476123346815916262833063585873312513882701944099018094440419301319338373383470610560159970291187423687345067909513159080500163800151850226453581160887151941190356299780609629885150018319416279929375068807959971958446304696347366609178915931997737508895251638936946095308131492119768795742914042479890492650194551214634241418015350348973714072845074081313867846652965240325349119929484863493140218288169566413576731770699898307793310429067084781043978146660577276159461259446970324964758259590230734671207812262546542287911704387296621880906467067360858608565113953442517113287534609586153824277305847167794760993548890768300143998113536639871508596565035813124563021891799031711643005433094391966884184939796770773981524552244137289804206963962125599881127978391767389376427852204386016190593816188461938536789429366896544440038457322951513512226174257382121123666947681168184245735151535962859931108990405295334450136368965789476409749999740068751468179783482021453372321960750959595642925342789798505243907108898219060171506349082997765309730872130698525531231860643164335135763853365704915994649413808090066203630527726216030186624379930491380291073324433145892023518178817110910159863402355931476601206176992119939197815370159220413870991384754448355871780281719844892662361473924179992185114196638317740907620074730809672449873877138237397405076393228887197021482945335852591540883124035774348368263075138845292423223447036257332605702260139060285130987673096929580826753944510589339298852665080683655370948240328996176857213668905183901392665959564726536099892976834116243387580721971961827694463679873998410063643278966606284373701180202842884959858128591484945191163931572135822408121393219803903256720013483987679641436493990062478557585617748589677809132372116424589235144006514832863796909170869142215954371538563137274969080052974394192320590932430904167668867529236154463048460707277905814257229102239542679846180698210040015333370354819124518745970379311451462472592584216129081023388074446379963648278022194470784147759314485817300055515710453712035537202057792630641590278508313185205507399127756849572956402330294008043422386979607345800177476455898342742838549172136311986980597501887412242299889822979908148100586322687380682477796974391699375401828983806518691710562180443657614174976955403341833905772219579606753482082995881340971893877847264089412677453739869407787944569157162203051433910315390191505980276759782070208374169881340855357391699373132365892387947156464538068167724959755976752246027307478151912611863412293758645777227105812166968439441417213634726701069874365250506914445306380793775278648509513422279116682990456886430721476454019181252971779212702300892984801743732544746200868497873368602370975185291166990412352183670715154752267570770661374158381595950564764454888019745486886836528009454736884146370140593778550725367797098789117449605719880031475810084195267755454447793134639481816893846738641542542896679288526968617477803868368464981269390689667724073424078731680629487025614838498415151664491487726219665105572166123643149453084553015314184679635953769340523513772341184366526962081603255561549237877700586728268456179988119294866306399856114387732049013346844089466947583640480481527607514892488426605295610906327349888601478992517796653302490017793123739346772214948870366180386592292692442167750711981846742582079408542866757347499503481502194098074362408409360145868477640749106795811848649358836790494929252994696793991228893831746015720732357805836171220735650994023696252917746912851176266622192507662833590647066393665833931403986458623811139183579057751780692497325798787885023137080891283233996111206416636070516312594974685063342873638791830323957154078245797949599745699888308943027986247781112201288792519991152590139041114091076399155035085918446767207639059237839136332550609938672731587714814571017671679008550614654775577725525544629651056717827301246240091573386747745215147246970223018843672370896004615788638874744525224199491832114086675854001670448987220780266142084636494194442496670077799023007120353826409520068262999141983641336081634412979848509030082861349159030615480267484203323637187062403996108608784994373862174018112815160849037126451928319217593255593034100908922525753088222833713047767715419784437622496281399620976201546165531736037493667961504615002746297541616652823583016806882119075987886631021584442452060320591465412730231937088571591604144123393402759159672877215118585725871417055500400982492524530183468158359572679189462495239899601282271028284781538369373196070055820339059311068599978506461586193485365232136717553047346802809546869817698218494002444415176349667588859090791273587108351341508469528172148879201793541270061138907162553272233810866244501243354988120621987591578899278088467238916218448881340512972414678586608263991469834871065083557329664643396423212090888814350994999606392992574372291760998595438128094901933406463289573707510016173452630798012351229704097006663579916792410947137543869674625150882069717469546211337269355806442329734816863791058963440469583723993739321529857417650673223127342208027985990185471818834606020647242169915846062195612238411456061747641093980313279045241596126914400738283673634685447555589248677515215480267847587398020689924424687927320576887230616730473215374366317515474320761961542510539430848634387745250171387880073583382280754483745020745006949141734375382301957323123987996877563778547611799921692928299916629724505585706993378358719703460574609941533828086305761495625105268714126209754234738268570777241462726299241431477967834660519715695764309047919365743756358554322096110258609975257499497885912402003321822436061546091650689753906635358269962210430787864974495737080739430507276558674823336160744868156192698545763478349474945572832622077618248666596012067425168608344130678838428100631009890238581754484724066277081125001702066700323184404523500652598260927385649918494418117125808797843439895926389678284675832547331057956340670088804452384638141900253195275585611801277864399493502370828281820160961307730221892714678978529092278441760085248722404651587849036415522356960805676027049471357048334455339514181180428453596333793800156639977689143193775267258500137652896872197018339060705634307776825960877651719254403946421165223674293796664142915671170639428077536575037535627771289250805267548843239700994257855259877670214005197181343283213640184890627495207891835421599349396773368771127794147746590351130275505155205220270582886516289847984101343778605013885691046293534228273870980879737925232719678115660852424770661014209011070607706163815142491017624269680251207420226537043258742742773445308759446089644008355772427693052658462006346658843885461585900683167257745497314542856794733228060655631085691010024231359906920892694524660102334293081887219686800488788255990900442619612130827636216246562663141331136548955076474955911802548113737870207966605506837141799268538717340706920852658115317401888772170608934645992718119881822603268354517636887685874503876672661091680834101382237747136360153272550938449476004924417555152603017782139792001804516542665246431852877601630705810084756939389597904055156942891845786351660287161209432637632984313677126473179338230126483059015566454960539901810116130541069663674392712869786317592933570042351176707209842382637619794195080852109603958102145824124525504363699438600076027154695385657266953932329662497313974682832796569598742930076655596807845397021366615531234618650333767217449507066415296285182169537532681451052978233033758867227056917462913795402807248206576084887277245206734798386377083145200962372380471536011951669691109874719866242326024439276657371136539388567675667141533043666211131654769657975052673200364721465955963042195131529012335307637657223276620642195278098704210006049256789165199579524783934802747391419899468816394657241936946402493459433869393783435636485871888867755338600330245078049200932488381537683027016766085440117647978368173744873026804719553041286504634226345588380269188782386293534591614792792153898131866856421506289056219421829526716072494588042531938123288396902342226492302471001736553106026515519122639995316073367021980722320693521864286690111129845723812467187084710653301070651183371588159408402863383758978990176675238737136066044849642091956441616303938878088429237879543943874671102117857997080461445774926799696714787772391869197830010573029022828585228309034889950578887867561527058649985010490452505048606468858453907084591357677226808599137500297573625476384417781438662759877143293258576952076181744984889836899991178505808276160426154375571247326748287927699634977087758746490125147068510697427345650520367972960319861537655353108959502220876720831934885824238177906678841805069410016143800674725824692285499316442179327984905665835845511411440032473871374643079781416223755738840306120477697271350191315908520726925295955291406063955733763247744241077372059212553259567743346253525404406258541741658840528508986854987491092901899264849734237694490491579857610371632730052013034499494694106302915970897284654506524790457319531057596078773510350252936757874834998757827852170908298561365664280821439443634559511835221463786785310154844910171493946926185583639598270571263761885552700228279898076099119207141740223295876409537157004209817605607376523098401397872073907888403478949721766699361098605526176886439088406748392760110081056542569364269029884693613565182710961129385090037707142100092880688973953643536085354762827317060483122544101250022036866832217180969962740494238647698026944992004610677778425678413465558754746296353035231839208967293973332275541245162159920057672379590390163612273829311346137914976499723356334112549341473054731910427183271010616193874994851679661935369521517205381113473051851757767933086231413254805538237757235677355611269329733501686968540013838669791974703501331221273049739674528339545211588255344208817570778153533908572142469686373218389441351431420890780541694917104778185405252223264782757782143173649071579927978311021389010275955790931229887142677610691114231619704251907602048441429569489376433193158709043158275262321915633975880280592855181221339350567480676709291313507439667826132282329961100571889042357268801002599703473140501913689991946463173597568758642237994207649083118688881049225622667296659488087660827734778204691588741400430836851033575114081356339233606298813581571142603305524041921603291597697841744467486668425656329918242127857912523825416020723958468135732911226451258670759680773635772769649232731784738129016845180432184733191773193659379773831485642370148291842393943384089956359692268647055511470184057052203268198177930306741478285716440835416498680144112923067516391086764835231401731782675810943223527734583078641801350903214572322360385244051832818355232188722118780102822640154603666698611011831809434140433911626963791810720056293651715593163411225210062036420184412743181504848386691185670268342923995280983636060123046767691124051917972444075936713839706648765909078794909490147713086696568140501721251543023108504966022267358252123052447050193099623593450385927574940614388946383668374742997368763335561047063296050182228442617492379448510735225793506792275342193028126178969743856398449036079872147257367571128044599643499774820516524382062227452517854901422682127811501396725097583195990828543107174482901539836868766607692795983805340794203622593890310627274477643102760744720543834400386325311230351691615236367601203979171996049946860964332025363336677368237957682505375650084427533459139847033173149500945325577112031977671340930595317342125540996195252954701696467904209880806370022772421346611926594684624325970635103634366309519438709961814907664691542539842191059957210904816047716580206267486781675110207086461743837422882683667625498472868331088404471162778332712859844468328012991879470091566726482373834390846496692592498007845589876156929663074825395987678006792809896661340513431112821786428722102747537421225584562393755542208552434920164211143417167461419775936417054951379035921902113156429288996673607141853500940159174989419996708590293203699375739727792076304872171835569830345816202324127048336693278826718654029336440211576814811088729695893825621673603702543596518628448513668593099599804194573360185659350174880855166550820273898171688181229870914381700957521381446679816388103137021957202607674789893608704533491420057934504223883153451132268646389334354950722215262786926590762354125061852395197511154070046860449627927288184147935666377548021275825789002622427982717744082705389118678648471595264014835134604809258686524021952485003838339200827480344031770808605492856196079758174687174049171480479437639340581799954579748481490868469077722719905829355090743748093943394930071520682099257148592186434935244305571479443232437459387020694044661179559055667473808743716445911860825205533152396914808925164629393889625172479025979308092485472728448844598887670258288495352171316743948274738399534880112342828117241625974826283757254896667085410124595455360682188103918869233405512510215705719852941165994684519488913892799008200840420546789498996866203032434532913475006151573290795793402331852640514178413292230503322550343604328907632429451063725474699159210927514403031662929751139617864945784219130360704464810446449984897734592802761858774667467268765790171638554463397432228445678076316299902223520064909454954942842875901817819595121966705744226341099651693721491165517255515347566821063836471601555334681889517262386859344073365956858447133004658439678709883436074092978406473775158613948024944006357942815720939303767661603003192216610688528253262393000563104999774348178710253089401280012573638008082551321900660687441132728736986592707969704030885734629025805173456414417257808239768002685926193395843770604816018005361504541522200867389145951893481653108410737108664423929677242579949831581138111604507064811883972441253329152348501191464167563722739209048272796224925697321391436955791184112168144478468186230472769794789241597984479986105367501740818544931690119482513648687965128377694947000584982295600412707313443264200698679305091695427460484699724435186732630470911468690772152606911781835564300796651562433765862532147491588761819477288334914726608556469798459464118352641744977406751213926504802443653648661451392367056685836196173764229365335793314761388986509881364950159039375175321919993642277520822002317830066625133960506231546447543872799698206076472108168186545359311564034436152562458653804624760410048369305937504895922976119784892991673870203946007631849081054229046811310350144168877437101903045492621115513312703083584123891934465062799939471007538046136770672185542966900578364730576594867897746320060469764416265455305618273050673423353218091441511836239390566455844088530890161544525966742727118311811209357749225783507398122004470093446463206682703375671624496295011885736916604891230400946284789268135660032824885607730186599849152394671662791678841243362116135367194887453113632061960089551870376456866802279043423982705210771471351027118659065499368183807311206986306237922441971760309122103510309630998713127979396674277673808853295664317106549717273490562686924631437193318293048123594980980139198585156435332520386604593768666052923674146346229332156976515379738728752114922521585196432078376258060616552518052334874373114020455803980092950562056203654197546784972649571357416233031992839413436140475057312976917060393483576001880267932326829255881546132162214064940419975114371861965577568963736592635966791469317576153876025486855203520553715737662872187704948892660758851003003450972047969486528869881675537981362748807139446121100367143469783645890635464641544391855334705534104186303212921223519019189320075441786963414501917375179393615178545878957264571629874181153567938313074268056946538730052974729867433154386188630768134927728935566718002235294626676022841212741714251661716438103892578871387273150355255632040752907567485362695914129859633401884946198746925425632912634724298795742190977223088691654446594999775567877402858906238107425006275765667922150290110767171136863268354873941323874004776469981613867843534594213687727802868131886290357199883066318007792253798667869452050821341890736540843285016604021391970875290531567546671357882019925719301894237592774878083870353585220499903278727723235238627162517404607615123679912982563407414282137124506508718899183509218331239264477514912688979540268375819304067976418802460810792747724013648644928585740029582465908254995168253798345041816597279359874297351344787054338340272716753360515151065408860330069624618774138047667013989972921644454546280583899784279948045020470884787248935950588937170079866864895696445329456872542237537258841571529329965657582015047650101034699210771209805673113934955176636487157066979255989887056796245921301335350643242836898081752860542036853764641653954907447816194590072697209654536029895899950606647906973812171826121916312521313091513709430283572346891357318382165702764646337558184618837328930241047127006324312496487347849419906272104143140851572636482470463082115371301480663601684623510826036300949669907204514652043721974446700853673562029236475899878271518240837059103414302188963093942609062747609582604338153239718422184187242067032913921838566062856399133978277311856735202900192492975922222980413733422690909410367954628030319762840179006856863836738211786441248231068485263489432185319932279181473918844707196448887436393812028891321906609497470544124732767442683373762217179464330100159079011074358114089529204671311905415629995067392397400183255076395261199515569968888328549015174247824525088628490316705184554065442249656018330097636454957314447216363513478598885741924144208341878782075238548123323297990017013898229076224714805892221297895908666132177262034332647433361507425444799656515780952690753942018216754097644054385210199475425343134346928285447632861499686650467976873966003925167933021916116896129846604397283734629188203064669200154195916737628580443861050759310535296846610926569843851614523838184012182709909219949312678938154812328768686369899738773016043904948256305263410740624276197419707729574282723451329896671800896874322443225003192662034585061060296189117311128346435726971950709012896085951680954446670678596021201122730791307012682706343895529824657291359730286606831520269791302610188536321795829171536255399951023313695264590957030742485742714117416824288797255907345071540938922711003893355800602567183502438042476064245684417482796474059167743479822137632941765266675962988440287734021035066959253945287722488361324457471316645080235216066517108064610692605151596817405502042770341542903625746079191583132156061947916740679644450595389757542578447957415883749980882871688323734132168263245142920808167977449802997862452500272709603981648906668920634868796570789142458691375892388638317132904364145975807286520274306745967325455879832343824978932925636128988773524633102874309442858904953406982197721332694066759128717500265616620575147636770308083226154130460486583784484121872063803094708356852852068851633038166014593252875172897672531577392307064599045272386304830358337726812695975790089243927835350229680040338641673775192456604886108201992024289232323996392591575567575753864024193000418206166937486797699212870253713664916641698793396034750531482855837293057568024378908356359654218226045335034928029999948168444393255127338276660777431194606381933360421799875328995366192870137183583773775540250387905296139085414947777440364616576059308067195548533180354689961942037023144728200344137839071420348429287523216973734940946960198404230809569694833731357558929261153340099212292181895993052207340754006762214913925040259082244870025126865769668647216397470556479555765830020474991413805142645380968337352586316445298980540892918164250720936717511963097792128740912549405256342954483756979302629332860339208490127693455886940192851795169557397682475010398068081807180840871645417885064281666736355600511723081332325868450878047831042987614227335898672896279041417610370559717000780204118351489150875226783926353496590482130147878572087030610329137372379578714000789054957424175416305928627865478626765622080506149352332106581728848788686910874604891240526049063331655128103530271831802304825179705517772387729694385688040556044292485266548938672358097080410971942677896002603543499006216462064018398578091878728910108660972087075715501693296484196688398367971449060578964484700897033115358233025494009681224380108109789424252955563145159784796901539691204644909796533261600681718288214618807809297235022820592729362255976340018483632987113328689036491802065505264262608477233168146640680478243825577182212223033055650855536093822471871892281186503491755628282336700222699270768562574340782410467686283495178190751454455547589315858916174141106059323524364401943587822766341939843917773365698540018951500106422144410085203834817302085395060868499660371282871111700138055817626416011127906157204698597013076835125948854342139375484723210290133862285900702860472698912995175386487465188621090172122714068244059768817196539624594754979833373751968387188130088500571768805012634436886459378512107388794856303855297453958222099029418693716947502424732754181275633071024646785174653688255395307453202027137015344253683591060451813484518605869409090570922773750458512577458071568674384499915285353719799433559708714509083888481134056959610388356940808201999252877191205098366410864823637395154665635145853629082779226521701007005092869842011585055967601713692687169710972810274928227564436950905895813575279841251270020715053405791388071048090489885118315500814610697435334230105540766161903141672518777377733357867582845139338283727029045179077047848213767447820476865501593714986259875882682626929437722221075380890934787067864599188912286642463303275363937831867330048090820312477520786154136217083013476809653284134034095896298920109284004785438324462146824629398324384837446176747812741426236189222377270116209200806626526385014930377527922092327768839372937797024403059329942645021894599092645683180694988022441749290581059593544030419955070441250730442647685916151242450676282028794893431927931207442687364379693145696818188130409141169716670777042882976717625822748753844377365183423835466453545968806995201537583511773750046629002103689990722761536646978329454071655093039003647815529141244193978759036655659159746927647859776554732862250209226697000820642586650346409685478744299138880819795205966004518458777931848455848605132760156763343430065738922234891262153245556212520060022637045591179585179513641698541759928482771020797908660889103335739993206553808134136983302750283177485949966952488967320834089630154264075428206544329524659542347204889786825381790900019218914464089826421117480543001566278347219529147728613188157452786062000296300354202776962040704441526051492050748330932148955591599420213622008509768689308403180053791335503036311171726585141618356294712732720000060415292522689281607670752896792268113694877675455583152697538859844392010461694668101479410986609021868149443096296406826876393769273089274053283757097836212923114074083525659117971768302992061736243247689700376689393178633661039414044105539155310276839634449916363694622964885127050665889144733360979119214010770913207240040831396648894757300235072151569729613145794426301551735505308293432888324098783549137465863903035838014355093091593506407418023635619958402839357672377419911027299170802901616930298909202381001739870229346757892474871591569636270766176001896989013410922878613483885957132943595850344189001926774041545014028065277644501926684225806643104650581991207457241731957059484212851831467658264183776844839341282054474280964268100296309464692634966845492302473406995368767819498404953475691485192795362571083072476171405510357643599421134983095918317283575807399261967013123215117713728848999966525948836754569880004692887342110662962481475519374566945776691482152745132115601388517317960334860773010118189982295483512564661455241613579045182730650417183506383642695477093750141528572251144936579174870455431909732902866061209552161584954281030353089654624255136811858264298757138745845789955697870700216160776805827876910321521386655162553395452523851810855120450612620075767155619225189209283439797828756961473426787148479064519656279204699054136515461358994561173520806300515197756507703201626312638453234558102078847391594200356578398431204016652116632821411111140729403918734603178245666387214174457439707823549141777576639710639876315310872282841765781375052940803403119210152637304447748068556286481867164764556005244543085689579669296558112062831930531147470847784014257868790527804099505804778524775286019670165283725340263872344324059633411166841079177074842220067308140782954145919730232422530189298948782611696024351731790648157609685346126416249792408040810094086434940533226270773753124983135331371944993542567154687977180596624200178638689230643331025285248424451080612868471924724952449354577037215672864541115201946545595480082600007186763862454788108167947985729264813014153005885212996023419534331083270558034758316719426698698069760538153024895551443656144841692759395148011614980404913410444106239137282130490279290091955892287450922173945476814761840317714119173967959067987936824607539534341659691878556280944349727873033551829456652388023079722490121161004895654506323741227017038842408317753569018566458022747399403165493951677256238483623387139032151824161507019139472926902156381135887143603096607085833453087742459670291144286151478816331069207353759151083603801588207953665415662251495980619613721193972447305286517811908962464597569474874979875373628378771112208760947536341684360717232111799827904400110605118619133831325820940352699334823177039998666529113401447880293090860105709874477981652115617223131373780357552710704433370678122630048857261913077594340481662518777425738948297814343215620080092156191003351340667578022087921782591094856257357000929694691010942522986468318329536261249536996254997402459180467849186121063041832700382182426814275297120519801243930099902627972643434687231345855534201907214113536656521062613742749078204574164555090825747328030941707415328744196551581956166426530851475964663473030973392456154384252642486297420885183814938725898737640847627015045117847563591335825375670342520500273616113571054729547333348633007470942055442953738190501326521254117147809916007885055972761442742943748401796556560545086744019302666738646309083499555976047041435919448384324246911094724666191225574344717087002252850964215083776449507453165286642761833145638709829178879085780273047676206159421886531015777948862049861676727731473134480200378379498651133866274003419140308430528856128991548140389390511807724716087708723235756506234818319885372111336358767991595163824903761230390330492380662504327830488037539061170285033010272816098123421890552557156304812193617661265316101729524531889601118035772659354339613333313251417949840638323954768735731959163310446482831671928732449408621109732481620937960120853202805736387956474873981053602216499634272001981989813476721663419959158028350559643972232883243249045710825628275844671095151056398396683874270919482772118278974366087914993977131448060427759334735257425070746998270725945960990805077642286974711742759239359487358851136820578545483541506086638411479307815904224854245641964982789944591529461328266940373764057395560207204839147363111692586988929830829476132033724528116776405342212102684718752525224208066012642361209712059040221935974233296737300610793958100859086365586751807246817688791655911706827444662384981657497116548570211281834198823577872164961348321142324647407150742596402331093566280173168880042938515368148267681370523203939964918346313851248201123094188016500573409129305334874703489866523409329128636782790566544034394645916308373104479954343081994025839790806705331914574213324724239645431596197208326863721942611846682194192475514060891775356530524702000659415158745842031757704254576999018477171163316849975530132246377898090218628823218867076231021388221975454378268813617942073435180375260324298322275731307579585853673636703083656066739017816504522249416374370760939501570493814064725481667485602868129022103263661279145058482285531948401097844779801922731461180691587773591522783059447748275125261310245306620278404495168814286800967683328070964599264881159373183634263268723290264303248330647510435747082044792639542602928633125705943560602308544881063138808159104781374943867701590688648177494291148357758017877598824386989806180482577259546340508147070470258716117966129441498014621145823314480897637931144766233258726542599219466195917130423962412526230403097474697633532103733222714621210399693824674765604966087706091462150534070114653417611348108373546647685948401097735871798565837998944108013659209404315105474325316736493208440998262914930159460859725859562060189627973524093398875713941430136228714088017817890632500583859500445556769732557366469650012766702624889693989184253073431009071904075789779593115101096587963478659361350190196787976508773798804513798533646122620118922464164408931265118454803987014294912534360417945548953148460534028614222938824898132996893507412080763756609069872873083785561571887867765318954983368710756491565632559494942014668973024520190794947577949009289929264150758826442791901275329665931491320711464647464214448315437041416573133204065160748667524536132164051947286958477013167248033015265505028519880358440911118913585061629942279629998170936534026680655449413782690164165698912483688291361914028988558074642438001387446680900872522478792427455263540150496834742928287253511527938265500366786106648125123936907597081565952348334264825637215443414776758124000626221785871792594842760723766989309973883744787366230535154787046968063878929482971400261850835268514773697475986129974271329070068166202971876790114012512026119080198758721480497154468244206841326093921048151612589915301445956472710501160507070014142452624492924750339236155086237059514107066959807588116894411908817251486846604573236187829694500575581559222394839823376644059362764968249273040943880768652041090078997467622393259222471747642561373588049120135561363967354830213353180895260016805431557736536446981923168966982058775488716549844207461585191953210451941623817398675281526089175473822591571843140137975834166009564426810077032879039108816646854952473910245532954197989133485442038446922106984140440345507642661487405045952360382253367549546508233626912476773445892264587351264865107510499738092844752660311841824387063602029479652863143372963479472227683720303628982744889525830089292435592370590333033971866759933507773562716779438242438046568703105302567806575137749464358487758876500664992927999957669363580809269984999874923991632583479401622071066669230399084821547243109490363103711837234492843240309756679441440716478038661077985820871898566730270329540833864511311272051042387849292007104218259411542875881452651505337023171220862405705025288607710205543695531772093508675476836077267868428817728590531005638395773854713955090058261925034433928246682728954527775205367146956887729114560776497597162139663111238952560013589908272890329503909298230151110136186220346129086583260160869928941760809063199102609978697104249468337281018051034748752343632960137375048454940263214515789354406793974280477714244599926355327278274989174688485654027899804061494966333249076434032376838464324173379898670805565620738201083632253286336786627960313761677473711289735309176186882674282722350887002410355964606784807957508675230894795304963896071690318716972825473730804051337759806715205097156806863473784422766690074496285180072068367595051854682897637320521403210493107582281305028558250669578787248610147489085094692727076809685160698375206666213585079761961159532636520878062865467282542865524325132908419756720075454911742769236070130299268598467721272753693957454323906380101919662165100901413027440946152301119146343171652943481176035135706088512189968854080910944849977121876521758213201473259103217991296176136326036698018398246180164047709803002582596477246669606213907122159611816247783533624724039563064509199666520117040155615385986042860330430383679107045184631712849499053386024796711856222603792494907686742941743341170785342164783152646983141297539565191291319357717625890842909577224746703066487365592262922754872678247192107085849762054159363718199311392940808164135782005140663886928924046653347425686018409131088554616915230926142421866789544377779087711393909953379026734782152593289158675196260720270969459572609070032495653586179845439733537444709707276519070978456859474256823070093735375343045837389447453032265883122747443650477641521229757779463144229098759536679982897296900225602015688694710126641208758274609827714085700216572459630434668916261730713415356173080006789791909312781149943570399918224599410668554515243751008217229363426521671883522380367040957365410954853064417853817780380737838465168226632160131656492801387991346833899221017867403738794820845419989644815336880737247514027853064887460384117203367588076542168117423440888041038419461516996829584558544581298980130707070863602607594120787571695957954280670063456418184484656823337185091865706630521115646298169612781821730001741408343345069794267753478763115450806510706429835608625606490645793535865844432404360121779714204830723736169154528509369289651535975506157807738684484434861640724267721692902593558627175429933027104676970532057619427394325675258101164537410752040809423766447260367089012634036373122163925584466538067481025884544636128714126056692957208140677952957019302448389503228244650571207291318077391357963132993056723375462796121959173467162863699804070483587243539106125796675127380975297279046858155400038132997992522500875599021923113482366049623195530547848971857516513388404487065375629312031413666296726218919894006219801070546845669479443799673378861515435470507248130455754728803999035825441413896607233807476524006559033537377542848884417974011264999104276122132521743583719442969722451532932765117725041011051689112118141061229120188848268620919703246809891766521476504532334276495520528983793347860527143712621893429588289248526425583509020838928655455205553112685108300290103634787787897337428675840136105883029847391094723393402425349306101936723974815867178366386495617176232234321917994433369614159963945864644353032719963288098521771156639973480607808982962558589857505690566385070381012811752394139832650202093871833587367186554192796784340839952912992327351979470201973291999099128973590861754580492281645591738509343773875676499770542340581888737493900630378125640725686565222203110595473354772747095085151229593122720292385463715878977743016786474098078349770961990937499259120239693045725470558091693964674637617686406180662360698681258877229611189531616731676264383496430244168324577943143902374053335128384153079829201634931466716703256185612727063911409736731765015448362697601625844277133657263434545382142201416571469124352684786648896019585415118189540468297469679227321027125010683521963043690076438940934558720787963078218641533462447420750150102435319974409966615140745983389285675367094888634807558207236912735059229878775796139205754527694817320525495391631104225494587798110743508361422867568722654065815810987078342231010472908223376095965144049370122930234925084746025259584795194869044016136044977651832128034118963146109174094508339149220253643952779579414365648211757820289631057007912024700882124922120677189791726012938476428305186707205231281203396085685511493467724696517436410113057388709107165896273848604216895146141852028517297187869160931427686043090017511766756401486989908472445891515202422768128705203799269935910329080514163199601997400015779664300201265623858630854967189125825423889489665718286002022014576098558341190702928666657728519748361387839445343546615589957234239200257617930096664570444189875772097811601367229276215701788606275375131681180108807045784159168718705890763672103805869523936956457587227915720397412929636896107354329746021090430896284482375864513766904159503585178256836891667830686807064705350559518551678271625100504586543183334208735230575795731120625855794815163753085823698755512713368968725890040065735998846042237840285572850384441898928378604180349181575051984705301852329904199537298436927770137185030610169256866392038290344861369842970017427129911156762421190969952096480086465735618699257904619322218937415893254224749793802596645442916343367552896651112931480705768553134259056187556946799722357482964903597069029419483384390579309589138397179841095157930305047738149577841288924690531433595510180359389747695976745016583881899173998466225025857462461735254426419612068655325875725081304154430941522483097919690737232693125282221133044097935162686531131015010052967520086097087860972192282330183702034893618281802272546488119654905851496586519668187594572261923464193893807829959104701465766699797790952674547932862630311498986245565906025555189473733182743739246586117704618645455703422783773841400474441389925077561301219415555302237106964064590401341120528367810251217585693128812043478842224747065671155549791138432256238558173229300911119921778403867232490604505646659786108658408646270303982358989114005509695826947581932410861670855422602075545888192561401448922598721442878931457558221875564997253775633751355891018155732764718282847559903919911951682395863419042155499714539104455611837241645280661914372299732698938728981567122930457429772893450515507649478184073588089960384228392978448339704865956263253245139573637260058060001665790632107004348606712287162005751305423185604502814086749362310610193961171962050045882814852457016596000885806152648989033020201159127318515095047235170874876310077202029487506317127611184135400768282456780801067845801369464929414871236579411899342092927944045566708191589705670144230356439618660721228711299612923493333788353548532266405511043895403282760169874696485859841495523630115506298784287499113499990493847159403644997522400743345349983962384513164748942853117109299761624741898598163292053649592810778963457063297173509535055120642273287130193767500698202995251213842087364014081960929807488237374991731834845341673691562301417075327295587693711656394239203584874696150838531595674483324998249782453400674986568960939128513162664463362562804819615701246808570547213555112927757888285397268266115853147845159812065584040275060228095332670309566686632831474500484354076300127054685770410746254298880191143209475954152452057581578434699252334213092359724734182811851502573766105647473266628596100483600535253511549771099444009179926216932988125660611196263316254224698058757007588764604593821731446976294071360487054828702576827925783634195038143445415099005236138622636712712092898839644977065468347849104176055670217986774445712994291694047678238635828772767485806223468795825927179674299629824212080408256375966088542255720770595878700700359734470486063957530078020073823176809356546481382099488715985611778673112011006226987445403654566822675738566402807384003587575474920651120476545992645699307781085775445952460674182051365957568605209667731744138736642126183316174990433848521098661064587032877538426738466126646608512134505089600296083302782320681993441208054957026625310984309012438334936350380908745305713740867437337512474109070290251002378330546095601282924670944705325884687743865576587166422982507666395911763446956894098426941229770430490988172585299573712167090428854238266928824328537940745346904618007696580702605577275741500563826956172699132071961840917229857312302576588537330412840120888720019962683832820045631643473158970273046085476836357673777125715061941439650419653601031777853391680024669978186564281371983059148942894744591747589958208918662001061899749603022400195399462938689908575749188656653194952413422226919609122743539690408394866151547917968372291546036061170223973822349825686725029545323559890944926589566990843119785702653701639415569686427199756202796389261135944678209028591755398802832140308144727242562452407224603478982993068023262204326377888927428888820174590025456258227013669069241987258316383387033708340573488124744812756174328538645953449738432701274334552122086483981997105804439319857352350682540453918845182634268662005999918907090395661493423760844398134138357313758250945699918878588206009559729749869519208902700527678490521835642319296801894732498490547101353019632853119362396461466590439991837624862178498303986457814245333921884652295390658956853122918250219745162479866389250044265476041930207367976641312280333747549974778439246080991024126107116491850092585056779901982339440563784727743161910659403989442285093282341989758835671746081146458810202608968717158648049022328804053911298014857485086557453883878317892176721262228079754479078633861574236054457474064032197105708857519877432045735698480687661235994983037135963000825419309920266868696808008532572741773329134975984509413527127708392009253845786787179741801236762462343843383849033273293771204064756387357332598770229775599563786166409077104496783127407947024682139760537201401296357675099081221317153691469933989234290207657614976506739139202029830418460457432882650711322432868336128428029715888970774025285984389682024654393193794667002453881633514604398250556780863636273459906104429678899790657053060166628501983833881281427200863817753030434413665503425518499066751483164821662107782915056065086082230080304858679334763395551824494146691072472469127060573424102870988807167249996241635904619872884228069582452895190984925576852968540548613351119411447653537445185322009299945728704759304993028415176353361583472200080542885657671071136557837262302374244498590242726798737115225369581275987545894104921626206254110040679416528771472873714626345197602447012844529164255736270162041248981724566326748125015717300597105952873903168763309988180825419891192713912134081619580911608866434653021368788505715773119977701573358703905801464898779264766789639399012486394721568040379699899625102702540474861655753405448806167524703372870337274100477453174772710041625844183474798022537282092027151625970257847441814181522082287328227111459419218245025202686973893143900874281232801082637568571089109982044198204932871403202333437745420041397928215456403940019153287908099848521130540821454492378872760169754959475126131762867518178508762642770524929101111426015317437017239369002702591218633901741630180449233203922570501890013891047269925643877658229814691954344598126062641269729161598504426334454073984044126904488101623365573439669931774258242382140660951434091495471588705063947387273967503293405434970634657560559611103136005162769669010887527437059802130321871687604038280255528796804636328254570936157437335540286161535527411186518145850182883593801481773378228780923886902900542758055344239994987525429641621309872450638550643578404222742237692365859453655109445045194229310953002512744847586702537145203186031570221491329340639223470272717042214083216774955107644000840045631071493493827173390695269472213572999226410271705307742998928526587358254358248968970659505778024505350267223951439447837319634187582650386413777587927575512082117816820630110888039286469040713380337575809843368614730547963872803728541176168105958842935700577073602516928357926380819853171669781523583833075332880641188122580848342807309993088547250047832310692379524846755154469631399659941900233157585762528407326351045725369168072279005939012022155985457334421505477391788893752155859397046181431179069520022819529813118598518093114824414205010622740417671328068875869963307604085256796988531819013486748359418076463187637114892208489843061322249941835543608407663922252891441839459259770540075392141116543984860054311297217244698691402798122526814503003013299502708822792081458212205707855513076748236989540966161832182963942106350423949293846575132880308765333172617939621901823444173155632976471567972933970708507847843717485971149313290670869292707348061605479013958972061173107732923525258560304278560130783643474576168735048117467718855400258408676435854011930583747030568527656609999157861370174201235805893029919526534838247045898613042664958338571011404707600783626678675476731819379066601990266323787417373943284649643406578460783861912550033754964534943661102991743378648037529050541234020487543688768295892006919249748927072321099777671480838576587332261893055610976403503149834185797756099853136007748780422879426440370378073364540385198964727181806011587079469367790272276367165953942913553379060650278229987884329733983439545933676906520632965975664890947929359062651630724681138502790064687927664666557152995814603068407187070869294420566423839220925507540560012797701990189106788818390590039735187026210274915448560898911793616619290057522476429074144649838890580963006248634288013147948108521997636766238148155255436423783139052178614078410474649996034694366271595697585539457950884958387126632693941937514219146976921808160583840118239921181281328404210851667139382343385464403977008909694202404319340285456043442294660306355026911829368774245810079702802274069465235681532144675674557530140656380850706672170829506223218032159823173470823716105495774716269702188412861401410360988350731533017752689815850956752846350634595121999492194471614769682377545471381409606622873476590108042045764374129770860261281282683664520120186724296974077823119416722311256790910380163193629134946825196296195643290663555643659260103006106810466662229035011474449963740543269100329976494409555036369650677948818385016678646424123607528658768032013144226139838799840475331469494126504258622953393924334856344611996053645242414309010848730450823218588586706148314355991652689262203456127283968618452315503838784587168221402030814285064669743220031331797229503398115723137953556374729266305150703289001532302916451566040976367878182900115868027532523943495665622596878987810545617203294688541745963198000122090004096893955834981452826927045093981313651810084636901497053232124469509693174354589086905692653210480625542045463521530207010861143256827662077250015353767357725567750050076253748424725914221525007671040939521041546469088843090008478864445895808387677949049546667221943587139885552982707656733419440167245557817022864000379154172578997500504439940698705974069548643899522089605419772159643186131086962036223794203562329307923067243549569669256317578575969222560681223598844710395453234543778761639741774673174521837924509191158829631998060876299729959064797114872797618018697312292973774469235698073035510821756309447988347633235505598690504972568085819997030236914596816937792449602394868572917016356831507485578193054768122244007271027842136833753084794453029095278233362296854009246849240313098255140040822837096739732605829977356531579011637030765880078831602745376768055633055811919991359791753491259688377112700379991814109247968997554691603042902715724434816439996703813312215652957997669776078472487866909722010248710876483861699050989658179282647124253698250509334172072104099825798773551039806649428189729037679584410128020530075936415799765161614498714631398436039577251779004042450895062089561426826747342001062573412295394381853707530565363808182164995670965341900856080612215079373262243779894816868008297852110133728985696737808552562081725162403157882133286600247671329264903588992552851316589646853523661890904453359159561167435750685549268106602899262155669537793411182106784972666465082070568049823686916420289915775652159935035162292849998002386376853447489209196317037849296843234855410800550867508339373225740907610741876666277575931561867100548026458507159557311588934677602284610411238674149546060862999087097949350665865977238505704618987784240523749983245165947537136115963310701344774814884514961626060516817078858016622616353587576047586103773021118831727981902962624242084507889907612807881911888141155810573134456185213329083616693834067248208643358848902830054343893089853570448403913068693978723978830261519369335085012620302898601184728729896024194685435363270899866247029609461999400325286376238201322664705796367487275637203203533630552480675779718209812399623510487547909940960620445697660550560594026621516551139667282396310430574536098972618631425926946340218671799409135115329605292944238984516180677038224307274666718470046212407257991610081554708516151003082005105660263063104487611969705007130689547213005530994174642985492962954278839847218996624212602947846530608979754478622357842837763792591213666086017869046025547101561751210382476012960895065567835752577520924164356413425703077009330606687830268677025004696940015352680866560175809395008423596540628973358520800161499046059808399201790657076232329604815562366768200811819233300528427062892940543992273344616811709704777700117623673785516353957877762542734143786968735398803597587126671221000544473904798538401016918575560250613250644330341965105566679016049911484478564830461011888606889956587232876219230181722260312895576210445705934693282492747321979952413544815072349096345952411003416862710561850499037516226556601235284321607469168943569649539883589205465021744784533871428210601079762798814124331413103848899696699456819869479501941357115408021593120763765238124654866334091682072414382784740292350816976653617169130972003808108464412840949612955476886837378179887697056421429229663807054367239815979314658701063477448097379898755773414602592328884988410844789160811497852092346212981887713309856217751941422572529540212212771842886234616569756622863150710557669987461782248522515024474389135641993676466773298421626131069087373625694737886463040109596517692471676402642859045004229740717792111044106811785845110898987322447236679768092199857018749675424535058945117921957723200989894875233756660219950391177243820087860481164618956325602371546762357821599113511309415049330864099371991675033080941360297201348994845193625803464689788462372237517329915662137096814830928998179809419919983090346932110685915369674032464412977807871565912446098007638194778938966362570396096067733598140836058723627602598406229221273142564473261040184506297150759976784969681057518253266912536052895862931838445950114041117548364721079340266684520985211859324362783247320338082118448517331241949996293994171675659285527905134860397075573113536634048323530384992796761376594535823125038567295544647115381427823325289028827768888482664020705679233704794031699151831160548597002135996327872254913119063244338713364921931799344063446025220941436605038405817405317677105248104539907367632167905614948722242963771225246814461912960237755976188388001679959845222565422692974632568285326029383319269615026365874333909393198331754711122548387682433790989218217895810669099991495329490712126088173016479527375721872006659015117174270490080645141307867794821828735582468628047858096402893883550705637613991147377031335988510143265197938845429432329814363664312309422265750149217851644649439151322459372407713399870968101764433677649273260066114157794104470108535813176284357289926407262216823828431946319641452942770113384451806877389071365617740533087059744951367531420423591434996054619655120244431903910837793515422147371176991576279841462859216314361005777777761014275047234110774812577822326353950877806359898853013796935745000871568201666908843023624959559784297775847261754974359603620309101436714786085681805699370356575879023824340534239747225645863883357658479372512833354644597065795094029819623217238559198138450730000475935883803575586239538128703157420366973626962732988674733671819483522996420553337716448242321667707638093273410434798348090289500990608325629336350290584793108813008498377146271391180834581522757205830119986868729261852612386163016719998162425544651478269186956009117267831040520500674113688987802868097574078915866350002164543183562027989710852936774475961277750169754878019857370126562650297732591387176551431120747498448049518431851319859238923519213263381529783488171363103825603729604845680736674807934849320216582869303913927337284232446042682424488589435509126941535083909430767487068434966590433954573255600010440121655428514793595385660747548448322165116190439566349878437286171953791565621413006231465481571076247834328132287734857971010396073018720693873615469415783713852355681613944298412119783252002812978031636845746340769203293782478891087248838218573021333951530486833207193323006115013494760751414350657704835322883175538020513316295745433425075164006366828167226565494645655655038828422623537541640943079513827037637967537824654647007273930202484091546133006457369122208168214117463544220615417596434551171696424004035959035797204092682732166370155837467573978788189385309668454619827233999851149076458585776476540192685823311162446542943208228336015317046578758778506598776013428590442359842841514261514720549709500235852951197908048843799096959685916761463542098998564711370326780710334288153439739750126956725704670057002159207962148766146448112720599964181388863591737349827332194581234984058105923306389106566114855425548076555485288172770740804786803701944398202855148389192144291494369094495927601460747921188269604103107243674178854597824609999745463383803679964240617666073617954717982010091646579274810880114936298820945856505593489164081084621248286050577643442310653486541406842626363125066314299558637049400255575992932492986354820737048541921728731547010410212563609262661286550326158536664223020869810077035643851729388828452470155059206375993686652807308116537253656933505371952459292977337061295209795617317961055262700565142962961716187383098356383225263729566599323297483103237238747117881145809173260904617727263571713110149673557428988355591775978904565327310122202477554437934848382282803871059518075152947549339311672326504938422278394619114625359832379461628142832260634428235083479397593340556579377399526422905963256425824979826096081296006423496059294337003785580972651474637938734338211061365856569901767564959781916617270811787733746477502748841593047967272176715514054030404019897013701309942009493844205045375197780951565220973513453258308624746189084379673241852915744754120894205609278463888289673831871508503211401517366084442615429927666085381531212889612940182645090212291247135477667504859837046604117212962611389459537617464027401702897470414764383609215145715896575242024398029092994744683624582261307634802582235754117739887995537617741254443945376095011606374876408746795902216664464057693605834244415438384517965601241951793309175858824248416022090818106747118080435775114344803885894252636776393660147612565175743204651894438684018304573316764415508112011519485698886993681053572994571512885843986657303319263014119434376627623171395090288899789963801597781568573570621066269973375164803483834908443302683792473998028312850039537137311777624734987266928056046771243772713908573366955323255052324383731884939594034061099507572381012460516456443477708515118978916138723708585277909145238518787144425193046190186558864470856938848783332530899490702018500066193922804042305345383856614076873358618141955913519508102275065760381502940930476124198700357892167329929896104365705766556858898775425141145691231600336875462119481478891559495329224084364098316187474118533101406622876755961295627178874451342829738781948772811208586468604639477494847680068558356906490877567403227751879581858215748686937968978939538537156412971332076019584743688057645952386945109906624634640872294800823624963127448392831973324458119241932241056624632282865661937321277361822908137349574621517637435322399533866571230516283427071649982080695340469246930135301680177174223888702914924286487886584316594442779127243771657997016174135299698751308377781781748401870801043768996222229359877919216099652034412194246851849567122824669397119470029477023613509929240044253994392837160569966629186108987362139315010915807382372761773655537597184150160862540174730872693794325968874805992933929357891418517171580641064275226725917916722400793737805062750502675597562410564366314939883498675125061696188460400497798569068609758947878131186211064694715908361008521051692823054144435689228769735203721531508481959700111193905395656535569581298757202692344772338534102142599297833656533878936803216274652260315225445407731816023929498820882414311374619175356696860234885468234223736003854938750252815294701555063011900346565206769378651709973775243439172774789283907805001387289459969686222784770885941742276074475898203170812117675824887702365604236392730591311591053523929713248156669409369793379114402051461020841086706205332345982914860102665226583416115588033650239111908513583431779381498176210452742472625955746863455330806901436760113884003948000669308018927631323149407916393329504546998894238755752583727479751203455320685704718589697867980460781154354071714421359634958222200055806023574797813487078373210072689008250256600790164935951952735103912658579340671620844238334156925506958348620301612870186910367896619828154034069099881421692452269436318687575436391955365099092880725436046266929792561406472256136910283266447371193258941725647783027075880691510192848688126924597691347216276176785728469242035791642196030718120290392577308344249511549002919440619719229077794322488782701659700588207336639944385099348000654944824841235077559812744666909839485849125601612993142726139595527310135967300505618230896568754892213277490070656746875777589225160042305357634917805147758026692891320856394733889766459963905338391302781941056438922924187950921517970240375046722117901381086450392931640729087460849368431619926434770293812869623272715188570898799076400308841770324862308503647370105927409468543197662730621181380076754012060464045072489040042607525401590382625890277655689396808032187932669091344676301611116067526555015379498635571866825174396108728859723046163603752044838156908706167289358617721510959900716172337383609559870288446501874609374715237981349532468231399081622710233329042818068315359863176600304225941589754262221862697470041475145229561922737136041783285705103646761145440451545630525619277830788927344031634230533522357171853532082132484756091817075708519136461172813368576642344906284081184934411563850857787592384542375134146455512766196211860162313857995254683220081714170601782762481241294585859134874094475033857498754539793437136448973843675744561688864109090686080571848035084866844057695303788213555722899662604611046032754577092373974223891561482326164835961135809221202294612763466036403547871899735445445074423720125409830647998273182532193118621872797163150161813703572094535413269279342130873412047120566189043159599587070424619707226898025313133485879062693032401565508418879237488444824665775092238493863385818060551582094693535284805077156692621083196915802890888029610386373505537114368975515889765126021703130464697928295309323706059484648047275365779190831109226150859254315613129148196188746377881225941388372587746322411676878701718599526269782911157324025060533201874900121874716693968422124135678064425880834256731967204649589655234631190079887052018023034818933619542941919070311820840224215228976359134777240196054428566007192761315627126508657459428598339178359804366827864280836060870441056222882314555217249684822961833793363969031055724078830233593903268719273668087126934548615220974516440056264465820692231008493449099971229043666694559162687105242566159363571563055493555022122425564761744840032863540355998836516252879911569747672724400327697499937900615264747579736214495531024021782043041446120563772426451304431402316237832155864923315504788281254496572367223651003674457475238464007357732898421534157919868006107400313138517499583414248034704508348918327512331899839701854150642671959557408708328825683085168754714536250681354837194881844605374193639176453591544532305699627796791968244595676661882746791151672332311808356442534332600620720872251752154238231522637569447693718744576562502381869477286302684966886370522842785982825619300650820017454625965345747910159482911764736216357092032870851323948162579529741435815227615041101046794151327764257258758898740998500366517183801109209644577957355276030560011540933525851798899068025540293098651710325528734961247786612315336428086203268525077590365338528835387630659437206602231174346214068236133521193749768177757365328154052791941424777535239005374691918200388377980400096340429017357564996475387242872840106838306500529163448331933022710559780937923440918042081562215652016680067662474587136506108358670671494436157285241831733457284767660218146046701892795551299126362376016108911597040698300763748131123984012617335273788224946182160162490605397103454219146043034072350355132750570306810550876818119327497363426353520802050807801788745623471978661879377062159700041648425656794816380178585218841593695799444912142884822630716190536403024588056366033308394334201710768034197610522072543988290737610750177950625584493869443801509818776647276951839920561235269263912699218683893662722647643922017481720365600804367121734289391874560571751694563207468465663905945723140483982031819164893095722258466129885006056094314375607395525021862648403331074327721545839381183616632428861236136463594857946006630758937583814094561645979934952854557800362354401260365187367629451409776437717675638875617608411947929387006189184290850592935389664446455657097345884990388194577004170622246593868497231826793339257661542805240860315296377624001308509621413238802550949935755630901702470530191319900401378030334753664701800302831072834091901872229591800680975397097659506731809809837138412419982439428570918271461825385055150123730312294330887414351007750571160181761475348499428008350620309299659452267732783156288083930024919842613653455712358446470611147221883615091947012455616519345977878599315500467347863845058147354074899024043240192378625551934500428853566079033145043269275117698951797895181307402430742052464736052693916302275542716069088124267503237210905217214040708523353564967174991046228786200024222710736752117117452865642270813630506705309295039449013458275727288004217198847461216260615799104759821139252058129114551437493794328363961543745579546629806210178990937175144315918446844104384574284843130456240655360995336447690010782437209689970511675387227314405096985332807560384185609218795552955302489192160409486683698250295618409137535784184772420172326042343140632412067269099257407325422032036250445946118858054297928760800819679769811912916555980383645082105805376983530124458648458680284037662668408763940552305115102716148618096338822011554350034641041207648876241662994113861135652640470109136040275675606755407921628532388925844386208681627015147232473992755808199841135665738972013334444425204727293279048634517506981462077816426303545142114791963966493066029709479750074477575152616400364015463491933959109860154709829955089111672785965860386198884958676056967686286158095977903539032976012927789103934179527104867269027638051086228040023148854934338501816085127088345394961413604842254797993394653241644759560508206701266823389214955229475914757603817441459063351069322177971147318786053028286465458145205821771696040143563651304909826125643473552969231817216314044119712566437327222660010570272008338674681086213101250290443998882738887536043857886844653880645229241067110395032254732612095557693382750532588770584606163868742913075212899875504624630052401251439167009862910326309447206481774823706756760563356122895387611912300836620856047815648571752653083068066457479400674814192824998497265126403936812436135248997587360503525269913224427091521247143348984752813565334594798093086782002586286423740442213449731496201474429835812667476539379153893728720712143741857089576704584543321048898592360738423211175451123026854999536950594069301177894520425351133342038131653962392757211150803660891371696754830611959863082440380258818582323975359162205555842090800482176760060131071836567827900493914012357033549148899189336821840730588949520029859721120758789115943349310237457183369026309019636980828497531502006946146331844216778013650797156408121655494085637887711272586287265410327871927088577891178557441994943330963821922234791116391045905524824212689453564757078298747480046205088524405079771140334160166574619601871565843562072604070595477680684131649946045268754832169509837291282860803785397126999880535694500397272132237637585900807685637222292461031862832411602215728304353964233434966367538662609779972406765181530541320640251106622257814094716306533127161951326831249879522370955288446606603725438077866077969531518923170113648912308435413981631759283090432563387472909497752760028070336109591032792424464813436399308460557996551253599070791549889228541918398443770335176310412689454470146111248113728740187633088723553625153962147455904113583395784898400326003778173149024729494336705193217708820827319983196692652459953245686541759245593622088399729193562563036528857285001007184269728855272616807946294783598405234128745867553607994821187919769085008513248097554045424090361435086863320888348959391393834847062883293419984666747329417760515995141969457813796038496608465352271015619743801643714872244894013345324080467740242684026844638511865118566187617863704969429846071841777462648293205587950500908670149010502267297509788190171979971017093136274977140931143596679357423052905024359921918007819084795036663503694029947139065315763763615539386990955317080578976000281648053266815338989790329646943586469269970327166017848584295968035694096438183631072117797016503232791507226329232178377864303101091187008436802801282844737909783265019240185685738808301764766900711768681256531081258850077694613680556781519922197397881690513315963344756718750522186549120494718298429887528169434496198593817247745519503589462875702157895047145692718465251024703298717343739824602263705143154033239504972023913974122305486348367521289657763918152486776806496105043389017313794542613563429149354138357603296041103814895117691168711188704146825165696029971587146716464657549459726964148439227151734177623899028909855526615987924709617858284382725737663712614671526133703819878254708614229998305939982932766715857184561968393265388206006351288618064935213845027629808120709862312005589330804273771114434282232006889408545213822443237535312826503174755562263804218625593536233751645996121816906103943928073016865859194348541615420032581032726557834764873718324704753188022186775435826246651001586000594895271362098610662692930537261629957555619047573128386563339648462902452629626026760615551155416437262186869500392620057600229214276399738577450162580562515261552988984984939391122204442450999099455973428169254711817534393059669163423469444579827227035907258812380062179200765395985076668808040243503293244824809725085040827258600926339213217266520574970308349392141406118953791643515261072531675219715036846269512198791480032805694625691715044674908327331373561460882858847866246773028469850247645039854331295428355498531356229331677627202529696855838062869537105394069135796355346819388169761813193421581762192360210502499126457541209824057273376827045834539804822571725506793087461459151277024914998178452707181985881335199950451753475774746737316879757892417070798265193926341564363765848946180622374309255628600781640514687354067188604449205080249069590080617678890343800879105457596349527366023925866026013698189846164768292220327283796129889123507748057406399523676229568189341091078924997981885957036177672178159549269127622046385491479522298234960880989792224429382976207112877531871353290509392673779702656000354655209047172597248318023939081411950812890187959174114326853973758826158555353204810749412629588185662751984897975808116801288373285142127771547132683736119144824247986869536469305773376142812189615496922566220136293407493811465401000242411743005918624039602893874100952790096721436153392666941384158327815152726503411344377373398480168492554577817312782285246079904355375710619180012130076114992437297818028665488946910563830000361488622172627125526672062462901832511360460869822194699930669525829450764594273980788690629690149292455700005464225803416458592141404182307736031116133328336221667863206574503992028478885722992429049969256210087302170327863571697421979970012167144758828851051035863649844318103679767855897285966585012649208944749001782672845297162151574923292918937528773960408144792346454274003151765202588315466024854280871872330150948615107815756133546315414752474265616366588519698314326612209106562119657523173669422915889318981366075042026441607222484821139681092022294069208129263155081108348507605479993629478414318441017038172869660503125842672912767282007660984797384418443575165793656537850048819259671876056703007575712323312729504419005961173141400835669786548893347668616461047182121572743224656784446952089896181031324754900794009376477851114912762154943885868495611153252065197277317112748051970168589550303250029320497622757403213913631559990992721567392087573659460682466749914006150501561790526060103686784869534997483921203723438837159277793237729318801140338333704197972602276727512171178422188480371961815841669326677092127294877287475750844495408080053701863877337467634922353494397754852218802689927509123582509093410714050658355850015086952291922608203850589186544953286418060691980625300247528500571329927267268165606720903400602791735970824658930460330834651318194419981784988178429014613551595040616353063415467380317862836174423210150499482337649921425529339995476170128608144130729483099171638031483271283067858535121320347014004472578658754292594006778742214464106599734041800734249358459108475335726947686284764037200343799597050788208094148484647044016610282554914729340712305627484254254169789173659971275522203199382643804938775179490936377532693819789364453734710061869177545735586620826378931101123783922976445053542903964559669089833748202368398479175211697577055231372746770140337436877954999518171570664456853788715569661531377356545607819288473658625524249717288755476887073022502737286611084814954301835846564850448232630910436253708025151412061932382904373615098332321117640741178278638558392449131575856402040222374930817676613963305590761877083091078207465312024691337225234247683551240780928172875980553977024190939768216783231451728912928899318128191489711730063800417817542179458162891747544952930658989681937445917851117588288046999261517545807855678742934562902546405405705406659883411232435188789243734052095031934099627983385437812338099963048521880054160730476104356325506048809181232623878794278177601476777965496425510262062833847299746391070022420923471100871787382828546637881362477820159596350793831905832946124827899432171468133662527918478139467069781523443175112192615847176997561449877304282582908194607911937199373791034644794827254326984938841608130686834380224532440192130255555448639027442801408790604986123124016770310496325530547185590227680630436422286664571811212338802757290471186627963437723734829803484369020647544641952582813554770942529968391572103100737313708029205802864986963249452193142169895375349676844461637395814493121006633374050041584421298373702994358755757133150888226572887116684241527580101583824584580233217567638539748891630153781807916435801222911691065604642427748429835896048674057980043276845326226492429575759438383888249968150599691480417676923497565896152326219862487881337023777716649589252025841183550717084190737669744801663125414607129244263840572767880843198630617692403003511723913281062303212140143348003818956048857904196736624480936091015846674518430746967289040182703331791289845758015739764856718779985448804716478546683219046536412118410874517596322608398576206546423615481656754392996489292463368183884035227996885829999528739354555110458189847727979154981754569097718536259554423238258661608936805978850417108893657199266197118849045701436012528305599584984428214942001567899767037683231863491621611444089580941137603948072922181454909232434363696068555003867111272035399770353084865292665582631438659125514787469236297817598475613276022861007005842421621302015096770952657132842430844767215741703661259867523473417293471139604752903395202413453795539767148008843067793346439357050238447783682584960494138097265986707867568858872159207257832974182327690382621457359048034743743656280341300547986965967430350745259492667875891250080414979532977865039025436483309276491484310407588986983274079238401154713733816520715852429744297521589776131947245576396322421490380947144447640262721839890290317721103871852937385884537525317648000059828836008606311153393009359008686834637741787281226985435672072229096281497496856952154941854406097049687566029802317996753530492162118583825933548528306999777651931042841754479188997981204199492584947784722126963412728918256442100643966147735320376732167911883883804442812791687551748458856700948645930147831088751993824210473640739929596363056622161366782022893354054607675145307623813766113610610078648212615510281625977933421699662148034318491658697819503333382758852062277478304057783215902124183488892349819241409215909715169829023298658292105886441513936615179329081669789170448460421791392596067439954499446461069297505221989936347670394950533990996179571953402486884985628051300029407797598495514819608663179947362613278286417676189119237174234855311246827308506270945380587345976908360781774267515395728936241649234386683251224091953024349228740616158657414466512371659801374218872760966230535760938221507863249533309447023791223914058617010279095411446370883814883002256898340771967423248860722571842834296221258886881746835055614657394596633482553101745993649839594334061213511996798384451336365286941324338896615753212835919853171138826875702752334506095082067540835578401528824180753167293284359931860237602039732923843110780466795368136608044130606673077970319350657234021159833387701783377271347120847381730725277821588868034791758057399780819425519366569767137862416637510242222194679537098125446649831720518964611739885232832023389250924613959790345148855343967992159849592647183232822206236881033634259094684033373876497949236513859120685730287815586285125350532019524784414163351732653563363569461786441210050030887832626129777883452078264315399578439904415929703857271993051281890663994686172505154691926156507293859224078315162341603260321246692040713985768127195353128780011348460690235675237710952791340214785394523674302688203491197715777505358647968806085690996070479787533394161223002157819131014110618139149977687774819052547538614589580537911368000246685988579926988137211368598756393467673049723972169468756834498832457767090437777764573864311018405700409415490596178888497565203439841100436328268265862916782709203996775562332699868837852159379541945116852319033144515104930012230246447853976344199591173446740519697908827617827125408848235182551139384806144912792204307229620596746419287773463502443828374084412637760688302058807125522465624836588235806899426503770717969184030654605095170830484909580385971399379480297316133309039077266521197818916914589890856081979143768320187654657752922705986305212054085811151713894306211452781194927676445974739102784028581615354143341145265381076573945675077366659174958468272995423195773100544935610955316381327511732018692546234072651682620420761582424224434696470912185162549292619291487064244589328556295210718520556355158424170439542276684867014204241025427995785554658362024962277480198014091692576788554578263975589724616163190024407809266425835415180609943770902203348479760503998717631436098554092013664745178882882787446477251835813166088463887005989334595283533785880163601521793513994562165553998610510166624829669930548943949070872100434794995978070095504095474791004149394417412049989711561203710550206884024908645274647901478575167043880593905313196158083938815315875011825286258945316528511389480978935010748321841522929468698565783799947826868732757447192635244744323225026626712093951848694763005851141425183634732881591842621128748997646198702393468155790450900332734108170150243011738295038302216731354404516872100299172542598249566434366743324102958040804884190658420368493826264551743411025714738795127746282367153973474979786651993117783482333372666376963661560390255765555920712596343329065888151282368765431559197855883370293022559756643938748571446503976649170582596119429919471350094054073752165046680259436585290913773921778121686560838399523771749547423870759972611996897350963325241351974524460187199495026979973184762216112231311422421828893298025825175406330742998416321401983237237618611512761831952893130270501205706821559716165704648462171323375986354737891456367139672059617228470502335656167959655335434500167126880794666329912863522243421298187849135146041866462231966871426471867940112130213417439970766303314112912902246084582012019885556082894340981136124528020672033705331569210892226663180067603029248374378352551099543034672548540376386607128935131558156421273284783403162320809763667544820240314066992520586411017323309102613528491429545061037285450934229743721571755418566975799913709647151925767801487351246913011539092880839786235801971994411218660598451509746797513328441174900824476332358532190559481851156090018483269686720625237022494104713721119299089360418752247704142277840605542212116013066830100548837015630467188564790337555297186767801730261771401644547578016559923937539708206379882484217025906245658696398629265873807372451035716419697674120403851982135507412334862327079946604124042270356903487679248214962534942354297791399922842907083510628053870471220910832889136785883434941635959617393655362017575261433693021894288350828756082573067576387414134874641818996317238923333469225388323417269895965869756859574027890336761867254178328879018476340029289822434043724961928621019902738217757400763490576013571682031766349090640661788160393420657379769363770582814820954590012336889572411578152507737416977037765707432210566351496675553688035514093539194813283352128439526398520941438550128818614035374653479822013723635613358806891365686943501886895343770161987033916423610108520552544066417770521211664897048493651604457484621386229597318017034642384753615003174770379038376179216325410920787732953164384788286557708712911572823167419437999913798945459616428828213565918089198271491136633036939334274084556099410551251157714553616256417848419446833829490125220542388356303350887081941822782946439414926330613914093162194659556382718509679196535031790807010802790793382397643033429489801095506341507547605935914452725541305280661715616606344352003431670873330776264045842700870647779609617016070728093287728369407313259207186425524328528664865237230324306240811444331624209474448959454143815383106928422655651669239598159502439473520201988056288970412786993555688942934057177166935799327112564470037804086605618467088695920495493052150180020831959808536390594282664927658758660898370065158086263471735084584506282711451345511491568517002079262652833261742308800159824749628088904868498178030869833246984097719553345595058022418109424031668409474941028732678315283577833132840044639250474513340402014054732300273863184706991257187975831691274035878654120654021519626454622784591027111679299568551791399088462437488861666969611493516002510766206949262652476228175275603247151511150641737814908476499076723538208963564887487267585149673344951479897684386400162381848284133705430636699121643669770260049414711077764088720139058706072015492583169709000728368467713039272277695048858236322025261840539253247418953041820768024964779212005085157569821652816542159310910278592586672355166589115373604567282699136469195513118066020101822308230935803679796001067309996945250320392904492562016624653962499060986195392447411462022409878241997142068364200495330867233557008189935414464669247037091452568482709250382269745778724881670263951157273172676648431283364945988067096435345684750047263882436416815005937253017517318384304167525299084255568899857899378624685787529990809133425022085218612973967643991081822958482307523558509644999777465747681808213672333968019442744725585484785587292270336454889337451476604301205628504850138769234085996899595157156608833229371954801198036722237243769108689302295119668552342838741379112623291698929703881783569644161340425671417293224102155518477824842735140301509862974252571925541947598300882327398663867493917526346817742751070527215552967845005329217477892678362220368928638462570672982662642363322251292434884589579273998546122101784721751010544571517237129297363844565458419187626263519086997349251391153494113091937567737089201179842412825146732527381672793950436192881248005208038963706876942566596826369269157626217383888859071387610158053040266012749892994723939434786741592984974486298149222137585643169917702149156459805710167895517222313343472452221102536232398416620799835001535329492618805891681438784230611093181180220606917049082110969115323389056339093397867362062326251087187476989271307956036122060218482430861096922513511780848666191650966496574935298623658384062081491777665965116413010401783972813616382156412484587508565359845180294426570185626261432298158623964122748931455232949274113122585823245032051955405455048480751634181768638788792117142953972921905524590028126428243997398085347806342161411508276051989934955462516231037671363630242429821282418887632066904331519014777226843463339959137349983310061175182008552957658840155940852536698467879346915705268502557234515684439623476269285951346125648642973929081273195804864424757741836779440228714858780046062672263757896412108696908414339012975798349696762461461947585207200995410952799790073298834698495369045859928523150997871324310568654184832489899232678516431911499057266400487276538752593220854951287331249618272833098777689748972961155146618500588713464203726292742954432884983828825429680265097839264883314611134566723963836048385204201972225632024935087342417552264826318424549290272061334727895693858788958559785551802744744667922276868068704498939352647082600584225616550184013287261418343452133852849388456304617449439789615547861699999991782170248869652600168809804080682179357973655757177260431982622458649703416045230356360195633739059336502688893857146797728183312535405355292452999648699437696983286113650359678904713714952202943171945089793002289318675525045455674150419604872232277877802059344339449280049520295321521444518029304585168371095782550416339345183020438254286794778737034434447085074367221616295543780960121113583467411104360721739587087056551732539749204706042476419690149801984166023136858938621185791863564689330058196645128562780533459227706842533815648465879541193739019109669979847166822872700449083617783450513832846047694486133107978435673922249698846959699731901108696204437267877526623815873973360278893349517086218607580945194769263580054429380815757617522394136635424960243390717576665713081151741714908606526745515434308807996959797553089983685294775605246409749291242805325016319459083408313594087616032254005022052131979310886681239475660968237611867593405213050317423106669312947601514675946592736373450112985003416363436342845071082285456950402287967185936603354223511112016107252465805083140547918219661556468634714801595590002828638814128985366398158971740246344366208611801448135458652787160543358792885948523166449678724445444802202286225972161181219682857137105026063614767098649694083215411291896096647942112605504333092270096122438721791690970762632864161845856856926841954923979031756301491228437973023466628632589114526475506142868683492834346105076789439227336423231901189462462323659707323174888955587009711395911428473519791969807020853070512914300731835654520241763790663268466623005304699916137062284706261342242560517044605757792956029703607178292798173281138808275174435117713179928275048124331358734762666298850512279907558330617197959539470783179258593382308640642369495469553637282623875955352477380227693751954990445323793902048780962005905597854224399062764414379959186207449115152510170770250967994315512238127486044406697787747733174959212157938121801113213782319941827437766454216108575313028897913357378171993210727940563101242487736800809306321117677932310258270560829084228899378124284819475878381666607413251543989751125715398332437016510501521494991084352699780256162616143754631377358363029733066491843984547279362182835804797831809234499554924609367900064173197248111935975879823816532760843684753627038144335144859083139593949243698095866789887765145377165441257157950017660385117822503712156732754186771608323043080634886419748568719806277739136399944688156854612647858946564887509653228861016892037741146404887587375383015120865596383990219629893572135441134098465871020062708597186143964885794630997772316515861236961917450639560213526498426359569767934098421761647192518773548727690935898730550191304745239035161556831585285227594009943229682644547488059803705596782825609114319062057099023384679055885751363097253575409001871044361453374057032123246994166379525636801819150501485954089836770710446364857268274253775943375978397963813032926074847562627197545933538414895033687607707567039618956829695157736415437103744147049489908971526573710435001798854550143061984011978098608077290736026751240975094991017267068259820027075535204009515133398568869483150794366438923792861269501849840060270578880205397248036960530197127295186657590610292733965812622581340584048909870099860642985515270940822270383654678023586399647259890727917700480454159378958200345408479654047824226629389511987627056387048262903919160782177650018801389789616381640904259984644698125346227040760755387660712343321794313915857400874673513420602499214864965428618276223201563718924096559415509672629173793031321370038941745362281547408009437510455623931660179180784607890955569073091292544027261866498421402061990232277853634227988320721424859235690866012647912683706087454245549133871851511142491223041466070047031296948526925714307030945561349486163357589690288370720221114553656205528612784130252822009498015745617307981756021656879790395347117076610915132377850279231176115825014774012299441528595918077812993822425512886116346761263401084204153731330060761803384584677992178376169027342845521933432479409080957690615994180545576088249648739526337176462643611842447557377030440460791359164083084434255234722876874052805993347098431288409637725535919598457529676632178300507852746726951575412662949134648380108030552102030667060170509973078847470135540982377353623680005483097038999517562298278397333331648668044884106872449274416177697732071002188707520215232258465573935603061094126288114496724997829211675620832177816971957153735824114171979011691048414916897238630641990435365088912324208911830929537197128598840102844853783347886030048958587903605403200302726725630253112271848769860659537425623796799269884075592337975789632788697477817492353186958652344130166935528131285461315727815268171533562004733583145424468015645994450611815150866952626833291942919414955638401535339988845740044037448766801693910381285658501366434632220288295735595861631788675503366510898638104066645654658239457770572389198466150172070076325414660485482293599142598531502352538624821035547159919137575409316419957325072882621183330687927250506847420081507869774107983896869892606099467312009472104722243447075939516820856575008788323997074834494971355787046721656120302562898301647050157740792873864143511722919012055397992869868371602725918823353455733566770082570829883858583577088126720265360535359180649792483211258006050735663168825321747157384450723118965942604828803342367251359537808889477375121208479050623554664811727680366724817845235215095982383796569263274724292988341028971062135976164945051447163306329170120444944597593405749954488027585030306973388477904309822160885390333051283689221405869224233636738899403448427289500498067122590632572740865840749285607080760450823008071035799932457414515029603109161675007079585906519484856812318353756524334274085776475858040920486260932855860486187090037498754840231545620003471617084085280428631999666827917186497176092932354498994406233114654533828466075574247915667457673447879946240665931300262937530020225272373218669499954846136964733027718395238670482834905034533000481542033964096011586961424938149566190368355142018227359764050785315856039955120808056318236740415298584919129632545084271024724091727854868365957983524481053660952526464792764523051865808068804418724809742185508641140411894261777274800428730248806575925312729858641807598012573993806546409027243123648605360967968456053386581237109843580969977394294188510039501574145414615070546645966954915771026085006281812697141584979476938700277333457247892474324395192316641172996489678866890332635997809946140622759800884763412898048704801373307433634520927855297215572207389279969576416531988874284015101908987592423228265904708270163971211220018038507907361415465974009487066589700753295800381651027951654242132486751120835595809234918477014873115097995719213226715079508582755528381032184598932585892724402989941977492173935904061393006212362070867206084975530656370608768454404631564985035391396903444740188187072736396514415634858064379616105051973134824212974793047864166284850578002133325959517000857880232997612055432623819537446937906025951350736355330535416524447014374166060979433357642428371491316570899173372648843793234681879178196031140892367627745773910439210392685426436259914657959809932838279805586370481155612648455452818415801666196535532402960086810153460577338090348276910634853277431701488479334542908721462266641789744578028413523508552762741193563230782106041996246594205028495542340285936367757423396365621510739997940478025820821590758143412149261073636428815123355253378978210264362100811483664378271820226704391786602594151759598432473468008561969194316436750065161222330834157401008087256300611839631447908156498302389348677326212921229263985538592854216040451183117455940348012203517606335653680901274124494450489941174086674400259973471923336108600606869059909046841953001783247464674746720247919023611177104783496893319055832380518861926344695216452026570248580418951132965794985509258056363283244696557006002084812697715727948319125792741928158547669838000497107803691822642582310925180794823188704695775372911618208657018232560916200226027143122835583113413588581068047516478738093938320613307933608393562246429625375163351571517611026648025622330809412824862265397326884161389775626842027450314024007424742752647111972288484626037393103208124464193650520111043556997768559064984937239159965291229037281491897910097008323619068089339048618919096348795512017180479228132315912383917419964158539489500998760414815751090042687053525757104242616587322872225167127753774509193310540136274279019541183473502211154049401975487428818472871832819863501868317217567780686019196103486878022644414902762950836082213484054723895818104249047789669389050053170045993176853810615809727789306418230063999673759273742784993548128788837931119392315957886545123027459038298951985182212130924148167208395101592629224082742864365263644191872203653950703554385587777709432385244916472053391868611031378650950147668217764509448465301010121134752380933215057394878411230037005654471234331283577518200890661484175950153651038023868566112283258813268989226793922923613449262572944897700822227375417239467807590282748445281241648726713641294025820772374811690737902372575268348556521272362576599666257353774190403295210509027874400211472302778402796919055980503518110828918637010036314487691031996265115297374393901446168472645944535142282089741457098720418210261942985439937060593695991393098993744681248624231584094607762301759413773944512869748669705333445988470800884646673032558035621258628429327548683564907240346718337293808444318681759018913941056559716040097420579265770245636600835253812688337296766081638010780951937964404801097179507993532624715717363126606027329838601647212497344121260057888213511813814819428051924424006154328639723728488480822516014174752153165687867531659244745894053427914795617334367049603267218404857883973059165108728805041772682329825892589544709479610947123152180442104212658903704709234193653879249001767372307754246683690641727707719706567255501526914895979955916435499758657627445418114232495446587821298504154896806491237156717516802687316103640408967448473997570773181933902391385390456905665699091859184380337028448132400804760712513826104301021338710342466487896668464556432600125433795456021951071487376698122677522543009553377090585535384232940830554684158522312126089722126698856984817543785700765170682232034018717271810791971437272508313248868023878459782196633838178755325559405454429472873958106230483507579784910058035992346868060225320608920467948326381051123196479346141030905222282780944407304540858303627481687192428541465225246786219075892908159605934337194576641139102305470459924518935481866553405242189678097701090081409359072639045742812050246262786655473496564632676190525217403978618717213084827167250503363015857043289656649360059418581275133874972717521120559833468516862562764117855274595548550353580717309845107618484914365990899534886369690005226218552643726092821243926163758270531438227867113859576517577032063830833477016312909592826847724806650618638704943755914283969302408243217766869550856847316980487216243750749412006548098822544614062674150558475373057530167112893028200428611800920839192640236923654681283984130055628468097318520453208878061315756885741695433843793911707653029040180244419941878205000054919266062665599619312912759073336877833275957591582250630005502101858067409534315944528070536242556168368463681242636730526374670124952419168677781894773909782176147939341183987908938207081268734904973540181994737453367281994297026018798478744039028205528170769856836162106756940237960545747481697648925332216709945843974619538312894833256188056402645404509829343826161154387041935458659403378984815086413815900208861862391773142095521947358405217085664468318615079568747469802289950715715506252970188971653552603413946050625075484669896872671411340392252437315243352653477474105044598352672990321548740621880478969526092237351604884125695995924939256157721702230935530749861919397334340412642805547083776128625672324405906109900337555866340885412932696683353967726926615976268154970918515425526878680878612692310094084788843264484394619566181510958476830672185082477989492134826892537279526783866042545898294980941679203329214489892011176749633356219539674354994445598558310126373791370588902974354533417713681067043416730470802991465544997622301990066676194784265460464428728844149407119614662824225098557124501131791779718436935007407157182315767700145695028190706279186111218756991947525869960084076489669152678734156274964970468575521063062951834090870560288545128870928089659692766533452458124125801476519727543108533272447175162451898435559533598152832895404722523921635521700543218421092444542721038154594654559704560411514409681876870836442101310226847542688049147903168968577411736804266223409347442916579315098784471676007052264366606928452977968225007413580289629034103073659777308530826240839108840271751885939504623380850962314933783453731728192585953147758295685193718949237273701902171795475018448136371959425117947211502175560683465985629380824783973805897178751879082641153845031720513275308461312326274307800453196769842355903460729600041210857418268492872938311383100502105883392367213672983549769087363258739947805704036316055049566059760736629142210693275840475872089549524039208565574001953068078705504780415788818279250176546196655388751490837556683753518998290136028260281183822241427599905277080518702693363730947847422641517957235675209857792567493848665523827237598559590113504932084270500153289723410136170528265387823891336200127506594655538769053199415487877630532763702536038244007745435935254027947836687946169697891755730702935614766581859862635474974130451148150547197203265167602513579331614146157439235883778104758052956794121576587617921594613760857764700958326379497351173714852839434779890739768055553651870322944831924692735017051209791348715668129064189852292992490882271094693870290336980126006041374593174845312465104018127193436120505168319083232038535028727238343698279972683598124091174078424992431912240066680857743862569037518908375657334094049911194104169687022720367566268759273900243271789932552881023012431858027131640908392063415676896661428399959167869554045599614825036924336071859838624115703591669238211507234834801964310070707787516890529396707886248349124678448589447821154391168817424618105203983524306934833978848037687442381430719877908209808560219021664551923048791058657593834143472159595353287592003020196340857314205931552703225054520864407384097750468597368446954553824874648610679514049724770905985095195566496978417341135508784802382113162283143265644420612915070697803354981490585443723307502158563999594932897285289377171649861095099913017660794991776619165246490770218567480571392286122237441909741897041540618198112775318823647553764492122307409512387214687050808136514966453800051271877120447801580281032047611505319485766421565299769125104257462996608159942292991298838567871042271116107332100973648751563708119858659614846979068193605305078475729721101032601524886599288625031172745667505850262426145604171703827620410063001493080333846958769812806142623823206042900382188719402346525433553004059828471687333415635946079723081924991436067077337588463688308990161723267467485499824869413654307349387421668407668889594982412320734940905460418260852395902768458265220148793318069823650837955068090199285241019765874836669374529034382341410884659568000264444254753036882770086164154465413465711257171290000943283454329684216370452849296969725737616318517454141563007920906206070460554661305597025752213848014198092197942311313914158763527930164660579611455497327612507965234443758542382807653934136408633508170479140469027702219402455978185188349120037043513174504346528328681249990996247182745496206526847288622661517712231967844082597342488533873075401092248115473029926819838496177540584185571154572121229482822302036644385351051471375692255941207151970475206274370831466034967819282514089526434812531214461373891338232622647595804214932929660320340685531109361954278617280868819960680780379828670256717578433807462581814802805292914490941418190900336542736022481026371328465485441041917777325695614431064503046553803073808524023768879335279792027194977883700393985074881365045542789636675891183095019526901901860212004414550460827827717756740733635604042686671793157569474061005150560564497788608373146169160856556607474502547978919359904403007902092136868837242885816817859722889207628905027828537174171622210473831253571765500034787446811438762659569846110059389340713536740844360705997535222680789498523542055475098807581135374498770807174547589098260691174176487456496831678350878271165881695297322070710799000362025385840605468697124516338353548809305935073698914367008350854032163542399150319327022090050361587083368975029961094588331411285281539676896545578275966845598142762883890638316898264125953004906067319797305740264768880543739354727467379693660490263428529510220215119256136270979421025488990117876953967922553743593779763081781560210662859251426872692767741090005642554107966014488106385489913997895317046637250660384362568905498864530340339834765276485230175267037903915554644333641452392207977383603397813627880806844650807923580527161878800546168461957232217100585592787026691007734179891027305403365858200278251861263707842679025801540421413178984588384662622818643631638022167036414979582274450919409974132164975021298708583891337271028787670020402597007691889771341124527791746230206815552427329636511210660715307736600385084531088757317329366383494934908821651910959970847000069568830435575778281515105891209907104459379792937918379690674818834348062111870129768301561529429317122025939739026582526761001103114574466401164507719279145574474657632509138553738926843263016517679034866703746802537708528996733495792999983660155246073682022513409433403970757815569581175801845429603884599765026539934800326935245605516785948346003361582526787807413109942846976301477892094488792753835863731018063431373431855278986410772190308886171017527265876445146572952283078116542780296733642098191496864267053750519579036944303972637840784160703130682356942840990969845916440641628102707980289625641463705036878716695502392803806649213277378429714614697383393293089501979667915794647274721795069514759057027281387950371960441306233054529813918475547904668585781443276794199471748152199664642551664445379178434757497127883989984598835493083927911032742702542264060944032524727894920917582260633247828185629953317665758944565965609736250729450449620882987501456279779266285085591061206435029454080650722205950857973644487075178049413478996102594107085121941811809580039384646394338612274867416716342360140490091244504582170729011950260834573151109818159729830304993533741708710533959263378153755917624268209216458090331697502835551058818202569398834575448624684607179274692058120492048432655470364752725020982291482030830878124789794827632280905308775150558911926634177281338532472412234520970804194823099573596020711980776738998497289122774445683213788565049165782255723614917291021879102648537834772878354581911878288971195386164646435580206988824624311553785222948850597211233668606001761941070623753844248009074893815308723727375604023110908621932572541039391795505339027125094981628107489776479914952972544451820504352484456501428117476216442049159014236261450484140514617569224490040614591373056282649548891912184975936513695110672298562890164555842850621246807151809983964745356414298827341280457354185748520423428707723922777669832351248113103998678915177215318043058170852194037829906488999791156662677893805404292848757669092477306399201864371038729774437086281035547642026610905486391933637145980088391048786894829037379379160507218171876326529618439939492745448231426116002590256968782872365497050592565833011927885589515005318392281283293489516814625913344249424783769509590345219798669751556557411767496339723468039606653809917249426023041961531435654518753674814856788247146782788432625100267785036597701118839398588441931734965578150658495572663792157356204500486998432921597727192657895489855667249589279118495039721723496553056717430922543952980787697519593950445168833514729343789502515408450110256450142944407690335678922845664323978389837946126833420764751121654060892387063447254411963805790031794946377698538905819334687492772851985059206844575284762362816426898037843739081133713656078009841238171777151335243653198705384221839508247866017846816067955134945666451477737754464636551932360404419757203298762021011266503744621686349406999009741181119288908776275366829045138973211098930134016233902873103885714843024661756588274166863900623756500778872781417102763039749455884924187371417503351054162971990180794344930281773078837081084833247671898529044143388533115426706889781471986671796335332597806283857290860996020303568118542174542427492774791148574354055361627144207668360819727027650949633783702039924364884542855113513349424905575675151832803700628361686134849425324622550138001914454304801889154924622459299443967981488621768308993670082879019502790924543575550134158379395893745059366636635993979744956163378257743381074628009285270861791723870709318853513831989802897534173544113566532733583924044722985204631727434541325117457790718142756374874252686923745465955338264382311981261753487970839027308714844357198054328073655732343299185151731787683006072034813768679071882754100679814142302170009853437780264477804999332234957259802025068727213829556913545926463733358932203883275374984023718634287935248637121233816700327514052616358783529000522198867370323823552116128354525694619146519504432134717119256666885048127804163841661629338403960141221765393903521119348401624386245284028338628300968526354095590278374865323443305486803684671397228150816297389215817229875445784292827787042019831717170252833492664489014399822698143673091535251513418525054623945999194592673912364417559485843315751628222294800214564139577738450422253041527234217970932622301938204464208310725987279303659342952276683176162467423337045422905848442784982588770898592721811997399201786534013204065886669537175768911563320754900680157307892955967444460459621222977476042140203854002169039374343132526814085858211969811446121153975557800358895172817467753020804008700822345817315799683282283199880049624389812838575454845048257769593959093599157419190200275260602364952643713336247701553506815226967507555086430523065512985994012208722981018329106827386440526846440407491311970959348887250349082229055556610640884959337616188338186754371759046492547030700315148521952524958366128237402580910073658563075498404333979494585842396941165480069817576830904071762284206201193889830703065154727120527990751545036419338732656038581434312083397867524708103340234945263348592475985702744640674698121847274305849551310725393910176332878163743265971252960688434556531686751529071252527928513807620298535061790525462978468398183602358692669817991305676241894421185021795249293056905493050599405997838162694432095869952310626437523247726835251292066878945644743984601961744719772573682727057349157128772877657139584204375719512453792667860789504747915657347010045624135310859659611580752867927033419994507870550095567135900523709538924277010723811036610783017492409364491308071018259361753665666895365182476009731101692927712923047517835042834849176363295434759039344431657347580079406008814375586894558376845755511628955298688620759467154998283469588676010434897314871248516543152246067911298448076386869168432441273211330421929926987885903149805833574714031419855222564871623291790486294729264593127188939890248382508933795882100929277113543248448294611092452320116991258645153713043003827526364641331012488650902725648228300920412382879393059334449304135186161014226469733707823996938321413617160403065353131894350141326451480361179561146894013204374599616951951093202146910807418118981870779651640502679131147222585411365105719120464098949701034269230781309072427919000787802754103685569063966584710570735848322913160278836936191321581569260220820898502918440510546825420557149180151090837445481009527161331903010695602129006902486885524972888106805716977398435979226443688785474032444190030144570623484065476881101169240447924971252967223259156961883931549083551657353429031986503485045451797226832577867695467003540018907779436125439949205115625625675645958917001265282096235505075459967687514175480766465850220181753620018946529259549124318583817088635561029750137046684920944364748715259238906050633911554238560657005404801149799969118887756912126347138102284452986041286556054880149839491338275106724537435046801945757338351360291789752465974406557119033666532777342583208159412252984588004927023815448536575351284304581753389259497121748608153211865965616539902374444495675541069499821157569050570883384707828340011379206136044471235104570136623351831052686378029714534061721535428365359420021791599123873508562207336289264287029394522388471345655048849660772021978255689607454976988058410987775449277380054784297965484176482742553358313335115943331561911513799154554914802692155457022434586063473322686060343710458691645159096176678547510071471449257377529965913554223375858803273374034508254443737649967204586668549144193828003973923917507997659381494882455354924095635660717457374740881656929670099097871536584029886826882211309890093636069126482191018163780399820055710057633300104791638051350461311720731432133762488832608441355792207848397888810585290811342657351851107507061982423084506008780915732065487334761494804996858628904428804680952871402991890782082315182001121839099486205174465587433953578177940103173310914432194714839775748436904583229752882279625984756623617225805011606104527502496819172199881636018308700971720122251988619436536778026098014542685603814211409593405234250584959267523461966226651152128279489881758788511472193674858052489972849301208471996354792530696248118230777287085501537380389648985950482256227459726011612412027037567702050315583988368329897189354835425098699793994003744420431667880423465188486904810362642065253545161556608902139607566762829985738936423286168911628652958535706410737351518917267083155693044105373640948793681884721200063094438462369319578359076681184869664801207095325798524505201566180763783679317586698689992029881716431562280369904985043190959693280412540142024035308177206107010157893692922176646112669796650664802892345182417966508503223988996697749366893134338603133515678610584042103808425211998514296761122384714254277667395121058995214550564792820417373595911011731644411062051424767160446430303749177095595220843913574889400248206486974908563128279593185539529861976587850151027137459961951287750794902339979738281355468731508357668877675588346603910826880867827427201439472939007011260128158859400231518658662852362044275626813817471566668405233678780951614872203420759799786566912362485715441021316373201895900694529679204358535948625025342110016232376974328058270220681586456138492148083537420554494099456072996683904263951015489941772881223571958941818030243855908800835750287328554397059594033310839290911091377787102718989622578699943260732645966509306868231556779708594775504580758894058493577771245544873533832614427886184328931511060437970278253477393884192913361815419006260292270943988419084034797284658080803098548851670579756979046797355895047811463069282789653560702700179010024860295290386288179536378285201084572886105673931273263996127015599842710975631182608540943489189264934081811095298039685342499461911601423400885362572023706816506863800184583828726612939282836048001007152052713931974755052741561861717554253178657748954446167890357360391706610465549661618705616293041788180048992324367132418156861878916247272836378790054674596654161059760634666033686312511682052004949877399974499471218112185770365648145444869946421344875529051569407911644551997288187407731782024404639307148746270466203429439523142642231231926627974834998959399437288309358641271266905687754993755715186703561355743741498443796029703354575155284249646978783462595113730692956067821642808753512758194465954221138753547342170072412528115056966753374374911084837847312374373195745364106385818636684745017324117892318695926646439131329449448938953216960667034860060562000843603524009067111932252249570485625177557920702208898428734470826275927019379008634958076361340416545808021743367694020629406014660447342747836130870524562290004618972796946140364652487304821529421728765753638291374636114528993227101282184432011118090880983906612410834946273826725668986414347763236106887421471221760299648646620478216284937041904634714009728714468531791999417986493717119546242131095438534250310548807495450832698807207703222307470517121254813317524200875139698454549682564056544647031252386609469753529241163580208227971763995091626076668618122001744671226602468152356775414328812857845633016796314875966081262026775598389685801042343689640904177603412981305234492661845081832823812649648354534771755900900081888384078712521171258758113176073910922118071312297443769722134540959657708637684873562326412304442912337851204860105957049085183285801954887937584062804929018500435604543711590157588585297303138002780727007541098684045607503095517859167007496236140679373589105587037804719073075132817374244024059793462695356194755602163006981066129197354654115582730881280116490522134912214916982089776333129305780959911934162758198887489263828305523628196126107781830254697361500942431173751957562371043634692108057325777698418528340061133294340033400450158592389024031204747065866139589210068257509899725071213297773042048246381336404360413223980223533777867411541280171118662703820855865072755350578806768144298407218773740770828892557901595345534495606010845891674450870121862099866647262220866536367840362288336416344377362064298576184537609028273110146303771218192956663999476647144294661684865341013196609714100423341294664838537111659391593460700974605575340658613234731724790777339564775789729558121246763362237289704040214590619878645208518291415504857383839816732059560099773214258914347930595399178775073130580622334999597993182942296154967339025696215920268361209394486830242289481063244240999090274568064879553012188787285566526721389375700286069743441486349401032602883307048068858428144414911370778803203522761897862983628296599378517932266046350186122548420826391273337929575161303708265083318768276691252484010375059445575200075180402804956882779050306255457981102593692925942400017008731841592874448054353312178050196253667105917373637665195351426764874177193230068995220816274708207428638078160583815395441410948467156688787190078964730390195669305110955424533817604615856841696052392410029324256405346552841057004143144794389084533377177364793609822309369388741035686354272873018531577580781631336080449237049488666541793160211399033379743335501156750298204918350169045642022065248406592740421042586277253899069924726572502417442863827765100780477009202453202859134115524033033234259795860390755219900253225273273755642646887432989915107981190357310078540281031398415817386835789615728981988651317148394269475700659633118062528493126323850721221755347757299974705791285474637654806099803239935121833297259763714654572123365340252966312357983677349164387084687889441052676682741136484440857489806378155887047031254788920449324897130831728093218885088186148412428846985639517719807226774052726014303056946267928603228402621229701059495131726447758674718595742643617549898003355774765894203057994427540127085884866943003486318876901565772351035270153437642989127188971065857100585675003969803218181051426686024512001959301197109630612726875997043221322264549113130403855208569803867439912878340802984538734927700579401939423435556350667361366726879484795551558375950267721011306106570270469987457239061589346606894918319196983573691636353742643093990599472919537207994793506281098217442568824320977170218051220457570152315029307175319058369951415465662094895440162410056926167214228496295785686107995726802920934291656342385597907358777961991512069082111988304542816468715670498050520823181794742293199761682975087009866983322704035927324386922130563261406661660098942760277125108155623203845826001188066313940837971792526921488163068387293209377202259118044589913895383626229440458922936353600845574450886980586455187116306942022498685952728426702849181133420605813120103442066524648013516622442116189874079110140122964274558332424215075048628616149822256939863024033667687049430512285429701341628808405793301337141545816393524359926052823803779472478446913578188520831335025815461651376423274847154468248523671201489397096814858158352806463764860129991411551618409522208857643707738245067551967454160266995507901557815448466985071325511659240988624231552078719326924452573319751754096683655507383753049356194854287015310936500278554977025296051497709917794498336766533749183976448507237340445012985851112580856411862262951380686208978341252313918198071286806655270866816086346260679853920771336469147317007013495077396782796072215457977930905000813783767059756698868383843004569690992636798592690378284042987667227914844669531501787057961121999818023208832681643723834518068741786648302244820693216551658033321477789453480784284948289382157156471528150551162006791764332944926408456985788431710177153988998057659447822478730485388352728054910781546987493233125684280109453756567301883138455125614166656488590154920440591425786605383234332419591153851248639794552388517518454104140238875783453571038254481942936674363370232749851598215179188126215128589073820210883534643782828816284820966554093625877055614052585872288403855548761308205915417258384012476631364469805843443884728839902066504894950456903727704912886983904785083723602288197936717403969843941105144135120490449230853231525217957752834689984759375106776687935562746139796732968987396950218136742027068188295473935125052925920158407573370502587964629590273901787435829391604414741977827004376277771045012155269211052555895626262690726227722487134512533067927415467173540137793097890311081515863223784653358711622067982789872624115986281839216497682350585836154028881127324391029338665654954981993405356813870909610195885456961732191502895004160488483797616562918890394352614404910900876557694816770205104139774958570167915755628142494353636990676914771377059161978801457568577712191284407292616688725323960870350054751939507338960202653388230058692957111497897009603040278941473283446730602698204213586576898193882107251663223663974480642819276979677369183326550578157820341441322555259919143259935164208325376244892111590428273070936230882631801262277981663694939088686151035002554403727928280036650378567509968362624163428660915562966662078875549087809055188412130682079443126172679044196931823527587635894554968757214894105669069386925377020968138437167808699268832187136703108380293096985062561638182685694604057770862767966465844321115006286232016864135041502046276357843889515360506774725215037001883216115675260747038886746878896351820970958433100059073104027155504886214126681961386142863851726261163540088073516195420842388091346073639605491040403392046035187348527078244075529456034918174346961960080678946525179958146464159136509960661569526868149836546071889504155779452900798188169057204126087458267963590919761034979541807623256992520658093335105523399802015346999515482397839421669521540954240513413459238420041679775048801116981785006091255149476088353480515255552103417879220078114349738300582750584112581477150577877883669576415546373424209902900513915111491240235973199315967986071368133897782979555591679332662468148888023348017119421270697425147525818497683324648182894421788580122160290759163994172171482966131986714874967768488679236312633024817051497653246971401076222759889854643861329030173157102802302566281638329497140482729203016724275285063088416757963189627220366943428263648252414361154148255089672544015088926441864681320684491841248730267926890800173349772286950737214344408345254552963119067833596595865961848067876270846880963874583292950271900243858602764251769725072432570458732090832860102503250486016268369931622341454478852675789241749768636338550531611937600450454788502240229056370879396640713770304577809249573835260046543421560795445178361160965533139799680358478143569759223750166413847788828758268521498171482020545394516878250586160410516877101006574857581374253914905116007435496632944079443450272375636146218980524734566733334340347623816431678847383778328710987188021314310701162749125480174773126090821081578574675970335295559456172241609477682833270192165432788434747634675921382850853142236764194151211709861068342512672961732902914789469667543518725232403262689695185779191083181738289111726101287056081928413042973013632430356929835064028806768284595598921831068548948833970375755542745046055487496382616805856925623732161333060598058667636502254095887129444973524909844808279854878798692262735829703924130285998154691690156947696417215881716518825587682739354402414362809207200504197001735204136538873259487580318979272817292643936544588880550729096432589297683539359026869918277591264504125644528255136016855566653917396228625803009108517952080439684394329007801632496053102395464535262693633399085561499879260451064118958813317190961360208323782467044779340990478247384232697529946757340639308083619110766552385828717019984168575141233778591290944622049653018295522056678910873736773625970760507116316853935587258652793780634283158541678493912945285866587587152869956426371242273420725887809431969428431002892803534064059384335077946780590319106611001412733519703520570300757537493077567259980483434622324519490371448361104378779344797971485032225332305469192826692863995507016308115529577987205875494130216456840930793120205486413362258481082384159718046035756659919320877800542259033662847141641247830575709636435935087914356248849585463583125286781254348204840366443502163557339127330641221974725966714083112150131825865975312738402415254656488371211885284036148233982526498066745710335924715696308919403757650308298289644998490074997702526180208596066486873827074939756722894818953566395694065339433846496312194788884058328948263690719576600297846817777064246440485267577742561660172756119874340812663698117907990991838747900735094278067165519564435827313349520063084992396912443433963867842489305171140477191266265511908922038392570192233952075375589760944164363642842287025630787817741508877671541342765752797225365716102447388852745412039413042938308606599444317797476045946515591774089266563761444732877487284644310551327941745557490840456823867012300196574130021277657310912774319099634312251315161518351881556770113424913275717844363565556373728413291171851405699150714270436058774974414588147289076245349683232218422860939592322789809408783028064204322994247021662584103317540215529080441238415857700176228643302687606497536189378501407680752887895357889979779450758751743533883973020228258785597076722765959966991158829153568666845302324129310200922465212232064945001009180348062367457722731624046627336108256197765561905158122914304372267072586156447748621790922624525938545224616345657510698336374119699250946291446130426024714093449203490274919259583011655991354453459743762707970109792800782140294470848836035529241841768534225851349561341100031751401483723910806506620553845351833843727365018715603225760647538088449805278312040954087522504189935683911968839510702297725352361907149523280622108217506132528437706563727602405422525233883406032172809028533271843007837706259302910394957737423317670622972243255385589797493475790648522245889072907281073640700613905195758628892779485045155942320006171081243499911424308645147788138206138136211798498717600306254709237292796260833435971332156139179198179406453383564717404028298589148182158259845522556389365037417602955847307870078311637676022130550577844824753673548245842650783404055826403260194058914003571630248219965384477596481501688517923522436725528940546978679683915430543051794310779080751434326888908820343983802691370675540545468245000702708503714957648375936334489970191778973828647813860421377594480898529745211159503528177449457974778903319818564563923150183891752813483682599605945159669803440654224722505198719534445358225685349127455115272775841134857904983223687583915874886423818586589338862308160741531758050903660157988380737178767676880272362096677277522094944457864425493062707165009957068627447337550198827531427684158293531398474320305664355470024309746350177227407275281852061136942799743473981152530673303931593676695915849772679924541764800268598508848086433865787280911885006705095555032166154567456963726994649230305046180101813135704277464549397651926427714969756708289675528534819711438587713917088996821521011708431057038907337010180548928968540346123126832289617794705255037117156539485971218745669235920165274052181743034038910607762212128796025364779156880628854216480582749427203751987377506145906521955551573485023564971222535646433870643437859628843189283510481604389245050541345439537368218645761706656596546273159481804496584936705167781612810803203994211681224375114387751437405143542352438332597425634758531353262763139825375957637414625662880237500974101708254956264203976329792518178240305709627159429436209484616740564902032824613501976331231939350179696972570690643569085202103039143044618998142041143628184780208715085933857108402005560370713419520553857518610028379165995008999188059919384687647610280370532556435745959668465191191318638002835117056684287426016723126272252575571439345118831856207208072107049456820254537906168145666211225430300965813738653034967389384361775808897486923295227331431020306040796565985424138574637712914059905526733199247295820055393142648039179554370546610165923468627795539333627461208172251958840415429550197616262841569953350034158259378843624041446864380966728381475324414498056789499203800428505086702486215648165913746671603094843101505411403944897089769303349156910152528371685609377216324848804314908450010030847704776267728484609787455989718540619800309030469241839600613704630558700731696434318179341160199601013087367766963660712358115413005695507156598729557168323754592329629256743338788489637774486517425048904722497812883456714108015713660153313820151135363312511857686603284187144929196667565975057522453909724823449960758568554177580298233696963405730518919590910927300978342501477659873191488708146013798587808407130697680424534805444600487357258035793980528553991343470502014664335499019330821270657628601344629453142225418146688723113874559842989223985934182524612871974453295429351719205049608666402898398545378081071323541180406326185239980406600217108057996879117889454689138017094017633531617838764203488473117429320858435934231870790961861708826839094057666144626080807504257986259884800994247422807488098746776083508732215959787946083535601813077842214049621197707192139475926778488543228482205573286045225038701077011319411718837321765683821022044065624532658366483833217628873921249973167012142545461952038863700595344118152918194746577716373364541408892554880664409055023285550658681982138600310434958254843915674260715303481557694456651837752664233623202512213133915490072255589143768683156833303365622776172403816247248580900606376504421808221305949586983256541394821203986119532795094582214431080375249029183025068585021465279993316503596402112027506469937856950422857413172039433995100372906714324982770705319096200669617900574314860876244560658307108963012882736116597556309258600302931615367714395022489912351572489772175334163508102104980402920807289722535184567752185897871198887685578187884553987090937027339342487220579963699952062590008574606554463817525305109685735870653536304488983885677647569605760712848108526407018040542559476561073236692544136684466394705937387613683684081024160316611623411123371289985336907272173850273610700432818239176910367614943459602440638959803312075675622248793520998292269615706447433586792845451837236020379987178551068217741028366966607443868572942061978085112776467015982695651006191584954009177629348059836343109981660837303242843850409286462243204697827764634636305662868559947819035706058846430639066046437787661548043392187775520128729987126817235837532043234802768993491738708596074887419695077853710612931530107888297095248922150098603047111332663053402749355521365253035393957408314185156387117260968751335075362503519650045151569291805614726579181571196486512778423757579733082933862695971931538430887977320819751184905189137444277563761211854283540762077735212524723907351741069596852249446632082799591546246254206989367038173190457013762735766206231513537447179557367096396125674237917494668107827014727660833023510003684024995678688571261096017313153263291674793710511428149567702791557530703195225160132678555982233324795508444916718626913203694868909681632394675374609275964745682738569525904314198688516987167161217180468202648966879096076075404450597037449398050830750258608868747419261954720442736136400054155279334956743227004721175766508742799663027859390098323506816139392407447855566316512292853563815861162912690950370203840589450833591988480101161749591606081136468413510869135334691348876797570930871114803894372078544433873848686762586568870029708215759593611078064304773179622461792979147129367664310767827255512995505533996843958844276209211750244011025542887050651173659650399368402516933960962745637220861130239183991089190975222649034462031978164499061541504597297701094598342722178943041436859105863551082185739675600258316722287330380145434074296936941678896181217369177619139563023743444821403893016483080298022389419363225528966198341722161235475020440173619119617521612232746903713645070311189662784111984557106070884839321058318964202924452358941663699272503554290845212974026372247724679409342139111952587189513568049048988023263752845071272939230558240734800580171209855847371053740499151495378109195753633142981406604460117162482459915621533843701023198286801936106218035106708058288765207741978060601157183154015703034099079094539508106367490411498935396837765780321679563686433925432986751023498891727321231526900660201026197903505291534435386122463227216289995108573709034607306538538413657417331392463288589435188928552273932057919024789543800848169204382989620895477609077031112113808592241669014641794295882598235241864154702895847212129572533342442888082879035368571656126529464334349211004116906223363342957494816263592278198731442956649300941610445738778662034904484925373312216527803230962912587530384324269976357277408889214923389924257590816769891097887887198594261537425307349167855849521023473991747112651339513315860601226962435586710659129868534986815550464275788346343402439172704983741054629736026864125379474053930675018656659020828891593366298320115834198301117019854310360520130885330767719660999389184450358321716243180310552871982999019511135810544486581423408585661614447516401731707925302221221427896398458268084214882422402545521407828574121424129555312060856468670387357032908014170671857556786707529516606833992010248766373907357015524473998094215161770551309549197614250904486030966505546393353430983808552451019949329128253814405829452947343531230979821722956317665517578017745947997525793808065198458600503941348735653452873431080451581610569824560691887437835659917576213768319303285540865581705908779162797793217082925169164589713534780304574434342014388569819233119967748856136131445262662816200019855166477611127932395547778928092088409281687359566276008118236980964872613021063988311844165223487644259200055079584337525153655684268686672599463045172402980836025729741589056922051940136204273300240186327126869100427648713911247689183136163318903215844860996406355063741224117971239799163387793075410463032381744896266512601596850185228042073352984829094978287719133784863820694379290796494888284247355848225341682301671058242863155463005249783043112428811393510103198937656012976319091992540985249585776410433716917887496970824232091977971455383680898327415931835758338088285478505043394839704929334806982345354810606223560195646142410425041483809530764033133864205840235756341111296165979484390952921329239856051357268648525411083758779180390215457477346100965890603903537415555553800861227386588958323556067245496249576969054643113203584049559312141060878404900818498635139133382904785398896857354123899268916543351020841852188839407614023726589955461403506308856879849307315013003193332928209533030620159933209728132460113594132202057758553017341091306714084235777227974482289624380933333677683504133597039803768229064132678861926460218653902025529921042013979172008495090341615623406789813034914796117898301609350307761624718702084855999937150391806631033422275981812562064339243198327381759852369880856337933175970524346182548221743526711168065464558913333346975323750494116822046741433850714734394728348430823869520634524567332944391373707200570012209359171293893588860314033211646380863724387999017637336836994299490448083496134787312678157801419394832671447233146009639118145357434687198403511778530577448995788383827976123575298834026470017105059713891933615305203333680104080945417822449095942430412764039793350800946248244763791489461011017628238345975090426956081867520974424836966796636610475250907124819874731623772411535467720156760228109800681283519707802374301694637833128529300463796348412245900273304310578710402981372988256519565340155617476531252763513111313040136410094164335139343887605504224715159053856571806922678109990889214109700095771777287986168754459293689039696293867132929022203876704119015995687048115547060547926707774883909381334522824819856508240312164847725455668178645897283545376671543982750440423952497873653171080751929908988013904561829142477661444153047447264534506697678575125467536687049612053025103458961645946533669570692057610356294114691317952602610454562608198894673353935838556081120164571944825240074881566299429864057951198197075983194124070242503764268671775992937345102913683243868497723394601531602542988135740981156905276454574639161247655405406821792102685707851654070114402515670656724663431163977111958643067701657112299179690885178478525093648521160457148153687836823336843783030037807636723917772228013370675191594793432194769379679481877012295965063842426394748730689918913751621763089644584020549553279189185316754624115560510910503353066797048106459129748150252200135076388805037357556365573368390789171273508039312650097704022361025833950884964511291207027849762614948391321480576577547290193894890224407659262986863111921354979624464167476312005211763646635560569415397479929150996923400418055928285862823761703853424498046343582820305470226702224421753496150033549826583552930619879593419509075544806579591006604089723844614164519698304055168510793652093865161740591748149686305478628949162414960404115765586091547154059692948743493140405119630896731244982335032329882146716340861738269872926187358736019620061029384914494984726541671140019991069202967164859238019709392981726379683251099447311238917401057551237988162169249588929367580438879114893180476270599147693001679661872334369373443216879595158862331149682945282322409113042222718175678441661497344765026070775511805523909973295436533023781509129104214028612686534887941264775359522128411109347836783694077726714324956837814098910651406413596187407979802820214443685486701976269462849031324487581983016069889142415699442442973579043668808935494058701296116269814533612963934088730486772657349970677636802470152014371777387660921649110431298289551475003082661191179086245453571006706312111584813397549397971987721620765908390879730476069268970030844334372678533028299350364192865255479331465454972500581627222909079420083387315306047765737809972020628729837200624028607453305197486555909368461527655276012891225720084040093729929144568561559277634515625965773484293317118054806627077599566969098441415428623160883476287216222302713553639323971910350300866728430286019870104593595192834836205936515010550719751822394246410378387687643292143612564668634106257479558244669523354056688313627848908096990142596318346261045314009317030644791583784913736485755238799159086546289562064870396485956857153084374190230824710689697589337659832826987558323936307111084404041103388353580927165452862637438040086181752145877674812112439614968933090665128058593365202425890194587078062933117279539604522496157190091941619268863114946619221681004084129261923418982717506107920372286577217995993440418450160478138316512539838139292206727596975501860863045723620472139306294964629116893379663539941383590631094604195420922761668843555316764005495916925755547518134272466409897383051931788720713980133396188779559917964512971051743122964533961275774429838051351903942769276560329798283033009055857453914560472109552155047913088397900779916232380628760697983853442383667111511533926766767892562183680728496140268632488815891373787602422982993685636692650384156317717916431725797618261159065167785799834691440595594984317057625409192923643788406268135903669267751515447665287211864446996759780256085142392973405992283077611235048805694200311387920734166953146657701206009585802326244333427857794501672040322835682536188578991468459239891696911833881774036546610245987352117673150373499497156721151346435939565979423561141574646837891325904186168913455314981091182934386979191776401188096997850286131144602593086099882758814197668391128892717861271021324238819330588408198344575596328109966308206074487279163184468175228910070257462499672686774030094804964404718430693436354983150054626419181592868042963944332628193933178545504410706877276173343274982624619800891313912169674018089708715087115371914202953347867286885942607871498066272099706797826851161692068839124315531433027984514920202050276917142244072380073656729394618616853144485357366426029630883060493102046334823832982873643055170310908599190601325784140374379768222365038174244190060419157171706984912679272460725374915130085122137142176192187788017310079435682839816975895205909515104187659603604162147242640779621832672335190773117538865319164876926017437855092181932932428192709349693723842453093512666041959037323836273860233656102705341041117129014013561144955579058719640076251149700875206333905648762006585614585695698272081368100718179726271752137453490771460138150012039312873043649220618104282651562228601853113354884699367458846197837757336850060921811904420016055189919976892477180794373094825906148687581936469166647839917482137372170925961345222390424345260404068131617396769438127065368679257180069090011161989710860807052840331600136172232212724636460718652794889590026943681808411749737156142405945356492947195597414938758129761226286810306871443937141100766807588981552434782407635123767206022609893077592671459185862837511076269430531202281451960960081451147534903488215322669355744747825798643169861813210699335825096324323414043260598379007142955840439733593937394611275561951266058613935952501627811654608003631929707447390084067648507883839299236066192246308555410563492430853462977655115285752098095645249374808828712352596924341458330868408558362730773743105505914793746637315338443504584677692787993863899845034484568764588884562665766125435828868501837835525550877261118717894403908449401232701643509345593325030991910174858553215349320923964626124923230799358935679230484139850888195385779955221363682435196904981027276409042749988868421051175801899887284859251624705881556066800054339546466371873596817959837834337212228678661710364616603132459872954220577103629287330810812252024238365222214906448122627891378609366421669108585108051388707453260152884677666651435181773691253340789492384043647883433053643508504614731224289843145782062932819409149215609268824725826881392922232001826464609085681088123767608464896790651374008633630905711473439446297052755715965252618479359510776062653595608039439324346826785898642229462897599407086548007953892384634722945085017491839055456597283829471532325058433029646030391203387300662460497307676278273597709920417681096020834464081621695751671889127380715184409865109164534631304782360519528647699558541854889158236611700236568200375982686032048398065403669680120808506208131151218068922662088592822981711367712936535138286702109020315545699594846903516142620673602687070199311742349582692751381298735959297775691576036493555808653849581037131294065626979989662713884800642583986772583226634750339844370059186301985841136001313978423743172480880339482397101139420940891633101748838234858639976570198007542712957717804776576768316384823495589787708117746028744321310788614438621989889048194671876778938880578160685507554070850109900334755626904798834093266590767902122751819224809166804063464898443687276686426164573607685043380812550226714052005935316333051681241448892581427471710700101380416563217493666324931429425369437214120914620354694427130607335001948512261083844021884079355370734328018792697411964373418481364102668166558856689221518529487703595208313866938168735880883094875030589878856677141600687480908464838283938181198421610775559761603483628824834421437391277764763458802350420749818013047326479853331049910762714872921009559599422367454126756981689293993966403020977712913500762799980553415369683649210339363300076114926682294995996512027289943129264629766104698812462288196550273587645424052939728398241260234465916782158647024924402351060217057174595901893258315838687064550737225747212171870146032152603318360580433802540990999085373293998177076705976941915202180681656195774470103656731624937266484816642865613699725305963120593051235947679786460279069595018599683911639569215249401858525225663833598672825466735458473296031836722547894611810220601898875896582285352411854187619897633716036306145270794401700751425044579653393161293309906379472280541312940176224844182554167805968057464695504205499971354595645750456392036170407364509454700627687023690243094357874296286876796946406122475205960926902629049172415333456694394065709592450341616691711241092563448890068439522524196853367138494061937613261267133967878760277900982380648153466384678194352398437354140451656222114489042917799454350515490666133861730772384826981268562178837014918418486442424760136596797766704317543607008542750951236394533232006531581827244541581745982711559345600838978680504556530280338326172831705964419603808914046255251644211726456115142944004498004237025259850957692597327679506142491325049183065966608230993919834889297865028905800706710894686181756632477536197298900939587585681684945576527915139588971058397181977874665605540717743252513785576416035192984520583765357877347330446397474676108791251595991514679605619318266972923442817457171323473397636917986700006784755137293133417030295951483018970414647143339693675559802662404386646226746318329260418332504029754627874578650233391072247406516836892113891265701903970879339825348394742872911083749243541607738926738183415557181127517587654133808434097204425234384314741360577055632836447589833293110520354051045350077071505546417927259946578369198169448129326059846125466465008455754117250076535673386817400471673311017381861278750838388434314394162525490182209835152593390226740087392223531171180067065297373215058225454030240780811587748535583669922278766724509020294222220797108283599138447636238113015052274993963253113131913351938067616049062510981232974756363976116026542934134713291007824056021605579338605064658819708071950742986780404138230417332101502552387323271385588817349598299458385854897199536152753729420480901400834392217268668304332928975641460491901206718107074273492056294501529834432530939561403716635498755889720544114459243125171008774242261512521795546356305622655745115311268923010608896338013081572702074199977524816774474462876821503284524005194094526240366098945947755306662093905782392186789612899784026712256114282313993984712523019161786460087654905286857253143792669741525295133334001997865606919224484469074103264709631389771555842091633594355720710366699507135962416360305180671810761054205344171362785332399477582751596511374078517223907093560970998354020875547802400628517393530988973474434600625930389996811210664441697281861197671483552492932245154205639954823245157486135605153231011968300255880688572649352314129723065331914568720830434369570509905613264571714084901443342227256224832953196701297707257138081569924813511651337920780489027363162093381745743866058566878815785476048564996040345813847785391567875692688478201359186130052504178704285939522508610813145659771129858486729123309236180008537304713637974376690167288515933858018953526604298755004475221625844970547117583186924351002442557205942183384610834843483885417201460909964561920093331118686340297289078351353570975766784670419515268498696362742070565190847327688871045620665136007199511279586209679296852977346270918920739569346550431485165779610316946151403975178156013783573597074748469969072928200496218285842509042953304357412337205528296876554783687072686170287213373542588441500635207910224286999151246733403911257086465861687429467476690814013559086607194730036517282841933737822566910417109647192296294093142166430920436253148072530427606069196152810144309582423697065669157211300904916176004466073127037036524120529770833063110269408676982799979749973200918731017631552039464849781123928120619286004650164743868802159027263527958133938974546256845920310526593582380129772684647139906835810082583515377808500273571414821654855818823298044960050078892140192271580506163802476587835487781429586458750987414998497391681278035717096703417353244114491000669982982136477500703391063194461648274442119179779788408378456409849674944296917398155380477673907077760092055519331128691060698839701324627221479162237860695460508728107478235574049580386124655014599797348256928654929472527411658683173223647017521961903445330328950130258215429600219843315474398589050728832974595944082754022271303036867948083375617194846437166871414196740197392987568282143414671561851471312898426032561973473569798086365904544149098011064086525530118529260033061912775699681450852674895320808262372546854654570392513580050879030216088114422314368061995643599353276754108415261179686272881402956887688041166130290174637556706497310623704897484212032178289720339423939106989187252227929809168246437895712877406927454475712896671838756039864260722454985796745833235693958671745013467696954650097457607052586454157148285862979809282718910183208778131907288097061804016224457646473948120174364708510623013519060379324304946093272808791308216553194945297830170169816474297416643922712265482741078437182371902451304059982337825677990743298539938141819326411521677679169072587295043976928706167775570139432543167123966363352877433200845036864383501551545422793939120162460199169766244606479611985749361234782758354408133294368691307996028118878285951663025336898206640640101373928775971648249653165417216402690390682280634570291205087811041738761278750917886363724636706611961798882593476089941805988251086735034651901289720757033560294497807622188180030333924875935081526041889790026863448015275111313807831273155901894988044233369987387490955330934446501551425400898281090899304940323864379036703784117885300590368866128931238342739726647312182916048477942635512799980483098036921234668816516280872126845952594030091016004033152269558600678149650255436915507916864387083416254352425910341799976788059221701672667156276600228032009339672885873287491392696929690693230350599142405945917994328804092159581799047996936514546714876925459999973080716458717700925656191331665922488278480186232522145717159371924928779258255119712994925726841381317165928167431902264995432138311636109474944806338361694533567479496530315017739040746826457185290546494241523081989344157957032642674375815501859374119291574477103196179714304587390419613368650696830637502937951096915169730784556959573678440022117949024957217324932651114744361520228819364333112406670224492935564505127769633810458908576042132670794457607403508381853868099512746872208355991526978874451587546921453035299115691932774938872299446183369453838210751850749226160186384379189521390624389272604190676559501575625476729735035394361725839488044992322108555272065237440503472430661847603497839782554797572969473808277384098318363992157256314172702370962266770816256607562987988800536568201391497675908867653163497336270663387937312540084390176063653869856391495831032035466302805752327151160983320488708951376251642181415304345363751172524646155916275244946854931679584685623041196628165245014036981597692325988124486190733030141954239283780065562603251736471340152370887947493083573230903647005443183406732217920528222274919788446991030511888700641020780013493792756616253242664624473020863047640325538348591451191332505991865840187134022619642685231277361048321763437145878900466973523670243457941312278529122367455758521328995529283409231279733178554406050287680136575767242218560600599337917154238503055486664672506236380191455315177932653639773813596857664568394733786050226341613065894740211824879101257707997476756043522826767808252309766044788627291167720542669566876112901145455553296286759426242644587116965023893157902032878061286986991644762317859908249905761945477588009164887943158334281750688621214968951248853819951317672489645159398731528010697614479218917703722161540733481301913731465594223745132439848603167269295752522747465644176559761836653319531433479532784220491825600217833552528543657680611939245835379011356775659523694234611744390523984857265884269468136971815090757738392934020783900243536951876567017537010900240085962152707230986450170293653107277622207613140903760118612119277964669760615931517798489400585662630404184603850829733777247090936772609579956678138320893597433298784504755778872070945015726453777896792114674953241419735519450272884669418443053411436741757556287607982083525306541376598819420445852203524149853789432125839024283069031041174884983842887155548272222115114259493059596550948775519100421080981270014211670906017893408484201091578556317266800970262165028139245865889835842058998958205739245823057351840017676852517346609733796772594867340404794344008741961559492244421899983328820679184628081417911708811803655440642296955965606721834014990518193838425163190389675465682239019796300936084217200779995814048003085553695710342983507003518665546216212710050871186758279463153879938862744946949036999182583446422281070107334928199772397239119209192144938664022450548740339138437978866561540738563811297993705123155147262309054539835936993445912921370561583828983980484518756107795734715837111930784948114612711980631573808761695205745410617654813109231449980009813494223253265286523879077419704839150470975623037168508157481636052328488475407293511631178193900177827070142997041986811282924758542876068528053954853557401322548695610179137013028309536092780380248805862427802029085723443132984115634111686965904582584068014566642112949416727666471725766931542441617804419801795278301988523752800684369247505219890886330012833604341342415825881218029689576816270084098078795969533399271933965971829183868975631954809333006896483872340616197709813384405156729353572652355711559565257890435002648947834459621898416194792033169237444576773643818952185071073065018172610308765319796535124136460300705802278716435254794118203740364844642673295835720513574305896832964733089297321266766407457280753380231804804334114606935096213793441712524249268297424080265884667214336407921771507732075527103927149745940891907969545279631659836829501299876066125370991112127777725483803867603040289293077133772779009116766798368974217590935450404251067188683385822978112057054606946091226290400475727955303050349473843378009832118182353087258527636105963820896940647606039826663038215312090159871205276339119557724818384769689079002592922132029686922313066696673810172717001280312545644713460613852264858742184155461574312768226933921893272443098157849228787298581464293650454780920638791207302748110146888627308319268047959788112679020599281089948704276867472550112275055994341636634559041566046808952396492981670052330009710703784278090274606555603688651405163507248182238445507722856064694464980504043950977535073218548987327193792391310160233528198707186559981749005978934414240286742751105239658760318860338793372671363919621563098463238803640202105005132790416016443443550908548256241505311539904382713021872939823414341806215103229087086284009982655923360476393695236960230290451027005726564218139738564628495613318423608989903087408599551387122923279138976429674140026876646673049431817438567584087220394726355697709958988566569862955408723714532903873597894667637363341399691855785033449133725528478753867174829579014284816158714136916447401458824628803735813927427590723665373892983250535124430772234899745234231117403997492712752781991319982373290238784527678700920460108613576912879164135676788057018180604653938645583115569509876065929515984220585439039357827668332965873921671490429994001923502616548785339055078500572512950570339227427482928825180344105852227682361863952141717831700663630279305855626911609181925266510799129423400807845480013978988450891220946135691577193216167223572085980005172063990458210408785777399512453511313952588741175896305626223720102835497045488932224061539626245698849382960062140991599204259978174004987097328642177819984005596567485361240846212143053247689226678399762145697999119538735279890591128705825516277074768611828207884859589552468145432322919966930426549495704234900023527660530222616818440957629299647783947862543464999352751748894338709947631210810384656455128960457162201468034305330762298080654505448060753226301389487943120782899911058069745894197225777115246650743767264464743194103366291747864229614971565062956587494261805202185099855883459293182698042604167424789124327184255666335327317257058546639411862375839165970199454548253852897037404739302613712797461426592766222169584852983154838265760390795262493388078206607581186166429937987929111699389861078770091575601087289134304522603602485371869973096647239333728848695926428883779360109264855126493074715928111158884337216904354740187575676471366956685011809546037431836466560079146723229411547531834657338236695708837543745863665437222012050726070843424091736967371962974183114561547350586936377721192660908620353558414678432303903780967441187902896943956251348691758100886377898338920665470797473555376829507406750488284453509829232004191161786166906005240063860300249642043798940053910372346665041974298672512459101443773708627456330717828548226845539721017379255771428446456016536775899622877495948180383891225807477602912094881999240880421335286001586344348862389128595866436483777057165503735744284363639384313224992334391346620316216823653816998713773919350066637542228395575985819726153629576279206215259630298435005191899879296880825041412938223289980753284065975170882310100265523458719397123532968895393947899305236370623985150597040671902927069109366788307446784272881037706153414981308393992485087082628743662275613134920221822304269226231706278305457740631337628710397171136150961770779770073409846495892286363033844552214012242087210750246085122569714849728888853290155696051141707402084783454823892348585360153078179465501951733546702195975556609761576168788565148897776645298443237071826420671494823707802797694806426864221250715317225914288325241790888967186766272830285151420041221456151936565004162019570071096056401634656646801262698421495198162172780977578848786271212659879254634250591269987456760268699225251181656913023866273614045459888487602905431538711017642088892929893792556460866295119733047639972932913277341959482280708929338664657255710148181138544930753593891977098080706918996584542074509893887626604627909181063915728166573441510850676165762737136623747903967928287230663184453521130004034084831419100196011324428450904718544768161592475417381011439782160919211951896348511201642527716627009696476165945350238247879574455873175650897865221564815709244161358778752932794319453392435859601346301126459970733453891531976327636420915941699839718759489246646610788717770435466054724701868281552997663539887178654904743060121195575581504921400796940486037756487221386943122320140136195027364484362495251379527569215996421441094020824125487919074209737827315309023794325147944454545645596823066650529680462797942840675492932710150166521829357706157814347315810876706279275263144148003789105495832306593901374669539632073259394224893613227193894166961083204502909787259168288799884250697828817253035935389136238767031550518447987618805569182654192354170169539547229304448539241558072668655773673777698260024728188783989300933694603197339948738080106186243731248188283521596070313420830128787865565834018376972038136997249591182597923309677197621689915705085004016176712571638134718156905175312289542161729010468438146606507685107308246284363056966583302903783973807533988432810776885213989407176465679442221867367160928830344507427044771980494181082691213919897559594740846951950769025236947199820963125605317789458256062506653876711237746676741713185217094694250700224231714082165309259313738720482956225903148388896985614335980114074261777784525584274668093855436853819532367682297167937310129244978579038482012545551819812990256559233402883130317938131751135887508307711345576471482763576097804701406041062850334217149769620097914635186188751664834713878262157026260966752468605099501208681631479772074866244884457738245480040333996141136969091531503948439567395906989430078474852269715694687478902726159654879613344083217697300342655589295597135568666755560165035204050674257764974845060089116974725118307481477436633642795531297768293710620438573203675068295264798766112526889077133754663186291547770139518263463352532094197279008187076712877793036740292160156048026116891151074258585568051603037802599972511822473060166588792933772338936886983530664766101570969887545391732067119981555606600546073272018763286102517909952530087175775814988536695854983901955521926814851680991036909272662734319125148002550431351750142084209883206951104964195936253616715070960488640083954572743068095053812536766266477978699051218797932423879337203152146480877854526186434271531426835390610171711572983719779958550421854003229609944574678794015567795564848397066128213058173675288250283434239954159736013563091077621460738204881504927212451759962242505486832643382191225112334889395903302622255481236212851009977195109124678381323318866721238835853948876068253469374658130917405954885009718425968098404273746885531767872397701764716851460696453861117832134899945207355301928391512309140394481191735278583259916233698415282368591033935005553858450507721192832627583740474162962570699770918156567943208682190090930719688999552327658227829527421204754648097277589443244618180152047707127702714224051557789087764855330921164374643624554877850419909750694145683023535267083239693762859727406407037059900820403460008243468506325103389148253874560800892355209276378871358371785237965259994471447680992517921322033339570733169892941352366285829770136223121720270657488248887262628349785979783806191077793343211170302285045433369592330760874751497634159098740780348612992365076878399671448494438430100339495891992210954301369380236768188985332339187504977652079189259035243444566390960703603313830901436593673002949136364846119604748439123416095399911585714884930697045996563690092961670773432951745463099817270405211173117923860747521720402814188322365771751942160189713023718430618708472472426824010009014890234039746309891119497741437962312538166751812739328601594175223120430553676466328760082287325655587855702196774100994808114596258558412312816824563320705100462273559900494025498914159835729760464150159596758059380082729054357890066455146288928914070156516525920694751625823895765356878188758151626130913539322592447165872432617188270613444125475289956772279524431618308638398775256212521827540378170666120546591205100785517848278377777830016258838552437019822116434612998289797377837743192995971576432463122244965125937178300761402168382945130946092581046805063467245227712696547071193996126681616216221259824299714713751574334286225786947076051387845161019177733363144512776195491585193618852704570617430293671759150859046503739214951630755350216778975738862110679700327911783671859343850547423815584168095928451612252491868324854836261164499511137381045018215268949841802824404135373003543268539291338719430746587944160485357813940281822694405784939041601233925569001942828545945024983603337632427002656264058658924606984052814568253807989547542624581815407114526125612289402020360102615652986307127086470883973918413538323198706489722182449459484440926974098754611954682615966709367082268794805106205222381180147355571287956157301158312304760650028746840426372502778828695833100807115495143005544512278811073996728513113526784218379292347970928335883184792012396923926811930622492718647673863845996164457503780191207546495654139270669889704122965566039472473055338020630694919304933435824946849324727908944875937290044839032637739462519661670208218429211208058113077569142885163523474923285463680915206663204563616957410324218475849232084122650807062188988614872146236071138460547561358734617408758643738451909981666380697984233173455946568672895493643285283504012265949237494935640262641083024646263212278870622340512981488643439017792796789254484838711291623046261204102317342743215017775102520575775742765678738154296338416947631022937183738979052692786957823404512331764438501537830717431650575216693586928173825063976021556182857455573799066596028942266482487988259401508781651885335410999002602346848151976587394296865232020819595309789268321175726891749923376043739785314812761670353476946223832672748588368710375892246067911123210679010814271749871801179050317294933502048071683261630290731966899302977540064058304572356111768338206368271572288460840858505966365280223234048463129591412592081547536277917358033378125437540519488711711950647380167252713539689141463991819373250142901482531367945167565326112994060250209528551753962688470591234549726489482958482979919277144172872556320594404932847257117740224945452265385385990667831012820441855968674923438888760234213098654482668469887282587377735665692046048177089960097045292914973213327152833358750418655896229976900558240670107015329201343853969562308098309218957306853404836382788028338764120338302358061249542181669851367375858123601444923722843040205450338652994719282836576421155527351813047002844507477282498543633914908640403676991207762162456260823120064804286077262555698117996026305513904435151526527058273147429752542858259021655576995233291151674064618744750916883318443658808091191572943241135071344355768193602604380677097962203316971907488747732135775088378039151916273873816688687628385973503801574336720509398212420106879925961026513658335888769594555389981883958801488824613764768093012623540127689652255247307768912851740995306355377473710299292574516268680772542166318467997328345405980294275879240405573491975074156703404754930145473743591942039778818203672120684540893086484710389698534277003537187106140284304430967625782827400139412787934024479005649533691055481448055330210104551364127898039082997186431642927368363135354417280981356056709853691231389492731552266899936366327591782424990614875780580383130533912152936883674535387495707513735279441229109153363725286595468725963914050529283034437642227826970898435035071971970638743850646107758137013164581235094559199307880109662984698952641180229365342581964757421497967954706832718798582968577994329356678836436149005336320802783348291786874021562830080458161698548739425870090529799003031947025826162192921845768574546414955075558792937718201623837097626303204608573150416572901748721878652708191604340332704308906741540684256946806492912147409325494444887262647798481258577220161575496092680194755558756370657547893670361663616344601537404211201093658812695895118589808073613818939785008613465158746151456612966487471537462794687944425782811771331740968587466188393914579831551238840826836318526337971709800257575768398458373196386621020342313605255064385608396126706193166731414248509366980264861029185815650341909748416338182689113422742306969947014610230382066070509588443692844203954855111873308877289735526761449771162012481449956405402449375667824079589224880638473974195256819603667384484363650075443563692220845668148154706961971727480269299774344005968313638208073127824310558757208215058728961914450790425761574863913291164606803947014906287112922424648883951653983077751675770131234986653654618256080797127945387083039833484349700842070150780145615452687895202058364000861636925222839121190006828220515225188529313271498708050266351503706006052044003367335960828909300418753427017984315455317215732228058518851331286919952122836068433278488087665967103156141337560353019648264787986233605020921231598117048004781817234236217078271107928822546633259705932809516400603603117209026860213617109537237213390517941313697723695804476199309221374111960076032250247188325542539524869070594069837937991518151079300164975860442208785138177121090977760181367370067125963611576228768076789154125405237576333988502967714894912808472101751407628431694407839416468131889643321765518805145868287005757978124938972328753552338296832585964106621143323218552147903245541634831761320335353792219932742969331972895451558839205693526996642110413320176272197072942427703654106094570708811495593709339256102521165118053909295089186537166258470803253802848057821370738137356526048323922216585883635662111396453715815117342119356018084862781147183188968606344241836129438854055116949785390575558880332513312092436977011626430295724331219146045899929727567213741260994886390448368169705103701013630771563933098025959112496691711831097749548879877565925670689249054540945606951492845930825608313380259475207586370494249392559531544198625358245111681160369721187726486648986873208050310309099770799503516186611126916210136763499104146819983998701319586567145990179479444084484171908514029079890933226347308897982390947131731284520217684593488612879367484867250688533571074942981398012453737243615531357609256578047668058813158966971318249510400615224872017781839834030177807238104865150995210537789158828423372899581144079890179958675269373603633509668358722469226254915885054947514209023475746691424401445953238625586681785174116417395540828424905525087174724933425371875408432377910764740680166083491724312880288715706990499227174176967697497097098835128636299492408933605818106326374716345506262211335764768254636721236854119228114282394241569957495601452513034014922456033491208795896092376068196575369534287847323082154176670606199636215901325906841356790452474411007404362707782812208359376094354335851491487864665679150915890895766696024219646347425723101472174544790961708041502805199133964217523503787178283806806011933842166288534696451626742783320552700496779125464816754367284774051243367939830629090584233320161845544221885691799301414763221940612516813065518331868864715617292345745218996865121260922702840419586529831608439214533670293611492618097070194730749787450881244387948356077669385342823932534068072791428888212390465446282017748787679479224561575573871275709950159365907697409450337081749027131489218958433147572844715724227785286371280035207546852499587403304463061212973241129992829027270804565272261221383517910399096437568511800104783924698087553247877341696095459067187993361199077014628854742400381829011356837609950854620319278328821518505515199393241548279218210187567712126646577115027770670542961025042196207950785859281976025159703588027765384330261971277753609390666144503817698698896565745520830575811914994018133226016566504677622533802193059786239763239935719450484989961346983507146374196716213615540284025021169812839835873334266977554562506476527330808972285183205527321109395075325131538259218756082649930988229717380684513851299026480585759786135269327131602116517065677309801882860439020197492403560120862590430414034987920105928437831373411358763510733159471024370944405436740275952180287731529659010060737801280251473384398992955328347206680242766446019181646711592062538337592724480257848877639691802451207859099154791522630464435201235477337321792876366098352808927663831561661766383193551862533398006066017541479358164604247163007088325614724387256757387257489829700299221487139492608216119915528073605442375195151939084223817840452371263813584833519922071322486517314886394627852446346804532781671772252204401860966061656312786424407072137327505230274053625797157881002641257747875204326391529076948709379621500546894667734904113853351707284174417463247014399857584651200206779914225701211382422470039896962275269589505033604106509982779507320086868117626196717378004548028242637857854425897358821330433024189254367363724047651699823937616324578343166573818843991676622954554637144090642992353987314274070941539310084731545333298859888346700133142816413239563593067309040346849406096427000398885364953591918999931124497967624088769104944405632213101223246576834372067857508082584509348409336298561179227832922598716545012006518895582439621022745499132706456345339761922569426872673145670800107878802891585803655077446410675233872099659521674062053566807327483234922990296744611008989812845628644822025748050598354064517176845720941465003736209909330870542227392895596700513741261249515059296479136930374323064056952274003837009857070479436178038062243042393354881049383642116425328368451838686434000601634400742344338167988381216819172247585782729809865919483608724457493150905856541960790827054691988971848241161416260959159286342762158142816925369936267888767699490996643780954742211975379869416239231001685933956954313504234750331562839199659911023154988966064372890691563139811611351504793629104576514848022189978664568677652419897192274446414154356843517669139200948047926562087171899823513829278988442207290196899405136765651003088289443316343786801526343431573754370893449644701471679257282206995093891958445187147585315647369891721593522755335794679444937325122839311107044666796723348773160999893501255683417781921902495923318861368847792213000478411611947443342442909037083578115814169042577336327745170434928886857979749905008224532962083988066352659331069735977878940992151770167530355436713604667863694899348037152796976686275664173792497963693398822446804486721058473151300953214711349878029573887976428561492208398197936637831148909575638395583680847758611627048378456699804022553769257855404432797059253335553709741466719819882717505307762095849176868489303636766715958927729073078584528720321648603097109619527623932269252868541518166883021961451717257134891204544383359485255817390468559672892427071623310609136665869257162425024768455066104874338085198037897915266808322043777459773425255236397107582066111404360841775603721285719173070149511109632928134332704116922515143811206309888416063044018877787811484135663543473180978461821231373221073111710171715817195823998972732850432469514950414207460815148658420371569446215631055156142959286558512200546612490190516031501863639224319495272605234086053934873555021434642364872575559613489702406184283170095803950536314205740156478343353957371207654689935244815964987863092360298505172531270702568699097191686397283669217180000550000166135192382629339982143738924570224194249117486154141370312891724639962171070100609622846601184598949539852117035485414132062178774337536882619567349631361506425996726718068157978582056981107103214869070231877827157184891069819903128148841159311824287460775116314375073622574003165535755442181923702560266423326440713874860783809405736023926816010728286285598599699025268518442435406143226931267755431152327124649160154639054085363957592910484917153911054846378698222289920480322880870343415900963160925299171021083985955956365918565385600264866838674721031866392738056983233314367534504614131962702656874649088781117017050693667005483865757169587703759572735185383612414855285424610358103416870337141949783775582539839012829734850590935638589075432098188978563118426279606490644952740296524236148058387053413473797185525444690028432453120411275689081038465778622715472596312167441173348253912703443316608563068686028976973261807766470553083456160283558645587726709850740765779288426189257245026919005089669729330639375048938865311172098081136508394795417610075044423238905324946401821997425969055426834721227297839003777442409380040405561228541965271731622827885666711534468715259353359194683206773959720510111133776505202935579231133635045690666272973129461671052575976699498891189664911346226965551681774779653290957404223413968472182714656950643404249081050176276664922380442279831738864525748758210704737093086425407103061695809168177082636554566639736150110759682673088612248749450607875356025311506582279415234457965885543390030008929666064630038778602105598441109229266743412853445398449875530383112722689133758527376057374926900884590582590861887179450266591643513024442063560010877565280667816509094579832619259252905366800764359919717024445919339554292451719042291991919163127731406815399472199676411393599433757499951844137214976954216784668158451288149604826716600338115024770788753549964938126487546714644294293497477713053210452209688621802648871929132966760094460939675535149255792992142875435604661437178252551107192299553262135618074210048556178570435042737440212122645137334967528867123084795448937724045720189060407482222737641663108423389548237584658335446846601444723403560465984357286339654170645053701795549738459963372809173044286007774187207996329367040772161522618036801084927652339029047103205075221589928848165108764856580254372438932867334303437236696219568146804352287395082898193622366708004301580679729238232763016512156698838151867333645063953256607313022618149997385970391721412672379443413972339619892169941665408486800755473265909944392302229026868958670969091410924329271941430584261332211105708924213970531918110459909098541189215064817131006459867401610193640670660833697134925871991906476615236634828208193451845379990074028207222955422390610840956908040171634224709953146375588476658320417561217154576659787407829426672754183948010474185556610424216926291858979592178956196096050720453036972476550363853980163998287889910269189148759411563725638801210304309036749737018610085350391460081969592898069449079642949212647552005872149335576016406064174577383273732971016453616929162704152772641389912129823324342847680412866078041522088083152463554891330468075160000710033699515096473116354919620598808791793200271338090260305834890004861359516581472325654756561996203771874015186966797176946577511848772215053632147494409123321280922595552880820409878964857931007945237626940601146623810899491735360861610750882399246029419134324792680773647357413934254711700635293619653131874320976849900719524605439896027079520705200708164534546092146900634704230318835042085134746311312145518384615616081916814849105645248260759224754384643611683387610201252137375398018953949807010710935680023851436074018188953283361134517441675453781740977434303948931720646982318191959937468201187645042026434551286354941904444164894101634487552986813182322628069035747300610686419398999381952555237917905883062589765988739332667929978894884998315373609539609365099641506044360815473532520166855241466626523450981681480927759831707914696929848252523461319689415227072245111975982193379492433420352757010232052675207673420388158861160948176389627868348965513982814818201122943962709642412595967854786760768025627934365478986136532778360376630354045328910178295486538076598962640256918290269155988486431076761974069406612396546409561475992481220405640033235798452287016743725199352174111367845679572877957533127083342499573513652163038423140588444203007563921019677076214980205044726968019279444022116412504266854894886521415507473291245846194315947671746292957041882788182537843477007589358269389990373786750216897893422517683283109529336434922988417606472027202868707296877109588855204820439089126429396028164194090479996705235826580323208334462534654244454937237889182985157908097355501295564528459998696291458946902077487495258781461247736220591917530133000938042606408230548434381634201252890320409009482501108260472171896174683612820249044049026945438410146374070825279850374521069852251033218227540921352565633681579499768388225889579557302173981893851965640323123239313874889705209632873217080644495719149900648389940233537288707058844270835176019700491936402416943416221213885695898864897381027772355383339833106047366337608805493213362097935011665141513114936997517214658425659129927901997738111785813641350266901437883757199153660585307810677493161183133661718191880976195127887888911569493824880904761423289714524640867900033175475220233027834654775760647313928749624692576740868212619380062933302509286584242207326205391142269614694667796552191802551373260090537224330684036764350522265130605044153528043153104726318234998143538203021117330305791502008874321502148058183600385688306635394297180154896932120768452911174395154500399989008156251195300086465919742849479863904191914898125689286390508096302044045808569422951353932777299052802171253872924204420640553746021416800075067735773781921291826065313796329496023705486307233124350810471786998156269124669466104675111620322566275380045713358054244407035769062065620999405088929315686464881522615506211051217136468956053510185405993586168188631311787720687484280564736187409955701631620317218330559860474972939852075723336476140139359654206598999616159670104934505749101447542467105827377960912102621753795641074258228205085332996382516733498975850877360040775917801718728875622699318550724869168806120164590347088061271717208722069168882583051881180067608539281807857933801044790817901637555306707804775125843991999305172615035501192900943270475175527066839368163066187115434334226915461024158886196547777263628166690455777302260406223952768324684479101252942106140967335554051575613493244377919897221626459429376058144174203975363170846287408364350707269554133240346100140732335943656018878563850358173961440353216524745571213603858106886211105273622609137392189225751407917877956023662842531659854014784816386619300996020216768642313870358739715615571181431389479566549865094927936788299068259212964552884627490396795635055774063670080069722124567427414015778490290456647813641828036791846127708356491257276985531940135158322692892596962368344416253010914210245056758365650110169998232762679974590534446608271787197283780834254364194599727478081789654826801607548297935917618538596751459640379679934235773134016536832716728042140958096022922695403916939532166596638668418379074293646150227834078873265450585926615428797874275386784142468941482671803921067708343022959959269550934465284436518472965170423388951057587092957049084449925953505903707915442533825942286124554861288701357953276446825477621149755982696800972617402555173451073245434272521900148693040085069649808564199321567388495025545334571515424986163986005010525252735656306964658338595380211208526439124184267508146676393341286835137140824930764212035227703127396097563577359897046609610377241805700607932126715629769049161894381228076638412560033951508140378273084104020703698577525437777933776681385475692422789099266550079232299600831658906252863893102743642879901108226313723301361487742453217002463529665894872914060564961720921998149208043829812718317127236255654066712470871053783842475138608241334323819788790634069998698193288997420732413454976786408778362132715876932009967743484105368667926642800060823122792246326276398508336449072201129590270911314358922675515475612192365117325837531817352343748065388562836410240925675976449803765533244715235526050798776321590384217033094652741232760466431675299037351737626280606056379158569831436557186399935197195365062242859113112139697060332760673157621811394584076901594187507151193331400337968123247207061082044508130545047777711234040884726918573636581358710155823591916792609325295464549574100576118938045424108371598449625054433815935904237379555648235794756915104190520965708659844816444924286647890347778637858571106225320383520748589729438121991621594310217899933710078997513227601395254795103675641520047368474444501717820121691133270550092907716424124770067777112089190695673513076360027753620537623221368882005122053959279008997762915329569260608408735673576957711989399452814666316245036413600742697970291817122619011137015002817408832931184306779328683019606393712546601362684929559899588466547634506830974046491317349525616588843630130463006898383607540309517243198841979629144397401172152126929838792708641797307829057162624916261796529241945464526054745615344465605677817093505317050590989755671606093073338483493795593499719672636280493099969831762987024697474613493006848244467470725318403464723669191570953347174374797980256166072802795616815523903621782564390844207794666555346453052079919652238743022904460132413478192917347777484591488157057682066098521654855692717488851712384294364743010021614409583346379578667365115489997855482613739996910487670464543912335840061140965166721263853655599527956737234690449693736747180749864359842040663149386064011288718534135479013427032809017837118913486253932604334548816107648646652894813564204118459665553814193160753057856130900872759730713448775685569019368425187238021982302623356910962621605604414537347414618895642673740929188162578238202289326269473549803850862311656866204167394613821020967247023850573630396929763206474302307357466857992273949038526434909076085020722230601412227391526783787767397874781236545573299528527717111016709560313662428648653346562424783406286751817622731378488465641386123069748140989727267797637436712389457543386527078073568558232051316891022266325296953399818931215739042730027749797743155045754398892448336120237118106210077340396520214275781707457595886528171651047442534900378415107606413593483813436651265886137016748446084077440531299189579639527957578453084573253958259115001131117098372347598908015214108202804061071106677096366111456329121574805129200626959525050390341397172692174940340299494611427855470387132421310722009678638977327616710491839985102393461563631224155229730775037688209196484958926098386489851356540551728573501903688438979700586954929752033464437197414947065422191865972180401164851164688565760179235603571887128568599830729267061369305603541506933705563801287768337565636140498890164093046647849541567772402548798415458245339485486176216669306322571182678863466630325306541810576152240377726687910661869403244395764748633221588140785053751016306020044551837578744084006489926198520792167271345491496652902859957164458931554739542434953823438129440533526046293086422255863036161251668779852139715952167500088319233618633070718498192597192422463819303584860092828014851376191188099197113573919084899874834649219203648950314639258951087195715336502694668072698103002427740062942267010129994475316439746596483807796641603928010249590075644719065899225129697144720644019290250880907014980288715357085934154534532348534599711588064879301038445798047548920056349537908974862852543169844340788378518472537385216435384664612198209508654574981762149062807747139883964998343000537343065502241729061073483568699204509779311348941554563749273810267343666557819034465510854176189277636527895446804563549009385273449475761342177375162984337982093418875712796252562129186447072305396719684268417615144542999811210705348726726890506512963129217459946251018877989965382994520450155603397382851885016873621507371009077094071602439986367674626798525716102804459401832304673070200147243215898457026556157959387381446577353764651895693018252777911110421963357706969653215593358124437924711456235918512033512528635638687102087922450359690117055850600953709757411427411542109351941213206894325191552151406873998663932929585540762028592933302319359917233975380041115107888222792548454582061941487675976632595437287707082650596797584898456371655194912511880071242913632236315746710874516454253076474282852765731848358947894719479806164371150897796475022155031471828043074331262343053568357474942295903131662791424089530203644709155099121617188549567471942697894741337000868800408855556166708654800134802832316121925532637879552698081026785102947953345151224637696865900107191790043718212868657187283874441333321051060551328619100492064561874455924559187778380190786987191722107417768918156273622472714129651043928868809148947410155109573985869752269249113846825427183355120969578212748163649849248942398183025649235897571612749980915981319933054771331723043820384483171293153050983111906481892749466002533846788208815514044303066901751253409083137626201790640727183889739747423564726896210450294807093834712542227477993257486896582334517482532643331234724636024204272831654443823828998759546402110258937699569073140039430879408174433472943280038843681702355086352609998158712481926611080420795319632298754208039480454894694709641996034052706283812391804474380617847792293814009448193702060054614887767828752027538936733039461902761124257425529077493647626905961160363394632139612094586534888538325262429560114822153243781079230864740253832679391196395898988389135317454123303838599580509063258103646070731109025622692687361887922590970706849976513061204568623407560814822381510612766554590727434430849403163576858252198247230590687590010876622932953231124271924232749157846626883008526549519478834301429750237842969364282530433182270628801606015180401304733911221368987294300782645418900923473397039923016448950014371009691244086757586267501998720495297161914977445751277440384711135143453072250616302548531376049225518382234817773067595036437158885610445449686958856540320772410402550711899975957957577963872544091044771713001072685662541640673262393854449492326407421946416000411726637892511272148963849257381036922837878365691443960892032028256699741060241082499716693205772207161261245812698251455956881443720876780090445803044899134452865132317036373641659122414217913903348510321457488352122718570690383737005267778443150656192108453391979748127828577933158613462067826638574748877941398299755736260815490784268799942147865827887887401517419070436926616453741162862324476399168278816669392276074868151686270578484944920251133634987795925202935486480018991541044540294574271690064855131974811213495322993800174587668924100266792908630241102524477217787748708009179272682140583473352846177086112539695357839687211807399440060333199375100354886969725216595417234888750349966254802764341730176760429373075335520100884417065897148421984863213722643010387345849977690507298995216080140036757053840211522907453645641031189869883880868360031684946162957513286446460158502956924931107746882706836977557956405020906116735148572157762488981717735459735073765381037874185607296117841244544550498510555642532791887311100470078068469379250613669099171952032838636169933923938012184506913207560241346693531790693527001322185381693639226493786939863976703751455641347762817234559943840173122268807175593281683268574321345168328047709810550377697865056405876503613043093235738759336015725839100451389896499436812115474783331548516316076143941874181444582572607409856333767162329115534800639325153553921530825819124619637501423914883761639636345472250955310095948217287207309870123390590281930386823408429082226812265913101799563270975400911876762916062263978425529536708117537552667647694445983047425695232850665498930380808600197686745582044974407513498000940138644588855109529018977079332266376028314577588324222176451185173586462781958591675451414633299116691920076715620223384006729528531952706834139791004979328833880602826481490588518529952035922453207989406032958877669753851594890912209579227937483715918367026610067433032712193925705934507536457399494303563976362767183210259692166350464582805323040584707094756838699393043881637636720553106600904287536864425165928581546324772979114008302280205184837700049636721826359345338156618136868119172223345647352940598924116991602036573241302672138087849036670339334183037615940778121831518347796348696530919051798914751656538905508826868690362798880494848091317281019136673516938772773029141572486365352626429650580930670251499097199473331986836691287564328910357243169725466866220097628473765819342022572489753359968194226554153006907595563868110520579797378180014042740941683159707138160332485130145170038310425728859912306168988267669431370680660502219347619269500052524599328474855003949358147549204786957530678385090020630173362722915532820067715219682628039490474153064810576525480749682718039728886293934539946154370540591907987886687309627487995164158925513789359936531390690413089182603943248526057373407076096410442089673566560568444183483234784559947100432794558676011284665567136633833064706225355726623384795178345637341682036294949308049661948465839183072821836470050546319027662072852375423885484442226956489107291574881752169210147678786614440505340693049520419791088059911905549612689945862818382414370960668866686913499726579247242354954371849057201505701768300610956793929602228441335809689825142869514774628332237907538656620692844729090263564728106550622488173388630421918329697706224003465149450042690883064612492690948244687274922084013088904841266527338290054488628581742653437275658320809637824896572293083072360455961144053246000449138783232599033025788325358120535851058197217385303969117021947515242226966037488100721521021568858864964055057207988686652482025587064404062170318353195545477992275689703434962062389223273250711571295769275742198868811654802129060898192357165640066028438616234288526287118964069994967686039748177510641296104762914293349968755303928653642795867404583073874292076014853208613807977493715749114125908631438669528309712160309624504307015640822594234952703748397530140256969862554155350544092495483189650378257181695153356844241110908929506914355160696878480277910190784690412034279091519765827558073248366841293371536532085147705693984820510299858456747187700174425404950314067799319077633640034604626698901618254777020977210300813100574111079635281823010810906030174787342053309672011504109583497214311622572292537727419502175843154912640047260941622632962475795130323363634233550846363937632384310132753369553828368318038980986946190177024669121681300164396941726909604435679480907198054848364158777470587009853940614083142841976453594253591076195800696451987484462246843865785757739749170174496979428468063556067190439734857096551230133374674000666501574872484887416311504765909118472146730873378352393532227310794980131101407620891045064134950098401885058682108186450824760909211579010749278071482828860421317245515035959071962962643023997219238839468510469089049637809257163829918717774070551080121390536166207414167264178523730434363361984937365642976619025223663017578081335647787468868720566650523010218858307410324983535126456933060060826562141528059611307123690060210160153800038205973876007104959295145341546162331100310556788860999482707023748992773126963314910657970207454104270986896746821187211046414323469312004179068059041802576437048765315966086307415832035573821809046210271110854919830005868651171675112772791825966076493279979262066366192347082091666931095045039911897369771967286720721204769382918297140818879104945588113710055944481852758358692499545671910528307127713491481817383500163131720917927603858377195128230690377854171420347863928200842171639938430888399801777873840151436648431288222539006232762296924311734856773609941927311518581523189439809510923321755609683468586462869592708567331507652763578959376296432038210830688281055120198548168499914291258753977465554003094295404855711235873425832869053757285321208328205540458800506983642173662465436553707861919217067034024400410371720771696121483994986478961638427390462011805830374044786626711932022228913391183828838407728402565176995503689636577868206888543462016904860743428566580653089479746391383000028156101455119395665130338879063409216801875837781085556154817558195996508927895694138122366851851048160461882266842361141615975589744917776323359187781293915635813786350179352880822774909244587851503675799111890049010722117658418679410827723730743335664540784614841941664288996086586812622880745357679570008112491420172175769269154699507836317370270931363049166691875516717621740778505113567285662069116122311238729875224600517810765305528860250877760198272452282461722948548598106312746803557718579638754365531195946513364414116555600908106740146596976080051374845985824651691149512044780199903402592394030350942224155514365290782988911508752597846590169048934390455706543548241910234189291092342532437009560000014584750722605001343138724158723152693471634307879095550319456985878925165749817659875856572280848547626432250049766618536527103539275265063339498823119323091661749664883197861028520191975394069580777907556756989489773011559835880138432473389688314090188064559548894808446427586494176377121477283242114049284742688398684466611172290816309577468266992985262208397683400616224060556466243864774991627764565668536954345911489689459570464959505498541660284565117931280320800703163312946342443214953817558144253514081340415342915095649079552188297520200334354523039311510623007140262927594317097569829560488679069345004823201909816604042563731294319180421935270870111118518075418636516537010520276742992010410173432059589659648047166998648163270014002806168225061738037598564022058144964185759654568861835287001531869377903709393333100889407763038305929756309835549818004484572123873888967837288030966945712916049033793488973275191802293691441339127287180512834614013488765936329296906205325518527243217080924029314777581349582633948124965091455163418655557750224717760820443841422746526378808351346527491604513702696376113288773401338491883685651544042733094582993061790248826886545733353012701030947809534995628133205793820522068931310464897722929365489125819302050762223600922239796686905108366005377427346775251773411136086736893514035161114282050261647814993912539224540657463815617569686882267492708101700336697083663892974364925556163134691569520882017120719769042401887028702393816446607326656668008143623666099280252060235948950625906054323543528469690628248124386272107734193833854473982196693120929616522620399800233068295334937266189036159018831499651258201262063088013732692120254560771271533239428467010071084819552311117308257914471773095736450837134345324562484969386789898920541909018583975590239848711443937444880042165656244883204353418390480185365713669286855681928590013042612284313030152147938081927795455439098366755673713645693285080922801446899629414518841870769358279095871786365518133759347237895344862304413472936904776013945310092823120112352472835464209840245272607829624396183292863183383844365307458365442653227663616361707679041317362197935581684910976623814251532376793384261448309080058735367511807258676906517191196561930640704723908632983648947086253656665340331672669158451527303310635330010396184360041929449960660202640840440468509748096284536859658166733766038456615409916737550529144522353681541474483199610331943898846512507355090727487457854275407326473048645065948382075376273902439781175609936944800387657573658642005194794506877243900000572920521563399661537351315736980596827391598758345911506261937795635939330961257401070945737329061558626899394967664773267089368626179933401955548647739820891441688225923982148294521163856267110252565202785600528058375064561884288661543500444675217203541374184278292295312600389164655187719409308079641604803172470536201649389367762106853050346709058085364836026004053971833454269084205919883047806932103991603027752078922164010008471393538139218881651080056327648597285523068575780101155016858894696771457832277921162213457048331822015807395358424926322194407456955749961094757604049857841706600958535194856457242503662224941347344742244784633881003074071378725343109547847690490236635000106588993787952574127501764298004905288485963413967023590703041965190571396142625346037220961131355672153913514931637329339552044713191117144830845040124129123273797733861367340540744393912755750047889500170445937560707853457068882278293116892387384943443999989425253491461690805664365120047803749826414213382879393344977655182456097374290782952517542590151093851985937348793954595790464401652232222412745494926155578480035994614639349811057478635082790022591534850721812771244291249607395804525686961726611259422305652124462850111928060553112045730995866935876152148608556801489506389032169601830590385651073371092521293477162450176527829098841261967366728146932942039081498765338920217352430513009381621285996469948231002678270865619450005434486207826057878226205510841887574998113303167934112606461115583236394776060215407734602082590284943940529339982793822903863490711450571150627697804245347976627702330671434324161080669897454532932468597999422786532742723920529366483924558302801281051895901399686465021026295083330296912187109935520154646554708848164945976553770752577675171402917760817040440306053964833074701576315051293043143917800751505406352672476084617407111823408617614541801109997663167872841025982657662355482556297988347660136470709930497109373006867973338104400142436658705267588380799257145450788824131361904458396049326150966392415124851296887060894716446295784636041343102289318840584576424725506000540114574398323921934567689188443303061626872170338105710508857332533077940314676807149320256463404594275544599139511312274420938038493340378501422766024982533096754882223533733096437170579613640870482740553536913959889198343097526383627605029398258195604014845392279631315832541712204675207092172751311440724864127181328540418184278688444697105593578573644875548592424699328009455864824889988385347491326929043278472268605470032994610018926117971904795258986672905843937162710501461156714829599407506608078886905338450796251703522553778452955557432824203208214948696483172489577373408337404965909610174731016660062131152964714833718302281116088723768749167998602006117322107681162361128976166484552655138221037955806239905321074979042024437308947380268292155874021115169288720132806181382737382848965681504487348034293622045637958009009703218851855769587713573897084878977972611905880804369399648441787275203018941543213105826043277118743726475546482291986160369260929815737479325106273306481740579532745775432841310222136654334622999110831109933376901967752370318971320551229227029419042872173751311966781381987526143697634828675331625234754107873580440069453803247639519253127030056132735239417659758435448274047053011853335699224461774902493578584856672336792185429139068794551896414873751160827561290310753701313180596812659453638517922619835716985487612433803866060527082127664584356466075400614705987324447305877609708322028441265121448645695209409114810719283125747378588416329458951386336398357391622959916833331586196168909982483767562997669253231973886274072266050727473294712833062681018218480356467519403423201170073727949563134634033853351778122952391653714145919970518798704155463993307385163024932132925326834400842222159048080326673289590303554272620119754767892427510004462705654254715376596148911462283899722505618079410815242935791760574612982887528212838094264009288416050670527445071844928377788952451053284810205230395222754434307233012824907426407158424198161007255525381948963233534859959512299419313647898396291874504567435955005804714155779632734320112324339749627171241025034133817211089508525047045710514719300171697525364098849705482347492976781753118459421450906639056555167540273055193618138947290811578846483804354628322614669931234862525131470462889305805496609506059454525853014102076200459642064353162413146917074476950602932998151832499929324426002901725664059983736843144038181683506448794100365788771536658669488422414119953135805578883807968180168521311384772678254544044216339720794752568308737389492682910352843085747524899162719894121268862995963090946826848221305399438325274168212294578963058529507218949913841831793043329367797182347058017546658526559820116014866236256135060140050597454186104247494924936575327988291793371925532878851035846150364748299252710069269279050124431503274805011516902507925849637308464847459238549381511915643724757740090682983774925463092521480469093964613935797003630568458618087826083508607935945908399574603792521814990172984691337972401870876310057524914127473429275405137098800143415391325156456300412856616701095305719946649645743029596695251323293688513570113158433567579213534191011043708907381060577770758800872211413794586363446466438028889358445442409476130562762580169489646921729677752001378951043171211677882698933331900891098493758566567063144679244695316172229710657974879187719921785611286819722655622345535397415960414259226180247089948667079992382744925446514577567591037198779839496413056471138267686205881378056504451920981048245965967348598910159390614705158497599397459840502887400972655811891922492244615364161513611900753837451786721024616096288598113054127985251146236893639639370282217615556215865157960848508651359163648196718988740953923887278861231657762481165429085131940607744365640835457661047864750584962001100906498571453485633459862282858030069407542657007420964326738940831522058908706919278876333621150207434316759882029453182672522127257747919413133924297423895015606570386374306820776346074391546346583976110742662808740414181720664707673901826640221982350412693480610805072989696371411896503797208397940790137712700650094579672246461665455056221282596813023874715025470789040545734830916561309009185103370293489450116285718364929173331023741992144625342000881047418009434821719066740690234964453173077793975745526397631177731078681421106997131335212362439799697816827726769842685265800220364660105528421145652203270701983730761192906383145637245256580652947595528671297126382111196333928382434271005175466076704335087398294171107437057180292888786541234535148505791049801132959745804271732047303067294144524843938574494593756391414806121050941544038518793786670963915677881849047326696198154446157803118112713709214192021638562147993126678021036731159261859694150402589578349339211907881179285478199508439943292300789110267693298548094357134191161545614204436125428420152202760676638911708777502549974093845928894013467185293420630837097835492667276421942719697267762415409011180822219402594217086657023298075019558190279783652576201778955083572738888842744984227744173420732547373263215915783197840941160709913725212368449784231629035580544928039832268903420199341438890257098465407360943621000576782942596394257138485184150147468839005633556664811456584128404816516319149924455120859393862768204040062582212431705109635334642498107683490861400071610615371461656887542486749809573665657928248951605901487631868327170021550349170051879182653929391804448657209802231575174203106026231153282663952644775644487533014306619240366941953251516668889559538289358128882949301167831185201175513981910197417652024091929761945955134056985044630684957268088743938256699300144396699715906919597379003526175325074627979344206795049429416797994165583144701004364217432707224428130148522943022312299377474127300911140468627777340274008423336473858320844858907866750113352783201025549939280681955248945603107501011367035141590584009695196826016869865032625874670078567036219613169898617589155101795661948029799317533501364805822799946137327238385258463685449623195064975372927743165659537318425283630785429553189449690797298812376685895784664824579857041304302849915096365864114043937279338293068412470231803261068339481376559358827323246955138386167266428898709694768274622301710559681483201451328450964690789108782624011088703550896201115771524576024600486735984107585571208375230445759501724139208399770584956248122189306476473816836178713156330413435133524210110276657052728756431536969924408544033479360334588906572563796686742620359937360086865169268545259636720153668510071450186325150599816650891262683187102307101065505314351055267183377605236439509651261326366074514723134550450073246279299436265792741320841061668802851419118053341805039671866881870248825472070746448230723631851208006041287062800045220912076623932423788721708864419084878428940994157546958747011390974298480276436595585787063066795926208339612005897459777571264663633421015395680531788224603211060385708727843325651264746528989915356287195937103103639670236983348084469790034493330946965825751952389233458947183096935084079553821005599733744870388153151482580207510576443595292538925591764883813129238651324059635438047837362929627911490003554282929776674237347323644728305052155934120526769024592556822166541240054729164298677624777890278260445274757710565602693914989984808981178743181074333369344369028201299205033689363701458691911492379366121115894164111767325419204293849003020420234865089325132764121368572186451130780731190939150433236671463165717401102859668452326745027754369049788837607679979494857157565410330694866335800840218706865484373141349163521532180868845888688247059497061144199206158583321589265293702214658147429008505167257621386126672001848511710284057726716204046369215077051987985455228834174977040979828272020674432340161422896460668277992574200897445742438668855097289249146093955387680286548505257631554939404960663726393857330858591986019514913628807524323684777396769701224368743696739286818818457861025134228302134870678720649066181334350071570705382225122596372264646724182746628246573344221091324641612426035646459084049647445329799309647024126520906427206390120118282751134224914337146113424740714841786795651274275021716943819427821305940359829783929928228377859797781491062765955938539332038220062223748027986864935212573954087336212393764515193395708674814308275601938686002365514825472777254464791621166149202415926571923675614155261496169833884365138116613374742233103394593240896853506071935278330159072320884171183544142649146641232941321232490493985868509338515282711161947017186707120115904537970961616592204661117833521726465813254882590720406961673480121449432117741356679184698688671247095700531221809577841108929415291279624410064508507370412522815087274073797258152319867230373146812215973104788510016802211274623571721925349271919409614995934869857850098185853271402425199340638942018142182295307601531247016126137022235562591394688842513505281288206179835739705802115510923097197529787060076141378820529340422255164055620936631334505683067470943743044204919091274677858564077460375775324769414148987647658974919860273203216281415369084947637881318872394990295328229673050702382689346353858551895539118558669938231574288247918129728115035128037897952132812393657374315287767478217235768945732566676690725029137273061486867294049414944468053581274241244235024368337576754652707271037661130966576909446142381739585656291416971960315459292302829871140639761705628672345249447668227079908667865834893232368751640486140850201129561762867470819493864998338314585299356956016801998843673965434802063629837181243835526408444102268306698306100514595743116926895389913599717877540597739501888538289016194490053164061810085681573379778740157290783795807507855342733995493493413078321280500014429983244721816351653520692705878327587714940320153176895196466507494932926480718867400953516197529314490411314788431182158786704858035331324376069207703695792595553259958358289120250172087417623846422862272047122662806597308866072974628237775654762404687588719044479880940808998142356028702177988487053299598031986630264869102365808585459374262655490533205052470965962075477860614513827602332612929049747465986945566208048280765558399793313516094084519632458144751125026198825559761786892334171846759304997764906948895284912656159874497153825427400049000978086027425970735651072345240265681040103236143733649585502306138389070977478625376675191606996456678680545433551286857215096527066074742907829179003235618918921648929344752363658705445406381375238521530647951306760969788358220569942429206125251751304746927459518010227189021156647213033481129856356665192947400748842035113422799117820475510485475716236627828174501859396741104952054193067472749701341035453639813458159921206966185808396877227156959709243259289938943529918431773647810835020456927847214843340662138654749423993283898508650577307338854556682178430012004969516570056745136331268982882571769740032520856386337812343743748251811527342891573174935542587192126744262102965725376305387456627692703098577243228945846280713093300159973605406836161529882648240491887670109430034063801189322559435889036778965754675060787877619265063425031488187842580905735436745174710824156951989429037992584259793625778041705537267403779498880607839872840787818114916447274892256955633964843168809451480099150263856393887415612754511942926673037553466584102664438723541255831251901194766202109799821812963159547120311205816679518370451820898318445622783911075256289623634529917627933749185236176536917014320260935826997760835300383654197319905176147147047722403748715025717692197897282861911088368329511058609824546748529359888323876398234667116074702946138485589170937551811896007979206680801997455019774086870714119893903343837290755238899215701702138127685088024492115055205693929898219873910708227968590759113333342019802876720135167396774961809995504735978535707775432702455414975782573225484343385397194080514977784194724384893903987072189769045924059750855073763167314038916105227402187171703736369508007901179793785032252618427043172347705722069328890077454485481821534034909052103844395773365232388585904525812920527441093227319637256834862319400304586856285383224194345465492340231964011910321205387423038158480910209418711932272276081006086735628400364855669679136632816532815597710946607613906665969756445854273431254145569081488125492395495813103799694728927873905956889600289357388992972994766407621296674818700749262309983309101820361143152964583129504110317915452298833772175302720699579589249544315360637970627983621687811204453473070547048352435090381191121346412720081071301634659369934616806344443826655120931874097641682665530688088842033424396321308969284259621000708708406151002625840277035914674250584231585309733405888554159422924041928661847409698048812170210473551728645176090599889601115474698052647155251345683717198619595179095838644160499586987561848838980578408939900760207371357229824664254255876196334834877993482465303970915021435280388116619295194838250621489922460424020588589930014241913199648218777478323216487455255367750592284019929950754092388646675545928085173738364099896127812612765944457009046684965190685045412746645835420820071727689187444848280148471460586605433274972124460804424526036154379792591386059683626566353265938088529435494481812160574745924040458439532443190756746493955346055355479279118271421231277723408541566038015861809103684383545160873436627838693947381359858620100350124813808872836149591925142749999397509671387292375137172577793779086872335015255731412180568683660159789369544498481077673896512097905925944483563262423631070884514650485525561297564205247390419865255815246780482205172570633847073368919553568326179922801683791464500286868516152307386457368806258459431699676222955036058085657425386892472068752541762476063017605782912392846381550600879679204944652479361285862038380738291871569276400643961962102534282714850406711243596224888968062930480173941534846319426837222260011094733815260433789915460362583050810501442121510710553941186074310990064844221796220472193901145718242645775334020443335034603556353150807272455694641449069839591746802541206836980014868767766451460975562621368465137677349522119355141537344347565721640098320933889157637180061358811829999904722353164331872667140581500585677251337925612403839258764228579977131856960872004537663704603668098456092513852828247944853380747075428685267176417124049821265357269457312699315631254206951119724895989401169719988919940872183437215188474032370901678783953201914537553459185957509802413448149953414809014683764748734908926048347008473577734813633690519534015803796064842542785563506011239391406102152075514714852061741914781115102625124494905769165363537932075337434490057814382047606656836763062690195316459616413520114248141172556377016134292033517993215231783304478433975446602331096326416018949503827372589582641110271675319972708183426105245434791691850639581745279464879766870624882238910984261022352806019362865938367258916206060464899979276026406600322684192252201832992452355673103345593029224483524590394851620112235250350928508718029285420243149325691654694701079212484093682523690025093726564201811220461347177812595589803300652935579113092544304671156873181153026748910191527212329738659571556062618028262912517587661469064409505482081615181621849863555572159970991178478416341304799407725196360139443953788159828880242385652208066262998919989255964990317273466365264435477105567736710585704327032485893604486746597423446417543714927401698789103700051284904101810888474765855402920136824538013709035703557867902233935136410210449041899125080003184617864206582977043507586726703577271591023662620526724841340117328482202251799328595880253101812864383438393667125354797993759902301726611747230993953148558989041204541761549061110537815559970185014310029525642158528940171982038430550256344094022495449874151409957702512023971064631642363583213391641040663043686233753593311766574236140378838828988837070647658303257666610475692215596604702426954781416870668443852518082365129739099698841363094571180246107181337929055945182010116965457703329045411603964637354284450726200377001276198802333015832587505375720596665307751870750971025137893086907207932543357140836518805067769464975409185355967348262061714235399388692012578546654703842435382641312385196888899808834498855905825846139699846011635508136508189644132287799562104820324170092216435068582720298571105652916913522066183118001656334552745490195575163640619560420749701597457218326199579389485376750335416637414163560155564659987486118310833144021765044734761234948889473739112943928011974103462992851097836006210139017964231143931451654061202262775641775896947649372956604500649827049354392508731594048373256894009147491433495626621379960587205704041008565147557273038949956795575046075370677971620732227495453652651460852657269020258436056381500083508468647412570777534299986287894359500999316139516252257387925479336460915433798057747809548768489360214772283835328867871833500384786309564047367588738373080832994163564255569321802841696985804115023787606396043367577682281200444250447643491521197657517916847986115961933679905480960138611835763626412059786856594215758676431625509901888638415206233792387622260496499787066163262659705817963220727452135340345389694665593095062470991751974153602149009904343368470397245161213815091272829120798033932090872235431847659792104623349943078320042021686717978298153911588370841394279599436030402016571030021101704595617776585094865897416676456875159845574268831056894762321654730559128591188130605874401364522752293166609942017935282950167539118013114148608349684686893317806784474991186987428629366646837423269040769066279366841238342730875285287487221932328388024366268321726407835557721848590692760400564417525201383921560709391979718795905145752964933335636518297636982879015234053400210393011783864029969265006850849649917389755574035563913327055704897592720309418678260079961110454232897109841726849311117205983155858583039292691602038568158075498228743241091068374191966929386352226990922921994784572765787066462014274330915293424967577215405007622969443706238005812913439051567926094770929307252499923801156476512127833488369589856604983653905708443824932213671439796925740487450871294279443799035467230947907306121589732936387196508839560053304484881694201408426894557227528838649833448877284356009832163378864216509634679237958796999099816219386541978201059670575371956677186560007089963095596234661173571897069038584019596639278960585768599714068057365704158020994876829023157708502470330872038413630720652129437897012414597232861211580387165206547536903712542070829938779530693063501707195152607199087639575556693600610479662283887446688820931634291133993050246463269846459619061110285670209005990736831260827254013335448610387294877888833993600820224229056691417410526795550731005851511778386236746995240967072349280931840253796984980376139073983972103552749677069494171294605497710401264813805357540823238850761429223065779101634520801231822820178342565945682064750334890342955418794533258293971335672240338829991377562544027429120836165562051601950296948900190506401372204741446626616744788998818168174835085063444931030807725365381757593686172475085291468987605854802530482966269421647060178368148988721911405024570694499138670374835467298927089683565807898071732333642897409937426337805470253152796067045964023994865971046310394295254925443698097803931028898745635973396708261440994560278653286945911696310476517197228829268970742136662171039794064494773380228658312119727644714095137944033529413431370360655502809152927266502783242565663632651480283811299980158709321021959918884696995580424410889052097889768702690859598547907712487025018951015021184311501210342021080981489669469610288667627211123686213904090151270574909412306885079023112667768523760344888199088960510676534653978560721486878488949077904241943693663817555534921880816959555694829462877144057615975130709902869836093515767455361675997901809433523079149830013507527053697991322719109163359002771690709662043370140293662865858934982115429462507574825097496985014937583267021469912352504913769862823228083485248221547505664036960374776734085938592313294580784634013224930736536771602045674796083746872095978113902358805680160758585992952914583504367146569115681371933627481321961898902976024622618886962408454858930767481173087447542987160186479158892175586708062242967179646370695988606900190740256063600730812796536734579712110015348351027072520951763976456910191568685093418873516248031593735006453296462088696204360923471521805254335986473246002774853080034207641458135645802299756444104517316572180933556017773405412180424834347826475833488544553959366978184578725989863235808320652286254271863844639858221063608858457224223326775852778841181971528389904417120293894351223490012693574069346561217716600438541616433666768298942026684050861725763985356927320662538827308826171161640364451271198220008436819987074820602497046765602173370106901686318144781296381945655979206475250063921520187534238502698454552320056967947617179062130957830973019980705401002329192134094896463504687388661533356755803161203135559050883342034227027835963980291668939131127081671920236257915606206421979832869496485739763974877518152340346512920796156306579350564635763007130601840265341708038828988449190197694258892007186413223508064686864257483959654290267668928080587306759360466708262568869136563846502993192148434582741985691971448501536780139014029077771744896052215539446374768225273961546854164544660287709601664346038089719571533966295932342964912810819839655080224703935936477166405841959151528071393642055939499616727500025933535926858033861780490509567984879786108302691453247207312959431190866697814981144402969192375647179313653146464428996895429059925512249890947050932381720318205026284504197129873394249262709323738654801298826918519949982556727160424032041758085768790258814544766500311423698518304479037110840592408463487909664948567160258629512524826472348614210583390016443696183789237934091946104922630755903542259160489762881796323456853261393776418188202076991779881489551407369876002646068862166768563918791725392750576914339749537927591446559001038159999833152186222603199669177609512003545884915480743867885196208211818638730709600145166598186215900795752788729222370836308711378767060961319958579498880476732530846797194676276451741506588737422073159789329144474686766663635713594558616091737458717518479580535234092267869240019405751395211275993973881968126949685085669382657235492002757384688499858331391968778197252945067830094038307070891810283871443788542214177794876893731885459967857414921441283228319599861005462251325643401617496694171036738660660450895303736188627119682743910463673519390551289135174128025034027674983046897014184089477795604154554515900528583910858862977310884970085585639762025369769738131372306305309039394417341141405046533800887160389423988583982373824800173287025980795748829611830139707093320576167589657408039142232550843090351123505538123643603911496770915576367022944007722730280717013119000723559587483626308886387727729636378115620033328953061377988153862728062438755702931426342595347564312589454484577850735904416555537800259510374104495532262937854736113135500154657334591451069162946690977994194908615811317807821727597898185350475075848405805003338893155664326719528490222300719971767193556693355431991195572869809226980014903635454343744642752179692906713463464159124457930825352510356650407550468392817603656212456057009895391350435948810283417109400762163416832079324277022448988728617294399500242280529125857352708554853292885705946919642184834937520005031219718842231350697693214251071391523746783571050450542626020163823596188125343539191727367875411010115201657458670153217846766936849775125108805045509063495070691908414619763070078669403396648595452657060548995480577313101990292809212318733747613537922119764175522536522711277004310037456501444493054694972135974716275192043215285111277094401173311258392890544585679762829427867369373200060514627530752305932690099451552882484585145694550759714315751999603635518474120800304030388801282116723970416575892574493709123474913275326690225454607161705435551100986471891484903063902354886019918961173553205201511046008759831780644927863715800341096197395710776708523015031861905814331308196130420474753833105930148652324592409501976824148461558162705397932696204530682499950187972297759870072571677712473770739979298959934920322388927740842977562239467755649461973268621680097155423415542848718843694508866185977067134321547873030337254724686214746294048050578296092421708077627931323944974702565189265746164313187974880325415945080762829270967132161638701806326253781891508136503071626585255366618720440858418942112003085680423375245697093705990068320682805634396085990452691067374835215341445495298626221244598338217189839453426863459254878911723404140204821147875957616062434335160899185643944379558711010991287808604888515764354923449411869509440900453881904397976654413120907579584114714289031366540614666457113535726742092164914102293466206018176434499407158579031218230246589205587331416809748563546835462424289829782255643098689086322645353826443853008873478903066174091803561700545816682477494475470603215296374764436577407439170930002828681269543663378395827920384893407272227600731232137148085504539733362586237601067741645544413834842714386595005320286700752634951192798579402446761323072102676271399996087201428061229902347715559216958790305854582869978203355776307374302327057027909772332376819593795185885896705144463498378450712715913473774695914864810792496467778279620413203073194891905521787445593179211609840267152372202731576785685180146642067677095942192277490156931824074617016751518107409853020515392268027048722476759546442444404316133619784413680776235124207530409197467970293674226716220357298581932671810779709788185184699831982347917038602594340190037821013545607128809547198813643407780068548235775984720156859023135409103093005695249446203110333367715844912277419895532194721727781366639905075974177631964320147294915378804947867127765231988100414917217420788035972143311309124122734558766761916458314603975259041757412096156599581467906563481294761932932943949301724213524606613480855513735567289151719387719830230534727443383325005261080156135063857476767011716175518776746413795272476873536165461501640874206119398085949453833808202114327663725343412290871033982184702236419003401802401123496191547782276951395892131395358921625343600493351574473813574250550881309922448803400474613311282373824784714066111505338687304655067055847636838181844583550584897801104599235368385654513614657013988043414230197131953945879519784694980814875486072816204482082304629541878565424919102977240843355533547953095223634787794522700303453714758614001279906833050243012351920530207388079587694468235883495073828781859872375037424984144369503245139760560004807796687532411167162880641218915987652512906734327139483101435686500775104024894233380080014141119655496584722292699391957484410188775875380030158812201685346496660587920960416344395763105770524743797955164889626863470630007591700828155061252784742070302908509852072964635808021211904228208457665898413068365636324340930107263355077044524212545585734394346730536558570787845964171308341656942886764531890785438280278594999006155243914636518638168990971805573307910906063750706637455852742365057513950136986723953948398865568991037613590813890400440683720728530072601222521739529531311268866341298785470401309500878076153235168931143164222122531354288411732639824785797852193231829317615673728299734839076376542585869725382683950612946386122711645126041395951928435438448959332931345479603163974634621837364532723281755961115390947135364986856314503916564311982971290166088381874272245153265160064672344905327163746247941944292109941288493625474425271833417933587254955906221292900594303774434273614521327665336823438510313266840956936376109054697376747516062253107046138936763129071742726115511893251327499031607722828361524381291185350255912867055551507461237782411018403695698460282200450760238160018698473786703846483677343899200564055764143070491799902263207032400485731401131416552780141108544103996909284912777831329236063843676583213254547498420670996948844815338941914514619536505266459648922630220401467112259131097248284944445884871150041845412747677843239458094487414095737064326968668782333637783933817352523981351544287609606428918619911357385263820245784630906517644063898086379886753674098203590279589120752579618928843435051004032134337862384617909098909763125947472867106607278241464743175908910688143484874110003163645762572567648586183435160510058689787617884242934862358733582954132496659528208475796526985768505727012810443693217460018155955722311396884913686356136707020083803552059983109568399996052213185501007211286458638007525191460480689594229244652632516837683965951763920801326504229204576971919716392216496800221258872351585591003785544115273595981622507785929264912321602460673561510577644067794623784905126095843998417859969344917353569645103444113604541262195395771709468846774980061585623937212524939576925329983159992559853741804489528898848894573457748407750107802773033525167276200170387999931844593494380954283975999207506661491699305004057552128421466753467278316838100127285285426334050374663074381492112814742422108926270953049760796089160128411395637076521954798108922813115393915651363840809970175682470831696226078231918341839458476463945135652818964748766736791716235552373414369327182347999723218422912746746012374138949143227259932127665014026581284538903408195036421988806955737934758994478500920762288703602276074452434496533514981647698350466514318258236179940511551543750465480835237318764044999237102823400317420691925955280241730029121677912489880853359140377909827677111213162010207815932617821855391873822880161891602493455721223453298774719543706220766169731835552636492586096975240948598121562866368511470767893989767689584257333453387617841429535664288149098858235684811757779850181195960036477799258196911067261130757238581907644260037664518073334924250942344598819466591320969239115809630045538323767795296828642511123461425485033652016802327393806398907853294118784765677461801233122414312316621192378017412516588999911011991553126622776708052677039725056025052831320980501759055891925348070347521284337493522207259819732727955930641181799683328588792381429955164967250942758104654782460207491576051737150316097525141050641746727978903998898095653845239535154656886364250492629124259220711300182620319376113265519228481262345656591648008592303474032578069317798780038778701808251527367333237233666555177685941890477413028786839852630244534419716428806339077734540175256031740326077464216107454158094831255730688700241032653300122728989126535092543697978425206105062421573894037764624292579314291098560016742125776559167335017177865010089829309018377650726168447686361597798744383276461281974960408616474466838776225231888295572639019899112857358028159629458052143662322781714211961579727022741071095288948278636720545858029399454867206749840152756362116848223003059572053516888621031300951481117553066435543655096767176753636177586078434793563866334079917657006142688874247765263635253475925305680196791946770898721624452334497997823395088284846704748390891036516751617116693992171540198204346473010939953196017820677657217734049148093364610568024118637937191360063704583725014778452183601754808449983410625332202270147727904854139685506424611699867904431441039077316757653210325093752590317373133704858693986652906072345738477422063658015208641813840058249496891576157541691590572166782445781452780379488066722281133952953532783574423064323875776486373619162529589900809631741354954185623764342132997329272440564755906964919498835009938860326683497931523539833072421480948783664199500296348020997142518615056090667259576662077318854155849417611804841772105514158194587382250052470791352800379626319883571653020197419581468370895398593122953217067293581043881883897157504135573153046255414050840409778968183866391268820895553706203528714029784659333240505967612441571795648416783336687828512314799278270703076084498526959237241174615177472887260902707178866493990612911295749124001704531063131151455968194820639925000059099011395589955736638411559458021216114961990192010043111485814297049523930257247010886231033224927182398746177265228686345104969776262611796971438627401068931424079175805241445051495851040304271140130325476543901323395664312735025400265258568436996819307039636488346122709067410628662958761458524751919219001906599343353462038328008162331046297244734460663244213772102313872344826502866314278165622569426441192268422804673028172494766349986078144220099401978022138985528015475245843568765625922547038997781785167656500020435935835360006304059895409592509284378369443139257914897504416772168406904455171990697385528974012139543110798952241456193496891045346929466044152479786040176867943434775029884937810438126556321242843955092829328663261364877346431261743099241785057900428478485704316007058639300634887132237165308118328778513914317537507566709797033073406824466998956952254989351511298576391409356354876770797040011557635727325976589017134193135640018435452811378837091516848376171398355508403375458730690518466788086519131530491679295794651965836715344261294662595753865566038704350139183460884983261797282417617748630718059611181515508609992763565512662228412824217156835831179788790635299054314736668272829135500425401236329796307458979901493347332235090713932307994799677137483483195331318080630680321823531653987188397014037494061040141224545406314407814805428387217758614245881810950276992458535792829436913358969517784526799681497154774558877095418211200939770316505561584364270793965010883383210758764020439365311218904412394451098947815147703085814945947895721309427015789023919593708290047217654967065749963384204420949596831796490846089188469606686471601698402477914145999672767550126788642035622402065806561297616732306953290771800569924579502433002141304613981273100364322595041876650180439606688959137696228193563472271220536681032722152484089709107212008328990995387049918391095088287166270162731394571499086209880951391551987542588769503930068214266664388186764946841338280777290553174681956437867615981981024541769742258787908962666449154543815877858526084980851326825413924748795185069389213642228312348025569177237680403267045481954974250857916233595837129294421194216457847281194008972837318789826684101365256596175859368570841619808404185551101910988111548070482754295770973873744932953453787420373751643574762254397446867131420103465094697998630840733538637755534011577666176950088162001511027216883585729187875669536353479658851654140490817982242359881128398561404608632393479475092923453244949545475843923782675932148500587846020872754788889242689273366159130269849560532058897804837459768154075068410332396078896780127780040732265133421454986146196274387029571271377413102271238607356763400565358997716319472717689132044366703284446113839433451276535126610819196386696289984229731169166230171495127308373085175298927641297982316329363313429331958144490681294979069458592245830992972462898009110523493310629896281941176830962064052346154726528322517175055663270034549909849278196109726339171627243853007704155859006030919215342367276961127366591146284455129383335437008998930631579172598954875619041083663266915809327779461603093431829909076985285594433123976775373340467148723594993504402523874274858237651287457424142299653401522486371990269974478657572769165070316439971012522321094805156232203926649519969463660974971049329097118648549216540658310739490844931707333255429634429048732193473021718538123894690606306003536297018373244582007248259760690281124285354254116828327970922088992670184689238159361027268252212061849695845714437345926474277585899840797598645916695965201925186972774869456604058264606878669217299555729361658062550498813857909109856983274448979678416962669898491547825443652407304899411017069725868392348478880239883157094727006000856653505709700050572642569041267211393379767483337031747481518525532554049654587324893423038125665172511492491301135230189369767992335675259601457350493855402768062376106574488408243316199919229366602961159054890877683518421342448190174601157152136944819880797956166396395375215677823365314740731850020444116535572968931477396702628187836032883039314008447606898883967000203446108732477559491469537630987330339722811242912649712631672512566949544249238726003684361266232295953227184037701587669860867140263588225418124568359964574371056463021087343890899691997792570409017723458514637371806737512950741893983386267722520888003781866128703741206159650745694226017348070807967742419607314638273395199395630511796121845389674748808074506276357938293676108121450418213996153782240970559560602250432691094339832512633936347900572144741700955620500760939090745732661404440658528932033217977587877432324101736217706844659101986339111064568823154827460839485464271025415290006657806001151887369325440660677512924979462862114727402925778430653944765848848761401529610216569822869450357664927178766903714370109441829225623165614120004103805416263382022263402369948332564220675617926252387870385091265487563776616498887107818325508945061428778115925379950873847639782884582324126404599127627423954956398252680021615122741112757864684728568063991948635074999853409412008076136899415527666623215454396925692078680927663492543478319338600548958909477802740907227133614730609214939301209940699874721569798623360719163063022331111134907313184069384764633377562972790594930404022795435856959412577587352222864946996894620321832210647880507011097249249223535840715360490601915672777143432751114501003997970233285155709872865251417747183228121306333853744034295044350810570917551304324253664941128593959071435702379207241229059849185282235138546433511410409203211095901286189172520817902552024120689869822710007086101337134962205533666255199681403645871141126005184686912025077945839612231200097766598086770491961498912530484109166293254646923787739501447297095560845222769428793462903227899839663774297232557375648393557954821140198636411870398496860300404294068024652281020828001281294433722835437199986314339438477240049896243531199859161201304819778347151354858982738955039914424219524848603392241386519185388631104120068896917966034303597458246101611258756243371227666841378198227720729172700912101488825054012894995485060468315327938397936914002190000900159837791452814450761540194392896228332216144582191764411146783481579677515076811301508477762492149290856918339008796910758361795352596314190687266327032910222347443012157465035969965733859036892748349238220090797286548437611896538827332707697680704792838387513821182668451519062751879090901437440370544121992501986439730573593261742099143669626100518839347536147448666335606628632237667178336048116268152640715716672818242386608356760598239423458560784523202547668544721615819728470689967018799454890745735034504064676743988282299141408206091927105953407707382786208313941105586185870245380072862505721528878401388036672429194664646524509914105297211431034716403812763599019777574625018018030275970416984616090774772432622256504564236515482149987957550250556538250122040244628439979783763829815974680210057176368770844775532773892485802313893000129584145977607233606124762926934463681647581657960447188605594967852591193165794622042556067804025031261614532809303792071999197862581571555999197113973762758544515739708201707508441779720167073136674344560922954746820961326045074402857475560097719516567109268152679069671521403184024560050721122348213140874473298639263525279367298945708409749099516010743888625057931899692238131645141299173758707177169441885273535059435887820260147558983426090426932580388708433075020406856538212021907351373545851695949706058166401428970022187532160889040362610438184971071820424699413686093701832122878015863549012809706436159505640497829907415563014458860710112818308518506713864200208873334890677275444919881373140418290390954179871616464986385375544482653940432800826543945776043716076060470393472794343248400002111215000302361271779064539927452581301514789006921349817484416695176466134099299897826626000554597474190310098072488103602925459897515303772878200630696932021676129260291519549989832574136749168596532384644947150790543252545044502535675682202051438752663031560619248755968068412730327422010372260003301628947206171758433286821244827051157618923175579461816401630879796665133760226043516407533517188161996165193125612692349742595896650770262127131236022176393699076931836076710406411105571633344609429192229253778180608752680189462814088881251435029994038351026657804275429200959110181430449020094589501159569073807069392109061108853493296652034213354764376909484254137054887720773740115430787328487448877499700566028981695064562002186892521903020365946561899655419355375818659395676465791973090030508980666699113523027827927491323165330206979297983266314378894866125516864618278567714443641639995375271001980774244589507304135933106277925274064547712149243038616673505057886791924159320627284907647978095632333274634568265677005398764706395856234588775102694944363510510125167772126903525934296920109418594264740566208050042883565288937880161567266972885505447471414411534924732862974463635522501699511877193121371684439493147117235092350336255025383771863919813809022074002564305039044369192491941693879968402982784344026870266564668843384962741339827610482753560351645397646803878598755420617759165821828802573422026381984895755594673712973499240581514958356305822675735356078151889792025689414748309796230123384574936552114627777371058260923311611311827377531168266024080488617507858588059684096921862693781735222109160000188640839197437570296011230504850321964772000034369863878559717149260625176445868384012725625021751500614815274579798876037629050756831790187749201208427748016238282428261860550405982305423333945550475617815349997939167732562537761517874505590093296965230718147337829451254434021077284075687672069971482827264773628106721550742861878545350863512108440134098467668020348061044976585040623008276138931593655646180023946032720889315332227675176157732431798568933492699995873206376764811210525354129672097631046683402471072439410545732837910960412042397785982105925634958050453878099896169113123121873848570635262473676674568575294564935206553322008475670866541970219930834523570008363488930511484899906450690059173662860630020023628949350292828674514017007842428686980255951852250556046588000527234884068342377625389066020729283287452124973616980517044208310081106060974227830699656253973803377622650522704495476744239451890782265735137509437441863253571548665116962490553208960181999605728993809955937498766358726989844167005961882925563277255123820965057589959912012640986722495816981838530154515712428954785196873682477469294131000842065015246038349725490543511130530118911006211565129192759421261202718552111136639205017403909917398518850443137304091947617744390250484300741905452803661092108404650136037558105633544782513700747078527612348765175970692234351919762004438252134927822269505522628082762264789040851868329945954378842668034039481628437662769256318650973164185139248109348478951869418577258801090247064953389468470258877135423942741051276246453744644218404072664775965978382626609053669787690324532297290898229296056601258223885813628007800682606397384509284794299944248227671420640832052968860216666465207349419319777251141014688779837736193049391583154881495223029257321827082321385973842873710745008585895396540440548517489947465866782406772893127194977968163299186397874741455595726246294821983794741278511933828908907691288098123735027585166622419982589782917471457526869870115279245497524041654027278044563741454040031950140050843972112491133240599069567417575789105631856481161190837968267127612700302520337043571550619350301268377334908505975152037119890177059708702212087608708947712100811843799676333127075475666517215260824887369082979904536818587858286918862550143659921573645595935856887580871270858867555650790496336224106844381112539300979809404369412720847710745197501566705357393813107471172904920686764269374061670034673731637554264833987727242395553693433831922745911114426626982745020634291494187731415852700969391646038033492987304406419840967282306095448025353258989648993885102139142656917244023676554754476882122959205296119537075806070221970845269028621322005988580927329095979983625982361170812647507608251289244232305015109737214152833772122686956620623567187584857397401926740789283387422810771976905091193760464211957664845788943194791995318509711351526436961409313340908584477348655094401613259370441376907743576104419212913122765194154508460502640909676683877810559372311270894301668750099849410405519613413454012798698663850739946954217183979477854547332598797223539171098966120406705604867031110327428386235352742728695972017512445144897448101145080971311582335443357437164099996423890659176756820261531749139075463266248681222421821139887562892388975245398161205530286929129820143421478956562711319933112995342520977886252375395048700643105547591621467691514082728861113158445279888091860858935884031451518201141716756560912930445761549688892819361047350085621642491456400412249246370599111953163448822679520319486996629844739297454803791609605906787659788197432143875446910256561065331264918965716478798375376972806463118000547160824706779208327151326506789088478712106654706366470384363092129685419952593349905330185653173345176865121417341545316454533951682393765310922117662430284732159684756159416907226288024982211981170823877069689503935004030923821850043896520151935967257598602556821196438208944146231142956693066155206426573992255662945319231710095566861970732164654376033460885920497160439895438659814167687213878591825547207304033206924472988089064411053658910748437458822096391092862088609687261050418587266392038882653128800928428424545621552766437275509626782444481035135157851092963682443455937034866733403244802884669988709751130420061736395357182813443347182857685180902033600206263892596139730228637212355367074889310613320349799531837216855369397606497169335675317071242425646903028092422102863292649539662063189752645412797979822325319194717263473661247503104984525917211779649893354094713400083709555393569086575955117119614881625555773704414324791013120753786616843287885421780309417012778153455126533931093009989377422800179190996837568402102365443903932471357519131403066469370008565231483905754318473422507519916166748806122258211539914994201437845451046092808304039587379801848891890885728139162230947481791097156342085998491676119380400498755039480130847693386361293506604790308519834884646385073075527912719682382447731901989763602528504670055862459211325508825120382968447020351011927812402986630756043135550603090061290414192539479696180350118437805062332068583923435482389393316658116795105279073470496035953870774957398153148070360468891908101826763337274435457356413629057475193880909589157927041362162609295546308616101654290471289808424831893729621746050508810799233534795131000868464625349175441283048622014068611692586837494048654420302439780350240760639945914760594287077850469997326989441909419552353601928298794075926603785869209923208706022154612104745360757844090768968697961264048643970069709127834750063012077879499356307995123326051613941598528587295351637742022118446467443582785526963707501732987151215356850357549850449273413216541090000149300533187750895684494979607967067147191453988916650254277074945024006109892319164611784279548752836819609080790127230893067909240176910651644090798812255412305661180327221021378369359141443424911889534892234576275469514889264300133605490313734838608980397927776453110195154820334222627442167601905049195335347550309292555941762943499523904811045491895923756920881760267902723411721040641946717177791781120408109415120451331465316586380472945952322034798037667281157290452083301726362536726657042286270507630101308490589695701435320595851391602638955532233353877427581488055029543749137569135368411742726224815721166376695812002509743055303791107623405755718096841924210569619129108936989912963643351231953184526355110739697793055342763738569375160931804919810440341288696827583673949108618949395375959013271567585062187247529137914099735067800827835293568154875599874763755216934574304172545349165706024693837759497730628635912876898067970616411890508129380008642336840523099646069618405323380193280835285142705527093449252377037052516750419726708500216244561409246393210879165028269825099050542545193362862303703925442814079591602775804220978090421241475006779050892071321396867692334653747230897302049867206939001699415122648056166747195498967763505803600754370677069039707074172895466748424435058550099807813205685603058548259779800309756994309304830762009630121247915606532451534106408377606535867062125701018750486400721972101817747416113652126568944878006471639653132475700993946304165778489712468385925645733685356287175583835083512922261905522344931517951151863378277219569525096986356268355948018909859059411592996204306433149107034311492995041998907334886302347465295177972535337267675717375431606187868078893689255097803333156229266494303976512315753371173641650056753255713554942189941608375727363140220963954978982313171506245792789061119672818407982226202426548121764238800206240867393172459784904439683518736193678408739785839700567694972515880296207073158997032028781851192282011505522997947350394977457567186017316589262371174679864999218055506138690113026838468509902895814979498442271455764825520646569540355654970497851132868718418843687503207059519843581013163391292901267191730879636265030271106733646449138415833870937811126885017985341619576019860818606002496200922371591548586865381590021153144800273331294284487481720117714990519009846485697096347947717108965441745297575218842331725727821384570302530985811847618597168639017251658217984067943302138856504616504214053770799092120565360630141696333039658409789313918368965727926988366265572875109666814853650935260691527068272000968981932061734584465280857533859005127152759854912848965682030916572396834660538882463033826176558783990153971558836476735265234644755879277927743471150064684370238443641000924986159277492904928810670552128751263823174388674553570439062651054956374237232545671469319101740367699613860142379595815823725518709638546744742465042251495730348775856270563403823635397923152569973529582452868169801455853180329245072969536234113743041417838342491554265600643403050462255401359578319263573872843159633858307448900807684524800320655929643442257966676557386335474072489887296775675492151116798817775907733661299825258440998006361191398274024701822861692801791682024401316896395961542447406641799682431508633507499574974328747634404889578605226520252197385699422862255846067945453469776471121775643682194088330929446581422553451650789796928597011786768913323413572672568455932092460296368755914637163736704541732195830978763560001680804032304476160607248780444218543414035327978595023598984482863299341951322774740689642906199580941528466110802068839797951272172961546746653725903329947061723259089487229904987546931838780234362102306532245349514018814341337469587161935523461765514643248240771777546365179518054455338927857161630686131462893346212628296366502632718536739192714694093827043510153234532798349472946860389201350591538425061230372285895269174390603351823902528645018128603336940676436782673702501856645394757046026153413349561081004033450803982742746043300863167565109708748922632475581173531294680332074089309324562058320324503681166296997816332917430688824163893131700065018578038415121174168661679182042336931453858374550995458515308599266198418262784016597007594213058907898249308508446225035741730555248629317129417863880786104497235698405276626593083209463530258075117076899815986815472336320176959463926756439322950829355970906595530243831327701578697158606418258329109966456482226502624489239460751780262994795431049270058257594535896567952800284837361571726030740706833334366596801594594359974389366250466638448408076544662853023339981455728425626805253145435657808914335340144299402109199346600723736116712714718530316182859263482799064778274733033564667153657879190592599333708576493552444742884893704250836518235811516847749544561863671423859799673813841490407599183765726163252427811347056513716695354681453727470424928945322371879332968266388696463051472815099656556173632095948270014526078278575417172380370363725670965304814076756238879227359826288117147335471021259115563668850608693811457819741099737727113358097691804951844164207568937726540288433229292407645239642780587972681167220539241359331704104552555186545984260303772762974176264955879770357923774824104181349316418431007545330386136404320812875307057021355857690682857906926291603842554462771362030104978226530145564206382775057111473624449076036337782560297526327466079022697763658742676882548121205986859220671675647292402945736378444439083731556385996133129876959835633756003725931693135523632830137742553620168462425699017307673493219759571945276883479562582641800169475667266212971671739261742626859857079524619855633522848519552973124890385974375419443536233856839036659922433396245667820421778645051461737964086696332211051109474832512097355989153042394359780683798660083162218100750994844936190935856950743239203534229049864565114528214018251433560080518913902033961218146231556040705164018636821603218417212591337446043150637185659039696963806114278348016043606596556738819078328372114736321967340212240311390864451352431051649068412857541585358959099425023899431509598411491057534334329176506024436936319477084947441831955475778510238732561356562007539369828142476568851933996543167994801491867066687993896742452926921439687741315011098574072653159013948833109913414689994873963778517318942950047163104319316766063047915277053841948324953570331778762449249878719106817384061877895434999242728652853318173611269592756074572650649530755564848715241187107874937119887982382430615147501752524690192792226473464907099548424464123667098078943255250143031465316794219977495276556944503927118392625257664143849379630139397138727488637679346624402589647677670139386776667216333115711377300838384401032974340717987981840910596405872081808121203183496585853219967928509869358563853638575148408120701519571142944636508787355669981255415123229084747750221250912342363587962236606884213165437522703035831583944242677022446972291534173482573493407505343699041458208301820235183195689498420239911306974558245915885316095329337186449485708605379290629941594436330999045423973314605180662887514231133466576424480651092241092159854811533069270969468090675908197362906498786191489934230307975120624895693801264100585070038715515112857745396445175043315919218262475263850181467928134798067999079911219729054061208425661758645047609639061335084869815707826802637927239782782886397747490038303592873238981618986664045197085558752276120153832690604844252260286287503467579847242113693552041932968251278242700075330369160783358030485336975068955647836633773051911985907303325833455975074547659438870343146778819395386933475858134131613311581898235323932543937775995919112699615656941733435898321909129170717891564697548312421147414459067363577291515125870640027214574868565073329615032661398988671795282405578557736174087232042124837648743269613925295671420859574586465744561435090701970383546068389729235737516991672194703509386727135751608683542809995244358716731049969780727297124881933031525951653218391002126305583169559396841339389250435419016464384463911236829785525107305947207133716864738180013626552790862184459457121816417347001050253696219584649237535645303410102362943952634601245129826706315790528481507607407862242461174018812503246645240170847100313257004060555555543230877101579152089992501524320220420500370142640463499413502874718592074232058382436445364856401694532842260991104304938803679129463528503059635351103397020722380771167743294222277877435332712016098315912440343080622205022276504574478509780263896438701234899037725662410556626669022322816831297062875081544689057145904909529667652136590024468831393357061283275906027314988455861062888905402642344401396675092325705847881568575835962388291020241279243963416780493574281391055793109805142911936916652685156707689622277558558911131694085794700444304538650159659806090898840800223554043374614718999285587874150490220201090700013973420365073117164201586467050554152499471076169801515524692946363663622990806412536741032114319043328459060072392715506109923423845755177565735480334637235440548502199641048668789594502387480225506077719997377407035150332697719696196932954679734012882429382028757892872986450470840366467657183208236283200013319787898571428541186825043139519765904492016124474648965200082527480719520670056092822081107922858986923148577114935176404730725609709901536387678295794483676871551772947794023044735816873319437897217617981513510566673899424176902476595130282891020773500557713965785972656572011046590409728917965972108301913977814262746195657742935307629703698456957409000828461661128654770328089718743100118136486107305042210260886752329953732302591255459254771157851973364992601095687279303803479141667299210591369094253459469733332430850079262417191846683470195191605184885388033981629523764641103837259208355164997868550648761817627772016022872180151665063510245367808271406036001755835776411679091946986340280201650989556412202894193467059322439234023186815631239182143591631380531327053693169861589259219807288937852310647472198047746064847820243043592221829790854645004219470946006027999006536950122660739221508447601402135511282967730297682664662098038655981468077298452345875516132324023666964714670027521053721475538255485537709582664733375548987133061109594050969178845487334484329696545519018858975580931985293612269334049816481911284487689695706320094748633952245735895671195275947403535015495801085906260813330659159646408834330991969991900881573742014935022053632032568498157660611291203868332173156399406970320900652006291903232786521012867917721674182923940096628465602257259101465905524919379555355060018806463056967154916648529090254191151551956278394282572233822512010586107083961001546106099788533675386246622123531077574344624970454678748904908673106386072885214781059849531688731622513937778169013921530350943073712446698405681541946780914089600753332437483147485783730786681407719275294004462125786141686547301724077345205910771545344878775206411305339259514742201448112886019542414226003206903994770897144735841250857999374924396012911574036549229188027329190128324525436360379790556142001317599069942575342364182100141859117727187797013883619919513367889945298249196778290442136918046789805977853688014576497985204434948005292882132592675357190585366268923657682051015102036806487126161679963922067250412298305992127943420408922949639513405473690830444205918968664982816561432850328594604984345449888957161143031982928545965682599622135213599233938327205594403474628629741036835886461527538632368519926204062856596762108794079860847552185174947898050991170779362044883218580093084902139993064913061247978238456079830374718164356996295369406137753192412033134652672548985162098741634057657116388294660983791460054832388360850212361246163797966457055553244674458663663280921879943804379098471603494793020597662652915632713965385085809383043455295841163667082955136173176734070286649974159589781443844440821942978098484670654502660855313151155869279074073173686290436652394127408163492548743096044412396255408869742242873127283277299058272901908793183681568316521224638481155412520449791409035302692068271541116115700736878218661631093267845264879117941016895510691963445683673339210357832585869708808888344637499988771922653610948482357754222638486376211517747648397924935959142341467765512806626813486404438558699892203000470280339091033256106917565938538533451629700552519501014227757552573033013148317099592756463489515407845958473683400061126427688999469898613196733876628853317673895515369126914125172499313082536766363660665963297842007224062932022791918872830723658720304818026018986304560774072746108359533423432772861551731826033286174891216228897452543465687312999548993538532754241051651801709927438145227157867267105288478068439686176443597415150714742837495856660602949210137527368572810298407187848714112626341485145960343786246363799594036864610985717358283046542898475606297542056089565105193895080370620098603819457590895389836692975949933529727669099969770555597386385848384193523851989442122112092122768962305677803815708876641604017104364487428613587148231084904603373192011741927574290711344022726237281362974534136143771493297422253318650560782454771035088431153202160792336038732022515038697499202176262755421291172723807790458824726487414839478897380621202765622374723118905708878751460997684824406814033499406707540987984648388919907163403018672408538549330694328054772496672917851576070859283707557867748248930849472686501519753987649702826698123036703865984248530442776132241266644796709712226953224732943136830117758685008716359257912310279069124463155670493873990798459700493468358794945979194051870781637110992622173881808768167692144570020618686054846688526074063212090550118860516205931897581966959510434060768601554967875734145069003329173714431263287360998991692459129178013010981180418699717864964883567045526376558460368331445941335272707072215908356184414251094824809007736556294767052768880752601741144396240477047528872137975721503634391746953756387722108320673297308823240541653301294293095632725284463382575155664332240389655281488455742421686441948122231765089896697534338053535517222684275858031574452078128827131169927096188083161233244709711119103235349658900420104233108356172978819238759848943505569262233914159930544772329268392825936127691144411278411551468020055519759457407986889794156015949315004118423335603726748641697306353221149008388834227125245115100688596474667032574567083292034126165745766261665545243700263802370152756273085589267758585287494572146009587834396353894744208488053019998395839454814623557203626519343173495372452447568589071522556955812694080324884574053074729351132224937931377361343553224050879550173996794675135120051462150092349699998474488944714156168836953256304668475890573704843690055166589303339769527697109741982845268847047088761760133117708362242255018617201498065294993889356346809815879805068385345895219968800525034514093797741635298309648790666717817526349873071005831101090016449356066876055759702345090842512807047578342765019239811853901931279903091987796685238034602139124237516780235474413740567997218819360819994227366358022720822192219551578785703677506094754017599572009381935729140065570189208376293905249988059236309174142424503226140274610712172544041187915295716767307223992004793715027261260454427967322403790260615714217803112463407985696818124174245298835562777757660639438774051325531886616922273285444011645040065811924430515139698526907496653149072692170742425722680354091833725018451585891282994976082849117161539421562479037016069166314886416406826950463722065522244477870802853292785764331220312210806609351544511800553110356409857470266677112265068063851741782466749671665667053388544219733183764836517646047607920184010488752959224555954240850852432060173288047997282550092006636729096787528491915895266409309975843280128617031667755464398888579001049495804848022442328752444620253187281451112517093446808901065389386521838631103303417250933979837537067623835550177290396624618162554515014757745946540227643032056126661811989027130839295363143074688412090476728443117083088743847075614023607275020987013797696099755357359197763280355003216546254172944462528721833961852613730369250204235978436071865277426715505943807606605950918854814431057612704434173461253703074373435893286830295039785117633669305986752746900209096827878841418837684690157492725410609353823970864274337764563624075073253320267967066391428640694865077904350252261754023092615321436132994215246111372011972099194251538078269464633442335446939765839374899094050971238672748954645403243050421189697164614704152542981648154766033933680221990427600576976408287378836357767131879833436626261712074417845394155493846255729540579457828322210848052925798327872565439902357455620872717341953326374362913559722696404816212206795278191594724494506655714403020251261190725481906128675388257909231698119539663575149456793615341829614208541573400488619907513314694304613315781272595240240461494978254575045870333973881239377024830558029198221679956245932936352468272633297474825823180624087493830124875760113015970474761853886770259364211096425702070782054359165645748158280849786995974193478337896456709909478185740596142664917765184278098023646958200544178405431618209413041684528703126014220630826233489356651720081346567248940981269247980001670960269170453727749695603784778211954270243116327628890790104486380731198237213893883671294780627757396717145117046585848600951707429548485357408644024226835230668324079799149804251513808501177243395314867909893421012888397220315161470680172690152522720532467817187040013539296911326750557932750178940079214398578941149706521307098723397664632207106316288601257804080503557103094504713428980658356760187832350711796706690462364683111477095536215682168455357282021112699887221059544685787056883217679629321670224755174999813515939415267088378785610140979700385678646411363543512630198973851176478225353194922936088589840443881063516378201821125704602124050985267375693090447613493226274497485923595960784916939670087619408503479170468126246892881690307073759438099375557681625663301754353872855578206841500987844576502844180281680537376251008204884172171032468600486701515779591512909869125568810244812434514570262860918975893262558438624603381191039069786608149089904545990314838333209460787775775128018104645869343844940649393534147598580474307984357029431047172601340774062027002843336284053320638311089749986453953643244025134689422776027045844662633046625385457947629997497960654474751537070427889457946492800148593852643043779667991690562598173081293855261882095141570322014610990523217682022925222412367084037934461460766313633278999226436029661472057945464764564458072215732181984583154141326078059807398055502940294213104708133306174825333572934886508799937295699256237348394090574246068507827621185362494808910079437895648836658025777194391263855951233349447745598686399312181673818864325372523664617560948152093844243688683279182691654963233725696413770664617973691310678251402141982363418487616222956814489255017478356083175375196090426971310367929609478834629378223228497150684037071377777032614148099436080062351051751710671854983761456949845126906850817142223906281060062183383381512015506715688269690545696010200528484513049185502518301582490021243771525600876356432895119395259945016602303831357304319594363535234811489786750715135900288506169661402931330571348845303169520007431687722819732743012801817086209277985499298567957100722289967525579915062021154400380740326008668304744752519162161861031548592114182366844907403430279755839226425322096460158726952456991360411034962825506467957188759667191167971669331167811923110433473523552308364649606142851149069334418627531479399154974043532737031621817626644114078657620946126806960185925966879360912142322461768847046730014240564075640498716901960997717927772524790996778682535779453969266838032573007998148522539285927663464860881206875053362641199769965418289325913392001616844149220887209841340743331408541503871801738002408045096816958098744128026522468064072041111196010698637401950285369564193889484496691809093027079989465808244295470810104503812876491330310933330824794065131837140625432125382428598298894985449158155702559240257176377820349121802488789189338537175924059597179269411739369346638015916195846549809817254805949989566439159085499208643934652364576093020198635497372011522568052202774135302586924428356768103667784879995002190806751001290844640594231183442368193933570450530817363235049064279473670512476044860840027764136968820854423000647690163279198254423962408018523289777126156929856632046439905953405322750834236872820236616356270443096061232468807885507906119413480241608342421168264803399457653070554253967512552313897097088325354182877721392642632438751620287098064574433779991971645565860893118870621063282031710725197682365366655127719469044309211096396736035938795649583009348078109237328218794393726516446616526434257801571036689597586517734672945910670004842083064048193137668721847193142286475949537342256891873287235968793653547495101777554341989397280615364123214800847718638446369844435943668920600123431188885842979174724171231015720431854141107742639578597619811573546732922441338638744028705728719754373250258016343308076549208424846396131801190630801996420223722220915453164563197041872987305921574651759619667947980930212721623665804374012659601800898480588051915362531340161455899419815252477676465399147400388650046380029148848235471362114815120735563892694440659220296424960698833106717364461694750645691773904980717571520857147025520365955544645668086729348970283520721605738715353724831454875932041670344617107949074227128180502991505639922017406572741740682249806320044252628330672259965462089757873938143634080419154015569388428477434822889928309025090645394501758226732365624102126168182673427992100773553721061519112899027661199347271791548826730930408437323373535491418791252073484862362090553313468584911158018384619231801607367623587091677134808704515277075053493752579135605818375943727841484887830765531680260930117083497285965352926500850229816002572485659964401124978052125823452086946538940611280465147209321253087719093814531095313079501943845128646054102635162012107091726614792599694511077426710766758145775876897737788681785849373171003184600951917830395598488292773776418571049484448546585212575851275375597192626737313406996919084610965195517340164824293950737526412355600268958526292605505012812887146332227322653695356257218422483524625878631728073663545773839710469420152975697953039077337340687026332871727103082854704274269423362962601874773946301000907403317048232316687981783089245352363588167660291117252873654284845716285717119739639601489412126723848292776315387352533145469256875923474096327143924212391915265222616598694080429221052930090547465407873441630493863776604882058451221782683745501462947495156186897422251868266685945853738744708332838611119355033450273080272351550984236313057759072864326489114319094907791004871061267751883399041982391440277347395851305455849099669366746428184523060193946478533428681243241380394259189825068195268155194820998794050799721583602710024761159877244534776419404825395621916966854023024272844417113531904074505229793151710278748564643279412872042178927835638334434344674381892867377141690948437001985766496632516483859913511562096503969261511274585327908929928748241070154916496728929476580182592056363127248985566387468765313910747205762504317867071319082634637976441492964641002695534504736960639107175690889001041839551660441945358452449728968601578621326984533386869324101466414870592984335680690367806123718198706556876169557058202899514703224298205768872828017798981962028910151307445031202602092443814829094095298415207846972906359497749697780889675167237866520388356704904247589155125605492245631845334618870241903432269144006342453707605287677077601052303941421309800884147476234661104818839975117941186912193049171675139933781696681438557880091865785924230941503842759401835035326612974862298667633990715690665003430445328750362882524506583076800886942723807584920517969438058577654086105254402037991075011949764029359816366943588547378367887123038969850197661738470014797499694149679228271276780973025595683660982618580092926133185085419568223883686703411242960462321165580357675314190629589795932361903652968787073696344685071044647054043286417382119037634933744605296708932000198577333308778490087064926252904600342272065772119990230033302047049177156124690506890992684157545518939979035620413798411998024117003626097019666318031200569224846264370390334599940190120174627775125849202829249473022944886180206052648151516210538405058584087911648122738164462888224050182650204396653360639893022121934519445049256924455041908087323803663323593172290925043257222175516341885262009678597561770212043175727589908227259407971786003904093281375573163823560554315488338678522449194274961633719167039645003752962387528464629471027982768151796569555714274587513621585897049268251715828206459096827875000567290201237004651095515837575701671487901430809411311064484593911550002516498427711962853108907411918621383763314293364269803203393400964502462356526594629062966315963925848217850080241908931031354160391489782823065806484675691659198082317821675940390720090320238225313718781376173725911357035913200068083031893485346836107640167207713950168431758218377007371348968973386286364367486699850231940647326205217805590062778467079320767938355360314229293898943175567068420990486817624279010408537518800549381896626608493286739518181658754260489647703606986615212264856815805918836597716841514325837315698444848921533323454169421842813230141914854981368227479557815054110820439587734924412146926859907389984520016091822941067624747490229330606666605945259228454339605629076458975434501019307277217455581420915180037127739582683412445109799856320163776675649253729874627099985421032375374020743166514765779424376046885739769655277687872176368893190137751927913295939141277865397958786582435524364853146885912724839612820653605947277102616305968826986896541257157986169327103903535408606808600732695539983644727779202561551043455270267137191990982218351639874389354010543575452471732077566046642805750340513524561547188281298879895839743595864379364943386179625322519413510114469437035952623241221419376622925830226664600284970631867573917334323777824104491765852134295516335223985972279962748955555065080485703839625731459770668338887625792866070304055815271867041080596336976488089572629999242334961970647098754515439442177531954502143494979542776288094202362604083096154704709128366088744463374845938425319971719266784047852475087087834342817148365689947760251297558293187137754165713058263933846763475044494642654080929017521009842488704226792041087118197306866488000756382834521060052246598035477121626679544173451909935583713283385730273936708641206314642221466165920447907631883510001919475102655222648343516152841955446066447230664317859135798405276774959134169029298306346452695667097003340157469137115824578861290149505943781801254367478780177611146124083266826872973759256323133912385776982813826390495648610206718980502925881077487899644804569195249976218705337759064494194099629497263415499598675822690923811829561283776229946958821463055816505238286709837229596504521562406944983300879478530113839342427828069535022109929150382557978844345575545107734777242035896918650811554622402819322663374933230486097240274782575953253481917634003769126473853945831133754726105166934833175702122854634962212339786713439910059332000772614753102536266175840046856328651536919796931794234277977827726174851950447018317989497642160232996016392137569133922739122180615115515412402600520152528816977852215885617733970452764265895364422861929311132473064275227673638680145697846066935073225714633417820735175721796172363659185168313958793463067322837037760963341951180397466327069027096644359181073024956998737943273602747514067127561258469120290021227278315597204349176063233109984980664546814106012161101654200007163293399618557342579008744375042244058732523811123747930906812980098106098534003732499629395800322896578303824198280615357565403640261960706253728557819684114938809561691612880951837037961216699656752059322107347465206903894354281871670647374330283950329205595435425196172760563479967535470410285118630126363689871714047698604130090205065087066582729341111646706145762751158946038012293746865106767984491953969776362586219676940764184849095285106507704715962637284525553105714488413801570712181162839788118218962639050843035817211790929195353084245988808250203672524468978952318059299713971601371984535519891085306906744343496819176939499406266171572124525744723032448817486108363637756692325707385493920134889053710560406062530265624721143259037567309262225851424786863007716349219341612354858052619466223898636269698104655225659043203914073671323406648725493409299222594342218054161002625776811122067907960725204319589401932253556824851380905595655466811335109750323891343358198357687523378550232144212394575734578854847300491080504401678031455363813542325661444292457910073967361288476326861259974614839979109877069308359549466366453672047740246644520548642785368907023803261353197275558752799621490482792750668050032668471283906025254474050594375748876910603671360993774298159022393325408952188603816603604236087743366404395519958189693651711774257154823563178749737394067743420602937488423257631104519765432579586747751585359855415565870206643755805957894863145083819879179931252550023944228999179674431858528054562811972427673800047558897405611311144194311317929540370913064376204469588409075551943860984842037712597978522586257716741878731530348646860743016210525168145458155665315876209463928202603632756449325103163201648815345907660228163322378350746345780692119417033981394003525184368832499054683002846420934481181014771103391462171707517922852009609515005726123103495757197264613453270255419198796922130398313798096142978198842127903197428170245091164063186984890847990072859087645569782335394127507221787807350782319560638111413458012143173576289761763283524984231067758692000085316193351533763778920637735375690591680253224503393034806373314656472169906964511081263853422320610787080491148414734399878012892816649445581525979605215891998070549735035180588713493631556886833901782911532083736976770330705435641606564408975949059488963732245884849200897330942856838534548779564897845518794746073013825941612570748902408334191538226032103895022212025322572920535976153994731081860277578004860067007532909730691063638267141486369039876512104763005792216248931116050577809952037809244885820430178776309907304270814703054568668298656894259666995293189159571827503486264258845287854540538165915910453330354133781043880753672406548223632636040694621413193103095021414664345303649622731900664281384515099100971859519618951008259322339891259514365090836786165462820185525147169870783111435678386088598989512010388213194389602146221312356762912657493339204341222906314124334849185530494581406406028724259741790036004655363014673155590282806230468171373671911294441184692876400392368967726249302150105900170965907385013529977004221606146047245515774462310927447787353959548188216930000105918985153069177665148288214177801191570737413757696200619494519704639610701327595829319542341146603657694251000576974072971837243512657065898754201821506767903645965787446452902368630303973814007240447606164319638688830537045735266676133669222173238277669064508866931893544887430545422494905284285471053521788821332005126234182474072981104234637590519055138162910496649723577544586180364391114691720326066331182663859990356763820193950983933102194692242103685732989514814118060834992635449570431130403261503536216013560356511695201307371583636587681930820115788542928507236212554631529117934337268477874919068535860486508695457964726474242681011350564831692865887400729808784774718485816923918405005411205019164773864783343647398719788557001348423310491959980556453535667488447971808020024893280919347829298406910942068913296870497679449510580784246124564976156065076693524271659008129028682972109411004451705651359808675370895133823471203928375353467685051888860772491444406871674853172416552596449351928146578440256828756501686072486636869879880111179791609047125498997043714394837431369257779483807360720129502627342307472665918879398877272748957131495850192659079372544736981546805553551207193129804470714745815704198633786208526552155333560527530704972392699851602031345699679574976490144491557098456266517844468022269381440148582360721969111425204565385939871348641576206840360878692945768908401302944670637697074456516280575458672390283687404836546465921933079514741750527632875918592245572994924886483560498375588692059608570548694354536565327638390702281249944797415485876539617594986112850839290434458880039419366572008643412878405894833794657925714668908532686962602130141262975789900364960098508621177919813541001929860945319200941224397601364542350162464926199905450083313007460871062313795563068165222994717128831306408022954991408425706304480345748896459983925503286160734079431806884280897227201440041999399097053440492266845040560620584540323341079765518050242465498537914198557571003454066081734949628300676750594648606768105686007518395501676478632557197944247020069904960336309153044516883844396261551366920694768221161608636916906759544615290118615557888208435489490942548950504905678348711506459807714237861752675547465871914870812757819854713985944122702080504184698855118363265249283474887671767338322157038704942797172158665140133482136931334537352825300271966821021914349840722725868447146034426754399954342865482431116064130761214613839684440021291980229447407527767607009683967874324239719110078749187572123699007097375141261409236823928255182652573743512479526169354610078591804204093524344758278638033721027948487196218376531634897929394771423671612123871049949291607295540849640680956728671685211724044887780055853878543793618194902281765923142898301623325358392894927610360771712684452211861221099217475574482435755318713444808059755840516106989996414112691513563259057475632857504410330978740774561625599845130449514309485338933964577850268741105456243928197419290695358426607752162767255926245897559788186816397906160996573365959752897607411874997394163734929035207772077472259496695602583802975765506480388057376756570516798381761043508226669689492191367949459275801174630008434395604530231064837123587994782495564095537598731703653799297562555859398885779214174970066346837860236473810318271957985930414662077720565611168982685668548989471768585123745790604066462736837693998879068550494028259696299690372965460575330547284314866256472769132794806408179748030239310998739340793006471035585374906116680770133507475208151301975063228069651005841847714751653236963238283750695306383165221307296351033350023184811437236228460025376769397115316408172769947650561722142871066726975425183818763519114707118977082214671921641372099733329343123491978661615657043815265114819827368128274607253351272445681362425295246749138291862676795355213423051070959568137065487557367899112244397782976220728953798878903436129639184819445145523695564805274494958336348769027925206703972925302543404386450015799676547636367156283505752171402469212660864312825748132351272066376004094831207476505209769658188505239609851909776956493271196485461015167686996379169367490836475349902352047281261720042897032102169408235247853751034769292163113850978069876413796885569724709549460445907911543158531719688415144239816580904866623071919428869761254604961880154634945682090061073153664127375415980022685492959759869375101613437818811515489343169424014865419561491558986112384896451110281612550289457314931142216588125709773699620237726116750288360757635858679316665136039539809613029349613625079115640764629531295792737931932690565811425572792083143053705490191954672258016673558160446926305618201720817978665906362398656522808720077922655827804907425393454293371868291488555736347319821041881618495899764173369362224300333930028764618962308222747539104806228218978487453429867705341028444741179506943081052601325173752523718016866992278123680336307122738253167433670962089685917276150879721748480251102687026158241276973401653875108512354433022003955423698389526971172654988602586882075221892860996197641460293482118505944508673887025592300509036918851922377791993065775648888943205474306735406233787623944627409280735308755349906274822463426190538861121170868642574538295954430332782712861235276354579144514538898355911302095960475395387143552266775816771304809295051709200312175992536391739741883823992489332541587171686998296552740919184740757832642148413388362250490531744919753604857389426163160619480764729053986273317150847868318732899816421182753541849232758147167408581116629877676127957139229668611865687786981519491565789560317980890673622375415244754130721267225867772749338910472101297822606408110056738503275577879495485444054571279582660140793516092606954527518861741347352658799632416147730244379736697671880709768030710073882475953201231238471508970101432621522755944189964396248283485156238481985256357361208940396597404546038242945115165303131377921773503760723138019309362196251647576692172326765353821091931533916622389891362070430546120393097623478893573801279942892097606593327905072141855980663966117851503853602467109684969959908708377584185463385190441295003555567982041037261672473038288340215870572495333582212613909284458997333378274595769869516491052301914606197240123214211839684466638502823554603931404634539528315277383758167204855409778372694212168471279224255202392474600949129928837570991351622883978747045078758134024357305379845783755845370304946014392002931036187673213089595909665102449543290420637748315862537088786694072233023631368837768482044638492597842872111748195287676202307965387501190480959950453093525967850283341374711327332839587584641936359776337679960657253073920801180505293814969807951060492942774364513321074628883083343410811407699453705059386751475736854073334021064765969766983100055230832003664317613433183946576616557539946040052469924564833669966197841821403906030325231740911958539951567508138026141915145789586825902668676638879748885538208786886963846454111316277247938904183362610313226293567264216022836042118712743869656365440668139171041003979339422344299569308962041079817292434605743092413958780835778546537554663958401920916131829533619685914846123315773467525304951386450988329751713084918094222415040434546568657553248625050076621056247994613317080759661921318219043575002498406268308941851584492819077977523136776778707731373557200608837784128710532112828054445070560674740436260903920200113985389512136861979658292821899324001825836693370881278532227763490075313796643499576245219007448448993536441883397737017206755259763663082087872576666988155968370928158956790484800337680570008338312100238401928800043340143111774440049100865594233610278666406859498038064745633829588681019055280475584746848841402689567311185589882352422303155708525565370489672735346105847211104643239405174128388426934852730393142702610418683839933237233168070489593421963778409342087558919291100979033812821612815542760747054626724681485499134952202005314855915475099134312474471209358421853300986515235281183394894932036527461849328948320962996905756079374114358821871709634969482655502820250122812831174148675101770039937310523679732499530365750330685817393330363014680746659975919297873947938084099618701840462344609074351774091772151004972238580853912958441916773236649371862067162726419215722076735973178166054626946656768764680725732588628970512826422086340779186870576176418637495668274998993901087384857071558766106503170797101617300940788688262226489431275229683862612373308927672827062903528508807977282405730285827529642532374166800613076185791923353370164033064563837306500450933401909726199098671075874896609171333040490460829665422346871809740979501208039268016840570357330575686660494114518909393158982699569832795207176775468895214136844703326893421933424190258413337455272873107012465965589974953067234386643420425164399192011957028514016636587330970704979666648133113892130737949257365568851664405746280250585452374573251824241759066024458898597152442882645458830250446313825411887360370723141221365703628659139912032777714238169571894009181514029597976842889656643827311412851037191028601289364601272428355054379176788771615983248023333919885431738547544070697201663917511737299231411023914865405402300713775887309898450859447250721531652466966757642726819591346712500796446986481466080816799761880357278421629156850279591411252921985014199082461498294451307840396752395634550565267166450197856767795867248163717776282108135758319623013548437373426967785653533893865925604031279336985137236265762737617134975992231410225397338834247311403083282963865271779918465324645880797776462707049014711325833499234517274283234996518966851735434213082023126243470762638763613607303027256423095793235488290033294670743901833095068862759927487729489218684584934910678154171343650392399146528316537288836655518097156050658808156055894976470568694372494365059648415093514094488409557765240319550821138706620045904142874711189816537665541988168396317660562044384179223123813165625274148576569659364898937974376243207840327289035470274675999733080097640006782395876538998994614356029665974611600097135196146996835031939956395374849671093408207596903589314440501553412128052199509621367310161042727725792921386473404559485749143079256154177971577696805620599418087111468758524337306675614788589550744088358988916735066787117776156647449014687990551377703720798950718285862118120441427955644453913583066760861945360737075995565083769859737642977592286521478190931133363063846227114716554658526049015025878473539914743101198464117031439944764783331701567157895987514193742640710782926076537409828490814806707099704342577105742984487108072273954700504822835222670469054677960276064982814641823374259237277190206006860624517736168008810969916408720923493355119323706572984724505874128990324843544739463851530733731939133293433327198362867843813667147205953508169208944941347677017974059719936768541964355249646544726058721729251859467711543277129769665812475810856748537695146154949175744090658316602567697736300059139487026730625507427491776628466224065759119375756482388466301588530133916851374192414792382673104102707032665440219756291079148292336262283079148812022415977574254950628561590409949635963031564269342780177862837486400089394177041700980186363575372541116171947026540061875071985970841689733443864649986731050818533382727774196590930390779204145059774171774340041962021137599996390240291010159218416495363037384863298372890077547873297554860421546441686876934893993145247895267613142377674646046238844673422893230971619385250501998556864004907375150094385008187218978923216029472404686562473262710277194931007859111087029022169442995385827919319500833688449276496026957567024919532176978457864727773555855508152560095403772324279684546932817910064013812348320805972894632381034160076295102487608719432826636896814539290558750578744657529268069329579747401251550371834330168061766717083377737866591612719206040127521996587661237368168452365623638154013947196829360907855293273804027528374225848417160275945446497047253224566510502059495814848260522969418314064041762351259033690615447200234740167062934819070490160615269643948164022904711942853036587717984918381497574836959867951808657242426064049585590800694516589578125986599326694326946891624026440254151644315541174425436857520553702269161965684531168194552011460294980443016931891174680963991104931735597213635166949001699484983713430523241985408250719369909541519730387387775620112185798766203046316791461863487754701271759916669982279797588106085608371613514914390049165268138261021931646129301192492431298034876217311585979299552974988953315075512770983684770344339343228457051906197088363825406975751734065596354489514492836549897998013405972074755928349420364449091010023411284405197053313493942006582339102926568967143352103048398704708532510653288546485510832962617341931014589732077639567684672001154777781687944955419308780285369804851157206446004077036660001110779528109750324937717384015417225286148112048854390111610044287740207641949160791624827691185666198133610032570130789424117228283514011178456671671542763446313552406230577387204479865618104752409529378810678909219097592309411628803093541476653301146471324353776791315855673467446444377938286646863532198036989879634191665329656126311139238687863432619058551247718277812964387058744546513219470704566244606890902656565151879773560092649955854894955290554214078296691993665854769729536898128176939640949880455444155296743766029137166805813634096070269620678637409987993771282575354082057876140135879195216629726909426256237182300997508609031994913411562386022107953910491093034265349120708713412357175022225946085959732133088779272634668274726340418018262462045623033125402385873814571303701435763609406451790541834780221242257252156245375979446213661653718809535908078784410542111043485012699085600631463887199260796440215280273251654446925875184238915966182295704726184068425210505925948651503181873217810565592010481438819418029652029727879511550390454922232901077124303696246377052682148984791956320548841963367360412709729781428165002224550434166770397280137283526509389940784619746889982535249238952447708170622859361075237243496645334567760832998502236532025733610717237628851123574664615483617089629194377609795516833455345499847282721244617927956114409210056986871827419174988490397983352863711606514524051561487275314583319858326354800123116574708900703918125085368381288608054494337823366669700534140714200023138301440929512626570465811772619738403539473806514500613114029500076466640476409395485899657122736406864767836274804032545268010292084574588134020921283309567038382844853362802896492879857814717591026138302473987962791703066638407589242460237894073528468036342779740455929556679617230488639021496126471522871785869941210921764636542769429883152254671900109804204814277434565146739943236851438157275569784916687485451800440926019223510030976402750573907331198169159593861241659534867219954033300706909755854778933854140397147798820861209402138990954473151279160601049974757088655140456772352766081399654597120301428012292113812415675529303224646368019929198315005217347257765067496954996290169526449617669935876665551326981683115551229625611622651408889645287089813355606023383316152205564834280433935160284977105084046566942913319292761817874284318600453108077199017206417010298797256466375529169445006073335911108062751431895565128373186224297507078023618774393161954163779890403457827742674387009567759479404644826291791267591822514754044437840605599159972293750864514390299125026056684549584757892023887486324145957730823010378655209487261050906970080519368408856581517289162242011427415622589374307492068167143434374854474307227477810317076277557304372414066135466859065335370142669345986527814836061938666602863322197541042656274927013642129240842074419979053951226720253498380551738830579144155658731693695876703164864703890399095788974092899982959307330047045169092596311051602037902780117493568951685703792574199644293670699914752105487467740541454892724711435628631228115415457506614306052432605169588019799521196795371976814241908652787806233289134663658428724465061022072793082651714557328359383070590195054169675073218149420422810665052022151699683360030365939878940320074948003089233205204810633048064232846383328089391228594509421447524682772764839406811060609556671439681225532003567950711282853097921175893373792229688461638126176664848072468150290510208667237902942251636034388752505120351055344305226173487254484470435090299526417034969980480900747137054307506506663264339504416185373763168231032636813106549265207097715548877788775011305443816666278777138550575945246515977502593345912376830014692714662718207417602995032983623639669769624559482748407880766989779552985169821151509876408903269368475082533556256081178327274305667923986647761102127274319722898030145324100563314950482261913515504785362919036893165667324075639580777755301237626509174502723830500655361372754307820763705531579868064354189474876342997385579606055836049920875190211385277360194380398822572803115356154807937182885254001059883503918692439262761618130498473431188574181630864539952884039436745277483907005905659504480287082281538095980378026097515250290029299362108018520573688280901210009326629880106467459901121834515115160826633042352182474845043994236470710799614882867583745454249480773739914745078462426727297965284547598502483794870917385083730477670415167716781931277989545537222707750677416614760750074940159828947803941260587906594149836583317415295689153679483382821326543206809163558347058608386954589766398495841539033481169951083448759331777765598981662704898929528617281372746854650913871805510137192848716330352203917463606864473929690151157845237649477578744316997282728392993567816008742042780152238398983707069270654765137881940372933726892046070348461984272360514813854466864474062671197044581186200562058400028930957589632896327685249085733406776951104619708440624003319091842240340085255322198955143167561208943955560821509552486291665580442110669143204372316079609422416641912401775323778638089378455567715717096216566559301024107087439094239823930125204214636907438209007730169489816775535399419645950358351072706443439138047759743743692428100161434650719409111602086753308311963920810793471490383217205834151517449917973490919768904976968372044116803108464742789150565776448568106678104664405123206487684466317708609974247400360537834728068025938676267871757446565114768710145755947545071487113563884547018983853795726290771139864542010206910388149265703616078252589282437503069975898016501581311608988971692698212368980613599880709154092347615592565091780080377638140357447538430015482124168464129735287722657808107449744456271810055363346620342470503951233434242153439104176694001121944215266952982079196706641762842630459288142897997554947771766491820252762680060487028397266639992348806767179260428889144954584359364608355026596212840671775533484483812125542252747462907273178508067778815563373986590768445106947767136241501203810297030992953774922874939141361416538156323767054253136766349527148956844651440276733338755846082501018691590234025084872522618635375865341342988927899399156320466750932349114411579576646181907057098048367327692583353551078921328602927706439875552354003187170713979473094620558641226391944472350472593619844713821004863773963275173075360569430475984819690523190681641959802811656682312746606161894934529638604965110650317209062409551419637190976115450378328776956027169202647426893020162315461849025183075030785876869870506511984434490143597932643322874981820614348943251395915750068232755164000544576202718782961935539063762350034857537855471961707115346734187230611100125945714966954195050285577949529624843130632428627134412687964360854785462766402318475101606703644089900994630909048122738240001867790663669352865317373210395454054186879893775909564057654204494028855181691148070155058421688674135489385981475811316677874187188679229143357522213775490985312999416456481642099656892450714399913738068532439738122059944841376174888065573197621925152515512451419310796111251144396617679049148255957505184827091579119022725482103975241008824762808027326659479677290946548576677965719947449518354392939278178736776572894027943966749526901704635859202828586095896571679438648509914829575521779485210112649164127688796876072562009555617169676568288973673664189272486813594785426647535258460171570604107190194741946638917087162532693911290784088929569460985230335787662196101922260519444293324258848963647727402358366689316677664234596245259923651416332838722422882401789279386524880491837324263852492087536124154811264847231557538505638979330944580158394879270702953717021702621529395294197997031538662698108844770371847283749022772784148574647432196092526487995357774787712856365824385077143646600631880605577334818455299868858678647679477851322689716367464170710284609108974854797889656465001240486198380812347443724273984335104815234222214556873361406540136252769904906384540924822895074326591926087215986908057895126039385376355543336505406335492222933369671460515328918999451146446318429540069067890752821491465686466943547583006845945155129217528768761876979124031960103623395189682135685752816683626257914531452986056543295407901713309869657525347882743459030364108799637803371193980545756350950278375650461226604865298637282384859212031926580948673697280631845192509636339218355486945703403541549610993628835612812344711054966240472003560545631832704220833042741615982022895440859511654023790367445866097587506297225564391652940604646573111932557118195709409069268168681893427437372217915565219477065861025124798215063048755231528341287052712845894271837743006557227005229251639878940285249209333799282081931128382076313313853078784956714451211005874032814381403654456934687683686712041295120448172785160782791859232078322313328426392826808196255101147085254256026748676927114421610356408344911920352643793761693386102109589741441072235579272263012625999237384163154650471191193395768208390574606865250915468141509386117073678516115544064472210818691853963390890571939736292837080019212772283656346195176125639546594313638628029810507019996088702810373209573878012119176212860182801741120871038774100080798642926017121641513076344348732572156085591290539336763061152285624987898753642414894395049276690776281797713965661034319255639109785725824463739231641063764758203241900412630658780510513457321361720307620187674938046709715063109795830767748324162658248146690850928455512567220648724838548923958902321447704161565348319512132277880957447435521997233747357437738883301609682683763398883275361086695521534672822196709205671300565628537925960872050440058589818499761632591668754250833250846943245843045571931740955727527883205042829929207203448269484286921427678621362401122899530260723505617265727582637776413779515647273501576652175215699290573388794735355209223052039376266575755711911224920859144306474782098304264107709026486764657372421132941979199662253253117765721752875207909958586452331930653037384119309998308976438536248312649125731733070707013069330329427821362525039889637490896144381623659237861291706023486854732969392520415589913335070534226000758995361172983201995470508667404845230398493881806352969539086465939481799037245924899842416818511788812092849610869776552735993459746655320252121030845917397178623114110194494809830435893205259181491903197630187866316963761695724808563422432522440344260290608162346542012704366256088947150415015981062300473014095827686815105886416818719296757202419807353754149652145608604034784034182753200121678660191926750815636912933009725335539471161730574612049827071586595032110277999477361111517040956065779521051710324295142632396489404598896111385257036881798338989825716399718169104445469112310242152621665344664076393224768077915332057920943888422757521264475896880454407970632689683505946596802117012776640195406143652623643352545666322163256985507331380504317925756590654557862451738280839294115895764236558656015044362851930456434131935945537128131506759346248711493636603657105344024986329157699908944040638134257831966059160993160185647226343554505515915381016898249347223751440436970079732796592333316997278326191534143171644782250845625778905280748592479326446147633775627770995835554589975252820618517271859387038159699461273127821695680931031766597872346540884355729357197982467118868715793865956681723302453643474144006343374264264930934796248880926089454227441348180579108033727014242648344581374430635192193909926985979452969648136971059718727239382463465600201197268871171113208246462700799922959493181754171736944553104947936504797148886755531428501484136400820680328921584130950762531079542196641787829638098826902842170794561705113545934527884866924865847278357481176204611046704392786815862166829599799473692788323496244024695076200696476692705203697246238693449460715129747487507085416677404556696376410095737555354039052219599592870194919419332239449864680753392983751487365377092989193107509667810183301249625217667622802397362923119340837651391280563500310982476643924654775668738331875123456619831297466916881863158365076480819026104956974900941461359976330509682019635822606584595763816880725356037876459049281344282240755691746607989330927634124568514062004528079528697885906638086838856235065883962712405812179880215140158059926165214752783610906893886000371142042753678997277113620699410561043009703124242403382015786409457724182967531931545967757386438566344654625644332422955814497390787348483564403541591893051426530704063858637296154956986708088177205470202690481881453258416475075923378792980686814780717924541752311892594159546935708748157085001379260255030786498932870777819354178407589438880957698378114666616663940064164958615507148555468120329859683865064358363923764613074522052800533486313162424596473334548194311915217360155994757973236943285783142069262901723690272582203929634250104871529424688971815326162666664534794190451606288959620444213524714035366145208946912491414175268901898918448043551905355663853508073723577386322700983063194825880007871466852551494571563884244764849433727273425722842182044493284004176960522810061857451157082171799714672122818155971374857114727501965355518470581738156456260013243229791398842007633456592618886452054007668664251992911634150023871019991012019570590804431291348209542586910761911768219673603217864354010016074571773982538562961277870666555829763724458678919184399651056641838804787248561657494434624735260937826314476173621364444556539950695097299919041691015008291835963968167908866333465632744254824215743843527853571367060715364997547118285160569343347438057183255895051250016077542867938256686982058839667581182985817396675039929853331946858128725449099869154159607968584712062579728659240341767381987865337314462504502424530365433138533944996672210894607397927456195332990757280663789146626557757960489201291523243474006349331713874826521000981698063344557577000008292540314226976268952427352066856321137066846116167923969840890722115587433536950371015151237160338423333463536366730745417350061135296327301012054577550793289910431184534876936347184812805497190236876588832881002477722968171991462162921204335564329945785955488377439827168483965579365334326711120341150184023375902342986512441585069086177869206954256727808728365595485357759689892265133459073104432068249116167185140846184028922627347536599580748770933726856676657299559795280408668075997012079667153841620031062733639545290179493242433499100795064945086023978881826255476536042213981437790272595023426020936245702919110748501441572677772504192926752960268263058958164554573079813708037216519667163655454723695689261323288124144114702646787720308388020030201080464779670999529287859551487978830214273560354925255721513922141757203576149238864586303255262207508736267336474145923013493374686965548879615070040755215696392043858523146746071832078362363544803319175268168080995225148937740451856146304680294673881969964067820546392213579033959930933954946172216346000588090127051755690826370613682741155671715888735725815011642321529167625975983097460118384025088922865269141085705356433597590452001784782264091123165721044025911358471379334046089201564033093446255950636683399490987850468907367570450424005456254486861127162667598791489480881724268884172402090735044704399855960185251066035322597197438016581801159487220840865086608471815291093903004013313010340958754504581694456143232109122441608585993828024600165177320785715736493191753451170505406160807761154349128065197831906426927634776194432148943801120858655021073004791194157294978352837684079967937101762448138158990887650391944504722764874823346883546486769558758852786269375047773125872153040618276873397106539939166150348298560321267662509536409154806982266838770268533958098135488476326691121065375650960948020298198327809783013622984672905502283977789340563979401618101242047092737612324136848903083300814756222722485975819989542233886609721553548150671914130674145758174783317259486039317437500005774902287369234876878794647254720528670611207066765031674846151749586046244718621490583559338507893325687541956505584331880761169696417994405354640427999254199447567243747610659636400206300224099530342985743679000633804028808125209394689731365068970706207497905389961733350827269167292257343875787726054468604967708095761614168266858771404077227945883630253341697794864593924049705347148733549833819394440879397791892145137241678943929278072462234143069819932730400800857230757245711028534493810826206910343125714283846511041757891897774139756024784543024556537218148520684140620564203212214632374510643856945528863138096584192508522310577791893070645135720058068786744026109150674209894178368927550400720209195149623206553816936758443034490160621944531733322705479647848133730948136899132815075653551797622520979399196332070233656898194009454435563160568535246607199833794047262684394606210508119453906986898938988451274654411891330236522178650855439823126140405383146922345899138186630120582075807377070497399813604781498272897159066047861835083500922479955678540942004017246205259489786275707863795419298996555701632016070956496931819761430882865709594309183479754786200047878292750849576241971216529525615267071879644991505789328768440704643036057147845879630840179782786497662626251405199530423264585545339538653347751182989292342033515355017128321433166771756392329732865317865102641122272485411199003483837702237744309043645359909414823602281289964524277878618314619571242210450485343705306505531882843329944858196724600447377074867303879987925186083601359782984622459279705594948534780016610523330509938805556834865113034702166940543582064927592474609918863652077864867697340692187088717358209003783871312447425189154646059825476142067854666314897286664730283923436480655536972219889989478428031063051069977419940166623209452028456484713630322831227719217862864031640394932831439088145821462045163631355327326667139537980542417550658168472001784302384415272128389100324722766328215316152469683232063329842275320305229802885145886459796068281980189738657760369682710516402374836683585972692687525050489032641563967456689734289458216913568938500210541810538504636293612462808724316692637055687237434680722702493942157100843017316266932561809675450608088433148130503202121942076376048064419573388508040475294033745618815982838430361964854960436906741130688389167007678993436170802425262584875525671536324948174227502502741676842421225349446386010696660268973492160221601951838569457933649465203840630937977264557829195811985233336224411657023950655468937106605449921920691888724324348984415604756967466402620858739187276484138216846523930160004447865616007430534492574020510571933732338076548504879212021887046490324808506896432896344580265340454551492593820856792627387739017372078411356309800573133522855936254462293186669943548256081722093984782677770431730051558715578535259476159368637993504084462423179730493851264098237633803559588175254751238811543632111755623412035950923063429577509512046096541798095562599958595133698200095438162515635194398019292477283541845699224115814288131845909097125627555333339394275583388129735772772019052617680483028664534590246190348958145075313751295375684172070234032964595588384680670431624395979994532155157882474857329949610875360312655324229869646030633335013850161184710059348919285416786441121319168940668271530248677047682601471959614134411791888832865841936195043095229601678099141074951758389686116292389533285506718174455789703549134816045462009895945607741391075228381056974743209316749939224365758220381272120456275524109992711494917010800603238288016528679195751471453810677006669883487352239727419757040289930511218404069606183940115906613496755803660420493559550466140120174190522373089158792832938061676125593132459117660166883797400618119200533803578287732261439470467958336207778732731679967260611651068464817270649277788453987957308674867128420227476303465205888636902047014807832241797685966916145989338241564889897988911527551801596149936928896776073476870752050185124013157425219986484170664301020067527593969698376336211856019577353856857939482463607261777333722586097055696044872407166230486611113992452023974477297049388045395754087875729184682914197888625724303635755628651878156864394869908601739210476355675800392074160584803264588828253918845888581979723935462092005309019012222663730577728815647435458223478929938270488809998212335634001406614466067436237038786100482675025755179830491512564520366045701911636164198445860231024305754405905047166198814451548457022922326140287140304840588410947697100895916306331316391298041080780252597467018284984451306082626577175832664998263963287897322811133489971661801988459033860895166014319711956376532615368822222918501287285344820717206731711566360754424641768876281684766867190602811660372087076276733888031716209143174871583135468039690789773746349148175964776971941590015663323373615485651739631957308778320153859159469650597683334278744862224747255727344411876199766988409242507380605642824049576981947269926258701192100053348915581878136710872400848717993452921050317158267398194084434818266385759332431831871071739889851267316186828392141065097044182191027808827753780105232721085806685724262016486747259371374254276001400712928648379938625491338423783923641191671971157620896467734292686899553703239400592894464156172303870883591813472677814071867070072413530042927371905040109593207535486543036179617309883281656073080728240241533064142083854385654466066211160043326940885053551564723742741777722003190152358943031044461575140191700377357401631956069511626142979444163656323428846049913121251194894734496382776169602276900458686222130923341200517661666289579185781449335449435199620704349066802669825618220431518959648251860222144797889740005498965032753231442878741644115077287329425213480886288793202978835705436312321799809716112198758820493634067091596349166319549098138669088599703866114566566815726248670266243633647908153184112468608209410701553178944391977351505564977542345957056271512744075243490063545171404341295000993894531249280503171800731007206062294267319154169476608272763504763034308376451705695471862263114191138417335066899705123291235245239240119766576124752534955373134462109292066100432873318045160397356821599128382409041058894623544545316074177414029991996734130427775713598414883706332111721616648155804027060346843720981477481066847059663101497290957670220146962275741326818265892705690995230863893227695538959385624294335395172295197877580632787547006859642138829472608399137147553030006208450140296518672274612040095281841985749318127356925711854566184086442558480193628410679016323041013855235984106835261757413615753635959902722876910305531386988344799647249392221194475501493768364298853258005072791186813811929006161941577435613865308580309943992055991683292143760847358537623242605395945440647592908001070593814877715881949087009736065280503870813946340079316985978816649338376210672350459790172936163516405206474548569756259701029546198305801758900939735091743468644977282473435441046995495102054149150033110256056173665390526358909161293294240480290704699140002326121205110204325075592593787198300687261300085316471849635722727109401238121435243585415596814293090187634157335731247233072598353527318888761992625210022001731967378202358960842638214784288877592274377206396314471674782173329485439725235645421758111133098465425234541893100367784000851154743372796236351793107291343250093463841370821539437593962435158660519911041034551890648792182875393979032774959562252303915746919994691706208589720730609959391412896729788027497787211007892093051161798863278218431324530946635010607257778930640886765699845314013666910291168726008292284584877458968731499929136995892416792221755655564103129987090708429050077988095982823964967850860706645488304287928912673380899109422029021735493744012305016793841621529753704011936206635978135419688212400087096293201572654586430884430470111859226741825408849134144563883221680405802651520905161829899999851933769271628821812834433046463044873320997849254866471537023029303181559488445677283039417001933453299574161764352372141493959852854904916623750530126395704905014199142759770492920444437867163612845468058550381164288680222914165486740248492803931741323344314658526484747499419352687242414472356981702335843845276813269280372727696971546356857354487396329137157235029781656849761497985084321194502339675146002591208295494737521209115803939563738749563480283608012358088785403200821657705756500369411153652322049598264006529462208985983225704342915726010810352577747198140271848157904574266745090600850217786790171131272113345601417570128234467469575330876273484426350582514009713146889257594531634594299259999099447508466232655557640531989447575209105382273633858343749278874043999142157207389301023521738561068551589512493243665422432210404776060996116165721251199326027022303999496172746053884684269088176497666152357041706163638759259807301155133014590964612445029233604213903085186603624461107796467154019090662995757068768747975900201285343874848948093052198873617256826063283427320274509429232004347527601004659547844092516060830525467604624215458929839698665643118599969639210208799840185597489294440618755666014568825545955087213047562666455193685701734987632184332559500128882759102879285218177249275512724530631430088866043112512665899745755027967366316975358834466759761287597535176042752319031742989234437001018362770559417381361937016707562874966297215532408433485763635944805905335928637335319955234423218422573654732804547176655923574004139529917383152546439614636537500944565034786486782214883479229030006216880854664489145993205994580956618046901289495666317450432164853495162733197532152136618497689425117521227103608046417882576252950152655829981859732366572125247116508640556098896804989593718159761561839573008343056207393439232372869056662921799701999902747060309816441032870466626590912894519094414396162310894138611652252644418555497116947250481570650201649745109356311914552629443802932368581349307695653418334451084747189456504184980313251674392638975211561210156426685555430896392658191151828502286108623708788986062513575167300066553814129000863204923747217531901148110237497011005309647430511598385095175537464007046251101066479207283642490944101963693899962257488983087069712811285965326650294247751472313221440790407334382740020353721838407131648831507093786402070667169754055403358994531702474405461796637001997813293763054079505566300635666994570491070742847189432482812251867196559951275813645996614404953423166894333833971276400142504793258958893137303379452428643906805592267565322280808953104668104984757800251764738799085497508116474379378440822598225055158840508068796513304815090602616500356781998648972349533349746290227946081432980777760773442475009097828109554764526486843542421043505837763758784009440870164276670490493974772513502978711873609507096459772580626262090422290432883378402383695581783028291895995079338746591708513305353457382756075335610073936125134465170166463276055472577059000675446083437131607225748924470887558038016425335566554670170450000935538583590719404345952991199611717640596400462951112447712167779780150387727092450598535460106215282350251089865703231237446191412900905495501762205972352453255780935308151219358450414244198474646636831898238793807658847191300997460794895121356029182255228697609717041935776778545443710178414938793235425043852504476399764278123898586950398489282549831514240819704999913822685256543388195973154997233220019861768813704873788293769292706353713142581714029714099739415659154572193879024462319975119747914756153954786531700513717183142913298992928337640937303992482360186125384991924778625123761364519352656234535123449588766648001680865733426719458763770961029476282441372404834363289502394027330102372203435895166002127667876170212971039151166188064563769894382858090543260859019077605940164902296841116896726067622115325351859914692854025991479609442174609127859606789719404566196234386951709625203149919838440461935372903243145058488730147226170142986537130106257292889105053099677312335855655925259372932385915795517158138124244671726520831645261552445533512770217783666689171873682372186851654712048501842363371556188717597404765297590092376296088741006194430308869748589343240018572986397325643460987375912864465178751506543080165163621268034168367280632286709884578925280544644886964123354875254631206521242780184308986519953644342126641169663638422103860535408933056166768469589906141909248534920495749251833307257921460913201654747461058509785579826430971461052130798439895909819260729365124836398481243531819768012602984027028578281165436041054805200848671669914951551094077836927625405605288866610764822966256787635964731972189140106199753803720742935575378259531937196137349356048426534367773729934974005940433025797029370386684011796925852745417891535934426203454195629087731877532006598790973097487364493585272804782195946661854874030444079661481090789544569672203341127100711938163154752797773982842823741809567669275675222887327091835047033477070123288152852151863161820535431273044562660076318371101226457062399277637931860723437721309041172620534797623102881535937150398076693387877882772579878800926800189958641006817234672727802307639212299095502550203370294701293469846040449284701617326671889199375078713312044630260207976552077822507498517398550183422082721908040395411474125882870622512321120560425951552149947598192019559634457981740984351690214564041478225418149609462601716056000212025333645859034676668473743273286052845287107238844900227957339383875315620261976712043770347254007642155076784245421499033934364969892993851492796945224694662144968052743819917063419912794628628991744616909425678092849743497638443170945478996801515546402867711050521406238492379391515899577347536186229774851278855008502295256018387573795466104357934148144537607943548724496729913194282029676108066408041877819428388502926619106471225781511331359484785803880700991548625544846726502954297240682655456322869076427751654618645547696478797981176763080246391496778719020114893444593061245531730173789778570561602221704261448916411997789240252773021803144003842154427047372306564872008347233897677329339017586297013714287849737771152610448089669714428048755404735395670764310151491618361008732564875799012166700269324206324191577414790491127246191700582839442973421022902626720118154691080600442949024323403766393863491903240732220103224144196368159652239190124219887636239255861593151303678687735491210625093139470166013383881114114372306637207626527883194811686604186448050794806685819539801215956811988570307949042168628267481946837265963638323687045299606944425109519848739696835913499566127216556286510815419776871349653928544078187225574820948351454085067265996634786830628428730322045960145439328009926748351469196113912081097413747695788908057874821931968776851910235992257701197187745414206702544041473057991056785990529409304838189809543031332363327675940178661143924626728520768433866315904531820989535486543353592714168314097864907946172080465674145242492756451920421530339076784208487768343474297666385393314808241570579870448080231852472907804327577219873190289349078468742367622737411347478129169524104265429888767474955590419518821321107770677507051985011489628578107480558901682743154222383033578808603411118038927075220938261338774793026673639151623897193862754695976599564310665519973767728076483743083852518138301966247808744557586986147319026845362742009835982321355500842453646201054439930433046904653058439812313810628990546295852652189096383834096134917369975735558806996426147784427337488616910262967158583399004714624476577779996469949152238260026454372789982878071853740839195088884119781278563644182906134304409068534716256915763916618113486220697160154455495090726809371612739850150047781799193959229239428887843421744379851057771301321565715862525230426517738007475654458306806478286709844407908536362018797498774367634181275338940439726765803487288072845033627463317528704036483155942149991155337854706619555203298061828209061679831666581685117706504536267941417725129645447275903625397717841076543347434951332001099965501907149360078765695975154536174406350966986895300699673936557448270546356192334680261194549827082141422898383243986199436736387741231704373874179900347419877675578918089048419098704118897730927135311182981813327587186744996773613569779233813079747607469447300582257677946590906279773144802128118126467401677909658858037744295538088628654343257714830791178523651637524154418955288290870677996298378818303688102491666640439858001659305737340694791536859452259929273239379905502916910965071994312746791237942626629358716567511313358018569249116215566684557427049077744635880964749521734040163299175943541477130766009864420181036320811233147647559761981225804124239985564917792131799073883417794533951924658067538154186491770771424339779411540801658953130163872937403368574101839407301406031477639678827096346602031731483054304809053455171297833429605751554993683295170130054921085387233927623585711864980598414579045839355894700743721208479869241620999958233804362095740878449992661009015403727147324136669268455008385661819614015264187153135665318947789341826334889279409932179483082183802542847363395470543483281892962537212338862329903487369694072660693034332919352602323764058478174451580639422950901368930077102166856336288410118374929396550853724473077882460284762027645018807913860047335517048313430655826231990424047632098579483957396258490389325168696670855319770118372562432885151238539203298364624842090448070648775104130789968935727917376642108900007337738898033470087781105840610640758016960677257134003866605597367605863190104624645520847178527466530455450910467184353931264690530274153015703637463395650134530321396733131261710995573273993064169480044391949086904576863112528488563340421783129043484704830098199272383119309421863750571919914365371819461367280134962652335520298590269873652695188575572818689112732368703628065406951014750232499718298891838729017663788070550386904286432758190573768268079879969552616841008149516870592976857210396113548934270007457303600720459736333820330846339670375380390610527904979829904816329015247026453674528883822617035643776855915664842363068174887163665192208158920877047475904350097443920158586365010632543947679789952491487450166538815332788890229838896812483866066870730682565255110561349614262285736258245161935841448531797945604551722382115380382559821493368952396900909993542185047939329490444514463457892718803251805445493137333424836580486161871910763879785272281066115010542847842402638717873413775591645769421228614437301493101859132093602308254803400906133399283795625324327404073289696860297076702860452366897424151614677390396248961161045679714933260915932538997575019422014788675093855656212503089693957223747467421594004879467998092986092517775037332908386264443176930360872907782390383907789727768723685800012880941868580700970222457674433006919150784814853933080497441703692838835118940190024540196955257434068862802018355130645221105407844934080973155840344442914456242729597937579841766629896212677727843835530697292767456892939056845775614551203997732304178446641615783300380178958997975632980775930143432098204567953902025407235237690357050329164208644883748581862751081153372536293357757200736269637370168482166602879267909266283236748116510274167787088848073613925242885501757887017465210552004949111951947241345439809855108541357288823067044308454652751820269899048300734612377088659821663232584803131108554843136239267970164361968305984424505876074291807681022478621215897923166400655632997847441039974410648741604570039539117095765439802882608562483706850874199318103662779735725258599131984166360064970021244271944028766462736939554148739835159450318931728656127007777219835594193655489126986583886981021632770381601235809495926934846624041230118334401750272488014927730081960834369921847026181319265654054781405547833557488820378215624615821117149158962668360918612882626647503780601466909417077134659268690154101653371343537537590460641785824486759682227687747879911899094005725265029231037633591780120638484565802716304185608105497730087277037415340499750009907282193503479717940528979577019331121195221865089212824139651324060245519314909284247983267828401689084144479784079056978729069321883034581508881970267219188452713917619330065840437087081423228399952110450489995742841863453686909989734304908794936810898691110865653917616149253141810659539495326800048000578002163858319807525259577562856846102299030285616127342455541984304325494314389840162341541220871446277828905806048665733947884683224566571813636321315237692014257407112572261897339499353632538824900381941555789369632380927405966220529000312027803226247106709741341854096137190262896509778685064290389338903310962891510021065404945765209715571967220423429305552016064890952322986452298561386821147589873051128791244640010728144300252489983314017186897952838329168870945257281483446450485708224441056404394192600460850065693991684469707496414834164794989005969976990093353281781484394566523640103162403480693559796670685561525301564724256177414682588237432238511895885473545129423748489662782070882471945033839548194829505006938704370257054096793548427226037737121174990885260192188641319093404014446248564521081346569266638163104428012936924037074268253461694281839014393042206805187233068455116811657532631549173301844841054904969709772769484310678410803351689557595852958369806662758173802290633235754838794144592842217622756770897967264591018692028306437305849407977106790347050671786904379109300261826939333954089146751076523695962918406408047608625084727366639357150802668591521716129723343520491193324643681457897962781797650343268193477997595357589017362224895510907120225230214998513675593781090447188567252006608475741913988428958181433450306520057823242991055420256031729346317310768189297503387693056600156292954781191805994229400515220338876833262487235602202560225430756018453585338550848107766555522713743712693258310168787469083718039250038354969531952275906251316154861558567249502854787961702893252830527944816051195914761532164155029462057048950748978214773865516193560870457133128156087696263772937010428836753211609056912133996725334258888619404007485916624503744453899553903668885532783456666067934357790109133794752388354315538005599801766612813169198757048358418184434186007723212264049023280756622097829021875889432035125607084226756198520095788076820968496195342367502469321584136167964478551309179087171180874526251999976560841450155326382545857605716091006301203709850550432547849657878177550748885282022744724173444412921339360255746406664167129638997244725855926359273975511639728263032798200211576859597965356723401693093627372129478219025275314596935077818052466886310798964585211478568661290399918563434496274346134441814277503633510757651388097468234590778371097460383000162812969032120489668146879047149288200374483960157588652140940456529253898221833453404230572514724677699685563041341678727821404579622116624253112112986314665614927927062613996919659450715008735165452419815121646152018020034706977684005153237473479870246341197295285028260906950837569496977406915493131608899564750349042469137593158349530135782824441663433307126323622121138929658042872070527047252437307618514441374289326547090954315710608039159147176977488378114076697353598846899231298625826541689696261431901560992166165560610854708636528697866960727281455038291576766451005401887675392111054894992018864105755260128010349732296476779489540836463298274628010273635739949463866670801312094020677487800731478866959136111492887576100946471642866431628937029856848004680240509907468328818507045009259697103833585968901333318241993505688830233071763022370883744366197940768543278044071694531572239384143724962661228155019834369503277529467088947158522438640374671252970421287229483788841068276101426728032090070914941375150507452705635489205869420555360372766087971060409596240065206341221845343677494105039746517223497933898897622898749137317090605829849746166217448086505416352203201739254424633507846282120970009047427732202865554040222821251612469484973193562459679730311150214963798625380791638173624314925218247177069997939709299087877622349341285585370252937095666152276262717416306781424148967694767488716013822453961868100783353769787091865371118546944283991620850396065910737648053432320464402068181081510486866027081258464248708517803556451889342832810865710533371591118288710632874217792783546371895518185845235127200797350417799078768257745001836667624556653465920997360661090371704790083714265199336692701432560368736858450471765475629674786051834457151597088216049314631565395304845834560031641375358916088360560829585013348495226254760280246980354870746097896812418345758563781850024277972641542344871390182617031052549697254750224746128359072265439543950726771578689392329907187196463983666904978287780678074528264336898305721404413348172640587685160756352398803395263338168079843579931817986602454779985931452858145762844524421416376738502310188426356671242572827468799575651075983598763813427663978145748918953270445837515918743193445212275016692739700218313850601264379825964269727133364287977760324295680132488558315185461817328579387081349957614795351241190311816357030848660568811696866886023826578595002848880429468220912828223856598117724071611160351322680967979815774937698421530149591617044529553956553339378032359724267415708273545074120573072522678029507956324004757716209783316593596846599525048417841071423235090750613202073290414925526873528213837898800965724138884299177824126269770912977271601631680725276372441187542672360667832771707190398461212809049617788626272863616924211848506408919538452731004168863923640982978265061323981005109850294631578111479572025188720721452252817621073409761541000487935317064417986302850685185478688803985893000193158743046694569132220334970468869503683396494912201549093048479379213883341316767791985776133408050071507173189906163076159308614140700453840927299598933258774944036324433273937513372406993329218822445100616519561379950022877546813378684527736645378324980058853639212331426600584705521996839768449557896739917792284529158855229322564219458286718442739763082912660048340078757635705430193444845601707912433425298929686795682404027936776990486832844854674849073479648555630501867046763218099379430891213405050522687367349150869979269056672847568126506632681012905836370433051124497849369719042700133782105460657354037804160022443536715302444767468082849311578054827566418537057494547868343467262323241577095957190991172106173946707043679511821904458252016976895710779648644347308305066500640102574608380177641458108608178432649688321751102790290113368232557611640375570449193626332887563220726920672198733767863081145138556541374465555131201637903225068633559173914347536677944886184392370181428681284738631994030283005759236401292948808805600846612922341573613069955416274951489475492695902018113042343089844040510446285037169120158002625283874394975534720092414819602520530322909416820251726827976972569165435338136100808519169937205791655121146858282390733564793194449548870809613912861748465020208993589065286163177806562983470874185882980780906277396594964454416843310593193976087683774875355801446495881632822080288599468043375735742147031344916862863471442186051042329527561374187766349924888699776870585898569591543064146618148955761194139071935667524339169203034042821024818414646613435108064598180881839943348483058662742907058369693946674210001562080766777409911636380043208866887763447380403960316827108791172299298682320592069604129768734697394969520658879342240666248829545980191989541115045096343940787962509170283232806696247507270089233463042873060989095412363715158808390513694471598764892642580248803872556611150468467531080499151846183430547845019859737188769789320767132580904238755010156438349322700108013554746329209794391393518716359433625833681512911750944348914882847123907106553871141088263211309588398438276142128840075718635260043542028292049526525817092327161916054965050163675118646627221706643907403273091233691793899238026102012243335197783134037394367211630240307774469578252124772382065646177161845025243102774172689757616820457975469033821425224063948885267902180616274220964457072799075099632720286547789862079337138217204460166461512914965748883220067109019985716528176006244474219933102110580746483669067236860691108412645157104947621954206039559287754852975547841995292091248232057294320754661653241574406197517271347385116977205393194526922476707302554614715600306276184284937878748093534390314296579974913467731412342988498986269913235431996458595022122874919872972017164859135634639731906501216458905700125409978239595184670446670251434694053674447078613653969969450843765225834369534957994453058877020476538236631747532604867263867364037901705240137132393864922081092913173697671028800151522187617086717601019242028394037118300580637694504274159150487588434707372345127323937557274374496158834822597031123670786713141481901026993013397738767552435697308663068653393235424174787427076430870101590282511480766383804361466151204366345819892757214977939350443493981184035935456232185522881220563311826403142059804829844041737328963672660949136806368639442973136845344676829239971194663797030204180384632880314670824856991983961131327616786468871497647837401143759853281155426094620029510633169648716687161078612930685958785033560203990351856294018616230415416869163590535491747945365847462737422292286395708891940838508345395711794642409792467138703404523488899081483903454539832841408420965637740521448276089355776690339445637299090922473347655866406595898571676784325565720761445182962622086834385682389241501232757668106159164364777603779034557167682651889877553987289788888247434395980816786446007393072086763290267778795030687399225407948213298921799578617594360190478015553289121481372698826319998071061520834964913332157326905688139036550714099857404288792626071188913538561551718578077302711798989810617908672922059475955842027671158798219902078774725843004364259855315593444680225423253850455621940978358854262838729845290855337169621399116707102048173514791742748124023260952494986563520315736559300089676560065285365043994463099691663153135780330006862628389282607226735647702067767029820827198567281285819755000720481280252932870086265323948616597752560476555779979633426899746931255879600684353674917428892520576142866969407181257042176105852142587527791080664620599438934983243070956026645555422038354101392896831881007096129338255540240517878914280221401281608610474310096127706428471258025154848323131413420922710020823928709502415810836599478237564979795660625518928019534788103821933167920490133226482164429192346929863773852847165439810524553255021517493069536346204844175080525453683708652100393976128690027709649819118318819692685013793727901717355216616764184202115182486041244863852767524909890729004775452355266159734527592748527305747449871038786197929786351453934841232857923684630267701658823018077256615308625712337214537553140517555580361947642719790969776926509580531827247128390280396069495147427366166093561313758716268558911635049936542415549329639267597354885138565249893637392486740553099174436303664120454022958349041192595471150722444557845180247524909999325888828163062745619357451362330556771190760817638166042168381069847689981620870982653110141041149595080989224544743883545036692825195400439667578635348125532147586446452989157263119077001977183636444187626939159806327020707730821498184785993749862820234239427328820815689536114529083331868265306771644019921421248625568456095569853266382993045591698954521368184635173194222619572372887575802075332154026657117304007522284718689175045745068214253532105012036975945500724333581491858131185772035044623547127524135051696991323533183788001863989049499643151458101780191237465182176477840837889985901840898927424232764484971751747871643820661959503577411545241425980844875276140085182454717996875357275571570671152511457583541189616691509239942218414639815095187206941949877597455789673189072132381585194092523974986362488628301026724244837133525848020771883272554950897429256018159900119333428747130407256532842602893425016487083538220043091725234307355856074189731583437528677593643075846648740442617736589047623204934759033008500173446788481114096312180413178071893420180887010693561174077034426936493220227785954100794298028668370305471340643837233265272604787673104557401603573486762135536713239596536412881631497962857005045107646569009807919395233571942652696284474899019502442546307767373808117078470203193799424618932999782430428229476995724668262458921994879817393577736431914088628867221302828365072029284532351543393788503743606497086928679429147195417144889711718122574520047958813818945225495842452918345121298984652935058674946022609016428611651698181626163635211080543606069213370086732803972468293485235438542294619835828269988416162500154818162443426772964694745424244439794847086451962061937883261917532844038143341392547169758444243896504547232714514874814290248912045994836591989367594295763679123011556036300370117705483180702922832124137040695184804088106653865861222338719028574718821207393343851089436383690028416185235841340904451843922856511848402068081712652769612156984513064707170486833730709983046873169776896427556860474603000839661869480331491162628502291139099792117978933991425322503830147181706887420216333103463332799589580323011776072585808623529317331322544792579713323622480458712853780608882188921110294297239386233276726100511394751172943883495618852680631392373420362696146309247933703057182681948566633000355556302627483083075974116726601399134981170799113361046937845208775303789714005152407403396377761088876452737980682643642585832168732461518088376987826325971101354863079473404867230843270876927008286963111193127353798022043464495372339620166748610178919552722105264994863883830254506297306876113535548012792262912061214584759798242175854783322058092893376309966300427217925897992038264459108502318075348331099982191510532605011612410011899353524101178224409803573734386168711095769293592375261726275351454894476875365438392300951949362790264085003260391291333275187128893786317308794089805618037806350789840972585202645913664528946843071223926054988489016013671864412987232733232221564753549469288515152250998769987679041981262250997001056274188587114184101361675811945539171805609845273016626141248866969168681703838277274954894291248175946482948158909981748043739049291498316007518617381910080876481630442069413612212766430574446251690043912751804684468951624912235025203671358543419867795359322066864467538985443067142095087605249225559507101869070520829945795120353437063247765402724437074009820318124601109141324061297048590411698357655473992088386389013431194337109059425455440604439735355958494062764428756882419175923529934534909803421027421522417907860006529986230591229192225578345062405398270565888250118977571165335791803153531809388153320185482818928038354372014406512426261349099222638302281314537738660473862955125916230327408734694391385099148244286847790669544642696811925280417858239553827054836400661203991625778741593044538010292495776336884706957998680339484591140973089468871704264315191450502425999679363317780874744340876920793999978170679294143582983737299852133441636566495506529337527643938955277100986499602927101021362914272211527674466168687473238931685199738269182689924788478978857393083167790765765550825553042822883091623744499343165326998652470182062359635074626031779402762836928015987235305569343043196383974290628887266980529524305607635676282581812623109909490422198438670279935552097202701680054396364336844265200436508864254190786735938945880237898292368751961722638807871327551907415202098509007673676966362182649218320785885999905458666422863679023905727813769283172783466118626719181178126734804246116986497363476272569561035042706030845284465774032241577607819811710318628471484589309878626222331392280617834080588012188298344697603371597188271562054242896257666052732326533067398826630914000630738088125667536723020664074657172869066080061819273638146814756437686486853630916426886844901353385825140802917182839699804713065082982118626210800431437204433355609694075436991189333069100502266343411008564002641854497920202765643766826364160275858476761854276034079594149500162325765580655142631445251477042154566736656130058137102961367312208934192210340534101316738052224757308618942645825124001132524821696637931061103552889203326192526595279038727979252078793166964229250704210916967991054089211657546475470000505368620594620907174007585554051038657237023360237899214618185566348793807228117482243121686813308326691532448351106201546023061108518933837526786477384019900670596720449779874079188428848271366131124474329314048135188505581409821460488492764625390701107940402112908666164107238745537369573906546951623737983676430198052315410888390254801571881576097828536207683772016381173490947547272052888144520572686597510966082824187871641277101028007211897824852988564778603054219085314246774489082770633289852556737178544032362342914457532619176991966108828110932282370569753841818279627811104456306038908379842355653928465534721918613928589031809068547911319282298874633990203526442038738427967658974343298755308470430074066136974498557862011576567132279754619782741527869260149370358667891418636784682519588113938165139956763151103226586778858991671803619245516395991912887899439113710808803105533138436535515597492752883404823828244027403417860834294202643182008713850416631442064486609401299297761470053782435216130095155215041891504847522521876727576086936074614464222517809597804438929372629528023539610842616914613426791252587054062361368374944360859340697621613117269381040667254708778630213844105599213411455788902389613820786863359853578645015632384979990708184762851486915329967613600638157929727743751616269071928276748833163968281306286642085548883190942705200034279578455478278245992493082200493925917149961146274482387679046169418760193626386637789618556760092117969187500829742033197884491200428094569567903484390055778092847474662687641268346425325239487655196921071062976989151606620791449769802005121127429589371324769303891266413184198074787728850229653533970788751787155251623692670369479343854754707113566834133127531443283111737037769350528285848004490417272659906726140265224733299994340420357069599908274041827035174067258986042931116405810122902488617986512189185596312743454002508878554309492470820907949780666369490676440849112740996856559848997146723833398383864142243113765990140206016063911980833195193056118731870782835171681364445156086351121942016395377923492163585534180975021964017485818312027735521881135297441401203435400975422686539592401449425374221672700537109413050868016738062470622133789669815644993859574781070695699201395178551677493381047983153939107044393714403593196852252525290839303259290797413579293675357057643368832600776829254540766277730637619925738032358562997938506709983003024574011619985064149209915564621589899454353441917702642564509151621492860927800734894690888149148421571772742580986872378103315497010430958143655686830956912252240014149249490687294669140307869179363714031161559322487848803501750998930994207703789596581275307629929431940802974443383961506248643645671189675493469472202383966840062904367372899004598012743271388794250005562742647876033936541946102722969129605237418840877184729699429356894669675671775923584408765482391727969684469356042692867235798363655263744007142951531750474825856909918557902756860437645445992646061380138367752322835675167293624906385634423087885362117704456050173287833609263015501045051691294434308782679217232293832035924499049473447102816816429032498809726041882364915969669231277835298758445951854773132136785280777022073798174224101729987369828425127764245746613976804877360931978468618291415380642704909431331869982975481599283272134433381321879104469849665832780391241430665144519096177215766887557650023824168818766046611043736388263606667420529751819395585469133376624502587348074642659401273188135905491578879437735571101792793649811479510539138583332478396417875925236642745904378240865031999941828240101471032099404912458154421472057813014586413923114230664680180039356978753430250355571391101995687209222410212614378386018939152307000417553827687219783497070334056609179217748806832091953193876667647817138827455752437148893518375245833907227047789162634162566101483112685692311722078767876015321683915005278925969591117042843986073159756804642275910252010801373718837505558925623381568642203818594136678213937833699107528079780790055453140460249113631077768822953260119527734605945444307289087685401958241535805098272692406997541384150815069020188446793262947607397190424522620145616728399954932558425487571301787376394213690712107503165138233165485872012000123509922835724420719415510168115648314894737297558586007602324534708872448616654557717261247839921406905226479497120357181627493263811693727085565794941790772639097475365552570413860690362414164479498510480198934394059668515747929962332592303096863841812759861604703198061206560115548824406081940362374779540848323205173284673275761594285377571342452649919715623481975471202513347115501400117917831031862750176711043629189547272910418959605351799560136046442266126222959698141416201688644159561895229696534676988208042530337536612250060256655518527725833808613939511789060663775984488610449760154790538789841638239084921611232167974095121429988178560150333344776035800197772852721320489969715598922169503500338095420864464270120544930246699875472484639975862309799298641995986803833508572603716345835493718070559610984808725127603994244791532179290927294433899004806398976044283789909564130713851837498557913253262997110769600235578206881630817486986000627333207878417061057333560740936888377745900336359913778179623943923055700037584845347073010697344002414649240222099953370108131423352543827801211998132770711901793139392908456182104082776157791919752702079204820892563368202393210866889923071597872871374218666552615072172649999798171746812471430926315958997831477115836681309063238581252673134226442289428332332328289718844364823224527798761952310491041135766692547581841186758384755685212026906320394609088047506967856336372127029971461304231428296588538752245416421129508019597097013939477003423022331268705207257537804723678029721918615353292149756739698750182822069073056634843359811221358220818936742983837055144625365147200769301533541685685851202998742272990791941144317677750595574442652257292305133853010305454006232977186966544983838619634651202315422255634117114441714577333915912552403243214800117635784863353785186555858484630846913897215199060502109781909239205872045157346308959428940293112084575293598259471333856138998094079690658256221452800122542260449137082551396504387957932398628849210141756056141068392595657558395309055524758748977959928151786155224034460954185295708100074847926947468938594544152626255471990352325968634792659326023992089255153906424881461163275992957507988065596019222105580241076677214842395259573544755041728850539550109630920316132588867001368352079708159829582404403930790295676747060499666446945270248767634588361178147649611652785179333228375643315769990306343293759943936059735448521311489440391530494833635165719467296930025528693810771050237657619572499832347781920854305218088296087770308021937623887034535826232196680873845484319854382315413238543679551467964141213610236545168687999579738872315433330127122191329112365833682629117648421456115279466658732461615765767284182986998363544322693502699111540729430390686279275233446659353896987171147297514882020711532448418824839496230264889128898798394077492924743006295997535781157653642539879608262135410467933675164505755268237789907573117314438279365797913377546482438707469846183336519647590575369600719323442863638254478212605401310541705558860639048519596257501631689143538717962652484268312229409756324875396188295750856636189438923245984304760170919785816365252373300220072100988934547489176992989785666355310198662586905109917985719933418354891966693160763638944577392797197760884970294304374509187116247977216015839981805338949145944396159073304027367806128852632702818420127069831525228686807697496120151460438653205976225956881221854997461479762396045495586954398851234212802871389485416735294478339597947592573385661540285080840785509037966264726421234379853529011842729621718600325085789145159089300349370635431926652266111689890565374722658730671438818097675479103508079465423221508361720960485632865795063775701030150400737017387306737643791630587988233925156740214251555130601647989835163856976860974011607594661211983539619080291511462771018209745572558737452472601285187632389249921605395059374927491443625480671567471998408377768019021653385473762158641776193723105169295021882859389657009588675633164854185521836123078190855614992827753413243349919953374525871974767821111730302529580873864893459738081621433534801565217157245232804421730142749221655868570686807426929069532523908551565488707727969531585940187290462699759786114492864709060631387001677864777783892025832632579852527555159813196444002265763521307259989274236581503330546313291318440163582653319350708986664077305946953340073696874156146502309167952736953477128813756741169272761222824296380027039042654994549270157685422849981768445665921903802109686470343097363859709418386462524061975353566674257856843833461276240307715228608083302626213894812217847493502358871455493280583957395933094986033248883438840470189032679831172172543429150147799976650876071939830677726747555992712860302280941928703345264554375050420689956062283078965596019766912077054396315499115996418875226417216767111309217086801564044897663759391171678708281808074665403401718994688475268796225598729419183329107761008686340251341415139579780524322769799137425198596722034778335778574086368632489596120882826777448968692489344814398702680234590383307339967871895734449349721695482968985333719450577140045842043418526702518963509840405427002813270872131627995580211680741479544426487162473079059232248020618624157250706450379205552181943309893936421885689638768619155464321022297865372555132895342568561036296181755412841772799925279063790407135721362642113174917436526344663674167371126551048110148459287881836687032713313125302496199782338519850498446193549874459204373669208827185488329580895885128836489972484543468956016381014909006146777286611613533598347963406149630358965369076198835556044580484732947713868107958218579809020852254410833322968178769362741092084402733322636826760477882092126262913167303153495008670307822278507591952756671745453405635262841077157472520629298011224445532506538551237188507886657693285198414983163310494125049059743707225932746617439842641953382881357243444719066659145221809653127826387763857274675852853443520730652511409745799923443629723760201315808135966810267688234186540038459362869716934158071491411084653386425588153024220836086261731345221687385333799350722030970435510234322761042813240522488313818212307427039217177630538781025258983976421054716027917757525525503894605249009886143733574737032169419603810686833483624208764630425026360695002667018880829387909492569585050381716157874646181104039259716719642454611146150301747332742594640706781032384912446810832651584512895130329364108057747997612006141759067805181016341236705478245292706440836054783270950810417432126473773058243083293579851932294030623778459891155994350050122474114774821446481342823787916870297102502415510643610124276868947237631081280525596290120373563712926644851762068795932839946916087090941081224569166145145834695080681977666234938300333807301667463720386771601136390706523596845547316035457145869677612422068881192415071925034665964572528893897726492908809796302368872416652826588559355157777542679500839066075807145055870894986191647431196407855517048564642595489210759443642939705043611440102366941719269140255610599371037401796584166515544737253167210883809133138691260574829630157645383736819200038929165997705845914935565930541764319829120963716096973273082053958509696949063392133511688056707672116919240793600292497328922629983327162634243876064360516855249436270442385334456068845194550295467121923595737138900778243279743034090024039155938368189039189090097409049221296021929657060413345819636639971093842562398859213336878909246718033272271118121909979137635969320801561285645743262538757167769462979875590804506921407863277575470980899029981697238864184643748881326118979547831529727142533759942253376899757609370601692596376521652270524472951711880522991666418449468322156355615336796927175818262683763344229533774733927904513097853857417400893658517077318105827342193137759605886307655879837151704676089709127326816293013811095455496222023055569341752872882550853535377241903176170179868948573675013578041231139790908402809298249172027986442013037651440967191682112329715477926997717523111500986864124413486113696932168156179627008544967872244171064446776747259302815097020161031133871949178273948431163326829492390958849250978980031543684868453092817769168220689091243702234178286282324678863178863357357759910367753415401129473991247118858011448962967139855161881659736873259252736505748250125018337747789499164128092839182955157059909453090927573946871915209441728917444115754743056053319605670216128249375862907138569508506020152630027671152630114172704477272278975029107763298623914058416901201543815462384807168209540053990499607754891835906559645054264405339648456305319603306495852146326217156637979982373446700496188132524875103701690454107031952110991011006826106276985283650646171530568521308195720095114252237661313355148265709362640244605346025472948806299447763651695276134914541560504864060482105037785945799595469439209116794007015217420607565044494990133345830402349240162991862583505220891690168172384007712481722051643296614999590152173685025892674723770837182848333211929345885885636817207239642421236459586742777316639482134647064465869004952473662619335701135881956133324032184000746293075867441363367382999522550598224426241670132236229727981261102556930442264206139315655105236462616185144697052867454235205083945240313745132477837847030865834519197800072420190498525790141122233832482912631516800852009123068975134720898183145414514623405670722973258694382075980923422664024996764188556658096388759300717492710362287909875599846703458135848456911746069029395118419047827566248953516043677168604351872234271486064023422572621924596190730991368425511693135233869806628051152871089984723986157194416340093338950817036233487354015600182403568641282541452763047556317107030654173555818517969076887584927747093208109594014865278606752509664085615337376210284499863550221027175988857838523130687381291169311708831539772413030211516016854823354139403065678169932932608469387451461300946037163478866779800478092066353438843931917084181734971529647892165083424855619476430747190165459705840931949178057305659376537349898548802441861561256225244538358732282171658379094210480785978115565750975356399987065829526826236907585376449598269770825352140081211141757121562296744438960307126184033707587926866383380165787636222848329596946029496674384505944251816434315929192078768714597011698568803707077977118796661353832971791984278608823511958938257870930372939641762753722395539003554633215059801680143108086894177998473039846351669892159758429130879846572665061797734463129549307454826886482734279248545478101163066948062926264695988871944838238761862185619756792744743976004090385556982613773241549676372954487385906456109324011819328477769500433093074791630066659407694160668416474289290920423158410048087724764702754691245501973648216078839518308044421601540894723002537760469479145346817617706024850577402414587304952735467896310822007819379110765134700238513527752317482782888215442718962959521473133635657478424239788104622038842331802864256038640197302934136879175183784106343648352191402249973533386846401389191124285259724429826617906223258940987545188692797253742089722042742572949380780977378273491172862388419774142525355352113141724857780659273247220251152841796304878556065856443573195121423427762829273708141341420952971395516862562610045778065755919028018178518800549222325397809367392038022489634045266246416329170936243744691195163173535791246558712738470814058207592152341776344631561905172258331587274604185920186860006397781241022025770671122294883544805524012871753066986965461553383494032499396911925602649616019571735306757186736901043515828159622852840702287660504053204783472976354545900665035063420462748925578480722036041853866336549101937355502968536374761927044794869835661597737527784735255123424784318619367729338789712743171218997594730432184474011717924239386505074683791653752260232360770028314661061008188952342501937219919137963665451343845980534161475259411332088610776271468676916879936768935332578250655788538972813777126788805767505062272851763062257929981483660978429294334978703611945505694260166574242666843985955625865386524890493327113169226351642012782168207086360379045495080222092356597897921709072137891863267043633070820008994498428100530266011618791036038572317611157740531522762345844107297485951253242162718302002499113488011292516187517377677298342929935583404552030280319867192378859865345272871696341870162123300144136647315324126451971214165493719255725829983344370808521057873715689235412439083619003792982847628860818917649635312932422517349661315210430393054327419178704028080024720939683598339112689110585699601350603152571332172490060855560029435652560250169915016502341245511224717418190350418507297306790458514465796219428080636139831669583482715045227539531263860257836428765598805569662208853278408967727591518720912564082199017450579325805539060511699869125737402686341607869782882670972234172215491674494219235656221759296415768007485720162026447747104338653259335287649784848344733998984222839336952477261199893118103954411285272706067326367255945404045279322938487779401946405525702776859696811673009704640937232706953713959892307540455856756382418314919224288124162008784300404392611674304956500220191742674506169624986353618968960450757014780675842392376148707020997869566426307914090828832125796180253619663823318943048707476770021461915132125522683007724750185646939826486270776654347153683033476578695767823638616744210588862177279526142769591594231115647374749019823207924827455312013369609971096660132583051018502681896558607295746308729971219509131292777357367244549862314131555039386812553957312119272639991137549065301694508145790825623502941411319339000741680049789734734356259776882796987319177368042265860853714550207891907467682987670142463061764276744977815787665912830445649406669415790537365029115537603461267914770723301930272032751108998802305881412303683822997924954453473321527177720640999620143674149351431796209674722177618870243876727539333074039280149998218953325760645274437043516349001151619665302580037552721818761395630969167817154509617478347229652540213661591752524602007452600073441532404610279259541250242671676188630338506093924621558319174357846043023393518180971847775429604223233043874706563996160375669298093392171022652317186915388258035507095471728641599933468061322889343246084654475968706869832678258875585505642823205700761393397520172482455305173421378196015680766384776780368321736018538165116894488520411182502089887549311523489554936561621604874916203383054322154907436335673327933318697623064832422783222885754438934692417177450047104583604696635625471184383552533966398529379610284277967942921423583565313160000146883422610090074171404804227214443544517463840928654199267938159595733295956905042496622327890235777371128312590804633997686022010656320550029774853198941871227300446512940062090715940393678760637269614132817506123457224154838872014243539726539959486713642082260893237527105859366309561045407821747088314626604743881495198710963408824991810174231847521939152241539298082179519067363099313983559097254738217740872951907921713561740851530886443946110647574440748354394825964121447094781739576930944914848447358273947585790764224209536728836808578496802886098630839565897499332840355297563857633443461715097804626768116255686178762966781536116716497714885130092974415375554934806068621513880677546732865009330404701032481902512459856137867719312848153064728700857818938748150486084378101895497973978013854364052181760586533682508439443420005273062060687297888798884939987537875461063213130782946286910845201551494943510617536624702545881664432460433766043393482971061275983183703366855014613646459729205293840197999349754911381332611961188025193764549829619817929390546759762280248703682562979231202452886761277036060505090343343925972946889987220994917840812881002391196182891422376816561283792236564453619595761053914544836034745965401789428745159415576588728647757923007705269689084566430918715713027178720585886934838436486057603619801109881408510168317426969290932455699399010219632629532939077282578983013334933515225602507695834506401048162491045657584908445851465118608619986614251378610983733707441173885574386847606327156369338872212596632441850449956534782555648297748915623448578257278149203874207307538253368800269195234944707673295563278056737899238795105465484669878918216861307679850497540255191312161331046432590551924909030646630978698695533297822281173732338637551412125380800754128274752595976282274843691069662653928840060746877138717606312956860872469297361287986708245013584174933798857514983326714483293196893805414366056167609571847489351783209181020072514488237089949219663566206968860904844899251409458813093053281085971369635732339836107951877266207138811930820701975412037656287129451494494789541766524914090874341468588786458535129035454559324653382148133698827664477579386219764483552281723043235917827113577731078761933004712796643544939025146882622120401691665270253602593865721656221417802940077688152505811358371231336461240070892319492929606339396593663365886663015163961756212760728193668915311955601638463805822185582829559908574514247674143662003024074389338714685509649309585911175713899219285536944957594014978470428542946635117542419207051333682198527762364025611364896838539608194220151508112710430322640307641546131832700800255193119174820648368267140356813277593082547717546999312970963703580300719050412421696812059841655296471511744146198683573930481614584172892755909662189775855098613920802019237906618694791783814550786470855356834725964622910875124734632444353047472512865973097991157259423559157313950409464498513121340852579428652223767572857004231576066504380073005695501834968040554375551299938180126778768344260707157621893205670262683989619789750232322401217964655041349262107825605862210065984995423493520961733079069028742545467853410892994788799721777886824110586525337191772031007747049724635147997986421715135742202375580279717276918632219183176214590579984062859714207854210677086156125992489703407381490650777006344509978423689748846657286500335521592321945563827558054725823751747355531265930716847949109679671004425040873054087602171484872606423827447689235588951762731712430683948302829902243874455159941694359830563298931090894679830980057613086949824714364363538385554892267852694034972409086421018282914869456795993971050001477599708313349773713201237051830228405283298284845318249934472325214591295638018342501382128262857601206010568227662056480230942779890006084140132799644995087700163752573468847389406347136470062691562544822680539650124925714524543814541617651864159262231637865232457114495459292889544646106539627556376005700945995252670260797389690673270116740876082584593774200565935774371792226714613796285886944984041065266676369692761648924462515527195506984431753076902399749569848549335332143158941114307585661153222632214546470046798761521753101685377884193837331041472304999297040484024927710454242658182257082119582530174448733378653074408815044448614112215818783603228593297814506758077407649629917977045464684662275043363393503052673273252755073555217801780240579271134050711535253694951923837074406239677027879795679340346794206035454720406865957858659144960793499670498017199080716784589569867355904731433709352852039590939405936294527352477271243269507771009207066504327627929007641444058784424999647861340705267694623370152206780503745052735932067258394068989302470330681051718687848237659078591101829329530285611432539627389246749912980395786380819603563155193909579505762935853899596906166647391724838109601643594972262409272032666642321808559216418821147144030711944589512536209674816671723994114793231379266350994773018558771160401672985904937905959465363212343589243866197026575048789031052968209712327279263717068559102734250595205631753672536167431356053482730790963231504139406673798447793416880692848362583303403798334538047330436507723797480864377295725497491583759825143488436834282294448993706030152525619908341194877996558187377117123970627221881619656797817084428012137743584044929242658641437588383298553314257755944353270729003862359328962822247389187676412035448705569833415056646847181528383850979357498327722083506640006143034449027669669724938203270224148608049311857259816246173404433649752787500183764785282540445885364026748920677196187293460676922828422305344381059610010073258527573038899270887257436931953468514770172041961569699178257401757693324917105517961074048043101735676792662092939251284645566958353670250863279840603515112343691269236786202161428337745384921570492957524690479319191287892791381765078003462067148802338929139504423891909010185164259673699467476615903048057756664713044652345368059938435853857874438308690395314158257640184981826705881455996655628877109296671058631326172516598340542382348785443008271311741483506373011409147598340955098635125348722779977033212617742181004478018618955488895814207662462724843583698930207559477053387305812561976206915377510544605032237037254708414835439275952762333943376903967423011885138644300999474251131838695995271795525253837537736342804273450014434517506144870707015203789313304648831971196415791549419296298885647752926357609149762226495707665722429040755274422224297567716053728034955444472125117905324879991276934499368418451021354387817393609820741705716288044949744854708704811434192945039053419397421156303858049687232516122734005783267423162897020992964805601127886892033152278783775160399939229578787472688005014682069182926507184485081312385025377163563407618916341064149899615588033059204743427341595362343739599332604678028708338281052618670273140545359985144689716265694115613107375171357842193493450738772501761362139098489421967702008571242296313038498077606169655307794165786848316680821019836406459847633824715486132209913457409090345550062844084887898723421767787420711882677825401558927836416275200741419171057022434682385383085769757256696655097902572552870379356306493101939737338818915048159547612280087413445588016984268538607401433911596800586686240009078423001679137921872531590011395184954639882371549022587205276951244140727672980352926578726154363510139504259458896147306867759115271292110434758011656000751750798860424572639231811248448735262986385924509917629528167608979881533342092890346299749060182136963402461106456416944017121578431770337166353854482360276081622664501512076160285242566783360305785095333579758077917282392904305015822953237938125430732644911542159791430796064760664230126925481790135247137116416183100690507809001016783071081090118398019606146671783284386298766251602608376330697591838990152154986574431532429965910712656426486561677397154147521333898412454478344993384019736468497271631294059544655807414084756251096127128372456669417478388310750680673391832616292063040574511691299982751301941644189021173919081036492016948136283172938797650625726948649772554271369366977864299562262414850233870232413811040820745076952706144428414028293424831684606561222394191400231691851786805180508293477160379839783650653551579314909971336774162761215479554246687171363900054095948347879654655985459392091367520522003939695045460206653635977244514526159759832789988968887458098577983172319647557542592365046859081778357538481005058672719236957165948442350246974246990853090194291141339091026179821026249929698795390087423689343068360708116798745903164352578311869823025431033028352284401256201843100257553921221625795916583375874686741571978557423714524627688394439454906557224062197381722015629777060794741785067392735148039520308884210673068841562021752677079509354815095201440460110957338010157603285892820405567777063617575648366472157939070680901529441981033172700209510642772967381141155778313287811506695970741302224881568949415940693140732751629315112327056309536744178554725553412776224148631257347304980073228603776997809317335144365022279608679890431311197885812047849866457996856133863921203609540616776761629713538104300103228783244688347663936993713074294700748804110913593539780220641730892684498434516967919847979720282983691398033375617296838263734358416303279627762709200955896351643138951623202578889507317522262103557598994715329294615770528696656218986688488503966297557522969894962322676627606088147729862506989496402316006375016322054136858105960515906132564877266857880477884989800593612347038729207244735873472835179468068358471469917335431794383407289030832088612518887498323908361679658804401223964550382012036676768149029313993258165476718345429573686931547242832288857735848807142344784210725516760094212451971529424521901580952909145980461454795806315890216125212118781557017596084211592561480176638274064308954714372951602951414308218880776206579960122376464406248223648643672514394073547244519721559937921402440914949414540929809249688621742659314469505345349368853876709270953365523304309397423449217649598999674575421041236055226721757430015307493095291251544116959377861099824525248453147327844724670191258985183435702107748196369629808299891986698709697163148872413579303973149845000700911657103012379110614699501203619943713616954850764116847334941255906471777766001928618122120375997316393187398536894192293363383740006200524259253288103046325951712088148338242903761407517270880215309246525389016690195190838167591286221154298930442947286255687210373753851927345704313374312208942070323802394087706319966685051951688129314669257810332532629951034533654307097739710864886266402851222991370364598488581225458393170129530931062097496887873811923419201277767910618215782917789247641665407940393038478850120831973261170200788292552012622729604215598120047660992262471481339216712733964663854126853980430996482885759125863184007312787336310156107240928886496149642358812821843048359808048076879551687737764793631716065757235266065936717282942277959289334700110151145589965358901292780056873859149665093392152907059810312939270189368881494388989825020202872217041962039949710976236876995794933157757825986549720409208891580870933277211878971013966275431009794383775596119201228992993852337991277541382179562707758608379268544552592819155173790952029064340089368361041440727484411262170560270469596758051956630629553363847912717007880754872570299923399246500246850055434246163516665804816910269014968953588356119361445768738334586392957041257109835744152307392890046672516710996678419555238132409277251175117909271596118685401826919057201240888567186276151818014959155446610887244022193019189116967049630317319685780313904092766697634632016600960270215191103129258303571954330753268280764134070644446433865247094401907808365887868488023991096178024349653652760450138843543675573659971881934175507760403767179983863993044222286097852125695140654498198082923908149096922798048186564202642575047334034661013204588321572130146752421185971558354882141539984242319938406943019888582328326179384793440132920692004349878974112913257547497964858714554844146064411448035202158186470832720318016737914419630379153445534849086381904250596357705833278560769066638864500491768103246498032116082877543149168781163103073688772737766640008596500760847143322588919044740918725618741080960577012755925784849154520525878761380350391763018051072126495065416207378304459981256825630972529994870352276789401603212193424263268175833482123696784542779663205456083317344731945017044780955683168379608755409498324228206905396458975513372820107184839533821203476617060681659942750137421229000974579312068178933017532252562499779561647744633394709712309657064814499572181584970347215806708204687940583486197274965880488429588596056993262078561203646886237872663106143625799722683053672338166755395917993926098124190443339286458044779292685175801640327372861002586489896100444053118444302447425964112241776285193635819203193950852469550046756423049057559638915445982349093191761077198844591805644962295024545076891457028021660363298493181892581844966544843009359746668452174904158720395220255774813332276266352859794627074709143559171123911542824534964373412973840040721532100756436993748850599163749615625462737261890547953127054769045734148371737394219558811343796594652330276540123595592116459726980047822664624597761839190072718958512237798891683642097326184438694646615168728257720158438958937506009599101988395063824741226578044124195768120245718110018289099206888185565277151390600147438734096907929803497992489798232775505191583147698914096508241606465471357930648741392026467714219670931552272934898319606053548501434849911394553933631272282724960661745426310493029680324471792571208739316279510830981388719716064071467445135121121925842663969119958349506684823032376886450640593922335466687898176236023218084673988267215765605641309639405792832212575341548462332747045342037686938183664591834742657973865937826558759094307931722428732282265595660761698050157144997206689949360323129879090583047268939238602098383458848513287021719859780710585664646103079759401426048114657826307550766666403783867284000585682915912939966174185495870450357526559089774459644742891559913371717594107729770499548872544143256776550999452168740731040337278947499880167261848896389601643202123814436034605628541062579822909504503002643080319188321400479380017087884148597281926503810159695617167357138615035477027553264765624011823843964883209506514550744447251864364682168840274631882131079399125648377563329431197469480400046912232014862888689977036170570503466098008799403577055320401297834767258363002814639596515918675103420061820310860363167056228758658992474731821060977423483280870949589982537087418550255484090821903795127354402948920490341512240231510295494719062548565832657788258207168840717946518367612290157353850461110047325853852820181897345322440955807640099647106851478541488944605182201469628775649915001232715895069052433523099650642570845623915254935432537115038011710514671089868238389599219220450196238407270522722152311278774352439377209858104000805327955154938960652558425209668854770590646939994751860429003579640603911532754210460917812899958766062906096433290950007717450711625615514170591057326971348307729283796788188476189524760892190291707319788786977535250498169692289434185062984650368743281042853020706320446076673067947571318681851517522039742998086741447543503666840171030638322757262899982082330228548195537115520310749798305607400472965058278333247733800274883022235084040956069296140064602321117025114982668829312738094622930357653766064183500217411222825561991285188335588236558775469043314077679946413643366727606560870920651073820394114239622340300069120758546298604961558529687498807598403843874978001203419030229842338235788282685603169265102319030057456195993754751613572969331674103112721365068582998124771827243872006009643652862486580638848898828495040295344581896458097758014846616614774462278798219381480490811022101071755871738569079097088759298864629868675124449761977012153033409709919745610191041910304697344926523255553013803282370979891718914342126572911656131024059733519320033826358723681779255192393403184911472969614557225217266500311752845492469859077500549130447147880775784838116928731102311185061650646454457961668352767367167636592352796922224649900932166246658543029842447761505624417654576468170009123620013946784548663518319866930217114948112085772704233447788025380303201470421820634390852191147028212329926202954109055510136293026132267904905799104749141650917805449782487298156370252605489169933013215327351802536308398316259230102513495578042994482762678691338785163644215904881319366827092846045873221910938143724652414985394787351957693677506561814983102901144696032200060385097698946314258892326115429630323475940122174980242942850898882529421307603165876221306787746351014011948878376439199039839623903586575768677376145961836287037698912171610344617850724630842103674269502077657613302084253153637460246787077801196185470550814409726880968813163512922909185661750511867274853022244824714220818695951852005769336488663842153765427695055932732473475767683682509098482248094077952705380812135813923649947466597884873503069724022571912449631498797139814487800996196540555979884272399041294917728439728361695484762845716655737651469928819529767456523143174592476155517903954700055327720024756556326642622075331173646704998505475739850848974584902134027394055204215540385262980656994831648704307614775044920234986795174342827003300010129931799085287776298522522276835331231072334471782815798505924639563779764308818224292034259692154493589348757354375554141242147747049174796640231672620815553670569581556051185302383309388869232058739293455069818389709522931954099387131149356552052546681277554353286137795649135475422171003385315610874767331993180854403516480450165911484232796187702832729282894972001735883100775295888372074379351973959204929278372286321274270909976646499456334752023646214218207664968647475329178360113775732348006805494628711024253339449575378175412490251863618957655551094721487308011220126623918135025570325653982107151355464088531105174052206358698889594053193438148157296013860032756711499168253034721097651265914330093777882574637680215037468309318761282266497014479788111114308038284615665311798626060920775359602854114158273616050568067126206394419546298757995341696855511034042782158951945635084509376864634663157033609300082550312617552020555387677170499421541225530314713439504335190754735063996648149943339174682546874687575346568088444493132883596473085882604950382571851192227605710455306987791214148367650087952463553604211588926723818434294271924333866272043119455843576337518381326747772850666313929424246078247717783533623651987667335849070023832181171526790086896729279410266848509202350023277871404794645717360919643678746522865817101594962438710110637386250106071923360508435298024058824449074701803229781247885939506200728948617030236064750243360253172446650935327139878514120952443383903774098992470102961531081561731978287108926198996003869572444860876580868583387626186634825450949590560587075231552675744102612409833618767855339630624659290275703729662834510105251169208878480344182238550108369772833534147857525916553816749856423252697220879947704013122162520738430023644289023129450858775372343107087708907241830287698856320580751607112321630219190289640848281285761269424158677310751565088672203459241207247446081456116307226155526790499055731411467698490518231695650523414612514654743085253488383923559877366742012126878609731632784249858579165096525730708919290811435362703195834920443398724958639953021862446463503666568402160583717602466556144644462774966793914794659494443187984544969510219507027955238694191173305506005674162425793906482105312604589543862280684232123939149135317563103919078988177493985912233204409999683319775284559735894025594838117205023519686674534621696416386432866966301170015255513679279330509078292904405723796114237417192884574268503830724403991183230026918748291011946318523496442121975662739680327354882485215477187336503974710713095155146328415375417846869671147781809320943525250535920075660317586563758672225541618132502145159941124080600565184775941344395867809183164371063216962467865930085592343441797230775772571816545168874279449596587332669719035093227662621072440466839383131364987684784130205181602431470185270760510892603957061803649820147190977186659457395567883502448036508215282491203594858884302555817898928328846065035404413424620879353952391782363669313720820160363379546840951140568579164313303385453878848437623179676095930741006968588661610500124669474326481851518710626334021116757788760509671097448440159357285024839867279987784794211714910121018110171713124820482055872601805386325155835086397527029411158057602991153982550075401801679936052220227513279922978224353221166486706965081372297442823575960704506697596586259969701348451901963174736213557996908603194625632635676012036259013929824433685110146557878872692371724664918214625856915117053382672413128649319252552619146693830645283179088032809863650006780667238705428908255698023211197639646648225157729433664477897770031083637218674306022419085680321017058212216653180369112449376482213186715276478924892920485825323182101472802990438179885083095019067265902492195919056336204561209563670640833556129449357948676407803668893162865383149131716072984001139922304402751332019071968079510709208244556363402161166075198222954821338297521432880504993388406603601386078627138878764401512682411747630023397667645698788502776094694922582295825057902870387502773803912404036205987467083940279214180426610533886548069056338853891335712877999442715414508467593420904716329839261670753591506124096198448024531597779022511980998350721485244218487311843118799768424464988157092334051393925582550130039958024238372613810898050364860888452984547712867141996795372228430403351060273116813499538107701140291530684647854987037867248404461968948133477217043290749534386976209010332523293765629293054113976889043747235549313732644975281241304835613397136763452002444045275273152144416601436646733682523948191789072669106274753929191002999065808321910004692009987545726872219664320416792212207878589917472253787833166515644562203515644209356066576953939465348970679368751531937935376787914962648864813056055208876812317370514244479478514592143023254322527509066661876163178600246819997506791220844613550924254784956705542279854025910551669118850493255930063152568954739221285602325653470223631258148113122664022409369406672777154535439825838931201047369607275870676217488707250675321186609244930832526499750488098775462965634381957307786755487106114064678282116452234242370631493959662107511309280793978887425709066619532073201437970972895203862875910939240313351316748134851998686081798769547999827163543044156354800864294063363073954296258195368357793589033846839709271852409254367879674709969081592501463035289445503984359993875977950642085226855174704374906669901338501623312256034394143607318669346416809027758827695818184154491639217566359875383718609211710286369751513901649845360034487326273790029416314562044140172609820931336338310209964399876052894963387484816793673578780678571310059212649755381717897885946990178293905237154921247620362415020182405797276940143189565146322054294910892637317306140210810219532994503921969095215175210405885344866178038599582836418399352595157163944972466881178690374818080391268769647807159584471616814530350404118423664841514293312087356165068431312226407082405647181976262167385551898185288169914255117905809803225079035809443697570135239060070734622324599381879237690263044048382941381736068414901153386549640667316607512408692495399227100052978594433200977536437030344666995576321725387110250742329121174200744393875692175744315403970092501001552718373226059410048611099794066060691971709792932507232410053459245803546128830077022471638925686445845985078022513273070828926132083124767227846363380154294821964194728836300621594866096300622354256526069515532247993535520931309181537723531488103108023805375718111127153580524973359115306242167209351560972551823533371732895103706334550824107689461804208298560740179412354783067269697039528010790184584291569868295426722975085929483284216767806879588233580295296709881800843526385578089795044296068657945426763557063356766513407741697483566753761836866786137494759044396816886774339256770757815814752801006792989349566750029135472302957679537073147540699997679342405168518877608836829509188558924554727413320095844550032558255501218425026402524697087872572115394762079446363963824834207665425261180743630071617828168832199450172863622181747056213030733614428189220050855585464584275087941852902655905798859596687800947495515154710191782616630015598496797051096213768236909763992408475556644197642790502485485896191237166508301638133315733825145550674515828997838666562029784823096552541659826968062808913165556294204710853635088174465261067588394416205045047586420854234851385420292473878768187933998435606096006707353201301562353494972170061314515695410472720825771586612421841237468404818807049050103619562705484182449594294032049288740716633982474379347931147739251685568486566976354253031392415053128904140336069893780791416267286778694603192668453295055999140218402453508053192191291456339289844303795855942628043583991900265260867455589277575814844049940283277461456967825940181279118229388379592753208645624902964174165209906868416265042301580807214816662793377044808907381477230160794164956073872232204736248110914429134202472175635581627571684868288583196036775059881874202823576282155806362620151832530204339624657578698481847118170574827189717390863375397914986412684041435615404678127459253760458576958931055337241293383789575972121342182887209016615481098154267055152722061245945255315339012969525668986292010324492160628550860039238905615056291421056084951581344710185188774658931328035588329055842541173128568529595436691174439543267756140253774877606003459364709774975495899092271009795974654244140192640077339877804577278352916118249326961353236997116383676223129639555524018047604794577673994251865338313844204254496602601025453482724324342190016218242012888793224270242244379282768516470852434565549091519499245499538642716035632882693467850453295944664958224233101075865253340339438246811923934901551355134434062431712937958043105827437465644586300217271284041750723162098391314354797068603067000612081923283576341230918758345635659307514501424304408929355410601941848019225288541850256486051835328777921353304749066144744027646845811499084206005057531765988621615298449177574549809980988125009880094362050200897232895104188859836587107845196962762972478233228022901122635971385628671579908966012814756214892225700912671503175038127247619196681520071151663587564547295744701634453412033305651555163746069064597054800693980078570806355703428187757455639191338658236935853379720120646677588611291198098330562342262724943168393493234992933080124983179415377903259024227990821471754398002114533647770819423162889969426275216545025656133284760175707546944937075344167681146324932573101040452675229760422818690750997172313284256179833329005123421655110115917127324005255803793565561145797230657801646959006487327240550173023583663245340999946858454159293271036032112430742910093882231698758937958953102874289100609251134176836819062570006781801548283490297153135120783193036441799074217125356404540422797084690097297640776801681857157697183923308193123381719440481024490806657721354471940160335082324947583020550569128556965157823295495398133503643727330862455597530250318396353173415821049263547031860263763039697852041548020378312955179244404528445711375684264030291253258585252366574309744995364637914019968947059285336612598268502793637823253407805486155501788483793436247430944542391039183713930089002534120608750244685243141338930991499175100841049872517411134184892266768565422810717738489953476534437363586845571120797804128340608620971959846386756763900986004702734336610924180375346058161372867497326239125571566970467454089684726604405787917713168584170221767142668868767482647414936832397276976161889832103082404896515556717972280034741686480042405129075970991671665132989632379903127765453219060355216743282466188974230039095586120791746052886520843525412632601804727700938696232260152025298266669108983348281034575982148588783709587265430628374653014450732575347286981999132726161007258588527714429542484575629183507664295820539652536157887716109976948037021208500753999274438870109733054140839631956248970077170067125369063384251326380002922909351810346146296405802606807250356405824180762353516214858002137994570705402648351671741321475690445982138027618605992357600368552768172519170578002611655180592307849358643228814301783657272228634276605486623635442067944741300488635153811765566676511743142942017633754503740091951413974789223570189398815427014313665336966135234447704215441299954558867854796804342878652585768434556571990936819584212858779806129566938610874062808688202233088572782630859234052021349956940529246427060513270584285656074722868345009406542651099293634542483716291937961244612568007955928779298353155395258362527582481813999158633595335732429948417067352878912207623842798536700370647084475268792918992623164950312769109422846980928594490841410490660032501112100793704701115355183938452631740508934678348606160728200261257141144415426443779471144439151553478858530621884215378899296374639115157802180975619955587430884686263024213139034205219389596392712855546975560514059878441925817103468069830373435933699765287805426659312320663920372450711190378649118084141023647060471183890592892408913041552651719640752836876548062329248304997286436069932113767454901203736835885003388505214462237054948710254186893010698012179179839179682252091288403021033812456014305627897620005127824392871927899926302150509262710668876444966617826199713850464379322272935520670483815531918801509881320932895755758995867408249979574826398813772436518677757021262259321688630852118458615671917105736177762839993927305998307859983514764290745026436857689745422572615489379479828689394958221091174641049505826794081007031229892128305492115635824791449765976666807434660318163982310402455261230854645748688162928163375217722778917678087661642490401334209215973366539332058439455336392589451124915340413046038311223765727876170278691149356873013331687652473390036449664512525595967827237296349552888283421353374175008825082129515854087948838142471516643911928025942719999913879658348387505545690253638855086035266841165600791297684820376294085675699192553185535607160202557871274523299708992737792887573371821466074663965995144685009392677070139665586114436053696003390600464784324604883338377557723667530526500579988106376098070707630469395025711969623409666979293098217035080965039187708772297997462342730170620814245403466964394210071178044234878509900085855627830975373683885159351556865396218815933458851118759437096680343179593451819168684913992872422524144701459514836173854022547976082851147832525153173028375858467427683810456246976323642898339866093165870469596963191138395081868833103027925770966414551182897580293577226883104452076452909913474143807377787073793362207926833184556248035414893821301605623715124663822048347059994298132905905360451966212679835554274527841171840439471135798121758428352749031349867641305671849425385220593626162796037142738015814902643809125137061745150827045721912741113489774949288731884197595228075937065632990889132294482092918607796364284674209977839541010932694357034343654697961599038746190851349539339361364082070171897330902610889361980739141245016031029154038868454589855720661309800049236585307023073903073376147188134336596959200433469902937267639682092696682750170487345431551382739580119687114159024400036795003106162511589305017949453042801108344342008341438611121520281541666712391220400390083421296933341206791707615737163028062370331952658551327432517751745033918294972084490033908480659967089677935374245444184583272906943095390661487525053648059780591529222441953582269618935894926978818862138468344218232782967557196181383719194154175549058754232105395678414623099402146592929447840660884065991058075795117334074974598028522802776306530438703283796041064237665505143759884907646234761297405313238580391676102264638818753863475409450128678467707031870499506365753441271358544509331657974518940268186919467131625288521801940665102623988689606201051091803511582206713507826575965254511094425576447162458147508063462356268458502400177778142371208292569211048594912102091248311929944413551203995664945099122099295322322349554099552970340441911048519323722363990967085441463085722982230195488288554021988004260860194579440251506836857084789266174902907780504785104183549264110397991976723756006014414965587773694263367385069074955507746421788726613565241020316646033382327926325261416964690701553175300809846796126897242728612450243098431178851716095464488896340821440447800508238467034527994208363900493195333975359817024710280732099800155332763397750956028511572317188547488724426888424164177345151735802190582158525668354161864091022399955572335129966162663286583840619272239652918596298860606802615325506850675624801078859910281843537221907587712096518113399263151260405471878336739242378746808006612325241313454585541718184443413053204679071696786917230341880318515028682071251868705756394806156514791469512358724679132671417198184399456571834375665340738194774348503844660384868971727201318992624472212611346897768286843913501073700125318325180243578907962433624145111459369347028762333627970856620080935860472318897098787831689274335031000346848167416871094897063574782321774070384111947310345215642388541454624514217110551099120744657829472954280099726264164578139538733145323404581213889555645663416538702157481691658743855094993174221015958846374529826718727934547554444148105297053290795398591520820493773002653263790892829216228270455888048163666734245406515601738485619962156910715158154533868636572535906914678844770167097104431658496361776242309566697923403393697736646777436369796688891586021298305543040019717150423356506618823174944607014304680867893399350403123048904747724291312965506847888322410422687860653961787047628123634978841109675327643377130277947633359207115706130314479873977905320813163022417822102653910155957678392954488145354137338242414046695257063170388443143967327437972138466985317489530826309255024196613129017296343752491501594050463728305794676681784191905045092573448994802800025628851464288048432156353317195549425168194831795434021693908291804547370333495922734466790405227628375774502929348805414156901503436098228351860727985250274726955793177575744598315587637956527656402623083973426680681430746532653212403603681697503493097596992194982264016634046400144644214390783797003224816799865132449607461270530077330053101006238893623768932797670677381246269997675318848616527455013995040514270385245036542884112695310723662805861960851860954537189568426324444022999077474513561561210990939471952155788068889224944171539576635520525064714647848320189716776768978402165864944171815431842056921552754003468535774519901887624441850703555757826225485969401005362422677863578593834329712939273726309310132300990161568678354354054439298891140878936168009519734333964957198543322641149518631084797072670902411902483474327411763114558489792059758643751046551259222347753390965875256136412571135768565835247254941378145892781627555002440963097514409550154622893844349339918993892988607456351010086443053180008777702046356533809919903676582647627180047238233390737005044708369922881511543787658900330010987405774567882340527188572386636241362634900875023540080062612649718019538452341229290449637238985765833687658629746289144442805184313752164398404119050176757937429564923488640391564090665463031175199565540011595230089473275059753441241242721698499595844299847643086912023019992783215536251949673462035021812457829618892966207873150600983851963815651855785446428587875803976489919494780823250685563663055318562657844595728505773571001651190431187207269701486242961801243055893988899725814271278794081128092091319588849417730775241510418835353584927544846047477858307644623096734409169846741670497568102603965690361287044593516066721901414546963358369538301854197412816914800520029820496979111292131101716911227485938139975559355367957835893441826338333913116750570575815314615842207154696531350490811014955010766774610747377462240912320390293811261640869415258426731460070795482265672354945108533707004557152743976686450713059892117483083841028738912004377448072587190789146587517692333330184649470640656773804828848801098157387483846243340815069192804150183114685229360723821644919438445660613030051989859552410232842890644118177203966120972961121539022968228603460545940936113384723046177156261487799564113779355401939941653444528846105463333265281487451182379689974389430286138076196879570753712600757069516011509334435173497097437859349915075800721257766972429143752262387036685387497398220378250818962452843978094146521918674473588575919658314254094580355786559245636311555395045478323486119051207315912241079076819569438962124295405893078233701977052993430290777943485113828893231673787449118922678435360607981157412961557879016510775962736481451389861637902210255943337038720267491691645199573222204130211723482745858581750901834227018826627891237994303121579545822328099683990502842113911846875651216090434052275203091820514644625291479661261143458314317067685838179671141090005278624662252182038846592688896321589515901103171447195169060382530122061012976013465297584071634377266475498215070324446368973817189036251305960041183791832036539839152483431535591031651579594065448929389361133130863757894939713665631264219458673106683770962444408135083979538594408875253858368313575285512053621847726736861204914693686700159929894027096573484107109815735616386203875389413260673513807781191333235640587254293539316312421499591349132962560877180095975405961021795651868280684031351171059269458931313499593276411236839609609614280172947078901633769830518955261683096994796995425749626799810265806156580035112834999903652107743740152965002258532385853912697927456651323034757029362997965940926460853570215952451277745390189333052755601001991017145405577342359128014700080594686394863049942387018048320983664993972319519793614300497558642568921189722183613059200497705604383493722366626440104230661103781839598462528442241391681440626563696848707666582102654022545010486691833475786045993276097333257647511944178142145960786796396420181793025960955437805201125764525665000455755591879309259175156169579609243539651063828598949648078308695402193367139364145315547386039991591779249167247232902187447994295887664865104795453500441375180358431492869967430311102491601281669405065079496353071585821345625036139018389285934715233565749656527315469828744319011062772997979764679525623820135053223527043767118136470241832150843793777532164609672143112047234817123205056736145902932370775245970639992758296137950698203765421392684543558136405896986901723484707958118804763881905309295880490334009332999147795666212060640763478735671467314758436365588828532673529592275825378606506682786234864675824178898403062248382893217505679213200196981029371891007890077298458781288258779487378352363406625316028365703851692700508852780170910630886962759700051352446144284713247962013763331114007094397066351498830773799789728079603836757887792518383171981433691363340873406364047117014160351652992651620162202450447763086428286574577522844071315255212201199954995376311898815227545248628863377830804899078525680250594262013510338817983105501969704659797943654573412654247932643740565212676826627653910792332506748864602609546997606589928023541075215633497677118948509192986420747930527843190224431216417405575569120651655733698770316364582275421037434531882689208032862699427045625959964103782887270648693723401701585405900898937698048883423657535386453219177814207223082999597527975441659951179852257508989044572758746909183819888214866001657764922549769089273694596527860656706152418580693694480232489640875939244985464239385663735820503649624210872548338158843025234440390928294849677256212434785066400351175437980092468987887509913793946597727549365930864921783979850343043287300343067915813844903449962383063461880859144441300496934546956406995410484101388232641995964792657560580770821461688649597641605140097952988098795956920738578238186770284827840357333161242136919295729042955091087369153340793714098484341283994708252044317173407161965845838203458036950139934445167048743512771059408014022238864659041522004478359848148244079448503282077067532741875125021922570359888082365193026876150262133285544435996327106625331593358825448154832735124245290187717623468980931120961163671870610382931113266330438336259306800583861385602051047868452833254451416086785310028949707779971584990463936172338233451403677925424649928707645343797922698064342454978348945768634697230908149227926660103769295061260828038763100545544081790569444544350610319327905414704547624558949248709376456139056347267298662350609400437271227528595247476707701426865991358855109759821660186364968134650627093533785383545450412286896150016653158483291530448621113089705014660038966545970156383936545627967807651643104575976542576784751233604658821610322317094744801078706437984152987196340812584903404784527852712859997104778268196856706831395075584740657722887663194169224195948232058870767944319741724113673653838488167118327411497978596280190566371690622421567728373810089893744296775094224644289033761972169298290614057944429217791849614396500266425856248781952585296302994493736739067060918711537509934587280965990600133060081193542369099342370402939295103453014152944700581478059041179830732308102505452028071366118509451592058188792054266571740746832013239811643459341890947252891019503326823168576242357785294036083545699473316012428093685428425461820344149578656399135855199477615716524216197094543157504744095441137439294002863795523862096850383300688938271149051879755031233968381605764138803373900255459612112666036830049891398685763414659739120240745190503063986255236128496381000390752779650647024442816539522718119060180901946158704462968191944578096347733190829387813593941990832538376982310353896995196320151606663752760074368760295397464589783529672632564989108953664193658211661673581436433999928267892954031671641492961795149188334578626431450336682672625331051820539188953866972626869179848480556089742607330590821106936521791967578081326612748637480688197701362478760969866760706898161140396467950143034338088548250828253929367621523007208211002249021395410967043673667922405568746784577893260340049964428733401074253259361513747687675959620159630285452411130468197801485923263582648629956234456270599273321072276776408556240355422200675489422541045750991915926278365464619884767064743494361555245261074946955962127668079419716906854152084211795982180156787389217337236843693509272172834202908336898072925086039909152976530489191335743562843526969535217394267838681577966476017495217585308921912265266183994756147973969308710277029835093352949500644196539589517463187867177973255232425570440852843151669236864986100901626989629928662496890768240880289332397959263919099530266547338104306485531387684366270764772524603909108993951636894194698600559049520122227012772920224590121572800294260178729230212191608382397713666432378561403347330046423907709390084934613783449440802122359463983180948436410808846038527926996865563644962499784574712772638849364250189838115884092101534461792444528317143818559920204804761746564341272730782427027789561886046115826796993150798470784303077413002889570290442192359279190337751921303705399299843172674811233991273665112077913667871757044785875043259114206636640983566376665416481829297821714277595610094252533900835452870623561121095808376524169970603033018010848275132880184841851352163237905467226293014765797264640727636886849602381101663518733387399139088678005683301395547271106023701133358608461971432167650655013484573294186051146409686321543366922501722634749458384518892903186897345321373431363290764168736350958235614397249281789463067713961134101458938509645657555708784181011755203206155311011421292730453214751179889742491972399798615545831280129449682803733616316078696699578925772909253105559572727414336674853363472545615815274466625961222057984099252135656828868799052662002011693703443633975304075638218009413682588343249197726819025700997509835979433500437031472518020390842930136523334705505682101170038850108305563323041795896261442849228107848087721148468781894340293689541845617169044499931005548776961379255300027000767013028235965017646794745552710109524461460732293581192104917700939899129042022934062275659315544601345089742996256415403940217227398596622397522925699337298301417863804036920938083500439632559757499306857748919403225483113997176865301327294845288782468767326205390322996338918604982643239947265051723198720938724263376826055867326007563217815512689517335664944225181525569569045641370713948925452425702733830813990901862019341675490559467823740267318403460629915381404019307139031548021497221311933868224927189495815279411148625131445017164594477243046732314655236824602438360581814887655825916261626933482267262363926749371744892643902471087217112144888340813704173626590483061410041114317231802001829567253884450002414692313376117617529792354583495556058770427441607435404276613096731290041172015826401524499209123697810728287787592527407593666178059055442940885759518325755233644224920664211842801468916253315421168550812149965278665395951698093463943647370381022217465764291536438262603922087997223316537371163855082756397677953727702820461314823710701569462421106198029057579419476924006496416875891732396636744349192458477725888474294662455628323144640512294251653721985596803101234733679643891681067385972515938157196059284294028041229969238169560782964920133031122835229808307411108917310313375016723523859509718116514926952639276947244222520344970322133018939809199690195572924179850893051266583841143981921360510811314686926259233671668695493366177519132865460358008979927347509876603411228805008047890330964668904503336790932425181650628646247595756967043039093439797266821928471655663031710801651232936678668069646070214319002878788253098543369301790710626464121563319375684060460298666515003647963170522089978103613429774965565878450420664500320928783805805600991169415744842766684818520694894560584930284677625635126113033070946192218922665117583994136758059004625782501367072115289503606911150773737706796787831219512408401582647045301443170448856751074638152848174243272540694734547267246711003132247017358989913139219067217763123138758921881175451428368082909935083934541299459701820865794905803519336794559233833340593684343473638840058320995869031070431964889302762468643733274968997141227249547251108959493024436010781606993525663027028106084118319846288986020225903242438562038564442419554693342771062920852923034197344863375305090653401011542100890599143190215617081580378183338021612530016195493968550359427758639172004834560083252752533906850462904356334987613029229853263812998466577138593609915343835034817664389502187591410944166315618848814972993529558891415376962757386154565549035936859353641088992953259253599988167462248039274467858171924870534850117103563171211129580399844833850661634647268820096002159167196801394667329200938641737163026009473652205744080522930108329263309998532603913964165128092444089657005018434762674891440211727175681579925777865017203463421625370432756970235713437506566294627481511503920775674105284935218310944559740592427228950600766432383432504866868390901255995281312632471610877135450736416018863818415421514595424752149243694953152611949181233312930735220456075186339428047943404507974405824104284493264079921229160857931046558743163450624186309051945533780924493688893541961794380936649219299192467206934323433959537559631722501689503804070749635731707407620030264529311445051676460234390734914632030549310352133987027255992159890526835750701047127144023640414526542492304536743637780868590332024436308249300511430783388352383023622872503385854491797631484684429069673351508993400645406723130598878560516369285497271388170174362559184448481984203199532072477131215150387587333113367510304355956682001154867666002264675368798576520748334240228013445006313905677561163224966125406940224267850753925929988482714709391768706117668712731372731463045073374889678242862477067309603110722604194673282352313777284053130893025256319957000558784723683923195239027730449691973262756885222839647397218382337014327656211280097390689723058263499725506834826153199613268609203883130489850479784939075319585670899600372264155981270418023840317260266992838077084156706784561359661034482424903268710336885571748467938032838719544637387161221080449201395305372070408351935406309741111632127343693665838497971968702101869662039423431035892552126989918537579590603712517815816054536706469851960198523166469539990884369634840145390582749150599450764463100850608746417000439052954506657283859765103631118563015632926717073562134583195889048759050415587654486513244854991116319701160690291672388311611883370795397416933425138132534219955564912778211927337464986969189128059212885478243868812528967595505380955225757986591958643814615491898036593662361143359150806931358161749633472343507975291700524820390142591412973190191011754889403036083501716386465939890992780799008970216514122479853038523254685068857312606695073100360715415567382280203732092967881223417649033095406718508763019963426009139358577899523970851229740490535193963368180378422902141624826916941889249270903222125926313652604230855411533797132564882491182950725655695077077117702236436625629632769548009985654391689850165228876731423396413277738540863346161853617012319897015845167279606458799378376042475930936396428294124941758050193057740576239006605816175661085690955519213022724223982992419134702013090383135730432333111666122214966164117426895688430408188029438594550631697696941830212545028525347853912325765024732521742075325592466364674381089944075692970627464199756285126666976293718845396429691028343408804783393613479750436105827842407245398916184922164394537394152497722209372463172360152616513079727029110789533612669180378779833320870964128441293822540196548632254675916930742170353495222180441636754984390695229271674293942315135872623150220766683901525167109173490775105520036616417006908397765750469692144382373852859823508275923030242386903902822959879163633693520861217960290234975373244010647589305796222945753812836928909297515368536151447843378734391096262772333825623651726849861427702818045221186026781304101337111601869448934765038732324735718457879153649212616539105300018003206357276580495340070785476677722997454917412780966423896688033373331568471978504892572468327040207192789063441137974709753880704790203865748755561676174832634117620879701384807106173533375687883922513354015828137991906459516870488730740940067661606384212662086852299810380958317369826166992613703205603970397688156913805484784958301065359251940803718943937674383896560577378241337904054493063470806845570849960107072764712586106503629430402721325812262219726711455004143913098811157325700340526447753427431945242743248203808760255276613326897009946207199188166794260670707816056437674436481406509763791865297807135361568992177124229091094463922486885792040903439092094719336580730816669121474647116661513476971369900859117876030892528738419847853274763929667498574541747276842059346549652359688487827946307964126650866280327003118416436684886920793006972542050242523709294848718602924358945396185224839757582571269131185878653616377672604790592248975975513303511869227448848541859244892315549874529385824186529501525549217746476753086573193743062241423089151014627913915513230590343422659362867981553044760091096937511176418136545773794713087723006178541161568244474599765053047777906692051524722716024731270867514452045929903110495832690693497414614954758612618902871041346709703502153906341399619016351197954220396020527684818468649206792079770459242428540127839662677942333770414557474530883975449293576452186332565215062564920696863365122829395790217556386890555476581520132179800704554862759922343285476666718141220446349946054286171128392683241298126443586680678864393046756328106500725067017237904084399752351846510869369785894131271541264899000630987909393476371693611240421396316906834484823513825102409732973242509639744447995996114358613414741238868855675438968193633769191540492897651496038626873579331086274470324096393933785190828498148014849439890314768483138668130792774289117859831245508631189507961929382662060927054780930657073758507213259551771172075716683054392874521140271161541488526209840840942704992212429735330243101218140956140335603643704232102515741583923968326202427453011500408565778904803082623909766476904604632579378207299482720262217123241619392741163770842566793553103682646293137669553210994668139255570604956944551866015438766871500992429099995722370307739105518026876006940400181246292058966876694450285013975576735779853477871545945790597510247783118531015072032284853805344494498379603929709340079892730294880351686275792627291656723745509894497470882282561756431276961519131444943457072035976855091151679096228351063139859919081461478746853950764051992090318784620913664862001935272720929320115632696990921577488219699416744813531915614800818988698277197139165108010142424230404863227476533685168228049927966694206764240385724919836846473913858460327511054623937970114851017059761338704700849314682544677405312753543469973964245835352528712209829888140684606464157299279930063648481964200783543559674077466096800759970523573820568456254925808315377392299721438430430951660474112136061888919850248478529663345127910567053933603373169158071562247078076890146848316822617468119125173048110417994974226450544379295011615097003260640926260705210927329085144173902039090400931163852123835245889267691432274806103652572163394112022137989727322175419340319091218835309430785775192177732297509961156323185111474778512685116920145271691020715593045926634364112665104784579191899631167818033468362312992829393864433448326935767030306967437832342377891742272831624433143466900426435383054198601069684835179668821915009216685030775549374975474490856638282536521636713080083198306487549519585731318079737786945897767224162403397712647379070225122574605211478822353487124372522292440878616365691753672330702461343301371686687205772496028419892047407484738806310906715800873615538342862942623515973685312481512925598205970797316579649072448357085004129463870621350534937008633172631328390706268695007042454658312198647307118304912109414363686424489815968427772926692808436774350209201669792447348252469566493950745095667952656297419037287390883462754645291051479034314260924302631008246937431496969479164011381778225120082616942085231046310131055338094185257990602719145651456013242996210162366371159389244424203317040853812332090343248124155877999903721936418771915786844253206262684706529794388701531041081863268179309652287381769789871166263894532437636404882363462288029804224399315851707501940534533390294601217999846528337474562949265628871259139128482070874526046580248573406125579198825565596582017090122261451066450751852549744662804414267270650102843165550839336829403944139261224266189792836754179949997270839857095686482663304247227579945127877290472706271343794032175801229263874133428107157693539236012412108042944567851399763071154673328469144462228806861441558461259800951279042557049310984274002925998294936629621436909651348302467842486844609200065618460043002268792745994867583973473073819868488724585953145485558585728478550103100221591183213168865761383502330797347481782272638641044947722552705225468603000681387651556440839337595969773574020029095669597172642417072756520238940055252247249370209442077578533361085497160880364527182612389823463514602828102492180535761193729837694538513672759151601745442740524097146593824600850416951808441371647508533374451635479379104865866561823549712632373982612638563810544352801746956502010938737420590424187649307321401057628000504847837582341257752986950346156296695425498631109073960000811877664371509097195379546234790921165925377363200893206527914852316283122002461718556163101057358548244212934691392522627239601994878471877744845748909776752938807434299202528308120197262325486596696741680169077994156825017431552306541538284316265781478221224601698664584080418969639617675854652450016303010524665536470380395214036136533087132007116862871391662562606939262950171280268199568586308074024659751112330410046660005012260660687934808308567158916578416771151521827726145596604696895360648857631279131273090042272162912174301133948875978938221680468506575937635889428706593621866612981491686993057686995184746560847006346878496620612035269772744904561547859908048069979632524422584561692639681653891228360422722019229603622254018355924821300868684065760465819844236065077471315067379817563559025199865519135499948677984741456730317289875350733160771894391055255898177754076264832909788652369932282453894018055039749825663766355481705775932978747114452178766535600851255001255467713133964354732630293100754581624167029876024410351599148611257894827375357488641946806773010414080376917338058572526268898122411399330429690423719357175015837879299742570540890085565590273429858423912891621327755141980711656215579449547841594616204272541297756019908257239527546254088965322546070476108314191408791155031150397628649821203973973201026366924346615592885786966533567128646124981722214223937266996014436210221999587883244402302512667863242012316339390351858024682651948229442938668228358313488474632415529552347672010063486261470948219327483267648796376494783623124467640226845286348033191093852019844337933203011117041687618837557648881653223400842809346425780250541597489782148134037267565606034805478286270696858849805440812688864346601081314865465083201633159992198406857200096346585513727076172340908174466593482778204780649640801020255811287802941465499706345029094679589974643640312596042670178232485049101396393012434576835375213839316440986759235722578504873110613500728455685221949181195554575761278075005942341429477890202437273176555352761257403433432077810952097752665039828330788108008788288191783387979171772326305264308036442225749772602799684355693891638124571185842577621517186899426755171070393639396483415540290900166612393327205109738377888278726035052881769345417322105216393223037842253767641110803801386510575919269388699036970097222060730586840423837059182193366780619950234404556122647987571931645130716080273817768698863976816415961038616686411507174573389294386926128392671650120205241727321318460967073888986414416911856358969245336894805629917438827007388001466214796362156315786256820052493084568052741674191579843590593419649561698316540966799560168103737903985028763103858117735215226193789365701267602574494703292405787157726954152665854113564601817000462969135911235232320468925443582695355458203137703471782788266639395702781856352266190892975320661372745121138110820741687165519209345657750899249898972967549974193060718265599772402886799235698453645715098164676562489427723738384346622363825680938351763729907067225398183920997624144949050249956617599703528497436457210913812312548595270847553214555506098536690177307065627628436385661422972416371698637015449449237864027122021938632047816513085166430420016487576268673264358680788070763851914929861200299190161283950956485824560775706950621168261201306032518054357930044689015617866581986319100247924747554604392043371491965485093051216179515940159712516425368332651296118276616424718595619595483681976568685586944082739383490065108378356677182059242534888957243138547946247737817146038641410337014056727647927965414603666295472174228006856474544609705306084949355838219729886039355549329858263737221219907342307701118713608100432658689425825404203564070685211243023636779519023068464341401400218237257334034031634080648085972781383996296122786663100427642963340073638006029287673868403764130346499379513330462444340832744612626954080413106867121747801290660994919938671478139624792614812757132113114829300972246692767318488470142583369720142308489724414629094820217708653347122040998438818158248365182008616760502343965666370252127068513727432040781166544550179143524481164262987125063704786552893004495656032105139439997695268625108829957480867896081852976053399315551939263295232911057830371020239762936298417888300564308782605655789729003320427244863712018675228420149972370255477888584624090738121662971817216248510798206765142395891116644552220451177532310107956666737816231627731725129642051871069734384919201124448489796586983062302376597976868613828120724512103806662319194349135222907135814904249199739967303809672805709715247737315154671856018638086646348604338850632402022375312122405653698971599666825031862210517782366526245642305500087242441088816613013888122782291001663247986605113880734285357835604844518575395444917245744027207436118774211186306215823134257831015574560207952796300717831387820118174111407780130542449651917678090619194296647224495023659027522474891115774336440256500811541579392707380494314169672892127355500683913921070137951262188295317188786612151570268558773227541028164458475367775056538767191013370324726267716886871733505507192977242949062305492769838386369764720891782321176833196734935950505352398002292743632671162185302170922273750534410497267245370456133703557192356993323657565394278578178532990130667527678572573242116701793487459721948729609157070635955481580222261680072015793627269488828173017726186627123900146073467165330298249222548563538346405363676349919496842806687443172850297346356206985946286054090085663647042947642432074925906044988986772040558953107937835376584066263378500864580393285225535716317382936676013713617053145732781122148498763925076283065512732422754644164943718570426264787707688984815133559591241749536253288111389066349335583330217899075331461285281006606278892306875158353983045218036038562406864557739910887410238739410525930085790349670316282597813877828710739731512960528499869441471597192351601502905892621451893086379236894564505738758532429053891510879671872663325736533407457480378246222500725507253222264539801777264256925338851088350186866463848812960604090209448266857389652517262582750003190672886392194366249374238742286651790433687346515096120108124653747464948519668502929604030566145494367787911618474665715448754350988225796426337117786551959296005402604790102438726571507282858349265300308608663323549109510241954433732058119135217404162942157702778407066588634587587236535079805677835085681967872691901375473690308235671381316682723743679705986582573925111601221719239799889458111188034534817874267681965436353149827757897736355141815124379752260896844584070304469172946002001817900136382031831740041976375216727942957379633066646174382533967966312331484311535919767384194530655199504376375833081130146213255136769348863545088274188613769978138027316558639955747214503619025712134653149632829730035849834206446344527075547367950461046412303658174788686499765168726725238577590285710166333980701681667236998058366777079287451452922709942979572210939903071663066448970497819558186294722443728922337220255912615792328715527662913211909299013460544505438100709084287079735690159721636965402471076225558533855475196189746955476092945791124285327095213608043286229627219557536219401002582594994423617223110183900626696281915773137109255856959333398142883762418474936065837966054700145892050377783646473919010131062848078678904170219847396205727894353475533102916415704574137746446365552986741304047342338189726064859280260615487922790032158709198650715356461421696479033834997348469050516750886272236369759277197251052064048641151599238748382334420686226367145757552824472120389932764484075170516738327308043850705889398770219208081365791249828690531263312646374296720339210421838268445563724334457899672230319884537340629260387938553103727898977118460666694484850620765194367348763204765238300193253755848422451925077874833616103980720791833271601466584659442427434514616694462624974648459171194475762964703485052622805441901680715587544233112893593302093334458843954939865427133579603415175340028075306543759082681573192690506447064850841651329575846941896097304406565948628986467925237277808691069837086992497368383374214714902554798886393756904069812576750540540687223408159177292789335319038015075237928075057254796586081334791376729773624820029146646699417361379737084197347259894670378177379485134708804616068552847331854760696743133063449418115621614761129442902677526312498703499816713779564380435378305239555664747014315591158431676327806360262504769920923260038813741825243386728178468528530328161204926678970766187724213228773621391297063620510773654917407702094146457809885190457534283318426206792814279965882777675799104877865357481177904049980471807532433829224742889286631015226579601673174081135354973022907187551504579436014410694582449546701486133015233197743987156930928539228941427554665129888794312781685877640049059538221485211005249293041969696749205531873644947003468833538257967457022087695960749990881303323144090064936563840763703692840006447552706843841455604530308819782754312407099717047789279953906249731051361336062613244269865150237780634061472217611161510771643855773050170929778350917596902745233941843910988473750362279810505596973682450945427017002256745460710469722633810308094203664643216815053920200511213277910959266547145650518564865042476360822493255339990899355853770715905946846412521158489291211418234019861565669575241593098987398555343892765766210914806183404099097309320852262106720297521868313889602636406991324177525456910796591259010949640282856570546591820380002817911042891212267158623243491367568734190693614432035227925283745401092864544767785048834845087688873373090473812845015552690551440500101950563611368628600966894985379186359576527779412708126459418985550851972881227694129026407868523889386420003046286973597453183163251006825468280277141163550932215682571687731980885050446725343714227525861637614615986793959321744640956101240008643015653843403875356696799102874203038474275017943364884959592955245585060272806467373321580051375239897157751393572184428246282798733617760531575636136402815185913128500976155873782333147190649467228523370526990971736205636267114682872834108260584073703181070123942864711319813592179739098041937730082137229832185669406810773382334660237132252627762708728553417943012590371743182325618526490841193290262444326312174536008867015457479485897555433858538603101856316414594597675691404940394369429607106024921253402219929329264242989903843301790251298506217047680904115682470045348414375010180844711450942523649182736768518513669838937439406653003845033040886150896448042736791329652668968802620394112076796102431827116144372730848697893923569486531791707246438598854230948562676652385924419922772443627461674779594801653360912138795640757218076040995057817940269608466741399154829757075783512556325221096340398513371100015730410842685605101357171516155734008615396396945220855556418692639521444852067910109768856459116217205301587039547475256769025627884750482554058161836163522242126972387158393038715678106301049388717726091479032857404305775566829114879408021387058588738751870198534979798713302690018797429923058713578166381714905467177932761102836760883879538798830723375045076232372348117164670528082205178049402356780115511561486538819331412055871042196812847979952676905107449528732945804039103106122791136169390652444568444677174600148175399598123837473667321515661859500151199177704746892067821029585710926822061508219348917821905261634337198723850879546050471292103700476884954698065164355224644576897716827347416149142276680870876605065798129049249490856794620864800048844933719705142068660603891615316280676842707752111047369347914875639876801806450025368542858124710906237493234387722770466303000245386762013359785034882348290157596531645358632136881964887066843403725568377117233975459247737914412930488483429029234807938775388396581340998147112248926218839951880768793879239729791853995155825432403880786720970792999054224151723740080382025035046623515297266067832113304904580166090102333733283605053597701205938050271081335382502198222008423783610523584253733310691482044979177048261979231601283019156088430492644515572158948037657310312013412566893387086247305369589075362417082346783215156494798136574460205514875342055672741627180171003553150912478938519307369233866500848812108795860364666965452006376793765434277659473561215142849872163097251604832792186226402072295870118029635373807524262155276754977113080907161095659747900841393453338942925408938360791199081784871171198187075082362742017001813231590984104350393590893280056605365081834418178835317899380392869113495854300555861051711413728695874440083299457268028925276348251251069510790376973441578756069723129532426113806494332127663623258839965379714730864073681011123134531056543641951601235916293923509645883263446318340282880093425246801034969853020500419952316598418415796476055675806910100837686165260932119844837304361949063742365238282522311539437743612391808947184224964441714425287035277104609232144403425410492570249696701437041068604521732757476861438309648987536928133834712024162232640837367215801941600226000113583338501913264408401990103827541379373708867411293457940073471789169623541275582311176426373212213602368231664005304040293217436840584427045903665194346241168850470084673484211034019552075473454519060303333536150153052934300258294633804607313804971439427456441793014428893238670831099840146395532611304756471188922154263609448566846701812760538954812152005740666969364475060615273417528765399701569758423998100802619165868965607925066597533168595309697182279337328432916047695189399681212881750789723670703796065151180686627375160215893647286395134717324935510134019092959081003315792950091128716988522169685612586107444575052096052724501439415664515793429985034071706636996999599144477677945274821610737023506728413529176247386741080690732790822122198937443403570778220602190352434416418286724159195589931993640471987219322430018127540425073874377567560172306160514029803511682481858534679204951936478114290138330720326780990974941907122805045404750733987857574303026217915013632072080329934892509486760511244271725039658598662378532187133621385706453459720283901447154892735769489339101960750739762185135347195662914467842118551735315825147680345747054169711046387785740714808588601735943998237372729895213840157840688655297662883325129772281734325815052767665948482897379680012124651371645796305771881954082319040126623571888130429730146186826050233409720101123637669112635022817562202368633310049115982072783536401148704453946429222169448123484930036918430812039090651498464230495962162768562795215716047008215935428570344775646932147041682439131480586702702133815632874623924418864098541817182290875251544338487230408736822786119861655999713529140750620538544445202917416052523295580401729279054986848067679591903536555709922595785784927358477339620655489575426831459822820002154731407377920491790406271682074795517354761957552675076011650045445969583672675667154683096415991502084387317738952084592254339785887357603723440886973568054505220114899320697413349129356323828520798381337170336371161175396819167556752793623417278552424506377179345036703969856385955684310156154016898233615509099502460868350299387135694963549139647550197640447275638059082748087994193103162523023206222228532070060158488174633938382916954401291865356809635522082288610695575308990091040357289816911663547421820832147341128447587237600870347865269407132954096574728199705023818085426873085256447420294719875205409357389655613372173679855067027527683409557111474750382886183192146940631938380668278167152403148097863560167650398368177572252209832626800459898656624219107640172954546931343775483783694647944726028568530345830577554128217295887878156864319659608828345096423898922827679765377481963230675305315675994415929778144049569456947484380879203584783282605300608250170533558091375377934999253129022973281707403924641523694990423831036238790410815136545637746124058479711428235928330878597106580103430951762873941006103034266829094109282395389236864850762655691939923308533451035242448237662291786339900619852898572451772832045279297541850471775939107236864776611619646042154633817264095453356156844382426525120413109981474561039634366144547896463817402688385510021092697568571494079155261922587256147104425969700845404427299648223333666310473469148996503804893928432729450169043659961416703456974762874069752001031818269293910559361024293849065534263977433570471104333186533429817275392217659243682380960907418834528329601820044166853180271619962540364420400864803150200629471215694064382281919255177937081455420521315203488555554366182941778204777601867583038803632219621366147633410572540343300798933377822826541995819818216744201604558893103116418301686217360354641301019230328714705192609120188524358071637292640315969803258272591470944773824214132120603839061650233281219079931311874621458375032410447867818898793663391602369287856407784734361628384120426337031554894747618974288568407883341570817610119846679081185731749441554289035804204951114133705501130889841984391824684436260749940156770068027803105282511681637379892194340603813147771314057725677473037095737356269225041973900421490604801740722302406837822995477908595446557301219854300523872829911731388054866826868746680777097230836089242032222198156493707133443753650290604599890842305807186890370304261994282998786581727951054300879086133030337715172432490556716459674834717870478585417515653789862725333929836751189975678589001151684248162823316959145733996927869473980406813340312120909199476029981385109564806952596516502586671510260003062968558162341147591249756641757064586296108801954306875160657197177844904287423129587438233356968088715935505355343278145222477814849474275303974926403330051340703113563034375078413443281509810716442362128980079293857409133976660901808389235566009157011556748744915692408225606210665227992534878206200193649604681307382474510225307663101600382547549978277029446871608165017524219120161698013234073818115746021878160478802677634321738581600527699652338344558265501801921406237546265631999230612132058990482120715235346554929808913173656050968187644033940795574948232683233605968734438587262725726540793811858585049691403019846306372132938985900306999492337182799211715016866926263976875504026267073586292616607818071051254574714672138385856780820507904852298200962857334982635929448805052140302425162049092456301244034688663414947607350692547058943255556658589974364334153387230004383153017946136923693226366587421025210242322010697596513761839368107327454955260062841202929062975885090543104122542767337681035242403673284584724744201581380895470255195141182560501356999882362200096662238977319087667210269447751111042340889641288894799115219743170993367690353193358355749801041936976938825432537119056970669235623535988786411682410717091560858365475636014488156681931237715216806601724342927363755103391639332408337354828753770019973990115465205660004357703559437133240332133864120387936974908066916544048221020869242339975943191551019329250052922124003276014740359337336653982603664693454541372832970570348524763055222427973451489596670178964389122044834673402848957282129305413247673664676115052842442378612417375460945691694358351435562699972045850371939502533926433045812780773582255413980369010158276535912757608931733571529021345255872816337636920494782361564996904411443901978197572159367879085965894378050812140557828206585018882887985822772728291571680264372039497201185445470158616062666672705739713910767812131695579996976184308323610095482775398112857230335800788777847704814757846198554806990500361320389964625999154417450866093457505361349439598181678646874712478005246872887370239338755238389822202552271789896743881693069186147079963713304356770461530032107476029080188680034916595612062727024139080002190103670994456260653432027048353155454032467271670746240095665699367841362375022438511920290204394223332858194820632488987525284851615060483374163706968278528093521881676842834168676574005111980104818786565721304580474460361488593603001843589138813427288443641620412324451186087942048892337615857841585504916723271330922551081216178882900637023348644044625401639927693878987336736578259165468584366990143955441389665211003621315468922402394330410455760576282125887389240500370252328055416772428611949532663539333322524002155625204504476931048242160067204897319712724358231553452832047816689731545296183663680635584211549936315585181029520995518070560386487458519948645758736017045620387598366573132064205212512835672685012453107738108064146283805013619907654798345293715482266107584111430035113036417338773683413538212376050696789143137657732991581279001368440363239302644883042265424735284647509656927704784521700252610239192139745181861976393753198986195929217072431457829819173716999388009448031802090958793940736264579156783580918470508496293165763185648019196087193668915710825863834942537009614648864234708106473064305017050628936429133438226863750373354211987414366407036733861299171111830605075588322222571331463718041831508361261892346252012700967408207470064786278596748281357943290917174262267733177018897049929338500602166181277887062053953620071445773445725569074482115025801791138414010484509599293266894651340153285379005156663491436231767420794946421473815741027671736040850330044503450952622678453008718512982367623538384931337684414127276850921443075032316536980657021663136096959211167794555348314700143130835078526369906521161839112442877530771162700784808703239504604849151749905625069171544122932003299791931602102078487764393025120213917420582508099331455694147572250394846237868885785526687697348830659971255542696711718338807558264991582372600613505463770774261468854620346599337903299206099529826047899256350079297654424386320286265074468409297719613659954065121911011568159712278165061712834042788909333866168907055236690251019688692179333099730591345520287530094357658135113168476295919487596672030269337716025668571329448266930020335257358828263632034715918826411035197790850681994911690456484907397935261502412013388796442976581977775464474461799714694150548396209695535920249333542456125131929830964654138662823079553914892918448496692079722662295395699821593056736790144070946997857340667223533965436163354743985341287684608397122714488810987827635799106351234882318288441691479170881819656156946312451776212623152074312123496302021209122230886763672366954175828042895474507964660146925990057542037624911675131910740703492888708000548692933286585071185876168363027560443565199189923647858713340379218945458192315497808824488243758286590623117259090582867618886217014098402699130156343307635791795107065478427261366189126814346399752560315683251948652710800677890592643750945356943855381035181769547162318380063342524081007696728472155357665913914105518278147977402985460351333984306642756420173014376622575664270342862889304717855196433871448352349197366086650527377396577326770536755621068142215087413603980629371065190095523448500342236163868251581984414894756057806066397909587146300424611227854008331291848778786222672229602453922053115119672183569340522090409891611717516063604339386740668055340642869508960558294069317961034705540499311578026301317832764745959741657069465907949760355475170697369358718530135947097055765913226442688129800923879471050732429811191684966517860257870282034007459151343945857896998384708969257643138232916036359530387583778449454582507503401427213488936855667187843226277802186536040328314226649123486558499817323098483079082177820403860941927031226419117297920978020167289905399053502428973392224707858654685938218977509526085194772381078566339553874621013679792820626168757035413519494036185309526463017216261550918575194365643002060857186722616405234826690925758785084270683430701941205300661095015098259417784790767126302010657815580247294412002033673860311101111653104166736692865925014251288994835935471018637792255522323348197304314492927045157216047004351702566787781749250207529067998106453154915219910678907886170447313435871164921523325540481266498870050316337552667334014489545293621664694308259695205240974589975372463899156127223952159398921508269890683688681613051427936792055777706352922689633516453393106692286175608839417714778832709521324548134949497996535843493252323371541090973822613755035462843219517087074725924611831127352791592490003941737174443674550925739443619745614448466967363512184210465495277071631325549311988289703523482079383689836891871285324284902627321556959607476404276642213545957887426659754926654255085244750038185559790589233471921001405225228800313982946762284454373758226267700828075798188922118033505145450338263708001237283572575407503924693407306560672292248429655003437763829480282992720014670465104685330470935921290505874677329508763159411659786073231355591381970440244136729478194696901944772740659803339198319324406306423585945217446871049201732919433153885798354952931590893909097908766481560216774275842895704349005003730969364542862356748122005570564980344097148182624760126221759598382085376425775022903399359702160836357373763493919428896550382282989055571265520099566428431545186812150430254496857329800980540582261517867498513577195860665864697666251325872379534308601761312311101497311038334620424625486460803447201555495205793390865674302624199426942706484059601657213857400121884396842562257910778863520195778203156258637903219141607727102044777060142259924243642993484661422276160234751919940860859944951041137742716457664267386633368160460888989319922777273761660789013025580499744753898220866644722563859420426259703812660829536416232893784435662840374625945722157395709252503373396151675113779324459001666812913685509465895637135415815089650499807214674201549311438136197293769423495725517857829508198087667145466763736421106708743806525740513667025932495442510665233858503276796570977368016400181071113609805810044252456047143387580457221678590919151286310503374377117912092317094889144513451393832797945759882780069448041348061936836863306296131626329164304522493982566696587772771458655722803181971392675718194819818923666271788149246006479660362902394431002517606311653106901772922173097583366438901897177972461720241166237728425158919804624733641333687386189605764065939313008956713148270614212877648981705199969268471187224828722011393041928087699640916038732298068930027482837475917557788466077568550856964004122180065680023800295232453322461737959052546567259576108578174420518027765092716902231811290930986769965048971567293255815545989328970403150600704248196947776104628641807756766665367720614247444947516601341801038511005557640604999838352328738289431171983266358432897072586680650863233334151318882454095590565568457591038767873343202898717571318639127846612461620407539976719803538774093462142765493255692279521846097502606701952773751123666242957468847953271744294258756999697449061362696870278184299526266636108141951259777063617428874405902407727413414033392161755619101795000104579803670439259056103175081547485030890116924926928325024081394053716507056333256118848929309514467719707826055722558788976350405908800647506662131890222246472134493112637691485339923895293871209234231894011947253303637309965840141180891652000130652861511233981699096605014147843589327444923596282158466941835688136692979368507236019353320361167161707260971852429253074469537915140638132891752826652004633234961242272835240029167172838029724339397426965577648100401746864074532699925736257777085414166817539534708512307954815966699545642629355382104771565690002529834150667210303178750925569691775345111113429403086729060376165953658868105445433603366323068113920003394223946891798788583245163751006701825129823868810383361617013073474625595697184795460782312355609947476786295838416416844946084799646617082082780587126795042066588478762059011337153478110602241444990541611594625055054954870290490533303697698698873424169662066611202244936365442245577372443120294732912727278994415180838163822069361055629520568767414302397529243124905899058203451196342112597002875379367901257529245675871109632989069448310356140672528185593988422422767313044798069152980797734814217430170423902505356037078848321575624805205562260059638495222570102190844967706879766638698518624610767953879901332204229423417373613798328296128955950038872588608507740627242269374034888430116988516882662430019593129280218915148290433779354298976903795201517529729647547605924017308913461703100329966117595164229285404267355442269933622502693540567155932765334041058359036302245248460266736406396401546765394990387808688942783052399130371695220791078106934036990744168437981209061286840985921797582796199240003876610962810122570184969218985838560756693210098221425814498332868633517020642277477293224653320824575590253422273063024159207686734525982615568210251923799994646597203261640845588263246833547740688161608337743775428979273820597043971025640028892350192722788393621245017176091181662189722431791088518136078339823715258128293377258943699833611441567330320178564457340689810269045536368507892288990841738992711277733468451452607546270446514814287020848919920631973852554610610424344916309417669890174461433477690787238543293423957854217799446003825035276493996343100902995293763916792868236992753480297688873332748723485215046510687651093661613065808494776850208929406244455935376272207752683187591943598766274343379861213448757243668772576432027574482360356496165526921320015345924531231242809151333542950064379694529144524775443700721192698238772913396763124700816884513425842398510922020746754144814656898449043583552484088484324240375881760166418891372230470318308581513796058246385894738911458439131817834366087498847728932806462717660827323142237485469982948986756635417674665027989861432836365469170819568192139545724619709245541612593611832336210397005419473589967800175743596930552181614578231740281934618182820294330582814983247666883650846088460812549222153060536402554956422698915696696364121185022738857482526642826411002254127399048783458065892610649003726376601530810720542923181619331483435629543055301577251376911004756022437723419170135744181429459267189892800356798825843696939388090187565226585071789816180147725993423596705004821825102976744362670044060042249845974716159310550110317600803666371644015436355849952393788937598816739392849408332532180280930199035749571308260161541197362719306612760777651060012741769397448002647683607177446666560808028070065648562119788133791837082249341233416970337383758973777355588650199680703190325428361925749730625285408631696329396810542984659538897460787520076501580989169580083719391091043298437270849859531607348499169809713095085000918833724473716134788596890073246143922126049508437802616835240857247121281877649196384958487140017683929254972878397708589521750710010677375646273856549980877683504560118961127746066986283516704117494346748308104837601571476576445139089435574188072860618634330519502844604506482054949081053689869393152767614735639386486166564435533863946662387618908076527226289075536943986946580752867038971816022011471920669669264329819220540886266667732752827372613631951870140963254442730110690860766423465503678482857445076914177724377277822846609056255599733485208522251891965497030606452067054976288223679952471758120873264628720004220345939879647234228577990761138173811323996966340748446862891917660046541340019439375982869349298204306332042004916484149640028914541251101629330578895761519326697561965865310801408084175090277127575048302598798231081344012223982204823199111038187703757172165242948628155171878143710596455675192968765352584786346763283450421191062969441215388787191910823183171374094147901853832332493865028519174435016637424924143312913059327392156057022292081129470413587092731735134095812702461816757535192247504411481119211295706023223954601472644995521079946016238498959275663459049241587964444494517691339407644913720424692367936927535908442606171333790847467002110496757702390199577758567637939829965004789174144854017351317502097443397213425772983533935779053265649230210681189488660781770645007748327145096662026887024727444903654480920851515776403001590614651723501208292635106288677701114684431553432186312746234064984595732084643043528822023674499177449656617566363375611117370269273956912817761962705832011830002045382997099139693724565498271482511997616828591944884427382625210160810192591195170597892569475212945999458114190383909700498693730000592706799870903281171125335750890713195992929976486006173217718042304812102172321484292187893329068921031515481182249020855832532817572339998088936586887397595013176053416227861248770450794598854579506015995032760139365251077801987182106280003186964044579382324092925360005307127219082046120270505689066297369901129348027069349198909838955244944966722687375648115314182533914782234769852876757947074161026175028373587737466736751969687715278685302376237244241355153653143332360941173304445929506056571411361810883130117186503704298574616848217126717872333421967276876330165584681209454548125046124615250775930062991446036524465709081144228693159152609767824949629012142448854722467481281222187779801353053972472155805967795271331916807719780142309774593385205193073672558281247372438099752587854564161080302667451031730156574059003205547198454102111398927210500351237703152028866551970485046703062746745164966471864936643619644318706504520117219101343107310353909153394863898294046959339676208965118057581232518302089590579168461739316771483426553798451709608043184237043293654738996442747299345457045115983804986179154704781116575250108427549968957189869437941694124920535638480176280599640362116769260239624162496177150816035486424454372319967191869924542207065950144418588353968566214991866012431361754226627147095608336479296562004901263016131090537412187259567129511280157881541762269158153790745541910485433014675607578395358649228686364748288584287871814868356466785145918798164617497868022259920492270147181146861453153420479739418927509119851488395863348240046923406446424777139838145141448876972760357199539866766520131026944397289563963154250560301810130028355219305331729286291494217211532606388091664784948461452311344505235004483718149655743792205357791888708331198555671988128364243114057917823829482564130180283843315451130288008287321856815427069649218193597960055474638105128184692923336742899040160895720361801594897622897977171608852742763204587100740840382078135940528051655733088978829218536996202249147698570357375255342269189462297938284982781631240289452672506259154461354258968217168390626826609449765862485174261942003634121477402247933749388064251929615343776431758037151590071047741968809243677139844700355558194423855041543895464065442316253151815384274397794629221217122698247938777299131453788880270876492533227860913323835884113702828269854370821098920837419636432812959753944327959310626029312363193561990897259908421003732052130063502479137651837725146323375120963037261196467132330184982172201740804985016873355529470789557313922328480455361546582045929367843159534751579395539974717917149081141078302676231953805317569485831895067453069472710363830250905594722853794756495098962339143915163755623836667544557107319727034236621594268798086826536050426919064936126375166488148822680013402588382911263076621951385594958988531179135891003262855684821480308421568566254478249971201123417916086902379413664086602166854604140126655926113683471756985815576964050369010771187619171113091188898756175363622832699045502786010611558856418902028068481778263915982398306034869584544509975573685055742995862841648972658600497690357226320729148346174291121869485294982668984776024473672450309511364153708722111106112576871653388083300963043999749707162914048349612499867790155634524811047949787861316359534970240852264548773096367223211785947418037577096808653744960814037322520464987868399776058691648635794618808454461179645278731254895287689561037590472079692890484880889201840568347141596118144764322742776657160063232975996999643174356489353475687860609015712357147497896442990621282211365274330839932421984299784536749358228050218246116040412581754996326927896897334553526666607680178705287921921922026970116095282778408704472701546461983429727980699448212719662716186332239932861756239523502119066280508706631756995443112920155449679182891611998714414182170560315687662009071144689615006005663008704475809877178036196856870280553949787748750477065697085395228511565924373864905061323475677937788770922767649354058172696813553640369964927064874364985767613844333008680484435547461891843337452924791409200242658211976917722811607969577551297703449787060562804001253903983936169064315536089544463471643414224078210207960679887698520520924839995382637485546333970936850329984340884984222376069194974550493887843195612705586625957645703669383651830996161050514585611516024222255970974352493084317929740971756263155763343212997083498998786664924868915513346857199329402868805946007602056509679602647851633835648474922801665431176000802881731441831821081067669803613919143473319220609469918802566401360168192616395411756369066560620518381418992503170821871973792598065774864141909132321241116598477583059626384890582788806690179504650594566756891989498302510959063033608626451622956306131806422127084269600754448109509417861308916908024112052713832942114405180244786547949210719063430333905116539697658924380799135527298579648123602591367397187536664387751151854948353675219487389419107126665153029632921630303922959379925008911933799485773821820676272671757859877880588756033883078906421042337222239460026495466865298953712229224473579410308468819013452321468501126300460274494223735594665134441567111225122639723334731066289899197221723149700119390989723193557292844924561977676135307856981403858492414955646032027541704627869082186154843271910854466373134036305808516654666381213823417977655983312216065815207431595202656822242992611065026531239551777273963684691678256149972239800003032071038821677970771435048763814173768346300550591192094365847919419715328137494941963415875354143342523287384248324673325891875028182898856580647609281765547634316712637022118017345509048267468617515796877198662172174936443144182181169143715532373107826866542748330668692633062225779199236645289317529997560677451690115466761023808219427738333295628060159170687009647532544530857947877445580856092811204537587047624184370718643432773813158181865488814828458110994258854298607785471199279704876911718476846086458197190666625445245842361101402037337182718082726401957717384041407759797583797532702952430216519702218911859317715320042857900336147827504000733311512351889305090885614788031425726799639153815723883718808078263480563311230365505953546902238415706131623620968861512446801296316559963932745675082294252691701586257753577302459861784113166947716615727031697773411585276131744084072117370416961219302549862942912683998819708671833650370811107369562163701432692478928198026896379042438524156325649715630329757459199877437133561920543660870769483571185195216450293977447911175887948574553015847052239944321236411988311476357880793635395869347115918466350506124086089627045646623904974438581140471049172452756830769164929235328505497676492786133096783402627373686392222666736366152851216790299140962301634150979929197997765907239645881399886550394604431075514857763752189025186619647063303392876381704003884935539109812619892287175771354281657306309776462174182506920083046164695564265931178482274736319226829198971469956213298713110538320171413231405665246603928242645282170712411112836926093546868720256896189078208084720932336717699278360908118247520996790852787240127827303394702243525645545663395195546294604079210261775287897475042697247899557608609262364046453833895775940833777643151929022519570111578435954696769746118441059546522939568746053289729728420443567963878953864172687185572052009783622725634953488434831858615247240809379321896683104068831104052383505891325572797880024548620679588107053896519498649647716363472366633385399048005871469600081707640887520193197669960258892004075024950502286717266195238784731301741983117374171840293551211037227361371995651194439167690842291612432032201946771379021917871630946667772474467076509092874442316032339977520923210260883979039440165746276555282250806739164707185230619621992411180446587412922871171837567410727973699146022372396240242151726348582240503441746787541877944206461885448083888603364611505077349202264241396692604303622104961898083334727221604229465724306504267513617129393434666426106135006130318276629580577914891284271096613360094436672735426734686934342089575411437658629297491410859287556339290939608731602126449873527318233215796816870886262514598004877252434841253504108238263254818008337267814691678755614007291728561783887003252788781734366882382176954331312353771763089191158681289339861993861062519311342989938123030518582477098756331841125016192965668396671763053706603390872334312555916807013272058696790952363783228010421586568708516983067887241832261131958842795443510690979691610848901167092701263151845206814756941806353968721620021274545618056691723346353733236210362401334399320627050963760832153561638588769983420672304859511306076635323496400456386369268901802624531028954066770394598958194766628077320578288082125438095969569842772171767309165730779264863741223680811890355900322747412081595474864582098808678131894784160882959784374045209609878112787096804168646777451982090364184738413505956507007530928189377675392122535534794098644497306723635097126966190326811704224178935513012572682045753875392123918109838909891353802774592877108668328243827459477091082954121359622158278598053370780340721819898435489884205520378241894522040113218117684107984272849693163001241218146475695908796020234050278220223517339002357000267435464113660299993292738531035919839576784194698120473512309751991310289090891993402861553092952334550394728374903367401816924302708536640834383706565316056326550053270111455558464074917438498215599907575057603807706861368287100241771273209312160935150838705818134662111647336893313776076399767329475284999475073840248386100180804959750048827445595082926846538338343662272572040922763494544594992244274524125318135096413260892071267841437713123772295859955187213138706851406795091306870356142957705335823313280353537780208468652401123097730459995515222765076406934347280920332695725187351798917657239426836679887467106906000530494653122925460953498088979462360517395021686138385274375128797103158513711107399807205594157596353625952122093093373157258098332039464525345106902788140142778064408091114258679760738203659767972251866169037692673500626376324357169608245592986386623721213640417475222611525483238816017876653734503543550549217231866202038835768063403390060187615379638931618026184337464436969587870986961089568334578524277792865369086207039585747125990903704857931908017483406486963072526069334999339729883413869532828265166746000062682085323819254987293100587415407419591254838635781149337528825643122029492025803464173383621868131177493824741460528227893457211857879238094858398882658838246302429188709499076095375183648432263652584187309325775057417195537697452945710934078959496439006788461860699404163971443872167387703337071247291729177911407350456286517402687645426435185891499714354919561602557915552380543601372372797660736579272318657152845221380554841363965474338918144110714528022102278105509047753478110328080990921570456740608777110066396687158178104371651783251916626167027624226038411279036403988935618307287509165612629043556115726911520673202197349002408100908089323898920028775865961164151297064459833112848260824456606377616627965851557687739595090047130301488011506314711351630246129160788596195958644613699255849022014951445039173301707333131221117929281452978014787590458018777495605053302669436094446633922432124604062214743821847742420192240626950437445225248828527089775480621810996255397052292120314376214085070064831959684818293130138227527887089926514122384680755518539879046401700569640504692125835232123599284781522544119137108081223390913880579300338799718252555304708174066363914498049534357263646628496250885414455734625815038042471927545788618539022596823291457043196748428444456566386691588317849140410723449966691208675133854289762922121622429271915243979244502773325663767003847680419433451158760223384578105685910895051652334426523614429476009937035153462565818676239182834035158517545186718796975248577073166001226159433343730417967338861658065955812322588972113536581888844061282689405954671903492791829800070281108585448289317378482798924874434633989100141623878434112724070498237617783223469943309083811792111777185147715771190746470172589231736530449290913959901069495653693951568139276489895792018509441130248854748243592709231435355227551431192824424454984320708225528898480418039059342395190239886908763985896712947384833126939500896102411121925576701118560533811787821226134611814092495945188203125689512457779001654561018901653502244408267503486197588565835460437831412919387530760478536283092992206825702554848169850662186939904201951083740930925804103421821716795206967114082415171338979027594248590290971597961764447998654547637814090828370775193565420147807385718637493173393902307589268773264275847766416197763050755921829657956302308569619479244072797711507698464769560037273648116970450488447727361226143429719499581491318106963265055179011675546011659680365237569115646486543015885365890846772588352441367702694945427077365071203809765433657021891638639096230234297417394873867676588026086939752147694362437480717331436970091811096397892334298746446781437564506736495602479375045488955686331881252812465508384859626827893460934638059615101937641391452010512162942359341893993381896109023017615130001747821429572580980913801620588314748885789422839872580545866205898802574210815029596526295443114079113630332701489718765735576961253298569042312047438898266262625883296727931730634024520566668449350197628388205740269298063341137646625527667490999197503250975750249863269905684428385520059392102402063354392795587137172096595533096986756624794147704047983073253310064547224426634543098933952820770730601793782730131824302226804133548270223611206436118932523737484908671803228921491877179863175975668450683197724394554659128542744259453053958175958781010981148756113583388830861407442282948246232419094257919886098410179059068228590840276569805533212064745397562224893551058026728144195999404795171861062533539156994046313210449058487618754734529828416370396069681980531734856549058053680299902379622630653932921304249181183451828431194289554844334230334145105994910343870845025422642325910577600979225595445485595152327131482402165807218489607138761555515186833835127230766703603488323752312981877581267120329720604928346915469344101934112593024655763910646030852051723398551797644603904717216285985700452406936171322470285575367169949128393660181791454270553945070294521535988035024182401324179520935987679618441583929223543063302004680878654366721938150045356056102282119132718764644132355130326109482375975239985496766389128012739713267866091321522374693439973110915437520871387202794880881663290373551556747120443304891949598184129941512689129581408278816753500133690745279671901318259106229843803008909844119276535259086792287516497086670878735222991990765817138781490884876888948539330588639074220798440962564601740305702456406611920103748686217835381781934592022919137835440346077229472038219694667110978388714547363703237233219360099675722949803402919567185097540065963080789752407938256369114485406667685788724211033981205761466745602665127754100169780525791185076910188071563818793318151500177719315920892534081592936949900594606596534907202008964150121508501626772076647465277696027164808985803410738948769304708322040209358961410128934660334851925780672400783755029132812191943524507129510412903651772638167114346271111939133187046374786333633904274016033850539661194067793241748324567327538223894022086739549328400546932200348918349798344024927036844442268741214896045399219112675042684330470452688937625256939012585309576502328216871578699112148821933495846873253684803711248919804353345895162321266364439120586296517760532982191349831317862971665298574900833390568678583799385913011749744104707705452842849434591934122720068545288062507071995226481720363301393724991861196315417490332449350835204807090805113200371026200344964242601014927266931282937600652461043430842059004720482838520506338750865661194327567504229317982268191807006511256685380467191203923779953190829037530308715737867558100835301253907281147631548294446768613853789172502813414909784824780166990905945077745933538866683067387626878648896893666758591504492541948715327196740802782596900686661228024462427040892132205865262145466583449641611828266033260906746246886116819821600939924102182038880099931602567370001007926537524699484232475934965869037176415548067113808197475122025979103917303230036960419654580847783475509956015467901573647676187358156442916824976316939915866257078639016030201678621283738777630240389085836992632718143693770699540327658312987647865650292939530634769569635536210974033270558978536791697892989964604232491815151647498579853361980102424062724333454943377782632521317790776145403637558020508318287679305561622872910338518943069647080694710869101763587417494605750845084398506501255639160729283659956410988040798206590419208416294456779771433250202519913844940599197855004506753779249418628588413108696700210416759567893326082297209738957128214713062814863773223518090395272234410282441800323605353209948088484732115612406383509250657136193946440601427622277095848849538998474682819732704833248820747482300640325376851799629898775560132745816675448869664182283825773992817830986390552411422620242603953424664652022271034705309313404803758941433907018229958612411424464774513736795971374906795343668767661889933704117765706863207873106523449077954314486912962392508815142229465932187371793375543873699088651903094368286693784891077130557254128038103186114017129175337721982207692279982786001693587981603319229214871080906553181922473437771657564192936715791812811043370886537738814340369160107083374606091530970442948103535229297875145319762531819275757913089356406660710697769565948311337891041109573662250050506521270749435576098698629879714824497103188908272520845664367280558782487751631872374887964211780118122892043023419573125028853836052994519103032333897798724494938435960792360481891440362882673633431106145906243260925856084393626657111456300357359788041768219793767316177577332715077043119825440687202345546478176985990153062441625589215096493935132934874410336249528424380049439012347824652485986054441984292350655314975927047450111455700108306014786643854926141475436378853487777249198124942213632079094604767677119506219751205180320070196410335812651503347946778432624735101092354082466820972424292936550349949686246098044051543747093317696606845564756145514530266987905301289984365463885505941623430022492293476631628416102465984815376936891106089028654249427253289578288429154444187831370980228644186324434517823472936840890963397898767474648210382178765346132891952832177953374138004974358365211804240209970242206616527758066884339626609876823898277926996665220612499506121157422464871155416543545088346390365754999507861202907933186172032177292153324538421085086288590341277341346216071582603099687987624536998756963809826510329038719309935306716664552246100460181966195766503297629570096261200758127777822059205392776543684449919989820705284676270338202516477578429833466780455885968923710854355010145654727960483906707356935472111140454721187506107197036822428419081079572009058273589448701856283975272209423864990122507118763254376224782870813296257182858981175650032927525520593619271938053460160876102686832761965882690506854025016064559947228411295137412209797464873287667031758661029758119290275780775883106245572819380496045968894802234880158345226234329483643522655124928674239927742452901732558383936482719163123593991706170322790565359396807597377329510149001713846742704883597460894655039914043870541512251933370882635773094223359129563029517307636160488806385657096660147537466381823085855402423508066299646795447447102269144646418926692929044750801138118478996567064935316969436510511605289761458926896156567202088260718351555883579563604013933116796379645799943608258208947642019327770585556555162422326995011784944542332489231110700380498646428422280517680665264006763914064336567437258055137037166591108204308316236629933317862925143796237241352685355816335644795716393756694469037491396088019278033868288465968841964545441364199333937775647813723791747393054037047305931351622284712073375359278787592302569577339525385056286652197224950570826901705315522958813770190453175772847177222407684756782157006072731334533242027738288003609753871273700376932319529807032973709224732151424690657975410064767507398310371718943159168055743822192705525379969296679614688971701545791239408837241702141922706893678364864524340431369325060209556977197519776871411099992451809361417482548024957480993352628718587565827783064093657636986793583933728524571100098602397280008441740403215225705509915032303760808112283761479793973012571395560441024456796336964732955664865534772567663504509065776076049964911473508521401341944861939066408271379787242742036063583299977424968263573216658342061306291294680661459473461251959230058466696466851149809426230272036342853174486459777796182800386088266133706661302699590562049708966990628546723557211820574944760625688739679560911781991363617142661609047792637080607870270203991738364574729686127447182221715775263287505505420619287563895492547207972066002460353562520602391897204496783218245034408710978093464321918082636582544040827755890412863818698250272557533770297748240400389201216749403400214077957326207339024124385918199098033431088065454994615665115082618909913715138382633178090139467770701477534529760273318707790228031248132528823456739155124490560017650146029709979938679631736644717177019722099886434291529622348028691097940007203253302091598250779213250096461538438451142491316283729283123727027001112919482750659471194483427798630798495997305343443242510006834012850578514956084791376990890505956275558435237942285930400795199374963342315096538210398722835993957315389438554527626081295644454088320633556197848016803542069685961794194750614017683818371034743246818932455776547844284958046539070492809086139477584538898480907741254359278201832910885314582388911081098894090712953960812642080729294530176265725407532230069726938022401972830484741633197159388653066474862276512235033976091605866849214480371109548729484064026056212354597993689080624829994561887304178677686878509957406032305285903411743856410776559438232753401081558267842194525390143963961881348638281260012505090189825161596122501388622587079834692276898297869672436273320716670311874555819729510277205147630164037116746428787127439850378804419921490335151975128904974647380679962601105466765630837489731390497306721571968965656326249988459808546346930568057381320754043962201785547795759112882745515373255833715287216986576905797470151787555463554101249056274661447566842854925182643659356910213288963711678123500555171375935387276645338347914665057343440032732414170077645202128756114566907143656581121570199564403332383792139250927500539233952447201923691344458608244227559805264751950415819524294648498518555518874682059427984330262216715581244332750341670415119055092111205376482982224123902596873752070473188825272260743077653891039278800649100477925319197065513129207781648697524305611154160512214241593991154469852096941633698801078628478774901253498946450158391074503413141319632745848733251417174609888766845636497112492213768956449459367525350540384734055047440775674513324007846581425053694551032653625058184472099626967125864459151723154897566221504449244893548081080208566100961345170043291582377077993730995755571176963777026919618045318535793786925637679698149685048105137272000503275406602935780506657397020255738828470574718229741767678057553358638427225987112158209761076561314443653039531094538365044473983242796478426940195669870776871094387539114748336488660287869043344062964321095114353862104619543585821776569682426756898169419122944111071269727800230808914033886065403180890712678086203705291601755126458214437260922840922667820113851246082726274947793736230016709017887209034409366924196243913786176790917307779810330027566931419000961232398020837038972564886784146112902695912400386499537912749247515428378007158865848619459198149935462578354821610323201930017899118072253679679012493616941088397296795576415458915075855450232811751806264169375164571474501654023931088869621912178514338819071878541693789851301819472188037147002247010106319628153441370209344732591281821827670870013824044107028712105692177664960279975913992627570192839969490769209560136773593785277340270126639438681814668771132191195187963591512202756002922759681581224599960369317781020293033033227878925665915836659933684949031079926841123117699016758059442983049210787790125509713121459800819420727444964102644976218322511462807323748530335508441961619065644369684883369636902921815837899461251685043032090915448325946391914026991861304925364350800765564595175929440083844144027711430786683287948603538886754152134535692314837373844122162724287931952442130785595171551508328167655272847807894526419333965056007295244455717406544962942223657652092451436211167974890300972791949410552873780724785550023873272129416100317374457220554886790982679486113069726323975682087232617659106295690730653666738851550944873246424724004091709379467677296934237362955531800942255199235855413861749669158331488326448023405366921256734480507511105805546280604020761326435650295054585776176918201360659323078082589289578523630045553237112515953833323533564558648495321808243100493284277499982292077505341623604877315729743363841449647591348075592312028974803847748138805404751564900152275524547999762537088724209972869458724169625782881236772646181642979896589545780830292443582584042862345445738115598996758652751338720659082064894069411357232393301954732083414649092760618573369015026050844746796618971534906650549551405137279989607079601980742737223560562092585237340723722706144113274477786307450649943893609403955819798834024280686467490254302669752977794532341414861175740134384818840523792987391819812648949469245693951510390715621201441789814991676845799678725668832433048687483289919438266854543213959665759924527966687589656592414812759033943021666047534632204610004585181742715650937345514814833605179673957595041103136008352304641603706013836951670118216862012637071587353669526866941842125314005927125773965905198505347021547512370624360278286436474683671270391604400724061408929212015793182266775249651856530809243824745642677650777839254129810522890328441721157770087195432609975003639193853014637085254684706077928655240152781824613873292169877794558125383461837821216831591986646218873209508813326200041853977870322992245410371006737500131355046721432544158637077661217375405861558626589971909349764741138423471679981843530221772072565238422645563967165576612933069986134675737684747492390498739410921892671540484218088609960424446940189622400214283672857024281961643324567648656647557910074123118151448338215998921344249749277083733721829577988881961531860241715416454939705021875613262606580122291721243705846643482669319613760242330136593141229693661044012498345289275228757953428584791313381222199976397432553802792702581182575106882017396169262786596931735049589020483120083226671573678121631341607942226388836391467129803288639434865313634032782856161579820248252048496167334587800192731248450123294294344391895744589837065250129311344122932366073655191347080312163478885543327464382779663033117935085392531397935707980451585973882008809464972312319456135580873243838326492684775497801844848306758817856141038447305875349294350060669989530967872356480983945707538795370781344610097884327850995901815783570343091934757695564509115249258858550539212576259328056068882723195523473867663498102652339376110959797900673567067962582682886564054398382382875715930007175727443661162301325398133640966933826988390872199498192680490522053335602382986806276697193075082511403727778412428624828339435810932087010662272429941308564086520028046458802549749952626218365726470612222865563474441125570665729798061325955858319126072394665486832447912503594010398241817639782022097184308255952576307674068873440433614534220593736584826648177273956977141373106418502116419091106806139158912924180765165320224138732529112899258704824346776301866822519693383915358057348583014682186457611556189794940976940050904953412287635511157197123905904721609218913592305958379719709366317737712436663914790659725584279387636179580800020766346215777683379970375859044614810576269302883834244014689228675482042260022108989391682582506979038997864616126019657701666058653274401329799225316995953651150536952969176925508297794380462560554432800544131234919450015912358919249606030303040425165060190347884174276488560858677488750849903596675916250318040587047209970102565122597468089883098081670481168586062600208971053333507512828299818167830467943612758439739478796419298711440460299776310087974468951173504508273544646516354994454225531151206747588573731353300022951426504571675568739629686949845187535269972549709681421037490404480028678450068709003130261579053877662786177876267581749184905721756240314667577283986033337520328610100784261773261461233044563450938616258042876310028688723773844679196040303754777771385095422817329272704731026492604671661201125753556585553344453996648765538705485100914311136509448759671886395146604688401777874436851835203025195752260602048718947379567082928792886891714301976994226597357988744761955710915326185635265774342958243124592112923529591767043158719186921306865550862287438012871610881462693514374684797904296923602563822921121318454830257198668101755188364871300193572123023561376258191028356457546956977263707668584578370956967281046161888595163676201436729562048320895339610884818651630372293332043342798354588032194161287011860469618108318213165425647321761789345868877581455877784161220758661599626694371751510742037791849983600316703039093589586449281026593846614192272058598091518919332274603845593157863401167898730549610386737256943214514267864158286053211358043447247553063634654765301252779386473382439090998487308094720703111340677478055137193189754399513812220504585005199019330896648102559901863017557968565899358890210151545132964280816115335512169783526631366014590123326946906955950814388931902185241807467706946282289109565724844425079379132797792017927345301416457149598995265271180087104482701562064361640848770215480632806889066928305149460890185401573150345387710625448801511948727289065045400133808788590591540237381713987034498890683647570157135525563904257220696970125920572788608761253438776523329506368965007903072249964913278814338350032967712452104699671617625959375568452225799398368821009915426209401417550066407782505992560228041250646037867427094374760426883342422521760809646493153571442243246167027392048788669814764984000447480875659185024444773171986439788629684265517215087175765410750228554294318797567055460940146693835695069171786076645183038772849269541080567518187082488327497011545149790293457310268173908232160955833879489048115936566426992126136468547648287276274643510725311364995573537039391221329353446271836400352814591887882732566571903151804975159071329489968471589521210109467776643547340953151203878640030599951170016536849201239951164571836040931814460391871117108912442904089559714803782837491665131457759236055977392329126558781599640064882000655980511918325519901876795697561972959122171637378537897851913134583019516200525798158581127320850692739338844376739332761143752516878823293834784851826932982851113320327560085419112917187979006411484424268896377023830441127190809899321965571264346771900630006551642707370219050949139337499145105527577874591045235464164305538174783789633962869696312452213233960288023067556285225596739247857312807104456297835023757249138686821422450131304989106161974077951494343789509605100831834326680049393735453625273437253513391486447964182776429907088055768877229032897417458935676024414232375830163749659002710993380427720741783636284325057936479839653037211472265950719948172401903243387637495531470947475904168738437964064549513466426550333181579592627676815315783453604430829938048672590648732742885568425351393120929428397665210804320034829237660712643371065590897254757841519421412418765844679133756426320270665049131468752488809391799184912190818151245564574574705959161601272935241913593558910679316218603012468082719895789540223858362476126675903439309169759538224125081828052655913387684975529921442781797957131990153889910240484967150074504021368650467712540684454534437266964928114111723201866429555721341745807623788741220642737996004192938467319691965016433136635905225804174728120632488195584813458448149241011591415875107241004584038409234045449757254114027851500150194088604977474221381420711587212619654319292005599609686467469890228768357590263554221289746708662682353095582396206580939782575393601724040370714258140297815460420837683693528012699347891070615310607115939611397679074466644430525089186629215676911762527081759648096253641823379973784127535566834202743631461671532735152118552257549015016799553375875684440208118104571724236970372547552970432703912099850844570859855702528960229852688517404384069555786587720521493129090765671448890245126432403818724259396108142080632095949019577016273057532362553246910526391534874388282542110383477272885833520976167015293502466628010088401767414888530897019965486076372319994757802578977797082702457862667264157685199077269690842868114915073869737487127741556539626351281181828258214676483297712347422932099427016185047588161002126793761581271011507811849552846494399425748099548387067412016110127135233570964276656870919363169759842078590251848510948020242885276179874841436044770952701828664448764706194893665679489534851815746140529700848783396167041468053146987262930944309247150930585846768242545708797109950961294473101705036622046764629954319451076071916319147866736998584935365390919304094892362917882896383249572204761534658280519711928660675858078347477217538875084722751890306172042576359326691669922110965883626387558220884518181480510593229269522417753161272662653624994287968190961071959609809142496206663784046436842178095185329201806767041877779315755302717811350817862454861382894315500518837327526294823481527473849768151574867856161197821918859702461814522292923897220183811155416897608528696380404231776648085900766691565724198838208165948859220098059582626488932068684947192116772449982028623948695581767843948243275281869478480934266532386036151812597963591244571902433990172670845365128367733263668253450174423565337004962463964645164854307002942736540696871430103591620654917188099413562595960028686908853430151217204714315814276111481712127853724498858099380647182980535495700894430693674098972784082063763007560677506576068895034069891860628346372051923120577835836692180811155144633711348366137633766722653469938287166943677324790347523010087155989255937387708229549756219286781151546545545645297134099084496823361850400542885635897465098590417620368968379396660942954365435161234747219397169282515321527011560313966561390850738605881959710839291801674494458744506772859360295726751353376919559075177162073061685473072046665335929475577473007802187465284112516041488331710798459086950031283696534848358948149664003402083289413528934242619719907176597861584880290670369216507186818411976736877440615107177135956308373626271738329879312235330222313377306043534169014369398798715507261551989759785754960451214937108166559555476647477437171967916044338347834645175472631713333096069064719599434766473241120936579172540461475628852045393374933069160393324219450549496629772604714680286333869923746285923437636908516506391604413419734843392875120192990119624220682922582784533448359309680502137960234252306491020407630407411577077846777517902324349238856327660717248945322544786444341698693315558157040314620061911273840265258569408706905935262311536289631451872081673964442677945352531567638633281950077374643699611629132475972927581923366592388517018359678552992843463168338247678161250106756853214546114265692651182316456680471196098025652333777719047151146670570300284934667698077963847069083417971638251179828889552051521830401579929420544584007911507442872878224102948869388810379747900839614932788329963284352276433077185906759801183826726441788683835398993607458827697187560394739448164565702148845494979848242102990082892149028992171561216619453459240317181749714420308270114667030775633329447390103376251925372912490259633861378946417766923342419113718789769051848959268207649034384664419282568510571800851977715092089876385849409843860947714890463921891728782582995065278361208082048136517538848498092323658546484680760795546171421068015548027424088156909961966626237376875393340664753964079070885758989747544217634123817409982511975229794708053680454478368894443712728919557197049918043054320796762085224998567446951891239693451700560890757811708648111500079612123405670803377604116031464136419552144154946150774932121623608531136882993851977064752133456781519837871847312478572431938394364878930012160228714260547347501760834300482833581379307704724521626605165227759684450235652995492334643836289012718217350497609724517967375005920434423382292341910921220134635265661157659996470338416561782262419234773097465734809628674611132613258051099475463404651359019394233850801911248311144557271593976976714695435564270599831032554702734297653222258063703797045055361749852286620567441381531002373980039861501128409927106345330127519608090054118739262111894435033513314625065172925396668410328862837555821491163699024844424030631153100700359035403466369731439882126240906270982263427915510958232567738893807593743338158670673397985853941883742160054437170020089052913042061102931817998553091253383284596886910804675582688925661021085920123446676603761929584905896603374529407625375508033200878613062202453352662586993513095441415515436642716574837782047951147206471892094667788918761414671480357222071798132930552101145112782809953631950882919584703527530821724927443613109712070618497117017647748629683555641840896488679240101800607862998225681696869708243306135136439892451658858042400749075320861731992099124151226030250345317422744401446672968169786428030904429033730051825111192247285647916835534636840959242039242693041259058449361200375839189646208323601217692234764257912669635909508693216746710338531802318095734627075307361425833480977947194974426075082915249568219911183409019227014889644959107850902129149532367615648248040559915105235632741246957217669642395239354340384331769055796357142686887781411353162997028008961024250338769487029566174479024961604358638175447847045712810862809668900853389138257818152648527479679672002705894404504360460929310808019412784597949835286170398519437804567782653850430607763958172486258060640529993659261710168563339512170975709568526738752243461135136870070243197686071994256287139468629853773109036612883735021370103463217368136392537476746706041128987819250050678508108614816282363166683001750260241919199601503730071517957788162722624427609807813161594338141135796535800918162264044710866661750042262778768181805860636098709457938732257631672975842577889800108365667896166993855243091658224387521899602890335796571223293923161575495144847274611162791418568979969212499320793676362429031328672116238550544413040203868262266693839674963253744947260739579307021163672680214807006958962512381944015623443594810404463169644437003654169667395166310510890687122261477794891040425514275209754048552548866976560416817175992626906884022521220615985100340894890186700931193094068590177636140013984816768523117451218669834843514392735414130239208788837528737535604092149079972695709048264853247819443855561296618423718208266564893735634907404568903727073099433353208828083562373717996933978843425458166329616899300443533912828805642440342073380808619066422517680486735301705165655998334938825025673073076850464132967362442501028730664022428864126890008811489849074954262075845926603673672187789126681631736632090612111972745833281808928248039488287883650358921959982670527347165445820432104785222190960128911336445733131149233645583164098622655973705911681667289445976161475832759001400007653012725979094097339872133622525382024182780863119227479413605389336111953205025617082750023833195459839534759698986399595267446156456916287001347874845733175867585924225156627393789347199547627435778151577945530451411784383124838943253981505391576692538364522685027758840744473158422781115607096223254903725163561076395138269764598864720290439467757310755935242062843787741846589208314008297249635518057600569508673515851144656610672777551649976703367668619896117487222122963419877657224494850881786013955005948910018189183231856296111184273833472727349735412583443208420597040906873685964991032693519634868964223720626732122991080366537707460414377273893293529986470413939209486721396859753012631774683073194607492217127633773764162732367795364143339249279596109147589991445918507139574080443912155703741869199041359242364425510021732876839414496696475688919398013917597236801877647778365318982492916365511664516370460691510181337439777885542448196306376192484161749924328339777327449900988086569458530528514080352736723505118844295853691304581974505725264072456675978362331686704723388957406259687771605853665451873274560832466306557701318627528814418135932672505390923586635482701647037547334071827246056601637930388825020834589820498810078815599807218133969047664063541297369804180329402072193901043229899063496930756049976209443635128083649915031736652761107996357777967821911480741370686542875505662800187180122169289397238611328336565779484569596125764220319541982452437554771599985572536954192496078050522829237452672411237037411360109450605445253419288232032759997963451739163093188734860359899384527795839848210552943332355379837708828616919488428553176876184488327805451742217648101043178878318252831007361739879404430804569582477921921354196293034060611471393199697757529406578453520855813264128424054380221020193115197913295572518895725089952164068907940295807602065995668102130582283194980423562455905098501210933011039335009152106624399326217927872801712511112772773385913120832947085914963601342995583749631120505005284726093324640969454705535833905514343857225535664909772735570869167894048510505411657434971221646661261497680085454261435864471183350571000987216783026212771368696211197627661981664781214038063276770383841962468919253897147760691353003779474590807356402314602798016232714920109971066612115461249002191914007598462748279576417882958271002006400963096794694937003303682956231381294912321385755021944947375391355169451478633495069761720923182438722047776712091263722049110260024392094906058665893446575004131914371955864651052643752824054799537086863780463877620355108739344477255567707909233158700068473830097135751321074561174001703878888150593800880509805030990285162986452106285810873864257868370180921981449060793489457075101206585677133981865514985466845780860644622287246449748309689065378530610800629515982015284329223954766914611087825532443741587481872739766166962894883845638300421281373904280142367604878075091035985033960898938401668679031835678798463080955985831788841683109703136624181898015846918476872573459252788977658597179091439919156353613437843057773196973389023480646375494678695781772349812288994977328789821430006056016323005963262861241856788001517939006655891226419852562124567869921428905978966837365353497341195879345163918466600491869412273566987016582162647734139095078566732932590856163821401561404593482349879721989460674638918021384053819674786756845446020490300221745496708947110581220027066723760885211862627993862469221437972435521843568120991830282995998898208273965177521259793807370340561824042869186906269757413122271861349607810733499101604399820967074959624234304304437277573378477238409893179948802359200858176368607004837843844850692100302088324277557762411755372730940320781735163003311442010941518158134285583439240187798244916133487579227735859508732903246886385378165819060013995436192583664718811280125083095448352588133267468720889925495330513672946774887147719242006212165691083380676799526993510987040913081382337118719934658379302946012064601406849211412740014676593423400285921392070071297421959936150937239122446162148114668199771876393941654911732670473324817609267382533936883861699411933041118944570252953998880449348059955240133747677577501115514394447190260856050087794815914594033492968866261760293851640603358631373656572946638452379257874559243319931879950227658250879122186390802335180484608552267916998461490897350328020620768153069846382024024797806995817441560965943373276595599937043850009848640827123747478020246002145814851145114733150312988077025107551582698823316551636881089461204682269100028407765236459321539287554563352308649152477855123162276093485386443080831520696574458204947212588016290456661779482486498253212883143354406806919989497155429553629400012596397064020630036563289059822316353810354445244783544579558439430254512731784046037659881698639908604068249311758813440653193095709259627512335776162105170908797403237211627694284683583691683533447596296481323381526214205788162470199295857656822631439534723035339102792668428481721710992402405722261300705786798014877326683982433627805374290552187310088934611682491969122862010119412160497375844862561829821523446839512797160956550482050240781006639131055773916783921856622680132315957213824366989257719964321738431866536769017145661319906976923907666025360055505613147278788412184719287713319718004989686040812830546512597373321384716681603465669857957563018724212216806619589658742185782211157594801968847563343203802799779022159416214672694064156339259385730233261944633168658548148118180470204175812469471804215461349522930523171326211750523734028819272573816862114395518665171805890863169662983334914571382267136415097023458697676228044300932248570211190378786894917767533695043896657301048694667013523911343386047685645300407726579209089114944278653499706218643128838268228813963733912137257624759260131418136440615152864157598541117406188354867798988488625211293167974870942992931836972840284747293093601154443462869543116136469428180806723875426940662828318037516433362013590323635806026683524674070062816484006005420109853738191351878210440834494425272180856351268174279488892904537563489888847064628080329002526262153632107633793901492621227520029446559221245368565713331273789822320900335126845954700667285392812644627513047958701222115551134818077283619531498727519268114034267840354683756326042727017088601561405520248770560635029699900190969594383659339601179559670906774351405889500488178421531383563017617966177721143074199443932679887103862356623576350879893051026979991421927909658818810776202719403714279467582275728814874902834786108413646726824218413912175862340820915425622404717564894048614619147919016140542994553727278232399293694896982996908829831489350538225969106148668919761446118002470833073488313581883046553498106402261559185401605654282906990595950353267334799715223277837622305903386001835224770946642541969914980342345092912695537062168807099158927757128208723304518745549536504272510862576197066987786108973263688082461324198370018385875337902580486618128510229390129627922468239592373785461268252943884090615062577513763629057107939065733564468501023428326248254932040469814466419230090798004128645302227776323421094161696446838330331189531978520225891875826541414672611799883010456936802468200579038622219798324788043580055045679853137681043151001256032735397423431870707661113446216269068076052373802165202343418791541272424851523864397226751088675323899012144259892966060682682815476465898678487871882868498390097261986858121652507687844717092839201224736563107325480354910638918949572304374829667032344739721812180790013895064232893701138236815157984547086343572504754166942386954472200645417649855014332287351794455417983567125136378205803465403972777898764878823203038068202846561700777373667077316849711645068531832407318039981658490456492769887704397304820113072607799783224827214135303583541672213175732131590229602369190306191000249242075808459755845496484114165890743700059402367184545073100807198649832675846085420715082192681277428754842225401463362979071077690770463555835899508694368467781867722549542496312457052188079408134651198486351004735689400652296669662431154711668025772879278763385369363018801524486730901748379406225952321948103575483053481920800705293808371942616179701924131794969483966235307241061472725423796698187970802152320438476482216843604512635166971697396290858318445184644710336397766985143389762375614265667229573300151735052914627127991734218582492727979752292349507336922065280309601862866892501513414877274053279654793038236383424437553142146668280456388594620320559250870900615463094345670945730977064656558286054107247433891665613736222391728809178365398505426264677107322206664682758275811183787487756619228382880016036557764287330334148721635256742635967586458274060564398101699935271353322329673973290119785709770954489725884305829090232367873829286654788104734088486982609522031018289643900173506326964314585024427748306416274935088108265244303133477827532259277615215074457071510678086475893050015337877481308781122556661750293015461168535356931683487990562750273082885894828008066592818762682626790898899391025359794682904228096467928125593125283951543783805235384382278249210601572138009884852797119758462304648435231113454357846981663584602475657369834745153835521796002625453020581273925790128578584361043813817211354343349255536236833629942854906929541214357672683807245043053711824108511463409183936549741888779268726895931720296311343261036448384782558163855189089671876118647994941460704315705733581131741507901776869235043425059662218245449501879675731982649859200582646786186249200684035807518613972196478168195523369086772705090077781587180077760623945205979474717260308690289800839987679571910732761736106667402233819059777336647717601312607263370544200918464554074426380932791395031873213735784151302880879499567597342428729801004425136012231344128022200344387033560595780059597793047390686409696681177260282162076000814851794626052268427750936785372343675478532607719302475353024003713074104538694861482292173927460608897207805766631505017519854596165131646366776092758781068009960870304320098728411791962679902042845887516479586195435295044255664362940476116041906648469279391211733070479212281826912441642470427564581660504799959894950631553601252158683062747941150640348652130209784956911267730326277596298091526557217030646740224799185118845335558165144030268575601168492712803743620549174719187417666313782017088251575302851633649587101029430993337677989206424349015153849992895926170494359771751307214808626417741880333234710725499735743035659082278141158534702597434822021793937291580905665254943171259226240964722751665411727718098399958248397642510204729745089862932069461599899703135610316102709874666009586753027342241556907348178519206836771007648255350866036142152137720339239245062329969970198711051817048562178240709074314811045187042385580777328911856478523552587992802511137784128633547792962701998556036785304830589570393310938393666272343807939621885121912841917487965823493561957899786529793357675115071547939393278905440429677641871890591234630608546565955394672765285980920300110562250142542319487332722834299102120723653946808335641407059257645658648977355722343349204710272385065586419146429414524313030336811547702434951624067345358321684978000605505798386635598574979869651468718757750324247348407839825982426340390703628018350012556847523499629652884997381706918609962647374038406203866243439957040781186332684454395906438890620704244473674165012779254055535869337014059223263347935245061601201067394985807120698143414290865187698685250504744684699827284928540915716640818503642593213578772814927207190949753638016585139905354866470548055994936922704414591966122403902915724736711680687621291619976822276813848441268085176427112454693660551898719617371512827169358322032755587899817642214506921136043459290158357312833890454216747457975550183478065318740002252421756594313254785266157586482224971674423327667642180015464069027706786407488897773870938808663225523168365930562615499371262206475213687122414145764259965486583260723532745307399086983741261884516541119588547010944238375336577862853005891577961307094770175828127746167240581023641564067774683475771030311763899312609029765082846449487035645930059184440757645373908927492684302587842017237520108783865914449636783104479734103635455378565417143584806875149040584571214255180532174360756455455512691999814767616178201404051786403961951702868830976915458023311171326818267757127242168218763614032332184060040703552802902802513562485537462929060230057293383045827551194620978954054389000056485603141322699454602035444240788498988619009494227593793739418174140437755913431943499792762062084464873783618979261686242578484403176705553660377644814376413747583378814769586107252262230764369448391956470231579229598925588744717568973286926737588606579549687669959588959158833868018595979095221510960437125283865861913211459296110872387294702407197774817009250165433407088931114217871906524571322738976709106040706287343348976867324916248407349380542487631913690760923477831636878591200294018306870984546260380505417003327722894737867457470330350620158397424362877294223077009549661983070830525941456221325382154578618202396212709548127367531817910639690621845778952763747097064849964052189673287357285016011541359685563592685372906777786207433653764839467378304986973291766717336909550892000096736056486216495707251731228840086695597291502508258376598937541686965474796883928902088932599396878709787486140056445011042217618447834380456571423571006855686490119528607932392961864106616660592221255308561116071137284063163621081725064571082930749651251530014482717836645261691567697068784813250961076275914818222060375345350439647523703372112277395885873229070192956552949869271847014074601023654039187525556651973414579189386254750462360260368274267641199030541817330126619939765486168638280209081628275491191432579294445250077399535141419288457139646196219539450383753644680699937117742437592487061195182690628024935893319060169809761659075890628650217725438672937760302674480913332204441906298559758356423235114906023044351391881919173403092306885968219923471926379496697971990772721988625704970302977889380129001425594061254540749611292341665558173237715428840197149965197078789413404546625069558570446064030162020242852205543613162267285832771765022328401359450503597569573792844855788747280388718527752889441713575555990761366145679666818373074588213147849827740117376994299054743407376839565831672840850138068697053865479235716007640888170906784298173189395524677896847208001148024317930594832035125868923838978974848461515371005484910331260121847810440594343624648499765254195198742157434625801975797666738849723447506114710341593029836749019867369713672367876275399987996419903359211130365575593707602167757715887184910980198822485625032502044160282454307773122391037652096053807873961894395641415225133666534276227544447632015058787880332750922980080347432100537324193046133800979572005261468286288654021567816935887922010634033451039216747092060264736835008254019890884813094595800809586941417181656904025080812915328406676122527497949332431022688594259084189568047109280758797309164409129623655481911349097603642553168094352239123280080561416517596217977138929238476787558194255805531051503226886551860012854662069648651829221571305261327661754518247155324987214425737430027599567860605634393212721730192953603878794881815543232469625115017196390699606650513916806674862943433924195117435313348687108213110832300144184006072604997682377197583619902824191589737388354193961234032165056082672262701676620082381723768890778523407513119393152100808808727811112198140897398771603146788175727644901279759725202043459695991433128702688669935345282374058504524462912518890334210464866073604648379504036681552333741778352804894648092375654100090862676306224665034897993779288773037683411434389161994796638760769881566713764307998987320140565364558474495609562828886503135534955671339728015099076757651515328395014100925977954213260122372661745110839466412252371029978156252901899773282510003487595316159739240071411865148449282941046144384571949969515909855194977418463726804930547709750239164509260012302325882420147043528527267923834308785934122263575915140937558171895484557353961465242920789731816326527744253508367072863750828488812654475104703468770696674063502800033234304688389904859469129394865926148958343645139997568753803498390324197685214611681474625174303084553578845801569400604245600505562737036428191071768232880226089624667051446690255160865426359540376586171085401144544713593130810771839837408873897521114582504727184797943251602053347357683795405622835877705161961599054308600941559982012409221250307252144299424938343540202552992379210652948550084974177414843321751260904746547768696594978157083067010805970845466045628679368188919056873027587992636836435939562496523971200054211042590296427298063057669482131160423734776911688830890490479960154789050464909199595123795648092007227122650574031595990846721625480538581756183407622755232418257994601612730281290650792091027285185731149616108772736316512675405954606370593537991658468091512798379328322381972440732026852171411167435492822443839972564721523102254579568807804842231769053717437330117881313475766399076004413844072008171038524545350847218510858084969192771672060709301771431025437889757133061946453768742478104733862301042971868328531476606710425432727677026613080235713986577604484907421630318691732330544822732524960120808655533621966648363971585811294891961759649934753632796679062871525692402973551311522209483359974912701663482478079531654039149574748349498425454867808123278348714856156142427695313184962627675373406666568522704654195715357173952873119528616123697208442812171459667733954727889803024036865302565216857603788935551668489609216624454416199755037566060057311468731482435567350752658662428291709027754196909866329424791589278219626955691561021080364897619401826577134774596817523607814367693911509371359402551802701234406202328855019330262795830415951074586726850995561030893948450726692075476355495832374239707997990766011222309167789039223225640760985630348150099677552158997782846967458876708446576331877909715342877837584152804316025225784453054356956554600792094692304322739203328451527854319398047058112192264446857185416837052322563879333433267184653226633128311065093371758235484482263518992077929976093506607830551770067818074919210161997197819416994867661944416017141268444507756060005875619411507634017129058239458183881964062311358844653796513471318880208834203687874296889464450723700918291745935026359275635215088009954376038139933199845500109195023950982280495495977701392407230582229855489672984101655926178628622119806270042300467400598076567281467041764940045236773475261056542548138395992174945247766768985158600870517377131010071006995415845986680888095031882213567563345422291927897324688639869047938516974636803024796765149450987902551068316626658599665384176920178819307577780307926819393067453486400838961912521480603111941375262109283093412891698834846691135709672494794241221754026366545869461100364301161069658286310853035812624549885215747626724052743192368940455390024984248463976341167429770053614221281618774573075604383259518968057272646479855818648887592127309699707607077756880288842940651805409982767294664861168907946404124482535086161362547789126402922129339602039632886633157349785738846621734768793165626905696057595196055964221669030564883835698355552671212850715710042991264298129022878451916707058030609205146378438684425827777771922209241114022621624635224112093411605001978374305107457954320508750955064448627311285388261050796222331653379326041660517674137933478993656329896514818526379546214167816561133943522037434041256026047847333701113085553058152688866547325905599788946547654859337890425429642004843101243090468203461450808649266609149078300478213449946134718624096972293072921783874148924457930015010133929520907621162808149597943621215866728818883174462599359705938885081387733512491135804483969194308200980808524639989969025292779433307986654605624679541802736571949216014315567279845421236017588777647633076199655468627355955228921742442527704805165722556653950018380127826526407825899241440474965230589520445740337636680986620462251943626252067972482194409096703502819489055175162880472364360912772335709626239845478393452628836744151943907522695852942573261015593390424938203260473944359140924899084323295777702639284569099767384259582717770920175541562742837899157183135912789420366056443677327129104002552077613089007986217947317274306144798389997706763355422605982364434164677357269702905501724430138979332378704656628183494799349622078796751954061362580454026272114330947980178845617933691113474386539901856958637619061061791229684497321287289866983094956361123775262759032885393905166284843155037741421181757752928559291563793841009789457550901631754087661272133595442908010045684309499630464566617508274423495064785491153084188652360132469573677164250451337670925718053166374731955757093962147184777174132256136230260569451062617546632351347630059602952661121577590196350521516306746567963134542238656282857946901355086968331409539979634199586861983051170121693352432364726947380137754603493816742451208680508386562492951086622214563267794409536444977163507054860570094318791045895638348274053816071871345387369868179230623313979131037305398701596506123371261662432428511490234869493475900453657459201807551041153290305663282636579376876254816981081032503878943244158996394880474455849445435784164928067298393851320478665170385163707936238930817432534623303779817384256707288748716622932921683107203548326989571067170592569932797584336152235565638655554411896953672515550481882347272043821926435234937249473682869196946113985125339561328630873721975987853231168387896475382965857157959913192407719456488215665868095924580702434353160750336880217374028183357071661264485790329270481703328741622343357285650745493285185670547013187581883537944924857032135646154891424472855472623408068150862355627287870291115655418053411630104154763771823504522503325054411609769436511160188846420203800071207281588955133447558699528230052858325686851177225986807000123112422709335737051165923031490932855472516440661842226546219620641050545404026079956999335353927080620085040563198570287288383892265805611834858740635927155791664213565485446817228027273124394226668476889217260939159284128987693915903414021480522623485697123584882621524090485479469984635143620674858991262133073274515858476457440566843234207523413181178733818671145601479387781920936540614998772182511457478181585067550989834373943740240678411134548179879186665551038825717436363827387474008961685452484927704767070481253259877420786271384900012881455560907086510665008584762078002391186562718099366428326198845737619512218161178158658884674793426720865816546669402928930333421304979449811565857800234863638144755617830903780112594704608203906197257479353999376707018195154815670743808800948631211666775327546843380469916148268035021721913002446990967811578080121338382515616779917734561735822766480808813668043001742473073579251267258633867632515460606926428808919326291170888989062200551660456827497114401167419637900819093432008312655421148965557729610554704480766764446016309702250201396310993190697931731933877722126990106796527240061046007013914763720503289709139291941197366139958023180148970222396847847507849952342830898975754981089830314324297231548420323802460544120830213286324699992520072509439620733882814011583309220917955546570746118255931445867664534699747243995731169089150809963988955000196530609852433812989860665632301008536897617860159442262524875097248943596844844105630637688304022262067745209756614366706347883843436463211895926207369163650424532811023038677990253134624238367240965873382151176744085186811829935830664415700636434816521627521264178964001263854604170519432675322686866325624341811328412857095550753372605560589902777539949634167922270615045539160329311264280891721759131050102576935760721541215778268404885322079165391159016753026931823396982798512936591863877184120969945807593001325751434396939154039768480970957964158663571051250185367574282933484416056829519229672026957788137827748336586345458290417355595217420020460437791807209947058897638010367477004409091265509378823177653706112077994626576349875942935906891235260008651853916409235929611971972063488256725109488781552417605393172052765299812172763689021530637364092238733923114032646235193073556603547555239627118450498634531704646178532995933307408590665080180220123255637467365628630621526315843830609773258179346236526992819941508523169398514608313998734095171013174480328911762264154096427389343205311924561380750170640594432700004279313097354655738940982383380062701458605580062473858111148567163276245569813246892770647364994710231305568628748178954553355489758488836350243097782704515232566472323595866737609837536682146469750093349346962171202752840753908921679143378340817078692800223202349772643540770060719787421500259796848966257752311049717486964849873286739431636592223479538096848931107082630214313217203149240060994129935047082015109616897262470757037376820824322516001233532159175779942550128359063838258320380426037898567251086750145233174068878560088371552350966134123292549324277184446070343599278415988069352654759436410138773692835844077297087974231558569376017273907383283996954683125313815497802061870586429474667081145864554947052729676353392095019220256590771353860732592347954906761969396304708623952185271143401468625039598335330259662656108269666045007488967377597742525331693709582729079078791925119020315357166631586691040629021226230727733681674753396094245161758199943563030708928910367346684979938633260373773949256070310829602804132546319319669675698013305693532485115412906477301691871097413288906608455185493382765910573557701837296858153606594598908405156288556133873455128594811152494270933651414169605707191702757729106160542761938315415923563125503648209863642817413987098528747173530506907439499580979452510861018244925652803633320790514468406395763788773898561293363932538998377025208920385300245772178627491247460341140408901731305483113365429523894689708675849428837964172364285258528698091321016245295903996209714065633037519366329111302184547173271392269020009257085185859672596935666977380587835770958197697615427728836636635858778224298189576078276847183395155030143785163152944220403278660841644378824004457024130706853642263021901730796109614537677384760301222533030772676888257776575812641996869668447392836701374296024508071206938414833479848679895865850554270500107895063355060397189859809308093722973589105959429105880498594600984995023453052510103346453310807759177857578603901332402146065144043314082290619204753336457014128198100872061326706436857623212727039266237768198441125891328187706485483337616185344237354257327322518632403368806723203283263568367712454032264102648576689002607649364034351821676522626640573805451482980864457364149106930546164939825350462324326675902196667473881087137153375447998234864091420364636996758510550493522387893864738370621255939735584134660129086990816119571585447894705016895341768028662522373480193308492733057792479316982426399588190993804171638854469660789099714378409102985196654340827607790590241664583835040155652762339249986803384017218138953625725949277101170988819885697220700016832680847458838183538328225647949807840309759373862525768070443314116719911306427689541549261343651063202417123122270620054144204610515685294438969875691902677044252965220811667886844048631190206263371687191121542745341206869990582053665649391795232132873857965150145636336088087551275112569837798261871318847396267491228954089923325700267154125655240662353102345515535127144039365290289672564842573982965308103160111567407330538336547752724989073438382095305352678045888060212043989218002899983169326777093744307072084507526803813157369382396461184331575569819875372865901734711136454470664864686335766179287975011947573971747607503005061326324774866613055633862783625885918615855792744300102927397430034812182902000544432276281759788162586034886968413527028612498913299440787668538739330286401088437069676751821526000572075577777943514530253571071131659544546360734866837324076938963503905378211193945227135611390434446537367398180361202074901011543995383183469623781922195588413606697522225887401402313937625041426025215918183400400922772708542951942661245478002529999897824687117959750718356336007419214551480211755300477904025189355483962447458346733032312485579055411572317911441408046118468922869095191819183733340743734738957898711381748093013029887569992333102654200586670431362973813110924601451348636533572809412805570329319552236623932589772534785434286361041325238056223025326421215854823809337211309992808168553136605758779501660019262563554407718515940469671648231442775521091528267082784263062980715549200306091613725642888401494903334251203767845353949768603504553197442306945945304075107522754238859877483795253071953415759190956663272302218458871270188916602613411803380191016321237444235042435228154430786673595557800029966112211901911306595179245183657606629412104163780861962359705040392141961361556963269476962159263311800640460089275079771749258954548638939804793991135483034507467930773110155752370866917569724059787209310816235805668134188241789202289881632530024624298952155768591649250989786576179404097970788182110449245479683748640718724562603164381035900865447654239704340257163471385615392728016785719173938940596031999724409028860063496987771385706852055066946019056622454913524935115987720400429220365380560222246234737715054928979364777419436059316384405294043378179612313526451171415990828645817159584700487615641043757050654194116846519651227311301813492214156819503630297646630930192650849749178243863808124025470615310249279071223706288241749390593974411351025555591057691685718434529320269918369956075785423419974830505164353321641921434960348201522959015373418409447802908175969965897347454939866042963819778822439756614785141436381727637688544940181968826816335582390521354427939461360047856982466608053736548914181427096065770112636732644887325572716214338711645666708873464059351990650337750280691599023046947166122743474370283280141729037966550686312287703078354926391114837592709737227774069399415152235545129309560245331557119941696447082267889268723255069590186502836832020069496655069360652595051776303289528817311021793290658493805381602853203102022961986527526289287617745226399371574687834732000931560944726592009868702453387666092985699896447669965997614168287001059898474442088378575140494476089817724087923423003049098041785747773392453977698955716503977362320653512344405810998891833305763359106596069444274300620976176820689733480820125911752652165594436977745582944343106859806313107655687171388027752557015683230563574631680686237479526403762259493956134023992406710549922602216752828377903511428510817744207634055766723772040423527870670821817229072459842563961615945786550462608187000365771893576040703325191835891851428850737894464566404597535232787555550527851258952522781485518543906631829173717812342090297795048034244788284132798959028642648344798037148337252059392477518399868956589978529334405428511122944156617472979888551230135750751205445909311931365394186704605407171324352334665411386512423133224982106021486324468990646454799938134874946873448281467956147477038855388174937699840605291891049913629876768131169278073525165259634281462712314013126445202534692679190752303616784988451101102000780440095777607955553395821614955846664100710844467438778080031097022053693544389058064769425741333821271460797478551143136927074491455342211702146047859208629388917093918100700131742790148931973172004732748032132686516301237610239377950706116583974798505331402259357191551787610684738416213762541262025939661355450492768080184111539235918503487174120166768743151666868948782376368283413286268287186681051128545448200835014927545056854349407431354191942485138159921954945690970074716435609806397274416609611328040858716607759689273222914458584618608630909195337650708136292426988221794988163092716776165367527717153507906672542885432616588374071243482692467584267397563412213451339995764348320074355502220690281067751564634179166074547094643971043245746416635665086424201284893523489834424497605447866412160651432545005217456625947741237833759158729372710914106905748234747079364157186720845168467259454250937916125880071913140426081953972590523133975240799263185611153949244051750191592611980022479153493913748482089662241033827234468362500024291161834957181204806898850828522048783917774868257888172474866679218930068175007432212037367013465242451963464648079257122112021111194346125415600406889532868270135955724675722705248660359315240017738418100889654958870997851561951218656811482117853495262956727228360457731543109354025787586814830370393648312447977924025941384933059230291803390842240839669614294637190944897873482507075880014114306857727787845278511699008390808437490506487204901561664690156664729392883109525535472023774594377003562643417319157620428790913097589040629825553235415501130593769896219811122671603802411696117316349002522210766756284367515149152659301106485315388797789073267136447092022732386224227146678854587580939070809247008685672443036700407682262486326951256111563989643317979363460752801087209506088722813202303530958766983792039808678065074190173369207270417445778370075697293989738685439905735985920296544996590350910650347585840583484829972065858222277194519894773171579991001571535862241084261649901183377206458425227064076787662842267570272568452858357778350913433637361479255712747223478957128676621674036917427694696222695977471158730907689082847461451835773715404061920874553477499696439225787353559754441711534093095294411817501351890105140468842819609470508820874563156593598325460974110584758778760620352803240541603523544266526086652895121924802252057381358333868676982072192816982221952386949705572104326269477418152096523040499366357016096220802842696665999568620753679203615125032639514014334907467397398669807310772409641322711997848191787743000722050586128125764865552735162119426598698835440054782478389903465888243942506956740985872349834039799052778832965877480696216113811218508781039437782786231957264003033048097004650924009443458633884524224378020756478729956608104589615605300020965373693787581198762801754257534358198111290127688042628279481193106992028343719043152492192533201403189622328679187552840660379270084028782352540845143614159902054910728157558760397239758744575741114330557279115215659710957161796136301679395106537811631056143641949958837111284532760812750261646731962224914528450149522577345211625641254255324263015985768196620142579202109484527902302411564411503280295496427028740043815924251640836526173739422000446902420920045695756989021437914888492002122226327941851617441512310820437575361589874155385855706618662094275751688875945021773186495770322478101318970798777291550889818756437750049270203476965451377594353740674816036843556439758822461142612524896157201009906898083561076189695629844536429963403440016833981491212008929223555226316742966908212887710737098783045607848616650738416526450716153940916980771357855459760432435298712431038482572561646683752735743777068227600949748099154655444063568106534031208525507461322965046541025427565676707500131190377904149302455868373921033746320931243272245165430240787887860237359190351278959885215557606600140470228948657400169680458359380290911934217811852663806224886807372148187345571922235285701358008335096329127451873906036129813983143360044408179035766386211736110288349484506714187147869167651302346062570665902154586071159036491284506569180549703764861190709212508894872954502694679067129111039146087335315676388431784285144613784555858765349580456285401753039579764302470578828747123711959701852945146934485023470006175547969152322989072580602697908849387773627402932392671800253712075632180063666330855221987733284818764140380970062841251009994381110884401522193812747727786832727105128045735405570085196356440863917309633634734031152219190814978070040598619855074134129335437732454091813688563999361491563614572810125999132208453000301626250096548745206236662959725758296979209068372034115135101902490505478125695579992225844994245755986880953795946605715731570931254115926548134435499464868742453011582547079282410069940037647794297088208759435537555910993291375290479967296799940594100533185342099514676342053754600568269135049506149616845194858580511555992806022012237177353508403138448243322897039696766111570443888605516199624138775313668044412132220493038140275623743127433243797743581882279536211459745165931103509931095641063592718207977043380103663222614072999865032311839922301136135807649806349212897497774214309519775202377992994747145023640696103340711584590444246338617332499048328111867391356455879934315776926785075314232694936633172717710208653340897252794626322064358087533765520006918991030624200517392336368029959629409750051070226452092911065934073908990402174593153527412503857457721829420645121834326779458020503494438555958010278028730480452054027164568214427469927819358744422225247021775540954460537897104122695301570106505786334301982998187931707787943037721534038834701583807414102783430889297778372633656044543557503565745182069757094831194821588625328523656483763400183437064485832463108197787959664627535029742116166188746573006936181112861353892280595260233165441140755031007441944335931127361033741332039112625930379464699566546414466959593185799977184485273891984873882597105409180623096334650761605323642130015383108747121576605374097408435087809870516258993431903985088146250131418386799520537443081749232362294612809941224023857881241051529210820593580251355331279096242029792127026712982630803528473275309952334648544078769017260840870334980896455925026958380859597961508468495734015306368654090735031351951215320933345746183547506296614854816891459803180124013246087555785393563847877135325533093608262478686143262640945997757578316248576042727390394344051897440389288178600414017167351740840167667068376416707927174462867908814326177312027051341225462989888779134990168484193135192416921190253743146503601218488019923035139491025282034301773233169628229256622840697738362475293252969180936673072847656853676100428446715609796088472660986647317263870791890698994224449662836775822721553546875446614993923675139940826606971605284086705072268283243447235521225723228562838802042952474158601942239092560468565382325801842076786628338645039896887238245307906956496873757185986005936911992345155805569185939849162732687015738056069552208351716000155036131530610121799284922921803151719097645640950240447066097702834585077519149119756973462577997705024956679200762536138412581838312548617359149333463373142737095563566852980039292428490086104650854240193772824746998500025574671040104598593021196567042705701302223624339549113431424355872823857123153914200871789017937849833963683937565388646167236175633989164928052356863351955004941975368002475791337787602434930831118221403119112082089757870824744315979820543251793126918876385976750158815577874084541811068384351979629624709435914715745998172520448296694801202454364898075941248714195029225595691016307844819523952676543538219205745801265428135718782941194629671621913478410416709161940993238706819488889808495437345387059284942116079424877125610744562444518809249009821481620949261183580997093322866607275935978207476917344428888381615332882032531400988502002885032125160257703521912841641463572512241707331098206301561009600679140329572087983983209486619530451449064164255754940536694752147929127533475531139256024845869079377789845314267782321780316694060699213387144081893199923505037961200426156727294637936313887613606609170227719726411712792229124403302731905073780947193273369173003155593326937015625776063714802916130581102142700480401220657877492880050998265537576469759755759431225749470532933737541181585496860421899020255227544984204472618297384779773204787050500018239110326010594970357747322173252822078693940772209982380944604040850446843381576845279300738310994426495750731216114992178875463937913451618716241850422564464563075798594869290847475713590159874536758588674062442328118589357945410501415873966629770436778134651709815032397447521943440361244102126799264565053564669716372194830492807115187371542003849711898875579543774977331699047355719554970749013137156916977798903289943845090412310750211546506607499590145767671819241787184393864311722972833383916969895495957020416614535000899755324422924021876328725591746101456611157106215446430163271272598574620565829002774302225744351872293855962647132369393602073424718817981744422192686322327652818415489618476002450280857449394525601010441625632957014400045995276644677099587836917274320515761572460657459242669886625896524379006381554772649232443397778532488819218960248307247092789396141826850402969549286346049831932814045944307052371994306367000654832260893487058885066624925170577211744195596583564551944000275108479542973996617071124152537422074701340477977464975885209419561244985933110766807160262796336481310529591641165630320349092100669997709428527006785008326024102692010785682983990224874304736958886890639550446248131424842077743996421018213025250877565876641119100176604507999582842964284559600472736367711754303335819804220973953035584610627559958392554590699348499083890451005381314784487450480418415382769295036148108475192822134506265448830041619598746882966554122292736570213886777453198999259079370630892414917231861571378896051495369782751147502676511184172525319919755609766805839697511713776682647943962779775573107298897981721354766489621352843385441004196022627630271767808954852603485025406025989474267598465456072752865135571358809867132715284275775623386781516214632434549605040578571086653943401124947457331098564669708444256717131265030356264144223613679540283539337351553190877231548125308466664263417568471454463490082365465787623996109561117274790374676399928751854609452979325052805672604915681681629280357041224296860360379355129914888507764077063834613727960135205975346326642102120347206695269302967486271092594635575503778798092869106649307848921910286867828043733602319630027353301500582820553975350632802046482339013717269998804865761763642906016527706449780148124088835644096719731552237587724478369748767627243418675233840073030257973877616153954794741436236171995971951324385318979337246309106486399649897692721072511437993598976995895457698301371234062282061523765185016072735234556128488291831409589912941147152919542785967715143961907006566100200521796043252010928689665031494306022411963092622491955043042237864863255221478929052220250373397388926390129629955549262383560730063348694690983715692644113614491689686353471487256210156453546826413130883429785673811184409134294743675084872767228631813446142053515225845949638964309031265852838175891780593552154488096890647228884724952631982198875253400610340681310452525862487723873537361194922239467769541342185269591250009260947682366749363409518677608097411111401444749823516723744601269253761858287477200150950790103719339868883513329837084175189079039533069785139783209827977722100506344805585449992055764554496736819257327771973115563632674881934892497690533847712314999219631544740615761977324856841977249475527493066718565836478735762390857252122691315420408562038572844078731967310638473027587211123266885511202253091484409624036572847584986263241224958518994884642141024241070316933668548283491355612485074125986173008683996793217730559549003054478892848708750064475185270056904100999279624157872936230434654756739340164186882342401238153037644084264976006794035969170775605408008995581973139039922610083867342586145181851690852107347569376219520506688669053716328902123245548693599059732321207687011234984082861528598978279586550383446116809110348097680230897004323013584391742644833905571476694090694959243335062076636346901822229250527579745715221051295703086377779609693208624252291394763943647514527414054493037148499776735551469627421900083301930751344433463255982347129770315431964617459356376177289655967174551188627278674528083432657042252878820064633230247616046921903519671867818966645517014321481415491601505841978069330085787819441271870711033312197362559604009297535445909209173971780194728109807828083330539846108037675127226911643793009739083382532859118824627651046100150112295986384476320346172297655232110314577251647412550375631103567298716824087132386581536888580203966570930874905049483267460768500055135546054719446197418213872074505613954221047489477017394010394579315412564017253372153383363941190771634560931668122461702507782155768621743698339566953335942868674263159404007378670277188035515643861206367912194251004517465465711990128321823367031027670506128337076418886788867066704497247276927420579392321059895111407619102971294122076779208850802876293411157929193447664379856430160618840295322667642979861653618056868508054786518191834613954776745942416400327356910452945564713921641885127746015087371997585457026782823864759921032545664902754835268077545009170475413499623201841830291370673165732933001210653740157987087871079138810595859793558746356587141386366063437093414289028282399903004006466643525628147894173406583734053957132030065179895429332001434923018919509697580551864371076147559900820172177892203255271745144208335475983964405695975371250281491040979915906875047305862084480732740992751803388519905327658965137853257879186361101638359033426523416239861362804704548627568470159817224832417865612714320556712885764666515965288252135166470639221515747285864126668003088159448299826979600635717366957657590468714845399479629009769501463730595237011348505855274854073747941896281760293587972338988336792960220084835693275172370072623023881746440252544809935693076363087006667368499903889916054919847320635220931011333019408542519028750273642304000383228297294222664020485543638548229943551856465284990439782988582934273885179684925392572046994453086247857755108888850040641050742204712806287873029022649470410120887856914296345392646457486360231216621505779344930271380040753674866921191500062021344815918492518463287480786267983396123816994328342280984681777341119331294980343092187978029682156830801757590031635556070930064331558764570105354861962391739036520802362763995923790380577501835881579258040416723854942633986758023095301138226037545119446004185666421171805776701626019177685895151735926225660861831744948767893326312950088247218217147974723915511430818440491687356024910599931441178282783259086669343261076357517060693833804572681676729642164880903525221156774958622408137761288183014776088120332772738537416196717077058746997482481821653785004202786663244220324510435057961444675796163935631200753831463856905267442357770274026003398380303592266025976273259582327412814544083071889280635573264392674500810847099860551735417313463958898622023660691400932685447416974552069549641226713632096995775525322968003609660583976531684217302180082689591544439074807994373548139962345970612426805955008197065885373265570348889268019554812294430418471470257474973860366601451749499148326207253608577447642054798655662334962138025066541448193190422663918023688846581091352879836646879106981775127384600920069740903786496101069419357059796800320017357572930184163343843525276183065451325488603289699304127140469906693910284552614610834638578890847119882435173883740847320639888901370018809176698714489079864832784669853491877206032865937305672485563063916927558009232066899966057526123974482338814215685349349726595614442942066623108659750250598928803353052911710871122950255745190416642737071555921073471901641322401535331062848695918291318908464023941642174699100451560508878479564009440162974758849263549311685345924780360867892548359063939660012087257497984164317543897159879539115542243229305584600160540216794771426686981458098118135158719723983435332591201233083740169986756426689046426069563503940586690080606319194631605941884974037948527954658548686204224560331628821086070845958676949568178049449145342291659693164059588456196824097231238415352953048897069304552142543029542410944400013459137599245192329710673354026767841685766932839876403934820622652541855895957320242810048664031929122133358604348735453251696064316647887623153700285016744864552723913091113976716083979371105358280716012708305426185934259916939525684400648198169023520157179050366449331817247208551720978236174011763241459569902693849751241304626971744575077240723503145806729093873567962570015400210170639635572922188338260124532128970278299168814623896733404175567042606198546940648381012453699813637336548481958296816130481935133488609405431266858692532298640521451955028502508353571202757971176723206044009691035751871584286946367334294886995378793461482339924123260385995133486398882749975187455935093241026554259781230808306907946706713771392479135375344835451772260013335617792856405489359590783153392810450074607406098990051270570830027127648168730835430622238135163381244752365669721044510439052845715604453975317717598960212035855841845047130863912495527567468218880501001967244512551029307198760897398356969057627655629862980299937911177318329734639903275349962998823338716705023285797183245229568252088112783402215958088095394769024406702857674966151100601868420837279744957353174995077258907753747608473565491593018034465005734889813809894791850771759645503301208159023091562792775735811228157341511706397310049507454399008307532373143855876567437086507925972624260657903385226509437901365095638403698669560499011909100078422854383442315761063814936945039586361013889392941626731499656814069200783169788006638911523747753045056693929825716224323029959861523439862824745091553687587277796247373036597489788156072983862448218213537399795038558730293970221994511500698738385919411092019965775559746504575713804384889864107123319049315014791471876656392147684366146429005865161932413719152957250074677220827618305045133068829581942559322613275530352652007328356178279619103003094377211930464842243990105268046966447599220307220171773794771121362106535785759795605469910580563982794209207345810945761164367135451402284036496251153811511298174406388491892392246865266008931543851292031921303425422175502545156959949722203104393869528771371219126931041683995790672261432900507496911537874028980727934352602589092289565822474041410768470561540312395883622111503205849157926707032995886396324702070493533220254948671582353065720280541853312697413847409955626102765827521424386301044615453034569544617445432923345554862560122555103710134535352204585352292122830522733012653547901442356779356512455726920959859989719478992658769080371944591296840492919117201994244197051688303518479051791086381554090405824649506556206401498313796280800602159033352730458612280206096190619177448254494154738812906803142449688647120111893893505046832964792199552144688661134171047164325606283258890732243507814509251998634321912899461223989431201891418061522244398803501333967559351314478598299511770920032711806060367610660391931833453410661169125072400043818830423160694258795070930199648368868018743139017864396497382503207531940310767360658243674615696188128475497858306878383754719859201696904628724319917213646094640894250281780686749792453845694341058846534579690137010487140816813136295128916508631671095070588277798358594316578198517932818088478837041740466169821350023286276077733598403978984421461711383296281297767286585147138335278530425582250873296241438217672582214772492770405983155408439413946892769025723418227999911090707026014640646332280251935919071476449048206353693415909556873634786748384654136959331142107937821909324155154632865948693089128686734876548058193847516089769632213603950968070437955885988062798455530813424605529497056534051141478545924006104702901644274353898757441618470951848759582330446486094294477641769897533539489989901070712880330283604420001396873390219476525884409321343703592499579943459411549808189965256111727724786717706027560236869750472234244705894162692679147520027364041257378825523102783867082705947478122157693746675806940279400860001525437302996847402378771059272092779913376005364350652629855716995725549652805416431444197710533657720633002351213850216419859450090790641001816839729754478919649024209859391808073514080452557429150169071185774691298254047138165869066924066737080178080191615916866255145997788754304869395018921889171396018522956681357008372670593601291797765650449427329958225578667146863980418620834043945068639783698769166083008962477771783377854746627197976866238206011042934767977471216878898946687847241958181116372128745920825981109849943022589398880635677006742987097343778673402975091069098985787886483397184495196853016203936727579078748966583941042324949733590629167629290912486196993237330472628417840047242491171792030614179023333461432490075315894513919057557221015043414821478000619084278676345052836678187819424083067086004137382280905903379324723894834110054304281894012310167184393035255121517970592905292135975521026893559208966135395184793464263677737785396960508555005740881863004603964922076365323935115836439910293567470508208481546345292535380329643508388048664273161424380557591764790903646146023582882422753108451556089518251594135127967776378014156548399836748930641439081540380538778460789982131233151088200549117841995503542976772588580561902967125611651652141256562947728526965001718766367825597814264998545186278173472005460972347781415815039834018976607529698578914050688084656611654488186576284950433523290389941391218166037297650110398759967694822567329282094109816900043002925924758622862327202424631543108956399906335800423371495845093289985372479982731015102430657595291230678508827045939178701212721421383535884585013770221030044497658430589036395962621153085553649977056476588818757961461719212157968567269638209212201636055154915323140875678972622761074772372334024447058573080225542366740237011889096679570904430272412800293119786993292249775264829729182366687603657219528750676876496094206210150906773910579477986925222800426190926756337220848839808601390483763001341801373183425360301673103929518579774760467482893789316886267124767454721722729466000480415108577262804341001701796341334255062588007379180220540495836293434331273541884940789917413081488877017216605024020879619521861796511970030130633343443228882580268949628990342881105154062869425814112124119423857491822703101448512492812223804977156537421303311799574270348221793480647954246311454992655131187210645783699321046752438815811950740031631749386632459753114787369785106866698444471695204733080791466273493622476698140521032812458243985792862813356466883149226998197973607403627975357071236630422859924788571541184958675585863322340673181679897902358089122548871804544794109667709824453968435718800708727663829172817506831317700099588163999708562599042087087110080145471687695129064702531312180330330617094088103509793139453138723611718739793555172164128690927315843793381650046700176492493668771630148713344837403800694114051317843210337212759691021601076660028500893791976567433888801437608177705620573943611696223587500264941670423210183347518615211062746714137852930366163199309020081833195079555599359651148069051978303843740937685616740674839184954425657522551218683438065331782431045540476927604461221317077952384137360369887902871224097947004830604976584917805668912905509053222543904092535565812635207236161336194904161441969740660854929926004440118249648453427868357747988189004258977396581332040931131472031196670610579285748146822839880620983282066989395411292030678907211608454744808424340517124085222706788918626695680632999949285183107427919649233721370523751830589992354027808586459686639144485510596709191382294539399773443785101019425174483634893130543807919173958380527595069697648487185348176470744996023251703902194778938593074650695504100872726208210331027330911016794664481190694314724188080282372950202565976943635183089761080864465332662875365620504826759647953713167895955417632237932499796910565447594125867223263543467224481400399695352362067943264549301850390399594617695059883778647572682043595202071005585419813259979110358854588921176053977520497460481553408982829036232337968576564431322503380515675886050714100497881329437468270681159419034195580982578226715194609035456616913269509495339656572907006265375801922380050471169559194576136989521107763653220314580577836872999736496129106677841401401020508684636810773961800106474436789161668979571782692496669328083734064949214078046878662507193056134749125419972329850556000761866175312861554570846458918905069250294603233350176796732962619865650021647316946882769652735743783811384099701879692493252681407703837379461409855184883038608172673448182396076119288197463802082891165740485436844516195570304732400815139971612031318541997232490885218398275922050783533500591617173959921808280682738099514625874285673859643345535852885650687244667538448868344292197484281523514469454355799452900759537436034842930462354407444380308531616415326188522496696978418036819809829567767113535921422961977737024086282971497785521684258801983044474365505867047035256191875632405286060582665306892304238222568607723883421788182448335543045884170824525222430264181625295695514595219909626841059228250815466554362711373038700786855211277276405101226227409760061973534760673821281213617219084104539420146924287020991254422570219549341492363052219392298252640839219673391237599258645911988690687209207758231981112298512060057055138864673394117283258998721699415367157648702073585622735222261784773601575384951342844756352446396255217298355634589964743176957592371706409954276070325276020409377812515621558141350534962920570528037464926497476649496125206442089010146172626315849995818469027644024350530697198700447744806815845029484147971966859665721382698380954586649447347301630799730247609345454601668588083084032289019044920772207833686396796978867231976741779211132752339577123548505428076111581205172262974412875885441388001807716586936008457303255152315792424683267849413989079005353241123637061299902159876539362999733613194073526086605515100677395665359015989435481189821944602110048894632687781144357121653553380207275621618259383063954759673296890828713602432505843211159315777939984897830890957950385376421518384508499108870848441890863627867199674801650125015969252258416700843436794940818536427244588976313226425348919583414499542045367060577147490625203522592521399646608653685015796670445719873262040358704673484411436215394732084686420025733190718160640441798741892427458915386383976531168990767619431693998201372848177792583075113200566182747892421344441913760413367668808071973371695250040595486415014652719333009917161155137807669894352492262758379003984344635415688743411615222462970468663775810056020382422043116672114081058592959313063719713857945363556281609606433924116505931705540684620626776157068769494414269422840944061907977091984170195783844439772602118663259251707336690588743448132895722227271399016794392204606679736207680863467083174605137245377294497099317622888457730926151638839615158984113030947789901801212881792839891481779612068298671768191409731344917386537338795961649223167313991832870504862938293785178721890511238661358041026184664731418577235979730114330915620279054258937715569614566047484475289456983804220288033252922058405883805858567058091292443334779719509529437096891396889677717830768753471269575569937966760481889383955177519280303252795131834178059364529254199076310712906251431798890527609336148884605075304110735874845935624487418316039165463681962503564824019640828269291721022026515919987758736153353692459418161854733097089536860945753576611255326859624868284197222672863289904834001670609283625266047827687453666667654080259540507156990940218752133004786303864088495235691624064600614822871166543937452648390863546740752994531190396824188689981394227664932806029663807814019726674157960733279849084339042358200452731849181337830595831079325066451102151345133523840955148723866862459708647301258372209297368145802097411277990136654248446732531533312624012721372976521035740737572626863837892483196491121673156226097380386429135696814152184220834885393070101322648084330227748288455558050829413517279187178512155263650697614295404918812916919826801622663226772852114487248868645667736111471998024871612766799657996806417656915342559025425670583597744758519494230713001957551944213280889145573658163169352727188890726528753707234440750683539446470787463406870605040176332508678622185517680532517099637219561071073388039105579914123919185598883144541932693705236552240906689165590049271336643516459679680772258055471510568379985740389024642624648975199573964643262584825998205570656890514973939898527728021194397072934899176408393287822364928490927027697630604226607292369968549162051826022458051799991690073463923448081178067559969675264550432156389062595550659493092028316022424013346714905322425447995616846268444990389763249020502652876306577772037353433726692309987415520982220858235902125557927868098991387635286159123438915651168153145369913336181228852651271151728445046298921268331359512501337644572361446277632267068324026900292040889554112536955344139062262380266416835107762055766592168469030857626236404973468833250704358142048118131112187620793872464917691768478293099646754007920979511862968274323607326977371959340666571940681953168705604259138807869544177813529025863542463178681590862970373607924591850785796758506819154404153228700426750260649878918528248874277091617002750072771771827973055172049602045634468378201840899771501579113597175635923987826627017116312389126373752167434949434901403628451417184627159493072806355982844187953102924679504513371199657122857910395808637898297003232171050895169334428378081303496116995324837688131294516077478324717060061980222117559759975675701936833230156964776726502838442296253238673206010956110037888864995328612724148205118551824784836583388863455100997718962691593367861665821980636598511254361339443282480855450767559218738193028603081825647116591828273803253738941362779575435141510754742253010815771260983654317691739588254749974105844226582301588658995379135683455381673244201533561724745286329834272562080913130020448230867981158130525606218431633049323929247548424234315883302653955847874506429786413050118548902381657864891570425090979736351192795711955810956902560634413045523941908569804862894680440847822717362435643208616104452703234458179367013875900641995007241228836432955497873254152821077137859461039166926311969188464601259711962144881323027556857488884316133679284392660771849668193314313895541689642476780587065503350940407753114963479862888449740508476853648944368313647587792963066018463886234758123397096133104313842620828924640427369902103315319865194838151959207161185683294526567946773596897358144767373092001542755374416818291441537917373252338031721299453338306353039909606230477386240143750811997250720977611679643160777059361547070003563608575506618830775797436450683279247499994943943922383443956605518722646027700500641581761230910683324756754737058106618409278574955541499226760001675188579922747971947851143908377525508164574172099148365932747581281613473656671271392297885870417219964150441170942732414401307872929087529548430047981175470764802441033970945971921314303704730747405555970052550924737918980823451794186960176545139450999583787417915028568356784320259181054101047666122490705406564901106071073576628722464459168472378272353284280424219681964278679630432694110162722496753669792418189362103829528814114883598853735321675351336745166980791999267601977631285040817477975873894981920579992553195032986944686453870522795672663660748828220902608332149042664950507118358954728933149821523240474772087298865962625581729657341360751394741671415720569582859387669273872688205693139675771234373848203980730374951696164380955263919787542548220456653430726806279300355643876028688226535643122622529034992859467927795352480052284323315168821358481023925939408016858725059396507007328592564546844311329506295913885893739264510226212122894135833160899094398916016735279030797574167005971116002179136518291443245367552357910927176578007816062052576461897686383589949997640048855388745061347032934542479833915666230690787999859543326772517653373155890280696603792833039994480143845760012936664037197543048756114807118308851138348228774372761342723217854241043612721721235939784724362830203252774295752616288063937010590293394225190941115098417666772671200281559650859377733540286111889767222353074599277974294188351379957774910133260322554754714917650239607318552719933471573075314786193091747063552666783830271606025007052858815246957106683135473237743186368958782032841350678690128872786179000262687676069134341223596194465409603590781881294596928540586576057600026903455579268636312444908988747947108111447766218783535702798864738826531443835850723588842807366616284702100463433246494656239502587253547606733642180262096034914091824478580523117529133993016069289400180482634704365415044877495062265015794373457170535173687334475127145053470735745108325652461507523842644099104826724835629790616259980814537572045410621012364984422769352340857958234635727146789356399892073531585436071080457142449131460711654208251088893471922310309725099053823774421202448669646389972112636315031830101013234757489710665387071556972781589460381209901194707372724389561565277523351039313887926737622978128066855705305158588548910003766072914308103567613067867800050155492440010839307242008956766078948264908401456098321529225060631515865296465347793731625812788015984735575911578258345807249300595477478286591729888788073962382319900956708577685083261044667610538255701839919837047101329864159332551633908896060574753991108947093363634448272367730321707918698359690530103284562622884354568139318139734974585742941945177589070909349000804136187792164828944658242413445301502245536796657075562725113038882480377026503296438911764384917441294619672437808295857717210283054270983432054620317169397270978395393208587664308610896933685850433923420029124397941735515060831354360462874233776775143290730995299576929704935170734090789771443452832813025892259256065122324756339963409460045426081943259774202281027826233767235557944409495202224286157962198920863299229417592413191637566158065647170016404508087354204045827696312110774249971943944873028750927440246709709846010630783788506872069463685446316944052181764893045240380615194448207750831340999491262577845826994760607697026065187281958117462690613504792205475538174798505277532433921752439817078249279297817461068076035872289256011008471246898106429595572574479713065152279812630379579599414149537604272284880280801860235128259999579016555216168223088962479110826578746789236535241092983812334299246159452113559746293810450357405651258305274663742263697617042343969011327872167532724101748525724407803676213720489353694473135948486855828084451245295213880122248686787572272879710896865797336639719494147657780266783465461020274818892079641730801921589949777684386308304992961183688089883563713212489073116835764338542533757161614447536835572552703420155675454003922434576096563366540198222159251600736312397506248880508960328349343491854331858540107268635202144907793304041792822979153859756529506697406884917574004211224466373340737802444157789449964107059296022979746388784370014792864912047444287060611193197208203084368111239576824680028769887634969159569739707749548301178987259175188814230452826234794493346419897942353139453885715047337324572056725249655396107236047513229666179457764415587695776036390532699769558946823823347976890405312796448913942611582508920530820175261356130554374802115849727792427000345390078359351885047989313951192272521988729844665979629059466751616819911629378669195175896322002999697466766249182342389076751523978835875855719602240065251718493836286481078710798642976301033691697511594754904852378491870216151948005235890255927665389307968373530042816592695299851818024252062444228411719253371396888557583207866328223701665333353891673417538588524362052167517380631958437937949907354629328234540120115846377375596088460713798327885328439077564225413796580124947244819546121365499897599127298792432291667213352960998861630254753009321680355917373774639505203338618026282702879181048337648984696079251628254237131038220456881655016218380750144235395312024309377404561027951572682616879390325276885291233712589283096900846978277012845607484989792437387352923658973472264206616772126751565744504038914928885310544358997769179067838317353896433779061528573390326662610003642398896360507884428193955030223466745448280988318293733028545748550086904120795061178869275009144565615312432042366106305948619704066117228794707005037623329672844807338598149504312087324589488803607375976158326876101240440283903448576754983549443888077080792721989776563304828973166446618455638930196752232899683970592342544375897973901885984192021287480285102427373283271718010459627375711220677849333994026016263207840436243827603016764675449412543775204460272933562934031740227837193638460410409868448957838472813263754632215877766445229791730782874284939930431492599768927433148165744238170405082079187039237892165866648678784203413451623020339733412988634394942936239995989072454302520415953226937082010466278215954522355491375963296804491586535603541597040286725195234992279372539447369482289198757475755080536133763871472382847156184899481899327114599272471476142847889104885236466281540554053227541624578586322373603730824231615829440667901227999598352122324721680888455436369858578206632317466255529903748771544095429123463590408222189588298909515715201065921257838967194511230583268791321989992896759367057352366366263804793924452654417719371947406327214512327461571765035736568325170775045377361272728526186594335565397566081988937297355601306308974677149322582029807461083856414924468277862498163967360856215154778083608747135007817720005369471032096664035947002397779677763092646866574223495984721359723681066183562604963957364921340358073751981502417110501430658408088354483735973363372440316006765523192576410473510885502700646533182029940511010780644653395825124675531971546939573130881321028212993477871086484015531128802773020724271242297469960593240132225798210056592446038910508765167267863891068844541590715205349101827332446591730111799145791685056136677394890216722667054409460240512747289446624458051184070382233233469767023345601240080737162954871968787708631895682845502558290467155365857562616494213881877178593470231211524595235587111991864758924778297854822824788992905242164148024937350244494137894266872156194118971583794464352587635265298118904931930892255548064399455633224574334739712327189347124593863437710469481194382193325833845221516156168781375963940871786715285829115977052950879389109313931544922326037039479594597023622520439791932025079162776125521715541157664606254131024254970464423617674300250499400362945379400173615256270094913642549294139594486240031691173093713252069969412316819141202667247033553043438817167499533831313279690668666525865944480903621613458861985266525900082819213775591587839912624126210827527967891048095978436672399718031514023046730666995610675776076020942271743551557729042493488376302153244050899385523654767648551528080182736807132834633422694004435707332681828213387334068279324729485163570140586787585929129370604629512832300084146803684781734293074271585081122571982428979263463504087855968616325187124438627947995259997412149892030138519171116187596199966596151456775149401305407420343831199772149694632114062719459533753000894174617963887063841198687833805724729435924212836988174532660706790596783735376302384271260890108079784442763407620790725047588336889415654065158790768636945170933481225726063204812564819203925442475804724064274428645439860665899910814088989960586267690095987761599083488144838431218772441854953499947218873722724401717489067806929682865102857540968630022669125726695849567099602425873865161179175434061711155891520712079409490527074703290482784971486162682882697751539035785036714392062092797636534506999572461917245532030115264978254821154130831159498097963692320529368552463194254227483629021684430250502738061957366672110002217351403548705480638446022899590084847617747985808961255547025792197496242527351346856411941404758771233122773640665558330561550023503667988662944253542705146943007602269930343643344510958877918677663015499933569006716156754742845775505460729397450464723817421312938386610318415070425208766808917565590743220806256612400603340121288011366964098574688452400815863281450446954034502159049840934155947487513750030061397652663147744253205590248894159967219030155635441609067060084403149707789433496145631818453854597721315016735554830211162160125699664949657010828135786228491999054891809064318191037703892739515001135589347372611031571714815393145932220679005983493173486630199985406802305111458638546666643611874989331153010679985377024108103081248543532240742768534419694249581161793448919818464334949343598910702420465467657480925669626108518846073792759130213688001447249589490718743765126707854126274929125535919694221849431859894241487420740296131998933345519867493962216602848509540161827232301182960426002331490845721609018268898330181701498673538338873288334389353606293807860952823528089682592214898971287741489244889175899321812051381052353633876375277602127344460619566351045892534948439272357042911439440845452788023713014516952238787156719434284242811385477647942063317232970330833245543455851051303559620958789699347256811458965396503378371466274885373464607773858256183910403366703903634358953707417885309393978290305082241876065385231797420227573715349709526402408670725411037022286955947694083557955091289110508213008554219965134517597360801385192010119839339931320024750554447130312203324177767128711710301500361472778179615732309243917195967108767654845032656167916328660420130432731874688991046296120066404058130519337752857376029770031900212200523877719636640045886865026780183621177264024718915807959645757589686460644843295069152133216221385953534963297085463072533698775297715720839249602661749950587704492097663438857564865759876932962469299919190640506066886458314609009630544470376623550021337710718908584937672277558005632587330333568725126056303410413801529918834998405054998182898852318211169277948064580367526999164080383292690554082333497924413656595884362623742517103021798250662522163495125012194413863424238934493358549404824360215829457608522285280091915598433203528292092134092202887849887656637393433317645415593946303952452868289495999569443564942605949113395132283009235637338388163127796934583562255203967837371763093117111316968584933354619139471741525477695171617167872862556079496720343125701600700966517071203046607120406978272539303890897428130639883920603898863659242353905299171814484379778598854506166670269076916532694158204828306989708550780432981780663174947416752569159502453824660356590976865160109146681682815290635945621169001398954811751840516180275482167186398588791877651782167674958673873327482275279307114044676658721389624761093931024614757296578394380478473775903139908567853139289436461796861228849121059454781289302464074625608617399606154356531328625023922017404443636655227240888348135341075399448711908240107668385031921389640153643816012902963205854170120867761587385561406979907538820019783798093411959318454281495381229736352818887466325372432720491005505737893547931395742124500335597711465174918043344272802646835048686012192617215073187170317739550077051528008965349401098484752036577732441609583200655317264892166712719766846375975483869236008416875743601411935147949136171457308713616873961085521525119543038659097105354505721212106762501553892119312141563057098061950126867143737410824244764486702652510933964755597648837158989738199077461411160282483817999264741918008189860761012216029235295908597383311855604304441891080569193774380655761551301201185606990800506185644781902781724551497375389137695463485066143251649520587032938774956679172737869724867854678870607430203928637387992042851081017133747302201944259282558516874116578656690997378633096954077626751764322890319745719978331312099452125303025064083236856704030774367074348130484198563656171609535072981990066628501319888568110070307788328750153551669141679660236495760238364771845904679485723641537693887192197692551876662382505158487618187462807871850573086964411332515650050691966402840843060977481901786770975390129694029728316620591505241172673845884981078176061054912811750770302781011724508199526932318504805402648742033290387506935457748935460915625719623619341387280419103121179556375835132158963389626366768492266107939625105079853242245533951542285932080709457418033753631336362712588403471275848712721415576313844433862289573324981927257176304497060752065021543316931539963846477872043516769660839597687758954788403163990999447107033161673035129761730049737462514146515360710643720620722889855469051377134284408791418273855581081591243431368339094025430367969900322449934331721907047167059346434946483982424223441175732021384205889482557050785346899946055477413707306912663020692277815469511706430909659926398039413173879661984725044687812712564512538558151526966089024143356095275324772677649008018863025084441982105489096689399997846120375466236515984941224055212809165194495262282950600785329007495286812292147155324779810757597249444172128847338530532863826364951658343025149043196056454265499456488067259996843622877435856725280802684062245102904782588952004461694409072173192338511935233536441014277867572497188994266341703283879119656047821170732192458002435748618439090806961429900850047156140402027402645815378379989393506452265471898153689305193740573370463928188336848135180673231096269064659449238490556555397075442324963444030641239311239789311156807559808837019375708213550363191133959170199628022931890472803375327467466145798489593985866759163412826478818936638006369778246111171882383431859429357575931093059766969702544843811518810445449904456703715809364112396037489571756416827782561542213481812611992896224133353812763342524399445705769807371111738552565617565293885211189466277235906116035741772049152819278938953491550855145613227428876602189716746760009619863008861400223060865431604534558788362144405580436601637441833640575012146170600748517832353391235307073078436883816808676911502172185985393980915540936130655720213809734886604422241529269018880613398751706098963669912884968103449571311150252097124257004093617340342317871499722655706478713216531980900043434545324119883205490633580074824114990855025991261580358981073860274509644022766919949615404031395586317592349848846302708194490369718362446052153765159162377984215158347016275121334358580771259238237243394159606918395710044550999721547050935863125133271063792741235859573991165106267632448681264034538212663263912343387292243001021705611317579584790598607841632526930568592120144868017737009522286070087590833253839698777810201773109513450281966215810326403102660401267584418746108058340831798027888560983182864094443592094895981770194429882933152694010131664683515859097216848641196952217958309388110568448077852092304059394859551717149166454552427496851866229133990576449158802350098631534496889562549337355116822505952875537944446627748358401469830848659358190143627108955725917009417462899849932739805140651159177819890906137292102917346737419195136509176192614193028091847104786621311364830002631497888117549764626721729137616916593350619947405897942843520155265771748309822233187688263998102603257626066959385440505077018973711893569296917474226156582786801172966870672369562789661772701724899516333090510875856430127729240731961303125574375068462885268351818463294490577686870413277784012794672711135010346818439003450157886236604461814130517328669299581619395016415130799578704831785515253478919663122251544170856434356108251499084155710666499666100758087610082091241173168075599108107092489242913288267339994939109190040991823264395640122525827253050517487573228129135649873772641348491257757973733700162717617038734009664991066907312076854058812628718655883101090223704870542342533786276772383266558948503158492738761825901627131163585316239002549835971260730558525976232679918089962174257486793322739812744693775504524371099834996357725685633705981714162951804494392312710209325526634389442585991934617647640778012385990718244500118033801226161582153054967586213232678253862006760500008326701274260307746645258696024430825723325650560024627877416349627750085745120205631826816295027962763044822696735900076056976112624294376881267160826226686121646679685844950943661109271992251258716878768277999596480983490293998898310624657556539162349479084392129119602024515076805578098519270715909370820046724151393994454053942401038116731379028023457878060207145204360846737132689801798578579694772370180927999395205518928845607031712031947723891465682609271998281131078307497635617787863517582940807733993353466513248134510784892297208029150860043686921238703304725105325273084465354575292721545331726954013921826282902896085478988148796336217102974632599640807041769164950515222945207115713525933427378998577130515919667113325331898636517848980619286430474659424151961632443308251223898263961678381974636202495664430068902656744060672106862348042536624705217631251499319039107486743991137395998389372537939790771817611382149230022259714683656424199260760602122568349218639300271219065226791245994994052248375741122026786228491539410774354053724096757936717643249360825994609650025906124143005380532525116170590692527509509775721699634951930928674478562151227321273995734319899589944238898063499127468497586248175346712017797297007726003020750869367326326802115391320531347450609508254659103324741190317699550581933059534000659059674766625380518250630952247912973436973106670009231770330323781043724915567135319744972269426948743025203018244434329906971842732198427107351548088292248370768675347216397147457279019621737954453615298019384974945371247773896866751034661018820064929283014235830172615438410909662863610658673298693360602991285733587778884750475434469776601512586608955319277782133484978236918070713459014091321421014672958789801626036578700533281066232615036701759736293934292257781872187839289232877762052548213906592437292112591594415113472722976162632934186788619861213506175738695277683478476791167847925172484691057193241308351914212043254431947909597317388839735046481042571000335633384135643125180524745740202026777289049480596487282197740265976401703796136267139160703694921629320226141842745495430619879599544051573442899019607160726011882206078594234375513467797571169803363255204119487468287324920630379842179572181418069193854576348889490347487182320729166822782933837597008511276265186474604321423068775203625719375563857311923639489902159497820780131973970443084372532525113916478404417866258060105877835453510483461537609859500775749332455927292512075987187108763994809522177675122312428769259995069683924811989981217760515719194339127092034549980091826640386717587286385677208239706024297941657740886957391394571200540913911169424926433383380695718586957011841160829641127214221344546732486089667861919739040501327951389467084159358827261607133755182874763999892250601451065104899135898998391958432922168514060010090894923179620846917518530736659754271213004115486349194998815324564222014153505030808298826160530023815426359154307119984090346052237553482981477103010907835521745264377432375833898858222048260510646100017266631070599018922578582445402433548859803658058625522474777604686776521134495028720445353253534610335193835261785437361251550191167965942919821293272994779400797952647935674054742694807624792016533877532959743357247097786107677213774672348046107808905851920152431230997515142092692065639710644793010791353581892182893342227074315076818346376430407928230276185091410977208441572428288611684565722769559000797870925628981302163003634578826069010543909176452401081874429586972908936740263707817813168205817104402535494046821962771023954768463853365532053453448511747443638466822035424852442958812735463553277283772029296231684555685790878403135756211186842888940638119835603382440271567774576727008131440350006777440203197677429483203019744364049429718568148417108832688986794246397111196601038126536363606871883264929536335523607798026284214675942487697138587333917117561494846101159977680653956247940597295301157632201919647026546703487428789795499266344661430659807187707974197296146451613153742831036568788425142417359206181320278559692774631838039629273778586027600443609074472083089258359942137253520543433569187934223241252888321550203656955213353652364526921541306735825740887132647148714851930235734403061655757054149917317419010853042773143877631803825655992393288041514172013032623723942889648139657695472617580655936936739359311951807572233194613329541543296694130645347123683206457444417338091884575861517691320283339896567217461630260772418707611192364131083761338974300861118003856339125626237789525277478139723113944286410028752912135681394934898296326826612988913827305325107581511945401870875240152649615755147857240683127380323213719315061941719327455378537974850312695727471334280222263386163278154786110354332924651541851344395482231752107689528929107496134352077843556382637093427817263081355316578775682999928412249092127716061999872120772446548757533732951399843376697723503652067068893350989260718404520756900849811487855217915978144793599935485488909418106425172253331214627287001736919895419788112899206344095295415088177779411441619548667402973764796521647217725911598376824693991831445317740309282517661589476979528716190475462905898509038140569159089658547665523488284101163198567691984031657095382606564683820814707961201265602358034672076475169739367561675440559227500700671973401105576530885677593235410169525369641555861958169747384025719292071541989764457063147189556791467931797623447755391561445617652794109513392508591488606317488062428430934668188849742560352563612956816077553170847929707514547101036822382848359465929139901084813141177509927281348487813621497795236804688871589725920256054738969970695316937588723338763015333435054859326115983086423014560169366833740240674860908661119236675501317018018644005215344701487217362166992674723714927644500343043382217763055684143032901088047814894889433410800127937918053715434471499986269970418674675033480174523365105992396596389207712715575792567188739448336370090431666598518444959377929790374929660315712033338985372123093718706684014634570434029514219128561859771641984965234558916072493724118308596293228088491722622704877383341848982584819198360388702588032865384392724890146979350642630402225812697272397453349313623464808581566016769161602022913631109370431495450741412853667789894132473537256686832803920976820028934974848234188762028776262625975990339912370878989645911869493813406715557728822452281008674992665496107645509992324832061584068568687168912632553950270827942005209708684185431862919007979531294388232402487009341444936970657695754648068540737315808737324185890382046425524389101218230953644605468640210644999340643689881161812107964969818567303281636659708802733752455454843215378581807628486628950016907788924113966367136650517602580282190776904766243776471324565337046344811619407499537266713420956293640781838835362596146994633615990533374498870540848259027423493291904441883855935292351840805078639317575808617547613751722302520426959313010032253943304820641319789085973720169375590281530420352473260512110925111599900499329014678195713660146950943291577266585573422760622417199305498489777083046616177432664567763274720902617519894062791156855168320644087938596826248251063252664263886697776686401429215622816689419628420168236633663180249866889211268716231808873002306642876885215911439347500367540575942532600460170413192185331757161187975785283218759969878910500793487000342097916382767022846308046498709071239765878514317493231808353197936093663752947369474870503866662159690086959787522913856610027838963457303013955563952801373453388864846847785162018352213913791601425706492788412552400352889428562460690685168381276346692148612900465220367458852214879156139379020150148930684428912975209670096441501880222147910839477217891169307040242762557713219596752203564811557693632874026460967621787889193890732987696243853262155795416170052875233371582107065854002002481476151514126677407284730625210808861830722587085919309884946092132731021955775031249917845576351719402795825322925990602197777227120747511569489433765891374885480111335509673921527630399700519786491387968083954947836688798571554643973270935138089402877416102383683357233963851712218326894252877986197802686080340662447335296334534115285369731077345789977860148744067217814402863055717599082311731986073977022698806227278566275432494304534200134832372436674230021031731690752798543835221598414130775768575384639046064805331034297370445395349280328475636903509484637554473580510648755364109380287429211358797485033192993053893207652829124405166474059911295157959694779273289038888637371807898119241516080553352854885272294442910740607431903054685922683295517039578655963854091755277916123314704213228598144326325690715418875272832416634271328013105622839931711249285458897927874930815729169065458115200464072491290008984396280641379565200204515709464280598651515221164632745377765870635766563651811196413703968431011372894958323979968453452900188496789197020773601413734346449909309819995726876147803475890838472738750861111718693110760439107891495139968169489362700532828866103176617389933655848494424607445314022788280824121194680503364754123609099362558772233299687146446125821558435004300257805626387502475526764993049547001558790121079262460715252935811350064112630082893724697260671532128265302693997573737140924392297358654858602930886237175270600352864079665000435695113365674405069337927109596295973870220834024647421072615446052428572991364735762852421849796881132196061667499840461390333075729356190404190712984341601682287090428295402133851019290701990305692860023045785274477430258988128311926093095752887688761723349387483703578869544812773424177325975695022583837105872372118358054429126279236994348991028539862829721970726529573832867266449682839230531842204718073992928186508660579553256495343229497312642480556919154305930177662672857599465904511155806288163337198705893114424922397862111552152553897999373448432674417621007484732880881301032651127658092964741329178928361830546999881989169006269589893609322610053831230514091083113634140500332869112244075988171922903919486310975689641827064114577575357142480435038800913178461620377659223927084853374448651391029473686763224995334037664368874855618608649468682882575498712999908701670650055416094877010582962821955024019324046057045866845515895021709578065504026477046105065653827308610286906166852496210776542206406869961787794006513992628617422512644498993506001813183170693767598912639891852809295463759382149383990425803793390444004451667814361845432415990959211465548749182648229124727831291631961940239176476098755970158307773774324320231090586442371862380210560858743445287903737475146661965675179798472011862383764830108156626859314046464373969478129339372360200466543907898947975704048999081694431144097183440542456386843462737802014004297342466750337214932674892003261263547413222645918095712562820872835479726752148423177359028322681959342982160644152791416655849119620740879743830772449653390555372407630520573269495540114945974823997477402191292802426354796574219905439188099009174620265432128547226990719814996588196967940825557808921894947204063506325376157912691913260458720774590762687510968467977019341853145765594347181387470282432242992509169224458489870007019182002145455943529745796468819740962096145762422335927451656626334273787474846685508326523660783940621890476566174332786440552547148847888639162806886110720255050814323846658057239354808570890560387172705227638704096125689212969380273197758911753337548598291737210450605695642268128817971749538737061252372377252407352484906409742612035387441526911996765944115304923438449071413681411550279425914813343216652147321842599823186698256919983677212167360962380272466005313079841116989584420093173134537116182611864678024385058606515859462277229354963766251063841277371271915926078338813165208030244879790001516368719487246182779011012790410119039290060370998146558654317127619000809854318369586461629953679795564388650742884540391822141349537515605250080988760800302243518378206003031223332330660109489280371774951514058287680802926845550681793079883368192958389639416667187584389894888263571284253550650197118339507244326591785833533443585903918925571872948300591153829487961526772292738639217485263306434865708573666419478337627080008364716242562796888176454309387960924662397159945403060942386479522235815878140358482858810215588119991413610997768952555483588699559665063084630786545566223395549810412669525100516894899003267312939756959324345081549878907370220091077747534675564762693523998880984479488898040540938286992167192356880245228679795470436013817165908966104472378975348210657691748311904327353038316688848716485421962395997714788227671161028170954465695579150513687266469978673248287517132914367332825845007343853082871491814290229088100976574412899653908085015409847308755143818816538317696652139997768526577917957469866182245474007128989377767238606269915860285834493161823181139505429419011997642757262514414865898423481636153791230221165555397046850631490333585267519551135599255909134456994618585249127574481375841377379540457182199035412226285145530616212537913568918423669443068251487195570256455198170940663287082806198486607764129607385705343810227714252209584052794601819654160585905940941265311272711736454064507726826580736539384268417066233844268522023653067400378645399201500587516905579056887277533181263645258296952737337839878794684814316533541984159193406058545293059591856742718338738859039881202964905082515613210313639829230328303347866487378550752364636576762705835001183620503237257524046283255885917460393758790270090776051949743730508764882812956833572768504535214363377228670804768078150102962594540593547110317412889204075393464310866589476700722051583555899616617625835670690858179265834021642638506425941372605434332346818119178064936167513793069702301920399853078914770575459816928095920741103892351621228599293133425098332168196646677891735472926748292806753569790688466925426536207941720941403198430756515661282930712029692537636611159267280234849920183973930151594785793118807072654348450456709421737439775456414481017663516751382206476478862160805080257083516996440761640191569071658093364909084405357848256753052589332821225231799966288300508456373954453756121499365595314271196744461465873301924643525364449467739976017505885168365258046404130334341357976039173151283629655165480941437920335470243953318182749103914803230530715559829839535155603118479295780226080988938859591162231556882737737889625480423496540616235700583905343509500337411862542824994318538169759779415738108672541394688061387945876783683888344107278794062206923836995729199749343265051845820369945843949660099696695363405567934611206620409076569608092538098376002691197759390025830604498491358038816063481233403629681574258198080198499142847812882067047076906289360426760162172868924168683853584097726919439708152683555673606344776549905906808492488416508195933907894154204863023724356095657197080827635201356550349260386121489473157647565727003394362467834604142658511695061399167407928206088824479569503279297097494691777508580394363788288788297634023183507664057499637062104261827544149691094530066695334348587656419327308868845913061620204967094114392716716630555805127152953422448830183135000190054198229720282912756506936728877564716981123077842113106551908792671501440492015868369698389942493975986221952246394546129940569725150548348612881668885370539052733948795332876563725775349110193627451745972228995747530609347426868971790801513302774049178317483666105469016649504430362527841174145446317792871058610566228165140220101438158005227447102918090415255651497547819616397912454248229670034829261925354880964469134620886255786583226349167037978163506063752515297533705394000002554490923738007259498944585521982462316771523827971234651835815142496691455608054949231936788014759014373092106832292052262089602380330437759815192261314451137246921231167436635539060607125430922425926030028549716149981335644742075233298254114235467941201417175369013768001004143501668137948234441798659793023266451129130615199025637688007093986432881475920548523131588987552425697469372759002460599984136420609323165344944763922197340988589103198777451833973334346512889606801139015587075150177394978942109882522977084715493808948083478917734781707752697875067726865869381232568218479768136249019594060629868334745813722193353010392772048713697786917845208424222242002595246984490703128034588860585977696997545856113297754390145218428423214426552160154011288822631578343647035634173129686441128665423182936352493405070485035592326207931127219442817937556577826469790225257053942463494810787863289506732439188111751579463741985511796359336723846588274509982312126435231824704695316198808221355313635942633095939673612196185125490824712183642123936017673230891595314373528081178670118317287659204394876693119673270714242369969576791092359253316665293758306921952660714430573912224888102422598585656877053706353140303218096027869878964179034696895710944805882447634228513522598445148858872471457967544339754483307172532293869280686245978797202120782349137309476052041190058750961125784765811316039849263885850719721470071459003038153566687326901437670186747510950409490203393272921867653753633401491557413799803395340431193527939609886888909974002081274829851507883083847621649330941683167256360807597975586102432002470512923011759084941235023764032804119676308405365126722623213637696237201287083560813697098949888025198793967380373942121649286721099190328754859388955971373308835212831818339567809321343127971030236339430273428384057975356123901385708220599253392567170687361944554181551136976922952980472686534977550942153628316510974267790343728981470497807157694866067406642811184260138460021503121142579378273654594138533904777674484195705354567453517854527316190731740206787030748286687704130462073296946134603899182805828316436234582039867618975677947910855941191820201030276871175885465099128780918612096200990489569999234996127131165790780946377554964609164905796068033364405532502455461812621881469795856389226880669617051887737770580704531475201421322579587172126364997486514296604099938301260408694177408667797381233422165406304761164492349858867270902901638807818832282771699748916802177007887920683523564112137511025521434748582179537881185211357537731662877603009910906807271227806046350485734414641294208287011247492954445177919173278704008854002447689085767179055214721109640737436223217931910494164803007108280250566899282341637259795433986799084654619865745527699463565070600828310247504924763904964598571530497176654032559338236846185907650586072285087352913037161376462485673380542188448641925290961415549941373295993267552698927058648435362325861234677574855429128981016025800448200641215536842909645423702581920501524303393696091391872941404436608423163232947371869215037710794222187547223671793938301847236270279157943147707170250347257638644033023204880302525548165677345109512632486058729034502729654754614605311420390239888576707304633676636208539382951634300591697735301150302723253665434900324566739040640280205687206534740636504304278425672573315544638665175506969510210130117279690621411263561552276118117926845116063025398043219654544067854713410611660673805634632367336769003154319699024740523716207048110105957046330698899796847583919554899088836585781287782239541240002568079915288293813748983059165887938303368327324833424550833251292540738598417992993092832912789995540580603790784417523747835524769930827954086509784948469748701187783373877018623335182361108605282720704433513356557552354896568538736937760467799473573895029721165160273967780176113658796550977197365417777111684274393102538296629601248691539386154313373081042896751002039904662931519630431560206881994138980072847430889836489914015427938543371721265121683334531844901326539444162562440680873593286610873178625214458758771767981220567624723405659942937434644038944010726728272376586362911294959938083309672014280982487296240357969984066391956374516362805369183000929104511695054657455507387441297604022188937825441388589964316236819258651330613882274048388555828390426230969627843236637082617645323201704717787432827784506369372366350786349197283392666842920652617295310377697559810029255326098486469553476158914859852333340252102514233865246074407798310045816654119971427381407230605102102970085625403154541277346467904999174564274600824128046012244604130451915844296169565942171964841861057707809627627737489414970872281876764305940005956543832077656152964410193156966137164061157524094175291992827716608216468560728099445124310084349402682822336384269827259787764969866321666347655732439939683876315538492602328075369097807237264646619734389563990750769877788378978438000953104532488106012630718977251389301439099989088984350948274171377378068781336515599912408223852096625076329823172084930651598067011094291241286189080669400424285750647493171635177548857729423915241340484397411057954001339286535758875364702400200278124828535597943107831574939029275030577080087100869917042322451935598544605631861660273073628302504393420852630982769251864571090761271647788324188340582523523340149913318778313813928056283541288658368179370013002200635522850841750923333083894362194072792618900542376707151261994105068287750088163857615588573045909436059274198454614384440348997708336678939978968968100153640396289743909459368726088065253134898600951430796842183331399744380561453604152366654873982417619690096919050775513281469016950497154274300506394922089717822319020169463819125673458693938999482478558646757380972229347460611267062018962781984283731769859660688626000019380971363067237678399286851303719918489950163943726330670962080220884226101195571310810396835747512562537573394715673670562047505728935871718290197715693916928437002189243013736328788692840588430666816417964200172077070683339490898621569043779339538220155475334503633216872830902157243554979221931034911618679260684979549916062727910019956859205303353612381404566258622550381566783875184718638359173110539852832031694206811987267968131570242460668941634326375379861412119076602490102529623792956374492400707841421707625561621953738193440811428984740269053855249436210447246945170329574208915254053848229679478833631563223346704599770404572754448647261713142088902969248758391629374984049883328953445838921933465924604196641261855349882273398816163802864862165079580250526875386271587020848010747360328371157270543282959180741996846843969541902785135431856631581774754269626279397487125942554192561218910783012273265590587078497692214475072956403469056783073183520556186102521539736096563939543646392502853234792157873097742089976424864337087751945000780856344887634483650121011940918398864314019624260709234402028005661537135419112955227426083347323741184069607046956755094342984903718601856059977855653799098026045953966312350812789662671640338354762968290524971120460696148997436328437096000797133471482810782691871696208401940802159039231425582382983462362194416454829183392064320357503611028750934319083250045142057351917642668195737941056462725407339077511459090929993010275716599449163335260947360890640829364884805956369009081367691861226782756931034450252088090363033504162436115484534879721894922836444988675247778940452830247478379701316188600025944551995422053871603248073021997749675780402946465337812117181623636610525554545417984133291114847160015726502177014245842546598395001955433219307334250050311148499692857998838219400201014211437002605381380880802540592845377980665187788388410284143035067575126862628498579598746279308851981104567256069102483150681280344472719833886833763079035053769883481994354150523204700990547405471556228780784828187974825377919006800994453261242387325655230995730518188811190890921688411071851473190627555858784919097431562564232163330984043018395150994537979592778500948144010812619062545289563653878877711585325167673670840238600104674514450083369087442973929939101985924820909262829608994527290402844198667768757358642415312300738044070637350640585187544342663019240160626378156050161601456301586080896107180778267752758921809414726570010372374221859598511283603138628406297412055157532821968466114453022171119457019085218291744825669086610271434171437430815021870096989609257521588105525735872885017130850013940557902221471021680081742426633633992439474818254792435523839667442005910770284143585682316128474089158313082827827227798368136912659804990018521587209514273457313266781560359670690535421813285001054305199023852234078442100620755005302884519354425929492464803275600355224797482567309759721943268156430435595109880379243969101336804174557578868560655498535928331505381278052505453621208394477661610939567378289647389232572647482969925553901694305943226545819537702805979828230690251950803171909166321591029716476546820547589876828373676456187938851536482100427530853776078638379642316877044358687026384114228085537785272857510834456236185304198048013168283559056585494187954795701655396431009372079300653001767385028491135621911155192129559881508000100524827456849163382484353129326966868811668392993347969072294671564050158282797441636717766021241661765006695206701961101087614037257434733947155762767077531882236763341914172080624248527041008378083933200485312757808428180787370511957168395745579500385832981615220990668328850513232497597960513776898100670378560729589681317473045086525979261944321320543834974202470667203121142778192097616832946202436440710183168983665841799911967818033333339848275850502413469025368697324265113205994482113004430711628240478043398344959690046387863966286870248251775020830751665800577772972890139180875232174814101750714854648645016842291752124349554236144040122049318608975449616311269786253183149010455003611062753501299447815120605273069706748216356856339199589749485943642338193532913370409423002032173370397520780208385907443370700976224920280650777053783596856585300920521842109857648287932345653308122043700321400124607177774041586600330648191069069671334506562835885508330133555082264223987191621146971253996393751274950883514131977662550122628912150609179328952403867347838060730184472821073221062466660148105443650275410385604790065240434147009494307746073209062974941744297680752163988986946227975901672226372587273073051166849261310998437268922298574180678740296378568128789316868448224678320546689388685039568992904825233087631244606228703200497337126928161239938477244628958870865296784829577453966775028691598022027331500275353551285534638150852234095597619952533723386235370041903002402027602235464067934383139963145215940111952195727564126546332349933433274656997664825611944780422211501817570631471587276174431013061417154944621323293838390930947994687843833404772132871543522674998745718590661436185223872677065999449387744147064980081640646024831218784135026853995921758101035211597101654114764376244880533214852707330886894889553617733207119492827232760443322947945322267021460177558684001055845554733855434159893509101689909167839145957213691592810122142298505406382080429430042699988566256622772604537135597686619064379842478418997891836919045741980684453593759185744207364945931022695111450263638632644996605783439945296188656418309259687002134020345337021240217305925314270052337096279525472205972410332503112879100530194249191035071395253962157611820588506101012300778258129798339178229078452841997622963919848255343590552488825275047826545006171051015642538174623809341303609319108921513738584848802254390753433598739048033501798371871599159779076192373356398475527277500504317906621198042532337921574792464852153818158546732804342230357307454115670442385547193449278731771614009894441517808187597033904995676928718078024502204142081506237639385149730088423976701756542969765739530167339636455616452423537393378813853436410795880279650665308216911728030622083078867896895195144745585814808006313090907980468022113721579044253731619655233838730564355233771570915831538546928095195805488602434182267970287471715698935135663305505965119156838396174404233313113592635735162340165017081220895707504830667055466776798205348514035025716516674176042210814930602435890343484593450247674527903126508155742593339617356931556620149653443730234472848264504800582873531177712817568329944105012387105559754646018844815849780480872428096498864066254920766321466649251497316330957542459299264841583976685815215391600773749643106907454822691161064427471843520025912020064486613027999958709613354373954098635212189696004312479506904742492463348468184300390750879164945980133682463017062647327041167067746909768185227960367236798009903149879207186059067715743772730854059760561534483528030024250514591247540052323860043453076747900078417705879211505044841732585845912427104299264130420625248264157334658315630292515209149214848110434813365882449062743828206244136780658256095496545121957284219606502475073971545579645480824115252844721819187526309093675195419805663830900499518570297407453812286007103038032755071429561628603977402894124730866087236744424364599286787722929413833333134265835384110274231033978318156338932189741283518614546331656127438321222232645001145083423923959940893212700554371219860369589779760304066605390177168865183634709397531598621566028669752182376444343814400993688524369255534608222925558002035437955956226798421172113142875745057560775775589056597009469277260710235805602375456803982999223112514942261037528184564081578296433137404262236614372475375854759183791008167975327814108294570015738478619215114204794059408034714055102286618011033110200663489603801143253498094102942381794852066583752205874752246328470097336591328043041675038613620748311663820363521065694845980431276081769102165769744692152499092562951009633898006426166762314609474365082473605208273478556769761624780140554853941974327039584356805004428048336507306029175163550203117528104865477034420679071908007428971700058252166927968257876381522360007027768051637316863690372801033857226547566822673319627383839557368749076523531938545532434570303118963013370707752320308789197878884179743146805431796945637459087138109178316280300513698608630273233327477124885286183598133414663770784576139418542891744569146194093085697625847700696863406194016919338854891384280893805008915070076487161453764103810008081357299068850973584955675680641881546362157464135917908895562086598895834426323121072627141872312679827126658009000601662549977446618193312151472598818569496982119064206028613751405323117673908567246496359183380065785685996340730615988572710376800593107931336282774838579524774589120116190166242615185154773544356135169055212547209194156869622074639789025116841981234203393448485081476402060762799846761854790193281614979631887515169475033430390685958183187064669235843095063809959124747726523984019553494002951469840613030796530379479982895515872023832380938413182562519531346855842464375840939863692610220070735986324159424382174260644147053335309105100462032422604656296882121342417945057614614749771431454188785470408216131730796667253335324143193832602994561455731124270885354063925863087526709098638764677528804067111498573512013919558585209065016788303145243062912171911810072787242505005445143927452208666944280838045622580788444413791733369119522291057917017704814425917634929687739528108097734187377743032102274652862903012489371842980813075327543741986593173519550972571651831395231657566961498096495983817696649868197899288591909847304654891498685644049535650221218740667596696757372740566975323920796605514916773382221220374039843944583736725482968681752907588423642270019603695016459335279242478890529382803264428358562918750890080887098941687587944354981624932165589857203324070701301427972839435923347283760144745089609776038239374929787844575953723037374947665655683732828407044543322999945919050035015042064344945473131001335755333513762698059328115275270189104363079714265484848423665274208116671262046441202172576534318781578542855494246026777267368436492893294027918232998609670692135097739894914179458618315555984721853364609525287302069023824539313952812827963693107942966622678187051791855834861302235525317446633297565757252559473931041047225905179519313112950659610379750942374545085254849199305670623360355756636504621465981335595268663746051028783701292093179784473291753514922434766190035942974925437969013921365192763800419856210577687226910250529495781134315417897591884928808143626900973137022462062802737670811385962503592992701235378555502387111050965892199188703819122093253424540577141127925213512301284920029505193610119959767974265536807148464923651789814983684457109701709624577188229000490908641265237285541856518277870074108135229385917941031687216938232723706542575495392009823645964542198371482027306339921879127499339049697501865673268361854065390877721340407714822911192412969105740030996677176217908515425090991019569382941441943786366471026620479205629394923691602750547315057194261609324885314615011883993390457351407605837037284416975799566721880858777001278360437252270044171452575944516228866842787870160922677777115904058128798756774670251650485940454975158160298048943424300312240294383169278215276040669859953850872541930835056016080283518757349998127441429575563713645127355304550111135000525531979792158021355217043505966185336659472279139046569032996450399746675291535242461422121704828957518291048348411490950124220797334762426751413688612512332452071804601159015499122378118013807712334076028717521519626998040314717015543791621763809447418271469276196464291100931460828934201702392686552047184024888290812808578326329068904355807437223437214335529963527246503571437916003212267997690386302233481267290760053495669642411988901798382156749420392090775215198125938435602902082076412252356199677041698107730508997569108717709899601850470761062205336361886820627757251372875807217760530494486168119984648544933874539732113933786865272569630953374582844429421607426342563145635438567768375106953316331598018829410690134991722643467611827335056657010804732778488386058726032225559006638433250751547896441176201233810553962711686206660052715419758046164844782246527866611682632582722247194498251542089767512677539782761510820842308475051864868367132058146688937216657769607430914265300201698759728801166984239382600511132765461520937208254550989174432335864767782305228187833524054235563274289215266001787883577881173207673954412617257079595578006459788343416135867822981490962641953627600631741102331649059087210222213494047734324936232247011898712850771334093957517443537984854446561571295469377881125423428118711481808191887645788318030477251894242284988787743696695859796917530633550510242583688976070880924726764923766317070624111278532671138880395645675925660264270749639131962737638765265429056327038419069772005793152165855156104834387741518191733102819367674698894293374971261449952758185086049747434524753999215966053402216721389228022857169413899618320355124463184533313850503838508573465219389956139620784137642408797979339518147699606378838077255636905658617834625117553439565318337265965109020162762947337361545604859902339080351063785237191726202900962757804962367559233932887542285819865891969542130113901338340511667592254487993748308878775058555988495066699865967250734309337964589498631152201170809204958192909837961284304425216110674556490005865563750515750097571903711927837306037172746076536002500001000644186021804556111120082866642710762709210524299792206662844811383098396619545535087325204196369257980752565224807289818365129136136346689219025522218071314321710103842967436803487572021929984442241642686168212696811433862783375247818176224049470061378291109604397805914412090243519696367870283669283980291464581881768764594277159639644347071947034395045558762503234701340660671731951556657999754563792825338717551597323367016453602637389957489985099055072530325891629133825142327760917601322257445913541067498080100456034859087812866035850351487612880408043819853353362555758743341460856309232745946243571086099099713924524921731883468255729475080965807646136338152090937724992230280544013146880432188497779117374541796326337269236358784396214636071038115883224765206703370618982915406315173653120770080970003606165528549630062749777890395818057564926295903526572158043831445658013300295363328153664536568521517983986723689023865782578966825131929027024092053267735630228895517088751934157095368229630462353985730727469902301870298421373249068396756735820897468424935149812951442228195501878420618005986027054644508763932840620609237017251952146421178650613958772007988647955500819641554890166005587156472519252843563596243602324650934809409562684221272306637742395500430622960511669593604191685984342998774083382459718069133031212291176123132013911046006759637776024725863497393831055644630687079944465573187752393095987679186345467295829964659090571389793904187809591604705757061698703487242566417296707479290920930735998437148927982601858565832406974195485619580594805800384528493248517156735829974278945660233785652659080976325459150795093281801054060980572910796666109945237382374157216944010676115491729994626934173053416474431102084816522451499028252035541404491512283288034739345143452860723612519186833535754936380167560322512607198734410221490222317015415090623649619527438335885620138081049932558761996349974884345726579783274799986915291471064281887623201645361527325167290820315773822725163273402250027169802323763267617333668515285580903694780947899144353547369663371921364755812237151462353088580868716389565080648152874658472352407467361651383727431478042861930085225196825013651870141690152607800258151434807057201484149155640830470540761408403918396801320768299245894365756944292987591647866732176682418505271390843225127248923502837019356023317503722198315233808669065204030493059554518961842374335184875328824292806588771735301040110389447736186019760537654165630161720796736447187178862902078053534959677931940332865504759950329335366389543059683025634091449144414591392279480051816683997922500211892917621463368985938826913212170036664734426301708283383615186165472280640265915139122037619270501930048078933387101713808739044500393406793285473379561165625395393981420681420005434900978139173758869389806896648285181118047204928386427745442858576020367559609898303271058579823590367524275373754163011383643430723245217360502276130914992421160405889807711191274428124503347397963366157855873250589413689703994882036308820333154150056497574795894167442784390155178062146531201004922202220289189593724445395245428004064332649314212744445050480680032240817643369760647969922248697627756224155057468669905842497685652167161331029738120621836609501840571601366082366766879830648758129387509772217169603506058746792130909697005213385070687917666012513065726611753095871502485170753015356357018005702384668995732983671601285748815764643760769632369356914834028221061213993437158293689049656143390442514498856271203441424118525294172631172896662784496185409089952304931825839045890658735208463791162207895684863115117564435561315752676514035916998304894146985581080519985997102150077512928513499202378058181106282871912027908240381703701178235182273394979023552654017158930481803303004599224450847029331848901102264460413972203280096850299855173436699769643738877591228614465325931648913889630827033883411816647470796884309733220033610146919804316104098169272315789252277669848524489080368431324955807084369431807233522243163270909418878290462878019605053580405709521901290629885643334097272756827954002749389397590429722456645578860051111943163672050417050876553835776953747616898545367608681762465719652037262443836965613734627105561226356019721641528519348646206014751187319197379459831753990657341814017851628017059703840729463560752317522957454068923699276101474559377767902285960462906389713349224833002611859452625472776644252378032501064667734482969699955641808942356388762756313545449152153070303027309182840425060841079251452045377491203288314097866027520141330302302229045863725044843340319478115305697186861834401344720538316247973792869684574244013434291809844545244436651742319378395324787895595576728247562618977774509405015738242308119061774362965218719313328556662287682842667544491904367365186221827737092802583489205235098647681772059280923806825697259608231679902962204796894868078569377656374597345574957847696826992875689653403347680885818969413539399809455186255298864318125981668802767347740563036222114464230728424640976029145065782068852312399042116589304700686819416550348829886214376656107266659948996787756999973903673637000764697306607097841387326923381624664745802182050541572232736106180281262300072756514490883541265115273404414901518070978460600060734969083501783409040080179668741911529094372341139428679637168205912007540134677638038274969192038450415289824194440075772580509606701141926583172148524579217809245200517246918073548449246845484918384950657078768346897722554409142466085284517388860368511385899707706772278436296093919454892198766130809169409789453787492166033083522394588920423529148684227251161809063150453062365886477441317847123555023852048972274894934995211718471828451125609654914738238621594491133486862527564258259753097748838210168633297301245114359097281946546595118342781455019623438279764380081189057417319624584238779850696583185003397783181257093780597076834704407019181810170236052849190608076952128115281868490209894462624543627676803717005997684134500262695598695317632874143946914203901789808844953711453374222464325764257180134640839248394412842219899016211636574616766105210014949604343655094850004874516657002947259179502490800565315357854560756027915721936878627692994229519530208040362673401258197612331410371946572949006564410222347414109457075817959105951289262112116902154523644962829325166916502963823193037616311803021532665375232498848019389934865743926408210458876356753154893156313851618799845743353852010720530953042542677344253530511242479765065223370132616854207522919649122312587452906414605366631351558211463840314077821437909723077194215632311738670403457579105113614224607784744649578850193787809584799235015694846189734411169940816904015894798691434873131988201109726953819546759274419906482876986959619017359781867003141148820260405219329922757239760349675118740631253962733309915132280423794816275029122621360742220787834767965148642200535494431481186313917362544115135730780219767306059976871359847021178891350752216223909285669264549617141520678846143219275979821932096193796943790262761675266341449242797614399853524329298091000809177167839154553542510087714276651691340011429516555418177749665333145711342209103864902183972938432364527312542367565170763458564262638637788654313356733876647600554623386985185099360692991451346973497786985789394641850898570867907114235238494965560727570460278340486487476172261180034895960345214075955647863453605906108049798745310898050414565060402938000421084930167201098078731821211254632174794029360754938520321270123307788708938836519722818722098222908213126055600600752988759494599659152158845156494126422633077762117103154385975921095242497228275667714324143866665218517004758321730569287429398239178782007426327453040300452643868250984393041912334667787362637285129091969668238264454587896180233465456611358603493877606571684190888547388246830448188383415715280701597975813639616545110736142184287815315119346942133404072713713082694583702805196600379349663233283627846798350439535252699633782487940603087971994314844751018082488356327829219094029726940068016479227708631519234126815179848045051559960595533323997315095208956265988686985013523878188264269017509865698581745447382881113228232435894094761325371919911451594163974824984875975829978109576776714848585595478201630461184003141730037428472970781176533299500546153055797768063934290868827635707651104076385222392875127512959023809886186799878823820044915238791338649797346350302932441417955859915276489339688263942941093626507321907995109500485971544409357552942864361909809199460485057161329388579419948697637660706034370057399416095541065345476497001672822929851692379556414597912195029364458990067736929448722687444280694077531388720603347640614202993471666148994999756586674361567476348107589321293021101591143737422851988127896064630345698529572207048222926864784297922188663496256699458012282837481875352200185546934843977126717955049618797473307031833380996504940783307513099598559408897966918503051019471882717559641360389263377686718001090227746356358515171847916883056122965912062231155747333707062721508421168889315669895226026295036271336619920574076228201415781076418223824910897415572279297690671817298324280375607151758500535307586625478361618850637482066587848367184040693942108992495660559738103858470276194992489775462756594260725281853560931170729087287619250234769142591351324521910709441449510559676250325427406179143873520871146339707851229766058032506982102249759003584007085555157515799527921144263355943601910892948936726099287420869434424766043600960200496445092489688084931635322449143888503385409831868381905934511143763932203838426400757196978015949713746217729694464504930099407688685609204568411340501252100908407698314458706702514128642010314579145633305516378693165516588604616897469089793845302098298296039588309834899033575230681560722635825455211349721717378615278646486167182362036085544467561262964632952648199092121600373158537594237281250444719499900819484514131434457636884494188625787113495223201059461109787566333021778622170018307674254242388506351791417007616821690891723233958137700189186481131944426752552730826668207881759787683934547980206797144122679851266284928445851851812545712416604555289017699834678276675517726475809282672602084988639680914540694359901537904264054756071753078988973441787039139690761012241227091656814123863724247399719055575042541409866303389649001028589395870462024303053996132593814983688815562274005910758526506113994733172288873523170956361946964837066613977609630229453731981992398150297131348399787758466214052860588542302265936350293843901862051633918802315435887936152413681588028312118072129312859874570824713184800192764578829010012395976603987499920586150625666472576496568338387122510196460793048253060584189148172408537442868101791342288828383244179906945730296287836139814932263645034857261270668312709788704947528071058876070881768546049689140931534191023883922094831412836249885247300316155097565144678597678748086954638018711321283482972503301755191829162467462673749199803718701407705043152466928271750080647594691711886949485007195415696872734031698548679903944782327947371425958200111866658792442914549922255090861497992200393856799387699197531820604000156499617972747569454983207468239208949009971170407609888085627616592463010763030835081736789648576361577678192577915856278770717755535300153076809691939566476126698285842219515605166412480792325586307945361292614505270396063682336507630796349590858059549545719204806232280608402909866211091042422225027091390075732596732305409743474303354199588919272343264166110635640295323674482742843997405067553411879451356198067281027512185632687238626483163910507432246776287740631228198105114579265302072230091319096388391295447220856827726486510080745441021783221277531140330287312657083542023989368326136548291397563738268361273339573516695784457032782414197880005295257314979124808700213493818923829182199252295960000187863593841971339373890373947636165463753945346055788935677418590496620239758658007086480241493948456597627967796294750668440402587985587843851573357030560528232396417480716787855833662098695066632332034913689210343140070209122821046782171724132811590691304206030683628634553590791223217327685770482128956628451032773072081732614878304997132655942601053919250720265141807994593847851552925063200827284942300757061588543390043406142140976282319926002025525581768233075787087082959707104038457646867431824259246404560288051158746011513549930364458867417809406533237938529641769622237682635374763313763984162922138403472088112101542651154279072974282707182328707653830389247621836904744509270818030760751803650615376923205501155101543822098936286845567200374898306892048400373854298117687599244850657303964752216036596610580256201415433222703834848790076989311549605349491621156918512656082602352480427649437751553969348422704245873231394285208736289951461334404986010176200114437497571526994239608328648874771525114948249800137546999725161724944276440396029203727156390185962876610178458686223008705604378244613767593348770957785195397605712435394911331330669685372584649797510675705435527149056491821040400206707790285064995703901978479608374872683768754277038670503152763738567967877407121377468009733432363128210156304700634530320645198742493780420201667983997226330754282960494266530911005090790262744757395986987283347218153711036699571807873835038291641268748495684387015256404450122022254616224544810236277349027518510866634966279145205439021804013650402138962811230147971947408320642142721883533506936664573901442071543652973341125203587869018223602516633410243515902244974745648091974815154399028436541310754989623436461679510976094548514088459671075038187945854906367279135683335442207836440577448620302005664421162137141321796359512819787290902101671885280776706579054667946763444102914100726840126871099819484044477863797662966546909859339474511330145952405085656194754396560588552298487886336740184344952568277074625567430949842286375598509940047417003487412162161412367465214717201994575358487658699562626494273384679158746749540311212357369805829628928115186593252238400472122434841883001748522203847209089436651854697567711250018746887451452717252649597013288873482621902428885547541392338039792023275236139286782781675163621723119186447695441130189160631285850351790038729940626280648703922245737631103229883268016932134083003361404851946255424002759273851479163737789717585149188383103389228356531050284410402280749442536873211666643792357560779552256479723966615995938595964914030197984942231734768678341837439001985054483889459296708478180041910994201776968139297860795352996466035612398315656718783652844278725745251226376469160897233873351480451078912839201474344031935085942687200441024728258463222242940109998131573614447187714012049736366856816453333887679455537351249753053196662187342702023728384002921753454479469813399822362483890136399027697436831884674160545537368126955535265928643100929265284484634620578646899982203519629837190064338572791184970004447447161735120049145811381250549669397277308023020808017857091109404486256895946118885218251002006012406257904863641847751953776615391578643420243340847293290691109775873052087871907697467319296431858662536699608204920771885326355103662513618304306061600034231515421002227453688743246411091150651718048649614152566906363421091194195282369090287194049536702256908515820394578529088106719084175943583273326536639170560576055503090558432436774413228464285880295423451841078692346583292522102563459210028724573734227300515647309178618311686866985687287291803691032987344232134343180700331731483232869071843249687161094200134046058298388812905686922005594048904984462487930982925606098088348275307669167658720918629402921527596692930069763397569644868317984391993256186778190106963969035612217832461304562660996276335001268854978918035917784582183115071084420657720735952333156767982742250812156657546525917758917611285473705385811557004311357122376845672228810917200088541013573738977631801594018441732655517790776600529801338255889084219403641585386246803999901808775528347960492014616573499664808715808158575180225976375740902681866495596143238578351732513848808637438903678909835767419493924084373547437927274567542404422367513874249141401673238103566132410182358252893124099450278260173352886220372961252864761872519655283728556926000560409484350378378883119061325390087232516807634696520486714532244165680078858882699028318399978506122658617590092752286108877984196221163753978659787197064029539836356804253492544438860961450588707318507724923541487116296803466512251169033918964214367670732873534297092682132851773062863878107967350622168148498296214817288074628425509668355837159471817899945875645586014392286291544408464193806771816483215364247838470511512797448625973286204264810390351662228043418632849347791588631216270087775769226867216508681524733015536282364951914015047143754188618615842722643716394853093967206270730836335329532625294848144611522265271512158959856539386156231538782904263715798546598411238352976887681973160003641308367249475290250228379610527276532906691444458669081183114441399487135769095366251979081821151501384102781273773233666833451873139658865604932579448592322672983059597614433694698295881857422695456392432301346999740531285242732485503292213231932091024603487955308708297707735161595043284194799949717701078440725569341668158746319853467028119073441519209641942833100107632351044882920865884389451545276749302568381530550163952711707356966880543837949051648029263706322161859241062395341899484102440844431506381519977303389443803448398916102434841788851716725688699943397451267826907001727633849407420401109617011672373262071075328999768369507640685770736720250521327186236162909073784952033008809952873575215647032062271191109124706889224501727695332882760839096767676033177358538843426324561222039089575692238681450596116094667599954830686488340016758141695976742526557985368171357467518224242441392751803903347337270316920549234113402677182459068727141688743485597812608934559580178172418238755459132006772905838710026674755020332266535246440164602296566411808350465996202666810857817345917829560265432186416429275616402688169051339949348934352631508434673476385854924951531725424673754519086186483221950504200134103072963645255541731853134483065609648921918283684594080621171298665456176420792552244012518551731090626800253915090524653027174355429328588768701944442698694144166388324992185871040254250993817725739038115841975516024350906963549570579057949351838325727822780088218490212443493580943138934516856576472262929364916505156785129509221884007917021093058118729161464021745802703756144032999408411224168701599497350827930722104718750723536030424731080805301874102742806636765102833527580129975664082851410438201814828330935112924208879532158895096905109442524917047056247385274849770770134705559253670058768245556946951123253744174069974426653150434464780031054825343594099496649625649503628494172329259639023095067235105524580343012312707782298846056598957514660037720111826361495568393022216649250992830298555604133804821476424053053730537137512911099179677158539221217637754549703344757914288308810533997964773774310844918292741111914316207681382690452813967472671923143936316083023533521380766706355869688050079526287956376221283379348986295577765594004547259905588071263306797547866006221524290076257928833605822990697116363081309455319484169406909638471707212912164384063073622496580522087503372363123093219871787190172109638828786379468492369232116160399043023543070557339206943130662354100770463988774900655402280457877147019024648626690493959732427829986114251485429570376775133723457873266627062770525541315466293896098361090444894477951715150705836304294282305481248813332260649798258442733203027637506690257194104187193057266706365013810591365894636961972967766467744017591404367471347476644131015392105814745474042903489795752276376497194794505322861660070605416749480149232642261664220192389639743802474541997011506306498302706854875277620226877915722464063661937853740210569224385987738580122761909733251907027520498595543682409058493198864552525202968201497676527983931684003022101531980257074428091815920738501964850426491053748047598973933006133723200686796475082433998600534634110248331097702923758358443603300699163716126865152131710232544237045422434336919220230359710327216231512812473469723205031847359750874379023928859365585566306769174522168005993654786657372170076577957739677020665141376856629078378249028855160596783511794413816053052122765173395421303084810853989831894503757790114956157201373986260129620903798763603983440881817327546894762091865523414772219846532341633231778577360227578251954913673332099274098086590856988213397153716524886396129825056794647924244461665140112697480805447431831029179633159506586156966598762591148486763136033461991950650480320675599275288948159292971251948241117613121379045445396420913603880476167720015527533667171003956016552355371602298255206085128383781889547539962964704651438455077466574889077019601520181409674063368174863936856583830252915028060298893741630811828461916127376674126070968760127236708555933061463446321912721256606942034034089709098943973641380592437408998973511838960387081842239007724692265796099136392304592217287758258982483063672924202546511133179719823544417877905357834915436409855630306613940877331154681665980234244836488696560752650203452196866949348198279189461880572050061058920986650854795675113394789191665349378753861474178099456670613127933256925711156734320901553792288662569509948783951249232474658361160042096080086059889630467009920647773564214131636671499309031298462941327977154571827784022539682182553876637023468189322258099949982983510252427579203377092718002879996507045930972031753060117976872980166105634401765404437429560633708692848785667030988845119614449804036198581143978900042423462375876086832497805107047785389611033150224128009737126559026944767300747907292551512627442874659500765032876951405252640349883451582779419075244792907826890146921610283399218195020720331003651043044159408737712908658107638631048680645596878388362683156932850760526631998296119424049972995768173764179038644547738722804274064781406065673450307159777423449414475486438087700096969464582762370305378537479029539875390203726996707538024032527325759113698183188098656143283607075938757887459518657267842220667977648615579904867459481018535512998057766925456142515010016406156482384405772630452490102564490152354178298621722320883112598815913937124811811480661867552489179523829819118317941466074287260630099511965866497970862811527122701899668224953657417551981966533465134845049982459558523256142728182335817648209573026881918270593208128838903506332962782799664681021711923303031740710025729914823597995402663184074121924606784745149954978292752944767118995513723689703383821115514898155686402565893381804908600544343804894003841235180984415866916929181557131271046911485047995766874164539954087999930479624707026750653396121264562615515010274504096123967018746910721468223502428859176685493259486772790009940892216803585328268676028137987129640296937187988839437129622131324613724901231868606485316004105434184031681030554974688103870924407025790099896627983636777879858409303488879590679790534443971581383280964624747978320230607449598931199844593998052660530036809207333560773260375680198824638686566733179574503881229362530083669226393781738615956586428165018474575661346868520119056985160833739718583248173217221114517506269396259339280109782308295404076771088875730212298779387293493177657122570486945403614476592558700287289108106006807678500644928184388996429837694773855964880008686400771680585829291959449530510605141898513607959632351372449867803315419650825456523700137129250157447711740777779665280647559849535462784682687082085936359122498898320738754482924077472986104167545973320788990375474112561382649524302255244667038003369949827442911890605478982854142009311228938704157530350055812108126384358770894910988723040372742853939642309375064601195103659441110980921613649239138812039972151583061076431156452895524483451965795767562645215740739427356927514315273028483754068550500334936724409242123837628751639791817934681342398270905057374716090272183298021393179564162540247193272700274065340752136433837866650946188863505040129676871421439351586614733193145875917905398508642660148428227878132681095368701249426914915008040514052600304346652105398241040020205117321033271356667289857005505910245922198750784719009423272954058968248593128418004039103236451316425593553644179915695426047145361397165723496120821966597754899466491336919722522560095092489634116290568441236092568097290430767720195254919115139818841473276951873028712492757078232252332070334486017634701446483130479020846249379274826545399867527237133504430365112170387054950492363942872164672578650107051995506359323511171609686638615089051298621850497671741873386347574868674727425907685838209051872834004005304590452205801926926892316660160394619722902970151518032334081687165065026215926481731119524673867407711151304871301615357570636991149426426850120415647275041169625563321940852530010864396717996183848531373078736786297689242463905344520124024407237574706666909399716415662371994513557580584607488888436551709156971385324904869052741729159628696602023922120390216103245987709959719415258077368406355459789316483720653407363134228974570717631769623673538062938302715340769740010730868701397653743867475544757829413264124485255274615442908206314712128659847627127607884456550825830218219891176962306357186421462587618951196514449299305558260533725112439775370887396859883117503997723057223787949568550099171723011304205991157409514181280449717655718229258577690265143105816713084373874565376628855083713480524814167833546545902831093898715249724299360524263594976447964533986431463521887758786867169352260253443989298533313795664369798711895767980075185771149524102068126146164550155070114256086903976762862585179218928917501863003051840456312438809091172558727280275719142906380589186917133188494715204500886643507716645380086309904099188103627811653867902585870054331009969973108434342472822549729370976532542023812081851630294566592140108843236754878501207528262766794666189404768749373677550240983150511197412986347788711909904376971289845098347582826723833670949341028846596685383762124113961724960439716606774159273874430021392782570325737583373691085763552325762346917654516039017763983806060616469235582196809783162653557144444593352185538303668029288228493370829350041156611793020301784765981632537892491682981688317716386449412652953455363438500824283919409643572084777155337403135062542095424050723156721613586544906965435481154688721191347109586477555614410887340791356523064963015743487782006815172068545238224089829869873911965602323466845026861417699291070798591298791130820416437503305415831105529854192521446304879471456799673183852396566365783972776031435745293112413258482703196160379073881287978501040080723640579170975364658225792415150670166828301590487306137617592493930948019980483415436125186213008837858203423712531448591577757338612768760639114217757113719236797215552238160282095418660616181143710700929026388778244832715427765319582843662946545999272068066010923716861395317310802560882296565406747586555555917516462176213590002293566568172420128663224750308110168231026015267253764066891218250069633858570099571875403624072758095358947042732726404672876279890641051304847011307677357207805108646938318653433954473637486085416460625494299611160256410531358232244596361641934822574599351424395386087394115494396644955153261176540891134048200323716151504579848725968285145240622888718271346314461352986050640923884146843367154053970835672973205814753959937712745256967044544185713672397039267372406106543595915900605098372006453370789055144235110795734769661918977394398874330864285952595085493048328672911108820940844813906346739465083475678087223180402403059919845082718028838785439142332401828905194260566835499246878418717195101704059827651418681187374913569519329256500661582687218432353781560022107040157559268737107072081045696621111805088312754288442665238134901904571638414046987720855910897985851094717716203575279963540051287594328911410519301240083455875269341995339426129592693802611676420964213081806323759005462380365607889112520010555684825437144139821359692911325582971258798592543138065668405837100200030265091958040797426271541099048142070312062977772448976846529381195709426555307599349763778209644231468467601412598766619955944224482895387187984368447104388452386478811940240991532037201449716451317179599232827214178546872414659142424551137048573791582908994797493405446763463354786181381453062553116212433502964461990232113808488062315797306668933780070787491734867713462559478624984655592745134913579784900398118181660078787455815817645194832446193676014751336312403602161549942400515040722694480684716056871239179762227535374107287367058746768319403340727914470545525239812406990854699214289687511802747555489596372130082146928610556375834907624512927185037797136876082006839645153589238697488352143562536394012244673737848700241641151292338105809185171377442362853305928335665090676056322547684881613030497156084774241917661697100156010809881946383693592541783811532179960006609127140905447109951020179030328483025843524154712699364710638278989584471080425927886767790760489158377716355813903251512474892889270555486224000652819921674075736496334161222495272032763024681779480616842283345005438056262079558764183589888113618884200557426772314300280137641986085711108247232090404732252518261213275308927431489205320506463405159659499283075187083370910256681394351459442481749753141660465629685496308500131616723987710556571572612551461646230588045872951362372799157958569732882837446571608734851300376228822184449170628900838344689882063644931415624002510098705330390041622445301408323734549354474689346537088520039564316066136441889080983212265846093984119262861449921057016220307572837241160759649557689950171081556738421847412567897244055583922236379183973416468191364549956910176476521041748283293308756124548946295360317866312866370350011515789455007061832070881085258191614795150439729076377947898721148389331304827083236831032928124157198644119909811366533421213318845894833908819009507066354978462312581070595507210734249425920828699268752211813907887718744535365394291469653421648193385549874911492589091685416669942748003525060121200506188488902880360079388657617932344888124692716653556196058596923934616137544399930013935763419331986924944541571520323399808546721076720046259209328489921291344372581319710981451011836929549705912162159711220614626327228097813183588104933793931838426028519248931507876246352933676755828634515348889451579297509336733277943009769708789444147270509325951281005087523216962455195353503687918344388044798726792783017662532839948458621979975099948285437574406035725074281550813763220218253073450669496916809314065885810878293213281379072267095446729938920760938154155389754250168916050346620536356438001420398787159891136688226111705761141532977186842645708396731140619405784339216627598676923285195603594347778398967648589046160628480488342493228691407545489564151531579150861738199246232335852127347128855936016055273829920695422534865508515227004544548591620753834157298191801619286001734144340956300849199725544881833696366472388396810043211896549959582370677217421679031234644086769028626550290032449565826201170231499063860899933690045921019792813732846428647717355112549848891794528135851627268091729460871507102690672203598650801020441857717176684183675225454680905182995057582025189021215386402330765056536831607280958518175275781808574794240024193154143119467106046193111972791833916486720773195090178780053921498403067845870785728801402138186651763218091014972869381374234214471313565720901971296289690995770228378490457808120154123616585446988152492579780664871389378422381998423345970031439585284341735245520575917960510999066500778472229510847217312287218220898056990523182198331903953293713687064706101737163066732941090636761910284728906044753613450842548873029297186650998264712292676420248996012912161551570724382433056379581222190524200748350336769077568518716771731129646292069365239909792798704137459777852630473760243861040492373804589542783634074780703362771096026147572331510053335336210321167812093635904477159684855006916877916978165274917942208811916426155730209179554790956158983118281098853669132770940030522642447969188121355268305180161467912295102441476177943089729769768404608963774980429976269155820135048839045578771846023843575510166312331214795008630003065291345249211557778920638516691733049186709822790000786311481028634871283684038757219444838197774833494439876311251556725668087787480273027335053058502168756854740369480575573740644955357650049025641052142796485382941681472325468164573627721470778100418870905313410903130420265273707748384633902678723849867127657643734021664575492068534201107789097845462773669007841476397354906216417207255849423051708820724620852208661890002838877899854318488837672237507744778746203902547948830960940123374519645265290059178251011274596232944882036273004767489351792092473750933934332650546254259596760823997348681247814493171812510697947966266849693640928782023967431455557444593481384548064926340025643470896885979143205540230973689075367233636024932242531103454107877861045702151226040019020052381318336915645869817398443145485861034025772972422589145892209297769409743918253705686573014588222313360712264125968117263217035368005828688072528690302434035311087467806302193190120781271660895064127541114699426178730151878758862076027470258070417260319146057348779401775406873844801888101391187418827745648341619817863866786181822072754353891791298045051479869954182076533477606398159421305473791376110222559082074042103340629604372476310932814478918531842693197449198397137355071180136625090757759468820452839310738574108121884269121161171959704336965363313345364667552643168977186205294107801962445163072824289099320233565054909323748049623936263721138508039607113311954206231463608199943401406980032134113587984968338565890122762298530276394967836596867959054064244593155032855795468178636917965171912407695929569324635671590682311360022050864639811472757392267183607053272221588893434848367553696396706402315492610800118700025385597449542491591377152363488978502613697320759475643824329971854488104426490187579619152160718428174217247545550832902960957908445560784354900586152541411750999305720461336724577849582327308531334451354720873943073509740602765279670038175436839994825841274911784441837455894003659105326881699936881636251331356691033226130985953005013834080612653900564179912603376979123799866526735959778377741625998366273546016274159421231419025902239373998404540082779538921198483556916854730871586283233592129649363003624636213758074981034263068027224138171286715718381245049714808936733795235432822198113960431504251524295146594265261367041469557641943376812666480517791610822096944871455200066366032400144593954023911903233489747337227815706012446903141334269912355993557362561472755654903111054935807854113691021496096011833872799580425677388243046162473478494915703464087243496178063069997836776607989088074503589131948395617510121737237810703243586382075846252900751526449719724004567133441301222748628020108244993812489379988569552420422300782064364448631999866645726360967435814696775108672762641881750922915228032400337636690021877281938113949581206736925502804393674954170820900574918531564636260726197640060885220143051043569217133401320966487125577209720190397064862173106858396560387455883612249670432008584572268641034983068106214933680641747506776107273988643912976229188213346442847936464374707005288843558214496519072956571001232240842499686930367208358530688660022559803293890522443517692582621351622504198777737152366870728066825010670934637170458388931520172233144134825153751179771716860517740993577986135851086508990655178559775440203637788804453514233664344582108881054697710473687809217122148250715826685678694804515151174430301760756015206591421009017707103110184394009102679090348331994656034342322606001467772944933070510441610941890780767196697502812895364248534190820500088266321354688125853243917475101645064791882671666009668478092304248068490234039766968918147089612735837344931356350368790036643909349585577979860243635991316828464818173287067720158200657980611516433797823969458540469661725244766373964451605483914808013526104127642298513330896572317107042898225564584536963584758820562325246106895352434570547430742352805788758376712955607043285237895929976687128239441165682576933611629941994685257216431493059255733813558621206557122793468104691746909309365029757338624811545216417559847206439560855200513567028859443191670010398563072009591572954881239475428685742368263797338365021394223262029544623667479111354970168209914727436822036592926957300762865575970526802591112864196824979268497977374472291477489270716526888226438918462288188125185214747387153249064864021579337764722806252279775644273345436670621093194718357776800721556927522366101368457967893649375983806688352099779331091841719260233997704924296660664079186919541332705414481590365397589714065584990264524007283241665180118410699782641235972111868156024074659820143173785963347234745259497712086542595532224564485028299350517978001761162675266456480776846536873067824012949854069629751849998925368111077418111242820214043072435228278843648634734828941221672297329497129343970481960904902348487382869934101871288175210555409848121869242627219864267672478025296609007158345757019736272596891270256230206581758989471762475411283716126143243164415379609835947580179914940475977741089961366681378246466447625115622496931826634911160927196809886580311600627515492429423253342862503162005103427040834810114891021541948260651479720606938957490388175402631895730738736732354393485393905834827068939641148292613008248026549720731782956564733951830051788933510710634930124709223300718911190560483371577909088566555407849689256893668268455250980206419259307302017210824725024572317487338524246784578575816531600210504458307894784398568324355893012500471510149483717444927788106970548273004540748185095364514299357160363478570050762196222975166678808544495604025086171913782006393586680733596528333091838698764474413327439616930272514908054485008673910965725398574549466743835630305493942384900494459655938616509561382971437618450627632066516751806540252488475311135976306751837171146138615923069131375567385096553780609539114070242428968773374792426500704582372698852577222056354228967497682992095839057479704357675744917036787143327582382564186327985250269751538580930419244327929247438029067722617044872901657784633258560011405387935501387340714493411201982222073197234978185577835430227106676737785325827196255374545033472420716766062868423821009711727634439461235638004268023880738385240396023781315198061769645193304735841598669817439298637230010558385046669824777971837455418504187259487337101482006046580910258328581424596771019709240124696059706298103315187772619792779031031765835828487288538465102592245263255282041796490043070227236904300354490285249913020316888546156745409786703508956227170304116705434561951828082993018042223997895784911558611360787567822247301758069868134798094910911579258111725724196740455759488709045108299705617969107598582586587158560479172084124145573535572178788230371179434819013787022342938481191180320081441367842185348972287763152923808766966717338738030134629430472995709473292196483239863430909770595049619830898812081331282722549472047433935919917640222147044454661873236402953387941413344176003104958121754951252459146196689812967691124928525087551414323839218635335545254016884273424343423295067714462670747229532650655055773748955008728934086425555428874111122922013204800216657090186478374199306591029194858626207695467350539930208365151425051176667022991590526780836726081512225440510022869611529200793554679715004352501164712790564627544003161784555552027952754530206460392515830756787816551261601946169944605068331313999469337117843600073892659144301081923304013965528900471791399054259440555315857513651497712979750436152048079250351698684553235225203354154752615419963305384387184741420629137642901730498628216621418162719665136908258268726482549328304320100927240635298270807309164885333194192943228631525090545634825236617027083011154842396147161598397034348365845206703628644972732497751453307772330043442568142546607873476292674608892226738428162174817337150004962970105950699523225073293745589344901837620642368890229852674666448583824166922112459184606789596351990562808790700082793887296657599873422068081511516372027029097686676433859064726142299794190893040406331584432889903979389126975552341819058435295951981082681217074040560326994254772431737875827770972969442885021513635717703433729759214625442552664466009347206171664170886125218092258006268304905002552315258687650148114836865431923332640715591694316142798623755611741676821957420114689177145266045344000477359553591011480202541057993988803664013133598097253463017411604139620781584326966126676498484887703921383775991793399437270409800538608468457505504651968831510564708539502927559692013363939238994060822627429829214765032953859165067412439670541390908142122047740203132310850975788676423160325009251144680426124700486916468650674345143121760243933243983802178049135943717072962959434716514903971991265070798703342352646471342144000861373684116257570505628457569177166300934892089255515064748491041910004338261635543229540852249172723746494503008294466124585287695135954873623116445680437322848480703237630340893758886455089509232955942415620298614592202032390924476277928027004415545962752645012762004855250805175986483012360523134488688213057107110180274947998313127709788414711092718729405225970419720748194550502892577367211627338289354398438197862267600657078723755547222978828530263127271526438561422278428651418803872500768055194103455794918100111731395584906659685308907105989806589151273360514143263401003435820929256489011554611488703274450328276554508159992105339093341754346233311966633063542630358286293594772731642162343802836230111773026770656389225957400741271298477830713623812260364308220776157687797953486511821705609391143229682596561674328567947671863699705790172654392079361418537650636418973914168789336016325996925299894050223058760432319143364736377258577468325712944281488950638428651145885549544710433262433296632869809573202345545123317242717333986213186964414437260088436444682666201236610314058854265079010522620158868151904044644671875127820822249185066267246815000681103338922868202447945680537533897036433409880895755639224267949513069308135819320001925551818263557686015003027811901741253821156932176922125764588263799672717112543539667790347323761721071627495101366606398693341426082966212989174963011354699472524423361841990796427622113570586115716232452486637409323471797940932452112062995200232902992439524819862129666438883714037234325263424598438490808382985928693599998750627314577719122357382865197203028419413139035534840799393652567720702086728873138250980593360518453508123418757098176159440412387770595098056593495370275407252935143932808257073281120137788103093761337168839767892446650321871709870432408079892543292318822226108521178968189133694563074361430099434292168602407190123654663180788689138873909179412291840063237451275033472894887689622601280790745042130424673828043652048254114101179187987259380822053328763144148433239295493374450278850814542274272735167059161013585473652130167331504579744095282231335316432214890641383285612277660923999640394249276660162274417983714397758914596079113682438656091822468325078291829444839735290470118879681781502317149171153845331837811682082438013913369500124354765980937687595375092546725207622050530461819542227141998900705826819258222177802219143099080993367864754175071398162518152164147226205202270569301208458644675281843353142605304528837911161379114054733911173500198708570068539524210085290614910199172090027325328445982372136987200358639009919280115556092620963320396396672399769335381543120416896093585199242756986076665849109107402063645397435482468057637494123038609353663717130487208652126657153528493595596635729145493451393221045869370528164315211452847177960331255020079938894878425706532013301359998915933000083515656501465736290186697864328968865038970183164175935217853346212483839139349432696855142465447904435626339124439296846941972249228383256468263641419961416629913074492677488888010692571063251438288736340845489810233563145764647670271464893893084051279187346006513823184652363824119303263086022530743843713036908086024913952762128352946980499102510001706694730254140097446240547928411935110628987413624490050443322714400851757726470837002322699733065780082513155063394418907974825791144717864049197681506611664518287771664977060834411812434422052326487525122106414980356222336829891440057015521331829042758268573916477362366907260537293449905103962098886840197547168620116417425732401317754062807849481282754119818501863300850044342998946864606652675188181255529598369113146208927762886529644213538307162657083596581127662087783670367885978947093969135298039562065712735330326156420702261213583228977875079296204268941632477958433607433756461609146328963862909663452648752569566088802922261753999288669596708624270474344638501623854576235284161782972530497916883939796658848738138264752435186460519241709896809455317621005360421152624436834966114648545722555900916478411405120703438815935071846746768364748468350691607194356023022407051990618499984661440779012229748475176639200814117979089160943449551178774731493006070544388077912379435065054398272302792138673320516872473453063893989513344563497217273686699258971513334220006389630762906991373824605651858916092897589447771075731599526230680621606223763209217680291935468382094185794027148810417676400256936209247151768736694510524640639990577853485652094918961756352165179817458097404408823546074921758207184294587544719032715560733638492142077308887305813653791843078536097998631763282966295953329571584588682275095982684921801941720645361831518066530573385189628538782765334894619501193629513859547413701032098487639331021641303399188238008801405987356023505980359872830804343232846748043076758954419745771533485103774725274067909530865440163364408574580512946268681736710320033410373312112270587676226265103053280799845808279940098682820498897205681509599030911417040095700421851823070815089485230141280596225495363380518221847386540737651115858429985182633615187094210628527483202578030207052212190479791984969692209998018320587484881050371948474036053059405723091468492950901302682417459958841561273791380750643719920911728725160464772657293496621147971719500189228335775096631704362693551264864410086816000595346303399404345997556172092404912462447281445924928646336612070301783156421620062441104526654484218591179335476581099023697478770554018258637315041562618072571049979134467960259700106371864375219469733356433515871498426850501938150899755725358306298128999724826485227228461937966669800309846887809880851706863691891308750635086241946997912152813343108643713749917238996835442770555019008189040205303860757092235483415207027482513860791941708084449683463194944871721311361394878961968600232168375708905392330269537334486884329499490689655688483168287827132080174408216387306211216041467689837390755230922915554888193602919158193610206674239039281483239633766276305820758788333786786967475596863707212169726223430927306830756031252605415621625261999754492939230614527224494425678630206534025546849343275094871341034805599071796777781651961879579814311901125170070780064405699862930153521366648391174527646130854439720410259793641070728121231252620560017069846443495329579124676745749109156167400902089975779334267309096098952815935094499613111053335398679818537303554001593960246700401259836027383919139253755181558737793424636742390854440873197366540194430994201375353110124856180823407237097455100806226511161591293444188999897794521186833612225549959911560149624985685314534965431276950960559181059827480923061842452114464989801737962774608482242490695030506773262175504130044716519941863650487170535274163350130843153016941914520798956233732886433564622845414707617910096538733479275685487972090755842935102297305025023738477386074525255442323274681990145826330436335492529220182430569133959128287054606288246590817032472195418730248163126371565932597939996271142605049849803576720569248349956278351779835837318805234753697190528228870280186684190412775408101966549335903688474630126663099320019129577864405955202909558481081733117493105860604082409177448771307188809616576663470031895507196793851798628686858444177708932659989742290552884471413345175230807203153715179373887444297470898850548761845312398320620665353091751151211509830246039646545937617712962193829375044969649265544879848349307115846070428473823803308689659278123984886007569650142617786833521618055252317421183448889630472942400343058891385643009485549922103778142214288987373705570631384890345597844941610065005128488589840453519393853827899690207169283687001262662437613037860952305451311837103447394268383693922145986209714448721665801962956783570321532083676152675454204911480244292938932941050684870968042437287322560121361929470299939372344804268258348296068266702146465507430939934609602195030485890528819261231379438409726307158429118869908666908016634640920595766834849474530061845813720572078781514789522962124531456464082532446391459119923360033644587232503895757427643868078457555506339765775976461869876913789334667698740428759718918502883171756521023251622276673723198150312128737934784621662296948049787324807902902048317606175689917138217698468033364692607282385950779160127459089917002901761568340763865598945777515593890336896218884759907540162949171013655463930940448857822604946245544393348568070884944541004155144093252127405061558109928582447494215423908698390037945422325071094188653636034980974705280974608500976161438872347049907978306405854227860812969442171713209088013853573589287844172580538772657605418137836049163301807277807986803843291937809058373618797564127997899879536660528964324436278915620873940487074844261258333957662104662447519117777962319426830273978948360390312093568313502843883948406380117796379180670989400600880011372345580777500367895957830036144099393183476612657092100591073960513388914415795023161332032847468458532021469299110587335452236101711547646858110581084541838752039968649340724707481825989075799370918878028601728178969545868043212863555456528128668309381396069648362518730332541819176600825349543821828867881034446795365094676239929391740056464985046107179533085037735905077190359195968140283787241920687762610669307087822050976258746346885427296059944046749840987151352987738547335642626350276577980575418747031951210492764122811179198986635201257436428775398464964827271654438296031705547672441016442941262205469772424195658972640275266911388740632300816359528949006278962962978062547608523639988928427470368080118356868902656940483083740521166417929051858639448624467563429954611690280903689622516642511259875505698567139112136732371079286543337199306247294150900523791840600163137239608583935131314136111924956681383130441401559657428905264579121606654915307329067680718531178091337700380154457801185851628869194607931313520529840383062669832196185459967474764221767942079977216551696693044083187883805742735401418727975711936974255536335535156447295489111427529549945107008878918428867403398956999760254115347788512045225768929910170786572181194876032257504233857810989663916527291332578906174788923088372444950312510505186607439077315967270962844847071050430949415921874088271987970009123127151771300126191656376949515319298436750872595326624174869068855397160730500943619197295311852042066108547006714139898977846151796317387795137569361920659959341582007143393226973829964397722257147144136938768881985861525552975803116695538056477814426855535572361724811183696221744460978579502979889375760620070076477027826863335594050770715053269179570708751584042902718198053468835041033255882002843913450431334975905286676994471438987128693232750853773329104856613825317570809660045412546258334662041972648005559212872380224061083374073765847946225346681939477392421193218149866641151425816189107889411919927881813616288207288548739329635740043323309749319908506236929655438220766334227148479495097222154416352429991109960501847516543559729174490568695965412063647411319712072338514279879873392865334983986856319745944070325703003919268112643596543953635138226786852232930238959781547542195004103244596059712638190061323887328789270059375939397652269708350696235695246092830412740907854431228820641688385739481907929976508972114152688486793096581991769806050892292485525760659421549710559694656121037428871329925779391397885437020374750034883496686815342291190049376185471842370215651566916988483464162363095825109378798309354365635971426919168495752236605766037033168178177846713791563673798111535259548783525438149800506269449069439812268111385132668798623315797890096203250590823703683945817514659917676820452648681908506411080813444979556010530526931591149893396111699437092422672822066540739664226704512884130287967060519420555028397635944751179162555631913567783007102597856643478133197543701995039716300416071736550242721628431478130524304365981066132682660491111492368438306655803039964205524139813981457712330178483184138026626915894018359118171035652246000536214096199413326358636831944543888857903430141229897903244487247501154312549982301514619918482628575856997441164476086766645979178922424346418736050563373306962659702404886021501875812428152469190950740617682022695512856470214311943298555993084267996027992666573509624425462409920285930574616147801372884282352594910386510157782772846675513489245314640047368579242099015976767770373329779127041194931503542593114986516390537124283111077340103130859315975408393913578334785109853010541710811470302940614928834481485713079268835371759321729942200480643992109279353951822651319914730827194377016890855964076169461790694184156752696154104649647488605341306060006043713074171779578271447638644175563704352300580136372418712552111783254582306103591777638579605946914602015184823522194870919577783790779603254116916167876469893481103067369743676392800014230554615044739941856990805590448269679005976160939349462137144656645366030478560900206734548987063828872715655798890381474783224042387184719596546051590708075671310755261833239140607714472111172037697191527674589013015180473588328595925373826092848810485867488569448096816488198933566873203581954127379604844991023718617425656865648176753203079604281408427277204615406857410122828681302688152147311410788610158104939462853493653415850620556123947653051524104754929808051455091228352163447339008743575634000106595021768032774112761101126939184578053203925887674575925458656025341303065810909593527105017056204432048786102724470475442684764128978072498674536756359640307038729394966080618190489729162145632908282498058920524155831199523841382964465645215873743097703927915659618653492077698768164106374842587507557480653787299677223135904687342546213867611113565474865415093862383693562881033492072044195476486187230632936834798119652554487056033536804839594468326374741056575387035246888367053915826390569595246110130131686224732868794789627645826433580834780860904095659068719268565486056698418263705452398055595723320763141470051705598573604194453286313177181832600973076240696893735783681881140974029044998302399324007592514326924967242106553479195955728554082103062775320024402311272443694766429048452399204960614915681636042775974117350634661681001347493137489390344035725704680560796723837890477069353305991456233032602394436572708120382882297731959934009594853170355155185561572015176792240105975038330203849616567978448147748063021703029101931696299672554952876018284072944205234272907962360903252417898589246018458656356631060281218914691734591823123521166629608149466309523123979829528427132711198843539876897042617840692526259778968845084927541016084300636912782398419912425409084048569728692573944195927882480892806609229388212533395216773330272578583567628204735060154526219727778885504833459885087066676842609553141174842031348818063004018428582677744086830410397117109528311069877833323023080277399545074297360189972936891730643019934593408521661738016323125488489501306698233549321776072131488973293618551024076127351998969676981512075572215187001199984834029585525372019106195062877088315241900357388728680402337340661695972361509634097020839091357384404020408824442504770661866549950580987794407721306660974260735482045353969696133804631928772051468744307621349604752651350168858378537168613781484964193654320196850481801755646404907713131234111961419886485648693868707472135832382982488617162873681498620276214663447548381314213583042828954863893563022883686920873672449132598572805689773086539365407185162940275024122826693785021380522520059938870385065419296713666003249077508564000081681355747226545129520081381469738077486000869385463512854174998112444421032148059293909561680445254659989713117514476333889759683279615178023189841922724142830317731694348471676667266980988358098564930249417182407970804453782080741007215340421202966917751117780283997921416563110700081610959942508181438032814255793823483581075443319451166203378691935850312171630044502639004019956804343435551617458241899773005034311263711920725788013596581840887974012949122423061852134093726359491631067119924917728203018141350180322895067115430396991602497646602727143502992452514110652204277827704751114998530877380231450355405204927536282411576300188689953590598958118626068863354940008883535938900864261168900330460152508172257968751240073829058212743518414660251110638862135877852755771616119677941610371048053648084419514035714615782969427878990365732129238377461072674193368182394545272601380256861372979296909045122746282039959573343869526676682258547291409478070419338174611912163847088194855035979485418688299884081019903816368626170498010598878785478194815986671696211000213224737015455149869219142040128419418192150475532302827949160016588459902052126440167043232738236860212117656800117023980954576544792917726640014687538828282279932548470822950253443921576801946949236048465029878862797667142515758254513405380794852072524514298795300920420650862507500833646701356397229436537556029119664344837096383768825536563888218462292509166769796995621908042857069393540465785773484901386907056449700496690619540577708676362104650719005901930830741363623589664098707337378188733918249159567915967139336940226027473447826285034646462202543317236014138806556839198170145977924737294627517566812352435644197191538398502090585770662401660123874675912676571668538989289981532496315362923817895413605631745551487620733158835805868948636718381936908821897963846063488274537381021954537749050975822429577266953864484858230629183763977642037710021761362047542482144500090448983818900048548394614159727540273146601945492248802381660972123280846828380408002524086601600399459605386044647988037212466784680952882662964010872136811096351610222172942942977535288327373207852513509104898384120705730205163158895682973384784340631779849802651605076003693107703663731920818490208317906640838129839672438535795557823042463126357895850208644592889704509108982985536657017510102459157520062751828476985697422216356191461185131327001298087267201600432866275679498432543272549151003523319557334977457390292685844516454257845282819808129829855407756848065770666176253142148776597130279640627530967591572876639865853281012414934986356338722731577755560348570343311637407732740011748407516562104640530920084700214790503269933751916632248374984164144440885781659333486169640778990872115532062934032098048295727573796900234291342932297557093521377681524256302375127599804844527364222153636028239342029914950417593443743522441824106809208579969812157310999363567847066721166900807714558665527536452335740786676091279709225509593337306659014792197788424061154401179944576084437267291396740581862188739542853725375201721409697937209125635513510327648951287219273550471293390934668595917923190973331520086204962520343207365823547365583034036702024075328524089333489794130952182418323200018994314857687680346777538978733451070897992503995220577549749290704790599073235301478797345016503873063887222438084832795943947596114565965803909500636850993875227202552786630506554513884860402802725213343111110728820436087407708113284987940355915300172533644282145734522558190454662174797713372759293347758043089822124697867586876780533822995616740160510224119821251235673326095763971775512780534863696065965815956397696219970170168781326676551629056359274265781036331781148973412714865484431164669507220426743876885419154277679628303288482796938898507525575934189414848972533300703924556757484586062387111903461280930781012483112306982187429776523369998327813317252782280622834473794774589513976581002350065529276150743744863413518040403192304766619647266592716569181646891557745960668676106508398977246665566418165337293723286875441147726797370054738201453694505264554808917490143857769702151501160020567739996789360548693945768807172987560493223749722407767110887626054045071726101411800012234841928774476634644031439617567764547483368572982900794152377614761836086477580361793192575612020196259859092730094451154883996672530669395139479394963034218085115481611474653930861577128663231979408292966313534709140462591277485021046729489422927098440749596103163135024790038350809458629387134348915981119900311099914205574443465179754885999887119079226445279737294169771871057760093635586556538715291284350776408911730881439513420960830845065560289125601799627709907126957527416721001957600940196511836974711442188947473589121137078761297082876800031139275746372577145999459494922742843001453942773373551856470537554663772302414126518993758773385096654297478239435812876228969775907543383845718010398796954249244959896868441664145320882565334256037798056665100253860686463716119944278279502684061566119334309485194131244293180631058203640247143916102769603618795682486337943706576814030312114945243189291319836734393169194532117718169147741743609472441541772670011994592587545822457384159149657550966186755134361165446278176322628954286731701403923289799273192118856745083248650762474580699209641645664948355671731178243540952744825900894922357891025422834413207014352428169954287543895526729544569208329621415544213703626847443397574544771346946244970664593674549281633266425636891642149778398975701969513507802168264610446699508533896412347608206416731403049179877005048037433561556532344341046564229663713203866305686131624487372125770152134943616506148098668831893932804228117289490536518350944849852855055194210755461939710739890805858550388982299127284273946989985148508133442660798204472226901268142666071064810807191076343470047473547782017765064607144029502133741161928837507766871890468689433784439799853609536259226311448425231764154449419401886924315129646428406774857103743032862758619691714475213643189377261849362613361265472404554167111251242915692172166881786748669299651723472934211745130682275236463331988179010035725066942712566275834304226931337926900806964442884829966121702811015976092129625596517003345550151531778242953523378003352454049805506111831853132372778449099301250949343448728525367162827981449557287669367115851909904626693772714927730109388708059797804424746646182449366433180998118322502582810425057477405517862282532997306699185043044128742322682500998451989038479212645287052898384275861247626085521263182434757619069577181933226941612199345328195025096099487558839918606334975225761285128460719270527007501142388509776085785473760966116180487778364653330873568445495915387532181593587424165417004460804394786678321714568460348970116480169174865157448181294509090607440624245698942272966076075891710487952254475482130999224734877746583272390367310336794959725369910086416666159648390608927250706235475669500798785454138421086188174901257519834304101382823650172951309129534457013318362793809916635590438342628117230343326795462990561679571668817150087875661447997442556108657229051786744727666258975421021533951860738345906994033666229427408249406976180986936519367877503144337119157704915824097494716423724853636282769936375980543349667897811280520367192058767520201137876132788873812323077737983578428010878448890923252891334776539531747722139212355913383002916908249551613112959185845318692614962490157018096760006987175150097143607856634538729854316282134187831169430238538623680981106658715286595883602741216134740952837887713546890070208508937085641233836916715260421964305012873195367699975175194618829894735594085072530439528270472752166961057714077800999270261756713213079719597609224458045038144176395767670341312412900950270516486155057186558301362159605682857453364640128483066086215714983812218152032425057629557970478955678911632223589150630009802223041021365436133951372308296490578450795630503803910143876312132100778912035904914236182763668679063728287548783592479229628569096122117883120081159067028903715447880445932240600595083025341108785158986202293666208665736430306047182767985379492663302649646615881933436860379649731391050767967989014260372515142158690404798502707226322466970011180610748017401999065158075387242755065247267163501685632738944189408681919565266122325365962705828317549950959480993905245412980124593770575564203967819642661355778448505570132133543161843478013876058109534487739037541572664451926808245576625796864701676496419579582268635739789382509499178698867282296130519091023521106813008115429295694098299475757385722055770222223843367863308817469504183504043155576978060440212554264829409330064666595032036084629185473429986622861537723961275504627637292511941064986666915304958470466037270053929341515412547047168437312216330692806924157507198436723776583626957049479689981490559472241205782319402633827034731789825179395581698406893573295338698453864313773760348011316793965826708142366351636996048580062374609825116457782955743587934461195337400859380223735734418041951800715998355412783308437284585106047641543852047735428617272120269811734658979370519910817062460321782426348864919666708483926882145423840928774338463823533248311245388161567625907569809991375228768512400007358661585757874955092570756478682713092790839840438709661789100656309614352210983725103596597236806487223792923953943489531270227552602430772450762080352401999638606050522814698956135719740082710165706302220305025309364651055000239633589241879607050688945289235746215598590566515029038677811372994742808625398424175351852658912964131420676646797494436920527939811208167191826280861084752558183264279002043684343665197557743840696373456025583765709025653312993877070462486614296751948453425881445465038012238173732160056934988439596638896878348207923627249858766689273996254911231909299120992843062085024256190067021921634091876701327191623230317664512445831373003848055479501988627339736381442147316728260075131025191703216227549798569767259656440339951887219819219289243127512533273273411113022898544530940135977925035626497832996682907122704957215904938943124511095643378196855186142464040016254680963612411095536383898781563550373536772243781644516544255201016399777991772056787746302423671246985602660393000009215493063771745972758832812615330106498445750404638497901518440343143692269903321335624744296519533029452475669524029870645865777055434044094276768142384018590009169939122458656868298932604835419218691544154723483712379584154746390225929553782095380123050491355708742292169686198125211791395153674619603015639638054260190270561238887224364713775873939901280018993524699841570117443394598226010342804981045509020059722928618042222447347705600790818905370639418475911517160225022075011225685602930355929252500452246641128049513555972790605332200588132624172441529997628277125082481251329997573311642579122645199012228969090730528411797853973069574785435782375784041179371608457115186832387637326145845430285059214293328105738433599137753708624570275742218423309517444864954406504651262478205161984220752781951579501183107898659475218078854296565070682405741926540288139057466865843871207060602517471831635203510746678376504540777776311000545980872996264389286877940330177143409916381978372011579262191938059114643811384943643359569634190244764498399243658035816933192775044242190538625538593652909415957974421963858361021797453903013632105170725479414999999752654825287874775051842357845298205325531178498270300704178989971501789380810681415633843482979061385893414416283588103258267691623233899200517492912036386553159077503497587561005574091931720405377971710977859931781105051466504638904600048539431567934860315057491852148088406179822761003389746470544568355304907428082825492071614243423333703759577541744170841068379900863125956670280604399185352984478954064289460864248573005977424056601340291505611568079604857661388707658247968516946480666873089459301134434836949899912257178596057254344015694112917436638242079469223886225531279211809519129641936263906605546477840344335203936900296658308053276747235910174982339125519967328159875790109350830699213929689749176100553680667879151437032493799570577704386829188720028143334133151681484515591078415912508812918254484943421852770609574163310321392446554221909461674516562413295819690261806481540867796464202109133845783671223856053049193456209918423533356174028205569028726848696636242783348241033465721892877253496069882595996237301205218678307452883722646429301004327583874046912972070798645952199233933020470931545564800974242898041055968030103285868512958958642798260630284963579057658800300581140530325915364198887159146495532973225058643447285467035510746482031715200380251410033331065994903404153510999821699796996554305181527288654105112181167037412124196646625269965569160390476475694558160571472858963990967497101695638545573425805490810356437777516022746238793921451528307485797132550687979126691774414265885725619469656709957752360475625910927415773554486738124110177341718591163218590231498616865203964862298296510980227910342969136782620271660484130657282806485123942118799630041407824547893380670103466265287550257780815241940491984658291799154339108232093610404931642138883456820355274961629175793553712223382723243237275362433014049812082380498808454535024191297005201648152139921682153047671357660795085997183188023830949071085469720328685480581252904969854013680572354725413491359526069143413167995746171718410482420593958435051608196261124436227040680023159831921294209088650085896740916059037719239091316758876962980020978056509065183939374453321459409047972644406326308648384545762595312648659216166319168492277899033913509363844578229539961001700691979722251367435773360776760796805136895814139968521531827439235682284228155094836393073046173157006919883917153312530683628539460718335410710013204805504934093278491070198252776179328417585976533985918438956250410474475269342421732249113732496199139490453375527715713018423109849725416774142943026299167926847398858438699520643320390742021340045581538503292784296927932154559733655727018406800284792478019579925846861900353188210041284082547566099296495782831874075946140412350365063826716374862620807332877388623936611375172090229910187123622174407833993654131136863116890239990376879106000313480387185347137112873901971413826002945380135091054092166232735774679087105309983715702521793807588106538795204010088952450698840169187008175008513907036956888555632047064755246079255080858491150231443514349804204046428848547727930514221668334464697159855757626357364411919217013801831434503647645654498227019404244730102564013680775352838076828119717401810263539455279446940107512416104252941394322633096483243512195151709576317516782729636563027717678340935291780050106407221456664156829754343143736252741263788944626026372757111886319625167339719838259993080550081935012757861793524026598853040699631049245287824225649906798397422732578721129791265635891699053512132085880676461578508563818222744806458747934415871316949101731344694293234319140703966188907001810283067276344106335877404971997846116633456512663824800042229548655770868167018085718551345175650339237982013554690325335955225020883161635411225608299403955944531617843894850065915955791011302491389009900942215706269948447683554080618388954142945764348821640549611639567982652219169516815287163148751268545189374093764163897563125661506802630599137924363066195220825556491814883450594189349917438562778457892852822242881809710004601474725572753957862709313196361134679352822037362934539693187375785714105868948649962468092837665261355159195189702536252364192597093972447049762670347825923010141349862547369161476667113561976251467163359808301442210232715573596894940954116424285519391324605297854637486461085106182639755628507794140937842074661507820166985419220688366342729461654856773473865015821886724510236179777021143413648676089147702423952574363590067044712207888200091944550345978334379986537334297408766260215557205209800093303168282362969480655927043036390195726081702190449019244102576201647192182921878827003461784453117097272369432071585514413118706685964157575108030853710922213508281980915542412968508171801922205260165798939661055066959867568419851210188473240100290195477297145337865307102379943017615289281722222511736542233862248554892298612037906060945761180388165725887261537561877035676885935284242229763616070254259212011637648732137748744463312261240498383650689798209904680371965884824104313757745511066792635335430402558420569902938493427592566428347018998905689906905696346405490163925073791043869020770452676107144000516935440162597777721374213205510261775120873003979603156162315669698386507601444290921527394755580715031594359595328134065920900668785117298825468244263776755527512836349151384209987493484977364821625527360905710499139528692563386321591880811165288639830222764746076077354816760452644902114506983204625281252721138081485469242457405155286424021505474755579231895857210007522742559574519417245916364563666735768483092392032114491598463801507177698256912068752543941102499332709920858065898750194248467067808169932465541508941427876663650631594648975236835175471620848069594002324084039747246445439111019252857355985809700254200769360130998709584532078687924328215378651783088345151058941317135491880088208822294034834297566528599781401578070483725845562562939168115944009965270916776093045424399187228621446230495840643617942632749901341927458825051526488761279850367789118824292868341030793159595882415211420689922773336067351111446570613622255380013313268323597178361514227873830114765125280795388573381066019036278245196726007560427894337792205503850424675125379983095979113537883998318991063467141426655841060819468716477551176041391331255027874512454646350698307976065850029763063180086191965301409581276370317873610337175831247876215286147750899086947686063323052731621250162210805884660006853502648612677176889649921936604433532922802392193544512164678358689902633803407504130131275795843460910087363603599261880779199246509728710278436713535114392758778033984502911173568599640743274220725254065071022861989457439639574555482693152417477963474583301498770971002103110368114298252182695257259516748021398122080542880687986467955057006318546274251940766987268508385562839881557717063451000244570026833440551484254080811593565421414226527742629810640316657207160531142987584907095246830761758577130482454156972235106084004662634891343501329474381418079415514075911760682430972169280969213820856180961558059658056788422473265128676325227775058795779139396283601692699304980869163810656313574687700594237072713605636671226103384065158941523812537458709216937931420755621145437130686582487913303575463502424717052026848786952111251913449963180076751434058885748615967302649036096587970389306900673611709677172066197639661831882751430931617023324937238416423004682436137520969072424498629928077661216028139346896400480691785938697078989552418067533788811054706304992442498474330892976715304007592394215330232210923482692860875416791704804788774943481021470232864458746412195397270003570753226133322091292560433035846301661778369280933997973628957042159459081788047643417589776064068924784174141990305720899797522157938855879476917679913648629595730522179593725654446544401527895498927491465861518233476956281822651609799684288163931037158635043836060795504502692371172247603264618148450831499140523449630563286146087512725506047824087092242470749112346355279764892543740325649590396144877446364328323877563454750661769530546239480086860533326266166709874417475005778898855324990130325848463109983491578602252393405603366875901761796000683681274072344128980765840103881195009260371408380062720795204395742975042200487134491232711742184987301289809535177861527083555417519859049401874196471171604508566018800895788947064024941562773008232934554072679612835675921359706032496114374680439814561411837244646791690872137158549184482237670703837964446635943083544109545113506807415447802253867176323387353637130449038690299883800272809494824137485926715821317492334354392515516435258728087448540958656718622449609142635214913489069877675847595145579938103589664400132768774195289443941083478550569123248773797714626538582259545961330800244968314628749460225303758384178163051125297059443475808079196649619391385728393450956921536059373426701653003427128287622506560539355797140025599606867346866023756558618849607395012183160690010227360164329127508021341640903766397282992298885624143903445345780871369794233470165339178898024058667756250231921676806291315562835230340387187472863830919829133736679422799228484505697339578227114000189848134233973834013827664869363648224245816858580822702843417720219969384549162810843430093387028003822993911903436079246535646561766213284119550453875234680524035596454638633208247258973995567949707946017902578607299387766140752240308693437017321682066920872929302799797874819042414768739790537601310495502781409173924474386296122190683926568715486762095994693592078904265807899009978295136105864587279881337871259441079880230002671288929534946867759786736249737933760638022080805569348353694548602751855903824102827772682222956148635204535221448993898225447599054168719790523566450597696466641203829196215944414500224745667282366160698033723526199794136433597563079214264984520576543211580614078893111059201124442101870402175374451979727982761081939323089181941195018094083099723342044329256266385753406021849549373970776798797995815511250843912796730736589679573451074308554277458468676266227487936375952356450862493116614542737354792250815553615723986710582166768654671740670251981568399034253462237464679571142104807694116950796587218645484004190348884870072751865090685195889609136771752433020156937263064626236824284780734297340542857085128761759912665021379834011731621892341577789694785361890168477933646540536907773943589357261162964186911111016175170432640945402050683853830949817601073872503220143591952230427976513467623452851332770212442096176247338586964479075828844746232098066087654798489014983513262558981342810662452734649757269789542361608538291168252764763720858445094659859031580986927645961639878086459554622774265534197397647640719456834120741119905478941095533891767405508266153824599429589825114503330270995492538698712854375501836479235277110392120002047695014060042457084094098300099864024445242484359483245127822089552912603295001895294770058840959722527267729944034412060348443254428727800050860086179238821340182357109147342185800577980106051430143275067406723165302796070592005886053901697225476695219631419079070706927640822528060377034633139076460453389654896512033998763155374819523758440856532859158207249911140524823555473437878541529216471491421872801421240494398347764805621567712825273852279916955442408741129627772940829437701681629603525628216107618726174276498241004209124474366417180772971681473551162246348210061087110056732828481419322276808135909629482165272628604870496766417113324354760119597454054140563177902414312258479126299617609775395414582714024287148388484770540383612744347090105478437879382403484412410178682384446497037043439347642815058231644952660367827316335297867696636022637513180104031290481555751139765282358061829156853548959205232181149706611356726777349768388761695019120151137954049528725290808169853244183355012954984245255287148839734224448039018993066968291228830967088013206701597507481822984985423636867986633015766703172489914494760206136066996982766846232893508206906687994263311699872585426648795748698297314030357175581909933683274828410939001415174960957494175545403971797303772884696988096103878565741324385537408523035935750646490413903423992395497992348785558758582168189017382760237424189041171065586481381062092970385879950910236983351821043283281886848409441246902085618683957958803903135090281749241819187642935145457667124347346507634865859050535966482437461343371216654538812820138060266150628976154025483116777839069336378804128137130053266803942552123655567394476031103726788472241276685675355630961181089378556179961626947130602684955419026090153068990035062177796758068217504587448166349355651915414522374267064124216607158808855871130517511435363132307574416707262806160319000433190555959576985076559427377421096169904052039766421825332524678644616317949201652889250855268875104987170196406019906503324750786259081200485085850517071160417970142932303073295137834988307153937119145218412093919462512894985533784090248918884780552267775297838520330046726648103368080610334942016122387103664046545445706700173283454760255614248469535039804625268429599748930060539466591128542155661270493685960449980232932137155735204785499742341482948408882902990794686590950795802793349628321206086921116244841376636149587910931713034939684549416791901908290604836045503913119115030241139342973725574179824914174175698839706166191130634390865516171114138346046820168420395583967359161475565729473958145971313793508361719508756589560442820733814885162612997150145552070530049519292989411029796553871753017780642679097711595123118439977198063541094525597293636482567178103935560714714857366518955774713746980411342069562224927872007407634734889311574042781440283111560069657170734739350133591173314533353018357221245119992495716116346146427348310577364943240898095748394401886618373445143330097531170745455982493251704674724450562235232019642841821643804238962538273275260151914290915505995960976213355790531481547846886631311008140714234473680838788660984752396377461398032542494667991652492788463546221961671748504803661017347478559551410226564638760304374635067942548047809777109065543593936288589680923700694707369003353768655040139165778292596349367086305179431885398730123558182236998651444982699454314796590483655561293996735301645739152896512773620490345198580090452058812016521127847710070528572571811001632207151709721590266094239720991294528081955459814180404780034665943241232923698237892007168008467034616458351428319463773133403574271499471254459323995202291780673406570197050100729256856629297859440233262730077945397438562980148910893962641823380282021211137029073417926802423493987804595107803398673516631363967469196092007962434546722472769950503259037763693727390632229920913858974369099091586684503521163592683382119893670878889866057727384664806479294262905626268378876196250855906815178894914675681443802301160189716394762576831687015933063483045451727113771776518731736698917649979053485434779316426551736799252614205599439450343136084208805801359468186596077490662254527904741948327833296364577933829164131904976947557723405857947456444528495466313520828943100132885743654142362163320831575152070158775495180505544897535000987496064123702046681466115046024159053691160673180850498831525162470807352723519815169117459290251656642789610009805198232846716911829681086422015385023745150193410883439361835976516292586639702868843319142406672184649106636055822325862335860932748522053724960965833678705018570206782188466177485068552377102239218942872736254342833429434189358903650818436733406475976479205814560459247299623117409147432796382935185658145095119999099227700767693912212503795834537267670407341326269959699490013310446721453175231165139635167958389549583236627095240637417611703652226192328783677506486931929222002856873070465124856337527080009023962632679789866759183868963429591342915893994812126820250043084933117789060978070670616889250369899495515757374577825213077503116027951049813645029699534758946836193998320176508973247755322634441492841974777636180611529212467220695651256020217717040247185556397311748469363303297582202466429972939791182907692878107501662242162201286997855301417547402486601801047825893900922000879860133327251820862290254374025953170070725471569852384842571309201153094334374379399665928306014747437204700549042133087934970345973533149742745840831888332337307726795429775051429524413470406608672858830875815152667657145114370633548861387829403342217354927432805321855430809782314930182538366895626106600710888767023928665910941518493038876798170723966851572308232552052823966238508264062972650768344786580305362669275569992956929644482299915481655255915918244443512246112744605091097424261372729562381605415646757472029489077538204774205040960525990220020359061616186779928099652897591460471950005782166690069298620492294589364768451237273663019437400337974325719306638609174509365347703752937668170253090396226471294576713457296883116570750356092442272834519106607105182988341828618663866905870185420566540358838390094629731083950541256848264393041683577331181324949130680376777155044798890251959779767306029937775982632720423008759985239035145329063453340528788921353683462099404945979473013065939547913575889423690745152929744715736059993208851086727351907116606591659709129310092344373494877845599563557460575180909763894893659384947498471416320144903644799607386187017844058782539392696260890334841461763690843572562550054207840596588650874600386878228260271132959433082276656916896828624366692533032304837416752532200925735902357248522251490791451999468811556093654079628334918182768523632699530919132704198606650294054333901114602622243340206714659584853045643308242070902572573554019037186508480741643597501735252432739432783440257707111331539229319913327166933561574792809318201425561670320030954874166496638265507464765031503620430830940475132433825779265114664596949949960705028486798527808416626773106342356160478233905774285728034960837034623271148105598878531641594779916336629347313515201827141410349864659552053062738182206062093839981285209956544624508520922788941980193544660051503090025364126000689954214145106463986296641642185324377510311564181080354548922304677198452349657148682039188495400546890403829067866160930116728558753799238636712569548536596828503386764948247028545668309815666025669496778254129055056840724510623143677891844113264489467151596259346388727990885335835544656405308849361100900848274525074082318948997830551205680447453200839524571361584278930796278916202124433920268382596400994006801984131944627920000671674234866594946328572504382680066157811596655554861383829699963382205710346609603090633331816681880962274637009382713903598615004961219385309426457331812899192551694273322660161290344077665543263466244163608812793776858058024061075844921957045314473289774693030796182056222727828141415370237655195087595678885298407478188450336019319919170861072482814848508182771085172799444947990316017381708322669619287234814938755014766697699282388613004290029529812013677044413358815231393964590979319205833654765624285072424698717962418369115808113577896582444798814032083992262151624517444256046593061882536123810980974558573722299233440095427633775501008707426940056498651240189850500330523170401960823032023898797374188091658612474862853169872057871476819295446124698684015258308166134212329722447614264548888350294965377694467955804907687059610648254260023589869082046571683058004563044672082979299181885212503449230798451287346255902891955557789203974573370185617000902402775775778376604774622398996002371004090480720072217159281016583367700928698503657395242793729062182657170467832036858378980801843426034926889249138578771001414248672455178907983301896871173019758913164722892260981551417998538846115364205582623062853870765760647686293495933395665984931913008801572477953290178503487154522750019636702283190342219104924272230901904679377504607424954888661985962699119733911988542922325169626580257123847947491981335537426699125176848981190450193669008658822740614214936705175409776530892689170634188305641447688447306393698900204563080034731176101718041567089079198275418358631617247819578696589515795684249370078775120683854279633346709951774153310889154337397258030190119399956225287012067133946685609079694427480899199622664535090627040432082597373640572770867301010676924792991827507531564930940823968950768423560865350855729557874641407168309530542444489238612573558148287520337419571280935037812369842536656847137582117369130969012770876469986105788153421524921237113262318336230383513775888737748055484005705751788840268300449036711152878219802774425884223437574926411041077036198595901409640258076612590989644073143583946836424162977907421394993985141643948366938540311942835843310977863674912269913430498481623487402197240269784516639910653272822786438918210266902434597741266808351064577283540973715972223098307681463635709273310226928506136799626082385114512951383770312701733180422772931088779671714433027131585605059693380326800541564998750520446653656497601871474914146327457967743320524065938271378185736660561213132348439624222979756446059460498191838977695554388172983334948150695515653097205074927718644582410187015232840698813816969944145545592368275351474830081015711098436134793040708404990126796585674811329280320919947859160029711224533825637958795942067092843936459612534706518516252172253170273529995822599515226531491682639101225797560841451800834807154452980005412510569514471495705228132163344521309913761095920026173199237204890374111728021104431653976890817993815113366926722363081125033449914451068516180202575671810518597231805801622695508151333108976257688851779416742623392406594158377439588998262548187596520097439529958835485206026180712862064152528659994279532897793020709942848826458960655231462144618517275435817119756996343245188396844153295735403208555036198521251749256245976621735012327300130528626266008469203537815973334334704148861276881357807638978630779034912424063132356353615703969005715833493983677029079320456718394209313025839750060656457583639043480914749970763018347283815955130091417573871078069239151565689289842002141784235507127464564074918108379126220944168023738071695899613460518657765188937967671021735133793697507230619512924307872802599026136249155070196529805255057332293165910409850124958646059026933914967914718436397716678896967122937578111781935934942550810652444936766344774203898640351742187523623173475182600473327134608011062524451189388852477042119227674808669254617040854337178025659996250223679533215692819564482163536518466973320903415910706922235191491125163943206246348296502417711306911849551584715820898255529357597793219312215907560443407105365855473819544623161967050950101984514286116582360296468719630070412732108564946843857357173694003013911999922674598974056631709064900354437016118055314159100247723750198896401068645567166303596403893995892211111224665316591542711163563067345831897912128496787913313121050534100753944696036269566108332699469524472412921946862013665872124344633985176140318405772922151253716657511569122394680400752568202663278190639388394075248759087203129218144834040667063023592272840512634632298438513459454911343067094435481705780454777541079593787565740167337538356931852940637575238989834058878232639249884526442553710578280400555510002884105080783416830457414455285142613724298912997155558648969493976219716342634627376610828912435090561410619372396857279636864208560977193045159926731196471656118025353030528987725217517567249745990664808192118480156062832674344122286955063092697548490228341659194753204884795461566183850185307645189732978073837845289032245039635222130780173993015367289757853592450727161551710242654818838187202424359764532592223029343071922016947386465221764502284952884574611939126992113092191780547693659552127071123583143013051814015039384922699446990011269465126886499085125201304343303770385767564568778166257253669139891495979541955847575664509325219457747801083283180503724570779330983210224620489159516355784055815692257401903798364776086386110518747009281881965628244682331933634040086630326365087524630444543837110473175202779748414124815235040074651098753717830410952418328146636371274703374819645813842585925913628032689093794234968490199779915984201134569479419221963344685379771836178608642953406970417187726165635943296752582032565516663804769727397701529823199288690826257660175118905335721993675774222978706040978267773109446739319631345151116741187167476248075074758585372672472320339672852497381552378076706254657349954733945122122515631396937776437377005629490691232548522338130071699157969399579024426936215292929493980387624357527114800748949204534266146685567166346321744394370988561135636803612812117609666605680219795685394247426172219027736646053569505571793379343878234047050036994309875806771311646371172889704263732570848098203606689594642302473268218213137188386240808119067911393926270924131103821371962815523327896738237917952597579993284535047608926823961197980985827162788792721352916767522006267018150681783501177804622529684069740875377390559423032697795017105524780848402069336379569323297247026959909819296062194300782134410098457142739646780621850345551262837370032287521105998812850361837261325797051019067057918972724380823745225933964193008937794906419779697829665304539567065972363038955878057986112990891446851427093588006308940139257308907794466789651372309617324527454934538507371656701598128406369206969287876663971874864462893628710951840733319583636631974233165873055575838685595997509042402531457472446969041528604948033070859224766907829589815433600043538707698602531503405751466066451450957709939825503115883631777251292728841642133555710255837055286568980109800731043091215654945574688221580827340207482714318349545160783465977642093785909173932925148651750396319282686093348507440188171455817144141690216219896043754773759908796423029303777854255286437414179598629731489672979384117882957222751419791093219569469071176661648776917269555779031936240795116226804121216407039559493410237561472108187267911972942589294711644607898656757146215281867383442732545205097711599799199386058024440976695364752824242867314373980800436828913612016633423221115126244421733831164471906415634200780507803062417405015706754614033694315474113970969837156211978024052069662732936006069285058683892291178330068088933707337432517885605351045121580733398676027341176870298919298770083030324763526378189561634325067315086039336305551412616824097553155954406492789829918146390489673480265754780368006224222603126219938891597421796941173224688045109838903851500351560237349847656691839461195892560636595783827590635958057206282200731559909369516311383038896734943997120223407903297999450408069722139767617397104261253131326698988148883411670644554220779329044513647817004507748907284286214108590804725583803072473994614606647628667654658068167371688220455458641050955158948295679226778816374399679336254605145810717017979269722812141974932160170904240698089694984518912936042628991433433787925202765800544161872884989943347175700692295001372915059424943796498440900997109381055120835276679199779745213346017048358447617417630364761829265283513969244026332157710042852696079986528860740092580645364473394720031717134866938923286417149403688412033306209116029714922761593955326379787572296075336780805011236665740606492000626335491395092595656912294588152119486417302480382688723126009072224894803634426392093762438109974916006209762123780147908096858188858946042123452654844589604486912686292368275446486342867849575476995393446504894863261890826873760925318387787424177822566525406624517288466416255924514578545195066651268818203283911722500803518683372600478534908737970099965026638853498561987589387222156587425967433962738264538530992014332766463729835701413730477249293626962663274110463686164285606494073461216763800795485702648184949361232673911439572921358242794683008662692432227122817104175787325024703121529381719621417763391831922665502453822808233851876814350418484649450607350915078057463988654124702215399611538108886405289078585063021976816628502163862986827705584868378630118227821203153455185728110401615434585389338207502603502179418917920327495870317132268182923562636763281173115162463510680880865851743077420304205143524509471947352632230437855688282042858607788478463841371007140976189106308156157021367755410035256355806629368987752330993095034786806837417621317298809206872364401984843801386360224235105055254699682629112911428454156137725557861236079276037505025578453646317994323839603740142066134332826084270927531201482924202601492956586856492815453562426868587960072300538452424103286772186600200807391380594906417874463568741508057921269444198482545112633113071933416425589176054431726032585061929497255359324860483473533288294832347361440069830610955141282548036682570943408183990261113205030894804747146379487495571639747969494282641251467770698825250827237748356057925706559345505203859563266374144905919845481624648750215962445606361726475601297427478417886333539183979820051860367542372476798187685897775157163739106453612547116387073799906183018033244345893448030901879207014915527726725294258440853513513190809803014583543649961325437383778975738645607856132892819072508940573064457548447482779418388202968012382845153953243286956959753962012232940278748518743271983255642207175298401249000712736835653444320892181981468667170022738343179005257467512243632962556172623057063570974073057061133207861747363698442955361497460789120515533306007227124463298503453037691499862263253976175860481222853994137784876754401998367807478093649897225561687937106572463275580268564960378007030770645130788563754998174566433579829070747745746567257170250968207033240068074935829422125171569588427258069104453891509108734819435812337714429487612512660156764375976278621558298527427200654893647364041006724359666885794141141690789699180629308623558029298791015946790992315908493329059077092032867165973787094693321175082420402952628247162783730044310922597988557174969465424379782270379306121645153524234190770388680002590157500214384835247584001854565799075920247657650350893389956361495476472010892461605402645171766095889842789317646891325906295782319270369362613036843497578356545583042796308077856171731660537558327096782751044487004337929331091471486248877152205793057311610062713381512045759547614742574672209066115689541824127478865809043139062593814934309643026351929717709626312265480761394653990138561387213461106969564297285646868421456744045157866973342904969285496097847663662420437724113546647116841637926740045524201815670246319862317778601895676301366265827858845804294231860238296874205357855612054151889782686836324089436921991562370279664334226020962062266456297985195924847893868567661431350886397900721370670165073960178669953463632725312433069216969155004448320917900386490030233199159423413046472964241400045593675243071412244139953328724617057506652370668076440086564079693782046914395208005808915647826222243875662812031905134152456186467557474570287971744839153529568507835951241257899247744645053802558374273720009777485169508295017907033746583802046267956307401430750153250796923825243559228135135922756222392327991284312525376947899409278507291132394530067688007351269070434947555911954151236296997579909402711814459666680093329615522349419192700266293437741307409530408163186017697371919638752967057869221072923296443741924565624432257026966050411037600862015027803149353463887038862593419649141415179764085919320478253791764643683465483701079359100854138457370796039353620862719846979925564292209129265086244675683542755058888081436669456238975894081195133116182844069009506932219138464790235498515968445294188183905638859302701251256561271350615734801004155388731273549888231335066234062471458809509217866197455927193027258814142518771747181076641210638705475537019245280956498717361862079525074798255941336174864041698587408180741125710463260733634557198020623535367016873963947430341032990185476812504949876640455155158716372140082332542495669227591957344189145277475547994211309524905800501779993019349237145436793305671206249374399629325380436128456500449733052838962501750318157407941529517918105929663403977073866638238417486804935526987570348256296732050030395465748475436118482394867595224778167018701021238248464035475261578878110905158208829143464981709192842782031798538458119676917336969826458687557188916568793977618612830404885219336741817218085349971322217527199628333423543536101383869444565463552969298262140290084657944741080521738615342286510611978775013894112698356154006551376327355085926695020849717730069206623348867320407800029562132029565874894071340058316468154484483032588074275307884046455939737941087065134996213592776238685474128535084271662059277244284338952778332238678642240969786036219633155212586390279661785912594738867646321250192182670140548032626722020247352356398693476493791500275780270389759018558457385861294378535414690507633425148359084104958211605201944115385880385849410782081309805731660569424413308207893365581397341640907314182723285788319894917604395637618765724976571754680217999754857865882593794207604601060525277567607094256019820250562432425511360586309584376531954100082620967644534046727234962173493804769586355622905834994142654667888670296332431114813697828682683987708989783855331717445942420792290888731114369237909100422658039725030167396711967932116966494572088582170180940726123141550852954872883638627855172150759513258122348586017918823183954948586378881324681137092402865963012448860743187808845410398388999866185357644229303794639914666897962282022457381231687190216498074307202607770827145547535349555855686715921132335785223397036952360016388001947379439010814440170611390072592161741578306269725081517920506526840010941439623324137388499947188468717256519502319727300531922317026721961143169569522024284614198688884974301515373066708712271187248108000595974896277295465682180122359515564395777733477523583058285966598638685432019201581347137382557582655103180717476023730012027571900489504182235952156617779391096002296029595477167963610949809618267665787402125686285941678816810496488526523484856744964260198209701182590753943051988255870043938006110074842433030911635807167801186806796986561425810558652034112255997923007427600910961688090035999274318637894797653122182024170825187775489196855004595298514702208286461377002301157150363428035920643008548412843697849764480550649417001080903990284269625735807287602729661829945351251782593771706973838081521494883309187489312247017540891607754186456913695433882200171775611024313963438433016772694415722176008439856046749344914537999035312969366545561056334700771124162256271535693484787554847124656439050508075363840479562703969049131614754152944582749331402385036768257517782150737658686152556359173403511260622351116862762052155684616117195827327098225572372511985033125270315406820444560366400296411812983349274279890322720642931936573796204263205871183942543473967091829369967969536370612555593426349343561348556578249617245797104436092102139770475898086568560459381540034317271076020743584395199140998398143877637597919397045432460547918830425631250027676051002141102329180192269069040111489143273492914509074491502393878833420979309058228721419029603878720488603924429439005932210636477704587845386639494900118878817297264499933781385335962721980194838129742060191175664855554654536236704983156195143292021583773425985349938526352711698338941377147140138671607558338506325195693511462279403652319276612376373005274975857729692713265552078259906208081792264684784009767606634972208181172159909135111238329405309075047508712203606393895631752547857825441688221189187506694251113719329086324188121724615536816567167465409313834347465605900436909394033204273846377083887684440037264189634841826291902240737274632582634924705169593570227150555963478072106801281918430811095145343977124078051071338961757492231661778021934230893278759610355446715463911254950595603818958809938474506631708874960943288831619154269808093485655629861159440851530026312975484601824456324584949038286775594249729685121901846228945617600954345671646986811723341326393937591956148563482849820093146396388469885691818470843222527492030940156653013463785463809270704379693828902642010874913403523203511578629169925198625817442206496578003185198424307607035865653154793750014172320122015735104035929639988288053495871754659483956582224446193561519334419369025881309380805488681379422829148274743065199353151485569674868792831824928201666012768106156532826083432197692094896704434290419059395215003614338251818708497148967707629308854918799286796855834341654354414790125479370184501011577708494429463399366029598964339257245238001359850084011404680758165001662205997528293507261247865309998590478382750753677460137407877603384227249663423572762244315546126226411666851721000548691413989687972491830649193914318325817867939807928268737748862731564749876431584006993337179587502104457938130356860048725366519571115036115358193412087281749533198190452921089960549157095243302113630817189765175185207678185145956522117095075205992611810537590395371530827818095042293323991536622667630831422857243634050997256812304511270377058554818347230920489852485513688490868060893470331550062908694703512089222469733894539910594326875763945492156805616563879971387549887767366247043362931071502849559504823335595069764241543301842917862155203239566463691218114206144545331147877859540567948058967237274596191120097480508740371207017529808684454252038545772158324101057152744114310511856344470400558117374909171874341672357320587197652828058513027172219546764962808086508769917271914290432575371268914388283937666648880123207266928334532840472484253782476598836026370328589499050240827993555032112962586556058782743893593502687004434187487471942835339195271303402550826003670271714491569830193090418641305366811249096455481387849129985942235553761021040491259094926955149095783916312955186392949873355158840901563715760787401213006146987445654424988410503421811904233314663390122505105118041538467944870913274630701535273734186887553152235081416665199727000359108032369017741280124439441707727672521276616347063279054875816666542446076304598501060663761735863206584711599851632358541148628035117505515654210888015362667558403477548048465548016066654315376683165402328557755203792918938340661001394778287274216735643165145259680016482570430212187289396012813096816502570382296808020672061303895666796122524554886735486368706446345638073769543750011986973504502445666406033994193699098919548688002857791881372379820548802025418009915098808697696899762704283945283602733291225569573441305984100258372966742837700731796718320424112848962831335363055617614823990691659956033012741251438640394982684054079450016080728525420315878092540060790343764726309956254340763121772800144020461776752457388043735574968431174436340250678036700619351275974191603012405627973939444692715647715011266909274763171908053763632753182469232556630790365082829810259350209060002643260530943831674008965892944298513103563974347448349588029379488380528926829789355675482500940087894940374957771205135996204827086613917455369901102555150502627218854474520032374377755707071023250644628159579871275463554472304448784647105024547172997197497990322550189771347315058759062658256401533667541045581584675923602670978747321024262215975731597975282332176641364745526481118256677947879500710888075547572415320534045444485401686980510624100912977146664314798981415393010399240953825065305277235450858347830070232947572823313817193701144549753745032915811757188785534566570240696766722886292070539160582287429459322414745725953110399855119104573667630892698455765339838749598113654046860155853499610029988632173495090793423180527505509571304487042446334158539393936717344727425167759919860570003302772308835269193290294998795744467494023497493198029475571334029571128280457901439663379347592239014713636787545314845866874729018378745829389026269875255927137589851818867279919457551638728574901938497843459432571657250060467948238634526285684305699892599129329858360903182338719391901155614815471187433573708134310290659053055231589781354520282250439297013212660571246944498091262394603076906825207771186183861038888304909936064832905844606811830213430339514467126374087188961107367538526627845149387229678017114639635414057408437739290064590923851028959627390046535269316930570391666297815745420954996778145456936189613869872770085325942954884300366265396190906806950205271560443313467368106661231795065903646509392697407456044187879412912882717772690362380912743513428857269825090278365533675963326936281813515430305608416323172202158735403269002206538038146933680152724103987247487513435957491607397349777254369063903993351336188906268119149445665635785884105733250335080142902082565843365282037684107094501475067316435312466275285644971994619748590653710907970950615930947011730630719199003998068798725993572461870114584254117665965628636052727172999173387698929657999405821820190370471045720865757511263738151079627063572236379549331798268353996047015792766564098274949835632577861033133777672517169539518787180455645114560285944948270448258281645092508274690661933786941224463729062405716954234244183527117947486765176808067456722789027512789445996930286358507195932789656941758725812791368524699059920431154523983144859214116726866855554992627646451423161081227888698327477509681835893195477772641105528685468936923845374033988886778322614731911554336828402497557571169149047795581076371507317082967922130725934779360343385129912533042824292778050690942208844358798563550524401565053839933353932339044269673808956124511185811465805996526407766580582903045599622099680106574230746738706720727128277968845674487735914821329746858548761178991262902225977091953861476621829337648302095339081832436618649564984314862778445593351822496807112125148127851042469823440392647533366744859271161369275694558826969192815286362669969063308663958327275665689842176481283496651235194932776938024009320756095437178427056601512697986971231874537694238631149393236909125408533464832703282941025722768394350922539173767978470774526711637491330753881532840694671565501127710573045829425066130140019217176812575043767124384137858456121614143564111277920067641786380910768053505597863808512038838144770348712038200579843615676040084456390526011307852351357439243296172617364574401884841589486240883274240377354115289246012311893760756659146377782955117002111085980599157891102424659923932296295633828634581051914231213157315779124737903975763250130270186196160958603032802419969482896291033183447661189055666894494222339747675657557168525186078922540978981904691948806849442571975616570730016631630156147833832982286543086128359550824175330570347173870695511838217894692168088144526369568825425907430487201077689701434123111769708080080257867451314368867635594042510438265366915062721937753107341954164656136817946520513880430776860363637009539997654638528706696789634251621436893371971374988786715363422098070449632376212116411022973269099346961368838975049870589868821285099618029713501137486724190034208100861334322705407792976137110177533539386546920774828722352635630882883318007668708702162102864836858359664910308215493407569699355383598446522655327692984301562831162909718098321914827988848462566804026467923393676122753626233712203879965012301568350439586057709943872849319143061584729824406303463018687750748209121201674013930195499150506853329026112199871703246913585543771137124773460180488231240225231035155551643989295064898883557427576096457957672710957237483004061921595305623046616544514410609549670795727976226044961351815245195101012130162121568384658570812404700055201787747985617693045273179344655354469481686662342147045811741603706828886568657251512448003493840739293772773883171036559835437822194853020963858016915224187177384337243162685012576563261977247409784976304484256871427633438690689489045566581306458427946483589724577027964137711193572663578720135892300058422154399619775913781578480336936582529978100232474507053739027083931865882450356581880577890178880596543744251415152047318310364051901451361249747553153472584926561247315944751375904628808739284377173110640463387466054728170806206094786724628585521264539388027163715088609313147758530797507904025147042297706491953693555566561610043643336155877662620240466626821385735588769446041441381670100525098639203817553275209947900377959277844038970330865441062590526710718590635011693907987620842072605812692397173086313393822060663613894614175578317783654188290898190228175123484230963590243364996926126531607851384463184562419829847291193350915610173881792979711843474256586639136919376091263822900123796789998509475056143694667528210643003760607084389885246475637135386410846837331932476137946688156199064062144221379264706343227701893203200968679234654895733551171106456103150060717971394245705488510897314605686804512429178473334909203562571326164485608043215911295151903102476075446490744504333165758859970773333983240325905805688744670264813954139521224699289321989109073926938170390105718295291887272944607301016251666459720115591876080848563676878072151460263869294933917499604656872671669131738569412774101163846942065691574997860309657313704854793220283224903837140724317630572717162027855371844275445784362290734536666144232232973454194996080257568462397377179448160192246334868492577749383901225073062970842479061661278432254130523761746367762141408860317604775878071283487241090990532894098944257557317540198246166962860858787812614326679099383824507907275934856793928043574379582541431734206099358142894722804005472140610505649646687567063658459333381967303807052397975221451719274043122079237278952054996294798707985919059749071627072844663732968840428793355810877634484273047945922992503899847140782217775083304287843384790241447787319158334085777717401847455797386661569483678115842843980652705606161794355037921905088240393620078671320283465937017046382175180237215821966087176725928333293779313217552540272370009099986224188142350861542529564928448861279456633734640032146798428601195644287066135529005793555288982023613162797305481399065222595157538856671127459467171845323155429241008649723662014574392446137332941881320113087719924732353745184381972872391097347761627797850081271986967945591664529109484503461636111339268315754763965341980639627951586929108750722428166186362494069562978060831450313158446713975283929610249887982258986210093958305395552216034243686735860056749976322824399384016992007514428737042878143492623143077296150345125844863121300386564279517271430439662328600756495009317031321523027195737881194526000038538360613754784983569521171608086593446894749418942258533627667399548426109154683264689165300600672209245152757216569746185250110025570230330735552839335698993471459530208584331829105796442564119464823579170657068881986623642245049103487199072404189596673667762329938740561045922607425667922813410358395617413726530700565853457819076678060400007080679626261147315153663113459277930517342800302976703517005959675610178787210095216390871508585357519099453874488602719802669819757271268768938241363564177258656913038952987431177561337500137154406017356336001168606783110526149478791875987780961656665210484385893892771113259434364406977911983711230452815807397938783061477909987379983140685592956729023280684300513038044897554294726464601271748449387902890042932920146004085725969205399986091622416505294685448361394448301713680778953499504742107743760296558327284279869831193167117858818613660988455805848150587081887303651323720559555461260078807521933318608618382086768231416889822617940618243854965946156484462173073412529382469008748514946251998809531305029651579129280544285715930002991228926966754190462290295983663050594166317469992074178969436978696433343523705313933366837694491201006943469373227139085173119258468608387858526298602635003420791207832579523837828180043826438153880705197070589751108740029818871982571234668285766441629201181598894645142587488783296980229899555406485840611834949890695089668543163254854935318165379873844969400499265107045448739159790746384283727522305652430096199657392300047800796480718671227680563734010827704913075712609538710100293392706911366078020524598877826504911737040753327042540804829967242055392008774052207959144871209950236858567811311514127424902794502724383689135472049216086465501654788014141647272254495233338105952862812430118205447735085146887560463304252442822493326581674572849614250565662800853997364951926238874975178592239879116906868951722582441296397365225889927888538519884264483947442420813605998071241595187445265319069641394512849411877213307558981993862246832701032664033370940784922484317704078698993309150277432357203129963924933192806718474584826859977628067151234534461068682505982355091702093353918749560157329072882050946492199352118964869156447880319849538983477230748509012817414651443834429836610352297082769256400455368577767159208147148556087106047259307916035054243012844433375688102319973445201373662071213241764526137318149511630209775598215167853805065512703678466359330895987845565012615262402894447434811486484643175830676099185034425202270685509335768809726683186815497666594565943978018743520192289269044811593163317618897938565054787364687780391943061692033506469132316378774219941357759117568986778376165057129940795272532628653448198604821005020232506969125074310297519685747326096274723891532593102537977505606915474704092759841484525082141365216894464074389888217700871554940831101289657395950356736396619037041936889261637803654770916635477489097008864349449822381018334124608303793139308305923021099629901768723514363075827872544507572262993877837846314630817367982241677485863602635322506473442912160803796269569341533481942586251012803695645908395485069650695332160519266466391757635923723796371445732299546120620607865092559179756031045404100682348061617282643171264755256429563809874057653782780323803576160933689046437908838400009317030558489421910849442506950005632090512880872388592033999792623153712689720051418490950918969689011038319474151813154035634626071912728794973559299921910452870605978729595338223620942899736058077663430914696563990492801390070518084290422099215024559397273055255529302768729197445014099222025841976108674164524006659750720084927951819883827132432200172251521799563136092461322274848684219161409827167374725378696100196970810811330741728712607897171359072041187893573111778761719860384107618240101094165979856402224348194028903708093126226412127898715652590299388584063609110178888568254602042955131827030492352655862401112229956135290211979548961909018774035841196672165374805784471637334586285475815747452249256625397041211956157270820701747724353613055625087074095170803364113589644271845272713571225275314967201339433820997612840001834667309079220372789570423818465837474743841373946289277352752585084179904889971339938985083646508303935415743202276886592786186365041890830788507560109595570541257753195617560601159691233015345417860878763288305600249955206447800122821536009702083630621696524221142580919242277205245014085881312025293123862729401362106398707102802443141896983846217914625007194397802151794502362359201840263544629366639411209736774778757308353970143752865216108535789217313571632090079444879831543595263934485341730496921828697755108104828949795876260037363594862131075906500787517645609462689871317246748083506725850488964370573277496388144619699581921278738463498051696711240392178930420848461096501341517871925628294392135959411096730648178644890435185697530379264029464236889389386809063857717664223878793775264436520919609886241911114632702985045658353332475287872232589302269234403084745925755201641524774715519282046645393769668340772045299399283777817349143623696542482696126499395028622501047744280990601257610027642518445056578922396979040786230836795852570838152043926861971859349314381931901633137373486017399894288599561367506980206402034422636226127344412790144216795067411559057370964566505841544502891071892146144094574952645349557973815300803634474073448647272480583572368192482998783736366052672634278980820010671757638897083248973775282698203390363985682438142142325139461363939227347262331499381341830374669610587344262576554851750114489777542970931870155924189117613042710703917533611787561100412083615371212575889953844459550868925416428274494802534406903905382893039568252157848877674634278551593894658490529630225127069133987646014112497434025670128996566248441274254783547907265580633618695376124229427160414313391807182876467308688047542689541573962513741024370564348643169812728881128588553463120133673229486751281913354718011243673777804922244344912369707310042786258557395879030154743009410527449717914126726409822624297259706321336401218134766926329317918567941589348831638428052218800060423832394498243764703539745828746675313353920220254696839458138854726187867431409282898561111446300703812117710808900063242650453574548048012396436598152814938134925114704352608866078341367129301994617148526433405755223456349430692551269948618387100478011008949504010541038135645648180997835230232292015902572788288879204468932710886060833932836700653271811208337167981571913835177321020110373436256609022673200657342612908301641390350733918103175866468327594699562119705723340870955828238696709647166495067475105730756139142949478530590986739262810235130850814728982655124024089483730821927541965197684602502349259299322058804566846982323128109163958124331989637994841843403254346175949414896943964942700158622106832223990009813793334787332216039676325342852024875354470852369941033757035395503925350315001821073193794482384993206379796853194704054633972516216170741063019601089596950512806277038662240458301512859625216414442846770167829984060882829958612850395981141398787289699451131317560926944392062883464841150963622566886660945693248442757401789012388279597139674483127460923633052975100556549607794482544953766726804820793407795585012453984529795745411369799155152592011219691984297683970682377341866627308538202828654403309442495012388690470288044842749982359254444989130994301367898531950822393901617742008541666497937755823706149804287942712086288335129011745793136847581621048711985178758389217581274049503868266911042186658235713892734643839010340137524720732005267688970551782273278130328070550958667916357949425361900341682425864142901277557523641288945818706836248340393257132819150365185887690448556924512644585206219207482407744176281347768705675798378610094826431983082208754620865546717427093868736177428532674316500997524825117517041544373101631731709000767421544669133355715644672261915144353744426954903591331180182453802746901383748715316432014853294078828910827088230354762749278764853185281574667773445516583202812811134258607462852405590791697494499203935743010387310223702779258161010929572128700372965493923106501177533429249338153302647676766502163844780946511595279941856436960999570564274683685701177141748188515872563448181282642122711720140396464126193269550564841138515734406272731532010852284334937223032761495211252664309850562397322298404486734022427233318539798834934564400543603538439108170392189603654242016333963125828012723158421594920438487573743702385486483058766776164429870941386017698961274262594903033926592228460427364286084417460753278808477316772557357410013329253175527428506375170488688530147079016121470195652884833385988233505795194377184997125059976984496215779745633083853150715121735551531422575105724409333422930155057463327822613929654393844469039533901590447674568825531883169590763521874848349586898169299415822253118008967567616291810970008279967592116148112022902837363371721531858888767329814986683571044777784755240265585368365653786318957110242180103839397225383872219360425340619615697497971625185675584265128279600350796590084773894259803425342623459424347089161104765993660850619640059149882885263145206514186479614110010371420232393026572832551742737591839308997489692474283870750525961375242450329218223179294511870475488847542728382365483301355494467313796965802101356299118570982709888638487057555366269873784778878872419442125671599906696149193437931087184955634480903829493426796069734336086378814583540233048784238730165126456417713762415843466117950132225600260264641963894574904411131200497826074279833945848762832394004425063034926445519293463222295816512529427845709828850749379403935089189485003203899887592251604670790922973719229590028758482615283402976414529833567745851638401312371110707963218109916927207019270352028520631186740868864506169379048486472111964243965222248923956868506297839199195786040938515692974416521483208558417643189418446731384258253435269585470240559594335959719768999186983075136290939166751215510140662039639344782601683277656379553438208090763457461320104622757860527577661737327493407040482228732730610599479326653358908924504406675280112072869961716495147584183431231386815004339187101190690324316812245016938430984964413668322622676847778196618413140539485646107252249743643037144503868992705928534953863914111959804620235117664752037367056364053380181248299650292309009937478805863782211751516747090950520527361795607077892725329377068198662074637969290935044583359393763626361711560777636358785870850042616812314448064502454791837363287205444775440844071781676379194816290777006177257053697047636197656596731145580012786969205503274067670703491927629795835625706521746392210247134620723979274576361863791253896098859738010807585962111727674432513555241334440203497261984968854065464309066875615947424461268316820781655693708383912146037750977405218932912643186755815368067539359841326312281086146875040152058697234711753486880771786982697563123567637701650057345048859277479549111462439251618439601321557699589761186335186114409852474951608852495301397162876642118799595362196247008333504853532426961716297252529536248416604443651171388365616702201254150545021927421845314695449008513978864164080221715176046790189609136732669576962226467976972003827131574392153239327335076573331588156723618655347184118234217185306554949772434462925838070091910729563550776055893413795710356537898130384659757697840578805217892979155128518826502968269076315862051200892272812869554299872528662043980833389357122007376288482032922629232565033934255981682621992933629365959603477558128169267206799235283182927153742183050424663603163458727260710211077398827607328134352850750630995218254199700567128479854350488873723040500873649450773780576589090192106174456133167387823696064465622981498413182200816264607400151400473916942408567987273802246173212905577551226426664272010117170787024049276801505598904016628455096682710420204200329903922134585100815823149699667849526860410720598966987008273016157588965949671161612306026388112952480923654419756762514441756464501469525300930218153329692721893021816639435716718410808107168044514429817753690870294686331975200763172344766105875937980710975301693233086443508586880748356051696193537085112360867758415549408181520869421399445911200439504610163700309362947908111731758351312416743585593333135242484318900822325373885473471876467253399940127269875496517629823367247450550468221513979818681843482778734096071086453648496715717473156519565351422106702566066708671521195871011651967884362373781699485975692424682630587267432139973535300786337486668656192843264007908758872287392963721676037561261176130280760985424580359486528612405676128849938063635474572582133848339912507833665389749747814106741229650554248558373501252574995462250138258379078425584812915154278702207593077132649791861681354804175712493911825064201479753949039501027357037025801361331813473816463990709387031214505777762516947434945354612249674754210125242098309150016331931103253953461042204909287063756616914953843245663403555728815199162129744897922455728129358969707074807988380508728495885124342672258734310725326430162795575702789987261505615773400238700336064721195800412821363751220512415132854115534107531500221090789627040666577372587007793069824676977575213787833736975723967181546439940879973368906315171017028663606630553198262186215546349415108097854525154003649727147106701590141887013691243756104065527443164478459306571703579575587317681234573261873731189151546719043585957952178896970792527738859766484908603695971500748867835201590512904248559407145113680858166071482592023938042036272339407187713506502240176571357601641048436726909891159252750157256719810962088246297968450521474815599754940068868689360261108154394708163037091522584300985155061624300546182282392932006589614873228499078237645297953195561063293906957230139752449895325876333884837408451908499264211056048688890124811012688720241266024598886898437527541206359969452984710255062006738207862893821291122338400009056096747920593985864610520253988830245812984399295107084113018972921332370042476912600910801262671662734993375372978233774531382932801466546370879304013656142753166019474451180978146148002008790481485569848055036679691031085110481129423020411338424835106820539455756697542644685562979882167941790678304598696137563715880503171326854678444343266872013027264251684394061062191315775248034063605007268375202073738439170108613602770303909589867048414234062105996926815162890369342284152118258649164263238563764826750710713722380639415951681120984732742192952613815544418246185679246925226071843265833738891164243527468234422040881480354900119633639226691109179609844532828146615535294744962110396077602657374362132613209877866001439818061074209458817290941006870956798952141424101269238676665333196982260031878315528800371825779324683091559212058466756355466425957372950987684341855482064309613639819344877700180448111166010365835233330170084056107915465022449002940577758141714988353812153324725643753389119489152495298987745207241065943732700002769007860603737883729594779834945165105561091544656090823676444937880130911561028391496935939621145215253248692288902169325026450336701447393433921461123852027786808792099787120332869464117229378198271412566799177737051703861778203718839880956797807313351681480634541677164581189723206243006203453021671881602799150992306107297724422266498006231656357055907042274784358857917322550622838441788808694212571283401647922333282361814331811358155256954437915593558259476794046969811867618658474086612958870587969098331830386250177437711971341405300240431597163125717770796563861695101136742409073362121799257719130308687413861071410760205326482777590981181110299860677388713886688199570262560230965128353678418597956707724585494612408787504569484974072525640573900099139340852697049577036795761667762839507222608570507762549786599795506087275518145436823866437178390774267734464473624031806645263723328470986798844940679063922412341895728759500790213478012990072668216071940919612793618292490243586133965426265995592526635691430660084846373704463920321739590221697051251991562710994178574028480530565442200085020228929962253905861251615112102248451847777774232650318161756546501034335704724543699650831122577977185760858105006796856154608950510357198167801098727881705228723322056812292118900869917903762539133501986003240185855056771561668451831820717588174844964804320875418524980331090139738313909643843282812850192311629783595885262091103627026569041751875158366853409768060121769083906633108540816040578898189795776103089081640838892089059816855730838256627575864588784500345870095304630821651825951441795399536285490306135774060281322856572712453187113823561172426331487313944523426207461449556895074502282533659135769790482342952139448919590748105937939046770984513694753875667018087776852143045191793972595045248768946930895062020519694159450816128805701887286160792701669235333299397145379505091018922988376799649847102107494733458561418306575607850955222755911901767174883767495886282113072999766022336934996638288710469474632220452360627797361985359587173010397451014362391658002864524230763112406286777726542921560678917085468460753637451745493706615685969315320381010920349433552031758082565787235846308928740462475832923922287011704699341266926114153151521323540955275644980530432601855318228777874135535760006633525250317632739774130139634495278326214736733064368857760831947789663528537806154283901402172262790096629710731803646783580311919558141568654729336898809080335748996229577821415626639855669158093633552952693821000664597129205924095132441147288927852259307000386140062481976598467804190302218076014052913040949699931429463319369512127664541935005631426660201431036179293437612026102411698562294257149719863973117419666849480628227309187439803927841235990030759494886421785017061726015849567168889775100641020920590976920886200805697378731255802924742854806585595077073561777247082796022081295698822676063609191030772845146582665608785101447032370858588171371803189911624661060487266885245073309883455286855867202697445774889446122107377708643999000156970027778330567390103726819443880996803039198182468758949660082734747252604333684579928599313564218153077298366196582855086187207227329012671074904228817331057489848244873304417332281017551339134367670603896605057322494800013820362917419386955065070636640868980168363276927156047476408111635634590380239291887462741046157579470057537909998886921426389149564398291692648449920443913231235036154342652466612110326906915233874502011082815509806154970673255583951682294088187390214613222961536865498665428502218379224780557071350625048517420332890328056659910810850637422758017432664673584880017091355025456161439095897258492710525659425572790980672412980987130618325530717218349725095982644438580312789214859607081292398525991438623430020512036755647082812304323579781488162364768581920579425190565790711436510985017990557243930503257875764681092925812360204380559710509656088055571861710780753763731567572397897335204611187381988459778280354743688192647574569278425929679311514726644996787618435949424948525605637075274429820107165047986577341576838128766563547778493428271112510492425540459350025468258420977894036031013481919049627657712203822545752282133315884661549786279177011215749138654999247338582264684046182633014702080935461993802773991597412783185294388283685235121912107315548990199301028865816333959949320036072951430089274070557907496810678726883989973824214726206169502208677799599206101515081855284308482614914577831357745552179338236486845333064465931083141582593625373470009611014285910558642696830376760435171472462414619792610880697877807018166734782265409148830190112707355029387284616744741477777266609446430117419003212069123535811549220141332673986304762834987127322063126979088186741933063575231886412640004142507218555293443189019295456049782813861805003798836640265460823473110550110274085552328793769741291915883357653074032131005546617836382009032060812898988400057914494132476879420367928689284335006318581752391330051422576172085250019977929334487649336243224941989345518862210708982674759410788231083245374305994106137432402531228107059723850812465720872086806535008652993888328197770648790153195861785513808551944939887855747671923207746723239164445763989630416307354334906915073281669621875427388559370022283218092508178542285120249071320121589787953643372995662553114463378839832058203982978380336805206341444706955385288742745784133675112307736127755440926555322669735263874609192473037513701371516083586074543033646263060819466081236087428251808070490902589245594029419534362909542147208655750747560127807952738653826836351171788083226317363530422514598322433015237679725198377901645331606532024043807244540751039044971859573188330492806702883180734868096035367230296201726074580063650256423242574307536741689218976398880888302894054230684397199290416740324153746888450541444212636923599192048879249915227599989430260184207955679481378624174233616030718951660896657695795833667697088048806616296955982986573923301190542590300861184710385381776719566404536066172190404623125718078006448980865154189483795710504366351084975866047336242073274347179360531456628733595411457439557516789462727374861235753620071927487860124157338928170049219815179710951098773491186379785874866644243192940616692847390401815749803735556704522892822458362580122633263821775908615248882017330578268499636161360462811353835694617397867175820407327246420163502299317306841191283036816340007443939921473275118048990852244335266861246382781629910848215738378600663535711695587708249278882282931177354476087872562911047922291651030112447236382495785067560399637427704697539414963563905123002914767293500913395313553834076050194064388195082550701908600077835068171817418702600100938479476084311495306744602896546965503523519416489046705809499761871930596779997852153666351633048228833058310071553296780457912468794259889621793698576573392145990178882243849920432169476590164452177405748318958552102316559982840549579660771657435941120142313528855081437466740989434737643361133734447831149430980364524886434056653073684129698670845457417061742911005182175417981311000563022687139911929972377501594709156907203677035777566898347138998801035458209700648892756993927866565315216973278590916054890488027531151655811175969834153275738590220892011491277313598002534029353443336365228405561657390584571583162437318263410309966775679114704494916367101891924415498190328548673672367785379497903797615221748095878453529332369750546430385828801051910391478105461451204089829646868112484566644958149147489838446187160199008854483667469870273846278034355259588619709625529208347372741735134002127062362858081010126507055266071761866908356530965103172488806020802188456638227535025282923049173486188373112311393744432920046748449525334539198065586648931420047676970608800351146269772248998260547553501311503023959886248667404768457156150928836823759087967730622544032958745450057576495401270618948118324209075866180878532404281245440971853544609744510681910280173677798533428103880890913809493749412684490553506937823465399302972523015178688051380812273951735621277383696361171159182015903347575681761872677808212940364833179484079186331970880669491494426868878555993869096068875217659648577674429168190521087172240217447285391701380082759974965866367336100565140386366128430667983638510220533006997476510751752600873031709593990312621582602447177732886002457553745613256129751087858739171739222918886500868829478901580311694261642305917167694460971399377052529930771942887728088641886664400199047821825489921458294807169115935591812556752671825864266907567096564750947781438219719181034201908702555599140337662767978088007562306459972044115322991268194216241905280982207511943900411007096571459381210996198558105423637822442000278505457767193499363389953086033968763165075687837494882365447361800255223130590636800292481923974820181398575571494954537012745926522662442966382241586731133417894951709613847415604687410381146194504496335730853866199221574088312904685798958949546312426615554797217058984425130037937062203651477889456793873571771972797271005250748326309276970929946335196501695554653482937835998141815018073443468755411657435613451128286723648107383625435299417229928097978969025593576983577355657020105271017627047186942572426172586401837698986092115628069446324000199699085032307067872449770461132221736501968697967588873850804858611044157035971013733076881778433335924190989004105287601763250525555421531084320367141340082875545788203488167871480743943256528305309787724482454078776218981199433329332683096248370733424674940006215488976316783267729826523701333361037162653422928179455068918597454729270807754190164802761366336642308332392383702779240479045363407818917212712546216714561624996038211880301571460507007151721766517597891713744272549279216483794314204714929412888425820172583100513095964973561850675229046245693931510129536469585185252675865022176374820015617671951378204132155034821573173416723691525862246554070501990061443171608951798798464051308156596250289969727729941327685051553053819563745237970339303643777760267850921422904175453671074459896088543948838974891020029853023496029385094489524952375532858289104315324737194486820443570998341574770200777405081412021813491217972052092615054090261925673953941702364602983644392625583290393748551394780399881559036624848698087625246494422524572154137771145053357751789998979192249334316488065998323024500366596050737767218464261315804121809453180620467654482790686252465577136210121885113529027639554844429096137683401927650031390866695905109310053177745811849152430397950351537193519729323900245892912925279182318938595605651475769563999212305550764198212987559777551958326415281748211369623882831792446189719227820967270205287595633007173716904301142311422471882140813663105743653280442759848012131218591963647293323282732555325686848845062646843053833635661804883262806662978745697224829625850682287883948866188258897246700768155176183679878423221431613147725666053384536013677840853812775117558128032891340110663794342355053499781619042593780720969498653354988438759114951122440478199110240073977408780508083452764338178196085835127546843827373263384939277437185452101883879390308765609674190837016931519063609679125070369953112324271194645911195149898141871244297043729196396787982538284068067123403210611163847850308771062190673895050705685920220515137569320868289866738831860571647575415316166631240406404505673441856557656070792679509985184125005699378896461643125625890698339771672945597348169512813205542137036754637394292127380279240264675099599459310211745357562364380777686534349707575099600036473961312548571525197838368673274348176767667525882809788412566730774016606982211100818899832174102850914408181185897756007121982508017049404880838012612534457426323044136043975852473503969799509201967356575532362323260325055450588875637859360443236543222054632364370246137333423329886563869755555872279428190132814144654140605698446629954535499292262476954674843812449358359746025039653888717952020278078585808281031680578433018726545058282854220794106035422331809120492589703451304095699435784416233031950737815147315234638945968245708442450462104159414922250912198558134573969547325194052022854535649237891509344856438717428285993128373393127691401884981144351370070369908243522567884835783053770843214411485159503599327952075201617767187339608376399624071994172243137792242486955734316070281027180439736990828867499617184402022762609578599683763850692737334716723073516058875770631396568780667028895393213497386299979961170051706802339710579110123485081776533051258723019741601667016374927637084676760020247263640313256068709770593523865778639126432346882936142113415338079355775349490502514696478892960037524449847025534913963299150144879236455882981897236873614930994532392930407363142964165405265612127996836210499602020140442139233616670067820415746397074975380556391143898191924584958233209991304702954927877334182307971522218375849595242136716357855228855290301551413262975311046749820347103650831471623152671941079470003935203400846136045237758915810145955089089031822630488907007109984920777048005971645820294961606600647310464474249517946607116960285458152541283229220001850679178435987135335470014083887192901528316433790634113618533862423765864337843104109010885179870291821881277039960040594028536305962523542247827173545761714562389171989101844255122705673658596689056008371368342796322369740219742713739877724036260322721580174755201502363096728472898623695732609953288403893931487437213468621592882780145024211729326976866551068831390440200248154093600531224820722443679727729523580031065406369708382547910167474730336442024207732042399629852722117471606631088802923775318851828056556697954414773034258217561830831338741214066341615409881863377895006256620853811240900804107261531829455130578595937252237785374246476295601168697244668644385742291161911861759983164650954259782716734075191769609723138391751580612668127214985254178581608999233393630026051273910103000303175581179938466900260844430140329296181235747894167604782591309583942106594108998958101317312213362412290817983936665696357319686648440080721065003347951739128943836831503390052167878043318790342199771578719385045821599836695542327267113052685120028654353506103814898653672982564259421467996927061818037147384130168143819621808730125622264865231010559099031651502367709432146991840157726489254291739361800342628334048043735068735267930406052991367120956104776524869096400862780926550631324054346199581443980713064658059697884409462823079240510042829143821071622411744328674435106196671306482369105445300617401704902879936978256256450960284345547284290752978644238669471896362670641501502505349741532176805494340792220224741696707095711691611958373491380156036770191963697267410488564703936204983121232072686061082187842488827001903334308116463530381868863145968621892444839152658185988310662078642363136760964389226527479265414036580774560994894272103638032170656527992657503645154586272153370336106359607794760645962396525545578831175269816561760189548551389459181467653466651636336148324798609514945643475062514532057752254362282736910641887773125197652360544648403813299907875786740557118426699053831149844581941294876885696786645732656468170339934541556492195884577256362020119642948695457033936796718128739194650416873250143235188233954610826984835455121303568878138712626504574726823555389195155860965704154163745016289256584768198105318483987551544752950517365622529707259370007462024755870236846267009450624336399293156962199090605840892849055148946526876163536716387503877464364179116181842746188023171486722950465212538159664030931850557222223066149815655948217685935547044092082050570611991719315912661958683587284826942062995445451792489187516996996730628018160717835832893759566186550989670547189148260479029296252925674296065455540830508748946344721368390024388682208792935270586327826858834871411739702316823511718492317932074945228871395622147563253794340962482928166174822778459786993259096407505344734376414742252791615981069524908985934853352253982251120741656784429078148139755088291481850702248461640507418975956172610272547043696814412077981122752294545224610949103098578567993201720671519891762272768893306511700574378172828250692473467534243459649109512986347295258970793101163356528468975913767406478940135132271048809928679667963853877460548640313758530399578284355310892798113273697081093728920412129680563014470979773840052938983441865052994360061506262101867765353225386594318058111335434437407803689367729629795415689361781989123498115022159835811375940381699207939645385106494419882709926304638791108905336300588023503493066923457607301094585091612031644456254448051282210443669072085115430155535344713686002902946244117786195137061266362514129487849110283509291668809801047411694165730848341543148525443984611775458912599598330355549646136119588341056959552161605598059011866728350396815129979102828273981059006859072110230449591289214298297485947358867244988899116794244244112168028850172269261731900076213934704553713093420487952471325773007348098368498396505774930408533939946613764540391283219130028207839059678908082305321577669783627750144582169769410000536520324080611889085167307668069514178891236331946348430210197759186107280700001370581995915854160288785759252221402755436059154588302693973087165958187917312162417826822644064572627189338723191503174245858235426963282726459475993262957125684682337249625281620058682357631671760188846712687353401317446277842906991958776974973510887973415029022822263994124727437557360252951380988410397103779696606892160571470983895303712678275750430565162081766988538202579654677411903852174250483777221985327860585533063698581625557554136234180776047473843191481288609500348879709949359650624098035699180570453931347178049040300252213357837255354902576254280044354353620656238845413517288843318242272359763166534541110273022590713396406479727030782605441439127526691613412227452386276776275541300077673627760451928004779672798203986987031666317378723031662889165426152605007046510202347438657645764165357700707182168851884489611137107793446114077892136687281143344017567248078831994512783579240004108397026951003855080435747723640556580236453337751087417061088470829210095602145178360931902284229475292991587691033608505913798590988124178018348188828801682513040713507841506353217520535901991004483287587634628139791445481782326414627886612862694596857008465991880667236330432264736264901598521714407943105493678627486868846765730675562354500500317706659628021364145332738824868527994389243299469448441536872785752627430978144027610415047692107487822717102084634045487269949454247442631643885958800516377696740192666264524414716177820294853169625515185356293369688733996177842435526653917060486437754670898590196884031916739569486797832296499389008217429627838208968625717808022270141879137029941876925013829279302229191191926806009602166059918664596536227066674378638724219081500193702358505904516929252784264667571077982941529488760276556800571607276287664697493679915618046952218808913205783647259182392046127647974897119246140967647614352521160000998523543911187237990320459888393935851740896443013111728988183795253468136006255841775834792075478586208723394531736475324886235267136876572968801193332738711699718657191123999244516915097198638793282359146297948179023035996613626211039670890655905016024483443508871925949675525987503322814397115192112303157514818124445315323841936649194987994340828693793151867792996787186114497961865140289439653087157843171800633951329256040839144640368723914827450535171888205154127036574843114546280990747415175098637994807555857787085934428108553996973089950633075357894574738901707318931137754513371602664805276627041997744765891701835805011989265144842479627952282768703928408222715434143577768802423640593777638485795139314672806271035946618714040392914318134904029725013536423391071739815720516261951822778825438333726558095804121384191233098694533612087677713986681451571068515380422534467929465583104660786141427983758741431411295759769515952504354582014413786494023420682891464288052974333183436148344656949262708208449717454438789676654505659148859357247107295782326812671109524150599804282805778495408467555659802913184712869182604826450594790621366821548822565557514091346484481361348664960776589940942901320523432603321073866962992126506931066830226123892868701830319747371495786755320600093851504816929867506278673813050834822013602622632799284790233150583548664006662440611292126788540265488860368748626905092064905052666125500916198465844811156539832915838786903396408288808101997618150551927006086390507775407102835011384877559336135613612272077844676360992632839215573883288658933123587970854245717684256800872016593872556449695661613425640541401806361751668803879067950548482954367038283755062688340876258817594645176369194745997965606212908310347278158139019969644605648123120780297866404606187619586252834140189502205704577410991227384065034214023575876643844607029303311206465395203607595373810373665077352892153421623432026076434870404024486019213585879721914603113335852617739601874948896666371698645014645715227040159299879243695171227406659044765819643918475738623798927693690984740765016621254525063241062853141222253276268702780478365896706425289623394770489669424017536070998634354796737634969014750176469451549414766471905812462852340689064268449270151460903521614896310041832396257251044359706612070159146026789942282374931559324146719112524823139012681633721206302804133613296216085255378891495083657028242825320969036447805720250612724401386313262257484552561508909587868583828216343400833409666436519559107465942137337460651424547061849202260662245594514758259952938986818567492792222813849437272650714473121184346276304654937876324535021532272651325194469265230957672860370661563770501746091020914549765842547702824525305245556457838634997965229711341621033566835109373675465530825721963400652355454680923954166981014943366249038471883416398294276387038377271580568390105693815985382219088746737071193270266599992066274233203668884274513239324311672366915436859129944659654510483483128753545507776141428669014313620732847595078757796026125909703539005587269481199649811675598843809954525639656468071815555754787088911124040349729603615628927075017680933795422455669400316830282495065403029208815691965743866421617727612284615699718794325367783951122543868896986859014663053602487970732908287872624209893340002044373720152675744446125269836936036633317775315886211953564575029839228311432566265943133678411781486951343095036439579172896111402766248920972400979003444543938114698839016412567324683176832436780653550404340559229500330663038615548233088246003961316753129292226582974087684754981114461072099881799450648139324425507276024939789931146231008127334872656796803935652477932125959967677498564545520341224782424432259045217407884493416329861706039357392736890971798760721069014340847498318600186636934447867252302051641017746173663863828515363706594150217677182290659722617409228581748711552311366398026432162441509968080552960887163526174544916491124099373945020840109996926683357036652517241504249514361376552575329682255165062075913306140689331924102191870930548515325827158711863404120021326591771038529539694825532899970160106021845082181426625625755890266321499432762032541317045580782066262769468825430812665025501489063797503078139147006869327938172391667143663694388868173585004481089069154520918385434963186866234437963357448323354670655173104149921707798689023998391851313607038284358066336800501081815931720688014438551731690541203999756180180670353654748773856092247317832452712228610899065277156790827189067955266035137201908682395135989753605204655496401121472861866481725758258464074160248684684344357919451608226810578768746462525432940922923525260274433823437193731284961931844073330333582370909062333733429343962640134081369550191202192371668503821216331146853601331351189229749311797481389587154741931989319715380080643039813616693483873940479488783050528500800791032895928505416415548550443063181903430173295843474097296116273052600036306583814450446150367436633100473787500561535601885308138161705337533372580633288275577815415511621568729795947009685555803648568596261161183610914403429693368557105374305189528464413390365250042323773083571856878594633328052468060238367822106976022519470707951532358170765457589712140035861467518266886643936164036874397111016416097582350603428296549512116329988420420482729978378139492190024941475269554216682077243924410082656797739084296587415598239508433647952710744205733879184455065704782145751343141055987377649980366736755017262589753790501520066514585828519791757310460791062264438081418255352766125524651955044167302974461124974356070121620702941951399359542363002176892754835947046509663094577158029967156577665348668033065252303412314946292999883034739399784726439042338583068509985396731261110615129958171666870755550971185282657284362111198988920695182976544291934898913559894366862373944663889334880099733187996229690241861219230196517222575035719552142463432432943841862507878544493873802817500372002081059595975469059383787354203040531730624696276568664778039775599338932536549127725425456081696734592477953311218856638011608037743187907760986972863830676231957418372245600597035203424783965627825319107093684848606599619753159552666776516588086431062472650481477955589702823834537009817747587117768157393745931425984989823260050869671544508337282158236207041160928365372257942411779814471918800370967905613824237944743820732942044132005318564246219048394856857111273245699122506118392569471904655738096179625608111614142295495621805462425758897514476135136645128314582429942691408897984350404122476607715165978847824155937067789714222704577135904155793259795728249409941079583867891400093718742274322820804801651073836825427558642730999921701312259358789883660816955484161255756132104605045812410993015717107885363685020775653262983193935112368601679136063536842768587032704759454035203558757450250744660488618702031044461471195744989055214694986232768119945020651122139348247111352826465689190862848759911163592372498412342529455090477273053049346168452708685915450621453653721296515635470070287967499031188984199450109212058049543820902024270365326144600877838248345482714455813882368883563183078104958613338225757657858739728969795467071591253426207204105159749697983438382342711981914030662376891853992636191751166358269299653627472091554402017604985855696843807662619502227784929324702353024380315664301293844758591295548558465853044979584559170413538028389583999153956533417566110032746552337438570562098710669535610277841927519369679857040967583968214572044684834871763656081829635928513391956993667249570607492328442139307402771406653026526238202004990404819715190607364301434460324188423020690565231902791278280494971769505380007266362549955753400396107878462370589051273138380126446521123557951983158265459929198311652536100728498040072209299268618945565889584112903334835843597683084082168287161299690933377004790722930624313659798321935877587108447887613881060673532715079327659361129508211646370045499540475553009734864162812766175596977189469790230377540505712649997602708315534111828009541693367743244789868816972311366631519344902827152989651018307502522931195418141629255911642871805502011386610143243727379352614816078309791700243553954140842588161083788054616581095344053400849312667518320488242126518284886427919816876164587444186256593371793547268164155261829013004629814747135003276107918000271642951296049867025563848748021194046651824383820263213462612234213071393531452156347569594656055275711678053089443238487806234484647706724318808614588798603318878863499807869849900794679698417478558881384227583331608929987203797521545627650024928393763925620302583958759944479770927095312020194025818166495871264420624580227211598598740447827550172401154154544731872306853891167773717590604313872137721150383484795136697820304518746055324747996759073726529056594460525770857603344143510692565785689755478713529783496691045778487596748212457151804114552155181205920860604916045101457291090694327389424181894095506213784616579449902597931033941959423855035243552944283682989670937240431205434475420605342073904269684279931200181929255540049108585615646651630618968441077837667873624064226667438082235133103916309807235169716578296623071954745248323821225658666371161406016055080297451272824538627504884278800209678869740169722943064198491394820320161366557582691098155361701505314528737620072395978228921103638275764779998197538747566287356203946725278988316792335399723531786048170858667140335843778370177017800010626241949662514070479861097221620371048288597287107251877684413014645733114103986371327570194116034904032013627345380471595645930934944349752661532106191781736395708904967653263249035880956495577452436246658824442464969451275741881786416253394721464510707793200695145511581498085134962382380935793349628167641900921320186209388063689866989189771678344765608481359410942773907862298278113733894112774877293529620158419238869090906645561460924109793092641609158995534449025280215167404057641066244785235425827600902487194299132790639488284911921816948580871452109475367938772344809412210913534939499394256694913458993771803878066560120673452029480897045005055277238689300021250811665560383906596753219946482461525498643610109351368277138328342436769173181245504089293392844792929051110553913147931222777471322914709523415500187499892039258049122126976887957221063419532608637543628254789814548127541785518744733313905498047945981735188656867939017076014283898083182235469292156207925496974632795514350956071661157244980546842792862035140621975549315639710533557846754479431873102900206764149556385487451202197964904566955902634909097587418421750383637132995954310061029272008693330800746530838719033676808765996646995780062232837159236217698324911761217341245004082603658185723535889664488277570277328688372019341959295534189681387660874684543712009726216382754312877357748748575033370918903627592939405489075864749759353674249036203699276614694499970884141139204697748756127615258639489131289388440578678398075493630036604890133942850837970000160139278804357597864291679274441382163822007333756190738070902950633762368220198124126277305270121948062067517143573683842566096940751422552650040787761598237179009176670179393995245798350333821834412648293173374063841070486109159372084680307836688466253601061916815596469131555203012977237803113707985956916629529928370509677761465294767033885539212756911083477586637359163207009223833487287793767142618720608085560362728428503750113368946149293951864328200601968196344806329168751941767091918482171949425529053966410123841990752131900296929349985462863979004093692394551129360726956015325659560364868321201202470284465787675183330399608627713421465891118631044432805045390106949797129189855931185781545692605432805371083619440746038894922966228576796230546752738343889017226260377133087564313554652832520395024875236553582721870308568354195069213935965997851413170791368243240582211654402740966369434323115310165088486392883444890300467998887736156285002042001598133493217440907012073466130579368355187607365837752976372091563147774519282815000650281143064147522556205162877500126251886276540288058574807958623536468487133437340642662044174998405756799974994559530691380299091908379269378653786537022241396894779313883325265222282892019038600867543646251699016896445896137946200569026357713903649978505113316444345071947701321611306502433677848798266318691547765102167837589070403472165364414652461595938841503861313327355074909963474845852687341089483650257423967883687114429567098508127765981923969652266586383494741680357230663559733461368405058545558599381344194982691688390409905221997062946889375740434370605032895318791981577411987407344446164574899669528667754745007939637236403169451966253405182755949931126848163090567365944539815583870531985312928528711892238617546391310953849713278847827844322417288723778189376380205019842175682128557167450768497008204694742620072062555881096698577175486521209912996835826975931720360066642512776253343350900457325818010172513955434821176929607803455517957602913491510290145644761008363965078256465583756464680254866086966743658389118461261563194381346348029701098198704791472539155236513602502864070863224662486845205643296352898461082132272032322419981613370854247585096193058668456376377654778756709178461002883560880085640381385019987188614047463690071354110336999762435081240216126496987357589911633823774770158629450060419673385801203163374555872112778139097879869901801028644674856261837667793994125477005421601871874761925330215060108761755538274182995259892635590149850501075788144697235358065334485561877015114100713203915461531310033176114522919883176858436001990640772739246647891319621430252104579278314870495148962217593004169732430890233517444752392098883677190029452334513560875898868490868116477676871994421553888824648433486064489997780897390796208949066284487266873264975613857903096218020179984656771526215881577248489052980297415698237494472842082999050293032275657536082323936852706857212381688443249357842655460266627245601787183668015907421718922999589954365819081626599220945999682638968243707305650946090084825592914527447108952663048076665614746579328542148189381055167648293027186205524628813626676803348112379896288957081711139915078569827130388916755871826958274001129835814771764612985010132886450619991006529328044782811335240898107028417211887302704199235070066212486225466020718538358015659034835943773803619984381056045699655655259352796903726597536102138627193842877559780091467803513426011254868576419604232822611530223906111479040668256792836591647986567456588456206143608980699373708336191152627763949297179186662326962360293169812257792652500833595093982185962310112300361869975014025726525379941178195159726196351752266965228184905169394283028530729748570663349808296151371408422691887044381505604882352587904022651380736664111551535974582950140237302901116959418765501188013152938441011651257257623881694532786260354778402009975365215571084361676747375377083674601228315743480912464191573864920590574900091067125377734054437214048241255517948646586901558899433501559467072843683050540783744939085954261196005640675484127489624787140375224025325932747863293318119246903444882275269146178759312437662737745871037887862146298005477601478468449951582575041244972876133536625845681932504434425609271159935181773719004137103656120284130194914035138649743685955393232161704005250752225641344477783189554080305344315198052858163754277471961908799317390493116596136089999501569018521548021716456157167643977108028407590188038670150228465545478760453153167777328171789027735512939560872843550516270434421034163530114339293495768260239069384064849362811183327913893265023702277996326341703754265831890428801734272833500271088246657914925064092619107228609049558715574328614833305327885877699705733673816234590026268548224399012581951937638226313548102701112682157698472093094659542750418013624292699353206206574489224499302669693724189953691739796016322296397939257308232604986831973174799081232958119171005614759611814103139695109525692719382293459338373046761968119458962524079463635842389119948089927579967915331897853141579513985312287774809576590671319723801119869485990319790292722631526748642700018904872025531237186195336403794766934519635083464508921158374061140112345842360765477477687655278836169720775597153257623029699826987804544263721935260647875729213499465726900715873072866353985607439286550043769340645773156354211994800530472001698921724360761371376060943962769832945875180997343899202751868696063693973611558240291635898162198051901145252676074900435765865825431370925540842453044457855891663457717194723493553194911250653141814869491310792859267453073771256158784056179278522481278702121607600590544389958014627767300933655180196589598159247503247750547215272540722003709074509878432095535581889621320286643730220202246317748048634139834316994156173737488187879519918465547130594385996027765783935267085176599580788780630551523198289181679699863777858692486410829687947074963788311571470815072814301639745771588598362518183211697993318406347697108365344646413480186577961328153259799161241879751959055338796514042006650572728298218300553966063586843427991123515438170833724207438726534228307729387306756096653742803748187509179858065460753998383378112311562465470339009814076421882113092161094009086112050331973029937652153099983258883219417541964343153550659488492428135902541777752653825708195383115057898234128762016799814978179498758453703966379390556482955010989474748291472179872214220968327377946494331515167302416518625633404030703552228069573428166106575647488333574967272386946595212227106569544435191752368806886463903497679342860064493726799796079003380319919663667995303155290349979843175980916244928899842574053543850935782154768707457106048740682087487775863783413573416209333142130495202163824653632375308250204707547941662794676533376083086989145574977193769116816284094917358254470380526878221211859114364654420981231034832632923375640729364227167582811827767064372039267435827881494415151403608527692239753129499823547727348242707344458525645069008344479327718575092693787788341910646844596606091470321265785398796058177840721397329125905947845552671513743677685228700269161650863143388514549799503913635987864373656869694800878681981464980555790122379253092252840547712963920171103012754040125079467310590798385546700697183658449367486703148238794705059137336198454148731078681726929446432995318317460021013287323253553191269131628147527759166452603905228796619870449575780685822452853236335130022976545467337014360299822196614228554405349920689282129097671016289200912415199434276983206478639821661579029070301358622603318023811633687550970745214800874906791662424519131497109409807375720163428284660896218982329143623201468513727252780114435494562267160625844444491830843926988642279597385398051965422812619989287426659249246441289906620096346312132627490265783491729276542307867506908203036116464040822175793994871531515009779594561480705843954105824304683575955134820528371863792630080323009752140580945069180942266552435373126507564416305588173701473449245777767285343699880373526683042756467582982191258834217759423839596312515206073598952240663500697065877207959258006762804892343956374652946375882359913582567119919876110466265563911780437941271045920949264370460113780723898732381896095977955029711682456309176378807550158952330102033171559517314845937290341063817832458075958087828522920337025882059883468840590507173906456651549005271835303335237938634812542607217945874389277448570331616718781122180273010824697653294697050706656399419184403851145731389982784260635927056240936103054828074843055448111808216928662276851343384373173024157044471060367829380264049601712004767877272886899238953631229005127170783911756984095831566218085381913733514255351060255785082292206447371847571629260798291654326104487081221121158275870448178637485513929619228201419518199028436043350667010498071835504571076075825788020256368663472901077350043576697316937198387296543107251331131135686043935583329389701278599813670165091238565340454733762235775698131173272979176198817972160029090577679382590294762655288067756135159293481529464378361542176480128290962341457619895524572573656615424133127069419998653861152774927178469847272752849013799635081534178767588724736998492249752609990756012338124660684321899057415346260124421066941917898262845215541855575379719210853503359977752205648626147799683745945001205901832289559125532052973027371703979463315761103546462503053404585109623548211688869473766086419285221520829469905479705694721377339699708564930680026912940976238479411538678182861492911434917598993180897495600900347816338294951430534508249955759988367108725861135952522612283551132227228237399558328168336632104506086020046585988830481808345378333683270220025688224903720113181616585672062574560980019130228518337246204114852366560279048926443089385788770042979659519776547759301884176644508373432811014009136297558901543557250258328660998073483392403046304239242197646113560505604276733726575011883805259868239958230473123302593239256991923375044693668930841477818171025468012466509333048956682534607763255174535181497364080729806250986588724904612853068686389709373556836050474728285001530477710841603025194234646818187048485031553884926656431515999107719098227893223051952435741169921461217274297000729068908141810461902812964100686726770321893927475579367203361011077466606426994861813804274555909780093187595703295648324786757602595083915788645191459356135644673858441489505442828752016539531974738972070753313687315390186460523243202968218270621294497295086684247699490338130052841829826405263340718250067240450132734449133810639699584103424514978440397058351760135809611583236716347406191405117709962021146873086087232253490297951937117928787685716788575521944591462423724873401627263125892275014441743579056895719756101398236273177677164268067690633773838946478898078730287524567192774602158057657617962510422951502715483392204961018997839366403777149787577966308467567723563261095014634310180114159613669431902065343304431577554730432604566711644683675806569150871064585759289771662793856157190189995690082391272205166636819860260449254766507004416662777660514052877327258101658800120049526026660847371709002475425038795849170870604632720165903776651876052448987305857068177853665977566127570836302079230907986615128662100961625719028901773696739809484707706455736469143352678830211363990946715647764766648836884832536648949611271319618793098378275391459979302670846883961218528481614061300592199047574291609677292109108847095185593340381247387424821352892153945882406750766942859476891925544410049985669980428428189510900409221191310301728529758911900622019520180781025106279091512810131719638236780566099821716070438617227427342899766061050120054232440006453996739642202120074839099429152087089270265696103985951991790276016615741284083749777684305153492364382858975959411938250315454828705137798600285869176999900044095278870552759645300027344071078538160366432306248634024259323980985989642929920954150877694146514043992695813526923663732480668889409730490099638078955803005150105430374342670100370727440373013369108298091715269974958732790825885651147988673145952906754547359137859855057955937609846342469601448002386462259069069348973108095214835596216421316552846251650615696476894490732329660972425924896005144667907775518717708348200406314119627095734731396766836683008672020326448357393132874333388063977647907194528451528916330520182743663619091725433077113403711616058292668952411370411273926396445352656757743767958685420471521895638976023001788520699661168977498599566828561922600302251176703422017670390243549390889074418424885754588257334293745803358022971574488967900130613088211360433614471042243170961709988442627105909087378604902290936352871940254778574767938807148346561798241052197137914165721748395839672955563990797076637249633475381525250262492959996351516868995907050158802030086826281474027335481588835815113579321118337035255298347216703465969691200313748808035989032507618345506442366740693232069558608166321090694394393653591825628169790819065582675786617778182068929325199445014572437328360719985643242322983875900659260410417330788389262493396919488992424941256155941515680421121184423147272106667139388714552646979817058520430250598627358987540388510099943845499993862801293567649473170538115588132004969179510550196289463223031387044319041713740411553178928967291568402379011200287715761220619018699072035479299157645551243870026244233798806755758896518536828524883568386630559235186070800356364239710325791878389422526863027583483522170864972355009802336081500641341680481610398178713229540783412400359371617401180862665737890839664258731911993826935228182642895360438323519674733007516586505820656321568855136631479829512987420350861434265626449136246950395840349669845744962375998667971585744101278819448010775398962434958212926700441812843743197246802356550579565600507454021490673001046149031181379974182050513731553783226311422984046052844909575121592863129304742031231807300801367507448701482391952692518882976915304107067103094353278308290403528764989021580417820123517312423761851156195075055096142790664463855376716337889172068109857497442658387876234188448963074659808061997291390602527321345230713328574751727134640791712204912657137681422338944265258189388385947449760293093222923040758332472176784628242956549346198672787585911194591741161182043267260566491504055213336941552762968119856456722610982014436945314851879094584602423174076488670525564554137665873524007387409061492305475966196565211429184659043520415619575105820476015838846450412018689578359503019236876227489233445448856812636695761678248172528777547544112836515486975310225942708196812394207462542255222325689157856947865810699707226324057975787673141436096855791115517755352038906520536335897006777220202563343156010158111382228060142245815270235786672570026105772777227971849496177732419596130678286327285900274161434353801176752356679344002255961272668463300931800415518559793076669568619079296446095556453936872832782075201122307010735420878553338082375959949563788745596752417262018287123440735854378252640423752954451158577914416826474634873763598549670918709504497237915102223715448928485960648088384375244501835064037848596911545489122470931552250787334502596144421865199265887903404491589355804478684957133484288272275638199515418330908777195082980490718732199654448193603116772485559239299473093878844154149232609096731943880266325820340608130635287788475188225593534768681766700056485040859850927962518562699056114946785407192248015971912137935090628001338789801999353497275235905766826935645656019755244807629953519604131984921904099828126158186769160447746950336537469267005217682372176219037002242517986377112941055257769467694998931358587398912301474081454062245552822882520056037933153254689095734053083138341088709227690897782291790409291154875612781032596004460730079367216764634771797265965089228871178977486852319730394621897570724997902227875047044191965827933252341237070560017061902027225315801102954491261152135945357648220515046661591238956001443981397696304204141118439307115931278253365282834876912063977452887513368871640682858049977893603721321063986873055740079736944326051692709613825454823787166701370222420716418427034637477979220708337717017508566837856871844132320587848280887572968334172837705046241314670645595111446060669953266348790274585898498439215099924730641276855071225823261655806288316372560821219327927756894245341980640245444811969121180625388020546922292960742969457637133900057299250925922184236642991581336567070055256701077331013815523550602570220870871108037095587790331583583132473809323325116768223483688948186157842376375386868310703052918003193025878710272416898606591201147135780642033947436751571005340964894174460752719578234820440255899768010793355310350316785443031738993503668348182969545026788355957829750404162307147132124100825379954619580529484427760092977573750912214836226737310353134525231799656556376445334871226396135150503963891601649161952527558319001532869716555398382243729193274830762776318258628482464492453589218687675885462536286218294091990167043877072315970328873706481523547733932901063334910826556305032152794546668687086991112912303914850080502563402448010791191440241774056455078532682971769697330889992907623270313652913026583294288926356432375940496075206438895947452925814873814149655932612550022478284751151298405587129344310872307241481727241599296642765260758883956366944613083929229489798797800164320396318504426527470765275155829903549556002014503994775065787943846353053092550841912700538713378480453223574750407587497111216063943796626010707302669701243634230499891598806425939744814899179057278069272535723180284287830912230421113165351772929705222408045968279094086348175837722226059627184320451973050634555553380140135913245538932465981230441786333802844373471613379145096813693121516946955608750908549772769616967437279563643783706082804470224878027140995951127383223285622521833194255692876218048772709472905379599530852008832718300980207724138569182481247768209009072443715947760617282424035819202444081130127267835165872515305346549912931650410810278158982931186823371567451671010504374262899330007996562846516994126361757507646043597401581862778524660392471803040234957751136916696157790532926129514324430183156860333667346051371764596084319053697323313307723497102718403484642179744220180976810077896868377451827214202648734696809618398095326015050280574048013615277133029584026486881848333887018639921065727656688686372625709979020761234374710995041006235571640190540485334335265240817437649685032634115297713937213833055511679208753713409097034652613273498423764229804335561197360459821880245812195675295507261432622173143205536901017022973159743018122439206956111837552874414470403603145983342616257580456008813693537618922472120058343494436843475993204569347342209677538460365739907987615226495475652719807028163992403530056242242390020861045460962792300852789132448479992402070186512193847918413050444185754103101563847674686622916104212592818234252058326111890147416712255956627245661220756405409378839830941419277316649003774318942926926134133902905479381547085820531957615944773098049681103677677966016479106814293241684352656441928172908497734424612961256338085533123615029911263340601352740440222667222608319357946871864181478504811647791082495378139754374877735754449998768463346558592106873824491826645109540271875358928104742461551144998227734026483000382207138185728342313347760652149685549732259289551609721361709303580694379029432110864935603570336344029741607810715531164403033876052557962148589392903434554900752587667499289082252851344148966545754748015805940381969654175442958938406317763759385918964337184868336600879111110508601843419223033629954575736599876400152634784651722589365011590391254356056726599958857199658975502671124708768112792789828525238480987235562294449996357748863737535833970092569612685773193575295054193244293418197920259473807929038942395733863025135430106957193675139664248457903780224843837497544806708895580258633386283152744567497293279214076325648056766050825241979496784181266985065358237151658526972595809728310317065072414884016091101903335586998030393161798875748550825727177380930243594124449683358858359397366754211212389460819778161729250859160198341693815026370457077270634061594009137651842675401516583415871045924720129232283140697888972922960574327292871065833223333371780871984315456914877936519777480762227568434130317229662791417286844405166075704093248909215729198683589177411182793960911714566532576716181636683780942550053355008367832092302232019084674376836875350124481088752668295419537244335691388587195817056990999795914694005567653372472302751916726762733980890797317546676079201162075733986730244162090893832224820689349031960051205975345024560167739896006109917513730925447180551550559927970669172661121163910980661098317967292404107921077299587593711890546632282178098446329195950964546855364661989075546150503580840360494157021447432949533812802134943914254365819350454267181925133076503282789894381155883959074951406729466007311284205246648331220800990022002078923669767600697003644583075742114333870761347241809664760697536241905591063861900162186845828687185265060631075266561944392142431298073423240192927533593056013612194918048885507511267469148282953327981197045521836572137564229743422682835581965022757191666724457323572667207842235272102299815787546574246966929433861542460395122054070907649240852579942154918433064413055610706748985907604317469732306509520534693155382978440516535476392831066108493248922684826130857994628832383555880307839286931283056706179544217323958245579405431602722451751279868637731379083392800292210259235262636545273978216587964204217544263012357139160596817877497671783047517101467343203216338849757697034484099021620193920148967803036980730336119807532480238191536852076841301934444400274871173799965065192859406026320756126417805956673278563529969951935588545873790369927674202500413319808761413385411421071295581364713039352610966127900671010402366290269411610238875743520461624573209644867044734680473271522341083850043279427690576928286118155351309568503420712849732016820373498603393663912599206614493051061391904970101918976556875109359247755457238150813327830344614032773682129996024212081320816257689559450756235888671668936823011387235756287141346980218933889259115793792135638209098419283341904181207343894433035122496953161894087946945557810357325120335738977890045879901685084411892815600227879798199644131683978022233274629090027776785733816210602332831067231844255167575967951162645953910731158900355868392976199138540435762982667313765265407006634519181601193549713265404314753229027334851133742918870726457285080022855083677487471131175569158275773061258649141549191709301943936201104169978669894228410346192728731134489916530327757882267647626864343472519130976533586079707074975861562654885099610351492580862953495740537937397575582458549902076521395278003991324717440978971461667582311223849150831609317169968654112202062559196751065896774060365888180971384311155290501087869492555123299900497373704365634068997629195896435784358793589908090648821877490339798818367737216341319273921127723553836213980703794519000422872524380223312454281592480857815836868433789852348313727618642982670672592209185846450907913943106091702945297471544897156250910522830255752517102335361690131712158172185315988102306431798761590527806597803570918572627949959041945447955229774666083961783342976382893933278219652620584245558423628131742401589233588320567717083564518816182377249758000552330815714870383029500356209827119972986137735604911281878072093669818495648013932238297516401824134146696615258291057153407715408182689303230443611459561082855934858447836129956252084535719870693075123227338768007555652847858043494674375023363563651087508160103816236871146891615467180900261745673699911256948307942507040989863374218125925896667899808123234149197346123010594670683659333981278897296337277697158330908858648632661688643549862105623024423117599412205158436982744266076896521731821911540401992585316172419704356680172493663461515785473637044681956181206427319093472640779350032729962121641108875240936474021428505277790498837665109633883358941244284277689473699509256250946256105275577788828956874556693597633990896569420804069637568472296123779970714583161994709351404386967781289440624407991532004909983637200843658269128097053764470858978540663270068609899094973015693580887003026410759966842756990749751669377322586248548047148148021762781476555724507139428843943048867152027175885559351547886146055858821444607183169811299039225620612244595648236017943301074672154034181757876392159492087932454791036948904188238260304900086823727020655133328226998308048687275155305622207430290657429905100354404140446993911987032304904118456563308233040480899060802776282817990098139231274978879512138575358003244664340899061661279563630732138614502208560577260194817226137556104839648198488508782734475518338289943198195823592846728567648272853681320909754222139661172697179484968894912641904676607705133787913850582946813345312313468744953973525921348198962192133244223153746804863345436237537613842303204597785545055092197348138207442040378479046038857656513503200456917263195343360369796671863678715947763182658095256597991374381573667412921924703961920346542493844325305059617746386205357425766743664558206303665069993446950331492288019271825876825035637226195703422081186958916724105164391156727865465429582406796498705757825844588947563032037354107321947087481194960199027018025318882679634842030291023170201822796356278334007625004966265584971155852520102315173832347399641967350250655564496358568921391384307224047457513427807683256657389969708387259451444743881277205738327626199271433195758020797543306811343913169476705149120638902837810513376161353151704687090595275034100718089237420050329315054896008657179011269912009864883478315761136375944368394657220681303511985661154919225892472314560486633167318037874435107335779093573454791434125874872191712402479430957244834243036279934231857887234203263140308345070873354106580677441296874548351989459823740811303943543038886112822230154734099210809510445817441451148051313325000196423499744313255599750280664315774178318116532134808557495381423086206305586244249174022511877388757444889589994296227015225126429565035230305682185914469111988310201774603547393412589964515687462501159117285583693749714471996799495074367681471772936338347145141315787773700411285444947993232385904366445488381585212149270574427649742112761997383942684503016756598642094920380020096957347101629698494561353882459626943581150803679735454800616283881187378721250852072268919881197743738457540070114218914467715773569306481206259754282442506753543935990177845133612701369433791946703591784655674871713845984380289051883277310649627286827791991835670315201293846253153336581622251227761836084765887183010697149594362581296419325190671437415545811187457244703163129233769394965639969054273705766514259261840111959733357641967436026925515555409859548740705840164846370087199916760285090085602613578468009474829586514740881413114500558000442195187143522666200974659605505422344903403915665549928665488160999355686487673341714218944907040377015510186744471601826694229299368693544455766140684867408795103697796823536712901746833152324562184564160700435323931828823128986835885618507117790197166012154960910812350268737003823696552156239597890653593544409134241112621018690472648219102858862826638584217869247687176515359858372348609275193897073535574084691796804061062750583937729712876800718581804182434345279808803934796789950817379048582276228138850712077644850214092815008280711824047435981459086537502777415570957632751600515974450815761103706028712359474162048980991175340081796207843438564745538561607622044386907449336984355771011292457657481191466529137226703748412632888375418996890412372944464790941984907922483320295246808740679435653074332386931898757040457074564265216890319101814073150281844992848985199528996620939586218273034791261722294102799884965414087004331469175334035322283606457119537237257764950674232824446084101700573929902755162664691909259062435324875601405495467217386762165025157459070328864225485627218262076135519559993176704385474201924109824475661504955911411375649942754462358565051541074063239665900507713048167861650469637560102966635564510342917523028056085850229190166029679692061535461669605818288358191933343514955292054161611534348751982437538723879030888419945758955760620948559361034723338938619404944358654393604404792454499088891151515710774476200605523206701307916495595570955182215060954582122892087288703202582321976074237382940274923414757795576449271714102094882564859973973359618633356188973641447086677061686482246618213189660551936175521247897435620862180057571630029221466689486253917422566287230447837571254901319930883882681789853611027266059912219667374798508021701261028188000371840382112453294053490098533195314226531402671866654195039261342897321480916961625042050695417615121679293180762315735884605433116707945798306052407332662900432632175339389843326944952884360903084762326317735876296470193601326363611339794765378224741176966450993131735876817092114379250987243594997361815427086615914791036301314603375326471763927083970451399109311185104570637908430984676902558902642007543333479161128059694227227809501592113676868982850359842373708022577127678371649551235856005359205371151324521690362362619250209834911880603953752183214668773553108975080784380499519833532564687952851745245718975577122155570579972883540646103765456441940289890278425538910868930816646562826901831751628903569603312020024483256877208084695351973766078674911061694861684914507210807667018736581700684308051564890848084759397726161667057302335090975261357734491779063082221103078923429336307099902476418587954609503354694692163941093581917011369340832321560954745166934521497058042899148094697836258667692517858253377791983324818219478331516245625404075761448888959225076563550543745534793712022520336873249861622719786920143109279212945652058367682231036942201902964247006210967525998410664219849697606118285890726871210897985897492800727050772859915998766334753993018602299701720599486983679407381567059111583325466750291601025997420563989418573533475955095915538156536467345954256684582275010880497273573821424348583223885415914052180971203399096524100051550177768993475589375083856211311694508384952545934845290016244531913976088537312673705958155783795611895704253564192618281410849022284625634279045437707151222766594614380219524677402817858045682160574651966999467455637441829836571552207403714732386813988499537556139283625693896526554881989800037672666654711578162271557329324744446253078416060130645726489407986536769839598454264327827331988263767452574895121826727564636128968559866031797323780620683526591471926361245512721170035478385228194390359887552573310155195282157698592940244361267759316447844139994308622155142129791660005600930512090281811692918419449496942352488124574040440258022988882875721416570919477840184829849518259626721645402335150234599368929588242363739749172442930369889460232363581109174470787941323013430093751615583926719725537319223097394278692174947457979251505163013669128332076237188272572423621347054835680347453071922909672226774679001584617977757786758565604122686268249170772260994181332075818607066371653043179401465849093971544754291648110822775776648559626535500832616626925936260610764843838319804840997036327624455145939961836199911221167364973047172958289404417263443923928287791165084405732790069527030518350990460423813704545251226237664695467781902892541243564415910187344243553408299743139233097304716308758060008667755155347100244922768109643766565978390887436800774707856899083554945012611685862634583461189579804043100519347197440229641203097873556301539287822527753534102873974060356338406057464772219238705130598830538024696579677245199384458135746826512354927232271062034973566029831105957408922464300224344577898139005275113855539594086921629488099854274721496299935755618150079319366799221203590696620785247039403212124444380220164973038447390486482555209917516747781299166255239822503577103357235471741853682511702362773245549246761098502837745663258609653219478661384319246427805987985739077988567117348885044638596250371452426361584580761755272114872958850260350349248970524970841788535702708942467940705195693362933803889154231342911551476111583275001677512539253325686039443015246797119789864616340933512931707095099361445898366776153481496349461779035765954397485370455922972727414075049902155437166389134121345477449649376100064273296666784471984745366752638689459567715442575818234716179299342725126479312862791537685406399955481530879319513151783913657044181656105224926332558456977998637643838147780354753080295815212062281075389065501047023887500863809178924526359142533678501011232880753654107213574810034521291366513710857086087568052865983025178529569493300346721914476893399866765530335526135017975767082307324781219306063312313182305264183941784433502810193667227155171988452117249127309635464569386159113466031634441216383934714718410983914137819210123856229482122196180838078046598612445245141295906228367538198717379652862476076562753139979231772670390140723875504710535130761818226684933074756902857483075348690130009970824435138206179441055183937611911716509279530137778910337886987655326957800303404673893453587834106052419129507199167632952272126404490959613939488605447465808891282443554460105128045435888327186809963135140118983407973374682245020170054597410713722597176604044352431761315749787792443670861426788567243689804303862381344418341723125833357178284406802559947043941358450694299693328266277775099693714130667044719465870472825128074194246177087441670359332986526507769469173659501671391801275415130650832995881266368391674773934822794602802651977676098483284479580890398899063506368136742167933210047753525988889394554246789485850117043881936106481253328674755499947872921343553842755164579598234767329890777494686452963628987844030195375386846497842015110019225581826046928882828321756865934561998811598499454761287937221939871758689246786245666703755151411469353184024262177117147355566712470221232555695479827571072937049716315485159708082050338769822719064088670701704100396391787525639304737037953224317016068856306966831017694295901510118959978882073190859537289446835423388514491844845661727496023653453932616787391918318945728822747093419300786998962312696742387216771775513368914254161268252216740891213653722614461475653413939545308573862087371774858702726120701758726000890319537022041247706489531800296154688527902961921116250991577151457868393190271785377012574916729789145057338107613750460195407614968141624727408253054421054918840726538143832349701258182422740688649169454612001427890089258986688473306833242349549886264460737279133848545470025551991898891910424342191068965780788300861982217915549579394472014246064651256746077275917744417641485696196184935325397494747221014128537784541730502246092750647178992837345746378330372969632912410383586543776521212501529195308599360594560071421403274628393571730226383852733773812813752820811678304051416308345940447050411268917047899148868550412774987902648215178943266746718635353390221164524484680281133706486059381927959116474893309141312566856742419810817836126935754032984873763218416226718943674180360427726998103388821829994453296149186774395889985335386209045993317941922300617473928258619575718952837896906360499303879315260352562206408346638242780643520414980284349536908873649916081541238316534977352733483738341508468925729979626064086000332630502896070102466150916219339755617787981067124495463507647520655826842364300700275698579254563008614054755320594019837961564198647602066542250907231045325251879178079250702999131079248295106471539211540278416212238551628829617718471973065575056022152040928810122694783761288041449759126764804901944972768631096988165030011185386551044970745254780611844906514565005841306518423151739191163229641302542734736130665811550321690196476074802302284177853959014854888636245824809018385836891974124095940022960821450694907895668340259620420378572554877439359105595972465392815529322802533487841458434560952959741329237885755811189603789267442482821885525412717265555634074050487983920879263118565042309798570388470410875949291474034470803390309747200097422555388395612481234545060381528053217671973197917496767889513059451175054271166042777442587383526904262866984589261025621890986231321317630613930665136511628961563798434163707711723999846048176843262381778044757036305994535226790116063259964010201120477739144744158050204714712854665799649793684971625526467952282995268524287573874331927047903408377471366721516631307630020494257080359316061524341699686768817489859024516585540760047246602978095503048794381385266596554545981335805379977554231680728017702931201497907659325613521473612723324178885647217398216633927258705535252750330928266799066225056125516092092863005333511244579973855027912395614789126551118919330633098401888004156897587289709652755076186407264839310556348856473075634091991162676580408101211265279162726077681307343112349356587306843017001544005415727870421199573717495899708131771122173854496862017894507250351005081388526439993620943384268536580095649614221871933071333661678687936792718247864381259171076052929484342318088071713529949064915623926766107977363324526279960633723436984684606567446125297805265594533389195007140574727802766251166002536284775528294203395071708241445732048302279111850701772513028937991916941948911105052820581256550734484088358638296777554213643758640425196001722756824709898053826396314863289292690288897149356406064796703411318002127506568727429599130666967132363275298851895800987369416751385655901555675151200177631021878335157787200251963415509959092601545043078138123182043583645123506143948517412956267403994413503083091078530099620022553504874945737292155687958321677514576626088228998067450344506591470708665841529150045450131270962111906817620260417473441446035412612822553047739048161570130999528312947378648071676722657498780948729350240836035446907900603785970590310869645371971490736635497525264632200056622504328861332907969454155543760854249410221567144127423811640836341443992081577138961301316013130385103453709263636913902451196522200497450199199628631830330858715865819846379967225278974138189052320184575328363494040754282100561409352411305978451161627115979152971653082672417328633729320871352626069384022703443806694065382321877799581055602050037306855674449772936761488527202759684544350664561073878167019529218849221641619418693994198112198126862116485184518886038924426447740126975259698671042026226437723903690185265647080894254154130149874414832278047844178613215392184609132359074322359453851253538217705205873233118156952568221665216902844158259311697744914229833605497658902734249006067018422672798659826184264221979162615571972830410747914045647613227918301430104592226733314977578692200678429397397360188429258279927333182561590647804604405802893848764509895970990672552855788606819829525120274147046752297233537676375218708291217728726091718839329523428590515993295299382281947507529975902562322239197838040448693164659513462875043248111556288984425653230193429770744843975282358042432578610671115917309004272980469957479423283173053689120872318547758008934462106754148700923679934871785349156015416560968405535940038307341174088379178631700243983887737915405610997077136916205997573864040156914381847301512516149677069716059238165695092189325427903919165833654217710291407240052143146781058975313447286753547996494958878685246029461286086027889561412502923891323174721077140739290139592426308222227749736063486334677722534101825306663245083093890459128129447335726166638921946501501165520373127933699102754772503589947372367166559882744204165771508387219331206949478126247455905578051449874556607987716161240809904480666709517293024645037776507113064171773960973961187519228078925841599968456204225817266743396149062789156616936218286430418959056847196378021217974283577593269669412933104731337873670762346846813782833296587848864215530267188996124466635574990155624249752902072770459785080107190026208803656802855418910628983240564818942098841582671850910396941329620922605150694254398551138060483929702244615937026516420261606843815288048267119453311832114982748129711529758234121776217227760738082318919283936782814828445778080660685107786149822861913910224264355340074867451087622143397780469266142960693515351258564729956076686334200288032614354216928962003107668832881353440074886420723836340912076863752178523929973820451026339930973529046625099365107021496208883767657021861882998875424361089930415751465639891905811480479197713163984046030613740027875816385379342697585760054875400077710517200033116800144035755184302824899668395238766046165600547254281137371441949984299474038982700271851553565226944931131334877458044658754258986950076111151581334449006323167947630635107528416708867397555594568829446798683972039083872671515631317551735615952217826612763908910394352904214577314762869723218798393132464797835000349015876076837809477253649797426754603314774842547271451406940378884132194315119494084252793281213945064097520713562967755273583306421066221572676347511993120504047148780380131786951887391113087006858725346767245143159915860343815813422968675229435679247729386347820275733001591588482890184435592078092518969698149724874146549192901117965792663789895474899310581248637752759422845348014644392507769750007533970251208153535080604945625017394661987570316874055344109588216765783656657845764230630689245456839330091488431541936957789690955905151964381865859619122883699909396116496100124099453781818598934352443412245360865137782019410051926672855534972594590604872745453482475867231349722984793311581770977324880517810079016405424573229179267297752885115947774773543110763214324577600171642881740416024255303047968658585713718980960180900045409005862781035592374908559277024443612394933640010311681632929897822959469102190398662443451682981410566973230449573488777868242836523982595863408698728428790768012181595991701117192562157331098342711582849590885171466277177918798430391898244657806833347810136163438463589168620985364961482286742905072101933656449865778683010543453570581095500614631971771854132582517574081143607263907667229888587509100632787294208236988844578928645420267712303568158215517538187591629028431262764016469460069045050079374844608442588468930455801257593239459824226646604009731283786090289784201614988700220341772876446371240101537498503666255034972731879134731434853902639302486512345636710843903828747839716489968501474463201187241431576815533157445151611593079523634176151863197806090996284774922542663864157167588267919167973524196741738336183752591322837967631342976920975226265209136666003313752613119256424250979731633269600877292333511427240853386187420677171911498600606064563301233616097680253816212869764508905471358308857646922706292705545926302580556281178820878135169215949989131699658376213512485549390840184295971589139468137589169880786255802193567516909204396713276701634144554442808236727520294510077846089717011137756319552148961626882946071611777712477535823907433225669743339596923923157589017575015314240971607626517142436565047060530418184653258367662629315983298275647378600485720837630190718797953473452437315707149516506382114094899539484274291056399934285472046825972683491609489647708152663149445487597467606106119523515456054450335999616944412757822948730308882090064730563536006434426729260058881305226382027210550913070877218992501757297829017500485339825700956181496919885012694308557036409321829564051931466165452826883142466474663569637092407412015490717713192515048959092187101263507361135959663820116739691391814807315454479805827010733794401016979508994324225808048109289577844949863666776051174275223299414908518489366545744510545117412809932494629448323229925181445329427212379861191994235889676028190583892135431436114268419318479807128858480644419338008179640823416493724202393596684599382703932130026018923964996650107135918994554965783939116512180755964292381839636880818311023435044390400267124656282010444595660783237326981895546257088195214454140215852199356970230875822618197901695508250256301015253824407654268854441105369134247536418352313403249558843484610151726712313954377377773769626550463973837618042477084713916693506258986933260263038698225280008932085368716881632978193107753723485142563154681183875699279473175498254660214095008813171887928234329089377759405382941929921385580053825734771060604750836044750377118641775985824780453782615629276586091492558549677643688519862696439115716472050396427233214037402612405442117636260589377659531169458914872612449237257414969766077451821962144745268831171036461984137351455030667749053984446780343989202219046746024263182776818163511508643259389640925345358403259094057219652192409764110907707682525646091609157529171010725064295498110948871541325504937125211793966996571220346221843001661581307909064010690027821648999773095357051825489643215917951957293783343119786685061343794811749402755722311881926987079397402883876369767044276098517776209678175910925639457475303265956807006602198321989516448397895625500793982481247610336552036004085690843191439285072393042914139381569966075276208293319577271429203647756789890841689619503920926930783534799516999910412513671468767327992966943341432947183121563041553969111374652194387551091431643196219893907520062633481496359232326817825943854405652626218008060392556093749284159179531784233135829842193789994919291037549998889523248224854267734393026144238926854558397336180896177386505367690470881932094000898406679645736295638152029733952522736783416568608742851678057253166163837683424010997428829765461076037739714100331658468890763251604338417380384558444832348227224432652510482825455071026433768819066229114010085889781734352244883294379314585047646146994979506105214258980509469927951425256138276370202686345866319693824355719149252502538349764814725608599358607185624202694990654279795722022305043659351396394218386551666438625225571373654091636003312704237204904632836464442576366696130932120945804311011318870152462305511431155747491690246592100837099276272769448467528216785488967569464581014644744136505474980417208235217112983154383775829829080774789229434591154194873709970671686784532642766708609513212802264100251080070660560395355754087591799111590414574180559266783518496476640482939807389511807406685989304941784995422034627444556752982895009218505957209564948660781192741195568047813167066474113469250612339229715605290452413254577427979200750709033560479657146458715006315848283368697632101395016395817360540715154689804682219909187272596648846034587157602327624438112543693748467639541625871000656444867720009034079346052961619138630465826043102091393805445267789975616172262360245937299090160825255866396025404794480489873477650268205080899239927720607888032958528157101838234586023469357904570307164061826716957765874625594045901851550772706970771013803905619208341695181981515774089124453257533412235814555506483836810079836503315226502143420510644469727295396055441488065680443579801959498862389259097741449764247129175364269781694737518689807577621627883921158066637975266973566519535803585882319116843689187528158825234387138339549039093693590217183324947781073283062497513925836631937619734341989518675148190256621378530041738648319994186680187740679190144632670450062150197873177615633852375706055311862949160603732324444478234136672799507039727014417315753565546131254323946659432934836833386816188080591313261831816006099853101626092229603202081913624881870531321558607596648394220023339225924425126823800310610127918775527116905647972043718065827174183412287657127905444492896275962249741924042260629058515723942130116986972749156903007391025727775767552496215177436497362962317705384783026481131029807416223951548542602784282310817639263576141346638202121707190370502748329750266740859794608495035230241648903867455136613606435308896736944997823407101612364897164120707440008513487365952667575939699357702957730118037737888675598817045436415844885879331722667324394389797342100630914342603929589816609682309245476660669326141102808729098939390330511358881695872319614110469417905950470609924031128702221254418239604364309957399745282392572774889137427539094047914588896138627410997910831151308142399442773445377135338021861815791359039515328168232798625318894004786702550877396158466385422285113847851322097396635659534319966228135906902862121538200091569505427132727039210748773279196088987894452721082613608954317996246147136908730790531527991041651591398777826906852725157976020225763810557777926952340360303871093880334195151705560920753260960262799033675768738852553072745423769986666670946691550597477600617116391675257490835069688728847934928222966206754798967355318153296343851261178912165709346751113437246468416580518424396777164591805162008348209293651125557595125258761850475904883669929495549358203677049644299195069783345521453730671077034131181821465386585588892122305545258578432554889755175963205146810876820164791643832369130893741673983846945231350396924986058601832033462379050755966686002645686290032384848316070667261550315977599577468278127420643438840322311536651624841642842587046022786223728451322277503256376646702181187531233041932250406680220185559384881057842308524563332901388115484509507691316537634475149445274363323260628923102478834493929288729530441641176396886693215308794954458144786653028544686706905645281240542132055498676720405720996072306533356113242771614683324147255084414940203171397445937892891802364032361851888636258695763488563976998178902056181510477129482915587523107199974587751551310254913360163050837564551830269486926668439396574458628421630213270960092277432062773028557659153612404701016817122990964780585438378142709874610033966065618674188681719136637388510119300005326292827945252373632443802315772418691550724091880319756308302368598680517975496439758085754789285529481084089196808461916908844251923450461216497988450336701000445606274930162970740695083302449147809433018746106180086238156141799297415487300097907632422181373117978251947771662612081629995895476514975281393525023495649364132340929280696155684732414604087401409168314207441222896057841957143337964876367974015107477856231895773190936349746670996549615732571801667134957595449245816192909222250786947078342075823830153351430068875729596183700485208017535317598426338445056171683855925857380779242386635323403957973971986323731510817149772141177670725327563420792727505375628448993322492818862379380506578944588372841315388373404248463867286363251230576209146029549450647053471536514606265937458147239451465410222289310713928559803727338547839058809341309776371607063683549761678040329476957236736451449583204701704903119158133488784869738600663558646180377559587080431408924083048661325848713024194302517599613920473063340592819290808892483415599106248437055005188405437670132313788211145844906287705402070994915483257467067250005739413991578438973145698134092283134741802323680501056729058938072322397283446310449671079348866669161065560974051300050136129173652851946316054743242081283513490620526706320983239587402864129854122617033909339841783162721776179132141979349723288202356189937743396352672071589784035870854366374592815592915725706501788246592644714675983259905804974754020324955149680351464346550011041546754016429029457572701930496867706037191615197631774019126887646277310811470784205179517778123583289975339552590669284765296239695433430415826815144199870809523116301277248850045888613614605501210768388643675283173718200942084347062146796839797147870294377711148185108274705744080363782036472264999974181570087603431968344407388279432120425736308722036026050079925879044210432208046119749825565960354575240532230966924912187558856812934276302977135502024075038575129921110596365584512133244337587966962766068943199045035915242878868601708378106102928595554563752464294126059884938268029922386580393177025518131387995327779827099385259636267589948503674996914209806216833178703078613231232757954936864769339386404742032949238006681675813519539380795106594675831796760625565009195488565351908581915763477452103766338613514215927178786548318373553597018344809119581891326828797293146602499276902720139698315596672775669519636991105188431194107416686973844990028892015676873564104308983073076051395980956353718040553035753888499474966104235558675960164157357497062302390607352755834434595625498468722928868542936982267330134265528858697534047636468935588428142694560188197835838567039046739425704447274897832268632498176616159476924315371462276905226109705301478524664524466087959854503257590871833553635194066583026206149341796606639346426627514975461452129043742921359926446998103651469751783196638993975241793769762601401636514803184935156349374053786565606362112165467905924969285439393850517326356586791902480052841130736894568410636879519026996675113998388413531734700634486237593822227422087423614580848850344572678169256156347388450804756967825612987791820356964138624027535110715446255563451740469353925075254231773006551043243194433673550080175551097113113028751369017366690978196991640800385201282091351252441530593065145248854011448046775089786355562368938976148081469467662200724633254720611979539637153553513749405240243996082515398894371397003870051447579994609173901969852111869836943082629561000712086447762461165459074783130036050997171143896257673470517436356546477184271430780381316961187384392432805403634298071765978864766392244465781225974663676833829360761272527713080681263243730468401253938811111464592580167870115527789806078408502795138582364983772949348152630850366029007312046796932138709822129715835820665254896295478099627151987466000435647522684942403055470282108879881543816892473088507853927043371217165392856360925945679866124200326648472653739561973112369633447321774123346139904420286474910849724286433580231776272084488389724291229636345816680299322318611813182376377934363097681042053118756613915435914320071528547155711252677761861381411167602599505474304394548250940559548506442350695516245652139314585774038663927343167344105046283100718196882443399137477193711666562381200520785188239658547867057436772835283098681745863968600703050736416351934677882872340359900226485827286801176808810385428229675932090994810630625155599640090214288674338337196108220713097203582733558283210107810135827586143649458928517011825546319338068982235284912840636534788110986547394003140173398521524360961836613161812610083135551092553357690652999678492705800676381327686501707573922235799920104011417373088100307653339541962665122358009308831974306436258430860652341623943469155794487669438027000301413255874574889325095152136530043914002842451049249492777004077165242991319985709461646438154102259290964976158909550961033506940284432759710507791762269954850081408437193064245675280076247684340442055419780559226749786051529752732309360097047105113670769782049640987953549258628261501796455642792639121851039837447059192293206294203718749114757161704351591300542041775818023284889790542570068804287740437393611187495359737826991824390648601026817499467122572574087921496971712946399696891061323696755906885025162661929977218624729123202542997263121649928031362490004903301330936482371733658322205754325603730096701321746968811580346679293595820907250921919069973742711098992779631131010612626505201373249695443939370631680879305837188802145866206386290958083666431691336667413346616104886114124462454952851664567811020887347238536594417779031003896620394477192867041088688299913814665616866714899493410635638762196471170930778977020483566611680446063822296192821251681753624372785381328686405925049487283552228722532409563318357888284103125162664329890311325328306832296199511983162215981508328881492659276678349191004887388869500111644384533372268305953183248140009293857848103455055546535977515547576299169508407331039910530411657554220898282767024527621230822998351863617914891638420321342064574704037713757250950087350635576057341796348359436774388597992463713632005149996295797750870413387104809036328671870539137195359233455234023726962093876699448528616944253467433161848337961011286259847123117454681319918897644636855647395442377988463868407584000324489644188163433371380955591462540906231706243335266944687369986479196901944905109051657867169357719728544462255108469452164034286936421848810023301026911558994801800757224756724529633753158184917396278153879155097028797096460629255431448501666460056792655178505018637217222514124701571769548906306117169067367030015161216592025503878114352705099708498921173690795374902602482855886504481372967304855493945819133208978058152871471669489228732959621225568490517652231968748294821807341897924087337151754334798221951154616630045039618562442527945403538612150348567767868941436905195935936477070597295203196730440422739330455691008971605443421092432617870193318341383223227745566157862106310094417841070636043228197661963916956372670774561433215373098934683472679774962590580346939490781583153659059612862728483411697890771173767440406573091404308522084126102700245863886751229289198711439527395778409602935536149319404792820507598550468862815830154859577543716794265911838108310136155298237215652316796115881156916821957126714273864697544172229998179639895341899632097954416461760899003453959958588923886427395936842871004532359823138496873912529760228585502838204640713425073348088639602578384710483377502155390021742632184626310030089026426348489148924469552921896202356904754056056968971961738449000517348950876744163474787713603806742761665312897389624415647055829937030424013786230008522076968137054562114348179785600158135533344865612483400431352879158953582491637413644603117532115400605143954242108163739633719902477055602597873618369884415483712689358547474838574245141736977702158025508325265339829461379439400525738495197244586227818326980595830663440730456673246276955875202501912868997887733575982798097408532250883766217099871328547453435326106359031681559733887416002770822779042124913282336859306873397631677229386784476277335767555518567769115270597861320644597509702466468391802414569530033048539474064858565000506580117587020279835732377567190809325722009598656732675361320547621006882404051677530278201603066398969178924291735497360590528208387242166105475938080082351497262503055173594261720464335226346238444380047278567425070926690206407618677579700906863667375544869813004874332997346282497400587243341988173725228375413475657438412088608238269013323370516684054529319808874813346631573601167138485867458384326839498964151511056759007404598196285049558939016529109578769287692078173787885770584417793288655061294996357239846014269850135349121951088552212487976797753658838449910787600607468453390580504211378418554131798932769278010312744029208691599550252726047480203669882412505083364930943052090118604564686532178140727805208447422586968737318226238713579948137158829316213593132157521556225442617046726282606097334743118732557912762356270137640423318792802367976328666549041933312831402700406793729672417616001051382431503571647980012282450787129872434758652015659055995426248669769099523469470417949615352296361137344313905083127033442133483778768000094380300007388295639427303885701034734104071804514340341529529449238705054845860061190944343925729566046684732332202301382850251385342231480758143411214804102619258469744478365532785356348219887970542069894250940044356493123999304386620519844845509063028777787085024115622851927149535725355002628878062911660501617191336202144690308618359630744200933833972458996003248184558400959536282759959775156795400918527028309247704459353415366814130505874599703371033695184103039266671252051947734860996141445174417682996364353568561666728707856707266762891467267652769629998140183363933648168447214028613670800743149645898171227728348873609436946575220550951320570070033480651310356565580561476290050095523872865399440122164117528440263759243480203945167495753312401075708438657391435328093761146453636783397740195876466149524221046725534707478507166163646771741492058884035222409871690391600321756325568207712617429286669080755401466676796210637944287392615406482637421110457381038059299490197948075666226748329094146685236662944239809739212940642150942808721430874586209241875009372719469550190482607772921399327414414647428828426006475566033179363087839043296397668077222276328315596913919014563139162597115573938304763602588852612808466097050402972090681401368465706914274958690737166201338886131356651929609419573036047638817038882500818456359880723632626041319238382618138153604900018045370431410985796909886131562368725715062026997542452613285712981014005357796330987376997085961752635750053836435677673261704246381178633090954506645225790151579407994009008702794402619192132603519117191900962903403449986518166636390880357590669887392357078137017145175567876421816821267811289225955255026007870388797253199182123435200780729726180072811578545758287745164523769068743928877060544459826798314368389556225213390379051082701766147665084460578113746432652055993959041952266775549181901200118839540839313568480566840006549891156633881690027751511668620647893043246736591855357860780272361370434744801809530938290535149439564892183048425571883480351143577523472555884178265277609883753858438875644473706740304679999637531565574650925188320286221114008377514421101312339510486621949384541361156234851047392120709250285389221239563939986404280728978995596490433856946522434847391320700399636294975485144323054329917815996069961091268736226293793604981808607441720774361133542792297445711257623517262756637481738208205550689163404936367618576014454664836364950799797048573879608372071558711723532174795022894011712691771011190574317846112348966916324091841699789228501309145636475954264947594885842294544024672213021412848649832598693906246315813884658167381496143573117667314288978224692404969396731798802096934979514552315924082879185357112888794941600990114522475301673856678492698242479182826340214019947136362653306948927907435574382837745955662493842465936455146970612282738588273303611469407976468776957280926409552788292168895706339398806219203849487174727162959548380855130095650822750627959964837685880876762019456781065927354529781744748970693147078125033236582795009224951462869796561711262247895372061000696174496475096686688473994715916943163207237550571451545512157506300742849962747047758160387582575552035360167397290685279171023853543696682816582378594389580234053498438552113404332999674124409453120661534206871503978961744125934013598424711314035965111603107100847476416901233958423956154865244390247746320252063135699738701386341869014235279785384719282668696690292594672701770288421724408245006291939256376835936059834432280453216679456673077958541828922317251065062768077122795836462841670955517054563011107293850904324811713647408886702627956778329652092441624969550916843933608600103721829296688469123151650894471772132618888042833508872939265786814496452858508255869101581565743276675258288688345055417512921993169156904274738550413644751071872870802360276552045396040138477488194934154941260507462868484126793166823221140533210045861425104042021291231348770068478513857697547119594731406554618336060649939192835961002080040272164554571961967697475295904097030403651727394678786855006419330677523295514205416942576816783499156424208094948639537728620449837593008683193820274697490703990772257786717628921861813604759376467171670650193615044978684897365725464064705915852951094486347693631608314430087139087111420792819510627458674502925023689221552761180868205945108448611461706317347062232794769057072982818074035236499457870150774731330878718802683953077367040061338040873423385038151673985367965392850643429396747001076986742908072710229165608358370518199862551680524343521325630394983347400652338615356229521771654027292654188228001226111428204294123743045609067934634710522900558376074569222647422952380439319449001484641970921588394662405707234115495725964202066777776685093245987948159195771341144870432886183216791144645993911382824813688001173584434873675148710402944757613730473964762385512771076836365827242915686213250527243255498444207312367838581146461668389773169675443784161770596469068270720002422637069797134373907053251925588918448743666782110748607067566683872092873120248479145274560181261865983738975080787680797058783798555168870221346044490466952099318569610660186412187440987943476376492439339612669130482530470314193920253340897537902550784982305403103931287249411090423156294458398901000528268790366476430279268839568509156714436885285361084813406444587594609876015577738046219122365412268328486842495692131933090564499164512957986907925205043274444768315482552857389596585097841927939077299390873299826695298792304621915870470304883947470674053127809799171707525617270199916641197531824806522563998412696755319135371756485787169588325679174136866883027849662417639944107060090098037881179413853980333097515002104089361638062054617753954002176956770382415435164576157029923274415696612603807113410527764814002810879269493969853356463634929140280205584421744275473833002162737603150375077130037295153265001471604936725909454858815446958634323184998247116566391574384633988840055504903309380475503803410106166274895218892860035629415554764681733126430065833016186041507770735415654390737690593627793876125948283272765474726515837429162743702722172405786652206780520585593456594947235903051125734920338450591088837478591847057637827522101973889516128520267704181770551515475544917411329349264847412597802933027975908444185574206063277228637162949439054585034998099225660715379114614795473536927543997315549190100965280119880813000911723194622726066605830190049101902199642823139492128312336181720400715131458745911509908585849873888576905141024884720689604224910149389666385617877363510478410565806609596855726593674668254588244532998401732050277148634164230857465108805275106727227902119014115936596428169294572438413269501537019518681955723708197940133286849116973267755008471297916489126444669628035098275579961899682089435486896206457193268581050157280023643407169380107081661514937072111630914322150342264866594619392012460404084354172498120400050992768701697622776045922111517062354575716096282740109558348047972027831884976499289504201314857473992401150897008648151760559659732107705923453118328803831943345025241688089670206104856316106863390181141925178373816472449355962718347449972204896959610794895170104179006043535258994869638314276716695886506503799078024418065665483364015778362245530436426637267087336986312652200911554134461920018441493977709730751703126007308713859805954727628561739664153108036245970598924396905762618999246667019136938283568039392210411220039343761952636225844219821986937097769747245071212413123903435375864207018392824599016876376017117872306811894082444141531626929498441988713729976623363375676908019076788453821776817152309038145564584339276998156321649037135440046533151225090829755929909964058425442820165324805418063458168930004321305885787024699514575481611743576424270099532436300924631931563770580983525924535128660535625722922652908750216564268853565753418675143899049022481144712449441704377552887514199580491347219402972968594013437234580349953167696490393220691650049260764221192516966704203056042822888390472135224485303658566313766838172061448832051748058685986191650546853013256829440168523610637803065664721601406587718236345891513721118981836656300277717433956956818293415806379853402367646377217257976305327316605471529367693839634789626695887035850020650097667889178990202129520283496904964495537576230186438384717690976504440645875652573887485990713049457853994305547651988815930290107303674355812536077362135992267982931900357159230669139441718019906367993928961395161526643143826885827296813329143555462287467585148753716876740930572413758827221031413801960923523532509684087165594233628355399091776044677358412637906627366953689988235589258920895468362528141243511109155816364879392807747343405168514893687024393452477521473890935639341813290230092666386736451420026139719799998436153071718674520032567937068448972055593561910658237075614321014916012138518444773390278178773927009871480377608400720266492339541428356794108469171972200259430878694087989880304585877302957419505942830469121547603112257190381302353816488681515374219418357842138645409437258176649190423118590071145257323673848818836259610093816097399415998847224092883292144800083375455279947616365209466012231988050755383151407945386583445462665388092080467482510205115166002390510021805193581052589476692975737934649055771803960860967219560481608199369306899904859286669565635531264322424999714734498279450189486466088516590455164952975304239205285354518079290708166493446507899313912214785979997896004099105858012590975168516493534681300196927689638104529924101667376096712812151722263697910731031904815992463652083352065519578083114816802536909130642085299387125746918617526271855778150807652389037508644848582029303482943966288131315969564978451542556402509942523288699770554833422785799439014898159602492836127422918250979318525776970524607027583013088964412470347271684207374872413515532134655442298035054375463856844396900515844362158411663539161305971016023641299752509766250137759732104126127064943566840274639156909557586482519655209768712057200586405940312264527240582860070470014339744878310731341074977114681395372769470051282557591235277326046407500352158391406341244219748813051644199017397882948803614280257917054718376576764682391904193223054970718435447110555974563896662276918437169211783827452416090848495658632379509077245736760142334524378217272710943348531474562102268969070958604685715798557394130945958264869819412514217500103808212045225885538348313640593817056952453251913269675986017677483700713281050371910228066562646042877310411226760908198826818228699451546180630813685085914747237395945827475013452718947897006061486686729932459323246409654626722275630340755950152281880406774545780448936632727879730368486728024252234183925315049758444699687043281865475429730816728584348790244127222846273885515104131364775572061834757522713855319941870434722728355227493719081872080630844446660447152419512548391598716352459290758183197027215541392900709852771979905352547256896965599213216920977873890883891986023292981290740554654712267332845482926726994476846130012844721049821856830753232681463021458714915267888134800829696403469434612080990150689140489046621825068659944823594395876820566258354266825490174782735915816894155039100490011401805504964369792588120681471930514658755195024060579405118273230873426577252860488976250485575242066452948273163569280296305080335046769656842869038743249539581430159690533609934002041525533817665802927119395196130668432243267396521691417307316330539431676783442247017422392054189565898989362369505910795601223330885057771786371214857463028077374641498456524518495978581786568255759163321732933240736542599378134311690225734076913358161010763872113396196577016873574473055457864051405787831216295793859223125850657497259058445820670675718004519091845768531021095141294516253566390944751463006193184349477494057314110231382688272130081583769701522837919836411402940320899852799174760710101884400193305132417623322085556656927875599182426889513344964920883684678988592500181733939826036906831811770166581841600198609862495482038584345076680465028333099843413619796467037386339063186145153846134406924732619590197723009547541201916969035116075520503454974119111133471657319510898429779604764788867209032063517686325242284789031713959594091592035849577764620074668896903075539554988443671070895419804959784355648807558749453659865561917756487249950673228810739096441165482544483044435168039877208597663628240341390516800073495094323096039075052248841872680580253842743317505068315941553142931078483345754835860952446345223419412979236588207935064054325390042683856028300296044587004656588448205679659265517271768023913509109212023647975403221927153649985409527532060837849895014027621570284627164943665858947497096996386901450770944020085946096521120622340751485825363025207719712882864301036726099796456592058455562835164173281514413455716360746607928973511707947770130299616632447762967077846479488314781473732191338845962341181795671689214904079380171228736083200154916432625540287100700786395338489064625157622011018073288060830003638583365582597808295008545121599662319651400572882351487152510547513292530065544266284750677515525136792022961166352249030885820542210012062557408755500838786098057247222590385648379532875261183909057588329403041355168208281052291678897229430208264384430135403449664750754211851475139971564149080401836878915664321142456164087405242443542933150368187505874765527829356475984766740130119013192697205970423454342400997173455916286615673722320355728108127365589276070768459933111043569555968531489524970602214056690136661157908533891429774667901653082585168820107972966985603314804418530176444057374494318498676854515636930154037551172796911540458908512847912291631974205787315388228684335106820218705330272814129740716206965481661617302915590100105141391141367723129641820452303673865448570047259811209500217670502162072476572701422415546798546575192106866250148107916832717037151794663552026150964852354159295572258428840299610054391282862300010204524449899823760107152998168784116906922234574440041952195065166345376367092069798483717127826077351449766787367907224293352399146524051918721568235065033433737444343808526463285121572104641435811082052766809039654437121139243311320506827799572365287985826124916922055070868634874928593729700193713746940971503076196224702086990950395860706144278609292849818247507787723922842336758838047975929177455687965424565817038725580219918593687526400053969073248481942763786155279731384761698320726338785268904391322152391381599249767138502785517277409026545740846489358088311970334305895548035718190653953026918657174338379446197883564464192464647786756603795991501382662423464249272701473849245933300302755627208970517334792524426412528845258778552501766954907626380536864452710113708817121926643353084894586019391940176274132820313935786403953736507702749613722524749716449607248129345172682111376461331481223658293494233968982412050740326252528181419575279699361145671926069809789960674314871206702345558142743735282841796853325024221546403879761069015591877494400864791171964176837188048275315512751640763141442120075809795241207016107206285439599581154899265415502885367313210757916434783362355905493867907857892814891133931287840405568623664011495082568406906974970110557294406155782820531068164586456349136638772332288700647743129779431424763404270982593319841743947483067101922937465523492688414234462670071721502311723187407386972564451780574636678123990527888312468777123612669898593014235566017657653809689204093301603474735612653819354496626262979866048914202543784494808036296782680418665198988632348838215344464225752948638220422537166826380636300397330695237935058802225323523074524904993575592056010624883358580866359823018648517230430543759152396965300865728217698297239582259837394838880087905467550904805626633303068570888484009256260509983870228116014470375966659298744177522511859390602927185203672381817683175149586651565069211276315655639038466242350898090161421529063403103268353692636728670047473376262805453417088013106478587413147778030067152557162163728674595985712803678152387137538668487650479687461567591321694369005597246907084753237654132532983300675398632212690078053944213290305759901502192842627801536860991978545975493524695459735366956772560553793625650104509827359735007007091437094827807178621468679038956580206170074898121262145638068002285466864819765776533547531951520933122684602127960829257052448754216745630915346577875309201906716950618829069641976724638086245934097223480452023409828187208864868301066165948226090011810951318015323907935032770305875517152174126857683285322838064067482333692471667602304092120187895076463892123183947625991615655999195472378695709952764358274577024661073485670108339066801238746698210245720567621113199724930603906975268118306477073545844406349350306502818731498685890222427397231515658401828882103228517907538196856193764157229627833027493192393910852425014864324784392176323041765528173620816610425149274130472012856410992087500836627400634412910198621428813424337907096667407768601389762007184226882322703400196524369144518530313808881546291192008522872402916985181384510241391028312117686552122645163073632092782750071634763541336667456406813735688022161175363562061019566421024122338210036671014007349851839929728722578264015000113920638917294564044546902433155826502093317929652469571142645406387219869679454119118380528337792480339301321089251766754070564726526248416862850640687408566136078416858422215026030056253751730634166430212141790838529582280759674063130445862383595502623934593920326929046471281939088222764518704320111030788386849025247926348796674371133793941650295155603918846808132645769189687683830473395290403590804787119712916597420361928209889976057674930710214002429897828756636662883558266969492559671280996001332507560293402862701721872675536964155455207359578650749045371961217438312328718708489442905010277397615214299724228810369160260353222136023382659909832112907811127474848426577176407752561850017268192982226013860775528220242685406226502067505327005181822482951408089755787556884837000435395551145845048985246281941275154043826500800793516228986847574829452244151798414627584860310783058130482202259847792050990385203348152783829166132014601304479358537839635061776351167353764106330385785244843091130003401054574539154565709990328712491285358329564638439027814832071373534184857209689401250731009479889853191112237741095220317763545904791582379650446804190749613469505628665559236593211961862713247460315604581426807303152635813173641756160069433350561914293964592714135916274567506511681536672693216616432616976725825306345696343583005472513269622913777802585839344994413023425095126215625780770561983139094964770035324638241075151211460448525735734482502160617832046001444039058820067637571442799278455090617206428436027753647247742777071858625973448194270561218911147077227986913975321380578973278891888029149547012627675678471978476468236485896025369845616153756668464231512877803493773007116012238834225335322429363055571740319155539248256899632928433131363215981977495214421278649387548009601251595335314692245081435969094337519923669366865913334349920514414172449683854622347963219431514824430463818492046652387408132909151252987621710948983220320845808977336087521229695974987968918959008939124782712966183355838097557389669542802032150737363476708134113671286709261150933225191892595398624827320196523302696425698771243399505003201330830551077376170290265805833946276378774012932233774898651333056241591186008253993864646832461956143635273371717721297000488063848896275721436348639731309869757725282983412076216114608911024697928128665627882053180677727809310290374574889917154553532969161225354098490234978862559565752777850200475865421552889909948133211453887803851622154252568238964560595697839550775154581948154892379255838953443346151930387393045142115925849307432376909618552940732863096935523240330289613934148282632506467395895003125789204428121288025315184053336884960064457049240815042223704569464628896265825677769271855835611944271590625943537625270964349534371670870805746858553890869457343362829377509339915170240999385237063432739591732267075637108225376784165428712018902846752421073860560618378747796333150543075427229913403795837894133125550513339088146328686444688637437845515207694803326173758656516259201550343918410956678734247922969506146571003386435773713673115396444724778442059364469052102263570799818812952450866865806462979211993258152859643286995483131598815129111393447086889466567034368943801557983763095918667715456378213700873282288141126073074851737101148199925191106902665237353146127250167767941966300822550445350318575148306423698295192053121155077871530293452807996177112224883560101086717390590176214801786981922167736095662095396229425023281384725374438644393677090399328764411352192756263451342917719446685990633176035322622671197573939739393559740354313737824894786799891483156384296745493704807541112193516242521790466905037037000053598833979899167182732813907356677083614345115409013852328990081381484883004045571984448236159876861932196079175481131358571801644174140871694609429251679556549347283331911043000736157297951550286721070621148574332341259270824965284609516965969616584256265684132947792270300789023936817037110266397399516970197218729013635866214788762391295333681409808465511444262455190712635977062933655527547048146546796265274841870208661424720768374117844776059724548438496184501493115681237705952742903835537366787066984740874178304945840983743487098583363200503895869595750270160346653552633444871238867106657871314273468350002603722904901999279025903853663639248500964249803291322315279424676162928516243592831092505779738481758773639132814525118478189779631045550694046264625898047311160179896554662673856910662253937708574736607688414024554625962075145778707297974183060097868011232220852427097834421702365633208094274205507168745575583190604682422101602320214994050429954907317691910300218016188201150965691503382616558846459012390458710513684667879764495013575933601018459183197499208705552723324011095027600338869255813872052396327033623570419877353008133269427521111925824859728423409681233195461279287926180162948411992356143460590331051936596855927018379497773058082744215689192016115944190254262208625450558364979021978341040560540527552920590616993577796760706147467550497586997629634599385352568973791288579260352003996826817998706416386638267929231794790514619867390315275829831597179961146954317262951557383686585370015163248764981501575262811418717496464406900179141506156386024463146757801721824679051269481207714021733876215719667011840155901219563521141811085996669415784850992024808185516798228379684743472637571990076794469727967451067321675854497824253055830215778886385044166370764487505106317071192631655485488805244965474498816036792197703913066355064554651616868466224908332625287785323033198999126585322585001056556183177245194576152472305853073997096002711600394070170755298734044870385876653930016049336209359272214996124482338888542111160849034917932135172393205083064051444877808774232681698653157069185246967741441449232440403482896313505108480148815343667822959672195439606941592365637191514555414047961478218764510671863629806845744026957494489527388376912903302653628068399355195721257449493642634871896086893888389596518481017549853717424374314103750016166825139970582479458033754516264184415616295568193175500581650406769986286079032888242308213188075381526291190732037801801635391254471297487205579076463754286602856730094321002405700269178236801208777362208654825524047279951123464081301619768711994583182982076643104900231892410319531292485235000453547992123003921016631538588483348377980710352797255650240254711688797250297659269658736798031349963905838130564950764133603436055057129400449885630864819411020308841084895951173223012248725279931064624889342856881676240719756517544861357897114263848338013216420182178560223550909698537375663899893574850455315564684121079884633509953461082315097551116017266672120508254223158374394749191650749727287231646399110451364265188079295363152126163561661819001998877924453418957814299671019318309451719266385672276649211649492798695416702935520061167078175504739656676110516627631008399360231465184265463711879228526070478132703567273425188693242799529808129623806260100663579510790670829942540119871537370675587091938310168881795612455696493578417933135773211140710467094074659290306329761255501527739802234185566796921541933591542970458291705872032574968312990641476259520448772255824845400824855115858122587847681664534245034256101041844037128440730432581360396091993791667585229991828100368043432369648386103610946634190931112519164677073954837450400590743326072681013741311438535339472209661879270010065520275782243389066679791127648832991366994907482951828050272490604141046472193068281097659510643880038081202758715582836709429567215317406870150611874454239551556880886883902088161975993353396519798054678102449869828367403205670414459123843769455558658390197687099833736912162774942102892374481747743471854233674825209239814738879929156759398121527508257415118190509122628841624688585523694995062573901247342478731690039379344988534320934849094004082668652596125860767100053251740446899185325680356249670804475945700075482650622117636994283269750560501153383811018260600863295216513907318979710958095087265867475203343539171671994694086412422706804727349064333844220000874298635222297314778996625203723244391750415324191423712602301637352002275036361902486938899849183799176729451010129683116236078488313367203042346273199898029273083925623612965994745395536044632147985874787571563724300619727671481717614629656686665476499209269468680512320020513068596645134419263595606362411397358214151082822327559988566156462699552581025770422021637538122681309373953803841391002492506631885090637431920238733557630527808222032590749989746597416742849969944273184017314755248179604335572627806500535779720197572529417791320856240194351811890440259199078787430547726010569581714313401267917779293776912685354322580078789387938440490593380480920772661275301869587338538970483371733051577900591739771116905596289055123292522181821413965528690498238838569949058659481464954258966593775795074544854604101022729195022901380433064855703151687555789123225124812771362973447424664447741754832329988395266373599196083193241111786506233286756524868894524099974600874151286615230059717419630296125786967742122752236291163796803564000330818475406665083844802551627504734597520509996412265688797323834373865940063181462873324304241019187102606565808764007998829368772068044980796257038601497963964143306187056251264739560189890391576699945340509157135034842432429047572305622977046479583384328981772740496191440763972837372241670325149142360813407189964011625306585738697414897722096140817661327546155838740446466316847649335504106722779679248077459473075824221862179856931591934277769214918772534919908951264730218405797249184831161346378027442089215104988009347184583786328582376016415331954512056318652242503115309571774986557247006107009043491635479147686572306222241889373891252670338616396839190184485061673667377748009349841300410636088348594532987716243378392137807475390860173809029265601037403850450702357446055596274006670554412530994321249567162328020421525512934197479511841170981958152962304136014326876257513889138375783320055684221350324821065375171797894844430886146351536938830663239046413620273004784345406544096156029067333603919042899727067516868044503887359622261060380747215728242030687316256428537478264021822982457914798785622226238492008777511114251850622668115132055667556372807996389715478974048998691519227439743210408309222234788144749340703378507107954602401471849005474424151547879516045813242837070972410724551259558866445843268796341605467447555290162925494666301197696070460790631813598856795695438057093468570801329887637153346554359926030460821562042538727441683805902677488137354363484426503331544390184951868518618302176176911978579451226417440103306750712322145423155954940010483366672549031215759349610255818020609981812588602888867958677326254072695871340049009392123858412926521683630262360986907055588689509991878865059131410354760372650532765848450271931150975701958051625476493958211866484971923391995059574243169717832261496072769055135135657369388583846137607775751467960738429120215729151354743663121512906803405080478541513964941012480798127731229588960989059408862842276212575686263616924589227381132202776629219666477892257425401257807001289291942138781412850711821244509750817257481530203795630475336871860262748561574442097634288727600640475023445694593506735381456540033517617613015956739297953209142495908477991747783403338523929679732717619486845218508657807824739351301376026995098119081216390211293871289706672149957399637180419892548309010096393228157476339703979659382713179300966182116056946040756021911291615520440104265911380721452083304911591958919852412392332617810789369671140298320148173094884630498973242865708963523473724311008008697121545578285940092355373214165150064906717490744794210723328569351929588045721570895911101961631911093771155054700688545132366143286313036402861318277837985842361498404727750604560540873412186610225254413267918597112303030140495724427204695904357220319512884424988099974465438244468867935775224314568938538136999133321692103759569462933621419510955703513946504218700111181277820350622531234796913257632929160659570709972244456784013641787421706726878145405867552464680470480009463240074054259493260832801136376433178960222535032997734854350640622565307242518425702193475714403607550034527816869252835451284316401529576919810112282910209769800118519998730591455792638417642069927593371068292765150584147772418779600205620507818908061831191331912008154037328486691681172849195808667357745920450272819753052809634737777617447746642437006168486603604242258246907122161529437382163765894032382461159995311104942640661198446713430859742286544349444803070326453760158047636815155611214535883315746152966331344815249250054237545084004470952731082705945072783683656309466593696916972052757928342895529100048984506464982337652386851562260518482797933826783140180316025119060901862235103548444443800042773742306338242644790571450160712166625149589819691154220979278857650605764590140848890098083675043737935473086955962235548147252950059740214784491109442286949128496287099903268842631270465454925630341161365850123281486487637462466630742952710445764320201959210903924959367911542174088637326832256117916458683683299871958188962063292180655966921987326949375868980950567245748249321805035028008335284006004734945083189451338795786311258078300903049507126415245311473353167002665408483304169390674333913897088597761143772871970329786296787334313264731517503327468474139231682659234644989798471471546236498315009767089981229082738334135453084499123115980884715072685371578725772136598108004298655189869612163286621076767606691932512140705615922174770576069297205287252760155188014680679155909802539095803711457045837983521625944262178291632359917884688080461391855721763187889352809841994639326017696884571335147314396933180693320998599807000908282151786008288904003693076733517863728509537502119069434165798976399713497349611242170589692555395144883778133857408594349727913889347695496418908493155866150032150490063635121331710045580496312971105975306041275635671519426841907213314262974620851876568486612648391557913333799356954025352247834484635374570490789429815888261947870050023801752282462947106442651062343697116184336881846529788844259701980605699042353720361037962794664135592822590871616840097050353119532130076932471013868653236257733221516979146095544220130951468268087020585383274273139889695353682110077082046676646546920115093297941760767490331201814064325998371815782389790044920533115655245415405540898752438754759022694589511697823534890274355495752142633517306571436951504923228661721198880681137496926328910927386415984608417682621052928187628362918800170181343391529939690850707431079572813243288775528410530518900778711206770588917810790292656924596020515344788057742327151229539142435051400694428105751569738959536651526437727536804366705952710318207481464671346722125428116711224452696764281021616095877651691563665740465050224079075279207313802406145029126780988911094592904213101090068268784740173451265967022535904563542040964837526611748886792577618046916621436059166859696577216871142248906769446650376519829574394789970120145209934772295851360702288882714008794002055378716270007859922607202323769988669543151130151027524250531832450090409545372298083659049346996991800052163348491473154096589630418593784598360301040383821341375577469922986271269907299262685397021424541598967320863026164791876616559167534744928155133811702211513762094328727937369385974991620096692906483692324449082609510093336693898086690087119087813444866760345189432339455535503088668646558642209186341205754504306467647239175163108140866149578585117966174965895513596177319439978966335909790021790321109273880724557320785436061928404512516287031505927154614536649762676700914919302215095493699373031772244454092825534427064767506499650127170586613803950051798536123840433606309879347275807618624372356207505885704662057840046728098770520318206955607022512523219427759398508301604726892349347960857415105683176507124536388901816294975314138664024628651131656268501013542731591094991095421681799531931812517713166481547837166373416068307876939133938425868113297317701484286736432771703068552722839930523877019785094960438726704865283242254929429742371945030183255143009777156695514268395332633078344458953857275874403760169539621930125847403322009196457448108452722094072331186817850563810510238873233739093361682145359400480816645196512229449601540944006092965892542661139092186333665593169230013503580991712308859163606935159616479817455018678228229618458539376616818000322359572089817680948498292110952769622160704000350603791367632561832287432553324134659113605103945457259735756618106074994995116577563968177407001436847620917605332035184686355541107631700789990957680362157848368831417257846405547886457839159552905023278223091677798930559195352018911593043771943252236439270768080301141323180008182485166835257494596947491871939567335945880747968361559239875038550217890995124134487230512335255844383869172258460360460294579569947820371731728213629804875704861010952490917158211386220722379155937868273489025141007286565557220853166125655724531679213179789312508687868102464277248530205769832636947523230356667548516702683197889316311878438215019311521888957363081848034061670686717264278428356287205193600301473610467296543378036060717779486284648058166160656163772323015254151242141386919162158718761676886712122369427660884694616804308262273690796462432065660453865443314140947529647495136233846809897064342626267453607795359984860335548549601175528117975250265179478200399010167760078575869600908748780988673726573868797481638782122065606196673810444316519541020862902032676450340815574024647223076121379628736331142189782877658217127944552299802709628069302414124364806780704961584204419656579827200917108525060020146830185527023409784409433464581231592566915671669539880830700006694128472279691052932438520268730857870216107667765722200989540253601870171479943593082082974030170345011288830061864305695000354332879855834208441496022316082464377811518077412611282583461403725685796477480118584215370134845147012841310251682255575421334011096961391724447485268475289075232189856317517741245043075099943596353868660233445901570118118079688311422925999438075750542771144064749524609497223691888221723435326161912152322885384499213653490844193553752718184399642775311202770707899966831281171469436804011486846373062752347484836329914991517619990244085080863327842764876918721969131817515659391317186405866295436278767393986149866621874147797778663625774504143613515266130461548149499704316109957174475859296291898924940883463595661119811709419709060567621955858653561139169727374134290042962504508345924077664397425809059974768084175250802512900648329980047557245000288401157677010439356509844670268096411670907484498272048701664273068364789620212398450389038745402002461783118674852397447652241459678678159030440252923054610065252651781499643659161680042782033474032343681634058045808501541259631387641838791016984864122760275657223159307969881466252133059792330945441780986580586866081171197214123763573230636971621004027891431116964319404377258983566191751269593145199409542123099901753252324017801225306464816982307636526992885721122630222751103561348066267297219349232731092417604170163905085825227036326344146495680593103762927246820360567178538263752953032890975190309147400671884780108536924759667539303993505264199157567068803935017908099351292298182633414514269077088223306748807310205815860226702796235661225515871628442665776181675401928647339692751601364107576474898718820046231845142179271589289870251217707859894444289362741349194167753483232250018572173549233484550829668363784709197832427446276576091377920479001634146374011177286870059921038510309836033169384138535592927313026471840691962301554413018887694328411285708109959988205115051441307125831920792072923283567421550278613970626518859065423627654629949626867290815467629962391026296823288204451038279076766607030626766064667397995455827013736775695312905352109428307380276939242157981485177207060452481582009628615542013064301770020951302278695136808938470998143497513071340018889034802377044239240291959577323787149561872070110291552059857563101344744464906407782884478984125360320702087003566472635375065852199401007056756240119042495130064102884249624181106069465096384730245811984978774622346141878010252071323607050097803606318646594658235724714983543310004086500073736181420613339000379981606001084439959390451385964390749123043933260598718611597249465050835575627012218156469284068517868968077435256018670303795306643129652494486898796512681597496933589451627550261374500054281873398409378515023423650767452839859401279996754165517123939658428271664072086576800905656330313204354491612570331497344629622699818495984425777643708318766403739999101625179484567710309869000037038759296147225471523015397888674203340274124220779679892263448529186172029852068162523651765311784922633321160320090599844060241169195323496609779295690281364110163713435292837436497599663998130563964605786546516416103741763702895339640553227614108006426515892471276595187133733034838324670377699263161571552839192732811486444167828921746833043116917384740583094863673738341256101607937580018483682881890587589008420921981368513925623494045203000700985741942155857045035791739480301848044569000631853268560786652166028690343567391033474946806290559448669332199665819724171004610595996836560544445099042607443331007325911821242386920402941865819016574332467383221815348704862364823773394072232318251828159214284626794718990338852270536321659023287919445542898057692395960673385512431552503051519106044786654075009673894735751782096175871011963450929965322779810747596639285470712495843855490751522936713058700038484915665018572653835001012131473267518326566847830754525015622308240683068000711867047830168089855065600157528741133596695537658071531206204418862269783474375010311722752574835252322349052581162184262008495915710084516627353841834492221168138601206365298384193042628826213084956017549172976344680140609556688023473824177226872321150233117392925576745482453097476200552533437317328700755533423691567818803917386461131946886893619571400501110506636744971644333432491320370115448196527202513378923924528489533175052611165541815489350359577922101561894803431392528442430443508403992915040900300499973253341932894315597999302127912583881186505798417015110753099103207965635676494873408658645117877876731051472659373695729432644527859406422798010389925650250771243975202172800599047803752522851560511041419183392554050432391478578747613823309217955532124002073881662878448547803782534250823881955383000042274562283340144719083447184269771898521390748905492242117898915727894315555580487487999440164576182584129905364213166610304706598895923263147639148405326750817530544923271108582450470489053580888194115121190912905573157342661012107464768731208162071508666009519095560599280861998311598980011491190994283674771137955081721014917040330614520027282463336451498748425114292152811743470093024045331561481572551984691741909745057822307302201738477276825881956108466632656563460349936174747371325313918601420321660555565363558540275611882783640136909060323631478031791881176920552861482059111966273717629930811693607810124239116795228625163559377913162109717182816968036111446724063537435885212983024422918788977538283175084888203666922452537167690263683032445569859545257998161314056542870054500973074662769751088714848620679457568067829282192300786888467682656376313334776331657346817981111885942808799698989332782744688214030953150499772147983593133880895864123050823542764217519150805278068563063371968296717617990082519318752012124704039394355031722845695842043366103129211945741228875344413200830227410807067652348113429859740228579397845681962731241130684495419528172591470522324791827709123369755617520582734166548904487169144146171087782133810143882130284534372482848780934504045702631482620830654755067617600883917300425820505278239158991932510561890980479896997247464533213895577290614056945475345924689818211303279334144686179055776339619229865615615749723119726523936554457147281570925035560658691136582000473629622584307467162172734218551879529839762945055893776259832396043762471185334321292585446458145929224323181427517118229348038102657449898999666111656164952655157910929264039129367257313997290303655476405803354513200529325512806957986102092848738075673709715656735613548386488228071207074956529177207866427196141485132909886143428140473781668076959823662392926788090443854036330218738349758502509881276592313228012509072784494990280014912314984936504209788667709497467992506877184998849055314433822808050101210935763661427116214512989171447536541284635722904726122021407646927291676634187862110300728437326980469137562182514586732459882139564967569331596638920182476225031844729566343200046580516190073702450669572933986381430807012511527771228870100492166827529746039828537166358381759692208434412529338043525458705769655481459539831443472593973192380018655813338955845276569321534181365982913314022685075000900397881041982902420253055985431166757240692949695479576874372136137536171498578251915484147923353610281668422180544502653412996807042842288170373426551530547004984463529400755710073471687966024037408349269204763987863236422972118791296251326021815300266980488455692685875093437044535226311566058806780361802403330165416817806685543868141827702474114750810259405642378218501853466642169418042327437339534259121458994370566928648005124053669942949995961619025855360855376629585980456342826255057757093181239078014125473405355809444636661705610185045216471633822067217893262716603191411845130195980296121983216434883096805565724949105072900853986001042944297379988807197508851925690676352365445880229292551010315248435415131204057347434732445372760082231507849875624775608784063818580985578114391917099261267480761870508718886783457733770229637694485443022448497676953507265495048233820354552625649999549152954038228716372982669043229386537697595891757330306080845614500179076966764759493181731404449658585998348965426592955011980126810160163008893962196616104076969153636247088247250404151178258941385061383349703084523619579622948209359744103377925343551738992884958117301277089217980531028259812278470546687358590592076390044381027401356143457942923052944972291972926384670332896015722957065288462687124157902064335553291514545354392573929117506989785655454435541882696531967058797055643672062300870622639571082086021003726212102399385056867892387615720752896127818276542324975452087430281716018681498816602586055134710569977825281511076822049590846933740439561597941604412175695030722318884712816664099803358285459945168472129589530915858249271728336112042160167424701897771177905623031650179210006654036269726046882776897859531032302973876477675661466463818340406802785917657519030409495571768304346238260135669365124909705870014105077654645258512093045410637596906062394137713513788254212912906494229617643190444310785863442722609052044548367044896329347092069655991808786289931858844766098721577469712596029483362290312159290971481374019249050787517142579588908509597023304914294553275611463786525651836346252794822629043768475099896081557630688987646436806600036987020157906308680226134105453809571197275043786378198719023067673075322596992767812141664702745231110075929075399223210219403856798165477087693292672644523450167278753688781412152082336458529337203984812867051528272414670168797293891333566133258471886482462793710941241497993789052851946123201261303629150392959437584802706095068061052069515380048357866768030214620402113718831963401565871074925437261837778438484153338986498041754920063604481579369875565103785357331336560576552866563341557318329182392973167256716687063195146575085443512466258503631212737904972703280033117189011302147237374690023580013263072636018121485918743636043535184031752204272706866146802427199507152374633331613662135294312966846796813911041983155310564632164821180969142972492074002791306183998504786060372685832156236384402901003152029841371675571039179036330830450556467507433719703862033912405456953279653659289066602300874671051102830485669978770181840983249827556739695240267200065088889329805294995999474124445046395763224462794653581906255387541710737633681587864429327808269312813592950347490571218246168282599495364726728785092347001238398359663882988871756926651415256493715170645575954776950226371443105760176522752350177289472389729304049010189157525802969662961363143509401192568050288287947765562470208593684068940198174079666141787201346968146255243643056010871025799263083896527538689661885103236141042211882761616106971419557395501166644294886132421306991341985886929658267528068594997669900486397525436792046330672715831468296264430788085891448099741048321495652617942850126276226903348026116034745582430529306935619465434184558756785451918979667652568413691471998865011300534427889623955953892825688932249611701297218985477469036568416575433899300812826126679116443998567507544634667827740766574689451211311813279266890816888224622207155440774774356721068844045218782583167703536321174681916581224631930033129991423205337099779807823005057322235659658812240803850610677310276584785562687050741087653078592294965709327284611797866979380339298631580875449811172945188331989013339595206604658728924839628822578009617266684613020201704714661945113225394235267025811175965798608929989387752865153949586362886373153682399194541159754088378770816649184623225474342383920736482072047206364612064107359093651387878074853641981212937919607293246026399507792686618248125954114750800333622135713258489955846367589510810812984552971973082841587213224288031558045309176453645173182707623320445092614654807593609158982379236461590254516354816796190248830197605570747845934439962776309007957545917444160394636030199620066158215755051805502727865768861252764402612000135144405606728349431860229597595988604258135505921300688380216590675061909911568393587774450823860474846225206747011071941083787760221262037773162564646994310795026428713129026179642740175169496582666323652037979727570247717569490136838569921061087986602891190676327157839527899042772753029125098750812003289348553376823478986707241126412434336812545473170678882142208681437427209173988671518721827193034597816942384402330488496939287506722128405001543318821286320963272532009951017958121870830090425572422397499488735375817343741353435823406392734558966218679384043174276100403338065041678873052248270491141532842508150163895798825153975165884518019594420569482799116343373105038219178068775022550847928339138978312234617246858458398347968647745760578406437762228976470165701471151037954547972752121330321918713674870502392285506298229869315166904339406264285410745077931458206738844264241910900577383575522306532405748115769016584564109872755109795450113186790327727705218893932413130127002969913610465614480144686011189221370155989563148197448642847549163778759840313104727744685696469665906560463458454679597681882823009183803956469759014375467729643938956834375220398711110407924827430772714784375357135007090924366900056269093895493366784183444636528908736756523920025931367385838015596726856131591114012348742585993163209846086377998451496647883542486402790244078314765842785088540637758365859411464307546817058589928902451107219783278688482416232184583403619642593461835158160538557737446353622918502192005227240969912833018991344680812345447437417752245572679776138838099687290551909384731915140379027308018848449142168842832863728946156421696807445365902896961120258903342144940449870642764810774844888513877737349817894015657923530627341628602335011993955124620551088604807998580117055345247979756068735817879370047552764653959850930471186820340110849623227189404095774443980763102299300603082479613066137310606844884662458270924235748070673735330296527483356680804770308658094108222381689423643842967068857282775835234016577743723073169435976140217225069689463709827618432936234804605874642826390301710049655534146614830648685402979948354279544059049805916299261515252841086591935735663538169163202016496118033304778660797813024780214383654279660388257920870937398299353543366598129381788500255426492139364680541440644965546301260603269959172158481410129020254467048345232316958852219935425789901627672451969996089333743528863031251018449872184263396375257954445731105784264780731517908939755165688856790975035644848940614342195458669173404735103296169705900826440071583793326968110953253361824493494420481116620471765421535633072488682754702432168265894752176991186222820644597610825464263653157277719332449404762159830674783885519418940813184918677289867875876218788553312084252547108552451862142249551416404914623290379552542782709343481901852466389067666353392992831299355742433788682808603131080550786892427552852442485121981131277064508658460210192884958412540452844521323153566258636363077940096873019979103486205974111370421642575420154763133889916116904780105070049033882709478016698258220020947614122358493606805921715383689304883057812836510993823789729016708976430473573622981211457226450685636267707946165163774948952583751804132519129977960723921031483235762447181355497961292575237089632281859783667110902153329663269487534737111614291972350340519601052354693186297023458805881028469997225783674859984811942889384234548037641525957617543442006480482044550852887135631077235245751582394722028257721993086059838872962391818140202113203613988105366662660792729427975820788126599844434923275247099425108329385772971633904930826661691486347675731339429641421012969913470915188926788354271291278235292222150558770752156809809053930628259853280560176950237276580758085842548222084078653925484835537560084526290840942988024273501865453627940092584628947924251074825567705520334634530239697972200338443426483381217321124246420582265213592463307894877035331986917228014542005228337342977866870033909078096885216016610467214793961572330901950290770055170206953111927392306104884766092986221444331433924589598022549529411392512777334431381566598246288447314461478389713013837528079215955621480018629480452347588244805896690138915876304988282061154769426884386893107006922044835250603926832831239011499413486073664366425009897205653637018502020915012477434377608958405528923850639355737181733470856435655545149557266624427068065548453463842199674557868752688054081308226178884222205939298604762373346488963640618274322310230298121290134013876410601430400601774577533253430299760514892201771992285760218593296749102339649413805760943929818072198286042385189399051338059031062239499019889205511318412616294146378388365064862363387934074639227074065100396196766052170953465609831007683155182510172266554194111528194940596441157090123576051481162074789083312437185646324602455968869843471055073017909422287084296502384087664984532988106917988823367175057867034028381808477766558307960059832783768964734491108261132835226643938195410169282105796050512203391620574147515334127593250880171415849960125678330932830809480460013478776768917540138563348385616018281713811336085422251490796371783010775868830903812285923623645129608352435014196341534691975711248878918891416338984026897492441768706667180685937448381628400490876815952313160716639680485945649359060767297624663912306503198899315193268915537012518143274920811351367392179485195529458807812064211040218628497597550239199555819600425380533990069434124605822128737196708853025545526814667749474444692290617063815784570598605161705897859685406852987954443963370617156457234827084517976463639136690181719688178246647034233094434034251218917799147745891673836906113665019383817159695776008582483042613896244240348862741606668137052244143780771048328985276995469544230269026504074902479079796357940547838178957031232085235437057191232428877933842126742671958561618956551961607637606926774308226815446292149372575981349851454349099382074785296501974139257323476974573666184762688658079430690322620293995241240459527227662981963282364753619677292406182205891808228870263054462598134061407604661561935199702426213190845438358141482443539495639041706839744904508521747005801318667716879469335891146673771453953272710658077149850402548608711027641132972618208186475341174560260633160704535075026061701668192046052775422396520225670671078331219854433629519244756177586593627069261009301487960641892939276582659438029494147421917911074649477720059148966927407263058431337096033227964557725593527400034133627095109586789496716427088675015738916091681970750079188764025436728341618344655481256028887246835971634885687412788080461423057262727721896223523885557832996988533884770635175201407858200922020323540457920939944381454711224586781626750866581537118951376127041941347577914716077730667715165168954047494914021338434914154700789864360705129563666031601261405068992045412044854802182263460929792982859698342607608415217457349811086562117142506492541477603566524549442511976516619865058555387264163002739038151638680555641772725930309133027857571838753954848794721837074794401952913838975566944329356676882066356053102017808871186197663983962244285104965074230331323362501061407095073293986478938107416396575142504160338554277695723852267794610922077003351134601373930204497158215391287653662500355844494868414088765003486723476334087347011679215059453726221275790142759403818090028183521364335731792591807871983442198088266968571902393103235485529391323767809760487995192707689937013489125212181556800546248817782573434620856100943479492051728928557786975745102586858705320851431662436937147421031143643089355568826557972346275708329354282490593653249326848007238300627022485356617004397292378740045848216809285410686142131590702603536238595082074975269469648577122633185141495516164318484992011599208156266447648532926714006377797994328274956628390598120680236267003217562638669188890975881116112359730379118315887582709633971248863743791600234101499122982683261761550847765784678151373459038973089716071824980211120068118514065685530202294681395624551998606884461932947259544721296804906818151832050548914364828100755940283986084842143399425570890992219306616743266886204301297049293055888469572215371680323568553678801749726275322757093563765915825081445719835802852718307190022470896878223459295963129909056150245323624036799842833380663378353123669519494458707509583109595723684683648147782963622527667394634548067890095432373136907853369642301089430272583341468321351779878062390579606677428735953276579735066927756582941717313339657738022247418133253705368880767468241114186155904852061828214446739249795358319676451401732569131240030827554847008826598203102162333907092703252730466393292290742908462320831631421565027580745476788265607149353247036567625619796365027888241476789407415768778357249407983486167873167105866979370258885426939077556541617258407951148592620204813672039524596078990593121077707984656656130550621196047710346743865820915070466254442224658141535387355894583576054081670199279646215563701609495063832418696487475543713219701999252456768547580520058654348640197897725743709608992166550752859292608529549590356424740474489201391905589460946325549084636066498070737084234733845445759998517643425087240240516109356445420850352044370698036617149070159593634366738262552122508538590970245972972827534214227577586011196835691308655313854977219683651431409476691000691254032073565665793040417276376161376731304067004399839095986456663525601970244787354410447746187558682232834924428081113018594539683907358239036338198032925563371503758887786391541080337148173280212152297112152556148871676699646678124080800668014034914539037144449401461946471285415368882452436868608152734028919664365258766342548053458976932821442582153269573312199003296318104734260485584704752401032995576892942921825216150077263880410323325425431696749591717693081003390771248201373314193860853313203111201823940657819910298389245411553462274164009499043473184113415817640125045272290065499739911072021048017360521614774826885722796613832322847691296544836342766064810545325630203457897247631638699610132046061353326657204506062137363632307637845245315356725912836207223553149214594900962438070999733482489440212730832680252098828738580546340173801403120157159869473183599165191264050346106287727341149256051230062356607153208977222264827805591130096209043453619411416141787536228858826760264533137573338865215460526285892655649496855367084984080987842729352531766231630656251114939095451374119512362131221848591733237515134424478186971052918846348627462928670241638741364858299413212705282437463222472977152040648212099277751083029276021410736219508358211464008038150014405170658980116013572741917293044276488468226389748259723115783733092996037882007561792906568969868383932359697072687075321682655066648268964503979656922799454957536039375441272152615383916313276674071306785748750387557716517177380685405520886162014434308166188146175542271061843522702710781106121088189182365599356259541312805069282379149696333013164516566951813109436878794301911520690000785516424987251293069154601943253916128590687785295258065455327123323335241925808958804489783677915695394212153079722536578591086030872183871910348901078158010323248364315373132869307361876381339645776213362682224993227332410096946940000359201938827780733486822819450892358158804532035082436871795734062551115194896794863376329148480068912523185879382206613887162425319392213130820702903511657708529434170198861860430024463075699496971879649402641823047709361652702479316250190360115840817688240458635176710779836733806037755507318103118548092935206841592807414572393045511900274784483760419435847367034440143060227104470663010476558668919087797820239376192912381546427638671703001771398542294083496446153760984350547908981622965446394596929018385728529331792735578955039608797118719046483402567933723322313314872589873421739673882187846410346162774858866438507684459706584190854680656517177572264005096677708717168204555732493050105449367848252341777595614521215364583756330051066217746228302951675611284450239173955945277705445085561971742123180285126047026345657546069039877451121664287193253074278009656534028646279661399528665127391196435643839196588904437900941245641753640600192247266668371581253896019879680467942303735892838945682871891560058474776620469082995311287745047060195385950789745489859747540468676732213571314487242876452932153899284410402366011444840798930642500746614218244158917195338317592536571430577883621302568611086393256707757103267903513217955840046899968571628913170480923014396385894358528225077987595397551537528317911830453403148486440817807736066004696670639228140090056074941044790757312528196792583226226657729897353835677098366209269399356809414253788525974995351301618602341471371895890548306953544941289419641290987481980188543081753878647767454396410643023800503909700708872370902468138683964438636097506270983446417205075818502081485764612384231226019766365569272260156002819033533406691309034925652573391906436107281206687905728461340859441337954908148616336144255583183188056574556927446916678389059194334606593718407410002938368376493922520687940764447900321288194085904090520818009891626969733854110775574611730230062360869607917884164044232696311702109191254519181582576918514809391114257532860314924076076939838072402017661552056258070710461066105916397858473176529646227237382883401119064199086929379955578226704242169336624942394808412073452108435753988708384361420474236799933950695619261963004498534215377152361123528952434901419654375379321089214506395692434332992464199169995386743662735416485500484087986070655948716395895332337339904186353289610519085158925672121446202529077559278069141628014952931688262051807076488580315007925848094000333614155373515617747676535321713227003570348217071702926196130001953940594978988887128673110453244392259753044189538294637788984927414638105260952552259053684567578027590030005551400350191995838120308988382885164287806201611000573152797203001155991198134478573788165567025044377875898368790142982860111276185158240563818844080030086325588614399089957214937909825309440945419649277767210572258693174956140539567893792863575462265409410800490507575487596121858101257262677289380125070422553481604072502703872678572092809281394524703320887998166192530191262814476067595118719902553749600364940286921103181856595240411713526469643472772871514794147864895881352031382558143167719224417716656691247461800221076582658362714121120027627911773534207998785065259537677369283372364690561891808757662899883612904653530201845712097180139830095565115496861161913336802269719590374229603314155058617520229848046062741163712438157344887747386282911142797526846574550737526323948360901033908779185340580458673638368134451657267390844100530122702558228904211076914028505686009421417180013639651604501662474741709565545143295745664040747377692025546076683797289570593976732557263936117361116950050792180985824029053169830174967377756071919056319338928993764564101108071450514594001935671466862784993015066927157649814021530720209695767227728385652851263729423863266425414784855459996528163764769855304885557794362393660942692873371839330003916070348657366976029139286605333046908300725965753918726430243195270281930868969755821501549245759523289788524311611851082755371804733196675642544405034564352054187569700570365092537536509121487444155231488616795840798623161267806889321753877621854178035659141120340294956055267704096968049250879924232070500920708955381078970568851910587521295663991666503855187461628552196345650383306780701203912016044063352103131985570189880733907029456583438793716766216256431444352779284437206184755841138817128204179569246986667069351009356486072212144490545263210151686305754025491518166826757513374559212093544565196967279800939529180431928660760659625378821969829409723036032362367604805249883404432911616235069128487142862175065623351461378425599947065750188472469193934456517617539592595991705767088587396476187572173853487454806534930546918286617136306574759851280447928262040490852179603633564501182796220944786480528225525350723745249858204385338565972936361545998231188488634890559011882584320761143588197142142053008061635956934602771510897274410795550731657535873908766026904700094079074240567629587729969273475539569037682378622569200262955895926592873025706296370851929512690493586446177276352819615084462872481512574746123127509019109645683755918686724517963840264312689151575303507075169558081869483464496005940236456177018016725889721397332506986794157894647538112333907378031810117437003557391114042254694672445195494170268894359636742398860451165523635142807781435261509170195225033943696276584286679454550524348132512887817608048320032954731328773319115247597465746034592957213417936152616769480219610700817516746273308366559175292312214846088526246424292408393183360864844107029929790987777315611238694663953695523329200068521726574516536573718612807371612574492154883954059037050424347793494523156568021517425208021779489134520212955158728806537389447658503537942302153328599819473819278988650187057201306397366297595257020915253605129410894452240890014351287946994906581466733153114309187482673550555330871635416650804731188954712427313167578539346602189580800927991441185106153859991855691277743901088088977076900882923187269184599605743341344082817082479850852051146397090183616663585371924401826554695136513101908096238264137682111904718545977419076659957669201561038729916557665679659431057089192958499761097602299771788114567510598453325245576708087177519034711145827885504162274268760125027924526820867418091564998582079256362736495729214025511586358490986845024880643066176949833644106341773105702903817798840893266081299729083947476566655171011458621006081419025971512771603674644852988535139202321905577621046416669133730105045610105478784574896513396331773694555102285887150210402251957609200732897935280787423485083429819202739665180673706673506009367702780794365853417647707080156643286064727932201256722145089212711699871689053493164918363970999336389202150760196470640904001206835876800962136924753248276862950497113025118042750365335453287884369815819238281294150702623006769035263223662060585431376551185671007222779374629208436412956888691415206095463333718743103750645432651953833574353072422821631889723207832548064522996511222255762469740942469044597531790949354953616634701205187374048250457262459436160452349723335705265319213876151697375270356313622379392454825016938060246286307033872586828300072851912893936245745516325707545638469431358226451618936593347908251867623466527583140094379038159508662100562304786553116220273156683362163120773480961296629374456364484447686332664054928744424099894480417772970690226870355915877120796965883356408152023792420207907742725710550935922075852023418433701251514599988364533013468079479722206494735155413558962540255789931102391531515879550566889639256182294416321529083038244857150763653862674024767486734662794848408995138028794578474815493733709607186113400141480561563330344157182218956870150808723372392592327707284587767681735157642478191162034467607090629600201311703050158655966665653366454063192818568194542176024132651913114879757469945802518987287719547988485934270032459420468626918851362795939945265904903374157186092610323663011934410281526334111492661493538083670928297015463687116691199012549417220034158996478029162473275659573238262751483754665097128408131450096766759206383958952400500042258287895218421973035546065324307886307862577840942660100731692340179178221772501004761884067573453437939323657894708815530716997471765628323076363081004365129942427438274156977829167111964990786805561771586070616666625322943991688926769074237016990199233390856263932930475040209292382738112354986345853335481414385421530626855733078880462942607513686458481678142772202427300624604618589306983634222073841877526476111986549980704535668480471128775738995831274581005946127600786088333460308854190749423333263881581634461508753020348953532608892580948742828795013359240178034870629100875760970324200154212888401125376749037182131542795136346913641653189933796921102726595869968964475379154515107546828584447985135488514120062779589551489201574171390175447030229222577008264718842884359654840698352438360739811094450755324402962927569971088064012832850772783225767435763517875078420168280954268188371610529117254214323165367202257889088825669626010940182215022206721118610204010971573978153009124040172142209124023981732185709010841503792695971137747102687183568135070709595677989596813672233160126017291481732201841166953401347417414795593351123608967907949242059377761422998937269574609431562334712408075545504711677019230200462232222794279835876314191981498795336200400839641644558048504612050042244342319349627999251060900966856781085747447933870973877609081272282021297067946177182732258076800488292376844315587402837013491237556865647104071202584562742576805774097343995983808630280236604500624812911822150875279319796585539655630948212687953777316320728925307276992891039798446503251622257678112745340845606826647575466380737690328707523684579652639292940656139165140474027875430049064051317515164053955294795234228880099949781830097999621804815251562820098531421591162048941715159306346384191568933590347653998790816082644767972321606149894254465443957258023046273246664651464781215765276213916831654689270405726971019217482156884676057741511570747725475640003877263450943298948750879519963900597176739325994828065778929958181292932250866002666665774032558106187532029368550374125931875106230844211494556730012779292244737742202158647366786576008197883785317001709494705382911300789305700274494704377958632383983430204321928484887116461840498133669822654165300712903260785599856099801324952875939161780646991125249419179106126871230144517603589274025461169638976961352603276209017023729728741117998148326850235614068739847039615802274137038474835441630845942614461390257486040870269614683332094558261958474832836048412774270615784837698587192032282056294482766152449530055658376534373740991788011150287715758413272441249952862979358341879529536159088252208764956584286378523669389156565992306686076220586757685016174370629321862984886541809809234367355970180741262858679718092264923462722181808206253499290795404021193085542196587035011262725132117580214191790853960644285331189089072412092553059753615741284637142237137369047613902932475151123502690869087699537643847268251699889918336464471891008676278704557223169574552567004413185269269690765086294193261804361533308991306560038494153164540221143851428068026909043864150905877896399536185603362280206287397211172569526422908080724150407039195824826199880349120253732637124171945635584533679809688394640567359433458576359744605469353544396675902880249766877537227037505245960029589027293847226307964600458213803958776259715957398618428567540192793741589220222788289311184965973213053077603071210576000555986381377225736630050035689156039072175325679874775943954100687333618617251907724410185336311468499131972123473914925105288948444824360723033734964533747826496729264473516061174488347423383591745587262053346646052200137193517684648534015664462015084172672815231798624110563670250099414531960037284265785424182377716583319459740077369324021194135599294860628185996283986353000539196868434160214929661281685856122400476417424474465374381689663308569113560935541349611436624475566529046952266126904381005376112128505326685086824807061898401785577592960945666294816355957591291658365379599274381099153385204194643565627984209159154708427040882640825384242861016835197969585137315949853879694424803852282723376783957423998926045745560930619354705162328202540270323006028503484216243268546063499296099761157376564555604920787112585825086888430660536985968029218967333521607242848839096543827015284829583935849454435438481127843259179697353260564787537106382306018929874679660047594825697395025272364564616360949988450568570692607026641695128883369842052439776991656829123546484400937396025364980383329608593861276775115928409095751290970554092935147636008657904450790827567471102101689369398199103750521927439926580965883549483177711564716642094059226403329177153667493707885644179876408738349328088048918744578644683750616549456364062017100661605931074617267807291677787219303671061370337625075823143842143294446973025222322003056993187288630058519947228389022866136340485206472468104636330796650548063300748796488308695537113118605062146535099029046705129245621469557026806899905354390869507241467879015425747735567672911402858469101664220141299541935630309348746643790460065597403162124971722760673727679347174149048844654586909336773307245725243287611243884421271427367786712220484845930448262896774818280046125049084014975322486743824912867915278294102499617139984580648337901547777193933758477294418493005661657987957992791858132887963129951664820231940516641448763111441930034891106948522506056082951474814897007658142787425232838717227143569354448687186477002287527484622218576061433003020147414604390084361973356486030930494779087875577439566061127832463995963058343432384902320827213753431559837595704716367351120640719256803905930406500360683802559549435154880379340604802718174379614393901720594574794033166577182968458067780818624648988768714466004723290077800107108313225604245014246600223252840061145610519243868495685673932825343143851906283454035496236724871833027000434339836108802846664824168247415177684374576543993478968022551855502276437806432559918910407439426697881004042706939814761077764435067090043538193009876033850125218613538757847676651960422767275350241149781071191454850500972864133135579248605448377400565815071218339915195511348434043521295388765897028280606668922567274032272962562166489540973541090680629480850645949821466779578722752511795003005543670869389484304563855093452001199828459278005403133748388398992787597886276623239833801182664944884285045683936718700429484332396051550616483530630129107707936155694777050263459029557625954356065027946974019979385752307483485191596608522644329830799224525722697422114298695451952513439172140829978123140292718344696972951222485633918963448112212596577870181474894025269477849056893612556574638485775772192148094060604052071330922197710822992358899657629123331726493146835140826371647623392783641152328986528421943005796916026400986505206132354876488025275290382053373598321238349723273195320478206327580110528973879929249162528125691263233731557032399636629906279648949461128261032345220723712311286997326559608645154583646630482318676175473424818696550192566954597947897860417371075135512780339812101782015082523030425870746792056312331008917089644935483035653346254011992112348948563870097918861687471342643181086783144607915945647582862655381247559699604181944073548859298373244260159990920173068266679083405687939359175393327695199358833874486593103598680959040036178030061136245562000529428850847849554508987025354004744591135357092891241454044761794940608997273243161849347108005464100992149563695889848530036242038231337994013761893867526697114911949691025068015964203925008015697270635938241919800163276650804023125447879841616156902175104892409246445028689821206909956015967420236601627757646962764321630207310645677518502051259385295376954091871342254981464959224836504024717233152788074136440366806403153996965022184198014088552611418520872108709844666898514433981507462014350970974128164102275369645318193616288513959909084863762676827407996579817130178626152154143123776377817817129010896896136207579214071014640618163488573029793659103855101813138750742677124368563373457546305795218337644490589709104692118903333811263676405501782450582537036639853390689362023515381891864648339225565207542013719619384670550968773159875900209610913545135436200989410468595749182137243499959802063178417028820835733857606332396389917494526338302504271225957249685542916886746490773885839528849209744854131896262973809377371072047359946914861898875208229510540751174667676273135265417073281890273733570250823169297047816131230230235051686409542122355476660131036657670772447987581441065172492759730332458466869876253899038157290788148792500105567217826466202860657781661362943374446137959167971424645511984955545139899616438960016835937024571701376460191290900053179403556940496489080311162307055783449556561709233513346397729324804852595195718659465432161342377084581328022698005533521292550606444552188476018416310796949947649134248132920874790105655115107827445942467364280060286267492253669591330951076175194892425007562770103263616139690452333828639294500777617978050968629131992820696766597583314635787967893345764689880947251326487791255191308736849476834170592827802040386025971436461451356711909107324466254169419992519105780680180375958012525960902189914528495018442841081634151082962440521290890302638387720226094623093849606759406753561992389086107979732521776368579381486449205186615858681954730267549276152812668380529112646794062137176185143441994346831833513717396733670564762694107590748294229144086447160002769703903633554026499424098904775596896890873748353286288163520185599285923268347402244617577219302933036772230048272547820952901659448039828643217727665526321358892268580399249405880842312328408793462289400036051367798763552197612333354209582499406605055665860733657765428192051778229766885635650099795379484799917739496741308117086064646954131443339569510547766422192700787843351563582163464728991269104411491500015633789727900805298118020640225275134894944899353052706241277731309420589369768543031215702533104725302185850678922776485649691959552689151950191541844850918823963126127788373566960396984023005722715556760487263008005046687981811456641052270990225896864941328223099667792099786581384515429473111217105530363188281753068938741949531695385006252236342944851298852072567658410314455059188836827755304458279466851308978989777810616913379287566689547129049908233578557658561738464815856472333069353901561795430344137023280796040488031796462704694153192482919531544979070343505158774713024748016675961834362443683235870684293272605088420226926756978764783982761051094181308371888369249259438593994449072143917270913758707574841192600287760612292808190396667098306623904129430613051983267911643679541476811432388963207037624086312638486485362924922038501561726600131939187039662045602279791187903388821948899610452315732242989717283243950479161974817078378683234433574966934052076779688829492190336976571954105764445620896993891999606379023552831109179980155879296615755482439745208593868215906516752564187173618847017501592394163526756517237467772408584742838039181736919470378282136465402895965099679905646558696171561591724712665678838577053516001785643288855094239317516364693362343998471716781023238056826218013518949097672856440884792473423888919928401177440570602617633675474901259552561344025727273289607244129681311351993888375206598431559244321030791478924532011913040649310728041716283117952707276816723378187738475204673230851084933364484175239508177661525443177009023977317885590055291426926186059747917426482237833006049749776943029781759956374367504806709202953880560114702560597001634403072056564587252896447937391320566675585078808948231229882240262494057264324337684379709188781600805387743490712999263753031472154868095537932678481632929960826401529362866850356406696414090460938342046911416422592701944848916082493285991643792472522648509178943840231898643226059948302722854225158799805780355390199798226747059387184840915327210892751956603412616215654645296501261413270798188649613572419125905138307215412858042239984059116288237726359464630505799195070360877614297139383057739739063879361640216095792899166201258901612323053580245558210342300490911776613850080583664057522710017777668663941327197020688538022624988926469780874431149913898881933397167464125072160427562298844401422305140368251678361102121807387011776816220812696599381457353437523146380072024257650115209701467508648958530011227904550945007687938998799237664061179996024487122120915522509223510211736767167512863542653438702417422722848210587488072370297477356882227753591500612975980332363680587785415608410901817982894026258980580793209257404500244177899089433861466430652760293257605697241713939423624335222640784700185793973362851733233816280775697339447174962353309531350599089465972692656135320961241858262510991315319250131134391045607097827189740054643149719090903465832275959119267256388581457591199159740023381664346585052138094106284449904341149293427733832174637422254697360347775113524500167146653752814159458145917647799073119118139214565210242294433893835237209567866783055626106741709233378738510008233754606727822990659430571473193759232139610792844659038788117813356378780251790126191067843277665418020467676330445799760962008727565468974669723744693893567620425326619806410177312440350902168768006656567659927151816828695163924223343050140368393788142643981733116974669171933044367254713282678558993458362755617141698656601450257385913941382689222667995033335605906430651992548782780088777314981857684596537556941139245740759751304153263968846471410595079797150468029792346328624124395138675568609231530304385559107845256176994002544920777958055928871358761052149171709688710868221187506254628822512483264286507262783421427221851379590773650995116034975091941174596651550758343637259980247317884720400284280621773851775377382191946002273809947785903628172877395316801866244729636780767730300225020262136986919889007122145284370717760104856441024875362551076254854228670841002413442702093205594102853182390373015449213675331566581732348299448576225400001203007362502419188462939545597627410693043448656500072350306400565836916164881938548282193038758816298522498996075631769219576368657016992843759164286133205762102838953124500409144357918993704486979277479176630965807877563492560909411001469251610560769769752221128201483525524242972266673086084397850006048823967258307266650448437288107552566362451091000183660080913924686256077876317332848070770580275890479374974206519431493052852417773742087946171933200081235326774775892328369332736649241087770418884772262759343473572949998918955301024235341816201662250022343033228959937982577319728662214966777175009026336769916286984287724326885221469001617490860239414865809021013822485951979351342138203170097631927967549729489981681907422281542380695490405634277461177332943051699075787290182395097772753238541672019938852824164573601203493914180739920632952227863756893649095454816714758403680987800500924404369909116326643613971258787298918940705702358457761037505578360004389459912456812996294125407866558965625604539919799340305936872978792403030711667715187636873475289695599689887288887300939813861912564928177384732687362615729600714749095406092488605876741658169807217941499979477170123064325157660784173821414971824212763485876174336535289671735075622597798184559375175693948382806482802426319756038372016043361260935627852105691029763209564928882225542755103727143432993422629686887872377652913078837898667667167817334848086714735312646766548068499657411498969364302858883295021238789409766682478958492160190397688861672217960676271323705465408485370736270748640980349167054937866150397427693915475119843029715015817895303150848242895504136807954678573198922352916207666317604290168290991613623139961162378239654761969173928782092566745869481100464426577686702374373104145989523731885911807180528911814077391215486565311843156038430867905016301633548460588200921575495720542677247065350823184879387298372691019359857126318968633126176422778936115674812814941667183201503799846577404519613807045875595456210234659026169511711831010689700485665148503580845281811924417581399878713418391210456173310031060188439693631339889817168708407875209798838853999762135809647235282163808318544441035083222714504601363113186081869665835868506259174364461199240505998629053185979435943560861563290841664464311532315069426218294252307755296123081233515675866621870458411193533860612029913741867145287421013552762104677166290021451657934451573264753660515763890091077657254848888254312495427205322128639774146016050414668443740661987661726663961270683035363683503750830170652106895966339791058149068038580925145005758511290450183950302918137185646708005774704413165814908229042323293484772714869492987127696676928898410255937984205770295279807031247585504987936141642569325574326145350223596083569521742385695987054052009944954090235557690280129092288184664792068066018889459235566912778060312311736508449763737595217921513154102106169894407543521436127354291928121868557696836072200206643582108978056211096325631749582923615016620978266761703711648087117983043579134742143691063198913772595382439942493838073103515738143902348238310533516895541327771782060490337695863782348627975374316466568061712919718364029362813174316991535572378702458275823785526859252349731045635310926898348103941513292075625408488179758173655880546680468629478080841343694104413356827364342721537185380522668378668131085561981607786702166223259645608551941897082586345881867592076331496264002265342966010042156120137667055729957336886705237270427331558380916511574873731021844296483312411727008130352259794151193428527920062067910897339534103512549360366997035900590042467616214476075424461324202132146196831354647449161072484447005635963303046917743348038756866628812977211188019807309150481036079983549501552783762164334459267564708864619102330945541959033459033885602243021342465506107236826494455875635229249583439288349101358743996156631934935107377812325156245118995927845748027395143981103085420346359782285345774686218448994137254482398846572197329830242964136392279007956283377930244192095379242452691308325144954542511402174065356790635626777641086277201160763659199780102238465870689887267084437719937934779988585565862831610198536563445908612266570050062395024919668015405201325259447803022029874040155589815259145843745249487821524383753748467293117503270993809719175785129692039663259765806165815046894780604918918315113087159547181296117818705976856651514578039661285639450750698364726233772676366746027694662910222187043883138388416060387985782289605116843655731645429544222588325010578245203181912379722832769569023099020610154311491900842629065492002861388905343021994306997806738450263763224499272736940120459307888870585375496079274515779189603308579809271142243264669074217812350589107790947141099499898892553715487424425791683523267110749772097114676035744398674078996266252700693110715603760306809043847517331468437236801702817102728066246258758272218121599209253329042893723951919691877045723774409438457747510755685770844226147263584923198986487967691107561453990921462681379717051542108199842994531678605439729507628347876737827115676424494985173871490199784215799115046639142623195920123475265947103756635490252542808724887355715338675467267856367220240337020978353645852178391356223607380403091571158590231719049966349684701186067655808691147006459341076827896184566640607093443633240598715679817113425378183492397734273452318786649694292261814477453182070654609528122781038554280086013168193941921129787533865600977082902076650538017456119381783618132538803030680952697648424424409755398142650565284101411418665965589225808612068236684123321414291233065953091442696120999121739405973618810828666060615425722254527087811703997412795994542183240327942483408718129093621981944962370129359198693224039921936267397646210428286408770125102615855881065535951129595434752141274214180524258969441353944029070884404884528994164928425612718683781684728860906390096896697675089858319066383156820336408736907233477328569718924717134044328738203799836362378855596490063126142702359976879166256695803665015706486781890605066016499021167476839147100863339240297615848228107407721604787790889920143563584920635219583819076128514650739045377324569184495904700884233159667622289210447399281632048083511796033830053105695683373950711517414539493610099680182624721683149163834699747094527966782024018386001626904320771369630704464156606396264546795266849635399917024481174564275154516197226835860237726529044365958802188155051643038733961772668112364726091682127850746555113094612087221439547762667475669928100169714806323425164592365089249331023343410259381655808411534213711740653242311129644574310315816557400453708015767105716615726089599112136356698350354636968795403307421562481549618622575464888420632420729739678619132053253764926116633568670208211672974815191066121095998778515131248789050520920948384465126620799168547484028719042553657022983712776565265269115273005875285756660242687243864006645910207367601489387112200512397057295342851127391004108987275865429784839525667284654031450302960130864029801669552061955745137899756963652640531261066561510186978154164051382149176734146312925614155127151990340193592304227872655844949975006775482804171956510589303672945186227691314854344509373947734157080226320135043340752278278117519291485957075526116145281592616657271388684149024670180682905794119499958015348305306916021754105999330698059962216842003668239956539262003577948063811852509868184489187131594811109283470083211127810911435721730106736687446325511251186902050727686869481873962129667482280171201709319866660934726361487058480716583118482318192178540829989967646154717852973555697816706611584175045340432133530924040909004511037456788228139299475442565095184526710820127258308514621297252082496468242017262520282916384290772651676641312506980350316612033019460383693410660910500829681170288736345845282323763295582875225065106222169305733024202898016644903528340090364555640371262980459719823570571580199046407953115271395867214273613590270982299672850830589015130471741097703357107933610534743869555105645683542743732904589553787262788711845696397402334039692406507855024612108576362647569573227853896435746394533574070613708355311879663860891122868774125241447556606773775062532578293017681199785685612113050471168725556385544509208132238305025637279272767479617193233430227913374678239320253435977662749173709504881341625121023396727464543272838716393623376622217615723768140469038292125400435672022687268241201097640293952123720323811905153689945882870589237505969274258215978993053213451738854312699641424737208868477977584491704524029969195920117057985885277339812263928928641834412615647179660497751960057918369233372768324368647325466399746027858460709368750445605922653047050885446269675247195362752979960498502501302950308130684680752407466827106261093718072391427675853229583968549890989964757706497863382732953160111186746139573230158007042110202759843928725271066358495920471960834319505483486972388352385645968185753773925662142642356495210378870939803706504790100510567734178217331206645912215266439691624385503186728596277893053456352801262072697066431383664045396375288457917700224019918784797787248719622694704527509036139930427631208290842794861805095741975017117088319882127940741573614248747090016775242325715466743957883490270984574356013968606467515449734627014482860826067579012491630248862627196244684922665441879875723805038412148161728672253801165837326296517647300288723968715029402175924159866362842914276514763706553371305881189674167116522576034295805438766905506828657802449945911974837634688184367539603214890878609220405841361471943487680631173029992187078433968961586303801829723613078220291761915819967343794831693399454090698788679150193018970748476539417988389321974168021076331120545020327568761782286287556106233454544593869399105545226370228261389474738989006810137416285803217270468704508146717001042383665132165203862362720707121356246165777503236400038849491757050178254002744801782569065873929496719705214976079875598772921810460103887936104217943419273969335087120605737750244855433210673061808927893182450227912402032939842897923147371157314512942074019258142505005530643579011827272147033466093416820270672134466938839137308634701127676301808399326271219580378736972438169568744856073253631468071660699216010069080840488860563942572055733600799494663376573723847897922730648390836650534679482194426757470541659188819765985689691712779518682621616124122036842388681924930498248005260937916015871536827442291517088714191751920398058104166784032211642242493448017990712179631137021216476972929425976467112864817873925053626557889844669787175825556562592673252850839540151829216153196587163161934277772172015655122486030668185100372439488654789716230666738085221674724123420972794627937676597321527883918234018456128922039718681876346414412445327903787711956487954611219301709620152363693904174320594729963659069873358021425359900881032838378776475004797375804435453777416604496716311358347116366989135597984939260641398994072209224009432800443525330389857307510456396761769941492559678208505899525971144049553725719740019259742136729545968495124908623130631025046203121504452436338635955472099993430856622107528910644825277127518128670611828953014086662420296428243024348130323252018218937732835292647523830575251999114540818172691967972459301183571953800759592176853054049576890401228282293143872442230915457594743144711478606765750306573686985822909140228202645901492330858955437833893080239856057308747177162910869817296878467001627663999470360072849226955123028549639323676319912982770145111831448138050053743402635845871600514099446158750396862920847103764823333460517208797341312763881801281592621061546551117705785426305093978082218885466658494195515763187304669466097831891616739658902153047849957961782560715673719595132581353839184637831212732122551287568073324318556441209636948734433024385229170302488408272886723990542216819763315627974242175397197889498637511174559108252988013690148404281645102109700870541275514752551657088789042627112022951680263889480182529496373176329305963415166872437462370385247560811156795298986590687388236154977107182405322502855477243371624238930949848814438216203201209898966913224926676015555499793687139760110897808143695312960084020458211745878051820730033450180983050001244333825542186705850914890879691348134178189293216848408056850018887419856814951917571541228790883027597839850560808140211128681203985510734351452587691590727219382503791224894310139508623234804613606776114349872170817604375304398236545152281640639678165250276133167243573729940971387625545199094672528649282846045727583804828572645073767673735517634369131327216018791244046007835147895827886031847122622463168078960394546591291667095342621551708381446715610167419861625311808099066990703879237780035778569117010359613753349467094099319216581838484151585428487505760610088175807104606544726327242934006886243308070741705089451966656421432765851923543873706237730402464742935036177563681323624894588779226873664714092192546135483674532487536802842469634260120166231436854479640825274045243658347146944844580427288708144422332840641463737672727234970994342138432545439770108556125548625004264448195228925431867734129406007761115935168732877196072225892792203031237123908343599384943248099599353280819769360035842389775925541223974540649890854179967730392005990614446107892311560534805896926602801889626607414122791270642354298730229188377818130673973973244924543546826442778882780033389746959899754708908817427555375467262839661429605660427941772688446461011972298683871398339487699797776175653101385119177947554464170460238918096625351894055476680798157652559576327007981599097637908118590631402549252231107537590745265505564762143384531385343639757482611852646473778121072446171869837015225074084331404540900977229412841366631382475155535617754603093840383042973318063751983278235280759944644759369281080151452023084458946871876243487659605308353665887748494957049002448609244454332828068539905953160698794326913967668021496927904431560312522165719231692011526421149253363108723350579994309143531628902065181746017867424050421220421001995513411225100506244848308234002513229268844483677213112600052649075984239993470194042433307426321701104648248957794557198524080718916105343596860993884162464313454795515864898894209542514524910127506494259348363941016537003994556325841281799662579649057174646447978647840375754628654372540254565757246623669596782850740903060000850960289052912947574227828394396298594231341576239479388429080992788553093608179614063305872290669204381441204362353436028677786813108973739903886277234499485723816310826986459490242638638009392901679972667060521087887791766895500814457619310358067856237124810327030300870124555928056539272799472870208054938395569364776350341352834688258946347522374794882745961666118390033865149473713865223633672031954764240770388127401195381598376133906565165830326270789666688456517059294567454516174597307345127001184116379161040099390210462999922467301126691228393019884405071150414827700624083165364104500499401687542529258192522102586517341932381441309015220547022217533456792266475355615182008529312775570659009687094816635119748828638483182841692590093302152525645711349897773706806335960927546270091163368201843007447266450816496865319308465248134660600353318622026217455467278795942466009988221586011723975277504480852261726462437428541605986585720257171314930245285883206145230191857735350578418737364530704361075939257323221307808076667396099562974465972787051913007406463663346785189931163727629409746840305164711265599436577259986507494994683541334341892938041177242432710794001490481721708507284475064762498930164377850038477773466280629051654182003478494867038528110167269959199318641665280937083719981863007994735392342654392396631194585478954729830996293136368819837343726949880490135457838579730092823269328913878350878774100739758225724902660935369587930618273941664998724145883215891347001408549471067588872544893310131412546673345364312753235695999545718126078754043907048896704323403223230405741205865088638567605504938843382051959843064903542344246639734684835481189682904542766644390444796388129324943541261328699350898026798243595832293392344032296741882144914143868218924820540331914551666557735529724442953433880131940439213005342405218069923733598252407485380913747298852632398232315155876016368481167575590135339083518703979091089983497942709936075784828148868947961879694648193881363886621795113610734376508071173210769356685131116806036903514277627488292520119020859810254176978870841540739423582883010523579576525129787905592290667361368091095066234600265209447374832857345720227539308178482131868740401163887018716082917150305156173648279184797087646864563686770872544773572520795781612535411389270756815957008879473472194816673639642283939964208368082303794168732937666211674685874405778155151618163938884693367275150634054405216633910732009059860755051530459600220898445678636399946834452082923583334023386428391947869344033290776199473060438705118995503979910702543297130016381300769721617843335887598051635675862960579218762739382465869568732701576632011013174702118820899327443783062687308914233968416901739837706957779171186512259866588603935430142967179529009068210334664578786080864145191180957332562654990405969357703575665243800319974007529031930015933054047433749887575419273826276965811670844648639438221635424747419365226750327110458195856765667891978963254177429646146819908449582711574253540665578714471600798096789552737104117238230027076683641901513316427472311338683035830017806241388755588446578669060515319306531179619933006414491043864113568218615784795212699759098851442164685732887706902727954927920725352164844008893836233684260756269406485265666427796441968901254098940223313196824914628195406557535521470458258039366921139708789042238439755394276271758871029908594736349904272839027374751996505696470065850374345845758789981852253671307005655934998875015226522686820967009560607196646459598109481989308707861164291878495647660295253175302221065879439868564004779680661599872869590272651451629007400513151517003929439456567340392485722927478026306050409719758958677409605327744667385647623263880050991547212127691860394450500887871872040609887804128878123763410146086974357967093904393244599793731579585174024223221732694481503000797100929895472356997168509591693952298451079116222138524574298101154649518101483208388362464058954661591714400229473445649419679778921780019318873893514676546254937085026155823771255835562897670172864778722082201046328772796166213721238909992842264804518321289916626996271736961375515714262928306639530545782644258693721734733388689119715471085327655884685409157360540089208820832556985706673338978110104656982792046559588023190181395476089465798151326087964716468120682496826712385439885055389820767880425784580077506444500920261429133527397219461356753034132020462246410735478880481106832518860538243545923412599266578231715141989806799959344460679775401609434785002776580914985964348536890625702222942498547335118035918257911642227883580855732439476795640677338633612020664001161956416417847779058551991251508525482097850166432809444559557792653042275037026948508677247098542715399398171266667582129390653688479421486001620004809034867331021545619288716401047692563237116801404717336049589582723080582084437969133839029877719889354916253527159585378715350425006507252578124852232377826689704447597062284811531490500925449447358135450543717701486447739721691632251376082013517373724270327920700200784071813925485777468725821947969513130531896114197249954096313056445200432580640207614083215120544543527190479787343808218618468092490297026503642257581316903751829329590858831447734945903818629147879176808582401589758732920013129573305315671330797742599149374903892240111568304040936756435291034980895290728601438549499053617437734063834508284729679718765928475242948967224934825759277190281092808185009577796583658722843923497673372627042691625198885061437306035725719636403349901986587993784991537279721057297513275965734467243975507742800649734599261234065585325787806103950788748234001349352861954375807773454375812328333278546008768577954972281162633577243529947506336548897083703286738113987738053790890222169660881925894802420414931611698573469038291331956947158358251357102405292463116342151515217098778163718786053421900869602789249694052346746692964462271593231555201753731874740826779216972008473090720902031832222924660222086186959145075320228060335929152464276030012894814774975307038816508908918653249371337628047034702133181791741362229544879170581345097269861306125598667088986014464934834240881019376037654236882009442193003613782024929833811556845362378692705252227896577319095138158329980988800136526629675678437047660917911701664311880711128252040914604216546546689836338210296249100247293375312139608834366930950854016273375788880075428864920566274237140804388066587061925124360871704565889270826699173330977362304597804256525559785736306408466153476371253035168647709224753868040432621987801692420156730367918721989440998436042395146373742751065415267525957224570363415724208672790797304407823395724132809908055872886739117357618387220026997648942825843628206010805301712175446401285132378147696865212151189178581767454687300507799030353353458441845606938569280828089025938246880285607589106076007912873456475506418921763596423301384186762356563935437336738413394590705957807293826702201866411683787606990323443416970374151535019173143516006905253178750089024210805743643065841286303307140123768982172079579951513037912082687095395958569808116527576251500645773710386438118109117972097740706392139247291264443038281342055326609051579859484244456026481778887461842479663770576249155831736688241427886292921652321310727633999126748695257470426571324205653700141661560172849618657150625850273296676967975481519454377543510428185727810051675851221790877407175017369883411281979566019139551523057715037216236690020086118735710093874854668618195240827111565581680911752629176717690745249675426248245413055712734340870126315484814527388040335446540466219377310958062813534785993998122018735099182992086427031058066430125132136457105620499035142319257062163770611071416682908908138270203013799759792720943681764198728582589797973715806933087689664788416141208692027095763776656754786225831713933401674985550716058344670868520594794536200134292306993954926782050394335360004322649270078434134604447991931789457239245261292740786858470500017014963362612686572869272620433839247304687375741610538520164395630866347387334862993120918080284587850701558349259236703656513870694700432873052634672742459230972634361721656157551849940195959119300059643617007033560077681525237325918370980376412296979936485153262271697318740072041101054474420863763217532125476589594087667159122757005992512977283861511518833557660582187051515079573340296857627295652671688038551791578406769073699940367355646434291375786321235199225077827519389656349788672251484255106369818750554931134968319714701957259225597747578854662609315815000861777214985817905806858909204678530658607460002655802225112063060992197155558670728659405821811011256881119077292112464265472750821665458324158133431288202600292777067324079523470658575281266738174720410455302745958227472469121527582846455323975451457056808989502928304063986098740284420175446674904376568013185995495792947643541595089196613703511337277027226327302029730919408584050919229381242981557905176212149479871849695952102555895371099201730986178676201443732635892248926912787257613296071485571476850483582016296060793838403229067789838579788459564150860582606451645848556858615779294489681392572156039188231618726592875580567523817004470519399841869593507270053504797595506107351300092809269546778373036460088979451590299218528318829016384247719283721684370225658875389084243363000598195908850598088875353406097620087158451745989498312559923280039581547051256518517823335170874751011362772206424637443216709237204335941043897611489014819747273894584354090010191255535928403982111623703432674606605807062833942337979719794188717567610444204871563444256020279401466888838620740943001719275375563455817490201112090174729997766101796116281842770103608855535058350944284496848914810692099664194390813577453071070522677364236715859896342018887860721493296574037888704486198824043247435482450287038012861506165505831519468097806053714005369294273611595071814931664768422214458557308218938658135912001802721855315130737775508971709509000243409824760355404616890815236504140252755334462639544231155305189335473016692317933630026332217253347958549719817066267201198438362706294215109540637106060575658013321217657748587938298478466074647735622510521941638378857163603806150525497821271228077829582425917046426710423645296635164491441934329707707942666280326384615058927277587178148681563906789523726839019313885894994201875910658933407581681918608468898994307758602837598711331770127231123742654227620656640608562605960141153881029113897557202559120304378071726895141175461972005208730292975600465208446927628477432088875787648639092729155799974002319830437257939489524221404794406058245863103292107289041884122368005852683295067187152858916650575880932656349793158599440218159468831729069433173069335536878943061334259927984781978041247739928586681776626667720127931905856253493398827174000091580269333297041127910877144749956483496162604860073820643627646277951310871560684562033260710631542539868093600079920140220148779220625851285717157192445431173606357487031060206011337441456300951143118091253536512114931346907579585126120162323585593173541648624419437032856509409730435652282202509504752581659027811670174387415197420064952224232609685894675454779228724106858367360148495143200318379783466997207449212422589274306333904529017769972907391380532247744920564511323104277717694933151673924066231847174113063022310359160234513680770634088431498679126421777230510619792981679452759465064687929462939021761116591539254893416517601102199874380439030288858918509126086499963580993866778288961499675735146974794217548056836372910409821709454646629774185767642733672628134899072955810837622736023542324837148660836019253130027830515992116782211846346514878553788121992494641833258460718693623496274136432408313819964759602424827823259468673771042876420918185589135519722111669870858498144362606689407141340205798816784993633297172220607782700396009622816286297751558567451550885666239034745592534122952302482613019402374310067953940952985395962828142961586284047477117302191330972818005016051237718869995320236482330436242278300000399847156972425865317415621562497250080867412246524344791514275185295848310625286646833866299651268312722753751257998624069745675556826259587129289233350855671405689788765304926214525164507639799309708066668795447363777994269013879132917048858072471387568181096942313620852551253649398227972043894890715141965261666768553841950131799200482858430478346525509205266571269222811619536557963741835753449443242192606034156431281552759135584316884323563306062744647975622490829462929482564761715358377453425041132376891970809874482218689797375668744700862883112477263121442968113419277293880143752161590210407467206874345890592067837639920085171731953120480204297396743624912700067323934221478724353775658399842076502602845534914141060013103787364240474335449102865997228667045385374824098930563556410076928352823258384879052547982264473657900280629686274829712834252869081977124844619910650549502846914982801605114238133316636037856217117450747352883178731769089302887340636056033626396293483403172571788727634405122238801814738930253908476668135393164306594062091784713572626367790105936778809287928287044210122328310664455901547598456249039412981845026594844755552437142346516376875246652194797208103964504695640597869338831277235472458649834221673919482968434338753605112802638208658221520935557464500616549515033509020685285819146042695674006130400885281206727425106830862366354566909463057099490447145816342101735139359433320810199484932168883028459687432886710588791435682126565058617056091040902267514928577157863083907156456217063889108813011655229461684422508554247744253513503206038786996865339754227877101238094748797487622794832635477026713459770641694184712440532502906508846829923173071536434891574707867721215539147734007287586564528828887642381746582957873605525363955905087134676194237434171213732080881595485814629026476981392994010942753266849901480271267625182123609429870013627051056237153842792548793813439487922605368265301309348607073177034929917757027006576115077492472392617234441203958820856755613491736123636409185665413743195590029783432255297049222893581000525621616518212405907086048831173159297849165128599453341544746676276715714718366075029072196541422392346244834295467695479821109089920673667547486697423107936264486961603613192630261942407958142568999446228716397780426444476646254591649652602217992256516430876082686599132929165431360519706660977569268928026649332932956543207114422479869472208541454120161032475380502056687017923054209027253275352443128794792374275412620031060656569666398870688037468006890995966106066831180276618905880070354237537034467814744972338313591583508093420013520278855251549494094980429541005195885299641128232008992232029935727273442487164373066087283096432976809254693061846995404770843756437596504190462978100078442613628094376774289222361499677851832320330547899423718305100785847870317171165943698128231412266889524516072379550698708477274859473483423456558141021905601960327934726646393282365336726584254298585449660773361344982087898209324868514234265659771569259894234084234383785477914306375816072438056848689172426365202754194474392873319631786224180325746090114801656283346016850019542071549748666213127716794581308308889827464811026316025978565643695665023061816062209275228235088548648261321427674418427007933740720578264463726078319266741337618909519880536944534259941321911163642536297556910121197133298213991905999364019371098164904212092631324268727323879955645183088439324275843888949724799606666035148365598654118692750280382009407918695985758425987979188631702512321921654530948027718887166528858751218093369272702073523029101611718983696386267795102830437405692314397119502160618657749939979976996699982066448615784775278298793225292008056267672272560055590151185195581631960516404159051718466594715074085665920000623563446419242142598182811495174137967455363190375577998068165950727332136442881319474497012342598462616014095996829727793307949488024812494915430632921802685904430712773914150228604867934468377886310683532948163635284133204980377076521174481215125851709406770180570197987510963208049942929334142216234674523611520817491133974441978363241172469020094763142745220618026340477577311089551864135173084883254951005485567582576456439955777055270090583359693308640406167258960985489295950231205366839804080574404816680796642593128276481923356159722198628887859051670696118921204978860407579857535144609040562334703543805744649821330626816824171438874651460483567775078614337987278806962300081726199915475038584011031369690442839229917158209611393651428356422670176109318784698161120102478989606623908095620697634526798051144326137669991929571487601083519788451152889355577487084309888400923802001812870098885676967470037853137692630255541785578721655287351465126762828607979080301196420324396142872146952808380275690619531795820162973888956401931219639804843721592430320276634802520243094061150207477794687194529828666497233627204386327114298745662401135637211918399066716724020010362986805303419231729368348614624918443877779743496216417262307938755746761933620877457485215849532345264616455015017990886005258650710216852863923670487420716193375012203852008207324655690340972730599700158441384494854795984567747110958037311376030511716017781246446918815899070987948221670581443398001791004497669267895737913347231601874307633431293685970868542162194478450173755870894459890539444161451707727384035099206253301645840466393795392208248329006584017880275572629004213572491433288909789191203102711696761148954253009906474119042480743352039306177746559098661067389347036169311532092239692956305590080049168621713459743373869154992875458130290945860572873337139623598032454578865345715368316429895481234059679123834442036759300967531597393594724970620377517779170991762083878944775539817723864217809323084748371214230531003335134475313012965684786518074913313978443971778735660243592018889839923450793369826283674448428042060509887799042947508253760542544316716556235310155213626521708713298859480562448163326055090573559061214527269867376106347499101360742813019720776204468228696640195087277727708766781033312363230264332753968367921169971783671412100263081942523943240747453777858419718944386164540534779567855590996766795048477717422786138004095539486769561570449699006589636286556261716446784453354542018352861675503705968039682677444453094975956005896591156722033819773342628630408540655720189712048948227838963971962392169601240234780847567140046250409141324263349802179816498668892062117869711373855358615114869711565840456446661232685332023384552935483098597833944120293488962640712999432395809451327084635281571185756649542399895876616591975144028619047847566652089819263145186496489979042993484358065610210138951296181341735660973282037038192624630291234459267675481229621737295106329525950294687761409873206226902809141239754825028452192628329671976026882325161673852898569846075912827402077964949729205679181347131541478268332301904357248825180331979999609264980690357146242234697411239122400877315189397929678931460719615603840175865327381807121930638324063021343429981272142566154791677446865884275082079861114722942125340149943892110569480734127264937217106085244079830862484679607667187977679280315697638903767603704837997817450959635199513131101501894046541568815326935357909722782130551160822774022509911857398155497366597549946092025156800728222980736076152000566515141456049723876841996549489300967902912080450627858396996195431514071970945853914360727506883109720373528937179682764908708620624509916034321228644970598419633186317859998469537182294985574855550809310083788065211509008482417941145197328722275287072453223279330115749539447402336895953714625510467791554623470902788749835264511274089612968044935088088262168197907887947333554310276236104539026364545237080461079659496170545944526298416134050850027528053508657967463890440639136895932681150368780422332774086918050014149528863762274994060907105964371230161568714664905623477959592062646865366734449373469524290516899793417877962126530161876355913886585279574482047535785707090818056237634619352085867171318283676673153810308161999414901449735483273444631912566196387430058257223661332182413762834351008836979021823736084292561587147560211814021333967081004505010168973851568215094221761629580165261275218240290064688492822164192053198902564701397522485247045089084452653142317915678823145358755871078980519796660825504652729714323340773654520423902849072576450330080335995181072471850476318827471548359564594912404221042700175396210143832813420749275533914177009003118349551771575912354062393068328713677523376881593588594010901216676910822672929911380212021405630571094405850915772881476314984289113088697053136899628421938860840399427387065551215687850355071801450860925148573262056025015679553401810888815727642707342580605406642030245924467644868763626384773386186468730602724088645753006035682110531382680181690333519419559253748780478192766913749637128037745848597266142646841431051294295701086196196268195183743370801272947300573796247597470094055431108682715456508310633932646734665575405439574080545154017904641034893607348267518236895520665573923357059323417320529920635575684057729921625332084222361677901645035043317810452077603926057193326088995281689154834848544875693760996395009184178221275202599761047651077251527384087539093381066850979855586597197370489983160601462393065774229251101199433924706368311140276863113908416760561285720347575130952751111920359902804449446523256060624199368702003565967449872450458687218939831732241499939726425477108202411281770224395541152492793193387808467323151533896656165249401720714135767655277048118428719413444392518753878985903941696678532106516794943856990227819643062071238531928029094815030478808887418835259698896017193781786377535581011013419825465503629569502699283954831975867817715939810978076322607786505196389972772955851457090836997824469994380441950873246660940150761806051919210249064611445602191091457187066031810653162530257691502993666909275765139000622748447677445653082522252688022467498934177847342201917617042867845885315729337653465027757027982762312483339927836689319774047495079367223959579020479029889854492389292933754268897445445420152650440698420808015283862194113704194976923956402890198548401868274424650717932887273307238207512900297020971520914337898776532149019122224256931210825429118234242701024399539636612968269138729676225982300996186663736987105683501258088587669014837187279400858427821845465116978788835319542673003499629375888644308044928218680829015898624859633772390212978802484010368610784483658724961842055932224473584384571156693528613437124687232693659568662881124028706227701990742406506790250345963818846634727459940884153526357202073386273444680940289555289170023127613094365216015619455484716574685573144272067858614208340469006414587608102574864553682661373795733164653932751654183842259612642114945309137605958125539121826759205528072819545540147687932347552139665128641667948562353897872986942654404879105627133920636510728462515105622941634055037496106240771205314098964170850603667935760810928444228525795117501670915235868169743371435340687535596778434396957652592552804119072280348352141328049705190367688667943427399122115574565403520252920778638506518258055149466141388831227683696934336742941098919048502331135699205870562145495255656809834898409085523335639547987700201749691116723152586896919531645648720623342312099341251729151737979580258071180464288802076800997362063399385802057033812001980119258260122432803496633277577558012377667742619959305351695985320612420770501584233146218121854008835024981087942030656011890403879601964652537260704260849415476177418409377693362835163238869256214753325815918712739387539322013503115091014679000007256810124570334157570010256215557276422450553378170608793192946146540909385507322180520015706819987932702648397889830460943268898213276048892277263477812782724028465866244130490730656867539987691732450770989744170683122907701931973108059252171898569873452341227527908037306279240132028705863996491565776871861938212232828394675942507424732204475773666428682329033185361175366573934430302105244746875868529648287584039353350877719277546368039168176579102300463097908039684765990935376129643553049510474679160851568095198859360855611666471629067415745819448417248977930962819776522412460839381491124553621383756718486256377949806651041003600823347710765808259091627528447106751380890429326503236376038063969782947650532522541472928199159621856090926807324306575002026049559318653192859047917402257001739547392258705014890617691123400507653559104180441708304133494734319325869318923152831744219013175562787418425138774037402459854296767405049634892666580004582825750242726031750197386070851892179081461102171487800259376605723545798415631404130320034804213378228705908702581233440459923513616060716999682151118316649855801889858353348696529057171590036571164564186412017689306097053016855585594045694023997328722851706382151892721653121286053860270880140899502429749223636357056800701670500186312686933784101104966234223521331362768862474170813448118009374611372728971387986239035527836169005764163538666422381455855202081725743098380593499638647760139992519377509278164138319622116751493643249545335139370918763630443662597707478083103586584340710812255097332365892239019047902862872721269937916357017342249403813339968619626167092571390597264227407089624193051071768348193466541000051736001119531932555657937784831724604057957931972899382931488610250687242202174049933694739286310071832763857827825916883945786597060665398026873887634790622271644391843548041309520667056788050868852077379730256750659985343841018445498596940075779867410043815549876279397969228276650531823951721210703722474852584490005522367448309485241899197522749904312158037695798836403834096424938557348494640529419483291535986875156464424510217735119480758440692738731673808511832780802051041709665622761666098096280090437440281959520612101888197756931892669623755660906871647321803435303006859998925530639737343700695041868409209309172537599174705701868658523666758011697901168831550191179020068179262555365427379712865271496009075476811328941769410952061880772782029314166964253026480602285687889480329333855651882441147606445545064609227365354676446166223111384322887933880059746347271993764465835433697500433350216664847778970657818433986000267302185240706214108531709829842655794897815479163128138488566311874149918197655049239623195848412384953652498013273778230464087920780935932623831048967715295424904813300949069558791651515386869655737831097854974550613332952731394296406357709003331291942957457304191463423176005130627951948684508598135626050647643238273319909456549931682306862834938550729995073413813436901300345945297241902675968276151076331164831079088260177120170581919581423282775906235211485213894853911898456005300588037866824198870913533906294846524883441808523004762576100030134981326985455692635754867166459843532042912036538773900220571664608977983399190999462916295461526308314156297157539229621376707049424253314270200922943624546461632695986149625392108025588600517911175884316979517923762091069563509943036108666665590081506309976400040642532214021373917713756039840265243123804566689261758402220023130357982278661679045458924827688741381256880379543836021031751399107063789119435760799024167617959449634493209250790782241554937428587361027094090820067572162521516308541672768171920797350355231650928637490797816251246639114944081458215470131377985265442876420366688952269641547723955577709999200361590423835643337790888234497183579496668504319280742369022835568835996664443867635482694872150721370598647923519252319081011318159673621719900126671081455487137954391254488654148492892201598492245677022197840636798439916066065194715383596243440338041618531172587112628823804248196339539193760520602297606936249898727122966672084491769894718217060905618364620408130300691683314647020318327339000506408410597781330381562088214311048765404880022961516684134790079061672315882280144620571191192588151292581821076625467375178656629277067877731673876250112202180809854421944592676023751298137061933701281740770220912780384444236418993005530577217871252005409365099743193771009518416082221013046010894890201373088260356150422497307098549647733835984205940188467277258083356079199886946389975482180574238550541137809547523961316033355421708703185227340685533600178859614489559880053691686609531861591494603195617334592166791973302802747678199708690171599304904208794171848066380272218870615270203449527911907256194789959297125020780734324710135175249464132200177105379183398241258517668344984782215963949329333885288467169514660385942098325143693226170189701568883567529375992261927020122569680872085507447194286384926005630701224931289169142597126771491828318597789735097279680822258757077675430524428573732032797271811254522264725709954663881307622194680794008675990093904601808666387387374262329772869676904906982592892766988940370530776717280444223130393149367783787408801465551477093697293627574513940915726039695495931374471427641859082102107923448189390440311038675018540190934015625939745350278990487503414386283548215093504382963196193311029789187967142294954165316196442015789734836242607618034445487304177206701724968250380116705349495755261294874107481165778183917867140305055058997442394582362891118004621021015812167382387545367338408178043786280900113359861204473907920428248794530077837289696613538318665954934015482415206923472155514123993773780351702957777556237448200957294200718694257726374540170825918821201593775115754954390333502117547721548420041726996092810846582040732406814154205110744921296707651954293229613303439375172636932545943263360616641926935046877770090888402857903109432962189170609260139772077401028220026566664029730631774808753898995182175973787674060728839862696023495760843756184339963220740821350168140298574019613898089573235724704176129476622452024208488264726588774880029549827648795951572371682383277102140650843211998230722653773734763382960810012241132504810112107171255809359766892103953941173580484433172008841396482503659671559307133931922699167714128241533805374210223390420307342958522064259834107962280932560130494720625291496144895497895369613277200552632491304392375302946300758968137445591817538579603005636701354130352377494817833439299431226585298506080534346579556068011377012741267725732376446517084217143249117953080495938776388254277846145870261604681139715454460288319847154954187231605989825326989124945907280608535747096284711049028824459974125154875771740631306758276732115732664135490246961736967110080012093951798916485868086416283443004348262883491438797418844055995056532464012967012643996235484372096906900826892684312445115696896913270806962956031274813120506991851248954526465470708833141462935484908140859670800255761540071996229489749031778127787118093433249158505336364373209994597949119723694691279784310713872723912424080564913670965145837759257888641979692142090698216809081479380330319597208879868549819250598635215785711294445143345810967348253751512025442155897463053033462890843741721391514297787765396768381288960824641331270902301519451462198763665293308602256745162219082614628772675660091048148768094721406524611975246480385454165642718169421137681985707890540114443337163442573197268706116965480548014392096809077660487394763740764768019709797725750644887764481549906497478595647259160260607476392426227088119175041305572502839631905619311745372603051526084015767766690005541249999788592847265769079995881295402293022055076408783361769611676243940895296631538892850652119531109335105520916733861627333068117187308919210096698419376105564561938115280801241624756850397966761839275393674584694988879439010871361640052079434778379978626311819420851243667887451127004856338437923006062915697849666695826283996111663122126018971940997095971397798652129051295561960367833756692127731753340596844010404334140980660956345215637601740378645839775584754460559380742035157907565580622597203583972345611180022373257962764163001924957919917792228288973879750189676319055635610626065273995482241102809407986987707649957268994398553981552542456302024699484387937289897800466118372118103632384790134384496689933748013360803250482750910850657994259810016224994172797728972543481513656151558234502835472920644944860424497448854293465462147598639779620378057281982440396603148904068727402758413545399284787743949840477605881962565052345956534839221162579027385437698083850322241666206749394566818371489623905600257208262341978390627670144089061480847587784079193138519308568336962902220254910684226282369105641104454504977702684613794918442631360010966715894026233932199837308958935879293589066133894758421300843677092960587705625646813607919317267894601843426651938368174572362900930291408830048966624950943183679423065037503633652039845981708053949859287903154575706168064860634191110207239717038213024191589998343239616957107267528371600265446777914385783425511746046216598667714778545653367863637363551311302342519739004327170525728462359543336768352379983185060670235238198988100676895107284167313645918640793163692697736663899020295402264004030557805893680385300599587232796057767053929091655156776057985679423794939041885254326651083314777748617902642404221600160397667358392142871400753786946836996652523572259241474535962899421232586953350398067403943301668612737544673322041495617049033821547948615146292851440848529241688222065122886166961138712698842292525568702593831395288320198462813667191449006678249703085203391142485702530637021109646215737068944862653152820774535688030244433024858134920838310533218497756418138665897639169751638306423170602061513631966991617733758297181874243153822135596371376746632846494477402917102222662715088098278956303687774084124017371668979927994358164062013211819597545951085826101572560543792066167004737382842561583463293318696631228277207146839897941940592467460238246708162305518909109909392315032279011332523489113419947292296952824140867594738122946658909792187001597449889483159017226424761791582567409224107297729694186733040960454442303971327054822142375569559375297492988504066976199286427661583239420228253901208959502161533691650179773232606134651366722721384048813938248775312592926776695687792735979293814860927885568694191814323765333852109999024570932403570044919598876084636841196733019652938737903632433850086835748406755385432281265573108111677520005909136892248287875359860472156364758289346007749798808351163681319421174695944942784485360913457283690023502837448651161856458611906396198757865812231954681331061226646038949107429964032923969796726338077681841264195751426714818141678504370286794305496540381204160415893820241924695167125569116406171560457075124355286534244164652593251203544736270714518949426226005189025826382790831473138660712295859420772884554922294571304645979634954718989950283771681917022365598003992602372562762392119811160405460182290663952665174714039695349837221778206817260505793370223531132952227654428424615919450281897923669604932028984839359993293840992340282216266911210745081686014883079965063731795690779638346426162650178187853249845294287825067958934588901746915284898411223459238406453229340326657970480631503611449495448251156937819598968232068893282935200726671327818036026137373833304030174113202822655984713980601023751388285776593860343605147475543349626483891810339996469656335304500841689633965026509426965130844682814961451091647157089785542242693471057731884209150823800749977780281449485202980687170920148977965167995592714375878248388732719232614049945988775710728622334766256845345903143109102396423639589394162611661500198195426645215999794832781461031095249639495323223561789574125658766957592919591333118056276811496940027464608837117191891192474025366523902997577288425087542230203337884040863694347837538124597551642407741811935050976455968784946613577066230843803937033670099760359457740856824643535528595887997019366910184860846120341627299246514869977592793548153183587519619530436012827000858967603915915404723809167255785027425217565280407819467292050970848249201335540905057708213659505593725461941926820627015497660299769088460200630346155616419377875238034653375159649698573284961706255196169046813798806281882756028806853924010808136753798022523820836525780909384346008458743115246878782885171165860609195516677275218303536869585345238538809756691846661286702516209614613722374583625221370473391220226066355192677680694117157353141433666085341303252356821775168907630538162261243824942330339298045846699003535359264564502144926290532212511008581790018536599649824583209463137385229153728557133180325994938409799395638167673435821162310167145268930082245987782970406086843316120204990214248589745218375232828274761903661471315445291716638975158434859659550484051869834105146744420550616381865137467482396284694117206408489763719775792625565294478651084218736987404601076792220971239284573927796945574778274017447521449196889870449758527686254798538362362658939140610855820720406807397680974684934505901138371886110179605898549686048534876991142618288354963693130736624516520822281283900740551456645504769368372001419649439512581652451096759893590698274813894358259295288854376644018211552599603745336142851516972089773487690201890683826117982934267414501882259642950489329756114323761733212567453944396188495423906482920097418309030313610131309581438783532556691199738223865977724973844415903121106217837932994431719147959345014431790416836451968022343396275525965417032177422838394897467579481930264480665247353392737028045465825495882338268854271542976853197915411404930351390636119190434360724700256815601703066198214538214444589712367905382950125297710983092346249707058294709474723465788842513056098314041634141178814932606009955210335080684214359613855748171894190099960924065652270773034395673690719806788831805597700988409309131213334324773743317834929073830650892372358866459191966701006857757256715181974649681102448727639304334360300792976423016712779449917833062223220407430350189661900995418079501701647189737973834811237691309955307331399775975893168142829790519596054984290310636137055897793112843341289707138682718806614857603814136117196705875244743031743651952026726407185323792472083097751386164124434743060951086839164162721731525271732193122353692544297288496246241701345248956247456352594293331416254742378928604579583961087955268311348288299903950553913778908277457232531231123638194814028319348323754056120781343054132221199000257386130844202253301942468552529708576070933205390469285574410304915753555883615681733786589240810522308502881610521291195947563197232052684375043507258318797439245650797229354069516189260367789037246436199255981627646325310626167383663083343902353729690245370121042245281221019628563317584843595386807993402148522105267898570231133578918218659630293092388600701454911969615993804952577439632207063465508325847548724504850916414331077780491962509784549066767579086025342234087253042335286705466463270342925559066094371793054144572678338657241353714816322815580915831910034553974154671191828179011435296952773957368155498137964620954624015536168929898757342478531397546151383797668811051682282089949757465036245591605565445742252984800394271464497758847568624908583243927889376766509473923330828979600250288573545251747956013996326935541854333594541443930446331447402670428928823622826914042218089908334220507566546844998537469375266544169557709669300019431191231229684868690008643044365434750902710237099596509065654729788321228161573756901653247283980407998566585797859685963899076138667130944961554818955773958224372722324461890207443786119804715283958500014120329311666690357310983330354601534851300682428588782152124798969262077592486669612500669694013345889837312857793646396796495269454678134475767703567293795507538731690994620004120354720406510531773613750973557627034343419593357572362583665418285008761949389932082551349053937392767257318118969167933898199814030549928914199419851187416053986573012835326389868412840099916328360851212941530360168519780585851016248499083144228937199661819354289741027154285491428916850880287304763668751987533793808238236717919597816744545009306910494127213841834834665482782490745058411815707192876470540018036971988077945266084967399337584602778909945380411531464118618318287316348262422631268908687470511133091816789393751173127102411519840363508351423172369253909757938397146499268828967191761947981430503597307174723763131160077457825590272387629279364420261283702827014127890197638531141532424840114644329595084690790258702800386488061752180800116352095648236339118699581259888411572927934718171060306663316926069641043516732930437507508538980005657122474307349718410803674930257310552741446726217278662273830250173775003209969960692115593709345023121334346835607964033309681734320417705492141030256725558175131898571253415201959615097658927118954291651034955821098303697917154432964003387678430067169158809102733187496220313763846227292914010929106075928906494806932257005739956947024329784475408302101674044638037846271651099782072231714014058312006438653633357041565245185043019090771139941089739591800815281679985611946040395551320989016321146676168992891707283114948788300547955576122317189616307137865485967985446062447078944303890655994572228785436928528089393199330671860247080898385511901005354422202983227466794938577073203128991908377516271532121573380332375986141100083204430500499784849881169728685476606595436420460254667220926726173093318444803019529122610613262874425257991511120765794810256409140634501023951461679894071701645690980891764350643489862263916103450795577060676728048002318375212537789938564558209296809681502312926767462065957720494831938826387510836076987613650692456855363639218127455056785382859318585908803156371425669679346320183276676337088004352277118631312672675105457209824336570688624207113012481601341900590977556132155608497614216497260587367728129128445142366849769943980664888885089548827450434531191932309983416976561061184023458977249595214246002243838611082570603173741136316733258649576803157402140960841923316164274036298297362742308629953705765525992534377496051446611159718993033985341111731196254044664290359424426521340210715876648943744730556600807597199234988383537903909523586097326372679935703034262411960512633516556171354793762495570562896511583984260614346957616722834789850462235846972714029586675915684967302059633772763638030556105301959581943494573219255158852661706939933657282258138082693242763245915686273582167831412152709803411428706383345873859253042482387103416178192250441628236964274321827152038194069389229216004987963874310636247077443374446605297426679463054450100140458486508099014062501698048328346431068573538345003440821983939686283683278006387648748758170410860396882320910700780975376038533061017910058536875360486973854095090749986927355980709260010373624179908769825924249606251723881143012363944821559785364108417588887334119380316762444440276237384531477311487614704225116292842638315818712040622533149730922719101923492930646950156465129282256769562825487720708620226623583467453893895847203167611778007164989788237443500926466631407912272905179002917647387632272486688467969607355724412805964602972628676862354405531169369542081682260326032472979361309842002744682595345176678688140733269988714551930654273744711101423878374804283166054273734102850441350630731088667200310200936437510033452637406115407286579871047742722989156868832898131260518007202071874642221368825493012017396679467522597509673255095626797860537187665883448373776416366069722180966407449329007464783170754825285431473209798295629004532820309926498766128976787115960924484712317382958057488809351351334289170060191859096988746894460903316527735325334828306301231760249748855095668127038063608658838313447564934711507663870991709492277653836663274749338092460250753113227473036128216339491105223127591175997709413651793672985846637857880871658648112679056407690526060330198337978485511746834064081530551503523634899863702380458410389288232494406510213360503977344406286188586342747377987845280590095655879130667226603364021989172827650165426171357201089800236624545439605835824096386598951331842354464631847811877321024470511050521526692862550441265125379480002595238420709384780276092507700067916150173167183725750754328856213677301202453788664100589513569014676158926430841409668506990319979314877605057275308800017432541926457675401082327144968717278368869680065676652291084008184904330830176509167452222417736800046505246655397395016800602098029467658719211543248148615086860619358274515365755729991722757638934434117951482181352331874007997856931562727783748815169592986654496081271464493350386855740321057320924238382088123386073142753404902607961313173413130063398942349876393186887779737213694029395760714265142924438624118391201918585030924216127205555830100314438331733356371119290756766128097291173275883994882981414462805298069524916465061246541208041142543763160395450138035422928689849446335121476314984287457219171468020628029952241024096098868501473487680605289166023876666357088801244688485472772688508304411613763317773043032396017081222221782971168836614995578141744770302153731770956495820222078448578050976692759703577987336480231139661682465197573416516453126877116959095534545035949978385660479063485687289479932901722522021162352738749340360147144545350759166788413813317279492145169991198685690119262313866833014659536944128199934557285140738615781377834153836431446411778461975130306816241042391736253734399437759268653548875174002548256616467481867933766966111300606455803005804068410385526581501515614388783737106039496200854992862857510173715384893603608250857199265216155780392925162780286670986683072883326577140292744351901135965440156029601158012332193120538741437106649923279290762254879787069564380827460070020147254291755344296474535993242963737252806307149489236567761917700303670032690849794463159866246277459668274329841283712150017863928571801225960419810845737608167432065996916044380510734541261812074981460561497073688886322108316973311412789279249049631476472089732807177728976237826888007835316635671780754673444036525985014263278343129880096323064415686827920275759781718004928677313851064242727919393545005957550614941767835783640604871496231738542198453042039023564151549806560559844710781951489376994335297999192587086033477976083086224976704461131030346319430212822272578693087801663067959117780972664481767100660120397699972448058474111428403370116412569243932154150456537440655579628398525205935341604362711066034720611362618827736469939067298835801756758637450393457488498956116144742765291183256657284503607511208727287111835435653019293176612495120646677512028477822739417245176151057407110204663460885445686798575836617374401338867542533416827146541147298518806527586776327604101615953187991097689027606126499060311367377169318875304775705958585118814236352539850239631121652038589517607169777531743907494046357029541970691086717347573774579257773327721890311883053829187097805583664838522661948279308732862517467495282233618441700885216882272721291433855774436501199787772893194650841694214578674841316796737584365625940679099603698363911466740334157546141253976288761278881945823180337522151598959954937562231802678142136059197579576654580457036056093762254235438648639010979830640559564748518376413188805661592393440849760146589814577557274254784850740962680004220103199592758589941427420259419047348703192238352841508883473608831637290305577701754333563335291622524078718912223832036948968946339890089495633733871461326942682359310475035960675835361789230642587676317653057145130824443278432457477905808368162396458898176108347033779689472746474624540668609056685803710744513286416287320995699130356270997155459783159409874452508750250631230820739068669340542441502073359884771674577381462951055515243160084258555654898906405758924771765241933473753640195571249984909224543531285899520830331595088298299820264036081824989360137727062414360414059293941336616759432065190506289190588055499416780341649220149147433798268671108783204333793619733820390996520345702947286957798849957042880608004683671138202261543563395372428881072642949325542347176174642596954149439003708408895395735562487939245763148698521398771292266994601071047490676380904508755445892428609427926299611716443956542671236157662466481164080757456781180920042053045933635602524425416615376385494352027956777201654637361400630975964676586941186512342396081417871776814263233158061690666373386309398461365345864062829189159598572145389224318828739197344773414484512007767149046338011637778696127293895402022183131181767990580233632513154845013959245376802829307481139513932119265320830300547415877305201610706626351014956117716609268751546191413385256515009688666737566460918099222730712444627002947073536143967111034088779286077558374971673123098419181865411100978324230399880334317740992352181209211174295254072451381117588697416115866734674033394004246104522120479768408598154665987325355796512239598462598534103537510149434434756038081580915025399366203853212594573262221377158747611075740663560054200817455874828494821253002065363739791644989634530777208867505509997211193088868924363106245398667775736359143448253901623297330073698187110577896753747746527503328616401639234731628408347568162402719049024581404586348098920534699430285763514229412434047191786821807586285896336612554307976360969138790136992279891144130419161340183289497605929446491038790353306732805358626080627908746141282545117814012263130917022702871308345522102233310577105846813026134493031547191320450355225688230212621802485982795833870126541653970872677218526162759672516323175456403543685485398460837804699543464057694326736414506454689804826727040495568332686526191776298811847296987800602650988977999650542693864197233280646457697227150658423904267965200585654069496630078545195709794628401528459825687499079208504891082250253606846272942831817306456889541966810612326865336345078451931721696713561349115614002901999317784047148901987338146304064924733176661389511810797459100141071499811474442259961401384569524716496651410880206284915670333946740380979324687594459406772635684417175374529804146176846493343562245695802462155112013509233558833755849739074915058798240305995463283526667916315838884414346697965906363180289859635648123414988441343175820542463284966918795247081286155461707140991353247320847922077878597157874041348316083074551539301926969959793655632219771095860276853862167098690980058885687784357443836370062667875711949964052278098080584844352883507827040308291200834032855990939410095464413426455105293143404340846819754105235938175929178827320102942089254834261440111734887325302067164582661281156795207080044068608999580449008198061700983367729971222572767457313479332895029823677690239844022790236190134528401977771266747397635487712898609552877000478749241335526581567781677239165069576702124597419596572171909087391984327116420922551595839058745963984514509772652368274586416079964566108992626082523603342676549911756552969610829153979011837650218041025717238563142207521953838526500071063993419946876881780532942631834232721115781298683031089948592967838817041319935201628365803904556462818913219804493079390581002721909993200519416589900217203463679765541629513597392279414470234661859130107029675123182436790837021819665324384630302785021211017932347854281555636472037111059923889466947627512981167310759713466079868328963832139261040912588132846880330952015565817017010193195042345830913452257983512605500118103710265293574027948912704720812728467028389423160562575994787277150696652695687748227380047162173772732051476137448754388824961157499826991778145393931390680176929356699904198901513300449039213833576742814147020793474819078535195720644486461813250184597213316874194233369082825853813631417699384101994977103894021826761203636483172777791686507375479345579864708218367419643892670296492895526319279808890883493813649601356490872031973549680272317907564275028775723391154900514716347252678156922400793643710630080604760048997567196167558798684742161274261033997679783385390179756671030572456118102087221094639484410675519398429778162794001960832832551792764674783779923831724074701062548575694927642117614144004714892601322748922276090025002136145680130797065163151813703558681638757791489902418299029847664796219147663447007983471608053324736283042343663837908645370692711260470561354081331039436249023826531658096758243098461732004578042227472501339035721799448125345146765729849896725031191038965157251052878143490333030578658164077741805276903197727545349628476393445458221505341085203669494319273649027498524610371110788680859150843269898446791739445444811444783811187857497745239998054910011027130996147045890537966033795211342307348526454947405978240579729478204234686203509811077853455857251469201215447379442623705110540538637056599820968085041357848527777538110952408746174319797683627870532320721462482179279610924158601115772453576544897035550460145484344767759210208829569865237663203906004474233348824914258935184415662652272937542615761990642848814928638614097025557254590431152836647047745342870243931216315464543104974203793548783259370427602830854540252342690991598281454851942928412537118182609198749064439474900401054206464129256565842454379356849127290733933122714196324121276729919434152264052259301442939248771157469624416554486470144554208920815202555530856595311489492927316144380694148271818996866310883660988097697235740489524283074383321905929350731770963959746509480723541661132168809377923056054653651126330587382602570356648877541458189432261912297063157385401266422567302226551750353818900638482001216235260216487933538225057877577855583200798729002839642893481805351228341219653969274099705887126832989320136382469553660712458525105913632953565698973904686534209600709084884259786461473946576610070241750102466898025147870297011028489879742019452329642154132195618649014223268145956665301467332342224072996662390439881631718101922889148807685803506554013472571398141561701034721512060518743351569378325614525844253540991869164127202175155038611230206113324248538857735428597370978987133422767822447794527755803939304238785788743634673341897673256748133753820025087314240798556366368812951220327979457280211673069645182910829411978804888560152625232794832386638742562966684340010158200335528678328491543449829548129499169506852583190143068878809221403928484855946228109650164108657129937437304316395313839056720779077772882027592240308314969709454833185262267467440381130851839178541326330832257180278476728666242712250906423074668183863567236908749607655132299787449711893853446473797344774487889993294104756037261063874729589717285325317292781234944202491434523025818573231018245602909006697114312773038491151514886021317813936816007790869490482751250459794269530108629116033760368692741911403625614428752680584888189755971282770801595702542648730428145556183482833739037292912300498993524102865881135444417341308400474082005759908991823634469978148703500261296594560304835365005574350295129739499181948425726415116493292183287610444130882499876500815407700893400508305141204487718211455684469649076121390658854930361823602601103287611044215493960039724142826072037206139566042661922257750200636040369642080179877561035118742288992321144790941051943112380026390127159985233754354861013037572020520636968228106852613926117434780456534095101936498043966017373538305364777027003753960419952066472742856636578465020160793624263700589890847191716303630869143957924991806639810701113994319427496303246732482393214215321260376664915208681830982913560816806721048977816631169181726396420808952657809230644315252715104751470307351116598152552303963707204823130171978753060899897955535157175320045680507878182035564995820886150115661475459522418921788520999039108201166954885092491188389108832378309499885767137754696688966880705520623374147921430507081744829376301817029141783786952416017653059612359194986697386480083217795007028496351633230386831714663978792553398335310902734281289082047692304602539214351256205603764165867719535203231015022160324140501153584554917196418369953260322179120658534864878435779069507722419853414795415194932192516985647580641580136454514983518579312941033496258751774699673361454040989378917432827075593533140239760925310929865134706753003617627638461313736848631584838982784008947191240575208478311650257133067641395450884813316060435635006734425273900286289150066587841299733899000737897890403221379144897376744626780341226082110672210549128494372477264776820623856687323968812036923699892277119941798750721242118826960386954877491759312106987155560709202918826912390740018668414472058233491307671628590847890109812775022818746958984623647102824422743219865162363763195088464676718790601264368557560804398165178361561671608077568683847161432665617429034716331361138316367213265830197573107721595173134066112139109647353313219673864200116015202192809677909289478637060104139348170216069123790544376500303667372152003579283856933661919399996257577301215574883095967953324634759181201374548307252369805718236967432078707171734004426226561367790997647461897629111572713931584340040117679835402175298871930198380103248253260904431934962886267560607233361693780188002137962284405213934208501965857014759660938358655874808191703907717075511701690156618846869803861404106105008974927940615046961618349691428374101605100272969049397493332881217286977085258239831327778659943844001228689956517999749998164364746073845088660049748996271288138893841801163574070305264602987465707760960554665117807089247185424781300714838100221339731862188954165539376773291983457670455682751086910011610266124063930877213013498221226303227224581658603056190402014829940161228697784805555962953641301758691666093110100929365246525069426074062088743537671618086183153119058351503275532253784655210327003068806844260504669107650796195315562306168465967381098033284675680143289319193320370692595477543505420057449252275596848261138616386437534085369780856894539043145696106931131310537990020628373302101008885190443365961474987903888927515822371143086652635823341777114297998918868787257278584232481381451402076244172781759784034583628954632949366060811023526046722952341833522647243516674763046485866675814562886437288440011250140076102735953461157871325728595903775658954937218566801051699223616489832390148977255101900728055981851392858523360269351397073553625937197924301948216033913821004350051540110331045117012149583671816961147956370099701257171016237947226364101554843710549971701445955927073497543685713052860005258093869138201112340781933990564365484917905749323447739122194193902367474322442629142402279757520718414487432391359041807793442959374286447348289423040112972404298737574272461191028637171363097262783747192061638858211223868591999532852405258435254878651423477449917913730077226418137214329029351197578393846215850328507774641656815837749748745769895992347701098606982017288777190366561303079359963253280452623443594437990304302560467684230062280617813605612195386499120434610133007715584438935604567708761458325180533805814743964974516226026592638667562733026044386516583853488177287827219083755650027105584807039508930562443267553647418489759527962191246148076322096294198737144739669445477217237158512708438323216968359607852435772277972613438184083338421071509526033702988032373578332274529326109949638750681666245012548940711283216017848949621257571673509249985051732301406574291687315373277937607329754495979127021328234020643271874095821958780393394468746944121773753747204037127019657274379208920045875036438314473862929989462575147872645140708920013090199727363003782149930222373549306086823508531562606641661241343198269717067085557836786058115526537630638961979444897910170634966631260179394038465868599299771673749210170661095131191716301219933940331061429452002997751587600285203420719820418497135193024501058019901334333321597837464971439897759524965333318937118184138521367989482027939443898399867376313439132283731359735123747266180382316201035728039004943263570012117580012433726502605982236870624914787585696406318886748667537719305266669861666914242072702733709309076486665293911165952647983279077526863228922060565299893582064935708631360565257566665828705983488730731025188439530457049744798796166560439840084820531123258794589366654945270336732982252203982121174766268204793287493916697924046105608816679727377359913842544436009354907136679314942372874121672264213516905772687868951762099330661381696119017873223682369991693640141336978064080333605329851094006520439266673044259402449933614231619830685288640407053866143339426017945374964427746671070130088184619892488136279398143954399420988233225556688071954093323984476744202299021438092206734107105941286194409879326235700258844025009983097982599856110501296528421856810808493002195961122226223216445409453780234443569390260230256180782335115346002184619661857403101129618005526905318369931134293851941960264501108612760840627327405474753951563515431266221649219888076366421164915647504998964269119863781784085713031400143887577822422016938985958511961867014351428472551375688916775417736710675383354264389464579187182747347114097702408536968097177968250715946191706932502200261881465190669845816986277710959481489264259527278976482956685747407821132356724982524215332860088955461136427052619359395408186764513772095419113401004831611267507470972204112012136249858465946789220051224309679487650833965127591798438842481220412383112966177821283392268656890498640206838700117375372140000896364976823357961450551337438332043646812810412236298162962640595386948246563151442552487448590385335530299459288076201311709542733844277035905473407523703309747864491898925361876575718593760684506684051442393842887580890387151687193473802903198255953618894168670279830416169084241367424616558088053807418998764906498015091397642901562275037275549009657440862798806124294775332125616624152935825733718438134540612379407115450230103389201456814699902381467348163725052269226377290326265670040115422709805050754750693588823509804513221201187237308442204871464129929831246500951575855057151128428436476282037342427035290987644692079990940917706053680800513897462220525040339282768705175351291026768169349619827275316562356356661109085154354868693106247104350134125683559964028442984384713491905460025685917640034601213316016135192529435603364390764559039982421547741160839746639314080983732752024964695827311290058019424193110932920631629575759260304618963835611731101989406840122622447989570259240699923339649755364203628261379313026139925579214483888436384718005618744830261793376228833747934304349696041965527683730410636388431739518069121476156645574337128244007743845209998085934195781462833277454884537429985038875675656926965346799861846058345104278291381604714292021053879722070587197611523970912879175057154469977181167913743367361231719758014222572685918067397430308154279895912817538615039254588850069237348427040962996427511625165844737432050052169159418809549129497427444330614542413134009947774412303124579408035984910229890077493946731809699840391638091385563046814239217696445014620955011750261973664543181121728313238301238142003214833252354720430701099295428234441379602705636510579803636331711095135784353841654363825119641979072546044804691832182739414185948990183061742669331309142140249671307334892394251302641029884080271620302087687663009126961396886499713009511150771815150210556278344338881864928045108429777719370885225028190164098849747121104582628860080929414660619158536220922251330107966040357550024292164087136158086280288409216872820779959162533519631989742867287816570953283337794512425508844489992615399121970269233478586626134945257024367484526478546592678959468716409684370653206069050265795219724186405428512045786082707107393027132421971194435495937919096328996434685922603424375106548281173875248117485932298370314276793442233543048588329761555712837079676774517480794634841283854519305928828603152779713757951643165149410527658855715001398625409625917131215068801331187413891445318048704564842204791088043337965008306530730068165961376367446501729850953279908531548816460807340821906121519541060940047614072440988468682321886828180819303214132002196991403454549810149069754972509178102333121222432746910431031843762441361385384021895479628100617871486621975379683426253090653655054596474163669079939664843368928073235972524970793154915536237637032541514231716779491089932130492758189993580169368877834429591797654089776584531461613527735989122389421075851749605537886064331117642155085727230194642186782002033067080424368569025877238174656207576534543411582304251399709320409647440873830735003393751343291714031857850815490448353113595756259774864980485965334731327603858368362334657438124944643730715105919325607794509568048985401394432051446855151585020118746010210719767250045393713865475733599306743550539928934304171137020994913253195120089898507873969484255176939885859145060754129489469529476513509925096840776929257115782481959940432926564364542972410172146538891938709799068963411934028344271985559006120265051301390365340368899375353402680048833275639122065646115933020426705424340830919173558862670492112200045128134397217166590956790040026031485543212485197035455747134013721774381397284856729917224547185736402500365529944261583090084343192437670331158381790241425902332419306249279760453671910227556909473654912770708055088186476785056034480367870177231099486446323910025774045587623278475860285739668406361065244858702526444356227995775124675673456962647594441763446986752873594431027671850733066459122119230007271152642785892605099196380487181892940794208317254068174242366369924255539828615576052538667649162190599089440481273934838840452724024892716968133631161949551354574513421836470287289709220042136398606866239864014943629237117762290016488456180548757632425538309567815283776685723924322104456612119100603014214996698933138675770127231724786545318711249169802162390677754607690614850570677106660143075446104786553386578231932452112664499191504703417071288189999790437581147117991812327589388473310067683139548164891005771781245378095584224655827695275086043615789899312990526571099441034215992254941752235641143252476187097035530114664100335192596570677337105871021341960663773012605631268214040650202427493297654071104013426845919265449089790498410878113141239903958150599203976734489965674857780318379778915202206847533665334162307792779570525414951002385329295112316029236167140542772615338831602732886287397473880307275379597717994124190017402001159732893789847339821023340558398099037799568181699895560174278308663023561893179689863168300014719537822396289872264934227003986437261617611513626381020317576708520257429831073526903422260963548195573471573477285365943155024607770245051157782915416099077571498571406639244727681710579312941261398193121957632720980793826713688038862380737505447163798848388746117082105467719760631696644238281647645834566723173084099383969315279580599461778946731882511957960681926176048968973907250973846177043955821154812184536847025645196483363120728287615777922654365078609947789877552342102107763696022857032478252119891513080422240120274431227430881378297353232361718282053506904453492053615267675326753533965743259658585788053336446404369134155572270629845166647338367575645260286178449513523629498392856496136983067940341030152715231308552004018519435801257569797393429868315259720190614380179714660318781650082892481006120999900313130067609689278665303765651900926965582367485399176275219015699334734686247755916633549413204116489399085925881410509055534818972152728016319301211251164130260321938900005274236205840876893721267904192405166730659206299922035994083347979507846981758717909929030482786303242745772726831153872039495871953991737065593073906071818830114926614736578013914928046638035848417530095635224671181309858073602475588746277297195686446205133277271737231109981696713809443286757392691413051869335009054654371794689009507225991753544742866378719358939208650374082795006450212569921162583787964794248227044102021031912486120764758117432626384149771626780576077756779439673025560497263762079689063011783945308275694207284881010194719217505339998289919050466025943662260612003562852229398011391931019057950875989356340139602384541199891832015806245241658398654447700760857896680717394190367053414736354064993057918946060729603382612915725607620903731071654736951889121126965794947313972820070645395624279117976960374586070774879450522722342934367746492568366328409236480559901149008265338744292887627676384224821219416593064116206148974122166448151731718915060467494272668860746091704066073048822988955926288702738962120705562306700397799982873613211581362367040598924747540418533106791113888571455814643092044426132101591246893293865579376255348493130457621022367707665359354640404499337964186585792332950659310665798341389817054883554277425367858704931600239622499246087028546407249604915991653881290647305327833126214557253318920034285305124539726706589830535228833904904954579458167809480121664069760062459485826734418877914948469417978418619763516780925048499966240293117253493394077994343953730803163870347999611751940853705586480257814601965375487932744722763595263563694864948596681609684771294682927422922920896649457130066077871365299015004609872478198471139785948658941245289983245917408625813986500170350326581665335129937166180556598547467288493364805554667366956986760536113752440368477317613186852594034486936710842015384497901026346481192649842034870621226182943296494333274870520101954552273741787004890672575449817129393983021412346738397158702664543891273474901523999085864839574689209290672130089982256786369633181979551090285212811010055381644583800438527885159632748035266417956742230001603355610962607945141128078314749809042670467991151502087284894976575418323513024732666735709212780545906737339132400951372319879130869188107415918075422436941668766235933178511552080508281825821879772344330410723585227204948793880991749097662168106496021601789739961198777443221668822435923176808386068424465183808939704348583855533283302524874665027742819535491073053281907718663858886145743009388637153152006087157564087599450590061431579877029721378027534526550223501561971254998913756798398010524005617118608177647576588615083613503202041172830463249488062388974181879886616632081388829953282678325622738068153860128075422166017103754472699435475523713385685741264426572456732139092863500197299275946535735254223060924064538688370568014690973075159841048563407568755027352887908959390212464204574403410194489142025829269487045884244109459024513657786196221917438791745329003574455163099001214980049264018880496021313149899787760772714760592579152626256060705754142816332657354608106985652123146270262095665535238292038910560388500383380129127377350406082514229981855232573723778357209923541586595091497406624904556731982479301717926133419346515353663540089681909068688879248944456093866925327294677797731825949552970005942568930525698519239966047260199143765670950525520235195750351986884634234332265299472486211073738161700859505679465229535956082960960734371811539884796955672395357268849780897524955050415616883556196360666027403544700449306884435353214050712395398616812092665260436812696273339688556730701661408316284492749202069761114833882502456809999893559695793772717223691315805039512603266690780200078285298952764212654009882198002123948495112155757315107801606722723691069820339281054907915377726485160300894530236968573139969615196473932685174352513110846494992593869591357841052468151666062490965113509241137567540328895517166031944813935188804480262308824346380557343578234972059514033512804881156702566909725339432270879147221989995819302274214560393698396504196452142078874478445881294327924486958506736786431203375746312510185076293684356260345038697051590518493122614543528213605249994758503782120677538837772662216467286333187339513788469901604704138682480250099776016366896031003813149945409642985117551467503930181547888540944785277563072594294897010858383519097411863336508762321497180409080155526844547231526599435107125787526414442783988314312807841439318286697145973969898207877253500508284204914905987227592339567235849360939758130401748310230723512884115473494685859864556631898259089525592116891126380732997679556574757822817050192224455912364087760055942055327745686999289036388331831114856477668556875813954199709844904833868020849846854060938974920643678249893583085829957309660831281244575412638503391610420870009656999802370334292600128293381728718987334213768887527987313229777239570207185252413713411850418637209124988129355037148564482546659874649062764314821320047758874319593183081271293474855812810450692767178534000406738023725306673993460625624354319042582637925807048825057962231914150848780715179910005357493620693481236459557524756407298583556961674592648615989731698823630357370363786876525061742023399896296775693637549685789547848603668534387907770714752242176131453345717093362564529721688070814346247630570780601498651796008626218865576704849184290420421891105374541585710679588883392860767281429466493821293939573301048590917778752143515543546073692289756075483193452217353433993943481985268373356044099597906676207669425986472500586313890194966444515590245523117502416522475815453465880140092112530396590001364431098048512228540781261972776189423955983483879804709902199889228152695417982442633922607437024780288192971324369221710821940985164878239351972706604779832647677486873637166463599339496193909611682730434219572884741803199856185238435563543608214490148090829068406116474896401228331121030766998125650014249646492853452045674155114635562799309536630248022908719492681525915523343545131991770052036488143642409638224965178713928862820814541770416353478937256555142230468231968033036648930807028945775570756131552261373459896844900823154998974179776553279634797452493166599985386274744029165562895542785787936557107217969867339562286801429990645708822570540246000305732903430071831915122918359491746444242670439226617371231193301484254961871436446798748997043498420991549199303412983088586014610572867106351155280810141325604544999810501384737397352175777411202056049159668687481730019848357766955953216378440432130408431876452007385525126581983285169216341777506117662162790427349393487199155164962995748303397794038563919107221283218516151557555762577323311230091652397895462927801025662654032230773039632620674712136848471244557597680593108731346900175916324845975397363815178072258903697050864518556415463559741439053816947558703699096498186380360593427594767672158545480997273814943784500978737759527857506806629130382662998393906288945954837040872225910227881164317073552761496037015722727113217562574448050753442994715315481364442220622216035886943648467578743439378380573338831877388799296181905663769493090857351453469409588663587216231949242938938820866409005383007184388638206054042635806286353033843793739639153386669090052234380782537498979282477261918051998955911309520709514488247169791650504707710604908046022412892073001052021992843956758965349673304011886584456498952536220810689615074072566098250078514253169027689029878980260365131665693265468229562175066796006298475687927848128535577873195176255697740412396910983531452147966107878653355639385862410499131122592243849106434574320834067910658672677194713455752339524244908458044692135367955119647631542811679362781727054119628732114876517785284586189463510438215216717107157501721084270604682835908468873967862413235746713769931643055361534215913559068799983687952596744460468291252399760368166720401356491106740561438590972522719219236256566151506847916960577022962059213082594946434424971691469374121052548706057929058365445503213260467383028755253718156799288661558823955174171837188756484300770375355286157275819371752717170594784388844205697102822947649606454696283481905726711846792004407040099726039789163344146938117890492852645407100104735661822091931930516318035096004447992100269480343262079300111478177198358652693861678678796243384855989196531791685377665961353242045064759551671498246594572718249123944533951539857286644726059934703988241118661950975364715287002229140618831341370261867209981896314318814029625841692128696431291339998860432741133483002982258155800966207011766876722153227660294689488813900732897424604888153534545015606958652130615421265808651712288831110496680475507442429871217761231293878126901641923174758755207965140244305116887290202919080955637660291390655310896571610384524088804921621590703669357221356746428658971027343973188964770341490307508850455226014256844336169438950377470855176291489370852017619132090283119835076567102207901009188216373296274004164967770372676909371439070189346230458106938213326649513641072956594741637797945750656165511885635667090222764319617430799151606049982920825051765095475002650479506468963222267296232727426669678874458867085717465647312841544204861957937408148931909755650025854049844065817773198292597639640102814223303535302777312606597069837904970292669326046786092160427165927142695856871791747106892069800358331051991449681942132466615488180051907780844818513799214780263572243760993595533823532880863009524968456379326202291965904003437181881730341725724190172285871683613738966776282582643767365920287935501837321037718327397432539541460202552137334818724702661568335065552573134751643750747461520990918405547609811005444864158747187931505678139911216174094005225684096345311834375336560403557669149221355157760625209267613759975727143906873733981752979750412732485506301333568533709440320993013272449249380170296409756689484589831835350446715789241816514548541415666212628326262600236828977306097649310208397911858868896057957767006412068391073791916608008607440440772273705674304539952661534082982713275865704559891569740971757552748066155780527669780150906453945771076627122618979409165527713045372404049318215343937712816024124238225020708219901782973085051805277762799061608019989684056425816063994124128671253424063495219897511170560778824061027348524030526060976874288489682276385400317127509356472863648504137546691622856442329885262048440927568830958887380814561307391722442113870662733584906276945230785367796538079614060624243439649799353734972510707051566952620320403792620132398754909252073155277823863157884179368312785458809991962812704581117089840197046974236938800705392809081401051526186413883398272410917214067415218544900274519128006042552874804051317314106239207175692745565129874401990834168841123386654227719408999181541097768576449066408513644380520484644856012429243305264120329949669869598642311829743431587005909116662127870825259327235523519942325371546110554260980250867077252519979478913094341756528555530093213708156452811743241181286403800211152212653674969556575128367489151704034428464618696407634776885687589326764648658836191389960429455093073124054106396005328390542737878645000993887679873776175269433664132287093606941750886680253317543890941388575707434008011848555357893971561524039348461700173912710967974131467555679426764069815191443283615999094189099157502502052438405132122753559107373574198187281405641106569495492303560543050014759154009416088129029707235175515776134020706409743640521651608724833671576196335431718645190478936487011931592837676173754655021117055741186403489963315288688062228150926924911350095507609540447884710429440213879990750641311327084505865781288271494447447070869325028989602157113493751961587661676398685555621004935957401590959672841023382449298862006726825584657958448379638104628230984656140627744240183922447789360524344498735990181538623529578580353830720274895021260349811258909714629235201320923708785148322690253557306799395142309930737334053983207624904806318394286179609568150377786919228905699714256040632008600595320376328897030865720199723212760984290679067827169019467675601790188574206855330473722369795603461821478429735567489493041783037714172254726697602376894039836357934378690246323659742931995035724560161748404041251976096011569126925183606696353410114048084654219245805420412815193634977390469554920100827582360968367318685998793990995902136241160885577491554541632606305358214803110646598949287129319985189309759533995276756880729412033527282573036713648980461232277287385725541117579342896942035636948656211861591538981711112125411445261665029293618046278569878192656668114536209372806203320449088267968694687553144422427689665979616680951501221493322175930540445534435463737436821973544820884505884162431216793459847714775208612640375781503540375727488217512617587779973537951109225571810495200710297949817068123214497853069643040519908336049710563905821125497382554421963365927833097337397313488833017531845942377738597990978096112226417721150344394799069024194288212838601508293773851688189292878866914913165955766314080140486748287728112694113345873308543811971230845393062265166774466305517714609318789814899611027448868384292599564721140236296125796527222529563035951667378950198162888415249813183301080430310580233296000319033390507026358253868798380324899201948387870458963307073600751440652383391071838268057235983437603221602891623500930238800536999213688077929999530551733743202964031008269011488054282649161411507639709775861801689174663383112944613799954402123655277136611376709570438723512091777136630165517432240913237630081985486867300818075272837105009051652122968725456573033103310579518293950930483948372049665399599813183114424260027348450558703733540592766652741000993458621887132838185213760618204608343079061029189231107046164239401560815282591868875132896159602047035614280522892329874565038786089700224054440900525903903055608341905683547620367393823386971599481601330438636421626054302014375134323691185060257448522932242496704913364580553787475058814473581882652579081080365491071039020320880855877227970996974612400672772322392345841248839749877828693721566467370446543490212169766104164505677965699853383943797363434357978055244533795027393620039937937381467047767215801429941688139863371914197728419239668968241100667755851796006107574713309155179661078851606161002715586568265355624498259052070488916774818979240111002837254274053666939586997528126245179564700987529561678679905774299383086361582028213285535505032884803470878368346444516937459077337557577652029014915579445927012860700729851056499127303017544198774596917131228749969219153142034553099598950988809707127275934127210526280601349347217080417502064609173035891725232308201011020677521880774767138881650371008535112780645878226814416140913716565828177630680710444088601554308543195273580829805413174400847606827849930412301148875087928979218432874105243810181025139496767278957179804408665323503126363027946860975552144735714168292674418928479116899905854739711567525708021788026769015289740344062536975108364257346213133624400992410056250922013688693933520236707970494288671060717926597777886939997792019458211859167467141411822928131802204968820707283033478432779658330170899694516322740652341015501825404357044560409491690449864959756440714743316457183831743754457704434207663557700152718524866278268653268379821952153639320370254365515105927287740202732935283712195075589009655336901550335064693030439331712988060491920035093810140266207391927413880967303202028618593788767470439118285929920309098021694758656338650900622874780622936548092821491140141598755498692953038620283535394171768384912810100358778696236794877147839527971368494617574815525667081786735399623661713638478049345242987545789740413986171819287926631356830516888824081405607222497948212993684616272312378700315339845869187357759087155029243618671238898076691344843663285099863979322220750258256296881842854057780389916535135466315316809018919294204046141420147084738220845428453223696592043870902406141283352236789944444279056146131622668672901910336935367609855629527611591023387923990760481191674968894110914939489969433088598469446166993188787563074670816954314132363588910862404692545643895172957988223086167877667609705322270958957323450495179933750227963414021446181811575896947418004207450967928749217672310989894096485453622134318796664616879788092353191465568027266380353131697399665809891432904660012230295695891022152943024134019720415561435243682124352127637582239859117297294813632290088670612475187223075168834454274263823668668182415429525613469936622224847907206786462815901933532367935937109303563515959214625400730053187112727983119423129138032557405785327855054127223980497614977734909797720161909107202375475227213822819135714728960861177509884446209586952839697424628249038184189473680082257275352719220579501516094453348848839855416814536788692723392009089059697377842050310254950451720361521825878575438106962479978024116343747873941966694549873489034482747370621609721757566227573792546241489479203883264643239338136491994702000490934384547554689173092258831574352981076189744768558126765276774102028432400658607738201439668214339568487258902342904559950716426201285499378764585658804199111774925975843845011563736146914685576555119323588919241613150550368838163214387532192067645838019208936548034672568217400510128603339524061802093821103531927506464267311489606920226426162227732846022167800161917743896690108277187410372869888867804661345874727722961157791838028009756666815557425180102603356489516358324809954181771078050672631867632174262588998967564004489337485921938073520243651426754643118817750029156894734821199480061295637026815558736971524889238441774810018486329043086266387991640197951384170611978139518282316775463852021268885296101257496777064758550115780025574409344000697020153973500216085072089140742099120683974756225539653026753968179635231619915687473588397328065034192420386910124281670313140766707926133748655334265526997983484985839342864535531121835204465903721332654303881809083911710502237509856060790748638721644224031033992067473987774608697194089447962030657920687273237092744244671914146744905443196672080675317850219271926294933559614208219075145713109064068433330021066379184072653980728578453529745533204571421455575811343581466216025950440711459810058401163273410685566768721261430640155951402027147513544640778776636753755904015438484322320701159699778047251934857950154350637146553205646629737408512497297603789383759673854454495777430907877269475041767883647557785180310796624007104228950421978104787506582126808948400026231025528723180730016031803322672169182616011228100728768513433415301937106401120003309570228345929790667704024392841888513495364447227167401910354312569559398972127392584779768401038033732637116912055493668304861510508962134294178453171976532528742604854007257565294596368699418468870895884781915573479034668818928005322433606233859853916921227228635210828651754820666749455488824951683319914074437170410045243612078522526195374528948410020590688503428467518299126761008396295088427026196074088027774874050239894714516286215333876837203289336996906557187169261585549691088847371003033337221518005751989672748893761084372849693671994439372825404555346268809615214953182616725259194958551378292767134932622500629813950873851595393473192867114747011662116995969336161152962423318030738022693359161294086057048084947062837914449918292429874980251965822380080962784530056127894316800561160214098126721284542633904022749838733532681514185861115427535873634592165329415978040545789994072563734855204905600891401961374782581957498842510922892084908025891931449975812216366345666928651212204278870818880218873150033358330462335651051011161477356226624440023599642871098856034121727576104403317661986019768552832688142691886092484916062717898964686941188941714856499293595259418655053732331386966025228404865064063781982042929421962386084428066111005495783865453682655521607207247419254863044589158873122182062276812595452561489867775656985892435000620263752659117528169702511692511920432500413640185394523779563907772619563569104025253879780841123069266225694582474031439825689927969181869920921696539827640033385337876754013660479115848521366224049463318697135087526908396866047911945338762494769744931901399025408477414391889995833176586235137155301457738186690229724622489451535208169949322690900040607466514733158839042304670596369191286247241144517745286090247474168161276549932214601112819349849907461766116170706798980588725023932154033715241669479515527438142324304604915359055469414226586335093531398866006180609891331361477923048257996063231786884906646923535058948879545290759524241295630209098274377511169942282157062953445781600825141830935114435947925644578412515560037913337068257575611563885248574539763914040179502195751619810773691140768709144443099102469875676321141448583883150923509750517917680874064321093655023479095950014766801398889442929471900003858083003318023226149985065531128238225598649954660049699839367957719000178663799167000442249776989759826436624376941516724194752294158596639540095801431769142906919097914516879368187127942395580530479062515374029623197057642351563968194746788063278709128300442094467567136688328631577621216452051370063904867598327628929965610896632288647688990053422009831827096354642703143395177571733576302788915902976949176718006841779302624818434171265383091469303401601228811396672022491960428459770896285283315687006454323587042764410559000292036140560792787060493841781974268297556908914330502774467224701995433250344862584854745128686594927367725936546644876237297095199675643358995314850919817378539959664768153132864219209888379477279893070977265770902016242169147593009856875650593101267846311759681297068522544609288680732485989909942662010204345233666958504163639567279809514642214017616755039948722633090907280856760719483721761729079628136459177826803944219549117258518308038855761671404391859106823283671070577309599004183111479038257954663955091719828770000675359674300055376225103768265122410032101653616410268654748190546027290556815744670174584617618237083711260486231981238513104966144934448043896332891803661858012670979488940439545346483479278413948784228616303636962750852526479509410829769598260504547786465890370799200458407634086297082095928418701308154514572668501355496654558054637893226753287308834078280859921915893802889802727423867902082727126300530605431013368511396784830254532210339487069324543199139426777100111060742241768662417685121159593768106363791403259529690463154882815045866839418473014615004959387319775032754377465826176822508700892294673422052059188350096663681422593385282749333998490814587255527772722256563409172804531595515849254242522617627249762502176236448731397373034812950843937249152803994231822374357167740691199290047099028841308223434853659217889571983120116351060725620907573182293045656687466682468263736481750889382608565711777413357470832447311942717771871933221787002396537148930169783890757053990128240224049316304403015853001821836409768547926687083645310498777156201882081555909784534956563536353772864367358499105100619808908110020357443233262108774335624709366638202804605263622819948544169786301105993047103607636406218853189504212069562080635505437229473055687934870908401468684006594351016885191859117841416306389884092115202133002623691767324610198115062786878838318145809301240782062519024320193860757177416484830563508852835654905310132485819332647429043572941292952660224220435620248116095661100707534237669962608234590731635503711433216332925026426664102914531623551415641129014817151244563851377366200435785435781694092813331767061965038692031209168982070585304899366845616746925098631865633480752762847733001791902917026268340715941140533922626335095834442309688618525689186024800433084662057271564318903015557984272876109842087945189761165157032317491665379370541977208333288165818084400502079699675417631184898758653813311284792414706002511097570248738591930836734216265487652670102885412729246656262159928603134932695867644011277426901660563118840073790711724702850900971275080564023836060277482801024799004297152725351494964807748661229647654470044414014165673049653548189948309664015920136044806360810526854759748631042162853824980984751480404271594821893340364279187260274728293940416458385893441505555369250074389150970966089560666956094791583856892144960237223653984319963316816195618069420073018327460596535765062776031165166326944322538823702186863878284227286071278344613625102062784879837687894269246262183873011845251564189780406644358707518362546563946018737022245910300485754575674736504995598933897230524103737551584145069201814216720231072558027186716027039555962150949373483227943222016363937204389554148261198233230342248000334497428907542115304001146835486163645147321868896932859115058260612329095014097084604121450946174398489090927295429390777447973011722690428091896444346623076087567050785523243016439775806485549117361920438008989504504704937431794667148790196266722964835934224828396053063054618362908104056441478684957438317625510187461263643738249072131845383098102326504517723283145703290294738965970679720047158467525948529455101411347526355372017212650566627357438430304859539444327636455809669868526737275151493164551229051555768379267794374224493550969325866671217230220967878882924659299052453572768546591382244710445712812496955137504442108583106538546565600758778391736200377038945951270825553981031722365233562349254428930714430096811090183668249898297028084981381945515015765231703110418370658650017394011576448868114392346485977003087570026923749312450725533509929560513425249981790853055908439031653756631478177061986905390093311941310444711126179965527611743665800603711740007212951526269344037850513034394121526062896176426638055856616135324355706399545693174057674860923990833480654689526519447186913648635978764529771629845450219347300652940362000513325616179745906068412873476419018515341189190240730925574823333031332995805551661117224561172496477921311624040209860993597939675152800850058480049891315465456034018461050028424768896629508021653454736966435905916111503777059097711288192941264769807880812919616156486606736784604611330222263680802453884937728537099804531617713781679712997720164979012771487376038056516088554163335045959454949973105713278677920795460558729286654442055736125704195380127000983442206959614208977122247964347108982131872466034712670863685311758276837868447512954942410496088147654048980457476143328709375682969480433604099608367933386636354967922590686718331879024499240928318524817374006854564774902663623652494848425650613361655906507756833227954904631977667744326965222842966484755589957389194015077303466893501299880072215175972407605512604836602354677054850316422046347666232963396423855539500303746935799860878969955244345276327293714848560598642568233994968512337255707903088557020646970983062453153341900734556003639767735229268958106976404418945507330793505827089080039415581801461508991748529487508745996868963316396382695687605143531398055135059250261439097472284234175335188851481948641120444497718426240249150015351264657640564578713904147973011712014049774373973983459428851213842500340544914017622026894712057979350757387437261307130023390804159905921103605982794267806291752591021680633229751138540797073182276924975915880733923110295968096696154564213329319544150622761689339910567386889616873827050923070774978100783971949233425138875124159246903284568804854994236000861750206076675728468866396927784906097797310528100954311403792315181116649879528585234921318461639600390153203088272328378255240257024240808844466211922289096658339946738455171054872509532124508547387868424741611251079334836389132545696541031534452044422279504037382205458712703619832533227523011352421645715400082559219017066759800294952503708223531339418819738655863708176462418208560760391885614464229551578717696972998303434486056021743769426462204376012793703707184600661322601959946886142691278653608710912734450352962323049626033126406074130469088440363055422435286195181999758418502096505364601561532488014663325675067860143621063561634783041223775466185764673621140608453397500129749001362300659748671947102631428129481085450532233841647875447338820220877836018534317847159461032391681815603334361419175751740758471670728901373794971112596457955740145607247162135628062002930772018181951239838952430073726996498438465857086991850990888743132109980646387876052022347925064547469654988107194553205505755011838086582723467751162873235576561045558788397383141766101580088861506576948288268860582815035347987794306220188387669261245075816810854669687045135297172874145924845829079878939868584540084129307228833566318630896533372342683712153184611990422095253990246126310113739792113485626304637809228383656601451300275526193085587347665646310486480274415701130749614748276201354897732184337502325055887155685762797490034965799065069990141190334583977035123755704332260255732961124453423067176519242139331629183302947589980384734028193923428896527903189006776939441540188687768246727997245312853511424086482035681083165404605054023345536765228197563740195795782873673768164800032926770331818804608711775486876057810353341469126849524099499057094044566272234528983295096862244899820181449584130173957443893855747395010357888995185281645871392261340033146353782498774815694752564261039569894140337642117191669122462028877877386434414122668818339511294778771420705738566079908129244987467424607126921612597822229171390685232760941007373259543532469053063731053643572512962770536326372675753187423300772709532314514480478535131120442367497957949543172453036728358874072943109497736027542293704332327809869169174136510985188371158694175507117689227911945979915979595784546039417370775500199004016837374881241176523008284070774976494985205688901535271911490946121082515442412505769224960270428285048911671222967249733322452282679772126132927774573907011700396253808752549343676187453276801293098097077021087053613364537390854421046674313415024892904281991320629129717653793874866998966660826697103819533405474706949745027994592773002102657819741646615768181019885786461438353734990200280696491385601234612953150401591932288788267773613253172827472741540745990709272591878862458466891103671288545111071220704515209106945430414091672419526281036155605027138686634717492419957957804541059178010706733010511668522318054523333980715435621698564457586498400793022823473544093107558112188166600975891041191220281365883480025162276894095695945324947408964976644372534563318481004279346687433632602152460465531374047920980017346010172028856581415970375031448841329465849152974832026886833350216266868152717753483518285832477549869881433271245197845584011138381941406307765618677334909793085739751399665450181069054614547406835332269941141622650181351026831265464594663787523178137347313814633900253346114172430334504568207888096164218311496513636116755807526371596909740963658701620913853779248949791896582532295403236065697023850868713259367672872420465016155346119943581036251455635082450815253508024263731979625742061466056926899284603076314080173028233315616534310508659805835236714975352049581232881364985935011238946848833755769385377792227926617978189764873423818744499799944845116032663141734529931174735176443672364257563888400920810489755623440563040353404979903366779496850796071189590482309104659489122927270914077847032649219049905892886341571425877050741911606919938131407659974721732322182861596280753379528619901501663603179694380126137380007821600948586410250721643901910864867692650410020143686515587656564478961519973201168045328019478303474259104481390394223313304383068671159430593617996239072341200221053639149393814018564935306735698976976700307996113030658360475000749573235937176494081294876983965041248818748178386341263765831885058810650576366478703483750891693219659483948837847552051768448775768924017179222764307111018459639448074827036845343095405607237611595013818416571548962089622090475787185564517289984043087237443274160345303809848307731946629859910562467308700688716519013180121545095572604150279122174940587577426369222544709638628552430084793101690821620066138492865066426193847411068388075990266776695946865346386552185625294928624739782757005826422913171523065118864640095743434406676917132227780018507943697713823309358322287377850692126717983016825979405819599672426601045092486222464365116910602905613036504890091885933137842945677659749960256660433422936640601614678273121971551127507652659338508901079800533239462633366257692471388068182803090819872955958355617939646969152571951531541693866808636685425217001236191806043447882570016872443572777293183668987731809868676942389998956267214303521816181363574426326074250390707198462500774673247417432603270241361548764106220374609800648565054224549221935304705512649859274206421464571975218995374081100354198233669548191138835147211639184655227012547754780371704483413507514425283264590498851057826837761745942324230574742738670338437077633544554454394030876311227275472711218251750225052636695622409211677593062576116230359170538059505817771489041890768588746521074198343382934811170622166122421000997704542901066270824843107829279631082884388552427744696595393417952204806507684223786659072662686971585395794297666387387309766659059804027071217238897014723615559946556031099716785922733720157512882715518063919966956320067804818197654403224645056490625006785108308942858675495430309138436705026044842468855497766671683643229883048232911119692633553529196613230716527470566652436685726895325414748255385802576099493070832858062392048179798735185851493506743540135629201411734257478645002530196143310587630357916794186553321661820298715190986548838060550679158002246300893101103442931911733238893782338886216484421132355478707217336601728504283945490042038025074719417736022265252687230494752360681198059885854084338750314808649995944858402417884922124499372497017785780989889933857413609441025361296350374552581057075903959793783100566792886265595510278874572271885584687716660923399679145963814401871021083188048998840595981670608995189286877772398610668029896191750121887757421492359561603312312260342747603978370134999964371026866670243609942394436269356667708538341001692980064625916922051741825639511013593805316849704652124737207844951713572765522430476092905917184655869331342713589085182977947493854320975951868850159741195912032556187390525904300330449209655793931945364234889067031564748731189283142238633944545428115659951165912367873894977913599047791471487479583107871970049542213905247406904961538953589022031139926501792344819364574042605227887949370509718134200504890399351580173694062197664247083678811611095355044487912641891033605023275540211833527522191096102389077252973491243074138954457194816556096461414082585601098558362195332167698174528140707229164458285350111578203820606814625962639486168720333561819681010665720191419666421784974094528068475606607768874431074477764802689896029861019549306702935022160564135663031759656561603039511070078540570833928432783018298379110462162821106795980941679571168789763658043070415580311833017999285743267347427403342725325835421134341059896746108588242942996649420146493942174188201832582619983865664308510695867243581702414205607150780037982387344551558107481848879547834186671780130428028443812712308835826311604274889504867920610633147597924924375874959682221131359276895966947412658549272220770717387120746687749661087856506685579766666307438653437189264156572345135250429257902761438066303339185245122996296653023065698423209389818107493681842729274585317830649329538450228389272897235554003123285379294035086832234913879529170833466619383061857420112208110436010516027138395470524343078310807741698256984211927168420070291705155306167652705827065176009998774345329425338993613403582247910095598597800301289721692641484530239539133998842027642415467132164716669146169600002366524641429799534487177802687107667613678673682048536770696702111023769109548461597531479492880755442181499562642660672243259484153815928694762657237566857360852625849907484502537070361852116983531167997248437584456575292546541504302996205463568633726019694940379214408299359666431925472940670108589120353830576718681183398431474537224952191370548358881838961608520919994599601178527514035164002237217480510495306616121364655970221790080456773623318337011314227698892202811349227229661517824181107946530721789184917204762340547450759944167516943458561801218450465756368765467879812218209272252460711545755823625271753832254070971193041205349402652070239264592091071352150073762515659398050849972480731563644833560251958341545767146152130041821536314524528363421170285107012499178184715073114902389941051223462033174862433239304369141652224630955413223019425821753188709949561670263332814675823007390620305517225959228785496573541711119815909078824129272606297658357438165055332917782229818363699195795330803915173485960700337353586464094462039440187880024329254771941443343598311051577800399154693109479712827333271667034569527879954521801679207709056150777034058868204356986833551516270970659648428389393910707985776569426532503737186901904527213882541818150714069851997049703524289361153910268691887691747688321966081997766279930529732272562992765665742649095336939020969520289741862200469221644754575405456146617113771706428679817547647362019604524677881289846334976616903332825033589435516531816359611757377661197211789376928281101748040098610257317236367168084077463088400878453315017821856329035888518283454188249313638007749474188207331836295739527499806890466174115134288625698529715947755897004585490829044835141092745821942687582379746874722730174357578130391970637936355840643745114920518859715615934607765496622039038478974708767859713817240208910101838885780846124770551767495982244552169153308881319318794548840661318677610349014528766526459073960035213108488846110162288188797114696908339546557517706517125162955889319642585197422864780081439627745694801197862905699117088258932677085588256662773708692124236092763067511233081661336060314613023464632153811956449742153590039731309300889363522682164817442940156696351842477814473203500429275853381939560383553553464584679364430853961094942905501326438668109945272756844124511690352076110146585250445674670668961065175419906557993252732244338511256607558156133931078880324171604122661724194983675804939014237033460098676721863582306636384432381483724513640589415497286459558983324872614913081061796630448593854647705380043056624791352771891674150371152817274275493038561947070009221448870562692045923325864188384767320920640596107478824933263849684615808669658928897425414282958900821738708675837716892587465744803209933772757946645229684101683214721932600126638474573485704331373685002324799441900477737892310708462178110553975782433197085255051298651043502236769580091339296145779982556572582797460759380751869514399946741915310126046539011878181716641250912859178393417063051271962278497451692854983882087394041602390718599262901508312781014233490119754791422482329963715672454454746169889985190197555805373299492741663729617660580615190657659486678153201720149123060470212149151200226880191730699317333626827761115269051829768926468994001588142502883474071739878093466119034839441332492973308724081217634527697069909778798140803203076820291309474741604996185081913415695842603033011457476434483398261625778273545389576935273046731417490602783251595642631823555014073463161348510790696698980715860743346053806817979092071682359538671051479673679231829874859379555368638259818113532077246768108226598831968917366666032968824128808408538862838721090874190591527461006143749783243006460839406755960364798449883226685060487239450333090525245615963583105697129730284977549186901904255666428124221147834931132547147067783278173331712500428967415301248030520439888775231917975321527343643261242909334952463971354976229264217548886501679933757881407859549056582165581769436575772463739878718598278564595118307533926608125021736043060916429683589388850629050425325598657578838395251624702982992525118561986743240977918890757820042351698504484797085331629352337229766190869107203333332543677234528311566335373350865082381775481439661142661750068027362714929574282592555036099639291737192468272134429351818574159615671795525830531176054499800898086025926736187859277124842833318867384582155001719823759854306799878188375490549742194361105823671322111922128473154818069957642555971222309662524028465250855158500420760066962307821337769363436449812250134053350460120826241103790936423044219534813889290363899208381101975079984717815106571101849037618829887442115115489038935293110531416049949071070600183801434409021642226034348704081046073529988328804094636237243839403297485155317904969188928387471439827695814236896934371655800847264761685566156339421427813581764765614867233552477393150720393530836467654628938040612294062608950997909211915340969313061375601574675351997729933738957318235814292110130531880636226497668676079960810818302989360191839620317145497936671453665906501923834107440488755247421818757510927696531440743795425697164363829325396646375947467376135545074438526363449862548952428897629670775752380694884473984546682000831784687859843723724161062535235071323887129090232133721248008482370900879756758419023074178571923847240910725473820286974623852809012245951433567190628827194379730882218891082868594011273528647143711137806552884173837751149538439151700185460384536012179751292554822919059830666641182781119153957158464096238214449053036439157635734175604305832542286496390540637105846002314738848884664545005447280850486405734802241264083999270348536361946434282028187585779190391616976843132562904156834028261687821746146693534987554400089767462841363294949752411296305966419052268288698765949539678835353040818383392650457013755007250578471224882138239608669727320570222840118337144214970583404773748524659757290222753041249311506559124350352765395918146605087914314843748925316228610073413877542489657363880548221314170726835954951233074677723830105613425704177789034843789622137320026751970384295168957955655163109457976700108731511497027751665334040043549197454290113654423201187521495154443032031424532014620627129403169689387670401279686820704204088302883358687972290848898212657300481412617505470811100483012180568811962389296654715933044494135821081550296762225507949678504519701752751490862734385290903653635426122719270491016920354641644770303529178718232771928523049403792536546799921678505338777851474159136778136314879497328546401613458409165356736006791756958465452653042994240955459156471139331392949552807698333236969696627619999405320611127622508496019348828943658749649096914265288605718475007190562788290820785794274019235140635472505564896537117280667710389505981668170208711498118592069269540581571347460669320804279264485690103915233180984310350342676404755725687633969700708529064900725049602483300017862127670085898670689878323453186969050059147126402905255975538664039555862769756702487063549202786722199561210151583634823694374940880074237392551270956848457266179817905386125956176399498382773731196849425617026868307378908939328513013613052782092554006689514282372429246165913967430899878744158702198176613277577567704191037643423820335497871502324366917462375209171556279485174579585424734447862801497671165995647187680513657198142409082669522371283026513522535615302292827970917667748409080038051652003849109281099865710150732107737834274605437757109771462670518636545983047740834396384421340037560162353553751804704465839698137433630700473415470408153159228988340265379480856663242282231348146080057650510239852734998591041031178983716602142932093695713957263701058026430900619767882703120933703568994142236506616367604802138401908709751507623124600333415355270258830403275447696861528801053804178220915252223564460973842878828756861427164390742444019750027714981579236593411543345901950243894631711394460206176930239465173368815930974829225169829328176451108659466335721310715750075563899502463663213667560234189704323363738197434370056331516621591048543857777806412401004424238554464966537838051113413276083057354907386213342351490549754518465452712312123296911521566541899235798798756696355537989891081590324478889359307597041420323035375269491697005274074357552835337522464835576971842515541166731763833975556117736841324850468736069368318347279223557326175538618031134556252357305835489964038497465209155333677531259323064375751744496797188405369226243263918534334391586712452539730405532354307380934980559035350395876827846559870626199242254410882295730171211046134495263740879040792387408996723735497817244734532083831896074357597280997617551150718674584249461415798964423656541315239716567931414345753443621417420791919117780401737351239087595346435196461213539980318730222553557380910296596439653027774441574023355514216014178509513662053612580407799627808701994110581378852627606984661985292999514903479562573735112261336366837668933835058311203771708543430935250358273622447615083840657656727432396672077704615106058947290303559371790698041239209275498313147135465054629311125506508486166006796882815242342830970902397628184492864255264493828271057658189284538801772186568991898379883838075314262361512205287719835488968955794067541548833207067477936446814743919226919255789739900578284592235262816710582262154820064302138020644690037734828568661056306338709136897057715907627256386024237848540620978697988509878388469379276875970965980684018020461610327158954373239255959399316759150017776647301882665861123501609474649281966798213049222277109827757683966616446403252391045893812349926402685461563151126677932456829256256558785963109317838677913509059683609551451658952713320354723344215762182652058681800115392331905294364216795126751366563437652854695725652204110941698316194509469094151706416253942313275448792860133054268106682995960165822985299049654529939666513333273978684576602632231077773004988112721321410563678908155008038274348674791274437605607805860229352358220057472833875954601841389261772992028380653337494592354098667157141333729400659076622134739746753811324670039733165340150964081430031068023294501755960282898653608957207325156995296928708000550284576050218098339765027977804752369851296916375100430250478212946520070065939807064541913712659500329890444600370099519733599168293697346274077967395861366044868862539860172596578446567990333563161640182529652458451257758266946799729988993199766457189951297527939644074316186661511146791970520318059616273790278189984760639532646889949444767617506000904750451475088894239689271884109943623555063728581278984488469070052622491390661766145807297381966961731762285583288429933716926848591212865957360893386661740666239067941163082200148452819907212299852666982907420754496302451067042649862506353515390571273547460848396011382588622441628726763148669788690022582024836308741874479320601241222049090507846498887019683536649956028249329777566591256295875829950654404965985800516908616686619587931927506847538235080151014799099381630015393039451570737148643812841786768264757290971643330520432543630431870607035276326069580990360157152290559154479181640123127547005063686705625958678558775046353364259022318949541620022085901413276426346982543549988410808394207281268159418979384176176837717681415601685629142724011512372018085883562179820890537922316148659677134353151985740520411531997837250557277326244217630072751323126804378157456813696800037064033038632113966628664982294601035940973354054051010434849365918779409534149537690096940413402228652084149327691164020480852322497041269791245132914797108022347146709702955474800727537652127393141586457034081038229040539672988440161932870305484343014948938386754706419804709324349264288614547042371890981684747021492757852138625656625695795205522521170387263048788691424271524029167692738281405066748170632269749074432585458882611294465615312652200935823199553566068077743199903847962746642842747926352598943195908176971043553417725727670111694224423140093662322365620289977320193007224266485214402298310080761210598167557176229928456473548566070654443015838192629026482615398385110445894392383026794992785850158867169871295778023155275810258806892151864491182006362040890931215424213015714901199859796922625672352871113986123618036379967641757512499157131635799300601140006708237759111069213080149583500694588809905676175777348748361662000386747469891636585579587307591593438179247086173024969087610203288941896131304827448641414654123901294345970445452997664057129916042081145147998832153070936853748935245842798619802324689820640074454446445543683603556945513604127799487085878157889265640336652262155643364108807033980598616842997549195653178022626079838193336085454790370191807484831000654057877005912808470089615859831513757095440326362437487391262150224436532155196186267046040100509905290279034507327314326982992838041373291824659948723599232935352744199383329457094995037167373094177887803403988962819858115816279965222194369248752458287930789314529052883175474639643981779423691991929339082286491375826630779179415121974781236103187193352518105868350131143080794220366702297560999095600967023187510942112861076607704428465027946201314995828529226856540022695363638482397313990307831794458188386260767597411769431707656825870413290786070676528912693814327817803108967253769832753893475591016406148774541508765948021879739568677206483821189485890177089379697253180786988236458973467096667722494065096077420910202241860660565574998100174186022716532729830069571296263034017541963099974987646229533864793692817433868035584691730793997637326884990782671082247924395187859000974147679685231079011058615836504159881401478141382847776273539931185999824485145853145947815037776396155332073434614594979480197850030888783110949636591444384571819895340759913484389393706384290940373681721083505460320520821250885989649551252260620358241185389609144347877689397330567415858810524409375630624342348268029274951281993534649991375877255174549594926320171922455124990537555738044875439758181283503185522424524867158214370635834717054360132655144510888979807472567564146511223382176026837531405071234017414532055727875952423141969162244882369850976787737321824841203121778482657127503554406665916897044847729649251998404856575376631400058330388317748333544414325074541202935226984035880665360287739251402647286277125163077866235741006498721648971930446808215400907389489223160826084759110938956973189793390899083843442045187994483332741343409965558514625091214946156545027449298953148064945745067375603537466228242349249314903981484036700107638284492674973268485930395790211888747602482741382191345049455671716302138473652883457664356369119050795292266305103972964166840805781494744056525906668046138704634453955932836227609362338406890727155536264059353592271197250486717179405578401595299361739862410721502057491534318139200727174534291209099573323189772645092424026913354755276535892094359797698357383206094677875409279901891474645448780232806201059471933615069115811919015969287160281028070406815308044623924615585569338334195001682002271585542773368890764859529366102221713667056560511840762658719077697485572061832384263399894381494449070498642937965751023093493656728554447479159621930413917333847751892878082251065084208574459365265658222568556475053084748400504889964887730202309383282068843395746242288008725290729896357318298050093545376467660125146993466154060514981986935284741075157033258635303901621845220041203957413209573033713422890796874802937124036723287233867708048651768101990930329685124186212845184322277287333041270570993530008123707422813247213314543741644526846174889815957778480825062500099377050410773070678767281004970292307856857759052291854257274801895595762191415501943219588401039779725254755023462645480324318503050200044187906451911255306585824462407272181804733623355749503395289321606902159744054636992145201268607008733168528381335663453046438880562073525301774127080850347164664589504316278111338997508443859221934046139798661206817319428773733705173294382635452696947602794727224319794958098031621213469874365434769345769278340449736013695017288383595350507043630238314065099376960213805864874746084610335022682824488677933074551233433454968949124670864688002346339858859855833829170565888220296451044589899491497731137128255230973253332700361967926928089247693096772322147405488540887480042209685125595577576836008260939701782036000240215993691557456301621726985447673677534772465515142863848990749676085952381871546983625604377316246618525807640143611912722427879029146611856914393785507104605930719542685642053752420139530528269926373331027386175310017389212275426842658838034323651540633803276722736251019706580000246222044597970980847735661222055738852282840498584010603404140849043636406089934791998984070423783575443787189628018809005126206308104738910787167883695029973900596305591746506179461215534363295634351743674520908330822537589641312419664649845387052162002753001852797251566350943395215666162417310986998629830050430262063497165760903930126701442074327202688720034915131291088408893986204488284891308009722321342864426847356293512155991874636714259809327179042275656760010769477744516115076188237015670743668084485296085495233738511215655688827916634986345702396943252761740803142814513534184543879994069019598453861021838590154818980198502023412528006988401213721489744407127216045218628916086149585264269111429257047134288174069951132695594721733529601857727027132673527070681679261328076265881543380486221577766663903649574082969682977091758904508650975953556024141252949963922206465385579369568980730930538044557787101951223268919315569490175159771541055242814798875034985872689892376657821457722950364737420215870425863670037310157793221691803901689579433486544724266852738197666478115869629874269611098654168336852244296552967607050935235321484098782688752796238287490254720889370789634796944095664098691485904529684695344931402428982730043074209786506923224723250660535151705407277451583659630386115458586731662962694871713277919706011958463472905240109919942341963089207739549003534348348244190992970352880403447438296803564527434173043466097267428793427907282918588833661109494759039376439298017544983011227785891419569148277098533864291104046498638144583769498144318058505789617663792521787808108569355058239376438528392910031913806501680155088273790777400245426398559458316383924060521708186594023592936135524804231637293715277614890484388217688101858749321926002440568034188095576937672134528994492776218271602133904328160947148612070846176782825166751316884883108305108501034219450707208686239597366657709932685650418514691904670821455056192944928441943287086418037309063093484255458101423790080232424910357813309271649894943103324600888810637949776999895422915838771889059086252012480531628291499552666806257085590570944710885766028740909480054083318085193507066672764104767425022931751264150267757395547288772631614169158103696616083253556937165094332483547806447366457926904357838646558218606059560844808489170748256840687093812055655485732380520215454217418953175355697884983975031022258074703375950071565509416398018648711125593220512801214236201238562340052302545024403900001051918646787655493091577165041138518308649078629108860236607767648667095763646409495013611720382532749670540955119558511864195840673199737424441480514173596462762046540262321177275605307465306050644628677717598822238291298485281252614014323573590178403530128968692750961640661488703443395259210092592576616050176724562555457363725697677034204351321432217174064203170194101541307049532243497088295764842925695292812501487332170593232931795402607431158231514422157810087161655351062346450444855697550131976040238009013401196532422172782253605746388559304377631547836203775531651601982811398042027862760730317397820584059102295912208869788950544613733246953060719044049090150516116683877209377408419134191428523591288936841590160620032877101350260527246297181722065604493458653465493886399819354043278030220647485366349338879891746905503593375372517576496438421935890463800917730961636598758848081603667226149223184137553584922715786242434800946969267323339696475666891498918225194663337973403545888376142996514642070821921521757302671943396016910094381220433388947435737226400708098639244239054175024379546045948779512052441366367989168296630340621987849141934175390213385519211541108117050358018689700044317236018147447226492228788369141582322261553935599373729539549246983411306530771563887092808866002847964664425268698440287645341550944709040903496692221908219487504060243484726761569681628775913304596631722402679717394953517031255577753125895208276881206324261945004570289475725417319113573309885917809566928091137150889134119799931936407368048916172712290493290047733153287387347683652484974021635778253270776117409879879318805864239471159725541703897353096765928480034891413802478107093599070331187920035962892290732937724701749609009121832425655168655800202322155718222837667026019887858499449532426838754130109372481522916951060387172441589881222324416622790751158333495024281708246099838639651954219947489093295307375098443804876378165515186839816358372257712421433314005589527417705262571424548379892537260211846504339519939518151170160314152528290218395999065321903899067484693816271811632745080997611418470595722311696478105743574861557513785453473097556086063268001975213461034495978982535590395237148716349959834279906514103633580582464305346822566159913345362117698565696016298663497198795466249557706860135788307160627618611917161795561755341239564241648475140959903561750887717743121617523053811962482853765034157691896799610779824622506630686544092915073730411941511821897808801112975198558703858034916145112581705612906716523398942183880546751795810570025152364273954756225183135526723743803738399205649538135933987928439842242265289266700966267098066448572016041037459960272364479098116941486438093880598386011515167309257209856272501920369732347546622138848931541197103189542604598652164788645441705834600254908562389105437957308983501484196524106090302100098767187324643709033581296706020335524499919483387080832257373902892727229238843585259698532295905577891227263011130219462210423283659915150519832589549121897384816675310269990810755195798213365189631678273326048390809279621220385090132469986106156023730413251474397997817708954470796641951682524348833658442436762187032043758639438824319437015067584181835975217498516481108024436316329486388187202546471762072187825719742628371642577886584836142687825565165544091354160125505757058607067704272356579090224513253353570583058587212637196194570143797004177244337771860380495769260197260369862798240869781494886749364136558207578809882295666792632812357998936327201972855577656843403545983907986382616384299485233424238874907722375869650996010360010350179881490522974828266219632931997947096704012551117233806534851217316075769979922407186466217040433704905206938023307651326444858299580276599986504441334336082057972203670890938150844140265403835362220404431010362354067275263150599243888752270274474837845095150120671676330472964901546784689811740462114396578395324460543285034988995437038043954944473437887351493043793690638883759234493711761922966445379822000741998877451505474635025107230673099158180724157939233372495354873921942425893554902169800595695432021588935748957979062689199159101986416236774027381979961776182467935281740945417948106759658590554158625900321128363435247190566873113361616315649400161402743678088437038643547681060157135156589520558210232185866678634691403362133539816589644573737671742995824352243817769598077836769266781606543102949521170452938403655429452048894826829046075266092917762481227020730713658701062860732107377767461807460770008297239797403748484213682723624149596595431540899647473810326706452290582799487566885269151303075977916784412706688695573610249823960002124355143415542374321332689548417180968289195423667742066428085406716684109213080874400662111913902975790758955800593150957067995555162613534744542193880360850105119308721738192393706436745924991670087654410848973212818003076300949865485246803262751561599219054927055324545234221493789602196967383064603044553334581855288465786992884043129893596842000544416479238866619746388295166386128014838407203525090238950824994406914531398936042943895563305006265486968538491961997904281452068357248769295158708310369012710428907490663137405024017232785351631686593336260311631993132787275568100052661036912596416619618761450003699513195719167756192539588082928312389936187670480284006469574831352352595021872555855415908609738822850523440209851449163540168000926623210078724684438820864036161466370133550743827196556883761854043942229614881326437640768259830507437144901545828981214881310831129314648791194698519704819996576589011526634395462951311882211646056100484840923681937212155581543128350836139803676647592053905434815271542233985583049305749449225418643820364542520714086388875037086021764815192333830362896047364837413442694846574847470756440542256014704870946957494282181579986487820185550799673738905726675195384479868791427178130278611983481785008864594112903985532782388558675349412690155802819170077477717849955607165163772010318941718103915392329183435975041936335117299961569862950771646008236005840303709086227177915425180906580085630298180269199451457431905755808725202081207165017134096698097280417502084853308424599280539268988294363137826614702036952680647316031032170671746134099192929687975075375201795377241799200566230237586784237067221482678879956100674180778812056839244714340092504739397485351969454457488723735596782935212487907569184206855169858931543783765746222209234668017528495542316925826426421724094865178717453343286896523047911966364691457884928717066111592544273966886521827351416767327929692250991404189176328210688307771997969189666059412478567570578998098482519318788870220187220422829118940759382566357644530666289741209278596686208254657431678813092545970643384506220738252067261360556465843625051962647919428845536030460244903856304092776241172306806883340098597287683217790015183861472849839783173108307446673894994224069927284683102787363195106875946907235251002393328318375071851867563838967943816661647187225859107818535545876945194592689399352060540834562077036346703415245624564870376356417207633387117406242945970994903595372856983219274345277893606281262121928739256867545219729081583220425170283912068119349628337521249932480413107468698017237205397441472763518077489807597275396472661131878079717907476133560482543630843528553038524657027539105718151906899189569912523959963072014848089820950368017221555508177770988290040876961136809823438944090098138663771229059613681141232466569270570360005765331389051251058557451307642552389834010740186159449056339185644419009712649146124841310812548082730562717060734582906027997847561038037364108817317952774702470881234671058732021643674063753762059762535645578478097534701233222360811183521586733213153261374669864302609543570241465526602799480622379051944220959010441490806631147142105505285214138887086735608220429365554735169136955452432099144741581281072656523614610005952280947200766938312365098411218483978345751161536180301147003692826543508051232479233855390972747302150324663323482219758012016495971360001502435564678567205496652542411605234339805744468506061061512618237981158229041493858024510801365994535471730305010725990179595420002940941339360279175766061948940440470304283531899565194993787004332493787222801542816356994899897244787200543376761020336430484958374328495805579471306815469537795221167062607321721916795726902846920042013391074657378997727536992917958194645179645501488471989217106156668919792864601449205562062207483484426026320599715932162714483237125868425491131749924014116880186555664146544115753707826102185139261513166238856630788848467520501281654086740503812773964342662441335910899623386140270362775221893992959475438006330451248015110534132139840032499847032999334835432459151004502491521715190332033598991861003891877106882328684255689625613221426137814547843838995932140436410709179914876811882678484830366076688877565873067385259761216271393905941457187345578108498136286538998337923151900463396280794901867766751634233814037960388821466406976263339066673163086558460310869121300645983448245366626470012353434272248514208951634331278451109159546195812699472043655160619351388085924799913354152586179871663221153657402897634195710074630061284593764215006865012346473336465516292186179456363472659153903228554103635003775707950440286154732273252776344747839520185803064910359059076189536317816577826244278879901910630344753315963505515855795827126885324019965907748718782527003409753080174448093066848821842693318466104266325587569101468238243673009000480400561331617776611919968689696586634595695678719635219751734535235014808953648981888567539414725786622011890867164522699555829059733921495115507194237688075612975467387675968965877525682313285182322549274949124430054503679003266792507438232630284792499645404922294296665730818205003365101765917717986531318771830864203300115040952786385516013496223891806253760933423787161345292654248367388818088429551797240432993251342028569612224018246778262731872583035639395268005115080738795356457130823326202720079997578918710272997160777003370972709857814147325672997971193800907085601715896081772484492373418999367558234163432226874898414619112793937306128620240900188998468326885569916479664771452936681711690457920740062205672877237703273781803696425545780269732318219057556347498716452054820373919336917952736543238544424735924513183940043221160770798860959189120405703331259949233787701131944769530966525453046089203850897352109765532767726767203111278506801924040204407661069645540358262687779380618602189928099282231049731260554396064169795037306015159741763835477812066051668694260111789050652759274356312308986842056547014824092808863737459208929233439638968230796191508808754777365659415092184185509913068103477397871834453473708818872498851087561177648781164282794653741716371488509669177625374504385313693784248669199881599577021043371833529961729363184906827026004666021819537693848998132905253190011346171187630316432260091538836803719175529117390103953024186117856532598962468235620941226150878616114834038327341290202476929501006558364490749780871078756093757028779777474915589344815553809959884357769803416748545283402076714205485528776490164054511489131633684725927555154753715216592497268596425264108511111035316252756106811762808481946856378293173005916529829014506119143418912562076958144828066054617609712943839374769649961060295156300769876046667904764621463241311264375643469042574411610391710091769048945236085488987580303987918580977217656406691846444643671699760972638940906527965772973454616435923661662715289428301711973031673348365098395482033912548728852919073601909391807242510554477413783485934705257911535479841655889862001754529506760328421366454333279119873228817398296057957504025786444273005804147531276591848782743922031846674514196415101507118987364096595973713813330976623018436040248805760059062973502486906167319612842471876398740176162723598485874739272376326777629292937153607932005701305124740040986600369507447556585014069101254709463980857671196841877081149169655161493099300139572515554942881840302973471780439274760762653166925772310202501295454468679463459632573267390773880262690834151346224547991111475927549344013954829867078326620269638457478405701115990569703053729551166852317971998206741394285338917482328151723761683795919950361657086204291266530950427925525922575740686593856549562965023509513860347015485976774200863777350911587404599271810957978608217111983718434106998267454263868925583045760724835549381712825450540260076006254947660329979212745984722057787053611965330201824160144071878677300094484476070735893557712706694283130223193487593066302402889619791051907988084072765806506496456619867370370864629943508040990790977760799975432832533142834868448252708301482076050316707427568036896855656175106745520583165290418414834657552152161580736800691733092646187314548751437695896572690282326179108097174514510296496131608181279466500252486783114013189020178715358359789233779185666877729828395426671354698264301921188973687348147922237350685945095145124522971341834015635731578463393517698612699641588928272157101659569059488606584479768147525419624618013666371208982299555190809089467205053385986561275987232506022048614359223006006645339829245973947517555719859314493434183289094434973385210945938414522809086157133324615854526743466325879742100763548565991414332631180069151500360884108531357823649815565830192157016163376222670274708653882482460092076193074692392400788539712988832397174694501264275108075550102709722065325863944486404252343545451331973766862299385217503576375196288175991193885758699598640578827069483557374672674370604953567098278669907632561361526662132491490881337932178682782241726315697830570257826749290543626639313838169006412120727169339542500181297677411593419709710624731146969500124789345638812769868965714541259845418567125018284590576154002843889616336176385645868340710512686395536211825497137936972156270036909790618570881355367707448380546791545230285639971558547816828657281047694753608632673701761373647777512665135509784774239338933440456994109567262044471869569755249680595012613617445756232695164921515044362894352743565743981566777673408307328571656568685114474096502772467398126820790359912929138395860096055855557527324002685308083740709662141479970185524143895599366227877366913529497678152278935773081385231423809646421211274984054586936056823107762674578748034840650900005383231272370781159200388365414574343901459928505362057510464963628941039848058181007878982522646513428736795637358367129361316753145642045899949398309148440818722049039834264248169984109661049899391327386386979194819088156811662779522493222264159706482785198019085232806343246789943216807975711448198381395522857620508753405802420274080028004395808657801855247719207213138243904857405770305780850867795304021620720206973637296607642527604835943752462362229524648838526529052198644618480401673829155303894124645301739837366896120562366954029409962934853342462729764105839433097002612411322511480717564513177803341535818446427172240958072991528013756187315509497616700774675485753069603134812695263527308734286285069297367158119007786062813258567294692893511157286565310984294614576573807609338347295483196194038675021125188856929129579496269265480898517482845142924973110311463898373054432357282152624630591706124776225885133362251987344675406335642141836510368704820739581062123126428315905166501474965981890877767815455169621959304237919281123958373662373626551075644845955351051111088391104286804104747389274379149933085211574216684765555904398767074581275619438723827538467481253846339398599672775603454688827304586071686796838665492583234325676654749407260881759602113914641984998115459125834942537079965112659664729215614565279802165065222353608889252289029011659055818247229919428205934828456145347627447568145774713342865919077195487944578758154459557541697118259706229992361918040869211996677948751805247836709269051089534720051547227116048672405635082264488815164857055237312424987989926989581207678756674034842767335290027431778029976754822287365043329606654123864265384105913053204623899667061258590076419403810856952306382150650032680691496503615195767625446772839631123772738094586833681754731872368997597228325739046776018871909320405271671685386303592992285953098937342831258770347071060436183018813384031637309239157003617278264338862760815397517725699505090247800746383521693994059112723018208227668932298982283832710633336335721538879048173307389481221530157221964276865394222075548991046303527360953508364042988733208280384422373154733654022024708336348890965156254004558226525043672421628385569238413847369991181299116961495611664669895847686828246454996899527882254274699750830714224392632200782428482790566638831757265707750452905293524315481143760453251605226978955912289586519993034451823989590591245832385589159355050283159700371930150938687650514867077812498902121140080806587836356937303522582820325397100587482790389792062895524435099248682975493745731475502052027436171946142033658768054469371753402703095990976135104419634210751189929794216674377143142811259923623496204057169374913896320023681869996694223148815901422111757116699173623062448018963761697260309443395832259889387349770379643190869444823336684951916289519710260404308523992185839312963883348087976053300512981510079297662289304521586916172442601928029985214475664004804598887763942499586231089215481284406410588278973464975268265656842542055337493608647411199916961183643557409232261348736331685907685576891453702227207947384397817614568943201977059567262086959510450687243061981596750080110088150744991611753860246231472935623004166061573943249580968320299470909434257227601762894726688593909775133301075776002749805719177260949506228389916004847390015380085519935807913940631305788931504323537376469234671252243183545426268497026096461439520998892212470013539409014311618152942034253740513619678013141528657003626369441458090207623379816653874529334821656992724086320150428627012814189092038783446319063592520766308370228652254710421603506463522249662298192467060053972741214655844182724697492300905644256997386694709158154130132660646422259094826460676896578564950189128108774473841043895335038620122240298752599915939566647998592760747299680871840176561355208734812672932332918110593442643855171772853574265336514068208133026770242558357986398751156494571228749960853778685892513124014023629148383034446867644448980074209122182517325034081253968336091468266835943265052053249173360634111006043916118091681412308915049896843527424292231518419253492770286709379347392333427272563313252139891315210210590889706545714821541446061894344584992312913017504733248919557750448974472263125970555401600722093833817204497389540200337210153461748875612104665859601462679807028319210463983821871745330820776636178907220706719032771196779407931944341946077006792819142751138850082403400745821883879329541909368076376895138553989646098203995291227849387207744728668778588892984105346713811705240942863017881603716126027438369945558768501320912830495624810576294923223263085012242203481976885710468224055383484070308473446344838543119134733559250176893827069228449193211791215615050244358779486651920268457496582313511493131547065242045638754065084004464445584408609064401003638786782467058061438964731332228589744750451288517929610144579041609189728032754139890836175922918495298572313567387825064129717002229351869017071447985767609936249409166380361762643256189417228956159378869670565038724831112082584329866165716385615567581688949966276281331710488394947959198774296868293500611152975797057177497494544924258433936196052553274740764591342924436404439422570909841907774033004379785514324712980523841826181990675271618803392962755594746057236783873570470282877495852924627464605548515640428551373074016796842503713316379443623784466487095648089196871085813638238590747498588395724158379442614412936742903017061980747547404265703573149077670192747055791645651957403698211351457750375102814607944251219356439084642144447391373070381294344176151247610010403193507490315799109090392861913284514041624472378335883348150984783083795895279356896829971331669571690783887360426707275012374173238569095291804695378887893983577574963601195895379882684855017254024280422127348714420064312652277200233304812939066653405976121550350238381440028331139495331110857288015316464588750930836013222847612270474076624922816066475448970575531201909840779324950578311020347505683183141694632094627899552364149891822813696095108174436896641886397362662946628503380428059423985555687337765507749125861940392532281831717161736317971797000981979480659315130675952524334853585061256856047739497259547140691627818044429790957863657235502068696323702132487500976806574741636485680072710839703183771061068990009401264140445289210442472754676745252648628971916453929642937184898229609730814807072891912626244761591649288223239510755790362600624278118757810647055383211230862287084258119328439277542885392110681761317383577780539586216885766370981739559254947119512542404071909725668286216626721162859293738496138914122906333693562588262618292871171577765691946317856146893057582835234095239605247176787673821186602662910122212098680255733898088172601008190899467502105653136959948483133025066156973744168918621387812322629539604116772479775131555200756975307893116858186784470282924569503219536420993541519148582502909346855035740477671241271329337579046916033671924280254817827874042927815910815281133413324013284676281841763209946897840633359769043192868366671245444671895992604168877690521107927856931296574287375689129984133111764113313978677174791537992792729435392905298857297351293198914549268874044955651201386270344562810009836905804081921385841500743710446475850702945709364474156919238578211548724647016091603241128192352160769282104414906261954169960929227476812469482910666295061707348415228511347024177867951959541430131053895521690675298473623431600743102293621869367598429570384463005829409710698455595247126098181876591874303655168972376315660529231800446743366044885421198882299282888328205906696404611580457126164837767412074103566962573719160092777240894308490766070117501168796788430257169608469128899347638216855830525584320289656384389066159297621422540766914284780852923666357788785656925077894282079541106577099057856659167610000821680397786184420326229729066432214832461719294044208975930986127776719290920002083247045306834142741441581811365762216340375680433146690441146230415704427267966776757034593659385082842290282665125806544796533201404100033178804840053907982682925325837129109311019629008566762151589584783486132504911986161010851497453983032748005532374952007342349955215790696342257792524315133572402650186581452096162665515402912148014653069984650850975961727965844365141612092442643860767393509409880513184731856493562576040507487704405947603755174091330046642768558431615120177314854562308512280851028540097517632649487287335106909463278430318190736852865012028918200491696492606027050038477251266989951671058618793052960692829512860793370050448140368081068027405040936592662961956635636171925973727297262309134683371850359203867458692707799517839842303311695990953901331366267285710921219891710559275584033577644463464033790698509900975221031865129685089613591217251965746544893365630437877110309783945263639294421910832308793901945282517543119541122219929126948248687014572384188115892566239545429811579771458912881041695210212668252305871133719899443279429546720378505005980167515634175160748624012689300459783638370024951588361252020350040813286032511847340880547087412728540497249755255063076340942812618625940253687814476876558811150866901665978888492458334331902745040202744573709650218402731685108978499978899767532986357711066283911446948498466859705179592072448396508017500509816058160999974925491175776331693463861207402220815940817081427255738091380706323141861941479131406851189372468253832481680680797863296733925102278798623661324491359432746456917678391212064713227397114192464652450713970332340930359052468107595740786521569278189120725042154111578819809958234969764221343203322287021688226187378516249696681009935037380223717614104685796528936331297058096775640393986936297678392409144712568349185540216788234362488116858423913538184451197220987768261171037791106307634680350607739382555688354870956736884648696865081037560792088046833609485314352965774129045140721850910845326034428467201741460236507865248058726395325716576288035304555537353013557629448142225003255216657594370569936811883372936452815435263443443608898950614233807883288677202948817994444984363185311403184299785944663945770938317715225293636127154932227867702806688627688957535358167258441082709508340529828677917762496072696827015984031002946666317034487633184994026668412808132704343907482756378642163726166253126408040126797026109934831356120359719937810812936950226123569193982814449987358935660420622067035578077899524677764487784978006071199873653735901255314351868443758230087036245127595017717278578167770982757022320369392727540697051404299497917175547440249038967121155238681789294766406033648705567268396438391529423374200854792233220797021423577049817006550633402956509350531754163812047909234258824223008721897194183274149541268675846328532876556921673573608337233603555825796909752857193624602775737028742522768384658256993977246466590148962679042053096562389985275558905481805620858070254727566520769550065125729186527531400651914769168759903193057879564609840013791637027935075721647963441792076806121425911979206651988885313797412606397910951384606039800779805875036067982077213576064757800578526452136969226765036402474683003980681970194578239264995067141849217263808492065166976820826918736379883347958893348207717512134015078218195524352700259932261698242384168750711684193527396484267263817287618221190066674376994276650391708284227994211075626063230650280684557889228926019401681998479646447301419925959093097268940110287708108110874244238956408244914609111391390146928679381533117612357150868647335264904797859741498946092917475814848159786314358134063521970740053145059393609071997549344479159819381020822242990232845242662215824715689559948134550509860100821115403305942887527517218711623591495952524129388304857884414529446767623289032669882361449025575931622449962241591217215098088251403709798914293437846694034819548106760388532969148165673657544626525785651537547633803161434488321027220170924494921674300446337737333589275905313539987024437154443467092486649400814213813776753743014587497490973574448376988767142848685208161072428580998035252854161688411504889176331988596671272351092563293026069458494910276584946872939479345703323759450691887636016430726357883999076941300551693312974951906440336647441055884132617606128090605092496914796652638225555330172312790979437989167635909664678710160417240955457090198880978797552212113655201011873222621905665465823423469601682156014328761725052358846598622698118715378812060951199052445387558035633244163506495396956167221980036379241066820197356085467703223181762153791852671283692801677932937545345711537043316159232107059118088979005125997383377849026942768133308953448091277032775097492785192238274808204311348468669947571842680463824047486773501208642874531705141708962351907167184749728635842357705136577785915464841303474649633244661050595966665546240060680273535542629193727249345757478400749589305975700636114076238895545089133663833301152209415289477738777353260985437845586258397054229688844232465333656227157542540881902952247305769870810778762096059310484308028816024690922327011349972610423976749088304087856339104375567521130164553038025875018351969225340901245856397204082199856491237496766030108233773639974314639374596749350984292704013150205811036091679412223211353591342580587176875071544632859843172207826079219177204649559918339712633873044145174719495161779757010167531879916067288420200768678834297226086472499775006501589724071910075660774748226610093883350782990127548780852980731982097098152150340587449510735875634682912837429173205481253283877666486299041727237122921053608148638414977887339819839891569839311937214206980353288287935024495359235504571245080286701992730384967901273403858056560307211214539242334346467407785037561306054354501819151221720249937060787269455404633095586105674986878187756980754190389402070566447924124651895547841867730051372636931368109225271950571238410540505149968724857219483949557441780502025501992372692874847987504550644556142738916152760027020874782035699668043115402070632739097935830973010879031230098373943083814867632112849638349366885364542970950101136037079625434292762053682420913257952958030208157513867111494602202925213854779084424357279046549840446424220597752894550138496316050951968885669710205122314061725929804955032305001395002834361888254014801235420039973775578182305998625716025135303799981651317681867903485702026930654361658398417628071016390914319835591817685015533144741025555230830595709041423310352976260373540494197532475194718694587253352201589761958718634042164112316708694277302837339999455405734357556120142312868858282050001733899592871060616666170072804100913271850872766823771992806298209742757439365723609861767430392888230013248248521872092196850232705779725002411596392963007667726447725447916955665786392100082552766989566965193158366108141741239589167066887515780183777291337905134023297621029322589792404757000450024769616873379310871608486660477886502872079425790992320473687327361797539615410480948337661512788421724894463324344085467791148643173975556381483805158165556953772291947822881511584092454533911270699461444726138668029311271760875892073914937352470415786766327798239229833300996164278164941985568754481931531269682235488988188224864002121061332325173286485242980790351212130493635873284407774717743627031880924258881768589088487398042655527132809234272201139713417505556213998421730350954963417094644428079756371901110720081101134631200124280624996116874133651485514240376992630388545123540886306216123420317125153951828665205561088570133159431306683968176433242532670912509927056552715978934271334433208405968176144395146143650946400471581404721954772144186803020827476404242965527900342443774791155938819800813924916522491438067520835766641777536017482967696776321830564397892442166646816253280292285278037133125121893682017525234026529671658684034070424328398021732683425780910012538685170145467582532472025344523461582436212658079334864496465765845938225648702383013161553647417174300387770760129702772656267931575174375028883327094434433861585677600655881301238526502356331475859116021224449335221014233841256280365450854913836623782039198000217028549967967983980786061436231467553941612220541175128437016526101849848990050852155178607655482142917830456086138308197143254109869021048215785917313818711574044451280938796334321441960529234667873832019877607622740796748938940755655492873685415042347707152826482413727283634514719097876112772273731779020471499552896919721447023096599724834428110365671198513224216962970639306289267883128609239308174423440995341985609797139760815911297937641830335692290208285768330216340057800420799190139636205902950678584740373184308265517184709523551132247814177331743205663211638099977852331128946135007574824585589094296646707604366783071547298809946062888709544564363844345119031320978318072186360380583387479178778543868956043017393471265341042519023273200748916273753718878651725530914939010249860252162091401531961237170504747001757259290516501134519271929958223555432067573804068735461937484053431380008050766092109332197211403212883312070501682478636542917058221890181197162159218640420750275820400207098389296687510853371639576495047019755051094617216988739103928035215637948293919886473815734762045166991070157834544109878817848704732257118431360637691969118433687523140565049424203604377286629223566332482713729627410485860268899974946603717448386084128365376054327371071370047897557324869947069570627563002797029982459882574792271672060974795616121703067871075480969689779995746783352333193188253918747807310948889225732726608892648992795246786518691454603062325771366932441250308892533027521209481531681291405104551283750479276937079149023646416128998622129971732433246179305971427607784801657228836540181234305237543733236159748084291266043069620332356854030163301493042657528116430452241908987306575549136252027089015244740212595523111368345708005500989039267242348157414742857167093999674075231290463759798541054002967413904265165310499604264861448818577880455598073513793307963766121933521889142218588179416459341921218189291224470267739797915249893982961695948197635084805725006809060409366676260183494282170765113589192432705006902472569617461695493162003323115877273891589477944959390724756426248371906939326113647106937048609023356597662406127478117881999715395970425519081789414928108888992195707450733396339986597788620914153667080491604017314851221845894281624347748984348794018617347454489499941242892040509526494948239999820369069375777643405533339183444542907846299308955413878955576033573214754356640705303059437731762893253297897906179068220181334413443201634255469687662694880925492531012394550569236958909089479324438428876323143524442101246034213531592043331448155300376415028716265255373269725749727665012557759801074231052897375612525625375350886055333360557163130777707376374659445429507804542229820521230081930110596565307523831369222855651452763367422886403453643233881449168636093470468110214429840402513833929246649101015219252516000602165071135157660822146774396063520493629501108615431350047310657574448250510708304667360681811557987681253349225708894095827165725006354980739694006962883652018756114747699534359212252536227650174916600643785733412714078766080803305429445403411200375962328401848666629506115898441907392056545692960052913233910941086180651043644368803347668203479194539607179532834221883011857343486358107438174390380574842698133142411909354296321332224166438298879902176609177058114801627519514068667402615297691170648393401703382176035664244857950262573415279480310382439162794897959686170615142933128458193314201002195402480203948096530996075092711892657858154958038546595837193732202210338695127664098774265784157290079198801124119837446569635480625178112430668330939233182702948830769572398263290207631774374783570821651343226221376234533442894951017654898895554064701277398365219082704002108556781621286146178906834733996025110061859502437000158224421578899691841348764060450770815587302270860326993119471114231727892238981131082408101864095798252938242113485870587172389566941077786124377599986148150741509873654162365895518515847063194864331948610268408417770564156766142043009848981366468737887152423686672124186510664111122074708986482506701825107431678453502231930815991587223407678286197719928835015467695917387586728200240438642113656343918251605781814361203729333358517540285017715280093709535931583764021239205712204758285327327297259560979274189674021244256908804064729959421001718626719103016183665630891917445438719606014340856692493792597425571981654997365364737034305432414833548107032515937308554071233039988766685517074487000598744910355493525556228663237647368094495972917702823010611833969107533993517595845783078713526730439779736359904606889947414634775480124289218383161138926381443479917824695574406955422899239138687501230053944214621969963929033675602194016578145842723036159668971494886727433337523116723714508267205965797758204679659919944418042267346690246185788983359873226732218723117910289919049531355556125165274974822888235788888400593159790553006198575506661104333184174086243118453351654861337209233212694547444386325919873834145741117697265532629178952373093234477121766976410246214492055274057733012404781931806525989675031401260840642741115580401268953998385795159937898990126208210693256467951284311274552638010894818356382554985676508293455100466600577797951296442714347051582014697189390783341729073647874238729694070866528888611771610217603929188535172949449266213937569819273333380663431148898242524247305161511692025048210376910317574605671060385979262031031549590962975228368600809617936101270051310058318913659873790345031498480518699704288653402623429614588879569084993853927910315385537356250621396665031551875104671583470001604263493051293550432467356716529840869011149792819030594027996685823002819435561488084386756644814464507979307866589284789096733060885268285756144715056568007559412515150839039913785465617725310250709166112287616841907331377115362156161565069224362685167991010667317626459684552162063673274242765516062767536008293298862249205760551051251300468256651135629225280094205759575867555921364094629230856884012564900441490944899549339855735039703940083407913806107664851488441136672666139239336533611941570216917708168078112199646841946132494548546455613828995633207481649905843670185315301793124086710108926825959461790358628310137965029702518085084250140577237927094385655152606789490336265394202179209896625522525887488801935788195760753315891026496904535477472857590004789219147970701201820501211217324862823698291605852422730330117342241089175589060248847697541725474693985681832278997499263330607960086154478827916288149204072818844865913446621595799495586576951531122659259094341817484224796043602662873486127056548088576070160159554798126575474324077502792371060977985893809798114454802466043114339730078859760419909757877588313407824335934695489145080477238738629962306139425125158774034220280473465108783556655185335942767979759496965554283782407569656142059159853702676471286773440354590058655218775402017718168940441911781695161527868972382587823719284829255771419933620128540370071278750978114655513035713343653323595094903840291281291608217940992880115423183500981841316825591441590255591844397971790486633522474525314933136085751492036352995712868321896738779333920498667811006438994777469520012537195013423559768287558889178076269354375672464842747847439675009244793597058493394499998814998336836783052435742252219479117003744333318668761980555605844638852034142504446059296255370684910007930128754491823468684621477773134813750443713954069577423079460994393657369308814487895878586540162781514229113162680068923619607499497720754581691844537995765878638014772047553407534248563850401640519972737481671701331521373556177895136976160295654435745243622977478513657720395878598156141031745536124211683524795161596271566522259553039277640280586179538540045972352892900429393519712829967209533752757977002780012258831130526756361488855520932103684561358423628489230423727555139852373862304970693675517260520693655871385636009755117923697419248716258567492513985300651646392884754232754552253075009375007484795431583241607292443170520039453608154842998928661912475070869135892398226420970134906523163290095865561926382450795599643095431135070480110962332383184670679558354336644777585059718560102348058668006068656088096094324469194432095497582312548622936856170660418971389699282124366952116644746255536025453914221940421585708645602288854301235210806013951947760662333258793224450560954958114005408521178299543966162444472450911219918783410488029677217419021425962818866444418742063084073376431700750600855958838368083693603801022993626307280181048485834562491590347076039802349789051499035177186562228364538789425703855715711430868409472487985210136597495739333457329371577781879124552577249184396129150418834567432214971818022088469910867371018021827750430547786930882349930337508630741000821141653033248021659175010875320692835519836529925920324964716902556440982527451471009397438996559899893421606456137389266385644868141928560927102477476796193000464790566736174697116348668545087143463168600622052057747434967060933658088642411679407744010876868337253633383242062202061775928791417094892820038946438194274016450079810374645538962795569190831519762319442468560673456949469914514860087050257457928982224290169367552266426347889852332774982848508736509613747112428306969060450943466195124300084492748962497466807901447699638690465634877908366348345740216275676453852248973716094890346292440254352319466739729880120360113241782064882221283895281857201581537952575773684894691184807481996859176095911634165827534511583543406570411643711668030825751518422373187811626884904523035632036818834850857279196617408891360354173161848203655447734810592953978238938402114415317538256100521496497263618298994043620473324371875378964201484359059253489258781183837009682192445900966737903790056522506150730316882536241737471678156787357161287774556020563411826799745064812934374645216457647000517380560503688592305213204528785390692137798431980346106545525048322134535137834152409746177397729118181197343048384898042274526849455651287865719436636547312733040054096312672032555182610172161237442557956925387968832441930676741639092893519674328965988659070123765262745197150038819440309219974682670115852497392896340591087565961608974768799535853577107794036560615645887258224637443477405838149469538918175335382003391349745787083280339629403022023426779973265053578400448072072302536509422190882610494554657341114771783453034796431614164166699895178637604617419441343897569522875822960976404164741326142331444407409537675114268945280394991991091209340562255487270212055802911550988286039342337603510774027747853758600697452987475002236998475361247233262565656169017551602264273146722706830884764524757134829733888789105038867009995003707166719259836955789267557122680584392206579329546176741608000346209310080901800852631402141513995222925134602095811350477082598615537784071274727951880270253477162014961948008840259530885661529129241445148954494341257358913722703182046546575440371867473573603269564037533722429921297111275202501068535885022313589035262558523587985095031216370185848575690568380607653793903796615483502022163918846846910942841542978148526375349316200363121328398247729210776978672266691448198133771265401292674574126247994561318207578543094121074617046533469725361401308512096368425358998997856130540364996490602959351840624943553760542937791348942712039368133115088392868937273147229543040248804516024693250377130869157441573726446620539208365121200362047764859441096826196578878828217197740736241201137747019499594631772806989577078096422479264616997964085200050834445478977109740448931636139919393033222874822032341218205559687121578387481701902659211991116560094172963297890632710272041057974667058356690366911564359164715481358315282884699902904678508898025901829979481871677748892759935373006088478379633841353082273606808909487026516585676229283104287275751173850421107374494965545109175706703948986013126429769791578921463855740480802464151395670926315414238772223440731229146487918606999257547850822528263932746270833625779639979134379029667329103708475921465941742637633358245853484946234147101725578839234358072558525599657235074960129025471845840450208284567894009833868660729947955184952730610684201187300164590511036924199865050419051418652100956489794116013011469265930125130230906482952839403977652116854450053720396693333723533715646783319836048427793977676142019149718279215990387359297391344366186564076225391180197246076291228794573179489603058891051634635494498676877442430709792228773313685360955649323384710364461978875244698653921524987782982284101750771773525476707545544486829607036247716843284379678635415053385221509946396280825896652633448556210904303469217392510303380313865027668276356275512341784413768038892067578321728288769697346254925064111488354791355805237439602032101710942865489690652104981295065228384273443306235956546399931395301773540011866518239511038905858365199271372034577188170267106679044417130717617363158235862559537843105241459365829432050750766815400009641789240796328337560263266924049592643950859085815929949357946614026622447664661091710326515925750416457884090811820612309261660069884645354047481390492490595146148343555303188941557958070338977167150531055116447561165948329632296021531670491366730023252465102537084266576973650044148685828241933476225638468670073485890111002747849315532106577892841441547222834377633245390329950458985037850381121154663019868314759376984791704027088592716255839044757234878685325161926848662137193573793065103484516633717552231627998025712104042093540821826669607831746878345095406293590438644912613361054150488367307525704640286963644687916841259584667693174580192513537195005338064114635859346374425757392203426605371078229587152407731151208699245669637880588807043797283572196566078851245836609588141713370230230885518147569647805817707561780805146718795736050158809105272566810600939429062835858025922107871970358107012628412444777590288075529149006384144889813832313653541085899111263474185634433283964011631286778698808967162415335503930635837288691818609568036127056243744021277042601562880401167501555277198070628142430396319741769642018338954196053163844460510453014677733546800389244087202864861784704568204666486085414350847818019303746519709809326726200044387015903973868138687453835158488241926366220298153384276406419004800856252538018832534806089940419336067627353409432442894689400137742012057844612609444033714893190390871747595839055868802045896252359001970286078709460122960613795509558368614666751615073224972798255733049033406632018952810770992077896386663948978392938038980011573464603771604390659400666965445817204013989215016314005117570894903445380429738965584535470151044621502693346550866126311367268911459410436156675533888225883559294965076845153772269650178037086234464055711107990272012167234341873162003822905851484395907049479694413947814202093831278570618073562350527667569993589210933853131695108448194944610002511617789014079969885514229354209493286757494371147129369200688537112960420135771886687138935737516998929334318585277669837259830828306135618515976321062372968261147058934154453167508662803717328146732009995215004877012850365802932787219029795540374403547373637487169297053753636231859953343016310622230353907092262413409158309908849312605097340176681477235603879087761854128918779294637492762192887168812573631544221525526573722121205034157718400639819418372571307734694459747642319408326657405802358498655557257889035818255547701489095378793662772177993417070835518836190148143714384382060216387142811622179181566517240108038066869995136224956391023458584441074136419867159897262048247515655791562198884730720405816602157405652713353536016336772854541673447580998256423487017496089496876847402629937920160726858696757934018188492006534013177334681132508561975036533278655295245032522068441999532158161571775420017979175196296589423546788215052381898159861929569161169065690495335009665547159141274008364089344088579588717058498105379458101248757370242945956771299069617295541374603383620072744178575469591782097554481664834782393989800664631072394719802428395597476851414179341410136908612719934319279153144690599329008573619738321665333184258924125792015243024176497048849467783086480727232879515575806413930987575779381659016456551542088163382593462930417769158116801052025935074581567216865544958397610271680427757537318100119104131205198306737430450240089581839376717222419486162378236647019844472193295178080832333842627314632871042887762447342839326611312697896513760392493698225240384529520823926253999273844110842583164842373382997140419974325015832194387433611587295951960944867249664524063481702324863243980909085021869210978170017496561306029425356872925982723587020312844837313940638590650614081760873272161815881013508401908242545017971564322528473748891824314847390135142825105496206694583000380530615427209301362812529265879840473804109152584732453937645386838183089557227703795704644750856937426985029864861460105350744765604903742359442678902372254363812769786655127955959690435998514283859141993727839194699029929581182176785440482217272887370435218902197391473801785589109963536604363418220238323381735081488837134407095528744595719062653219019075045199913143846630348016873227591269485906694522100602894632407597620558614320953708304595088740534049654904397222583798120160374062792105732397072930492664417851397793909065879142526218002426569900572706263366402131343642270639870873861383656119161324435807498366220131431494783853720764012993259346738249021945712279823560401492230179869111977458389737906967004246497927369008430000488737511287237959660603679295861970061530844393984744673312314035411720899019977909695609566649267454360732021407001819526805440519818957340908310962902505467652302154797212452159730617649637327715478710755077385121113918812241897549395236564655770850593738206682774150451616718324399400535271563944621725925962464617070606373259065098461019241420377918476608799115120066037205081050279298334604280585994351245587943531772223173886160190820595823873321741177300119869148314227094268119818866390782013496007952315174824517905923832474763301664634145233715466128399360435112903107298097033282898258053030265826954979765569218884713581777424437651726866036381838891324136210042785537503949508426355675822956556191972075921942669082267795344484710524600430623795792114032542732060594070056610576247244492911268806423321559509574383975632506857489658527791192907593720092345355836167304956309820354276204237945370617075912281334152471488181545027545706226434079602210445652941589031766026218698261739844973948754744816379888935614634239463290693367003641734352228868042589187645411381989001518141203867730055463320501283868494291993861083811249621263082070976487229969168699369081310693701255021994023248628601492076046103572269830519975388241819112482599099550430776890382006153350007734651021037276509386599463014572214663106193926544176688556865048489092568148998698520130618232599874746218831850760330726165899061942814612599652477814133650815302734819346781498130516416449341910583176367355460927648453403858068400764591107940038833441142055271058557398597423346305283832251717231577545573630828495571359263218692931329941820763660776316378275526871961319638865540104652043491686202544297647387188704499122240779237789005274213360207488355453482598420472273207208907376537492391294941029730167585116600578894420533583878845860835190451708682499471828695379685164334221135615779274589073888087775684914101047130791586572413823204981866604736991700228116192666545819771091467113308887827008303603426835916945166650139827213669080775892859129313965356324624431426138109897365427933447090872882019464451209655073242213875428570338754435690445028061407917954013929294206803557957786740850216225056780314781959430283246619747021909528916555722335067882184495276573779881701757943279888611931401421237106784530032441522900966206632542804048259522236058427893772274853215221182352054230142547782434041953061053840315697007730439929857373616598455451506368933201483634110840049092209289700955132049831661281843406022184245990966765359225532839911333181561033053842797953789740385641275373560228658799038711785002498751719487488336004898406931872793699425874087182574879311620014880604457714918970586356456304970032247882934395000787805279108977901557271450696481443806902259239295068746419026174096682736114337038550323972464788758149992324288802127788634194647246165352112167492895959278754690758134625444271573955631183259517367435232809066392217576800909695855010347401233008653644355218623455350322259500367519217632638641654331589686335133066819624251304951523078290089484190599703310957920276451694371052656574897295214579055308753202275131037084866777355638509850211194504607954443758821665354468886373423535587840363753723685786830732509500660236432188474780426468898917347653033289934834105279867675391639454721806770045228009535304535649038536335355500860093357760669198737024845384012335193359235063927059828460234679535350736898234599256062327256718265928237255919912009360762840946922034978553547762354494150773503894054470433959864056727938719344874905998502231328141065693249141633168311010969449272034801411022643182310028138736784225227019766246020245279638508085561799032393302368835552699334563877113901635252476553405678840391226172344018750580368528969621093094656769217353305215603501214396512042966760964935647907479775643899841987513503317187868471397618028843771732780887960102163376904025708837189137966149223411160634078978549486882390697952383193002103339426251506639686112646018722167740160030869590409361249658228088708406161708669322868410503218813500856232878495773725786226692684217095295629307987530571201625715770482212705864820319391561229242844741331773341221914983444426687912911013694632638412453779394054221335428012015450720136128088572878324076564157915899688712739551521389160615273941317653384115994695675091534079598889654912083531112980973099006278720084261909705316474338152177981111066606397946604741221972338882903885054381580654869018151323903162348632430200496027843071277447859890448171392746253765768189595271691206096324716332554406889369648664801899560499868497735748128194127913915405917642625904006391684131472836388418269848189097134983673768172721484330045267035942582427373026120150801532002057206192486342968030394026840876761883828621529245023665383879629704554552874984063618050275549386346350148041634685936941946896708624709637052276890714534620744281916474923453642999976751674997800080733116349339918855215555987703031014703998631053901327042076470281876757472450100657125517717063212007262340899725079900157763517317897262056446678918048065243761228634081148011882341914793570527460428398709954849152043479953478514075663849198440964844624400965222787480370260030777553240497539700750281271449056011728546089901279240664959416569617498644024648291820352534009014620735131898704407023296735866023962936749657407965944160540676206317700215361135737775550184376079593381089667209319472158239783493654080805223187422215056233087405506255415248788095066034183219111001843589084819255885314274613679306270462708941752739063344405095533034349739920227742888478398594895284773734926627501879894307874266345207808373792504648745409078226100337063365791708838527586415261746057783066475011107067522702540820134703691083794113124005731552460933259155881088101588402211162148466413704985992317068363694033091423272917809613227577066846090709761369027320019999579432359837436389940713288938883702347487741263655791219464540747090222492693807662451497857463645821992540833940887282733835280466304951941676503078382697972049408372425311255919199866780580257901321138370865081439220926033215991836901142116492658066617985317593527382363186078753317254977764667899623042531623876906916091305468059558959930602682729972582280107773283769315740869319239808917525249049484120513988691594983224555148080203410989090224921996305226941877233675877761994567238210365494251259933976810868399677513645895727464740167898118291654543237567720380133328295358983342305462036742968909453873013471369859732039562124372465632397307144424821490852651813517552947493895742491426990525082179834819015037641678824573494339161252488265422018703666962948211369779999593072177752440194011758256807262063604065913804769011119134502707369531143752488790094043374476084396584636023765551600084367896023106517035816576523704146158699937278451667064823082486337155774437874900201736175963251817469858079722391721358980423168043643443182479825853467797241429812455801958292418152813588340450760849054070481024693460604000389321882059358974938631120262143861021637294728150941720480377325771707960016235097740303841144716987621478901908863917511698825621289597564038563157496778608600627120253679788934761256916742512864600076420247827727580835413834810627904274561622574410041664607994124589837817494616045822905730696089737455726010331865673303747899564480614211777644234739961652129934569216769296535905624576915708345409536311359020071498735364383084827761024676079081310995204858559193961905879186560854811371213949724613169731201526235948171788821800889115127011648125861880953724751819039553443518646377274628618564358007050307762406418355405971083494092688244902865739742852660524369105876163521356910078800390989496020896517457394495754723648563865519033691268863353261624807085731910500831367181639457252562385510970532125396237328936989918920733693673577692027309212885022557031962629822523926610467056736665182208747581630649902727248890500456796677019778658720966300742365300529954300680567830305028815151347387006928329074301704695629872062965309177616216672334031336072353255452754155694698401540532716349473271031649832472175885618014873773064883743926648443927579485508221468977376527911960510217259618667209019227455292436918416760028160003825075316262356895869107305551887730341459555873851186465350592822984374413563129127006749120043916942884000569234361341991131209070864443629977039189529545345571141334934673621772313487065472893694277872170603332250352544758183568591733752774580806806519185552992695255709011927840100796075463450638682314008546454345420769935906188499218787663174878760106203884021990763309999379657446177144330770141327250290555635713635896093830423398996470297513537654991872239475185838853645128245274586465751402789164267508546576096383544991778176379221018327886135432113462301340293629944796970326404200014314990883438951139772261732563085360092909522894251312312862174226497186066926740320702206535143329824851266732344980160094307899288923517409358103897315375087508730637135929009759396696302938542061202240940426614425499328507450477057338914244469359553504613317646972806969118181057113829164805267534140362942849375978339189922353040841462018528471602273631852626154030703161040888932420436922880254675902517620016796916083870248392704000598311333071329213490312490740448463208818467775492189663048521416493745881690914920417871722751866916092930056138576036976562887929397133528749595339498011530376185115183033124184610306062619470483132992030681042940285452615577692945322728494989862110709936695537947462010524779783388207931114261840169928420787496657361062747163137652924354507274013284080464580124065857490147855083432435891016922732767207038251239518708942465400658526448607727022512346413056316518229350306978038595274350686844178634725097160920455179372623231746701312847323690893185085537823984967693457055879826205926492963257708477019227022845812993330837222412824091700229137024016682619629771248354352497660186991441188322327215692369657066308856166304205457396831431968458637851166319613160942843637073094904943815922843948738906893682931538330639159341923456183118863498275833609241710934456083164473031316594405903303650251335313408594458251820900882699396381427391070773403613891542432261090883716930891011019227811791300208496891595153411555195031375507622375324559744000271432850375552906416371024011898928182032005688478136062140591454048064046367016187240989892470387047478968932921706242398449389539695022200832232528581717577944251570565227672612132488268209228582469258533080049041049172547325619343770286871757744900611632396844098693268161797352762607183729768906021672044999021854065998697630865939696788808443775972013576952637470570173644564709307823265734212394498674746616268217322029935278765779259279677476865195685703515231124477213747892647469273132592746524106633108853412815451827357292718978747243090336240699627969376004536112184080635730828864276564871622045420249256834414739892121442897394517028916980850422302921492125819386325215598407255453362049870443273719244350536684268988792461959503505417302214665724666205299355092136258360318960131261446734776019422608666141788168718016002103371614692970272365391980251189830723045942780715877341552289409876400412441625018282125254936742928743691201631657499283912727169034566062353901345386964068510580740128805762377563570980930715581288435816606900333447735793477862514478135122421172181286209449127818796015727733644300476283868777486962923322505630960576872001721411392108939351633658382118643769942918732883927718758526131548109037939918945329816180788158579237893355037248034768955141501236862191069372876204163739786432016035149133153134604317898095025851082311088363624270591079304585847960355816184649660508887600883629232923710126929248307567671889179152821736623578165407499359934814660620570280333901921187872188445831046843362060716003954238672359297949284166898100698720808771456940883087717496779573135859702064782287062715657266981565650005476392710323256146863230203195517586884642751690226359386781416530004515836212825243522784426517788927823497267025650865301423690611202172529246937763736455128101554260315619759822890548918206451297454138130841649894517026829692525822192258645380872911962903662563487814210109963888707544148491212436758219524922711447874413240682040516922148193312965511382154509499792273429652936557222573876011032744410772903234175569061223019675258485416352449755131476848504550763009857906604350290011588040404733284378697804221495103236249647160930167622399236339175026076520413502340233228783323670356228577391849479568078102376223057900693808421022803381289058219173658983913057158263686824782953430170916491920162644263337077976471524178555907599068668909414664684618138153135936390883355790992980037353191047197126773929354772044629781431156506608088204692982568984958365167359034621320837939498089619423227054925768875971824847020489420463851058878928308852175710323292292987898379480787302409854970132353785147542912954608835422217448997010511292668143960084563110406529573314272183972358641730809207155029722761021119597458190530364098411128341857740417554846201956893970609623418453419444257116327216126514251988099999901340335460045555471269455227575282390863134399133120029418808728559628140527426675878738567653869814533564932671222611021264642096378198551404441833472085960483696909251232721642651209897218146903805469363419943984939322833765128179105041938120201494849877456584252890182206202984938649176788931546841533457916250440246606183754384707675982198528181997852590855735219349434656853891663342711675656948897713450971476582043485409072414294490676557211073120885952486272237880698202705993045919891846859705234764588386519762259800846072225352235692612636346779473978659039927077322176805420114491813559447785751756530782889335359829647382914343205891722518438079976984771916894627745171422919183769282984952578310993648399557894412188092103498352259653027827259306650168954050551534038892961104080532804495025851685950425240516728545150047999515213391615214479242045138971912166313126837998803316164621297230338026613140175697891531350351977924575020029663677727756953676575223220931648814409075849496159702987671933057968685733035804167750229770092839516829320574578554412424618418695445784286369572359730198109060859372853866453619081509805555050337588344527677941188947376624606710161747662243485088338731495332642492029801517916118379784030330849631105044919267249354977444507351679964739716191326451418078489337687201935990848590540187028499462637342432836848614263066604132790577741985701028866384262925594113718280690849949591113504796590742011072502053473969842478405405205711329268460110141982346627129901908784148266049392082124145323071767760547018419799642082103812872666661596497723626141165398350819059734256782993083859638694245753712024006230067821899053039263693889651898685800692755977993841875957563918768232100521177368702725304107584311779872074078687725686301953562963253354704964776514133871562672492990619912728804836799626806913342755929537729732000592811674771427373521168271837433804065062414604177216568217709356630607274746883416594235219796332662276408502134670212174205828162925607439679336233757678434076025123067365272233087538292127346852010185107259640876087062482791373529576815765913333561627922710905430450724610859551306101437375438577572337606376187544205208880873947158378654929362688026630711652142476191143213902513095802998936750037349491396925575093142098298259699971531475663491342306673413067047267786638629222911771239087343795306910791048303321950805134485845512641733985678832152446396506516755301282386607032588025118912901720169069400123374775640585036318992376967196345552758607507523672472010985304062902317263416170762748011391802586279659200762238129311922999379001564095290265539718787652600398970521540835750090371833446219511539614143941510774029311735479384133045843619670584758872822652094151925757034732496582864382322005565585783507103244800346479413087845333555746496180932913856852378818679704643701671057781999301772612096039926750739929214281573893874373942657030633579846873768798640692499410090561986359025699191610365991325757850793639042536277012705033133216037348323049032203187840720900132704002816940560135254550601203280161057078466420276095286434357634751770398315025012715425549881415196524273936477146523532584795175811977238691480707859164071767759702564132856400976711819424237147249543143413919472419429172948415188168770520021702391046805792212721309617225687219497252256959394610171980863688221228444484098208672466497870576818974653003477133870546233013804002306383409884832344791741414006166860709629434048646276633509199105827214657591975508170045990609037759747237424015004179158200106496354523679540252635961197137476750787866062061264768948040353907513591351685451718112263973394266274078488198142094971707149545590890555334442588094979352236222013458536674305234198782851129443669080463499530527734660091352916720088148981232831183238085293840177806002823555719367792658415889491406018998169542740286754594951432409649126214596268090192742465642012986483375506553663822346052588843167311211767087450705908389698489269973083933023517466769595047230867375834766820998503986921277034848966745101905192871737587247747588689271551942164671310828508417976844252434448507385136679713800302005326675264219275103177297913606503812956880552562121298677269341563163611996292238442519132059601186005012040103646055186035770007091070673169143644062481532283306449409032132732068531591833443849904296409420175584857522587193036596474831496757479889343291558977215861653581292992287970355343940299617389709388386453885091714743136020819015152087772016785242850801008017093804485050332538497369469258640913636746077428155822064615780265145314250167102839741168143687563659997666279137059813567872395774674508498478232185555053597276226211769890642527158938174851683554267731354136681690482522287516266377024680341300984776112972313159957588361763975279247990358416296720895548004414407616652068845745997499083278685017837150765299499560237687063722228577873418484347748500383332268245026155042758550016650255034809283765949219831976889533509447125146475359353831961008498637725198681508689722357597284791468646501604713201055623342069260782689882914573464825947683729679022727873482055087742433786274098026711022175504516358748160577145408321363289318487886257358047806351786147199193916858264830712060257482507590889633559224842455410185017586251931409264330903618751910206255745493999619857089910680414529903989312178116422116804357618050320507614024944936267109583816010782578297172957891579198623348231820390692119117233027908825407668087069434822892534896453504351509931939041404902746864271899658075066291200260404392555528773872075606404644073413779563410709549757320149806814422303056392361466777042593225724382498733819733628643233239958677718965241526593869303554667546505525514778678629663206115579478053556328890522569032971937987982853831076621498101187591845485003299619326350089842071559480332636402455826593035481319287481679484164976578557998211493354276710481336854851539693426187887983971426797383062876054704065592016132987161819197571097986247898199707218347836517018016081108113752145062746200157043452473032359049105730298340028634534521724823385462889369002058997822732567943566096320873705867108572427895931899633288898129060015660756608493741480233918282452597898966370580374483956254902977046581026537892018233368858611783506084470855120508899706134671413803244089894896165201252828093614193114222698875617835592159756484152317305405450151986172212408906021483078402430662672477240687231352317725273717842789501612617555270207729170826933483151027834978368782150324788951582025997041961283948489448930292836571710684647128336021162808745487747742298710436851030929838345392077331084783430240256597532960821435507077010754336114145166765955379843817362932661796865975107252273352900125621867478690854440535371065592728988752054786625442732691525364521455379726933374302853225907605560958182584393593985294382514321512428210006839490113654531406281584970169234310238348715223930399908006291413780654369393458962290002287368374232621821090191067646175537284304839521549448905284934673714927629807851404189130839952026754060130900397064210900136081097755854565942972821678705738852866628188571495843431064122202139597770808515913528003889251255698103463583372659125965787749166771706033111120158674996317227276351465383135883035420749210810419245555110425446821182369234861678598132094040478260407669246063208916740909125582486154017150403401709801485531825614812201925845318569173696486828626032372536755039838926506165903133739789035802627272798776846307620939934587800127885431212588677577153556550833169081313989870119654648300089959995568625374037712140777216771074860394092907076497383653794530090065834484774701905782645646693998554144180015257374815892877179191470788797703279450521790721639951872602170195668309478640897518991680005399327056737817340546148462396390720909030900547518706741140137777918236700686317858067771167645050947690095882281810953479410819530386015091796440659615123489394340279574733117995725233547054667218156007149337004895744302481422580073795816710636327800724919860673211100926460787300571736667978582282159822687638514008651559927528311213260719228613052512146945015829239362489190970881196829132449481194364182003464165761212918321544090788933273294055084643221811642995682793509735009909349717449788650552118654707453529872893530697442258789264570194665401578812830277027961205519834208581457269496239065383392914046053580542191778658925403920817187954795708683378084167138161436921513161184633175283723146125893355588335762896449115602932529789818328626849702240600443119733057890661859483776973190621229786828185137422268466810199295693730786407903730086438374672015921648183754996914885353945571755319405075017545949096469440817495901667116278583347021428928360479259399992698306841982347703459807622192888219540636550732812601848149955062267984548848783346627027840243828930746526260190462208282406163277265132106352085761131912270692933683795034505042949064015841169175138837255292028031693984597655257782652297043968947677598615740833107644099413380770240772604381601277813435432268538758210202907353785676457011278912746167639376289020220661707491330164095725580499252793724342811572140823751312037829364582080976238220370636702083917617072870891778831362637575526771776415738589253840290201362386470455900199263445313242260724066264225805101273930784002273495936351624784438952159847715986843693730463332497574088342785319034409474294180098399660862229563060006545384177745130367578368583251797082963642459171834785298170567302430060756902179337616403809392550814651061710426440467782498269017430209723801064178234278069959472405937727829057465109514680858863990248692413086745628388798806786395504342965372101103606544484653222818142744759036647619817175761228539434574142650019962889384117915813920888602638711163508094245996858763840774806272759577827663159384340709165075707217820321002360912445491674789961407280705463032456666926893997816927364954459669020767275108874635156184110813386857840883931258076281485662845030917477835586834989494143111269184979425174411713416370295425933322674047233001092345227077620887658791998371913453909248907297419817393369932752427063474575566845923399068892451394022423337566608932634827507331577141343756350947425404008248444023667298202216818109978395882834498256244750813785065227025622147319786989228729502899861489374609945952191830567789713285657204319988894894149735704107649349152787537608933054790093961271048966002185296953740354728538889139518358955129171600021834785431385029107542155520878123433761046117452857652331192423176973837791135500342723846688716417873571228051607711702811721367609166973535631948052687431096424054273697329332833069034517123583152695791197251410874349875893816250412913974897804905472715904191967033116298498441484994856848446920317923961549114227141797053748960639444528183839473306348877030598938238469679954805384780341645357103550840128948295289029991785003534189104137389485000377635159064325667644198517434573017066292333729862371889326203758974362115332301453239451527355268069716438927828888988906413566783473215890214843558541223795096593407882715940103886412928233670484910778035926845195679567526919326639405018594213216875625542193811282553545467049923295137221590524915289222739203848596452254204298933031620653882684065298383619779532625643481189429953518692714432710510916961615739710056537104638564765810549984303932394544516405016754241178041891843284389984651832504710365476363638869615910406591710674688297911275694899403259691935075446012935962544833466573863970535277855214571689641369204396234108982749750755907605554120581930638659439868183764496649614498819654362198938452506824850514530062472204242576839390346495089738606112451428975031360501371902307644437764592380572214864346680155135280989858860356332738121216225348148553014308541762528645253274597257985847421055199996695217252924427129720698908173305559840994947664940982293957265770494067327742343001026566736113279949659957057476944538657393130060673668868763002404140751342921243885457860609471878825859687147821423753201305467944836784368298967675577831980652183710714315190277618052936867336852007691943389506886680253559711492582972687780774693091444131061152557606680238951554143196799214465680057382563517377478227618710977653214234087600463374131189170282798586227025134337276311051856591355725035355946994596960327076145252870549984022613229498789644736223146253043655603132896675667513420962385193485939904318916363612823696004412959115979475524373098669221996515044565564999974375656011343439040531110590162559268216647916942142923988267936066254682882019362342429998567847737437844117903151841418875093613743594562733477737678891568712444864863292786305510912618932460108926572043121437896729911935855607341243568068294111372533810197318351810255792829119731850784922246059794137387052293395389066991846789155179034911257296787187531875706170929859751060580850107090743193203471595326732995846410373207958079913837370624059256810868717940113096163201562794665983032761927003691270323718845556340270407872428465658059903230887895654230952193344429084293421591371222731531637914886412466415885718048510225030382733348728378652228005288994174790967476442473254335237868457161335889195370720653896230412035295174005229123661188613427498822851101008350452105164799534417428760828255964653946104006418197710091805394271650411429145719278675475489152463389915605461280824813606830117455225310726530180657479428388410761603529406293127029075122002909596157380183114874864905404317792839362357651154610202702747661814557310404604478529257905971651324320158113110477746054803395427910774206906207901744070362245974545284533013641368236336103142085752918719059035454310648017629524747437256416995532557898724212711291963785070426890301532954571104519566349726457641451593381896720281744167142508438382280256064978686942283795700850219975666697740730465123524018315438368584102837605805700608082518318106302921675080491033015067700454991487709305018212148903677441095141675216277029337716573094189029355619187477941606227560972806521610653525832944633197394540808289216816569641288032690111117515100673777667323866380706503099399234367063078409028890076680314140761099635970822634203189013301863424010726298358391451010871211279891096083394701885473092059273726890661343328794493583534322563048922757854522367419542224518755132394771652062342883247219476883419747544272868717833899816395236571562113746780097086547941086702171779728775068000763207905458536609825899985670978102339554168762038187241259056180358937966693288770681863652436123275523414672686996728625307503913487374556335340097293336629065465232605649404517293175833067560471652427155111144277197523303390905778613839083547644878329881659679061761331286562155906267761571034226989365422109228879690268839108060833889417062500496439046159153457979231545125273612709871139813643503061412311549604981030306446142223382329748353781032338804589943606838715304685355988402963915793262913540340138863942881635654860867394562012408411751200493875826117915861049962444289026104994999866693503773207355390983542750516856873846964926602418729604302241957000101142012119380357663034548657522502887054566945097450100463184253889085474778630999751396263615698622657162976496939281406005781586091385415059966583885633079826788608596951443642211854428721391877163985270047872449809894103897444655990046482304149916540348947881749829311372324338788395629406522957058252644385278899956686827845550047701642172555186599009747469288361025944749446607135630259685044838438555893936999218879983675030349514010513083447188288652216696782322326311087040644158569454026396099289667635299350699027205617520514402101850535917107099210113549658811007645201768899831323259140902748389812093094321772771903402088160813023180232669126080762639914013517963766667891022327569452179763840280369880897703412092920369260684178685106130140152444840459896700655238787887713944476158771512495714680450595189330733284723097654400439842460295069294276171619953549772600670510182077456015367248192995967431469661668147206272649395010785393568543809522833642411259458665042174526029847408217416363605565904266967366668288212997313043930457233443989607515781934543742205827667698714830469720303724099098224282847723619611047910966945093238429049672898715241095312204330684485433364205908125866500126050552245163102494943055901169544383128319746280737592121567205216206114100871829880808952644479346668788807760545318289041853957197725999322281664185003050255799340453202357174153119040516519610484737336531093014354107001431470283230745989966169090791383330302164879393206353377414159152055092230903777098675000085783609647008592467430682676693307304794101300894995602530458021206873989359633499636011134658111309852426502930034753848868285912558944687943198486771877020060513432073136001060594525091801430128887556276702155972532309451591047335413712519745792694592613782540087764282857044632550625513331578990190348088065061974106242648583903593379909604286538705926251395579532792629987130628945693165593608121373960696387584129322322655851371327932831773016423249276076993264739429169526632190603473649545275517717918462588636012916284367399893953073808374036570017726248451962008238790500588185789851009491197083250927197005275544865151834717545152788282844345116051096730695523991380238710351206155956753361610554124939830068622147232366738015315249219144894256326627685290529176484276519804796429677920652809772290096569409605106991642081144302275121796631487343741541390722711387844052198638904385181380673632773273264334876336055618663916458004934871907411205752171999958522885199100486640841162209865954824515985647100521384219684435423175521637336519643842526200387507128213384417666486196658494945329336731426187596183259674968117166085879949572960492559044387630500298706512297588276409662381056926014038867946865584747762683025786885823933866378873039320129864373887419752436820097223138801768603532345187764308008667306310298419965439811293067897423415897568943364757411217413243582153813134131395807152337882502700369337810482527481789225614536701258044309768194051217646467020557222553848216033515771386278857657252880814909436341250937331475875304661759854123973453096961344366699955355727790480539813938609683150265539728856669707577582701118940384585029529770303705705472049239006420512054238810129483827093849355653671357841382381478793813593991171897059841267914173013467630554904618199521285070611064986455652120361357063581145326785926673872791391779943697245108122871183012360054182661283806572824184113150270751133092119488279569289998518051594610035743805169591486523488988278735233250256688000155949043008540207375275726192710848811632671439143299562761877694313062505734031828631212324032693319910380783556438402914112653052817034756223237329278870351752573934355409397421615058277660238105114410693664178037207943464375129426217294479408230895657659384278762964175770175788156583559450501311440782064675372328811367032660583492845266572138682200805228763379481376309907946853192867743462753319641286426643013240148202144533576547273841459438731702127200330915711337753067923995594247359685886434391459298887988283177350574036068880772162979657650768691819314060940860727324208799397416722165729466538849074289458413145622212823895673562872080723967263856907247495874747121255695961295360998951279781807155062255245127561858420814048907601225483608868418375019190551419838051858924372516193069550851774125022887425873490187305438339042777833153408594650070040327678472826931496595138325256411128042974933137201915994637116568878262787312684172798315296245481881922747408819781677150304462295097414078193724505665360082668279003060179012302348218887095324194469569243508432035840378206917711661497275156736392989960431886220609556392325641923117626083372356018799247347153360124314400583315198946149712448104139316406981149443539588055970766336808374676726630217561027429272287222856501211089706560135201955273783525291693502510059047402636376356356290008921461246017047296722175891743424436358973454551786543616948958096910206327347671942761132943490761670214167842290290261144245859339922573914662469578449354173699264971007324070843612034646271011779966763293570378894754076698216975589705813438507179911224473269118539682582874574861092223976050174464460625514116425034838323131697131964031072289981171433392720686131639563998672862461791592645525406390912491855977248226836873721134463030546713569731759874507996765894661876649200048854516456671024746394941826775158951781422388160348204027174120683077194141842237503436270578772159384284435177462843305556760841477723054255308444752024548198249683716229957259745444305938991339795054782761653686526528957649806177750739405803583605093602959186015771399316199964644334978955218889176189759266290969840373362889722809586618274859071110871026071302679266108183333354615883019047592076594530554113449590570776632528172919842330294472794623529113468337811048574122720249679592001437361922826733839664594464628943246906774701846222368667534797362507181535148625646913220083192670515309780296229109233777442600708752814764959255269628155738274403773171621308980521662550343545426664758354456567242727123481933393800906653040203480045375589097268543629469511041460147244223064285105158723396691617954220376974617679890700615706959073186909805850330069480389332508607067382210904551289987180897887080086786183958561007202701762138206171086660168793370803520533851769735980079567640653247345403642704055658547197601161138736865630124817805624600692578896270827825624425973342787139098566698184593951015787849926202280117911669234749708736039894499844968265556775257405113342231128157783986033809567908099789778009805995921238433951017192992122015766835084733206851112974850590872620531027663245192765721033822132006893079963434539836671556891153687607928732963751608703962298178964784543820772597139245368604757975469712065665150066102770501048386139727456087607505038256154216273532603970507036211913470979931876175443000861234437372811461568406152630170629891656730924074251021588223832488923927052065040209243441664853526056009852974358383853503370502837755736927722341429652087380172090867324896381876918252920310437457676598111413337854004140579293274576119759672830542357502429367962643883303779272178861134028639128461456624896105411903628858594348776473141899766194017303163129709931333191724144120818764538257509787095492515644728858872141616623578163344777930851945344706806673072340579544029200225500376533190844714124560661960663529859791450431286574160908562448638750112409101613722698444179398261489404176751231531186606161207263696414668945499968744650001866202232819851936152622138670556566493870470139867632375954539309170188294967530387199058033983340798515388320695338845762963785282892797135494032364439558554901350139783144127949077621403265986097851708588601572740654911476777719886389541252462865880945057823723755464899229363906972927705220880733074543385924323908921716435724142590231602346843708833890716258062372969627507415146594676779679343651667858898335204573235297114392527162988827103408065609180090066740186215145577219598604200786635700497406438587308002568437105607345870948298177215031712762065345731891157126013012848806752262990735571744335108891543016099145284412858365314998073116956985141610335085630325556910717002809513502285812456788795791662938940353378421265972722867198126152455930906160690000709619111534154145640333206723244756672897066586730665557529470684048066978638754059939824239033831662402161413050438076615036443905570257641958575337692419406198298736275531638208021868294068831797427130037610335409532580845565862505844086447689130273994817560404806625462315699991540762474396532220135600863767023107288024640757794372666562114587136154994455040610851206055671850020672513864192239301447943772513385019146571059608243290595340221784233699197007794363514848293360300311135802261894523151130115814350727105848905352287028740005392331803540892750900482879693286801423826371559094984262349655723592071932383963164078576872917218767193133820656259546032645695518162131145593550838046808796079143804592277499283498486081454771754520636465683971144928154064127332875538637552589087695108553402020056236540322188401259507929313716257925092428160690811223354069755496838220622257200909162937707376125143893511735756317188879727706414966872679237058463641470458280011978980505588958108321855462746881054966621458896800844959109601245397931762863492331853750641971182832479193223951340522017612310046786368241142101385417553562408353545600420539354990959552438496552129083263524074193678657769112648205810179410670726289127193620807448117875626092041224298623625489347659248001596146328530276020245136246785387981543653822122257726304458255899758392365449960285554198182382719329168781587398259589858722712195170612897681397410195841735605404553824120576898407795514087902578672473725257202338440601561609257526232849018498276956390580012769980491696435603637228964194033320726538610054478278351862132850056508124531623886423746530778920901636848625149492735027924126831728262569048194311139928319991639345016150970272733076432801879671719350245577667964802630013586983735691550609002197154289349538952182756769628372178176369437707712279431368152081286059352705895691536166824344612647456818994947889792057769213494473978818504707815326385997961043163358807292627945877634435702068825937667962788352427149666502358461517047465386834570056810704479674291069011449473345256894628192265214988161987227201089712008189473138753560188839551676351413446748431133335696453300076179878597718295417210403330202396650392614699278264685443270132181280527559377465434335849561466423249353724160277774320767610586705286795115911899061506839104399788691862883688511071904209073146228902110112838942877706742945971082353420447343034754958968084732039740533572780799187117492181298369921495599689925932532163316871746321742703624095455346804783825041210343735694332146871176555954626968108204741138467804209291217830799438302505682836888190117720462650322150908435947854342755194013133233753287622337351154598363250438818998368004047916053036678041047526276050166451914081647698940890021149175100522856241059493468888605341281669368371944082006399855972780150406737438568043403585936664244787991422101060104385459990494901340454159082590620799001287104165299587915997161990841929660219570519508305322005335527480921795125736575862417190394671005480747050575916982702299322836497720923396247163641807819967101000963014418681060387974829978358640614451753610884653376203268869871712680120646181886701526512987652124089214118487317818459920959606439934528946844038772957525579287508834204560005721741243660385842648357156309907299431169481844154713696961909933616831991945785925601106007292065320352638763755889128287288532238261477841166142245504908435566205373295724986362356826990624960111360623777587493681913428301193888063386383475006149204442194362546819371283940722446577399467321818476072841475955368127079323540571050798993504448929204908197793934842558583786230567382956285623964188494741638714683391450051524382304403921281489882950136702289658854269806622449615814185930947160669415966461362338998261104940434490367290749006726534205868721613777968258487657935758772634265310122456393342664654553133453087498460701403596851554606509123604831052198398945650286238523202777186753242011074950792933603183111459215663281971479175026038515629462911222498301910515177323844536536152163732220109177962562901508746909296575931154244886958349589660083748546939805889152595355015075807686396052905327450076357184256589796983737995471359332767209370574113001110280356536638362741187145063747317865559472909249798143513466586508748094881692591161424178819470804261447482494421720780238084330363064616600347386214409789366496712805746764474442187357444132005909966518769489998768206946649471402772011827778740648625170573941940478073898015381715002857690725124316241578527103375404090872839097040882611021124229280572461427841503939522617191252102015576863683957871901808050522862972451723360942595468863918554096098245048553509040969141840403553925368630481136008028377016255215406772153183159786250659243289427144937833617314073933582492406541265657243360308750018406528176051941750897892744098397070444404659477892316097682896192988675495131074556343164156788282962048445259076277882989774954848027477425143450887920869378157681913663754535599524842191602273851183310063287078006307927442065239697810560944897845484653257175170629251355946375312589899246278016868161397228290880958900084153547657390131738676065822945215120501765696173734843790277448573645811119810743093587466362072672964069982430985720648195945799284895826151693093709782511792527286416366377550432978780040642040658917663275423388933882850259451137353814006221186955010959500661587245632126941560666274180389408683568809193352439165740049170103376588910810889085110154398751791948239178887222792963893507318030136172287834732160413984042662063867558506732661974135217178759973124933044432204900392074585579362710960393847352183212196711496530030271231538511216919407770195041124394008416408795617173057132103210653880786478421162882534595447275963546027665487238242431680499753991052628124722280853048750417686694914050375798812192305678138740241201830068853696217895531271094995934842035173628701470998568414614001941910256965305777428309280683632486181513739899619910929864290273050693361668789839552300334710090481971181380935867197773750483040811169612266714108241244599049078538023341393920070186408838239649868328317924910911353302677428791397090140811336567784764821181808047099735369423409223849024145623244213414879958645528678463124916430887427347155730065006459666924199594431311244145591734465489866511621937639283114914728078746476394942426086845735202094563424524238935174017011861219414613215993368487846390502547599713234653390831612744866213873344132014036624413872023503288700120319688587056622906487836839827906060116436911995377632643223629371765119215115373122966592217170725930418080792912389580614547929192134175968767035207134287003225424397113535178464486574742997651692263043007613413965224597566951372841847298800750935801499645041278100282543720014452110217680138763035833041701032716486524055214314371887477538191397895270724105687960988132886115598391271681570016574483278443173394403625336485138241995990292033205264601588277474435614791135040250775137023256444921443275456843357042218778031145148689512481917226040157414577888210701283593963082532835372858085392055389380029536389258183489722574806998609768158369186420188942765791747965019564952390193554819019847599815346667413489626334177339575688306147285474920963885522173394486007020621157199124632332868783118415752122256714234354594929406202726264510026507074057237401999078219755736627189701764651539137615532805923276643364560103618210054846511159501700229358485386358686163875735425907152985015839022958636602204742184786736086519661952714107884450288070199685821146685091288020652840548495176403876024962375541536002080990545938163193374680738491166418548411134164912093717442507496924263637622007586767118327773851682619639787812671425913872048174885651237775829428402769008914940764760073537962312944185978091279198117610586646081051419147255056193854758507967992319608927822607469745197405891381724970252007836765750372075694394435028617018022727966244992948360181690050072102328353712608552583095032945182407536965915072369400022115924868094675780517421010687634597705903742545299177469328361957101700890859501944814984169513796407005748267452130442615063228347561600616456926696967058079295437702990832598993124504017230120628483158241350600796491871711290114020537521992214843716529137079982279935880519953611333366807791884703707794493242910445324506409144138680043583053295032371054088652865598129339771014704898682163491246435060293755019570022366972611274867138312803553745260400554925822345355024466230499957214627348010494524545254093635390055851084122307842367888750673457179516401744372011297964698910944322609789892193270256191658721335508616449361875432517294702894534247247724438121345920858649499767402315595308518126905337688399853829175676048513661438274043546730071982349865030031547626631167457933012852341004644330303807011416924701365182034681556963476384213279197182475913523522971946006678594490043763702353961162075963480353538796505422526077656006936914358416602446550968602776059984972957684385859452878784657501498776231170709702042660588734143738045245477520794741977900221221217439321524016566640101649269609551719461795295630778986408097831804965997638412244755480532903301042699470573298675852761331177432460611361498283951356623127825615925140537861022402114993169433855894825104842385756084755977871986098422193048035899792817037628514432451869658204592319431767638742388931095545505978123877035844258237986088645618303434127686698353130241087075774839075189540660332665732175902319628185394112734879184877241569557547601076782687596261938371056769983339702344143337360056384427747018371132328003928455873290339050084086180493454380380663371828967677080134241121751352216029588789570138625714603355246855168951980962863301567428436297631114394993527371714955314212515779999740058823949749440500427772027959600910351155116029458402160161825198943506474678953492155875913470188522421073145204384226522239594818368628927369126660236345566325311822746859254710830472237151298530128504907309046378668366293397497628641416120367069888789267347126793378493302291854197780396624461357031511475999356051297376074172278623860127847450655212293386688934426347473233515664928913638747899897219671184243482162143874018254515338011667780006821738990542400223820383756510906940116443057295790848972123963261178574012437685955785391802617454376158774977077595004498002580761286552897362074992619029777369897865104257662480304939505083421465476992474515942866409698141388443609889132831829897177659183697139971426829998047457818365006214665290080356202393030376218474200712000445943398690224200052028937077874196607489565240764752879923312359479857537567640353552827380529834795395280004386241351651610576951757575200092390076981819806149842498155951884983129050322755361490824030577949661912040812781342405290229770499423935470518646292251342339609460211193741383705946824225764320412884348163511915051364127920557285700546468501063463319471655666063879974153711014720812222791468864126034924882542807944379281572806901124928866653231311681495743628655953483230154482650076654106707576900422331279855888322781672483016027126338122879801762206031074686681415981450950532595632581026020156533306883770350501469300864491890630850463734522147859578906687064520479116165226212303356761991834984337079684984713222089746510212789337912382181424970951799427482541453969278607018542280887549172572338261256121407562222924955813445842545266272816841449139642122162918740948543752288000315776589296292180785392313148981550321745195369519565960173973464630846875226937241241774090672188560192878446803808506907236208158765740715812771665381423862863809317473960907780305688469633485568274930725157806980230347624951071822356449657113233001235057099620552622340012504456873804767663025156128817291555252146363993590743417174934543936732986063685314131069345507018068013422219514109450029472789216803933791554749402242887559741563590044543961932737382769313070582782625668908592773458363614955575690590571821367593324476370657991828777256429145614353890733788444482181081715714714161788471583709103430583209757206977236894996787125017474402909308272831177424388454481460354997500492984031823199855593882968144820439592318806047832781321757413989649205887055010810767445505625121585754909934653629373507290892468074106131000242074998215519315707374860350199941880636197975454987676842531063139126569305295603463072071076306260369882119543289177319960334327474722815456960025612076465346441973603761292266579595685231331714525115672935003996731051209644586125287831552336500236355433821274907702878854003069049832518734743569950703925635277662043835343804722664801487120657174215757751180213335466346812200716513725218469454789442443126562791814440552364699898170333008798872885974307154587956599050680742521822582980953297598811599588697563291000791921252695584360254446911884821527423655448915995775104767388828507003456781672279923349987739285006411650318290594217348414372533582646161907831630546849648178990417420036639721039251949298605710301101086355519505805706070849051165816440501676174451624696140863852592094857117684125427110268953609535391863207572914477001301761725143790939446397640437526753330836571839226548411908505227561585821248960647925406937997568400165847677550478058624738873822010480398477683695253653631318444725729662614988563706725877409087208478392837776453130862598257770347162771578438660777119819656910372558421180067731747371566195446311521215158586423168795402118435083220374464276921375691152760494659009723793694919124055797295045716129337475957306984459652649975429340336343048188029942473931353446871723956970135915850022129711073450259966482721168927196929117433655704620141045786355294446875740831920364079909457755121800565259213169479307236517100538318992420031122836078825544931998594107333495589363286976387604216125860883075247437900012627115982484277686108781674956328399454039660100568313811670545193684864575608284670181035975937511677358082810822663430574399494244328835088644620626275756916460457432031812461780193802508004482976501390980535250992145393018142756151460486602721001035667956024660310151653091220905988432347853515084833533103430825178941614096222764048089015517887532053352985667375499214571434229800399627551752186095972559715032540672894269746359694405186943050774691197209710929839006240987809754634801928791350095796109762452390338127056832546927458825371832378347267664190150343534335252228756624786095452813123305784210526373043910221807763887730334312600057890062565161113316362529773245890138594859281170015234186448012800402394920218938036772699543669715901259026179057074889225422478528323398457438542267945821937950170989583067926121444124992866810134717820151189449131939466938346132635973888054108515294780791163880210029427490360642792643312477866913739815168547669467891143728015404853313062939453776345200701819060349730335807051730231865141015418346770995812234168581012693756008634752678193730834382661009040062873761004348377164301307566214049517198988772159521529316921365814627247711994097296344561713448378025976598909568083876431767584649287944913678266417236084299532323769140808026420093901111535564550450962312937072739275840052793180890128736927769538621059233026199564622140623306838799077485138120861607495749613996276159014321438915570829693061840321432456099692917493658580562414099054821398475679168411113939265790775357921717920897234847613808810454456361375022463638915757107941712231421472131979892856386061751387318538505824941221361994594779961199648572960982307796062151392758961980482619517311103909470092263659198532649624423167197703175200248224498664264386722777522525020338909170273882737702593706477455236135591066053909377510927682521040672774787814937358630183799764744898379938011755148048476052660090519222587088819055304712699209057267463316698848576237920989807852695283749064575150303307538461056021766688822060570201559435866504713616471945685400228406500908533311169447637441882151728268588253393045334428184827266039525215422671980402546385730574937310187813657807355801648170816965839088917564890233809216602790935880628281136144599452929476740433341871265906789104496635620856326696430208723638818427014907335501107481314076359891726105132279503798984003512564717046232050652113404224397198691753366566362895101836277581176414666838664506496528494146661528573392522884471029445379538435859959805549986576775109772457667890500092015660148806410973184734646627392600645836771663780924410135145748132657136282160473224524831997725175963829199122983440420747189175450684954111378434980673959444383756210538461236631237749044669591437555099103569703805707628280124910363900088079485909417152269823808462935272808075405274004975572313217477653638868807332695028567765654451676534789818445155858438014282045601332335134411812079482492182497402120944794166342636130324505138361143484932640797554770822156810569795378456200885298062817136376114861702894937034850546699663379167937875148593841787481171793621806781172562986901205244647655557817904111895136733900213278532662299379849390952346000001992487064095422304162289949751670348052471072809289271265256191666919848640609353618967266386280682053159774483192924939622188217946138884421494524190533812693100433344565830677668376961522816864616111887511599824315221956413077202079110659542168842991029058533744858834791850653684619284627592718477543085150054646384818461984452522106378138711908988517416388340267951929751650503444483690358586575664039642925684889694974142898845631247114775313688537156210474116697905906537634435786664051991317878424988217416965269748390477555591036966322433864656091931997967186749545232532048258643815603433244702439570612846163067506913579464068546988912413538109858384376783408017309003356858006458741540363567943902898128092624379731142492549979664605796541549465750740183315868249740137702741622651355224583145411618238831723589696766509976163983515901973221570033911390448544728430121680293877453895040330400252813235654336316228044189958546973383378650604593838503784296079739986022964077684574123939216128043572581758912221828202316256312350313689617108562650212477005856813133615955830661761268431436843596254856191192919355823076311244816335717995295000511303196043745727954603129911426349496939467719513467539113106205467532413221785517172790562331702498926513098659732073720494214863666471013623061218960891305621218176995588837049651854947742648334451840261582192719945962588536170612914560883388581641533911537115257957222129896107490828047592762047976357613636302334852462331984426074533759560969488163741982385366044099845104141114270245190932948009774091152236666303836197972916032402200994895776111660878838878103429745443087932880000782641505249068610442393782711271840626901581370109292639963802113588136456229785407377787199424721524321220110727139627577662200036760558861665579644572315926115406508773543012558418960872005921766902811089031393987987916793524233102066046399339063126031335443935792462243765963025220062830537610385167112014410021946946682826386651158989866661776571797646012921826387773743363139446226219524632261131528512092063745051043965039355633236150138130581376327436510466712109728123197195462900208146842012400696897465183099302538516322789060835653699141501504055276243170902642586883794684673794160333527639559181876401662500951316903412083166014685735571333593624537365972597053728064426365238794638627787232463603667378707268441182929982697968514686535686730507117370144641766482746807150029601927123676028061827814219561767337981082963717535950936287393870832704600018671819705610296495535243462872353204176776539370250462363743727304633953539232528764108844788003554251620572277927514163303171956025908544883077722575795874736304118822621717945085475754435038130785002315880390588413724485009984419071534151857410176462107792968097373534692671797283002171509098355941243861285729667471194939212139550493702607331854894146396859456181750424841216183130611831265822834887997159018322017551976129503036748401475940701505999655378115970558810997858370774414430802962282599337248392007709439829334299723386206006498569823850629869364693235115226171176761527887491867736815551317321910690013845135802777453468928706910636973441731398068872789024762728784946626661662025184281602881189855289232053572894877526115551136696535378181836242668929623242526805768264507942457881070323439076331832410747154658691454871004276791266032919684664811952700572062285650004464021890610200061908217372484545636370796468077758054155796990201686128495622555089075169109552672329041066971231795789257210555693459608310778542506948859980688837299292698939086224051088201951099119214620611691174225040388016751625002204974555977749870339650822574301021205287999629110842553111972835847062328304096686895806903050639614897234019536550815620754654950676998044683450902865984829488487235489754952209928229354065500506051975710534003791774290826746836177854010974432719923998224749687812605020735214725751442656532026951777588285076464530024825182782990821225851698123879116195769878183778577770921148202018977406962886611932039112250596510406783069047452570161311131150035942230716306681979409423034446879847521326555710712506895223572383199671578716031987510911732466946818670150538567227938913653800204147867904701709509245382672002553486921085018500804404692017539719428978997453889080965459762579060161034408699938647397825383737706510613603841036374031285988428840180335552660496073846373188229632493572938651705392409509681419979369507810948965176272890956169523949919622016359455400548966566071710746939775960946338275628404199688939305317849799365914190920998060435975132508554539782989462192544167788345010382113486940966571343810112699920235562477931802321251703380004377881831323573993310431664968276922964423234915370569383961792699454432310839847522132433814034627997744864505456514598837611053922990176481998266641021800026468219894298514799186750379849430002825652572610867659038657469342281531449563283899082705510079629094032885049202786839186213590805238264990144106258152274972748771835318294413814155430086099472296800834452252694241455669725247792073871737939653020618819493261050714800736245563167208156674838627161023842754062026017069453078759061152762827986903866700666566334730946284225497762095658365058893495995939113584591317635603968352129747866297069551751429514550562584904321427580693022376326999538262595895031997765430400576973291272312500495177576306442984594061980501719053715867210241212707419952960186204766714920671449497789409016115429225648993605681368236951513484973542092365758212430107954882771004235892008614039079979649940174022101278762375553498380694788420973623189360425257074443235557583445566374541977367604252945322101346796416873646755452631499431772523718952488677391420673924859011383231714665632332770191066590756296729590859528042843663872210739366884391546572718650480189290903808177771101996488956864324672755845651728254058801222232919454055741433791186020678925732363783356977717681079356314006478296327650018670522206621327536553743832797173819505570709101668877912182806960102779054957076838688228145053129219637611419521194411573091313209540497853511876458784502115314931255573970200717445149345061355253778670252489484518523703577439233016368854317676438875757475313079344448053584224882262510947793344025934145540941833352977238037582534570562655877432630971606355025014611427491208979806267492957790345566413536443033888666031798967574413510874791507376534691348342234164412651529641258933246002300586979395660860959526253012879762249826052013118294127869661093400934098436398606341469919346590699920104697877267516457342673262942091906711557963037257217996681131320296669077506685241690687068309465169493185763931249870844575747025999740054328324625406165679895426599341177133212358701681260353002342346852326914622024953695932145952740113625961921852961195607440627797617132541217328594743749762910833456178202375342854699409802970576727324447756989201590940088048930823782978135179560935379651537512704735698322720299417410459809076463614038609289656266384561865952668181392340810946947531530670143240711990790865117077952148755139402753383046712013377346277847782249895732203351954771395759679356791104300469358735709468713787081602702577401462843065533519643086101422863437645583572533866809915921559017378303546548481445165344994378216155396729185147912835675296783740232003219958595299145801624680788524664300404038500461898819883956156864663828102650687828232789771422675225026273226525717357235330970719960113407045101533637028893551788397952884481297748468777880249851841159527395242513494059665558121225145482983001345341983771935626328109945224970475721433091222837039106828836889563034346291483505346582179722322511757751364006586008745586563429924647295358315840754073926485448936699671779273595022449437109081143876682856528381761534879348114908346712197319452621103454759380021488409601076629304774670592509321532521269107998824078776028242541540783697608664088742065087381017078863357581075686679777433367351061837801308058141803158655315745596681420509491810810254068368710641444079433526079926235516764801548012477153498814768479814577943036221249984070179101235713327198453657407415557877658389963226184122451736945254011685777253544313583050544648555207763464166872533820725907798465375323730597377706102735216578684974111590356251673425815242050992837200017102292234744575579195352466911810011824209059170607590805469457272137980445051791314417004423360540352102986977797895189223735647716126220516355905298980777685411372433875849006279496876790226284821975058149828588669898677143181673947219069899317006937511308248307826752206068979191195859756290194524644939310637053371925029981685168513732721377011037209051768871015605943666969960473024701110974158089542372473185749152963963269547885911847363526894084833863990932080820550816963128291529422180149060319943610021625473927167188856190972718443027306246320602524583606505487734165865207718670996952511870302218337893806722978389812381880414366575607408711602436704785667236812521540350820157261258862083261864333030245210353636471709558597555580247845579906669930710835162761999252051819943991971069352026650152133968696010755041113327866827488297085643744004851814691216832909659746271762479782181941810814185771919334337856739084519308089095689954232893498019908830567460299067181364374942000672294513809333733427165064068351876128853622031790434366746369339641133878235583808841856029978443112426614224383659927803312566829048202456045521346410065976231126209110198407908510879896145954293854131467053520400269180179393694209211354275061611577194180952346553810059642434572597030118259077132594699149241513886076253473905102050285793967686489472534704535148295410891493272724046229540110498171139053581592925060240740655339480235101499834951897179385982737739611973958479497739782189611114162697999269077133167215561092730269677431613817093361663863602757130316786706097907655878836497528504313745870663122323408013615844942811629236948640339342160994171727487471267333959169602128091748206041746472821545547406481230208080098441762114789960730991323461913524887854126955198356192294748303948684374361130979830738383819632796221754508397831629549918132527615693283933170694840245977872912604911790453048161131916519656318684240554910847864950396303363683364660452682244196730502843996668031064514865805717036596477403488490032631295542416565990139119297648653133529320827375869561332087020836812998363874898741223105800189649170461125612783438670908111809122530472859721598126576195090825599748498565184502442678798127275922489566213551195922603916435047297758778047232283793185960914652096701921859100674570453634440932530703902118982129957252826041544163367435811120916702566661100536990798090288046833523412533149033520678194428730376347559292106291002924253406440884201167868646557721546564190656051018623961306663182852313283917548056306451068899770884768359471190909431887943111364329049759390651512226171288807245285975992293175211589644942290510914105598625274777148310303636494436616511839277363110462239173788601031599151168901589362941717705071742946538835891926407599992129243070014547492052597132912940174212060695197582196971360024499272334374200171587342533917344636119961771030311247392202519521597023800183293448860942893800070106673183585650141104195467978160010485959278020083181212051009543763178679107777387095902094959900790737153151981130791362534512706318573706479714793175533455102730231025677512939187182298160952524484833445984993157425919204633649517248634320807544086507544044436010777526860936071404063515609786170549649778458271850803652674244065913752023193940790919320578113355902426880689034650647074104799498227396841453008840817356394837820700597525396439348928986116702751552779947885126247504510599523336295206053316484025571591708494705583897353530958663848630303636179313678289000804339268350090312691823364055217840049054635197835714098295327037981018458791909338873476072514561313452490653624854005156033548670522985207286022449303207640708115268279232751418893203549438860861198872012831580626723231689759392661153610527143351504370682391101385382637373444181749222537094450942582841633607978823494326701341422518175938107039359437015232823279547022243473071637234732733073801378143395521913870828518483672594368927559687747630020724610842193586322261749317100628534648299353709840956878986183210157720672475241873811382470557858585281867134530717005220832595262983870888822469677822712239830772689244922953311105201718840876432671074176938703728780310215146983196645809994623998036800617276099869035588257655906285599598546388697808778199086660587369087187090191925704707303177304507520226013875199364093464405096141445032011238481011788570685689777046463039376680617042569074434241491706896130127051924390415750302613003551351101446706185175339248082451107953369123608300130218021737533961256619035273234407292912075773897895908507014385774239481808008273450817945976911603647752127669095193351360054111882036531841879257971507368593432832158089578369333437220259746020123412288666178796427768712085036730098062930451540839218447187175588439560468788018519052814730144461722117225507799370115122062773049489003110486317529242983728818158886455173715391855182488434041183703820095619259307167643531752512904522464493982359455487742800770048985206478027949024451888024107144602815369735452741638608445488496875732434325778062311187283853983566885822949885752456593206550875066783062761578766884725872293178164233175872229287426162591581167494277568342929428479653915602675792122413314874811116404680843294542137050725499884496555256966706141705061091703567237835658079600995456491520895003127526619178599963651859012814480093319524297230920636001670339393297664263884519546832880183373346142323417906397341984191920968867977554893450794043701935885098592934425283816070779351708243612887942306289985936781261559343353606751965958908979477124542525712859458136707290128673226955029035698034868176354365424298289182268884417136535348265960666482932523688947169333251897790821293129124691913971093465393110138464637505015334892376616194217795183648008480334542239683102256950944594520403725468430824993598117818232427761355189370249023725422590110286924158887504340467241276143282718723490177642742944304294816856157665565536453069705184788193836152059850787984956594201225430672376742899391451199304855552858427997218979513659841430563397923421370309516668057240825278774609619817487861527346233116194190544245816996438486773485378033314780294138447148642973826474830924442398626038724561465792498180773198115162755296808935328974118237526976322268527706263592165541982427889235491605284370366019745045169033589206420314365446608062047087194064084889572304968269986818237014855196255838362932161967028337821865086195048043809497685747135496505399680179294162028379923928029748538834543847074451629116949545423813126099285214075954028720560740035001079353782863153666045766118041522784617748268564405720096382328049626118319498702748994361786748787458856083010461895735053762259450349969228711619914262518127510528933429336630409582082664193134017782982426331173648157343362202890688366610721812329037599832131735131898162336820731792190250531360266291185430702160480868600760606054309281042011564491215094403809116750533243149279790430365531521194283846445030665626982476613158645325260513575017467523079384375898254844145180583065248416352176658965270622016129622883126560981807628473828771283058299295881599250445798428691211893421107992656881939501882338377487569496079890525430531375757062645674456202644883582711028698471765713214223863122451965598667541160377887760522463189677043692925615629456594322134926412049988853689258891053565226957023404086824969206455012234889338808739969293724417985510425231632636260183816746950882592340523765938607785781296095177896932901964001894886394351908425007986100369760457879258909575884620317776949735051198055312550364769399668999903283857599932594426166239629187783859946637737805659842494151995022138761981694594436754280499454937535067024409545647028586527591697886677117685173333297714715155166604802176443227737154385730587285454677047052754619421675311259485730024651056470309820263486539509343799526429315147326970793792519667780285221307499592472880447941896995644333744818607818961532515794593701947889041545053607287535113323316322836584704353249878661304330705612417622281395501772889155383118254297281575317956120841020168882347083110518378286524995091841051630859625969802613717978176817991199541523269038779879207400215486773047096050123007381408222115166435446140688464176850285186724577690481756494789273689335326352095553174016639082099455694752497514323919577606323705091244756864454785356512720429723090974257948261881418040869635311460588215562675778462097044351017846474712207664913180463332037730077736499144389565843076305076884051017407155701176366124987816953290605040113333225689671874815754536577395085209218058531312868389172156315420833792465717020307025036562150854015101460738539792762195711366819561386683522252923615948681762069082852445507288164401942373117109438400047991463493027927652758706594823333368293796137406518067768576570973048699417075016264957461308790959169132209926816311620404877095159865286331670521824690139042643933922765553076424260984906254293216445820805566652497761686488140990087609948892228675642368008151949056580895053714749171951715496731053813200345009840707817169095043769574365040251100544204557314380426006933820739574259186660739701891470668195335173023015524852582824012427834863064662787465485370179842639044421423856704224450399890238351861895573404333423221060034240813942055757838818837749599668213480820363847659313457214219100649173625431557932301918712887940057300089264550889511841162102062573652571042363556119904946334483571127303633568874514573925732722536388352079609860176414256621463945158542351442131159686906771527261316619913369984378990118264729192921126724811663431053699289326261024972523835041157274158631950989170633235066134594783103120776037855182129515343105770280443563490600655171332201169084417557740053423565676971288107323395465454520389698996655813842884049179031044214307073897383859689376308723253708623712798127446555711636413821013726668161243102925926312322677157756521291510739697680679063898083879917802521684534354552237594084260145318466660121693711801606907745694439761820878275695156027727715536080747150570802335935767419941891847155744577078668705987589153227093007208743976207395349796677934927862501593813487066806581652998551159120043160703242258029724501228454407961059060589230863828046968971210533744798428123074537726583183398608025507211981525455065409496630640148044287929713212580830705973315315287523179008672204027541900388529683176594479571781811345985700319045422956515074792101306657891333251328033960396949633265453902282354336098926096926539504780161054079027398034084887305194527258348787140981826962248755276484014743641918667375370012385668737174301293633238907636239425668778163030559149397459857849219026076852153173445698516821619498719812230211870758887316809257641309187802168365003293497482923788785259145626897605163680635541434792169644460587320741772716845349830227306118622702632069487767145827339799767690847719565084041306342073289666955049343226491307184708253135857200487380331417461780042923046204868128803408953631097344586545960039927840146954144619893332271979708178452736737755524326075345600763161492387157606863610309308027227665629546962738817107474075568250760089997442964209998074764150949895161227683592075024685444732471958986750763631319298165349936734685490565056671371233576988107474976795758846994879374488644941266651179431276912912138109585206343810773472047336687932581317751342200801489291720860054338083424626912528010184944955664259190570879582713104495889364727305913645970301503385517961312171428498332027739023803456834632001064037133210866774218732958521198946163224533136635803876608367728906849426083124172769404907970324246856319076524705638557965949406774382343509622328439145867346693520905881816163331092774196603258453329188503461841211014469271967505790340064616072605813827835441443483127996476212747897271661819996887914231978815113738297946780227328711156303937937080062916956760555569783186100744407235123880685854862730426661641357833267269065724621269368031747781827922475817778074357969825332111171506451025786568989367822782174406097176134903814224096292728809042638601729523134694630473633333996527329686288374485877295183652866469236842296163096314141124125833402414484674498765642838587521081567358884788594609052726335349483475441361711824253594948843313255143445281306480848300980564616093622957842007721146927586803013449939543405035680606671773759507006641908189084391271609634247446984933900999448552323512447886950611692065971542410010369481659533673618532505967056959831221628257616279063616222908356759209315196643255988981225822807364743899386097229068507907262502008860293958743740795936748141081693900710938858740937954925725533785334442107628125862152695950877214168009694521559972087448144722888311288965993597293043011081382775463028901397846463208720294924315111345085881936090198905922466571589740480013345147558887983429923145416427571108446585298718071458881351432835097724530882049838652550575814749714806951348235074657105397206236631705415637061087089984123065037464002905535537003619972996192273844488264035196334079940674177343788580441308471107453250676432267161136678367977118788565423534809107268348806940441992824717917374417004022527981880447661207764771239634698019187899624136229401771551121098292747462539343555452763507198092451174223216567140387129067913649541986544575522732395008793967907239754898180359339118768442334475345868984816477443306048215145487392980760687725703140391863593857227832766273810887139490227922749717514824256992198718086475561493630415241196540913321290020336973328935669325770336561249662519992863244683996216294624418969491206344026328102130565171221754105425099495472967211953587967319739931760855634352606573380548859024262859868828904737134978422805999646230372880247989176697834041351505135706791153717683549193798485770877332512339322629989929077860613171518040555872969141199298888308063879105817897899191424831898071228595042981707694641957955185827262410217050612401075625948388676793642397626818600650090685193647632702014322304712070645851583722820903277889585775023172149393275396800368784347241739472504069278381376082056628215849729733157047135510730494106074343009071286344637043796030207674183275649190996676333643082376390626938709452544564762543476816771853607800674725523779068419959539928973929497403065690160229395235274222583459018692681002313106296681637902297503042761462137041696090956167416686800184424720931362348891093625249596878420368183982183083028482351263145001329483176554103376281811426285268457593664504030950762074012057372600423997203691068932683883070828179547474203685781240183698704169178046070551914262319168674533840962143257241405095629475280508514322404511564121019844194773198964740394684094891784803079424981632568197321683769518939523522727930138678118375182861018380480739355955065227227092712927981063453702064949009439328174112173190116289515889096203114974099204470455818312532681220863924743680972703513056356087986824679996036815200455078668416995608827152356317083832805232613961768205999776794906285390190898471262827505529893636397997021526626672212147412708426145305324628181534582266265430347933441099794693962868350404014014619046308809375608678903842257917354138509835565992068935675268298753180281627067360415840395764359507761586580806364718850186028967977093971020220505620419629690059863936675705312722114393273122610183272286565226207553821991210018451735298221212024216029653510980556516906755702499144682079944762988312503473514065911204114131359209511368475153508626216310082393951476893044213176078638946415986488430838207664574494861769150807771360039712311565208867626200393375794959056067327490849119321696621636052827907794254464900187913199709075484642787686681024819164821194475855790631604550832322542088949438064463652925927248916891484026778083892242492454479696832113129385336952250433976487459155280646757240597614431781465113961144715523695976975039926446261897266033372724270940911374993120497126958449353878780563651011096975652101788098388268258815421357157464003646867023008688309353786705054069705588759523660937328239672731544559967400504833164023921291729615095329920654229162194172232888569389112133279247120952929937241334228662573441168305857509025611357769421791871025714836318780206386332377089200950428208032460567952593245410112752497817642929788772016352159007511937231506163665578441068222559655818313978484104917300837342428233206478260671606427418375015264841099398845721239961074954029721830689588855113533712608798683526881642789442320420586660797664082121740186927898627385665637349372973562131622374190941799333756121894114331529703480783324308751007863744407767192317221089592894618354283378428320087477503941436241716659279088237789251642076331517990576747535327747834550550798456088405554245906033627444554279522927316978860080717763904171092848658065943363613963727098404410204572912029477289971246797242190110795582389560068204020324765260991269754085107134360142561666342980439037438834499746766698755135241769634033728201965208700373130322952491979855807565387500619559942239718078204892024117855579776479885559424097762035141184996792285753870552436292051727150387752271745022433473701737811942284810065196011913332809920455023363633962276102384180723047168485195460633953347214904955101498098940261015716696744042929321336378702439137980874679843960178467074886255025466980674751122930322246892461162875412599397053669551823628887229362472819138447970557051298273017342812286256471598724567065736575538640537357026808202609667043744255296665419866143136460398243955750783049084168506672515549713669948725547982832581870626394176840396404903968664368847343758545482744814934902192939437582602868863878476099325320264248661004530444912147149950258205419651542554745380256163009067335988805945126717911863906174197106127751244790046084441835561472201532933247791501990569829766172562934299222517283204807448065192630156268405439689424162592653961084390797558948290891901354711394055270656325702131018646541562209652554771730998834551292855617824759928027565986746395539682215422359735746870806477150430599218573614081325878692022922850726427328656517539841678114473364940433401591346031368462031385083643871842366555536260595601641441362438609552291889791083904718374822756115840614534558962903652967435571063360244302723673077472693242120038419851917756831633686762536936842514987289425941041207843844891123915616806304709048048717129672619361231690939978244410450821262355021563488880354692759216342251892430064250882959812273295843521894678452442818664722189019940524104020917936127113381328521288215308693693533800514674739282547583808918953257308667256993009744361687880469881717756213172228017553094733687105151289156674438642638195397380184076636105063941936930407502875870826552207363875119183852874982377767130871610244400352417482871601061900861060254145033581521674362083903386042359402219923227339379320324054966348859125886357732718583778860722670330483295923098896976211103240415112707492085592136063744202513280179837725739340651065649799302826556027808321467805953782710020874693452660336741789470860366239335849566464760228592296512692531234753591309892372722216323681922318449286891278165804265898454086241389995940878611619344199421467813686878697579062812176650912305284167279469626799146489580029896505639331843862801261243682771327163059627337496824248565956932341007471442002986769293420433446025276568957388967468547252800102106894609458461056760441487959185113573030032600244607660949877387397902881495397948255293546954140389969611184265391002060607875943902026515979182286532451734985446578583023626736202723069780960816052437306778662319515112126443335985406532583610838723583753166464967271432368233953987920825910661856944369917454350021307057214661791355070057092027354738882397211942412600089680743590063575379757968988992327633975057629521700049328887485552357231144763364875869738515406777370722944568994701273099631014383174000619366729750554283901508657361225607879104239512209849930389877648061649056616458044031093446194251360313525263304422231325804084101300638555849311487024126902273187022554035944933198269770092161866301738237543984052309019926126139305682795433395084160012754190796972349856714397523874425577632963480392528123980453785391015643236382422357498559760720046101990973621411110807796621930738032338975631028964669874591559130990224803087600186110389399758185506773928277125533205342745900186207081469414451162299617385995290940161985651214107858778225515953335861977249173961837127614563694709596304864870964158900994006011505065296777815592059454740009781169510342179775491292527721640459909059828649582273829842562455300367346055605595425750501566372643493774549644494727821240321797697322367128382806094958872118132352303246811738443152270740506286758727362434011003906522291221524356272798185947533988802333710470349349920911584566815852566554696100722694289653134710739488912631403916300937775158923149567487256295611133422229498559762159286560170302524414194358938703784178573540751085450924254083734329292076370492240773938652171916917870177001643827735569198371901958173028828115889669247177195830790381720528314974515722839340854235964618532636352938028693640597534886371643196691920925479679073628233259197869148527754727303238162942599609802372668321576327426697402064665782345412154721519795515066170824670690346126817439467177868845250997364875244713794721775805773349771174250455286392074909582295924540058884255439244401890051556196155719200718919660074193863493574016461977391443440790099999006968218792504849208462846868760641242942929084812740948052393700772587958318177541019286248985459485383745476778132485901277268629175071888816976724137198112844368357100968195079676300404525907782416611017717796922917422768181074257801735937806870036299810529533961541411290124724597199347361457318438392931409836027483378669022315713961956758319784102223036221794924043459999176862090036943757785358601239083687535740929297728425566844725260810997835789112423539944859879198562999700474239639387809695864528248875894468429447976238353955353697145389615954457845952554696558545182225204480408279666613978137319519838754310294599289524750912710572938693892316297001801322231513145710155969127694904933864220290836745491378525339341176109963878686705859487944033654915243194849366724907293672917282423655935944508480073340729524770635297242449137343322970711635250447226235800723677428144984973092773582611001597694560471933702069363410585289909883997660460690665154126271937990437830296550283780534526772403259224977103681872562352897203736106471029241466180959813159154519467711607689927977013072616587533598124771275565915668562040207583146351730361397780876068392867966121997122774918029331609232560939544236221861574739830157624032682384582903246262731592582167975011601180823779442595092330683356397447102680578643984450673021482220361292787281407319778241013883439433388032502362685104149659993250884039050716288017319988651480335734340775913154981940766072309527325786592634496862563432032239166036896693583655548234093237235783890923383860250825574339186887919700764819369788590267368502097075168496575042149006053684276922389643948155097407159897393716743144235561567043152265240527421669524803354958480468983447809063430414282865610664871116352197677848767226634281927951492263552495385059880942820297766321085876043332561903459110825360441358882980141063516659010516859066360196485349634159974366584107934801133893008445845235003728176807898249160580847732542389470161177346887362944286749729975900769233233672072880744348962636517500002883243387401293992184571932817830475290474045949142780995146887651080472149872967373677895902924199006569906650152889612302690791323321354289333232214623645189031500784992607566582487373972808249343578174768552511948174273147332524872226167089059580690896693316927257175945683002502571987513093834971750529959926666878507838001579247259735124363793701492209767337914858790501319196297458801399015043168779376168284367279392309346801574437399760220195707257350075927806989970711835902131506845309183642669085485871489391688806121096717574346695289565735958280208617395876987846768009237059495237268830363656766441407963489174638979287486004281485752093586811517129873284510215623915860328778473763677204659750638649451607777180737753963039419024974165770257184336122431196037597536318167914408867687485552489686553384636839896104867251555942281939574316657883333310230908123574211395627706801812917204623899195141675301890746266586770147000944980091272817107518983204618803387102937320066229305723814354948185386879513656509769517677642150585419280912529305517447400423371131321156872357094929697948202525877773551126155503410973998220489889148773798594541947013873051027847168259334125814987865659564943013579153337936152100877091721400945661119063958174307828957691405377118017205435143759485018865722447229903191530794591916355071867519480549510098809401635731116385551281615838164387335803793119296566404465668864489010295907395904149708756121560611247172299346392111826396752046086986778102292674656005189107304864640210413782365250182800893386374019634342620066205144678027062824104230261101390328045073377735523787143273417331464259107584665666490342142245450708837763400123816612462086112641352083893932633648624069479848296276944842275261423505639576451226726981204883144300700270788138866619044094621788594246743941266866346917095530166564945677392953552375540652668930054700998766666646134773961063139613104153313432978175109686900181344338424050087829286573511894365344672466786690302926658104774729116526242540618517985039437514574610993295773079535751373932110369009847281597114860790567121097031310667547072356487711114082653136746612436637304750482444053091485875729976798656455175249348406512623681185961252707062582473049603542004966530939810791114907311229911894521952541609668447962727889341924323839220374163070317234137027845622163599805846085133493069578656587600108049755415908292251302732267224913355759969186289161488371028635156944441387002223507215504542979977760386133810718785677474277083697857923301598812009374553071252923369741608101558152522141750181661187722388490141001665348918785731012164952704626459256181946822137172942319659583277468977313526085657298719940933769459104310039010600702850550119357575113778995432211325362126227845244794478108645356413580132136792503198802753368635671007013310441445574133072125169958221115143794831329955339691972715071314975898290597471762470166068084447546751999112287697930557634533186640773950886446597974111733743201649428494535689400303055964299636823862948776953490575632448640961966535949028490048432728563462509875119954104681413754242098947773601139317134261051282928749947666053570476899597729877737980629369710783320764955416049222119996098121172073586438777382838575458343597334118921646278815045837837312240260070348129743727101252554987926128578220995387073240924507621968233229582319875590100480185676636520620308377607044763913434083035587666926553567350499778925494405990358405261724742201318389450806557546347722591768884801304939338191863686512855770994524720523567473707267765268210820023963602415167019649151577672924707235469927624062246537757536870237191610713628410297685958449399516883880182023913557726650856264242209030745798058889402659117589546075587416454165644369219338616534255453231785630627370829136584883663290728081228054218613517694329568775016191553936722091534541855157916332944220213335509749291844988341579431503610669429769063380287370257777413387596319229577979796303449806276579091930182548361656742086154637007015204442798407143740663751988472568358126894144029473783051056106067491826999109439143381178224170248003704348027217185325939372751331765367617628996492985738250330040445154687292609803295461413301060142703869489375199291290533774182579109071568418260516172238288011051063261321162359171494788920261219634271219835990165417642939300693522471124255301990687199911173881782193676550601482209383417661273250719637138677222697741497274447215588942581635883232198881456528282362821594910157999287887049096056342042921323970617588060108930754898339104652873092801142515277517244703353927668116164778399597943056948310220265217186377122500528275848018965717269183634110715902607255163023739689933924261767015916371420433973377482234107012215584184675840031265315259206162748191628683224230270399075420732798506694974921793089395510852001978813861994862080177907520903519927548296284960291117940843029930567245091325092745680203907999006509835919523784518258930391011937335227306335151454327440559316646652560484708037709882470540573149634208213203416333414612654116626887412112947460797396434874432083701059673313394482088712407680602860403683036434904088472231279352056196427928933295959178350731090390350077239816580673032679625038910846472346827809779691304054054722192291611345768482735964949684460855696203713496477407694328631724840848018686521287624519534215968012773895177889875959148757347274872449867356394444828320271761837743426329198471200740780832256824567365676323774262876379811523356518022871715115182738056961564204363623474292010174325086255281947892788807372486113952609615132646478943920158655498735928168310625306785608192897316967234753954433968351405720124630712178168816094882529803738751045135368009118253407231162317765670060342522094534510583737138076112274858624213102477535601759219066342431722895829240475108910732297083270810532543091978340053472862514524274159391547299995107353699382778415957272240387328200322311082888605893194133021844046787007867679541594029002921203041266462975264570903351852980192919570074621473971617346586796327844089096677655941513351464935115061198898564361250269376083679228835131129104000651907450464108495431890211290924288725498394144141319097271919291548191480120529930833115673972359034829670294103772788251018257182277179183558793567879579893336233172656333589700302183353138271639997662574277699662978073088200420193496027698073855293746597879394609335028753695541780550346865358745082784322239735891679122058357833654593303468471495404413914832388860794159981093441511009712134828432131545773527328074604564486079704340523949933642398379274378858146372147024959886111933667535281534323623574229532219353202338771196254726367115088751063635107041187034563795903070148302624162621504316522486718826682600110419772088319835261102608693959341161875439601999975462017675972259393221012276715780673659217446039946333977064851219050570514093951642266658265004806298726929670402508742019649238403814037502448283106361277023608508434049910429670290625466981623862104104617681585187081854195265879970356968610597926886926423343326032912299952082068302748977107675815116391013567222716772783353601283953612099826697111172354999954423437870145191944395695461353297772581406939470211214114401424324608646174142993539615936169504672958269301653010485463457698762445598113601999347917004946441865992004186983254552508152963740691711032671587003752213376636906900544598665274622889793518579579374507284457473965587973810279763326657402328438034995335656223622316227584253942440513254049256862299969402011343132359835673906061629119369892377408176792244774045903984875028778826453789204636108218909764876891190462852878066625830026532820866530587470259683827221358563858472772433604242022504005124268077454755042693046158661433357750123893638817098087745293233713406517309131031657087449285396629497844712773350274991889590763547154819276272437057945799587731898668589086431804489337701107361891064059312143731597926214392841654704550401062304407516935820938076526606032848759267209057191336812707571112046213374921288495333074482059489143957432547839518540995640716621590856826047331566485008721853061032708243204950792848320212709820925449596995674803553794366352193306004931287818323530822027338302560472183234699404213054248848874908792494609789897637095409703493335163738747766131749729644844584254266278650032270236745197004312213078843801381710134592854841901872894241780062001462607213389692760781704222485100860460997641123224637612346907575397976240161839168848350425385090866813627843760603988578491892813748287764742510691342294332927215147349810062873536678335851980944786826236307501236559010039801412311101785633894856566025714611373260910094263279651332979888354210550455147255209518000068658444484406336781973242493140777078022238588905953689076001278984563774682431601571092418225047417015458575309762853211856835412863916965519700730472360050803055978574108238674967023207107529380972964253981017698662726745099424827932328344077713333959614899678423520726270956715133382020972308776445607966695944995114183469316724618658227232928882717931311332588479210293947421365662159077488148099091895322295882079476253257632794491286941117890854795605496747901588244661928504250254560062773224797929604334214272041871806693617840204371154692414773118286306772587974549422945416802851779564597934964749812922585308002476355565539250545375331080004866339908683582350708142407989728210841586590872704392273448794726001762086947522003198580221323478638230784127739006057594193408805512427075603926426041076481592177410482741503374544917326091977977616872770396600425106238407203705594293182560952615058667513708057024030855345556491039902840059141188199882747639369583866573502185391830494842845048176037815290724574192296027420553935020368142635806073683625335517277405620611147069816498450357671433741943752680180752244965983561844929391268131064661662099006983738433710618662788237977119658542136653694118186286770800860077546767366586094068104794158357995554445572234229468484077151044916965794234433207567644961155993133914244509741775026389189924378911879180409877059208531340043938778010876237495211574084383860652412395279538257444058500726245222468223018520990459588824250125648855993272907837070902526653289218009523424001964255612142935662244597719359163965226665446845764164306577136916934197744654764781023712088590302085167216574092018054980186532601454976840303682869900939796527787618770702886923575122693931770041333533872104890762529686371806429654888590211238575878920914585535929974321518062512423311893605228944764354813617872966829450102523002504810021467097777448181618549751981748803175541838172001159718991770847793848317271672157951632105382594437023189770047738817858184623577150533904933538751269750373412066462281286658669172093814490993770241080013630680896375420436186905723092974659980974278845649046787691168662648159399891072398401554410539930823356110056416578864524287313574174209897709253623266214796537079452878598897377252103308605131407089226564743825983695828722663471509891393474217916571490337590615397082381823855059321650586819650856744091845628454021797561300492485523293765225707822821938827471166706960928231352674547508930475496550078472095260052981044853824638566161788671056970655162993351013795287589895874390558780223157163829637765360770973908822974740363169920996385378483706579045494969521474829201149723733306049057909160532740346558328440432240521998458230905109960456473028191702595633275496004166255667869363903639580436871890355270102478682033066463720320868711386276420819302688790343450537784272276689149086788454610664076181851236101508691524872832059017448041060891091516164754883900428855392683215517634589160579418577152610118510142092267028112664561540445982098357378821159200352961648370526927910501501192962617400558524046478223618019408249472042265360319968885946599165437948402303559880193928264604403224850223966228093763065347108651191257041517328112600444079812978560157429296227098508041464661496693649113729986856125596284242411269263497674170620451755547942189260741269812033237573282413405440811433764931868151288727671244902466230211164035667061147222554673236019156137167505387127948123722253069568851702590547694481939269412342826729222129408562495058734029743253319930077903172907649764682707168499929347326159487973223879121639865712754234401964522157999620044081595411278369235941187084456315872660171557494682649658667839313028159685359904042262045679609658307996547135156203706771828471843163070189152055848547426826389952928587200768401357952257150466200979158199841583916052379763059573430670122474538363305080441738238627705112751817569058953238823292366705025502362996212136218586521741392765753899284552496466500842995330341446395672170617417065865508751994103791658499592165546191637041717777147607367659688445430483381986822129076569119909561912477040445159890248255666512021091770287416622316663028761393707771349900298374692601803673255178474099903921856340526096421477465463511759894375618049422100930182232241561329059576382299562755432933872855596790867413406130427065553081840141855927870446940840924651164773525126959574967040562575554415295030955013747883029335579749584280042781258607803514401140255174071196270788664899741493698122772133837377727827791592716897396175758363481043732265126583037211076125502696652979152598283347855814557272451799615355659572369725167875879760385836934105090544135777122052741443218795625305251126435580637607421229157901881791003230519044494538587695177744740561590210646417253560866111774744760244486572113666832126442625694204533293386078529151628735249860030345188758583356248277339169586735784014093990919439233162728136591850677912752144856445388949413512382889944030552837030669908825899556708746381395352594861286356791695735976679039570297328860813120546935228613458280927473271813653436490460092009944837719464833209229522362342466690840983948901660837398601644482823109411906685200533856036969047384657497271416702913413735980638361335304871007508712348206149165388309927972414127042174507078916450726569279431601636384586689055469818600243459882383207961007679563868969931078890706899932573327657125637262820043118081739056093595461014271408782191864295660565169983508138824031140571145666792656946963948653494236402844646775686674217092464987669810370720922912057991206655508982248171289721914657701639137546898218744981395483026415589042993093906552817536539187784025233834808822663779270524936305166241120248163134231146496172056753733042761189596477639092358761933105364877389850185466394435554726414203578564268829097618431616090254631664113263077413805988766243052667607258685593907096165562528111204344967301186055744848361142153992685487967354142810179069537774013069668935148869913320989940256978565280959687406423689933160025161037649830079943055124975574676897416403870214556237568636598259956830378379280441164569229408045142765310923038225923773049275811583256044171421077384598321443268400102181773481815294268682590443458490670256407940719248249343802881669239608062433238426431034464514539300160247767526451618706284509923961547184469356943431897881399919920646641030635202148194513691293561636599783017697238999324817795210331035888786268165737543591015050833251717401683537048983988142641665199956843559006378496297217538992801620972245457644542905783488409852411444746370322169916092095909416225031669428564159437633815836784485047295352856392964572461589154528492873285962461360285472015147571440061599046588932889023128138781688152638917767685107954973388154210189084913954915795657108864182013351846654934587147544254077267417477859715836146678080829467147480336087661733292182909628940142934322344054925878933877831529705527338612450361636102412010569765748767755130929836370855037863514134746108860189367803381767656162561485925400090513242660939334416229268937050706425975883160978186244732942356549613639384778235866842706173966357216555098113055352536530422351570712626705020773258868937277710071898517495900611310981913823472156027971883767011307011572456363414963128531998675472247840819940585652173387622487881233022973497776888217156090008353853494357949982388989777668451201885253121743528782062285291960855794542045929270710294688539982469384160064917821569400788991318417798711977299355619508724056957620488376413492555725032135293079517704688703303929294548300280651561372147588195368224556962687679908849100422608443687314355825689083019583208755946166417811036341484218889498415731962648397920574823730982951697954837046662688899448326113645805439097058779705349998236823638159394599726733382176727959793422523853584894406681048438789080373175208917518633813590883547989099249775102689685958251327077532723834373994053449226436062405581019905645203730685396543728851486545227825125765675139865769172892018278645698497296574435112396697051427092437488262089316398228452508539799529704141551241255580152295935863311414081563786789333083235381972350606459484839738320414781973581751899045346749494048612724435315291606733923734440038823247175819026366530576029412370319481179837454840126953165048210865424388772331488321252122557831584434147513976207581322194500914945153847883962991637795551093170462988649112586281472282086147375089553278136442068466313980877581805881452470153738220164267170834500500424475266244471623833450301710824728301619647439640994934878904652893308595636423391432074711312946252085829595663884721592730263624928362478972725451195543536601726535598374256985026558374501100235094932466217392993355127219226297216773331359439702995792709936689451571398951288517297267939620762548463914881363728470547118439167600425694338676492565184230097582733716265045417205754016849294474540384635968690128067796771542447214638346022478866017829804864161063996675872189591715929289207652423782905106980515756703475460852888344945514867888700346612093371363624375989319288897401537105087405103247652864747163243180950525416360277541120316107489888104090631313971961662501168543421857252834445608140596548967159189180532752778541488790053130749627025259594079734634960217350951433228225778384986436861495869288773521714049177304596364140960568029098399908461323025117510511379027756858308852414950009224390299115475197456456997896582427309385106798886928714258098001470761776550830833880861589631829485458179256647663374814819441124673249155059208717269502718824671974444355486472816029969958698600425974743718821727592418593124701606242545296342649396892518239078605784003318101982669720822992861469824239437725785932652024739826893161874808020378571925542696946973501811576184450382800384864133957578540510099802757150180570017138097698520896129018041944951055907977695159657572878020140488632408746479334164395855540912787523509764546785004287110739046627854950825524426257421777598630948949634948929566491849621316061368010977756478094797694843614143804706037696606797735801549636279471329308819670282659357413653427416438756872231523680615684359600346495739103512804637171827573497704426223542222035690622172788693478732576015658734051288004354980403135047388227670125201392634949442621630462771550571629718362548769822269195092786738418446173799682445649060858483900127614216837105520800190267591636138532165264719896373772389721298835204600488260097159473897164759980387940589337624037976829230265500143703433051465142886621333547039937013106919282074843306318735848594589231708164733576142937403529035130636600378178409919092451380607058964489337042534679082769570575823009498141154724340736392051014145630968172649013304235805294298312362769878256821525254096974821907514996247714794382751480872720153320683042411068530079923365137587927642222886362848344127633357194105340393669340721815569453688061532653845106959608045012142678796267010277478561267673320804035522782029128010821830094364702983144432162953562423691574160097830892676051591883041386253342635308192230794269496539699551065175077779308567271339099956872704091719562680748587451612313704096792888208714522239771694247470002359052930062739664273382180859939686578038342641515894490138714778931929651728566613881172449477944435628659218340170662934575938723129138712040286610142732241862083934726222207503273464205855796467843836704880608827183712622727869711002564196780847841508477972882917133645011752625964074966718502547596745776890075651368844088254066942111226973747264578066079595254507808591297056590166472176346735595277092393750057472990684787280005378145651330136796899063277441474485307597170570341594946646057717403831032567958802739730380445868608743971289628613858690125339706191899524123389594624756885995732667686623910426606850185353162340556565134725809072029787887454707330779549809202583887058339853828752484720678373925963961471371993537507513170972650413087608961108116111568166142573697841101268039863427426429775022311367468865659189647274465287327192562048675240639932640172152753107329268171835770944369742321494619427897280391335865444702127353590866342705538206538935828608071371878043648195656006257352647779512433623161368833993093193574118208678873233327560860421852666405234867314522555113248073309776049880496858726925331693422262568988174826838586545194755521851944536471144925294533747669279567359190290859025049655307709664231190684113218257301553713559853586091704125174583903994716641010720577876251121472428980882831943220104274160098857827322191739003235483938805694743818352702738690506449330087665891002947802553364301061570565135523140757515301210178023688274427361613541045652869073052372531609701796230777595219414244453438950170384295872937920099744523440055684007017838976391784568525330801287859977881403444602299015317551043967540087174960946441376663342979108177886241870303147093710377947851524868570705137449652419424253212299873502359679040872851202519342737518894535383787805523972259177280922411679327206383022280580147782146345183093545662066786144941924816456875393478452628646738550543338122997924754085989126224101382152416328277728199709192474176588660987029619067352687801144235593575263913578358167481170761175495851157909200607204031564663102211452837448472159900116152544375653776189406415970002171729309593121025269770545790908756760719122473693166175788357635999041141960497882843669625647883119018798565739054450246439478808927581167145185257728031039727617150672551580336211956822987727751519969191281799657504478542126450163476754324701543933352240679025999714969245735645008191012254486730172540423498711514261090467452305977954317796401608545554886953713438329931622904250396188545771201948471820179152860482383409046802582710625277326194906336925110285343105610191167180227678967333788633818393281312306347237544195298165494959483575228654579773098779611326180353456733516762410842848417656068315068544703310151102614064643614965887652713008428543744302191944454523006360883134267658554484795358885853056005391490366468343519060870388540104098704274482912821094275071185676125475509111455027353517932266706687654870987021782511805906533141724339882245185148160574877870166035941421651208580963451392720320338072396238448207008615226306412502923456828639524475737542315213599300991314112664940504897162965092105292471137279188694504376803134935287013648227150853422685387436504100866433599644271218554518268648681176602590071343573107515765362251636491708271929912165785489289911517051190213052142003866160901597689942118064004426789853791272996839628278387165046968033654669216266756726872025461727873771716811486151399223077360641273195682653026050520631484301284312457555761409114782920327804126601653213829449673936479848796609836989193785463484643652074500771676902771815527229163120915439627210820867639257868647522757230386731493596646877045919655664674148659584055696474231262318148803494990394538987289754279101742588454315616271541947822656883836150591636488079556620387617236622082615063459111243585703700214924115532885415166304916265306499926271922767860412682707286126206329866271047814941440837669071369363821362959105668511201821587415425353305829632184031518996521920513619658513328886826444685940605171986209919101431493389341693180565464543421477905589506837865843891465438740842987723845862598372624309216428070688223185241521293124879074352427064805962496777511021172892953697031532766018939190431539315259412753330856734414976760188764485080161708404583446530713609397664832254894616210116532315298001623275171735631406321653731328856848454927476083301817679477506587406923514083481666702824298889863341318700699819673268842496891893842681274405646460733198943191142433101671894709112384140001484911804163277819644116450380304833120983393224984356059155447706790253942979770676952790992089303760987306662275498049661759038924637051799946130414573198324597009518648380101553146151578714556415945377630922678075107057591945033416254983836812503019626653622504473291270423751712700608774974783603892093097573390981072717716425678740176399657647788517278943215189659816337056493711537536339439828602411251160708473970129912107031373343205983528606776553668608423260656961399538211829074953820810939778628679115115115898708209616157655331193698903251475520911422236725554265042538947844887262395956819347020719575944109826336584696585005479571097757135448030668866915208237467210188385150877112533542043672645779658301622723590821322977015243474463803201729566682360489022973569188440925144191494517566965433414537275270754028008208831134026028443439117869605312386672402137615103544984539706731567684263635334475769217255628707130575305339084781664338192109478344585550047492125425329663000134074647044042722321335343757876147162565860314828772797176539486196789106047999452611860498122052942601494708129332623534627555358512156908266631851015896079673376514129443235525171631225760202804038785127801651709813841741918636613647364700987566156835284125908906851943323470705244154107639007197456068605930306407564777435782197140020672849362460304447687629735836013521473114623960624709404459376567131128286497260118964122489729752626635010711822592817352145090774816178275673136188332117770313443286834613674804426705232942039601232951034903284935044424629802069691786438244061802772812477743177341730821178320245720952456516000244201999863779737132843265949733969334814589950366194840999393142473164614445047458808788321907774824968686774585317582137538975043484534703307751392984155393795989064172130578185625148852813222972823296358000686452984206859474064039115957978270713447651257535991037131773133966763096312871102572559464216221391037732973587282332218599726579796748130061540438792633560301247509007823543237225037640217164731888724458550854133723827107433712753264471256604835166812904501725942412191323436407967654891112286941861625997636587645294656961171478502392317936891886193122257628105886716871349793763998871950513559053462431113535629469690155198929944522529467949537041511900487481854573108564786529650211649549988079433413576051556334017383135474533261216721816278191916545128828412564322517794202576880512840647026887141373029683266313426279413394511859544732755320773409033140513916256487403525186636771368568285957305403313305763290037022420153290583634957101637708392211471417950397148919919234718586283296612898775814763666568660438546881776653455388790703855073864671908959454691639043461500057952247440578892365950404942593249423636159734578523374306672639836390777649576094711190595368009285320721331970819374114508857756464675848806123464968717991012005433944297365266312704372286155889457761429815271819323439197625959765811816500526925324594653669162463302262677130751272636509495580724347387508474360686190634021697264842247292390796403019490637293229141859221693166482161244281370735833466509221694695893890635297263619983198970639055015098326839289601611778038634733194537889817272165662482420573738345981157007893143487942111667321126103154530710922927816675668860715006209114620181340411392441374172514871638371971288777793107702267377870465601695442585608736364476870272884438688343327895251514132404131035837674243908493708197296189197323835765498949402336209072694903838994466783373408940959241992103241060160317914182475759591362149328754227528805563371837488742985710142628121049629267272954544776052162459514236753340437057379576030451680979568679105182057123533122088228487110905430596624566910161454645030935769610361132190205195569215410514669376103537399280383061396881546287654362081074279661298886085630931827811659949161354065929108921169841404749030620262202229121633011049104532606584876321153609215899421523924876829312918337269966609196918557632211015568670098635131093737836498475058656659722004831126975340108750669311915498787750357147837715852799483662424344454142884128686732255911006489106129033215534319829026895291686970722050097687404453129162573549720720974174681169698155212351804460811292113449239317521776371430579544048763004539390323243968885993534023514046415361835770052058053556472709464695313205234173025669291968019655487387134144025074718272528661002026272724184647848435682156092485160175770434208416932007133705328453229255742164046232710431968149181092494903089110589093207590955647500959366164490229639521380772066174836301055768864185538510447378557699500050077462086750726996163137453074004443723450736311350972767380634977393346898219076490728687458866584720223678797380985255572483614047070856302523318336350957815282892018830230143743257749247613587056899613456422054278243838995830935636806904105178239105604058357763434750162206833149970969984366606380494720772095489887705227622100957950007046700036986998567114025690829255482914828926560361430862427758770086266392519433669823180374069444137367275770236973219500749226894728241611231620246372870221477940634588003768484411446581253119667849966080592784137335850921084430641071759039171659849255122457594013273238343472372920981443764454976067693932164093964276439722939365571648332543311189251357171816846551736827395140539936210495781783315608957990162628049867974147297986037339328438139039954334252597261752326870704486577593493611979240843219986061298264481037394117454546880178918274268798777478188625304498876875526999933090193705883516981315528218580496908167350114342704621068003483193672739093054966495939597135175573423253623866375127542754106092400646508197764133556429228743814593018893767997709200880169982229376450142339677331971021219254280256511951084568036758323098391592577399781477102612976744351397418067112063721662291258780933359624096603456977397240908077758611087815789762934473698944782557186413978183222963016063468692580431695310955456963537458728946306863787916752635510216812734487127614539894881601526986872727195493728597577124405487954177384617025891708399402866525747067427481699238532324986823613958539245211254152642909581090702955610573007812387199297874233324225453416684573700871177562632316857523045056654914526041922530917116874503180865483794453745177090277176581107838863318537121578600901885726569984868173718767871513131962204864855585582743947465195376854960297526828961357923969549895781187139497002882540078193862496414789179665086291259740539118206650364710197751229474209689098657195945946349902436889259709864190889787274697710695533699322597645065475794372105737415770264104779240160677263277518627237677013126542848403720405186463571408443517394913637192816987263423285049470902569556252745918186852310430800329574765702840836743902968258698311201573064152479615175358473836048287046647220782123909437567604602027253561998749197531998104362910619039330413484073216220298131013224194069401374072645545753555603103996993700675948585649352295763339372793968327989136925000299290509196491731147325717861876069440604186745458568979061128395633314897731389434669645669598466676190755464865613480546396147522859111718271320566242148846165451695689586087166664361628631447167863444451604711437933767402312954811907487117613226531761772025009367806733065942016750482429217062126757991148796826849810623783185737551626372608934363059096539617473986471288070849971060747145951516310995797521624537243949211596480946774280343879357814072068497557886100316664528846294963549037380036977111900977358811397055857495927695848906135225479325762401739239137868173133435843715785930359666534527876455321140020721969999099930690546754383539411897781812741959232376804869985355179168346022122250100583200705921428465652802978386492051586909507313944702691233320419867620368045195628438804163717378611114364100304198356852945641164692978432279890861634229166641368784410672159140283580922842408048349338741130909816039078789112071415346805751688934227222450139888077237753487045294345127454599028016101457545368115918353040646910671927322451805382557029861748231890317198386072074741197217756680092688685685590720938005068858204371359671370330744842821838413111177353564093143101500974123475166400399335758870731764426102409813189930144024061386999274712685524037163818202351830500287498164642216101754412984941730278027977255261816862425420389761184105756974368180977737621773647861052749042141694459015487280101389642506635699797783782955312720028948246557289501296893314100090758098350947861793726441417927826212491380522389472389738090923938929634748470336674511722679303630990189646631239508267678025494774752435350481311731072446772419429747335508782111911263712313749327912567796158997411880050776723626854102146381547017421636964903674258206618661274661450390502392037553691763175011444187055699950060150419904916483532827915175781384622155774546089138003531657322704677836604701846295953805075018113496062874621419804008464082644189613738960591369757994208180284004283316387781162650063499374093133345530141463073099030863128544251503520926873088763303573975081370756123442260201885620456438943099323293465353274484253066884319957347723889398490610216373069204620836890193071804270575299251041998332685622526810258199059126993098650055618784445486726361561997172155376258311374370666441404044535842831680251154572323568585112392218623742510883179073887700756933381222144237974103792458300920660948649000565993735799105803582286891784061990843320791907776327539381236726896463459285904346742620943327311527872206815618378471395272352162292325115855816283816599011393472683914421075733163447139004927543794117876234087747013292285742576487208983966215060037524114659986304951522590389578193477795190297981614126502395394618264774316831419753766251569638698475783157024260098998566896396727062082389279463411052964389401936470455997006130623960775717611056085161139912205541819914090229469373662859952261986709539609199672432371222584378609172669561464979816331169092758991908166293782588730904885542193514367307183239128816794524010488885169106784550856070330588628337911904412581555418294534585863278111764854302918186273636705898444298392237099892057541766029985045618704729817551106948621509778776357105833888640388928217082254928102597100283761012385866654547306520899682399138371238991397037200142159952392571455907546594248307426681391530241080237191646158086212692165422959841426862029832416870454726486615554935400856028778126679542455202337857787826973697834542538621781825375687566724997635481644256655298033621719286440489231569535873483335109322043008627258506211540539384272456845669067232648486110501477128330783248595505526726886191484303728092213142827568098674732415877049055685231344253521710736145217966517029284412696372715355005770128027446591486610378573992757818600358760311878782750373693263591292041599790610169168426389622259362735694722927801500108410638336882307299445524588002279533963152976294075128270474873181955195931577959467413267523791096500392680007149464515149067728103365827400926488025624683661881577273074305696341669980428099423080075748911895903523338421207588585829314604093485581107599063860225022997756225845202706091431009687812992581342951433688776571809880454660394885892230054120020522630032372469564122833961726526152892004053463018447376872345054715106795790157142113653521335832369593802974196656157233247043617616673047067694913370923430348746057819900054334070560711399538299775472285893544171146333465037429250830970732956928357507607391964210284689865437401968052228998586273402173028592867984933933805697713678741044511239224784080366517036087394065941304873684552311618290148932608972320354978162744533516511302780456827162647587195110095028219474174746798568025924431525808642745119538567949157276350953980551803184221365395151230628769689770683040863925285874977270188432886034524542851350716703479665360867097553418126371898822944057915243396152023652143178839816970979528477738629631724043736055485903890656122887312552686740817560580059570585739772860432281547240121506102244551098434315745705719094652911059907844037992206678517202155502295559233604337042260878476947731215318665070054716517739549768392839719750741905274946320565700603473085674827835067263534977603577889467724996334810053022041135315508131202522218065561696257552790186627223032663538473478893543854412691390523742514581420934824884150060287388246597054473357170518906889548680400818429033348502288473378412145684636219923957253609255336548231960675674724600529436857979550552325813076051487561349049085581122881283937704388754803541573134025127733775553489935047289681758271718023106487282491261108042572811384308882396758913839744157022624547529700927267550624905415020406022363911203566262189391231862403885776815651143919705787609008125417903291163293411753381169949196211880023837490580542055056295733060463075234414369084744133398235509611088678776599172287273837189741153277957987112028492950603144631225578673744546848421453524050035355182808312178684536578829777941413243297956939379219617686018381811569905320690317159730320260394974573293498013312026530140096711922703627223099330266302974743809046075517776921120650094124545720719507972875406440531384250059697988406534787566465155985882860789782332268512341563294844279079635937133585417942691632112334879829905445206560312915017574544484353922473222177469217178315965502471204355478459435763704179481220784453565992540719166419174547241849771441180944240399495397008073463187109817893759251311856876231409774937064321274057612239872315839351901500316759555561470445806581169704680234112007590873905913430689974720349359486913801646987374059844325808910191819032217803290908847761474309237262431669011035363987763534150408093164880013384892241379403550373756679460412744596290112071173537135663642420450596008446787777700574991350131223825179440939161381377838493050851635612369544265126925572772265124098927600230659198807462359075745232204948023585841402212490572888431295445268624647533360027169661514582463538584585287964065098475002224054062705623723661133496204406955402987889899455677169789440807629972197259477516881286814214439471831723840983956777752413472786084920696498115309613139212710364400413223615077701870603037465182912106958302952074674939525234119869029630098518857230267298697634801166241167929896994522376360657719262503225996593257384148642321878289832774813973772696573605528534817710735370287394214310932713029566858061671910030873870621923714175357831047875989424554934095476094822586235991009310554657670817986793544279481834335990908723581188700355644543060037117697216008384627147075647623457088653705121885484210902216714718438223735388243252992470941513780054949173235035247270898589264686630335802965937186746070788025103798955746514185191849313966163625612846527433786132365202551392431460107441198133100410743904807228629495842916430102106051254856909984233277076121030394050539617754246813492610331557562307477781663611375538992959124045594823549161300811665452961822662594282310580108826829151368700035437504836215076899615131444847788508861096641355875835554923610768921811442964744361261927958241075387987054152754018129004181184879812850492758492361754821704242728782936080014147909500093448846553226099664020128918265921179221571152602625276273423681224115823122540825009266244254189290224451383269630303637650112834759381443752094588666214049487464435198313212925230870874366682785287053651515086820920307049728495717863770103860376494129851606653577756998116955557572362703789090398255235530621869962594985027832581710384254306987852738955886282959840881491108434371089709366306279891427658075960466025053401626769582690013861259461507834755105506003789530740109131766998693631359204319080274130780056101741265269886860896731988128111258947864897343714921370207703301770585775125168795726196958021433858435654061909561773512073526000486206548561878360434475352607217328473710930426875140086919168135623359426944306820234485277686364056186214152137884546525821804666721542265396817851691681797108471531701604652163936752249779546190875337879039262584744003230486523931576657187505969728700019789842941854792257880974538172655868763149653821824135774233915931863072854198683679005453945619270806435577713560192430141568725287023715982630834362878318727973829329376336624679789416259381284198552230352743578522292923759871225092861010173572247900774717679382085877466630314236027029724270335693300441375345596070987317004581291650709561235484307102617857227295764732718028665069440624131081162620158898365776280115653320649471229158808822696705609509280873921844007264173997075737364651295804859676574857330216890938445860023170613002165754142713732770088220746620227839669996366772289274306783412068216712629037635113315261926483897886156390977489254761875498847541600815462517877380762027117224737178314767196819177853689161397437716307067212585325644753229561680066779915888642876841856730314976035090158111492041285381234156818525008476655404849861554742890229021572421780917704427063041554370183969314146742865776456733269376731253092928574057040778762034809853008516727150418686398604668465566332801973602432163093092721500598264218951622049373720895930954026298140839412582397966637581938141078157366095350734956610025422489222917081167199820812839713393548790113228081014264069692602368718021976866169658329134430652536414897859070065095214041621620965752682918956976789022390353835492863072102238887972404525034552990561012874844486932506042881131955495322465582616110759810992128552293426779512766364662356082274851244638750682761338056293775457163859956130534472780658249723113638333617494582160002338651333418372893285387464716916729820294277639455827953181114897328892124844401961734981510184858839941405301346424375948040695281964528854944993959754897865784150532563291679057843193223724208834248923362616999403735452994301837376332171714197414014782872530337604279039180298380088749064247003551194016969462407548052331894323531735294543367516059363343821592968946127335725678432255648860549977374268981412747111345968071866255545301075126404165023987665250001798840117285594042197571200666113848960407437160778872054669446489010283069686256273411396523910870870605640788644334348865993134111931868739591026667246264025629625605961784467073335615279075848977264347144021109119405466515208848680372403668384531834748958923946850532138698874900525331507934329760962269298555622392882604469018891860888799961196511970507867084030486576816806952758871181291041306867381306969724051708557996307291905970546279913288182611915907309462595486051894401659060317253900726301585565478246857492500690435293596016514198518298482028019803521986182778150822778595138255539025571579547927703273519215161809882096803802184048137568996451163793244148067662280458112744647457225653664952313709310972638231283954877750990710893644705099718089226379926357897395372223867773701768942930239790751187969999151811619952533401325658745676281702319035565370597769252684810794107366658815178177154240157227727622263692466061342368991560950704809440906696061706606569073176875045720907910085614986842324485842483827182584623194198593877081871193526324680868570659300140464421380176284495684517635252454747472128185092298796558739536950246372498986168264554063280458513409328275856984586135202278376311751732185775699189241583241905419728949705480400111228043212934484732900838153944308237230655600678139063789426461956966237571576595818945555717599965270623076367914881645920527120392574358048858723521209009302350730987576848886254350218473065195111753531017283910551408161877755579022827012248787197921018381265500495505171181469038837051693414485153314071450632827801723582639509531480690182599956444000879010200427326989047356977377122220337013746643541306192013104067893044781447436277763384438274891667034185989489819392491429299867029664372958832387016057938265223242291195453761103739226263078618281436847181801472515446198838066538592123295220350371390391050419846134301832044460542701660064609173999368315608499816789170332339987711765878375625310910806895747862397828575012713927324694310586188532174095169556086838517317694720090891773116644278664403400837500818903301140415764526563400046056302828549118223174324465921248298730057680895878326136301211750008468714820030019811928358687108188119765835937897407193571598362314585438724854008305727249842960025764131157163099792300868121487913624097103394474949672606219229368519349609716250292786609957778160412704646477298231847186363448554530595466681258235147041246050116223134230714910436881718616597443881875419672930773298835476163182920058456623603525355336118736341634637721829529904506244320885388806392548247034150872426769286068217357905882833357235873333554694585100432582575546384684121413718356945937519669024948945601876673850187099587311771392464281410394759233648849372644840101605093473029515759134635513409980635669651040214095740079619270766530716562309383211191757510899855649348739745145982568988356160640545687421926422605288263224516486230027711375820150953276987063003052613457460803943049911146808682465392363730932290222871194294819667364217777309176134572611920789793438921727710643926595033328804086495479142688815693286028900935709006978731904206887895739973171718669931209469125752445338991065070639784972821904313586416253910041621558000638853827627128086863814041975127365205281727064741431777800743436826669750184224502756465266575093851105338565418825206206955255340765522753749091038650055873878092874174488457604492735613093693594449240421093672129190664932831333412365841168180289415528321180758270914298333088291849002792713265798915276379548914824387839424113895341242696538778861869689302419601622217954709953046086717783881835547322340746731118266102829027475096054874196264840694877332038973936278194733286616971140267164364285333581321569917749434149468578133689349894866584278880359266499337108790088524874342600357832300026776360219757866476486322514563602934106345554497484941807929782602642947816037533726881718851567654785867002336041074048394427075876852638700828594737820643649608396799822007589056910500444026131660632704229707158395280948707912501326319200968191985080949396233445456452194860562027848109449912878993273750758919770665874996721356319253283324698322022742733968584055472998777617174300415722045146087545093165517564083451023053905573699422195756282703521575169061355646141125346253726498092864745355517580264844422726610869918751183074942506186854338143450662521061001533034728532528345258600769361768590157889068366115434123952138012091206808803729537769133069480996951658709536403156137310435367716913293981582896078477892343083529246843005483061455478542444618901042354283003517711127859655214981355548556499957304785382791795417868990820723378803393181515644837782526961171276570723047957795165869807746820962550407971695333603452486114898801215693562707935140992804527989722746878242179070273548215648785877728987126420344121331372028658283376392644292794394868317561773906948166366872344713563864544573154431775725732619781692280929821711765724524170671834855851200991255918259078431853493391131840163252324582011970842747117194779674072681401221494692786041780234737917219467926700225509840318358289750607480286986464008565497644465378489974242252421474425548388467923757353168158095071800080362293305066654523045766947739580796344240698788289049327830904854126585193847250739641512162926396639257536166631584376543622719968806208272249306792413583591059410939657269209265371236410988872176590740877065311024092041148078460095170268371585299866972417077316899735975025664619236748622689835491205993938701033548327715053337977987614740229175939790111293197777982998712794583338409927402706984549063999416126755032691855241940681194379443457762675155868930634374482819383009699836501073550698996018343391463046945545061231635996659672398198221558070803003189670893973118609710422318474200014744790059787068799074192886110349337307082649611115513155439807226657966093153764881107489382211124202633418270768535251925216614427023564028858411772092301650670173836692565559950208867199657933650806741467955671713472484710957807177777119607561518521188770020218460170373621466503536671237669823338522142654528732268883813894022120692097772159860061577870535024462237820489695760100820492588000566554239028257539084462446425580602852520996210195755306566121861769457625169015551054283808328181790264373764337934622578285092232884693960186052684644085555488645479467635394685099400171196000737328016372025816997038233459279486202459315954464490307637899147282752212072005085340729387867345368376334364419020725241634636458490573642704709084278771933301926049245184736996116124143372438988176735807721022488221178544241968808210385628461395564996260307842766133407903324685808848023423282198726144282518442672290112171242216633861236681908648148884099045570870219324038412044850576763428922429640616804846463904095722963592626225114698410625468362353274964067212229978633812373904339734733426763274714053496717589479670936446975633148177018894608755260113402354514390995836473733599420598318640374110210507067361130793932788021683248027455778272888109122680994314475696070210865832148005942476968813313866468122181817796926826961844846539621887911707991873618569279775664977105770809981827869952462778253349186199156593150179230229031219344686069108120379583011749561608819915441525484504595720361901697259546684186635323447894439635144548946134477668103935290692270513930047808725450210198897292010780800744406718685930026572433715463791206970589417306588484791310788062443413811881851689634675609340231515781459586822554321069253986431841917948509938016372314107831325740717485019329151799732929423016535063909933192561899114572405383745570979497070312103554868833425845743638263822442833910504728289615119892224664108829162435071146044438077636193732295940755625134771910073542113615712917261505366744492757209418137958883184557565219952304131610090936448469758807491905970360334076264454615891234645050349328592715682982860276018957144688742573295072723970110176049562643075584656916459143586282110780156196514858541232953908713696475835220877906747002000859758747354347827014131639741360979626407389370019417731410847400411737415564158245007876215435302190812819030330394924194612596051985461219514652833502918888421325143223968790736121127291606991423695059718490187202007440708454829927278169610272293327671482559211550225228558446239517232027224189890418505299898022558209359591635649989400094954818790051461110073922074299951455760550648835882059504911546760367381315863617098573155697316947605561283238322583637697735965978971551558488609880743163802298288151149007700019952293180576209669771123457909462069567716493511328759986725006814796209437545799455193833216786996558579101866913492630430261919722643119136539064964172735582385808607325209210160926433916236401433049488704680309833509118125072319557097470890947897075121746746186253739415006045809654961082200002861266352017641393084371142674709622318784787996908643545658350102024175631946988385829503329097964364713979352965092361983922813857530473036108779474131893204928043874115601293282357745634203119266898759855688161734923139797970632756515600509265690130766358121761993418216202613835860134190651110692796001095851570049645122879372362945951822294636776257690726266270970553750254295053858723765306700844964392399794561169309379235934618117943105572209515835483033775747932009347733729987438996863710882031162252206436942721547894188222153165900315018412871322897600268395908172066784993379111648170270948530885764504462042851524197067206700559280826357952014330605041218265240721690882764327267709235679217851867088335203660874084265700190392637449004439795094609088786069738678885274734769007579555420323350657324311123123679296796465523369695484705027308695542769312855666198612839449750996025140838430734716563065598356654947022664156947901555051151504003529256342136460130661929150853302535138197148566169911901484336845438011831162413914729941507833918372023478831453035868470520859075056943062414533566987411002662121735717323515078409707415331935573980370982491036084602376894384324424964870947570265046216390770438776419188739189727653628632805782408307328384844637083238889892312477792511659428890310798273449107524928614701742402441785918805227608697460588507277461982221953450446444424380838710287148474253336028710326941777404411127719905599281876875714113454240879940091329700337315109312900041213413192164022906248525579526748351059238180756882944179377331289029300098921396613196496463466259704892128274598772944699545578538897222653637652461419531652083369178851200285827835849358115883750495018931394494299948558060920460088378063245322212130217796362536362358450061547592988520282557678244667022453791923974331272099915737254775631301349430819377188358866053471388750111624444839280601620677716255556709052183751462369942473570850842155291795982620885380476555185941006407291599276713297566168842644322119302382480876002826958487438858962585220879925303617774337110322366984158852013070320829577012281121532707018771860386972555685005520828933462315245789728961277553049804867031600204364600246337337308915725511869916393097199563243592947583379418197956413655843654301754068651055541849819771635101533373367607122946487074266260726273736923526166468030274462089120838945862179219171879536525210884716228042870926450137605072256922895519528866397323720363735333826254463688874754324549640037284132229714663103061415019829183182626037401537625353127797421973417138340349176493155184404007028897271180052412470337411280668874671131013328317712474887664945708830084987891684105944480402708397870546500869162125510070284575547145805411051650655923682774717608976254823624959128737450234901662527312375536535839757935166836846660513142493569810263250190128273625539770394352513338355739699272971540164847778799899309499462676552906315591943131142412466602583762303717978669152108104116482126653519736187991645920184829736107253579193098006975266718621972748025731967326123581191306479765276000638580956108023177975127517498622668338172733017612041469421634686509706136160757913804889654433095310688193141769032029721947518693944922222332541391572522869911350539100160532348530355959143965261818789534684400454423369323035384237293479510837479772365302676918420346777530530075354814188255951672164254912857639070563377012362567624146129148896402615270692574055715214681712703681408913482963738320190207257296859255892645056387422714955376400279935643576097851134359316993236437648297994232714392778041535921063438096852569856124322643812208676251937928249839485599119435260056646693041758638264379063906841527833442241952417878753208347571737083358826154921283181253661830969784270854936461019047375963834255989776400077014605959703115116936705917938545095340062624319982408498838106847308434689680189959772269694673329954268736657474064037855659806590480895551999705171887513578638308395368570131100662573798888925788967468503385897547861351743505972896682718418672873774125434664296519808415280287827367980485346178577035191319352589177730664370904446482088819129375102730243637569573849082719259290377974447063405106518501265176224886170432325711223908468849214748188401898470075328456947483583811247143983400328704773677404694904734812014522517452020812381834432868012740219184244533999302168778360462551309664857424205966624944709806503960651094241388879392956274732742650791007601335352492674572512289863772473577338907173531166355164882630926988702765635900222072762224444754667552860068620115871333338794848410780091010037519950729746413082769675556877177241575860965769550878696589654709637256995007826754250763241780907203672900579434986065059361054175162597343084217194566114730180262778324363671311577410456600079126613631263406414708870220089903342769041155421066347987507171415485119724374335578778940244568037534746862446300269273805467786860503088807252226178055645126505987260468358531569418331033662022624403754614060081481565321734367213561222309309937423070506289708202482222586992745288900036049847969624123966590784186297690306042434420191194975494293239893235087671166742550723728916184317250519557623458995358882637153810585183731835031194770763039588736883606415358729579872677362318269397840919112246653349877864144444685169070094203247070143946236794309801906626386759558792733244050651623864108890286654347830229602341776656242464118664149855463215967071214833454569903064731696620908794670665612312866796021304150141174255208271317311073800352285980241549359808692317870088132358670728665280803908161998978995530366326502370310781433855786386860365468954607220964306361044095852017406756024733641255786018025366905672139664964207702853835530633004139288332609180397483855203669757777144340716535079840395210289310619552399093498701391080980749357397634614175797239933405020606499923192112518492735604499387603135571364024287159053301726837659128023313296377295102130024432215699127210314524000810358830173593902007306414266159250104392704231485919468716196657966556762034158690333631832467360784393937178147164699321802706882250493176899512218075142756339049188500703545734493485445877390702243241127815277629367337144696273599628558334821443684064558563662665697240387804852081379128347412238328771941281679720024290299199000065989729462727192718696748049386522891574043084875464430592391439940393790990061492372206450646074858481247416855837623708002950808240405936555645594061003107310137425587017406425664799874331141890365259072677190989846285901025813082904327465657501933476779561819579480330839432591888215175452785505229830178583058105287884835000910648554151702175858380843336761606718035984502400357215121019048863381401244141040935168966989122553644100878680190783385805578542528198871538856482003969105814157261609122104141580253646495411653207984744214286307757087993234679866838741542457309169233486602345469537044296194298292269688484831191677354707393504864659140721902686509071451006600446771475609224393682267100054667556933323426029346388508417983107582983037534893395405310807545391816355931049087153245674902204564717516134295242027989953703847337250281870175428178102545826603141955742058578056227168884381539683135812808182771200952974293706786459261664795094392740545397043177524442600855204967139291754310212198822365693863780023136419180269827510434009680103185457046499578984360182688727214631263880747241786773353780439001060997245030241226453371080159906351831807229824122228635713913516827109185849939623216227627579134201497205180096559148722036583820472230746666971373613650724312390493461794848923331927411987597324997498994480423361967265052895960832332138097900510736066193300711122514303465766959522831704054275580679830902420260376851035216162527327711671701062122015720926674835892402578093680122957213612160949519663165119760553725785485668185391683065025371952591436041839552961166940727641950108070218200289913888093980314374964725432142295949514389810653844345648878373972972957490682678133849063958336403275010330281467235197123092444744289274606039296754648223887975017269655175825507254868136642378970422787132368551913492296338415825141377183144253058261086046131286477219530515437190265898881035605949993155572281296776729901998898687559325406701696726982786275827886329312027928309443864355778821068375469148427522095798477964838613255952567615611561983905331477414976217504380964491190546867420385607224104470152881999950723989491952426635974389479096036505243471655108681164190178937798852664561728605551339043554772095997093710575825675771872781589050479723010350553295437982676230955482084719174456252865871018251320675127253477635112698821770347717780273508526673645537591994339781647630810087962153093872977874983394197215903155143249673843804449599929678762305851543938067885680351606473165791647956856479908221375358998007618690234975179633141875407007761473203950807319219267745948252477775773952665906347135516574739003232888762901867244833080184857867189481576119462295935359132538252275923022822865177188540659630318008216365604763435852653073594467753907234992503305486146386330703568909365487649198136097772838485258614842618052681871232462166119866512865809488319578247922516067682413636465872034741954376265183870753861762830893259193326814176519915608169727579898096312053613534179120629909953228469861975022389792378315098846132923002400124382185387704411053749839109381463211401300481728356382325364821984286204396912992322776876003741076945032812302798879979048212764085823773518822883452578119136104300808203840453972339595925271091875045848788783112228913299873368835925044742897215909391079542545079226355418832345969968066191131560952458985505062153011599717483459330001085138406616234871527147116840614253423434197604956148322261865416466843195824025715872230932964449620205857613510910895545837572547113548667027184196694552614690436995267786193588913392655203203263845834587734846394674734112641812030059170075894517672289577491534162748428944583986868561855905857248969933592520219187250383419946955912305058564850701875193257763676268779607521798073624854084228775456614368413703230712919124747097521886797754073335544013758237341849334785809374743814838940161621521220127395192210453858558191550950848756049918251516066133106055070037464113116732581780138176296497783687243211202452743613723453829128717821092838769784033013966007700284675445215885121878159291744932782241688213930248814427259900523600623230118248011052024746334627203115701218418761941051614910714763987142659164559270905053703805494950946232856075550151095713372475251613783956828805629075715301978212462478235655285307391451975492158037776731324559198924704708876911309705303713994114358580667763684287547140093192238543085821750850980247383723775751783893263495895458936028266522266411939646040075155737859322830706855368753205162597481046966918491253232197107216407938499846005480134004086521610003654140560405974609341992347812174252339880845905710921824415662175089297611428627894798024287066733965874563608333216542252439520930372908282824150456381207150094532324063536450696741651542211066159238707568454610851604033220962153990526872812033206286087138807549703096187438217601496577015741465164219082551437390011917747107250988978203366307341558198194596467121822819724304285406085201978600062934285751406923309209744459568738366848735043850857825127064481545263525863500912627441460946288450171447306263961220594180055182434062800532019781561928889177191712035344871883410694722369987270547294244515915037926268406110455699374674053012622093202218218042830768718531977638096555587196778607414317581652789664391494978957652689035249796324168786949886634692373979368094034098662533210798373946819464825653695774907335836947520868345154274967208247073912641761509272438978015842834934776734932933196236573963874134499988425798237849883161998872462742655965920463101267287498161464238651850805752350015879564144046343604651834188370982617817387548135402075446343459454654615522924723962464461790839145324065280661811322569765810529484522898818256819543137109836076603218134560600058979097439354844343851417071294690428726586345227973567977288708804010461205875391943586132634840409788323455060021656630087533558279750627513343142764714048005887944239073101933814841275893120329945374960659808624797331686831204220709435048749592793537315895523600804445417429501898958174419148852936603545176115621266573782626296886432831343780445037446509191083499357096662358259270457891632631969236854185090416971543768242031891401935522591932676492805251759500091236909970139989659731155880102312682072928297108277748934638061762672232694946837998146447077696093117859350484215564753561505637613779343071232133394513067060818943906811414886418492882617663226087343140764338691763184253884791148725107315934538673119773356932355672075589353949109048390974048616863806762540070064522981330542150839917529433036516288063339327426102970892146410471160204931382228762827194115790665523763571116478706959878062695150309032577707490658721187214743208900884194510542577290146156272886370863909647334544426007420586494188304827739334218631479040077706308638713842900541152650452197333035789263302406585649231244232316828447127623670951996191781966270058778923842519163766252470027036706408916989493401160391350924609822403756658297081837666833874845560452858197904083623441315863775105083246739565077758177688056305203975162888023321431468881039040379178436098972487630065427769141691297548187119278636710415251255230841504855152695528223743323367561522279288880427316448683944501405838723090828175680841976258123189880587052954374487986958224500902978714419353824617174997741881986267983114033651982489133824380601784710244959633098142147586384311720759310924426738812294801989712969545284048433098659274622380267415056907390017087526871734609437937701697376644767871139877636256907508649395701486805984855545607713109042456788273709984846254137113987267318904396562252301665105500885617528432522784472406636504876078327330515508260918767593090323535582784857790047153140840622370843041841231595104022448941469597266037620930059558456677207250585192004901634214759708969216060490659259345660268165660373305599003261931860820503747863069736006813276358978084289098101670115412928878203176641564217021618422828939661367192708510144264873237028730490877435493258680478371027618304785766349223059056803883839630508141931405734986023946685263433167678481413869534998726193033865132961713142620812590274938770199840857428867537361974104610803672502289984426752228945043983759691352787278326753901165940455331177514656722667649155829876771334855500061610653058039762130887847096346071674415634718567918988086009763141138647096653897755871465895789875849946961556375243455499737275810429883593276633792729437144307181918418580894950608642500956924605279649357597290228770111112232884488124166972952913955071411764475989721562365214426011943369024714583146858793276729090217648407283188389290817758407126094392991500281423230365204050813653319740354503176143893077882499784506153269849087145390673808742887254633199854851276514839062308085858390449658475384987234788848516532625546129971745055794251056099754941487051322249099488681978060781832012974771220055421008410556261883480626860659919955190971435641700781850614526371800763691414352900767871989216217799289685807825248141787538751764582152380922838357093699198450550313384863597110947028067915869607914787739824160759053147517574255088812015424458909594106219439016705604281133950776037414726258065752822829100709027770920193255890228300656294241451931492208687091651206733805408770312350980759388942136644663184272793765832779748627245899918821863173462705011415484509975593404950922158755714095278788346468559517329887091988593878820898970930915613625393242583155986694932361358280935352327772793023866854160304669903913529935486984224973115823587264099759167853399758787095072804367464408474623204456604558255237916614994027948674661934256525745689888291835693553651057075807180340493642948120203684509827016112585812565126644199777530724712027378493067129656089167809331977218595030328476488368106736023755148456477606914435677323127211801047255391476405850987999951150812609416430607454247037890893449980009144316168170403403381054565834639918423949616515876879428662641669149621816413596480478111247417826979345360140240567219567004963981571829069197857909877188160059529466429357921668010523144939528156638716060469063103043481851125671023213864990543347210108631403820373341523920058027586482486834776251849660297532111793182626430071305697046141440707001931086644392031366762643263576125165697080725180430567750213073318551788541319152055449872722759204007505774741552065498315111952648183059715233558429672301528474278791874903310110383207786830427248465761358638206031842977201926210078914520296035936328723106739515250004445414482512341372398571820018245574546477588321968540344285730851981949660326293654318529545983890057207851559317048397652576653241381727122296327213473126746953237445786667072131200531184045927508494635354733183085931182685365767200749975522862928407588623961761432043955118665995030184651448848596300913526671420818850297891727903342974910152929048781585883045308120413101658716576275179576750799432684807136072820003961613576545882271285873298277618931002358578095618068711924376342060284648008849322940450455169148417213356471117465421891466740471701492121172562763052306236450261799774051852782439962328313974793469890551056242133791356450483121616042840240213413472144116623737876934433175353596263708193347955896927506268196240300035648430221027262258610888593866625676668221718538530280555125409293204882620842942464566551835656429321308176134655207607093271943021736110771007788581647709380378297830922631036043931937730209602307610516604492224220147148317696203837315213868489439016816545298039702511768969252294567469786537901594327517702715266594900300833529405274177950523644790157399441923225625993381619894033425491604813132084618582357590057644897243675609548687313148110514701713665269699011263270939304207849960850997123385681981330297855591939026930096525032613259424026148368457967229699273443724566871908820033754566451781756732959864344765839712175302547620844664289558827646283693574275168232159578149882130756564071437717098540750408634908379476979871037238286229224335065748440787463318240152917911279599693753435062075423828754166598445293939771953461473370501356607402792053485965348667829144557148093594454075070048102439207751664097028195284982107703779437595892599470385730437557029905958980878831882707722734943650818823509585529661627455897583192842919041434195491472244827524097339191869308992819344662688198376018220920269389170513909469709360150286440823154088329423711845278981484227887910230325065707121774572829293830725142830539906221678541832615236697115079635718075786139075068773530905893426708091537899413500190380770483981044275106643856754923670120053926514953114287377602073535465741749315100941469212564306926115329071001393646065607668539413280162201171410988593055696219127819923785113901986441764453320897030130110497689294626937327468017817350109239018883551441524620743420493157455515788958312955260363765933927717036415276293661101428370168212565608016037815162025150651495724113092685001952130560464765849563451042258565394233955632599543709253564739725571863656045569141064830026930498172496673179336881185281261772881205867710442191568060371984740770291017061126043376969201540771016403725079619147593284746554052159093942081080830966191421247702216075390060065363188660527449192592032132828010689087133041997109971387168603110608153689807431612392785285789012123947320535722443742421682534955629789337473979233826319674956744764677204109912869439716779056441074556325764085703551434587089672730399650256184392182437070520420986779364002034529945405888036088499050252598660065793069582583168766306223611739417756985100150684356683326950428905513336579803691425705628604361209264158679404484898957306585329012788616683413715838418708796284627297699157548075936065875993986563783919203749991076419220057112837321212822548419079729080661447731324110368038475136541592532687294047066115488736701730211665081150031270589927753859195065521375185608188472441811639229143885369522145689252246671301784918294383349155138258203805347242403074198967345931541998812285145975759192905550003957781210796284655055603522491615220069902478301992543812387412638784292403685123924578799655017745762896865077543510942381898844357683984701446795454786621227516678520448149323145797780547571767234082635711242231142581354374653532886494940814419288762422754107897781050199327367860977213207230976231991335942990420879427010920233985534366672612511277135433386339429587825167110116773234206913651309980530998701105016525843491485487197100789698040488983991895555585897718895235396098362769583451739167297958465975428348735713971896859330678701731673857371827973939749413566890869004544238987858983691596287164494588438028278130354780114459597206782772751097770263555017609344743131792246552608543218433620700818155095388517067918937412933758669577013772459580605429306940237574299999772292511856695383804731221499862162509185577705997698601127343560460995602791884854097897229113837872442145087265133416342765956467651365814666525159766136636174103348160649399857752043497559323810647219285735551572253509110336683459730799099132077568446269707136131675228007869339980989782253017549290412979211779929850847742478289502019817215640536686936281590101862717972159762872467646170344378460888771518481011735504685817160647310713211062507741535586512605962828259128869457009821889575783545943284405102937525710413410036011973939250693411874914945513363813440946306738255554065422664971905720680022642363665817253498319344616831348885076553336609727840130419741070199089797300213118827527460962636805010736213410401853501566415889801082409469409987488605567950421171278615044273077764460962486905525873869565487449100510992014646575994515100273518626259645858820976639947356904708743881345947732454835923083432930174529162932195619854427967831724887321385059036407487615242541939804023481767578725772788398189648072316575308676139492801463214047441868358582578533250047443472353843660099266968493099008305317502110698261332234670483772501132185302171401216241348594334725797853543911395507535706996522389322932849607719050317576323729161917884441377148304495922988028945246678211597460746439780762601391917549482443731355112682325531176684609941894816132819440379699903880382598034811047054623723037196892444071182612134199611448343030920298386975267808437622942329373952571927507198570715946662337502599928709626989776741750083884843245795291340874802306112764745160339685485654510658933522890644849169029728693554672272499206926123629343697284837756081061646767220597898364638192574473252886718849126238557121977857144360496329607470845215515754655321320874057638735808722769681924168330692070949087879477307421877688021910615704628464449543989381742722398532562044150106886282451707917886282578856432552805364621439802859951403701420819814702470386342971295513928159684278835773915521469745031460077616468229994549291853065850525700591828193497095584660273402179974033386655958022993462490735755754464413350351847710744566895722158923596550415990227197384494250659867247587456847639102287166263352035866428587359867016349943535012161533243526560494332709178643768419995452016744187576133884266654523589448795626022622352417584954667661285087884694711359066500173199428938520285163712900606296259145919647347553023604324548024932968374688009100749976194346148880077503978719080840915628231539053225775174825416044114514408515356804656219225539408919612945209285824531683560877712348009286555511958974998853651820932121101016294345836851132793803018496552142383404240356070810519789911089717434297858521380712276235537056979207395229314188647868224607506347191647691718164164811414864286574166489585840475172735846183028921693556479135040795690963898980016306470663629741160898244223778675243078740958550609292751168676511452395862947102537972865833280699813808149557813840677904619793467063565585709347081115072138270207667906936077141992256128010179073089192660423104478317808829525327534797848792902871877063770937596695667289592152701214775006828282490675139034695803691967522143333697183266240290588376147409217034385268081064037303004549695087794307588072678085791625979997060367610716349848621089455322383735619719821624794247470803063349454130012610749077628736683992661856588061504717819161327422682372101596345851085929157915976523325552813376763548291266118456383433840523497891232490530547042921519866218203103087310771425388655254320446170780275029444554742082808161951724247770478484867897972306886382665456749972367400615252263143018272544454022409270852344949679608688262026134201987205375404474459623086170809551897190723091778205157468429853784655221817551806933936941204890079889300250876942409795854877928068789480397003264007188740323357075648299573781886415715053248553969554636921587296285795311806134713469911203707938165390723050074331295104429731485463380112661855812648878526301837458365211195296350865882778692563892193129796551659562469068791674312497418502570077527052791602381666860398627136781735175543899072121687661055042121037105117269510611345048494153221405940453234198768930026497899782535738088939155351960954587075850044599899764857699338319858167233356202277009487257385009626815563377166403116212080619801962360979350757048233966817053994194533834918980690665218523995624968859954665454953324794869474397138171251943247795083685697691782195072241213662294566093093824933327547671577493154687964316463151357899392349950662646875122762177666011655137172189384045459888942113258080959464789635113430115354484020993566528925946256761077308389464929215228455225796065657183038521985897178776380223430127630116532581641832247463534499905834494511554432895279860166425200500536257890896143366156066829892624063700759850838843811762885282470043606086529300548233462973475117809283362857317944824365389471771985007757598947365536955333310748437927279782011182555723519598939546883289690486463443141386102649662259737724412851005756461890164136947955021051819279427979583550007865554534227464493637019671728211060150250604857509214443661131205055664885693075719773931592335366923605556931718739529710970788440753644345236747552487319002263524028420594485749177295092356879230877127944708081867612656025728085091708340771249402964940776035889708459181968448143532615018007326411132313354666894699255455827353843856562680638748653967225363345865085961438336229738571826070768653108682760188786890017983659672699863499937187951771900944400976643773566370023010910328422355057174814627685747487652967785136365165705238551915409606502056010207567119710021682199656320415132312798243350613321945818126454873973363530515033323976138098718794682078548937812689208562866739376817833256057151488274524196593402911134617570760424492722036837163456817584252702133127316936989684327850603282785004673663493523535858293446415611833925510435130596472545107175901456982466109609225502080024974236051722776872372430766226804235563326654670548618695499011269679015563282226552901645666516138280501455429002333988149778439339640698343980730444264137930418766805714348067063138509575348031374134453828037634228751318330694243126993456029541624722014422192048691790087763711726420370277912014937485291723485163806377688883974377915313631453171532011832810980057948387227156275247222137122550026858637833900326425144377304482061692456346206689233585068893640667222120300407313951631140200315550005100415536547929292271564788431109606954325972145461443933550509587296410137093450156128614704260789358931297995594933736710254347614896231161955538047621992372589914818228416872067480102692182955574080404390961002695687699259350735659091780474658913141011068887847315006551656624113573220296763686982130888720428370951764334742721765111378698428677542778899102112953152391013593986438549872675696865458055541770976514186436730612278303691138099213399801221653930465773105334896602944353542963178046030157194009462226988076626874857542802772824930963527717447562311106774958160504616515650559481466670761675969634221927205989008558122724252584693851663294423133330228117721759733129743098791446658283595910915126279088302830505899433467422919180595137155521343045649860407371018638601923107932935916811597197378516562327292510817275419017676913636720450995303316211172225597174861615087767128981589171110117412308295011989670984299198901982914185317748885058762572590169463174270904080235872842381641955498523726376109676445964136676382708149276031158280708799242627764428783404909408158001123572373754290048586544411150496296179970780048228022646409007524886208349769136973198888136452796506955563722304567657434962984136322250720334907093205992997530366080545286241879392832838658267699236322879972231022448394887114710812059400754005185665968234225662102996394659721207235114501294809012265067179126713477573096516724455841977305572847296016306260081048492022932865114602245095226364857689670753124334149289417200458603742158280498441020113272032196353244606291791203722794658460676523634947005866032989623344294167543091135561510125656282403848732260827838304526605844805562664496888507922276072964822905658555719530939440234489004623819679359357511230100482227740890200797808249736642971357306665926653267947323883320512311634700309136454161206079948961785358346446835634734237758874299299917396061336250187037742387109431801205190346833070369210034137215472402275593141198846894426975663924913921657656208980106167047523197125307096246920248965861268652809425411855582182838237694454635281286109200738387308046951017148935278508805350829804731623105346409930587868589688119420632568543758847143303818361620511570220823676624552171518891429081705883025792780613360473920173756199940997850097586951532560054334544037661595527876537474038995554734377183366717472227960116762527032094124052526775884473598693806995244742194306383187008493404448214062464827665182313820545377943420610236249773979216268191099273364308874182608741314758642026600977255263204959407722931456378518505120786895703712384618883623441738413494857127058869091885005986693024991538328886391616881122723453545772277723224907700481207915642862881821931443049720777653854301101898967667686734545715517970608008165137773767307745246270030636367040822442234091910107071366243465344534831080495209832901676673184493738330279877993648238445512409961760253395527349467775368761234049756384277816787955874155396044680514334197160679354341180147807729332023646777678288250796506520394890759675307040861206493445103928473536729728475399056830796888175838360959914547321634216584097177327582712038978892327315218191569699281643062305412901711117510297641871623275245294618710042321832660489385758220901934751495200082085505196873531646107965092467137154529949148988765440541746666015831583527632415728111889375144236660428256784525767424203437348645908553146977375689508460720238487665906287072735311822256986000704329039419345104951879330868444803901449554092533497129557399472083907246067660802033848860169723182968493412277122725778005290668079625198724883051334500390342144218872092106527371605784201613791853940502296147681682845744581281431700178190784437312624023071186056163567526672941437153414588711714304941938147588142281881295988786102337239939971573341834430710239023786814743697106962661833378357716575424416507411103545467825959720223375021421374500937573350048652325409393156289192628527131228396271747427011442798730186206123138198335505344806254885575292440970173122882198273826640470605394803307126942703009468221956100192200988461661408026940998426481541266048184395333252040003180880783690636678237645149282316189392036129096577388241133458889485805257809874379505509167555365728839146385673924387220146008207455891221805635970946123146220421726846004828724164234237120932701573064524428888265241286532395795059740331578691700913756302732344130790717533153028725875774774063809392023708968090324759704808420921352623387094364411063161730525826929750023965552012382433815804301416522702828023202188077782681741474213189390246475034643624539094315621638925587103843786518157269495166360000280989973441797720123661775537163441409916583986316677026296038052896896128165937872183443343124590544517646628688295268665295188212882274871529223921366970897564894700281401064403524447534042497184110816316744742203095508943766337164413829549316346385545299566211766806355942822640944819726830615439939108883275051201178950666448450403135778318866110415016888280150316126644067060232665866620311400692037584506538804263173075300372353255837962893026756331769625300515652888376075681283353687281203335562237232933396905840357306665488496721775564855892033372655190380814242625006986097513274580387613319206002912152213353519473198923348032475525080092801116180639018050403014873970889217008486579397413966406508379790753092178805519795625414754349387196388356024488030729601355595518943960658541916088610018607977637371699796033614960778994312074199915990009385224284191682410222658914894475966333927580765686917421345329439069261184575229414929965095039810520362484541681346375793730626741521070624481834229390957395838744943247730609899965788978189368307982429486318341229993005051259268163082556286222065932846217370463589310820568884851689319265004865820988950185519368592373656793986414449394142704459484272939447771520973345100671449877514055659237904460445786545742836109181760076069547114062421687734596928183642945397967414359373652926724788768423147696937322911845756910171145537892776639345598851497536591640407896757791360401524237747645438874674687491866756812325180736979327428247507129951864159807213242384547747819509864101833384566130526676032730457260366600246214061863267680723748524156358396827175504983113640528765797521658110377507997146573581567189272349381161514172263860767174737732488497883101390723032548816809046769012900742618081567732103772417167286492912428403893024941469845017179745765241256347865829985916403599821321021601391330283803167972120896218441942288069256251890133538879890949984820594163273695502074137446771478703765802339535029983226714261065596913176285047823801717957287688003700629397226186566260410711465874761932176259813514726835233354080345379716394693911637604435082623789488804606617113221587164568078932673420629861603178852690032016112856083067249178172372893086827908595097710201185361493627597669490527352909842253794898088890202640482905204281776166906272602091054255831219033177002835442204142304010856011323012311194370881195912251510763436455153822566487183468212882582993786387865117210113833323018265224855025261406718403030957851445539205543584347540859179713849441741645066080352067372192238797994794803147650740446279094246568747124797716278434444229008519907126096479198315324973828615672355869518030081195623159838387454950614012223319129053012810018355463919085828987297703419880955294212572942488589097786453762267292922562650109622926033034646105847224275406764561364229905140189676382373512338903645592807428753211224657021451800542805918967998995084542497653014426065955560513403714946815992581009450611892752072347534459453303717853656635503977061413177820159843845212876025457103653004930307975489418169559211417700923438782054921401050441857192938698916424090929775039496591622750178150812826837834642401495586026438070833606680362169128210577422260930588671270388110693976880821973636238958174842275336862193967688218517167804316676042989334810107059221810330583845190971608690021015803472871297274129503752390330202818509732933679352371141646058507682133360289756209055335972453882505186419477486112368665093620248523429053697228284732074932028441577582178882316043524488859505137623231133480720357901947533502830161348093652229413720384972052892893685886091266674346184168472353309077235861570917916365907054961152621233318328990736990283140454367317349202902702928905296399127250961559245621688231735048002238150841929938627173898952591220899308177423260057253103467907520170944562851532768981518618939153602654093310633424715445240980780540661924000022662566077638428966729535331588886811888209217112497600648411836448302114667973146537302705638668012813306037459507267243394536075204440601516846619547071932732979554092142014482992579960454156112596787836124352434992970598419517465312018282844468329856476542999734540523565734615823596464041327678958482967100716318155889914870376946204474032724167352474416210797661368362447831416014171026162514997929481640025560995614123310544074129728393005071450929461192976240066171748743931921442604439437992244813966985594516279598115110444620407315455225222042189801619944007482431325370363183952059171931921069607989382237786986731092463229762822622292748493135069789994947347313923628063406475366646205149056780863987723525303736750052745148885222467335093439867777362868341726796970718621216494949168073937365066982083062768923337622684798304835244250392399602185001529139615077475601851205595005112247807773479601593754878138072353339449304935190022976385764387739075356569477269475180136058201491099983993913964896514087759858084375961681109085005332212888106586055854716640785902892379369262124514562859522598328074960373177536774066486315254430470521821178985534716439322477394133228599051829315228365107386399057269934450002760107673871530841010357813231079246675061652243843636543035740410718500818446294294778507648557742131017132925645393802216545940670666039357646968153019479961076748265311826470725431867025905974644334872558049821524850535607310735800681994603741207644472860497096279983130704121023688191258786069264353435963905979755637103405758872473095504090536958898699613656240584402156818131488934683950832677528577876800422329845495185548216826718540529336516250912191199636707654623669333556289338049612334763988363035382371683095055089511255531457819726025332289873028327499575960499230650247424217046144588161694527493969578310505475140570287817757650119526812466343195244229441289027866898907732327539613958159869436523620540819005039073212916345072434553046953241952805301123768408904066389818098357090439680191606291809543257826604122586105254742063245555227967018305610852041097567412939883643794970875627858656381155793149945295656170758567501115156401604549969719897654850360429029364440514580735623256063169549277347784017830232652978133830064409198924775879826056974739935131166778039423395800066506638404825563739031039329372517424264867536629475973265939742344352506897430257818864585915706993190360372198648283792240277217580563550146341435689371175533321725598322872208940244730470332544181443955089478114527063868155584252171917530346088933645314686174155505929800618267411545196638669071775466809307365382686534928221667075101130108634637853240002602112638788972602084095709491291697326146730495728991910635453264185541345136658490800694206615159187907514045050910502842282945814945990592580766976562258046465060922380870278331263521029886790355841408669773216861681830267268107725918644511535833705803268492040343295254186948073935029453898495060888410485051929246646960254966199194055593066856711268277059565281117321689812769087730994163583603985436358939573957082872224612680173988237794496248959624688903573336452475040748656797454510877874105382812475353611579181935201106166453001265077867135334649902568219358810441220332141824624302425956306396085682472335541905355196318077222225280214213812669641221215066252361778777230513980160173324640511645924768146623031501098376970971275405386861518354531105493594628017668283827627248759080123404061131409464437233771782489743459483986255195966087226466230568917804380255930433337895819816023730407277337104652522285226194335147883912099542239450259894949719696745913080912542029649868249426459449035806735354455468279781890013649284780280621546889385001424960862553450695629443776346636616343210332145141043592722041076496149639477322401566176639988585398649360913793155851063983521033205375887603169361402602808369395619100793686480800701925680441218540125491703251604491497233812112264446339344575511731546817367484615513364881577901684914794710210013260182736519997210670867799880398208422908458625656529078520018538237522058074368566724536684053496764865413075407710794256495894460275075274737254260986105009402969238851060548739472306416359192590177760912590462318067017978280143036918229092263219785463126864975786283694269940496827274171393652041029982824562539639041471777642041461536575902266667957796215078753827089935443039675160167976661280148839549152552172146114123768281940519382643097235945047585342840855615173852492893392501753436168191999279522788760085389914818859205854033483313177242638423149499591514132570613099100190107148642742663576365861082472280617279857295918839574416750131947849305726235178246741252461256466565406929354961413943680392812907881289185561115210084538031349094167643650548523372814005361551427207820272287801811240208847113456896252270155934282102911098837511686764860500082338459150348313490510003534454992948584066800473986426943699665440214579397036825677224980599717816893358786615878218814098937283326989885255521465989378134662231683271115413321357149617487159766748207316911328171184380741701092570615218514232440428207987727621578698344279727624215492607991447372564336663722771205023990397054923728604262610637149427578253115694557675697230560038272042723843705288383490271067973732198783014402821241521373666609668086935096888357474007555902293760422659803652813892822485027773750756935041102175846850866628780615397023296248904855996040710119005495456341709106064289951574111538090592453288294737781879775418280206821621618647095434110938535363149921229913528738690372903372995635272712364087407583402043577362225267145900514268003275112562731506416999848764684482799350395126347509886321804631810728467400013985551226152580723589080957803035796463715424811437234864734541360621980061871830090207621834043086039836666784915926764103205262913625079307607172030268529756617136659658890270708257831961087876259844943457961533045652825944497904817891562608619011992006160626410925609046483501948646147430382170089141743701745450228436271137718209350980116168151782836899944353170228541223272347262589385759600413014783050421146686850897254355012866817529936189166667213054405357106432525021709045654825083740168011424174985776208809532882187451285970456233190721416234266389539308066914828828813161860377437418347913698037219689760844615817298931962593990340407046371747574905545719847543234935513573724693701394298702892248485338416253208514643049444265793653926780292222623935321183968502207531474036562141020436469815949770451551206427794120672479055783418428846429753736845610233834187870027546683350605815463371083611868345947582531306002477065509459924045566618644517469463031151252424332928035492764519491250981124022499913698538121775041896101497613935301435929284171515682400942704931565887957197789722012256559711105077046644551297181326688899383037914855184365950620334697419884382540094716209249252217460546964539984148272910260636499628893141031182467714533099523554383506674867531888807240264486840581519307037607563087087950041029285273438015951886189158215771967411759745034534581913793254399588980090435231696868224056095971783435055025030645810852775198877837204490971221947877584844251987034839418039375897734496285063690225811317134495479430665254384950840995527264416706200351359123760112857455971450275838045532939441364758847833514466150357480494147367090684047987987712760554618745920493753754143689362474508404186575389832474937245677941846379385978799182766352586202588075893183003146216295093497819591987163645819246254323662188495087174693671393952418936010622436360832256934676636913823226712458106545333929334278308614738529486392166556092984336061739619408929655713393038264140562756280151837011504988258433193209610391626564573880212327146299705948327293718453198814822471313645925518924919644901435293591637081290391568087371022227463393300789303123067427123392853716470613144503539402369424367370302592449316142815061820793692100169370358689978030359896277961093512501616492334940725033783090281657178834078578645251094281424824480706720088867641021091066755398948980130904185822546092286487550451974714491014487575102623542148976035282888202413313467838248866260872995500879071055262349362969248811245443715585723922484391508361549755199070608009719931806115653048339238026994792571949025942670085948973075426996616635007875451587993550271523800256458351336565388007835902309759651034321320549271969211214686792558332741191865709062307048546967743936595758088740510865347894260798648910255805659791546151782040293491591981290758308172336073961476350898087159741290159166099522689300449597659293790612479946378745521641370193197911601956857441109078236765227408034869717089549752571224780078423241193082306262133632314550911096408539630530088636674594652075211761905486692461967712482858826425712233090894328535110074369027871490870286119557656303674377024236175381965999172583662841554152325840777824010663489004361133187204985957222541420429154922180797741060793309638841492576361412212783110200994536295302728722585072496873944031962433729852484608783407760826002533063160968106406522922670494963114908181095970910751204222006539984507642658051129480515520396585015724872499367369721479384053206444007692351485584009292472013154509530203508705951447097701268102818701539190282668092207963073281033386238788034911623985347147831465601477107345233178397841384610142670858281435567459943690597727674802121732660003895146023923512315344469524407704551097113431372345807277301117027205495033112260842032893065001656415209536979867078968619838555105504187752920722840056369678711478564608831194370065165923290096110389951046696050749077804868281695024714679106847995420706562626009045132362559749738618217293246225407779195181011549927766417886562858283431726113221720010428797130580959235957005389213781945498717838704015584460538314955154808735888847408467887492533124178152072685228515220684177856901438890806190730877691821546445906175697294555543656353479501383167492519577115172709172479345478555817992596131910850535330667618438602729436424568358160672830168639841910072801336996585697439854334382721357497374959151140346058494556431517665286962228603067060302528015365603906525367419946417725012119977887625814124768417007919082295873991218387071197137971964451206621266311107500733422323941996591058566230854151236388858873371256846729135342837932400043747266452694621277473802000865629361484205482003856190584950645174690462900662400763787875374685811711943120184949529816305991596460715186887772474822417931636358087123508431451359094040468516919713538897291683458643857813444904671623387487362223834743693347606982572761643065963138237511714202095090372698069812355881406558031712545376854277240720594548646957680666896135775391910426746038302172809865726627824002089179527424818411606057925028596081287450652506508315509675384822136626496917874543560433507629959501044332138705207237743383969109680840204517571785552630421051781221279688506148652245398924241182140324708251798889631285400852044373653417869909382290898375310841156267868654262148623822454926789262510817355101190995143752637527917066695292476196215464806690052039547489719644942757237428232081310933362566383176093917702541328404368519975918092646475281702076568069534857122095605158022453938153531412611899898950707089154891542957558415928753545928308474823697689244650180803555543978079052184891673503537599025884477866092088298138109872218189423911133424470482926068234125990824612018733730914171992992128136991935569006588547204191515195566723363050004380702209901325099176728207326205136914256072018879349230355040564742104260067528658249933513588334438739332339116133873849027864834246131453293273305347818474884657705616537921700086120732265441086181753978186920652967018504860272659076875404944820043328926731863647600923916216747868370134538642930949599988620264490926254413055261773597787983532830023515283417243487210671156407165556943216908510287978233553909308406643429574204579706628202801867126111296769208429749094129249420256191434398447811237901011482933910936958038575510300441163504289152706689383231650792987248453278053106298507145537688748043615540199737686069291416675048884926162748068842500917826392013537807170771261251512623099949571571055117247820078126996711426393175938554335183242524073179102844716969073659243159615462415987225272044354369884962449005520695970092171819910922030911365932206734454175771440442389357319627755673549923948485890197389801803261818992034184644718965221172429445118663809981615841096302415075984421318315368700094911922272457033855060734386536026133179337944390715141288236315609417358443338101548813481395840062392687855002296814967433320729223699279822529143129802796980044630307966013209231008497944083402049088999436193093847885816802857611644943926994372654670384059941758740681254413158662191822388008087788976443971145602661781140489918163897280649288142750350212684188359806684933458063429920717545505925310805873586182726127897169091059902336582603119643942055196196204395780854135932432022053959164712555305958578493271753718254402258205125403873279024759177761014574228911431465210451371380564662914533865937304978224095857213888506885620295791635718802367658982512952146219571557435403753125548729387312414240091667230026003468661650038013005908562197745045741548890998987267781604303310650284821760406744127969133905456699236362064654791767688759648617539047492126349787933760333797703108739266401590659037903413121386790232633086147460852860629257289082442199947176540261731355573464482801871596445686249930120096793276857125293806615859381617709998620525089909446185500593911156476145613471088937656297992485153671031646019644532314561148938998874253951362371183139852703420028380691986202826076092078187360318598833513733295983073669270992961253649386420875975500950847836590553412951710291723007785354320282111062600112361974403493337075406257267492457729092377992076431134481258575619448813208315021370657649842824843343702103086309712440201779473725975780016626095542843565363384764265631738789849514750263580163424329245968393604289933013367205881476374220688441248078648980948849229113085241209177196828346283627116185446764140010857019316038047291159220344986026304007026847897368896926601986246861215022934970913070478337836450989621565487221606507194506868203191794428560042812820449026107971599414703824427178648431908921074500453479147593845716843443255266483519180271641644111440235810388838100343699502530423878686265632586320662134774860656359520566631273820115817639753173674130510673662402150179763835331836118729069452019753166013538617076945485433890188513477590251730893810115430148660319446487570797368443947790676319194816479706635574206185068609725220190190589055940520956897622118601469419315499409968035513966382438616857961747307430664597511714637267375648777577200259651560601904350636594874027396927746730424913790900565847784980747399574318299568714496373442907210098753756223676806449921772617393392224264025810992550406197842774575515263225011590992466916313517324113791791468721829415667257011061963375937325414187913418728744707548880365558960645816381182309786092391608317521678415758550494118945218365963677615665963882911437306347044364400374775821562551646314806107890474521689398498448803227369365519055464973888330973214175320986186124609330215075121882757149562348450454016749565047767045789703461858099943331587774499922677616555967521646755260938861947667971417041435074157016535971021747796525415096111466275284008328743789162894205277068083861766129627170400001270253010597295466609522010565822492785244480216810417018688767308402649875241412807987394622255263742160015138523064102143160948836776202954745348800964172145513557585145141325123173405000990448985178709376572540863606152019090868070527149272018423633979036066719657406769488561571533489386269955359709067714408451544896349308702048971188289461209378921564193856196397035194423906166882418717459106443084049317104136047574387277937976346031916440117362268666328631059340076684054751909664799484594645346971228775487895379001272738012916406084709829247277117382620025725871211493561555305102222523243065459112506066466003110700055167338564932748006007409044615295521545337995943781636522082542242945231341416883969847748999416861658407217428532742798358928190793097464420879584787919380617832360995114910503091132831911579552604706215607086803445789521361807776924396607838012110527264711435709632401633917537631064102014733248313191686641351078355303654277484014285642875846786134989417575717015492105923787665832749778338386857736603622128468542311996522549751368241505671563309917057223703875129143909184446852536792299108299432729937886887783782468847622216235703268934546240486162782375615472670465059782894849693948738499915444337140032903200496202509853824598903138538378469056954178874157097610591574560113147260096452250115874939255845440426054823040839999999424661819998626688943017105983314610845190849232531652850495461857012457039046401471067093776958409126065597892878554231985291935594119812445499699413881968974330608091625003479752460766347002898467741373661270446826046237422232314342086791788287566253661500345998276570100517104442580298391701706134289362781536474158802594362886022228978306843474786902844292426514323634944354035013284122437319491447526382200605692394733724811669276026071801684517481657900305595952972422058519791999080489982623831785268225344066796898842082873071837539928308873410450484701209247074031164281904051192778615175450324262013100539571263051353521209689575677223123189988972740040911353461000737551139772215656808706295267899137546931793311394535315740122817381677257596049641353354451038211129195956641501401589810795537367748036789528993623502655748310130577301534738848747515051282330660297109748000469371794932606918283878571699027499004814420040146588309651457451708218401471357382546722055278592690426257399647585704956888262322654610190835055725166616143273835694508765421489304480458815077523324974071815605684510774053165051272912176710088824155237584676771411597892354219375612827144283246029260111314684830522584482599192729330134273795682144723750055982336873337157958938091364043868341467920376446314810712755468929743460327586169736123811782297483671195467426293244200845446301130856110480097441786263248806630626129380551076623910953121568722558036926928878107252820579997783355650749402738457210131025705907866387187539999132881082635009730820374622482655582038997009041555200302089485514355307067184140701202108045284969405303758202884658656205935119787142906252695015247084087554578605156263170839615852485440500671503312581434956967270840596972039979910904348945216441930090802533321115372536509236819150987211823387186868531996306735911621505122283381433134895354253416560564535419149680165714145955843444533462268061362173696741720032840050921982547787892218158524188131562034556167934899245438755719727668614821378211301040639393212620076769895894460334061612995887903916514516110339646419693779769878009628315529217223258474574369903539413252171419247043465118856119518817530235676053282704761856501448630895340954415286044178150116908719112208344712564434987887266459292050602260406017399953761965509664647602834777654874342211584033153858907098163745678452485961641948076338939279563769984664453934203581760071832374783797529377220271317477511250977261520873678851470528806243460937250719764019554995090270366102968083557376153427242965149252050272249105549718476364451136366817096073117052091477488300365532004747798281407174829822916447669198913569205022782396956438077212245854589957781468881676201165163642684214794330769308417033053653379235404012475927145060931366573807580610132506456373495488951510181005708310492255198788550063123628086010674466374382702826098861245718475784692428609531958705299596236518332144724914586622250801987701710794563006994912760842827911772883571224376920697000223846127676304407313916473740040517563049387685956150028611987450716670344284532517460921339516238794939547976211921380331173691144189225868282340015540869496349829990248400702475053564754389910899556775653753425263139216056088081766195966282944462911954074210673360939038850592920250242625970005729508296542634797893659968549436635228506000591984078247196409359195732612814880375773641599500637091488909806810705814938908050283164639633789827917010988968364160500544108598069320071558894302852978796389700142770037866074765910837145869800634037563635068117476230528253681344718417695631071115354923561904675473751056523647671729024014100860550505230149961954617025498513461698528144488430103488298612577365650433271450418968956232318082406417831238554801594586434951378439044046074352788680955413254355670449770725769769844008744282447527183413908168342159009037706567570511822801585879880329832597436856962733842769142952997505038160244795065929238328195539813343841976527869104415688584616745487876812356442004556354106477023900749144104860607293546803388965919400926651634465366922298846211244221036378596689470500179467703480704336248910024663363719268895880496100055218856982760628806125939622084485693029417873672070538240572792026774175220797915232086394610040205036365215475970413294848375452136228974681110557677806326941106903030683231635006756609669578109995768926099221363608731507746899297019625225700978361052004089011551655066140540928933101271386347349095433236336259410241034897656715800557574147146472300006729003814809511951890365228017637827652926673584901864582964424068278670372178089532184425935888915034300996003071189135077634708215291765079778446095892537509782953622922911008334892557963980472356496207182997487204065837472430050866105433210689116108194251883978170857813264119118175159002028170100303030207347226424028918104261003672026431134955362840218359186962558059740863681777485920368429460930914472170889876420466642232927607696225815561805921858723491342205167179303348585739226265315132213972950540636129818440621024830712185720188392900140424380743382723733058664600707743868506003301629739011974003957645286428478303472940019097127791058575021816861236998481556207901603462502886703772364576169723334718921149063820573512494919455496702496510423033551967193790666236768438256065180586364794011659634079531271690747507715116757953196891277503698990174592254648448199854851728612992361668658363381837401898076266458482900716056597073705563800212645822937735643996155780116111359825227180091797638207067978583968600512303933211900293015939290100139002387123451764221133211978822129390753576346376083258351548458666308798033141986677256270786924414186658040482544892208435184659415257233472699492217150679533192934845735008796239124463316621334331040167016454979029207044667044122729266809885971186473583207455671083686436226661214557873107571456755760664694634871873139737788170769693066224569985525231339050483558153917134798897993303524858019439112349366036558132686396386785082023291259422801043807513148628701317077272231706422946251565700245367264447861173764667098328987364361400115460485345397338857389631146441248743130667985054315924638285058324863954488038958774623277408916457729776873685273511753471544054870133006208862105741105508404136057084716867467202032813426641533363824229580929902373133477230336746790813028533001760868459206274970913460405481821939937149346217173131083027311538799643391782250993917984429700145257749020478705364503790454321843802193329622454280968217123116173959793183397903432607518386917996149396638862038313304140995544087442344599219898136060307504009565041795026847838341225260011478774905552994896431967967278913022620399498463445341118386029588657767185734482827466597197372555480883245713172852051847531929893167851048450399385930911454068132480654648889944378036229719695481275302753396435565507627962549400950278889805189451721092411291247155910019677161799398325224920508765068289905505516857895953809542251968803465988853868617290126505610829628514163463128677552090601608877060472928483525676402193501614025291007396980728163017561109682583559669992533649221865870269365304563426581277243621408821342945384936548373396963784831064026232618441884781208967998152347821767025755994689180786901004598318355038495109848350893638642840108177525743614643423158374753882567903684455197174585585088104794061392670089750725172467319517943625977509965402327566310290937228852732822370836240878837292997552061808156692479098123351916460439866258854118880370442503265439729259692822873114456613588804809258923534655605668241793540969778118237108716088399912428539330308748878537604141565088866217913746202966997443820503516374210706511974200512555078259115863153299528137947421833848776931507769994496597339255498666745446865945147996045664132836838587156024484827557285331338818450538629112315778202362937535245152301133746406021826699387141854609173159884735788403189914010445484721961199748466938840285932381299499354000471758418122431304988804728111104874312216844280879892881679612770701192789257295137831008954644974638533794416207009986142214365268920855048121479559888290121416366913478879238806671496805971034112692971200230284286803205810236091380687657812351763515314573913994538800886990212076561605744321625119725661675661312016361203094765935020945855763304795465951028562504376600995105879518602260355453800782931191862300973087596221000777546343261841210901061838791879355550962544104298924088337209411933771739211821056926672291128534612495761214157788397536922312116771411417265100613832003811035384755588739640436259564685215209247970507692280421661232304733807890992036224884315279326331371864929182015904902881397828547214797882407061344039471517607731770073073834934510403409674141295525011723272487928649761944529234551234165797713194588914194360851975154705327056817714724354975838576522926102603601284560776401594520734625862136291908594553713072545320062438239196627025453957115378432201310447859909203684638439633784353051083537000334181562104931914608877437477215900643090169126161957546907582696507727286266190612488349337264946183013716032837498542721741495505672462553712925205107407688359541718735277337153301196637058970448256613332283097059550867884136910797669201718640613036637748831569245439390080444844837765712737225301933947103134941290194284283317448941862286630983309495809538741783644856127735785263271613238862549162347433459032576147158699520539241271093440712004613930436060027559152357854905199406068228984034271836852657642637863804195242766398983726108192850047687720544562919751268622084484777140679200950037667454757100024205261334909388949289557648269345215090794281187541315402205326709227486000831146343030390594670609699951445131681960092492336953908590614428711932575918975911215256420612934988042739032426129159305698556672989507650607222598260893323974548736644947091142870480526462384414034444710552298628879683645807214708569109779226583732724201705164867579742120389407185949134227799682788085001243561471954555408413703782057649037859593326490231342702648339853629291435138916257147339633134345337754696189292732822218836761183881300120224758662325334669654693359111070590426686059394254138570088814654466424767858381987623052083556669912650669938142890723762243288881623006107071876276937486618999445054662238961798640672358094316018710232105843460758230512566125980422224738454658326601017947981167481909363448589136674742831656831008190221464364523131829377958306812215486172487180239025470972170985123167635570814104246815625077221890681646581757316199705449185809667375521664901090281885729153994146062620911281197015760300782139541084369869321462649134487218641731561650180621443627048404689129900517035518798559912499249629969106381911668278246785733808475017302198652680465717162546931822565767440650434146759085581873398384551035162864689235388179902599131692272639914267488799060554697644890830119315975829754425011417689070025749047558470724041542368410567881264458513478857213762118094941452205309864233035503789909763940673918110294231272498820678223996203757962494281936371727510598963471887629511476810459890975987207671719943118702518584338470538099791584388614922533534715177344780179583767525190693488603921537167712651149825106386998001957173451375944523519609163830171889251023378552886890142419938150276777430650283395962537407967147431962372783516148687834599157031765552399112385488905579317035164057905293059894706328497749690114836048086341933997176114686881046552388390437969380937110611723573073081340811807492665226337880654093035353955745092511118375164767185810259020596618107817110081221825645177970718572391071456483054544488274557679460411006610654873367563492469222633599380780242472472341707235972371633657860927816043171409776180193809138974756577574739060530589844570204339899861704174295285400494565923035539165550605049426293703530952078465981771272916660781888463619217232146948063422901212449005043626910584238390823188129925538087424854505479915149760266904462954701465489190728840756655466725562131707496984747917242408974704495549837564962173493343072567410813263118172612782509272926354431636174110000720103569443786364671336044128911126427285725715614236951009134653847709221145846792784673037874295419951639600081235236848784101779160090651911454532654545551160862805616460329317783953257381831661379866314121625121190081290818143223973748085445088588497864757933716763096238599365971183472398104793481868384091245412660908849181069828945852326503339601925482063964906831359646649085815943679601595995937224513111704070546003458192570471336971570196321797884903995404252512492505459076298339000893974826052633441936137549094685670062534547001568197610408454379231056902182283108397610471021592945758986774699143546480070238989156141417947164853236795478271904873923085905014235684781605741843283678826046352849796279255327236110147303334863067518428573206139917769514395334212711774290519832347225272679278548071536320874678622555879929485481626205917654728119561726147612090266945632415784962267911775817354561220473981736733710251056817609241320815943085598888270432701715514264898474010652272927777760268305865659764191988201371711655129978062461199572055342758954855110591856635073508881302791711186545812586783961127719103578736913023906118074437811719968022001631182652368148401396456460648953978059978771701372962246735054385692288360443657558645577910053334546050005556026162013467386003106610883217213358607973713912335060600992746867167349719102796380969217881552420460553716999142247566159276286505126251818275927248117414915614614799502287196533830455102595253756986986450215105078910916742146571140321371231725636743992203842622098969664057951645618008327961970205921966377342543978931969173247952507936457154764737283010681669911572482355627703928392469413729648871235837304546850614143325343022369080758380201261204586365129635222848628449209597027283460339392332571120129036655968750248313385873614069051068555911304864237013358295112850476880402003902151705039736408000726260356951615398741877171448229523020323393518222166846279360442361845370093256291796041748862973490858086864672461418797911475381428661733722332482362611517285284290434624132590845082045651433535991102678723544804146951628792234169727372462399374264158979414851306083479116352849922352188536321048919130612980162174760197354821355653223206260176536025862833354774452877544423913469027992044579690965928472552951652663308790519693450192390879163422341177981098063918083598876657418622923142160814103380977190563409331591901862924358712913690230362048163365162002258557551408289310292292514885352126583252522506622209456697375904814364217364881842673939251182325706987528902440441091829826717982356286057887379910246000316939260709129744544469671227734903913207824983956871975092004659231765948469797905575858337630734824862673287112878469734866407293793337205945126530155616341095694666620664997531178438218574482650716651070866442368158722895101457847395471901156188504775493455608030192370703143294927105560505917992829804517437300356594728924075755975890031431314307863422468605751736096168698322883530925690157257333666235223396602300916646101419978269551136344093518583441581899946056056957022594352519198098357635268806274748892341370896094554778453869630633511782030669271496695591901976899540975552198411185302661232910323017897279007699719785852613987256527550291301037776530406217748769896248524934757487816315009344471560662458040865826826856730171036632603406029364199857351294779253875144741111980547601404162961755782112193688629125440114031650462566126669400768636262735060762010006675327638058805372510826295267179678075081368149083824006792724464681871551323503224771908357099672532390518731272325390121876357764881971348339732992154541060358723387911859448643393017448839246292198473241596118217868860146143589441762136525422127004721977439137409864990203904093382306976776194065864763281101210037270725288183286123336459105113965626888103561507501181675982485582035710276377339635463332665063034133838427409833702612318341322142910862409730828922648178951364985557823529856895675302789973558084385952937726714370560123626530368616112004205331768991660316296511139573239287460835664967494566669671470908071067846880588823509905140803135964915671568298304684641326268702191009183237550416007420207875348317160388407203731932307524142348350071669180598500111917343482081207269869082190825888230768156948186713812625036250876511458724962003319334772254666204620407050550383626743086353216450416412616332696683741660893591044985976993916179417104551228381433137144036878414055448723080175145642857622186945085381080329517947603421344149414824827301291402501348145790248801504658291020020012809533012318842399617885351973854666568728250604131821756583011640653202837869530947840929650227171563814738991551347238410562346338818292225698716548743858479099941586991537759304088715129763393882125817594389558303304453364016736826369887909530424729994238243726621872437299801736141714979015458187592720816701814585975264956322260369792478804200811524642045360237302385323401770996170496941709408350955053911784155351424101809937180895523400249992443027741655797582281659633491784320353365833122349708969454877717323237261268864203570850112514075983380989263907850912271333466058204716601321062314824734316161812227838660217202048110196508722568739747714269175520713778408437583134619669612767303363663907973777502106102266714323266095858338537617905353358771592868191225370902871589414768500091110790453067456314496342942818925071445308490509102248778789393802689200977941992161386463378499619758084432330350552916155221362352934185944815051516600383352818970828920414313341864037856422918191137643398939800978106994612794393822638037218956253709435739181515410826183202559753809896660074063318334304867473554462560578525405514144926810982813796846318429074912774425583084049445799361320873991151574977270999398112435920315829015522100651749763217068582119952203929780801431276256007379587648848593441013415011563815297921287890957568041350564652235922398798504051769588375309773826872623404109466846725065785889652651350778565644831145406119436541336662692829397411153239483667804082593779284133012944009781705941238486806160854320276261381422036048298718811407963596633497629856333457924771814854201414546040456707879907114713510810236124171584032762851568879559448989615637996329647313728357472068795905453539692643650479109485941863179490236120735227340230643305176893646191220749657219916704904010235568795427340071512400552412675388254315330447145187830598452435617333574025935312983181417121751425939952818838394479819334176119105767228721320917784152759163751393697369099988018972562802344143102730926594970512063891745343022390631465533852560479554200804670975717741054081328113780360010698747528465260906293928051260811603215589996306779092330552991042769888249115930309091288744982378252725049036085269529361090351135984757569457992225001325921184646889107293555612000676081425812428714037491900746261122159607055229886238491101033649652098716319578287497988934035715218424865069424353649197506261837953049032519853546787519046711140191093611185776677913041162021430663738710308595823725888122296632642002059506931388781746046840011787738336073907521056458779450247948515746080752077249623036103047796423588074689584882884311491610733166932103123552280401943267108038021321174183913939778356840539802351818461199699749690130541209383362394537094065996305930023883856029505404028686718999158131000438752149665027426594088149337510672510282401647289919535486371017194762266458295826608556749903722506585635919524547885134411315194308107336933204600641318984438076116847720346357827590768899468860681154866189697931853660548175861063142499785598779218208134610841606665586502037035621981063998254008298427695351152047420192811305355528525142978624522660205676944914516308935635388884225286783021510178129453299044067998378600980551421332822242717220773325023096074819495796994263157634528817969981494909884073024029408683422366592198767486988601003297304787747182189938595512023561489494079405878725079388248213680178347035637773336466161495641802585686295555134602964115425488628200493089713977633054505794553888408142934364848192205518935697158481050281659413088923928925911431930183531548904894513007643723577288814745006755978698000523568603464898221586452630084447463704689348867247874269942558370093607775119677897828333629551592247366111808416301344101289390781314317974953268447165144462271681576879773392058737017222580690848323522553400028712650702790415629367049557223793774285944614963077110704872034821065236570968862012766259046284965203078837016911229612560575445419435278757955303266397422510225339351354501097007458987516534955642189158236703290311344305436618506941546753072974680613288999637454544812760999592664993846395443275593656363865769878427401804295429944198991353377749636726121767652959631431890581889372663625428605008826635053756922987037921675546029747734814488612792949246585059190536292568386142732861341756773629637755984954155729085435654604722291830944599005520621099609975655535899196507263083697380106682313273251080812562717755639418252018897174779007165074639641892498568560899660999287350245912833420856005697649642435281273407792372694886754063414302457424668811304055531803700048237160004718484142735209845496676458253979214920439095080643939920781782256131587786329991872599720582257161400378216823981421529149398127489497445968587559694076483498909823198363828128831798369732237418971955007542607620491572733034288779339528273615510168135259298992510299949257975739389934299243867049723002332898735176441901326832399251009945838935754555726006479853593624897274051120776154659639584816661832535477673278370500000644507850172455960132386202479367757464768943102466252778837401918949671158480996226187270468971098434823900300393612686135739860416024278409679701058998909571875878272166263317094104878482625459480736265286508991160318062023371295249584524423103846147879488811570704663224560366786702544660881092903394209099843643495618096065003878870255099063072901129960967720951010804978265529401249722090504613434022023766917400714508572572317515962067995883903335400876958947984986051135413540565488552907523607689590429196750050740807560055001510009109364000260566069326036481325536062627505927521736940581459510035975800961206770529668306434978137135133935295386380746132756735710385203995955299824845551827165411484150189107191377361701137075879158966450814989482146970050263429823363043278657378867384256967648695422143374855983641070634982216225468451549257152026723613670645569088989163168051579411462786922159315887534760863212958011900923860898391674201449866073527855996823029798141020545891359065183125561033100021449438592929101429613815996126627711000167149089493315367774118167662873695700742080083682881304037347162095201817987418763203739880845512456189895076174199180892435245877772798470327797862661131850722007729910125360687451146197867243903688067432927967199957475457648850085238140104911258601705172924143682220680982664165997869307922557118389561965520614519249078885560078094833474349749066346233433708998573781966170925972601525426798874215067202497855712861799554742453487764440987447286581084456465813609569449407272355615903425581234307634205056186841655328713129313819798754863160408358979631224914704587359753748933887214616399380770325684871022933431937397984093412530042109717120300987087974858410995346653276479607572417577936203300005496481728617037029150864870227970967079303057592042844631367753164802867595202375103446231536882905067808282697192400268253697694040774220917616577751914937396046755602363578099722492745319660028537064694253931599285281913906108189034666367690139622436546025518212762785714402185261520145715108534630952836804512914673165277144871532345880528915153922748603357794221054414864144519705213251515030177109234930813372356269040858180934206934185999875860800801114721332802189449866144716217273481055236424169772336926973022419821694644989752540661865156316115877876896379359060752902233096796829867320588506283839839717160510162753023539611858152539612404582890386708550421013645795182421490496649567382149971623007048998107295515748405840115989856481146595929560163881075047142722295130341110790107935541780037197895877207048099397837684959164270149030052338118611310374292367163777559285019602783884547403686527312879646648429763034191464650046390116004390549900763242015523119319195815944514049942127832259483442492701185915144001650351578036248682547254742326878713104525423618939560651631121770452544445656723386368437526652159115954367061669618464284504917247292276585054924300736762143831764860735580706208064905123796808812681260384004332701688568576465209900769419810154350314295836801727672761662012711539938780043232507134566438109505775044964744652132971715292145480325088581458729883124452093929016108140053810595848437673392308858433430504282018247261223613767648550267845555886991833085564460036177895648687199697951104600089721210592836181020050024616695768079177777254169705033741054351294490250737474659693272494084088484059404550490799623818015764981347505938082233076267955612170892082383397544462642578156616565026989367282853954516661572049992516552842591948325543542636300442869148028782255728644244452796746769903034202511717241894079397094029725418490600486933742649417727149579389001016028296865304949412523096670078524953158217034313948958567609402431121932806147601862944379240193658569552144744219688455550214804212576292474191531192113242000782823139183867544664584680972333701392139635066789702722943702789234437337916749987874134777583554106041265051075365176240843909718706736744782277676923981606741014862087228454328020980547274497473363673839360546917792987897689837310545922039378655297824033693222054793639496611259061291591052296975519609962466256010849164272314509928939218355445029991619289882737492524096077207403615578455929338492113283643368254225576428526296860739446685535322248536179125410684723484787000973151854430478011052516933301725688427940083830930104059929710182420492871123688648166938117558395343701470562595746120727644738944701242599655916257888900750342136000025246832737100688474599968338261690786815079674531231047657737512667050486569942161537695588224017092230078339099688265101707626358746892421135344321274615634100221098934836907434470746771256249316068346323285755846011004558205962331389460456022664037202652428526492254673898587386732173294499828367658656710602887695182193316834158338695733462393893022634553164958247428292182338234403309684432496932419689926947046012243458297476933671646441519558471100243609687704690233095631877981472487501601252818508407814602045590475510588496740127540006583153501984942494146016595799496815840941213267551615996137839831155140087977936753048914917317035875107999796740923540434898141170019796502571457432371881411212665617479567243398958234893169244143620442890338988032048093160806999912197975898516480091500044992103905502740203064942690341359752346098462167157057406843483720344478954029018462144354126248623777293441455381938185354660166054914305577417241801996617490429995462883182685290994688589919452033783576432661122196462614934743327639097418469343005977849448984276763437543229135905061932799756440980557934211231125066754728898128775419084633326930332698440376338270568454661124891349378629570104355721438491301926007711154874915763097907668399528255153073041414935589955474506837739272773135485893607342133847336425189201801866196455548736429091182489981498892760690616507246192534611889163830451289290557617672682431281349428468880728569894604328958478353978656435358036303219168250052314660131452985172123299721684947642924946826209387770667530691107663762725155371244739136236592390436805706173345044855643745642378703556668815970309077119075500562998562528192249146620042295075036500647439683216255659837455052431933831990266198076452547366320761406489390221513812629820592106433086551433192007432918929441226331032616995850443412037974768026440662101665279994167492622431478157659806753531705489233410072219867456873475102229013978200852953549716589629196080555297176494500132644389487554357021627220743423603385947646358168728004886651312081134554886078364813560341890384628948567333734179628202762517691627415836246133168339240593502446815950244984849770012911602956140575197075758877070902995636337029450305135682800857458908630066839949473172547837453755959270964781485781198210739888713402857791340561353322495969466413481819707090420433203902907589903764240681292617094000975924545836458426891223646669143093828646500422810292790712114086305491618695594376242503455858344279076445970690457426855137592009439593240909357054278821120085276975635558832586107874920858816092684122065976754725093912852695022335450265492905916521730762526690485854566403600096697076862965610360227983757602209594468733881150486212642452642733489398041272339602242651626353425005979176100265457409032096277433889257635031946019774047790044629167091098693843838814568014097681145344440567327038390417893414507039977875997129620458696856909093276405302675529542844083606229673618024204907711908168872951241762031804952795260266976689366397716560165393745596327805788664390247693036378091371142045327910714262207078166344423815829156971689488281300619903948655726238665088516114067895003650864477567736345831778760231976677676229223572987125811651273053926720333635411697255458431826342254961544375165905730939874259089029856970234247172569555944183778256828025029721392433807921636727631729479125795241034052542993211928395884808777304728467368195108904485931536551988270824969481343818197259888655003421894386966915685422738069084389184883226155728961339451350484479796316181944720476815592571622391683559472936332252259993949774589345175480822875003724800713174291862814679466855292605938672877689122494200159842428866555688924518182062241602670954411165305762995587689096905131813434747562692605234713856797128286600517693537475875226384415006348052284275265359399206116931073374696404752538697948532697687588393200801456857039081859561834665452301993290098389101566589879932639866017797357152926106232436493615763225885157407098171073826338544547377258296911965753053478628089595835676185372183476719038084141846130908039041766757769139327247217452506778008974310597307234386804066630100162593889511096209377220992798804892799390834423170952218195509222423421726104550700821700930613136638341700198114806435346923981621405801740184956749704643499829957560946379413913267027339439919206395686686635165121061828429881358004278908885987107733311540999938819183332288692260868223526998477278206394354887856671783453474480007984634275734765850275296979080609585905335819370925692491714568220947494358991142675972161280782893078605780045686066173972544797814577171587441355267753766681494112552932739060631040670388526710055667395357023000578805612137108071565718142068755858370086169306048752061505156220452126486087946955679356149031687733543463816121111488561579328859865551254314628532272858532262601923725466953621031946744528046887720394904113835121185991552041521030420712480120727908052616489494701654080253871591920009449882011448933156275214507394431414752556100058191841858587440210463508436422283257424891771637187868441164252072935863437652887294712517766234111317299464472157770835842613105111145276781668310124826421047120681227897274516056970385328513547347944256068535294210014530674212954336313367947677889050194280505612505246050055433467032536424443059466439934058534753615981313264603170193135564986020571131167641750053404371646235812939822400378676110915450994237895698130947394447628193278850674514647712763323594458967344203654493062097196138017547207888963952078459746844147349468669418219781050363241531843800680705600615555383968997983910616805071500117003972952721675571125724615673861012377024764885817496007621560512975742633692427868694652921555577073346193070778582956450600719126603145460502476372288180790700446334252781495087293928086080505207468500685588172091975089512074887200922436848930385241383771329699644848255444520034399837255427974806225393015397809320691374565316953278215020280682885844027997852293469573027385019498465833683320975553528099991344940753043718228638444441072509039608138756111031316370318238006232303628290007786305022998436448452738102719629683805704540674596273320887225168819238166641285182943063288102152285944462933209563394629807989550840326167946158482588756640830478809852583938357905319995244461366045712045334939264631585919196899690221067386471503691280153803472463089010386055950313998260242332870973898839545816871479562690829556761720187423953954304104892001002677258463087289483504270315795233183495367011384174034003351670769160049331524633079860792229204445883294042196214283771892240173554851886182016490984206961383255383348540333240413870286408660265155056774408765515953697248539225902955691997782256043690446233575503413295915479078201063154086633128990693356444744040605936079981058009942598809226722149427483163086551014709737330131103498845359185215974365185347271072458342632779995183859617981994063097408568157153840135948757375805054190500718989117106443796950617953483890169759043042245921540022169488788429781881265105764913200379574913525562142972869387394718732992614706604397460790133801292293810311577939948269908479747125542575809751920891916544157305647578165545714659798360122272898712103679219570272518607700052741988247270095713227520155458019320122760330923198934067017277762414870925316579224510057377220756018314539429666312567587278532588253615444573031138420508962673359444930539946185103992876041906595068734410310881306371663302062470907956505531632612880919528954121602373046412492632956145427971681086316988807398848701187060134938976134784620436159250482117473324193560265859613728151325669135864679972851911817397701351185142894305484908086325344482696589848400665895261904029128445539369622823311221120047740765079495473269068006247329658160414444270110779885830508366939794239322673279152581762875436493362398347311229268885045733505866820078759191714987528165872658316403474297327763284912202102652986850215097313296238141491419246907559814231238168455591371722706461105046226826813506723163040148621584914672810162569924533769746184923672575835559182695852261010345616586740690759140952915875923387539395006496255079833728779981862038461421589403073591842086805055446304367607054102545588757946417868338421516678200034413181048736381345798668294748312964429599708290917025677168171491960880457963830602439289666199873447646570603266130701111358742099093284151205555132804641834446127260626861051328683516766524871168344601432949687951469833649359727601809108994569096531466402120366886148853916957676087751240978894903253523201348846757045650947670778252299979965915352066820720851500288805280406025652689093769937014424166339948950057359285194602965379412723833098114149031850425298581479752507458918676412415373402088050669702597822112299745019796783321119183921369720899099415489679475100862880555346206602639952711656914882015454226602937618470471998564177177491786106029154531320282920376357522268776327667443102701337841038520258219319012335305444869973169094906456780197286358490324946634417549241654442284602535021174209754795371641513954800198016823191927748259942228383348534992146015241521139716828108001438809541675289370396086213570306499289439642263731273489997149696864580083078638099813800371945837515114528277742653744255241867285393923229004185328820464753086746657682445056273324585642455258145562099613998935504844050555547530229709943234640175129886448557831402272008115206901466998122240258988503660767582315976189132949407944414887820084740022394519121476453591391764423300330617465474176829289118527621258583066293714221561922457708548583312400825942493243382169165843914622050412097720252435338245874288819370366273898557149237545586125938757975914835788729851370384171566538310329271243436942031065502473521307637673983210531009127964285392973053380533316649700468040872452679049883379156100629857927234876890540543979998310943461118909054441919843304011915618737870941033454959764441463234592937657080269627574009229617552100920329455276872654759583021096215291740467785412278889086562698884357582694109513282434648394792366737211937482466377962852272997011464191467541198106189472857443534104555056712342001008997133078734421612624691414526785202309688515325687946714208737720953474287306718545479188028401032927392464132526825728188642611859689129703403359157721728823124933145068310928504661882261380621267551538940930378991935365823127118136470480286534518495556958595761366495789091356684234845711287804951375016244145465979172539314124064899708880481814374159377876427592448273779494059113059642119999141317442922496636713409894194151985638068713056047853317078246937678164738694875674335060329206274000674041314387211045543465433115334029924897025144535284912217011413381114775355379379611236973424492368782737427864394297568581894269700776072197756496782331539112694277111978595790613547127898928273925599134824620096648935711412123947367748918459431848355297458468110908442177705686799458618835651655889241007045426908834039305841471493457769917759153672439100268151351885258585095661588837932072778882663968978262539592622774913297557046939783057961169538152929418604892964587501628589040339991853485837019868303793730723372405678107158986166126721868475569422178761905700652077875478364784441554875636835310715120873093504409180841867452874184078681359524648642963937697889089489234315825371843532413503654254450094586164342676330228628290511443862634109713612469191620029463980538135524937112275047276335578836726014072067455174998949672604632881792160795638084203913451110212283487058679248223343181682169273084265730617842364949750610683478080779721758028721431030170320462376739201023497303249207115474137160696838945011009106891853311180218504386372462775726120916014178034008479243568393030870806975403798178963739628388316388600803719847154221469771020752001363279019797380201017336766141434942589315542924891556619259075456532648263296641945941575493209336865205276794897088337612499078170479618568488008519722322021277459739886808918867229832247118551893799120892158561682816066558998537714792437542817113721290639848245547625740601653794788996810602917469229240720000502953391966991994411692912416491693655814349589393813845918065643216339245459193395042880804352730137180386833044072468199517155828838843840176454273296808248781843743396704693699480681915708221416118608670076679136585249427967603520520479016630192724788968403937296092736890863176513364232471754116799709744783050985628497890929164994831242265591357346447088340557048082784248084995335726660404439277356146006812153602675894063938795465649219414369036556581235335967334395264192184107816544744179787037683373688032755396910780335889741979999297053207546286196523111292590659821183384829482995583045596036316490873635542748554911450836054504191571092141417990610450960035587687158930148033942357932212366323934645289678612861454279139382644541596270291493241728580886116266146931196516566177078031359910918370906927923080214491366542720704058128190269516542864755330500743250016326961710593014169033489242577551862980407958257783461291798355213322900086971699901217060552415246344455048651196617671032248393304725209747546398196041429421026614099161460785813955256227526397739785513104093178053557996233456756744295851166430165187297588294661390166480439990654807576988435033106722358078568530527603779559739021706812123764625762760835670149867763158553274042625537433383102582921066293408048871275376843443797012286525848748838395852394647879086980505009660274665846180988173552302648872076476485446689624463660917295338310094877404755726633775050928008587686567762912395571425981513853327783759783252167204165876262688846945807336156739746085335627787714320501554831436785111495619801948083292510622658448899354984435462282362959175002310314800525725922112690506159673283068316789523365295448225321177864552024888619952361801591875287555277058266099094976690120898131568596972385486205241203067282274932027522406087467913755316856403670861991803555490912129758925096103679907920746045030343675153583457717084070873871610740843064606398049937185078238010397543610420803342416700295762331113905309314410379884265020234575143342766812189252268852169755493933491032787369958548312886843269220261349977880303785777357512010101367513467624176070312964671680484056669376779031166086075410320545026720483515644802820383939811471318233068477806429697372858219492313251149663789142674221609300735628182632182178331647652840844235756293563551067969376044395615919477499315322313713057979794049308577230466544726681231298109339991967048321224174177403562967002159145761710698710177024395479598751125236368925298493753826323550744384713492683590083715526110876635059514838667775510803541413542401483282120879232633838150655545135342090187398861545634226268695424597030430336063815200321323326951176961600340416222408502342086136920335561828918147828705481435952300166048638315433171274092993818277120045390564759017275403532457816542337359226660202328213897095589124844625419143568935523059161560514836045151747965153546542698730726985279134257748327876194312715062414687253113047605199786820151416543267278288977847606278123608370249816820900239813691569490577322007624855018516898338171729149520771571928289201236659627707222935545448704271840347814745396766923338562089024830688998875990800724362580766169236987663471648471701662215771308937060699693795075848572903611593866588973776058347869685379047766716318956935060779483480535404380878991628640496658861895465815686317113953288789668267378701434753153924491754088946239917830381996436724118813090920758761659207355894006293927179025029099019694873375539892490416062499064464167220251080928900882527336328284819395457744133272140735393871518695906464653184582595728757446572876337969179080043117251680975706016736653107418687811730213955331079518454203867702251171917926127398600243031674969864941853744000762599736770243990434157208607817843228741832078512840160624152581582143497394129473830679539403314982310465250245633433395429215163334185017262485490728081736140562805376619830382543975687107694371283553207560238176922316182088550244904744462553546374072342196304708682900207326807872039594838919549452334344917585309553060911310986380267883399160960376457072820812546920868078476877321171326410723318816301266792219051152751073413195511818468478015705139201137892155797673574275095424801030009716702309199201764971062896954194302220442816185304772974078363226039540351429326218557681850188545740821750149576807734104335836677271643601200742338740023956731771199208738686555440356855702501175667277242548818089732633223659324023884322118264175732221516000536651322679168885172059484760772603971799786001474104768006876404932443120565496340840943476808510005925015514242165980360569215677869884826677152509673353845534607216705858074735193280077045742934172374970011177492142974150849014084056937387091522605637324292152156997358907745795076596961759910404451083516512381893207607419610179536843229566288685675823712895244201178624586882951242916066065984129903822863423587283389076441822389176014025707097233511926940678436377970273074149463330268601100665968618147409923911499922323052168713908573593334861235861273083639079888179933201065107318399627131458199868175569797200938030064290556110922520455620449381561104090834607970481200825434018574514349835113150288875161620347482401666620402155541941302136084871766039731993964717251252781497971144033367698976629600716873853307915555948531874574385819783472027211464627147163223158773388811666961283976603817528605072291673863370111523290913413024314357564897625629019759958447535151244313802313892920553827762439637926832881969395179320948611981748782016654373952412010686712483513150360839391567562938420467122707860726087062727330656377481772671638573737749603967533850257895409959156322175722810463828356408203751674123896324019625712651760899859685702521953785995014366829414353993088521315390848120915836537676280309555909214278167010584525696259895750507371812841448137602581796991797444572398816864868319534232505792902949012479704795495135074408560584022497167469052546366211015652418749575150612292569050868601569006434061897778464826007984984074238869439940800006986763919184457569111033125089914618900920262952622978860511963628697235676215247526507857564255873243833536307329584142749472862958866916054980925677021090429065348229039782731910759510529749539467065068639423075216704325858259994123109544027690350902468800891025023285450291898403206078505274511336923881391233405078534074406710925189998607349555408673646876841686270965159911640595838727615865429072813535674614154108243731111440886004312269177349689971723363022714573320808576904665215265982144245699701260541898456423104988916615710288845688365944254531679528056876213775594004445919614088596493502476278361639715241817296006661028421964078028600173687368527080533360897849313138489250244962256093790537825456548763271981277004108300297644902369904159290045742929480217271785875677960464287307405413745855022690495670089305169921122019530773459561624000504612813154093263239842525463262096856471288894442290529643755553579723326394740825306636105940231496630680309464388656809720738562714361587556359640638554880817930524873184045863885727804717139805824317336506026358993921086971281901308657044504054991237888937492493145220793430511766551622174785111245168727093470810501991270783247536574390340075925598804370454187215956843557397868111412566197325152056831837908188913902931566414448692849185516279821492931094130481930271518876291211148829275322185446980569680339580821713354470750285961452970426860763911464316424407194372766769571892975835380064300505835669159632011674721053314563317410970784337090130160465779213971551191916231502854182796996654554020550487215775231263776671724383096122629247233577076589578445488735141702127821536395370197676805938155317889950146257905920408131637601210882095812420726452557645951076715210471724581064452320406039416040217646682660481515576428497046491942458252220597174770928973346301206742114642574530303417024681351666474841647147205720949965733867323401142435661318512110285093662565471405030526978872479246169623516937301743588825742254719366833781322235381365134152221989864718573403885200673967456347319964753743497321054318895037645188020637172122542684531788996669542375887803587266805316571783402332588883883778879693965676797923207234139440750615878523024149875542716143196018046700432083460029317773802228546744661470795996929091813120412604918783810802919615929407343134774492537505798677709320910473561141506913882301977823664462869145676691096440041001287263855247614002122154786400574728299145672403804238659606104992840809237170840124931159205695690321840781039449387630593536324500856812492825934725669807526810148436590047782034994353340541917331168990641499094406600694614265448656048603441198403951728961120537937863396737580749102637060205211968773870591336278134122136320246959480285875274733032046939822803576270544624810170627986089681495540959627484294074860705157965706080051090791246049534626720466706447307928733449627422033035551033432785085601247583733280591505301976772563052904889074693087341448747207793634436981294071362297985582963472298046334440179971314284170813519025527520984368990667577531720569745783338769378663986791174524063822709961407914137529672077695197070748895888722343627352435050956149049404508311197579478695296054295160719131803379181132104081596605154541910892308220486478679971181980428966021414166442388453345842227700785281945423798122952496038799009874915739107763057811074848752248627709101806643876096029313240294367029416947986289617353241762989465463525794376618062942186489701185877399539047194832072536609089211817430572918368542594617820321799112900687716689562186523049494382132499602668864962870159486178096510327659292955116517849051886782687963823729176357706236634181097140760325576251845661788643346310932654074008877193229039693875223365844533885266762443698144631076947001877053194020349308411941067283797538548144674457443160310924226707517741861341702063601151664243181662351648445844281829599429957412111416953418251081187441859528127907725207440005080685822157921977234952485340135886394921008377137595079993909963402188035719273610068368970156740844628594930483305794308672488950991501056023158981405730289159491323465030113446846036360890363022438626534399453189474849100713730530893955088119063683889013746586388227887072332657689586456694019167306859913939867075563544711610223374781510553855236218743178054825697411326450093178903792617779064902874396069680460607027305178581541868509177089504423991817086108834249047039539880726999782548494132494279435264025098277958770141585168941999757714639221384983800735099590948350827462447282615018421062689257289963619503706385007326768527573722237866812491888779241967346502674216838681313116086885909326369572732713748517674881472241448600605326653116583328948832209411659422617276092758481934559488541649005916624294780971568839515423781429748997871088515494034153332645445053809544807704660815447855950945897936272100054039465442993877565928579441617181904187673831814393019207690111929721657095468766604420474045029675691582757501098361180139057404038852947182623722849887623588963796067194864875501700641239467847130145615198447953942868084179916001188587128668228231220699036831114168405837223108155818029526435808549424692513356818462678822515430442486571762796861534523319770745304771052578215598346110133504919477413957245675704307939405089081506823294197806735248702387540388535517086897262075408794752611726042220596305205025698939780244250329507599737390828000614695959336498237830959714760844583717471918245036855253387083699267413572180110355253876839331151325360017662827404031652802324364886523330362538963161658742612215642493748019722327702018018213527628752504961186473140291536008394859936435911205812336207825233992939589546851140652200605119015223060466898058252273109979740599795369887928183853793325991639921923167595059187728495045558147936841675846124284170412464571345949483375205157385148853304191694105753833860978928886173384603554936808603506972207712769137889757884229836932960400185601653979227465948970472820324774855099729892499789420249319292165836042361633765149789697461025992756973287207901535661156481181430983753960210161759660144878015969288592551827328599904164213243757711582285601485297140126165376095447463983892065057788696510349992014950571677190287359721148472609618116576829992898180555479741962600524450362104395287839067867150613304038881295163775961236732723958407512900699410456934836210971424179012361284592450446182559108396995945758160836970584563473326663730483154969764113634932823318934374472774197832696652069448991004054809985887565160116728299914826213669778685148708942381657203407519029283520254425964550152895313736457974012956568025883982601204426329103592389691901928528730909152039897060384757071362529792167869696919997676857361052060321094111226289523438642446145857477855164964458246795253037981501521533124892330079878082173999093258063220928582320097928485312868994665665547511648840323685872344804889328978941949377003880358210184256536756864393172458938149472696847694115284781973637003662290079144311627156863545038828218563878801244758807409743742118137742130045576987910955719630598969584387223936537003863827088544994338637921633873691494273660821393588014484128137677544482387702958208647284720177139490194370338841838358718055671225334719319498181752678057891788748135159998045382336796681736179916016915836257612787033793472995829435080791718315088475231273320180476277711286257472553224285064869249577420525672178695987941267043771722764318121931601116833406706759097775222339727188017124668311825218896907298516164749717506144242911465722397136914648689443737035568447981828337737231974409030733401064130289385626407698072626739390307945548476804853312923003528368235589549634493511005663942150689002185240563245983724897039030491886888548981352747602686157591975903886839350314389009902487989802792846937932414170877258151593757807572503503410125375657127914452126413460924917847846815806302635887643117789281517601152173941232057442680542810950737393640651333123985347747970254958537264292307635329635909610516193195663323390281331832919507040287052438232869864887055787149643968842150023450662443238720134391178633049438248418667516133368277262168465450949362249269775171879768608352608017379359608952379792726937971974312848892227735616727666541930605370169053348331863879058794610235477923865984821692244453149394563351476505847991436956060316024355557573195114132969755881440115827178866996983582796996357102451471745132907811972366101111037932687213035862726686340245145470748707446682946720580159106239975534007028823466602486682385507827859656677004230772655498626390069522053538318816535210224380915467750308014267527279307919036164849908778307709589664414330958305078021922528105977557037125466055135069375005488721600363715507296585107442898926616064261276124635560406333557589687670240934790893647257096422648215284665563111703953772844078259297044525988961146992099219229482477711211681673001236013115043456018054293617792833645435781570751607527598864117150719510309902475833572335433247419593068463142538692548130546927936586002261268264786102843792845972034441022482191322523563569477357982621880323760577112963701163059548721418205438529573097153480892593725920477917959317963362618203393842846329513314789058406977760554609116028315439763536335228825193454407417515437187909059909105589091983518753306709853628858591799625319956740929765712836859914674954272735115660720726527361854232298845056751536427444414436279246142058138332590838122559085813843353291116026926464714767208923566344019710285480728745406671160891072463328787938929359771606318847836204837928786054624099187462478505008306318818653972414813126531989974615694326738302450549465246752938176212784845355252886695899935522075988893164322222391520275918698714842305388484836299959543471703920847629626514333506864445326063394876004255154407869952046263512481846635374796480380924357350608771274052436061626722741530926726065988123800408596366003876853311239089018170992638902710272369834687530126120245321195653366737549508222869411038287610097989392847322642638458028013838408354186818843203543609657178974489744997121576588955755579824879705354537384919078827260717026666993769088086405319712103439572344028053064851144325709543519480898654276048095877127577407678582924271999446367013176284136370054329600221052891162337234134252927765963344205311947504950495970053253790493878065751914875645250645615889786163828989806576265229231426510573719972884139490047258986583854710534712438406012490952049276369749106053488194852436366315891497911229281625983416429906170294748013377996579081209605109590562544319925916231682650822850240421027178320426985105046051795366025622712694223395207695410970916266111411185867290112394675155434761749038969991333606197881719492824654717028151054180486288816723879091674843330958163464077906064621712464649324736369849870733298301010453157569510502169466764456464231415576546471660575623412480289355581612909147488462875849146291616289396472030177353354324702047605093517344443099778094936356321797859537516749745584630287881050503917069392385397408460764084313966366550411117888262066996692224425244619317862515350903428635926420262337444876779824548390269796563316237769892675958454639566765123203043903194749993386230203150446880582088319300783089610955677024803617803325677620416653156791231359996214762842016571364335821210751852531140112675049890035719340351143986311943590366465245517703086625180962053881375975266285930316942432721656145377137695275482836400176199505115759616400075694909781948173710327454992049610934208654660507194370774529175769456951949474287145547602105800531588841367663477215041942717894926937260529397580592935480724537009510258282393697339517194927613565910219302650687684321513116856138868421063337069058828147886015786190320972841850251984209745925470567721181732672683452346600509257780366548124837666167874828051403025150216167279867934066325606109307941899123576319017079964245149072111353341569355511406671500022768867582183140948346751996658513631186102175835352759656973897433163733217568193533961070643367456136250733561204207763837334554712445346447028843171035393391592823111796796470222479353321570154232569159755376514278051019543736164232187285290267574182266438111537130269015336715070126430348870989778916048754905487744234784756095828874859574994928208540733148694939958747618186814895151690976908400772251985587542891838323401727173799449687244906261939139103669117021233182646007928721564102423408570277003229468231710850128957822287173029023032861852494874662952152036381694326907565573612381357522796031759341326282532694296314065513757894071315346406984457470174585143237024922497065711266275887716731396242903889658048965108488637353531136845300347661196889845787102907000270239736710003785748210859643043442135641428586910876184386320351990285480625967053335120374166814397840296381379833169871264103655555072140153549947334930689829592890032911889901028839381956718617300170499776136060316407066170001110488967023481806678751542498902073205194516971339559190807697058949207817854275275795457787487579907871498333749357590598783966931367945442332391681169688645234570161335730542400112338555838136169793915476028891833438703333860657001145914219669359230774635561163536702314862226223623554864001307919818345974610467239838056355916231124764193978175293016301993714018459121098167407942126361132085968747522763623358224511144039071474717101600757109861258062814550650232956987274147144908674986552118699625074484932944140255326602048075147941696683086275102761489944498104464531341048510668522599764359931493858254954844843042482688781869875023220035927495390368206970784565293588062752194700486108271933524942076407964447124511388232887240309970535226493678140010569287323331059312558667252138748587663627730256967672430813555731480880794176430398302356822506977867538317202284941207954133343502662968341811418581260846800515466108994664225815040146847007309289921747365921207312896223331515829336263427632421053215414536443159540902927741009084099725551933256705293904797597086411148254280461651204023395400887600223608614110640106177868696319437071169353189211146305069826961697776379220132753009759881888197390696524966358238265448347579815251282700534531976742704191626048908258351320432778520423570100966413649379019450595653849302163924411910735239936246531295378205706369599972577521809823161501904561864737224616699934062587076378323045043899137685401775944715520791455725481639211130615423937590819163522043437813458378374760316761689761355822423323309560061438404266770274597848145091610356769251443575797292939684126797885702999225022515407893862732966221761187332526237019316302010344585364943952335829211074004639944770694757182388581840228695486702938434813136325157340924445382228526058911638222185947558783318583014252624598825084956069267356413519563623584365643279328178835693183553260072333069281524660592700457335860152491448723293406430079062805490417884297383821730118258157572549616256506827147401958149082192261561978682444514634736870374085363500951966222363876309085098955193546933946166264639925740326406007438020454800271413769042058994720039160346956345097181148953015814757763278550400459902121192491672676646084897881795921938382058280890308414487756119525721541933982750123522368505408168806435698761072240510562011152693820976103026432095405071085314857370229612403952536587425816786222161045937907666465263818475183937926490264575862266582362436868416734536684132493170558116156390959669381326570065920643570083761757317936599424684831055216246112419202106799185673994392037459559731103816974901228174304324206052804751441826723673999242522917451048950090085815487846227379197204117187724121190522823260221571872130618272435912055617430045975629333541948542714695865830148807459933231306388086846447746639124419845116574878437748272032337073435897718236907793404392499262686190356216844095367103427485051663154476625382340395635832781317799637334218061606200427367499583550339783797143295403092704066316896779008898077556608055545210568111850208133651795419975239845224515474773276933641088674052905638538779225872426848719026148975931762913115458580394230740008707596301711092372974825573019829028753831322119623520987334465068465943597686319849656505009852100729393300089978657136136965935949328952179395722519637984598828104655598083545548668832572323765306791438005641493268949381382464289566103778382472815652817065277200484999422390929597492499789902085603778071264936519635691791375828661296816036369322764548037150680842279474902372376188680348627833345337052780475930209279801366400870270716251031517747233214233407027279361941643786122679586311163310687629049702289355418521384451390156477334360334972825388030778040313468764693228549991642604374891176673070213067643669668209139615445906881289128440817511197459033386363914866428491811837994445697745094220424068615766908397571270940133074123046727554910693232376531251663805159332060465958654257944921217262305502891557026364370043497503604436463492215525143759825120984898648935989792405056606947963881498113703734248086204887952057201433617306201086227884790901999058457350347496205339500860506557247493870022977909225977059135663406177546192660051737555754450199743304660661721746172668671558168102576758617240836578410286993259448289456647343023204959490661058398838066741313396427985601983304065729360896160437231189065370712299547530694916304144686684567751805291401232976125816246047562826446696827558319562881400279107783865127288773873780136716491673704592871859081820405909251401366082994442227893785063420833950502536284004358920786107946078119368514012244180977379475553790626325623159110069978414855670455784250686288331205450938834501961987290348815695774578274359620248097911497177687518641973292097800019775676740711173219919333670907634163557040018894643493384029789358236201495026861445468448133958214878796298738712826354134427014718378326449124619946706247960764924978397509977524822251442341109699951461760580571718385759006958213031939494423429773828892178589005198339006213441467272342486565200907793887053592409453480270490539825425178818072906796545292645419343600531196344473426845160213636888493130942954649906736639352552511229475003830610514913299962043698265818401853967739568921968603304739688650658629435600627594174955323255911785851581091573543497179050173888807320424116638197753008521873349080162395184254473301137011026292013112976271939450413530652122769325104855794046384080369089765509146769099539046452472151031308932668535651182717506485241826440911630882711330310509310764356371509869006266574749098836727981744547177324121814177692135929205781714601854493389381222286602881538829547284497878886615379683122158491434749999329961216738143990975632429772392475238573124437338551759395147667482778936915433416328362795609940173756215548588385961915026274816730059446071634042017994261550957010195755552109658875386074346804301123527478981308890733183207287134993769854785717947817998012533242415757716097140843575337962668159160933719603090656116222010958127730330608334010917058204525242058352918362378066233921155967616824444040133571574554084540281416722985752075721167973625234125337958329570668680873946659756474713847713871197374162662303332087381520846275255505094770975408530535880229374522829651356736062717269562662929115815484333269582887752959926366150539585633104350661581986798070802564506376449724081992772075191174589717474276982664746186511843398132554921190898165858265055450139207216277335202135321940887299560330579516551816745828535513771420558922120648435664332180981547945644336737603957011100981527443437449532431519770898960600825670915036841099203813866467357633352324331822359043430232717871564313120155724774373820943742764816181746776143776845226597362898167710757196752632138664841107423102108173261992507296950899818411946339274809307982287089635630289426926849188873073320759709434561830363453489548122979774180072983448293269631886801038215108069135756596085886355567603499000433453934186878266191995804768502126607664049133036474684302670089570792980713333500903675628640867980236926237056376458745929982653947759215223332207802460508463984980782141785532772463545160272511635968136062539723197239464522728804127488539334504118920555806615843142201049374488816580981958188514723422853121071936253545878349131111004211091651077331897878893792120500185656156295658828497402310324517278831999383392107401736872664634535898310957018331168878055143512546681100431561234839326611440574998674382757240596110526841028536132200344515347278369641515582263062388911328837166101822114490071292579048646711896306284217858694821978155805926268495409642185960318631091065436750945604890133233853935219531908905402972641798949236625611246334257913610401361397347416261883615824367045375975872010960066438417415304357073761023871443246772288733483654112700942112343143609432366726335039909697295932525976596016123714596145723725904065539251973033340610248898560548579306263933921791730605295975191346231267352798790731053591649640432420095334082383832478293456189315113306609065732396411848122877165585657488914995427516638703251399520109410189817555539670819116403213760895858065465293415544013673572183046119895406880433284955105927267010533090735683849805931820787322795772920829285863913494051570621238636182553879608056690610625832028264427333425584599246897030768258631924088270843714099776912467317232298513534847437936671476766341311759992687564092645919493733810416394216052941612374847077089395147261121146466896224025452209314063131044974117608507518402239001404337528090773508637395962742488716500882914886219245252405503476373877022718598822298031334003881932040521579244381622279846132692481771476983461556623661165955254805893226800970004319428284039257549896228359457818146379965565116725599275639750537256527727990279292515365643225846841268218519814764599157991821793709204820594865929536456683711387306707111040758584871370978782426889837557824494867535979944366144010773834116392655718927575006948119053394989128222347742627520796898370457602819609862365436259342755665016055014065484936183876116030981941531054850025086296951057881855778264914389300751470744318030184606096250404042510835969151385362484487040971079485963288132173741586189196462715835431918092760288266042815179031757216395502303754145158801970977755335762629424472289469421771672564176430299468478207938922664433212211278625437636575994455647554632789848327131676894840495416857407769881897746816925574219690211950605348676283434802354089122167034227407165325406877922749624934371159087076206128798546726924404924486126130342435306715040868698629026156971833417481402723824134675531495919463162058546464918741653506713811281707620885914512573499229890303903815853629785874524261109882821525521631701490711050506194300659659381936683166702619864162275453813379266192055842306908301327482774525199527093492392518973201508487332652383628126662202410380000309202557767947462290256062405193623962788200032571008087613583259871541663399259831016160977988436189319183016098738045036692103091113284598734003983132393260518178427347962149075027575550386408097371279629870325624082787390841481437942473794258005345404854564272644343995101900444591340967052814360724366614364982571095058788746884174237488225961038127761456886539407555990572658560612455973980351230934349950325367655628637471065355908052722766532860197701053820887501140666809511580777479279343090252783585513672958836038365086771755874427981790650378859661277057967293080091865489986719436422906681776615843217971884924065416838416875890971562647305181764529927223363894047859231516737492146856049078321012433538624964401404317607370393883456055552229060795063906396894708437990742502267429737219638960898808606685056592072499789333265240841390393387621115222922096887823661868032606584648590698068282768706912639595251870170384853665308854005312175581638468802072814257048688282215989316942087452372138449509096438887301624610159813941701579935065225493402687513764268399497052207606959005557670975541981232209732352606530187835042499304308774277990854583673406282110425968684925847366539000368654264131325232507817103879179532637258857236982853127947612501527886998094137253224841284627443851796182048576899244297036123127102404763439183523794327869237899991350143680871068102512714414360150132538871607473842758004843281186344537570004561206272583446597387992303705515518637620240637733398489836407075599475257165459361661008107812883933502561515129577749542868078353757616326515996152853757169431780351940938155082597353748265462440997577715201289631086577044719299534951689750940589965306181331324819744520745620481234415712622050713033385268280613654010259092096485826582298736073946016500574870376090693480523839546927409579025213020830004568993594404051156846113693518634486589354871906954285385516094023791874415437537777391462892711348896261498049388670110248816529206105147419674380449500435264999736099760779354639580930920991738292505440095914514053294174633265138798576877611972074828341558682296821796675641485247124126134029661519744722531689360374689806610051914288571719132340341385921994402943407160350336346862755402962324572482628240174033583273798649653252135998317597423131881322218482613182529731384275440294266327013756272271366219328908805695776645185289809631145037288709097166843580147033590350053464096489870486908037896233096639580060660746728118080212980660915216550244404214404976482684262673384640545999025166032719279386289185609437330028719395652718034359441304304862755742990981224922976139397087609489103676213748353663812656441477976786989918381183841588580321256570073563239962744943989020673849032077371622360041067427197052898102958783122568132216517170682595476942621767586210733552763529837679637334743370806724091103968232374507257597156302008102503299849629454678650436299523244651296171129391143105122726505157740542022826110731275357599733847533601128025062629161212617407844707298850164964974552994993241207401632837323245660592525785198495886533911145493429504754372340529287885128253189163735711099878145978017369964018654468335672931845444410012282642083181794295727483625789039763643657150289663959150575605156554872947193074704063901112371888419793256944258954534963148064879894600624676792269081118663325071947444270429292838139666698503743198508260783221061824582060813652037445642477783066666470464828474298760464451074320771845036547213389954012693581431625809841217784228625827503150710476884970030810082392818036975643642042061642718115253228649997369506687771715582679293695756904796006788397983053331323624177446314024200010671477434194201708591363794686372497503283334581143750167505075891060039617168325119356901718118166778067918547600841156586090084599091676904392126932877694752743822083911985973394736080301835773139847828854162141163315885294992110373558097385852639157586523616607137960159858187021481137410491325917114401912601284198993799355192438588371909631432866022177267739293224603886596617455987478456774044422137106465433086638011825945238517305350310633230305846410426174144867048137450883884728178151996993080527854431521998907239118493053109513756358776791694922115178206021035737791186596390254885007691547856712374155629222663325262323015603775804899579577568801263313773151882724239181655112115751696554298695085060595178342754291956256994729155456846974427111920004538307393507748042780423774002801078370046374358774923958851190964929173450178570018177270859145054895200579621111424714762982494339058981572330489575039037953772285297665695310593263931206903224072214066756695438487812402253499209371027886432018140844703032168703219420835943607567819780058352904894922542426839358173350174534844592679685319142263715928585234903655689917236828616207195844196424580772483655237261105808863801577101443469400468654114795529265104520361827455790403403303656830116177419849437812080563249338654089136677755793907154278425952826424470848694439925705096821405635782814318946428643042816477955021314284533080314587070531521429227479629385445731580541081783312423244335136534453180966408087088047095772774753347649442492380723568990639152621694091508600357953576078404532081912874155530829694655215846304942117836252212688494325617040243318935946995970619310291566528393074351189565510177963911706736719966156024656448307975160345303503184707001554066942877695766872670186345410123684806518745802489180132703302859019225797439814245083387120011162394145037049414741508605234634749044034144994404866318697825211703791301580022977702845213561780760218840824305777307110436722988586434422964694681036287314631130620325444724958632879253765898435110280405693090499863854303477381939204003998915775238069185703288752704277339794401308422083344102878561068244778687750833297188490124882348028897486373917003875969704862273508180677757864934496383847383848973902836703330924325392084114085300108959919004457054179633655826004910532669031051548460809884467089909608060818788587542869664333977051929520371544029646332120701402886068740817336945591956641792898357040533094215116548312582998061719293921622933480309231171894527344145812637578620679919640152584825999380528210504937725158246373859448636891604666116868094708978400400061177889079464332047979204180269291402146697129810007993461894351717127165967108159478965155682808072167267498175324574229376927340366256982515306222711820224499824937359263696185645683103972359449752429780629916226172692695139434922050673867546348486856946873585456945279420643218125970788593665497781039664570610681313193849275035295134112356026907375623452673707886772734539071329700211747393191577572708414513050321879287928222036166482979970241497031172422569376001175409890900652473847639280445619295628121371181874520183797829685972018405104165355873488371034315498708092889654018754557111715897622374304318111193118612747590933275005791674535307179112356748338233134217424658454058433135895094008658364759308225958675455597843702693821763281814221461493229988522646094658164435547434828239320380602457560096011305836308732864675494347714743390927296385033293527803169596978679606146675732399882752280344752639985548039823205123568749271821400867229455437872586191484419291781884850610406499747254365158086896342682366119750561199865862297669153602670716816379496888073624342715629433584855808124030762905933133506199185583961284809501824164082717322045638403685582011616910783029133935444069187774238852130278881690499578175937523692547101285807965308551277961946490746923657812060985153841991730055471786230264660965777115232928804469030261556564745503763454600177524457720339954629100687568964354587278457720102837255487193050010763706489570435405106402272782242337769995499369544545692257292645784541918846741168093295078227189309274437211297937967624209792448889138152819833204378216076349495012161824735968100237345199431447166704901646159908510827298819509080630151621282481886935223102877839779921412179628886184404010385571433636836737372547020029581814614528976883944785880693331225940162497824830828948965977562432751814044330558758819987907220079557270784203014456000403458905181686887066357172635042178589482557914000802905373551868392523777685557109911529900716962577572035314477925089783224131182779035878214384666245548648269556234971341700626777943235218622769162201215227769368087864125254254369942459156943483240483136627924330752472248267057397336972574927097880097807528724846529382700732760034308573889251438436227286182231209932350453410948641762418447720386180832750819490344275062609303811934106165797806010022325168827883663457860605299055850974162192598398252778414047205382638851259964618671583456058199635782674297246716164699052399176030969489770997633316978142371631167410906234847385826186945569990653811821150600748884993970025398005404090430222516097150874351508810717336516305246374292415670699259332685952160560275973855234001203313182743747633720787364974099751621712938086525875033383295751951142037072535602310874244813643739026967309520119909796123773219161833840594323806949041577416111994252071195651429266263679030554941869569342380361319732494680441314302845396412093101823325221694659687047065095353698818529664548975397811285357061425027731987881954461110090955719507492873923599418242424418954052378568997907353750312817016874841387058522211798333174095997657710112546503736568007885970133989116898659799773166518749962731716075743326003571767553906653102319114082459576742418038369914245402584370644231311250356835750623235862338095517524780883765613879196706543897336321868062488543438319939723805942289125626347712809020608804427738014415776278299763447225492694393386290457004367872685815222129544523974824063838627597796794631742169908656097752118655960808653026234868164232826367904300232694288080920987483467269161887312473080465321982358785882757176312336501131263510523261750365305204376177716291889356262533771916399962075967635162293928909127349451538355416877051438288632467903729478073666163228267791810681095196057416378469929759755945920949936974631955056671986528904575191387310538178520149928756298940167724604866113790335896046043603687640619564624172428861995239847165855729838779895776830464098852049653413482867448504216218644016777124173021706497189740460361601930856215435367414329203377814036854590105613222071289263054378433987058285241161343438436183723660703273173875187981458484651611695996134134861879139826560267194062628896862615985408930938257463689365041594521579692229563908038756073559812910504733481954295709900396299468749661307934418846936118265296408751983327760471429736637228048178892140634980850828842526665082698016139082332424234892559970227353400698220261734080739741246244453005450228933943470123304158914136704557277323077053253848995181376240803029840618846681090332846296521776613965974687520324851629364830257573778423651164722383304530618849124660676169277883295081364524799527146134351251664557830984857625097496081098885736464344549087204180206897845172642420547919896828899286270379885064212149604896288094313977797849853448986006290952900658179751402106867772071253586883619411544528762793630725808743694248023315599885731512685119209309822824872697752276184110889062182967398383338961864794353069893111915569570708821522228953967804234417502252188055644086291157222702062474317908292208100358867599939273672161494329410331360735196509815724728218262809612895670901025242800226083004294359271035430176240504937373805302276859974649749423073895740143094934258850756499118325723801661890447688491602696635269307690367399751910770766552321741864488923224820694895736725579056740042481168403571548545030952511270597662573713051437789455756022746162241569645287432202389616580188683238903319891575980472688198449551682463067275655612909596208256732412007319412047318333007978884104741113497954261633584552342984889752517780772653094260067969195962811212212344499731439790535677906379812619774071616782973434367772007651462168220535157398987922769445854870637495233143619467350366370866864606151045600267246360382864683782468763864524621098122133941409835953357508074220157059682616698855726811821115352423761061247065556327701346240525416218802427592947972310391145862622953978366312457597978007208984110970091691345188132878328058376250536038819152330786411743310871189318690731003679396875396195860226664390119948461009465441923068799438732523396205684958034881530468152862908545541211336666574058919003114705409616748733931353687222119646404458093280925942401835845688523514397757696954066469926238130694375745041736463147997398556607323525768517700764353752589341386025193984044166282113864080076814841904188715680618749310147482559326262264019324693276836147201983207401507873279028756619595981006487104098073960428502146053632076556794345599184925425666372948107237399449325135534492943762478478359771327439244932414173922482860720842461920792074519910524996263277215575979884293357393879369621902932533876389758416539190596854612446216782512415557035284104414230343188864135597707233757471296329797712612436167866522447781236710703928623304763853109427776428377981157226091430158865491359946640186088310440418059542157004738265182883215158167798665876808479362763381772105146711038690185194651586482025496376770899421523593948069941236841054890485877382924204101571983932621332691890588908097331083445302256485388137474649679679538699866451596030621974992987529405417900141400199302180238248435360287476533511637170679307064048363089161656482630352011144169817281611288892454554237562301567535273871935848146314527399878547722249510583836732058869517668134913963440029226971075340195945257867945988222913224847596209617950597496486293948070033056005933523581511887666553105249713370264824332428830860744297407478038264456046588867407043290520636366392601396367998017983787723217517285949937412193204298250656375606141308233534274583277344498784391958328912760925969992554087667967128853962909298166348035612041316366854949838073316229043801705262481136977400595660963923574933006531897132788339990673319229188546587074658389658924736300555152989692859257192652423153780348026526133978752914528279179949524492176989549170235930712338420052353407986290783802279014938241164051664630368198413103883047965792880135716336663802433470084739192458487046441906280397296500796839121048399754674191786493303232116268030911931755680875493200906941017486143925383567335157999389549131292072249383238091821749582501652575326033922169297403959665511558329750651149917971886389644897749943336685418271248561214635079254133827173678704241554730254147476179464898061540946015214801274831750302407079919690335550136238589993021211182689061878711827071441432558334692222265139865324924061733307511915719835738907618505773037030344752357508621553883039215681017478928803236186096345060248432317323853909740769350141477292504536638942534656395043203100471305686293619734821730591492883374418654921657450925557508869279434347715113621328904671286399350321515942916403061427080342250457282206250664465744281536722210031946842899739975465324400728476709196871219898519145340687052294511946467232408547831460605211747099351515915156572324057350167268150508062353640821481842087835283286018134843051544387030160606203865178607719794920649991580012149116740971139529000177150386121802500219475697914136745526423918492362684423085004278757858741471266069987652906520774780436981986501373503428260348738032603657239368187823874840100167689911146288279899153198999265643491278496364996285925768088165532140349213521635515170057414067018361916817985538743191040390457265862367073805204872175701642564096972768658618335851662814215768507192442082364049807820804784779974908202490233452851160225958562774214131928289026148022068328222172554181397219388819989942272771162718956429350011261652143259834133754475192260076233483795459192341719354305106241483981249802639231072066471699870418100126085587510773176638451776713690437927407943211101979829095795826594904990973863443764089548490255699906231730512412986522873424159483334964302433351391084793590394751261913418761320332106842688062296975729271241798162156679624795954086460417902347902634176331882679764997916316991762640677540835848941471705302274835277400020654462776732036314487070729140552798187853146033432705696829903469431177380938840510982682427327437994051497536165837754002393488206847508176311280638772709209765361183850790939663168752338032697137963091718773792708931975762800948007742343595509551834460206295411471345653486618773195305165999595090285643897672516986059678606525789664283065197276389262383782910663868637646268232760828929407078173517325880160278016528734642258025277695605225656742406109492848300213687323283068729270468007004077856005064510160410453568169960718224394732733471113414589761797082800712918105083685365747987704021819274409343684672729780991624717029220101025552490792515426455657781839289461664907100414284816039418903184819185893491650926180176548919681457568485255406621197883767673565534982232308282554201743907045126702889512715685493740281780242745035718488295159818949276014174121582855923382148113968555012417070477351459428327166503917985131099939535751343124482157378835025391908273918210780988771173862568753580214213196858615259525381898238236311287350952831377335921704319416967070352008817113477149222359205718086095711543451361479726298355577080006055952537586331172164583403047992773110600677288806399389095629532716064235996810322642765615103273326721390489357222904954232323836672349025203859922801152843006754404628616993079266043873182667421976078023264706397223740787085585569935028857458726605366626193714997096722928154501213204566608891988182463580051497276093760093364522895333846871762555710387612365304884102697364321631531105117897939430779013400962698322174736299520852719931264878381729790279011726861772451825986933046909281589832646833096272597006073378660816918081488660108181869550216092115236583205849229381647574465727361492443285309890228127173334091845741044428763660101891490424402813621219182455598283529709646285605032369261912131782614976744769792470208255282830792496322948728396563240863632106088229662410866314091158150187512635050792643232863373458735483410856099533333634299349137680712445280248671607794736188685646215218264046988201836102350004777032414733221123706068148116899928167121618965023836911502574570223029846673159036327387962521873690261492516815069578388953243029481384921621899962089443343966808108258045706748725796424415272867322103727568131538185954273231897320484845631689485190912678622347734887198456385847181647540011679586373150176622604679631070826362051172985917359565389807224153281206966910662033847710061529794290993690748501983273819183238863654173370318047457489934814337124103544566023625999362099866387159435368264844089149313224098950127241337350775725586627234682992580462032042554452023589584383877545954455711885912271643540267255579994688228135104013190825276567247739145891556983171259078811289084939030518481230502948600817552159491230668479302773267077084537945741190656943604446349230624784462301647453105162299517771262375762555054471552731952100252815594675669759354277558832597719667363779901797973340148495553985400076728074916179248327973087649954911962788589691925792906860421440142557439584107661242459696092671034428274424489711092487737031147697999824073402072380836092136291992672847674817144616232414372780147048733814441120315898578721934038578467242773121405859749977292897378306370936398552003450525732595543139165353571334956701256651160932173762811185552460641292814270743650528054209279174990143192313161632893184014337835978019927861295410499867145144706613673721126516142136268507104559022290549963861486693618950336849428297800537240457197298646431088482612643533189547884714583120250113344738096245014680180667907208010904955363759309405797698788216585234886701722781095996237921884228395111477841466577607828496998559430508365446313950413843486360771430318912301271070563736560718143221893051251530802984837099108576156794068768887579142332292955272801737320113109146429642729486553421393826603609422968976443676980062834377614274034385733856532964861664964682890631415003060275107930843114568826718007533531428860993843488443015711200435822389781561225399231400305658280099415131483263115280753530616895106546941124775711936079770799651492203824716654592247644702169518746065161663992963359443625806805972183508568535758022473279390595954709456909061084993061432866257850487033077437679510975390903029090443343442829295029000342698010286692167407793816351236478054063251320802986678397545721758493695896425601365226738441943347278878066899685601885378879972114821019269460066821114674138212720285127291062521049331580669716192261370893063646243362619195768437575376019515067696165841157623595100738200056518173908520369502090279368063527421566850717173906514493649159084908889996534574695353255368060327124771756963915296730824723928053511879960808953992598410996183729182569024987202453623570589088444949926785584250771504568109491854167674319061490473872110091166157754974440959905571021942953851067539428038336471848989893015620693282549827342730923573842846184969318182142572710562565913195631730165502889035536250882372840371751908234946423746261142486999170555791979531312292864991645020702706186827785356992942498913560320872029832145355031911128363693674351950614579296699827849229146575617517496744790541790084880050359175253028698136579647822141019128611528934814337090683251219283438394643638106634074868491640552940452441849352418438682273251102673132354732259241064953690048689917432080469003700928661144984176900700716522452679207611146685432552082422149045823404043596672929022417933555409013171589817927868603967958911755686210119886075060420650481938783297179497436104278436602308326296347369832441580862136361024485461317153938773509519412114119690640737101655720355612738964234234601871268274423664797231962239494006805949460742842034866365912701159385048222617291731854243035180958752973280898661109162399369613282625321047781071370223928854999704580336061618900078766934262267119973361534488187950553501634362878306136339796742120378139006779488077837235278704129145763514678720439733351056618864388718067531686715546565030364435118650164647653980216149727771033498729911014577410059456519745032591502431797612916079831106650304686550785196823752058175164563059067590897628002457516495187932431120420474317552097350115524385665500732340454177580377011708718212273571640776553724274818751100691865949565989654654034762527230472971720249524499857006176651510622147899170795428666938811395336969710884679266812375939825615019669026866099317964899117989277294164786336228836995370269976899278395610814335093172662003110633275521255963386572990170246350704765665747346864824141924598385562747943502666705839991354499095578494827470941556145495842045693451802721672820265192195385243273087251804656398661906330350932692281022526504528535202969559945787966518939320970542302104832379608263899087468850512641809819073834364611207545573112496318988781106831834861801347476555091565629265015149499766851465169631237923049556690586669200639302838260231774374969820655708329954874685546250827139311037083307822834458023285404705368244104389604418187204547627847143080985696473697055047861904523507618568940446300507087890695164169945843510709354638884453971541647630861974016127665116792427963994176070303881972923911791634640565432773612297413174745903697120415756184812551060848222295648011248034149559628204889800629227754565452272069876137611730128759105749931033164749112543168570574257834685131650896023245074869537138640153836077419940804470061006592634671287032783966780087122210922402689953957711045228258234408014371971268219081688104434938167574567153979858668990085502800255742009692983264512315018086868460090461772432665075583186402812238480630259681681216977483451818078984215138498447575700999945503936851044526490060488007462333622333254395812112079371640209568341174350132287011494944287296990563222932341452942849779591327514480114128837054357806055650497167887375171894357352303325653976968715554066067099311541298529240777968798367128537415337235975508074451295928627711169376301529138994053722995614413581399125268338146146856299045796066753788983382262902095811164792615350120620295075408873989266722947489716314359242970203745991185644979821443983074199280324847906134671532914385672313158516365738154747258808502159247453121492526768594682695649265974678765363795211521917310995864221974067701421193749585744214770670668315806299251737858481778012132169167576179166100908057612082671884134810867047631968382015216231074792900235492794204259027446978365088981314917302199732557137966901221237654766145853328989342386974079493920454179431151058814721647892494971319953974230440186666347682858634831404296526214632142738279504944111935094870031167725959564131673763828272895358218451193285214778149051929159272585698868768777126682761919109891453455086873980397115468149938951686489302792305042452345157444931712972495279253861861851979521790787636544232346349341060580751212223657962010354460423778087024772330599624890399548823756334035440229513275673759400258278808810506895300610626639892301856739820447545616746975115659338744751015912892654497413445844977024280688017169197869478750876668140105841130474084690514695619654379412987492097952652351779358083986192105234909881795296222729031040654728010022177050298395158062366522243983295084979057058166664111980816180220090032374890245817232670544924419333286094046818168699033309534371269537719026585286098298155254852361365353466902908226380708947448402526072362603647726794930045206357463631625271894119318859691281549481574395983953656117422154300204383233794883008986400209897385930108812249545798718192784403105094993585404064131351852708119919507940273212682284342298042836922913719537907645641882704075249555016799480146438575927721924821412452791273332796416358988672763095708892162447443424907308927219001553766329374885896987980225345068853705531053634095090310277901909436880530329639142749875040635444255929361389180534548226318937604496280719308171323814555048549389500497379962442791019248598588071384380977160726041900487114434220194391984032492973602522891009621662651883419261812757087787861934223270951230063667030007652496892521520656412024991350822110823332450807592764650997851678405475900475336303504701050587079706814991047533365776916173086690280993474946950742060848477878303730819256590571313036818876092776792444946775651878376675066159778595098276429430200174205546930095337484768349106209708229594253412434399160306472736914265009326261560983469840462743920080975518256903843305978644848292061880470258788144053194253807767038287949691551268029755401734063924172472558468465794448859872232951670521587343540881259098693093855569551747937372192447131434378491758442678408399579628498266960044647735300988955285391580279264288945201926736536722668952153886247578606848942573233367078881256850707115466914714987466595294635367277781098584664987039651996888171510168074403248160540717931791030128501617659505560692029429034835829298874711125327491636012954008734691736354267037764352730915353112993860781167202913164181289371388426658085536841331357304267689973423513130472604796909052488299725154218492292502285753289988880628644864397326940241724698030557668011644194672176088354489898296617457338826138027522472427631628197490794562159213173512500401271184874883930898697192380083566010910549635744981607339023869359711699002570732057555272030000339767268273285753847701072106727082068089713862256969079117227726341417243870933238620103753296177500971915817356672484451508896783011159654017185564348359770090141567838897206553198228669026032227338621853296876684159424242073395316404719264062781538548593546112033039525036510853503875905207955086006670784021314443502044723452946504911723413177384632073790121301398351485548112466485196167662838848887021354305764239967715786130302067118298912676178111789558457302072633434869264526890144335033953644244862373107374483365955054547565282728264511675371630766767256909156353399798702853520203208206672443700550004249935919783402776699854981423890875861157875416264692299068284080028696747582493709936542712835747576449082502060252899495804757677470733957586055977019323203275573815217995816296640263049771354940892234711462481500323383424162914417110476011313557855565036199727824411610939984084762909859861883246856196482844797905342923825108898714696909065411519736012423491023258855052403997753605036580267250854629093782815724111718439239546550445959361289885679690509158027324209014698873947850559648499801166675481668271049822777451805348319109793586323399518627431976839319855617076283052497312984359671806853488426373131956118930130887109052233264205220124781623269336429173255306335612044430397791059833498108353335686020206216123102383409186376026135430457884961833065173699538375111459535592227981066848012013087524148907738440842577287669324055209342712162949579422996646841145098235697148988317224283548726343324377915742447765782882278039485391776238429486293811956081969621364245275390054598555097239061419326852356811108322082116033247696972913357134215485329181893487569239852151730150234126956649659380222853727509396894072135358597051438474125067065050542761821873100097986319709461024347032331524172534992539277315398224482543113652554066286107146953907347408166327620964941350739192674002943916275747147921318770578387295466877944898566672568746965471059397987848988474716045767005708057562151469340117649341686731342651340682506107884367860219631201643741329245689216089131822871004202953637490327715026870804895415536737505750167298425163513129603486123296428735941212215348007804559723183368416892480634705045894241191627471279743132917947065093439403378264929455949427807428120557264221091211479374010974653015749404930331641218900843835891795798237605031778579630163459812971661448044507117933811505651077100647646041318125517664240650594007284139242361984045978762071701410171080048205470703104625918058976455253573166162006418769448369895069546904788132545442501269007908241612347843968110529251706594543830324963450960536028544793586166192449671913637605686933444733871821289527640667461223484194373378246345906635428520250802363186301593332350810809572134409510106260785441430819760751765824158254457813111861780120092752632322819191455172735368079808055614978885703481350073568069778483772328945061157778845762668956690234882106076486317798455792575993588615734782057632765825398490657549799182015155641651667837926842957181130489508251790705051444149746874304889371666103105099685628055566668507196834522191957680006795706730329056271791843781536999478130608289887682728442426755539616610952646346242829992372555452869877158030151783546079510301333999608815200913200549050215969165939227076570844247926033045502124882683500417271809295080152953838806817143725551296397745323197932829289453481008536953861527615731021678466703452539045022127305640941474497199499968220452006977773480730704760700407136286409379004701635457186237544571064461830576269624048927167947931874806364723757771264475449181953628284209665469285330804811314056585988255782817249712977579944600013273712703596506062415425609871176066845888049296869594432501141603430072513565336976477398305955987263132140767073194508385993965491402168186830819408520117942929169678410777377889771257094663996908553099686991942055981134037314858851853971575208419740317764794532020210072369492588515169367426313575644400846370238241917541880640913549124656350941096463301353078488788367453967255489240276563367055920164463557002796042013411239461207128418582418726535286149332846019176296127868988147091457926931320715552198999609900987561193246981161053801797927814163543414451338574098868073310205883066983111433429903366596678912364483895156177977763476058766133755110863216390340239487738086465456781968659185984774652101671121534815304264995772710460842571526798238634119629165076707424056990195287171714231093056289102644044787529256281636098972339414130966699715999047221190517475769765752455846870877238839248770953453841755045947179475557325909610906833634750585423767353947869011407927620881840960219977261245167183963372995010632577062152817772822466230075105412482918585228939605568328805712231030819601657456237014039947697308953231246946168833586562079154886721757194209789845307822519373965842738290165420433589997477220029564208472134929075306694051774070513517536784331132902537526613709810418694932057575172782675854317834774083285288889416113759553916518703923056761327668355677526005004800977769344447086096125466423666569527261699413411725191175159980733679451367670055073123515881179836200328056785429529102364804813271007376451635991340705088064994230887545822523223659920689638491961719918708619886046631809730441826078746305520546056416121267048916305877797376914353271893673162453838342193474266762723513046305084048703439850127950145376137218889667488005562232371531259104005032782644560467734777753307853500780390895004983408095700961628997887454007244804681035895977143418380632721683012099231906338411452925907655849082583033111866078215755371379690844689081606127861064780952470498058850602541498195192580498165681692473692792169623514293538258902864063121664158289717043597361673854549823098824640523537439106625773323660497220746146228537148759773272673195152483038230742040647373593437914198036203589381748646020472379131513403007504734673423002621512431451427347715101260484798632908584988101508669701055937856453668686733227202697634418693849678976271623393075271988325360645665432407900913881073344829479904171843204428151287968061268856106566991432994193126513799193325967267655473983714080105537378548645678703017837318135510296353669631079959058762462028211518243832851411592936284054888437937137754706811264012927969271590325026488587503813949982858864845826856112097324677822119291442687586821013264179814514589116732173958025376548830825819167313640135758015360139320370493304469259371599907931439103509284663667342823562512809072270896956705369459368082045547299265220099367877192265195656931829631256274383453849532987952023448446528114946733144149044105646573671836885997332018139860697411962205586792058156101509748650443225346131344566785610678157527349518013443716949914393997861271302189460921089037598966045554505632427816159891912270826216341798149429811978689901226476425176573172030059019209251354390623464663677681859361408376462909452792700338817269443910457307492148568561771878798113174778692487514909041669979770892943798908956779866867672938891173107042115442909852946081842796370492182376863767200286818890808903061322980367096182812250192503749267364473218244161033954948208610631389466294806810201732175111127307917405528861326957630810862021837196179508704448059381987353654110454175746230299908594177653359212370397625332822582713590176520706769498512489827639524163562332410332560524223244645112215032174604353649992219456091614841278001882640403589219052308917358417504484306004598392146687787184271877878951540199739156218383914917319227708190511106347909265947756179686546966532023838078130030726258478425950243940488644507279266106056386335494150314654245794112397948386094130348629644313672593157745016658910260322454044149320195204434122163278034829019975308903896781200699631047700213378738186966773908126127969346393204444929836387232797872467012060731095950309464060336159417838936156918642145788648115931118772065976670577283620218555415563643747864244488203343192436617294018283871142750466153084385949819201222883385829109410697951168368202821142292543993978460711894595904611286431754968687958841055342085132211507281419666711349768545639170499962061871053765320675460170683313299761101857273890630343286615179692989555564420959681159129556558958732096211965023740450963022265988805083341487939487563387609020210931154126104743416761654715585976849381849528273008893933087922450726499996222644483447968325267157517866866273310253828906718785306335263984275738671193374611960837769284296404148165402257499532362448385802377211793743947102995346645835747799718217023282401242032423706701635352220809085481133280134645899866917668547558114719249427821634667500411130003230896506478035817214845613046641801594367454787826748722363396318900949439425992380710111032359940763977922771733939758417918021532979188255808893906854011919058097358437342312531039016507946274164002645824151786300491735061948436492662386020894664426592407921901227448055671509006755857901971427771387523319762556610504953681185497842497958045760736403475578102230545447944665843144666843559749850903752657720243912647787648456660051331528167079467090171877688285134282688172623208295192604187426527339774486518112955858615837636312081726654692433845887342989790368554939167468307585507559082945236215936737645219749935690362093478407345817305166218105217485825348533732948793332152723057667102471119333158911109311163075383071122543414457795033872363693363646110811886490187272336302308906076016365671391724849517154973263347318272863343258473864949190514170489476606715590641960687191103103886360926159441409386011443477810418165664636613537710340784776821277676712884804307361728390364769825872496980267020957559006938246796591243723028452355239764807934674428591340531599143336435997883096763845536703158424975321280150278212064670484565427398667066789580427487712913122831043632490952759342644734553024113479682008801218810271049874933403442940194754110406849561584695265251348601818198304232183920071653091517309198232367235508903015771891256654305400469980704583340384304135793810977298109247077215424012766103546693608012956167260465632960771006239932592310130570857885508905469669087097714759972767975780487090299844249350061196893421751004448643187535490771506789054603985471902439179801775934729002168184619220269111876555284821882756090791896813236155478638205235048934028033840602612944448077004733435722169498300655983235861027239443946740134559098252847367587413696403132215976362702320224955553746325158274104269617397459167505343894372137750599451332085600183983506736377629884393364012095489843232290041726282156311158948362296220558281766702319641146970497020264270905138552231317209943231939094284502857815142721148152471473817337757705405011441491196560003524397857449363798200139828079381646351533323156960327552567489962669546974832652801396706736491709425584127601461720570987636905110989059380949249363240870611822933612292127799419147490413596623445945649294381086820128810975004982501902274686551694403991627551052800412110602138379198649501760359978275990135817105916823551313046735533391485811288247527624510521322267760121174124366878855427589989858316028387153655282738571426779454809548743723781213542869001850187976590529219389864936893430935015950727805929495673585457293536681476977435068708625273437198418307514415613027798739459665407052315571010332186813094474689368959126462311289039033416345507291295131249476598206513709694089929257718412343987207930778363340483916166244662314212627496387635220626669060127144139387266419391085883065135096200748714760319044112794843092403018892586384566404710114455317578216936963388301914047538288591509477806539279899834734129025763624880197724987299926017289456795202667715926160880598137802022238512574617463263750155993626783872929055952408208198973172324476786264125739299451877060445350705732799575321700322847866346890953522586435059451668860398411095148994456503688528493657476959427796877968422639623501258481431865323950123873040462732327937217567867502464286768113734069141919671071449494491987068561906236093515563443445915790172406885853489527418732429379309688899605145676188307596695444947512607850105730199621642439848783325736310410737090120933306746818510359547545897165222945704012052308578950912342311583327635619654888255044120356275960372370516759165319376330443514029543481574229291521138229716428388702616649392393927476867756113911412066653543001740467880148266698982426271516267047539663736171283845183138130164201790095674936287936166596799943726243630839748025718466401637834554546379815739589194406496556554915938305734920822729457477695196276124359265582863159085341129816942951687337695396732507463183400289568377384164253433236418596729408829334593829068506048855794589992430945297813014948550116970331054830630310951492734227358826785883707947507833859739216841191906467885328398910677068565537409274551570185084236141467694223874047786049624309713226813883169468731685327311548147542308038450042972133568424463843404903314537595531166689665963784551928724462292236206487566339428843873332351188959635099516282659345801007717428409757582120424455186873352984285192009211550824607987773195743528724749931781647920420711249468847307392006129163356746120364285019073430816659405186548187303579957361375668620351735032395286990007379568337321772177090808924603587639779273261661729852192245063592496176034618538913795281290988236800903824385366033069206847180440714500043421804273597609267422383514699281262328095171219558846241622350139783712103535302849067317982373519932904693025695887398204290977934891625728519839792512706633513449112664941368379803740887288002770406888286164890095979242662323144155814787144019281291000585196744424929336596699791896362982616526158955682902492258100563830029102022299170903362564111148650138372928553161194960802887348110215753610137618946893616631729511808169306139145886160525098273153649248393771065933919576001855598761836297701359451797641903320351717086989333188990052062165826641962547823164574831453205740005428154079392181418994078536976303857103551777758224453406962268730299220281624130064724850301380108511696215338183089432968338118663474820069973280126633321237556907954149986239877431245084477558019554610183207499274835569325334305601907771241679924369791700748714049843855874658016877652544584386801918654651056777180403153627764060683231158206678257941485786798667141033811713403788765828888100628470790395204840431627792916064459076643135471687600567481776825179153716016172543367008039041262423250928023711209144486659424359324043685696970232771155030209927647578250653923221331590475469238855641344914996361023007266266565482602292067936007085660342207991106259443237255384854822467730677188399386614303934193114030052904405390470297799904686808976290415016710232373784682634912625518689553151774011278288093952262897976924084983126264678037518112979887669789967587156331989266628285114085510245932629164893801564406960523596052735337332353830767008339048315908808478511350986030170622593391300154440957042952327156400503779466452848201383610323822371625425612233787124248752364255009067643253352446559305175551084623893830480878839011898512810537429930306311889826158591655894901465900607656686353291796106811847533482519829442099596545233335256003109649238643990676399424362270147644850882101147238762411898127129582812730700836094536073644821246372263959797901245143744138760050957025205135166976745336743253890909014426565036417280945506307552397249753591307642944553091799036717977969074204549481064622952420642858429720885677172753061227050657861865769056319815630495123270291218089791854233056071500670708936597514649600806157543362495515783604459990661844740421023474303895621006587666596357866368767479915916055601659895531178170170579315256373901564325187564519352847413924525760210343503656679442722123892676873000034875546865066974411016116052569031113535039159960495303726402524417505867556873957441007293363801688305471398475131517527075080001709390821953292023183887945770076945361189646904557129040467147584968336525175652511849337241695392316971950995814435124570846375861951018452136242849018366846250170393056634427144818590403297125631721263471440551886427961302091236548948600158342264798956722179182915147477749931438668005891304696971120243361545113159069580724026513611318003170249916435824426834833323605113354136533332746953825064990159001340094571716272512231742148428351020285064468362940870912203668765295844155079437453396712835450318066965634640522305886374911791271237373086128394902580244611617228867013415649088005226740530579430672445680034692928485903692465794836451884707006192971524862066369395261986466059236915029414201320801897408537923191666712481979571583147095873901603031114684273856771045660917376313804142550711204794232338011921992279072986879574597275447351966683711007907257892981526785453413871971189422794926113636548725314238888197038200871076380460087043196934439674052047713934447398194632661789202754583032045365420435176081465474222591738538490206667734782559031860981809161575521088950097235911063577226593444796541215241396422397608541233849143959979776268849015498833640000679773886782321554028395927261164316626856344698134391960147572155587107292589901276850293889280320270460094247646244982676779557530612346188662178051827655433177696488885485213818035443557766786840859066059326894565674355782507530198868647689037015448940247736574634027471212501332199335564642288168919408288831753314152782277132906550294440886395395220308769287900055997668609017760279812059652226789677578208988078736638947203811617518212232309196926094890348385973656727194632374763020030808652199685644350297402687223255403229928190441199273733303530640287752868581413024170142286224903629804029430082157263669884069818007898414848251284026651860271251996340694060579388941394171600442950977420700375054464744120574970408789414259941805654942689653473360037646202214512737387781678764665500566120098609900029422262955535143635205967912591087898277521819402219117556311812711826323262221540881717273950431992587968020073977281459588262025588886506122167724362225503761405176037298293985656345440115242602579978010166914399113317042021811238811085475412521642849270379098443234502861178736594241730120841622168357695553414545528318053478553504426337805662796080512173438622839618980628213451328007555740363736493391123844846972819615300030269795096080625374517896118839148695811319291191496102174036861615299471399640787708827930975643227349174495372532247175173263173248554888542534974235360018591018624638537312068808467034288728181639755686804232724931290320342603311994757462229051400954145855093989523088145766597910205701413342919242144554569899543635149002119170889628036856768298103006426713590684797690632332434069894457151925398483522384205120670990217777402100925633284695298620500837599085531733515131250986300109618570893478497518354792765358973459732358128171366634687318793629648893975615269909308244030361323777912168288147226517316534410934217955412848669887233169596253288906219702369223460352419273237868544054731031165046174772524638463468438551892279085384291905126547922814850697093220354208642159396434795791154091348002541056856138989432885742151300692598983935516943895108381891189803893702940553771139583815419389205074942128078535285241875323664147605409499807886625454968054012997916948917339106939602622655792112772139288810979782910312530727373999948781265771763688139048463093906545632453997888499325487622284269120696846128860814448372950589727534995376943537098733478695360450133534189964444802554309963060839276021622617255532671107855101432455154231044501113547358772360793767762365665551467938320749329775769657593018082594727631541554523078235536853068438799139911477381070946334886276102522599423217402747516598642708081160494616277739921283085281212840402437822264268083042953074420777969024290990386204044278588960260811754525401466518282571236791199521220211023561207195283029525833095279523370323316966335105855604389676111398443658228999600140844789341141205829165543922827859499765799599163021491990270699006996275985590947536605248844169002165106153819476596369074797959471492934764681507916668718340926830068967588081900537170800898270210147159796045428800371055350684945052270106206745813516816502172793794666229660008660120771433890388368502872869576145037398046748035783487214266426458268481179961449350513966577055346151508759884008784818716094959478221311643538946501225322495415489901299926382873667257962575086137516996970167856046592299028593788484007516484927160871030414902228322259634517708090907413577361170410839916344278567661091266691046155771155851749727183374177396500342579578834143312973614740305134939946915867751094178621783972725607435281933951599169318163114622224130911212832092155762436554903332240347503835594230446684830333848698536857372448993177497385182642410018823606161119533095505305033425293740769247244402926079708212197455914067396491320864530476419631545975986115103865693817347767727772744905675533515751260068780183996621721118545777333178901708560146943096661045579923664665134473946794582662559462904454859995870949920957602064584474551382427291797773247199144844971596497615984107763602382714232059968591211082291872184681423371448374930295656323636271536427718908173662901723457458302044186817848664414884560528358662764808138788336938930175660552354550688689539789788577331222184512130289613048564623704534517568963620919079393390497337060284855502220755875925538743367807429225009702150030387108043734777325745885296502423862018357885833704856209023368803200348545267026562575358008032296878827079401307746527773617029324791495458698944458371378788206575689259210302366240634955922117651607419360748807541729990360654957806718425770875670187608453435319180923908622341976631700186918635801512343085417282862399342482574438458231125001405961366301921457774571258271760262971566695494534541077843134278213250656227014060237754633787892157419039002132492353450553135053090276290305407624916413306797932910783580534748152447453451730650669213471521734428818806080863111351936720917959009134408517795773034131988059055729417358762395796537829170690029252828252730813497237471852440695766736198335654499040143672498425692289683084623632971476607838856414348110095552204239926917595174370260722766799435129643960857005575939678552376130921570866272733398479392553252850794974645589935812629119116268928710444034288002946551519480888664652209744869191959045053280577616803244938474729684758523078102699607958784260368421143250001495303315110849167134762045683336929238185137679272604699395825690644877714185444597277581600523434145471454113768728670044281745068815672580665003962867353787198320793208887220936397320770897703606921941604436226685262373281037790331318762580615924353295614745806751106200257536110270717351780245049411489509298165837775644867137977205249026290632757551145880612594269716914294592473715392757801467202934515515651345545063400898373472223547357729051539709150821804951616552488743789579995847909340621652331908462472850445708397182550907825715030107300062107150555632235662933564280120531065520848229915608811576839233643238808169668892227552762144814591955974529014698320643918853960234689621066543423455663959705140373901033269241044736384838539849767967121660005002761442960654301394632485027053195164184509518934046401082983726619310968346776706113823692469680123996100395114074030148903122434354907946104327609995324362495984136335895781498401789835204837068857342340448962038372619025962335931137940495098510215461859479124120713078561501957419822851079630709008878177654159479290421687433973794693683712027040248781937823708685422757502340457870455392359418193594652189271622611754001408643731894049860235846884265613374959593611742639184173158661812083580959479194732787040143059126108035573838676543151206510767480192807008829129437940869257378507847398321457966865365598428531214914625417043692107670436134025325489752412133092512443777797874501803048659800861123047751929564353843937243620680482950686219785501204606463293409692048603907117327729742722731026587079884751523423382279966588877831980798729763266886980780680390036687463830676858567061377329508893411710848778044189551723277211078455810017578789835830980879106194209751340611942670366272203572530931920120122775468947051359227792387562968219548975082515132718778758777462737499865406300020546166971538616708147470661538627369726104349413509470452858323253824616587635819337454071380432173895726294849992185908680635992216631542135118682852876061871714713793611676282221277635650079444582252692084883923003874661708186621919977413494210438864787082301234587915969010266874668424663890091048032275326123051379969970090344801885181440138999939909479527887212469778740234270051230817797982468137209507648364317589624675043522431835734838387309367054884223720918818918170133164596302303565121449281116138674156759601625129470350374572920068289377131314851124793945607206024671268247573831948138719879348258251678844821826462761746257456536859706152243979433614271483309498132271978949162118929654020630401099117529502950562770973233023296663895961111780309724583062914939517894444573513922053152495566056703361180201032648838903280597146899112749289498992378276637656524650701768198234853261118340942207513247389835132522194433871226852332300962730657772844559585443334959408324031117558714200455421829838525778261420212761091185992760257596481597284732489456998173083620806280044756826217132228932248941609584267283543387283943724826325480279256019732614598413349060748543393903888487354271090470844077085061091062084101901493024350671580969754595188075500365795199022223910758579067606601715725298794988613746935092033654534700168635574811502811758391700694939825206954039075483885704841099127155999841011317385800678752019765388265070287536903055956913540061185207467813360097273984172240680216754664223412676463189271680311025980372474898817943298530137375552796902530962498957876289934903679512604267341289365926744633438037944165941080987899306463111565623001168007086172585801078835587794856919535303213846930242783827903007449309165977208356804744635070862631680083455986397987982150638154306111431783743723800277726170726382549007035586140316388070256902110980707290450330511736426977644870495194433318444378489749640658371229821384182192486721094229792060882428841530114702363620869240843631594882986241492141055304975630507432162889076379221230587210487833727577204120532301840082580988807330755867914589641977846800771290924789919750465037690055801891325361787184017156864396292747698267770502653239804075932594062799677781390085074351053723163748751566951885975304537512256546362245868950829817343814134665774768106306775171207931125452785720436899294706809881265802017416508775983775835826242482387814520056345601583767679373947861387105949403728443345845282121595972511081842754803046641249375374539715709279673759862878851277901465579472812242933424634821433822075714163939988074620579627344932253167230791263708301480669904393451938008121206246247606474726540757649057580633724360587664977254307018311480774791730651368675977511572289187745563755102553118615346751124771827058223697207183011948004671166691598410955426120962212769263742662812573087596998358556891086116100772639889743531249232518206665262276007744898631972327020558504287744564985920271264394649690649670614377117372005157924058374665445667418976621635390782416685735882156833661821225700727203490960343747572595181915666898636181411212947439845534939191510478383297088458623650267717939232639091457375643467196121026765591580946996346580277127389491726835178668785651742482988906888669386436804990356725260206825815836697849458696578831154821643157904593903974460060455022158438828367907312010991511555870194640045886567869690187147316351110293008222012329813180537714025216984125066432645418516029458910654742382091686419038360159153857403713976971935739199459133580113005871158759651699346371362530816160251420493360117135615412781737845029045156977393834918026781035473694919291365885211200099570626241930566652411866257577208312461044158660129780458302577855598911053670536071800596351007676154690543179747422454074873540721458313541957488978513915153908301795584838036918130968393283624165219878298245463313790675776083383007524397657147884472845208495313144212855232882913103221114070595553908144219053704886834816439769440388412698564933295743729697403695905950380193258926395048261795840712083310011059030244467002361846307283373939019378400233903430636338445563517239439279658301928171558105642510371964534864556540565743675011558205794434869714517288945508006457003963983759604470729774130506572443852912383671492901458855553055415851008202240429720092584689622781242392995712130633257914093538401338840721743455887750060281191036447296032053948257058788414349110025978272812594706235559855669650339205306222292307767324769382741732813308903165439117066871752216272323722695679387426865922419651340890034665188419356528846070668950600130843777152601684846077351580659358471809556742962443456493266037927020428391727798786637782471100808120436672388636226079971744955675892640920211919766019077848508487284838085141913036749474770471569979011051178687581532315318515771789491642311982462384418564544449091820449855358616040587397296739789428592652016108700246174469818564300974793527249193674539744755819307491303285348504279118981096081167004138806785112346444618570388291333506632529553062937233757136588631190339554379710105054886583396544375404815223783336195838342325686732980325259223161641713705523339792565496881301429757959922974279546620423916819335104262766185945354556534847058858879245708419096276177688620682495774740068266483973427989477361795488244156054707058695889522274759036546721894958605826665143374433800832969237525180006651828955998427447905560463925856552133158583522740206900481119853080928953305968190854138549656896356025554426291883997702884618416172950400116830691329576598337266751680869812242225867257003558886122907268768732109408826568732350874842177054533997938708244988795368945796773280760626409073454974252647320027352673951539939533926801979520515516022065968387484688042388324466296496437209278868660362148096374864401631267608754824941151036131612354030272408309643035370124099561004739057960486507488281841386531513004276330442306018854732303825593655409745637684353885690348453940529475928693252593841396159025641626052590257017651653223957369615008869655803132256038296564249951779746565933633844840641307902738486950236648599175572698880160021301220052065046917194463613679993188465113115001905237393023570954512008957655798237320194478445658514316405918373872789941205834003443051713602695205869062127280454961655710403986773683182770434569381588064344203812618881511912323286790554568995220631943909764210785591538058409477971848524988839697874342857018600146180274894808242445273965081889489049322976244975607882721583538677667022340175107639749359654334558256064716689737331985827332858306002390393543079179613002459500841034886756576528902442120485461173585830892232520120611693067840410697201987609802071604684087760892729709876555691718638034995171503368651131228461954175637467641241928734449466229076093060225516539799078109909673723453167666907916203712832196812138947080834674507213326030744458367292611768694517719849690911141391518948175288540548723270879018610910956822112609112176017185951926608966240220069462748088453998471496951010348373431733902021341362676912066821525765543617032607645592976525533650570918495140429248539751495198562056964349398131205024127088689481415789837896027575260718977077929601747666340931218491483884567578329141022563825965109604668948231925231891156960098056948910952793268823947888669989865952552614119488453498319380986534471287817369754620902080940344062344723147755114477982612623872394994105099754193824138597349756399980534584773921398877002514855209912527828482430663679662558970760150478090308904782279161876320198494469190291839660620576830040617815500104311633287727005712788160408746011288311200900551650973196492275977052678258452989972142984835281747272797163704335838936534831088622273087001932558424160359726085387173264957026944444309749323257327733330366311973235619603352262455591421631308175369773855152215681502966651354821893114564632001127067065994252076469488133124124342342116411227613964125659480692823861085203856562608818805126240675642102885149353624457068843214857869355826840776885132995829392958721856425107137265428724861515180541941110239984817146266173146223489902411974753048580884191458789481981977590472184485481129743279295794683279261000272250278694137949793991155465981936417517150057663092620393395539040541654730169144040820478418798702908974437862273832233645440514200018139920982997771695351395464659206258584620796226960868920735646885653963737141351009062585959856491670323271214067935629473341815864183583824555604249524686261205535831309371683167941376087702961722424279841553819545582961318760451582172362799314209036667621132394667048002444356659040735823358828674956789832665469940928738930979740542978533247512708686582482107574603350148478648211099164896309492980563316802846100031152108542876274675166254867657660771536860937238116590767299907721291888508376759413417994991804831229004035780418179536697800151451246394723780138117731367517996755870164888751186531405935336472879198538528471933276015056983278536741515901570832440030328950574290930940783215488821451692158616688968546588165098857286080050327123082237136939316215854145594796047884738563144478558900674427117737031397562550012003851418315567765642167956381471246247275105118291401763031402022856402425649803929711267687701716849356310921956841724000175094483395057496124724244374137651451578295785437714090268462466570675023335486486033603105337028078551329467335007849164584105614478252067867415188990959416276000186808660375787842207213856277955825184085217970383528643797254235864742226101550312721097528728314734216387596718841576757917869143256889514942034632958189346561711338793656225849291414605401698178553042966303698925907566547699096325295608642726143456948623080626093593176272412878001384131030489781684051287738189294677594704255349024828451066686725379810597134852277469861214855144411147256661315444008866393529254030304156937937109946760520150591411920088204135242279629638003681702566183292508735345809559471955307393277081218397684588689462326249275682466727881667781846901111847227985073301221564780524985701164382898723959666576596619292595607651555633914351493942920790079921417525534345757076297871710750859695582073261262461419338578279528317406811227936973584227484165511224502204859078893479111397421719083494406234369184587163573145442150090944867577171738759875489497223286721183309240328465794622185145256184047183653650414653132633446371795141348066568634440592801314873387511204105620467904982232635277471405655577364876713393936518849015975678427406402544907342310882622520308363049920554343175628187687735206467800149174749370883376515805623905067165871674553787230600651382899418745350254493786196411699151424291725624273772015211706240847528102958822009099776062865859830603653606696954033576949727484413066763483001102847521679621406703592355067000794199293965291639289321673842158835437002741684616150644354153065603279690565737266936551756674472532647071884922019149319227359998823786319731268518597275477609581526274303533037878003253725517418184995175275222873565435352387116499101137246653452207256942341255704553444810879310321150396741782015519557489758407682221936227458880890595859102868036874483286817422445001663643797329860683209482010714638880808791879291486957522756697408961271479116330022628506960002823881191035252007372086348685436027118624139536790396622512092863648443866262084076977570036458838898899288546265434863672906370218957111255496516283451660120393665087816654022940202254297777707804655384270676639107214887979408130390029193370257316840549729878734254468512107902439604773302539428169260777432614634796326581567743694399847466024634551608302517770118676014452848319614808929939277360192189155914540747778697114023661852491139888974558834346848087955900336381493030106400051583931849029013780692275480837954320631218713445450508924622102962622740922530049710435450593515270500481776491648839764471910864169871406553635851398893264408464790317827571075212988840085494002580570110365858800251572655385829462845535926321054326704672024156762166820412018198811753098023345651600118896421629785295920655256743884480294892471848633460949427670185077593244175904544476365599835395761819816953994463372360648489227215095280764261567194751534098664578721740485065751245599037876274195514485011537373201241405499058286216682790533375707112702249231877165704711225751032480750476536355403185832488631638895367131792103318780301172541369081228967079993862413119996352442295805450902907483510448812243545313018856530528541358389427691187123266002502866145615984873520427486449047588754984490542840472799730326646331775695486128313843021011956393475177211899650522184295359471503022078248436337691896360871878129137880562686431121537701371416045174104610973816624290435696314790974857712923355975254370921442702487450179385141241312182599392874041132540185213813255517599700522713569619343059673459731995221511729954043840784823153076005876628050789516186870024551471946148637767706220502520118374031019916628884546742763911931074090409383324845347922410938305249082203686332520044650568194914564344993034341760673833602858511550663830512871080509891272374067184677837223138603763267219563184006002874337895242133323353903492854935760109940212377082890766362694299138052923203048761847053720085366773307354669468173049384268726445352504946335344477513322689332906168193985250360461761056667693498045319650519353841291222997348275288677014845172987886281385249512223009144104302561134240544893130305905879816535895585422310419954428146686857003453480278528000875478899722149621728709918976971204779906170075454630920891937821908704178076086968129089296961657725805375594817847794206500238414494637416226886537106874239308798943366597347834143054592852357191139045142783345183855700833406092167919173319946075069552991991736496336415814289284119747894457631779483041964194535058974073851077993068288664780672376029121315929790818331896082629920470241334454362400503535266071380577439852071834618984770650852740373365071466043940175062440259388950275944045022067583338999888464528512132205224712505281297828818179999724790234017036537987403524389000823805591298280362789635620682309423936683994498252774755352433017060846251648499246320093276441570417316234174632600894689230638049129089589710235592178969177885760548017394512161397131863095217334066015010432628374528491005151690066128486668405967187047414051701570306911167541358216625567505993043807298014455470808391176190807210144239985357621414266860753540507311268365196171114669202324477706282758707590532837749034734178030026563422399090733040660870980249964578339227930582716538984910345727578609184664240683389241927156962760122400946034364826306251347201841788792546394882600821032601965263449681542863608162511909388024987755752844735754322820875244991200273349313026212578287123949012409817323945355095724334638979466992993132354827771399491992059939958297959556659202615038063666950790742901494281080323980199896592923075233331503197190896581922940264550586238103900978501229636307550811791858910166536617046311991567743478883854030775754757185689812515660398847532885318369915088379977623795449986625775019314115287511071064552883753079026408407658016317832814662148859500541029176152282993094939058874452186478706545531753492110970918500069705795664849018127567873501264425726924551829057163879580337362591333058675121387376752228218678448694518376665436296068426050474989640481658928792926141266338624234251823359020100358017636370885065282311473173693040795575212638404778380904897549384168604693070380645624827211592839047794015445417055627554941753316205157586208332128158298960061138201738741805485770607263616937156758705665640022919871246020397323097157938548497046880968572265453851226396073162517983851745756320220209374192924119010491137469252432468057417716424805457366556441158050552190326090928201865841895453520100683792143905092621197989320289648688523615145823047373194553295003807205927738732521372748055705744155228958126609323361124099080729173069224387651227988056756216156987478110520582065321552071343712703467748920707041952945267139723002117024956100233396137775591642489186456577380944246068934589269207231777781134657623435079336108970489553812911852207573233296547669829633427097181018074485881530340311917520216242425833725865458468284793442791211175677338656490719596527510302308864112122668230009461963414292827138117422909226113222987682803479136360726527299575117688900634878917542971927375759545484809087168946524929718680654745559848019325169955891759862719850573379539488662113161128458477677162051999160425351791375054870647134731204891679024408120863928393545201349564691198900050719952902292209935626006698340786093070524630732923626830520772441364200192093641617541694434614119825606253726743725071707185537690000734374516780533201951004909803063822853988382393657088347626977805547836907062507351239773945882682927690947969907244420517991550804610310064464759521214862813673240622795980446159516993171363794330391148827290353681357692419891411157337931076859314174648607211423045185817209712634475903016437992776796682790556194790323492031574305649491133927718865350100512775949979853796162664578669395080054926325067929069905634013116714521158831039357000346574861392625032368873476360895405492261535919512808662668155605539253462869124197861764879585580667924324171550256340667079800184916971255285551794691251177102455191243701273925619636913045066841092056476450377959425555696690581753638340828939202573892234351260529482271693353559480490696701556435162465511040352486039452524450911363546547978644817130290680478494818540922552083063052086475671070026322187372193679209247605057574268522912351531579172926744419332099503548747819801089362188749668954218398706189318128271830955201790588483399007008550919542771871077278698927527901659248525345608401064105339030078547938545146767146417778487293188521360636803659538653142954714991507037462687890264057494989366998883846605636467513939525698328647604813502225276347377905708461589718566332861123771195824270363298565396336305218018576418516791913210702738432116596930221505179682787383770074747769139975480717813994556557158288786356524469104880004328484597191027798375661375260864523428724561765565429231159266346027787962286742468204983627778939486422709888732152689358747954857665015870252779234498273369216963834238332945783195155180753934626742763533168624649299792086464577934480613409595628797795172025835127526527550418120848207904856282032877433607312884310411662476418110899873291335914114533856214369960697147678089618026167674940620920938802451590870663898781344198484568417714523242687779281928289286033507322506257052152813117372218930983008657346538586821109269323285708217239998213255351846785828646154906736123626691743909112857929249666543097686860588524959730530033587107335672548892909261038040775051816489067774863726661914763607826138421097922625002966581415950469351577825286467083986430654669378420191510563624407670721429601770311466240516248667466324873471631747168099376220688525919110310693460513141174306067338801129501514879472113878336447853202012427339441815081532547096044382131809166670080227566556016376314577362531655539561320115997755704097899600222334399567294660397311157405010584463889134326801007961788240976829977183546485478818136669312387760724398022350056304531338811073151732381515893952057764424878844481213179440731124489946710046378374931185309762161930006435295761167047505706832196252776156590315104162803925664853754076836056046721850392792040355379297756014788139908803580253597602328271596312035325746362543763472575167669128169907828455026579945697184690993420358302784816998570010178662282539096255281748193839580799426868950149277477696109264422604187353532142598773682681874388572997147452629938156509054400772436663022371394172718113033185459752988164393274946561562766588985979829856548636773841369073977717829636480455105961585787435444376105014660811020545384972132627629005370284751340739602319613473341947609854651887227941360907744366596542571956919403430877521659247025911437956082064197347174882657638343609342212670177522934788648055830273508747548492560875187940539313426526549532581768803843736525563856852599323458591547026065267563302963116258221249533254581247036245872384212515455298732221841210295477821246703780555302633490591500356148516103112894284564321285572491701397889944123773805019560466302490785854497547234154843648600767114667479983403494524272579637032929007349254060368907914512652759691122157948232448740263755114369502933180940165281728127565346920920165754283224259772402833781746773250550649623059146315556115756355074626770300517778243616799404503004450928271713052345196839555488281786601402958570612738497785743646157142093240825896500483744733399841506728758138849181668531399177569599620436057239178053900063394230026383313321278609486283828775403515423309329220150392988984842601014670529914462011154992220312327710018661345480833217033086219318814240235416215295101053170338176458802462624939134217318616106598423542360809003970153429361485996367329186955403883932541505395406891884838447585925233318240223473054152306389381757507682683170837107704036097682435946464744696229511214128969174621829368208574601593085710485556508711474227832141598259255502711277139745563065435836565868800104404893680305935211294383433644731675660657985228082136139692540827309118622057459932839351432961407036284822269328631034646791297547199686238460268180739481641107174896548956331725167751253067930747737801798694466935161685698043427371055968647257226819065771357286348353844992219935421581017454469907820395625385671913845485880768917070244922977222902323025449003730437362216132813633221062181334194539635338862522546688252177276740575493248994838515724926450695609095158096232365215546897494983802153210047166237174172731973453900370478166676975422312203804112920145237299135511495462103072142868701669282138410175242213216362664032223453830480209077311948961777171850229820730389302811332327736459391096066457267726130893652153464766254148610362428679603499300644388212762538599509907920986303923767355819138495778830496791259226584363322924307634959351708331314569412504122197064926373362151927394446209012538632600706505673494279463940340477406867113202221688254267617947455559668070141543150562535755210785558161303636562084834382241346240140799160509959384773220145949351752648933394014537860368051200923085164193558900535799367520761318119908167055402534730955947474479148738556213219445350698218257235259426955664650103513404510625691642709478535092028157586200166120329544260574899342998706168468356443384745371880832552589539101243521385963109547809033475442961917403492906892649006051692246537982893544733264914372558708320693982913847538216635774042779377564815930376636348309473934484700182085361863389742175308915450420659002238923080656950583149158732518630096110536080938963565247794287559134017496976462056813267070243101069929588233661362109491099836769120985591598175962455436933497160313756585602992903247321483207935964766459174583031677233136675761883692039593348933806077158447083147334042152479881744143911199936518490564781064523900209776213001654136866765920768416010408327874444335626786528903809860303685728633886337115980108797459340744270957171276382386270344253929396608024568384269770084153002052566054748025587035599288208211609986975539765374990675527493997660864238304002494068358935240023330102489033532551938934616621007873370445173158815294890007170762608485996993394309569477803314379313107104897901889551823540732852551556477821650373551846816264306028183504151507630704146512086642419162888458628919181807301067991780244538710378668438807564805111420890303873809242900566878923748496122232765985110965350454293192457678565188432319686783060942128736978339132566796607830951317584533816858741588708050333448752272419592622083070302358673558091608121024274332593470599841041822953725124456904351360078230671059911216581801757055361918333959788747605500042569167272852296007456326288817498945481152249634629676512934480591329728613870085773377848193599508971613550933213345342311211612378875654389608405035952138159935297634924381945270066912551336935007196233959382035654661574447901973400283604785332780300529554989148030309777477775342478709799490551457608564884655013063969551698787623742410872609743811315036277180765697875017757019915806015188648628550866661860442649492331926960845186020403671651080430043656778322527504815941664518362878343052911835736074258683552793407344878761594608360719374796979226329993960977304959265440510675847643534878251155602384983170947665448718494642552547253424475016171366006192263904054982160648626284021616480983261389088681392295319311729935632589805012462782274675092106962126876996234633490014542456825740803556056220937305155096740280951472679771290031548395527735009605735270773084852112420740507044777500000685027483602251705154980382997552396458902158691119499501379098610898486951672948730672170100944442203965297192289722194337099947936132941200694077911959123771174605980765343169506531089703932274558881481143120956842422683809378998548101951658693051108607027678571120330999095988975321581863856545907235596446202415061527112562633476019731067294237353430923451377514011997789220018931771352049731386567457085647919575695692759433442899248638092127623597713148848773124821119491857123429963603171536665914406687415156061409891442823792304623241788669029176718592394418711589582793692825366013795817102611276096878948448710845773884526802461857064006697692575482891547049427398461742026990566811364937312375277638649106699711838096134682599762531534723774285619507130563964466491356206794650315013826750839346293946537442313844600733437712632900288840840807955437858477937829135338633704141298981500426853324156931619316804047715533707640736848185850132056929052244673045540935479249003787046679776014752092623440710088963977156676598781672823650670318381860493527820409768976835041259180142672459145987238454941048289473943391029956750372929757162440565524311430844721974632974522119172019866461210311620436550718515115225096544818590034988910010572428233385301688399599457284947329849572452787478922869528916762661147214258970294938489339675036153575985943629704475951860121906326975929202611529197519428148106567977150360224141865139581958973238961979587330718572500915872772485961797261021638478092694225190188672558227441604895206583707535730484250681307065471444407733839594599971990193814572601289448632150662225992377907348733501928248553206328951988070206421617023264052536597928015645298231674516264243913075417344026962319460070166605591570163554046023765982359814356420146753645742085178072745526905946297920988615896319796578437906813711771599785984165915902181232789431064782434827761604100717859266561440532816063046759155584083436584975687063927272319606789138960395004975515935194958245115535190813845503451491242678389631669763609219165339410699187075108381621063079613723968737104120327654922020651078030282394206774772528279269104665127038424122518803996344650361836011672302269209274943429344374489573160767278536298215788501995708872733123240319400180405436815587351037835885543551996506557138276346607235030821061896800763331307311396703165203363322727147046331954673520565952244575735251675183448285924263529041150929552337041066591342296855543089810208149126069512782307823013675879980309192975920530956793595150890872094851974561119533068942908532221560639756091743462129879743804780068911547237650401317433584202054175801431062007439255828848207019860953932997336295441915348321692712603082834399970326771294646140845496923970089085803264032571163075384522289151237198924657300648617637682948342264228546219599020014248342383026159931451030707494753338543815663784469346644413989608821268867763380242506977149924771367411873167381263167747816535551996503973775723215786235407732863635729356667016480470237932524965584777322979798135246004039698229929426409210694409133698032830862176227830686947974157403623559346005427263980033396730099314619792079703411668390291284950090710056376861027482103234015948927904731134787280937360222330361508580596930035767094050880994965794936531975953439724488144358668784661209301347140271017097751085620985394523918219803179394836445159612323317915548662065474325814454544739758400769973707101232463484073265297733465270764168455009736372634006880438409758628895003643877575964228971455158508713217562852389342386910101874099011975652703741021832890435157935886502881341703224153786864384912042066221773819198808746813400567196772269495920543754183449132699622197405213361436221327694479538728846369301425204069078086925164144586548606402714349053351558347300918685515289009032241889913523632063893013599512115785135277465493076735897479145097376945921467722509150790773853941391863316557625236065462249690642688354104168882733303550410817857202307046760548094683759438789596411086298615521799295830316484748435561157420483194340923184516030600464876982825654089060422314403133958786397947081214213341348569315423703773827534200119149027423599413180780334894429285195355629667013646311008405059210203754769342578746123154101331860041888425870122553542361421637748778297483070977727862053861573265423960849320336303925328520876508186192985398678477779484859593129435427937018441304212498053009618746728968384572974708556769614612808964415693120515381227252187112857144742441531644555871330740564292120974320903954830004376990487683512748367895022364724014894686685673151092566209403122843370647192176770793123374712369146576287414110452227725122270087842961315122593174475078182211053294879791684364162952972542544775658862196632749049439089527957351717321536348504469199907521974918593580121060680213950438588757944827424391408031996737117069461334359433882667616689530033648671734841893614943637214110622168354513571738321955886922196067566821328926085113538131163073941431372014739368823137033995582313660596238758324861824711974741159480281833835643341375903225153676268882412847760098142549201671198799581250941977092942772107302978567650063886500347700648415413241943710620352926323582425571148480811884924867079807485460234262505922845579810642760654621936058310463722673286328459486876335562599281533293269006314385074112542970183137694716392987382783024245848840300731129332398011056652203049598584807006986711217376790982364090059931971639048196331575704515207603905790769979278431690985684288606590889097994061169218109932087679477827582942390038334932690847874233410974994210081259050062784088418528923096541640601977638709481417325452709433311355385859713238034522144987350125982098285930065955220489452360436894016392793639395294579297408122432482589296772816926278495577865303689547426689661936254707708591231108010531464307727583870262559108275975981210049087259428262611433308701008438741130201017721105963599152304427146954303747253589853355644485112328786933884662652691621255767345511877795870533748560559398981986717534779606324638454850555916775568438304594873421983663617510293272137832513157343916832335374924680627219871565897741078849438080971650729266768203187558670945695479326642124059371152303779947062978054108688671991024431098565234624704376133144395597226354389377909105015843206067055336723169381484144958215677486535077171719843764134424870717887156775474509300580052715405157468532923937751742489963382301140995146074254733568787015630389122322722996775501231834295948233441633375380385908246578885644668543445080147722675058300870464393334368089043677159106383423831417931521164637785504598642686680098297611145585797180577708646004231698329625193407605922362750580602430251596557495525575384136489392578432276872238600107645049397656712529993353330674699675845693146496463135384879766068546100282394843803295256928704076376352661063029227283708394436098255802314345116113671064726056503635780290264347725570002030919306582440066203464838615834634403733183853585536416281895502979992974003992485185519596095965357810855668496236856054871899548049841493065867883760087243789344908197491325332402822177440896263328245423643388330028652288807964368432341244272302965576188035724915510377143798068588929384587955749383826041482703699858275917472895655485150849674651869767170941833503878258590127406021728285770038518267728057337624865185406248289340781512862336651389987379047966488903048875629806011117818167530863223217046732295320783526663794676426388056584406409089116185313521047289749846315145961014403466892763546617412679881446511270973986195357829515242055612572218498079572116024273581586821124258857746741086805071673079609516375907610524949915906499157660345451585171820952224152696797275408913631097640868570384941205215515479397838636528857895866745371070488727093307501695135801875652778444756465532737118317597492015734635820538150221395166909966060478141915541420367129024459746767866430020794608193549920973513432597571871068156293289999041540729557805875264259194019104100910771239397455553201857991014894087692683114948193921763322793732131635877269889616552746035542758191806951445371851056957325242955567105142324162650922211071550803752403829791246544167074931712892879079300252542851277320759940561042449444440364114864659521926050573702541850372173992769919180452414682215242076304647533045436086616437317903243562461918644569805371596429644678315439440039886940630433892417144092134119361546920947471645280806160197684013018222298694825513827493342253718710674577001579725468867834057338181804167658254998993096869392159370441052446588599776538263004527510272445037739213294351955623891377558890437435483008040187922856081945885418538884652081456425269995474165075875821200953886358905928330512479966878693338273641348023583048318643624314047884363470226540765962030830784675963586937182462497234373212308174486818674109923746848086471583037703901904373190272508953523208712973452613137757022718039935490239719431776716250061716643113550904591012106533125636934587734258123701865644069793986776653146443660387193420173372489363176766864824696069796547912186476114686579517505917217394699675645582817921543352085654543231482289049732305067279966088074512648736372989739524902981183179260172010415976977810064995902447832329552929639676900835325452126232697420392398482454297911211306315270101780566493374571160764468286653010931990534725594886360415155584991624997120035251734738907739102330068492875647212583308070779765022006881245388589754652201130735928486880364449466994647074448571740361585292749804633903231809579026158412834154071439682522857853587074444360504095986829128218634925061307163819772263956746927585090316231202850320075683553677073742413389031188592970053471632896471968213706072578001547089233949882265868868877610018858940215339178651003165129147954532737490276466249761550819260341332022332675955156396529566076038108939547756066137736997026651223958440608437979093620326668889459285893429835446373997810251473615726110024392874207371399505061407001961961168845492454019154921332617664923749236171592910502863993503289906629684860670299365875549499451890388927737018830103299421857772569454694876291270809151007739471191607791232919455216966159153770838609540504183516689209564982146699947065007720263215253948790655400308248585022076873024341195615755921177067996785574859529881481913410875717196772663624104930641318799706125736191941908626901214856893491123421221008261167924787354142491957769229551969167154007673842860281114816729986185983809112869934777305284114154160307987611785527712324934137091680636246195453738276493878017138636367036822610656368090203357725489563043723897822730696516830215291953446687849526705141451660437429097605604783824776473078018503476363717575327237755883652780105369603832731652111027098845545983848425729874205115458768712363653715317108560054570145829078818136099189921152588484557504331468799384464981226148220519406962711638330191406775045021098333005238243768758060593254904548357521484870040643565125857438121350868874916919561734519981760721478252257519132821570086886325414447897416358013868103022119108400486224477462393185303071408838115943595585864846812878487479965332420363397921420185421301251252056131249522389483080362662447390630660835803418691882297747104813337086483123003251458568491225332181519862575629220574004842067607112617653268010868353245543216542692103043321495378911370199685099630826955152880586820707876259449500299285100861755903176675576962142410537878366268269416911293525240390132957702901339669483191687219233717167277841568449764130703881035091862438059802006562610162027876176158203512174707558120476735981610890100140944230842009457392843432657330117162445462287883190479888565077831904722932624705052421195295136494495237555395955281849320509893029995505243237757456859474028503785880519294121608409518575661642854051427447671673965813792287711842147960659849588608345795365734921279181203645757374651830141841372910469114873507697937604640226952360300803867628959764455992989935552530487469179304269314058342365593758723059033804014782152073824012534824195201271640390230003496003559943380898612335651173290081307994022628504551364378154331004893136340715072179760770468377452384434405935694304516309474333864218613358897036370216722722903786782111726258333529562309271606759240273205372964381744179647771799838767494064813990958922143185442679269776982985658425339028270494257589517139557024599965040024157370259256721667441665501824783093787067264624621000177354146263478065513259285619825773270036016851749052674474246909037723574512266689834976517014863902367434630860244753149172749552216293673481954694292207329855150460582188395973674727631643828804864025860370000478475222260784675899123171067821682627860760003893916284705070565613807364021569011826711467131976124705692648568013691277687791575887492986787836605432298079262026089613690301352852391315787409681258184133704284008880580398500959783664756179504028524754223886483805459321874444880711547451328752067753777799484047077933691646384283813252166284496571576564761752339036175862776407362201782513577612006362233807844853860719244842023674010670734464940305725995279873258886787457654871669810694143984374898832230104686141873033908330518669923297534783642120075272892470972196068154247969640757560666326343155235331510344189943509565771792204220595103467722111568213058571828511984109228430395674603471491415645227499060155721099934392092918612469308333295987390692089083758996548174764125423220587197312035725444575537321304273834512281666285932026471695436621689264496665362674485563533966252449125324602889602481933151986038459807140496023792512883226382949957047658310126171622937448830138373951114926168093213375387506192606742536593936270961688246493205609618318775730007447366213851785493814711619657675650077089273416446173018405710806062386678114207949142161548357356824441427182019167764567960723513311834976436193244153706275916211814346264936320766127012845706044888039868030611694998577350329569814918893574828381343753230171459227066654916091665900533191387885157674689932043907772892212928053801920824389949679425473813199231446778465626751320822547666113450329960604592525470303025582129235067322287418729526728486389734369863947148498531863168352545294832480835217760120030092390291960283520832917344513052396794597682508189451392722895620922676579273702298065770086252736196477416928267018855835909193956400651254460743689610316268426652015980282754147446997168327057308037467628592742534311834415110122789863466277050291409155750341502537155262778323689847194249533188097671754673561890536039389432424921372186771400431491680496540419478140671657040687944267714257025177151997196179529728648692161487007369588365229222731049934730616358822748047251238705218522094417501152785597425859840350302389432333830659646597978549868062819432933728478959805414959316684624349273986868331394883823936811075576436768517979440213099210503026766499903240065929529028458270391710840900637540154062666953349059302975557013377251424078542317022149727659942674613274280702198972200212376981026064918483091491320168986539794424898841494530050854723750515647883040714771420008865407349063540272218135210197471741444165922204585703528538133152633849976288533061214816513927871243464517725116932712661822649579857025455280778126793435516163119195266965181797283581758746017955017409219014216044014798161090369197725243856573698893850632670735641248087285603960223222028463944708047709246149296002012962616409455682277763725264651345072249274116582680756380090385460377132846940398616456765542644488309352515638084532975689460680094141745940376441293382856994492019468526275604880962519957875035484438141738375842911278232691352739373009287059880495671045592320545936139064399514475696963603227828767242028128107086074695622709438824169984924063084748001858471733281595503562363508532899003213381903367094040302782273000592053988703953626907015407203925399252072537562379880968979914308658067832809420491395862063053939478677866358949205835229580361745935284260142402368119626020596630971777919872133705670459544131816025036368405272777739214210306069381922737838601040062711694748068768120131360634702174389887238748443655899314269521561725628603022235545023054095535454234024486135352357003373522416516064507529967779504363461232202326773433067335211941784311606108831507304442046264173070241326576334059226146458329144097734852378628902017066463589751532285926227835779574091195097605431330641986093005042643854425263228785131353479785537216281716151697027813942109269102803869247878363191090787696484626931262525666515952651171266830781604341210709692023771715488869042574841446968684144810100807375973228794767514058056223175995850619096614335228719140587744975394296090680296916247294237908368785237967317779577604783116099795972173023987320361701924112079263208515604188722219205365466063368026703990995541285722963449455515880389778420539514970529956137778215399127239545213290933537907802279050746763940698067060127575423825218123436527926852198115137302259060924498130781014129134477080430995864784011654053611336753917701131125564393985597239885819604059673958907981596509574414713631702115783479594904283630673742830449651694644644208943924885341497705262092456324681204416661919340613353632464597634721352396160330479186186118100059308035951134169842596173823637039078400128877287639195897083591005011887481951554533369985157029692230058698568414758554864191226207188873523752221131584676213585841400988668926612280840221999666542832024937635537847132453349702185734408895263882149293660332797901366462368044561965065595658263530076428081820883364010395059800691217458123419229207782786696890787254883756050662948850324573758450255341270972271333180501787067698702827643400986450392347445617724025419229516462129646370928217826601320542779932580609501348921966757726456869129805263572494716624705391823365963695904070212354746852268716048647693100602680421130094925185902790318084514662224545556440289501523575081141955366146630137163525907185803818660981914749830010469244663760814464353800357580096814356985289132050309856680429730133227854383393541164982892697761482130780289298453976682607876141100174027710969361465834697539681742239203599604282120966617372193946490817227431929014398441554191141201535016161146982888849451916336180436004299437145625849703596934250368175902042466375635146956692437600787873372875841127833130822626426651578405541667226652693561712250614245856220756647179668433413637452500921823780664547923447061244391378000739711397020640133163345065952052376148409701036740619551013491153806267482218591924886346780038895867385720379799730042052823556189393836489890163810273769422434472900247581298893162323563019898322931088976314462597329726912478562498982846606013387825385105428000129242975596534107116661629486115101272647838714435646925969273369507276439113086602325096023700009982647298079087660233973719389225577484749746482293213772462363035733033893003377189764594905462645433321020166653949447120653160643963686849851056988621302452558898005863469607265567867437638592474862038813930688863141801454716383356725398125462217099016121378518018538294366389147771334889862409184219137543839945213877198194355392608973286354933678791637038768901705297245940633161120991606326231045742088874358250934229619279228862844839872777478427867877247230638935959963908447166323025686303923882051862430161872111547566269717867380953953159272271449456407837208825130558040109395216517939030069323173392017970527294833348394624163377241397109569028522338919398974890295269731676397863821326650849699364954689416230335880220631405444206880449827767863569028172107958083611561593724138924370808180466644179407506914294950088723444674468185483180881337341088122646928301462007361461790346799813670892541662655582392837717841568078081206069224221692629507650461137964557095656066798708764109929628328075294375580167988342671982168239756841591791947878905940340090181717735765973426818138667181188090166300905555015214406720756347420867228008530546161955609068845242594262678540535592607521539626105011732752254546410170652930130599459973835828683626041964143298661198333069035387718498763909175918996303352866980227392241689855419645104312426647532775704034946363655700002358415547705636861338962793610111824300964282274589726207276171960762315075147162637071853910547270153438589363315613545013392412900016757152204969522311768890384052459396878137487886104552036329381437645393200270955341108872899061023676029433123656416638662285375461129356365502107741970610338388769209089669578338430538324064351456866905286722347620776931766468814189423359927897945155887048587619579603987707780395797742974747533397587283372406806335190769956324605360473906177126776500700116807701105375643017017112445049192057830670226034057591882639322776859468920074773058766096622158831411952181539107955544861511157650514248590707193551594440856949701387379900190182836798467969266404442531734789335446900981856310757236345389470062917045288300778827813173285709965485674466563747475464654596773872731347164208097136311923979860837572355568599920100332316780108830191916046972704512024328827574268943552914697377023516538283322665385750079035893958441842108322483996988241715736571663304721677257148488740152942674661177341435008633582749112507883630803267662001010128610571710131650359570558876671608455957732594261776127558175228934857357596477915103576517467657100098735257904827678192604395050868541154682142967418800328941880378645319902176722705336188339522730752823586757813347634535239789194840784890677182560644994751820588913000749579709170234551618119501681412934218425478170901043710151313298564218553876738664239897891212007315880527455311018536535830601745983203497483112399521448466663115857264585785462079782173475343199274695015257469712049749246630763978601446400893875565294292886799990858485075648111006594170917643155050029763858359958725613303190267047774551467170349024171169493934944342089624430398147965103049665829996390605300472649580076216900003256583895332239663441304645773869177376905042295515947415949341924028918277434696516409614596297979808403964049168340845231263126116349136199105388232632081311952494988602373697116087946488308689953811432937349828145504267749477672501509782649383316890630475169176635107109968925441655285924937307929049095301493176575694192802062681389805533135740686130995831394517069900866587376378508512317578568478156260993805930358613713836643753671251316954295422685054356553640769265333407956950108817726940451867093076816689266605769816495151362171230586242039437964028839538554692472633183540667394692043833464747103724217813217011321815345535054476837131684628006612563139611559805762471626400723864092743816908487118244745281944158076742775966696529659152351019762772619981293210501508187174541577448457169768903768638110406107154393079023018730649834733299636438784856871933820331523575931625896157668050018930022853606752167363045566564463263381127054766659036489462778262295673835245866435763099929418342680003122131618067336916912533708131960057739312351745195484965010667097430490193406676546724296880165031865256106381509568535810309931665397079403065995781524714164685453659042844402857566205817824022697401178857683271651941375152108053139541944366426748285236857159111640733511084494250692991353158472407409094032790415853834240504423159474068827344516182141789633088666004056106921927611990279685262382431614142425377454982603744716602202806855288463215060027431765366521312235063833415203541579475895134437661325127461290463012793507151151491525080751227433950756017737147818267601321269742041590181731730573515587995713259830882879241344084439298731735338354092138220484409941851021516675793205371339474342129196525476613617268119550779348611935365987190001887648898775754233897671646217865615444224585962471026261518408304542617912188132831442163941090010432716446518579018796503619182464722310593668470052029143089526178922672297828664509599227301326044512676259721983600611757952874973724137659656134541246960975434157633472136429847202767732115516062541922098963448856437680524944083683534338076921145741808411649853304383620903244091127378595519274208817311238273314799284155285904792900047508189187767118814870633296840375427604855382549452890211348759697942275056867326748611269194618822561335350813415546081152864319599577593219597581755872067455125957156393743556996360097917510785523942533360863812348970231654505735996487741654957399441892530239122658780275221948038879354028311423109417674630643912506085806249827899238458044248287005385270176896129214970009189366880695695587826053006280852210758810537445238160187841279781305504993051591407778208493503851700284214984913248201422276976611457401550935624827394952588194239677967551622231092030805456132843638789152701948062658935636456399920290951014773157500392371539406312910731357791637652540611557417352143441061009270566837033962414650111241005827848386305249125273561926215215601284511355068087675865359893303148825554237645183939866162091908657994029191082213089258450533350971889661330082319536995669630774567776490191098911988458629391141274714453185248525287762301385757215354862258224207665517139141210691275529425913619077068330581113623876050834969334611399247837041550323351973068868452131781368801592820388046565660731837094590234491301938701780114287209184822892061084053204946641058750988620514267114112328393827272312572722244669573670644421749977718425284626017284001759177781293870898592294849038059767229617123216594576649456851325892268321835369949972819658496957403254984973791197689133770156884941378564545395005929291012603557955754810006032841590173239509943232312251714575906289320410351097398023786023391018585347091947732640468217946666156953447971979377682371325084401102996298732488747537644845228566332780113239165998998354539090125224790932741238537930437602610567783490732502147497589398294997378371571511520502255909750865881034080276975409148758694315065689757817581289152837901294185050579535320457796717002355364316639093765810563075598776478812944262447974011430581154418214884858716037042175228649303795801657146196090173169263011822803794902568867661352405108862703107985711921475151580602373346900071317024734582260044751280412074601963102277995791274398545848236361660830969048848985502602007381905877006439619933071587157244918740493217356145938044668250053353271311360830344654189242677702015839213487901866774635347526882349120275490844757464501976284705457201096548963397463051385025055914884401538015333463461855631739263815136860641377017074351251938655885625715143715579012984149631234858871331354027728382627408056586273747957363591730517981238517794568384947170410013843105729790602294676904409967318223399471998557404621156389436094084531062674219758071978209307344702311715611787845318336316876746092074206753009640832417664888256150011014044073353129886109909220018120668490190408788616306319910678312969328602667931150286003033533387960667777323650511324673396591405000042610631793521904726800883246210632030537123017226963866330223403456821793475340632487119568601907327700152639897163492220095616272694779402352294843672266715646117168088899440789846560468100860082311797623508587165588339342860386635720203680553303296105879731936112578894534429472768403088728138885258093203728049078229511426984217720834540821884019532139813346967086766511299564869589153455981876056780167149428367798336497923824104703697473296707338082552225508636314853935259287764972436631062559977556028949259483792159477120493136309471171510659621296313948061380860377186805744011343183631203306685001283590691555172673242324866040940745219772380882616139752011669885108857270810677600099926156767690073672850083671872176067225397808152266785121556717674202617533497334506691253312733100230370699413490265253584927661356658536135991221953487384798114399461936864942119531114541418754307963701501708753994456483481822930093287105535590370292656393899596282734277704940021688442628928466404946587823711414504050974979797602275357824754793920478302846026947987505108663473184543436207986273393429037428959588404601547743793799008909258244784839542624455596768806427496427464274546862629722692380839420568586212223418127898538998838906651903425066811540490896460358939010743435190826663598923460446027818530978743299322302863018037285722596420007339938031447555496734437508143000470071886403001239472946035460573733605674588565231201250127862962994462367217883228038958851008673906433738829065316563272727245279424723142299920688232530690535212680917583606833802186816258560675782754451823869393019355863919183067939762707252314628008228732175467986486750987302963194501759458102298234416626848867039780184350144414193464585909239424995170359894946262361189573420513349563219362289086599850361668900412360651455245698810496787808900808727273267695731826560211523402879380373032662505883650140155732564379548142563042397545696725741181834691584519384065229737160011669176779953739009615381551800421619302154777648710041075776606523507631043943985181106370835405391044949375806629788074734250900249511346882105482081844003564757797019312063447528574231510267270668302539246303117903933082659082014946600140118337950045883325959190014833221039842027755271977405118753750681931584717864590287679783114067445930715654627927608413833857071208998024434683901264089776577346464522334669040991869834889533070408619778050544182939693638763226912516775988563729810044170420937439341217287963051455750917258921148974792750664045846386538261599471187768439309414377475200405414174930161486471056432978160873945027274108791831795518288352352725463194241969162275342200276907177516291680440819325363126899810014666033066866665692261872865714003107789050107686199571508887053487533583815785989282710310460184576140087864155370499417655745173440842200621949776904584876042976945890470657291766258445644590302623394389206864287225470177252955491930957966760621392255211745871303820887122689494291352754081907119930032855726032063476123123927411431446417248049035132838134456291333195863232798405203028534171592419776825102233579600309292695386242182784312685073471232786844663230484031935028130032366257639046305657736751685895607427898343007044770218909665571593769587553472541748529268324337555320185445067387791588213694418396239891168797003035765484731310706271101105221493403270732136480343697038287206981740924628053540248590260932606617439162937135251386852407267751090678844313026816404508856426741869919106454243350728303309772846493675329983586804567662287673501134224397201846119672297067353530169601692426920853321926995270077621623397204473157851121345425564902264399772391232916883511675823404564813890341301324463067344028758350378321454106790779733748357745982680742563411180314547943737327312238210103696913424725490549966692852149593419376415696224736669697860687357710432732674746340958209500988447629424819492869731965478268515440037193559716367734644204598009293571548295178472801136242444985539085647721434669279670863933031019553816226221862670763519070902523870542234664103774113630139890362141936891797965007420815641472245510421447866033685446792584826885962449565039442843101878255171595679588268345582476040045331900800001020564009573704544876563167725267470312375683716052104135094272254731066970522495928695404675440785064425876153726122145280950806332197813212321555244905844256885984409489328148077684904924774654943585607141596585615245248127819997381282700864608225970363254642769831216413856238341956763783821685750059373111366078417814554358037641308959954923559127870091136163330508028902587026733315980646831959330432607506267354872588527880305096916742365781277002302178374541794190871250117186903926436393745170738695878920176539326552696259622950657305611928724390543456123299466635760377711541515401879813099904771965073471265569701088893808788985412987511960266418616969856442534874676279878462426998734098598444873060088725479285089339272349213132598608511374517352202117402243855786987999581878835455346326195667550039972991453926556610346942868948373625311702143657792996852848997944332281809948292424902341792453146549325531682773840169717628049388293500805172638884115922148933779861665129566416504204689078943180956437077260398261702714747241885730739046045134671286600081370025702100360578436800762472993014347299536218278340395873791354402018968186749851082481726585449046046527801521233463877671236618405186013222516637710249838211680200365457938779481553638850846409982727159965620795556722383809678595351094225095313993597716026984362197073191170146773884909061787784211122337128834914523788680283277484327175556430380913660936364033790214739082760337005564781050134361004084469393144584504292960668301993469115679501021474064983528163120954193377931538790551975963760741114301902487963577575211761490941784813457662557218006742128715371042755113704905109941737472920529501689689206319011379957652370486362792744187668018277437830302367025981390645483171571486334454169946079493026387671973689842154808922338552887484044644536280487450665467890008901115906561606155612637184899290320734265609439650954805591822885619063867733984873218385427534253451163835754599908737087811226082058407892078203753863978984871305968521860878598434048066426861755732005860023341683402905715488999200787992430502797101940700304222122928394142520732268158090484876522136452113329380526589635989397026325083838648303159601368725012981389238730703698822087276250968853795016116808075720375056292608302295940053725071108970265433203022841599400218661164978417365905472450108591099533533317800894450891042575656414303262660240566592650503788406714579550932274476314958904036907944139864843496213147017555467108949645267022465847799202112595710260161425938938961099943326496494274674240685301040331610997745837176758182886751169756543739896042037730805906323701007639508089336468658553880208089706574322600946439624028906885218239731603388387748581521760469468769350987992443771105231866049300077747483289682981112608280467464492295288097117426164496328920784789205284729703568610040528679265692918972831868015450185603136967246959047395446127576781657873745405682873546171470889552757452280623180978352655394175930005783760491404437140629342995740891369194669712331006874791573940257668536908760608821892900380625550973051819717956376754435463519674350019327168017798012926203965915694846146997746262570639929670043843128171079423916976457995601145398971977111887239506470661039229680425011308346751582680393855528322679505345924997223851607084999547510336537127960608289083086002553882691477331279452843570385451063556091599825226471719362440197432650742226253836535198346170581281384982887524378205390524260480892987823646315171584204117847321712089925041643921731035299767867423914832485421551384930882202628279563693952351061108238055452670935454653256600061897003412077247970674915170611250930665978242873630902114572138099619146026160791676184364768472818138023174571597265345542617540930932714782541024196260871749893308411466712272678411726894516313953469427982181553333019344106456779326912994786015409772617816986975345769706524686802919505094532101324588237551901893242380211911591022931455407626567670991320878437179621341208065122738841424775794952705323170549033692925040879941269604356405432868097968522017982483006477656385644660362622068836165229995799507809617566814674548647520276634472401063011545874500292201991839798050863011695166090397440949725704961191040888498605133385279076503786628162315417431569532312249173445184944939171577902387799547879449831291343254643063116134657541543745834673703922257990773938115759597638990960541435984322852579639145874832401511133562315426378444210536564711565367048099547513898009750149362281233894975598020481343844085475008524384479361836314459898246469857048919570969334740188225399358993043083293517122941112734339198809219230266424135568233188390564987572385832813527325041438006304544331368418004587206404856030321477419737778535429575623994162523625992504720032893876259982415512969276373025595375481711694459394345675358520746714546741581037815260491900649413709741385978368825927851323090711184305504824267634234880458842156102636742975531610347486388610689849769803993320736200784194564432176325803124941679565927900342064461783171439667829058235627310205945788798788133355917914263610804762735910656979535974288820925589174390885284546770406580430613344614116636496973595522163128487523530181728002725279070276148185080157956493111288259020671871727918732884214979127453396025510440452473865012256220771816064807042197116726100768207486362758099867042146944032209116072531435811284281769075779586047839662299847273541773467838751543494858102734785808251930770755961595651321387891972799444188276421700259972557075832923191505421320638549670806572687219176044474062198639070314385994779236158170763756897754140788252512532360743678181961536903753988590708081060539994308979437806714503079730948386998636909153452247333452237888689871322283243855289401745904236001554623725144150841733992667875838422459499093333592358929492865740913879023640709484852537271953646656441811109320780813408315557778497260097749671986679226544041299807831408772497335016277754092548559912193140682644072244038357362679976023156841069568226267989642133719927713940585777858507502259288991545305322931666248993074766932600986387997242785187670948541537929421560982634303947561296436102049691367927229811297866771582247527916273789057581583718968765918438421000520924287515086764652494786482092257567483026164681251723312092696177194405044024386716408924417899175493295207600945070806572794495838101459937207288564049962034040386075898606198203464239324407962882746181897799004055824309217047979564637593815709882758976081577619681510923971182215810921183326305474186605503081113252251832479501440354710163718668265422825662609511609311324626802033657896222252506906705252361858923968428979723278093331215655423209586441197418195171872104434541011526823049278722251285714005914055431994288820004983409571280926378864393641569299082062689292283805189591877096578559807119284299276979997062266992964900058434619754317675170653063210694279704624843229216718070570051716341456782163852579345089523160727873900235217134807624020119245690257187435202062255767302960422824722992406844544740220273405106991714349140931111791454567218639247418421120032468012027310941347818945475771248510806564152685275396291438354334212692500394249427970548114473437452107247853229624322519610592944987673521058924494394062534819546264928564697927616125404192133139420489929379014892342489827893973741935576622428294361387151341768705412793337188665585972024031339334085158161126314629015217248749986102869649162146789684333964753574017183340281524679231244241408401773027984822050053014592569503906042759973732172324425937269114009521890157038164533922667862038905053538673225612306618821313938218338259255469944402125430589559356370085792640638958556852758790143123641984796750006570823401667092285760114746020636740122709212019844948751905208302385274927140721319795023683548753369680309439768062421433741784525886245192001753432079437712897837727360860963878819954736232861160017438804282952381764986873395427086657543930498286332416365365332809708806538112311967531276051341207732806993016319372472485233391916537573078404214188573882612764848968879927966072686774102786013245631208290762930257367802334789519578542141403572423031232421462729212095457009396670421860194651067712431289310095769915209461349002648882424104345122789137433969148116380553208131704442100524691067190123734194627027210530069670411666616559337785907798021889594500761116245929358539552501861837804066717323539264485124012990124453072857664577880462666397312431323475555867040899721589182862236451670950637897194098007067821541250768513335061624441479562332021575548116718768023202780460885276253342464851463386166025149306043241862471404332503465311879429192440076606799723063445947014188132686685011852967524686825561569840090741392483672775014708574656719450660953683338982192781984420212579483287169575457058773336192802403379840547696877518024544287875228165885727869705098791754595878059705375994948895397938256413115291752077398269851038004365571355139260058026683786154304466208888908780552895533627305014366671043524147298380240381407570826157391250545816607845226184236348269249689380540312989107531272713888907086262086569550429023129732018879976228342574305886462448432309038881161655065651865122662366971675151457136866302324998587353986244611451400498730931858073057047976676827443874581607089489468782075669546242279895329563842009244680988555281562017319450679606610698612502137529727667502426212731708725073570490749545626737672843344584068022542287090815051254905332260612810244262937344473127133005228235519480488804747182492931030024550987836201515994151411516672614185954072361727696753468594482031100897256015232379604137980819303119701313055740744166053128068342016673534262924053384644276525197157938856992679131945823101132398483243826018224769844341046309970778796394087448681362343242062692017456339537475042195554449744271052006472921232535705808942780558982803574404039610959785420614642419982522656122078642077090256100364130362959561639650271317374426993140602078673344755926651644568273857371698507028733245895461778821764880488886762362924489608360639221880136142063305356593160959783641168823711665014704147340547967009219735679883678396708997588491723674561351106671839545023920630166035368601680904152215450726354838995522350856315430293654299001713820053073675145673717267934637622457608029915196457664983714388728260487513290237773999765600469968793164664745150375208722474542902334641563307870493001564296897445318461655262450416715063224061603936358645109562423490127130755742401943012524912154694987834670734190760568502412454909604573687891056339795029670171450107573435886935307164140445634984012326503478817948616487064065799957986854688032551098758415210141641384664166711071946458224733460796859543669832021811059083385500790326014168085354766439719045713169643101123637309464241800536700477385400016818704491786863383452286348635106139053323977259092446066236092538728600360805775115434257652124651730215582208842837194852212150519101498876640953330126222123514681277106566204640469023749956863383164886391375513503315447831892832629547040885139304921959061998492573231373679858431865464019718136796788818792744962561302927025131957092640927089227489834578867209269753412844610109426069350009885037049814220065995775643947527754298999405987844924851799991326125154592009844940577453409717022077034301514667584742293146144403108765739934181331303727938469950424933291124786758059977833657759542607157563737669204782917246412517117077075568860424792370354562947086380401963228308232568431390182342851873787018762385937410764191118744712970953569589264958967898099374094704146216888703810348998873039213861318700880688397512872109603706996947401756056537790038221883767999149549056280219274950928921207212586925719741504623550228146012361804313244909130225957804318361812670520112008957282606837288009999049808766425487750890870985302529068326522043773255728220160009117744903283982823880436341601684574107272156903514760064945980956618411399114753319614666077554569708512933913254513978115360962807915687163019864472111621810894690787008014919105275310088338956834318473023409399002871151101508269544204487958612743157310534219823890406336235303827440470576501226729856325230404793604536211017813335122333086660842355372800190733312026833986964226775242244821047382145613294382542270533352464523676545150639041082715197383403045004541320642934315840515633201624423240875810628759172370551662510598690005567589789190545853330418926283767219320322805223597327533734181943883348721141960758537430029176437646810057409775927988586159497972582872702073459501742997076600145158666444904133504581384768691245471703241812839258177572453859160472714772759480638882191114937875975486552519085393147734981615573192107472803010391587985715692196154615638167920150814783149583467030898955025563841987493935433213602069070721227689770265504662631427160746596899693394714911633952498113194912233497301536047706781997563022449145200758398044994815694277552907964763674118186041198511511987420721110734650527467369895629923503641596771707892021598544257141977238725025205261274235299819188844398138114773825697187569520258893308976867657334845728702816128447676870898419888482972405342177602498290431388510010377675937527384198096499764840849705542904909106912199464218787601801346378861554775572103044707838361545791885561457835317943003618175740416452873464044151683272768331838461978171275424007315643779474876780678881273829523649323279494302895413712850609886861452249557796115425693145918428602624948203272741350137816624557306280830853644180185898191583774290213732046248052437541753963769457004152219201792464174989032367284030340280575569199620418818586141712111373653219262121661086749961525002917791911253768676888767140718361187039829310871780211276518020115142964518138860178156661898299125217302066446890950196752455785648492953760256214209782214381102662408863532185719140367033588038660436067464604100628655452076955472649040480347806697647833916973653114599475442447097273297673543659122106538760998410845219531777190615425589949896277759570692295211773933334273907790928636210369530389705507232211919419357025028303709480399837068872079313411586308901703973260867662946876097757721128841640451248500837758756497398313328775725908577547338543078982446406765202037538178934957384569935972473215317151549735879159628207304586643830198514408737907761044830056570088176228633208849210241411112878437928193193643077277038522286251435839160440493908252920190322914571219374369940258565087882816529003171296007564600924364254502643212612682183478084929036659242074120145470422431177131320072678156181706899090935436122960083110011399467803923915494239343099072930080457006398743318173233969517452301401343003714474675055666348089854432545750269332905295591150867655759035999497952315613258060563515189272509787184994932970433888029116309735163152803957809367505849976099627317761119829866431744332054717271024613274921809678819293333031629085443596475226526837757537833616709757893999161927146015359578074679049724167503716664288972731291799565996920708345625393078965395429939642311853690403557091665299105810710109618958107918577859119773380477680643941325188947758500623072520639242036977460850074411514004720862641655326521086450570828892925326770598070367415941046173235269002752402677270297729220054043564983316797082580845023625304843124084035267141903272560793478636251509584252275245878499553776414709777527039547455893764954977021811101491622010825643547420143347474801391202613704189941335888826778108361478531726674060761789580498827166931552941115144927983119823610044206055329971614103275717904093274271275618861117868049159150168703822481646913496826627358947715497600274655731602363959554687146104521670169473308026814426825648328112747888508560987062655573877400761138669618101484084559714161170872952964546844634186957220616286544564005517744377738659896569298744782907469180934784954948722445203836831664926489084694731601701953378831471790602535296167322873244256636242746690872296365868584330585787795453890686500927111933367229157783891026910856007038984854706166118023336102946946984475428351216419378922924153737747417719431315354069816750851816704289820204168767493363302455460991407654497001662119093684230476077134519015588737218378606724805859109256948395957099746416591597853554181476747255221135106893897686762908508869021245182775155945225853316238034093398366769292262783215847179474555808277595054122265433631005642690654983563200245368293408973129201916877582537019339500222355161048963877596373507893223938286394987149722694972537420174559654655952625267365905074601229229041908325979973691242845527236479367660078233732600101808938184433764081106182468902188084189034583628766764321021002587964168134301948340987217783448023518438194252595950566623417302035971994690511799637684731757868909458683611779308449497507032785068467522295267988190502432059616291191329530088201426628315446603178508556346194341892149086893027353183541542743111920912906161760676113502930706245756933972392138515033146798564900456049525729137389412511503443840563377227002484415092499920833998355534088268748769220107538370181968501946244623179580553045157943883563564531644056411298930764832846350280416072430911581773202463115012536071791028050473432896708642440857805671218720688452979250167521978201298651374328010773897718635380866173679367332843404890082477509209564987331943907702325472446779709388552339279507897705640330886341818429673364601305258949653397061827614592240106561409455497425701053503224234478073193426436608152814888687789653871636640951829657317330302903819504209688817031250082881172291537589680020879212123123079830911594905296055020981365434300872555890034378467858346371812699133296683262318204974147665347375257304704284414781837497705167991728010933458907490953568577856364577192604124081927634978387543419032484237930658987311240642171558750017946948954421582877081212278999904676388808641326647876321375899612109298359263330472875122897856716263697034829392483187035087040818427153518027843899005312924905172773667260547531167748022828337695771288803070035384581366634683128261567981129688086820614980932452086542559708277091740788103779802356499130430954791296541564909283062982401580804802483468376289841285196016506645832801663310544438481675624933108734322016155396401059877797368431289992055810561564591918710834690947742215352622663674383412270725635121204068152912713288710047630982007390771602325693114899971710831049193042133500018699915364059558209833360729244949090614806626367146715774245470093621263891044673307791305418493820163496594134021771206143581594866346960479071988304627324717941984434086998091094571687082995025432533713160733750819669411663723409774139777892314730153957583488512611370500625399964253997413589342890737704286681142853783959880914635370946757836237130992881667642326827909167593316443377909702186173970636003441259379081777431232266556434521019025036919887665571421790704506359725650150436056152702255852465235182088809195115693529963867855672636813733309119372998595978423577379500046084892170858507919148268668741467657588669338839098873046749378954161043939283628150792388331464549567496638510153147757063130779875500746158542092831019374667503120535782514477309110269809335279670005359976910029756618584307905564440876812039577051001387649137567767948398521271627269929317380235202424042491584751426208054923202179908003697609777774782448957368015389695899020681637819209559380519578534332507118974098244022437797664212314573156728326341617948290334984747833255922315698316276706824312970740976004316755960777780667007120515988145857157580148234807022846197890270109121779378705416955447436918152381785775511819283722115570418254780290555126100512201390120101131382733593890648573872914696499886486942467404211191801127422595070859573146863161901340440704540050406787759818222064554474254799944740879456442270864230047884679884617373153996644543303889904504083178559092448939186312586582214449113898987580136837492322568230163465240459227773104478154718887061267556101924309737385352935989335242090946207129903772943195051327472844563141189615206526142251566494152853844211755800490153965180910178952165602905296936453526293790181310967883155411979192906390600693754658432060240135195792080813935998956763305644015731494540682429193369489916193732187790884596295732552496699811869614661822524902025277761176120678997645070934898691314784489928468959146740768965496727947346928617998923120657032169347342146850368374142544997318080496469756623035839868554538128256817266052994940849860375509231471864831292334391715335887932327542146430634747310371773824772173699258716071118950792354544403206500475859697297204557135949416694778333468849783993959672112303828764239996854262712375913507067351793608820971673691212339493758380211366927326707791664793009111422700898448121199859474091675786613129416469679813077225060523126689472825384326815723660438894040144959287096314071498509483421408726706413889582032386335732421184015774636894983451146701539171377639769762401935165697710417135812781355024546490581580905846501289541089694304814492711053287150241743053022865724203241482785302911018288778776069938650917533879973853072310768986991570067838806435344606099103649326189950185917177908081157418226047933714719255145492510916053121516588721768527862959217943225361209446250178127751818547517875781584717339039805077021683079907681685399160860340970413974017723250039835956198515432047626133791128120016968468958117355825890346982087187321838526317328112858776069386285102897998916703289675284500257930354262624309412100313270037500092705695979912895958985768715654177723656035370093831363429197743216386589144450661457932039339453758048683071905275591427945195442587202231682841668077734926960449512533255675660862217257896674566934425077779279322040254121837340525489037743856949870156795536328611781073730279326129983182262865317634087317672129300705098600549378954218218483998066787744858131871676915974902249821649255029253289874449149482912046357539099411069075030147847543386710123961183924066694637140019007143238241871513734192305867549163971932344882648172014140832553721388278609718785983694487724617033304455117325762169209982852580505401059400923495141951983920411980554336320087061410759045633308290899202050865982276451092966863428229369920628932326443666153385053352744596599665401456964753499085467214793241079748182978311244179866562566160107654704043700475911238582784357709864750747977525443365544098003882795237984308900788733426246640597317279424721314679665025053944746428129553692226512424894480898059008674095820959283371251635779928120806254008636290762999425002896927220094419287095521580655166567155502264521980989833048002475835691814390527464407438892188906138486572466678473944520899213348522340102084742770781061466891905305891876319724117571036532719950165867902315896736417998937762493354406864329980955146402324712566910691709348202454137934316057061595149011254021663479334140074666345262584456438431498921581018224890406277038643822201656640100396476741453011330489512483244575206158912353585583636566748552072753427836770993252494853196779853896790953282771574412558270861159966788960831127183426466836690685874104953705111640769903553976350649911661889488462090826727151220963593116354242709638497906605047013043095768152154888219226443741064202366485958962708553449555533713063287716921022604287437395468381198546473767389001305797982165709260060323305674592893853007271647541372926501465167784048176327135287263145167867359360599814339354786402331302930515630158316839308351769365038169194498525245180926815805174240737354734771476202793179206453423209567175218737221384310549874586985517172871846414531972943294661262131599197374634413315413429576485101213213659704274486687356272242469875570403315950135561606717897848163686084429771526183374064409636729816715897137715966545321530488058110925357977771290128611577929984485521201099037699373683512634675956335477441051763258656060641677127842493393293708345334961336758745318421855022937244289815813523019691330671095809709043257104497144361860941048602134843285511611334509878833760975445256280966886514682329041385007558671378727853203966589218542547677477310309418978441750841224751178779256452806066289868998955523362459044635641350561783581516955015618792270345263902014984069303961709717088762614181468032110957828850709153145510999146218227330220114510533090800536663149277097555462906087682302911444541117795772616186053621624479111420259758215615538533716569801689246879242928539638418391974909643446315369138462465535812111845904856381905530083889267870924911471240374823743990213172562918004097970523594030641223756755455090362834747874945200791367920273461135258116342818800385599908335803052874771747251999477724807057367693615567158940206010017214579994299624245896644364805511963157262736837053506507484200979871075231420770911280398222120619066615285418420277857714812433625505151710652589475191664048200524857539527923570315714385759115101597159659181467411814604680119469966460152487286957206892268513925786369114502877988208289225511733036113420745320858750201411688023282087609950731342839548664994681686502632633460214430556814528662283819785363429913551753840286897344175274888888900677709722658241543933998611964629789009830975598882338395984439694903577301663029049438171284774123322790608620627243515544841267761469653434896192392507102740162241819843275228892591674013883833905816332218255345334624161876411668706955050948280507233025472403578952284156617475879245138863407827546310751646453235275099661689956346379556958289159630753952844772895717381657721330341379554149292314702227730118975981335051353580126118629348677911372005010568633411198887316025370731515098010889748989072943303634581067097343303608813249298113092145847442698693914801017872823726337700356015999912473216230298524467822515836103723235435225870593105367628708404453017312406048135345543467364149149690947473040934852704243894062923527127578822571729005250120431581417288695020517443950873730951331680845466457895446818722781877494671302413481146196960959858064950948131877553566633029304390787648934662950704315575594749190301127646802211218519927191548740747939347600426235970522156873181699565902864526824284005791518436600569528223321061491775446032192917542931566487537620687835622524233463483955370484638818427982827691238647572812402466848188971346262883460599919516255749028489102043150459395478260046531203861168723865786855109685763264229430580045748099663233275254775903589609325895830009659364545602122803718891509032948872382341991284067769191740886510054980424679549266313886565578996007756154458726808556364165007302425154315322974581748456870041947664727847189450628949709595185625052246551015447391181225050488021596133241962156549308650524161086519900217171650473469305337909855015500398104379929069352247108553305120994592984533314195917527916013547198435240847385464199572443989222950912695017534018963227885436574138133750491277230172631956451607990063487580814717801637678319476505149136563484440129581526342189445774791409096065988324527123857394853246826640013018555199124351600380596175739611292143454696854962232912448231932005798280867042203441517422963735591449558470040947147392426149550779932410466656918528875004136716292896458808069263929558628365173915574871476867144010424429939199327666673781174173533146236249205742979347699103927298267365005820784432622351953440296929290737143070668491659526517971122198029974238579124957834900045038321579254177466182061151085587435861174202614681434827031661591071597855196472838929695553321161572982940979458819115278062888543255483922209599837349139774283627931197196091134362183038890727045279994848604261867244717675117989315529620563690158797812869515185857627891333311468683669292744897096103357314809306240439920936424669462663352032448182353308881937098745902334634336546461036945643380654821889187384592737660121246530323749496557838022307111709832050690087716944443144304337082133913454935519159199599950800791999230833429313410331255237643197613303146104164715023365533821801493852153889140468594335094114999630524691334930031985567350990986007652247989848375066047947162134995697113215901564765706558371556832571865990009166788608377349657622881107751624236741960594233717066288449303472570793890172711477048952959189749667259614730782383544504259756203478180316054127610957039526251201911305717006877619983655962483861099381380458135881311578849383129047150757904290545430641143361507831737754597427306787208880955991462569785695303803199889893360966754100745138473072109016378736062864662234753308533569973475603179444580401960867639661876816931166004863142463521267832855022498984261426907595210150351306210707387736163489470876289743605901169357132574467469363953328058369792524639975063395680671171367805870601476754456152078961127224334963885094493250348405055734773378647694543889318990249208920197429812964294751972226799435525626646899122916311330783263003529371989206365151163256752325059700680717467178735733762429528086218326026572734829475337227251879729269620261577171601587593954621659884308336144448138747014409988226877137146358850196855075675492942073501878146799068394669594033533579487518154753285484784515112383870770314664486988781378632386622511006490697223824844961875056495717663547188586622231784035998056978955560752646438646750742277486999516644318933003366520694477028719798138870641574482398355156183041866533935372578401259373082775853553799390996284816144443848907906612653899851883856916537227733238270817125805654290401421439583351751771526743220786313254923305703557613717822405604286548640830917920376460420704173551378513703201032317830843225796228935563617110051775152897212402540677563285524098958764782122312221332750171424675646771509314242157475372904047237311107379622681838890970297400331886043638725541213156360850837529241309745211763742907377298609172073371005256829597680591928884672210524608961633942482100375371303339670133616703451141443263717215047457573561966660606526734063510467791592913870208583069293861766400485483803952540549597334186439568701910007135095107553966643784666556411345391469621086488286849526307143061095749087576478034438194717049312444643500509631325416332138348838391598782434334526388561816473576038149772974126567165338942289699117842985757063300426378026870744536880321663176848326045025726561392424021315476241887064355282219870372868604548071182324802511733355876154083334012024718081430911137183738418421587306861331080367502097942411044130426778834644323537890642554723211511306095075143900303170048758388934208678811866837718275176466334318393555295429212267516331478429893010398874114990662665345273673494230949728045073357422982682264555635591304159542697259672025538963101935704420255761636035433342255694110076516716163680648535693253135541387671594899897597249361584240082955528175915115995926639800550039775308548633545007911365587373639166769729043391536699374787764295933990053307505923885546172636055499474315360795899861961187022915712187762185534204283372215423932668547704395131059734331045189728223068332179522119277437921713727106077707211348972800915409388112521158078656576658345840095055266230208303824548903798047199990384155808926284386124851652511119605366474752754543895770853057651268054667475544492966702710285478683909976730849255290133151690634633818086975503334544471402167632670035593659966579701226206576016829041537371850312614577860821386301643701189030166236665836773676003652472505880683880501864304813788451166660008397799919548991049597044531840085717144599159557797463046110643126486544234657176343107364589176758843799803194310918027259210683331361798669988002166042708034145770407928386398870146639998173156038637307719950055851276163948228200946474687476947036106199885916834042587015219143831089082336076775797068307850843961038605913501435608289868801512147507413734823395284819811695207570802218219901144395832810709570004717548194933492510297256207177552753546269907748063885898466457306395775473789145732288521248059017652676958607527915932662903790997328799153436557939464543955963529117045772194989097098085846974211427152317286762121939316485253397690351843175977330931331566666857432507872461590303906470672423784522498871019044420145432600235939303184612828032919172137819601617606406435667757583929552920813829931517560828887401028396020363388112844626536104344698583006801291103269870981001565458649696431039683586370431750534262280049511740981633047782147519073060925076517789519154428435356531768429038823238864784523099864950496832749645743376652482175019716481023955161940205671741184462749199310167310392943342269360853599538771233971900699877327635296265541219193837980540437180752427416658750572100510287247904825361110844641830437974506347369989739914632970260733931436688258959629875764471543793970888674784644349529136643773286202980451149057846356381257159407580765639127071134635305301320359577946938244147049493107377022387987511410493161599410759328309280927333283890241146861200946477533297429205929817717306607009319178184902164639551906361687656956910210024521351620845122755753083261322348722454499920028448770152775818415734233178665609593754445804056265691703156352208967550927697444240037874415167061929186724868350383989722402034578761911391843815676987385314776773279718579671708649175138813247489364532719313589519614589668516104318523236416162401241391689931577534602063351596458457846846611938701503301742804831881321466547141661020232056948771425344477691706853262101233590083408641344215003287993453255443087642852020159273313061944199052170824591255385565823829099511536733503997347091831105181150094315158436987712633541424784042951379035399030832353223345502228002842706244256658788703684179888285152186425694514679257086827851538981376527052264517543835287449293480652086125245506583306855270945833872039225148526774706820307111584172269726227908186098537712448081904475282130214778130555083779687526955694985598667918378626141986228962864164613789836934721240894095036441727954296340769084340419686689835445664169697494554352037693803812600722693649105058082934397299075073439871203391252162310071595454524764830054939544848658635866994463289737980760354371329764199590804332695993830907431753224611824409711706691522245004978722169004447722143413132965236356022606041099452791589212859576784280208748120960628500527668840247640464057163258476164096021155600649997458142539062085101959132808061886094941364151874968984720335149072903761657881123110990976158154703705665174176994165706510349771232577661531686748954693858174543954997977416962174034018338384397859900780247008344978905440322277261160797112939707643261462970162485620449588610075227677039324058080901954855716254967568652757349814663706578208238337647428142582459577853902130109863438105979708334590887308395478984092709895647083053187839975734128596881393079737622348193517801846569005796882549464610045463877246370580962732584669063930942849817683712741751160838620474268203694973776860414132575416847994216464886913391492910182043212660123485136174273217191698869013488046537878583031450057404277581127803026748075201095493521744516945674309341783135918060677258467976028686086713010615268399802448939842298689118576659743265488062362881143068901435270000781187764262124515583912480554235108000863211633025791462604065508224500157481620102209705080858207912336360217512079234449466761460760897340007824626453604020961336151106171129052092909241496317171524171201985090991881148967142199053105103596871519539470766317001856786682836438556826781763181117672382873187063693894990257416696082895715835854025208535354268465030063553873413419044367063118338069208348130566781555161234234944137046884905184347092734982379859870445418228456186605938466385332626759643726899477245660413791288274759206462081130996534467173153525857076097338473250735479846384279881617025373592110023942742945970438656552532636340607278231874824722488762940995736088009575511409657023276812404177436729323380528494895941437744382499158137822071280048419514540610222389777885108318106204673722774254225839407090221561854042154384239243978381460579327928707746959784629092129463405246381885056741471786897593473385715484295041379471868501777139278590912558699436400024677428356532676124895629529017529816473081104948848262430977560020777525327291065272625469611273171594746913030073916539858091573360232739737275963191720999741598686311668457908808704138092118250431606198108667975485195627927650782912625521871290549452315272191575249688056265731527057979283328441161664226048662098487323021692984824856381079124482968729178865253061086439859221708525703501653793031471710474730392931959874621127955521181845753162162564893392868482245372112945491270996112864104670201155668444767467087985786938687265395109305220032027266674983606496314675699829721975728057734720787078523086430685381278182400063738410951352973132961445549839560441823793436275633479485685610443145578099559451043266411550296875084484526030595426361044706424550770746062071863026309959441443087108803236271951288101378142807410686015526701732317713621277856966472972611585926017659526787577543346497812472032478294194382454423244048567043180791620734675649556808511644630238323477611888754892079875333053345333140254026564061559865813627369422819027005841486907982702603234304353515867747768629819182711984994865122556347886950384488021886593042026440060412946810317928746329466315071979074288724465625598763762894132394758706531444935387659001891777972542613033954927320429020546641189871001947615559048169877191955658454805972467641640847736750028671645593250864359145939465409491287871847308879576771508190957192309063007957378977188754067601100357915496341499694672573964850320152801265115243217341211748712924200124594405010077615059420136179885647441152121531515443484478673808231471699690799853752369022981176300534692269919414100855253444013570158874385250575386886206508330412826160213444715028498174262236817951148318252100144611053411124534658031945631996989686550467428486201487523445492837485151867191262477919181037748690090357971740186919163010351155125741244638945875349155736718127968963405409218653040979938387414851771026008383308445012669626521297774671375761095185194062214169125796741675727442574854489539026700774570925542685577350996532445830869230078295421235720447198161837920324384434486631385902225684934383986560012148388959929034467713459338099521866413316433640364678222183197553970767796966012226635267430358708180669886339170737117115108156132531546597723961392314731493453105424283019296977321045221674728986976174989390504866023464418495305415991991916526670932088646656840405568103017763049120795698093158254578440566388244312863851123851315031339448340018103616852529512952511510674045516544226951579276201091518849107546756560151874886916583028586856379883149502437580903941942801412215623172319252788729115589884309045478586138177495080920580536456622711481959804552757605541205548965660569659546917693349113485261329339982808824321453856984686753078553076409991727282459249656064892209958690549306365609895529204906202399009425722575557817440590748659144306950392254616824001588064649796473053396586410523644981090357721372045514991103216095030978004144915912134698560598665725369625666199968297975036335231525552803642991749003304394979287673260183906239004285597871886981892488099446334535046706079716516415937480826990267588301758277218695013912177157698320299521529429346524021745993440467844370792541388274140654163390061484900604073934443309974764531090189114670573278573273425129610832441830018214924611125103296821026291936900331234327281735831884351919640623273908167728219745373399121561648721323618505089995518277433998141877029399251216493376610781311329620373653774299703214903189444312686744298269202360583218314340473822611617069975890997697365896604489129998767497924612946194737520457851392338686464788619826438030885834962079161904933779795539424878007365333706058690570953779864824957413208888609493231915188133279834880963799804828447655725705412161276407788196201872107307524044542547697951959626880010599080806783073352758662742688190614086683834900004028117874628759277061452393321990591604112607134200522617216386177389509088874556362017644211184900650925512778366291780040180529724378916339339351945228275357576821134576644133070331750273997213334656741107288900550983173446345866147950734707876667940625885853215274043955459591937331073032086748174924515817303341213032904170919161617585361371194255782937129503872554395699141870043767108643978323790205713120625049717591600139174074825439045016917129003180479927755919023607513592297522021352281981954571527152748347947325061728624022589747954131290864949169305179192957796003775174527724850704936460269513591059522781751400940800219626255848185721088922937924563574239411191851178303931257058867965520354425817046211094486170269774917072446742554756171334131678287609020835096974006474492885905900738917385682522754356722295118233027861588777444782310792487832795176993575022397418684572263381363961972360790094974518231928396878197989294074918128309295116376792706631361431073888955790033746217371009912412328828681842936565491599433336210684023375284169991754378287230067391723953779558299954602638572893275237361323643979865251069989461848023221278627120818117093387832636145887401023774868195494713169129219769960467979593855692836441520543195854409446717870585773056423402896172311022619994624352063368148926909729010659037004604322308329468755903739932580139761160150829461105387421686312322965594207119334446597847547899231887463004136784655475770366723927751215957311032899626066676214881567651327257283561897075745678121741696245077000058799867883574708603022126894366692545541071167522797680308343044865612105889785448739683748757248732467733345362162272686919891949797107438362947893095300007215627024166328302519865437425756692737329738859840245279430608129336050156057633094026838536194141529780978684280016658883194850902009627950979717691538944529462822835548701875232372898581831743337044751887672520639431854351816372482733699969341594733087076205530660484675633010913044557701672677997173197981599926659065337629323394752650089567412825753178459596191756338453406697284096765185643800613421105065141680524644875992462882975516779414523409650104840818931032293171920349852543269227863283310198859459599007998380654220939655380484596076512702921310933990134417950891326575624779219605303075093217049462224430017613915874121487044542089953303853882652830962258817029568542584060669218920268916002719422775087389567782602755668577103724919409751054161968703035343129819467251210321414971759848048021489615184655661298870932792846242237484669361549598754808363017464984967778239937419982332711492124101670207273264738976082796859905820343347832985800909401100407202321065811547165067131012973910136969169946874660869474889245466141026776096568823127698926934364007349860254092311527380697488551424802201235712045826428314395510898781580308183714721873602838964546783272524116127142521507618850732532171747412010658212283018559797770732864712339470454821719104533973051296116236626204462972022474677665842250587828545733286620153615559943345379624986894609103419330769469467496536124298434268586012263157099803299568964439319236912400842845743034392562882873242623258057867420355868617097236520759978937340479083246592135644871495987785026184274980860109842156956137971209617573275692007247510193476106112253100130183290784694334009855213351996012836569032951861563723180949774003890209222786596766462764691042894083539782145759087458094806452805125097307811574882593526742046248467140883488567267065226477956538921990055083517813359647211596257476884587239513329566868892358634808530796207408280300038290134511584404831208207250016051605231968418183964839494994391932029308132111687261365592152044252281066763710747018459464842618771194604989189930189543975899413250306028237355749881289905517722062320086919273447665209916931802459239468955206892906610849295977663506070325125594174512173830117929870721430378563166007835576437496159513685475020622210161188722330703146331723832680341768084047443671957328373368455180781581124769575609139508143291611570364311596920724906948167977940414872917654065091621092287967888103183590369310199833410051747143011620136949759396027621106789017411979773534214857078114467398244605861766753128732318665448678128393828223896113928691600001378355483161079666738236135327518117945057709158638971175776448582013672070893433791456908355350254836608206085277391244023372516792598538193442508531738712258104723715673984000785522448605454943038757002717284714739713114845868330966513573664931474194899248475081660138446926180353433916092727519188639374428103103267147026814824227137222329734400656290777008135006685486309950691816598033154739872415936482945526079721238364496042080011635336880495748759847109450699984840150060073314374980327663410280731740404697600701891008840770107489429480692125996231065713618080685486749335734626227886023333138150734309012013451611128591326045271303424372791407424536742765012582619501089648693329926319145927310004290750491453524284420459725481623901208486100952647750867276959963686459896033914163390207118633453770848849843871027382904574934090153747385709461190642629468973805507956317193648884244684386519479007022097069298373071318302072959775811152319446861357244878642512162701804003734536264760554936716307975602251664717249144134491416247729798729832571820596028394707610787614275547632227504732692888305812550745953827372336254972236766972161134374293322717325472462517523515017762386566766007914178760556570349320201905165449734762676145876228229044845874430853537391147971227681421950447936219863481917990692034812891264600423788279241833478867708188592477631204851907562464747258181203777728810687459051845679373267344469331109357518239686472551159446326798032778264068083849145702979129720172603357803030356972831503256873797856268348327100905620104333510091109229448497224677481141790935332098103788533967763278038229275428371568599988337055123911067461688581657812758714056143493973376630475699925182646772196901813545649480908577445714800382631294904146942975624959825301981202441813309683079014779284374345434379124426287242536937822248270165359032292141789684844114339450397324813933653107037062739251641117024329605793835637797007825993851527158748594440742305438766215132498498131027270997479029971478848583983366711649253507194728412338945585694026548958036711164873479363578456577057913576277840877691474004841992476083007684545324988258285852843465905093609717367343469343710047653942562590357346218102533889778237741885616726758846416104807985273890469769743374062279901321507439691050048347846417566298595834821209480028435382909708411546192721329083582638843137920943451143363720304950032452033104743311461766170547691010011642217794436737061549841101123343422381734346635552197445496459690807250698050996484068057127319016171338960553221977047965629337320583853603273371881030268832335961192760075859879858625730300343629772970118329273422127313534666251671600634600061947835358651880447741582187036429399940973650064214066778812935164982016083635587141575733884129311416363997336687278115599660513346406586986714263733977052350620705989842862096600893511791313312437850064511801698811432277077153527947648174422623984140560099604129042710773488587646017595148504278267499027119393159136702257414514151422941068560958210765312713030358643075570513121474936553207296758138047515076783565730947027555053876644985231246251476165563370131577784951066811277341891148720614345913534863973283072498189376497638747736356778242335944016431247500590260700036088852945578604688496706479908095704720826452268066863274728880880593723294322984294647796416040259501114927427859208529183618229257636691446821411200219177240478179643637053876997045810233654191144346947137245894588709116263481970920262284382901277106753361888918574151297692211881029758647773369978342095432535710459365884715053710523888739448198913107918399248748935877369535411970727037802699615492095303503274021426865355253202546866193279987380290819675907871362868872823051586555952403527377565914083331980668799523144340878280921387057651471773636677603806803026856340977706485017037042633776294828643884765697859790472840106679439237096050140517356351822960195610266838493542049063235390053300094401596743739490791562656052381556688962668742456872045631418094151547367535175253358801087013976919772189802611076803332411586319226565535477403964046662016883174024175779651876516056223359436595504998395255191415958287456855127285875869418826030795407325752346120979194467448938975919776053151338494059839271560174144569805163853844657112710014693435275635936442352519068977567764601744022918182067051816005215660783980130153075298844085985122551809590897474761621348120655008660229181327981087313616599233364006252542437478707800435218442379558356238785309494136510017329738743629365411958958191331684606419125263601777185890240907607491564384931154075265135238011676453320907888478009553549097426751725166617974642213492113655835959013813862884246523433884688569304064763026731401686686523100126383604433129517903794488117113915037567449708731112850589836517001346303868739571929876446646648985988600899644643918848873922194767534828573761707247782756652000108384421497431415460485357976620199201105906431824946121329080021063346729234049771088290179975393714017557881867486767410644426116107693890580148224068594178853024326091964026044002826141673178459501536381759493529428515081846250545663540213929324699179098520374688751294604736871226021870160668431252822750312311161186455301003843270090303610037555429233258531823032155933217040799633074635522028923542480574471525174311348160118678481334324049681994398397548954473611967006069341230442024555217100960287995665457313559563397254907921698913026675188476203957484739120284958466024920626064901879542428337177629358476053119154220936550896781709068543893086483896455842949876594183710005109850337269103313527769903469004515437693761453396063548970847774916114222904248825431220949238382576475642648531427643792843495688137067097831367433667121865328242927661532507982762782337914078916443578209689402361802037483180980798995205105497179042978597865419734223075802075532514743695348941784657970586678886628029839386390588469984154788837747845900825334411710431215211020688802045259355060922549306822731252645216520221502305125498142100307824595236812413670637763583029603501508354096357997114717988452097253122004156282310312557534550641354711355671304367696991355521280529424942057125023583125078288769597515874241854492702783394610017254454511868257065825341689201053752434007161553373282513446633508830486439760088781343887898914080262300189874353819823222415276532898672946905801766079646069442329074042858437381628757549038431850911345426408651884837821793795056170240179143737678261111949593145894518002809157410041232888204432057721777281524287395850545611373941407955559663773822843856012307120460590273619130759976019522146808836361699850208343221411513009557047038436639509875730585660771557945047332106945666297403821744426406844048601454900485841967964870457088691025629367924804567665079903388593595524512445885790206358803020165692431985006347491314023050742437981852383059042967668209318936023007876453777938666044416388172235577363273588611698366868819496299734304674571264226863179098035624787082975853437794872282518350856515091540928149547850222478708528578025127672095265944667736628281058800291204922587944036753967368510294977753139943384810125934131436337481144589443649761675078639283059376836539199351878806806243685157874839788535094058111735000041581702763718896209491890134605632424810715646941551858053457702507839571437844302861233685001257482806765495075824125959375192869149304787067801447561042353982873887295979114478192447225551160715651500467259625371478488394954103058656233080205890541959331623331720934312600198345033644398571467015878823162686435062548099438368915416360486681261863673033341003667230724382863071156516141618124278736100674485463209423852072931234021704353514499161593402833752216698403484546545898994577508322762688264490921503156911497676727150535921302236711545521077578507823871763843726585226197909191005416482704452890654718337249403519729151352206350127940990981772776455251008714024871580027051111727937519826438961802556682719137691720897204986038853094630474549658696616880022771008217034770886661558386951185457300446675221844784131657528124827293910600775871768443552400907007507869745943262537200237714138150330847574655169514014689720201381888785099573019266009718781491205484300379563062859993898705518437016640994103875098056178122082479206699995435766510394738370463339541090004069125226280442222801248253803463762559256458218358402721721901931462310991192845399893392378891984444314919856882366514357359225224482303465022041560764766148792665746021393736175097254312436846802032798747899763279509227546599069354708289735021983566309696385285581368689359023245994222750891381286229892857551368858782473405883165971151952524525757122147239877879205888120638847361819768660152634089524624228219766543796313858588264879359889235285702933041741505497930255617659961919855274873409583506941383562963781197052263064819444893495745870029285326591368495617360694723641506450822222308721365938831394566462827347657731244257631943157030991212854881986690586380624687003842143121211578137551016625950350250079498582266372503942305065570210097468191483266069168625249572783124697544854104087789092745812547141453650099252717942047496420173099533518067666541375756104799216964582933043722350964338105611609336982746136141812163021404398689283566510255970578374837342989727333808279961884547098144510186127873456929917925877671732622393654586570738705026070218667032013851532328053808090995851256009275073316911774784585914348064420563254922184565347822228105568013458990618565686587612572447488406298350420059317887023354451251909994521196110829900769872465978468551877434220621761333123065811963367001592715692528185340085720582348508645402572760099863860212355882633786502325480240710640952907682509322080697440337315125953471022875923257932485306903692201781105061818808228846478603993448837530490092976152268976631889911451488950945006133784007363533752454825073995794722689217574962460441974444859943658805720361205352128720728905055270875510513931165399535947090697596626651616445401270608232452752422340370054387615350816731851470405983078469287959516120817223359531019793439764398992990930052437918796428075757211076764699456650334723067242740531443412000889017398855746142161921938373699886463496677164620756121600249445396540797062636867116709078315861019609246507925144036646473390749082280093738830072543393620592812638395482909033986877751330340891171256212517221961165735070409462931253542291436107997680472843068099377127940545370695805487347184311170798596526444257105804463228021806824122248249963565806515378268075167707868741178639305797379792435803858546415593668696227473023145159762272787498920412114398470653615888525445914829278053851282267378942979584300999800210302059588650002417870872942039702489383314651151979954332873569449330425324160997166759807401026330407402346871545473949630585312547177660372561589251738298759187419501135771478665184253003462936693057985640781694606202729542476490274249063970516620691462147214347366233970712903841324919314729065115555920286998504503048877230637846171980497970219811770761826790573088944801322374778631577439109190548566273155689192434601322567684299703585690285015048823977458250030250092451882721546089023681385882937462070408141462686610520824107643432804149829540902907764843134496783387737318055551149961710185833381239366553465536274330941240059257499409586450994501357102132936410062053633229789834950095310586753083280956467787855683862715831859489061142347060394224556843306636904158588615417562381143721867234628880625473072708253683337482411142115090738012129347715393005475192462635100659094124609885493423496593181049349359778773037852191905173983462274444125457017752858200724354988323436819172772719521383317130311138331176576548482575788935367912252031642317954432675705514597581814097200535150583163844859602216404898698044754982127747747224260748813856874281557487233825932339237070321270579358671311683166019727932055335117540977962035754838631427833196886824549557992858569648677020505681591517381498097998898072398747561906739010206967255149404133537417827429104211574903429241548311625486643020636692574288554692440036364398476256864840295600700238576196019485226552969726787583719918884874196454472449439326318799919341301045823818122852703933987594561630869787655524414805174592493270524582536494887697157304625552196861475107402955574358475575332687026689944587193576523114502139523346029257015137853428083563920404797431615077421215246069254264891757763566898284102338342659679716947404452934197619332913407330201610779751343267318876230753830881918669044846935454825818453072355479380848479648432272493251375216721529505209161685300423687158107572606271289811180163051665806860610711227990760819030671760458932381878580447744160643394783235858018493386259343081052061269056944993287190491507051937784996314525974645312257506650320433035674485598419518053296019624908529255761825652696803222858720143541262534091941070618750953367766658400474715379908973104524009536367132607035631254957564971476703713892948114694236369583348447761117406353136996138583384807655005368520405367926179966805462411206309505728544158335006780783747472216464222152991087823464544377982303472976087949370654222209871750211993469194880518961516116753270619684084934210444540388959768986644385865978304291714765641625742513627703966244778586049609027852644481214633434523486617144389815135474207098192103096039281003982234160748413691817628807056663347374914891822121759154420516422364923922822798669797613106635411551809751312884561756632135085761181010794943940683226984709698311166678868776382262591586213097720076619422856456333824355361535566516593455741428514118307993910152678930385716466603785914513023402255688386926140313808832328033874956435318951261328220090469506458754336066262961362756585402680249118123443448819474493937919923713253287117274850574621874669472424682099489085681635583987312254475882232835278469209237173388516961323164449533581052616519033236393875840051879865985072621214105904154736436950538712154483931590734816188909174457235383193964126373408120501159279169165751990105761643800425136046853173700219178227360939888910840310869434307210569885998054485165781685208730089887257046763084897377407627514172501377340949185472869508663185022917761302703489776777010343815934306163982172309601152413889137842507178159232514537329478399645715435692723857974584631575800961192216665317745030074834788909635361257434226592403626519551581204962844347563286422080848895397171379791217971549027193818629600636059582966740418874016456299765236817352906787265040399865643209676870556864542523118546615079552301651675736732492523550292694936675428995884251381482331673872697723576208255191491119126129426638716584766367551584378015516967678047832602987765410158865468031883045964630568389096779559001817728748073514780619797931867380991593631786434084732050851906567109150312733580965178131631530075778130359436625542528438082001585435584828318490928325063412747227097116514170404755025208885059839002736340118262731700330330497003755994969416346953416438378405539339925464435170200338388815973074056694683187706948062038116790278580489111621172489497138958326870650056344755094849866632981992111400530800469030262589104928718133191185076970650342623495674470838730206752305537070327247696370316941235143591705616821133255572084096025641120860434037655163066713481871919748544955447517639985900213108874955709003488438117593650224949735069435063620146850807208642989626837723708796646499820468365874964901748161594528788697960748957234176943041429504352141730402091207534548059330435741772077610429327783699080129712415335655570539605960552350589751490055438910695845414550008724168700176517931872512176297826856056221120251327298216822643479403577058923664918509057188277298560930463895129435831773422588680843748163276576884570899950891162815718996578472604366651345127335124908189659912503004585577131772338283647162346509697172882759459885167875339547463228672713867973539380272953971621668564044981106552008952393081647337257252085197968372122546113368750878430670556378261168796750590146846868262579066940074268793461754107991145388136279506867874240249815709010486541010008196831270611625444419008974911269320740657548611649405437751370195911699713325798827935859223350745585828278339856089236765536631432260102127012546042802698614243868779348489623807704304022536075010104398008268659588183623843217831469861628320921002289490027751623637260753389700542789325900646141821907471527815850983479877866903953274941231686347264018240307980303741692044707198067074170853594331218667439965745806306656595013727826605923402042247735910291182260544778046133727862057990280529360245076598157717489004517188418981758959335649686409814879294111020896476246115996555664070295801528657599302761819974979310073554475164324892257093703764785847594123700800123386898938513978393209292720898317383000122738729041024810669720431013668243582112467464151225218365166862425343359683779052099341791007363757079567503948791221124441209166396010318544763289982604192948332812226069449084344185233936509448455953797350834970270017158121204052578557288783138593952075413936402799973850999741646553804552110587396698195801333637030985311342820487407482632140335869500644431331064820400041682102525977545234943887846611950175418899991689728758883668914580001842377052498105355739783864072876409123342521992778327061679904858463713185941451915479381328299563061484569364604297847397076770650061103624481384922758549650829998451741626434367941335610747934426359655254879702022449316863786241373603496673316039515025105062012747151346076740235756831918239872784609505086054773756675089086881815661731383766870892301142812500523161009105950039331906871882459403825613930343423676712502148547634722765818509932893034721715876417263436825617034026660374733488160486374636404366493129767495380453825113520540951631795333285602703890399592319661912011902939361186461175043549205744048419184611525616650162460628789369444754107208654348533552085943058807064682803959906215895690250103427425280459107392693261595732549612282582552638452320386819703884374688114199658598808140944817681358471192321038612170885034403843034074818327466149273511133359447948780396908125746627192010713548702626477553908788177880971092482902580713703820265861244183831713997436431566476132172671472667478279966224115035724876494388291369977886147388004365503883826026498949958774719152700917875327601974555506246908097331424861681017284549308330181519552362088452084003186124778791084612555102067658038345535092539133756350596075348220339124232005352955703324439899774087362103832868657857356033652482047928665905183657052504318961917393212643731669072301229904861677800613693789526771913345732946137039664681241679569096250673569255556288914327884272505953406050568238710011962487332558071289641388784864089652385532161748702170478577918460125759717930372579409878926818581966490393985557206864991561901499886737362340245005383013793293789909523153900960680708678732128584052075210813138724606536756999925700565384902514456157384783820008036014640686788771556854618512454051156266607522234644177046924486441350205453857517905402247230432425084553490488519982706264486490424955262152137175016073146332493343411849753049281223593278565305637110165102124843306846654777874226894650112723941798884018867866128017753931629924000409476723675034624057950969427228306158350311836793075954157025846768924906569749582294979343328658540751935944725387632452337824917674326809056625014504208930865154518871807667432801373600562577891206137496057220308658789645886714710435859574556038990343065350371184351562483206392987679750548097785947317611531876854172061398571144777993643915613242800926824724590236883883181418653569118432522579396288708151139526747683039355882831374084803711122459332688349485070353667638044944811779807323797725307987043405688297586397806104513975496366868478761235122032348150595617832398481472071567337634076902666014808300559858987588252278433777191020361963819173477052704568058990537859979822953746905017394375254400000418207540735711037822439821869378343275240521663631679776130542797470360760756153417593675302352193761948566639003829288195147715710974074968956413445961210185988839520651000688135629243387874303003727347894373562115539706288785215969106142195975078449609252951128475305227255352057786870969101514045252987201183884896023522607865089185034323705944284760322970518254885587685834721466803410772224714707729962487169466342331184758140839248848923349075613203657323575155282609398380757374874375137609325625968262458013836982570331288193598988974654076440490677238910338586105719121062888135102124206486630093462005818231034222309171006211548032152815696166392209623396787894615191803183938405793204277532532385588699180034694131324133867711628907629358197527766724524079144385160416556241836592233259012170725817282129088260353624447950265582608999828956575179679830306858894597712159322162603156399989065419063324245827743994039697046827153828640502821284974285592565105935195723285525638635351664273941536917344811147520336951785004402497481931141999023714324632708350079632210672961502100169690682171490577685181651264536345498559993644726733046168829271172161666036593333387964565570120054338569602517212282482382392422449410583321704575759342167862586471414909216996631097656290224559234987173108446501250751087261941955692872162232672820203786215047069954764316003892760288546037530121085568541705674803391069441192862862925633177940502511778844233708930301243198728350480770490469065979539736744055229652861715173725147265892357351925464141491037312566668937136551608162014343270075316048823755372730397125569590376413799807532685779525817235702655387304862399243075096684107198608155613907198305923243146418334962522908154741068739452149573611981773758996296830051628555005943964530319936846607174138333183699545179791723994078762150543929544915220790261871860608109482362952408194747770681067733083902301443779656424391535790015396023233412760135840733579062140182616253840489619061649492940422114504682529991023990131402643015377864117037144873027799231117494072308966063800941181391214806440849931715945933166965629563115394675587985184561199473828357299302921324456612949299835466420439267928462124202081162189180018792234030119721517082681328113251720218537350434711922605129986771143969443263771856781297680334943186362706219376376028606791024354886236828442039724339815534913892894415810220141408643939487921897759272583073426724794741876398413307849972085522417235317393659060696686963204988921517503458022638739248641515331564729480622852606325836534010001932796515341204069186108299558024880486260202851120760687233633326510242363624429172798884556036528825765042007813184931187133696150713532287441286931440414642104909184471822817844504099719231342384849023077156642583334057652988924686361111730743394607571197908437106628264029345342528835180222214751493746473543607629715573792497646167532497866908612200540943747583211498887471372652956569467912947285230214380368931483981640684753301124965096991404016549357137520173097708296297093288867013835304431311906032175413997386475113691394588990959566916812946230986731820447173879670192048065002754630540656966470173814451468071958345703168123273762279088104811234613691659092771376622205080837596485840396468017298582913319895230369590264346653531108511111348671742741304870874989414549657956256959347877641521625836185196025388793757699669304095981295691940648057763680159679037014741351496433474600656162335072325545297615669267683715960426917921402707632138663817517999402305220160938379992846553972322788951084844322919611193317721306636398082404024891264751137204222166700904088264665464931013482602573172313778223180458601525232759955141561228829602850563603923196147732465998769178236773131001826102807100597156968226470029617408489731304898970071004690091635257693526858334963323338557092538150347728708835799773661563965496156012709696061543075192201728910661401020411824022782141908665814386545898741629120220985969714365724323303829046047700210935540430589984888975670184068137738643643119165828741068837866784673033047917025878552174553398856549597039027461665843552803675855504381508684311081430253739301269499081141909318904634373766896768541001224190899783596458967335021408439535320672669823579838434904783758889103583429856825712003856971696177630448420638162994961630617247024352915462257265488030380935197031761059356736956513340479476039607275449866935785929643546208334132340561627555954137026725615808222214137371475142713287287871897959068935152963409445453097062828160114307361999506906511459928516558268354556447657165117413832482704434944287160370802116314843533924491249230321737142329773185056105810913640165448107021623659160748951661820636059631683322403176734958154730602343517231625260986099583650945255713045974230816952072285382630629671106809687378286426472869391780898463608287633438829223575244295130391103573698354378568252078057693615185368030908317670507127543899431169294643554807450039669627458678828949861912554938400086270976309240033775174175936397088377318997585674519857689082216968246882628824236835595800737809950305824401016204958475962391739679162353475624696248632097523590629492189774892029487407837198102544339754791259239828963956082799824833508891416892873755188604854950318358723471454731785606693645357038631668209404474520071725421700135365816774973905684986496554536954770838867538299250466207707182779528778219550956509281988056993308120825672296776855990697184388936208948609473754513272440775857861266498747753865956857077327009877492973212657946621594904738146921346669992185836850414968041429236059179358741350756327618291479521591733235066921175311191330398123819595209658375698011074133528987087599955757020401664817431047555504014663586489424190549369219787930591169326850322468426834892641571177070937231914439324557016054753497004204003832384360737221300931759073081106881928322835348767730926826209531780429949188647285475251719816276043375920841326247711234705277016854851034811311019564052081954630712375487651072882906642411608313210037751696623353801388794098267087262100978912937982840464666183039980706413643672294359231997580789183204095068309495169946173989116556229264610973717199077673371040884111212782842576627121298672554605965763424408392933989765979192461307407272601262513130796659148172980171861539583602082383479066461866009373520000778309107466714949476593922731552862542179633531851221252307820929343671240391120667416496219085252503219049295033502451540061176843483135521368040436558537081930456793445587614526599651869722411484716865628405425777465178779195074282247377805237478387973246833993364443252683209118264969740491462165598325957646984436097561273968397031774239087508194043355484105325238193429102328031149050519460231801934157565839720142941755700829470915019862204437475914260921877869649219993051807493491390345787677753504460178077084777790186171492879655628183453742364345401039636200858115079202223201294202037672565167066518146747051925804157865131243498072462641863367681199541079950947155355039414988708965765841558612050623839618841302269624949857106387630179542455367925700581528835131943972340251373760794961715678982132518931190840495212886856709990129936697450233651022321093945069792990378160253285004988495074626155222909700452813300964359028974185580419456397539880520245166864840907218151652611791607261966863648148232615697432283594477610492451798160869644522716085970327381585579413573927900870776581453409164299503780546233586711731742796262893587076877428941059205343173933747982651850127156499269938804261426072783273470746800185264223941820370852156781746089008662607851243407667872833007505480007075356672974608521392871832749777842915445313448817010276151774109814882400949337142225630849917050987195202980100566792121287386560767919821100590374177732291218746012505228476940058198317943005623922306808239297579314113006866541354205071792255501217258773152420445465206593724352367084928854413678035893942534107929214156100247372490756533046629625919375146785260711486667096178490531386765864961709889977383883941065454713171788693302855848235459536572848127997308170504501583440165307039485733067489984154669776558171821922106125921594434646071228578542956760238740122350827950659340976666016630502386135708554272256627886720529634368163555057049826604020747087631936075178768176789388254718653961395248222922087422705950812027576624607262675143963289085861316985668696952168787752828821213707464892783505749134754851598607004607389857446988014938934208785290956732513352150292642672002678758321638861073040794748313861259252764242473160544630068321014601208219761286801917869050546201512583503181145585109550612749450587883468812817777109303577138911762612562133694871456909582639650317574597576707546605109597133508386993261286564575712192475025000283634667793927791964653744258446351319307457808262640872799976892228892521612472010531855203298207027980486339262132634006665216528816655042524569544869302803213448280941692795144700293535967788567117439375198225534189733437965940372157096746830086650771318428549492149041222348644684919402054513839564517383796669382227843983671595989654108771415147968200765005777164719220070731909792994904878339350877397214698703717928900895051607940681438782359645409301591636424697967243679528895812260487804632444598027282370809534365631915621908688923691381541503075394380824932882019394427884979607260615514590318918803445285021150839489313988459123212859374420794395188410250978895691553850079674661387407828083114844056458314693545708999049777879239428754245869656372574154376452733864714737634015527376870649597993987326035220576065447284112406871905214050457651728156426495458196244208139942045903212436605813228884023787624190344405890041514651155279611595493126124554858570715451455966031961148928677192742088661341737752551164072002686189923666635806053892369476332707175087001599949904171100387112331756574064891525024377146527948169309420665384987682599464509181981756220840726457559588608143423497867387088740084218543523724919597209879786814168006646793504131232787415243483715408043230636870201818498183955189559408808061861453690785493558553426000537475408471126039235786011472505610839166284548335388754916564499283728545269975910444999745860180668617716303511061726459393512366128440630572253578413047888258343091171792916892911303725873430578085060070648528980568548928995186055512148255236852039845194234082084549385223903948664946486387776387080497269117677866481642876563140714930402323647703119709153995173758214339579968755082501149803640618246621977000872007832604754827962033456861588667600448179295640084848420031361194865515630371703170338489187785429325709440672334507221982386190150192547773385912639572276748088198046077210096486260069556435956943426864936721130344980267842065604829151138782859164707053303623762932555597345344069260587278111102338993954416881881141634750251773960229105386225092486836416140644626663307091000851032052267561903254783971218403000132536536434613461984117091326406285736512372924846631665447884894122355519059069417542813403197508964121792134629102036037153874825294648792182356291693599761242259682684417047047986755004005462520787876826095038765217852782941118782569413999567925157298782056666950433290828148514029468838208223240156495047411644114283722572202598160083154448627042634498757714041894835494678894876347436763357827100134757661895697593789013507942526093205420318480963290944053110194176360865431645053080256886428603970265192236225664769192137594492630648327891291677611240905950684488726917361055223966699395193001396346315634870936649811714942783105045562234865239983295554658186631411054803787756503828066363581128139401308228655690975883319911349916873026603663875194356592341432951912704129771638234750811587602152995314434424813542094537191188376055749524917638960382960409060798069026856192963387392979069751892804717860842413250135692773775403290617880927801775309100501967470823162375199632273531798892977552187722492299056204554466579952232600409303762957321771973460347249913313236521200608024406609095501340423591550187922301723988989946879393606590849068483586000600739901742355487874413174781746517782646377813640474537488696112142215973883030307754416682061290608533272104021842206641707525149896634855235541618751299805969628092832849294395098661462931835747955637642185973905469191098918567612898068056543499193303407721791574748763502471219917690855685042677475644772016321754701084843244419532679921677921223690631492205653845477441860325071174351674909352578566048588995157247923137878966715497070806383719849762354597825016565982369148613384674182139350648529606247103107524363777232142231782987513593998248072402568142089747044233850111938795627428547325834327520785501848861153290242657526955086658206348608035499790259914764408612619287840405834397151069488611344531487229532651482655017069966111945409814246756112239555626140507947717095749250863946191364191030750822329777084397156642796550750048564176689833658800644169712934516176410366258769362169726259968056678462024147900782620185219336326778638217560639628218196890375066497754903805654248418636733599679933408467782484032268203035740313890784342091188802932096705452784890120360128712381937523434716366956307685137883177513321301533837597418348195659457419584074621383730302516778790108202780151854324109112207070123524403179180683115266816981072791328460124460039531200496903332783560823236808907786982515114422131259922045874783179690997603272191911456949399803274518631147298235768501654630768966537638802318049790176013242924756384755806296469088671143327163943115260452247932141471606959069968201927393176223437106995011972418582500931073543149454580997434848908916415879538907358435103587004671121812698361352422442771390081813945608273866521961652310529954985502476352348964334674080869449020736368860997686160784886755754712338044256991261272245604011025943854511931374359252418640439959702388802297452618087182762364412180146692758912524347420226946643333972611049220516585702815997022144598079296622808973579331419292956560082295372147892249341667541563631561679804727156309979646757690648486679005070314145265226680158950039460860443987901525715768246448834053069171347426334528686985915566256997381720858989253920057375060961583517663055110989586706779158210247430493499053022541276463877751029011845273900190467292991829481932158833200963986530743261886254752937342891575324587274028083712282397942897065510139211648939045302745854678137895874910248219822621037159215745406986755566209648215477708986692993548316466572721969717361281785935689783138427000103623870820086010004859765739368712102403523531681858585399353442111377487699778688302362225984533496617850775488108580779117770377668327356432113550172583406380387150439092249190957047376569799802486655055346264884285620370797170571935911521298018579330047392671118363714700386610017955879374785296601060666028700099658965935470879811506335942210471410566386031569127796136048312143563364122923168876942889147579711863638409697124961407499167288558591098105337392297634808897080219499994545839650415673865110593227332487905190352302576282453278234990512287685690961300905370245486335910280050440369512228923936307864791697490045496238016271046555650842733734367306704053526872127268214477348371816905480339820706737882872412534744728280595366847419430352683155260609045144961537480093583636330061122195375684888920563994093037756601835715231296139860480594572060749942235707872237812419757506843589273421156896968820387972862038777859691312726127489404394007918300054546634591353104677916933628790157256323606249912756070487558862225826568825956077806648079429229200145469086575230584191165613570295575395809104808497617385155627321333970815750199157456728124711600513012619643365013799849411875811348780419135345039143059408120840022713828909826651747283899756474181447469262587165627295240929663199701620630521592162746637561016638825668679144168357028175192136699649142443089918495072900766000393608498965972335729444455951464744651273340805558074035054286564694182639212637597932331543793852814969535138088903788391303262916819912462248521103890261950574357899165689721287222829544451219019265425156431917794642539477078007361239753162460167855874897854378211402387649794399765549578966835821701022581991118206176288093950941010432254748945761746371151449404510854485054199528184304377921080496576447210854147226378249037606023386052333547415988557106499057573542935630705509860626451832310706535444685265004904473826253842300112730965383374839901496562451213944635726743672454298325650840106324486457647949349200463492222568381639975511256135423035027726327650541239215021442150662568721680766084553598405495672002384509016462424990892488938479209463110932818535185389978724760905603877601838250164487046341254217829505760816616629052750887981439948025532964652536633793428054610735086093817790756382378988680972462025068286727362523816858617561067588526808582973930898864310953462655806023084533948076315064843950848400654817716705791082028501324509994883745564364324751742240847818297470822023713652099360414588264891657112025286640370391099524159010694323135861192686667775776287276578258609475729498799741619049375043683630279103710700744706510230046692021258596663628472805416341753843339382711899832352765813994221617838993544594940643866934875574568111722314361487627884024401662563477923949827210307910289072124389949550320243431335204996337507678510272933035605290000469873789857329764749159419462769349879349603699725431876883358844850585009999232278201694636853760735260892878168592123730100783539652573471217657435692341650546262544459081792583632764150121741886001753676724651761297925340638434930926525653206834531805351856952645826524535443877540645484247058340459813522103719660312296650158288974650616976628115281114334218192687808820675826690085917824498061974212445550696821550780548601143929798807744235650020896753141487531800334506986585744811860910010168624559869035215446944967339370742591015627931807985143159804292462773109484477947204273363170237222438131697835304257401445076284033208416456132254749309789450042770662949571056168175146931861406815520704136808345959737389490284375852983302516760793225671654123173881545544479340610062661896173811690361877868056092199142466497515627128265258805711903765776181103268009856668542532041123448440163506079052027969625368686795625418516804764117091255501933991603155049163458403329488861406539016052671437275367538648903577921498282119489253461705854356250535192395486260931322131939177013475875292627993839280181011391036119229751469154662647064304444947902300169205077584978202108020599289766123985571424776584774818040016436895786135895189284103059123486250102001273528463051173008715761401058400152044166109326400901501951035240622239157278778283406608709165349942789892176949749096221103588647014353510602469301218265891341424255648184121885717412155174305203900988898821302582265221237182291631308112532341832033145751997650260451050640159989110350765635029747638671391672084840043889474753768606248528814422794424679573358349113791235374276339483824622399452720600190445459321630210727954022193493751780021544019736575317930462858461097594623442368094344542134178386763202834117105613926593810709081950347143235985207089915369625336611285055532669569818771224327879561127453944416483063693422994679652157650260694655113714223415114620802282076658923244645720140775852618719548241559768394121029251635839905251347901624510305839967326979095027036965498617899004151388026312752052300365082947629814054975721643095117407522793583175974217935916199230298455779265854374481718368640019165951012743824009234786179883173199433337665868772086081507228691295968175177679782669511506097586742982701665781723314687597510905009263211918032994630143590157677670466594534601531480337697289563662520374224128390710927592435861090955532373747842471547980436021449505671229154031552696958278930375174444137594209566501560546075851555050039637432992068247859089322124079831264708483991864400775436451797434038825020736566774699021928776830258877221720452491223688473171929364826321762429825407214607417634153724325346767153811064477378545263818552051174590030933120546767261694211538992614044702007441104903793339123304529305586045084513267942508134679807813605130652460300792299003692736390568911442686717874293490542986102897693757226423375723112020505993466943319198227919233270379302233729179951349921243335027865837222201535682681330062420745548350820878100095577057109423836320227092258813656764873259694746010699246635391224408040316206379313775976292636130488038430757127784468972410277109412667952525736912040983518664389573687683571708566616216658140368029747622238422967272800304831166927914098851267446391278384963455224586724486404694776685251797902418947979712484077263365875896236789835511224073545088489259450741335896458258051250418057832594215469847761264164790314552797879113638638456277283034152506208888304334520148318508528003729595993696668788758703530374708473610146663048930967333820070805703447514946666805076725804630123080221000820278342266841074345369537437611950524953332579309505813071243098732604874092660116882504023562174995002287307775947724084702687008811435377425544551477697842756893876516615547706928072744147057762693178827249287875635242531330349076042779336343708876035854239083447270751120403638934032518534369617698867825294852099098188621555751319634669272211018458484023139060687782891061410672374334053279407661255168821946802512895226105248359382522831195302325924601414608282588115476755061730156433217127033121325075160327855147839405498045732546928942608810534108966457486811038158843584132480916425821133993421410624632571527354126055568963503165419126718846482828875001832342551419418396654825858863567718100463780436992057342266252510801431270261848213447498801954534165769337695901020168712183297394868672283392238503838892689995928280423385587112071194939513264607324912108295591772354704463687643337706325181734360242753622809842581554559513984263497921069519354558313606113810544929532551824095943026687363354217330796342644516012311765040373206116847388407323780477190997788399088082997375832667545557266868358368552686187668039036480260138383853680852990280663017391918376860607361539847603692486531884619885568026322003119487450280700395662182119380821398890030402829092457112003287941480211390029956965377140556541528355987307518158965556314866579727597495137708970700067904367340564928844834364052771802387067419990738765612524237249009959159211409881158465402593823210836514676852156392816404327652048918554578213650751734285311133368675319489249162606074530777518202595958815856856108865808745480544281132761514291082019379980880034415173056735771749927893293781821037972086655426309366611580777745264961801263666724975928960914517401590164853646449974306862764978735797968111021535809992942885745987925875483313825809753025934370929439184068319706313798137818606200061340282302250083551652559351459250460693111543889649534849330759346283484069646379199265194104719712867977700852269121596660276744969407220999235362504067046780097466373205703628061831968455614534634553538990406195577758600872739626771103675787573781727303671967727557326339719945386275780022094311110338178098472640465230870922226660723542871084316522240532620111904296263790846184108894597394859968083785170616177173503836700320767000558143478563353018591662370379711699398991898101302723593241080948790674236710260942091373387465299002610610166651413026615848104904460768857155473337275720285497230820974869904995960702191438289516244185889062663424182490757230963990703721870244643976231581944507450015665801551499574233246792577945124923951359730608950000363707292525230384691810805445265797145432406436281208185954628618204846311178360925519905059021646626077487255493429306114517619475962092270938780885560952711632623833003314830370689563355649606595099294927485609462948274591133743777291981950433725600297168344302446107202012881349908171528643006248092238987349529852327450230813980616667491166092371598868242135651231019304749122397915713488655870859019116499005927678507034477473182169413175152459569340993015345795080801660182930635148585932063938122949794844958124628634880483777957788597913288458850676175629873346680124875893478032820344377628185157883478089110610877855308694780668732870026335162364051202877650056516688650889377004511597653136103932544976685944611757036635157827338164015647723639802901125047981679974594378250422914581835788037603738046847734538329712872607963480028210637924749576027519664775176737742737072737114571845891133151733269825755508350514277455487047439373418637510671253446397208765071071648080570782374360658681490778202196077832377800558102044265786800607449400671848233532042502671691060658461185734946469972570169041762387329999119100293842628524727540199926109962549079624601446303964288535373679101096233156063702750478995339867997258810276707967198594624363827758539170783246744244805330912905463880466913136180377169288059338477741486367034005324400565552185220371590187369663146315773445102048565536610134241013647184958224858464088030326248734635100267856458349911657245475954020454669819816192640421688024065898923230496279747760052289558351199377085611938771976404232444777221978290794519763746758574268582167893196933623431804660553382398329911940918958702505292458554642952248275886278069708842151525339631970608447298748119160571003591238267272609949645664294765547144718815016583191207846319569477874843025197377702944989184815533469717984874759670092737675711705917116519799865736748404860340585528950563461039017214977839207298109935770833176216061750587672233296339948893351874502667813030288877528823433630332916295538113914595606654606867750980928738907641661207506249035477244611874757949813302219801231074487022492349759667359831290097325646686889847628532824729206143058410977063443027608914263186449606259157883497676187651058361268238572783299896809670112597503362477736550669137758896440239861328720782090360614166455075383465638819395875057876027275959055554199382223653307366848081443230443407003180345615949350908432456618573204459838192326115594329728864080544287757466342264088619241220538886854318234161351076006202798329980000643064975552846376840173916318475800857227388621970938087587312009535136788049640077462993853102316426956810974053301315416062767273599316885989708544528068403050247772315395582385019376815066144165711379870188176722269107363171137796987767732413063242262247616345229678985869412041737242948827309759744728606205508270623243028568803132344174716607767604903200595503222181548066931390001798602496523577073607082723116054242979206642682161892117825841168210947315597271565678536529350839028082766659492989532534913051863285201071726722540084045981167160123083629343910948304986509148392833301912559733617795935774586833737055926038171074571426395300702784646500835326022523951675009610453953776874543642079056766187304330249718723320621800958117869588099346703554752890039009830901307686388553653459552453002962571907408070402487021803063709754051582098944848656902143355814886370105266011442172690875461960089368229556778517228120698758008910031050785221039285495614072771765267061644572740935572359697587836711969064486500457323495894169473310243668529525463605861088781852367170748499667267990766850227780918011039055980404779937873708318579333024009858696607771611372441916104994974718980781957221180005543136900008605880026042050448275939467203589338764289343529410500038407601784923092998036579617576885245491945159303300104230950425876120706376660799569761312414201507641032723866467203294477868465266521970036090873604119208745760941476753224245589934298261527348267609107754037260887242853585924344860829945229450601668948699580581149327279902418373794248746466829692283090070339759946541793942225148449376510266643778989777832506284718657418087789923058708366680256171374104736863300455441433481182663681051269030109267437154442103323329396153670498822450032420613930609126000391464418346431275913122144162125809153907453637395430986681104070554209480708893461005409628663225853969397563295272758945897830664602559030040807342173014204226438009943818520735423323379420851042575599529319350452645574776779620135807911125796179949282638278191107765333390999550051895914016923875399823594680970684044876782037844680190136066160249473722427277814530254669494556879516622686926628361751351944914642606408047509646495293459960102775726857063588648628547851926130062362733857048784061400351427943892615555063498095327293198978493840227396030601865266575526742044404225448372910312524538584137408016179292180092553585848398337060394658202986845623686705996139052091439018053143230804165001084635289600605112167779515902399094852856894878713923894163604589359737761741281312383789347613572525227144601038422446088001930177148378547523709627127346624637043406768694249914225132847605355328434627420657194633814992079633092051751295909857694245063922487793171181125736047831976129927831178764975712349319566898048636816125046664964694442615606134093133150283804313341573742379371376320339509012141616550565120693522569353601441700595354611247713876317404376057006490340005757841985957405149773430787959074794478228581122823666092373681591634577103324580727232831253029405162966596791980166759226954134562815532895609595816341257940847172486193815306079693253013029204524442759635133674300350393927984379534095923012970137927679441031734768654214266066932428163764490704373092462366623184210481289416911840311700075742960037738367068938486595439014343155875230344220319740987216030511343786416706061435421197773948767362787823422446845613963242826028855629254875263749530263877908860973177219857896351690428526911410990150423854505678193786412330944317305177831423813853197572857455087868215722706393999045398487074206991946571369224846923661716258178859879641402393934885928175185778505583026488862446385351728157560691701280896797380134336537661524710931755925064398549838714952558674701793418728924789128406037459515299326719039683502401620026899030606660207366582500111632268419082320767548496621576759352582689865620853203407049177482275020351967393366362862796158249138502401483641787211926821061974080382865782173109084604613776621456619706918102406296381115985642832165960314892356072280246620805502202727454270057028685771748359962566012087227041522312391837606143336360236049538001010726388253633771475194054535529039494065153981703934420484096468832883402653958127928507610727740734364870028991970228231081108448440032627720658392390167075368012227146621173223952536326086839487841120098158793080834951034543590791289340531169694807605029173523203764922611944234966199546050340008958178707327975254682615586291414213554434683557859757888912824142989238734503505838622500029345039551551343887379518451187887095149879153096781886339520191570018213101800597297058988619770188687118401398975254573988987531166404102840915622956028408700853618040403280092712547626354485295838427523985025710621633096600974422055628246212843015938593749311078516535657912469862255915707501046562625073836201359016840947064115226837959439695783681968850520799916884351181248770631766083723999644934870425724250833376792298224554643371896765070527017451832870261443150560591382782778939501212089799349851962709787649691729526238857427670012506662386297778088247522139376564750381011401384672683881057035825846417687206693133427541033843805641360073099392468563931760841920031401340310474917561068197423000637858989056518618674120972652688449608038392567381072742711922760165595571974711846032258604502596532905634340827757904109314590753934909381586091319419576882561783529767757870183776274709418218287732110132218200838823024341834468611448248393248401068933241629802687235929093676311474245182475150429784929118020153294204052873126845245234450689963851984415044649191365417443999381510116834556990998010170343795322393393539949673908021886476285904068021577685550605374247563039576797422559046645335316075588520814837539745026970528431392392595295467561009441267142294209485268663011361686447794419275083224425797194740536241735425116143713682758804442666223721459084767884384820240143177539401700497254077214570318252803702196596956241442267012173430650844191662805365444457927732013460499463214252951418438571996899707733422166949505003615702869245875020298689766470497265926735522143592314535332228297836404437650747239331245433496117647594282295971595338052690463330466763124933616054697738178226391713457241283036336735098365311589001496617395448967123125754164592320334230844772834200398852845606424361206842791403744033802289389572931245842632147438592225194849220112763672281220452018398318441627351411155015414209782712579640332759945608279962877396395466543725828368077300860684327251825108744268709421416565667352408688868153927932704048850736793162298696199236638967513895952986360466960380403401677260751816385637723773187847480844339220355451964381570664629784314451663549894663802514774478827852153038241258156582736203908608598600343391855142367438865566162126542894606225916671871757471158725640035473335502582974296680005005459024198150813177465934191084537422409919110453704034974403337820795843527268011132135498467654008252917731032845594607835691590715099958745529805219818706199925587006628172730799069003435940309375940242282106819026885937690684137815252000605027681783192588788618564536817737552474373369027831633791938238246755546403865361623734477477895408517474561382734745852635799215892766453242150868180972517934762784365106757726189603370779753343260129445690000461886386371588864977040346856492829893168995242494276372916524035493392100206209249588715304763397485195350517441983054381485130396245992660628912251961241359518199563409199414802432040136417791987802300952645352931276408134614704058095216992456710408504261103899480906958668709976370627178867090169525522886156666487230217527111747952127098356378590706901704081959092297009303389782969895407633303668738116708408630495156202308202392939972543116766802521254786740329145774352092473027732408160415564485768505067055560568103753763803208322225979490656314752064203131271887749327635421619836889183517564618409300095757483408685465514757594755975854200501499502452417975802818308342420826171045777392581603385973234018165364620366499978803121717479629320700522911064167202168668821426008254987393383816463463079155379363814259464433210587093338688275351583541846169172731491357846329923035516725446209773524279163403027333793843992900351265087332988138569989668360144568662316896708489535829248426154675265296296815514519432142124229084021396647734563282272243322924075974388962801757259145373083041189556187963659729222669863150649363675497067854286578304242637728442377769230665103943734250128908837951641128541933796640430245392826397471361286534323480998080096450963281579460450701552981409018914910673351382059540024714113880790032670751789785998523971847231727881204905163065523087338598372301998559378249033115482942433779463885215073453240805934112275032784409785585614693983759946535081601933647780160437710464688739947168797855121532289071736678501104311281302244642447552212694990314738911781095442405018195576798757704239724078412880415129213148634118444142015048505934759829310375609091743824504926652671238207527882923390698058713408280922599956201798241167801463349519163781658687808286213266434194267526707127554758115919482104305282018492069828529337265168246946352079226650748639172597596126295224647936883517711133861706895852940456797658835942771735045673932440938602638631852412537893707638739094927896650473343798757735774056101247028988286233417695698520438536573412841653865512624454772445747219928859605806230358581078279263334997836870183943650836380130361626314873037729741476742442239698476309354975666543233440179549263104051281535458023282255477803710266465730743804370884504245092248297413959412556582326514414437511764702765268040179298414981420789677544852183263637755742099667914367607496481158063854504662550931987228922230017754517628258268416202190117658654075834445581594778959682409017793891702507065632187193237706238020173033312327296858725798584076998403217877267187959231299511250954683956136576550885033868222966795870943797177486336020771524075265028022866319823478332415767111981672406491797811920984104154172395491085580896561780374964160934342044346959824879165060577568902340585378851455322827694204267081135918573340608441247534168655468583229595333800975485610211922080414451063568290293549067876114497643139822168301828859092330157777485206049800291242199955025924665575880493849828783838196839592467547536901666878645788081753147088553678539845327577129679625092771963356708870826945779461238674033439334857089326893077202672494700131280886286810087064629892480026261394016268685266562000933643221053047719520042553805632231746147430328219288303046820226852166194978199072659703329278454071440332054834113902183335482673221853876290968602881432982805696481736174775627725087984230078649544942790050746378519985211476810983741265336188156963181626194784730256820801184238288229791152920451304969774948255866657994379656515678263506037365957315829952321744841639798912818994284208896740959227015694531130311383631461598769758174295125130497630614340400114784822102921081331756699170250938407020093619699390911031034625857809551082176134270675474656751792330164713485971621008351831123827035474846622003076742592407476907877201154167418128265155222133365268035056994125939823828968956362920422636944445656453439585513516363868606329500287167846953724271328179441530991939140720651569612393973701003031328245011498502112984503403432400367650078453923077752640252103424399814307021873137043083318453090148069822280952921882806206377464168935787523382848948273569771440975312231148459876778175027199108117441342549789880762160755036457939896728105182430918383574983525326034091353032458327802826387491544292898206577244341357446063031535618093929141802947665484317518149669390445722002120021379609061703562084045439411220164824803464610530094418077476498124803152316733169056195276222112164225616195172655770960660453148616567618172303713286032405002099497766590473497135802248315417678598081482334091573593895589007546322262975694637006906955003992275765379650132098983870696783503908264014271909053957886833125060856880963747505431378258505839535250023239928453267652407215116450244111287401990761414744083210775214784409346803781720774305389674242969037385945335453118150788180821070831044578136482558471475840070443098934448625874523041973572364760647197959806310225052629280730609935103783365674753756309791996454732527297530537192108732354795939269211566262215867267856212879748083513739357761727806168921892424772684629438074061991983571127821066087965444858123877834680985788903603819257186379564052257265558958326682687770121853888906315872889424713028975905874164177968768246780144424004807301482544758692661097144121702767258817595083782692737750825046371209184870576437307561701375532098877206589692706255155410861171798713232808873616846516738090745921631516053927220573652965810661640780473244523976825394617978470348116305510824605989164972510394662271944590974926093689129195291882842056038184207002553958709220092420911990120341260719226455612394812187943428866092931342852460970405850411339675554531259004153342106345246851675167319817059498478804897593198730238825186469540374206589785996433655421201150073585346556972073440335208141501751354151439130452366837031512614334796700696523007271273957119984812246824883138037734356528110011089403783849428400550914941032730123226852038644027192571948855034934695353639689628968024239246057350967351189654757254084264005897680343642826891536675334189689786382338094385626043925802241039987213548327037518276530476796485710126580638206948642624135513478246810809555828386708814995505288587322919026395313849694511948618086523494508833841667258735458878639756559262169872670894882251797524926351084754417743653806495227822992172851755924497938389111222440512528507809863402789046863694965519085103474923465212922758173665589010905780674844832972668758061925708665184081979211614029482654333904582275273534380630705073458893938051398573404880034557918353384232789744828500315800181134255934507862849160740029215879711535450991677457127169876584210999415330738777469906887228063754532278077870546221324105951768827333322971767786403522544251274533056325350979351610265103477016164976286015953584652543251110958554267427004368647166997552368120142014422614901231372675884945437425567562229492213332802255331909897761635908416135410645614051514124225345280299187931870975193343534598616055192447453948624749458245316425764403798793618320929283129615379445287340947770082842987502825073041791579835790718710711589217925911390987611970699137393784698637359231534343262345013575988461639131141378829189049299384484190713184250458883592082036711188217123095506483574656129182909899855796726401156893868084214532745670062954547333781314576838025360480709688001618752960883556344555280642481795107745148896195102579754461299858044650782021306471893810128744574020804623484669894130551334025429286416874249623070192058928930816246958943810400873221219610373149719361399063605904806564329503191071113665087033577227375593127006296634193595586261206984991722524453526963538372343824747456238818558899883436964098865946503284574088759352318013154746078036840055618669318693907578821257903270152123274475348155234502540719585576792835815475859792716193785873459802111413292977831881502219993114896163604680235417610335170290778145477235510655276504590677065376706007740789855246480203536451445603923287496985040097142080384502397944291271076167692057947772882177551503943086302920754915142541732858862059750776537395798163899161052924830130924893921433558113978506581274689450054457065665427098693347382515635177610623347762994747719873381761177163012823464264851254554653105338545930546637788900335637725752372345004731430716496262716128115686656992431891681314616149327087005052880029155376748572224510773149804327062861540526964364531002779924034305626261952879951658268190527306018473175117136247777356485454693936800765900812307805930303632735140905130992660535612978825736314633402160945656699821928171828633932999686762432343395204405199429962507947491718306058601734913600896477586193990500509528570000555796496257888487596323709107820597865763564339742588873999441512110075481940287669419050625011230965636251860532105530347336821873146705241248838373498863403512335932260949555101456550786384323426338280844550400453216183042942438143574908028333125922765922498278464001490570749681278409290832618119917090410693127352857197687772169761273378508877897366908180580113726039164277218069518170664429335578532282492678886748917606197116213833749925902267428055807646815252592618746665319578178629497727774569643406477110640431304191815218158706693814137818608327001557108856906738031456636594694424939932311189452546007608809155207513123191901779041034161348923210827844616232363109592795202884019043819160076337333497440047742708064176984604197025373509308258758235692798179940982129542383051184006666843036522688549664916005182068821014355502292371695335463615012724903875300016879408904141739934382869085651145148209628055138354991298822169934397353127320461722418868880104317852452119403608999154976236713806616667513257695220818519095451816049258297187113669661222013078652900492516904365857614426419722810857899604379636114044816288754346594590524469826567913622935671975724323959980798436475499585391585303092170423911205308573878607602100289682367810142459949531138463406429042390661460566642550797141197619632007619013827289388725032125945050427485120439666491850717709300672932346190399902775675362408178868312639621668354455002968368415114846281050332091746530908676411194280332376725347224263475396742201341408152829525911303805371394651174029841755690238107687497939332134797275833626591302543816227777398155280601963519521982492348959212970813535756835347565619658634482826319291448006885228335494717705509662893045631238130528756172487813265068112589665670960189360676215044343993078444858665662763882393176409419743110732704304178128081596770493880738536003901833212966401996110736787023232029445604139705799357316765955128228249340624653424521931099505825588426469075769139121542723410798330437057950960125682643469162314324546981378888823587269454936404382192105598754343035179267290268062410710937641088465501642820341889665475617846473367298818310080112001331113605951949784318978766314408742755919043992056200295768348713346388648408904695832816799488974940703918053464686569063286132391231916773197226991964564177103341185162045820362217352152342872897242988909490436806780223987265952297082663883665670539589411123475176376555355328117438043969194939583445699681027761934006039522099717386389324083076962692213765481166342999673749981919208975964198017454492293471498065469613883015783509455813721548984595425739124038166957180185246209512589661021490970690876200260679653179397717502540909482131785688741084813002229477868913073550925526455104460666006832802863281959008989972339428438943352728524923488712956581730876967493137459232250160247901717546091999207676460728467111697255206728360733504273763165496205275300570052530841486271611111197540454350748221329710470278995973357068202934924903400443246141233328103438291004118461575379654234350016064373588388279150363886035791536347050587908031170050990150441403853422488431934438341386030663451899655391708483747187221968785330805720646544326396980160376162384997231618174310510324583277821741900772089788189033796524239557068729495156176033782671319047465760653604713705152662399479945445453182123976621430974587059304509544542496807543310610000283047195007496169658697263204228328672752045787600243433622179606492939385585397999620821889422837809500633609998349594284974354333089683966320311538243586427107768826026508737210710375294228986601181172480180856366579475320978555551255238049494952491921541693393999340588047103023657423767211436500196194886778186745163165346786546025590993550862902648459858122280087185708493019533754462679483054988450331875408781510137246066313674031307882752783166720607135344251775452926074387761632774108501412221878892234064510810883232486309025490136461409885173434664450718444455383566295930559129794068590129594639551979357339467240152047180138506980704298264362005717099832662303021342545222583811469782008496387427710141750257299323214431325309178698410050441805363495099395409757984281976706589855966695407518255792661466420759367979252829109789929172237026832400923856942694488266502169396986606573369451707145559422950094616042045920172022925225507904126274731477816936589907112570823992009244439308527187525015954938585363881722789787878239664848887812418171742517572609072897895852212421112134909789291322231373050368510981987459184874849408782475091551868220938250254638507226722196769119149741452870875250558044059463162418264196507203245104251499178164351856162344878837765442318104747726917984555929538063568799272289955972983552727570031603998983306669694256025800888426244099871024197895731302144180521749226889065182803051145618992758347208786750274145663242196920757326819474056978972823217457059838856046605868509602599403451735000424278336353650957083005341161400428634308971525280562408300417790497669768915987417428061421512548075164960649865363231515599625440456062603679091292149363354744192761118187643009553428706092285927398234279900358014370050712150021780957500865659997262753106232661636779738386653745856429157347167428616139047149871125572722048247188713934519271951296640423669067591502354861983268193324751802672938035710526010056004909361157137092412816643972122980108263193412937780792827830391554451612814222488913345273933623666092417240456507785149558442474182426174623215879608963617006541793580094002520532374219660002005937622929937267574328418284432558562115860539608407568323278630842699840167510683720224233933504082924894896383411459960630844665352663520797985779062304955604617587810781221082332160581529133312955741186257475226602946873270383340333542930955961680260270108017615338033055497301178511331935326826223943010594480248182260705441941785077021202298360807512371248010502544623518812645837000369427654302501950525059056663202162484503988065408842509071250996330623862052961512830397436730534600052641332617403873611313449710413785208067344295568141677729604857811901096966084389253613841296931983366292280711615355600066368005087087153485256470330310054218631212006821694972007707477955248226166991544788683147826072620063834725301028143620904097400517877826045996356024015436999287013889492856803339832164469272360643020016386948412209088531396810077902556309300472812189447465824614027787746824159027131178553661708629131070456347574848067243431748041539421474845483624603457663798805234489857131979662771765886740730279777918920829356438070366627635960374510462801587500395451108680413074156841570510870712721965135589921727386502765466588361816277676789737861357093703733055559813112030479124054509438479835871158293624395349983523398070867654544714218724942555008400291025360218282037905162782761566369881581135105989893393878843826974314057567589446382555924706673687226823649196036999913573575368509776380188794553948220792482794645750896638847927180186166344089851343240852197765324953649924169073633646304317225183670020043463724507099358128066613153581609367264978200627937142087312437845470490344366279220316730929455918427070145428763558918791682516604759587913113387131622175572542452292861032192255787642576224516529733765906254057901828966534620306423100846246474444707673280110555932930595904310028952270223863351169300891369860191510425653078458300161567573765444481266354996394666364768186904690992568573731547895966775840421279391454397622659301456496105078820632865743152631479299296965258149978101741673373393893576678783415178103518813920248984162681843470833229218023188659880568965886497942655622186018602457930309027117886386816136071850231076199102837101603494276429969694418122414547268776522337680710799929640212460555949816127966347836419502278615115708009223277661957837746627688234739108674830392289867748082076848682277483145622246548156882948382768851831093683013962094206970527417664615358759639212068532099618589350915158374873393596312351837524543276777293384797047536551348610553253323430823126926195465835971805899350959903561038679878845267867239907202903604385935146240907473893420706410691739068563962466589437034859540737924412800784268564889996011260195795387205575929813837526639723559610791871616055119726648897394355957547793721704719853713459374606362109982491822472593181249120927583275206546944276957554921400075027213648493219793084076209975304627038184754332131594395521859052123434194949304489827814461205534283168508110132560484325476194821465519016638071107188492023106754513198799372937333010842567735318654030741042240517816528615629010521140204183661376764306662703624615349203269452199165796129842032055992442696549676299012986390183788433537250018412963526458713778508294470074627768260105112297656580079086382560491225694824955251029043674599960200001280720514992998582698418087617947454364046983107938080511483706203107366194120939012576689170679029815508909864705136403969834395524354787975799371018908657620595100754346995047680669031548677247478662443986188541068763991763478708422976067024194362883559466571349065475179100269456787054046552049956092551345794259869097325508851836963341910713604997505137559282574224932936792474222774346365699808885083636912224333697971890471878486238319303915926400233932998544236255916437356069374846130611629107263070182441948416122649714807611607197247338832057437169116703588741165824821113032781573318067356158955871020550800147544892670859143763812774684219341174240371395142114057283194238466671946914902426399130625720436029457861865566734799458538095126964448413380853962176365055329347423068320745468166880006102804404958547654787373996244293198121412919538411094617983218886101441424852754210148255285227461978308043198774024291800226954900308184755527569393558401695924018732807062419485258453646795969516536727123803551158947200026913393372714317172809760208201056584988265890341448708582747775272755483131859061008836045263460027367164376813741747990220610130964449547542918726156698364319784319743442203059280894897086808307841418924599855135283875340270013260776379785059319037436702133524297368556144096904877447321503209998460239969966179290528699932308180840438271093111837029326409589392317127556714382342007190660473399160448786109451543138185306871289082422187411277149565497270559343359441613484230846604614699208058628733896847473302645703184127911271980027842353381393427788928926216163176702761919214061354043056652181121113610719501657983976537890657316675897937632594939016098009809544355202431835167699005993752023706648113884467894638206868589639563476620740872706788716779881076052359508727844689664668366898014299017018995359678749722860925466135622463595842105754671972699141725197670733273424015568158525894466490304758075460350627067227068242753053832653801991211360990497026672853085730156841098513418933379863052180220430727305985624296568518140420923200263206151223004257991585410081851248213979192665478450293323930458428118948715164557801570700311831754088737788360644299108157202936187934457984198917204442652601584134141077356774085306120132513117360933639344713657115859621670990419798132176150790007413272319084246726534327576850638966056704721633622011665604766219174911185118898648946445434946324731495373113781171654322122997647611136391717218777946142293111290583622916429269763099360778287667004308926061685331190358999904901854052229310337203801107276808651392710602044468307871916425888570447172792133606969918616883625494903596778565425916760494564427238401541806602532774131579176867675944043694401434635675826166392214752749274474363576845487435044908185831957915127241708031886911198292294642506760123069433786609430793606431277977249450369590266867531879996343885499496815125931293488466772046081879104890567694379312029165942369444159032896031129368792388050483297491101610990939487735218219070353190576937466774162986538060368556312530191747738185167715543826431520683814690726015078190310157775396383091567046234047768157656175187272192046514483132622589953869559877319136751362008018858666920742019728620594324025026711724488928972034127860896047000254719850870237194507890412583608663846339498047202864974731140355054272841967580749317954478683358884011927462172097391095379700314578052385483222909510141476845769878324444048772770534451189061883169665464458964209243364171925316579406524298120618052952011852484764172665624892385527007710707676831187869266477480225703953536240187095015154561107285440216333404882693827628187912963132003102858694093382393310998358111914040252429070294245415410440019204643042003878051027330451546206278693827440462753017444069814027014775986056503662046840742148204385115623341214701947514982461077323318083787338676162223041306184259619297794235285536633539866453063411621878622199141385171558676647498572451487276733575969750920650522197907219914954625703491490019429413667390907667114659179756814786264948427648357428610939373443255148564305766581438742496472983044000282134446370037326009193532920068478794514186997440257121459929521083839876725072915578391156766067682158354938939908797601181715491145650498111074616353045608491192495397158095780385432224366765920538637880040165336294596119287961160472746572325197525721721047358229834255946293159808542397875156808059385950654647221035499000564053081899530097298610050275292450648065173370922046934586786743692696281817552420085245778013064554604178640938367605215317002865132537506336952164508139654137017964644106061158099202323390618821790452973120172173559759577874676945726440896289230014702518595849935885869723639295947205395635411672922275862526597249653622460455935470947516780998425376340752325647567442363998506279410017327629442464768718752924799653775684590957472693738745318052153758778487223553600174019210676993795138142244322878120540316461845650297535965960556514691780153626154496133786429215808329741530929436163814228720467229194437210896018333646057772623264164488204067835970372971701037463261895336140850742784256554636940834439313754221010530375141563055622168158012704674889384249229457022266700492927360902002925803015725604688248284669325954843016242363235082432798207771561715151415064533549736486333922827170534960430066807680552614879133922954767882661535871224234888005339385720725563836708167232410263983409629189829095846422957504105766110643046635060058938782862443790729965502177546145441544867504867103335343824498876660571208491348941012244793905740392521434882168993040305138100296464314017716024330988585263253629650863169123171256111566591356174412511327323213144430577864583810237478756832655700950026525589590815188401712614010654074800864071216056267647685429185933167056448715183010364867720307331707431122662360607077879717019506231298137423526876438254805116664031364951650132238934541709652898183148227671939718338245258126324780118612466701040238544757426779060798042138048845302942399499947407208275464266486205605466915407340459026042787391117392413314559927264976147192498815381446685731210100228311970449212533439976640353071763178432020022528244013948606663692830727940459959722358716904385890389621122193772062357081521068061135909081823033611071622754928537656882199256543228273132560897514560832135058352661878794416909911954746467182829502250257708456865318139056105473394041549448416639855510993083718573958338142223575591289469062823527749725794499627330525296685373951718852286297791157461641979518732348764170109474334493181083088793583951620349610420371899754702327731803958212827096969471358800807562126755829957096076207061826990660138470944549421424146838451994651801809998768438447994667879549960245197678679808159882207209075656870364945072227670863750108166238090590127948043443577597119219734345917603263677909924694440248685370005993041270707963450122852196845488471520540822154262274296813556284349684669262817306838795186917668892794593540137826896286653264782211685540524655367401469573506255055999036783309365284812681933212931664603662394387462333073414783441508174500990657891025595585524211505270553027504145653532974639534262890528609943015617530630412888969725471515715832311733889386565765174488044733107281328669257390646371126390688504884770549510446602887169245425794797942066860605062567424682317129184657198719802377447110590069454628105029220647312039752286018348952106138939589445655007443309239986184640741413487464705598959779256762592920046113641095773470917039447427823579639316568005336820824823558564273558788377825989382627367683241166391066631151437452855781930358304849447260723423289266760404521829612913392524402879461446874756309581239704052590736325512736319059975004209300837744999785830843954677964493465499082972460526865361275960601592597735991702594875399570564100748856235939468239608925615927688138023472508492400792910727401425214242067870638271597396853510046078092547137517777525769478792394455115214117247478625664930966206567078211776325866431355322287812138249627909697238891861342396618970999542711061852150972368959590342754651998894862831292474548688567484277463910013699810432484335037334943563765367236307846727069471430615741124202116470869692378399072845593089660835443077686112431410162150822871206750454253865660260019821960173692824298701483346569712750254428577109949592388971694760215697005222151597797594791969605477931352029365029449995762279574698673641085860369535710002501118329483188752363975316512915621628737157319923271952576335592608146801157075556303091354369826704864785616944999174625580139264587292119178533161361166543736248842618929249783918325207483574962270496786674693094883683190736988026846329281258129095560097157624298058225222116619385458826317592148710401082741929202612732535246684616229613981982197193074727941705520415581534065960733932732375215431494595161112438913481196911685309332233958487138435506837330068727507541836441442410699243861327725248241595524961419672086332082360963730458303284144414533325424019420962679924091041240856541060198054776894543367260655124245862436201706736205887002653326640894579804428596832843017502482675968925806076943669451946553660115199561985960477373221138005958758221888547968980806804018028272687767597593491159473164124498262111789076566709681064503879757805095974528171545731832381981961774087092142477895295173204578838320712339617078663699006843637398278284325313354094273948468698241907714960529881652429257124883738699920680855865553824737881775988529378498753732728545159896795244418456099132307481268433287111980867981297703869255584496664738233247882665015092729033761332001564513422257263417697948685586046205398606244653002724688081778499643283200551611330959515888035169307245177308250723186184196104361168477086622630166737565500484490205389407238365118202738383996084709177717061601100769131353373424657830135695291623227515687692859012131906764518136242681964682337151770040960646631800716030451801524730980774291970640382642999100512390142245329337653048290059424466486483483142951865742026239810974765467996188477651510524587895400364742613746711945067070878057142504715333227117691260123771995417655735568796360930937917175797547763588752558912480785323764443507041507729748623583432022502823922386466120212060878998756975064047745098251095253267389189538839466052062785439214291239165574785717190542542459947335528147497679266857832081356638971916975765695831245837678809408363638946121474828461869060465866607953027413745116717855033164708403816273324164657933111841352243889235087861560532265871304941888346222777802286784341650890618862371124317480178738103835923819091716706889645639913614801912095795520963393619945239764032925911952596326219739467241646248265179872651213204558981668828100681212952503786934632321673270164928396965704898523478197437867324684268194928031143334579097397580151914046577959887493277410066771992187476203851307356178261654244370424724659707821712235731384195795992527138440367316620017490412734568364705051756283266995512804102633190276826844475725823164021206383003977154806395683333823056062213028401918850917355437285617702898136974193903950427934000530629711685725510376359487929666875160998286926285121956221391849746885825326501254768905539091754784138466461410315842011406205580430784658009643676484431975993149697863250735365209484737651170065922300285234777760390368331399642300149399373602111735915955140737661026424550235629110451237275065990726328129488343249341854325231330018748077158705635023545634318354195135634061730161859524137435729340213712590590522829564461221213865731052155499205177856825783753251090778386166565819603720721202473724998156145863227175768760821885040941875327049292914045593920190517094662555560072461728801012096753135126446198835232972876165801808190049982011162349087247364919384534988759531659326494052251372412332235859305486801291853366072096799260668477618894193567799555700521985383344028243153657987729883254089487262672258364414652745296991203312279232282053685196189262348324567582820686383792059610821427281786653862037475730183643388652365922842283725400258367497071793263057295501730771082248605069052157163461260271389391991302182743282273400674841612688764365688074857376497141235524708640010769181962524191642247370019135695916417743302352842962859606594135458066220465230736965071285020987888499336697734664970200450311041068066577782864095596582192822560957512820366571138211312935907375262035824850707649901375565830316921220866354515848330864179181048460543017160517765835945021092816280293182050143664867509580579505627297397831611257935812697802250610873715325291441282562997667131793480801601168947583748662717608104868696109541166272974985411601112460062999305514110604654731122339768520933471926943900449888087344423420297997972021637020693368907526040484860655369836165121692135903921995536956078889382245656448911492052831864939653745603939664461631621749501460376112534812267833846543369346956098627093233063986806674991529631374728867220069027906799564098758374385381468725527157547170805915404510763653698277545910940021129254948433203992331611998824537813158639310081075128919925799432306762069827906634115942824614238460628266598906825086341084088647944258427625918885074178418091176115487008627908910281358576835375481306022021008086118093304247949327218255195071993811658582767434706125093721232330996879193613670192963419746580571475051953558880235177092634985224716993243897126429555319759871891478915351894378332830821709141764148287595321365992032967606980983346080949662284147242854560949586257969983435780693901661014426470785030767320914049285783605446329916346720444520880726935787952928031677885415410123963847355890755647036214073246010620073738476640390368721809479795438524470936246770332552599888607789240240318547964056976426160566685753948419290808444199480827524271787252670980222261075408502377070205962511190391398335069860995983827044562992805195422153262705796990562013351174668902953032040739540498185942591654623826006517710770595768800066618389548033962699198362042893468755190315630258965691545635511435624830915881765780881020135721421383409789576464912637028811661647409459000036784337579471450039443671939206839322587119470859800518305099604847335387667905964409850731266752338418777537667703502796926215485822840051940940912283549839505601502137253288777775042950837971754277075019834162784298793615360035393623912780899348743752055597710463254145561883246227692161919326080426349127098618997108394790274397928573251148085605063215664167932422980270583361091027135823506048714553157853378838297179300632970927161809306891837418475354895120970976417577091289587231356600222503975089222610612843434319309041952322835083989441572887156923258707850977033540772830335583071851998899063283499906413380884966012380450779765045797121963351101894469691368700996677256018425436749862477326997815214525966200558216436352628880586684044713653255180958605324435901409121089954800187079299241966132790774151358989914901232325469907875093153743881410474355840649792492007686724375670451836332518381497911079684271249669748402644104938811775183761283526335631546964259024581151687538437322081678221595559571009569745405312867561817998750294981032352581806059317996402270815974579756549774984543831381491820053906530307780066433445015009650505654667093740977182095973683520511847121164734939323433103559322460602041932464074391092227921979692887224976841713359904425739339635672204564697019878079717071966274394414189737327777895706536443339348310181777994788965500954867794467973213698413350520605895443114241186754048133609508173412806661708163123722242932004481034249816632469119347480172496222041247584353153859297851129344076612912352986381303820622742014092923439754281954329035744751455006375724360691005675455990955844868439255387133881294888878881571642329567488446841554643400986434888599697315836164542668483078247437914906719450128428732141465116570533644523427518779888718622440784587032058712675585965306740571541611710986340769205739438297398491116880891922689186449477451742789142504627065190160226131566065034022228065255947185045435671713886582094783138062506006271033152630389553288814946837474998701708783017371786958513364206442908105482530966299895725817630025929379803167426308538962736339704373911178036466499256515863600558027767950444479014679764884648027679096662332449724713750688934551273426770799292362135412867976842591829191519465014586595548289671891641484128446138788004966986442119358725079677466010920403619456082145894645135630077465738958342703209368550666668062970670891823327881205911162240999086344740506136432990457260152972934636449812652648493196215808671859673467685453219528630252127878322880353690368267951605175312703830335798480986599183843037856148063612371670854958161615712620175541731083051810148536019990456526122744054172415014580970191316469176660036758287302571472282481538922125257651448740622486986622230236590094602400443335420308052557498298110198301596918427087985567510057466000748197333800710196490690720768150866406435469059399738780162382074207986060423261974835614435056241935175903601676616648433362521026684774904947539601430506435498513974271748947088671084222196419331427342852534028326716387395567802050323909723019113136830570819233165010830478870200083496260240174777035506096794012419900095874724426061323579300066799708082282793967085208857237551566475030146948321211311739372694516872666605441988852114911029691938536413341310898736158992112168738860449189988813110442849439378101262175686066222951339184872974189967417068246273788458646364122351622096779819193815430181484601787431231696696452126675382481955282423317509337259588903202394532270933967724552740871929008110339218060807013872577134698146709229228034764701916702549541443437706722644713660146562243666590191342652219486304452319711712499255187555524746917919370045875488776449591209136570757122301079840568679723201392377518664640581043931296826943625225482439807674379901687864022112692531035782752580033399503657906030129480007348824430607767480881825379589158266966175896893438237796220739329716529901604770965086856660110862523165329046453621342519760019343923570433593734787440940888866624477730643010847586606278288229044085954096486439135289584333302970960530556125476859897120049956457868344989190229798882654947410163280119168409283423129541362019307010225841912873526697621676202167914694857833892582187153875623521471941371124930398976998881123575729061485307893259476598015875890910586355087949689810565876293592520218071358053764394117848929093650736871930200174615906715500820670607883300052431222922153966760182744993749454689204192429495234332453332085740135455170058089318074100827583476714986249883673484836010119514295184851931975212112568115154723761757327200297085272089152988211741296877135463604721758489828679191538596716922787441231313707454370078027303272812930176225985584481820973168202404266218938161635051678518348857888705700322757001921464908191588416390742367816220745780472536612320128506665762686276138386663180309593699842491884573155819694553704411424735494403713200815309461421449448653486940999318587584340853367042773769549671780576371082474923869287903464047989639133661457875509647305198007234518005214364004263175307897792194964000198876190620712217981296554975174294619164061419771885575518488036091445506318106313078571010317343659080869328418122235780919853223127082007625327242960739188887632637697535393947319781136590649121947825924539869043139718138419893207672505374478292445035304780379839068958663452645093109287100186721967280243642882498471998678763003904899188978993838862619126690384420128057185658261166847353102088178592914470936627073197850910474758169893511443212850048032035823107366382276909585027574468560757426418512578339720394546551614989370632141009879771724385982795815214384596827691031450319152259725508632079503219611234345422118115542748649945851598547287586764796634877929060818714040353500931385596343568928185650406362690695008550148174792870638792201662095861309731913295186127390648706343307794786072864668332545026812912380018008434163783059910836558894169169638212512272319746434255638647223104640940598719232258032837905994397129417825909011108600011545270544614105776712793001152856459188495513702683331130511303819088719816214518057126236454710766637354578511771119919945705110304995640965283700811297207517472597175672363363452945072775553520311479708059007520052987744937622165472705605820560137056393566292361100971386118225618632789892179921582909664025129158567628986059139800757632251679425939274664877607564663012907653664030813335415067557039719685389727884957487400771489614746194486152337988098017658254191176288171846456857379437823948585132949848857801610108119495101129078478581313895112992855536012764492437340745131112055560583630879088531469486358275715422749223071021768773967361831613244910068494929401825773912208053366706411729114581797879320001607463883079981001819755982657465141689240188365713714005459354470720776855605701551732704491353174397000461479447477444783013927999296073734816019222186351247753154287128023728290801003950022546897700596406796678341627566554710351557139002625335447981075083222931105734745394485312146893849645557905897040132214180121927137429761926746588733449844334723707212081809237982486789970915650545798772879479284100503652867389701579428863499284884325793650155622078914000838559890727393862483697486603725186075411602598216114181669093598545291573660215654737263122458714920938527491338043902895171001746739696142193052682180002065531388470751383644090128599861367654339337831283065075703751912529072038547345272164285844194224708898528813152302800320548806979224312461341494007782773325208720215035929368773736581643895943205667889351355678537422067321046208699716911391372593533765356398145724182396745832316688605202170673941229171798254303085591834849524004826290918825739823072884778258965937266892780010608689414289247141807315704506206730270210668838409174316765527904325931406539642952909519745225028746749862636921462495911282580261141236213955035910120583445161072910334232354930721316185274230267109543554901607569543154604972830148769595208052652413417220288870356745651327891365934780829332467244819706497183167223523295323311661080406056481438760870028724213749522412209050934838917794054065414222994869571386250160306672782267109590801493492664367379166345063844234922226048688174868634143122208088099128624588461325431791862407170999127917974298307270919583897721632332291997241844333214450538191621694242724698637478576402140497679429291756493925637826677332334363275999297513798057557717575325332372095425849755983940703376965200295254917465683621708620693504303747176159144316490929899352232163551089777403702880453617288714069251821686027799023984456417189199995305544647915231775167548982218881716182976682988219493704872420128086539438953982120874931711557473457868249925841679643201084212598524312510059023366792329843088203880108394450101273392438718102900471652229677453393900857443798636149681818859799208688993970942745224971027198910017556166533588032469345501119958312928140877520962123697777394910369532010389737591338484448732401007256132448676351720203868241352215839177971788492021061288739510184745845723625437377688418349027550068487298153718023892042200367162875366456444414182545836021703726903269048531837849819990417833550461560564605114167049942040925884745059711755520279788084401853763346333909010136171872400738060392724306147497778909793729998100073559531055853077968925233842573859399617291481522838800257488793246023466735160219390206749395101704762780364026304601988489193358482346104153781215961099216305666598976656713850336292888235058642694024184297399007825143645761947410104578593041743992141597378607768861255856019489539429673967898915574306363512975771456416184300869884927942000082704942411156040945568391824101154501606838946503105857805492595946452066915348960417244339412341136589584568115374809582883293113896370542308263749441703732902649816236968137249180694129344382695863165499947217271351265145207193729683674030671777773261392476039360409850859783157539183916383098987949071122046895349386247866583397537270925029301128340497865000702252089350336306657733099389009434824910024693183341375329708508170793662804804604277764442147890326592231230151755938889492721823698720007661176833620519855450688868264040749980922491343575385589495292976484830014493455782184711514051159998708109077494969784780767533864984957642400502827589295054438754671999018368504580369877705899641428919311656308683129412407789859145471806207920304434648057319838112249458578462304865054971296249189613760543662106184871431260484690554726043907796224106904064365511385163300581678912550218411193329165854552858993072498661144146030102367175310028058806280388815000384678663609584315179249859200296068711115965457819342501786541309534243635657122371666292288958535104489455270815586420980202717457293106536207828018952842994113416386315979098848764718222027298509866877418290617063144725729446922958835803349761593360001250411582164243319316188644820586213858225052375735871519283807681364111423874490552385464609569120981257646028466556929595593500719945369934028074223597847027693521665945342110624256621932135899004664092290116281282552157772433756295291658842535978384509302850220715671984865004014176395507706073534904859278543070288781469954843373372486986500278343349952698900100097522304699461918614290245677168727528418000938387733214643261721466207317118442183060505944037392621050033044935767297612066431096415820747603369297596631799647133936877181329125221897029071426887217552010461301628297266671725417545601475524650884420227515013923507947427372497936185091847931692844793883543551563835841026290780335006322676002831152579535625320899798635803876528366799317621715965257354934214650730644775311088444686150893361061253970691673826236866341632816198602540684569158804226254702853901050363176430558303055932695949381534619505914835936499290358941563559697524561973857800746495483593222807863419961956688416979173822740065051186305173402035196523408583303329635948297383343396492536693809342822826291252529548595132846895337683944638846140710235328022673608813277608071015929660692056974165725825708000183416676464837431541456061345619997262172487355131496679036458705851334880747907386058424176485258451632806518017210813643892598868361063460537184886938828499221561547061164950239306274726650950940285697801512160303092146791049633190236092064160673541329827286298591187167873212062121852274351541574876366093429640687074471384311577492920960489422629158330269356413087511369046143673336005205807852929979902904676534459114668131548124552786654011890686383258946633700976833953361985946036357959178530206852130107717168684172494033908473480383867890362458319805228598292287631522172375913320726087246381887811292081533556780214614037440926497417812195404565550319233032225779374851458163697325040029657019718834610863693960993744403655977804037988320343006683159128440705405732374053225935206519120654195365218387154448640961476247545755535161451031865659952861826337635873874957710405206216828229388815395617021838769741938577506999600891184734044820225968040695035683973829124696408666492864775934336327448138648156950230566036131979449505889460591504946563759111818775595788085038298926659885630299892558470470625756978785567513871807672463317239473574085018326505306874502814219177625751015519845717071866746525382250625931947799006040948318509566642844701816747014662010740275087010883455492963985460408900240504680227366249734122140855782910538963618724921019989636737628965575518156501559985753858639676388298082643511904660375752940195942405417164048350131922893831578913627876859277674363463703157675863344432448738020979228624238081414709128416429128673066227915302026103606765256526512067596131325154669964625366714951881564486200162801118567695767669793800066992481297574774776808134230156139923480380833453541646523298435346124045543049896961191632217086744613450094537630716353043298096363913438346764384683907448409883564010908387128674743291379466266455889599213594107291893774807245995161332204661384559737419891976217641301904426972552547882985713131472724208205703745703149958061478900809646522369681690224357597982442817214416994419875040686768129841155150822163119252642762409656100905925599997780714196120104951220033325886518320328438540565703023343453657813169493567230277297823278992271398174763354636137507506092938027825111530987430813274547936316190947470629714389482093325590581568550727752606547350551613532812632883999130933163930331871176615695386492781818944579228416349946505682262207439715970634460170342119621521036452833028197225503811730723288721668157754760751455223238713638656137132911943232228571657644219010099527000378139702280098421380686878376438819934646089031668124072907925902958147195074301135806309676520997056548158817813507539664707301316124477668238158943043437117550831873823653808809086377468267620951461700518981665157592482480135725553395002629096588202693003002403441008143157064446656611609834406895387392143053884724935307275315272282732114286151216050093371384584399994279246001058983584756070844345614493572922568012417646751191177665380453281899141756528790760597043970906996711677312804044443428990847284901427020859151950483637213145006667143474524430047188090035079688758204463264801794447488218729307437171986549300212235671783556234645774205947012097667617818717361976098448882656665309516308401132886325915840166942189324604154565386026437870378975324715970007972093033704067405843223546830834450846983856480197660167585093311659480819567088412350167051354666367581128405358687318306288901172559321115701565349967435556783534859830023255728781344426357836082457169393184146508469130291122655739002601404331704998520691779576883464758059706759828207659552726313335634737227985366826337587301658597814831356099607212215389788173755553343954484470404339321917088696430586940982428078831739864495988902753118986409667210431962936404851555582701211691133935139573638694941266182828288894502234697363297367939211301435386963123743357667078422546226045310010804465977303170851954960638105689548412299414984718236987299509889513005870631968319504342998425181631773537310476970562594370305429832085222491808409892846545811213485841876182167351676316725791271986482757297639174845478456168528602403799757875136324438573037895291354837000847554080778806875721965265359355411857459124349604354945706922029426415397381820518362828252654433367712799544796275790819423245059765281603454298837792134279087380782953212341053282252940241069239629716956274262899280322975646808938581588318647803681317924526364236965424404553544828711895984231818351106264546503215749529930449105148363874766158452666051442645623133159430598169497491443985146323279518766781760210974120091282654850645929146401064273325559774916573822722416246348943893279106751652940774479514784830595509379420691758937991076281414784338137534100336172890543054599351850604019879277588460307594459924763712197617419213707666101625795650547366517444647739171017747684891324079235240384883250151816933300266900761730746410921807287494019080097383309864523778552891440511362083580391501713602935265222578087577688251027441988921334848189226348142901466120851222170255718457826898132115732748938219323630723736192881316032082669984414265924581808151142561053589786854472888994343186452150050303149843939785221178794918501952374039658638522503744041959661276975162679851963942984467452879102659305536844608198813200986267934961205982650326261403248463646253883509435176779788299721705250578145694127654343886053592805445130410551804782329824416369120790651662130986669852266934731168559410834255111651993909538784830774568596802895334156269806387671069148927246183980658231799899896633246332658280924477115107398796266758896404508427604453733157783750169585508310996553024912464233322931115464015942547807174694357793201858300154637072968089756072402763233926125894542278661619622062120636407238298714447376528743340805433512385898195827995321032666356770857957922711568834825950424032176739563438345316205727336175609262953481062950742616278462803523597334231488372961193202759315627215997386474215130597466566744425953637376630142812638209897001112822367943467499991032910362946050409801766640871301577987723243621315741214084714629456065344740099129786724387457311861036765265254722022013909165663760668448632052167505820272297676998937681428104812260938170175170125107968411040633444682866717274690864390371836037167435877162836671981352407418634683319447060414806714539373534757622602427184572495727433915647543481337165055892964132195007931386726773814307705384227616841026641002726901311881284914394233791485580173828627162970733717791664372662907747357091176214600856937909682462313281864929603237490542536228587558557608094000783786351381198127138209097171194638720249664105358267223509452374401137815334797555933249405342957410814965063581853777109191849648798173231568071252701486899228118208033716204286757625123552562730344464328652214606739601972085388370459325279141591417525909318891998084646342193995342709565296528212803131344022142960334675594668632040660616888071536770799601118044564034863680143211403159852761430944444400908716550588802465971004514904403578278471814728086763955982413557350698962086391603086998283691486122994608709977108043242694107912788426887706450842506762389444842667596845126115770621270596048579166692182865927172955800273152482929797927665124854409533976934638080142029421223013292701103574681146655625814072319142789271585548440429504658498602930821448043363991626589033394832388185317493288080842224758111616264298162539777803610985439561796865173511087203619853072118527937609836222302660592712561566698879333391175162539105679631305814338670189227691106157281660949946957017070467939831537201079648897494341415549139139854287402409005151992493838665727588234791254977007240929390908044030829198871823775540137336143052330492520240765264758170295466955161076753416946147010786141545515853021726547916490518991200994545787238742208052833166288388916746297850510732918828962050469472852172753730170615719029740748738339655009079028026087085596396252093353635401954095028625297154271305835901496556714126787168880317171537390397469089689257174814421423557094269374017738232068517351845491143203580402056554552958243963696765326416903418062307308872973565634723719387833962544814919694668870094985902774977791110342719162236439839125216425504177078976810225302335467132992280304718514082820959217959403710150811572194943222277334414260192010517531795984568513668130228575679974346205738821069664360539154191546156312242049152949449526370529028336921846651296413661667334249511964334127142549079245606613730186493010261250251817072451198455549697027484555394359100977805643557435010758714878540839471911998867520209016311666648868499222733618225545491472204034505614528363668136680333924031938681902078770023249574250292656899727052338082931993857186227278591491062031860542944136525235025478995472410154022089815237152023485284974163034629992883715188276987220880897156951269925668465374283437211806755825645240647859701565404674553075202785588493463412365508020906870509874417559081363008511365631388031396334387292120704297338133296404184598086215912713187743585011433978994784728353829918446318859347149854991836376226984190580432177689408166013086798590217514740607288819839809754339799179620164748250212173671442024443582502621524383798839713412463986476729223705455760403485795582348109286537817506860525090970949760590025915301830916209381704111226392463250584151322040328664168688767412496224964759014756231229010049214762513159285629524099618566209519341473702199112911712031071388858535103242178959219618801512542785901784144750068166694639579587523544479506386355053119787624396876953650665085854030876467552500770281306695643855534677683795524248512891940012760652722552977325778587658882666462802297462318280110145109791725737190680115817693577310465106031629285827050202735215902548379064285355918048651030568431298790675839462599171200162327638208678312563810549285386592687896624269467081678980324939082772111339301868600635230225768937814410389564280103652897600428599027078256254704149595964990040146301109837268459219386165839817108423652308538726218654718435396171018149815624645688193094578227992402894321841554497415789304350372913970796233788282251673571092991346931629638417241371386290814443783931782893037347320498673846588035693103049450989599232111451990915921389724293968698250614199076864239690898717024695374810811939294894654772078372007012800357438037202894195875932040033640234201429901009363756931664853663254530731173252340473731712784311867256288419886330141863844045163144835604688858207142328964179664788592093118384086282044719956664116478031365769453707060188306858720588078363211991900917087264087375472766277167030165178152190097159438760036394407533136950460591316693120189200955940441130471374963916643909910440292361064268478698776413782253884294260965006919968346078499952080912426560189014536402349646016318044806781959340839823754256564483211624440870558279239640260816407335644853676185181042985933634990320493295799670578328928195910077362830335707798984991054335326056447719626840072926187628984648361634579325181030372631853357027568619497336663430632837707922140334048719888985809825399426529160104139944979092210486147090825322783929167667798681166526934848524544291860348401684443072243213663024836158773389896496496169914414955140189869032789765465656752871917662059823404381068779802536078721140824362539730848391853538691359792101500801180440045097103274328832158810544358491371017884049021412627902965858747954659141840305737235838233227322701527674203218675807227005132681243625103884842413832611785411568884339902814894069351666724653277448167249232751094953110034640106255489922378471063166336920102110227928344371289060866394308095932542282643475389432910724563386032162153751476677440017513490881487680591364662908139159269682125260902161142747431482307951698953380888077681806774247691444007419631354679627904741760349345482227343363027895991539088814113009095444214062550853260102118798691773473010436242767599814850611826889446086187822159855561235064479436996062889603154832574339394073498772223343149537515788890340095063028666294366909265040201307996539439099233627166076587034744257680150110514507825369554971224928375953257826365598171823119928225114249746511168436986676493662339140839479439210988456307998619642074119747020178127746892750928195055124009273648474813447898365346958323089096479391449106912637710071510456828698601389142550589893189094605544608734836619393610570093925827654293733209758239172009714272815773573099298965883135229620731980008105865885051443674061234302703189895769475647035768757111658597825950637900884157521620461569180877108442817085883046062953980763291682434067258773878238317256182211274949336755964991972648449083649228318894490057149470738642379933591850122724477779046322328509406071996947172117588103016218757058423411134066781332967487946397058184191283682730197181316310355415771316825435029070257700697946028277779079688675854559586683789147228643589156856907676189541502957061051763509577556102650712914324026200763996565122379173613960992194459411785300782825336084864677263584925113163685440402584423269413735505052760095018627699433878958926359012900571028965124550629965248077879378749258354161494091930530598605483241154366143403974912350730888856675289113295127433382845313284742615299739809472204547507039096431318271672395162276279617516497488103564052165536026310266687783137080952653648086444831264336013558207353643626841261074702521075046243058659798769847126916832344449374773989647328243029317808499040818422887763945268930360238331043914646109660920492969780828790506756934264237105722725215945861934247268175981145740062611740877079306942137989050020546540311412790346522863513952934690321588883925832466587235926802751988096146235073890707474512853153603408762430822775959724840687156022186169014797042222654178942035689865418647771061101578940220621086533300985078129277849297777695507330415729822714521959920701236372362904930918702360184984019071821926461778241201629790322546881856236956956851857498262503373429171079685001308750039780041467242049023974020093229526842786247211963657680321529197870140258924952706183236611745529302771412243130946797835541590421679204533922081795390270362717934415658907430031348555447491005964003231676331357376607884867226359436546900295679339690704446376040783810884090116577192023578220771298227650456191416947255508505684476773292363767244934104681074552781186999949469605488241351109463691726824838511310996338847960744392381800761670231878936394601286650777585408026879582828493139979696543608163830536700121478002883718109926783754317430508203269587176740244899180062445225479745859646261704331767083506451008519755484659784734822419974169645413514648373924053564854877300161586716829347950668220129660515366301461523954286595350352384343502666114454251268690498598754840938523584467847170050227951874166292273084890821662675860427588640088839974372466902515854333935386913833198396455282941395288753008652456398207826277007567626704762737809103936716049813005879535050232327147881438559697575765851433177041060564907289358205540811124086878577644795351207284094352456602969569851938151220248181386129042235017295881454885906276146098017467726514436438053129390613699205046037614850941463906334414684376630182967750291524507946917272366128449352104440980116055999813678533863899882474443983288092030863200116669202132612887579712628425073383220551715923378526384430779196819480443691528071012050645232810844799852510217101312628420513550099539919818308189497000446902167554300014635401878197216301873092742514533293339047656637816758019269271767753895188863092683788383991453020302123172193410498778507635970181471725960725684005660175946726857926506175035579126332696269374689648094192994928662295088799240058151880922919930738711824421466994266433192397676374292998806632847995394538731696002296117129177021605674354657928179355029894506168482751371592362985539134347808019471637975141280833947576950773720288150489341671140296562717890407851879543671074749343865369184045964841625639804226267211746451737206944875922129241743310306512475079646406078432284572641816257976072878025388169443969008274768615630722963054700737003990270253843946599224370550352762739072749469222300465332891309230581633547698179210727242376702243282320062464906557403012102859407023199931439654160250652908801420393483565737019252723976894993720806431833030639142201303382029715669902204057832857451283565753784867033720271062740230593299878718657618078556319267738321246849804046574177395484847082257768125109444747680138761793314571881422076815487007941721498198403746858773950223126740323068467491184567880556095706116291263012470510679192577847534096311147392994004869883299480811682259806460668746328603160017543329693854764928623008059937029258367490434677755650890653601001265583660782261283264404545900824797769292550251366628168987965085764807486680441684946215598288873178059421970267860949916279994799602340848995446878056509815390086412700620317158809695107899878482908390854725660059958784011140134943165401467303435494965801127695049786329553093024615541733393499174994100125119660044267769301793187643115029780040605287197553810153947909169245675527955439489446707412727552623698083855983249260078144473052343715496221002295860274653826245213787046384996324886671551486597674784567909952848617389833492039518733897554677670927852415612162293868989951602982710419360490011071912826861180928899145790605313774649064254219676245315525371464670897263228201578961224718471908104081605928089449162105354891967867014352065494507794914946531769811105024807949269260030213498985137952337071311710132972430374630269080199953579251995197223174605757500975398144978200452697334520556344716799818665910727115261081481490111463656910768496169971133020240400933123240353859777142988183841013196803411161326523674012391894512410865882756684024408458107541382685972747876050537987923209681567350824467788670151511258216538811630279863617986912857986455355660581928608350429967235271913834793564756818666403569246127729460210504785874457408351625106396305094466027996013000072734602551748581850304865617964228161187775320424400483625600980930112051157608054484747919222442926164106405367105244506254473338485393591686870943521693884344273978192963131004286326324900781735334362599472756095492824368803369425111235912454014412604761622800357126752827926483350167423251757583648088069772716692609559750498351414196616957836523061723804195624499009480095357440994265936097971795442453451856965261710681266499841091918213353242696725212891554457584178053212877775913624006366789519908214869208071987177320542906539053789919893743828275136202751211167386718790116823534545177642344184192532585914158698829555038099154502184812589528085306199611103909727185188994408603945898854502340430481356302195248207408098487745785894139898510361800703515537238885602717962290193314638863524192678741270847426218756303627535945978748792674091448027932641117585356124799016248962438398867567371105799315364885297150947754267595091282982186842844264118641875236905405689120393015474456984328507669641654166097306506740790298618655445573957206049904276157047161971379015294706868982071126299749026475166085379528074498412267285768470388449730433505600982851932796285354649384925900911884709267946776196367552924577723608519810250166504889462823183788800690079561605030725652480257152942118504694306865432455354943946237977305574382069144916213757139025325625037505638248915563885343784737923735881597796435713867181345667125974120236146206680272020773739676641270521075016681768151559867839130706732136369545822162780124960016820284691300838160875747709480644671152222317949432239890861666685170843514222867200376024883556340527504398128045482507385229034585881382852188095352709076052842433089270276155457499453765637744110410699374672960212914684642593251178885207921423899396673440611740216586598606542475455991666802017599329878016750217329574206123425149685042914353890254630580143954507914558120036866043196999262431331192511676897734611149743766946122218823536548651984117977258267241885331224055657895126055510382225387078999350553770434440563684388581583464042935174617580904760923564125203910088813594180223504943240845497924733353245961327095401128620458590200123415610644906985873361008868112538369182344248354910197212871329931733011513973635990613722779096919819953242742842164869209730008041880450554592602591571575265499848068068286651510305439175774077953124750947969660524412826578021959666664984805017665679019759390542376851088358048143128558609003339241576900467466025369686353079934657591334400630791910993334448930417419153099607137480009539586387822537299138431192243628010915605578954411671900158389980123823835011667427151439586787871153687241919795118490061804288892854888332484349411707596946516478802150780589533741514795866633845610847365008116179989158554373168374316072064888031343953493533552895386180804265179254182368330579389716796946779848489827763696793055264315931535145448524306830952224673076838318194902624509868603164476853411675164426274908343505886910043862329864645953830717289828843981301367819516717686492877318574413191604943175266549003052798335858536554631857421408096052834320184886158635299491536252435052323541954781944754624404237232324714551784450299328393164308128681018609723523021659040362556566302561022550475182353908520120995544651992366247720278388121627149046175463410216270209539432689582498099294428273209422164031095618428713532714049436015686394668005287461343425606413230414290740769272673832508990237957996912596716466458282727001378048874762510902383395697598221828554062769743732673997731573120315840319272391841713160437801892645487666912064373423015908065903212821277662818185046000450556483036130879352699986714531105450687879037124087598660942940083248895486776806540581515022176194350991545141482567531479602590203309184602022388270316508824491782318357820161809748127596612511397932756133537207911526644685104741954936737399071643447750436626744263243288377007148671596497332637491846563271539922193163606300318613058510144412822852639985473884281591731170035144628485792973345803963467471286625795069680730030327438833281818786605880636336485117678419572157926485462463755774600446483068425061229045131887265391150670414835214677666387419603387152667588879182050856034708326714314216098439428374658707833384890089418575355153399182805636167655294365560898164512112622701452424222845651298258460495402883954566936322333753971843114211908508491690340266950408867490368673339466827802847317401527262000413133021929112474611642941408946407807711413968056036433911578841730940366154716455403768679458608605828626278268580700654767049869682904970242838173570969360751320257124528088630780356402677230811563705563629017162332873484030396200280740510074053074641910928915168824689839932382299785610960195924755240389688749699999728451615901976881896103956679581557547171575641150407242357201541637438916806303900150282656231086630866602003776815139437799694873942760622227842216174596797188092929652448478827517594533512334399320878083328265772007530026502107027575008034739126448972267279311005916722111998789076317444183259036354890754857665587114246641773745031860807281354706625853547964102442919505673328976072547689349186995018590913067035968449989716297300136176264736254168664725058884564018754845279555935535014265101048564213010255084835353210334310941300018461855543392006156201383865401509238974483081354505708798747990743067398264737716630491222370299754491801142493060958431634502268333102592677953607640316659919292298752931425331883234016463633827918257386293300540848630890138688812985198156900352326662980292199609044438249434019531186750301373637063966615642093010021554895504332434838791947514679553826445768765438484536353759343556271442680574672246568558315863436857349653103787626822106728197032526587407371204861003138562903559218533378517011807330606941951218401641299188096634436291459079972118823147129623667378175588714487992771587810920598877841343990950188436930857339746289052028196891857067579898675943692689524385598395921778633498052985561718149692041383448873286745077141535404118125867839547882298927756457858739877340404259973598895486898671453602257826867670174072723646783350228207108860602357088767508026758011137490570542918843050663638064417886472144111727633974842470782745727817733147549396377651115532305639813161018570295189555394306157060864719463058893056646503111617359174039159640046275531162827399270870886715349039525681887553977803592687266819849964313386483171009270873843870982430769685856467720005719742783561744674503245799218618184330489290281950079369541674858992974241155435971965635737913203414517765419011762704496794462109853369407337277690792447075250533998932586746191430191302247776359379840749140273444709005421146067400895654795450354253990452370263466604529891690434526925443537729530117463295013196090543298792673670426104689645153060140957567019090978553063198642586569031470468106329905966633610894383998967679836985648971504721576958344927943334744210475357551113910151707509262913174551675907619000564042213378970852331819615546082625039394224754398986001287571819901981082216816066332423953860866358528672884493574152955165328641485461486801904443654229055526713451918057297746780677601023337522445269777801770162355536712784487617564731357665775758387994490603891404268049332724099677417922621267006908357018073009341290371207748673298684001260765762786201266615745063044407041425564837941336941429606684136912581617909976922762938757929804140081779538553403678343198510521809075783990915310967202418742620908367845490746627225715973654684954307574636264057796675195855571034745009954241069908336882169352794418855024062130929520066839848218921574231370747988892065765254271411972239277317593853776909767736455061122476323394086871203810636041099939921370837026684878003527814670836803614915627327637644444440355863795656014992373752668376643842907789847460737352329209149476917457294409338956325596165880969564642292889073431680445964327779173270996916578971050087064871073769749452288315202292127224667271392154035406279732079347253390992172891537730722124278985483803881436491936063749754768746739380785011104056103301529639110217461107067109403973413744864643644511781125052950790930677604729605847992534473885960476173778609455048867031539630768572411225601360926746910784629748338443178375228191446916242758794052396725874401975960557430794377723016925105745942792592113889943857101756832948142814764256594810055578359517808109503458352847602266728730833273104379889300520699710645917154824136177328879279546486521069275420239747486054185550780048393452084893954765354497022712107590171990778199782851372251675695314715940184898110029299424909195279101262743484910124167523638256428057695442932471592984940245453675442462226653712686465402898285488655470049237486870446774270940028448192885465554520115354339582654596847726518149112977432700956587812510718327548513910072755686838120971248043335997292982258047609157471002115991980376574564635607032292787827946265210584603635168767129972114213515131641850951076890511742285440431318468574036015472921229870249227361131917814782837680084583046278176903974922753855326968315951639479344933427748247989913955109521681827187943395634389230907592545996434129710273285685199244868239383317700465262200394824700191936889236169356518563786787201931177534305112571192754531658215360737620413213765246058373998402264825342234203981932684422262933079790721131669219816907231086663123301438065740503035885714614251659150378200122877685258763031024983900500000317249927518462120901537816561350235771209543765021912256290803335781049411341765711457719944108746160410617033470496032126487541036110914632606577069574320881399721847619393958203254026442297225618381923705214500374386196685198361893548998266681169113471732268270592503617278111215407980761766374546547612482532535435598957655324078822139576404578157995020992963828501484332971817775870405989591268650586676501175652084536212376227618698744547475080926554279907995445471711095358691039473247931435997208359741477701165798630867477743791113779258935458371995985709940241378377807220422321516256355252346315525643625019149099160224527354984014648498494716252460374491559226064723898902176133852463736885537745111929108102067129057564337350095145491688371044501377224853266937936427528620760423315338847469042707539973165308469711574447368258502132138435101542198873874899324164769622722076309895716286080144998213475704359768564802866823246123424583517922175933784345057582989757227425049254951793825364014135969365926671492546688199153891849804869332147231150474702050849309833104797600795895108958298094447044185753019220159336243920778531452251090722863180456543161035652988771788217727275453574465423904808031024796789534039828387829562934630560683655512006423098827322485335713799229883884161275143622229865214746309226168813566444574798480331433159608857577829087135467596530117611861242674285013455949451419168728545242305827863044995229751179976514081574744213491700837063279800500734789749050459226033140308809231657017868951977473238550243149822914918150134155494397251888346787906543205396521285095521550633551796314667047184127327956613992295936086862581987318255668346295111587909945001124046508779084454252165496948116125431815932444025747428086949302136279229781798978545344959500869075078445598675613757667880154169036153506295287418305769754523890048840250265717766098096979732166152330336536066786495588711017229821785518966516431987352304118651525258173528667404728557388816921561929586908017162545293119478877548078373821337048738245641310943355822920321131506516663195657777511028113412464017409015281037836615680806897315896508485833098615698823503175602369037702140228794170087098809740718040179746758753739883133840631320738890772078037592474995872119341418904278628097811679153207857813903665645713513192914936009792135411548138166954990768899882804486656902549596717257372403653588629265291228706627430699177460370209658129416816130675857030273995093408117893463701168460269453208688980031337312766376392884524473782781450197450666567010718375707086807069572767037733373667859607210352390571441024152976449740174989550512219205918158549964896138909740225220522527123774760180711192038600616441462175838812656507675908498936434422630065793221358757319464627600576679925154810228416407808769851716134614728241759508818156801948113238833391657089133875472096761815082771102676064390158027120537582283167749889666439584508075753472841954415485646764548282142240092742922168294443757135551233074923382825125696736148864277693514864442027965019101253457923267936005455953553202297755545666214795490410070608727505710675213817444346352113516373025832365363890598997360862643145915077581857679644776870037515844513201048286954092269448541493396434368502455212228888881368312984542685358108949293930252681264597353007283933748227158331151229417513738872331461251017450119664915857053272141154388542019131296963149760620609535633505902395164024530013598224131419862449857391544304454794902322109515619909970983408280293321437027612299895006018640664754679681660651048802861988235700457038485889513262928221058071312381764321725395537767684151624216908380920829791486858025961986905567841911902413203242947437749901101538053787551447214404418455654024939411287699510904934423443757567225732929725450872152081074004666259657865918410707945794325754864214314916480873382379305912035680054651323036648049906398982669529556833580467288962567152573334055646820994712659265404944463550027420036903151246068959483819145276362013592417445223682923671631085655022150513687127936008129890666566559606070906538335087950473334857723556597525880795393522174476867574408399633651464020444677526952961946456398723531148604011511519184941736643965003499742382957028968061594002356990145575421937552308958842786067511498686599552759672014062520427967841953545396912686053991425876605389099053541807429365107678509524707999134475411772895873070016712877685913653445552127612032426947795123590581017195975691086214579200643598594700939607171479821768076751180512550724005566939657447030730728508663015747222347688677931266057483459555773244124125909488717748435032428333288835948895546776662961010518816538155906514997592351360302965154842681394092511963566439842286047865778496738534899654677412793838294113628751179439057187123402841908690903656337910738250513333266059781928225026233207826332947885421864276276753245620288521310465939952053231111533859790608949565492336325282807244083043094968377969573823210112177205613824797040065589044564915163580356793644969848707290851683428984290498793778983283824260731177044996442454416738913924958672628958582722622930673562363921889093967108604895118304306436800139656278173619784493367994757157815479408067122793073741719789255431387444788353006216182875896630643565093559235805253991869520269171488844782422585553334847101004528834697314090475573874034907246438872663238468065234852488959490052450790178110258259852832974697927513158300321390593221330458567787112138247754058095855737106834702300324709869509351556353244206215174060528460965855494063620731083266184408942335240405554176377338915974834877187328712387601699575352380682768197442840404777432222180644219056245254215610628312320237257864959778022355406167587466432298022996933371041578511972406465022311224422941947089229519182903805716296152034390356235390811850505502815211764321002459947998391751502157455681814747761788861738497865741137326325342909090301017573139495069295126088552305032336991214302630136513379168261961613142906735675627175665809298146599935754214606445404702767367677660172137504067241675150782784679564769096275286314326468484327005297516163342460352786971860013377384013262794228364835763980364385534470421467253618395349887526344921016591737040762325050100542852562806124537556590808571143350227735288740054089603636819931911981262268631325072080333651678032322310498620650323120689578996646461369073258992176176732936566222293002380397356134644052797602511946246527578057676162258336971452338549620753985577743168799062858337023229774832740992968790697296580628040334429043946257165750451739923384629218990275344012474035004345480672721703112394350349959023707335331855442591555592640225711688737701119912743665063707723140429343235923077128928837777265043141783250932800125911748714053153309613842865103197760823209643950108708478057068381928950254590382780531136242537945181235488369658559587011932464729190009269105293848312880705077790624167826053266033848264013207850766874936059623252084955784944613560437496184843482239009678966272645102960498919953460148006772472783316948160674947804396574215591270922967441490935575642142736105395211649626525971574346571914014275901032167259439224745051725470305123790751825233944636563431094062982791692709688350494573160674884283072645912705901526698622760874240963881820430512013417931632606252239102297434238484911695531427705981518530024870706148153545896496541423115321784996195802334065448771422655861047011556873716629663585329474142291573875555429591817876665229234714090714100508124315172407011519847005397870420647540261841934095695418163902922194795709657625966090884359590928420958660252242106836109926450533179982989640699673985549136577440729578918930835379065045216188190591291223024029685888901165515482968683035321868369212354856356824346327061208078740572239316836523904270706664032134441774464014736150202848279649598744898457164215852343766341341290468608076061153632573778615621646697679342442661073746657900866306786873729206011145872613727999394809640911236193111054200984209115684285101962914060780067151446892503167673981148227884858051590746367512613516529366254444789568867795679050880377506077635204338753167209890110219051932501580342846519898526681678954488547081196637975869151889766842084227675849872381118959387755433827073006710672256369171526309367449604725245268007639550955798347894207673351394964095664886579936702400856854305737081505597767516894264504721589704472919970488912710142835532554662331486690313034699529743116964309638284052234726155853552473599819332687424678744706897123281376850619978666612830742797851123162456542819645479386829688179913822034796633987198833591568067321867385932905004774232560959376996819797035781567816222233627001941989449274689515797290751819414412438458030607946628069132684838276174860910899064128352557991678541536222023891107226091153610019382018068176288747612966342145962090152460337901734029816072173395928181700428189032311677192029060804510814425908602035312879607513232343953339302119293369451630150066861691970382112575053923051200982172046495340209187059823321752175928078192078993032488127470898446202513596760684250684180427169637067423606185316377019168666051647172915626874900925690901069849015340502988304147576649761412323487648323448164781309402516225583890835455483906127534934050266000424487326379379533550235578872372000472510568637656590504770378134025934006325090600384058812654205702326795501870246857419682555528639978641911175985091614966535849232500887915300523651392572656623521150205922032851151257003187544395588368845789998621322726426609435747460379963794652837613310169400875026617156030386989860433065726468175932780553742850454097329794770688971550888187363166886846186067865610006435525113985600395337405970847409248186618033461677917743267261019124911668179397827796482020762950661817109163981961697175119076602468914682275276669919969422689325861991820691428916112753481760495658169842223566220994475848224993722122358498844670881209648331795325056293045676050976519323264153852579161573747541177582954639564290522170821062891930481496786478230989853711224310704619666283712838033356931399507993131631733383579397878264949725137699334333438168940770267588598267153184894752342975812297558263844117495686948649768576193363388611185876607558181132250779359575344241284901645176226905338364083330081882853324753516929657711383556619525073949324896417569142659224835485448852293168729526334913076420723546062415903248855966233547457817015091399641744058930859180634370950290176414396421325163020870021768810226443829399544889554333125621186537529088257739338579126964178003473351490820622381732388420999163005552096228709381181313491839424084917548916094858032219727855884320115514260475474628085072955878263226856000339138416187711678998269901662648505519515074526566132117109801583682419892064927954370024361650288219615080040820125765810269985063708599973903044788881893685573643503733626853821606922826187940606133683467023472295217010381231283075156433523345487055405586705620366009430068776294711107278821261282522334465275945470158962213424742950826611544046083995601290454783204622349677328065143721598100326136272345539208774667534870084393299869294324254742642471971271353131797358505948879818282808528964637263328887117141847137208346512579463872897007312969257071143001209362420851959663048624812747770756441723478549994028324881330029180931264452763650692286284762489132705617033735804414144532510799512029555940848813773713595139602998401380834661185961199669025330932747978855705552978600936046132730268117838924043856339815926773230570335865991421437166204596821196073351411968961700477876723596535630088913296999705353148156458445304744205839917074696990398157040278793248918156194620125063019178244871876546731064340806849899497914217114461907983242412135815265669656236825858015215684542048851130611144040339075389494914093809967311170053940781895161272210115637410192866340373968001597595745133269709588316728203138302965798930981031137148099942917012896916503132574265070624421754956143563347330658493339170865158680588538663691896194750223073395049810679522170887155035354584287009513865832072785255062460770239544237369882476870539320242252142886960269366613004263057333309181614779373514489572626703826286416305614241166291436784164321576980305535477286403722875335163301006754151120767652509901339039818981852605977631463456167986968038932276391508390876839339606092383003194154590290109260136799323860616419869387084892829230959468208185709166576539311634362026306011022241169253950840060601533776701579954143242621563467674755915821528279988994360643822585627241660253292819130148649097729540152647542488394981831271799631577635093471100414157413075667450681291753251231701265216947397863789768234165301410293526082472041293772591019851434176485499533280616749013150949626817751594036230489977472401370157154954215103232701014911725619507256282379381158617323392360006577221083644021002790250436466536827768119887361111554208477716015195641485470352467883694045229138439409764636555905110084621962527053617835299197385884742395575885535095082307722253963028024178062149121739630592508013046147747458086041746326850223961636664635861642319799053814174230814063802562382206735369562468283501476408691133758671996596615864831996258377219432810278003934855553941290483631069110266644254927177765377955231793369463920222804923837449918852466937626380685030621913271274556098881083850154055375451657043079108008319251341439707544918538514699789469458217334621469050884796730853143769515167100263905958729525845752386801176827485488135071054367361776880627427340522948871743236171396419424867863939884206837542984721161310081588324111365673460151627093522235180494241877621933778651159948190912784980377693401952754876188909146245562856464075517726038867178760384628587523948315791958932415950392631867186731342072369750672733726098183157613301169329547555429618768379131804246164577901646103474538394405169506302106404895847968182977579341868753607114610853083266052976224581059079579773215719510790521708571271895511615819965313364443101509430841555496437539860864268972124344527580599830019180151975365875331034998644105112536184927345401922281879061711424592794812425339853361395201224408908937484184999677989215918410633578278803974012950746700996693760931603939726235825679193585762552756592275016437033343694180491757363341877389969360576872813796799097598168876506820592513268357087024583578143010001988489419354872512959315744836941038222892264639605943119685561891578272880462520418025534145421804042673013984330859188969935525091295244357151163967824137111844565705342209240453462428059200731949031428710286585096572117529550170705408678985881482252108973812764926859922772774737125039258761792785167149106909982864782910213039614693802649142492694813928842135515056912072988549958992088345045414415872518195044719247515754015154591211309366200766315212497228605192207655905311992847682612606253329687070818262455138600905956075966341126001779368690970429160061799442378822513300187759739453585684072536465721497236667846044980925003710252250138967777287710732649725984836800361204492546782544331519351212030841689828011104517211987905887568058084711471928407708603619827691439994368732368920230423377663510797095229329887046258687434981626259074391853214528444365494047875461256161271464709784564895152708306180486230629811980470148679796297382029140170383061486420221489975069139698767598574831338960043034738056023840580827840784233291950943835389754869154568560543524078961454309524870394302494696989232167479605847947956241036659849772503768705283114044277525244032877243813852810766745417903127000543203213380717812995891577125716168009448095100597946521673430996925990546996891141235535957671297837727333967516049678195689322448520229639931566102324964726928040930154188339672016789927241833950373505112871560079032271198022886387131194668086679802468555146531811642154726068182953396499036739838671933345707590612322763870858899141623849435709206567370593587202739332517675060540411208247320586824973318516748646134445136694654156176902199525474125945480905720602066037960001773568482890353405657107727974117520025993276901471348953735373328100056343092592212225226203211881830333653812921877099537125169357660596986678226547240178957334341833895367814117008264549315437693956159954719739428994115782461106009346378927119945913745947913170723691492164570677034262494015210593769674958860871647273775304799277412010590391803649027469133007763106547371127818244963206020910184153736575760788323792752839232303652872826735409017781334198116660075008913665158067787598609516984132821997547353726792533634341798861770789553839487531246564751448379897121451602006466252679502284292678973746717558266995288024565030595000261280298447562485653105335084303194993745203174227794564422938653169650226685207112214222490391976018788421006977740154043293305417848460011479825010516441296904255869636995916661564107981549383004477321405974587161229334105092444884681118428894748424795543903115472970343470370821453203012608533931867861531535908040868407885718831285745323137900647565828242430459766617411523796672288496728913202639492018809088935696118677413438735503482369475618612454768984904450848005003882722608967898502529432541752093136867454759605240300301457844015802621276965515287464764324524919824940992038512285909978921490894953710982834051182041764453057295017010547628526526530786656265050246503644274117543461656981133820467432078794066301412951790471071685452114592426797020446755835750688405241875066593195580684543333893289976600927313448336053473335809019237859514818888649078558062169526763691529117187274003944627188658307880058926091036359649817615133091671962327723539758551413164003421145473937872485037363267627806441788593584675787308894893821380949142695266107931736500762613985150782904925234368831652065209016040728496650823168579891033608047976900928645958962003700111352308255274282137009522797682846683915531847258712081910504022051401512337263092076080550797590120747050847375593189052035970573809191742454473521582398704127418006927490826790575800441410177773260723300203569507012971976872187773519786540625650850866652986802277598357052675409190866057260606597482736159410846615137767406250154547353739232112218931343538057701728430502853392723953282419511210547805677100386889727841392097255420306707650068080557407448005569342958627330600205819758733969302995606957028891677776916374157709925224810067603630204729283832395155933631699387315287507116572859019746057747047181247338037043675904988468000612412128351784761304643606645436892424752013335810674740625377184421790408487969675094804636065440185083990645429312970942884860804843143697038427783119100744796314641486303110204599463236444607516208018661245631318977724348801262694537800579828303805610545701157803331747070505784056743837333882178859510169229976689068539440293493706373446530082901186891155269080725553052020902233449690875948677611936718060231905990200493295912374484553460820254773774632771980567002895210621170598452236931862631186186499299038235114716540165134609362055047598843829517316295651841244062994723193594114265045766634798327006816473418595307965503077829821112671178039544136538600565025058978915851036657351128534294907560628563766837152080950823914347190625467836162745224311232355475016738629859429879424531790774717386717346238866948139625626657094299665607033079846021237933763513821883830295808806146124854114111788491368504328895023135409519106085074015604493297545220167414701592367077489972694504629481095315984778156627732852024536780727875258438015175345929080568689593059439736481095705483009246612460790549417956174825359861081765968506736516978417793733983039921336164553494581305486620404882973871421374134897518378881936994877806327786669487031971549070382379078798654664347979446289544263682325549468453851168457172489086849244581744337586986107028741449423200038951557926764663398903741657726079072443262264282283869431332527192869756075078569925278145006196362084602282043333377397263978746119824423230359455115898671673919758737773249462773895254099612722503353471750084230394005772294739139413419503711055918758043259200129547176920104903845256559700802641998682584711345306185126401417678149308409437997839033002970267939752164448094022585858936034079677122043118342070332701646906314894424804062170370932624910565425118049934072733621727072241037672123802955775730964166861373748404004208790582002532689001941834862838818073846780416935686421184876881807260896128846394432501351954571450993240341814243800880558301381415900352421604394466130914055419712347641003947475331887215338439306999365381525897061418693812906016787555513704561771139821727643512620241275446896639806650761189931736173439070946766689942136197225999633505789406796688804442948737195629682217977521814220183113263590685785719949386935731730928271936750825000512232523052078264008867486529578131943206264351093131684856392804599887544619117592538193027296451568741271225806576477374620816455336785986540356603431424464973552844539256715873775342542532585335990871613368933061677037600926428045953628924292818345235839707854052140739425792642279665794419487207490047081847449407262476083773100205115531224845481113161066712861392827262170561444887254692420267158499345680443651761748330573666438441794954048220328783980395718969684204926983294751455734835106404998571948793291389571245990921992365513247658133528879248838866479209001074271471211985773649471448931808162977821990144451795100747532790521872635139780256344515258121019796778697550082254998912144167067505270740900150497726181351700851240238292893644574694263928630400616327803517023044873764384981792527385293829435094987846101358840541465317754159741557948452206805955701680884466605420777094878756200493665978729726397693116001814436775116156712048205997056892172132892257463616917438693011580413253777252669353737352426244910284071303886406434381356161100057113006853113323635219649191307380746604835095905652591056783613850689653974597268459069464181064101401926081229398659340387386504493532706443015902255665303872263296668691834620942177443299017207754308524091516470910962736575094136195091712753139141111580381272249525226437738970682255180544767819007479541019016980963735884971447185422431914244990544890566965719351354429321558266208813062619676039820982529601585048202473400800888481928535306121636846167534294195541089919352522477678381270333736098828360136769699314010002759599101999850012492504512983347040536343650955232524371884660527251160018379972444279113161522194310930951012570787144759302845916721410009689840728434519426265954056031518072576991264785755916730202373403680802238833854224387853709708343686231265404770989773764663298409253218403662359845749475185169159785526604294824257626274801516188386404178171343978698267134789952043820867421780682081209695681433397964691223705301233703242543958097374122512232767627367050682410100235598574739110719611888383068047046551090989488354900014252455864582273262255859578124062119593334778255422177801902309051725460408519504304545208923837274514013234941768848658708944898816437420995099336579345909193093947452021109333172345636167923689184365559433406071063762299062934687142909047099570412748109634400150403683683413625797301150544465705648401216167176074977601431148628087104236085328788084349727913281963943716982369011271250162119459232767249898929625359299186680988450643410779888712931597994213489972886299575671181437398465174940947993501361165369909083926441252097637836211235295360454349133263394094508174175253127347552224320787030397237718395493507256631939542649066341459073168151185187939717694510790520649572962362068945266321424563763332122154196970792770228489879815107637612150895908624574057891008235994271046097729096853440468460105564534072465179873931949426951124366573893571439797621138608954138452700245265736876894521119814247774261512641399488139010951965645108029952644060383227367758972457399899415014424208198950133883852861712299041458472013188858392612494562361219031998200058283424533643083140821589411969792500073043495717204278470436718959534325304971249292164169983390719716450353576043058378692451076849346076508012901016657036090344485931502283096913975698435794055024862992382407835096985575088767629786531479244768024067973316443545166360218874497647302196215477938563687612237147594977571821704297804284110171639029150575046277058767414875385203576527523084193929285507486560045511710688680588576919954009279264010827066939146130384742609848444610224978042440175649846381985815822599147461328309981781126821964311539947362126116935940239957278422679338368134211801316915598753225430968892245155118613895618368914347702303933986096692101545286056188760414926413211697027935858179278223735846895146293860611292840801233604278404099085035771037431707538172246762151295420213556608839130570979432950754120689018061520741818453242193663803713160968401139511573110810614311761430919258350640509457062091068984808252873542254739597576913505539840966712130876088760563859062610622385266793500477468491419659175858356604783829990949664410577481626413234703943131223794766196059282893632281347680577369349445541519567827346811873462143485879819063351039116401447372463340844666491719803826697387284976093951245240363508691828413711474013923655465789373701208734480948271419969786554096359103284302047283045593933617027954208605221623918014997303818479601078374705034509672432630744567425104441707808991954860704992076392439286796955982098501883849609311995842713881978734090656316823714649464364442139306692386286527894312531917264710273880846516912465295871224906689806083011844332076000722135874819369212863323180965535297663933172635007137688795239425670344486073213553311129877888375836419081324618020825398615459401186126120216006663314796107915412581013921907297098359459568657818230810423510657142173542257816282296761344496134451610989438292847521232812491762831914109536568368392837024431135318792739755568237270195566483525591891244501818702342929040773563382456476843164888048640899116253036170901565548797411074252028591723175361425775282218611175428866551122707867171521261492769776092719135705010822703431814872846355435707828805694572634879529818549644930592149708420406959715816996218330437787570524723359193112074975138415189275956627336298472713098710113521643765029817929029858086677538050776489945082525867546437628232184693677187655456744827417018758640535263432976993040981181666352035434166562084803871608390130167294053600564322084959113921525114981457576548566469493984732291491548434160429191742659796669935880381726373132620668226946479001183626417967655823520691509331826026403637354273091361740276741049593780312021804048010049028811011103623394560777716531870407778731210842680547355538414307017127923862549985306124336655426381752988071922126662556118618696543340787251513637728337576032656255182960323020811638866993059088372977499803202311563572993739919979828422832207624131410365625019446676275400367188644327414915994267227974016618080075766150101994040375107176993253614071535455351565795740043023677296926682481808997159219760548842591201240474539783264765271970137916293232855141685116549911862544490936939259352794819156884174021326466981363097370241974436003162419192430646838932706568691107758202442300543091289814763578700981639207750740575062886194797556376510538637538640979229128166758666160878520297956612496856176802725467162153260315772936285346005168154854166364318787538535352406353512395214333730705073462758641838866102927559696898670550204882390458176881991716710355621958529800355670973693496008554736073334386382841963594786455272615646816682357010404491428435983543302342875910948251005196504552733279112430727097644889516887481369052190767144030368324466201777246787464594721922208121942936637607507494124903136263170953996843055409213620333972887044046091804230682146199522106349365324789232258762167954576044125611173159255733161216517014504949364818036886284142259148536376590288196882797286829422171802909149806711718774997649302917390475041545690922736079145801617401025305981876176772039197535541095355060257424560556678333172719409313449967649205396739837897231943022007216617918264095418173420592768361396060150759356406379594160160113522352323054144137685047599253481832418110366911987354823296527857701023056642089588248578089375112218920123580829807981197540759894078458252800115139141657022382683927024560306795889401288590352095840670957850098806137774703957275285730959045022428903775863070820312665281597631550498266088145548178365702912882095653565461463968838073073969197385220821857935303305990028359911491021509427533195906285553822362923130056947838441969640325502185853132703354939773241107227537723689789609584145302635086031139847346209872042974113289351944146167143747174132316144705784713604228696579305210281487728242944258075880833587214021362669818846365546935155841969903976637901728351723875496101804127260664431883468608978047968362699916699856409507685286627430937390855917576040512463680152307103519620374089035433051970905705844233205571483478614898159554657397139606087149605276245117167455330199747447376159431279787900933679336000440545604321973134301436310953108980765398748934486780604220801478785740335034286332247256599901528275306002549202789526047038333405640319008647564449780228312718062879714942250939790009181515773744617242200405126169174523839093677825200285860706830142416163692226909539422946876665127327891580052034428334588897822133789376898308816899038353620076886503297779121149188762153195876875907837919358942177375554634822450310155389340122809429932287148053834870378596507335289632716661752611187666872850432828364559957750159015402513938027573617882784000964577557882133748277174661510602631193798801329467785689385212924233818929453610949726570108332371979764748093502084918982961023971099030158436672446028836527742094725688034603752787157127172499575675015083316748112753794445891632079528686293632048293946282354182811000221271114032411793936200065697100062978262165694177771196783406925106870436716808312588640749390746325269314872702356044618939654325777830472434481428201000533797066642525167277435067341292946836417449945810154089834386750496900302351536398924601283697477398248629591209726775054555637865005888813011248633027497000542477258542470264932218117341898957991742685866956447033601437654103817648747109594698333777479165915577787300430524003512170143160964228100793789321846551265069696914757970695010653654696813782285970985235580642753939407421736874581447034932152012783114165308311902878733005015052725382741915269711488623068091263815945627261557218973905833825045963320854355911355349967681157483965012131045141293804862543540710544919180094400614556060285486394715543517910696808756348343638500460562660966217299354752693013535703684424379154806122466264539063358842107642179719346296639810145935234502840271659473882489971334202668798168329390372548530745655854449336049199942155778679457054728384279591080351026924526615383002881254112752345025703186224997188536996271528905850802762295763437201730672666480200243880673484780387486060326285107452505245017077351539317765468486838579376183067448782801911426605689588271646850033379236836354256280801692338938520357390439629119505545997195738035095558837998665157951209865477023998592239036637471611076909070324630827744866358514421931142487836806534823480209943533861759185611608152556231850313580108067669085298325313635077348222604731220757460254187050142497737398566034874616197192530312206869412687504226782868374875792229343312411271907275531853464272705486533376337545982892714529709114546508202025088706417739898590891725379919991449262463954954508752405435911858003401062176300983795741543689619362648572763758376444306869307400986405542404538861463729866635123888221994424539093842796012292273733630978383210826755875331999622120052768794381322045578608383906255807608998694778105872469637665651211759812604601196307377348384267485596068837485675789543303906721072250718569294696432922511355074056570246367359839931385879959878057220096800991778342254372656280729952031663251365089208952966237820901815379259586812705322342804177071854196388569895628558403430449050977565771816106988219006294087418764358546221126838243508055604084224317901825952946544726288537789623824629767976668923674157080864591584806203905751357206415409986655433952440754693570320525962770748426886292935621698318780220155951031786170780733201610926726436218296305603709369934706136269646274720761576174928445145116041387838940361240911256677196771953947323982124535377950142794700842946159672018893781868394624300990092496574997199181302266856378717906807328354397831930345174602232356171109753137587454673859233110557788525361074867454382675228227216382251867897374088617432674564571450818194069459233628711190272141914164490574167872598012159017654126292586283642083806377177624247121727751563503178687315731300265317766874853723440015351796004263560900346862544050456972609936550909209045625049854012198184372241764394662502294221784532443874123071302867869379691465719757186856611649496586646213096671618812117092729927357030408498086166109795985992319324888907545077223410878896491312634173593878879250953298420734261079272484910017806748047645938466311452858154348667161606572502595040470991492064469553671305541628171440711515957621063106153278126163702106869511715171042792436952517505995257172383047335573115267092730453663559777083035428691295496022092483535481220898257410887150420701503687449463590838911087946111846920471024119997869263206050736325116926996752185646259124986017131574924948160323609051272213329456000648669926719115601328031556090376449129703877307085028033537286732430167201629416017355820676757465364709864039868125549199706850747608753917444189746848504729341868308136276517976736443007466967460398091783211756485369555780032065949103511703914238840876949285631148400487008272735272506463453397134317710673436563085726765958913692514401192136027076868965460506906524163620126999614354055931768608242013168623726765129325252291906866984290155618403102621958938721868272136958953742571903323486409833419037762211315205154338794732034241756424015858280411145308168858225991817648484596830982755762459483318317858198972917344604188368784641623359391362380546788407998367402307373709569293454534273425054377577863493309599774575081527781367740826979837267205484782834361316194800093108873173951077267041274005415413732351718649342950530088118903033397116681830871150337519930656096313476833578157193322994317021047546412348004136676234443388492328439078932131604981282358639481199133923016456426971857981953470180493337511359268461421280841821660741295623209518035819988462148889583859667928811779551302837297075828048622043515070600731196302958003678974782970292572417897735372047085132715950280883641012429101199860312728509045682961507226087843622513094271346649887169302719742410677640544798796100337217227711485419828874308834536308974362803491454373526771098727352195198535177669671808059392854623372721495457949777640465773874582168421043991955867130125125436344910439847599855396916834348121139503807594669563732302500224811159247330559437402725500713991144108619889528053322881709978269096704985460154742289316992402877323199171223917544910379681746302970899702910945532498900605175922043754590498185154185671721524924429298589802039715025274380158950851796354568947217547715379979815383611438917000064727919777179265591100830013625586157423576631559067561658717446611951822552683250043405581430305631849462205021009700480833501304086725228498636421149862376578319695532882785998468803419485615995627602964404389940744053376531728551095741579404898297189735435061453795918748564612926721639684023418562676593748799131827867233023146287305524889817180663265382348736897419386428452515610439487989778205282068523921170964626633641271231507468858912607065983975118503363753972306061083823361923207516015684310991006622965044986993197592563285001522478686968490937630921857944932799721098487996907785859472102151332434114250853675242678914407908626670905989067276877163925617709176597139160745052288142897520836126935779828865724837103118994779432754714361325113953603726535756311377961252394115357898177178390160252695756026083015703204203310405709659607592242848604195690520264829570179487600508933651804433714020961426641921470363701405098811279196311738362351911745282898279608770233289842688964331471098517720302423613802594765090650432441225552754516443996065211632298401017210724197683317309821047037168025888441627120391849470781168047861438385453906919996202979964744133277012245246829420416917806273173286321477679980303053291912067746925824086138037889921465971493427455829405871623452526579241990694490353416705061821790108328363744187143361826325222177529002906767186028751601189832992866244629115653212326405039519507063722240658260910218481271436943466440214447669075571533937292210190263799107379029777614091040041105856084670741703081547681947117248405059552171825377147644226870377514600823541425417083240522140688250467904737514237186427446624154603625852931768657542865207495825013527736143857862829636986213575001796174241343931866813520708556554594590621170203103700145044818215699852920320806098045946447954875242600527545838082032725145870212569363400529395572466475416914694100349430688275214566747143622561808689691512535175852559812408957636214657494212550931100792662102281688343152712477576023800050179867073946203100110325856639139729950996845801106864140106010477291458328412423502300433678346924357158264095968574765386082501697902943410332277321371990750306333812592257748192784725173447151264857195791774755917116810753264130192302750862940470563808146501972423593077084518670740623583728800134717977395290047346062342786241285008473869408391384916529965276812813209195362368459414603865096597379848726859316712520907974698811760699793622141240611296308618946344230264133606665737416387153655780221970464582312390665083176714869662487643430231543400881793336643670277778949719131799675487137697060569478476834386826823092026948820641489729577399391968653465887293160303987050541229159266656103875282150639809147096107973526952276729492701961375833933168627566842582929992429191489163760248638049204687190470995193952421687564290205690540698775304278695459192802376725313651623094802844393781947219939852719849415018909226860292470640833675915619387995032445424190537396685454607217336445473234258667367719254156390723010879761238245397085378364966053005740971890185231253282372677869787738389468279298308923706933420401125340311875009097797332089131031014626903014578596764093436864501275485875255111681122609050157803108956291817961502390226000428068899935463066872037947307062800237032958104458405856306702332758396522319649038383542583306033318122723382767858766107021509652958279929233654738657266669536988789602777760378586548762382364972164509308221640755080447162945819545776784552715698555685065436676203880392299225565245325101658909129927078683097048455831164646360438151652155356866673063067072111197357716545768178159303143411701489625918003907724074198034989886670236217750529674812889285509493397302680383386492654863864524349685081845948337156973357746170610191342198442724469397750965042388567865244852503226386652285440245637304987849780146119480613668948601761722816865523554532435504116433575459783243577469135001923001963333109867254497405535927119720673789824007446876431862201015681239902223027119998439422008823508811383242230890542510600786102998084175419055210215215114791526178930735981926883296881450451648245170491856708960242206619578986845136464062719350980153871657402903212535524515074014325316893744187157302632204907928230248850513774445256774902042738591386314372490062105406345878947833030810276843019516137771165468416999125873575132492296561987983385311316231640145235058811703697568836639941927349969215787874716734823928881766983359564769647560285751588039719949136112477532671876614943477550896948002120316381932063512200992179479805074751189347022066880656135380197365977952678239995537936360201988728609637804362067417960600054346133909739850538595349193213829252709708511108779536902543223535219892341255265452723881028185229454492461059013570630564374319410333199935153545669618798058741435013934549846807339633160395449281712740380915787050210041324638834569228714720762557719236415722549952854915235842292226068827664870271934564769295563404804019311772885289898272490843481679742441913884878959500535332649211548427297214134359525604870878339319307361833467532352624177336255636359718481564390140025661995184292333570850585183954213748140374261130449534903109043711434397165080460581213969436856593941142495358596616132797839247543706769570567424694835343401594330107999158576960261963428026153926094454599686359286465469220583439731027139122988047059757737699746904781466416250086759748756830426339283457122781092763797960228408484966700473499259948915744994271035737444567286544564860306041447593865577642043638501469086964829332850721382895137346226162318412370194672284514621215006547520331729727717417743970925731025707638475395288065315088991531535493047887493656452576120796385707995129097319025378656122275829331982128741327423035086203453328906836655771690946595521869330798358650566505098143343577044361298052669230039867828901032976374734199284641108253240462969566442466267566944250432049554060044586397809861188766522161608609822284057399657998234487030242977366041504465534465092469834092862711505793298182138924199817755359476608055317436056841265361623622715615377330252848628336005931334354592639697905152879989669375355276318709075784895727568453681956069521373982565198992809545988914764062120452175119230288219826372207516467830226698849123822652950231006994966963151958829195385846652543079133891322412868515220588063783187827142567386045102123452278248736586423774030834437073422439035991043462736326932771585358027192541377548245318091922788985822529280438696940667709405683999415629292987119877882353970434664852020441671589813652998534396679961545843586706015415146057901707879788613392088374348237976490669163860939592759083336318007924587009894370136289518288737846049322240875972613422316144659045675722047737882319704051792104606435216247357047389241944637572585456357725518664590371413774881067474817911369206673121181683121083010754530603551506666657292191855581762540871335200429216122839674551135575985856741907634509588555709235042932512305063493277021582250768008029759471906244491495012078086340037403778530595144173158260871376300547381170351664870265069864992530487872251288895473937568518572391831998868057038266299703668767619657873984201989718284009102732505366797945672224850560464080372535145036174829290959060053282569561090036939989207437258954820088482232006136735374540198705232436078887653058252343059289296834554369470119598233167706049380840079128370499767665164501877311613944305195053728641915868324940959479503259495311227723419637256452510241814595862081625415929228229786501363081389621629774675671878190039237435706258829056139000981405986646252691189536561197501477925361949837205229379119762874884015873160833740016663926176409803373609510358832655803302223399079284454932413337951666800134553981987670695544293738275990458994329781332427884129647669739169343443302172300163408856364516422552418588519163711876902738096997459983895239245778973704971123129098151406647093361214014794344395346156338160678058397904637594121311605509196249310820705776345974689736623826660255008117002073001967481822797630762039741462938238110926005450474432573446662180082232498537243327781429756885055187293368498671838494172278916572368211566453396324994169459733906030855786515790392505280313214544450538443544556958965819529625526246865489292372728570057411646689706495834618295984245317495339660325177263467828154643562324966166368628764210654629917223705912771300187256109326845722018795092017357301207547558607436669917309980733235257653811371639140828632487943886313342453279720079800470250158741976655196282171429637589734491595870790126799434261759497908667852432677843678023378968229178129439820650974269737693067714837521242043696069360543914488139423196270735131016154561503832336011046879669237991942733563565048953405238982150810252191295655854288362433001318869666715945774545708830868024113747800191865553975384842925807072920181110056652134178328640896554921543156259395980385590500108377714562457108228816713078394177389904036187748723526083614310599665709973805440022059774679606161608137735188154698452793419266074724878458452909881110215147079087120793966305191812546560660005974552767473412847326355716246741830602853200422541088568905368891637240558357478004373139327700293408618229280276834279501812133492006437719473988746007087158614064767502699851988000893552139928937428239546291243021798486925546424833576023136868180469075516801504368267832212882272744739934749865929488950752603034135608147901825992636062997888235280893278325369568309410237546182955934474378311317978169780154773480848785162528653150358307718985653455656395257997967622600164097567855627945307086871230892256783976204572178482268040708188604101493603551533746243175621718609161046343303852644173769331407873328334547754107241630464904817465445875601541683409759726140876489336784896781407732802935763542203923853410338478349456934158755771489872784383741176095250362647844508809971487236365765191642588600722319492843720371163102828329187165317127830236198245799634745218099915609806025282558319930579458816907057529778880979943161046111320092493233037839681136232628830889647545270803817974019263888687288976100224176765326909376919459138754381687178410498052738454813758093542407021827373927715967969655801174821313752128296452944923796980710993788906759146242080481040187352136215001120699480941865742846618900296888384369390661831919790742517056820256928140203952905429242027377748450394869943195239849542063275320666045323325416381593972136510108977801241411681183598333537441316305545239903309680635113894998058455142076347353477791563505198616942436265956415018192993126909484497589706369244327780836009496577367711174958526789287495732232601800386727179141591159713262834498828024397912076638573633613844843431757189185391389303027458461490205635705336228112321670149903135683399878738640950878906272567437968291950657742739174525128184103698180750840655295351602103755372424666586270017242732756580899709175004175444845221479918386662886422148507045589069642067849028647709693657229964345710987187968054801959947613481162490555491334611963535262294120236259727029705198195001461587440501644739024581754002502287655407584793767856838553791991219854018162203776123240745379504391710738591569516529445836043817924018173622505984773761373281379694196983356611018294268053018539333359030377853798040509179234512837630897698278891506569707419845613727149289545161771479730611478043389326726365938556071751347428399593860806246302227819302736452819413388157581019333029349148539308435461505555414041179867698446060362945635338472985364378921137593828656949048518049726880022933717671999774518780429569531251024248051696866413806999388597837419352559198002173694943824521893032671675144851334462260651458791656769303923094507877276119513842930086750873681223254835596337656810321754687875152130626299276436978028923981167609990953071443840689597245426995532449089702997124907229967459355249266465749686288828256834626315284490384828781183601426653355473355839721250801078160350229942728415145663442787671018354038520886600821452166070903344999176050012960049958749574064875346215048534503705271743851588657969149940374514469469275009214502727585839886858857483514801370907017676956523903861479479705932033590612775433490915880150676655381993166789915844944208834245437046100460584230509129603651178992486677422337547126915098504978309383090684066943637418905496980684495483921186328231009269637586912797231598134514757845746559449259355797683705570721427847906147652199094078436306579306083249772069239934452566306303547446761059671249469746002780008007098424536300458296531378209426780100421539012892226599185202404584278543301595170168481738504442481315993509960045302350380229868437458078362781829440091885196806057391282879762525507156113771271205489397278333439183073716729697477380199996819983440334581964309421270498270714644608139957373294244342144537249874520509697689494085998003198062464051363050630375193330223882268203936539863749412371694807015607954738047572193057750825818252825949082346337850321464710690005563531642614093611701182178956387430641181198906736614502380251486264081257154056294784511860193646120610775684571977108734543825553921865776553027532903447815431729363193001094522347846477302156849663701594587784948631037264001738925979053947820560316500736137388342724308966230472620570115740735826764451020648813165103502731123235684394827312911105214709344319684473581517084985301069055221545427769300647423402481236542586264476881620957725919152049870192112003250609077689280741975853351608887793912292378305592418217733993206108645044721348528617468589657262366207369481265536155850520213676318519000146084595632786201832311445762065029936630252308545137483159944344174701811632728467843751109431052899860974917005801394253027903260204460668235765564955313688195653361694665257555779715898986808498142862959334312150069759342258500144964654146773475808323840784405651272893587930958845625623953485618779713894432312632334823116564942831375661749383914740329194038433309001342383421358509072088211776031795101561396259643620741312663492210449836064960405164645824500054120821338819585818073187268484086570724434219799890475446588071947918622231521078929051794607939240834887974696532200553124934908317116605196282629280632563372685275512931650773524398986765100100660408397658201348481476613938980618385544669047670940129380217007374866356977513027271680105327490398681000513544016265343935977664784178485579343849227506629318367207682474171921439789092141348906710081367554786270499075470531670512818707104007817838884683365812920962524690990752487896506772199591383039256900245044014423546782658718541070448129327605476252237286078185333051816959123690018786830574658786088090144159462002450492773872223113116153267102161041709053971551768719333480078558849713793291337757232329524097786373200501714032338689071670904251824389207436860057815916385308367389752972777060408217400102360815896223924311182964164244814200861017586685225264389660140314450333891856126522505111046125273554644330454965756986600455617432233114486012733681594990552124632709934209310847828867406629143159298517469408743143988834921236648444603240736410821488439467555450940189049061432516365782595955532033169871701531828883047799162321774368041712014773156896080865294663907337401119629909195528130245971624842067712627423004953529426223170306420878183797549175322822500096167233075870107279076200420438244481835628106664439421969026926195986086203661255377857578260743138052634359165159839404136667893589195003452097112050845320317216020835067159921879636434283355665422392196654969817639966351642234271441925122285778002690190943389113446917449348835741492348847868107254751760463922889373886254424840752317636618589186399674166655719965451242844800605216189711646635852222573219698612314423771393934271643533936700899538490468020229707776337652267688505452875238014563325850868414087353921605358627376485973979794072404460433475684962659701648729087438651959258294806714580504666406956393719516871032694521896653031263574332406372372231250559077797979111031085663920377924458765054679406126699734549517226342882359009769580484081145380081501680380302994299857322701413686854826654357966387790420624998796628377685852443095577493950289439321380701073810073004775265224783837068954512581954318107232861369200101409118865871037285244260043425004697177176399955732058306546656117780371848694363056981124911269454121199491217962381699808953559121254269791849887313954491357525118083438617983044936761205168616340200939108559041887355363371873435146008906322925700604638899070585296812177977060319677737443339763642451918250958544669618080332058799734725020737969751987700589308516827618832495640682281523044033095987514315077975872568610559357124280855060255501606659057029314660320087495399967762098188768509796277883739222310689425108922934259278927679831015107379009244446434681655897314906035741659046418003149349028951887525623710047038910493132431856283240888875160546175158801308467145542602458828385387076159977963559168615650099790548924095553044090609423766307878984397830736818535871816292617824007303521761137874252732544486262663413410060174826376174042773947478793098018501872902705344092080375423874913511290382161995044516071778639674145664513154955889562564394097069004281669078128182399146852270282212144190103992400348116349126675298671361488608596353881371763632870737227984793718583568001250696650128690593758332892212181080825008618248435113288426215569508079876599145882276838190706383697448936821959297304112844815167342242374415277618411818201383630446692223659302469710143962699104646816190317508256934035634041891024613935138883914641834221704555241290856423359476974845458384533469224886095983478394139305788638372515488824052117887820762795856694611227789673017641852335149532485125721294082352420839655820367028729330356682837280180863067003826086546767661359725642808078197760088341255966405917049315941887147565559234149851961894219352437169564812104431515549339505761043244169234268094452778561116756993626683765608007938346536684582447756034364513455247822844213183200642625952656184510690191504051473911328486879212923851579152510845268659528270033122444829674499830087188133160406705614466975056074822195681018737270342982093983571352671733647834764067672498064661529761359781739426460011285408380281965167555964830129124788286786085460836976343501453984672911493732987509976353860446495412904570858794799599389876174001250606776024111433502385989801381665325726906578013411322017575711389587763812757946984845925125710922804050859468971261408750579600941883996251516874850448528155074715298158714468964315825965838439730430413751826256130958887917156278688414362823710795400422966288796053538395384615084012660393782685105229240585227817367501616538286344025609340161639730009261252909232690453270919104915594590675745824657990128766643123920601046275771362551476878913060941459889299837109808535769229700667541572635509516141955689327367227061828946810504013358518813783650317065990878216189209588593852986032712704328672884477460873410677085503025911592733243653815759330892765929785436809195289731345319254990540373610317777675915708931672739289710959444661943952530162121047929255133391521422196366680216802390126870405958290473262169925807954885310553771867894795193696189837768312681796614717942469487500066016952099515534458545829206960040804179767385098815685461040696539181275623255589560282975624929981549612233673917153944203978719227525528126661057872091958208370472291350668778921236537379001213741314099082874127375848422036663460525456650044691122412417510404040676111177670300805609259681013912573350972904869490283185790272136047489975247986754578748714491296546207163662744671370195939406411057504246858138158897429448650348928382185411871535284616323665814553085657885822610434250458133486303672191532769599690730574899945905039168263036646415059736764959019127222180933496259953756321195865756032316391715282466711138710376949512156833617898616064245323785536669506991665630588763348932699670225735596661822752733966156884976893038114285371161458820783862224084120739887393536867081756535948150840855175042670053067438284168941251143167176351712731443620200268613800852501305948713047596992141785784990512302163392645376678477016239048975232343860833713771564447459719619809771718251501309044930596562865887539142096336779137586621264094563465028579803243931364571010922814935317368492729947634820754596191157535173043460505373759864351289624652642286592262053022533968652568346966801723066239236438262460816593468241140319023688214413032649796546988435147990356052127117491420552357094325987447965299040421608138748472331876809710428106858311678428452580143491868401100809929477363354152130318918849903031767378086213922608813973300287022708669085164161944044332524278082000018789663318257487903300973338860303143594691176764814580518839432646526727887715763910465705818113770318208546729927334416678536045514638834860117817069733084411116602929722060500090367081197043010498274711761467849232359604804900572900570206836387934928720718597377507004171185951707721766515696268853457270393067068546225826333913065779882873030058800803161070005288397958151595706871544569854331588283484574589447942625092198758758760939099752304154171723747006683248732113400788347794053713977705644583444199167964185178462679944804676374257226072224181808164189094369500540627209248546229522022494786411238771889827813580644316771165583509920374951148181107905684442188820370849780059098219179499312802440392469840211704464521230486213757529055717969648070302469234326425916727881638595147271109934670876668496896786511417377068940283028486407871205319644871464748640084054644109442185194187719127723515099784843572784666490169641456999788609379273657015504032949610399086107732364341232125330384041007968462286948586776709640194815707829361493751931576604303079821261003537708018980506551077265270503539134513627691902095459193637846922285398775429659693862673641722309685110116043517146759362809026571624971330619103620395403140412008571751199028433421674433205188859360356900453777784187779801009068985406409483327571374065783100541359613562935446192145267400848328476071300184935439574577570818921679703573993198158542327977811673770172971153053495142258106903719377138600580641681629012347448199988162876305734230458671651488174519020663867666165294054626523560921282338344742610172984992747424737743914015955488810479808082962447009442775527980642273490464468185697876727521378785937022093147712041268112450954599014583653097651838819570743304265899590699726282554979447797227508341771943369339012661504601687112035079432043887888402798684542585022684253498275829713755716448733542232603025310285359653920700821521063554567902057511191583744661034041823492611235692502086381251766069848516785034487857969158519495296915043953495788285696987548204623637239649759000118095876571921941343091170765209221186955361929192754384352225207126677255500116596448099960178389164669274702789898058529886498612578859026599685449343273630151764494839376345572637416663456754757660800059715579207068379939529445584775405098718416253390615007580604732569816649620878122568118738755413339263209633776008161854182444648043998157304069808001583257125225235512324044266050448606080687256952717050799304798245190822416466130251291561351706733462340917148119142430955329947362828677026087136073493702629753470198175784393987334065718297013176576833070833507710444383873330971453812350652163488181033975922299953729912837177925364199590345914465810666238670585787984835896133331243068749389344427128803378422184796150169091942449955320887023720571932015775775039606539012947339720679872902149697462092120236942211474130443325878863048120912947854866525056649374546347820185797064307042517963312394885258188983884286185610661912992081906406073252566159092742034770892729417200087712010597336283196011022713284214676991987646551206637676271066050492461285857339032658553684107521796088736624734075598193325193259044603581427366257600557272537534931829081149651325949266151534863319876238809311808353028449284995687339369839983604251023899025121637567756934622652577667395456364173729901392253272645079900647996236787592903123680651649523138047862377332068624570314950608640386741634009929115226351252907350711835189167828923885402317053357657225314243309141636863611425798983718672562419573832636633983220249791413914166610825414365153236887703764390590928809486608046181758208770116961280260978304865472325545261343892687242015393318114489916380289528016988318414084263363328287928250126673920517464783632943430707569303827418130919546184276646618477288022716670821096146354777121989984233685412365556111535637838767095953074062531646591279613205892142156760184318580847993702614939262450890382445965828458637378931150750694443165524315329765336257555871290354258622495965285395998379623495463956117578595429923045304419809228635119845689896355763375249743267332049272757559088132184080039210033332608813740805401697541557785032835047771122392322857261223976137346115536662501544676033279974159277334328434209990579967875985990985291720214475572728530317792319478604374389758631421951006999584779021794250947800707788420282087692460218378052699272362333701666409240858201858263723749084610913989490545987294183283108490490466287440858688446189748461882090616916495609470110262036377503661120570646811596024060130906635088746031670599812483348323447467119651635946212630732211940962170419845034029628930138422697422126342858830493230279119636149567674161906227128152348951771511740349726880404119420118386145570477853206669408042550185361647395399377928678852626731676936273830962532097749631604366112813669509562213105499117509202554782025993559629960866403558554424989656399804948592650105750373809072191831445952040385375233271731934936747541883328684719486798563343794119089421497693508209041105081589761772235793023364364132990818463041224160417241758864782312133206038530962209814053589799741261608494426578220788077778044867570146976925694255338728429617040558028954455857052776474037444155610086103769030033519435707123460673775073897463591617052908367689483068322957810919108294403096850075968830178176408514823214899027132261855495977550097204617622483958097988815126847450688761145812991603174273958514929318111311565194971580497725559038243909983426340567487598167682406532435636323207573824146243325414283645602828564186804005004196270419757310602735108756238205799895142579528260208843199386032230666777295011851131373148193465724377942256168290702062787181507636854995914470926659224326047899526093410799951631439159256104951289260091039521338569867487162913076901422427756173175288475632471601386104388695770434560360237497793162137026575172994932693966914141165732145051151552744755366503953887586551674044897852986712388831430258337171004035244589869265148713645602856550268457563062365604733481924854543433801878733435386386763077963165596287870718531484424473123259773383629138249861193149700393851097689325759133974095401097376797266564869574775178669724187640445278375420778833498747931689453882850878780161852672858706344479365855021647368215129636058708749163323863820940058596288822003242908960015413007019953764837151392620660975564763128041194867391664361974661639792867745030563920965006218739176934507498780138404183642599503588792390275933195770565785380644986250033132468737840107383054274966633351029961969524317615643887218466582162429168534919386456570063828898735153556074717722634481356175629767711071576498554944905195709858057356804289281609246677513603991741427090976295765652866230476496253986254678400962674629630882367622748113096210969027080166862752131104786480543560652205045971870748172489806843415479363672614979594963465535227175550284250125313632024004576436388383913208358772999807282255488811345099314747665348089577105726878829055013773794856468513894415863152338703321647389980306086900502455362731345031384946619201138597495525183353310074108059100005321656772467785315720869881332818842592313136380987968583662934593721812316525135527221547814224067506825008003287646860746622212807506615230486246401105193141069573858336956293497885047172497754294477459727016687767456981660527090690358640890170483007969368391957915469607738806136316568320028335680108322884450855635352261708732067589994855660306715207804460167442667415175527166695202992350665166166822729469274529312054740295186487563578444135767962722509515711300057739350877303259745619792792593522949495146474684001089274772501112724584796298928486057675835071902543934534085365587030830408775468429633829925342252055532550818485248476422741180587615517943031369702510409673938904408452755930034937545820727967489241175254792473297159284363369450154570056784412651595686351344672344402934119094912162838734743239428096408689437540480344759506048821743978167695131726413584250887354951310662766088076150660572428197975718684107949520685325187090062178292681515419989462614155799470139766252434855234328789692670929211779851671311769132271440706513244635327643437853470908820531606236652357601738291529466802619718805353630185707286202465319388222306693396120918288027636496721330674759520977615025035690295391451208887999031494654516813234615753999637942453871852684175288310675820616935403763409121376774525158752616359372658501548763838448360279931598540503783928352832309823629040088409743368630945751476578398887088815212848962100621095247836862482147110618362667291762016883426296812555204254067982542770073905538272140265247138424242340389570953600809359029283319778476241611879439342294653514193747815339001035485070989283289773562806543908910972306655310970115822559001647757599500448375313505554084172625335632217877690346971518758109619727870700078803609012545280487727259435685625517915757974363769759329070560292004066778021384792229097392758062533218506985195694368139647005334520574477942402126864583946654116971012032749586407223144372654176901762050177918610662592786084965172283021246983722543261381534145652089508365805991697401135456603343741498940058924845210226365926181104774363532599833343591587744462875575859124287782999330625131314810205423840606409419738652411340718061232796778188117695698750079439606598587807004830119483618532454449447479265600658143360334331729116261730150953429096459996939606473668700928291597799658165929840666337663124178015749419902938411561840531417409425746600580041933186692745946924599467964670669055306303396517145870059627835112040273344842228108836312429906359015439978626359789928226335258308629637260439117895657084499007128687819133947787854775639899861601784748346340813517485167648952874112990550712271034042958103967145170179981323411646104536758426082720273443006884221042387863339303986169755613695803880081933469420218588430934858954776441445144373794802901192427085357494035836051638844563723875401857772777775452920667219589978575834199071543832957425190433114342504590966047575444143962104328658928966940594491672249922485937293246297903286524565173540441940716607215282127153905635901606844978496415682237025241343846078361847292425869096531004594660943689938233423367534303557160033457158085746430979682823959350118730638399078552457419931067663737436223324829727340597535598866180570081911877597394735019743679399049487936980653610243423088390545283522956372611292583805322084902928380882404010265591305929545700440130880838455359867874054406738466341292484137290717967217762919834329453230816078112103369349290625326435951484478465376253002341943033794164015023116417202141134863231007980241712663044285251942680361286224714417058445602898086865725985938891956035683109133691056220382771501833099890222229809362312616955208565655385201827093189564778073077676442015471119662688740325558442383062477625301769139758859678315912918840720968644619337243698784810718950294341510809384252867132087812417496457872735849355058180377647544978374471157008817102626153233764270089778935990904956518095437596429067378265622819013867392693258351229912000240907492570978385401030058737959829627583862473972568036894961359017904600199951422711717873862124529503352849775315620833139927935359953902355525873421018658820078605613598952068812480305418730818681410439946398943151983439485655128619586555175311023338765953614926088538094311773934854446655789473906609192528262161369396452275017648741205667823162178246859287643627665307865917070136215766029269601879408342277883709891720697313433793307121116557833342353947003161610223646838954793573277632398581981793557691820142376995774170459628135793877541373451400541643127859038774760695129625920930888200306146828989748205655162036167302143806466256751359334707304720377357657922222284942630502029435670556251937381661652158766837484527840997319550710569693666662810133413816895658108943161619010945322974594627835211053788405419421196506968765650895129521161021389120199521451844737952965468896536943910680416043322941126559638718642604617730738342617448897041819098084720934448280811437974013570909641851124221350737533809406697965744441022061751991278033485702550077709784955631089574342950246985525265560791010866154385976167922206582255388353373642178645612374791825534076800750898975920633913726818334714075679712438600566035258879458591125736382032671266973372137357452634541169542718744584685130302639174178412481480694720519292972134494862115634967510716144554605979364892665232904610344865506428661701511806818877264964362681507363099063957969611950699381336829748287584320998091913737959027749805021594765116652986770994671656920298915408382648172389794351546482349195464625655587162378465211132556222709257663833559655323313050471558561235586309353509626487992256949241921928523823083017442231585115136028115149597025987235362171079774250039998090298949008124521918620630347361047756954276488779801658339327430095953071657463153906234380476565235163169649593559548463764341083044534306668697752779592959989954037118383062239110812393715437531836535794087453056654576804086717090807177943481947576059256750897759886424637562679637543483833339927373393607149300494800486733800934998656334995063257554419263453133929893387422441488894736494261081316450250662087528031001240515927502938505159097122582406820277675663750427609990766350629102394509410965691391377462670187859469320967030851106106725751383179207592665478265425371724802069088913458045654510830870725024161240196118031411219001966794760073325440468481332535476602666471562707341350782496548624156477943536566820612593640992817950985485143346127005214316538455729550174016721330256304248830020938587099909823119411158669562874903263001307191066346209911152813545027634069770235436266226594617197799834573522267525281545175029139827933719047302071001891106243721974160914298973554811310104999843721811225493250363422200445796653133246057573008106421405577093435334374175367579786575661935633939349568923943204915306299355009544956112222727578602373246072646510442760413431233282968810506693290519274337294730961778296762715969545526317890068084930824707180528252292538813526710030362335099707368543499753349854423265536690217726361781877813511633820803955397964172018909395894959065816272597987180332355790276164261789320140506873529223059793166896866482771139379866972313303518440349404364251386962792500257318551020277813112797253070173094878249803937472179319468569597019011962348816792549510825723535191978135946735729890337937466234473713178452586417074815229384665391497563796619097324435888397055220522762832091718340176747458078696243099932104051161752120572524954372779445907708789272690412218945624504854827172330935022568515852785548059441116554705603621574917774219086669032525568579831463359968952717218075819267205980357891937256277916759960967366791208565071278284095792454536006007400415146855679874567458545789886220589927687499441223387522829268887376758516228747649875914339751829561769014123639200318364392835795303835540451837563261559966930238962451395679985888625536078071322870697168611804680143413203052483509152211041578384581905991379381845128710823255632687468935897493057461139573831540788687233493872155327509094432744983100457390449641803179942995637608968560532409922577602711056565909164756348628883798566348645048671066549798348627146723015054449343746576232812807967511497357635680545200396639167106110655313744231801707114287054859216339716316101812328303053512377457640272816120930498205863546189770160983381830091438916691915280134069288629170749959277415018397938500675829718852611039211635968519544783015881681271365541014420349694632614629034981270891257450939048780830032898867750368912449056872357560765945716744756476988920165156322097906639630495163295995204688865775978907855177995620369818683109298417316778924781855415865354767616710272746843624210922422476861606139339192895076766515878935298443330875267503988518290595398859117709439159236846845484780836727949764841146808720308856661567641281206868431603162613502283171148952062397281006142963397293315407556754004990490486238107727579855345694711483539796150193972764453791295366274009201427964538878984466147876459756020778540564722689281250477677218441264394216996104082478239678476952380689314989793333874768520899032026859633887844759844870662334719519217361446085670632708257821879262219903832665908747217483983709176767388092377114430672928854264387870551901410981815701763180577714076566799948606415138508270820388999056164315266947739438686620474001929293421796367500205637762881890658135790887755544379108168374999372874483601620227190484794746285976860431897635062409102523152269642671848731485714627806904941666676403279379168318353756270528772160968670134908000461833594036722163493813420377896717230121102096101416994518649616590979629155971879018219228489411245016440680903158066335001433272762443386354115387146262583238145748090938547946872311370600872339813961962885887415274349506946877841849145030547523836498647035246099185440896260997498749651498589934215081828751357311564523496715643489394949104652724537013963927755612096122461903654553289204496271713995144478507535048350621832179591961268947719002292080475986395969315191722280209749556629741284723038480494640698427835045404066115255977047756247694230333292151939661936365336293430299944018408406260964915990824988317655917189989704122191363751785605160361150051970914895745231866967545396030689232050070766427907838496404707949591997358434550405570630520510914424470212184973023677128214409140655793757682364172785287414253397397679974631393056800716347157895200642722739358749713154346706990773606855296801699766172690883549311981338696358397308117482058314772958738368118956994181126107490230459331079301369057804810288483737782163648175940267067819320081676302982160114061101465170627009563969351632969411251987512211548248711309332905908019305751849893153420072297056060528540938505654355823188541865784225570060024099245891281921287511928291348511925568964912511496129018026290061499200383973205665942365714465235383250988419837160390471707908804901834633752716364123434779024851914399228203355374785891112061925063584974873755668841635967985930155410058212531208961882784681310409042250188256517754664534247698934572014587308283357720184728130246101623042203183283081343364344051626385597162994240455249075655372916473483160218273440433976465686338894705734349385842956996432687166475021497961959233870465140995694855575037021230544004833507342448064564235273460050464908742155826386234888038370151431635881218926496833495467057513986135587603956045785827199830429541206836848961732693364847340396660384036370811880685365421156454035570782175637099721842023662127693464690667870305497329868509948617606988580712968812954772716892268726655923003695680831862690653728173763936252087748742130797877044379943351833567026925951512482454913377336068613905445235124563673430319060303856797896871929083921740433834751797789509585304947141979532543924705586990343810656639666991734659731711559004364428746796418430589282809571433826777446236299677617744792067858907403698456482420906764979364409412707380109411009358598519833183650896865260687133896132656368668533751763719064572286574536195163495997294240753280232483062150481666122953791892924848201446133019034129130323441665376765627819896474230938135908674073356179235888392439437825756878445381364237045963094689101676769165295572369573180029484045819311195548078747856467994821565018187662411994477558412986435520657220370410518517758487283120663389584386228027278967275364361846165386416384511461252247667653110533746997056225358285561861810615728460061411036649292707912394066111323030070710219061484041913604400036599479761886552074125853281733161555126376572763680278120340380698144351413592022918595573041214095553071036172366688542090987248875955039982666738003361709483550858817003992865122229621941203523708670174691329340133281415238956879728599002004346953563424074004200083645810000624365513301840824369064376785799216482101876806132150207452377480543610235049554985821485016067338195784504424322820189896767331893303318302404730580032767049972510251429950461826983763530730791075780749019704515966860934688860223629107023339815409482709463858116125096454129384101015629707212406626089521240257058346290569995146415403499677983986728384595193598648379134466494788180835162076286815742286166188171369833533381573495417704790052833078950512018218045814105294169402920600107620530258139221441859419762785081605697748025712715196305444026738224894367845607029352253742916527514109809563094301475473780813822774311479472754315271109259402992641455056889370796473981810776345046910336606047900522264702752505028606958974639599682633927679285777786150644249618691590969758489986967331045403078275489867488571515644741006616659197839908223417331317335435204406929687868515217345849017504910952802052724632105690493310185137129322586484552860817275440920936638581723960665567241524476922634953595808942702762987290598154034764820000050316442116063934930100440991630687437433995762776120524630439658838118369129613285050711717530298493155271251044707572531917015261339552393809487135914992434018668842360131331650392559196883771884450174594813488824157130669265398162541640513838291566848210215102474049571431005153344042700025690011567435048515623711253513063033188459036273357388682128954912611875889502344453599470968524993834270715465857742649451338809473920642956564465244129569044057734229811968552352327674835114121658212706211682305018398614273630315819333067286053317184120834309969128350932138391358033294395897776704678654135862666100158712059432302819844338934251512384498352574516620515389163126222508661753309255022415025716736949057917550343830082390514574564957330644013963436337015764559224055641989071142778706543326247119260908364473668876327891124803986005759560202828808274947213130304142390306611502844620890183568760879837580106204149128805403730732625429816682730886647778276215602959132268409330176434260821254616868218780062907337127065081437602007825248735270264536454638830026654635691700505980947204372216650901599245743817686729064004329519273415366299785672061245343586260388458491833274271618410481859556090463092014513835125347577590924107547466920105706990845394579901771111734055948628889987091302999246970075150655542778018172700688603652852456439781380646544782109795377880922303013156554981218206451124682589135619645955386125647246713828427497232324126095392201334740341140822527726344865565452003434818881830966248248061731871308461158795193403110602776680746404531478452736523345763560646141039448839657424571628176128716862877740165611570820722977396443128162000508256284689925996786612045779269235449185338477662803561311019904999230008251640630747177760394157255389614093295587452733907854745022248880963677618478525823475891971760105848170714697174298935204338084864113557496202360126912343292182351432076676287614701808651629152870179515417976682698453014579161135108202362301691901726624042284445892801821911203919213138233106402262635155193048352899117351099664411036932359450064422947519817145210313364901639467543690505301997104135909792105859279914625017595787408499922541323179001653691055886944210545052090966870330930822797888612585887633691317585331013046213859220741114831473380937858439955297561182615829601027686185783772313698870238160426240730243067098749411907304969553380541886125344496075702565904220662925454645415062118882687492564905968757773591460469144042046210065144421365017314635722774555170558036654798047824032188986061459226749574565815905990484192128236123561502941601709928355266999771481742695617207794789750693067067593835848463076837299385804052437823550536203969520674470562320429575195273724520700704348092289594106694176060283005192971518408824540625338318382505389429090740351974580078460406263446706573358616690484467458721410885256445497399771915221101849211019255311340806849068387563666753786674651430088792779097859079459103853173059833403367718536592287561647755207701446576370030363306438172642054535584642064979475851262114297047476644906834405321642772775966750713154702787503810914570405511554836714477699953749747206454968094270524672959702437411504277723864673673559257479484420083036158074802060761369248550165061248615487390160301506714750741858872530880092433075574579997581605379058006179063373511928664985886886232172643852954538964692244567963691797836055754963611619077678990752597448399348998893472982143138396975944363334134205898367639519185191691211624682906021608522759132628178613231843194288232403099063795149072980226415786624553401296265394884233044870986865566431348774294949645765321881638930305127948684842379297010793454453927381341588875308452793181881988657789119775837419681594212633305524792753479886275652466351452729519240954515488178266378578455028778892760607370629654819256767991698698599390833025424395320714256213772984492805249083259796320578445115317432048676466656960591197555896503330459285206178898764765716608129216528137009985838765472336022934872843793558322476618189262229158177444061536508700398128455201803063582281768135564354893031742175605765189386417998509152676440586824828063799420610309768338733788171259383766723191262715723123313582739022401758961263148782381883802568245745308783816523235480530330748445271299556459406688234236349016142326674155600445539555180427730001796935476259964874122719053946210385490476654784319429368035671912830796369467831125442156484174227991924159095101611139317879241071031506972616133900607541650165095670743129742460294446566793137524717323665378213455915488181762423763272994069081162457562504785503952130894134335270121627926112056381243987971493337745222311908967105621850534452024501768804235565453895017968779548156496678675350976858067531841209021515772541462747223308949234277760078154824426769493725566696002744233997580533905810481441098081638602024024244271423774041956314829827665428685528362340781550909360283972734446140516452544182920094380193968467927450075722687641828814668273449883703804724152369616206959691250327771732690833500821662750696709580484573731082407266022521895440835574458319472352824828130687371393647181437985119106451044933402214247051286701716903462936397506716772794936007763678359092411655528091956342940559067736329536956391296066139899918993955606760644337353564264386784476185256917586701717825092676126931930549286817407797181685492764538631128745336767259421278330567522685099579024950753640732653636109027871049254529049860554208982959015870442077659260075385896740453497886914447423575690372034420471089364118977387734789377288650736401629087980448651524857699421315398379679518276366850006745513375493164486331132107675440287438713502767941369925044253572442901188703524884258467450384584339951681198272408421528068847410014469590328459635994529695639908312528802314284109049671336748970150304144423096269934350521200749943555606026476154672103202888500720208550733334205740099283257786249361957313913857107683971365077428814002295845021028651327568524722583421849042246707120989266883374769633410582429565034020855093963399016040106064513656151372170678789267985529948303553321524891217635748270118464319190191734404934018821568438259671311212493058490337716309454037911429197673526801264417974827811012736011999514967851964377162805358710143428137402909477569322259178122866548248501079486923578739735202570200615569500523388133196117347945136419815850306566285021630101014380050476687992470654915717718162976397393676746830442952450962500228310471558493976836906931700147715151539710323838119917730153094609548934860658489113804995155061508757860845465953700246033896121947671694370027097950066396638336714485347615070554867121858210671312679131611267437323480860115952498357568664589962684038543347736788991260726419869699080423924351801476002593075766549022902910813841238050953450758238421299917701997975898381812452004191895812467958221592236637322730129725216253250822454805459577269877221705942084258116424645431753446858959884862585790844414921541606092328534828000565085280638448535505635265273446106500627078109591297574859989666081382333738754171946890036241422168997055380875849836356742643019815401505342416184487025491178444009657634122024478658059928680596598356330663446537369630862808896461137471771837008753365108306744059454088073659753435020190947873695115015515737414947037470425158879384017921510427297056124926081753243522964620326123563427875766285396169620434552783626991569505515149717819358582848305217352788059729513555619345733825591097246346419419955490213693168636467914284814036895238540175229584864885068981168503885435188848699236555150619419437193117168936581304751269377513727815006313682294868444703025465170353974966317981692109769490323454677345707037486623590494454144448764648227313633752726087329530224175494770415644831500582077061298545046738487352421841669273057736755984430265667480139852477451645072962254842532797185432522560477124193477222744439260733967875306695342585837033852136375712601193597049513528170613241245020929746818729245985412617382410189656330789560693321858004275734451334376249857599606253761385420546773504308527807789075103398092158794077413581853314647072126683473501102819223993598650432953718769864790157891987276209564840734816637770257766162333635775102992033198197811958069104005980844930991501027988856140898973089024867375534683055268326741483039183367735128337491626003762089539327960928341703070410479490813428298382260565010082192868634499908949947294837814830360920323413888429336182141471402100834804826879496408480287462353707235580453621207642062669440615150974146702243129415761512783718669589105720120071021549530904854681243744417102156093127041781543515056852140264468313619330149360636543701008464436052056057095000062663761434856831763221220282261531958496643350665302150169743685218970396847148989624037647125504482376273977518191091048195113741365194669815941074169769905332758032332884886820971385214952928439505188082997215800797722654987125710415160479352433762077840109675372617968039061226583389326458776334981118120268635238378833586805873035878775158130791160670399786219736237994422285291181390304407394272360981213484039354525598153639764106378001966600238043681106861660394492748138328216554074333931789774397802336795140533289906071041787216683987568687926732039691336935847203579404337405927577391046359266176296544922335591803394012364065857489094561684997459451339204117215709783830922834783546644979003064349858772991607433866305782145054258893854742484962282192953531000324172875219920029672227902976519380107223963574904017627692467271672450732175908883063425175196231370468315010421721387782412099748477579186961920828297073989255444164124610948735443295975074742492765370972690685451721993163704185886163216683681345755393562657829779316856041223360613478218897455255652473576772563159394369179295647762962368275161865099427322853424548627341062924978442360393435516801536364557371626028748280360033082025650330006176772014162476489545415652557209317440011775795455656078643613300438997730183799148365163358698288046302801276561825058756041864651056157234199762861469726003409472171779143055660809912989923165053867359817648873069961038759465382750147408250907430056316387288999738869558268000368028800219076558875103848595927851213475155530116824757945174684269578930325346077657816674782649974943835279437229329427443960303771189607686848404664920439476963356023678598857232269179279770766448973750864611397466321288531549069351610628601864074062921756446411472557865521567695207002244079511336504582994090010844007678995128473543998647957902386742784238692622501146265858809989009442357212751550984830091909428118448033567372569098746134395608023764633814708814528020511965825184750418576719904491186802747300073733879435112352024349211290336654347868708903441848280301406982877951354609384922097548576740953686824814886090090236575902285207632319799224672540555258895641168570652143132314145647369909833255143475984947242212156601914390694099372044197197279748514756282786051772419225804255251329174953494176071297237232476353332720570948954003023536567021290928426535185062562995554485487574401784213489325142779201795141500300853619780517487328921808074062037368286180806993480377074933007595273775007082025929000903082602752038891161600916610186381563521316526743576717325042507004327666400206452034613912204879126375723567761929567772284980928754517832969504582122056513181697714780381841986031882737796255424551330281351524952797694153298957412090476197861207582700263635448382362873122124249132933525215181697215598839045594033828801251230822679840407548430571014322977511349071661646442778410056967176493870031349337125552862908857871374102753655857642646228975202935771604306184320403363823762962328839772446676959566156296520438023470278207260257631240783663649875386970019237279885491225299368189809711396094082445029151711613480939062013743154060864801030867007653186672773108798983469059316382141884802359654510034596136045807189023430735711136379176980687121635718801292726031832712364129686796571837330609193630327169857328136003607951528061543406030740122418836713280489569832499066246880098969388300587486478870518677813271076321891818487498419674185415023580661147579132958771894549806589480831122848069376225362757547200637588848739830549030554106607819866911325912282121618082550620293410427025092559143271037999922101867155819364742493730644583999603341213517018810906463370862953394600238659635668924193480379829198941333467893827795690850930242739640050098974260313372565524599478194097313635375312871389467752855622365135238516246358895953982453240386245964133669537486306430366587542517324576182274159377841221261320503114393264664657854169075829352069088269842194083248853636452137465801299992060825094754973626769081131446429718406395139041952285113757259576753100129225142515343746624792444930797477896714054107247387214893904136488919383055329900082825792213205877890907816883835571418469085085778147603829557118138899380038885855220710107280793305172667224756491724668218279724391066549309214774234185976440687293161570848622051999835425709727007999837788483260263825530201320328151496999874378164396687658399061103419211016617382809739057474414825911795704449323078040983990081586831597474935616889195255797988328628938607578008155921466986931104780975351538800493425671073865202023840696085199327093446486210529518504137774230277012212558530230211387691778337363622184541750772448710385089465790213023701450992442136382362278757536450005540326598201556095185791217034566347701563720561977271300637677103674037951218434001481411873437423266894003328362661397735439408213888575267377839886936031183892780733438532305291037139732450231738990304227464602745194949854875159079710923393732939325692962205528694168889080711380832620425546356974789935998124933471441877311565433937239506961173591567978562233820349982182136384585794187232271774874434244079300502479483808171048082376807808422223337802735446424642758420353920311177447454451618753847653997460372165999081917423129218825251705266907578418894967553768681181041452929206564531921191535048296510884266156985730914446105420879818695866146640822663837032002599355661008350089048769953541159465965506501645734200538621473788716182842442427577689705061563618470471108199484134756579615539520331926117854163783330058062331497248571644891530367569298961091366664392543229817090550306651341848972704670589586591764815113265389791923085464977960640277753504762983792323293975564927503254727545591442835863773122614547308213764771383239307134711203843338704439980482765421047864998806751824920927841517335754689706151522180106957469589659078727349971648362242116510680410710097319879334979469455325682834282916690073511025646955865843059132814033792869002213581987651745191743784089950095949652585822514549936762182172036725156124052722279443695911877756281135468118758130102487591788125700262518285918276378421322054745447269831470392188661967051102384382125531027438785940298273378167382231018408595118397024098758011198008649836611920155236854463844643179760001013209866890086480623656939724033092303683275786891048696579758329619348967945361402007877454856964141027573448387049658658065013804438196800965401331644048877574207203752345638605281978197291135782255367696658343256918326262752420677000904172441776884894807594948492495439069838103155445720194824082017111254840683301256352267105220905332602592369361280786731160925661272271115906955746976496529208630348797121631886301684559780500329012460656935138840597623459723199479810120268087457698769915178575801483859413636027830094845148250306456901402148531309676419418653816793340248937968427779327339701836703747859620517464030602216748834978158014711679268653330719975783197235885972164977581611710314638683514923834002393643354490464564617814813556391724388339798107459565304244122452490666845223381877634278436480210625933540513843241282484083855519390610279803502806540695023367900002142314937559114850617761150973548880382819321981634986194129828793742352886196983287912718893643384536485882759501620972684552945083274265810890185954140106811969955594448968863622589521264726583760047203857384250261432468524740830965526031742745894789056176152141636923620288740584779895496810583383253229485768281497131224038195100294294194659347635077789835850151057639755383679885801743293240927443630119996193985594471495522231812605533217783988600374429029533741905180872917949923245807714066332392450659759473674994180234726491835410519794327133370401438720089076768376765467829444918990656869639269707564020423901801855916234517038053206671702925322669863368916676040385415324589129535618814202395605129314186580133241318251927413535442355055488951018465211416820128946451158352795711636643112851695747595756835755082920028554717855374380338110438054490712734704699898293139578393596832923938565575877160075500410797884464667417904537541801185274343391567199889368070600870097298589236416189292201273861523877818413360186622921937369570079072860545233637320228831992199668470527865584785204817111321174834268708638962671706036198980326552013738655990221662852211271163680779310816372928425335947343198914226182040016768268669357285862258845627559515917606420474250812013198511459642490970855947675811791811902379387861247988617417225300461033545530345350722442392564147891685455183417767978504077448249342938787306787392914452232954958008002161050414846972763483740417228723501288658929496731016084440315385685323212679896938231740798285676298853712141665384221814032272820896428553060137246993002145563379983032578363090205042142982017171029204801857381337296587469192698442133175239208481050765727439342178085278956475214075461599826497024432727300421947233392249024621832775644776711446221928703489519896921893021546248817463787242078705087021392853418966709863361374685526617849472263751235851675710395387146419761676361388639595620334523952059986609184593932602239092074542098394575219199768566814558073948025800593710326967202310358339641671423547636041636047889809043545388862593550983122752672459352206277749150157085287120776037670827725871181497481582790984740287785782723294351478352820577324984200733261218343796157274642871623291394431983789023717718718079230234569989146427812746160264337604486170709364072244589897420653374547410132878306873090819297508382193633896866463030203025313882911398834615606350402298843017968645760446719504307049438748875491703331439651545332036186069197063067819200608529953618920203404259548609468618903324019766952016004153181326010316204941968338984293362520936670920494027157178589785136070805303625616866723201778631814081592402591220157933674891304154447363302758517202042629889504517112207821036348338437714032933846870402223137935858374441159607411643296784864376182794850470594204217203373442306161487669545807223834716955957564541008876676022882703208559080336163068755072747320040056362379860366085085986437257108352178751736734316419708665213592362022712689896002066494882087606025688843052726794837977869910130349989582690213851076502573019607456708497846445329079441031175847013860521311190886641931435963265868492924496603450974491807136381090572511100195704184637294013933695913920037195732401893371088274324472682097685797816044526071876170847308632141035518639203324562393185753258852415636706283187558618011222865213261760127831479181450649392720268629499347652447235287698419519926514047282975248875430694894567363828465856860860769635520962175451270285977257976331462053367725288201570106229643565556176501976361111416434365265839127192388617838788838296764433187404098087092119230285133544931398269532674329401595173009644355373982640281035642584605479122637606562130757885509095721956268397360570374122425085256527888352318005223937036402485579438998455840633449108894709538811780890519635188415518312032276298026304806191773669474912033319090280751601254550713319344226992390182721138918445392558503285301016335602210084188550808317173919669438116620542706798548688818224720833908302620369379373726116246112529933609301792467392151313713175227574371988500716735701376820853293212100481121510230920105075141961127632921845487074618550438309015005836720609068774452406367539318750047605003158019495711360795443910431899586835232801964759611395668674493848423875940672734531581805816170058874259881051529239525589098461309283410586188687969243181783378659774993859858383965080530687752044817267036858743311365575137303153026480893215465146312719765818975692803894785140234832713073925676520921389776489087521330637835334271422635470679506627914929404319011959297521835685354433278814340574061567760287126744912218066689748919612924456042320759248634727092910635429759246231018888791419308335606873097227531487434606522580048467094719461942318981886387742689788473582231561101127907973243410715099600857387339347763680983029878747348415494696739106864998583341100459378193871851815284690962842601109615166436982954747300537593826389893887963148463929534595894117194696013275869120429957681572102851045287447578817387725001423895155582436919728786751316560236725322559527641181293415860072488671432565919818076980485434681663939001149441044516793254140826424169001724549415963154300431734018974210018398344070111587617635672870519418263205054696614911827710130441567243166732360691756891147859996502072174776470721679655843717723775046190676990884761675785923666312804713723031283644079731529561470502631160423073834251362595238498390349620151671165607222201007368637493468490508302870345232113896020977836260558521864243610540793463581519430430302625750867971756697201879854011030691608917305949156320650623050298550519600108588579851267934267247922228095117798368514661098562551046994075265340268002411822070384310342567990509275574542031497229268734411241325414540518959795828126871629677919903581888800421530192120034078611687520004457391038290399751913743703882974242696810339572781196050052212760806369182894124657512637931448392567681550867478144543290545606027785630090605631174479063098691438724198736953208639789422150006001141742493092283063528345234923997067687401964181048644645469323012543377714296966081150166476970208769478551941529394655901516415842918334681098730821627689260503375541538431481969391276167406970254784328717386101192313124584212062775822890017225618164416448306773982112602867440579742341430961520364163278249281723503635714897510091015741818988883132037399592148547696160613050738080273565761595132440867928807766122057038915116813926713272349417921011671359202271541438164260738543740400241379447096194690392560244442787566897448171445288054800984029817706412727799341766178902830974133070290123019232079952238115319171369777945720657963540779008322381876191083682614151884844438276964265540565693075378832170981434341585168337726521998132160694150746259418717287383479459372636237771630799199485103802744045647938358428195589367644158170724890917033798770222478557746158758115751602012393826691275089132718608317900298391858624503049980572439930022736717094439684933452648762544854661458517825662161285919414839298114411490225134340925341512251447514296947632519031189633099563740397056850043756320480956729363248830606124412364056046814370873562155603955418973794260700779110173125649551407304826483635523093557434420589099183349293837986584170090686670533498036806695719611930338812254096713039702133641972899438033970577825418891717595208250290355896323296643256388027271354180176563928557078005023478093507260543373251550565949255573007973867737227483961387630584143235139488828958825003282593487055880854232164406236788360791328305629444268879692606287873811338862437126417186087051438555608864405191143924266069641875061884586755871491563512206157036079170855150031086749497311899471410631743496188514043848271925670208974360054586815937476992883263624330158143532806384545451016825968639745292933596504943567085665592810123413327345147891420583267360534259171731791535446219762522603066379111993518369573615326623178355521202342327834213783527526068223621816571032557620888145194140371941619363022671250671077313964758907176027030292881773411063895398771770735143567161912069126657410932167036037145360608078341867502378810356620842706975539731281680111898710096353293300341358053750923851279854162132751312360959529075428440243831239706165154897032457729352305724459165203612912237922234741611540597478723731543427794746835801768742180639656058492805875160231443980222324814401442096275059427771118585733489797582258323759244186380603126570519380822463689737636069264021163220420194695431640407419607903021596234695897678433663273577971869704781687663058060670857560742901479873412512073710251751476439644756720119746328804798944989205234208545268184032831071215936577778460461954304199690213530912704844096486258116839325696783594715305003429614595363966084452986117878372960004051544249120498016722353205379713672478950865923902068793025990076143305474949660104030646868409529251369789817864763970072786767729751775301262844274031879716766528159450851946030824460070214314304811345265882827045862275904828350197638554504785066828845376260975612893274378543752597876817386220912516986725617894932274697530133501326870796082762751099275107865637897605579720811417291292887224912106966049776247227798627284565097064449523479260477097102406142918547076400475731394775225300039720587271009204683823491990631191479930349356923461901703036014268803496856700515724956699195122959310356386951491488235458783630387491973613313769462770244301161052463577979770894307020524906670631205129174611371005414647705714154707328302230547869987870539366584572290029012647086950034806767732293464427685601469001180697273175279643054924883765473555173499888351543748906777660486902137568820726685553516305543854480514972151702301519223348901501813435999673717356669665317648500086782723820506900796689305489681918112762865981161928191867931532463871020125987385997220716987064484342227700249540951534718767895658800220868293700547248199571885909354934076762344889628624717303721440083114521338740210272215526836500618082376471828720903275382781236830628246905918559367795038945477133369753392278696728831350452515117923553154135561146980080222516280068437842106401907576115517953768432901170263823594014750355722285248195478461467284630340865986817970069358916986056549304654636354398189605933404833494585047353645497867681723156217252596832360846543152031392818770644414234132869753111992877875339492657238211217839239211641522495790574034382568700069595793297313646408979494206898911077058408113773428009666878310183064573184283818421311139469916096390709523557761946929967496463641394038535139003743773064577740587139369593591823581407912728571253162063861331586056086455273438848027599006339731358156558628997040576789078529284166533128259490916258369824062194301739139807340718688566418784898902396649394045472490949234466959653774798579539260857360556754195634563735600216386186395520075697252409640070230537687583222712649011235410412041358209163817518924127643450928941413802432982557770389159549603269335923559583329557505230114940868590941078667342899585609079407477404689196275913686745088911671718674613765763880469766797032563773408592749571318644680291175826807551001082283663796593774492280956106121574824960806384607423003071208594165204883115284459808851171147321750498504224004616976817067318580200651046935380024962614139491519042025622715400657480789244312881651305267698368701177485069561160873633986242097804796840704847827961194409099220660807515549549160010729352631966679180747800540193100240948943563084640530614290757058426778784351151798166394041025197830694651292210318621431480207843529050299853154083548698912495440735158682447227499905673339067574387109895125855818081522613639280870279948194941756676138895863291350707386759426415143126155163839077863720138357788031962755627472130083366748966275755732473634544311980160180909197971061322589427889188488213272207785180393096808788129981209791847008754096704078593698539491396360464223750796651479590721920735288308421853168815242637317546939035545491584194435588652764633010478000542345735864174480305674624544963587056653697986119979921186222528410173018798203907631242698376076783997739779681151719625773238499197623771820633520748017003957194047431045495771438183385681509733873373834018370086589010499109102443680219682715946200259047220051229985213873189211552655005707441393700861058967062141683355450159509109198194727402722318333256641475010364145645095129801771631774654212010243240853343636622515358078801686452443247407215702926121727548886992559873881444097514265930219235928120751154774979763814617705932188955753912554516630991034283702743528545312624805694993997380064968794375797442302971814218989508622070638823665558766793023534552359175231400836391444441806334203725569615429456191478415098153130040791134662728092273651408371581503316827915940289003216566304949142793402849931221234668572470064227466189271479236660426458125664860358844419209275426210005482864669987034439030570760969031214179486055475097931722565659998271610207211379387036809209582224962619442304944368394987144121406571517470505292629166369762405511486148639426275697125867806536096031212710305915903738168376601960585210957655252317487351534956913694182787533560181758809496062068600370178550823335776539263364240861554404341322161297400832315558256553942104161784276976397782754595996943243534090457335379621470165777620305532105749083082313314601893269374000558530873904515239528780860283022027460150655486596943582336456523973179273530392897196206505344614341758495262820443938193361401642681646733933545467711581042272782151243675848675826923709965806840061285895107060872034689409240792517549491887105768403710834886830605187434234905177674817233864991731098167607818471668932642414518330443532143416246132486139836005888491676697163597371385172917284029208275662516756311642303632302697363916621829030939506888155845526389963293257833915223705087883081963270799167082151825201824027213166643993509098292721483318191253085587468526268970916884009420150166688713582102718645500865327919862043995137673992545156530838403603467726448677938792006812970165381403966734285216229147288515580826627182694653068141174065458595071552106547790328066396872783399989114518778732207278762269132999568233665181666541480317940599911523886998315043400011306207335911568828661472468374050800811714687640108680343869363479288706573049018512896562864526747438697968999820350206325191546100669487799393433011982494928187014380410218235632644289718114742033692386048537521197099439460192199547235425302169446254184614003087377496239692897303936942366362552081077112597385944274609169509948749105968453871100999368644665153294380683734372365607771581092558014638211641844301556291955563498068487758773730637009159377476980559637976247656950097713205562904483507606155699075582551600228128050217605451925560499214504690177550741777575111984989039014257626735178533451686549788743689647327784802653207182120843235707888776155704756755406332274056973104708380732776643801073358937741622161849411868949989795890121120523653758192313408428917491315197163885439734655610116414079937566385367360699132284529879419729857009356267400902558109719403719329901839396373080289305150506952484967093184353931773601397307411445726009564322096489136095794042172420011812387954425694447348805075644721643967760655798062333311617683940043460874701711028876379859815638043981123324189434928540016949588758914643215376538685863749162125156646556766433998072241668741112387368240353132480017060971041930501142979548255398480019927062271433394031109714780109159342289741075030755969588024906163360292368398168250074085222399131163525259384878300233026561197517470223595325367041583055454072542999453433776050364932892069672453992983251516044643630813577159313474018799221090855254524340436214613069650119176072781173323622626294886451588994994110189879358363601305441175538918732171016438126771765087929892691836554381387309299176540404133777597208520362941308630421522633265775706573832822581656838007772471549772287866685426691899083816034276010132333007277515392094641567192401921286396790638602617369015385533283839177039128979749138766373092220450417147454638479595154151964550162613332683563817083074379763650300030935947692869126408297582769121417372051945305186760814096726594645125051188208637015428927530760120533876465150692586592357797181249668293524500415049147209570288618377047720780043238784506965560928826023271972155378045616376544797422298167499001497890999789844612577738008788056102710560922963189401117908933511050267432680341506898713143642247952669079043490654252471380135368651343283747767083255851594791924431519083509369856125417500560370718996989247253149786006946456645551104653364602132208882466380331364228146722317506677831326593803889498911312694331920606942224921897526331006763267354579414451932378507452630264582816115108650133571955016352348595573053886435363705293868718652367936609712736962034568336331905764962794018826633838645237559024047008364363633504380330595430124375240212032542318933574195479962298712756858615009324772089375827110022973240484112924054348965552397240051721484079182807338561737894275208799563962065778250309176182545221614227699265647474550194164179075503222113503099619120202244127489841056897297268390929902789998897717968567451940515866490235906681912117951923252135985097782225132323508794746331331324828237510689182756242908806176376485804952512795388775521488190966284618979042380554778883280544414381041639671854013992416001766683128064678261291575406417263352661481303032645775728585113982554396058133277907865168731652976132941587804602969996779142892520639538323136335122186320792014468963699898483430298856442746360251139306019831403427031852485269196644656548425292370259644153341899804752964644067670536006900271327658253381621457111858102340697946397423906422196801176492438272967558338157792291106628106938513450505468467595998849238958456122362126028953435472154855458105149593845561075131328289765320749083432421799868147602485123425218326559201239928850334395625444738205416418626911552709323895118527171017821547992474315015855354007353550578493177166513874323356857963184444542240107208886864587237135447916176335253336976100049349002879770367720643804654898094516793490581035577306137321673740368696355016916278543065222939462090846960123944285032913638833965780036789438441183907970746213662507110260029850201084627009633357791199353664686799881859355986137035255093950709498613101998083707877081846695444909098668546261436269986135401250635236263097921470356447693669116195118400574447969140165281465475076387281311389444123825508807508006434325945755770199215932536092369568359934440103606634186067174115071860427728106466922582368649204972676649297845886882621813928111509737094559541199186603740032441219336477542686596748374753060036071138487234309420347928540068259925511281406041183147038181996557223495450856449046532914142925356546282348748702881028280047679709422905206213517774675559286743483606608199721945227807615697773199166847579644582379605989118853638073477619609805149461248887871844122893912017490200392085971062587705461358599902696540649891735900931579895959981552785222512381784621016611483841688718501034703085884550016155977783589179744940171775907192621671091214829666645528227348984285696119077365991924983070909553896610578029720297153327405732367299841303076581979248918092950257477965136642505400087021386076855002587141537988971312199505419823781462580294039558806562457694537816245474299147055521871805086566962085151231640149705326703305559185823089928357908329032791667364637326471463397175626514890454654937915819349031544855844717181056975257127094383025082929751224739885093521243592246213873911825860830558924466555435179021539632528541873476745502322078791441766022375354062579166114490021270535401835299116824841074938887566936307424341878427938038912699339016567397136109138255900791823441886312975760427541922076079604515693463820935056954024943506265165375629165781854508749629805714137464299605867761380893402624384288156619221680671587281584018349405462689798378556645183309976751420306421913011549028601655399800449400471152652399402879736411702077288964497425809492191220992405578294311399873466015378661361488274696076484988809923860435390073841374896341491366148964053396636306378839020980483641743513730448451929757689767065641631395437076514653521412913990132269227967597950481775855322036124317229861559158831245529531321826679776638792252247440733264348338976780646515722936416011240910809224325606931955639184009258317769383500289340367837348199225306357021685653808254621619943951690360930285565868355051093834850674969476670819565018961366780919261252364740219077845712173481695245122450187452749081688677174887022840836583334130299358900366138886175557482379278318556981917314901721093125118173729086485680160610545087985480477498766300973921903801122419238526867567401350451818224624196206536057172925948100998826045497184283577392049645445526945850458752761780581812884660074220449374913331957040056468406940419295355776789551241149846911228454287140932872434734693501600597454067672443230477919200510486076885981809772092280932269638490286514658623516322746185888968679467492483635779551248045236877508884847254475371671344544425612205474295817077171228888664748436925477493409642296339707599523692942894852355760560326573368240346039602245526194192683217192039144947413857252995095704952258098447489598744714484423121338124821246326925047991247024372745266368177660755536080595164076920210587296505662982412467750839578098854110664549924672505654735380329792248838711810624801262199482061530600610905241083744521441509876413899877455954911457271622722459170479449133616870615612739953808432207140207167623737072453159176092536468052201445970011512171022595092210466368986194009630235262266089638477958838653612757327495580552132741920405131597285164868197634429818695920135289989342762343789444245084303430744997718179403597647841056206701735818263793347568473463956178004074793211580665096209323995125863104571301850274000766116071308917850384794507545118357247422206145571975743657650520932257528803512114394855113156280581612266855302350776034030043421750134853380642207960088679381622994021433991646664901947857565071422005699042092918338905266817569471574780632389326548288767507731002266704362936006518490442151510094503304231647738487655718132759732554043971438291551474647001502450779514518851366816531729860591365199641503492464279524404878245378573724089999341824391354021724260479740743703157111629888362676856624158657828619304191645231305857917562952852038143208346295023100987497363730273091944382676738396891146025563855349316846814439588950758914376404003081136004138483001669474071432902019713973194573364609908074214811449641887924232811884360710611990790443667143016831988975123393391828930734978442678493085554617356236642445161218969977979822473943191959456015658432642963595240835581536107108593913972937647503999644023469124947510629970958010167883969315482188001993512041398659103442058323293193265496943781773067546161913351026671282582612847756690854412684684160819294671089316976879684824497305890917166869996743058730777123882933890753580184313067128317383875895966897498872735156522599769056573894441870695377475365878857516208593187550294440490604538371210402288938557725932326395570499197625140369142655843089250147968831744838091603853826987381080338068293152647609044770769881468247188691624664982819009631638170242311310952317121767857542913782619309247387621701831604876047331393697169544698661036219441066263754943798019882246840314649025983880756992654064415320495106751208702801036706364303325545572216079919381006570656619553440620940497091440714786143137429771877943402900063494059768776872198096705716067199639497455832555436562297882148517166943301318332306217698956768638224352898294065191564141682410845012462255175124050334763844972308822226874766429718731966465405758370789297174829779020007060453723436278762258920306501673741098847835044052571460155971390330743198854791213214227493649489144338348777542581095507453803228946584045144767032374098297050447357146649667055408595414429014383057533008333054414105641771569126623490604768477577628377749676067297649630183015002548983505333324280548804545379327893409816388642227716899686791951417184126150835542349700979173054944374250207116448543732027498760765219598567900092579988151876934253591996850737938895336118784436306137635712031803629850238337107224250866015378603601193835229474578266470866615199534456123465101493471064420648165232257906025414942798757603940253493412282511911558195842693578094503341999798656228509434569290404735078268109810180527022696928564591824368043888595359293806639781913763626906256496990394486110928928360378576213868246353036477659417102485801353090672560999783546849551317400894817475762229667785764825958080031748603217403342111442501841645910426150037585758586426509885753954097888146673721325470874418559082534954001701384189609098560620792390870959078674806985246501229488476967626172943167601514667751669090521707731753407649741642912896297378333481538457832992579176968198046536695019422526194665272503611889536283246685517425364123585306185483127516822587214678043496744814954629955320841846425436822140657717548979642847129500411217414651478220168433838271919559050956445401881248668846557239527729321163495573433147055583970396089863310731338016068078459651325773314086808339656165320238942092704657297529172322092089393776060293322534256118733872244917885921273832070716234356504830338796660159702444788309314168149193139531830154944811647087745741837474577453443189101326240988231818830520956690432568155293675638730773598102919627255822549104588696749388040636931448048179878113658665134609518848418372355528115880109931104225612770541077001507867600396612212647193159928690392244832775102546775130633822062986020250431955639151620784332511398401384612536611522564426606980900006432397480510082353938254718612407555919620043337066590980846305158472930935889084880721069880030559837375038382655999582939145842740096895629628340917827918250344975422590019545794000870158847318858204487252196532669133852950792903124996073841730361779985575951093086668024365891997209371143511605624215623031673994161333147923922411207562855736211348485171548863862708294152025840715990642446056628987283972369524573008260969604985299268998102161717847095105436108644942329718556440569958904084573068276718053687225854773857182413340034995205797291193651460217268950946149399931466831948850672445151126138268484633640234484082572401338402918544470118009553187673727814214763216239358368405420698751557431059607147687078752610191136037327825746867019467584921627176824581696937210686865634384514027515553092388719865863714608726034270766655534922449250300754335216337874907764115900377017271775162800175102048209186047034298970299930478679320000517752258462240843799935594526205607620098752900798033865129417278766728201788546142453327360207629739542037040203963405291747610254650143491265544346524958093288216631312000510779108861656017138022053711368037572631582476238503593897508285116759975232845083087445086882457820743468874946814196290056591450662126357516296490944996599391266903479883115124710224852785710488611871648604667672073730836771903290800855368597258317367966772413857841187896446970152555245230264617698347849630713744248866513544242735214011149010130909666799537846288196930169810903567198190090550667454063694231063066926246954122475081380974600444928272922411830768923407713919582494788577679918565751604152814619023050060758422405368302374817632877222686986357767655089443655352924501078619324001910198274370660869795978489761245055417021617712381309119883555779677964098339774186836634023342911002455849134252103726228602286433947880207646053610331103437553825400212655813374301701881935942531829433372363280446358673420998007935472471692587009142936127900508375226477798147050545010613521792596759965198959202228655510541725336463916594535953533026351871856043788320625073076982073756977013760487736760465334259436702838890138044643728279957661124876265970100382546199494343272065757838432484382228562172161651576626627705477719019294540145632912074905065311054281024938746543924961527960547247614203895004985807749556230854119055769799540585569674948049555542502347704683773851882818256602900371742328502340726602469774892089404445854792163576343960861591400283059166366128648506200922439506638772789412428364253761602900627400919414021320914178656570247907962342015979522334927890837121929379624053040665610049176507264994082866322360519803293407888242772910649372977341887569051054060194789120516124322360813586066647152453614713583184589286903223638726311200261356752049961519127801257621223819350352086956447405795300921797989427411657659588473324801429245673040757155565897025347681020066992217944884600779731010304878507719988765678463592065465301953002094869235198358093601229735817313885167498185054657348011997630642620588339158610500947879357586599943700863345689665665620828085892480681942633667839842340437145074665276430048225818776574872077484336918601570375062854448059520652783610283555085814932254968659351933114969789831219207100913093066954918745131869771864398529196150020896805583671733925175236349696259150452092304953449309993206393527252517097408813137807625996596802499479935582742205228799804571130647625984430206152562666608974940875751655222553404425912322035364380772033744509975898098401723716890472445568594207741518611527243493981667936961450882565975956320011093896532428701736380379334229740104738192996015884188149361333489635502264424502617197811116746629641699134826773359209412154501476911610935571406653151940041119843349529139333220648843109200703511049034086777296017794472098454144025884561911422298579018947218884902522525681973131623119873721055582599798512999325078566930507624531125278889328033492979543622868738169281280052728798057803647683614266950400746446400311613036800556798717392736267349657793478258783438073433144772475061060691965168327272260396319805913514270927361618813233053517868152998912618169832722886992085286817493894534160621664807510781041294311448177113660118503079224353080480673010748678260994440586604285017959358984218619885653058282622811316954021340732420094660638584355799698390016248847935231204306475139745457253092634258158237338588947692485242443988802013566155353645806649629359887764612970294024608822290518723275236523950394654784648742113352822429161982081636041244339273663801145022347892077864975972240879345290036264632306257223222400468987942103093606686438053812510609679039668728289798048468670191519332157189824356944767748855715364672366295302108679860433438770425732503733712889556120682713627368538405402660444036670618587083859011264176375075495284623879299252524490917422024866197852632126782017521184196608167174869740147354097024419469205233483185692535516504821916853452382323470609111865113521723705495171256635651442213502729836069899828790357101423196040406437366844205872203309502513015904374930399730877014300286525397780856780595727217334366252675927738097491303342367248735390688806384927964243138153707337281894231864823389019773628640697198800096962785450857651493739502435890386706435860148402960187577206932949830719435337461216812572631623782697284494188453583409662492006467563072763150239142965783685559925314909781700503949509086772623232723437458571310871285868466764150442519828354709420858540058066006674724236577862118581531643541381524641230666376829785339676695925770462274781089698635629506411302580070811052666953671554251401493439306050985132644492803545019443247546102034468278503229019404223493087560369913049950893611393006944320285961289096582147776447800974382554549065790061928380303765492216649471031947494401001087030051124534720654512955905516430484706332928782648813125413880367952195075012614688876524784997292674943481416437804835283025508628174756102593225788068459680731554361838971269665387505936590894995123705060920377803012238147563937368268962273786097856438164072999454486823709025260053197734058660572285029992800690421812397083002269620559449485902186254992662417412267581036380524346658092958282506892573734193454949980407457773605692977105658313116385366187182854070608743268194659245061121687473022249567782378613274691099498316430797200286996162600603250911386770133498980211116074156692383674559872629289815168597141669783717679982086117466906715858221348343374762312978181942407007125816825954025575659182803771519257933806131300073170907349495722357453743130663826492448840954645029050883264349789374899452234077561687590062322885126167041646729300150610287827286247288354804500175934756789109907603130256426169879666786285774043909911654440492229417036369227198217660990264837703786445956543658593355005473010846880957840677393351768370226559464636287539566996912002411943520454458892485640533037228827898644808270912900736754315145571852915073548094562840590742638512240370795906755349620645810342876567608558246228580981677131160202831996463866729763123634546426185621440984861488343370227930983658551487274545028058709337978312935103603378140799590265092892591445798595230645887574917483829257447754726054585701077881073226065108852557585564684936914132044369955496838290267543745764895657214974290970374021349298692170871018876716121318549177678253289476934427306009470337766783880694737760724810515870095398248529237187969726200860365632322996314971374230542915331557794024182968946703119187935027430211719542356334073392011460852829884520070422653494154042045679544330491267973447971561317544215096896426239763353975363969149527184937098091301940649140621153208574733273520277527387228273685624883374843734014879602459452392762016444408004740389422270894868026440077482399218496738355498213577039443392458230451820375834208831173747970488250450792180624563980075775396995757390520267363024002397105223694800879532362372742510005551746214565045033868778993698506828730655236757137927844966249111943938215629333180780005412006036602060066500410517272633654042007578874312675485679098170020529256836456380345960558135692384739112678191928103385844620318123722051634332701077375331083843526734172582836961893239347829441492176193764508724926898556709866261769805337566394780419381781751337065674375098422938990314095408809086028164739893737560710989146701148931251752142871452724912364335648208882798733656220590643404588646655660858075819189944090307638766493774541857992432671584400105335136091364146706809804963298833147229206218046491439863971909071913520625952401207289069559951876854405161768875299081744180180879971618656593794526814082709811867365838737834913791005676726071290292334916096803333381206097125028615267239497520059116610427346205092780867889293981038840098823145897621150041971901688294013292315234795637824747692660152066689240879996581243875564352646835257071062908958761955413526437473579989992374419280306414844192056288685385082967189149186826465598181565669221486502937676644491365181145854800824312531768900442207625895412294020614463536705895947265453287027319792059871776892535315424541475488791031505246549743731579365691316207209289240819120715920330257568515879047750227912953724655208122031528385233290337937400926805209801975757187564444024028419509554849077434048748916856695023472439077422282084090680334583667102882157297251300428379403356349453493435865667833267335563094362022525799835488043129154077645357628223292423664324717631370449155452338326039717183995630543533601018109760687251468604185616614626398360846660322591335923820562408281918151523294733364991495459945173977498492340217051164400412886940999215394610418399376524462002791543384760229852052909489008500258997634828529657167100937508707033930794042327393030734818513511311383123899001094797996769149437358220344769717520866346919061952324578760207330690871891820302836686317341904782463703939253246411454612435324864493136396731046683287098015807384094988361805773341778831122422730902383070524124143183977365320988401160560848590090766005358368251268130680608238049183229876216430315750476102803402678790135039480088584499373698932348975338984395582275226334948150027716480027163762403294748555972533449125751748362157705512943398875294444121104713934627605892774365218958724182606184988761951068877669446265325255021743838403646370855186874386480059179782727544868757309687083234812566614594228789297950200415131428548421123215302237792736195640226059671768224788907281353299614397819603738151107791325611492991453334011630666212491909065001688580065741810900470994921362936716974125548029135413237250562417654445418392875633966407436954035623914843200821127140294343027955865173993075398926380626622778198748367986305761862818604663134435440777884084984439128785594071229958899178155412284948386794047185918617857910404542855305427594620724570461804418872202928062063504110409864049723061457849547501980640058638768115292931636580853885506270848893115930538079960784847238082193559093379551218483084081036567915681135749131053701034774776183159554081797660771723200228047707654808764398780317131765004325900038982924051346443581132139477981385071683952480794063411083264040816834849594541311058605537705845339560361280549826026373575409182238964508713437679007227912748019190994435456961930352932179226019272627610716916616766079771667057483526019119765399093670735353995721822270620107832819794504615185267826627715217946355931411926194256185235667798351458849513561563836232420497290667377568597591749857122434855100202463382930936641994570545723652017433589216425040482279025298898598063124170285134247391030394169359658089981682648945228636283502727718009346995230129664243609451654734227937491226690968276013943274838799551445213473423087002185690219313828687695934758661879434694218564256276982998008392164620863515120179547633175651468715171075154895404125074040480892740365942020409821165998670961246241924204104173149584078030404795092101425276601965190021232135584211153881833995885930576931798108306158693959380316587851266089878490332208385363729774876443555363957807505166406756688201796286894510417310311483592003650273986201791118751298067608127175117192534724269199063374288382946836524206758029465135254116274050489961977794588622261662825880046286384146879183568700517521897439589879723822453194494316598403066302239195038439624995389136022212219102331955941027086749993029254047378827178389944790507983323741375209308604877158272602426600634895362575856725971489886067098656872099803468252669953400647491474387279698168371691931768348988551367109176638963218105246574434706407027272694381802153397139047180698366290546144251545218246804004037199332879870398773062810713821981059702606046348711566159313500895743557685979946734602811307303456587652667068314459038122599782740827198303828664141601987664789619049000015850292976713403249153540853830671840328576535536701627902904760742025884498529717628916682874582007469446899108943329562081139453576148599358958997622972848243918623147669415751332398894428765007948007181568135995659040047500832885965185513405369496267541739555219019992237976755421061809908978257611047133590800399049947124827437086472655075069790751211084753709993425652457547986788638976102918214462493079512379163245904300781252069409578913773744544670295625746952426864099673923918630466858631242938680941862238924644472478826467342708002166516202667213073643547687472825396064960763550175406344343963236883732211980206801116066551992435626005376233551194139399783297079085107204024453302523782739124591952130400821039213589987219469627070103616616862114708073579062589325220326392922721023237204220973520948663581991192995475919591479878484611468088917592676406775330565051780991037474965180413627690928178111942593753970812971064170307123143773724353596443157421374939046820983271093058591765396149479280549877226733789618317287296353577577550296642524602134989340825237164600800345951022024489381751506756310394357546119847478172155096564757683333471082784451449435417479820892784653965664727920048440651245313638180046399765965648423128300837963555287582010598907615521599096770062973969460176491152178279733892574750162359253663072786194960935421424934796239999052943794706492351859915890835625153541945951678279474772795231162759663011751891186844030710857039066526438556698946943208470558582193985149599497296032472910258930458532379428016038666418817879230573939483890409200798950142746376941902576233644002563554483318515287977473235222956924348897671318449796015974363318177386869154859789175467330916853868304392861509891549661825257761297069736523054222095407859494426317110654677206846256019444360642487388561331782140430822979387939932277448464389780099123236116266095730040578509656517792127058943894096360298627350733054773846726074241266356416995942416049582567084537404105996229407734207839228121037828922073281540640234118215158660832509095497429969856116594588215629984623124060506536553009843659815487820506142403423314815300528791288776582832689948514005025366070939130592591194461585687338184847594222748886273597966656170468936446704481394229565563363700031573020822397878028759756636502601504243995548765768296660663714868861992071292345681718912493232911135568494080546113033124502980478021916828305538008371797604433131015299859886616705031411796278730380353971438308404764202332547584216134968024788969951054808607976163239100967842694757725898463401430019504336811359462763757502749797251561292456116876715437941781888026229278178617319291624153308373957944454676785895092966510181198572399441400893192072434045270237661842329440540452944987782805625232938419683759404009393004699585574388919523307188660004470441954452965870993204071566480255952830971908383014640994354354961996913206278524088750191824803052396624802773905283055613460762515733765447992707234242371392647793458395704896496610739720656330102349759879694442823651218518591690149244849839908252050566241604918630133746763671994328116304747123143824178407028620252750824987113557136088577380577315132925115076819303275277481818419684370663657054823000376770054769082610369339445849176457078776641205334929103193980654343047510690159387993490470110876607204319007723806917712874412296493240797382300126526622322355049662524640828489537441181924056173317152731044607140145950095849097105818229998647254207767990480321142238411048996407317000554066396016301630685547492925402593359281879312599485765397062607344731701131142670376522081328972350658073145626542830471611613391674316694923294563560111726010798181692752460836162002198023946219447272843365527549357032008477195217335644276849539180548135080345394928292441946218816705476612070291113635882436141962526306507968956775167756460063719820407916608687968216935986358571379721346837862478136191803622003836405648647156346690884332089455620610535869402082952577275169910925451998118619468782565899727206678946399876670818451249250353299650210063875737977353696405441222276207270069059002080624938728967248447388123172654118859858880999122874303840326906781884600985056929993949961465905488808806672874421125492366079519325189143320093971554564939950161051318146119067727253234293643684178954800094477187266336621647144863052154685053390500068701547972590541959210647542774188484114500075749450858972975286930071898905971192384605111953136588650791047109252359730629851739060748406528547336069188730553098397037294083800756462918478962654265705892164636997076942709051319979881955410462552672167736016733791791911916773382746371266071517634558456422343913711071138545321253875154290132509871564547382545318063922353590157018845881645174705538390581732840847756349001335191881595812272603979111654186138742018351320834921609241256287525021176278078825400046989529633088948114992132896217138438961407983130009809409978015537345877118602474937707949025139043169758611427146631226977936444853930429787293623607663586460512921357878662167801640804042386151676837467081083338848899369321841699260263677658411137731795582722615427417243708773543092074367187407589249156934094735351699537777906050390160961717922876370025965060421088294561473352910991891586304520317640393520523766922538457714932108386138704129030888473632390187934794396455969443028725191541879784092841668521091481416904989740762597188479398905101556018924946653199158421333646216928221714624970571463754828044395360628942271911039369457016797704357878943255154327941950757452179950939928673294645488816843236471460187843149810228979069565783411112826258702453443314305703493026502932507727085576375039380381066206785387688733303139999439174422254685773511424929000205019226738890287538634056473984486352844653227161113416904137265282361958516765831770544243079927572587451425246901343725606620954857040295744725739646970725525499852091028249306359567193310375094319397495264410939724594639543275919482060715454299755082633036435672217279784564794791093385092316432370408166380112132045157921886281797095080408986262182611337457443322833331030840050618887464545030213852979976789327300720683924691381533513049060637967572484115181467937698846281932540899577893586667637297096214916653621876085787850832287980108985973418069833690767344168072831084101795879248093172666029251308705826355763101477767631084451246585055614000757181429224478574897228300214293723655625279761824453016801208410757721775983735354783552826079426476027647941420065626216621650292968870778670854742919153720820423696159359813448410916989275132535516581569826204814286067122872186257851223923612742577835586656004468135026152062416929359027669300962345639585997884385228487890918464825997165585438461794233368253806162744448094652174031024809787876842719331225901769124719501525588212499455765808560644370927673200463315625563712554471606313539831397602658073497937416959635907133959106000447097382050071984840384958055409366550925550526374154821376703604649555044179337174562924173874825577587676184844592099596301967440460832887170467378512430086158200464529953240561208734207011415743354617211600105144679627552161046463570802409417586921550327700089741939859285376994966305328957736857904486751329116212079578522339038770385892523858803020572093138971533187270007264607551316625999525850778058904425386146669227426005338255088826757210893780719800784140093548950363283008357817736313589112622827981567801757740738186347784851376118868083439636586197709443331571711071228022404224127880057598703124538399372834892471141870349254271284461409997913822238416399487541183487030613112504724402677127376642683011414298601656413700725937255368709893830067952896693759693502257285225853813466808414524005566174325365393473520186848638786190314044620061603055655140495179894635663371877630046725251099942793637337171489875237945124958555321765501052535772671062459456298004750336124121620042223761928131022652805431850375900656503012766943650437554929197796445694685390923750532704962177464310221907496891255118451713504055931269110617518080252081665531758274797054665371070665933790274482779461504783364037399386321426575108922288010852327093606765334074164022258346344761728163324544811848566021424973048645566511373047388762179583065120144082827744958930689823760191716903981923535488161275488485806011263974438422546933184563670548636325132512593448273722105491333559631385199431911322364894029186380533308610580456614239334737853817627906554732797070569125180712293529761716426912459435361182611581339915499507272294196178764691785989291822343671387916174834484000320137258206856826918290560081173631703821748572550248990226929257713569853842983559356127692944685187051024554131173921830693601537230833195109298326100228347031226688169274507410412650074430177277124655930784004139084441432047674150995803341537149855276519818682665214505559955628909481113830405205701382567816671362129676308216914614717420636492522980699091795213407349380705266517389869373898122284735226662794390549278921389636745737311276422002950653405359506457127851003858453092228617929157242263621088309255534267961845425671396375431665886008601849802578492776776790457086487037485783895930814371790140941429803502346192087963702826298451608908172341064432134320231762614353656105156084895598249730140904865536658174492955301631964136780255687572233032097970532231505270550814742741137315999232719851842941637408173799309025031209475726740865613926359708987487491103705986080648245642906166399038682762103961531002027982331655003298677040091883420348543024099211008523081692287919732171456312432121117998986282593446689735422744857519405035685494843223456272199155473189829538417499058163160085111047385874319616298083355255118020978826796725858499550993451604143330748850262605448640701633594044425669841414949113310386433211623095745408175973876051340264850996550755891826715049058238239499355430654845783497408432209431697249092492267868769834401388466758452636865415601363769319322602540956714768127874375799144778640918502267153578640257313872110867338423611818599081375391659190335006631023560992109432875317321047707775786944307697976345197712766758564468848460170542698023172900963997289652630530200888940888354052879176261168983571621558105447618479079670357947142088597473320390996511007802091090703270845338121506596921496546146286703221738362425982215767483559298325253987107619401132378155256116333653552734846945003969641065540819459431889050775631304673331039804742024322755617762067545498882766207951006970485061128985551791799744023862413156027797990104703215040526520859386828003481538765062257109704176249726703258009824797065840245035299369065068709785717528392357741460213183264514221679832395617465878336566079564350664792377281213407017691371032542996603801595725707570458182909210885098520486266927077595473165753246099085627115752322061657863179328595805592983201398397447599320877323308993960988827629866562173491577582251861601857442715332647928292067088458959032702153561332455868266496826884773504157886682708097251889519190789771466674510849333187187192999746418794219768419169898352567685088984719070972936586608697026969671037670847950118319548326892100294697720698717585494220088204372528690207716793506532320001360803068832855425696068893279689751786400799198523293812177067689825783489139419190896739211335124929814461040095974194069325309172157719235458773099016467732208658518994514403072651391624704072351853442690165841509271225420910673245247081507715900695089390150238516080660700732241408917813561934139510270239686000390405702971626634872756254904789156168047926216271741201825157524844114425369463872054149785084864154286506818338895302784447233258366072413558250812943275714272475594367662108387597876348813444375688181946022836702909582058147374065844377691690591147968096059493739321208787334313155732879355451974604782574590977902319440720578397674972636549273677387256872600777012991972769974846429482208064264274501592707773139366894161154303935871470276875725424328887273829756886735198064811790578584420815914582928372679204696363863004706668689590596257442102783947217496520599269204285010159008742646298194415853595742438063562373572887093355497828722652014713909981031608985542208494121509066742527879741632433287584192188267440691360217537418400902994028415808876897275284591233891260476191591649955646440508194672702658332826682026655731178375604942241430160676600157288465509363306240686571937456425265193283400164524975430427966090101242201217987865108523191693983498838180124544157647316151298732095202822836880079649988895656878052985359562945580681861371664628089612601327434096929864633011886483817090344906763404053882838351895134824676043062071270687582700528331373591753890888956476126300508055984067257145192705307474363113867247347675958862948652446202065228775481536566627870467588459154925690075195012335502207165152608264316973022716271301736065269041088854493294851381477549519413129107598995161744377106727272989659576947120127706855352798921814163393698664762193589638414554514734914929533135489248322281968592613992707605266970329664446914720738919420801029499864530922282454177427127085245703616394895579866164869169960481623482378234211650838377500183399836378769569359855094971006127668041341135596119340677384694834326751398541582917525868065485871700103872214305215526100070426431601127239777041013803914165169947074630828215418391689143156359507978424454632433255133428960852509086912732560474753468618889446826599918617826002800510277776806870640591909868324402011505969754541289755515336938702939694683886311810562001308165306481870860660841725923237206595637473868318604293522141307281217941810994027308531840885287225591291361527871723821556252001465826463646657744150533334387145978657032778244374376322677336251532380183718889217551879542026106336127578443778135257420139992579403572961582814228007945787055014262593702718263307239275700031725129933201327061696514656355026467784185788147130525791077835791959091950743529006485952682271942920986716631762723598880123929296544494437884846533448653793134031180716965718262477986601791700312919319726616540056456857745841540953988766003984956445201041206225746054242329376273839825703982660765924324724053279027759416216306955049267541381321036909852531226965401030674832171882526838526799011919661404477322088276290270106359236865604808755964599642149302743374314221682819006228605731535641324442833452624590361390872929765561051194651599142039875877733296759820450286951261859345860906129348579664886159526412971049791085292514438393122104938337421305457877209927984790699441516868408659724536982450842939391596764388631433970013096639375420143403076076923039806119227601798232082934139102379871141063666940856464117254921768097928649443184409714232582864618753060170910628424183847433701778007836551037835303076281727609821352614768132669244955252936036183688359156578496884954817764841848836382991492344748232536643178031184804952031367661432150629907540723488344875290525481671176489886591091923354768899992216847592159269120472386904170601317755997153594723820406709675015313144276606838574121875903329217785768591842615858936502561286270172821331575651146263308825913675550346467063500169031753434957544447061152317514331028241318023824084890780433652952886286688773910054134361222778459649455334032375884500561079459035825278239088943078506111295691212102422121760786859794096333244267897013933042373769743373298200755761831077754141507424944143089983992511167646015172050852215677413136032390530049316603140161847995541056472312396906756328995524605972391872211125404271111406046011352765514099445535005267102357236178373029587187006018315149596788253343641706723557373913790850876539665249643930404420021807670731683847780185108160233272477090772749016277764804017411171579897819496651413068857798555443419674211565476805803176484979635480079084252434418691413752220407641334065077988201221787371277127546306353373876614629882637421066238891186757296649486914433566767292828053092674561959514250827141336413734898605378698652772110180100849894814189445726804781085265206343550750678148638641648089552221819151166349320791582632526283041578523005263652039673791361245356312104435472071792752616799893165186543658613223537689116205719052159640095723177975310953154528251712572389511733515485164345689834558590171035266279846390260701220246203439059835334194711859522948884908918687291961333305342094295916456623206905164982050731167186363524559883850219427926430189003058713716537413312630720387906605753643082748251841955211734879319180638984996638539449215423555910514416222335887338485509917148233517564869946732283209093777393213836636107746243223484113611662607098119737789122576085776917370420820421819456444539382207512794037176161064430085668412943124793931561656993651109698578407520560041655380411341724387304425385456120313049660392159261668459320741800707990737636209276542864230774293666712093532856908863384013881789578253093786021343778604318344851248534804000138958937944782529723845996110668907959755623053279397808468324311412924544325238872003993738981545643411087345957974388679426979742738319847589132972666558839644647616363341992836123604757418214975834265717593906873289360060128492637448314152163625582877882392348948604504229828932926607691945932097633553410946186457909999295097742192626836084703547389147968865193477041801626003932429090414744576893154283107937093304222108827186010885372267099574194457054812662578729825292029587390543490936480261470855191765087850255618494307365530889528446967798475046591120726569897929569174604370818067234070819478338554814746052339392838210384250178833873094631424583857727825883963651084054178707786511207553241007464826719514249320572075015558852256828975525992165674776369165571810732423506089402272382601218066630906906370208253887481804695830009591518876819999421009382093182560023331802323050779860257413748881265537591736129682697642387398758703188371791841926298504628040275040141545259267588056227061901426490697531571702491530913900389818841494088675862621426695499396975644846761303398745114689210885845513659786933686653629839368089702338020159950287957314705653026466501299108979848518164155362310429956488304316054471719578274782994449553738531440955554305213149226138364011091178893628459098538968308167495683795725594945431278227529378775795369538037151647127300843617742732667107461009356597198266929824338316165207715574526634330610330273362188853969440622390342843502885545981166536264360781243193895449376632204997992936723342072559522413131627966419688056586480544000358733922274759350485609517102139256167902374219805884300864283864944254914765916373104163397137205565606045762411516736884197787506696106279056170007021710178889477543050092748892319320908262549092414254866528056493783359308988046107431102494561475322993863141536741943038111468265762165148628156055272850182271972698607527683034571872347091196855939378380268373440051785794463524558437298572065626858812450550178350326332300435397783941841371402810408405172555792677871264984616757644760025811658461731367004537009092519115694606687075163701849970859665027050276790112441154113985972402888348938502146734472008276378236396922304305836841272469078670893121923027824679977896336100969047457396419292496983973445754861315156658844017831008408570019088390508778117338597801769378721627547047421350842645091342559976392216931411320418506907926500148976012128078015751545989604298462055388186519688210606285170188735392302280312539473668682147054754932403249769315138289160688671401247641405336827521720902952199934110748998310560291975661259960438121382795604302394536452146805771678305576152199729794530719467231500401289832235422004313026996461937854922944748454318391606128741713962132000428932852072249931337695322058654891493938647652067629675064474091387292964111895241809136680984296368182933341852377580658231899457105438299420930653145652232772570414060522830513528017367818477046986529017387177474027939098056350301765011812963334767841970089723453488323506430617330011872653866830437146503189775172551792209161644571860226897068135145165522433914172192146083347537126235134998977466699839570305356446958758455613349965088130726570677657731451613313697392516749402558247175039271254373931019136390662195693366116488983894711338145340200148633335550141697534761347291927467845779706089828856915603458824639131884939022353261818302224046497669609811882237309742564443208121808881234600580430097290193196407653422583587473474381906512090485700540711425607869651623182379219589247876702275815844179498550655974699768483326806570795926455043611525662102788674986674332906503874463690504098755285568472492278209604119168882018381662023370989043714135742056820527863611443272699232265407973335876592207606079145827103020576153151520320141689392108807883969077152964502965352422700503249172255859645013475212975297219507160687865497182454812283283847566389144815188942179260472137656856041395014311692675261929409718793521216409361073663743001081537847198530038982059265564696651887061732635855144822358859309282372933970801547940481733391303281470441241092629128094888760426677071305715236133138350330727615146695683189936526141091037194080330958781196240178678378892794227663088006329392756477507457980177172079062523240512040811958262036766913277775689063057596481126307426376973717627998236006510581093981340628521200209915374564100574947589557265905776280637864713361791738555407571109032032647302484382632855244130156373042883653311887659628036494563630212781025659289472103950088749206050052016325210172649442564762535630501901274147794446416682860883965492744378043562289533367940737560093455968636190920974298213032105721815846886903819771760348482747601185011751586434051607320166781845608035949950831760675934263340402181719162619466465540057819403434948760245970438689156184840862978209731946918309491687715185061028059593873908627918755996686480393475585795899120044714806941701360997540809419953524173353767269974705133400501839392911534778478474346729736325451646489782756026998242977562707027123032926184643504247407694447319783305309948997647028272316978434137285795749765105966684323477511187872885447546112863656547209935393431842353401445102629160199479106984530013990565677313497650092859358115981182717730630198309716614044209495510221517707457605458725678839963595943457785800386271006897139371659644090534513539324880174072702044333973214383593036491953832699020023910280712291564135929431733264862542345619711688355982788431661657863597314693323937620113046622042162510182241309655228835128385816287998952237526614958776203417367279889354218633099685252016017779379024831678452939476904809460436445597375698600577898525103862241766501981614142069264340723165065232929510799856498029543321700303678396544085696505292798434286864132903806565878414048244667084747083801168830550456810831248226142079292912782500863773696224015930586263810793071736619972103620425091245663008022287204419632754903451817133269482595272565578030433926094634812854640537360293757974694413935341808599508767026388485257351971556180199458076481094178277450360105619885172945614702266277546603352244217541508250938557953340317100726396292769805721691870362958742180788486730187966480400437192693154145424749907686559080479112336393909624799256330526062635703925069279407916102495944298033326145729162931828913416121182265119989707871237653995914705987960452025832147453943806982721120356636616613627252526631995420087963706526065577907650698255829587364914417591487842229806230126825213365369892361350353028058919879411925760943711082754438411611854238575241262678286129042618185691859917642776450090102865619628721242013229932818442889064244486779747842098696486437540813594585882389771670600052231363736361018098872810471831604788103964243693954550414068411556971984931365052124705383254549731509265838679439381902932428439271708408722767677786468950476735997453026732165967736930021210920782139345072129769100063981168263746708098474443620207592512106967259873262455715098615471368804876319558796267509763229139845922726259789203075937117136121583188958063522893467764660393084374639127458404459386544947183520280083040833917262806958960473048596621097816110227918915855756572253647784143772652827070844352264511145370993025992181517462847709606042621227602218217725668872593954012599553279183964906170126357980561543476957406730890240258345661491270370976868770098724928943740376308020567395944087389900988062922092487911258611785342388174786266780999001360214598569980680238254561268167712538173121074323080878536787125480271743997850491100114596081950657367837328525271162390423653483955762876939572780234383943652353002000837488171271756983901363948622645890367202199443918421944634946540847763005949057612398819820873138408383167961246450176883851355841624116245769560104289922255170469015348392746199698366140038495650802500350942438297087783057373661480123668469435531893027429098731418472988415760566664452076294675752969556379032789704540659139207996299992801570749286595098292253673374674420736201450646091903028076333754642452325644168992874878888118439675259672657236517160662520174819638492129412161024792309510905493562895193651832907152235449264378939574495398282789314760306324046507171311026884205761912325484412508160293969166804904234270614281756058551862447196194701813902418207622456514454476780639735612288339393547227001653976963900436451397503453209158928684087548513001793597225474350622443244218854248588654669165595130465227050273315206632582699275083717965835816667912957511404782215949488673753978969116469258034523040934958147344265116433445234231235196765449767886203970641102395956092277343270880526197341110958878272387058322528087977462405714389342050510990262897261928229177128561938862559321022063956165111696007334791190313985080700865538879957284492097475991915595356834900632183866490046568474900081760625464548271242549813026127640448999865457168222657168954296061530367905831059837541674582502922424396446867175034753105081960582753390402426947090642706581873885428981784793268519991347030965089132049775470355508777216888071170328032130274753409294733746368592861512768060554249267794524266709666889759487106381393152605257992675621146786754877636823108113385404956051194277238023817297939044614952502718176444812942876462239932195960095759113585363552940873152184447996359823930995150472430916620283102005160520048972203982574689800669322618568157082372185455354138984886237495718746963298573709246992878127041064324326567056277865503384432936389415200111311662810316069023807573479252079827060597945339348108114558247490305893649613487227359994442707788446286307662350362586469419098196630788420182798932645026088757061535520124615732096666986701693487315913772516303654517691710268395439871554973452198018436356869666290292578911752453206726345162872763666128785914248602057126190214389956599514251080505978577987277221102755607360901125577981615617822229028910637950312538542581290059918308706713353741514522312731259451723041067099740890135033925323220238128306443449766144145197144930775219814822433462652239293308835171250091132770823950385030428895156628113964797820781212823817420621676956838248744110995462567669624103740607758722016810658972415370320615658804801021653106765577565048403045078369544157425613915667525732459115138333551910573263197983014411002415877106049993138419506955030675467972863526957336469051681181017027522205224429411013395219694659778967458428196225618801724751135406330940706107222292546785398842895474263871003647910300686284017711908272362258250487055200072909045502600613577836379508661704071829181671939285855702313887686012489241287301944612740371777462549175236213120891599203411478412060236426283450023328486363526952358859896018722738027906151041863703041046183635484007482397131490048153693543647997471419194436515429000584862654494882750845704308692580795518566653712171061492171129452420415411115498138795737107159653322856855767760200467666733517438807882079140642760267752597760427694582480768038092455834530645001654588503032453953381503763375820426752756136464056031426631919782281843752974679303613440847799387350067039547739561604450786477433492419307633799561171976311825385255000752057861021361577080859787081260303653759094914176263450618589748912400276315267784301087851478918219099030598980028532644661168919170850620832520583159916433808223900984304816660371366620905015289644108043236686812555437706157284392975593250853666343530791386710864091392248078946997854826163596459020780621050169237113220181784754961336289685412008368291194158734406398513952325826682379341444971146800782229903359922783102804290486540430198788544631830079101066215413020021873354092451359926528253489106091604960923708420717596335399906110936721686378341248294887151136115428012252594692092478272893643605942699321484183155021997906762969732463346681804235051855897356817807405390784335288955361627052856325125651846413832552415105798372445787746325173847091973746989266747592474597157857558580712428119761650880403181150334843649580823054406886764423665886461397017390173019491996966678396532782284305620670498503728133379876446660326672405423118450779324199966023087354626396352118351851445429226687370329787975543101426879183445369592108315553847575006718563097682997714217577943739483700767208606637042509680010145734867264658193090395828587879507514567920266289681870470575611342398790162598291028929495094645014418340896765621200488455978037341671763835798296127522360087219613652712813335153689680452171159346122203422405731832144152501811618492271288410924226999178469365774687147079527031014570150203368750919093040568552000009889786951109164878748415499152452067251178776357053032971113422555816749715263154364334823268801469651128660788749185840183657901605271399252886470498890963435256481947636787693612057518658225613102105417786812295178900713063928943250216436720509591285184633557547686377581565166754168848151029638460059215350733341621830393931947435732090571233280427578661104084047973181264508575821545388718967214685750619439257810593743555325227823135685701604612685710608330163647504214529913522730024473629196512845919677387929442159019737945921789631595441569909975611611130962086731450984112425547323969832837420865870876529671809881711040948499531766585964957232433191146275994561456305894418775576740688941147653934987774099858539257641374559593222813708881724022982071011624294840285210827257625762809403255347438357052652451725037220609252332012971377436910345244358874789429740293296311294362029402008651776429610477232966871159250585040458700430492823091207474238946397645872615006903956947724188258311808557015718316675681006908594178286658283266149012372359092049486451197812310425465341423609931435689201922007320355392836312307771758786497509969661817961670503591131767907280372012479658390512260588790661480799644549278749423174373804355407110751902062487140299875525104097908122712152931408118181579382016066678687269580418623943619535167435261998428830512594000664068017396480789544751177363750471799211339286003405619016519240047400162619602629071604506188320427577359722213616297208069156294861089968790704049758901789235075475677379134248893806022152749342352951984157199716962919046627629351689052771334067228182000834676602174462389452653814526542302260658749089857207467392833772583201287894842329200518601830248506321437877718295027745351366348415659391184148523974159152504450929531208155836333936195128499622669557278858195753571887721531603250890312128298812953023098284503308370470135346663312239342996505469991382082079848980071072572227434904156774904478568587860126123505672929950338323727952228895605906662982542703819614234950219669582936715655174763721846704678914340396322674421420402492142684298903394794076142180327208591425551492139458548794171619504984678956684847229625723126639130187361283128308561294256539220707262129991012993796913218859717985760212352713108388209197108266106607935130408680252849627565812819118265885125868515748343340031710752579156030049594592977680158741212814888644365773877375176805361300089229322265647785180369906192506421003864883602397268311802281359866435427655591632541652724802509230706423204046583249767846487543963117363488651459471607126022098880049435594019918816744465826359844245169678287218785891629554896222184300747281447683555889717246652842612661558653279382929403698620571928157343944711139978884771307906701010611011240270785602779531462039712570690461620180364793134930161021012689107765058888348587751221615016059432801485094694752797603038740700641321682541629919176444782418592177604220787487589219105358550658753453710635506326816413570636901124179771306612083924768192611406238332838936529210477160218443623190320912931320958456786914028806266489890835176193028379101769411982052634735072124201612287523126291714729915621271609382381632269151193902398358953464145376486392225276729702159442216450975004541113193815233236286177993283039189800056242603654278132242314540770810635654579074550982637378085680948044571169930118035274758547719042434865144403236538771795147753008895227378434284144641410182976304639095231610796317476557600830969461202190420267122603429806564540808829015275221724337228719781019053126188113750899541917310235726204223935078214193998924331391353215388624623166582350676527271649143295442981166246004057906745366975146202061058176851343732798901805688965775735509566293571034025841650260285758800164624830028504892108724214399882167143225018079167009655618560011985360540311745256858541790079152975286544616132067904123369368249827822683256596495234931226093688250763965355415033309775009081279654663966842234274737743297770367379637935436790022013016288416958575663631092335365769826422284560051331254156489767820218651191812420704677568786548859314922666649683223971574784205594939001235601200786935739905458183592039118288056138394579560091785829159561303368697367556275893246204508729623626122746342676586240059483582577274868571181142253714446638982379110482984961111925091397802344428756964974797953887348490684767587578367269168806933628062230573304804229840428160308869039042789759378599645409674861679608395650684218157374331619275533176709830152258817860586685564457730957122543484948701277560158319854361716060451732679859490971812936973430333071584085834569583493951260434639409154537200203269961215832784343450430791664918108910177394319632092842879079969786558679295906299253352014257248988209462590575632058637335145133669579115536045511611186043768265411646538411321645085923884872541936858026274963274120197536396136942605022619798778620571074271632821735706377131178389178676344216382808998464993045116160289351352508544666233705200571715555040169359205395928262863926165742875471708073976099546735629297295774662380213151475260854486106408325471372608920669981291027363752252437362847899165567573787036566477381021945983137356638990708736420807000781055719588100835211631862853650976370583929903688439202621511130257658687046140829069106526152470808016926070630351660902130476075404494264608493579336141207256240302048163227703043874308142293289255362671544735443092527512625121035949015494565534786093174674495257611225358927739004464543726830475494432489912603086773524718147646784639491079437299136788217777395305969729276611284647637330635344307071743945776893046881493231284778711253183506611634113185583445169734600754073632583399036240195908044278387802338567569500835549667031675598708566888441801092578211125572851658226254127507967569864293884476172487155094219496935742384219182466438596700051398952439127302312704954062759875973823831739089117954880718986465068718878220892861862282642803675786443854917040959145620968874503395489280229551636833640148977838328841265558498647501106303853057852159218982561990092471440583114337100317130867311388830958606895691927373732628162244382280135801928030594339718796563433041950294838366066146685358144595484952544990489936698044542978675052658885276644345148972451865023447755756664189101041214323933275773344566035203622917488243891272615654182236889237654790409663986523432990830742705455894507391003494431607561886564026792215465311264976183384953854004617285442754692887204967566985721586493632693671311337993713698124798989468139056652305867067227264036046547996153460705439113073278033383191147992704848135443434148926553009874595116227721974195987672406928935720337518193222666282455726094400596676322128520244070769216843306791614969505758785965159876439276168112262444264043069686952837757910085922868319335973075482668983128537610158706177486024056591891639913172602711163203766420997540442489887960603286811659340653847124231198235821904220180508233939764595999636397161309477311943989278991242600127995726955002464741501260102228846280549756080462368094758914327284556529201880511431263733852592717526478699573471064637350221610742886744020963247038919354256265184469142507875212337951322425418837197584262579795317363474174543714588635417012110205627963210660837912451341901127002495400700696298128753617362853422764903507307999010569692731434725232425626742373747542550944229068332625737027060342766520062316332828467347010713253703943301261590115810417797174587667675881085431153648700129941069902867739490307402747492154357475088295603713089421966357735798712443837614828107216292623611992261005185655286321020027128340453217232386109963366470091325110735889472669228671841602566972816778665573548096659744860389055755112565130465950163136014695292474097061596014806007241697287588475118514689671183028719352708167217607954330081075505916750698282881155507393956681569471124400719277413247065580340316347653608259487586495142841940677119812190435906274026620853563150161435753983900085332851329042993783071971584863350515827492166644865500452123547572497760430712289984960454651246456264956756648368034266225838607005145547238208900650366388295671445007471204337553978963536718750403581703952266026840428063962487244413259446917290328332910088150527161843371768129738448800018221522229207311492251458469787218391289888720026309634853369653824320286993047253411970555864654259458222701765038235427007473887721090393812393263505269284665278970855166716720049091655288448238858538522186124636400920902456388030473044405400716983454528395055074898948777105577999689246107567025326308033962687077707176134653491208686431318383614512528875492295750324020222458519396186951715794046212291080246944960816481044338584252257954315566899661497012478884599429606945272738871961901206747457719058873242991815043440864051031431133592961204895479844573146408617396511977248503712040521560356483254569393714458252813967649128694396031658637719227461591094720679765965747996572120295501754671022524942887138595271126611125422449981508777163863584815138573746014598046059332545480795564641990899465371057372470419781804014061500301622410286648468364226900688247604179126594813193959134191057947847637337102009514349455222554306095935329753194117358180431858589666600391052784824465427394534886397092461768664783343997529772952154164217768641360817912806731005298503514482059359874036597900089513115744641085007929788532869266468468767686594337180250058745228077865521540125704402676335389540438421045394745987626030089604152649001755323993118604703743090300811156446198799766252712003850531835853301672181536096537122716380187220578939485519777380590688927115017932301464992956944859932465841946291576418352458447905408246154000014027242350125002904444481633576937565601229589275768926933678481336778922671307125106918581966445074242435989450855811617772135190690901494778992828612061890853321041590855344101948035979596733458211653481934412877859995412088024460679547116358907782559057858853238134854882823544101094567895284864432563305050115061894125651847659613664058289329375004618720571067918255277845355851504546286253308005856048775541373343058336583463635389880603251841710118554902598190229899720180356587467353210465226904021459821330734104795495587388075135650451143405165308322823446953045604305353040966940080566438240406015367775267461781722843654026111888672626264619120594795112126545270297791598943566994300532141291939680990167527375703900319867737948723845567319056276436272499705420396668241876041715066626481068474922002013501247626412965108913183166870889640372144573449638989663879016383477042609165415288858588740313042222934509611591431630426928239856367325649904619105685037470544427712510121608234986255154954846757756613215014140849499871726881349787706427336316351327725774262277359086635668534952100331112963949346753064641649496693142682728529526164847554229215642764581368672562434545907167607527407790389857925240283321223975480553269823249905619368033859058976595577915783394903372714260274985184315621375969236130773562703075209551086790341404165538678642843107532200117647640195947600926291160472609647260845766241241292778201801524991796128973011758567202290859808596024164988488653599119759434191687909833918465552546774072236133212929196221757076094354274838575803823079149698967775855219980325621180142187832377301904379251806245488529016764171600593088585543905828558997728002081411866451933527250920676461150976173327134964667032255079759809379367126222802049587706042675084683618231788170836961185212412410989649427647879835555949657150848566189545028040370487466226408209386175006370471994202008684431505617977478240676184472491207044290305190301147862235139322403755211634943576429785285935720600017320117194206217361429009735288762608514768288697942950250049263737111575111365647202887302142864485367274832658741787703586177720159002800157741613810661691387952642380091375984139791246034981990848768213917596335758257238481142598517956748055128146827346027681704529584758468422421233671563125564237403858534222348864022164963515770891676306277556125047536483000266895026266873543435493702688362989881337971315808541238136561172280741770661743046054732771524737699194268304017230337705953157722358285680603839320766123947639448437881831416634134358849611224761908386341477711941423374345910883236115564786437990001896866957267946227935312015026982559639301714197572078496464765801573037883384889717845087023643026510571105094388109458724979706372632979835676027744512664089173244519267770971647328484063656235643603724740486245594641209967328347630537136854108161239642170711697834078770659397440507964958927918574739183135789010436160185969926632331044855326840795737572431306751526987839245564126917832844245900877060632459784255331345226235319056428062450108393517440553630911032792318031856238940782786621492472289124258307645518248549647225433527088116148551385949870636863350133104701614627387785943709285008463801826653977563844242792838556966409502371525567246869364729861646942207982891625854428992125884231556152343628063158076713842250694807490461940281733311856311178376804280228534573329350040482364676775172325314207848367750116361138576826680359447353938802994089410125071131372976009668937188668534980656026892032291164318440684540285628491945950136043434685270371585039496620445776733000788585513072686556972411651225365828580012074115945459601703479532728578795227138355714507423524501260880787400238133480326436936359808832216309792814382680195928427157621166850283400735169699914440820918212789224453704073917312506671014551546131259034381092735116275275666114654446431139536285566478901440215134355665667108588681512025595952418880792699424389594063528282566494474279914435136503780306421570400571365495994145895815459680385787868833744779865311134641758359098902993856255592994389267182271047146804116990610485230490165190603608918531064897589396197165392433460715591209741026516554698737891687641622831736075226256691690400130785935140729314468844495539109982469029197426749399721683981584439524364745278509863037102302684937785521487166126991496976918535184257152198666929652098921779516702062287726677340490954027369032854806717460577551350828888679630758970720330384397174795967442353804964433121948769367697858657695138452079278410346750408337418489493002357802954691291694902238517126148015071866570493973918562105683545493657906331558189513855116990256486790631664860516705728488522024146136152129918880420082916969576274047189467027165898134052606852697110558677662939663923969578298361457249619587950239645629087818931205548057216940687620047650194649414061522536157839869454923569952867973270268118084179885048061050481251519719380273563498028755531021184823870844417477097736587959596055433474438549931522809082887121104425019755725380533175058384161975028436704855743301369307996760263181797523395806535098790613698215620107833133433586777184040930484113273711988673453792846013400488443230546309939297526730393743798028757990509359547202754286332894983511837535068353572274589207414153001940474162875884754203335697817109735953109119209812816768913136048050582115219872987015781088299604130723623708558732800755061143023445675279829832958509531557000922795553044527189616408561180495272240818461361518525784456580707865588536211917783367847232898818492731866987931966020909631335264268548282387191208671166734128415425154157777559384893743473257965986724084464690525108098500796128182977452686345104489601775567630869289458393442437335916037342969448755796092151382122543953889270609276896055107284464820301410747055475221975558562345147010197839874352256347186758093417371107811912403606280557965250344392539668705005724440693558208206711067755590703956382390816243938497118510074096081840285931572217760383559841506081131090500476999894735828495792644814343146445047335060316188095814611776802916560868277851727749582686251628842471683783289229496805041980796355001590340361045986836898974106871519409680710905176021431150292414918578744497885809420145088294560551526364565304912319932776491021621554058185468531094258308601945216172447697538623848159534804565375711320611363369221035841629598958982066718139408541401501814573316613970158342980994635620192429482116804437757225003273908762840502406069610337412742282662886483786602486742402730513797998875145318743950221066138034294276093487964706981582237273766445183901807168430797406993696099102595764663257843555736457386719363450078338138740531673518776389183277415181366860302730198492759840197737600576897265834760566264350159477568318932639917116583203664878742877479100198583138781654957799993865317672315614026727134011748621870541727897337634532955356736447778807347954764722539363031845202605926773331392716164750172692300369040841798461658013804904006786172513702273946580827476656248411815566974647000933743423076930308191095488381336140262150389594733018578373586238357909194432403295397112448809123367986104431065046372061182486304143170297763047105840073553631022475295996354966248812363508550019505283370804908711353577765850221771992002921965375920671590659219103670388044955094788062319343414204110229224823919018202872126562130421379190190024300287375915757578590590614590558297819286177853813862342980671676269811718623451837218155564091029232307230347160545974509262779143169314693514925957940107726331885682589958674830302081973667014575361433558396829635063063421744456263864515928559565962886809369471937455245424332955067080324099311904242571498147934603668876845912856251340592696172614531885402095370126309650301081887530255253560016438368466261968962381490246614779707342784346115450650068107169137123596874313598393156494130097290438440156243982569109319012117270336960504129075374973748238793162266293160716589117153078057271057871084343172508866634238197031634473229640436255277137158559874641906298335267159346509105934817350702160562697181603762741412340870749391029283195113386035500697096515715800576611812760433784527549342912333992705848535258623042953363366117364619040459677099536640538451327371599886684657236475544172482833844800994254208262903541515392732663483988122753261303791372728960568608037204257250038572809613934298288101739948448801827946629710186448576775944403658218862911293304726823931989360502441359559328030028829226701796047598469952140081858461718502175907182342084040498769026595069396750015539042663531398248823032764595916176113554313566399804616779282248780374962404145550549144899829779883724733606209363593517105598435658153459444276902332897263464803260671707358596539933843222976400252820344220840845256042760822137354971362908054199335634855572906894878229162908830661476105937205775452588052598734632414721091195043336318731583434764497533252371386958663416543197785021639668369363608189353295348400686570306537487324121159683894709440687947210115630353075638683744420781902907628428415277511996025385054695943609336044158321627701538108744191609828758930286359736848158195238404904557840469796058999238218870847616766716256515548247508535177938811049499374934317452565208429619349780887788499874409616140277994337583746399420738138816611414900767921902084875379262549334771246831294717463219358156101602125577608117999791787934590321418918555106033090531999746723080282581421371902203867491317958767605705757644829186425933446052625447627769011911861677560152581035874788778777878012239421674992000471315324006320949961998990607139981739519718829035196631279824192151974628812147854901617232705840996977168824303469899906055576702295682223786398336336022957461436571992596855852187147249912208434712075406492981758757256047804350062468622599203720699292521808989367294086940387768657461155789985104803795343305390284775779067164923484894924569559338464675894067197648909449956823665683896771107145622491495498518818388105683914066974139840734299965909259532295154240579008706334788868036675255730241977430174508540989110606542690217360349864640351024400919900625968535493142832030679657664755413166780695696547296428469810290013303792248037350034259954108317755439503383124628993959802266039163368809262548249337682707330426950122324267496116995017851765584432393051041345899629677320377161986276261979213162308816188135291908486390292526366467336163647228300336069615793371138669715305777213049758171844022077988908004061525020394201587088043212442848071912776361212434617180551322072139375039451375190692486737696574927907515166439392425614752884121929966766797184156177176486083155678916489671405554409151533839072540055835086875676229995544898311423434336538354091640472219645133055364511608929027723179749532986036586726618515469028157590942042006959174105837379515900241550251292917237386350274332767303288149827688891361738786970370264923227789502296362039028094852044221741077824723735851319543968664833451815680347424984995210269473882624860536532152209172701433532418492790429583757303072480931085638563334189310356318572275910754573612709957650071045960568908196297116416154154200275033136875821530902685089290396796391034442863379895371496317327088406119723414906522835480514609565917092493194505396511541764159155397496459962082810247032297782543981124595256529557855996750901969096499855634927907904310920937414196985118831638446269344942481528295535440569391112491983264102085875326724370685868914833475381715677493573720409802820236698630956248863221123887439268588080120586060289400232072442710336163227461833670747457776667641398722446442676659510919628836218678432194101349064601377190562865327025907320223554312100396733411506091414866532415035666596064468731888592556849886254645312063148029038941120555365544482162709147412330046830852554496922912230588384611254839497776854818224942025325393905009247958594944741046773530556021649244537215139404188967524907215414116627786798945570386869709379570704438704805054657945067886530181540892183775311760013210489226207418393796503328818842029330282454655314983202117762788825827352074351738931633523958301477226146746922741387117220450487212646346519495790229769001705402585227516009900589165337424901141752558376039059126271902340248497446588379734791511847252121361258006465967922203767999881378605868390474700324822698012529611388621429577438250422601851167639880586065900658199116066371789286683407346840099578282142318328139677994196335654549107467827619048633990305667355754869277473044128097002434567254222109854991439105269304738652594869145305720700239324110314063969392504665256661356462272735486768455837170196459863580627432176597876902026322632378391281006638915203318445974718477289829039255299568866179675705276618906324362305957192312079011786365856033362459621768900244019473664662948250440415373065965687075151641111713401295661526440881564861659153309278721403616358478934378446569731239277916665820170998667482736645026033599818917350930158858420802926364080491829013517087044649986652749405095149139032196358302149625583615693372871897665553162263033209513755986742050696848215507174238123248630497926388321977570484705547851879150127183058735851331588164388832298230053388270660041181962889076297652792435489493559536937644783991504359854138697304381178207289956882537801599675992446220656319902421731084365423456730377366682494765347907013228473876163682591276726273512332766137971252393057755640158238727252475806639312878435094250594656991173134877152189532917263514186052115601104942934741258340217450307187183709745664313124134388623707127482935563397825331747341418470047065449698100217518432074133848525964323934282141787425394958455127079301506934619036469348854523575975127057701317820796873620246727807338487549789859169880787130902288311630520250992689452995802193709222234182509379773735551138260147726905830110712391519123845094929141104324232671421529873642067461399327656894892260073877263859911763567581351029628830660844650495352669583590999015918310062369589328571424911198507465603446730443015879979442931080922721437127942057344605220946617439366233633501791188944876778959704163973646706706712988473880405142443484893706321256590157500448274049120033170934226557687690617806054619327409207142184468559132734024848757067658529231772868445122890104054656826242543371791381865263279065108344804938238356306269424170265754936107882425174067971934350188740895693254569706602420633962694250223512673820290056557590694465157834434135637330532290363595370483466969009994174891781094791590315792396876725679361708011181371346011885857192150009131902269171351216482019058616727540424481116303295464424208711419027456233064632688682652869862073102180523678295620260958650536886225271197870397561944234571443368657437449322813377233946214012608532113724050815770936765990682999852213447580361197845708238940023833502917207199489456280567440072910314005633195968767959794414449862133442263067447794658685785438587120019244108894678012862089467888865727933283078519668524483346300108212099555255735327278661416136351383868025734191688022368234173124382719924539977607435266724755353311371467934207164850294477079167959249840989085015855045111763240318725955350013576265751522204972776037884895245833304755619028793519679319998638841833631096112142224031776217228211644280290208098420982310201680590027612176138010336386730546239594855441017537533015501163236005452276292413988385192278020349697495766202541073581597982371432595315318146543729870627748261801984029824128778916767805807662602368079606850386984132126841006243428865872918015841904778651329072124228712112030873981118600781518209336170681558004975712838308188532107381372098975524776508268780511938967354614553993647331572982040951481503001166359265451543011631121946596026105242984254799409600094228020883204378294203922041435025125324224126970200153585011425503338571624691477416270912218677441102067963566952110892356398917295007637228778560022590008153071835158072317905106722572695546872955721362634150238003593412229414628328872888158926949031124940238632780017156267242546076626756975365455682367956422915370494491784108481845103600162441781000170716724677129200000700259790380017777701462853222781374202045135339932304881639411942299917852504088788772714400084060673845240215011414613614474577414275090213572195829791320109779889141063350449523506247705882817623920399259759235068733570703098266593584874333864270561450096698554051355023093662638459001181181485274141409104868655179451279230588027407845958407066171681168629406338970923542530470413138682837215664989281476525931741294817789295893276324953744672094461373927670814662246297100801040089336563061053996264234531756563670631821551931168423116696491273257064786285759605893124357472858671300435756680074995792559936895016146802183793843083657402578795370222570254401579362652249796101377903558303973084074284756091260883275946087014304351351328267045763320057276756464734238071913314115958139285956638972379659988018240340266486367109830091469321442994770558895952902750930266888204248365562464499449944784060273804186804929583158668609957854565638617365481087873444556302717741671475471628849676982245375867821811802131767283312163259384752812173192033157387094884800188619359079675435524182635296428760468231730931234675512654739003463837032480095851883566646169301356805951125518231129058964568184506630426843979473933635148054052037573482150160217953257223906769684393093464313937034202179965954299281910044763019112605784921564207150082870441454099946963742049378953146418502443520540077611362764089618637600272539305958315397286779284436340587791177179590965246586813964714291022625850174573441489442003800743625360104082425281660900038420223808355270287111388068843732638877702726777212630762462401657654664098095288136412161909639855362003633049531234387647888773957703052099544290145672548041460124294642675239550433147520778240964927655815156087829990155401261843668817486082063311527132629978358216688912431629610985755436834335241297254885263107728757944967210956055868552514975819327942466096289842587191144591814087470783538680992414050660061711510480018942993842988346744506359748172931757795356812016154182452884521416436866199332529824881037054680002390311572049507751411836116794638242739818976215735563002271097384851084334086577561360718965196236139618103591162965247601709763867440382559070449174198048401811269091566856403585494134676733548416193274424226915628974992062986262348482193069020931356275710918464193512697043550096731921061750186141980885059270361033660900449886562469950247121859376155416706622529981839122936615463480135942214027128992551679141968057946526661901206713433618699116434114740605582491532217420757085893359586758125845688568450320891064539270617209911356536354934101672651746117300894370465422617783287431196410274578929882608443270953644592552929625336805569523021903391222075280179725837956266290985247028325474292351938720341376060934440839787895403685998180621236255304550282837589054732685193858326037640017232231663353513595762328433668962598128826792932172908006984940844283691873406450046497700866679013952747211321395860858923060488884515387924331064948583276782894304120882013490902667513988052787856620404398365444332119557376948515694537167293527500927576619792350737975066067551763403545850283970818451523732073937030511502551253990797145300073634584947055844948832472930655078746265977071346375158481683964004552865871813897573979063568359574601746081087590186942753547906465128791593838181926162221527616731955762995015962941865707202843398687797164138790261591256228719674192029561737145902979948293502112408230327525896533317261002262458727716587586219867679689476334913441685127550528858099702759733866252557210584772656974560783333537279113795097941011558524132242207017863907307188701961376733658181769783238675753886235681610438319720834514812066008101041609992822295420037730692622119968795378721642223047144817985696532881886388714342339505411495454107165506049229528317218240844770485790008805082824064234620774067329968319249247081598140951344530920059088147114422006041092699141258510309534390550773375617551904029237782455996799935513298774047141284207873084005401633833367822723381965218020666656650168716437114623900866565470491844696463544274837086536104401323736126728469040774695261357602478063937579406300832907758463159483796451406529254354554921872471450163455123043736792263489913108464262489912993048045175379632363601691377677056623127624543667218936206823281875621156091552440539864373382054838066861117266337104708358133201203934044311468097933037213732005480727017849041429127927178446499686272334284581402900136897119064408812124925786294148788751045646355822297394652357202630204478087115333498804970318732050873280132275799802305159248793139164162488446292695549046771069793204615181052529950005950395245404932907319414675722233871157972510928099428767636854795692147916204660936963937763672247096243873250461357580503037788342236233887628101285703682650862898797031193694495388339172399911260929746185731867703158016353809843954946197678418337463390749830576656119379925513775626215988437116381291434754215903877792711050579840016619357258616093969105626266766764318149450609710804076831504674161092613914930695735174188082754866512852010970856354681962237635806408508603086532768585445695613340391859157839356600670496254907809009396233672047544257509170279744135872679707702098724771639296803628403847830391837137994154443368844781603105693300240898156483012399834762655132427162081013481364408851483912813230401498198995218830585428299521579306119051972085790101200880837454618287415446743987143278152747060562493848404893251398293010704378180823670144705288603561811648132770073618001550473101258952743522661585414170565990729392387958729805934972081239782933595061231389942804088247690926763211692191396753531042853517420793101080700400828236753074341691285107153160432948088789422145700925483395863446462340024385552124334493758000634652749802842625687014255485877704304663388186954148240541107332104941691343273012783252312999661092468636380003557034508374643937820900096771081401746033199514323339251156626308462453869571822548304548273756418552701506347099176671788549409781336170230909289441863323956103049743973877757298600399878953742990965198584020936581350514688731845088837287792451149735973624946414656429553805355148826417388248853084689888505047039311797633630359276005979510375202108563741302252142268175052602727415757757639777722677714299689376550584268825054165198666342746050928067926347684109829826960433353355629270699792316556767211057861893598175604721809995299719614853646594224523628755665836013055364781228844089677402845788698097447410989838580013912430365800367950544319004831471398231326583113195889677472788161557231069094372109091818275943812337660009654121850460831830546223980057440825014502353918195435392973550523261558556639592488565546425234577613943887555092310551020554682786540469580768766171415840505589173344539863006290124603174398778177183300801301587701893173897063201552610193416064542849685796129860402995124744316042210570950051369919647197059833541522351908345812861498175148855196160277682253826118255382126880627419788675943627025668345042754685222570772049383148559259741926375802888634603414960336624155374025534654991128506031867405884238967504477227649260825590800859506031531182737890106222944680301119137829471460586031989133173194397275262194143348191812313166123272781507151848208875851359413873970520465432342947374151543280464023717969326396169439210888362330978460784489247308502056351021740097166582180842046134749118490840628288224479131903778081219212807612223415453720942566619481284448426093716014070998583738114720454387104510830837561866695649481739342182596846651383089818802679530200104398904659331129603636011834104841957711890627617986700982523569443925152340594254263698686512099640340016490251154772936835966909473388421647733534535333671564695418811213806255913999612278729716264449685355341742396526599877883701224784634820899245805664771367666791042917073616927813700992460870083097497672391382487978464427188311642262406222435183835997117365364991312333476009042601708741443634841771887592461967982574817589259439937506592652493689074541286093608762607354033680158965716670898192429749339650214756255718798861133632724254715319374723590202253366987944282169371542396357349986841524196601571069277136469374128931697248611181212894125918791829234300145546450438136549467926845520305979613868194164484899087681160383286170607655746499736016912162722882179729915255149653208642946471231579794561094444394528300125119400557061255754347518110560835353949832928570506164696396676940027234930119556837812098971163082100932076322294945179721691984655992341846151252614735322259749859541413370976342803717617049623974230235093655220920358404392468118423398672057166263133193796023798733125491824009721605701596276588593710063330661802034041383073024931801435813060392569635639018043948111336774601498375519410257218528362794754580864689668491673536639435196040693757950023134354356337012315395252575219571159684330209079628666627602437080494500634308183050678915194065327246041930472818675726945317705976806702389840423830737488358383520871185617367550640354527482091000183329647033553728297985105684507233628538176711848910453091957483777182719521668204732898921782673785275035527345771333270595963764863421179620844718617039668663976437391492472370048457460524735668003598466787361027900934388585298772422207430112113990470154398125627903240364403954014580155031893794628266172774993673097121462151866275435137672637513758015062168037569819428069133007670157073547496145381185273047990814157768057184506476371362874427114960815084821166924390043885772935118903293603446734829893645476832417684910095597075495524306646056232992170906234840735235399915607012120253507784656057524982986740975219739506207960198959239809639833563183272606811585915312361791821758903406493507870689329937285100377420665862927769086044147492614769949351507319407197932310870820978788824095660657261755798366353186499875404202585617172939411106216355935223580743580292021665657462071359165440221245570579870255993416909853731441912969853889009482086858010151699784274602132444412112462059173756533530855969242228370029810301712223577033823862667056615623362956350996324254822915122508216101981799841119109809967121302693182867280994917699948133387922077961847707570661549094682086327333397422975218800944600547690818084597959651865330565976582848820847383078474006759456857188737197226362718303619923455408548241348361684102977964158411694665222594118955077341304307296593998874815361603610940262221670489090799873715669041005226112861192733034704445531886655292476148085034650264894271940032637348212620564104357630154434953399457687930181125765907133195107462944998243118843370046014375933430848284368648848453542228399139627085733564896763971949393265313595687256014951913928869780237432673181502938018341085327786489463871052157106826025118419401870635240790480348304530401551813611716698455145757214346960625468703760017108236152517180972280671739323040728375761615936848897257934303936799646223064892677976887885328497727103079701161028405660224240132971519525686350403023957841188953883016134095305441450421661339183239147478127190710073186889354231171187948920483340237392397881952183237778919400061740051556577097139460795409929743065715013270785587531562909726832843376993911111973844733051276015204953286431247937481528713990463122299975359749951820689995462068152401487928600038338596765739288487033749772444712434153254317720932785811423956404023716314274304538436406315569262374078774633743131338007481168111743888349264436214168093465394097256702969489117443243960772689789970850497731304022284078341093110564547236425245975732495550809251263778139654927909349133794987119350553071788961088202622472240818615790846841028105741654587860622656288382623964359238549604647017460698791300550236322071303948859336075511169206523866127594149031208135192002732069131132721869499488346805331048596010499878274119172139531438196418274429742203049771346797584543443759359078480946969427247708033862357748827400626774124793131651280043661317351734765275999800560167776597399693270343913756281501925203133205822057485052660722933766384199221142411056055416939704472134998524445990968539316204094767389357353902276095209376241616096555586201615944594190771325882148921706883902105921269610366882375311652363671252405199947528018278866460409860600632175553396023420186529176766976855297994946639674637257028725874407537346293772769435563251489996200315426629353367437716465954349671663125396762047497967747783980985645860297566942414177386143801167772239972560046367395235513068439796378402214380229340332596120765265449810023737551983679228196423820579001531796823564285659249791719666080855857391116791266634438425315479571742516532484461642415255256190632625930010520130480653591279963599794634215964863949615015388476546542683392152720578429647836605620613864023317186596746500197870399515048336878050318377132605408647511763222932820609026628923760343231587118980956040498727497874165952747000804263158680562225138307254316059498985548895874024273490719363491413020139738121347503386631310015507334463045682017484747349942745454750779173142167115402903408208272931645826420951400592373295104431591733258590839397218270404480812830999167750371890049420948825931870577054346771040295147241882819637610729084408290565869742267053904475975892873376092689594398323926450090001524484260311037817638585338376060197684560987457754732622442110309998775982616764459601935585772844111627648577271418072659234111895627506259433606629627229199944283011118652871642977157668680155918761542465694972873052551453888986515845873947870177037273607028610777850632691169605416301737545838457123567132913672847066168299993645877991982530862364924280179536804957009558496881007722687122801277161299030489493411799991122867388709444791559730656528270123124868126080927542992450808288225619748276004120084084405025382817493966312997620606202973536219553311298965135020834314193472864463502127858322130255342949961716612318478663297952497479096472235824501997790597312528000554447523342509439827503369055468224701965705316178068265693674955205522591749405195868217707287595182547750979744023612427728860873463537108103361741196922855400847141016178918561001477732596836368804908103388397661118245954950667465677572958882703123223422960273487632191892425474753693289648962999867163051578860242544691805948277578326904556397022700167078521493743024855920410742753755512652030745042032901217309570760473970086115140886264752072437628612261398855167147640022763041675653655793676259595498643711512699753994872789040445811370864792151336950374745305453467044910100479851330936693941742076140931460109657431720826891805695258411546128603028391134915375815076606178847837468340510977957292242811176501504931105708050245833593835654661517705823175261299090811793609603580657278310508351661180948508400857410568913669983389760869936173737296706396736818411771934749938993876823408309938212122701391507593291126219367832154370779184300097782397883482985096503057114708911775470346576845257532707433356262295737237674207423543283797069293513882812529313730755568971910214922326757130835967369728804187355692959146345998533913315427449687783857597579751570633011208416724616367721717848302741954466550950628929084392130355259910352197423364986248700463984650370466179542862403579520035081841421799225002371020027853900327958479333245275399018254372588601806525517119115846521841285454099727451446618536505090963365167182523574264209489985609519000226451825091362839505909342413998597723402334317429877054225563761318507043579687936285852615643453221258662775201800468497085081278647396700845178725843573364092858696139998593183614001539273291275481248591772927775134885609891738815454970581741557107000174351468930012250422157180019239933840220206391057374323855357463331267057782543909811788581149483964957924355429521924289799738858675711767293568442953021222420524149976658786030173011910859027013514830733727427459533611910383914469841167005031895949432676045027251600398624247321803982859282958119939322122290197115753569479394395313942762598390245260597123880492364663452551881873610710816541690761252488271605247805540490534818030697924649309736982627665047122088707250099008300266315202025556307022148016120365488190768546894825242671327876487623181408421385342071251012766977264884406052557897067751193175992199017943134007352598827972782971839510753611298751417825208388204111741321744125919318197116902775749690092811013518954394553261223501306249026581496796341373213804003936149493742634683837705869739719067502410947072947023442682381604995518898543844762644549578419390234731365204207401659730587372625147452404457230612008966693554124694427095283720366572368256387443418231341853856197258989017289372585534096319674269858196246972085732770643770685967172170843740422079367590789010409984810394408725694543266982683148364158481154581543985574162798682539948089587375222670194884850172311920297486501428354564804238490988053893578282216587064181122106142909043332152509904391053977026624122058823209021900511508263028316459202382756990156081297215213668644152073240783351115596182879367103596235286868661336955433497966266245365089096988309294963146312854881097987585427129790232409597683083921587907806085131714334826528554108644297711642901788204565908423322227626693767841682342873805708603664173292048584965682755910050474754836997327245576517868098698361174984349185928314221273592094030896811398897257935267653927335168945737738802654824689750569290496132714575864387607386887813776266820858811664391393661914029864008920153373671406687556491337819523668460480616166871124265655210600885119999468034150030924657942858584700230080079538197784772667218871036870936094234796710549996977209286520880222869664041776791223687644355395965866122890326558876103988332900678522012189220205584692834591758448492752084721170025054941687623188079067175726805007283464966867664795219336601198637899791064514070171272588605670165590947933045177302028183588296192134196957529974320933841880435712928786901134780917335584743886669669873887251564993080351046613856128408630070529008604664340706788954416784188299819714703005038535795548206027695027770984301729755162145127769875313172286501735619538538519630403005010185318452931792984327147194519653989932205067351451844141722550008989227040538412462235232601801444551216569352270197242012168484605799814947936545623643556205135929604704890022469241835089104270221693952958073856229959073733952123305335229186123411627499999549125748752328219809239002313884565682964366722829638870954366327116540872419648825852160944658312389798271264076991850378723039744041830165696328790377560330077945374028119315666093947125014645516027671214889237135349346055124258143391123353865269020662878030562355754132332438474687266054235915533170764852900139138148342845529507278169177318564220377579175388203749402468105764804617639191582666259124227416352060226540378507144620740270015124811996652989848280075623533882390992805171023623286488256633425923575655731369087957190910548955572461220632284374331082602350205221058588803626346649881928842962038617539720130093796500430710681943008290077436597017113167043940744319129313096677225373201715394412756548779017288650267327663244334622288773425888211194789710175792421522514164212179267035891324567210493657388690101304483050000331785548501396845222432802728768366969560019667080348123379559146143594370288805773806320196527979382128290691232902604802528796357594881328630685441976433412196904772344472162609349511877468337860127667460581695111649808479673495402825986603024280924529002182532906135883311589733915525419147760977003490690530334463019179428340605911254142157568148393990372713826721714871253244335455802364001672036744901282903128472207331978588537606590166429379816309577247905805410601860192693714746651037400669582078844469773531064990695186602946245183460457136781588497913275567464417281403306271184413788834693032080343908785968694431490057225898387208111718206578324959521447306910132188012988459155017379612678182740451215205492397902078686454216621365334157161937939662483777590965245083986974517400043131863939444656968073177564000282565298004319488269478191633153514084101374243687216908285954388821302654663873305650348515816528874342502543058253504067023585696764444081490804613077432705022865955905237657859987464855474429158961601970411229335915519170598918346072221487818751902721656536678695449885147096055895138530288512255270556233567302586830771133399321153361913522378132313328571398428225727198811992492379995448435080580106104167301199565264203875736009911071046600650581108762396755247405617850005729436435927391099794088697714701451120563850980764079352192983770338538893699871166295578569816751609257120362750286392461032490506268475622192672505341167527285697911570929280306771379046206887437774506312973545667588865979860393464454776861375029711782733525467035271673798376504700059302757578775068683825225045870085539498924095828297444041725997645909056047567794074127389745914520167952917978371428162078309457178855791363032432797184421001515675314313833491427224862558881237782345975423300843630798632587570472182488583321578631889552502610104319537128419922826071422733504836181673089846381925757154553298526402083663049953362612160645652663882152552599581465516510775947521934467071160785367254997033942544097785546990149229105542254753726083229056273761867283468671337654377239971342196536746855247528808417407955503785502244881823362813329895321243585021294803945991724271735668662294709605057060722339473314589206704167433391731980777633838863158817367019105954231635846655674540795287448832860025481770515044554455602609177178508694509549413675732069509995515451845223196660782743566135371318435122866325347606791768007012654700717771275604524619650867020643738471665445059151702534124228853218805674453166176622982849198008052940758315677341256674193114751311513042769519675039445572523961505865890918042797698006047101542897342311219291321876060400910746158888977512522305408851051280221629141600559372168056758082579707928949424281388535753293931530348591917955190039873964346782195871750004266391886468236619412505914226451039529762582651009867442353269323260144668539591651346556633211974982725036962707995156369904573582886368002226810417799082814752785564977923663063021065750677774923039443733200177211219580498676974462367060207846112249793779857776773249709958824054174582107993033532390407141411851458368949656476846960262180098021989580021206161513329479728388436010514932293595527925312192849886513883557219947381097450816012039261304242625130394713554482443730092141436588208888673349033308409390858362109304953833634169658115657896261089585245544044617374205969254166230928424143961834345839766153798346739683410426273066035512957674023612428947778991808561846421041044745904722452238034246937302764568430925893753400276256836069613100383909669685798075981348943513683491447868013747145724904624547630898173733631074139681483641547660458102420353553077266307174146493631276558509001982605769569904920594635320282062607769976810403229313250158872912070078069888678426455168791383554111939023441677184923156375415765501188119395484929867519636878725771560713845830464799292988146369592628761224868085271978387091588295897078351325575987464477746506861603187503032397608232733250661377179678004946733509567879844533205811392254604499229170955734721658628002571727984492339013651194393809537173277341088642893570752064309773579285494094844317742358527322712348480167381318079898131751314397895984448556315935662595850832492504191320053255155097702896206480732362569689345211026717187341348928907109170448950899474266267186548861538104288239224107485258924961364668250688608640095233687280353209803483052772577020635995901596611748177971451482314487477472099338566511129962619480144649944928377078438405094915975219784517769510550914574189132550698850606267098903367857535353930611251311316114587758808767092144643832759719800537001066335496724970596703347690595430875221559667911444837074127509717906337091125161526791777874594210692566179382326460051506097298125192317319424888262560415547016052423322889489895024028072376239195248577913837754621869400687395965187330829285989246486595083374656107760539264951941666151273928357814242542627191922737244555648283289537009170549511478301710360119178380502757749171595653932821517611903081697677426456525229787962707190984482407971742436010362144179883727670751106287306727507497634855330049155373162279519472775413785428350342916444345751152208064493270224406499196621466605725359062089722035365462428349025382394244205119002671832536426720029174575489492066257321800167800819557792032277737368200388776883053208524154721982103331260608229832107181887003013086336168803307322792508247286149443245048075920310557607683793267912328060460783959267227969124899547703283217464843330941294098687741351419835477918407588207323964001443649790736027688000375473571153053742034308431985221825502440770157133350064004093693207518229865146296562092893192176998114660624958511591393945540643761423900883254363741716556302902256731421771724761140293423974573178881053394251323259917663506797472419334436761588156668443387386173576227120781380294929556252537894860817553758339727702283724093496051504924567371832778530909668991910016982460403041619748510157774959109073783921851401097332578796567969497994234025047577337372499896709363943000104461723778528713537919246115937816092147543307797880238999441311763080107519101978980275060367353728852258332134414078990085651423133621593896872562212763653203300696464575127237920482221165583194120136341776551849896174601184400657206831828031862961214455347405985437589147652590102392597752730271796903330920325234347191900666144676273155455923286798763526959026160946346879300355744715547956228700825933055277022215153193915442357772473658219700139056091732125597234712049808103396997118232051677897519046858486679468972701609628610784169199466591825364357781004849642452463601922972973556634715145985801561955427414143276338110009523597831048272875128534901866182214550341953984080331044367838827329115993679444356526229150354538908835180932534498305158358972724626302124069566699291942543524923117231326845351526770302336352760750339131945591570063733421624469138438077915060459796258507575438843275238795316687702160299842674397435256643069606389414651323356324093509678859007925419941632219376067741793363708447001586197852149681824716928791153632680207436305554773161916044603925909746001830166472500624690210125887368064321423418336315910918635680170161075440961764107591411314166510466944871961696121097575601077233829616918257457689566313828054185081115662935867989738622439825374129546897155123314223931045443252170854141544375852239199030790112356446420328774037543457135213436100207040652529071586364366299299105587645779747111368859360986589064857157907729741701228035659395223374554185386174014259551143564113594400515842054156310913296135086046571837526977153757288281028616105526936255301987488660519841207402971351198379015988692860725212563905795271476850118423804638054350076506004035677857103190265352104199453936784227338311122121979616029431980257155710596714535117560025934263001804717852990977956857880762107137750648173280877346684182296430170956743141503606488592824584975424714669603914355446056229032634543179876736099887920398736006814304474444319187087640908336916198986077515946447427131183181939363300013409322161385593291181026754927094285176642216435335081967932498947962656753755153291724621579295653259654862457051437226190943461959908211802965475230914841474689331924446682661811292724738653139672855718020950403378480833271096124561944521228765698870452183847441201251270947265897044268971071053699146070784480118527982353328807856893962210936237921879603593950617995914462541721441430641834272533332886674399346949049141447106549023402571089479218287499396196090893777700263025744799392968635005518224921846207404657530557134454420968618565146895222177876252163135214570208033690138541477124236563909339979424281947114927894166064881342806288393964987959583343168867860580491560848000943698166941158566243881574229252157632951880018663073485984619824246364102435606545755931362704689092248949327545455314911427023307354887473543031400360106860545214175175467419306256175099158690442923804958118041795137515318328171358890333331476745149765783276263101889281702105104797151791772620125665627019001802404896960453889438331785091579601138939356680256161814258127155683496112510732465636023790131039126769980777344216576925081917960575156340111376422408133451500632447184584709801131372525436543863718845527135443812686423406544102169473552157303733179051649524061698947258890570370689130546105661826898563118246199624032568860573966218190140376598694321358129875577311664031151603149559016726661044637570967189825226680811715100249256210282002257956949330606025317858980911083965245811983444751810624123476120021861426153993620624507163706061367969956126224958112403313555082255958656399080914459633402252864174005830587626146320072200971915401951947811643101613891747544139286017205545259713875901540900376339819130280961694032318705039278420230947268425969640830183556271984098738207533991304106735196449655082731922706544745132537741503971026109082855119698326013098300449438921594689438817814697270956323708593977816785045264947716771067340159804514614963465803239577400707532396072577356253309098715370990236891054632014060721283797091345858905731229334543055303958567582700429582758282466829555544102471272476566166807300972870543517564171140301126274197324114344693261031130196961075841997489476867323793847462373255972677572956804174807974403581675768098058835497767330402430288970104075691974087307685094732192347038765126367081215343995078428382001835583711105233612080095254588599418763209299874033873236748438771160553646684957948368957698085165120556819519467039971034016250329356815565186798480973722809889008974394304549038878249988733148339689954134838730435580792776255869124545230756827254260934254370328563616078872732689626873751909167956169674111185429335687025638455934604637780413294812449753551878463301711349252145104259611873835088368771116503544189344872961328637383068227192673108607778480517042362694988150945920543077588462861239596479588613738903546057343313884049117385447583853495304953588237001743440275512734807342329670608676452020930882249089426129884805384169086733408584620782779445316590635180200135936952807874850573060494920730652240929963830534195844905552112131496795811687615652317531517012170505108321333766391236994578437821421511073949347504841813222204155749706292330665955361144279108240379677196886402762461055840766669466668588143367460360079134394683650864160643762052741567144721194676382804061604910292830249433555357198955919918439150825467964290703760714817493506248218464465878397681768849997899042156732074535399999365885791733892755506033994467642314749712085747399332757047535313307774844397866068253465196837447844123487687249020643803820499321635545180128713459237298896947806005170670160282371579817086638440174347558055922958570446817376620605139749044847986913584354729314328658982852660349698886577568466308749047970735237505587637873728964681155379926887760261072692802584057967001176252912991017772530671694636954067554984493857236367935639733717390409322763333726500011474529291909802052205869107593337331649743116074209535027654764811529091617827814755328943792925347386713769970140820796296765706027902389355973629589343563970252597309398981129339415315558858053181619282576916052230151630284354383264681171076263079271693847644799203791080891965265632563760067664807383568970823474641184343775529170704338396121184040367311760771008272724912013616391916094277036250805512483028576264109190849565352921727467005666424671955961510755371532706766131307997401413230962432058440498356922937876341192868630365870928214733442486180293481747631919046339041747856951726829268511919522172717351129203258871657979491773474689630830255161414726118903265693552036039774637553182515936680771133259117316422023949204287598499798289504673097195209570861153585539828913370904277858233787167046019014661080032892658385767947790117707845152433404057922198620970817311929491454672845048511052062714977191508321817685376202038294622381387043717888715710323812288870324713253352488975365798131344327718406101741401316434250432127806207951169787950752822413624170865148700109815634313906360362406533019217595299268478874588163961347801075426049452041471199539762781913351882003931734895669118491463867510332153367685971187509335095438022569689123176784258210655247183754732040175230807880045956238782209179777881241465872006643443885616872700826297464742416404464162631348451823866272408558400614585847101964498065390302124320266080242443824027391311102786774729620603542579232577333819758626044690478607396282558167577052406695150510779821979534932345883612417281493506042493148082691514524708452255774086809873349959221637490111670673640231810355398724170110847589353776973200689019150853230782665428330803243567652925987238242568411826962745710657066828448994031845121797333348737931033486896606704485283223912409815593458385461331611052530641230959832895962363767331703585173998574629703018482248457697861237939302348991968323069412056236560690320520905150907925530119855925984753228555920720852450454333442277375569531569007395154982003399251065716996736634336474221422013710341053811780495632202130078488247797748560782414686336611202582798876211938123016032947146712069450372902840016809311266760480297154772831317782109855006061217688801935621992348759393777260682457957498079469892259810006834781699655205640992261759513885415822625126505681232223587524050816967382818856055945290217856672041972929853891518629650851938251631454634859250051814588716608913727783399989641901792592327662503116834950568858193084978621691201479568596111488963829621268963413623024584460059623605720100749121640438674960590489404473849755772212678564461653394540301070153816413138856628725656314628937658347697746693669642318453205351587591085133570369950819570835916187914640523122455878839847837520250871708957339077685705007149252385463206128145930862714776547144842994787638694726273140331306999770969396194009735152821175659608028836809691009270134320037217224118454619262376600388190043872395922247124906238169828894883032888141228204248107526785392519154796215020773635375001956581014855089149100499885771156745833212906302904496776773360803361265396076978409226410591072670111477047861148345675464854866419178636322475525066111275229708206519415524844865157077003777843503783955227144434291735745409725890239977746292690904600287956088314931187033138025166310467022286049546943277913151523399151847334104082479846638839773555804260971309427230423250670423736363741896958787927365560257507972520918019565605533232779225976699641007230667437950594739053084125177534983701489971966148520089303912125525864447405236608286362498699645193920958737998691006909307635017922028058331335690376311060383124982359818644161974378088420902807025767774588998373485317110854218808933416686139157741597149725269473414634381292579082490234548760189015859360687283090077671354122792613570472524765433464166184883781027261969829886977491406044024488815726591916546816032722493905649687190130197774085231656337852134054933822502110765767606054234679897603252815180301942704946357916433317651074873379032797665215475788995950401093909428904243966140384677908505407889407327479338572876291612764099499436149550551665201507430840627373035762627054420703681082537363102724623734790404939006184206323365461970953896845247753203021939481612245212701869687250772545528961484300145121887830375071912392223516439008723393597209223979294648382345458328421961448354872443785783327183048879392487352526621575615647761926541633312597007863586281972029381399302358132455127523019228885938569695586803575442404745570492275841995601044277562874238602195959377609212547835921845767309280097607804046717709444017664071821606064170060629981222359883421041997725668982517099852137913122343844539647108103010541168604703232824776734115284674536772937759461949976000992675630781947443213312416332659596448714712745868068301426282244451907167487956951659984517782531920735445915493991781585254087321042694133788723018433132723705424996036625171250151904776269358789957479817078191346336817078553382715593887205720783862343953099036479259593780333102355593273194031282581423643103100498051144821002456000979121166829882994133157197466000918433701618851640529590390412801416609770449245604264942685284767093927643575013535267155133461403794461376904406824214667785488464004361956584654547470895448898239950999639376390671423596215206624570481955335993432927631404060266342184548062726491205094793273651012618909350829942449197162435893503488615346627157946420987139706172757881605704967805599291133379405239021155684156853832845204194321398012201628022645145663192502756989367685973665814577117936821432883423227947304899945096704353345887540984630649203879391833538878466001862644349664662090045212250905686077042051328218239263839874291609427866470896813450619797252922802140828358175942939225291504497843430547380649659013540643593465222179431951728961798991379011111257683952647474356835209572373957145095389315550268063685379230066348602375972722508744840006379450292756235329913213671203460106717569793703340400133354458825852627629380700827164504033358408087930309793869505646468157534949883929209468381462922091932798682749289737289827462754357624246073376013055585603750611094047263468281892485297571612720429197341260289304472691177582248080036893232419626755717726185313815859100540655836109086160745665968303394986684332821859019923387180062406110810858528893394041796556213640218755763366978159181829418331576824888743012341933123397117020804871947443634396080723889226116450298040659356808237839337809802954746885151418958375003874047954250427463788440013608401048672062674812157126536214672931107739541822433363959680716444338520415787743153859923655420897353653513433191073947113482290954045992078429879990892747553523162372915243382360472988157916010053279024875157643775652135038183961189178892837232814243996530054839840123191872867420497429847337051840708182317108190122386018494187003358470528388733821405081179661297473974668402294935832914480024227958313417434210024404132242470924165751658803683758085357956544892964500610711786625428068286837220972400149342156619310580865096559772835364907563664145416981873003495170244291853787048389714939661303480457916245586950098669211169132889269031645023667782029848662926343627158728449684321210082530511957052734311951202457670340662169489187691450633642298461716680684810832458251992540559716527188270908764212770612199259216154016173827101725574899141504358585747404969979754522917965365170939612049291129795615526328640608937304667481164852653077824575667333756862723806840699689777191985320842129194174245621881899051822298501244073750365110778002481680745096245406152102313190808105935867253833724636781236979528103410937004069560348809623158785046897334431335666360656500632729070628571837846367577322848511626379034096347543816713249544510164418449043836043476842063780003401107326409962000330423273453193998758150994893309143371138995121878144774726374125593896609303202383277596985603044346586562546349039100106293061660061651571585817840464488381094433611987901669485955027582499702857096548816763636767314027164814664054328380035592533112311389396637778765547035163547422102971239346365682803392187733170971060256297347053988735401280484227416888350357175364545455021925708622841945832056686158183662104354699497865188891614915596571231889588032654607860275034627490373605815074736162368709123904898579447782253325463129066884584118076268130840403829042534686335995028194953334103793779106594016412001416655143462928087002397965487731845181774382397874109903610337508026641661391334924520343372071923255752751727542972807784576687881746211552250618629728046439540513732320125210671557092042354839888325378543935840335605296782705187899430147548815379360046319790177543044035425965599630854026730542421411670358616359283595243801414636985027011722290070663077072348119765000791464459272723461340145759103746971124635533710618718670788266010624175598688744356754231243554833036672691965011784374784827775248914779405953517239582575882678095447528811773413345566332261862922616338047396405299489103717610636514317789033888625638236786694197527230419415272451197360360088647097954037940041659144667450772860462782085967423882345946106695730697274347536833259519096644134845438573270378726614195686685662389246722070880262736228551576672728193655808128851894301525189555607326482863971836755699307318938629559497608634184258537143013254095884699056352183991628191121442056698270537202148100883621629406160317990616329471796206377072489828980016817602769476445666977345129620294346708033953206410288843295291537564028597044505407392083112307480672600264748565020325875455767338569466896325957417875006754831437030270229629024150760388483501149985352604499438320551594592356223341505968760654881688348517560576233978433757312509039339817546439254611333672630014429764648970827644979110136804741926201367138269981636882349922242482267972843492670806673626615595553701983888160353888040629467088884798908954581589525651769056506606996379632146297160360821317593398586361358446869365420116578723758367680398613138618097157291097580036508756945749151297860841817401638153468379936928887429877493022596469106713716331901102618716897518260935682746181163121630496748079098645817230364667861848360854736950962576045764766916400819894789092225487963686572080840653262205398214599780774266363739284436334462071954968256959277545919739906089293322880936795724624757609364159455276439694229914668064238040851829059608070037750057893547993433132573750428098600171279154866201557927523314212832193788242686965379354447898978976866809185526146826582134778899419430670524623227431260652792184853970447172530685324535374489301713617343871153746694987029968073857332757213416832210917477925256237445972365162532513253843636079386642484138046153468428302966546586323868266353399788648259785853838776044499343349096187951954846522349070246368804859265643854679295627647081790504899429471247216620088093754066115349698226909863635359003474351357335682771443344531116846080050422285142381777474533380151803646921189003380912764973236660874452084344209673461338869659857612363792830481901820358324036116733642464773288900407257691818942430300728377808635964756673876790185769554805483505297779964493281349584603036210355585031368445559035947095475533138699708277638452587995901995560320026005827820992517380038328989290985438848053116272317514055814840479080721779262277943596880373098220232999741564786209527846702375855445990589901325537801302563253111570097501653986706054985231752043287646204448616121411113042029436467493936116369496872713692861979330702012886007493104595456490951770127272657070153233944294208896902802058300734082301811816710101228403263789038073221242048381221650553755092673473036834552765990952862806432392874248339702806844297754851893598005226958455741845718784126308937640670597127857305947382608502790881656369642093652702844690763188384431397455175767253320459928194577763030509905785896792244154682214141855623775921242537492998571647711821067230116609820619875427171954316520523728493223532204758649393011446467162196382667210114770839350623433505897359911894573590483772237456976176546946646970729115941893061714134855964871288007968665365812297850908971398934925452375652873531166075881401030196569908531319116887682437233125201920028951475970534610545283643636330755783458136527992431119083581489453660328450177544777238526835116489925899983361273009830326090317240367978117695322337971861025261413316155999824898265563298676862641403497376945624852628578061232405453235472000923356666559522022159906247344134533259580616066130527789285348367464529661331072482950157089655879164122068535234520613263201316291369943601587297869851423690431156148084815027626394053623270130882767797310468029042396812992248510797079198402476054566978629796661100261693556109481034275657024595945473653684792407898062664058252029210980647384745493031811949014411546563116525731416927756016145122425601215788614560005835890250204815432321583575406608645102328823760351705810045033435366450319024231342623430925935150547468294457718510527976006792472244859825140526994719712223691200266421249364572129321072556298164142347265288117711403892585111448784315797192678137584845969863986272172929338447001668740441113931305424701140081620727027449910958518918343932768614369360287357188433487902878831446615302298350522247596705356927945637966454285196249665704204312046540191808275545436647201679283831588681636903135266567862549443321670100888339265968474722375839308224018293050773590787848455999010167075978254616290147476073171178011060456612486297235461301070391909052163366984427078503330701505186596553635963651275313783263033624978425349014699261619941487225434849022467072826704706895119707220325792551946315644010042157936834054716387501023362303640360004815408778009481059430551900907407727398547156445980387257587297660092830544053832571243851188361882959961799392891853064302892262919172563949427669607348390315594559616284299941727246426701269035061937439968264436677613810020599677868453450280220274111440016622771172054562903019138127577003711707910612512624406811095347510278787804094747636442969698546175480730319669091582336503532819430676734757966845726160170805196195113087801290541358196188693550082715706585907584391585194680686454917428164598168446698368566643082298236871949649119341091634891452944045315955569408439435639064869799209626206506936312496826333754059967285028398428434464512453029176133174247195062186294903128460998398493915037648724832048094598664296871863585067933920639471061334698887823273183337005463668147106263384421504133773275332814993240734576756808397487751860754019933321113774017910621393615919824301250397923126534762787146129525375630010147192955548706259407579054800856706078293145659733241654618737198790370245725079765488942939899839054329935516038482840274596080533469814402578384114230603767457810702309202298309904519337212371216314663265099713273300779853034082738725534601824452095214390792132661883791169152429998996302538901993651516550641690034654554963159037134938144224565463192925583039928372141481884105840909914927591950593544861345166793644001974532303717844215832844777147973037245770032503627579827539854703538725692608898908519072095544972725460945743075166512040396155277387505351405840731073136832544958772395947480888315635053785320913871869268550452534631370698777616952214800487664421880631620810941622598841484620979612898751330270838611247465115059294202658179192450956486740038357423382645093838389750402554895697116867315596265050762995502397976715728953240334031518550679197743363932091786614354199689310316504617782872374064100234031997101683543813832365648813608582292809617063875728123020344545883186123816732661002312936874795555806095452443733984905448073488297883277873084404755288935494410519972836897168122265066705000388321412680184027684126343402619443044804512275550334752884671986994862230094947185741508214134222307896239600391707171488303855502955449856666097648982239877712823182605506432010462761319526195939628496504565925265417360206143069516788669744735987615423880225022094362768784686885286535327180906264448422781297188154870283581166766179452275568690887448621985427759712529996244417747729601180371907314084859669679577154011720622521460319004452120344105466904364892952155549532413216982639425663271597477734720764914114365408687481163001046037369610848913019399146388170456351868175605451112815034247917375454449969194965708399589099581239156172772723609947908339054113024708678690195817255103225573787369580588772675722668162293203231483895735505089595536175201301701268047340785156877005408026036340094879449464778795267977923230841857671598260936120660501463264803533831479126628238299190505911548354637382957609620063527338819256387136987217419158145167863441105542655374462797980367886845735075170874828662067919351526650729430789734532485744255383813517283424940590764241973640628074451758858203707501161405839355089296582262669259534057475705511920338345034633732639293001925930035688757017214140375171978437068885292371111572589062959165157434930642698371301878305383443305365318432880649240826498603605389436773076868803005595436468452428598663117982854230273203554714174203978536448187761927033158987269995219062840987653966458873417760557242180622842620648823666174084464519902263349763054191984571044050096938615439953095479927034934774187259587368336129524108424206075476039143907146657971955848757861063109574948496440036128867745910570111651556751571135857566137310340329191409900204536385843178292540193270300283451592525346478846242822972346902814520409839476214222216800714183141293115133218560259342147568055499019276105294702227224432002587499758702083755328222769818906486009207855065393466418634308570769315991395427518972966066669374811659504423436439862119261277857042531059930349018057467546418170791759891812172237955510201811163370838832254210081727302042377156454670959527563338671102437094429457991292619780376049191155602003228661253555962976795057991240531356696224070114168983892154339119253625348432750016914979891510102977339199558205731767132367232907732977254991647109077229869630887162475807483464780488884918065691373501617836000738556806922416983099965412565133926831523385471854623395129958217133512709635438531653916971009661284759897482234612685965080294467798274260555447125671533306150077844870615984605323201582751446520292521402817385062095852714914376760076457798112856978222106622301989260986478343261874618344864622843571725471402071847776978708849274985115229589348777243638152120705925515514131048039133552621138813678523574259508876038411366876854023296190478261210155997559925232332307448485152246737865421985264279315846638816333243283506355327065668047041199499365442909925008570183214119488042145182217148249035274792759669340537310572385270673912710671092384228593035364753622906450542925684133927373162937935342009181522114011310719524031911655088085917799099463238051279242105764252623085955191443731900017977278291947094492088652521766392104340915245542494326066571013846619314643459856180169845930138539678948057234322020473172005713559324335992502096916862895660214245147093937964690104064232938333695265539625537888786077146465470080144217742897050554423495364070610574664143143020209625627622198453862616308728020855875341667115574577424311026001468726839138254194476934711314238448921013694486992163842061838494478650737276293026221792119983054089092933447731093274547351806408994003096939436074217068658626841272041319896650252203637364667017032027619694206794188780371155959896591356788995174796770481314740988168874855325123662583061831360885196179600817149305263921323653003596783877954732904459194341312877595139312150711745187612734525875147546560473492521801061978288213697631521163091390645046591763108121908628213856594688512873713355797028031363810263095366975325214101267666779512646894358299123904595430779523329242591014208269676680244640645002762728955793131103094992155936251036457781631987558634012407670900807855591517432822445087755987595519670908968191031765551617521062227980262806817024430534458214982566142078947093784856355736176414144716172329969918925620602145382027778799297265822401662857737324029469854704588381618462848527650770013867414197980022300539720977951946851170620372449253074090200520497466595940036499258591958524864479876369748539018454346183879965987112938276955908384958786382958381472323733719249148575993257456128220834872265161969517892819649820981118755136173818783446038597982570390582660407515898140179654110401484602321163679317013764712841821474698431599877984499014877641414673240733126898880170282428013966023094463294600930539558330017609885378731846484929842273794949593346053838549959929556893815118532832377223486769990983145973018432782195842854143482742218739109141672752395840390493989625567898478673392313123543551608809567679553886560346147439203830173010612883666281881835153402283184542937634065199980814506888465585266787518627330448727880936890602905371324242203065809008412913070717161306672866479855524718552252745887070681953735733461009129592059468126719534426195558868927153766801424544935382900868403305919485455014389076802602083441993431198348757246554985659649715621797007837482956184960082674736794720277252194758876813392936630983032419869064657568916562524110694902804103191969361235458014405055678365122402815037897060125090040196978186017182807672486654188563790910840147175563162211756317804936123863409029080606419154930090065123356848138452683360851250520822623157067736311428366318595054245954508820013881794614290355926925481731032101579299736863076512358763550147293616708146476080231614558817513591725389457427597660307680771128499835765813532194311890524573218682811280421711212998841757616788510891012380097239459270481562841546435325320911179215560790302719314868788915232919215552521716725602240284392380023997236855840397087115448107411502147972649014172752081095534760703621684918063288731898878713237093534390272235418001845054405401334978373965040753675407803831038010912872709814004445578134299207120373454478031777418559266505735081098857101573156765728517213779702188021755667496185715478451752268240509268731848144660806968409409487765657525675302774643716421842451577848368537582967336181917467019210880009397688022791726846196656551203592813325706384211123912087161806889618933305470747870920353946994228309838408052458040988991037727641467920421145705672823864952416776448574806966854621345662727714194062822039484912277874791132798816681025477871494075644978789970335353201388241330672003336005093163454200102590452299322093318017639837598165292939933509815146406363404149356010412794197855390239135274774879556150451172639287360449962536882962088554652935051947381140941960354673920543375808057327400140068090120810549256924785314759518103974475848749660475396577404888285321194994532444970366478624143250362833881092906248830568769864229206608747393686505216901715014120146946152450722533546986312186713283562052667699626447949979560503566056075048319610465765324110861699724751440188565081459916540217943285703545328096190050359550047396576778913306397545294454081251000130265183382906599244113673236191436110280766496968477362810934602360697176124348280706302602205647531297651944303647263714838740507879272492951822695613898081606751026838798278588413340028071458713185141745873776174259253125823026034649908886980018653571495200784412076078523895183316870674791424793898378243466561464592587827168805611347026787982689408106857606792823344755247661619381548476188782846556255313098517175738187771207102703547199063535858051022919420076496928516142032698755533087051371261776755612053854315439601880310650016999869890089608849997355486061162700108071435924801396557647691839765017096487760694872477969510083066459720915050708089290968286610491811965143682792234776765339503291423337012080474842525808206812896652406278186646566668627155926831599511756671296897895537507873921917405704095462233871100176185130430210899184911385075850188185876642513792007498937926308980066277670119499229704659935888892303945890727232783046732506033683073732784988996152228491083207725169605876057703017164164758586191103477281244965021895531318401364036959878534842194073638421924499859325459631432539300939303338634079226018651069105210705150421816994815642244337101555292024782133627507720107596823852386532791497901695181964111810755087385061834001357871330866347962124408179635038006801054754934949004626304105048785674406158365877647167376877758303356844260410276199293342220325764047298648241623059500471696573048972963964676236673596939545215906124172582166784770610007271587446555227685876966932297700831732955590395075572087170632414594250329246233840569406782115751530240296856996789565514845593680598019134331583348950269471026483523946464877601782719671830140868267389910633161286132758734835167968184093000213235633474291570176781387945474021105044807354565137527818284768542870775069409246830777135784411966651239802492147946811875824806727216480263049592088282448415848826073429342433393365730339937447255122639778286892377991583539160304175922850748678046586483199795896348923006869239022540939286612780591624721191633789761093733213604471737321854942802062368376667308362909732012832097552163627405413539268669289118167498982246641702236411364038534736104233986160864852060613913423039543559426791698995234248795573464399845270073014791556854388950864506128904362080467050405904645858092497809286230018727043406200578521876593968484775853669307298131832099822364021827610651193777043564164234956448102218296628380838799123283220036446188637097784806260292004565872917294511241903848290640777140835071914103376246358001907171064812619675740003555577891737707680550295618424905300576580637178697284770262973697541248472983278471551396213769630709114371268810631662462520398890039590502803543413626785837468173124660950435320357376416296594590227236453725596600120109592923274651721438324530905035709346144839009936855333734053594478675173208531224093740711964589803560753716792945950126647918729720538024920885429394843737600888051167211934601011369389126920627045369856978238071266450631376182490948897858978059682218180080423057964617062043398994949620230825240604471850315308345899766423021787178824562972376632594747798435012287968178665257275359716389304079876040826663042641658775804736855684573981835324837030622603726863940024222348483533262638722182504988067506295059007731670612885725155007196685733204536038220591743051311885176616723846105501402947236219615767096385431490096927725562558038390900813399930647815684033086055261661535529899821013150053655771177620035123527203419803786904003124975828085737748786419103626208641630415269516530648087730128469291205551455511165578243228689079037922457502782451759678979180339445166754225246574905751932249060453474387680988861549544175348940677086026475220883871409100080621470934738951015115649306469531467021247330589531862619532760981755588537725573307889633315664171749116742974716565274847414125719517765667586372453474915477743245367826033223777364191761240406273888381629195049259952810075785312192062931683459182907381403892981861798968829368542966259393066979333724836365466636764245255498462607081546247978597872544410174266505706616270969528749644629086219472223820165693553179446775854472330940987441145318661394057397079973360525220029924995848260286217377625771934268076242535296676031398711978937492708387099434997711368233508735250626202288700307997096982521856892249116159053010217927829517183757850081239202072668903613112193145211553167759025758914360413624725621374829244950768705516288760831557626066913785389221461977607575789062188307755416814211842660060209814130391378057443607823812120447505367463207755507049603469679862508104184827194661191460032852026406850302350325965195264951390889284817338944014488808394569229983096700522427600512397312954519278499027978729215627042953235854234364692184616111224269703980319467046456178701813694177118480296942326589043088766300464445116949177706244677594949211140206280188067530748275953057144839526082795610708634968748345705378698852214702329474747970026109967186500487277467739199097559832277243206925336761054144503039314655956958994110673400049115180744500004938734366542142026091146604410342596430376749484306899667314465962887712229605649658145261252412137483162786995738071501143477327764561976398141916814119371701711102865188692747316983927964638252402032806664828395706318362188257524613723300737883316419878389606493634641836747802578181516036471490820760680800125978057317567670703739499561963490293157151236032414974214253799809038215795619284380603207195960107540977513780833494745006037378158212714343373757229015149404134667987815461004067095191598920525554202070789136946196810075180129198271618972481023392922389354315665231325072450867866934669368564935171358329200385286242761905384557730975272923440592043238507341482458966024018827625343939701301132892772214639585231892976116355934702770304439169494735719109191529081868598408285317170273036195522317841892578542342513556718727301785037702723219065926947224322242139470838151462139364899286488229737825823796599240621896187712004187892206826243680598284885157588723181583861887940420804715242907754010320539805757778508520395182843395619665451189315201591086758693905766683827078481314674542077327353329016923654112398444017785054703920718850719192545872440412699721284571788249031809520620927277298365722617801068400832437474183402654950745653912717498450188019694435963922008615796266094749250362629506984103365303847165894357283517358372359711622469106942159878538284627411097697242660476918347775494800932585148886888945392964579970779233366343445069707146897459988704039928061465438743355590003582687735696123017622831305526422451538199354513090099378171265244895961744039643212281010851386264682742404604421230625253760515129601562815048112546946070247990371798490814584293071302193463501225543966138339213069414475746741031123385589843450680894148140037840928220584340074871282627931081421038071669932122171120218848105899411003172432629919709850201058417554414856637661439258255794871483062720500694535510344052821107652767863829158822441923187680848196793455813738727857201900372100594435871291192462084420727433401114311145162148527431587752563485159036898659081189247286475785942224317145585658682488890551871750376081414799851337655410956672458772442618428344757488175218522178864746349323301114722783847598988950001500107385980378736143275566245043011154050281326930093233396553440443966022347848710934115599550986331138088095488937545495242999487565683025865891905613409201815894417587275755710736754119545010314777287177257826208648024267051447727031881511554591145153620179307718083828133902852044565635247150125146899987719958237377433031136521893327648416630446487995640195325476900029394891994662093266280817587135778992169076154568067314186161935366170349740904918751186698694336790785862470225374280386839786154542952039962655663475375104768327529852390329089660744461592530449367609777929684911740302379268925606905141893651047849262885382272038042871182605004853644773014797720057889877919742241210398570877080554262617049161084160265830159613988035394663119613564155899396377120918937944055325751189116968072537981015608319468717888744345574600715811149074207425568707714830772052945365348873585246325534282807771219866538741998361763091512359072259172366107148729134171303954057449466738516355362062899141919203382165649993967862893943788291382593446102940622001373131090678820899499333889404632785028719107916519019072700361158158197470169386489447457949697814473319737130639496630421173250128817624900977117876291688732936711586685491248080313163065217463154309905487824626417744530429516026382912675648740504205913280313931253121779758014332180682284156387889668318603998485334879680520057130278106089582096153476585593328306411184058256560264254419905552570405420077036989509010098163384834733466806909583060790975407176312988694857401183509545073210969288342883894337436996333034502470101461039190549645560979305758093290141090260791404810363317764051613335978776408485956947934314666119380957228036607019593987285187280875160462485483341864322638588166172644503352581690451146542037712095500609486341887196474910457954699722100282900982205776345655595400673879082434031991545429624154605782130256614160602171009865110793319030799807740187209828803446492288082691590668138577581960559756499587446713111505879080492280325084792981267693639850487772188074496265504691031104178280597322064277061339249176062104917869258341739054626694140018411651378392830624240870721840208319043035454421920428326639698602310118179176905099597206636161562148660188695252070904634917637456916531262268635061210503365547512753763881024106202474778845129875571556167277523923658055864765192038995322037691424340150104835459827866238623620070391622674405482960618785544854809317385501242174571342180929724130501416716008716557741330003537952647550875842835755906334821408044722921813751278441158012356271282333865263614949681083633934759859573871562359112829531569710473618624687190686391956998881844680653311079012846393103921457934244027323563690274140572495521264916062403951939198322274437056155296757962099271006240717727781027435411536410228232114976047279327446984193790158849216769221850108327745261382301715490890340892452569750641052722251793440716275642987854278977899172830137996291712752261023188878440062376231387082812171292712784970676938241137438112018640275082794563359768138731010184747949712735232658737513277853804597662341755279168343784850214435496758171943941058656269423335115523111631532956090619049416791509570916622690272077987732271234417772325731585594556576852320684518576385981847716266313574886366246693914312255274894255208658407266131616458473265916099148658818004865913363471371807825933355808069735681595984584327378632595396774190537225310891496677548214315589165563684582769820277907429968276597060457798584010600280875395792786101148949136816723307900835558022534557017623278065740025705211714353041423894704463902087885693739668901442470180114415476852907376564246975400763560808252088827893426543607336589441809087498030008228722091878302863017879997837457410728629782821690633140391899907837587761042694089903997976961125211485749056393760967765045957381608131462669668168416960697783041562191099314732340818839421759482118278154432339487854744831391848533941273379680042607367454936418644147809705861330580859731887571890002271018976196365940459916733145916958070919720715575808389401908722229686847276905856787711756358120824532035159106181394819208795756813831207332806539281110831902659965348492264562756981539761385218097310344030171847691062592808374264167366115466042368730444214285763802023325983028041222405801953689043056853314154608038497965032479043433939769090089977350383878363787902259151797917059089540391779990251802152608709412316202171421228161461912414657762963466943637336754881115462573629918810720631787431875926891936041492494366933804973582294326692927417796764495487216747109821003699887091143196595125169208498774975539084759246287729949358337242974508961630699912827048466210255247500086955673301486574761090843407569221634033955950704915334474235361569183481923508031385470903498208166379987588009633102111559291640134873443058819738023917043357435452502680387479029108389461124332667968264544327360298288149389230893057648130750851775323017876785884364402828712027640427571217052431263137034895222595940293069236302686486654362096470851409593629766024781083211205842951800000450106718809841869369586772841111488023436801104694372813470001115539949205446660159026876251453152521847944124803324804920847397965642763275672794485005114370842675939889598264839399871477452452796951610041249457009934544403713523221976128760804908366933361246593158283989404129821462336319848652791708912350009770928837038987310788983995080905742110131834945662950657968076784590505549317909168015611427679019633878428460674984011899319426489884945725179912664168815488148517725031316010734038815056126721229635354542906488906923479665298787567078014675734077877875494943176646828744068818467427773304330226252075787225648579811063599127601860822901903228871942734251107438190093354296339567541865245079996924024230043233684098547295933699076886648266386215402573388862398511068804938199193682329940791835999069637785120818342799801751446512724440642729632535364437747610044429796089565406207884893843781812990797392937851167408480938472583223523228889056417372923439004527409330171854460552362881758960264614285057874842307481672493738843187980512994175407527677942379274921873977762379402662035291608335733458977599721201260173357426198974952894760126025654375017610783981737822839507756841014055703100057603297348888507408290634213550161562387900477365593153199775056294613937304044256943448693850250200174752967302423402526682352830598276240581527885180861656074285713895879178724493249022186959351382690182865641825631441067985334561175427040878437253040892727342909597963266694888053535789476413904316865787542086298684921337405566296432429652462081605829372174655245334650196267564476637258956950878821359974352125461258445409149362688210170893278387233106407328888397852762741467131730397730806700929361044606902032670879857994404008847921287805030093633635814660591776240389546641091040029818646649243869576367387264951496682481603015140762988885807929376082707357351272178752493506209543951244006311956152791127858579982288501891804312556815355772889663117483715402719751118773601982060654520567118029260023317837090970912299997833958901616430289765953792253808067257843043624569147819212488061056313627640127661561201118848614541672806104156697631358394832997318049561413605445578060336176934376984088251875148774802114752289835531953472392625217526671922506659927913001134273360301175450036197937363402796942942241390132876774589852814392448549316920463716512079207871386870873768153950943759285312715487958754821407891361381886766099064590391769593300275686337370680052409072339150898989730602798832285825024696183334251892165422268244880749909397376612717146441276145770438033156961034026948742964782554055743375074495070512127879734278239196470661710789668930334912029589349032961696558453011635777622248095457790626988370685818502798241899503966018439952455845196587306084182753227919632012962680109390813191258854407036868171501137281247571115350742675572352181640365246707657400695170772350155542081345351121402045906788704192485779291852512248345450941698132865067962117032246908207931683489466987945197031666594707380983791397722211859243185847174948259588251107914440890766834011565826062417924759599592905107056681243230417872534160461351522023616155052924371488956106446963017108626287970080547861523773344895793253304173678377475841775941138733749627222589749557858472703200226664149591342710483447865801639965956105194407131037661398124958502109933578676455744781446305664382281697137143949234990721363676527638250011497885763240726397122750147056400245035846914604148900285472970621595989779042808482096722726937360142270704642282836660246256361232662550407187667522953946053835397070464982632016557851714390680758241046795266529133506341875823140029913708911642646144502572773088443180968488497323300057412053215071050381973938224547134623707633238142135966175247307568256116377038915033285107373222060036955747064331837686359938590388689772754899465119507919305811836994442950340831806689688547772180778447264665726719277743338452613719697206185138086463916898362263964080168098266792315619670496151000430672068390039584959442506814804942930619223830856944838310698447843069211590820199843980029417267365451380195384177066119895342382416933851626354335720567243335683799087104604035743790075092535553231754584773461636047276179140287236452133963763462856596404130748502029313392937240998918682950981668359306123825441567995641631016854157569959883821154292963932118605492566591221867488110293043261347171698833362175443791168940310352205183578730200187222831016568907609239039226402098581728310544799602937782463971803871378531768687723391647557629450428178870660758398818042246230876842326396085768085118085602184915093936481518881504988926757262247045587177756818904226327622457402740072771321312098604315470303524365978851657711519347083816277524742729042582859427724555937160229839882185160257267486818774951792520898208818672037052739336006085715349300622866925934653596761503445682632074689097579017385444725464023519071574485385245075324598425190771104030050721985441662922417775965254178937656105509566997547068374767642878390730294297179397699760277631213285458212238381116896331294763903846199308732202027076573527085160561085568638066969254127419555137494159763039945884378437096769618287024549404044193926863068069332852889630261288518827293449812254741975291228382711914222010657568511963745878274126143635038268332454028788447343917538670367867548730413446697438170121899731427081131141974855229138317551138809881165768911881242419367979585120339839179820334454400068006193976154571518078642718991657486069101154397932417825153748258086344746150695205977095387173660575391832318557473387249358850700342698761416724624328694615292381831067889854427397768545321942847466743983289281528265456149611000420818928758673137270957229284843080176901250285277737618763123364865132240936880533273530815393907463661773914019183571217321674250596694590958663451170959955575542177007194635532161721239029901297051080333570410603383858363319979076953835282053886650783072728738712794206434741539469434367951178058304326106807141997073036328994042651178612446338730689562296949427076524227839591650623137579738443143889942343380166103367511503701430882904319837410364180948447463805236993124917633729680596799116565090536561940465289587533832923339884550142749008324475359343085593354889054751811872819865596485882695790517837048503191242855636214236046304678752318568376554170586395161987494673789691130075373109898019191067007155621811774272864634156695567685996225308734436504160606658819685093483620488198885854782054720077647927143976458853647555065807780637917362424401319413855040455869945131376114923575845671546367563043054175500893240695793195567751186794848519653647846824723393894381048343118677306844261316236099677524231962146900936075364103184812191712984709536386715154742683331016955492669490525260590932245225375814154034357387941197595005855206152425525126042235139920057133394353687806786416324243786554303567511835001802180042170697714558390822422114741095543435600835523311845923346645291328452031910799761196885466898037812826968498947440930350144487752080440785712234581288857604452710424434314710746958080720503400151396840521542043684630091433230006274221822768035063746202758221142158969142701661787420848776627539553197500032131894277400933941164344553861370963788361107834339093085551254508919592617757675346004050918104488634569759785837079371433325554555829638541533489873045406164067808617977534076370549990215945222267172258960258318450458779630030772411753251141535324843457766206149919604024580446282089201471581973204870326390900902352857093399660353585312393960869262099182010872314070147576498770052080882780084466459444574201377296233157469739177164379915952911155396642971735990941163482163262913999656843539345910289931225381569475980977978190229753117882525490207799736769503407204066187857597300352498856428152439729520385765587363622850969817908659483376954066178929636593397349494018653893254251533504783989024547933063821846888143247487874198091320429945733719370768169165393058372181689319464008346628345816915022817319476266473915458342612522562423405068359361525091076921975226887765372261017154189550700726890763096606297913462432484635919964766108114142311600767990522227534429743717169311560858509622195657241060676205296494875009795021503245000685498051084419996622130425969658488596692619978843128866776998624032905998444398010368467548349206066258874367544959070608368517128346021914111060471598183082097589986461290847314912816050264798191218916559570299904535707702846956945670076522032074010805045674003337166154890082795122447836333132554606187966586697207540381760385420461693569809951338903970667427839793202258256822027919358325276126858257321180460209334046745457284353684350100252897179821199552564671871672305314917905022285925470766007010550804943826349030912076346902092574855508074555270022798162849970778594182047526902830015843433564759679303812834871238926580308399329467195990650645523168078298689303883042455512391857033531154705959659170180862931553552688448879397043927706707742121186393949241129351861674269862747307981696660591463136201833373112917339158442016958116032823658530220914100283974108012828492687977072887238428728262802094164670349296527513268347438199762210573373132372090071207064235692023584523705859898009662679318383945741490342237415277755153858988748619433546587995531174301847669218614770535002663612596714744493747276899378127851896652643043643364059968754625134261998154253878388420548604687565716034427081115487046770933665599906728120707073735960248316600927412348613566847530116091813066296993349866372810175971972389705745072715547222155644674445249182445943257165471838948815262592340079503929940530895271798970527354501582840993375429819420823507292949518222875024904942464376092378877587281664188559318440654122076070031263781523125319662052567967956377839651280948411823114181615289797626300589911629855228101274799833189844135431895703842975561037915757109332166831969234568065168703689341947186943740294962484542728108940564690674053519998869854890654996792947164362313448373193502599355381946317973008097371119522272294653550268324415608845811573505517574426537341832208764440079642081310329119373004337727960412511316893632467569681198805046121956894172063784784686419653388818557886751945691002275094472762206553857933644488248221782440236916962918106971781015875130805979448659438033324988826525885923682821471195177652891534758802504271243238148451474320856771738635777057534598244991030451155602538186933263648852350994947922705280186941751277338455404339208038505101809599749573518704042111780464654468767199773937297145839863466316501049995351296694050485736549366757249540909660485143078384303099642270904891850830491138193034955391424070129637222158391525606597897183072326302298217711524224799056676544392388077571801514890758547387673799223222258295599106477743372499845782652121591113054996748577231139041277861532598799134878846169423427448846584628879414729071107707677212729522009613657807297309817957362823185002715098414518457076610106151010150515836784104789248285238432060156022899314912470391229423016550132085494067953619344775433033365337175653147641284404408170928842393302014733063448290622253689632026932952351480574379614067785116312089467818653586268893067073480447997049655800393054037359088815899152158566661847411572107614675059389928007420417788759039315689757049661617689878423963037909757872101605245090930015671804106783390333600556426727706887046680857969815565795507587497465651585766792548792298403383501212728428780269871372368503842173660261812763022620599598285122078214100619615880300769691125146710952212042828744223552224132840452847287973208362663602553173127454593719741475684197353454126122793691546770855262262788375174265876227562631188611929510136430155778343531923399516131658697679408895542047893021924433096451601750903235952966478160542761456639707803950980366728845359559802844494741957506004867755274351714595678631619364556451623992331651063099683892020970552015860735763621639414119097414641788463694631125951181087324395089312560032613434791773467133814903584762291162747467597742793994760543962230037519069250831898144682062127952012631679313004491771825155328309366567258262087175745896620605031890709456004140725918993291754315849689111805342468402175179039937301446730986199977083607269129923822669068233117145707263627682076280003348642937710608993162124792305416135532373360688141749395356922034637777725929176089717517089696875656500521170720190185324740747742742101483055682290652318456485020521066814988679399072071484538527486396039187231779451732708424328125278562201101250934509191122347397104648849879342716879521178710725240882116974118260925068711218858046324091598272765016434281198807957054405957673411322460422628113280544306453107533916945207700344429653092475087893385099752863197695335211176423597088646437389028226021423000786253444137212722839659642129495516953482971696543818285269177000567922536698501205353325035810223628925084039602658348591762209679619336688917440846249198074080729960448673398493088193387352707606181726797697587609847581978170811314225985147535549030798693101639993449646502420434949850859154037610194412533680239740777669547988929452843264930151918800861716972890241649726701369522215164617567185211349723689869716130541643162294671161320347816646150982320991735007679635202724318096657912383238467883994064260728142336795763979199014375532463352906448483431472459882732881085174412811258858431178595329339317572992500180946796863494512800663355399834664168252891216998827028350692626482265826193252362270401524663671806351352257176356149792147868242501911383881923149383309581458006618693887469401511956035627796803662357799919271404805647250496288811214097080121648677335015750087075932770952528701729323166421281965427457124954911986840619365635886025096250021777370749072581179320335370858440127322587514405022977001819593121009993660626188427824825280423598807906430006066725002127496331224778819936888245294214252708870764393115607112912975255426414822990058439225346453776450300074064788731924098596632702722750689728616139528699232863649624750754929098646154052953744980649967038086391037285722775829902607695430500040347511006719384407534836001104224832110195739848191569865927640158693938595238064534920658511707955736646426267833700116405113976545711212189809003332387791995101957191010570790537078018962864888182956412381725772338716666022649080835428335030578261990822652161515071292186068589898290826389419851636986267743008614440798110393937989264654269944083506930613203694348577106058342337504749286221475252922667957421548882032979010274735185838532378976110854267729982171999951757849119144981964771551187306192490536559820328919966612662183005618136524624276959016823288921171800274726864544129426834706980163577440023199828615500875386204133098640927288789944365057365263997485991206452238569891474956415022455828516711806371661253039751810333263412265429360291803575174731611050074000127256283269581914493648198597107823452460560716364855086593551837145405058944786420039628415789659247888145193671852636139041319293942509051537735881786226610873672306817244823922279176052297941825165724747790669924738257556110973255725567217024155400979586038068931367174454065649900676156334733817519772625277523989457434005017340594915406458924172156246163134676429686389778657500828805611269642289864411440892982292310901714162512025433753842389916446493102908201214535486274996313842405631537908950132492119012428788301006876435957835069898258379028774224749347210144233281456876807917610639243111943636286329551093860190917163760864386969284354995768309660872927553582363119055352697952816321898591813391936027252490236041977673434863334856414033745723876872505750188666718694780229118536057491986994888660569028422233756901761139405337330648448856290186279523915425856752060729824022917588380259235379977681218028011029733453976955531629793958314880544825995647883792863038459294032507048591208337703088245605696725142168747688639946440611098441941338858960349020532010147080335780879200791189360858102503432287300870007004256851199265078233815457177943607403778474689744055972131741874505225862627158120524198562101471992219857902611559293539983844310741646985951703464973036428435097657578218828593031404376559595711695942386951135979437535052579840394389886425537652935120296214634903205429978312467815526262267271284986302257078763856801234993227228906830170309427210848680568487465438616360602395019459676469000644780776182211783893449676009367829123141950802956176806377588185286560184448803206560118173162191608811009862105769631052351402448653103009408977361138776649508349120460740556583198505135722030320549087164807699884913646205895098583116682486998910030734482720059025594637748463398870990109875045284115787857014894575739773667666026282563352063204570029400763539443766780025211608716521956699955605967159805609071093506335733391027591279518371755555368462890524703430162306256383081651300105688777118516255870741616523185058840807104275638174390587268187684988174393610041032842271042160822505473773018892451603215562359712442712730136294971964811958164995653141993922206417858943176760400129450637469307085232501547087375185216035758925299901309023547788445153786103314240113606773255017645473405444076248882631640599343592518481332656968601857777451192194343126289282190120942203426301448843340104490636395153607954227920520059501414821032774807980360604713151824861657223033919975194458613166678811879853650859534079749858171024342183937481403857524225004099244470211358368891453438203059955385324491027986439970496957539846450550227961841885206969354593744275586530488867301499142177433276106183170347394239148169582103367532248754892200903910931871655849327420360746452812561145279280869055475817458836178445814892160730562204395800101633428587352585282599762996568462983943711512917306945704770481178978168414188344440168148365422671441913120311244600244568536209418695159838837100303532225855212276834375343335216330516615793172160266271481883476889599753691848737183208272112416712286401676672331228073215032000026882529231002675765492435759368849919127202298060277145826166285359202919182149488859414459458107619572526584130638008470690115289020037963396354741009592160780112820485488648899835583325152457014428386728958314712998305763993906137174786890103210120258230161729407693146829219194567016782624360795369138130592580737490102611573145794553815585464370787313583871187234844947007467475209372264863139436969027811506241872791414761507874323799019384808371806154483053974527474594840337234428522709807953969422791830163768274769249585639123131541325668472049083871904000169899494848871594132253871659993601868187147524501428512277968353386548604777322642760926827780239554024772317582094905514854788618060689620095283315669938102872934581722080295878086903329232822481027297523831106864980655608694050270690840665021678241925555942052008878577985584657470146999381278555619090458854551094419200811972721951451583273357081068132790074169333176517789223602085777671455252191239374429958183631656120151671259411576841811598977381490524316336247062642821705057851717638352020687705354807212393860010716398553375659679528837772723654007902055640183359465647354846168866600826001247302715756637939351181276738312415665020874906589070985286975425051206803642695444306978510244800577353762199227831535977966678022448568153104233053878783538536410028406547979330250500866696807690603761500932645080238501645627102658124317805627127745280096143683051236897505739469634539818328481989159087952895226032337853048635610709117224854552923304045166327526345538132597103661504481820881916597811547451012498437014211825736156012378285429890319773518521916126187061519902370185591708908612021274309989980148047874312650277754847577046981496533696206224898448380492606497087560387766102446858806388813557000603203152045437100785209082011053189268189756915094603136834951974789421097602169483340926514974879596027167556205690209244726631722053250945758573189461848170620192247210666175317678062119169183559841572588053109905922507132648524169566085123454269108665531739328194062588602430331405587283748078639303928968397496444441787202821168091912510347579700915523709867198325418347890747356060349397647610953561928776645060060770964892977978588288160275029603373195465464040318377961110662203311179126083670435898016604276813609972947026117750595627971174129341921998357037017575883999166241804408040695245608057111210274291395711469268641335110134495070677500680408449859312942430064780063913624590640933655886099870868250383380217304315575708638739401648069217273746838716922377441480125238057387779354898661635685606084477872714449999198266739578235134724768678703103615003602213036832806274359718546551275387703990689861345050749745231157141792202790563200120185958920116411246674200377341296764362760044880619626480694365650039997594443587521871384630032251197731672023640766872631627909974822525996835357305382033102480466304930605911015182953550775432408011930832808144251707393972351842139812588640405495402735989736544583363751499715716044445185448548160702431021136548041914979253082530091941987091435078350717746329201829651082292141557975692613211327956044440006411521315251446598284324342057491919240774630679176636992354178054364140173767583501996504055134158973650593099447382070195522387914814630182535837796734316056125402825188778499544896372261190995059123430262805293639438939326890293331503596952002969726851957069891266087003812496338353247970137060411343531144484780358164947314575206985098810465116251920058510650229772242952983130025776031244391052955241708805388369142228247568225289618645867849779495960932949590016710589638114643950122433479198493902580065653825226910668936906835560507337591667560928459049217450454545560364583907993191149704873474951821566150072658790851764623547911076839828173564561733215805633690405848252160578124769826143690683301607697320267417352365192808923341931665831819507490256410228332158475434266054034909221454256199005013656403674280438736996538954266618770273801971312287471782763547825505432938086027122699331446444699283177960153063044146313948265861287358889792136650970445823947702049490856183046562497164318840777143713186686910583084666141243716218490035119536447477667060638840342676167759848323483361250385245184427640249757634938105736154229899311936209450704638259426382438779326646749671957986295969867914418259700722182956914746102124467441188051411127890426794087914010827056051267260296028735969302261818170640433793838405508984499220487697158839417503510561882299092569565861747524768321743976331295092499486343949119208657349610915336648991073490792767130244099329356042943280193562299691439656855797171666523786248189701024361079316311949458063978010324945776784999454372087482368371060816159461936473194743338264805444393016932123230390916011674529345434953245075008806394036018350096387702476625189517242898068878927428496664209528824621780029331302434440901511094817231821774107527313156492071182897685666395188252364636552436466008022553681116027425723677464747485928285933978250667705296501827929641009049833339081540652570641872516886773153307204359368555830569465867898203091163158786518523810932013348854799286615264857333706209653100841252767743516252852281319127471211613643726107701246356012497090210680604415719131117568147816418877642514747372790248567680006467151127425320596364230660236362965384698769949999382941773530392330985530222565430861901849265292593400763027819643562288797378573998941020157673655602597146420165477217066462228970193616645983333453378621241492068172303058532779901792924633540959559357196194864848853017353417629215236361535422959966849031832333749324359281594032899254356344943567995371962773543059582305609805054633009274958579184611777335626779907973295118753110683686239809943804312359442505443679895890580352420905156617274462018239030468375863456901390474463506651114595532829543290310358786818462966476048009922093102294163952736814300343830861714686296011864849856624910253684912854886139635119402399516169981410493040231348447326258123418027777668222402146126539154291046235663555946523440439529616280321414243497521310397950336092412252216208457345376442368697664827001024482862954982127587581268938220442437925433387650452164117842502274533033338787063338687390826392962349331691444126892930381876881497639249641911282297068510993774496792812639471168499083446298320576308600382934051727909171078195366203174713731347303327436785355300514473091879458039005599976132301168128908959784290327423569772851232153324528166246011018345676579499726440734923475273930889851628830312641345599150215537856549309020426785022858468017263736405711673860918989122136774771153009717195673223997896007891969498036402457673444745367265979353501780191487148124388056542036761997446911021597823099440826854362541547717433278617150288953097872004767072491072656251534610065568301676857604534414899236433543699760881142133372772579811143522914997362497151330748428914298495580582955836895933112042490159960366138661992513135639000106198210540406031133488032508730466638994215354764179674919175480658483539200177823410246693772204452211795210793242992745953310279450912313280588958680324925336218750178372532150193520576204979132960924383207004981377360254074390498174998951973222808611674563439112177722623838901010726006748312393351263491759780959645979333774964289589099424152919217376999752480309792185757878845999066394069331910191909269458822558923961243424298005570814373336249369369410358326502343423859424262074410476463086710122145538969076959880019827228378653325441085133248022470890851837141098029767125805311348699816915653848365713234053142359912964269321153625262963034257625107040522044844933813541179749569968103550686452652345071395764478248797123362869515917213855410525878606519130683584104952883849279026028455024731413360544368914199384191213310586856131389952420653781735598913958945441101046887449397315771155318786387343104934326407182787716529815799511546794153221739015276799258667564244350271458420235466174763577064973971280321019712821485029913956173366111185696082617294740027409381143199998198033759186483650310091313710112226893591555893702143658324517992687280995495174743000174666477363877309250798822701424848115004370613055148056928984154613484448807131262743337679327466103612212255663845240923957234918915334861146984933524850822160463423730697709019054181649942922756789625002348651133731017996054092025863480154952412538450479379751586101782940771409441973855839541819152946793716296605437091932648087115582715144313917075699255963428418910224823230919826446467283556927744352719997443884635505834100170355879448999837937816156586610961528390256107948037523514925099949803396859501806931035684871321474652529596969477870200975696672764015939983751764823053879976747996807501469899931102734501626992880567966949993660103288674900484510764146805905096423023121470282922494198260868556560932521389518368060596578096727514340720819095455369715378128825983880004956888056855163551265879438665191777352949887016209129024390324558605362896109990304813874835712780325870066086685467541824000391933261391201058535157250688896454081051180641407600009188405231349192292820232454261029275858778734704905340348959118158454305150669454848643195018378183216357741638898188549330191788991536155394251490172038341275814910290877353452302313034085101831582453528586715578501954319654365977014838884787990191238821341248036739218058751582805913843383507984201440460438449937664460039478987603158658892825961781765062697877798060737506931762524304655820177843863367868106892337326523712664914129680461700829321533910103355843592243910276737176825584432863280253081152354914406924255239522696997559831527289061715155424650627790215583440457818923434319960374392030418342293167467915553559828377572286306744248076858100063736694493261137965771953967090093365446832502035419748318921716397953432442581054344311315989476450956395261073341930676668084575376719937380422588599456085380291191826995692039134576202175644762792410269736484006499617288811999671306821382547058490648836943706376973959057499552789980960242410357886386232823231049313139154784326396360789966319962558273288747161164103095055049656042444055750344584344648270986530204177793030530242567065857241187676506461608969540189349632505009873798342038024739782956958771466264355909357073442430161885451677955119466205829769920160531119522089631849247438442133145162574984241757829108596684618849267689371995808296236512648629041279392397877051903537098855083510705043900794048249587746893115517079759946945000228049684798303208321564010796706780787670726548921802029267228935206828774602250800883429380064357401337632364254207126803989860823466686617681625252978314062664343983109482529043720122785481988191051644238381281807301873278546942240639938317458283731863003616654743843697453737528980137537333597163769465822776719431931814130850531588592743550766424383731730386353481840463099175463366354379740766548643449411231856866667715262422132007962916810565139185756401572829845769841812407530006835911538306202550727260303897113234190561503513623457174327274601231611459332425189061567686649167586971689952011065061632167098870083300077573877514360648733979632560979847247703140211032215662748436834153591801676802298416999329848567574630578602738772652851461423031928270929555764541468622198921240391316979703086503613253796705745639140747393857756226466847298215568949848643506125218072899494906156793092073860028760319508646375844375004939891133088928282043587253242045329652050677452571349714213872419895603665383008485558816553126628680382869818138569479336472608008438796813800712492596668862654153630909936604697118166763650721944772048299152978063209543344985954620569643467013932406240952944869575127886500229995168769237975768017834812731818526427351930736719667366476027496835089092244794548516924564909876535978808371315527633049693211752965639678177616443222306570689128756899454701014373011734071029941139849135470132402109609679687036284724338975303621391213805641585030307877431820715736405477592054462199462606631146585501785673905050464415902041903833087935317579970541131756217420531701720968182831648246986474437537661176176696378439107926043416166383202219059417562423967806467224745217870426039897653714881905699839849046970192239812503274504653376495715561982446713548525351917932194697376599295151853082182594928094558425237381526260349235119007839604245643294989338624482984248830355569471921427310971989355335212931266070932910026750867820814294981047429604016639328475258757243242791587724051690761458438059538633123307886023458457513712957276126597492826318529122379509264338989366706494899147609248071767993933002761567008970631821647919468173237873774665451293190445824438911777698275441186390157457920030984527453762653551178902412369963429309716682226609778756134481622140777552267862527896165930600620541353832305033570657732694314315750012629490715304074771149167499014168547387250017996871361069434523733111202625314479251181071743257142249428354139404848204694332689110991703996314508398899477849646287599316448502145752071279298996046060188253246985032774743443640466727179853224522380324904813893846762000398079684000448279034651354608563057028371292418018072474617299371863818429960678154472857666146810960548743497996501481217099535597102377031804527525173970876446714131861757745933831891878425982126011170288482258213744992548198552756340630573258869696034062841787581767770401455494096152955360058133068385794917320246534931476758893415851593546814330595310928379336459038077188851594695237283030214363333650797092530808955096690957470288861302679190754185619989856440027754838487351392262739916586719738975419013420627896650658241513344163323157197567092049420927329649484471487697760429674154820422217979737332936551280965619853615861780304943013274609048086025491545094728474343379661190194834088109372455265079084339744795310193604516122989361330698479526978702154285434317838479307613009626935034920108869711495062501971937168143700706926790105757646763910953677802141123211542354974141075249392075416521315939176098643269568525658536715862389866035288930472364935011783151327200741625174979933095729174518462841082908135532800798302424678075260916668514867339752418905668534398221754451663829690599075978415161860689620686425495574384325575126477117621170661903862701862205820442356394276827479607835162226179754637746741031644092765894909779103734629519442991123204511022445902938710857354130139382646696410731920513965540613411482057215637270515906142281313399954299541838654112783313042030288631498946935788496376331939469144214959068317039639070809563678743200977134395513214710296556238219334100079025033678179467606319246237397022720801753412049198465362008498712694659977184831484880308941723456326490764640572827584899616727112020800106560105607998178798876583764425737296225854395427603238938488128081267937939930252604185585798748545167611651192549861365639557715487624380868285297417317898954865378107282808278129498395423460984892176861002575742373439424824792958134132690169531926205158418625212597691497987928548182484611646495412426171199124706765991628246207811795577852826262351936172281622518291941595005110791795129228272885608938559563899400402622739062403186438235670895250018663295143983580660797663688673245790580589459881870659177981427837345658888890416173387653582857869886074609050396491497073834748646471188616307137037608245402995740205529877359487634819992462597761645621822395251123504305786066905099580069963372959647709841617148582761411385664251180607501098189335287795082276373552022776472051521673935067994412439076108652036548199563608164921251988745631287338130873053879176268292247807779926096629141038861651731865901916425615953945461620119572064269280263233022353493741728873751935287965941333810169459941576647142797164891563316151063947283367594829061575201727934917085186033315446539163795786482415898589398530906166259724141317689562058786826655002547918723100534387267892723609893245814385217218604564901516886306008516212219216767467000999310609478846464670065457084374961855817930084420691682620258435115879102684136385037142207169767701070593284506158234026858572617650108187382918552541125212108147577492205198230547575354644151221488230189972963831104864177513098821271636639102733541914286694178831151730019592113508037118663892621307689562025937188782145571569875972836070873224527239505015152967953516486291306933676398650441178843922508743983302003852545317842019610504049648025903044379491132611523824257542713031271658514144669499976551124426431933012854006367899084909723458130242566265823892338217648786106280057821093071868880143464755828174618670317029612880184649252992496459294686174314622420655746117058859720597768867034573580401512395051712463755360093161180473629786099923802079270053418047132483343056863249716239912201754515905581845290792512204728583999539700934605634894566205930684386868853853538862678102163401975835405533514931601887619722884408522948782625868740593787448828001134601276948619115501745720388465939552609455506227625470039252425896497868471877708769058148982159595477317272766988929714739565041937143407000640747570716687700139516942456898947614860490734561901824813555498516674485253339202877366132362630286578607535730373939211283576605541143575447307015053429397056400559148430489957760566972362818825379782794807021328656217998787924713035411420743177983843914469310243891858305451360563331388384044298756037572812806044220568006837778081899422829197348481041997922001878847654579410104550588337330714579453947639261354709451330927226944263107774470604286062529281887404110006181050395571285420974851081521107406658829952908858058100984774416190675532858455773639948857999887499565982521392123541775901863120901132709450306992381747823370669074383559597763207632853113962540652603128396402061169758510987461610860780766741397904475765568808674229400491788416279695104609755113062060526649300732832267409017402445202105289843567042142583216193702948715784162386851289898220983927210617175712333473593587405741366080603654262294613816351960124611108201927276673811205013101768738999651504769726850544857829345558730482976095263706204066398616340976912149642062741809783854541926375278494337972134666675909234662944044828325684307239597213958389607857052510866820604249505890787464969283084948703451228359557012153765524666899965348249773816630557224491382837697150667164589319761474349299331579455565152281581517766576924831914521982936897727394660855149188585893791275884628210302835632500849099159288498397048759810212966354259386903631728330034100793079539668806495172710741005654608044379335544271001480347856060824203344950283084799841604231403854918543193422419575425603542657321250836181317828289694960147457528263919842242146640767660765009375733119788262220542052017296600233465018669767404618192725247432811165253317284894742109084781388830138878473561985032033325582955230952827590368382932965162284470302420064247881665402068638773126215706779804018856324689213265937816740579793689914058859235195346277577759098372815958538779855234657470185591393043036428269532049718776539770903573344678838815464726713073916569881159860789398055031732093742908440872261344698779373344095363585720298653425523100731619418872556840820366562953375052472462702898868288816857047946193212231489127736417065545881016057356549871000287085086548272327734677273043410975186459358697022245067465976475835288845211071542304499919407720979420702889017848469112898170232863433604726165335644670195936243348179873131703250637762808769619396587935538940371317173461319411489515320632114105446020438861242286893209210435289616260949539030772939053323969659595226990084029981798275316158574918119735525489802607586342470575648185240905116649635280158370695949275147323826387232186527874263092531917833938826001756657917659121076771521421927187580146625501368886906037691992854873094324469611956961314283573381239163220381957853640942769090978763937969196741736881444086263850112151391666989415890284778476027113401257025316791599465141722840018716180545932416530038828712198909146594638949586148854491206668264903690006030120424887926594469171181703376634033923453640302823002893687375630937783821388620867700922023901886882848476764483430120401058205824015261020255295433047383425607554510905376843492296192466524479857313737414543214463224702316640080407768807586352421116978056389242621005198839442980286861931078628441285479384791764306288143911294948392613454440169011670732596908600898667071880420226925788257369084581200360830951065357084530702492197868904375471293389339866367849563820621972157353736371663784805860989434828573833842578708090918136657702143349075384642033611053034241625493828150869477069945016812144201343464376711161022626262748562632384210443562894521563787133705607223891924632930246998497467173994401955666176116235363205937234755194952241366761372108729250162698139739318312799000792524960062046657816236254829910574493543620858122087422402303751397985541488576953364664666437774564649159860194141589754181269445902212136661137133695301745211791045434655392360955089794304968562703261812796540887446505357046066029865775750408499536906468891626462647053978527860367393146542285040519111926956044625365366968297387211868919550941451939119433379033973976744243759354407465219362275961251705461982366580253249088931543341837036125244054489108905726433283813851320397766847351501848948487254195649888614494391842234377955637626363564558870899547089082428649836641320959566225761693285126927594284577268896695690156584245892744684217459038419044826466110313645261951262459951703331610379462365304778552875161674791965038566105386798240233780597095577195043814921935213219286723620631356493399487904563396508380267374769914856778275257862122747158757946860480394333139913874477228064326282514081711183090448548304148517166794502970761991532259916793453364826030986787848410821391144342125478223447196442721860023444511101499218025673143935579269761337175364045236650451619962810671289959807434484904554557966079600962426598974200113689320004883147114401540018332183803840469303825966955533206121826826194747429178211981566881483541933557552147444207119953421192775748869896142264706166374221790490554487451270147452537442932487045579773668017935311541639638978942258300531782147178685564517597617085038663989514561560051276625972150979676799430552187706907471601924559693208250862405755615762059970812457227597626028979625581850489957336636621251358739146800474625199544702490640649156449270068574277522125330195831192577333386629605179561622469880306323872374647005659167952284666683656474090287205407403182435391576863899973605367520843118691598780992618877483934309635089144696051804679490976753524900346289883034315309985142689851497760547945737578103087321476811202627717827764191051739599005106766745767933039953792276772606489640044730106397883821629581658641819441943352496780612708859547116679923551304652066829983382077804475422585454952270005734161309278879825822208307893256480726783966208110902677320952260783936548467678202013380197349608949159680338475610185880983972034527035856345907999961070324482229455985996387443143197903036681098257437713847143339207366153248826471730036671239686188080473354252563700776203437812309352251533991835569367169560894937823641473084025235858695344072745345574426212868243967905104469736583564162549026199387801114061858978644740527454947644316166374330885898557787189495722262264117903955728868789036006822669528441385132268126972464041943752714550636723339945790548251074686016304668745053070068856889572568453162502013675094477001849482562997481740488776420989132181488675942856325354504225062690233471769679853421579184899144262742255637521233100899937742998413349030712623899432576779000595954178738858184173117737013615922399144627467615506988929343552539689327805841316891629554030171654444061766443716974311436594181996489995741337717656214488573376893473917702646844024598923802721434126084199658199899964998625821485702254068592222801069733991153743538583303890795260742088750872712051974578604755202864792754386125862214688809313215982406195985124754892395366787937552264520069756946384143126904748508225519982782324786002334308562900914617052363120795731419087882996526346253123405418580950134297581774890779331846505249545857807542750384322125904255830170353225670428065055361572109048585066713999302829455163078509748797887735295435808006610568909449732705115623524747824874654892667839802384243526267618623913480397985484649229752222461779582969859690932160078814595475940434830773962359953642382381569883561464365260336283960766011853253975588418659920545004388831646978358248538610177408485799943868048810009680801606105821181045025402129347364930666725914640263439497955390903606416220818666592142388126230062740038995262115708597781929540377919012256286325953056430031625452747150777656534746534664805262455872873832074524254702581023626181722661831776782707833865263945817098160793484812357105600915452608159703640910112380665759112430620680240748997901998348768569623775668981140377637970983009532852135487877042642205869528301578184142923237990280950802897807084541825827977622651739871168909775471113991200095046142618554072217327026733541365983376003873829726525359322429754650646779652078862094531862239820951059916621674632203429019411510643707755134953658003651165519587444189163977859143714476658781823618026887835443919221491819169324186210359839849629242706360127308811482260226634463302078448944134286735038757153990556737876697901950768132092741284003242175512430118823113376453875581550069733999653377756529784202706166035260274119393838330317547396913450331019629281965955908684840961438763090909992017420207332627471785604032326153457533313275745260897084921784143103392176774101533084410510582117545134374230774073270283204681827048889458852232457960680255397056161674470220908765684822696198705483597757943176297417268706288783220551034341605901582271142299105497523341186838617968949537336278778462452626647608269554388665149758689572635057909135005820318301437074572255476136464212543312170596953329895554489860768285663025375502180659730100498753205154734179022935335797201837339166146082705327612057091705410728597253208233878440842799185479065207429671329211338400426357093571356416150287774897025136268793790113675290932110431687847792078510099183144623133051995751206038796059145485495930363369345527868504279410227525172798976026639440823217805093083536767730825479991193122756331831388339369311041757916032171298405452486547531354312217467788002184331940638539710786597176751011098872632781362620550872431924775968330893584409350991044766230033446594645768024006892695638132170697645776294247727790835087060294204639246305782840240254949168290927141366153724062745653030245843230329819751800796699516058094799683610215910566426416140335274026960745757833802996441075847208299405826711885213881270880471074450870889213250971907898135828936069997852281189257640464699016188723517890506932814508272480263763099507658799885736088076864034131094977535763225887091412181525031302045268308530858392199358031045896896382838055344886875289503832488553707924211579751809727713977061592097861968500411303000363486061125351267531655316938587392311619503041586672121787220865452841355324619674932146119853104235439763238914871451388394837893966894137090380001088758560371349147766405120196004678640679765590853678240809366861910487682709355334013204325294056660618988175754311965019649163473684015970103903427640818170283945869519944494240521768386470391934886396306843353974226687106249758244813868026906634370654399162005043921606470426685649370578448796493130452402612757248920922170795946163755314219437836788287704001991613059587282596790863647632020175335404948043121629506456439992826262585415008212329579710772607670894393181931489242833969008823292088125754282858929024942438068011568018668443756392256977628761748905749871613177369925282553590673988134858271146020378723677477568230052707870946257003223015411834182743244411667703830780321800072916019155802517663513842114406160472657430940369442486171200797345843005523268937674561116269093539236483600792257963062836159356718435121594924424361451817573130510502857278809800032915652196005954514322272742962738907825054075369390161576225887145305282541018938732405422362839422841804842672117552800332809714962577419426655707801771463965157095381886814783745925849556375925331526460556835119050269668320596456910710222814651541139719731461358884191305520055159307414824823820131224226874121544684230321752136485387495318748186276963835198984253863848017273179359992300906056599286456465793116451721444643896221537579523975104696898872986940124815542903841600497266894775088293941188277583775496680435943408134675303539343314115047204133427443577418384328680522182330498960386482867312726483896652446859379685193738545301761656903458618515208059839321051332302250351325980659334947276961362552001041587010025448140892287483703648797875119782200053908342030509240773019290105124818338006434205314994418049445455050538517520059523600393140342140365999665194368566590609429807028378357416656214689425224264406141046358399495761790034001556344303730473850179631933082278175152451757772151639218878832227677375349239237754606043685229218928096179993507822624993343927829550719608799037347340496125781535125329383578798439926574439789031221756816540183981599166248277874118798476880825456286852837655860625969016299998640578274700657037297098099527637456051688752802000547807958299360343727451542269028039258410881180039975790748840394617416316157950447534218661977423331869293290857098304807846984791705693567228107329016655094612592357363065361861368615561065422673060766492307183070712325799631212851835475424000508828375185238093237941496495469400879047862179624481594928235785692459542693369819429419319116074202037216937738735473679566871567692061098063049493691805680490950726716285492334894025401366032306109839257278151138287587578329637591845659452712218856400321222603506575550908659887825422118318694425310584102198018391424307854731794408693807374471317818071484644697896681723314838127368141465234179422002537000008612692203467880409280814494676010360105570851502911252428571191635578667255897091282481035185502962470260149659970284598962832518182011672250829262553856346476006730692303784286373859938827081395318762985932305149578434532642115423834548218851440618518125111674891946879866735049844320259587046409930529523501449431767116454999975651678888586867234795500576098047503728782932711381632209074714864173090662523275617293545805091608034169086271307355322791893967532563494264030906281962487185588424780483195509427384598506039700014226364810798463920968925056524252812874708005818183513892250278316322891273218543197326577311806341066120712202063789594632512585703760427485683126062906918601114119663116889704903348170441486641752532462948101986668068946330064506101962346776643639099018692429486566030418335860639918399644563272728298691732174468519287235941539138961112842134218515366387169273033848952673095303687739405665489900543323392849403781993929506953653362734409147062781341664424272615974341338299283125719146601036785888046906997698372525443411810179121717163791614976229659540779227935945779978552807455365201747627631230319754736033853262762054693669940195046336494009403450188278538569772061223238344904167096920508637567503732933663746180995649605625006955262397604322058586963985127651537732471271354424119188545078214533256847678645344010487611917783832178673144755542692742595314796464168639922722509106953637895781650231546368850895056453410210482418883300055535415877884541205667679404059744608461068429128928053834202311246985341175504419379019538936806312774493586093433442950847704035824379438991237371643097861409176908403171976308508424604643586647625791333806495705913091145083738845873078472531459171133605821912145143714366181459780474403550885102112892505211775731888401510868494294330108393556923145405477283267866909865927742642866000406525848746881025611257496633108835894734463266202325600214255080566140810587629380960788347689245012713186475338407302964998668257521514760106540280782284694474807964270601552392700943573663717082933228049465567265679875637627325843668319829180512374755517532515332430531924698137720655068889506834370759874202816097047234571764991140095470670261761765692049185721700748777574572396511439836540661994496211959914890500944954092803774516686767781051531351430725702505739909904340029662547604699096474960574822848160070348889721808073869255755818923605669109879650839487973460067837660526152345484875921704379369015182760691356936965165757836770793395237066060305728732686202493565020067745432237401935053873107036291124398866328601626273798946286355260141203838062988064856958571935052849227113011073055969798616211226470559417909910611047002221662280606777067294023556483753005840923663079622112653621923549305152793945776615760019804257649933297226426690456167484292319460176213041417850884406183244964484409480142055976556002338034286803525187658959109933798056105700115333654968132058929987725046547207851172013273034081580384857519158963146730580106490285562610963763132957238580538619423413955266830849512464261915987474800602551963226757077485459780896987111591232449839462474159220829439459242500468145237624936613772559761840988694789964046473587361927637152212302504609234116624316980812582923331409330568443716116136155573993022326191218182706172708543698339508121368395356545775533925653839555068751646770220853800757502630758722205197073504197846866412955136715544767873447423419354925163986898372735414286765763154367985296291380139163953490685634251531710551144806915702060017201621425621181031421701007891204716923385206421078136579908284687628292779623737042220732756617117800899866833886059516268635354053683723203786086737200148733384822831074739674052389560793095829287907486096040707262957420127267756823021174582742207002939966844216493769603847453950979577010182631213949139478452745982076419489456738729433258159056580490755536639266726925186914365719399366537116085506972618052641305906047546167953731345480236835285736409711777211060762642419581067276914355925499547359447745392320366298340518969852937281999321471213691157991234170597087297026875578381634847122190525585266723446735961598832512402440367329173687710504572740376629758659690957883131853101151414595146238229827060348879746531960923522040252296354104681023814274178262610230511694640184013470036930136913262646069497960947687380206057673682792682811531398302570533530245736280965717055406064255887437918894281219390425045545960071461995643243759465076624171755264600113401617380197857694066461183581436479186593737316983604393737581993949233694165112308679256830994137753030549327265611471492778166917431086991383732747137700405654601197941486571265393072712712163110959763840124415893931482951525400008636061879264382784463514455488963856005561007036313998894008125856228824861360744084973196010702605221370316668204174525392610332682361375420996348844959724762947806475856771308618295520136601310437993537905991807959404804306925033291443147732749055930832902295944757541040124657312601309810176153188016542090631706549440480605595542889968505902280571382726222790518161380492291936540931105479366846220208116529344746482650937889392690709303983130442663354586498090600688763471291561400335898554517341034908095700026539521172823738341438408488229270907227111133972014020102050910800682084293863839883591063984444173371815343892216035392734077074197706808372398209523298997326605251945898651325584147408423236844473930236871821433944965745538582075308040365850070158309385720613218298117022230059306932721938264957405726500547238585034719451026194780080646982061043014004689230551451963387326378722793739353165162194366997735669183449027287104444700935471369942163351533715112574593414316701030555813858360011402974770964511404114721935535130892453859647586007338469864146754924700806151910345566856303779388941967645507113754136701026957024668570484955376812002462431011893077425897152329888188225205352596782685844016454563863798323508209529118002030180942858752068864038457430665698377196601980011971070536634840800216290608264541957139111332312096216366116994670437373150989256354095906898323307712101155461298936981677641150478258427312188936515219973679694333754637609095689093950730734063663173793711365140739892597753259702275069519790181665328570963145369358137554939601265952866663688718809130009307085359709529905042323662309081408292240892823722242656954078057238471040261878167021217479272309189749548537506893332903884861213102209301278848149217339411703243719530719016974156028350037382159632657556557914366872045900739657208960577387766516430682272360208259119496714654814010267230553915395772013733050998667116460066715060481058936305007242660002603718042360300520345744409077914416571776237328720141902739959190133579591608226218717386375102598513170017398701001497804923550520528547796212077348389446103123083963945542331903386674114259341484481705494577710496835234873792602801461136554946128099218290959842816188235278155857013457325536078555632410196416050586516586094033109909375207840355291856395938199448490573847647852735110278026551015558196425090148394147673516156461236549445622190647344150375047586748387541861990608830283002480095259976714996970293321487396798598983764892768163995471495063207500135922819213936338319705137717868820511578680885348233129599835560626230642237669379177210654093234807810343052806698627960347532805729279035465068125702516882560483026523437612463078513113200581858168269595328994080790325660596458983039315509746197666138825337251721316195414621672403639276377586142328538472439597451434576642530362490951721973272053445317626181748785590513527378731745171166475585938909664195029366635326889194598057270524660757853567887742886294874476762089245532339063447206249548803968402584664704666758837828257553921881211640969139938557080725572916648763640943353355512294905482003731782327983631419390240734184705845134331184886616238593178393098210316128111482443153055511247445438249320209851131402931630272560562345041952966487863939059904781177137712921474518930094158890184283961788996448752315016847619627356804771711652553296254572340242468122904344518079347912196385335086309713023291431191817604518357581245195311197462944259729848398064112457162777585846951455781808571615739751500929080705786856914259059929389267894654565896712958097228912468864894998348773853423679469028348582800044397224341837062863905897014385606973545578805042709228501191711085291611743911233274030381095274300529735772540597472733564176543181020660997067979875834965791505436434939430333972889026612218253336326275161093257915214333060977828010302492499537990422602593498760483649211557645466545288403886766899040577513820948449663977584568263443275604158689560145814665145407544179366801440648097033658820681360581969783518888073029180445009586552923265364713463995729475796872875658088245222041669706108529225015941942238253568286889987267414390192902890222349778486940741360627722312460220442947952751550059895771541020856664646778146266354492230247131581013572628370619898386738150518407056163590142888415614210999254668412961807758781020473296013900532568381141554574388056217890086776265709142585985346473798313392630837981937966499798151431696986987652560211026166113211162684659680293083590958612706930881901016381535025738896511953065641548747598535270139590725067004323037189170181801979849914792352839423019616622155681272383668055772375736030199133944172614717415994275524103149684832623691416213594427311986182487178512792008092473429618929877822569690064288444107793507377718526543463945922596901213086927975666578703988018210407482880575832723420242165967854647705205267180163405960878465771619082378325919875514829148637523782166324708275915604293962416338585515037295768515851195631561970384045097583118642348728516977804579330748010820766333601936256594545528927559446896716330485941823936159230562794158887876356809906453587820461974703732105308876792793145981716940743060453754806600740507683123708122898035612348058753932025360532671915763388799464769540584718197002847864638653533484529084583455733484890191638453266684552313865852101813996904946772028671562201001822903624911805643543296785442950181435243301559031618193365110460936359178144833306398076180983810609441056109266631433139636161672370328881621497921046254671010143137996643657688542119855869047194771281707281829809443573619398186646186814802466682128250352072065320027584230891356642916670976818453817091714679426419892218363505767378501154887426266478768720100358064904331003160061411075238499401980578118364142160130059332571774047142217001220966758411919785742319486433213696981139351584633122841656440802345957917279951796671313917134275433082231176097722104083239440577812005963600974847436025544317825726067556856447360049481471740472757803032657694825946128859188025653689988906488415152166094496310084207566278174151585820120331616999542775652953165079654478553862927268364574163397333561233504817217686099214206036372883166740043090300776891188944398316390963304580986482091479648544466475826466247977829553986530288152727375639030494448377006193204123503097388395332121425538125412174587411187441225863803412239612604913338195145392808903899377802253506325055370705964485925677472974302258548913678898726703408099681680540720415007311547057442812681222791991510085027919361674034465948254466189166220078935371350695388686370650425540730857716503219292588534857684421871668835092158765335637882930445282709522795585627472665363860367246642052438726345696461850170349843198463301350618124328671661916227697049221219378188947452150836835441618347859286303408779819245404942376083213390394569090203388593880257299839224277326532198741311406260007318920555501577225906471099219084276844912018493810765109281925466907246379121447987656601072323476169246561905932903518755095309743200806293548252700655106267643677770543050327782613505995915707843779255317235000185309752672218595898924469685079622559074983640980770086078783476121380053521543807680618744181710991765399743410184060151701128317768559873224560772918482317914047178567139654567847529643953910471988175540479563261634126162677912627451389302776043235043850395569658205574080866615602386179612603660230557267963118659950232033074539871048141905295165616494954135368106815156128867716174628407434004146293540112768079849689106515938124468769543616763093365451168309950739622116884895228751981926487956673432527337209850533774938948001704805533135790850753831291482082554569738716997673541521554304049188623587655198956465576404592450474877191156765021725132044408548092030096829359204310609168485042384189234199014851023575431883719296699236712677025606082176889670240481527303608353233427524369501677859649529427747409575686620439194136404349108655279537642059821361715777751752610743458397481005837711218639470886343069611619754132240038222675407260593592201773332919898772810357797461312188585379876730096634217770666191374417204717189670164093473613984210785596663525656640490592024407480936376880732919632439120866247926928479452364847800139947870208366349662231701263133140341643626013035185807495459596542525368461488389520898993689784494763226948508055087177506983395307399305255065672873344257633818306758804262126261865728914096851881752855027764653996159610832511812333733833175631857724482622567897226102701436933505103963488947568736673014106151246386437177351112449309271139217114301022119867552284722098308877550497645486671680140597441981177691530947228758545466200884644012706413840587868867286864190302956977147375310108690468467103441932240193482124180124625294392618247040964957113813891583859380459116786848822276777437738684464778070770410018546335232708913612215248083171536161222624391846476264951400813290452181536810820275273536906764912892667327533465634010379731871794490369597679977841923039825312216012308795787069697410808255048609321652016935376714198430963413353579266508461035734968208944115777069993241767964906759289085361909465777018275536735231596892287304932279923979423553939012966439917339606460860875543602389717014574222739592568703094816812324619178265544514018249153574565386916921856237224556422872371003731573448433332920846776710587229635389771953936301947816980923141049767799765729211265594228261319760491656258425351977179933063899302207331484075222326973719812392514221680800462375995574732174734442790711292352773412811724853846296624299156042094616128467090782256341848526662304954745342130894018823152100003387953973071456628615372747096591912955612327072334680373612116398826981913771913002441208428904257125191099922717447841119306822463317100520234660695371951454331477084191505438847944522328629973331212150088763620127317588879356467918940860852022415071498625271313721303774490161346925118057168944655270849015397910887859320963384659488137770246749373398083784275085639615159718523080547429715095940055062254407529521927405681405177747288921018333635413205930391045775235517944488619550743166335763010005427058152046205974242321916561254416163476087659330808422829616107085590830807481924100262039374956470076467845150960910350330668975398879308995824461007184046397912695594924596286849156483098357275506690135282184891924727523556509787642532944799466790382178530454583714048729792848612651142407374553586171637682578436899970063639197750931126501224847477466612875235195300129373084615645263638323365042862033695279412014002160717902749781703904576674075996812438600557231337689612971351210183859248195830908853294713289230432003004372023771684693251490269629842265277547196695780039414487623045662229714467893152804624915490464526283191510142058756030969265446416480819063326978855962334588446062311230396150332736678774009483988023922656585002158582880131525735118401498012171731312825983674156990722527130088292619300324740633147127988731908867722841445928618116217877958925125347701908168595343278747793571437624927974980981279092483911450589511659019515118077975956969756330416641829076898225733429769085936756334298691364548597160741609443432181083581289096539022023555796466592494096957970574920847112446716930045772768164830545346600071272456455081856953213924030559163036868242479422997618017233344748732553724204706310184903315443628522214358420843826811718362833395767728913900937460455999915349437870516397268149430479997758598717776812146537241175518379250668338804723891060988217799560720480605194836548845001632015407127645944273090221650510284487510021041471520957304380060922403442819578755661253623303741038200217626426343053599004794023715551542899263388230828189442355608554862188347071649987623661289062693314330431920454394933017065863384420941776209133222014334369208475679645720036835349812632030295100515184573844268893046310276820232108821835102039181922352751726988277054716028882240621561469735463131351836622719473498250681292587300408465946915483737974450140731975579575052728044979333739729740571847241317977319356963944037919527625839533864690098444659976024681119626514047450092147089913282901757174128835252398479301813931766338797444241300346836531039788762806189881702535865879777796570963453454388652796938848787470120306249102232132804861278989685574314012101645182124747427470135861503927847595450780072717802363836387376763751335862901131977192976953092840136752044290109271682576669159437892580452467890888587463387504191066351864209341327106164173236508623998385822842694903775274302494188061513149940916001041415839148574728590626741331005390618118617078569534577383455782591964033499105278426840901056043792787049412343858440058747625519619649796218475021117427797148988121869368702674097402387629069960781903901698753263490403011661069091892805544109920394698677831709713293215326640316611975297620263418887316848891936727989949326165505617711369823091530255795561954083669244421195269129515855003927990460562384447016752638141405759686674407872486565042039998296961734176774776402594768628510234692132427425752625717732853384483423242898546348814369059094509884894250333423027247614059896398464183423280668372968453631591092143032310122329462483795010067168084519748653769684045435736732741960130637544672062276043454659552629504797887389184163314441671524945474616926763768457236796917840484954220326559019238942323317585995769172264461491684580880792139910791143344366952615288010326413219210451767644241720653774890396983503728341254508354667038485575751527341823834646251741223265245434350063543460349690911141690742286665795196706235129397814192041997465393683715394519944832260251983490693742228389231368102644224352916687066928035741354736053940709964737021598220091211203256322192356794641152345094481357132766914384359826556028077959716341684505026740773395517362393141228725898243474463779054877625004243353017852860576731227255954619114477033291326356574291572292330640344312770790863413596212967400928357421854703262134852472376315338181070479526328829803632452361656774311934178913049917935239538939230087453469647823267972061261135436036735222047493948046489589413637590457974150476784714534762989463580586395309109039043056833875758727769218340392039679399328146256560707905341877746103497021030273161290798816869573748845003754804593652100248699418647237392053309056782156124169097850790258107657073509226301139107224265138979724182170158404677084669350827876554730660967718443292897108129226908452165392595442963785728865012223947873089579676614426357103264787132954111571131650037540443955342863855991636369732159172921306551019187177936398946469036243611385963971888077669317727565093931181048010467041089289948787472273759256856322282064773711317206047134293983296148535598847812145838956778139804256305120034452595686844814444427693311707576491829825877193211881450195548495057233133873843611535702781347020877542211133467435171305488472596257281730651003748756121282582188664805514054814875193039369422115385450339199148970008166817559695980194025898422796676288692234440329270171198147706106908608754164099719229653751950146765107180976145508544303529758774521545967903857334131341319424732405703428810196713707899798266622551950333993345546466241847075699068191981293148302918346614902626646785828085759168653112361234655193530319981994290584344545480990814642978472016104870602121249163875097954905871008058555510663935864415206074497119058803922627358778418445975337729759638473182102369212014917784154908894569154694733171087173373828714249510064647986670379464307825816514962420376617585619555439657744727162818039400099537742329005742156125549343637390228740327234250107523647432360670349003640583374200942445523595704097661909447067222356790599048382304463174589237606708838017805132886683268257660710933843125149496036018774246611961396470818585448475718465402646739764098252952659099183071017420080428944250449599287743495954125252892981820182203344343732429662438985917979386656542152500009617339489083674293326677361932368043918561179965542671857503572185272485894717948159687289767958862483840484783874273538168380166170464812704974572845535257344556875401852021659981324296383224645416640435382212187265490602175488703882638605124357205107017217071758534001382637361209169154910658590161473858845896378076048963183630800469103741779794695773006815751034420999756531129666536326271014111450914074617107142254413804123531426737271736678302914692327203757344200115106069892033785690130423546143457802550121373149139904516774472823777915273143072005240355239549619987235326754353622997148095897266897490635937827536048832696513969148589148663037765191715879346744397089335718324601812525511223309474448092459640672956074889293924552344912920547647056322046046674460102437317371477312468648540377877990535557062008552191547263533987647204425874863726113245801980397340400351431497713441644395390273105632567480148512334191261580655553380429082226249101803075810536989462834812491665521752860543885291272595129182423808153973258381117798708601614806889422294254236874802615770355887930294673177844079034765987892401611364864622578474477381342565615517721220032121104243748169752650224966333990260092395572743321186588847027325516510519651068862233428691976817132616756051689281547056358460548769356580589591903988297129149748523534266756209585865251694937533370568741888385564138123162647921140056541225584581515222643404706530527958855315009642263367816588083500817393456052996217069556650098597985792622079272127841757506399622827541421837908216847717372300611107596171634798036572696579316038651718377443506014729665089272610087786530638266251484594756110814216832842551177395089327501515537614911654256357145612523706182847824289351291318298673774527730635490168563076553769945319600471412918440477138254196085629078059232305464946651876539702782532058541210979019895788262268099852689917719100795569477612541266389547815178130943552754999393937936058124479605471065134589973017274211751627857456859525457262429331251388100460779271550023749276659104244181950545742414505416700813923709685735227281837799624469724996016298869542902592630168624720512993653888540499606659826494863604957137778268122833738370493017494733603734025228852951784633229093489092322558027724131419899334892795914345044585292368140133703460959081121055095050902674364702721907954943595143552232031732580463871078163857956603512344314251655585694992561835143342684993867906448399309666608326371492435938366502547480220177497728168093101295164828315245838908213493184054248353134377332621683728510993802043423499142422539707894676372759946452974253974280792083824449825933798889188494398889339271674316080095167368885765472230821896431626104537777596265320732838434307766511599484655594523115675955435365937466816367099220989478941844637498908876032073337147957234167637311084208488252676723899493051015530226660527435877414337666448813870233595541626949222787074118114337989294142866438904401409888125226770797931332313511867924337561180909091152857502062990791278173211041244590542738940431956796922493179529827018760801462104115157842119389570450997897006887778538632437558822713504431390331706650674355672995558587492879008896934492830183502060730345484812408119864385875830637563425717071441592444911994077520319942051235164665290535749100603383767614673884016197309171441391514296497905427339797561697453794565174230053507649332643700213122763068549146108598973326426493555103796165149409335357484768018725202095004581648944813103360662324883609222476526135961447104089747687381194190135383588489653254527363718532592448727256336028606896132399722920450831732389415699010402125758946101651182450187003145343081304875069546572129834145014797458825789429869569498753084205432218600323417566282301442127223826586080299733670422512921882784377359762483604231246335892095143596541623187822067969276855705618172435366916936677839754276067120766774044918682635739868346351892210549487355494508383780058980479764278386668074234190915793239701793273804317639713195797328196011402468595419552585173134752707153675136200857540461355347434066703316952044152357168793647970626484642584113939801710917249848399748134631350404163174100431718851748141928835137836341910287433610372973345671637735134525272665903934719897475554326874184926490448243153388197747870743478817126363911280019450706573000792363304307229093941166503225581922261795335030405073537651644226185475473229090518226011023188361939864911606966119662082310834837334808231725527717344203468389439392133522478023726121791692006723943060390418024917412923137263178100195835908116611347701174796824463093592987150408940929491338580337542502262054377729037836468396217610944103573358082935783321967800336615917534436509668044520654838653136717513006588445721336182302038535085659101674272883868680740460947297106997974607090037991237829634182386073353622888714023813038494109596467804848960678300719579468704859140942859142591319127195407668815229284307808824773330962900152298808144141222455799974105634052389010040683603867866315586245025382208577491460107079748592001304971189522659264379451961099456369495393570269185637910295271325020500976647077879406691977406133621865292938274245240878450080885162088524925423623615641456381745573151752552923217787430974511319421935157765844531468819596511038677465678917160806436227797364617641456884133707740621236805268742877400955280298719477432712794794563211622471737971503264375675855196895264435388448793572906298147758406138498292412001672423992570460312326289456586894414099937955421135533925884219755153682276529618518886469036711907780578174121009529507287515292985378734782558219282335769799071989222668647506133327977588588996794555413365053072392488456833804693530256202120941292041861296270274648334547835436675537954428615127855478241462013985775659697758498014936845801080535385981024804943902748256146096077034546045630722723100435116231683693558649913086250302585377827471756056939334695520789179003588550223165550247547930814408132657633716824178403077970437821430069236730604581245514647719048385209688582611814680896351674838477274344562245837330597580977298526352411682958977647821022863578775723214332020306758754075371741587749204998124703359954479901765948769736374828475322063822769134749760701736985645048954423241845980260704988119369523367059156418402504183033903787675885085717739798934180247310107646122401497964343506563874721071599410107631685022130489052607697400978359544072001075908328481800609545960133139105342411095953822040961880954644646693004531499290801658318678762519726661472896243517441054319669387536263634240474979170461240805442493677688685538473873594460049930051236290257044315227436214293448144907111257838254134842433253836128875732329045831232064595887561473820169304572464856056566359711273052494016809151161569802661285029258279319327494249647577887181709942446712296114854956218675170287041056017005657197222045345687303709225611762966373650976709185934337269828604711270512405949204004323411607242884990626081006404775051334232956673766338011529473712337354488444340923581952065641336846373102058091592621788279314701779948486630322553421383742917899194185963112715250418422822459843364868639932909991540621162701419968355573938257024871570469892831285532453750820236384842738866235488296443116537416250896695257944492875698253311594335614395650746902955794980196646599403022251870950219868616999830560392228087548584733054448649459590907732652701604178290421857717371797026115057477167315331590341226841787835280036011872087277314446621684640950681848889595362357003634437157951843754706056380157719608100696504649732147945649485031676117787189884922041688045421294670175034134583773369396135552110752906212189355367453807551665882573764040941906526909957450427886937565504454801266114395279237252301718277137779033583778311186836438136155514242563961625406550879812588273635813796606056628786273177417445611970587468245071727258514739803202736629214006674686477044435787141057552642741885935465274647186848367498098873367275880026303875375789436155517635406996631081019733272532520059839194050841229195844366420398808068284746269876779883994732170674313438784581204346106476950644190399693471797363315214527923467006116125985277157324334356504348587368518094895408895404101026695226979224495348478080023945077483127059328696898854489815630058681295688520354678121856265392884405931791425122897609515469732045846080312125581572447579337830642254014509052334478785804140153829272957087492371915083945470826363253513178479013390456481547389462049870916486210130572381262596694033342487219587308495665291300249605759751041599408406612426242210951889688087778265731697565726893120618921067716164718931929531740792781266927308660435371275824247098010289157110792224760775908693062864453641769725097808937960835513862747219218426024787032758221362876922428446790209468945208067949053274616486872897236097848755570752909988295464948960652278506653398887136929834547721914246090076105220093403978471479388297146214653177465367448890066685145581358558793080218198859342245919450135092109254593507584527332515491352497792008311473244486878951595982748590700217337765509319820611623832473938808041840924973358969362337507232776943422475758731198700387439752564722277917651256265137361448831975810454307623903688962219728056630578384086435058100004404629918396273888147575904904610157926536053046834410486993025922324049580492596584301184094495065209689254344491017616678808577781598427176974397441353310127511730517326623320918645690894619715601068913452856351699304049110935795541379390436437669692017294611817457856811572851196923484941234087227761764864060535798585102617086243165363505558106622270761934219216738320541258130381045529715502704829126808758877024736020830545770639056265366821921380618258312480935325544671620175724723722128688862159043424429272513530685036092342416467271613000471266521230513010367276519468152050823901058332312346989697551572379272813307274213483117544379449181142671624254847582482380638466024593490505353906542676870284830809031977938882282774786642797439951464647884081870882039026374544880400407308802906665961883259199508442709354465570153900674054678157003755724912476569928280331525308176276042669675798745480152353129774432110641844326554642408505678657056764852843722977471382941045010116509468726888649866820495991842413589867470330313635634090230465755688511476624849312931190267646785955248700752772230128401711452072103878993028648107152563248405341167568759022873046157703625459392292456857291039354190547346078611757168789234857823978036879133849009773104471265792517197887613671870980198787452087012203444819812045363117918075354901046742299356276791687152710988416804956768743109214279678506629161380303737822669234890284519329936483405341251615810805562010199347606553898908717374038750406591566165105845004488428231819323387334303838915076799534403351782373604734108782332716591802568262669598327289879941357964830279040412141844968698227840894031992180408079315471236548662059719194511232438504083763085843377239533872164444407792656917664443032164023979586816504767096318113568990380313575982122152201906072534700764954856733471593587213906356000793930127398175662659864654358230653667900448855163096711409247653563300814607320129777334766737170531960898186975419438515498639570764270781645985627463719254620818174570704528456046065089121363099376650598266248819048834335335392759476353558010460345728385120660231034163892754819047546247508645095145161992859783376530744495602879595163330824041759967599763836578873130271278015765649384618869127016375262060588145528151428149694043421273921539282839813289263415134112233871566910240753932011978817644611054424346614194435642988545812334171790068251818987824442594989960616910346898519145897981759234038984947728106445325776788826633531349578033066242266070160018690186260535779859049835527691015266893414694083233850284339241675012410466647841685539650803917876393738692965482086191730259743786019086477942222525930213145986032640391935388987255060323290968384952203507373589696304554752964494319995709783565716597545042106114649955663212629818310621671583313165704700693057923850933889406911298237930699534432005919039013253851896954981065004304827280912057032842360467297884118822055400923809103956176351852103247569885871896106996258472178896003064321082669347483280951029373090684200361738218117363701928154764256003892664027181769583019549268409472691309543466880680535428655916950708040805078622667068388410215339391612746892773074758900760781130808265710114820500017296118797564192614173996816689125143770908748671532034472070280727433164886028397626547754296018405698375430893387705650909122827843450184993472645792933602393269995498577342174560585838158091120646156449572562626221937845849573274015446301893889751358649544605523544534361264671065148684942578514719936591103274144387050294978529434424549129831094390636866965105239479728899875462589682132016721501997137391951198755086415995256251560882677928604888703952491711694860268488091956144817098638012287660088473807282008502374585538370563416429941353394590259479775484354200654474490946557680539382034860010257422992560025411921709721974127859924497853472654149345846058861539503649628110833697639104133872447488683115007720677645875879934443568788484836820860569060890710279581219237753590083854062603748493060291653094775376274307969825309890511010576468207057088911382093133126611670641713240373466472159345563119070941781602835968023871376081097371453099637678752714048056222774556374750919046009611833135243360384843853839851278256009892424005858275614012407705177792983230334155266069422104039282585389692833129863649707379571133016275957121173560061363002258714199417345594505614916099770920042353467246039111765797214555311531599109769864713226255900219201965074850393419188620441750840821887638696687679788175263176715816467330589538995500480895877677994836734514504139852564644295825838738834136746977495238655334543567077319462370585900934913285275021297185966683520838978073192996372834934474433675901868817516160877859764840147543361639990406944948395677213326888600018276090433958548738056959521447261316562598070351530817743222796332788814733582144156992887385327579224430886835811567703760324679733149939755849997484260097202413187214576107334644651713747266441381457832710842962958868796061482754633294799265992362793012533466749156060756473585718634759803468555092414076485603857772185212076987493959773054774228221276940834412765893474656805572439419913083414839897755777301828956272661655050997518288546990609353977502947974541116129854867003993716009547408508154318402220728915825772664655451272650191101020092061316279236970206634191962197017825144923353754014471188990745668898843549787752328946480938170389847812942085403316265246442906613485973320859563999621372017458180436657701416418765568852603280927473947321768718014513031493798827716097681942911786082229721152785859549568633161599527597431930571975104522404609050277266180767664648296550935997533050416689131753437920919650136939935324462256977098597939315055649764781620799437881756196504550123804799242819072519697837805830817773493556076273006392984234216226913934756759535389754258512074495320525153407433041947910647791109874967994009829505962447534238351075616666325882794039639118328735612858905034400540230536106710350220319567904142100450107065745876778512649919856792856596763423083739873031522790160731538843890944377474508259950471338365455213421465801599484960087289297187056726775955820554108116067736569004218975570930470381293214933517492709683662515182043602001422740936969730896746185408721895312794277151529421445895261952243039064768638450033220632787045707201958402848190022070607532586946651118374483097665476255142158870362421594783557493768562551796311043549391029667554549228182575271317146117626194563512388808769073966320435653365171938235962877573769781024721590806377082297831372404161561820201023285337850660717120844302281566808785570027773965586156681285261564303019734140537438257572293596926384546371302244727924660749669316860500902916491422641244155518859877006684704183552880008965734885083931255816981227601708786608243235416556016142896979736687173060384771722744745049362312709624512542633196069978384224250461237377696412048281488858557139589210938184124896138557778539485916971473311644193440108589595492056372397154962602199662715430659553864353028249562042026662230417604106900606559789807823982399716880350414071855989740967381979412897983576678881878580769570448740108054391535854635858921113667298048205266185104373865913157692418999612895234098094549696483764393353020295715489030121052708466784671748223195584888379042570657753736005122929080035550450964964476387738166259064406703515708022748488700907432387499898680375458947720582425235670191404722307229378118127550691892640799683798797812946127894966198715024470375700329151685769857556064009151288310759712367253447054461795111328127868902339760508935086643348197450842759588433825905963605779383700070913927847506904621718918625603430720029313000930674342610001614967331846354388191451621385585515205536604567410609605190019907567890833384966555140667692975436894012592300926886986753774021074529970587712955088877774223904988164605379654147421152643216052823436787573976724581368403251827091067180091117045561578556207187881657141759974653629975953429153111607148104922056513514875902209755403937547928281263440505632756702999295401304459240883998543839018386537171951005835679890191509904918988072746061537942360635791119267331009406960679700355910437882191001714615043053605875320790599145765576943710101856508212389749782355832595628970319890603295828577829242210635319148899096118660910393683640745415655139566480890084904884703020238200867082569810511565980323426751738424832288694773922739536057863849390860723641866563733509846782936558722489545711703351951575921603245695593478761734309370876195840851606337374141768299629948290053396701710823885581920026466316614136887190021206709609617389245793342387228358774757215754332793267837609048447486125352747732399168293227629734337275901358893287244761480228650313497125812153488895401302447412286703695188227965652720154797114257220597338304941418282311453333317790755749664046196071252626986438628376081052601928196267747531579194380115063361949999841868054094699953966830087497813978143444003602291167575263378300685259364550589353500040965127443687491861849557100042247895879234087833675312555317891444785545941740978919247907837291596427732691823700938411067176235852788011552511464469717375743832190386855875216889183829620101640994935279846288634491784626537826556839536235579302602892862406751773609460880947053141548200979289943884125467198172954049063317673217674656096589161890789510163476305270077783886315887485913396946583634396645559635661745828825950819826058918763063369074264625127725155573399286478683356482768393902553230727126788406802672145991094384096163482545580187998759423202428243688685876109832445205672587237872286389587013770721062902695730698242966558182150483186688480964516576576292492192433780921970283634854989717189431113980142903436239804806971548195126440585348738974373190533220861438287752641677367174953064906012178216602043183751437605904426052873438999643905183638674112728255968006234459546785367535653936356141316354882795391613857856404584331483750233868896830152086253828099890736054196136218970195931078343440573473303652275941528919892850504689816361462590362378717759140673579342551378430034814067478271063465077500523928649102452147252636533644290221318634247752780641935291460380983336143701126929923103402497164914773422155573774896834520998600468797467617124557589033159013554903059532908535242645462545787924438490111404423828815914986130081702034174284208191467777235675365143883092868714294333908814083095161277736977916733745952419875053198824551314427308538056375759929058903623070444860846642203578048136437954736395891474834421277851642035303452406723003221506808471164085781382945175653497244522774362408106662288692748222275785941373756471376591402247912297065122036203522821568442896439079992817511237822741662588674493141513431686207364688570774234470187346259659179771668427673693083579310683007277686676365187250881933303881774551969461348431186537149729678570992708731735749739656008269984014677410554336722207432516074659018096110618369617107744947449183039983544889770229349584259519758609183678974639508247908488624247264042633559483904198769903749009498315413069032757284574470590937525007274608882525388171042575722103093475466710165678577683896418858746745637320403321252310246715290079651848064082709281884171341356368031592225312244918159925849351280858660611106731339378652827289907080496645294183537361764573082903413397697627207572050766690015708741963543282720535985309157329166471292095962640348960783810366101711260815333514282682099608788372908874086837074846370680024674487367713856877539184428317751269456351277871745015713066464747619521852655211079353645106574491395669815055432264185391739970734571494506666459671441763403664918977998070323482201796372862059489056042658131060855233940218052803963851310664562858724353851016215380613827420264339644402104955837285901642335822936776821544551263423299785701920249836989408210891148170577127867829231760434888106429557505074596054343371785255392406924643490100595081172544904237793092586264231293464531553115733783137847802927449615183345833095971392037873927067601050402906442484769399024823716951811572544277755083933155729480144620718563758597737871075449223909778642201322540592877303657838560835739124559669961247345498776042846316218999083411458962331558468129520390762944007356126328998747181502104519733209753509817345187671313863674909078086194627401214435454458886312916613321810527736173919301791775429381713466696073609561363892593451614175119294382168641368246359974572803013346863490264223753663514126058055951992820702177867916701520773355379019233429528116710821318800705911278720738347918607994576882943259294357158313750798352205884580390016455105949709043007769074697582841108346307073049036628158320464619228380957753350785608721463456291889198083198560800295939428785785379266522623996574793972881786525056811687226668514850996923530824513171126435301727511260364181219681881668519392668728510379931147905364682834902143711641607875379352740513899206904090716600693628706587770890130992525509968783685418169536818245209427846899457619973404582124617499524945924647866765905777287532070951483865120978744384231550242964477712963442414297799217484862956617396769384232294283861152073995899737394664306993048942897480961621947396423171006258046544474139873638928576734508308402901235561461340571683244113034737560050313023064479394131361500936498132893242947962607338976080402407005868129322516564176921135461589898334750774295219059595282459078972490133180122456905785216332597231858163779567967708483000341138527092457484479993281640265240970391241954255851710652452225600877233649035022257700247464361534225546569052288126997318530783525555973251554733138552397950892662337587136037267120029589672596392139727117791971643120708197974198520501734413878003090204245115595007680241556519942090443713528627885037924679325100965343100687237422943824616514636722229233438022717299681374037851272037314082766915008017824861192077754704300017035384167963898864877997194833744534540159765541734664011359083264045294758740682041666930078175834056911909180565431308256422512471001235261453189024211724631192152481871616427905771995206103773348558646806971301849743673899799887928255396496014765780089751710075370423402585764240903636749991514150071411203299609863650054110259142599475233127100703120283996384044158663920516428878989849122117209958814808225613270877165219249547383630211475363412455873094313869520800951524610864992923782918800411001825556486636349417521145410844465179638804474617134859796691110959678424554838897198725945505758890211282441338591380196508435667236488194195366853858692149480842964976366213113337367719207108021851989191583672921460361900562788687905894199882742165086645590269214823938250036340750726598196457887101351494570140914558474070001285752161281161323937574852971644425840959112502691514240829952929749070321458515778006448845078600321642070741811867118352565835747101640354970282366346681414768994285194217111099966423314614462865649412720238714326148206125408360583942744818631649821546805259646962407187692532060461133777791262922085499614831753305204095024800739855157898369534707781775913567978795249836836888093475539951441557285716655718839617924307086840237087155021186093103849806262471663264926122067955900799898773010047455270308481553638530480274402903739757976708235924841902686187882310426769318162349266344255704233915391621285288560469708154953050924112636830278842440284379662585644179289216497780114190283618348904264903358466136608350664552687677199360666805046692862890054903856276131102934015417684001304890759769149357991391658665725572922759842272626348928791735522131019643025571636266434552681540290430657629493996723854252425804297215825452021365507699600170021286866831611399131263603504554491962972342531218352854064439486433954206746440681056110287069234949079631630163734454911401243622410333727340373074298917856195303866416358501825630951697608601376811889005453668946220138948451492225884317696309444777224185328848223851453572611055564416164229256449475587339149715331101315216594926392749742298472883670001773317720597229134850765511266649580519046000180994075111241279797943867475916405083975902270635070466167293989472646656138889336631051018519589250419266370866392942154138051064967526206154689636850519794165908634212262490176669174685074861933063259106332780013284712649725164991779443416597159465362518298446154817107182568666638125897752757637018830274161006096988256022823028660678675797122711138695922568636758864025543514136542277261538812176454175799755985821806210585170800160241703761077701491315025355201021332308925130981155720663536243896072837660670280895790200043155715755321934974420359848247794474166723443283220077568092684972327097527427656964720420142053850743415223035915726229777519405601329924155657696869283449876155319145682155693214260959388718169578991216333545768744745943878586802517022660608862577673148145467854922007299449628497150022330190094936361946864464624690882943151174936927567183050775353888292480666425522629057097386095739156777418846122509397830784715365837896952334067242277420511272980581028537802356075456657619703055190703736269657831539320770418948522341200298788605123463225427105586790733151869141043515873843536784729730749151114202646153554200909561603041204439743573952260729540859496117448286572961806106465364290767239660029966672171625227453996207486254119816967285265843887803210327408687765131321079490601201194181595932863047095537480461529176502893642361782314035945237468629777503182405665481628126567483216630477450628654052584209896122682053554686551983779896563707895113695031868726253601370870307238063690314979207615240681960657715033192607925230484444024734348493369475857676560870505686716506137373180858212876162213280866061762027736420671495236330656398737204785067891317904732460973302238043600187088325252463123273231765017260057105198608218743937138244646711874509479720861919094661077603299022545727386489576906546180787927344625758139055666292761813856740041103592244446223793145476394838165560624411454399267875735254668891724789255937620589557353312775426265207703481832775155842217109453850291385814737083436362926607110232776403362342233278364011967512089495771527037452771807177411289142060592818926834487236825749850176739095334235027530051260353767573088915496143591731941221914641634377778939986097008201920112656102173429207910768361793521255740220520952760709080430808332274439267369593980785862776010625591143958707687265448934570362703327124134839007016420472018674270571842265459542914623522112511486460413719396001096763658884554409128816746611311389119885264266552501443214153630210305331937900833507460096719721723954713771376995995261180734125445624237100448045131253227910406396960118625012603290775583430268963823145659876694236765208072583234586067522735410754445146072902213420598609679769102628814563993676008311459438104627386422282378078728305850315252784902612564265480673908606338869512359794178558058040637755051253438650075265784511378254922232456792160366197737232178862704093812196792242088445815823783021974612492036721907154345105674006598626299269271703275923011699702039039284848659543637354325111493554007149155282869725001139901743980403489433082163895039851050289278591489420635976197268488112278261619940196666127061618325976444099021976364178440090962757184802370490671858062769852775264848041371936571753123153563590599922915579740757942625789919170645518380588704334818679850220244100892511904662199774540052601736390877342202269650180689460938419574208358906204400571048895307293221815271375620659751438719576662780035535762700283121744622221142791454093316551089332100179347464171240961223224845912393812842047976946055937688897912902515273853966286820748924997800929800025027734695793580165529643958841285751468526307102784327058239136523828809163442412702021627818005565944043205033942404698162474135745026400984741524579314896056574645510897127028963763964050637483687208633148617415815690778798787486146666363821253203591328471963624976268699151220083648484782926524454527633247707735575848456917511802757728671803577988358686288776483439002005886611052520657223155028876398005147481063935926009869341017337343294873862967244027257853929174534201783358302367477932322319130982865731288814003327216703016745393463181533249657657017555731048353604179568396227620652558147621230345678417435076664055208894031762281143672536005690776078556720263867251255544682408972462486580867476029665994323944010714604824079155241620169137044796924470150173488420626405535446982279536251500774038956570912728278856187956688480979797193270536518981855118378721329475277469783785998602390190807165570835587787801259101891807860230481751218622907765627930692935335105182675165585128615907477889253763499526634223165860317366325171017070575393242096322575669386607208946874825043882769256951674149483259696757679115959025482416479072728723011073422134123274396331061511131125667571968406964428084168423414151956065443745803884358965623122162400819599058403128456197594400937317435738391262600805462083492813099624463154628413103986741560125613888454610863410490601020398623223257395531915742928066383899605277412786288734602500659433991892867657995746058696421979465545314240470737130809897402929961329080175457913693423089432144732569411973837024255514910264690878253125743124549073012837839488412904415777566169984427049951530787936049042266284617766150734956909554755592083812518001651476381735702780373047961514974449194738896495783382297271912899628911790854451484548690320350702320783411572666608742042241687258678422606938913129706735783659402679405794822289126801541413116098610397222612299959860840728868255274210461491165139403905287654198687512267647406385492248639592930797195698511243816049949987758609404448030829927353044156356659404881219382810293507786463312096356111292204031055613597049137250141926131393487614841977709958366936152853683997673171139349212574708384815710811594611348842396946578135226900813588449745824603824350429129971413443703512569004135483460274407043444209537625962024238068282141852233283905559071941718167523891230637202372845739872776587639936277975408582478825580948870315472608387408837715335152789322309628070427611904619882941166756367677386128904692734448966334578200761800611637911703230248487560637483576050258811365874741914782368084687709381495784027587848405428594192754776717112197363331095059332006997488299174962593270557200163872369277282853953535346519802337289235644030434676315759439465144876316721670072334890308780315685275898340635125506100446138489998333381077977180940852766373139731515212663777714987750121782543003718122920347394719358543584146369709150491833637919218279709763988568410158123953421085984849128387027490450201448856117246508174797894892019086059457583762732591284804886316875181337702986547321058227857735022650104970808943428713550034481094263775132718104837070863430934884433941967670355187187882904301111294474800638589311144748629631615781712088709807899178848548679643735411419645881893359341577877155763712461847418268998538962607176463020908561404880775327164828198405622007192263367854348250388783121624885559877243207972660545555334743521727853258327791812188399815278689825858140508726313086101835091883116005753400237828433453982906373564168151655486358105337324113297209242928441215467629894280458870217791788507918275952969669171281738267582368945917672312692725867174356894836073028638291150303019801476160091502902012504738566829374210048001585043851137741801579876522328242587840425417954826576538277729696311277103229750282290537590654046410084072755012927568689101056621960948290021152897830656891221226284061982252408927554561489726839192262966004620920951762997330984507162770373727142660439109884482079814262218117090962121454801365189359293324330445731551497472271463405426888868535737855311876687081893965870379453527719052223525283532831476912344213840874032357838770367108141995493656675545670248630394859846395761735365087660435825594142885576345244322914381637559919788995438954677605677189283788581064623984922278013608187529764086639668096778609117708516476609364817606675967064646797215771585568812034703844429623923177549075834085629736041569935935122364261572427391539305900477186333573914349922383968441038411368020834780290801363937397191881356069606879491330337175935164458560373406488667603265890714860254420879720977314912838753473156545728574269775034297854821682709282755811924155108529275396030210232737666826309658132887085832384857374138985803845858407966737678274217131143040669006658355043434592442762711932052244266568522381662419943582578725182258692883170712799600412240278468607650809344407551951561742706046375564014111744978774257399859529810562385302001477168370007744032480049828212885161345841424102098210088670041990453740489775512358470204344622735556155598263076928564769466609672308086431380886749129966485498475710928322492987111308589962198460498592655482615215233495170215420875506827312378163063052426343268474952963292694177443147494805076635989227504206048759050015880148284132235305523635799778605797019106288935010387940642423228264400136854338192928939083735507627147662731243220547025260813974507264908026770252041596733133433944992696903681542619971181794797073179771213597802413676332324980884532732870407448496261067997584016234956776760365180501029590425775760820578107687382272977895683062513693309002058756419628514640508633059424276354903518974102396887925802463987819515527666162381442113599919973440606666554698934361806751433460884609782322658580751582712299504244328504685943445613583604302361330679228103485321508459447191893019801253303156249508560760141292561925731678991595341129483455096213855883204965221710793821932054199484550990404734515780996440585212995597108772244876502909652817560838148845350727004005896771384783628137380205599385793928068103173160190133678267263130502864894621608453342665377234113889433886705864545866761288852289967335595519637222548371787483427213153663001753853579841541770232529620779913746339140879010821663214890785324152439633530600958083999537642273055139566567717309730820460241506882119064704177549741873417250988366484589297734580324760970947168959038323065365728773891976471020149050193469112766252800950227522338215083193014988591036218886785113729355580735070536054678327699580078558209270289766540656652662634947522930420432594565505793318760940592353656150077714081287873101482685310339102549706432062643600746952214886452484139957572279753662015497638954497993691792912264020712314850374892428044468089647578744286611839908055013973314461608838992034655531114320794171680792704702637234865370373556943809780612294937578501138271619941184271497099454580901145762215985376560742253997062777119117539486962242124890615902122732597790716611657222757989405196653885762551942951377485012368069031008275511651859285562454965532848438343727384037680466475008167669851241013921089430749997575435637284221790985364830589245721238771219264035498437271531621690553495079884473977439750142778086645756245999356752681950459321104018637546804809403332549453171680909972071761727786902651253423736703242375913559632322504901853836770012377832594514577845246321393348450328442225350360327927645580345773830039127036458692964095179713841627084915446244814096371750688442331012103527382651214566764373208245309038346429715521511343719307218767312065646628764776048948271621295601488410528067531660032124795793624583166747785187738866479008012236590958130031885398274471668906946710774434000134121734415272264623657784922419826462867078658624272363775009436112502037098763744329499675565408567308848443343926574279755941798491345792346135568216312642570266084765314678745002069487898599369088446776186340141045733659767235166752926848698921484944116463443673936349919447734574253921122103665568719149050849054817745729352079642957644969315682879954721782015568369622786786509445965497720139765732860427598934535156024583428163272001121918150264676716695618472052532624540253728972828335583126675535430708251655451375615339031204902213473963807947115364669827535837209063736060350001244450897756756109341764244264943407158025622955740465674272851719554705516109597074489538328650530719733892308475712378424814738972196619700072746794486289154104007921670895540321314198712805503672701683040067684687642894163779211258350660730809229986010419924398327788492531434861517886551758128622824176579424002125230963131791244735674432343045457015378599277514478617800458807548682098215028894202342127608953702851129505154329988055822836554583526282448294976559851853497155803763064420644260441710576693313236902023431255456796404019578552971697487446932493376737116541040940735884535739076828720777150932211639104401449472526047427803000060056418426998239118439567668729180635970068647386392244517525707665269327224352227340650233818881042393371132039792721368547144622081048611164762558444036171963519934112619077379771535841082709163825716499215340476767005482024203081421291044991509545267487718509782739609486003023670898016364240642048853060537780675910170614830268621567777061875225670018092072833361681179034403895586633682045588844201930452109229803878501985421135723407857015184301941733671631886755902951253430647954307899216654996107329995707426292959274040010574871574046058137352130166582638403721769551109723146766026234215842691922719589871204832964139635811004805387971653014737759048061008391409287295320497800882298460729769641014934054803535883112128116607141873186851020588333109612661758661408824400137267142616899986421737196966136766714560841080322200905476873267432778297822430034152311820225633287049981765417007951195799175224208703309514067932162370668010871005099413486598650720337541183318250060989432021383920340413472140174685912875866680213133262155184452327783960070931086505855444612965821186478977918095886569697502256009049555577375949630385782508456899026789013140191542535823572719058631249644559345535577455110115231042979227651575676043817288175107769452101872072047354845397062356450989277526435982043829844263369828663908368447643766227733953915156596800978987283280572461043380663428840573762289862198167679546511306996119073366004813443990765636861230884524692828959944073820690544487912085551946441363519448556932332778875241817597696315114439048561922700226251802389590382119755239816371062166520145545243522331051386115703606427551213104813615715589063824814180718821049687497714003910777561115118414824616435843686025835010640661011092783242119353974523016676845140870254296754210194461847981422473705230650431070944914436164248717194833230245583620798976850555425104372428280932964379770092297727899801097841683305750206911661353339989712204196288766240831402015720619221797130582569496077922947372746446794768793114138880847482535463563577255389877503854976563219460788105366287983181010623612527350806572565136345813660695773485797134147986848872372120556984332367768637308063527213891261256313271853312923574909945394867692094299721123722115541343535155965328733576363464335219645032330912916398531387844795189299588444492966527414032839848011050179930108991560801547831073212928940733699551535074691460842029282062449447204961231263319571046176159172747978643158229870085374463550833032947928264979517424618245554337387900054485015568377131352542786816566125570629804406630456360441350226776554766567718139157402657370421032425373990667433913631848221165639987139997735051621272254509107398039042550197398246277567693390730137040254282593743490994676404077998876491261882833497291421139375812043397855853320947830879717984204827754577949823994926082963307247050409552079470980692423564437087850052606757843511245824972210288809556141179167611207259719661210217483092295694404301412421777474987185194618053384949765703287860935466977548995007226730083629281091792068704464963903722476919506447386376854378190529288496652610463606996274217592341886716309222745886821382782299663875229041500094144606132322732678440547210491600288818203729868350595316368932728616657237623536030915295755213113365915918986743489781428452631618080106085689676777732876036184909911050125227654086004209210362703730012087368618831278341822192160148774799523806784825316001707503696907676225813201867713612721642386588738833255268426284019624964984215664850375062362282779235783592115705935974417578038983839873855979899451202058743388543721243244608328629982293591593206598160002624778771764736822023207245529130894106490318223579529753961570531362632567020664828023773714129388958407096712682594210576969780630915931284406589902620952472116594393075086305684181151782810565960231169433029670208919208382556751006843926360713507719523086087780759717224022811185291933119899144715313142137193225418171262371016405779443192615535950355769774980900831030188600822025636103624684311197726618831247443705882952585580538756480189581920687347755291993365135660736610500247473052945380466590342253225988508250275222641946462284344386325807410689729053669419226418107191321316003760019698201936329440298045617305150293031159741351990552640012115613387112814526750177059906703009249111551804329544212809897316508262849633509907879696884932523979729701688608856297647203673556873533365514901049475192926381020276620033179925099624609357095072726020757867727670585590457862502790584079198200452476115303387020734517644129274372346006916900486011810704609295539047823790676800181371979925071905670804792482574262072012165998085578492208848639248365306795780923899426480604650905298494005205177885493201855164990541284372547005337701383525176405177112082304665301502943272138967060365212370160893229041495591146458347767491878394842044730672239447183296299245896383550559467273192048577935191205062660646267442946018809301120940168488874848373340383483884631754093495776374183603928182720854344754616011264994349572639410067642761893068076587206494944516559612084620741636293886521366595387960879569967357090075123314119698102652457850692299315281113109136802152602322757996594328923822449945223675117020019368528141519106415730133759651985312171489936684427249595809597750279836535627791454728043488810178242859768055843241819924856101427910496599839983897537293346201086002577046797539137754036888653077576153213387042030786791450068554983175740939991226617255695453784433857150630166896669603519196306109621310325911368873946295780817498761795403449218784786819952056805824512060391585402542605693593897383019185537925219445648492084070373164502938754122104097469553227612008848134450543576071233629791173399266262408142587118257006682136178042920420344567245741724981509906907576549240875055779255665985553811038001649748565340634662694550659160007312995940231158599543187080877047666459169901479564942085150188049779867365717138352468763423075067579416537347452036312643552669508531102594002015603388617914473609223997840138387111412065029353324147738824371373400937650161181989809058045518744413455286198577866946919579035011213092240257437545339087002424027170951374800390890946437755786713943556555836376314021039313033827324293371163355513164589321198405106998491357469784885042643649618312617192453717223170713686700884031897344015062107458603312522261438577227635407684349959681993057225438438866099527814357719858043646098615993192693684974804524836708122775144227268848111795167026266627261714362229951398008912523829973824301257644380775830991637415060445027317399306648229142053831853439560571610752132888501983047752097266255360400217697012138059225848329292154355955653422533444626487943037073335300150570412768081196359399649828526739001533250881859932873647948908554430901378819752811359440418857593125879414096026039240142685665457492309897798644005189592181517354202252661194559838734404829846423273867442276821960785951279066943191317376740351072431844612579933064018595773246136082666995209722275887217146603895457422314934653104977866428383686204186786631380134370272274930158933668645783433774494961766941037177773385390042173062637844281499357099471081546997092846231845875108776063831600495539034264257488763945177777821124116767859394069647137340907195258321544504774095373692318673792934468929146983124232793801454093224971533771710191557137937010464462559918780993556563665071315578572473540493255333028937789280760172561405203158143051214825608078320968415582919660516663117822414934056050031067036607883096086776788309710850409447066717934966860958197551280671987518198535646253622428970190703393606121651096518071736922648265722946789598294531277667574371518053345850526772162405612387008210287388813937921726139230312989798413757483530214660154836983172283638132364379866132278072508428758527681128333641880200840311471158327239133500826763784725222933797691664863239382235710041696719288323990827108160762228307693013861897269463530099337958573981902054881909970743087003832333840962600544430930695194983877629452088065656475711590109935447492261099192109526712913308928496892298632398864705212345713719692161226731528920322625020923563691800270686435317491533034682182191313306209356226259977494056170500566353075233144825537272217065540701232218788517179591705660796389594094765061965114222808123171467379495763668120395903329211377607309451056527114389325774930959745305295888756535223348740297687146510497014010893722257867972583427182864625681125418689072655696396735175504151262067159055940415561645552422619071742737546644341950253887765685425731635621160582394360476958831513328276969031446885322504764053680577594412738911827048615632226657335815032479122251432995548475319178611584111910932436010124940288136022906738188653064527099016730927048907079319952603585568381222247764147452093424640087235098088100676877276175828858794377465532687192595485734278792971891560105221889921658340766134726367456486694933144043203217458625886446046273018480184717043402543423730493688213896706617681977100578191666487336488319133785587165446054374264523122438856366520500727372274741277559805035818811877225362676988305993003206335982576171487288744785883181635780090641406525416093945014487133138315601030921523413957368721011767360488602862563782734674393289699424765000569221019682150310394210000063056146814538797276121744282177946563145995700249597558246251944059101981993664520411437174713993552745426215128939610371790303056679485082331259848299472472780721281656410898554123455458565810839654258990711343767495423373154237308180075923277284236017980544266036805132252306581322006119505101647129858003338417135112763692917895735560073684498694257947097483665975376213749819271706442913739217446995375086606736090126750424014142966814844836634027117250387435028447391383506017148864262468011295118699507823757499925504520654687980553822690411944435906268756303388528560662718659743047275619622016786179341528382739991100399627273544224989134261371176489068372552998441319173112661704968485931803749935538696151444006876764649037169259443892156178038438615747234629573421970139489780339634346477495575006287277324649270980839914786989493083653442838082754028793424519567155443266326158889281777196516027914838645786358907000815498700090325338535299458724883983550334408125124785194304561002222918115358362775727733549786802606839762485120337025048544964222946703287621364884204666086509032467780057457070175412866436424669850279999902840065133861664441299573028359445593211861092016278058563941785837519101118387753518371298127648268120132724040191121393483946202316594187282785068792142685910248403638674266099398683771624822540678744749323957603491481149958879710972858854537159641230477071898867745269398570050950375943190591246113509387514164525424060181118286945303638111634844176176687687081785557851612217792232781771106863008647669618190386038844807159345098194429051168456275305366691199747746442233547045289565779520604261855496107279388104848158363591439106403314644899137435559259454443227672939347509649390698553271178188138791314987587266044914189482278930286596386128769834335605975360521519095760217853439403838819539161116195134099139286520312790111928353294806551396314556477979035013592158591420630668416510570428127937667933935120073316847885646672539149608661319219614263444859175024010076583616009886579054413032048533673927310775458318583822759569170529104856918363011338380495897949431521783902282927350455736139942202806029394758557896670053562554927197137267479662880404291748661334043780828433222463176479781611043157639802068803051549689804655199626326497910443385710264287658895222429210594370651298008197395411978236478486352316367572513312478832728545677292999481669204120707408098202145632545309850494374733953896955494106569275190799807326297379764016018550506094933787590466165027438683461994380782159835053773224975505017904357401158545078703409939335330885741844909349477110002245399535020259900929255342908108879201885037987284454043208850420755124445304146818663615498628540743937607065823828861762263279496648608280410314025483019921738554070700538652271143770233482266254709168843514085893873258847884338762321780016012850525092946432038998545964180230960197664174751710218838821126349275234174781599609533420065119908905301134855780772235746987004311692076831008160851508878161237433786998853546807762494139525974299167495050983602336965224225149131961632367543510470653397658006592438334682226857579524014631953519832301234995418648701605911086996309817686368275286411249937744503342508160736227271068351691732317807159708478922519371342945860981608771802522150343735424040908348928295409901256193633223531930289298249457947370762029466847440846597199575935230775450766281922941119795923608391123077685214473422831374496805026401863196175998026134128494842392417036588283447424044623323073668303061740014793539252883230326586010385469301887576907168780063613491242110852930491461647184725609950309447526645738367241155457077496891188587197157433560183953924119036560125328495845884321096521847601885677885644868476144511601760278898904412863005053983800469947460271470154005663023503235909663546211275478050863392360056681979269265938108106863303356647742843039535360185300367377787908398313626883171878489730772483460200261753151258070667551199898543758755233549128414731046057225019248162481229712870857046427827113491221249497096357357518151032542731912653023238640570094835867196551399525594041465681454477259866019613376432279809907170287615658295770432934090860925533237306135698437277392492963674724487194381810704267908630713081151249140188355494089422530707635829626269029123784221399210148133887883535399419797689253645880212182996345297145494813607908713951533093991318224917898361389696376443381633765232105337793821539566516417821707542210438369996392336521268375819414017704278696275354068915794415061144749225771126063840404565418621578280550948298516886880262263519553520227839299309621746266802245233753154255126526755324934739598488474284372032776207424769833706745506157874906877940466806126397713445541695828498563576878471491899306225959473580487116742811324863638852168506461738964811534048148134300629145092647537141729368164010288667753050560018935431334511739626088776438917603166620318387274018508310676682432605812517881419881108110913468020402631146794502874816601557042056560425649711117729271584540633060792326578600664613180146602033455523895468580521045778342749488203305453303396185231790547697498949113853067741435558353942538409429925405207504180109244628775785691209574034295027872158890213854360583969843231310893316044098696153012720102234974847308869193443408336422802676318969632176872659695007720171194676628375307993499866629952987508436436395812619090753588443174216847911736226587319535695084073325018696943366652136638564050492433055160889179596355806447243482651692661810618994175207796265130308881456507564795287288558327005587551484493933211827111409560674021366515647518468332371883264235787282783493999373093856730559412050840154178841889530594698223570126616160111496793332170254662937237021780522965718698039956684705034815085940187011390808229380454985665603578322409183538320903930592781659551396291624013605778459628239129298509111746474607468317298405376938271801121209915169167664971531062907994558114391138139118249112772859342600283009566374178589724220774309754636244528339017047076273196069528155817939796792794279286660588833496383913582321507605209843229476138670798596609891932226513014475977179471342909293342275392698485703195563542301659654546214269488312078432445989373578028814986003533058810149920854027580242096789030545546151561001713788365507460138016989456518377287803737628891655982581326889614162840949337932134414822990836287815991778301001626844495805019385226228162807519356395309126046127794443284052319881721421828703550316381892623355108821175124312686873899091943480496214697334094984382257952529950239214726102035733491605477809787443161446069127601322354044720896281806497514612481147265297027389014361439495768061437147409980194360482765638253774142598373663823738462960394621512519815330218672258099349304379248949536400161932748674531767049966482504914800721319785470314465596573150168004905863992081389685489053639998756072898137125367404827063282701661963086435859500244848745362856341540810397700043294202605758938668015856629662284615438766182792263391887318526538249596980671580291423807043500115961240321491113838083423706530307674273607538106416938044223273634437445880148923826361167206015999559560638812811285489288580177814352459773882799527003258604914265335428177723398207635332924238386974546788702889946262181060420094542156769941319418841359718705744951835416039123018143893064901086569952187958856409899775624093934221252244924065523052974130739694068554500516514337650844726019074302343958660718771049798027483738607890932235441987067145207062529116655684628907260389642295590020684333239114672145032421190779755284922644109522863281535807796210607061330479027412519723779961125217630153686224276479363973334477001387331645442828562678419400240559308102319514548345568535606869462389234264943132732819351548311724232269948899849693829970824585721709898051764638608357554974348696732853043745196028865272629705477387281543447653043770863364132856372381703739229968109223894253178475230094895479975679524990201864704552860516153371645190719090517579572830347491802767659765237987639866320802979062624474309022587642929866979049138565065579349551562531484873952309066071742655985107111331238767414538662359194907305990886420742915969699119273506143484727441622137817901142666202043460577231495307491412777911520675351419389646533473256000040886547509674811481473512890431820816059896574605123964946832565741426713916933512219269039725519691354489854810563234071624745729436882962475182207086804505882481114382356160358095518580200639176586286069701540136985664655842593538402957475199156551411340770122144062456900647601741812501029168008310546369497873925483407068857421684151824324604188226017087099924851925240511080142987283411402366796237936138913076065965107299416704398864792044611429356568420479373418981934094358027952290534130896631843471746377592288764548136521767904213619187554684073878475689207037003185117224813090001213623297692696836016765307768493370429998180301312888713767955118294710167687282156898089083654347715203644250035582974820052463979824981571724796295320820230080588278103573075102314037336021939800902344620966159514895977349229406794342588647859996083344624532626218425455579763276846305604260208759119820230421103494729981488024325081783297075952988253940049396600726076115296280628843355200366404579764049677421821375476100558372377779271391511358068195237538157585345814876863227450628436640019791711551189785295989538824840881259192687106670687686176566362052874399992413587735961041452273673291131819130581141214681693643487164685529582713648603411025268989337271582947229481770159376936418130541123646274362478103098331318803440440022494881251404020615256987826306003391879757584240976001803783578932394267922928978461777952019326488376906915820507604160198805250882293600576915372544954838591727047596955175444242518182162427012832935393126157761412999510443973379991761755842553265314989847936209731945487255782263693631783841488865624867678689645074160486361608607356267316087003258543584856766517087051140543804760413470114881579988795855241960226333892852642472854010669183153728129557128428245396811986726271928894252820228815548826922545667605097527491268131730591991592484754921777560713679472034031406091693529552571926888362994638480428609940356799892017621579987653701590272609853375861576476158476886520707776408237969028795549172685140034377595567862430851696622718768385207380088259958861440967892895183095128161882461640382234998646449641576213474847570851504508979807943663655659149238098775782169463619893654684752742713750408374127406128994775594240741086423209680735810001371861769090670880360659718093527697148629904477493072347105896186289706799967188513688951259095566548806830360936128256756576990421931789844160244672699633092900688460673697035697633597224778495356695794889181935497492132200000790224702683073480305053736886505476097065154749151990424402154790067114245196910147327206789775835198093335370363270530508692249924714245117124739448244503459953266981186910602488301253764998674029965148306468760370428595379529726547410591980377701216307781766460268120922676059296744219995592850181590927778617354910261665145870038946153174847605157152149216552286978339631835075519028269878530334913513187219164354820201822818123218299106714010544389528713899918128803040086328056201423647480576784396723885730870070171488234770425019233494713115534509780771370382502663548753015252114266697541751833002900296369375773094433444865884624642134752807195998891478716458580821669225730233430434725183959654811353935419118755139131152337397296482179852904740149008103250239218755920564222134059630936869633747260338599769042661810618063793442028561738554439030941394699297701422412739891132679466325147554290992922093371377439355151208336814731829961041355253368878763373291602571642034459758723408030089518577508763284968248995731733249385765597301866873479046187276329850259351943564672822990439081874463394825093208132403055649980167391374630904215295686650625970128761087309942912423360434441830771770768105307355437806768345400674920547631789530529390596967557742792678215487316020971461537331806951776153144243739188588813686400210853686677676656258673381007713056463013347849368573397651866705235930783775916350192542434827801766632300102444948048929805477575017099615972617386897505426532734348895178198188854604056770166863976760963345479734800504231840091082091239738376123244086962845387911186974754002766536585540224444256507098165692361451004775042183449977207050446346204247854814300954756874824187283094689459713514686972222800166090008966617111497587955176631693764511048980721938787268413242518473197933015287335149343836770893297460772700025676210956354589522620567657534939090640188379417027564107265766072861426631651083062335391597996823146602013356077604368866553417336974740322774012166027117977978150201632975443889945967058797362193457526921798523969478818561716967998427885626026774067682705143213082966757554263390175316107185932878733781367241436957628554536010787649357096480890853079079465115386180561960385463979644759626784782038839614249542909908611110126523730396655079045539511762223488060924692973314359786335144487579701178391967458668438461802869206061701784511441031880808814078474710952584410892703785184043580026619323636499467725374821064649833939053579660308138118381675648757053789178242458693032826374557804919886396501727346916051402533152400036594431194820120659995686054865550010367150054938563899690716771650979593571591169118444869353907661584365110601889622700728301204875217818550089909639385710438873300238225313878560724871782033513360548980780762470498814966091229869531466237026943861288282500080770142218286373296065237942529530328984330969563832137163443025071548483461371895529800581560761260100319101737837054210984907958262341643026268297495820571173073829448065525346486096833639098105111205301108812055103732041277127194117925554392432786193982194141741019622309537369140188037931104671317518345574592800537726517069039898094464737382030863433662859861797647589184061853078038910204230357561719204408843861150604263944771946295064169622957122086200040285581714318618048947669210957487597209239317046519535224134939039603362649730648577536227582207850079440227450372617203550633181653333924737416701685146802124967327994653161799788460287122145463390834245072102874646172682911717532569330579567161027367464109858942662182390285502760696854219065162436580916513946807376562409010951145907433546907103592654845254386494845916904591189114868441684009427132328057367506044001115226440022016547970121876906148917424008019968738866457871439909479600070986489010713102583880771720496045337595335035694929129164038418815704788776452488780990067467968638666492025523373494212589244742184989829789356128022699804095453181689052722041556376935738561677960019851457124660070271883884182502563865126039702252164973937616615242453811515040899379249478721577102357667425320413842077479772211782413462525820084737173983165940575151897326447168844278427943478894803405288498708863171343840143844901361459495511757483929730005286109880529690926598932869143767147937494929643133322955668757450913441254110745567023943888662599875900556787338623373211748140208871572714685925677765636545733404895718552095846938361652340357565594867601438697283991864352870336764847577163449871915051181860638638151649886119735931951101367442107816241901642797329418943482544525769012484423786924291995878809699432815949445830942638080310082708147785529289967912775291389936563590774970075577772758604031292886287623894760911122262567986646741040776360507446050310407036364204790424898209562629489259551532441831650209322668012658781849044134007740499206274876394248646875226044176670016775998237117082957755531390426907272543166737736653836931545050116201397102905846520790259909626931137927838050106169024146565868643060074338006273015651656629217023371789855540330302924204322971830499644951377402005414962102157068545623638323438175488468121943917317124174177111683898655996348779261507194456899292766078948048153837781643068617011950824641615380720140289499658141190028856992049040519668037439508930140554278455000253003195372756029920721230269640286340371029735629823436781774599780762029035576434036680817499849186527685153900534578719830066475040151998575206941646222605054645549066606319405631901587982459280880828440087400944866703232359359714305028336633861966677653121745878292341005352820801010511196755237233121215598159045300659172624001172374471632266791327701503270661597185412410391656733531357232532219613271951030587666629469157205182005226409232192030001222315284225753714956549753786654550508870105721996335649859407745421434114242947806019963846537799413000185909646282265999740081833847159331722297977851533745103672071253360793595883776876505086738111790099649059267515972155796034416214298896699744260536135497897505734151178652475982567514923215555149829485394505056873194460630140849927761548483632509925962246103401520358883255488748551727277645303178481924618839727360909617357097915477730898405248573374908055597753562472574552231715350785692666864007836062960050260116251840070929456383302098720029310079785233713531291670389266524924662296841597172806135882653376696025331574110026091754361696794324949183224077625241481080558673713770130663851395001758210288494095661724281980364770535064184034850518482905600750399994171825364442449550093625270897911162175811559023526466704047195641272419849817411597729324866572525229761633381591353192834234436336553406171154364317208212924437108971064901339923831597903970115560737483846692848961552905448995002105613594864129270153837689342198655038041598485951455656410201392382203765316547737739165449639275373684701403474816588005284432671592126567010601415951483621483952327591969568846837172559427434002197583381299878128324099143850686253849789892121566901885821297988257725549216090887666780579299647319943145858180834266152734482099599569419633714160760586552248040545044786262564299438061265111939427715319156984638953795876679211973939814809388098993944184762859419453726618893632390405130880957268242056201735020872555412897396730513271669472378505749809671134327049916302727856177253634429569495647267321052978735902922965165725878403145505834416302881469823203518505240593772237998064662885894455585127166460044005782568442762817351515919815315210567673885535003844312773550056326912054363154109601623063494976169391148611189916512232031650275508488327328797635701465758216194734419032168007779156690985652860369890470096282409406254734008289409197425130866698687680848295719649962354703030516760023299602051739422384868128647456987370314638418856859424097978021118667290592535300281175888216683367384975464925890361376278309398604716934780796813827987986970913747237816877985232545499360311203373802158800690863438174834414643137813756008145784053869244346381399060301820571094263869228660995925722501432301853803227576530596424360372472885332432910010261824908666080451432882163862637048409275022391266617672221215282002326952598558409222680658893484014359458918568125235623465257663485648977720362793537141714076606374063376653646202630687985321948545581946910771642753981649775708215748086882750241166408229488479012778552744740417269530184258717703125546839207336142887826989548281207195114875227900687404602505079549535613080964028251974294884885301900291321421783689814279577168517832981294470291417619827392615286555226698437718107863590056158131835840272817761781552230193546192290282027658750885893493188624499250985695283014233826345376517690928494608974458788554287505585535646350838539412101119653596206961677047314978670174499487296685648651400974952358964611700882597364929323906921166040415949914750616836104585355800778842556818306016943608204461410131604521929382910896704383468810017563952415534944206850745806073035415943295806646125482400205254824139356461855311702667053650782046382750580442570960997919135987860138374249024133992168607733219182957027429880751652011529981542695177524575016984594743983144119701660577779954605813929156185988621618762779730115754306990531372651426702139068739524896018265600520058088213744730838076527155629742440372722176540054479153680951945530148007564590664924646191512496086647613431935097928657402350293188209307841961680099285184123111349452949907133488453454639461724798005563129621493555875631960258372537730907253742370769627991776483659980598476652680165373856486051241585755271716587158140458854483415942174384465083755534621236372338221270060772839778905040912011292198654753476180819062299081151983607012937805343831121384246800191891990121737131004897037797421650117304129318658288309553598765222740101811027511482134426051139300017748429790113190739770067261693296423582504281429448276851452355206739111988626339430486707456391839669116091999943414362071273170311177321835234598077721480138278453283497547640466982025305057341806120177913645869058838211833301713696134304193484564401959439403013798166187022561827418415686302647483949895755957657110506067228387375799124880907639089330105029516952707630318409298994502709065831336851755853982804174919356420412958263231586216237327514120940049868709973122997172051952896623029016657344245427534988332102574815631889971155615193652512314715357639960140573177537346959307098577100029967877441855492416175469271500373874941912122171329956805408934765608445354865305927483194502204408135147824455961630138457692874103494175039618973517438377230103994019738786525533564545626966496867379718555804518145880787472974590883050383740803523342693028413882979242897454104392071303156099423094038785425404664687906999429771404970934558259957476647505392715727225564677881478983144186228115533238088829871536600261618367585853112412196603439564988213998266114874126386037580989605402410640865769211613116193986199800054275160431878828074086759595849192710070718397156908083553026286399935277606853536608723972926777125162967492270600239780550157005050039645482690055687732323672172023746542147123617895979523938045592083463999410909015674446357383324307840134795048457491915196183315299069221657888275644744034589762741423019411902974695703016422234787286465602068734167772678048999703316161672688121069253751515881244489523564386269104321984347908858951225154595973683241052174801390863861842370379245757074480989209777043577060387174327179075156197999706661310560420159985484034161651963698074064636806501220095412558857522054167949598343260297497793550322975250403772168330292520008262219965060453102020891061294581224441742373916701383228485874937954473767424853820831019536428117654717583910464055016378187225882608968275004309471685117900257819296574364760452649155296108364362009470084348749111989749027061737216014901103602707522017843480889421210469120132000458423832063976816209300299724068824109218856630033020113919857617557806600312719609116222257483888691833364449186965420106507006439320422516988116438908556148425810964761133329417459880989390401983587636406922444958538071775388886703820892801165339684570995184774410625787607161072838620266362290011145112411691775020927694294635796774564385917989741463878084605668043691011595545031556908441228651484494166308755441551698652533234795701692746024440474932814904405622596312062925225098497147584583877169179992235758405154786395814280305518554379604314803284679757130739021959061596361340029361583087797936363066584484173528581357759945178870454333817448004187839817277011169066915494276925200765672267907159740065475999565669303977226049280966525232538805465377677772266618625268688196484340210797330245768805596049531856309890320908168447215860762597371561317692755620089851567085185410998483104033604850464105414142687370444245709112724368756022276495597725646852943060503111258355377730945480192373244426500004618734546262417274671821692190830336401839194035585955299531098253247957479083223467964712745103158320728117958594979464999899768647515500842903088107352222618967402949226223100862853763052758542724891159508761095921626875461569585064790014461629030345933987630220402591392293877904240588515431998940751747430965300172059936668533840052977855214638805725468763684206491852300208345417452626742475261717657317930587396187991811207842148747145376258179796249113075343064881725589507160315557734607569832456457674830319378335507335280727308542931464277906832490698337356055576417396333915405583026913413361432091124480629496101223225363283031883936884187266737979132230072120130442895441048468235327669528065853163245638393596499338390803957407186372790808895971763601184055031658366776517199103990264565512131861968737250365322610121053191833805891241601890422645904547453295580873538758732061339590403328945604746311357214676816771281436335788605171469087938032921386040642357501901240178035129950068323707407094419858305271943716104867111064008700514763420419833712465548383792851050916494502321554522025965988291996754593087555611043436645242977161259037683097788187579586869404334202581464448414704877942224953220266485720602389883111623412763368333058063706999720137333554078282841749759640643998051420264434870931672907260329957411778823474037137650848479337144525344709670673756425674521722623704210664925777174092518593550633712465930590056966788636367375426448192867126083368441666952742415275617385687293521624333870673566413829233334659719611285441654652902716830358891458049663289353892490432311459730335884342777376262400713168548444846669288729180050696032679414142386456004808544245222513543551114829931227665135367696071600357322017618800272317738541437389305750737235166917548751586093710972710445973027047119947335876335894472015709413946717361625308158876188913653535263752579354625574468414966535218259248318824222561984632655080669573331355520024419016090027715706519352502834013582083686671268455741332941221989282340504252382129818933084096508951063986810721919410174572971130584726822551507739271169846401383397414290948467512376413704281577264365135892338879289226293011756798513075957738511309691162509362381632646224053860522654820929634204851317590736990794144541006451532405517749831282365643077009663965005882402161483743726878196403812769807239226861304086466104769174137961735083584402630392321091782117843042654796596210871763863881454034548604610873674101278751408483243983788769595194802639354455695341263979899743755641005142655889971376311388994427728258991061620132028826440566325428999998221514849914972636871182827300610960124464705296293301976367889735372315900710392779055266475151799586454904006220238353880542040001223434543772518598199323369179527476750445332091327451194107302463170834427160471792399799563815253040665808909027206375099293593857301379447262591150587495596016644551108406718265415906852957482513327654228258149992849112784736893306290373649609392873321803418823986352285480586293873238991894411388904633567738395529971034107771795131572727154874603809031886207777122673956550072246794506164480034359591128727027058700437931158922942819970631149324061385777476520904634233212491255461225099516118598266964540907278984503660847039994767074627701185421485293955541370667324685377643971612372635579587595011687123254696794407907383136347094755031963902429570689517756984871393895394220745736269660896192157328340753583605626124303403278324877521005792356387717201633050016869142752818602615138084509981966189622849857419054273520118900088000847703539835952468966303338023397390019017823354302817981222315142281545699526867970179521914550907550955295603370093583704014550947183777841374780769974324994341855890967380485368775497547768407727872040196805034448231052317895625598692556503556635419446072665275327588518357039292938017862033433668214385078106437524290785148051918208128896592274377575020393802346212923216544064089522385984244037258857939633864303930909182384993779882868214352207440209208119675527514906747697822097923531403898111478806423590883239721339036478529973406221727780738906795636898363472152271400018208647569762960230624862054902688804680407586975149856708839705598065007139256546759438981213222928884658405697597964928241048524112580270049087018822527645494062459106435125187105311299670105863668637267359232911780123475547134696144385526394106337657305025386293737932987084224606363703430863313847118497238369062190683366240198622454360616490213440525282666651927150554495680498359299248673422190050183402712402571303628774976534072928389844874933901252785537890492217270608817776270692823401806634729308081554915341462883826436510656818515612500625538538027480658174631548698050428818132540690584005030634703339317337112959052991089707660923666125759038241371821723834283379505293694208972743314196405570901554102350767694839754695369054721596004793316972139162875058268849614422859055241265758017042794875550827916914233347466198032275227209509126312734005773596513798410508873642644058388236322217440894334790526169481434541784405774104219041482910665717888768863562036057823573392052263779226703358990067430567513720044552485922636336960979551570811935911446327426064066362196589921508082489179358720245824115189693871612461710254668357202069905280355823441682914438980449110171300395418417675752201104033421396299233021985536566993332012820138151899923002920510377317408418131232143570239729598305155474885356324110595504078572046528597766742712257589647002690749055454377136618813839355040006352288055797334395297406947479432601532744953681570616844455879215453449085380801155471523914808337369917981014180894201936038656979284868009826899930761832480362278533539359139551058157832220177905678973226016337221708017758556239985335234489618741142511373727368708174054439887952756924740221801096183566531187836458257862517029795083435923453186797855853793774691474786482119704132974234080658215751824299880388746907436410537843265187560243307518198528939640944757664115187972609156648868963049868572172348473633050499809768440555687330537552072471192417136865181085888863760413284966008727059645972406128609698953833667875929522603378730728932835793946605631683270308353447475152588717007550757480263575931270603503781431187353711164440724578445220356046175866397076858520415240183475902513572997974579889354080095172466883832560607616502457208691194254492465817929156591250172743399342094693279116793345195450166896435400164383683556571033854873370815103419609811523415190237102220610127255009600470745491254359863519142258318476959886842275189151907013445665539368927226601470328346344895257052748085245507925648237370193748528118897240384180498890530969795444473588699804467065489758571204995183438751353476222086339935814471607642233323363046762004527316956728272164833396838694395663422423403298713757354822255346556500223072171587121449986500069187552624851241133257929430827057327791770588495787189341566257831968211291219258000014093158821033022029978715092890337441865822847005186435542009720668480134916479229284839304978141965799269151412514032627997606608200370715286159203991326310199095186194217997875136189008791813834197687172246836696809270872716592673566134459982244909015068236823197759682538606769405996938985938273975503476725890287424463612394365346889133475732125266919474466108519395793364885902059214133056331074284048267858769292183496852065129969518199874913430029840656954088598443999886773375445675395654531306922610382924470930830491989103719677780406731725637707746914585760751169929273619385995177999499678718153186098944788107117323385475038634357688599594896822427566604039105450296954599026994316200796081085245457220399712816815931384745395187304479146357718533981674248474950392133633320756658311511275177956594872638768224552575964588315032731599247952924504704002615357702977414757057185589613644906435545880866012582483086659058717083216764064944293435441036654740286048337924057959077293796870437140770556219993986691885364703924328445592819255566982949196868578214203094683868319926003747674807101796100296955581476017276626493285582844267023878375061709213281183761171965464834547707071209413792531048319403708406825759786367048447265742702277211715803115979758160123178693645433310371862715305978065489765280357551050887772083032153678814492970836581960949741388926570269714502305138855829489874092201797861008773300101640566761776737207502740518157544957047413317919695246826445293501399756688426335202827930027752576902750029358795876737277325443793402789509625015519622992666371481584352251712402289339392116789990472426294526095067496496776558722448307742900872115270714066558864590366882427975682573576387341454033032066011331237797275319963805541673469537519990298413310787659193781132640110399958459214050986697373999252304323804494024060542543379247769702491065604705758009642382006530644863041885248687914177054313632464786373332596096560105318539964317627331336015389579598215474648304874183023920979415639355258493372452521581247540185636726847416062586910729985455120588465289398369760998935466710003299860109043949453430816795567450394752590082846020253164285848620354879945714206548273619515852308111587028839846055546560309772281568919004517385671313020078198319457145473592265441134156802403901573301243862918875763431760540015768619070212197010651729493982726773401363245140664582488726026009386162493037135630394738957658099155129131073664853179668016067553975135152135747354912311918455138487214842392028436572739130001412142335076347068149930163156955185210687241791041439839436696542661261532787312083126422339531256408816565006503679458621920551251019626699185432133278701082098100909212850500429926122846089490539522273040360144213199678219323691649345474343784198926255080122645247170974731733394361277541627517001247914065138983994827482101729879667162328847183455910025717039035360832455025593558429199644922465962878972023901606901002259546821908915415999702477578529834844311206012087947798770792466468996858458420173680785342594535805770625993771386561826669898809820114521807752839391016208270317647092164107638120466753071850293621488762368036949137171806233002742025741971198175263727986760909822636020231577960447054240030900630910649739151239504583434371445439154814325786640930417903283772048812369681038364542876590182413893150767947147414630038340584257387438711442423510884566816908621993640792133340823265346281193043203891940638371440973126935780347041771811618717969741227656583165248841825756787215590535424849420372106175502097072578665962173624006919611072904712414242376151260050240476108602656398355087057978158061696434519684830589058467576029083535507516377927040803499157411184697538113547504481229782165743259372848617493205058745371775656683843891608423538775875876721056211974080367056884330110088784346395413874404796865640542414662715991593921113071002409719602686918360255297605760748032792024729307676499779934908226818545576645070250419401780340879331775108936084150709032712103609986042905683674296708977242963105819516647588605332531692036456654413587812639742464574204172502949269308862236467279704638009596019142845878918736268428193628849872211856787117510127149413538490307607630519150733745265333896367428481208807062571717038270828319422049685105751894868930700457792925745161254941897016208604822054071789165339987633204912853149258774113536965262681648376114758030903209554160146855349114194017305069666502134259091963804520090927654765595338132557622455861011033715673623497283309677837420326649526163019527995099017442419709097084491105844401260341210433555913784218473538958852776633526384950719595378683597349294457430287683270938069004212118313295788677869975939557247867283338618870184947838423409962130129808453270658069638971902504391708785989524943444682522696180354176102626526736120622135727249155945836830903055005792010386922173634706514170702196608949143015261743867941986004914910379806187035610800899616849919505893017777216422888515655523128994701659272770944120744759008302723064400387543885171510718488173864324737920787625207074088042980022548737170694146733289694675842576455345664598251918956148560727808213689021058467779582749168184480012897175041727545495874755858481597131692740221135057548855614510457661780720613607792125851719983965261751002256389506671324280214651929073370953606663528054564825460019802734025142354496360390454550875210418237236992948662211664439278045595754287788968511109538082321828764118560170163841820126445247993847172792256801683092542179785283458199787972883000156486574324881474444351263275139850613665088879176288526100311966846540787210503104281302329605467575915387959963430051211261713120925625910343449426104907780535902498579710842251263311912957464383362980741381818052986717046634315754090839912348056465314436372521457891326477652342028586100508022590354776615881001668804342920768253676986086932826709563980970573346416225226910747397640175560430680237098140933103307664187121208483177717328026152055184414902506473591459697193327597372733270028280360689145427344745489960945365834825311834937963869592565885133908719436766071310589550174483924474534067948914125423257745067836069102215469665257245702491092279811256939068792568400999818991114067062247175720093083587864801453219072606919968101294536100048925176945267672026655952755409164656795933383972562769815379363739543658561693538232081055087604852039418204378779797390125070214209659622244889621232442200812845917010077930246438513525515924943082270903849123158600447930013794434544316830319195498712464123544749556701311599771331891416174018114318894191774769611981323080656473542862044859632831363417165323867753770987266611144180429592519360102629374799112107903174757740432902203879453089284134095786545206872790338388982666855154837868029053224411049879042697070666806931946392246848491194429132524658979218339530022289504424967699591607694622415777629626082177138148093002110557942504830084413667279473629751146554028753589607337360657778049863663003462019315439677315973691357126234003939950150726643507755456878420933221527358384269882888947470269686065818164835849010729138083871816978602923454845045273847090819721587415729246284216574635833889212463754438873748092460138934120365349798929374650143028628493481739347767020111888784840905282179860916818103084643933339637120675194607474890807444016851782411320182065722392040737363948188173758794484870505009254538765754855275825269142379856334268431754320275544700827300260027625789733103254329969896260739971376812984660548961500496816176625700980988501034237104643366375345976185395427664241902905981151497091756042065434503985520166727078023775537951748654491365569419887886895628832176074705130135852406612448037259890685003394390660221340067766679058297160647670215407154159813578834855749453670219749683063049667921729404953556373511167697783719493790382763309045141328747526365403614746257111028928458099974946040878944562862151084185322850735052908936835196218812987599539116871554252817095334605465656791106875528274351495592154303937719425558165669036260182843271851123947448222065362427762335874998195590311538285040632592585616486660018993651086130254625034093593687554003340144628399284223460628943617108795806048981981235504518438941500770320094265987194127701657957991945433957353649800969814544096058340329011324096487251835070912952556494683081751860628415724305757669690215445173503433998549535205312373688334958620493790957096209767308810656959358052872310709683141776662643925816904201635284214600150509629344604960933592972591315733465610315272718382901264162403200435887385898094245600150793577156619401967730101977336874901195113110876453770057855633260321176923573607316179730439673424221559723162337036608392952391099180216407639643838103450627149332125661551733245466011430556842589531384555134522690332401318639268702520928065846864746987861478143299685251772429371731069622981479335234305060082767988958685182725115113590331317285933189964659940913142593579114184763330305921974291931722248867326680322825308094070915458883706444476248709587336529672301418066491506132955896246830535432793954697585924731514790252285924553638678199826820707429117982660314447258646382972372327140484699115870596851414535364745537520392624680133373555088314361051208918754085676679975091717933166481507456652044565044631415987200808016068878962594661874677607435221744889200791404990834914545649407727789808092487378559632721331732106339926459234862609520264164069367811254368553242231047841249480050180570140142410077202104213918945243268406665450170718400226842060034634517417052927209370562332608143721829225014291654318524897500136675758373126206637146096456003929389147320440749610331069528123197487064231756967084209011755089225421366628105743817355866042233820849703849742724064929518785756069397621346115510204170717037209785643139640515244110249909920160460994659140856654847373645327684852880346871494976235285338443962708841678599429542311628442682232090647362072346527182730570289614690451314747631324403443871199307650028101516438810691660677090123393160199389670433611008245150638044744415775639928293145266092119329146613642510918454386296093592756695360590174293531800203325887586872540126387312879724423318980187011507112081555077894690781008732630001527147642515885286220598755433295857002328645620630059297849932787361799530573776385403226869691492998978672635504795239606846935978458679100443754135731644028601463417304086744826979786867899986930637911489612565845932694285024883749081238475301799852920783329441179358732799922183084640068520844985541624571362523896173736994423974249330804112246808467414308011261678432869003637178609989057066764866483841902024759269143468492089770620214594334140830070793430118215960771569852619246593373845078972012238692675223073883351758209339700471924204001938469871079716222914864471427542990066333372456177618161920972092193954493532712302257570461728680886996579179775923730368677601866141962652666272818795351764874063242868921533527531848873584728545028087047657646547831046253918216830213083874215405308535602676189330707114124449249691854784133098939695816566364517012237168452305732056163722421087255730171322935522506296363607193803228009984013057747384187121836747761838958828796103600794380504856544331230551644640441581283965068965563097651687270213734002686022521110097970808951854036184211397485385422990467590331570797360575366928027644335106354517504537128724463572859944399875896915097082931210425362688664522679397568828073252847473631313962854585713556164246976230759424215730419903351980707052765987451346045269778437612094089736130284024538038549404730877845159172678598695107619208777869396575876867807380067202245028752426050633591321667014237121130389910220185006564633481296791322845000294956479636622788962288830996864071965404778102748692505217320060911886467828862443097042083822965799521940395001234078839726154361128023702274489432284786415150933838387251115488154481637948552616716603069700435968576116255976933776231530302761700487813383861544518917839723220767321254028725455280004693437456761740160124453601764754397381648454037933909760543700440165149399238537585782831542262272412299970693898005830267514742188761497527153767654989058148177883680731615834279491847838168696077273461248407511825249460419949752947598421141694817273183743703930009519027073525836180474471034534587077636591146466682957617896456833570200410298313655524729431306106216304615804416996867325337967817497677250917849950029691870279827637840052913216343519498804630958051642527889919650254341087659300705750713883257446588322022122814958309185448430479402473351965143714657781882783869582658777986503078751530055754613859880283067338923790864968905296526297408009940198617925715443914159731972091360006566126470721609115299440063910645276280429448458628127094370400793080493049848458428295626478338218408234326288185530094425213661118122769760628381814707146377958124154520241553059140710387271110566389173297488845438713609959666374134010781310577254163094373922459767418419442598730344602568168025656546786988368970119338612943843356823603076648062326033947786512618440290599444426007264614791419483289718093622660714910066876792818409703898998188847081782466396313297568005342092611799209245170220443991555841726102438139316059288322127795811129254662045045007391880228132098786728664251496410451382356242317105148507552093700416604593764573651207739163978589923013622076622822619628968835685065317623620119724355485150897623981343010674798809886038703678321349997776223783954847530275844512970407219271123811267333213785102769808553758449271988684228383835571460688391392211802300676749146235093104847777217567854557588977151741214080970846720978229792474342736477362402644369072691067729266259352661697429739870051178047850289353083533043167848921852992051229374663112845284282680554580239572208011422555161769528723890401680244891888458262177570021966734399424909220502970766302417770957556231572455793269848874109602670274603565572776565195191725760789242756641361876592039369820118449538725238249467512196190652172524440862418921616802760142250497952811518539040464231659381527004123807792133642451543926741188002388087046864281711371942317774898692290398886390274386560932317409576980475630990336738784606498749837362130092690215266005860360794759779491698300346270618820518726362316254703731626716143454394872848285525463658388484519190935410547024088087555600244967852468243597667560454796555633450561602134272550310085248665519174926357141192583161511953946990887124018489540351797790474968627937526539665013406480757822441761665356018022056012899099590886949681554597512984613774156134162514527201947758713162133783842232899630873402283874467561712984650757647343187992701185520459563364766250940473316206462540911262102501576492883710064756784428503513514438760156987636889433080209161022400657785243286808983101616801165635828858839841419961766836015259833976704937214080218773241996550193039863504444144839830888004213992837898276828394713270597471746832355922323766333883786472706371593573086707942871949230580284237705101879226250193673341784077081720518209691861825148766581447644433591571386949300606547789496334862348387680064237196150653246532743089538029596056791019107352393575305741146677096724769264479951838536889677809215261535649587280098786794751027256725920943743224773897436206407176298473265270108627749136022844783228787956085254582421293969929206563560533340912449217486903274166920254779461548679065442371016987758305061370487807299216492133044926774602099520521031770633450740052817069761564918270710205841324861523485532049103100590136607667809541255430159987265207148156902747037032907600578162750178939871464696833255451049195918774749643677952226493689751061394881285383571677930488100199537326395553429099260725066894271208845628851443028699103934933605632221544589324678405406112826498771345247300495504020149332454196405672383173753321745884225201935183524435767068480976220262589988101259018802882716772252681414591031114708110577658132474549116204383706470059528041254906269269802151170084951073454230695036491044822729113961650286500758530601564449350644416233446263404409940346726293507075781770919867436564426875576880267894668909169623195273986075513678943120958580745466244697663619344813543713209932757763365715205252579045710723290695690859065059762261071539779507338782977370698423107055377520833784610473274355678661447682820479849274036278294816373371850536749861705299783750751341719242605661912505651180802166298429690382429630164386030564367051046915902888556888351348133071610722684319041694542787649945876195214659823948251204964443005871004125190528908958813999073522046748856544992423873057904507640178075758157609267570411488008318670114104499126494502670110123176003347028837349293395779267254344156948067189073261616548053022188928587828907121991738486942489083581032478866796530914593802569986884957641723530759022579867668873754437147021857672010782895564961035775755472300879742535074639754525354800716737092649984105516943545515886845858133922917641495247326579541775495079895826312613818019553691282670089489806307906518831238879446697321653068368380644759115753328145184049375493446957331809189398919568798033290076986863347765427181957826249289725259010485519009857584707301042622593651800890054839474405776879963548067765070953630523892945298942341267118587907608051483688382606581178182381054785611818725037606081603286227390543045468613202110527283028896598943861441712299350105501635434419335212835675377078264092533144167574642104275782449259273450470821035394078488941402249857343418265006991075570430030857414241795863241002668612315549731771213715681989219551470826989791629651826450817660958055495688606958954539924886305583927066013151172381962090353263762334314061114137679550161306866743712681723294955382692745821669232431261547963242784431927834990746894540837281316385161971374824307245520365687802971625514186204751288093092855253159302458921166417379071293308658271973710372887498098029991498098737424262262174976309609959010367841273978441173564695875005297440688929668067247015714703384090714227924230927631337166366674184289339083593677200538801091211924828226093600734703441230223506471109937271306818977079077347198399913630595323252661020418495341140442205327379124004044900416451670512141146325441437303430526934926794532752818459144937601622739419324997293748030970299681385660437377791091711698406268213152482869022769536532305871572279590551015010928328167471709982407498080709777932761991685344078433617542507982121664967113756474857077143713591927652530555663646129654087789715298743303056917218650170212073286476378767881281430272737409639795414581588068549933235707531289944367894378576614084554053901431318519899939775359514689426553176116411483733492617020450654249418820042723362139006457909564828640530614969849383725025232730332767959897579242676474721371399832670448889177043589694606038689567205039793680677082634452177372868262880420393030917493007664047513980405077185420359802801237202029682932021816676536201660025180004123771299446569014460882441115977375295989205539573145696690805185959144795005114926915672941794508590016969298074995225976755433327139069660918277186269101297594500288263081325901779632808583828851975596688686227138420293408272779422063818130740362858094586853110955138579618162601643686257016249978606610348024591416518172823818664086127881600502768356228424308509096770923618714603646882053510901687349578511536685917423144034166157951543288472947842133525935138557588237274825676916967231271674203831193656753399112918391305803693857218536471971239395092428928274528305725488495436185515599713963600750428189688217501233485006781572495063039363548976379015171211861739191041121031578654235583058043352219056782476477245509400933259036313677072902415013884260993268640050924278517913302589531067121474314542875628917643676955903683630441971646924131981383623126706183129494500369825797409879186702455736226356725816861441802232876174780290498142224275398434349818678582012544729278873090574290941268676418524755661071892343596963527617384503264990875157825934252386800652836690192799718660658644209367411838564279962677597264447900427964345167571259567808021876577254385107911149767096058173009581700014893897299233025375902756152507358437988331136253934564807865625928982781274932556692315521651183560568410915349522775634703971989899528286116350671178947395164025134820110708361430647627694140344709226374612187424407036491941216119598794330576149397731536892998998953630189678600503396817398953675643594879268525394804395117930331784982633817786121824988355187670958296599039556582822910005846354849422729269228851248073860346186551537574390557346812627575642459471278083100112560772198536081006436344553114189707144005021841299130465095007256615999939370538762572409252760631635727852523698711252282808474059148789499295814407536729703793694702929322776486246304823184427801592920153048560608350568327561418571618507724516737675944648065698496717615390996506791884622638723932942906603912281506111760407858946729027124016961346885712652658837939444448050096292753480091914571559023043472196062457526393466282952651597521154299390458236078132831870427517121395265499851973989257533164071940844854470446831102820625410977532075263072929575113680625333185456343548400330380232949165365094594603762954527198286114055192937136539129105263801848952085624482690867166514028661328056672595498170666709454410734458037577206010237077401324305479181732554678290232286626177907168868736547658583696139989364011963039883883391528416023776627276567110485967639053838706821828968821752739052561130138296520297933385730009752659842698945934856746859987808528468382586387642290809821432403947841858677273982454318125516305173367863825111150015013688050621821970897005681351915925568868565596549940677552511213897905043166821013544281416266249661845805230453634861751082847673693980099572906615915781112907825040902657184324766840890852758913339430654262888014386940839457938222010307485867035791262310492727558921326539982368993933247361871050184445433393769402021400563068080116266140455345903091715599063255665839166892878522087198090586268226873203895744204043198710515024064779025694073217848899504408377509795675302330024768339312171957896640488157003474618038151454590523751548529707959436472816547785519843995136075104183182725337652620634851410345575511097284625174335731411356517521433404451617004282781326445238997270941735691562296158407531971663301657003674568805652982269214119772459333388053529369745514763869414433540788112053098439175765601319286445375829609657547502276320061085886531087331136635725214764238292680782021919380775082486166843382283177033748666965816590591134968659416934859627651479514669653526989678208581656953289809904628637760393806882776310187556811714217628653150362773334338774655316138833460085989226692728690911621763516971645213046580448360440635475294469308118078465286703621282655708641448048068334396726040626820077441505726593068605847014124727005664465639774250413953746355918014248490061464279264703724150325224634757559425060460957762804348987727482256055552865554959313742351370443838782264811612438551978926750457653312478645077787119514423594601662385062633332236201403849565903924893294287929393053935784525854732159159432100665368238935814906780364957439481524380912204557847733708730111163281217830409091678036209739032991443904179554887951581417904027184028830998914351643477059757250786631543643169122052607303064859294180045465878543396835923167185108965977209039203541299386680157011671699009534228762453032208263554225526558857032217134057173244876290136029791501097815483120866913774445994812311598557264712183735074828570913135673084415466250717158267748069861398442805414932842492254037594466694141779476215382842429574359988743177855080153089013675691473318689031499701819311480237975996649785589926715410830593544295639253043310801961363498784415438725998178012422884972536921246963643665952590367983563022171686881657634251254584229030311317819576360286517458222614589335001246321585638507945786824850316402425830584976508827665353112875828032839251787408334738630938927774469864515527603982258821127566959170632222790916377706671220123837562564458209209058025250908390424198196093388463534296378491528484191157813169668435836419185605231018847080827058851210834383326368155509860498312877921267577860855456413687699610476102880198660667407552722044629021420889805639230614863036177068259124314280241161603893552251212552066291383952032808183213228091570438373489185593867690124907714005054888762159617040073577478705779771251340044581706329565433839265330060679157464317907478080771181412994629088371700755466674598319013217648365074223203988973254087952506614494245995137709144178317373356346889512050375773077587062392540544498160274297329427794645545969049029734933415682042627226596482009814069412816245923635391148413210686398050912451870234356343835522625629122112398234981003998299814733338134804148330397512082861959564935670781122005402931469644942594355026038329348088516974016900014128348811678108956010151500677638035231139434149333931014596865667658899785594655662756971258191121008083561533610926246601578851063931731447894719874799422829252352078528193096579399063527551603131545195237630811855067274938524675889600321567496013786957550976578344238500284865148208475844037831051907081938468053307850806091281602441713573839909507718096244675958347004351498703446494245407917649446028213510638218832633421549124431825642925997082901086625589002509013776181336997056647934971146658263538033215956903178112325324006625759008599840650277600862588066474990781005109428488598280596184314155447844147073200249681518152287778148778405441832255693572339533444362069297609152879220629240092815250291289420001814311817357380924782231611214160770767571461401461512692905563300708834631971474273430670363059969866852670308812137200357965683672526097433567113783190316757692240455892017142029296186069417276089474839241754085048695428398723400755740612688191913829399771240882723628760119175668836722392530329045549857773142840685135257123284358360012363921744341017033085242644053669762563891297382994146704220762933586905257294852226943346457337944449732277406448734968898650656188999683847903458915904091039555904836101322650175520571173674245348383606795878446072490806099077817886558202170772640053246302391683252103548890113467591813794987834010551032792822804649100001170647112808048455411867204910322392911084703924386444402172145602009972879951700465106117799245538616115157380308403224134852185556135671469139769324466916493499611389318093615034762592253729286649148430176561828986360288215608998133742677697796323693990046097935356704557562088083230119354251903772926421898537725116504716554949541833861237489340679530229752861972559114475715691822685453511393248525487730653389923667834210667914141954039299909396787347296899178270432045261318161625957175984267756248875770845578228178230090886840194775700467008087577048671199406817379898767327798596870869768964917013615814563214769076790400878371313965287545775742281741608586978216856443186119386318230462709139298350905413633211910360200449928417490217028854877509305156238277769132296519225607567122969276093188689585815063356279022730928205479965947228242588430857534492534379463140444488708685588818286649624686586373894051291128507815455233071091776167859872306485787412574034106327418954762735851976255179092009893506206845747979712620272674192260912845017399318283651984677406257114299711890914090977189287774548913090765443886549900089402133591037011649736642662760722796381096304411218909458873669600634439550041423005155606018643421288903842291620045919135633310243866374921961823322087970016956055893051315276116695822901249292604582376377002343724250993185680293979643327885567408016515181040864940264507589278021168390597016156119374410481485124721690149266881529797728619965824394803859680636845997908183301943965091938487761741792390614887022603816882980150186489181118584051591241861853812053535931043870029942905743306346646844478757423690002233374313450836324242011128060702673762625767224784018212418277365182363858910380367279571231019642144100996244202504851450731771794370956373634132393796858510243471848996187545643988750941811496822288514632753047202727366522071314344544024450699963486581293693774837098696218389578237983833169135642305119687013252913536814543501278652091067594897674096383873104797775579858517023592666809224751958850631791773845798599566780045597557497949519049884495022769151274064397126284086921219599781667851305931991273286914599373469485654499957640609079639212400685317508195389657943342155395616094391083476953080954423829520635262584638090604491526434412237646542987429133456893238643135079321720493404445149820329877422196655184273342583512996120071765475283635408913113046877170325350806878479705875207264386775310807697285222753655415229021412490428615134190890934893022084490803173340557987463631956647700554192317072722815567531806341092235579449544730719307051392223013380548975209333061395462147192909725858559308107489335193811003695948836684300269158469086748732151607045554389285428342546049203837254872192510818089255744385469235432344084995029626454607749653589161550697379238908318272861259872529215809716223417024557737816914144065912760997309164599165790668518314939661271769249059895489534018093721932536005794900772887260260823801485043115524590371401087000849932900081963600038037256914523536782013552097035623749076077219914419773649754747969199652947011463917498801659512801534596845693534371812269235244260919808010100616852619775794326015303714910124171825944573455316480782847248332321919254669755743622308863459720124166381997624685170466008782531585512597135740846500443315805795914064856187735345569964192154140874675338223716109287384414461737850596183349685993719481639009005783835327548029360997523223054140131531720652587526368538843354725126077249105141976332391405629411225123943984516137536571059167440843048591411109458991596385535669874624817372023113998773222887542662015438559996178576298305455901214157288864713593548183976545985582895599375623506055810544212792680726910980533046921199887642248632416025620912114567375683359528607126763106812682593977897530217434194495255848051806910205536353891899404078044456741020369286155465814447997421036024794607635270543861970351607338632396489856126374122189329760797823313613268666560777656457108656422878908791913432880078044622420269251793340104409309244348142950024230510490157203932144527703355152252600374573810727915942011985758734170348602812036601143154013220706234883618670912421275261359508432466458520141020220965237549646237056266785525997942514756416837819478345462462342503648967512842496550125889731025789183591008909548500369833336849496993590545654640414072514047194528613940528704662567952697588846373177615858121602206844634213921580299994606926250207919640788967058935396220588676357848720213261844060527203997684592458021482285383097654848649232975699503728074261583292507457733545883074678125663950838350128261944567035570567089657046702786398661497059136080256124091870388632040907895152961956899557243913348677381724555485028559583892821862056815848510301385800611723024574402659208989909727104200760108604286586949539119817880071489376201996914797785301627649169395495263498102275086259220506611306503611502134268057267325598063290616472788388492800800704262122350564773590126020208869164781143417115467534951851883054387376990421510319445640226658950374548252482156662148270748992503595419566094062533372573386630472276835610742941947194193290628446708002860084565662789319552348597244073188763695797587881411207849150335147731832468460481979937247187726872530772264502805726597717456573991472138576143736360473842803749279328938815681626915633875672205540168675650942949823808126782328917506294050342088833474360089440971588587480164863219425797175241800655801565406290598793501952858560225398311981242697215900762235478605924203927431163826087599874568559116252813103682517631645785529037210404888848836269924870082006584222897256014584563203552692271323287982174213316608752537367293074162690949401971748685368839586799600999364128061409778053323624723308441038897732260508366989473176704504392828698010240218089407531372847509254343490110090510795646238401875766484496665906870870022848062195617359907170058606146344900765689923060631208151784963036114232079473504712913481347722306665454717078737571034043190581849749197890396138131898312263858108676496566561091495974623931123997037830744340285356366284946847698720806368593181846616990134075002300627362643529726731531044598196658085342602387958009067402773964165678817414996184699828161895056676003570883261278452797106707899083751776640759355766803340425356951834106295834940170262691159830982801112519291587601640638025424144572402852362096295362531212024458725407971626193467310757051014909641477997960206104747390632587275399583958991493398859143215523226793423262544524635413047579572937952136031748866817836717920796429703842752031157716514203388741082381936162634933284637987158518864819106169304705935273407283297280529260799276291145925520829832427309210364635368317530577523296309001985064448501928553839388842903864787149504883845950131323230458979498730334161591275356712120899918046292078432444379410228506156909395155507608717165333403475680848294586241512259828132533850946837471472666485026139526392324322847835272826184085380561105736962179625553251074894748135170823340984946630295149621004323190922225572530633820587675405147717123214391316779676603369431596877183310079690611801203671193026824247759372760069675280874036598380264511764604778080120904936375277889562661642574582465927897705474630196333852235782537576596504623870262024037648260402687307461907575848220084505402212525653060801003167813689489788753061322341225615777032918277534585950978722692154581891449607788674652472264131693379543176197326798178074871122681087554943135093044822565753988383526502140743007638120094625179975116228509078339795611584647150034438362507338265155503114534524437776747530658946981336689448888587815667372702087797423239246040285781337656048337501514680631575702323775243336647976687160486184340392041892921052745900521176922337917638668551570501025538629545936754488598471738672217943498085482819405070708008918276631064445082857307540450715852380180549175178908479110977622293972517575479392453587052781846328789993616657650899450914779807030539423071035495907466331072326313443094347973011758232865152020675726827423155091546314670082121418391014377436071906029282272779028888962360381557630024802205220371718704023150415315529505717141765391660844852432999091512164159161842484625719437684648224468283337014399473218632928711648780170283159118300760568918158938259695072530046589939022507147646176540274827308666204865288036474256905215003902795481208381537186223370096366218638916347470465281039877898128094711788240150385028190018574727233809444194971264171961534237282661063111094173719171942946157997597269607715244489347288227929511925444201879201989304304167558941035114280173153832371461873585136775342901723887437696814495836466644712138558176921362578997319132682943487952618468219520764049503612489176787309856947383008991005808868636891378646576516148623313810640239898233433549180316632473228535598775230205679242781789184596925333153788584876489775279197037434248211738297544045046237115277117644386691320241615489075103769760303672237479262178346837625778267382680552986553295579547242887284128360539188773786335636610064941643822292356463760746774313676655081091907301073428510599144801127626703165261259532643172266402536968806579819266848920083418212432572601006746676485916234677417627391181201402742046702481475984736680275504026162148515719732309840292924254345752858443559420383967086810437661806206647777642935544281794217627885863507745174910900088728275374555943498336468330805339010151799905783192591727359406250115350955241683489322562028820931752310383618201179217614886151249364911849700987625801629915849312923676760885201717811025994730976219721945438591207941882084236593597572427014340240535772494334312155485592840570339327176969736180376392022671734886265396643299248774975419224999093679224937906984384416555690028930536137057119521810983172119027415512876180659297577074081229848132501337572441431443339421471042346552505814464091363470652972646888510129387545714242793978519584961182548970362167927442149953692085423220986124784226962508810436658258224936375340352773828536841557724133977836435788663088335847204402866731347768614605236553062394989595806692784343504898509986742784384869239445102490357952337075237710056399797884946524687372824948155431426884122497000085035780782737590154801075453166347159363493731952931863495003224432751160962164233808182345781638476837613476105375419500426268380177341577945395657608470885421829188584715051733837358093835146038270452704867058753170263282673603291648135431361856902407759672553707871540928536560270239275256458815929424251515366252874307061937645559606476957661132049467059208690458444482843055977886758438401027989865801484824541400386965288830724120793389779385657784858041208159229468861971672534640045539459780146941784387490941068901738233599258281187545376096074704093579307394999335242509697562507576233621375672232185522481522618140375487510943693090333051876089139055981285581979847437489816382591103785930801113536387184445179733697584089465346095652955362416198783732734470826381107922993354653145943309204687015845263435585099050790838831518034141653563900882863288280182427429665275509900114409799907123589432680658694905918151729960642221467464341655270068958556524134300525060252073808463990041162987477426891542616280681079331239215834478776659631247499850218469773225397967010941151180623982926149364013617901534725261018391610882386562518004627428556754962709080963035782489282259531225267981721012598986383892925291990858021604583197288924735449824048635317402450564650162108240413965994711799138685302195465739503033436633293638195784979569922581981175359102179658288512623085249451678036970448194491803363987115110629153658393934268344177807102527237323606068327364252318910384528996041537434318900929005358242800080425808208137298783223652571830701952943054858015668862168419070306493071920782826665996023666782367923318336972296478088127267845175530028382205105275374951133918699361911751714265237968935874922357193671577396775868226891941965804160318886553126193652727309899032921686098533665528234448032625950940674282212402304187405813957885674434910225535470335868087972014062838032571542024800314034505623495006263374708371336136559106902641082183184921425477567479238463300025642002464707830966021330304067365347065678280584455683536916246202624991358038189319955903363719210369997342699092889431216168416152686435381511399039236599778627034978164609614556025874494230061358915925612112821096860652231165920698592363250212901993645356243989833258939112077493870550957304527526090721988076480332405752574385377372288550289043350881515844301074540542092048162450219924366860141824603733692248429507309245885953610630743986678119588749016824122630602624066958013931947087528652969013219330500755195703439630467720209360491192259078560823336382466258390101239833863185086212285245706937131654557448745634415944218843811992452462014342226215175972037304630865086021823841285298469098321906529799085850394254814444740649441537260777244708487938317935139275738861788571994749160921629842740583199438404039891852533238641354834447641323898361969569388712600381219380030868063017252050387770474726246351539476199608640841751004707760759636628343713920977922383586391741197464070425494493534061104798104648722133828251592729621426879642309214523505314637073145495412864287111472136770710019414301878904638725064559687327321597735800927474532017394028772587335867524913293294600796067686236194546371761173889526925758676143215041988172109554747700273841030458542354909136150353523594700540786735912959236478162771913764508249076560815940846697370449132948963861698886670670886611008604650042963845606477448278629112545493749113286467524845854667329160229451318896699926361361874343663993271759421402132036023109794630467271893059619998317945956378886340147432647033869252578508732893330706893491114534355353844834090733687066481070960896955435415403732040085764723823450016801619688087996178293162723917037477090604995569411786254015256966696712852598880581758064561001905916330487951924469870458062443205557547611400033872765085446493991887414729847019246136402336098937704810606222180624914288169353647946063649966741169761775623292433358215063081137976957099657393619237886304695895484143465578855601167053066642775313751575360077617733687750897590295741466424181555151864059623257576234989999858584624352761938274414914550164172093724715578690438803148179669800845640651791963688712495508535527836131509300439878582177556082443854335285981387690092580127787140158506602513954051808209695353551898346465701672301463869527337420493294921859265207150922807806272088164264645173236137928600724071288419969834714924505912858028352007739770438653782584923646015358496351447921950704192750873292286244406233198776404736620868485617156890666676072072264402377620722972479270177271632303979049865140885506863912514651517759850861636050611859816975283772581918672299611294562451637889701354224899055339537830981467007432946447378727356398140589016744815031893783659650542443241337145152065057238037163327222797075293503587722806820195646813973686324577341232504336596783411844613001571493333543347422756695981451312728403751731881967882074153907850138097146838914230919232419346058588279506469269453228690522996147434249393006755882143062092411337855615075175559040104553839928965108053228513985086676829463259918274110728192046559026645065786404415093392521050012823756711686586491083960663209540001288190162901875017198475444286013819821220754700202856655858909542031512026972734702244773524375429881366295425978588310932534835930179370400902122844582219585742903356072379137030661921994642652838675944726485937412752993944939334057620426197711070266988412010988099241164869985067936171154613181856703333976971943124660102380065471795566398435801255987916659087880935954796702430754624098103152777840629238975625645561431626098220495998036123600572194428696331883616782953889428624397006803808064935821717095737234867556286482103605768718019589112050630257338051619249471746058202040638103475800949533994638875628761959834107462949980214944561827158944719859069448091421179233348779720993687852053823632361685686979627877927604247229623931278607987606474568489723248745202484187415223072144013615559276088005576799397151592008343688427282274751020005167401214110402602213698632365282746448187014861308175123408276808915878131776407873244169977626662167395323046048192031468122656537355474534218894349007213714480894155127524887122025553910287919138126464003020726003051669306903784198156328657407228258205299970488543823628785497608676841492932472948378569895884059773891635670196264660618367262353437318706435830306996972311089306796584347845966881469200466861836545027259402428341712487494102171803723413024000688097357321446274527645141917549404739641668906450178750206630841107327627807938919557266387365311033449821901705818494877553448255901085473191689439575978273441861708319091531765420789915678943834002188003614224572121412806976067773031128134029079751244123786803908984958605764490777560991788569656131791669087000967035486080422114138512580680883160614083313620991259119088076549177343340064841382905749300875964820284102366674896332116853013033964226231777395481791876808094821698490378324094612838668240987412902953852281786513283318634071436666817852220057841185658925385875499233827831690280216074703907588611046427054881048814933717623081541666389828153001724891969322959981146211978569747281668295492685892902913090419303758506750306090877348298568241989184389302889518232825440579230384012770555252075716930380509172807226526910387888905786649173312682252682369836325614040328321149633976888465625583704129936014913366305258105614428237081313077551938567201791512626458899768688007070722867069613067298789070808017008356244316405306950182974630334817410868517118570429365453253185252253926872354815724985967275282279435042731828636069704818707475939192215036309269001802509888098755828553722379541608878308718449716781866628835078434299095463238625645586816797632448694276875615372295263418011669555326681921797962064549681245855043735573675853565504107766877488282216992464024721915184529090543152559237776097025021523948830520224090717421794502792201238478563800398449567717437246050526084865807192518877653437943384165868600053053291684271344383289718387031968036603750635537434840106902215910806335587071394563785860289776052694400630003131425133560931832226793070736317451509080786143684567420090610061322265233382293171372784567264839088173849136725603213383839312204458824123961014195196308752641010179355912389057983602915658558585471281152494854872732159492012038618651432843287598629272842434961833207765806634440686389757985582898533220885929037855546081176271597881028479848526214320010531123888678121036826201900092968559667794177935831266428068584994212029558318480908875161686220578261318440907527875197632887640365130645046292192300967406969362344834132063225601410004569523323704165957570975205322384804923928573406781199020815743526607311634056461437658383752194545997987593497604082532587880101309256482703334483985038923094336670889116827972611329044661712943427682576534052310659390778864114441936442263130448163344486191277960841247178548550967564951561658168757299568807853136317160131580479323039558636975334571486707796992072960901709064085498782762153389434911905445326803034056041434004152115966329022869759019748526099190319709395729910836841538155846720529867734413960754484386199643242435177670526183465428326076787502964758843219464749378496113054467757398446160341925146564859236641243786741994376237701873208589719332981432323892968049566617994725605988991502309900370414762652682295945845534409281458633480434565971092226115213262843267010150453737614291225936190197960477791238875555096561904522398468134417815428015881545898321413519746482671150767072842367935176821443351415039827431944357504094489240078913014319414922500516092451549675093593765778229845094057092545671848568417374980765401752068166579682284081055810110518727424454552834894816938475208837804003964080726743389141119194228080091819909328748194551067558867143189662907446219618202550784252674776159488624282515491609311013985789552731913919632684538621924086776278007342962742565031073331949798107386046535819237553847130470348027146188578271190791138782337167318800602658077254492237384949329939716149325623664023413617569724826290037106410069934464594131369284376037079176059312462686963235113110913248987444361074028240674739658573390134248776292819879164734385249363431229171439664999186606894443612172051315057335568765849064193918097738570225230243629934873838007739590610497398574898115607479510177718559965039062008282126293561949044839467832352096164898883172118860688497736327938286076450463976835948367812647460943817327335340765759515178909558362570885335598044361071920684512513829621133360733796703336067474013427981611099143143021001847282345759201285527939912698563287421688604024143185296166142264147211893888958828297688932158261012659805662313467603300861380424639874732910903106876886058507063233544099855304977892343992013302544978498365083862413224706749143614918484502190673086355322575745031870459881111717084782975262150972553227368975509650454078320431089391182443861448437397424616186579187723831813570064727677555966320061093415217202239465343181437029844918711484908557980380801068730962938167769217249406947430841816044157642097549782078273494616335528521111939794412005135329051235761861184934444140805501752414419039439260783683245990657165251333998926787317777507147229914213258215424891199567030042954514870049225876714888408558305659080116869672439376491429819426616905008304090083501789500352715729213087993216838809327618586480778681167872372549127943539836191025566723820887584523375591848327505547558233564756710306841276917153714151004117210822755540716902378937115262165415578023781344225771940497239035565339139140650138636651517138991139594168270075187535711416738170242354645731759886824998641670109502033978479850203210151174009834328201622747366369467074230091256376822004651786968468757794947274354897877329706834800346822666900599591931110362817024856075985463972962783958071887679607729796165409670119899292031226814462352334591649552286637892687034219262010711816579500248868719934967791982019470488589635623789909637544248897392097260640170660140004427910684663910078966094419202574771966177007893616168316097535472625880141364310145207291228918865713502331895765972352994339482140738997549182518571186405327858639864612000119311260026415517974287074932612281141418129009318558060819735357637289282994007154663695897059305783251650319986638942003565265849392005135504782347903617926537503482887754608929409177003342340131950137318272377202334556467594123726402351913348874019446430049944294524427525195033784413681240752083008602769347962006176738968224650134953877123505795990208595836197534472516053744549216516152134678712962876049818423350271869883615373797862540799796116828091276487268735143620290238912492645481403388382113265953860636224218942162982109969588000324189000725147701213774090896710213153158889051267692822708152419096350246976838007200595525549930908498625044386452164431354923575951929354135112842312673079233117146162289053008972516733084610245180757107251115690590454672573921593463769123860491494339962034247197708655958166590101595981506068272560028454920758342008889339277075747962079785149599304247492363895712787956322951062600425824272684023211415734906317335792353307642111063561150956566996845810211244667367258489054141179290321818785931598109452659355272643209000326350335541246640114393361258053576515628661386387174104870031073582786841768139048633832348859197672376092881734216917454340712185709809416414648371776389380512450750389606582585583935368193481263855836342530790818168729681088099984942083674236874053053569171129268772523408801030085600922062034064521783230741849195548794139766192013650574632766331439864391525097110795812571861076643895219752888004730335888807489699693154195056490897523223717255750162459292209477604375616011735134397650317025429273344524973629500451755428316146569811091527174521926822229368481155083573895675782254774674054880574555147385284527381200858245597797723722590338430037984564896063199718023429071423253988751468582943377809993476221312278667621589216502120065306847189061793318930615140818098013132461312574370200129801926832616567693874935059269009433505823952535035489801941824340844772018555233067846886369038909731522039850818306683355403543433015729660017951924939543851486299508747530909702806148330839449092608544959331917372917573596570030241850991919645519603239238837360303938849447569443138188866960434164714916911271346118908596087154465510936318417154110199551277521719985700592169520831058367669392963662792125817687947734493413509628854415427843581986966037299413739754766594045044631263276875656961984319366934018321765501462828166032988179991091007320555547472206954075224037039160846748322992883269143656837399100805460057686114781713215218444989256965328838735117811899024486995748785680151775629117813147896184214218188166349852726106622085455938034934932468387612264224888411358767029218643683584491979544258240026632489460498701109962898942084392005138492489612320737777361094204711694862878944221567050192766079127063786081746743032357682536676966857068518424165028629610719757332668742610111733513996429427908635566698061458216637752907314646211216228039376345356830251785590113353060106082612284155047821480817303063786296997482733299458465580906921014420893335094787881128676237643156748964882263077973110715074942041531934081840182158702309611345848869928392753680301296875648093915970252565154723634526283624697967964102562390915075631684727912271321025088565344195674575347228003507670627721472919912358355639569684483779648103480152554590189444901368864449634078325153978259086306663874682113473320156953979226003257418964843748408026489128391932092231519295179202341737927219472994778740198785298868702852361095360600218548188837849448261840209119610396096631440092601518716871355677908116731351501423435130527521536041818010380595919084330453808390315537695196039593012619149609759972811578685981544904491049876267538497829959455270390698105947378897814733908844184751331428689972342790743590751419354341495538471971730161078793815595893541921062342392104542967262115338128639821651239535772750595075652901625025781838618572684964385931158979561530826114571045885881739186846942185155126185338681012175408028847479399969283728217712943467094038736084648112689375303697442602827412367969961645577871185694021046232451692667490311400945415139659885947697949817585506625768712280547075392500632025184911782958804351831593586532874982399543896944309218873033987632091308080801320654706177335267324414640635418566236290978603594698795649386376981882868741828904184685643824358684980396238390734006334634451557145155368744576716708861953476167412689412082812971268017035402423621039378843215100495715394613157690300355486459134348500938275495473029177263090761026154428458156382757313750058206214683140108658039059694600121779846474862379651798779281820978537090317291524409127730079672451060021381747474490982000974314356039933570582292287596994368904519508056724493829352261307393344929364304685059446982443326477523586448071637247146893874294284450809584768533713031004498716341405392560726205655264127810347172063582025456804878874619367978524361295108146727398195531654835471294528818780358234124330428791454238423304808420374426496479188619595857231284748717224455484562389386736170623388520724781808685840911165318251354120516352011158221866819317619667224751443152894603202589782209873577811307815509262015059599133886975480612754758390414149512242300531636428415636234514032184269999278039766255670615693936535907187874506549682323032711843510426889979612925916230432306566061868918612435969742867559665053596374157437875569481543126448129968730348805276445995651688050394444770505436294772649128120317873120827959833435386758205895128215792753121493392199811534061761797320020582879615048644437290031983715096342012319447507839400053920614424274023375757507834502290194922224075462160979350929482582316515798592687845428403277581378226070792195465791282943958110968215365101421849116112669914604771072915549864763186679341151915774273569967959097847112605675016221516291491275754302825321553266091084196780163012214795070921439140288063490161895087790465214278333363946047466163687476245301532012712638452749415695444817130015487344553463011209573280446767987152782669313127755918424758135939510228964567563000414963429971791816574566442131452159599797525943510803652473267490314835695854173109702765024001304622494426872772663726184719626901078476780600826672969097265381890632698135675890232424349102693795158669838559435611868821294182204849557751428253473695738172819630203921596500679568271981219648973865516095737605306118398878167977691855594473880210173963603477003378669749367654009995851341191802317927866954973305680550222531632139534743180306967305146343611474252510455138071491236319577103535231495789692957377913788255119848281448802543845202735782501103707810381123667587192015367134008126032463188717680010697606577026358439075030671441403637437034646587396260977646403573762813925713672709773674840783879356605360811403769206224498075573507564257063801336208603294688907032041243819839958026191641118682193239993925831568864994583641809647880138019571071826420732889860094900428529159507320125959353851188045314709338646592191441261150626206889426788183463359641411561048251831278143548438375047223111846246978130509778213158769594652266218441152515198461331418362835386187920975042998214683064966102350088023548994594219141161682389599051428602098869507014223017376472422788129934152186051015117881208603698239485974316671789869121581890959090586511037320558975212356075166256416185002422482032795163810272612961255806643224413197504337952546213890814576682628661675442552977320200901550854676391767682399986579845440001075038868734412649550580270563127507740601465177958118711443281314785870211205200105833170719566531646609399169198565337527830479495517884106359492894492207929249761211154862990788144935434475986777534614642844482840660799417600419519759508001461249283418760558141236514673490662813800944849986000507586439729876715453177572039129441234858689360393692210730724795666635002318421058516942960590500801990434855810324945617236861561122045196741996559871264853377547188082247057974718347741337026522704573520419161983817349232617758456172842708775904638207859468085898998163691663635237487289027994908234118795593201352788663369616190454843230707587473315178921916777854470926782259891173744368333744943809735574158527462066424049460420194021151501405659771341740834576264187330343883032977484509525934402932371567654315218226470564553726530855210463240473671200309101687044715379951163365743323209737341060966709843745947339749397553109210134066724174940102050734989573350001155345656198542820978783560125213919970156387521173023959707729241015602608347076701532004914516107366546484898067504732488764714982132839484380810998797834065803611954232484771124010401916580098385251946709195457463745161079602978244704774302612523804270418031914801601309864965669943308659596144142169991691965019989736134178554282799378177751684255685031452299990287652874895360044082786340217766218037257843055840013630035699154057415485271646435219708366757862433437458762245585638691768381689530082177855378905009983408379452660975254945274197211025871463457967318948691654082956954523288714155125527554907101649572118678290495760717440667116822497643487399509185052300901372792389672773404492578722254614113141286325676691778905391855342355000518299495562836908923583930655858674529538094940629831852571204764515191510136064124835449812840212578048644292461255772764719466344551594950566367619927749973183149835532381895425511968771049216672921593362428587810768907144750102733263945800496567498477669743029520948364916162294063718101482798333935394302966573036297147043134786984297418346708030486897945134549832508268054476709009993337633397438716738074306903725835647332243672382169331514421688201826499436993632658882859175850432997736330350158179274303858363392697604533328603847706506141051097681483100714506679304881361503959560857178625742635380245713705551254154391197553380244461066812726389449510585076258669594230253782727886151593275738332936576642856199377188240175604565835931820508716145427481670141970145434392354675720536367587409175869027704299805618074283850807058070930201540880615362768315682853271093647034904933045086515944994157099294901373850282983197766981003866591479858867724527017812702718145773644067196840380775019209931029363432719244533236425866600498184957523175445575270231777639331359366104607573196986116043555343940475712599119943853158328996086230681795094920700307709149324353494543892058919255508016613601808362406323595341478617379519471295306792464928838144014326269688134696283649254037714853667404769184443311850186334275235742831174291288660055391959400119540396330615597305068678278918554368017145446394407381198607301135332529587332181834455199015832801746449708077793049845537548254081657629466029045599474348500855904875664125246443746634834525408557402434870534834932448081744061400686886599297637979856258864189874770014434722345323859238752124277381212363421205289625483395705705946879337249721769064917491229600199493813432560248777378297157825624070897479631536355892201218220175971110906822068733054663770775488189883122731742759421303007584188673480750067325346492715750265979294715290648786290647249382944159761299840620189288958040671530387633902967888267894481527872430550387948082292616877738792841150665609065210918771669267569312158745189241446301542200018310453944952884587661375809888365021654183408093892355850006897195115209227813371893347022156485343628321395864072854452503370652283518689315590524962260951460272947497784485594468518484351580996911354022261128174700051056870452052564745152569375066829961537414015336512702474729091093452325056473813433723493488914593319148905002747580138065834366616962488860300018987740078993869754949780342597632786833096735049291585645976452434170213867833926085489831530406180273061412478357857865331807234080767924974965077337468232925086155022197197087150552493073574103373997513261340114438747008114803494066733247678570559679723398040995554800957465651270856090551361060171263920707760698551542200984008070925231191565819371983690898683522971399902270806183344861820017870873190903042012413111833478782614528441983227244257805002451294416848840534909668825698875484743495934421093090030374089045569619245387129568173682848589636307599778669168015678656105726369559304357382052788468988029593128785141462068287182937718728069358134959567571422465635998400705804219403150556739122742197471528369678031779520871752882828117246470717983012629130881593184475500694536782902794965869406797233030941765745765750761771381854432398229489474443411090777558967309227890264616065295993647936897221791222506142271041185439979851134174647930335711810070350092148787860367744088327404174233313918414241945724602966830091561861232780146515749864232170769145433529692829406359956078978058768725264638629750307231654863700201593704019547289577736242335427115720417659345851780250586229370404563640072173323629865564971054516732091361085931551510081706658959943169945303475310481917337691519059810708414506596936888351072727129559442851269936757141736473788395091114042150975761276854871903709737839164142871404066047982174891426380198952139204775122513138717796193137615940377839323026981231550188797640812863411930445216024238824651426887183399931874862289907847215000915414130216391313804746726228116192443404591184401229107529609402930050297662690864859743036098833730736569031849635717470053471069671096220576806252268364616906762631999493429964976835943560958371851660971524453772261071457918517252035442895677692217315897941654861116149807923256863630148412261041681142959328466176417633267187721553172988922108507803541767316135563401477439449861612951573532912210977357061520198158057379195452038722873151344093968551498910518323666044815814400401485835145868409092625417254038643030228792400520440345461543473145879434323580772222967230063907656662428174379517231438035050357648874313933831439032454313596299948201451814061588081899605918589687728635667585408467550533044402258131450345503704678239414794445188493704533962486607036552119143521167090859676703978746102713100495188170305366274950543091203783489363454852115152689606061277864054248674424474749483631260129871767266110808469530982312813468066485789484321000938286540341866130571665752227105383725211678673547572198376817616518943962605078900076214279544423057109220960926302828798976115502420630957010401585311686926448773946277689100889845069518197955125096619299458632648112958289014977541324299277829914186204350763013958615465199662542456077384941422097370724926110906761126937992510034172650924964375431428257571268307830980670215597407003724001837736849730379984757644376869620421120650005053568668791497890246521243969075821682667784045324184236783934908411884790853488570075550880263055949623967840425746737436910520360829866759049488354305663655982171407524606560979933384445661713500313436684884584100027171635459916981416236203756910387601560801396101483903101200131556550922641461612117527403904509368137127118549997696880967681756272705526944035676175692002063050444867138762174358203048864569365337158732311066012302825863661626458808625119345865941187956315438810278979973653803628237105418091430212903933891917424501612729113817750435330328012376000628722075455729481349267838979007896351748987745437609590126908063334872398407819007411149554093732549681233819989549927654946084420692924594663642940484965931008821334887999860302702873183146602538222900172072411495913430282486011603782945778208635541443545401525300516122189141028840934435355974199342086077219091897672717824044872889323189734762092190693245225587126949753874773914422134226539206850258374241015935750150083655780874447307848621849526609605841901158489461066940155021593863945794787494622557109703299903208396628603859815134626716867070266548891443624929945452187350966054991575700132771209202506265239670823414532895403713611335814916870182747860589453292289058724824248166639210639972428502661667485211653247517175741743807426447857306640280873596238893845464731494091959452981835846597185466168028985414085891585677468813245674251038920490483102522653194395231684747660248223470492781359964828480375400747975950027252827495032203117962671733003489008877939844028735877856808178255010319410750315915975997798954799780565560659596963456274271881594234965973547440664207420674005266975513097162232024583599461838709924816380787105686420719041155712548950493948316704708244771044889162483924605349051457811662641753664486790277252395538274494601462817733035485204208049414948852688071704684773748656290119532669946384463210357561505871989718632830807068372798607936759454987994077650908823570959631816980229409320237662910334068079723754922825028319972344365763965426930753620521468344694936455361756154159939795212627187982072638961392307325506565725008600798335550228897894401378010475850313232557432293476612132763510275705636393964992700867899256753780768300716423377066671248575448316388408817184075888107694477255916542477601764467582253364176115767392558937010000569211762226728584516656770655384715769131031487872659239201111047490621129056780184078243135458874152264235101290919987004936700299731351319123347515579572831053470900597256094354927593097490543790996784942667860679844465714267975745001434601993800939547917764982898689260298227198401225961380481771465108288065225208084569061416539947754712668429701106421990556856990716382164298889771239047473273630841979097412005770336494546735120300263369340328608700292024692483842598122533458089548062616683919892568341241373467868268185375277822950375820793715259793177898370026953670146942703673474060346648501779443061206507521565252736462487996629997819057500531390968222920256216179452893474208977684147448187751475253080282134009097724736169820435982702101969910764756622175666822477470388774596900055136860729049985969260889184692180531963835826706791043584045446827044008384939848069543515526267129831042777228411872108449917720305420272419350170408026000529999614166619223210665030738740811620584286965632199143562749795502635736410503524635727633646156461746949333311099151639771074692368535768713236523552240714879125636958229427309581829867660918763158125673265117853835333221060024067168293224079890484509083781655308505661427215549857610642459511566489763387321138396748303733996121465616967109257973942752724457689592797152948426105640700994084035157064144294416885657514712120859717964055769474363054924950580235619388183391025005181140945369955071680996170571745607112992318261979260563780073673663599873202205142379399247278930022246668342809130213427118140475891274924920097084122032713850548283772260901344443419966553229790686014192098066517295042813395163902119798177413643458901930734854873455076232266050859243862529965929425706777208179086212280773477911912482311388585866199167679808935740558079207321087622857045920315188796715916777681916615609728711772224962523811528718047813507508911904466542495741862339651157765560250765058316897448181975714536534854009967302250531402959312588220661740543601242963014929867970309401262320410738111761908906460918965346181218074517094739754572850538588510070435888062588052910875541629870278860798682521277977863974854030194628101051900111913498679344673698979676392179693369280969037664524668867390219777715741354602459651482421032458632917062479695324830297090572601618981097693433516420697550094307609344280190759563466720616467907348528743487875030131851078887379819278538827031575705611782895338969573865689022839172922760747182506337657067434459809725566644504844311561784827177711564498532884289315984271068113694051735956021423013617280301708316338506953400265013318414044988439160806455284698252510797203160162328013698192756261511915913991294895147122732833305129970750465108031465240524329995571067552263460374836151756690872699581142748897250231782411001504722297236804325272831874919816180380620592922303989971598974881823222519048067904439167926874782749800125444894172111983956287179771169204949464303864552309093414936951663263529022254918012313566189679600858419997705928825834194139145145469825782242422086007614202247264879445586997567683467157077380444613461516508283629455251482596924671187076885338434528179718755056935081544400777036388599650168476987496867462124560456834714410756623140865732947728026282841760189747260792062232618542073525889363116859225217656861884423367358642255264755065993643206698314337693283941819059415144589436670841376222440083719721961041305143517791945333193462212009556741065577321470626492178588863474679472082514097241170231981811673883624897897627354417851362332721611865440156692227301694386640387075375666487078199847837655433457782327283913376527632800495309058994692969822045402040624776203807385100362803777950638712647931048268829259886735209587909475860330086502644640067368565933767664885132587376177128753708559766629976760772307148591176593723612367534546921492065054255780933840545283354617618353662520697843743024086520861199417643593495051562648279245065660430593108390626797122329258096039266546121092474500976749299641697617518514904757094579757151759459026563772438168861690432864393570343845788205327669974508132267075107490444429373550349375970425308787324173769651082099619843843231989802540076896690248070846965365857403578159042254818342305988115386545161170842595778670363520714686707416573276642093463642089041171084111552501497917716853704888612840397146069217122607570438578408341476098265520764249469256977747316385639737250357249332582437213584807101554330498430380117330591747251115178721195718557816106990082736135183912732584401053811520121673288231301037238130206902316868544146248692013748481665156376226699951958074684998693334732333559912268044838257256144340777631478476506321307122019373304377609146260177328681162926891273779863276065552735252547094122306058165193693305945231648458036967013727196154987318063426865672523789516530210050025682190244051824459945985208839359613755746036836102675942363186924816906267435439500073349114315791045322773023356212204098998637651526203430368883667400947303072460717151012410031469833524314446792304265986496628637837614790867732960805405747815461724975319422711444308763793210388580566343529811542225702090512986483239484197068219936463379134957602886853791303679185795888947433111321171658739919204664585858946368916434598960978128359411985777208514883172160642814317933189952400315995088179838961089851386499180443483550306894737010925884067924458401139304861203000948584625456048928953945668121059848901839882160430476307100230449503818557331734558257409216542291467490471897083378307255440052022326924022843934956361244197272433961697622725291414261863723535728314162330996336262700254588301424240427992144775887515973281248974781040015258159188552459047835612459145723581683206186256153626507142585521417809901819092934868282925128253299219135054241516705863409357250306297998366278709068456153211829152610278458512214145554027032840211551113062328862779438925103250054713504089079351042331035360734238670615307039984868944002949539445838456571809634728485127979484443583093630082776285908619907322181276509177803829275457284042180631669666842261097518885827121757343187132423265729125466991992240122566756536007281037485345482786379489810354691993739162710487439655596903499686550970141625747313883121545400878101621130686751671440378088526925521901371020363900416871607984852963571508381192422932968710137592781998537192160557816002784153813789722839686659695569522462305183777424832121106651091599335002039801447872776744326142754902206469004104710272433072849795534548065736885523702284301873542186896571204040982611311470118131867036316009316709713661538368172833639787264791164093083637477260456491847903580582565971698430532887969119747003322608886004228169198293374749388778890253054397885073728729418035183007886448243007188328184161348430486877142291496393456009148140127076308522031736232940976221493747935059780711174969219043250050652499454115254566263873638881077133436759189604452058310077592253310669080049325167095660577157684683207833881495457525716728684442101308203383784638477386538147136939460029885643903208326919973596726567092605687257280336331463521241141588130365218700240482613284667750211564267809081201777713836269311337513403972417741316476169450667487310683785927782482015033959407014611925304565475625749507266046774975531880006428648259435933952007828425483125930734712575505630964857243189561040693064351380010123945097545361206200030987742905945689843740113405935324303224606480015985055270071928687623849933563237207945156238848246632355184863847946914801238262856907213054620675576814374941446810617878088506561051914396602273509578174759996816184478870535923549867938404335853615578345949720788922901088083899062985262410100986671182041623178013602799212699219489234976169029854105772502479967476948298772183286578073466743893768273142735489956739239782557649126460270714586249029132454034536099507336000130138384280228959206262660171659412375041911635265014553276632737644843232422706044017821840948020294445973643730714830220901721550759816015100912260182943076542870309600086414230848633978447697390525324444708708054890958633590035126199220636988109883947251576067925626163922823695852438060144127487667227522920850086536993396170043440944681341246225559448687569462155069340729383011383769240389153955417004828383771768539451212790989049443311385521994458150954355447373784053188663706941365153014396337454063629422615757408980365861896542982154087449572919369068237375066791863954321667614524029658398582646520358594145591262732094831104067718772017165818615625782561118033456039977084358158215221337629065177147384155128976221721994825068467139670184493612206107508278190709721612625844098555269168940128862296891738196473323356628228418761806726465056940286340033174391449350513205444319122983977045161694333169419681667638050726201361647096668467097747056213122688640032729490541319226631439333239945436720008165149412052107850724157391358269233619029897770923394048799499573563831257521962558749493245167429568214118976537712904717602713381540204990147345519015331270577019212046653112850391089864546473139627772408723755192062199041891840547063242584223638955847528592040448417219646789189531436328548717676855108663741685994817796367693460616496986120898618328034812965493958753901235628163404246790889307795088819960473586052959608898527698761652594715589470677838238329479885850901810291707986579541722418237149326917918432577042198356304441231010483429506922950648537369865978395839214454777492343871636681313611488501150337973898040697407099420972384021028778701330222426679406994255077814239642501740451709150268015980745026083443042653131051443388541312897517874466233015276910683191113018931984225040375568692309591338753483395917182415008919146760084403747860881978441070590488039602650029561501065400102537111031292861443577530202229796425455213540268083679811803263316276516960416489245063609525646047314670162078001212329042114755437013457333944168293393541679044475275154301661303488643256830091409762138507661844979091664182087202996289681561837628051470036205523679810968732445017386380314084383713516702119881853579034375584758101111030218995789378085022361802165845969485547251081322744070013903569939669285283269677303895728353492106805975137751116436480621128742899853732466894459626605509923322402092548256628264843317088187909941781880442877158298245628422149787514426662206216056189950511802695388350945160804785782746658447896760125721414903764366169151495337066290689636710767436720673294264602428966076444968458777180047273091336985424341137068191521079027647687838210588269449556168872683631580597179062319479531878456082293624137086742402270317652969844463606071085649611337886698981670421696725503748841825646532390759287019257924084499903950093736883160301710762719284275468760211513160755517780342627490870820324375026312993213775883967436878433500091074979690402395335403887072222493016717161241580093982296757983933908557766577529911527028878552140275785673245066625564671873939258302855144968389559102207082329637819881977087705961918574062209362696371971216879794482842673336929029303765315131757528622035261458969658094224049275042501998731625265037877333367174031478993903071456385812763548396582219891871539772754368387352188073436426780454465323258201308041402321035422781936130150832152721064401884011305330734516196073750884871589019382996691331832369342224467137639476108275948028584905106227391562741242845270527688928307238665485981880569575518653591736934622947603978309147696851812765688749002711760806359918541044048484053169433463909391251659236853227680156004629342513934982318871527773036456370517364959019453407277085791098290677779294626343078743335034236916930453000754892128347854449355072788991781657041643721120430292288884226222639012439666697835017865290704913747059552592903946215710343598997137835302265330468975585630392215461653283129642507713276954511902120370218753729903017341269837018736110507853281447781122846592373023589188320693531111476465088837436917700555703137715136526519589710087735801408313348492075024087449798790569623379684312147941451739383721992698719544403261916185925098399563752987490045387972830608187248392189783152245782978118653546550699641663588417783541103265820087131789112067142412400846263597573683835392360449133300697841612207511507950006188722891304783697659522720942022716629224277265292294461452560590274524614742391083472947156903824118868966176988051852480087158088114037410604255233616746237105582106058958110228392982273854472272956527845256254794774030397662915184977198900941183849020422143456673466942111170091054206738741586120607125605745303749397648057567348458599736047882623431788210537114972261820386371496875809152797389212839198532398010574297138115080517263758096625517066137466878975089697051640595140290281558481563362302389899592022999332891410019407235170610867361832150671438319901877204560794786027654837550862286734472323827227679550779571318672924609844701458661203309555540481284920966098887398826272535402772472422518521752994239430774918233997810707589121782070114097988030057638892313842243386332978093000544856558823029514484879226661017840578665526951222033531075558927437122078330530205284285669004777681035352393677100876376409533030932271508237606193781080978155761991331286332593532110622526187601167721570995440781578896144423857580817851681218312206645170072052133355287825578050361814389128637701595201017863193478238317820204433711553934367377229878845788765050793417013119291920449234814106603223161727117997173727085452370068688862038534887045534322871646497361586933510754783877520417384428178694782201188705859824860599817016840321557965093446911501681806576612976769283044255305387554241920130388090334922783597071100585536752390992189120770676070451332885113642393199988608478278035768515904513888278079142953545818219227404256885946925918384828061182752370328175088550694933828757907334575500630521770362476262149748367516250134233928136031482475271262813941825721637468505431642377376226839056484682727339532652659005801179206350622024788907810602466239606464588534992502972114559313329225333339408599987803014263810712273225312054525731279723181652474322848946620289099116778922382399508159457393821606250295100572512763165774673200565962993019782743850376853841225379186728823727669500462070213952328657176312382311890238897411901111921236470889818287765882788296316481330006116563191421441819191763995770448754793694187764697951760752039090282875354959154565258806538170493606523982533173905428827962412507888138069872191898528440960282779153809437455030934745702100448426141036174332769042873889086857967490189276023666898611973953901065191819440330094221525771489423782372157146653537621619078419328564708626542515802426355236979231682264894883690317843746272503292319811203788725472355755590719789758098980340464949631627864752153357631866081096673768324207377744801258942622916544384019624781629164445733779272963438654879446782185841375645304187930264154803932591510358206453237591031834304816569094187034159327134494363791775645908044752253816203432935400980261320973418089930088549591282557699731967212500062893970477433008289159538049963945810307022650924188643238770224611044033111911546264692156727541610085137874334203166722776529908595145923555995612227604053765285114174283646810208076293172251340194413330445864070564043279971867357366084326145252311541381811874451202437467342667165545184991240602327844141423390292870177547805579618621057761468536370620197302785691728171541407826217728498515723851266409975801733704760493867134929970145294730275340297848258056623993303998539565391533159264773549991922826248569953448722075907336339381575521711899435838447125046513394295047741504462595335435743911682211342704247753314400631635006350490616467038510242958741283932629049784356787961742085198649483665241041025007303288031606482673333889862142781724463167185486205431683259218396287833874422975327269639498190392550647161121541173093324444448392108143669792506227042908932428238563008144498715492024260948194896612346081684223021605162130006260468451122327641114324960688568807436354209257377523455107630894462194902383998425111838182872351304354130977382260653283982190832149613782512907633332856822695307109395804624150606281555408070548380370525789378334023621542109440433320255050966872150653166511361939011818379957052502629571194837276078684438471359003568992547851126908851775269171194907103842738593730249478567798212535518355616235236951514057053097990627679590634593284324396490318909603339277433910283754903974864517779383469916091840560839362003146739266700120383386584980056339574788521436829479869806558916641957180993002170049324147766624357612213857979626931570903568309354605225810964404979064701433759925984478075867254939042646990636747847017234609124324545547547971110824053923888981470584596219187549601024941183622241680230605913701871858086183139658390808424159412466229694592839457233770099531618057865301053449139364351796475666446266767785703628627983711012019488907889568935666998510563587964849989138441092694426115485129548782959407776233605546341050343031471909006862568049385626198501733467221989366015462522938050529236409549726374534780064117819423950668142012560378586349819838278659635615192048572033194712829591557461328376319346220622406654426425465335987404895736061440739857310046192887432428777507446270056169736503719665643571688023551764951640586177120527977887621891939372260624441760001827689186940185774866862202204966354260118839040603729751994976510711924028551684854293987511211511184630127053904131068634363123702847427941746345599176055717548021055301419773214014751169030694684936959229801483910711993518674821066211123524011672133263683505165531768081205393764962855704321727170378123709152265584999965303686445829846998820452397324444496862610989201635870031323369442589671048153613491627941130589903356698883142207825907225243919646184150881013847120502843819678868809197710093039360730501966267928678779332689110626009774365113007155070197240940289405037452260240855516948033520129378230269854672825896148017030125690715527276250549599767908854416582671582372503341416976283687966081829078677799486260708344588227008436905862231923290988949087034363114984322038865950706514099513926297212015415211655702301141283227334511267376950829389467441297431554181017583158119109020581246384476722201099470666975459936628305314345471202702498996431908693468320558393800134440080073114632503181653862766661549061747520512234260691143474277959774793877585328467992069775698105598666606884100440833732655190215991960122439770900963507421392027385704069886458539637404416836508189277574572761610735046165011143527350830888799951287592391731746015464801689638258839179201866417919275997700984091046454776780055611827892676693446111664915808399215529760661222728901725461583137016375297310760085746330088654396704220936786052688642765908860998776271035827896206944547940849887471253539937270688185097899513633778307371052446773946066788058529155717990134771501909614020388830159113374958694240845314648545564387862340560399092548594849174558484334152197967874487916227161163729821114986970808427439882587289812120312649096710904852707201595429316221179205671976263965330759508769420825282194558597108961237311502079272238945455403702492543049293938943464409764595680012019607777238285865713077880547406033389797667649899034286032021645344725018575675541282743951343544238510382921251722627493973156090217986093108521744696682559784020672479658353297166478982297470453534269201117768669795396152470509189499693807578883758020039148899391060845553586834692795098509310684887633646954633558698896696793086461637165524081149845748459673642002596550098171364043843321235278514705490015803494481402025751069456121082702372345803547914514705204463194344654933972475700371935866782220640518478513771700019876326545830112468880681098627754384033064668228439122766648674236049913109003267894152481343743409674479878009228170834202542667198187111793520981905884536359805903253972945573954856365813551891126626205740212599123028728109799233274793699980217617461588290176785160617233199211689405516395957887202223722658122553981461787525125997626192533188795777818695642966481263987505345493570437897654169525797651827701282838231764127601739237469288035469753761040824913348698193492291924965956898619409776967681255503614016173804640468760976983912780919799472376663639807091865897200573485613128825120280319630737358518490037712840781182817561478515318026716759033548039994903636094167696413798703835441596000066654661824393296458903007369736821385373210167933820443665045881198932906299783375313884074889226394615064747665022931254827741284757084696306312021740323264165244480489981935346016372506812634523410575500060976733901776104300029720473818346592763721635398190328788465476172154860302850527737742180327021652699671675440611382489398637086643380001133499323866689658251418901381756278844298765956227022466662219550768894101215648948552532061987772920451135110431728938794005241233283035138434670385699856121570832785890159826009914889879124568525064894870432775535679693856840151001814990907818887101140396218056970726964370170300863755384371317510041941520888331485993133740804803804563325533680094825377741082710182692664370307435053496371400978205755277876751418181117965193851273830851814802642734419907808787672279726874219480001708687623833081387407892096494599927805242002845109334907991647649548730414672440743208428647424337972951533378759514811295496612677274243776381755455958757414289353960935762249105493145151932703925758529854791629129122405325278877860373205797689978461363223254766528936775393165872463660225641962639009550822116529285931139035192015575902486507022278363843583294331534931509823050296162283352894417859470102675525506473052755134709487783657835153560011663231170893689712062032620290502561948391473624049585188369442162933111980594351712043522717683438355167414779366432194015621021522520615511394737474359326900642532309673024345867819166020522879915454106970636768025366309347955154427030861512191046354179595606976410297227830044569331660601231413445181555335384493564055769563890425632334139623340610239120464268408943865974398320560421587510859746366319787740307244430331625164372384540949145134717583514775870483183251475348427049672409499805489167720435411648611131034746054315967559653019759345033083984054209199089318174051121878264605979165974353183745433753426009465299261296729667767040609176900981317097065850835373102922286042084172534682092134941708794867947937816595285155744808509693382033949236031442341455433045213479489449200546086388184380450087445116582067952195597474940065139109573029398642272785980280325750554738677504202206580548195646263511992324091171654162575634180493871734319895376370234887500668582446119991000240736791043778544094087939173855402778285469515776695253089025685844308545710224804871515778623580938668299299006982185781940072319992421762495139574484787063137292598182016864789015808324707755659875264145107627018425006255777190103069672362438466383467111507714862490048122873064338283733424444435861489979515015092751714973877996182627401505523259127429415866111381201956471895121322989866970633637785153122708245575498623673833369594829220750707370237430197940016806510564442270552431526428290781017634658703785611689870279344330276363338059647471462346697994678661826572688592099069619202304792889372985535847180136686674043170556336963023975015564906073566142984070177996758242367750094758699601852844456615702592776922224020200369141009877634180523409750241447462074109204882217504740145575563475934181328202140524666955353863010779644557202317005529449139378111562205723483357831294801422035209732977181397781983099735658694233379545926048483673089884089862869405482199104679552456501639847849504589805257225666019301638574163384738996879478033582081250612412016818808246433722734272260817770184188294295703297496038309506420137779225116721841315048932332140477176604032432335365549100631611625899828252917956766486909107187997399636121007094418812380292604707616275990530428667799241486052110165219186973936933726262254880755673552683536968313825018707182162753614268316959123082394922097983703058530104344550683401088453048438135097359869294003858729433770780118009436962866093230554617609919483387805866149599424719588053957115148938456911677175682035200027451321237712667381143395176085890796467241515863993601055031987334639481353893264865259823732557204029125921470450932287373188281438172216231598462427973680753740327707423440416510655514568570902007529918027783075093886181877155998624593921666497139168047524114854920512221825476726544077844869087838212068343754429221939625433497366203508816879257554481365814850946447860050233391631759797578490348428199588392803502713133319711079692436273055699168462873063375068277831709585151757365573659033162840320554466193046398424868863437807207741977085425346575501272682231671244519545623002164761829468180780825183594066751145787317625655390144769688910600078142774241413021239779355193516306766072407577162300052874182546495442644513219154826800869416477551664105170530218444771402845587764356145988448773528198366280762666248641904082059838561209833691715044977668543704557888765996457082559985634547817462885746396795952513393184608383219120247077955802519818294310248740646127589840022301158173678813012391475405081761667394564444575261780912678383823689731537341850751518054072793235455139819447487480329520419517058596196414326448833656566049602018753965424197842315316304066599885605534939718982631481396433157602369878671106186565872496559987351395797138701622391269735790414345239720860255004340524714367360645696025341961581034110493568678504415443518906061101492448817224237777312316266178274707523799846184078759760090051724964233292830569422779144502674531427672716278528197867227893102546928012685371315188329165883465843944164820253241033432924784370959594822248583314521595062073656718482534367841365447230985141604916260347208028475571573274017011358686263286940023128353448385302509693990982603059628538852152420263531408157376773538135275600647583968476877871284035490640302229839227781504978123384016513095922853078588243274821018999143578205129725624184825174147237314255011368424838076633974902421311419410920782779087524117686598161005750103450389810702346413887710503628356172852333459865148780989661056965255043083143147901894371056510664902715892678256346413056145194549286629798835070834856149812953032998966468174943581531609420083461532598123798593907762562413864067473188498643796899781036850843050888395014402437834849512551510887833398261234889539245924481777395283780439940576665095230765300435674744980869096571759492917036854832617789747477939996711657497546010445082410045137385526425928393369692874221471254181862262736983052593431137506451016082446802825471136267184968920881966892997651690641447394182002014199444168228067336525964676178968638030129334778319000326812145661507877819580712288017969463031999537549616880821394628485397700824180291090916910833720512973279889340723476468505075386293232222733556149103074410276357891013265010640678413443896361526489306166973963914308594616498916002080544132205466426944894802275346995561311408854265416100761841450049811667250066557112459421008833996861478347531272545466808630595248151089272076341254224476429195482570566367552154349827817161874105679070638548821949609012761747959436183389144695001574724806743561242038963783565234366710765526841734057809931966785669342670351621154539447665435624366894591343131486424250870147747458269753686444003291670738562447728130316044628868535743576000529485990024493586103057774680632840087296862820275663247286717295435667608955794464789018767819587390883327266544503194915436556709537518222173664580738070008472926825391436178205018544205393809718336551219668361416345584138169453198022018414256586604873869648854327321829314957335430034391872019455498267552300460384834401247018858219340882984915230327486151573962391313852719389922797930456942530755252295089228234541686999165288207905355165042715229083476023291225792985866157515116321288394331635987927573463358331140122600578946262164532159940390752001558542948527781834765932847265413759557145372210939047088582916490429219215137431893191382154398427746834142522510577520453765612520995359781712214594967851867170109938693300780024426163232968224297108815426896182456990073299319107692650675241349892792867148953132694202286544476783818605344285528106562149255176155536702016811938258202910915824479825479439496935886703404820499668667191474778785672831141562345558682689990939477993927491512817003744338005012592958530516174162636804388383856078872066798029516014684685192326459149136958558522827997202875687890054689020034158554501627719322223073958422353238294021998145698168156344296825686220321087968818307502764528687751812828136008504319501665800047640435251224408469803765995596226521448189511613157520198009946640330540794531602115430309933213442161183629888555244559544587569681590987906065027041873607615600235581033550103488822227075793336285577786341760870026763817085657025474337895486930387061034948416110828605293874076951019519941528407202327500036483023557036734733161247961531498890366154651522119949437816022928428100488077271770819804858298917670400930492972789829984990637951029915864631916806691926781513563794896257162324162193995396107033216067697173973803440450629921317180354614289710723751479822880454705887511899023344547067241210535077371886888751384688586990060564325900661988400867633633529609584484347862881464402418755360965614088678732660894745837428063169075532197018868934905229756425745774157655809334635162499242055723645172168336566278898808050766325265308549254705335451842634159625305728618633782201587005138484187698429035020713392611160304478817622119535783903000139394278600265764806571968709017573786911814698364940381481171733761824833409030025484922320486549451417152079614533765194062677679303675640388582178300983900275859631375958755905906699422663371612782461381147641391580140744800235844792759694713007577768882096436557875426290124802020419717424699443978948614068067186280495090956288202699002038372959488547957967450710383329107712672660054589148796989380751412751668077199105052860869862990159957906689503772534371296226710708682825354320864839355749614021366178631606527551872526068508294781191498395343368954434222816515230911565581155659070315025391946166127284615166074696639992388604195124143988464503374643269863450657407643264611508618203382882658096325060450838816393540599452916095308014816663591370780922646641098499653927437222100610706790871743956359520961422413284673777107222259014288880903026669969689473619201094807842263015798983334599899655404683207875590582822097753452105035273708399880077339987998545090277932448415836683593386043217632251773297843673911294222777809498805284317184529568698448044783582949392023617745220810622290554864260512270752210244150921365218451813935481164011386301013457255768642479670577711324929508374314754800713838923119880617481399771222144325075283746965170646671420772298880326295548286131774210758098977262323855095341773672201928198294240406065420830053833954467256464196474133901139347689315629304090918228619841301704127598230363246895699342365322678414188630477776678538553438677453876587097578389514060141505351012160865120508824906661696022867771849571520296100637873116177443824898937225274237554221475426120152587638284347319137378114833180264069454529710885215842478665248122915538860180616341609309965333663091986312373183652634310765597432094633000581149056449800834127927032124510839044581189837698019742713049226162970912364320745862656737772754563120791795965682971691034905309498151557308004291925585592028325825336775404830676170225400392870421805236586854924986501148017449192420894837559730863530946033796381780581151941668217334622836988042280776141274923459247791135783745963193920229598240678088313780259820075242010797578292637262907599428576226583997576122533158405247061502267838598024933707913392060654244876031810416692822095331462954848208034684994523359109397929366369647998227817694138686539874481858167745097012324978826081967577032414696435594429702418551122876855882460292117842733106399816971228148492880269609439427022300927212287705737695730298344609114697082794853537546512475945772284837488916590497313439844671279436583241329465526601302517055142156520023779128049259029050047241352501466641119007836641127032673281684757760265977742943130196828408585590225597833443834567322850422252605066028125497659332460427776517765965396589191985754001730975631301959966620969309994741291968371865633431599031773662673993879564576261450704186904213210250333244957102125965556809484626220084073001389356275029424295604681633739929750186742688111182397698477978972743296823173359737602269145008320838124791187629128253094926267724056879694713825951329057715350863016334451579929086352613073109078732928122297184376320446926787747653998000344200423949311064618604919770429497492721576208739090449974520090827417347905092677390192390686725067851815687937444524248377957695167764883060873246043112938868693689793773416981869565411501153043252733424950480777085927586650059357537603648239836716003117216658979377145973884947723918343139645852093977361443456134396072329283096200326774333843319771533879157584698026017694657620530679032492495166903136184068461404862885439682205351183288450961031180949939024393998219496373383875802003604448255180260354266711341600013028893488759036307545935437448562510936998399034898344826535135113580822758681716767208673466576591023538069340131816024131690150046732480125331436896769982307942788901573298426044032366729081840972288624301467165183100066258415189603798224261580410616189706131434370922027086093539877453639646790768822333132293817372821767376351487952048571013373052676504163525144391496416349366577899367459970731107754549718932026408974770357084306697893350759687051733216341891522935205253425140783579483431034300550223955424710747498361875641257077237441301146956763181580410419642183073511892395761412491989004505824236842815953904265670936265838940351924884801849225479952671678111024548131898395468823255134052701566819425842926601689948335528871169120934004717338094334351714230510466874510377133222541255661496506552706853774305940399776733528215553113950981320568459820922378928877638746687208953710033302556059655738058447278126429894966929617082152781304801474226944849550447110839165890510651568911328637332343517746234423394076397383263686164055637101424898206798399782114862129029897605019643487566755742333887586216779554199322399614175230467823874876616377919383215412791890429477278294693205350613841232440912460577130543437585911243518042724349253788156073282897277187371173113027877080015657432481168592564546656798802048599091269888712544136200154175188163972890991933284913459467498766277611486235641839814163196402820502880405035465218565464443672620243042995690867468082949445981803620408466092798394934632479880320137733633383007529450500795625394001993787214981205343154083342496747833719149014959726838600515296863163698232622324524440279306849478088397318353905046106891921113945148230214851775671742638009194710291703898591498211949329040956135259523675408578621565758313182989121096410900571878633354293381583771344577792811551439505847884903805629644946905042117375511923341496119878509577024046673625662707128503348217238354591122246548031278735291439212771073879353578584277738778261404314133177057189837662536133392915613091499789026303424974223796034021889714887326509086264312549907893395576438384607401144076565306070247238127477594047115833529818713581240984138240995632107238540544120371058087040922260616808438312958531975125867486797738471256997946166650090578116557582798233261382634470529819806514400106444463408483822466756973130757223221645199484244633179613154951230901235901508733635509502279819106563169914099463682326665268195438597396364740388137610161120756671155792799574732736950823152912730433154217976097195871132330076897955356725417521615901549955314462702369644551619511922192196101710804891987039348731894351949735410266828370286138701724638767551169930267981756790581829895687297673848264181150088379504359050386918206260093294719255264633656382183179018300705204598376119420014887650898912823046252632750233162850358685246365063034474755999507883594682156996138848003120681645038010567338985417767655685192286865689187402877194940126636330461438353981680984368454516456578437956689109908820789401580825278268310332462036087690087147527149866324031606306283078964493581031822439297442377748832706622983718190036958270629242193965655011186849267815950228779516037913359353344744163935849743229489936467538227421826307350516474844358445475009394225727307524903425413068610189895818128820549943798857629192997234002185659549321794724359891299683045382699783032259012880131083280574745233922806505427818625578978012978072953553037015596200030861336803221655539648308673872252192334805955389151691660296833578274947837924627458140033757302632294866140776130612561971084342840747251040011604992000423087555520682803864647715657418392619244123979803918264188310963729922287895889146935931383346875165643093267633320328502648773001238705925608959225757805275694828692815013123775134779387262624355179777586169751997541784293625901131912629946805263849095426323448048832317398143808460906976743623687693547103365014504072135723349782124419492619049137628797791963910365613640329448302760914852435835399916229157207159863198706049113701491980278495789057758346138280731181705771164364922842626291520240127548806588492906634078316143134168093183617554036124462764748327060651442128203626734943616761707746521869434892343191842881833781064772073101349842358019014806959196225113635888792824983380894666031158641569191240690837519927194781111039938783329665807013439957664253390878270149963446380333848987977575357339601019433502739681180806219651351515196112276240752726056821076218994575661166873832322881764560197450173999922727668766750343342583617100421966829244459510430345862097737984389553232787214381623628024821786946271428261480015314363224643360897150341779977878433136231006299673763555609395690751447419993478978491295224987713567749121618481802185865189293310350517873973910317732042211517285841381835641450677756401344050258907699863187244864465574230919841109948497735278819446174777736950519526542842878711100375819164843966137825070378459674145283517564817014587746474694719856833893046675960066497325946806367394763033954326470582325531980392800274760040384133149458416430558424009981721005925224663266955016950797931305964655028025967688928977575584532364609914101987116654445537490064809498630317506515457405658685195914340505031952156050550253149094571293631375115537036260286230778856604225687166634499874840392121872437310235392527472601515859946027772609203742485101960285354320694105327787730507696504590858089655552754614664311619673530728808130144970965879576195980330666897486192138139883278080502361318763448978257336221582828848699331550949097854679662690160344511030330616246225900847924751574880313673197032699443321291626091982725321434504872986752238985817598250817796650846727168884256795129291075035912076850631426779062184546268455521877840110410848843404683839896893856899925825097422917448599004306501918127603467460638529747939135043253799221209659084058494399067667630933654097756282631456732354833395635730797396606276369168127313201744001594044663154773304915047949059055685789652162632818868453679841926905537607005782417613939765127630726487014879463631086160307799022756966276518133275749288732887143120573230291796595339869175678956563265719607177629009508751010647040631143969407787403236828257884164447610796259425463920326884501026267267592649025018220384097685561609750169221091434363456631532862809756858425431246705247857833017141766271506341502106462503987719257553488377790386431678543137397638474423982856734034799725974222915280011809989788385363736233608347225308363602412663381398336459400868088532192978780219561042869402323833806058602562414988396432892216688227741797616647570073057160932354261216988282818246518107921229634572091109449171851504794766365879530932329211372624694058812567110314007682315904077565459529636834317001937378814569760342786724671256063293033192499882014339378300914130640058040208880393837153723975824712006839231501524256756714592484344960727018105932910528402774183584544911198732118890231856016906695610917684576667635614035358236610197492592666625115403320144621381439790544414030647867669027558747611791563814224225579399712636639194427250614290578474098977806753272284480214119514550467942508359555277706649283376953084073822362882118684263944705554786742201485137038247755612387256574944357516645122429985585978971028296804749259587572061073877484182312463649799225517988255577273954985017873977547939791617724696659718355960203133235383074582268605815783118169474266672582001602191992206039850339267941230062143011468724809595383875390611340884173414109539548549528380724757384675899762740006883240721234944532169716956301686141368170171595933813104467415752286197193921733401931968960141188104615541079505825522252642805344069512623512401071283992114050758490091405213698496424399285225797705534508775024452167531640448486257227337971504132493055675403179319150304452429520112669454452854286958970163324494225106443743500798444005670836138569369407461351676130299534408857279090574792973873252259155967009527033527517210543345589948423064980684108013829123246438526295618465451023999362389202511344863831130113806004013681857901179370125422833821219430506048333006355101220808031629013214091954095787125040678681427237895980032742231379843515959321484974503032495765616788630438000796238163119778327330763727973239299492064161090065571197507815825510410391131393997146197750909819677364861195882213585086629441485814995323638998136373776206101017835507653918325215097168215871497359747019915032418397288609193920552579946922954116439113363757639480468706875917470153232782408540605016039360308150413823361172594299577286436539919462575352193535916453790439337050543418156677330423016121794119748386092982647909090219668399159151151426457736605084669890255017353072878506935138393720330127876371690417166590425332156559400673934077870858964745262450188934443879474969328158848824410280048417677399357568191587534557837172322434482036549613028858643617922756616862779557152572090388813192233176576928123353946261151296032525862809539517634969878744672513881412643767484696520655564467011401682874942335228666925162223066840077033977888281282990678015870227622342661623998202401904245811847924641159489994718112795283595767268958205349216631471013757617121967659293077353427006352025546514030876086996305005701813220326260915144862185778096096949165531597089697379059104773498478004893874205737576954552199837706412112488257811168624589291839690268308138186921439088363070031891052801898007233307552219633192900648446877672496067687126526949204851787712870115652146654316851386906139259107073983859017001730257570631148306656262134797719511756911920609226287722478117224412892641529262402955790892266108714899027087060476842439173631459124597154180459282993528986550672185354527315311686501590021610998577918806248767356649258582648427751043042645410834369343805948101687240196053291405370869995959587016966926741582126563138125580672068346835319967848383865636686796999810252861400318258087000208113480186616191078202805974802794108737644371502569416727554598766027093616989402979667122336629642782152881000528283116498120342895846679240036074603354645291896913974560295697148221425689257277727285026937614980394641414404602164538383026423235281731851253310193960924596457353994190417540952140376425172210616398060574311879670549131790004184530686080784448861305465453774385272648223992384035829830116493413962250905530696929282230774871308142569268619789140585988006514198941980407359508452530230686044733725113943075147671579165500221311772376116206332221810451459697025064482038295955064636364792172386658603277341104797154703096466301954896913141443117894515532088510084406348821988936036953288269298975661076057919584594985705090911698536478027800610259373972091881843864571889876713362433548442078026748263805058807359608198233514898186184084945833874918977571037630466871675671413936314065043924647254366979060686609803559596628635629954267165859974444513690768508645950833620274201360383104918760582134405078066828284987523804992222497302056374938149772192177499484928795962555591220929977825166233026747140252308738546979477134592760613102715544143019830359511497798371006848783904969219256280180146221230738080770543268264415781940571842461110183564339892593458093805305777564971416173090957399732724636668539151266763342480315763644345223746070734945439220438969023961868730067071074724565863498753174518770044966815021934553407532463782169914290246429057988599976202819609984275462335830286904511891596316324256479043460180915465885231518300073547114995524281588743910825683949690854022164386333549661504382613295091082754785701980521384084616614558921412954620749737257159745893793137523588887548114479997367507717840735858639019764801303471766644323655485368754859858227174682272901629772298529025825683604112466938147004198771835365752676750265834822523650718143733069098917854418159585484832941765062377576730197926569557347075905507880964398179775569556119603052938908631457040475793555497792972967672560421194255820492789228166753781290758685366887158566444051610073318401714488322792664194908967750119981252913631163647801802265197547797279545243619868062596955850883719200970856408018318985668747219355968956412643324372299656437038658527889642533914992116171088617242658732862583924423432407969646921603982402104219582200646756290080801865229086818207814110039102233914602491528938287671916112601262555421334214664734519119196466538728321042013375767315283518591999970619024104239514664052961504546181382537892397560980324609211951456024141091229127555899572255924231618833464701520941776122287653127071699791022401130215759439702897209208297062595510568205871759595321856259244529472181070482398800743506535179027114881766290634477771714763944451576439623776583479742504525821746776735284780440772514819218371903113641651543787602965458830823154754682964444290236275882208705332828681013049211096433055664408296317045831303947995884874898054771041555809701615052204858134394656140673495815553025258435552826962226339038812638108386687084983422287958714203469450151368891955413313752189358948980444683619589634310370114325070259094435747557263443318003557278190303283484177640042109987284160801373353109157215102920167748160663453153344558881743319449566528034380399014057233683987427479189763018935185144774698554062757864014655160156511173070165250245529842454262818493992882519312579515785903997697168696873954501866823725959307343281225801934612052677256446210172622557062872383045877091217259006432816841408372111212137309831897644093851309820662004187182354081958658245740593663169381752482941705960622927509241435201963471696105601585895434132498235459279682005347529471264476645196930279253619274636156476422780391328671667150237920077496636203187138912496673521150685786879766697307774830384560648095144897542087394025505966450429767805016837431702246606272195102983121786136115378146621627796607318305427244198758807715924526891331963272050315181171537559239369712186664160270506209607175560296257121198557225884849471069481967379278176879134749156898608095914925696463172803434692334174553985018498180820086234397927369929546697826154954889842119964481453232582231876491400447103152268301837463763976058938571231529611562812338013018753657469285125172520955517991628740180411816874504670979744769135339322287873034064867505643457746993772851224082502656876242984049553546797073472874677995772530507640827600595238255314367298659212821639676203657137426267933702504831448367371669466039289121978383389835222767441360018498943324570550601966262612710019842520403012058022993168673166133255375014160499428854101007517786286979341922213217939046185646579592579571501348672373934145409097080994986548562764440419754549410963798946345772830368253373756403943591037928787394977864335903244240371498152204009074575201616944854388747166776288709500058025914745707976005487358626035915828725625484791827330443297039998203122170599743766357042601321423737033791856232472803981678401985307538480847683449730214649584936451109809081568192665610573229293048160727283152715004464460241201335493287105999735196996110904087615168939514580196656695836883310480924740955387452065688231402816536245309563864085746836991247394779197390713646464355863182511913741282502666764318488056730417778693851778672918098982271326162172434693893054889423938128313061654541418280867761546985676269891454006090154523842695700901914433292973184521830324892706105549413923957015050585922197955823276680683368224200275075167674015859094668332147192731125780551427843038876639518167851756031094283369985346976465680266598675691878681064771331363310748454658312053677212842164287438587417726985724090601621617894842351963401549103924558081991251748523328767168671170251158303111508461418238322142852526215311627802288877903216170004166852931804841389797423195909074758857543334404053253406049655272582834303344546524567271739530349589775723938374323675391586896750877172452351075340344848212834086203103683116393392970519039897813091823717915334748908300346344728975430361196542700618792204415788382051850399929022645345335079713781313726314524792402452402524967704023083514498293948116742930416126016338244815810416803495475185572420317972136129393514101737084793234302175023467995066283288778542188435650180548030140003522264673252015460305894453670132972122332906208786666267941511006276910173625818222380521265034696247071574552094704797320603553656258118291359012686105997831765183757424192766651593266598498472466252765028506849885652878635185942614460533865153573124519183983158490024053790713383836730070623562861587423626585718885202145422227003045967497708662859760281248483882762896306845251223103327943259601896318378882114824211507498279305580630707135907342767229810604779418399297452050015943383712816657844987851488743781275874391376171932932819646608609115774751170505357631883983311517895893587325405750096977302002785926090364285353833374182014840129229994133971223757649246431442195413311142365022726823955042119259817398095752929510310389319385963893659880324911185953834750555262389816119467735197502264722040103426472091411114281420394714739433893792838118384704924451085837313784219184930042777604052546269305963387694526493277805117440624020955027511368598701271793196625077370998866924087583218276834986696222583417059763314489828210680064970080614157383310431782424369736358610308172237463147667936266585046352090379139650382106664654974953454593567768933383252207138156962590814816873799566240526483880611260728647517020555226374086461648011697823788346733125987707934676647856737817767718520223293045879897582964561466734356927990115726914569047994484819760864233487583509752656804702597565041516925446670068567662930991892936438610855779821433795141137066926281160985099696636310780427614422343196538307971462729980398366774793023594389687908210009304006703467744602564230882683772002767052811198989132766303219758365483527917961695764620266428741494216669288517492297442757284665426916705225184012133025041671165519363573683683852465567705170482883992975116410392514242809693232641376802734605302621128747300181213375541255725654406151620022436626939044363085134206028517638960159196708022550578554248890769959738226794042260427458996929642484376413171236146126027950563563453291395992326642362902654403137148899487232781740120638188411477731644282244421123106773961431342454022774117980113085787402120296042054389312167310541354271180039417272941341626102326336194286208193517141021622515016367174774057830585241706035625410303954986844195887059846984467876493010128350644879591567130334682996511942293663037118765834010891323521595074312055137880323510824143071988417871470516960070687722817568014635940826089150040301336955316521441397167939966159743658474654384360745192232875553854289342412744112219529837007188901345838293159821432645608222233578639326276325395899621442489899694698974648322352545598189472145601136592130218577327532431000749007381741670208300881584793024260420306717820311990092197439752222080182423171869842588631211600840078965538861076141700558934691435689308204105064232315883269878759899182035599190637384337537464379523775423562149092692076705805784465064825563861386223319776046390285579388740134667011346997987745861403024258917353302956209916918601631327629509173143099366544567169182775379081234739536232915969791047752343946270933360164675599739431771973223766393120111381809391520045101504718850744974154388481479167569057052019393323916934408078503124278849661754844922956167424180716021578931499843088840042021430423091643372642577884361512876551462486628949281357345803962467286413950062211647588609281391851862566613270560101522613154000233651928267061095957709028990275163064512145359655094092918131747066211853990282573721423988762802289700134865968421179449632279289405092096443375118828739586768927437329039797006581334424277361804358162964362256214547872503875110297654913880159344159813946856449661848042881042198800113037122196719222419789964904817441201695033448556691913399718462949289096501159553472081108406375299298305545211893023080212569717682790941160876586043953858535394868930048048670009540040210294783745834001285777505366089322489586237806898282155054319947951351011050353760134983794559968145264915884015569704507774356845007383751545407364883216060189357711421482803807079783769764197958303779067432481065090233408143600436536043853897319381758904197052168111259633072720463037834225956435051912062271206100301730839447678562838610761721447506047290079549906282600867944881877258544111634205775056891216546533155695150462092736512966209516351432893094336230057635150588631438446350191058866198927165013218081506276420686308759190327289327921345732399396737191570340907867196548245150561714850097072701767867844366575310770307564253240857543277922547480034152404352879930200215158539535035165848221022406948246759970863379211304496215034912475444892994902311246050761504214182220006854380786763705793141777623858739211549821404213457401205424470354236445863687600826724374326243953485208004062186964210361600252858289087043539700000868407994643254702818437821294536900259914110305728248588691251347182474976655682815349544627887787878172266735219944301879705522781387748294733381902400281416800753745100381276295886135922383337232482853207598490986967317191821195360238156513358948606403612143352512452814932357428188498919621740178662123466813442559666469620388036496945059476860134282406137484989154407443593248494409308781549868643949704255173903169948540723281112878922266619529042168779837574865886586087010914118837784961395009121782780772714985286525780943461816175673311815495692355550162989750656129509378806835901724937287726980936747175161635162592543952148118213449359157578286978016465126487358793982117860135143720486732293916284282957010331253422628931013368699796627481678311683832473682270304245975474677722419016894780336303177584203228915477479251243155939160464803869582015531461714924578691142350719205725675324150800702654148120174347019517467489694193632084948444570497951848135381042608295270635255385533344388762069356195062939712835528592346334486133303140245626488360670683659506462353004168657124413777817319734595195150547955358617671265801985282881093826608299123672344742398789981942882984617982938952823759360390277177606343496991066550112819627390988465598655603969041220710555918779510974289536929143085567914769309255658987961013011632693957011707478401100103675294801173903083279414017028071849073504915151094133103353478593677599837161429640189190376472331887841050228305949810300971691041019888511801097309403604991149782018606531874002427388872797794559608719365750126873213183817759642148849404035633140742470371564527281537084474898629835319437138805175939036209489638786541693803512445237360814069535212616726730062565807718327291490487347731871896156390048878428084285911802977723866845682093159545776399672968282894140361452142634098180583971902117092320429098788590276455711256719299633260739636670874494242691642501976471668247949242627682831724462281174396714305179985121882285688828901632458972440512301457420249710344772699635565615946947702730503869180594420454655999231213514829972093781397760862242546719878914974941390932352098352681825266518427478978220650633632729947324377865394752762903327665142587033382712908613250459535644307561615101743425322636554045815136903045013535260951264870333287820992263420600588524295158979766603445108294368814845753770792309270701009409539889297412686735458288736926364096565436210171612478067915707050747893118235657310989241147874153065175849026973743216466320902809242016899337725465095847189523118019017286162168030205566339735042372844829722127514085242590816991899826542959998883686766165414657343063010936416962982206165709845994085650616174634036451047958086937109188537659141582793785376741297280754150475777791793609258526336532708722432951806367895058671842226177449093282030256049874364974039149362959575282533394109644264444257919481520668565663690587856977514208075546114188037757492227566476188332696131903493758752233081320433741827984271386053402515553606202255066738058268091902247319502630099734899528989976009006662811807823269958918809193961084943947996276371880077738604759224994947054651334530058998767686741463001652186996770950840586840527965830826006370120004734496138231312464507890353273259300364488799011747852984128832618251971408869036956835606052832884911798906767064968450137768850096690760504435969126060323680778229956661346692171879271659553171460612046204067463337102265625441380014811960595087908540479038681949942322753224642388589479426511152984614082353410803774457657608235817747809757691922278760303656417692748086191289809790528605141271863963189853238791947383307612709648791624955071493196592330392196808276119626698653141374805805168392255026695227064130056405299462727880669630709495434483462945987042632759668026533134004562607403182593015802195127704800528630810255991347592040464643240962568625717179945030763081497361126563035060185366018076698175300731630212577013219242367221692508394695144873116471411484117226183549257034306121876343142811095041383253292499828312730065001158031082320490370449931767087171880069271021583155664226162873635255868317490406288803821703083366006109730398005315454131664057383161757126304030572599262361955570598826748300441511483318929253984703263870911664658363637121746615643798136192041388744528209478631996186394807057085214756394752444408490133868412304634415449983899740909251872672247139819185754448307333256730664681650941254596250327932331414094012861003704076294260140118022936648820936973025883775451545120159747962579128631887506542445997287663545458715578684460858302101066010797290505110323309613268051773531263945749312687395319915343574429937265817388438858943496855383047043408158164761092138185191704208998416056357328816294554218153539889631776541504656207515011476162788011255061071659465640465256604195152316703505160369567845183453237930834474512605527085382316089940314959402508745421216973003823083647250372630740305813109318855038066469676942168836153362678448845256036493666083144215306419834698430075395867393244224379814611855033221478107465071053326426486885150122549273551515429475763027531860356580293387710518661706669637165354866327834058189300261859364603103166153964821937823656584654288570898780955887071622634125010656951652826278610033557268373517925905295548156802703821171507131843603634622549589788848528080907843713255529820499671346680920890023171363489614802893190948472834803027021286940705922457153749266958357370124537307907817520842900885015331387544962967865253551277679365331906389402392941438074541395476213276875620798246964056752368801512864627162001966416400883470732169811223647739782191290118036051198235115295940077156330344391023549838027180236285740595342781223845908843091336780067454543625682884502836776739460762013148272943038633924022707380601724781664574896464531969402027366646883918854808370475459996408065438862776252100296889517625856216567913405441120442767551369115094442870190462379212426603057269429548530528264531772408318481526965225531286308092437685684137712431940362524322306281155529625140906240538373670895043682295057944559047080971412510237744790998270487823216422291907171641784859456537612494070252736224599936448915845409581938938357592459144080301324959973451642461640735037209060099143841603647557037953350904825850574293366442042272127983990319384282926627990956648980131342164660213516178146029906601651231845940541661456436169005636132767527372665173806707355242500885179422223107948965268709141584899908654261257283565426413120494294920978489582652596629935615703166621770271664119501426516364316611723837652273072378990350209984586449945764300760232009896694875884095063399589533989311506447537523644926611261574452034533714144193521265216833489547878275060632110103155307189198841566184369641452869298037437098246209076848827964236768542676391187586336306752322019743850904722816774044491533869384542148835545865168292064713675678564003312825032066433190680120873827455686346829117846143798249727911162513714203445404575170306372183907180034818267876306388802174604956425524763848363525019289205891291811466901479425920692347665301073604851979435438177656362523304327140101255660379603486938309636230368029266322516742511486938546691397274756620941857763468264279216079264539910273308312096065756251986076311806568461050707581043978693829019732654191444834753770421902145183647164941620447789665759324326952077089527937899797457847484784186348569427460117883928793048749698009723917920342122367194158996787551018547293368485939080202711733725496804370430771774790723531680996571508749156907575702177300272758439106839070611438438903436565115156871547125224172355239622685889984002205123396623411035107488264493356003320525251796649904182789799694671362509653416860935793903491824997321814952397758980776147971881711454142620928854846416969892828686309983921802926565044108286146485006437166011087593777721351769528710359036776518220854180221624578898150457563812061156645739411666989860749849306106821125642643338903676669957059812141623731278621002280145105312013398374597463360037181611914362367508928696006779820139493035450974349524497749710942041919941417675685740598426038867016735577099313013043214295142988548159931979821538291098377880398198445378817491752228763427028748289040879528608599250091554814786101042865746301905796016503711855443087405953692044062900834326898056504825139344110661185176086351642268618391410598748502113506750087193783667585373582431945071554395809159786480778531518169268133992308798119618127407031286117733019786606688776543218253711537054411031664188006450501470529548618192173725088743644239791356250244141726484329298249849631275369122905917513244428892360297419868380815211110826512138198050421261547984985751106182809061492876907431045527553359684116200206051047863594209695641056584572911840159641295828384460397677848038195563709839167541210701677217140922348617966868118430439159988192667378054297740974941587326531133140703944145809229632462465019451238316653871126466025589792233911641422737998072977523955931193780760215128721924624959738633520121504120010216177669166172577979897786591872750796124168687850251052661283102896506334709026932901577873236111543533296866891657139235353721183652536112203972848158262431654728926706592044471577269837160492702985265149614018931689802772479641047441379340164792598760988710487203575626041882702554768065664656470184728321482130707387173696873275616349291666381124960117872026698191410680362039490995755062443682514876955934317752526747245320213750588411560246697917831301682349798768694288281656175356797344467228337492676732658637856875417588324251375061557978732810833467587135351847956181969763277329025274592101920309872057779176743748451990380835757584061769948685567969567680075939142591557779653695843792959954209097304986467469165329464547385722224345674808789811636513902662696573993796925039540637505311616151836858582112031468605081482882500243862497463967477320354694517768512353543528303423064010852782818551004762233098214343446708549125129688505675808463557703577583294693110298341338304752233829189361389000507011766277720134933135630163313095195248334842804028842631101094509967188218549596042912982448767944395230933747865233908306196393957572397064520379559336292993179994789193149851550220537348717882571680863897294176284081749475513167032262443305794201106089360808467830424153619962813189724600031040160719598181456857811125930076575100441720350059169915513524301955288511049286156765851834793751350790726808591427331333377521305306802467228811860207809516003719380529803354604165563998844316505014345150039472006638776541043505972014489136884625078097970164827548054229703698682544062301592743192239885512340875860363836574318593533186489443478354869176936899871464942340870592748474226081253739067613271331907785592446584137614646962194949598234086389502184786480143731209076500331716244242120222875897550006633732476433874194138412782982282418993927975671450665380419939427656206888356069942310200895165907076621579769040803870473681716932131278752422458047142205966576442925134856776594968732562263305946438449683996866714228495977633998801567397795023426376038153156795686017762100159019797534842660626752728700719869885010949841735228146111013479515284068449549292694165779526133369111704328654076106986310811925370341336066257080393856217450270099162332958451175059868891432196580502021558136320355897147150575814974871253832921944626185011609749956415366387096523860959994428675382175906731422558479628090091957940030336742290364415707138235461057503642915418535158842960066420817816148500205013781094662740376732045704809639662515841134609833209102556624853308672231602972914043618144512198255943835136102820712432190077376160226629305028416105267544986388992214689533151681049156760623448958541491079215994323627648869697508954403504849802219798784331698893885403974710643738560339385499104294971528437468813453520560532038594330019173144739120730895563871183035680480198765024863812313850171630864687203897897870035173990836904199737435424202539465143696250763982015773190272877843540826890372321617586248997928194171501307815265075416639471784178204382177815761289156328830471543625859262199473467640413870175274149382597284507106520024575945284214881860279689674556293582401764115829863871412525999086283902202159999652312720111668098991616303856418678340986619744333829241055455911133033986906553335156862446822650238034937351943613766095205235450414627947192142840125911634701651244494848350511439116100812174975655680198044358516236971292501576682613914397522532001511482392896197990938145183470045345969903585411944292096234942495057281798516372641934975072856319084979748806602098165739847768648843500797932516706434326122093446910829924646561249786078600656395869276516284708766395075172157896883445261354414832859073065724547643725611327016544493706787686484856222026930157455212271105057091622508083977606764116322520006934867446547883549744871112469467418921032576311030451249787810965772356327796551627104830743667608344825545108810524946180095266018198832574988459859272374019832903245595626285715976774255830681178271820875336906744541386333921385252291490645626013244062675089867289483559713628832897042173748396999457038314474573432153863793423985900409398288573814765754184845285522301758972113990459275930068293000563482384533745995538975360587353107871983581124000655175093828230482263557891549293758420135390646877262700509771233399943315119613596016731257567963229106212523004078175277897194777027652874709594689543261803800945089575834546644067792966891994966686138573616362135273109598393777794692268649049022380226740199250494674157716398154423199686467159122776181755860103448793791914072403793380846605831968605696279659208547843399900944571174797941438035607313420011952547731679781962815674514853540842988790608888746589808011920499435811029126432136477094196037993039834639445051229573046299947238411786421212858355049696384103457787047614422847177419929061035163586072743832913957447431208427249147770387831203962367595811583418010775007754803160074027124154545032204713207054734593115310581370819686814815710623593036852764929259451358201283484221503872920380556298333869218035839554881250922357252401339600438317493052739986574903743539592050467859720667997645721460038715029001335975020978304945111067479548219224858355510835142876079433726178280545260788806551167596181698498383574367716077074283899332350271009029237723646647089328559845276181490112612449233038384961113045044762253325733262288180357513933432858517113730542411199116453147068612902871572580991188160223209123819198946094364893677473896335065458277853361586561375718963899145432916253508460956669666414312692447022241840634327569959020482167947743337766101487443456416478442232410471494726916794978515528779302273311996736755315609837221061194047923888787464201702772004647660169907679933868221732025079242958720288424420032854773749582199111286883072585022099732963016062620748363005260140178841878656401768380793656152372194264012184443070279532754368421277877224166779862292668744642313514103586939995735786439908759084843070576823129767277285031663785352247704820537698872341887788116373979205853028559750302447193373723553141705899898377928592499364911054374213429444349664187001737139939273566608823598181285967812302844138285578128615797914321406047840606915916771403570792050439752472634295549043711134461408416507744099569818763951020046762969560291344990273026436716265380458364733214378079104472158896064335231675675049995637622092148070786348731431835505690866958559343916474904136684267738495159527966105131618011065394234504808709490531511713108987949130918351310600535022657016867716189839944010655332779660333755030418147492224801335947830433704765869961844882728477376010539006693652720425086928423995149307507027737791300877840018870426917444954352701220255992292150561809662660329168045183806943422678424361657647217029221245122601895369363770067131364416502002687896545362616152756295495634813581072540236714450525479191964645154996116240525149045385165879266260380733956299855655782997884210695558745336362305354140760547954196399128636654335232677992040523104826959024677028448978050784337274873837797762692950954998840598772773209540815077402224137344599408764315632449277638600472606036500191064022594774078479115117872945980764954194553714317025783274165309517341750874409700807056341062744513169284135778862455301311454048997162245439511381089665743618190196826867257825772062584315865491448549777636971748273905798064828295422479738878274700931228061267364777135072985596758761947618098630814691805568086937717474444025116076202948509587646630496387469945843427596329799271254829890484796211491370828782251182062473411987196796887888637421500905091521809997223544950303720869315205415658541092321579851287043253422023621243443528784040722256602852164134737631047223548858671538225995406002537532754534095386222365897096359104548356322791932722142222436849867258368245144179667709767519090708011711660987958469548265529972023905485306689669623320470443422541757992752129266908007662805005458242771262613104029263490624547868239655463269220570918059688140807971641880897711427058260810856274337017455765174194898549807360069097537943663366072254617337710945447927798685086343140026066172927245429418175180502409132981854843745253193423316098294821244546655566653178797942828282597202606412723801990320468365613872731423314113722088231173868145855413016683767336614444017202536998736683426858417807421612759879880690526389958084734106470525526302935486637578729268010082197422025543927370441339599959666260775780620258756579226395917508742732693268894634143199563068205917502362146333397574178598490387751763480860973309085241654724708263812878032282756216804392177410040534083112079650376944121755772783567775070287973058655249681991949131885070715065732388588623507503159945108466791757890272918618525226062902114435069255999703934676798908695502423708326941616524413494190474553685203048646803777283811146509813147047982090769288619617354381740009369880481546803956346331227005833624736276686329512597331153042909730221258507014733509102158361612702629050902559552943955726953877633901910605247640741867554723563762851221058228483770281932743816223520570489897364426898890642103067522135898885524986127231089808875909535551604435257260288516301977720511495284309550906087669824719090734208558386851167081857628786413965836041140914192051008217714173030615101251207212623733032064692200134096999182221625837289215835154908168836019986193069530328990536245085159590339053844120217585646372873066749359553389009793804301629928341617436303046186548646983465744417514025179549351356243425051467804039294805083666289770789556223221286922594073181342610580937090666110164500360917223878019574783327356922192630660277923562676072023835903751175207030634859177607267140141985151274355430416908117024655318882930603094099047854273996434253084984187761022812890822943109703650675609759997861415032540039422960279376936261984912123026388206795018793799223458962422462509755367981449561182815520163788045565844797545776820449303077000029098244271301434123755714013287905845532747603067811165997248113209645034222886690767950921517590880788035834816914149905773576861166065291866498873779901434987088769483332081845861352343346316607703278342243286371865095579572744334770409627199924407209947134802495989640970772428941398035721020740255678700470514352718937761085923915681093976507354364473195985226362097634994099460463903157331226926874521997801859068199045732283706945310961009952961311170246447303764415885149456181873996010527560349627057617379583966069509183409823698115776964395436397223903526994369958077860414940710286217784060393799318034988790814436694780281451363967600516051051283788140296618649612943147295498786735888165871115090943761174803793985564829464597752103369172776593320995453791728633821834514484594658451707813608417577396693805084677575001595511417798662753279570015840107179923868332724873774122918419677352146383249002607052020025745459299928434763811401607883492435841192329335283738148065293417076163469931744975962202332228773662969454380657458666437056984668179690581322098757644334146460891683157834518108753265274086273335228550260337837084579950658761982582862993095265460102785190021321326261914930223981251392632777785099411738621122019692845199533710288749057040076758832321266213393634268878425334310705693366172833293430397081473783912022590960425480544075625456762954871781330771555292616350270746832802036901097732695830283202765430720101891067430759942877800830670480523956361252702266510963831204814327633206993011356313816540971011582711902758004084582731216235962301236113927705788813564628539225862527023077849460228831073088246177277448089642520784594603744574004601965158073439800119592901389864343669022335073759762714894502449509174209569715131618639485466193165929495839250486169603935639500105866072345816149478080656716210711240216513241969510154451215419946297195916979351759362953678084347844321166833881365688560337875970202528343415119865235296436967789319320747837932467273444546860311636359743129075408698102868272876334492785345636339455480644461693863265972011348361767324160180524844693641188457940441030088948591066890398233133272350879028888746563925469218816024878813719057069656533146322855261235941115537896645026227640726682350438055959062170629993785205980474472286810721941952897705278617168347967092671705795222577282278537276569316557313254597812589240915392545509746486265511157235098187794970312493953686770044211768818142393330846303690634375817481656554496716153732723805226081891186897308685541475902285185006631428152942577197919744682291014441786184633002915153767106230855385642209500237827565699378978647117014493762126830698944100325681036086839371858054013158804797445495978258628072833307059197640828509462422925705757730936919689999764235807341480404689919904459100999663472314273392511576950701836968791286499057359472668154486279468077063282846629231493137214905413250336543933135438354489048707542478575119947190463577690309954855592198058442848618685830640240384408802979900551039511199128853326343701428549144495526183468417366057279119963494645233480657500022113447366357815683710356591682656578708379540156429438172876978474967998899406277066142465946830660750995874630468186595374779635801840589392395997434818706910496679204569428735650263554256333134236906396290840449713479412185881029343522004134884590166612886187970112556597553642366512917001185083734198685007055413826944897716415352212275205674412026959021440564935051340536988728260747903992385047296801119321483500444294954475217715840975154251876842582750424504568755996465338417439627795036028166621809425624723955700351706287390713196225495015871249882563275040098924225673456070477725546348315279082914633491728737542541419142814348913503594277484538689333619181104891075180965286024250487202452915279986050107467845718024367055555413390873752591901077846766782366235983748424343756479637061016668568451779281296815248162559004005130363197216415591924476568222378205999991416559061345262433054841690857161233335511918293352899498307800419571623137279368373857874847582924522044325252572079577344938692010429447778366264318020909579504640212434800871316668045459827024908113302350560168929632468239424826920103090882541788138199423833134603690338291140513347369182336456277138350153836006194636242967991015328708451203880987180928982212891446356338936546961240459489265776729610081310412187787935900509815913106412494638606211430257793271048403191482254328170338916317959870018065898921873089175679181925334983916832091440397018182145952062154674415464620055283787355519257162044172597825929623733022653343702968736851831819423423694225343914810750973059780583502062744871206512805131843269464679660614290564193717143119751565613924085612791899473773673212928041736307942091371261071454280527795313254246906466771411282670121220085011431173556905862663165856896741507937249112910917001733204731330443837945837567546367528375570752821114894370361345168394643732962578492533835977749390308644496227164799397364339692841464887124564883442941228632730481058985139300072934697892576603254382582135150468129084841519283356035310461754228548934516725126011667210342601212542389341016864627784170527928432081338229461376228898868976256965054034033923305250506209428863693306957073462837535927452405442825198189392198579340591488306858470379644801130092610595181709185872042540544119245400312153315386788199096802206051166982070667691582737189449936296433124608879380316978666730524320185242010583963686487857055818297071540883014435737981113125143759163597719664634529722745293166385285872557679002607203929751540100126187043636317886748613521822490415465980677924040749870551775688438094230581875235180716530969584138479302996478246515462324612257084850942542362722924998251350129950158372081182835370095266373303340220814531416752061168243133502102248372441598229777507846037012184065220437202412090587852587446565567083755137720133163907985817129514581513067090333894519872304784436250493238348003351299159889525031274561612274192711346101182470221584818115613073946672080798246294048028874012403640487034911289704630097700359557118801918414801350326783745748359755278156139506267197639952871158118147937666239993035201906627518711519338723833017598556830154339524575235391865702201656738993341235972623677930551560675293233706248452002987795679214568831152246296275088126430632905757985903187231506837038100821238320800543784900050826616609340634710680884925754980930556287406383751686109159556007991312268207798780322256399736052035185096261614282710463076084813604801064801808683173338696497601425772609349644759281636885920661200548347766269928183894314056000623999500790325087335881857837965484388440126531606754425176594229985330104562256312055323972683774544156566748905157246815935920948711918785692819063354077490419840203431041284923931254540758969752482470580257163207250670009490643744303642987322720063274414077959802190197112333211281330041734527098263863244062201019531920563812024909693683131272842826862977893248810991905508444536923117160710354734637169383527697746193573903908943833038269914687093284093305893278972770691728111066431062861759737714584927577123392174222287831402489213611923045159806306200682479395794854381870519521309899866765374500991184861551921721375089091096244137299347067822906987691113125115403449082335374870939125166163902345402123658470283413986954811743533051001137829941558369223657719834700853268380594466388651519391501234238438356134928035489671918684915762626221065825497028284119147504317569244039800890467205590222905261304859756281882493235045262632466626514767412247811555197055224050992259299018355853686073983480751483539272418720505643537708124386930593992223760136440366070950846851460371083169661117960944213791183007271817463963506914971197877337226804315800544924793268560465474608869685237393435856228972193914827736591753346395228415528008612235527330020999880749810773756246916131545478273142470032220878082310369543999766507275711593892667569339129801350289633905143987137596887842344522906553711774374683773771055520046273835458843415849698899188726550891514309374141346665964246186030917685739610906670318840861937368450467255254117287775642986896460334960301108707513807195131137451517798569309552432473958926671861205267796744397061230125102041367985707398035129030182314113588986132345405899201796120269437028287869602282219856999793285425623753179013088033074237735098257812158721201260497621074150792711825981937936158698109192298500413132643281903058541189821754206114982517391114139916373053527029054206157351841989317477180028641314267435945775408920208929879340557019871492208993208630844217682118629730223694519322109900864060097039065321554641256702181967390110394135070550278376811881283211578698092442906162177402270396278077972123037796198196689011489278541668795407597180673258379243016751197212359080854163789962039251500767614056662970607658029995469554864780551298730466715945070719876338405385163438102759196561420515390157488173846499042210874977158099798283084420986547022220669311553199232532827769492507496215922183897974868273387828805025857257280736069521916701314922737824382222339724206587539909444358578316443803832905675006433032711245751870909608407667473240811033160180068659637266010784568408346082482374833450874690636135546788684040783261592854713230860284968097220229844283085691402048571545378471845177635990083272148483514865944259431406552292389283153807424023732033087889944675333549438052386679926787086529814761703739806842343691759712684699834948200282021877046169429223037101266161737421295072500288450844366441801273435062122677108100215165118249735547264043282185519841757753249481486432616402100863077970142773429425875720755425598531742938240726592489939881252097732384222091360026160958538078629532504574264799152328615772459121282675821666073102889210976270614344729500322839018384951409855899412956289678817594780284131009630688972949674843817696553263737408861241943581530745479918930570410434632805775511011313840623325990049497806328549414675274603916929063759781784832864722308491009874316061693223550145611125088870934352168685542010690425392788668002595102524241726333541875824586409450550473619583883247451870601426316516163695325339894280824328999822997177798478810129608142190083993107238325347455467968314655490735491967419502421528899513227064812569886350581656370721218679195983935720773919863677834807827947431428934364362043846166607401271312870426169974666256774176128701058692707131777282640761518819723024304134682453964469259923695376738165138004908311328398161804053326667401846634919509481686850959287331468544730735972662427692709237373694390411964808358900752318868645991812055685360873190265423333615074807913886959305365225848743270802681808355815499341184451507214504143347207806281109187241039457842119880174847137519711908955276347882658142385411671863897145430893426322288061706253842872560658225777122215993261437357389344980032132220373244716746345173107921426072426470483451224761934195849994967409654322138050497392960859234285450323457010691040232005826132478919049626108362356420604511060922015745819184738223791985475959781136569931886625056277383499685908485202745313948741595020119623295298463020692642977723468101232084218856240559408933153758318080637172206935247711113138182325392008627432447907540394137843663783753363489935659827858581606547581413691485456498753450531994420853816454247194450007010458865687567326325391870885699009397634446195930435562079698818139543169431661535814774524594098270015026423619655457093683136000294600677038208177779661629482841580521165084838230541135853066540792113903806720130371738896297598603590927315362636511018674352353881605605242721384901874335444216884578802875906131210397542718467920223964357237329905809126958243327625282279100891575491500792348099489563253815282315139883983372095699890660168934489927773697501045686081906547089890049074768443401488200768157684543673570877830063532320825784402169096718751164106866277552903496425725401280117790559342082027918853222009120356685433388529865593523234352288628163565169893745149767290577396600300344481222125670222528128456639720957506591749054845440805157253454452298291325037388619521538926625851767300668750105169483603447823964295499124686747055190253516720244740749655385263097217523808523275941813958532521686492258777651554022446836189770319069895591805353657436406799258248176893938150714215276935781070383905826831931011789359408952319905110934623362475152474668414876276831521725670649501407848300435129942764332980838992346430383210166398018275966810023146086921757773889800540961379204627989287172871258020315186447666365972405407606213549677067070434823911661835063539026821001622163495388580315140410673969185151364535703489501077354991873195453575892547126910186794090262628835961647282106031055291781609654974298496420184269074291056710746210953771673596176694246100405613579725197636060934787721231690503868952955795574085286029630354398306829931138071576210067082735621747494403966759801852559352027887892182955811344936768169900840856210998818669558330731932665329277872866088519863471922746120894474414764688741040632165955627478571947347129761931334744508220994968540802787251118823936008748860154915511338876084182091477414411780474171192552164550224489053331567878408069811685453484823363115611683769274734026017221964437899671077948414278052918321851245786437697543514319840867190584053249581143857919427418210382845609743568251217235866105768462040372543552910074368357317444669748886470830867727347852801818823635312973185629448763541716944228437728770590634785163153942335990135566325783604354674931506361857238104153649768800414430610293721849598003665134523423093752024985407566190977291952195271369933181359634931983924005152014143538919315623208157761634056277679771887812263499109150012715766138819406305133279489743380585619436802150769880467102021158076617596892384209918504386342953901693384057279547102844681767378512303013970911355277331072940109246944706161383795871217136747929382171405419713085024089008623196764500008847342401224765411013500147711736667313175283542556568966854927933354102120228522297632085774482241255404033621464364628772945382601901519508707209306876483478516677206546323254287184017833293925332477504586450757033241855021383535035160907240673429619417218855066377211749325996092076136051713480736770149566353180052368753761530853523114046417417353316023471459878563538124020191255226793268058243385246656348908412118894422020169050763731596434763981246334373129912108837193496663628926693554499838875697581194433419365439242640222563250834017502473911054893711629528392367006703853498381350219871405972354215934705648296877163133229905029020066313360207450588009809275974370359563394254503522556734089115593954564337943052100574789536444233758571688358968225795460765343216565595087698898938755483150609663170813937839132417833519394240995634085726080695086747313471747715665342085179082480108751619992156604993147254795404636177301454906554829351294568087222051032433555243795769920215078289725616086514226172108532215118686534005917028574035522918456501141597367935260957689810506556464305905075370412532647477520691849148326103503802016596985457869566158018815302371392650554595428928642840136121591540055163399894960719470886464956981562354016111677046983827501714187293509640775632552490893255840631259756846224636545904717928325609965728825855462861857219121855372300465467680295856917722820011345141539530661743028831413848916970455664121030479561380082007672090563878499086808875686434916751571178743759196364971646859557405886731262038954131799980226914252167618635919273472926740893750571691668549971864239904312221167328656081214493616015451491060135469034580950862492235877533851921902726000031353888056452484140056715100545022805912331351402691066568779590853523052968422924728068818774656395423398021123385545330966607043344128876313744037681954224435953397938325900013141293684481657771579622385093095510050371999522861975616651241910935480586898350729220718542712304493693061939630567644303670704431831588374105111951903787429978316364369854617620384952350491697587451592003644721748507113350055358664837253141071883287097511144354754672445526062304381939011825772582633950140770961946061143568471132695479771089442240816548007925375681940490213270405335875440716613651778182437881689073761716754662069406223531217165030224239023558076411678927958361374500584787420284934342455928913308404826977651164998563636859023229421310576796114955861652715858318282487542806338692737582400081040078603086727460393464325989400689795103563574950552925517558583494179233042348382692493230666698755838226706216898395339152919311720402075463854955705208221283152323051295450213050113969548995128131287256077172341169384209349392593922704937948850925207290768067557448840651293908271713130987954307817100115390231639496001796626720737649430710175692985559823650245418873199915082417492429867533318198031655157181800350600919738659964870682968446715436840855470869982685213432498118209025322747346107053536110218237746854023065107730855553372693241680871511813594366035037105791255823004568779563055703296395329342077608491353655069386490426363748621872197078218973730022011103773541062486237625831568921603510378662053582472667626190572437575491620664821949177544819378328493239602932427797340677510231866737338068837388204091998399914122564583149115096037600075662444507755501194199296681339203577367163879451599251176682867485473042927076178381526494601783121934637946974229793474649843205153449332372287997008872819388931356221752256892278682464241661060229624026787767487183427904547816021758580031391353268566219803629988081258464526801607173590320282309919774330701496288147527879475595509468565180721829859738118643966797649789768709614037163398771004256231980435973341155576842556490597059650793352938249450046397334653709474955426921635796446566143211191907177638531574935945241073108890367855145384102027172556487935999985858708187015062180395746396172201459035706614872595874646102527463604083217395908922506153140434175627051658538465244415375404591149937924979425933221182314920621577073074605096611787782229555403725463261133787091475931475008879131534807315474659990703032658545061792389122433303441034659878116555238584096105964797332788042671431244842386934449070290092159062221289474170033017715679242412251863219128642707456519579826529070236208364567814380009242507388328786377914028877083594844676336725762615458620258391733408641508078538549514839831294256990799529787962052199315675240386471255630777832976549804650960244138469390175196382567141213345121899507530481100319899835802484198968889824890174674641516903601311188102167050161357424952048620911216611203133176305228766645865719514331460414242839282795133876499974101825249460715272920682591689855039792895167482783567109439989828648663141946946697280998371523158782533564668017513713257612032514845827550015482278313661665381949412867831944262707582519045164242150026025854345089111381786432407687399543565025535486303310747223910385356164469111145852524917345048563878382680458391630947919785437947209391118335371248492715784028107144389374864714775025652106294310924780463629764719188616349019846989232226037900846808562691883007953606009917497828161300699594042291464314523781498592522394454140198356723048709823792707388838410120088455358667910454803443821999075399934993290534440242627485154334615614856256752423616083550932838732963190492982685017884648579611250046108644084697317732938089983157578382811865677196330818612379647594237335647982420974864768666022546529809990478973574960747852498007731439087735181545843636779770353016285877991964632765523278086224203828615889292602522697539990793330183536822516766571164096955366405647578104977616258972628492378521902150352826475862218163008247836640393244636685400364938374226767178001573171713858766077456259807524049097030291320098204707518540215154936431571760711271073687974351345641160545374725441205340461227846643061787581352295464405441520648533112736706245378513481759406013373244299755386038461023630547043644613560317279226381651124569396024527273121377795760294983717820177280556460735102118862333320838727839297447133000332640020361002483664985593510194680480127331910619636032548855604827834601197417173810355199075092584017639967560125276511902113123550712092529308134611744636983248811740381777212046351462266812020848355694789537548082921914385530972839050585602297419694863239825827055174493277396631656228100374770895238635941475825930501355282957888982642785572561593436065184700876546430676171578595830334855692710878984485427308003338554578263178327581023809934250248103180452840211376048530540415051547636957596709369566603699516290804415436726934920363137621979028421939384131610051309656406853117262889881652980631527725742923268986069092749458613035796009773643743819750918647241515579905523116742418147659643376899114833213789771178644574140263871437327088895085352715982697732498752152041354434163937459672350206520417787154612661467018823751847928263813818130724213844875079127682587738561267628456343157275275806891825892634683420326060198544689029224035351859383330371632298175675737160091605296697784434493856718288618995930763670863973402174022709213616922612515591464845467656565113969115131305520859886955107516943576672367044831544914825632476794765219249799352458373804472338452886355933012117348181676894327267717082790026304609996991973252065868035016202642248694262097895167939321576739130409903231493059239496937771151026517807244417729687319489541582984090265166514069899051093020668488346445927134121562608631525322836037480104026025172550402535624961166525548022184321893594190617531598781498148624726565617372340800848692796080919738387093808189790479846716990437161258554860756340850959110255495169673313800077781714401850322735863187283732052950158415365169947924999477571758166622422950217735134232672170323107718738262574956707432392267742571110781975513051182602572860161678245991713935689658683979880541697329275455575365375579932694108639203160290426899698620980975821058524335307282636103270328552826265443605015298579866857325661665921684128585601955200806044852077696031357567528382434968362206065686686679519395638021285771297298651093539494714878915696060738065165388054600966689517690537204589115753649221168887257249446373593895457594599127652251838059489915872132351014584592337373759780289099428338781090147657857788832310849258064968918863706946730448597439625871283404515746856081854282269509649775145503211854165278673394486001579049430289108321389468839678302743247922109950863459329325093148144781570413598023216395517191780374306743609835453038910591947539331542233294336882803582823909012252700218246294315501283497018016299409758752421512606835207504696293580644237820348680519804452617862549626894634047601054853553143204104575500154772324755948802931436889406154438090179951628881542503248842433754499173960634870048223484571797567985274660206355697928587671135992562609513001317470568394718005908988256145470462978627846320152883011102633230069538457022750124223378081737151733453928733981059495621526376744581909096496477894411872205808968245343192665036969479658886481152619452507215880407784923806323829170843637054766938002551520022174692494042163709036324336769397171742048865223089359882550257080355276697396674014079667865308006409730354148481630779686954480160341870073211092608451685435439988670989763371687515532741102791690672215435645982186943262305006845249767041080682758438891154414199211430773163199966820788219411562718511933281364004476879297575526557823026446764666068952355567110498213368328979037986594863187477691426307322392709532837010306682508553880779575304547003320612858039447125828445711900732722287826052373058013196079715344927118252351176524814755855662143997595063911119288148292378278753550042071075948357927989828024141733716377148497933385849365621756535116448017206274358402326054420096774867017431639633558220080433993859553505380497370175769735897835450273100641984703991011232590572725093258713906940926352140182732372394177527362956535784926827353450742774930691640452961914227384778109217135730225377583306568472012998748392896660398899897498785367291680354064092376380381203042233231365728212518912991427599164249928426865455143102398103154428323542983067856770212229370975946482644154529816066647667360693925456987452802549088415728106894013778430528462129864504986893454359618713466562570389757772425144409869295435159299133595020981874363788313126105851708136545147483960746910529246387587053135899208241886327486547167593694717785396412473992482415732299614302882766879839482922696526572759329248030795918392349131710542616891465111316952550997670287397644189773466933491698204507316243275647974217896166795688909556532174403150206723536813429376549047109560712457308528616116586459508296799337045643151156899352324201969167337865285365203998510489045641255854913595932888733567569584884148598631730398170436341523659989527404497372258730730649662113904533432470929802288789843458244102572764425365165437277518438744526114845021883817189660351978939268139775030320792355560507912120623191368421529013102376598237119887580777915729769787492638717058123420325117220883131418986020108992425044154296305467692402569468012840156282706717910177959776640795304243026225902257196268159790371104694799207559320556050610485948633591278712749000189553948963331638514119438301781824019318869345592047649288092822996159938108713635163104650730800846012783151374322754286689014399679469389690493710131882344029869024987938004002260580549397880501828079155438540211261304111023449550690816648831937165658774535473994748246820238049542650651212521510669208544730955019266812563134964736788844994300058061782458814140323008640338164082127760977789680194030896923995745612941812680438837326230517070256068719765199461178156524913107511460140653897066871109358194879506069516900045591745637934242793539640510721036793944011857179842985157667926872204731877534403908861650841545575304983184456231163111395952143232815758882109481789962612357311484560822154583404688004920967272630310053561914074148767535157018454455633676072606734702976496388540669959770982972575822681229878080440658857540669877440481421123021859059184047207696912076648573075867933116585417378069862095796617149448268316184021397726306730311871570720721670292250695293536033577003342963094845702852815255857609600323105633207227365711516843549769784882276596573912867261456137182528999091239148229163309456053835901213486611372220106481299999991655642322095990648893390705254027315320893494717956968106547124138476210675857029125193520374181604253292086021286272716690976860475046682773923588680361784767916047221120328149179169815430781416771787531663502073510796371465056847992078155709024634985700166991902176130353367660703752559470367826624588157602275799358478832823987520692464451824033617204313677080331082724162319047540156008830125699805972680586327857981320606230462350529980682386548984366910931833152935974669078698387570917732265689818859999772031452433644203071120508967901150506624385694644753382202635897662150978296883478876784850402343439170339471982256797189712518071898292919235014833385372415803595479877049547238250269766128805003992515704386658110493982118229158607295244839994695363795424430149957103405949330273412685143211387438034190458403830597963239113295126678107186385604740203828243924932447700918211336782964423276818044231546426212346027618658981046114755739657824464604486480756842676280225516919873208221235838042790398268021503370534877666167697810688421140225395265392573207687542357523977326609494630361601636793549631016774595157493853113192231471810743321902682319715238376315536610753794625149681484882684726436088747120989388056829341126391989357747417216722741860206338899574908268661359960283632644674224218707739337975226385983569451829375528702220903144675765690366268634519067436030936271071172823947896460733800803882184106101743594609853663164925320659478974133543946114062375769569766370703057260408898546822690947437325351833942572692504159335318377727337810315344313598915544207275925591893659238299554644708154992865255147643970888899999390758993865915612174739984554517159018026347731537174827006610495777641612422708109235998389876534875684901291365737536296725307269364328949927104600637634194399370046157484612497719880020234601292386405088645657661589008066090225051845931344505252758087558175200946983555767384818737758611025987353870899752201444746684784715118086540334404898089417872878562967918299466764378154321246196361932125707896319545600851786065388930249887641117835456404596552370962485080028820025123126186510214457838922983599341023959708434488658472888452951839771750424019682424980841460065992581241744799640812559811371335584206796820059389419517031171940064212590461870509868796246150778432290596271418320174934395963401134741092484095998886188996169979101181861031760420183516444370397665806080315578112969656289744934671745376716451348973447624876374455004323233678428178705535174560656781192592256545815141981215290793022546797725765957751273283623907703891978523234816419122895829247392486700754020802925784522058765326604235481073214299079741652631221156529570212053241606999514873440419717134648120903629594928714799495094020041220689709827018217687288459422415340831004081941768499785733288212908750764385627743238458289184275179929114631650628475046512274567342423334474703713040867623871844656629694395239091695557917706986573810791970430175738541658083712674294633221444572635952897939764456919851107961812214544306078215175239745794522646920670175893060863586954335480764649202541564546510541490810418569759203913940698542409623263162365117831539919828562879474258865126777168800096714700642011297243610469064356913931828960977279581586030988654343977389942824821155723235176216685913896933764375686073840013177751129653012971087732871647238487552550813778965213802662964770482747325779220202851155772254337395310946019508250543919791572222427158789237884739035020343448896477097879773889025619287200514959420951414876194779581536367853151738564400461979608172727530673310064451267750434580015821086850085115939067795750255457796470953020164345665192863040714890156995065686414706993172775743846021297354382907830571347727757849674011978827615625224434467939437781651692172922084812313157552938992070675452877369260721206336711093474456345029305528902727221155021168753877974910287810762708930589704873540968497658813588851635109856756196654024054825458078576315502657745005075982122467102114341678786101244055538758345201903658733106359091983516279516543697456539554005555583229277134196624302527493485489463474826406985354800794455205390761415864074887707557064453071737041202776243799590038825662379855725171379666160119519276321394117058928766380277755114594187801292291759869780623067041417183661687474729005641271223091719613807368110062182652795214254279267753903240917072838415991080335009556640495749660129784357139898885410397483142367976400574175941231949306887561714801493279703621038255981297275238377754173921513103607302242754770020553654492813643929155624423737543581384577861517200742202533132798018094907054679500467991469139687488497995165613962916772117638297103822660218296520462591151390440743622307678396702746799104944351430874869568802839279067334437004459466926690479748492149127185737781759746191375708040059271349748464307661693033370665473647026429708378413892380864787738439717155809040715604500742657203723255239260103408850585869128197447064054601727108862800763403215800893323098733735840411299731382730207059576982858301468059373254770627154810184363416480248662735342734263943327261169791717318010482669009811614231580437441886668861269698600922557053092313722219809398935193033340836647158126858165872733196752906936106856613276167298602648801435746100932457015257344168650248830733883508571901169914517480812645669789911662701941723643439163996510909378574007111690456880424039401781694262486910396132572967222421541061108206636438572827904188491477072856880854709565485246050606670133349607470979643943965525095926559473287051734839051912658695058859334897766327771803443989973780986795261447639849296443287146443747772664259163871524482282258093452800190476313165779743172017022335580093325972055671876831893259093960037576837278714681754525233309895782695430533943271457573174414022094502950681596740653145078831452299799099815368204826670612540005901079036766193152216630447378057070921120504418276333927231926294791077206073914970224818273057855527534809128829181256403595833355037136387305575443300393564394163752159090833091280972335315499616901445145807573746363471089608237011088636963821888571936474065712539095054573060171049725628736896441106579027235033642781193581227827576174399176532188764773927814590907742031068298838641235197909408067715283996629254289093093255469025087277004233799032609067783904217613257580430866090897084037260280003308702652824656069257403706513460234720509898461836819155774788585622759409498972698026875666735707025138683066571850898184166984741137919568901475086615172787181286674374779150161764240732829422530963857833834677611004604537287993853939852319061271850009003333631988866838514799432857890081408893879666970136513949522930636232784472322342652238182742337359449755447908363590864401857005430719655227463813441291655396225283419340772885571477770581439175891244421769150005989944589582582266563714342794338657542160867770560331458291724482550848742488579536037771477624534048951614689615914009674929306503223970868155144337446569496727783070477865866924943900055777126368616746061700082390117187615028092756214346467067779542843119974770274062692171799802569445352768513437321947962931290253273356761116392721378953153359844065484258785259383242922171880823117464326414718968286295138667814544162730656368219445215897582005369835005130224668210106891380283411811375442689025821695251958579948655564318041884277362592020646906577538185619438743294202787192622493318400584324231764434961341650915641311298919553699080313193495509659907444680039330837203622822892219638482594990845611579770066385574728064960082830352699851019139896319603667435700420930051733734090838918003777131806900369860226301746205595409814521260047603105368165567584586412317080342053023046862193959378560869392495867031382551874762622050354963445230280321237988312946496084343363957953675886035064969089864563907001957767962190122319882061114388131607164587072286678285712806849454638333829181367221151221053560961413744382787591381259819966262453763016471811903253898591037823770406980515109947410515419366431616216473032081774605441287722575976592749049376022297189236612345733279407540385221386230325763600797259770490995630764701420409453341611463263035501110540903510486917027580673280171866228676015201590002906846874125868188290760564699990362699065077383795912474287099477640275008234487085493023536421389932658935156166321506046212436240774035272391110282607222211495133133246221588526973456644336712993803138457227498599762224109004159649552441297998323817529563001458928891199070745564275791350726832646698109958865653836922934574874975663460806593825882834397344805309295537620362509613061390031889329614902873578383657727833589152866891875803372523908888076237516678636035657003636554761421041084762775718272881403466636657916112460399012324650037177327669806125897001056777594696217636947389712187143040562417949147142336479670342141246434975057101820084758765924730000117382855359907102690948346194574507012324317911162601749992634543295256312557376234117893080169498267732224360480028951679379855643420485238211661829366811100279759876135865374181267054924628784244845694980065406230705938682842160540948155891425983264089996923035866304431256970968077598786178810245863212824345626596466696584114996219289480919634934064414385340865517929053751470196007347201763686595015130377201670940582738390256357849739555868123800721770169327121412910110594244068064878184151046452608970362934254951963317737302036500620136715748818564760958783250732575604055082812349879039355744454761076955024619119607089603872936035671285603404327245274260775053474478144722448958339176946654200641394490977956387430527423436067612745853380961775022469123621482924420288118591346100964867028522393474476972843984672150923877381397316819939589896668507603479323093725896909493169181336686853177712132182611103662754058918647266182256067155621367826427620067218112003600257838397323049257373135149948250468880565980244185006431464329057738133640732173363448548761918377322186608747742694840797096046536299567647201419883186490086123451391327867811674793201313175373177052471273649687401818398740506402402621716412752969494308920615726251411909727053639647831417752597070413592928317159521765500453940023798067309318151556803819940306937666092265913584619276090806753230267562556379828407642660180149267871464323144666439800070181347909644185795124844389184388590624048014184286419966064417839371230271309796162227945774475123684719264963732012002777445155440989712125595125797013999671541757136889223221750830705237916184897229565343426588876115298662463151656986728919172183347398632488609454556078229226168649072694613080304561958383289520761907898938378087017016803949702573942267840296946930062592165519421289141793129165507566933090762861698997474012502821502027568895889143761854808754893794079788916164607865664336417470085613105797377422649165723584852915508711371220252187826643994404873629910960174317245308353283017100583782009500895326028896685513478466109803609688572672224003915393640348952456822033569782438021588704024066125078238368749390260619367429600449567979092655532963757908202109715191509949922612353512243663666302455642537410718820816033892645074440927578797220158682748156207690925780360707090937139236482706781919772569757102865459489808514676803233027447419303532512106386953519084087284126574389132783016236539791514681920097305252224625028000456354197081831407766675567974419931668683147550907185898852285084812178653664965664450530145839130215915880508266497004263229108190174705121105130153394123741514519724681796877176869382596464870436782570806103424174648764992720839001019352549943686702707435136749650613786932382443168240895129749174948954048418880964117720526075457269541767746888347601859558593254297568684627607454274154941361984446673228725846717606625982874968839702513758204369491642519656244359531070391073616368244192306541568726512256763045339824730267449107877959020757945652119955175517896429946020911610762202668113150112309396677880003874456010707371413731663747651103795652226546876729026627768397668559189376977426932077928796180802568265908897404345865088545650623507154260827202898430245704489855183650976707643887276884391897947897172913968376259416397447278338569154802660846953570208854764801370354028803211061453298092955067366552119522700504538350515321422463610376578943800408138235973670223936090004471739450639182987956028461848020499246240726653150918082710946019593712658224199245644669933221939823526695445997183644672499837185532564199313395352204044459573328789657314193627119468620043523876551326297200502223908838589539119110826993439376719662257038949821551913803577083622466572429503211168794815394764490903919226604207415134028426654951190722989559894887688082480981636337491764386260162127979791092668383143027635969469494200940071644153218600601138381551669544888898760713454125767637598389349072346298436902597082755128945136096591639861050996643878787623647424920709879147676848553568349797277367872295661160165506664352845596845261451156200564323172210431773678605683564079001408492773616582137153752711376651124188597973327140406784045053312095804432952480777540751376427152687757027308640943896934050460057347407579967383477629093933743487191763448057514828003145005505111619186918859797999030305097406454487083497490684332088407349395320043660238150828991168139472873800702179982242671393457908618725885137589984410750940396231207707607003045037905992612643067516450646000506764398302793069266954904341226623454376077835320017395076708871361306411219572404020562563915455639591693553315899208372928753630459726436871724919457897373474586309467597257263282717610313771056951342036612891979106433654467233334234303190620786193114300424032923631357121690730889773995525294513316980798538795089697587456959884008671537006289740128108805447122462914304369457349557297044113536338026873686157186110862633634940197147532580294271009384548436476926470865038219330567566556613030760225176749543398659241638166931714734022835035327493455598090699312399326725751452792844371766433811669943846517489930187193768879454089412914950558496301117116786971224085375550695077189538142205900506651605634026818496052162322068024804954168408197645972356093062421786948137744004172174328473902240451164861519821323644345181104949006547329551926130763052815077699538951817787972856073019792796295203313450614695204404211809693273001125607765176258263288711030978091537625729768727253108185241273194574004929137561947593534279735803407878006241560460506794141436638755224965650360685901057840203780926993011713056853952235434123768916480980360910618689930832786452923943785319650270464592013101014931217636453766165598069856323319385229036030185012220898258376410059237767376623106316397673715269049387418111367315553569486170885914341693032545604510347760231237009001483947806482831146881594037423816761240567374535635300612529816220784535649413851073426113471706896133102445337757439285847595592155865652834263751376176203331586438251091004868370650033490968239603634280459609156187503406388157493973696209089019687838073589058793023765706358732336091347388930401150131920784494925633041720775314652929966521133631339460712166040253773771403895173064859970425512376526124241655861484595967036574524592817813641214349845042331639627496193019574707666334815288624554745193997379612875517403566831841168964314024752771425399043890754398477662551309749252404229884748750518948321029111847249493818882888096993680175937868711630424223137631942124194611006400732796840529811902713027894945952105707449408597198616358386531631136204952565716734188957377688755673417042853703595582566342189444894620049912663050922733158989949298301191959716434500570033391234667273024828544585650382667998320752360123535174919300526084203836364204092708565786330678707940121860842327106710358973214113184957501339148556175523835533295929642918580162671222018753423139897621464012005521169333888530820094804881981305880453138184862826035294098362800953606597883515706491631947880916123872324176072051227358965081773257536310121958327561040789302429989327922334355999387204628628818826379882569151259458015279706426138165777669141241357616273466556665398579765376293055186703899213570046630135976328828749649102006573640621718537942349519718624420701204471873898507695799405019531342642357337789446066974739984582255257683502836386766205245616717441468041707967371464654876762212976693952304881086998477378338037040333376224468184934410578446584144693262993539410088090842464344449254877707408350021625535544790692406997464220345686334600993424580160230680906232054332071264017486882183208287575748662249751135878147525930007480160520601863912220657605237106987763218524298061877780806180374629368121722078634720508571174218372434998154105978465024175403069060923863428237767132604280968877208045834218686752943678093647828793538700820878711748180220469341711047903582628009338071746252803960956402274841420392151431045898710526653742843377642670849965548863428248117282461645577053161480245860128329404824486997441713832254637218403154795171245876490851502607759389956548155536970290333859455072735663151043702088896425067801628170506787532804634809346483222741380582541568744653945751214827166934179225355017130858633149584975125373944857578554619754619806111695378736343036959433290480618132546787937633198930904159947956601674731085350852422877104362740177040210070556531721673269530379730904896934075876359529314068212678173705872966076211907921544881169319497024671014321073819606619443306299655950031066979580934825492729459540848323394942944960228326220782069100680988214118600633933018261956023738626918911687429713912553874120298010995048882625339670628895115468501460745523032895526181788973179078151824965696163346513612745024068705547018602481964127586083476702378981899327107037652930146800448111070117420121623806712002814868292226957220309241599598921467038213678076468742048045310875648947119198253350457959576569175186281598455781799916136795457950502614706089073801487318250615206488409871479989161725208713385681156239594298031157964289857308229544295538551527397221547533829054011994752115934759154789818097155232485292910179733980723952919529598673206632173942161433969505195991776748599402299440009703398871605853985550452855077600460354976575751709749697462353265630894865620377392668592661933468659001104233558139435705286715684006913613084932625467535687810267053931551751514980679309365430985455890110918976697493023867587283607667661125194922753902693143158761166747508167156725919191337508005431927003402456763905438880513431158585806469789696586195119043355896754553242614403075354481476969347302369209850622293652103875240126881160873503941002750798364376780664761517330981406833820571106137828777355352383558160636855019880373213910397805321716338870181913075673742968972057309707593455536940326263473475956774240598817320808128841943396399078977126170999502702943790923150525676228829290693493407652686081077295453419927174769182110492478186382662789746014460876815113120474072771280410908424796655972114568166970993788267840209990273477313258559501810734525542173465073771486846448182836304373163005541862392612773585760840475159294118870451986710676672405612228101632553979503054695293155309862555103673725169548643476170740310993226056205077052714642094380446903336935845383744432483068475452003157519565407820682763614260067991855617814759853185216215962471233129195839009095077239425732601597245084377179632779181526492942682948476032345112851405509679584349409608638285670174500049762425335349723250368455868307149248638172171808167346637103372995541522475433669492910577990409610945973544986387484277614325143518957259583813421974222452847463548016270183551965759444496613940826145758744148487132280937213381210600212497799236918858317963409770563628377061114626383488095477704036999638498012909961754540331672800386121780965056282986239207846413551439822675693253931403241044942204207700415555082604091379538467195801553299438124757640473549174988703392604039254159198687055587119126309597768344506795061003112413502932946687649640263012283769924857547651321812589880818381937467192186515501923627176392144562655846521872806017147685910014450492689371562499608554288816572122678801921438776494761533877790558222739228940651278969182030546665382104673048343255792174279484214106594316343084112787801431634042193681571341367741672020898923760334951103976159018028952700066432432345418250014935098531107024341455306141036084964393605090812923898716343538222811051331856213716799193734997937002731458781927364876134158836869269094064713563721355937106917015680146832844858003988314752701628565134263864608393225178448472006410313034278880520525252518282463588511261664346322313952417771255665828562499638949139533811029895247489165494748584711973739373383631974439653656040536103873089989588848004851792627419565728218964960014384662916731479575798933730493802743413224786680848989496057571987663967458207616019126683855822771593411609259940806141053864487924758121072795615772723917136996610906015809079329414989316722152635946018285145384712069642413984888385684094757379661715660111419223123036208021802079791795264918745724371892708811330165838323832607761722276667808691328550348916973338890112426523362392743050455976601228853375858626874110619468735846695063090710318083807477436368391443449115114067001629279057223177411437817533708501067579354211844752446853116012447180120967663903481926487926082388671011096479757701846544849441516917663050427765000119944751480346597786356186869734530202235769026512005137934096140521717433335322922923934382674789407865127058014514866689144754090880717510142990056084516172363074469526493192640687102053203521472245102873947350220740942973534682194149104179023862615367953202579107872623213813763536099536589954913303017803728884169238267087234140011070654269951503538958734667544311740292857349481301854495211575579916339581216822964361130200728119235006348812665725492294726393244232031961495272522599916544842250874403058502620182743757683973395561680743841136659401945880300361819859977494129872612148488539764727096204521143340356628371383406168214645589938300573965781079633855020692923864740806589589090746854381512044118187593720135927555727487667594586749051896954271862252538012454347959124690708539047802983171268331596011145562444107413067689949805556017927116466489088050427085914413426734002974558810814428841386608171741531951017504816486468805677230447699303739792965458974857743796619261641704241759572218245177876552620746833643873353128345574586835179275182889234845015286678715753230154468357911230255736373406658978862403748734003800646518460327374007153578646266991150525384182209212970933959574120484173714845415258908036895390913604440459431376975926712641463891327848064303215052721547852070937687926474918660779802125490449674754161288538365526716198837889917602060696376189624318424528862387374941800942861446828418445135822047754103010656317683186303942858626982316533387258396996063174982301359108697866535499861817785063256356551148339282060202618920321158832123549212817330581793609975922667465200305098388225037176138674642017080951094320937183313354364279176973488227102389945400910472944928624801268642135004291284950149374612202895857118795828872784384736543122468952632802553671826120447064708022507807113959252086981679768364135886382142384332852020997917340651226170841175742079539384650705705317958963421535299626720006084715798634620214443277799427847214990373573071870457290939591743970120699864552938261262705739723433867005325354398132107543700682415723984252214516650987130829169825051519107162187644122016572319340228473291554769276476053254408981409338613325811271712665181850209867945207419739132763297378145951306662958073596436265194551549412238833602966701548049487978394642899510217744266830310327852673930493942290143719423327631122030437110335922915017462048542943236764479769942042839324743909342692971482495415656198478816235100543021178357956756797284525624136732290186595458571781278794179922629357556133865286254946730789058236385830875252717687185110139618576243166652106385960905734343581457887391071534285324028737019130315836149196211961239729655578033157290823095696715371808648825130553020070193293698180523297479604156174470457840572002780148026553996946308933200715080730358110655821680494492820330803312186000272718694968313148886548771093043414548889147467479524887690262207388571195013831218122754194878290677988152143497884224550274521017647662304697573449391756690691675534840348041771264009612982725452749419629913378874881098614952782204770411370120856265952004981926989030319756522141278099715937906431029336529340612075607581870000642779920215081938035539732226100473903550181106925141554130943333484431014461194651251629847947258803095136564120234182056995121748556863500470545343831619259372160879689051075445928201224478321636175918136915143912461674212542969232385069325665489298797833528631507641048857578030007063957278001331139332481567946687021232155631409665456790578680807155493631544858841053382766835233052180809258318389600556674926237547073381728470167305375956238063096526671052803680720237507485516749714904127311028173603217762939129756414036653040998419003202154815168738226511462015124428921776163438811226431374551782115142537807258781176340981321822161598831747035907646179602276672243356198271589101615996283426983151119276104639473415137939158492090805122860848621240643573470444553615360730044006721643805386378760471937117861368131040547271905568690774431110559697179166160708740936129241792056929196311915012337862064392406013735029540918591769553696967797631968970222213633976006543878656256044022309321043162754561597114816968099360768095418814691324508996728514407963038281719386248743945347009129109066760589246857539509598547337583778333873434840773468942630948446509802033481872704881536742076291384987320200285217602623533430336840040462945320028588087067694159876704858482910517205077130291439639202917172252783702485246020548105937271345688095407605784108755786221589146862959052966620994693151099060916545722582599475353706449896096131183928378449968875535276970383940822368228138340709039082626178154656290596650769891400566156725830825735933787219772887530966170301165792834696876392096256112262302599442231600774484747711771668029510354936879407497498288612954365519283789611338857305064423196607817038409912311645024324939053692804693758098873803741849801101069750210910805579135652814935529782648482630912279468009134586738998825924282490676624383360554836096620439104885237628757962938401401924575678182297395946328550833459383101320884270777293247307182347662328641282185035512639882524426881893358917130274347955688740353645085635073874367296187886297046162540005576463686170317391669809239739217396782980594238725204986362752529033950597477391129792393696083351199849840571742334598484838954056160703676048647125443884112567224688587533158669013964526670333278047952311749196158492104134916174232520746598668333429687481364247212378958599971611047465375427646810372639213698687752730009647174187393509146004159035301488134749818426258632274923693801363790437902328353774284181964737657140909625174650247973440884210143711066518904491525759258903730310407115575429794683546910593051555787160824959955125341139452212972020581914759314007277378403109682046214450577738134582522001541091651331839288722363846718700828030838788607854592122264178778013206608799434209904895676305341533648525609337854785426774116386666752528443186442875849016066543414248173602611490880560644470718228345367312144140103216102717467426951475101467501311916591522924221705790021541616041312713072429403590545028589966611585157770935482853709402732499829677950862101543981009990396528265715828957003574939039719116932488460972662203140885760445922982810759054314916601032411155556105040095944178079891758898533087164235496161808854537415729592582736653384437255752173409521607550166940094298625060030085506500944460951949216385397907546747219374419705300113300060284564576650180729129920972662414300454391176022590164410526315073577469769410574487446061671654568430863610235416256027775051478822711069628060771145834315994687811242547845649838434651849695958141619132031360109940049742101157128939439499058715049195531278215057196022672692904506651514110898489184489694399322904845725819433751069118533511406252012145584912293173924583997772762780312799054746247480244711170090246908437456743151566473052221410686907757560960191475187992896939454725987116469309030612742780414096474085512351235295194273302999490583220031277131756236550998834598187899036175698058207947574665230237777804039948160558907135086598847817588767011696972848748762745768321813919818274353333581638776926814492724884667409070887876283086497443973323686785896336950227689488150651480303566083295485537403195378645069246676210842207995356197212511191966877641218255457145532974595736938508671452461191102661382247855888730015832756869251640776540916196807081251619885180790315712481482429827820857308015973319111225646612326873118858670476936908054576573749855958443953225199773726372110814025411311483047734221918887476041659341943799443662640740292335510918820156256501519895812311506815003514037843275193742510550371523321829896610521085509655910282202675069625179142640522313595803893748278224657874811474853061611904583110053976444347535084056921587226780100206515224554674331656794027116334563896646408898573872062839723269766371418660651211894556166941479155787530518018368474557314278216486705009508843051684055870061624223953201365555068713360142918381765952598229876510961116032765342115170294369092836881164810783843773481919780952684760492178368731997302953476352813374951057736201539414328492943609066167696535322348366114863635680837502972655501790093166667749793770360527421224307957005243048016883605432157333879494270594967015603241561619493803522695467751288447725457289730857990556943491825618604399833933986097640745592482896652028102611497220239730743002671714235261803113205763304748755194806371708493335893298391043633173442332857043472746063538344702243258930427226202522912677143877599247443170298386348289979265999912464166690557740199626000619443863399091065322360112813030684542628624156976629599026335076333337280927091529665725620382369953170104927067216247244304117247910650570289805071284896774610333542896743110462872935064404790209280113152049596037478812611785771175175178491858728660758418995295508340966074116264368797708010540137481074995605608366178816017861223637031623182094410728588581502476862954313216780561547090522965523118361773364805990960781357741835596634744268352829026343956714131580648055247624495619829147232916605149523215828808844492851000096124254154389039831454261241295941764793698949891562127599211801020469995983455761736969918274036588139192765639534140217157407896694219005139365099615686919984717669906459124383523803759934267090192760219720515396056330011968757641920660021996408469358253349413042788815867220858071750806414558978849443586057793342858404573490541913346413234599430350356846374603458606263128570769843477623656747015300357370640739260389530550408114481289463596126452749017715759632848893898718161876313603572946704232776018812165762314211028821591062211078288453765172374823297348054475284458354193414401860077719681931960152153574798424128183438320900550214083220744042331689782122352543586199125415307843280385364707525195598783428053328524035604227328908897870182107620092881908963288668062872709997678075478050014998218856209283638853716075478454210060909698056727733132254214784033069454264003517577908210283783091909094868730855411569470528087841521242513279067768630574825802732740153966085970783820022443649920457252787904193751448230055654862993369125828322096503862400948230454185149588108296415564158105759418916106188045207785928158494834311523694050482812317052721102133689363062269206451249650028337703340468343539731161505223350219147709183794856368942397780258253886236884418392089755953791739319007790824198204433989430908925289448525872236317621923238023823573915104932352203234525616991134348778222781432663351435979046906548082434639114053005140455165780924654928197213082217798292556641547410440143344616656520645055180460811901764077185115061201352296294995880770989222874239636651843486723137409217580532211423034955490618407381053068382285529877729266496886382890952321646158576740493487306315866249940532856613078691681105153416473695492978119826046496322717789265066887824878734614063025910633705232657304838547939231109275345197020275525300191606454175172842210766662716520125569637942804057144993877761857283826177052167747737553119379623384648233502563893195015995329687418481910837213649911906373484095240769386719951688364466319335296333029283785449759601826244576126528164143103482321083150388519543158498468344228234816097120220751281354061572076251692049916248669632575636805450901715266486093830046115051496157605272253951993837873548662258521695397402852882857601277944461221037217005534485605714940723234929504573132603014420503078023407681381620440065891406202039305333108788573389235941803866648909267314665971634516550035164430985492413240943412216612600628675570152250619905756923687300273928134603561584565283514187635811269850963830067376908999893264253519785063236153654370633443047440778638304331288081764925670719323479643455416752594311654020343003739110560706670632807680310184525226602873418101919209408590205517981707769586687898206709788618179466872455582102024926270485733721419721326026947897799823135228514522859468969300141351054390681929448406808681989925298731368346905321583907196014916829436125362709189367403456765162726084885372330039291219614591199485890891602194198122194496538428794113060413373584387438788320841879756979221978818417507988950751580360665959303717223317321630022725813536392250177814649869007872057504903732398955570286001397332039110056158174713268834610278937054259785993453664849528871182132411113368154879273257400847931069614387749748214915044653401354660187864797254356555204344644091958776913483660530433568594869918273801796900581177872223625520357916501677887905850862294789635617178414187540431691446336822589922671110845102062826140077213901370396042904557174280203043240492113857867598766442280928975007084515860414363950246069678533129867512163350925852363812281841895150575805245055261327035446097881528075347060910812970045494108924771433248091533074342301405546076183468008224376209218447190609657687109452242395646963333373585524853247891454663659549774692410741784832491469825560438870770969878524423003392759001206670184660698063380729817114513763441711174362950003730847803489211726715033619284494448101852741533945297391350420247941586940853978749236203085940710492321315335053713400527106691298191196824714537407528046228809513888101505405272502810552792992217646480024680043293095899244494178812792822944689862293346995567137657580893442671925432037258400505708872839101098439109623808864106736720144227921226883691925789224010364798351098386865357408848962914696135958718458220956120445480698475591064616691183826480370945450834832619017501349831344377600773820098893448396790866467086855756840896347904141319933684455249735636978513204371294450912850283608310907644425607589273372085777051000124485177056943591455478541513003545915179905877520493404737741402490827189006872879752285154969002789607245896388081325715877997585679601773091632193875773965472174483822046998079148983767042975221439525724975386423071032996127021279924844229151507215295191147861334236767566287879416449819238652598890211474748436331553363119139055651224655605307178658261459733334497695445789796766518760016554159687020145793849231045778899642868353385366582048903617980137925054795654308693441284983007121970577336974444587692845404744530400194696627391903668246648434405889675876819616530004736456663751512130246090985233435824439848599256132600428060339358651631167806939872369944652092368858718725686436489478672819234435451800327193411002674485771622802344507370037889698867364679595455303742013249815753506575658537597238094983699711539462661403998240083827099140817958606180479764080574735922835405876656977068417615384906873821701421173587340126081877595968221878202810163144658849221831106952623355098943751194966726397979233972468800057697183108995496430515058458404039530107087313339011955444817294862966520461524667310090472103792853420779632767201199545432261327294365791624845666320007083097005032960112725587010767428646831994550413254281882286931282612486209631014821703237359045950534732409792656811198159560542143646574409433703703188283966029806368906807174242852758539748517088694903318090700620724746749197909032585434527282162154663713184637302538994067102497102886513058433807272989325363400293215593513832512979611230515866738672070375371848504756962468683492567760338437178833003926575200123552946297548927815053668364022216849794881439578804820091791441866344420941726582915177547583306807734640758203505845881972691777407174904541118952765947016179686469127917948653643167436970218622695519930228499862989196554185251133719303328056244955394374616317561501391555717917217561447724220505605912145217720921356572712727441556874281614222218680752441604137245331508052435765279303752786813171116007478885170467814494861485766168270607259079050101004269341412556938248891572965829303322577285764649865583353891206579460633931853202432613100581033103093684296347036883795993158051073927785450397571482104897250121193199489293647400494247308244262264241808168809665788648763540349800032018425083671710633195105705291684166229139964607049605203908399374604316308545154285083074026099273978661532872021802599540168234577347605007104840707563480936523472670103178578893788125331041155419782750877030120283906172336148640042635735088989192534213683333729697470124998293598161907025534688438238278265157446689657310181176081949998248561354918738264373676201168289332673470274365291986016392843650106680901306797920148090966037057168735946901409815136341197861087482677300033589774364234980414608631247071562944808244618248904674589154382484279361140342516033130500320302989876925989165509332530963381395591946853334150063825989254951117861041173626744784848760338639667652858226228695458998472273232308479334104970678625857081266480955914864023291157189991759666650537762209051910676657238821062863644337333134671276600782802209677090474668537957259736178620954512760899983570011093373663445146276257911601810423609987326670449819521527380672000854239381224013662742276040686211807735728074371401076610164436909914621844771256618418731016981149070031831785334130139310881662535195092233785550544262629576725100779782328320014701967882890154434705141611551070926220542670686911254737453866012920243810213337360556839300252934730881312187925075871269561142564105348762498104731733582146761924170411386535660637076139339446662609308140436431228187704155742604663047221851836552810144581555850566694849051044670891160444503374114891361508305211063184916651171296192539109293015733455869204846932504336221301423490810419895279036942053728987141057882112121133192507744572912520625770105668701588765921801901984952185749284014438079807412899187060493103552376449812263177157505871557097425757959006820802302296189856679420619501995188107566472685849005542340213349013871407479177553306086953854145124954204695046201528242294570551352347756728137362773913654727244621570001197079921607337730860925605410326381164749810176526311831871181823535211578652653504003305838437862870370503226639179962140346017226334877504780686147922932792313640057523051537192399323681130160726704700018302979757365346083480324872672017150954216010611316800384267454793541796426573224316326162417526534469051089192774708300826024810689579807491974718505689399919750326866156423458674301234575845881311276085487043421585477730344680644224949127165721891777405137328636823914864256447496100148976802161012783711040727821797205969246281902337271429959047359556646910746871192145627246308299819838991097128975922201128062382125384004873600418779628341316607111182401652818026963769039493400764982362893969102093909726402125983561311817247198738677726351254610755204162967986586643369077969370880277721781920682978581081740422806936594978731388508904878908553202919530100184708681079682881675789856952544504551105496534995951005132953296002003906031376570637857990890913338116613230802756357148847384873865750449182073198278477896796852936155604009616269233964896059584778752949436483259608050511786345708373534594900753208923069890025249181958929203265220145104322218973121725822370100802326857939482567087549978088407207709335851498932233925788076422089834203214456560187031740615601970420247064488823830979127063406859328930901130779020262103637871403931541092441233790185522700208571759265553090263659107003554671220467381645478239737571902488231720874629942515308134975357138150842929278371434537972203812494254765821466625427575137865820465129312123823104872244940712921045687159311781404360864899154657977473660240125514518187528803459841079192676637125008597892117201765036481151700373887175786217195281453872349971689974238326247434230228465239344683244910442453188979576301534321194396567968050963818168159711849892227809317869486571532142888214171076089438405983215489363955566076284211155011903990610641628846629636324971294110178316157491038900554396698040349007049815961699425349798622656389654666569574266039097311068935664798647712647141005289974150828828730382090706569173761821727808668985932390540877415756698092396839684614415535849268895060889422009768946603267119861442343791976783141103248912918855111269535846827608972675157089687455094378823185343792835399070370735870900395088041420627177154490966004773606695863961048662880396968632601911377567708449948892182140300770111780471382136775795992637402122690734103678959385657545863807525478298871247094420237682514018645628112273310256340530900105348119055949865171733665787156387445437698217339728557276399583639400554427892523258052307989501470198975276817056587275161320577608978223230573162857590432398271410044389234747234902881498789235748986292939802767302420603270142780263552961047063989336850983895379831239280990234687590223212475411306454577850325410145842004994129023320980023556755972079040541088736255008137494883284984586329115720155588925624255062485389242716441687904176998786494175276532449451284290444399972763968780890029275584434413110648544281330658309094806726399005510836383263168891493751132646085561296945331103238902556901378458575808624238758824465085531451381750596275916723525110298594035921189845595855443585989117071564045589071052124841908603628833678266636629972364194655153716048887929158726694849339262177829218648598125805948917327658180935669527445462296619911004634225597392189898700984339046966412272359958702662749736926221102230631108322495501769518674385766265675512388216260292320694467775389832994295788823930057435213262654858080287832994613277827831395404465248226302804524259622346000239378554724649852416672379127138923987053916776474679057605232196820071893248699759783815834042827191752143183321037198354354670488846000668256588265587111220740287460775538730988223958823390583460378374009765965554791713027041994676805013331895349869775952992018922847636297520617484065740364859495464635098495728054856511040179905772586664182180175724705004216244441353983511246175786899283279827828481472745608722003107126663249438845839507555524592641286634165330492898538424653781108947649470582732736469586049340077568318183829748711366285532381755607954900840434572886522082466266366864490509578417416634953183974898613135268278165603649734886034277937628181539190688984078910917506320351872042280998143110726117480675309172952293973174599106250904534201856004994693498055277334604644078766546905202209999990881325623103060480482855978023202812038024592810732868342275680467228806381259533826288029670753351370336736420598975657309654105289698826113602068684177993055431471309281336159974652638263003959601999596178015653049286354873987958701828292769245113019985166176914501362605888253534764924458365989389974847864648894885604345631402851048670999619785003246595608346162228589161732202822654934539769330345409341516472646700640149168404236693863637890263108181349019990276324168786439118766356487078981922834892711431376656258773138590894804555798851461955559542165698640122242679950362730222721432232107884865845548766227271874698109537306314344202121665533667699521022193301151417988850114794401554387323419570513481028552705719937381829322996923340006222947188365390118745360096785723302826527370530604821346432994260677515531690840465828610506534482566127070898747457235313169509789121797797484613323276231381996226432749067144550315241821441410418210842602655973934453440583871073582321197291869150907829926902080975125429130921436511193915097897899030668291279765656241591526754211525743044466096544866930651792183206978476318408314077746702082208451792766220060044181597829820486010042805564489347172490397975581783530521883911827226163156641517506870939947564001754571398784729779157989923122115859997998040045188162358725744026869200635063258035730124781581094814985274700472316125203204413293189559952112650660800988122458976286828827520905954748055471431230150914083407788828635855195448563792413566755265834206457505935281462287953357033782310313516999262572718762864686818420378517702049762326185736659934196625943873834962435251802496497422374749894912636589048606816876066694622358019272339009112145941581270698378723087595524799909178011948416681779756085916489612652817145882352656610051543131830889535089713022011597159451446887868231341501359635982664624916366629178980797709536770479450704091368957895307564067283477977355417030265044869594376438526069955941312871982124841637798273405923890259046251976777243728873510203951521295574309020050477863402372913580829892391539516912062165727224055323520959691302869079320924537164894692651439597737804605758706408691720431580760562430583225474980953770611719415771431659233479238319762155374764728788940520061075012204796158842807827577542376146219110296747773111633145034262328320837297552668841079953451290632989169702755036784365545159361653136110703047228692468278094719730886179202142887406845682940892135369701414039125081677017235520746140350009549938539736742060116092001847283668366988874141984316123849369005604358017281407372963725147862848836776443008700510511374681011195889756660044572587743471948704652397189117839008745461324466981446799078457372926641500113684234407014443367322456066224202526697253939024627197625563112354677712921350563927890772128253643843373527265189819227655796593304974825149124900080817516153200366572996694784747724938464710044141440576189084209782837591515367948845420678596671469904365386190571343597667107430244299428831135903297822252823928765824257628244324609411358651818270196858165766709797507431855722039213059652603736630478178462167760329985772170357176338731316953578208963628986584154175072897172655249064350287116557691750129256011421301717717408238964753779953835719510107452522280306509319196490118845369775995943795665572926198705247177866319266682607461000433247252959427163137148007244974101722181531028313627467973500518083114869765456794226658194610333027939877325365937588456261056921483282303173480909288960441206761731008295283419519984804181294596513268995938423122819954618426684924348917904134937100649902613108051405610472968430860278187654655049191920978398374595645685600491954868331351254311631597062093026156985985380754084004304963699168600711305809485440954660614879920022589012850705220054183686762554603971973546058339330622120714739263144130520010442898805251963418717467404247650718635342856281157366831980763680902340470528251778597639730942188941984268744138797888927656996275517897145814559331968628392931299742971449332610535893259089613541359441961594010073092163845322724657775979505855149149005658940439771637813200791168043526085860184654309490476639636191324148495512309375989448820762169299925921677913829309164635206752093970645795800543101762815255116228759646837892539041263635233654812309557757733784253776676031113159548975741889113913378163085320964094041097032237091059876726367210479775767308836444529853818394707718788757152752468462748223602452705152949323678295183079671716638491249402492376038155238014647407931814497038560849168223775891899664746587632841414398266289498416152677442544495776780171745549029054107753859392333318187283836053803071347956401687608995200600772216430742492980963842729255922986786396932768658280582915240793104725335884109072192104519523818216671527380019397445638929533730092957135069839570837232302154173442114696091084707372593928416323210202336209907985426837961024393913070982504096204205878912733874870214276217001083744431108122614394908414843735794618889718679170184246480701309925111519342422264376914074330828345253753915089651135959226514016505967902174160309376124653565481360513461774710378582603311651245379032497442979475473489719127371783734249276152692201346757291154165059807010572592970667044834770920853909762051012751527612187128239626810043187551769693050515907953653908683269399531958735347381524064944951042008107882280511304825538204599335987942535851308924239207000691215332190832632524127247954068294857624879458083851840843097868938511264004372399917903696192856353454257085032963094459107884474816527849220862889940048987696240203045780336397904085112204777530612300422247381765219022826266086569014781314289556372639098461969985568962841879849561539400624764545545680348781763622761334027078565604430587023069582404689299773439468937029209492600734468669564843653242311315718197004221788354091988383098183335585486216142283460994675603572391078809749829551262564267363384494649079528873664010473775532798100145909680030441060710324713427707534861569743062023866197760606438915482246965070801162403625548444377752204479997065842781792580772569169851327502987848635473538603893553809292528789142831761302941274558734477140932787620554626277007028993112819233779012495214644918629674198688306001876619347509230270891385545342983666296365264014394006589323350465341721990534059494806560029290397577967251186465335562199814820901856670290663079293471801116379809111221878504833508559322979011935037361323808563022540179762152614632285289394226063041175382077065430731619286467779088370899671326606407836062067677909531933252293980474548998110188472034312075617325612249720686406497287063604825586141486304027736216457107343962948080025246825546393705907029322597491500184269077963265829161662256343360828881183375242740727878519871128858796222436467477675713053825929076994520251933677591090352543267191289186937751520677173489025133772476863787024001062653603372844234975162444903730980947649264236609279995819562744551312155913276922991806937242975476885685496989026103431886420273851763982519996874144244941938620663162914494789712110375143780026303589664613121133821641125196591122119109575220173888066345781542928112001120913766905209174185685922097503014508995001109373502970821017392253619343607058032090992099325563853316477181428196922351416585289082082293966924357847113839789579024203669313539505285227241739897301488355058824168363484969100096291257788849829724076739574235672050578783856956111454638406582116074057715714687418780778243716224312438846639523086500541543790490705723835165664459987510954311896939983663997661553792082823032606706607873255186990514338066153818250068075276856459149314749804990391189824934671255026853688483638559512332727882004132198824729815367938321709733638971370764672212981977473893904211585508093864373596341622124254586518496480161018025906906517209339037918065510558509196427159905982277938729943248450207262937260738005384072781515057619690831227853918251576314007575440948876508032165412739259052461511342734121104426496559268531661202580105141833402772098922756835143116245204183456207859229357297144206943133299277578430985975603084094344302579115269223032319881415097719610545278849846516444174029411421355016311501046218399446496330005421018766412645468161260304323479403025766260953482596648538173404117611024222599067686629780852294123820408184454919249881764248030134550814345182140673528139726340660462775050423177960373625536097388126841054708108452612703548631273535167506844764321375249927749982481082173774800342848152772488014668295226757217055832126707759888254713750988360072503558821285039859704906232298209555447217992266032637196331181332218730371969273432030985542601146469992793901552409603105972854784991623472669480112218967142009098924466379997227292996983962394226802016752675806526513039988463258282886492561150662073760397554359188596490490985746964740488170392148982575320850269182144247672849066614118934433200979428178965538717823846874701514012582264996489931834543451095066225624211726035080233252440523453574045828170871399650177248936813420774154883227992448690568431090640235970465696232990072633805279417231774145389115170701953984184651949770616501329308756798158337864399273807757758011162635107891024939721544901336152056705683394763309253985878136188998944410104086323987539663873131884919520570827280136278840336229152449269659718174958117438535179799478305858478833453904231702944791233770961142729853138115602205092044130002893359540886956855030977274747240452221327856437058550195892098593630302303493772481219702834038580017179992739350456214395063267305268530550387786292573991211344969735927574998245639931899324736793752460893074282557905262156086271843836764622652714694013659923678511178689710526262823695079362444054391598716512788741493511487145886518617647356147984404725376479174897738173921865039197820096721398583459898150093036108509011996376315403934065201238141800554442208058305923330278496795964574141086318616527264307646400281140643009807596637708618389708339505765429990517646905568413719628792913827172722320690897656803250783609706894354327744567474359715932040479933029388648110148379166310806302083153348736891354193848494277888512116189322849931096011608219246295085346741823026879428744299594005580109862923933700828543863506614733906036814458613679945116984999523662345609056117741871284989361077079641451623100744675130653089230753836557768773415705015521171713713338663048424047226709897358877416687956467535372688439402250003024363815235986487221026697312563056297880800521482031915474331550015515230684593495323676647305877381538397767813561136938048533488044151035934182103678004660447475254016457394844641828382005089274646425733931348675762151201056910561938297847730576233968678881021329246951357049852466369822162120199958544267354108133004948529123638578865404039070485104118989707453914551727885417088790019085087783207045743111389364246827806813224242563391649427733256522006839939541479195950103814956120336631894724050862844586480899089901779712815781169639409001584989142622558787030566337471476022264881734468107608053501134197315691905449863733360498187775783063329303755886214766816921569098437669803152790813694164155317719092960191906932927660810995778317232165053321412546307717140481564338545422423520031603166534294242468807063985146999992784332831808034258654899335421400860753022533784681471665584950237153879034561759100699443294247838933005785447121934429643071178963404077923156545969175129724006115231540480559243583367236665926801529069611468561797761296049908692049509411149821780827912332643529301677284824534374845779593207043786006829011975896253713958852501436000903321058303275849552761786224263767926458771974103377250293342661812060190996558419381465378622422830151003022859756416658096674441309486214532164863785970697208854473611335594322525250783838780960993244068820014197334990275100503206685666359648014420187070359259406021787342817402835725321505390449388495788680240571326275400341549241236348724830554395690416925249118200840164312623358052184607394496088721508794667092293735405897233300528929271932948817371772474489619568612368654414071663048687865508273409444683195232737622235317508936091950987979468011444574848035408780653052450743374721645183789607500429384325172594088277792909244685448797400471617242209891905130934308352216502380338855812396531175274003308415057693495769494176166367992082658802051682468218574812951612795490506426770004867075446129369705457571866333490151750955977035331763724863606562495866587740645712428753729579724722911093023929717561826886502042446466685857175278844482844776281900321218813216150028342363240022660713478768287311187944094875808547153344740384301182065959351165558176699178068581892997247045728429457884539113172132149356511730918664634384312322722751260485934149380379715063265438097747216642183411341633076774443128347409072146767317375687153205849417430484164918607334624812644682945678894204028273357726527765005043717637551596122981972114426368158562717412296842578913049765641084966067321179244789666163341892146191305682027890243587346405719255140589654962715194350434172278164600797526438915399067534725233716834778748604183992610994580169289877415549922914838193967944823916493739944920386225564518265849169282641150050268369970427499341898001488961466352816341103841096010256301266903758993021424609452951068769509556211997102111317868450053241819270409017069464203485513137961241173561043786627984147339632908241812404745318222572083852479193705749518855025254076434711102863975062809041372922885333579530483998962105474708729795324300116171177456270911989803170832565030854244937943211574702597150096002470551263977784242740640204339615327371682424380873126385854667731607701821792865528029106515547331372531849457529366915863109500201726703097278590099066646898561240432266252790257573895312665447976262871309058004746751915816717192982639953027896687877329684110639979819143804556797389927823077689931958827357301122240130166144892698014832622030255336249526241912629794076500177676026753283358243305354028028360587543780994184286478133420966172202889247394616898634866018517218131739080942892309450845592968678138866653042284566840725777612700607576131438470609695279467794309274166972798360809953802986100210159925891673669913194347677847985564511783867673046613840902111312379124794439571154342200479982247805133047952531053923410457940014520342644569036688466118627489614338424307760970689901633373263142842602715973151507930893695608252739355877989757404454886530069760159139581525427913414219196231466745131810041916123626573652441492736673410544999742326410524952989343562519961003914913430318411232743060777632393570699888996947020298760551139234805307913122842213634798009842720175746222538019509820183789406810978353267553748917191810889196312086231339363126409013255228299232985705801020009125361127387228017685615727512942560185106254325063852511436180694691690817014649675806253387635836763924511048888343881360581037863233858481261173921381050299874450176180140519082266812942432089027709792988696158673194566810328689183224519608657006070046104348603551959790974348344872395248589416630554613857437795645862049899211419671027355924802148655900432562588135103183752359830782914892414403469429222779808322839168556742018845666568530261773405399668132392547367339901586632047033399177647103457377375370435926528789869672453074522829702060398996658988803041261624593264555907839463730897134515293946484483709315254693430872374166907138000340051597469759332430311613528241179717114598052006881279513941160489912610800860616227195165226789104377680255742442561104102997513394961328102053621445927363523341281878006781499183895739445383490265873378563885949909633429873371885944920586620558749905593775106425377972267650813552291204154171023923966206162129826932692790656435531672053867557479814933949620663041629145371877246392159589980610203508850612670782641810683012853603186108286956438216044449980258615856237766530281236378275177126378816339040742449771706787586535240114557779493981283919044783757558885085891424800102696101872830674959065314438666347550241516409206510324370765814391572933992148577050354075742077866323366095111221237734934129069692515301910922817956903040351077109398336472894850369833792009113034747268638974565321029676748082506496081082378792055400241894263324700406215003834829507944006071536325519855949181331570628658558955475035203412324350729504130499244425524429901534379992510477509552946106709249740877337469544232281749937003254930898267578341166686006309117608820104521154249744427459501707731746004765579167639942079376728185717630960665761070309498315030325667856931149842179438977967562327275086375315113451921493703416139258881485747420694717484589381616656243105320426911650568887079460427067713947035236998329573875452343832240560012358431525336965284012486470410291547182723762242325556599022392803453737756524988673760149974005919774465295036723876038859484839426849136416785297998720277276440902288993764951449348871110994959060481554459515842460274792300136851698825674636684992623976450430449085363087037347505696289058647394030342996941851853920925831856607516700978112797931454857492101877062184628335749809640801229191829981262764986383223362235193625877238250942276365729651630265710022288220512228658599185371978041555734937796834099126876266184463872413547355109559604497063790544996736051901958033380635476565323998104659121528299945479382076897990496343775130966050911762078410322808963582876684366387727275325907585036740495410983701643503500493549624359146794793642995566579155973333205728823781594892269944085021893797419981088162539251943212055730507683816500987801723191256579177560068472492744194472037311282620935895811463897817981314577864783584715948265998063290467665199212174565035543323544264967944158285851938807928612047404000595914304889073956408061048498243015741965429932172752572450033471770002068688703816242932147463395240447734634267701343614972330734985194088503434846489146603916934720151823930663079575837460943112590680997065990419284050726919410888217511029798104696637259223532304218360804742472549923733488596187369807193759413409409939656070511209780970713538452265854688794939757163292925304482562914821021168840174820948212118445292319744274676022096277635721754793073217511295939958878224071399264478966517045216009384268502871622256648523878734316899413931487033124285553400227376236334535536429180259888639193245083051657414050269706620556641639545230658610324069715782616861716042332059705640227528906911555669813612321926187784027977550620212762231466219643316974743389304429154490650380733281833773821264238308881790247070572929322212830893380183492562674046579497927588668665830173075846455094780572206758505819859009168181119098357080013107503149908724027088908725055015650286572294566087669810307856891470852438386102232434384724082357951549105181648415747645503971381429753789118020549209137969048884177526318418638417093133087843588318050920614730044844336358059143691755333225493418909151050127414708098967322653319533247964510489505856453409946054348515412760828361427410074214426035097681520138831295263384624669795686063320496934353521048942237320656749678850270265937273257714820476489537977549385672338513225011801068380533495557776134208921261706814361774927730165411241348890282788524359834451490210741548808530010531887030333563546646683031925774353558398025596404044619413424076383777052866478674447840807871425056986130621794999143122619988041583379470368343569044336637506323025758614923851841228094106308134668283043931424256603420630632847307578008908100636907986596661099201460836365030180194209446552370753144332525785528134768519314985884191741002308342892760065595641028053121434805216290129370669167661555158734824843923318665371524653189318097011762945513737706036407239057112039532445676285733026443873110056828092815932566859751489994863470956219301565190142708556799667753065731698614915838528756016260645381180382097990724258823492648660134859140296000952604252581752403863443881205654011708650051382172778401470621578662299459855731008056211775158239909886585388599637689947563544956146659708321532431898659188892501562508452923454209331730192840195169509371030203154660112853825458886847586101679596198447310488365461008510604224689722445402464984725018274689579826976358473897501126697937823184281902583197245265242978056620930158525539526856095574087278608721845325242046574673499804630593997518653171434833627925434506794100380588367063685905097127984090646858440567777625038055881687716066134796742475378317037829353156263707135753074087661723299026619058604035182606359805523111399961449435706263890434996093720983909975930517884569923481075452497482177463390909007896763656696555934452227929952933278589158308221292465858986310667061583181320679354246399339588435638647858703537799623587517211968947594846016782267468345200967714378677714207292623956052299976009292120006461758536524668719740298519062900438257339367208562972673904899276758499685888061715555243970883142242260672660783874708674940249497798364956530235203659721213402004174615602649423926369123439497123598439174682093804677148955568454545486728527060289094885493162942345818810106565945192773803278083848356685357914203265085497292827585040495079906091686177705743572321724617995478222899850268054071219991598210281332983029384309224386264345637387656511622109050113837032023866239988670599877276901129940514311157766163477348446424389911410163024333533578558229844614895515466999288426452223511190552005655003736340730287614480481970156931385109685959034949493814292945565409800250600885363476994989748555463637324845954068044304943053922852394845621102121361379792221355112922457871950170258527075584773481342290419315102408545313510801732947920473889648961104385706238510838832164062283221184821615181003974359851068011268592006453369964168170325247789290545750071141347107754801517835345009139519666998732988404794873959058522577826284192796262369051799469486138818083482563931258481159563030022454825343904541400330874322189781970443530250603368985761986948655113342285034429158672442656862696068551034458596175612160048858728955016947785804282993297581793207428236249911081687878524257309480879880471684088221119313884268620476666252173583205318524914310884000735312368213351050021550737987060892531240286394703859419646474051221040519916667258160546223151313904789555837737897134999258263287979361858378539893968209701354378412287694271832055981542521685850865666681157292949017508533062529397278250915030801062331217750502341306591990555513670853491840170559744688685726021099582564726164828154058448275659257902804671711579788036507634261625473250277352856246686797133489942765218716496264958157322810740887186016518817543584043170092180497509074128755809739310169987433919773469055915062566353745117284010624329163649084656615280093671635949982641511677670852852233553917170687235070206545828496085455659941915958253875702725360795398665403241652700810476080219731813762292963008437267714307751175945314319989164399608028950261903248107321757611030176183854527889444222541226267668101535417818222474266701252522481611098176704942049460932668341615394890207362755158643530581849046956704078233598393001966108178783951622724875873495002775083167653820675127384194093179959307868278659952666490167915990965948674430549606889055090566468604439824624045447883630918786035471392351215667668438684011638368836200464073652725162666203514097946336217120351182864421904016230285036538315425363746313379219808455973847584504768459671977540933622809396899934735309581076871869986379343179070228984720724730558066103078331870828253838304446332048423798774825339855246253112198573911608305003516255188561429729630441872633238126461804008948966488023582480521736973346534499734891972446475093887360930594092883649463499372422759939932248851092109852916843472899642266371601145006608026172334846945881366947441475932642279940086522973847624744841188871786513080760174798292533546267151970335750923280014093522462599036900298712932893358133000321852692979164222318753227847688026279916737366819172501881825601221644857589029443550853702783657971668146041912350158485841117301053504577614591951048533030768345832775463049890457821624983670079998010244321138990601317896822250001750662521459712127523147211731907949257132272327597502613529292082300976192328336260893149206161943175755600239439615687351882874579231472524122392784439522286252428860899681469790268464743078631099140472368859338295544679231499392707610051233195520546697842910754545543598523224041431235273026658474314455695222807804211384265627783252436801814637629700538664827500516340474839828871993640555938515193705064787281377951968578700114704653373129188493129493410124995526971806427389523252246777326850837899991702425708444500872876468414591955810464133995370107923852207990514746680073700729073576221287274760525846198139448647883555483229908956204673698231013165116199439061343112386218713733651500818049025899660688011429775933634483036629131288059248261731570344960102550810098732632894763562576658518816669219086428307299637266283908944426908114392826199967873016762336784316613294217084750930957889882251356630214847475797661039353662386201954050329102024066874658847962273619868035950804689266390736423793555645410998920060536658947057198091321437789237254496259572678016091644248969108338766634111106755202756689242701766932190671789523086433820351494466557819368313747052446853239500744368570734100559285306576121878178532852311087837159830968004060930008280082151356569116774651565457751327953181086174316242418020831230166194371177426996597231148066676928739244033318454888464104673077869990029617926227492213435872206819686374781186306561211738868278295072572918939294742722317260212389390971073458061840894529099746448156676186839676801712999793590474496635593636211631906348415058142406781906289292436715582984401598994712169035001505000408949973444439635498472743153084450044942337872383890068859369903513995890106803499226935488867654441681600935165047111960720093844089616779179012839310372605694097242599301812143448146516821350740905236143813847721220929633248351177278790797850097691822910383242532374512105346917857898440559805221467752246165934218436070474859063268770741377273414707435567788608379924679907000034307249912494803708585250583956932813765708641983288112728663147635142734156195669887262918747090856001163801449887308837457990557566840982599781917634960646253857933304968998966608831191954969365664053318378178949102088125825265131334024029174979709905634296638068673097935364894215549200259728072159566558365167030922589941649720774805332416738685082610902221017077119769809633570742018050917022126823851492149206932222643697555020829964612193855732556805549368546945637341115067070733631103561719044956168538172238517750627510207750915565719357854490159697748847301405739144989783525867288072544477559647369255112517736025993083282375644200490179072027911869003101265923696877782483395415505394121935126618157201325830422415211879612443724845425220356800298944457934203647663491864009740554408464842147083688346951970622180967610201577460459705886326636076003635012666108209823933419787463943332471920338850059271633517046899512716960994002335609056071261909284818921191061950172828805282837210042451156576078015074822058438311900677826917224923670920852958966161998448510760696121544932825618993763698965806780410627016048452183422973189803519884199568938551560019872719325534030585892965696608964416542231549912482349583010622524344243177751741420636497425635299942714059299359896346702041182674589020556836826452585668171608476657125991054747118463985645133313383937752045131390063694701077041082619294019731862029069664791580889213475536193947354459174232908214191117120973041855722521964529124702533352501962578818265590392894236438284314907075464647473925814467626065669955068369798080985136687922274007899110622182479163240441588476602372110722698669629693483363501638236786760441107908725236819906744537707021620278092041548672464725115118752337104998267741161964179045880075648922795668936822653004251428875141096136090320252129428268214866593637295124284538184410904508950323400762959253929113745297386926300278375850518935982108678159984349690011830791458793751352558908206180693094893174809335595664537777383740682440795469830628269992580394447478198245682739015814136412295708436193392388343339690239442765726429091475752705526324012647279088599395109238754519617895280227464579503338987571863567956416985244749283852606168917175649489544563597565437148116450260568799959405421129662262604563645733342288795169761639936090292942203021896835113390660717753760851120354011878232493927158929520621095499337703586855117233163575126433077338802332939446742881689127507000314145435326261911046153358860326904080313461250620121448906339757343862686182125139654028023594353228050008806333032389931556620713739074108265092701045964523560629490583976266457927178228398906187793123298867190621184623612913993116978633243449128280458998092585609671406103766026667102477805333653778260521176577920831755774639995193589484297497003683521374146774080055233297982503720167316242565896108923901231779154232531982884490398626380574531641378534518982761820488951691939894959542957492387165572096235885283736702926066508564083471921873280336160778486688073949021985259621273708202273216502507874614037734545018055862526017969130277599721513247237394821580863913680529932419622604501690822100430057431335389663991538448959682135615401319939958968136837723253385947836260743384905786127216930685364732737632792469326573142881302934881645169149553903428368306291017081831423114712750072625704744941574204003848637703998832722371843364323830278086863549824508969262320672863532939497017734765071813377893864113842787898853906755553743806508039001367887941479331186880530936494111270222558504596134503333013733780586979186113715882652609026617012412996466245139927426474591056445693792130759598925291459399754304838742855191433539589283099041246148706631765057977427768377988227993454206378153956231616397458431264985752843732517691799745389067704927258591860830211484172650482884958461824787650659948183083698507179180570546631809913777269240846768541692505527747767402076226646068585974294034306875707332329468141136999742119626566420732602233266133679064883975317819703226147777960942059580506430363289214399367250585274578890210241450126110302565723739235085298431406649314340539909140456355364973887909183225620717533019981796558976875633126288865101331881839978619421829642442661160968925517676505850201890214542133461742059924725006389747111392706172306320199018189670511409521303797835244118010783172970735662156004721642767283415785780748704038686546842966420708276519003119832274840361870627700873302945064811206883826224854716351439929332738301111006904815288159058058493824681336995089392891627859000158911747328990075418805356709886971037392774603424715331500002759240914670221257665863141149404521812150034474972132367366212575590905191655806493883898768753255187873390113377550757737276030661193437235644179115161755726296936999062027185786778797307848057712281869729792989706191799868146958420649972008142136815111383201387959104690637058726866083783471565144815383043831091580184362018729837765955232516275987698819634863435569567479430481065082103391775463001188167839799441199859313941894943702884911070826597145376276374641863952725493345160643052361311857765478266683061569559127265381958290209341207412662076673071292094088342684000249907722143151645170180233221991125479525305457605343798372027376296123121215722947521101914132156048392702387430235565173684011280318178602496844292596076438476098936655564346612418441594453080004491440826065410586519872457228583805085823460163220313089065587297791893446189268223944041744973886043185778015569365248269145728134725572915582948618524451445060231502888612126699981701521241061997509914216720819424264736910230881995328542470622837093825603293177417942319393972108879445434525669167001896541317966841432422726813419527077804266171393585411364510212462579283631387082997567000771116034153710390713953577062239744290035709604351867310070044834660903979894670836016246744621114662012513700117646028413303739692485947616727042707930642990631477384393105727431006589303177474084935911327603135243384256358948515269228828318564564144096633710753697663202663923050916883640010012308630223932368688902210987635106234597293516451975616027770968419183237720075838408047264760593923477806735597440449209661078235293611594749339252477551303738907425747617677567927477144012822564626989992047386144642179781966470167990349237561514105845596347783909526511547812612484178774697343882630286224792190313733037388815194332453380007520581873564000015380756851460487945959598734492341886536850910167867829814345315452271319236321272755685361268433181300683424789553472753546874938105672282970536851769518062216534475164627540899785822954049502335216302403058070992825652587296341143646575756605605963794049409610852462649695664825048427025967217805150300337871996476445240101667515573480178038062260970987781974867468282376089710974746330294993820147054118166278289422233472681095559503616791114515660359498393253479417807352661357233340341940424308098377438087566708307094178832974621490152147182462634757997694892340777245687307261746865303309369252163244277295536825446620463691073079871964461876646696885031584838961818188419642333131849065460091701120757966202409960181997929165111562398757519563484421178733717822506816328882029109318165634279353574050065423862272011897124497245127490707309868901899877543216886881734931728546310106659392727243626040674212195121785653119177474118675361489938655955936569672559424209411718021275234528014144463866001046942319562988696573881714187465302791596350339532552119623553723075605068252980688450962191275426158723568725377494727110645413501403874578797401137663478862545280818266371669369603960463294959977924204272918665704069548185244420358218532442082860833393358799084272683539629342314373618208372252588163297467946116461029296909914750203079521675002921420445945117630554621411632902818356433925532912950656733407534621047941134364124686108550852627694805953777428152388629272673746705354175916787817964299207773096745270582131971801436126889045721648288104302386823512991559774179984393232767573931503874936411888472899128741929839594567505914571666403221949946965837077951773068679356934550385786641721954374560739340548294843825256166767117558402847317970233174458418096434876822994670775836510675554715485533312247205725022361275384876374496120743578882780682848873339235668024884758270876047645449278673741370210693132791826931314529941054646005661683316399214857594759198916950552891602992198809050676547555439690504373126571866214023863827807523988977340297987257536332884550273355524140681492591004854574963931837946732017636091508646387785300587207275695475294015048097804415924820385907186972089953231764520875464922839215507938359024575148368117737971184507208846641041226505038738766383828625730466783141455616712000175790647423310907093980853413260734817424181969734226245073673860183446763490780691633983886902708456897573971394205244394124958902895123713907059117081370521374965618136379682454840840852597769815479278976591870311527508005710286566957254263169291452064404958844607614695914525676653842395717294725169408833486256900255341004773948513830327320599973890289290546228212835328426538462566256250846482062697931672278172833231131224266208097783660433771852427827244805748036773078963979798020825948985939013640044614895805946621953707149160800365232714003692137535793692123338037477437439940391066269476318651854596413651040996699397944482485268769504167232225844193343924593086724173272681444906217116962307263971863207579780902990762338135444343484405506161290034373952580112302567000770580442102206966880795282413709442178562097427272971700529403051315496132567437809766495394991215854223637784336972352721099212909306555445196871656120383776965667105237288262466163576601457644347292870394080048987080641094848763504085908397400978717802383813299000907677163466727768474420276794859315591484790847105571917725412906469386362277582817130433509683052318798572239876959185165781403750661513106144285265465251785748449262549990699338732348066179514854948014686755082053031913412352949196363253738841976005692052226579618549721750704889279390783874611342923546708338716659395233209301111825015403444408099277037754023937081304810090791671206998994680176290129417712149327687436574226718576976006695223064248631457742653364341525092683045405501504738382822539978959437970916440546038204668763551082033729063819155155288761712740788360034122634983740897103475406868835181373880421902054346036613842636645479477961066943237421192953818820968309064139759205090180805379151373903484209570077784554784388770479723216041189260263777211533097251554545493624266377103143257775863826002606709116228175678885945598152769158131244560324424826835750241465235942261883681896522205466618139890807895306347643786957982170400956977634637880230724161346622191481435351365041217907196523761095294938271633357678451596907749978692309645697946399942535806974887801428997006712500916047394384678739102952729517124581907785141470221154900280559927900978857035831566551651834815618925215230297034004145312734286422616385195999068676499419469746406292394844663238119665470027977873033474874951338229608949120888239804392266041042494550043775620695808322001019542815779721248549608133687989569386229985954000339224256991477660613614564947499979374353609203603972300749422013280942150424056941895573353512235687321890103956464286209302168378837987220187580063875013638185740062570690499312916923979096763599723141681077449112743806517191066606736923331857344311305314230857441556589151951166557339712996703372476023564916291718710217778263634655069002328534376771436071317613114365478702707906937602726033127184028641327270597020491021299665184610089487687334438239748069284591879339237351596145761055805264881322541625008259167135738175152680175385719576758035453995929530421355764183027732871806158892403592384450672012053756164245981790831727958095747448911672125891401712483238448374179009760682030056716152321213559716632692667422734174742167492703112778839125127826304358206161667155563260366917687220363188475148373743181566131691658747672851078147942537713818133470795275866408472078195109411891458377840447583198538236879720039361771797012892851418238879377660226605040516257398261659442607545164733597208795648903461799388849760117842263772531577831435899757681421690633705175736559079595762647831829658970711153216468151250067856528938094662823299926911419115441456457200741856168105275201291911977279711719476438796221126922521582917090603941605263740960389580730453048154384536907890534951966892588202937405599465387836875824197246678275931470035300237763025100016716163029717395824535741131719891908249952992316021425464675757114471026904241780237901447183879570166154262788406074450725109907277704250680720995200881969529950305428712819818508821490536935150646421752733138920969069847741083513275234395575453100280176254017301477221064620530319231710413046349777498613731976742737882742479070222648496584933955850846394375879878140575490668828821424750208923648157339351531999016308698102553827391273960727943315498054776370650575291437700267755605162903019040123017801761304502888318536407158084873515460214980448564928191378202346716043461977880085773445710989262087524058428335283126515017398891089809523442384087398657241228262503833707417059215889702108086470471212717904392162301790708148113179803367253653040523649990410409414523338672845398751786696144385381341446975236456348133663959079866621137975735773635557069395559022522404717514552759593076529122293868549146251617261341518809643182487850862192416387588763255508738014073989178959833867558764522448749599185495382614563218673258292870295256401131274765748821322785506700883946291738419624959376491317765376223615365242517006433428548345705204883584301911396243761293705690442607800520621960963357119574111087065444681553195270943571531729926995395533906468597315351296338688038215252369874940714895127527222523594637890561813404656742275703815696365909018727246443690206681376101493104627059503467804033569700403649886177748176931492268921366048803557061725873519271481738127891095238205486631200579045751633854947929866854062433317534138481296843468496759910932081435562133546256514498114951675805108171256541946553470573294501106697181625544139680619302885305378693566322230102112796292255372085450767628244716166914757938205596402308131606874911935894912742670894054532734689802314529422031572866032285820241620871386431085054678656463164303078208281616792952732828568584209114576951513347458628748548350251365936875300567415833924233118482146190495660793270892057648445119837819515169634143783573797493068890692840411040041311763575269629692542713172269362772187917893612014384938880580656225141741053403684417277589928877138503363803795712138924521004734006094739959912803944227230322586848031422827575422059426979572438088870141131592097935490130108245522707398589228237982974396577239670615595237555465372659172256859955288174078369918822571220704358746842531400494285178720505969752779992431563291128437466984215502272431201446863868698453418275025746217278840167735994090816209623069265524007000825815146156583362277708757976404188750674848635978144525887370416427811646474668802657515908739403597427917981741269494984233337253782995227316034633447757135017032941895073969400375992866136973526111312138263542297159043782904733115260977285175841357618103553510147992704284488982572978891324771711018146896459028757701750056664230482405070027431009931177789898608901423977694673339424838794388776226132522601935883486733871169682800679276570084567890741429119737443748160654031608285771531976183873375409269188441755136346618537316536519178573349342911214735263710844389616182078036537984971099399857590806768730093067975697826273768645155842794352725785663300630021432184725468725163474670763625928364863100055075555329916661896265313346784101399676750978357358055037739025485893069264221567604502431203062260298093855077473299290827723594547578240059455615896248268430645813332684554626810763375692747550198971106445427332656402410879420547837340820959070512867015151948472759906781980443662896713655993063232953876775174449280213405425868144232685385495881730177740004247538109251954961076248021441134411925788622970192193720217721102212795608901471488360734837736786147249440807553960778557333353873158220123859433525769471560888288331391041774433729563037186828531579054990897833110513868002284785261322221023661416597357498664613276133066579728257361090083745575972866843708967081922540521298446789864668508681611059416286398542919740958145391354160405949517485322067093331810684074869739351169479905963288999522977662068053323145769505163179581408339549764658031729490522221928359797349051893276987575725876683518594403685679250978302824034266316328411946832452500930533134471058856305567333712109677795773689040589125060104363379922157588535995131760968345504964710568333611247386623139706895152039469561104437604162016456475995905716169972525736562970827785188060394466124839741115073783981054735898469429776977517394501048946759734054582556752400241635238547821202835708426063928767003729678178822339547199722860041026271403386405903686645416985887196704488356954777629687383018662185997744429076820649186695761005242557440310805600904403326342018133809895189456230703212918141052723075261113100139851948367151614052051217885185425734591390554640485150579656655531604576801479178512093686556359758336533257643861227965881521777950261354711766721242918301694547724862943788460755075375316906300871751286062234659604584664340955705291379676931751450097749969955097907595391470589527570064904956269129690683097377296853721067510722526595737519168829612180725109727816284810296247727154202216579472835023449041538678422349130886499929537427541290155412915029932498989950205078534090068610892686374645020156284014531330682045048252429096408932169488102548620540097426640122513840464718164995315803424063385251606432702504645661242362650054670818156724218770046726052285651008132497534471524033659038436712975808193564681747387776582030575506811436164588460011528001747155636051521341377420092184174295854164584944374157004726669483113773536155151862238877600069110981746491455923281480289430439662984614134359498514758988899051480931976126807628537364720278237667568102952151183031109168888944566754688729891955583580863268794871800307629569797510242134710589971460672323451079500731290654276968950138204839774626146717958460990589801317105137472864810518840846433399710381097728648866265810477739982659135701768860410590842476757144108988327345792934694085600679547731254950365752888243499098912780573342461628175673233535861472305014546553173178688625147939094739819870252179765581606564646522170496827830202328476762557705730106016143355308842249438853305416997371329287623826966537171875650962422917797633556870707418610041385170173768199384835244464388730315029160684558410504192810658112970418981157982957976845087761503399614686927677445996620941915488618992015182695888541725503212103639852212726583670748175060638535270388613164398653375915648608163865353482302920324604695192584750244247792560051828279777660944963077971073309197083268301589963440155509330039092605930507868038385621537706021922871940608989694989713993406328751212497498187490007775394191448275032453399457788544501093437600129144614143046793645438909622887900428281128399461738601627641469301155073685584175449191359720172950887274105958313652268775178044989557205884345534768430984091178317006083651771113381697593325413539271376843522338285650211955683613114263526542196043428968123804609050693030466059023955503011591074470246584029865759487131704146308562272040149070690115615223718065026012267421487350180507116927047962173184122999068584787239592282586758165794988590689629394459278944612771866307243692914195061778698876009307128823507813203112568191707378965439279237803655549963201817769334343264303715422857687555918747054882703975299613473928471414245258949171015685452637649385809624464942104910955662418204772080974187590765920733682436224541198805084202016400060811237685604751590679636027833142280271282077807455838233913824128478749879400894621883575547613139541966106953430918313034266775348318012394701514373224099089376161391485737960293228921218983934883289442181142935999700227733926941862689097881500383751164631989878159409766948827538681774204380134305929820628271313705335213192600283364371945244293880085036513752477717223085248341388315081820411157986478564063424568445428616056551038748527869210698812494831142895377766368997595958355090355823907353105306494191644451601521575146139937487164328803830529078866122044790460572259980586979926208148332922871133874908510258021639062515316070160408171992186458547293603571299843896834079528433727309481716713124412670431097580645709214972939845067948829626864675089633235098795304703535737769937113473763523623339099983529218671744933761094766049222588807884808817386402214564984016555814055483220359397965202122304569961959535953052747903371822727658091058047332878057661537501955521561603203654883752236948226927933010358740082005799647500431355792584023440065096826879119636721018955636957451950038712355919230992555143904014229543372965233603370744090900925982813771191791404942569336568564888932407853991239385012560919394378157102213742694860690683819335897591401586196583501277571053663656377742073591766506026603838966610799964890127809869610342676256412897041205914081340778222220180844999130660657590669679763754789856092751642833883923546774222746499808415897473788782355374882829631838044572322758882716445891288966988521073104943860559645779882500325930870259867172255887560276342658752962270657105359572542148556628008083182277439973342296109674853820567617856488375153326379000249855969592681829784598463975582899072788570016311220719270611458242164812196994250982983063230869289499421773324154774985631639206671084656448128390673276692984373269396192218089807844927812093479667962741636890564969729590500055090363877316878610685457984149657192802218012676282153188687574467900947645782382633111652829662124285348935741043325893280819023256357068643691570622489060721926604144105739384191579209245488481074702168331133715163975482366473555632783890264299796773153337852309732029302452575069886258359660512578988424789417597309612952733350001234294155421791672559385399569848559857582089659003681090873501298948350405860528720497476571860144334444127951484705201048933995704185835462045045993840623958636945509081251357804794559013487202464676680338750145865002699075982658268455927907768043102999504081522033566083614817591673530877362068441658506314756133526851796423905993458685738787564881675235385542932104180385783274062008427981823965078528190796143173942723102456656425471473163626340538510362364520557812178262346882979988221251737973360385292936955674115628611252518983763551144714967031057443166716569592159756344575492498293757808680982514680178017951018624409570027842684337203163642475914257059904258146337214488545276457419900579449410813557414848205342563571744691315116820715968369179480822709096821210417899029969919587710729689967367668184102913451254843897616931308265386957320598981830446408061410042367749537927851941735937161832652771695919412970422182916177158099505495351778587500906537438867490357554608420324456823011368786843209068469037895595979220505415913255830574515112881722759769902087176429478042318956499979379861184138931071784440630786634520744255629624444703363965835374464441201808122059251122680423188629630273619028788446564385834999526603659605785786982611438082218282836756539721939166731001228757086190908735170727281800164471838848273801461075765996037409206835651552978819721043076575123048891329250199240744892303354033330545819006198462146471013345526310701960143713369011008781351561893234310590078406609628761007383147065425904875930068922572454635054915097029723546962790956511738514047515515784618090311905513236894906094616039055644287503348034271398546365000052361203453821458960358092879366445767312407923676368159722494294631241979937030462198138960151632747965797282368848454378249494283408409580217129641186214228270301468778389458900017824892357744166239460346893233841101168872413827945134880342483052820076636171837675638411969479436203455936635173111335257503703720804295245906228263654380597422683273965231132648015971520703970943434772894535370356975909990978601296222675983216778666805463660500265371824632504045553757562331999192724193763527850288806298230045559753588035746524943949727313874020504492637934125647352147548560089592180135730402010676675981204074801327058110246485728430656416104841294565755955923134462148714088665119280575751210639143574281463291614868736819197935044721229029446575119562861701688459808142376725086537072526046211097380436620026771418275239969401554145971496182317193338404576599205715021039979962624947058856632487432456635473929128662549544655804935365215300266791689317901446158931299677845585045719483226756999233146231607528993606336523093062260298271722946535648512617372118665330053437170042136808988504686018049576402284852805316804972310694668996061851623301867980623299352842812797986909313663060195479683764820260234089164196912416550110184246459665791124770699752610229000474288698765938883617561967834975254804892695173504815641821293210856392441134806946278355771965850099026243061185601164447825712874539051039683933365012621831190860100932071721172296992640556416355494269707010767702242077519301088363240130247852513597249582692048248600183230990121953367919754792200150319850780708557123459557879342246385032368042324551250228362055379986688842940847880242869347467040467225798084199254486350038301124332237375682314890259759980145704224681512755922807175958116311503267993939503911884376041399359366436784748790645732455486890852329556823144877585825430007650305485453593456143455018458233932099100493610114332220821517703627005269140642387017774015685467466970065072431992390506235850309714487672903532846589350754904829563845412357393590316671551865788127581383462552998936972544022933798247689500490950669350006336579542774993966111439984080443271438501410006258149407532744508541453451530559539872358186925781511385264747588661573383108703548062008445821380897259552679165734272378471361032646684069604212513187088375678822059232241037354909717589452744805560659555974833476541274777524537064421961422476785277250195308945406745725350559296943023379348580936660721174360075442609536353164795526587880509030567697617908122408051509406345977359707636031456281701284433455043780610043251306484144517375989181342837670296475135790395614272014493440916266959354761120096428947713343485550102430860427590943954465564791383438529553228595914553597135036249806902767066542100975527577876467799880352111030466203667618469338114908816669205467573398243406346303945582552956394546899540332513220336556623343835313625414726949286725500921423636589233153661363966698722102325707832792444217277627685014510103686532168008843101659384762135616503175089407732835916935778948634746098417439995772867210387818459510001496196823142613869383993106435787601789570906517237726977245921279576370783424500391915439455706496042864551425876044064272893464057287538237886548610410521728057634597559321700271522708366992663761835905413014250461306175054835615159813189912108700830718553361441126963379548897413376345313473293913486907578792291316322360372669661227608527925074125163095467957331115750516247754911053174741862531131010166961852605790685357327452130931967558218206853293396835077273501418744145459767754135102550843660200729578622920381087328200115308843537158640920482176939472770632469780534746483717442166026854508641429977002748850873759783039714171319140341658435640359030940640135123555936458060299624913366092220169663254785104435908283140025383186987476346420934149990276223293740618025779658179552883820441029646601516580180241795759620713327960724256009904608787451177562540242949893963672190431285706934923070604171762761026085038476949316194506681029737839062363517011988986624852665116535867365420365605824111531229141118877956420730279597160147500529343478649643987682474710696388455990207466460889639461232167703084192164673874181558165518298538107031747985375970151359521070336746809213892350848340296472014931306781308448119023900608152860855582492750023299186687759864396811043463984835394123435971137231623458307644519837720532864509818206880935114773231815764474679695625855948359693630783389621573517612858978874394615731254588660457084843528042181305880514436009026404753917740285507473233014940541945779370690048036363137306288732370857576894276175247614173272769385333014821416564746235494948113637339326526466059736766711251259952446207635831658474041624570449553936342326096209327702785933682326052812114819077430519435043141535868580067844857655506061371177817294183883144834064463367181405375432470750506317973050803291208337466687952239005125041763545062080033346030350952107007355771480163164935369245289297260276746613734648148697251176698248070507292478414566192343333197326052083074729138942705894707079718211679664872017348191495223332185519919291968284624006957407982345648600167620718622623708528619765146812161062606249744544009570845834618597974346663608539317660491835424422370938654747563013673461746342959542621934504239752470885384392626587559613492663904821357921149861070932596104279170876409876571649243621644741261758594060679925265828790478204537540792140089493456992904093597831062307578067628688961710202680987730397924674924129401534204788391778908114230444714812476128067537201198072836438127557784157936737090973687794677619562022925746786524833543523427584106631803602272505064131500764082541624916786967983403466853412053949820436516422158169586287215008244122461368564203694615421305236058872884295935558140996057193225802423424146614623200696549498413425504035753680383000578853655614326536842984085487265037013586526600102079014502388123582822210653493260286323179517100176430909964378683733528624073449627900007847869880991547955940008470127781053433568039016235163074085383531889289192607244215112200176612479457517076351835300766291141538043732969942240538728923134704916311398377372887261437262073234582362052596517387326984129975710759756028806968257088056529758935752458366892775862894109461395175534739671090601936109742116759306921050000457335156552272342115668389769027297208178497061558668108015528623095027894727170788239022616664784005059995826608250626934273308435720938758414203830729375485137584518780127785656183740966857328777671230304039157255067966664119117916738378134761967174730795270833590317533825084445744013347530143557477973990559822898049017624018154540872973708144377030648375482136954260712246740982488155525193601876196877108568009880255279750016462310649536179201525654739304378891719049854118995866408300253869397743260493334116464232165418488804063175739615556795934935232345652283729901440131440067726414579958576611921552247831288398120990003542287498894989035044000920405424643310883990360965619633505671867664239275550418403225308357199416194573559667474147551413746310535443236990236064693795030562962016837298131207056396575852768762718833729465836083975664918560289011551162073074558201937963258470118421501669706591656900779641234285788543231666365424465743006954363846538643221904355204936153346817942696248262677722600094684206051252916135596531199082049201658736051415152094815723664772648596486999777121045182682969294815823175044769157924633149025164848879257057774606135174912017314718111774531998512431396544546202744545041226015097417143696902995873580769582047582859646542022237415890653573999589159996749299556109657508675209925434300012574222409182581595710368286163561218850731807739450295866416909185308441288336739730794589699953368165700815467648811838030251393832575254485251613573653506374632942584637842715042491195894149768753214108080284008049815938772550067562396012913712948426152222745314739801246103654546410813858670330383227504864544124630806533925205834194695932827394239019265414686261345402864974297687461308695778683345812248275638235154594251566024463225205303167356510529957704646573359662949353248854952846964720610336987625847810861492744063876466520679883101713866852223240892083055521377879463392600416448585827124411802412367900664891105048290935060028036960313826214202557084371867951319646943489893102222718524178471109962316633437561802582963130895638053821509779696962447996464948890344384952140502108353247467432513312717081839013671992326861375360402440658142131217592619534152468845486870276896862285460583947487520508560164054009300247939899111548272894298682613542224957208490537874722521324133908280690369620134285309160386662291317797404608696783289801761092962162354459084878741349859066634936419567069024086335930505739104151048074980331993785920931567400024234119509824472030019373127560081648841651626962177800036965435303457228313249509357817099329607974932999596351852205079863667209404543635025499435192851112952239188619284014044201792027742980356821146657761644479166950252569685317309110982171962623277053040804721116644612401175628101624713978360487578091385231695978540370482598604532831996341470620047281004971467177631730135025554194622732505815000163984390979894464485445638322484491032376934800462079961761888928998953567357329376739067060894376510131083286088934765568536666851924028219713334740069188625554601205433816588926878239840421141117730010898434293165287401222186260925513615542069218062862219331988509093106987019799786379257956817934018069798962626361488684814770831309268565127310438134052447181707857290448230536907911955969649595680098028123301099881362829750731779594005778002669209939783323255554671079127651802516152038425603178983091946603907284247628568316024868805009471764094346082632719772857855736893661673493629297819318917816273821256309663473932031072438875567593733406165703514330682984730602281062456271290471529685870620184994526620414781976132130389314432801842475498547459389692788475373795563609316099542611549732088315073177414171072141619601412336981431799489577883432272003205510920530229386957898736031661988812222815070903227644314041949231864734814921650422587243359978358179816596865083137016542672360051105305651944180616282062757377284597468218619835262679300163463276804729677201431063553550277580771288469307747390005916007997701123761758672053045665362903502831568928918269434170609005896778846968357541155722170693609831233711229858186390053763408086283051922583444795705572687857898850836939273806239209596534135611928159892415195150226148718412596474914973273800500030938880351824833518018333527384700865905040164522538336198655189446269102394900422068463019608275702101829964695892317726290077774779270385652841543157501917456389692540396523130990289992913136557977961702269207015561639059156333403995843241740988018155516232608624816262403441457212429912147270214076998601348485474149525766731643970630593151623726802942942140150061493462141713600084142084590668334537946277488505690080379158567643900421805490463793386317376086433813706859430518111771919767790255694633397139260886778412042023713616219930519054913071850944886379168401541350339408891204993707661199042499496993943532623864786324384123822809056259690866826081743319847986710246109871008045181823457117556317737529984475603072709142939365952764127106621558306898558018732463174548612772393985895094368043472592652354203024310687303823574817173500444986745239660724701279443868589511019340033128599179517526701312268738572839981439662156477609548134318139033649586130976694964602739764678354207428226810176686448399657840445700942254026099217246803036932849319901865682570221778363008021780649214923887744822112649469063365196924174326815252341932156292098409170380419568615729916516034421642707604675559685706184118395654585688028116370348464312103578857558671874771026536540486629481638340498516790457406796158323091637059257044886341307823747630197522576588025813682684378003442603967022930133927582712243500096834307506454853532748802482723290074879789246334470852233445275543401088335981600046813673286822245586491705809688368716129244419763106208667782855375500472907854214046740374263615221237206442887181395720007765783619790377426851872337789326889362865409825030752857443130973473035569304687024998105536978347470788402942614495026673181477848741248428184249235192391169793295685980856708910479749424904516834379762223595325602247237483606843156014360831938200095226857694532095588870381712067734246020935922055574866547165262361339342284743329706024649441470209055310590319150458198190976666195221435497737998603806458801288938470878924382483160872007509955808377362862609424048772456636779856113597991493343470598966118780661628507760349706780570578223410522863431655733226147783907251902495774940714426661585885532181038971857723101629851234057556951375921048463760957760185032652949455935988660082173807728198265418596209165591200723133011336769891966099995280371338184639146600253354767999327791240490459348893884496041716373009087812791573197412141418568662385369608420043498596294030710255009917918679419789049380827941892636992293469826760330244058328218606971830572552251544568336855256249536918698482218701568653735617324407794091490797893216758294278421104701074868688627302932973977491772835571863452635945474524376720846445258852078738928437692408484256156424012504213861961697388266421308351635045438550713696047956070790777520671236104540151176946797286220259516294258833499834135801575731180913485771706422976941020675773868798852720474219474548929055307776402088803664757485762217941715441287331483919211562184209385785346378554694657014528343827215912254679748899530093211197192630174776236348524902517008780247493535991767344817129629231773197460921378835258901088741308610769336431036796980613997688500541016758417114053749132960808311333667182325848820280915955356684390821614872611581081480542238804308907147238461246073741718744198852125445538086485162921271666777044197891046857460991081119552402772837394436647641180876942823010940743424288945354979633723593358024123572509900821196585979649910040006509789444851822675623171518701208965870755291167907413665654608745070757058790352303700048643507695345429460075284549696801808755311921449352484514780495498508488005184604390641929244054003613241687340174079082711875470010523363243518324718711434425903752864368644833657893967026588065899822779515960475659078835927171744371257970881495152696580851482267093565853413265046803343764068358648782532718218226674721609473005838060181780631135343014453982730215197384707968556412486256726323744455789830403543610187796984927888397530950898997670799973145323924375642707178442227451378805586481638047101385469161832365184215926728389909361020419980922950995973765174117772714205427597045333273568553505672598786461803818252064398367634116403314549888560364970604415631164418853573522108117252454592686602830796286444356993620003100497170067995941294600260506875862371064799418590054950488126566726656939431523211908724328923367105576901654046047600670968323470594979086026718971704600077206593483098384607626391975076514109040436764966815002657725246207725780393634533195006048247222578327423881650862293326540039782830027288344143423955601345911070188056184653586290274107355718398320241065342690069448211996658558780190533554223553969679704084159346338258431355515526256738781153918698777678506572427860107373538889822244242548213944544152028920734601884604655760197257881459054860945725433498649238862498095744297412134845434595669426044311047226280485755483995938365096301786234012506532469393304640143404283985764457897061267586988091591153582792086911038364066875028080791621016842455528585974202513828527474338032729589501745529242431990451277273930232022280436892205030147984272968210403737014053632333757650372782612720943817786541526666710392396321919133271507213452801937488440040431259345346601151559245125860600114028706694916733709112730048306795454452755001050153213852153057472630618801276746276460071278522097380671223940017208047609610002441238522226797871054377132761534529202655617785480314285169932581114607205001366826705195701324638941604251091640948704200993696443009427959985971613073351467051571461405387519838365370617620971734724372375075325576329478437874152388088209081569830637422478349801317258433496166219679554043930185318533121779473854330522681176751714648574609163791347305220306082572348218140919298840207674843652626473972747084276339125053974936295015327994575336635093615164587438691497151263726841351000602164698483859991561665480879258980031150720412103389442149778362880473672755423266958890976376827248164501997973234754320665056105139148008359629535909377771219001970660590754201588737550619203578917893399893554735822537109308815492317079644134186300412793632926563075418580847780732619733250577269716590343151836378237677978213394473837556561331700015917363476407138188125327875596303506225229520939093043553681041051888915548653786373273300842701453927583724082278843561883664337003525740104732531079107335757566155831104914475302244825318592768404392276729091833759685524418541456464119123370492005916372296452277154644888219059874610459763739976899723810235874557343479275226361579019206781761948403637349491667918356976478532944460509784860299929580314239337796921077724477565189675125480847742048932908301638206806124144191165143207334447115500136434179964099147597309280466553209331929954280028865664647118290561423124790226051260692849946281236521725185191553102857226487514738880572812850753703213650181856224323691068081533663335175192156584823761611215314970648452593968688882127965348963435949933756700608543508478591286532558771777347304930372197457161087151321190075935827597465945951853914072111981440442740221529077520999193507464893234006086290645221132198952800365951538955825855341603944916237305342293186651937065609252704225041597579829799073430429195692281689362777619605100579819408196893440139560675624918756916204068028544642165861480861519126648374955006852777497672254928366839389540530480581108851898666278419346830729654778473661808993933277687834368369690611790625743019588991347907280303728372859544941851138350115693452129375861090180028531666041524168853376510534179322982027611890486778892762404065817218094568412916456428928669253282831825040414376921852183445727329822352556702049991180087989211849875633017829281160256488613793899856933806696529945898304665035532021972141041622278170662852419165109934627173336646729315285841992023284271890336921988734172640469223113469307095580110092976735077443373189378877875620088609098794547591446207874588064559573322004682773099978459527829156187811861859197368630324474162913834889969277072432846422559000604833920286663515902901301458402872370258605475101456910970626227197971923735794814280329895596494579895673903923993611837881484632630238818445856061778885684559349135092563841072372781667477998733823510579256426619749205583667897810261278974726364026326411078482854805823848107157999526716175029468670290075920618408053055736095969056203164435727650295796416262534639709158633508791300489954365998814439267485092410996030711752862306563885709221858502687220803402051787245208097519789298994146791162478142557120256739104645365990843904126565404872447011690602446867951208373101519346369011035234588947503093711437159074266810823571001155210788102136823259165828003567871634025880325542428789321104983816564417762323989249614598159936786778781430175708130081941306766446593084739358518435036293810544489859109570054701233826410860980294563204470885577240166453336320783336565779023728729728600290258095810811772144039572398466144154363049781752427184145037938864725583299090571715059885580978535690299191569043721155146714819701532367416377255168796369474168838543343113249371232343329587065049555862351596414520586276234210263381317576755162307104305431892199746017070616033974778864454650707049212191415406118918046158078289580501381213133910817892662071061956008712789125276012399364141862335558469816962105370373070679276665596606376561243867957202576987042249423331859692926002698915344163174977352895241401105095791206705809191763814935263623842673882955166263403426908793175471757293022554045438245121795535460698542478077803200687952369670107372281430976767758927543789601855364660764614476585186306015186251320807425489625330130337268134700942146932835096535722624619615342864041527781790999745733461439409169255293098889037569056673880178603545658860509489332720131666584745692961710885065011714648130167256095060309869668349525464149076331703948360592823974396256804603408839680728833939427376989214898746317028786621207290860440210480558702038665895273367198023773436235426150521918196253493948999319740931073017330723719305122297845701165435190670668532417752338505106647311985257528578927081417366904309813392051396999210510855529421099787049350088416839910904321222639758158417320424531170586973231355864105970680421791378876436520715935257314082864405132422352984365430930138058159423441392535655651717545690918394327012029200821280392571190042888630191661101573354389641588601994342854690472265668284892336177808598681619192693311404832743753248718977922172282647244888326363106319555133943912287699685420799068835662885104672328038965272730435242285866029365966408747038217906941135241796036532155680796661804706946394759040630160313838684103707773704879639591827580918533014628156871168919100321486812716661501715698248826948720846539048220647712234977408056858254557538135957950495214115802913223025774772072866604145280347124073988177442422210519275535950473338032765263031218213817308325752745892198288946477732332551434046785614172955379297565664082750841371896483353897329843684113953146439444697888913506593817450664803596214551057352117949862561340906402418277210315529613605733387526027263398184297929218381639282180720781428950270876415583638275102822214535096318357965767982688943725202100118032353774963242250736148029238370731626647972991546601579201281016540050430487022270742491401620441259375328269630659875464144927230603418356717584122010471805985884544497869394745633796307933340320047180720738342922946478392589164121934120603496153411253554459513554479309933599498844479700691713536017521726687849971915836153291165638968995760261661634281447481293732324757201038200494362533963193806380718147915434180703870653285679095478161040839627431729365324072427835464964009885372935174138932152777659320327881714641939910045426433024933982665250542291042694763608643441496964018429777615932646803396227499812350326844743448380280028672487861564847529369163739428104757130406579155711799543207274445978158393253747206661818962549400509222278020564519151980525751281352370017346667131291882291237019945528651309056840611416183576914248505901225207651205945390463790374550581048067023123825989599289661198673896841244817654797228938458790643817753808372563436101809538973711011545246808068548808743421859681643753767304676119811110980270830704424846994196749638938993922622369627216103473438819639325842563122778381235228356276573618690824815485027350552835699948008182961474243834952966106827417796841779573281016425412303385226506024577427552831991815808822512986562947720879520069466989090352438662677229385948550938798941533583785797246958777360000234886194078826725461011429910693782494236984709353716003687122665143158246018065930267980975229767026477895925685911004971861237224140597948317218029789228849382716228145785165685689472531606718524338552449736204894982891843357546979607758251454476506739344355755577274805555718749112635595687072547502831881294996025811814623855316213777202700669068690507121593024355674967386685623126351658759775686039044063006397350940478358377487580145057253869657796729584853331819811086278879805513986055906244520311542341788084950079780903538982764901872991099747189978919220386155894605596686523122898219215817229556953790558348203017513732737896813749384119559598003182011104695139809883649383720507359939450584681281143811241156598981261265423033721130202087316313775653075591491953479013428900653914253223602809178755477212297923117196199221015654174497239200757402258371789105062442489115321373281609102543106623078942813380667014203553185539560218882174254606689227526928266017703308917116985372106945834827842690993657720038283964392143437218812068265515182754570137379256433327207570576076259992909934452269011841831535256401173758726390324597095122799588242771831126183263964534834118571771521500386881804643920777875997079748217509015387434327941705075080707562049543748267098409612966785601763442387147821195428209891243926431781267854068781554068112559937878142421708510316739744443782123481903887101216322498702867379641215277708070009070429374299057525540041985037346022646388073702885978202058900165069011903168802886300098929754161525882026189393427167483616501673233339420142289293465073675791496192680428156481473446716583835177483306881772550179929335705419108347607431237868211699132894896414489508268640460061675754192849135742269031742771275559460207052085140355341440456564934415854267038798447942676220074552836011393568745215704962726201532923194091598374496141608699294758921986939873244889904205999880288635933887833726575409134934386807145793267359754373969239093783384415967723097606859740485670557769632492378912228826598024784549481116723108846719584873836325828194437833317139927522698114185518235347279617537609787500425541326195446050785345049851310544636972826010889520136144317041041292890546284723976221590219909193194879745187192392690473586583107162859425780426653608793432607695782189392539323559170691736211341334697371653184804489981231050303612804354103557190033045424985043919103809921216540484894106685808808036428669349612662636259541648212231541238643703283013582132653481781154779232115022476510478116796125514407508306997899861657353835592381024084519918285339598928170275836283552460313699936557458734636455838175673748430337886941523445818586188218631177827152210439306397056939723114731580738629302738527364396922597444425069631649612805833237767616568608595862811909299530889954304122804915032515700181828983591457712613293360168167705963500121880756441515532470746408351385932165581811899319028438538224277098857212042313550408808326172868850022012858957450279759839929267567964164455325808652840072179365916297850601571765863374451079833738615963733622681439613626923279611342725142641089929127851617617524229773015221494187935723967654088107747051933847536547737218726661100862615074182974348305004239806300861522282227227874150294176247843850740822761095399427341283714942002769861183788720007483976408833506632499180945772566899792545044568729493926102557066259518670461364496617864980457213049464817216572870563358570820418304434886908958265909565386177524275750335925843870721440092687689857325080005627887454512781133449919542944297167379359505071481644330655456680943408318070374347767028268936077691148813186315313485372208122598205647427449928021804867432167926808810804343309249234714257632076139854828180654499504088598812597304330833798604854652070459254757356553054108816326451662077413276587306106198553739788555711724211001774225160071360094961178196855234742590828155725116517021418615700674912156736525745509283562934392786876472893532392923241467461603896780457898792625874303652729499012434822919080530251764207838704128621778950208608472118303506565827331159841644659139369593832782534673865747592318424939570537602118118265742574477606480747411690071961160067148239461253395026796115834382662887211539175242665354092526625084809923963536305672833471933525500240570018791684986309812418571821099472853717010516570974633614291006326627781664621732750230444729841179219890208633176951402733037633621022571557429235964316870821032857364315114105157971661829201258560972609111501034115964554937985955464331976325211145982108173439039389781394086115561159651318888151471743384683509454997802307680528380837629114320294639493392439341112586196998882920831115929070925862383215614657920862782696547446380483707551204152855132504978743365145090741454039878251901160765725640780576269239043530750083714018692932466831835459419003921829439290559700602152400226606428841766975964148708767989466857051131129966613191997889727916820610758661521475534635054329259150198938302141712447857089858273824124366640104700076675975367327274456867527622588519341981987151154401522018472142568706454410394251729608131146897226325810096429666399867451334584057063606979945573723087011263176226560580086608387690817415661218720019374199317731906150249667778017497559311153568569512767454075914184300653082784111831537255063930925300211818969156374009985395235924969597533110672282495924902127840326159544888435575666605917920407958425926193418322872868011468309518909510862303173448184069569409330018610217899874498251809057993141453912823035433139288896645233552575996134714155513975603236914522258325136760835755775895393102366525884858904891626109638157290410889477261229377881507265022317910894590980521163530460436035455258831483565437450525240804245723406821342820728817640364596609999311682750598158192256259612877356776830504528287250274472004646922910038079083135832836839792080802147431272761099806464051297428278553518027764671848781152762169891546599030619427652643848730039861146282420814566777639945021834779513468331439394556618108838599590689961643287969458767707096771704766169469553888866302972519461099056423565229786619127791193704452367226129993083301488687628663096508195180529756369692767640796797611462676211861285082428966560532556695530183123696726946367790452013714210267854244947053484295052637363845242543871436656644629649067244132433142860115394767775189343132792020492701525221714599234720963614793326966441710695232323157301981705085988956027884746162945174740196431314033056872356214598102098094795857910091012682960078446168794095680455733640498324293756440897241066715473357811093783601410797400174373558039074296476578985414395234552218938378930311741109984033886572435452250907364802153986787737059094804065730298651929664394332509426318521151780702798136352845439303656424935596997277860017884319446628184271817635231433736390451848784461284004510592111686838580413541067924761607375351416435231288235540712033837105477860941787568021740511744575039747119595864705076970942831841774906218728968380462290435551617288577811566366894667124064085257589742640099117330942064326311366835423356416014536904887412965560047641847697045079042781223292470194652107209513497222720721940750568577527285091858035235679234199683815878178929868291920192860563938348354556093299921041627856382385207835320392366531741878228386563320547779594836366561591403842399472839000319998406371032790757313966678887415723196582934100949570638746127632320245373625153631448430192281167392427619219017841141226685048879315842527395431482891535246661503026860896891618889465712982671235470663786915810214178099117011877632957105640537089225354168863473385543519636912199800993035780170499221256682459805877912121019824745372602002763141030132396732523005842771951599865843723789210847089117595902501800099915591327288673849608703479309271310928590547274817420373102749667579523887292489022149413817955070492663892455199688199226239132825164693749259461522690101977579407839257880893446294723266512268875264281795470280511977448408230003156214345930816786535609889553396771784206225453759824611013567631813961910177590000604203280149527574433140164025532437615264616431661956607878274416543959251371867749090512812128653016613814791799361730090675798628173188766582149168145242450053442196778409003979070002201696210240617210313261082686200980055442487022572561859889739278428469405345233395058781560296150393211983621354922830317662436102742365013769722211784431831625558604847623899223556487465137802241426981561652597816066192075570398322292709382352501444157086260669280357923053667792817943868260912259265077644552791015780641246303704242997798111298171945626988105494475686508140889891085989994158713080681216965682315316213359932294603508229172615594110204264587029163669071002360765857770877260690905250966967669595928007379701964803745258528872284310003064007215629662429757906972504793686904488070325270024875292428737634336477233572914829137633118469083258323487689876836414003265598910573150222775665442739616360581136080913534390747551444922587086315952137255330632150524837763927537577437648105754372160724007476789515292832842445597963719733063438908888645855096443567359966106479863685433611328214927828978418341117455912321296202289017435804497838558611013002131099419282994227280086741264104233129211753495643982246551951338331628922798516941715389017271402618316095275912575739193440619761317404449719940429343864245922424038706371849251307452105587946390818394419910127720157080602378366803219727548376267412626028964975005057371363097951012988225603967900741554959765089615650313435155699862168983407569509468509784294338906889669439643538356508622447452883369971052533967082912318331223560742163456582768670251038873089816366254604996269028110894231594357957098453792262678911192630759797637516556765841354477294748784616715657707935993360369135518141516629687422038859056596307318704533334565447627324617280907976493611206430528851359980985096527682341152729755383022158774956485935431212994832108377329805867586611221713436068276127268696520066052851628210042002976147339099283508126363368755766775307742772912116519182101022641570808930852153411748277766353661354944621137403638511200829236461037587317352500059284041938777586765834643466124903884134595322805075910459008547173898714773408655986904786547183724183120415202351545128812785399203708141413379394269578057979977731102586094280496094541496820519570606086843942926159656889167575718540565768414226669710974802738682722453616451349381936049249203569013919422589150458659603431103383737977781504120691255117856580065065337343658516126349280748688055616046097854792983520161468728600410727339772375074181338360052333088318873446499963240260475802708796227385465436073341788886826612984208793791921193374426103064083734299444621192595996426445391295231556792833608115922004865497931511235216328456517551200701608106416050252048786778271818354465610434418758383266119524473474420269752349934012228117735879421079072999731473327173019708557173097992792411590205706900370885015566165726559032900204885453517620544001137134964710835125057083341687475703801160775745371745522728987576306131374331492605008150074859077977327450030567304255353192035647738563059158267250614747372076622638167273304153755169299105563482952410974596759553403004969198511961388740799591879608420763269177850137064858321979284378643477893697120668795608743196013020053183060264704020604218163187548728801209316076957502377329351599052666558290607459416174268616130381320778747584399101554504296012331591490344633657134980712639641325630799984541025626555178931009991717591003325583820780711990087265777356225738242579076721023080382572345199896440353115203384320178360718807236199116576313023988757146576474190533300188372755819142497396047777147416695830083155651981633159435439789460493694077597059590612476409438767672253767630261737499726928856560468189937714917303857196327650950391542337243809840992468894130469492336618429118161401967076085048313086683755370623251899241654206462637809347595772227214096122936852310556352655700150946076569208207798863304916048639450480370670517088111129014020704800194010666242911124910120085373455699261995454125169199181300634377101703135542125974520212468903210461254801561261852093560066182218183434737190242932692614380252549472171365913242121553655004354576196305443086468036824602967532442034307531225887151697948444495778582236370413545197413522138822013472001200064769695655542292642033263013437009682753853436792040035251234919121324445136668510400231416860152117997263349394234572436057657395724564989210805458430448793338898556111197014378747425615070361394113313333608706134583792499085719891406873762802524832501731546579336646703388326513721482206345871089590025637914959324174699442439445043626851174342457187976239993708300072748956621206082256517340533862359165662702421883615176372174816219649332025230587602172821908196583639010646089061844941338359310805625494734947156953268490464133648693894133843610115516484590346234973584639386361705220189514262361695722371819816872861989203520516077741099930672715442701443400254018421869498872272606788590061033024468796356130950086792767475520872935138815658526769864699311183383449639832011307577833105407280687036984336145849451429378210515240373758496510355911750816106380539894462676706251147012853644883852405121499940044466685860313975189530097620415982348636645322500613353526490468140159156988956053356666782985220696069704800198508871401553469303144321983736958883111124993499554611893916767245352285946515057920643050211828704263656927242751726174500722123413707410317475586264225127955554655307874960101241326544796453110949453705703249465919067364836230639935821041743005148185094885217878228271059856754680825344198264636240769816976468485248003109207177212364677773666710976207483870596244991470714957781880337822960146238353569837055369612577689781819145430006184595063333028786697059254126839570601882736214795165739646351197456930383674469378525012594010024675940104392040873963521819594947443206166831540813712144364337938964750658181550810471705572218535151357039077800198367282918428940362600019037242207817680853657082014427377199202112195872387374071573216971922489031062724899461407436206403400529501755380269806200224394895002501658596596840014577904809774974035494688500304468232190988710357942557103307557456809144003251280518843266867926613800195502444047397699591904776262181838496554183108542908890372229238157351571916649111400797542621189339226691712275223899968023580153487576715349697011299424826643748120640282536478420800179159275866260993013613449053329358109944124920587796728348180762308524820012388364240379926172235374792749729870366158598488182259872694648486200598472366543475366852492114264994397080900602622329069976763088082069282803846693124864513971798975425908980617449315310079640422458739891725309691596006886279638541502297133411972640250867064985256989029521783399861497678381535941243057997865521566145265498096268656688863567070586674901064157512938580981602817846413808968914788866045436400090383813120894877098891852954584634845833381665620544639690377021820034196145182871720522737266708080981693854587828759490396996372140340191356174994140051530366983439560816940695831377475465181920244688555556265587697005767298498322796495426880157915618833372009902121467901995035902399754632554278659616480817866082310189527000183167422514532462191280867975333442947057487620293678721195864143887245263344260423873182758716551248115008565152414428403557014616518164074156114685557760583079374405460686200890321344219488165763700525740691359048203052292400964475241446389063699515246939802833904784806146697777052730003616286642963143875851820061353441893423850089314233912820745415146730542505597661016324769428839306720337475712922081317322084045129676744852706780630948894396194797359004933924573155754878487830599899786527974182250001132866560870222194650720386653609577050838436870305248468267500542880218380989240555165710971930639058782158426326543873495138631780461526989658006152109077098581870477738665667089514648788994174183396795885018823626217325123347328449006581869384139176442148171864103977566921263061796497436143565307410078746838070842122871584559949156804092190566160525737915591518469462167360457522928045086257235686304020373389278946581416364136517628845328650441977948023338108188349711735572084080843312793953890266392337182232923334677685148906503542914585418677293634040392753411867790824521096976233116078784618930158368385733570672052982688265797178134146145064417511692504572671608420489332946762481498584224345348311921127157867188688701168046326845675425751403147398160222539145940830439441726771517748273721791235385976947150949287773387112933564604085197354071220884781372553218724551214452942425151741808515121646649920865903836480463818814191762979614611245301215396015456414551108596622338759452722762697976946744150101734914050290718946313697440223915345554073963085661917173999318842946390548376001833168666109938047617314028751836269288055681935227298890145790970398928149377616430987811762143227179170969209803280240237571586174958718818111057713013867596409470925186029660085170244954717267730107262334772308980674544995425916870171818482060335782031324074652411058516690377595285467577368993820119656709929684256917068948537828211014745385533715073824390474118649977239729037486184329408417498454576670669064902241061508852342153127494203625403354534589565191067793573507433283633610870392552965635220428928599151517444418929210010113072163163766465432426299204530560152444543477084203476188536160498256992318988981039047889738781907560619830945208002626273004887476853348212676541956702393224830878972857790669203651536905922775155036294169652295120703335637212129776492916051236853459674545992565068954159745766244214903872202132027970274315002479071703505194764917171750329415956011178196545777919462786440919513871424498766203262624495189078340606320721096206220857736188872332591640944208790206784582800101515493247252926242808970738050645060299332995932969990175480343055148583896729917857385432987528092555125467395268059367888109551067206458442335891739858457089025621242749329204924103976396636560370511829913477237739216995689048094008437515118778688768738703906052304116928585028381102175637866777002127583370918621915996433989438245736058908949263455341922972322034461111976190480950917961258910092174756567225463949270377815243550379849801855752098171052557899739926440292703450421374646645092354709108101807639880121906788123696122686650795437846109588113139487638357284397645504471659502937219134857611713011580126831437897548087118033422137712519168332951474507302702154214501772267951653712024945041681546248836352390614468352033579475570631120414792218445653413475208525886139450805204986750429242546151438255539721212938161159430416803507671753981455157087194949320373079368181413965038122079584529357745437886214950685402600955088321593709167600028683333662075289117606613123033666733209254118523544748567622512000626321356752612003347280862950434569136913840074756518773752118113570295502229284906484988239909509940985362161341628996981822133974142471845192002911371494521841045822567328860737569205349484072702862494650225110307749554035296542224215777703671099444995831004171973072815547803135614760253180770744594601996937919787761874785831517114783203901149422712661103226065834923756435512874850819289862125121382566150422594285474974940103727720570238483958294197589476794021813282743032570629945433120240412462224242717171393958084702817614396659282503803998042952819476377678664071544028316327618658122899300547547215882338843262399656450014421306251782238164717119562809474058165684495787536994470942599485522743800123473054716173965961864405024917293703582077000745883254495494454815691528916576543431344554940209911639006000812525080608036005150099120709642541865233344927728281902771614645923462865292791441058663718385750093184956463117103124904091378537634395526471696051382387071593359754598821827375914046762732783826840413705954536580650299319786381118851435970746244577522316111340787039623451305417029028426579977372547024912657746520497801739210999716307393729263049931837696938878457118561369795772396391143285733970666275120135359029209389599871153823861152907123192694670261905616643187224835176043313757496813162856336987149437692922431430948601477012460205879679656901584392766333178566785514001222733697343625300076678425823516424125383381258696625733058805624608066223178745070559787334992688874021508787553786041859723558575809577291120083066844015881929018700981531711028765323543310136455283837991023637263163065113883479682433561938894604032815367537628249679125607113418267635469664645514729407074239235769347606571021496186219336782083721093491447434239415732264576291627276263480855192591356450305413816855682197991429477186857251144968943115625812060064712811111257106365789340771881464516531625026312862632508956056753673561429577533921520905993064223385707763129714092332298686355276518142588953997820428362736160657616587213161598923460651845284585065564743475010974732463052923873483956224381781515216638925359829133586148139392125994451381678329129922579398610959155325056483533853133584723789239344138530750156408335042642254724038078247166600140368667998747471651728855586553167556696554174844316737723318256049463983362426254771638084191424055889181074521054507678411469714739306974985941752114414557077226383514757673937523169619867650908075036355152035869483724410265471312296012830756848960451466522584644267900692566315800410097050396629688772438198094777666340554540169482575623408306521332443808591860711630451504066764009586669018897480400631692078173432922565272229075730094745747690852105826340763345579895658256965211322249585767661727766098489808942513164730386973957972137029741721416649552137915014463416733883996757759231683268670748357037719103109204853204898174793703354227195530155609469445745720887925054903678277393345761270917438839114117173599526249928667528539546735382329697068233897512256372838483586585107195684341628747058034031963134432463963272692817351478101210480265588981368472781350247935030933399727372785567461848282825807017915310685095091658939425104909382054195322469703154175772428611620792040085058507733272257421831190426124024634549470598648802164066452620148551622999407796460497959617443123118264474035659234055054712327773467417596497742154093835928222444303953485736389298938641742399871190472826794219351284190211179455576309907746729397132306239762324803543502198495143941240762240731504933278664069836896253012659788386402479607462087690268720984755160434491056166823817674327227844821089379679409127761200084893646181075593833488454714333413346797373551238120702313178564077265338413266404261689675135094598632434393445255527630772712286946094589577135497441361409021024926451963632519604789670087905796959796717906800067674448116406166295005900550602030660854567116435178077855445615074129146808226167885401952046313476427040722323015685730883980071501223155639487841457454593717490478363774513865961496208756725146356022040959833664511454488104609265794380862586235425060557364981360193072040238831000150377471877889695551858046872063393710745114576118878006922382839180578459951240142578162683282319174727225948261757852647841925132543657507878375012064508443651226592705170437664702967688044693422671159188459462810805550290771811419791669809797615483666151621929754362300699958181785982086928688667702613950816245114420057843974899989426931818218914677804763869283395757083531651601572276725011949096688542588820136946047954700816657608323220546041511427639448518697997761003577006365436532654617687708330091420734086492402466320942386177588907098156519484093677382515647246454084838876301962067871966936561655281067214882021580536999137717572709335405450113167817499761984064441121040592166781897463853368469577339646084669967313286306333516076220842179684557424164291290240923505571194595056264918504382885709958791519371052009454057020802202861763855053839950055875868351521294795352655969955515104590353885081876955393761012500251397006368084014261986542288829511902187255601798336346051758422669784871173027445346078802255088024753207681166292680454347164467255908569398469485293533087282231527073903795284235252685314191459095642578968998562428752798469458608378670627525906268187563894282040241323740603376504354590989028381081623175501129338749790025679449103442988657618834357865453021333708521642514127203571049057591717114542203228707651012198159415483873160368133062245212164144573410672733694883455984512873824351780497646109417546394348511557884856462633474139258914438835082717609184256746163762876664175216165083350226475509401184683444606326542374620612375958448119871766710665458553705086398224042556299055869432386588350784231033062557462671072118119107327530287889415915829473356329451018753988866254219486154874139760265413152777874221355330239447719284741203056710530086276365320522593850466217714842908193172680752775797264113480131558486055078621468404263302514095322141002053235478480349488492382298536799950938216899012736227816789661549490546824337753096112856643844837892464170653978425576263859971391864947980590170496104461204896788248193245793250040120980493575162987361352696048181597829914331479049477960423499702460546134312386637828201617632503866300496688975732977379679894597457522753034913641580740932043901766897533548641633778065330054567030531749883544512653790237922226995461570248249456498937922881789811462963266234818116883501785959177013794897791992152452220102882270299078021583909107405765481169479495421167371716473506577830066468482637558404865512307404819854368895773471416963756630102034115232440590057931617985185691466673104496363280145905931473799603125511074865375322561680487131739327397054069089382903478879047639293398609050396623775170675239241057249327158435044345127822132736998975864834696819491908962480877618057705603228789242415372994314773272107778853101613309095582450877687981723745836261136372612169283667026403274710046032865595010546387061691670997041694109960519264561315495935325884681590828975301760069552343062518713555246273379031155053724402084004996905191439884134049650215475219685460620491696538956694170537727301745911538061868020605205144910790230090239836461774079307444078069119277303146016549144492032096233921190350072222984767181067584411390404205422239499189416203894777039395296161844424290857960516727908842855674626328569794742195575985084529953396566062720235410134327394750793064458335906186427239119960754731643815133998851495558298560957191579348646810398034351889212082989887253510392523582584650143397621240965197370591375071731098930757512753873525391682626230029309657767457624398393440767627461952874766875358581307674958070105241893925418144760648247347917950316350128084021242304243909880798103948905817131146201137930118256958383609342937985343557854350965954336058130949200518408601053903974574840141138785159117452558910012485757999716878157286141544896837867636926578206880572997581383300208194785785840199391699553262522056527567903513695116097228951304218150435461864093149908502960537216689886105383644386435190953984386610854089951289584202185326157492551900768445124826038967908934958128104592836613408714126234974984064319713344651391737199429053770736601020483437248639123893097835070334247675998732037862336296576391758837977039769202208320770773801475876682209144359363384022702473515710224121672567572292342237976207773562865200920433919166280316150702083059189972475679936043201736952382996058395817556638182965733690224470033663263688028993283795998669315213553663398990144084306896080439890599208732214822558379705025696845455076270086876672909216176538967556942293949503843823130943665879718351237615079098557511419289900159150463370995602082176376279734938417149555219376629571119096975132528206314339279564914189145260176160953421571823877892979243323708431492386967948396892846780987855322969968346264306579957685343898636957543479803573548232876311240642423310036493928356659317405795360810042814836391649171078298131645880486245290332604616949169571540276711230921283808639096774400110047848108939167313720121666757165772022380118056930971820964027608427009757368121412129685285574749578084054214005625209633965815235452886741088431839145370828735693995337169834581955863934844246821161359547428104361213855549709335567166189641382572711027637204471559707174677784125028968171276349395912651558340158275427676927106649128398748860447135970925790050152586887499919634071048124323748346696187425097135468506101573734591435856826579641099052862177455220494139449492987553730534637767409476874289833863636271390524723166840686824535032789722947794699181919132154851042394202410371475238339255114031249097310391695535051105412256043481273520669007527533071956523517386415316976133777201390773524990581133213774113760128229368351004571602673117535101256993519320095704339313787062168085965575941833624905692221373839737283669102964246213397386068258194576221894713797059178318547122023647039478655011443360705151469970986880777066961397975175064745567201950589798366780070322079450275645238239865128512950417689367755536800088167444168405040876409929896596916262722652644738053280934799214838393375676937848017098613130322948709401309715315630604344027186560765543427274863419256910548396155443379692412266472460292852339746169681508520426432541033632904711183813087641891546376956419259501176401597939486288580748215346107743131462843639939273311030422582799532999780529973838416867028208564505768293725453465957934585833145344434685763641233340984223543322438482962965847262073057882761531273791182205083663252013842461862364811741150092784309003862821837687600452791570694095402334041240141731760613400146982468499680331536551357614135558032609090420543823061322012664765700981244813563655368539352761692936839916693783668571557739346301414055318523288243610812878827250317445883448882992648712756498661068058863365183821310854563640807029277251066649329901522883839994959701742061513661871661686180095527998079488672953877079908308732722179112011480253524989967126677547719702579068885043081075971139900683866644218766586856100116406153587996903608128516609857661405644545015777323614152845717586435604924282775074108912000637278355600614833774625301194414178742754980822723595392075422715560405172387914887147834339951889487553971745659489577803235113195979554561638989001904256729020274138367457223457289750242344466819585086365474305981796184089154126590464741466690824845216918710413040832686150172383386370257291229691335835849351366924716130875886549888247764079848935011394537172869024575042725603111158214292956140223579877815939834364853741189718700115862819027151137639766409623291904719244526837447592694629896355532557491637428112858816951423177323662196775104015383459497663013940872160040208195860214595873150628008660801577871646371905701230851090098357580242703071860959175418860668053497268212655318469597781535176935411626959544856154878178588073144010915734053520223848702875684992493427364709895266209421295078206885149518014941723279507416713129452017310552774852723150632915369812033899391204431369849960736788507007082358470193325787639153100020238217664602856617648771617292710837289402784039204059724943476359877216527626553000171663713583425228809708965362749333795066623410083290844013848497412243450046620617738987734990564098305552065850415220226717584545398052977614406220694557443345647340551507014741612749424406672412449414602776451264085877129826796399007412297920241537321036228490697318571820424406383104750650024479837631831029480908046631780223271074934580549494115259408040067468545110828067091617029238773583755605953552705137937218218820528850201155635266421308508743367534393683820793767041499539659029765601059239814742197601067956525360455632562859072290728605534940495743459352959564960292704439456754091924255007389876530442409373167302404814400578093893602341088446549110196011647453162730449619343473993200423912562537701607630813324282766503921696976486840562980495110608583973301106357591865228869611759702022428703489545853315813093287339246308647561268600567219799954736930714428177723647553970713643163694254429662067494567031696335253439561339165629501749076154617946885168111910465519432871173490162272966639868152271082389552453785673736055411226929846535817035736514374386752914554964704466938338959983966638984358193499577971749881132337195041206964140449299834540665133658670649117777457309047961207346465793478594421418105221219245749349574742594187164395226806695916992983698141562621047466253114150700371062167882952125121313428507112801478607747720221835085561061938623639035259140893539796389687480095741234464928428039205507441903963616667682158221500465098643834102378894599977235523847949537122320869395634425816561327091480845927777514362380842499895164085731048590356196840117681725634856911261309772098280167344758155033126593423470649520344905347331464244174686027298458356619861861945392171038744406756407636577363496887334268529164496692388193636844113470752013710084975042100131845740313150312394893462534475242533427781050566467240690595099440599401352631343510173237750493995153345750012201926254857256089532819025401807374947315436156382345895910660088057648910406183770854744691031806337187753995566974849382788617749762203706053912976928335538770971529253563342269362538270139520234349043879157793396454722410271024668172256532030947842178498202062214370355820255967871796503581614108404460883662528994676907624790995213787306109974691653111324310503934867254116850290990222574846268863846925297768322860627396405747003195451590077687750386839452514695469165196637123846507127846436279109216158848647559101013113286317642443802382972082409534834790246761102793961761685630926726877864410455258697246258560257357820832564321282155530606481877563505094028598722959932993122050182116666988572421039150079906149740416068068679584158275382880512343632811595096129976151821639477776962968160770299630688552592021561182240786532224217838707997855503876731236926802771038963563017097583770890595499278250071879868294810800405526591230268171151915401214149009527073870089075002945862574841101977794320450562116493746791496740856476337480963283675093186313881221939138451994095028768768877489271166854437237101326228312121054732324178701945546953271557051495023516195513669233893145588665659117968633877934876817527456612077295193062344569433402367248394457455142225222441858114555810693582030832935370844868989301309036579140439163854040338921689210023031755908033457222239285428751380627448508611354832558103397334661381761461792282175450627949216070609865989842375935454681992716322044093800725045108572249826925132092501009528554612791685935410121929480934164538586263934760502999822003196985710703724126122860580700701599027820231020011632545681400477296210140714812224816787596813003714030835934965248979496120543623411701583930226855652689604818360778740474707731058042298765164927904647564495564830525581384394538629928108190712077533789142162437484656039581784105965205853870471401202200558281689604175286325618478013506885318678491047306785034093164887617482481956339590972340947594160083307011655467570296118673418921549192413958028179930603737713370537862780491443453063339460364415130904251619686203679405118337871755947284720723569678523427564469267426283849378406464785697407364955628060669728551455606449032394390241264974003931377733665331641862556100882996930411777592399759369179890091825736476232784452593410254811996885943961634702334605020164380626474427866560947845448345388125142599653179315195658051311840137465788694243701161142975411495330807113051618283147475429462535908406646377708815134588627705077956492507269398584170409683296754985763416491893043232218400417280734640433052763622535971927029771591436418888911273795283886913799528896736800831342176418211964076245933920538982624614950726094890983501277850041198825414023584005666270260537713238039641078577905507717916754047138441351248607128695846988033460792842799073723617894505644332184230490044130062524944890876131298104613502278167813194322649777800510203249421251522554878342574615385227940952379313198659883665592146982725575159361699272225754776637535855562895135845003927927298794981552670357095783897884481898261495540504361121481225055817932743045800878018802395215528321169627061956997070316763358861152931360430396422791861872102872360695607907288520958743511038809877136481421616210949958846637770748914022837600449778062046587147759194612130231419389859943070078806839036405175800244303987254828185756645167942052684269275756420089262845424654675644635016004708828971732091377512674677106022121883188902221877152261175561464609717001119318692732257945905098538965310789677911677238337641532933276482245771922911580915356897849045810326339353062722194581418256114180865770407751635670688547679891767765890475079049249502678027206172818644975283737689893310205166606358426600558594828773307614420301483989260625007293436220434749486569547183617015812173341031856016046276460601985145610139914942203869534902836646768298759241620410567288141834831739854001956826032609116629659659624304613821996377044657106905355088948181028107554895183540530252942094533642363782710258623603270602835237689570926660356351226619306086588653774100080438121198687168301357641777995204114498652307404892014184150783652412411377159764249319729893097054926652138437000996207972505773387589969249472292138568723299629966004271459944492672582566184197413647744785591243464083520126564596238333375404274646344217268768223556810271320055375781004924998027052303811330334098453835518884078211282530979522786970926679875976326110856320160514242941018031273446043675784977046018764886349784925601927136476099879516739523263070266267041273906015421152805224173443959816810173098426808035423940777331210932909236050594921948403971514641445431057644167289253491602885855429471802504826642042170075589749011661604125542588557168380889089186314610010800151696582641752892446268603646868501839048207093643073134719109471847224501423872700293807957163149194965037164618457925412750984073081414491252567042750006038929906333825004680393586407605469455580460689973728265042236627753081618250255994178571414617074161720706521647266899627914437655077780386423815697931910376153168137716036781660966199516406657823772795433959515153913700756811836817114587497985861284240311312844167221540959876479966006419733159894422642745512037419508834324716030499195892884733411988204649076970048241461915458735810818915832553388092734039382756367545610626717778359768900261584108085183459921657281770104511379326525524108663398433154662533276315842134752480662383342119104592427355973519368089284458857691681493900616862832268053087227691314181021602737338758454902186180514087756910346319933641967778270560567050942115009950151583104160736709924439307461368498806534801995512119951761157806074099804731124277176632750637680788343367736700256296129010230608943717889513455765512450053971834744188998002338041764743656061621153096563577927800266623418447881163620429877371920393229366757660904598444457954168497102087522512464404318003046144051212236756765520484819540418422187953066488454628927558484894114182421147916631680177607962156920187970849413832380815117531741992766380671754148011441291401567063523554874954450775238215937476961906277328820645564951516885255628871991693622542394057622903739204622799783127002820401228439435138076576314934418708946334963014656839036616024505044598674278603029728592322247842563418606626347696478051817019804717799577074051559134126278064636732839500518975662183941107859265434518793617884975010589460994167900085092293364072187758578628160554055957472740404236549584421254154327579149950474992196530553560846450373576348491337317082346005731218541478187177364101746628156176473802482614744095236303372251614367658320902544010931938654158898729752602792294116981380510623360103545820852451584218531000353724752343300354495308159026411593629858201354795756226333712830197336579819593613322669777753187700559748112228323153553430993446039380744776361416598027474112315904243821202955645919840661048773397118589365718917726162664660219216259227200357929256579452858976876884240443245519236256625779354026905884266421628178179030883154154270273124366194897263861318520357767355630602205450845042057616811205329258137257024859484115207496623534171714977574303537425857670263830584357542396615735278868286081311280972291637360412282158240975650118380027972491535715599881189299935716505539968319143996757845642357442123453558627332826403056939925687792848421512693700575373500890670940387848659777336786769079552636912746143282580766232855987705137677934935961258075101821936241523027078785159266950213183085816909415950334137162081634089604164281525637592573568566787595024069328431382221987553255899287410641409620373802652227396481935715218516299670807108257977924928446249848333781427553447606265643230710323141579313821477038874767605504756703874946908842791693623620139382523146084876187599618231974061857571106041480987866691241620007049531998597530631081754486641422184280207854953295170641984617073551006987111756564209827901051842635021104039442895898646772720767574112790580853625719261653633920702737351936903434467031748587568119736161056808394990350428474915380394401488451931027869430043737190096413883087879148637895201575841681555634867831797386683462961820655692564982797752201878355885703285724239463587673690747182326017005944476670453403442902117290015698872718932085970361099125631725828264859318939202627461968485558113513958167999102808365572137734759491941014453387669240093887597771575326317365311286850545891391514343703967392875183275325644290463620239338004155601211509467879868712543249367827714800918916485243507767292409423625489797616925355339413368609253439834424109044807934950031632260899185152460357041862057613196784929441973027192637476417777614171386098035120972589141189831918282752858274311895463513775576999585551012774845380967457764382780226842077293262990669650341353185466481707092349952457426704891771118820172855014041063415397603157009623962899668190114151626177784416568073251969323721800778545168599580863999241387334345148495174796369062095890846068209896819842212595093575638897483949808949677264801061080754622288173005482065478245443318198640227362429979420861936377108982924114857775343719172883779737593790050030319471064752361657708781655633467062716551171353681805192474097137770831106351396983755860362859928053079834142889092122145603302066853876147663429693550339630191200779955271430899584241888170268806302409305482772909284474344805461066596542395568001938090292136707375195997131290234540134509945175380574926439260247422887263849783564516340673798305802712545289441644248834810353662219093510821983792419144682597929445747323824268392158306385169701250132705225838447433624123131753177308671417935417831258205859731828319386199416246317505693855306734219457818890220006057472044392287213736512876147667058559579313651365419389975033838827359620300923550785578960658856992792856295126709956494393375655276294987815043419100253474293811410184562728860514666030883130864085069318412088435620383808494220616937875210641223260219905074765542718526931794763600118556772919554851421612563334251261925247501005359135769629663794805750140355057612790593593374315136879801083129784561312942654346793619228686102405216145399964368909118236141694959122916524066294945344316267244245078556832871565427127847247474549250135075793447355400844035778000678630947579658455233388599201593556210318860655105244896316953217169504840887653044833072636396395304084063889737118362118770985900890984562640661252001575550058436813533404912790957674287217468278770311942979304024004160725095473998618322967062984026524544798792293292963485649620990435574852013876723231640592747854985852430920655595861633413842471968806547791939497558546833553612626051045935273304761148740634055780954635007401021717013921145647270542888611665049938315855098000658070810409598519981763294937333476659510243322674813999370993799704071099256476237276966900633530909224562273137246675480811373396571962008392021187030672170059411024885454537357204325245293127875344102829038525041370618005176155633302455576797860152282373823196286672963289194446258047533559243912496488188880397294587537575966360939609937256065216371351767228261373290460999132172895492742664944073304252108687165774222366940755356584843517017422019528772392191766535218861058860475844104724478046369609316798487185447930509437089515537628925483333214270890309143164200959054017619860494249545194347648612859248178368850662710254831417965618252422882976821331677355548389825414886429746524047755246258789810898038475705027842961260907651109594369603899446416486305247745494223701297996649981277010553637413164241132864134685829729471498278051170963632288189766764123563424329823111099113662509800942284049899795961970566358357009938302857700138162607225143588004153297630644553235825441664357126092632964848199767080818421859973152635325298562394836812564788394980302786724200239570550539110491326032369808410692844346048869573516598969430679211086634116042999709894623669729330453761868827207584325784817081880067197097913499059954513909941202416499773929383875500793327189922091046412820071035392039768739312669315926668204946361289358574452886945977506055176471350199518593220625069857300904359212249928075324168383927482322735144947073635918749059797409001261226094371742545015006237875063978605814013835307604493228071492226729979709856089986252102221252532678582089908954046402575902595004116770064563739677671855895588447252873911912176196707979477269845757242460114957547703136890118674922378217149629034156096265716723321347121971767572565302837406736909035163032510574037262323953688001377136118562584659693601430903396191936618060580869059694020815194449653615197177176786664933623183568927616969547456879871002517140178331444139142943593063487939896738195531410058614443543280212772121879143184666247507250815484015112368640723618057848063006050098143887229147114594712119701468246696440220205600176574510412598393062945325058715456714129654123979139935356167244388438214247610290888770427689633143324537143906277690593221224492399632386480150069261680698017483592573224522585181143306643098034068423852240271424918612415859863999158815381955720476565654691512903564658585013715645181784516789640361980119064952510299368957514579073840764967027492792482029492298784343571653709586057091849002588275983754399978920780516405597504974825548565677247965167769003809177209708581782871701743672917402669046209975251310049397929632586181548565289472903717332663761664245799803879773799705819468712454787288240843637689585130397552154201296710273041926828239377529220546245445717630680395884367243824864540280406060420905395304712129734609924976189925982540995825977457962968070608162612189502961609418038067938779925524563272628184388309587879082014282855039611240063828994872107411270271064927417440521482306719303352835201716665629408361431601604080787140822404020501816024018497261343343478808471734659033790570502137000592982028114022720149114401195305988025355571423661911219876295884246485982566526351934878122263106993150375615493768047597467765897198511685113130658030056035965622282764387998527868248775956613543626637832475679390705243504783279786467227142127606114517351716748939263967902955549063526302492090635261200717622977583946765013342257223575384103633170583707391369038836671148243216504752256523076996576400620825998038256557807681939690964356430799964406115924009186205061518484587512777308542534958140967052879025115020848099339246132638742982725017195664196185410215320898997414337705977530850435820236548857736558016025861906730478300865729561050936184476942140482427794036192876081278771370986963037671074132709986835550044698037003259052718959435982548845419975218957666182572463115181152632742561784698362328057373520969696719798773133786673058444366952531050068465175548179233320693327766240176614504861629045889701024774708644668529450285835674852306732133027947866782636642565448641714509677229037757301435628863556548144265113371179036815357087395246559286336199658599500163295783473784037952247257769747859365354514442391300895567772492019667333102594166451677854849021202502126930343714204033906644048318046834260735347771092281806965714594603319809507651565269848453627802666281440822545857206515134364557902360658243683647860043395529654734467548423457395449475202787719242403104494209574897033580384749074566657339866161540136093624111041540774728103933393365265730721421230830663070515104472782095131182287073998860476346678580663236417399516953577368064543026899841772834171966352915343101868239272603123992740879593433406723382301811698895015029786536302874760106653771685042797964229760144462784278335728775105764058045353908019112874223043531395227498493134716997727742267528425993198341088816302443899734785480379514446678908762129666804765621452337523285615183363779089484431906697208661759096463298447586034339363411940610516705316302118981696962501901096736244017021494211946567519650381458635663734230476920159624505492553504450281853741608070561766902942097560152895527863675852281350517742554812295401806637376293636284678269792055290964368727326977373980245737876302830589632960749899159449982635697328969068496260508720633611212892988631220591809453119164888975322350773545714008844410010225070109908589481955655682811653595686576065100467874121349795748530789225338995207107343623051859330992946303843781547479965354201223586979598216205481027805481352454326515983260645441012187564941105257606659713525934511007982128897347130808152682844195744224238848319941859457901759077206282689919837463316522352428812541428468961106474002728730357894775355279297318133959489319649593912718043813188333948410736866112266471010854108318885756510864607877215903592829515626530338312451900480643437166263351885990477882613972605735675691708644800834851263479632090157318071813231608648237679084655119104944186325221839209579365978044659450002751552188250737077416605565361197440668596283821193451459086960543392220374296450102221886441134179659345554009226405760159176298579231603516584632166354350543943955948441202546427088033671684383162571158110868114035845710329178825768034619930698533229849690935901901711704685652335953981099564841560089421735247618205467841357398427074467353454861768500518009295300451351252505378209474947364809253911213253544038525811361583140273882932822055245396661895046886235592890051574628992100113923975693966778182557708054745483703291175238281967114066708888045078842633794407343906518942252157712493277447578150279088838953712815675754362089782544569297224779497190158343649872828866195300561964611777510064695344345140800176503159116510859326613264483151415471027244324219728260958217049083897521866938361163221681865097120151119622242482456142236740172986954702637733698266090087013638188270092064118810685776865340245826282148859266321159037043035122600045317791389368727560047138050505795989221713492467632527405235329380986299905481513941955636505444535649516479335049760875267809645023068131838385939338430801200043484909020245891509054275059518931924264419702785596808642478350327410338447547870607430630646014633438040002184092027056285431860624306463376307459475623786316359839842548425481890980135722202287957478045774932943706762271919221546337073455516120296803894162222748148818144685513594420407442913747655428436596776334819832713994089540714627904876972983216312260406407553443927883989843366208137242050999885814116992180273558997176368839458693442935498109278236594750835731822505546607037621915539212499427702205595400946664888025538458043244186697351497276702903578912177267673976403449727834655331465784423086071674809933473760972267837506465756948324283355137644612261989221861382938124514371869707608539658302976714114100765215182669175207766472530711288569800487652775299091695085604046098983455460743038678260541362304999551262373829532160256054302111701933526558119229667734613943685798999593582101504032954993124737613482923188222073964873129928661129650923435451696463674878438241046138625287376032683272117209614582900557602420077909881194880709973039826866287988168531783557263137669759493121050015447773111490392192632085137915887616770535840403460531553197768861748926065750342694649685518687748439964225538420989023190402156365159627072601805584460874945528425831895667276521051069035860709070746199682195369538918802464817151718504327052718090848898626020142731292882540035616857319654787783098443018195785311196395995589608199719658651955242920601991344268545744614964501233436651269679005813307119923609426364724378177649620890662734181632897200990209015624605153380060935365662819467071761783309148757862863889411174782406558398028643525905787373496931632955839804275371172853004909259983509819119101012313120369355930833248594271856057815596037073169450609737564512968462793120764839662394618221026044525621713808618605944497687576348414363653138914845971517606452856165333135950231027642021123275308957819766606120859919690964723311932250615304236305591324918304500391762147862303722173882181443827508765250766677816552159864618131091707125192550445182229468593950400764062947261962517933586789245640569215274971534941924236670005074798980075191120543182192077268721828251878405262480735561552204678096383285662542149801638861650385925244049102047238652327973318873274503515045976465819781021993106633388989547494570315086000611508268890001976902931342616392825349792254496331623954110967014969239995708498257723784360978912621957252528125151971850713978347426630118166182117162768944821134012255896419735923128120833619019346746324839148790838451471797570636041331507581108275733156808609656284306036825750427017655336510855465923402312013727063163307121220921350356363619484689707068369827627266393906736559330950003921126162150047292300757027832234302524485986804952935501000274602464039157500406433775609405869104493761201724932334823527924122569290292910158660144430546974345249681770747881759803406023748370195555434404138732498720922240801592806850925158068710053640881927183134669127543390432778181893408103002884022971903395726259860341941154149294968583957342925374484023799651029906999102745112372917620942891148370371098111547817971362774576162105695244305188313401150447084800862271540942889356635110828864372186546145859757635928694395770606737937060868582749116269242456965427350549678226867137500835511113250397515444506541552314287493447240250253912835072159352420198321783817014865715785026424747258961190229227159366087257304484383840868181621939921077678392537778172400768185106759318536575969098334160888040170872138282310950214450219937716548613842601255618362995305154576323401685902735806436496699574280663967932836037674283845054685607099961063094414751250858744829396131197808639744680565941755340460764217617435873558756435624433932987976613203674864132724013659474194905829818788412529640001325834963069878796662753997244381958172193588160306181212896275330436957087082522269850023887245976557285210083803345945074826248483094035549147270888378465250857677689141900986506247702651509101877723267773865981973033530028309335609854242203401170099549415600725873832158351156220167449129993460692454970477739632028283450870428852006197148789184209522324402630716053752885406830418398212615134143635243447889758935986561618344708008273256049920440175155417653625854425816782983693762116368205939467361790696928644941506575472676406447611359604541404718091402533926781951808803731961793423089542978452903170132138353361766459195100022263788615369013230669417580228066882718426062736034560746404525874753615423554882073084362962619452881062862391220563986911114623306599032913389102640659083405986692046243998598248650026267321278232166215909340071197936797661076372656148696739902780631142838063340052828324588552836293116171394925939634960609979332792303250486924676245418665914455651408337176463064550460437105010175801263768655063962317283213245654269071469863037931302206734319618877685064776922193096564593764279090591682848593293819523181135212701691174500915819365520267387075796300323263934592833644149680154249279959674382455637011248438512218865406322586323352190175401352000680750861712568402131927870927023360537237215895963164342926663916119101509843262863349207483643505264801963410911978090815149676055720847201201435008555591624963500106988887907906734908448287759242769501787645084520425004017549035642780299308508689036182055362036121456477460602371107430432706929317514436114759529510642890511566194889759498850867239389659354323744576751432467329628868946357442690015963298740036656409525503664296205884501672242015156512488126378201862082789477121470904596615100495037918586363823166929009142687060895631150342290799109948436725696502446741524228667041417040363555638045408696929282190502194687138512493982566190975669868607087460493145113088704487622469168908312365256871995786786654803283620151103128660124640029162455474383561572470456856759997228249027272479481378548862422361382978840996291892498321431206214578937336761791965687841047098584054170463421112314204779769103436496476998441310657876048611259130055854728743249926122234622031256160459191197210052938649215605989760352609344563627123177053709647136020686886940422720216243410808221375721559159305630444537486142102461446950202751797638729187753059742042850852761764706618376131294798922027613936762592643622244247168720023457798524885672196964673940741839216051911654443060117394266883566779208945635921511787511365209664195528300129912669056365045531201178731994108895197478648081479883979244652895026129713835138867578538830450715513662523218579999332201295591669540143403912171487584490783670213618757724564603143326807718840187146328716236064147238260333144555754687481632169757545242158454766681078590611415303286475420780962079773263471441028877581546851194459610366668229728041564752119533610892374433056635584909230569852984422289222020870299237747925862908464994099999461443989227241264148537449610221012504645108614345880925689550186566485796201652525299701396327960012644745105826180703452530357695329285203137668921115452762103006055209997972034621345716483583138480878562387934840843415224090949119103477778293867408592758515970746331034039781758799687522687489740878290827254606560791134985080449334202500088308470862455207494447809327768054977012205040479322479169656611153286626258700775328526562650683452367336403054275795427703073069156716919406903741338938525988771274750908577173271787260936695810046801167786541015470798648496682455700949032064837839991547329977103225964853418926818972242537591581700574339658871628799563971875796133852381712888524589156606587549885115692142362836124482277794043395903399595336139511626148060717747971961076799260045529037092155947234711989205672807032803712553757310604431047591787258502885050256477955508802960141943477860339167729250116159016359656151284858287752811500205878157663114937866754007516091860544313744989314875293533234556335800785863874673776228823815607188354460278748204906673755524034714347502278083792222127570226731221642521274736805511945462124687866413195255710734682426676427033184560282986486748579220470799574744765284505626919749574808058486049416059020352412589087272182718446130848986365223939763884961310067896159435366795566073519720329085708779298085454468301136358050095690924270814271958766277960994161705311070942524533847944007027181364507712690161595632598501110289886536787880867496373487409491173094724441003159814781365650067102781133987959709568412654836058269554993112588950265215433432482993549982971230045181735818721178877721950197557384465414504296914714674488199656112282735498298391096393132908473540165184411073432371651911216359110884531394816298085526654960683051952973749187667600800212624805039792533331145806168691026697645591728800666161916158529450394191787823610751415109039058891373070449424321970311423527727045594004750104321364614726920774323907472645829642640458825431486859620583477013915878743215895210010775703293999141903393763818764643410230256275346295129199603153866706431674278217976284943700938574504776519350912461310406532717877190115707292672403144194652581090402536498769540199470970500246734430712314214611303558363782680288484659313938044223680647333441142497475376969660600126529341641651637820184470020014508261755547955590259332599563698162386565936863231957311674996168888840174851350500171844922342961154207597112030078132356518184022580192664562623568531889699576791056924182816550411789782882751597260360212430515904022940401219717026949917468789362633217820282291529015801528130803413482884847269530641449243740230313662993707644188339374016103310228802517093648738721013574137302734410777689877938520902481051365942056112224941173437835231520983251599823671231243365895825564008495325499849379268979782100982628091486896264070262819850990051436841338684266687349144248741069091039595916281818952016244827215361833851380909741533694041603876310269698770528742089334504736851791363071708763150171270311584195586205339496033438140138503813915742362670982769602350908485676063021104849073045781272181900371266527638345236328300172330883130094275207833989848237591400512748747152484516213238173561577321834597704065361638438558406587636796062157552642245818522974316519686044161293207759119386688760122328990518133476606423723780181605152229098520076061169070733513501342579989060662044913991581021169484920902615907228685429698238349848874281789907141651930602104030554558479881492715481416753486092471046050833056300393020811306392667533296616604846049415102774266592166625433747821025475490216339053770444058699444246264371032039882106582787493656425557796741395265149755366537852249792358342627739528257713033992000683822948899146808865258836295974101515950148874957704350938437847006504701273355147660853007395418887807698590206741585293584373915892251418535752822071207741591908051306759905019805753080327189502200824727870916600786249895057628249547068532539037148080774231135968162406379679419946812239085451108950219833677137415247640267591957049874693750268932620417109009404425540975417877131617993247423226193770614698480400372995337136869798793738452478480298155385974216669878932514371209694691814718728946522610568539254869203893482138256528116232135050436899934022534585249794176638566442873535885321626849475477294608022048363860031638746539006154798163932288316337279605571703665196959062788975757486100190056945866854303562739731213941050832636862622300104005844258239107161450088211649323456148419357271188314706702009535445362439548540282344963665907219019858514747725023584996406592944845222119828912794150394540864222127334900858143263805297734316506227185210210976020739434784921787140460477244500658183098734963547762526400456726238619205346773055534486667032165708096570502289526617753940413816390046948503801981302591435902009532471752027248612107260583203271269571320763718450443906563408809831533525555275372756107992310012008447438609784962788273126033905879388687898630947761352081167029493115515513694362422081402628389046013611235676611345182780173305477614187132623627815814055026221887672767404725477561738720170581665188498992830768886043838342931840618942642853041044413172134238204158316770606720685126449968116644475710381266067805777338354420272150610922971365518287892902857158457906680942778503121376223083117798696752638375664135662956751546419914808943365205540045898538274429298542779165887671924222979791693021579393190623165653937459578634664176249569834563131716503130686724058787313780823483140617900401739270183543095568029924859325161355742760773406067638642314287501503015684327723164202630628684365015100182166595235775110632035575343966684790498813537902274645184219824288349144507235040322522729934888959203295621794779893561114684530844317310561484579924842246273980429849231866465199742914443739234907970545627391430574245988833952668866975935990905751771387228520395129667238012022347195496899819620757974421934826333506536278570121010368986889358387887033110838856149092610073776758250490225874108988861110066874284932217547629832199812007386157701726788814597891869701432019054675831814626373257905315119018264506269502048219140740037143281983285596219493012351766344035777943641022379239186947841267273463819402289614055410042138689896632824185444628248607491594788049461219228253157314300361624660731389943381038124012076217753987715543674464705191019981220457219630396618498998536549344400421047118604225109420922693084477465863093956605943036842728768327447059763507507584293226158057961752008558985409380994866095016240984712514542566719037432573757271504464690029827926137276485885707408332061144816870598896817206137416667072922685874681090752727871481051992336311968827083280795887636614096045458377303207669356851495562493512784476260446631675420548716048536924529151381758931861850177136406213950912051886283358126908812040175790323256514247755700324775584514821819719677035380749198025373182723296348584645883377272534261109867388849415481523677059324297252509214146926237470277247905282665588095367066825595078672695292204674559571747174350195645891175450499442399984888553515884121792910024320949011090117078743842392699325706771042840410660469343987618863339629228703119559609756553090092709353071836395027148600998194589911888874865774171987029994548954370030971705808352016397816124522598940957451114115690040339508914168802438234636488752578324023243374776632579433441945575097295962726479409168658617382071229392093543877560317939829063487266580234132099591830138041253700450887607306573754737100984586501483798027274152154959058058765522156369529149542272780081225381869387526605192516569824484526083390525225475712573985870788254625828240608182048439707939149445973481338653180562302248773809204984677043419610274004599766033115428658472649525350218465999739079223011056258626853145726017825159320296480675810713630575695631440308367472553419937264210896994342046189187911346030536480001727556816920676453991301154590124039361465430604223574642187594387611905532938059875687986965381606481217493933788261225514804590814249665037102830284469230815257531164105428435128901916001411103962891189231191618884631341217157214116331535079389305071889556881671863921006372683519299678941022874324957023042971069110301148646383666085467921690526326678779147309074149808243707282172060910768543764036496329829931532213451907081561579422251529073195806434167677886464295031356912476683059930526084391351027486427716880500341185779008388018268722849295489767718565937852978029695840842473011552203278828988992779763648792871990449648904821139437063795278504631604708335922700830784262177167388240551625880187491861526630564195887696291967067193603260387794500984645323202851513184398682364478769764473648764575380263709925029400978040739915015143092377123206440456041086608216218567605176700928842883966488485671572008836246128117824451782477510882314868216256100148961541727333248030443102806513634406399682283776202188900840779161757908429711426203809631605603265388273878109054924996121743618130545238148509547006419335134984911891633585111153820244412180954141232583462765001215098605988732390539460105797870282611619583123197159721067638470249791425259679568920193209196667550603528434089819466619845870920229483680800772488211184273002825939108867791709162753714263244515743260070266648695868850522786678656540613612946935718235863514260605831278456235396412133025656443181340910011241288694958412573942554386778966906717877058785408063476992020461026501275740352441188413371269478874937226717798161629824118050981988825081588090752437155517286545856752761396989065825183362010405030048605628387518423756216698408841616230736573493943339364406772339968751027789477794707890990424157287093953859476497887429623218434159134373819438108333635579360207334033403723336196355164397278863376392320471248554602272168507826100547878225343237124015810589296537299623460448014663427740604713430291079692939103050378260892459598545378035568853869118528131261362114296003132376540145998006944485364566216764379105146009845752669122662781120136264006940542211791131529003294818711209450368635020536639395366848547592672218566863833379450276234389908529617034251245961268058470771304320242021081918570877235101870387336347567166560971614266496665137269141769007543673287247468660350382707509107889182572295453837230014463730721139189894266956372951102058288884581828008056464203788659160447753365766355667051658382486803766825058564425137539153005224258044684555124092236402591518658570380696075307989126849806894047865022991720579139649082105191011207699383921884256081020966045212974743285431726594400554116813621166792871068238828357475006468629395747962861117627297597388629059533411786775707896332360563027316505789769418650522455663589442325182948783896293824384532309134847414291174830503406934989924266172264241689215924381536824255908586046778457140572870706853602627566818867468517098468725530794867273057485486690686186208122304281512442450525369718098722487356290861429217025038606957276072692837155321110634878793742608107468781672536035407097076953034202276813509977489495097717153850561253656496465602513068910114593920605054102238234972075417933449471990913008379739064045174061339927285331788076382204102897562626588131530817247071483986050404781752942191785815609382195997981795292596209654372779177273548733395969461004042928993010089955618147122954458128499849264814653439751463121053258841313169691838245122843533163954312873099862917943165930507280233768348632879084252249159157946146179210571139462164446211769615401677100242105332258954726314247189117645652746023808800187996585953785044478909636954205942701985546849260678294083007228775437502740001097595799895279024174746454712235172308626978271924276890056887672610343994086947176189014652565690155304725568910005395161255636571687881050139735366831162429801984030093708950834677402646018883482818167825474054210919921422047440995584561409924998725144205252998170832474858305146607156379954544489901559588992099152656995583440369244432094908628455698078531349205512940576223270945300970662012698521645787242134878315796416791228135919708853045492060345234752084909064068769513789576292765390943611300479176634332582656685420929836715662180344915120713538671846081330499082382648782913684200880935366564419821133284553062768358923371572504972102059579374967028711311490558850029281005811999934607872419049127642236161552169461685214767675186143423822139791689361932298901317434681297925252626732185102463301701561380282771269656809544270906394091809710011611256685287615676996784007941128639202170678818221192869339775399341449255598268075445927621191901043533164332899564362427220189439171519668225855872524367176365054320132557145671948802555876741214741671554683800791425333129490165466855581216231472478238441835724621826271705180513856788841650288689971685611872409304747029241753711942306752767281996373454666719268663654989003718488798686228781915045343265086572649388264350550075047615263023797791409709436038402159171814370368379749106411247352662448593987641093929116613847472278334572623458207406688665553606876520953929503479736442107932303446935728126137909853039780388820332992697453727318680295489525856151349625449764941317654976562199859611139372329760002808132947611132982355936978162309751401254490260835960245148102313703425142543314075584118432794993539765118372435532587463168972284562137893853305504877288904617512460895273760700309092024222339002100356606600107864550382063104990602457925881399817585635048236655687079024104886929461007035378156035848060843978797865883044864366431493984011197277745915537040052633898056416272672092505620853468309723855251154341404544499105425722462857552191920504147483000446450880982384871201736157801431200875644154156401842907404841900408618516453234274055937490647826430750329742809192899185103420665029127360726641890708533910360725829849136197329007871297454724265609198783261000652347242324625674205926667991309195694836776327538323338767393753240954666571777159749274283458053009890502917517202296662349142103878939944733298237822768305712168895143619065995366703626156159561415610469334036017571796079909357824705240451093609851114233996818569996314796030800245209312263671459905142019591974016755261298605245347761449754086798916014864147505895026959454144133645601001077963888495727171393068153357148676347599511318867183502456357401360774897514677729907599768796752827429853857998955922234955812212120395225318569720182157549344303597681069133459315847413944622034001084129978217227857972681453326694960991304846708087523548458633727452553723989810694584232826589463848344951035710531475323613288297444719269541119096983105981115393528672257807842506480619001608781158939793453200787466520090564060042402672632886353883987345639842535940641401567736729867726225080814175130453664700509993104977138017458116458311616057449025919494429928438997947714151649778622115703240221638484876621425774154028373961589135039006292002369591502476697072804006075350031743870697984429432706479950534079880995212026619672423343838488284481221712428953002353850333740252156822479416810408608431326344874994792712959896766710973891931375960532495204619097626740808693627906541597673082113889093068122106808502424764059361865041589005020817761712257834674591918768087937495547186046838169031725566174007164534251236198180099879986946283971282652571239879270069538502020579448838131950775127153111922911562260268422969985909018533926906138073876293576980004158529806287518307667123673099170714674853504942292779272328194780797383599839815655780089682871441747940605031904697597280153776759191531637859056820172917194107032023781826562972098977586394319127731819862575899866836267733497519019911007343149157260000253763859073920432309098665219239456856974395157994209227074364126185072631761537703150735191726513852796965547224875197680956251172897848383342424328253414028542986432217601950265452453718700117285208032890825108119568861026308856590834607394405020295065375015750772007259852648241723681782959093476987201131380100581131014214943940381652165931377896131463466980561071654310572392385249592800140066062100230796456395280634344599672645797041010278998381942734987247375297745146753848086088355897254882700320623811910342916415801358806974602308502158915173738315080371374663885232790125157467674279329576720849023377817351814665715048682712703444928318712783450964838272179414515204680614440505347318197414895960945760726951253464372161975000810207219168818879597318771102356783507676369509121040062880596589963387102261134562744362848877067555841851568107693790278515395415555267033128699675342521405384333155916497667413639943002889232294155165701047887623484529306142612874565691367548870305512490915057384384643274417164080888348812148797685203580776466503399745930602504544989799524867566756087843246803517320863820673545984495028926266571612455679015727660030254202311533576482487156698167215811236259365844181115945165161068135682328901210846938684710808116167341994025308711136231740642119847498380732763421927795123669724235718788247445268837904379064587545348968451853761751307216446337492517518287335151396762318533167876393089439468028133075610658188055736489009484446983112993023915606681460381654304759150955394940202462502654990860682725518237606598312241244057465436250317349688879455378994456185707753969191212919462869288546934814598103336023510218699573027875858655164907584422814515710464886248935977056952766327947878329321907912440857820307977707560402435197025473313653534185238855613085902855417614092865720284323361700368498438430984116049746145080196529883679643501963796980926417807038521964079634626089392084673630257741157348542325401442993951746577287885682256497900312960213087273699200263707828810279802650240741819474352644134231743593873532302627118769629079957675870940041251894928566084526379206657257934630175008647267861155951331447546980361346705955774481693849646559714867189165236884974576532806668329898020710509582479601854569542727414631938392801214587092601098184063579048956446352368136816845379796603351019607840000216603285426533547767569522684942107588351559900063877417546866601366708041962219569022000507087956716248965280422770904735463068832074855646119525481594552393717595966533110946546529428462779802241625039108507385585030518261936013300435684945569362812457769703297914326483752261794591120943181083917245979066864553405255607219565476420158782089806702787527262751323820874836745418542771613703470342406057684641907854409747289848727109285710325789785118401469529424878039682996186675315476347303083337890520142117018114018515466650754788518997221055000969843699215900153225276066576576655445259686549101278079036770118881529504649537460230300156721365368906461431893088271702728173505291383990796748461875824301782390012730057626329532816036980846367982981969293862421016050364502459567529880396160526173330889673941642522159396628577497370668167906080435952857579222851460500806851682657177026204942088851586909530991218074659205850798918018336503328659184055387506206382819657148792175203281521453933617556006855618815701298936974999818318130264620943588152613574836738996203463880668028190855635119837781453472327114889139989195428933805736866425508469084218412415920528512674651922074106587355479279388102310581111923371379430297831742622631439849174783379238467588235197342824122553666138223681816649490985499242589349718664720710676123977543575425993082108884635923116038694415564054597013936522563162361636902289367062300643698196795442625366270786078899083090154293407243515759312975843151736515234780480324880278909743182311617136034029428210524227711353169536513805314260733050302435596433350425457281561338801970172446294454241024138037364282630683808858655805465596750738812357681492204321034735781699743948040329146653913476735267297785295069269796999878670378918221167415963103114395562565757147725657880954294798156811304997622475332095834680048555856587647403576789568146702797765961505935001539618612150912644093166519172414893484998991077982081308176335894790854245908828333143764699266447471749878581571899111897328001112092802787769676027016027680147197752823120677869374484241697681918347906225494262317669787225803222708065780844231388924886382909230825297817273269555445110976305422074811020754700808081301604304030141019195799704281167937493230993594646473774584814603116311579264988118938118649249686211581164410464214331188265622161755731595764227271649164524850352899215542458326680804730872834804155806252980306653414486780511688840765233663490598847864474537352485567448140886668134976249741367840569101413704276991575731019364746149467586523241618799658068636573196040349218146760557376553508971282147589765538576961586938082432955477558750912747844363197624247155984530157399110589462893670310901105787641586884001661541425465289866238230609150152545593915342703330629258770940639501450999545491414307651722941409846618044529053613875472443961633467291742349130636483939276942891097815137072675282996593617013846697195582252281730757645810975710397026673119369237476854022060489842736564928624198880563976538839477907524444672121991272509640976908776173313607842039726181063043585081474846629962132818387854397430582056777605663776134598140846166741536915443173063271656539504073741908534525006208162293483048169125252626975069877544468269605717473957650936519415240989869870572696247655443201128886799199692596610381203949783555016848868605965549154746029700688609580602513136093538410592821658886756393970074256427861744413843271991524743218800172121935887806109416624538564616596488332717139105231053814121801193070104997778643959022665967364485386980677526141303363384325768619530697073273489401036610978046478655736026380728869606870698857291481346019347472944644841309316033057236973639133262877856355366199034341274056083203648344783503032691221530595472576253528383031115897622752277085319504762396880739736905634033518445534393856117687564237091836308776045418468978720916749565563202346647550151187664383536317365801500192905230406696019442278791316716382066427891306540746564625005493545059982226109289043392875894456420962107762186265843423090724454094652046761962652847484168720109678406492404867001769532219623142685076307477033010900974461927767911520212259895996513990971433501260797395294930942331731795039445001104678806053931293249416639012172894200180746678486315512249956693840523170490441650887453690219188476724257410112357977394762531236061019728151623075482413667198799480494530710631319747365331117559534592841891859061418038701496180595446559252885851354114936064531792416804299517828149956197336442784962079282952117557007701195301226667756548853683696956532302031479897123437313796004287474697231726667035740058539258147652205035630517861600602894003380515895168020407550622397053646530801952252509004356610651628471877726948316265211523304974249078533001909627962705639259091048181184697003768787685879493068820280156816679902367300729586491284515474137340863405225265586855406918002861313188430568976339304917500132417721051257131898477547945575280496933548168448639763347907597978739339140802352018493574991241894697544426039240180627474522647577644385804152358669205636237835372665663516971437772275864319600975828636470165562503563645890761902271660030928671601126631514937175939239190558048383165193113915202778103898937956904207144546619516627903185514550292995046073738757402013791706008893987248413233757930971911155132267313861213748408691962343600798342484340177518754395630993930128479675952317179356991304053737004505287236564667317260880399876078634015694225487403312783758317941942272164254636896659631313681636511429667307317422193848687953368079034846948643109270974493603416602486773353965968665486208649343810312702089419520595276857225308484852771084631848370726543861255985121359314053095739153627529722923939857685259671230702854888597885793217144960434041536925933894435503547880723870762461318099280003659847178662155146414684434160392546937445193062229850888577890634707669010903210356202062300142547703817017053956549267786978331059848020937071308534244413241091210396668432546747157953923340974085630807578287160221847828030403585093637230877687948986685853008673644198244613098656562812062654449991139007630109722294553791819210857409601064982097427489965072688709006682384493526602719090974937854304783599389993525520714568027991833287050312554921800180257961000224157963282144216832265323394624275178732082331851634908149868393808305150933782291546808120825691906292713922940043407813751544701062603608956554361970457704152083097458672405653664608770961386696686477291668690707376382092536920575040520158660890319876947805356741825609883339700692750765395440393919112055245893903248033413025690162499433098189972240561485454770042247346501861644352154894135535788248631638756374165088765392842771244145782015811151384648033504875198039691389625614825106460509072226198658538814309999053895049987970612948092206018596092405073351197641997072328311868522500228276186711804842532026166094065710028595157896680726710597790179526425726029323992412738884110413650492099265766810061657822631168353949538132491893949773221262884259733240135770494465047393008855185756053335580478921639026955071336498076019361161076567253437786635364853524518219003402253838709892129750107847836941088503194512742309343779712515101283119571452252596333162149735064516248521375486429110814974350359084466323203624816764165747729885750395216869055128127137485996618370226706562676629473198363270843670753858188277433349815328458960914315606009386188485033559719619455923010489388295877399113241010738052473964378432719378398671724492845719844517666840805690439589531292821040918770504861241107457446777319212574794106626732225380314090321128784507854131275308627670075070529561784710321410089776691688572855479958087455413853804144181129027816596845749978264219144642072133275212456301649694878089018852281005715240143783959496667533693639634638246157084683474694193286787152728601810863035921502430944935758227483176530682506568037092146441485036392018132275046831988694988192819312045561717407559944456301914042195837985939609568648457710533152159431016581705287622325840970750982688811538704307411050023904351982549232528307173084297052841884189507130742221380165997783046212164523982010877857245488014175379149769204456293996585311065174527576079779959480849426249033775851774642814810466477826092426689078781875568119783096446451152330476311139838008357250778474054090435429399854507791122474091585065377967655194553207718931082013785092569126013506760142345331199452705506947293867464338568886714531803599131695205162039496595970276193332930240075772778301117271508843572169446595556051313127386749443089699911425243149586157761090640436283214964329454191737601546849486361093388901671739785642038670507787182150274505876232854141874657291517560025122369031806876858649831076635155626726655747630084962972384848134285249332305131935767361420823738680109653204244406783346356816286581182445621103381214311513783982084685501929549812245563815342966168450137792921014957492659342731995847886578459603900337081684190346569047289441929766246479999379798773133319863360431724803115118722062979931446176728611175065214041616971631349298494245714328534033852413674510205118753789667246675654367218206961071894881326526690013446027093086414282517174726970890502116481390154964212080509029037797984003794315010622317081858232556499915541412468217660043631901843313192796554808310849363650316563061163887929643054471789997377079792258471518772635779967241217424910473968574945059846481523240015531010947167490580175613635885495120053136022547089048567264595526139530189965649268489503121703292372363074537338006007654515425214012683335165461928444486110119651088720481327880229836804981950002983240833845480250582895337917539772580789990658308900812491030226112808974667195863396588440374887697038847118341333640740013050883451781498208601476953857978382821888668278023443349162347120282180848711480744827381957380697684310068606876404575082239690094440093552139257159737501205427454182058161799109644838379050682019690561461210223317203275450065543605472363856910055980560153272308749403084234001702710128156413829694077867127390514932904306083506364833003374102414176075355217573564133670036763857278837983850549630706132910369484454906756618704759290256815576522995799028652983263224177625249786976246236686160973484572241347037951019573211611174027237085077125475981361015094136081983735195360064004607285022625801198364249310036677453361507735723110062785013366505290765759602174309927160020825315573635847238460224104180361825884974968046507678392492869461420728180664019569730767708731149852854742503715914660313650645216227587512388174244554302883279703253152610430841202580916809954128012831882500083042394742493110712817728988533991168389003963158137449906930283844443629588790224108636903930187259693303040644909925631674354294340857907798939150786518605938279104749483019945089559513925894068034016318527926059839641477056240358777369065273506696521028272717809224503415584541747363235317205108906403646332118248359820919124113240867643271795511810686977554964597242897389998741019838601469445993417135200628701966443282423174500914112041066248339326626946379504282232833729589977234726475290680518586710535133964668649241090715547629638445416859421907733313624130196011870173755853184024948846513156694619512576871714300061795546962997238948798996650755762281229528179643232877268245899709674852600062975639170939995321320392129610891150031352105261386519195823490729865991777428383191988800287833942569120791976227613857390770249260659644650877725810954815365499801323275604778881645125219430084758154980961366897547586348511464295485796654308017581936378464797822680253372969248300888932573068251213260189611081977121145919215867909800970693541125088105828044141236170958632251847222518656061286512110757581034659835107039767624430043278287570097607834850311411916075319736939529160843944005460959355763772740801887450949934279815269289416025840070775034515639073053737138011708056541699176958935003145446666829240049998983818302543501971121912678472752080696054842393573670187220454944881761633227435228838847522948220991499437844127794768841786354543868415386949100542363387555534048774469590243867861316232667320802795680846663405274262494583480882274661310701847221421089432999364069810356857186079518799082275751989829917991480504917649021252199219294903295633858909387864242433581707919218059911924337469356226083865373706539511341160317105079949058166528123489731294371533752230052941573647924510901727173034762764839451897936702865256553910088016508198444414399683008371242182320251309734822262839561581607482137033869953025661426982136744331078237724720562405322068270351357629100622454313093796979562672184257154191089322970963606862630991697392242324637364563168623584122997012288915569177995371605911279097894264738963648785195203769519572855250727537203732096717888695258954289754496068334607087887026088312812174644055733868497436270768157520723637198415462109662764380826740407420360117378528624081080254360142228876713704077400916592720792865614494783701511100274117386993723362924477782069767189892881724458087880619655704641453822325652478061031940679760673453120574665111624093413343568573470586047868221810072196271645667123478470704925048271401917394353691810022925814742233959000273450336604334076396855512516398648273997807160478124485329526513327977999549703064079536957359342710999549642756546628498421542068377357717833516486412207945093365803015380074040408137398492507627382214667251685411663558133741863639078036113215914315527991307615534860896232491536505700348617795597485938235721998767168765494291620451694583652271010977033480995478024858902685976078435752290591048115443851107040053834860778867843203339778358951284840637191736976364495156069910542491137309888980741433349672287744726212356723298382730574636887263860777556374394127788856435066665878723575590016671784053679028874886889757277614814604677326083121429266972577096009742635314866510856292251348219883747586715852512659934598733219522302082553003131437456632344159525163457914380773441890906035755254811007937508405707732809227853492321732737926760570376477101360927148844932489685374099062644665909915513295154851756909679660235517382824229409477488861813527980689864363026831801405264981558492451515831448954540691566450451409776795245078122411610429775871427362573123740655036244650363741668909524609223873792866174523207849733132836420424811587744038607064371550276258256172313041611578985219818454385789124544378628199418178751367630311549165825029785524867456978873067266910807704003504545983168292356644808165225459203079602084346492667847355961146484075315583099268249650077957083622437154110589305358516155456258456140553746509808160006418573660842932095487089473426114571005063437794803621504276242794228386821208081264740797144863259787411797376042356707817706673481368486579436517867894873579447328652134129134486265957110340340936773405401361239392413800286426069134074278383689734815904062738441106298753368337092406884259085684403228443199940010649875281871128528409328723503243629434248271584368156782368768736774381257520937497235764328379148440535141624435355202892446954793539334587949951041915816401090034647215245219638858430685604956596439700661918599071608214316441388626993701812057164052961596327236124170011310992611166722570627982963790834887509981699198935401244219636549700503665608741163315515477337504379012869847513785072821492393360110978482713156228453742965580790170795138817826802599662870816856211473192938213881998276707418114541630742393333538744834776662124199347862623364888318079522845967446016083930935091157985151280691179578840108436560444865117211543572503020290165693116922583325323590824902094781081143019379651111801584895346065769584554826326141622552179695039011699322173109616821604181628770893943178712219771380251354108304124152973875881354384968067337526162850055223520590922917714566423980555461254763504642584460693563633353287832424855703325544545797202981501774405806903579594611379437987854920072244777091221887012986362780222322657975629443499562275976857159874510600379888913184463743776801539586698397676824667038501319815933057288517048202661953421502105539163722310651171679117506034376122186936243151936803169685200303053992461045481036165776536192420975000370196269669906959148666671906797807371605989092816049836929368537832727073732872146380864464852412375176751496561897154177746739170441819839346817457962045636497248457950186439667845784401345468909001485213050041596116809390182241733367432354835934657621142807577165058090740414600191896897981281114706779049169069045687103397105207018333333246295800039806629565812946469526772915895623709198622050448925619507236994174123889046751634394310119366162618146247320562796023075732336165357384386871123939541303786354520159133623816077400720416643741509275361656687659647109829462886727603144340290261892466810081510411412134604671655354653001862309671948264510617413730339204757591586708691946424477727322225282947910243439959927210941019321357738501381071242201711437985032755534440561372964651073914471054829862984353525433315193798434048259408406356937261107651204441422875700195556532771649643901423257776630008691753996409553117177088082249930693862132335562317666758478055046021996237679730190660026180832013469198383917592890433323158013762592981445835897402384749852214147851095865100248505990977572431995561620643230452295189252143881681058419030684691929084466726303930178134896517772018343002763372206199502474722742058598994720538463517620403417156314958201132877170195283652434622078075537174274942817999052119503191242066501466348657145894079775014057608138435833254294819101744518678268548141970532576944903553310630262567816562607755332948602641432798361306526966377786800256598219565542334582117523807460156002462043905474374724938943264272078224584514060041428127381389581767173480317101674935796721303915478388798296991220493921041576052739434656961943680449549629280810256081429115835433169988038696088846732751889611421597036034024507203905125023080743717279778260906781095832592371191796961310496978003153683188383736553482790985573600416773337415781301659454610287773248323045801540911704839959247341542543150611884672080540392236521186531206770869501837581394232605698136430180493169859909199226029132051524588161870955005567405248702689894553683851624497139763343753595793884321450628157921922892712208013987154368440652977426185407102543999890192425459183344998286491507190628550614683727709211891074024906277293214298174459022011361011535981570285190309050614509278025096906182382144562793722308919848227115001006929517068474163508168771458584198299878451447297715098147152304990850821416061077979986868915319277191861502017609347256397099632533183906877819233902272046652390112628119200487445242022298645687696162102363504351915347855729083272355807128536559480877336589480700495099135443128955327399254190436876469198764755567281710933205486053149776200399515310422656934924001492187282464498879154175908333501001953006783185982772064343402360045026177066203243151044502707524552719387512287828783275785932426966157304466191460674363226673666958773854626299178391443812157195351349449566702049458532662747934559450833676585148654979508149828202985225872795710212601738313667646416032983056811554098346926822040161488678386278928006237360022477019403371682499369237510331661956764807949382285364404538573407515118093824457128664872750729869155983334779462383537681491716290178735184757320187240851076770070454599025766004388155405931961211481086167903356703394707487478536921671211254559315828153658344695662313891527142402430448362887017352610677957407327809859345509207553612278547142050479936162923993178038162828650966253910256736740191929417491621673943260070097542921137004500229480253476809760453731816915655026373550187891738120151170297641875493822902558631417143512056250660681606263979419155289016004591256984218249607313403531508370588781322309111745750673447644834909902480446525289998992058918331610386373271926519423446230341602212915049518711271490301617426359966816729357803201581429135130935408750890967714148098331856962824909271177426192695571845671881363865305078234776134268520535439760711939914379815767459163601481324279760517631870297254380891512156596323312957231607358841572343463599653090765270163296353774704645280148502687404218724337495568555272540740758455205051706540098897089580382427019496589814881493552915559939643484704110085923743953908816484159747700086066698092472506429425617715587116877764801987150502975240748698054829243712762535377893857554149983563866586780794621975508964370490104616254474579866327423094041888584594803917349041772235099425303365844455229231433559209466900451055844879888507931443613207461225065674974625651899456881851048741598012514748084533053039997323000517174492416626602049215495923989931014185506009853273102263191721180768444694178433715238108203427369387488749888927553588862680299142444216170156095526939029840042093486403351931198370268625753113645881691829799290267621435274725098033603921773926334256531891080086067701608601614732751547041532338485991674209674908228089302098604718322204537341755137879032466264394738139711491614014674228322846568376248378540871588528075598031734366741193808286177220966592474407086430238243912611704746405405520747514028539745650557633123417959859288128432194800395606645247615479860898211106838964751209288359763259095862855920079260394994226026606483842916071802236878029378151752217552707174068109252076339506300497741224775642318456295499057834340243037949021374690815006149518411170198275534279143851458567851888504812512570061120036565632311379834970225200738472112925680920668120208515443319009019228611516437121132941407741579719300510351521407311363987125203669297329805218135526877877310154502714096800291692707283946197778673616117399527350540790619744101478700745760833404657993351713407124456649435095666608098249477611504087764568954827732216404811514430050259535772366780045867456538687880922372325488800975207874100886198558688012199029969978915779850458176397822058463317961607850718534700485659372859386121361957260268189367116831530673867738454254972847870055036137546706023600314267017084719437530306434359198192344754315788939845025644352356494555479111578822384849970010159845702523412335620729636753821305151740653924493047076572699963969367870650695702237532012781931828808454091803855655593273147427375501224220449230609141487401454430186716477597544786089747978072538148667693902491402690758384278399768967355466428685139357444188377194401164332295012791808833173374623994836727195319063340996508411819914051117967648425946006695636401031278021334055348764862591624348114251091013231025093717691351215291076042750636715525142574770148194809540120142279359126946531863294006402505817748942700115012619481634055000459847388179257975653248096650671046793846971693114600058382401739872317307920674807940327575833008307726451086511558538716667296761775013362422335105848433007083593979005524741581014938111310738409577191909486895323663249920374554797413779491734526690701206301041717134010534779757688985400931650228452528994120495165627152379685251360551663079294517075390992293168227594108134305781534496550086144199664799534968765068755403484194930682586506094581801680474155699762878150139856029047736618038760682235843038093890342584146727396869936024112278859211421483924944073106702839587029435170646182487636208683658010709404549624224492581247528494861865777907176446391703755532195486111457333547480187647511780116693483302583293567138540355274733261859752458199043626317626428928109805196591600773404658350552356587412140506534046270182540352880118999852551376288010094822770051161044630103608295468401719478532977962021231055610576403745008595912385147774715682328364130387443588319393393022355574005630065439256373570102433400315048376904299283280892745136923002786947890571560660081588210055930507594905553772864778697523639729924723521619046564559927594441648469055671567713607384921055921005828016242363965908785909140172258806246360564675456374739559550722897161575386171288722745731368373661596775086374506906281811137218882407030351218465015377696766293472961414385454558820912720692410805294686211292192020864829447214200515845673459608284038236163062004539285831976617065513093405265333784095811279012031890601025550656425226169083881506143940982110199752748117892328558521314872443136904762343670532176026340432010541264699804331893299370549641609761471372461259791342558961028195862933829191984963484558312226640594668713287395878151898161101184808791834568329773076950444266584760266117291427304258440317449910424809888211085723312432723786560777033571594689479469330509959544797112032167015104889803078167536928416519462353781782485897421910531735938249366015383078926340305769474108408051922738708497401117677309023781974041618638808379482139852969526871628389253129029065804188680175065967761040190011159350156744095495892417103734493251494681441604531137577105858016647374705461285951780697291156151812840334900435800487062115074997578424346951572831252080554759752521838501918313762205920572201165515488734536151995304963845111912852996945114090110977251733521686555261055795532678408068310985695361322482339943951142399092445878244930732838364199842631950452183978485885024264911600292116467193308900757406162771103671391557915248039594791497325868246649573911946950849785219437766766316680153239710024867902452807240723870479214298282428175874751235547309759951880569963547158933126525938659908204624185004565490838734933083017351225144147113817086663126471841508620398109803442941700228489195246108457688483668118861781360974146137728411846775492287800118291616057737921072797745134364642565070968332249919314603313801283065362898048259026855209562031236293394865655181913112998989332231810074445633508895370090296068027341381644409585643286812029279466257862900798179384085992693097201188266101887671132027675595978620664851083086306089215622328209409852167740465365938078642213230288812976022900808996601297215060564002928680725990945991195681456877727699985411656354420079053222484730668649856805546526738533098424078936519696752416522098237446386904070035359311786950086292099240151919223174295699706292098165245849069769918539506696230763202963469579717598319459073851122763390265869608386441968921075851592729518432229864190471485828594707866906477599537631329662824147558290159574659211135637653342168460098186680798310966564673218617933091149018989986811466247353438645022297473690315111534399638822692600310382599870892593839914755003293084331212780123393884634329001411570452675160232492480369543970128646139611094920958821162766263717851462869063086480904426404078990881838340059377505877728374914924740287885884108620476022843823734880029206980133044471126596264428089332099546955136159570338680434906429723210435763350164336306298931853281936595717831494590754606612034854512182447009179909844003534066938050294361436333852821945882698999147386160903496009664062625333860608361266123964225385123228093901956077070206103858420369632705363312559085145347833889244508096638339288130785645737467009860228312785815872605101049986999177363266168937863761952732547557384750344996542443742108271183052583121709925319472809163630267160286633825872061326487179796395368253996604203751551448255114356836055596965330056003607148194835784750469858773236163301116444229769730597826491792791714452579384407653788425518579287542846027424873650564345426511821669537244958687848211306724652989857523444024506169181275649627062895321763353384401202026992524189097226610479337776443860944397084630541325913695952564253829508370654329703761221770620821907586043064980294907750821075288302217809170807544910679714557871719978478597476595540488606899389357725265301461459549935890598438263062318646021106589297794573910772286469369705184914469633423188289055121422025549089093134754707338754511706787158213164912313133836204646693288209535701705910893333171885134032092401262350407428503021994072270250188792442137844705590954933184470469935765824835765658121017754439713878164507021549759065516283010056996946062485104145066939780260340691008397264023562172536038287158464259671811984186874400995153682388849553601085087231639103769197641128401210972953532777927339901654487476284490646419339194901403858026929214846594581787837473547935167523957182343152978075086232300505534398965216132021869533898967197805809889482483229448051009106312574987086276522280470441801642272845471884997929355769933751573962782363616792253349251548406338283560378468340665895300890425106579337306681558949365728978877260122282965971821509658510440186537217979247024588714932980349073558585156355995840806907742767091060949256980596040051590317662675638348279848356164837729959679953471139949830845336231007030318789227592837222047188634100888929074248593068336830051828040143380202485353050041000837557007930869831874899357230252461429413222291153493927967730712923757765494810856750957228030202269011275028732828383501145811393861887617718683320930211688483233655068444205273864456830544813958774662425247852639058214605629960833662547803527842903347029287704977434976079913290323108139944382277054819553416866249807831339210975392739573222792646992790414997372462293752124421500509070676989270391341675024718396670334536855956966754937449856579996935679564916489737278217690915225737924308780143046163845624647870551559112392708321335085663397547974490565070636641971631801685878320315613411256869334064003935645469127844831822159023175994353209178259157958493927161259855231334160382869269437379016285582715870215741553645881570124696816459753820828881185495402380034576064868797574469070938729705887973813127006908542108435009980810360792473099400041832106662632207910390294289768794809583089378136162401336655981261607911000729718058127531071377909265026819416665819820694083124346618013149254843357737769088803005727640610797308482465096644108817436468752560066080615015571682249839515565528329822414164590339349636357239504984050796772983294743041300279955315357056618651648351806129141230991310999475911050160266460067186945129453431532038358839749574375551614566345048672616893772649608330226398953234685197050502106802854862170997669327351449692769612544860644885007757788529016747603429557633061158364524979796781053685062284722243873122350666389494896084943159061317158157729382271838962635026233799168300533520740318845169821140651180815414685458949264675708045962851627372566067023209346565327842112346343491628377229297269788775132706926713700165282481661325805903918058851700653045882590555005464679612642702900897221288099735740294235006712800691885626479138604740095178667901486371044945766509894215563280187095683347161988336894561081897960867677058140795314144357029576685463907668700433152491557579510661308832281834227681637559821835872322438820899965594567042927808963569083224653600844204693213732807973796046785523643796149110686482593566353871610736567886380506185694796596106879108585414698350349787224297581753106464390986255343535289795661250946418152919391980405179961093794133555868535802612107148146270317491478765024256087757129819783711276434474187643593528727112381820693068474754505664089825662537234270057581071912935637775791747185411610150452574366159979530847774564526412032111801996737200104614324478284035066037017923174245968415964244031494475802481153343322451343134296056858185459396677024502856397577385466008040898479652586628136088661749313483193861710731529693936712063937735610372098274581411224574360846385401487295494615113028896002186387197808870871562235734183932957254754524654363877096035620680103407677787201928376031894723319003515760817062918012403623946906298361843579989145538586922101449567502416270890390330064976636117703218401923581307238004133295185134570873023679903080556822039353796055904261547508976499686584948423078586336427614231348737950517362793218002617453794732688136104851970938520368708974862852551275339866351411953230333661684499697188179622172092250140081382054093005542919133659526787032485028943050620915414537413671323592227613377752914052368822011064590486604555164520827750753031276805290730243023454361990428138324731037965096989282775997893951666339436416232882608992202250526867697728357518116896436401976049554148275619318244722916323381099276407606598094718580732086164615942042149244321183318306727984604914405702559777318409511298956313698236627165635936658404842679807162721282103547503950094989210072779041213822918541694161814114509559406887663554366650152253775471421001178072947787983824984461802555506110250439621136794000128674806654457254711553663578172521650378531813008094290894513835596577860557127779033988552756317809615867335432540294483999824078502867135525786454647545133574237209770407488599962326754980803972136108315857067117430259438777173096397318262053930274082015331244216748464530761041434661685405194423713764266072252211068247248841350586997457944239921250587532446877127848132910274998792517057487541901524309823077992904360089769505666154423047805591841154098440591275523726891117285331680860870459679398695338212454998878768507605658406762760540931526325865936891509872347473323616737098388131064475519714541092662596660628190094244255313510047139708060972509310771602403332665003853904254665817233897384213442666293713004010610778890059771132305319401200003514831549722265811408190344907738738404113937259262885363798038047331834843930094527921386229247865831625041848926939597266713506185605318020736561116439101657939336779808700761998711056490695459398089320776539202032258203425446797415387505802451864066165708448326127841428844323536588515867184787662766052524683960514949360293961648436615633974319337385699260816081858809189160480076480517301082548930325766977247889892200156531497234538015361994661133962630081586415719337753136305541405739262980968596867985993496040268299012058955311901224624529517598760198360022647869833684100803632141052754873699806114650462557030954846888097573351244610869840643564409950201522050062167136608218784500589869431046000727592695277491870273951673199084825872631452682587214513617490559768432357990171408112253276411659952911220435331309366803862809487653417080002303718949484667901902741085579451234848196253217845242706754654694716360107946357621246829825611912745803423062218891751234231441263268823618694201150846254036342431549196419688330965021617723587904861434114988654241977817814679538475718625867516954153831987569055496341730852167317295373572039362527852979081186048913778219224838489067912262542106497706761398186589235677693179976060036290534857134267791860724152778564862830471927817859543009424601013195289149621516869092393719621968208561361469847384934181890764104179522790287066278816900601880223412692848341318318013028630226975918036456473286436759320833342648667207057760594136830253970445554723132625254871369040354529477943613869707322388656260808016834332798696365125079352405394800517855771539306309914491653709427211935301536473638241815892943387006099142356862399950262290837414978007285253247614717205520590346866910775500813555288167873006316976774332503908002760029029769253980779135756761599228857514737577121042788432928251130600883494865407636797504792016083874782472618814950857814115998770447497110905828146876718877371911959101135397479886925960075989829441764301997730142375229407939712546771125758656537778043419539631096565516666859474541580582715120737292760034520355540111707451212470798306314253844470717344808812619606990465642362751264030869330574015684789297971991123233472796999190722395792417329303277583702114618800546705134492915661927715540623168993252980007938265779641871687962944562031346697103806035439794820280675921758622571731582094699191633795437904403498667814281423966215920424001913824100459001800366724469199194177873220437905634746391329922043581303241277498628024163760963878313033723274333842549189314518823407258149927772174748510304338686495135040958183322364356843579437630411831109204957072106163249675688795771420429226755967265362415957470574893299802819859974385648655013777365876942728299304586554698195703308821701938090955410731874420845606495218888599944945320356629856943246524417683456981144029588726174991747089742413700725528067175427696060103806548858794543096462291482408148229457593384395899589729223592487461683296179138271824326375902949011774758560704369858079171852018578644013631485478982228068202369971516908340776798767002026696351542608783810917892746507430336954036803245741813121924339771499903195831285055184187007162142002264255094356592802981517439403079657843461895176683463670492709468846437448959623925638703282033913854358585833843813979425684008123935132367482990652834110824220494125536692650224392434791371959264006875047271512096425112511148137934628803628366714159127012875920193322226738943095249385881869762857684801368266020991525841195747005648045161590455580318391248674139750922571328044617022276549879861727571922934394564305896880395733317778872118121588693804253492654569861314018327065966478450274596676599553361418420354572485898786870386459674704768307836191947387894854946707979913556137031019728195825107517583641596436024380055365946186362166393860516274611093269330908729405222079014309917556240431323057293007750955327246885141727090219933797710370498260314581321502231532768427521732525108539394051075688709780186769175218416548370183874323197766468941221346002007699851308607278922729877513402212007655173575202099088475357476955591728850205941291748179549797656494852589286902523446327963366850583210926066883152089517952743764398462365734210871487143782053266692343104183614030234333048000919476854084783432618942612520115518703706474429485831655348414290187778850440043817571139101013580101798192304927733668304665035783728050757252432170438156637689403169947912093143999526134588783058370533132445670349934516018216774681298722609019328508159432737244443298727291180852673187838580718370166590753801723851286463407697256320825625107135006277533036168786331549112957972924249952486481207637813923346041884907319361809527107214209615995390959559263046396944444497217045308319533373598264258266400768969781734023630552601784128742766981291255053454595881273226341715028182297069826813877303998049117264324210950240168788228393519979215283953448846382147817447551935079992250465104936934290399907825235382516442799165283758693247103743514876979489901048678052544510077295490719136683132007411319829996044084179707879002576771842920674585397295627496472003990837593928918295643338079151362154600788881254547365775245457979397112982393407729568304640033923710386248073815553822963642492641840888317672370116016024181225661782634200156752126715942683143568422958065157557001439059145922420489598636267751012686329877410230901158602060672248173984652070954105657921661798023772120126441413944077369482227044254451540074144939741880419954152516293143103712033552019353848261157531485373072298494042652605705808244490030524764916109726147543381593740563194030732065908224935962191817955836729084889024039755128994325809574298332163866606011322237375099076116977665443382175499776181910780090821262037018299129097320056417153098592642041580675012298389319342546285063370848677911439678957111663804280019367949074360997653312843313713970645040199877753576235084066186157243595665511411446919603072235733933348174613173317506976874512342913594724492429377594428969857963364206506698620900039413294771134911788278021204894870982595823041849852570115322571508672223796805435039454017258688245395587243672122349467845742345839516057591700269432847627229817997323602059761764214754343003920419691945591698691706000643214119993180356629981367395541285185574354017334487351299159099893042398717018329000314759791044843394060265617455890497273568468910790894667802517456709320631710532471558976532945173225204037871721754653540486742742983195513239128223204427595011493883790945435608815375792806436421696107814780587460929973043254440102201133104925161542127428622123776801442344482288195405405750314061472192407949370768576545291147889730610864847318830625622928349073784021869335945103352315258691202681028954431142182115695542305102816325821038609576172422343578748134031375556994572907857745862134572705173507710277336602398872975189507822234259246291152303028274213117150246833321098051742128939464460829179510971297498329655592110190184308778792737832726844656595008995844894929631648987323944967172566123722845851570084867500916120920100147803682691635650088592966804311255162478620875100672980743601949533368336084646220093759495039152887728526895801629379850993334826493006502256548562866010288038865655739481814841775507557412173206810403722725301556993978299015548424419611602337304391066314850645339446955166579033036447372736694185949964545019123893013919903011474792670691733015348686572397213756587802843141760589680609915561135236643695532093910585528037554898330336070372817395553813806920360863485226429490682805054406456182560356148592088357125824758825843889606246146985328739099342024269604181658029004968644259525353386553575964444701916076894041470611992777862833907952712519344260504105979692817081095044984302943287633544794061367994222239020734629460191004936109553527842410288342813909836412770856928188006058611715751715779863729598877172170579352710242910042273339183950710472822536419106821405930450944209872591710111758314348025635112453047797043578381426086686069445481759859094003645938961775902517353009045934987539881653616027969997093146015935465855829807630512353600264026811561461039396185790499985360266107812770458176383001012903314327456618408751981947267290162501788933331085764193603180185555713598435460169293420591687647986805435518450867912728625339176148927422045286122210766492516045044682922315313574861772861648894121666211695282702810432982848679926204022565202619215348905511159344904608366905819888206704321123576676051475482345703754053645344073665623684510779294753389605123966437185583320912578772985080503796888880947754328601018648065814926273612131463595320686776386022849187075907953107228404829702497844941361014381097733298201443737920540655651639596875270578028096019520236330392384085905076247679626343610476107246849711694091943425220462182001215243320554060171975022826235656107356620902900774606581761008682417695992943123793949526923773720336428920688606725002075850376096189792122466148862993381318858569343154645451315231982602573778017519391295996910187628532448292335827346356027143685156959991360675721185759342459523013796531280406756912551046431286142720376870489213644132182460194962152046458344183164312286031068649969978712226274424367636510969151654599663556994340418114611242637567644103451949406326644293777476573772252787559619482387179230131250495993877899721607482041686004479447190020144249473672139474623767887769954708601389847823815462810124080166398231666121552078296168403854798875832729031633491752895767814674400956573274015086534186010825752842738187322373245776941852261240404359636084014249970879211467244661007865804722658379058318595204565076275820107522682040349116733842359570798375161558119793491562469660175655870148410464657018107928118504190418937390373804156170487471805064482957455252908103358018961980592808605348727872133342508908827756532820414156105046933801277869265458399849365884046012244498051858608138983867817079912642639973196285942881869831182369975725288913878509750030441121911632903286897136348226482943079597096130538320521191989054648919676801644465237126997245274378213364310710115543217468401919772443684173296259003594408357082562527414805216691886726782976826272260002321658680241261135265821066143998286747940905139978047062872164781030510196321774272148225764185246813485342009471680806525433637467813486152851075301512378544486550735460396324996705729101855069750012165032325432133486465440369618523463865213739779082598592980378704440417275226667137855120601007912557024362014896927062684999475011870040245981218625701686681057840631541566427098947593698372911619683028250456696221966797967993390450346803644566462085844185852914733813189118410813609454245857035148972367082845100534213251017505864702061835832632476981661670594988017301572875682722423469176061792650104040193651296546520452914254966388329672271085889131792393425648001756948981459615117890128627441890150068530115621005480460016531513494633447509936849288931903356546094072233308033803134335673480079893485081354190018863137509779471219078179787481032791462915475130095108123461407919192684038980946428017279627670446663281349199563621533524977677849819850276947363850064583228205638998163965631190041420238692233162933378649657836052091444960900353005237773829937720803463901273884788796025033638441159015726981253317464884132995326868486763848970253325025059929524030712065263296337249808230349350121751291516099193007015923505149789281741858369731608862659511248493629419620119313022564651375687572861188380879369896813739874961095957305302593368282925383927853366337200714939415655583308718804029166511688958444077259385639428624471650264719583022146764863566017122343211170254441774204351115500066199530748228057714526459705274247858158296088904216515945718768836184219580022007724634459980839521716909890197678258580343391741581592546069715239316017373397008562926725082448753944061782683699530137411807631933481732615798424875982432598469208031710164861886977326062407687473312338740062063526738465450528116133075172501160173078731464877387916641398704569279907149892252491216840411922523858438700684989059825740423705487489937095812833331066202993586192833951514497904520055848164031605617597692273166422316369502516694335177251993766411889948454086865212102049910328425565309060983825234703488526550032670384394555375028294707458107953520816919856467976792233510103608297876093278684212605064291799843984323379650373646739633869809753607098835980753697335800264204944969012150468125148862347434345762252783835021892987207433349058407653563285986491317532043804910594617028305228574700569939222754961014359156870585777369643833350313743050989806553022189044887046213532573957070151295514819117453323152510190340537396850704006508053819768731263946988779345197300221412920174212121293349505521946839454419896953498585719478652651107283249314424520169295049705475706494802525575944342765212568561460984229085971975332425447107281452093259415637552494265103555089568170601288792171724608698585325889440830375946555581208998724610138599590497857447461215373126651265382279282127266185824860105987213400211461513145420863693060655799037337607725674022015524638914481193389314132505156818540865675979577427508403881395805432254019641586303334192170973963757634970458328872884025821558079495608487590448236723299378794468061533309732965544895227360091558984431299436509135250609552490389185962804700832687605320288220151617548281715459808170901839463753509570735338091527633799330675290579491701175840794772357256589027246623210498850291895343670374998217967983867115886129827764499549141046393120875988494523395368500027532956509699906006271134320203572141801075076985420084128725059137661744214909958413319788447377047850762761403896402877671602555607529619572574099163496770205288143785822689262507452705008238966549887338907398974752122861839882750375390009230201567483330578879354148042555061678536534316363322702399766986121285127863148971330028501576032326666155423434332986917575199685815718579825585764246507270274775062190898513954799469962557415688002529427206066017355191110382781583012014741042109751931072417264525398016489370594442194741929377955089373671834350475571237949654774238950301927402122272862444262194687199038229238833050578652479685656064106804644270715749888053493866972049221637427748547953180492715006726294629439842612161055758367270984666138145027332791186557885578351777483071588684860480871108128091070393818313639059794664970483808962902634104522447228160736018115263897642084643009912493835003122705256079425157644704277352715794215894909454656698722733749974162596450181257437164965021477922612782826099549150912848693754815279440101588014894604260099097916288530950365875256026421975808856851235138775319765042935079952450807265235007410996198674972421829787223678042832609884557800336920635983897329782683543652510430537443025998935668864246967591663774337819290775916869463222705208153541877368613034774616232120234819813972075148256734243824122455244918819617039173394557213981522843707826188671127247613046656447134892725736911215454323998236032359177653381750161181567818749442709261707972402856787831808141001677400706397991957252207494985954535183753231042396257287097943673679866716733158258385619440382204964511031417358653777078554313210210791651404086143194546939155688487270704988487409781609591033426602169584915483656614649163857939432373450923893521637916235561569077756118748836387458926712436142955178444968150721714633147791681778709484797684059050023692347517386882368287228629282410553671346348830936798154291788952659520876719018646506239293862161144778198723943090013014054370675019644875239886880752485617328553176211592198297912379221750394687131644998259965356184585301347762235902373883451399214797322960580868241691926317076419430742327651031932292367121564316239191344308964064729121388388687724210405838916048109822094150691738354145095654970279570065488342111554924298149367127319109461891467143736096277482800049065892310369242517557161430164523886808957453191538089516089445175451559057290333770266893740804701370648989084806907519051155338912023214754470076472431192164628751081265408180386026772949391320199773720959483344551288403711671588938219072730047124938135688174726734742518404039027865163134577926095544827782913061214185789142924899859670173602350591868257244643068197693963940440661816423163289274485914771344806094135350639928185859893843562196017077902219604971431181486975669165229462509603455448745444868917320858800545483588015575289210296073859320275556561732836045067627610098165810605974064594549618568400716516862189254794575311314320726248228742266869304272405425179217936771242245887183395163569791862727765476292271595951422714799178708697310876983949928484857176804409628334346992479703918979770426564177998477630993982965401657816334954360520194823193887830134468536188950865682683092457913176712934239896404652769289078576433819290110196699170385994668932257506038569898591985353490852398537596052215455055953946866413641146087803664323223647172301018639992665639756719654586637902990763120705587534851227312778582171127789587880305985077441235856395816655763890136119490811463745118505267824760781514770565335562351746823203060099127575963802145209363372940802677398528384462441055676039682690326918616278613525682849231093065274102440501472745803260910817905653650587029576665314838357818287138389768385961287288117695431135114095474018667089574667911420837772856187961648737484968666461872514964116308127390153199451855054073898706651234503007733070552296275558455251193835817169163424944256009677378057658964825450005562439680724891827450811776220210269445714037538144274410292464853765131533228352079137637014995197286966312059985386954059151062130949803643220463158170865369908235368315630737397137347304232428406029429542417000022378199755420900855917563100167528468868689703439137191866258626937275185257178204506932421082395308453112183272792343832226337547652447261913829473976124917848752647535774769484805997877465744841297013029356188050337465111659570786750411381122073956180191947756694155226157204260586442334538327721425113352082232943937643543767280993936026624317275238170727313195005113467318767454307632761886300401263962042388934753256996545430398207016028026877990158593036447399448131540547838646488698092026496223107034135709473476224167335921755271570325860387132163281272391675721561299414817111462953874955120251701508467984061366173913914735004217893322677345393170345697577734258668335098270139095258387566142320948752331280712516631722368960670267766510641805038351368727632136462680650382067228303505495982234665081312919032857248408870502699678043177180507861661865901860428938028621346957045815584772967540300519284541269192713950047523839548902769147866915481730037041559506279011221764363446713477087630083376505772439939051946303200908714602404235974100807683040185669573872935710157314646586089405996639956982928861812488572647936539980208373375474741667569126896197962790495723667085169321197123505787636181895427826491787931152733203713233905133305933296492261147805541072205237378505550200009668445056861148186103932393156131853474662892253674610363454598692930525064219782206341467475119908129774634350714512217102753036049525311530592779182332356854706095471910079456688158022017191658994405225062462358650742250321325118683049424254650743375951296808277799231262146308841599800418809684363616875546973684116880488710843966555088858874267431643064539965316045285465230706173135940324188115237403168247953930650190574271487089036812901563730964270820989744601791668869867375115886396688025124972915544529445148362537501630518359530092798796083356656624472315115655622795776045180595539967966085371564347917042421279319821098380689384895475755485326324228014290067033732295233046458636361823370587004532389801253125982840787032948206568226400527014871428131150578748599939543257233798876244451749679095407898551049149560558262818322586003362430382935609598533723332616721380785539524467172978009708042797916646011797626834141864726592347798877243442531959489246281908536156677772885663201284740853937799368335130142804648324024554218127183848229668331030623298335890631915850086453115105070206310894323462065380572828603088563896038373598872258609222852322119065573860484628424764607845374882820849120740133878246513081403189691691789325754428489565742229343429230986640337514279682131120354274080216356958295642553670147697804035645578460713065162088824614882870493808039369121149626429355971836011504451442563658999380946272789486674933986994199290975066282855540625508525197281829705840640983062595647723619917884409836799931895581526103592656457422078096904834979396894180770801415452705492970075163852328270908623253006270561859079137995490016192424275932783153686312371695913160202621409438664623292105359461900020257471638564746962206713466370790646628928372426227959553576559962733388678600925757525415147660328845402297086495767461000889129686374772067267185160382909308560482240300132533087568027022769581000489262413948369785176314489073178875632764272302036731594561527077012028728497060065517847669799965754065271105278456795648902663020236443800126412135491010123696601698278764210474755802855153806196074594432754090223344705073119890285401757252395789618934143222899950727666606848725638620602807147937072439934344780547011846442602337072169538615564664982237306722901302658373487995967215193808498365741624983600024915952669883450326203980396982714326457498811964308457579362066010960061851431040493232460928415542440454346841772467417930822075523665775265394308177140921043779555727084431742865959271393289069178167323265069021645234125251085145616303736577689757371562301786550019836012862404105401892781970172893649518434330436879599357362272683819527489280642848871956956960958591740246551152882135778559313607761332262710478839554271045917541275645610291732389186173086879639311106449948390673241669036987556997504562240489960588557025166758571325599956999890351595274173408654437596711929606258664307221321318955874509963872593792994950209429188493709784748034738185344807549622154261211369024155128743489378155735846697994226405673141049826802000710678920390891421061073597343216214177241488511958045764963980495103076051862047995820412189209193703169568398037468666803291307867697617312747377598799040389156282064952924544693712061009126575885200155124081708798028314250232615296703903099498117658583107989680444165058851489279530940045309066343558428309713571670049494866995151591022752213630893423790389799645820217016838225751471595304566386832532779807615778677011209738366507752192354120838294671231374785429062271806037924360134676856993995281507300497502686014795561168239182461711262280853255151624947675557154119678047336313315881215442520655732177389158044716064045923545249220495621612293245896717164220950443289547107332119664139433626307779849015222242010123360166885807892599669298919707600363911120235814236946811954476071071641252678992787342274544499610361104790867030966677560653502349109318072781777934243599768931153950735733746599650597912517048159337033316414121158817654621122553647587954041230645367273683236917350909005423692825269296683197428570194026673876834453234550916503992111510436968531145656314301674104385058092651141465568067236180777027603028349158586297560600185633936986550752410095683901088994978630828919151554457867589369521023718279569298890628251383830729980033859336547056658708092454862595583513558706234109375881333712623840299276941268325374646750194842022685486097096270351945921454566490452159263733237973586271970561759682816991668622322141403257862834757009245425162522111966651609849929577428702649702815814499421336271599050002199124327605093531891852398118069135978520450225299713172242975282453362371201088620139493612825119256257959842821613373439154206143778058349085592991923892501418771842869666405303511283409653476194200893501826129490915656367350094223198969205859552510369544591582453037631021642263573207048103084185472724254124809075631930526630888092529547216753416088486217243665832417223979254485059899144416927985186453701231305822742958331816139682148340756583352239667875366494787713190394387279960004746739642729948685366226923486569982347398662785423964242443510902037618428524254704480300808153141686776165793673154959885057917621303079822054401390635254999188039481413523468816443504088357533009748596374369503313637957246102796846832185690855843668903832211221690110352647441242961027942425443921017646467648579961671374723314795193276779398440253357393039386683476007224987465872253394928984073999215462268868574630095602734550761316248489857871604027378893938535039878019258316776113158821633492321871107725066844865146160269900071612324568300034325363716774982727594410517516289111281235882794532725720899849790111137562439603365071196169356949645241705760821640800336693819160639024914938961848276796712905872466408305108987220940995235846703312533900631249617162294861378143858111010864753647801072695972308796208173667702741980532919825858458966351420450808542776659066084828300902186558664585441577648585166307856743525016926778125366477399659223760597920565052671545858618696406587238223607865110642772325218962285277905820774721261287504516791097885490738550544404243492273681158286409802854124258369937138688779168529940398323407217904464736774379514692695869293963468923480165206897402581408230395663966149051130548800872471969676998102670793857392934992820848351278387606591761871561080711787321117976395532562888043263733108429634446360058553273551991404034841444578962073068930403145754738775955678300782871642514965181532070832698332002328651125874016167320447139689529234842056661524066016331659804302605668321954707680767071964945473159569869445947337067976666651385583955849697792330089119453104941646922293888652324926356620864574416960342514811845526933115485641780427335911106229567421613154519079527171192789786250464259031764412940397829540539137920788527321738958066352005768762875542691852185902250097996432733511020323803396724796664444803800843071001570604593075395334716902167813710884798814585519170159354960228440774237735203344725769699105185172446704674045236343613160795592273889682393644101096111935658557426845298020711855979882178703272370552298037520822412373391246879910798028948419582470840653506150448540760648756825668628277661999281819365120067519456660134481723752441400408033503327700773118506251052058940716906377808630597706290973934725821596413397698685188440618214127270206236597528038000378057642036804472975387142365822136739472235088794075388912540585633576094632194832967403161497340158037201351401198399211474556631039668441877376845083158962672536250590674781500409434586272817079444334531357634394579621007338457463185574684850475876421160688897874786155795782562006399189530241490512189783353349645897490381579069330948961305122717237411440613077398183529264404568768927281051601971882832942292662640394240473334994484506135200175266070591048622595208483895446071539474131474529652061810294270975856228576280287617845898306843364570346362531390031421364500785606127569927529748234456014675648062632398725051475306177359250331803076869844281842396648138216578078289175282269443009768163821106135757598982923922049381320289382111707098594239943971820693824864198376242928271936486142775388022041282564562726785894926437207088479881868627157356090162998633822693770749765023926417528578399166052420055191557179044514598723757172589429193845363368274568509751999118103508106216106413862155172348641975790759524524324915145560659398263581445549576549795540562955922915240548603817336848003288346738646817854956596671240458446181193401470125943806503975340217319506867024882588815482803108885887161773988007723948201690119987848278903165882406704186920194042724327707393622748648736756423375676882013690839856920480324774527901404470475519349369677805479421471974016183603949165672206179788656345310732348039530612345452983680061164020408644758169275761259138756172654319390509887943058222059712278719472722995874981714768980196488653063631387416595523027238972132030027475992701240916004980471683157222023218791544030012192606543320222648678991685457457821312223614887533369019916712962760004121075437690722478239390266844696350431409735372912836461532036367701700877550260053371854200083725886442882585387653332277942601479694369856246213834091232610201047969969953956040020488434632463245919379905566249233230482840088915330280088614436437097189562745776522973596829907276239655584796126805776639976596749800444375402860271982136281122818665760788742387648330806952303904877843974491129915062312806222316270419683920466618861231229797063745134903004464235537201751553697595535771563886188361013916049829402297726091464952371858662258707009469091910872863308245694477588063443770461808328862587147778134734448526486006976184854688199454727888874267022201313737369106041677293917489218018871916898288150675196733564220421933393469810813911841266494458420256220020804111534759242582151230885995279732412717096522780965774164585528364946363121178555751263887360875309821583265756904685785834904328131927057875198508748632314668471060488984134353247276099749611986929247019145594989320335201821788454402900376464016311036661415278901241898566056371236463382888642254754013333977094685178491506105742124912965768788159736969820518693838828865419524321422826091911337024481303482709315910588949496490248270532118741055073116340785452412116665613129135921003431868465888647102962699288197940291713198253399079451352186630068081651319169185951492915979374965714284294965395293848326181975851018505529567213500962389097846797517696936684623785017650532147439083087044088986340720558526484035131261527267035075035311301235028962977233784051525043352297363945530251101129349753476566747987765883544124608010990895355503110627102794119746968706338035904126316276445047093879882863260204914719650080423144483830534617028900442008774275133748605246575036405588203511798955701793758024411566538775895766155511738236904958884583625258671501928181038481852115008553034534857868366639705939443200701031281985539176301996659012933895907589148465303361831830181460501054483632269892476407868147481540902085195109567166150104155524798684675255894797126552190893986296383661199698886207890346559409428602726107335696233907419392563401117703428045303101147172785531427062757745908482426387303975108477702016943215253820911877366397728271306344569097623749556402566424221047845980162696796374292947607650400052980052848430698770103409922883046123100999756565939965870987217129544233526138466099402048636870087883320823651853007503692737400834587692000519011202221216381321164154421575901106919719619616790188730746820371345326583718686570621631815027842248487004381314055102159457158004589254459504047169257703799773160420287132986742290976865828440002261101044344470449592935717700517529354993318633763663570495829686871851361088637938035773840838170785404178345298424837947455700909109046492479458793811615396766116036040041781310384813058438078357901549205423992585021114881020237025985681739675669542549218383207050845665564027984587337504042079372587830345579816505044111622211801428713471907101093448910190815827941759055232769928411348180745912238126625082981998060849178510453140834038553395318546337606924213865711949439189470353063446858978365761680854733989502149227518503280547499093585000048829802797863239964972125543936175476572167651021667183990902336975949097705233812091060798792450845302754765295692287422031354160690453004989931894096883827369525301219523849898620341133599649185813499420583111993918564596309351565788813642036144517621559762234502459518362547496981344174821993614857539476307683235453160531294616771064685267375763562743751686903751258742442308565044509994129330731408200930954943935903047018866344868986171905958105692584370596857767305977639987388643755344563024119879283918125451049807757274664012036187857817019372245105713717066244373343025248975703372209850645134770123839232894266457382919274937802225154718513903730782802396521225897084440048504077335882387596066272154728516345565205798401337233586394261905933130741492477883251989885571624196310392520443537531781146988675917432908308622195488365276085648009539467874204074422926532935668174810893191064414136924065804606715522744339926661917766651664333852857776875481054400959733400216373222563411843429393130195620386237934698407302351430327277602983098543420741314032303808829990228875434577686354442315723203792535366779585460626596470616476389624661822991277307391732510671804349900573431142006472908996525379471522991648584156903074250921675671677790583917578350257207593153638313935720793115774144405620805497744575028923716688412579335383195185995460205714904720745010590279467213712393213522364517189167994006258798339458757738224642921301677322669510416516139900566575642398076552905454459842166275855068171457241569402971252326030863497084188552446570898697927756916192346561535123805818445902790002784862840555099869599797678087668006149724047664091573176551499838903803284781667595801306559840101813961271892775467205424781963067288383606636160702126805803193827046264684669880707967227926004244295934916587019264533655302594810552661716394629707992169916243421619593325758803723054199792181758301170463122256163719338727551002144897687521205443349514302019699161740554590803689792105285381455825647980221716983873785113220987658950000909544917333847233594940560415702113694109696621922631992533350005773955851374324492366993668836589771386075324211340891298417972736490387975984388705765494927639192909921487103578502171170408488134888052099133400028999598742832309086271005154855097993132028647891368364470142716970193910659179892060472431337392740105204748049273466389043927221537534610152978725177388441326247012960567198242190532789069734732805817980870540929096737755263958659910983405926926528818541681894876297690059131126246579378975834836884766386367530860179788412595854321099602301712134968196264986488752453088018173562679031563374559794796387680991254535516605131283285889275823688367995277064079984310083351841586922354285348072925105718362244156294866983176353717306543314784328125585176371270627620817579353388212630134458142677438809644839807068710767092102398407000541309970334704918787741622672786708455407862771018166014245849241321341658289649482778842669372830267908964037228261835408097758617098207025035086925438754700839606595377742883421042175469440533181291077944923151947447163735467061166999126684491253786390105917915773842934609168119992431724984504049842076636818470795215659521432005657089689645388809110212801568666545596308552497004946675094814072168032897764630892549193052382367914896622046475291307040584102086169574742271810654372629007901811754556244485816960355917588568495822278701093649833974746513718869062156143397759783336972076410669642387916743536662732635138406053261571874277466098834372356638432564443868642487539080285206476587867010696575140355291742946463718116933459920664780861510813512723535272527991894373669056252296856998750826379831507144182536301291369521170442937503768796208449634911497070721081298057418920061879028699799710981296444503501293557005832817856926749967556041261987789589332363672988712966412408242676673898242809905498206081553076040114830115268123907509421226928725612973164571473621315711159915127781687462338367672001587731070105899845407817983197530148892800005341035768731442630151509542200277968987329048022408040900399506977963624843522079663123782473373494821726668710319243728193087170963838804988322401554689777760772595141290734041719340148483904099238171653966595027259698895034108184949624954893270354870626330031002235731154334979152435797647975514899562667938033237814866141113433603848793993092591355157259940151897335549300522760823172665817867996949578210573543765776432237805667193996663786928495371108618987588918057639542605145341581463047371194656554352487382643480978392800576803694610659906148296522150896921554816692871439098432798684291311180005514494077003384800395915916853818679566318182051859209228626785429679152243885335572899855641643894661509600289992438065182922988301674788718337082208574451430041577556978951912607648781244956329876164610563486598072415727815486798365707309784448321929886394482170251795898531055923332342525722898199804281255421029092893923943421874940206920843077433682366637903784403041457999005795143662734951304646693020362655734109649223863130206862638972226384374707467775998569186821953655104343185555545936875586440521460677608520161854499899327052141304902678158774906213466986617862017541258895811293621591825208165604018807978986348531842463306203867481555217928728152369643377636794524776037676207141115009009089986623493134130121567959541964870371942898920515996610623603898867454550910006689182405432780555697360969551276969921593966301300721174290752158755581730862302926266808462531029555268421415020529178740123873444144858764960075318114192993647459106497144139027900601126169811570241098281871720907597806128120959639147102895365835301912037588500501804849553460091716721006172145977642891670929552952772472552526426871487718499867792578540524187188875314716392947571241042637251338647500659527725732388437741491503222870339682148947903781433141123826649579690674984727761974895863967791969322027769087389284774274261029814158135545945273994128792362977198830492440907667628519547281855976153409337971206642759580785623657320326758192517318451342754268197759963594064554545784398606190475083637308886223164701625553568492179050053177187389246868962051915769759335797382523159363245503911492155261836098123065366020290270638051682110482874081937634828428243170120630320076331957517696073431646738739521865308258923716521041345915789499443450181700900095415323108126788670396203568465408217862716118559429612982856954878091770379971518194287147096078740322978840573810855322225971578518322714032135916353591131046407583433898215946132717880749883437112178351572483823283174927281793838746222692704319250753999932873414709308994156188601647964550146858241117354403651160528179735500450076779224429617915151310110069401973133105581704686152661795178584617059101432800374504301680491909494375188069676519300949701611397767582252516763187148281062514718731066740537215218472216579401813908533643177343557568157696460884884777672801221713024130618124618162631745021939380585668804201972297014850803792909345180940861047112704849280307809466304987284452003422427628200279926842779022016509907853241540179449185162715903488996964822880370007322045911638874274228666629011050009486558130460911893290284408925082214457334366424463638638558678751911230706150034923415920400729887155572828990619969481082227624462692702229830478291095184560180656060326263038783362756471027672091383215846414942501078201666426812317381846370020169095687980917709893726488161762313813608630756241036390229494376233608703762577214761463169519128957070700404057003606557843297639352183041090317143234175638116371301737985663055564263826629258604181661692204795342700533838056471201142094810825602771907916391050075281153835174442987556336718750350300395038381894043470282564767040158080871782345267960660397810319659812350312865793820900685672074356699097966284570407407162538273872670955748986034931514448805022552471616256653268221018151685991006150638870970899760779519191922224275795617749992181602729559645801267495557235301152472330716421019756221616313267537844776081779742658072065061765853792870993823565331714315927704075783475650148181855050951576592689671077617929445708911988680209012369276130002023366385230433056249677707091891893952496610659579323265678101226069707123835146357051761926979735289829636400240812671348823207571962499528503248193957902248488785476919800190594822196803730675520759356430178752627281516582300837531837319956265533104428854601896913218358110936376258719186304500923552333810947619341847290665216910246061524051573704766229789871821876486642640474461977516538414250703346604221045917639789663569990656341421708909784160426952129717061948523579465341709284587914846200045499810703965203636258605053696409391223075255554280064843470221023410852244829274276346412512985087870249238905198511105826584477383030769797906159064832460364914132091503766399291511954197718166624988104124688661627892797759179127339402499351453656275731156502217834625582401296909090491651405623625296275423350164982189314686754316115910683877660022779159248101942765645539614419504177916905336684977454597741716527215472873277703417980824585982277551967154049862934822881617286270834849655705646596262538881492584706968852539325928691936911538252459785688652538599087073230812860351821803162363874481286684536914068805070719476504254081095542863557157421321172506676522906020627830678770732466701920292001010462006957309507390205962153853670255260562262394356565960990942620063793505530867394078934427957653015378798737772027526503953990459838672206955885344725088696443037185342385628439946404872515796218191779381377056222157967678279575167074770051381724362101461827226792650115075657159440891717381125474648791222249226745780791283672704671567657963208645697841539393592169163535987918759189127211858546146437979200031516927610078483059123903997159626493197557526584797985283557888120030666826528091198069975315033948053067414486480634664319968312854904166924478933174667967774466333392773238946993237917009774519664476353431380561458518943845293542521209528715387852800823933419058534677899905187251015015180522324285622282900628496005959205706377994345906319265690602358040620995206736687559946112807757445317713410923376878726562878915534325973687828221891130877527137737857398659961900230159138522543168639546252879084394749211868354482475003206543546290429481301761885968450674869719072002278404367879219478768338641085503652498936784859047655904595176462757933172685266288307164585825640164581425933369121962131488695977097639785899209434374812800624099342215047339333582900822604489951319275895813058679384262807079911473774979481244159461358539330639173925291148783454952880661899545238326019414985211598106914027623454987652368596956970380069710607385814666449721039081680109977107449572088158595754215387743438507184038249081849673616288448776640184171166184247961484355132360388877230146483464498860203697397483850750258722803435853570024385347969925348173758751075300862515011867984605334733240949014382526673980302098833260532886235247478129845877269837657898981655456803925337778261276892876190235593711287704960769996341375529131407317404221169075412196933977423910759066922936261623472040542543971167550704049787229137398400483394582369362942521841212359440180927641937339158005666940574148402931588203708121062248568274673644915993320421428555092437030786795240180029132171433572240770756748574786958443093374700478690701921909256587121491867638545244394890145667216070314523841622054176365706177055166638053793972136556806293585093320430139638099741646915326334123417056510877933245115215530605873821511952464022306600145440093645793700172163624723212703896805627708964887273308207210346971300206287638949038062029792307310168446600798572281863207144530907080751073932957535761077188723874561455860639158586456424675728271546436830004173415455952784713840230705787779349787682987554743315994435349567386988369325475607419611388896746310559150779935435862157976108394938761109546314080899554163477642192306056235928843324260977878823581890803793058090198353392602366748873390544637981649576688459030890876166984665984371738089719564991183765857670135914259033567042314133754840171598014228010188063504284241584758531937765199424318440458177699729634015653207479154627883027487634471318146632120411951092111214460632886903604571725801725409205143860270282704717299698913940365624875508884830938746069532148737378779937821676530500367280904988879862941781235769750670872297085945008063129038717813275201340164061848661595866521380967304963158247688676252170339369374428231438259467940730437303814186591687042405205205948594364934063214753217952163804179867864586815874851388405480144598766468082654563921893842452166000031034014997711080928433799119964851117965706309620387169381265280250857717232998350734227310313742880585180287589105027570686413595200905916852903476906914284408713061242854016200410092546453570735400525724418080093836906921421979581493843696467133543772395712134109320897775936876869020017898621919365064882311756590731062191855965824093348336184968236385637376758622214927663951950163480365601514738788551993314033044916258643992927510361650926946003939247303960115930201598615974921483059651186191491034621959413278742686284497435025123663512812235191153401126471634710113441190403495332457760739845005913956197181118915211924380177186369818836027511776739077770903447461152279784742534336865913194647826479375306285704131637064712599065157205789411814672290751274338325160687367365401964336699894331228360479489738734220693262873236794832208843982507375855366103278263013083457489964056024885073741809765676178495090934886292727406937840771297142506484133589328615161204778510261492281101986751385753779546622525530995990346473253485057005114567871495078080931037096494119611041162717083006390256920997143606399654833410433111688011533362426413603296521118161701381753982664675449140258627415699164047555550127190228187325360655326610625969846470450826636785846919445752424980292632948740154060099351449143917198876795472698666053737197180783277826870868878218809435484815782314710822526674576525236666245158784211859458802837273059934330550862479915630961358317050809435581073871694771022282072742269846803173830144251013040908770828169384184597441419746423724566945019120778425026530786628307215818086355871108515193015368793960797146985222541599490169516769795022302354037769797463270434687036367543008549790322549703584450775384169396550124339958661833400630791975202298321577121731827852789802212691077326700979491397567955234170857125844379954127997474411781097537520460291612514313876763267923437412263869301548430084579971133559465069401858645001694801333934818336680178602358902353580620174953942496578085678593418780605154718350867232563326396054907815896501627042304415320574566031814980548852557036752744629006362789579310390364719763396193082898508931239861874070171810733603558814675980317753883247016059164114917247586958269347955137433823349253840207026282284541855328540686373639456105471694177355538523480848636044718802703009602424786084046667415091939504414291349244617464501169022931748024218175180885177513616519590372189746430575691975871993281899735456545445699147870173430186297455047483542370066753059029822244591224550324153396716638629328175024590501653088057504948998522287335374987190848963396208704819816045243148810796710787503839035701669494339009001174717259330748941011133985734452825050638531606458730270905150518783010930658961422374259214008102799197295994965981103103370156322824909122183352104242217685174492567341951209253805301492977382555177446845224494369572643247402221267851383188800443410339281737404130586699598598532029166478807411816944782984854354459015275730338286599519454747050828051773443861476596956564725932307193381389361664677641209585966609253073912802865565483625964016153444744862470405328772516572214380961021188323803931052155810523103419603857388735384299700798309871343783092599698669214085722273310851781716245822191000808393338162447223150002849915983629274520061557979915047660407120778586855143420664630508459862463398709959616801244883883172273967026891838551247792746583881433276641889218207824133783140025963140372532940280472558391171957931263507522728237811054940861858850921258842352668755045844474175498878812023930197504796613250791417878616849888766163347793275262464818744821871383805787814857873347433829224346957155283673770933582512466184492420476091080434792804629563559023268311200645574858852994177407642891558204257163807973529739723973273202125213918608502657831953268590747381022650001976042634499407962724600382492277897517672111373117449535566843453628864304923805431661136831176831934578179143010520502246425892104916070826540060914795071600044267107544183531437381817839311163056244763686379293256410674356763585473367600921737124334844538098767094186690061080153358466064651431246169613886334077383002794100677655610506503753719219403118836237526538941178883758609571777209203926676069254784104337539720886031926954077993548379924879372697294007015586007346356396981990754340078960335948170994728521750874623778164735101810296519225994393923166837489070647977856795825509772831019504615204606444448944166077867770899341422617008175473497675620797957540348602164675884527289719633259748568351034325723970512628411598707471905687087201094757201719890769018371335750376894009094692426476138901841074553426392703089754014098462184611568031876593285807923550162490768539725114760682670186848185497794591648583055257105571409372673482786177179163503055625677214074089814418602833348827841048816944699628928510419861202823623988039651757384053330113984995913954504549772371690507727035767001536327038188088128516278082230166038048482484822387059760117926195280893659075720989239954668864405227871447219217842806430708492813703442475046723133975398072114161622084858668513110598506481470417885460817482043778517950086219637232509094329764519160021416958164595235134703337632891573119618529244262388731554978378208494139595421689349662870999329470413595686521222568405349359624271186535509026790792281730165889241513356364193165309387789509663880279413976774395975935856219625637322582555639327069470265750156350432272374468200520278726432120240540483283356054284429320584393899070865894546349731063768622955583796686351072709250966026201601145897478220984871948739778948718698860765676106040436046531796656667364501744876117795762389328128588442996228683771117762161452302909398401745246665082372591937037971196148751391555416596872424983737094060071959966244343204610757668522310448425145872215884426587376508162467618468858077789755848939349285398376998767218529232998887303637957795874509380520450748726675525621204630960556234499867993318801575422813416227657678750721808111674132754281587155176488879445347499779630885524429205228477857880722721910352710582602810243128527402588674778471350750323448545904134788468070597565159761005997528875500818031615410484642239405746203973754373230864560029359182716231948722889639394865306712045136743696492824424166131798657375778148692121435942171036175981714537262034192227093484300399075372608697396856882373794979534783752290032824685495201063668802773881756798409246637121473022191305083469638494569944380799656068176204607768282092643143875320449203661654616993065515385481789507839608048859575647340032898945366275650272983382412984483376698906369353816521914059602230748475415853205222980797312765384539586011837249197159715610879101321783535760318467171699055886060436280084108970899596307696729464120173235869519103146899801594686619499369847507135532607825707593537229851138117894483705681018827357312351245100792714722667222563403280192079231581516703322430072263368575919371373070536949534786294574412976296362349065443968452664325009727149358275136685163429628125122456846084804201326488583270966778040058982553373470914825103940686552707195093051475144858282750774091813991093861851265425929014784897321491078002594970685251695337207039786561108825007110215434650702575932283088759431044505279964429876229011639759142977585789883900670698033826956618213500786584534104868986647782463808574667636289520275124880242029434744649052517872576225848526930612654868013027249177541212438113168372878237832429266850158370729744469152797961616404063543556711609889942107139436594273828521142090272195504771644085723845759014965563605562484775021616301704989328263859054260110123116372795431414105041804383859229247424271976387892646153981840800848102056236399309701454329323413710230704633252345075966718850861078799286656467828601149894174975635859806895517715343521330666939596991067230032994302499541049175278347777977088148406096826330025802963625499829112069149271908192017291130406693555461447176331032964530852179683542780940992906022457002523263979898332282744450085370288772226106709112654022774217791055729910548459451768001279173982822858656323854859941505209791844968864801757887706323633832278512626022483164231413673192436749982163756839088318672260856146558230432481912571093446385306395584701001101475109561522892662205342260978098395391083162727060151289326350962591723498469835465356502795345279030903987426254940998791359425700604262338287173531556231547248037829458830567587369311029597966434744936456850298338749534456086342757190828120223893124513458599265241582493296659345669233858230247830257622710716609997679737318621943304163986064975998331254878860095636311959517532521576084870703321787637117886722590801130418130575280242208566576370589094939229220731289053583757785663680084565796212517786286515373426225595432353338088656049692914130939340723232143272379938677741046087078365021615938473146802879136487002095357534781686082799986540469267991004344972840535016330098948708437035382559882930136828867357746463833337562701130621167782474957245209959672567781747284879622189464885740671326263289245687321542964072216791612083268983399658723783395053009645570401247287524466559523433593421912918207548638248072582989452641160735067197488002970304021507102865670213761976225803474842585448792893697671825449397322886392670692694948581443334827937089553068836365239212071089877226121096927700635698781606409989465672330351638550735810043833169129358433872226137569323645123039508744484485141159220711937598940942609433713215726578215360851496407894028975204280569177935682979825578493080362917475459794359556404977403927327857853664267546828824330285432775492784480150649984211054085180074156098657795689800489514608686917138009777025999371230353920327036641619748560289516993714900373849467856156959259957722852307727438615772198043490541175709572545551412965903312889435736245447256941529472945677799731735568806167764608150851702609368349653504553203258064554040252709170482539881731969985096931627140435906003725214922221363757967070538038301834763665837921550724672470024973129818500604519844415728823699806313236229304066499183531277881440904390486780809836362234992330528863579135171267179143203433054752773735894990355215217716099278177745085965728137920051914652712862748623208167958192888048175077819867860474848658384842786194548928051717709100219013524502857412747789567664099859814193644721534932848131844980129522116972828363088929919934868225830842561243720613613906410723515245602339585494080838037752258171622197132502473101212272595382586971246566257932520622725244215580172092779503734491324543451348916416450853739842428495961213471106190763753688279319931722624439565642928786612217168440027469325747119116479115332109090039302327781186168227991446532114865916245148319158542716423669066108626416647691456523627517803738163935984646263160557697879811186862122095206829883840972055329795139252087603521471971422260302578697451986956349604210594658840982011403831121140948349356840013959776767205040389390410025918542594600544760377756247673468945444318125475194792755783738690409974796939564641523674485584051596177536474195600438890380292442072659529474516616150841411561871580464428792681864483547211732814147595167346872535572942068282257812618909108274642516516278246925486490224996117779770964635731472781851298566325066584070629274992894227111784407012634594307326631459630550584959175780863022846421094868428736637207967481142718159925037324411098856308892810171875542164645805745280852069863483597801883872939824492109590975125827870301039564857754176451300844635466521762264166259001274308806831358533698504369512524256232464550327969519657322577243770005858229335812710204160828185057846201011236627786561965736218272686855354946497190064990485366822981506667047435868357540380713136125098796020350879025664940597969677585142023555086089599812516009452751976094348672986975790346665356605658698292414566105181714285661169603363209209852527779684293486494416905819503100510336675835869539306320843033007782182714038844344986753911654625486045368398281959462031353620603090805388980818695381820033422802915915191624184006810783722592244661716356822103254005322024122230339066370981483324698344097710602872189817063862833974477293924473625613164573522598937054244385207353158820850361661782414497273867742691910972648375889185647691756575137870211850828213640664626696557183323185176515850501619840404223566583577635109867479969669093270994966325305972161930977461869644183725846461157192809426568122010082927856891998752678380876910719119639130172569871876214985228102649110431304879823170431864021017029639415436907247188211794884988230430082040088008598211822059141974946579810322453398669582132212521987074620216856484019945355007704245262579367675505428977501377801661071367442441782229932762809730985207091101055615164904606571488502466999955219315582911479756959090552562040667289510674085617243844034169461188072208629197825803257517824239883420388851701714234392384888136682440767331816454587562445987294685154335405034867170739646888851703469200081994822169728665323822828957402063052076872391493429856416889868807742732099812709894980644036831157308471666581483321256628298457543144085939584346209083673383995950146457415531748377060110546240193266810363473138253850781474065108526238937501419852118608601487102173867225799421675140126558376177725523398375596605968445130314117631809110216033295896379181255961123815935727353586558917939706197009745302882273083506572244636715195234227223164639436572107192538133855326263819628172763795825288547301673680688285615219434800383459846596227751881826876366706152645509392431831954710327421809403346753344539724999722506038747296283119970486893136333008802770918153098739765457854583019086049677734910146968382623195945360180476226641878379504226641904344388641355932964043122655402904661294737435320081268631647348329580379771786020586088893218164255218433562136661489845580973027288000637634723282769325181023133798797877553350859689387779991537095850571804339463472103277942233611152221572509353298355037709144101695660620359568853425865396674937444563392924324321052662139519921903872477699813810327877352772556512522866944572920605268301457554100519366933246772410875872697753947372039808686251988831221005466553874265934095810929763773993576271957368926123243634707185978489541943366811198561323519251141291991352383223327102532519291728230349866170756159462444748007054808713647851048859691930262109234745032661748629081528787592713455194441435316973231873272686631601631038426708774131706930961641664643145198430775176266985971280964227912285053738719841195260289660252138722901915473851477814413642996879582974466596110887977803522393785413084435685491677345707915088571403996025975366269739728031986608233430576395743852736372115470679710939156081719174824844532123569740858621733787609445256304881361095284160763602954476052708730406337593782546218580898525825003780038739029075496561723143209894597737472439411589292408765385746438775253648619491171088931357744484431177509284525500927992532648753654040621289443627090481927614566595288091617397232385520578460948626679453077254626965515696927459750322934137758598675463223545853812169690165081086025469266134184838152116258114360193285592907509336510311707307540340192557520628612861606981105470515267122461365254336722444878765743562840864031975839094160769419200589781197624241056910353659695830965230382912575855085557073088800488729110547300747446765465297422283684399922479254229511091298416754852850634932776728277700030972629526364885667269236093342686809383107867221978582470282233941659687446295121503417539020113021331169960394729290343277943135164506439344777380786661692057107135328693117142431379521797448857073900929731892806752981840968102075331645674711099065737444752530331817823516886203758789545602217973818417465978629011609487384018289332067561790713324686508013112766419229219385959576299003467507730262438405348984948768170799339728947058960014396319648988008066275379168004629792272984193367610438564659687189318171307716970186373801099886427112032122263127900312673166116007993005446775288432434343795152344963890573654984798516707181333570353015632380053481849598558272110626827969184143806285709879034268148081084765684717155173027568472215801336447350088841088797003706876835652725540661724537632593509489713588145165575845080327697621387266809435205598865457777452888190656866043739346166293710586929517045850529752955420524367819542325541529752255815151447838438837590314623466987817188122507572235194765577144307255843949741710471529706551294787674353186778047202502806502433950558699858143571802793436134883508338459008846105045106433816113930756088960374113936664261278326174382106618749099228888306146653361691113659405007640815111980782538679982190211130240148561165745937262826110760085068572071097338133123563158921221205216559716420874773284766867475651437642425082645472294940851683947282465263300676455671619291284620338547587171622266959254054887622345433309799388871605581687589529711143833511519581345674388235941669388844901285680102785677013155308793859756943108332059578652823499328029284813972846207573756335441321336092500700964318995923939853704238525708840046412226435653274097355839418038938236067792735794858573048397478816524716476393851461453557353830448798810446662393727933630773937391789673223821493369883746070248516933906089278863859072497279959538999195911692168549343921727087768104894972236123771516924503005373516706336533826562847202433170528615006848089140823315057847528280299861372627806479927386235160164080875260577754733429175597668893414465571990730721640093012399856903338348860068204675643173170003703314608663658946276892830044816000085719923618373759722581999544973024744653806549143356330456916034163918649244051762816652357361511322776699285743131151829675408759111875726244352873346311745025505342990278037028426154306573732664598814429207025137644074433184661350943358304261176691788967744086981152567764603213739066641667143572657945000895992363759408811357032262703607801141980355691766536151271130501983484667828695639388103970685018806782373283342829553309469130470767878987255213087920970431802687733019914189704944375499399697425777790160879197550508521909658202181602086147357329692975089391263254125233046512059611744878555004172378947169146188312411291887636760235577234726755005489584501515295875818885066641636083447366768306524011343798649990198163273563194826922380057467690721742955332297636347268906145052593990063346777556827595005429209040399677454935274105312453552771103993110767519503793960278988547345906213406788211782083486060570968144542014724244728403034983540629491242478119880496003774486128007971855562005269374236408282913484428261541382731958652146072096211749405124408000831822329351535843663620468141251126588049434856459494713589658806531716913467090389759053310426297800370413335242640111126697699150738303913441835726204349876516680100448712793301521748077409225402233725216795201944281316049105287565750060891638568323429389383723678737597625539724378121810499669730996359868168301101196407615620582260948141484873083586066030291558928849163376269335528488105007636366336394036584070339107406897704786849915579749502016424960071852567277349708723567251418434392523996459774897070748569270237809210237654759797742701068353800647233032898508070036739532180522804438966661901402284570581772883495891397235908720210425396049514256724378500157061019966520275584313968767476778549550619944899324380325306832494371900933273474610214561422341656926207561904896457700498037966760044819389235346250271017226051877458404666352714771339602212727771234124158279410276937950825639377103876255696257205538019177536225833460312291778193688317838774348652701792379330314506390224059939979708185645586927705108972249106788482432337960881404641410685321750417865590946931396575366416494379139191623139185212952417683554577366131381433122066977471306823823391505374395791174289328241536488524273226843954919235969353609970103141605196219569760437070175877767399685376945722510958970142362784598284310210809317130858457156470299612477013016439110012220377103430124286494022877863190595032377822975611921485975168868499342700963576815660432383103021036744409929119114460171495224337312094814660669088945778771224225689817929219814932312870881361728869758941141717073716996010425470740660863606437635017636363629542791774237526872486557911068509058630840260448916017155589415938051726158608666892039680121740401207422688407460720007626606059502627551241984384784351805579522578349100607044546574184745035269256579634927459511582830271824742779438428218921918914235887972378841896812329728276494417290091816886513665460608258861104637654046855749643295629728001809948277854340223222610122424315976456347021714160540658905372137371195478816318290832259921016493360304740490511532223015918548535568438880910392428704743805054647728297726173202460852576022681502503525481395790419862318857383233668042656080927344359165691870231168893276656674313403963206094196943369677646581879132817105482112917344528563669311829309950937429348548933305185047176025874256112629117408902155620480370931383473918034516599385112483407717013794692420605516476956696496195161720589102533625826974481409117448457118871510130482293309596404485410165679572359383922644711852351882153257059161455358689920535528561391818379197530532868022501585760218112171747185277186163157918083930006656317272359539961922337767674548189909784636422542312841737838027900352655368669161157455789848752996050115154993850054460681045372845006463585239990567069582470372750991306522557717484843190570132295266703503141002239867355947623002407785733042028785022253409644168116407511114569324029426502047172722394000224647519533109227558227894153064745401665120130270545306964996671931755284892711274354361056842721346431857988967347046801486469857821207659291662668659908037672348282406170915376667801041780856254539839003385171893350942067886704542614338297506938026124768423520525212698677455658705269575684623568024623980858920286058859131650817459700985519189824081556728082533503738910995792729866367901754940599118032252207082836511625972832986209665582247448931509508135359980689559460801722287273453715020662982884308303895034161979308733329117268775878639182420068953217132494938964753233055650803924360537479849666962886586489062731438156278857041595276190568500195805664827978200909656353726465812608066684932307227539601961840025251529106930904966046864743716106454239049715797733399153590443131103623428342900983536389740204492924888842218965311024430127261583928152875943240797252255465788311405590309398040946626252367111063835606583737607922745708891583325806991782844330507847224566066927566802064402202782545476687539664889404870287191012033295360598534550363893147731454701001738432868012030434019159735987178955967640427354916655033790937813070602573824406727707816025195139932823533444627995130491622437696502451937701867310034875591550981406950381655307671506592866520523200899167373117661306234582684162725613881098130500344462039165033594632235325936303452326645394796912985891404303102569928536230414622436475591846200034029441444832825311137684184515959347152242106023258202102222013446644277976086073597288973492976546139254225755074487552537106455422879685103422428139335552635601854373442782917324045851334267132188056169741412298621737670733916381822300953560103776341588521385214653618178573971373322239930064685681930928544663752216734647214361115621943982221606708513522210340544763853875785301832164052957667514030800566965693936741113177455908059948347529366567750008559121140492239227512482087499756017735069950279008856573969099692488716757439441283675948238821391394924350774210304030636070196087354933805668329585656886084568927484799044773987594397519254131173853541841612350673824508371759602217289512639631871473121673455720246130947286740970954979745803046099157114569774702141059449592266079838175456247675600058908426096505644654249000682342204925575491222182625639528901604548032938892854740873870888799864569883217185188107726199786127564960915825698592735966974948874876964245073432857029739865809174321833106383824377478916754415195149382065590235943466957626128206995659640048179894384848187283487755349828434055303532713942604570115547851019931150233592667662728720107707358224252044841515903203153472343258764095526136436955283243027264555240261577715903375796739950649395266543158297376072258165733880818422955549094039369011194408042046841444207118895593799429012035039985074730456974774825589321447284582881767093069050590404134246806264797472060191523659388491858102058034000924473828615975049408986828242521587321712663587727420624055235383640411192352511806983673485424809462400278484013902875567313019960849881599522312287110267210570823663230543128735287442574716242002441520320887667721874268871729456073438360568936251988792590218279902575060116141092750139086070277316836510887533247986423562929499998536421733594806143732974400844234088649534172230858841183650097634196016436464885397252271371791765331570649935449986354257017718990242320075408848332232075141182441983215120384178485595645871668076761609111740906256502542973034182167048594107706407856424629336001109421614179971580394829090537696916079516966272073703192567455905919648952623486087756763462483194092602894523509442049884057768306568492348903714916433848479957107952980541355351885586186185547059250555955040531639052916776324146111595157661212833870264239667470001028225276199200480498425735770967520497247842097358234446870698764090567669399777521018906033482861754277532143209514358934544741568542784823885458099310098561972420805740224440796035843189246050382937658448601894108747078343648851799556076944383681314700296065015706705948234722740756040956610911767357581950497415202301497123761656180499658013324897247953342903794269207869378949587632119304756794154893916695903644880334463315639250254522220819411853270078663779964426183243068950977371852009959178923363193822114925931684770854620886534988004935378591813614263184804253357804239810112616864534710300606249357632724373674756291579496999706675677313075605300932363026737082875741950743009562727340292040713602557243028482982190135362947182833762985907580039040565027759772460348256613965284887378919792940680595679199308044397528869087790021287329936832940954544973973432042234551403272203562768799612231720125383520607419923362228439231760961375479190548326343222831977808755928136812609396477842021120995991402102862553431413002659210202992524762732187788472654695117697556800560775124981402717880129367015270020346838109320094364797683525936829724876269185919085321318880528368410397895685451741420712879878887115615921225310663660848068042865666237831665098117379896086839096010992170141079437565162913376533938865959045641915512529443916437532744000486081097620103981188722142888493176711323326665993904871266179352502309397143555411661056660563365982842051778820072908816119602091607261422153815566680504471287642738258291117463797868567486055225162062697222575965224046644271004691373878315742218932088142977967462134972531088659286785376252959912141568979084935093723776506794577470570052561370773034783028138491634113673896911161071920367823968499486289016023185164707485146317423659665596258206226351264489829290723220234036616131128643022937737428105415813707139302354800769897788999596369059338850875865083255353040122620922096498335534923272626644128069313657610395099281356262860900056357713003383679465578087523657976201707307055080585642546716017767621481831453764054675481157857612178739063703473101942336474835706106904892981688998028002995704231412078165574065610832298119919578262413491111921050725449402062597780344158801622455746003105534973076535589681602996417395994582939733076107804759479268606885382371947739492267417907895022526866558736831580631583049482211172125215211904763215096017171240318625461871198665904053872659142812045712841661538548509915966848640358632271977184892822270462830579359625754981326059062646870302962994430378583762662212828343806317038800905634445123636022533132122316140834231279377794121117956085356482622140168337013367646498992945596274173077101071166905389474728406692005865256629918683558712468542944370433840470905734068690587205886176180867455764061940685052388113975701428058356484386435523509447599921513567588179052957957161774657273370511428053304766283715087559950808152139303237967013463208735002946475935571043498579591427885574464983344219827417583131524383332873811544246094043772600248240515219973060544129531883038993289296293396389314067222667354079758715945185974861604830304661083310627010650769694241811647505507150742967133440087874085741771999978023081909474292164820331253315076669929405793470294336805187877239848536385867354750059794688414573783617261533276129135756899662097884007711213046723660685631124197046464350033468401481494962279453069225392471934394781254484153361661134644331866901862944172120155165632878444797415050453216925969839621307202842798043722268201692027808037926481485241741656129763480539063571147956179052727360273765411692506575095153265184247573263805744214889229042527290840428173515963253372222993524537113516085172880214082669862248803063184511623090858956223844897438529372804617392087653839498834510004381609797087006202239434561210804036995501081698373259209059473884905028464588510238527063517212978786561390093943642785772000518368955264639273601537303867015325725195879882521005131414199048528654420347025336179112616044398559327156978504794716953753277339208687562974012046024907255004868376622682964654507742511961312840295164369386902883070941829158332789883855375276643008403187488361401290395067339448071986940570057042663654692154051314187932768199436909351540243431190010369479519751182704692067867682651407318679628933814937652732448362452740812963119159167475358665691491639484491989317740899673015675502117104437439077189654991621926989668206331450303791990462992457232106233221641837074360101108147976995374924006624094113691210072460656513873500330400791239654747909792497513624398273691485777140455225334463685960245429086757416682663011122810031390964092587343421170214738543936440842658084044519154516273958163547821596386337683788240005652249695941685754827134908675518836618194104610367189772296954574932128904385012153774092200703572044895797917588733943962944904584611927395568068605868366124892481149200256622516126867704638523104753897681751064430686886314537236728468694243721851321098094483916374307858968184313774158845202333606779124644909040887971525136623155297833346978217393770529706326199083916498088690139599044025008343963256539824101227615743023245106579348555374631543512871082434451134595661136059574602673987743258779357705498039037776811938163019789683360088063707924034143193724880113025825113686445218474531846105359526191501923429701105017127733941390985863405242788223871804658045743157028553323566556118444446779011354232145925721243790858428502799043950604216865845635027253770368848943551218624750717538394188513726185415125126711424819097837210066804964055347918229841016836891996321906331295095729171243364262381246824060047142870059565650438442248429650939718562689624776315049811877884845866308152893607626660107427858661987989271606407489599825134181399912301980614600670001943426156445476710791826918034354567381773819352841221921303590021746573765443110264824096496666671438282143876949479308015046358905438318566455584788676369369664805352005537167149238541756832431440618603924037589554780065714864330702256019628711853493050828333046503799261298651809950511103728130146209125196421357675546220720780157450364329414026234071574170070997014218689866153654987528079948946955133005361275244305301692005530151969883752537050722986271653391873561243501771066624284528209262376043904687770472707538162007469819831363360168984535065342596874883094687925589869020272846700848581529897728916390441641257544345604949118944381215499002335368261386177929127924057355877349282845389732462167644724914763094731600307204575118604874764488859272808503135198088161071027465236555719309579488919799878312664829326138043832416013315302519199386518737624655903145990963237978770972385664001999644219388894678191800478057466594640597947267294210481766488621289066349350737063548277261749496014147838900148630916771744618187487138928360844255636657624711686103779115554140556420424021128031092728649338311786080699800124046849579029132096581329471221413224743653166329044233642310223359636872337332333498353504184454562468766504902889021832280243181909402119998448584150081979680828396217469770356454057332764926006500982723482541458051530711147963109029466874383746379173227072284731713448358605841157064573949364036079688163506145165384645100149584977043490245702118891067125224743859097556825621669211968470714864130316058669625938293327822088564986682734635835778583025539137937935754144642937969704161325470613152894954061847827897771804316774107639826789903077603121489375323367645617123848480088463508027855915622385370506852356605978576680714944950247529615054015664935493980120139092772606759128685691693976380035223919211683149877565015180452490303579675878591175819907469700929103354697210786299728042628036320816915923006970358002180161381883752893823638697001573486246759838727942074692934393667184374035672161725101834392584926447141322830997665863625803211229516044016736624935229506306112814868764901174027505945767733903625941306588437465063497534362323654953363861679797499645740633344485781132550011760081963438921671449720951767497911087901961750361005985651206960891602538577149195845561660749375846075620419470423929044819311152472266206829986227384499331515459694180896282926706596462335766518879584924200633761350788171473763038899936956701213835678665902368853877875202459585489433626031798327877276571799347477239185976470713920875712013682844789352011183904963740629829048006145016959167041754908532652968721068937922666822754444952673927064751139153890051572953393876361018262403724517221629725642641487382074160792063572416637509230563746612631655782898938985286700825441707694057851825339528655730091887122801511259551587811659849984158712763972560333289639005398525813685199282286305326147052672930579235668157536136108888788357854911885754942661573800598239443168725689305068649263441294717638001351857545904686309563248123457949922698696969618659982838267747455775286177139784693573684633125766952957832961347549883727564331496301954498637831015331407519507599600235776943120762983334753573871389088032136484936868341867620203525466831718780410030356083672260893235394507735714652869880758377309337857278029327730420994882842340558244392108815240416087193657715015796189692569571991817737230885804749054681521758962472490019799253594989686771795119307368617226787206142576471842792717135995058118745476472443269638039790691014107006044999890331978020313408647406356845260883006816935799678898711354220432640519804898163414439227909173147094099498907712993461418619715588673664425363757081116513877689791610080696916008605214896726998891786147061915257158758581592383275053781939764832911048661044926352986396580602302656709284184713005840875126556965788510978592141590962312479303700056089286639922651493299185328247613886178795146657796175274197321357163962080012237916616812461764678585869864862796153795083225474869446523945344281899209329745281276341295764513244009953087323460265183355061803037380700375070776252483275973497744847378621561345702633103011439655855999065531679536761636658601038683445206521083224039029681556757021575565873091556060414060336377233374078453819604680769352351812633989049972927918149616013192751571540203734383337523050907772372869145367654996938184718927707286582490274362778868856832947498342523392154125121145895255685016596485666660698459072406243363665511212873577806722888518085821789769689847932831299937625449511156348012153321726528425106781846582398784900881954242155062013995252582137011724309929841699265685971076359915530839070439832058576331618507685434663141025517463940774224803743478433002225858532025895655480176608030395695533883560961271457901665238200893586620637504987123744706877484314859137714613538709153690488844022148042704213872717486741975927557483918350081469024774340649224692343270473255570965332193238644037160721937196807636450561226191584355413112718527490195507337935636979341630086908245842015346121834637824757448299429042479633667166220146838174400115337118381743589710085629918048835584492680600125578323125333136283905830089130537202167632739151009010575634897045926761772553637660899410011749103657866498597696460460725635308286359853121934287715961724682032098919346213498065186194766232075351104504423286178149179470801125915451277484835474968461817336024535655339319636005657290765950063441253805303453552836180629156083694077419559256978362930524742863496056732334582480805481587805793905908308961022400290221157860559264985729493186181011852302172508478292679027295651993223224077535255198895010669095617888334946418978182468684167543361152720516419860157384341449786434198813159009306429001794764774146242773834074863760443571776743647117295928012527669370290108585203936036254455496250121585597317401806816839035464307461806865296387331981433439230437281768815050614561944419919191800724013579187813425241373187365168911362569206266870822101801182176233593395117990957717914333173346986967618178140149042989339469435124364046280988405920282586670363498843483709334788435277147158311663379710478209911927530595468282173938285685621885640083653017141134527489563977020155609131857064772174495992243531498332115447247343295759720370238322042376338859326131378367675886445410083934443982682077062480649161043463171661551445061770065644244496887304709924453132754506134186435666383799706574631332063725488807845970840628061197211620570855283226040537171925650483230455400247740629322322686712723470275005178908200916325087121862566826420602599642682518501811171353662768919149476753126518578099464916816173962845230881270238892026558678807146116400520301076465168802269645879457212433549579964082883565929715921922079808987405642806102653450829415798089727315015715789109741136559626313465129122424741780662639468702579914587522430022029253706453060530744316622923244597135422710596578254653104486448598349054666163277939587430500298642349665963704895000981415084588254030223969607082155555266669775716174744622937851705649074147093556945792211337621993472010157946273581248851549368978166259273622347447701478134752751258095775723311691192822662880318826422364781430394278437194240390229852049395229015430115313721849950609648175493630113676750541810600889550570967363518423092607527162877720536249238852551451984316307009777639755009203276378966988636962417889849696787100281898464142066040019490400031526411228456639244139296709180798056282321697313117345729497926911845748221654267080870774316744061333225630707435012850118673788504080447293188987430465441505741754336720966088743332532565736441020159761304431062340402744152726001793339229004296984719858139636028193180215501494537361386446402576155785684145909453367251774310256632593431537081262638723507333635720191062872533574538069350495084265618055508912400685879439147937240447792013628492185879180260055972497174544414563224955648542571052850308767885373401678441239968547001895814590726866237989339565998587273623996738223744337447513536391825708102344326968615594216569761811645419017483312075967791772332619745661701126576205004831694477612602643637226480753909823346087731915401132108800014892341701120653745776191457184631965006987102086201101365988340148496054072594435385360297883499684896192040094935120053604464989673915994571724861137767989830223462261055556833089193479264782005320577130180669588294410421365169453582010558489812430459626115401414689299217757996905919747925508919516019688050457743628105398392351174400101475704618226188240020137189994099185901644619050703639960420101659796196042093538029498469979060244340023372762439542891816436157226768236914366041575653906724059347190479627664798563222295827959044007915748368531955689580540928103788671151611806285427496707850688299918144141494734806552585376193592279748836967703557755779621436904983494657785040351582024979505185922567470179746614257000518955747057078951122973018266429657910158170219585711481995919161213729102657597744543337326219812991327176937754942997729920742580693201746057908562700252189286543394291282754626853604231755488899953993790992086312194303339542525383289703401560469428781370766998709292117713653733259446866854255491376272528098732634612391989110498132100970222942098918971861600666815923126025215869616101692947950815523268111982862647900613575936028029685143420749574051300874644576355541182384790819080719556844305489358175430720599723650026522833535028904436913362662657481218102052596538458396826124320774289178508895302884446465573944093998919245288963498315694025035927196540790612739971471086001807879849639724251285493396305261153282132906613152376900070269971650570403756597429495448948846310876450286742254469606299381404466443961865436595371583892508546782103837048691902354693039475890250864794871626633917920856439680931736557499890293474510581150937686125369970205037831640192427856559683872676837088478106973761448335173912333638177767410165964540765929272508702546264381641280775082805951757284139732866872339428722742033935324351710074264403401629943536105571605902434767285263103076712682310550790093858580761471892397679052367629555546323122563491401728806575244432372501534128955075293672897893294411905350754616652838063835339016528289817019910224071076183636831314848307811611612084659863284396274489436191568510379729505333650318985223840602887694582517020737518696137359754869650353976557914644354108785039318052305014222860679431501735083704389695798942142736613610799984801846014107993438106340336932229918358176463911515537924201792701727437945468266228293029162686196602913924647426467145352968842320661524849661732634156338936278457220352068373523127897414575148355340991750475528793272199811512861447284494309913688267008970199402220079520570179001816151768669354960468049756921982701469536654308072339111609531039871803809508357920276110007396292417739412288496299871884653923700126746801677639068966675373385404389968147175426906015467803274124397410022360699110114013046956515698063196564022693777171644643853403123818956793192298596484919890710865739617855915556393317394945519914760595440135724693092315177023088858764803164483343114159921040337746996811074335998705106343240123071254430793570768371323368911924196370135733234377323118780307133245561354892773372234027445106914354626268384246118945329123740954638265357442400058282873874065524225753851126403488023090491037699811465777767010239302988727637669420265306195722794191775642317419811478266049398763952671454648997162622728479945639076305098126719763971009873798776659151202305996655024107801894649275446411594826232439432732601651745701842422933249926607311702931157041778952639584860705002356069858220310821872788354564181388806282763106633228389998247896126043362274082947100413328000513950591071885416376378398021833796572624536708229386613182664861003581917867158575616377585962621849314833431886204703969853454014488465733180743802053115918380138155677821158345784545769334959668896524632600818114635744358631069292487347132509951662511867488850206390018784849246548494057326150218211303029816877560383069871610497336280987767744049428153656933005728505974953901195677781865282839528606379270668695421535184018468915083887113859463451870490075350969460598179678791602408402786289388102665827831467447622290963648240108086135224018905294977543370882112297940435079913543923725896059094484674362789984538121780360196557451009475500377251741141752198960194667080889422134374444252542016018021321778592773160356622010718829251606308277967878312964893827942437287440953960891867225321580259444469128803814159161281475130695886243333277747299095276053382243656388079212278413943270882766083304534310669229407577540779759367533215445321200034045837422692309539281821306732342856249400097582665769689143173111896124483516294072925278149039377845283024750058684560746729056686512832563478409364344277663652533206026341525247148285362094133378648110215912561542891049975986654627281752930467414695711940619565273082035495667181359665616208317023420685433211981159958759072386015242899343635278280008111951364958009385967404504206872995417907572395937885492825565304652467540467477602578804480072920202614291144263577359274925497822078715380758252161209032535904668812573688624638351230478757930146093986140562357444066707240193114839623466089577328680107020328041778327815337943599401471806322466619407207906171870124447769727098048437044556452775976776263466602495776656248666730753841629118885192105212030415531822393331360886805352487845216333267912933627283582028757582568642022973657921379068545781854287036550979979752060359655060480715388518914775898479390470645447671307939172841366553993811321958176740985728814012125452114575002558630500725884369313800404951729831770716755674088009016432113599738076367915564554712639800744308608270663444008577763114660909851460524829712817742008328394709272403114519330288035295690759046333638974723351322746682978751098482953488459325109382765471516966041624026964595228639308008036881461028532503864089412220652531200635202557587639674709915824506954188650638854243561031173378892826771727101911350355729929737215390991951315770921795409470956972046014639968784179447028635509476378235426516540831075187127661501244840770170568931429109903678030768705017107319200643444170070050967866769191463705565241223535645524295797581247594371766254704417092310158747492276663462251444326413334381111239503316460539992725923058624038176523309411747188743496825660145141621421946607505111148011009436720508810434057690250612234224112582186276670463952230954887494477387632945719960784040501873651264855647555481494873090311939517686143424518077278565285701771045603198590338440418147153908633922370247960154734547986826270064435144650956966931183120839378286046067182096836421731987943327625635021361532758658057459468572038509364030666385514161192269368998037237385386373980061035363492704477156234854230280555293837443667543339393796286457502181228933741135789004503471031862930396213824056395395821764628174148932819890637189371620210872839842669740118118191275351391117053090804176121635725972143448627581889068393393903395363647945548846326494728570151850956579436957450635437406706915350861272372933131836782866925653744951924908024791084950468308402150846920532623416619983578692221444504348679693380673434062821380073054142391392054479381944887919007963419052986946378888521136174149167401625373540049527584173489035395767699236615819037969179293374334091647681139610564978893883128245187832090296901229097723276924484482917036010609739349024481080292298620147317599162194665222752126740705142937752447104285814058967138518081465310464044105779209025172835691266546683587625981348033755357306112918347873986187682548984026595929983891449378018104534474502843322160803825901703355797079085512034481786143012266076079338536092374358269378000883140030070898722940455773234638595883676241506138544322924713022934597330197477121475582841023082834443749318998581223618407203550111951905020776108136510556808494454613041571370185160472891560335510586890675823186087827158092248776968516575393022236675423970638884054168239181280278620428026709374970076675046644497470789875734056374265523321736836926581866518996481112223121438634472606106501509480833348897718432437160160106914641730647706245116286141295137511005859185741985641776348729390448553118166012545560707950080503215410541028050726070878221316427927625157991432712722557084414865556189378150416702763768049197270858070883582947585706720037046327799872802013336096100862193859424341578839671561646954062002854521927721645052824749962580769206989291867369454781812884281489253580037938259139997042652401595302647542410008304909843655984871916141980117226071340917782433715073773909031647512904348372308759113930917580124671856891213718273669314063702629167994147797834852102580163181755343926531515290196450944418335987062528808994366684794327126486753994544642512924799794662993797746924121667092405081164711354067676022212581221856856965913938604945865452688220696658889450122425011472932023741667730180722214959208920262373691393073836708630207733491956958954039612162632194833718557272631418230286011716626485087611385779383828658925415015681995601333496034682374609583117592261115625620559409162217868876097406010345691602484640641971314515815304974558100505425899774392797717914429476824387981387823437754971951747853971227935692550894686505961685314951174922352974118728289763091256471048612494089183118521924996893638006753327844723975424947236553711966830941900299604936486040874834603039275271724947668688220742049926914941751355182243651553347534770322290572755896272620134394526644928958202792478917403162875857187398661209905250598870750462975642524905827155947607366554060661226217572887306298085858948466418414002574808010831763000171515303889969343009832716280684780738558899409728855725339221077431717704244241813347326024227637898096548180346353238659432386043809041641673199995664848624228068225526497463445420932424440409867043665849443495031160985061914063816343077812556546755434475367962829540060005914481454612717695068116917077624652240877126389127290161124209670170356453832301205248567933915548194099490135580136110285302661933654395216235886687536442826673125239302589195723564255322864749555465836019274079894319061325429490114778495288570298071276898185748658903798238640575488798458400477013777831761452759895798439374443724270586085113454248753845352473606246764117253239814893024636016510851117393476849251491317157059692203565633868771059336035180062445683531950808718595960802341688624075543294790907286006043126761077993910430103082207817123713851695926518565594838524844754816714998546313252273339019599860466228138040229547142802848881623721964307863671804318374397779443393571446319489512612851842195840130456393658275076538884854512401287860192957159932401489913622142139150504589791650056577107600842298665079489027899559447259588808448759574292242393354568533664425809353802655647076019682076069815554195780548464599472289475484021048211868402713711313696925184192131610882612302239459077423583259150446146365964048063090181115536486452625223278620971142833641020129996190081403815119345297028185320963262696221967614461874303570112704502446836700425171970900958430027709436162289570011605894315370897771712277076933365896939191166155219130009616747188686598291502181232654274296901121155650154456065918336058931922153367953829893391656774789580118910464889772252783510457131088347837264747507301208198505207871955436402453959606593773377436766249663591649538703700360636865609728018014988299319057415277613251358733698238168484247163937145527219383661382436810143320278275948859395954317858110239802651436152354454065851299791336361861158540360569035207426263701482183963775489155309652127503906781256213470054577634992402224803765568850795842294070612173309414924035101666082176658072532637790226263808464096599093644424689296652633799972828134717834003144634520766957212560844027661822590608281991568507289631104658845936912207235522105470186243987075728406795359937997848484042261423392096550542058334005072974524133471597434157200121139187410699589567688642748053173927084058499097814463967718975389826346893851553249493037697488002553496424486422297383152879950784358187033990714760857011098064208516270280846978336464200610441246442623112627947679490057642803092185454203612435501554253514676043115226689556071810171006195380651513736733435429852413875660052789720211665847954499502905632832220322650770363461693922920031357763551269343179334825210250381901281886647941434230772914843163999533440969081912325146050863631186227496426016505824973915615604736729795067755719703509316298914422147332209666396829850543740540777690082693540563422062656527300042850361597826523465365187443610062771719625044723032842996995212043810680358786096948162071656451807276633021546560618743879900048069542834385965571147736786092352663079868923233465246045732900658336127405182915388723197758708113793196309242926245535672934068777903198873659919488893612028134200021069780321829051541882996003143565036604028829511141374767751403067454898916304025261065924590404242785440046612569533854789299534748862379053545001071638551746502797709212483419733836257837924477683219767958586835427616832564246045218923238631305318970937344019254932301460887777075847571488655820419286290444942611741802109993664627036290098465092332680104692817353882681700888249014791129545429925027429372000251277710628030373399858807478887814922874513925103878250983407669952985731557675568757170255785107202809427062416547103692106208490111310281743092781304149043959042631363063646592378031963915927998621481477618789147461060363000641440039545591575312235328772941876616080395371530513616204863598606086995198222461953904196676870728464101517279487936776595370136941437598695718946110337388174323229047431936206608637196543965476905732654091746199353215238960999977300907372419747213463721091411853355117654179568617900695123260316052328162151933412615173071255485910877888591580759276499876839246646364519032321633262714132413801804418271522958042188931814707154653287356961855932265767757589973569396378205981390701939400427965666335913295665926882140339530788292867041322346497338865471789741262588459349797488116877750349655808504562869767007459251605100470581217987828127757677640354496505422695061940370284858098406174128504675287469163622521237831102418997674088984170208248487380000648568074375552590518364721950495794418061233723224919618106872555985017221810956870961149884662156211018809870078197260796434167642642437867776672769520883947028128921593202968191533014186020829540046924627041583843336812104535864314226241999928759617433831318025839943940524393316582000877358316261546628501948022001962659028429746139099366538965441532458505638892579371998206747672602747623844833938639951387457870764073274795133334486483189583883859207057745715336935171229058520718855670964738431280451370604598763131569961227216451580891594045207409755627847197380765789807680123219161142111708980130702960593490753297237227277786638681914657605980624400771242342800348356857004521175642213591377137820415236119058261377651725033736707002758339607685342645906549637990974301183143671720692088267677683946868763984791547220527223124564462960743862311254800311591588333386714231864643454184203389697621540706934032614178958495972987233452615278846876351733657478978837959459679587264226755620895794471414398664253457559783612664222689627254171141439337715510319526003144635456261868613116697487808044712150267813805275043936263645341241223154667722044476221479420953837923656446264941621772191021814373770104806845278872636876426777444816202641197459256234141849689376389668135673061856957925553327711373029490012378499668373579974555370078904610213742374581276643547805362108727063956283830509972587267667971764576570246807186587262344763600699696449144308225579563704261936956329387446456683233084433352276832827690817078635832101975921688460648000852149620132587210026065495683206092167945654591149729430430371958178772634485103708428378217202490789604991018070362009148201182384401768076708257377830279670450738122328873296020569525217185493397603863470401635417615970505217962103065374352672558509239498905625043984826255410281678450255184441648513608582567741709120729791143812294146447876779403242735640927200167236134377497979880219868673541693711481038693089885735826037095741278170063115574206001904784215054280844143459089084999986371018419378892557199353344892391197695664142678093845598511822400905198970997207207308065904397685103773253693108232446969238329292269283231754944234261671344500041440938525215374720383793596681477572273452958901365164090766679170864842758712317248945312538011151853791570407832129775916730639317027225394077419861810499285203054014260184114182395411553037940182022081243918910213315974858953574097387197454068224154210913564614176057884228712242351445439010594200582254165734204942679112103642139633521275840227191648352078564849820672962925935286770332086918869385783525851637620225111368453755554721508738557491612082175764409966257239492158211853339297347193026510492791387301649255661771043553350689614786891923359922444580343124836962965918415143219523737568446180703058135066024620162596516402384363663479810797359347950965863918930293247696461396294872803131007477054626339036183495279051820770329008284641106731068914506357431042542500170904708106876626780955172817382328157561236281379057293810802261589131242908068758407609788432769999795038422670097615406063054965186206100980954145454852790922872905626130353290642963469707804990424705097817602707511524541899042609891385323735363251395517920636376646774249064538025460578650952918318638020955946263363978515859326850666383066270746011410571626233249115289472736935787988887685540044049237335032212908223905013507281944781352439807612880537532252858320473134953847405057002832161348127140091418512638907160022579003637867775575008930130638251972090961928877954449922780550672369392538651119570337703063195077856894552694821701147495936759399649437764711242726300520201472439458065024371464910861274316792144562422147492133848293598455065371763995030072841969967965618983861195073234189158309048005930428363884703824422588539203102130059889683368773718652078235240369594606515857757442027184891671508443408442300986160959104522342688646064264822900469059202352924846961741735585012345953285133057298949598793212141164597902043210176296206128029222826589429441828722276750273708646526477518211263359819600723203013252769965700855484420865997751599264436330374611389032492714167404930716000295413721396774743083279170985377989818356967622446434133212438483238046465149280986477399137876896089420644952849426631188798199839336543863158592288238590930803324093500350242913857647529487608702290860191930456656757170589281277970054069128790820139205752558112703667239699411893555969659579358947372209277006564345501539512494195457198807701521654785594578964061165746371455234220030500186191884389915881930538581573156843665920221067988760984377513756264247002827008135371650985404523576399692280669872798720974633279504227805953931029054543205865578735900605641744519222619033457697803019999241362208324117351633799014073500175534081810649892498271308688100857127250564321370549182018052518897483942240088230466517041754995962458001817220278726945771364829524504601531749221610048110354337367655400044528487265817990810437939987053495222902854357330200665501686895645595659049962327818689098512641133716081437833143193548857927481596926265576031060588090910861819560599962947365382691653270962296651479631801063860133077877979442697471398805898798662649392213962333400835345855838503074091075368356878654921494269605355641534296734470368179222894397354871754815232317826649232725158043613862969450300310467549543071628110122100477449494765806958779374866387062824864388842220139731346451498999019143376519688601240387361560210671854079296190031318368647128173439003233055172526800651624240813088767240902688398173682306115450218461935822233574366867876959498752852998471291622577338183247778107568689715652968537222208506502141183032904755845337985632363653975971815090768389788081141359866062008230526430606851442742131344655487129451746684636508240369846915903434744203626852274304187328351712228172514439229628538063269774733221552044192428875339732570374692640638275876672504417961078710861242524223011504415212465279175286692667925859806895709788307219253068173096056894147524545008924407975600442489672483490732359134267575072730155729977593973574989140877198373300303174028985942522657709465980906681024067364665299633265118678764383071074141725795950641442754206064369475725572967926243788341313042536592125615603642746739305526690342585719392568610169414571985957401096374108094074597522873226891157606267184699144137127247095163798934856887920924522815331377527639656996290951295787501431750158423169783239614933216770705081566939785209872749835674350767593522575078503257132174751226745211889572658548763788742953746948251356232889071966682109869863617977644452092780584134575941270786999141348229618453773488370077444299439787151132824312902993036944496194257246902624156989056709488973656383772649690277955792904758215367376853168559666413161213726631604695666161934464412973642410997458397081790482769774711485470466335902244390852924386522418586225180139453293600672440791844696533997692384112516405422162313033506694266268782355374278799850842537301535823163596462526809981233061447525204290583330349027026859810049060800522233519819412065467182814858832271626421415716936357616690384125808212107776740226145538942583829906961936646163358049823796534057902822617878994396203524771844610247515228870013732614796924460281962155560039764621985569404970894885329455576646493136216882224715440670912152812418445068869179924071413410995087664159546111644630868291955748416682843614671446557466389593951301704353156329678948195913184208266628579811847126468165387323921758744937305459681548004790847176979240697152109332340517507071869494220257317117160716994590667969255268246557908305430313314552693397686722668868887280150117665729964141091137066377319812832862818799741087591980450204684856374151064727392876555534935633625226641077717761203473553441567131286640631448804127777915604456762333232092023858347266628372752770275758185766981050020686834588344949956936427471371444739075592684201683092664481831795722487872728417470496916440441109634303479874546132989945355771455856614268671020586124742999856724573518505457373796364672705023206420701858191336052425691890384138317070512646471227955676013162613247086720717810953460116194783444867657605139824639330082879013813135292765981908257552532697395658330731963216185475013482889992901768689839707096185640158722810411823550034969001449633861252559247756806297532435298103653608659746858299318877418861991612910367769312427147170894711529510308630207737203748153508770760736457597749226692678073497600858531487081067067078383871237773062947169409868083152134445954977974186004831188586398826668861093255339706664716269026522524062053150785687909538872712190278450519730400917835440625944809808281061395174322473297086258938355311275382800136527648356095451377164274697680036705638067188041888153878725612398092096214049428794477755647818039836679263708748062898786969587044885565866990699155282452684042734577113548595569885478202409882989862832160814313193738851412954642043579020092000966867396540321793696167391749551520874823748778193334262440356249149472455420655566551613576389543329504571097956054365504496317230802129607215111656250855019648910689453357814611785485453401779064864924029674808802313732988781931083311869041058496275492134098966471294767197491690129937684897991256704584540832843435335061261781548955201469428156019310396516891777226434729251680823045379579088616208163853624715407533085986317810626579997802369911327653681818426277028437267054262932793798675609903475763353311493610730269952440123817311315807263161680079898814980329431273842459599942291455225877214005231926274017248583581271521456358006504718465990445372726808294635143905706983444169552106986281684038293563226560050211631904058242841789539660017849670487363920419025718897147276358496439918156911316572707250513201505741033052258196310948042238307169193237111946293741559080186521333132023675683136957120887953465188889714168371497964482982149404873059783817879196390813108621554432591381454800670042641955869858851831600539549446299971446903035459419135285094600840244362332934893080528350137527309606274390045279973671424881171729104009101958079416142963676383268173215617602437047118265619795752094714436151265258921883126462310062472087199865478001044511143993769770591066137390769274504379977238982526505288129699973502406511122397265853406764172252878259873391762519491015843799880702743379580454921953852920427737378117495129941974567175570076450185666407475170124589519047552870076348775199632461700093102660967017555731250194377679593115713795866656804010914460996607543215530521359271113571335021535039674073957664341105583316849926337539667383957280757254554316320760827941784707753476459912034900248302107544595413255724457718960604418501858066437252705330445332433916739926736261198590103046847640472676710890951331961538511550876383163652763512382209694556266927527504733246568572531890196887669699139905595543795134688254146697180578869071965421820425254382459014067784821988126383052046555967932884359727714388704858056678890537059251148481469774620892816941537438683856993810965212718546747804611021019233149288323249521888232826267623634002101119390622093059842092850034342231115294049329623186991315414408253105954480276023155528202195505358433061634551604683459836684887979735757941940739357732625888078788093859360219259842269427948091432295005564374228882674708567693187013781237969255050699533565074286469309535493555523468263775265569841684085794077148486666702933639118194994319546475376248655656862711787391920844021218514865962510211953153675260952068835723611836912008901944796943474487217733260214741365972753014304317217546849225461976652187101817022241588809126210016920649430036531082150569674623040885349846694916275470799483561093373328323268599512055242136367921076757652770571348717500858582168906061698146069415692742984892467735655778130061034041334250634972438327754142577619542928771050338821107181071195054947207927004389865450061251932424336545134691212540036714802988045318281440130567220364773830911021863100977898384900423407908534997826486188717328766905928116020052916891344367043638534299740382472882551700892545384495106395152603346241648634741600595873208584441103193427308242713444200010159708291540876853641935891393802668459176903010733583626372434711206602877268166146946459039248258414988722802428129570504958986261210928205483486595340432824812453821520367708053237167442080271628035052629935920601367674430511240958091136906545883669795773863639555868782414580456002621453869912600249688501399534870310852276255173105630265802974934124781761649183014535263097481246274453682194102172186507892939733997166168295910611878663372355573133231218916372783725506479924934849827370776589484321024903454282518745435032689158209340865242958688060958987886666853740427117869485443152918988622446873477940214926825323399975185130004241713028122161373004050968278132480218622119067384365658773953874666508442611216883695291521242679589098184967502698242406809749131838226186201029773125896905011698839784365043667010771456701016727719674158458550853306839139913066289909790420249990615332220476534967884895681283299042580761242180699674548511427251103443606793825722560546254362038840424446399331121345257614999783781917524785069222920101882211574220731180805937958120500647432858164648701528248874448967643450506271648227800649948462596657009306449912244014561890146822245244940948815019550038316838724625286874459733096967294203422182130003445640720502543364215424586541907916074524673123343056794248346410005285205863452250838505455951112550510314336553722505666529438860588048282524195251862892965324665637696096313457545601281187367730343861038589755983899595467210456635178861373496391268765926277814706734739101001442310190493852971352669639775833834498901468585996529832068930983232425201599509470226793250273811506989229952479844480737039328736786790441074836045754266927318595021460126768610315459436140488596733836628747437275800045598844184529924614513261927265844174899912714781560352632410407457968267362448186803000196651841732506858376474797315493385732959325067311505555841916391451375032019673825000894326412012788447873377740849573550854547685746921654310395488342322387409199837858952844069230479597221316834883316137492552811926143168380034356571937456664710106214377427680409467575399467673177201861971077364295940244479633907369359450028101820137101007912068499420911290053699843921900882765075488883511407621219022271523012030378243904996818569555749795772211975773035871189517707496214377063162972892328043387151886399187467800492249897816236656227870105988344369710866087031758314569455644655752963327578589051091171788808204385201621210269253114051009895764830704145453602485032647965658603187550213759751921285796040907931794185665943788164178871918939013711802742544881278643393448727922848032447961436818615879747517512588405148212951824903675471323711196800634122297538196631720376723179038194147457177513318512477785684059210611163017986306615150679987377865869374369973318055843115513209992325826563105648856997820005985165678640415344684973729488258068834378602840326402574385918988637185611725733815307231758748872093181351281421661978914101169575916784959732159544084735229289620692606591151953406302777817628265139752285771899194052527811286945950579036731308965119664988128562714332090276687396204445150907804567096641897759964954461155321880906190550155131064033909597522469756144723890389667518191690666204550166153531791144849888672992015182844159439015025759341913288301450832883339625697031777286145157357917335673698443128029397383158115592954708154389549825308873409989021274139083213371781330420420777760000716571899500438436975983991176060279296023562282446194941081378114883892278936265991261492456130950954587442550613854480237653005577318082277645976158686806414017981872059206261090760709471311968831246200235326157253811139373733281940007694131431459920501543066487510579750633528476306589745312651468125305913764941503966398533472328729528070496740506707714679840184099815610078794287295951652017771104286913003521597035761174537873028657473508538351072592793055759535623912019126437217066877268399207783118155628477016575811154537204846814161449071225995629361484831359351503541172622616368247771133218685611735798470236014575576918976222756186049550433182330556104266331575667935250284167904888484023625250828952390758245145378069481167543023625469823729470300826667466169410526622088025268563092559087750119744640597002716857325883437445572084705558574781363717893949341179894019494452894625019648898521576376900654362866806864383922478455495210131056542938455636319719206149602747264911401601737931648166358018638536521749332140099420542205485649127863612144731773055538110175140706342811009415648690712303891346273202170175213033473803615592439057278934352567116038058778244334159392754262319963700790370708541662442301558730242871691195796967168799726455135387838715530998329211805230741122836606544548113211257749600059898002207345255119450139269769206279531585483923366206771450368529542936286996141856835312445294122537325196514539380136141790462463469304242750463921901854167258323570663007623271071162322577644908990002310778281288877476923253957895580834560023633019876417322582068903418531116556752388869616660392675405935529208927412970103320948058805789742421090582532331683824002999769438389841995515498151968223052581287215601890132365157875667727775039523821454137405167687949303367737989647772249471982051816808010804641504358459923415415931233004321131441758140287584304750435016741155344920236326104384490297352001617410668356391575667048396530771115325309402661782146369204979893724296640273499139020021097838900103532245170905580128759912799568514469003733631041790413663682678391283724010896579466784058832292121142580695900761895786560895444857831013840763257599616696050582345051134217053945367132624142759655883787735858670333355023451836197900293028383122786175680906770851383961025088302006766209898286686547714331880313378242976718849426701304913790808599817344811040349558342856921705002488993990777484974211967548672524900658097226997954052546270607311035892513053790464070472591816950462976225124635287302557543693425969604407554666294845638650622065869065637106842645900849204678082840874477856745737553399382676081736755095360598057425511165729238974629652618370495681181465072619492846272503145406924920088138757191041298905656347818669500687473241598672339369270318876064096937374422834007580443130401734521424906000997507023628235355195411884934759949119226656531793725342233577251127523007777180156448388131618455611723612499268179830001449247616267769530275759099371831675457542315960944705707454463582425276835221247132076613841729297874486545537279710853049745789139725154163128596256800100814888972548784149728733127055471126783691174327285505370412005423016264300792598421585314052431155624935256770371803673888622740413755272466300394477601889741975676240444030534370333873504385381055886604807306161551555465080307991298935466111033048132673367903042855824653924589399257911150519901529102455084584095180319647724530327305176221383648314335195964903714042336270727187142800073795867237217884086691673376152783846589653050073870808703298665217197714265639553611032496826830587885530216174302193576299021315562752199548656225611175519264460897535517997242087328494246350197917921705484512062521692874811799541426405382107629317087223608965005634475300968174116573797794407492642063980539908941449742571155865510288686046980456248837568044072072740953895057572814026815358393730144898314921218640173405979263196864137471893779741851106389809740652089087406765018479634598064959767979229046877857649655322354780991709122896125704613646915499702884715315376357702375944167206931114805405870052917264979807552755091611671719000644738586580247145130736687240828000518872944672220263120419218281328613408429964359342903840926221284888510118781380867020313818607373543292623634857660713481119424616661413579213209368036701543466853968462752408889712320799903969976033293331034941090920138628791282349621924957855182902149299459072780536606639859118430368900963153265571506876603688872138216522357259125552106702775503119606035208188572045872685575148433779099868703177586466519497793206987566065361594537089912110170390543445319218251054481804581357913840549874604262340945782056611101799155516610930965824225137143951354415759636645112782143051483040214789573032687381224566967415460061369583033781824916253366286906951190956304481729504384395830972586466340682335297527116451867139367066522197641297452183891534375339243357090235234719412185696664702649630324814094836938769744081916011260072763361774481670423094078378211399004387338531361813458706089045931779290146552305124596199329479344209475380905782168000591879892387069768574195686194980017076918377093839090898428858714434661037227042032461433442401367251229109212884376485169285584048920326800671343555078877004746334782246161810969691519248744020447449386808149819622121377470348117855733965806136214600890699420305493960710755588520551837127997192927987599576334261633050283148793079025812341576687871664124003564072155828923452256690531450040891930576315655606210482251108057112206583962167963344655266354554510416492547841839788574489570668481893660282641172329959537838990119138845017151236180264804442835527590409635085844591466957754183601311900739490939254377001690087178707914810298572069674959519763204711120247320772415332470753193551155516542385370236770942626676269426252511118908023504365073330479718133411683105113577354477393981483322262504159235233706472581399786706954147021207434422306803720776265839491317732014091628646059131791943929552329471785738429725935590586972655094046150068659485232433349696246649254823366472744363833479371534124069877524265179829044421904904308248307263227446460947463871176935807562518277496294704257227412780774327229672655595565696607837639690825376606948864964905231167654930660576042609180180606436637597894602256468616945837229890075748297458404945839680205480926619627701851602882901410456817828363457960726131196011984345646359066581634922331816187870887287208112090968979752873526737113115181601128312190199670141686793120211805886525502151418950004870566452463626617200989740178717509441042887360340224663485436506080682458401979946380721392391662241643089939556941430179226954696650178712162095858158308701083765930234493061019569919725840563425011090544790819068658538726618537829396442022068839432987906456897647034791155277102576089958975258708754948661731319779679453333725902208356622584713211654975320706433757177454045594575328662694795914723722252144111791278066687669285269621143620895482424372055408546298916613605523806615982772925599426025814911435336320027784629722918065562501901873272186774835570913746182522352182231929846989744287649646022506989653773571010410073986998821132023081172955890334528866382252980637376889314219654745938779717746864062453014796028028846651081106325788596889195262914213025142610651045041427410716443973097903209145098515386513163794327384646379808294325600999543718309952264547294565382703280821010605088852452218038255241013603892698204880908596445442454561146400794168914017350299177151236945696907117058035386312405324803063562073313490906162302776154785548841705986392276536979434586620062438986136126455973282873927895032219991046324942968374005381979153308162736156231043575265306503444120206941722086131634494405106879196430208712553568622156664691139819277020452550348135243908207516275871843961368077207327711272535008940198580976396344419795980913608184650023675394390960264233846478579444804695401771974735697055782939782121464651155288251583900371106282668817722526299800827833581794495795277397924241425443513036002724372006735137937959990568556897848818896547438443647621277020704103461861758175155826496041209250532916451937118412453986775528815152024465139949962190011409988890015305014769712185713851115920287219371942415642742750745470022424433836285107795908800561178097152366003084617885134806332290570200493700194808958205226314227505637840123242270004177677020914385460269389756344014980895561815228405542081327334740549641773862335885863138905803993982694129955978724615236216068330111802582576901170175400218695764343148947112456766327006198434570660311270905117504952882423349188758416529813524543805804646444617851151167145618760635606541664051787866202768810087009846365145509000505442248754637578701515533420554731602197040643815246261871751340470227488127906100682974590460852876718400173163534305548565952629826471657522880498158894093335082075056302424002841715588286756571670854727684915287018380976196863056712821692419388937809995237189601578222502679258800096385026724312153548300675487259459555959593530606537790789619611568108350965614614781218797891567281222249058711127200392537215197630202949777022787382851511927827993111132126473481353611696220830353015468677449705595297634898353745831852260550786416468724369664915306531554964131720929052043401056809216436556087071081255375333786358223181504175040852093305899143425964244000790695682281150647215198626302042847469424838812284436235606889047346294247102565349369586919960807822596919091997063563890421796410448963874508951795723593158817397150843870648088765869042990887245916807371301511063541000811787481569019171713307277151289339368638381637445065447691837308078520542105822197178308499315421316958443539881711352847099162077419822742423606882870222746742397857849833727190127488099918052119649206993211969331300348395411962249342301472672610056277437805852047409727495178658625867079459505614152552885333070539882402690225302779828723593494252584635320447492294812383112579179974465381763164328123576844830390460250265281307508850574800597831892840732016342187086936966773332406772743382080915805574489252285287217142248266695166499689632222625116403210442664389983206025169976739700055763800693552928495126651797458859078091683527188115488946282302920772871888874336188317703277282647856369271096560938346451481206310207759771670618707381583219968147026055348329645394205728917408908748744680051732809955482963462325495642519031655050968715511953073937703949742918530737347341495648804462999219492074768684011393195869373839892140757971656279710400354967581437587243586739168853169403394680774255386217213863284454409316802804306021694961004558261227131694295397961793723742973954300678101939529745681132177245198358823290212421595563758097036402957649046687350155949387764121745740610116038609811201566292951697375326028667834446484123638315136552666213447204677643442823616540332849057690835355941686806085847992611836508279959817302316370317933056416885198781262852188509321236956466592314458994753824811655241487196171813082492504476029112436437920674111374133199809277796350377364068509608407314282878346001759191304196960306012159026796136140878720916885295193525679506915109126840989844070953738206532004868297245822591441270389817724304500020738788477777708378416888217694185662229280100851842224735122050396660563531957051044700236084566425307424332974118012760191417122222200198701853171333917396714677157650653949828313463659965525116587091037323954762152171929617866713249093386841840371657349150468342922064056484012200171099307495553568411777047293154520635699534782438272304320230723249599411586592209706035049864161544502375135875264062780664859021590207957168104903142469443367813978773608129098998457622997489911176614930440045647366450733151030370100592914030181135181056395517689690110516586457428232131326456594806217591324880351711296522000512434350878685904229716356542444373082448844730496083251082995675371524718334034550259130130605172880534525039736207566081819702672594667630904695423243162536563914638644347484286664137946642262943162998789913426751650497729180867804682573681187013689539142933453837505017688889298715138316378014804223302004698908770893477516662268654323336098113337088950999301761244962849409586483351008712292771366885479846063468498907926784026449470466807373339950685827268281820571987790910495114445379108190012433763847040249446150858525926485712119150613475406649390629995063837456723909319633753495847292060631051216951069053183799503315241539069934284791914782170702716237441330223411236158223567757174652915758665806311486207542534920760748970358729203430955131235569920806336512866535674035019351352374950677030904342309513936102748453247193858723599843272668926288429917164837021446166360458054910600657862526810372067903620705559081360898686241779557193331020500547076227205839844315005186373420213767536503497510866377598285536530793031366278833224944514578408275805345113168648646373296559852526309208997455221341341092335152560423508165044376477858417680338868916474512684766271901394316865590341800224452421517820910125759993702931225819749700213395495832256617255074503119885713268270104251888090616578987871119206341547604576986169726107999029408861556509968755019258212873780418598104970137898995830437773841593450123057736689194498441669656680245586327220618140667298792529737751523093678187347169302272870999747522443535272471923221401136848649217294371592899146182993319852472571590841719632326032536959873579081798231856172366062440463074469679343233041829358239440740728726735980336470482737442575323714491705358387734660743733380073689673192445941381547621045734363810179835584502256275152097609655773235370262230130979919406437807760560566054487514599601129756000628780828100165834143277004925289977292423742537697126482624563638342584981546860741045029800683664902448078120329642209427107288281733551883451154427240124159904565485881678799368009296918209430390597315878102630683596571296155217725108812658751938527389879313641169160390954625435378945071109743509762741890154124030812982551423806043663221241420424422324466170257132852833000079505500857915711251459599250973703367310386631055715422283256820688444961397426600470937234910373991457988946506673814858724740443566942981003590244618590426436450833084972305117774749496510488906665573038006724255823764141368759480284747090691845998555178541244373186076202556720043867104255123771167110733275354217737782894079293637580101187983572946788055502386167266739466219080640275502262115056303393483861914463177602373226139272014015001539047950003569720996211624631926452964238876161241281833184611619754325492431570717137994381412725273494096188597906138549874978211075370057265456694683346319166311507808420875352485723318746620908804325176539642145960889321547148468798608799477513341874784707568840101747682115660935095558591289734326766772543951145214349945078768859279270826983552097412157511864092130221616505133065941876932035469979186940621569663574897639536320143654815001077892237798451992457105975564241351291321195081072149568173165001868579723696206376268967436778379087851930648857999466141846824872737200106783650409483569038642289389317255529951703369898234745002316567012244684887628356938773564715990555429350627530464246339579892624550286510205117111438547833677277993404281369885792779748064205300719846708615105616856967400254313262305546283559894961113606586117248753656315705721402533510031408948693225072830484076038017135774172639752414791949933653122731111659369114113426513819249984950414174359254049379143409469784249884189726640684720404794257731242677810242498782481796850497346674052391864147206437452988527908703194575594753210806983413792182622759303122811717878260952902299094521955066176733166427481553800629134832926493517960178945978096080861075913806995061086679314899391004839595764332254364605124390680552293150653198154726594316449405633739096303153859249210276245729717156604796011660539316429658028355395344147032618555803502032120923028925492821771386529032513577365057682141601782724286436653454292783467015769373590860840328602669270746068475365479439471611161608801187862328340211153538795796306449130811347629245312316072703690423591776556052870031758189586003451165871933399794864197608804065156660869047168686301501656394773965892207345705764459401183432913984684107992562210213848576472123337121216168495262569980681708017979014522315208148013192537078830314233344492003635399668506842327164523529418070723264746449695866457319793863476801278219435720015714021276330823532021427273365648809203850142221151478087317111844602185871903818323659530174055384974799962666481403045251628059459216789643015869641013313083865747127384862925967807283880901972531873780440203038632240582821229411463608799943195457123100522403243183062553108082242991580909629660447482355141459427066252213002681680385135533789510349625797652187871396719644590729339288689783759682864408378659469844914453836195986939598383056100287972584269330593580661472379243176798788444126091259193544982253743037375445022458440635868317305487540068316039148824278431267599855733360516710993991916413282047935117227330005420129569143124160704789024718481452150027697161268469954472762935904413715943277513987637723784194493525863826793590664208212253299660078065861860027455732574715146410344413655216207944175032657733571961985648139745266342969397020044345581067819323963666363197453526666285788294506967751859169041924941673918395903035759873885817292656097175107641256645248502660449499812279349904825393993381654848727460287081617819041495857032029231212344152631463480524830951430028622229438468155581222328709232148297958071853643730193890229878248544819889395280877795013466720419659468683155610694161558175255200252125290930496345713165053942551586346529849417176475699497373366894149414352122688604505861967340342643195130963353914206180038711603445114708320080164779760318084495935605253658589320057263765594472878846871417752591908729653882303552898753946090868096368381109827208532198563482077332203498983290167981906736773911588901686321186586085851141763405031941079356416123549158521563234650744490305486946519985444762378261391496263680333451133839020403819552894981631942193737875579742827176357938116481095383785817878205415580237765871467376487830208609047358077723482191115960565758875467857517183965959301963176460881200204361591701521374182596444145285221514129853558207380772644270527940794688429669329939366724390542605817201423768938764170374833131364518563901369554597868034509787778192668554207431810859003386173233580217225895338275917634776888456517644912215556721830639485993559980944560437520402560309095342350524498493373581988466161157417480822849748983710470975299221299131265487639735853485808865538540933057160055480125175238566333541773668276530965374679207220633880854156716956741799144015618627901710119205929631249322005922278731138498584759841711942792847439112807799561475466338223189887099400627038626586071146937996536896077433550578062095212087965211871171915480265115119087410676821451546228416398010919283643853126713262126401284461766382413657528892848050936734112066982359847706915661544227382980918272172079410521924649544201082070586051036138912587765934385527199470695125905318724181096812330247716668017913175613033164434954313301099242031163935083387828159492026340785535698406457507608270545607422844094701287824654064978989274931293346170710516577907695869381366121627023072498573672126657965470348517517449820329660752930214749017803404738524725277237312073796832620950783758312748164789463664706902214448506201301286435138690295412764720530841583113667583475073261497498823174224496279130907402431572611897487475044980714744511016331812145296391180915064554391073563772132334078657009617864194192350908129518191755108967229840221095805352174462210367139661527135378050167313312447140637642199398505305230597263189950652704057516276513786508387563287146657897167898233332529381515367011613322465931979836114355846965868652987001364555414437871222097857997801273065093382093703847238881901881484199992552076269768355708436336161183821278808008545592826413534264767774842343982183965491429158196743420525587951631126253952995051868756190418513645554162580794686127282522519861626327821034325042807743387978578411235215091295676938342744845302249086536457396535098614559221621146414003933128293739555243771848575410403077298759004984668288118613195935368180860622314912323618408907900406937644658417546575290572015611663538446668099243469948109733435739535558329239182874088063614566679818936822133815852269159255980066959215467167451090211026121722201215070190806997215813765863606169010689128365479863243656993220861685450107347341364760242061137169221067381872873495447946788432403922792332944294269605973624487687729900540951952921441976432933866242627155672103217351550847103699533692217582019253753617534349098652746001445304251546613721084071741297316746365837945608506621184357878581544092805617995578667149921249971747565152774073359841583735144339117862380109364194606557417347811263777238818168667090430603669342458485199872095648546702742540059817132659790693086401192843546654861903165765955002013082022935708256164207609012280939366533894702856869406925312316240506553942517470390394548510392275230460223773612344455315300907876147029321412030963695742384745562855427666093307220122200667472459373946909019750927499849510655528557698319139584984325695314899753334002824845150053433742187174510754384157920310612396728937905164018742580133255812645795243544322818898931678978694561936480548407597288547611432306650575202333548080828832887795919729295159222700593645428656821758183445554473181712014816620699710671576040196525583139373768313558181390734850564799134643602080064352739031061475726399341471475919891522255685079664058086701511462309876172550258485719864428363616345392043003910316228895863838444931695912294656266863247146168090136479392210191500772154818364145952389201064840855326713705990778070416714778667907576067333284643112399345135361795579145350436046881349029489075562605687847256170231788586620288399820454491387390185892422974675566023767419423044996456455515373415790162883188422951878366278056926691053402911995018735559303605931717667313192833860588497453025553958978699286125204054415520399972417187566371099572851248876329166181284555247563500774087213635957705421651386426827160492099945212318335996409200448349462566724316887335796800727473175170201694585786601980702999572401643059589367220481430388773463891346868767279695255112363438831827944017341767902472915067812645020113722273569123068051183427200168066124769734663542274459504041663913760217313760348934573974549539352861144094171827934312961542109518838796431762327524000640715561320759379579279164139066777316389074635008969903387839832420112326463584633143402896136342871904753159524136381856624856979770333080999889603594751890355093158856992756368052199372937460538893815206319729082075584958478044743891895860030958194055768746192018620310596525888168269288773023297309593581520606639184134177647211481453351996232103337065538035997715509880294921159468756924844153645209225124971047051267809407753815667117599591675864500622156580637484073051995288544792280818197892736087355754676833421196487190636508467401266858928264964522387550616520927622934364341269450333654391611411168067336297443155174131310830601506528464909962296042843714672765292274725197346691398500850478085601282813954024972256269733160997554416754210558159669335216600828280587090596003569962506076017349321745984474532545138332263367003549934134778975594857616654111729752077860756871898246954974134846065693371058138168417098337890486166807709952521490155854530393338275914706790706890228027653395059038518183081192214758513610793015299256177556570669014729236508793379223372830648486729680577631215741270893845666845192491649280486255355040410731747012040102783419424364297843662489506505031366440493853603663358348508867110188519634089662386459585850516028942680354007650048793054426921416254334405597015950945083156369198240737268666354924005604865259438591102965651540878169272906536344613420073449120193568139628672553209265254662903185056949441070151435196535065884322169706987029745451973008071834677737963737463411183973274103468564021520221516306889202948129284855039007443962022728370185659557437724237601841577204980165519536193750333558887236597133635888669423199786190197888698802601726103800215973363408297971244997284809417042521930818383616712043777239642405812522440373824958815377082014917931646827686710496524340886602218109319696604928681551412559982999294568305476349218613814549872143394304821667056114106847929812468414645050178411495877519408645243908400757193735644557489561006216088343704023054838880171893275972130617959834305826346073754743899913680574193886239401638476232661762182014974713758942088895424389208353144100977063281612335868499390118989267870886005021182443345863759737017486555667191310288119741678955600269473348087075833900154108474354200089634232512760489939927224768481306611872563729775478204180506814107297596504510050557722462173592571692642351563313412049635726290021039104071024943632524807135402405114802405497109482324771439791843915858315203020474242379351435774469698559285841085900046048429104616363141364143940149242552971809476974556644188156073028273456260397375256282624845090399029223137315126183023233270726145527662580640448791434666940625299071195868759283730049871021504983610837278912871622706095263634840777595874328776359929449631517499624209354074651446701247102555424741559464755655926011928107480942608731012428967850159416127761556124940647625494477700600043815531452323874918073156418475878009246643628888702059339940558983308374308444281610037820422597816594516202047080677974956068129399722048786061710102014863661202874609178536408072340513748966428400737475296520644759657370574163333420621667356970717192045193620454871828871861230848302373459766822853548646815470424756423542750871345424254979258439437470220345383553775875980111341069027888637175375556027604534136822808593785432923746799800110215490207618727211934463416936837299784192737482730378155158782000749549034572204832672836065897031412985696632318067540410214952234936594789926252359658902920719721687058348142774892229029575562968146151326439424349364489904185962303016757854377051584289045763928465912816046033410271611053039521830991162074886261337850724184535452102126250524613434247116746116692737081478935912847797801383316656731807729049419751407880415490381630533447065670113663181647873318619615263901378081058827001217243665389530572331888960519362849025204414350070257607122737203549072435353925420875574138315281355552145662097510103873874132453473980914145764343801584710608880358252968785004634432740431693889962874048995611930420339338177984088814229665450857556269918902099609857606462436922400293777622591792349566303786454056296797946435253668806896425282776327259576758635506669439806592223379169905488671875705824488684185450697334052753777453315856594729899388684618029984723155108634148606783778890267647036030046419577607065641604354814723332840750698509562295997523898740835753295912435407112684261071269903636100427751203100123610547117516338221335223726434406486620754219967913159347673662916558708077742139316394839571297909757427708940023984306335811133164087990205836071781552342690038971354618879100136078504296329386499364582208037805340406838501665890762149271262165222147139139091332461318711402142681748179533005264863559958403125541948456607621985978214154099580692464173710614448984513544988300576029766582649156091150998133540105417339674761737791769403595133143967794407757831907334418323513458479239829382563058544915239209147009563512916973638078819712142033343388838130003763219609587455881055876150324712034356048390135039034249720470768821042837414838335766860459574527825353949542751592731576314853152282931765897122142388973771540924292293436366272344001333509274557556008364381276407487292462877351504487891000851559096918759372037102597583872042159956828994891621859460216016691414092974279123938073853367340164792440679175065605448615955617043259730404086159991259053712695182133810534576003246277796554305224435411206104542076996847810627634764819490138873959329834251194143152011506464131304724312972595201505623139558589349337981694186641323271866638927642512246541268745706352999779936055556179170144310343255303546265432096592126246707101202138986978610422019729736954639036891709275122530653825090785322489595879827655575919791936170904689333619371703060437548572082976326829451714713048233325563992309667278450400295189239772503740171495851656944939907432892184535615317659568493263132312870564150849719207501785057875003524948512946568514506164809279150628022698296541665811401973587797276722401773453009641478731415687336215122313271474238249429074930075123000500756690254217806938220429816049627329807414173803081007711162227959423148752958799958805577801497637694880554521392111643948969212722400073279614897864927427192484400803790904082967286973102460581008241755809245906378499949993481234157523837075506733420043613957592771679102502721705490579254320014326633014308234381324606123577350922337486966505015281727814751705287873495711343618552114673509893469441670595730361167502334079491867924586577990721089322659972634779233887912094055616761874350648066265320901454596627995413221732286419249771760536105637113626379151524548583214657883561537770819786086051902124150127191140548787664762930912417520698255965221651684909370919356645959825192004151709680308152024860005890742579956796887458982255309020213821766584859272392232641045478887363791990999542306613344354244451455448983552959549879486356015068457372425201441381188805266840341862830917970246003269854158382104540785109178392176242497992326347169490956414546671421506578552351707110235158758596751801517832543455247258771336975510175731850284818105425995842876241340561522421617776543224477227991277301318505253541107226756669776740650797329633003415806852927635436051002497075147542063060755483518707698439059840443643397058414819091699621583202593464826097254413975987894500798798728258083280581467881502262319072237412574410980448117457739997658521377354478226194183284561264342573624081358732538624234152394443625368989292625388176273991612970875242325040647208563007438473029772512473841313328176604273588195831440804556694068470176410262330120296233373917250847420564427237738661862406371947338609855238142892456202803219455868604495502200347273254227720500165169762727893515161398209205281914926114618577477155061495028603788821238022003658464223099851482943655969720433199665242838040956529609702827243213946487203763999815809608409282481124591905596474007492259136705889599613450514806078458345823415105310185315419402013698556443840201918899182589344649401993419150530915571702782544351455804112411869526452154421535474658178686532376094811842376095510277388485180475984391382293374028622874568184886638548123560842365925964175613173794539720918378122645676990777079408196264123550410803923457349992168665385932840523101245062336211166353237634700524248615842443290270566996393321987573665243397003808369985691806715481869290544392474447217217413194548306057863611858804218389950174653637674980170043064777562819586840366461363129168369130709059058736612228899278204941132401046018869868540297558143892876858789372392935209257254185889662979482536294627625701363622818794025693749106418154083562935027367141539848087513404039534434769275136060323605272041778091799768692586752686196968323128780846639487878087723749293112953364331656642725269753212957051531968333288810353387453575081912359680905792889750310670473735621304306308011063816520430093043563577052126331777622070052507126000930722291814476459684894517819003457974215539304439608084996490682681480559912485343611122094414196006067870770096961944971110699402381409115683960774994595745108313130914935376513399706456531060522175938444582195849963379842282447087609979288828164670292865464891334461246127984996480358415903499230322077368851629025567867397347031448703402761515223479227034106997841310891667619384171916760418046620865800010095342272366866585411916904252579485087073849556561345043520191687293667467935195788998720051462517474077488260075107983122691162962124735816588437660436849842422416147753010740701586526138976177232133230955345941108808999274685589801112931539825486292984606754550609812359838203892968241776533644783938166093910502641062373906290258630012609860399785285638600639883689737623832654109035562277904003214996697342293815226859614883164938768000936686094415686847325958314129871624547164647160608868076613038096638106281226743474931124934545131543060902220556297079782221142959092720531298484583288653066248653439824550933478146049028766852150815127103072034966211189664657604629775304382653585216879045092739878420285126243034219662838270055825881109725867065065501434188591007798799667308034712966803573034647413079187251635988128073434479310134670038839792679892749741178775354804413768096912287279564117152591104930705879857489147616575849490265305962460328811515055559245805872462301143450576678569001009413097845544143735112004500164806698724188371856102498660708920334483492181933959722943722133155682464675887981680686525488442332128748075697984434314679990722183022177146804527325134656271642048557252152318404877512234105555113224219006175159228874576631341958392841219358339270939223930167203683498589331564535327576813763758012016611798993692205692821297507081606319643893173283115455459731453764968976456613080072783775848150157427529406241248302674744707563183196689754867946845708268379874886164999978243663710271536984713078205285728926131504274322957578333962490538548096754780400614389318137053484758033078843056367184450485617858127980204297824294718688923738140206358927075109987821408065314940283835905568045033434860555345771223667466032849215729032527149236722395393155207305980590342537225304201546607617214291295971280745555142060326360109237649957209348418684622821698240057844124840564879823381589325626783656595479473560502007587534922507361018529063509174543542694390697916634952948163024318338256397713171490566208013762473950167846125488308346364142688203871955065411526218491925952185475633717538375406014768230892561343379764692308052409942191904671930830455477274201067823127186988367154691555627887250928224997601401945901595370502084021814581927564402871541356525652904248088086188307885973165755126200039634675948537464758871821953245802888918254296477987523818617558536010453530592158951231316645166249605785532455788995852848264392941793920674614866231245851886517401907860714583474047828199846612695109218773229960211556926930251367357897244500931756242829553504521118121931446395753295938371066141717981307584025938714098403330926603704119792175049583162441908642820714973814039513057096046057144554396975500534401053367410511816398626223388042355793134748527548839517402936238658777496882944133487808124205675626733121768353705845783472127652848993356383236258019330999314439574374264746070399593116439734227500911183636122800201923942426224122244003520812688699862367523978141205908824854417843094892751222419035218189599482031314197416547659371327709426816145631696895100285561835712226984167444830103955723347834225401166240899502066505762915167424224582027282716475478080414844250274265312089418387390777917919425345541177652474591311972834253310145415540255460234595964292260497577695204307665229540436752098774310555055515891251826479411874625929748741641984169511163088183026993039401531257937346403833762521873085285644705862948919426777246656671315918543524531845645759816403014542305050759360040736391546881683980084317432601553783463543665572692496101657368652314726820975743997414352316737738262701114278960057634301588587553995986592672334754965159775126000312521774557343746948358500699660621746713748954275398027944569870966185664493133759482710327089367461980938713409628728472821401782544806745864531739688526040238028615185086481622332888068166579048947711088774423661738591465723585005786964283043131246741154101263462024851309409751911281750488889725432900053320645047826816942261545794624899712378289921400861564751027249343867575955747342385318857946728775455015128641115677008236143213064879456119028589834848510342630298877821719995906329146191109239487618272243038701436258482786159019632059333675238216447465748127801817414650970080045472847557515822406928195033035612400429265520854355094857031665863106528152810282075861535370917489115017948234790919007817372276740087923829473095763582093672220906773894082957210555008004917899449961207000598588870392123922742032758730235669461257625779009468527637605392008390924642248677187495988504032490816126469790191907718114956967758887147617994712325598307316271862570548354943717666847871722259314520962568787495361502817920463051570271113660319748278974110810868486800560533243041989364080865193326250049861750101376844101317841958031885116768828093894314780026829411209390490787992277067989247777788126189391597799678788197768815844513196606144416893010991235548804362969227717605721244323271151824928492062422961850212982166859077292197118431115132531132827148814993833480762225056059595881116027528854023370235993555563863165845713171328962041768943018451874233902917875974313074981381134938192888435566748560679771326621900414579192733904869295946150317814661456673143113561963699302496027253791586483575871665023111074365216333728698182322084747887822028872425762419980500000859975233101968669556038387897153171216621593227365129125300756765705571435991560846991696138491286195756687604334413759592671155762760108984991622576746212947578749842327213039626545486385149709350273043062820192075945478472485065090984422875751831791457161076563025991759288025458987568005721472730095638800770172895081557465705036320873888083036381722310062105628295305286206874700938853194955125959813661306833915054671446630838323793676635339581913296507813649542796900047543031353675727647987930200884244094205215646074806024865417112125368573149571029554998969895767190330749600658884717243948839936236922104463384570084532064312791647825146366217459933352275763936175610015816174218459478320174192467242885246723492228974884561989684644900281450511762382854890104782941120592782030699654356656301931145394573711811402693434921791158901922044308468440549014964468456917745832603678380889770819996255536558594876587134739800763548149629668163860193484760549244581352345502383764097027180601616628700259172634077732879078592201884048215001898215217970240909261086727663558915620544442974659204098391986294325554044492164038839554940146824354411382462537433841089316745747209684680945264580302262859574588277957601335317178664103240599624068867471125630080094078525959447994312718314574075091585947681835399263414406969930649337431909280928170447950770836195156700510224459145256868306971306200429636679554072910248403713356059086633035997215931169979958517853703035724377445196599874070121120127217970509542702190814180292932735449018997962037172899737241610504129183440075518502012732397563736274615828057830639765667977908795117304542709692492717460341325222241488650093158211434857160322623463904422352025374515672656180528944316904467054025725794419158136695607632153685478963374803429210512233737022096380655025007754820084371773530421824510129723324250423211750706981528781272995479490332902784822258951355902325624341977474069427205062686458694815985955993669490501458125890820925684816616830176259734494309751519831195511223193117907585090396369976571961913567592447280869074700223477180220166029926105093629933752376286228003176522079734170544524783361356026300067017161838829366621749336272029233637461037988385811622700654216991929342481844071758041248419744617793736096136341026901884185027377708969465977609438735766629969946857671275416362850333309629755136469518497717333470644548404367422975792871158994583011847791272519435976710614404955339257062530226178049454067833679466420349858231641754544856652003588032089189189111494393949438327503325747991518710791128452155630114481014454836101293871574823467845149024494592705207810924305433515147898794719021646296931958173662351111524745959964350482474491943767085075259019696156184460897103073185146922309245098953310585564342840727007037680045851281432422548093154439636611133844912933322271398328265914229206704067678130562703223265255375226817137015512753974858636882288408891967055418008931551010380941368820787126728808883546751621269457863913192102848221928831267054867371386421353669667574142823911526345005307127085507882555853608755889606941085995047178252977866466331929587565134499254880781298917939752056121058538505449263488072688443229543739780457518739898542238821777868512095492672798186117803769092644202875425202338751120782720026568288807213199018045855166115708382479155852030261966146721642305289519346751431668371153886138491315736827475939062155438941274285731295344203701950491634396003942494727113215724984781180613950220404619303457687416192766930642221212799280669883378151300144836597197266903444735193734207404691804262474093420173773772019179281597605504119349663702017172230500381158622356193642730659428278063446883592391486380968860407961207521028328745772581206050419827137554176969513680075297446926796017590416315532856598379593849971468718751030043262299449616489931867153820382057476389634905777048982798871099812086361625015435717375823710540124436612433179111391506655371966406774663088122070962333557405896159327673733091845313255556150450751867142285706480450690639466509083326639477903677708142018005627373638651302891508452830514636438130797649089538407506074391932581340627012918114127211541691130551014915392581387357087444210719549864507098841576890040692230445297572405481463203693179342498343116212592753525908161054190512498604796130570333241133294872785132205258268981336664700522218375556604116939347840777155359395507377663791763523876627609669988140911932008589704159374528003080335208331705637795863034335731283106384285971586884107600219991392678126445468512782723749424465416349046399869247702756199716401231231505773662748929623865996680222844726914947514807762733161888923615216467277129411039319907757510286551321677928522731502023320430253845114968487641892648908147218351717809268626364294267967796087356799160170611555973927349197296799275665059685131883797923685922015735014645530618212902039795294957776942672638939985479843589132750478290144128876161413495883436371718337777049794523371995154986641237740065687043653451682297254692993530549795779887831968932280809821211171029286409383960900203445665970443540199185658154119709363269154229609376896086125008352437490922935394954019732444768858397245197246190988591427896208136231428557677461336342396661372535315277213517068143815270357606100066860493256043272415534961412231157658116432047857246603968150586037969087748090533972254201950947579086810871729742233661165963397978981784715118508443100750482140800019737164571433579347754463047364474940620820556478501190133481420078528723150272653236276171553331774037249598518526936361553093065808046001884389548191125729916683702281143835520664833690394292803628789782794931466109194373789199193664724336823451868284237553152642410582701201902580306120005652144790599268027702776644894594099252546917576647136091675374465367956874288800195778182926281084920379256315852546771034867671075677929130618580594037595044217121447194540556454927240410750852038664635693302451036920769027088139329324816829797882303446474285901940465624427616562464909363612909396388920964443704073467923231877234348921895689829106086279881821422674895890129590289362318069424900413349795978320329138064329266628475419481394137715216045566173519996298830579807836901078338553346844021607044068715016216760704093611818848103930909283589464844020254977388983497030291105857760606840086426516148346018679450038179626036160414317636736482619873404959747068992199889008120600080796368085160349004753755252676986638976787518951036526201232017633167064533261083610819702919013116252387220251028195502889790600855065565398721863554763284570588494569162522787329207889768744230661946157595861786962532331546099162351934932612981319287575102261239353797222048550960886660174591749940111087323457076872874180381269000328564026148498501194380730155233910055996482093999670333141158519191451320184539217159225483960133417602714711745156904080740748139632595515055881816234748621601158933218347171335345418011050734143492787653355010217395355053097502853357772199091060331421802783494394174760724273849355483799609040821055370977457678634806208996434664734903774929756723105385351379029042822267095308888077782551721128619978332577632209588064575622552186266628750933226066902707969376074063090924539184216371453671521712421640345119755562064572152339751689474018826742151241118655161252782775592364367835946634914605463530221494415697501544881358775086535240513613388416071417332046086786956428726245539762881269289826409019093604821558987469290662088024414776470344919980111659015568406258356146861509515974472140274363056106122126461225874650625141284891296690521850699804572895964727874854680322038377232218035817821014141600216908127107292605558596898632710088150836753609470668636405946411541733373338258435585912878953469560164242476985046491025406404746119824906619244001150267791411434451530582036960482553347383132069793421049351919712330490843389979767486877962934160333191749898759240847745268691653039344135310284475209886890945207882377548401923255039798828059758313017783802131441104044373645359851666318224536364205464415650013553861504271785590183997228086552563300552705996719307161950950217316290653268882086512176871450682919514264352410481322203705838067705218128709580779238330826499870124547103654383689367025662560341614397691213721508381968177833295590829715213652911752376662513814191665145476069421844339800072963497925882611019729926831779795028930780925748473273742579425128736298461485146775054729412626088249601863987713099275650259380071291954622099077251387826286489666706948950818888543269929494649600146365782542647712557083612765373427645413017543520862749706094302506212461597738528047629249733962525729809425856079812026772286152455172036911465773712699281507364382713879323829118856936391648037577525109293417678395712650257600716257003981819113678386635382391631638014803377875814029634508652219675800014412663145992058768452306099093111675456065830470910157818299569681093666084812157094316086187184366364681412034077264054141137755320885471565702551780536837483040080069584843674989060259819787334539127891555889237571522382157820156126316024145940858078702644763625004265546328044343344124098631010361820609639885284814439565824282809667070030322015675515262148396993205487371314960456067448556070142200973183512084899103703898822609070261011197775996814396013281123560734966328817752510883049804650652465981864385110564310375615496039472798188061451143033970368081179557646546211502540035644958312739581878817762846712225174062048448377113998304298852600165467541820679577577938126484793090640764161358438334606223134771125380636993813891666709028768563099224635685518654321251187927510980889080524435093360936975038183926667278123283104105152532479009014625301798101357231550474929600587118702584271005607754809196458483138012233851140409627335756734076041546214927960877022581361025897200899767729595227858696966879309288212550515174970881418113850026417747067718750565167028713109754860144199189169639924553600658318294044781202949212723128975614973864403489133746160928833360694229474961046703010423080229468379485650071953247295980714929363141763336878454487545900481609959152470507331911998669492824093595982930011595779955196810574016467439462309696022406945773561275122659447952897848205613746057634985450384585883977676448534034405518279365322489066824435452736929117419212944480060256243223614944599776794799604621877871563249559817746726738792966599787754699307774980829525466095723176790787911740034655979887469601943011301405919430328372834024736418461056655371990787691673162681691847265628316569038790084361509086421326998835932177744697610303528291364854946305698652804832079373640170281039867043976539531067111854332335880777511185326976519137183242830221070989602007253624481773958651662636546660819304080028840497154046486504308046706807995464216880546211877105299566765825203407695677379637322404124153387397593032303262673710127569477884643594404431673536209927242786457166875086070051579337677713510940295502371633785574677147435491152682818912201550731765459145043713878220368316387728567813591681311975583225506834545432822475632905817549351962303854562726507632477955666581857257634607044736807547738802668269998480031157092333374214275505600675989828589339307306955277749221527531516281257965061194193838048318274296951523184577819529323631228007646240915141260055391440963650891213618105821185982130676772422359731339090056414658750232663067255202136089588230786225074083002002592964674259650272832062983026305570077767484052030846788640326764180321777447828596278815103570062097943178057004180861480339419500575309845008438479382457937098338743360623145448847757110165681251415665927296803886359807710765341383372765059967092841660588556254988328673689438928251938495180857342486132522364334346623443624738582605314803129280829620353635685571084341920942425528898852764051164042430723833346827148077822045946240008645062487847377540063249269479330052879445520864940923247886996144848783966788845401966619908611200207116119694137728659154509606816595527110050994328301834474771393264592499196480359070100005479110383995955124997132710933557057296707943331035145478312620592953926587091914949746699530469893545289481526187428375067783108796376987148414074867914873172441471371042589127185157474868396355772648951065158225546619362320061530622096335432834112899196338975105898207099715262582050741523697793663792454145593356526406707424009752129526436825203660459331437742611870512981060407782896848391929121917523135687301330470330729685812319281730667313452729960862103322147949400372836589558704042383467966543526825878641152282472469414816743324940845989235167604247159942355520972139523036823171319566631752685938490618054132893210391126241722906722108528742581887799782067723012804531514762320226280317915242523236221734862975808877139552103685206025846651575849925431760571295966953311861069121575608866300803114537672377471031249340348174236228561005095808823029744872460410719524170211725514849313973814220324512370470289176867819740539829724134656017072869410166135213348231579746612039438441802516288800469900189318010107075334643419050341353346977766959766866056736408070791024965765593554277776619384353023807355171062609292178948493174996472090882277766046675680772857918026927672470809241241999738318890932696728224619364466750655978087600982886368617297320657310472769620783832844729659614315642733068842962252060804880863272503488560033350199338801588096081937300439227338677831888024108773632931574540121187766819504991134972763959081558019907176847183667403382753735177609828513634371981900805956239960957625936981449151992724539337516069937727999268112369034113714058739564682422667780504703480050833288329533205077363920379949141497992288325320932174556548233791154940692733219568375806496113495225802292037546883715596418622056810266092843773130892910102445197383095131697656806349079393010869323418182106416689267060221861544849513878700504132125874939457281432591943097093265551935636382372597002213402999960962760337252632468010503510964225082085306490952771996665247829063234269484010929361949481295151027727671975270217084066066294595243772344539709187119086718289429543493391429002300761044364467210643940289364918954987377740173415956451903242159477115766103191757284605308818822632073089879823386027137856942691263459489304576196260707827213261681878889027898079679338946361225926290154218354718901898058671488907581699822604310750549792351074649747540756581318796202531039486887130427192725038403304216028218564198215238233851868386997823113750930444367658313464778080192758724112945296573678537197688885136920941357044444846317307413224585181046012489207283279905949689633286774292896594284916966855429417433622687053794719626972800835507591335903073793320486575361727037879954031419480876167554957785169102314942331154629248747997157452859261611115573628631957314550749408337584197345762218020421797662111448162642711946329051702784296740974782875180915229238605821301023507053675363012921331665145681148444065093078304957484757198328269013534166174481733153968618477585310897526325210709769200235988602017805139686634440551084585311352072957051843052675745651463230711623284397627094678369051096128744166700026654727271320627940028448288737072581186938176143708076965066869594189969171305241338227624161895607174955963268762750305375992614441773953453661826388533410536217663121612963717682713547004893151454066229412065533362658628802025481118267489804487780374322402357149548861309852185852426189736079179560137924191964498009290083066408402831514558787284623979009761504373421216470977604072031922245461601670504506758515762941734533775078939179727391801632123986036407027705042736538410770688223784982903778694088867151279653007048482244665216421184287019707580293516181207442357763177339626745742690654856421399714426031326442061092698816745186117649668353930667051293126707608170687903891407246962617700972791211733154488345007451174464454259396202862842371099203070687247904700107273429562250021833241010309331985720074384708815706527701006713342311939341119821838607398954659743565988452687789948892428553173429611230021533431914783271152926805179565652709676559325445269681259210585028487928182296079278871295201631224425477407341256956657265640854273351843848605204695295729583898921556286758201892199824862836784940534637657006905603714672838897680644164267474214666496896040340016617015155150341031312121617821929600686235726295046795314645973566605094937862124533379147782784765555091051865195006029582653173904887039523225583495662399662216681336095979041593924985937799853878082348050565222533823256708801256269968203871251335327232046988268887506029617353649157098009602208318639988512496546029824346726078067410552436174825921000852860032863131610540864999465827580434935218258209389088772076050803286504591749560943443844728599064145718739531192150118362641441007280610825215296520063181078164938615793861422642857090169424311003711781191897324472866997634990679962956571169248256704322665313053469396680376644242805790966512791078968226504381113975486386432004617963143267414634340860509550962930161485598759005461786254477381901846879834873700970694843776714297550978288225056118371624527038063835768246406823134491668972297590005537562398612358420571047541427293263471091706557489488031628358958573699836631845188177140655065163243736055873488581751278036272024901540994081133711564670034453216073497095358302081878241726363801644611004498371310322749173559945450026394389215523308093865009516308633880240834733316964510639706050308073429241518211023802349733498779801330019380513528004919637654754974254756482120563524341273668663495183916115843136311876644776844029055968670929128708778492935414128719924861514564661482161550781409695853067076485977371133005186873138925850854124394333696606997046829488341956795354686900773801452435906162313541987790865556139638309768569879289450654254186571455117136459700598235430922614064608407956502888424896626826076008016990996451304921540938888050412399950496953434064052741208812249161179330556571457660008026180168534599316807483888807757898095242190438467203008810866745143396608348472226114313818374269459013665071690726106740361780716747741858237835051910423373017776448466651248180962879121720892225370584899164988422322597152434867493175999677592261175497018669996114659135059873158565625845202145020092437166238556731461959976571637341982434427554201961097798387339625442282816574417936383497424796996281724572118147972853037233927379725854140825226404153710301406330935581426371766949187502367181574743017742506571333331603711787463294413295864780468545250435780127910017829282403948330482620639612945925583897825351422865779553468195816157858223581920439683833780702328766840407156939911538291753185924187617226719963046444990408619241484786101326426192699917505574234443430876763886313902740683361978111108400271216410071424324452498234554370103442749625380635611212050529423377614447858257724601759585199441037940798952863639111013997423601961993107699832208718583062897809979454854534259085061065176969364279517076299399607792669172501710416303912653438960179699170827377500530670927476586385294092386600068420642000940427474651914977061082870925903268159436861979175415435191455815686079034501405836478255674685100870223120011463333602316699497184291827880481862911103683068774544800723792594441784615882806724029800289839038846826558734951430170709680724039790396689760396997345181816343023518901077139279590085855625673337814740388467467813439585822453435782126962896498031706794331693006304581812900234423754430739718280861878069627767259679268965590626052712968561118265836766619702992054090087814145245270075364869504770161718999480729412487594447394144395916157840471857561495174016187393082640628198794708647624617528132792366018477196793439134754500400064157414490532193591830805475150836731903993127311303807670666440930861870076386172606895849477771291592339644090751748952531507941438714574739694821402745023925008755036980016004879411762903145194125351295220869713558988424992229212874828212398259201484459282640424810430508841586732268988250816259998017261725215720287933608644943102797074415897188881673936653801769222282016562452112625472686516534237591921485464528082661567421342153536450858200482819302748552680000742428010197737749986570259066402841276546977341587542237553686199524350165861842762601580040227579522880496092201585242799680394344884965007517836037692212935485590270715343008992170253869250747951869765536227024020467653416416263433324959728534901740184238807630041352059181114148657182460113521583165032004103368006696954030195038095252983489718771854333947212212260707138945318263201571418382355517325739306367307010210188373046494015112296563531454144599744220533619958957647756484330394561217466525788694116532425613879181591142827688393378335443694356241552287800881945458929565539491309090985841537385454705686432463170178541878493232707915174590093159511103009486490404781862887323121343023961365593574052387398814075724627176831939687261465333153250067710073271535531681153874608947736546719221285294557078242326603589936535255357316632659169713440437068231206230941245261532337885464133631706573753771936000492032942391223938720335070243694964911663293352577168935994411593113349197427169762844828613666781183001601416024115892980962935059637206352461859817199401882837297962033661209143392797604545015157705378298615586401549687541049117312445283869790488587372245451116467474392607339517323716259175579191687359239731504215879614469708958366005716892045756198117929553245907214576499535172234805129561575218477645185226530083019046749579298278622329763511078721822445718367257616770899388143100621142559331695772249598987415664728330356712762208221623301239057478842924737191794966695916048439532019595874096222625880323046897857318266221157989163076499945931050478309545267830062058254545254955439410901354266320070772794775757468666589477640684406313602912224286107369656412500359165525111558922942237539443307410286636603541378418868474893148619632317370149274505636309506142643159515808581193260370666088791924860343171014101805021449297482223252335422322911129044893392505593649154244796483764583277382642698450868348321406807197395394602399720016815442362590199903045630840553631621392376799834642434868012837759213035171592575620149506754746158678277709208595880476581293444921490187007978254631398781172003835506338645746631694643929318877170724461621562603807689227400398086185763408191145166342437210709755254250547365119617587177254925041689959412957021909740983025860684546868526302219033109034694686888141799345002226789687329692426448395291427716011020339088857662182298890609392941675352875897504538415084885245789145333965963517571979154189395304919026058491692332229335439331139590228054409615281598975558454885337271204879174389415265998477469593018278391493789419238810404751706693486462980020271983144982084798474814797384658093879320259714056609555856135934101562843650543916635930307415181970934926549646459912051809932881332405987561702858461699652221623455786990294607746018182097015476497581606712573936223962130259570320352226399367374137476068297834167903535211492136674879635610867348442723015450428095340041456232270194573506860166685753213542824359494619024858103094024917516329211253318811502564260745857624691294232821016014822581208616000232818263047031582713115951334775430037518122262728177849190406872932448652073008099799351633381439950206153436477359241232094788022996069971238534529369348354445761832724046054510804090976699313594937288718633615722048646038582839890931842520055280959925396257215599833596973171625071954172545208977677807010159220630057751818995144491676524370232651836006375572529982415553560915872131133928475380768955139727556100542557870048612623235404503372448257743148565078866800832820183747924846269080383328200943849981636047172760025447702159880228990226565451343368512752442717242946553459241539544169419041252346579225332820045669782966340305351714326336323109234805802233503475615948896261598086966067426338588109736745083674226966986332961987972377738675222197785996139865019917790770730424549567553895858678479530441326435497274679466307329840816851176604708317953261699290896303344517289572207934860654779607029398467533711345512764131969914972404277810942395649731660183756550863841847513261498455867050473929788217928895152620921227044967216092113749593697931928222629958226621701152295517226396084364779179042117846090188194463611077763749786063651692944591050324551002334130600223418671547815753744443213068622226856602058099465525088253419687897747898353340961711394197398075022424727347097378251597498869566241715367620210212559109629198596173278101770009591301970917114120290567772290325107234395654916663025439287712232191089829187064762306864833158838638410730533584186048967116534437625463319488204336367959277087643549727731961930359522194462474474370920399514954006510222639294134960021527717915331264374143487615642918526568289309705387903738284929855130751100509160737136665243971091450665045351371997120694261934344515513550010562378337777595134623687860241691475395970936900352414906861441834896205951090214495155212802421580438016018164986062637433928980595826381254759852044630271736139445856351744336071627239481016880189487457128580486857787825359483933221352660844991550252560278391478474581547334663418271027269541806122202652066759900691133819337810727897108101365861590727408570605380726001721053581699386948821646403977437720115257652379864299669449097659307748580887670699604855235618111960039164325116237193868096985954817137329118060885916910938494591266047530902742450441878769004729530915233229847254394739162492155555828803687802489263619958779880005490856842939400016421361798720056908816730271790720757708593358922176141689535928515956954258096859048513223770908238455488406821781963923031890877741449311604333660020610461991569666656255560842267070281340366942568404748878075728416005669545578247260609100995372599574823666730693050388709232587904696263393018506662547342545785872114382196680296027865385981726762141795502435476376840355790324413389040007752410582303636060036217760532577336654686093934049801019159702166784863033106393061369441923985177639456059507010853507739310777849818355668717007295304962663841854459403096903359129088545176650826034718441555732394311147633612766595235293144311260051530416744253981797910616752163274541583561617346459012029679811554998629649489718079574519530017414144408161288880113901527591844467165685785495516960306552354538824556356659163174758004305203637821683209024346068149819968331277071605727648058040710913687331195196825533404331784891724222858756195932395073329014824816509335002901338529246077867431201706197885414589882509408040606047670876129921069082757373763819639805713532561570149510444481195353612412234646045905000025964173929901984423404647939237573976436718491504614393171996636744386062138654529125899705734114641361069596924571142756563755313723120365394779938363691370726740549703602190614613114706571243352232047888591621276532060134498317295341599744014668457280504379286034477738534188693585363501877913419762819920913032492520407522122256950147686356268984612355437339256403883426068215160112743495520061249908335600309719011934872616221861780162596864118659257169682322763065194162507047139491540012259129692538037413171667522371298578157002650263575063898818201747119775792849680462748639789442266336400312929070140916813627284090323722693247347350251368767363939693806639085647320044581492627186432956211140735631175034376621122593811103602398236025762113816508963121562591116639535861732236180624124877537341446912649293417421483256740603574754364552502525983005658657073248854703072465263010136996522513514092532483766948007256942974300771309579254415982318721944853408975933927215549745285306911356626780124402738213770757352995233192945057421702490378731967131546691494852368526550525460510245620178639777881783123669811738651063155778705836069649876659879158119469042279265424860931595136120004022805093614809055584087890150192482887064402666964430506975162936568355415633689434833247291646280670829977361913714107961784581586213274246007674574423015310867986378632729490762351944627180717228582317332867127830217041197108197815134864309351310911436648402970894281969864783896430209401051333556880995752511620207784563390153670231512351053893643172437611923337924248468955136039189743496620030008510178800150973271502318881175195942383661320032727692723838819026138057993669090028599959824684503188633306034192187360010873377773669150714211873931902768012832546779885982489840331974802015073481038737140527611477973000768633582098425845667843949401715473934127120678207063460179893379989349068036297804122360224160004186337164834773218234393557894583250270321232399315693562239103991856846933113738211888409607191784728978772591551182361230045563629474778488217288540593679304409962985775805337525871116463373206749402225061475702131244288802086214796432113229760831740765534235438844845802490838731514502127394740957157634105985278483863860495784451381976759565760082727614372099798939650632376696263615625549396816703049269242298656859023893653365799367906054596903140526941344327590290625624490797525998887902626043548708910559069771236139215729632173463340067868431811795329966868762075865010008272998621382374418548512497722729043051417973267255338588760873991076267676743742995902315559772753904038992123136350025215201629059920113369250911295444477319955155288994738038770659262716023525649249239617283319854651692737759041765690388598056701862794888168218545941587196218418270802870777850732011758821003661806969857460103745833777300533222784200612696431941344818062726943996099408614063810921636166918356101055396861477937481873704398484906529629669890641970010266910321576541734777965549078141132674246640362112244908713749813047452120953517961164837294576690850933821087406104845830674665341703575585761616416014726555814756083633536938303078160249567450650519280366507472031374669956262539611141389409702822740585339764843753116543790213563562048024802629333015184707335569893865134180082608148801800847042939327284190257736923347371815708553223128489042243191117234194627443973552086985426527634140626842520900338381145016003300789985695378544615786943893785468230812175586604510903894064233967972291288966529229687012709638043520801264682325715841380169480406300440506911404801753419978007324415890342855043545916994462572222482550651465410896802533994208598515609496695757982325416594833091170864094119265111526396733830761208007938016645795424645844629361062450761447440101019292982982716499374392237709381482493222554163737945747295882213922138630486476671217063062722816375806284558980486968278033892331399851668477360395608322695183616680202739708658320152440754381084108541734223691554266555916606559789681452448636837687578612623142408133400944430837479796594499713885089573003134334449602182303814632532132006787995057679846627657026742392486392827324643478614264017447234467885010201984599669948368518720261029368963856687528161137082347358380621755846393651913989167465870985206927724348049812597990368566285339380036508746242849097558784427135022509778104073194509985105657662386754069416248611258713467974517793284368156384891856775651037362691276438906590951010861605719102786604734457687914079363814980219519382967748212059951811318097157120221473328552253734600668833972138543067029233957598699771205005898032875417251974877967589565522646714778625388715753152793148151362075184923677637478085393110444431842636417011025441832692452141844616546950107133103297110758251312929507109268883674475241206548929654859303852320321617081032405856719586676754581149405569853222228470914667770327071729687497461589010527132265547206875731774451628612789979981722387588710756099109105996606672226352046534783827231032613418245349718389911159919756516566515658435436541629366360212946732783816760993055431951353288434369627659583740934889940465762831090690624375766037037571659797969344694746954398319908144210143618060492858636941271309119092341028518325836509379157515239318066268675986848958769264342358788736569421861640610975114095986759662794056071696794737523290245628643088242749617887565979619021491511850618001045921608487479098463486119742117441905835787967860273483608275950148241477233660733963687578848104660943668891011787533806525680241472169096584213212758450708558365828642375570073819745154197662276956186079056639446285309402488602494171404669051492319272568997305732290454398165983721783425497749102926539668062151811834481370693883836192310980311508015493593937652850685451240296561712764649885322889403986641089763547366942610119717871282577511351261087495270895131585973323742445219577277263793737335094040833185570833356003057749545484578682856817959096500313540443873713287080810741174332556536417660987495761896243769704147026631757873053186914479219107225845454321327106120735672249077952070710372805381078595574153858538746647102745392125315023150745850901639574419414275360288283129442942031951209142471896492198301974099475106556975410622757964843371295281276803187187270519047990939509213873325599751726228631798380777068339664827471565094074776928073177845992163843574774771790647650088679833647246334756523087724654476963398558643919880877839022668121748017213580079910547674982761487157497832537008971830576734309938309989395275638275695402643580681951915790785760765926490243599954026655842380685851925756399221174572842098089601396996541143853884436370835410545366877366609339003208692236787923605255751040704644307014742838685000626943814828263024766481619964364465727364415859675134739689839900549770507365088271849472409857426777106364099566971489527150879195014109234771263988916059851513935696610605220302725572545208371799173198158045121630515770947871801871029855745238563647790198639806268807266089039313638245972469425692460668395780636426811621213286973511015755240316355458314228660379050232638689505095044729688986697201764485815086020424794841279609217129592096311279567733955933013449972664727351066760228904958491159385963372615205288785988745817781237137889703694481589760482811748153665496839430427513492965619238422103635971434667639680334952076832923384719675557772378242342400312530717489602775585058412282474272003143641089331163712920663368050784648740647292459044724890755241538199049007245120878604790372961950125490650617840852715366983442162235270464872719970371093017350305945448524346664096234783563795304816171258700490161801904147773805239941233581100683370564253404316373498099127421297165576899074969366170435238641649170865061454205260982801035428060020318202227874024592673971171212717646933950577256971616609024443181681451887655631726287818725596518703510605275668561253011066192480094085822764329947610749075505839397179397607992246857768231777556225875685180225373461995686969507366975379812873941156000028044855037155339776230216424647426308525469902088292107415892676635390983472516082881108512901240146971331448198169487925854952664369502859658758900734472891902994909015460625408019947765293042260032839827317276417936220129799808875014901588035631714374747557946627570941714498052464291170213805130371773144647094428136626625999716021971823977628204170688981584543260251103941378848720766233075202598614573139608274024407205642041132760169118806003101596556459205502632992344076014430458744270647390839781422582801948962978453784360414308333660095810230666579894988478235577982522962555463411302332942339142982131488820935954763013342922999671723506033198861693642006949150027184720997620068167631238602993109630790857455173954142361274294703740156605375195602969759485002397217085154584905005542963842885956310035593795574457510554998934431624171146157761250049056565783651175539696485526012377632355138244759407759502447594313406825071665846590068979087170864928234286697734616970098353453543871193245253924827934747529917167669539734216500282254531401660557740047426136199014866890035269730466617376253356438825179307887569338130797823762683950818335881794104332638834708641755502897434949410525402661522515808359718260815550817494234727200381354402712756038460241110751336093298288559733494116949248538169513594441644388046668392144188812378673311106367020425539336640376684824540709551302928032368902792098152010308471968141770351551292551152917498655024551451844684890353340589119363277371494915486820525455408202373582114360223617237314485334590620629877163645352924011019788525293951069977046643817241331063802459014857995751775238360566032524438806134748863942389228044470105225109918265430069051007789682543194346732561820575255729007636154034430331504029224885575204797057684713915739316913824439260297553790171757792733202374830149509222747005267763880431503749201255373900102896982999376594306750565478086069208367343533866186072005219283996486331830404894632462049417929088284293699643755214816268289230792307713812723956754453873013994165991848213020412581159916892474723280937355529947646465232173570524031880570322622867276753942831759306733517871949127598235994343364006500240067018032224732183207657080767744345664106515225152862824768011702582240581195870500561414244568406351038137418087456990375393556065630325279016437167620234025656900010730089005717647914496049825364115914000857066064615919849886319809861511613490830221582448279566547458290405750749986234301481278467331658969309805200009859892324154729831234844668841295645915966449070165231799460974735449287467264557961759726513938718066320295881301734172582028069499814266010941402788188748215067498432125236079807119181557952231494566133964231465487980542323703486215167781901374660617680947067791365113424563671827455085565379629120930890785390805370798705491790868380660364658377788338536854185144826009054159524593825895111171228067031051141595561129470357978755921581070310880547061600818120440576269566416133671669723149303768855899761732458155030166647177578356036285454964568651566756363878283957840108513850488165810296755912170554593185061514272666354811346162234102578855844341513895752760456563038290416995436693054151043738978290907716939000112484035409078309803550408237950962294010910908902004067157473956350998884635721071481338833770608053679081202505124191381011364333520108822669547357152025084568664163693671954883511703873618274632912201644243945396911887319758560044424158941720311544191755962910181110326982947431950885413498590826022167946392131055630548037645399286399513115681226809521393011738489665004721779965788592698038644241893525312038443631991622963901292871322801841182711419267953266971668174484536862092867346480075350617081828602539879361241128172219887209578641873283768598039949158170687354745547524690512645836440018973520485180048652174601216503117304619356763822950428133015403043995764136122329685777423673657817417229882841327297062223087351389970822241944786530993660858439751581195756353659668119232215068543138554403697831430095759400599439622713551670322675022261996192833431621275673653928102681565679990086939125141641439651774009984091571797326949026597358493717732119319203387045763242788907384073341562705665770791045942939790055059429541117008632752298393013927091757448280096400902781794415871934658401924882861240098722207873500633407785358084761447395104363409698690210679222819027405295599912824137783150918616778956567280189304947726616318274736898778475075920497089633523819414845162787161947676623720251205961757147432138427250179726161210743283061222061300892287601665943687376347507812563529507824116118028269405413211776184191825992868922519940159449476201236403982074807598077806506972601634607882962231636138598185051343298569050116881119462210626505820692818190135651280745501899937944918322494837740879585871919147511086786633592151876276965459184646668515557725372263589706624858455100429469047933546017247270627857955921152384384020722996605422607768629990627685754361289306013304015390502703641658382089006074173837476438737657761148274212409959269586360252339557329275544941499872286098265582647782484251114297601187978553399281579847247647282904919642688428732572716025271723225786273306049966834037157484879432562737146261122302302347219640837575188416302250783964333320732918004788386271057634080736900593853301856400356690291216693124466066137391320328876477705824290394686945666232121367932788001978443399282367881927662048775886594928286702588537486286996182750148878807425922747317095272107493284989323266125086769893844066921188856829044011825188082410951441377236685577468548773533764605095374042582990235083237379957484066824199881852278179523818422760089611727511628050957073537652139092651371236843411306104351901557521839769446663477681015417565278939896031163221359316613627837976795824427490191134605608756940092140956234171523857262603074384876496728354568595291427845227544564810587111626197001109456251796525198173388380667973977674367613855610082891224339468867402355704343063875215772773716185823423028911092350639131971734793404857002648679504111672189597660273288845971020000007472869358233760734665784527982755376343179281841819423264454206502735367764335465184683601600996140293138309911604486287956385920497674326288460818199519860698148674923208887269505678232119415966992521458794669977870669545892298722487299618864747708381165081077658906574631524224593660385089246838261173844123582759774159302099990490971943318139418042310138884827950107264315066900587507684645700852188083692429887968245823922745089014271354830681604122048899008630106462391901146614133403683806248133371255540643414575034942720831034598363315495383128465826210705710187326461848286341703521621931973516610324652749897813472188254113628217465452054743454073367476045802627017333140213078359289794011408785363472319222851890435202205277580068805533420086483415098061303229174156681621981046128350134513832309145254179186601876926968939637690277722448435111131612173629037878864072496679395716720081874009182229113229472868059152413374927763318537151119406865533548922865072273931096846065652373845522846926312161880850885196069996933833643867398403209729224245595532619435124202651472765847568345838380416822555702105920277981603491094780135631712342475696504592495999182438507359415092623807873184165091581037152432890139452466485000441954917600806198659862859771236868130933729439105428784042425690701509508277206203968297509351601135186086717934401317105683254557125117278829551181656067806179910810736407542794819467529652184696247638397466610250063620932156284835575417140916224803993408003760604271314164961899884740844041426700487426646729623434919197451610627727661176734224411756505132272424811638089600252198594460253470878238687306130846372697003385837132664127922402990505048217766447590325690195605245156978321479708271934106295348772965498019468372554744105592623908926991374913900276578718359169520756079055859300509564782439119320499095736955993398646731495829947331797356126928974715994185987777266478548463947661797144006338730881144197680577695197817212708154880105553884515649986329021459806777407581585505992531357835492491922139510939544475150556972000019886177911025075630591525122854131805324795489388563152237055386450866317093362334742078039524443628904928944745096392030618298627742259227347940788848274385556524505948586325477792120635533863169169877637461791103982655928650705242371200058574779537701474434082743450086146723350678519445764045394181236883394735250422086973780853848076657149204683482445524110186860429373814321667745755348899812281117264266633571235635589630478217815865072399321656846781387349985316953742852248827608021655162478852984007028743227835963828051374859993641741016705743820234889566520597866645321768084106940792428361938534325531183028359231670916399814143316168442171710113784355276852103085071248568055240926240291855230762727405955790348437906908291425840141778627131203152550936538500373665659108123173300603912793124786206778458613435432829812737923128925336230922213186506950125710684627648700597459843251386897002592265280594727944837253155030754270170691872273577791960509190610262521375703675716581146418315376831401482094820188187572163971543220932577596468370883461049927215507643392236483618442264474821213103811716323906335133790556275743506872423157367163212302140919905257341324479165331041997100551700379277855060319590559677715685669644948570056476538593335867592348440890798504531966439455112246833045806782508974814423967800516120996512501225737828458464912104292629477411161512222230029777640582462429049279088907283747754996979514572001332705538740273420430838461748935955562866016315960763500315555481267696601403695821241264307401305463466356505886163119074598838074409003477636978765523502164218233920244235500980175224847555500187267312958604743909342164434657287149254445137023981824350911854897591446311735838727640791899323761442851071027606791202925623264022231217129210094721765165544028950594223232131631657507372994366207742214936869119621395747753945805547768249891967500744342471595535006610086499454128916412109200176466653867002741533412037963945840288321728859970913273166682437610712832346471829703581270059103538926768290242993273037314443703607110650531092254381879542062727385854224314672857710274419892194668864102295951136588716031821824553169654147302808373015126348662584216903130792634621324635525397481069418454421006486534593782810112575904411744506247868944756327843080395197038781578358492875462104337934273124187693285227775861304971828823018171306094998345402381176382137622041511672871551398923347810671197198046960101639470161270571515035571639785435069756414758153442757991451370833263606525189591452378090835886525765241867303248693782018814214752887085313049668672222967548503825432029017900803556225294003201365520882347950772060535843125669162819922236654765628656139296681303659243690104523652333308662416066176627157164001066978955014544059639817335901648905425337119890735985977611000749050467356385778220726917205300760228762999590869524270673256677867367713342716239636874463677673801677714218463005127772953067036595915664211705950665826417728279706704701032935526785376431848078656073824808995112919311087689365541889654995328711790175562362397240784456728725489379138227379393769607901509419939375291590436441195010344291533784582358411794545382291502368303347295134984764567633444441939752078919265014624204332128532897135852188685666594452440195658969947110461870480395196265890424112759481709687095175957002193340546460960870202253439888294394223121112544741486950515422745465328294274333099039005459507804270152960716691048803201472556418136092777539106448504506454619409255556523127406642638851271174325369023453358851280061131264675763977011650472351908732760699612801364022194740764387131450194336694757157287140277455803466854335364991154692875215319372626157476974261073706754789295353426611255639097760840489832023700721895845688421625295652928136026991161487352274766311930211751114632897110020326977831856197952715866533544783634605326147537859378846988324982188339740685258654125649427700672578230974833521542346936216722603015189011894284861324172242667657959070705748769279688184053422644861565441324761241176306877307141370550906537145121315985637075679730587377124975091338983417659959336824664219050354789473687548658371516715472141775995106265015439044188438763477046271509209984894148729167538408872926827937672470863377690128539529248635752120317681500884955535533293544669881550756356694011545750199224909673339062096943565540848901318961392278605702733367846744644993544402213497103560498673480445373049189362243804729347997935651197525884300662647772419793203265730296353499123661396245430422680137724723371259760359946828243000303112967570468559248077394137379445349094702869460304692330189617032139015936676877313132615650133747361152748848355012355285683619833908518117517681804612307616515114359886263362114416573471082161468293211641918889163522931650042202340701504554711378380592812240626245215186436851459776906342509889151559157360080534303702931034471538933364668675018110478845836992806724466693358065256986011419626907770133999658825907300672048115613749317692219449715772349944113948021273567368899957106436658616044258286633129769603316500914974797463805343438331499659253034684653369856617513025928161265390032529954989807165999588252568182322014122064840294267885418605765826145329322986545864685715192646384292417594482159776796250450803415548237961651008144597890133570704303670425651491265351466155589914618869372120344686157746236175985214852667736493101246961097924864514060914632358401477222006545213523603689166245742155309387122102027843605161346469219084075655947340179106653922920487871321143350237959041021432329930934614278825408789722554173566519146070386055543187023872186305101133957975492946063417411972686008433683480743874801643941804473735558325412040554915852452522447765668100070644461644563451049732638902533547259507268585667705173330585683642317268867211303844738680377898640556275499243897771694562144100112963480079700935961237844628393059418012140197515666143111203159993115345665926417588114004367268844427746897235983647440736148950127125522330850836234648138146073567399379298666097572675432204378619939820153809119888350171790528743546294065596996659401517567805438782859527883487322897107917869714671782131293692076220332873113930095596710044090848639005730187891141478067902254433482288664848887300826938823395653274268490711711034210585648392558424587521663223657652688803156443388839685709751531816501633832699077564510304987064647950722231502317436978415568256547510967744216802410977542425420139122054943649006990750163210805622051230784909565331147140162868855907191909578502062474184188885312637494111117069491996236832288936126921439023925086352932322271920141208977390842899296706529858490413960629274628034835617858904952026552850317330463649470898307712914181455613261536026759907001454890367233678716547727388504138274798477356208569533167249970115580782480294931379303883662763379832223169443522364665693962268883967187569006790437402308719720265676405638204814952773936561862394274231949658105347242538575577236529190686783215350306236286970808333611740701964805511363218998551878315180703771335232462085825810317544769314129524600699867383893354343316090751719926854165745473789112608413251638896035919035458606264206456744010275488311658078867854647433043062810570997848786471636762861700712370270194208483058585649348961470404155265288151034931972279684344857617755166038439646976872773210629719164414883314588854100592291725194572219425216965128493010723819451282962698360984363693999724713830301856452137356227854197856855921533799279179734093728406841568127312874894057605460226852758073264848035667478150543550431844077709675749565709885031202561401761932174324928685803245484348677849588823395265644635782262437921826091818144411724879895050279553226830792309942031059086762022795457441020180349995176524797650258638911262411719094734070073134348827385680523207204614320341803992286329890887511461987776271345881958206467516143973776163638668840908488822733979339424192907908173275802488702923812117250589054138550877752532136800710961869823917619250300278956813832310729658046343038757252596379237690053833738783557050043658406726146545555401982427492292698776589038365249482145400385446280275014006305247878159905452666573677728389688162045587830925566744101498700264009253515216140254533431398683978055054235418237294506975726788069103794112348604006432530906666634283162344592980588061274439041935671275752857247810815994088917437493227576837438177736517604265166015421076746701975542230268819432725382514514781715987794951886488057006832202859660082591820315581253489761859717012157750236237449297060226760847865489905331175004522569004845737530141730215278117069899771028800444000608502314732354064073006784355115403218744973860319955910764410878144297918648709119692515448461730896245242071116773554081557586203569649375241341869447660910320933589609158247525392226891614328913420480781582347454294740491674967507923159797314236430531315574077668887171677825371909128981727478933285807553155240793219607258230315778535524204437721202726828527156653885996800475571032862218462254915593333242513197126078626496696727480660914816663909036431000662738210774916240088436543949844567540793420215854265976686539537806685268919582631422402231292580267987898927029502575965598919265071696581116001749389303776974538466223002212181698181663984888834612836329975818309367126066358960634723222273599547217289774520775901288885967388520715633551284872291736460738739017202271455246865929763006454018722633227344496563747261841742373311168845305420195415928034185437602783958233663314751370813316208527459732368422180400420675712443917543487601232884772728146132240095829917976230474602235771363583622476544712111995518763423947796338649596862264404472405613903898076692717790090155434200236489214958182281480948487518533056221033416719030125808138795194823839355395169275094091185593434977845137575944742009310303398171560791226309155941543736732380084675490206886914679213578491574187387007068366514592055373705835032025935520124504117974218648463461813879334632244184479867553023184388265368266084283038632129082887024038887868291186209041101349958931852571150552744674039001856919203275693790980383289781591364845442092838062365370564354295523779792055395807644556282040765716382749882653337089429632987743242806976345163144798789964886354478861275846296011654548505880002843307097656346437798346810891758183043014724853519813668903073564634796596676364046137605137621199860185885812575006367026299027791640130901838563006672191463199419744570590559805442885991781245749581177461962741576123162290622037295055015518554644490943124908759666643720091923638833430530871376172185188740135831542718673623664713776515766434637588057067367212184956890593338200912599193448691979423047569559061880904647505643001130183634618206638823237851988379712842239706530272577575798722122130525293477988891523529698271147336544245063150547658221623322857055121991187982209104763003310699195653581866721854139888596979630344008850519545430109495712434739372682020214960559443093625308222476219515911273182986523718500374638549621487267182699626747608669650432753816919069085406848088521828845351591632383404950186954023776990616412775232821846944324390674277888551447397119607575240569834504819900753885613348178264391640443023061445408141928798774987723258294799782623585171328451144151715847737929651908980977361780617486321406367122027230652262842082687372167283536047035950274331210759576413919645908308183872410323984920230129689510492945180920614341669989838244537384581188106611314286430898409100335524287850487896456997674898279551695667673921810249180893514060897688499627029051554229737114426366308058474018225884386749117877270591406874774001753536289353331297062900752761450592608007703074569515820680996940567194894041841298126003279120036381556606538476587185887146698644751729863000473835616545121923908940695234881146272011477583465036993777859738678244391874679264321660412660853179727920129841907434670778319665609353233522172195005748364750714568933554886624466232347442417793213486194514706012528237288383668522469324994561301347876997282395067419219547165959690279649743997292626934974244805996435615239857076887790893126052250676645201156037051035114863404150515225772681718122810528683789619654692956282399853978161838407444327970544372101041748862402172781274943810334470693255087984640748125705573267683578049396881724913558020494446687088977256393499676071150863612749044411556443899439301919371764116937465890547351394357695617674562711789538702577736849623432094695293013696875097360463793980162781598720361047381237884357325201814120377635269019787891433349770237628141792219986974550669342156912552882011578689414711985245354534058835361173005101015132004092935405824488659019445977500858256312633672869419329854776010334321133496200903354673346233870744357325215298194823714364043613887657890919656373572607912293189145643205760124700908665330702814838787290015736154220222348329841768503600908534020486405108791284668687820569398242532237195869864864138870973961130142133354081607704975838846601926859447510707602759748663956011927439417992950159226627279461435845920580219806311860409757527701496732414643919274980306841089045456762488893347274711513824020992081235755071553959241988763160421138365917889861018438182721099746813392427301693953803217850906918936722504149559749969679303783780606792072678039541202846674282219701973964292666176204110695563069483499566781088916424876376490569245614340338150100375967864911400490403815429771206663487525657923172343005669300953149616959280209247758381108638381579497259770103178166448749716913912434319979514473205538453011153004592183571208901421796784508919329964903056833716946335974501317327602601117509355356676390565159520374155575489444933742569778311949822847567785235916161959384464156170626578620012313496886162139677107618468991956426043666040252088085913264069620865732282757032925147224960989521970332166360569940596262158802544268091253445721687891436450463349430228807716688222197748785544545237172800526019997060420265578727727902705688602280528699051195509325226992594525462316258560557752094481822788677933218583466050458839201874539087239636437672230044271265711249579876065294721763861020936676093856895123436815581585817450391233075778369076589888218385032554057086916029637414104762760830805471697524089931101746333696816920345352612362183982837282279062120417944579284729722492670469377695004063901837198390632239639140552557541916067324878202653010103330154628530308092591684709270471473924192007234839998160293577541157633084393995964142774609704110911249548652457499245565090053478467265508880447976768132975152353795529525462915236921342785310703876596599658769460665551528167004701055305384840623790307147974714258091964520998935613440472047876731723651836408664361787329704391938158676655475716892258875046308273101590348546009167495271850083131638711660950973226832217584193043497332493840364167509683271829703687535755236981417058163756077717419889211877198144998529076451359579161221699287564431177599047591195773159660371190504660041014492655607143503198759127199155167522470223906566489080548615132532437740416081402481116171132365801886162536169294580325032692209559149601005775512868002251031117927916058018490051921496570641564531392954723502572856858659864713689814755602772173703326084982107914050764535811673915978611041389997463043042062807569595181346643044663167734226996391080603555582054097622221820471441556533236242121288218743110527124499501416804305768799433456329181793924408251054502546675171715447020778586000735079894202722698779664612967368489455442364506596797709057721368159385898508094620501768283728748134647315265854285921772533953188064004031620188894056161083928874413833389174051082408978453336291646681034796576732539613751366052224978518766675508998131624684865077161565560881904250010879067369591205957706428456758856198201393528470114070350754328958614139511142855189062095510015974856996379607231143320818479217601534976875743918703596236138407881143301052807367002342721765576408675398637331866182162992557521101355150088351379230544570139932084786018106000002351143856896500703516508592949244015108001370512040488454276753927734244352155537953542455844617510621279124753377613957142995172382858073687850617992975558914028083133701990518278099716656446184819587597349345204766125922507544127178422339843864100046589028381332851381219619328349876111376549936005883176792259460211589482163016556532336709344844537944656942803628897863043656832300093456842620164609178069910043739606625631789126448767177514340830572330517941653364238400372684988169209253569221177238572614835823649805273509510429800884073892715840404740651508771130136172647795139275964928122164145122275667091558102288387622356918544986692731685032394982674964782587021780296380512379098430477160933450318369157752171132774208598667703457172955379079799516904535799001146266423941085008669545761255361902542354841176407950762949187720843200202339538063602926456245320062390493917778253791553973641032612330883708675766971607374276378898940528757739253147524623094579599803062407282145364877722482243931152462593695850549678002182702123602952713875630935864935542038930913532074001249600887439388607116917111763072255772909825413065605969294676179780478236830290859674990670265994991101119258342037967559121610036831527605831217026569287680402627405002493320503068369202734447936438822801148795880847286289832331440381258491297730117238954246165806456207069878001587858903759105229246146828792075740257490127017194753914014778445194536432521875078612676623636129303183948927274494457987536663847795064304899372669189257259860843128170158146527182089230539567748802606753711689888194621505036568640563033922585771237746778919118198869617668868970887714629935725021613224708387508802611180921841037654904188351669952173573555661172598328540588134074425525536054680840301619861496628930351432273498241992362866360113673451639602950347435865358590213817399666434343404718352135356919544499856355177377269463254775150509030979422415068201973831836007604660550761611367686896560456199487514391394592782412092795341119465652177793350572828653079060501292120341944919815180007311235192939857956149106124613343102533176331564204583906059905525930773757748219359402628490783768147922725196902928850702831519247911081719419706715116141110950490849575694564367736990716301621752322856409572403269850050247835487410792695365235719910504842934157168587765658260449082101928027149512550778791207690608777391062384613217109476785327690677136827220857666833038049137706079878762714474114025424707776248855279745525544414987751997054098975957527686585153861544285897515662163033743310891605383875171572195312138316997927066109851539598041222659930029257089301512676887482945375848905391742280731516422403327785271456827476177983205212964496339246939583344941395660117680723894543513896909347051187618725427070020485645269736898161947980256188367658716051262885843827445384154620247596325507747558906126835912007536391528976195258100891961665893314937498123260794326318242638207682723809939786045286280323260404322685607304732976497559417327790444767306255073892301217904188614493711250297605372943779791975780037615220663742202156475888407241236964475158986271640459533345321927572898952130946666122528500807903327748081331840586113789590844298086323974867133544178880279264622705083658193380676601023533577506570835752877281195252545426811438044665247659664460329822985630354733581788782018926004310362054185787037194188029904128685808581935429557873782666300048620409636471732538822451627447229873434678926070400661549116067027027157294874008682521321778860924319912825606732900672773220646392884430782848715959734202540361812691454225318027910229874811405485715282984438411258061874783007347577620389820582017526578650709199826593460917417574118928981750879378800912957327629978623225627660464400475217118411982044845134457940873056392145813189081259283962967291036253083734063808021479143685069301706381362841708858006004887437237527391205580275543985826931264668244340994112146171575886549061760834698293160186496663149152590555023511625792750300024338486534341148168893469419475106587298245978313052375996675267516464631296346077628882972337773449848461156333203079644002275755874090406630707399635167649728705177352757068614860464334319541155584549980538919691164437526413290358096424764691042010166084822898069670292422618878290202329808217533940592497663057186907090361242037457468997088078343096521542032501427681636901810385568290478015421281302079330504643146108225628525883046813270769127830351785657954607198158220320014619866458190447336516739646134997591439139369646963604460207686965348257451044097861151806283241647946780663186170349785285692355722709349461282353159079296417770751320920878644222709677566581071594215412796976618299332079690836946636979783898274459089807896674572182999366508849496350560680123855097398270996883545253561259994731253129364673896433383101490070893487963707243760841041503677450253671144108677441023673907656397860101450091798002115877334281251387067928118327409082946224534117372137937974780685555791230202779948480863155743955798133209563226858692696862415317387735924117529921926304416300545761325205835679730186424249337158344560446911136370737885980280074330448348217814180109465850370769066162802356567918372334668524195331024954332391430900009383779807681602873644966459916202313270309784877928977210735784358023225595918224408475925429042550369180320257084085123412638065778473735759603318190917804816444339537099893728118182277366116033339235660766620867819327182939956390488016793694491354415505585286823291999798794841718258380512401534832833204937651331482732377552311051555731365100092321451684057109408297055765497867891808381744559208629839279050278202994015508112997987870399998605874238391121235406281309528686397042505988965293786395088563647260840688300292288688718539030982103931744740555797136023625423967065347682209197585421571960295133065264553607543993196395617045763017552749698888157051522541243219710626341129679006172127927086552374156679076460169947858409319254002704419231918538937380390099270177588592110036038490964710477924804982228563766659712863539181476251469124952578548440959108260117804401101926450426668302024024628313755408040324007127280761226634250530599060483240766814403317044278033299731666337229985471031459910331352872627271477452373840789614505847397388171413807947694339810101807530404310268552669593422974595524926411709685547060740100490962057856006480376835118823229850057146736046394880156108295044669139179438147704507633732173944403467612687223274659567161793520300917445912682788143990379207240483648930484880715017740086962447473169442083246086523049427541999407938517325267635683432904842773600969246476682771898564215786300368782333755347643454755597599848419292721597063048045995722121455538971878731260099569061719386117572822459503647201733095902330429042000588551300767824647246935336732257293533020095591805521365678363972446483994163898290542403662821616837653084138770334692510515183309177841710136494096188213910360204179823434919477245391831846474055328943574490544425272060786824285555969319002804966419843455790404179995337028485149311861344261293524964266679109341020642069616357279131621600096969492384439784035526040251348808259979358782873198892179317054289243819112240684058772050293152332212143193714442702102223107140169761304637550413838134345068309861171139847946872835936019255580266878720339658281554535657182320695307823282786497487764258972974995838047603813711205649199128808928574457411091917582818786683834818564743041752872898152087793737248010685152874729739444096581267519712510622695183119484064979420093894206629217476002564498399616705067477056498132073133520018080278971066618791053661084278566419243476267133040479116417769788221356944889459455020889684559972330931942663387782986534277623902088745620278659808840160021313651270593406156419711645322115494908071106275379927372299142736015280556672948865172176671551718699720386394749673361775572097924455871176991265388078580639464086662005405716852928335148268511104959445772147105070530060013524138054584740522000552073516057124402808938304362590592115633645497461384725125975946250033727354127629052441090931379847540136806668857698271485727601844592677284236404910436428502242957543465635557918821246750195410949322209482351908426661389085579218044497447854830328464747314172914827783229213869243051383348073168361799034635134269024593164708114387971267981940730414214146460981884128483916656636878623780479686480556676610050104504051519724641573257798658291923374750916927163122288369525742097059402093116863457162067530166623292886167593603789394684929756804244521748402104259509407954051427647862256295309639684439838727965685641100325156337246791988468473662310592867786865651388652544458708899242239331212922700745326015681140772940122168413645062707698000982982596096951096830248881662505971610773587304711264380226154356763778714028091114168592288968783262697000734894154935035840781407274214555851185835360521263603358831171314208173257378765835372733568753843032116237004247443412920984790861740914636594629415021292084441749436344303312231481429951387303260020865395228739734947901795146748439498100392233599228218143817021986971295752446827603523979845552215814643605272678370732688409660433480617759505743126508012660316772738011328703975514030606363223924640089882917856655882453941434617142428910271976322495294082454018222695308252509654342243202382721741093323726629388646987266074516082836883923062701060209889249947864770798326230296878246576101708223399082601363775221053816749107884399948799129233229441363160329063181289212902148490274262129625076509660068756864007049039894815883101676118329584058341116409990753468931792208521763433860171151603898988762598274828403921792637874912125128946836783883188318233006656756952430543793496886610075083516953121752920515910845260236455495124631996266153367602215121487770782290842727081909317482983202557444333961600024726058308489273556481237438814947795723652005579780674696745194565714549450451307892799141015991394266681858488461992368190258579214002266016823575559714786571129910988598706096033970109828869256940070370675284365364774028675280336071183602261814697459331419903869596271861190386415609306276533186600444463435227025320494951188447429671021917823363513275440138606548190020278478306051716810233673931738075617025935599572205704284687644524832790802688335146839807833881275475784773833078763125785649451630209460635172715607107589610421194808931079019257492460721351777636380653832724578058002487432866141521061305379201996958711947139900909389483118338967399120739478531908231709398391837540580613880532268282314310163582892329493174771508927112498823752510835437974419627914536897125403941646395516154892996441273434131045087881253911735828403416988540869063760392352369413300117489051806693728367528590307621670518205715682555401631133183563651835575628759996724435672648498329429416644877176693251905208690013738772663287629770973693745553092227801165153643044814873676091317832445349954078987944873418400603724058164197255942638675647809397918604126702814765929514704153998330024403999254284214127962685129872620285369269252957531159624881866706412688957382258511131801672430525626122547203655251474521393503900845812975704465196647434755534317367608929829761942826833731694091215499239390470050506812075446596918319788962298573675146517533807564166698200213024264604075672088918719342048948646447446319561107269766454159411811604975068770752342347213333032793797239959964245755174431936948361292005176465069793427012252819607725128967566527209759771832136488435087491964078960239332128673020558365176539439867278538822946005027654604816418467111951352956270196216327815657678515491562123701906685707029633247654400722533282165814969983290985753732107140632729115419559356581887112503596686592573479450963060918426765838211212191595994573578446160122785360789278678228116922052462019981248839776010604184899953379741511361559622134551629571876780029329858682232233145299967190249344487250014808994568122877323433318394590939502581354894092653167131958814835933962931830937258486445358585184082264213497977581211476553606428403087399261722069513166193940862451844052845776247869301264734750155124031570789293738601759721324114725793465124754362131449275243496881217517426477292087840933768535264730821983547975643159650027718485701835671333003207421491631533820850209191418802702092340086727792073516733198790448989431505786305729825586774254754823306976156388954205353534902588609673165141740660448747262969979016574063146474369269332947361227862827633142537134969388689302886482051915255628278100229187501924196606425477655135264561379216147229662952468476667325921656759822574014390108081420049981621550309228637896279145436481470934075552269575719869742344296785481559824083600626920177640045041844016455057017960201746865044830226621514294400403766425481400305119580396461401340268955809035987946215577313488939338959707045729189204765040724965676864166853765216520341130181827522165704304326965601024444012600188571666870383177768134207920994623993919486056320384817203181881543506971391875170075013246986518223143164470374398916614952492695472421746969660354147737936830322007827309865027645501934514433942109967317991031114578775938632383733206480476973393995347729391623926002104433517651449360260326779745590156388361194117529344143321435032053038167540126460563586956192383513329968585777504974214840690363669139525568400482384753368697768384388360437464492433291970169158142052336670778882174738721573358304565893331804853499498895416073583138951213038332141605220984185780138172627625416104344945461203252776658814116407338289149601646211702161918721673063317437470275522425284925084580591134948625762565494643703913918279043898562806793637387133434112741052167849450492078531451010090925030711066088916821534046877937472731218066287134957367506766526710369041511335453031204489093522121276800112955681683093356278418118795961343235254879928687918288463096482745154907249025097707477978324864713802554149642433489219809461025963278678365894719692086923995303043866118643253951561283116343780762310070367865821164833629852495842139185210572714743264122477676938451537344015730346604353195104091644740937278432356444500749192715532265107592156788357640891080742673545177966742778536240256600431077958099428777078937921253200042436253567777872444826574459871627600298779045831474193930693950514750227970196542567770707437236109717479358636688551382882110354120259992210522334616981178275832470668111623986601314070199973947413207336072097156073134474018537637679842929468337937500029373551222573501255843405968003605816028949711731602633007425630495267699880994744636575132974582189114683363580729556301748681210687966151861363699640095629688475068141609252951288153226153236963472890484643947101226484312484795504919785593628495907060818348079724205796044184142684627315962890975693388317846742339293902732440423560189571213154607399600076215577029374115719551440713084466218881396940773979459075841000603571227640894383075314013592638343539191907877546470033109361766705181092729631566663493889126039515191347952512201045970798942876257823252120381138661694587533262567973057368784753179257626603330342097899703690307286639439522388578506409094995797995108377842117345364798521944652438906539661737204180836474943895182141359586395501953182711621847503648739893644880920929031922723925890636447556881725811141860598637273382827780227103715313091415773419411928859777416750778974124873946688659337025599249889638856606713316217282390304785860167227605471805373332650569568155290810441833192969636472759882758353752714074354781192022021107671396528539884485915360830163207644295225466593693714798957245799092658690457414499753395623731500046642414297624367963030233290940422601464242593625697946221441635288763500616872179782425629587862342716291686101490159435342847305693858433993972794051599830788134488392029396575618692913606361913007383410163273263069632216990757187610300789880599184070045914430691664446370938452176341381230118066639944948234018701134529936658259996492578575090868151260233873258321546753215192143885688736564280511524768985015339738105761434290835775769536381540030204909557801568286202753347585625951951252765827391080324538034225357348660144744209787363113227508909790791780839113242642556228888318049398569512648536697857770734699490100119117346264282759709961235173469429714276560380969515803573715208794208018830959952310885756451521476795957197997919228557171917423462733573777493633898420654812515284400550340901281510739973662588996100943268896529424892359315142651281720500907445511900017373358638898848457784030598579240028738086088425694044166608845982492534943026891509996583493481152766509714697236943035706604745484783396033160546815788243697916136234720759717994056288092898944768323778053071074412382966291155616866151140618536464403206076835896273540570548736734590331302680935560535121724338767663437991135235038462229609440908447666485537078664757134044945797204453468094672568536380192506925671564149773624353012735149927084223992658722867165104024875800290673966796538982426943832628028701335067572778165925957575502074471106349567868671774564747332970467382925980524644949926402868442396515869346499048478811192149088362419705892002208814845331935707232900667519713206965410863019257202670219899226632684329760982188944949478088977143368294615096400619244560287573031949255075569358561850479955314320770965495252000493302370554197482386497380311072619952230868270809616166143649784284605055344890625999929101167019243167757658489751071267992638871361571833613804254048283246239681532462640314708729317227238063635572039678922893627617558341511645906400831419146344515318919069245563011326674134466309199270345428480670958604892447366656729476956100375127713169789770106352519076872162823351504684946896826747375171559970967476477850321451584334485107612383623244830024264223675503038333990863626547626042601747492800619018252574592563563591813103402810853375719949495854922645965751640353657889373892441278729664533008004609139929294301153231011796470210033452199074911117630635870037872418288872654094671842475466749802189343429191985055179562874241354413432524921257507816346835013588352009906796469534706753479006003587578124060296658449403964621896203497848198981072214476878241163710988026202726725444008747411819100218682625027360558013517400693251503322146137926430013752136898061708800323137401443469153496657920985987101400523497059443505843876098085442179011650403754413638470247110394285387886680641663382310070761300340107899615454230949726596033058209391436091335151300955111056238094905713649910236354836884318407252247755885343634239265741485505600585844571606608474756066033163837148940277642528085057027740931849489092929027255462219686888137966523229481278423775164770366380756091345920162712018278856246373950569947083228005041525289461336065360887370141241544670025736935343884196025299643800243357286276091340857968571788274104883418557392677688474606624722095068295896016209328836611838490017054182124402717405208155470352446835984015640113577280176226560435945922332637409741888641758107966097716557850566268345589022772792237887054449851528784407973366145241422483650971658141014093008890378713876574114662628429633919633140378114128954124248060957815529842588408555627902787810878392767387934597531634236199589660681632002781770660185034788757346428840067927710879116467929211487815971554050562525376984073259719183306374888023525775231342154069934410289447893805158281737299785140871437965939366411281689760687209980030017813117435918510716007363076906611827305237006959772966987798737279886528431222581520141586038161882316082980962120085499976757039369826469213410468911789905015777685558081444612293322342806489010296685582154023011501794779109631758231148752921018534442919915940589301917722924035489492692329469550593677094991100494092934785276897757608798175949950144296327155620397059238177487836873136317095150056086094233217958554899855981961631334416030988848297953284499664519588441820018691248968765989942159776440903250980985347060848989341238203717489666023171114573179642027594932739805799266024231199929714482383049435624037705832904393720919324202426900620469048842557465120110083136483908651455925803412117957301644425026072024330787514888139495636632985133071475164265490732764266959592182762900134580781678271125159593756099281618285929565387951785451274431764109201405573763329990538357691448182213682432756835557904618714054072847815621223413169339203316514715386092976221381349843620738553404847555381433162502108541780426302702246120116452274341970142240431902996632973286406264840467126680202641154662128290030689449123359872925784031349701721312801669471023770065808925500859738449606228767636397454699642994494101782608338648940672267869755940463776357712641405338593848403692340031553441276780487920411406040258103736580214297675661357705019363850383692620508442169324297946607052797116066361777628182599375222719850514485031153187071290687460976615378829989942352055400709045339178144443748945804369308212715984833146740059496359488642229216056944042691676475794768109246773867637692100991668260771256525892271291914505477770813347544027061275148454243540440915761103905717606846372596827105882586646672860803156183326789517764385520304113049395501574722310084355542928179264180549291570812925256097103387855152932654464755777856039626772303965162878787431055219887674206986993314319933824796577575444658094280647307815840822029677370034174469117086293673112680359734357702117224319053467223503428047906641717189009329525473531734911634449699451741988680904519646782012566064236563810086815621958684116392742025618401606175129070605030102858308903099044289267415437239450749464395047047302996209050104560383025750906498056682716395768713889877747614601573763617363216330376250207460108755226190670086886420635112974232372549679051103442184075343628214654831427867032669814829935282686281430749910879110773092337947194459594789297116964447958532375668741996571408834076272881790994600763791468459823119674960818146153878216652207090500910099460963914371227807371009041600615113055330854598066192895101236101139852296165540809620762966076784950857405622487234119723764555973772415199950832376973459961723282662076808791693115328585491933385329090806174756964222978102715831833748626318044580888197041727836592020572401305501267519072700288733059232066745088562368690566770821951718360432319263608549970087196011795662001911966807640397733508550884542544553781458207366183603245239517702624202423315763692021623303527265955714703952621277165240715191316863181619671620927798451021121550092172352910467619026349170060823378543886476311740886942908564595260867952293976169204015915138389311103642293700071248028432437139278094975639356741269289465511776516742856937257303726839838364925548942057742565973872353748760662290424443552302661441993084290279077191750208385141389727416233549414317486945237784692699912675290669325622240069697966199974274820572421961193223073243505710107369851147021750978617515659694664523555306893672300446331733265508997081094209249693342967680397978046173344570850175388037646351978463160864135506515887622967097224925445979363610850380228502357924593478311436784331666443484584726293279528675324853290887201491511516203974199787318422184370305008763703884098462156955349194120944541445741637661862504312283879650969858934284621711868698399739247381278788830725156713236182906206838967087265087291485466109579659436390159902542035835320748193908255053750372109460425739630816185789561668061942528688783956481419831933009469665622745167107729796747493824786585181650022110509012479309325710477520800744625884534238442746434546972857054171586975926711132056899346731963935197629213075820103342269030290692584929415846120227639796668080853223175457624668629319813279213306371844592889464594005636437409865458498145668250092677120800274658468856529182284022768136915454759641003643797814879904755166970365434947589341192072989071138635112593460339322464740918569668961346785954294799540887943734330599629915983025327735896609798858771582694085114414657974190704712352772525384178632138196925163087367950155140921374643657249037280469702622736528326978251076341210621032373399326424990559771500133508195693832142123944465601919643959401626596158590161845334278085487544860683210727366871355685870142186684649460206977071130123041149151098233358486540779913808959116426769540261083512699918527381250525034917748234324535689994990680543499731784184757433619739121022179820766697386874730126300665615221346674659852544808989210295869481812725761799680416828897800454574339906313449543145515495522862607388141518924589511751411215933792264306240549934371169118947182828365027724522477392501495303933068854477698625272548705201155152931910574587322406197491751776153294756391256101810531878289388743180605482802722360857805242882970350349803610272198139775062367549487405243194840666974073985469314389757359245342637665321125239867755313314827993828423000355298935400894389649540824000488171872074651917877034733216546244877193533896704341046985283077501539154598162747442255523684455026735834885654586237627498386960467704457829735238509255174023359350626442734988823323093034141557301778864362387013567297982472336373123086931607876821092751471041548627297733377043199674202113695855882942643713860794993404169974162429755510895406834414471035689741687011181487649951701005878456801530558510958509143906322975428805427242877187706712547025746093525354246650333570356549719479769373606278435233403747422369964946093703061667222648871439654853671156979012623289894485958366974876029101061684287725925746544219621565639194772232558740633914094928361524145819594689825070381921653900129962279686785897119577067796897056005282436954450671132875235596945744125253861120444674125208037371938631234579352848055218463112900570505108005198510584811825454131160506377941144186328770351951659925903655928925852567644078643576287236062010014141908894312228560751636149013774398120283142014623078406637234050910832304413149137754407299145068183834263706912866505019212327012693935680291432293916196287676825590566376865028637243069144147125363348835422772559416432987547852447300069536243226423683961911804131001790310486818656061325202832385578349086643293072258193050853238334335111948408592281675815784897382105219613873967387710956712274780400247724762791225594117633393405326327364765596973411324171558734697432976994058790707136378185840773320002576839074870873498241364177200497244961511335201931693823062341862843828345510661111811683932552262895148163755108521965641996842009772094498976964296711216171774474819925029828264043759784622863956315736194228139331648936079234589837979158483460695461624250967881925310448695107362569070299858585940297089204472369273128733219603788765501306180923575646926170990601992282871340743255031050751606183408151800546079033883940703542464005180910721462357534435281817512700860097702414005216913171034719469096584281669882823484256887477441154769179439551692026332129203154745270428836400475317972069119248386079485473581408532291006633159491444704838653460734580228846198452447044655622477079888126169608558405586178720378965260425160636424261834812839534959626873356682738133762885667306292834871046718570893109447652392663689566021598915580982601539476674062048888087037012641946442508042923898606610374309843370850868233101860374863286689732456763002004463751871729832862687171415631241999720497260724306840067443467663492221402759771387360425938333803213060589007877061417075878173343688238244776211939781501332420973073548889783778450614876412612484436819942456101274727302944373324137933703924306448462152871425926849705127812967337733794983104815286875260392688253790735920098273551469295700450615817288368641009823822389967743059810360255021254405799906277009429293219206758632282413604863554193111947544692117209970955076206161058456666941568564864223971440856449737130000077130774253805668420500809646743120048158170988362663385975410358824111231756156130352775346795581408495781301107642111224682365185121803222974690689066124234620543309902099969664411754523277316814360262667439564307263224283169830014740797223303428995334034687083504352519083166876103146741081563807055338781221659600859212795412772736863792143545735473927369592764083036393923622066751058597225327481011417745646326844941483823027820891315464638433166500768335784846392562481842307177184095027836839390273645334187066409053258564609966426710452528227400216722023383242966024855019873698994697136449452449786711630767638132348175079122416822755145607569155401995775028003789574207245148781111799267625528750156568053316703200612191548602291670068805989894007898689308148157353432528708674767311580312660931314370114442248767345117123240060750451502918459869014192591952893677816131186749782042410051182716329964081425277977979155221047791971832407295676984626557809886373985948194506927415656154215205692352843017909137302063125441164626036946580219760092534506086411512773661677875357239244553151217576137523841079113638146844962565249111867345772663598646611725726204962849274403351488898257130153466519582356633020431945200551194678522693836063025642336903680310514147391543383667679422328654965609469857609009884811965363308564101998765260171024130867862576320708142641260777641459939407871097881855338478819679385987908386079533576750148694738641996300894172201173740629441829778842098010397241353964044803754700852694047327074895902316605063286110607484053269105951016513514697060400015498408849619634795411527133136801013562367349260946182524920188661054513895723025725383811571174758260085437028339761974578328063763710199904788758977456720739854335169231925758433715183599743347037692577548458913183531177504257045140194539707238818787999687222315352738158920574873457844814873692731900394940537584344100813258135804837267163576005366429755077650403170236469395176783807048629712334076756249478117533899213619181184157770936693135318084262211709711792597148089055879826490902652564567281988656749394399364796617859127080806814384731172646658618965389044255548751453958583668203682671280734382129248542523017011663856723242590794817666588727166261516024629913783338213152536383810197717879711329449574980661463097387501966250588423222808401575708329148992027197976265934062837355461274802738654696187504654988743772152823038556241027940050968823080357578627869865616184985908550820359294175500729192097417629408330148467193525311840023831870276068244817370477023695465161941551387771373915590898114730372612478793659777605223900168064037776490242484911969693449547519015397521160968024487141839843730522935414941352661594891113586548764817439625628484331032604804906314146672917292654619857306349456375066493757865550939111543787792572338299980048343018506744953503449042800696688343283169836995180245012712227290096025686451579976345119165569742148420187871770375335879525289467646259235292157154020016057574181410923625572016689529623888894278161716928728615078529161749945437583443598797351271971726569445932193866385090637274253227082518259882525330907808741069963287124382809658311036404934024003550682010418301281932687922741728913513301679891567557806327737422036091127116213395732289224276093621353713908424565990963117018534651925176170570961007112657826270877741690020667677805326110403534426971773120763235857855719851677350028134686998621122368415895290761095951767494868024348477407761800792560119934715422484822255704087386909375272708969229023951317324589509616946974795902571354759292237505788707632137653307967000304121996366355464555462782735338933206350944731772704610620202220929668386160130276150087715308093754115581895739459221921721068193517545309459662416956578307396308881922383664209392405174874473970296367403150354925057127240804856731475457068337203909546800074526623938170136320159873158970162627836207779084933183308403629246690827027209031972533028047509097218380271968737085894319954874419005623056981472879140772138865184893311327884969850183319828458311322490398279783367480595317204835038875107203872449621293997175513111054384753081268608737978692758736678985228171405564178256155975756065866586755302114573247354282950534892950551546030194104900208095309620767883779028426052894260512301642538149976479275058864361177286378249782667374973278807014696868416866728766471477722678810150764192476693735023697088141165348756315572514997971758491106991625777368790179484364712351576652236363085584682750982167112137356126725679414775153211734158934647870487009842626389004253903287998694898439365595470891751070490489720655242806067436343469095688456070004840950022433422592311424837956986402225052443630614888299232338369320261787397230485111234989285914812242956115373471569126637736444492580791193986445114181962681301767102828068886810991208733444458188550629619283778361152771541894002119059351125147477126381995391709517222049822790467968118957525150774876287768093853541172017094422125400782982298959084010770352983716737410291525198206101537780459871812564263648289512256248113835930894374275094232871589988320072311016856969430693813336643551161581629238647435810049542206866416091586683343088650470922697429298327540349407289406418562931335888038248551697439021471726433243558840410020715080279062371357667657550258475607948584713515496891361886991668126828831340468568869649795775430545235681489768802928731359394195677000694489871854481787896028825408406728177131757574760364150383730905226264293043260500754381667512464783724642482842728308813786270535646705537184321019997871340987862918482833740023714875802685399297190620340654151847875760761945644454126241094295643432865029151901981885780176225458495649996364138605481233073211199567602642661023810969952756769221454844103526360388251779788430852197748559979951774709603871551889552149056237246711763502303193600775324362962544484112248706562998963284907358500131987306744497694075248394283525268303895458839445865513057954123848650686919830417529419476054723458137424141784935627655923735305121247739731530943350122804775352535148747343352475446683574874192442011793215837025346557400919811777468645394933925517090669116328436829509310767947136780879540943872058045439823453062950531117994597760163956542557984584653542185798770580020199053468215603358389483903019773011672985256202834523223943052887106542959738806413226780919170186007697170587088638451085743488512451087401730668732480441507305390605788051245715513207332941010576017317654104079187135905441510190934765036204729731655171781533066399941851936832681495188976668494960170756211931399702090362865470308898778453065926146799418266464601446271866439714702093988569671627036055489155028595817403949849156873950415898376416620679757721496481756511319038610115693475672256963257933879512291970909739460898498641363820345796260982861039639717469013026306964637306945797454633249479205071604869298656688724950734100423754411478761271638016546486860569916052400043284390113968412644302500569244300039721576903486224229939080625553145886821286775405909883458618402652597258751628417104693779768862037207644646551189296716828377461864061189542575334614659959313228451996283064426603236030621668559135620323588534396302739481272707540821147879294779685753490204014381279306673178653587508690804570339031575396528796300144527516733967055871338855261640698482326366568975724339588799561934952199515064613629997841875668965728801359362515878984592718792367401467421487959502377546011761292260579440942176592373780902599819890687819568351034638337833059355114420691543375708883040857665135753815385686001738081339363547994846773225900938679062454186992028673521567344680171375050681736554389592877031544150192436044538759235828732316423318098876427769922045407223542895878753567943877991596130388167437074102032563706058858429224326380562815782456722387740643997172624885177250951090375180849618782433630841502731466757299883602415225235893542449479139770023310292081616890179239442317959960855808593774483698089103996606016441214377043352585161845240990785786522975428978563336831058618062601410099749737917758093366888534551824285808469107244380371509895038885007410517998974701170566643723819165465454321475924314781215488645490365970760853469395084677743016826402215436438292271930321465018370775672326982296967251559782596460687529003883899161524474076542117431072823840854713744858030799193192385164793630791004534021559036057656508962053814422858795231879983702134163012773959717454184056588970339298448798420021561667078202285038775028319412714677280859655443230879805849320995916199618678384651806706345613543650532616117605086177697727262408231346559920488930787385507598762254136406022785507021327273909509265809668977922870514037238924180333681401931456953522389548617809310002019216420009976545257166272496229254035219683391062249304838217588131020135934382770094152464150314563480708797862688792620158947999831287249211915724451395815403369093787003876628201028891597069699842248188968480917105838127349094822588829767360713786425143804630857602211448746050759117614766997277312442475903499591480082838038038074996236088363542737830676500161846303560141160687413444371893472856027398525138741275134311760350557148161172479124963237794688381236581819568478375939466693726056895203231729573663515130287126300796029097233617737458389708176512933323751151449577332374313097336580963181567645849979834449272929174206489654596777421196102528537479115227114305054701311297799696580505594204585976735860594872027287386328043586361825103683742677743779124775434223552645696696635021625592232462142488727019425100298477382568524928441003829074061772207054010577152969560730310612851356656961388218585548441715977617343727396439168313860188375347536585620024790699535444375020017930801859516033848851717731404859194572402814438029630250870731331864196766283822424676460196377483220854487690432072118507718004104434236061056986973122214744284186184998477242981571677270413187689377186908105805702694331054622447605764153220000427248380986961392484339347842162772012433602618389670583023795587722400149365024308680119958380662118491808340739409597723840932994582548531265299130251361905621616615815104602131893474709592371056723018544863588507359071171730418751736550485695463455455582435399916882690719204445004543674123115800881194535771166503268479658810428496869467818901128607982444400497219050567314396542271701742338074843441822091943214144472191349420467762118385547623933365939149768957680794073929645149117875931005371859737950743177688459163194735793240600264561939319025438066898150195489652822319511865478699742042075426756352122952665294038344188718064737720786408913538823355384835146426936097115889224136585036326636709942382641803658741565352338467575549817582280069602677534721366658136855791319701523158157228073630329234069296072106977751037348440725320426488450557253834221697888458530146769446131435141973421560992293996849697048514246347174915782912783406206576537036002184061751268827511636606240324401236562273586255731930385863946084573273865972146334162086546993117983515107233826431838944270266909694170290096909402468833192598877109721410573298073685191852614031054242325210604399288794276156512464479481143928076668689104963020912882850594294066879303997107001190355657943855852641023610179031305925645054339806931118705664049387815934679940532024526979491983942084555333638478420637674531533885814405926046345665712099318186882526537732522321281848282931860095467398546269791202755598610313522109836041786632218796365475987580204328785519446561085513748842106822362199973297379385036064019025690293716863239621686392404373279792736995252629373902189709743044706391721840387207125900570244810054423030625081207243362956329197905906956203138691723816918646616333466902397142896731116730386317349908888048700981965711453534897878452178057042692459033986611239027447629636346601637768132260070629239259285624148928040741903033410846630012258926640818004999673192348628611564986344322872937297157736235976484821843937750169884131000433930697854728810142746712465198155568457651848688072228308128411724014674842944881109344185021806828604419393553019689139723148065389110736696681535543678100210818287670015069233033632859968678983359126801106586442968338032376130537047317718890545132186443899779336870818381946381158643069698216695629819088578427820932440137602751409879355855236585645338635728303445350460308186456815400527034239080381639920538694476411230280611364156200862357717402196752861062740539289719895258292743039374922304123868292088547880542324859556342633578446979772435003765371534544302007095676515820831432467582295505857052736562332896929790994316652692399998356530084478314953417054584438102447354847428834996281053079890880733447266007365294058038235906714907677805070916230787238148496588766847664108357825664259073158801935238807360650364534633403600060882490357710126548367980940866651391532068014990391830750277786831047512978316895975494249884605112476255410775498069797612927381716926916327844935191798951960382280649548978769389842964659453582544248056693994158840824571909142361255843587766678338274522740559736927278591471854237504565724594498553113187981749444339051901410124640795919182245782599480412809521091622128119581915061268546387082764290655127403521057390548646825401094720800739134317993564488841794741433640118705956655867611981189646752843936449132801471168698909335085866517115762939638883620345038530671587039035833415261218566570910211134683254898186562476778127863483039496565505326329758615683270441348405540801062125445112653219003098466863797300274880361883877559288676447695829611779045492330252150928726962845967679535854656383196688993803148311907778081067507715360112050871896853274232196562037546513673652756253580802725627489456306752092513206476937416682893427917253746619209211015897866034169617294983827692010947859179100743199032117936404556387223282654393686179119588481468650806049239034246727624036703683085596141436390829203191925631044757637915249270021648495219638420555809211064984056985100343882778385979592307446157038142821279098401919999310487533807516078985288596335240457852053551701081023156703230284888893912983719657346035123039538891828930945026139068048391395328810719997152069032765565759726176563103429213303880466007634681128532618155709279834112813382854976712628778945355325443441118361276873630610290357307530972412063275254364348090787921309991763782467742301075692169563289036123875425402547669785477122360035362850911655697945885714437474608789493254779783365122734718952394080524193926323181733837125421815635422984744539987098682347814256021376808309612832009762906203755180831861304949969925461271138781269334914951277565870842156103372700834928507345778373095886505850952344511748211368875313363894262348248995133320688436081132013208135391389545868185546999074048253341971032836514161542961325384156035717398287347285961055886784138394858117104308342001726128576352013338190155754253927320843413269789756812041280052376754842392332526883337955450571427486889246054681498535459268071319198240861854146211634042520957723349600436306352398055005073761883009047357727617793976363928136545694275609378934028196128257083666488383038577925744704737663941846730667747705092485661195270809154065218755802537746028069862609232756961445968775538118361797076424651446324731865589987624590033515064412073298410268525927944443112409929154826505410793418918946649759288891406209350994560125176680612326438261998551622165120049160920943831282548965944400718974180175541926824192216303177967865326464018374619733927872037344546490967778989324885801471145577942645932369550406339232223985418597078987391018083390347039426493197118518043789971256966201638065307558474796081209814902934757763075966623526804294860245581627406005717864776481386725253510528012806528273229579014992551775969684179387797309690838595440618933636563424406205142189660514806384162484309974548868812819643512040881865407483577596077220754024304397794869543045802323641182783173407905369137255150299487828045900758838605271605630957138135896326704218110204872768102993392319356740978985763897128849786016926123632750161781176915164982776545758589796106322708426990076297935239153630528948521217048300314646487611647284363205592994298711424548316555153949516915424288423027602451911244761708977838250858989364426756590071280705285531834307773695643595338919887522923760203769251084928544665756235625017645076318069973809133693102418899371277643435606166376685592531741146777683295070083718556676636703925667889056354641866085505950592088749326544581096981302340953938449694221239026501890790627182541357889787546333606899836686524366711239416228800883936693788769553192212365977337748010047706062196182845314401373116800532675005937222301328761454343221322217609444725148055069087923795423733508574993178069963494734994517188262895660300335692266143648540505288514488927278864825337932021879880172099789811119472106984258746996915411929754929516425721668978395112831717231131255921564063777108873365443629807355483075760064194951872693533776261127097064333018068808175661009281441783246690659601560112038000763866185766059409299765213732860150146910180135413409384215334130421320828283090918489189748292972942877176460095947611466958280632236903489030882922602286118530500141345082195518157747068359199723852031092810442839671386283249212781087074203444173511936182025576000063856635436612326761369246820231013704817462943177058102746281269246444565683434949515035875958507431512298509809076841389025038612027879934884183337352211645093219786670477862930085513221844045998828184725955422949022290304615818637922722135661052592075014843883206444779680149681178574523357680608913172728830120041462773554335834842780646100571572820916420259555509341501894175697150152471958877160546560700306498305723158593531489129738548279123071073491345517824435369631956851078157221602169021380803768668851176268636271655370472753778530778014314414688531881123373058322524758494742189331014889618811467828280655083291595126091490094331722369185995030541012986011105753673926647031704005760766998002603871741080819194358272323565848551803361120487302208756998235621000370969450331349819995804488411357601654236532097143159856881754690623904645453054422937743887874058520530738860716518072214240625075866241829494278789746026071171489339272390946748303530914058188708428467388861849038193860515818546685025638733538478550695950367833351044658958052455176331794777960544121604780506036251647933787698468781000048732297988926571552190456693898681055618618789560999112574867213333657182472839500215866544981951214851890797325408347291404419029021622512276476781451223458950372846639797727364394036463568996874607217119655999065678065503661310997779269221110684611333099144318816742730224049703814134203200097965546025159773585462497355818990955779065003097027233879743950853763174049882326462046864100807591369050218599545356941702913216230238932816726961194182634208727458893536148397917713570149988853507716871297063554249125656802178715207540843220885599320218971253852022952976903015007361801841875506868240813439733361959739604920731612672888255650125764684773598104948062765551523006070235574213514767935965766859169111122881612195533699118949609035712077208783497827234154810215839016419947841447397243283419740971138547664505628716828793452395617916349272543280939443372124386941092397583846514288780216152615540533763209312702922930678823119858993005735034293918468666693607745325229895645287784901592277863484416288468629150150698382879039872199797643444084759311521103277127261818301923237322609552094937195965109809455771588783305247625167639705006378585519174786561339859472852351121865438160213020066446249767260407268200441946413334532824286970718745327518516960811393914029883389985851864508315498836716589539480277618812700110651794323892723046063303952552107500078679683995804994383016134473501593435087603626168540450200142070257726245944300874166329185112944388103062239116911825174915304665279829957698336356603160439920585976164476021165303752283321801012731957342348683381248407532618587405969464552587039423478775192613027114180278677452720375900015828421851420039235392952243544947005010237554362687460048254663777360585932608724160805992892904793512284796132252160772437891763058149968548767913339898158046047962075013551715153789796655507543852545144733074294275365098284990431150602279637873210854438595026027069093096739968559346083201395662968233567952527328748586021758200320175960287256212665225027212458123152859981328001483745058288652490471766087071645075932389435925537364226775686483255702493572374124133420842022842164080134509047271620442020157385214566447099349229125547863954456824933117280750100667135819439219050248103263026171667080545108045320917365484693277503490989379890708361471029704788841449602811718382324433815047864868196668026664959290393555301411758870970097598158958206092045198613626317059193535444895708907862212783187717534317040769779764209075031641879451765704092586245784410327942544416271173697958754343350035727201866746737127354477557798230453760944172907285638060472401029216724767517997795372774092025653742616655326949786933918005437177251261899729379728873452100000142180744561435349189818656316422438855917955839450682309150642757071581586965259974736890707466779626739429424440312655886349856369333207153629864465849323604612885162016983118969093024816797258992059859577039660679993707968060753842989754149058854758876331191574814212933449354484584445298352625320032365869058308948013482737518663336417953492351819782499624114304903109714513107238977856983248293734246886688177077050859616234955312304792333169368900195059108228205965601660712554218300122933389913248144092677948423800820940114030767718561774515238702946598533146577914209739790126126623553367844626013663060072109604281224721937348678120760047676919047818410716852615074683753740504684890742468495413240560891900622300465663696283202021638781178901225129013615800372055371499982054466178623207285481465882014508259042038977727568987849902306716444324124153666987627100710919961711462567672050083075399886255832391620136254568266276704826188732117142616901095377626054662367123468768966441473815847967813471903929117971306067509669773369362712518867379497614382874687306713544427609382871707557538593105830530572902395458406773728809101732587909958669761861039161919459419061592627857195261287946872982979046129620444769687384733284993249538161629156281980327147771719907549967597156605285863883807345025492444346667141452691789816360822375853712300248808155418258744268877138691409526796528478047152772639552655789122563422860762837336012537557468934692051108724866903814780261116230694651559144426725392275520595638858402086888413711452391627454595456241419530018826451149163930378721513242773539559497215152290132489386071949926148838406500033229739178349595663771673255014356548453369753798139461117471666523277322275482258561137027885325571750756438002733789398949306672299312182109656043838704877549202727356598784295844229758206169883561622137776755982732960442283042431080139302454695870363821678559907529351407439348910766614273070360965683625939205102652458236042829962866194075638729119439914027778532564218513110541691002091246361119294848735109442487854391384652398683600373035730004436647138734276878300610123670079367075656886463050919799957756263831627577508532553915805389187295809738096083498450287341379313708064141980876282137821747697455840342094827524748218304643521928538499394302286491749007950771194598741698883310959126125437948025692544086204430176343378509436200757867357562760571694067601155150480412175097547229202398311010539780397320511578248142314418990016579830397506305362080502024417991948120663030254472083952733414338931231838206063921632471347673276908914007598017182005672832180276558805995043437978253678379761691247437758212058280527769151260622523299187805104258844196699177517968358083231018049564800504467161406884634704857524102947719488553291925221837999560547387626804406860479287007847526561268997317358707372486466379602875379325795571525890772373234789064010970957619054725029964079488664837365950181509653368891679086513507061330063987920798551073646597844881314432878943372205042938048304847295399360373321522225574428226226754528815579392911750314029925687947542894457313774973247232986728210069224591866439566305451657641407687717325467781896567928141855559163599062237932419215241388250307529121999242973181499624971646486569467851238145580224801146408482101869463149531747514537942732695895038890957649379826248019712604010593866117961560164900015439895831186229627682202752790480373685424186992825309679505829116258386102081546814302498436711675273050568148616730791355549427823932943670620783551395017379340654411639761462772669644508075407947055963068327579413599901621192222552006244067727641584774413331053503412300387580066217703445552694573781874248900104074726958958804557967279391143725489223084425280520351427344212907909406479287574274197654233679482524514297662848023150229417490344356991382680459619258841728257447481321848864294824322125788966800784895021064024530108023101601901845390777478408286267785913735221881120121410607309657490607717126243176218892994012912835564405464903344662947868327454996701639717432950252793495689865342049558458098699999457928109874572344645772287909507112680689334528247148551527868281812597052609697117779760744698213904312562420689025408138898466946536902980011829234700154922371439936208142395734340730788202546856325523370898847337696528250180943205189334941780182801306724494895951024303971608538746836721423180443625562973050107390633617043666563243126990472027437734791573467622016960107014807779521028745455545902285320536430167185480083104507856492782239204529572425751306046396526795911922327417900227567795171299218189301957491489183572483366006764410803888209129815703251181392374086512449302828417395297675359971844549110133967651519613554741996147809448425177836494585929404093108788895407572491212935036732910164661160590573472918876224989781426554030847196255436090957045786247724230005308153737790470608138207648773374285808381267378497904416005579481337625480322673269162185110249485299302249569861197943084295643198647333324408307975258852649240466767675882981914765318165964589798216876992259592660255596510504592231029271953083840519890744781183413507091195419653909756273111150244325695748632515136093440535213560601563045609761022520107711755296179276048991750391034739745409472069970996856068998443692164657045783295933789895016830051019980529655225765931983941349724145525330295242382403309991281880719100384162435814672162890979753966460461159924220377083357619100885760745869814170603219062197284993001215958568232294358732595213784106348372412925472987558894210613313690797241076944938063851724139461311055255467487547238479293483988453669588615831533428335037437763317160909707713460028875673436924438507158715526291241448919332689833155819630333521385708594183555402003872301432430039069313217840062077443442199866477315321133565327829312731257083808649209409383729309984391327716978424526043378141187980805766556948035844171260165396636040479280629388846857111700936577507694799327757712013881018262482719769807101836728839307655090708729985443880313291083264483636418017317265999261384625384867095252501878620180426301983335345202013458360059732635311298570330321203732392357994929005401909844465886818197902051711162392152181331300070248608104621956084551576223350548788832948037277528028159412053871800223295928527151845921662922536443196240465721579885698087695247590211085166056780080693789609462028424971597380590774029325726482371071118620878429353234925297821397351668192658453208602961428911056459098722917387064854884355658000692801620009354107672038806011244367078562684994245537426147412178280066361769282256196750440809840121819748711409477463071912867877514860377057448568836148465061288257867240414772875514967431377608762589688625144878232749364240430584789843070235209429330646895642441294219856118334493133071883885506145647848993758166026421171284887253155709923823762227404978767050852161286968416277124641242028415233495854099882926042549548768345646363057931637747189041813349903520320045935877715406613334731472195322997737024459454297982707953739209154799612901004623152439366433143909681304375833530274332800014647486817590236661991051017387228662215274347055675410053292474534929484870500743771458004361664390738604542874320867344350455295661743356270254732930497950949877573701497690470808367810135059536124209636538612370505905188406348140395001144403165351657240766897591761956982898283495810984988463132021136264725257028455193726326518799169179172040421775385926903479624849861788551689814172193904985975629323208118595908716902925708841832190157156676423231343087345541238620256598129358637406787555976808274299168258830839133315644121145827055420684035208978294014917415855271565060721453743328639950838708692323431914906322162053711282170990031489940120483670003062696497778089706202198528407995285891114648250597691606364575751746424744255704520344684068553172370786076434820294976905054993872915640322109120689535877026303643248653754059259321421935876634256782718723944295224511498112744322393359255300386070394832406401297799751004758839478107766069019887057806289618372226496924264633166425115916716836101529944766607516257332103251735077223932752308163119576850116878563630782454797756306782971830789489199057091466417261223215146855351752709359005150504752099353118288127039631730735158190067002151446611959092983985784636875843651917239170410760387808785865245191660394299630339744287868114074267822087393008321516704501920884484363652868559152050341530937613646114960081631063844260593922412917711127861872592929168284158615541398374895456097517100673043857395163069058894295428526135737022740535459886228134599877856314800967581177178665023373926695804734568902845085981864676808125408503245570605228743261857891621685882206464194942866842386442770979655742477968856507587249837848885487307067038513292344388876239193741735931190666758768534480555694772557746287365116067447784342062998559564210113809132708426055540349492976795306447133016512888812151619216109666194924684669077621650222677372226524054243803084944027671402533991721694900148096608113389937686274702078988293342254182857104904869449649160405129239562830531262219549379322371761517493383874407583774630359100698247174447773298699708422276474275442242757523741978000011728528866709775429900112708863756680339970542147612921922901671148488509189026375511578609126638954429040181361557843950845657268324355722672766811447520782127966854122511525060120420743495980959887896822312416803289651245204020888134201176455504740291932610177851292282583695887840052983054213316036632339390549166860950802349130574192255246920994975676800558007200035175776782535498947998014087392769950447203253817495021060183998996205969354295987671120366829791759815759439376233683071562793956453625492162865420279423598791387661420267453702343642597392930289188685811262226130471537723048850552758410145371875949570768387661058735865551025008970437376244606151404474119712158267091794497823103700552034085751533056353635624371326716278427582806428256791882608351416629287139534017849421803663635507338443904532114814203609178842665883927980015996566404904900043609781140251865536188269453983680895055429228421788811118178566259242590422765987630760477498971266601730408576095406958093552364024758088336900099282270331961796588918566577597647098305526076583635206077556116914167755480597000454220587241756828992338588410266794389478742215742201632154411173440969542062341309255803324900394424684220442577712026535859712857668285425952378731329168598911768115544060052866301200879265640280549330130789725480272001254949749643889739423251171103189940899072843407886378593482656230989114601953961803244995520719992115970958983615625523621363126116843362246212495747956266293195105368667890209273050940095169948638038557650681792380092776709696025398610727177381872691354533870124379737481494349228089173776530671044589887457296331358331887776364803257119967939324273070476942545417796160300351182477208482984206839370015887001075754155261110351426949127130941522226375332178504036742977019759924663747112206141211114077892340190908292276331304251483728531955228834749099761556481847560597569141453623397382267492429166164452945775689611179547427279300740555393286116370424447029740132871954885896514303853013665302394415843261674767744389720399732457178337741893164036676565948392433356389269012723045576968210885408309441888017110896456718053016713451335304089035000679077525990328429710459830218931170656217841297274608671827813523914971139498283777855044062159447704545435772891621381876595856226013608619863196291799523634183628757431715982403713750005096150063114180618643582042770307531829498642250121932923698329945877714619081711194027333090622723393816173147348138283966344146218090920681611699292356346836537340040753874164888837020011772531669981868811111274631523536291330790783487359732696744307108914178518459494689383709550414203524442420086812803963621338123754788311177832696195166976310705860121047552369537506570900738089059435378361383938543756371035058722140190416939237210669704858161312287161893912069224468068426635899630372599656105864112119662268990413749039402423230857823210763699434017107291749312285591219247636408899541450775191505915702429177046895326760868287651144990733253040835101990402349129839330069265055042153242215438827308843166062358141317601875163422219974279531935875973802991274632303258902788737249212818600354958158814444890600175013984585087099324991526456722656899892400808820621173943928254999965843683737204374677035427410913367959441870350633307766518532402977348072211026991252962303687608197283746149449284102840971613056786199850787126145483056415047059994302117367622799113233483883863799652127934480825877293628108501445998919262730540131056217642133272249853506181025543413110439608234952062466246305131891623071220328514908524317337325590548949314175255969534564889446887847338598986384145963965359577219406603832574263497803815716690949258117719830926749048008327605983328130917526532710915698278785093270083950448406961226660172496721417190464234445101877547828352871654452752140157730693681892220729027813313948878657391922460478827970868622845978582875756800692411038138619414151023745596078514890097523597877903148445118842613736178134334010267938445166174116464480061991003724292274090657669491326901261650671709037715682028835889462975857387121421705036833738312454382639963678851076558620749739377550772378472837313581887903504926446239871476728657631486944315770414809126627648459788928553335652374565586168182630746577765563428073564278543285791021656793846351924837446885886494977681280095252237242710787367208672814202146605985954401076829701329389732057086343691931545967826844517622560054322933578381245797744083536716303956963821589037395201508401483733802743822895278666180357464745152202295265480089376244274636838433497113575394173134109588985525945128073604784661216257394218596872956809521094551895854477587789919047724335653987819615283227623966032385132405827857566423286543680865163153439602370135266088310135199815269278142513016201133824470133361918600053107425612026838342223621403902064558820219923898072160006873762012390611632886060231545981024662038077563232155099594320564067371454206251080727724453062695954379762336295343745011807849596670136551677679475027253432272064967491302977047962257997781821942048511589719059335984647422115916668551155846167369625249337319201423258356504386444738256372347018865785498946872356338683948305586766004663135423848822618580010569098602031397716098496025149745732455846246875766864066607024757509301147161136572959688246419961521338449939795691702698953482846987289125556294213368679706523149360703526851867501575364307483376422612112184396095926172020284605179561568820061310514971486028914856563571640626867065100997610958677560512524322910423506304371373644094398955866584717623735602760117331411045189317487864085719252946196255457522264195773380380948565729695982875996490528689995448891995281608788683424554793193765645377780245073351080208989997405096616483406637518071166612048298241026901577078648117796647543242437327933129106495108671736101369314962278977297160957194093694607998026940231837791798003741293045505163935240113366850746437357882677764731060543841986209951080664923880052171078269763121495581593954084485251578752737863291435717397860520915504601419049024390028728564883871592966113064755793054247352718611681145700825530177128736681275128108823485702840079090864941732191903156083025396776304227683193311319000620775085467051138879722383917470669561131671232112768926729640574738549293957062034719376755584674293777376843053253126913486738597908555149727660190169115486447523017242266351164090705475021443915253226540862090569496898952704211402403245077931970578185892451594615706149655773366512154742201227672390603061438796490344295110619674143944870709096121941863807851262616494345027105297026529495857049934215216284514736597400479574293518531832836092503114511752798623134419331813200382859059440280218940880771176288272379734435691591141392726928134958097944979332593502064755851282735618716492848908218347928797157612791877845697692670112777170436432593526343799520941244683069037953837783609258373794578904022106958567418323583243739638827590948053155326064338235544538686061265417945539402727255579456833000027646692433504636419581355691606325225661595227365133414602860085786306857594805947066376017983310172526422360474919148037559091107780457374335508357950542185039159156786057864488861321441576221890157372159097662771459058157418489757452027585324390979415637715093555729269504576285165900778043430378651365489924944602147725671274613568506590689463475189052085798356631462578116895605348865437592452819616760728428994807133764475251506507263164185215962970393282277704057750827240274314201837291861146471103102717519895518175553862937622427383460781859502070237143923929532601337324208483000235634721421200517317688395270847560004254896999391176848728488380432327932101376276802173320365348338589288819926401607857837621133883432224760195796460499482284990788250284814345261147768887425784740380897126718590082252903511028953953021933736161596598734547043328307594918778451428878898091298083210819454179251047205358377590374092078627741838510916552582869803518093107713648712017710049692056564784002197932969354700782675414185841856906621635176833138893643671000214398146079906670308695617312102282095673341783727454836638280683481106847510625913425873460933716596315237664619576432186393641715073699899240853262078401747387426618948599080029056507188071386039328252691950224048818225948501934650540522536399300022586450698940136703743340400300554355888472583673249789853073931865394476789789803434612286799590371279311439864675843434042800555810520670413143377728962037560612098521228487266928704186222000021569689255512784285137766162917016882072916565511072869974383730727628193903068306325398247002185275388412994300850383517997578108529965195607212669675235223235957767904773135128483623056183400914398253328191586533453185219797682049019560636947176228841976857478964550550747299695146758778785505755496273556810984204177900677732815766475327519583028011122800093950210761263413315316905459995458518704612485449172719098117263223443100068951184185463140559958761153658990865584705053173488770982838630811433399161693606654421596565077361524793648785818951142925614832763217578776466045142813773414197920850440958592724767848183126486191176501413218961972523984414579532953863892353551505360426305757570121250910859519166640667343170428571848819404122088645633227381584602657991441738829609525383949029004813962867751483388803725038660251069719266307842865943299371022628354405577765869913725884393154410283220475057733806542119004232485263159476152801784240124697617963864721332144526165028393281627090347642418277277338535936229235582384056053259941710613205365377549786538412554138875981169881215055762019600421004253878363296794393289228064204308135085263193370802951428939547539356371832759528831042651549835506774144657503904787089465403098921236600257611551672434183797390645627869670535692855181496715315899245815418751703474208765127745195440347192089297865303957914024208454646252131054651916290935743592054211385591299490821997588497846912936177726871865821660730990066812937507413682441987601169512211531104841865614598127363215651664799773392487951806658755969623776179198408246504172061152310568570671727186153818289506249073218619457748874737160433485617392641325920921532867993754940128019791807243071476817996856227952379503913790715952195566089270841195170888476828673197105702128808351937208209969655046647649377820748118557325447063790909259597322674799159224578075652165191308587077411281299922572782896613704484590314227798536613840449645519646769254648399439902001885054350467971584215631547081052572613570723184094603341675756352832996081698282685765399563027084451449302058841229976859321427819991279444327405047636330859536563492641171248171169372316587552716926188259731264193089006025193186652326838073725813886521910160764284976140390356347380837947201845555690190474560264393203826512202922862704043166180663620083843341458866663811941984510211051198539085295164278953983891230057980045745479915224933063780221340644379345838448242726729978208836881946721607755817814240112646671814674969208417365213298690459280079227664740025973915977768266272902969452216717332928446553609353157895367435066468029737599282053890711939758292984706460955119119809225553737192963387825131185853050340802096511236242223034549835677393179035198326591472670323924195253152525185722994132071984630551927879247673818102795445191813757036167195833792541639229778358752084394803951655233176902798140099329779882653483976151879226730745185473094401780607161964960141986169957701621843484669854244565569077004809638342971616400538415167352288592988067587566862924253493739080502288666298618399589765650826673047213425543245483421200636798428122612244530368258931435980255578524507078349561428899999423450522690091995410138974258656227980020247749676841738905357747363290183847741854523488363958007356607706020456272846697375166064986736311022136304681416811776748137834130787127240069229558831200833862503224332862374248013728075844339496409133111075658555908564104092621168948049636487708139480624298074811335962574625547969034451782463247841744072347960661473227099720034513876618055624580025126581435240033831777066169653180638837078882627732043079221209472732528767191952289951447337328424328401294547061740594221546079386733790711981952257670047847755145367784872039097933041332868123866590773002356469799584031776743507410967872423101243903155434539815990104976111595286235681539682297557326207153252639164041954301450936185619937059753490420556642846573556022739056959550584031500582992952954147466971762802140849413592527956443738146981308441137907747132049802654259211396291978493025994932602924118920901823023766506082047846098543534422294468137988511670371990641219710843119030353339207832518240501325842431863864971797492244148614729750540536231660788261417146753473724755263628438097767837478828360678532806011284318065748531882793641627186857445581520053821649947913876103651059710086776147592493775972283832402223730626473449320604780642310552052433092800368261277508240790337878656564902924174039340193827685382501517952416026996942185901504784518025587913453390635839670376881366040787169350239115559104620409380644419273789621761787465284226103628328454226903906379517666909217042330882811596657760378694634079306353964161283148071491187754246915939556692428812088947393425863013559376839444829400337468465802248555129872635047124176431788990821709789260370146121747001673122206533907774155416162698325927923629276672202212044608080977780384094528811425064504372468152925613391010988620810801042083307589172930476778286941257113766239889690396507059987040829224396562225890694678731314966728103433101347572640465691104142556127067697843965011851418562496736864502236383114661176475174539048364893874854934930984125198005487788399893884149601984561379253810159261043389110816763865739120276456301888596044975770067795823892793603707038625293625721988072797254185139457663510176424583757496619500645787731371180467119092071459622687618079279614436162574161650525870867764263473849865570981848247233254259438466372735982468062767579148151304309857313860469601115520768278173325376773932183643272834165533138726154523937739391762323916063959057847800121527548324228933578096326720202966077729625866363583859891338457292398097623133077095062602053365663088401093864419027650966719933157934052312485753548948177266395451136759179374933212087169448269840697146457192667055992669762102066868057840456606688649952648490386917336246384629217041097183064480161962280187282758621958250381950654417083316237767400907581496887950580011442380714947765889091734547620730657005587780058243471359215199529697541422279312637665877665832563643157182493062998881525220067394030382017729376807452153325315830567610515661949969533735377302276517122514281020553834995682037039011807499158671991009296625371780152838512514937308698417044293598542956522247749513668499249294133232741345720145768108032766832245498911432666884783236971317574799259074971089626019164880530125771327522578516435938596331819425833338015401026024580750631867634070078595761523958250973366909186775942359077836231216837589148421006256133891587148550720274123007517909414777979973974414617584428006504264240071947251772660522650557519846715552201046194010192344594034911946841016019737195261018998681924024779633348371377637057925936712585524737814981815735266387243767781478190820106645543927522579700846335390439045630426775308156020087028216056790632566329402351496162581359168799393691458346240153389221004990382185181288747571239660936741416680278989913899432225952984453424128153799267090468648056140616196813272661121515119035937968357463186618038430803132012658480077278062911851070448275112254464020074599262776884421708288772715291124701992999854899520438637139060106987149109233933159312411739348679133900673460708479186760173172952379587884228296950035025380022624545988943338506254723098206243528281446093178432554249995401801630975545512936256034104940304969633613955250327101619048263441448339074650676233634616181355010222449332419583035998908612586912098174929545450317014354911627729011830450549590269876462644108710237234298047244878407150804344727541742113270288141903487755028882338617704729306682324839396780791493479368525549453712053207487917236845927466332148820871265742162410045570755262033713492581235170730311770092986716035943460065666577574182840693367195460891546321598228462043007069166569413216277374857448289731135634552206436303634429877118588428415814119075937404834910839343009536098975247107611077205523763611555642522844963098552545599527376853836987798605515700328739302022072558350685105499004045382952298451651053188252871660984603935823639600648744064904772901437075590738317232634265720859905553802033891478415687870520994377173478915728386023488419158781705512809638128518549152406479507700295538436513894673028230896800396191217259113708939363667379777622423066081747404024196274962810299947885251223995650199317600926496536006503724282936088680322861355412237980747049005850987201200034352457796217448854968694209019873931459429085731513019515690954628270414914089764766202504448379982940556268807615246829452303859072321734223422947908932964999419408715039308535966833817480925534569908006251869775522825186260763717313232431720796022741126473639937434402395851780075488321035615034926011876214966736941675194469347667322065864960631085985733278580708136825034379298213628269608787212775952316769782378066016676763127820406019703940270037983500366988501688636150455321140689018127135458460802690398143449450290170747720063843873578989588426119214466460853734386791742516749476216970607049468650744203158544229751016379628406950147957872475876191386085418439409040442331622889704405255140036134848696380805353396963968890557663227578254006492364428288395180151291908537480994367590328753012973880973325986704412829285127751464697867818315026397667820973641108741780086830492540735440969372114248302854711173216074704623300895882626993702008617488382273265071479965551053996877621724546803735046318848657363079967154170710190681266495098110198809319345290024853212643459659442703059619681927203502296709007276574299441001073275421413664470132696690063994093258835543442371883269474792709957232180128764101332667911484834857054360421970910771103270825248788140905331131920070156799978923592210432756123681794091784646908720992707905712401911555528173618476138718854507645062880163426675789266203593795165347156621954670084478456137735357603048973263047094672241933792861182828260537438064669856061405238324995404593642975727722989438787830702200054324139585426762314994725189535057717420379936982319702508242122809784270418905476243490339718100060089754194090440987936091286283940643622761389970602215772002271744108485503028393788866874841295220720245175736319597799660801467753184956593816826050935523597587694190766282455343100423753653354613388444359898215322171477551456763466232694261361273751743379022079082867526102709755315171056219795416966428543843708115294694107860174589231780876374277777552919266661106879516753788669317660707784086981607068820965541883287985035089482342017027663795655839467577120435464846239168722381334602437546414432059789390005487981473614402716597085703893434781411080644405775352348364713680354735358917281004646233741090176892934489976396442200283876910981462808115825105913040219890669038234423399600794845078262043099040156822838159083924927362324206448136943230609803913600846359561075430432781553270552894704894872807970633282850017555228606874345841032829909403433427923686590423479045502044666010249559136518380264720715668011683574402790643485943698807399011778308432112566622402734425701633011938563405352952826568005312031528166340822337319356627233080509168350275216662253338914955542537701704922063559495638977677749087041040248542838409537095829494467391503359341443697756890772361913935563322010546432147386987824410373638205276201603718513340540339318995294947498181357516980746712375138478458247797546575294629698847812332803859369684304527781214326397127110011185113838447262282931657104969963057516230615672812510385179921087972532732700821578107294397958141765446890563604025001257995786716112750023535727056013194512228468168009141831770951168881173282005725636645784820731321179029486575847414067748823870000609147265993368931224657057792389953130542800161288691481339163052556723257585296484346805904052406809466490617525076051695416594516975802357800326847083562231119028948804561242898354826451840917695590675061743596502920538944034531530100067002297735463297782816498366185934098700990492133358320209331816422931916323833438381222414083279503683035533382015494836989917881327400913249892725350100589155620667394992389137489142873504325239804866011629950716233185813615814277854633854729715983478538763913570111320937176056711281672223691769490779930703733225766354461137749309690558780534583062537774773605253582762055757991480831917374588628525113459692767047790941160900091130219187905267000875511228473702385350806709258358231493968187097929841916387194328385910979672088458629145917728069362771298885983509663943307313378156690319596684037869608449360712728975966861823599455991539241681456745960076899280653465855047226636327729482801977466897892263560079385962401743278131034993702628369725860683737338958249789481783119623438030301328151729588513573549268515874768766244239746178681470531127642107147075102613528329908924642310647493070498276621036356617577782159436311571943944103094105513849304844497498229499179441956622622472932086759626707002778007044445298737463056669945459983106075318683182508007363491349663783484927636760540550678122800583335444546397828650292188098145492476081237191300858797893737179495929503781503725858032847199883022917161228856439798708209362722670262678803957282849087861484041498302450608513319786731773206250018010869166746876303771102650170900454522422977251970645594859356395826487042864430255572155182520898657639425926653257670291934671320156793161253483460354071906105108947511983716572616884895612422287948162748172792076923719543226190941800536152413058441363800600226224885074082557523321201244403142410040503440540152529221786535379000874941525698930665491625610039499722819622855331611222315234317505128078836012007391998391468472059692490678993038973337805121845328017425100676048631378160602233483331172167528699216006017635089731493887460850401088692521050145664862305645495080402789053954603648899833039678298952163702602635495765562984463345713374060381462349698909190453097619168009057511919294871252248976787517566272719703233920354561862492149405709848781311273473428413344446160656779409489546152825861026583229377735329502912714355059434546652227197270035761184291741762952089053439065488671858773080468425828890365373818241492736034521120918008227858271102219455352174388784606357275305982888281397607588434135120254214119043239886301108951586089972955654303719675270997720128800648972211911182518135082837309792295999243721569225032666717612645386446031470516592326174556527152184207588741725142040692678047788601078302311403540994722161624836559246366524807072994427820221806512268546471974263207272561677077141980458302048149346087669168833419243010884344905647241627270918711236938370314045936900838705460353712657338930099809477048078808459572202794060933684933876649713771870687637295043759804042763887459627075712168285563298978094037279954206704769560171094260934429390964548581215195751864320696068717108563073542683340386417521953293789248200658861040563906422500579862104059175299835626392713764588037636909844787544900784502615481137214862597995870216713883594526887580301162162913807074725666921470245034351573567880132234923244081912120490233157263087173288403805777155485962216308786149054184620408189908112988290495119174078660417394612835115113256798786640090767748295708750014565222832441492617721566591464235666073785216594218403022255583018914098500299039070439935043422584449059336039665634438078033723739454535839190445332625019111520843862990667086043274648606305866277140350301460392136774913458336083841461707443842771198552861104691037075535301797641344710614451751264099650308058499301300293760287515151676544847727548233043275839194160863649314474943846325476399985289132339931109531826190353271432086914807734298375143168614982356851398151893721936101130167910265279275923073159135469131492844369076497689062722967094393228871079054115559879827346094643297126052549583934376263018947291053422036243459796778622412601109294388174034661338621703283589847449896043257490491479641937568545272159307818732596796854529219103775415220963643320231450514131447252778734532625111103871850625610916718401690839646176945008509320214617473260035450531018940833141986627099976883126954692791815385350827863727430360809316903086868916697895569954794564487528534589036992822726456227288693328941011830278700498855222151923857353574593187283875526732336553725757268779528872981662010902566086504164849040947002392860373570393655620576786135220565933505064527888256384752128089753455564514403916530307465496762878740661712576148755283268463292825305597866346008407101071321248432614910714215400603946232998192161594259474752641752574598791588138369928042921499139612270180934502196712655650376602544750637968480921196013874232232057727660672697611027228704782359086000615890188776788141299102041449503438920754354356816663710462865457888568926559768447953090336839029666355090033974090865453285261883242863663609771027677515472302793431264932325546378215366700667125916367583427365341393023959233771348439089319240675680357590455172518976762923127400038669939126928458848099658959956663941576213983311927044522253413140638837237996718289235967151629574753851449009323857219218445292739367449284387966057648188603772492838951502049681914621962404269234412742232884529417918296950278940161601080273126873211472779228973014133090186318921161243590573930493053848232119448397564298867260756974778318910415804811312278028505762111864905974554915531449566166887882904387945785203678316590940909795103156247788837055984417386861784665009901238930245878724452840419925952747505160830664743488938123027817237079775221027264474588267098933070558153278319331982268206448682265645781215010507058068056860698168549881885437745753174517628331827643625916146969581933846221924304945653883751804896029468779412647863751498940605763585592886895453272417589464568315027703635993448100498261709067130876513905353879822448395300107732130748297339171018190765371641979263488099964144475568454178677794631359372395376026916344190084524623098444778770989681755670441745337047814465636891772768887590131499046344702085598374718364533045860316339383899708174154414063113661976348119590036015064551017244131771096863553465377267504468270540565281858420644687015529284232353488363904154975780394773183455707771371943530131711018330786358533815594532134236432731897989469701673620042957458264583313153572386060975851107745487487893831809894564776631450890970984013145733669077722796078246588910433906565766870972406797147913617561305875219648179000675199890542811238887222626587350859837009319983182167544927595627751399667147402586634758858186330316966334986103254300611773572697133647793465748056645435248237389231134389501198786632713485078158967939856276164666508487661166242208879990136505320650065548349984363915655487813523283718161266126875434646101778929468285244213661362017045595814998632571682584358563704958452185254393447192339150855399608022594401865691610133086120970805785376119765714530598845693966015880198431997411431979870312129568703502502483704566804033049518129661740404537266430127167149985142819352797994099798563566151515007457523927642554367360336454746183039651843154686949911441137429275637300680670028792809730917303486950039373344448548847447347247472742264489668166094197267078733969019358600150371269815247866405484063074011962668291277253138484167361618154160122696192784792651216223299105059758296605985323258517928147039189187137556509150197596268197001964155897801067424281350160705174174026632065410989342598484199723390588465221128330071862345289068314118889495176591146376150074950230252775571188656021732452413746797782109437133555789640789361373984893753878635528486077357049453015374807004247446899039932719377862804834141755495055419003135395483935231477661272195939213670868430720610685677784426603999014841937229955920925976968798912559774527862504039367167530357450345501460078573015683880541718888209419911268473647032989098584826177600186205164278901641057816046347855156559403775489599406729871055216852475344523612592235163483915996527788566061789621004344155436486423607736241584626342135728356370742057920495646606655562520258205313648549131199207910136736189924633353782465304389489122416197838924976301023869111027941167714232509118830370291155165712758162717083958713053640684980122546939949702491245973625767560838180951708321333911461031845121412273271836432637660642030785989809534953355789986420556336759113653044791410305137835589460243570392779213560648593415103328882544546472879833294237953176301004469063274835709982199471802486929084876054494175194395651919790462444883118597363915245063046428922588343234306945678845887708365010801618397942075930549159451218131907867556339087947398496578379859106586254615479886984139959272340608379780501848759333863308041077804432251865314371583173126529204338056445914392548113218183903390431370787889666411304460761296956239780775182166392767784812327391011732493924491136091013620211206463863488086064913051908568770232867894755380549837498096507695501535189208042350531103011836976784993726683112060434544333283766838343752808843751596805553437903384984639659298657624393206494182190137860576477898612131811072915910155840104854377108094059322575120663071729400533495443957501563863809208147181138867645863936228747902617808039330427128628103775434320589558438349522070146030693787528628268886142182207253402997410280972818728922807226210480958503429169215473910331386053171922120074792078292375499003078354317237369152965081792101680400062252572320297760107209985087238660465864656332584784340226528983087548087464248219388162509815911261197240528627842870247351536172782453272691477848910199822580255650728153748905488413984769595725271260105290044252089395320359302476820839039550759609567318910401380572327569527440778572490450350065417517545918570130687298239094839813079078899790767472685379239357365598879874522171132378648421886960422601940735411718337104999353800069796088365805699188629216534655078350627724827800665722956029632605124745946739943668774117572234266226789877902241465778104647778670441412946072453940657552063900895851653636654694284749486735522629208236569733063767882561467764516833039136914608528566718513710333638475381124877453443146666776659764521682175416750418159662820216679124407259694261040729684839750302250944586880916454882739754802277429871817684627620309831628415164486016295698954665924391181564983469152816331489435152702723890152816690409811867884934660166278374103584319475822212670461132450184449722256005421177152159380289154242464604838776034181302145875353169574635597826169623610087047961750317103117530415616810436040251800499307810794687240204246845646033607620006885066312105428194784743742294258922892400706890174667677122190219925861389615394150605486074727716444424540674445267415738533534721922017719939503000488490313221556241363629836587037821449493489349455985244636006894144745073644070699043618417432543881990920373543329063872627073489973118572118296626659665062064240084462624564717943609235946387315130376591656055841652078383037364462561968600491520225071135850977549253434322689721038763813108470311499017794674591565351484914877518264386178718307659735269519784921504201963974348349014221078015386946286208603105362214759967531731828940339533525940918441354395158112018230444243828652944306988776578616703463224019010247566216312048729496052573575640366493883309533166687878605811596227721928847680140761758031188861251324499549520000116265546952516409956089675226180235615578919959813060130013181515320525788260722551150887540324516839975951225511785456632704707177882679131494461198995517763029637460883312732141484457433068076450169390103691303871872779047705302009385754110369920688427890005628752712438936292134392233793519054642774627492600090978553555835476857232703898392145364826112264196733130958673434454466612925555140303629998855169974541248056108308447346230289873064041984697713441331479500184250869173659342439857636378756182506988172306127079439306545752934775536531536950929126698515732553457345574575794030978665156565553846030808761597177863496757364065728186220022625208341657419556634617033023369673464924547392548676782889740484638241374765997902755054756285032288307128673355785279235939729668432648721580129031615339690118521979718017216285712175657152988412873965656203731569972164340578787934698007552975587657407837422846767029628514862313562146381748874130785521397083213919675760824952828273445667142463267989230060325388150980515237074962940996509352036460508853150505607131710788770953236603359115920870741467363058016276709198183149586654188626692654085271149562827620215581085380765361754330202903438917164040807195347880006364991959659789546300871304373428901592305998187602642852496516735523471747678742711071005522983055715872463781895900932237313378949310882757629085175464274677922946688282182847220273922231089847241397251836705081161208885298633050783405844850144509409433003963936903997824516756773174763526360834774382257836453615740374188224435549362311952052940951321927210621609269853594343636260587449153755361938558364430998819648245822676582514389528108206413242872097289404875854333883716807950831998534786120817686375894190688149389583677442492687435444352058477937109745177414975311593249109249597710887318680814410652970826115358109311853341835991079164927281521126161226611736636135745182981495424976915713269320166302956901060369455222049134083738581243398079943590172397730302494263099505522643169338026651784204463838223249334937095128722393442043983400159613839715216668082929523347738293177098947922669165509834113019928513928762465100608887041104683948062177676124080200486370907509838045963395941494433540337827153512027554459360331693477991027739099983793639847308992966233884693300003010760232742321832721574719595845068550117307705027180577375925085394509131184410994839063662396966028594119655959483239272330486414867297721487252797584525327506768743871831802649460780040627426060017517388276848246624967191415680788563016876070375758178848254358193315215346299031633105885550628014200766304686484133897373499354500324852684174302143311106820805426436653753477418334960286625495613836655828943763599680815140672153071359214617999745270053165598992576851093814312460548915976656133135963969859483732088294777714468539486787723588177626913148204483499684108240518870574007761526185357823522374775684686749189574689838795149238674330432469139140580455758321811075747312694525890793818013202760623931569806890069117179811979494670481329475202811108098872958498116827461803597308830759281336179119415648056414643393515787808880375050988423624482452600153511316878846819438308773762915252466919970982370832924373816428738253319160526187842346282478260586239655036595121447523087866727113853602369618993812012380447916605125648819791953709297990401448084712075328956584733993372808828229410256870318075542197501819498929452522243572347810516918519487453472970091540972968339765312907001561241256762626925956153793590798645250626625339939864582903182646405980613999392996131537545812539771857580213943135836526901239837022226583622816818194041623880910579254206257935810047348124724827272313764550070847924995260542615441136250551306882545837924152858619603726014153133025622972364298331925746856998234279156139002498686602623210521338861286344647680517735336448738905619237844044610724882477447799158982567572348890389320936537523320024018915580772251547574900303390018028421213953737396466635856281460505798815697052698872437969249736937893510929793798714463117198455634982755441712404169847725298850358438739009885732504951855029849370870077034868489355397653052285284598228828099997971547833607964832118019851876944201816970014159267340740200153280490460806905850917136845842604193418798940464678686708373655133802381335610006614125132777129893143504597943871981340495510262401446582430639192601917896651306760716843985931159521361867940405848757115260356367113988315669573841357728478914912610382029824289888787312799499257784560809415586096571192590395455882226015744448935725188291986151676694277186366538657623977131045211691993055604608266331768453067930083242390299799927890156137182667908754341272283915090605676003268455597584463650161624527623241957793497781877148568465844711935420625962055380328372598082454066222225712301435020379096405177485279945327577167824025692580516341321948413345142636709716300029329737068253276149130621600605762846947971269212781413880625081347372127880490622222272995598278756087136941759996398348863352744069425468285198968663313171109939322355274674595408341394863615965420499832027776720550174263932372997535046175482990402448988241206437451397477754749604310596782710921752019394698532231280261183034763522456040959547731857891374567675387747311536928662325480459678865761461697532944971688549684755089878208116487969583478544223227935571711998048915642808511506946320418932437361147040259479277253277655155328408846394308913550069324154168917190499730242201334215565199219415056464267351983381900926339299723418256864622857567618749026125921675505724291615866871370309177801458994601398646197679771538014684970094172242434336956563236450424201024151900757555017977810840179660068365016765438023583335138307931470980675499943040779476617523625321543890963012571715054343251391111065435592145324363366518923203475810687110558868584878027675408352418311194704477689020739358447204600072896126168700753330313587737340480870421080005065158143938132736052187534088214485042552964102136136115219793139971617911093551373475931825781284806963483325426443748382140002511538582674778073311287269557146077962481095597851093305171034891138953687148019654677555385153111962803049764028138164700646177083660672034135427506324113972216668584663236938568823579252518604646529234323703534793812884869281488235572607933038607865975464095591930271651428459956220040393988678767932492263739282267148567973251014198718969234183296853584298178528698478346939578361253659296153759676610642176143218644521189600527319229435156876872171482562626176509663059743964096788806559511206407633530152654215074914218170862642413489729898912414977512935717469799348873803057814334691353949356438918189003439913540834096769420986643534257299217345472865808251122687980562223252654651201273558173044239194311037762630582786926807509282707234629416930527432091486770115637657550429036462174701015528066261432644139024546189513941505714906560711273839118354085213479425911206426055808374224585936686421872506787531093694870812360671579335540629735587134733246073589919255624057011615495858952880732231217033647542517956850540594606929624246186852229485838323082638374920700086966960970987636382894334423969131484943387380491763531403047381364917232962606409612636258597803391462872574960243358303426452574302239697057763242070916610936227804509189173184994434338244567178738920431653179197309779995797297297316091292177072358237442020522953306432717718310750887040723594406660890320357094096181762650796216363235733063455701534891848528114926708230606140571586080320761400291868393774820821415903987153624410011749483355968645893407244138231822545699265609032422550541298754046629918045120905448566502367570408130101999395237630170686930618331817478512532994831706844341976225650797599867221030189689739678356579531508044968166757162501931085018858956428667471162179780808974017518925571119997044962664760305640539335231160865773272824191079733239661438819493287314726533994080701105903481796271464061576196006245031031667833969957078428887594992021153132099142256683609084486575118953903672116319681306649937864970337314997624640289627397124742959369588470342586908104184928671507522130990378004165216442570062283271743393784115962984496317546654483845488952029737228150726323106195780726442223475929826451312696233657676544065104739844655042200414368477546234217971685821296432513773394077656972389707066854693256278179279288529594507758927824718615282708826921693526173419343292327832833476289933491587488764078661162650888201160199653905706858343014776077745618155222868458250951501279773059498461275223831989044554172938721683925118626001508288636784096165535752045421077645121376216851964059800011781334554301019506718578155807810919560748604829134247404451247161431606197290634163503493472614071515058063803268598766100443873316994157797372758568389985443760191398960216469437079786940007547868220539017004831419743509894466163583869366363062917692044772737741012070767886917963731743146143444017489373163245202585377523157529753331326495014170759918635290072160812960840060580121646374249346990936824407717562256464225178351941841185637749101631178179646600191317162899629080301860297646553549700724057498963782394409675247026126805793416032314865839130673008540712978705156161100004897836146929677318620068071530404555260336840472572336690183710288656799945192998324166895721396278587684155059099867536999573320783701387307762640996953398814280127404925498917025637422254946498762272521943646527992397059355036049206558706584281902226246836602600293332991213015874265556825315085458595364487054570973501811002650694719602487877437518605679989092419175552736938518948990031430670865336657795434655768861676422519916834766965439270586889028764969608260699924399868382310372230146404110005987463527035954392801300301468941183583144999828809837525346725550157455451722882574647866543927636137104147858042160792394173577504693819962174083714926611182414173657351093704726116457127083484766147078422613324925090566551049577776433240648040465689645118328855796833299230154488658692503632674304353999681461387851992495545772826468342064705565643687523812117353511793618864641242488463688476922235466156143505658713040753152285968809640835494737261699460988911721039262012569316985726815539835663604179412665528050959648572562265845413528061270659648844854363009220005214927215925766686307665814936969353820542487675045996407385066797377728469133419391618435361534927511576190771853333238596747785205065658985747947290440776438594238501687752340940524229112890304306755954550749061833502762459119418672471568702031238100545483261188211464038580368580279555280604928416035440634041417543257792221551226402855967895577505180212164180817347153154664872043334553201980774625415252292004791037744180919768511579258494857676981036902421482866887031188411145960350527483998765380056046667693916978576522678265764392302265899248633271020438432061168591512999738512185186634796628399126316717992980720023766283078872789273187100859141779835878042155302609815802526444120456012670809711408590173009266384539264416170890613231626834274506329613141687733361354584943052324734258969341694217319764450129556608384177848252535724965296816338368656975446355416206973109795695027797636960849233854650687878679639376449731025692927513944586945281926370381124134111370100876792012216159795629566993819001080213454060876284270557141419256397879100802241103316771753868797738526003794905987636866279327832403258238385954629293441188422272556997137708945520212954465483179275415337596717843091158363020882393328629173024526834320375373551763615557289990262356683266714053294443824585800007610595595560144471652631122436903869847556088722419831572266334625255719233597059722862888689099209019232819191220806013532326132040896883793716561554998693878104162059146611437591374169682971715061443530196709455864297617031305521849515181496878247831453422784143240993445085943684328660043789716466266557599034505505798831136287175342959324851072468938436860024317750439398617932277002701441138298474789363977423646416358530916863079673008166195151700160654684915226505488522430796651732698766238847913450819018292746052316068594568005346323306983384449078183414893002847924987254950562434498111211206300933234427252822369249228085949099549397892246336873220546856209180162132730804844148319050145815826487328807931311499644314545372009326786454661225982945022453761541951667535770670566486197438226546528100084382146518942741388537048446406723397551422232703503488313629626360742713944247837334512464278460022300560708800410628763637193206138823881717042222178001389600634867944011777751165502542360450178516716823630199767863601600073926168650230944832096300930740768642158146881729519731264926932363168874317966251013848605148420476871236339651216855074135296664044887313719931852320097827370202512599957082104414997663143564256134706434515358908371396330823488899478892337068644335236384738153160202968441917665623030609883423600593406858396828524101421302080155438222020938245822169018320122022218316089672627309613630117622163573926913779277456341009861799998805480176783711337320845181728655440938305419287671735587448302563307875839061564188749281213885511732749403305559848530144563008553677672380689491105809182819547141617936801204644401812777885372322243659914992773076625823210505907184191942977280403061147732725725998381429847590775140209007623045289834696213929408952171711798780121839995475181127791994707974564897278421428181461395513545206776761070391575914252423627158337640963437915401921693238050915371710054534582613144723821867824786081702528047712691071672853418136913804176332963542926860962685605454906202007139225317204748231966702308668398330877541870070436305111220242963317917725451051502813670987456753122329069731289715827232145051154115066182946118627419116930383028795788792901204754834400732193266953082779098507843605933620632433293757307094030165413295131377944485717135090512972863832397623821831800695278494914582684468277262219907502203011957675932723950616471550796169897979999900354702498216720333019812147051824597244440644812484725756527347107219209348420614253772344970274186653552270351614413930566382374345844071020279802260091817315596443416362954331739753332219491005459673661361673572982700840537667036821120491251301879948512518630365128765100598448322240812880523789675770883636118893755452628804121550962080827752588334612251853317974437681199813119617324167680868312652539830259260767890833616842530520835728340752984568111431528058704798246588653948565971823643793311076951707732535261154169966824908384665352503303251261876822773486305413317298192510881436848721584532534506190376938318739621200858401336944354743176317627384144035403710426378535238717634727841250256237780406226147256771659509221666647866659579904202508737110091191415976075797985408675102794244207763417880553066576662801265585221293621480708051178647344059964935591753413090587023195636890185457893143511923264250500173052294801884213755027535356261846477728172252414538742603540142235784616740364003268850153701801232334950056258349103243653694348023719733944144158175856609904116327155923231148496354396980686703754496743077258864946681687061303691650474128225300541121671275619449699986063297300823436739908169415273328769720524542438562409600133294105972990105456705602922105547728024422766573789245752557296683036754285023367694356480498320132625478611216629942125822424373418052537273002076832856769523631460817505711200181194374131173731812905388327496481647605909751120483805746899230200034919391131535480764481461195638668627361635981951561512367425883893744282416456671959620683307782775275765523740516516131993142832468870882347276513025578209141569426874023724863717852650432349053306373784542041514812321315345077438094253018522983369043831583358893703784376063873436205283247514473250375072887191948933541096784638891401201033885974008493108616524090326841214591797583143386111016288192596271887813368732917479315575275448482614173025035793301038571995635496426539251167723822001964064154139729482878035383044990705151471436061656849664750028973926887500549814979920924525645594292334122616539479570449048866515183029706425478622156864154380469143420330708032126701800943312195431173195167943565510636167215033320107410965897495469253145453362644649040625165850469167813003500257643027484912352439349759344214549989427700419716798626689981914315937269865902885216533366380802279781990882645232603951259751504901541599719964684437905079073815467970516677656291001324290493834835651230504768079765208284385058494793100053492041311455291938229976810313240205256501258742078508913718167884338721743903114178742098006574951885737076925870194338705133543134525936256636211325738165632926495679853516806112346526703189589114058026084309586625298787141762548433821309043820836485057781629068951382648134590545723854408305485858053556935050130436406799397386920176467711461634387681476114495579224767375457184971118382825115969961541085457895642678054455674040871773728735815682254311006122639628227201636583750666959738102672450036986868342245882180496252128741898595516132190712361560244841387712223948241729624149237145967745264366572728185609239838869172975897835145852304921182948053896341426647198954926610424075458728048846646068994105961127300527662049649257954850991864229334721443727420832200481449893460215996163051887746721125106796950564918358402176550434611969475832662735878419697969850979914465182243342852389952752676555629421001898923839644576533532032548318582586766069595502019207790898471607426184041462142772904139009412869811748949366293219164733713831751560138619020746303844634686116092004204593185461291531327400889256357739021420026474305281852079263866107552365969246270896227708149178576249838576009601772167253562761283092171679264595919837253938445900050292193634959722696971685763459508893296966971864521520589941367748930599933646039783418377018444540600161442873274897496591451426888578275466318349985234031587400748352516604395080044122286779808365186689208734223832398633858474566678148372087415070985243812530418683987214315374360874668906423470334910737865518387596831409131547545457219607369254932487771508915078535667805035725098522841734688080777866233714001380699146865481964743060349783373539430755727701491514605431036484778459010784963269177732190336545945277424669103469960747132432159644165643152845324886357136382137773409501735671099337206202165841088271883182663041120156277776291245186479345312698341739060946076506536844759468299963036583889444771624114238100780435146477068330150914534965977688855000831965850375602290426295665332734123210348218594337791149269318392920207191741673931485215408553403676048546114547517564221764571512366191750912224651018889728100694274193408144031851305707549270315649470639047420793840235066937990444976973858806481783340550367930324456499278331241501999772583511089928617329130054118003174697246740655695197820592998669464295891186126541613573410007456668036635390578793246414157192256426247245897108031829961837153851139356052824822962820262566379258683287735523007488888909906327878121490878130586399745225553330758520825445934183134698102994151863510577779129146113787838541228920945869781298770603776448972618513726169600011650706749370270542506269329176435856764905451617493384604787203782400391337790532041691894023531397367970674715584617919946352515191966127520896550803716355761392358687686912083397077575764847057096425251574495156098217433791621232190365953417179572507699297331936649003814587435367458279297686293372713607283593756798743059001792486368063552948788022982817923085862452962226797858683631565824299067588671263503429581319774708751342775975703564712148505411794381788058142899086078033940936836477453994091743936114381965465581334346701493245274586512862883337181640757053753680983111334839815102059517921766878004325243140682308762806288335904455914295296067111420011937069525511664018413778859115377521122183223338374226261894375034052825860157700744032730162903889362958432663119811208404150095765503751930901335996214880508145655298809153085698135134077877690996955484044569725507240528404219974118489731307590220745234202433806447636052497619903890903197654654411882684585142198082153059228145199725294299098220762616443034516176777808369041775078695357891373349582091501194488976658074475567305206946868081967743241828677209974675443824181330310321456131853491092423715652583583559902259409166516536240207282062595549551021229904306723114957021821243451056267398194927508264862668300599236553181949508460603817816755862518895779717268417279635350507062827816132096146990030917207781783514465544035163557446204261109104719230965138472165237315205190845408056885816626615676621023058072484348523878544165910584537680306629613802647093205213494509101541104373085862309218818626929204261202418878393521531468620519341705140760757479947390585092433128662729852393065719879871679872554865530157263689540632772617188198489018593978124470551179839956688669818578471153849009481171513927218978882507710233620415313364272946387835290070054012930204542268969016353882918332988660993337615567185637105319060509091860634193922685539430180495840405280162950318246043977853074714290454681685765526033100776380923862241017448476562689496502435589072095584697166082869422989708041325323723538738661161845524058370769599815204410953219018173012918838002712847328093164991350628039043253937359805057111795904999698587636083270927874847181778237734080070316868810395026898283310814265460378186682793529513180659310211466342468712591105398953403766340841079919796009380226601110970493658603872349577518120092235125548398679295116529049974751556017104272737394314357318371006841310226854940853850863309259003186379928563032591588825677872428325146215491799662878017597696796726465631660454407934196025680495778056123563180653010872706933701418994453948221594120979984134254376378160896954301225139995442803440832446866071797467372623371637490751590033293179223602995428754985716435779401116975395274015576616356750436969536033579866501573683478036310108231179077590438275458743959578490733581601408951838624567168858152541864316643926285761457329196806832100192672263671650669501343685332295978475481266293749267334849233530678868284889590420624575480866111950915347586040696472227386805372545585594212546768295483545429217192266066268689643601678820809210057658933737434796959358524491620266393099534118258846576800917036622504151798770030026502869948887772116824127072091194767817349685809936718044620371777833707498304503022847734772539314702030080942845465374926687573304265056950611937417097324607584976783684841717670597505425447625671156723765114155568027285466171086182122760546458743082400393489428043493437635269641959863954271616323212087398581137642842619537989180305959975020492354504179498153206602720105225084346252370874363608823777925310432904043108397946989359444129486639020146068418879150627704253530882976208764359726912185382750055714443642073169551240138140769582637822407745030121103177328146511639011903147171667262528012580985297974730018475992622199035709534699822538839790004303405874801349174523780192692216933310898389179914667072656518803426275164590726982512989592233736052606889423067748499853449102582661635384379967043431482827925155409159870853835956200149751417051929539400060111942492181361469129743601419522070050493916161680569808535941715853024436744605380845373718340593848536746818801058567349136465739530564467172974403853450720930172245307938874453807854417531347733485952221170875372059309564138221777129423293869913460590524695760288813810870028234049944766406620182006177984561247891189565054955256850974503489185747146054160328051275433132902878684206293254310403637829716033428752015844933659083592200671308189632301843137132250354404060816358439018648840301583718797011282875394007809234405890331409748604465680879371439887944496708131244446903335088609207961870319423315409709816610741375350017185379392957161734638710602508863359931075104021517414534172150901783274317849875670832248098373875501761248671696319177353876626470786203205465043257762285908920371745114451720889262771875664649729319470706405226292482143029965823971800887272850795627382073246829125999674383522127652772205665273209289445116976824828443520237449755496269218011022397586416331952567615106827953562336625523450928839884835736120569436414736410922496043324024164752087662118678085349483174979381581169037424726816552566248161271891326769318205228906399526647490563943967059530522047887904710729322880963904963894565041524991191014304442962015051095327344563465582442864971176359271124809815969554050233798816629425437903321926317888730048020046098590843306287523771498728422113901167211990477880952856903944082018516186628097218073677627844718168834044917458377517033520717199441633491710735811243299996513299215210141870523358911251551313331358992769691884062477683829387548294817889008773795828794485877691411243668385805198877501167675275953039258794593960402872562405248396329996297885401056366554855648675286639318721080337316730391855192619832104302511660041753069701249882653492833649779714984131910851212661511617032539841720549936825133201612512458691437978419998297985857956610820171673605415680553077722215130061372864691623641289039021396214181687172901683564909558969598877494589021018273358819382413821658345089051139433737189519834143085959293236809412342705397431557105625283315210352721863366647597650822703374687209980399135563061219727834576878902866564947034646524633813699562243462799041765726084159422590384603986983997384980409086683197746032330288497916414092717118016893570284560773697956052279501443739513826819266777393259641323382414715383772215808880548393568949057456844614663417402318836535244853540208061003195001803323650112034219498205753736636642126183420079369508469234893218224495560987554366496787462579750944695499910264357385235207852092416666914935894145239320810390222248301569196664810080284209292787358927878482023427904032877302441745532183340909171091097027572432576308892320039363284783250752056010297671559753336355563377731541216021376864307220759061309210193980181945694657290888997105888507823314608046680580521310921563483325728067288233464621748618407293215714320826479752207775403023538599086222958111858014163386740106433076603921500099939704036467266655415966283206768552226643268131012026154277844489037034346261785248618290485645782106953620190270008950023283143311718494605108075827436078820923929005511078803652979361813047252090173110292312826075751313242667167456343486914281763573043508608582820044998472252678266927345948075721878214182437743311867568547039759063346193940608886646945057567514040522779820246342767298351006834567242982468670894285972068415969520138669262761175072015680056337361149251922917327690956592682749318149176240733050740890555602144917295959194692345189370600945880545199167910129049489695750165021031066315991152644204273057025801718826196739875235300933051683587504478941626869784022906707166642313000811842118501134168850746171988657052654756068782067931919884417060096535833542713557678875009869120026025594055895311651864686523372786148643915870055108614713590576219552611822183585887443952106880255217408919675107721355830408026850716129528380718173895571976975401743194760178454386873664892618950474947885191568222340985283858928989408912018668523950020581008503095002342963569427380343367492067075605358012166174007095765309891861052088027036929816962815640638178111406258247808573888930166261006189830355219958764872214351516772586889600848455201620669279507445249328871716380806561341904407970419301132690418942215739714798458798762216381258325208131660603915572889295461030993385813686093905267089661672804310808905383178153589102120922761979090472808536018877739472463502645063691090725357647938861668297652381687570281248425594138274986008832010113820924126403890464772533918429566073739276502848454783140105805399965996088345565838110795809446414549226553676203409702193560585793915610958237303787082573767910575473368329572231172744237407899819563177379278546623829619965106517303770209081470965010680990474249380750052085074996736745875700648070041047125314536925263365927167782899059165918514755766200839271374967385059815981039174257777407617224047954747637060742313538770603477385012033854423926336417658702959473058027461249587900433111470865877542811169370727605808943491769159359409681593005865523701521269035429961227022403215485804504587024078151105364810924274921453583376979640944676865238808489091232785357881119242710115716556047185143863376481716947321061173708465099166113314814596425827925464461920921071142234133993674397841616700987019280387169169822655541770940319521601483038228692701826067144535086659241465474555184201753280329605436917908201193307691244887683542634875323426670493712932901091759305877959242911615273325136265156664919007062402694689807871900616756353446859574877654427102019038554695281926865589378857563952954523979173347301507862384763999314208729840935985345187834148378166526420139782106282728359097087369406892342047796945679184612104015146919087565202932794268623921699793963463562988162095310451838332445286524068492492849763582680236422276519952321833534651834942086423964790061163661752603725891615119236466255784953200715027893036555650012881795756703949524704423587157496223817490007225073637766072171205627654236752320269937433605430970669354980270964804626793221490460691818977361085180500291574900983649190712227420231743038985369553160585433646322080179613611101774940662286084122299274575765226405655391740158227040108247921223852635461630414559968874100168462993584877093383096378601706222391823277195265433422750057436086765948704032256010129498769062217261717243622366333249904845642722916918758069255115684008137076943166033358109478665042778535363838136527801920539584232745308531340615770682889981529759766760600560036420325894262639568776829720817032495362959685232449875905523867455256293262106507969749230576060568786956969853865575985810485555314361802475824180117615739604213567259823946971621177689689752425983021852803008602174782362752242672250903112282222175120850305261411954961770852186810278743169042160466920083769706695967795108679522517229676434890853579636309938958519062527519959582880873653740804821115131389401865103013485320578011229118969127789608332707698366877188785898151769887172585774791468798637908006777680955902722455979522552720534671076072780925054030704932055551622307890194380520354448176735387983660677116988137964270658383929082637014711790768346401300296854300317997301876026699408256395084112957973753788457551288802099004247894965722421138807427324968030406574197949910942752296508318726454058216532508345738258986693948328511186460842701123184069245137868547661491677907310699160239356943562916298733919785027185346599322441731084301793708757665944628335747083315782613257065043031707555201977272501773562921779399655967613306418864206949934647668983135720470492466607033869873804057168768475130196295150158078558436158662064564408225151672512203057507106215296406447241718350594598058983690063225584378362453678466235133993084686687978944986435479948467110796253525357744642150761299736118473514627188398571392628615793022995617355602725557281332766403913462917731545902996266467506607539627011515592090755982540273287347483250151765437802388585753972857459296966248599606610421007097615943776600389898927961966729985486410490552126119906234717731380049220175746424291766360593268263231448522320906184190026959705737213508248688180054934422904166331446645870464464091853141278805634595550299050408037093237531067807036828439699001819545490974017023414882096805989950879812659094773249755480596886778628298115296106231829081294864274841392452769113246435708265670836333940619091610323661955391939243637266493189905254139447931606884548614945233953681754082712168132446368998942641045529430069378695879397233769120464788985680145467870693171482978841756074694660300046035752108359400738684095922779434271256130984923200496139291666241740491059678713199046611642797187016352177632159829598937186919318947584734629921607909076701227116331561643490433412182930530139896806191765777821717019614585733461748221285396107760510658125509926998213367906507885843087171436825961741062020535033642871044177796774433341296934201296234637227239798894197141949640146783366069953030879235809360493610207147774075090741611595461863151320998527864345809675458717706087317876389720487371434626203166950256709936415834963739514870478960137682136715542571704491159137534251711437636281398595612056149590512551561799657749207699836863208448384082226358129528492751459643722868255537865133232183215991766682904382324629705152702225233837995273572817987304721903642678730694088861386067045632697783321002006827457406324374497841458392729187144797169921272208744659527124990460045319775000554080043150096728844757160332131477433201497863716124920559320353911936025933253748470319265107756307906389862054654342161948645934564349427865181840515327653475388387146176263877529862165262088677085269791205198636077035149320135367338282932197183394096619364844593412350390702088204242615248342857516670084507153571819163292922376846534528304343641310667801250939042315533577266249028410096097558581560257918107465182447522896861384647256590098571542875497932062980196917006182071264841783358767031901140653532021456337477100348809394075655102852075474069503359976296014656463120769497043307241698421298830314829101221947019372525866113573947485203383967175748153262616556390613608411306560929272799601012817849541586485915724939550662262767303975799399513193609252282618279170304532723560371629142828113286830509005397419339608079814737206670440493597197923406880801454131648956048030666872987461769499685095220652704612771257045902946428487776973662601056769107362380634405247356929805297844687764519653257746480504516235219988415063547614190628395604510810914711702248155694765905165184659328973885831875754333414965010122287467349117213841219246225038042608689968913366625505792524742786477781012038753392650651013664694041223250885219818384376194563833224614881548797827262863484941442381339325164551663801756271157105423969906100598808621266140039252330785369215753691933349164576640511743142744637778242047604068159583725735572354575925871841519644483243791904954756573105431914564589500931588588970950168985915089210610705728736901953413600343801577740467711258110374614333436459261589480787057295468775225381297548677975040075674575255323098215311253362565463964071667912132480047145482456238397208702846424864832438246112252535184493421066369664413584457298505287151015452250192392879908925239979346559678146653987526458327865027175793640934529624690064876595166378085202439071872217743120085556465507370193698085423514000851827521917261900102112285404434545489606117700817063066632875485259019466952889628592813156973237671697794473800344176496786273086712799819338367468386900265831365721214677046634481178041993549806306294812739780466385530387926771547288943624858363656998220472080715207892156354424683334350553814987630017611928459117921201704517927516558535307700456826644852770650240567206698288296872075765117369361666139551871189649871778884011670937710523745589088885583596219688764977885504542352486313307774911749755228396750227104683811072869627494378683925249165918124899202976420234943089331786032235255033510884646186215769998847631378733365831529907954765606900933295830857641657550919544361075767496747870165153043654593444445323218313710528358112348441269713031116718627105255751653867506493168226078503297482081520012718730318277631441886538914678646501961628885454479471535926551029977868248882415627360192834540338373829203785151140294589294871899246723739026089831082864341618877453946921506532494411324438596003650493405510228887649076008249592148529036094756656020397637142952863831772949137887121667492871865299894171586492145120717829637599435776271532535826656720315838459504479373180246265697691003363261715112654013973168632500975375341878557971933434814889064724069037618913114984227938338098982030756148913230015035199810501671261125602776462694034073625743244247297766142078925940056681661724601788659946881490934204660656795099629537194839204634512267188977574379360219895911522737250573320590065802032706433835752894939378297771845169950412455652228852235633533391876975433757241907016731728956922508176481711944252334012176516065599267991784639700183755383868364645979824379579176364063175061303128278423515632274520424177519202834919589419654021099407102078524833888056901309708785724571406739679215635433719305622989223669539852041052208083613882449416817174378647256148993866788527528339674013602715421570574993990970338003270675860413496028374977295516053866936917948378757474719141473511463122303854676068586376920216117074135684245012387889506391798919646458004142297471159033847887522170187920100437604864712872549766080887836989345504499110881609683217242805365527418190311628565336350294498387687219369833487711863659630693412107805369201491347306102735428695515240067878473934375319231052481464923456380856811945497961183251267582136850840667513638045476806733704366516027938815509356262957738283458254556175779348025199876775552551562895838958596284043081236883859657791282268281000695185668325260407548573173865194953429701779985595487802429886651286534511814441863485361767316358461554072144100302317868985907443848074203537682867060568677259180065180586413558764179326503904713259706326051278788706084932463185414828194304807431189954385264187289006002722586203331586227762647955037434940922041952041719094061528443123903219921386460885238619857703153636399718389193262808463032529402883690610395848299749336338867236758736718511024003726930814638633967017811501041248942823935956013648310016245161527381733111667266110043634427513899042617221684468842397270114485936464644195073605656491120982914142283599191395557820792313202308605585582872940975807616443607252394056350100465121278257405527446751058932195729186670515209039321072944575502987880160676203660183866963155300636907404557205615319108538476175100447843760721597342440304038070459399628655436872593198175696588120714175797936818516284420606542918062222038255382923403043324135589692902697269063602034531888340438212582763187437631859484929941823217101005781916092424695223822768421900196973244952632233222278072413973948397726165175620697675658347233523500946516516561222822933435817880508343371252886937511827761351679112666423598357136220538725960105765511477811301119691295094624494361145815018248318235780297063283874997122037484188096611872444722128876937702879600310558822417143397260826619397823817897510368288131647133168538695196533789591382255374079856744278550833710928737834928823558081318055147122169417497665689103316553581289792801506729719613432138290302994229495890613089567262110063396107786398618796745868591431228445808523081966347964976112122291940684879743453843731000610643695232617959717330107477402784867200635561586843095950603826442420862975309413761951217895677758423900367515121433479633534397565215861482707746701779942061898199165829578185651541896350125815175896902294982318647277272002670625668928635825109477879957540930306902428544968826051006373507373499714403541270079953802859973956687428136926357423649457697311116435769967777727158082278159489057366928021451405723456497060571824750516798547050627942380109719818757126165411818565223321820025041004555001138729928684962345319875473882963044874198283912332182337612751694811769183061615355692776732192156958596533196006507792082284291884131026143079305425428751390043637678624242605115675105308870456863067406048682782979446240429567352593024134250701001087218830388419304827164101189411417764194881664107050677560561898378750824193980358185702757535294630129468187605105029023817295646232324629692641214955468959781688574175780179464434153436057892836184585648126308591894221094735009003220855165280181376570050770956301361573628405023092195829799760106875711204728351682079779306797500005669875308816877327758671600904903061100050100563130607771588977535336480518034947171578658931506505107595051360468568284867208457918181757388085823113525912075461359889885017435832332233867575604227198369933138789748293396271620679344345889282995819872928057511713944393616030599824677275902740364648223043843641927448812278933097720662457224251713547627137549309903686272842292657351537875736319607429341056430197458176027199018139330690505559519876959708080752675962125960596623518978534088349003075983370186420266171497391501679230635738727516644637868831462377086905702927553762919936157071675508449477135252989665447060192376497104237658952178535610647932960173057823516482641165534399879182583069789303846761220647263398898496694663609408486852295190740691662168463188136604244060542219830490221936840299522867892706362234951387794765416241793167426390407013239357752537251695334982794074762319487659794004755354568430228999168625713748782891925748893726055930168710185264350649293371306812903539653132200331884604390850073578873004241829507076695411822271831003039805026114538954102913595729314814147314268650503720210815276377932321977629619073676977199162707414510230004038151964447532311521199091866715597250959184734105517766689070299156573216798782665770840139914468732201624311336414318931992518584790027230230898157961227894423787895107176115891781922362018375182298964759008542981602726353584617216132037897423914924784614822678912624862338183251586589205955621751537274705209420493101347958865293834388606393522478431127888929237907158851444885494282941837892282926250371503313550321477685338163707938775189921473687860270338839587378116363330822803193578508043011346755325523906639920641540192218910289679313851092877676495202202376042474597471649921374249724368307931033251744119151913423578011515040220483655615732855963691933234469682551701720787678815284266845481220166095915045221379068496896623276785746792789175360833119406302067986175002818891434072041432087790447799480711206160742863227381939056275229889143144578106772843220644980299356295468894798308438550744029391293562953823166393788156111456109907930071191967478820826571866029621497201605275766069723142525522158172547460604181742757301383559510422914701874186201440087425233967907714038977286756988780729999286641053391322147471772241852197748887076095207113691790222306995535264187723309721406874024352531605199406049876964691778737098758253205507640236558104228387516201430487171865138447943211979264401885277663344497574527484669952010523927652900152648104447282441734840933011749445375914908957031324768658030383227715866725393432199852986775791665194217968910654069442910798002760316896346923013389336565878611685386333849357337880755220544443745261193859760490433201929907476833103168164444594580537170523285312418576639866429593628200449958364461584718035348066290258178926915652818619108949834430318467962919833136398594170053545762964598021623441242128899639008770281592418949752058153341374988449260979507159440530538620349548933271022732890136156821472302898636930099205517443676048514096743637333028046845813613272331048682007953080459643305886528554135515434788058710451677203113049781444426183165744111827806844491146624923684345438045992463277084636915543579440752156524404088254911515724681656116900143606752387281565396840038369607364210158386863138801303613867739650098418247819469297483247397825288430659283640354788917726418977155015216107542473359197993330327116943032075063068025587145908060806464819314877638723577503477480734857440670649107211734131904140236550281013369607360481542321816859716714689071523361868471604465244725465075272481676605568181066819696205104134372087303697569895592252210291358100905793347954594684170051273658343575825903321713075799055273117219128305043731274044142461755908263741856406545803466512618535826735481281206456929814076721097443986507670175654833287960850755106064580063476316839114314975833344707573313830856308909454585785843416345733888511765963841005549982617834759733127504077155681918717655103584273575241927767677159678543502942688791437511820774401303858930190033404422117494896740754625719835758033154277831032481082406168999309070373650781831218031403758871610382604238314951769788234544368469047570168952888010167929184440242288317414752732392496659974166062874798829935310222186096249963308042092560815378938803839497539526125282977432883056582229906160324369116689659399532577110539686243362982736147056587689055530593917046335240950859670809250008737596089804259029782887565061700075886707212500923393406591820272450567733310639823994846820026712761254746884201538397525060187781811573636354237354928156042576578314590236660523918903019795002013978908149816674576952734683020234459943802882438263371222612517313638693547644945558942831861575576532884094488396118900373257565471767425591048433543819391332770844424080339016181214168043630382643556333040324322694526221135911015759285515745318559127154774668854785395899920559826403353902551609284565653767030526737767643902231928204707543818880577811184546476076026778535745442440133336716526651998686648890877530967706814223342482646541127685914920528541057675866206992240224504584590980961869094089079170636378494907410966875090370275508069331273789676008872030416384561356000520592338990076086419704985573161860853871119782902981986387857290970849109899141048312543595379502557597846595003831237899425846499932446716846674413057808551272219674145054304282623014234093852382955185685371085296774978577249497877498226208579596175954136272549426272055769410176652519638282252705695319086148646501149725217560991993883396102692693078262086211665084320745228396570951649967689181074475105766923271297315546733487791895674930329320338031954067736785238114639482974260388615232968006180572035385481713535859658157307900491066156361180743847692597625970004411894183539545585981379921800206359817928270898612703027850352620720140144249060837547240567928084578858691310573214378091975333770275075999824097461622047032599096623470472562897197851354942808891804413460531384792427192077023798358384802448734145328556998546301242977324411303891190970981813430057086279881559198338823301306686046822678160246037591565533240233801410010116612507167897290145792911141034249250028284601071267988254974491630020223169071626485365894130713410337011861395945473949098556142274005234481302256319520649512001877551010145077443689484523377669400819573159637754890523827218560209938112463671401245568718232147042793192066532423016783457011430460891068318936729601975884819293483746610730047931390666133106631965500540450554102316916282339334643824457936374445641061941205655745795810257556485158660493402537166812674094577443828785510063237537987245364130079215924191611426675910382286611614643672561339634587903229414158014272991525334674574352977205507769454564533206161482133045999790058854226107236044782343563441917014637742076271228587036922329337054516462683637324761849617810270971806800259836297381677322305305737852614658704418108266714702808569931991372099176628163210517581869192730479687681581299862198871083157534098970930266801969199263693758229145576897626332371037944536710127150978394308008583429825002086870363626510517134084187593075689686485678271889712440661417912462592117517418280684481321309669455620268744254640181619952191058458820920977832422809652983137569099788777029281724460280726386847870687882169615582199949700380053755570302488000320289371112839798850067659358131275074834749370068423739407349097435847592054061372433045886421748333400488650834021709568581641459693640250906918576595711720658129044194135605175816897120204015062062929521872716276464246084563865894361014289825380161417933907204639931956660606286511126439313162616454807537395356260575241579029062189307366322423222271837114162672841441975957137113553761735836237027777886902003704189795664536381398229514816566474592202651088543520501599344213755488740634182252153124088090897785333546164024073521818362041932113390200125865066536959523385013047292188546908841932940923523379483206524746968803088118328870219780515718018611677058930834098965276605402845572456972434548386608740003909494495199053811549559980159515325562411503495358027255390909405157949790666408947124776332138095514353480713596055490450751776826325013661657046219073402985757828701567783772962670325991839479522935099144100889313697091303196350922328936532087433784672980379979182038712137889002751759346443835201218156674189460204430777649414899620711300506828537668330543629658666447964643479073973944115569160636241268025580528149051259138322449498312643983151324073420119211297593096099900356369071529431540695466676471541246097850217660672379177489109144464480056946815304806166949592279970923332493116491050750711815004756111812196764518488595467214005425100060630205707748218213723011041820797032119925399339991605287419407635575780373464197892348928492699095168109842468233293645489829498407081920625023595078493546701362391835559413381526178670854185991737493292903093370811919465872198041592551264402056854544359888975612637248595596068388439293335603576366226903410264400231050318685657907493994506819205073190085358701548291154941899698921110978784521580629445685392619085682569898579757967791715970433481321146575562593002752501672548332974502856172569556051000880399133565971433442087287534132566433725002035650713389332897234439082636700898053908460534218698766046174700950627430118789298741341325384091880430808712580370862154905498670917701482418849158567234873025297790522768056848441751218696332764219813157595580579946407111011624419820562281393343357710013099841964054828969249427418675984705728645731016883286399931409911677404745004954051917849062338735918108878196957560088172048761153451369360389926037522415681409076744611938601896142413658110807374356440705749200584313240263242683805409738092910747336703238248636583838524694634170877047265440294469825507296829499848053801359391599079428685315106894899781526668433214210351742509376794266775620917645263276108589664488577553285638437168488078357740658940025895772519210492803673724534129229242623897642908379721663132546059861307420278218057475798700387039418762488034755245176728007044275324460928666084496635585147319081252104301503271302241632964167500635288353605080201256888197613757087941658479009915660473561705724894747969597176222663358545554723071445339823264749919064755895587551336117443745494305636516633151591102304796637113698497550833175184898860794773509776868080028080099838253323030933235018664961134921877830413577651380243045759897978895691557996159394674993618387121915798903491144104464866598230395058287833133868738122746152183799845030376293931592718666015766999142225887926668020090435598741050614104813550835910672036826275873108033626545920352675981603166456799038135180758281468651184381323019074648706584997727598898274859356510157379745388395571469977903279664528470205211110187528008111673136207368856882640687024628163440325946475916495379052548024703417193479147360866585705624738424079900470796494595664821837857806130621518239862946378949619367171235225338327808690353925262936913962681698825693548047837610104409385778814554170276093765292478818001579605500348747334671235256358672076825218287612946123382511547972555268158560944537440770508938339749377842376056177695500583504811334082509096910784957826470641858031602968535343158678100799853727970119476258482062939627446669972575841150655627201190452445116226581588376462146507116982864954561768851519558081814133534159540693502659920312092216821632796465150372879379365360867825065957834059549596790282848439749530942529118193144641930492191368770394806693586942841122051673446315842245529169749093770166414382704624594374982608895050816889496821390830924793865604538034620798088001742861794229327950775158758854122464276846384369451774920679173232945543404070163696817348603158518516020528183020765076535918321043570580179626769130928967568855210614593844532319366753638282701161888581297750273621861452624482696530458879319187067859381746486818393143315019597699379102247413821053256068465454832533722575248028735783931615283231506642223020171761696436927526758096280872867063789329044105226372840119395558532873426478695749600280800218833346404049836023843014741624975548938890347147546249728503683814995576408500796201726623480937723196497788045986025444473097615150057438012579909554332875340838859376606635180190090574667863624367034295151195499731797616674302815131246814932448766126062588790859065723289221164902367923972597062972120959449131066938535850396726133484251890710772878362510495573910087627776050138023834675054013741161485276322360285536820071576412086190752777512920420443733256740783156125115012352550982554838127414612027169064794599867344090277156506470894222427948700805097873679466450125560668192285439360779067336152613769442692862018450828365073211243398273972219543539029192954405652088225705687994646886397504693547118099622712145135424417983257192550743856496604866489521057656882557677661633653657365560696057864530057304790358713038434730564393314342281560167917983033139455093383177921774074691576129407508220878238249622910413054604653372377227518018094242614553725777356665357430450293222542551108771007203970349502227608757736986253874720678977380921800382728837149914802681374178080328057026300956635377083576110859938101820997985487762520214854206717411094274295020889378851776862334019683924484512533298735037910100757625152706277152620523477713906342965097566656551499821048117886737955900376095279609802190370719978620357486217002090540026548539751925182337742696465908284434175406910916808089982482905241353133926469559679440664770792202212915206022066964387938950381666252130617240214884406341474864270457632284016646429285295329293702104928162750161254111593302199761511941560848289346681350912073172667083106231491289923096120414241968874408245721686519418567847743863766077282348731124329939338324308685722852618685315100947040977604760162644576034847161188215692898881266896181330438845857188943700815723074433619231196888569120135170494849004252383411312622384099363356707019326561513683899407421596114183174898931174171020463262486152399071734270880632807376919082072991841481336214137507872743700037928502655799658664861240970952762549006268935428453972122169393038568415380999722101320457486194096516272708865541554011807786076554939341582132275711645714137937384043169968517280479068885152821302918701736681826150431407405766634542552929475935774356815826918659576817428807149314096849199213506653643371831803254164847730250609588697109266125382736958373572556349567970027148185241718192365923350706887222437482033306411641875945980130860055675378521287814352399479974401291866838378898427209548336959707655676252195116931581973504408938712389419886460641122906970005775183107958342626749910422698993637892254513706664246843896454051728199603171029870076161086404675553818127690173090733973622836077433902934088705337158944700969834616497341106281702557080898540198422498789401578455167510934359679216703820056017340808850547554895993825062727526079336876677997825213246906101968460189563058247251094727610750410305585272589675569294235668654556083960499669479652510956631304600099901067078426715586067503936135167191314503947710888093053472407422276169389352298885956935724943805054163969343996886281400412521164580228431836400771393141858431996137743477370117182913528824565624729063544603070140551676357390220189719686651650677521524908404492477981663452942758197335097663836627684042881857786648905117518349493985757259072151751606206288455428880159740006235295219126038026749135054179541424713846962223038844591724531313134515037872405606240439408231960685604364883245211719720272688239362701962013678150221966229418045087371025323202325609439945710684243341280417212426678295479473228206147796328043371629777795652665574657546057278423815690841068970970342427692545459910651728895935898202725857457878811285561517752438454705825430181033794022577144828972204433883885973332639403767477438547256160353196731331287132616524934461449355667485658757900273864630716895129557884943221891275805565037361713531223026182749906297440837076353510751642241168710097604988573790431301454218892067675042039267644033955751729883694327741778531604226630027616819625800794538202847418401616324105280460392780664675770582684334195457768521443416581497783764165972241898936030336769348982805553916100991393327080769342840429494149880342973917353989137916343186605388569720093163838781861677929212314151515958583389702520991057185387508502385207994240294483734236231541056283533223195450883167692065340672616781992173502093990539395989867898010559314633023860713325331927761470021679699219320296981225774964106044822011590434397951418782249526354823219287074960490584311381505355237107935765973271210606145040699039031113756952693092303154550777581771374160461034623229765321784254082349903540616949490544953769095943753904518370423010653928945525145826435964825075131967311195141840569388021680571170989697337990460621266575696851189811527355362339596565381151144647146951268708875619270419505009166041303981339877836174135194563379889465657416614465720698616921298536925070458902096925762023472434471692739965276902883238138876045145314444126914409214788818383970080978732468728495109437638363859322499044065749890779387492363669863813922758321807314142343241786822162034820318440634029248005952635801148984559339097168341621848661350772957255476571305773143866000226728784931772516711672270394183145355995461062975460213604808656133835827731555077317558616886382128951583294306019108260772162123781466618227333417488810353365830865270595214111785058146381822111137477274423076425158496227309352472521034271900446595077412037411632065773976050394056976156330512260507880613294672399466509331337899538698294681395592310524062168033353823502227756456500728858086253363385966672401709769830891432649175468551683291777129139242153720642120980189059537353563088864341818325821491545532500083637768841519230954964632346792349792197483337293467834821350692022925319485408673765210913644276675718609235494855866322727660386078047341299165278952454121150953506083983696864338756055613984250703302795029857105135550109930761922102294035304308924249649721393183918909046257266686188594867567196816349794433541983397831353881359868486625307621011619987667344470315534106770344887702463438008951408839513453582573648778925044338109369956145609502587942397934737074436091783438352478167464490382943069325257055341555828130292017194209684297589178288115817646566820523667222816618010636961070241700107007441238023626863572596553626637418007667968178704756443608323661640548737924598737551302374933130780258991161037973646452422598371944763035209710374627478638190024321231821796646802626908496233905120691505191416764680408999883911953150484204684496822028801487049341454659664710977685145114457285221055437161433647146631975801432622874137057260872768037844628922033772572476668486133400594709575796792946552867732596475552131189898778303520602349648637076202965058237627313028291292637231514663967424718029798595977335624484308746986346811421853251406419699914505606821260013709438316893753665044652970038720399161437124879698558696947302106942784247065904623904357039018066052486870452691742815717278340525513546208205559239323358430689836781614015404047524764726002594771296845818121749663227036086916785511372865217101414176423638783782818964914185461854405372837571386411641330748020741509343151837231259418322184726829356788098767637115400680940650082825079193778315926676540728930586025484666699564667592743553320059197789419777806616129332946344340545514045000719989388322045917343579696253346627200458983069083296223061008307057223746257055029199346480581453963891938928206526710568211600209774735219464853531302492624035453398870296691127870953493015460960616703077624310668416014766780240707529479610707205550888845528381197914038309553314352948399053413383975447366748887726608739630126302499399886911023485625528092124848327893273894945654209907745220095603273649078852039946134206776357620356173275331239905941705591761835969323422498609702850181145166104513340540504546593477322412297316513863099961696073038719705654407962127216505734500730309758174308719390103740219999867150815752583340360383970751553416932167080493211685245378651361462180029193255996257553714414995169889402474266451764232762639765664919495331124660599654052907818327619173175842042180283852171939024302609354103959285773989230375752699815534131058022094646520742975164013546457763040444772844925263420880515570759863380691083417990318430576841013479593736873240036145748283906275529321988077512902259719887704275892038617551650769449474021408101611367144585833778521190105097912756512851751353494719281408301089654716626257013239444707043687456686976309765303901144955342148101165207274087690824472720379544391976093625120304497996367420691725171050383177952512751442877571995656845719830269430318531754120905843074601307975520716331152276397100479651282890400767629208250379353487928639579093994039327046856489747946504764593851377269873374758294704083120845811150993562258334452413869244850803567480587910323886023700258848335970308712225928152350047016211551105370793029197676025043422954518891337790535558675652660538149915240404155331258583374428175839926640943979808371271696673170853994800504774819181294042779568610021502343954480698680185207501035287478852976092717771148165499090241581230816444292296000133866420796239807979665741769518475561854172444301461107107686151114402450161966604145638708609825859413110337923988519000371072939384025045213319503179208854955421687659949765369917360606612654845691901904875165823498586638361556191402241687012201303605150049333236858486970257904105844134204478931480995502189843568056311299095165165357648942027450319335051006481101952860813839199745507418901995129871029514031091116141732706855544954032138638286967680261312917058693841013338760224848243059302444246532428324877447437125194478138766304416929275560156581257106529313835903785333668856687202344391848838163965987626686014572783182045302368361885135236216013299372321666406029622284751952371847662664542687248361132977495930011612196224762534155301674673434952349813417920522906155936987360364324013849994027445221267582627807862095105728166928059397756960150313004576913287410791653104545152085581212865865040912050246785695359218775348499068075494138440358948507258008573893027181651148884312478648256642270124847293811359526117731756811467133337381076407853826596066318764816835874933641525175430521641109835684863678107104319205900380763117503111132906265561816108238860042464055019252446957684523368875869106135813412367125103675567318038354813474955487241753180157485210357442207165628774116545038561720206946493199247871491417558865985108685345815241625807106629083466104327615610200974462535456937656117540480374743576952510101504675230421230308438785028761651757899048215334695611576551826651036347349424032018988855669471996442131984337142773818674684426102215240393901817532554050356246548285882274715652434191823713993925269205424287944961449251607864033560154862151947727318086731331197081415412674858294629193248466886013791493076875257398992931415947891414504991487800960765944212574057859444719287935849839603770118498287346311125196991870167121049825817882927228096455622101662603227947347893865509140475342481790810548960587913682934277621779286918018329126133015179551048673535821929151000017857057299521274654350170253423315186317849836597023305771519829426171561940566764894467657347932353137044979904673001456502679130223768035887085114883683705793926047512605674197947075318258574932840949456220837213087094151868618634764590895103602477761565120180610435878596214560621170861262041467226779909467954433502470409825173732003691760517356713302725251091782390251064234148193099509505855591173995469090252888883119832435898976386736333404718883527251362347868932425307992609120107787054264405697529729337525181342232036376800373039238270859950900958658499514299303964552645047859357615601389674278514595260546361675800397182991619119504002251393232664897386132277035279182797962498072467281619568265604436396558523548353582855227465047326009231610183469927694047156879085706688174436488789407529466086753887975662800480717581416444714992775011602241226129019698860371291445081539316813908378377529926203859467796604387330941844418053799378992198464893005120666896117472793174088785037206203751119438033579878401834236162375872290006278010460814269429951042353532099727023234882194952865728156556792960128775190158167585187423782468602684806729616912153257445721447740351981895540965481956066522318021195306943043069693080065800445349531716299170809026738495135713170140616710126480374431201858365167540982367092436418397711297580171756044251014897267408887129681448371516583723033158105976171507024672413535661377004976205726958930891587406371252358308081375984916912290485112420640019255431867759477948959654541590881367080539497853582436947789680844592857439804840583479713493638343828002883361471586069678762865684169249505485718489750265153204724256423306953662651818854020741929345816819074807594030341242405034343800004646452267211281632109815907892732201888410980023951732658785729353248262942057393287854771044704584712047883801463148507272866750632279420842157500831057722550667529242753984120708791349579622263658916472280328587445898999588153119064835255410400004025410359215900944782406094732189198826452524089418974231166814633857605038475914077524220660939375522040309664674659885197569085587444817254843149154868852557741392633186166826240255514229839548419239478260413996304977850834588977234483473410820707979831977294496139095427732534768730770095269615440811739496815789191703811162274503484919532433489900661169503211730412359295005032023099110588559449447987318483216664410221586438893129376878480312504037694181740086437329337495237802338782588999949175005366236035335911110227674207145986209858875965934841231445535626663346041862924147332698951032036382756782463233456510127510309219015851356183101177174129237420422590530684431564139592554632813377414618970649599407006539909789415593335425596088828821917328164957948936490765688819818726309695549471142840170884568972544179720471332244480502821516398255257822279969261627466567926099612603149015581818022821569640607914217988599883141691387941515832356113514207443621606977904372581728682529489232397763683190900633148172996550608666747738841042074944013185250435010489167567277821020690184277639658067313873303534102873057768529229506938535357417725426188944176209236906816862191434501526969633605806204157285302410191115450357747059142268312938669586379533658334632011210971152006220326252707940657028214666208042155343521289510065814664576223931097215153279375557524358789775927084127997414061358355001389174631358922135069864038483193938267492966236502767078010257910399080986315694724421475596219348649463848280930450867407558149898022647982617962266901109709650224219709411519327441482439129322862449140406055680079994194685002107807492313218369457537258701017079780943773271458303441101487559569218203539089114539938610700771524534355667937857903167158735483835816660226660651177483575906601750703710788774237204615825964940616246201271015772335430796348534484996131413773260974606653233384560860224955976981476761655645846694349880237537731763352893069771361732882876229409160526089171814643101662863442464928368432515600258560470437303787240516429372831463350664368208677180641522404206371029587204636273552974034664203483146056456481523587593090758218714366131006423381101667189223672517951268276388045250142718725740305212702679861381824831492201370809254391242244409165500384728555220042156506197717720357575770931690502760612908281020285674744635366970299832786546295468420887790003317430301449450134467040847259204304251011954920798181111153244231040563084305093908323243845340655465661124976132648260178853445859013956782896333212611860078254722939566862613642905590629214366818740272896913380456885436216618116084545520728851432125584630081693645112494715585757162399329651580373465460474100789929180181198831475587391766998225407624634421885869990997483705180255267751878609281015516234234770046327937005717917270806962013380806607918740718006020771122627466859535035338315671993907882687309802197403654259276661322062306002573014914596773635317555900880176175879226361054948414728480249931959814545384006662106921166569910571085210001463891686398015997069057559599985358878833073541095897839807388842339120387979754172048750963704608939745255187616456075769985567739846954907523377124914694533029827861514305845138734144070686470779116031430976120443597498788430465097159369854936217956579128346599165062088684735383952264837019889956711870275844727525495329781316183209861869268504423702038587165108812987059759557779971929057452689465922273587198352118101167675502532205490289666790217581521030295712055569639679080739988795478062998227503930158169821443646648639757092074752228472733180699344476292689499531377640350919938236576750555479235843608672093644527066421914947489629504300352241969245490487808054028345181867247140042122227647101108681692710472797499847615610021375756274213947824242142229047913048597240124729890206523800529861540181257969261841215529333336460910131204281917604128618249367799006139304553008740764209668677820045194881396763770481687688821842491287244345398106249527789768621793504538124930056867061031451676092005768613977096820371291790556522022256363506114293651530145763828202790838348241810925945034444638037178101896023462621415975226136348489570607225783829813268331338549236783078253106888715394108316095313975382187214136562271422502283107299821971916476646742973978279153344254107566351691164687780890391989888876559887563139657629406328512885344344223323698547008674777933042948689893002819587468605682254619379030218970882222627739380756135803851817895239045665139802113809283495648011393338541700311333775514843602358256943984485550190424655982095684836629862790741563941421037703754261666863729314393555791162661263146388934810498897300838145458109481805701536120349681553135815474716676076464855973399715366101726393192358827606170262603517420009430114231208494990798468199402902314236286449141605890566429699415952568396283687848330676465288871007454420997712686988328808588124613609947904993437485348777324163910643493869911720660450906069510848440919928344390589144791784795485315801224918357562100054859052179110542805413623852566269115793267816624872276724764952909252474623220694108338177611362945130398453721794037987673348103141615212287962540356978285591066234617132452557393680765076571734800074697291453233411368473192513862126760930144321981112587287424746518114445297975158522840246969835919226164600939091231700236988558240662983140510805014812299973425178421693016287495787280143810422485049687207506706032149033482509039257798764651355036508839181231931875152734222750368797462983724036569184151276653860137410079987209476113337312763128044977518500980997240077537470687754257536208136611257531812561372690952711208426776068936445930036786916470024399422117390280946414468799041044464819897496396895955449979547230579128138736778708277864844222686565410604639071242507607302393951626956683283709543263182781964056320512484133091247190286350204456916320419056767446957813240370578774885394740578717488275543169016748952982722198249486121244073496873151254931163337591564040508619521554311677702615610866928009073327462345580509401919206380093357473754060652765477507334076827852264177196352445313578571783199987978521660598237120969514766961464980399489649182796943739177618893096896444973139168481973205058916719976783434866375966426743149866308628070529646168705705664093588818599437966953035566997285677751117536879111235867651811213027210342608156203226683089635973395473708894956479449074957565796477274472385532778848875141384585742089237583943765572372369302894171881705420070794781607012905300699887860394625582078398651668901219641296991805360775100548683603420746893308998395819876111468783268298582013381192687824718240805312580613825214774660581294512704981633208154994650282485107296890129444556439593536386459881213680232361152496497188122252761468284290725137291777136127071451764079267825177118268980670238707304616399312165859344985915260130176798475029683283194580239197504085575720943492827092377914558756179082845499047623569952536363858630199193126164282768189098261348292457645000906528944916259655603517236199077781672369173061742570169740152995332400036209914062603417275756793714224126796091956680848009427527299027570746802455752882654300882090471178590164631367063495536229783329454592872020201429705597593623621793557432845108636217937510068095574112654380508610200238583614250257333930917909337351527849454836870367600357487895475197053064957437419042860847627736096168835432779927411656322072120622829710212862129798196708123677396959707768004259977577849157948364697486035491301870570042828767549479891546260045081028803260309222660239242381456296929811359444134742813939382494570915857494410034894685545696677220108000634268708566477825044727207121260863445845018654439001127694197466208956494130946073537399459540860345674111597926134703725464042186491218011627838379910330996208673131393995669896955166992985304368642466815573106804121362365311450889707720400104546575351097182791582048145474532318933985122744089908809591806417063165167590599177953239886871457626288971570562735525090173898962612222873550338470775890909180334135200869567307084692272588239844750963651390243283546505543692355725727930978943507293880058763246219964919796533934912129099243981160743843583412306992054625188582485982233723942042648677742071306690929098079096685012505794350960490483169596299598379688203651358770367757601874678101630008932242249160214356928756999679915787262286198486189722487261004969415736344753526772043681086463514179671690148037245944278964966115226268517141868325706235292577632662365227794356110561260139396529226754623587373539859135459192893327304862775067625573988270169097782218014278775554349492529674736521753238656420725161859291534583406250040002785222343274967626406472955936028616806775313978519503546106542752322835971935131517268529281995418495904799373175379616727242312249085322553884070795699018113471511206984865432545846576962623400886332176250073741089523867327769185022556945743072124174958850938326211970062188222633546543700386252353585838308196460012346497144129946757618034776874890284839711847988148373171722373320473290322033083729120036881643658586138804752286828741261094109612183577956302623572404494417041285156843810833442641554070561601918695691856489980529964932379625600892304037460800009595329629256801445190686504795986301721443208086544848719514650726026405030033203152473431328851648359319320857810585501850823431053712089382441074006933466493296657745878933686290256753147128208466611168192476286428105614503472673018673437780485682499750678276001515506026430530963178182712477504162037276915692060301106240597794945850598525799211754494215727614279266126026561371460610320350660037739039891000227052825450242449998808191855933359468698813868331725423826917611743715750960538382594914309861393892800416854636856770302623149545227643701369882081349444149167850079820675079313268707085352538985659487222166363636550147180609269181466706011570485008235290783330028300240544218544603540154991331554242065557077428371328477513639635544144088356787377385859818101291134724527041437876100591130692956577420889296212818490631224230885962001728548253174978170575920410862168929498355623302980866692796845549373871946522140326604760705464708040644455782859683233831747959210007708578519591274270720194908821797653928914768680360348970438326489957579608342425093519983917305783672935694772521675318808168212037805557333174429390447515943128287443992576087392929520438553048852700189041495535436281143683640902271505165530535604309405718114022186384735742726360365160731825241614724309062051022808104345558013685467126268329660271274220140582850655514143997182893279996174019574695192700644628057274206822485666451250745147310034736667138468930422275152538368216510828195275842595295296468245086281540908405410707476027544523821110918861982776919415343913942088688030352182987284130119522169090809766081531339635506239292687312315181670171270456611251513323351245653831567141394790575054851689731597582244058070216192134360593702422509177933614996331737847520258892095414776606551629682051530651801538814274601192941169339689558854164518859280944234891438958572417235702229613519664246448337581386098872086172073559050318869183202346741096734428695391366732114319691367774207441523403873831804230099044228131920045948624079425518793592672319985071376377637648027311722647814485514740215578353874666100679597157650548387830269811019026394746808083989952923777287859488430901033405976120137070288371336092426534634902902011438886084746703530890193828427442097411373799401192733374976010228358439657053335058045103420570422466904634425778343607774859979419857979409768167102520892085979191678984453818483864175335576712131618567477030163152714896272634749854998201090017833345223952193886382077225742052230810114263966294444405856521432363680320506807048438851203271562100935496660711500868823082901412600463901655652668949674081933376657015661047114762134093173045083690385368622254443303698154298806261562595367516403172263792952605674210895111166000645481340292627219159886855690514346340638399063501670828646454555971035032248980318770617765836571119924348324752232936078045813286274942620455980605448899198961210630084881712937044180610479937451673938225629614246879997700470526293344158840672167281593284486584501877011170667066279099920442580482618110554098673339581121368851384930924963347459836602621539688100653525399653650349184756743422984151225946235553292208987995873478386562034688570822593392451767762938583823387082866758278078698536249222274155902833084510522551772641616689809633358159482533359932337442520182273845674058414070155427982022605311982291042168307860165918498362421803181510201507814896928013018215186399119991535623429482647494087640250942568661692307156669932745965808100114749420789366976267111703019931336549559175654936603797429127207706135556043617531205412048505801337683213216347524303519171424280293296092429845316967692167128872272274377534281972451666032588361426622352273876480998391740578660983676874667966379403442539155626548714577965702608411193677389427613886580926709302754579011470059103894299688773763466503953034759545676915939125826507958500890527314409017128372345393832610027163768448682853134417786766194294124819745282242320319836867519064422387770016996302880952372913241530175923123316572165135093148763874392314806750113238874201373994351602295885110507135050666553789331198381920500725255826619554592380991670281503222201750107209173985978776701189270062105277465277663398630579485464590028342563348688520618787684784640140020908631574337385736982389676409205780532536257340414408812992856488501928309929324625382841856744440123627387806683389270147912441828351138863686418862600913068095942428691371324848629446081095744686408412224433180204662967771166961934610082453197617510310642494544247578223308815969916522342512924376765631696127076690567689643817582755896887963091199986449153486846311051088609489921107517306235006162947848632702954563546412103597924682203025332664634774513816232139013364648170697255402181568376219068746114760311540644459834600245158003168721838129235932607010662904448310607166449488502670961234991228670581262619216898577257763889926702353981942497676712029899562691894506965280325029386931782187196071360345364730278822399374050829769036956140717067663642070468420563015928402442592182652597061124516182339733623997201849547707236174411152931113931414475481800234551754133811073429473610031041939347628920796085990069217027981293148543078829418908333809953528815035237809504022868167398720574331251081548307368284603759151883022075075147415967127252229551362541065837319702805215757393709865305856328191243055950620565371749629796363523760748147002446958777019455242685388914376760064946752651481177499554446406393637287741992401652821372666705557947387238041411215409286840959329266470261538525535724095982716389231908679743678921257394080515453766246478757944102893351553058502121896984319134941982956099981284110874755654330524868384869129073842255964268737294568113811362837053162019278146508553354209764024367197168536398970050086594353618008280637740794701453520167254161304708279275431083774070767684038165878087078025705679182837918566295000144521170563582460579211618849597113259342690331408846087902935597260144511455726870669860496434406023379749703452609684336856389258339602588782329678283780358475019851012785527148757251626697708409879298277821993451407609946822959339324745680645850786543127243730544157291467367068352407660930575375448009464769325335581506263331246438169577555919986681482219415851849929143207024915123601610706877912382133433487006597809261789123400107571403399832968099575219271110608821321298516692639851362462446090741110804072040871639317330730302587235307224222690222020320710252251094817110463851079795458293646999266339251035790418482722749465157567376639661113337140760978981359834656264874628588954691316448248543800854029611339274398565521121502116366430392774736765068357385134487811241494145867809088246804543351992039286470200603127641030342846759898076980368275981218993996908649933834321982434221809924800377423097252766316149198183689926160012827909328982052889130758351063658741041313583770688348040305446141310665532453415630465454945223525768332289242882644772019017110797681862230792670966177382316269772534383942847226696965860509188238847889161773368185606233393837738418133763393040520958818509832571921166706027132268065274619174792495304821340876809465036691991244754380173984307194731923990849074444689779333117795726221588009113726571686154317809298781535119204533161119808578791032009489553417631901812970732727810692945552349901297194054822306572279503991840402510713192053236490913533434796297532158852580372400086983119343292199687821897842889170352527861197705037351486770590539792692715436084977626227351195263590686757686569786400312508714279031627485398178538822685357763244661647391336609613396091685317307608121784945340660582521494587886142691279495966206466523024929054829064309173565819991696579058745972967340459020517608677697017171969212653199081012232434057939428955078180201901837991839636305733081771558560992921137484934992359230103114798570496108884080384211166079931473140961075990478243663861409488667475529884802519773565534994480305031181752069532093572438657445894054476122457808663036108017825710495593615886549318909683638672152646947796857994088848100747782882572089493085341876912148895583412390857803336251666865430814427129446577035236075724458855088926576502415550638542574565519893726801698562113830198416145315594503654776886058734950144556938403773518425611658861014635703414503674808095031904269867692464823817177570730353535952310968293780042971311457748320495295349018188289236338145064756578326795383848560312766970317923876161275057901305090230492112346531788725515474682918676783142743327385097528029901963314210236427180323398659272568806703682764701199816064546510441929503274666782799053837421063426649066248636293635315413310703035916884188780778611132139038654272369888109892911870832036525262704040016397108161440793938864872703874720040049854941130300802850946241908715318972578832188988014967698109505278891392964309596296379833670814288181304226645866306876022802886390561698839448953767049354553894133654670369186554504579944171406723306945605224887063038662691320317192301826759065868487267098074969282111371167189434936579591847711600291981930489549865549552217226362449515151233228423727367150270517137431216464060593661016405572170953811160343829374656365746436424753027078605353518860085390453587554226115079853951593066274284772771579187661188063193279325246579342125149371970314270566986688826677143938958832476746959402706197501712783404756414792519636826082620230238364610691345570272704726885241973306871494424208927601634304627082408068219116609539771348058435479992034220733134098926833697664358255457003927859859136710047215887651525388782228984196559187765468787850978390138962391487160637489339181556935793910780513855071861140554112866801815380258317106336545308284255853564855729145243726119027116770850028767699424234099450803661488798737611086899555340194683291363613234428301498961809027124893638584117031452165891583724191179892740273499506268007497562496058470754569501172981387154622086893575513147185867864519822654558364710304500468398308882855291645334235031721571342215852922913211863934129022378288669714131612817122208338362515392229101318790960041664918981572814567389098270726064952037408639632189474857429125725092303635419428493761035567946564235728251915121743727676781567058047028437344381663599515646975223889285354680010185506413374123043475446379850916336168987861079874561977092898306847087067158790466439336039208690801688126990882469895267471771636557692266262264424189865211180167477385769757306738435150427914217174191677826794000082736412010933495933869089792144179066282692422603903760834043981676343256431637285011715923270674686530762171641605202231326281877255431308509024512162938373278338596013200238049940647629616370065615811089180018343081199978715002114383244095545289587245372586297583130764901392498537096338580928975119161294330407971560398363641532241364261258319224603264943756993332459579783052412557437194777924594311124275425456955807868713870964251520377206057281633939672526426568041692527495258032894785381329176379915244535972773035730153594313142318289098965271094013915613421088148997698034842906187603895041078970629100424184767590723036915812271843048326798158725898887981205441412486648459568602307090809337813315876180583021589804801251690847349518526401913175228455021008222757961190124201862021845000317390227480793879236475671066409748320983375870704156582984048009522270961727238636968186467847330191712263530210681889834996545164448872845556560465202743910547846223701803797844625161628665063891973230656332613362980810018305963751248699021683979980930144887084941524679802576840973517902150748805012831488300006157994648846013431837846744495183281859320097817740354726667323448793406652382191098821548116354236982249227505357741451553358740700253721195359166929206277547399482707750384748442660022570629565228437646563862503417416404965675129429286610196388617526437520502288404177391791500006159865392801566378724732454613183125910046025197637652389715495441322901155833114391929623903453740839385696779759919699248223530204413327178663742812394650202430825924812804245655497995548539733993327916103583606861046141200302925316378557195298882997374510345041507360094049649187133310699068397304394657726839418441665982767030031488429436659505791748396890054972470323772581221590278751533157441355371418639671103858339818661185927944903683303266308749328698539768041707709540536766318769488130028448644106489532494973489179047540624275178831714788525300798557046361296098994934499551679354298738252640478526213220307565505420041425124783300682935445490095976488214070667567191303565340700853017093994413401958969652584669060425995081640998841532807606141739669462056156520308055211400967477201759409892786013994800502294038939574391735057558927874866832431048291260807677387959919997463430537222245035256580313229286801003117000878637039568662002957522175632158229124484444193243343966517346052023373198184932719639539779923733017167718494466506353799303056782906417337310409334700984019263416573723613254180928857169798360392934410892590999486012844793338317547008451832390846856624859643860617580279408881344768241860019990815974479069993659441163303329575663093211004847713859826308149733155695980253268103977108219029028098495102314697063023501679290789856901484669154710806304717952066617015580933914584959156160354856758662275927052344075239283018502182292769293879241280802372629255097099818503169644657155039672641275372118168407680103619655407453839479880812496677189592957955395050811400320982887763181019397418264105452429928422479920586338088755415397131989882433103251982902910410486758431426123055427075261850368466056300154279575466095097252752699443472552865129121216397379502554894177338404882596240653634241931863805830691821497211257321807920473156029047632494220027471485156010574978119613334769246878543547200677465410228104639135447376030130323183188996829884542743427429354975465946597669320596976062616631494662787754928180785418171916300767367669852479381142737957968290433852553298291936578086507239370473476371046457681465448408456916694485683006881763178737539749153425317655763548636341495254378878293158086536033673754073910800755368368831996838506321232806704903380453539118958896941356333913518507705710339835259089109708727384391176707968297036642808871065223202031084522589072529416054297545121651970585897909566450957649912650205212906478714518570576373027501765262479021185143444618858820184724879489615003166868819376841422896072373410047247223138261921681739493923636740632943846457059607514987671215776050694519440204834030202625371142758338200225692474080211927018361659117432490502242232634423642887358189715220933904763400077583879409346959383475756064837546118914224662682458034770406825718197415975799538633038631841603501878989615284761530079181031208582691731460121956681094146193649452458630161052265382773174537165027636616196884158904581954444780401437316646961357667038356204392527199686866612874272788543397125503554077505681904678714165844516455141823889521335309808743867536511442629545303530211911781201701961147127335374532437932239905074653945776612960121177608708773486837365180176811576405726186416367100556227073853203231663814502437935338108139220023001364035952036361680954847814529466450040856338069297230211565445625644155821281587617627485929581151636593995175835438253961412761696682880554591240958559115425930373468160292705544361060792258523297149513724334660524168976507787791251502094279082558916613111899892050510041106038748302872915638018189664200636635312001942021573823286874573633834998693272549264650458897071844228586471849236776419148917683636832792165671649609951735081569908767736630089598097002447381448849723521562572437825159550346443278924942899775909760160965971247924245029025039295518797345292982256115082826391249902116393491544819011088878975451888421559737814773508030397156382422378370205560752965756478737760240502605855937370183730623595716450585447225406593081094420885492348442628598749771756687350339437743074579650052212824841248589954469562191318182306480247397106268718816959069276537328164727436410382203292606156367330397802146786106106786994616401789125749196056855929437873712643112497530254966106659420994357358998456986968345086009792476242780149311408203321047627181649159014454596168912200211061101204155282366143422045099381478755809666431211598074433630261551340997400113504347841856187701521455769897878172853744401805455969006632398872224313305448939988562840010564144292958342282165076876450456481223673307302061285054421390838944090241313764722530418966016942676968342397716294777758076546736587658024117790004611908266980104414037024931767771778536472238191207206444071956596026098650083074623686391630764129313724893974435244793462621999442902339133687388930025279425779486391646987372232870673360588973762723775647516212413663811933784986225107545736144757666409151947670908202602373279001893714623821485570721861809142240238838485935988714236842114953815601389733846171359028660982504263172683322879658030073096572595218931466079218494239514423398739670161778171935866860662065002728803643389824336044730786973332123194028301927513355442808210082424958031429649322428053814677879567277061992648851309191835452576338883204802655577774016183062103044983483042827562537345148332190000634555968132710856048426939247303746986968856011036627511037683003949860296956354406435612512108794431885205508997374093275587647735651001226149011035703930012757303054173994574413646068588869374202543430524280854344271559778218074215845512603043265450913897136890878452280054336682117404959849069634188624536631632377580575672470753392823505123720814149291833255182966285339569061032938328382441401109424286555195201484554880750318342274624412415809166295945939961184560158204785911878432113174702658490271523931466609785611225821305707987460455126287496070203418237550440855644382522799910976929776790873089974918053826105616254674861379190014578282581746626889147743672571244883743909113554744556131177562836448113410028269229093827570224025676805580543820918545928737656773911090973156815209574313531894005870833435171290036837916544612307976955725845155351876135065136949625269242103118468433719899360328590610116677483023146002973057203620283118023042162558457266633961994237671307972591957529032801875013760433398016637552608733835033542522897862904767705105112359246793860117997191381268493967523553934571929731800338782075796565539278942465235757629507487482864371636860318589257044597991438497134469310947358590814666546125895125643239295235351434313433625175658176142678610847444414498255857688462866763825884597139515985158063265532503447412323509783935000111918424026760403550324205586978763538695662432646999873206562723669137065010175003494583803725463572731601895526721637939826225951396708836677873780205537728483088936836577780819071720527566902463545674658723834979947893289285277033085089023285458640092905945609438483403383514408609174761037801301585245587411502190190177647922419925953347828144002625673477115338132643826410199629477321203410311341977262094850216133126385309950498643937064194756802903182873974660352251115611715974902757730118112629773181356005477150137746953932346367196739409976850228095715123547625495334614287576339243106128135058746531266619404902609719190504583867680307868794333169786015873281565717442514882878211389816583525421643751150387028993598701396657395600548476749797805437614490943968672312178747431399063670093420756268559343172014989258384467106670348559844132567273851193721498517415263504401518902845900892432752315114514994352932039761106612222999505784069349067074547094688617492846762011647960670407195657925525211112825896675171405263913444415144375501601214170001760177970598627100769626921010581736678721932912032075571893310394263168824275723878501680709965027312231624920968882567387090998326163193229823459100707131787929001072906430033612549061414210406519571426058817331026544820125006898298545459801291648583358375881051885312317126931361716215653610325432727150512159377872352842726788880373791119088546496636562510385086148156644363037095128929596244660007682430370512530204624419044013175037208122397467092820502002143897639479207359529296755163561291414481019150730883534904860121732845484657258637915581244127038691301342706151370125108417883708670447164872300883371000368096288450240565219191106292194480682493075687246784515163301271344712628753739055632780439127944732464818350621974365548835515552870032326389260455224667929306714145148070433485448524498905893576847501199207513364597755812876725582570293763058884200830746442627158611767857619697975508065992503489214478359650181624286584976722659337633950664194858943067671850061117204011874532999368738671918793999397983649095377646521840201451497363852634364797316717601069233118744946161194561660818598885093301129531645401344271846793540215404027214116539132133332757974585314705089307563018575422904572072916218805350204651368979728369811389275954948933014773535868644719156825021153119328258821596258875403280760712309069133729134815019370826003076250450690815160847659782477501460796122336376552217461391636356706900798272923390986852159232128497408752661117244419204198269541198499628822812650453833181623166699568021425997372215527748827211165426536998129960023885440485303010194175836465156267750254364087916186397056599494614379424631773991415918035279620655244203541837940306156514584710869661500734159274438282912137783473786632449205432164126257400483247008615623859305196483216121545868937578262582733274505958920046644652686708803494387346051753696572277085745720222324800041782361746778430069220280157188019672156473870958083002427516135935038399704597529234167641775842450944639807823972975127304576294008099483798579712133896611467601546087695209922845594358076278578833643964116788907483536824022481645517207465103235954853649953797503778053249861278578414296206829972743083130750630065949450959501845049266875557011381331691518065316603429897897147721095466415869266048847234839614254437634792820872605347524568271164896490594163127204968153149038359009262898223025812266801798436009523807846393872945531276890056914490473580153573954939591350200338123700915409608300287540561965728123677136175474215405190071032781194046396472560185116496481590430389445772671416919566494469287264206030125201176485665261581362271581606962614822906860829532586576601738728461156853312384961716843322016521534248018487301710388124228941151460009059764781360901729140750976075023569963806950192127098482783486521156152458461406461132977194155741143411721915151020089195239853941971663749849053480643829974854820385049625326302223987489512406226332576918958528916615424711057644588461859803489365809117240818373139122994295092530418689165519534975734812101273965024821673365204564204801377523119666541327081909425257977497021441712012054764968166676109512396594487170785276466436936743227577416687887138901756845761166996120276156172378616975056147410787258311230330146945882861273249834006410476668559546413655762471345016434415923850774625338206013659018772464241530375018581021415447614669291475791779771220676653743068334992357690372325035736075536726288941249393563744264856005940550124021986340928453999423244661989557090347687509756271142988159119304199000558872560489342937208893795171196960597807278475728723837970995115669351684051785991457428534252237734392517433756951310482458278003359512827122888292142248103098640928105443241758966096321127947645689507356223810614687822502560287843706414267551365474202882172393308272467697766783980471274052799482802235021958330972697881695124807693246778634292562525533599962567752734485866727960665355967743659027518571005822977613398505666401957033063774362077350526924451601861346893617638489857232331650492162769341648730016691692893982518191818065918539484157309355465918857652682897931816493181433413718488672490707624518754371088063108517107519382615603522928479494707087253430723004347923372287418839815279606668694368217170120285493909247400314262907330872538932972954737634718666130880784266602540734610404850386360059326981942882501917722390379203488369176561686458203654644073895667497563003759161987437351363472139334916553396734147603949941355122829380177723266775178353601654399515413912127972313873932027479219996920957150332745946608512193702931800014881229226989858849771549162775084616653919194275976000321526068601565337092533023024623766705949229728225062428106021746137214167227854193346441801340153783369394770900130233412347065310966723535452268443720574836816338342985416459357922800180000384456961041472314264300071770285440955522175341444496526698360706202974232112598701658047820668254797341639210023570825504120500856959635505944930535301097303587087144049265527074203162225376373183247014525442956691379866742723133215368096477396818882477622504787410093705480237520123596272540785441630795703679013538824887114272314618945760729607534937339409974885939746789296466445311837895563367149267342253113213457119762382323185263031389314871974443845491273688686435586573939853675822460461384463787291906569582140652725777421154454670987896121071153568090910865580815896627362725189023296380878213487022164818660402046731208412682795546819334446425809522055475033096076310052285851954977203186230659270614099423504232957678272516234045299657945406139093229751176385645623966574890597315345036045770408503566586478969981935895259590413562120834398837288437859683458448686769371719880411617692696738085031721826981416642378117282418386485501184487740400776026555888489242436620031899546927313340498259297454990989786459711573212261300237942329951706688347459476072513776668885334130747559889714745100681174370074605528019907535259287378695260048034746184219468458322761334949223220877942079970930197304884579819531967244209523273138903589576869966778496094740237821212581580505252200386138300224485665842774177082887618075180717667620722741064662295818407818080377352322550897751823477476296115624393100558670381594793462170689356397149800180932819113024371386438927531869291645556308729044707395123252036875838617735108922184130881938593549008532967851208956503387701817497368204672147687064994126358887487191729666323192846665297533126044943902648219499214779795254685172433483716928325966490242178003863702992965496422556203371943717621213691475336424705753474630339544736282026186959575251717947507931363674812284498091598434518036645906886722914984914258889112837693269173149524523347404614525781574446358959935472690672590462721259511397551435073567247846478482287153856703758768147807040113645786941545158847069337214972938561776461952291135822999756568109998882391683167269943208736009653900548212776550897685139353421047083250812411710980855251416433131366036675577083023308644929319367192541035021479587150557041692117979822722950781557387244601898516697398369356096161467766933587077733973684149164586147734623884114514696663612508414472955099414468332891994769524603025045554965270282028689544649641352310051578731975293194587230283519685145252063010602529878896866798321221784273412025393166412873156642616400863433368107987719573787215319467012525549448456578196692701865900587715517656697647177556120105374365314166236007369819807317815069647136079759073797819696993831897601171222096799845342712390843760640055940436313818933393630217277058259606128251916740829040339758313478136148582546215751865773178270883404116143841420342497195830125527358181544004095773181854494879640768914543775940378662339119673748770260321017177014278691878231970405206591233066557709531111062520286184803401517028488798749493652476897588124769169844453428642526605449431811612756792321662663508262684788680743766212039241289939857331995423207153584436792113101019379527977281131285725231150318776931017165710979860952552642930244952876373645573241583041706680254211812460615107354056272530151532820468303254189356903527584429623449848774943905924675407289063368000729337199522725403813200762884059976565816123518793547270383945886986170682601373394407184860363775851838607614914023633657882889496664369099508035787501942161884139414290403008249951439413000952615697944725195756712865443595301274946087494398232307727167434331785148233739658219446522168234788844486875042897374578453067238912737665668104963385464890015021085420318514527908775802839941937141273165078628329065048431974118622580707143768835910919348392651698237890543849621887606246047917701087112416996104823134377180750199161149092938347815105759899127920685845934393527185254180759329415844326722129763029932601801347886304769954452275537160139728099813768724679800496616642366097185551211327670319051711013821749691450801732119958190681191352380688113395746884968766461817073217091127191671298059095911925516533870837065246174754697704883115442671057535934641339324251118072802201994095000161664353968220747451906973792041299730158607803568580770384170451742891085074939499458142389842352594234884249005540912141146639043973804184470744053067463102604861924733078861503367204492475694638014880444623976845857952031314367591450804754287197548148912744829115320284647715121921007762839183306366434843650741640905343833675137650597769452157346824214688718004490624173943652381035395949344247847292317363774053102608953246966780050680098727361411908976665496357305543742264450177267015156794753491636959999816461384016875579739646968950445923256087735283840935307200005748843333478388019314061846814685378546466246797225588936853139915738668836590729397978474177875482732463739095417093957771549587533307049170591983919489008138836077566966604972476339298495634940218311869246998910895645893593825978257478657266420513263947535579041873370984062567719475567053989257955334383231675582342922541433229527178478593987831117450481372703567215440508214197714746911647976373443345325835723141210871876517122678508770175006846141085429080710868200520133915712319074172845497174985200643289653236340227734292830087318905911779483729337173585906683310389087421171635047346698832924218406510823954275846274900482746668444672180897800356657003701579461073591826382015856121813522267546370987432750029344235582309111613578992682674040864005748662569584468663062074690061646423397635901250773292388925525917389035684958080485400632019122752418488306227850595752050426759456217983462455368398912332018629978026800317498315618401775439607543735048671372669237797786687672543300267158784570520999960056579698709476108583290523427489825690911547058430569284380913836567883331404689886292488702640901495671633046320962246482838871691098445338825695846353231758275877271400806192612231216784171525906779653665881973948416236202247829342211403528963328650472320682156599636975242219827241320426607033540936468784625663795466719821567917853951997445463339310025325681851203011413440964178758006559308730233776883740234467841323827006027159254920324637830277873298929264583719339983834713671157908849120354759469513761740174238722044768304545139281037055591700738817819049744201826463046103765838565875851978204995524277080366545316736596785494524981638981734231325052389574695613516444130694044074348612354968601462062704189026846875720395597918967511351093416621198349207740264375099983962298861053666200653346608415134604779344537069980320281766830414713923161335099165328496592923491005258693672559839120485588906915415093911144160961532594545487094463494516755871211369413048929120077476120462238276414912091034368356343640347387829092535963354804283375865549848350079272982738614620546300624695794892227287981691576235625771467845746839537625571550003101141361684623030381954658935104952176307550312527517457237861949295998218851116980768492185115552408540281376560717484693931771898056255413358517665509947388553291608110186544103827832427465692136781838135796356513213568124234474611474554097534343407165147514842201506449831918705576598567959106225848583491086532336334308136232315225353407131514919393899328442925474910869391061676287312875478395697205871172451627095975787518077155278651627679226146723798189961302440759600758845352518181931891075537300074128328489869212017757181599603427277595956451725777203628215187263796745657074047055662269822235162735858618529924985529895089432063475329049387489077688534939107362137508525287731366496745143504885475609579391638205429082278391077028297894638030005760830725698203592499426379451875436290392983752769180099086606419910002056026367576126517783206167908473291200214060813906953874665191263714154146144660964800054549710047414235479946100664792710024528191949894103403937099443824870328162139359690182554584907474755571104237820837977206929738451203672888078243114144298757812931043345879135937706212491213467702876407534123274449506220130664467147435931076441600085664800984741082111976858183895161341023032760990319816019898508499676468924575839076908676249827707703341791511987712347228550511015982840944085428344796364445204610109052269451626171206722597378680481620707422495631127936738747596163458274517798285747672450647098271728829409984767048332939821563895595580416402294616623871912382544416597717063419930738522217857109797846450322332368719918742838949795782350603810718149074983638957302365532639452225709374650616233887640841247794802442861041489079883170014219557413967643249220896250089934729009167640902672571603256675201532103049425881285218204571107589692396227635727440421759961094684070357100776667686448124192264172954905823671507871511375935460663765859563450847600795970245410834149767680166262753080139947848553628185814617560326355392001554874162918949962261776329919969109755611568004936141306354514316334830237223813054828261913078933082847805065379335869071921628117737945061015257364188801744214436195681967496381684068103204021489334118734709090426869566899963443659216628726401353815840633379041861055999474002155159931855415458232039577706100066382057864062813637106116612697387739817024332669264825616093740115686627493627314802500867397574209936800476896636601325720633062066151545217687885625159189098037013090708572629062242571687927391640401663955364102526804510508721936337711327026500365285134865238328379690191870088797076453552056712014098427501910550704978100059193908870702998940648375781695656515030407375047828133330523377854432218644285644593776544465229208924127022706976181340881503532435738987807136460475625276198430221861265555809444879053494710742766920443527062991312672346855557309282354029853443694520828908400752230271170620153269268375319244680257169068019576419612805815034811034715222963028726081129293555778837280391446451771642767791666295455672723004744079878757143488941787315416459540145937261069277143850181695274157912970477595959891244602753823437208392578625154064631027014710626436894123668079137888155633844944157028064766902148375111783729759880918375211870392743689915637112458955471233501085006271284133126964512942712735263178801442079458370689278023050779705411908887591584507683301767415243832695137294874398780131501674302474976570642211526477849254252676207062834481810293310982438901472774037970982210207721762651495495219766250904681322178393678771544692601338840045800618974225605880428122443091560025884954936726164290620227200107694418602966689569506947029015417588192912096339827043194912706789691261608902799722717229528685892461273131437725408670076004033706114138427462117738259615995759651377641955959225941633295947601894205931596620810174020720314336454601331090812294364548224242455113321654510440836440896216954505887899685019524123546450005979092231058682105712150177592151883079346618226058931414755673132365144894220114715654771126151034509899433501371486515297735431741965762703163638637211374275890515746165139220248067674506491173571809434431241435691390011773529309262605257912746389948164015378591359691023621272235883603808317112862043681467086552875390018199962100698152937721903529012029480647931959643492455726726593722402373046682567995423499612033708121912574533283783008959605824666469974949293092024669613887477661728368073041832062466280615722973207840068957891968153879002230812250239506342165854310801515663032492030825133134771845415191060579182076846097285494011326376858186502052696362787800886281741637206545555614282141015458910002515916872181298463551486090279076922641308884264144623542045552336681268249679969980457642328861455377322731975845197224549756059431960668187718183211081834112554432881445953996079464063308078161446892727133919218099125099462591248851921474402638515024207674953308586927291398526723666189954990520222420365783032899254110634648494464145537913652590790850884246413736862585633421934243535754378315994338030789808993315539280223923809296971058475782529124778492856892404806667134361330628230370304245503861978713975953201498972438484653465559628063606021391597040584916964512253188433334512199987968653110930816178876470865633655573041336390992483010481674477110773217935287294913124770346021188879757080094748126308544667632762407842000177800551597556863009827258558975133843240725311776757185737384957265022587653746871124082952323586377656137359444788641055294743225109331562747801045082244574583978353264885475731773860373110185696992961196229907819697118117800504983697939145748102561794881414336658909366109285207936613323215666551794208572319753589125139666482556661070616727770939647065372371924896896858564442468770919935596797384647145814735505355730016917561583650186619363943989974252228360231348986430597357337737888217284475374856030376628273999821870681579531965253281745231524091660181995051691538335476317222390177886959575105267666554145126583967315406490199962169739880208779680952899504905926995356843341187886087943804910021084045228965239553052911429975197587694898020097202190291645750432425466428247991759287429385998369628581568168977948407090122182143728141662606734926555553018341553771290555306131545715845613328202735971345199057251764139028962944335408608927323753919565866288858241186357630479729558850692547172208522008837794359767045528248113980922295592074984618453941294929501703218416991312435611099484597843036301747516351050439691482481856863143367107284921439863195143481128732255721661004066040454228426551876686368299276841252016020553712376981552661465050127119336950169730470563759150453252755895734660850995198552237255523309941796093865689271266407292740844604403226370236708982911680826309546302363685027745200924592409748637093251743512432633919593414104132860258536642660681242480532951023710880675530333157982290444739709750813490969749176278402852969908252740074179556265633525079622728603703621446436605611611207970584430934800207368030609136789997183038940425846353927946675085197097136035583027921764017970121597451023864572865445906797042737516435010339306090894998894462401649982559480422786691634888528157456618380758342190172404773424959270734031797762184410061273461295846256219176497319128904585967237227406898239813102633071971032437081737131825151381454720268727874537562610131751639798277535858742183802856827781535522938232949171435916262064489036096409140599504481213532719219162880628877120101931403072988121698659193270196672410694186918771277088860841135915731436437322318851214358925807198233560469971719573646177084687058564701217869989398493709323911511799064802225724562114551444398326514990207362273262418901153800876056277811637741105751192025037343127538770964404001065614731039533716655631408458446139113697057492179821847748438112330310849449854886059297530171541428510649085782859433409595959201852336300909039383883721277233815165126731504860325178870930908639942754615930781700214130304476148724009799609905186478493208401935002833732794613111268842085224292157628854388243748507652756576853446043623432958814732088360788388869820940791838650838706927614770114666543191011285609983685100356485085611323048248131409380371096297215889567726801580301281194113291172998324570741213374418697109257786845838668446482841220580187873518099388505346443373759337436140740825519505709432131524964026973808972693045353159561172217691390818283582197962747964409151060345499521953655146091390836054093894882769379132721554093785898581668342133975575760664318060319986642998086618208294990637932256219315039077244414034618704925655705926178408428151409192295076449116005910365472282054410782826494210617420608884695910218627516428826158051542409360433546233176478484415169432657947530172317083247677252718078315121765269191626233177891154213062376406440622763418456177900330527156088982635559128245131323482306164243026784133658555768594240039702399581805003793082226775540253369844236560107423790058179175457078257991707578820486285788340834766768200633450831500812284521957154727540033963515896288041925766705250268857037077690118645768336287567649542743579452668099039489504434502263200489286268316136955552000102533412519518199072463712956861773539267453860311716661016733235140588876081412588508093320082168707725856346101884574019004087752959286643127577632071084670806383807271844291465357501637144659313554116605811010395611537452537879328763189442946191365979635930593791185425381744403893897044008206165303880074293826728453314635280663378815035756616142366688505364175496459615966702747700142179758669961963869465751282908844398980704768718095765689069509151308416647912722441984859297193243505008392260208828936777148794553969644041416272739816599911743143375355726072377923488448305320103649044053755838723478834256264980701999139524966988018326420419189369722559259388489483632166865418676795515618816699630922672939878407793900096681552470389534936050430412169826159040782803768953064096202540217236356296821512313496500105402476695026520899577274528826427327002609713013526346626454780720707046682062930651767221112547658696208917615147228812842418253939583130140006682061521191860109391856396356312637001550163409693662354774921779324929069185815339217289801570250996438449400571240855863304445943975670950627937759395945493566216792344290216228527086738167054514854648654160288436745504744219858739929126444459891414721941813428299568945026327844463926269193910951023188120133902780507408996050913451027181469672547970262542368774389675286575999082268737595575429629981176665409659885405897828419588642644809216523153387077268855464106237507489185069725280750262216883862876878569698268073135843374592902961960193738087002274245465140187322459267134793311841872587055235760334606924150829409633947367728217398628950746010220379188087266773834889635927402286531656897340509390224145159426837865470150000134534989887504435158316333476562367686586333722934111975205172776297182135550058423114320854981682561427683289920774436174434524115381686561066113850003758694086847835569935312296362309128549137508309503947890116125120237823066314790060961526421573692626121351418384436264247923456521584404569922402693913058835657333680468376118459921973460303471102704121863543409683628906654590914683268511038681946153688394936858335399552320246315114478335390230328909565284170127217625000392572291527618581331813994931331081768916253394812917995362483598962598625941259017598512302980445564699211734893849037246014013278726068671276624229794684834464138119189289186847574084224036011165507500684128626262154951940598532169599503713236779176003546325585247010449448953381788529430412773091592332495785627236994659227516920629490445227800467341554524349938207119705558940208709639444378214480701002301892757398993764063573765727011544523801454696894416869316800378844651639129491470471442088935315341610375936717936844710560477015004761882364494288132081720657219470758636885582458753427766568932254593484692703664574391181947097468608511681529283091530812942542105934466124332911890429669699096367839844662512890404903920949316139112723179773886008259787286067729063190562023775575487997641331846219612118850491387122903510190611406985922445600153818425560895281657289031732613373109883403905391900448481947678969548924054209126947988824541147294699307742240332313480475465053721700575404507714835731065737857612316539926492626486785376999409881297740787316229620275420638621195557765382404725161262953998233081391551922901060377193334444272715061463309057481104372100801942794879348492389331778751067669729661734293712461792580332780147167023575665017380854635689644682765533390345999877851495078471497192958213884604205667041434700003185078212652683899303341302991887392783404850600377639526085679624675238619713946325773144638027725752475119375658036128733312738422861840985023548974063686783953874673216797961551984406473871473653356883482993429237611984477343357221131865510416943324665381228487473548793547515144451259293635813020705822329360334036461540427944416258247259675900318893996519567283791671315269590112632075039417861747382134087444171864500051278196480648505426054157419201720250434143578588810333151043096516234560951522329197167053782166304007172753432972869514914081878675547620293378499421802901766821971196654648313130194055125433406857246044726540902988247106082924172776381756504278174427479442596303818699631022052762389381950469793124970637786478338251646055121249320760326857007621542345107733167020504092979776674427708484102128288133276770077634893147214244374552055799202945073210976301270784004659945302918218432546484290580480216494307436030892118895243420658212969725277935367940171282132720666421194995407401033613886992794055935116622142622699861040336193057048838130926237648329236638104881530052840285454569693921913019678320768179452480637992923871372212926683293006413855076475291957479551958379239943882871218885708211650083124273368374517700617971426827850088925034565818573966204426091577005821461709623525152221320999782013639490350821786036131590141004596818432573331053513664896009539121236467327520774620787809488788783485462037419665908015889996088896820578865624277465448624899468192536161311407201159733151075780366484410010047170803973853265184636594715919539590559293049296532760915016311032674038635987066639009421501155304706436103899199038137014238968027525324785933723529701396083031204454649335957211494994317776528835626016849179160805401135181939314279559787145038623488861756062139364142075500931266736581274832992799580370326501677544453319671561142362010481701545664053410875173211900562283385712535104265199986952843318655572270968003339753866438650563964797455200120622533875481171665741197061163462235057274167015181296999919569062105982346325732617097284079387626691883882546036720502522253434020317190741654382647618254430966051394755736325158628010531948624015039207904931450536031404440859990590087013553529401388508834504041963141597898544852284512893548214002752148743583710576526883147596702558855199069420198863626246430521271934746313789892369880967689501257868378862525720696793287925663147587096490493114673578789076529850107722594888224544538909561072156458227035896892642319766330203023220135140616076270228651778712315185516700801042671422983523500107844120394240998635659865408340206338055223039239499200617173016012701868223068732895555166957224256307701051723482357495097415396032708785150629716551861378553774101977096174970556606041966089901841224457632981089363766328923254094670443974176515279304020433057379546136298545563927026110177934297328790481739579321468172901885286748230538855638679253120935375569836470763555530586222767101355240830419305502228052954288141815584174650434757669155511191016618513175966198754887074617762345146799247734135481339849423532832420013844016138695489845422012363281388248432290353849602714551888362828537856069151232609578166300275541921908681910526011181248945454848585432528314938185330603208915924550277161050095610060217240361431162765477816181441692768935541861239925548548470117830800418487826179431007535538928686014144456273413991791311159838504408386966135761498295362425341111862949136715702458942182406161070718418303076191098816465952832349156875548254610003357500065897573105354937987279393917726276165224440151276875952846446490455211884952578796104021043667433661385531464383595096146182748986913161889089253345506385294462888316589758731961049638861178433493104192048714565256284084962820148259355012871757506427701352236400695106082739133868912629839350756673263165987058899757743785489399314220262595981222631964150821886529821913551042950983549722345163061948630458230691129128757653489296247424070377653678191921498605694897020021682196726076969911758655563586239613580181869661307676381779850914332795189270882500827251942669422393120874225493971638948122199687361332254633075559321479632351285949180451033809465567988991529155029222340750106950292034380613494831207312976147417768270530778709880712859499772277425470217775869390690989429368508622446127178479643364420425354113136875369090204062210855801472617999393038407443625114406847951773737013996625500189677610549995159599961029819653233159775775124915455172943112555758636098836652750061976036015125199108643927975081639893167859848452665620557800957102397654488175113035189990963911869025399035462264372333553233426242069608577054551720020032739312312384016291355130502201454294139120729659560147383906244158444764253786980327022971753353412809992838089690360821414606553892455296294994211037840734276639764132345277647865851479936641085937684330802877346490043864561662214993090148719723625125038893570307548923331196405899534434884927623004339102433985011246228818363914280159936334116604372985055456996709153003208297321281473816785998713596750398146052378444667608636033803994040204517718306943973680373520660916660195086681264687739051570098526338532148941143817092931649145375211622866992100755901717251357430139161880997974561842458223273230259991479701468857036450858667426072432077703679887995581970806273903634177226402642877573544010099681644892173556371993388477405909020029044178919147325329536399445034770217227345240444685190607937155489976559593253410692927664850361341016053088512964576035657659159206359615862535562552632624490070587016819093874545003485587468062399443663508042913456804989176545517810293580419406318283212770417155809981647571119183592371595852643574222579728509634679971445988242807051572903657329636260978704251076842843542590736758992000998967508804109976046077686479281222601102594015844525411146702322213626291998591140747026180015809430290333955233090772850027839019685176168033551090390411167997374598325273760247907199814464127550937725974187552307072520842138051645176504640990545358496769837053717819535000027843333406839343880766245789362107445797611816590636783197444440115068017002733175362549756680811291524182395558495403026432584676475945813912330660673648693955449042387043711221046886317615189371361972739579383199539474772597856062921052712089704554828446667471059951402550122364497750551863520243491081229826123348447329034768538468744897589228535015061530740179598918211267124154736226180979209554699200763408444314487662605575921246358395971417407505869380402308274804803065231166989806535601801150660801878316961737793770828869676741931117643739331485042411399676458831915693045537770170095537285713560161690590079526732744498081732242140063825878034950176923281443881865928351282853631391399737964798874914479291090919251909896661573711947025705606684583757504071838517405749079936763703413598079857337247893661425050672435433237475359114260223103305077108437591811202849359507398832765576296723838092227746987470571368587712935831501558213477333095156255755864675660318213056107775007247687582435381447334625181035126697967663460352845860236397751697429509289176072357151211661509538866605793562017315455517735613276322495737027679535060792415704604956133252761190715211633322146090742912342042749437791305671856379134973200168137642406694136081978678659768654382379536215388421442005668309752004441351361728426734323496011798189219283847470014366102845486245302563729744553714772149517052627203012818562529941949591761957752140616128001884040353944172863587381508540396276378296728139889200940928647092969248247468955593606779517724381345207832622212454292804196774561956886979834063791852186040263299859275036644420357016680052857116571826436916269169927062312769627120164648679325291238968105301467383457182759448427329017726773761638802705566471451866568895518266968890078014656861468082155207381478629571285352260423436917365206401916162186309339294166922741463296327883136718262049470369409289597301019104424358723081343637334242466576364759784515676622129210876244441737287519135801279418117776791728516942009145939616615669950446092738181508767599461516633509792597356971830134880078834436382276640750128213288656654484614505155458959003135131341321001927675699116867272957359493972673505825327863129973769140267369844337379910075133071843654215793701287881430859235895293819189619297872538786340255861787101546115154461264773959910950016035919899752016448428705148589228153452170629414681888426694068452684589913007262193606868188856394324219040268982323403562682097164806593448517476624306534331806461688441196110458645030311829917033420142532255128624042995426406740560961150197226318877542885791560108332352677032168286149950064974542180839414059207962802343478742111449417157994565352074852426064652069893112214249562855394091260793940516542831573923554952352093658512498810006857883264239098555116688404634070014825666172442790273462072631005621966277288398688887014708884773125856002280842739758329794447215812889286000631069233751145105074500810815379672976594389902940511817056168587503758690846995328799549350046048581104741556500385638356658103101238623235476075560469314413637704776977820539018438279389842983250119407442382171845494729095791941377225407059789919509574849016484328959901148533818523917242417302188148495861453364743392212209381088716363306659710525372381688756180265827945853703046161538838413844406296656619195509142024388518099526482897635679160007954885146838819337629386510074878683476404612653913808242652277530673206412209546728432033782393669412873416900353186506355701148149737960744913777311207462432609001050896089167665688473759324652926687461514822075661572378546763673380266020942841821588899802876018572637337352236675483272431474270944198611431942138314194818260154639668847819888913908014283316668696713259449954211521005745309995830679855795151706856614658901461342119124211474158494276817644107260374083001377130453432193082344002584919808401382264560679128024734595912670214941045018069336594411287012549217054806831607667537088810590793832201415022622216130283250432934833299786963469459428195186327198231221663124567616437342012238454251459098367232626275665031479295839073374241062910095565495514186780081754604893307983178800725054734613167110414544003957531621067088562671717527611537079687099146532744458489748687314597599075477881471479580824119746816568396673134902254137612198623332831141284971286320598515110687084412147194736417305081952317892682188020878322040667008201673729288137114940365727221843359140668220024101887106697365268660781280550742745849646718487956604340951546667885824466249812590041123228734509939778746842202779743216218208557563532618214143795003879312168912071227744564354560291500754992643490566226737980902844947564600682705275093303819510494607085734305456588110511484397295936287448181364621890365589006014815001626138684461977280037259306272990502881408655912711684282386355082749969506937244171019474224315134520723866753363209827937412611885357033916151093027743987740534657330982400535273434090972943060756907259382414140240261271689052983360864209443707765341544869120006731871954769311117213554037874104895090325043466258910676822369116593599060431575768457986552856294012652421070977101196704584264627466107130295868716737418916341984027562112444666702465642130104283405147740284092471858848111802031685106027925384311755678255305230121093942720561796036433105463826109611454838806040563829048458490887352879792507062292580641708476403392546783534184040998083009389412855243853279713202825577800793485215131110119062730260502215084686808885008314156786223959069125998463522360269579439079222242064906417725083248888724918215560645773433772344690161980398469874138900386756339480732626168891987185951217102976448229757138710643203386184258280071455461088456309962550890026196161695295024333411169707674362178485019183359110762832324535032084791283458305665868435032687218686895139915649795768020958869325016961175565784188273275956612527215775717294807886402523668577498094765425790594766433085141588673360623687752341142562879964788735538850873229853389849280116405127001398080491117554737146454323424153425398720677956044599725846453390400064927778478931630358393518132530292671432393666572639207795386336033384513349486550701704707374081272888510746915210310579952526079700218054532744457240382481827814432298375849522079245122547261497323895971264772833517706902323387604168915402327520294671081205265290312881584274968656453009179673758882980613802884112711286051628864666285605879976589487206682615939344757106182353425792352334487793027629293129227526348397562769828239171864248981432414038491195736630968797050501895991192966990118374251253390540143401299225249905747448562742239863560676689290884708527504624327538332959280705286031913580046395076987340001329573733280581522806484279266863497374608497667279424259484360881816571872770980078899189611571152476874822866566383120760937395214200378252174762127386348026258979424602857898521166759564520153057359508659303311095213042035636668625780214990024453646923778611896098133475368498882488198969532062279866105251621767952712164557612614490771207367830196114264644176361695722454581078694505444733190441375449017967066435299901246653112629541431111545623334866945145995643516941879427855335742655759133117107437409875428562332682418628615269236128748049575613774424412603089191815045636838545272775691393626102324104311550424345746150027500366089644799686446866278710919553908068342988370220638882052828897225550570300112163245820466739964681317660095945297437909194454543565349476089393033397949868301013108093572212657971329375132618776979958098319213883220553432866822833952974831468599058794257175914623359179499691641847657383766864294570718327142980777413856135670758112250858147537521975218998369543685510984985150340139824787816246786643604689164770484524261780277983328355941185897538644263962980203693796267111571827852009171814554282935265296541375710922951252618624663748097299040513544875562190857899347523315204459336373575124376927887286269602451240060966082616086411959108502463182251561401764048649136814461191402543527214698719077707919390497299108396627194110261230637065335491875065851689933502957050046635791873285602272937374634340118400816926315942539330840734667779238477255193183756523662240702531705933931168290320359276431735592500976004252341489431232068835872348999886615646998007504347402923113339439546797365174324914067934301499553796328430462925500882486813563681282060401846870666432087727566397188181805777444599509807877092672703538414885160651080378144834937214244889384026249759324818168527459717430288521939734516317428880976111862267390633322180071936368316229398658563649198496563670893665079517627263896083378663048174133919347214209947403986123905052573903207365587562338136716938310736918566793952979445996358737919576358983989189126463968053677652759519389578783110999631328705967482695326466160535942836420173675498871450199400484717315904072222559076030495719208643481092894645229386505318523509140833530152402501985329672297586787217370309314250127708213164598886435739594757696642979913273200969496808857649606286117603837099401947009334776042008257499166424792373153169229828079780556785867111450605699091813054117319693453378193526741181955950119069910665347910960819618754806884527958212345901032325368795888164993539826329088225583183425182498773813886261704130632119263569588964532765331221381933286982391603215900593743574992114438998296570977261303855779238120153014105449785672485924463083421064161315621982410594835737751783647010495917043144033995560108575813951990955759601361414256100684144155347167097304088434519542703142986434803827746116566177215943473945813501697291706796225295063461191052893227041822416382373371840829129054732397651931141277096510928022515552569113952590585411570066017608628006452294809237142070463724334550572967222710296810221254371972396431029320749816026720286790874001607635453805985914281249640877815072884946825833748073138542288798838743282195222375416027298748716802849860264055297058585561976937332548997042367434246409062561759596773505517335661995205373938907582088839458982982515043594702135139621866072362238843144280668672895850010368362188819487012105172455492767649084666193364793337162983596065309925891115797579245000725149514485333677518747220638042087992277342075779436235631266354955748187733540267057109283959938569206532055806099485373922186278017204277481727354680128678978737663266401118365227391924615270884359736454824845692512881513046419686453996063897204267303025733583155031839984387558337273282640461025943098400371592948018084518133060654796373935829088840321770278667099243441142443378745460741131156015567813090338799191887236395800763758770242723399000079824613977970177957768490262417440818301138464476979812340000434884986124321416048839172448903563476617180373470700534738478752381526507226711278157520147508476030338121944831022625282574027895659172250993272007556129899759221067125015044509902866175525024544384368626561555148921436652684289868131525443807665100095637479831125846357165839104560789041406723443213113147398378715485657898504615492567048605708245376154269135203944062428312066902542470706907404212391922748561624597141798984711791754412568872695412907868796535731526992251112644096022091082009766351101282141145780237128750735499723959470897117516247062834430800746135738929966654224397941108069312425127049447283353653836300196474847206986327449126612242076316739250029019270658361948439798299661614609702744657676423438874764233334300489898545287503006286465355067428714710541606341531145242636686449840042371227511947755308779694945705471076755856667947829763474176531306845881256279909732572808894912050422900992048758465782261531665905488192395878836283626303995227021857596562294352556358308427855042296895106411602321124865443908331773890518953222348051612008179461398760507450406763064005804790067848305002766480898599157181217552478510031133643370014271091309528635937030760253263088034665767499621233136980594642610960652943501122830200259776825182364723817077984475791971162415303618072077474942477448883399139524491125477782562861702992212486020272294324014446766874146592064781557442884205899568473233296663202523403169145768172193932586155179588016456137490891485219196255471316670866139491485839444431672696691184814453522111144355643872519113098531005023760654585906161097030777182675929436439873585544770076561805775893282458110707664515171358541368792699293340318016322004601932491117653712454947537872392101051566225858158632266365036080196549302063504596793992695847374046326062936593875066068984736521519587322093707096525215625901831716222109504233462101396893253132409220600308241372397676232271169166427926687146402029182841213742731083747843849367293206896159459336747158188862402395394853658313418551003048563382614362441836688976116406637610661586638855611492321773547216388367985384120145491894538645060268807959068183810182277476918546505971413107865146188366631932501199134073819671231994311324280094145002052273701489129677403545407045446321288239426830139514019832396672332107422719480740721891239225726024885944998878896568021559269487530439260607400921370027347106953196758833236214504408853417987838840499659418763251694932673440106558033147439780152934374545251668976836314969731946999097594692739270756096753971803442955514724720274963919126247077916297193635379986523816240258677596272307324869068989664002676697558933479216978117038107142428925453363090539178989481640106246073012718575804548829119735536365719827511787392734420760151458481154571151668271094387659295260516214938986104645666840135371838705696730135268605356892042454764331476445725941358384707633768052897894342573823584248472866596611414649373730616022905895873890516340004027343001300086950834957714238860611484612547918736459095573496207999014205476874252189322894636736617419729175479399918211396802130879586223917036316676234626669665439935557403913585706428131055577440731311998449490074276571493083093064179006598462924887943600988892809501226565500061215340172071261623159329100025614862115205804033883081868951730988257654521073402209792552470072373121086553711670260498764705149751533096116538723131225737478602543682230043338239031297523554106910281612263940620949516860870875438257055442339101759790214792935663490687939814001062088590772803126140516376743290689758219876796597048771942347089754967112033852981560532436766115659753815805498953594330952109048440282107163834453815721717779412320294769144332924746747368824845742988626186923906800269382587893624101477746920591667755411756146116049712175194642956613751404184348832207352908683382602991831955581814421858548833906520817587573805060267234274121753322483531828912911854581556609964046377252396198593637897967995188345053598377237391374155146429840573050036949348159818306221207432375842602765049717948184112247484038455792750198673321010044028864638875184939172320733607407803336235832511715076500835917213464330403601024476781247709004803856235103236895950816521041381534284730263105140731798657441911301059131466467075610600194796068262578159528540371027794150410395213449705380829609618702992261915738798045326387630476211739689854685018958536537543335153305965885847377845528299242703378712292484920186123744660256031107552592479689496065318325311451190320971721747517816319677129551308894364310811143934932434152167342616919798811231439409502977115310236205998839903493088003971554031941759880327790394862361306981505194505013457345876006909501075229644943040264424440098210224397409008492322191705293140889490926344511837190385200021466795418885029278434205506011438309819932428637638935002005187457296301093409939586056883071192823650407900423153069257443888613645888481643439256324686578464052712320119323860057603536665552052603916340619492884094028465338629832285421264720113844168633433533614094347798958185750830146880967561714840608390747568541575713459535079477805427871400403803014920560058829343556819654272644257005049122701587118630297192872491752835069120295347391599921524908278478630202667879856587676327412004415352651911158783109588287215617098384992950424561606808798151155070104289003134376587057513202023186456177944054821748898378810443485420887190915957909125159146211749388265245194272113650536869638635932911913379135575774545831115059639654937558527362923472340243252921099026270223184136646078888562417648408155346799571568948500706402949431872724320999782597350209792873485950570019787581745574329011268016228903610523148187188418501037184489527650583462149705529629318433882088272958523080419002047079453159229591469163577263956948424471656865572509204757204645197906097719730975923493261321439864539234967269599048970191174472978281974943784355145861417602245829175383869004778900452098212781053827829347936255985298647286786347412414138513879112653190748597346374028633786855926243293484810479763479470978835479598434157259693835647614783782994933292788345622094585288214730275133093332260525832130782009178225908602540464736744475326386955520737831690165465657792309697440920982636532058524072195742081382590000894872579817737568195290529437168365432634155623495673333369970249698083897256109024947232394194290063556544635469039159506971930003825829167442650500415066099600731175706039852006033155865615789299350845188361472356442028796341740532690504991956563852550641170736926354998886271899575400099988531902578442147878886438243928822181191561857331633004445079321220933923115605771136739572802468534579283575339833436724895579120714334791089507198970486522054938863019762457931415251795224177781135041937437561848754535154988980930192698392903301702025686845891122704182191538300897228309737602262417955285003218901880924497268443490980436276584749349092237854676370385716803926114711618268059546012514497708091179802335849990925038568267926781885111829578283023550409445510344448343208235986693753833298376039658208568447879194740372653460828412302753880391758517758925357273104740409885024608994800419311072244327296215818047968989041955598855493692706030864572730973210830118802499518021023926167277240382795386563688855295252541522382072839278258226312193766332188356004626403641210858935097345732042192348688770702832482115167950656461211606367631718383013875551495747006279363400326544424620133615933912072999745345144787578920123880621970055580882218046435255492327988869118364790117597304463266947798781202497515238057583912357699395031521975371138443794155135056496338020968448978428777730134923135738487721725954441922039533401677139305476223640433415620229268937859667424100049718340317485949596553328889882832433631185054383228154924765635387212383774301946915096326390956395636727409538249772344234371648186506704001338126738945731758611456261448394610990930056720247191497952375387486405986324893455815945621325664973708990994367261338894750485347200469737076221617257093080347057436161986410137630518070531682509456770923831300494998276867357498400613009701954322267400653507080490296420090118153641572838594890542472129944663298558462069861926106560464906772451133323977158565917525495251248236592744534116801636895811158788465305051361332924368252630022525485320170914999010125819533674469855286973984350701889615556484768703074130382350474535014176055407694834671806631617656144700975592509859642492574932225573834846340896175582645174389656707028309499457834089445573599501617995347163236134371399384031963694725140059530198237290863960642056169747921674582304997902371136319360132373342224110083843804306968800672245375563857238501257484518335846409601101427069786784811190043296750227917887612897975589400008180902817720123047560468650368346873055592841999637447381112299577360899940051136140171462066982875216377824032003979117798200915167770177963260096075745503880632854556476021097362329480308633564263069831385717691351430880662632861993333709496108765478285051328996819489336383056412702499880201515576188540106070239231603119189287246385788449619135923260609514211960951340710148500612240533853908281255874174122163241451798854809294027294290444258823043049127148501092909353445849732433721799250235932263781451685788479977889441144245342639946599974518156395918433784541386870698191061542086069153812105862245974737683180887907762471159651998071085734973887898378695383629919671096691642232926945665591410947409348311623942128400042388422777675213338884482452095292267359926121031143860158678811208332357641039281529638527326277170706004757327882420793477133801319398242143322455723905886044908303986900905455054456450793491336184528301032555979968162399648380431167635656744629891582063234815017240834543238222920803146503527165756531189409274872230451498061763947679509938712751149641831177591658008859693962678111226973837135010934108801867428786453838650399197970923491235624086938240369886930155377096083734859715979280286665344206668202980318782763391809130493160253996780058640128441762496148779870260762197616009376253350345269807767913504574599034004536055767385025985015380211908655499771036226171564263283809954862050705980751353540791396131985304846030799354485888249981437150012146112506400107405925758658346961621269750877014185932157494288211023642719204206370235409451522130840769447490346050744627997790765920421055223824127889052198019926267434254518665768862336163101688259921633119836102458048729214852701285863617110735912018540903724719532065494774384003372326348552521057130862695278183333146296582729936475650697539434516395093262518279761803459317541307672431648884972922509822854681427714980575266105402753558634788029371338012700718477653668225937947786984484936847445404769577908830592665180343423991232730389398379632934346769729744511365936148123832437703662578060724929939230044353650317999523393206408582227904283830052363570367725009485390104368234201518354946706973551409419812934969370388285338290937111443322521567168865707165025992653083341133025453753609255975044011055607615498646827347114445387679551592290519765962992476075638208199813990712541616430712315215699237808525201238456734864486929361367797174472812151593853366292046332830056249720493637294124443287759274852474568771858710141172498995091699659210439843332042049914436717670169372173627610000572203962648562230565925672020194853551378458146956623206931817240589812725350386046222834039302217414772786550663522756038635473975757984915525731648837203976976663042287058718288962862618516345481395578387142209601996279825366639804736731601755931791460022996900839688484434131076173755182903178375615404407722772453912253548929084145123318121573082081782587122460995086438875749136379353135019120324204491555797453853983012377388166046578073923396274513408957028427595180852896166625271125144906245633192267385758009568584381800023098163633793346644510795322669757679197120231532399886269836959413110152702717630878931130466041995293075012162590537705058725819805224401544685498966754243412159470468667699432140215671484120771519824327241554825247945278882244527679330232577815172395438631656159383476795867381241407491129980067538475518618252578421205366598837288749040459753747163343059022302948309886744382572711114405863689212603349235348455580508785955909609000441343717442458001309658370871654416462848148999648798552438041769509199527805273382362906208055048056165651507506502900349261602270082823688671657285947973171696967898633548601150612650112522985199612161714365310303622011111793239520992579218451796201357310033701977384533025984929875321115480995032371696175669681522591944587760433604923685984470894489973972928725554441433816908921326116659024403101655476821398527996600007919462084701180029547004349775837274711127550617123595218296159223548086524021385100053830500727540398421257439530156988343551979409547382267712934659770453542763381067455966568269188662770668519022386880968142507052270293105810018679455543487051259382388893079985950735923943914647602482561972903772844024654094925423824310790098513729391135745811070950980646957202908121690622471192173685407711497105747527193823932132582960752608079380562398548681675112243068832686768044623680294777573409119898662347116914317552064784276891973661936118355613132425192284368659031573341486419056275599250309239068961046664156589212296766462283149726711945459418713902868640384660160264005414190958314568279135978620310391464741215841061176812226771853586174483540750174828036402786084435364204069269108167341804677716375517405504025652227589236945232997771596865394597224695995970604490397828491444209670471121364614491263323177712373441815779648902609270418103726849405019189019420104937881397299869802142949072570057127568532935866337889775933767140319166741820938168411237067088314897417402492503920887055450041546820751030276712841405924579354968849724199851213049099609227808563229934572970610083414535326557429783774497145321551300860849741837147573895495170492127305752466915144245783369308548462282877198777480063479586033091623316017768574514675785697235655167962523987015207363931842171544542262629050235086703151478702504940517148321337464265429252198229511460206359873109346014302990135179515367548664886888552030465710322859577201079875683527205174342873718971889653605437220598382486296350973925394933282144831277327628157319439129049116830291633746795725027984091524496790147683898361941691824102878877896730396409775025249895054742403819506557255689324429488631821625355260635987388317116950422127635458320901946757488848610444685396281213951258968943281630231163858073838011424820200026873904933679453383125392182087970784096494322939202777833081553297126380573482403326791614209425121736039550144800682893200919972800978385623866538861233455953812166748980685151848315093013357750048546664385910072800848116910766661362751242823749252046153527002030133846258400099862099800578194724593457182459489777567187647639237981021828803875397232807748804395536557583116086049146838807756479106490092941441842788525751225460974175326885531128928436899777084166986939635773102039969151384137407066261218687349207698888667668571624446568649160120409153762260918494066603059202782287969178810178941625906174793834541404534149097371952300572332263409125723011351479184639732825523085483463291967119178242272041453851763685868912223680424631087518057367240332104016358860420940484778577278451999907132975539309994597507723327657055536977143511053233121655521013526874691694066495771871018236813038117696877974244571765914630688003541604608983219615197279107613738602640416674667912893807998056597195750941785757862414894113673387268731222574584598993637777664195806961551572652342499212902105680137305351113839345903815329860467541266591144656695844967735472450088385255609779443713097295748184090353091670799091112497733903468970576931228860656286324234313296133633190475291649740273655855056909859884267229701658367798258785580026514400612846492512536195050378484597343899117459395216655563832091845234897331128145731560302181338562512046486860649100547214810178027967776443224155423971532109459163172680907493932539491180908022663206500922457115715259796855068902903374261677971480597919901118711849492695884845951643516257431500908542698103232944301559565656291161922313559219630609522714737492045543774373794165967281816886403133850852185438503038430801886409365187316497471072680634305109337746403922932750953796372414352631421628996414937199345306025467914018344923913700335417101137283808931052515157084235177486594024631058892390498855981573301270639893192531786954524344041662773278438157459211685634914670637938126250668688696011052410840625198762617505518701056545778463201606575987072045470079093380991223753416698880225985321875869640360481777378473597460900932537998176715096525402183284115794467517092555502904299637265534110132562928813916719659208636072333013383618234740991564951283274858910917906324895837443522437499443184181723958250690343341959692517416058388510856783826474930344489433899300039542804466761531112879703882901658821010013731289418051756378601105423223485001208231225295626244336134863492201329483683823020457449986060765155844859092606333316243531501730099348009040017528935386737382226799926106147364252051290637514598968705889685890209754123959880240742170387638377792697202822031466826865709936125333136316435352036970822807230778908814188073976093895130893337642791432003490088521268802866363556481469883774474345833844819936013102645527244108386622915810630893679943854359995765940249722967801772769348459115322889953625996455766027114529359518376690120652597576669396554854055541082224109792833488134565434796848761808861529601738607849189095586762800038129047833198904214501784385564596705605119404909118572625025213447337642271610924932861870529364156143924448192759247115356546140915029403002857322492202570519618576586123691094301720251082254231959477342452153939238459429615701446425828844183826019489080500941933047508866882801320910298215888751205840226936192288382012478254601708450883929584530396534652947693294737549231422526384247418141253802163714300791481646755131389387911787405074879976862220974631059392924191089733476276129687076860354513361168172219143584213657624162192304896413376802189379153251126315747983072944604328264970525708457133886816445625728432324834919329222811239966418185479420368656076740326379599686931770603088068639907376432717733874135602740989463446037885637485761881667705394828881385324955953742944924556907427073138561726609536116567235799607422018551579383410472561414382819649450956808522495619411143700042386538751486324038095368809179311251333868194731348243553195050297118957348683434514290953845585977316121848335760689385985875364094770198269249787856923915372775798788947055741053878072358678715464026592349168447794471315556010009414263553193202898550670485847679764255918214030787248867011340414149578108127834123260686419476146825638061976181280844084337270880731091028792699082499410555835298490690732225172388215126304578325710164623432537394717834575881964374936771395996450789540812276656897064466393541566150425791115408318252826604994457307342068135719703383554648817328594391242620335394805692039294991975754858960905473397452341765379950795864554655551558856000772188728794594727578735357733582931366461245089226488161993567402261994663956173711359568609368918687567558722896851665223257878592662406693404406333777856422684961656547188912511088327670846249564600868628978391678434428400723957916326003174970633131304088489477545679685956467922170167730519813908654383354241105802921173508223209884761442597458611930102416983929192906608032312437615683552995658129804361322333719046493763586647594494332047842682911696459792898134145659010320447990414778681921122622875110104222546046385669525872433178866185615627574487761384356461446871749264288623624848635130089771897056764483156566330277123610793448683218637388111832554927712885595085968833323783578599162167749562670387331904741649456246663813839129035382243983806462158458306648063978883802937147800169950207025494266334310679504585057632830039893409998448487594423377484832030001377642765268809548436222859465023249738486454480698074484083466493576181220009646467851204311186477662910236146186834286863750955677700865806077551847185118339330560133882913612115215289751462147951826131913377373474791099621581372243321663595780025097738621509418081319483528644632650467927236420285769654021025409124896319549120138222963930643156728108539108408572027781326388815296666810818080298510657603519439380030217011919189868561283890895352831146711721785233772276831694704803212028775552560074270439782315693657310016460327647999829958490114132076579817328405925442103635056928157878237696959151948988394151612873751674664265555975014306694219490059790739542747968706868289036323905176915598787050882104088764294236028099462985125363022726505223681045168854464268031912285089855240009855143772003420625066101733215047077092357065733096907914426854072944068396536322543293713919056991973067953168252347982173601789111292135075558141891898580885302553381228149702616321700501305625186359847395822900237263583909778390684075872607128726067376132606212245790549077123041676583723884821456638920860196367851207767229187111853953201608385786232385824308496715753931806159526965388326047151583287034963777653597974658569292092181316874760982205336508931352077874164412607198958860703120636548089707557672238586024377802569867473835548342486633778514031115383274426104954661708585737439900886583357332244297286908685563312927690524253737404698652135080371240831614945788958209426604920817964094550804690678516177557817249111702235123866268328537249498141399029374173298493005597070877334588665530555406488495846837527649664732818076137694185508685418479776971965414452101269884976316452687306871589203340715273198312055829929481637271221458248990309045978079881051443812148507509132973133223138893989426727008072459318995221929998182443434722357401009365420775432170511705356076044823118503306178802179320429190433832233638245407453779788942009427799537397334754725524917618261309108194254811444578427240520699073235275918061251693577888269239065961461128098599794371815485853449830005475289053112793049409222461931728435620587797150388422977964738381123390792231186886888181650083497432671560843947717220019672690301171057987076163313795345081860968090386633890237317490901070948086636709424145066066254853486668071857005044736503893459726143953197065505722704127698410434251053936127532026572372684931376535381181219521903530352161570408115499854955885845462170046231531310192472539877020655432512757800132436211620109001514274113621976760588928347692657619506144780220382666884838008750541568630907870324336242113985028437128893487322235678464651846191423279992288542592773025228507553403940781605239613088826497331899410191773527872629056276152813835677598023960915891927238229706013474389886530418875791578104993863745972539949434187146184067341356326107916970102992273098643186478387615204958397443992729729644603003325319156187847846642815298936707635131491127121668344486902433927820978190557674554901338674501593189056975540933941377026535453302377084935872021806692520937069179711076033256537956703168910491779698299190584513835031700620140713710868817856578478622051328704774040455247692280910763432292276979841435665219836324248626132363343092645716198603319953600477833192770043094284291508236278644168294078963415285644996701230134813288084804422028942961341454517290487104609277132291572194104579427425722381559497558705226712897927191893707094226834024594964024404891664606652714611388875513670002783378164476005996003556357270102146118680945662132861130089379665935890515551756476622975855537908336252594787830339498679454333509911842366014125162851351962689013724548856835085746685468448656889597434057672475462410270399963680565936568619565380675801014397827907016625261140082611593906790255552976422080707509098805006089989842635218522712224471966216209976359297519058352493880924566183365969151011535297164872969457874466015657392014740539080710287476673600502821653222449988305504064471812657637042409768750506548023301050372290638660919230790400083118494971849587062455933358920702526457285496601133233959559085904281275617256439197736472680576262270092355660450449232935696151709186494210893196006359008236545842849239780540383760041805269564709973561673975284625598832559572955785207195076509013946085535804705155683120218487467478443638205435579907622818755293115090798937413750878572663203342232913929769654469532439623392138894367066897844110289412971882319679360894054877137781173839115559935330371400782630815325043329241054806507614512614765540125498993166734320470142805701689095012415238176951961225957900197202948779392481798313583200972002709256309084617398616255077981783030758749220105434259920943823511622177442347462523220262341553251143016813357414508678960248047462779354172200789484075357608202331922202200380697839089194873097011977693453226309976963108009895791231662946446773176952534070166685222715746355750768714163209253011259653237805669463619284052305818588500736845934637936652696670661809598722792143137593163310489981275574867551096618448145255608775986080130535430649912958302170012635145596018612156759306290528590142378025056704721702780059252119496698296138916938425129429047212572072163063007494184686620967107749872239447880154898727483075964185244676408525747329594735481642037282042222426591714169396551517903050550421276410451069338887615712273536080003819635069051549559604179384075451736235864065319489530735035804069661125926524884435989851695161675524453104810045888066939109069944816729519245954059226602593181732360288332197587286340387289835513483323640444644158936640568011515642959469978939345734172405068116067095229615942954876776013116394103508187650812106649581600651169162140153118380696268734084212935100228422163751743165982874034399804881006935448312209892039198217381093682980154033457601489253167576371939021386131489947180098674049030752144761004250587569968246572372934034089015363928710969680099621926343323633791309187012152021110348137162097528736933864688173195172399404921671866765981363818173995295437004264682449500284242989444656329607302676502473231879382609715079871986407352581577339534067310768534964259884042811455265858349894279577851699073259654854557091918314782882372621194214375984446152511538558631011928728639023659132128367007389790070116203290126683197613196350050871099530874363948003020427289580660790989487915727741513669421483907869689942483334599197097661375541753928147452381904237254531662569092159428034016515328311311000563232067245970919674274613222371424921698793866694425902146379106025895463114618563892939631736486756032010506843850167023430680159286012459476684243011036992649097931024509439080568821126772276240147966170825774278288287136011419387852532013794986933446692256933350770540165242811347078943135733100028498202876958521448375682244940007380354510376038340361971363659318506899979637568129803949737932625616702912675809795064803994572012887236388626607304437066394286789310048565816976588724487581984621099255531572854164080950289639944102018727013891646239587897602480981691712117408959016314749199343139024892374784440579654904696190243826030688872329808154743491181536249146663866414056358415961366393704712167064163846629421270210311597804206094392265686969121080919822140948372952770277482526988073604204458869096542387020467026634566712913695527959576623378285182774603708868110070187397265274166673899807395500318344729532286592334553867287679838566012287068336301315426547640660375079775208784077856376488530907991687825040270508755736603328959021152333448989790958951358505895179401591012019117223035305496926903083822859846673492779164291020007997575723248819151841477027069057566921318243433428855269924634666400752738400527971646629959914085753442341847074939907127745976958976694811319202655102167053442150448531536557677217573200289474138481276079502953886420121029982701364275895243783346129390992147637858952213729628507769496060425272173739873179935220369795358611626372346872454418256414684463133979026875690473655340317335393071602269786689118773761465385441188919117125778827047329386809615224200593799878235065139284584213903800062144370409038401996871470804209913220732264131530537104123407392923625309497519691705747031901265375899428224300836337303716350003740878958560937383541760969932938085941395495208869801955777288849636168902286720345020622291163650447859354465062494124485515742703943201446004640196920049228406766048523367696690352944290910133157566757843865384394504878546923182325780004474627313804736977479574048919898210942768095329845544622739735759359841503753380190869374663947698804796040589720194173193567952118631538813487610564335199078910372272199323693470809413354125978490729554580689748312663625612915330702143745081173807538718018557362904468083280981875337398024034988365242983103799832216700528063545685117985054376768980862881494443352551965515739090472933140204427649943343277250040160347122638425325969270396979415046322998660360116661653012907360390011782633799727666937461298181112946192048126986250670638611340162497331486640460164013101513805259548619649561837425425584984719902275683453745253033291119213632283450152469207683563977302724231108725164760023134266123730686128768423803707993781175565359706281206831248517246015692712754743831555519744503811975171478480592436324237482134077433720050688304579633959312952338940407402175861045561482404053855725028114953868949479238788340622528316913184472443406230945157797750177392177202901433643430575782200792509364101693606475605969311644196193822786380258527901738834278298691447446952379167232053159559453840834609194493410313617490661318421456664412298558258657659553328128316820978624717364189425863168926185218950070490283072190055264616152133929494641246041804984239763568202129418359917408393929307601389800769485729893697476402883645382605889070034266522670823271716659109613426664806608347915923396791945057225145071765983041232129919520029812325392253208599621537391477840089238583757215759958112313215028140989365889511465568373597288500521158174277368861620829124255673543786818680447108265075565985561848392456487693764411001231263683540834131350345364344429967685204016897062476225888631598777455672753264459516762353587926924523084785655105814083450081270712593222301100054788968697215249811143223612701895905279438292579711976278264897828792472459897598582534365677952376508913567068874968681133800737852808711578520317239871583794029887928265639947132170203314016945959962134732127647649175514967783161551523950640710523977636287499351039999301156515990231252396811178505742635824451512198596001585957442678136967038324441837057982394190470826201733554860765713574252935890415918512018519146405980934434266884755652446847698447148737159211690779177697321174971979684616952269045085392934256657301345060849755252510722308977527139397613580260810227846432445108727720239191433354540679461425984264702860033449801644004400709511377040746392057545528545902866744323250804346434317421662194711460582855164633919036335915809591708782317688947799859047649500940841789935728600930881341998225347764196803716807387739043786944452269318780347157856496108787856730348210299306906114287636801190060639272844899551414067203634530970379059251604145902979675896020065116335256671396767263600176555841759872471311229634177182105376441297811896318933106717267959362426582870216883947327051609805533179481403005081535432686271960577934010251581488263364491551123405925894435822559372511901989449844968739738954306872053594610135097102177655159904694735659955350700723395584049268508827946519167550787564019362527159632281797282864630177673827695056094420190365683131120345034081582469835654504062602102535918154626029583252206958428434024185164824928923216100841737016011862093667095395041886739830666966314363432011067209570828577499102739489616963515124393564836344441723927226483255135584834021286549069949766087281370841366532034880549279265890727100353814340969522357498475058103657767586880415919279451131704859413607689267798347080941789376311492996742117192685835238854521197245277155831156971394038908798668051622123973973331089235222632117298750280609712316485018188858132489095487804620321219297667920972166970818460896364002025366321272035114034159335610221422957525642264901948692327316456014153320317441461708694438986155777750190330219464848710426669133400312983919042246537619659812447049096465362974389629683759119027990458985994349762111819500380361188906853997543592691880922081009539056711234392919613555299152011806176743889164023339661715793223045143829760643966610061819827841137781832238128062659072609010514605907730878362215043665434032712290073506483673028118228483999877868960842914994805035391265301560932774931850567138308506807099784538786317374830623479039086630333211000215143356328090893609545432230042045238499866760523009921176459875008691089892737570405205603122860003286977623871967101723287323474064465930384796803035266078288387453229728211683949762538554405381089856140562627900067670539342112336198205359039449613309735360766717235066139358526715547432262436095056398987352953418752318926504734955826507457418143340183061400810583672322605812099687943889372603294834702167000616707113674344778625639192271683873442349458113150385471935812045285372916655205973160172797076620174888237873481136063329867588636101451187932760364977148983986059791355258797256764701689429925954077019707529875055006956223902113630249742367931139478727587850419192346255700389477146701181311807866022627515647864301834946074259841267737759748752062072871084098665252029228766019783837882735764786951686456084554307212244934298917295932086326334664705960591148166474028068519507698675963563552230788107643834666459606240388288511863958515123210564051459121017842427296503257863608911260838105675194101993099765823533279750654792788826968195010893564774449891819493355963420771302877367542571352706529834849583817785253319364001173909075165067559079605291246331515508856651161664356731982733499366430628059824778086129062764654469641933757181340981240147826297095419827756026345582848953599883985678235508910793624928686444885064192317691344356154311133228635071190145613832013739720199251142922730383717264808394844248288140507730024072044817674612377437881989654630477543678856404997298967883070057575012839211612153672015581183634356615154415044734132733203927680330539076569967130745589328445474660548280939786988357089378333004781341091027166214260015348609585180118985948473715350998088926864420708331751285382589662851630493096858211421502734699962860006738233023167364220630878418762294592669314901690841952312014151088002177218056574388636512094902743971966930227036445325736953667229675606629308374070250425748313449186368632277764680778012992977000625864849437162215260449049959692883320642735522703183726263688956318195107597695164151035849493910105403288483782443572241136717486725907265118126345621238700024725701023732014561829365739824755011150189347864025633626180025702810674153627646119915744040414611388724043011024501594910420359487399741902257090143394373618503280757877447076689897747063839945933405016582237129905755875755774117648087804690684069913730120455089651528028839614188676546387076973186051199882079289759449959796496700075225583154845728803868907197064265554566327629287379092096180419027920955610310821272831130757121980566746135325136049677057097285627128752128874876331104770114078928665047174847972091929742156106744627401524767754700502770287063016421722040395566620842246585266138708396005940006597894187951260766597216024688079622922606307288530499567479708995737886577777805856670591116172911033640567368467867855915966214462095156032293742637214543551275596386741223944663083510250817360159097716704280910545715178339693916104593245814418674301082297229245181502078360728105611452009917042417727502402359620117402591123508619058292452023437053131815253429566489279024019915818619641072499895734453485103013133328562653607025682102510632327043348533460134023371700625817776694339880099410949348827895176404829305977934600825288363779860535156188961846859844738654090064901795254353091439031731734436551919236128074828697208974739601159974646282032551748790693555331797059395018620558747249397971580292760566398121704712823403391598558908191788727996997045465779454579146937816243912541702116669729012616394340842433373179152503556188075771905195413583613592772516988974527197447569558643364420831206714446059769708702915833292747980249899270605302501785675012389629602643573221725590030194817553176011241292228359166328721055929819431179423819548945273999918666321907062709325846596561109989967838127294347468897154187598429171584497726334001747095892678076469094429344283808617719984514692005787800570102065441993578210660565758737443747808937922436261092010921159234194891961467629478097225880612399569038399920881688146838922413417062574671291068070008842218287423784282911752654992322461111140666354281736845248609335933290977240235191007473536993767742476871460223798580805870895303244443098811616327773095579136681794731393972847105951460750548610991570386632192392380117715928113675642262239050714128401847076551756042375304648354212663654724377042074681112531343908218202758789953708362862883570256839896768746510450466814768847739903383636446145917535363098758326298550876365457466373041179478896644290776625953422271008110744263791704095504570521300224260470060401518347306955192793457978040611182294288985440966824895093029280539480729693815061145043570818287171391514874986452599310100184841712685251304911733718048001698968022334631458437839308712260720984741505468932120056161481800347618017034585006113710887486020899285066035140419651731181565727788863078689104503256825301626773172846245252551135597289770945353747051784498522628075087229072875104551733849990390388943868528310720605308220865591405423998752569529301982931287791979847122110605341341835903890028016810183836140087021786263497683583058696691284830834384432311129508114870404117116892983660711036942957433282680279529755106615045215369459705319142748359394101880786325191807339159571676732297734572752487394268819730731849777437713641973834110487741661602138881615499907714927688947859824890517083361824754655398340308874151231372072954360883424731301775890405956131792521985020346441937216205925733454564068060764685746813960828752428647111224376012011513676477880317834050852047774824288947951325885737520351548118275057758051514623275840368245872405927291669787050101194946977563144519636937376321214752796590481534405266334746384282058523493136947770358108679468009794016857070096810045453455220651476920812653613786208528154025347988832568615968259314993197247165927170343895339040094371140087740332534947865142438515603580409899734193427525262952854374794355332287222960797040870550328609566937122795438992011772487945881288360318366461636471002668110748993259914712102643700942674510078922492185393331301591600276433888194189927657896364504424754345918831740649248007316602208408644438468036435869542607251734404397693218200372679843025107407923627627364251552813824031961302882854616145826333653823837437513441574874010313002706130128348732786885315138475819323170335784590141119127551969942135494417400705577322632166662144666759108660020391030428802924293015428573661873769572908595128382388111779927665490237037556058330198370386539025998648283726851714982218322642239977676937076660894036496067372401463576886602798643956816359864127888356170269451742390102901241288102300334191604566250526398919980452296296286822247428393860971493547667793433188417407222234544329881675218412168359027288615443405899191459656465034338838320842474937162653274523756986207288491229443866140817593119777440972303494288731865571759344873582465534436501652377416506512975486329065821706963650278270388003820329277927951597119953114876552344193870253241104851984260861318212635557103031731298972338141063704778166040953593738645929157493977793365208463569774366502171607202360617492368760364735636095748445006748801595014148999478720187142812082164560507822370357297151159141608220985268777862585454565905468922285737976638427197542302052126306599272094862860566704337345252183852752560858874787838785102763794737016923897754378019482384663141416728968924401793133755058839657994603708507302587113803533809103904987853689474114627861628490154856027102464368224788328011644022227713183772904232434000950859371396317769475837018347735423570458379352524475757570634417077021314142144373893841523776524096881514020244285527083422960849307729170648856083263076332202376610274222032438071659166157429520212679069535385872559872495275268509534964873853374432903594705968170598203792728689773502973532465349888324892747047508025044656693115100446622604626334776688594421607761235938542877745298985323417700025291668986207965312474747826461814181775939904406372143598227147604484290112090581379041586026603055525637044406091720079031985849991775868010506667230132509215544649000288900799173063972084774006937546134191228935598049093135875815493785256034660296048794571400678464160906999014924903463578926349387392530380457555630163841521803056525776856516711121698683199222186260721824965858726657335706811368066445776674129663193775374528729624853009754175003545502465793324006572873741240164539799593653139836729920435125746050455524953665921858439727671679024312533116123077903562608655074650705352918277039688039242222324355041796288577936624900094349062971615500563193326560408116698634513004914866682490660012279965687866202371214717895385739598105027912611100739771267334992142018121364886846812576048400861359949462508354468302871913450332963498696686269613567821924243000091460452469855766438051697379781488311186270963539294586889186323228721507975479231605045493856040629572508716381641300587077596973776282629489919660034170448295259985209941680740282133059836378684985507417138305721627392800322957472546412074774255123105660616638694333606381919007380605228633852161871205540852790195046925400866853761491487433667556022505183411074563743427250280019012159483823974668125041664712707846709816728831373297861305226015065290308845141490782832924673354001015904308927239995340242398625040007163478983629087671044464322874388924031405488663758367776669713757965520784620915112571287647379554511486177322164135247977015715926994795784526415920203215655804358332677961006875305337349630718230503104612803368899871799088572321399151932085723442750300793075384576432728312422026912904435052128082981071917928277865785323720331109483047054341322948122697652593888321617323837631042690310419204344220525480314214620910159183632806840846951551266301818676890600468586870977288914403938665817832967243240681541907731267242868261783843489979077572159681828553765457985463500772941328169169344700206820602917967129151858213585646062124099458400461252014207501491177007019954192750612631281510570959840869254356959222738803355872022512887164602795513778543756047504307589902326702264160933858892931290663029486167363905246706646355828351575375147481732999709320342258855420501010041996332720983293257100723579693727151975897604252797568386997270403158376796299190970445637143036274420035173401384654707290654486564228657145489556358722964017148285065385163843108935162132205837010377873065482742186294986734464599682891666218366330558060752876812421270575825459151106514556541110099939542099913545025033533291697225946965441247841395727729761459014010877318855252984115032452353995816369116692048282374915331095140414539625913772912244442947064503891091913315731660573630044028844280212517210865044471002318838819486128660217168738863028994486017061728336951769888773819488399049799782227024926693252596866277129941087052466763384646707121082236545633721153934248486082510153326826414316179932997706602909018608825848263019005695061617433713987708539234200301943880713613663707090035299990599809591113397515809424996018496018499889690878794640700676549373411588337060716758166719209194548923892211052435457532498126111215188445989771094920774581171924094472680463164911670025825808743345566747316030588340334783997630794796517202583063582608897925733072458093068907043566501825738853090818779511060878325576089876850770828175625934356223765729480716951854909308754914522155894539232353217337933834334634977741009806642939448692364027805735412616377967067066261817351676751253663432299613029952147560405178569167383128365866979224775947148269845345373429936508629076078299654274693949744131885750526908933751589064919504154051542442961145040981944600044539916754273330165308111516835693148973983187367570580762107760463570847228571689012083245842765144545915699723038403091716210552412440424659878820605153289429346023159567325031978218078977344740554351604469682631552953837593754951274477158283018929542518808050436691182177611319621782433138871518012199170667434206752871622066251675548965570248963762090868864608809896736199052885923555741415569505702311388094806402392649811443630100160179706708201773192448803224510830385334163725383825439600219736176739360070789024654876399964777581235636711501478299936064806013995742375735545499726336450390408861592273626391107156908034588263016077612897829507517521980769624506903153715689260356545477807948507772639846500046465838661261001125938478862843664219531334343815997986515141042269940354209534468817197547620891075749513399379793333436510893695799787442146861158284360906555157870709340764844334983035444637521564165731866985293965806269388179373314364704152497974196653976860091219152461689185190245266846077791423237062324335507688869303792830429173727433101639058622164459547357833474926114195283309178980120532419702888916744445581326362028901628217370859484247628122066088327604867544345605495134793324895002861756802993409053247991854740802926023603925477405438587584466555301267345251882258604783546660053132117695688111049798309111745351832644180957890013935931127696502112010691511049095945397100020768155141696662634368119046433507114830449715015667525452236487016940508263225549306409992752177274246195765814850847830306693673930177611406407737993323845133792777484238594875900383966863471859667179936473437659943638715048452636184399710439635741473654710580880412438687891436988753351893938976827528582569365019048098605759086234430141544416811199964220652514277647990252777250747261333269629129971238581819816776793606533061017053787456278245575538511625055957842230753702207428597449010759880475881970832379746470567700981083171167060401781351048807068180006685867276398909475273457194061704030549757938129632213607367540721939949805325912987648432479133020548344787016818773405333056588642408524499539776352103008035103247587165046782909758279166825730427943563705651962299040898621176492088687472543496190713372048409250334203381097243791453232474813082540778606647958651393109134202359515727697797679543757313024437707683598334976376296419276506623099274801956277624765297053568597988271275937739951117210588115302455302338550129979101328848415554273774160486889843257412072584787303159297157761912522824301325353782508582468821414566694870322634840488787940160612114158451925788478497718977818412586862389520839976892733339570958804572461830904612054648909799619114964751192733191739903483348540259687070032484023884476680944653976165732340234319794593062292397580702130429916353527191000905512614539115494607089175969598074007497026905436473257146842485487790687909260206790254734594517779925944284038854227249607630165055136402765330024802642118679996160926138132838438644375244654455609843360736827194524044502237603862287344853409399760101686296403178352950341583082852811870237045660381608108372566818811324999103162291615630219002125458090470608827693751551481800815317316715157233861383735183644640247814332363969721234497307865600143550647975453809015433980215099741443306603999237007144776716653548117731929112163076660609358648217397780924738056263124902016239741053772720802380145705255180033944891821019893155122480083496998613959531501536540508421142291961402244198545373701740801399510061923357119671708966507263147492538079975537892967073260429055765247193431054863478493629359104310832456549420974829399853516787201434389791798104083800193224283504062281745615632486358619998288111461709651703073531201173961709242563098435121279935336824923420765709058255600079566857515817924269320664927879911982625553790080931099485725879172151375934878885691039423714551114313467382084753496412287001643755422004225728290023100792672012264261989813980644543475822261944368461858005186054301943069539155308325657661777519201383084900438423639144435016668290420869880720774861735299981448840171129954441326652951385697071963444201387110182680628691411505664951844706307022123910854340679991727500360517713378070605306023713218389269126467587124705381707425101896724809441999032549787972232087622783932452196791546727544760277503829103907615839551506116266366711618473354398664675602075154872934162238038576468626118144577075580815738613957507237155424289804878999982469861007888874571617515245455569261085509195336360403560629098185533405520124550480414233741580036515577610551268404857759560820514447315321796985850723094787214492694997546425434760799928734833150789279812817126395396024036796086109134996273689759377907417497607476109886419640190772094724670241966242129055310265091273187817972209345001282065649600930831004629095235188400942994177828217944605772537780746601246735356779582098533843076940192588910450114761767115277802281437980859205658438426011511729624874193805226303375758367529512568380855403585572790699040253509013999921053175252871129939006236790214074228479350692856170223009896056178792109528705332524192693021592986167074673979520865111022534710525102888729333347737633235459656896082691315150977476201004806942094325534033236311506997806378914136167486529922564327096014320048671345771327025763379456584878572781298049205350107614334972009641253111929747786857865866044438490685158265207904404029453915502859940988587961015312139524377657945929045766716156451691380976714668967266895720069592124950651809304929364414854516728296628688116309545820652468798825617503287941422816756568174983667316852649059811521681665303392380606473827672269990379976369245689628708163399352662882500591027996425798900793741452200345528308419807459148082853650148073038508642984739751529040754070851634913312454509897987128122464036455483729572463007315745422859564285622291549573822655165736804812524106931177310486342410236527989450717350882871280146709059129615347624053767727971719967862297823408128566496912216759589531735463125807523002932518834212147886935223106694872401425898493696233563703309037335388559594775792915670514052057179102503466439412729842756822530794472474045677234551471444195352707187396925366013584796970619489144193346029296844056222782537633693114757510268194446763145621880081992920083348966884491708528290719541861206801946885984579929911825450853701108499996387685576109443546058694357395309514964704378712159162629065545983510632127658509626062992296680569539697363631568504195147650842740750621315756411191193677851681637140485586433492733057085224047574488749378342870818004741491022529004282331308778601732535600720435607218193137953966154124885272924133815542531407616538433623999533003326242636226911272767018289987977722602082629428917464451111771093715848877063849284397934335921297858628701270965583410756288086280564156273895326318350626350714699979732618315096526181802440775223131200235018913014760817164879929249559965233939536192053635141495688960665856183261821749381830672471740275680893049436977825357064064899575949688666367178202617361473585057493972785523057449092467428504931496376804038561540562362335355608082257155600173699023309429724908324789472208003093615404585377737625636818124339852422335411271024658462159395712829303748172845135224657813945529938901392955758641859970414187353211883138185570228914682496421009149145115983533796358451501469247832860070003255544393645613001366697169925277651533529127642773479070772076013338626239921028404964816448797183011773493188300041789191512040830503375977494401677188591952535600029083779395385937101501188822940970626074819055917234686233769432782169350495303680630369666807693085651952843450889774487704777247758438328925304625386937352251431822906711238241008906296071198843263960679213413025387068630228841276345875320551344014674819857701340498853826880217990007578199272516097895709666025126428744605976782103686059675609741164296523014107587943807360908667287312528173494009298606566666514666387349485939187023316411182737319519910903811468406999981114674290091678361629401873983523423903187409784658602860276644625668280782129477917698349898607990799285479806092022630562660293346709910904404238099335756420922857116240278637272261244145215421467330815402430860084396032742350587849334412213532871027036874367566644210530116370784048330088581068865460460680766478363656587394282752548488385772601028729094832363237247416112774727671309643441575765210280997228451752040270698182011391493369901708499295110514432524890891192613080433337818914469473253020335580488964275378334283319891291173905026978583087708284088437827540537711833684453654195614729200500907076094842151857673342521336457475768966094233039941353935205581272188105986148600854244344069501351755059501637473734470547348954569383324372352802508354200317844844572623922490870311797558309094618064383843196962392376607254201840025624668100870402906240020599976043951082246191206561911757079667875062861665904492361531583539877114160968199330687018933569446510209550388127553926761993891073025144187969904637100327967583853523156492954233696400863045352939264505422020140883507596269349716679223438162497002102147680841861034023469944434231745793665887769247847231669129668043992403873256092288714948088627311608984727842949020047240985179886932171796883215694987824930282074862885840553655469201443640092421263840825145328252424770142551245456532742474243813404206274133942139102650491662488471688859745413653571381923453251980004352943790660088010028145284086759130343994098242712104843619092232320213890394349678085206820117752422347413005008923692878309579800527775175361422812900137840874718293873206691466227532546572966522594706044427035553530146645807539860088036444760364670066202572051426221018012410735536384752351530444509092249204957670967825212586794746581635520664297529913218412613069526280608431440499968127195434693407239451759194797009779127760253798773432711393211562475408063480511859564680645305378905306319759268421057737734339875144780612707571772046518376247605743724238384115136927667137697813168791072021069973078106927831481435641240408039676630704745349084578624720059824008170227910162673673735761134403826113440071561202050381598053017371864526322661731957228873695281435179345976353445606693422995014592318787697395717413841110122735534274069821442519304773054844431780178070375248175859295697104649436310460162247945472531686419675566371455095452845580017807507258828248399101570622856238290984399493200697922790818965971382623324580230448135031368250275910011692737566670568580686003903354017136881118948876027162426944562424396387732034491382198705953837538321526830747016227006239938825021443840201523850217291651962101801701598525828033327623848407176921713661416329286552048645042089318224788897758704314317177114694432534484512619665703826113335345642253903812635912368018984861940524405198757435035974725660029978474474278695167995671694306807114180860394541445653219960801106137830779737678731995658407795755598336428534723819880158722366042369748397253906796906660954040461074952558432628291857994094938907512784169086949907724439745202088000914002852824117644827000764783842185273975320901944796186540936470705016768127450259525922781897875495159023731716524563942797767770041578464995953969112810446660039460879276583376764412385173358326874557767751444542890938428257338043146138714541594538364226096582775224271364156604519764014313253905882327259671987297924712002216903256209303895293055016495070926963514414374233667300033727605386489875229040149881226745326500754491831797451720552238624633812751676211245540354961174779568374596678263346209906530858109795005834271642332788077503605941665516226634432829959217912608467628912011295220961308118273059490508323584090402418128454124268106467527337399207860416056640091516145269848234399360435895439074990232057074970363220610559923993768741069287312636004000552405109638713999305549513983321507791225999114056435840962831945621077487784875208893909566558278709192076978615276246808926414941892371893573428901590823924461564374316608120828469177015564212437449549581610619718840186220964946055362458276112080704183034352073866319594389140476485865460866702242779627099499653080980469479986042000009263757199974682942378080076096005878342628362746296879798953500997684004356185261815177253292301693322630708769226671101454500593352488012305270039734602941232511909625476515400235507602775078083455370274688037483225375985803466240057193763512242085950061027582555412385300233763632662625224512719055290788121231897606577196701638441714230661176264950521558814947506916996470316138815502298738538396650306032766797215211102087020320865873375438969279311510491339141933743671850317310992758320221684870809954188571550265243227697355639817501508315062090521747049890304372418881916849694918655827971880456453215183881515529793592726810154348462004022078503967683492275896043377531276262208603954227884588152089914752050227638877505521799686768995505331344357915261319109175811476633174821149114886020250322446185165349487877411822010689348517786928362788752544121029860039019486795556024554245007381259687922856518228865564812577543744099074550007646856824993609554789615548983663090513239775802811725908471107709291389330318640427058081511095782586784388821652482719721145296161796018986121014082370375881958790075240833893595014012778327410385003068472120312368215005951363696912871995589041395990410760308376842279269887120552493129281558430626958609294914223196898804573069607283828507671028260993517251986469953714959598519444378551248629497354195809246407723214060750946195252118754439469327770245611026313495409221608685220176815262210124423843230894648265303962864557546365938534656234385018671495525386948867530865817212246936877088726192298899411097048442017875800403668123773482255303712919257649613742014117589931666579829907741826382809138137847635606283923720272147762759871161927887287583894925608027486088426499497850420450299608782020149591209715413447859300855301580596473320551878723729653286689609440491722805542217581699151716140512748772084807137235434392650729737970038235385373671200495330779885596830202673462705533292783987414711596420522370167152865019904207041983138563194679102052007478165152425475110864681749694894794027392539318536950033362527715122011199006854802552429880129726781732063238175898623152584153643141328772649820831322239484811786343817636912967126255473661371489244643759181626879742836442375705534948080908995668500196359248580043740719523625004425014865537159051831312938784571423065597403698008267931801870111018105120834348794994573688224231862490745610892155960618105189706409202936093863068289838063450960617291832567358906293687020892962376622346938877002610063071023819368193248893167336043404768579672202538446889776440294537528181851291303962399247037110459578091303957927880859296658287015892570282329277219401144133158782176921039286100792006202549482633998942687740124955270779457685739422245058945624607516966354421083496594079845169584353553233340568662816295608762880064569601350299077412643297355430382517615098318887063553442106624012066586443241789777625564302686401147145027473279596022190265902752815399679203480467711110952197681243315916095540722142437717264807420735130162214202892180517618152414771982778495605204210840810456672472979733908725479684613135168415781002790948653631497408448436108132598083986645740260578873430980295080044898106980539645617179106312152486860556307746042878990303714705077166580984318258781495843580804834195047713018242263977308418825143982414010623412281078154852775513955440287934722191144485869135602116785680521041194877389406671399808401084718588736770898099595323394660625376745983975378121303432440469938457076755554762749564912803300828700367383984113371417850792954241495873261492228509207413051377788353963578662884909809859507622600723672672668551061533620694470657392452437219968602529202635585403546076124474192595034326900809879905967384767751021712898163196652846810554908561389848955809632762035768036310920052122819946214117702849291839424303033609250693309148319806733517881376255746097032814037623983864252062293421751132331111872086041947166686611505722819608756680779533750698345399112721776349889633546825797816466542516287144250658571431639119752195408292236690872993612714141113323993407434496690241546197118408405734684456106286276644692212252649641461674617935702129602971592572900392250963290807772122619211021689530271644698862778564196031198204252046081847904381287250479167430543680425004644758707451382689580138317713838617723227502239653231505933666817725603827565153339019225023633934185147349773795364185982590873037108891708456946106018670444936905179251231256255671024376866878335317762561420561293114252433241444482097285510799507625109836993989766618756532322585862408948075960784489588154590507550631460059086125960680603243076014498899957751342455047529493946949398754513504641489548967829393550399561943341163363580030443636888667280102087960974571315900039170259825569058149208716811579184822233349132403005684289504151362981727859257025387115983627630032017891812940084737801095875183882344510371674876172874793644204859346937750326674909251497270593205246516604667254555061217973790450644249789229338246065277433867826921825131108186724381739818580205033869494403708232318708354925511035178538995990792245330014651444092373994144533597873849923739024979452451507526305668746590305680204519999828019415713334195009179616324993039584347580428238751510316165570959742845150996409163818055638600908028249137901011382721881166245328610492587659241774916930575448274605312657246705477027885550630773768093195429254135861921818931216822520184600094426147674472935568736068903662589710817051466332744986732416857430817875767995328720922214777769955114844059629904831792137947412954452471063960949713932198957331516685208163350031229709708086012686057250650984700785823736788066328272920115110090719671761856074700691108258104038039439127605217872372972236821661572443259844922901851648629580810809662244254781503613161637766437381887281143303236773865899170560891818532296378352957016711600279818741115246730847816663299412819121769462949514555456666702236095279959215847320601050607544154391933233992072847138846693114357878205777859281581679886198511169206073663730598225926498128596553846577027353568855516220008933067914212490705659581996492968038039438446598250697453803338517364779667254052848848130984001796173845398007892660135474638564979905844330184197949527980221539193287366087820635222219162069629327053086030749233892856695987526770169244818428996506611706134389621413693442595678299731047730485372300831167756145242322038889141119556846796563444997071599817755004227957728866764955797915942652885135412961405412592282659437275868290777138999365304912718593186129955595831887764423284348085256347914515603374031889485596902951457574357740896280114102664989364414005787784114765064268648766955285725467774868205260945098515774553814421664091928791267915167222958888835961071658343207665475542671720786991592350894657139190349983307374185699817901162964436180958430617356253351367144118997767847541725573942529411915899197065892109390982194552753050962493428018076175856122815792213153804734328060821234194589902374351137551632040101777160217152337733553591190516302944869071014749660193381880205738098720441815706726338183380883043519876565790341947038156747684660857290275364094753854560916581539497136477550768152631467574758556962180028270788148306364212396216503555321178277442815286236253581911409705489067863056364652115918639594720712434257451547259396007580436292314694110688368388069721057528911500500142882366736573279294322723834989041082178461523854948866180691029030795106467627449048116294006043488900113388652283988772902039334044970772831379439396443261927022519643432540783248010525035456619317789340053921569142731945763270657103381165836145992566937959055659869474424504294918167421030102229892162867523717555899526311665162125664038417938780053077664247721665357864240568593358566309972163641682036729794564714706555635311824738464943635935874715011366083531268670136956075602620395636589131867689452771906280209906493104698676798362578457422437001932585030931511210393358950287802564262940481786308850582811591497470456473735705386124773807206065294285432508655716053137600949371902151332989806688016855024751598585971604704155726905102710808933675623532384252007642148972842824845912622552968610589577787272551520304933742476200284274983824007009233559438638143171858108232666975000694735076411301800769072920018141815924583884027988933302462329817075273205527081328351963763738073090687502768191514263269132006643327032192119212181460988245361058721632424348148632543384615338473473808456688510764147289076799776127714829309939807231402581069183225003877641335095857628562582884742607535859700646470616628675950150315782045805940448201627385730511344695684904670496855384682559221791696645197739937658411520589729433997940886767975211476988165613691935750609964413447667566544258461383177940860144416572239283801963245261353739058042386827525091399628913706739073938134515775078340852632457755363122707381416338430822964732376723988775003016995009770020816400316564484075376555272413589956665124678905724360223748348557399923413942834570744433249376307365145598436858564073594540232694271703059099398612613927510763520086582311499251768207152521425453693991499567561819644991729977074604982117822014246539164412605834914758355332068094971075979759131689348165553401863099230447268489863561804881419800230368390311741351651021319544222151452982650094827114513506432634423444421443165501281618879639811549747072394937501861859425317801227956216562622635719053403267616885728601090047584737951033351255488327757726585915303857020352577213966115857800238344793633440790363879706046519978167757320157701463917367291426657877013023578666908991349455441983739598897340221748689969366390443215982904313063548269472988570816370095145572900912681498929442544715435374945578890480336604142008620012166744294532422517889257510072468513138891595637550799094074687838310355075951233453256580464083128858022517315987478911066331464176364287597329870668826511047958756643044464622100443612910690482537561729494020953032611110134243813499044181383125547801833408945610260791096349600240918972859847480477521244868407128638355545624228559029240752344046342436907777895090125443578329849555667858652713327775014857394647973104743785836140747176731259421927144611471006015996263412040082052765510875311254953847457417679728797549565163407718260218215045957980411415325191466633501681633235402553269251107465520132155392378206924434178145882085874996489135788393840096930923606380381734363842286130883213873722611646190315356673477536254726372969656999077950660652979033844671254198360240874541435809492173854575290177159021809405876667869846236776370843849205353517163517128736478440399398809034243352713795501220345712452001028938761300463949824822962203145428675376305355011754272781493702027102599047172415959749351438532326725053875671004328395633639561076727153482481162743821102827687762056630600148753227205388680688719540166473736025937569586433951759232519786468031181270895724491905061611647053453248247030787423580791161083868639012743181094067018610360891341536660050981498863093021572274494379310390688892941181154119172651569326385621497459311002256369991169121169963709876131565765943411543544752841082577843491901202003816989491829612609955262376683382662277561351075377404188213416302686541775510961977819876571582779012041380188729324548695617219100865582571297481590804810650779917752597658464393590418809572964496239580815086236691989703880111454467543593910009436509600719889060660241069791201180754650787446793468538402281687083303362881015461721925188017166461712618211263632720495324525093260141021234662453032435141972755542192739998027138405179196855940030664123924307878750148227894755602255722135816144546298667059797826291201835110047920018983312021904639308293805740346122326009364747596139507398935221725380370441829467258636859748323182223939939669689153176178161520745188524489521757504371909073365369958695690769250768901706156560019383876209714713884999732389574428990346145902044828002163033524899855835822387190325485846099558273875428920613301528251986111504701300130665142369343578750136048407345853231979456764724611716731897729517408118437960688479344472565788060729518503724146883769770568928584637286066185434145935555651066183311884506112611447770127755885637869401091474559561813521630330273464189616967536299176744098044311327504569088045644282745394755173227141755747156244352204621190918616351819570820639916893148493956754770927017903399480596693199728016605723407534263787985015131861692894558267034363368324379311950167824043785542003673884867402685879295689687418788226532707881723530730439623473610001354803069560467284280943403287013065286782035358233857983470876090573028410927310086962577857820911737450412380792518884819362837190018620889165150236571735901503948204389118880041231719257573996786965445702921606256188496000001707717532310855330531817142567566642562827070561578172814655955815298183005092409853510091127321422218502587322955835265353174886514946379534701658341012305494690902337100909101359083681806325543713351162705418354404238783513765843044700715994251129552365168603034590029089546275277168258769592828139896411571119664690095137133765696566231042073433704828763297156513812905406766014961863969373331295604323036660630454772870341784464268941324967827290261531132248772478879723279075805098397110446151315766806240280589501101574306218992206858533529113876284707337282273632603562490254056622584472767665476366558913396927396876376600805674502743486498377944302366137498720820041652834062104246148745364520257213840892619131174811435779181188812810115891090125773098707188515393554080301374294710263978852135995977276702003988916877948777987268450770818862617112881443171002883583485371273915399140775796995862512416557552474941525069492475429847163916837271163707805174557901234058070682900713685253432472835440614018321099183291683710867202303180534660641742741766625512635412131940366402329622964536403705392764477194937684690346305170135705776785705881945436305109116645333546297230882369671784200657455628059383774936801629575858025177257844439677108774621276129050952892311076479746467072436396619440220176759659136166442149509303564289898611941817232128412919506204821145677164015877731866839357521867011977046870863802818606773872855847644210772708527126500849409362029587181057433369877385200747441989883421031968717218033352930469185233652553084705406546327911670492531172520164504494195118802406952769123562586880700382502587843402594225400651473626385871815226212923413867426098919151289025056112067741318867113602220757920085035363099592444883180040905912081673391084416912402902463467738242908140241013128873842084072346084318223427283447291867075921561449639535725514804161028437542307138719684915425666585296275513225603430818122323790936313785734193604271811235731337508647415785297957414602972836858919912729821660096193331567708983328064766685159549365060476303975965197559498304354257759514002428490266097806525596993432544577424753786300533721472592243783088001004718632038383074300615142259195613638914122751680752382985766233728040453493021388008429765886186802472486741188153473682075931903372552148659579215117603001159729742693544033139353755191270108474564277063857940629712908470875626350392029812023990895063586190776448635856638681420876208063181163461147279232560950122402249412823219650693031907007977879198491340772816552895011237982559283921022121538987988878500381755224784853076970688724862213046339828930900889549840123548981033898305152384332720316784062552130587686565079928516622331837008943297316645949898827561591458920959892747621065929920620547748110321189437903513671035891541372901442047559503706899862484829662882949149259247163531546505260428211687657886643913497433626164042601455240650362073392517355153809384846668608328954071006962636205611904638686334408157172031670946036550988795546523926030015170963822227927814708226094698366879018084176575138162260851120779460449142205974778362908411576909383330170769794432532727415616004770574388024806266710104245663735645928690312990516305027133957166936524965565936173102961088340001792297174633814099454356277828362576616342345882238040231284280917135991737809053447108642914531882187003278077901886373748664461346358172300281278041466213028265104897632141706862547807813899985368012078836091650210922629383285563651015468324915035888970382301639974043230205298536058718609280294416008086961968134602377775948801468274023588008368289863302523725726716259829792183706036301467940768990188473487373194828640400579772205035046157540429822292835462565029428370087003839799205379495719001086109601640650632334253436008034317163017627403114637666072519325734864981313373694025048539044622685770640471823874636809787276813842880747746553908451744927033501795306277980830636030051246992224975277782606631881450994225816390184237056186611869257054335298893845804073954866574955382260874021355584251697283583554422732709265132221046210196201048460892405087102254561392694132646425245241038224235698068597802876280896499737229161619761946455758658256862788912035536845828772477136794655217492290681616624963712532855691047476538662342855693061186361071860152536419735324405187193441790675428223352486144716908903522301150078186346726741754845718846469979402730224001519765213983508847701816826217352741560979475376765118900119081628881630659712179980859251725293006892919646598520833837774122142255553561664552591464626039214227905398390725430430036285989615976349922524243305633440554185639997721561167254474406787386919442342545341365978281112094466821849606934867905116737840191598391934192174437438291289616841132977925170791362318333582532779225091605781706110314104930684562473443399557984625659861918359451323672716914159216330304811068884975322598528998562233202354956368037012044310585538091172423565845764901881756985177008143395050957481220804467354120589627123812364172494294631933850154110524931333458223929869019702789943220067769279723576267542964454322489021379264080519456131698762292701167681136980343300741315334630561177456996503910764094001735274082517983007145870129506655192268086767918343775285774373241873739027121768472264110766534373916593530204622272961410099903440216602313032927794290600702257343637790172747366247159243273180253926035443875190159108672254113033544586262578885961608924943356415147188462663390863022552218002763733028352100315615119732127114012374202492319350044663201834248367804735200128038683290154505678879363690887186266874644433675746003388558684912396294712772534366192657647433371158121124207746770643376164814016066682557014248827924252071919363151444022249496440214782845167984536224914695403532745553135016275456118417666373168201923507428390446862865300344802325012428570633030656367068085881294334274826280678165033330403633220468399474896323061639541410332567299425648702684749879864099896297777760806695208939828689621043487301445695511737988016903834839503256811967141209924977578808576815728606983660627291418225231685080537173424927515628981734666547278197791886798740347898095628544938044309961992773651411550745230252972513493154081704829260998926035960412638869773650286386759997906126373195171166682045614612470866041157311373840017320502554640514956500775495978289841243080441369900615203984952031628454071025591618556373839446960922132968755248370885510675937449598568961311331191999647426374937180677996610974346060877511027588955611123812252522722532792180157949558452736818703171454409831092979586166679037119953711465781121028582655568600929331922511323682337994943100325380223218142640865473644181905717076588319169795037793982592362812861046204453171707989418254885182826091068987937450897646130093392761281530708062787664180895765618546600165375699843508823531709291285407358899076472723622388802152672756546750796266194613009872854878785839030622282275140832596268806352201874423884968585704233768775244822716835449748400031210532642027997302405757278052335307335905844805349857839054973621037169588539122303557201793113492679877921270192902356058999255064143688190866813494405223864286661513258869166961757317640043093900486591412545191364633010456611517709373143614273033126211482450500407911754822799184785417782994669059596958373152509346627120334722552530122477679744550676397352568026315384674299668236850615465268379085391174243904018468035891369830850299086645312838678901998746616635524138310681474590696045646060876545794031071917345408351078142987898211593906842399768092465155236957847611880336366856656163133416536040982732176173612321554829348299081283716732971328973633907000657308231596404891323490817776146275697505480138343665847999774043286556891900425086056514830907240894004180931168939546832398049676483071571291106451376831992412272994973154455126833917317398287344198925565032878834864742462913959329778132942604098782808387885607479895900510140029156013327587578383903232666782202704374751260771410604091742166151973113845384718474701327069153761399946151531976268746258331653423201374051659336321808456614187738652427616667730683607517291166360901518870486027885343287424074328105759646295464929591083277401954715302803013199455992983609432718218258231404426050958972519505035615326960021581266212873819932902034281164604013680091130857794878951022224268461693928852367551210891165844307378196501992938892203749078247213711570438928084201074717002994110359389319591822224217673600540650963091028090495931199286174873632560208375634971371336611785521687076543182643675445567598853434514042276230530646480925313253275106043056419210346430361331173286656732604170083940384884863240877805540484761049724580001720688794251786384880446360714660475857710609582066904064629371279294281108215265775671154936540424496216892625425360038447266848361187161447572757504762209448590661835003816211813236121311478573736937308722046746993101819975007050958504554805520686234517617125689970732377336208955392971712845387701806670638546344689452254072527041159578749224955545272399490848449020616564821275167927589466854756882119171188463593488051454040918536298345185288980977139946045540163486031838951449723706446659168725361827410596811872244296986356104126239286661770254171429583479343692982933457412957364085375284206676339379339791917106657128314107439820447471346780525538645269286875240382466543457019669115381856208403609519199701361371502835034359665569349572989393716802113183664526870419226681424896641139449816366103430418509716770663631891291468744558826484457136621228798532724950692538117128038534308921834537345138196324807943649377462200524275731683224519650218808958038386759948110915919993740354501410830412362864304984774975605134534511567770006976719144824420859945396624114689356857903425894401292121197644369387269522561941246609984905916065357310386289568143243384272041345030166211245013880079808290594996023633543264952443576880704157988412672127054688741417100276517312127287351790726573851246402559401955949602657289291172520885143754979255350494225531278737009143503025840790159255614404953603477640043306042979105397247877932012584539795000150132589185059694689279881248058053747477851582962480805587706054569009761481508264342470554121319015784881426164963448598666149008006812020428692552531600118100098812832700722495753859681056131833768983753514957980531640776674684432186984649299396617975446800625744717208335500462223443396349279984890739760335273148252413752600875126438212386144283458932157807797814200813770989251312131786610867183514901030725969922524376500709129825651990586935171006422182428886068709504183105599356849185533032157250096770964225649146259211189215809159526731641174957284921286279505277304961931690032297074537231175961644339718747769729946986483306882281074960765291578977357997797730946141938089420905343977263017480793564197072462257903979162385478626219341644403754490008603649064967337188900759513233978971741038880002079949576532709023804454144202092729357117323497465842698843093861647161085586785640639537096448205132032966920718584020328573683567852434479182058196316694768301430421023777927203680922293349266262415709498753896745819632465533945192801008903266864567800311770944477109477052852576322334125802747247725635481957613272853085780652323350600016439380771229201377330130924871670420748074776927492081194583036502837058134452747362096594986267783842140636980579924785465059316897263766467386052455011900875511328276389883239532947234294018277318627445183577367839646717359772543923130942886415329437791387635741773672484929892271740794891789801809626555150100371047627594073915750490596329972711970260798176200952768387516001829607543219961810812208715670569277318155976901439148735459355882420707920034665084588039396593944327280750424966175172029384469338946244111341074524907974586264990504849561720718289932866410336333293550927197943252050464608344044046275608758230529534050897195450478976357005204075059386522533388739295310050245136837998964760843942516400934243597724036334809349555952531435991832637351579596116966444749143757153380107340359155841787179261492360544427502100537043448156048796576487825429408262686153706712844290204454181601289331225073510603619438246275430241215022252206179039311467325685437049273081878428371038384647321218172842441078707247504495427856326752234188288855822704417728523413068305190923123692459883927628231918229437085841745945835112038184250952578566048148853930291766356975782871398477047622355516988436968991885927778490975429677483693481678560832536839875269309600709349887385375216430725578184873831775093091902558528120277787370256753363528828572612028834981512031818559415745682391662977951302390606164971237724520343525095741931277372175708469388245385235622204482439673791438063770261450259268677305624397515156460125420429206402144052153254398329935960196922672035914990178245124258907229043697406306941489490637407314500095219618398063843975589226734553691823767748000574228596932040206254743304885881257729505774521236098020651098797048938889602973480646611877579856915489333561202961371530636445096348304402246644867658191347586619335919532618999115911876477101826930587004751911618833480577300324782228757605988624248058323353260130923247059852871296731397626456702777541967367299910148266379793939841131258815093908217889819931504897265168643142189475979717296745893273302213303349105559629127419865684939403168410550972660019992337524973440257725991264926408645714631180811056762028772559474088220530812569273429610136964542537123066967396941148893827710661797173828097374981709237938924408882570361414144185094015156513776856133256242008126609103728788279858958494292638261079820170579778033585175499137606203295004527363306711746888817335510817194467020705549155032929170530948381741598238724311518954216120654790723014746327237344889581590005183251544269365017769484545367573842304195590618359340499338275509833503142430582392857391981414359860417178889281614239608974607166046099974218379293484548775740431014580436205732155799990171475605214225453527024865456370660006813771547241201075967140082649888517764814415621748094569600479050266119941540727017683618750085278859914575097505578242491827566672854534194194975002070057096547142020780110889248659231880423709282007440747368314429040969221835819507180493308676944972039502993882019067167759135186641819198706340813830931072503467187349248672824001024730176977020537935976578992080747382687271970192391526777561782724847531638938930163665694357971158257356437216712964105259875903528919841912359167805073363276025036090356030868525059855921617130776793868908019266991953213726921137801612553049954333201140122614087870782216424659954369967316642923403275465021230338423851495055580042412954005371067733033076781012772984177096117297251761433919345743247591160458085578320056516183918843113086379423074991593723760579767035161158411074758008766607731940834463124158958998558057610753963212276982631063762471465709621049392520681367557078053025565878305423171991615681556004572345031995659934507798206537320413359939642485034194163695241945783773493957519174090793290424517456282445459595690835319975649998584127310050972777565638524170228214710462285939156663066119416686497755108179682322134314904921168058203430141631926418134975291023758938685027059507052370668471606607825520310402771481046555594959353700126567022939083381618852433847381247419635215758921577303436835011822552821635551738106476927939256081353838179592569772834836759752711604696633387615398354437087217862154009616023146433805872838733805195262884972542008223729938003129813659463910174702041628769266745918034939687486838442031306070438602351381643269904813320844151563229487043874420541237944574756553902808372971224002043367398814414031209857280707539676458774253304503964019294350059712586183726771877590484885238740952525803431369884866740234427682455798448283347467203732263732485086765589618033057943293319471342141350128836567012569913835539915972052858832703378978300904643381538937570299763450395377739311687253310538155628652142028395700992958896794398510752749977061057809443803043578743586584998163081561869362139355192948619326098461476999329338411520311224106132607207290475270398033956258791957906650452887817345950145552004130055621324476412256342166450323193477630777345176145030994703933905447434995901187202412924472456137628684000187390084803153865282924138881190933086157455868630449181839338704136912476102490594652229187620319231741437774533640966349497061441646965769146471262705719939747731878479458637442466200088377135480553459545046844273568698344963581530061074659383717837723818579812359307339100213748325312924662155043974494588839816810612479410359408408330316381365270087326086331531548666647549543916124466769340953434814874180318273150102198032621213437451827793730244329780246541771640867074732025453321226178397444585738375905233187467620353379391263358511034352200928734439620177474843534357886327814417504943334247172036522842297539180803128357357957833018650444473247057542594742493171966367382824546701124973777758942835368048400892156863810871737881956910705959446083725675481070444513690426233201495815634113355573869098117781754386746928772369483746314441549690949360440414749784648448035884850817891450736886377118025609753974686650749902397757655358004848348672236000293881395695598820567875937533645292322249279501885453788127465751625941762595458700213047704459149224099306498413725298807934975998687283493094641389812889244117915826106214623654261915969471921517433810904898704063917036271174652448650685153041537059031389310661496143318037272084239481161293135942220612034848194255020141891431889418538714120140902200899753266583181534284930798720440525582496583970872939732515642651676635337816439091460011098658551226309848929034752221797767394493713787392864749769600434226192546464354775234190039928621086421487795771896483668180285518661097616644102208626075659835072057347198361822024247241719942310318984907522796094191353881707051563761502302286593038594748972145226111876959427978379171699864811301664965537465907223390765362994885341121579484090704360704383114098618656519823661584024767008137739902051198498937927947022095649378184155779113484932166392005243732250610773079561510096666147828838493549269886824098785551284498103407608399834924788279389356436506298226709933177523312171073153966207615372952406381577996862306807373938203864916482256941589463765037513121498760564544473025573795272254476904396108000091989141584482578822702013256401986788165455094619128514937229059112360564452004198450849742133414205588514303886765867665046697701488460711614776483085857669346419987410213732059804784577041540897128581613657757513397597918415436232189810109189203716918811608122768407513460517594754825884665191153111063180230183875248324858648080911581850519092435311117569953091826148209215358862613818810259285699804769108085587456944300443523127337895411699007330727508054185478176509984721633544511285877545965852401397052439594602053337731159608841852024359768590365555357888172799451165094896208760773453281803989688255120567813017998095215923361102382198349610732739158551206554320852176813186320920906329080767292512550682217532680188424621717817945204991468412658181588905530984874711989328822052895921466610848346777520356044163166148875936179913129186290672118487131423101589261188947745633608784026580616856016902843838679101134229021947564077765064597561228623563012461332137496984073728343666650323243891440753920328109928742477746928076673892470478154700403822044535907854052365547750589998425234903179622375853956534615096185215500548410306585805514032599153944754463340594860230594703430716941596506024797389535453355905615991530276811973150953079897822293357361745104969386024646967437065925650974172871507076859165101885912078840504018434319617335884918399018855829406906095154522545538611065294499555037211215916497897358784495857238928497444490506104699791236310686110930003422135197661934443834113218062224589982206133491226115166868662700668328835137824776199748919468035068699490534337496304325845241310292864239508321735856109425061036744908860175661399487873185984506360517523688431645619000176800415408990425676797086666578839715204990815206058509473063806423231762813457859509849526757414966997198145075909620076897483763508156387619398373886157183765211415703115630498250956388496065504551922008126795989042442759120126273377935697961681198436223454066474417755851648823957144323729742710440689870570289642017861694857314445511670577368629174756732800864892832906827521754949980390698025257201653102925238227817693224978780485127028117034859102931475010352745068951566128921580932155484436806640238411328632729178334594590201177466905398262278195702715060418426503434672447086608467778395812733227048411485136779986337629058115415273190203697691983847826987382562731056622219010297168859127259356607055601738275240884675792680845523956806044138258911404346205230746677558896153755343076358977633641651213989691716211499958463926947173211863894112885362059047914538890245168143917415835591434776939013783842732932378893814115382304959945596348685200313693581659527153094028476687206468484628292139611036572639891606456727496279227001150979845042664066697376218341009688901506031974203034265330226139250051524203141153829621921097933792241710463377240315841654038506933940105850428383841932220928118147180725849683090817249835276552988891866249955977672797203906027551841039791786972794061199288863238689998063345606586584381738186716255434091881309781845809939798926988553840631775949642483342462150204996533579751675080305409812930648238995940272008701124974232702145539529518321120098864814224651792706442486868484752504394146095835849091230782336538378277400965580809192847405731433028190470511787418916858613857096140184498178137527059800538673315153978403206741232828568103682046612732179994110349264970012898048201772054203342709603102900703104541273480725990359950549651809916501657376186384548298580118744420735051095831013499513239387114697787725629077271039533114256005859444387882359454462473226105602253547606033441176139923319065525711752291877618197289221097843334087444015242856097527603765619287865598366207464668440831546962570060040943117634895292684513004062869862570528889394280435057474324303870607021961163338306610951017318924660952288663753318999426490228907758837044834822074859745589025163341412035138343429636122387382225849698427980248450270425969318380227672483829044778309641051245829317218124994624161724667543175155811672839737499671450123066772212578208601302006677878866941192320019525855292320055022945461712553829053693169633593404652070505663216385105769821810247687812908738597552904565989345890528228173724140614252610765547448966974370570895993962573159059708745744211410237728635374817842197058954070218708292784306238590439804247649996642916984500153443372716487600070194292892644844285214204294134757039340233717549100903664418892495896398190796572994230853044133478569127515787272247197385591323978112475213184936767412042444445451786769683976728493023395338603531184285920942653613056938222434681624492038458640803721699608751655955765111817429051885652987039475222933036915036561963431263508266279581333153669346966233068226341705951455497267601996152861322358117171152095553396861675192522882251006514294740305307423777304278966823834123825393688228296142102496644328189441190634022909810506992208134991944455888720649091331245271293711427457588343976995261771056675605796899587350161623911511887532318420369200617641786923860930406536068840105028234586863297692368013957574788672995269308310834895972257615999048228064768817286929882295530774116578529091926764262870035622306982832462415486274807898733401930030528411754886255478494640802725080345183181211696184122030081803408346072833462034808295319160986234147112126873718448679244943925381494699655521201774026685335741003904471888512104069050148337723036411163882880042019529682152052584854925721886451552684129285060078617280625522489052908241977192910568563596223235367314970636927110184223304757402054714103359590726634667322656805929373101459784201665393972225329517914605732907180614244851396074172851238270278790840975757666218383021972500446858098908193943007451035783216880846359330185342303668563140859302431375748497283200870361429167516260021562000375673973485631355510678489434509614304016348609273430795685598694083536207027855097648978007279141883815420578189892395983763617862609092597772203405924753166714511177968878882599415075608589343437231938544020857693129791309111656393801735561453547213965900035805345520180963409760072719257399528480387775412973019842489356067344139003471971935410736395521764870345814427963167562858960106667884546703476958300859698694260732940027188265315618807676750028951532723611282716172964028104047553947999316053269537678246481754924911872195603669097837809928648605639353306667390237237399969176805132448141632148812199182609684722478317168860034576688437421481975025228838081613200557494207735053484585421718967031348530112133054569745759502980985308133173940401934525488599163430870845859431370413997068510610218129889961362713180430920851707642659156526400791678035086187923645228638995367507631158725522232562983455581248086983928129024412584774378339314019485067282102999247592635736168501368814379975840770280953092505973371689338379237433485001842563371301861253441236824842643712678482687615899253934967843935473109079815307758288198297858983614223002155041489260961139391295938115743646095886664726660425828146016744760530645890171553133526552677597032562478800969878481925650269162397196721218274914628370595287706208727178233155329786421640403059568115608133439240453554021913480073727089690233771897061604375621958198261620483850487496483204799470067431751740159498325305661099812250565228987152137913228651430839349648203367137463045346523615471160456042380007960585831898794298948629680768049628588062480285491335748743698578478957596700562733133317741352455583771309261185757635868521796774643147422422523110329676167748318524770047937332404009792382485217932841546722064038391838436008726957705616849783972801274200161637739177507350595761466447644396595450627598297986580771737168084062436547837854996507103902537123070042163444246806838525919590671296233978209744836660315176037051513138367989974173349796187010399304483771483787229093466215156730658119348044680620517908952805657951115311624839924682179961309545221883551772352183342257042348827142230301628782167786454059244537568269548798785887963470564677214123428976059656497935266470947460140680959316714971553849074622993836723989190597117314738528226324650913728267650819627735486940396151183860518846330296456627470801322811558151705128522652977351837699898400440900445575335634400438579736864456617278148950981272443438035272060793923217714704889654754025473459381611410802424205844404488627210369400672257767514359431361071974078410413055153827957420276268154652783081251359022326433879452793582879121856886513393840921508826613625094378801279457495423543611029872472870196592584501789850917118406675143212262666156786468022674122067469841618611053190443850174532622042630516135221182927317163177301524122333062182497989332067691193777613721788251899074482734716303606284682730748004982209836989576480233619696064538555196247818560475881248483802236019317515359652012787000185203244770062806880181561175486452983236717047712904899522196306511369310039925677296097838638749460831087147357019152162402573819654555466015303542477193465571362392901777054659489360830342950530340225540923389239227653860234164921870159368560148601720040096977491296161866465917130562877798848412081943023499242485636901658430171526900517978962804602749002698962476939436269239404309866341390927865260388954099559648766801055679732807670647300388770332345808329325294170033620190206568866701295648664996760232823485091993325003204163901977214186800430627524480366313842707752210574690705885379777804313642289129696363670642095171745804430713059801802961007046509509327185544390575367967898232295443140430595423099358452972837925445973508363949191575938215133830167568318388017491561442960924191082146742134086191642361365815281231292486408888201379764239250584597961001483584584374172105500287132762745957779295466686297507494665376604063661553046328120703531050767638016177622007117134835946553235909354169444928962203694591261966311871569419104109571421617012902808809026923054667129338018580701836606357808067031348854869511788622487225351569472399415699115042966417185089365506585024100578408466189874505937094583474443254530452433205661742385475605592064630481937072803461044387508913561471959938793755312529316199288313470636617411006838421161831962349110061260347657775009940873358306984390168639724387798175052443539181007209593981818587385163530387675113527099353338241546006612374326798043202246986691302191032006952484230618799026724905227160821989122284681134626895789013743726527642109967672223749009230736430568464101740277615895876046472207341738052234588388451919114894394137145074841675403780316262157006227879662852940064544607153125095587610828188370162413288782535131801981419120849908498609218797843679093061103348037395963631350815068345129730758881953305768334838037641940878461225481671327452251249744128631870267907769006241712986818919734209890307144780804855494569315567680635784697271282466455151060163775943963754444765471300427210111339923297051794488779668966840923051033352680278131684976255371446138605045518147818473320284526429198816925832980572940011019103300961350509403249405628755366738255697232065268774835556616644294759413132106195305832932848210509304557499366921438421237055887969782912343421434457410905535693678480244337806344938353981294990781290242732970709150750984632957295128920941258172821948240399650676323327871905908303667346918936385872463773809704897211756415217282771717454007796139689690602059893375998703031215536577666495848499528880444052663483705468922009786865753604931527767218207868596686190556864089852161622191253877346170356258675764869846794581056779939159670362547103978290800260277963904104925420703769818118781278165999556435045523481192947771035074797127563971166946770572357535153953404448688336512392980266912086851147560250294805781359467825410157086076032160984738353701473017782899447889585045088679760384540058770563531370516280210199191629633497521843859052478836318663836385707939290606770503591464222188406097734211305164250314580634970143315722311465454498322444628716421740605690578577332264121939430409944477348680656733847829088835841607770439858267453893551679852405616767519809832708028903127180651952592439773206669565561651812085780397477890586474355712689130148871579850034306515538781825749492505231290895491789948136264758247489971408749865492757041215254583672095514977307939781409594261050566179614905167240921007003909680388524963707392557649088918424682884883340145570108247799433704322006787410346900154717033125428990068674028850531057426365714995534130120266211954400161644849772395940666426925812074475037321534998171147064755276514490693076846118523382921488833968734900073339748201534267981751906955376278959246626637964178640867746821364215730290949165871612831459714822332542741476066114639914786136761546756814714700012599534943679922819519504172243613803927312687760820818713680607952098384393485877859646244073342027037109724234279709989543596730344852800422886275628239498149412943848521505812398000537475091175063478437842612083501373028413424709431609853271590932963143010871095993866697078538362619118459118709565044988004291460257091454302800371925388913810022389133888576220057300548319460211601420148903411268391869941092055337512095908651776684767914004474996359128444786999232533439518883151672367109104414779503598244149567518743964696144720579014459735296371340929905093692741003616024291168331554460209935705331931472199737848903877938294879416777041378506493982520981536791631158865704467937977485256283841609370153799983691995284446847759083468644869387109546053624049891160453247375394318984310682430159359871931934900294279194346642883061127426098655316960237444225073440646655496683082354301208862945881116810379936421650234400368047506234750702007873358615515239771481901976812550717442628230486863079645435719041403438057629199332902851461449603648366206677840163529138434636018345716415783603244419556324964316400869625058130595992488646896988340139830628865136686204763356221351987052209745421809864810885134211122329647792715525082535307858632821022102873601612601218123914900989232095841522184697068054760672179500275366810872060003835738373519534857741976702580897180271601518255911358212457608675281895425988102914389554071057993772695356782353021853120002258323696440796893543006505792025423541730375312823843262557966232949607550339370502090357382328500235201181905013513146366337886286582872156810085728419834793198171795495182594899140901255806167086424292119280186241096396122917467637115714439878361316839309224121052397979029819877333988410146476573932407603720518827029199239915127121994201524191610962279136674098483149032553957716271337029483664399674706917468679877164199812617889255591813608420770346804913848543732847718636211490527337602498171381617269415858015232367398629515643219551184822167442717516681068250535463481756969011389033843988278296923978110685266259488142395085414524304533551581898171570581404618757609968474864271549740010195902235033645472164664392399460932300690739499863210928294066528405422888191668331916146667707366495507167098125491048330922371574508464917984137848285649315508471251162778702333103057200103471909508026012739262395915504497511657253341005969154997554094587887375226374270547133279143817563836934858842452603891678844574521682749840163696158272718944309048324455258087014686888461235667068044900115179854373244850798155373126839876484781565844565148865189781821795339824072400503149381266399191263632128011207867957598682578297048689887718449529269452870102224934884948532750429359325194379585517587887686417984205238256978463692738148646000399306773490905170882862803392457571866908551664901791581359817316927741317359369181261716054909738317773478733244639050619321088146682715630435324786691185032793960200869096433543453052725071306135981545667732251588991816217555965430980792176913341273424867524817843092441576889365270323078169245836163684542683537504741628790540015676479260543057766267696831750181207657508475224044853358310736141634585646863087886965067731863853498979302406130954311961094899412273400390382202565873525737113610089000194944837377526846504049829166537969366254731248301308309901298874009248401708471722444975734664306182442348711613338815470541877949230826562827625246138155533695700952497774462255937633914501585679323315279861226356051730375295195847671765830147727765546732962755806823340526232909424461615258794643237906144072148287440602241040332048209753205307990264017900730335401751717723325498185374179695899122080276715014913855999449033545194122950159091356646178357836895368137366543318115970781520476767809496979302804580214746206822208091566572400714258561036244751731361903107808638537539288894909417819026761841980816357376303384382315076444029193945164699286545879120631095937086342954184119697286818645018609837452644267957523504339206373755617832389239227949052448660590604516136238842211555987134109601492319557258225708174219481958835906867360182862477278231325430100962284179949563409456835258303147626853114569712720949602656869616017428097257501482571565786155397222160223904718992664406531345180863196632311308564255787152549322498277301862700678163527343826447211022733662429752544828259278363982152834166271094312880666341494193570568887318083189473853530084236143435702010511743274071074351365961139285061169035518067166419591211965348951461314374466638845679081729676864847494332423426295023401372757408300343674655593808024357974996098021440333682365991630667846147467760195952970066060302977097472389394692535898114221447671857046451720979376150158134268847671010743996240188323243282209370946339390038677845903481715577845626215398873242988894443148009521950922925790703488079680946828294471231406209090094367281062410083447734908311702206559462691593533707255736208499428681696188629663617907674072254047186534762855139864343551729063173406660602878596819135883410648234354220714796769523121343236027971369468394195369359274840375721460436982041419812214692934202647792057139752351789266330036049286457702542793252948498068484934988246254423712419929783513538394058184882890725002311050647574110429491133329586252591860470418123153483321681794405411587198293223210560759826004223855436035168357132163326763922034778098279393697125924073545462366024134433821722842988438219133181971041310731969747661650326774890203254486402996113417423292369392203059599639396202494840896456013016140503146594546746526621899978458233221973133826591897583232975834604690413626371970674498786259770128729216885964553075949862081838712512502812153995271661402965958115498105130194082563044320008141492288489761357776470059006470822594824028957325122899911908690696412345565868154914741084133097329412233673918062510671262602763651016090012472121319077811385568174146336773400286192158308918850839864271948671887171610536277084272363755898035546048036105739735306513695885898335136620598232621405218604044105349602257912487711791466382971873931731557383927836558492903030053994052585594257857332095536204096333262951478407267365260636201345809278631065510025263918405763277088337975290980966133684985926640232715369009599174390765787482705220388644312923743667947064831217197906724940815792795070021222433890632134436564922575867131960346169704921594970926180771848356541242788065982732147576331591464534979679039649387477758950341708974827332671627107594661449699169438410091535308886575577343244092505091953411414605374012168820683815030332134476950212740980195135022485000527542519662933373012337098660082693663864790978446693577038702766880806581407997742385153377290712776744651301826152923471281163375156887211979290175268316133149166685800303151585862118372119976481482911117410891870550752768773424954887876464344233362026376225022492565978446517700014975497379337401481741751582696265525245422437022137879833082189573775941601016488547325777301059697619811700038585789605321448801417095267098371542808785934309737105104986812265523194633279023345071867669257982357862563117988526083267054448963023376693932536057487476593567282107961650876485867027926001059536905584743567307455274013175521003602950029623369497862457663370198443819332648429716378630411248105908205077033461027798419403204003431145858198523369299125764840657484004986030658093615331632826211593303101436376677240792148718806952923171163790635229542358992535012630630025052553690217259180557160249324034500202987582290334538959287650966595741095163614275904944023070710284312854824934845433068962352423427631710018385330255268714377778663996940283297525502593822008576441956806496023851635972489766234701936756753691620284684262658866546309131373912820075801621344891376654866734826418365684270916159987804624885872892791132080548690224824116165031866133707399726958802908321206750901331283208076299075432666491353345720703154491868020012487923411510881033532857456170066638170731303417855150314496670188132106602253837120642903956748232225814749608995406145354006405393040719761341568448988168715881994023541352382671602900524994052828088157337899747308159052649165356865318478380358929008229962087353908497991660640210751279186777703583373447640092594246469335942748609751383075774172690342924556046425835271523376559276492124287444191518847164867503103735191899023437275392169054696031227250701108197395469097966015736066114558169736913430056454830071074101379286878495987173532522344885965753094427797423317384495513682130704117580911642635133467918571569575812550286424335823599351730166457435428255646967034063680673738899429838315722066737733911809950046241137918390912506021823450384326146400366656560240981405283083775029684676479080606720943497612903560275685623523131568379192672224724165016840156270873602260253210575038309207935631425591390344770149462789092933221245573980123769131429993106254568886399452156365731746255169897325711106344165049755196308246779329411404133372997283149182105225751971346507681313434211694830758516608499586495537507566114760986476324315412463235027221962295614088290486923948138347010998854547363862241088992985087876972176821404450444858770042648495291592902852379255376362057347376808545050074372041781576596308150839346772684164379382871049342984712725281790544292269750478089490271095119679430873774869453773174197792737424323381647342614377839140271684045581117572469806808838875873199172654656010727090368172504047673313879299986650519616683379175682115067902444218283872166403711733876020752403674583390055951097869497263571429328682890411455418900487791058458816224764141499595345532743146360809064011718038405096342714312723774242217201582044567795105462397618933649843896337654651479776737206463135091829398006913032511017586329144833141660850274887561296656920110646027037729970229306730764358936309123024088651051828743472495200859413396612235827608311278020580401159685532469159861340444951114674402729647367450216371868012380090026185525297561596603812637950091905583789640752925730344162978306426763254462736247596077672999909698605710194209162988992071818662849948571033332829620303853818598917550672601681378042616240641945083671600418123387692259547871173829894045866851428175490660400410724693919919518179531334352073145915341572696071436859277758549955226149521181982741580862070664848027087713829904511544585124504321509199335173056078904145828351128445400958239794652693190134176679079168546693568936921104483317753475591615864446201131470978632030622341790870142060860861732565396639212154792469232056474560847135170039844771986321145548908764095570683395008012808399735573842104478200059759996059066366603968865338556976711497658550459179371583322499303079164152482190661402069508664855407704324241005711939087384430435943197572159219413507038523093808698150161221530850749974256202634479011485627423756563284468384980670157660034591613840193190933338876305030849744835174117039894808102440349803629778588678816364902488237921826648486635903929944375978691901247165529981227060050340658440947794377882867539754586164008303947301127978013834317407691312006831326770346736903454619227886414630015012380230977863812019430308392526582638929322710090184269496350940134623753241859195022108312152916416108705388124877328038822699663923292532576975563394743610327518499783439030208626532187261692669835927639790121130557938015844212685768605003619572958612078409079310932825554026474829439010583892562646343719424435820820492408383185204911414543356849300548757443678743151748292259203819887929364771860986235857028710865811627717367283622173386612877100423780804802900639368863181965117806445604706207382719694923543561738308009389575891126851866303475262166316743577112170875189353800424379426169695176535435715350213723863583547204556144326881662370877901473808992770058356818896955997486927123474404004437144739710979071433531692460708732319072144382603104100290443954967840797299008536206311896164705109779353324921682319768819251688977478014249398663095204799300683848687067746015322295714997936861663025618387310751794703349684470425529850780034707833672186958458595873400223782780026110312505871652656335532113098314950693567834463121309990541376959146308039610383929474446239880422300174501213286174653029272749327621224700660170298272938227566263800927530507697614085204677041682138487647966616344457878856796432247457504769308091398978563525411575949665619556935895204572545809197526695621245139075610355073234114003065121075277250995080026043983497584686881215385873511480846875640072511106051915376682936549219644459617148264263634550629268047099035750930350456868764781138399548462859683937319049064997221588865053529695117448752683768356414289633636779632276783963864061114893437741132259436373237128872391848129501554064174333744214369422589811965508087357642900370339134801159511012077161424961104523722817484448084967653152829383701786220965017032814915433563218398230706261703205669980851993908645775312661438895882463793041736731293755386577897397572575918410335254637279954335775903809357043969898797626751666968910228094450111133516895132229314019688813096014450907322620754787505724535151524873924807735568312428176065706140602197900004287594121034899397093008999657148608229969715623129464988858371512398873352326970300944629111310240737399943290308402598825371090229355405473989193180126117793748252322479173602136926532122827853467421217111502167370816367203267259496142011111966943221401520167572743788416528342196857992386799452913032391986495991252449308868355638310145493701224524953417393872411950487830873338852111304654363268321238351807375884971573372874799034330821979198699953029201299976324451010761354790510070664084605676696987169325430717783899017463917633592880359192345649531447018757942603155808751017931944345427508026797875898501301861965246943890263875605262915211878656242336728273001362809563680748204860849805496059067800235898483974076187395042856851432978158418586240161446417272641578827817569399494990170546037297272621146522625241596902942809368919025106446867375875265302546365432985173362672817765343598908041316622779440737555337028182813898380706497415778962942601010878205865334991079967934574273525106002338473006341744054102243062730007187928853231877970382760418836983266069504423326047722365457582363464895167679188476016269045041234559067270597857626305437613297590834731378375206582252031223975617413507215116600186414151104484203702611525795214034871263570763874967966815942959206029771315264865346437142114532851123348140453264853104726882703600674443812441578835821739279439954703023657551804094088463923583129878762809561553164499226350164901173174320201303679248207513187794937074178199591919980284581696182339187033443619021407663617259551848577732675398022129052688852155692091698207901843680171753034682979865894427594020867186714225142181468681049188759359695251246700793990277226641568892957908856527144508975341248891646826253416890133266864695143793604724131893089706663200554999426166233290354615872497494021837443874132617152022984700622261798452949685033423748060277266395891714630464774747775375740908158296601902030906430606084632896528603134906740739778740822052335192215757501492955177037194160803394808610541991546796600388484303585365825532750470958845393852045906942283400495625791848205717975717193900085854214299491019212873513447866481517995379784232800262421520962590894119231518927271035992695312290542099007069372351874645381954614110657937037770292346388255219016165267193878175434260062745509672996397893265347323844340991402971800531735214258995209500161431275080792429791237299385895145230844428930995313654039073291511881212802001840457194372863139836630455796640808027023820132730596954513052490990642446448949786232056920129053120641912487344873412004327876869091509587783772800844416064334356841850850348511648673286713966855725511091830240616651183407565888803834583530381621856510687725083720389415423700310758120152734159176743282017867985153311230312494952152028446179270149666885111291466577312931337000334492499064176527920547365682027216207196444859527686887145842447514394329703834743162194910852115565970479159921933195244482103319886175344367763052087666126983619414722114602203911076375455140153611514926088160821775804327852989520488274554556551070875848677743273982506533536208645240553024177887831371717070828640829884789547412920340773676072067433405179975544205078403169544953906414795328224892867860156681248566425124494721218172437991676836959962059124084701701080261772934997526419591995034617733448980549597793134120651041532587978356982344773409718188322951252205610929501149572529182361681469289447777590896819385379951883685824147529579845056820051204199612631448754951576023751128615483100335304619204825002635668357559278370305663085010498032145434568680553421177563814199055133826347662894989450582503685793073749791717729801003779061834376695854668105047906732115506695850870629002231182331771925558697302411336550663162118435198112493459711044989633323625577928624546019490792108689661289053967739502161745519949949994197903336206318225326230948321394957976340843406250658392670854208755072181286386394250304819070871073705585819344479106926972463954555964851533639928557774148035824223852038855672581392054728135555725015189755939587999563278641887534404975984508267638028103939696493142302963049722348297013098098092964823491030324874234856215873186649564565452421401713950092584125863335458152858661172091368932356546825877380011053001023936747062302846978125322054781518198172227826360758639566529359381975484501806944558034168285648467210155203984181817030835311898398274742433424420353069457652220418046220153066299576566260920666856116861344844405513398289926968098978495026832739379766252887493894157060819792378059553772854244830093278483558887352328171206046584372601489525969861744248244407863159605679797296442379632999851060050196427076351119924622667891070330668768505727005108303430574884761493735150069775668778168706971105782822924936650558238895416745905963885991183394794473947979657075083792198593043846020490525419163308496134422272568662810973297734037577343646828029540988484261480159428101734473241716712216700463422559561707877560029914542487878229298613811200038645581050834268607476670771687956692246275621545636215911627569619390458001647007090892627275556296818730419084160093684842739234409700469047024396334047648176670327624248903996979873870265219518414311066321557965634122774172054787844714242410273655902545650069207453952702872917019417001880037978159436702326110102692474249488356838478578471921218028249936724274385758027196079251424813239693519934871947892819635179305954512390404878359052272733363689393811638267512765896074443261119058691901026627583380137597157770975071088557218319751964676448230268317123744143526358183518080746440140549243407580867351873123095737347605705796950899165124908308620027106327932025419679215379892351996713305287869602981625037819915040094598772004764396502666432924739519231950475850297768306877292348340691070008971730044406784691442820331851730588905601648662601696348676485220467882280412410936662908875963518626922982260081386917815889788980105078776662612726220078075363857466308654751216816121408850319960208898571828080475603024868391484324948799820830706251946713710349674424395716380798841426048472557517032179534353436154273470924603340539306654523553099077271370447266931225310823287577160125059370031805483474155200597005124480501613002905890716213345923518718704104396170320607923007624499250904070218731690000302989560560543493078173764287470148989316797693128082344687893477913714892037984715339242886118879116555139012415821443089841175107858391595894190235156295038994331589779982600455060511170194555386937424219692063508504634606646853481986400122787247648974727658186653498981335881002071349488674239609167762795839284190201160835474731036212520545483654808626356006960589749561564348836104802338519547138015497805454219262365471634615675714424657286170010913030357333270636150972458033551659825067751094257085974326995662879155778966082977693934215344674153341216492959625121817026818774577001796788934811403047809927455846611185787526755012411864873651487947349531713322245770252477140695495192246704471539316237349379436710150940417846935041892517408837933128204358434420640605612993489261375691374531711128064290081474854986471060501149809409079262882899456123603446520022932333654456187608857994356961509630717464907919327240485548883824229128425652459132784966115454716480225701905539960181420574590602476772368215265307194139876817525928749897945213938039615156164679441158679443252584038233753474907585677642026979521740448055310321664946761570475256034885250823937364849774031225762620487724262429265871331439547671816811358699521440334650173019110263808774096777743867072531249115398239266247766743335267592667920087592969483553894678130213926380628211395533486287002524669114475914262390294293729421981089075948670573418015799081296754962449398818216171722574087787799229235463592632128850990397445762979924727108587835410805801017115768845838370404205475833441635776942354060445586556452897774343372755256716120205846619894974482203831274717004386501408043853805699857893091598327575813263011098325648120822722755955191985688980410475188483927769395598512959425410492754106133322141529021765676290717925925788248494231640293672074327531100539043938102334074751997815066517636771009585737045937996690485217882553115547581932642517523888757640081852124321602397274860491481761594800396287710895764678592320974612710852804921437846393806133909020418592932380523190787727164170334232654773205356447527315328339819363615958472804885232917272688849772487964785908830492297437045500721513991360055854929643804245670134450415481962983675214983993220220715802008160903669036187517411925062529222300986195540268916704045446282127682865897972056219542256174654643046496414437371480138219279688058258305088703978452341448893326754969849637367684541354204098652743641153648509179862107606914922359215340661682138613760856778869611756077590478588071835365086997752935208352199843047609088641350914768210740717802772827495596390653662653825175854608922254036269318971377457172441321877374084087475187011922635929459368234411098420111538556213042882110916479502348174500590711031078600826388290243932522762877816719086962965373792752405465255124008819611867361427207965578607623080676195618712770319430249743505526606431308305077745265760466473330972511332672532065697229034938310566846597795981942435666331779169632700960433811816340603257939857753662770690303285712502339035567454395242933087745006316390837915866322034709137889078500576444291780848710847529589965708375791884373641641736255608817780697860536646636733702056215732401210665196700142721708765297499356220729724380369826801473168657161464276726197336664776944883816480522504775017987485855157410810424231588982743372066198310145582332742096554157001518738591953299580490241321088040772867256295954568464531301646709273423451687248105516754565580579254367885892235983431911853642487544557412097937651762690642235308256873342741261982059774948388619140259644633020193856915669377511548659672414899908724272685296743717065717888511371436529049871173800908105174682808700928114566922734974444425472224178935820933465515111598636542763543373259012840009027073892106759190062506063229136882797975493163837644824384632070427123924754648090854994782794090378611549407538381482658589049721960068401575584165389532863641329436269657901579645840495251397083572195074940602794885580079095162538991212195241137517752725158782676399942137360895960294366373060455549420581880617454370285402003922027905122118059838404895052430244816598568446340316744537628824076235297268432429028475394334618474451871486911774699886071247288524300792373476651620995378088361039242562088187722591577142487011829910232013569114291104578437850070065687818986594562734309039031741712461260945748245859059567507282690864465286381026688470591579389149422909163628780966394461775165393981528637520494844727144755455418000274160486397998176145499048263265713758455218192263400098057163209377366892181471731439594260110634564559983377740565645718676115022926467920488398160853512782999787049946166863371190673317881027551465307592767591423114327810298287892459606059165010210864271041678361495270923081892365056678680037370663952873311093151090446488430624879932368402326433469068527584686246584697106469206071090096253840997013640161139876619276702881749827191487165511302788558134530425800363246581192887363511774821833915647024840129698521878913076101198007451014258075242635628732553719059042077831968857704472235801954869080831415095408552753640305121377296330918117749103073575407544995951873390903895754351690403925128614011421796686359667283428758066492913731289541987552649231402836468006650577180457259578317603512095965418295475886366775575972758642782592559572853119701511779219603452193510897420955235351401317918483709877824618932622005402690540684442447818417955725534724423798590821310745196163766688737613007964824125647483688700236217631408497685018009459567464376678899077827199899264679271501059194758069684977308751247574919184101698243121338486793406283585593662347854521378247118708158107404330818308776577590041398969217722882658505361956342602424251723344453772174444408784191080536732185403781978866081671064014360352699053748675116936951944926231920622329763862220062260253928078203165108675460182518759298614266922999309057544827149284245301530179024491497178939128992840226978181555568292723965789992214441109756830779788477067940551275443155426129630207259025760788217985707783612463146348713484207454441697906040447379911498415341452777739182473779544792099010465286206285254403500899203131606504768762070414379179670609437537300709025855753440914504427372855083408538452483914102310976486259395968984741160049064362708081987173862812856543870878526961694348702400920554993502463072735989058221397488469118157160638267701144204522942484169147672438889234674582335967257813140944255374282059859123746639576722342151826914095082715773442191240859082167128941935508338041156960691367015170251507051534434438299132492116985148697681335833928658284218799361353684310424205626761838489469918318391840039452042888092870645943185456596891974310774496233767860899298021826982848034743254576409793373864517735489637504702521536984545678367493078393253472510726363251457917768605965775705340379838966285639733380400940085242764038475033605606190417959926199703732159906628341653363661778111983794598686324305178664802600065741891919225109047238654946161313372894347410000097184189074073533031495920718638367039874317622347144026954539324564351351665325157691010315320836831512409667435615584823122312112808635445652505161323730192220685325352694262038494028468336113028740706798803280607851142176269293937274053355115738839183352495208222411092918123217981208721320545827347842236793255199966531477701324948140230931908724536268869671632787608992371203012157826850971045149603304428837410985059563112093607524160906254102660042242785468753834241581410512560500180813451267790625133411496407186627837083294098363680578501223080458619533082626518618842972148230572776673403796589486123731404008857186461277026146625432317008806818823760729041745765166006643485735224112814670018532500456090441387580756635433512799421846722730073017717614612396556038066271045072441297612036585738917064161998387959492897837531990775668445481520780726049386877665069397702064153773759345298374485157533935072449055933400994220422652986629870739459148407818215583567956100385143674315643185830678636977937908301680941997540917116252208528901965480492950878585752809523526176229236909765119493377268104301578921972474424071987623388599326923831907630342542553369026311731545526430155139597347123938825363785211197590967492431534699867160499856255776268981629143371596504740561837604930132486447244497288051804612827778083662130376252749837009085773955097823450464647458278689659221070090663293306809134493568251757455237310693191991188596900578688785479283374967383201218372034725114015262142386976029137907366482099094490691479923549304567745820132897323557748103039442544053917247591933119847826149421923395997633661143470319565451974333683045183300044730826918137414769067407357997158632199316936628589540763356262195064698669316223229296779964955858022792524536028897346360783452258391476215111326543449106442134403146021112400641193457657533654634092970871659049996239612625218984346511725422193887033563041354108407158743449033410933786998700377471570653417225796885320890338173425726520030024854273382475706581538977747781896876541963469056775609168526905946222921779372931998523558507250814516067218244309904337568364322773404491330380321419325283579237316523239092328956307131410310719178367972208908688810468339270906034891241518154344394510649125170585364179669299050507183371647898452868954525250281090747166598593889456023984432928416731863886887794585785713714802824759642381146365472080418962545630836216389164328564847298277188923209423086304544390918812496424551715522947487012021423305063737631316744884203564799725953280238632753594573205976278690642327303508511426531531874656953950336604181916112104719423105880452652131665811560493659899825529981209040709379038318224980956991868165663235318231694313808128594062382466269196888515403909594936637265229988521142312604396925316167884853394755532289644692329060859395733676331291077464906884113659303813360570336627031874293604626760420622749128850349865985852983300977121499969186080419215127977130764216409876191719656369193650240481323227270924596428578348307957350259543827532079359853342563413386984970133858794292202949585804526402991763241390231699491107834717226929379458823296559704688895786556514794282944461034907131122942908360022915467299356824759001169441573125206080864709759219293297029771978324886751512448227666123569007104369107092035104240426824450747471744483660792812785776735034981962438587661154854430900462494810523240943380919320074904366431249424187514566826567860208905716872962488438332788890475996348326490756698425436509477614821080126455265199445232397163414992370413272188697421590234489429673522296107017525703906439151196783295404512649129081500240479597928269514426916235846619004018424174865583596842516508583091060442994189064691774826239573639860571862378148940259309219379545758028435337301101016986764578933951679586671454548687430878223861271169058523810786991989115275729273404178343644538695337143255087202764096115154092234392834926347692378800165752292626487142470549224474697265300899651501258333489265869976121662769004674887693166783395307480171288841398103332130578270066340722767404834767242405545528424593442534993108741504379760392842466815449331407640478063186650744206287957412251208859719745821976516958695317769584913535046408831002038076247682314877222200007181995693374070001996559889164971325635516180498971223796067897024815069153118621550348598970822763117662330614109704882876284367441040379407880725257735407665042746632799398449953956532267167936558933348742366520021799008074525774302430386213558839403774001930694463610063277407847687828670749276954083803100011439722396572069041107810749315982280233587837837061814731870774945675055372301996212030713596699139867559345712609115681386549597222578982978409667283251107042117805314844262861532931083164943443028012670679346416581326537791110686094868139511941005797537233520536885338102525536390746589495176907328485565111278285157952486244093256166550051580129740333133628782464096744674901943991441309214399678143231558680035782949356416443367489156986238473365366358802958888905740970940168412108574611836536627469889721870132949509485571907185516992908567872440031862946266819346221001931346147598274274421033691896787119052592592730802723095568634892831666742540765699853344734126781041793550925284008643246840403255833405186155681202070523415323665583589821642556445232196694633628726343324368856550364267950040335174377010480394636423610593350048421730346896322512422666934487336152768157268208448567071524005437245839203743368338792269271296648013715265880338725102862406367228160718498519091145096748081561524703718941046034108560214945620667967756352969597959982979786952896400728416616665322144516138075216802111630394181431139161163788650162619738002545115059148697038687896153303498429015816498300829958737307303167383523968726518775687881587668657622365974611724666236936714932734615831515513619727737549797484252321812526597928337400834393740979869579324598699534376723254509505146681485914811962383878894624497829883586913136916648384251935548305710585001800626658336274549472116932893918539471618445753475291146113145262411062900919320955110588106048014820298548816182072214063763167853033185416277989958239808118109808318727190414643924922094295415309960380846237442063400825277981853261641392684394712598964976187183665864040210012524540157178253861486684913663923127889567854738395085347424656750856872880460185399073455386116374258390025496168821222427562249012805114761463075760294657852340462806411302480516910318055984881215632923070325598229211292836762175245664682579282729667336992676160867905648599392399835797660955343051837936398705764681810247170569445234346691101538827055915391431794336902662569536554772722970942961011260101872373018933054477304234307261752405446621025197785354135424991158907893895968143625707982538008901369866983433089739445872597507395406954788917246681563480262910400392926442157394265268530675952386339633063794364636279245877423304206247573800947850914215839758651282802169199591811509368027113709521160441959414333854135248750368008428369904846989997742356339301329450445941567603709094215020482434897891188267364117711383423764645197408602850006331872421907056637240679270112367309415455391174835803435058096889914277609943134594512570921402998786997503921862067392047378863699390946069379123446201300496918703608613376531434247902775927886882572259073881836296390866525204462369530545856871843164161919942326403031165386513558589453255379980981903404409983503508849978477245777220118019738015816224061405450342367888214466210938006053790433875959742381990467438159507430776062039303215597203387557917947812830816845475578602953688684569488914854773103055065471571406313018514163491959790308915790999367609076646836338740832783542213119332193211933293345740461710644314409555404375985214291061032647453682930684418290102158537095332659108796874970907058536876504585878011155023419099512860184389438900635416187397576183290506274928662286277135688948292062847143210617165449664327613315280679313738481586543672772505891304631178010473541526230023419253786927965481031106364623980192359099998812569086474110791644788419447900760281325791661012436443631558869691431642150289960294312652182678366745945782116454753768521654831539715840611051860109281292010752514531883768595495403649641052646285067962034064220628292427136852833264167004208304710347856499854939053165629090630243327853599990271373559691289947928248716072628976029060897392047450897149323183719392297005668049151197020779598776091130472283840527295010083720335119473588311879225767625457319958854700870453505470034354323184405206747711042886350309953516346326429545425710208404598053182396311844158060561390530328731237789574883303671246440481309107884580265611852056796110011778133628956637127751882924392297568113932937674689158129321764658393892163466002755258635195743260167149359555750776289243800482353583403797062738629938006190456175379057073515239376564588652814012745363130858619583386768831075997820678379763134338293712167712047544344136899659664976882379189052757179170239775261371807512557624084047681457612484875704749546618255797761019612611843941189211577856941503179048138875727923164080789889014469799106333256078129009341393101868079585846778754287583078684008802088297442491215405314604689071104830458388902735626770663110217288772543017128835529484296603471676031444141843243499959877160700904812537608427259018662582101537398172089661930977578725232524511805838898637484097066553887391635459491396300562313338581512754997033295699164628255169504345334553723619782256714855294575570141013624836903457493799283245354968090654002763008984990095293303739196033425973293433209906968063360588456541815115132488955376267499525590365986667425537066223070679595768610644981671305390430544097158855395561622875639728276012870674922941880855883322186449347811271144035449718144265888229592576939112673962134299603331984404031964221405874352114789027635114050000010306188334988544495702458821565862348671675937879598829433702876458178683247064458513711234496350334424182834294966159480498400239157796923718688568410017268979387024654141366394436101159231734000044510185745268962968508101629450217342523381029834587239221313758327216666597139871411275250773736099045509890574956526689078306533251228511520057944023251582667067106977042265505134764337946498516563111550885212887402295691726185278977001685270591627075441686967544711368118752725703303420694312259484663445605582622830136577156314099647961346452091673233488502445229375541196947554973870798518984321691621519552532992182923719086057306292037434469927180527151206902224170514445644988051212795698345258525851090840134794135747001645099685066767563843219810174581910591020843320209188161489512622790344631378362246871893536716989973015273805085939458934414580247466205759948346799997910867584275087055439384502843086933247470359638106699518948224003935786636140878339920273898694957660353280289094870411849219103872680438020624333098966523507829796263692712021968386907997788768470463454517964025628706351541617904246772763862940769726026075499644273215565924662168281044478502673015079499037560494343781854076818423082663146628110342085674089555866623799395124312005496553912947602910427806002116183430630955530017985430410938258718976889431198921950345751278065185363427663486030657497859253126296652796353142315096473686295424938152317763866027088652643022829053934172050774375806118931413778116864030615098479283411947371835384972086982414749099026896473658973518390840072732122187778150843484001009322996515706871249785958787853937721697879656906939476941950083741738601645780088412208929256427538071674832911931136428366131744963407344900526432579804621422118634111687867435726153362066952190651344900627706244141553682616285564061256432937012821694119377207472429164922711430300879386410606233225241447859399936903647474067897610035030944893733835775583407140126440099005643859937313463171202839898724437934299359989233579604615799737521924456487984805154201870857489405719317705168774717300543945687476449254104144425970492875894052204221881866937854097314804688951911134618915987228554883700866042894648777990345390770523218829722087180277120728936112798798747370999814245645511500285634392299839064415100048489029790596955326785891183141489417619194693419880524546284885033215531203609221643981960043295285496013350045146600650568075330143258101425556870378445262762879269278382480152142684026997391146431268371490753720307459164502835306411382435369026456280746341903803865115690220792751814435187340680648501344781541207462676984340644717083100060059031129185410566174456688847513527428626739996183572298435008743709696452228584704630816329650023938705447640723828566708650395439950578296836170611840838505772841281687206279924434410196723313817751271179052229316439158279713164475314235448034916556796448681586371239409342363053162758230511059495308634207950373576925193567645021348921678652571477217873667674827394353174750788186196825526171694992683775732634008934296490064740357290572987484554743233112680419937086069822846712500639061226855106417651408803720975620047042750131057747039141246430316791866171627535938540946556943690924152713768726146921194059609016384592813283284282154356842625959768058930784630365846072201574006165599489100416186141979734899194151343705047661837489251258286133822253415641755793811539385936740820773844724799640008440861550304699971268033749171510402909169496684127984355982772159138733625942571143089915078336870234725816165030998252021947328784580691784402847245756576624851315072454230070009430071003751573719886720704655119015930870868156054517302989676960082480162599381680373404575768183099621120105375270885191780879790229360651221667579205840195077643130993633593406536370730154444437921125621939629497450604328702865494589549925142002449762338640489065404451002072484912515434064079106763936108577154597764015965150632012164602078469390167629657435601327103451674908064134182427686939101880730788741746612652766073810375118639129229264625423206718636862332267821831389158329752679926966434208359528005413727027875812875272947656071876135839930661548687694660087256029368769631763031333131407045782981042845508721799983049041909450012841712460294752904164648978999747141047256555442136342569987826668170241905023479082427714786928823229570917022591781649292538203945211811996163807273991204924818845193212092715851731896065323253490464583889271491579334804351434813057470638008007752526952705723482171216564280524544111027841478886944042625086265326344733212734290665994407747356456003034046331627652374303496351524505214564463575973325012099587237965597699484991117346938712724954463004423338899972560715749997727202107768178480298364787056849328809673876277716993943103878319533101549893640418558291356691575974411605661808988718058750497776904020716702158115680039123183514805825310330663712627337119339928495603955089606931049307330681041603903248978062111812466143614105069496241175628754923647051154707452502069655247856492056280617710498714295466704526774957670401806675380512929701797789259996548658037969883331630554067928507437509708810441844517068483569896548926927348311499335195666193146448859826306738776773550597671413934560765870904680618177924796694772117619153738655370787313621332277323066098687467393447964917282001743648952774764467880842987543815604789675834011613657245492323976444194579717649754540163800313954158724016499238932865358551168946413656537506932259393879539700186176709624487552948674802196260107313028387824082280247104911801934945166046794427233933319769352979992056626832420885810998346663222030752257611055441500617003391133249855813456038421383029870009309044712215184261198194712754973155805661745203955735406381619440742590870297211883836179787385691232818522612309605453976285244371127266021856348184832574014041315365270883042702470091892104814201814088524909682827189913996599619153256737038940959663833314751373907220403006024220492647757343175773887748807259331839169734459164702196152074005728654636786423908102498130634322669919038279494282214760152610535342922799590471491183147648790920677406928641765432437133497795444978256150873299660107833786545201440988534274946428614334099074005300642047422570161952755817040715048394466217033563985939080480123707301719444859385949115985304270447242916328478792218720912861901274748443836438557960625095454696832934659107351180869705530197289758779610314789890725798196344444302896117146934473984398211904800822380355585062677674489226433498859637641897593426456122739574088575225777978180906519266201696584129008103307412251648791985512898636774985151997011828242566280432817634240013292059795155037306886162385027125371087116745344426452281401538658629830899133609224986138092621751937510654363625804081688934180620184923559660399461469191195137636360991333381160649937847533438344174705970127468545096628780441174151497702629293510049240926928282628812984357254368308686902686441242391206634094155482872190017003735316796194852002782592417157882732904232687392300296260032468378410503595938228994181107106131118432099012590850823694998453173682060247686682790441387895161562827818435856404638765320920912498133884919780149141594829057055098584514585375245673874385187825299652330179183691466393128322598145337030734986648762082430032335844055278210778845801008270703780765776154188792229438169302478834083254002824578147384223253708501060524400601990703510217749709483922968774634200992382314710486498848280385903842156562024489743988957569364068771854574320549490061424576678640166894982734426602503074472297834606105858467290135577557401668175411287636227574771860342260841630789901464429064896049718088393028616603442255600276242370240624997845431069719837278177482043594488211628019510605348703251070510337604089408505941515468872165404636066805576712806345514509882040093018875605150617403424319884153968537175131193767749538289151139448772205614396363846792929030009457335555006885935980237313259258396287105641697005220264660436035658017941783543722095385845150098738241635476115258908037144875029663419496499184882321466495078287748318072325963756413214374010886648162742843166087376648416645454911105641728204845947854391365085014045952902477638067498752215045760760577245473795744510768233029356562450336862194596229804585773259756066759052727924876268879855843214417632096056393081062789783667354297976847682035737696827981542390537532411758219549688532080207615519490770335215522034099982973976533993971757887738885429205809997525663589454724160408525078717862082297013560159878755011050223606320298167355961184681692848521441743985063714986342947656924487870193315051919547600403606640306808927487079970857306858038248573706650426074353778932317540145870828484221591277951300272930685249584973140199803438773329608675579691502308282586646872248791079863464604564548045041730091129550562425532827877341966800330319917844312146556516974238065273866209014538897852942264142589987162116504157512419988593820493575672091822030597471877476933264971788804536174203606479192295862796180253099779847100822277725672603965909625076609196419581136741907154430098538619911096865265304903496487920478438650355734144950870457070266144070239132442033852936818623071002056844381256659707762512614188174297218163584096389642906287690905853559403356822523102526147666371172603123155440859281498750666222110382310342447629074020910015222934273625945216644170203196389050491917232730548544089432590580450022347780761826489924295953176533358559236718387093212886405019426087561039947158543750829695307098421512420601784732203308957521142728361905229878521614775896682662539641563758902766638822899268878586619971884820483015868387310052423114567768480405552387519956727341912504499577024079231999052928438522920709190999411891901152373302276566152796616214135021009603566132997454442356900982462959462421050803273900917638562306639521767444795837382829181505698489659350994483276453725460923614320086612653469980572853222305817901188052731088824473602308122287875078780319721970377726174923809901609175032191650165997275921718572399561667468137358298587977900255154442559676733021449963427671108512703433130741691282371917328288788568776798096936044160650992633310573650340498474148799969756967700259222494812164243847884650073419917803260033713146273427844225522879578081033772245656054200200886753239868227163628550355216023947782408076888166226805816875135061815810595915906241863986613167326386576345865294238229177637275372394143446955260253388058971181884444558730546934982865976212181412440920422549321954661729931535555106800434737465791451911078612370689819556343442495052368678589804441561660397560706412937375229131424377477576662820380326329009327011820218544816619469378546513031634172626470090224063359639478627487818002164534521566075588579484403090799264004049140486490539247646838359254362265002569942307464764788442165613559486539946653262887956864716339989136878707870058224324989591181983303910859895268383749709346400157665255937738140627721100893101928479933114240328152775907663680390812095092203672629771387038943452073483327327318677233253278260863176559804678041403230819990024169447018490984257304547887037034372742160185765360399362593670817022384065040946798421872892192405381746002182402198727879654105971190166789916981991511793521251968826847984491018078910536264554575857136652437381479475426744419036521329103993696763168120117986891546349704503216660366238601776682145858760066949343361777190227776875954399477736469737606577867274649365390105432303453099182724523022444354325705649841465105680716216702641423002581845585392102973041880953654027552732367728112761366465542672567441072593205486169251776368644117037822480857247869218609242829282758113533639257473192605745971727633559703151031615932571238245780853324712388671403506513118189599759483714068614839493001416973032988833001437065933151517187568878543694998500164518603024634433923972586508660866942043260906705965829547830453619430409912172059836118607838352368743851949601212182005772660479871754677224088658891607475709781780061718322188577358941465157298015189966843136502287288948369171649127119525769156697594183758175420203513865662512559120321068476036598681032861122548013891212207589318347358393743521823673625556789021376949275129700620200156585339930991939103708539503829933655353593915388187228525134306423485686723803891925886690097580379529345234302920580930787975886066287639142990824144795230940692892519158692197139267721975257921709463987010852412676015709692930270054412290660355125647955645239672344097238764215576268783244570194793457125427471522759677683648106360358928292240071614255509761648981796675260394550035959919052536589284533441872936822085831323094143636555884505803292884343619066504228298018866336108921806913802025164475017688503757061154627206860550606718401693190607497357058961038139342687882526957346945057918527976431751365510878900972863457068453138421049162729007476027890182171545987109222450232977665528081838099513248806197636111833152454943108361297584211019552629853899806476333305258457904492768211600979559674900099140132790598131670866241033466427025008141772019687759888239662334491291688265991770719329811467433750387765388980733115516457686003628172948519098068025747047438250580244767524120799474341477515231196013675484503905339343480259855946189272545348554604373564728765043361745370930905865097980541525772908560448657055761359029904048959829711591681835052142886015608027560405182887128150285758627774117685897606788878614948278304282083956952594140655578925140651141456160868565277612878964813533108340273489852879122911947703441712207056144146843431095374379827030349461965399430820626686040914765040206282193714966237390035899276829872412225818614448251743610277645712930456641921882268172901523197753419786878478053530319816928759299090346468179145951274970171175629539844581984656282601633259302775204164973443518700934882844965145910001408963254339122580052014102787169692346879695710471582320722670159365592949497233275880039888896280844378107215982106295213928559314390710238208749658503389272482261364267458893899818759674735700993823053472787023260014806704863060822266351644583653711740752959315538460373655162378223643792095688318254356763175628644114019670995324363627797326015408011074918313003330822158921592304818681916081152454392722848519028368313102865546538516209652965188353083261812188992205753558795223576307213977775011156082451261548542778659945251589767182644502930073581957000598787644172438972616044489997767534976138674251127152583924906359411897977893732807945977434352424072107215777923907464536989204433574088206481884544526861813755142649805725803418044692453267973584554241951420002865216431162800576580997568857084180157115507929667593783739540043833687321360428322782882028348243949411413509974785532237569546481857512730307654310155373224343521575837538685859014067102776173351905104281069852108837644352029995226862996620909232101935923582099505139087781053165512179326253043178426826876531605026247710060631461707475291992940343655827626737952842837991965361901598592912669171896420519551228582325805744145082910156222171285515881715582903647376053666081410755986490092376343672376008413043978699371700770447861741254223866379693565377585403161719208656003068174113510840750652044675940887696801500547020299294116037597695788209774438484626653923294595540316579492168968981921175864207499947847923078212991032599849913542533752322158520105974587227323812012049660186372308865161955144950272532608469993493514820993691434117448712112238097461374030883112783254254230550283682880165599600846958347434632364471476544339800560065027025122153650754383300750042546142530296312360509489142656378259442882634360975320539656454888105717876935419318532266450929991231070379422657390768897785736804428073944715706205366215174327109154903978198198804510657299844645828576728481911480651104812671158969574247512686657098050685129282179924331365187788057832148740590879461400393681074444642864728784372181718059120140178411315777324742436395864222176984325448765816353774889989691272821164533043014941520581093039945760016069695198502932559380897395993488331135341129540911172880743527902966992229385734841307525738621633146436095837368645850601483148844835024664549197610685435064326829259218152000654180893660476198137559055412056311540426381453103163274068484349744074995014023622725513078490827356733760817476224870349841002785188347940801583353323654933624930464612277151069462079935646783033642893057393778580622389330033228365179110736628919452069719142658439860689714412014079666134503072899108833644108543737657264589478782856095778714934234181598095507577632983594137928850617567459543246102604120638474333348023531139830521322443161018111491204332807812140240810858584740803036935960770922113078435885931523722936073156644259073552946831708178976156460107301790463950612521260327813435637879571650243833396434130974177277384659664101308320272933833100920348497710677890872565016727871911233043416985294617229554685368265020098345798656900946853968698883397923364869663547867555665114708315322046969052994091247383377924029868097598396369602217022134597753435412139296760163934774330372275479458780515558635515438283643189840537774879781856161862497453398708270466337457018865654559622225261010062332100998440015490295750410057553144351774579153075279475651327652583726634346177432238672921934700015995856814253031982415440440699105173645772007931152080481840982040638456621477461805485002023833887897147437851698882347868284048665570644058637767038505376442800169162959354521123238992709138947951598917670630369905618569252499807952531153948193499348544292330647953922254571133093109032744638366855632369580970530364266327044863576752654290102485253808682335809587933127877180447769254587755646288141851587328332908909684631476939298531374674407116009850145832435914690324597187324937945363878959948038990941653248385065010914756325713116944147251590181007986851488106779279797746713468323441687802840936015437447909460404193950953175937200379322786979305787703402162697613392356987894733836488624968425045515694842311782098775853350100176320549237928620042475774936709609352109539043614328896447403190394489199319196837071774959827356594291885613750100989933588129205591397580653089328783885252433542440948211626749408894727310651887466268549868994190416734361362186629839970775464565219385903433810461820910745299753797860452276820910131938730993257108228251250602095002087393414227035123712444073945188560837113656098717189647081925226600410726483206462524955109217997654232646159357439543289886704539614236634631486097822665042110501704010598740051077398572511558005260480692924484386724411910980004727187742730989715501703406402479373000560934524800080513213982882929303440122762275443074129645906266870393368808936701919858974264139231609511705686338324539411731304537783371074659188150547240683925841070938527511301220760354184513303831892363230031119776050411903099513157600617867130615481121212418768034773558862974594822591777750637872703163576496970540563037568545435094011759749354831742439757317782294460964136122944134564376637494024740531735162808472834038724069077923827963282356927184508792819127930973328881945957013386377385572214189856476365593310908626314972514861176104054033610263168624060731937004073650309353645980017007492846276120634431495983750437587332819601596395782864992593159698653350736301202682026579250629789661297214761293196466977219162705376313605183527547820016099884275610547184481627840094864572635279442989892664896263815946527351155059064682067357823932833005058399574201477978824124099351638943583080280980464236475469222662996357499832565585368137057317226404213203120125909816270682576212189725440999683821220546765010460649604371221087642502352842716564460884032696940319934407741924988022190001095045749030267527627475465305522806414773926635033082104952654715680563664942170172840064606507257911929562239411900923428023151650472817014439955969597672075631114414142924196823362897821888261097534391148998349923722920941586024171627327702571130116279424729206845913515175227644807675273579241676517608935548537988442058496403519434773552855634075887786041933987252287310522129741806719168196491951299236891341789827626065777166782495421257160353948888923921508956903722368396347757935079543867583345746552848558412265355281743985005487823038521588973070481954257044147383658894043442770670265874316304500815540358870103326882018061680229478459410853508217778261272347829833851740819958107119214269575789304032463855411261820262085404450245207996319751687778804485729363519117163656307440114875648892979985734241923299616310854820734778794569631095000488289099251055131023549174628837131798194550293612299253385315303174654222775186218056032109668419337788100984865646318062311534578001234826148497843164297605200557927152909098307615826227139318163371793825003177678146172922664847394949893106143318850208712728944020958214600753952394210263744643730696589502030956130180088915606890121814320546037214340394992886235658736891388943287150383877524899924243002388496391958686715765053594433489653400195430065247697611622297988385356320758080248816542786592312873657341465947269331064097512646445387323717948701991510399794516210179379591665869465996852329857951952855427877419009977318402712701831436222258218226264615833096811015109391578979594396617931664284947780720645922120851345312111957736186550962568663013053365244646560426636677283762770243170885300113868675257706544997094237429391863011918049844056533884907009415585861650534610372463668569320253505913866136327659489907000946502258524417539273973731429965132270528310709323176734703311812887659092389250287177404766317550122878264964996286428015133072621638616445926980249742952317502665520825197048479179117330865694445420044785582320293834532193571901234130818124730156044275865758924462923607634556701800080684369589554029838450887177786918015754414866764379710723841930438300388415348097064510764484968415212678451787759340913107612687581079582446522106047892596659745416359274121147611548996637268821627463149748619635917925310828785862200221294453839272271060747477820009704055619779038917266639924067278746078576874805953777878227819745010848462524236197515691976295688560597477927215989505775489677641826620710474258351876961993122393333527809188140464858947936081234338964174932706715736522223348679544787367661031239454764105635818361785664072707901830895414572458815186487469930625740449201828580979132507648302411516807414048521305043950232756033219524507969842683638799668855751999714572544043647497758676740737680322548354947285343311699398570624733698361187588771242358668550449722640387122609507173830508762605334889762057104930672068727797488988558898809295663010847577633626025928332827924775893321878140621586014531918841411167875723944897628471403953755706891459035768876378497162299646326001753577969992578550319825484236935520193261574563464589194081859894227695130873919992084138961005115986587910832002453925676695147348250825824750886662579113694718731271424004766679565429549359973188333907577718128124812316827120388098577543125296946906791061972399634476602306865682113661502071980655879940683534273578133682875508867181883829768568176249150883744488635583740248397977052753714245830385889173896923044985537167258658329786135088256066829833563125935909491415057494616931755462544022793313340588368550047442645922347488353433125160805562646620187973305732370811818899527733642013958701344193646926298097361235865346624068545929179376036379607276864999650015197074099280032926114224570177180435664971465460467378635054868289108377681346149028947853078706680659206988799302885098154339716498005708434481003056095295274435421314153130190558366233606498231887903726983996964808729389881020440580830691705281453012275415754450967587845700416620407714776333778355301789879583723178353836096274026413821328593367802737432486744768680695253067545318466704490723237579958091314703682712366539786965323645447615174892534351241198173898683717833194011322813719176099615016023092193463653121072658620689748782102606532689183758364962389923832205030521150341005164717158024714737531950383542823969198371111565051286727711335491751669466886155184103336502976214752092704326677224446529605270549595899289527442425968721503020316112936041212036542365964493745921537173057615272327227488315107174107785674112650410830128137570711393146763426820688600222297069344946152067704643217548209519955285925383184175053275018240201320139670576210446662824717138502809007107345107545318998981545493680952963897811256488120364840757420622745512683399916974174727919668216778623728622746775637178689122211857569895725576291206323237500010248049421399729942660313061503334734440146306405033098415618837004386189320220784894079859772100500078145352503501359708659517780584335100717993149504507396267530969041257557005195609282021537603609913653326259522988916650346690139826322398937459599063107699051404028258416963007016624982502126168409751973296103512105915155233071883791407873086995172802999278577889340141573352241908838420648238407299348857204640904502553375341984399371623707021118622393938540372989090012507306942516618843712989681757494324818214994285792684015612809163142461296994873111140483404655833733096468748819695785847849648529243695980108280374381346393810112045583117866405347298609376868873376966329324989075853909668484618523921398095747513373672050481040274177273272958978253110217401125468469248416984344139439489942320786174382127204121332509380432755652007775024881033590867925140770502419438609935619322444558123425891874207354766950740269137064831454068419848057227239643026892091803353536064679308442476030268587807571200219072782127650945449190436831677639739776545388093268943435749954463717998145116660463426491584899558005029961100986898584335075840810987538331206099741950220086600138303351037899520658763038999971312001639709561582463026818396052718941154261721306158110896081799184844408964243367259865454336354571081610138175873721495973805015144606920443434243163966080841306356855080178580253553538991405270772683324790981947918671604866771084678597730877792753415606935794670660722753373312233218519574244999141597954684755569741366911190493368202076800031455778873296147020616734083227620213437840405308640865886218258228405277853530131906410337717896958130903517725175969559469172524399009832152166385176578082311709061229050700217686795899325902842097689996316907052289792300798620329079795311872297633311997962962110406224420908805477851785360352582953767337527890138093144608047988302083605826728050719915549857344481006065476423060333195843161591325554534871381433231407314450932181792550706586138829228474707111313895665258106479249162939628959526842708499097686579336213100221466231249935869778366379323544840871618821845361326034653352660682600190944433450353986611864388534290612668869480621812351883027478740422580126261217864834158221374116457652784141445545608659773288031855273850599466357791550740469830845524291277005536920087524240193482449482634870645587837513182033923390999548392166442495728674992231491647478168067498895328237707756620618605546726836405594761358575783459062772995418148656635271621114337886937770660661552111675184250828337210045092426156840125342081886897314298791804235556052724530041140122746871919299634257875850986175281070741551658826035866705677036137838997586463561232509003059019385394788358319183761261658474739548052166220069690828640433522654697823083094238114856091332604289057550578632768343242402770801039583417555136724699611390213064533069077715025708273295660070160116925196459366614971887103033302714377051095436095147032003863671597704236362355724425936175051118805406707233761351353545779229202547509564274822616225399547093035463004210743332404856505343220924980007443997542122396049833366068848107606807050440600820089158027586200291095742479094394145672970319610192269859320519956337120656501936023743125273215222034379084610862530774127443313873151543739545703028751713841846830387713861722474320953066390102413109574104842462318237581133706065515007968199266608986928611299391423349944309076289232851167359469154921503523967958414816090627397682604549208111871088032362895922169798755927760015808180179511294648811446903230421669831843019089824377234000348542400704544078826485225154669662530187931346441883822777232860295233542228424983148895478270649523270657679177802881760461826101261074740603988110030063426400200919831782109450333712886917610851293030548680681902729239202465393483548039120889552523870846768783705961312033126208080476499152466192039682988070992025066839900783727579977149702755348877581220216378895421461115966389697273887190598945430501541036287548808740881675427524199444650572335973777322222185887742752170690384772715546910217755509618663392299891941561956835067669922823410429576041006031249413417337693347747106030894394812474831905086208110950473327850041898466459375250002553266698535859291085221907001651165921286629881299964169813878665867797305482958016351613932590921202134406623973529011923075764950644452377090764446172686919546355766227366217886689651750553569313673016047809163104957504724407579209896508061247026069253734829421941994709669346918523009722813856864846136120161485733949587019882309914784037321136706434708478533001725473917062936881788928791894847246948795670773952536229292332421223840400469210697043149249226081308428696993391515893907502082182919999345105182339486001122690037251785319634657274050516589037396946245935080938682015367357895289359282667356271817668526612757229982714145257263626458970840333586391177118937754217859760633023496364567923215850412048934890043913379975536998906278522002067623606616718658297228015941670075295426958164398553430215225698687313876565765914603058327393183089236906601612160813910123591079368751770454798718339453649500901008761379322408700222722050934204092872886444898929032247242567156384519202984145458687317541575611611590897552547197758825009729089093886873078225934208009405522174435527627735176991889510326165897080134796871310652413655762233328231391698657048136340651395286454996273695190169982011084134114232744014497757902399914088436017728565570792602373932627603343840700915443323942063098835976913891614711878203500838904652786921827767318961035194757365387289969381135139725056615697089933291703864094357697439914141973024503092996080796220654853320844684501487111359416551955482362705072931709661997285719675418333094746503351441398745101227349534905169410286920172384392315385885080317305777632881326507258145206371760234941875745981034825807181076323439693616551522763993754692712938734771709318016538205947417919857150608375183058293820676497533976197072387204860952366470258408448924911991030504218179585119448278910341819258650790238737961064579694711470311073485650595828195175751679671214125271743199362844548564172035514811564991592080632377439425356322851518518450768531373616202677374638572190622665908574475714968710697386612878728979425935926890275816685693505411260966288852817785281914962720879784461714531265172916269852703470868747170447923748245942530148076569220659965981909150997053797069174000802560518431798526652221993460082844975979305494896442647661930859994453092583703773559046653361174364143957333110224440616880174148442911081099760258397134906788501365759539788818529317684080372604838249605040748549866303560841992148933219163894244930286683016051385219466266409599209189649787438980169658971178736767222626892912167867359435936085872791030140602176222055297313869813634392350888249157376732046456742880952074256714694159471114767187360981809926343976426556279842714873497531709594409597960029042281763242357836896290173043725452531167872214340164986266299232724716017847344825589082968706407565350861380677475803431939820989886352001946046270309810106505421621132651529801855374053508420508259527000721449385594202878476076909049204456997751821998217356060036774257453119091373062153156961879142445943000874768283040307499083040363784365000080124461255662851766463001381656986036176208186799713618552445292032927316680913800900894757102414660884163012915392841137003148425531574555812896332221377216169187837755638717490152361620544098451603262805471848508373451423021757750166984195662958809057615757309882263450291473633306101224163970040229723342508916617615536437560458115868449676232925803662034339485253827836744907811785919922201305486926043578673929673454544905860654752088994379193116530078810506109372354202160250768935251509172078116541440304798517444346553640348940051827622447724660867163914365693382132038844834121987820117254058591290011682481769741499150645398142186662563539088689565162256190356496175499901322713012238250689382627973504130840233986261955186810587070599227390493968448451418441730155500518711456355148913869322320962715455698547786396429786509249878888939550998331170466704317400020924872035557132911850560049486655292839234162260989764100906373818809678727812628365779712074247346127966739134005303097208891887645256376015479460744603512128632629238258337303168757941924228267009920123156594487428786491848783310509630008391496395183136870732683092882396564807065462347515891882382907572488911580544023677463391054810790747012151874392205295191195918167146598890048206446987123643989560213125456614526115087190289308864024665310046204445679010356060364381714127130596956186507534571605207136344370430563981877359683406918448787024577845956801775385952652184893996181586464812388054192207754629263775394078199502197299690910807046741263502690437883712870538239160422284572946227739821583046988988073827304444442053892692710576163717210959093762587231424742500333438726395458272037171861070451613805446270644586016708233327782390634547537723227750369737408010263195618946796545950919516806922972039949247888502389768034100505352529609230189295928522452950047929071527819477527719305572550620493553653201813608414122412570112018265610171491058883444765472546984696399581487734149281486271699303857078710673779831442725651052966115143601709633460063533002781105064543527497075684340023412433336714875955139622689429687101206585235543744453344027487133496021388131106577503067417761252880375512011202538071617769017199454136648576271006319838260397967660788047929565447534795492548094317238660762575163672091620071453373233780528924999429803709365458513449043138434098629657493515688454680689481972381970922838558727238006937188952310287360698768340346545840174025857134771183989496368906550702623628930060910895983992696958853579753761130821040130302439484042858388177337298778203876720782137331663672038697627010851116965076437906245845257251113604164314695056172297697494183594158451099534984515736693818281608699163505571367978438718984199387405057529710879354327910023986366549486321503500117533256828053206246195057457208903233880117968310896388356063547153563990593194208553561524274798996097767390981999361748094011199836069059287569830575682942253864979748049878154671125224967965490925397106823005560924034466791092513599130644470604400602004449579436401232826597559381697503001949478879605793269488127647569426154257914609172485351889145981083478495020447982928197025245504942117628162262283365645383640389513013872622739204854413526866947556062481135860865405379285434491483020567746445052318971131120753686568962422440608101858536208193754161314546766429612664689272007713790053746565477488074207909209926411340881287494807674970605445580341201368784490702936176145199427276331906064990316757756924146452536509081495990431361637652111974501214056529534788860346073485761692617880277383853401133642600224024246525225288348212903882814951025067405614238472822003062020122563642517618070087250429549724637203518796902551256658757368921626556409585129839482311080463941116140600930883538694181881762014965696422398386290830157839016433580933566973902612986783145588670683829190996706670989973115412285327871604285980306456615638345349177805811008435776040069128134965456937531611961442976381142079562162040439993379405511410944617465702920483772511975581882010095275349288164176855061094031693423719913265788048078201941461327141038237143287245744163468309490384774669321171074268022374202772842472678032898250885561214797994740299911092465419797539639631290616507095391561711786626856225324153708235564497745102191033971354793751032917432446499042065729439764667482880905559570883258761795773040321393572448392740791119115837446074464981489257447928510022965060144093057321673572086290634784920128598413874317316235473895218043018623602741797435738574912718942319266815178390154871817072104360572811742509481481635497299236281065837303717292428755209539380315609621381070983078386890459782891935798703131446814999055658741146055162322042760766312302017882719797623983596141370396715188499282209057348759000356733798888401781432988885175352022065148662219861860801405257730617560500399810225881493021858521519515189078484043460583210220522657560643196353371772077807335245442401907409884606802430937106256998921762712402343428301632012156670702184036588524476244018978720502577470066821900436303992366994462234196690721652818344036746353396346725323257814068404947946082553808818534584957813919907670434996295042809872297186034331395296865020172037031235917605632263255868354083350289645433539676534963166986461098551450684464090226207653531302851128308097439018529608455928808888129325450793451653529730757450584129982348213308353243720496888024150450742918589467242652397698077173833758419928404582505653186555587020983551694997961893510141966725111364681556505663621417863679519720996011964233056467002687253640652807904097624440730457359076021027448817958958491878993457248067538975077738040181382334236116533563372232096053048768279711627395393467002262601061297950812489827490570954480144591502201344335505657756561625939714924473445505538746794094588211287830091650883149359268813517239521493471714746821707681376982803433224417711787301731150800097682248527702516804541762649963178789369319316503013165685416190826049133037409685061549414883534257696899353222691903333501337271502542154212766574681446836256442056417912781623557340348473421850577074799691709598680126959083925456472307814971453992978718914966794129104064568227031815444652888790819974135120569312541201801602842648523550877331703206419089227294946661760170668901328192805907596591865072729193695071979152805835929185545699837720664003418501853355878754592812790278394094315890050849041472948686200371429872777560188631958632085444247771953631693262238423842604731694785999461760295188282833121549533694936866329804808706403659494647533199468106823768409137928794823421569671038025346218755318956762806836186924894899083224673802610341516277230822741112422484905202819047834676365252086330626000866595013682321731752744404581418362371231815247070766464526197427483688979488794096288714359975973059709502878474044987569753588719134543853171610723045924879973079931657168837320697476883176589903724331341031750532482076196320267183766938703791291140788801404988910608568217861793898366384495753799149447755191895990346416408416101221569247433263809098256095656535348481072217884435914491773570978464889471935399535913818780743618525842473213895472577693743891822666066070532275966507751408132326243518393850965975124012052107145874336178527204662233308783112149617223766940275500742624244646610805388108898312083974023349163558285582829057956585515064352434267692270938655092774784729328532325857486529642135732632245654829990119289594850665609025043645852370207589686547320568554655694526039808093852544401217340893385127964810720441987318300301661606059972817332875977261347105275380339433142848397469283068544427769201422912087769852712526597270764814615998376699862546316763851882377894160630626608125338413401528181189524336859104295120594730082011102764199659211949949104573250626134846604977339607747380951854526141607021583510609980513316334560110024659582742542154491750859368345580283531054156213252704010854442427321261680715541509599867338976296873099347460939610203945104046713015789557757105768893853677699944956267403150736841299997681879845799577021193080403457831906904212071970037439081944402526993289071620142784117909171968805794260768785843852135368234846568117136811149241466839433591963259295965720907674497235126756501917554884557852319430455157970407249662751740977295872873021175959910800277611299935134883734557137418264381089312947797268050603244850986157578898225825438909712524097801325576398330171942522555843426832199914108767074504519136757017760457397742701741512944305737768696706737237841526634589473010714370882511711568447166856920404075035476886681157609386170771186101694686792071494359288984970363928138180732378937520857760180334343273090789425668366675191186647417152787422378361776041157302772758072136329742965349092241595812627672622262829218526454703606752435788483880632169160303225485337630203657124911288483587795487416222163780428203194086884126008251679360910166368827062913787957043438896794658734655941409589015632208690769121710281734462998156455456491464883082596443153697944870441502065693484911589169585258689697509907713420398596493569541898884900022603849159906582258576309157302662659720838095819787115191300070437109317564347247293017599262068128568161340711492754027472000697598366924520666636649328826655014601445167650690589280618733634172928242866904092581287232233488189865983994668321402150793006305400355909912858250469498987679196838259831900612236112062092834627467598731174866432672894904180886797518253674744447705107982283761709105693053186701129582755401662075035650240057587890629264615794777875592574766723438637020136443850584237540808718807116678438849473878488631274874903448447045007333746765042698952606892949090179490659892403200463051442535465002661585626268094233611098923481273292265433403247673601671668315763669639280046775076426713734240672509123126290316272132046900014317137451310173865211673767768692800461582270423390887340556719458632514379116338902522702887183514597808879245696891618131228029083922138281056888318094406175346296155287267130355486755418234749648544256441136018532677826649143822292002571028327323585148622132667165488606315388069913271980002869652299406630126667931006749765637847475119888307497296383580483312434617940374122485091496306123285081056551050341813147483427211870441342244031485250838664119108553587568620656736017257992251391421439793909157985855065466247754386522195106771912998127237207641341230433584481126826554985169389409332710718827568086326888374898411965911261570818171364199042686083899380869888504687805833367547011710389538780581238140081804822226976512600605719443488974942049371743099316290318992428109292221161576672224668592179096982753286927844980885209781374273290405871959640634289461244769030589315216589078208254678812818905965202011968885609612265068193274434939729976471879996849152214479266506118011532452209684683203201863047695590695160347638404685901326575933149746643786135798075988211335932546432793629194974247588010225686484941541436691241457450597120562957209369335025485453708885662360148911602474839667242140255642283821807841059352831156104132126166298352174921715578253853440624726728833093094224799593773689561926313126793967465784535512006919545815011644582936186974176883518603877478682190182229903310549101853377279353610771622640295607035279498870204554391113535994025927633010891569746041216522754880907996492497132272063581934131922317190733412065391481554082323813510019434300858141172852727103229423332448375703965320636641568150604415353573434037699369573685292238126436471015356545194090956163086197487539782300491709661680572846258252083410279723064519724368270081464454480785217477404098711934194426900418830984157591701143961991467268821079341908183889306237846658038588519980791863694460802160150138750196081936152622091214418078979410819591732936450543018798995154471621697833728091832919788553417501392550859194223822079343381516283864602251697599314755417317904051663807015572017627922412846348848313021479218970875253674745959256876047247422670546765935215109554238840390506311716270849741827391448337951595631852399217979551387523867933581281043430879053008868286257986403783835004939589451948740146573138017521352205094629258618350517290678078696031557679337081786153512854107333579102625419190054573653200090233072736493407822904574149471318074783778960299909344654130042604746129121863010876671207383032657140360697119704376278004544905479919249994166089408261576350533774378393155753376239657529545147065503373475520879645785215488222633400025131906647470637808582060528624805206222296485236742321238907608529380334893831517848210181506520628233020020156403422888577701665688794857970420644487861210232879897547905305761134330005827943357453360398805093498478769185219500352533592229806017626435602593792633537572109460652293774708419849350337928099747542593714072869219556496833124084887492657603879634739490148995462308631476062484589033845179787838126837035209567014264444310858307063386396798538845998078875678900359313482440147726941112840505758045374481117966786590357945245266170925600167948684014467970806037481313928288722721416699662939043511937108745368593258021252846627282055408894212958257499761380591704089352876869335901653921095135747349653181393093455329185798316824313257850708228234686553525177481141545671927039590515486701348903945769842876271847713258939642662671734997492519063915056652996946997638898163701303248006781140418797748144660491803011161812855831989908514244004584434018810034776445158332041163974020158814462896887004810976811658795672015053402189693363219198408059369233775311091846524674921119185115859240774236119176063241115280841700445365186301902694531119974989808826221143551884294538901590463467828329685004715243332575162019733145884028245605232438707441113360538191965096841501510720639038101710529390603311969197140329259804581473917934520333473488345553339997415514897154771751668505292304284674551912430741603783667489205561594798728709126839459647936753553886798087800254685005177310390007664775906691416527499810307005357666818119249797968917108907624691010694782520588322821798536480940496677763192594332349683539626218516482395641841868896172891035772110251179421137225910344008310654429555859423345151775081682976015470423380417949295021792378370466709393380168678831906251873498429387237868960586024064939993761895179592513379864811387244132584818634217014339540913593491771752538552816622267607846952279025044915818820090987004670390947814617213702798493048429149534888828255022487493020626877488689663497287602282444709901980598331023075045113093235358832146429883214717741612134659193718206957235311714028887706606780853340108724046251621643336255936857504789504605729439727944352387582938706468569941321493066401292673845634684900531131114168527076651703089410190198340239404686709994761545881479474733422132690380834047107628391216092419563409249305682499718948520490419607586641851148841015644053282452210489563928016396242058266374928053168254739020833933662760275652786925480998187097272519171434092149626728852760398245305267757417761458000973311022499887931890429114721223212037195070945023430046986287691960695194550869732221558422217415946237917062261857972131032709312584617433562117571570997790458395205759487503652368165449409434645987863119840602536516812983296351622309110075750529657502472487383749482984718903265134392549619617490636980613091775154091378014398473558413408741958866272368187513983083710763241674870400704987184916157721192146658590373492297870499804047910018924389732733041448576367554600805619281680949237156614917535247302966492925659935139107670119127006583113685077226784956242122851037570631708175455559703706892010845116409922450924554427639407149469281711112975272580343404213303715255222677469383560244640899409851163825773516881733086665447505275935798442302974288476324631543260376490148792969249557212411571043041905037397152731786072767224971633592411618903537680835134014701565394924341093507373372363736041491565518553639194920822972625101073248588445981841635467514505927849269278081778136096804889654260338419950351003508328713202057047803692659096232021111325879162753225316782046861600704206221409106359324314856533191654470861203165391390128345517062075524716997467135484477097880623715148111493625812490846606675231184668544847996940101671606740742567028476266417105527285707661829709893426416407232024807587301669738089369093422396388627959756614016964112316147986553747462964268722058183180113325704722405587808047201326922165643358872938376473291711301680733833321245287027305701916522783338009690475640729525650139823007414288457636506758560893352100871397271882461739703952832828655937068778814348852595145887965914208342513973102064552154545906389549774686724514122246549914308590455355059156444753714569694786670885094411320511361857603233862880336816125279817536668739870174483593541559895770630017612059799455838957514072818082403143774187842376273513710035147992924583594536703659982529613021993010301642990439223301050445650899020522729257871027607356538761943283508473686652433634572496463366095776245106512952813437088139239962745949886508955664482379861840136453838783740631609703749606860723771695499904341356323876602722975103436823480932580009396733637057130060718435106383766870925003888920265890850645426887731823302692946951693065718527005634359845914199144635963535312149780551301891846651906989580759957789459701726707622211343448113059716105677898650149567382292057954029800817125143580680090883675591647007232961709400772651968837853037916804986425452612412515389697912299307895503876283172629334401217049791978689495768251303955049868451334590103498265890932075182069018680448586203799285740701364225603141516329833971919276502874211410437891418368065832933855557518034210167889973072167501514372929706117150156237614474504646864693415610652669667699256696561254418185411812585820349147045847070346408850488385801768089315356762981561538814012844923761751861233454847022491922148092536835894023138684600855875147976768309892281688230935578807876329043066893525041218851792204568999024295234923638918676664972668511829330403532933228365601283266465698509958324614265353193996720125727795250690075667309342884325010294106031278553842906877728894546310188655465137966885653196029805209164629684536618237099037144226005388792122096731172671957882533488863479389681554392740523856906187750002226714921701167064279756853506671979997048150462049831398200185099036827310753110307895506731817874850876839322152262529983390561596904438928391856847086492935709407935492019698488153397783459651440109990598954350755269044695010182468477872012752477350133825571543765594182714072756260640776398811530973640537995258424947360755759261123265192569372348407837226073422145000040349370428900763830686645177786821990357544383723744065794474362650184523661462359030234531737162793557564711108378783617302956418060221043059219831138122253536179984025282046441689427551533978153795274542050571560439845179018114474430348457270556957640180553089147939436425192159824604353440655079856874905334336191921871705094232220029808039578116753525771323825244580864641340668245853451111767719361507025751865974495402117624281241689763521270683805647111159777569866362110375162975685774771139132330596488954655902410446944075826321702525089449267000147789875855273711746030505602449767168471556080823463970612437569368629315930027136980308265404289685368426260529869841990462427190989506776836829219775733265067936023565882962999250282915176122628165550034459745294109268066595838637267347038784565045810589733362895367293049173913380289579523264114103712912794507427592897221726920693419646769097774580018464617157781009336211943877856743105308589684622271658425048076243098185306284836530175022732694724252220090564696100682276309219597259556663926019457152459488932651485668745457423617459150845413334780621238830067497393971725680744040365054439614253372730957046958140275760808261671012106437312379244950485566130229179664760891770368261131340495780803797756395288710983863158918671817285399600584990117293430756729845471328799492385331330459439194205623619566816149836660253895178701397605295059202023566903277754669124666805624598029003237809165429819756183951567615607727335185228808888110938284931185583409221878775565386139377215000603485125073852855606413645988124654786143567426227711852076156817610522810690067871646273422522771033456437857187592928370995882591108872554332931380729185665042073467156170042949636632732482789706475928328046258881913703443225984683557862649173052633737678691317688160570871926323766643957377075205998531276972194250074686910594592310801410347666171424206523886582100642681378274022682973003117558769755286565070454050864377700782369775146723024687611423745643393666262814556378755520922554656395447371338032245734873598411322082190049493913441028406616162877415505614121705533354063285918024835327690165702618491320627956522863244418304904650867711218603298537101278249393286953568204840641765716624429480825353088249941439192819787374566432996908265980493107094206074254954026485203789928675925164029246566068866353632820828453035288339731859271970424621691463007667352340552437998050512389413804849701988461247653204246714619995665597703552182729757864257407344741567666872158895175844503962222469179522041217809775250083048762126867815264077689391418079239678027507275834911913975359885280806388642616800325463076885665802448415314082245247930168611582589111019324708902613599055017775863308122626247355140613230949477965833781714081961729491728333384859315945520856167924946676283610127730485407918430478244146892325866029749485725925747405140301333614867520188593788819120601599686523995180598770223680327804192394136342999692294866526609963389330920435024699104047916671678380446818729556793364887920315041463406025721255963451459239937805724176013883613854373066344380934305253537998073376709949816234442021641445035096353173123887470604668435733157727659349775937245110244645306844344428626948188785716956863854530277723686894552207044710399359065750553427244613492054121971450479553450584977708955882627344355479492778233025294961189791359904513681091588947633240670880145841100002673243623211893888499175356809870393914833631385337461115734693959428192530842308121306475803491653104624068943499528139901338282832494896947616359178834883315581476174857056306966522819263417113248527478622074003637918297103235155972132457682374295266528705089168111481866479040339060102023050342478692219501074577693888036363627979666844374083414762674012453971371359272826769290275269825885712855538308577875575914259445982913739891129209702865569699190593546604045422397220384422900746131899377886684170029292067593676671914332749598143865554718108890308071013348338337919984258524361663098500434787744575282197746546085825692285448870988841004213265906941235208367044421549659157004779949203889512090926568185357968056037294148002913420692881046244044976056108592241253043670970593807538497779513353328134985193179654953868265340650491171485382844003355712855455589642559772308965311485653409730657373330364889029215038008548210982908880501219367162680347110700997973717228528076928239627757337499196571544499927009248553003777418514887376871793679786622965035212273385194700106693943138630756844521307510682895644039460260957792890564244905409712178317972168754712585008829037369361869642750632424931826102669772184925941766650144215684613003968806884209228188927338235334884427295368510626600270943524315725837917370727460699239058767730944279198154811571188762609314255204554597726550664932914798316246700002042319167615326894415098030681627258397976654979120887152241458561177934939996891565884275471978286740190937351406526300352395584832121086739825269793511217336879250803321084034966934647446097386765054315412705732233566997828476536676447078970471871760214664388858692505834906274318061890178642330259920955720623383702687314665009239268701953616204394187293110838776706091737151873791145755604115968602276829088644193025298908771181571211612963906325222814053834123115851639623700671815201869972168441272677445360649254632388954499030910017359662966926805249975301811455484189168204595935063393720353964912330041382477009500434753248007787290362533252280213644737181965569584472857965554870712726484703539945836792790620164871532272228784817367645379499446516302831624761564905357446910510882120497388516064340216508526357614851287979755581430174795557342298983689145516433940605716230846104545848288334064287948146894083386529008170375071662701389715832723078091915127965026704266444821135909377465998705266074455374089512763519495459556223728147677090099754216563519874477054090041959533255793447648443663818311163314807250253704468989024793554741704337445596780859235351219871306094356682595491756104068874110449178710412044070582967457202710310711164189863106266313686572893470290239495960181806047608444318456071279140194701797078188329688796759277906907475780276606065588898511333538524856588673593218216432682167347335464240373019855849641888964102918537350932461619556256069766156794456701357115615863594851094392143814274359617463910572480459348049559282247626792782357625228085023230943704345407483375695455305585720855482434196251930670508434972714794643202290034160512129707504952837448376204067671425430267758219206490817520964965791684460005170036502604439038659314572140149062463995755076891019870455395336736877537374951254087416818022511012051141844177261193026311890768936334927121253133585474165864735066633045496806546219936484495994354961300257078720757878643848515070985628195525343594256790380845922828309838071966675103067373270429199666155933386670281393640462357136530761403666959455297340771016612272462094636611721652051381875637514165011924838962464968699693131223751520948118734483323530410324529332818440799380641067775792750428819537117489165106498477463162240298592014580158651271294814864977763887415558681195729798380393145625143460210479481992755244040837067429299816204650256791771804005951439880145289139879487176332038058318658556023502523243447288105037978687485081186789384810390263739335424563894100007837194353362852533112283511253657686793300395864902800159049043063329305589011433183349855895241622872094072124788523123555166623126661202656087745117588569661326142542030333253230584935101285457231780058395904800741219957189844682026010345607892177750080777816217857700275944489443069318584431974519284187937657812231547367030695229397934580481880591262915743304215630294307699321983285418117574131685480981120804463161239243860329049717593240599523094446207075375031948837106061749994149853405946560993769169797810715527852695172366222774430251594465069337022786011014697089204466939369852655655596482155352726657568096765961990559529649960243852989416564423767501366733645980083418042341666605343069326958759692934809866865474261892312035199621731266113814979703522013436431773961588568891074491835445700505491023509891544951002547956030671242167229764724062617047575098045403100264983717986372056173588370027386412590641239682090978138965827516151796849379875982742324463101663859805857717460090271852409661252630543406537846260481265478656896005415568659860291287589974334875795431106689917350096520911493004244268950181901058448677809561449907392993714808914074164905122937386085874775816878935450592354409337380704148850984866728735010464540942365749924907266875809582765614531047704061411024998953480410566575330079283755162924864667160488107352314413038070700048708121584458592897351147349968479952866819957021134966540555746885901944584751955997513748648617508819510145026104685884334240163842772529693401609231826395787115356723544544740593801226372731217943607293224040808802285414937366815182606388742338459100710985733693185312052987404293751606231171526337998662892141217859644048506655014232079345793059130888653456885537985127639133716653346408552506466868788692121640784021501799501433500541729226883058577301546727902522236189963581665666776533733137286666303046443131517676313041230724757974522773028648678252048169372715052248318644077994594016996487489595750713180141603911029277593456211158313036248077931369715290393538491020569484524053512771704193096540170700991592459019577771347606340408677978892403559378726227032199076917595587422606990347394484683652141277749958002565050058090165332619042070269668611844937336969089700434899368619760318823484718076552487452385897267675188088515677436463754655481953900417387394694328963127410039705068518192736548037582292435878778075582234364442184985841572542416723719109577888485941533180613773061068272270638770097541473243588151749267344848688356561268045615271434766341110844419227405094161856151550448060297701559594699632807620816526946949719282279614967252916035794054229475447351066004932582008582388031384923218743883084884367467429345647292211250212598750090984905521426057542922515815257459870036790525416778039286372511233517450059342001726447507055313661338583414049246796677371857502128397703488813584879678918531353080769074240300912553620643582382019661557586743557032230813088346397178552349524744206389785284825820262554126915619977310466043505737242620111588443177579654618771083997006105672811704960813296121525298045305638314492426619631365716088952845042083645942400696799227286244310448909794243489350698928195841525313080884516515268159942425352922854683054887369996145229454437229442086697716066398970582311828455105033789390788339857258783134991287363716036174588656161940169178983744139422142291294505921538955756091256082592321072272565718069448590845294459806618496836649187397789261570752636880577022672643016900634531883425824038306570515178169460392968318132090625292924667010806088739904602249160145385237471401543776702357320567722856370669396881392270834226511349553049092750003117244099781903138752464072964238685679533168091715289568770527174306520159111924097888600789600667759094850004994577713764939971887891017142889167060513387889476204913773829941134947300573407412859036117707188526764655559395130343413299715439014207200143738671075418129409617094819607843387852681794446734746319932604974060709731669507205484515829956321082077472917797699817399428299984370954141861883904395905525783861106125616981065440339788515584043382418232335547427605443319023249611366683078716336616803209838014243022396047319692553734002628261284446734239350732767953755965108921519935501093739386614241907925016941987286644654726257618836671385368414045654181783161489433320425619369350413383512851117348374294978069349693916492580195613448899096548421284766143118739387038776137892034451870712207705404970138726746784493686427718815133190543737281317424976956545580671188647743414226723604637050165487783122087004472232426764977303444966914166256494709350483017801260216127816312586934375980405668759261353767910602269145195619230917516966967658128640722969508835814015334935342327259073770022269942235808355129602219289897299563092472583722779438643215422073792086184291988751896400658842825859294565464575433070010898204745923741590140798667257032419004054928857585794630317863044721791968410738652226064201641843879225456397140090867898655241314686082680366606809136954966431133158676633061335109142040248677712962835589672591524087113191034672336584173676859975229698481349100793464027705459801700488726897132126605190240843369051705030140006388664241051336332800213814127617594890588216181237810346521047126089597153418512475682344059705081149506457828854644132730617564855217578354879178927318933791603433118049877177313990785593417483315856862241933355309441983204331768599586570944629898399852067870455501819137206849961499944619662833987502577598043423604344391651210229758442577223745760291618352239738977427025514286175954020547328324229867908839226224557153405551271982563031304963233470746329120966812098520202889827337078684380467969893223308600186665483879772549727810863393230561635817531540912963874699905450894110688742246520354009485416465870472616048468401935296714754322535197182398040280115693006318705969866713529842373102777388570927225112101142274533215179175517630312373909459224744429480699484897988462232411059311738440055598173588389995174536447526941691004291125020863444883195716573811141539823905163933437334472421845387391238485319476053223280388629710292051907689729942143744530135891917399753534621192262085455186369062433371822394130794450393014921762718853311265295616772735863291865337756436538551864441561904935159725471052137280250621142038847497325618117655923664861134104405326649715382561926401341205224590785601799934767996369997891787651407910911139780366767109514869410086581253545931424427265138276350568547711865207569669759305396887244729584661369273891791725305700835692255507887525981488604485466695916137539937365561682778068651869243261007011755084455445274189467516867461659480786288888236787137242219049951085800909172225214876236847180802779070878538297418833626557096810552653900195248473791823103724056882970420495720869898661206160148205809118810168492479999155517803982013559619445899521010200939838647883330206747342485171865431883596559194482195379723661595723701065037656937693424381406798265763304789567528335744908863558748044676127370639552250370818022048348365304731385866065499957262133725318609863919007543088716777435086614466769535329568476541396738872886053228930490280723282111360046914207797456907582390145477210838388505959583812946420235765704934673999933929336650752829711979310695063215851451334399808843148569975897655438072580819803155765396572519750572030101796859352685550487226117310412219306452818406432727223532603376473638627977226245158641451990981394976820687482027908092144135958161551300912864753786161655191429113496012364537574094229775903237840904055094586907417752380319535846110728947441502442952696513127019661549646862433393325422367437286248005238445187262557131920656008228724458128364146355828128303212470866423854137930180113622763637881317142095417251104242200513164709455819067387282148028714733776476563493883660579552305485891369865506452730334858884173635391320804285513932099792894264338146120085363075841659696181300756619074325844985181871698779887676140913480891517656294251867941409648441835878833149937804475413474972310411648896586076733398790721470985300879062903448211012373145694204652784991447373589468567354723349243025511291891838805320765764785047893605587342895456111597252809518200409634170553411321650653340375064454077440694500823909945130023625516325815611437548488342380073162801528147635462307191801125773309381378825412304250065678859306427425584690231044944523547908501189075428076068557915235530253443029214447431042380635231839794102593329049957305350569631120396608517616135433018146216768843098459678415096715317475030305642806821591617891416349809619754561006432172335210106706991751732859331995322897576045550728404407528478616810481350990323087829862898672327951788615209933003216889247609753231152839297025204455848221989102056681376435031222595982448257198580135637192216485569655054383246771892132957429977158987194417456351508275588624853254656348830941439076731256295029255445827788937558573235135526188984244386642580640612792483014254609946669041174730115539764842860994932589772288758464524875024458609818141640158472888945557308942870164133013624771356258723770458923941499777558302699461810360841883613905924219398469448655056846301467396023361474078962134010378547715192288584896850081568715290209501898789343656790106839210437135666923295141050916666815737325377220079055378801567934376834493692285577552698545931294841768100329591703703313016923592198153550134043954185400343334004905077628317996679475355701924896672922000425713907319808470656977901047798114522594588059180168622359614512783684419568410030942757169902136623604002287350186348962539782623717999574250032135798126478215222033887500784084538366576208507512669867242654373253249024929289263154048940593768842510599846594121298959248596466659580931574945530009207814027793867773786293284296410109612734892033226010462390400168833733523572446944941659483550867277318641091922254243839971342667778926656205010774081428744904944441433960883080874868759337810883318715928976556358406378083837801328913242982730806767979742066989069336583080479596771029801916884295176213294198755140671674612319024243329276322721629468720734332261296425131920470173467958034270875212440298520105073975171905276468890005227724533360272955096692440107827883617023320760264819381717575846937281075092851839719845315155571045318427307123086314855180028493123236720048110183514394746169086759043301693983397945277285997293940724482815624346944252753387727757543108400445166316690156239437907787693614931611796077555019997634234738012417901382954253111529557455312835159295571867013846596096970117712604110477363427470251347038359134119955062714288988880540570575375021089363496947836179197991200595324439421670206962772493312562681911743656701317137977926298699000264441407630499778504999844954967758508735581887743750329554772621316343782123377363351426459508501545783639191836248897743722903969773625274724679028263205407264543305350442933409920556013731526749733586169192014849098173563377739644539746781260279497996046493680131122037916879527548656578149384781645073761222991678459108585342739021130430757215338835899602889826936459208952052519516164851296211029223295944111744335301863061759227681475753442377544025906659461941582661539459472583277557680021304874457852229981218749999978567835574201817469931296766932547817838206562138949540918458943441207840614387745551276224695840268648125659400846452909772741416351921074108955834063398600461392966597937058108448980043222508171687089395368953426754849205057840788258351389423305900347986831256667983514293670170278986682826238366751350260523816176267037705322093090901794250706210808422055479115116070413990145857459213645038218488497359586581860770554645197526447382205781418416009105455140475510646631856061966909241228612130725808668654672156789241588977823406749457727506188621108638610471891264383173066092744182239768473921321210415033332739377642012104300954426051957790436912588042203539172423745886145496597429973486006612830494015633752923532356335007530753566700935073715752773859156553430298352790337487530498863757721674609866876494507891179164666503337303410649526394217598418549619754807400640537566384865434841070308736485218126543818755289441152908710503249414135301063610113252678584942701758069051955621692699490044100145535083973081238092559337068304236261269842143458171089404337538744366397893779787523917480109734799346897396914020186332574309099904983594176807466399131887780321416785056224842808091858122440758641561471388554162145039589274400378304360711010664364224429622992197510135922631564678376624230647838606753803467941465494829118630793022619090163761707900755329944147381524890743881285460461185941095699954469049338221203274476779144561212636869491644531090716206647961086131307547659665456865919269056061578497374387457837746798150959656063542230297566419676237814274755982254728764332058790094277538975024317955523694356648543602351180526403607966263398198883403787636185674580640059847234920315094173587478147903898091534701079454078481987551062105661970792983458453811082837817498233696211098895265005805277003315348798189044107427285581305569160962101177509954341278793279199673962178220087475266862789214184473597826050446876809821744970055897588410849424764039234368135224693980993561973518858023265576819307432706366779214920294865893050035512811199447699622249956339570185111585908225391823383600870060430338336362315548630604622447337861948487038591833088436352059201014829804684628349410016494462453842103851731755199410630842162506680312569677063368291523097560990440509933064715224557272317484531829024315002672631438517680226440551205404425387840726905541257404695090369959262109863612272633065124293539484036271982026329621392865251706368071278055408841409325477017367597662966130161416177146934765797498020137084066898073310621328501038777639002299792211439471035096582339417871234148367447820459065037551489380891526018955196397510186054120886750059165580568324933421647846175703229716090575638439404334895256129428415450331496608316981288048864766474776353770492861741614840504787116732066893122697365209213036981650762085328282220370747466082484027404823318262587462412451884414454818149600139669543808394392798220329305973192750162253354749633950611991931881224320901371638752220064019953120496871938026677018359550269262456717578109904980772156198038264633750557053504263365711630815093137958341746338974732009357566649740094414182551835510745446364670436575262172654672988566922001382932586364266859795832080678526041523203305578140931757686713528730142557884101752827102257078810690665184735806440227005609295976203225380997912075745866743934721277483534781990957233705342926261992371767248025167766936666821100106456383284951098584686837143333776456320462446877811339508028646611543241407966448443828817067310683148779962029807407540126940526166898492249168219926031748273519935651631409197117135918155380833080190870614541304317482574133581493597584494482593474491723990781589667361134629732878632692093976746511678836505851333563257597324317898879907022445364266898816896061975642206200521065029828864697365827467744860332609096736580577426537801722902545295874572397010938039469159398496772432025040420696657827656621361315300566393517153966022453889301646090525840219765177715196759188234052216540827627842240107160604128698271146728717010473252491628283650704052347801659127121145768198534620438348326461607270408745439456845065775129332081889695515910023870705684923549626019493932394323762225913350825435911168820693149760002702097434561411054579465354262909189045809957668611489692671557363622761426437701342306866023329915584530238319350127119078819335930212074097083799400948616528936171494808336690092979136442024889146789184718489216898399096511967982854699114581367141201030598501345877675280307895830007662789716544811892175285868502370511833785164856217156001230076355119301536385678210664088174067758279415630971315564460284752550887511687047044525772948436795198779963893831539932604255657303327706907072918783632827510312605771669646907406700566719298638937645651418646999302834534738115407471818022143314050760102270058046219499906452407025642924345962464784840044216825055781837837192748723610386623604340732651192479547060195158897139308996311916170882056284184135165185050020050616903144097503024936569994375145807686224241270916846191078526144681213975309719017173320348841362148991744063142486824288009060497951270819841607849028195878965193253018598271233432487858921497420465222298801779735364631106945554037429405909645816199558413446528985381390710878035076525130694163048993504879967113773813747008195294400149751221961255931322074650418642918125479645757465527205690678527925247053448699952788407927029306053703113824672067109638517369408772265075732053149387887901030746404110450689225086398547086153752052110123342627419277276144800673269238116387015353646881741386560340424361131816842260592208095136063566425360990795648279794247935026934019667310494888157413922032892286431018110990145928639192146110944229715393413886388591251448845203579645794081978380287702165247839022825050100922355036035947965514819760950367819817697376517903923989149112154893503050524306040650350351387065441907131611395946215777230137889606456708452777316458754209630166936897374858584110180042781220130358369751721257036649095501142417482843784759700331179435509823280353494310509485271103558958807365110409772976700039400967624126433125465416914102991521402429398360939567577616846850881998077593256079228744578459130826528404364910850535527303427456132926588775569514400885220554278988493582757733686395663691302802562396274997182903597061348698972122332722785545419277634458102650394035738207276810539496688126060191931289545658373648467956110157084947547722309429572615326774943314689848798210286752456152430468291961218014362171752381584277353305370897887335567675820882421274032058314666482123259514781932438701748133527668169887739280193429637429358178023216102739033910177889934860879387278065085614402150034429440414129779398777061598272964032015082515641113104049467419419025005938404707058253301964828618606639464406156086180117887832945771365950800807465873071043462325603045855205323110009869230955107634096842881261382642872333824467863977086136439451785201418421263473319716661779603676486732829558654170061672761721151350975430994149914246514030777199230439327162044061691359719251516593510276272854437747105555810155680731938013682063665819237301307111666709353371875567062289850816694880657697313867685352364765338363770255617892101092925531024067536808353338874743833356738659344199529822235425875929720439621131359182244650472325051613953107053393333315093739273568701280712026504769094313297105511451048445662428863182246923957228338854363498904894462234297580900452409276464890857509119008371946436712822680046995226858012173272140681158691900666657962803812209850482630295344428870669121299009996989601588022461088566727053397836742786136867146421311591082593792872064035274614417459781760781562852600123382274400907107411845962992065024375366009907294576682032373034817837125681422637614762947329138287287533293823623255244880540151396325890826850477244957708422535689448756900314033828109015198000414716405626382211243123453692001322610547047357805891503032551278604923743997689919071968254701486227163334050631430161751070183622363140540278416417610125548885867025860812364990437815923399720662007263121995911780472664945124396544363014581498065862954543949502555006252624864203636046846119751215873024601595699409258272644800157834706012009476869499450562874331352164118904159203869106454304924168070038964760416293233538377668428413887455026916693646649562528133921521029308299726601267822760996561273516228419629601307918946602458811209336427573283578255940598880110588766922313312910623180356773525260144553893523731692012142312554072691865273671128171773481970224543441175007624188937594376200245155813691612280534083666502394735045243785691210285035637718235570131631393449811795133256091776809436574413817918051107924466614740334179663786049304954977595784314670001686596713204050977890396238187747307834359656775168331203532189373591588410708596760251359454684642194404422443490579262500281595316153703258333161577669316080295890393514074362189441216003296389787482287936095416922640110036895935223404265630158652579660268782801175487894496865201130265330509953108783233342587582301293650302317750937369868438799405886254762351760646952753485597324677083731137644772714667905640156653492957611913283524022711504274323263088682622206716054782539528438903152446392555859376062137159996969669986113804433406491075974408928145225738940405162012644365179511602481060450802088748410700693582545136621428845565536865275113523383704076154339336860544847256001217270221257083728967914371192802818156290321530895417176813586939968216951986116990668774264300913011775983401422037377137340000204486354900288047753646528281317975207060098045590424737723100949141875769618421812699532521344130547995311871223029623561647253988955539870094899054869004551010052694888426040233380921681113013939944032058460205855321725691829102763342766815549341438375259193359227229872115531574302508701150257326832817473016491723413423281885301059782704642541355834447758210458362556225358414978146253375142637294642744233331674699532961434934179164541626638821073331757963254209701039436071843760434754293790686144824927881810185029773986056678080986857174066092280462327100950382269724895580363146534472988954039937538748622489417952949416780481427969550526132524585028113028085263984990735051729441084243993856746876405726989981105962240050663406051695861794637793666409051769043304745311324593410349681386755897795716712404781915501467740568946335476718236302585372276770984768466703114843731815559566580948723770457189640129192696887191915056432371077765141002640705041811212922584661458211523912774329256326794305083111076296752241366366802426648107815801576018237892109621401287165327729733416243616882252298944443732340864421145607655932016487379011495999339397967730751642385908790321040224981098930116274314863481967660865983529786719883005351066113798419422175122749097905213445165435360599739605674724490154515720380637490791787865716366137782749382143231172697864261967722785130503067893252889844586825281647986532075827918286279592309284495942385297253333304486372014722232022946122586844241291220781592286042601084772000531720793996837033268395087568459726364697445681903375320225937645738454935504027012129169236198227857202141599440917468133037436955228770440066335187319310746714599533187379109591116938678994126976871620078377740508273285195413048824481150764791579947045461614677110064150286164690776506913609819472007884132824623710772602828568208905184383050234452301668272607996818493825158568088124907653260484696198942451206820191131770189348062939235015224189725202937933885157088781178973545179742719996692684173224168107485184581119183485390254491421251089247546820321994684265363780314457998874870913547160644261215465141743805471772995655014391478503646180765931114759387756944693200720804299296050960937099037128183298286256280350848483519847674505186677052554276827480408336812368770256613279001237727654868340426012108969788777413766031738201125546532605377186124771853772234765330839161893496723571435347487122812818168056582021101145474626692025747810681159510789702277851074643510974975484435055320837576125825597960438472267042439052871992343126212221997442935089201884348443865357281886382865836325173106145676437343939922325125631374003127248674049427009998123605662829939026500353916603899290085234135977682122872085463432947795401871845963604134974597909492141961053429258145623804889103721173589223276790688088582424827153035934476321675653073454664486486715619258250796586337491433877261241543229823999978963227320821306737937746859229709805148573443130090455207565176242084209888398716759767287260025091927519237212913505980111003988399712026555877465349633594890156227602108405320872331028018085111021570426195955238613329678492601010592005653828321711343125794881557043435801986181793480054165382096776838137237454817734680531454628153670268342728090930549407553450271224856079374018071674984787872627803368615549547664779828904863863968589123886314673404998148138478225181512416532301143659713144630372103887869062611177839915667256825204963931582371341286481733207123994641841709391401777083412769411627941172445812447239605527010988404640452723578424919084063837523126643372902141384566581612265662977115596009043534870939066052348347653036223549621318575283690387762000704680767546388276172148589320001016357378698007964929084756838510580180871804192876072556886195353894636792881967313827593002831299926478798464738857097254887246194411307933418691625286681006260129519319515020669507509736245888297921622759125517232541937747614093073329897026149939262961066362583178138763698928296735951415084297711144315401635925270167217338848060970518429742600873271558140350778615714594179790454389721483598549578614456818759666696647503343487967886478583636505262217987694111378989545698079656165671664107031277324117961824477920969907223477224733855966286982114701550686326375080674755148580444795096187128712584343431997727772221499282291758887806019950266773989567702052133737252532163176961170080766237307605308258882147833420527260402660311759980983474706594318985603169326790174010404070053737633842183858836352268582344529108091661518193705621139150907898929276046180413314348825556967016522004353070689527964607896196180062270652473241631755482974626103330551573798799610188996881829774801447316480464645715289553664297605484097286680199893149907169196630199475772525658596341689744044825980917166995251780082309917763232210040495863050316772800711312974570952935777269404966323300336110463953535131268886698559495084898191369110168499713394102630258294152708307686158883510251596652522166422352392823065897214016866577544633156284846909270307029971812818118366971866783595342183390229436819073994979894030717240082357434270457444539822992982810761044534074485506553640381475247313608239217680693830646936533667104200118198280710581620928866103482774121078320540325987985691931781439627726977641602725447822142185907106395582191584496711159406150266400116153518266885151160732947287709784914026053710329474994874022520927357345718860342963590478757133656364180895148775032857294961028525396747059398556237837056131905473638861939645181026182539123046548007119646612455181441864365897882637281547575571953046824883940244458364972462130341189522878163872577544468816499008641422068565389319183394462810007481767097462875448574377700541589175249448000288997874095204149926833267412724688212435072989649154422258719406218768143597683045098435996476497699791457442166547439876260226016257889600618668780299981950275514552967872945667029502454243096794629447436240707660233235889790165393940122636653979879091332747969360858388953141608486209830692020533963141993217373552699821367721447629135860456683785561222033238454579833426615533491177744094528751475668858065179088369348367397621068136582747694416562412585725358070108961925137858652152299029113179878410354999895071300939360256459908045594911900513039457121712687310903101307292139421011133205614627191896083155007677763204080907406450002238619653794167875484530262345688062836782647299317387045311055220278701197593817621205667986285017835535492224603997390265505826152785743178402169453823032179080460291380080615510560418768141479038415393138396824576524345788758702011697464932843311972490074121086402793149228786948914214207636665894023345528487515113794098274251278304042353176395594502253365067050797198897266881334772349030683393607587944441561270793346629219983632076342040435974529294435870049960762797194223158481612695203909357120057851989870173109971702755843133955613304776769317321878771959022225009210543117190227750743584594866911430255007805668688636439301456559889891235255073735148337719764993311416696184903688343047992530387243532926137401222969011572996615070862942223677882482271957271934858013765451967404691963446843525643389498450019434710637919473550991207381398462449356774986663007761729951141357830950514301431316036828373211418470234257630974502249745267526522002137309779511912077792525414068649236214757894707416847441071050078242590199724121629325846642903019431292097661833688645958524809654202504192597444576300260053569812341922570094827308415942925612092990300715504134457819807556423245882185712776628996892220459324286202155545146879732886405931827535307919695778742730483288373677564334856484280871825193157281774085416214132430856410159749651934049864337259241418455362199535889786415109943263381108704968697538123421603651911711392828369957587850318706845590576730792303400758071491047061330764653438495291466648722302913194370631968345109639697559700515475304194958196029949126228104938745943324013449793827331457577917961072744639616864464472644964881893250952365371253393917111709964787433806401998356927189446190991296946031020627801164928414820479179796805394948467379829718299653014644801646164925508436499607133568870860923987972524423031312705573995525850322602291282606115796936046129218514117084350588370759008274803820542149675259371359569671066792224907764699899326258220446878170515040352493556878774053237974696727156646123001599130250656699796409158039424244369687943626860314071455185334948080762782642331012389190887375694135725358065233863131946051581393042283152836211730693592397283953771821667088679720953269700935961398427413183698109397036274469779967917567943746010221597531070475480338357551182414897260977647508189474884976358529455446526891390766406780689292768956717841344813390788890130509011803543366095367208085412743622091558355600807334171678805665198540804598204326739982605421456452202873776913843544613380262960258356715909058994594427371235705416264029911521798102467260585117074774379622333070933505291118671625113221482518737734596587832220680148384050364876434214791536273600931785186390800958314469947458924265790314057515854845857436468548828959120551543415970116778329199351228153448064412786184639531145325879272726832836602959224756919779396980158821793871662246564714621707061976997806811319068275473360851463418568781629568952056116728329780926304680040573027676335259744601058318825669036436709013967502747256496501386813143755588306474455086769375765304942678078615217302221267226625397270176098128265823488519707728911765916247011688264499809240275446981218434696359322656502913571126823215531289750008730123329704465020675650497611277662202708976318859640919990729759096162313875351684659522346014140235264479825613893990757110197628718530590746224804176457027817494846033306433015664989004797672888166655039781497406897995590304284571479177962908625929957841394225960846042029279115496832341356245795765786043881352745462204626466653265683666559530523995535335452909817600643990764515409876381264862547841803408471711366077199808524035880555355533307456212198234986883507684654716958690843185596036610608529345077667011067113476928136564715870011936038401940587353760304566476562407301334239270662011872252029761199803753499216393642662214820291461890152954704529079806472965563827468862443883038770054222897694571599697869315388815181735717050356163403026842353654476717817112788120547698111147959935962318125140517016035461073723210442152505196422258989086823328616266247655119815701513935764875800978225867337753822947667925662516301513975724255078392881130903507515675523996421768567726652288094949505550535134014435812802727244347590813726429637256393177406106934915848011992530264008542540638538856595960463893662739336288320396436903727320190112068483969772086878674202692251413878251865587283667094836252503123838002680846936708456261289430045110075359487068535165925527185596395851261088612264916054198932064325177147990216341883321050011864042892476231783216822884781543946053745171019833766460797387288846182459182756383614596611472329213753585666569784037865194121605009777486136014160527806512431449489923173121124983888577035849488381324278226405483585833523129370584755245676353335960025415869559629564306621079349287280590011185062217686907627358064476524007701959361987376774830748252437258243194166464693136317915479076736478600174902570351950514418684706921537600618207015773514922200595555238771345893285766457756671923294707517090160419856972912313338477679439930083262993179427299773322054329830068443076059339854925756030381462405984319153889960319202793527408277878812753841332369813937119824500218222701160136400332928256751014577991595266852375776698033097352532351374178132272597138159436561702054562626734770229350238941239842248929066936176696382563648511010722827554927710464486918378773373836528898971424873011806643740235217684516566750831441270617043666307600397258442487965200350451696586402251605196293991801329567103041354934402273046899909545778660441486265065700389231504355567469396736621028250740307430666911908644774801665333438324948618613620912621433402104895514112967946644484998721336448682366189048454557435713969220703515251501638107764923175417173487331348290792341119194736245036583992578361165253488259768392613198996148984039420240634705366749381206732308669969235433284275687331569025419678136404795876122398829059442957365323729728574787990432647151027623857320559782897528762207782514887930190696746929038832656677535872860828615546885945109178964270742239424166628123012702743746097999803058832693974345643202037279918686367267442534287321079156118298339812544747123548242777034652913636692842826000965553613260060978443662038638679522871064573048187681758500367719380908086432604287440942224494298600483617066257526973061056053121264725685969443005114157079692455443545005260606070026653389963256930916281154727696439902502450732124025689669269764362336502499092056910357437037382271327173948975736322215640748491938024369350630099632325489945868171379638488015515501477995582916166958302626573174725211920453450196655998307285302829265077541054449753205462700914725585967806068128546923538319329847793434209696680719124072393038733742888528386466461575331237258418905085460916981779600219745996892717128779011581047714658998882802105382532500856376412683400433071328694736204990668009630796175333270503666694150436741733365415018998264511787063762769452728911728485404987134453104010544736464261315339139363173432664620725947217714566627100886979394563031520851867508294121697149014198442845388392411628435011802261182917035353463208565216834716814279943194080462915964871188376368599216851926814730946263800078834235750346474817853824899664778968335053946590642837478930960523710613694852006994293778290182644564159798322761781746864188587438357116584655884151008370703628646478449088365597537741770770912907019995944780738161508858970673856652772970397303282683689746209303933033470492146339971492582554359310494144716592679988852459220032159894743491278801253078805348794511616986034505047301182865459947921605127600275129988800260828373530218662389526410470677778876557202848267937552697626252243165597455315960211826718650814751735409366153072254676218876083046558717718168037707574666765405046425833049846023033242924201246174556469898605279234216696516232056698663627432944089658842000435061922540242672266995314602970795382279886566250153352563551321427913311829526960883525494846463745747579663771546171813602306383943818849427670806348441344143322294177361051405202192143804765922095294173903432754041943980503961919705381508237850339517053764587779445758867668368430316773955845919774965381088643146616592376361954394050900590316078747984496164408883034866598301349151311029230548409303399028421698038697921459627990275646361066088530744303741108670236729661222921500902469511616423389033629015654549897878234067546891055151919463321493934122332557709863258499589539012486127566809037138996171364284917186704816735941360179869812327061045943351332232739794011732179472422931477319002978261870871196916421887256435642074112958411995866721702004012239989811057901722146495068738330724608179963192902026568539175843557679461471651107255789530372187650741671575344595782674796601207208057713213595506962942848507947107594989498566163976015000874177718115447020579425038028995065840525385536169933493199166404851478917989590768585866370826178307816709233965249171426691956010811766538083242310304509687421512725519653218158942913633051169440027675202050033338556246987714404943847889101353927893304586335884698376560391366656467598625174131872420103930194458808467637364915147028752981047255015890825890133260114035811283342340244964322697463764389249669047213245541320750929685794818790612294862751999297692021126926542604684791030544678951286186822409422763891730030501468486778429471787065519557654817750689021084009350256045030319928632675940178002815705925621094299834810907371296994652747581081589058205292506554875258171902142655042778807291317193180409180564871493242311816808985919977535636187941296739633120170413460998253201477330775569860352655387334957551389551423430968014608517679454132542541247948438252153985624695595127488705602792474248202237640824221259832051631650669480780102931813035437091929516578893687337847716721406495882194009675462084651589707548245720613581146382820701771034398704168599221981489389019492060795381203715554745668626621701712339072124033001782392447702990112470120513766103496823281830824103572935286183297062421850993210121302472161777343460910543194886129842508561842266185832835001441981799411775504579320026260460517402308009036578054343077105060887378869292015224858452009379681688445810315878279708377037366129689644414397886307237359850870929704780350544841777695472558082319537275863475177220374703223609041266309658916448890833690843765802076567676138866066025913713148314810154379750170411070782532142770827803354282915596532534444715277545014970003352312793687873990158085910493645828382694639978698492129526861036783123971601210815136857128826597667608171791535575626831205252480317233959902340253482508225141561034761981792422375342165054482839245352209713782451280906058571381958694210732301434841428385898725631616761513040397204242186567726962232146337614799492440782475400176015324122272728584304005461582370167984848049343277705027994247844838227990646686292498939127356339606604322134728775121084736839541028702173498937814687996918825248052554855850430230430562146209869430147413811587245619125705715959019838262736862195187294303409077001222692119282756258959828082499245067404809508240880118795151718399097869624225405173701733410294631920366303714647589456185453064928389120036348360537753226901873513636138017676755707116334127415178634529185809151802483261104651202668474064881480427773950211026241901179088380607442544894096913166120121610162930916944052682588435749337857306858750195691437324845479789744776184823249158459975106983559645487314453016148644412829719344470799477091035103892803449643497931134398124410023337307049977328489045687473891075315082772010125499289282527809991403356906570167943883806800770159668949789329229790347816306250345145877324027102254434042104064097795631010900324853264484627831478468792225470527846578618553495242013753795257372541214351437795134454704550307334962541887575165104045578895819648833865677175072462068595505487511143916284269322298064124276130587581333470055859810628267236779103004593751840726186655303773189201890678154442028481383234086892935957473562292417439545256528263568427769211598712403062371979631488761343940290167550688201021169606495992586220571370675557654072787089714377620603564152181915812951705071119468285401858499891709237462682222068926276838295570373058919920315293713785931182336661860696059890025170615600450472279607885185300576063234703652681702898656273016359491244335952029507303112662788317486009362701090381872246974548315416833535788988617516822214059089709584983643691972773737902619758251940177953098289653277905557582773881356028243412594306002701634051697662127495990500154096298283739634824611717766704192088364104696517142554682093553951649897951423426583104338626707455676707340778320685880160591828287591025252679618329397200272423805474710846830402245732717940134614194038936585451603607384329000207368661214454717949326157138668074788564838629884083125304027728685133334613601647045361422212658011771642639936963292270364574289205541840153748153614841059600623157361323224912929501549787065068168224991947031453618082043408128338074535320425738057692820605195029905078313040658467270760989951931753950860958037731677545409997036099209524451348385080395025396809275734002823143452287024442346398073520888422621325493954026208500438112237329107308252511251615784784601201686313531436708060100197445299620190472936121262120093352477830338709111084385737156042561078605734290129437649737374875300118763715886227196517081739796143376178257676961122337600118187705954645608183345631160803551509557204095900024118249037390025292725245961390254490924595117857899393041329037473283698001271952444187324374519641474148150047470204789045912186890329889673315358977305716913983083522501090737890941152071288511523852417728291165030669462416577446306369861907594832168490938828251831366203311322715598899761396625149512403087331579456261382522385293840298595705420070866046451617558927231077356474976418122329944305032119637375544579402077743929433760728124349691045904612471981137268039862772684544508464720969445787829640591610478430301306505894175549809218983501171659105822300163673594419372226314920662527859895120817647525077271784424077684976100028418111231771011679493739713645982929780586236473651741476160233182152193833208194430905359086906878034284497966736161193633948435636233674790196327447205869055230088996721441228601496572927548458809285792766834443057462769636338160694135770917807043386555127543113234529822240926285655982558305642211884444946708938855759466070378589918889960737833837493821417006576809125121278670774861217802500889605838498758469965288060740929782196014883666095515091397727532131704102069506741259982142501514312297869305897967241760957733039742471733727508394048272636012792732804118410186844004909567632539103183715318837011261962345243282189587880461118791762745755778681635297291698427138991952486804050552355541497683594773466827776109827491759747577572753014235445083070503667698776078475911285242970747738721983234326080299305644354460511412535726062792470010810516576654315823575355040926125844214603111457904095057177926348026837871189504284896153685539814530507248000687289742352497541374155088427198488544068776759474304555690711399217966158508990064253543438579064009794522522921962586179319633213865924034008494550855247478111326751700895671904206408388805477401022804463327861535779087917052517810992799332199190622020455065598842315551439994780921427836611341077458296807388627380299462732697454516185375779013227208340246487579051579372998746804612552403669420792626417118572440577954297998423330992767924313170768148984509232073382103117953194922526240569820172929658053009390875816535713197416319477001135003260323584618929678067584387470726602154057177603261606572339360347714944208317645359180331126608441398245350144295148667347272516832736446774248385435250486995349019537506405405326753388968227842083666695952836075290492503871519213416313562044667605431221141126213774062562717174893631213180003356376178875962737565971604964128064424938363206210478366475492076412091571432367500693241646095255862195006995136388524840990754921215256076702806950607206282624292173128059229829645603773653723177474976911576763242441039236928993603788723062687911840289889014518871668896779294843579867872682681611865569432374022820349078642377049898123652162630208884053218673599958339097831119427399302765427176939679284164238464263117678246548012790386554219025157619294528263844561061610233046113086796872283008987773795583922784315107910984840633554240553458449812568172734360621108508997807837128426812308194516023707173935880616804052202424737968451559879409000611880055068108345993953104959915930342225172667839292069646849935487410030490822315172516008088801656791075635137496328978321793287565393800435851869837073460812567653066958479019558939471213713311770533822701346623325805533550907870955224423402839933486709509854728737796397875074144890751734124985623889784608081865785972058250875489724935643870573788295898652948418912553205775667665240205824981923538392865456822742559867777607109068628546493425053417415924171323073481853369117832202304556349807114427756368575898433596108844700931839563891706857253508061993223040691379378223494530854511483283213892565796201551740749290371563162970268416348415837453001436233620461760574512593912851897386473091751646654610077476598495699343882963777643224897747980154142183437800258314989988066313963058635727107177896427518704102929893242316958395287687844115451512421905750458269666519491367265631915280777961169319025009664588858992992131412554078644922382816564901843963143099646050765485185732139629354959284866043821934881644205106226560032271809158597402747272476933968765802392341857551801766872622205998755297085069913807479907946281835116668344295373510615285521130724781238448627319100052632168373033612677643715866680032703128751457619762885929600650325024461835563161371095166370365282177161392351365701794730091052172769701820238164861634375272450588554932724996087919794914103389630587798220314777675131983258197874033257294268050929866077349900701372916730936300917376791910597834867265571773642574587933511261131778005155132173911423966593496951933379628363505766705064685051742103531978671139454041736040649061636524934813215341715772950428720530922562188630917664365341538241063275960233945657720490667850587201969704158264141797283005355741952602509825463340237305064701545847251418987430913417934307867346476332870077253706806829398386626123161101710983424617223192953618724885316560398477985259921088548373630585303383210384774839564272328639096492698686281398915277499579025203594054880829759383982555278121326294633184804109321525862670412932377092230870304656275653204920629409355894645905807110080442674355665828542399331401702645286672450310530491105174564029537411149121611939435984649376333294092481105449425423960529508094179447054211074333494468632124933784914333671271448722422688779470203235573650077826232201679338483142962291278389741001953514785250761441660713352176343584670119914780247991367988098507288655354967639378291207493280015553859898366180425612969588011801579512862959213748751539122203469999372774213935841870617001830991179537830588387635907342601146432955135418160185704062967584671679239493904953855903050960291613285637775434215547568700109894845789983388468422204864937273157746750374425054158518406589050860665875638336743225178636169077434508413511314287355681545670928691002757004430261073169185491370927596235570096536944663360989256033923862215161556532442351722190995446446729824734279895170100023580898325377700822924312828267165025682294515914160955902084541415267775383418395205066387078634357792254760286179881785308166139004099587943461688023180184216122317443297661042904924295937106763616388036563661605915397064189951783432488441583232211924123433722430994064716135829044616700237095024500137561657831686223312287080261780474766388878497211440809195311001989825938724850402068588378769615753729848837158770352286830199139887318624985099400862748774021335636600809307150511808849687383850821335144337048989800378792685874411555130556919581862007997250463168000682335968635505891146359520515554553362836489268194602597443461728261312140702004978059588469018948227401706879982051963996425216594328614403617375936063340640448783873910233938529943483392918081308774942389394186508899213853287471988220205008711479908251417347053553524311699274150851285396143882423403806267590487527329561354049158591717084293706747240698023375141874355973651616268849881967047101445937849564590097324201540380292240723181844393747437919226148298786349393720172030029766384837085827539614065659544762522843516097645417554870237757623787856564740033275293551408146132413143729326167418598571121786304813040725119278650534772395538305021713150285929421727028974685771978351265593014654214660939157679565918562822958846288578040982585129203242568775990044704160565002708098782423880857837364540007716371665102724096435236736533159646108185236968438589939362156542277300245149572958753625522971904257268841419357117829286023571023623555811956198317397664626599727904066431449436801408617100647582040082036040575709091261254066846565101180352481287842480364073033942380778681942226344789694109126138537235222320121475768797111383622526370926928050464626127716395110390487185137416162955293919285958174870772341653813559177911591481360288693361721542439642272988303802954186436444046366695910626343197831357023456334553383252283337083569489096615360362581446391332741647303080120946564800801807409474798244811253367633441838179110905242317676859601533824429492109578278078694829106556739435726494195387793825819168917549499757196049515097066476821770711625776931122912375673243658617234193152308542515046794371964350462663929800105877731648321385754800652990237456638401559499001954899016768495462553935508639873993559647267707799635988452229835490756742941441115807554017521564842118204840918727357051996374076064996705804323943064733269051907960330760172611202990677477815435829110143787773397163084202578576284400141299821322233335995961094675636449949319337035362308532087581252103901506771710136024507083090458707376966713513750518122717890476240282268995150539965427552170837726094256470502444104647500473194144448869178940124032511521633177805457778953799926663439618899604789360878463263368325059652675853209265554366976123047380227842213523597910117831477861282296600905690229044493024278662355296983851433185837477756525036364441486219514357665318810617574771704371911124174330772917064315683714278963765875219947684897063434564949638888100282219968267922936958833967829499259169704471961553523836042009358706680192259875139335981053726136240305183968958417186738207995931220432397159795268435804935903036152310832724889483120429992476118294361988805383270243600425248064934036402722511307405034187204062916020108085551134037025715592677564390679307958901421115906509310657074453121788296793349370090345406474780758903861427778000872622585841041042918985060145820643519561102986938341542863746397626984159637456749027283645871925337287250952244781260577221432701597628050372526225522520458157254384157785844022659067011308866812076519021257134783949342495805952431007047147644234037536281670768149469097107791976664165447990900823952794089138764802865763474113259228911801290119382480697951751758612108412815820242056452938323383337530084578144049789771601545130771387646368650703440243219921898422619305018165191708008030649568415623533472554066991245842064573622093427634257948037623515780444337985372522397064048596422538262672279164722976104763118253050966216377193912007064442332459882852277429196766423572462967140648563321095298830894343577758259904883961488289863899797222185211202385337478100034547752838244656400890040603072838814326861487805640299402405405911626936212216306037437888752993868445348780781495077728791065076238535689784412468405700182554643877969596245368798222418017390887954026555521496333016608975478422551880705582186673735039625288251731878679712157712823353280275371532569226664807347321157242400642138583801098909746784033801865799542373866405269618526012337517532543676907389518240348550225702142737706630960721047286342390493645240071166168426947761117818696593152737443794341989872286374169958690320011945348417404968869213098215325047544805320165970156178388734016438613131148799751280984238819639979211619798559776189856841073525144949602048392500561311739831750033970176674344931395128822169740947621672100611641488921475619778097558957321674591461461932996927804251746324062446787589962820138179726734655525194339530374342027558139565791043556113715217714858878691069888683911035269776453637544902070550945109786638083334252537585797637126072579820557290328155598366137221853822146182651387902667854705488789362809034021641800711310386447544831904048068593449600192954542077939718535972316604372235674970344308030978604273804915588528847638862868745467789482699511346067507081311994442905165639045942544202614919436711564452760418453505844323358837788680461096774373833766170318333080146385987117184084886867425957669018537705382421774246334857796140004251981639232258481808347734846691696468721238738800617894899823152787569504811455307110580155838086617300283722649115618857439409555926325476077638482485572626471202750584303439589664425148912348757862560950647532623857216713085604498158545646182222378527635806673320843993297347880405256340484611280333980157253109217033980620969968333393922663388845659010292462573270823620883944055430978460318877837156484733348768836666063570515359186082113377800519024394252211873201046763791573800953025389983982192523438929411222959983770032250292604646489471352341296902968278775408194667754734162500136824715420270247299133723729346858560688880942720926918782329629639923536533887098861240337303897210680203604256465720850488417069546532375632261347550652057679466718610108736397891640049631558652612726134621137780416550651851472087170043186539178639388434077051818285639973315267419989137837567316791567481148675157768846071742584632644631738050490336778359459262479064918056265245682504579105312757238588360466246817655677807022794071934120758819212890613156641052372295390496450306635728331620803010250106353227962330559874321756355211129447323765192600236843740571051891248550883991591004747584076350444670979351323140237390119364777598020068963613427388687592696208056032730412643711348413260727697273181389974983505077066761226919051519352852533325637744630693555676181107010382967645055635084530585857067315831949261763146656480535458242348754302938195098589556144786013824626462622058391055381009927839472716418767242767242223016000449608438356072846201713361225281737823280244581805959637201330207699520229460120250544252368421938419468699625869339887570995211467491529517382080466747700574963040956715881032982100944251066904820132816901620578644077095024878157855080780826937720378649232941065120725947773678491710890212864867486165277918693937089459036267940776925977135247839369621898501383721420431581605492791720225625563065879902547951916487233202567877330242114052369627963976637419614014965523685262867924189439635148657363696806259016007889714133374070948180969129977640985613165052926163459360525935795864824855468909903391939102973154171275674893149074831327161926735068459598670144205224829637594466395548206479446792012920696185791952798891131027861229408386316079335556756154314567513224263082711927388637519392922763282476582777099882137764733091620545006708335244202243288636720978435710215875472445601894816389394766508592058843469301129394686812666151616453003135611131545521755917711147413567968797504187381098484568469459141577367578455569828586652561457071690279545179774686232272055345574395427576719023683367543843762506779456747780209167320652417381388692811628580546302944232425268712903143839277469422893572419624142795628927512266045103193161105787931033813517197951744545159172663275585845002136732924860856583143612299198734455685012079372673524420957769091573504901967860179001213078603699466134959999333834597871366726110751412883400278263456364395268105881801620903340435152377857847933522641005628119645905319720503851414294991797229125735621201523189785164363356269384216417758050016195366807086866224709013950352144850564803502508272951089903740146096890467857904674652842219882801811059753974202935618612942278509070639811200759488342220721847574561461838530518725822546275914068290162967271536625388567742332737948849790631879825411699181023658674442562000612638986745836042343159666184592465631934418751930828346739272592104030904942656180827325003517232643972409395021592278032516145253470743587740599297059172774187744828833087472386379691457539306302011522515915480569410785690606596634346769161098779184672848443098418685745448687442770134020929484184783553205592828297509323944300343149510859773758357396014817884387863565204760105627831622955120054689117647244977912464770680157372499669178892132881789179605894691072355452174444344175645259696689043640673782517681178603425559353906539635336623778515349355409760228158539348812293580732505643644657011911066436129757623423881884606872939158488206084626670899230057677234045876091741533074349139772847021404090482817606605794819731351727654595380627433339513885778861591972952908145274251492050901088335362431222909058050000427819774704020370432526522167037437866995807207410605324605660546433856167389453980987185517496924377211687281124286437657040073861878365828626569161132322201614805663966706597871396677914639957187233605312663704566088553984197572775715290491072984557633033299033897790772818910494211505855245078273727525364653614978259413967081572113837482893529041911129911118998096328835619446809882257610535068098728646010576511017355744743756553467541842668358482568525816590873303816910709538182903509310008290003970159936477415711011789465046879806968167720228403563942044535136074915361038434886511853220336703110053315134106429676996786495642644742462668465132950448691983670886699399947712389599819648460413311566640033703286137379556515397958072436838147822944860861757676937897133509547822144021816521985523384686205715203632374750318844376425909682745070380738281164829257815553217577548082033439448479357282256101701903320331731187216756301264147749348612938670171426117613194071703300060518192804451062542327436285474796707573698633071575952262008778808708688704016051635128459064345530868960262099951308323368717949063117187548811918112636482195573895820514523005220341536438865675139789121557032145951284951542132114525775516158739786143158284385958627048528580219903031463901368971936659182699189008076842834493194375368720758627108505040403598214166166392823060354780209986472807186443379551132925624227291971108959661541342237720738677498610224720562962622340716242589771704247973984481147115428487358890693819477274001242149596633266288395626248392821574049469362075276581218316891125448392920621348621280976945329033203956947716530583257630876346811322212814011120045719808842029564268211361892765863491796895496932784175087317570347216265464369711572888562466269419647775498473324080848918193295494907696608469512834503639596523028506257936744009751021579344413697819423044942210115643685382776391222384107703399691885768136841980427065413853673677024524764034392114758265388364212663985265715133696244283033909207442609420053164946682393542273844693926879857156341576111015939776025823795882323885479252426052051050612071671140319392270691282930586649201913016938531862986806969767589148368660309493514576916324007739424130778702615001354470064327616090310775284835637573198677411633702798444147755760135506313928339451341345236238296871759822988213452541612837705599186696652547595997634601899144721606715855644351973138024373559791335476839109386481629552829590390491164419741732862785227657092638968623442117095077976013194350362966224956480450462667372407694869784378492247534036467850170355943951505097886701349321590346917734009516470816180127712529213558647367461947897536090877881131689957077183691147402227465376426097285652485849804868871640507947473177991212434664363974974005383397695385383376874919139919675087737321885164183116259510827568395374036453587774260558773011977510851239443799589836615263813282030178772299287820358874662786439053850039333478536975822197796575031626970087473723198559588369393902804972662204627330037916334492297044637604993813254884891892509002784746707934586305138714104806711511048869691609005100646096689215864770510244494842457083674410199670149128246835501896229688490804031217144180416166175791369570896071339372395581577056481064306237560989101038524318347791365979974921144767648964380536317789335128238712136561743429454966840190307724670347277197385913399469403398483859287420981987965314059352878057064919233431678875487680369212844112577004074572051855886278898388652169239346026420331238065057219936162857785845479888974212909363835209247189643999378754380679951887795404191609488999968014653942534585421771540800846643583752397525253543819058341848223482229366655219498454720741113775719428130269053234103804347977957622485362999949643559743603916168594338160752466943746767370421264357462226530340121670095063983711256480956840416984221686683180252098567050236179589480750232806894925953315933649740431953779172331427263603092032158815001962787423355666152259330649588875772455705051851775386963779007787611661237962875865241071778923229277256711648277152279188002723629830925528049019007642278423930157350677775667213456807604320231608430357647363650576789155201094633254644532145952413771203959671819549639952472929467365241635236350384297925635052387569219666196617519337356271152884707442646824650481441318144487407202344008564855036378650294047855440731810686708416398209326957516584962324910465972999353417786147987016647571887994648995142708472175378847960946470571137344370387731663716054594433448398959112962446086446004161024418758229688872437623625241117830079341842169223645153433838648545717226110320464768396358293550039481873652951087864084979032855781077768420138434259986835301202245731444757474583620846181069100860969746773680732171858432268911662850590832173910836999914422436679713903218956890748477675778626129448212964261211233077800876224279327642696272945064787624195886556205435335485125714565205044262314166842680026926491305425076708738887851832263190404835048351906203983130104238838268199632540560558079390700709910770828304144117201230351349832969796093919413616251853853506848193523351763107341775175759566206691736707261386637223608242816370059257964385252086951064873187394540217593198076413310996074769537605619854770318981057313706512663690625996379187508579464682116083702463746162769450299005421978093415396031761846830846003376982376976532075097531561406188142198887187524775469338387786247310190320608641024989144791186586256148273741239681774493769990173877990755437397615478229173094252302684190723260457014924457624807737383223522598528475241534405646815011749167545709445377379807092895421651583219428053619088830697276350586858957913944882493930035837989779404273151791785342744941511852283884145382625413261947984338522282792500025728928962665067874834601552840876903563699934990233424718969827324955310606070667404113776213462453629721183651146953735949800718359522949485011971347366987578132938054343008959214290707925846243939086415913652745875956503930896804000987292599272927403954445544184651639481977022462834777327602255232321539060097617566397935770179623738512186182239732920713854558719276678124930386276731997329300117182506343944072351664726535635413644297521126259781596931068813320284976865166384729285355079574121430198852482226230078333093636980984730811947905974694807983060224518541001619286942285213601866267541101065380694462950965427569549739354667812672863745551125416869675228985651341991342586404281973704668414919472876759687824377862710844191935474036985475535062362947614151581870923805677359844439595163815130198863385797866740660537834880452486970728325790781927372718092206941399371542467967520448899736124663522211045342857185708234203094580808291492898547484773106657932771458643982827326321188753765497739871652119970263645685035571597137216703627426674287632319618520184018445151106890369415571060420000606694980361618565741482914541134886966945206903106730759551987821790977371512078876268281504986057035972578148126721646620842377451297766584958349147882598849339465125786665425839959040227600473534237391611229415316694734299873807952422285832129177347408256028751737652769603946730603460761507436904841199206383662516812891379880113252994015228161516537116786068654278988211692831562681638436669426102564542467472589206748402655819389089681333700434713780981934522961137749944623550492056804508952873671055537452085450005584486815703090680216836760334326568539887117439543564365918920775184643573066882107281217008364937272527574768425857301823201503470680792961279206849044014934143653226484180445969803346905787096271283566792557313379599953417222278465336808569283948216971593360669896198938121681785304749982749716381385732699038671321209292170864548732637946456765319839288235107547312619737671477975176575706919693051340332488048043938066916287950079043779371163869530406107107539276031088960044542174120564563332959724358050126020784190212238192874308550786292767864136708675637663432559107760861671163916419191826692952868829072770603801045729853093602849693587794248499583041703628253758195750591873449470780376584275463568396662130462515747247175210448633237488737490964360153871385364949945915758430774990858913681590693383957807691419838790576834779842505649684864621662137205984877123492886768142087402466013091503806136389766435771193811446101029074135722676274923859293413310863320614116080297864925768042366196669029036593520322782508041568589559324588199379760990026848317961951766643530016230653522931214528646735483378877107592589372880129345036093479256196649028352555337456246266048427695219411878720861939408910897337255634569061950710644096784257934434242058935943967533488959601609002230273879965465987494562025569637749865570254640340777893665651723454896626858651554572202967050199805020162917239767579441966616098038363791099067994508161279063766728944574547820198188471404736367517292705468802169584070445034958703481453613090340225600412801266186565374967282521266447120750739532122909648090543412982604978533637391689591315801413417889108467885015643167338536036670442405619505605020159617838502257783326575393367220892945768577125704039346820253289396507034751774756981367539566065474692172328193499081062126190383942011386357119849844847210312123871824569153675949862578779690778381061094703926140978855639884714997270493536305708159074123043975854457742672464227494585732807464516813899364591642306621144649461329285177588311046119302161183509118449796891839770740815027675840475031664233815011675475304770659289351307783786828657274338274548593145054725101500433984159423366827977008654316745495437084165892259412724120993529634381545257653123792288088249493959230281025720247631244618866668379185771006756740958921080108986472147771782457394023607736385723058775272156402721616311018357923343355830454293775901219003987610024547093164321519404846877810893425630279522139060917355981808163277520124152742404165142505874315446460018405317355327772956136516741093273516178190261101382580438389420579275508995725202788814080516867788121721678637266395216940775749253187533543926815688560602296800726754230036384141492377557976186496452430501767790437046046131891374660639137961844722104973224572715431692525671671018759944766644107350574140500449847014746672362516213484674167960088564242170267427480900208532732351253433299167470058812499684535115686503015673653349249437681436288762133982213670723911213707329489239934279570680807613147483850590245986756541763225973071380948303061886499342123339245988222017733964727059314542773307297414389734314144259206886025727627627415952824279780117413960233170684714169103103623858405606382750794226409894288182100447564589660904201793129971032160718951265510748057600615164004003344975587207277150158875662870058041535048255613415880048062018477931941547942165564233625676589369008348876502813225369180863920859661760799418404116968086180501676996877981839792682966043570273188874389561416053969217676390119213961141936992718255533451167815777702273855183939103475188600842338744650997074250559335862547599976632707344487412387522753322629646042727969029201691872919583409960035893818512846617308788579677134915130720463632122878079371085495380989354389505790275089421882053511808963762403804684966182189770564705251220707068407177152660222951216015853738802699734643423879998294972783911151026646918662716498486101333271233797153247553799162093021984228560811310612666146368997681179860721701719955831875192291878483066782001138050295614738968341257873110323662907416619008066984794488277737570145759491831640275998019042390414731300751995498324584793244741957627578649375978652417077568909252925841518247390836373129003870154686458623929720306201994288504082845586014223196220778050219053786422857868403167695860488538801071157566469425772359516666136889072308819087348487374332637128887979456553771335747978843612836480993776054619128238993350324990727230046868660871753125008087333031790089493976401363963875742205327209402572288279892394414226050956151260288670427061807947398655754449082570271711915669925889944007901375799267061237667374218878821647097205421581808140710094188668174232008069583466190181686530163070544409243421960918168312557886579251647426163110762589965840319360888073858844940764735100500016752896744754820206501757361980322459188372801272504209180872054389443258755454610457219485632668479664901415141695121315921085833357208886592658262526959377678161566512533777818685981107186370673319441943967229775129422603207305539053577077645195175933306525624932806142586778736192679928702440311729809125744213858022757003218164791956220571215204736374883185992126876388198594384719674525919886641559053219356347611371685990307317611579827059340456171960037202284951079176685789530797290677418296312402192531362403435910903231791947025283900140354595422851506705448526474488308043950221330888783471409968740186224681000524501947105911029140056593797088402584355657262739973587561733633927971786975414828087795949577687356711820519905975607118435020781345217822631199563661286872537439834598793461675738633387217599335104951551807705195904815359369138732843544616166880397743697998557478042762291977478105432883780233337999338420694184533668826014913772451918301158065257896274689218905562531961646996987127162603455941771959242356454267219296852797702590201983225095305815478603260823712349815146849450682632496541119974279034665257562765037144654812528432484669521992789692106142008540045990972242950919683220710648425108848327982589804477512794766351096019834193291079622041600882719513922759644825746588456142426568163183583527742235035649933758695956474339125424146043609600096343410166684646509677915946071867379122853964181955506807060121219189875463423310084461453993658329750283741046965033098086437379030346950547471177961934439261575403838959892605367869362347191962173518582494475130966212306277635588214926740847329103116294448536534481585734498581797805261274583748223218467052323277205357781554675708146614166307091857804777227682491088881414856434758666010958169105547339206587241279650106810065505498655272721241408399152552686218037274810419460239849331187934355083435882505539405333086867744323824522911828925138481986178951520027962952768189475347802033335315819534835398443340838137449400330441468776753517381305766782259906491538442895544854940496154402913144720113748481572966542720633928282525674355598132113612689229856006226397443723255357441008119419331243556466938591352747420374645236626280569538883288634149601133594737608198632871821570818261873711127980742974348575201914523093113434839914869831232356394628730890964690279495940636329232174672642605583821106024699934335559893807847114071753407236230186408002093462904021246177616752620047183527527482577114918347172050713948369107406413385636265359571415842195286968515289310760890142751213812979075322007444343541226182593865591453865005208337969036223960496250359614503009915844445120652220266563567789082240763917178452435365747541910893289174356542416843908277578266629133748002830009686235898208108911498886260415018878261447563688620290988115237896039912442985678981198344776346203105507428833469052370000846946481441238347317489957409304181815234675615429937250545423068192579527590058641546507865864971190458884612478068947705714648678153491539289044443165062818418995218317968909662914124019960058044662037012224986676616832716819786545141395706631812303568975649044489941949300283852660640713186142147954407593247102324136987095275855870426563039049769244764791935524716916173390503774470778751030183240693682957159892481301211933645927801805657406357211480364069138918159206847086397471319562143370253966028301758354574472818277798876297024981926610580319152967861060981628654849911059224838798813152246192661280921388793976696982532095835222677875833828031373102674914968165536533873272569451271220609441598616684627784106342272890371135045769117885656892725242474481823996528802588767187243920286297736773431333012862466352939843308867707560356962579312197303089397515810512843006113361818940485359137423943483690436121515479124874967829383522270487122535491079950841395191315160073452225745792843949705675201810751168243856581283955093728734571239118511142407262109313739997465149415854607673135634693160185757946532945376635645989393130810009520377684138879431124921731792215060391860345145851163088591964841284468884698000817750266082736348118104489244965178598180885012991665731753488381097329356486220325785901715628437416931232172222678290570006280893941760258680770600478284174032078416784725341845921066929923809934100483134377755809594978482039127126910031365531024477997624304559669028462114560901473727122432077230038463783384463465940353693488470230108882358049171490716307824977033383155033708759508814521072709459220132330872250998829390562373007882939200514502521531265907466634503947580342825585466641375672433717235814618425020495297671262701103976564874402546175796769685184293803741369012324745794486182125741451724218830703515203733458047844881245311523291312751278810341850144812714407360292828594748448549598333329294400745578458148712615107358447849076285254356986457107699862658891507484039446912026535163558515325907241409227031828894071899663544446022258101233991826256291089103137571178947485328238752779404381776650616702487048712816101942324113544001830715583080281727983403352324033622855213612011055628306324639153855384079574972309328867272878851704007950468758654929541433634253267158371133169590944732631962162287124850587567497331430279808924199714807736588114945510562924389992179082648205439507273724211273935183923117362387963199893910127489704506079770395119559479150602729722677112011327791076214903071460306873892551755945058885872583511623688295747228680791515103063265658989119186854232631815519240985280268731926809905953672976367263588620882247522768676508740794355255587891794750572844084325495698148235704902130129917912511789033932910229576789533562388146845851662028934321826156027554286576462693307509904739422294809836807448553950904694165383533969306990590020886753982825622386844819740898740912366598693284113309902893683376541256533255137846098690464216845917736449915306209925050239401544198545079172136449959626419142786800163361789082609240093686194889719294938883013522284528302002490629687757022624975713631322950300995608865234121448749400620263365775643604238242495260155625231141505487705058987392085826367257175500314456094746832481366788844568075983112812986033507058691536119394911885079784619642953320116309379580806111132428140395727143411481654386715393445815656601430519939303623736864340274746910695225086502138823012680899043157621321906294182104789477163380635739205921021351899070542093179743082154950633110285190405033729556437670941071219031745041358571416450374339423146132787648052625768020384282893134981505701517935622362046904660516891168330072217112147203556945363532261074477559776833540241913006359679488439329338938095078797399678005145047102392567086718804481977778072006902750776503638400058159488526066492036476670550846465040655228135484987604370210450631670481785093842648215523315556209573530991533290899649803866676201504330974365834836092576874867418719862579291185006503615419231275182713576119081006328004944065031873226888955442153198477773522158029070603777509441216430957099724255768670846833530430739007927126479487539419878616112850524343333392060427401889758615030654859477688355664778916950159871771808546812820432625185462976979846646176656568339146401551910987137499322788895630932521738874902906392218513433995067515663515935797373552918299391201697737660340653658711506320306630172505136902202608508408787539191756537151894090939947423143768418183022018890364871057652004378667395791935671365161078473422225340552906419966657652207523352964896640592704700796137704850180651281222377072039045820942573207109179519773580865038505604044113106978859125815320480059323489842160670191583083990576644908981557486611868217260504180746484901039561461698470573955440179950131133351004006293355069265804316891801678999669786913338777738536651169494178880596043666002853512605649925075988067161272771802338236107825418700989685112139569223748838520179324536339840492258900603866665175465302372626288206132175293127751061401507737510834761938357690785442969575273433864752280985077356488666787315208031993366214559271553159081356014110636465973889395905984916862051645117457155096054188635878092359911572361483002736124258430740739193339515998576037075055398878194114365706144874355154484961344742318145553633943194951601512125575322608145712917152007661622102488338447501894259212389577981397697506741506563590248901542701912951142020872957027599014967281289191597364776074823265149120966247885980608388242844391099406751940508916287723078249136866429896456932185381347719763279720417236297978085587256131609102620529227042047831325713189500013298591856085175017201390163836437877536721123281762025864812553368116847906556769768654548925064616596240343093983498429087758684634455679261499901861519528101276037636860542895246259041808687373640637553779916727643706892054412466541654215680852059105945498412773687038570832100940333155847172654734057230192688311741134827481854369647183917669549742719927270220084469855797011792403551464694086273627233769491454200557734345127054520687512178735858610886156429575679504452019520671137094764682215024140509848191578260460308536621747006063183438342768502639377093116426718644041037898171710596420740926300003598677135997570697544757582770637294527448362175746064337556887371413054597650728172324879089167194467067053061073999457774673143979041072250102867837642832980295601089169480833127099706258886215613734536781429335545952985713404217994855556629354319196846149641393907304757481133862055773864237891155070500540938201023851362340356621454687885786665627410316783434499890159715499613484841585496995167260936790328063790764354025562263120820448112163015009616150626284623035186459946139543811549812411640517221280131070985038041872697022917066891675594684394535875621365940655053953944072568800763311022824031246570924607038174255796689238706961294581853093060649109035686483800053906808280699315289371528770872831992152284518341877885969713816570687056686555061289322942978100908770976609142368406957067824746856706999149653152951474226480875338390532803526022707364020142469019216959773894216831037430910317967734049277710382095376448105901180933264504763585025407275119193441419694924072286573168626371495461693146547141957948743038660154118758064834507565118745162589598347893909653379418534464253009170565292886310956758786467395648583224590401029013090823976286729261452887202467642312718380919584691317002989186294855983921797745999418318107350504252644345012209471324127561899630403501148959985067192546918850736298154135290993180251266429370525717901832508620409024577941222046788421203350240195448703300684231939088684492761346726672629011945348985337149833700990117456632526475333142039503815706331987607198297443263323211583582388056156745140123140671746100211410580449521763355773708954025874188104357750582099022185026715967508447974018782071947391314041458626091267115602087716974154371711746141014193169527152067476711361281423276002052709537063830178225913126748006978093776660979786757024655280164830444178399290627684621332639491108890373978751977706255165179822542143492166225383501743913989163660654667242746673748871759971779987123988949164718088718191351731657084108044961537373225633663495705167850415327840336816358297358255669544428021478169099936778629916974550623950030625237679941107476874359841207857113039443503894294175265517331995684213196746671329474936834444766985428125386483141816369528270190791159524056546991011847310785480952138352712111236323179866474809775233276303214412377401919975386632922476417646307788359140766264664607290667690211372400221018632779491135848796270368215408068139479887615064496880130461171220851702156967285463220122958636516472868456593791035376322802035316033488195816913095112014942193977330920720687708241236822670827193325967624131573228265346277103305968230932588981904818537665317776607507588699674871679147469766445310780538379883371963507200792093336514469289308662085856182861407051955159934074017376931648513485315415319475858581914428810136433212056030020964602966646769162835323138984348174460818545473416139969295827719326184683007302573578397579186501662995109429681947811881006222152315521411252313182736198151344024961928723186385722658883685958530229901425455438027692469326484187776030708808836607074597043749491667500135747236938714507856091148009752765275305935297646885328402685998253920550175043005740072164764096293580764003120701747570756106817483207653426342125500001814830890191838155020122186238802276173505450353966425397342381623164376118909720244512273864778257909456155639923960283864488096494511651527482454525708810768577522513002691862335663419306789171713216568631334946098230898627791576711181790991011165901817005337464878422837271642336248964631234891173726064560234380639687192943098575060213440235114905186163593627270645244149612768086120836572998078340390463759232108174849365505826970138019273744662357955041813083493857855770302865286122524378144032478159236200719410603987521466990352011259332837674903132983395020642143836761760411754656253209121377021377577882240274331421594216071197619115825906095425272907855412439949464145547462629566851689993608349293181318802797515184528202911650537536999970139933733404187863976885750552965787051402348231725477043767220861049511723725235865367103946051151934726334070461388578845240655799142908772180287425539109044482554475542200108174889435226195375987629684477635969884293440725340444269100304603565093919525118424741557729998479411128213152413275227967989028487178959905671945230248383708300471466824406446118660301238748764438091961463722292951197561750974452640373589290505547267610138684924576510042489583556183733626067187224048244845817872942875465481491250950750444043943354624098943007327001927575899555233350704652082541622723547818527360948774927383217583221681276357555954621509654891898493477447232078317696205925418662981881053368239527837447823974306199033123369252233935422587671888435593600321559633243780651846080814295799396765831358178676280410315421304574964079637976736175401007233642938904040945128288387192206522159489494794342209349232740297290717425997926540795251009545044396056414902010297617001469627400645363774393434955737130578836481639133127293846324256236339056615351480197480403674421441680017191278491781897213069243612021479473974879299332308303984238495779771785605922414264385387631859652059584509401326902922793642774236592503166186343914955986445465529297334789821597829132790895743664302653790775515667375111112634385226865395012902287392087797342372705807684004825233755960259559511073365780250230840949719076112738525975375896355778066140842444993802185565258271051600041944817823806625484665443658625863548708298994491587984915491002949615555619280495905736118030505353377611606464707663849350092009376419667376766501240396034502115611527321637191491020592586168257094440035294157104777468564970762061253213323339139237435115534473789160036964169135022853626689120623372436890121298572923570598765959562669057442278228305331496302075757479179932652088740571344325097513068776422757867632150484410186091158816434508183447433842638648066668228906666374165548705038233861124025484873150833797896991639759403454980199002615423721461439076190171271623809285465928585825265049042072788062506802453540521176256100530234620746785639377295165800701870788062131547609790341964072466755319085280904602225347394455887833633093898898315942569096597168335144751881626870392135591933652639772291912376973178053645270070427361962720431157792659141099356038609040394031454520542656022779723684391395305729934966327678934967547288726374413434099394779041597018047740922818881806621118089292954918451896107184262782817024839162151728163635962400728383899615937979047787487369345597308021562377290653072841449598956733879557879282527751207568760540928819923746171360063421036672657059807211213219062717350783130142915366130412260223469455714711729912203928402874803287580642859028490254886452841667534761361257712340296235895080234562241082372495481419482201409203123312085320784493593216499443700437976161595287415325864238774558685891660506462456544855013364925393462534785905267538000732588774545140045179023563549814568924997031404996054026382552240561733889047575105655637754724365420567426272258253370857730875663526866889440690852075670178579665256991724470119409157417596454770900434642370549512019488344541336740192134757225499228580571256032961676151196511347161284412698906467864901206983596296614841261600100275714955197372084574741453805052133629889597960237243161405327560859742347963302980437155352035394813896685522931407289755209474253325871583531910542414444660592860625301176913353654312495576580454939318563305330152653262964731591366775146019047215588759550389692842637883309727608252384115516044608863264207801088232828385404098673341379360452998374300660728600295642696514730782835122204583196338371207148195163010347439402341160669723171196209960932065026011526667961873115791052879646203292267314221995632492803142822139569135349122660174984666424805921880711611417949938883891738162626468012629736052772015401510987939794636324930771397910202713384939133072217428428498406160798121834218777677419445533063018484593465233281829436918100885701890164594927278058459421487260735514004166023908294679914058425657926770439127385528118909373718345078179968769601488318293337787009865686796307923219375988313285837380952663520155459906687758718612296316590477101584113482277873563550077720723503564171119709551522842612106611041160182195244637876309611052463446054064637429483640430875000931352048023526800497329124038938501627070460004521718468177720098374690339190728248564782305201378158356244511049878376484570359973455082983116972632128716829546567468466299695719044666705440725309543817689450047810081540262869297217872347565781292043234363839841031895699634895505136825665931915918230669571205073505253453010883746115167309132595064823365832352634332803373230736675006635755299844074160450111657094095204367029956874177140728210751340068900426527469354721679011580912360898588086683829234255308165323018820337868932409185543034133263878979334433237099861422092790797007546559108360766288112900329517462015837149646421200770570898420186521673907791850857980171392637213189954746444405033263681499556550470406286850370730179800071390228852619069469583318041622001551656101004998208504345569592359938486516325006375924294678252375682788858795492791586660146941611458282497082673951288842590952194842517811527104875073040555978864918428385776570205876446286938891883416312555024396529623714756751331100903670709287713065471295448334406244556194117681118536270227901675986202758515034287798903823557025469681977911923170502104712992036923945371273219868969630772443116834018929739436143229877546308009659329609427219700795987005642755682040567879410870516358996717327092471033971032309424373791551349238564171336573598011623331462364097276700883492316368493542544710348374977967644778407639385981978180842139389817364785615485165152507691397501050937687974693445459319480697615676123039421588541023961067910965259249337606836528579267809053166158712978795860059902539862446529932119790331559424417421953558465317475107559468531342511730794128740966626818540072212461678358531396078272476739565419559102668182124232161515306805556633856860534236257769305055269021638860005645717612013673674815752688382614737539313518558438640608097031773439961559403578241869389838391245980775410422765202130904124631692600074034444362461837356005408095972603940426103470737639393352915613058763602586024263972182953196403733584782582652021136517828241331892741006073939293266240748695160105137678400847184851471894314129559636982836799706947788468119595144145670160367676188027516239043030406894698981811591388333624069658410215776830866807988614991411655064205049883674660773798184244568708762703265807343421401502492428901379578857988164337266510935587043338155839417891774629286957975802468420113435688638925101084753063015186331953851825731485422890872945434128812690383743271971687097490739498303652878560869694393610627233099713981506426909037463175027484746273137654746955236146112522096213154118432670060331837798752471048496144998932945033975076208831434202504403461895844589453328824113487104074005557229822870320811622070419981317718904813376843608036046056252696108408458496800235108062471462808276929212106421596321936266804400663869987312269815191036112103582904345471778273289011897059788250730253757245693105788646619725930364047628143311497427981023323005590028771896184012711521415263383784179338381491652023534697118773390092124699535979539001542890436934462945768738272829356993830041081822428292868728964530313617680470376334771083416412456000008770886111673994152047167481181495347593667230509447917611076034879926256148925393087254203740280989146371931318602551276138346315615114373653530506514454633526211481432848411666879694279217308928695073869736789114048272921284926369929895064660264997859865761224934293682673751438909182811969434118033691056454437150795250068097878142016416978139693240142557419183946697157251691457777555876628452203655834051464882766323607554163035789435911122609744364726283937133397963169462120002016402017268244348689142505821952710874375213213094582876030413292581808744117322476059182075218004890135941616881084700098511865991863256678766905822935805606328344193633490567602597195749829764647437519924305716057788416402029871584158820978112838889841388482722642306653979105438020640365843575618650510338766234307560126473046831412761753359328154984347950508323741044528794605134365543611853054572647000435315437871118732065239857724641720444513066350891982992605221284804924758282268782199130464340148540911942821635733481804114255892924341508542822858822859202344279362816722760557203504787304373640396869905268690223449716803815613810003216787294925476331574583721578282914190261802168777889561506879693378617654779514306816375622839246077818872164093288982528917373320574837122982955251227882197572173546319493782073175977301523577144948509440172834952885287952396585105611490152355207164960819693277493418003455605955488612250574614425350703904245359601099298552632554789607616297598289610416289798407421275232808042184028614808502156871455749632543375991554423206888651711758494267842591061210253495319193430084471637774999113251013439230851573612789470982412696109498078260026568963908988036741620213292078418343294432144652889882575921765427909796990282913001343603563187498706524482304117216885670583741797232018990262682560323489009334578168823774946011511858223355180194553954767701222307144149849997976072024495461469176075219940031375328335959620358733754066252769699461643216826118313712791879753225387099226016056291617159004795450283334437356989101699119315983750117538956435939489476978446260961799296045522676010107083389146540948290485488325047546378930564050144856858670727140647824480853047517289008085118503838630375964092528372685776103061653242962204728638753249144780649648676589325825747256553887427898066763627256873435680435174959272784539428653609802988381758374947029184313846125516739093968139993199356633845746208062336079508371822696647998527318841224848027095946812076521007703736499889991175284634775446481500951669529063606461028281917683454675304361657758650996838078724643849313589897334717637235154817649125210290200696121649926803199880668701550922948598392203143593741040002585227365708998239359364613567979623476097630912696460846731805569326907231735114151291730353210075330663521407042382351748259392664375636693957664420914169006819791878301937851443744588633842361381336299098388685659526826020414762112740217225249055952944809435283074401608985059854397325055629258472268279202223501619614551444167999259026942302916937427609986547940530200681471550132535765040122300310285245562978013706879870844063611444139366855468376263385394162270123121643670038857945770314784949525464812319152829349710460581425782292515618780416109468476919821733231335232125138732561843535151578943471442303127216708847629717661941935217207672480720274185207415940569431737819893860931161653703218613072629626800030930610578949235880814370838152680318376312523000743976567299769982171571710870418289378207923419782799247013888749317517633284229914825786184274884757597538752691267949131121569283790520318068507009478203095015645959362307856038397387778309431566714232110160662718985690307600658771063530466068281495033145510333201231501227208227165468028224653742313315182670435842425431156991435410554788067373597046307325987533200496437432749224408437248159030017542555219958584768623106024441988121726799658178986464169564248580014156822819020937684342772721519958498629917638650502376819753685080520240937471168738165064564807052945069315602661933319698474087326243656573869663791577959575168388888562926385239959829045873357146059215018646230557234080144899892949601557562659507605491149884911531963104575211531996392216557233217926815751470424247175421168079133966704426538627432380296737745135634489722780364744212539387800403676911963211428349192001470383032457276031644682419518230926326074353678026697678773270153139513935912341032892045750825475174038890504272729332175864963492681806379941065986619896389156246048058323592115443496940456001674240478481901772832008287771446907968725889687873617534095189172909055866491261068278019822508934890336517533746736359755055334918592887383459065867193399004468110171536775747604102935870528468767222265352437381102335597174581637923073723029175210102335749207893567227207093203207404022536997299942346304819634549263771456372150664149012628288217458092322562453617523451206263769330852820338749409519376026842753750770698526372590310747012524624998375794366323627731238581465052172838420752261697495347976642040318055295010223925872394262918148645189574889322174169983350708742951437005462467889380293847427816918897514494561470610994535281345897411882604192364165266546298899538087450854912630500216403530228878376250409656870680279703088824302995627479107689155736194487715913307603300852373135826787564652357862574279652354214304337989542402260540081417345675069302283915768546379149858196869205479270569038932180364238440833475265636642789250074719932661090911873512832413846298294471992246868079394219438969444056306750916780916166471987694528416835022222294197911743046349491451005996490043558934674217907500843531853106310983193046314910271284413311142934950364057519822872232973437679233677752625480553936813393973620675344838328581557168871507135475036466105399694853999833630330667296958356339967409983363234594089067423602174604980613033409027393176300470366254303644075357260935715310071682699189704068664108499278962757019645666804165476831253914359980571798801291040117452676190452894377230159911508763059499133221063606008450698273471280216680231676797595936756743290051361586487519067015795128904662286487828089510697361828510747486718574606245090240968502470163636180736195802440978200387883406909418698612399363356331228111355806808048432745116169085630368684242670716685350728076335817095537998577028832104002131495518910684939974846920923839981358419754869846614379813704192104776712564764478935254071204705480812416358704808962463351648951220313201804131850743613414901091208737279578900441145596448119590538858768352351183462089022233606986922416809733007103328749681653141610761138118419122628190283848220963693189648664187396790590891296860278058704002124031445446173846027805138016545629694858063721901307205109002589991585070481884754909507483138949705168675019996402739847163482795132422091127509437890680207359979304791215344712820436094384673192761659695048996361074999101833125182672707024171917179487106485832628458242348329765125638274050245559024326461994372822707808419664612543859976469069756541807452811577356358163309129972018173386262985833498400610233500776282891286096904792915409618687405434256598202914567048799962339570252690682376147427364513701499878907240989846967831130164994293106623754351529948338125610534201021317809885346079074349093679599311414565246291817202845107611256714737366993323462793019683252464689721183980093031703293135745243038352742336852184213083175985594690067424757984030373029215078163561468087623829310169314931278157303139539337065291726371159756728136284363238764264803006035669353484115795641778684006642640455723773978472382779084296745480686481053582395286017920557391424147660036371531264417290848207284609475229744703676148592565227559995827974724927745359323958974378505544956559351431555375282171584611300505377939322742641325728112785305160136084240431940003970572424031355095187014529617978844502029416841581809766027550386469969636378740500108474985097231943761829988100789917212888768153563753042140585030190454841775323985925569103099190759180331636793862691413333319369431696738175882111409365315066546906633550254423880915894553142201532292575639204070061838811177597310189358773393909642141367308336057550413360519795765290045553618659375688336052700365281020593047155611060092609089150171853662169638768248642827789269409614799802411039689225314673435624126742256177298392630704656981992030838474676008050255437011154049959196467784945159126435590764304503319634604872969910012726294078502851205258160004606061657960400044719047120219387234943784683683401381619418363622676325607130648633699418943685712816777772381890888676314433808445185639700640189389470337767622160773657628292959684848722613135721793130206306478736458986054536269365132348554104335033917134098669597707021137083687587708206651865360325770660030636674836612838683997925317168438344908731100433950859191759248137238865692384955277460857992809832205649582346657274372509111058937144162175415447117899973460862508479977300657765607953512047534427618658017506820197923686701440864195401820223999740831293280858854194438188489966101772392451510512459079745755537410899877507590970365566000344225680652840805213568424583516162952355747230559060145964935266029616276748247597180402550135299290286100672143898602577554525098024340517912762343479922599331320804710539520479613134845435789006906056242994056342321857838704451727442475942446826840466795942704739248433550473801044977656404365469349696224210685241720335750160980795099180237903502652153805209526195345111508335891088534532993453080114542992990431955110896897584967331863739637886179366903924305061381654768461990486745711007669481213016988946727873589010222214557569295535371940481807809974379210111006839319581870418201846349345349033704012140697752345268960014742825304276266929815505179923295849407812712618573244280929712562028776939663943697984331442981864454080971433744039015497463273225431226823476638714617529737890169137776136633511551909405272733119931620280980132135709941202647170113652316405189783664409468227026378073831169872500100699582653140252286477839930729199474339845866367545900147716728642528537592415109035345639186365855804487178303483532251196252608265096287758577191341632221831170791870990601413381057563762752908694351167234764659451050101878769487354694441740254159247846784085540184775607718004375287965317556410620698582559622288242027457819776436247655018964574556377312158810712848715465521792186643016990330637631038045260403711153646589218513647391456585835398702780745500620593293477169889485406473390049310239858218324947076049796097523491196396468207595248663632028441860530448786961665692097324867498739213842223086457312008562097547630966688912932224523140912155055267916132129514641024848559387093733502184317151689755517736049962135216021785593112787868969424085157539586158176872887051990102215579853657670350303621279758541727987948081449316677239232530962480607189904536466006858023804672534084252553886518474448183673368393456526312302657287575864380969777427895206256039992904123038281360187426441663772115728729576489222562166100908836261851134003398713791107118309322851823279604887434605109188622669519811701351522963692660550143262216324940603177064647132260915219220290816193196458590118444678776376991530947115739873102000357058578142240982961643460007760807417038811619260803715881382343153076917632984207736117642878499706330441236500111231086336620877598358692761826616729344089062714143331296277621395333897371948405781235562621488497501951947471045352507584258321622677154328110307323924262032409251678719284446648432377161491482984559515855134534222253333283666809420475792898942405090258359430792735423153760221300779048359273318188839647905310235836586073809552146330529987443579410611536392396630346704100999373897397300777963665953510524017949794390768448085687582090367847828516647938405647555380776384377753428908581109231291861196873749026742529373750168740051945811708240956915819496957240572977772008625826442451043253215937135459733849129617846359445474000418502217268443930051482325798230706489015986834295121389396150427390155123791405791380140510890250786730518733991051413486970484971318989719838056507216253470670122246963290923498810098523270533636952305833237649451599269600974673601160110387575035997348772854638419107012084481891616388152258360704293366724023404575386278279906772320951948656307863892709851412121588514859649245400326930114681212406015998703887789564518708487395856291184518733515491814096570372425935515517268680095208044828412478770263804756578294098030389469966354324869012247035799404205705255608886655433427807358722424582103934710098424912415739353009971640925041114578004868968495324165366475080680851682424865583067945614861396329325436773212233666406011874038728475062856594917769284995534617190667549997474791510824967167947475665878846260801613074657601126057659315009099804141260725080879860250069101801278200334218589592673894666103332564752944839271806618411832930310582893271196970255897901105713743355404250746715773013805435464013723428734821440632203508489859996995720579285590837332103758115588632688267996156831882317761237291231599273500559432636143074520526626307600585907530391926208177568721828573722745290717577782566955352970531767427421036411224190341824881893179098428789144722993181112657160810606699186007760419328043999312380107646259632717279373430092598566504869359224471986519701767284008108504004154239943486544847446977809762434292581023027050350615025146815701553886274731787633692479671528281317207598737809307535162969600504585036586685776725290729733414354828217329152530184661624785808562912618477758987168544720011545439192043839935963870310618759395744641657751059463655277708432336817436469222151836014202520074640232731023318181810567601992323388892962495942257881527130930710718616075352845667743626819718619400269338803842698532346868883029468184510240353629407169727956269098038625666653717963123434552545062752178198733511027463760246254255747947047901498049446651064252878037945919914476533340146759627730997960055461074073284137829571558682500429281537685952765670324444471419900537204416661440913526155579346161417378952752597260109674265449669220974250230836961626257665929899355258773096936069228873145661067909806330053977862907196607580982324993510373154887848295133705236325567327367659850215889103331830903887450534639206894288115672334643817043072815911698773985409434604476719467560241361099564636230210570689227972106683582308972040166874133164334417878989334366797504826728222679428842575435111418272490575117375350752190242645574971408971498121484785712586890096717648972304382564713994098332579850346615552929612015846748597213030154565130257714542845154246712182226936646435908906894390518143401534859210718071207802391171806666581235179023972378316151635645136669221183220947094356571705680761546712313121035711382041027648673436875683516128209890868506652502052264750193281484388912001885417355935008925180380424388089909541203399907753822059443355406646088852796128879735771666021990057957363277123110054237188456355485022571008763782806530869878572487152489026704431705294077231637157224724899755710039232380537751504753763946822084204777130667420873080402129902828570249952023692981964809795943884568338046764590202534057424325724740815098476265854477061600615007029702591462418703488587307682724208805808690580451651080659703090182544118718743919513654617241225891550724188315649929271001090383881472586769202008881636901368186459269445802867728811171118007332501439192920713440810721697564488481566737005423356590827984392729946526535503092589557325338473109785601558417011631609641534601157839570028688416759270300886435369185269880577030909174009598117991195495781195388050544710516731878307122721860712924207275960647454053069353300575745851784222985816689883397169779459008675377487472115051566084216490234695125499272179001624555256159149283143741706887232719219728035572187711000002291119287842592158438881821724982099567517384760052433113172691379778293670213257697861127704003264268484933666611982954995146872332774384148209905369159158947089309610480437628419815490319038881667588534019208292420306524495155569653713784390129417128347666131351078853403149696912999860036753832474396205869134236499451432835731163744845990728021233585703975918748325419970135824601107752860322970467135031209369183883724655276005425347643979619973886256508996148737947803827930838390508329947143387551467579899854914351577788032596291276981101986627174749714936684885809446646876000971731079044069373082900616591601620668644797674668577471481278684111548704147643887815795438070457593477367397628628645236571145912532958725404311725630290094515680045167217644320707060278510852181706310346501935083558795171353664198610112721815224143829923062395898526290529109593875448536442754843248725774552525698359020916755912226844487811234155553479709397870012122491451541751548717032968514888093537559846001495164188507054765766373582411769746757187455032292504706739879573531838000817320874387918272332491228595088739549812818806481402852111690371190740326132468796248592710275451453780593698062493676616406638375813242888675733345788690019591343902072154651377649783216418734611859106998608514367619600676984865643958866102161897215472531525368958381234290139482718421206079351869331756520768122118002007796635580939538324722254865590464773959259047095336014071236041704356728118024302329315804357090362767088291047111862641685989803066019654859410193437416103874085425665868711083606738081688678531014456528565626888566977248434725550858478913529245463162376258153304455544884685658119827103338495696428414283703660528378253194830072026679809428052740150982941194305230921184535473860676938401789571479530590909686980320841360875445959688898247099883972087135254732942548811849133011120385381499303093832137295052946953311973858081068520939243744252128041161457958937791018989289412963632899854797303225003756309315157770509245193867761512443071820861314876160633371053787887711091301796158655203242997349358063965402503728245983462601676885341668363579279637196676997383485614659266398715259535828754538178201856320948824181281072800780922381092582629804334111463193701398660646783308013935698220754678501840239774612850513229530093536717468511766566919949916950784012210502713100315077259519782739680570127539278273215280378876739393543714274146001652680143518845729475228165321161255974745538973115923941012897499483786073149808999758341452565889241071867461228659099211589918621453450669400039690367911674992066461150176185605461610068394160550667984582599469092784180183942525990829524041437398843208199350174675616848219523144876764388052108624686159218658817357095851566244885488222630384164962516561345768001348694747385844002192613434308254597584071249047383041279200544827518179139459203512377624395978265305479022591846665754521058772500854605220331250368048908729789744349024008632398765234078876184609897492404635687369799455752226037736885240267162413173482857324123438888845537898507359863227968017505376137268737519140322615387233380813067887353678870831740868822296517738356643226301817812676863593849319215626479020863345648602769809246084210761821443856540363497705788561659119498390471591177096642808064981384220107029070037280704020317489590565201111620875053648318388857506082760800848266590227493447360312045951978697679744333899169044538070907977765006151179382334035641275264509369486675973095947685893176520541728786695830413299377086555929172492668348484524013333113452816683116345496000816172381726788495941454714362358363796312016871067348656874102242630065678819531703728535610816745379426992055516637004779655228823128543578665625187229369608098604708476094877293086841381860472461367800736519337240349929464590141100650289054410491286110501433626611105499566845407061256721087563129160126041009843881699321074599960068813192092656349098887429082199672441999995723336348505797334068786258942694787881915613093715317387728809028765039671274841338654779853193825766381322543985552550758941473930290909011758119672764824452278853743635387288831053215673493676708471064530773666848867763571356006405723747191473016682647987219223444889753286563724911588978924163068136349140519410575774619629908225715276610560372422614882241873783106660851621488183901670064194487807814275107997436059520441850577745888963411202436806408026126522612689216583697145587016983356042348060728035579091478439113058654937258157770272986276135055118960109912617033474872670451741316756241047559532816132677365922568243486614825470492105455792786319071892654883111325104968105801233517027266755155005826352247835174632003760831444019313020957568275360362441691344753247413131789189601191777166178350891704328716960356331638762308664197694822144996149930075063732076089300082981888009927637262165073906741304942618331940066054945888839470233072188052276050689539143814309844199691987324255546094445636895335748415269582071355780672916447334901299123922599922283584269848963840992937454117093775926094370576815246493931583882223432499580417693580200697880330848830555952909545233766217945147225594255845532339885868239483070463343012777284424544023431572161683023186496134052295099452912063590334982874037385412732181615360460956579066092153391173747848857676246763818662671744644185112125830050044117555579075715186812951431660497424538422134814032259183897550693477333245424747837283692611330163556670938559164489384219026024898262021546404875535819312383356844061792284033577234654550896135243799105899376506825471774804318976742994983790875336888695286432256865191589530735182820997144516849210087196317141210892307019418147934722267474140966591094724488845329788182866962795350944517315709401158510555370933550897558557645669091115859738381088799044133337979146515099259969425339077089883254241115473133661843139433301825179728695091811995781716055947083571424962872908844142734101770808075957341256104339541512764314361723421741228446663584133962182363306120324277865663433280514464178984696400572475238404979926251930876163577488417477187839128651054928254609787212684860529569349573382043833098018594432780337454680605996987912625894539049035231339312630742441281122739267249438636093722609941331082918813925222979922019641000793062806795736890402523435792408922641360419294887438317072119461770480054153021771675192627670005283075377248649703152049059617614456563894603775745399733031499479314457311595097376998861536503622241617388503032434235787438175402095885380907103967405403666044665621341378556037540242799134462969639543550344983998848542531084449361186643243793112167524213912568059914599333777535184722664662430753252744644698834873378642772419067900331567936255136429235387509959871950951575255463795813185764164339776746760096488316435342726445286975128420142413712271453532766068989772305394237113324561391250851391829309104551935142075345755655265472890500353439419679356038728535327033689946121646889174668540413628625577945319114403478503087859481853111806860547336653363863261040109813480797369501372545222148187283278105906149527484654501864567942969445911037248521995582748038112070082488678283150056077905355465504855981132828329824319614896061726791537504640456995332587967434852437957275954106546886612810951249254165039823639842084840896731950331843678823083047116305079326054056981497219739401231538925409202182866372235029096516798137150320289364931409821671111246362541022139612408724630342917539993925109441720107980426215229839923906831230662395345838176212056863714072244109428274457517396396314979941214396101659291945631635318047012446081944650340635066249563532280266949776348708881840218311059932138189906289536888906394237925322942419907728266222389773120587448291087293961920690060796598641785219924024043150108543117304567327193615682869348437341363366199139130004226419478853410873873144162162591130914059497365383956476032408570415202029676809110039669274250448377709328269472447019257710291986984708840926734144043733744657895168762660469821696731398802553191281990299288426904845209454394960278998656860002273824240622183807965043542741398367708351476841393509979370073982924972525035683047867362048930518140292974750331829191101769924941424555585482765346284806240814169656111458629635022188356878526286898549207745978287833609050007690670000437776610515509484430458023603608400264630382755387163978852168304123606428919028665081597001773661433340669725662763338530370024597900692086510637721778648768155641349715116796896976056396640293879623912588104327104043670295599541262343153914905436590623987277191939930165869166286389543306841508685448039634611731255919062887796627678135344770201310295040635543370196139146215959033276586967650224479742857605120061479804201537602409344031106123903366855447703750001564260531416249269105084763194104501857901294161331649664273932152808007486065352971561762091133047414129436754546101900569400466270876832953647912698197931001943414144910744759330700918189854089913142580231390249921255061336544012651138996490958159457841930451299328556513820640452965532462156160113973010685750581667591493549521836915401789149019656057047999863107882270363268260140664538038123546044846939876597236215534418646097813815967290035644236448295491445011555787068706590379335116212075266232790923933773573526785769855224715093638118736738557892208247914852016170034075149572936059522965879932101082579241272061043090493253386843637066719920867102306990884448928077559343406437753501967632660531939500922535896721647039755127000345104606020506593990158846382211747466402957058267722021792637475748094604072465713872765703304397566974024361643047842174276926993983991478059402401466608041974250351277679166639866536294668160660403834421071794256964246497964777696864210652806095688043281725522009225762155401738894632609453669855449569927296551452595591015200828158921492615009911536980672659498869809140620094136686976135959682847219911063210183400738669403317503996057321524292040807755926225762189778124321068492071486319178540743714057981155957494846420338890095722544911085131362475158002764785482632737023826728369241151286085156894953880481411872568282948565192641267681469680532667191333583115140625160817375975105028405403617403642549529754818410495454817931499942107362235689305516172277357820141048686054804241958421135286237029823998547108354308840004125107678247099054521915125380749347488933057332705943628915901930070308100918931777216726994608389586764638007454868367841120677928257974056800849627206882854102175380337716104915128094350722222529106570633963165797198035351230842509850529925116524480269995310206956932390184477676127050741184757666848010144197226340231649227896077689533347869810797056796699716579589256244026953802896362988654546475472114418637350785231946940159169611653625757355698177921403784631090315974685627740363369056661325643815365536853042715583920381920449849740522263840280403319613570033937041689834026638380581058265296664665855385524177742281783578137190293317693909078237519487043224383781005445121573076883807768059177887959766010092153627696955756839131301681052141540852124480205143845625253693022717599050279213061177242058051085925021562295684502106108578203325780794931869548364816791223513643772027618047810911666433468122915812701631390962586000893663725223233445292072960499714631275531673793514352894045603571391038937583589783480899917609861150715491345600332159794269163253020279871079514776252169373414809836496342916884809027865072807471320701365452192101247129288237078893674466778759809080357609540622660597497545069021010401694815234516459878705902387761552581779341369716693738052572317444695740030148805317892599905026423351729860259151540193875200681454733903480789279928592227727802193086526675138349132500886331172636443912415887944466764084796583592824109250349884607525556723086124304891452793195591797791484453459226828543529159872358686714178039151382061161149164942194217227247098436654990153888067550634452081187312616494192380644622077816189132669623018213701994723199619805344821185653752845912716328624186065243594134308520460004749696585727715061150480341868156382703697844171445298551383353050554989283501905652573992246702892551744474076457628844421266370444080225653615867708766566448872413494870750156771248473461711403428075838369349994765663421356767052691984618123423251469684113700134459946462951791843376562918940443921574445835498751992054800281632303462647240856184081225928156384924087488005605761397097091913243430631925802080523372037741627412393561701549012962109258204351052845466763044526477542993893392907332677113146836191412150906324914524372376428640104001712553917084792243879142190277276017187385434583808981131585188908345511193642649146807200533206727423538512131821498394859135924878055704244820613713883870493283654642616139833723021899257030958453244822929813664386651873984782740667255617667043209127167403169798960576157290743481759016909783391534599893764164342868119767576015947434911000407586124524871459150168107090036603787897011725539605379467831228777482968410248295473740683094783126819932355564185791859046884281022547012056932087455229169546815933096208075265350829494630576905834102475668551585034853649696327269530525398544324493039698062673218920693166322729907013338079502064322846984422257654205419012077889098013099877406893014157738090158267055226381288010349050685903451174041580866341506996961689788248269938468688009635813363212608255365135189787979650717320926775945304909247104713634323266591743928017405812065757151439893153118856671567217243906458204732980404329944078247429922525677856086458444884355167085999817407513460014093915286781830202709886996699927861318662998869715573873093385087226321276609221065286678258041954819916496320106625629153488765563065866996338992098143907083418592954947560451108021445574386578974290627242228862014334907316416005212854659102711311456134135791143194306468447640551757068329536077847721288177301559836869766113737989410948523484921748929700117049722718338292692131775714326066021383362876812086119938337931855267730951030613882939099668071088666447789783682877028043545684493528491894939372889941556192382879421976714361120905635842380176840487237220755313603929437497226190476695610585888064524589067351039874557342779079370531301576489264162698221703111139965663204947030938077257561378739686474254254606555207054788714814101660189601777665541549767777181840930082417116798855986309042095032708162855029209998507519039952943034231826083898858139138393502574744479404230712746308691876445199562987581571791529938779059260808209313719078517632204973756794782651344783848412436386208702400408350146953105431867827866559304464800523785491681878675897062648226661997504676421986068652169468095797945972581264781654885002739182163882909815726540738575927460535063061163084354240794743495415409592777732606243736305832692667302918614148938130746722601023776691322244481374861225059484092523119423202027633759775373015331587700602010587100038003907080840289944169451432892320993094668014704793084455080839463923221563905899234342633612440183994403210635293686824918779016594089096603352086970384528954446077636384336727530216317568158449463899211597180885309916664864223566340531674204785840392218666274361669358271395820748865699111431842839659068172778371623626661474403005927100831080036461866014221974132415342241221457964084527963820397911797299511692867938463139636725469599062793504733847454768139562710850138697139018981510909650121028221741035269574585567457152251705237429624505405913664499243005534227899843907756766296179094574994705964431383595688196427749683609575415716652069553004915670981025679201707830317502737383345657614396643322261830710385211226714521485033064190809788610637560225445681048676822085887772303723713218750898488605563230063353261449945473023855670565692506298837909472720517101203220933745620693890137414136349526356240331102504635418794228807485988351795802145187485260024528826169440954128142255042584074986441355516746516703979383302180244617416308715618276709762442398051211134171488977841157464181863618297275408300058147743007334684365230219013676333732433607538136343950981732938622948409005059973551620526560295950214591042085383488882876545724378922255581070833284501615379906826219185380195765391256485943499871915360044123362739497950010698839667986613464553095265321683501374980558103313389205369657853012721325401704005573242192190832821742213462756968197357455118183838080156927888985784097692264388376702179533730157910706657898245283857455536317761360986129195881322942968780725397240271684397767172589585536396043077507334004788189019519050220727932321433535363466061736140227469640869712124116061416261596392513147952189356041153839647281464872144333002180216643852346481534627979024933358860213096935002279067212645217639117658261672577071886001611594721405631014401453857672332167734327583378373888553526708895864465071040988277205368095415793022740568763737979108932015638230486395562056213339235622552284865139335591228307493085015495592218763983926483233847999013382297059350827286040972848822605566646278831307684300120325536721413537640108894761047439257011215413924398538881936740569821018118143557419606334129736057607106207745515151548998861447497911700079544106421783307829574676172289443065400546085029147751956958458615304811581738704034851305701522478827997873634971868021971947799374807164112933466577733768724427979262673077547555740159846239986082803488894632364460512819561247922799398259206565571545851246237632237698479018430487761941214655314086989677960674929677915047228598063994657782849953769314007332692710071743696495752512915305261804163108293639608673302708811447165204293751826578076261131150709482528980178543162815604930777351856653037837781438507374470122701363751272741450517203803317804839248710073517447028351028200370991198721381007889867085923953524794977953971579228691811815288285901319261826387950904249863673037043418386891497312105911064985866767246550735737918842864569078425425999857076356466283798321166062898367145987282264079464695386762793714069402736540411437013062044933863838751150004144824734192195296716515273157542792206946931373317890114701143505437332410602411125167619566381564918710387258031402171242351362434906805712888076653482017645003089320904350098019453197208899805439200146447436303926921763964897685585465788638229190823966977335563125390833823931381954046679505975963771145974656624613303788722214269923096041166773247886762693369741355995455976911987703084964568665798945651169735425437483418450489594132380041323580348495121367358512819833311834301820064131198676440060827307490121817646171246212458830492791214576610431797797497701903642000538911793684834576022950754149370536238706489324639981858546624655977523747742819099495014791225189455101966728853676802035021607396983341457961912063254907094434261366078866012742558728170770576611899741521945155745281542642699794143963020333198478614384910941981492607348375277815877240970994251322755709127973922596285965220968132038407030114519282471536564002728466096567442451418143540488566782508330764093033969270879677659327083959496588367710291024145005357802891391593734860625195968009851120886615599446775322162418623108095675430610103795503006819563356976783469974707086924636627403794210459599135591770081516768043530421383662613169895891863686809781622974845098914647742741824135200718043368773768368230953077656997269279695994223202978345450677824845212033604264402230456755756448828181282551573314810521711626948087204856960121453476950735099112529349407482609660304477795624216198341681799533649930646891397114232335281940199196909592932078539123453681366286817356267777498175696759093961260005252228518091034444406939421910489840156531307526922494062961705018706126964667147832324294731714967717818911777742654644368085828984875209512848903237684334796799590478215505703686807122948864403937251561022573903883466951318273631132388005339889692916660378720944774470166199593331175629923468919361098135162775986783502785408736480149752467143518170064846754980072283822227676942442969795044386186862634698773704348715207688658578194066623996601103262813954527380748838403086870425616960536884091525496543151739234464152211991865775221844719900836664675020675172474560981582767742625862086450048095357494466156151708816867264106451165863692149954828315895421817098740288471917272429801115614722082498765772833458237625321729705233829752676247565490753413942871526544231097890302036721966664637299312126928509675944915548108808064270134959649715192648520668129233248319984222230635461530691655513032879972370350440125896117106600550297243607589649665152529815133142627847129157431159855372035929049681004900017348860438696381016110399499829682182086009738530612169849625648180888731515419255618117910025461255521904070029661652282673602046285455584122478716000364647086099482205085703302725947130232583051247898085983236587016694895935854451112164136878277477857944129875837195308458293630832962205678350651553213429923088358437388114009578911782692943388097425344604375461569862683577204949407949217398047847836662399459589679950372160510510780720287608820658091129610690187119801065012572706531476910661430855424771864378966773962538554396993112057993535706228269788033164287708446651402644284837557297175197714810405923302872229253178963856115583309017257771471332551429136373348607133780591845961867265958631455626682490408514898995253430894247973790465360446575439624522557682708351579075844896493563160431345232121800413610676592023811838913197798801017699121684703371164989527457193664471280356074773472611096347450504883693818178567989478069678745351431294197831020452707812204336260331312683674163640610795102549312186933810260435674290252574492532525208039526650619076233504331026466871133569752064977957201382287556710069026224328006493846201211209341949822333087072348501815310305327029972315533753708566861015128369477568101541910211336645302191322667711971072636351345723831291621104543140658646416744027501474233652372681811200105465216116959618385328119012778270853643934332384456351365025942901396848323363150451543708834004160292350039982706488121096776054509202591686075948306750043838523449746498095591154609104661174381896034034069694114185842080139865786182098117145913568634377799150732232801588641391454542516479139957824296564282759791725558508898821589476064481938732912060801530171483387037798232729824400496390880981337326507127830144336986708626693459754918938970843285038856787602768828343131658925219878136472989589918738685960649702681450499642887043994535795562281977570660467590368827598121490505878563172400820020743862771633851395215377681734316765258701092122131099964218223041741434435295980095554272001941845590189165913738404601497642102148765853459853891398318663873462730603818815084325381275581459789733585210549750334716667893177671438261806988558230240560971359074561247547517051144851424287730988416210896804180455670033623301744625971500953109410944366339678097608193467265730312845105393390175019900087069043347820642803268965502561650456068837888647930521789752866284955659218152038870655100519844249253207007910013834881957912993774233842628449937034499695869189894320410093260842792368349423734279253503165193228540126512250653166747333951077339686381723143887594325623198620663015246130307991361601447930038867487216873877764203096912070444913953738899386630788115916858241782291810749745354379511080155057733809581394536877146311090089860429285344433858729219554804989078098167248264694768063305701810579471696492754666049057065525947432535207758954512260890967992408227162697385055070967627627228430842791606981839428534115229018440278720548472624198315148469029127613064404941901265626464477097219485224925202424510478021531431252497806414374557562923534866573101078246536970105113200838058414647501318293516348386568804077485590178257009507271037312622224024568265455089711440280295516981451403556325952612472740033172367941960885484958993444302548984934499695465723514591461199080623148805382854553469882453066035700562820671872197380102040319937123638045983979384587456473859607653349897296773769206563743450676946846279335196197428267615995094278878544381467775957256851154544914735990933129916049977182700029515865422902172989263662848280994164491485985955797095885042418391212962683523878705154760963978191215001953640902065916817447531238337523202526605893841813746636736596587710491066889838426687752958902777382755784244195035830486459045841296972683902231961674895782065986237163113576560770254809310974788623662220645237133106376957710536147221651914078614839018647957655699822736782776099476629832105065324198724627126306276910100300490091625248746806645067101874324596453809037822018071008091984390349835028023464802439689267943129114101112485645298176099556846478142151590635543068943740875404641342903268248754013127878566880595488898840706748555942405618401517429400857738501123581332948567831920464471403313536612243829034739524133476922083994898583757231519465478872943155305297259229157750434590759294128746938274386772213891297762262868693570033755715251207920809018181488740417443940098003171631711717940593308532009627398352888169537184735280675051465676711969394737684183720264108254908489393537486728555995843049746871130381683586074615635052129047757783086366174624056965121116909459522740330802086466893947593831029155063585268320106182445565892587964657110631548041527478514984179683184608014478158373491098802283693598774817309764201302448025928830955706585213136642529213021341184672131883808714451316380204750784639417880581509209386876661369994287215582864146995052078448701166138565044935291150174968793530070814837848103565983493026576780430061402943045163454352065490046374515166201591413644084894684868255431442651740240952652252889608628609060639333684192428120745467177106303102922500713466171642109922610086050283038508104826688186708391758136009155119992845005972476637461763068825654996038077568283461140491425356910694548350390534160675431245054229505436966111154214251221079874448868630196474300662148806784478722781709002242335955204227700500196780265495337309974950154006290823447718159906859753069656983289136929855780002502904141996546262167991540085217339929123990333181539503724352718182767336235179392954639153396770906876581987234821251270519817719142374258214606938562323704436448589812607847423068494056688566671466797345965624935273884465662467206760903738836329088217423165735531143861479284500161841110640976943789944058076437952027321760612295545262909910034778665821647500398566743787078107155857007260011848956696339061950730956770940942919139324260130278054759425669113207777655114589964092205071970044539026831087220649738106026409135245431777652866626259821842168254226771088547969421239108139531892252625380774524072103029303212708521466747397320924443672167967453807683246091714729804783842469726681348973236533853006441698664723041779479962127807582226329994357934909945294497189133013418960159986673176941276939296151200412148770484929038924535005579100797042320172787670155684620242030939054378111132444773782896828739457011835665183430686140810783985332986735905176597124908942947237922005676107438641512351831166217429658985590728536779505261147922595812745722681467959553424484133936293470669567768476756930863763398766078829382299894061521271759836828881856208430004292836985259880480735513466210597894178204570039422638038207102432500218966921471868929248913174182757418559723337535668784784977926374723025140710082168092258006908828826069066670128732996771371881268333693195771686384729725141077424469365669800928945347808348146615501618118468530877343324886891665507943092204921256592849530345413144839634594963843262725086291964261121760313548878360876285865512223479917080030669567552459946941111159719940649128219647227847767958870220431384147709515640005372404803610728026222558797459169672726066870887400685364410866975904123710003178841621489766256100903669590671953038113039988192258402787214483183594555948813837375343946823142344959912525858214222168548437136439556600762761516445946874672136480704972432663414008978252320663548057437530742746881285098272122177882154708140950847630558293074055286845212382453619947734567044363156418938568931671027874364141688812938935993318338290948103500544051168940717314121017090092933588417403276735960504522998258856012848459114556092090142274457523155297702901215361438174879594439599531013761346390774029000363889011836150223241977454013341380986731085579981363614321789556969813346276999264259254357002972516883201717779313402751627339094494627008637506702996021107401119996752230323794491912527326904785096712877288722881899366983901459914719496939048570353840123348376533427660935389277650109435430515700002113502075525683700689777515322704666737046128085226834993309339309853363116037191616635049589015862907680949657520205066471348128380741467249897275706768291847661849013944791447290996538380837517391365755017689998197548895987011214402831791118617255330870553141783161987603385978244166089624740634564138294834787959911487253700312259544330129306442405013806472555145633867590654957213413352672456209976604849472568681739071624103327809387784661102503847644537929292874175249719668924260810069678872417592351830819069249388167967018478923283827752263972853718175106445216926283571740128296362537539219925898622658667478250427753538384915838993106017775392572099325828381785966678317629847203919565705232585847740865188190827496350299152071000936287703037989294606029179245512071019234222329113556853235104393096709979711886962016335503032790589772284238434078140041010431865242566616534123464330287766939432796728289652437793855261170370239066896233960065493115196058598496380698897628671091742098670581987643655804836688864253586058035371000701996537874754813453584114544141649396460016662681146140451508478145509475390977378777768396861889975645028103279291143867575220497656399435593864817200308643252581982940326261679936125941619231164010231865681053859620940107760676913016882020591887967083389817583091955801149070482855368120386367091973851180750943700759438085171491581841368309411563006856654353137652875926907382048533382740792089578135608113732455870628230128147545617949941131717751140529114604327054417659547395545089686788142136196558133194656564769333253590660953899795542367908780980347409709702810414259577081976665363724830231798769312078570588336411417307624785801990951759543592949738819805739936111725807039410862407490386982175166282901351095038837309046706915992233085037709174151416644306225521184235087965596941564790385241691149229973254796742635380171402568403673050220290051791814470013353314664222203574154750034438021610749072985307032613300177661669711260829229878035206823571901292671314759434951011969811097155267229367976837387537308405398869507405484951480230119425160596247140741422285725003248151224910029617613677933334152691592279070477358898120440767246330911043099497957480908509511260672064309840073537101081089601062912322857627211013637617818911871487416232093717759241079287107307442765019201972221507350061109128263268767906516575372501983054970642363107606943982706555515702491909925838137000093355028204521119568296011281826335727631204207454864826348980248244461551136688762595149449356524054138082886086749028700562725685144604798839096900324033839423727924339703940314626823261939802152042951031569503062855329190449480017578070396353676414963307259249653180333046994422657396415255896299233202547602563196696964338983124947877357049958289623264705775252590098176516825345464180653743714158239177064320378403348622952303328390979929522407880211574474501399806561915081827320919627767156915066681509471816617241350899318672098818510145312863116364931578012927342491841938863029451082984073802996778452610239089130459914509979290080178382561649376147865701345535945624877561841676359548960744333849620765159151851737594348817139092134098416986437282915743391848430529662851168968299982129289116266751707366525597154578983208171724977657467856666277725635957530413858612585564070871852268611120455467002132540581820918489489246587736490743443331926494840376667179884925746318930572595099515020372008642056972379985991824159694066113672837659962758465896649056253450615717369062383634245493568689152953710199653052966607383817204588349223144038989443900355089120450407217038794733265762804532702305933166382675574420091178094274014022835154879592547457364087056333033061127274989898227165196770465399666152501692416625777476025805996000509687107993102481934931682965062591276850914123086852905716874335015933158713700232701468524908583639637666536005058407371443217318358632357009109435774163057698913388091227996622352565194374990497990407770479229053240356320373137153404264346220274843978856613247539801115061878370647668099429239606836479334086574895967818204543171380788761098105833261045786908882064284069455237295941690215198914384674543543466353725547944569282661558118481323730241099710466562939538414920027967684153088318875717827981057001628229225072198652547335093966702059409237143419138546831701724089298809217366347771338990944718162135866355897488384596547470046211819732337602622305677900458669282528083042856988940034727756185922906186268947513630784680518329551020113529004319924182803857750783342653579497732827230181591710044678942802978231939679862079374326818091161251751200248931442507817313275175909755252889826580245508212737146238880858042393517511071424267394576414600658394073568657710124398090610845129494481455281190386950209558064625289209961857349980070200429989252194819560451067310507815950754869497391170694678677831669011535532354335770680451509711689596532561553560617769673983591304338449429221549451177613496136474754318727023799892499858852073456390427461879077344510162056382807554413600023347254009067400851160382931081034708023568985483682716207882174966576163198172628904750449266613314443390806776793538069752401249333061952023358512024530130357037271191915633109204462008575401436900674696018931080855488608420954771821018581758019167495640426385309403013932599505197148662464441303599039367013429013698583515024070656572220949641429386197981537696741974016713063860446067286994800361925804904598424883753242766544768206182413217899980437437291089236880588206163765733972455348047437221000883821094557465091774031755717997459189066673576900326791309394330097536792566418791384366945598967989739527132772582161605976204983261890496072268069443484809917010363810393266946298025192876028863813166290897812165091460740751541234802946397133256386439890105788256650664645034440482124956193466224737820277728174707367551079575012395882651507387092879954764555681043712859159855658371136246098402748812189217914892343937745419220060773946964150013704423208426944524170249846057984664741803420140960154941611103827431916548112013530218509995199070256179685338686343715166012342349837373642512016301614165256911068181011390067108843657707134719916893300652826477371959755302843891076275359325432753665369628957989434848957867087652293149750381803019899814055102668224234203377079223520409639640193044387199531772251502298002169971637528156190950873691981017549726975684005400406582524306731475739723861259366595091024114002890636154707775577001522115685964022282705926878637258387984344260331313354944690787502998148166546136645466065553140781707603769071201792269202532877662149088266561107134777197834737627427220906222592755815607024287259669300866498009191319217954210151921540803192865910346634796390568806104815874929009210816598642137280340103446918981405263933680814233139321539979398301414524947267601734895969226623300541075375747584883175660230646412753441822289278252999463833430006182367067964793066595574792346982648722459742211517925683313918290351270425340116974162502739670023280604205335971636672392526191969259211794477773033182310223821079690673284330008806263366629956292953767303718745872916429387934827818661786893440738954799607698589013435163538661814682037212581417180766456931520692832733724492122486149464723855888656733845134952539004911944113397619989756767888996568400839924994554234667442564746749334187793350241118459617201646950891564817783895468611668414929309262742765223660416618548939984706131363386997278711003944282061152351646660507611888931229437795039723396841801816268843647054648489224568329235656473022855851243948445478674351692601531725185408541935523026769808779216914778889066321321674083240418994098236384790603804138565491671464984435452675737369343653669733150784271297326685640065853045460617044512073810764012578441134291037519061460630563456848365538117734685806313687724856879267469975922546427171279382077658854273670198099495140947781387215452441661336350412272239487156756565870377419405755840945925352815475018140581869446116507578334481892710164732859350088504205208430731669027891572519560183373657265697616518122054380564884070651954916549961299338075696149731387437001748375285218761998440625134319271834261781816692277540678229355812238277866921303071223561677581670923920634092284774959504453951125562852260669438036204420543358149236763362943689310520177058483536249081118344841616914928829353817883224372942363869209042032623626269988144278858679057851696766620398737329202583876864639033132962227384815106091843879323360292611393890063280402419960850979992582544331705117861430306941456441870549652731006841602600554800579835683593587039441873457834163340250793352924067240562710147299779430476004317788061711935054932752151625735209761430775895812089755142794079126223537246723925816395293463799432336552111910767682220792987581681107699750073730472964356975263821862871342739008656302049243381830897252732992020128519763104175107636459162770698402572464889042522156503063076300574618047485826371050305528495472059929824519536133455412118489762555077196557766760640711849089244284239608803525585450937915504995080773172662605376503101751334760236593881694055986297404366680376075340278308592137065057744780000711266598879482639736561950128358141807817387705732138035960699772112782647623152393673273684130883940703133152870166421463824325800815121688623215325993883088436248506238529102779449139103830043702746729751778296077788853903489044690273675188616295303518215422915657991951392412824297246642534063868101710589771589659954901979338412668120479673876620019719017441391505251345379089212962051673876140930505369870466998785451017140221834365810372761218083085327476406652735826190623335367308901526358765647022988890796466088143837166747903365583535399156830768700832972203155180354249499318990222592631962279395961567818277503814491712807759021414416990091585598050487269539904080971072265611722258499974630434186066785192880751058083319011763452678284123244442759949703697006937523363506827514036222771291025239812861581641550722201783766181448462681698888754759340659643414450514877421694186811360354357062356219078333595811275823063724923302075749404022792249403964897484698993432014497950555148425166483129678100665093908189653501522808821143744837586533857067583015824203242008008576284772627733839132300649816918120833910021667759601027522879212081533045789109857293133257374689385155178601764724098122503915012732695387729112050345279253646801082776170461148179496419842646239506545581014935259952886585902810247839599286497766405532895524721336427291512863524652151284082038774136018907927031899812404670776127354661418556595588302584026313880345003043819254934463310216160567220249589138190112477241488704492110562758799030405643259993726469244011035773654886129290910204613327887537339473468012376516626166341744350075944419914360834817378766875418085144378368371897335053652225879111347335128333568698880598293134077572768560315970203991653367559751035196716887504048963664016459835093377583660933213241079941291486724917290499597122956325054840595576251691646579673092884948030714866556523998844398784799714378910674450883197129396824572047319729075052839321913009863465681078312331175098022339877622686309321083564650094334093479161106783918304628825012508381904008652108806460108997373631288196583757456204875890232091610471385889363477906317625965609183169661709359539976317096972562272094023942239579102263852137907481558796566144904102958702255008401180394144909683384201253824499665324355217977586678547533821043691192368553037529967017285176091856697809172935354351021309585411320811026067582586974567528240855951403335753228632657208221664508025304560818410690879953692347764959863526708557947995349425536262785545492324783356789511054686843230600182304703733688338429057074690919328444978931532513866670589318477787777238201201179466178330590168454755926590617010178235819744594784204298045377350175892008989197787089138741148360738594165604373886332195320171629118245975300330657796980865355118770385129754159724395106236198625688815405147661454123616125075366366168163402611143617924600653714712155023561088307214526823500452146795739602007017669496840106212092989934732246414395469067417909772213653612349829699166694380898018894578124065435571611649844782514972661864034023727067988955853735317276676267607354748995745494142651163347001787937339458352789137340939220165626038068086604144857492059990135821620318359355060905654603306815043186117076321923126295051175542284046587946916943586231583177618498071452577337182534054793597088637796588585716117648712566100749470333707683846854040484906301501617493481067210849113087607981766722632849209521490695716787361105021382195905183828870660758501899787988987891585706573117927630605431491892541176689184421663251928426059527346431835762356195786053881239404154834254501101422852454950848674601141557700576105355524826380042367398100427353477937232230771034171388340734594883730214911761723892926421611067337141660544055217879513265614189755823694846376996195785571827862018613417120471412344537732261721675359615847709759543005795018999576096984547087754181641832310459573740205632446780366442188734239133064406539678213075695843073482371433185701383181469090298300622272334284382652378861360365617395315968185360579179581262903070723018711239994697746258349869363041885667420892402749457331761730207994691763701566321014068167193427318584485765617583138222975823798631302249558914701027209409564083947717622587565956649092308611728399189775511546918628616384336909360815185118198547651506723584058259501037650662295083932751514091140802189766589104425777381045090856216037908273670507043515281344081877350247951984683094314025540726794904857855513811976691941379761964775489968161589439644251708039359965568894193064161208900070115805941144744377609638920544096617009259910873014218512233968928785097698928164981569929072829994273769008830533385699947823247988361638944317822342922653783687327810948857586766897142972778524642470240889563592703432282661119336721600308162402962100928097816963878547507224898570587213023987094453039443918441949300369862442805267031065594713232475549881668953146438880035164790303460278150287278835030437572160451166090242719105682428285662031923518707962352142906837752836618859697334098705193022595349615820893764058940462683111435744309670427282213731531613241868085139834985826635729252940254396316865394673182265802427975207320341620205320267367382198278066329125915174656788934592406442709677941961382541928523674886132725572709966828901111303594659423735356540128283910644483980225578703022355549334523250580044360853855146352131419728437213753884518837274015535424608927414660394614061085769942531013671006795022106280857259180417747204160610967457611508467528995501395675360015177121192936037252009173887593404145877651158086938225446677050796208644551255661185609509878212915798704675103632699805315106143111837212829988383600178289227853458884907874813329128371974789378067237873452802785500555468096426967380890975213367592367354308237357077670691280013580403760562289157961376751337639471639081558186574943545170139003334594939715286993297707075891433728528622481849573654919705755130332045725282836689847091094637360905321141930184790176132273863696445302332622759500742294881541968129947003620074414737132163890325620678549732886607220586407504496675862013814150755541445672923911086121958955282987170902491068820729601429792734916826742651352813287130383641914932947256306571082410421265586208256288413313383567219624566989394717401473955721332246630568093581976068476021559524153689787272058317109710636985257545532798256937600483533293217310550982241122840258264926643547376041507252992368389539230849543515960969796923472049463066795159891151052853775380897549612043230838856056250183514836411804986952299135489885773070144592226886512321510444879407251775273766367304244217896328213275507461080800248363960292857043050669662804582914845802330637297173006161674542759592350581238074338324719132341580138869908872471703024467888215605101151531841112330158257733656477338860131613237341827060111754824347641957398946439077238764283996953071068057486628354228132084931113227558857771507119418573896274945542337781721557665091112073038031568582381870704161233147251713994040787833881178627375300866893346878732274086529062310065305920893552955043822561869398730263333354303343024632806736294392006809783995691885916065361402117045172548398676659505501483986912785364934983771167589335016570379399160005336674424154938534324570478289291077083997690533838089400220416053308175131416671151728575343540812282698455281611254844432733008157857485287708317210659370483352318830473934745863328547113135861333174546104746473811756115610553776685875459715106333069770145166622399867336531569920431844688668419385804726126360693303091435701569809967174134109389225639443625859338694279733937188807465127101975113286207005869936030746986064346286446547038355541025485788658897843172909386366800837161645226356872152622169055833056928424786680090451159078126603830873455469250353292225154740603150506083997047853274593097014879694218974452675297488777712407658429843617747198669569801573835244774845488655346499352495621028577572931503360800379484488441318877186964555574742368856000660368703330790404910286375471300702174005955338167511575937448900404927352487366700896151445018162358500009650832946914768217525560044510638759720699613982666182084918136900587283157604191099511828304937245357014739138890450656607173740990598010442963183605526772684137152988696209206748591932698175479263943744787274283193157541884430051250290422127319163786942071557560763219699940003159641545451437259300147040022912613941136230493574631305766425261136791144682959646818240934430038561887156758348410192757386663311804239635085160677322760856278244715169656961583598865420435587976157435382199030876776170430911060818102347132980956978648204704897316239821244806597692623737251843594825474599329012421451083393159755551064612446201516794586148884048961224603951577514221821409866862425309963698504744468350366340364200181149825479337797264717937444626584874586396972421186487421302292211883506717568259381855564295431081147744082094738507992906101398095306537911944473997528980160821531840883872134277663069795062754973931759132896876634759876470727482515002268951904708718292618774652307987321539606321728118532453280603563166186785697186154645122814051552365013517918285702103498220283851878534889514248423551452978510404415282481642488937939854418011035992234601635796681300173451825372558288459746317019194966430036468137894732357509266486298187076130065520115272230392767483596379038273034153021407486095750765595233546949258776758419381876628660567582996572521647004953344312492987051180356272367485017411386988078084659068919111447500412713338679420082451488104449754335858181566823246250757193712697661506406692435449760698651970370161472576374071225449197526766447666991809656035697194721456886514129850547495447723794755467012168504427366308832506646750563770222797177346780044569216437501538521428288082015822626653675774705474653811862929736148633167775562250945521292414982784928175641527456876286340204694521680084782581353029637413710112698972377329959390038917881190690903074929038498301201526086628379557798216977606982503802543994010006108146949040692857975052649493959065156839026404870380909003886602715249333811089279642170326916026553586572262269427139826989451077707759650694106880278585561601466969993883283866560799647815212089547219801842927535897485924788092264146780823503755369087949851206776677037090014386473233005904400341442907954526907393337714860312509497214136692966124312205898562229995296600869582044611214530783277524968661670444696739814583619531379679452818261958480820832171109880371841176306969683303949737106658276298570869187820968525769807270914488464060466358302038588813052239974240592418031955209136292932518339880004015299084289631950986327289947534078412253014576087556795790333489717440116986934633452838003004914190540951233526506195788294724889567832077466504756572113662831898151706193939615826657368043307073207632497349726191755372563607619746133975341825824364636319640271082444548657401053144814091119891645406972639043894209611176758949213902367916618820736677979701453765106953504380986433793724920531541974836321607869395436084446074968879139870232370385393259290407369272839059768521758536884653160793952880528560448863680775526758518122148162484654913498677007250932500000061193834506648510409521182666458300571935272461619826337331108696707456647003107888073021218787356866287439768077056122453265678771536533225525731004545459919232351496491077110778195890377290007516405929642138825352322550836472422923322638735884843957018549575780362588391762296145046299707251253603467938997044343823603221268310229052387028723354546119406389128802625570696277175152483942382448926661769778541556659450480741686924570510350447141717524440723400378221604643076994036888096217953747567013047695804408030284722272654522757655577074769533982956310664884606563512886210850393218166900304924111127180619922128834765901974500189475380921527337061064212826308623674476982082401132889606699167929356876759624997126525997827785958949083895030418972954860027501827876062435214186824216711765006024895500588997174957511841802010593310218487177153640709420806340390193467948473760459544118088282883988757848031691328072859033807522076270273352363970952354247368400700162586732706293586221639841706587862449852731515033395541569645482719388120724172401952656018320123605856330267271393437722826773640155641601286217504524639567331986649914988065539162045730416426289859486635303423633678760835120281792211663417336577396218643910007017685881052334756875432715796745251741376272227672727324716692358067300693821714237155879040572815808635437516521197820847618926698406061927357440759738176065675377168108467339888739423562442181550076834192540643976092447359879642009891842893762902484227006921300114770680084330742699642241819900890609583466494481330857149629555505745605625525580905430131777166890912900843213448643112780612474314973408410692953378837418208512098576007052173467192420157010516134696456443552190777918007017276749021308794623826377514514878793092482240165063291155945001315297158576254517552965691907828639218186971146878245694339995098206213333120425527151001817465290671060767991775798723821320523693293674563098862816088216114840708221004747850344419497950824178107054389724823681661289459103599051929027045538371445628161234052576440872076037451684925411854175784733087108487988178076400399794305075072326351323939371280419791517032301786008039301727919271801787691787375344892102211307900164108230815991420173733666951057505802356629610736436132926722489426783631247642285146366639822651541555972175034791945803268699081919454705034488198556215484836190469911477986442730192214202222257053250041417635089046380465527783067707714420080182944117204427191091512532853105437399660332761753781407573372447057673692517460501441533516138909408986952741865998098577003596518808036566945872300753217738203174558640717598168724399619367464302623723046395867606422640803296438825700151089694255838201785473553915948274869669137041369192430597801256133910963394137921615838534736011821473431231106808501051315729094405524673011421326369584120264666600315375212560405808654019267984179087537139775914862690022555697561605111350507797842433256589114802664652099592152365659034265382151396513315564599032738272166489448521306012701267134349442169404429797193810699208472431380245735653480880806668360797766402506684342730324548736336792093251309253048696295103625285640216759305389900464059164105274421186980819611615868305674081237420455228738067169837102955524578291746656178206854170512875470649080042910465115244045439281739372543700012868760393581354445002340032838295200654054696158256087573988936099043429260717655809046360474025782456912904827751513761722188658745057774296879311127047360388721778988675508627568741419126386556776581386116845808348064520609293136217651996100998682774863924127503432448515085309484351671069365564570016092878799887069202325650068813436478940850897915755886872157541599551983699038816557696049893325641172690906706971797297713532830133738466222236029511397970637572947888403203882056299066821773818930312990918893472870673577885678711263112232436212012327763231710877085934360522752809679354393699672457372601344214512469220844244433539844888765075903055465206104165849155287708372026674443926557373095302448693832043446977067296377067661107238765070576222103388667991496013113552824157704189627931968581029048465940942069799247164290433481250193354394774796489126706633908600345914690387972921449413830399996891166474011265641368822119871673213256720333542571501637469838290948492448050799418863867440419978768418934680253186441905481652289784666696817442545000634258868747357297223930587413140133435489228387202593529819508059180919110542555603927302160589447912701567713797352198216167931711813478111772596770280369842674057346558965017111869499714796772635867439836436902927410459117154786321527126880347624866878159287353280536628888586640495336021550021276548793629518643862778109557919287951690198772755037759995065335683777132258082457835822147724387872671652037328839068015395122788026066368375868295874187256733053360686678570081138127278468855610683909000965785663447210197089850732205361663223416307218784413255474558982790870363064680100722575678387169166111816557890928544250176684573097956275230200119962884097274092247823431546501905056499259341819627925862957086865969429228708655720469468154639104507281456721101975672846556037519374259219617003387953560228039050328997158880176685613937277836444842546429561211746757491370613053105561679107021739544919728348781535442949257103615463350533707524598008525257507337352796211530067332544784788448438788178328247324589427289182232286221002618005936339574044212936649861402904261811199032292797747414456428859735774943470835976887189778391717944827473189444872632860341249267721544628307464591194279933297880073926505805884562824894580030733767058744484903570180395605343900898910032108152757270008472462999292012998879106795729394041613021420742285960880956524975289925137789026426484583740705555247621000829417928424223312224318369686018515742405005647239667413541913179803373625146821740192384888600883449126940798907676102189780470190207920655116403400839004111456701425180941420707883290593318414281298358817129871038862644129155810936305447039543919321234814099326522291925827280713513975689338120075799003728291379011014008763814866891787636448791722843456772539546685298591417273976669414916171019202280043714240275784116628502104599030913611409696450958067620096779993960113247638336120410942670609487069962427187540009682746057545007256362338199015489796037094350445815623736855132045578771468899813434549171238771405571613447929267012290229356718443732248207678144598925561376809900342678048162014532457175280667049269887849654190644306450299215027137062107640120780415234736648882593736834008889168201747190293566264101411151602405239241064340398365552507465719353520738332008929447546384215970530515360345379821587042445161404384562484076476153402789588680196673206542361645863297300524057727972243239133531624247661644130115844934787388260906662361924947190961665233671958423334259156066267641205957021560460377111162403465267954910706250285373970440543396333202602900147360695266061612219952568675476362591353804532467879190816274427969551601709912594216385941225866829954126732439657374254618752351168038120690103995306470253609934671357610363491596838557854722586161356304047082875694691755481577963059258895915780499145323999132191047606828463375564577548476389675655909292098401439841840540681239433361176133594647225730772831614686367164735512872893901098882229240235421224261648448717699802262696513298749823848460646151580723992337157814479202434929014865390319962912485961878421874516908874951843622878383391408521497880637096704904409526889320405316729601640015698885113590487186252620110013920023063047979373352054594178741508298389392753966812739842068979350680580828576161652329731726781059285657387362468927494554799221210502965967017690501521934108927066888950834883866785058492478482824040158398268495934033738002718326266417305244352226872142750659001379184673390836650056668449676280022856044179641298671789681914184976993218645114490907692324248577144363971725223557319937527508739548192732605477756890515010881662950101384331996916600638620753827925612329591929486339717470198636874663791965336062088733619226238059212639694151228891717113781370809981998773246599118104920901858309017331506552002847139648911839752564408068417245184256408628559236317688106454660150768020885267673513602075990798113817237002545206354763508470425128668534479787677302688784854079436122598777322972937692458655825842769493678016630605916283744891292051885548029647836851017935964773219587171587051290560040293967505543448265714263736051483669321834469633589486809011414865301181807000347138339674258103315700706520253535720193517179449767315335767333200542509682079691452180906097103728039755128161422263925443560523455998170337918033243041054091167247207826216776942869138175016333183901108863895376537729096892718288799876825697448984951325254247065091599616619342372691996639420152822510890365749784509931430336971967799289148435831974168722557315811914695856052686708903417039341809210379262674271488837572863377979434259509667554938376178341209511498354661990066143555497654906807255559092004150137035390599613464560026611267350365161765895544511979960924844866197998633307308391622394458632155598223108444238051772954319470730130519134904435809222140085292196812446908881853533759646950455083232247634047301410698263869166227726489898537845867225893120048110670880096413858758333791009956893416153524405307002819510362047021717842806805749019571244090045190569381786785880671605861090575953626967923272099796211342551024055517289685970100348365677241349580406772733633681685704732469887176477744600241261238209787495771364871717032595481024053803676495427729237319573879216612745487124880096757978237368865648842792355616638708921861523318168039256876219177596057100131574586622899379391617029764926501996753790227529584232570641667200882568581337655674207488775716041611910740563688278354551098983594644733581849641482514792443774872564087369414546244105596479624093253074895264098959652323024053632913135493289146564977121251279968305625461220819373091767690056214274162954538711719522390342861433818681414357027467051531675302592104767462501001143449052120515336987725141990139692734546463933909202858150306262381236009516644410582375168991445795386951229663141564535098088483414001333402868323151731366205154964513942686876073162449909051732787983446037195651850691702106843269496111429206388743761770668936838732943650062257548887092271383012368156219186550985575623047621656203159296296682943442395331618582614057196991461611209246320635494449827513776244001652041744938523489383653714696609361198602425145509786136579207824198543900570273017135219547172741174548250626387219426265907498389411338871378695549634804082704493657965314425063155873841055029664600672398932494824259168932296860263284728789239381248388311327423453500289609815167851733989962509590644634958534352070521552436289921363196472689009730421965315815563459619458809097460505927421737743067124291947194644800394708706226568327244037414739045397954758015795069545992061739669176522181104654861164511401844715536454930878967911660883238521679807104659241646890105346875179861024114667211857912158487438194837791961147233301299974934372051209761705057676993481914556079969538435731438732230094688049654562891760016050549112933752038224950352705488829480515367821910039593353310124154565607671659655382565438781296001954347473567255739071150897297472700475511559674288634354131058493223007269907062356458893607741845453022767826973422856602125445542626559667284106602461436082278709192760148732238029320400716698335655180751565239956177047929724490707487351983216716044216352109062785941236448640134884585303832518178004863479249908271495069993392203194540589162083201262786712080731417491346627553381491420925783775443024701161798562595480802618204349763044844642762023454038574770786221094842164996788570723745233522688015381189862807916994556056094314140668507552893759273051760777848963475292715423799527160567277280277583798147459061944780029966876172243020508917196356373753444379367850460482132042056015992962451708414635704880465994367347021824225522161931657213268823987643392356976660039143836640648585801993341149019698735180912169885246890140610795600076308808538455165901500493935211747067502235427512467411980906400327872574452334803272014210520132178241106079148011040408201006372310062341757184397241962569394439523294675297389889283061878163570050598988463145084843178275091629928933135220986094833554399985554366085471026730452547921044617432680133701488203687934406383192111552928926594217412462397171411319049024545319839160391320343021670211260200251274172472044013104411178446023995636820852481440909196217838447683923487548845392265669778194994720148102251716073712216638259330351822787722857162234485457402930467145907726905352669575291018788587460074848240460545708941823608753971185847646983328052669801168858130164482984540751756083756852775537770145370057510392056065367326590907489163848795321497774460138593850969709335737969072563813217691844019011039491124220624706713375937255424928994481921807941709978624162182826717850733067600902650836759325190606448544780089800404549144345420289828401115682619747414126700053274028574529078618066337912264491291997427476304650175903145021903709100544549564446762975065947050842943145937087235774435964972881896033309092031290506695230546386574857191523331114782521364669199856558643359672581605584538544579875200110369420454683302672376869235383327475462860212724341353555164847789000969854156112992774628527687519303673606082726603519733507124805800819161223175039620731064399907807708055028395407832894202571883401256926416224559026991275323315835475871244207790827904776044985593073256934178714909315383974492652620049891157268262271275430073631255464264320116728589597408509867459460340380036263322165564523098873588468684002662169222348797516763609991880342324792192245669508963864763144668378510442716448636106000848708745428103133622962011374514175306848311350397243173838356097708580950410479718719570814205513973292792615062601999486169765538467205614422403554321950888526634865980592920393887248953934423396760420107469345299043963032137919103930019679480837194813624888287023063163622368518474958196130945871866139383305552715193853977858565630896541420303586306955857418248678869221680006358574485041059055099042163626562896480834199843683988707366492910482122952295177357761634900692411042095342072621937318012981537523636103401045790380852635222410018622534770491612081125558283548136049818026030551583799005389450564985996320136913836203454292815194160555740603822852540421926453762695628940517858191183922930285326843933061936636055821868361810657000185594894017621171189074807839068743584871802043925584647929249796059332748511539175023123452641305783573453995355585747068012751642404107749308138665856442123482909531768109391233363148843643349963717209148043545731172478484806728594697110406954308461005179459996309570673902025602901081319426802657949989408212856942702472700184653943465325382456104637536164409390394761679298527172170892692650078066509082016363723414311642025434552734428360342971609211987112623419343950749931370963165767335963286956054997848292600723014055354018926391502952944547430019135180946766112642946061358392920898454860714110039374676751195876843622936519336237932709616063757961433382530232747859625888592437383050874123381258155583902216020433121055147228184426202112939993194646494527049989012669522375780827396514814923088788656025628666875429857355180167112452550716638392937938080169952322260466511840629404867956768786779801474202507369674050984611590232310021975570712166072639749047548154903461709445719132005581265031568730018427544834957263759354061370960008273030838940295126099193699918001631764474541549468753357888543139221486437762644250276369819454159521517169350163571998551995823297743671099319179944085186942742730618159624748931230988456102045166964419594633380670546397211787602024767811129517889762772560531924130218857050175559899032387993724705374515552480710498376348000903251698825119620099209103305309818778523417167928197251941611853504780091807081698741323421646546003830681202850640199049504116830760434679317142573890409171211297118062142831779007127121206864548677977191926959576772693170300867678153778307484733106339632519818303366214093241856887755580518389671235221206835218076064954331235976880862118258143633614305281557427781277263390317299147126460762258550957130081018733143619670057290811170424562904216239947160846958610471958020772556270678491962489917450034651639426829588997807928243976595548258484993772416804903591204805274765130244946356457188328240586667025360495362284869040343303408268460240091677416080141979260861773279107977126932578852723935647669736160673525933293904364351161617836409700024781648454931768429246332263179489154572641297950454671283957633385411771522307840549361338000330559700677905500785095327667409634824268311419121391930098187203575640539745126300719452024411875762275084894444287979369093255986920065524701709722423181169558750053113514662096568542214376137957007118868569023845216684844208848942326706011318940358516342718114746981084068001074959785397343359010806037219385515403008005678555244538000176467666891725619348374963951028644495257447472548598737780953421811081089996520476236269493818944265167797193116395032805875731068155432000334006221052065602295440084110238337689844096657936244511181040917986944182644663259129380708537194628958954940064004588493469992600748994903677986884855283846677248903427585386514829075844381120341070774374318090137619147203140645713406991237989906747784107754747222515183280934369849657622867473612068253666696050934186553956729979805343185276521433973402524326500714410018386156548817234459565245972485264615160960581155047788396703801075102533332034903994373130740510976497262619212553234662097063676386008535034715311523985054689200407162691179482659282843078620614724811007202210681783688660537018532377415772112110539363466634365972570882931723552795169784396742922203788890051177172453234150697677446439994316579476046230702535849105295229253923515835823648660736337704235614343773285054873410064249839378385376903383131966960966516277047114411616740873693705879841727389037051204942991400207502212903633821292999297353583842162752408650834147845758229580685376774893941755226234066120257392514239463332237727132201129241964129679752709539425751671822170824026286807354789494218817685564084726557478981530194244570794840450707568396359945870780074514989473774357204766749473334246218515102270512197087071034963764019962352096364644229818741161150063229256378878029334453567706035745265806489763014374440389085156131698324615330489968458791371657261438773750637893508494554105609764197802567432066321702417143904233735604675414550969399169155497530006173324036128357890894791081368516950777885509048073674864508189978304806357317044970553438664934938835621714115173243729253127554667858884506419580627908258337669639173102891267782143163972148788496671665432112503775271583988017844619181200848309753988147644766425783894362154483599967449490500745266543912638836676532016100723494181738358480427976329935113760678830336902235798580740551917822874265190197236921014685774325834342022830896798265353684497754096634543808145424186436980766227929214528345824916928222578290532949850460532880595445801319136210108614615583545899407984252920890339846279768863377195570701201675781860144752769133564276698012673294231367027935418830848737334196299483418898642967635604342786325566597356532047428743440321701143469209329163048887098976135398339997496773852759816735781179473318068571729302031449187305661977335477003059494035226804756579305341676618901435682918591079469764846911457699028062680018494837414714343447557849118320483239345000493184294521100528101663777005481006277452207687505828822107814353144259535762109036938124325748309636878995650551648882198150895427291875097679789074733126275001183052894601216978575239439870424569421075810954613841991873192446683484889159675480100317795255607026787125057541108558597665292462025345389366660531528957024328848731594194188920611352565940029248660593104269172221810655817309313039319823917427918431305889273101494015265429347480931416172778377839843346835136018479322824961485154431076510085761956255286700376910144251587502952321161241371228394087135252298876162138663088488115441284425352269082831993030146855668290294317674810753843700952710677634528108740097717099956340341521121505288962592704352025865532662915661390354462235920751980001912205984267046117314040922549516594431393568873603834315825498045370098584073970597152382643071072494602744450654856939988838202701876944755737651687355762159447621705382931140242809308522398986221048820394000441368748293102317671356922005322022875411517283481954113664706926540206622689996471067980275778241883467154144822348008208497895025287595590456857438673061778041145284842745038243603146800583411378379278890744818150363446198117230140642957689090823930620959627117880639656340766463339105025162100495138108070237382809974026753550492308733428483602918516889456311561190869656335953726996963696974449392707119017689685742284395423983813679801054469570485789197283040553202819451944657278527030189246432252298121996026250775724334749808270087149930003202331910270480267655502418358306817018708973742037603947630197509261814288380257235390914411197292870523534251448267499605304399353759781715103594103635977412917294837182728349779237102783102614976753425633390092679236171676164186199071693409179382648998921220007047620013584111889827730884338168495422272390332792766081634632514566240170917978622488743486748498494628850790813029247227814950166347612674056725506499007220425178688027280473435372345565971182214971107119991533968016966743529881868094085347415429603923382392544930234312246406798104768606880166636128913770534164141548093474880028704088624445414699491444046463619714002727738270696290288417528086832210282128294366779757100168019028360206863301302877873997120759371482251750153736426707007389489123199436241657093226335705825775916014701839073877063142672812856110446878787071112015109534667149549628382611550982349055701482143711976207170054892983884178102428739221428319718268563112366537391102382873650443090248755079989657418320272754492342629151020703041502895438932364823078403721535371722291765127091376635322642794869925019533822893667158888898785845552986762269424137552136115145441410739107326900438166342127322781735783910899819950514150451748127122134379064987473883345212946908738004880048901506552239351109209483319354684100845594807911534560154194473427792239341593623039781991910091280278307357741354396151988128690968233011360622451639741295897353396361904994946695325748536861901213103878530163257650184637365112350851546975366398784958254207268118175792979161760393470216586204459987581699174994326066363359767013502686636610278200160809610229670965459998732796279322686396295017602228743018311309335598122866733726089621234122579286299133312590302114276540473341044492538389407951440719662867906960186613136583225954222186103620211394351931967437047517638087470584233574679227025151201769277656501202320395503882096348612262825362181359155012596149133343247566769457818273001980544027228858096452419988059280912631993484522116395539534435420259465210773500465556025189283955929579332461308226481733568523318925685285547215287467533649511371711267475371327024157987878384378084109020429337457288476691899316782263545069924518966524993517112760528749133158029873692002303069198638666150445937604148570867326276199399914468576099928283429066406897018321295457072095588694186625661644149429878962722369454158965081054688250880159621072283251197915985801119245860323034624219649447034294092885978111226573610372638363469037502623536807675326921334108105906083433966239417667275397788937114124358189171470561722510832119892012781695063261342209248904999506595201233967098062069931504480554081831753570997806807603614471368621817524404419873232962060228259484461761087760316882646670446543784673437823649392682502797899982149106715593217868054023484767664576323415813579473449432503036353205379903440803359658216529892166853989086657974257578852288881884759400821782402069738666696129010356269026108577919988840793338263618254888010995986656771851562204691097500609489091468488631821337937881987424939859248715605688818980613297792575350004642967406418532086338027444173615750531973316973183786177883920730445985099405459351343659903250591125873516642676952497881963638841149514813822170539948059131560798260346930225529782640088437952264215070764311902974312266016306558927401183715620866712945065316429869514104413163523612172159053686669005564803301507075378430839788077420825801454404612223598667151238928284517275277541732811050311937009098478000057583932876838427604508640449238777919015536967165369464236763516747668611796686493016514054328095109720669971536658050658220877387194938720086313156891060970575113827734879864356929853101448600972611410558827186155799362275001208000856776361065861846294528913446164075539403843893991245061426333264298973886457660648435005686018823525593585963039054975691030145576124645378046165419398269091383378678954733304304785440577456586592207842955582533544976304312221787213084240555250300357281713885295451547548605474241287612496920939524639669448066082632187171978337359671537646160582128908538265710287821182970033023923452664219656475611607530972692275228524951724702275803521912844249943184824258608736660409946367984532903903945395059052254633456619405366394521616782527736955106203279255834204713691623481712228422638029737389785627428088764742361536156743773682770865711628811215194989723915524120498555200709026728445290214349307180785973522753747054011886644799356646010649963511202109719766247756641470920933831624042743631944844536180458901659284079500081842461555811673767277117651480311201286357224739028591713905114424218633264113901999395968143349163025713271678314711008694099958884786203861743505882973410025305083559657645061643671888747344447277993025689566189386773177914899714335785038910509118758444413405948468926367524650775301505804638938034320497029136627148031144673417352487778652669934049243782722018594133902048651930800154919564688584164905521089007354991372692241065375823309305466157415446182997383983503120985242593637162487008691163652035236977201463935901182294855525798781295942203261347729644361094554495834497579411664805924741047984559248702214939264674049578411575929647941516119070390607857791827261238346735509985581748388669927422981319720984713276511036738917248640318165782767100115652178887480981997584736508248412801315133846596303906978080221522440733330634815479087598184825968039059795143668644667267321633074237573382675810113494255306252928074592331619841864392131372050127629417316718197195971576525681400765973661255142078196616504550358997914804818460089616106981020503038506015841061514910930287459799525650080147497942419444365418588327541922674331356682673545526007538497349163500910648933904902644843158894854257063520188422190565505473328904918410211777722556724423563817870943610030549254303376903656987010462033361220814510332853442801707160758527327552506934965188982913748871784796441844936914941317649872220700650065015083547334028634157658469205387408175107994012850678748907624113182242143359193549221963301530853049105434923572273461553613415032036376759872004200455174121273066503398311341556459153287522746925353378544509679318768225156916831289798106747463750688956069552645242632121056591267442499022483802366184373757957028435286410394389558052298397793276622826406441276144724194354951870660791302903530780836804969880116834985366928644196590941923821157211523194761696063395279477638948097570119569092158815517529170371357316532257859344474005276637953913863045753604292631752907764056513028200605157214025479925593894049223858662867478210069216426106563201830458100587833955681995267914507814952509446401105695748789685680043037356777876821232207817230618053372018763850582496656720641344122117363282750367151452388362389525221275267373125402534165848271278224009071371602107815164102060510587049152909697203112000961770762545040739126514985112350269125166687398927679703955544309080836610297350060445892636588213251610782251977916485480692767122633193377376528832104747669164240300624635573022563741761091065455450948825273091927193944044862261479165342030677402817117114594208464727129690265841191459082896216160086013615918799637385204682141131842695867117883666139192913400294303239934046384053229481642400907059393531406315161711368141864390167148871172200379955649868159500831524328371727544978180382923570900420789165162880056248381397737062325992225028310336282206688993531456810508383421515801654718562911167845042047341108196404364686472382826462640275634717543247967553017639688409900810997100306647295363052833528810483137749965093399110713027627856532650102635330920414868090479971195268960526606174160941077530183058559183646426692381874576046152681219944247266858269844863134904648772088644888169305395451152672588462202321092168269677831611516702368855922432579143317361965484983455015955831372856411916386248340874155036371613840822699626872315896714290332473717248826164040875870804025796969770874036209070215631486992337168489201187191053928482885830739437923246113635969890392899684003916590140510358833745815509196501553864268237965263508260164164931061660767414868045970909621566480589901191581689392160454704702093377991204000656373557173225872837999718398871583142359575448878618617377205269609798699691057795708534225152314507899387872471413992929045644213757216508991299020536751615371710562463247811641206673499484589622637960384712595033378044443685996561574480118256148908216380084247909865416923891386996092049058590774187867410463563569551524799529262633741135315882941181099261329251135598780917276063116265305266452997399244224652984294571225498851642488304651465709645923605536568312095286393754298007594501661197487929205776451279623419197690350403783789120129433368447184646710949570221664586100960393909823945278064887127851835865170382019321570764748477816359693286592550068415745411303302800352831559084437258688202833820490789344646114584416299361443327225641132087672646387483639570895270409534704256598038057842759961208773416283771798263561693630646852670658551798241350086989128445405701574896148392843490669637316598297604307955997992385400626333109107878675053261800410385416802420492083883768102021785850125609648605543238963415535410776425049683320465790372280876554730733943113248849507798712864535477240880767093112192587789583277094342952477490427471569340509438988577106559196647358749197871693558270261144079808940428708458978065750909046946323089306708643011797366524229233604992981742577888075869875321707189213052775161885577394714319104203097221841637173531429883175821216787185094112902367506171036209434779040452957249666804474605509780613759419496469009005956168083449627772558530429720527661557566211407502883106288543888266361915741758279042113960718034323245386051730279081694120965657938277871530302869287544670182467085509090319939681275118261517904806931469035159678386527238447941168508086901593952356837752222816734931828565501184438489994183182989673476191799028049520635675986695180732489760436496743941016829093613284027840826926121428982293412483569233526607679847839482246187680738672983335972669218082550879714713592889637402693835291885106078430951833217632484540938602016745636465290085705958214882911708702740297326838059126651205190484744702192600241742285045802915747610833065427469287142089275640092262184373923432193312140304181396977514949947972971411223247719012713560554835541999810200585443445610124256213450954390893154335925267773803246237235064043951806039028692892822148745749884962366032835874769719694700697939758466737909470840638597216900552595485333848360809324536280597910240475961422553358911565748109110658811568801931983675680474085462386891677557816124130272845512443410816714068255593828106670618662517790511848779367421515590687737795558710369205060417500453432908562294643628438660223746177809713699076084150070229608887172875946877190866855747405478511120815562971256376612102006441898619556382536835140531561115290460575107800990258991564943365429241312969908343005040583237033512461086753958247664758603996125443259551918830747995608692771455173467755573971002268715413925673144118123945620419414723986608650242201787974433293069874608463264953151001315182630425983617480937479568961476367586586664208576348585053049869806142521105900551108472685264292835223095304274821436897656830565318828097423531370742359523391242724757709791509560031543872058638372508156819804840187059510956109413631357647401236955036881766015629914092498146971059086055446435786356818232255010767606297316111977539693785480963718362149606938665015517859011255804380741955805592410070699350606792116638926206134614552225058540326766560926171042636855397294216297449881359811437171918471280430067226468846737115062897262642763505412715381945974747489483518473963109845088432475134761687718573691346387696219388552719522005202437390342501256386598544251338717560310688172201623049900530947500107354472761404280158652871435948205606790330426492524701799154794670625951043484541388277682464408248459604653688640472745064085560649857194796865532118905792169685606107815979276484194835779343406584955375103491861910027482335916458904861158685530963895279187736266062385488950745542875688623743174948221620925190390424103576242239652759468718540797962106775478112837291969030773676767780287678671232411678082593822905682636287907383292718408037206681824805432069888132579898632507811932580163263198058796796701488322354479175021285348606250606316026410759778379733108598548931880320227129130639499852536827452205447719016729068776138788908180506914734161543809471628454919362771663103717240247562688297614488532801854748988962895249340986681850106849250212501763735978187132790602390416860728624194904653025626495245089898433523394833265203739975777706523775400421607684132760076098549333050859737062187428030924129561810052825922204933639630177492182586967136806559951401313073771153533292259203901982232740037657739659806026287377373842149297762579875267320397486573032021333000381262230122653785172143674812117651797371113626353835085228712520449298841057060622424726008984991912178529657328725528198523036312841880821844139525061288681832461960234270292694146539072612315555610927084423317578253658667618333977408309065744559371939677515784061399910779938688959357994969494188861108673726173357693772627680007842046152389096904786486065558744254634369603065899448694952847753305566546869982690959519533767016857072546407317946676743922822054064029753738584985150471916384633849575377397502522645017003253089627423505472029709497508845869090829136655910213975552087838359776912769504698252186670046293444161112504964076718481569211891142189221171245335555965181303162801465964309065898765760006910962935852511093922327025817458056865687635793988408978058840132936304446874365452403996194246775238311505903286787228831560990952664166794756563153839847190833232501201258124625961408252021812541493832183787497805496181933829956610599975884759852552290917459550772507817585787211322092724305526065162391743175948951887341576382576882105217108783030699159977818423527706614301832204149051945134768477041857353024515870378763413920113300427740602571631839584902008011203146166843619528196269527050871500319989015157567816959344947902901186060684387740612466829118214225970871849836693296055723822101247150494474349756082730951049285383173526083824150263789653876008082279286582769905616153112529185245115073636848500916097423951095549644471592122561858450572200140819688364806169338768597883309487613261140326763890493136734554512754721812537885582784633108823235775731119823224787114663118665733315964654899846445262737068551270072839570731203551116960419421556307125205772010445301819733028762125443530887823650028744879959762670789148358000559960934480112418525009973581941879964092748089182549354362820338956683950321040337940668278516931103965997898984741029454164692450797724357352985376698550578642218230238578536870787668641524848407594800366384114207290904675261434699475078461526493925044144231537076438994911180208448440773433801598287132865540562059242456127735905558884161198593230250600533099296917104652463335128410571537482334820539470376957130778573207967280815821867066882673396370794882455063186451729933893158001791916368509520908732973475574761087813309234009237491670359868844752416970475064189887105948850640447399728801891119415428109921897788710340093934240873375136965223986791272807414107269418843873501657601422773113418250476738620539108540382527518272602841810317258990776401155951143469367112467800789840477360508927426491615949403445555208855518982351908564894988630064465053592398780234313152847916253203518816293195345014392591132381919413160104717342125478965979945191291098005397050635387137647565483652885591070947884314666076065067301768600988952740814048339893510204351548885927304938782287524345244097665004860642401530460592825463308607796095693477300061830373508848702231586020410065240597838965511281756731054699747670881637300415726953662647025383792888392122734422581349285357521452084560945297992826142761407077100246751917405489986206146917381712092263121171236520887491475331800508400805301300499543812452615035340475661055427102302480412724434658163605877496749656310913184660031566328588409232042964720742210148517532133185884955937563272612083416520651555409428057726910108415904085106653019129641808404336237350754102592418994248777327307274659081017647705354032919380632650773620372265703925762067605636226502246474621746104549565535911737623379616058756332119516274121155748830316120219655516290310028038273966131738994422428651902375841041448107553183076458790271309702249367145616863226607751159383148794160618610335254758825909871286964495933672561821657317402679648918644434873969195288631256774068044189351605672755285991962394521163300137915407202323342644532316615074470160438668274202933940048863419798193446945387032702326885224746431266017228512908792058478817281035601052360044130557515582186758745869914563875232894974614356641342064709391874168286397455095992603335690807703392609480482318830466246642536879454137889262784832938935410025711508077873772857312288971630636226216204624654897328781226424324276256859156278476919478583192328483304621823039789756903176566777734304071456434008986354294937582656410510150401479107115952826120451491020600003061693248225716968377824425512874350342376641455477188000957918425073318433203060475434101819111828415878349674371932134285507201268765862037135448122197146761356461986193345886618071928757092082289672018734391956756614270108585699863438760870760579486093056831103746551381234309285166259192515834588738226793369330432030508063646460550640230678526612265361614058174613144113692636100794312479823184301010177458625044386861099235825070800092611919521564690755745824042347570295491758021151329940274660700099119996481192189788169830401593978049698391937534928869272399552363983694853122872555480115338581999692978691554564241616525704091612289771462084096731882920941249694278006829958933104829474849352097922005339731171165778168529495974213244439955168062302911494171372011732858661253271837886900597631340933595564265962860665431894808118541150389958980471504036176181777961608531526694145559701956463927338556491816522023071796524170362815489244385127100276716445541028044965298629978574869961912007705237833051588685254048677149729092509137443129390751047627066748957445547326405923071467114996536139283389285900840107628943701098075732220730233202258138974042265544070588848770264470084077679073092105920880136360631057309541531819534347521279296995083143453243069254302415452414677126488311607297360396019142020463199342514766033310994113889108290972779805270662570162702764335853615299877544851593499723318750138259631838757008963225481501891851963904869282612162738031851776303115217330654756403979819617504438631296752659221280122923032455634595924105931395723300321768799714180783391541854296876353280046596013358222137020852628262274380435847003544969634363646347538803729244792464145523719539508990844029804719940269608008568690622625871574382347440994227712034968674184472665129493587734702925198661530404052953544069437717043333138481945504277422353981920331006909667663736472340905175137920159810018741598326821304303134398727941690363857950882533384608186741634883104392626474176696046648816992865270053326546937121078207924669958283441432872140267056383758168125941055553772447493636310099546502837546714000803035904350053594764122222058296751306676932965353553158094859055646256978094992540716983339613136107927287849967049429016554469530975152441574418843374352138740092923479887359831335851953416178177690768068765481899384148987848907399578885089408585266558878902777101827513265498825260961629128637011211433156556685881124310189067019499685146199600045379339025154812240922041672011058156304651079266040742235817328755644100832607509087616424773071933658671378209183352009247920165210960389948121527015742360799389652842761989255310992408086220052605960715389633729196434391716066383688094201298738204476620703722855585196058918209360375991298671898669478870772916170098316777792118849894294745062816193122292390505711314303271342088465603236340595671376430415163600131815819052415335105394717999839908686278538552578926853463365470434400346641501734250375227898367260207150843389582483152279930531467963276190191382034406775716097546052401839813512856743222766638243316100433231956992390895111506950706582608740415623094077011719003011472946253019049139917755232252348426155212682825768067825122290393233754028837902491782452592856364624706983676087948895324099364866835232697207302270899107168219171762227904603012324857185567274831452875545570890713054689778296182348371906425574053515346108768875577902340305213454802852610497147315647010601065717926465304285724779291046894201701787980944275386819468428671865653848659448931301498066870170249465215667667272540595629855231008045783241428390634816242825420635625197377957219027228590650432858582633867770115668004687586975749491197462249794903608641460335951356749226714564690626970101200600487378175140066914955429854341630326134859202918166253987004971852253732301233075094950664029665932535254792192602405815645446722124448652584926889231656204243332479740471188642354218964792545772220700275714039185616691701393525673510069804002089908980125178979541571102445790415576914783570438090461860615402764124212702414756834577707898134213955815779982241407073743996869226563532066867239851464859229455311321254200737066792955985855510447037284067570847229760284841986481773547769064244209659616074400262038588277418098066530302879286117098145100291827091268223455103565062184251690972149776526884370424055261464884691985335136448105123314972451133388399526486459087452392062942385375815095354058762912731106640101916008249712199484131707039384800061388819797143929784276793789496835042200297959831318768024490651937607657520919469146943133609577729215008285849710275369373071940014086694952468545471855694509116758743337543008011982075090620103856407962838611203418609646174178077485653422312569573490751825718996037672858490262807344655521839838399265605373668596630961622019293947307928073550684284391890574221268591196147266407863686999145470735525452894238630827300213090536025806432051159727364171444803639622812784365201955336942190612762227452162523793322620259320858086820952003984787890924456381963209164361433214310365865898754412801528570280213281569147115350561952384828853047509610177726350802411624786954706164779327705775492914873248829970524114227089398891178650861268390610887706501479745516470985412611138270409672234721245851534895939089646144070163044286744940185331548847225825361107648079320117817331062423582283545683812891514832497645795096945133198295554940974526234293036859517862080839150498533025572705383139919821159742766210448786781970134747113928960526226843339404346528563936140202352352220656853257066635409022797292938657738764784066173675198233858240420067539334113033762540736514969660246254978207973717086315952210195691362138516809233334068775190158165838402969790072979867832958372557526867849941334769449196171518819411696242614446261705538938540503142373878790892099553009797204586400826953000892532166916730802488822380633021647075976583468682409885840728120400475936403441705603110052422195777621426244970369448357462868293123728428731871081263945836018957205892432062150426149404985325265622865388255550328227812179229902588686579743621402057960475527454131793162403979301625084371705326770291156728836371502517950308283592115026760816722694785371707565741481808608179779256307748654498050601594967446515668588770513367891588595183444126498636586299957677290841177967312291770426168706181993333527973172121812840297191076716497979314037625310449389487075047175083828709344847882414910759140417133062773313694788227201928177753247735758420585100549096983671648885835376380540855247586969410400501061467339897464198426673930316337011765931418900572769312983966352556319577253761515929288746124720663404857377330231792755893462299721206318570091541298587589462962143599137355350549522617985103137355921198816757821325524825047505576934895211563658441662918369981977956761616916483209699247349923909824002348770465762908647196372452971491576864827827391323927727606309420294641844381482898835136179858237290728813370708655121288682481151366635965286623057262062107451294229776785521831341754744872038180714629190119192356956650958487007441472417341295233831315133354938198183868772909033766885580368844981389056405158419241237461076952098101201790729874105209636206690042793951318242708060560595019048195116871203634236370582134641813941239880237173838858656058244536425018372702737803160704910544141527195573151019076363430062172945907098815340055867385696861082628468204836392577232997110580040739735873125763036247605923974119120551978414065408763028424866931687919862255955346622687377775063815281984913730055271693413536001353433328562706537877809450488961610400611809683333035966576872357712745312566947785721849514990404239781594810083148982794866251387548419933356291778828458406677048821029192257686020179299832484186337069218272725770503023972934993740828478177528092462221507045734744958579015598176031221876134526591899501739093737637767227344081514568318280408018112679414448281290625207170986681119798818555429638140007345602559676675016834862360091135966018352565633059848298217278174984635565189260342487608561308169354662555040692826554923407867946761164505703686157993159742106111968050749974094064816655442403704675826879789678811529603867928601231427660805830944727899873269825125957840068339415514701885294576070422795651861559261294343302103228719599580112095528805849771683191336148878015307144221827839481857468829951502662718660255452692313005299390515631134180374767769954369748369243742154196650759615116589804403408132094072211295729461863938174430439299336400331495468609080821624983283887507045914685419188300525764987797228629445391501046454084204950613087296792948900243516530984903506328491552869076817293743964133806161915055352741949422021968442353480441806969206345847014977610950069858406169210066916491326651895208412348671868870095008490449980510779713242671742587373245106167459527713169485663402043399797032971814060351971772758478105545927898337173314547647823061821009539709823269043541056477134059730895737320057265843392345769683390035417360707658215208028620183543534242781764341121902048124409439025382736968265292317839157923575056209475539973396737700334062155009080975838544479269611679483019101990149152043382435932109307135592665145643470201000211458380707530900739960126716496042358170146916505310191284323092335223969967171050423001960544927529543809503336022536201509627211196432233791688635474096605498219863142672835251679617935828491394448856372011869937337877483673588771632464631670539355012194848556108518262983867399884614969945341446392077921011519110615789643806204507935694405987032406218510031763854229022681687825324065366877064180536853455093950490979470589281472408448121761239460932560140217841274698115314738665124405328384992579312422260398281714112480652976726084044812785562038375728452159099501051350438064747267864522647623699407699176501701643530049262102358583351591653553313905979510220907112342642254929938400042939642793881691320354179679709774943490493427905981449915788739722062820626968692846865800372662597147781663943048784984864330017531666004445303782979564725037293161077184121251613086542824483921253327146387907337478885152612405202254540073061434146487381783005447932597134228090397053221102527113191469321326830356304243143110468764114102728646605041610805971659500184428472312996791581748109824934075378636102811851874337019305570334735693532187262845249261513655669617956850781891774105814231812726152463266597906661591556637641860397544990180627311174212203069870764333697824690222657959126962859660048308374880498209833526019846395981811165275584416384175144183884601063138452762625282837070817460719915893609915660792183036116823546763584121122343324629952340328062961236478237720615240651575624365275868530490954534243027116353520051129689277409507968995370539971177138383469149726658831961406940469884124926737028589506483489687093427463335730566259455439245823586612071531762311832422259942364080964978172849371183328843860178567454379722761467165540008808208936846125000014281734825140224750028083252928816008657440342021904290411873285325972244047821467638606836933157580407437031366222244721863873349817151565416984571867594213885299820961269289454116561327046209536743186046161884093911753172666616896870092529258243543328347894992559244605938618042513280879713709411717981781094733051366590141224752413055893487382502222513101349042648752086838435983379186922084069583386222147745572477686585749085109640477314092754566820383108231175624448524165077641983952912496762018550612543275453187571884314249635376669544355313214125345011986020406720609111806156059783105352006093015878850378277341697387414277266734767037913911345899003109078734129082664300535026517701860691621930156060974610775992631547837956602890031047268057404111393193785767984528974970467833431598048358617464315532604871359723521818228931739909009298658591840562125207307862050465045930013592272717655979154099568747395649716519858067539698098046502950450192610061708494656754486306412666077027354713252931964766073135041349763041761977528704892246642300885267439373017938202654041504415671852168449813761948988615472658723359054792075741316466728322813985863963391142389282965112637043301143201346926944793646636455914327859260535078116065533993351975679332130022919213391144380446519707028858939806233315780123191494921847125410192830997236990923967026507500825526465495481330600259724332107488935860524680431730577254400507872736682289990925016751232288926219570363385459158132503666593379474886107740430161336835538250413371167923398634877297560523715208864538742638733711376693116282370358532410387172298482949948687223390265717729585015750649350220092530878050194410498439962192492562497231567338918187085012410246212961529151854877946082141529335941648928764131447819289785779956351758625354468315254087158485918410684610440414476320879656774231886782204229344121505762292005255336406718673464810924090257751540125426096506025140966442434031141172309680291168489448916796587927360585282143189378009330461240615502062096619750267256499252971661770775693484040150269599991962862466191425752305528805237240654435513447352809637196633380573409866511982356757514982143476706109425207009569356302718228789958887033658271942211287318994008652400066291636884944395766488030263652771527473540466905107350068585948345358289021135780548561250354360045670206871854016867481733378372977951983504227445911356180395906445969006717388297741897553422918602709256792735319851203422172648912734155818126543933897925934811392624706171838774597700624760515904959819016087194752961680548796100531057454334786502925551104063336819134857330325749789960386437521473803972323032573027956512200919777061245396474890608133854306076458719807546985275725751411250864720325482069152674352417542987910246127777087066326022384559986743352189326354012324996912392767441033891835437380634413634581009797134568016226805565965535884091977900777238595881408747553620987388879015767950304685020715101478665660894898627173988316218064425131610135328384302833161657773215015532122793770766925591888485928449612711267223227861756714599199805252728435428891603324414331454251323195765628899917998035954857004053594967632268009927264206883212672510849095142749849685462528973150419726259858563813001732336335382243505642211769075205154366917347946951891942171653156111186676454645867208345372458293154424857922089225227149789060965617729833751085723389780105071090432428831007616613258757216773948937484957565111552945495681254897687595501790918207320910967154109919494899645758818149665484057871657270912843944628221606007671541634459066469903513802496155241655327338966622966748990386382203958190550643927520337652010276397647926445157573284104607040826014782408606524808085798500027358847210944043863704918203190590763043313279648614003074665406817606838001032725869805771152654624381961193665640164781204783147051953860590089732293834553491956018075590251600551768040939336229647047197533765793389533527516862855811625000133941622311227699236937386972215338164736734381346441995150116342162773009999200734202926754954361719647186441557903657995826895682453973284924429121456109373080255971999559034359267505074466465905754646329273123892167808620930853471802138014072536493424457376872099783858761387774514436158282401127807339942960035600233924542091057373794621988810152202381374214106151385864277408582973290603068081194798167848891411715477922073732717376951809733386432127109612739154120608708889906785179917447749251109056257564706234936140319441397341153632612698330859973914002676361969819341993791055216782310006462557785814633237740257239050503805339347012334186785978444856057995433269196040912089660781200255769404419002194278276682745722244874317595994283601471196309472203642268170904617655111732932008852577235867210680695561585178649993252256656857954026487925398110122760937504108574742589917892102506078676505794106127066957768084046641842969578930527760931855362202003086622199933137852237759736274829857064121943951273244407651629702836688628251222244363296453838349973855019315016167049774481439817048862011343133406725870847326532026721474348834227830816387839873421214519485408517790737010552502908423169904329803476374556385598682222828100640221677316125284774471641207301961388862531337759016064529828765112375164402837517707219503235794439488938709849621559248573577069215358939893430532053592679191999801684121664950025888942052627317588608235617435813264572502614433698312928188520592772958903379847516592878946799915321684393496900026498840867428337200215373547772049860031681223774304746339583707463021142211900714959065208932867769297314601064640371518651121928232391840920730223050930068314768152117274504387012239548622914273877008942509840384047780240973202869748653053920024702863591311793947289509684555193684693271069454547056069311378439767453532648002947636070371777406929405579946609197841398907280163093771104143953299846440508920720683665405215148207629360141871579673474099296971760566175223995569414762883932726910362876982424131820239220663570498559043846268072294770174930553724291176811125698178400563670756566967295839397109320275925840431866754514652491903558121035700483468876143646372386488991176752357808952905332546369803012526946607684251410908363827529302427763881205408878744148945456963204134143319245065729344693143597891259948880427827864932292572574511376001788945125603568755364529065175084499492523855311448160235439601823324851032949366345857958811041357501489447474229936646771693167585179762591735332437714763763788170311564211253212739618354128539449559485263885047617051499396525793544185715550661061440565911735132092372167365973483837557357913411988533654367047865902471520065295475115502595268628780408297670322830663269822281838572000803480328990340131574350112718036224661474911683235163655451456693808926941842468605704382169483298857451019126125012700457846144643654345952464022197891667521421247391936065946011237908861628190428358930879111092237376280285052780268923714750548426624677012631006612013161836317044793224669390015794350260877426546833128391493749696987525148014194551343141266120356459140347471579088017321633089890297294860572666721409850073604455551562383809980665107841553977248456050199518445044379716247262647945866843251622304908173107951662216914652648492545348947211583351419421925466267575088984427125862257430428417773280768878737148477411212755655999325118749506203566965571106857736784530377279804689720943817236950438898145317548950692671210431953445024093613112284983233624724867715851086870666899962834861231275564171462446473936265396001131681642100903982263146454486773847307427646198267794365503497265275017152493150697138438072674318411538605072784659648553714709474632704283640860470965614661500523117214468364285927769120047333743762891534481797832625726342007079734776785623274950241693819673540292395597553693117126732704242899049825976919640511079079662633121812299652667117403123982574588975850967877473834528427466603429356286286719890179244057874516457110315099268278389490468157919452988491701964483879141429728514095159224052153169470734470693241057661681406385756297744984600575879822695542057319860399627282066040294529346493083835811253512669272715933711470126075665726061149105591330465993358571793361353204253604782749774701501274754378758518895513164681595400253745815043966963036993773187292458862369442579771850762740171168121797120513273600550416242604120759892674928875063501297876066215671969479151880018546458669152016608590837316996201007634179533114706007996687401194007295790644115919842894218773106247837793796587456944691273003030847794623163979448777695455567489903526142522274308210407925594241707492417087463670146288479309797837105043661503532784655169066973311763324533761940180774227506950072363033953927487229859805536098317157954668213528419828723200141639582073107477599684804224691027753080350635445542331975437720368808374245920949904855116937430745804085999299432965256348305353538155176409962229878164397681444804084922455569853854432084697866225289401558741657322165212253091526526516193626053165365112012385282824349364796482209593798298919029432328316895953482019051182361763740636512214557164178167721346273722179755158981268455208211727093378022736430369403695079873478966001708028332954199246796989194207383576039380872541573507650268457861856561977332687371516509958097620713277764438831922935497214337798224178184950063964850333554426886482886916918070880352909182721995702509019288158866590607704261008866801179509708071266668832765597282397721024917289167177292679239936566951693769773809557488711836184431120770613542096843507967021903535498422088546087780416551062689946598796758236669659586391809866177673994417200864890914599006608587136762176818801443594506839298641971091892535459650916945775855127946785354403037061649234584705593747500177879403939392428405307756670835200513715904531720991670557769543094910260393934193234691040562716795906462979768985375276766421213231536734595171158150831332217544898265354267543753034245261460932557622270095770977439864912556160010529542215740166576754874389789742155616200336200629622786916152807044113171848115931881401820111294365336779528293857458378523356778503164089228581719145683761661899826033892276278321991225827244522595911390134281937887752765124749029138501131766273330137398999661803696473916571921765287806954744570046228026449445871375189365055142822513089554423671375814120525832941968762946252039410655354976451099414873811204467377325695009734143081769367865459094407277760123249210584402118673064703160085388699500191808541308837678143572912226110523134897908361310346104062108955740986621887292151867611837911041400976965138829493147185183464904630852394634466737962138558964744742366880646057093123992923860821041913279341832896121975612442607954511235533159236864798169930034880237568671453199978380652924241782371376814002964152073611275586765054616754577895190347063744512293124845818910912337423918199876561397087354332241270737482304585970648854666551610435212101648583742812246374523425111521620998712041940812492188799454571874325489644395970838539091883186751054266106817102183642369222128481261403959297676729084317301560211152997627931258456918624848230838069749123291157944964308187821585268176331385958886108651419603969246044185157854700143308020448067909627360721674290305894957257948468772349615629063741079940741762856212764621477754029725578438501499512862953956384751955761351825874365318459582497161653457616756978443683108500415275564092287885791313269042862012081930087489775979149553868706130259529751190834368246702000127227030634872142077863300340423309038719519325558275951295860526742879857431040937449392646588963264109329647671802835381890826650368575265064316943505671908172832166931198966877586563181567009244890350313069993518260700940231836163133194044130814186727644382167647944576883163731112792388518044892733354854641053665320316425428372888726399608283036919630827668220150088559860518604146503254107764610653107818349660244859450470140318603810754932848002781589310151419111813924505329802770160608098031546023038507191847879942889794900163538428185527100612217885206348151203685917507038047017941143524334151736102427054543430414046997080283596356403114220740675119865059176204307139847462302257655561397531237631133208291873585681980135574659967807868384024178381631907358053859015249303970433667155697459627634919026475453112039569683131664713679973029874173992876524436038214534751112825708672929466759937021483055592001838008340383787376423393767680524584706867661856651761507294204886889971772719335708792526114050476205336482321280090861767535343200560817095793521394702914362846106670801408423564632844759407486014419856742268642902520068630040062845008301127267941027255715194318057832391550098469148169066960286778251068393954668006605409909281262268420669037318620607027291303153231948705254786396265821188395142888637039315838732858988841571636005475222347567519116260297645075336800690399221335851471027297211490559108822843682436516163631355370336740685736519437947692148798524085915713470287606363282293171451463701346484714458542004597342513495927804501006131438005104152640067552698855110240904895246798489296171070996856939969416090090412986167682308870419957080775609465515432815889489020024895609115328719122941688085005265731560322365310677405013099503743588621137163984647371428021747557864996546196174595985449050856760213148848021500662820185371766881374149891072831353547976301930201887339662568401861751364511223763714538225964210044479269456338139242918001243500264790672536150101669396978257983710980042838289749400046032720394211712635195897281486410367746897686174360580841297811419274171708112339185600659640281884405895450220139062273481304105372602727488900577874297024969098652511727767942895559149101544903690519273004874390023710615717973285817860281151720014582853279379931135231909884129907250842110541173243329730499219117914049743989637490537491606413286144023511104600339555191920019745328645976871366688750314243968273590403672076933655287268735146070276731664078068657221201215387727256525403654644731044010078859053340557762569147994769193364363770825867787471640415572412047764530118954283759212177409460354861676067294174569824948011272834593744821960618182463026418252711603018046868260669470272036691765959845796215585429427888986050595347687801937934950398612783894341156215012729141731012932966659371477239309410029044627283082856339113153141412264195570436750968187265852480814658137888174442725324739991709695787122363739538830778990115585325897167553507050522374645890506860867367474976853270605978306516576166436857474818583184687359020568375458981957894609951929563588937279012198636421083007195172802857611906954933495983412280385787303904194942065878882760029785869180412493464926256000755702606487790431751595463415772611490939436236351153110468862307527278509480072943433863407778259684127668421138624347678121352265417133103630905100270054059821680467061430422508973349695743773124245234316617314992407747681438175453489461102032633870424956680400292852007602724107330098646737338773459150969246062328841827077811717718831338488205797004194328252044971797920618177027983045748016957144475934416045700190198354154198468321298251921346191418526807875845988644114779330369829031901343556086533925867826988897503895535824302504364435628811798872305280310668977083632628967541271285212613193851680811819019979617616190314948321970541109697234335164767622819908848435950699146910609570736896196147422169580234643861167096808871196642180373671518948822568396461894156826110116958816375202905194724571187588152195061753096667417657242079243798981671808045879371518655055876640421971693807354228321103661160422417574738165198482085449334334588925160904016493590810784243455850989049069405756826047470818321321516045144417722491461090971559863396091896807761080998991539832511363975269207110990876639915364055321070943946127113248353270327054673585440897385285069365639924228033674151227571663832267845279837835294499770232021104881666234731454558035777108664191232158755653879342521270433174385380996828662039590336011661311957955416080350961782012022650809478032214481772660924531125828135201773308503492290901751296011275988939455003150709349831952321262499074920349117311552367824318305378798718048707852342024274365987508986416383217504236713568102268948366742651049965350910476319699627646770067231417101632799841469982145808559864724089788784868965409996034479591356901409732966614159862632059054718453426494497053881220117115265057546521436290411700474206533872340901928282472624912013416412600404762836123732784451040747215607737405174868979105127599845544992946696222152990269485897231081943848674744965716642348513901451926597245858935692660440136783243655711952855251518717819291046989900504820207206826205235977175675353499113252818436665258833845460612271388203632189436411550725710578857184552768299577853730401268114947850071361819633757883633987195972088326008917506797196327945386488641652620183588251818412126509607481567871539927749030442412962466594821089241717424708444185530634304660128068795523500339473241166360253981088838431275764343186683448347864541462085248912069950922159855868454829875107312971899302270556910833176102193346696682287683912366466762210478391164116158487329653994433280030673058655029858787317170253557696789347736536065616830109004425985282292361368092467542569779233869996321840958171167922844107418490385154625402302024231477538013844577267844703048120348154457018200712145718322322048599713471826283738882802340926504123483940562330096909801400275945713997787372104618312529804954753376698754528217782819712748284860738163674868264064062153692855342766521814353243305128160334637574365342620638459135602261320458362022787066217946529934228152090581693578990030082600083178708970189726400764322907885895997994027832924045001300128627755018830727389779062750238974826525650728069393008339822808416532869965273815009312978964630012045901273430747224171210698826126708723652408191639681405502711989920285971269062026566654830727610952396658597391322978269351311264470038233026649960066935168048171933772129498401261994938700836341083652853785009746253140304192204438524261605432918088310156611113400176253147138943110252942716014297388253659742796650451697337368513878029348444665022353996086940550873979609114507842748235147375558399725941628858207064988094767772062040144838280652350626334901331590711118787338276510122152399384905071240180812234425141671990976406112460535913250529859433513559139670882595360261710745262221216632853203041807136359403692625796131556092628636523116092968320674637553272784627774020957739290382222905863797643897721383435364584017276861093327985476231131152579553791337853660451424048880116767886530849929258265644815804954745288307887086573167048309544612019248715312549542286225076658441581096789386992185319922406195245628010309695489192863250591312891514648542629435046874506795812960615884637444840022132994664126594360541605349765913153363712483321250249241043459583221450829707718338952167486977381586317145421646847668186875890150676196635501581513868965938231427655509874904886223543253416011203138536977504422165901734578518560147095705090125528490682719849670047186259968008171681723659089116533886727254323785695097809656575089239855212083294624756350129942185128679823377016271051046073709859638738135180431136454273983600972599663566684391147697097523900560834809685084806329804841948227982621009096178749267608181338117239226911219829797379526354184909967774504981454438118708582820145205961287620907768264139199199578600948372205616704094394697633611925070001149625144293693680301546113290875593011298224747755573255405568920062991020161002945304560873308194848631994366244303781637695649942281327124029753782918160791312492415831460289834953895011453806001817197779390333150741042113502066240824971383486702654151933003422238121704529450332814843330210425471874081011726925646855812286623400481757648614097953459897909649984074572161779375314209305759349220726834248014213850646852655914681619473673554311114883445653651408901329522859048064033588261701052742024977126551525326808971029354969529175560182051414540314530906683905152628054005384733076470292957594104989610264070823559205279592132915829449555858913942902867988098313417608624195585624624737531386296916815470893569482365412506743364030213062314172524118354357302353348660074723307529979532733278401154771500625266901740385202434875728777422936784150310206659370895904697724541109916116469670251505920563523908366743717854308282515012434784892124937471768890060771465992403265562096264252084443086276287083561637161593123858752604774150300729641013902828604941990457919984037045091641664223398103597330083761764088444033681609532626315366492900766107381448188220142980038441835630515637092926910792837081462088043062434902575477797002874642559705569463375763173167596814480749153759755749559954397065137036568808474468476223439764386006420939425144109682391714476994572301462063592252099638601964878657514932488750217851116287397488866200799752961710590973527943131897461620833100488120778520745670420371759369330806516317520107549213513685143087992298288554698094452929764043848875908519116982606614246961202400778136000982175060363550622171305670890656405298621521687530670749644866028437971215698124610110777022874193460023626016313223613097745379372947501515288547530816825110812441413237589670477055488944811008287202110851155394792728118077818832406728886348080456692728410040890186039031219440249497216094978506082192464487691953914772742086911054365724733996104100753175098501606210237271626310637314667999736525764573447803987768780383140261680444197723520906541026193523287648268040873465874470062879913666008217796400285264968670323000549550101048223471975391612302459602361427431232592752120219064756183896972522974929528497309794263871863804362321088393908078065579610091636931291589053214390328735894202017952360271681244630582012206325579548522741645851848208135571000338134851634444197449339115114741474300796317909727181682344382833350882205615514239098571220685072837924481274070461188699397159240677801809520705993736486778265070885969857257622596649174681701924580018807652743353054994916620494716177702052824581193920868733976130988308482180873788183960411129643896836686609110937204035458426631702216443119808084354244818769102495295694951020747494993064967118632061019337949515204043158492669935542663479152697529530830930153172762397984565972175645617380826858415828288046386197541348841611944123359459615722960185661425221527375138603593736756427275745275883754404981394896468043603567525556425765190710535848916923962460066023924348819790912260350858190935077647494665946526802733008200023426501138638498274135823227178500755252373680939623359785264894979156520163182106646001410140422785956558644946506903827577724354113760984784198663019167012843752936296038567516727638291319356201741751407099769736580669028256837869361179047210177755301598965800175771332174654936174420474981120900509472786687060813960391173074193760615770547725630293954527485993509907968966564053134847576671216029154509044005360157355922940681699079727900433639680158193511212475003871490718729953545459984829228322219260437958519225963394316248158341656825203676630583460159194578469731963970704468740757392885886757675298221880412533191883339986060016947777041001766539894792286694817242154214485116260747554660857550110379669565279061487608213770925406479594166146151776447718845745049724022981614017951249648015108743089787726481806742966299270602565368669719248651387642139263175475162120419870802224122677412152078475791911275459889767682605551140751310903517980957865043325881581140633097662704004200006951568717895149861337131301001917557322858377450128475262451665815820997518813042890850752942024678457866583530993734006362291330803533130853814906885634220333694820809644099487606103915331375934471436594748682975019002228461315093214854505244428074917430148271945225547934793276903014382485399730201118397793322686804636887487780409001461549883362650734980920718305454298137808248758219696260247561300626045940041322058134368769017000805805078457745784070848660370897549885268234023580457483355528537586918666798676478139938338220528926587803767859675658014796461508548592727888075444812366266188878244609529121138343728428041172482050083510745331638995917346470799846163378820025011798368557494645388105735936580915407218136319282348078859100324881608294255760175544401215325766726813457066067349991710693119355785631713730022320397565901231759952706030780000420166311002032950816518686618689892046868786593756636851388424382635436991394757588203078163690443203569671987830568280622208358422863262182871833550698218929469377623775451973422642794597406156529394320543982318612534672211958009127680050584456408891160359921146117662819421030721590468834154021448324619930985136284069765548634517152391550292199262042943345883790871134165232851291786818090086790865963735116178779565640512039634317516812598762914164235585153007631265000508529590658180875648049314513739859257115207664434902890459405491766544632049161425011718830363990432030708938915500097954250085176516606774556945283012548135489887266549850648295964371374615871302405334035849028701454348295870147134606904947963916835431297622511091608496004231170454516572888078319096913639082587641007260695333008404838555832032691370560249832097011215740455972527984409484731236523100316840487328743542267497905790000437233964746407433186058587653090660429643270502660000877915293666663664653211090904521121050741628836021601151454909090567548709797292598827087883399523409577447830910013654127871553782265372123306431577604278395984188888134164274823937169476661395749934461577122354332589789315827220481665914371897928157409843135900193914796970681858523539507995026123864897209593420395030438336080621170622455138626123981694105698258716735280730184108419452087101217988497708318733688886060176023449548750299251102181394378185913514824363477071947605689933043650725961493924673552857692323501163037800131190093107373082066122038036891512828251150967859888983906204988267158196275459445851590141520032433312146842023151126081816949359446879779344349430459824678773983759626241433095571179033713821714592984184710389166236440204962854339540585230964025363077891344872326705159569224048901893521926845008802466893603069083530560855760882083320610765851490292649114769954402929270913489129503522730470980555163514982481115588012312265696118172277597648862472680337620943961203945073422147501913924955748173939953942229434606099332709477065670746959475363055778294510007886977545411091882820097729828633283837841459427359238236697487203307676721442949117479771250169979251303776478429330833900714142889548443152718738892474393688296613779232635351353754114784050641432565443902081623928595911281465488828609269582227540268168233457468124543611836707051209569277184860521446803708139042795229697643246914004995380603957461161029970728756929407683716516662334129275519625420897448899970086499221771731281935502387604938903103973597168371698225069472071563849611364689912074179024299266614863157853740857828983315069010135825115965486858880189207871986719607488720356856754785153154241832265809792296814204611644261800251998161514136734329308074840816388265485363887952954736504999357815899241255074216648283065861259052017830186071259787848826825360328450382828939106218942403844726524179249428966930306105097506960184777480954386349973311832511987587639282777232576057758901393310050259528744831487531610827476711891178694908240072074784739556858761434694502411773625736298927098422274000133268416583620506507051520410611875106868327337045713847549113447116335802070382090804553503080911426180717805027913592691394005398052180636924069984394198831890278458280477760809255230889192588383113608545746936605584149605268320138728904486946234469337184033278888268277866017334785604369099222865264739479716252555357828851396435790717060696634616158837494795592246732613104265287602975286851210172926342769500408232071959315483107437529964304123645958742689617568210135083787092341137644432233521365378031501443281719352004267157786142185987443170589797156895814094001874707848765174480625103929842542937590757013536554539580868618982185690994766649966722856370522966272531326527252936682292543132289756827571118860273231485002218097541572290304658073405356250929986374232209366726610329470444850997765846540487954844916996007705609515210115944346645885255420272387969885152234900091894683431201246174380122638007774537138725248417533291175360595484901177756057197978012038167288037789895059437913723020554999965972858060680715693306180432904412736978481964341493668685137508139441687291082403259640402880639494142054902227405000252068823503321651067992045311757440958149621590904649439873665623249306602164991047903916897226754573420724522975496693827417951694757859084006430378561963318214784074747418031608083486480373788508361763699528241256112206539642212950206189707811298813495423764288483703344721060959615017330714348605765113966164663267972871739561390699893670266788675620987333497349012759408975641576619688132667722131355350546667499325382761582178165732877829059204048843816693001076582193990914684371196067078161153024135993144332336862989335496332312332676427540548878658967468281729628306608957975910813741865353510068048875820675220995999493306945904231006120553427778426075378609757985636384597149644768720509160370183952806234128452541982089863065898577280887050858264790849100308548671110100793589768809139928775965971978207752531459350480451604517897349845721655638294820798824742366121115095556235280174780151424447516238640753207852679300597450126444343024560436872224354997101859703498849845828819276566531383785203002741108457817481054604842872420434529207763011892766189249778990474606026309264281363634193993966381523456165300100341583622279189682779709591550683692606393512539256353910495899251981181315946087026024821142544456920713148479186180047090814386600964839544309175513851595451762162569088811103467453751928399772903381300970256613877408462863237381212424330306142706878188978988107795510819658183256458816199619958954997073180604179706052247661807559643020932741949395765551598764894250352173806745862365974152951239485031031614995090786105312845842342307734306203617026938890135492363814104598109274046972461368081411475041574440950522240802548900097102838592492176800663315528395112195073249536333357319565532911958082488224844260786700444161900473199408199770274295025513827161225169804258821141213972381160153214077686743498005570694703408009844753090946327516410590494372812591204447139601127167255693843541752646122261878923538405694609127308121528545536925111965108462192608211809245869104693273908285951022501292038293416186330576297193456663803482271527759569824695177634737109762201165285138782728513853586837728263904398607565606988587061953496998761908167839287212772352002825788759670248961284238302379204823759385041867624550240350945717506076130978556766191423675284905374094072553358911903470958564600534940776917269434120827892507477724239563778606479639508074433322336853592524260624585065754052409940895499663839778977013449747812797372161207238136969868901123958452151812334926147911512903923144462534405811965560047497048623121623196046822921348824620570611997449086490212091094862742463204109965879813556963717305568607929133756919793690246697403735396510707773830688257184532877684377315935067641919117162596323765836531089016872799678665672359282960386821453238815837603063005376929411391756708328091771718701160465489487547301242957268596707907209546113931836053575760451980729296753218016482414550703241561754035650717650862185216541246311427750465830336077628762596934128351987813221187027381168471202639165113889195083447288921670092485174250497114070251335945812461115657564147320704541510965633633428960869655193762455534017949333628271817880997400041750323223961615699468234898127261407837959301327404054549590796332556700572369585049102037574730130453531056444645385726089176353683504470158723333772321840149078784122589954773289229590234335068695546759133677568016704957016374257614381605765567329988109242691394550870009322991071699347746104254658972943076779125247006911484610100401446180558745244653965537152627761032500363311628339499961816640160578708498277283336390703618672278905410805823329984646052237869386351448606263027879298064769097646963483530753746202902269138763497491097607685233671840708646773178915907033112575064210834907222087659815188294751884688731479790481040253731308512157322635790438220362254280605522681770996000162025273777039849842956681407795478532244947850968860234953316253656434766751941496995225316573429342695622671396286435098767716518728165917278622313471747247050370684713990414051995939893156203923310743050827834552487169836254981323738005819968213229106846203629125388336843976820411042478327808390605756696021527551939232664700309054430902236875110875038241072384739728335519232721893152673989031498001457688729991089477653583489729994932865025091135997093892764604259086289822102962509807037162238576406499049415265966584221863034188656438021422307890365555899608394067350684048876261510316620300271896600602853926653564156764679792332743619045125301461874956645860836954637672726497480653894022378209861335778361641792078933997240944616646612434079388968712949534335049460150621787255429362217871796518228491528230077856445144095042596671530486385113385032674291991454066343324081788996891260940306994226397487037607817690158560821253725806396817399289329082797599213603478799930619073903691378450104068345093054265908284785878944821421313325075806875458322892287328004259530464857695845478866455047346975583563956532247734323639554756993090244227363248858704231527607028732050369791208852184266480886235236625370803586081919552607323466878511686777143323834879527334309508963469268611327315446964221467748089337166291023162974680309647881097749171257835475584904425490074219163374149769431271413552018649517352023107292042097858057115466070207299058153118382636832472557511090720315273492676417604676441855845467068737539658434795461805884579589254198954644171423654421776190503980249663234437320193261401938059143608058578247339199156030279860617639446710326181335954401267661202721666592253334673755064998209676422037869269815413333659607796416945903148803324841000118450264349708942868714680508127272591732159879172957796768364509737687894631646032969517194267553142879401041063795605924673335023889828989831746832765644862138487165475523632971495806493958986226104935131461179391618140259193934054279029214955075817401365635497300465569745807266813283353229662035258577310978959834884798940404787580909368435550898214139349434206468240803430835142580829240775855644344302753091952752573466952106503325368631862213503605999543119852998011749224946109244419536833689292276071449948594415310920291290756444081042774833265743017098811402158383679002472462448369140175561729960651142726247307363924153278792938829464525342594159828720457247023198351844621040186539329710199057866532124980460001571552021414441662604619085775227615565774835992166948923839658082740854819021665763592286309785223465260258442023986596286409759171259406838322591768769274077699349307029300210492343082654061885563790842330943230616166232958012361790496683532640303827589570147283272016125926559515791966436653621962688143730188797065111321821324170234420657557363301204896321003816048496043786109951822991214074178404597068352598357172678042132781688094641939296701868041071167985327459792377792212670157204327242230049726076902110148268975524995573835656882269996494077690939385504406959879107349024699983650270483157136157592185835986289653552742875118181138332095971020110104981155928642235804058809896374059775901390891578255904880237315155436827702602007617076043114974518720878711565128375179406157246324394699229238169116037045784521127852989288321112795541730479476331732316270847997556444948280103965012493795414789048254615074776043220504509013792990190565127330360657835527687304483205172396669964330670941169381772053989742127722145241407956969388496329595630467703480376407262226406587857923887595371670276487484905271340486169096098901356163705620821176901821231652715218139130357666305133638738528183246025097478356920771487710957167309709864236733578993835911097100905981100395467122486554601056000160961688860420199780363220134009925925369616305326038034501166830539653826726993498789779750510388085827444093094898845757219006090175051806482042373441353978886323086028865138806805916482204136298197178765031779067403405908628897297201698687843259079204247567555628945376015052575620007844343574578845033221705945850744273048218304563810105081635905298034142105505257102863260369624436769110662442450299732093321753771328643373843674094512924194601190272592649401280993950034523596924374790913097179841172661523581256976565573417438750574584946845212771147739891502737293417871014988603628099809212519398327017142858641042790683476746097730883821447580727713190569863085824591183168773083923400922538209016683978212993251956894012491853287573810421050428148182380155684464704630121863328880696264361700918875789637490053627106467908350034094577836203020176481099576647269193903186945309597868272596988149613578441129672718357531971935135466061581484350667662471755808024751717795372037975139238949459488407471141206499948330065835491747221262715316876410809148843215239009205665269522270716009522582019302188186012415674122073860490135665299171055066801152880323762693708661370517950372963533382893897637123141723442839180870306891156369300927513098499712124534423339792299168361289632386506090393559414574520597255905013245285564126912396469298424116737318647355086362615450634700192071689754137929962673914597700879903037602617560345591124176230112047342019168729175861518361112570280698041260967498932341529142271620511855870521057572602042356414817351085017436799996715826078878195663631449973112732279660484495189919238471405471516082107182548212167927276454287770002020754416834985034269291168120431663372658504555839320885143036921910823093718692286837115934250562155058945234396271938458848834249542760199136384688738693266429268536312207775173130872416692944921590557293608189331192559961285421827099449615779853876228861103184573893249359407915295312909694076045001573460717678965005266086524080644662902097518675680332990901872970112909968825578388226045280611897375376738889785791063691587242982160705048355948122899798509016535938382528640422826175452347740724133830744085732351593809548818133334798925866945494032758745971160971422620772419444502890119174620279141145594131455408282519130258873440769097659888913889342025557952953329957783311326703131277948134080735443034552311249176536690850170980922410227366966489043859554083926080748625600815205935653392267107133588416945915273797543761606529970815526909422886581735469775956494706461403072442501065106113405606211810759154913575849571900519436007769895004922869818621364217801654447036180431438502084368761845866277995998153641112220735251613593096122745482956478880622515108441062140201572242880635648176244573942622608835639765879727126003590747868402203475758969192135892562517080155930950038259124057466661277020220899009928497020857794078309511862826295956556710194955849626046599893198107173339516089903237022695269584215456605512921390107225248960561355205529704329099797685387930104272731750182033678975264079974987702905064367175344909610447588834126167468924435368222521456113349387202286881449444082232579702879498318833562630423686561170619927069140655734615834852891847734694048367280415491217324730216876330174044608593846262940645420543546712468810328971329417805927026588238507216805709316346301427517875746778694611200208349735314093468307308829968612775016172302735969249622824042861773574766661225252114094260415096207773607498421857325593154802543731533684265825685557015740618985176504192972034722255374149777213234382272052866571957469407950588167751231500889236861988476797098498988670071416036540334976951831166987188389215444234630857226873281258963684099364794409596237041731283550010217649932901699424081772473197549898115686578293895204726554626263684896112792738791270795449154903396573682359588978227502125544347367002573624183931975278048436858212953822343448714912871692706375834530474861568520451469565103823995824987950111151300864087636890780551609121244308488145707601950411512713790080799070589928596427221318420125679177722447902163547460990967760125120006980594232850514159537767251760825774805458033207258400397406595055991043386276557642984045825059435238644110000907612773008804686420139798648166607802669821451788746002359566885218053992811480731577132297524234780014101390376715700793415871147879962424288974058145361966787285578216182597249767398657909354030091545042245260573576677329145017133286090766284136878860553246529262499897545779569617135554346421293265038922274885567157725059103111843168665832977238170389929017243814449630631907981954646998020363663922946953722026423792833698457990537780464282887388456114218227793354590981013479064108235045593116018659990065389245033993794925453446997720200468103723457156669503017817768723970385830501770262845868194098812590450781515702683520614535202447519902067127609131394687036671495710706602503833783615104336418334091560001697110149888675870140582203375331868797988293535544222422298230126140078147638112335793131259197978275745881719470225238523763306186435982420020582138558611616747329632658450690757139046711903326652998834014949110463066256448495032677204761030495443755341140018572212496577393406515297684713911637539058804680774269550408394541436989622785418046272614517128875489412905782331524367522540963234972652245592805468967619154713631316616245846204142927483269262556401649175971113983482500834595292361839741633236694000856438774768714550621667453471317849086553929480358249829669921052065799046732781185400960943815263765232077508634005990349410544532422494252553801003973025452549396376707891338748015195316845598680731298862842575279038006231181643522501611927433600282159784894933279452776455735903559156557688457194524884253639201688663249755187923032891260191679781662567929846596827361839359746950528433398861763876625724117187980793986237494980946084452295237603172092014540718616935703880906572531749954158201818008674901760294030389847840972104878779604218051470959001387994927781240204311812318193765215087382063267122479643870019368605519263992249721794992380248264182317210626929740844964290128397838255024374083628576136106331436987023898873444286672819564978516475503624299733553306296392218230341998774822621743470192451209016197684986925399049217561426211369050647844817628346325582632237845021520303352341034528268400215567226780330747983651139471424124653153595525773818078664446388359483025017119548314597536484273672145507197403926037159978762238348671316101285160932690767630498452213335036127556017184575479498425564192207956141856290928362247670867087785409665903819825090382574265073669794858820444941085182021730309625053661171990225137088723181379729989780554475161147346435042230625537071092985223843434198025365484115267805695767641537249153907942220464921088989167539888324087692094101077999713942859129994653082847142576762126967778520176115165483342637924999334060459652756481001430697921972292985172718568985144328871144342417482780682134544161701278937008141363250848773053598634673572100341284141943418595041692462982520870106023162201079477926624256258725804311131126824840884465781947209708335529782819410971594750076496504186390396054170335344905885389775706538711921651312231091939051720207589469637644949093171342541818494723261862896747921041019865699312379653839541960764992891526982121633631336000076514359689456339599925733764663787187715148154412409405067589135162430246262447638418038622017122551720529026599513715288738252184565837860406856281442932110673046955131579724299221020353361616582232993117441947998532140310569629311299043868696544110681564420983184015468891589659560593958729061632869252714499599834420704497366317657587516750733234109697443926601672756413455527378392405056782461720646071610759168818364544472299817258210829399696385915156694095219747140392308552774711631961450934049857161779525432515185023339406925564927667033628847909513636253813519149598999702274574952482798050940171160305209083596671079433555655048658763221126954513348708713084957625793462662911577832564819346333311463455317881554497002676444903161265891952546693833493771156827575327291049964440494442168358556098626443404672387844518155405711384023637534849339839540126025811800534936266365141670262224946484610149117205906056327541914971127809783428484506042727469693577962797513146818347732776137942409286161768820078815455724584378063635028184513954695635741048126176794527442065739308977469873685073910835541947013440429212978339995985055060175209129283989531471108116496589509272934699465030091268580650310406651913955679941380289415614102051507499770737343361059843057481577304349442157827570825349872410334812731339123541935970881079863709008447713016612407650789821434138397403375068303896737687511199586169368780015107256367245602470411689131321996212644372913609236712760956120209087404631581993443152007096634681864286463116814068829401874658497781954690487344975332597931710450309617837615171748117754631060877018182634562467235065639378597535618869433990117528566972673954851888847166905383942102259226648600517084794704904773431849494810696795708396290795481567942026327841864627379669677116441167881702905607884960865793452608386702368415676026531774349600523595440984813831088295393283185977495724561173530429746602961842440854637244832882560913266700652055053342252327845066942787968011298721379544647889058313326456698045297478345312236065520051077533274345751791869546045072991193765520726722613401407113247660965892214365555134470632642127038112562529305043204914215172154230629702518395783111362918366141234877635362784822958096225038547477248469834122600701145767240923512486621010806610287916936531365865564802101299907455418296526493190504577265149488124302908681999323483400493393009293129682559004449882102384813823217645657889180195695909577952929648402400279783272320792719729913345125590614310802523928163232914471905331350656239359023771701351981966253699094385524728889339465765734328411093258010680002617262757192199324274978255228025915571634708194042777442071040809276039902047317213210223296849512549726887263078836295325427346568185687695532461256878274289458842141048717741797364417587368282310948412636236379451632665629730838883469933170768110464444585679304384269008555553529897339614694893300717500520057088319350915970500977252691116810095163714238076822542523314650676449795029880259165582377335726840427299908867406985110808101957503081622919620393373588096907657654637440557212052709594564856508921657265936746769905731538575190561319731383801459427603967166750146013930848356427615082433928010221271758119075887253442981294748500938670481617668153959262324009670821420552513994843333024836224946487457877082634720856758607280823505624479377207595282010608904773581368217128469824783580447213194927250167359644753630463384814508863642223560882109948107605307194159628786769208021289074033953023794789554794466612711825915090410735427794584563803090193721604169571928282851276740275333818235856258607455920599633793335006352190277787412341780812387067925538495897634284262417860701479460038517061547887231918163641186591276991099421302672294347388307988635685240709673090622877679784154918281770937642576725037110228973364669332414960892659237838239820874908846749744430747799081281116513144231085041714970628561021002564080035296842388015333124139080300053044255330455167394527012007193482574387263401577336165839165742476096728681456684534283752524868617146891255953288094294777773438031320397172263913266803605962494428659164275500673462746453806567998629738673452642164250809484221441163517374847961400749929338655062085729445087705927292516445324000315370343952357654609495996820272075519224487863063861094798343315543345680197230687112285109061160766900124344986061467284444618741660252621548640484762329655970482231766505912193578391119266842672313344837698026640171708018977747306189706218740658513148268197297204655164666907045131763258596059422071659380918337411056884214258271431909079677465553219917415333937055071813149059740141101966289551177052598337717958074969542863645958652847480406847806923856265681617040240688935467715967014001449925853696067553551108230237318853953210425414043675947628884660578779764486287364532163735201608316432235228480872073741790298901061497049055730493801314688703272250071932796221710786368402302739156172112643290551029676536608630382981304281263491395082188712634063742363706845562371732946008919084968966685375114767329211087636415247898053603527862511380572579750989124260267634168224249404060756319201248369378332719553171597780835393840440797347318632360625062892130403596132647451828761881921629337088483655358400154426524649795711146839426238826177695794875598878456196737808850474475926609459703911778675235586045446033592141742386779005503202678493693857317259159140632763643621136213701931585175372107108239426899576165601688599734273773849035485144443551906338031872645496897178755189815112707410881943749363004040613736525371676140319860052035233035027058028287434014518695399712503119212687857635344598990457382430890786419802507657013676564785854859134196158270039815889190093788456388986332120918544703922841876673367188195368757639957812967380111871175433711514296906516549070965907449872074296613850856484921087400700568702106317434858016902560602638254221796943925170100190787947803254534992366416786322800220287235105958202634294802586807896320648015118992630597518151410200171125470090249095041469017062783473584755379080178551566989548864949975394237779181044691547749466837444969185854066140489276187240960510896417744297530580156636391515439068918577928879050015699818040721932821961941203671437551065046446955877963987301237033812143965736269968266589841368281738854588205567309769256029583288791887697473477286987683919278456233596062351259475097569145625758386648639048100376317806357712740877836777412701283915884836571709149506631550192752765795997186984030183363042606575655844609172579553954387008057055440654118305692847332155196225537405492473992690198779826667646167835882460772863530027125777481689023812458020294386989597616175707097597801486531839720699623241092699406205641966078373153243415611037046199334116570923284151744841744785584558052411795014694540003234662161369788864625513046964421625740819737262828338667369184100221808306248200501940518011262616824364397670264462148128286447050612715698507348688899085783692800351248578248573966523587563412415674219928651407040655697560498782720322364518862764730174868328942100644493118741396736861339890237634154729534444317466256685914041843780151358289833828603854564394669712548876585665691850437116290595170366874374510168609021134866850206089293780454817939396306371909742019268098598505882980076165826035901768116458547736903546521076607122974121874124105701791219430600992309468979061359330059522900406807649695875312273824773276107257882899285531407257805846394987944509877695992681851042338093080206288869197889748392914859112839008557705970029572681358919958380380240048681866150574708740526776492517747218552373961829313044213753467512200396850812898503311756537340743915579285612492700795352262590364124131151343954550109829174177797914672219970942381376662039808411896659864680580792021662041862704770671486415871690660319937561161735889377767959375463715330685634886776728747271860464737530498220345074453363130648428504136587651330607563175100012299507885939916589107498007000717916453157830472736809224691003950519278492282995082343111509725893368994044529989406519577001625875984688070710079414495134581573420659786543482071481402731419824386918849219419935453609608894901957528448839008101335608514349486921444586640954577510983113661391260417825942297382634146248697805421520566723620850144166793562181330126901515464809643760601534508722605558773842215116835375254348174094846718453203710425588410016631749604496770031761850239717619953473004695133863509504365620045423833545446782146467069819430627018985120791992186280269276849169613536586357305046172203780078017395046097633029138182262138910235263731841460163880804975882586278938082455010101395243091715128774855643277851433168143949033536111717261196317924128397048090203635980963788119007351587763623833066397988960897699953899545077703410863735779882781522049247849453953224179070690784095304122319423717657638248009072240090092787727862168270337477690088073944191676939705207271511569422890344870955011395694293877603021662771008647691248220126734217563975116154018215114524566322584662228884714684484343195945931159839595664729328762413320481345234426892278378481164306651139284336640256174815489152084342439658387967288226164089079811929732079221169580626454353191566855406574269359043306996832772198247115380452366792783756847495259901281164096993515910685924252961383974463335515386954230378310628013369126242547437662548728690853461151652036831221247641873001128783995399295356415601803142646022303077047123795827609397183833649254930453099324416185799396041230033463789994125245215820479234824213497825861564971875179593483633670077441192448168564004684623468732755300614528333367642955311676488675846350909654753997279647944925063400013270771967769813415626883413953315002665152296420481567438766158706529900060682428828089703102842382077236620006215257756668352864643510458901344167239207369677667614657120018527197380544143068172506112817689517730410604086103128651578931358864968103960213337670216142865992179050552277781303693249171830410049710250607605764856845889937357730699432774188798449833281199031159595731260973853620972964247954214769701025716226075656144245952360239409236565098068393269180188270687425999568154051736786827212573459619655035584140655219580422907441446418808130356052616304540585957854816120235059704959515265670508911160339251558127913882388030172918275572787498293703494046601679267893307581867100982339337689138242146797001792702145628593636279023570273405370999072146115127865219551088652261114099187252534476371743521754308899220322204353105802487323132271270047417284901826909484326987213689893215470605975069058003564876229383397956121836923084391404091063809897574077496461785220095053761035817795306359239655681744777945365757834496850077269975516709717982844193671350035221085448509536096940789802100043512113550125705540580899602756706776152846041606517510935358760235417923241897543210383500049441693646590022188210185233160624459615401437731649739766009943611467935118237785739616953082582446857147453299291011453778993057492599488164476520989291989935452150850170658819039790791632873713229133505691388719592015202734031451973553605512823737298067989905611568839806317494767965118634632295792411205587665894759920108278099316930984540012898672370594472701927197393030635424641037648585828032669177246507009292417958617400557369200830381326072911290634369951673263896139149656315918652960467111356070318110492440769436138467300673724148962600601428171077670315010182641466216176109786557289656006532211022735813159966887843092034784556938324142166030117651177405291571099189089154838153281165100920281472821851600359055600354417673245522047751939139025345194539648229749444588367138639847597354038529426167702870707963385550376654856835602584421100223229001817161521691244220559218541012081722462966983694198648956259200412769529828161165072299227020482443196347656749503009137842542512591365313295009768086509589111896114166980789968898821405430471637520800448550202820312688604516342876372590440837889950332275468526273744275055509282662465470643785527182859803813485779571267035957566327587195167672002508063253645372355920797515279236250516370841001606794440983484778590097065809447071136437434800906816123515840428572495709479903864824177096191252237456476767531128556640042250086034536183463086830709925813050457557964785609448556131270059518440986225147122370945279714729083639496685621084826418793337531334942413079353179911608005854206871349878234913111821815991471559633164602048653215078982544232426454981417269441304474906987628844786931324595173001073596176121891279877537694732362618017673667755551270508195210956439785127145371639599945659879591877740939240969217215060609657584207240294206380221065965107854398279749765683107300483393825469500606686054211088809278456455077575017618833929744793663098473662845764308398770326652547123990349541317869769477929968301735897714018503315305538986395984548945205890502950145360482411428940504681318526452574717699327110505663262529587341983126591879953312987740506954997187030053538486768467194913841057507858374997152607793076322983854920734846022612988183031447877352712297817849045943817307486791840252663889856415569249288214416125284186791996674809720563715436214390791466613659544972709041279517064770262048943349073377295229878247579268081411335077630823357797610599708377268131041792700349830808459166732283367090586886560913045564558200819747840724802440627151554080274862028930959866011080153583310950674483072129682048483181048590253662844728142527729406878689834608973147381387845671943233306814140553566061674473887714083961634550108869759355168682378127348968517029877840120279763050715232646004742785827843543599576780921757259381999927609516523286307016926320246271382726299662182583698487547954311960158456247595553223983507352129215039256945589749023474515912762574527759678701326179360413213649741220481493944366306636675907941847966645316712550466792494137113928510602047224266192905515584903043847436688441028706218580371140899048471828932801893078660633523381906981972506657035853493918566420353225361198068020826741899375187577603838189447715451109599373442954610406304388755086433108821549107641874575551649344675345403119368875016756843536453483540110401715877760487222294813015781059554445170373016896917069879512091342675489677984894972543537801016021650902739088701625506038223635293028519728757389478617116685087870066277892014059408352397567706791116888963387388959408431443555498943888856292179132152992883038114656009569506820776271105086878831143143269741243692718906147750113574631754605134749520595648755940462645452934502769765245936066408802766286210129266306253530309291336936590733132007688693570903577386355832487105315789640233711215147809721253042027482094766286181244745474937644690271191688059608952869633691610538276283291945886961787108052894408777363796025040027122006979206004503378417829827423621669102687303411946117329346779202897781104343692448943993392545070372041466159411597892822027851301615220819730075338188610286903462788071354656862264021502101597798244435907439110352319869434706851858524227559833713458586737780337863949786208416520075857333644441414268591851281723705706536158805647226093402867994743850470035501188621880620789090570608120792294760612927752050137983638606931330865267523179332929887966346091376843150332486497075138018217802872444831367360731102470109707775429119419960017931898035920125544623182042188675301881232350090956303324417040595560273914972504310621952482980382588432637097187982442345511232109464327639253204010073873325272344325695937520662831625537180371248573329391790951108526924328607426756104277505807428519354130184862394414723104766339884267935375371164047420460138933269163350230218840868369889450042154828409721589520939544706475096422451127604003161476833631797215796810860941221868677933941308297077595670968144680536718452736178863557451227795756008961078299700545974312161142624298697381158994449762863359105971355248291027233175472789568906544437080695567281099170003321690112470277331429571093974310785357878330110627913250531486574778742100931135981092083978440627858042103822483924437842808393515864127712340549201077825513185114617334784050967625187739372947582665109234078882616295912258803220042882350544985027719426744739719904819041802351441422148251089815110118185124792302720507431103742500964229399605924003233392517791896386945411039006872780408557454789177854527074269723363393235659374825968741481447132526374564245610299471763229734946798517673623575648958400303614985874609711708982812454437124120274375571181900973656202802441875243543384203906692778931564522009890676027210468916653543263061127631419191927943104171706459413496991820188277793431666022663170141329327345468006361014965386695382486181709377585191841424887797498325169871296531572926037097635832438336323150162088931858757246674948565404296219937871393418796420649617016526752503641544777527804094549768221320365223588533262451038551538850587690639605797724773114649470327882467366019839445230724818924686665677072032163101056819460751983108661013783901814017238676936272001499819894441805372964466486914535800442019320006193309789722851831012643662965140327370552066308113204817165491680873376733880215938828662788481112676292428255391711545536661268293609965261549036488764533448985265168002513542336644728162300705910777489420557239907881282996987059304274174227392356274767802102659517582502130668647399411644439152862587234094892603199202694543724807400881716758890958144974746491082308756597131302490496539959484536920237488495787900339299579345584877179613665506452719965876174346360582567160751338097134243613958848830296757461526520406819185266563863226693487951684704837271773644647042822764903931840916561037982438849100143320723189525543607959835290563763633249648049850506030684280554567279557519998282587525908845314899156499921305329656180187954245722673092955047151552516621551671034084252075246750904499998667096991054223655215840957762628273867959379244693943954334695025898059906375863805789165239460077781340841440200612726380093563121229886014016821808222859016607378829716642432167750262135162352571728545031673561269482016670957116327927547762238586945751773720000378763815058999710699116486067213583182098462896932803624250604544149227390427719384256957489496485100706439445934349372146094348219181875699251274132797548247997337638133278161257229997511982276111811628268794726686827847477070067292861414919242952074789644511781910759246654845148813213205946837939919538003431248061925902652828846559413015623740099165294024078067587650530035684760053910844248053811498744795535736775630052991704719003578606515365487294687093151801132018467133280384866273241380198218220577225872279946247788451904820042681307475477951341235755133624495355254958279856666881034247040201501563077274800475091079086523789429893458758017406197907159570751147142876071481422664086064020199405687797326529042670682285798093774822756363412624608491299045700212446687843416060106509210210352069561083595680543234979929176316582460193476903637273342075384275913564948659081031331165967330647540800545554854996797317943512583610616840373934925709917743485729472447842414665186749147649363364014594236663079013105547290105634318049490573614220237167717290896200896192293895298821733870453498514257513854152346667505228078681102205148724134634867445293884471121917337984945027425772733962378800226047375192026350707158182835030668293159827614413465542485831934030359809602251798200074745007770472273623720963083198861985044527048125721455083610073573680810936090987464072961181812155196102642776303082908250624764110089340969186763087593434249644049056364295329127421406146448403774218811458752497856138970721701392691009075587274312902288915396613288135072899282019703387197049949012416789097917509800298792800828589404538326337440534507285993234162491371132598752777633042646469894250867599520195332397031971389961469509039564236258904352855369006538043786612690402682911880698984320093302285208426107330592175079994485546916670579644179841607748437989581582062130908061953716302054493840367452601733961871674048259325481139888429738141581387270717507347672699154095098692494511473495447420832473115661823160224170366726019797220381130827239373507184861128203327674179982115102687118850975624543944363294659587484172477077927995223863875090234337953359766669844458984007387543007275227048885542186359895983352796117914419540921147895821995395264789753074206249282612933556530780732079696417148071803416687193585570680319552396538429846809812728666943294563200917141459530341400317917046419181856125959018759618720395877711393830699808407500241828205884565197662232163600826081033965092527374257716643513166583792129803716308951615131060100234390781344512761969270272433555161557887555181027475582288272596540225657890367020527266830489380650868666409402922292615018082821232452376114156864229540591011235720091762543450038406169265635764248079549866478311616609499462421473952558694865949346532951590396440380430392513279361860256941030940095287345488255504632549444425098448848126312941029434911507134361537910388171784165664530988776961513031745128234159045152484146060680154352522554824593470489228737908193101567421891937489604559503712236047916045317031706704675579531538980162287122619601050419218402993385781829213757548740198470771664680671926107457617901868327410640521008635334129123233692963609586141425536788494067984554845656791403268627858585851529326522705445053232757112406993091058547131675637295979551999963790388081277598399337166390549865860571368825611904096222010375065853003461168798776174806837046511419369946035968228640679371127116896535364394554387724219867638372961637146257632236166798060031934237390908094346995617053998714141962783304634916642236575508660924928760631514823948748182649475738314807132742088328527015396874179212763981490655961776660533583808786904471166052387157935893442991233085309870792432328963813690402071425837622727487453756655437107660053526451306503733913021112063477646846202887610805934674600799363006101222408996429199585139369332407200165327543798372867326861513162389742226781527788084884198459056688279100011144050646534454002487245113294207578284222851887404348040064599867730072853724236050761774659183701510623258267654599454548991448765366363716367854229961971695097916852273542247357499107565637029386589173235263396570905236571728346443035818782060558070657445999647271565889669599529406479854634365613508235819623343965354393783232749686437457286679585012677938660069777936919379260049612067224300507071737256551968341693445635488319321305830293099142888620338608934119711503764626885535092661270439872603106353026696203796185074996972376267158457960287776497873627326761155129632521980296633514692728189065984288305681109765401636988669505485811960047628711665890148709002016166835542950414022184594014482344984809745296264093893821667647108084397468181488020634861814742923651707911332871011365012442592660931541701406733191432973415004158970099327724790919144035400921561367819492287657100421876680264120787842390083802229446015004336842736280601173702234556360245534210372877261279099223742599058390039498291989222919854515998673354999321308416549878363822955556932124491702312189382723947642151901876189627160855612338018708644637413395128919766663796006787797340432158970724991782590621313248583417397787991573890474905787327550561229182110324366357549673676662169148176254401473106490947940031059764181223512987842292371909643152057976290076211239435667595489312242984555470731853641974695338419260782902076029686812181874546784350619372085166966063451255337256102900855237912604359747068885611929192234694017533756017936197395838228123302537244209510795516070841394543805119782527522873169298209515494384494049404259715553459703672984933234069610602858481562334976976712863557501514652277400260392559724534598233245484280006311766228597256392344123920270080219326066852887415332717415166938628860764447181592652687132180926574370912623604805246603211385060235746306159347008643504863674600406259878123043720475961673095070021808659976989443599060820131207723467129159156372298829558551690774931839237680975262082929285680918640877052366587905509232054274653560387546787734515441381358892884237947383500277795888733601214974067745722665050387320111356708758048878414892591403049085013250989177391871477844600871010627216191877511504093796478018648483167704381461665401248200141497688082246539718451816679899610631487389107092314713473318080715366448962189400598389548365770482191416660427962017906867686899019886876300377190901156116294992205844870329544605918906993969953883336292311664766836732111281694714187465762321257192568191391361624151365562505162254962811264907194582528444430613050578025647900067816796555371606220197717966023919098688416085400012605322735979049964121097623906836426314039863465091009416174689736558031798151066009250438966545233253064467238937095559636119634620237045604138362549065564971327653413256526933015267659147505832664210423275849794995481824390799087554450483441886108554570123275281903188836461498070518906757513688248612898644681678373096341447327240661668817153684502007956642540461514870281951985222177238185945667959793409248482998306142836899252647758616618330909622828507012552889679363129784547704713888693463595086688816961931414967637731808540901754900813575435061106021745183932179262711705498162201549683547746718474185572341052641461113271188419536313644385330099545641396241455453083695868717562214784203866899722903814003820107485400254222478466621616192206728020594635521151549402584619708460723659375952644523321916535523120641474642013603392976223919395369301028996971182941539812662209085320820398284420116024946800039893064141058978073650764523169050188586598116500742212807495883349964018793309478227300899769439003997456230485316363564548238335743563824402180008033157268077686436281661267867412408567352188886661639161435660094645014051198661112069882449436187689575315031878149740591652455677233512724241501063742458789207085585002863720647523218937263894832422739064821664507460136565682596879762184272440210372238490457125797967550045367023367166194614619825200307867982849077030528213686726939938574724836967441455341454684699721586730950593458148243433930675112635991121472983095952207765330824419015426813117173195917087483321702959920522069397959642405410959583924827796459392526915388441042720015586995259264115181064899637604688488453339325774208094483225216591347875288711705794033206324193935217167030216702857860899527983988786504563179461416451242593284440086776512734966850910535126042397201872772686430359270902983747640953321310887954103815330129934386926421061523346565652850243149096722610671806983386495209618517864664675773855379695080550791017811609736033457686780481510891427330882862216806457474777168903578117913917056549205830537564835802073192040771476721974271264046713746726988743032126346791510685674474832733117824130682399367734264039823796281930187718095306956281756801197223285754952277691686033872754821217432501433649174563720853006638331252808063010806119627087215877475998221189605729438440880511890122587061300969324300272545102174939829977655797799811805060453966192738979902508601867679479024442046099099655972508221878261515864235866469999917522700158040842672788247506403067590205712589596546166562566938206713727859055145238840110123766236752472258650562604975651927522168672613523374644769705963257278117742911065791866518221370725668731169259533018142316483942051102374812715198662922481503616696308374792972115711159125785114494276860441848160330560484892356563796761113309145421070764945427520607885973926549315797369346958123955168814062813192159898114937241705386342143457830524480222016174424661180580166930985900103659664260053324150742061816443539294032267848487924327384120358867776568162893171558965011167392484695751283713721006393660114023302023519100205546458925997547349196743443504839988076800079272300638261127656756819663126030810827052097922778297539163680729668919106336442227702343000875929063600658834735543383724244964131746926278794052529254641865460582427331356327190726795917400377273676738912237426770885776966405588696704217923706778047438366093726557758629472556139643624775848320859267432492553937578157121792039957445410716486277350676511619209776356253851616270497736859135400803166099541227769826630945120478386094682731214945521273276629028404623681840116930839995243073815594430089449231269125796089436725913762894387400157233388808913038654024951706752368168353961311328655068420277661011855782608983981498973359232154776773753513683610426986597205272843188685536812712726201063209063721106602242666238176907714231396539643880892671270735596301541537463240487170108785741464265003491171945036425795546774027983981223110784055041690979599336610988620148378016459033827571275582435394103595418013826078812800620148931733377045081820358661199571260192117966819184179057824372954258826096104284680358104936185450919732375628609738743646579024232342114991140197265778748156624008991378750979361697203236939165264381688030929136331404472760031848044264345494156963361596365069740894709917678430651269891728868454495835687915491359367775632850077734610624501934653190942433255790272826580930257797211361701382171193925728746806399536069327625724077455169560709991566459224401512797078634477224457110328763752405935074251989587136232336809914499096529548741296848651603793626258708726035185144094600156298049621722699347561930585752065393064172447401650523615720521409890291630944183212913169880610265610206673314800004988317194462528202838011627051530492806003267514264816742711626805215045642999284704476492337536663868947220247692416092462099782024844718612803763708505623108765722425720128586712915324823796188825767779460580321889948935329222986656926595168323945005925896374120049571397812789989882415196660312979831160213972681729122882280565457978554691178851791866979006750456315838529973467766849156469893635654482826802916439446008174010097318783054432421801070577247170071109613400469126924240716861239244072643383500627345701234513582445581190505894888850888983828611563383156545108745638001303750192533547146903527355294103683307932774913797126532870047292568433428869608560927555321074332797129391226224376864687540748295181689444312093016260584463074921438189415084984408244058623542986654295452214767395297255231880565745978029431113827554115199124138912087262883283526412466236872928885439645783316185684341781050877229408667441875378850286876500531822531536115941441835642300253933736711487239006620331964822994496482488006739752787113718989390869529032380978999550214157537004285413395473453356266179146738120019039198098869894243661949583455746137529919919244157965323219773098983452685145727373890887630527096202693909691167316647014808853012400967866349043882833047708817160483556499371789369152582730289547215471947850150348846774574708000102970963285231534461616907802043174427598645595293519835687228865401203042895859376400203014345098697622743427141654757660022388918040984176688030737546334250483843914530492920759134489442373219378337197110162854370848992302880085030203071989207682480537616923750694877299415849518157289921379964973168001244987124883867799950734780199517219811241527096781050289972765973024358367574572988032058857183058358125610528843579439574220298528669294652017690950758187540272765825539393942965918118323582636710185981902482924581928556478246863421326528143650155714000835274001120758476477321012372879246662155184447350302472785737995066855136513747146456095223460912775345568784006881843537444489897459841311332687559187104949786934839753231848069122773720719152429308822380990611278249642098767595990527651457404594943403842541069680779699564924282264097418699522253398917952775526131432515234654672136688676966088241782749857877907036425631970504045828710680506569364541375448810387607336309603895556632602095086765173845833995277350560452123643874205148737294073124967767544320129646731932899043877621071837993250556957304323443278605556528201557445033056688309237298461883935612154915952778564639803074691373961227275101386137730026066690200808789081850197063941937154109351846324457043743932138652261174250344836588477640709887852608530019951074843585669090760133809621821145207363439693654424110763034346201975139091116626086792336706726649183347092018297919836651733390555530437336641801838252084057574674516483967034738247454114948949089215884477914750592930144252633210565934441427659923689716127233814402031302400130302797982566773141390434317615257392286128563754610860168226740256367385693053705333818998779498665106055309544648670840886188561723166302261459362112603024863907931271673216637750265208533019162050246908821253649063435084707142086822677914582773046188032332868060588691338770518192623511584110007160174855048191517940970970995035511708548194427894222334913401706940175565089006460901763634897507274397957099242073366825460173168720996992184413360445990123040572281209529044675092477698191559873804135762992663538447514172815936269545837619087627014807192738155843587166136390294938633056463629687539301179833694817159871129523974204305185707719047945419712363627845173085693605808391919170180038090024710364856475804631232143128073282678222214115584060118650894586688373728697328624149084721020305821617452966003107467278493863255472809020622253713259948146597434972905208354133020810571115532055759692917520757860456338879111581729285528742589692500733063042172497726462382848229298728632722942878419125768263031623940947221099107453417884182930034724483394856429789747042977240168079647169331339006306939382654373294772525220529465571317301858482815082264472265987157020211314546996039438030692776594431289273374577298308916479690866768936643892315181040223139950188889680536231704854528376362617085972480751099440221572975710662263689338131707940315059376088611789035788482481356328264476791299570260272304962181870850972708238510367199045355320383619073635365829470048098606724086493170119431474012651003061817742578579263862571597849644315119083276135011914840547752537651891799146619068503072483066741162479784277041055612505106922693347766991137873182847607459678230650303260445496793276367466066629981247742503066112927692096607184507956497248022500816588186174943377169800680697900261041971973521687433743192326473674995158342844556668468224701652003418362090088903292130125377100141796578572082495001075151800282832653505446363234916380211597513382991166046040254983853658025166753968562200957936455760134440453600939057788534968273362993642741956030874549706428258360564644225908551171104721051090823955607851360820752568907552689095453983076091256122066639796588396170617182024167602588531408469572784319645463060297947203266497499913930688694634753739819558080092374742460730206271403177630155261230035496512950808216876987398779981172423657365800533272996814123235290248820840155988302336724491491195531090618961789276925604904629959191136122615188917198802155834694818723996732351445330528525416260288524283353736820515017571166286070438449474657636412181936916629323571248904277640226216592206001751024459953966185857444904346029210016950851099389050487776109861947202845754542366811549385776599849198535408751454704565368800831906205149351666462706107805800999432824118179301148825819474227958365324806111947611581208870719618659485426749623029568458055325041362791649261119135360481287764739843535359436823337742307424253077733226702244729894664442668162364480516545023751694400570676368253263938226577361654239164191462482774889035088442483307169069913667468817713052451327004659251912617257075233159151206156716109217623250463419482284969317586657056594477856562637146677560194685834040817761399468582336609184235962053560703280800499722979387199086166195600773513998847474400721557328375778420818183575107972817376434692028318576698479456198689867495858971041107334582051669384178281038308017146864792884363336486056039610437720878609030267545715080085780696836366091387363756272130515172104033500998968665707851132907359792268970122457500678778170826910289793765055849162163242687873213024107675554782772308440760842950099163997464474022185682051648330055231631922850683466934681805104644810470717672425852406195983562986596106023045629075514033969103931705694333093810314763457524309512896853591996951796555716520718291762118155780478797373424396243832823653844259761304933509260512947556709228588693902553679924431090739330638392299487204818228471214238984952128239692498029108712147804380862857596233496112404005781904303984605988498363308584327709875070985222152467359453995354085572880097975109512375949340157836996175237812447027899581888188364715290463130759631340732091653946854964609508049100327288684205425126324281608168661409777526380046331144866141728620696047072880249038504628375905858819089465752551546499385509394713511554387215903500014408589857502200303090683746750223300882538402365252887359020561645871961290349200509159023728752260982537800148381506188971050731169950715479699695792326769508750668840811645753632885604128805174132783740556283119746904243019580033618984017039429156748650918553762149583085022090922061359338228178788351588846634975995571459584111405708468004692128659699579075289683420010267247553132625801098684967033168480671011431866203380156697729572151242284112796255974004786271478777755642531170373289095686763197937100282962725328546388383325199755132358360542519829506140611877487737404415798292607485439741926416552689667500860766366088024181737919318125567629892870079670794351905858654119419563115802918260741705450642748754631035259953551998837780436526261766999612879576353682968098502141349250313260312839240648721248804622044237831443161597701906641628618818519021910082341414873568035909935499369709500615507893354757195861176681133256759253201418373865667824271618488408459963593399219305251549540142126923896223136140493534946657240410107264767760048487597369840661357957203124489380812368060482035523857983380356954901034973495939534120877867281744886046206951302602621299139206818048696852536578012349094451489806216676804805181234993529539606983558566914432369106969556696053766024830985453657505934498780467210562805131992062525266204985147754902229790983890726282009431277913609010075114659845846823045532768976871920638451731724605515586746459055490909768426081021912819715910785083516843149783914325519199192808962335941904224204971015192321475791848580035152923544324351207423485382160550017619887732838947128493266894227926019539572278667890158663907224146795856720128320940006060737664834919069503085776941524282663750227050657347059956613746872950441441032455721017819142627742525447023472502268787128248485721670816556490016498924700286498221360969003615530536405286076621848318866041485358982355038177014042074837999036626610112982515220860404637623081440811853118917936794410109960924536790542455912564656666674992729843632512555470649071738543603443540724659820915736956270332061357545956802969741726226040903573735579257651331274656650012023452211858818578538301193713116196532167926908467980275801144706726796857249641074583351203026176980431071028780451876266092959120872238966384466575387387163567635291606106581374329318687456255389221211013575806062349168267557724059735525673660047343934165561797344697774365948276118967096867072302304470447408951400792280392274821664074268236876294835692164399232642502861651019628560338316942935264163736334046416036788496179016945414728326511848619874893693240134642228453428775052954265282537142260577491144989772116328162648261785675423289012336333988866927692728302658858855485499930547023222602504788774202060178919702096975474643892651718035777472155245591096771065866652285082233149844995460118488640075220853510167408951715981725597970027643732032548392708302750765233656496492960394588772983619926688318176750009819573422424534386038029868778051924456658824719235785555358704635909988596293964853935638311744509368089816959545890974029177875166304685665836544074702069843424917183848782972829371495503371294936916430944980820363403950721163980767764207890229655816700516518358758583110851845435622440172725089021922358011925867765743299787686875593503930849631391899249225819653910134651538004915213686047837791626037987085713895068214763853581497847174576963257540507096724066171106459372785456841779008859543869041323043480542197009986102377868234354508857398819704153454948665404549789515576864521491047378969258778292197384032933357897225730287171522808250112984768941278406864823076870144312106488724878791776910895097463644313860680883492352307747011308938040399770683951536025313819556068808295119247551061721327006143341762979357717755103951564802368856219984150488455285193678482108971786502068423540118791951748369762178985644751502208651361027562744406802808123633128204595750865239557694518430214476407508471124805632070251729872521262499666412881349853197004948430142667342441753698065762919244944925177962256541881855263661341215215863998183102771393095714747409828560154885809126154744804973217243642240174015511600596744170262036114399047968401945901689523394272745723798463940956349855359456754222172129413298384485007889283379618252964117812688618273011466028870780242025955190724273660840318171456471533854629171215587901577858698403720382873274571259488123411258715976207018909948030776719596885868559248448699518786868485943245027211024096311888600616788918391021449574357052098497746651227296108127467779065309018485100030005396358023536432918739011773445059711363093568646483093819789103773963069834326968972670491994196200219424844405411250970755234157328199311717811615876609791035021080150371570922510183240569029070419384344659663204895910285393243308602600588970460752241900148582296880904004575375633906009165277581492877191908593190924806776624659821932273699155573163554089330900153406647121659673381364452728278759215032678166042878092475243685638006438727010673781331642393832611542270622082796896863780128369061536324054534505862567483917346267062571057782797500674359450242174014595283052970116683166532699620178970152206737414312493888114086844541616172731410884735825839814330382468351165180134284633933133285166859880382047045737742611553764447723199399360597439808257305984563437061875326338580886607372783160629286840633337860324863743977532975085683023856674185395714761521112706161919561763656220875315879538730990192835620564353314554202133267535692252350923982991512765260846429432173716894440492005215940479437110209276416748471833577369147217828075967409017852810082467292538261990551493275526659009475986859921157097672501871289017980199968382085586512431203890533334136133490913250617032834164895554354148472889226230922947618930869190722956880796724451495173285071395253645779614852832038019274378195565940721021340244786139429060347913395096622109796048361911869670963933890936817263002965256540594267027798799461550690346992408939412613044676418224078549052000677625682624529430441806576360756926158233703170105577267877065918417253481492185332827191629807135233734318431218429517198666497047196562064875364979412457860793951273073976432087165684042082606322055263284152059828949640954066551405911363628353469096699900455768023612673584226044242818211016808762755304288492856446136769536824211918503449713582652166748095483006456056854021954317129416317494784165954164534742593988500255437279061634550383603946587013041393411255712551697539601851188640938927477001003535914764829442285664318345066606750195385363628075387796190582693481396629682414713945060005914709450071066934574158456978964621374168128975486874721817654320781679389512500547928731467406129034770927339044167288521724649011259999904421450899272299660531911108031564365373480636194450819238409184171247842478264582954718186316526496518330111691174178459183818804665484823791100310205247359458517801270755248813614882034253708945584353694491804955665802693383772567659628808446105802584084491754618012967877841316012262088342471423973470763985201150711626434895587156228976634881060102796144366251778491634902461781061829750207010291333933495699492649196599248302852146866369006703472897548774358710159984623893450604412056838169640102082062645147923222318931122795216064052641046898834832555747422122659838582365179943754057616982424068965033137999695463171303537259754669136537068882806225888405050411837870764022237483406732024283196334824509089829767105405330875199493716425718561421366765743381837189061857182105330275253445524029049242123021307859872779106656401388568357016700772024403031078855319860532271449654919868379855297836116254210758398800545615799376202056113141290772569787786619803334772678325726642279224593710589951337474911751560942417193582762198747724908328954148168126883961703839261711873744234405586697523354419884824526639040230147399168091610421581179414301860901815542927358217730406102256827893829651396967358551008923030021741542167711913565539666376908660630045399346803112873050731041570782492852039288139902712742775149969893795022606072739150527493182178380505412859387385669488875122270894454308381182168098904295438442402726104502700656334625237194822695939356530027255600465191823628466050231982506899894162541339129322363897618205722653080742894344701747217357612290975783616265335872608267820771185705011353251802222285505778620884453454573653207026052885717712115845794524681764600493858142393258203527488335789482823372578588532497432175988343323591309434491023534147007291198192387102607483573727878991871341793895202622204310586720753537271290910783467637998536319390980929988984510293941438218892137308468840861234695129681214742136606943522523150572667708388024625216422278377663616492767625335184901990961524719234477335683604213158284754939182032550640955332128403509517269417434158965266086031678981968823331031064253445037079730489496288843698046637345197561498106437381054373580328699314129689451803039195584301927381133224869323574763589087916514457967610315449626459215241656838366031274205972553721738602484157637219367727847385381729338691729568603488821337072967946827043455587081874002665946010865172130217438970765084451405983870375836502043967422139697653977591307960780696736037643555196023851980431370097620164484902350782387605492542102729409468984522323727983950170564780193997739776243675219600185659738397147243345958035371786030697588786735739121432508433618224582381387224886010905601166460836317713772154425536061676246731124934243220272957904421462277927965998912475431859168408547587987242151938706957797284703868768032423408424649098824502642569963597991327930814375392998367825706461857551054453202155456056806109421984888665310451189727296727361873842350741752798597438918639487679059173381857867920026771295032057732208464677728175394243332651083686503998125406721890548660893925109796433776049492843712640379076169725985820499075523376900275448053825536663777229598796902912834376824188229098634361237485865084260658652744338060478041653899165771445925560287911512236953595302376151491599425606361602928839110357916154313396945081676765361923439250181847272929078979364209333555580225483205400690121851059209234559809700385558215348339301415704476386030174970471162302938544782962379774958894214088574144203174451155483124720306903927319499068770357643025696567700473364537195291323537638387676778870783768343881500518891581710016097143115368833861308554793238902269346273925777196760707027749307831415484815316015414780474763617364204069919744181050700222197851783155253175479431791947133987023827554802157420917320826561161970289573124293052252562696453218270374621124572167722606212704083406460466483776130500327154431341785935643013021565536147000104796991242918028729596556271361188825439439147781399506752687526580741711958358158061855762172380729738116388096764545148166336634014726856025933370659145870884103296085207542319118387870554635295127267124705616347717609364980418864586912296219097687996573916486561504205422816683311895387312449835147974202729357026951090458912134298240756364253992595820918210854993218088766176454938242041937579403927749419264474394749970952669167544475720982852841189462081123857876170128219084855368101369661614365056750600201358653437047077032720999374270783499298482940136787817912196903703213688106082548154993654571278988079236677029399241598386103021983902450926898695085739279370128186266674293170868174379241027426582758073040665879948739199638401516515698330021736332132677927959963019298643608840798560078535787501442311434966445717501704452448051533874979769792087255020127823436092081353225432016173530976635164842370228083173232542329495263397587639695177938765902736867548290240325562769258907718362468443126510958185267652910073235598673379843542774154364529947844587789695472374284554141231215435149474191718753921755653638096309032823437267447402817214836670659533649387518926446453252699377109395193948292766992572498681787197874631378328728147887898089855794834154775000867314306067052077755188321723486919074246750498778011180157957958445836165591775839299028481085221726960292799961366344315839435015067537576901981964091464107588695792116073694217275005866435225147425121021262337234539568674927701705087304421652941099968731154295892521558377535903281448368984489924923203905339544373923496286719326978492995563838836954282522304647631621702151866738103478223360053444463728536679924840902435050781938010895983462802417884938068204736177569630451920614463216824498994512297867418560758358585921647174633287976522706420365983615296631514251081666446986283949035335520056732890872078591209293397285746991961005826501910442402089654257031946969619932842603494566472379357237594293470662855748782842005025225077268171632474644270650016218806200647362620544805397402964853685385485733572209170089273078266538671200856263932008331151706012380618656944422759240799375323790283650304682935496690540408524465006462722035505421088113253365411901554274164765296044221977281956903388887462816777189908874687176695072851461741492399086615551843518807891279105645408817792757604038826950311556140764339304666099194620270514716941901464392928392535983231002602504437110961141809142430276557036591703268130588975566650926425834341559126516047598793830486074481846905270738492733409228342546930570085191191395765989795418265044469315889225966569587909429503295132374894669496105942407429070302403827546978409872724727070413947203617082051614431459504098369661499321590711077182635685066532542664946816166672812312356264233325572172471910889087008531705660241404286070946200983624626005093867705434001328930166596716181448506269948125836698630518533159022810666236916149071896581731874387998668920767090805339105753578818640963646918953724037393997629600770683212092276758410671178174524181915092594010232482650989251797020651307250451992786507630034244421693815054027208276977692472714324902833140637411670260649132622700426906483790156960778897451817332148410243351506057578166451663077726437641353488918984961781384046498037236823175265583897570586199992929657665243658415777152092112412802333409412590022190235044455660688111428392824304766611073496963189252208497021707291902876860963448406219040900366254594595733496268152691131552638382666845183519154762669730768921617545080136311977314369128479774436022902842509093332941580207010463516730336141881241659142209581224077418698723383772851461202079884548930949307480190574402293519522800926936740741808652020696054020010290558500248733210997244945310897279481673666433894162044598497336456929323070017913960502039484364267812301710391587494707162094023077629391489253398857373333053991249743896362836838070500562366753625719940863030076233132222311184333473136865914315617715924149000995582852787809865450333874016449401661122468333209779543528503145495129079758155269598326825908939405338096495154506535465243354100706679205062649198327658763585145358165693904836384908865876715840056529586079940964612084166440551888763034040238787746175677960011827672218831485749135597594078701254477125061431918893737709263125792661473764051899604621392814211030094566628705415240925652609121049807696851145830647472538059869133277920200079965180465258170712258155898790796453800838996760447812671675623189598567516159147381973207822538530423851135162184438696860851607846057352623945058652689473365497016921190905563233530208566969977856069116286450540430701215424935040620561830041241422701356299442380422010188840440369745163191606216729911937961742701101912610111798693251714790878054750923357976751186373847815325854386488153654095204182531558106348789068945028286283784941436338647936352204015838490544447655993995806884854991856416572166182551854406223731394480537286005786483583046914602643170445750934973835013760852693475534925702844714477046610783883792470762477364406069224574155299139631741152709374401675345634247217509300756024585147239918698066264724996820607855665993404704443941441508163102396752524033250033055669445164676549921136070729958497950114726440719509281730692230894423938745742943988594864094459120793089734339728037390268118355151170905944856427088912060327543844378223502669260531665489189533389146936415120348686277290004463869540948015791673383615402526163398153434947788021482425438607803275332804361588552206164100598152614804190971711620208859670631430990072697713458071773844160974371204896582139375480815900480711105253806473568071440958571898900683333675844943530116869046003009964999895838364980592076000349747855468510026784214697374214806910781321580885396308718149032303552154458747701306443661033945807526054456087219243284493037027211870424809490216711402068581663908112144779396991627040638329821420980802763445192611865615858903755546529705551544722552432294077440626566022354358592770467046794506006882955752126468441648611597403940600970518218948527280063172704790642404468966221064287721725725731969954856382119503134761440576724426932459932318836768984286473112116979474567301485105240583760625828020905421276337501678493673542578483803337051535541201627508901326697170253196979850371103567148285351003015013183177034569372815042037600790010255092300795850169609182816670878799498649931710231401412430526224886955344349862880636115893802879685074489861261654371047571582259218562270785834096973031157986436858640557325945164958814526794050881320456981925178549486896796658059928638596345773794203841214202351692649779616397685657535145109594292100250798671444834671201384053814865457038051617341099466896200214218556675515926107568673029061326348540792139492835961273536592458036073156131086527350780734524050647848949954293246829100110066688246609557651612175366726383623301654594052289291539523300119660222762532210962757021136523840206862202755980202729060571638461918170612521998573907484498561382588491830367931712492727239714382608302924782674936088900890899781887411526659722462509181693331018793009222452342488744567474116983598864574584929738217192040246291213561072322523718529127545732631776092344173949623688489062473057103450796083673744390797367651537180776879672454235971422471019875502302067627491258328510618003169202430547480772181372336087677639500095300797482234300532995096299328394233951719157648532889734192376166357029363170417237042986927776803418185478835007546457343689620091209380417674425354959399860764189821265527232779198964585145390978663890207885566924555865689124466832280840236348108800943772918153994472891091729817059065800349636892142530796034124030501221048373097813685168591653607695596658611646116836655630443744757737567402069649027204502080034965707168739019998949011577066310573757886452272342643647799144140270119036181989686399292564945634638668183804344556721336342000959937046867030849222231188350297571461068622615118413081027382708004826378758935242106945868417922744474910419745040668264866875202982313159352167558496090643716871920418401790511566590713985090147723222062466388383292497279133727201383336035596076755422284615536897198659363042922231612375393118482913220298226661152703914671102621851734156680344395345529772893106544830331428098697440617112337464999623223557709802216183570403996687438392306471572706415563297233641624831834575549482578109831989115536301663440948336236622813669847700555524951338546694470181447103132382509511889324480530939863810221883066997179037620033927963022284151790143018338699984790835465952448224168064088231522046800944028450460246266799210327846782373899054523811898810234167475034737146253391236180574499074268957766262772361914415338850032663264984848101132481828061795860274000080129553977432710198960914893617856816772065850134165775723674460292159677132329267348632554076694628734784214135490534872052401113940535294724094634637814198792767139623999806919517576483634639907658009422459677827110298956066400237864291156055485222406400882295856213786337247673585890020030817471223718020798106184450038441940370741311901232725797332503490058659191270754988092449284750934035346153699043559550773151117754016537849696822399553034725866289795826028550141131552551855112829741879150128544356869391989385633784168203428445170007031673763676052473767702898429031292761390658713991324290912881777890023423233134548102689077773652235154315388842259894061783966101689119702464870578884128093346955266529071570749342668120286116804317730305714046396464138736016130128356294017649281985143097900570299501728463191610692121715396122005980916994462370650888161898836001118391367715159495950792153971949933439071490911353702595609869055107010886468607957323706932879721211486892822617296166100667040696025820131699569635309431076081169819308365845304577139142234099857295800532521859926190360499010845029800088502732381664212907748720754331042019277907782408646159263236051756127677845543872028056052473925871931800881645014193224773471341358760097346889219346699389408087101337948347406588136721585889105902519463091480091996539965979894744590628778165564485531508889737844771839882708839949162572492895354128208868360609821420314446985752028764936237872078526883422829385410692129486227813884192054399238807686609799634869793373137037081501790211325551332074885775793062442352399589318814256025578460267573578579901625097318344588664667362120085474919276677376968527675694677077399626685175822079324357279352142785031911572768382473911733772991097058819967616381888168465526948300797442310306451755346812159282502820543392012216035350685036664404839722365715997388091161741178336480464083955538213189187057049118456219737342971137366329867314745134604191236337381762989120139800014310108815741063965192665291212437154017325604998205744786669940379506055027552460967897355831225301864961033783658631708090145705885560108146469421803225171038341291460865454025733323180818787314310943361797361716533439901799390147162850674435654113337005903573482970185529142318503737747761100962434221559817705823035050377791979695825246031020096281654733884190979598724582657005973992422339563342578867636816816037979739888196209155529089644109400246361270240292797176364059082786842622729943177376739944571678988911624033369542924917736075351358071960917334380555018609091712821440077410924008662765741156123793217874879751399091615833712035597774478706638749189597180437936880859237877631389480679931962019984794269833943803125012043512720983475131385826764032074364098887688770868691771243888408747182761835281811868398190026730865336326380577431400918150705272124013269415354141985715488516759607620657500175780470768043601239642077753756088392504608419352675530268187961372755608078298760261062701204660254932584183964155286057689695584635348570077775440257036738245368498253951402546362683902701089320152971098149491030658138670031221215604235042205270238896998926251843776982865010228558054404056769307288479397781606042186076475615133212872540767127181634403837831349206039546117969301241777469458227079570567464936425932376705767736358947165982329407599308878878364998234283201935225378423837239852851111932410611845166470581907742377807749162312837042705342815489380185888384015415342801265213133018370691907581910405345293516662636550362882655598230755365236819543428286250186187423186478996066371146768087273940016202998984481187780280881253751576942762148510702518269349488883451245272329753624171014703490558209898035733294086303568184479862916814353364161513656301346427584706300287318697250367183985850969728124303491739014508212682806310761972881355805256502735959785667620016795174749918797578249253526912334760876167561847781124745825349898628156105880096782276044050561276074473878747357840672711713908307845528239980721390417592275174197014633977756613475482894065618489781233453133604146947539381791745635439397580425737125881574594506184081865933738476018046419421959582006607129586390881770927248559287672469145872324838790602531066748615812564635667334483622297225894024279898226850486658365167926743890112765731533329841815162437978383639380909386282272035556700686352241189854921999369013481786768675789339502149892143810991670957268060057558531503176996517746756141925256391518898746567128009279784451012215873353164843389875571817133605001854566538106875185665100543819028270810279644740656166544150344946380743909731654562446811956154282455196247697740950614332906116815617336239542767949990619694926290568569996544612085609032093194538055712832015913857650241138222935199351701004168322293328277143122867073165887956432039387503135927459028733445916658143951328255338464847879045803122882466800215876679392249061599286563971373861888194675042805490985366807524045074958401637780413092428066200700120403182609552266556401704941141501045646167441071006760300025548938684290209649375008183530523999965683670050015661100959471819419807169359335669262008823010887184688036675047753751998765411308849458252819773264038910076475564553959869551431421962602540202999845684515353241128777438676982613890107687367608429539957892209576774919287408911325878036716285863515395285110922000116087413269612112034378756510225081918220879938337718095259621556488387201925314328275828455433128512476804640902853732284344696992541040837759364221148348915666741786700889305936092812299516410887641353336092669422678404215705299349452127130307771353584546564054234403040776412222191767980704420102895091006125896905251758090557484584015927276173947348587577279068475086374248664652381830818587575360924430948942393812254268832317640943075757156840481285457737404275312153854338712396192716932476146815662273904037815949456956036329412992552226630314001733252822721462929091584939234090256621094182444142679787592230414546404656179168256604171366049096167304087270268829220169143218316754473302519294801088315233607401367929915255923504701396332081299173679759877748779343187910138682117353084700007855919096988830855958432531411056139919007558421929177949870085088901940870405277569640131151714596944357830154159975899361174222667124960667165808991150481895536067119731909002683334970871965093483918959374787685409738999870410183284288349021018486341500791696220863124446598540418075949975606048567610829295911013338866128787243914846406206274583369931770636917063773668526282499266271300256152977937625687642902611805772879231872642852680845297423089180161299247524654553861039759816049173877296659291350882771656121435917312250529759030829537489162816621349442152258573704831611538327515592397627121353844274443151413050096653167723675196962334156127317021371865127440982895354492956639099625326958330699968198075051840244811423322389523219410986105268850836144264023669520107197001600258810550118632892268136269679478046758236440762826964259378002347085242805660586367084623413449369777800506789691235772153062294352337032857111954107163826816226763185066128252361817699733986272265463219983707503897883008142270512003629751351402912433600428495059732016790487523800699778855072338545057853441515349872096436569978739967989462017760830966446579730651451497527643806255856937172508794096527333996501974215543119058460841089387658915005847940953167861394317872024379584448783156232728124447025650981641494341826677365390179599503444050266711492234973536430901471681074306104502214987831804932376529499789568588178407709717441861419903538873202550243470675137031870181493740837713587919014973538601434604459479226341580280558102012871767404345747801213895523956802877829219285161232228759340170909245628079449908543069504323778123369587381565656326814000221912791412447284673587710978201951654824538555427105994987658749269317266432341953986285518217379979066861296348583381961902783365053608031978552844637913657717629704201631383467643232761818544256956850180427296311965906215777072788792787625606168301011875584770383125163644950037992414337148342184839967065158624084792207809874290336267652000638669775981442734900229267050419134896393930811474288956982933919482746599026123712528242072828152074854622134008651127750652028529892430598884910428802113424702775781546230118560876565581446189690244011536709375246057830566695358891396124560197837506189509515181207770272240326710803890757272740630688203089707234126172997451979259880357359091833718672278470316543343527181400778186076908055199407096635970829048281930297283242494173900579865172020842127449096077562283149431780648117215040528189769997509447966488900076989443837686015144894889237858755156133513579552208318566146662146837742092017429291372646219576904389513254498967899170394310386812960587162283728764344810985788333661057213009983695450751948602117629957035745887705378704402545699330589417756126390025782088063999538749654948433573154090833425626310314325497400509638142501691644332829155078441566497486561692990182311799174462327979522139950186105221443048179556286604949955093455344861104654334092824408989498808206053781513757755241982222881195887737254994107942407871487280915847363230404054239410704454886731724190049178556327202598950093827131355572527132046925093857535489030220824395612457140883314468726898076219521981542351057590529353414886075255278393266890401345463807462804157731066425119645984830403192416036234996621017048480230636547072699124102292799639020165058651293987836669887346677885003217191756801426153142329551056272365335797880765567643302753735079223730800460450244182650648193077668301888096928736889361721224787177984963794742564534104373763181621530456865915414177963281005902178022181463413607098620888539901674552854265089557740249803280158589869891984588652415002177384588686132886463245306065540271524558239886967177929292593327329433530260055379167999656937143991816676022394108290148582376072467604179277898825238928821357459683874549695097500468332360220554146634168793862362441630854629352571580821325953081986599935321860078654995580442643854065237160048521223653298672795264138902418771555617290216336664905499274539154535181927621108205621405573777439386441633778534483489673513412183051195850914658926805608410912205039509724579667539901878349527654669973125136403848789657318141650680366562643729271753642818777184052819180210897896710163724349970039839482016882986685895338714533899884325532011703755996882899865615504778457334139327712444072367021835182764334643699991779366673964883227622738758168504208868051073491668171063301632549630269463938740165460432840965913191603646973568826029361083283226281313270998603503754409410315504786757484433594562968599102705172025430448209361461754284516705017668366564692161705657007481076001145899725323307830093833898508895253057867284355900854109589968384731164638912138625230314825927219428967698693862817826595148918758844328619544387579185610936285127895444544052140129760276058695583920550201883467377501744658119000501134984931967419575007866292382031578025563080541182062724346032615183907567873662412419858562538480836528976854713505969901388779218447303919288080895891708839553792085018631473870996168458627656135793645842927820107970869510730617945339335519794741784784679785105096941403389345284285096525533419247229487672740699785673229664087905718724469742392381848119494423518845220629952836766559955727364466340051285653042564374456739583714210290415029722659919371255181815058494999372828457079183832700280076594189067682731528713731300684750630104959492252540292398231615477062061249101501588996514621881168462279713930891814120848786294070021203434904800193420780170069411898882715920518632843817521117547922914734600405704738148498562286522888552919537377632850979262903256788527316272015114196180014840005559856973665756342684713391372246377864261255627966174474066664176671798504483001292471610529395449142999049522806493946028873445911781135204250303527930123278808637344702800138962333159608298755776220011827182829988716288172969679200298215546967883565217149235611935499008296311291866583701471984042705654529500315343578286563484108984740590368196580812642615833543459554208941917494039288952293156188202314472873624218095723237673681943163285884200071499089332348388125661399692802756426532260162253344287405991029096381812627006199334821639788243369459124682929989837717879811004448806351357264714386314187262302868406679903647861970791345358753961642108725783375498322180254552262547568075481290860539326392110966194702531975040486064751786160686012072809405916320676621696831489754293226982493714131048746569403334261556335665316162976061676251039440696983975730580710888766471126691500645605092279961468562148630708997379208074060623115803946256294416006612675166892980711120424442721467941477003332396779283341962705307496162300550182044257317816235701516595127507215764623871458563351150781967692882773687358391594088536030190132266304983146366498470282540081201909663658604932307114491693299818090108436622413715170611005360165537498253619892459771192797738608758705165216564021586367332254137073827076807033248049999460311671147354597749969802471061032896423777940208096017287194644968432477821303628862622301790341125072135159350854461872189170581953567781504212272495558770652557641146404111956780498700160834512960475454740431507326498724233008903219729658727091829695527290520383325045212829916195548313364178420070974511208848374572304932628708191642879131566769557534643317808507807575175525999060486881679824750305345550174859502879852107375863485183033369299951393708979661196778067138084502550577589550170019939225255842543089391652462617795342958541731133649447580769317716442812700609960183424100969106282239531776244859202073734560742481433918939528782063464569506712993106972819731454140097901881222492437000043225942481688495011056839305043028905031044710372620103145567388596615276207880744953537656405498474208736053581314663014505248762940050948884162430598425143447115675043140744665136299636779351224031729230390577028886200627497847207760945623654070816342631096850342729261499285535114914900745909751491311340907121822927488330394805117624164356021727825837641180983684515624073355708401594180023178802299970104287596071933928140261778398264319610066247644582381271161309610201769965291482998076646050194116528538848032876352518611094790226358702105378475683564342999302373432951739602697151470658278174209958475242196390801018486101661096900300718787522774178637575132604244068751140582834156807212268154041112642263699596125187738621211374836611404911145026648798813079313787246929568411756937298864410744279169513384600793834261216001019345262158224742329942039739900270189984543000663255211236544236088805151074809240317511272714272877383739497170003482567564831001479224420814365432002661250478107548006988580060506898538853878525178827663687079906709095916450311534928426721470571686755770683210959646139969230195901895934175436747562157112822968007491632390457193856174499972641622088593137989000607072453028336614178810146598122931712492225143885141924704299989824856212619150022313066307323055106323443206644193167812680030285783075632886256014559296205749869575858205016968440125482472930402465150483441295719278496595461801758967075437392378102308704027584257827015096520201965538372077074498654754627361850246612108045441572169063123186859406137111330559489776571646789834817589315903105830232867608911376142817108097643180599665989433175384566591378156167392062215160517409843154866937246802292508441652686347576906160675005902950663832071806208862339443271405409736653256846976820619854215844269082852591257518506145746747024949329199046831648142172986676673110562838732628719869330242087496264945403689937458939441973932251081566965146005603597643930550576768901942042841112721252063227951137269591496663630246636184967500023288909525344059216001592212683685197615320160986448295154720289812847778696694592305021183551219446410449584415985697984414799014260967911420174325335893848686050622468524734285943736914050887679213763893413974302796171904010838285347981395414486216102557835222342800878872528244124249785217500108053131751325403580154264706592608515039243894278338256554058830638934179860771681031030082621613066017296507077073483890396439711234004906356801442156092020011017241192812487338736255448079978239559924944738154437561299938513040414680507136265198345562930480914196140421532591743902191458377002543047068431997012433714664092045605608867481191688016762894439287677420121971390017474103125219990756570357994262539208268883686894180210860063747832736949128278643770006527212074148056838278664285280706745517137426182118203398637729493256518174491627353101770932656259078709675478474809277624034138507764041564454475571946795338482532377416432954907564441097084751527575027435096691188871721863949567873662708649476880082877624399448235974456984457703003412817498872407636926095387532711010961384274903268842768709225410408123442663502710014293122072968246711212309158717156105185151882428951731624981708789024274704448330791384414252329721884869009530616204873495722931407198898688264166169389680624298853213486048332288509576375582124855036382084788157725024149288758239290431663815899530699498908840108855855041201937158245554329198307852282500290704737429400980101877868660140560238223715291839092664043097205074885325253054370232803103378755478523758785271212498474431946915810199437243026080268112711948790046616879379449111877246601453146814592518916391124258812977021226045038195834469961867633483244963682340292069991680451713110377569364202842979643443451563756545433623306753785080536549283989125619431446271152221461562452303662187551569113220503906009581251361932226566325709780318084659053282036428917901676435076449295556858379584445613136762483139470158652015144540415180012499624036090269172798313303057617755250721496837546708657549531258277688863537606289353269856255590054655573349191663913660752119222765413793661591133622375053716323616222278089177218663384569544120178487895819328701297270304113411769797937562000312653014587823282659805664473932123259455930399720285086630602840662693475067965699909570917983628665589829006104667018947643394837007034129960553207031204846150051415180686593981551211708530361881071159390351465509521930861584914180430135010573930591633195918846452147591412748864448910076989898160057432980329893546737362591451906972519344547254033952893056921050251865854141670227170555508730310745953977667301880428640007103675309001997155752144903777098608323889754945058138686157718937594434279174195095447575909872138682368421419157572987756026009805564486740116292658304383094062646873640136226379765155438116606376336564710392648293413671258809176150199085574859881332038647777341808433422578621075823065399166848819070269242777975744467423728504876862935576966347316223039946211833501668634277987048959944321908392948280362571158061603740038149868518922649505165208255601240151981812688503962452518120038224451302799486276874927696868317657011639515691678623573047207703168864810807324316435847118484633383405745247882567508492617423099448436420093322603230806965301388209478371942160894764744534845794140444813090605434624886309632444521363063667835167577130064822670040419161113354513960184999885723141379709316413065227299248288943468974041728386443477923998524479076978384633819917476757731109805755821715401918715737614902680763963774516209898257626692538120151297612396696428539581851877321528032525521414721390667993944706901817669470030756329943127897540175755772790579519789436359665824018358535371187565745535988444307294120369344080546371959769970864448480506729596517379934043988111124978946027839306602597566737110111808689459666411922681423558918998964203332491062221505136317208059365439376544802043861707477604286940084349106519629529725117292294092448018395240847461750060579381011398752663818724941239332514933284057802734976665113452570744774019836250879520942997855926480598901942014928942562632552794032954945436684198229931649690124587695761436811969777950162377845518010058896025687200439592898688607980281257989150854685863972170007674002090512519328757794799303133684141340094632521155396534950318529173503879688759232842712910378781520923472411998235558391903559021513044974924888122121979778270691163101796636528094449249454310934551344773590616512311814367775954949625237236720261341113226040989041856373747717269472397526560739767941040900796297381833993850411699188544916372350572676697247879251904901309588796972500145501942711266658663943079803988612804965658070214778268143422023816547325698879035568525039237314774592736448406824375353540593883251804866564943918993075886628320896410990271293202747520527956361166437815280205585324956518170276129390911102056312244244344597440622851474276113488522501496536464922533560500719949040400629302588766763425581361170116971513224239482115913507661731122944911365947882971211043734646748438251914735764921324338358031426940892328698822414804794325512044477664883110083415490764125938495315842651099251984021010541223805762237183285773471884263169739109126068381141265397973437517934263046973736559689624865510552465990847506706103281906238078819943712201468420509684136914876910936811456535471437632747125309300965221220130058020583178573854159578369757924916970865809355447670961119082401287292202153375323495371359250378322696608504002033133412457699487798071859268220167237872543794091679899438925845891942447341157925098544640653291521937194351654209377407533499371348751276397250425814578084980755574896858599852191322064003952940555356494074622430079408921045293705531109185788326087407995021641439893097509004284160791057645536061357986491123733327065495672021163549977453183425073244875874987675832367006766899434817758699725471640674708826068323323864007284604122606436455758199919988446706240954471626074142494906036448603899184932593390446886156919494781944963404188833889399807280840971746576812604416564904290173114249166568761608077544516726764932466538272299055260050033934275891567150060147010709790436850038985438133157456957545657676798950920099378890880032377872451449146390268019419182873607766617940695043150554260000435955230985164771698529942772366674500937634989439491768141184356428240443085408642345854014103665678571138274447554259705099182553024501157531371660125868579373237033028461757772270716058711464633866748625702877403345967059730248249708376827328563608719415885098917698507066885815255517454053032991481145548333192867140741515781061935816054084584609538461118370939870829486047620937299264810871866090974050249718137362146934938480322241279440784218129814495886582024187440163394922308087930389747918300941496922677319671985238658574744491775800376372652901072199575049623296966901042339411002519725983915257929195463329683249146516947494428205725086566634261203947758381854591220624676137267594471592139833785371993053537107725935184326652797671958094956526565464604920679027727894840206355416739594991221636567191796793699816730902882829034265824011732904420067330363585952179694342523383784517348449089319118040989996206717310243265087506063793311798461113280126588848968318791270909153993073173205423505901391451038827078583759429957184184086632760399736017285305230861203639968177940763821014868878818122691890009525005378780560906577506991540467094183693367422119785088098151718763662744031390828500979638192232483385410373626269967215759370684055425341441438758145900489912835771274852750482018323027841361138978896784040036883947056401906441059413908102810268606272129132101327882148821972557888424427697608892121693774157347651698538455534926482752805455198205412669807309159912667894680734664029459196392209389653101071578935733199165049778567143861945503499753040971921847973558352526723981032913788054277301409852747909060657388314624502259273459592692969770337220911679638097113915422565779725517181174839627522765982882441002803011921569512330035143211058951014783060456647418354305839108792530941103168020912278095971494926520210374699966870500261737662016092606333893990737436192351057660864300961578589296329593057457059759552392191300103419897490259050360169962335398878537132564439708023743674765754113307909295533664809306424937396027141466185357667984876854539098854587915811161352219466946156324137715600329123515834836818333822592262895007508706588453504308103375097155318114631034009932192517473333060702317850029663178932379991537686481189169940584362329310073283969804346706848327022366389525264291175723234581549471228772157039176369345133044356584481784915514951565749044726049702157467580134102036417632277553824038965455147996131339320798162433473206228225741284233533180706278023571685014933205767258773629126535699534436759263770582835361276370663523313235841093826686964565227208900542675067183856830621018457632515252906512174884119773562864836085976955332627989956612788203818661952094101496149339458332627026788072602415586153319769016732925738212558342734261922654479877111117243023939009896956197490015932387637084968837758085112112526040422542220973347038960313175834724703527280944856682979130382511835342877750416183760908100067981452316088680046921784604649119943085717160152088620669972740426029703242388341318628472091508230717989994688294393120676782983857932465268895991386159585308609028549797552824041688533829813965372444384031671625498852376022387126996604731771979624990476810569803429529289486466451018963058994325550711521206745010530912007372158506661658087503321314701210589548980008175274159505481513871535013013899963442886202596963761068667373445041737929408216895920512020089088100925351457868522320522830692129094451999749569992045083870989782576335211701486440605597979976592764130145579753707447617340964044436045286024390678859618115612131276541327223523808766816636469209428499569557230999685793140001549621882587761787837826513389713497886228619455626192318998020710559269280270145885480302466583618275786819299218071706661638462393498809016861849353467275708848893632959479381801530395228687359118763013605832261638544612759955849215267223243319407179482066470492152795534330230265120530698348618434750185725367102693714648263656697880453264339571088595910439464853923946013365702303122424777945012404120342643777366805320617107172740615840300372313917889812744155087891870283411643454706461168442899574481527609517393464318634835800821224474169551374614367241522971570268091770407596021155132605123871148311927118803781696068554619555329801010296185246439015903630391240447360221222030423924668200017179196234739980671191858675151942845738589747372659040140760719032968282562934470277932287430428328790071993296182970805341057233854537722582968283806754155977575695963882189912871926283971176958966950537078375809526924259058593606799729530005614006987769139162908970833945314116339763713884549774249191967944592864821852219257569209509090218629143309894494432102552066140423873015771514870405837877282687304588660319280427657001466941570036465314709251774340226290765181907890245645320303010845623209277037537594118834229211042393266255163464068440031315819618606219633482178774396800011116874881098366626527736239562511552677037651177830585340361088140299538989739917401023644462057417173762866276894219352589271194151014296844328357627573594795469382779778920519781134367832351307469363315862436295058004999489905707972458578007221681250313964884174962228644281509604307849765733910004788189621885560884457512874727762615223348656183884832802596452881372901163456216665338516846633080369618485716669285302984924136040390714362345498276634785502447239078663634796354601907381597565509633918515713477196681593776483770525502290923628769042471282139309728071064080575682483666778021597826120127621063370638683957438148028923795473571804157133435742394738369712055003955861998710975201137566620184164568709343412255211418973258821048560400118223587634461687144177254024521279047593730498909425830523215281116677561800345109657325026570224480672589664467959860821904408765937206083618689743150517706954071122974616235689376183724375582000637849612260504476963264201805415036012325183216356029177913932351558919523462153060978704987383257838375559949492105182343725806867858862999299396184712595624909951607867866843348549602345737980443393409737986275019878545715483770460999905394391723894041063940959133478754450433964318396297340700058371379901414597507189489875532000604319380797442048435715500707042299172284865454552349589634576002983596217641167579907307189793586790550554694752580784053914837559779480866128330264206938130965107014324103938832306903428263722061562794797364788562397586007983471493362376606057859681292433891926085897581403432398131531406545952831943194344942534584902597990391631285236579541541085007984890307885116676810949286742479921417627799237878215741545292358753182790715849330594074739581079326320801245102617129378122458872616325935820446228836511572318657955500348057527943849889764679068072330214898250587395635843454441674945857957068093807648006552385734107182104148537862190092450647833182076061372515931698622424763556074419317065046259658014089691981978976451521517032486585017084519975846131239576604574958593984819343768982166711828818220635483518788691907270325566608119030489537921016403800397705116654705717803839065945586010739640995573001697050569736691911452889747649904162070154116243005097056603015727666686990435530284122934906238277330156231528263372323947447589154887388301590172628053944191488741304742883241451626728369659970334291848083033642608736237068829168424006812266305560987845520946569236213296016202558504474070292722716494759160444567559192114752431262988289293135182680971255628816322555962502904828133887722149743458569678377103535965777953137504629670736999443570587286292011320088339252447419407921615271541421940825306290199599583084228271230198086979761371678001284288824034925601695620251426743293785185096620011271978537424763269189830583116836436869687446743526577927795373783877672190990862893606703257906347400155048205101840872864973389851814608572993597351146846534435276984776269490904430776196095991730110567075947552659246552473490347027968129282191870661762447448908153457842730531744219197156640541439721589315094551939707420828756288773392333330114848458075935176204452120197314305121848908296857799779758003093801940393532513348917938409778172921646531705890859017343287181094533990780813765292827493422328255901814920756031456382636784187841109625157695857015193955987968058210693655095430857160177683979662292493593308138040267262585314410083375663982639507542883654818856306748249799428888128928425241514208146432889381744568770288894272878188904531512896096069272964074752624392795021480396518669119444037721712363701014079530528185347083100080610337080408461546805107358895042648398817897144676121924597422804565340519669588082683589641448364031037806463243861851326785426122883182181911801138193793543758365208526470911868318413460740463495119174428582427140443863219226823938235074200806681958970314215828556966342415739473408489113428730575696196190965438519505599312461905667602090891407311377419886815167333219165058917949142478089331664566289077511212857217151047316400089895817090029903354441395394365234973836190324441813643113485861408514346762535136538217933487813370393546904298212094023428933424126122428130170272114901647748029056808641754551261588556022824086045611587094529773597133515897545178883204274616047877199074379578415995554404297217889598468941209050776843920442229296402617280726299208483440229891615010868944268563946000223599047077425610073806176560227671911264340869846676477286599240448798849556434266223539121426261402389998866951594263341325829782274856483298725683270099626066765712413874321767105422316733350045073167990195801335186810108182248170149262542434194196464522225659554041670463639506154935973986970346479777157301502636891575457803020230311127943590284976346740941308117812407301001833441100116196267946652814114243350481820445492683609638382960007571055655114833422758582218764381455463060310997390477176759876786709241896465407099579221218995992308614304893642370658760020393916220909961193204965508971675469338854489945605898693273742198784543337746817315180149267234501175589271030667006372160565487465184356258143263325275017765237017790675333834637410573816202153131814883816326894969085541758054188462456881599480189754742949960546304963393044242150002193919918015745265008467795071549490790189798133008020131648684984509928733640546483513706627485810874598525376436569380751934025700176875164244721861532071559919907213573679352269416641552099976271095848686327246583404877095235713764504514143990128242836319697363043041282586043197464923169173465431910791542761523959075224828023129871244363983268813390866143299842474249942255526999835003524498894184806084287050540735108232404685553713776329946952367414241437205091011242404761743426850590851312198153302192048934069766926805382232513709653749574012662989413974989605846907871620505134771694621754091983194914866722608292641841552719044229001165578802561722228378804829915193350652445324573375396951362296482076027804819335677578614653660644273637292030117973330110045944843689187335548747939997130170549260609524778163560766993971903754055959078022489740190659023061097532378290025314110061418449138043748833595029028293622951578468360581890770986213446879352434374890258395423227399042524653115535826857842822490862120923023487231392566014825808091589183267343857463267381965252119651025445992934957915662264368282334040422462379835966995175561236587240516339770574210937474543267145422476870061196875201561118634430115441103378485035400442233497349764713116270421845317478503093573005135471073583868004810580169108327091167892510617886068686081122034377935958990036696354886015633892839719672743204081043599867042860581792916394878818554852911623328056513959964763699989161116892704338198346978173336054189333704128457994301465786618345533503992001058864739955262499266296279775596671031235259220874817008363818502156028055680571109110794999428311241282688666308080425657585743584781365243640326978921711186529073984967460350068850344303300617676195869129733168612980742393179219268506657594408290025525954103636718831702280181233773917380426151228902130604419027239466414983459271358801185277948745592104071507508218499345421090666246350335679427536827182282506797192923140121944622777832354447861815235955221272536041214904300764833150871322064146358065872931196534666212041454284898811639330528148010365204959688095263305929278755722528810757445569147708763582385704131030334919238265612846191327857724406342880514058056749933812769787820391889346108305102277611198489601876077801010304736508355460143571224447578125396011038368941422230355809966496145356206497729491934448849296688997936440454933832959141587430455295661499721321184715279559202859928522729652859332204658151661862173512461481366461925518402990025682468199763267851072780347199931119331946526945319822831580088250322830561717082544389852592363618910581308823331554085737784411009016071816959073614509197481625760853573830188949952624495140432178189898634644781682483655948568964044090832198119403493411336728960717710660102499198359209347544892855251161727115853605258128377218208687176885517962178291063206636074915213079320680261255486709964279663057815268410859318530868482425322832043985571509727038344265928641966042873441095077488213364866230169693392760684568224526800689983610210350880256244844659732791759240766268088350155289863905667669790273506925740065575016681188314996160312157433143222043574859586492824829527151851947111951299642557003101591517705756833301249692832896032951840263815708258727838776164868555766082079515101233663021880854364329916171243596677835816748355765572512366892360873596260755094502916926188084178596975758223808494527476998107647847878675005707944396980058963390415441527412846462824848193973636147993246002521004024761295846662666712100631022280988268726324350234293346755963135798655106258169271075921382467045667232923491159748966794185996520323520896577150435092255529143900643736704850397923660899862701971369077546563592352709834172523292381055891833037656655792725520792262321343679448885695301766755997662470219339197365732428130579355056907737625150336395692097902759705537477525918211128979825653082996827338386351249231427852487186155305469520516560220314070790526091612395719492930485728241054549641826634494810194792199815158274739927137787100467484529124737698845474083396625965583541853378033781297917715838041372903740905171081663118447018903051401138896365552720773313257821821324951411094264778849504665163080336045751513510679405819193390147911747456972637980707500192549647083772410268280393104481333684827996689509633588374130097712036151793696904547744464524598941285819607304436637564232336761261861324988178744019953591258332861936535550384598544011162053279909004803412965631883977774570193716187053834838886061110169161989144155857938301561362374457776144045478247102318907004544684562160871853766403113763489754622683515236819577840561146501353671393064733902944619752717149768121139060626888315933382563509523884623320431458129821597454307820759376932956645837816032529784259549391323799273861834155623281662550497786694444758053180813241764205940813683303837863976679846041760560770663478760025173602459503307613750352874647675990443277220958772870888302045887430413916664439916030601705011840506062818547083141311781154573445807765895954150674424028206972183214736797762525554517540472497341410279508483970737226068473580070665655302868863327589553487709008059908881624728046607354710573177165926967230514687658224016461783201284206741107292350570929154569883578505425691074610586121889402754653708743095766411011983379089339893250153344110593940869407645597613770667798242322473932677377744339020866391456255695990269537284751194710150299972262639482568874459217450843769783926624806281361485967657340698051222120382119585044265209115641529927678548764896403596869947639759899932079637547424925365856732068525348611382582435934849224154526955926723007733478703471055506486828423608951934385718980447154383764692612417380996399515987789897186347529038768961507132174132994698093273031754823891497378318931424776152561722316034006603403657986368655869780016640933533956470998452308016010515933612755251163327385032335174235861676826184184539789456373391193186792813852747689901039361269911185057419312968824500349054691206391492653458690665013604819217484042983497767403839129112140562845585805293298686303175852278700238805199867362904502703625166868668751763641793905133390270656474931868709910637117025866629343146476108062806611443453016445689921430535693346849708593237832619264632224334418629858050305244567787618460075201273980950293715973517462109759401280144626277332186180975306343530424103749516536847466931032117218238777649145282714683418400808418012142342311084032053337287400372272414272699082039328693852612875036521956119450994707239547310953861758699651832663875037533155271655705538880220113524530593464324108956195095770876959212011066898647236211980808384151843412688631774012192288505942901187515771457468317197432232161910341498224695535373382911654488297704233269697864310849992518004364952379242413499387974761138765415216662088977617153288206825052658686493491055322210800971785292240978842723177347672490127818788265435517674787186766792882347652169207377882143414036945929677418501774913854475462793700017281257857188358989266027424416567106205434236096123048290565955703132027908695101598894534316221432666144207496727455759273585923562971371649993643833823038096649800596287792687701282541561476618841084118438933458727085389368175713495756728287168814795603398854023825970689125691971383803720680090692893633555653601404090518581006865843379125632137183461487354146031032188644687285295819527839793347122854106630139141240137341278436719505260039610634394870120215872130311100001711156012213070364221278137181905716510432456691123809464242897004654001306711583936269501393084849533001212257723315359689015917784963472219615157940654906460399344158951289333889845571177356837040990607859772214785832303138386239272067074166110622094010585103313542477417605681355701470135149099684566157757916896306110802277197972436534360279980302100099253140782678511059821982061052560022162828782614937284059794839018474365138767805449079474932285684868541286483000572904541547998709848158787397807529164429648673922213580986540826531750985799448222775585187875328015379494675738594769512797334743673807338238969943097822260046392723900173725405833931472378305797178462851129090343489405106358829018789108923333562477509021210115238534978428622383767288851560966511315098082011724308329997902170209136421738450207395123173980806905713165725769242980247751816100167351788272679969451619600166545415896324591430754409141413059717454719893417298733064425718969870685388271829191902469259798263385612000472416846308190744893817044555206853231958096662583126020680786773340182976331166781655604883011606249198346600787337946563779668227337925370318348932382781478288304031414314487375991325726831908997071252696546990087989564371415129795041935763793306294191346090705578240793434223717776361205394164334437858860470260430279308706762318920444717091691135541679453166722225476275850123125731159895946523143135367325252399467775519698520234592602770398832949853796157523677645242181864592991505767668206906055584823978568141575594698619334760257992377625276620727983627970078052144735306490320860113730988276551777815189400726966135254851978739157872716329606329075212642154828715143653157738601762255382986010103809762778689517548557997533504572039620608941208195533552416342221221378828733434220930172154024050832709554218121009907523909385444843678714290568779753886346181610679094363058161204570268464990874088173472171366322485872354264067957361808092646350890293625605919474869797543185902890359473833648701198590752658265827618244222659941167194713619393735494554483329389364866446090766471229011435622257948244629181095559383741837602093197431008306172509319133448770303217465977385963310388406144369566786026133096859680094440474405227342931671799173985762773748330243716592283732138989605139327830997767614900104116200096296672327336679508721347702573208523017138292660433029198447119845316150708734624715438413816051773333531114496718484619093901905065318142993653992928276950925977527536108685051675256808498773482933237488497139552014913541744140729745768250105017025264506645763779313016146721903875703978439809080129667543352227013033564385265946742250372981523176731853825172228511003684460180136840233274553719319385012239511537630258714906301608212989433525607441352079304092855717259689927866640779510973100426652820168108530920055691112316561672654394625103156237929248330110735630232788811199983610677334721159577813544760457083153570724887308057032965544059116581063596291459005020532179742988653766881053697294895767083245964716006861800564804930582823714462130660489388946788300148956488795774161852345678585055494744717247199520075885123532390430769667121454165706760828993939171172705833476683455984760759828928293728955370589838406744785987202485840336633610811853112644648297566815974952524414694235678597256646140836675463498017468651668080214456407181367162681222200989537319902658736838558990064813785693622424987918600822770356921943818839242499821678728572611436582971029006310237861469776695715955739145104806007054933661342665511271762453742498902144769680712027756439728520867339979400421990063167253133395236185606094590398877468919705331324856450651502336938882057823055419772874835992869820832075756061671093154848985349007993790249387914730169748160718854649877152191619866209667453878665148463340705472238937214790115092950101618694508749585300754848426540215688374942084185557379100496508014141284960814926524352653951894308286470101810025052437898160043844100503976418475320997962573466839285186090905203503766422489001473752670934190903905608129911847867135143352312919101037055660999348637791450962210826427014976830400370457170387144129106641287002198914672787627907343233196931015424957679024618528990263393113166353359361108277697442188273269154763558629050595659496205770931842890761928014499178228788936314195866286991628904329475233698250777128312376821118619037082758767369608340762915882106461354040061488126184354696949262385941160810212283216056656042983561540996043633243421479056120776464625388355603722908857441023082661382539701547196714571579891021606130093753045836854399848866934991860313000854525222470155620503380651760105721650861711234326347927420717965207880175024773559346929419353253040953218223189546270701438467035400639454945164687396782496251607511204830902476793710169839390514229139421958900543336442071660303501913770167517248296390048718624110831526318122248569790591429901916680273871576492480781801047837404665781115052939224170791635235754948974187652205626923113150055673510188265689792645357640474326192260198429962210010441974501193264780647906173777823461227789967210482535971029856868651672226259645674090261079457392623675472795962475237664542658213595142837086553901303789452335152891810830877185710768123589975173853720041910145250752410041536504631535576250193209912727031156462567350812137633193218926403446168666475971207681006726616697546576380157376046559846723864198367029657798401363497910568851654988035597903636079524478352785254433134651656529213678214714021561023388437181455807895696445067356372553376301968654649371501087089001045184938001770994666204330888513968167961707938039540903504292660469620581894251518072524072366900796018528821679092950754556774003296315019114490588612436138590457321951548142965082112699736182702567724149847650439632023851381789007135163920936329610503338411401722771055880885816773249181440838280445989543975610633469182770285462276653581752200608302731217928669776815912510361966253057674686739192575161680784018474446216458700175316630937750076621840439605242451119689428024799200505109288927143274263694247084437052227752630116287214909673964832738640817808499917893410357450129516509843477379348827418755865084862554889505997050195046159544895956200652692529200759590929493514956708273959149576127692103653101930760873179440776797199871770628194562570986940650560423002376648898972470677175092041701767138867693496694200989640591008301620900089969034609456091830374961117496961823058820221657059771387250682184810258744239239599423327051661695166924024822515111014189783815332164433297657750575239442343029304525764559282821375012604693654624061349304051915082403281600533392648087660735612385526800461491764520412234404002524815232289344062789682905207591079623912618811132195586455593042543071265031871653581882194169759536055229257247980104841046552736939563718663967986617181533844355667679276961827147308715709634012982028022692632802582231976347945290514912343123173171383682545753747335732689425229975284535188332243484519504542264654257402619904911076077460741887911333548967571012600674117745059000151677229032661394418392206441594710994131908472738338176195693970200760386964844569309167211891601574789475432797611567332069816354048434061713229934329262915841830623172863179113608317127390471062995093540526651542703461401433669963693464684699806358952496862696397830182071986153905340394594580835641196096336397626733142385055628816355566421956812220964076923851660678089705112160460355109820961398575653959558124226561294063404825404935625782024729092549467709086664382231603677857140105597223894560233772006718119131437125707532180365408573174962564433369165121339504208749473089435589813267784065030457703800969074926300365338315933130701202165544513016846328973581721710977715010204617949299605561973141145958274406324514594530742118413085158623515092348553527345786426594563671161501214090303303532813411257065979692539994606021133796072104404720710542084998272896648630706649551350319499065667867874804575213342481313013657928654072272933965087324860794888771179519994773088434427631344398706722515324415229390871260517022097404854568270250721120882342472999149504438597985761980423321669781796545090862931584245471337416380983382737639007251596607683747240223477115578063662183322737075049493391914796001543450441535010460458338722086553170183903599408901151420564306467703693428543901245879488739690878421540055180829698933176594254761602566286006466227351394715463651728292931658388512868424301643671455647928764121310413581853142433200738547988927542795580665070143708384938001069055062178461287216424874108106121396990766760142457715686090432600194125097354227230024211410496856857014632355924959440673880165960646720896027417467774481826876266073146649824882758820968263555278894985453300550459253781040488249471648098287281678287131675113616539669547155260682404032888438424620879269501192120546458879529613578578341958458022220523259437116840728846610555551675910457835154251179021383482497528310666291283430055648035457943560174633323430661034575973815154077859228957256072114250253200973040033378058592791496875748589394419819847627620357291701793375031049681850900241094879679524988185607708554318232298256939633723094221355595254479062787066134231430211003555103869421963992509398324058084068085806892017570754214296686855263809960207301576404435764222082892112581034463524127332392660002114383035391143247140996546118537106799189868249867361860692909506125105830713484032534157016824455193165200711336301757305724460258465326134032941943840019213545794379779295360148545343207317653179281814843297802954966655606828354316873758310712223062435768912776145513230480659119461278843260262644829635944328029787150015644677909996821157859233905240017124093804896367899312099535144070762956357912065865429166864659789480159303214082184932559221530707884464387661257650746370845264757199422202478388255179421915017460936353366236040768291530289400368958177112370690801022986935870382909537031060018473032291131368777366417957787425636145750470072432163170864489497297307135393159591844666306094145515494067378903704894787583302174361251855645144053102955705914500205896697325804316756828181211072917554725662326617499006994579449349903196143318441070876749935696309322986022560023081916180933247624665650920818323402455123431706572349156237259236111174839846100508285924136446462881067266829008512974089807680078596466879128670080115459794761441418677936085014476318358794583101380625202023929001030387944414341140855107473280456906252108489850152617759421097906087534550835134192006390750555256614866549316242859726067991493039554499166088461997737818279129782180638248089097289172620949505226882869670956207099220184455498684228790899596658349570901210514398319881276516080690766999151646844980796058220288132471390812593233108748064072632283546515711842048629260655881188852790535481887874682666164597014199260736516413332450153962683962862483452823345852936493751213459446923279831271945352327566545341343937007061610552680816907105026854859171856836345205818915603531649412032922686033622524378484012567248540530713036409336393005242075074001619537561268598607365589753208340985334170751946716070728125123007676510593448840388746520381610760452435837380631335251394775417920423880237667564966647351744781181416328899318964075451838285255658832767756158440215212009196924702574481833837296619948525430450897374974853672441785873077528962064668734513538208943170281612321945238141141490358974050958765210501563853628471182846089873598123916932714251896117622347797399713187542016138300296017886971543473066315302379335871731199730113089024010174105506561267141090688495656147705308522183140822031812309533932065134444918679767562695698137590016839192528175261833864007902251982475064988970166130780512238421644974390053330520588205020251858903537151607524824274920266893096340839077036096182135351787665337188411383875333358979750441436026598849428227489051730181255089386681270684929478336102570606203923893514983422913511568553736656425674315533983090727102701874343915749942829833877874168074137154118805106421904712774981882806433633948871785547847174903756781305045311573927536590950545622634401467857886781235733545316723167378375958891641886483890508610267844730197724023754528581634998694949339266264851986502809012096494982520715414370126211429108443255102747289604841853822664760097957585948523909240657531396694671071638093178803800216195373008012586997661193226416279296558472000334598916364090817551456928698831487328828429156324962576183702135695111152496703271124173669433109809772157105822928461473411189657573565871981570944250195364728478212856415610640898926244092106062666559394016847386282932721451860423697395744787547961100334252375368826152493425953811988277278914050106812909394302779485332854121240384456660992086107115163894038421829057963153917051694449275500439169326425364812287918619179993124379022567409265474323199205388354235860711966786447251890982282164973109176223764840623108240608287153655684277788310919605464558694377079299537514649890565542693945070800729328179232988387173443145141787273135391644573403337401562892770700592531716336147250731061865694284184978299908384018882387673366745177802016921999642692578448483549547796348758832759453793367784347913008320738202385477640148436492528155621200315567723608167882463851256823520724024385689753495421919083065898832303503677825870781658385159722653148850087976386143153547074354197787505160859167876334555100136503376892084365586446519134214809273673352293848210690056880418175984093238823020050151166490122532405429479138818263227417236722905099731183363733740319110147777851494526649149835365057918039399212448531801725646961587490709893869341528617544430430274572620571544834399787829673751783865174226584277260831071231712350813532555712224035302118377340379524464401546372249385634343348936342164880206510890449037289550117048673815279572033618013788218052334076888414227770441785052546662626227325888707778551951524116250698441197390585419590118666341195834753296462515990072845826004650419479258496080864403737487070429619843443380572222162252618214484585330776774281536402906644758643657535821409488220754902986868791793294566253126706196995042061811456854686181894474301203370208303534780307156226589461093110974349451036389574987928691407551461327947331682469900428265441401146871976554463277614661047034523609161314016380170481624362164827383078450668450009725832566755238513824641050624985516254023469407537491101215856814853480163750239117582467395469885955750414452705723959233740449647325085025994721740939230540227216890439378584910433157431981884709156594597887653464796449913705777833375725055718953121610079251715354050717610867920182469278873318346872378344097972570329673808929707316788222929379037185776219780273801438921905016839252218730759349063661522557112985404473332637596450447302090339840289971124696788483861523899031033725161574113076115458219644299798716680406577213137592730431787969130636258520952079100801396457449317278215512357979622951181090765794629067190968706690717514630732955617665527086071670143941897930570750466302117094112408591844938600458052230501068070772504145165046753739866892997103346639937308868454038565138645848534542236322116817858533683633971673153688580556630867214489946809005392692779169611684229302989469825050318060495750057134096259219219283714365414267834343216231664689151631909051776343128912755347859594472391788863043889602690255604519108341241555697685043066270125211328175315523770931240369487222884166618491785335150338810865900825927726547908204750417159126683259396095218812465708115417218013490860563462107962047280160879461196150532883844019614078300046919010289638425670518376242951431799939989896251559642874949744645214938296994803844317751466766797829831590671065438152079614069680375700145466400508563062667569486020873234766851857722029082416746888486208781768565120431006677846713393625998379217022240462117064965814756019978661440059746514729781082541855931245507974669409801543601341659090008835248445500928465086176922155987187470743866292943739109604525537423627961641849489062931332344648872379232604372043458956248225387595068194415502628145872988198931047647822215343139392343943253806091711114908103155589240763161210476319710455449568856279654997417114392135664403680530578732105047599107734195656705225197512006089742620017388032264766222557193809120683539492806918116355125761044902742447258121340960105370736346150662171505469426443589083787226342392681571667226360794177770628703513073301851202737571964612399120923171231394846132167838101952854575546216291013692037178982322742177454314309444143355142944260357296589959590901817107850626501797063313778706837538970605763644402128695916773459922621748434466807230849912278269341023924591733997826871542007732411348987414070050009169211534597916461399559053223836535751625886635786277025011099723281477135093540166953712689165321825842863277334312212995679760339714861586452107629382938508057404031723628755003977469121738816350366385286282038528179214475196960675479874387171220207582334705989066521983041738813903032758322804718126997272403082343231740220843926951724864626235145034462161412981278229127952429669595982809228915955598165714127783235883631361653422204869537247215425752823152760837027526708769048843222072034586743168586149546761074081873006458564195555940161770742639207304922059198785534896099367337163947111107803451866826364748757672824186051436897212475276164191393366647037293705000041680045457704663204524493595592841583623759089214326845803768054318090819643673244614684514534367383971322927845268845195535036096356931587973924324708814602321666567367866917028059967023503525180324254702530778180743914086153472390795766508999338125430707832953253729872466290747546288742173649634285982071479693928589852174736536741841915444629528955284555174321390027755145887122479915991295772075215024197482985488362189840046045048714982160359275191531151718267048646487344899036946866377140340391840723198739517937488990880190077832556620680274118973182434102577790896349583156133759394597793185802030813785795590155168967108260102981370626064256774034066753865981190892810829613053628799848435673007992933618780169908636217160115811392455223718677740088569331304661163715609508602128593773642797115112813769985083115483441699336282971394080271652311241852274101419669686929426570346026824211933305549122008153942198152018201015100251361421332479506709442941005418022693842793448370765793628964007556089709356843123827794247157305905211592181295935712355770980895241956620765506529210070040515740273515462857669607949581070513270943338772898126050743854813378546677537136776725892138706229392211179956541636636198414904365002598200046308602410343499370182320943254857585696634236887640577815215187579712348962092495250378834229154722481021194943863412730789476647708536649155406551902780655688398073453976754789402721715253534687795742169222529120264393764997167178406570965990510352717927665980571011133079640774394940994205290794741564910247291631000540519315448545177130181375687451038510970321774547222531586168096133214941464388605708722582897972516722690566298128226921013464255193457723982834686883815765744467539858076424965096291458827793442908225387951689433300601712128170130825324347157491475657701299641894177569587672132002428871680931329331199963079338630011240472553207494555307308871157033616147115435459025510129104294442581787155135649757407654741238069641126955628187665100414440427034825864124155990925028509854633847550121655491114641560430514582730977834174212750374165574537918259163524578198997599376181691048006378742125551549814830227191899361950096716319300557652177576494986771996890183656784139996143478137994495485749812471481693361136218743833418691200060634195265827017674071565273724732817917696002585668952563338831848231046693667867409893381673531967064317470959281528251540139292241469121310518467473266179251333112533013437963635419237670100107681916187256972950981384535908341078519541765344548770260848712136921424655778567078046960140191504581397130636296463456713617555489527960855789641515028751711437340483716707344339896630545638069022868421792188170740502402187607861355149949750547856633185160567438203353265018775489347068229032184454997030049260834494696347010115829777944757916394974783191425100482436745703687220442361161117961494616687827778847090384230936036500503713916129228626874576341063514376370941496124625119185113648583083632156145848901947204476107400854665443051962278337426949508575436022141305340834177933629852179946789165340841662127858812200867943140606581352040017425664203719428135510401293111509613146033624983712148909681550524158219663169655221101084430542688305707226662615476299730340048675252935441083369530730401429143777071333860402410910594285652450708238002775784052359179334179244722002126116505604788268162121193938314869620379217255858693138369237359365195992120520191876815135212614240362622173843750867576180841168066451597223729673458055634400320326927251639567522334916854362251630049225731508248421632234941506743042912813824512109761822939359788490159719538384299468607938583283008485169807993068786833084815415808069195056295716117380121816119111121874536208723915315337274100826865113744562345942021217197202808162501592358634478766875984169786260623237031298191731650469443847054942149546450830198650296758724983243509316469299801020653882262298692731629954367924709718994457226140029605670564042234391234975688167787229350596101044428396286831746143093355150777252169157827704759720563969493261462648479983277364210973957091767194354266255818836672054956944172322333101793984650957924521966770649923662400866639739566155745602197004961491033631648501174539447504428480163133065294631854709252820054475716613356527656019696020947603913369527450614994452054326296327961489190200489834163963611703598427849709564548502543338003423588583092557175274908242763368330569268236802255336619566873043085109112995811659884476169537508103531117025664584138651554918196686977392810327752966092311053068461439809150493695726449894261582337781316688501167757305347963391952557894683770394733414975827439011805836197340469345755387442603482363816316841415206564158123636169693298800873510175418593767523245008878348033212374752819900495606600077477626363721354970144350908138765734919633261896912613712677907451082251051186837476776898374386834078593836658715906377080657797635782114604602986259367108523144120971224403412494640909101517030175811814505852657354982686738043665774785752061753395856487341746186908671148697211443333809525136152625814943178045486727308843854769317481815742936476439055075498141520278953627330572337184843140250272238483104247956063905325057065288402511985929694576318572905574716220973555612621643898135636307475640317411014344584816593507577897175091758551433821150586394529554154794572253358843814364879540796892227609382417787552707512354647294521829536895881531462601796264313539397684090021554286795330629980854247863341231557730620915664922092715957083834964210271450866714135435862272880347923830157963831841350470710728768198781717436181905201947557384885836665755345680888326028082727493550465024987487344134520686324824016731668293414608534016794893827243362522925501060057331469983602458897515329461245505283778226562060923794771933422089754589743178015859528349503752706881757484377257166453419347181386539737616125395570325454430628244845035727193270811169149808308969227047064020879711584669629313045013463364456719805345634110836114262330969478689966426384464736375154862075380735349397666774690381103755880485325944059944305821647481579585409233609888565131019077544528964984811684960313933192893928774591701836426887125728179115688163905750592460839034189274575550985132795555109161542015730779177114614913265593299065811015473659293459258141482609667246345779473867165288943047579105260513186001728736755716680091687155117040761140093716803469581226288424337629930941201352823170225630001210000972989781345725568118706914732160769356836096023004423448896160988505933857814335047058729628989653931082791843985951260260459662098438573995082301198660116100251631290607072472839828458681472142978988835233336305925434256179864023170118042347605708550498378868978967268964412613914816904136656276352630948834285329965775291008290532370895560515583354038914346275957806771952464863700149011632124934949366343932694621027107427729437272940717060610797211912912386279560765813838546222461200787994528031236022734060547931481481174296498196112855586582348182365100712014559357132720671340495319527705328064184303730481091632217978261327899345934416570442284633228945474112622261382031247724739914596552699327582161411111963707784747187930370366041474592202562177991909462368070175458521493943745247932864615139702094378263646782379318025032460720223840432815908514580022474636886443494000673354077153647335137426957477004401000504696550083428036415465461307671383411670337628123624246470181810961578773874149253005530842106087036277887418958871714799936442395446351116592871679123515033334871801013699148177237065261876908400179718091355836108753437229588477783449601216687271241039250593535403254514187124428000461102872022953818098656283983643460008204882053768022913773040148711433109180691356210179335186005674451783455456702182233646930028656771747499195635326140960306100774259052335444435579450550213655730882354947174463077192480084254057807083055417945341774204333401400560650280782592418837006677117055177654966353633074213295657087776745149851496507675515600382336232836577302977954924037830636180435800503806316685028637488226462285168823039654199562946656147703018895843966065484028905572413929482974366372233022691103826212650497374866667779808703801155826067491606279568128184623534122155920379260628535017228048527754398412535973608163896408398751701431172535428644981248760824275923397738185856708801908147201720335616739219332429409878387580010341275677979969707106086349524362509855675459346625783210016895107819972652737517604058889487586868030592323018548925466424461053870501370024444740230074886225908921963248136977994971373299281313653306681213610638123731680069505727539899800791593116888092234387401089118423205722109226988739057480794984894531983442564471835310080292003942088113321243183081142338574106365851637202878323731707711848007865204362966046062855464215899179371021325257076593038805081282977354074198334884409378359377885742987413388587820909268450357384103885231603249578047023113421245782519267036270758120496808583456123707098255066850108014120274063425847558135117412460518329747616729305482543804779149138738872417944067635464422651849757212819131421926720046606368216181983841505994924083754505878460954654097177289956024429355038790753568482317926831905125307812066111024296872493730298212381487464404421461756946899541530070831199008639964067553836226744598982615557327400230608875631451611468496809403885477355590205594252815854766617781674933416741513244189301418246350007250694320646070740571270857313176055620460103438130669366670521888851313392585704406316403168223795657246945543295479217661545995611211821624681754644857073964777443826845080866186593700454911820411657351579821446246131056849960546751661436693551882896027022456835273179367890398822233518615942382273513311051394159112320684289185170215595260958106015630451306951485075197753491489570690085351953162617196901400392748541030816566245214245668211296651142723533155634145398377517728950458758517184711062799012676984130707137643749317013276657887727520702995654382962614260749878557910778295329052252046776017672478089870993893895163664337657553623534955784782170601066237524816035896920507780210001093420889857154580126959837850020258799688427427317951186525520715426655738985782796377267767947905131229140367841528083386534498152247170670763688908678664799301472598913030227701062602259649501272952435693929893587785255184477369415618622943232736802919769991703298724738983614452477131778356128525099058132543583277339579647949128211272497093393337451600573609600516514811034300490077541154870530410653362906152960696089521782353145032234619512168146450330574371877343557126678767325481608689590673879753140382586323429789174887906840100198653773385814797044249074507995128436727745240005816799635709144024399121151173878919119890584331194818137301175820650398010690506776179490499837798300834700039071219956224291783021547902905249028468555274669402148658948827410445331486726900122498458031193183680598916190309619196172663177402944582060222144293946951899985939332103921918937771538124859562716289294265660218424320667262290073107365590456797297594420158314108151083326504247740242293237903209167492104896357211061802739318907821358636813829536812340243467439491138118415352105388815637548534363475509938151764163837832304670263320853912356838247709866639754297880479769909898483013960981503914401247864255290806174796576688963450571407104156069297829501491951974973905253541476046107620049894692591238227168331887489994580478724127495493204152860412705232326349013913159145274536205150407381987233599214748759381271896870508307930048563056626424114152327281646891156747703546025108753104884092270983613840076972920864313120396378759870508347907947163140537004052005636986634986426147214905490565042524212778299221947713733147390021246188640203424259527248823571457358001445881544920052942690692779797985329564279711483680361584023055650941212419818902185695705986434563273148352962903711989789182412249730018073739873698064396514291550925727938183374850577964126701711944507948244619358235952391201646202749055453491400037554335076287260766169116554684506290399115866175867939961301321437741029521225388964080954034663184399379099260917815002238269952390188740055425148927458804841889695216574678320480380451979105235027836561420830069759391841848072754470481658176147586177887105834332177452749688752110730475692151812549905732001674336034128131223562317930578700417505200124195467228373454180847855142646132106434537999852790270470553137834918954764577551661529443127320452573016323483776077004299079382730443781578868159399242472824420018167039825659923429808857346361560779869406722731424130694210705269221037807932536937784488341698414580784888193160028400056780104883420868079520734562885975309088919752450756786508812373331930245204750991632244363810900246350879828954262738318759621253706037821566960568150483624240400368743565472163134373130386449943667026904841799197984120881318743432316929041079922254722217148641953032286378274647575096071398935750048083826012214681086913380459321279616517241592494376597622017372448908896621342534968591222989236197679674059651710507227466148091669382100818630033649385291069292116278556903554568214448088279217936262574564504945450119565584279217299803395932724527713815813256900406099581895678975779599459078752212554808200733625167195178697018313613208495985842867000325498534073348319486008695849989935010273238148174182178517188082830312353292456710608395676139588213085204294932356655050438501781255169012086498984306557757940101909268206972931656644387623552840824534048980960999957154079107344960697364989696356609358061562156008400214399444627124101219293292888154106797872153394693965113029493495474906315080735093655264951461662393665813269493991475429724712167243483322955670949032144549003246131366387332752022392829703277331590943709410240238197100783004545033947533758702799664076124286552848322423372474676207860803705740793376058373424594194535843927830017191645972898236692006473443595004961665296655975069720029223005912649688972324098704963071935617213297108290030812231231811540562596824715963805099458301568627779650362714768300771990550594867559518151133355700752772758121374961637226834218617896243646560596893145657776285726718790127849388706867250391309309301525872169809648671016277473932058042759806646656490419697756807466550112310901458883862248705894763773615191638606560992150085195318125577569923990653280608002105129067375260809451227363554973634177960336764904031823042200503079743793631910042485432571590948183881077096229825647639430746639674442205269460724134859495255240680555710823811046365211301426586463171373136929998884293933876502389887717442558037047847447140772663172956276289223366848716836920799279801673871078684906284446373060254779540606978761502874525070206662638623272264953619009451604903783598999818137232152302287076778433298066417130711086820654892469649077049403452988830132214503712107382313705630505646021639436699448381031331015767161563412317436719030942541309294486329786938812772911033462908149702984564445435503323747695475183407033534901364064112612849768585189419937069159343770003686407729929776767646119408285517903898272980196513808357659073978577438619534405181952689725548002638593839169923667587471712434987149140080400844073702159039949719955927322857496345085946581396862284944434888446078028095848876744570866678369960540227113407783141987824562387624679223030059465934140976400281035716155608266439126049016337392942294313038036290577586932223371215273866537776313253878269606593353032103631190670084021928015676919408034474867537641023945722753692896599790709764382080085138795408501335078194700273200271997522053821820882362995443395314770665772485512145007669412596125705349948094849051072043780813309888630306326470279083093379493803570553313492635807183152950351701915679170945477189898351244020902675056545729431142392328879991391447838532811918155158351194285086361589503067818925011747068782375431907181732056929902872969721384317617086493102845887474707085729665006246317992323580535028783078203900197324149613696321346228719154116664741142213230209360829513148603975260528196810209283242036407703837457805845115225843304012507208788406558642296352571417599880155144580609851685632849921589113531190060861258390493523925906623700716257104157292880066986049984620729275587416109692540441650513710668837146722605034809075173139806598748521961977380666365627304526058838267542230542196785369411520425939675948622608958421352280381125208828893296819391119356064120601691480436294101405721091000702803758271601306814678136882568105737534241120474405725684920490108266475473276552120970085702076701552183040295615088073210344559693879367385236353918472895029642549342010536440591644486082063700157197883135461840883094324492191913508132726319781188159480834248294391496886383794203706519875615049841643425083081943867580651306153368124975508813177152030690041296182803639216612966106980507627518524988075276704010719923943132174608612229984882871938136749561006480535258690707920997105802521528825142328130846043379796860149221763136139081854322022715725741149530430962400250255840435291370018906604772571454440233501172305920004958908144735618372371136436564648176287888070553886384933032620236932787869221851105318365708678005396049131799588423254314852001468110823198909457793809121448454175237776090397578371659814484425954666490898228879027175694013259807409657560666358081435303565204185103609920164469023956320275289901920359603462654827862279488541283851592345157250742340018166469543211060334049549549492292828619964275620721465314199354172684265116013451672793498029002473601919989685255337128858552708858454272839902381598579327537223324510405854475265566200654701507458495544864013619811617813787634758363616748241419431118694111508957662810025715438243593656901708465907596486419526243889042772209862076187926190138926141433656033859931026359597396036218866037415551186654533583167307452500019761593698067202762503690231644366490605317101085278781833119637150178564582521595873193361634701368820939863879148009324846700178719154117067680831951217204921126652777666057825672586571361073637004640619478419097739557903011990093482473189844554265825355160983651290873712850096345643483021851809461190170870199703289628172259728382373850346860486457839921580459036205190732118251101671162561996285357310563335487862523478185775174372997343291141515729041823164938212935763577307658446966663478937251857432638084599928052903837316342048145282790623239222639928209677486204233994359241529261365162945067519174818298746991336238085255624845668650453669417547001749955215083296997788763029149790946320757230206832074123556645290625840717814309134237897533793472626665348825878780862990764229750002609057566689773567767577673667899505201652153206303618345255811684155140450688795645107996277998425778581972493936547969907966710996217912252698858874697601511166494657863210037713641715262681611915649478999549372288470332394424484618602526737877818800171486110003831316182701103670152661691537180737746218054650625192340699223271646652794425877466616152899073825287111109024578152559634638271881468509690337080622380031168881327908163022932284215768673183707159939423126675989536646643773631103756078458294869035639163740709655042095408366203285120809805094575585173931650834473973775053141785371996145353519211634817856226034910312442625695392397027023208823975331924209235735199723546662144049632236197625384778658648987936047107847731036925922682697991788480093034849005613524638172231230782404332644128419230336615457727535522395227297774612061771906261179374241578060699110915799292750877118709672238447434300363261308752526791381400040416263026474712772604799424272206229855548394950054192866924882086263800263743055859244763585574403964562869071031433307972852140214159815669742500821667895437386571311563908674682606772040956529326618802655291881116621693715190653160236637936448580610742895274848828272598315578252533147124566520255269491002100375606528069846041727729945521089260611229441116247977538788739793430452671684261277053868264693607211236476512101739498298421571997772912937680617323084322089958790211403582240580311434776274003184648401232895059482760214471539336610630210140227055666799761790742738051018921807811720149628413470486864685649767722557259207779880581783218610080463938647816041793032705886260530737239026865304281238660778570795715062190131282367378979781864696608450975914251938918291080314207059732838525625049259576053670048947748143290597427713120954978732327042826159171670246902264938890793191015145798569339071671536237444991643281260409635482442967824785688240364771184185530692014093401240294293377619862927843941879219458089817536466554582351943613412570338167091174686430233910175347120087623625163623776625975026914575106870427660889926968415308638292469365293595662934851280813615952944735050040910038660985766283938871191075466273601461619131755311488456600566086802945659404614981471660877572783290003793534943657005279302988159947946054492268334566741632754277965315358839309552429309670034661248327190620044257319998677818890136807578299578504575532607521967310031389856606500102694248286243351877363363284542697152521607756432436875269345460308664966826613770795146143756416181929546989307643023074272168760147421633950314559546569225110059443208288014647171165102461796944748852619401757864608174665069933253861011191772213654383170350963415243430443655820360477667403417117667548255063354490858894250720951816678441413184833413696470259142624904699259875312398402309442355869108924328402165478914850302974712470890588041078712947410930518997116693113046223228307737265068075319904095029016372796874977272121229226932678930396321711447227979613634826365701393623588517759644048509604406295147644732178257445146906145206503861726139609623359708918310151387584896283532044217725722041185184613364035722581777569631368211989047129237051905164397550419368814042419914325689948878206940086448247572865390561358003709701924065276184288384928449972484605639355092886126394790645835031307648716796383947930048386379440412256097837829785837764419106233040338566363883234687231427820520246434330900626374796252033133220488083379849173463562785030712130789925639888306396782583331896369255243711793978830376704979904285445122248257195460392251370584703781845409010820219123833005663044632585605456284356876973330645269081586198658838888726520556647219163956105890463785774904964186534245151468800748514751212129717058917420217520118431816677058053242752994443496019406018199544946206879036204718962473561714550347649357859671072728480212497270734521669987931006089150954173998191251568788092359016764204679234539730687774429145010921235674791227018285745390912906888068276152151268190120097233190510972101721104801062783499968574266721517959538538232005386457406527562137965999846013819759651223460870062636208973310644154448563812576604872987831919456877407602545576040322710789591089290596220600854972797443364715477545176249726543599661588115226645246770019066916489724282502695554939697578570513624766728680940599074817043992535955086268974010483437578011160309767940083811580616026997124518759287530234962882065498424228760077695403544536887408343145681009682152978230851664161707237658131782820854583512768318086654043128891998966618890294309132397572164611447187947035104410512044204369308324093395029196829301180568652806115385583366301626883436100568244137760542192687747804103875347101256013692135825711186275383882355529516537204603605490581380180963535850928502408101546029128014662093779911556787038944835075338474489221360426161805475535228400994428258829106722584014149844110767126355176068401377928391976652170618061150605256631577433709068836338204805214695074890389125035666186995852621617919397796989649313209605828447937611489554179630266685656913742569119453751095201029161469848267276086656784338310291547484971788784055256130566879123742676657675942057517188204780464413250982518530326852581973752670387434013287490671123804485874252274963443090736078955518886194842255324584854886538282745109622071286879635761414267603961882625158680333967764930149242734217781502597634404559525808282284568659974183994213513715769423378407933485180808881487475902970796569863361981916168336225427895753304417505951589775582709237026849920348646006984019436801561416195629375349418781704884191420614152585613032392217361060015973891232202226363866823907085384253129148601988972046272790297191638958085935612276976240529569117076618201966782046019079645518602995974506869398697484175653228550577138519572009181471453881039179324435215607249326808220819550207661036624177796010441622400643251092682706541204947962247897708874726323527296327840242762946151386582173912489064776960930680532540365765887250544605316311236103672754897524470681539918151817504502454446013966194598572286587088175896260941363842784474684776505016601881258111385023258754968197296664652621018935756360108136527632702941503008382217387905335173635647248731324464341327942977343095729532987263462466201317330496819757774176437792926698887664994708232937388096451514299848321485383342499175288834470377459531148351063774380158406882839002950450449949331838643292821279003451337085949077787193541508518180200042344167070327521265459809970937335210123128560965575549528915197427894525209751150000262122932237550095886610630001396014372972928967643541543557335457581313816249774415473704498398086327529642194657508083922547082028195853529240418466900836946858972186462560545479967374763560543908146283954473362282646893905311820264428191588168569897214239330624050051135106498467392546542217253660722976368788079563640454245053618849968266948905272721538587866890607284370466257342263135473864697327988914089621782542391461036869072862123734427489839633651164262067682677157129161466093168971750222383224771630904178265281769403321441757151362884015786182204809321184585035612506997516334930643819668762105065687955168295537553545859265948323829628494186005860438710192989174668833639738717787227922832372009186649285744984100244003279637017260260726334871973189440164007179850016680645241301778468188656953643172474948099695034130910514362451199911578790197180755876131146990811177037698385121181561419672318877896024455098157823224202416361946073872047455372663180931201064946425273470265404313128003729791549543316955335906800645008732273811065802945618207365097831965953748540356530062061215557070034682751829796689717135492195075665382884963493716114994813938923088232242636563282663924476719017039703734653908920360396874644248899052788913199509061508882204083332140162807146174875868196281452915797266249404238524120872395509314133789405430142738165277792624012719157427681192060053107638987220358705918298818053173013242236376981449912300276327714764065292417757841191732237570785745507972584500655746738166088334179296968115369935178366137650794261039248620303981032777190614074342631532012547159248710865062855328349458558923911524885790357673402932483023248226552125762036819731826469600392882045798419115871832768112934244972113678226563342154733882322293898661580961191728008647794170970441420166200505563795136434253287034444428138330210678066548718419645192252991588544855529275175551991382734975598523443493080943626966407044672150599921291765168666117381053353489488502633564813959185705910479729018818671975901187891536355399373364445882235924552667587482520030611780706885956239573221857870641521534066953887187030227754295868984047559728789463844752822196615074428181935819581994083210709399190228460601445845641007831734751542750613574892043149296355360927223581720883516580079355591454558752913025862715339151046803231666593378442161505017834188175122160547966516211959492551347895135927744766090428421551942689252361809314316060906114595524297813194327352641919640726269189595002098347251927398976115740075882728114025888328283599262166180670304816855790170027799868883021535912251528072750874458095746785672581992645689014286969612999991905914805200904529860029839549060855698240967097492106934806074466262857507926754399992714450133408896560176608742269102509744492541288115491667869961668670250963300023535009020834495808149106532114266796861288006127417105177287812370738564473488811562318164769512560974252531871290183537588680054774986658161729692307877975807815106011898264219990464577224326875857536378272487424894404786508399088580793654401569158391340438837143937855400573247720014102802374008346236614974337898011798639423583502415557036333715606187086785141565442056390255720013957993862870091132824397220636945206880700310473550761740300249643665241692695054817860399494573258018799554589749512481963210595061037433752318734551331715513918404818517112654218022086190949525034478762043922118852221644057996985216922356299477969384730529847902466849484418548816332836295904665826215271091556456856336832595315323890763307398790462234411499878086254682746476479614478909842128663371464163972344544687758291562119683244388004364429201059452589949343736285139682546366266049626954132595480220632078038065895772802847508457644583135983951592341497710752262807360562346040194924349761183448083777336273492413171757292463818894407340555143247298391537815061822614934847545526909894088937755355444767172926494535305361069894653889075409024980213911033989800619891598715544192539743642435215977142827361170915002715341662991941931850410643633399264074639724941373391700900972575433475415030358222553704387749555116031801928833003156381085131362813910515109156664582640671340582862096887255564756465136868551869879966402947226199722333462878228662583814687993234160912240542699500907738648783943989803692321768472755963904997831795817991055811556910087922696421915418940868958435318481047675955925335298220696152274769912062106438647919536546626676676534093411085582459359609082311377558167886055752653042925684166992326745478902515367195806142400064318844508994765285145259479065909954563398331653705099187259495286736588449561762317625834589405951814626906697089425680196358719403021763593585210411919311069952070956436239731127091140368849720194835092197471112696837632555033509881259922088313195658297266397612011415794092737613243693415119610470547936128000654885274467196236089476799793704756869750142210076993049273417251035799602885410955072101369652561177098237869520509993730813275534419112687024111433841358566008889409413359936119909975108690689110294375320944888376566150156455958758652388744267578459483650782955345784445806977649722277017379520986654375635077547150171566413909853524410327482091014657790041880843700105018277726677583177079557856732627908098658553014768231055277495107623014918100717012138376068398375926610806664281711221880195464309354894025698406640470586129427925274086386353143309133944027323989315657604674098232706648616541195693245468537881087785259757044158185331978143892376833098100538456133708319104912123851717656122124906644378572100996736643547013321162588428169229862909610443843483477799452941818812537892534796536971798138991805367737241174992432384351513796719861923729808725545457897489013637116601889248604166809202147317858761207144415995630337670296378051922655832546570573931904291224866993187584646300828545677836465011284647116640708120648182505940676443452040054535736473186992870044776639318071327354603247154855262588733170879342511023297214020232090055534716124531654349311749445901911611666932317870133327418168328142532923281797205745565055591342422037287585746976873551809063394340646137633537164124523297266941162296643012060818844688357650720822701734374008665481875801016931371971464018375528975778442810658370490085591151525482632847724140187743650153296553174952502677325882438289056928005349500660834472608916441724849818123894420570556449578687031983167503970833113660223942378309495286252228476830858763349604528157536036503820400759969124248760347730070847060201064784844381076440367304688867234099078937431430391867110990346969279557513585439959542568671392883289366289657747150043179445886088238741559205453799517384028275622269495754659454906717695152279788086967875137297975579282116431294667595535546045451172849892973191915509476325800885766306818442911609043430841625516991700736617510510608760468480527967146448242183610089194082000621529993890709204216663469523692660698012389054320038498977147893634867518389659071855541936970179560773999179182593042122967549039376392972560517262049368412745838038655171169050348761585890589819664094770305360798820320884703746936466542668492652608379470541412190649591477508308202882064445896239779183391364328182781231953807423319731112618141202179271987146729535438410413663696200000009402426332576917555604456995032235951716698427786774560517130681287361535227360881344310062582591809301304091275996521303094573517974264807102053566959004317409316021220041995066767705416624451024525514952083909738054536107660653862111721837333708733113423859885331502332388991822059713203110374557893685819542467197068413234504056495534867365021842759934889924549138021420420028105402321386589903231428313282528087134436244710949240935152138206571447196239479242682876591907295084123963767771066211907976769146353202378901897043701467275754169166520527860376212358287669041349991628567951918226268291947383823764766950835729191965246635120438570109442591167271454866604924475029139968964429727158638758670805927164934012888560706362190914231638658206118121910539012001805041140337421400137988482728773467108734268963756902355978818981891748875458275598954158377257558536199392253124515165118552451497543768034537073243220360920487282921485680979339183192401667692564823926831206977783846905633678310584363808784719210973215583044142578131799702838382965036398194750346425773304844649326533376479638680564093211607170457015127339707649847700307021762745905158466046145764487408892556726346153429374860855546217271614564752562180867655939965067894646680076784231412747725791381531524930675557756058329343534356379835304935598335048267111470670693131407182473889906624072027156921275878739984652717943371740327796011699736530448054011965184756333651951707556895808777609894936201884726078746735787564328805596522411797607240121951214183960689997306226452276130437211686544065317529207810697651742742510134631048211252989768397590165868806063321766866436971957867937246546434428175806748589109792963159041653167459625474892070384226828632152079176034467882444411955534128003615223413869015934064919202622665102469611478824960915052733173506375467935114848161194041975972481237085165073245037651435152286273297446907983117215847466181373181510478698602785244894993013904545585214351348295334705867915067211156709447303859704206431264546233528909354729380579440987838059713036963589809477449987673476106266238797990071010325595304528948625289424036325090991637736983539260011734382946606739079746162731560130354575747266935401950967428176399946064593015457804620157598420935459162289816422925074207654672392540610099835186498698852411212569951207221893113282858850903221745658605805917793812158222930570690578565076391783505576547365505545848697310874304522866231968271683213710167571395720249307603466601646392096675828135574818931931120396059458128432570964114244011783034274128976854266929855014918002927390943479593845660479327947756435387807253807841907035130262897158686443237989402899714218032903981193600911331162940073184932667308344037464620742253885341625198798750153456169840753697128172651532279813046886340650422186180896768529329247145932389928104462577910057337861857378616279409654478904376205673869636222180610466103076199852983393503927549548691659362630690326610260094641837100004664234333809530449069114496387387082061831968876402742448525746791082853729109276607027574127206769399794382386805681453904014196001080627450592467409411617452539253829034352289794669826862104945125224894005381388112574204997927202750879781392288828334766964082479484371871803820044618426183255436464778666829835855521533961094975659179291786467315964565853180639144452129546362891911687432230154684484959715850063196344887323597254864995329529806061243349373524934081943594931299862160947626942954962472006552865790838008541771609690128361024241072397390208808950047225457716345006809282473818857690452673276002157149121677622177454566971675747667497081438120879371737381722632988781025445361630898342125998040037263097962059669225803096008283678449945083499667905064455731190483408640313141253040163380167413086703445678644159529515118640788993576580176421075505784253917969110530645115979687297082721050410128323243571827933758182007245244674545592782162861059464690799720090312025943891102035326335997926149526577874497614357781689714191509947440520105630118131728691927442631149566796072837269870251663075168842036863005026971133755339291908018609836066238348729734178914453435622474102143867168165790820180125054126523981229773897292389401787184749762285246288892746595542256869152100655616106385390625440412267914627082914084333956783074103092988298044443481957495624153126972452399223953775654847697422762515449001572325850674351170671360038331599998302620157890475606617756329226071620824495069751801201451280444666381015966720461429587752401761215364304960531621514402389514954371632788572317422820231201325258080641010407347202043460555733365140948676510394503280535198489985076748925830052786493994264364308867928246258829140222747057019136943376381400983892278650971364875340623840058241093659822541030985304131764345987688899944325347596291906078276999342749919815789222062827152052594756098868934771366762460415608806446728483398576174750283986170673406767684183576780411253797565788042906076295977575952111504060007908528758259254503591449419707644021193879330586036656401858417389414276524550834685649888522694585860682906277766101356763651327564583038460261532117806928480787761930717153997001836437267669290679073361072363123900537869673261450985431638515935743353140943597037948877136532252890849641925931907505012332408747614314752820758619554660555119626910435223734106844193364031618572972033353454118208497257635921808600876469092942572539826892745448015610018056032819336263248381472909322516798415715332336599983385504902735531758770171598222194818618939819807290581671378567060386316616700185945196755733066237948116889031038252904773120403889786486355836773362880153153109655838163943225483793781684025512627201976518288939981037817858935806224319547084138703016734697950786010515863759017124228128341637849062841528073657042109988526107071436308056944726351669751878910788209793880666674670270501381247849320301989757730222755307527174464872732040224893284121055930585332847977458313586250083404795448478079121827664438816884388061337938487806049239347198030733234770531582949892185010334249155302797992214484568815158205529230256270589393856516724275761182647560916359397724255853820014522456760120625641109515130497757830421585368237730192102906610570401078569644353647100740970381457996135883511570223483492177873797882326209238460234173681772298807179592187255228811170529814359875329880113064547436159131109995917426300342676167081594507061371994976111123129623761393097935933751383195436890624243913167494247999764612349251140278769198781946764656966100938255332410416874276387652108353331549761905417642832089969087205184781239074272553453889013808725989861921567127577768200062662058217750835935126974785078888551045834478633198507003527321384742854420748495112379657187100366628580540404046470942542522396726312519852130268608295622603993354920395932417145925038321927298433003961418887697781936264926675701841875766274818676932666167636380069589414985217307942339631486047367245141099103425195893257766447757413742156526451851876607322602737672543951673993433253688647887814342039807638313843283624338887533497038895428032008834780838986411128536871255077149249638250496007033744931670754927777645107432719414450811161686835114939060102585529125739436984721847309655652491601807410459886979089481024756311545064063599281723208183273502597995443819682915437445732735675459846041217057699341978004299292007939816687257419146060895086489129494452625177971218521977738247151060845073793591007430336621636927901043389572295118285608849429202915599635602243014358929985568089449871163335903044190562844343212993917156594379928492043760918099724813634235310914434558794650334916601564200126440874293678987014306266065865985187982969878453693733065173101314388572858669088160141825947278518796570668385730024457233301331785372543356278787839538463650512467892827068507796518277569594091137597823414457495675326683936737730098075762487419067080072632127905071343201896205618584333679457651881322479672980662086774604633719953269669232339403170229549386805512508711446436033952969885464377025769667539848381702725590883304331023295542754868331503690109110527351680735340573558778386906265950819809029337844604565595281706973568410197412642727180708601164522644187073406292787937877467276967373859346540197919844124589989232282816593599755630950744075412358057360447025200990853404917630771535086494951936604326999552925944489682354763129054212854946193990606114393066574946866176522105970646125862473500495992174622571149189227482190165588009658145724468283115323308253906739880582104041176039558734183415643853323847478485514795081036113722523586406010121221472998374087239524421837800167568292133933310424963174058646327986760337660506422671688420905869414806511547581794223361757500591254199047335009289157367204823464923497715237847419455019852344457311321701690247634813656263252826443949606949336287189618072720179267552079202339042005819753225673819741922838730131561265895820718368811439735392557549712994058157739900815204959965082076226070491736567935546254328486721398097040394762504677375434285189513777593064363227057852764874508173930414094194991188962645184748869611177982255542167628097951397871173619366749237001489781429761166387331381911968496861931642603264516984060505826578696795203718652101843911526055825067658937705704074811415797266892553630502677234751966194694223528563043823970465932973372387628249547864513967958960747089980585110589891854982834746048001923606166820919525071817755004800305339212039080603770925590298922553320814299964398189929707821109106196558227022256137355933469887500282206975813096737338367710073364836126697910673770518052102074951114701132427339716971957326303748811460142539013229960381168867177725425154260601629619213530355598229156954581540843608883917305850473969593982439575154659280639422075872988963397064067916664119236829548492625417747894456850454892097235032985140424030503911531941555464551102347540646198179420897992006026545454421188836711210763290428628882965827513467061049565427228521274034972607661193158591885077193236998246914877492661523765820348766796499532908089680767793767120911042033347859512872899043576507139882832355281626150607645107656606717020080628066333113700945489159700280287284334507817483454591229069214728929190481587256187785087132388512123102036546156627911539622056033827738262048154555676064581374015887760589324985089476106942438196589704548059999209728360631908940733161610819256508831415110341025446427377454540932675222871391059653020783658403204994404850689185733184852750969495475169839708722209567333345635558734665208780957552914367353449623333594732202831679894887321125401557167502521257522860993207472969411032166365627198354031783020738857276897395315479028320755700013274018679560900062715284527038931621340793384043882243849224623999692863427927269838477735455611705243321230472987859349812712910695142344726966319812667352313489307668693322349932954959543168233915339746763000194726396948827079498905172804737388115939556291255415374301880055738165209149041760570812762805104460565435809733988113803974987742702847408576553677063569684859193646657692823832821557233666921433875169532631933873042050962807496386824566837628822446697976234259073498360753499270578637662525047921512396305836063689260550415229134015719214056142516366267788215596556320199100148299788382345728224600250553858814526287942291514050893379619717495688645065101906312651338337183512442217054345997426616572870324725205734037595348188894428680396715046243128626679553922816353243380208378471160948006465946911501565438928965047766688767217271978440606549237210387962077329978441191159685459627799341889474431121804829051456935810637942403071060220118324302909898039882936835444135090408940009004584231036294565285711320600369385648041718141709955916265539981753947045171245864023280506785232458855575226903700820606165236220263379763957580812159197874723239979485520832161351649367050978649720601037072791228399394307762067119968686744811530629162810166021475634574012815347344928762355993019913824023883787320527933028985680261007394926774799149171672431712323679017055290279215130669557340503062214172610373209415010480187262929339721004106751385783672275934977536317475704090532300510437354326725438183299993430297000940902350522976070570900432297135591776253944354061009034656346039223602141107770172688456639645702365694569868061634758664855427094848701611075464099340430220087213096485698929643284754133210997112586129209644123731984866838169210468688887316997108416364842742739189612217897454837634157210330748497964514902721465119714844381803117556605239544536036390669430509186056935374207283529589782310157501880080323632212004935455957882966380391990759985812371384638188313433705683528434790790276859609173496384857058814265441917829394429708106933817693990402990799849707947582882079718735060950325556005190078403731755503513921940128521230244856054883287318778934143695896138306059048486681400033618175308426406563995435069136967428141308703910981184494079760331928559546427620146635599739503485729626945325448223730423273953955652707220389023974646044282685986721023011155412033478646574002468521198104612912851881938544079852445765599894388128578352387985163032504470639721244741013454270085279008628274223636303304071773318544735683787060078600930397121650509058135473514050684295579834251564351072647854189927506881375102473608408419781272854428392827616985445760509648052853516859772980884600486687346165446756566413442687535834231187826643467415888100326486104809146865942900202562111956211561370682061264027829652190555329855440556047202488497820306851827177619667477135794219676738467585668240904285810509147021484165297231097024880711818712208436637670007739441545177191515508599263240118857524497399427042560554665306980466300255910748060924601874313767641238139742226966882589640553864149271228684154865304496516286009910888543778802208309463036578784302615890002127888312681034093973552641221981213185753732459112613443872023433389672897162125840059515307572205758869316144674987943530252904207650807972741404175433628930544022469503814322911594594349352015057586761091574173944910378310859750163426022672574014510150201890020780196328551196617423493284783828983647536524418707357665657655347967921955698279981340281525004824368945166100088358311717770705256644408882560268626324274789992546778417934971038551423303256675374676719234777644427712717779110784569329336940265002561511470731623362948703546408059175970516855117051731939603982875413800279710828234117140764919468115553349144407294392019653252550085930238464975627496706162743741425364344801942753147009185666100429128639513348984298236750721829658429370184637090613868555678850048405692749028419466708308303550489382525188297082274264357943663444740720714122410776520270175248819768671634618035529234249862423832913877535986350547690041596899917810475815837286286040701899357081102683319384082993915035620141136597606729997265102531578736585146542392993546909752221550975903265347209019602809992783571981307157137107725312272415273376219695818180383294360827976388914505194676583909280537904398190576091801894345564755049092450295371924883094410222565143940626023908555031487578124428817704959947802587350228704161076951756185518019195885011303335735591653419518178251986457903506683113047433556316414851051842041995750801435676797192992571456032993410890130449684851929655846624721812833879519597415189697835247779190097486777294881223486288318584052801550712900144809597259838424230509561853167614831848843546755054700504468990153264549101317491882578290658562909471548859755403659778595015752749923730798987813541962298312474279524768160564223392464825384526853693470645250367865892850503832634838100420712748980833710364584934023123210419642650940742321554056131635303570951601521139211277999083307179672162944055721294657749091413037978006987617046432900980375835204554855050134741028675126314232119508539396724170727314303523117827794059769920143590963592077068664247829695279513926751456371645302024453424994941098599040601335309511922414144574584061842031554335778808851271761317118407448912251140872658197807169972391052030824068398711230413031813169046553399839259817392646823342573929314343468834016980294326874834706213517761148575236616731746229846138221901051538149737140302338419132568169630502893373715026735430985324400989276643918353136183384132695493817918193634251664141742442967217533217904566806448089803062783935345212948988249602662846758314753698323289779951378925115481102793443042928676274419591897207709987050501105270336561849039595853798088837074828514739359133207444785378946211062610416323081217199532253035389386840117788068040842458567206984714587363914371970432734214227158303458080701107669552406089875249072892694388343295964767010094190320925665900918977886745979026176158329370043303098455453844856207917951277221070830953470492352616602712053447760902386526750471184355649112074476885952458111874782621502370448566723179282905261417268948996574186631340536779329155359518618027977222460612848976687081951453320409616736845277030345707032814233071440479787086460382091870946680180305235767097353359150658932672689673416048500872562369412080802160512133432990827203264743214490824153423013355827574013698124384949314012875624116602975156525779347223673328345507061428797615841704706873232122469679157980446548050241782892726420894327193456951998626755704334642297938713151879158214444181166426275792573153167662577018736201000307277463509094182889314008163559740495577631453288660411156777359228729707746817620928010737104313785596251347150845394485803384006487256256230460924463035548077924635581833712496677216978858154551427167538306321193378249753189634957320120069324020307350695744155282636732737038629950769566716537636241770143211126690828545099083101539939528740550455337924481692353754654333735031828617683184148078340198694044677054093027970497983520471679645792424693754245498816795024755152111055166888893854275163095009226675792868707088112908952009708681525322429024238500278243731231004299672647956560817407831913558088823687566255090720673872896277712688237860795023043465920225264173400098379472438641770968922651080817565210312352837929769820366603317317044407942854587238999438210604675880413486495046091854988164050181069128110208556493234678827064197869100203498203896997821653552645924521411316145311903785842896486683647650927069514951706559377103585884088324211951677998409623201622507977732831807561323974477086869579883529809073702947443895829486325140290871186657702343423410527156850919549215049052343042932720740478809357426956306828266422194464568893697215481020069277121346537249980417088158807577788689439665666214416044961610610679524733381204227579076353748788121243241939793737332803658166092248623207620696027081830587604089983417790340030445221677375256506657924025240750496230779743627799793254834052160697643053394184243126503873047939753328165141183765369689402857058754927949298204952286011471474810398574075600836906739950476254909716196415627144437806148922258980123568666558586226710896462173598817298488256009756782697290502305084574554443315200627558403484809674141490888077646983448839872546331413817839031807866797380734973321935185944306772342370723143066639050480254113710034690799760119321870462586600358077682814149758701435889502441835084675022131735068745977150068049399780613418631483999161565086292718265808883844401210814872976303976806652694110498137261964805645003571091849413735088225039097330287474150510356431537036362897167965722850973755598077505807703632325051894261530790458724257486184320999496448049958583394315681570118848076771521940166643322691999028811355605560663373645160482389954488039662808906122699820874536028056459962501537961160032075832042822294528338788096322989481488564178969275369774324425965282208697062712357367616353858863519529434835392670666325712977055427207589734138909271393711243339786455494742903876977211755227753139686387811644656384204644264787214342078673152077052411991160026552380706205315732646883268624995035435015001174226383104011563492790263672612488033716857263427531806254007409156587345275803722212623833147375250909262204224719749179892731886477954101243159135978778929854362865793802459618765258999011038494121553699539610413110528098683446947929788019908195787223523784227092304684033849513209274037710200691315714503784282358061720192992075925709759221230063787909057361726230434891650409061095550828674605664195964705799700731273459151605264812526273871687501107278083921567903504249245442522639300759280659138071564619563832769850331083956109254045523916420253501660032594914210348832431001559474308786771863017430348361629776030560243945088141212479182387734357327247410874639642863730470895346695909582448198573104790418399828507677974218392303974050864746119431221488182239846640765447325285440102721842791820053298426731840414639115114268304445977113534174249308008306410730711225693810233254833464413098916020902489166297877559813172463681660943676253732263042803148571785713399595711629492604772845806814696792508811614688281291452264411224839315900753607784766579421694033282236792361514914692608775120793769034516130904941570982270912037135341644062853662613787769759282554331746394457105023583983400744943029808067100516225607126584649838862986976203432001638718665877953954680720349815142158284589461579273026780223953261427348985261351043309650448030610121771480805947890823783191202986664629964304651778664514547405671641238339282250657746264145142585318422791356651570566162114694694330443345093046504378853056368197748297191863611918614724243699787106455216338511331441414022418897243226235496144695758007676389167022626907687251458671466042529200001001171264278336264497620102634775879524858149375612386476516287110693255490593602865966676928305923389409826109525094499274660618341183019422845499309029231600799890751933764328031490760023227592867090818114428327168300214011168612251649623063621151179972025898383308345397563100328068305087631142786816248703511305884555108200613970897071578296711166286787263289125353116511956432189301401639555256449492523961272091671769074254473051474539211972348014266319116819235766863247703285725089148373962026484658236451898626895885594406328094606989866381267985670291371566186010794943170925354740814207406393301566483783536868188278069431645009880683108131562780397543351616090335974603307284180210743752543344216547759418018333651306723632315010599490776711954968098583228049972471430235699144654525389927228223099393629576320682152956277219704367292436060839283147592120887646357304221704141312116412139273686734406157003395624473815612766905112767778360638960468721820417593622286181782742620537962287595424545507207132324691109340720820065531350006200347102777886390018623456383412728456096583223736730577485806948173045826859130336566944542613588562160948439282095431724967945552271242903314878536265476262110807987471934170620880254947956507842267728192420545209201533839371781490602289526661921510676022256006874496427726320838288154886364214402918001421876210076700307955975232617163669419085304256280181622574886767594862467545862984380149010794039089553269837468244017624388107341588574176759895607547157294883908543142716595551901817589586234734464031956345743793170239117762059214660508942443908909845887794819227266860779263851271639726700885339062761331058695221032997706889130893221866558684978088882800256100915029607356482293117227290546290895136120984899986558824795366709933553654979445409205656682092781985994954113760275375856507532551829652850806082185706142220907828450978657352459006386409520182051125461619457899639215487833150433959215889938275629234084680574718693365936870461705884777216931602743201505531558714316164969681992524221187168388803746652135660467149284803793812812901406940359168824762259072464942129191817592731270559009834980759390196305459285017824847140369093274463248353040067341784941694965050515107360987246947982350355466224530882470989407383809386344851923958164284130982357130048311355425252416615381800753061469280408810375042594741045038867291871091100250531106046092460569802746711002507047935692958356712104697555217121137677908083006393680700242163750479313166139730588379560878515648096893261060803763279312899376164072476549604835156627014113777506093914001245297342331210554830500611557353555663214653989226920752500091584857315568999840760828326756038027026459187259866436496486352745867365584339548343447348045817804776632937386708181618862674748523804585378090009957490873251731138219883057546276805561783532511197280325370326922675947306724697016202720556048755159365298250397121087215369126711835266467118299406605881326158161058941625354090905986709941364899212997550666715748359116110670483426767816348448266006472688844015666610807682838781863721561469617777190063717407354431396402330272706269383471995303506662674342901216885848852893842422251372363727248846759285314206770321527410349246489239592308976752932725382577780714210823700428191706974603884712020101781990947414942634098191774155091942833316817179002563678187841526734658030880118105743693237822917686347450566466740181938790301204060625082474365927659764039242633035876836850196021641902617585450797892347766348311288686457969820602597632205766409061889907390892711633987421416147022723564485341038941038906609063855689324844842880043810125244335563147393920522307945329567825547165353727812564409137662692945947855352035512410539736825569755185847855420189736944208748477161721747246961937899263680639129392358953575492945684010859812731631686638419864759887481846003530209774927325281820563607016923333142165822888782240768482303014095632263986409594390622122146467821176425153019300331421177094517269605613143118649475019524948413411823545574237277300522469522995432658023441149458506011462541290327923452173961398595336503646790896532450830173968088595436088731220447365459368506303250088253492507002374132212372530538418419553461774842927986115123938836831866518865130253686788362308143777241153611421957981558749684143371463866362379118622724651238162017635184404891275719677875968046436183476542152896734855174645318516759285676907390320495487461884448653732090532907311522402074883963080809560273171991275461988777914006923458741541241580540592956098467817749796904909652876060152652082438337425856867447975887285860772375172302534970712525341031765457699193990670931098527036814769620736167569456236364364938433881246924129724260462648024776268261443144121144293141431320307050316489444987311745897841769480287915414776194179762916082762351324596075150054121076656213673337103636552733479994763735217114945812603316402469857877300469919576134273465864966453662634372578484882880745356653263404375680287354551904638341670038995675056409106636384172061572412800426700964860468414233349022036084378494375308669503935732876765455495019732558963051992123336335534501900201157498145445520678830931543599136449501496338686156297095053301773157333947477547191838701527505032693116747310214100120602773790538941253636952656850229288969858652941990087817677866098666938803180849290509492693253213560053187571256759818166907148382117551602493500150770463082252427425577760393090956187516530576357968358436755914720101085893891829039221889823616240004444519675285655473338227891886148481508613482757914050334122209151075056501120059279294420859214229890363939125170397433370672283128948643694854243707222773289923520276324446596014501289789539007189285380327652742777636013623159291487546644235199047468447513826221640643936724023339519318256404583597212170303804379596929348324090409107202253874751793001639016036906796269326557708542455623322360963812229759520859269335482003589766489288741247176331034102392838845496324593690692873951509876722137532708099491111976916203926753460584863859867720938092666827544407588620138174661847612526391598532180391574887689507184368221541624582175805183386954855650794309194867918311738830650934787250744391205069618322231157055747670899089288054768774520904133504141419964679980590730208882569748588904196834888998113740142489330765682079818259189191369500866396673451763071275650245294352661927282344826878032447401797493603303477709316766182605033143395951132770691399477045624631657495327236556831009215408505833592811092714556637908494148155006597592538229072445479028634240392424632351516597687551158978660300615289235898550246743953692949570933215808817409577779377780595139091695670820984058848189932827948475507870019245167163639510059544435344165424105176622833249760270658773556246033042152872512413770550769224770203617872427953178146526876608707731659382749845164226191084325027056427625603793809780727769436607765594727832954034850596671346873429912342973815560931528935051949212986989829559890444929509685641227605746653118527752117704164772763576183901873331483652070186664199284881482597374151879600798484998963277635520461073896860499871994579168939976242925537069983554724076614352616076622979143806923910548536032426871304340909591722617958963180484620113101198694081291506741726052068949925464931324055938632665587024084734277385851531364574767530799179086962261445323707562185510083252213377976740536378683377590127272653446125773953686207912389337320527726766485894143645685812276128064339082836323134874516883258075904631352044687307883370033791022484996589617001624976386937313527581517090324430880387793704582769788621172639272224122066397986940112839015237173175116813465020360772851863241019160077208024353602756753502924415990332017695451672544015478627279874351190662308346666899121394749712981808109891360242792498009498961117348575199235683575600496695529213488507726107486037896155768750323376119933121297167687152791223003781914577100543373045938042028954950161926284213738712388442314152255706834370328251319283722181574607311564697156994397636231392688907279147898824649624290994423616181817341632614176091140060152103501811850878358724977639992544347553161958734678104132869277028135417132527295189866493126194932336919698956355963635327883369012235332172235270541582214172051370021492781251770402830805882202973708876679828788248940187309506189916390730693360740557349440257195730954298753250432423291846633602665856056432041416080443250623323268088862103186375540148962746657257928899749254300683435398961694194433464508132796112054670009813606426045942231447921408630775970906717791253025191867851052549017741454332032955012590678646311719204160449103740250272532855278442711966630901005841536260040310734275299140644315662347289461738489142357102939899817125144528956368818155014628034537633878883464179143217052991841963312496035693751108710692925705427748132758938696969971524197466521984695107162920074015915359262114825447741236081758516029222131608432204930199537430154847502221812987139259610694741940575456625624426795914358623701690960640286045824435786222052477501547584837939525603673867998977877046345581325561530182590886988800640307017000930721539285027923501042055879166249040266678788171646033911312370565153455082978110295349259222105660298719916442205741272603401580112472822360148116529799589732580165597534036234540531191188546881011511936674588306265585277197654427897476626729680839497980385384420155132254665019992363580650399042947363825270373336716549002146722955455117144289748862476629115947040653833358517950588119513861852525316386607154076542352167327443118791685665200955863177187151274254736855050003754475150947698909744053826187437833292461032441220594667815803809564336667851512000267147844593129401958709012774637278981013885754428321387398768961393607153261475962209101541346444037428761415617123196403163907212565697675821644755617184267022242237555789876010170410267609762368998718593182573822362987559729277253400484217738384483443902798728175427690242876332034561521073053694388489903062702563164034360197667739955018334553750133530711262638614714982400696369622929163895720402917908222645380164980434517239854270090409132143657149373847795364732599257960056569480242916613707877544450548999110749575896261580186595802349132752715724097961229530068657580149111572362843201190078604372710779247829351898834167560428970172348248030206214726390669593438305949828471435970363916602328825575874079247005792535285179228910154824360370491232497009050184358035542599394390158221224425076868014349590233610937772574532199857209329426414314341413855799367280583848349909095054715738392676120847293742235966959112716163270406049663089047894674975590824683045869423346392006889477061715561949511855818951275886383927713502865255172345474437365070666769666532384678874844153266642534769951746129426995442422966505766091557401017109340369146357392756779952032253025340560068482464198095731381096547151666195705463483674139108007620159595719124403182179787774046337031223841231631939156773103062623546196578135140239224163172046333872546754603755421428229781780721727903854080679270880633618810967967798059257968043363876732290153080528805034527068501012728294950311024222719642818318986717968531035319488721863678402743202374387816489018374787742804517106909235820645841456315097817889822188149862174236633538321158974530380958039624960442794576125706753539008484582868599796389529622307615093690636794977468907888243838284471436265388142622082656288104337581261425096612473913608785518924287660232534716986380074548572223314294775519465781510971776653999303368242811191002871440384441392490885953717873476546865443826558927357592550012568024273665406208432573355996342354232410411497900405165468929236098092145655439005892579673988955689803391272583142036969093242245273682428142828645645200606350489823502992059966958686796634899136404218404599373630251746515616323311496215797999880944776588388232381525565781534020568675169336555147100174654648438122948178358003403943211337703055610091810543783549213694391780859696056648594760755371150902238783780058429743958182997819641057867823535392755735741602616210257051377263679892224405710995991902277436616819383562789679963323464675886129673004810857766108735468054019865281934605858131911840764631412282356673012569773790194309471251219941608367074836793944553881074076146821641867018780567138723922597257136875903670856753631382878470511185533922726874709791046842481613763980563120874696168503898610849663366260751039744836266180359538676722419839140693974471116102845525531669899520972316519366412157223250273600147816605944058680999501218031984791735170452455947980389516389642435925559810108627127437247143378941419940586325593944332886470723769630440553529913984102502346723095358624325763787652179092210768918286280553887862755909282628206043735191378806783274292036999138743716549002275803077349886426918599071751251782019756829130082395833434629069569360527130504818449856457413266811597972712067204537774509436139000076327054690576980669827969136966345517390898177550752691487130048529735727311784498930381115238904552751129971474491421268489399565968372293749620694890122904731541351697452386591788134681688819361620334823564715019169578206077505069144447938628336859022078961353159440004987157564068736039250668596963736677352093200117374649210411723869565374853641450681619546259086230047632724913571452675863237891063135066003710483906077612920437252024029040263067606238904967278770025191228935471635553259218336022924219838920754287040849826182683349026411440510862362848871468607721098609774181417041115970273417379922261976906752997230889094004298521457795232645203463218217636280892368353750063338187046944974714127549022451241472176074495210272217803954343669096239603414274540421077541261847589794100976241456919144865002168274985164171584022316845167050946442348122251743777421893312276240716369647072657095068122397027700857624676500014213654560960407975372913287263731349585541092976706334874143079010159122414668618674951940466060745797982808109878398698125662153131657353520890633445788918221453559053838282105079111024983045980867826532561124178074739153927005385489400618366338670892209877475790393661308391220152538223753782768517115182786382874440544091249876259628790589768976758591815245626233744995221607121025266272148805209272148792378109891907083070258482317333032622605172797223660812637318375782711312568200649700148514464846338174392719439320214540528566226875627890079886238140973121207994432560799115151284307941270374477275187674042008176363504439332952986303940347851038239342677347435070563993877663376601545756971412186650302833990350336453775878919817264171670408826659567168050181540909525053918537150486052360843043149717591841185416213595486020441457470157263852917165460401645064649715259387795880998714539865935653821896759045761848672574245914590142679706136785806384123536975881757093457174992597244603835609464424115103686643393714130937015758967247388846804433671909889282170000140863314172204299779125579671468268443975944536054604810840209047499132216642168130315557970954041480266777020430985784278549950151685276215043379740457478839563963130003221687256745289995304647624078344479373782298860757929246452009167080204562057979719468960008828189688888956826557472852845970094476800183060623888317958538116937943758082374056683211312897195105424451906680637042113215117630148390024698052779079576095224085591172034711550535496259035497441811443701499699249470199772427318276975038007512468349380113715085983339530378020257755182551751918563470952178242986643195460905921783409167605668370266311318291280905358092814464466957423034751760782872867456119303355828528947691581684012704471808675959730696947035526864972055797856256013849724392169093578627552183379862386294835375508689768316378959754051603171829238158723873527446761293582016559654893883878201145409828304964507377058646325353066232689538043690339584487537042443072183236943741009912124131810340413173547251402805553919404633696249732187424918290235079449776775886734786828866531355353137360855558548267280722640414013953667302304682748403340693907504810233639733939867073322150877927529414432707145623151433552054959423937801931474583429691659460035054536737753180773465009223423390066919260738287008266481197735273276888519644027092032783559968285084636715367066788189462567025228856560810587675889298258694102629005992181517931764216081048343803816237955640940579507501407762670670665304732831927463936381756471327458219809424144814401576444784612782943659016023347630231469353044404774541393102617464401161609755348317832580414536000804774309607545539776117366463970216871841478444604219569306559996242773894955686923452558037994060824429110228890434218503902110329699644591533424414963163475773384013625002683789409546443907873150355480031514092534744360184835146369547832513760133472830432267944862243237510170855802984665820248263002631523018087668003769282841828244219266371982902022942682887883727363167274051412176119559750505469465092429888241155586868068772045311379662646771410556595483530203230920921460846865263736490076135325962322387034305316537508887768562448068528862759745389413251257869222068035507319267511681679831309644433652565764626899988941486157314551408788104686907897182674295048277727751595659265039003263788768428687350056975656168816933411111764585575236938352219904307437030483932286275221224746165358906573153872012435910708835499968631396036955202168373352880962698699680539539348629659057755131298295572581622148579711770943657889817938293872130268780735113609763870552441587381008908568993054780848422516567470101526762953506261943235654786168212102518265437854892857614780378590977321668336435557757444082988001370490901254952025247668991284834657385607933635861635224219621383488714367890331157659570724977362951245685260799866637001011602578287483165360084087958848787005553539221668374621821545223911484753733618733067472228161721408098267304865910799777814602517162627413297472643220364371597715405101820582997347382801298846039182518089978708622529263898231111573377085500322734582586703033283359808814935540274236673185952391310221000367726527047390749928064603367270970181291927147819233596066538310036637042412289491621691467424944344423364851139033943664882408056753309487482108812850635652551785429240935278177689024850122338744266245656681152776774260875775246560627161102132118961307557889749442784092475989011025369465183688641043173751875649203318544465450799872666728157325644789835070999995778398518950043841554812411548725768653682866358124379928173284784339493731570429932924933502861835818227936194978029294643668886218522338443688044816378460259300156413016886291562837008386947226760489729835291062291220903562564096836292586493577148382596137477856120452536553662373265087386153889451854469020029394829028755418821024043460723647881334102949079110075325641753862266554084784202910943360013381095535434846840751576024483087986553134895223098414081559619471068902773431416359311952818206873533579847751245751460471667075099112313868940706363780240510434880067294989257069907253538923444729194133417238131598894094612638587194102511367669051132324805856150377176216181277361220922632725482799125708366071624306772556425460615529938500733573661678381990128988510978399724806571254526609078273166141288305783804907493030241363424686038883346408152409932718049124760265600607231761438781127110972240874140115289630279722106947238065831616366122541028645049098825092791229810819294353754972725902833979328619110480506891029159743466684865350592753275142777647339865124496839133169735569250575366502942564498780157030824819997803437441911852579067445327402792048882520857576160384436321300600262270617576477317963127486042162721767335393815948210159482223577131190883863116697570789384888698291747286497867595351641163738338394209788285865620846488340261679301022966228391809298787288209589727134486366083184591952860042832253481437477637787149624077151442068146380449995560639156352423582955366889507585721320922030142655318510521999708393169645131696530342952346342069774588771564555095136747848136640602568749654961539364364611111625299652782042546335845788610687725972960301492066013536130051107775883435085814169082067166911914230329862987468452938454267669418279633442313447388406675915254436443638669851782389878743286290159767292100730969243917109444336519807655110409835668444067176588544446869406621414985976539912609611920895451871733858345757111375672878443250741380124553123165694537389140782076329581209733459863013828047217045514853497138159169923571994919343332579429321066317910107838038086280957546514494309295661682485195535593195683672663529734207845706949923236683151399544746712266211007364426539716016368087058381987106978885914121231755881743958248403678030265035225026348061495237459657395031951981142856336061284080814145686442759830793954550974172700304665024828148837476988703425383017818057886323031087648684991286864547659825457353110554155246711763536782491846168074295088069693318193947077193801048082824383476892133750625518322442671842793473974309126101265393792210620647100830991987136119943301737940324249555219975476750077647613816376696030130804565291933132772700889594445938240325846817298812551851871148382927462552498006337170043155246837478519113257082799006864336367312692166986492409647368586930270673550857787333877663345733937371814102348079445268241267936427048869603017257656118861438421910878262972680924022899185897337970278768916634630644504132732407671659710406916520812621314559705031037247256919599201587422590144878142660710674452522716425751344670934409793694452978017090165036563132464787781952907966296952544346231938111088854660131322209845691364844766566059487580347638829365109446756612813888543618168755191075979587302712792074124483235641569556575108400021702628554947394082525109619138163481785893507152195897190248482245631700918697531799717922214785982148044751389036286726938025867723130827662038876616059054152573306846193016677076056344762093115305626133761614251737303329569100039435936633130865891457310758413388163173990785412086763495871704508452286751178600594656595162881627171741570325205773275667116053656174189790133395562616624660562057039534787333034387775879432501659717121122040076068183366668368427695269661495977133315070989974896938601867806367666782189883416072901892629533646609841339764945116768984896553440069885645756137045626806897363521063861600003018278604962757449986122118814544502401965275604439040099887806120040671120960359337052078045526352386017366774320846483055458129487191175912638922477392311186939666676193844410127516318300287115724502254993492221461119604619902695602241393031210524978118025903677318586713196953141003534467965160854140860758327266067077920719950682472238814468900337739360804081068027576522371095359096565755392203130745796770515343931269964762249060749269203582463760339527330869322411564281253647698583609308664771238981016518298030974489768533035579186918507469412137769765558032971519293937339807303591395412645710393318120872020859114673182952084964883760386034550913531407906468531918860084411382833317949158341820475179202919895537349840365187581177628346103189942579430722673747638835799511315950712645165647822132288492230008990038394023090128707843963781842366906527748704841537820052192856509121027564252559480065751398367343152719924082472310249191646584517195830120372211362497070878129046133151181986923887647461814624040219727855941818631426600216636604671689859613871520519687311878782264976247890628615514104062614774348828613839474194231979379631992068244507172837815405937996605944990413684438013735914770037886434587983124109971775924789452262724144342297280088427712591155272713037157894805316638306861447711570104390731611993477529652476908798279526437909778156697930979164389854024602993403659474134885831960830923557335975027348091455425222320227871918609729952641161802702173059457737171905149841406201944059081872915520090910955114611375459834580623075271645595230626461903354789939522263123702976391044727527730478438286211952868379232484207880875877654076916647898448133837908105647273776621109495091367521065653737489934565434546474223284653818746061052273887369857343112086057741589802765436228276736668865782926918194694781993605845675683080445161633485442200696646872940032089027202908577804362620255727617321953095850815143798850670039651076378477787427663162618714767655594233753190797927123143953928792005213873537936609206377610372485827204953331663210155964959326112977959760397773003187290134750112697809748128119777418029881027261864859097015489859072059530086166134134100561818195673079850807391485224899244451955709744962441209823139137169453990439143917959515448504225550671161186787813235872339950189138779553577727861288365426019173236209613423163539923871469080076504726792338226846502086861295931397238183217999943581579350339385116975071053503640767528258925226056221597642018619606489537609755583284058427049278499474235195806134641767659366670868906146070637590736959382030515184443170770425455738591396894846728029214890112765633605831280832509851387727644363625647272092510418581190421002672760140027316603740258991533366290662609448942715544783618303801721350725264142966016322700832108742467921949307042567683233989277274675929755375457668279049088692597373138437029105816139500286619970403124789436528442482048685560031457562670227178326577967297684917061259911179172723541982355222308396311015363736465082623725835063858171008197127825753702229051812291138519655719843856219449950674662995179425083382755784054786648842206985614021852474475754609075829186196727967350130351710825530658468799109028689187131119955274764688839417179169458224205038064201227825478473847426739319349209670200625991098642874680376376820912644661780655976465137142473719180826673957937423235607940384530605704048087446275498162907996771064942411471831900158043649907499792424210111341256101286038500347349724825886271076669121484861096284911462987867602347949890804087015971157432851281434490819846505404133247582048698200839075632222784560318853363236411115790934696245758551920076325003001967036039027640318234365185039259258971737945477021174498129113873934963259061648219472828304374707715888991998783479119188316664565407046215691785457554827529766296501664023499304599805185135870625676030880691636888027575713042032149589781484652940699863133894906397412357858767713974263634272736982060165705622760359194977682792163466165303320128001674950996385033312582630033235528587783451046567991489607923452827538757374959219936221923827550481012397674367975066854040927260726236163082393270972881704644921715290666585089741538439976324320281902801992042298267603099913205840007590587372670297334446309560218991980508253117693243203192078393759992018870231886973432458261920336816716567831287947575531021640307220151287434599120186984052913837468337176414473245195086285608721959403154001275628570499591453944984388066118167240270530038760242287160118772950258788712041196742945724456924440151772427337698733780537938257964695732076334478266893679153256575820709764748767361467550508451384244590789046853564384305027887962982596979595719777175795610997441469814263886981659088740027688532165750725724434300826583602171612804599213248226734725901915902904575920737803001712036250896394179571794245163143697393952141955178105102933057631341920534294645306389543979403493769317628431579199457182914882485092247299519954037249301317838167071359924237075140026080739169870678787495502558813554329223792574350548405142965560432632520677430516752755418842241508913462769548335846052832511333156255784684641372693511922530370931129947559872537356347043236927571032266913760378970842510137370201011303083303280272610580187885378266700417492760670734134178414936659421779395943266988480360550206399796823232374319425404581673294479761425228383084329546413834934108102565947573214914894565845071347479860436100710474085736225730377976555799582458533331339159386616073509663123361657789071674974066615091846400172604054910097909593655262394695495862485638210359098371383536744323000609562562138598685452944655299213103608165605693526908089521959257285648901207464089845332488842608770089523191602653117740871508651652418798209303045513542057345516030618596653796144926886004312181828589302849170239338806645950230873557746462933434705507737789599702667571601521253944790571881028799576819827742866944096680524253495311449631398542463685450953540901546990914869985822337139316524579210209022860736334262495602665837695480043664889361349868088643688382014404151074843893590873876738597181078758185314575634505818426074937864567088207310474651840977405517125369051181408404256776831045098907001430854231797045138499409727232727676064654988762062698398473569187396451258162492543917796639718115731307039711832214119100782032663500077323340680948202642542003792260203084274147546441178808455190116622835225560872353922821439881253845128017833784481430809943914493348558593989732566896403470181906942521534787254952978119627401208942538542550993280566175672792832193467807577660834367200746029942722533821830454052399471075137228052604487745184029349652379573116632714410881774693457466822565213430047696424842063116720546661391216307306544606371016457586182555634125658460380753757905971986801522447829686335586379174883058102893705077934556439636059071098957343187990607987503936148449420803967481114526557401883356719097854760444313382317200771797223853641953680567792008617682697636730167813829924753906649391066857659437771369730911440821686679129301360727220744504031075922621594996529072701630982345339234231466207803659199169054587818849826682832368371028760015692785345331427269952536354930985804174662081529623783846061621714646126461893755819597070903336915361543156405312586900148638465039686145136125470666210509651427469543625177936954608682301255598390502299083447480243413789184449040771645162226339836460982520034328683110298858245301518809227221592633685300457090447194943886533806911983937608574047859439856022276944774066129087137953849832825206358387478434161585877285328460744681883323548792538793171335726231947490417953166309291167577213250096995433769726137102489276571331612061860738060430376705986739177446464897431019639399745779810509041226608200186520333272648081020075271283417572419047463646600512111330999198512990921506890230160488104259628266309848779050316669955282491231685534382577659390701608995171233003063427293347454060175458792388640711257844004930573647573236038733550710717990547275879271571208357333509216201244530955485045657150376600799282931478976999565960993050704755941900354576632409072596193079398785502371250492647870562087262442434978847464744684913910383600528796143193220601509735345873801638711784654074360587193874607478125509900898176825816899751153644710705257858006730092597633050232049758095181249206862719028933263470424889151691778530001178709838418868233668605724598514887728523475851401217784402486018749614797654185628437915948501652019767601882375110416810104772016682909048456189839073574356562087858951532281080882411586168903554782819517008448157738077814980817028175134550958945394930290139828893171482373761551932087267005356646495343902736181297994131432492019326086407983991966952891563071356367273102997453244583661193062620990718352698655055957399470643985743530522351348816180345180492421329428481309256842165403891163061111438687425460588691459497141756915299289397295306682769335320796226061358332804165758339207039344305235730454995834781212514140947890870257650063516016229622137030726314106242339879042748840985818018055658418351216816804342032537028957269711642968358921194789751195462254528957489765896359697649472191407345795512136408608457939758246667721241116887212089847390149216469014307718113318574302769532556736466266593337782211496252045103032870485550608299574822215201885560799612048581987225152965467274585947312310715631874173961159761798201912042812987380576837786834915493193161335887819996775850393321717478397186227474015770464835728049476009117920559686057761513461366005203502470770519101189683580206892084482075995223769519541494154826754726357356602752236545069429956985491245383689011548099257694365627049585689672457720805922570839073714414099419636554356752197764438789013766464354643875527761830428051982636177761911048885452124699776463474058075580135870735995188721372621084772815120398906484069364710480608316523713886966226638659830285208236790295231401256228177350489719337778675604507843778801527534266577878501153410228671259110211910268999855361079221650928959931176222123498754621382126674523403284953583144663821984699976070138744504978020864455503114626509812905911115621078524918724714022294240365610801198329126427344923045697693650349460688194994410511633422139441222693101638341404429074200200071926360473924853183714844748049775739017675632393489321532888213630947536817856049623196660400763522212918558463136889501328767395734210721528002608485398018364830815690485734054572113624702567966794500071252508695055617207751652076977172673412705705161874243002587945257877516259015335993833181735202221875356031592033647849031942387656797272512296603155327897839503865527421326366725179362452718608475341972253220200407285840012669539287447413385389439017620821609971269885757783957222511916685862879609761376163711963238699687749259451387078774025276372952616369215823342105377850241485044740558483706095400474526028200957238582174597427383445398653883721574916297860002363358786076623749022227027837008155290667567108963794721691788989571072963564011548199391909191741309271109423787950707241081781436616425509699091073116167989320675293747615017612719836129322297181854999149807238619788395151462043109356552509947770544426816895439041505403552052574691092769956742745239656713056732299687202083754487052168005100658284258545444056934593737625350860061328279075348866656834859423929546642115442716544861677035207458453489792339627107911540479224856182785044925532978006166682506908937754296619657200289243202700302702979250907329597716390893306222010036498536432716953594759525889382951945457771870235016313241891016956177632850385044355273255359552078247560324547478275827766109285623141410747967678456827298568481025779620970181087752214760315939666153774347116281829795008480827225048727450274416744307630554482085471297741284769456367930119464913814747941969408044559902724088029623573614210146604519563446525592981205598099909597929304701153244731977434512319584162871682743247689802403166820401625515706322717922217955279285164008426949377283462097636034253259714831812084938317719423794882726590384101789463353613509898035397533756508927387428978324742139704916274082848290566015231816791168768528627203406736572501617652818387914522134217860998915220389888942307563862392802038927346123418287442167091787372820834474242339397092848567950459023842827350793102017018367277903218023656995676182114390589320596228564064911643756891365242337104924570000999532666492665766259560206118307307603489809336584623500065555648645819454217452541894050677696539825278640126770979626943133802692700128455737141305820986115998120717433218579021243895480860620814027207473732665836963580901933260032150914240176826841759758669995397500821967896912637417927776946120361529504557137713740345863035907868271780328447251655160014477334534634503598313216296818886096016799706398306869618043871113925853147224149290984057629630909547337060383086820341166791591348722132680309239791847833459325644270783370670088594395724494319276488685796440119057075280891823009199848857818107260811938525109942026717703900741754691725694070403397647390122344983758699744485656954979606555735873790359047735132648574680983655769778510544060057852427646214567905237972830308764139548855605080261019777433539861250825025939549562141871925274140276716004357481664753743023064735627754977922368176391917105437890240337524739733295118345590799993178848692459444213240240088997970301821047825705416508490287600595244318183917493864984998344865237206843870593096894363905510811024669821029340508915527918776305959466814927580138762550455803485542923677290174667242022169380283219848321004057634740707166947457401598600942951751430652163736116705452271653333018147469886987104903060770218578131393137090886949848669414378796975178649033218111810297799047252452970395639097603172207809303713812437053245340087440001612072075940893382066785926711171894750567803822821881372720784406567014117635622010671152341776123094355392242282311077698420659263565902924066300900045980997512000009394318364749637779541562733770165405844801975619879959406971023704662218731129289252418967882165545144614126970370681291215003829508012581719319872348704208302131856619897310219763245265968183517433179122376727234813136597567864558008725223709407424777754467300157823689092976124028709192101572694751778225559796775378058221651683318857702369662992270135642879264268761717933067853436899453234935678038634607162527178232847098247120880436104176016480156775347012534041985175707643006730179072438019848851639719394100347611016148925980632786950355976158082563849967560249788638401974472770593032410920104919629214320485321842978190031797349603634265433553257295500064464196957719698982607910735548424393058052741188258381798769546055669874938596455493688377919016976468991420470223677452576429296179713331848153373324592721027800304530131342537023076548831067786730268038257137659700708189777211855882152332844292861021850115398168930724246504895659309242726167899796712301326956416534509040377067771900806420647759299648260469837179413187315981256814004894140723388940592768319072569817231100385808578177957355425175015359511825384823815393822282909337677092897792632528413997037000937973764017928575291555176985156239654431209078987117937634535838070452879091592772416672537388266186836763584540286925162268190095832573934718255588315107105326547936532567137722859258530292625034268199686449718225112537907387221863434225482685340339877820180426595406890902851665566352949524776942269269657837404697241946810154765662592157436580248809804987623004430957760605684851194344496201422269470708836456042001872998953904790931615215322664629195578269704922693379290358080899421486036262431762804471184816577351182899418731139448271721850377187824153330262842333574378584548430603328823442134095419206266274446857196993311507704729152889987124015593109601283800496579069809671891017825463270586952805177354961372331402965117784569370154836153527408255938993943339610677579699849520462270605682897657087449798173302361231582040467547332912565080843472835342397354294233787747036278508896023497951977922781794944458830611074590123111395208647436642780832209917504283926321964733996725170923778271411958598567588201187209282423473486264608179879100305870641869062826337388754118632317574773796560592679702404601844777611419599712538795557708131663216308932944846124144553312849640868515188442784106765694817110772065127704051552751108472578955135535233536541218361978194003534392368644400445362569812713765764141183219054170994982034583267990166175281124311589466634882890650981883967013634933828955555362010531259556494117471762399515565263904664836632345788867275209537595369343183616911521241317534552520888559890429347712316833746370632864349635866346939243504093290031840925396716727729139260168540589754737046503676982862410089033828418307413002850652229298924054707390302247818943209554074991855946098765409932320326472528935675985585940479301053860980262143240234743418625690401087375896224111909905711952853234943771702552042364151273040573424494089618796174390405404459221088876898729509564207938774645897906916600052523895949786561084116846541419169045733046034768315604997389605218209673802233428114211183192683927238008493455122786437201648401400329396215027347022370513770821814814705398740368114004829952343367151888347861117536267788448323757326336979348951390424382864887565135725217877639431928671778543477740143459319283127033803925289962140093518088467389675074783335792118357693655881941607256431076430539449546518122306345651396990044985270554847541480968115229373438570021644120216071668178833811834621447555747623406188755477864355180581606531446765170604974244859304021146877855020969790289827270870559557112961948472076694704631461777793465960097783191298790227308578606792081754529905842554949244041314759777244758105866598475151542388784918141378693925200002956531147571548345970358851076051701792850161555231181215602394812519932786321499237619395349305272460061751509128272825673607630332185781488139554809208461769809798823625360116244988663298463102708270085386262782012391614158596724811253940484981404571265560615744353843934986186792629984927817593661335446260726962759587609600562101657793561367748793515519501648514837560334390180052423694647564948720694715208409316003186556275451517164327374588567731822774445235314499207265099177644662352686152444068254023793419311135662518222610303294557767260313906048910267253496571812596178297392747062242095527710968624002002887609427599606744466582720648957995548863307439858022271671499357120050674649291634707205953278344515426923455692413393489399615381876384496604080245450294913984303600399611290214736696959865275220356160217738078843112904649175873677894613485713243943236893407733003464874198978141571017916943851610228977721580901521729877663190492649720822103955199465012516983697000466749893626982400883711296385332192524439836674503346337317767684115434457513250806463149645588791053438714488533372779205621913140168152673410146008583782659512591926127239469035889211923201880908659782226921444575394211067529958482078882987592781766550559860903286664574758677500451852884808995304052227623417343953368345234962758346661800215787328609912445313140202551605393238675310438790253435741497078493763954677838722430676301470042841395350325055029002394633857232229261302535632096728743252618545385294871002531291301015070652025170154867267509762539860886397558944697842418481383555129444000180067199406599428527039362442711309260054275886675466489474489401190084665821857034738993951003150990739568148558835412065121026200119091647250836818573115663507471309507173731634113580597928417968656647291701461683395290601485068703510885935297781393647427284361098284256038782616111075808236655756805411635751449956652927777594594875005810915459369017173916058952520210422520128627063044824628590363204564207655953053902250885656446346519449563267249195641907859362893466990466379623558554037030446390969854688424617858464992841851619719471434135372377997603961842395407030722048957677785025370525966950968959095741926425806507112807641893849375926052051757417909702468963051687319197811367392596433360228585443805023540652100143358392427213148848178394239181059784391452667401230146005260425218476414019315146914566869899870998854171213350371596840192510236864241103264399208953603212076807917584823149269061437170650559872907432612073175653851920934263096806336305124735052389007255724820734491394618441525229859138862977639996998110622195554389677345609438492318374792323380059372638456138375246620457564312566087882504652547511450198184469663047553623637339148633785637038286318522460228577538494083650206993268014841675363002436374276933299583762540183276087403712013249190175670744640880669558978902415543764497678219253702519777073487945547204033851115462307036228388519274282997619960616059057238081538695749553944259679867748434530044149957783700180948291029734575689128039918897706621747126288548836876142162628528875180383536994081708402967771085378709966442059533359267031429547780655900135635008736527347216270897438313211845464318114314813702063109051918698997044033698799812921708061983295651600233000971188886591642010186097140683386614888965971003502028876109511385335861761619744321702101050488988124892498245061029620390701965974073514335269596931847344568955012122156639565987770572168674501092738838852313465232013852121281438340592388843289230003476673400257111549180830396789668386345514888502032748786834327077942062299591834910357591843984597769565003236270011847878134413368200721519495648451185878747692567630911205165170304286261701046404868201179179949761404790091539203611975716697824278291709725745595882650959890079489823445464910349041537826862727441875874915765090549597624833318214335742496517426862608118665849332724113677190197810806645986982612921317749117000728113688525746878143120334826681900368737097421129629613426689318144944934749697226344351179926343726096576203000607017118390688358722653488821667453154947693635467688060343235525253695497193205388577433802337130743156969201278665846827424343966087355344526880893489837324882946755676834880432087303955964907573945242706204037206401995540127843655997075693660936569799636197374084751299960259285235846861297678233823009419030912225801072340806128044828973549251780193882371016902272902634870277113425084818631993361000236607273497109751277146826805775939008924213344584426484291969756851250056818524604056442880514697392707478492097503890865432737005777420513023597238147704708756689626613180810426972426935121072092492707777764641455789575653712568757370057356083822294144707821331361736262298037487054941491626056290602602414773688260865687821258034194834486399087012937447706885817897494222779098351422538225606907978003856133101100932175705682049538580791459039928346451987154003506072087244832527747044032681977286840800444237222862800946975211763686691597171090508879208768389463694432289442339540799751855892045558917904512279290868269475132821278598622561626686457924326448962116327250871863825599765926639543898471656457211792458206977007519073070771523009857670603434138295103849374425229964016208018526144864657075719962617795643458368289139392519215059860051651023378254700569618915283727346356427928279405791465031321998197315902742629937853644872733784589038648359452000148687785536007843955993533840993720728448566069832855527944087677249053156526575784613952870367290518024238400282010624128359431384303334918265750975931920152013454704986223855768164203508906610606787734512136731409821834542120102359361059072756751438220733710804440859820750882544013705085391683287617274614936722901361459881078262996525688541795389922924987028820948083758238653694526735626606633597212775623677146982836300900269453046583561942885216594406114320380965513802124164130720208166149908640881537870082046890150158085509605333979724868818947891429539382233616957458160456970699490626742324138195084354108649998248611015997359650183708009837530015900746945200402633044850264665625367414562619902205424194979436594858496470744146027830757400407062957907818955626099402684424169822792848379124646475027084517266024174673817278118512953281345619222503189512213701904286867270864638313683253952294195188730723669599401151966208979789903298333665689481363744459749632805315714334353402836987062024448214907885866730096379735997174354281900098256031794775592485872040796717236626505144428671131692786301924117028932684708515578281338570191019301757547803985979123694388842227734245161391657026388988963121909709231781493793801548951326414465910252644688235415965126448449755337421757630490465765707333403520145206713432271003959823252296571724791873768346179207616037788777842064359388852034283134923879067825128969437906144402033273821741529413770741930208750017834649126287163702929507165456416561190759081538582215690079767593208150089612994826870432990321307246064936081522766315940618294524758665727846379036025590568235067493243037602418116642984874824759456069773434252556718590601386749023856533485677346855482386040690399138757007785594953218165740230541705009573327733658892310441841434771257025717599289372226312643289197239983435074521741851780832697197565496493878314699545826907278974185164491975311496296164473845987749524227034837314118095098909341489956896719772523983088427791429356205242647081829145095909337225112565531389500773049427968693635754187381616604066750115826862862507704832605749227727171938338488307060402563264872808304350591148986695763224190904784629222587748573675848275745253160078509970383326353813057994943176648486033383975635384733368711291144795029027145536361265775914501326414473301173262554421296536049294599336616799515853325876364679293729920256934523648490521606401590974110538346204569109998723324485192630012633268944195856026430608518394131592251166859430745135725797535648699327861103340127547820276718002786383765246918537379060515524189607215143187760784105515509190739713504699500579893814882956137974148647043793393488190400410273627336080728820108591649163922493743008976935154034459778931073964359026029566568879127507131262835325159621151515330303601293349348744155184591906065805769513479047280242928330314642457108274198825217247782721561921853963504887497031096940774444452208268602108911457469108432508118438807191555024862413870720430745254260685903486755049976023700876902537656658098461940665094260491760515537782969755633979552604903514268786522806901735634377379092442720040971253171885848868216076187766569392689453844312552653393489439023900910264679718700081764851750195222421634964698827898244502884812377621411566697384700893992479386605386538899508235226700119572080333510263694054750208536950196594701798274750728214929494132255688103339791906844452171298736318454939385324804162256595908850390993198603626247429540308686529872532158103118043033072889216195995218529289330968296524343554150458847930449726172193009124093052312043771119777976750774895693892485713985160616427045827697360498253119955917399223342030566813093294222840765750650511105180993837782165554226650894867916909026834433878477463011728370363252561987799218857872172041779769680377695562288582693398869716189080629402261754181819547498059373610139860655656329742806313648730552227777008419708128217744291318188870641952360371776455132790314939623828715343665735872324324077128583923292743218942359939155015389405279480563195731562319011338296084546007279864672868679435064258949928298459549466734918191098282191341342020374483294867235003885773266802148527108111262518993576504012242903809250108063588703835246353044102545748245136688289244128759510274654654179677153609525600394416243225320324040709516560829410277712049370318457965154540433427266282038501989613605245916374131458576405460183541447854048222493741871365130647786440590399831941741737598020255035729254991376796735903242935573193612991006561003494048534997268148475277563708518404113181030862424329200496415371059094930844404733865604842935558326238835334448793795535697123039542197550897640228047060928389634053750099609512944759137346222287270984402874889426482804049449818202581041169183213517522611312000334760689042708127918642861924096722371910481410741605265802300333659885668608545703093775433410426379118899805380380536592833132979019473761909511102022616762927618671742542255160405667592386607722078291572247290826561700966126592905233679017780866690793864568311925310744671550797792812627926932790668671611657106289025789255238809346839047961919628835348513128412640014302354734946316759641526062797180429543588485797605999288853111568415590236256950654561096148412392652127651196016004676017988049467593232664400935474951745173458248735713815692606456151051499716305498434297518694224659681109383583466826604485224113759388984851212081061376200704935847816652240584771788835188790324700160551433877676169597370798655612947575298931952369949880926928827870635095225859046642715832084524163495347218182750603080928503386820126019363250448403219839533470389775629942863774083336943957752274037361553131725154984627971132625908442220365304257251019886374510829546001400949327904464869972993864170244330789557317825797747260791597274936420393751610621519243804493743297829983832962540220751241939772522861674606973708306911690402666251830132537446950054256466468575723611385662465743713272408758630375840286416620870607573504492541246284246882503805433620607277419076329346535233411037821304308274728612897657636810569353279472586002756461556444232505929483833162267036055398775220463599351028061345319887831501369526653629038933034429927832519541259512311349060006278913402363620597462007862492867357881029539596919512391056984012532459672355568441631190144657971149702413658149153924199018109914176014298891310446915849582069500647950309539604022942369304474036229449653152657818180896603694404147361577013012394717445384877972976923352827081109165617806891536786405145337747383324018248760317691952974088761045058852846310729558148197927803484095303760945487175604454472953917543792601801741292880324219804019423981821158000371036297978561210678873424171241953743087916203566203995029666303880206929054527498238389672914358798101321752082770253072444259831465652256580176080085624560058535562837211397333249415684108886305397996588205393382020665857851147003763084436515649378161718473228460737955512591048203541452172149966528276483443680509094290129590172739967564629913815254471483528085290080934400276122770394500861942212507851145779058501235622542315554920214783947060576018366602399679059603209372498282441889557694805792760060137053628778290802561362255555166837876458144771091361244784981572016913448839983653548466575242925053189543747465200197436959438358852055299453174677279903893202894212589977520831068044023847755557273866774721736758451468486005289712896033460874039075287706680229441837765555285204207087993472058930069730297503555924976698580647857925745932814999991748117933934122517855999601583615183186891801782920392260496661917766094385003957620462215596260375434321944692499721770700718142217496828562298568800373490750565796789084109187642056345452060780453834532679306602614542929389638868999999938502018213286146363432795022451401536934431148532354697392400532551676933474570451238969740147245005081877181980236961259937823035232735956366606610263016532624131056856334203086999119733231629307852208819209645813171121127909295794170230294474865750225965340351590487243193009589680877670043944207371337804472569560326038944502241957954263842103649037469121758878104043985964196655765733613913385721880575121731686369072747989922898213823864726681476810843769965358356234565152809653423778180746347377607639878879877343869326868372215553063869902521066897065185251337718776540830857907733883538010462746132331670671931070502996459537026456702838253450785836232630115506530606814376703723646927125306536899142098402774501323137705197063898438243748000564564622547112163508936218025664447733967168410027303869469411228114090154563449608968147618009968808028424726434326035270265240281793725925300682835151010914118630592624012531564270735139275668327063663624603501678244123488607512904018664977320374392658653916217721963918152862873886504229418773655186988930245297942054400616459974879368991464041958464454760149245111141080301045985697558478121022859723773502643425334905186377991601665336936768000452721892383477469800302573027080821803598516578945200982286135621876317922544426429977302732778544797504582446729923096419478253124201842345844746663605736136351930900366950444605425775260728932939321979512055470611981933291489304953054553560576344078128296070798502355183617284700987695632716060827358339640807243829580630110639717210003228861005143533728884812597084859465306751645880027174977785271320487109535007428281820441796132246748084264052611514206876644208097286688448050094121063875193196189170296140170730502829494378623879396399583615032970777352360048894358469453728539550103378197929803781538158550267255964615353808425834964695286342727674668761044666041216676950267250436799518436684144133161684656045466218171911933784582699669780662235694026855354202761502176504853564551199325383902843139394265667965864662192252781433878985707485139416313504856986929062233519673759195323710672630394071752647019319977314456158292950077737245579461114714102129549358472167345141827458731773950326475485911858407895474003104823275286708861965920919230989213750923589024988773331110580972378088310371113560578884432058809484896104416513255409448815254651669556092473235383887409417378699614898241994748889815266586651229659930963797817973960732091976081202398257288641407292103690702702160984211235827497231892638765186187685275613587005024682028552581965812513223319822494357755485784859711336808727338245127140505350540471063315493355623976138884234554078206347174021243072668399588619112024597309605688447854602298651181825087771216238509569546624621341577194892184133836980941257177770202353675756463018094404906968791377023056505798560337348275533347495157536079005889558667455869391107931755512234960121419824327094956675477615153194533436544786695815963905624909742194303526006079585069960246342353172357316744035451808221048918345755509069555917118186995615771986128195203517617601277829146806741445023199421285049389340790916515723763582109425236945917232356207933644825528116801157792067975513877286509079793411731088786958302760705615869113977952703201143345345171913445275538422719754000344258114658035003587389935288722167143656982852829003294573475081950254434676684906287337077226219999201651740205415095514575739294460006195328596766878482617398986213127140890517671568779742424035054754854830097135690398571465600637230657999825239774289433484917297598625470174319375991473251811837360087834676581808251187018374004600460587854805002738324103292509453142120101372212387831161341854454421183019509698437517245615613621271135346041360801059553112140064813096934620891980010630779134675460736637376954381100483575501579308022347962453595473920199690325814205329608468573709495190714404695805530403838202145703384290803273200390810796103872137842992776980645536790901687824764130215399084453931633741311674966455920687345923830516675194065903764634950507788711506980324792520402528851206291438556461251996416859084992154669723237211743251573514192997973043180837661626592506192210497751114352728048502334452268369485565167511990075380262431892829331572418637304417290988921993804383595777186183184908295095245276040702810082456100220748505974299577900369965053532140330866255852292541539413501591993653199787669864505213837592221274676037281444681837089439267401889509141714604760974085051602312043438332809477899701368054401484258675340145543971003885824542841360005409206808247305021039328385087904225886804762704270973597392049605055242083390588480029179711212417886822609958769329080327506905936049822277016654732933254842751170909919625345213895549204986913592524822236586440271484713350537715121933500348912539998502239744855777867571591916575208170064841853468547927646104485538174111664139101185603448884751804086248964079141666621190762523338643869258622400918148766411765256938095047211278006511603174057834283684049717467337960826987784606265782096451139804663308726779300169966628897974603928386224178419251432984466750915218799809039608066193905699826057735890625566132468264320906344893461033211497735826610663586758752950747057616407009433458534977209984966217598431994905386397710629130129859735590771598000896420346554660375532894496381323173331395869688487525615430379725445276503179250834165441174217318622235230907235311421222084027752008936933876314324396369195419927733234201551628213828853001790154042451737138899744021991901308543957528928130343830060296707183300603052686905916409638107837511894579695069147121245410683235939215549527747949795147491899840554617560682240172096829337717280025221270802086325521362736987501353391404374891507811160027135572192549612080096079079269206565372756026738566808763571453154868588313766406691861874847767920315719498131747338369628561185193700839554629058802671031388470101250244280596913668610598778612394962386643281644775807911843518486023205812129811717294613373027477872805812140456602733146847449512841397953484164567046745794917148367847450422249590535015731161591190882967613112431117119780322502957950367993894059736109684446187000898655959200810260191206431363794452901666532555558081335244417074118504964161790137011048884214089161250269558149416204464009059923719810589944467169538948876463139744908855696752747180101179519290505335071813389677857332517049695856450330972754422411614033758088557426651277271396706462140697687519113608370856621984488373729525077057251762338674555256630687702806391851267366889217850086016902460792061425133152437652721446141185302527302278712075209971395246140777751207014528330881406428725471098881997974960911648726196254514739289257213026504965367909822548900579366946325942091910075655206969427320188167444603716197642934451169482894398519356989985397981182858275005589382258695266539894761846928477571764987630397267595576659277089390588485147916391182365798295350242189289263668340081065618377018779139398852919184011239600757071744073829391255371588550606619572173686124802481103511814200781649691557344628745151715173779939240530640055150181962396004683294108499016074268741186149804030725666533520178307753939718033902645170844084265937997611584963881706425689570339055258565980990138604444744788710506505466846191101238238969737454065042390487369629786972787896871963606400478258585281172027814830487309126298379326893434839524935340610464928775280706375423303321389596964470725280216141095445049535683960139130530911971856046363344102018773574276098333216492679423706044692498788155242750460547663131099587609879157884591902580730795348301896851122643419117190607000630148099405674374976230166221102377381824220202740092242718609512284570790437881615272270517557563762326890844484952914682367399512154103830514005633534318250757159024396390602408578040623106956896727928381474481847503160220393262581476933837065615829123242218438317169554171071492050967399305640870999835069539352449910233880018917462684124113480639919982921590175433930590626317686407399378011995313860250029869299463271058853665603797822826725472221913468438898612854143388848108878038904948877847857940683827482149377847182185652862292819411243549803648630735557283991850046390925527677170961552633557782792679022639551918826344734906091392677484141381362095549833477831177511532444830214699186555709702404723110844245167488775963408298267761564549375966472085205053841186099997217111953895316470545559041958744801104700346098774585012129265187827223976449951448880188623422946957601869782008625724749193925356299853659916424589356515795027974900242260754392286723871392253667305457969359674284943183738396531210378593261197179109258903817767138290914876470947508154521212040468825530848811427784625767820079547171692548691436535062737979718588500548070920307103978545413178205154611516798890039197208605517761449837443413296164047471679341293339645069197756010013114234509669090867983906458456311213264020619071919094172844555163653538551892939660347810210362427889073002056522374467977320477302973814641029615479938281004052473846454360960104492238888223865339173113143081378629022815193443976149672394871000206906997950230586305732193886396742673772040781954373294725174057825771410985860959084774656555309952674594697478802166442290414419760175538416322146523077013748359371307353078209536630730796465408471133435617047628658651152262700622223909801114266309892012042328635193567001524976429900235765210598852022210424280562421164070777230375753024888893918517374498353906094939517222225259025188154375743986543706666454927071799357602483259225609744881284681148037919015558260051571693284916976523877589261450075953940961900941342440401801150217151895710040913829025949590310457112691810939442731373654139102558762881434817776243613767669147097883839101770031546406493260448765791539916302490100169884255732458028014411400814964818350467471211620010227654372958334540243986676793314003644614853314131203839993894368315311155201528051230781790857187487683696333330179727731664077591533171636058856530343883360379054981326651458180060564286822865533276045515885455408055603847413646349549174335508221791370097404270077656561246270533081328577503705477210039711452922458313510724400505547064906067189887032882966857419843426489017502612248708607280756863669501623380442249658451086557281560732621979558386420510112018938771161416525436419380724472859057793052211184914473489457468440014114228178817442888712525593646366502412931610271827141073963218497789577140703524826823929573039050942240803690252924841946323036845780497839992344694875024448983748141463909540584931588247916555341758192473141283299078380624436481970966508554944475396225070000642953282400380577627308451865029623876558344779964998513895893247986856450718593938095084492720781229457189828325596394687832749797967786918407160592499523821872868859034219667786950172707671392976736764005352664974477797295426767853434916976470191779526746724559769971936300622534727274525719691943376711889125006564655949537833243342125749633893344618432114357476261641746536820034950422185283314594516327316123537672798808876755704836977616745611866887116966023271849955241464453690597590396794504370656619038970946751958473990497992743325917718276960957646365936394905399150154565410048468854752322055431706542823852884832710930405349885002010483290575894985787298397368903785196957748966802159395280847704492461921542110591892815534933456547711375837002518920549624591799683173301256257409789839230983244497029835462719793345456579519404259299028333012483287731724620143235608857763069359599704214353850678071444095089463444960294996253534038297955095328173001562723187102219302563514469416850810511486613188385686851516071425427415789462261763244118847071151715948758943206651609051247790435588155525987262468085086450261020160800223928419106585225956707393598643775720513497274840674212166397732590717365701833472635997642049056147573273857511479386778036115830633471746741458152375602779618763390514137155070501873825439888489051676610255806918020252038754282863011680030874045284820915454850579975487459684488893702382458343413055289552239281349528829614468600317225051134033424287539983195264325850066107300556425179061801794371247273112920021270690969669347648757120877400072738374357950305975581533147924876298806192798469321599912503732402475959576268268249508000040513992472703587015207229969667357233288442721399933967239479668598511414687024800628439288365345846942444847179666044650574342126744178766586482886556750833405882717394244893456875802160145186983759712430489830612156569676640461301454242204077387566323104589320857737491711517916135762034782365959017835102791416001994577275141317234665947414270752677803075624943389547377483581068865363059788524326422307002899408604087907817215117633656173751118136894965446654662860608443172206445378245846517307925180032581168828747819749873100363505034469135880985543446800578369158398372865844412457857917111357100222158422536837362273382617997320852312506305776646686429180453374245613108737518731317175911597722260201141936193020189213034265336313330518909588638100992267284198963285966307867966036750661198023796212066625422313819714335956523082197629859681115478496671313058496979699845719456870779251546189144958033263188173403382513359768480828235505814875773174673369372937313913779021428095006327063833442415346672441046440045984718568223602365498063738074253008714732505966613563393807578873453098974856243259883897004834224607076236409482904295173692393156625394082941985812067768117176802940547819862869803171803352378400542570277247710420964976411536563110432504208511453105751056431789746732238185238457677773804460950118865956744324664753264253280620019360117079938275251057129412135683320995477541906788409549379705219307434030582236241385207373252413221106891955436575017691408008062967397312321369716761029001219156401777011412073191713447626149928362047126819885408580436696719517693875700011469800034998985127073234486091960925215528629150233928797459775433554683943447622181412035942726073389293248102188827129251480499314093520288364270952083484504011996584068613691983922413717707490947554293293864515431512639602051775848105292648464965480027586220295277716167243976212437092341333158287760771328022300477015678031554950725499648986406677378308982726103963060057075987103269848061083488700305206620958677651755794289058772217391018587409194290792166974541160410253933465078840164340396071049745031715152545530813660285400788249846634866248435354385919180213067691841478806616323124336322147684641430676678825702279449794874761097238643193076992887503372633134753477822326354848085393837542665451036091472028636968279640614632713784190815642286210224339143958994882321174264175515520382538279795821339403824497002731523271252616400529611418825825416234763438864876462530059685350774257162874756006116300375444886751984564416978819818263788293935636373389108397003671901376678317109767850220232339714387037625478620687606819604498638904851196372116126727628353288628504200213699867657398161993970653450497321321512711149645794279213719952608030115528774438414988467817094872196234650680068171211758607869693238393948595436650974566793308393022443697342358799032110816202032578661191474057234628573711774726818760711632088385573885928052653221329615380353324215248912613600643498355938597900653768879747829042810581771821400646730728415861437926646573339259182035088404397905824225773033403053161864771297087038759009780538272271001868343433578364248914758133939023084485527048306571639504208101684275140415406228339882564375318663751858127326852274506791690624091993853397941084762650174486563994795175311290433509843715554946687714289935158585769518819956654447475246280847342560516644359943506335657887671188038447108722556864412497959782383064009848093776746378745711362796242056121786732639256963682245908241891449382419919603542411183328119526536203181831000886048177736910913038695858315513962259147951836246270440208132537421628599069058210098592450802856148513586715452891397595427136773614692538973835297769069800321938216509432121946313292912550852601175239099914130048115837978538316269957805006052375812209065266791728696208617250885966418554007200461387403917255814215781949330554636477756182952337423132747343295560731171818438364809255702782421039198679419571475515809012875167558644735470933781380592477010641100251852293490980390051479310183908858551778733853941302552995717690424219187726656077383989255923653325306298483037123100707713062786779110625618318735580099069296380289899700962223960988879696299401360372680615034522427172986946320515883972705706584333885994015100004741502043233790460366033420335844275900777729849987994948191464972153969916505609149003824694465621177200536803960240595434806133186738929621137103916792782017503347419848021522122286472517035009496435469182795542597366685040953292674745821772791083300541859383406270953039803500783153989472621900110409024082424445245692643366841662765688863636203884093444861207544490229568118071242830358755023949384619918879752436718302286095297659655267323328293337821252659475528492329233865155146013323850741140212443788299930561023012781878106949599686274863423341239781704690458618492554851812052000593428722043273450579523126735978386208340062232837613304653631724650778743347500078024786689840155744293877794368128538492446831008329992445514735500300931704327365268250700887376991233684333773539882486756785520533750970040562165036418661576132687595120108048628237157763445279759897870304571191913601001324893463418307256459071266088735192830728291259696392068374160157057358040685360485441946388064999012830807881705993655140456618953223919207693865834203046315154476295985541088874221014038298522894855353446735725471353860813494118762829184848598328758296766473566523391044798137437753204046497498776344847227819170230443950733737956054971959347320914828115574560523868088774637436412824909647033460104805015482664996092324846409641538891880598463996236683473906230174136554267657505970786245511348562830796142929843766690058533366168840645273298440044888761361505229535312777570928647400200329797752786429087167664621575371895534513994398728345422101367485359798307733836473182804490559062506795405883091537217970210346784539134187035543124207416350388973171618804600969600976042436155329915834359197632420763930733378469707736262348324772911776148154070521922924511729318855405901670925487716229052029239861063106311333613519079967405499748726614471208590663896894784230794252799570081976225329895242932933358116133787271504508437793295906239025990461867221832066641436639739134576766074401841792636667527908960643174467210663168754506719694608173381284724914907019452236338691028692886903646276642410270755115518485913153668878372080313835671220633919424232830961758457344523584551215759185011646487566497732583457221104582545665762953057834780789217076131943485816001464395499032107971298390210896847323907957276541382234994349527202359619917801757766089679263677217474748303112196906386704240392687392443494704549447807005035449482971944833878569367457128826926761450421419531145195165604493302503861551292577300944500697723231439319041734813809492487935499876811556112075459056196771594489154559720368935800406087635044563204795182145353816998870610024083225020614273624807987308788145396969793332227050045108266590493153054904548205942805697151148727316814142130656670153524282014462180011044270686443281797708253505124435628241593392335580571580710974743450840834902694337288489970355750936590180243488301959061057490811236129155067338807219574469463101248876260013884886846872143015902474362914785754009676596764741554567485135023610327500543105614594626604347524520087039872151720149084180589394112422828428808253135300682219485396025692820629857593155799311367646541221673804810025357215151215150357462421973703553522279003827184564562948103187044694239912216663568978855807382293539037830377450837304282369015762828535739094052941419172213671045433829435967689160046274329646802313956987864421749556786648555769174196226404271282883376342292736816334380557201788535599947259512100272500898102245157166268242145473163315643618505985678757981861768664101809808934628721589714905096659406026776274369139040425764225355773826578816438027696169274900296485518198299473479500417382511448480511701444969418803751542738433256250466505971831302253672222731671565576558522109752004076700095771798464009781105890732343575834163158373224660381744060308663763449945720291356430693208717625334898079210819233391509618883530718015684939345059508815557204166237269613055254071733305799913598260926957554492484404304362364602066104002065279465081246873262952032207267056463872398642088079809109889683134647917647169724880129761321190425898772334870282794313694054755307002019769399378156915763139501826431879825924231774154510293712773902585983500493788781807679721347488710699967862970927553700721264988524211051878553520176694810163202362777983924549560613680168285173615812322415575176322456479585547702088580430897150382410420551049226574169349228627990647862344178161435728019409777010281785740030145029520677313020812913948797552202780797453870458009643490794436738399335537260997534993408752269107434576813440206418939815181061457310606656387869779834727395491449881171690655822961972382163870789544355037343654798211355869674569540625401740449925153423074021879089541585953989320302745778886197959732946260921553258165849052916483949969421725868195115821302868467987909084572447117374001236206693576533172703772852155014732231826634259111440537590733931368286474800215998146755931239529840277447997514597585763588061093705172123780712446356917846610035159566365666517472144699046225800845591020839598089463880540310258930845272991295856919145681094094035169157597572294961971314812709442713322187839700774348168890576680436624776683379819961406265603484211000615550805373137640958464365058920491216369887412588576942304878868926117713705164097389469185120480817517097147516024773501047249710256521561512017989353540531800173935441720504687126700651733300473951180869137269122005555488887446509109568738616140184195340392655551226353394324819973473969065373331255270755836477326812139715532535328892359833645391733928932853580823666318298610687394291722757176771112026385945105306086294965283803040196367656023668175752043697719285532576544137594750217419002882251807102593350935388886348297631920729360514311040695572151024985896082271220253903961416826118754688595319471738665109775954344473865180751796196435110235309338129923436829750754731887348764661749172617742404666309360636837496854156028987613606564575474185111894879425124141016114113858074065373141477900508330572027560082142610847527848536238382356353618963052014926342579381779906465506329531161002531834619307879931762940137040147070102882775480263916383338645210973162527248896602939084386686926427396516685530756082333334190758810892955118888223348624067862464204236106413154441802615190230336664088414590246612201427156333705171348375219264659577478491245585454353229113109922597101415367075847023769078749718243235138868830294971007511825702656027527259307226162867692412457549996279332560076948052566509007710657804725702245042075860705290643718556218326151041575360110743845118585806801753723193290606523425609683655725659146969264072430239132244046247623552305640645377188868912566272294405424295826340758520113982841338429548406255246563441940573147736036301977060526389329336725709388943295359928587442293042503915152760367872693762672149668783435489402701313176760600798627528574118280185249798750075397800050887994675072080975308985996006035627011796513966285962972762828100464243498073883132181441793683790422062940857910090056980973751973103566989615274854287770389052454254471367789989739278789605182724316513854853447979635586148948964773883695157524235681028201104100890381785565309926015848304386418730798255154808872590301125385328067350475523314343650213958215958161960451478492360080622178322115162061302691577300652454549781699286385597174786154383800534286537023506766790805747022017818979243218514591771084039524005146229362240840565032317449304690376788133193606171499166990263913599339805354977569652129119880995224213363327027023603947634737178987679574853527673470360863350850774891793659904440742866848070780310586933066325467575145904774813373836194319267286804864203859946189419126752858450790465377968430528510118515639525757979702518940919829760870059988436214727678956020887723322120621512173149477867034013318623728774367994858236689400660273533913183230974879621186819976630525910951999200454025739352044593202258017179699931325974832336124285210833304204916202673304136647814800287003323985693097486151404649930034371162036374715312484842056831677695524507531856665820748138202639122665967593171643768742313643080024335871245594434333814260982668482592030000530258485145143326915887033105621265635868819123694887002883802705851085947612460482803287448310256873816835057046414573399929680853736859389669283021732703121291890989684697784797580783206908954460786717081342030031929419715148325359514946430266826126596995962665128828012726897560536656902668003806781316992929001398126589923174866667625138822795422000239777191264777211860174782058695627568878044648242969803947382874049698566674815730648717163403332503871137975806358166767529658052186863406286248086490467847024447277610279710577480568363956009614315866331582661156230216320557041276196455416399268832493203272224809687083757315992685765087161909790818946492118757600256395486057809802617422361357616459381400500515401334963611397450061099729458492934680405417802214738834503643654250213502595810249182019179154603464549036313617987305815075301274208623861529452468000881062175727934620127082795737755445552169270734780497803258213384174211063469212077786889014360786708242450536739160318395717111320114194032133898489605366123084952093025083097514009355238022532571155895296278449322900016715484487697159615264405446683229502372056762942958158576766092487919289720423493531494798173644470674886086417145673568985516308412058998266818899935879405020397056052651405858130088761094861074476268577166121321967175297689572018457045447322579895670919144153201487492821099991394141630768945094203571320678672423232285484163731752566852809127773820158964995359897927640125819415579379869522179163972633659441987273021241045785927435503342905084483815057396457828352000229452143893178134386519406732251408792079164026042153953947735953378937001171611724374887461139304714684003105816089656056677076741603131007768230945805486812544750102157373364076189445741150775162204396669926789515266325598696529871945186659854995065197373432991533448369867189523769336282136539865928998173888512436867149379244440989755159988925158516900600839313968802123563167254414205022738743076599451227372772162624703898569632069746144799912931202031850931092903968434168274709231267715849465319168833446221562757156823170739545856459177570095615432938348236292544868546444716277925564046980260293015570209632997738178037259047446107551443337189121741399637107759222724089232989312447414668197058778383637689013878562030635516313096685331952311391750937354752535319377697414894891720907181673787862705005538196248721729910676640318663793565592115360896514382458541411524872274005850786712822421978422524157843156036932465642547008538403529405782475289633741645021311671423932173192572909501894728557225534825738553343618369137216607043896210306108486292642092765584089844474999664106268775926605438437244413578313808441404442347652422551581838101563230418161438376782563475503432623510500602250550176789326290376280881203059277543317082818274831130673971298950676538850129660822447740328899135863429611740168370609761113082804022234465034206351141034528684705351002316210478155973223433401034066051691374124250217775997408386632324806706345719809383402350756518963035374092301577305491620610815446999669482361849256203568592477826052111478094814874348717502235205561850874465221523897048048598722122885591245180750954198259092805550229138252679750573050130455933722363050289586387933034186893842776896722694639155967351798109625439779561596873098806472796975205580622818881713298102348878095318830829692015121995091891143837749603371405397254782633106197914492830826704849796603541269346065451452824614242663817885811151856361128676198242865613107746333949628120475123388858572411505385463172593412814213452607889791685915841262239882929397368938774231594464855541590899401193091281335741682385494801855313527256220778434649271102695882529597777310120317760178081394524833832327085181189434405301541154943594026361838937863566182161083405786641525634306084222753254849229332266635570742486313576288076624779704807480577650725448194212043970635141358243441784167403600656629028378703149773049239280895798791119571789462686986399988395055677265771612146342133729904951015446728331848247806876011483582924924277186992118605062189718486766644437541731320585661008432226926318751970360837473531957122718432648275831209066426781086363644010399799471985291422491347231730259780315904446205987866422083521432216711891990333213389206499671806321140347108233261006227779580433760590043572848814235850587155987108119844754308461408462272645280190579348578240303825504952397324047451159547453455874374604490190613515511011814723887772172397598227868379667735539428985517689157145644282733469372621167924214723169896847588103384759566353057659932352987187631542650533949057249947721626973891555112858957148735649592237326973883688603962854368954437625762539050260118460940912541878709753539790447611156036190017061980054221992777032774432977786184151794516668659438006122204971888548177017217785453716085580208692727998102596608902878784600207711675862126733237930568489986647912417572864665291650219481251360632202326835469686964509151263605078989036225452570476591291694463229654465040897353986065560543646662996419132257029366944569164342659924629800045760069315246373561069809255700688410027265712230378045394319921718717605400869957097417701215199190457969173066518700167856249655543845035747496175858900246262797460413836132722299156457085322399615317844742230748512269562309352979750107593394285163747862139518944596829644473675478913815167283995132986547212183855565699389297161237763629711644655690459923930165282263731346464647555213716355453142523757141668322133067705596584942584715859029160176380442156590903140206216505330943013324149964654010108210814307251683019444291446222717489005451993029198074943210641829520289645569259740744064298896398947621968178528510075481797238815057561616660098382047363874737564850803653101495672749844565858706819416101532221853844821082745777118437039243175880428146145742471482303185166918026978248895109375099298469847612320586976350027045341226260515312966380164077556270359943264928030265596267284875852653909137706868266782637296557591764182086211346859068749330004989081593977179550846378351409604791021048024782251110478662536778959784049069167778690722009369675651062824370665812967794961555964695311591432461518893316486736266072590319760779704515193728423919318618941058668292243794927568231533770723949962733162475437655785494505643347996035075504286509225211935213807299117296960550519450839055283817608358420446227340095611898634649895550966229637008391289671591741240403495895092469345648085518163238591519939922490726812816289218838526358499888426093935079254426212071084676812529815150455639449370970794378710863372245090892844589069115204347608693586054439536645935576742133878054438006590820135629516420046774138384988908392217635914344715316614465247553373497586293523826901190316931646127603117736644598505156958370555900403006486203403839196681184066385793987583332061686869896919156710192737414177865063053742864151324299779083622553886356141174662372939681080049822103974729315486667726781546971736306750981076110876410743808517414502647451634646103185681328774576004457721570644192815776654988748429754198828546849867301080920978575198273915122712558771213622929940140030798403452240941730559024798082706336845821044817068022356702175643551632644625620966269235268192390845407971343409799377942463325763395189609292684566236553952135244358278728595844672001523130508029997436539911811895526385564535745205992982950610116004352047052950663767243349709642267935396126342262669543367969969518251935990944730104240477237511097337386822512434631526818596454574365973910145438165859595479596337963777951795192878505866849845043851430957356513729106283481389591629566288146517775668398758556721749164615474700366197268650447235511935502532123443272316862878675268285531061349783294334824750306289290268888175216188020197833024700966616602738617610852664013143672405078052847957013175096896395136868971725089149490237343108932240023584428352860697016937217472747543552738953076190280780847042534015622148830786093426119480406047829919091398608876624620378904788986677083067422623137062332653151199184711595856266115548304524283022801888535434435315850338229293084968190669628236868982452668171195801554282197357504615175369005826425496288417006610231435827099627444334293089661348643372107745566732212700475476799718515778581999165165032729949145044305578103565232628973867109958249991706460032492360835565999855933827734848822277096544949593896776976806259813254367287615533440594250427995867400563127822715823643230340748637253193616703292292656324451974253167132611127959380391551834975074145745905693728660309612311789982851549164389567214894161310625269723575014051679931121855457552288918371537581355291817640675343630061827513857400501204943471767664535202202130813435971311352452132365244612106236435645572242673460567596408738310704223402988076924117075359647443634035790210586986029352894601637906312269213441131968138932026573940209077258397905131074024446721305981048106412113826590590266143938134302106281896026292357230929727179251828404709016380468007165014990479641131157831428578563699307825717426823251454692503557000309647259715132751533361306701247289966613275291321143488858307546487934683850335344319893757822499550325209812125127500955488546434537044977861688569108891655020736642833274334438500814342482715087916315274466234156605053662934556269154033861829059010440598429107144694060464787893093232169771196020591340371351566303111713137295773759967928757282164932302377015353012569240522109792206249723454666412002726817339730474048401194202350423782026306036137262178799917391730625992386776859602030993070522643039281671126978768845246535494493198378482794689093997501911925955119519428711839848347193820290260473712083687181998770908459214419677780341320174066707945379717864520433479316136720742660743360488643525267060791731132643180679789724341402706724030325542756676292790576848097836864065398009833451511749958404916937516260542530908464718403923103911572042912397917752002861304985161545217081075834763559805017859960498011648984755146567984512467063144619721110419852229322553976611078786461140625094722460717300627396881437744633036591573878077188706653419247264205657993529722875834645853463541919713718803324635878414936610426471713476642033359849744736321025711710113650529788809573079245157746994988545889101106936963924370074600984327257715189857168789627177035953574372758716862427988203952753976375710220069602498628288916204593581619504779614756764773461739346658491378304057861732511103347005567334450880303497470951678654993445435284109249691972521321303940896322406455594107291316336747570376915649502908094794543004066891006291710434072329746836494803517185589614731913386603324530288909254815346546196460892259689221413169373351984901696370651298305546807334777254496046851887141966388175088922592659465329373004854819618005889504413883039389125747163673714537216369976924741431782034545177322536164239471483214036231914662157172501499001210346068134027887920344521701483021728477264390244344238678980667314804315761427874369672787525728010956330184967449696666849457298318637149702703182692901802313622016392872645474265542326514041276033633427385063240272455745292960444084522749725573711551225882304241762507093369190719478795646418834703430220620986481989176373003484079064838215171489167404112467880901131749285224022417513433303229476403492193039337805622202352720589897491428126339945485673461949627284138349845277383530619922911210136286070909093519572762280125558909909646699045110853013565036989967842349407207212565777203428155356690233513895446335757210844844223770171908668775100413009906524083859741844956424188217417690533304718978292096117403205485523124120587908403352847484815815501757198528774846132187067110231833066846187103648366848623574213580022136281845683271263729997633123360061930511030974466408657473309410929521252562317396516279451260675285361854270923721936294292365975837413975068585736306833004829581083064091348002716576617006522716560737747239177199313230100339510211713067642828541742262628056642613065768994170180085685796071006504671208517866375318977007205863389782688539259401490976368229571307226912904951534390608874583008607080080873139471901234180966877440373020940836127863273210700885807564816815429058386127535793415051116096735237367756080067425221332382863674098267151630591279741834105842260413642937733844948019235760745199615257277155261070132351758650077375934048087839177895671033320554019044086227441792710693230076968837105262902739096318831109494073313804126779376792201380052708011819445469317964425483242691308594961538499554026317802271075285841275310697893570488193189351081168214025531595407220481186191965585833244765252856629528161561395224282618041742727224620063701832818454645996277291539597420265406509427691328398484375821502952143939022604660249179450306850408195988678238634078961820977717912215697102056810065636686494218299450413763220754697257200201663631900998065226908724702136580309237005091284208597002436831081810086854452630932707378073657736806343815911837720500904660597816646110732194437063513945044554388233005954676580173373979757136463198288234577494467937862864191423507266422331477757146914109622383579882505271203452927757884010678816648022908769623049658084962988308145106005633037034601042730938031028756320050204786711625835251225247557376965818106246130113681402689290093969936358624229661627553761849526142873560792383030412951720023907708709461680649437595548844102815973596794552668518847153001092079283506251246407413597144907923687642622190172118213618114315040711003333645397741491283149657404088182233602880096627777740906064555716015942612985630705072336588270018133755413743145413023149110156971314986273128568866603166633069643148835916336504059300506265750199633529408012700915945939634327374961040054062096010866884359645074460935741695702914584831877650113025904218767520452870204597400814012311041830945324803762438725327027612690913768156979937894098231567409551419423289635886017830294071434998678801350094465654793043123486630001075926538000652386528988111459316631114747814953731996717549100591423981461323174443668140439581195652434585095243170099558722582581874951378200299818496660382438629732591983654934412350234854705769316400046793006463899264909057772097114278799510015821936568423784148502292911298856126632536608259283962885175545159037898741498755410931868575947412957304728875027379387720807327818074427437648473754980658435761854241210000891464622933584306049158723014579680249679190358381263026039107808566765246278575542263885756379233280405058493252509589691089165549948477167353663919788525101293928799813390814618074393538494948893796497543624151870944251902272659652042297727705875490128704766028174116788600488916520378811362574108027019078305819312437119539988065644138804911156686793476525035918756955947262844347425908814165367210813981443198457675956748047531570549670779316463961166996607763485163786567001362435905537494236692591960390002192467301523647393854349182493583406040533163198542325233897654455939290925990006960346118338853348575746582890972654829067643023155539389501535488662102624184261567337902545623653283639899034923232858476119354814978784599649232244803346741108204908786307638530680678382447603812297111093489982667244776090697200996430676571364134270338660169517109243709148658972074535629623957805679904993739344764554129059143703740091008806807407114645984327179023018562056731463967297969013802860684548424677567600866704315875958925261645335031884141978339677126792388158752544689618405687514613954971402784601057045743661189488191754644239834542461625295986290905862233439729072578724846820803306500445362928090690346679785740908823536840251200276137419909382284117288548872897815144031705417734996205400632553748188235058754065804516479943115294892516995261492663710148145899998885747334007853442540601535869559245499102464770837168691514685578925827805535729977053247164951838286402110925558197479448971058821362694582223108869048996819535205670159258791763390546540147080378790015350267441834189427788850095472160068604007159713294696499879205501526360600798853567537278000875855922762052976422900411613198907190614265855123335392920191365723911982594950124826835694851008189598346913318855584765508920614720567821472092396039099557065078596342800957002062521371381450202870199520165283941645895809109532513808990000041529415861541017074683864313153875459178707788967918785016379396508517784874353874889199900163601166570224468689624330969461542697948396953966081027924487609546934215842124628701031536254386356013960383327376395812187833770860356171807754320808103616120786574594518804945399620975924468323151733179993794243220300313114084619821899230070874943749848471210588684904592865997787714164326734923918141963154112775339441949023967669482852373143115872033147368735077985136579248478662651698956346176980629828446308909453526595272017194934960491797171018832715257843352053381972927591520425471161863418165367602430563486569004231298917589431110124268369490871486078955113616173404438924104089577608912694947163482437127809266379446375350638561702744262288186282397328814222158323738533249902570650153013224434870020699627993548319457530729547519687745217777426585580504849515288768646663589538064387455431702999871777816528084445008069418030813825755348733637019481122150385685416282536376484047027166705027871229157016128421396702524683702204127580684803750526392281066870780210972884032046669097588641607555744337137296423766972863657307143137794988543297589245419910939625386902670955443600631448454230362560178732697109447089483944990822485950754621775925311798862724410108129034890361602889265420380547182317632550257883643362323252315741548562553108972666641252647103366376178664264720962119703329257968458547245003163688948592924064718525189312549177486665509399694160464643492749039699816500367226917187893382331816580435246232570818200963764949849608875962662649224880304328039347755525919275831786466180261792001802143141291869088015354416183829438636152337803628975597798342530881442884996235954238480747917516931809757456497138380630513510896139622601024840299699287324168159487022559110442227154903612018992861789600047900858181872027774085851773710854921204456180772151600548313405508329728270941020016067636647883559806820980456269392498120398175001255335620259107033655531816227582087356181113803155592419604679941867767938996167496696786611706768895171505075832282309431218216698727469669749464733462454126238590021413915518256003285717541751458848413357112754812657787932074479960895037277661236969288412339128783878364286836787748699366014865971421164038374048887169658742989623760503999182599421209337837406024617559190802703863064324417204712332753659630916339877883975203055070499650566355898095561840961677394421289708668710444983595866895852351155007299150089938375255494409961858208776373950825058310021624472428871163413830400767359386867893849157744858089697437468211145153233920997459345293846236982983654349314719940574196327981901392344875521561849240402172645468861253301821347729527893780062366015140272057961868903535450738285548882741717294102174447609039424478156521069353837564519970301770207301592210381136624137347623456494941756543094243410625178278700509831135997355511088423274716863582856580062053895068819767361197402230667559283365413645643267909381565009482643742187669208336691080372019392568927652455789527632624781018700027753313877875980609933657463732189687872611763882208770238176615289490299871377402530517302244200074703567260481145667205189634798084703084106263565563618452201505408262265473973548141670489667382283280577003505574343012740891043389350652770920360911413146179811398467728353555317930166274219449957717791587982109446493087384270571203322662571847591287079501839518899740162466491200841938350678994943502334363554497447094087824388908101734051349331001522775090087642615310469426662973103984415144738738223513631114552440881553460429552217233717144515938428179668698872448646548886717109626602454981858421980818409286928044533328089673729094971507718184978450294286111483767708719266031168982602472130441008064412397668480597897826110558401943088329385775379198441350775449269607316770395207572716111084715049236714435459742612214792481971379030376927055412413057877237463534883649399518217338721342033837318803038646262100819936828943400598299775578859820552122625542835182571190529031350107850419467734520093328607052306469922636816506671788402944083353485233038712101563494034950452415725886512864972662420438503279996036451558443355850764989109362474018224718889481889595524554323350555688467906873882539164134077642455561249319987781652952209018149489180147930149037773405976970870600424118986233069143488299921529048774449959333393046902254617819558763229657632983991322607936300390534523915374459809875798094187666624239204071385009872560182777114657790094664944595155766435431719498797422720932063264691179178192420608214381473443986121214943495739914473769212557448266189361012718815890039576341133177569603877453584753509980130897091670168257737845551139339890697820543666249570505358476257308156588738267035409463308180787255676525957857121735766611274888543503750940750531809078960832115675627700347235939234700666994373046758678747031709867916635863812105939823475719127859885166730823344894292121614059651990717546006404993108053119481840145900205799803255739686743764203546009898004358158946122855048142472635270053763781576635536003098612128936063445437017980549928356389098546255036811570385609993536608429616078190117907315059946806773420983209937266975921531807555332302482382005635888396728518716877142963907590581495048605654467716864909265121621485655768825188274490137168974461869342969909322445103801841826515425207586096846705785982849618617649789500783419493008117916674144842241740191146260361356427705714681015196177775333774420130397054240865679956505112692606780978741771338403469695287459354537917342289916194063799360622800918261575984885889185572796326799715707640361887005111025879881917245068443737673284009175129665885487690073282422369858352585266842786178362262585393948230542366992768019998449492012060745862389281433492406137395762703499807378759440122131705878272138186460331307524527415672974907632450449424786343812299132311152018942498576235889521295785038608757555485608220963902846616904323310144768963031660781715638319258031595230480289836366824862842230473299630548487278762020459351406404632932199498762342914384081410630222497722968162877100040800945938830416854791794025672715209765822653303391479285491951829474519906514495871619573441419060938510185546900379085308653429919730675141186537980154311261423268218070573124769372833923270133659466642096764211654748929339131445936744574182530287665564193334630182342362320503625894090717280831988857931930666123216604648454816755269845510720814965102442671443870438517756794376589656510186640706417630067109060269033503001207443536806098118354548876391229607032943426375179851779315989566138227611921581634279169840156826470306719537715031066344534853148526714819863861108885903876714894010535490857578695300536469163194892358182494234185064230754980868002768129687120070407036239031401949953132313821875602651096836856082159262365829576790133080242026751441159984961510950245666468726813311615530742052649710193774813081726461044679313240642935454028574198907906313925767688654439165008426646449125231031142487730561629989471193646670463691059316229875603951952803070825633017413435226916801367549623671739583180982023767917868730338598176950310702278033611187993493940198614569614153677731599463603367542700279297718781152368514998692773300533051971876262695667498857768409373893148064348639971823898310171951653891977969996926635891568188099567733909550030542174893382412015523989836414107795648924292784206303468504410121756727367257207342244941286207631926221882536678064354319551477576948605563598790762897685365728943256134941160263387349648300523311999875814544299218005319123948000581973346844436590408376200956020636347683057877450837427663855221773768438510195750339818420525400023763024946464315565428946843273330807049661026128669942030187835266651555478400477735788054376155753164284985036724425965688987136897692642519929986536922293435583989937276948376349133059869942677487759697120436300757629961880089471859610861562868518904802728788927527660096506139051372519249094816860324637444679331068588773065443731624738721100885830678840701333755742476219718177409150168160107858173948391173556325714806648655054176242097850920400883648066144718196512495574039410465903186662479579896508878758503675705074113377658468053019243074637754816103989778727661315833675050573262187118568413151260463836759523236909123293148864545832623541146422518446757259252843127334604513606989717111148183596990983324228094745347549654430033722408729409528892636153984575071780310449986263527434814204285239234692449872776486988807841985503633443368284984419696893506365466929854144779366507369716310792611129880857124323988489241669014672684171724876481889189731274778862521066698698648901134341992794598836404348052533025740339401467356591921056314802203065654063915125627992205529519077179495926526689742708695127123785178026053974353850480439471352583444018312124198373418465251750577436285237506943349575941879236496156950533252975834044645186110698510570449222457449201297963305099768683654235291723604015750356947896751823560843636831005421950098635263936421605180693923386327574419512099719983744033344669115556607043590446494125660628301576355828885682358806818877409959640385504037265590539213368495758265520787986808307570688046430754386941856221282550667796337807144979409432481392709053731879737935781231870160881627505148106642179697228254583730508114130109059452420226124370724448246189198502430390027459674600310773466484233012700494251908221073972560259318370908868736469930175209907276381688754001744036392577727939900754678184292169824696296991287396062931258295342659873506290233368988068215643426699605355097137640167619761006084147791105182217382622354826007230072697772000173902302769242256821925379184254315281972055775917300438255391347991059016620745674936077768020846998658461655091564613037052755512724150614787277394027239527329451966382554902477297110040742820186935744466231385231406181751964354517859788856208710330075633193014912234660808998727631935357237474954683363302218829239897235663666454370559061209192673035887222342764071552238442365551361928704321595480490210696062258528982651117411122474565983795010029622848630141667694019308906816284686282735037725067939352391688412659177606763663156009824763535595960792337047656763723225262039154695808962143466427139538565101550182433432726734194003165090312605836960084941417830120767344148852026149758641954417150836698359894223224935695902865038660960710154698482287250715097114519552323245962243496258161284037149622387439477093254933029289118147330702785251120858177587528981651786487006019346349762282318449662779242099650158822428957792362808433623712069259586094632973214462165192806031913742972613702593774140769459907581117854263897382394417522526294065618352328611554195606720059870123443485224937815646656724802684563257865499275462335247832580903186575459397836107743588100601946370868751461206220999679841874456212790184261020778490305567356329171987146788393876721447915067355127767629908343128171132680153994814124986885578793631366553936771459149618288947708854427030558567370384866393386024814187227353543256363728683999560098432569135886467852940018655186612064687054453633676087530759491466551263521141767542062570406451166632765275815078335066667830731003394672836014287996839570792080403263689315765675086742630836771400248578578638184488769545515219187082823795503973236673936981925084247661864139795125678082342045769249208536179943217155657036716230701141613522631276676611607834016348030714846127878497194291342049379390944195515461685692569512399460908210719391665418944439772571361289553701326190150780747766738531938831146454573794219673052165997496254314378182357000668116430686735382634900978309081585263250291034070128330255374556788234600612182768646591411821271765575661780713318412269058029624653208477369767732475474020104040429145893909459605071345168654480476055335353610567451782441337957062409157036534039990863826799008584372267306018525849104215813370744969664349936781581601855340244545929270133680316394566220725184033866569698560476981685433610880894317794837282841702552063694695956492415946173941158371448386025314437824497292218712007386966638615329878193671484983711790000198660121573154487174327074257216338182651089941599483086076478452839013658908173253011910042635870497785309908605015100634945568521435410138789062799497121521594484070130502039286800758896132580511174657015396356072520221153221450022808916792725941817159224026286855689440628536965733448063698714275702396660845900480736267865909786547652747556325203154680023888776283610718371413924004737640981596882406687260199022785966084813005582828117515231414281597005242757548808017678007083011116431257578134057850662429620156707765728182213181785761744224058753205858178295782290248060787007303213214323513304158563650018770993823440773897307113533416595010083207486105598104787841397955310718655213430079469284072229502138528396819849151939973501600481328187214676903047024691136441933270014222162441164658787738139439989645345593590370028856297887703234461170090790203998944642000186424326610662758096775643163371706131230167565438316509347484724072388780482557012962564764686869202348435260250624392351458825166013640717892049754838054767345490375630228347652688797084908975759842628061744927030165815427007981382209195413316148838123184986298750119954797652485599677149487149225543580827287173744815615914408093878605353229471728259401359454801699541079115895863548477577019600242462343890458300462898109852572457588235166536344570674873648398119408729250186816777809336998578733111183406807731359010912037151168862213130194798912332179828217740563681097065045329766208225184823834837328960668206152329593786821535955602006638564408018103069673933494398635379260937216215842050451335259517680222690143838140383014480025003463967654442206649189825002439678165324426592476020450766411727281890110733582180249710048227641150147665195129789602789360481010220165958341664237347993106722428831308982255962985015639334289465353676804022314205314102579526551912621616023704032088459886359406565977558123258014232770373424591738628561452278467752514214457823428831504152314948833769336462502819395497925195083254240487968762489440485797537945386646804737620174965568841733067908409469366990535494116498146633411496881298074062355837520518980887708352813889625149183019848199430951163486075786832825605000017708698352875288384118171974478069669374847950256931267769495258842672300912017195792837216305261744481350317907012958842252172143450365303084371457705542440780500487277616319502740266637218375787430047352430416467618222575422544540977454134930550348741693043216005983010832355346908447007637237906904246317547322825158729831746376334176258412866770264732381093256542606695743192544952453402581393277268342797943807763752557162806500042784997281734585528800592973574435002898764844636880063660446549340496361519218383665213532602245894673085456365485030230439301614793410834369508568443210079896101614219376845023920575098180685756745260952122369950448051748568154360515971939356459413034957724830357920198996613040228959564231910014505991070739429493728393548872847936932952748199193211873642687893957293428010136569885165985164809763349689758062121537423558765161520540319862944430119454220197270743390871392506495611810711501268055332990646825324488935196103120337771223540321251867206309295617522712987434051389614859444814064417820799634322102593616473534266744602368782527132256574524952767234688006135490466156853570340762114462135935866835622676517820623256331957572045474279102647254481797348352490317956132085004261940393156141684545247135402224158498420336699215166000351468954362688889817789596819619056294304400579990136670645892790482971040829861432149560315959708788005453965186460195531365701635494234066981688063531737815309100360305616787316178202611127387300000746128383449749739426332649075427637652717286916599390752637898335324314942635770342127347955575134822394397117950441471322837464310081362739424187592567356703073163339355380824313292837953273217700764581303618169810796715357371204437638224194398056658857221267524878251598240577227309727058352080849250434333072024896750449724014998002073128882135371545435088720378334554500562637664755213317931527720482027602975506334244145484836029921525442330275601942267239009664429123958831061765856292375793563003572069051412630822265189847213880187656004560419186056916743066328698125182469461778226506939712872136541206238888539035022931297052790544970607333008677695799460763530768545968754413578877571479257923045459485675826206689958010340966333265393158680879017425380523165445155419170072395145936338129450756652218686316659863367748806161073451670846336004086634722274269712002745324089351792465344346698376691865908067720100175871774289870282343354381228384557378785349073559834200762191380944996202282495695920960014198455510656512117575775908648940766564808559020412947365983781138969272030217948987988868784826714234598441428156046374887316400722693321985016260211954118760972502994404714393587936797681356186486722649942655732459353573924671230666112552979863518372415282164065878855224532171930178016360701955105744603655631794666597303708512556291645889195878300849730370764241712408163749947485535520738662111574064593775369282660296581057106871453090939176972283007618159904173139134485358634549561336786554512325229298191283395270425731411028868234149743085603183660185792877069204294371107657394560161921659722527339574324619379130977604483491409446123279564387443283566313378843228860152641809980407322790098955671958398817439787831867719101254096598979645312993378491462614936084337557520422728029470561878171133116272707357664916101185829181397225608013565563418430733101557727139729256442676288153588077075677434042041015705047056800046203081898971773936087117509126514657169341400006508240499827779383944271525593024649926082253565830850915957228722340395724573776018648231781860279256189613301968940280710264279267449100310458869254424558128021419527407272974992937136356227345510834602407540857701556826439020796097706390077318235400023227995903034146127734280354116795227791526771351194172459350761376246826758376294049714788875555248875827961421700766639816732241372286030953714337008192917679810225016484185237835020353300128266089855735160800994288394768324653402942217603433369149133198793092585428728677780514089054724984739184615298945692133743181779047584065391777637065105923498780962432584324795456646369479394904022569296971656952212551310455820868595193985193526863068964852802047872485479391273738252958642112492856647532640894354055115425123804466814500530361709944343244108462442233502004889392339485365088054286435732316174642098043853121850837816386096656312997870021619517813716437149174626415032046391822045721789639872665269845001813459048374942104011306228226255806505042679545459678108264797084790562613070600482440143057689572853047488740337010959963387524857652094515749429575614512864882593863684641347939791545092562603825085112541945111140659177528929403531178436150542512770009731796589025911658616706412069927311469637153765469221238653974585705931220589311774430072077635935680946305105569714209779309547587608740657438352337214727459088618102866557515033503072461760663289283773792934893179940744166127367432601126950231643396867941527260143225918544396438575132205141228274395990549742941460751367271129584688653255698786844938576614219279901944813235265888654994646783148884745828353564606753562075886335609942996280596814744816627661117548157308803943905154115480720537099779664884658142645134788999053997915507602614176389051485258822884328495552041663924470644626036799166191354460005704025508395608559286199734361869917909866434620370303633557710521357019523466476059424241294759555471393439022124021865249339875757157105866372712698316530003245423738203655586639683743714935728245960764843801612066739423612090684030230129635136231296430317758469431927434881226617425459074680271055612346396354604344134733679446567514050655825300915957613681535652380006946822964604613115795622227618690958379001487189760719818233056327456875671061053964230066876197286716516419028584688888436806128229254030112464415208006017455079638959652457944855716831552273323870754568766409975076089636050289418096079673837701723400074355048035213047116602132589402826512638605517847153210206028299542095108596086530175409026281596426504159483167650796584877724259627747501914452314052373243432010898735499797423646127610633473443187693105645650811037332320302481643623534414945898573649998054121141326984819496839975713596072318626762827223306906706832898967428135012645090911903894148252454829327029145993880954665608791900963950888353639284476553108564876396199511279456520361462707319348216893833063968460767712025007074793477396181755948220179264231733880671676970503670722851813908223370777161794764393821986813904855612496214198634460466787418372246853401616602043779140957384493626085251198971652908287421592801200572709579528496810009214255113794186016715247141730222156197214644308438966670576230773083607887645544301058928182265053492561240962460228222417173800534764056299528364969375501175377481868450003281680588393134785274292424169663337342106202281305348592506790374223988070657120732293711063451866386732225798811680348306799186056512310654043849056924167998934393969626332013686735234410020779069528116895298703988787147150792862586907093550434879277242276794231883328038167872119077497684994622938635468760026678531990228781256974902717007091457181356199481346814857616892097258849219682164754441201387795771713018880364208631193508562010150123585126902704950674425097537777655849859320496856479968182911642799834728683348694805413151830957202878864176555442497171104182579520682720975796936807001319766556188750445134832655513402287566854063292192697887522279842556754244434140840103726390693374922496467841456560433308588388543757716373739439432950296493762893063020927154524213328613303210954061035186076997948606248923820473769007598291833114091831577450011919252374328099973852299338584539867193137558089120540810738573993635911273512177535526964671409746598532348082294671998557366377793047300451992400803810890295095447945021173045568454942181257867455407875859033310643214748803089890022975683061304165728735156663421211571457583739692372540986584638216986789175010670960921992863923039801059851102857449744148617377118700025297512850399656036024608104345840857882359413066562846134523189643643059260344258022165103784906876324444640103947780821292815724544764673718028484077372669887569802902263888131641008612891813116592154350406606811713154486841487571509775125349294337584303019705142613216444840766644856693956225400837557898200588972436133774281870909652680943286312237287871036241747093566865734644259774553165073322351934353123613851033711380208032575846373803319917029869720771653488861638621676350480126410538350945052303223537617655755272926703651196304573394464713534077707234794491508378074727816321560717701851913039190725517035323895754309479039154155742730260983667335879444013697540606238227356373451447838671425268219882875535982347154525205386352344158046043059937530268806924661691009885700206621997168974577539864551942521204589882426177135892267749370049338762491847319797626109508085662167689366172598307401031551566994568463248400653933804890462816958068523272580205012267851459901835161334197394997126094087250179514190475423604093318036538713011176214254960927796665203707644686164183903511323878797095046062213393006309431404360358597223729384568762823431880594054577684230500647016782451927761331668403927909069957738327590087964216995813421113895870884636135678397648005369789701289862303692998813239679341619284418791483737134732221825209308262066361758907726442703424700891692857372162544645317870333255966546371868191055996469614087584968456056456152145823020530444453185598752813450491387707909407533846090495710498679825486139542856170473313704397564738164754805082657999915802463296516148739188105404224302348834659863146080418398132932252179589414414731110326203310788717396578907448548114589386271676791256548140721596427030906526646755481560484278971055847017429598345118823750826377515126092459093064311973382877630656778955761706886213280549511909038104923189912097951234621360703503782872437760138507453091550891901639567472521770496399672415484655951301298687543608955145711523642026581718785428717683125638056459184230494808637857055130367904490426600797674675337781246095996650436370796697331304361783010538034571874661838523144637718658542940657183076587525549385386201854761340951962115422863561659280015344419154457647935203455984853652289135445557356701239400927011868036480214121229654231167878451369039723081653953893524223035783477604176003621896963258635541573681019791455772677805435211246153648623559380326357129976739741325101907556018696100995398279439005358234839976185533556474771436621558719490261700527022757289346987044264892481030929441684647330422069999307906714269024195338024921292071443609647950382973419004487756742579515439262867326537832860250005258425809614800178624847961910326833504146343651653726147555909548189425371559229227220545695005762339489160714394271603273918880143722142331914268541961963013600031359120093673361195747311057226105942289240227839973764304697011863613283411663348742410793882527741728937679471610939495379400213620886897802124729036054450682868250475356386169975400475338188304987515491457408030769592276291415906497507911051402842723061607109053638329543278137546349795173371589840065886786495946841294237972277864669925765274586757489177350361591789486403987478176168342906558041003740007461088399011197949508270839819326897910174999171145829540970911035562530647367718232504520857590441418947052270343536917540635206386959131598047200584450712550219899848700825686529297256442853400763138365543483053886623779859200605008082111491246877494229765497326372017666285959759031132334694902753821497292817227192312756760463527145559933653949648341828372695191727124692085512469801488182145566457252259295585928337034682784158474389329144102843439270899219046754967870469809190497914082357328541180620090845578098310319967841699174718270521124151537504964403260916893427468423023313043146816504487077270474195819791199472744463825774160395976073589033796369520553409022519030843000318303894245604345959367855899886957575726538475265148140853524542674955669768098371687952148988242970561853752382919763860053483472500181494449209724858853126884701324635193845125555160522707452107608468141449659223089787953883970506557190681242960268398588593898063423893819157954940909009542881989700750698290377730734121331277315431851267709120044905994141995922316971236038553574165242412745222944075203379204212198055556962870195166025269568758953764924984089055593181844482975981794810335480352364104186196252076233405150999346492205080031596856764383479927307555769629124913202602795400542812976721464933071662725668343521355019156360254497887318738790001284451778635220628212558385810765299597284368130958311314455088339859222638493478150426000794396340673469513964713449339360333734301669900476392963992320591163391048231859187144845118839845584382665140571083189578430387004164614752169745717351511556517753794189984865411291245975497097387638917007890129518057403018180205913971526781881917536042506444913225448711638461347424388977223368301216850520345446413059123288974277657477777579606908952171025970810284113372425931876598805472505115455200257776242092069126406272336923080795827848959160682119284753900924063752292627617809246324975809968184302205441688285846572694600517495634886898914915306844350235962132118007097414318623402933502473689990905001184654182433480464456033670636194724919984085745148912105336119631760005989152305990029502986454158314868267116926068556844664105186860520643164645703490635399373138733872146755538437706396693086190935308574952580034978304147909501311984363834893209558284913866938390467448596124520435359025280350635192438076252361691368532217461743647574811218347135369095902161985631640896182626928937412586283279667443702769825217899350899026001255228638715461200285376986346252057668029064622458744332268563914554911660753980043451186418878099875247891262269189772264702922174662375125804628443886247586075907197481285474503746675656278819151252908887230064960457592885038535553414618664690456436206082940592565365382096098981461092605839311399098694330432862642538045826254115811957820042744602735786099422047561657308974076069536834781266586105011362120230553939937238844876135278735236364137273871595544778370108133362110308995245400938264666088979607596172553054201153654651120625420687094712889134802159882505868077160774593621244578343081216350671827634293763513032935391307878739576054913645454032471993474726246807942191592834435659779101889944064073808630252880266648051305910720779020518681077643145587630021099273809500335672898127312809791949725118852045307951806784061649666828023417904869321249134382205522288392449952265716904731895007617882959183021918697428017765698312399545154329368567879263850811014561660999690323583238511403735004512664415739566673102314863709150237226526867342213649090922308342060322340836077342499991444544851426319899454581673858541244615045346267167877382257443352461149740954445910572956846034650473653744068182088374224127863133977569023887613495709655507727270479444793473787508194366381597519675000872814787697807119382965024980031360019319842751359977132033655169864529947073356444442158653594770474621327843374626904656386783474386643825547162257455648233567961243693741405081442088956030760101595712548401141344826413481328976011554729422792636178074426182271553839233719361807507894294029756232236598266175808491489780347429639473177959781363569633315938588109015980143727212170273350933222134720572319474241480142839823401389302663772854404571501739270697540411139823743125631686488838512103493622164435771409435238671256398719691668189849099322255646675163040104667614822496337922454618548593538538543423946031290880047363028856300863384169690160972719528983424403852842159439058207219496800691401066246614988057953159037240258432289225067467837326367733030946440753449694761682838680459553077452990053954894731505781139740483867715883371370908105907090540861033761479494406718103975848058649907505619041950446325802807370880839409527319183370994596909740576665289264275827807440148603801513880624812241101481282003705468338063701205159232796265921810058799858992685872099218537480380182067489874693169475633346546842618888170520003466861009459064200953652008980565913171095441900989768851507458574911900285241798305834016944183172720056713195766064212756289364025634741295998202989472444198379552222091632316483069085701356467693416705222215801582986897447734546824228781043892002495624864179869491240395274475762008184974894478005026124257885041043780719193337633945287088608395811021955063023341941549363687606548868886204297562307147244322222442246492777386527694711866713337021495676866949126077074312470828142906133826626677778934354529758684884405145592539167631392522987245605223667078380243378245635449764957983577844332761729847374829476169065852539566661287201733464134735044533152333859395003195021002580399799014412839478576311060482655127239711923776441241482700655236780470041507931637931605254518762630480991155292036159449543928704213126757286235005222628576681131285698458883947287137405645911240112000664913254197504209653356931718468587681364119605288865336620183072557650032209206302163611398400604281667671931077648073817070298506123269386611518270222249426323765290704963299459389737792171454821267239936040925701799938535180787870432580757835147822843507091500122719713475118048798606272804193065483393964301089332607276439344708485644598630257428798231980103491235395980302698972290881103491753199548361419098757908030312624426670400256426763219803660439170955166509369207596535596154699686938050023879002067194394193641778182219037573944273898863450917132598620112329921439069189946725819670967871893420697631233079102414457036802493353410406292398982733184872018066622570361762844136796061020192870025367082251523538636000664335002261011143170398017712398559572756805903525041511169166242175349240549350972962639736848085760952863417109031454453078480170820371661303167910746912478743471587676694771684286319154783884186278684630008514095039963584360628481875468396468323496923332428834248620814702234152228947730118203681450561872488009425618878929457378672294536630538255890110022498281676958804531600217914591439162318076188831633549830882482137046620658490908774538220289769555044138059058841071184318279146058140427479627144520577266442367316196365212849209329286237745395837878763143428579996043729068267784408829868599163034054427132897365670070201130679918672132616431982198128194920870487643675990745298887716409852224881590217465566818017211629862338740952530092606873433911232067054715030046354693339043495062074865350123918072991553650707218800042036337998404845013038612088009814345338841056464700863783843911019349173391010910498486024010658767791924952699125484823373176658631142669146801337339545146460917714573442385650694923096429705007506653600470325064744520284336911199249337783107017030529277027253695713823571235618402716422535510855287467470621681219463636875896525708223197232543828493310760874578223474345011866562108439356526435641158786736506681552067940517816630217374094881065973447435430084825942402423680682240943121432033396965552212517819591671415440799048697116666244161709113291224613231690669505186800107936111795930660169452065259491594687580682860945115230625617400843943826619079075701774519259610415459354629897453658385093051329894960377875366458428772232992083607501882540539707572644690972770008754866315765078313407078787816305030932558690748694611385410575414972411133100555995244684064688118206789030352759241839912653613771872477634500520760628188698763137974660316802316622187607919943022426126192452001630518284686946718564279041431862713328262914927696826723435969151030126567358002024450556402885407301642148184111972568331441812764261258660225009422152193762337611038949534624263274061013441648186736252817862828337125077752866799021327106198843486493969926376059680500901180247129871830586344580910230815885400699505842417449074814355220466048838702889567985067252471486080183467927499402069391157954167254348193389025909354575278819760835657030672642556184824095399583965130121906363113381046558401331608905318396679863940172649344868992407750229321936493862585572437428752251327426992933815192011456916239438013840119748398354277416453548574399545555854449333335167002389103915271835374615044839671017661846314055054454967965314382276648163926328218525398363793134307054544131378594407824432337224134161274665913204657402827296400407591644231364795555555512402603338164831146670474329402495242740105892467291734451665590657352358562791977896210794433365647448954905999784743980792473285486590678874533887723444702792116765967440122348921976838329008752606210922077776587201249733709180254359101427598157193749490427998786721797333138726890236420006164837557856051196887926841566574447082295247453117022704131678893881081609930012970505406861914886989675702615084620376335235274882673622974222933545292590309952201084033956059036167092492549905065368661204192486907591094004371280644526566058697894092607015165893866600912447258982366580213728535995381347265265099060639042005000216496356211616958414674111189638142420327486621217856454390268372946737637545469280815746700446643588326900190980985707897554831861041909729900981946594095122383871536430038459300602458153340703107276100763865035211455189501348566507233129812855321712882094343794257078770394821792877424457643095593956699397406477447449140428869056673798802362933124773465819700782068775011293044230106831565788880608326109446329565990070076250969340489995809698983349118228295656043443260064402970359309260476343969505195729533481133334941300950837397935587436205941327593111383807863533581285860293807852022642665387401779322234912181538280282650475173625115848956691330593182616487945416346423192775416336610434117637933576588720041386167981991851186737794073902269035129842255858945621576977048111681289577524866624662138040789519500866414647335409263698142621199040745475834852610459791986671378839692684017463081276015851363456350979222490082794994942216117797926491011706761791369188387881973965464168237348155193650508687418651341219912434253974148110883817862992659724389299780577287449512431964604545174455791397742421424335451223579527803629664776532486630556322307664886762348902768635008983588869703447522128604901479593901598263963156404896624439372404073666354456563648036541692524946529164563207270220073160793477997262388527500128438563613199511263403983296320801774259369564233782009805429253867409306362811892477308632183002470100294871781127945409591989493736571533067516782135669915969776406813209554914582282634108602931161665329068273222155175204186193031334909929988485224174119906445243004953704730886913786099023030267092629600349098058291961690088843178423086015612853015274075314424202707861202802702878314972540513537292928176271583725156378820703663891045445228735162927629161483559852340116017400328482201078257538146614142953709000431896096464810170837501246790060401752587968958385603231880911914391616832438510384350290040567681667047514913255237599498908496473583360663892083028857511780658178512223800133272322848020883189939722717615259016944002648573246150317400255572195243290385562973297355192599406798111525225076653610106475209633633871222257560434169937329557491634292937349048155336912159556397969370736234409293189617664186259111096137530308336580728068690286126689220451333333812261250418503487019445621459718231546918623392876464055852541381127803594501410502814647232430040386656980803899782100760603740079166648670348048295521366416703970402190871572686969028887294004530463539905985387101747599811852421249289317566595025033855656420064869811205863852891732108805536107615191349437695173690277036012398091450248802830742841453058496360812499749391656723069431520800022056366551114063915534434136249475882258331779531199810872529378842251183371841003388302257847446309467861627840003060750814687797336004896237636936243996084858590631426107532958974660808276195347525627285785476282008433054073478568225236108533155344141775358069634110253815995417595422771180097664796138214240494979985316972753158999097978972309375945192422517306558313282797111986176039724557213086225635048676256802350910267734267117513206386074211776016457407193757211962639519414772309198025478103962594378173431767636484089630043052390640159223274501455256219632420640159152366094516296071464885628881662299729799839526168300330488722852156885795470552102860837559715957474828642610055868453120213656865732585094217411372480151024437035114859910312247179766541617302234755528865037983704405304204173314428693534441028986075658129639334408767995657781498782165032956289152136845727116846375282319624368706297249198403770004152837787619734119034196310934141801931507548305429834365490242595538138806652209155898842629580597399915440313518281566973050722064447785810780340729402366115053319439729885347979670662206045757477511073958639599640059941627305298751907147105351075132920779147491579952853408642189466254961507547295921078946964133454409409405952989998941208748331756527501266952087828780134033892091319216396460341030917399905590147994035074000727217925758437077289653814237993903834116112201350213158927204169325364698673788734940165764185544277440851939298482161552465607762910471144230640182121547471029531009409576798932384950116339940738626483377042282911253864307275481251923587992153445256408261294640121669959861302640435180157919692270749111174462937393158587896402099609833922854937524734385015261279658770729837949545770554147403879578616066035967953802867285637779407208289176586660932759478829915739348646134121900845675968565640515801941596369396325502785907014834064337715987369284119175242265424832002973705340904553104248868106360341569224848537024086875416053152894877742432740958037630166215015388234762213195774409600239009181277946459369665664033462142199895956647952035290406354546284770554030617148697471604374315423455813806125711349043780328699922753217544331202306665161845966207075592480975039495124077698263624773132318795445987060074039403599485982411986521043082962607319583816326942663034949254529932648940668157145110595268446981262315947028532559650986073295735173320684875058802350693152504987239928706473405211947748401387459371383581568540900186833539637181559952125639728087152585511547882644378014005662480333155343765055681275980293868157790044611174684969836296774818094470471761001296874506386850778476200775727462219235215153805051603634157120839481711960288114676443180578790302404341253947056982222609206127093345995334822640626440152620672469636216356139548983349885658593704825777204618084586453548675005614797861318650605884136047487199706962521703400561476443354719815811778560750153987679655975240735593989190665979865488657447542777217432120736425088263841401292909033061021819891806625758648805524578006555656724094470492363821993849297293370693200924635792086204184527917091562357036396271665955462141730962627517622871692377433956061708358771817266339940442744746714748502652878235094764485186406515099670299208022266293985420272276742166558485985517803567943538664829674971440402482669147393384331100980410819172135488109574140377742319715732142187890518040903335284317982700935593737949889325600322001620105193003797846150743479554460153190089553761682758690892565142285997146150668760139151033240536998473229896579364063374349566282816909907715990757674319713445120133807436161889643271399115111162407459420504669848013711702390455509292217528270628313871770420971279413691809550154314288132865807523975282414520555014348291276074930076134740043481622638582336709322305386777156879781232403991109856970725532375146899305648776674259588633523592724765829400725138405248254839044719742491871937121992215190433832902347921000022791102647477070403825772273491170799382351349139407625541595848564676463475272514694950632023061926659360006581943189000556423888555822479047401036750666312086016245569082721273293103751042318658903504483555150970337727705262171890449996872411321909731342829950767351122823885522192875461231065901980594551915287006874558977523277892423205553457309064669571360574405436167707888969800287163941751787448730820008078626751976837871245238175957535087574945669590085884613137097780616798392275538235846862609146206941588464982423923319304621597498642367224826189843062755384486154461623214894370499032130299215107153070014771757721495867529325205453090493549618921995976383916154707014118799988184484537212304313536948885983106506458606816219175501907660573768171741949319658896442107020158902081695567574309344995267279255742657446744192583164035508867092154796267301456189452288130706292429763625137344236187619481409013509854492888675950833111070290670449970216141718329809495832416702708916530133653142123040132445655585670487919876809937739162125004437692651128889950577216861833998642676008973226300556857415828101172922192458199994358411561419601778386412810562837071500770923544504447987101999268677006577793880546385785054012224917960687838634721116194152042369667004026014256551494053981572680670752166924788694942337999151498420307166041540554943793570946148086859597994260474088383502887144719952343168002551130495887021076632454378538392054043096051794765765831753432192418273817894915312729739481624412031861581550864923877865499797621696292931434255172561332785282568042626055435576454841657641730343693330135380296237054216954776093413013759950201235048075436615982922429163932410870648838866357984482679430378179241621965346691697307276136309743007397256892480003501433495858678520542506602526575023891244807493927381862825686227736858107421462187960772063491666897113871279191095615430437384081970664815002185516981564728340722377797805212473199532043929129485328987503087931409956631795756516504234234704653971937728538139336931858405171976716258364711068881237920310942679424401533200697641497002900480700688652215191421046494017482613462524882666359911894452180886626312566977132624111412974480946386684127971151781567431986530640063716757722663936176699156716420172450426841853789956928652737458864738272549098153285774826129712389800650293139822746944485836802162776969198554113216879406403806770514864594345657208712461755468629842315651849034304155244870194724388051488178697860359467858385435346511160973361803357937345604594973388106473951298749334325724067816232341038518564301085038462942454132103240839200918958746631059781547907479491937032406117213372724113776010981310454953038712102605546065919499628725301893595165283695068883960009351031207015339196940102943201505132956620007193606731685891661532814705841726070596803555481072307922466574349606578428213546573946331185464678338634325617270327213624288515932482293338768430054104094971614438779632214400400147255933720283394112211415416133102165507418129913834363167026420484231578819640349540055975479558002941374932521229045832458575035802760997860735528472285045427605077051688943672174352062205595797050873099410154295299701425534143184146463718570528986543090711930405163135593640820991307289456332059093915405855157285667657459556788201700200444038517071089883871042025964380919477502088812358857441694619957046597041353084705975790358074481130715386186721421093690369790276223727064318456417916222639088590586692243443975470982244940580959859524629400453366918962652402080114246650962658577438564091992550900017962487047328820465285660630006641912912672114494432501545308204729387908858753364805043191173006293021922958723607782944115245595822132135002156415198295486490747797043369317672314757727004295736253738806264445558733516169137453266765862891990372404991862732305086269855853623265085130470053628399914477803210501567833052607388945224352373188221240137215297166366455298726139882311766299573036380549239821886796113764595798650825176324289525992478083781509498502713552249568576696402141197366437490337582152165020862225234139743410429852495510842055700588402931935776615863178861949890880277795595925006366305700542507648356147738194309337726112796883339071210121102487316877097302060817024027059406341152360012536795015747102622255907393191819701189445555762695594612362743870373626773166074687513727820552433618415901585155543390990381831654624334657239573751575250528248515390171597388799124469023607184677918458353455803374769869004180261481107251611562421163566561528835921421540676249554534311007752592415023121696889893996974831315908430220948014640685597076789539739503215834333331165508613028646814907801790102088000545703130991504323748973321305637824253164542032313063648422682929903160573342193055226152252864936106147396052560520722291667985596950937270672132190748515016401758148771575913681832008936553648256948088475650793927213875562092871331534022205386713274824420783431054068160547580773060324268138431044205931256744784733409185844997208415943160013758006792579100420445761180511386539708640821190066991329760683849936510450114235212318148260712685022132638520580530631048204881550151819336858825429008339963584367189511148627672957289517822251325871537002675028865804606703403359674149356214295533049556065881857074542737179931490748683246699760968870965790814683968093647423666297685209728299728774985965618477833719760472332559448441247719427745228170571587114818191873695093969849310721795911692725915918140826859499078600460849179333606596290659376510477459692176449869930019113009454002003816661446379977320218239853860612674307653310447759524730325458241412907935320262567158146636172251008176965513752284054941544108366955186549537146307943897755481038113347432623078493077989091998714492705537297717471457694939877364242020848853128327074082772341549691636047116351742920873001784965225442379978086531787105471593120505634765706448028637504372091635463955066126937854039089043153483856200730886389972733735816307095219948824576233042855719750474282791223802227797202119295796263443597146117475365917938445872870805767459474653263370332410305396427144435859891017139268938467277674472979947451775578797870746336562056253892393169004130033669662541519024949872350782528860746392380214779312732773225348560410192267352601566198341416017630358800844468345925664792930860695874299624746831692118077430269086041456865560728314093952974928921152491215536541167070669863003406043614306084992553449190079554816704750709252884319552685350946387556954023828773351113362423435800667622777061637132093416803901145019572779774621586806658853413209883531630036786396104702176081417829057368383043528863590685177805324867018123273090606175823357705046894560466585822584428058502725633660584762686894592770360492514927163155091791667088466814369413490501850488572806640845263023917261152927287246338340986731485256548254926885194109710826409458597913494877380355042682898322662246574769062981757287179609154361711943826551492947354182728800363848931047923446188298846006908471858277406223829611851305202726941885144050228782846353136271954572780536465325737624308090845113988816896124108156088601755253782902769849528801118239075017165425894253361568077159293017594808617730408322112504648890512494716595854499467448327816354992460071701371305254274623712511762206564970011399320346373453232251231779929132393036495669905964347084699147176745776705064050543528480771101069234858926180472896860121243962480918182488728341319670092984631521858711270167523181699167114015887413234049316365787958181256695541474598662232568510957058660508746346208844025337905261551222745925161931490071432188270121650040665704669437822151674365028703874766173641724720076601695375656821610477684410254864669177277965925617991634151557871385475676806552786084790925592692980694954741559250750544787928090959719841675784033255880589437815850141331030496781876213395715124321132927856938615682994018721800960304356580824708036592037365645727609066415353669047905581429312954514261873057036213625188042845403976703531387485907406114496651191619901276516301321047880933308399345777770867254200696986951041334290500394519482497411588054156199004879517133837585498455733268691631138938482940743438624243543546111695828334254322192400693293019346301111985550867410116839894585706531417937692716167374883036589825943161996904065432483440216312401138526648483422414257378937311694643196201608195900901451049076077932717707166310608206348898991396998371189419535834584534555404123312538099037027591054923198754055826364645218137108881293712398625379134277425833794685379258973304944616053656780421974844366096344640202766879256056800220706704438334406233811026253852192585507185768932089476488626051572667000467026230201811806711447082062872920358973712056201929148080595280560674977888284794654177825813028604770021561158389958059482985686840872633229963671677639946849299026560440181956947036989131672030868709544543554593951455844876548412995330433211928300944282902005720078686896333924818301745023267997431370389907455443101766286896890466866162112081354854212533679485032239331919664339272149965916672267353323715074046298992172333701972735923256884992027114524894925079402588469305659217086830657015086599265552712506525194046629607497908505054158676548575270945331591979203452932231475654669534748915639766910137573792593120708211119605878175295949931783278940680644653526054603093899238790496442136047442005111015960000239803872721428803926844178056280257600885684959974281224297345215695476938496884596994137022364051288343117920417775911619693725398059031411877546638304119290825814862705653800723615538004204070919909935923981584630456280285728584593918201026043513994931766693614167878784484341351334901084758705401174249437772065232784518144205886223571188245515387993381068783679246621853664590535324484057931301604212649836558253648750674335448331009996893858289365105723365184516708370954898028827898684780672045305562394961538741240021750581863594115509042781686600914570461086552510660868257024488325006650749630007460965454083817674374839999175978308840079734251403416710713592510561356046266774568687867149688403128410929375777528799132648203411121124298964898119174718503921655520975494323175872057913404785475108586968125339819902207107510000616132060750234821069583542597732500466771641919372583200132218096138987116823429386624245647106789925328256031251150343134035108247835997673404442729931629519000408535261651012557751713478170007298496183294126916699789121761467534038806648915482864291653697364059061877831760186057488426314896294166568274563473759396713650729674433590461353404686177683873894621313579295868252355585667734168283736255037921617020068275083816237252075235614378277544392777102311106529115047980102231714557827363414310932268742025897231578263239453015640084608832151932845010205366710757879342972236277956943932823414609786776804654875424890384476187458503243079992021134969669665423872061914435266512800460530983572085041703667009868461791899308517184463186543165794893533506777336492018248264513117183906145737780081236807482645386549569237005889327134751665009624057911698410200310339587579500413061177311378058412728768122650017483039714657763079147973963654733382760933304269289166545127025858769479487765258691834285196394915114987092676278236330157295552151636545254247867642161306550700852652048226965423423353133007523830564799867190834972253013754599152285921037062688243103499967759177090289457966259072367296854955661390828971098893690110459631898041555288394079414305846492948031445812952658462835817150085259179973967122131696193997716601331794622680107994553342538112760435399730496341164285738618346406497488263713910664889837050655103936253264395132858476569459099153704473419145495467975026126511312209131589781377945359100769341305303696296862565893264311573952822291927951778380208887030453431024579931619797563666030221825471846131189582967049550058944879135456560620708600840194478513085031106711362912846889432028408328251626015102980358022615034305862147699230889494735638658541977565258123753016614452226359769377544634361360010783223045193848827488205068105401035793400386535118579320676129963587459593403376407573591622978436181124308992221055307108239195902060111233804909505123270778846961941381368087318929321652889834933397721866542567119587552381940184610029745983460429915432614910255213024941903029892280888050371737224193910476913662957522264873842534602714703250312714264069500096468714889903123828246874575386804295404928118269576748465008144773767893831280988799965389833429620204284127774919656501314270004188169925077711762708027971142921802576520643717727830093019408052586785500854865999436053577818322274336159316708061370405314891161191282879043258011909730989273875238821272816266763253719799808333199628385103690736417151059051814263082814768518812707612670164572478582065379437879445664024783536729647412914923766280393381551635715253108249308253396893389860784705573543301798826214858758286179536237465011629628232054557665119644594246471472742568217080983399122358914595293475947743734822478134487220076262421613573301564876954503368775700477436227119166619887800569737116028302108973788866070069852910369371620625089310600564397000238150026772947366276282448360401720581254047005101536922747268205730896705730205093501998835581708001355772809564779073993142795611346202123261869031620730231188497907825551113826701948640438400113008457909073774184949272308228060961407195247672723387066912064084312888740122781292723212716688678164996165422666761620191115250099250933706950577163710531104339478937813641580815651411147362401276729138495044553041650644840145060481007566571915017953508592467393525302680661866373761275668926496478091942488935195769247759753151360408166528272023581006350916030293871017244644807514068971558547792116955853923455971727298371729890842188186653533935699183784485439209617475468227240312243890348574631358476786411429257458367908611861839447262464624135222106367627762278306890362393206804474520165579904864970281534622247953721050538443318489021666046181549181696936374582583718983476906470307742098194687415744365627873521354525678746693017562198766445927296334179649285993116698978308255559273385454738283552740779668480437197257873223712019978578663709731752075631979807334540121988888503106936113686146001308136936396144530520923120806119626777183096174060089563635180547035055297713315419546510409152714942665276713033024770345670191795669322885837134055550930296605038328834281792104033039029458646858952490749239455824431763867255125013171485325286276448434968561559261446391939866387572358401562835412786633626298586374368114133335799025781749814221853218308474018572159189749729170497965037907482437758791250563003053674480697214940418883522609229409823570258288691057311615290094472746124999028221515440444694665834682842824982275082299350724562790645568470090338459444884807952943492834009648831407274310314113169394526644786800826682431393614939961404797108610104466292776793376470396059657898757462425122180465337491744920150606877423155914611965731778113136803665786903023313628828493504346342392551333065493667933606866171541796192685670708313761598031426827420392936697736953950296258616611717735766982263151807399327276484803262561911034500922212167321986214262867154822215870724899527245306821947017441193520275521588736149242198902544998218170329650095666326213743757578645623497687939553338802262055892513650489736957339280637076197699735867429194444649946430878232390713471610152222967076604885711420420619031136161987112582010441535206062716200443121446990174837771360517085632034724700742585878053341709491300994921600341431473099265627200103727966896525795153074155034399381916270850996392973584431502577728130082633410493887147020234558421216581696056319284125538894232468958431037439678071602846356795957464605069649693853161860386878436397849121613694246072003588540293613234020311287368285019731762370257041641591127631989335497558565383599190166248991411723255811772527896344642216895202234008627665402691691988238518625308449095137161626178926547531510782108334731414188498265584060404615435045114390362491774975270255955429176049635383840390379833987766830760063552114320603768971948490244173284945117434981749326091875765671773381475528445718147321438820630534386098449914246585461173500718982910198891072057240575158513220219950729484277073313109253508359183655687864027370705640689794931580661442929987636364398249848464453626254952082984221133653612664968466753138493238351120108359983458342646249673359040876188930606409257674952371108333939612712100242232926985038663388227313197315523540860761757916189099067174167579646475868012349841338340731564750415562777459186774906664254568203078898979742286715413791693250919805826762824879300917169294875865180691272195180032179705024679674220624398195572831027703367719091008210822717631699500891428884770047736784683183768484911887622129192578189930858558036811187960967361443963240051848692368632690136753980183745956751310742732937837479996972758090812753981818289268576367021624635271297301462643837471016106331578129143936947140561627611302475864037095749781623926749911071072239184364283148587122924312704095303563184892766758694776886525625774089170819347930480681971402845477396072236258731994085016798930894961770075533378875496251714260759465849381538800223224745646706222026851100541851231206856350323602423511130211995866025748196091323428011615592171067785768850674395628865798734428209383820551705416074596823811007058717571727591858128626438087170744965379845593605652812959731828360497851732260796763579399777363912548057492501457110743569165917621584437976278841447033450752556894477373578805597886573721706444824008981199851950402790965256182156139425065945755430840773191879502905146844603018556041914617417986951010523705455720912799872762960031335128351952676109612192152231967174734574134950645060599976994265774972573364154543743742551697469391700511583843251476197176122887067387918971962133702686341607425716567335960627677634012957849433390051098810410833940332271432337613275105125340253769959722602938815656514592468640950600648164537327293477308614008794590425546292621250123240404156682081017162189745026075732755127064936907515346882776769028103890521823177448048118496758729649828907551954506003251479160821782482668422481090340497707459900278637253615086506159173624613365650099432929320056203092672252052781529247557187609464240601558209581058917326259506200091487612038314250007910625691404880652156831986718292717098711803195553532388095503167555669939465024988716085005361178527634437070627553357927955623468367798576307877743227809321917188129520890806501357187793624193616787702585917243408402747988222607595693646654687143704806101182829244737186000181153341989844437333342433879510724244466139709813088567889184111413960496242993525541059611423301174219433110197928093208793034373123839695602921633223437636529994013529186676665718493395054241985309905778083950787372150411226689459077915220422701338433972790352403900171109956580573375888985406011274635343374223405855497137563018382431414903400492280589238722020086820130098796146838534710164576739447465449903579078745256081747129675016300210908562200378370837311609839531741190206355524426746668255950741402897876605486614882148171828888368904813495608014039717703744624162653446017099654387951420230401833317863140720834558153884405110896914117137150714965184354503965061803095872692579703236365478193855747070378163551424826866917658864637707436539053493439734273141743801149397296694951314212538888734475186884414641463681040623885546550587358315329573621138378233464263817375281168556901043721802711302127439477691993017203083257841841661355320455623371103783314782431365077353384861590075330140816566182964441787271051377632343520408068326794059714259877804725484598925115010193522593292603524279147109782105952587907004179433078548352049572745013242230706306553665540122709365555642421015824433192531308536639240873319422260630623669589369307740429972871663527696691126602082602505524732050661291012653810775151829773296802418527463391220092178743892169222299342253823713220489784508313859362873828766793655211263304706949788813588051164061389062421083433149621323105672478971753528780770488374489917381328029564250893035147643980187332522036031649920957877287129685486995900169732900550710659187932320780276803829747644614265272592936371819726978391023342428833062027618812654488299626938231756786906074524341611332987897284163031680991735469210474317650665881980873124858223116815208041987034988416933545002223597920208407114230357493895761596562087901175332423862577496453381729399388390530331428029141965151772948755164064343531881348094113951819491534146748679249958031459510352443143995204566541124516312794633900573170013912876785050472055582204709725090982825379511598404423849816153307964392784832428741058820620645303670571522335024213456705851456243427057977279943911538882485005982796566793037062942724739705568141884969957352727010242706351574344955010860992365023666622000081464712194246856939543809991811159480168369223126073049748571613303870530110289729154419622971405598107870084090911228619172616789461763716500161488582342350104579679419939451287891518465081703018307080867674360763582831911827499735284909329141835214491539678439438644551467212742199798986830002882503910019572733213157939831377606404595829921927442362575247357390815209510115738867041266931624583179879469013344412081453358886660022212677408513288789173499260848518773707528470238547600607699247254759382535271348926772159624729577653484894154143210272361154799072996582376975397659871553272803475430438621687577480550750657574048093909447084176952393502652497850032876411210557475410998781562957782718702296225058618718601142885570178744351797081307063736772595923191450379989052439183844256030081717461192399415545615323910878558494402040709168534239418308932244206795233580910569186441207463787765496552844590682664770611963606926877871984847346342356398763885885572934621309412233997377259570143712957941489576078566389384235490366492297637338450690697758251450498172959832551802278981536497633647299884751300770481353787963551546687527953773772974003182734473441264486786150756018884633552492811001993995725083454060236510955109973622455308722445264292072677382320199620116224529850138844123107455973329690109662328191207558743780880640709163107093309117278248462220319652827751287889441503336180384880857391596965140881363915643476643024894834899696708394423636130306161578825380415041060767468126041747406071466195610243895211515713561937052174514383671746780839105931511232409533608988509351378418774947838156805530497589493653208646806441070239012488386083399417665223271345215358716748247693753742711818628686113068109459693863560341629812932487488624551465107294299367970318182830244026243820428734986894894778718733373819860818587466252783863420291710174510269037310737821652407806095050249441187625046406610452520124579523527481093303184756968617802388707894295659823003517351598190341537788744557585062999690483034711262005052093812761964676229897330201932092730735862010043491504598916344481676980532930830021717287178640287431100446916702791928626118291753693924347061986865450143908785115628970902901940422883294670516940187334210401797678904927023106214254928464615077612751207398519531272853073026612583709516005769683299904112923788949976156780621804544543530769507601473238818323612880313634580982441027891387905449038485466444708319282734729273619243562572741517298948062767635932365668831776535724515681272814640763971860120201753375658422301977644070268877497023291881381505454618366180581866530780523137603508903840156911611716166201160901365134182994986123400804867758747875637456297210335900249529125915042931447615749640799317107564998701180811624081495916571605166743432779928655577236419258517389574373735111595760522133278191654361254234005882985096077247026002582022698597124547033107255631934387670410059518203222477873239678993810248081580144287159420928486677135180211295940445549799999211243600042169553224960563958758416963744301801302326659352308157224705065647808556781872374190790811247832470159233599542327712206631283642997347101154217232189637618112440059801400055013714144875047183494848113456859078950980556496352488619654384607689868424760183479378878108682329171476868505642297350528682309156444878604079809973603823012585052165871635315770893224713793296760495694051803482187184302437711768131441405255389141914052246686895080656695078346588627158599244549551078466963823363255166564216088100489487706157360036799953736616205089862636887016474127145349184794441762309474683396170129825784906153877638220457630568936076004315222811979212487171180439135842357976379964478934341114716226494502714402601700398261211006311696192278447785621048425202396973900604227190598852456286747464863099448241308021726689905805155234298287402160098722500359976159108974109291326411519218000674471318086984808511517802461412057629031671483243714429609398379188275791753780672427404620790638626231187420126202749781887500092673712660332615912019170263613362191524032593897464811889016632205912164778274884899122545418897313718690828721942057750260125653681838467182927037090885783114356854478591985581864934582873255114615651747450048568235275496793688144154869465158615408470095212216633690634018795147953059890420996837626302599533486843642051347356864152276329516466015572851292924288211235259663492991326423618577364068237177853681845618143664483597195295022252188666198464840523435404258073242706116564733520634110841370685978018228944706640768831970838677110238970943168297385071482095307319698663203391763795467696076309802488981425690652574653605358469186965317344122632486481417553536009512676843520129757518309046604621676027740335549241782845268972741821815830052890206908432906509786109921535622365718143420899407651399567187616121048288296323334229703531291503089961776556998059032207059849155475837985981687613183161153487872440454474421691059961156580407838705190660717746596664067683487598222137469219228937408063850731045829595806186665790845453128771883604459402910534084368722061152608958239323950075101135576017810604675520637434115602460562482741661556511022814550801580720821309853247557600016474160258320739609000786581089915966206744076663366030875294584442773775049370628203801823758590759740870198538773175901450915364936789134137232182250865368935705715806182716123187019391286253184841318414078796581951535118487557778046636890624444971213704536355650614498749786893922290018913877192712106066496790160172542824158642201527995398160059534485843903594411304786470545354899455748235566707020959200734214278627661019346063161689481674450454172797247829889141131841864984783788976310382586479139180699236413541266593660242512243726371586613608336931147581287909386494604196217714330460770281263785245855959974210804036278857244619483130027897690928707368931954079403824419217013667480072647732690280559025122065721169022256245361050377274405119127380384961987183540712799076504046708465486734941332610919197545980297978723199635490024414603690882477075408086721074454157067017731169638323455575291934376840240834836987926656942355360384581160506956872119263492252406688466314127541762197080619754622107628221060670580670937467176463656020713403677263126385077706496431638683508179017542577019911779432359178933350408420595802718516195781577599579918425356535066511227809073532810617643809355664055319837407523567033084341147510267329065660383147711041166763472167303179569275171875615375975182541871336155386911457992332042814191652048859565857990680428226526611025368565340264416860179640344726136774534892299782126462404259733705498766342345124567733255528015498805622450917649065740920810647204861561944894763660651145315418223072070806112937015634906076813977075785305487171786820102561244636198914192486108209677154212569958610195381480072451487922762117768066880404943038316420079223016626188830297712792432665355466355926406427244074430401982750200688759743784098497064901268024282792585464879034798373650334566945507802043572867241410518622025777567760511041084466249906871159510285393256494192650103790384419054707223879490482041650495096864084491911643286699498452652170439157777850530376422722175482631152602715699581266655658374717739779457285845773850169178872808057440226246370731684517421824688959784599086345030647230316417883392357928687516340905690059398997536085560610362057710440146840189704132606093380966998439617690132881854805990114146962031506573420391014080322090217824659943011065975882386807869530165965983505203286208481403325146035877297055389282106719796293511835868093292152167864949298807895650584530187280247681903290614294397038518154151169859630706055110560634477688273170082148612450885823232057215168919663442544016337789289896795853722069145151666824278396785452741568141811477073669751637090510324736710223105967605135306187788887537714438225753760573609487470177475571402143445452026021572172944585515392407767155656475589743040383910753203775728585439710195495914922289257138366437818710899008484765915619861359775319709831239223350734695768397304491476692348591945511335140228180329192020299548551188709910609375974485896696276729446994803181023162916852518068340240637256726307517129435568141706207640107108932605734433862650702980491873317515693882109707226461274498342369105369702051348900985626758242308860852203034644756078781793510850020572433722689108976523536585421776203882616235706981508888721228624279404214484266864691920391277512843708643894937210300376233550972351495535321712797190111589417999590833613137083260413907037201962855051694527178736939392681840131459973890334520766959727845806778058699305094623058353060396584492651122088098816337353189522089886207189521952093106559378084790440315477483222241896580268561649483223384717521200397549052238604776115473985752721931948327627075067839242529580680748289279977013064476908842665396394269300146041560343180071940192422176164601201439885299494541546402877205043831722931181489444315198719110156235264331714848313219868346174691819262125232216651634090644367191527726810883805896399848323905473310565029592878138294516525576301168551059804504279003994131695752223652919623936050258943710480921645879715368827413962325050263797089265897740624401872709536921344412803012299628926769079971036018367461857718571664588614864856166418663935705029769589051176728289347381921507252194386502036512670956474239927822520748342172945199718107854916446351092308253712862466094302711416840494324988512531799924272582591412997806253381426391516177987346035416788419070865878009228817749788583228819134162265341894906750151324136062584628662431631983475656119512500324524912435167207584820894052487029528451807811733160746767862688224511530094851560401262935087840535252162594840863672761576554339202687647207599658235966865765875797110862811672373667280815141745073906303358647488012430068253239420900103679687692873803985040661615614135840587322410099106495004228670136998153906184335215722728085369842068791537940356131271443350954634814493950901152395075967784877288431984868571608512091900855279799400215405292847367409476729040410532044683357466745070575220818814187145868176577095640069437673969857917891327670061951173009642721124561146678593742217807270153629720307158614929506862335444834069269310970226994221003849650141323207023281402170618708157293649684278749312312304653074282594936505131692176493858691801766531345219342052393945153142951653016783573057400589246495476078377395450305107704434860127519873807903016309121159817319757915768111288809318774773240597348831085831391514354523337541707886825794765591324868954737184728643799018786653169004324297027704908117423938245427889775372765281403327823827296968087538741780625337976485477790029265207050324539803004873367717191896094734177988333612777240891456338735592352626033503710152600682442860705545482333063679540531766217439436822400885885926218980665262553780244170174720768460139041161048780849741682498267047815134880602714142721254026270157716958371698570122355733506585906070465951911945278303842417322245970711704748684779910509178057682664167225514934640714068414110495628093780944619386722404392097636945669727829219932149501261770041052307448827907310317095057370194776158051759953300055967514172393404715231957403911686170820687807850348222442084602274873050086033738288563344612814979192299970857824937694825771565654844376427438363393310750496825108682135294065781043295852213168642597500210375752212681953898677645085298788700699997567191548039918969165895495020016882085805484958208876358000163178856895614232256600496354649038236413462333020369970872554796139695775877899944312489051905182254665897169553194911044473686087413497473584131649068857089801736693858729075175135132495297814437028267893822019920988341610140488616238822556228291772973097409281767193730385908717538085642734317951714411900343782908119290378793957458188517406778624557607465980915671033965897756202231267837525011688766710331316257146430268895434826099585952393380538522213539645643307168842951975462552360740301559453415554405343420718558771974244260938378939857726915900880375482713243052695357740848230832130489305015777300041462612343204764666073296558235803001375360911452411834166589917701009999222005470973521499543628580438421288916722604068357286481248508861638952058731570274268185291572731941327480374876830994226450429801246982181350469467210770293237542140574340084656313843808916515523503256414249493413713512052233984120541571383731151821365620508260876969063562302010440471141365049297090397860973195227357079328377873779798565359207223908053430408030321083761184931763015215358998171022086436108417021485612899143366191773790332459944436034921633049194684610630383325949978363589398409479496649373440257109563871901605354735956112016305457675200559028018210135389705756690424814116033702012293120667587495209481516466199455876901299972504749921238555991163647061395395715205278950411377416551996558130757648058565660236433439426611083050082528411936737128717639979494699979254371538735043219859692098009075307030679382232541568625990009377648897548310228745933058326299005855462001206008465496363599067088875858058604392104574310314845785339409042793636825813929119165661294983661026627102455640076502259960330299219317808822050985639424118068988602380195142295289734153411609441324979348551971421516224664406658387669347881297983262058051403337591051191793826935429177474851620099461082507139344297575559641299365788245982472338934527438404584630159591907053532325111846300869312973451806076596837829287894429705509556959089594211439320826935212065632889564472814469333828809296157550432246715236148844328917150301331733039481219731520345297566066493466761206625481268574348250380236795961131560488406930920699943783416478008235567314342652905482430891020674916723889615305668485064458133985638039634311584103581929855892938636176229757351942303841403215752693106020362640786662884850544432196956841031323109266045416558275732528650814536325066662548684309615986505703505428905987185150998753612148889533776414059163456233370312448044817039054280939794988950981264622023441657722859777726827868303746871416150023795142418662700323291534695392408646771274232991488171705947111700595016134187836614848880423912260067613813170966030818532035281089905496174153080692527524128603473171050918794946748005192091574930482559975993825507803567245194534643228606397162534813980606575178931693041804682169848174683329564271876947444060246962258654688133935349393053496677946520538090160096508177172475141901619496811365130718540445420600372014601861877057427023182451038415586247221376572327607484070474567794557458469895720494101831026092268117556709097582314824925809816732897412803769113754168792853783525371426924371909336842063296331025290607295079424887575985935253905379173385250561003430553374743281815607271525045611607671262525151426525965154516218143209996747832972313990297590331953628183609914605703781850927499721444486233999932100463055717390859286135935769005382989472472698354265176745781069715200281289990275100862835700667142429083525084500371657158818690165941856145448455045675086418670513355216180374208549233948561071022224478962901671890400658033596962275350330929746940111521075481742762565000076358312213263946992012190657951819881272722441903695088614537031455183673214680440446230343960194588816383109523226073171140931677325578676656605357923769861602515526149065379127731683360322668081303981522880272846291786216908838226749401397219678715660563355614120861100742655719596088482138148497536100654145650988024141954388147118257459710598318781541783143366341808952087444599580862639735352650904087839239132557150884865320648377632740045316639544287564229779522835523598600803785012874512226068791679710188867306123378795923778937677299734638010055460723966257183314380189840957770872598002034679640549042167026805706630415430534840004040666498838350229470840979895493988558097430300139044329644609798545968318422017522249101654681285323621852964524372859888249929497308063940971493593616353244417317504650683748146410536315543599789291314662357766101171389632111062684476105670387122617334357493803323005556971723553989191542557085035207652034624473893225615532749780292365383650114053472756275554716178211058225334490876341655998105559102482701766779761479715253938601080036945666148456973189556714193534296950216360370508767165790145006254422767569957098123287751790264608005260783849118191354043545514502951173708934077616926402923871144052969399470693186872207698570089203431182006385735207976692070922483687000320600006419495340012814804898237510330858473218317099958652782100324936845990549353727793427278802399435290260103011198277518955784385584246336446098025993224609010237156351424167310531189524216191831600284953026521620145064329414739395649961410607651837458923116477569345094598950995134124437993211637660759727941019736017874189220658147414298061178947520638451657090704843461723451484091123466599244987075466946221912700278175470719796794818727394280106802888381463229940415270547946540097069622294520009249503337711765159683620594766074242735485777162570460724171285146468265028499095437963142537415108555444921702493407350273944915735230396354024413444514917005461482856542314057513627722527081555211093931783194850300419245667359221983177699478702259827285211377164369028118831445402546680188147953349155162782339094828683402396479213818392397615274896111112470580797134503324919946578709675989485388705953646452965811592798488922293643147211256991460021095391222717894136534562065887072083239765631987277918087438235857076733023035080293232145013679875265289615333428058595859388558694339389864136322096207043573190805382251044162803684761359589724052789031232507007377860358103932684440738650659915660669153368293060056250495329295259738406389485045160274204133307563392388802851534536536633187027402441606626303934736028118819496372059687705660283502503178176688634388681965125136130782804689422023662648848190699568052235673763347765346111707421221724383957475385797976931320163386281048763151769873024213420279374740813708760839603041790725615154712987332866490452547222152643064638355058892764075665273648688237853874422863622231614743549181207910638664672272171555507874813136787364445488987278242854152548790732511060251585823176075836059326073714357588553718758886104566361310290877343899131267552459987214738105579658718272795364756444980792921340864987696925580956457947443917172393990323489679655474355665950041102135975807255370863450530630272627954518782218673908943883319486619226009829986056697086443079151889050715096259140144268502226852365417750257492182115513153118123376026398697898576195968832558356173670098260763866511160212424833513911940926129769060940945323521412742846888795067776362226776341597766526624589384292270216960261797981502691161287784846089898101885744979120928390696587300282532868730380584624979763253296874375881195265051981193603079988455494365444009506448021685110665900807017333157381025413120612267592427501739736874368346417378481874255199435452946781889464357070261042913183638600438787170711856896545822886868276814738775246003378730930189193114543131786475054990463314322697227192549304376234699118690805277441147540397071840691726376970889873458976309405952548336050530829682657576509143397414313489384298012380506126524883562009828883601779957231027747936393578613170112961445039849271199830744343519645287507762202193689775803943629214162081947560931693847516419505895475256210320409381722359231214567988844937278263473305116494072977045931576647998844251640066298031595217267088277406243264386633950636163201496710152731018936802741084341066956869506943679276650855016731749408588911566215386867663999369926753061486173434664792127440336088988339373359130855979558996702839201218580582785410529450408438447751003260456640923261512051042219556164399103608258442285512287567734775760649221292490198290113338568403071734114329285182940507763726361177974710882102510131632997603412272686381432598263149735077350052979946759427372705571013298940018793727496373738770631451768643374805171488706688168527312530881679254841298216978573105912272259357925582560401525965727209206971416449048610424583832452238376750352851376315111940592315838491414581003290101736217310522722522668613356261980435477310522050412584191775580267456244713781546349873909232855313003660148207126603034799772717235287793809527879797022793868397266808836678730081997979536692767783461541862832398740766655294661925865261613668509787737446839449598652091355108073280813954911682457990324467513243497587115815454053299064004476487022261217793669557267923433523157265745417129981692567275164490015150125687759476103361346202131005260478599557168910203572897023910376877092895187976410299883304105103075475477342885031814119527184438523707075781430705026193589730027015947591263178474651503914840496155715919420787749351264757043702456053005951386895686670218884917358022007609035711785063245009909235569532825351356816537331376694751626691910319202743008640863931423328430826390932717459626052232357338570755221027537324082872947065737884088291972672288798833207850022530480729637208985001518346058365637803835772221437877959946697468073544948887775326524670310673520502785285031732706774707781029355698042280969466253314235867588603515420659335357288151162378070218739581618024885942087527499001821270450224604636477358356417123248623417216215045572142237966788503467335625191562440560092511331934801211919721842068136035415976016404456637453522654376452985075421753097609759754186150184852524782955722755712652579811837253458356430961846630122049341818737918236008704107198664131650543089609190804102249006087115654719297004628146503212248881727354688231275263339723753608597260747222326691826858679975556254632002392688607368412632939168639267742095928780688721890541036240160542706376852695105529288658235534324691463007110111259696333914282337764548782726169211434544856531419496061888217374307858943383701340062843300677062887599302743731184874698965727314758537210358083707839327280461505213486646189332695405364807500826020330562330277157015306517820125248463410189335724465492171118765160264487730765481390201581990708606410353298891258490585158487795325990195942686927151677220709909137961337842175001471711160313259472380290348845809584476346011753550518112756528482018323292793489613523173548558443008330327895106738924404217016212261379906430268651596906848096937592331195439489746869056986602033157276283431398800980721171467675388516759983286131859043032187491809313645024106787638930992026284273347177559352246028692105231796882296156035090264623619058026558182652892960611271928048909469132828128908589457485917615073215287475014451756118264055431840558779633122028897697436193884862779236630902452655190019814837039559954161897223086118334182501587948410089896496415997203296717645411647128138361889953885472747486243907148487095926966600862523584168960602974684968154843314057445463130097263714209966572355082314270898497376454348653436159490945395012827144056113638723032897877819185548489271178175649224211166463667619179464105342742634152716517743818413757750515229165568781295794271182926108648100435522886473098685789853182710735435095670146594344029129472664783082489865176583055131858074725483215007387036221736178276195096142690127607160541878557142754006797821829166994397204364630792406491950351672624405161958889389199480670428111074956339311727437998877822764659243139428611791771570398705578833074604011955426486510464481484775031300292869141014910276310891204289306970885300281451026657956019662780759882365200414746717721058988941996679103564061844336640501345867649736896857244503924893971157755549321629859904914040981442733649344496783359471939343456162282203444473816674864940563605165662197290902111047319720939408705960616788220716998905844164849958906122644070217195377479748305009401558159525254671442733185485368730762560516932836493589562170959941399487174821297370850276657134473812449088384933037260124941371902875125383209448821678638996658367733645576401662663202305960382902754685772837351374278535513710109792756607796648991694299266672715792168904144956725320534386404619359611411476677475883031216112313073915617399322042489007152108001512572507461058213217351128970993669682761413488481335847562780361068814947770319892609634826229194516343711599492356007090114116396745285320810952120506250836676420438052288434849894683168607043855824146427582402196603207442499267871706481497908537332247168970526180935825027781120007949502023009865496531999632651112318939043233093556484636964569535630158303857132955900281271433287634437221494856190721663760789396866374404182451486075178163865206934705288918492773780153740864823627738589527884021422228941178882231597051120628322311932928882570117236635223565661131397396841603508408682093647427728149965552969553718539211460193084645612983964184127830010334566432189463714691174014792482087204514582527476707090132501841598148027437216277175328555900724862797091232622591224124494775548482912983726556484795798234429439234259176206056792601769470464688874204242289642993806725922111817472060737790533001675796088586865992368683093970684032252913524304328453428767496647164963415225278087078555365546303668125139866121211454310176030155634164457020282048034526969222612894977136910638475030864671616618292501697397372088320425017340127218410414463737830339452782280272582985340451272925235726083546442199261833910730957277837263016840611219492107721017565138213189997295206709409079090738596129157882003474852975370142099319122604745021953510257068345958055726826872931029228224399045762106131938613618360872381010663666109698848840376422653855083133443426581324580631624310449451735732546024743652013531171298531048379231191902123580530749008248895666115548999755716937641349349779323317066412026789421262077199312950629004489219448893495146524819222182303545931770210434322510468774517489737868803584693426543426877415053926503507246073655631692159299167618653558298289163190463234467037781929789879431449940770341290669278418389779812684591027647109988998826594329150009662441542489863760187115257988712322551653558108699477830953394817938606595238373571167872857215544190323780970492639755796216197348235633336295087406094921386869074199118515667178354440438955038742029847213012593008986273461252276416543859070849340574864292049003328119039509562123564083061104429698901685670489057288074234494105231442563954837114851982612302718837870065352891134647322862532037921821703725524184074001543888387462050123666494679472243087031637874650304014827906981282518682789089500982973287812848645965187832154297886057032263126181932604779961093175522628271916161384576070264894128027590187005657994470372964323105149940787382006075948670130786682618535740130368715961254850579485633155710846477749169131600936730047467580877319562579927055819904178533921153570032633249277795306903853714012526957997008429078439098781452483240821980042087597069696892650105588105567568963269632712698688129254584575471960478717058984534906897563355213262665245475296700764424697675380095617095062666046333067373022208592057765150999401199844039692667511233017309534696285402060523150019314750017503352750405024015996910464949208825966706793081034017226174838940187072113162694723912231742900101396664960940087529739346356109332008001969555620086265529383269978709752167413603238790535193046558568215512210555173387467859928746811389927559083877690250901144643638171578451910148578761615286065654593383424519543509268612254653584516290089550212501989931569996603079766253529956830840420762073204973380985969140060773091961172200965583157628094253291635664725168068135972816575620380785427577670827750798303648963821947179899715397690936574667733588547561615584972394899445012695079188765072001603883836818370804189522703876801640210086490076531339516919486257910956040151513507718836158423948799129811730259162372857138351651272703026108499736924181798843606539273647168067956042287452784730822484867603239346922342532695573477254525782051914983185806632276534721969242142236969397892658820932262880265370859964538106159828271479300344701516298587417699767010927658429916642911310712878881583521868514532367442253612086512128648597924821898864766633954528438924158194967738068663492581500388803637378840984654959565981289400518300746618312939679460372137994613973989029828198442430659673913049206085951278615622315097070368060202777281489658103364341717064613158226988543552823789108135235910489783511999271581737130782249575467088759406322592966933685703753300050125733091877053128402572249628284095806867303161256940407395797953407426407806633813112229997593933173499857604638587339817613034063710375235877684092173697322259515663096385460406367548434947361594397757117784707057154663008410936180270419367135979133147651331082903610607471071861719088139018787820985412506935277842874165519682813041155966453240889371097523278961331198066135025042585304078098076699019268048281791685256636423557795185265581740357907957974551046889468188975807439477681796162093485432332625303437125578304419357647048691010879797705189440872224162926269655519984504529587358825021833288594873501382901491424016525357479250143476399929758474244136387357574602241351735883156345764123684426236087051988142172351884053361917934749143382187728090551507660383925262951528271276389494727595976997317970865961088966814188012449194127158729682002249527885767208156010483398491288711504470315251612191785910193827326537823468806390718842719304159746570270370669532090077949686860922000843567965762252602610464556845172992413884121682100007634242843310877685188161527597759311899249118467593774503465312112239322508656991642284810035194786049078903129587611520963445483990654474905795106863102914599516959540005966505372468173371383660398434704962588283012095187522912427686396301796345076538904209006441167188458289334920231012151338071022273164666697746551564622845366031793278285449396609460270543528535174281308026115627749559088167699934608975944182977773201882287037807655316826672875490602749982456949620761398955448740192842633923232565714565859917106094869589022246824279748248794400058012519118166313442345667797574463221951431267238977623656674334861720637925888597083206580853745775095610635415578564209118185793327888950359960336166461183746904165276652575556923323962623421003814843920038687168446756597466637749800092678986034085013145317151656128879908117779004843362740142206968207082341630577119302146423082036915757420485692420424913470131561846108926875847720569194421010836252090581732785136362715211244340397370637330308841762343906281902561455849801612062927885016844228877325985258170784384505197216442378928507399476648807385635846299201430489539380365604861738633678302308207289345427347726418917570114761179960677859240786013055241598532158288750242123847781025028714184400962194794021604114381586845473751279962238675410844074316842304331092726582353466812502486719343381324122078100049382968176573221408921922957964939260364394555339171527013149707550282094315825722054995645817127935382243031801017361734819573983448455867153039277815493014473145517615990957479450411426432334593411328153974151262921477035093406382040003057337915091612607253188631031548771024029789043121512046784286280836409173178855901932207525728340817618154419369687942681671976322432727311703543035398276668906680369217231463105671143543959671075429633980657863070837321001639722367528389493146129049225183056646881490396299937832635153620301512410713434438684817751366318722998661549321904878590600569160237042999851951530499967159332786672967024228203911124288777462123693362728606549672980500432877451477885473554535489528620298744821873236489130754147178921711509438490071053767565280055113523884253006076315412852180931975132647382957024051834785472740228951458607169155527879440737836777511358701639653190254434411809588190546721441326702465586081422970583226913738736437032537423289764685828682065170425555087555202319949530486452710454816121773519823797835189070677934660445680699645641090346586749303357107848077957475919089647684465173530153117179784806766907545795083360014988172905683254460579269748031003390647435435455296594330092943079434513051477562366295748502167888936159187726092781314885891241992972971975321783929641489507863963625539845935284866856192223202666508862533252673202382677134827650350545666401764445730820995865266124078278945661310463791048167655279022482864063022241833982203657600520364317372333420998048814602752150022262431906717335162428450226537013324826649490408417208331921579224330728062954983566318904266324133238121395535964799921015540230334468147778322634885712969193310584674785592311720490027149737278143813165137689160165211196818672549637843148688586356001707166280990592623394135645740504600073261563427200524591396730147512685108910300925446732367163071257373755170074891033070935276496028257541926159464451251174149556441263862502932460498534896471880727052493455989605662130196123834079434932779585161858738460978781027584948242624213729332333705838107266270553703852884486309187820492764590063958602368072185923317864434540127437805953602636639307190452381004374311109437819162706444830825055797999494158447414029405671849835298851734326951293025073220954802584332471332555019961195155449241550252425752512656193089287223395858446413193872223372101319133226462528617260720075416936356492999622809093537791910364714165619437784333846478616376970948492480560326099530259938425010896262356079014523914529209959419938787454447985138828336691376582793357086278132930148344121480909420834099222952117595329170730406966530496408670017100163414278162478292996524838644371804332504077444128210949214563830780172039889180469884547010764030361311769856443347310692517011759612845110792797821150069810376501135568633811843237451772602082916445364425716999887348947210437493973525987677775627152307507792375862768849530452633052917363109979259727971262401268170998957867385905492607210059520243580714903220136007801746153731419444417585572490628707129387348184349757309738026421870495007036391259639441140437175195346656767111165182601948449493118598467638057035851469801770723806415135382415429417825243232492508332391425839502192689198023987420102590578544746766553364617496404386617729714616028876226034880691613307896090689286050890302540118993449490989103581198839330672972837528807589971026235887132575013897820840872286536941942534995276990239113416469573470785872002571268352989211832461484333727599126972014294931850599566067375465930258976435101498765488255847007108738201304438353736152987710167961075904947331773399217833923331669733848176909119117296631988168346155089324658789910039615437364847216700854704300164194531993758861866728544504409500278390648523524823238635819648769556612450861943060886088373270191687948279333182268679917611916351943391611198929702603702027601492094941777753305228899291655250752580002339113601672084081087563340736780654158590245158398718669088867380748409406716910207660938213460331127112026864980240496621533790735232007126055034452585577900160295939089087431186848040207569369700300624056328502182878825033506444246138639635835701856568687283516952096334480047482008634930803292711546746246267570941769908481640482039751940834699465354200669445502268275064332012765285346092960229851418805595952695231890676086541081587420796384553385347691160037094240356086855983997724404810797676717064301656061202756851365158972093613728397012237165687947799200304104056467274115325470849397850224185007983877954177984159036310448337622843515519122732996695075196809837782380984162054701075342678559725580693679953567238582425767101366107606930572474635296784620364209237481979599495001113085188155815013059549598379943284594848642383096564938563397113352456604218005617054499040962569645886878408190555803191489792554232698341448567875558266136472578995367640451995612983012476660879467589532009603526166486706555316016060886236137033804625055086569872414938031604634068456365025830659691728242041895972969472828266314967565842405911986070426338782259880620165868066081923836116919029668583194763603314576042662037888148874161609199937705670817138213259098513988720904188586904193769741368507222382701380890770309939737442677416975350786868635091553778627809749370118355954321695647071608401778160280919272900154133872014166792221786671882456857812975517298224444838008006336264967796136179360807944997632556281051955639246612090672915692684183926246511768934125085662113565792623800319000932905320573042209798378462208759307828154157422690114645941822366423708111033146073846106676285047241409386944574989371053603053725938484031283570216374199331770688897728688386124271447066258697317269693491948424701088452637067017255258304518382143478253814924379065749243701657566765189247354635258787256156349876555072672591796557611128062870796379096714288124297812636603621446781125501790586030738610122366483896904460330904912292290554900255081185397718134083851697294282239880412791414717605956310215696771078593117204732368138701216614142885863156285540003300962597589285633614656124167064601770233755517654387262628509316615867039199138784701758621337647460652970423345495687613458919562259177351123613406345756075440061491090691046097689041666044127409517109462284061937583401546688407507398871656349696357192786220663011974975996798540744744470427481779678121096858661375170380263554390607214056105952837032996336573870868455263148261017283686589231585996519525889641346340815736995745483765032294587136666692324337054075080711845123677632819929529988423386983969913533774471103424936787554374174921444676314584502098837783600239603435087544781247564222366921951869977059336481158938439667096209715972168254723155065333418451106280098725088265701312623603296934131271412990126314393236125378100793088782660114450959670681724949206949289637422090183145933070421134613709617316039083960103190141411356865413159084215487565774873761350595666013947522914329825279837257462169003978391919505252775412704621269404246984671173228930312422344798972909642346862128849796622817791116680965541952735912520813017060235828606745362590958761912933005423957438199863466267526532582787065384313141161550584472841139216099602819564337045206919889939109520496094858162178103922684978798886888751015951745852440840677815076422891199211265878023534219613191179713162642399294708929617832191608037506491482759120689954630000445187209865692291564757719217492648710793668443283581842295010624940926556268186061023283658662653941725052305955790486710492422034578296728228507725975590224569053994764800378570407510709403133875583901864964335616266983251170120905959046057906892443203851154047406581934087408311471871710383892432550772811004046261458666678723490480621740363607220924734638718779356779910027265464295410925798239762030932609953923197515179542417146910081374986235471827192504870884408614156741910620316603880024060922224428294052364142805676346649417060099434743785562428369954172841843065610300141921414374755794719903838681434931728930382612776581123720245774599674804289385495177413866392236477155318143427007575064894780101044766908610744644124136604717831315076042769548366223579700496462883884494585514142129647159219095695254780223278118367738363720636819603922519023067461461827171049540303438197322832610249220124615833812217746787739416996275040689302977767442561513934981778841621525886916266172749937676259308514681842725727759847954457756763015307039298670506481947586341473300457435391988061944492009950444093865921218685015483709762905218465403983044188407030827677625698099144448370478803827754209048658946102146071125250673974953482879725427289890486027252745776092508055693924683301721015412402210310555541428676682673576765304200883692118390836073362566483205083942612278689191659324850000772530806846969250470143406657464246681999963669956070828531309385102058889564649028745363365469373728889981433225060483798082121600116823353439960219142890309042752807107013318470755544487010425904348595038301783418581452631519376287289375476088136498389734189992084573245329351086056363483949153784341114349632783392897044012877084508442412541120210946310207092216101538979245392980632054101574405407131985158329776485048278483847335135306864682044484198818728122671938423406105907243311753313136874687340715114936834535731515277015659995115410316205696422040753099991616168741673812948966869982968063195546754378701899639882481887452313679559073750402566678557488854367762468983284203151544731182862410615850693066310976844489686727906961692668050544632890530389002859574246042012392503567893146734396348391923246262306428429005827196355503413800724178469566207058330568046857200755072235950271638694298151598287700171921597461717279167857253516468912097703185525592073636734193405863433270279026121260409517869691331245144372410427270734595588339206561401637737760614641127180749471725164169882688599075582643663672019624328531524786939214441850095364995348831015072344066641004349578164401343483791049286790358382511689092438911136078305275777215029884416808381178516086629385229685315771684936935900335883336506083964486092849910142306625730872686435815995955503822460538206931668088628442317363068922137175272977318459376710293157430703800204738986022607380943998664351719356400999727187948545851949221659908025693881846561287931867817021629177011233333010491966832987450693526173135736225928540840669742097866055395796246380828787838035836654777612148865285242881413313946527387810520845281766552531456462449121637292172662297900462501211019626023949308837057188624890507572303283236477281611681447865502471781590333434770636945807005394737029674719843557287031245980446922708255617136226305442712067630042291336142160566308559939425579120819477406183858263728823088715114594090217537497532170804331470451720263800297939320317007098549679140424476597191066694785816629822710607101827363915285680179915736824965605052962434741205901396055844087630072738509840224919734460117758541874624121830747783444901171806206438620310210198382559846974231453114916928756586037170929867078881342037146029745184402687628535509856917138804823920310628476040610369888930210321670889867236317248750782987888108557681276986926701761153666143043295600163931831689316940383936455278477805199639243863171917146097890742119346192068613961305647774725246674787990462545376873331929243810762803812469766187530190862216507379077719615449877304141244361839347630316407052687535871526680940678459429159991235403893221588930174861315342902708473052630701701170227989106279665600498975852021019622899690420328598378539370500476178992226723811653785246171656145555197649796688872711545867977843400894329562045628714774488140615504608777726565705819707304959118650053162165001170409403434879149432765778027448856768255950507436719657936180003182610423320096015580559554665931138855663595714949394080904207326186133934531940096017716469422047427375807147934498795140761060425906182870155469408072850250175349308867952321938736496904742523396561158565595761190560791478292635137246344455985667459615346310718127536480850043691932150735410526394111348322467364876421546491506070034831136694690030058301878234741537826747052811827839977140092682286667108204422929374724892240744523170484619303306347913398658537040814936959027036520504542826130573067137747620257879792923326161422598882218610358084304043255788215354603056719524036320988778239877047968615980562737978466418543438095368325998822824327749593065025252321963871123365675442486596022216404642333620558758460972209017412943403843322185216028699293809306668391395285537466596973836622472004042398554203661600141127766641853615031141945992461291888730758375525834436047190346501040278489166158138257534808879513156030162851513772780333242217965412065915817865255411674536912444452990672649116101291935708160991402589766716547949749468868176707446394562748787793367304319957663401869479641784201003251794808234208922238453600567668813123260297797804989498556430674941838608980023605233815860341318410087801656298080986235745312597481947912754523609973028233843094984363978315411784339306424892968680768198809801484811561319535230298014554631452429287698726853450246317494684483828051540254138667721266066941351100864617533377904280304009245114337663330672171755892995001036369444458983422211485288465646753040433849846014225072784834799024946407760448544779504390111914968299230788821115479360479709632059216857926484170405255063912115753905553053538588847826813232521459060582779904859094935083109536999811045337737443945767248125013230590857709683268697896917290759816269237060946102335466737395369535771619989779645834649448422241416860179083279757897227923925780944712486501956475224743535668020650413169498691834664603659132130978926088736149137938078839286862778001644508786683553477462745409074751782169482489896615446403096374583595691124902772783659644679435624479152938990503153742209651923175884663215575874425230489146747123082102716676767584151188278229371637957840204271696211504538622803150967217905464807153877479784574739323802571414520496402785946766489194178628634765926493812003420439932006926701331058411960314345823189446034454562772726874588693471026229375109662438444896254298049385691487272618885155842699375844980045306616386822095944221835074546082795755810319084729630114932276361502395562776052409193496374945784309796499951481769990342603948672820577925502687631595814907845200718007905181742107853369080003318852069429647431700348500605348839353700456331967587994629009740929859012759794567687559564190618563473868004603473698219074482455240174735418808888929059189606951656701519764574283525839539055189023565970275003427379909927268841104621379126356973161721677371812224467538634944829336450135281725861694143498556248637711587604823306760212010115591646144457493639573699328917395133688462430115097243939324298555978730062227470477460224304504631242504356521981846945420905458574162960587145573823895913993351247949385333515641842214366782118531329646982405216998428453096925911264526365658208942140703696345374353983707179376907423412596002657732591966414225385984125931659811562720751646903059897001659600624876400183885798586300497029579398589978742243153459894208765079729829522483027937973095918309427718642421108634464419548896870385663989875990994722617394718118920647554001297134200524611877801721962017125248692539481835178367944753804640794585348876501421441370089524064609227167288065812471112179495545180800459468516058451477171707416462969016668986594933701427068150770562404726539872933219226234374804713057479107636993265401604957337546430379187018470213569319107649600867098108708243336208986486855269609406176190979637624380747775634712262996297085850528307871943472394776150797643989719091554126299455056012132249584475644822488387129286384386817877843355924791512690706047406314072903002618796304382290373872046956540983069431427937515222596129046105681174930226175022819802118445243025085195755788651431850941794347790057191679284339882504799690682897947046302950631520867926614890542492678512556241297672047399321828689912007869008154552392780831752911794756584044478287741137597583863160582834430652535641422855686217656515029902467163552284940609424635911365172103181671406689677511435058578313485619243770028758063421433618357440870632713118855914341173969636550369309399303845861630730676002413044950358346622330328199806194458333121359342607005364185437175916090610612348454095300532632014813266424722638996164093520287270925311248629117578264596469059842380109775529703805630508294083768695491066809585021211302090373764723177060739779319427076115567476347343293114330800067435103733791408285363382787483897241625348406989658003619861277076019960367911308013184690139481895828698862842167253338388873634280225812671985150596663976855491109616997196048841597865357323534945769433078277845600241150806758194001874269109745971944347079056234565934130145568228305597110953793785935789399992965464255147391370206087431452206524509712560655396273278008573516360874199386985704472229772997441365512904744948878042897903743451561936601608999284869325439067851725152685001255497226234421074350907689211829526899635810450307299521375142498205332122899718196620845469644492650965330561806528953108506681676300958533507186004801696062370454744492194950754412207946464151089147691938426404063978258171528981112576363655107871985583172253739935895471306251769557314050743435459410725854997041720966117473457369358201041140785594631394219980422037031149914617219179422787896811466601118597582762525589846260463998939383066012470845443025782516629681398340698472159344171342409834834657221810462696784379020080053505365732809960095376161842731990784261452003490670231601937976756968180510808077723466011286342901677376866970716773633991208123247464703923340912074714204385234967367605684934329621985670021104848043145506839732237784786104003712361126964650774635298687876860121580140393948592820719003784665262439814912409528056669702858062712450728993622582407272589964077940203311362467492742141435480937982266315214532052606497562056262388461664731784967474066581910113409093980204171121842897489493771998382259756903436704259075802059904281963620179837052580551798853165781906380031276000906937696948975554810683252915377139797522713496070775661160165848351529236310280992460113727772034228137153245221050629414751140452635117418542455021938488759129257260342225941473676456347105792626962291279825564077415925223215580558321890050458274955601554456495832757198340836891872214979253514627044083239041148251607478840119041285191127563296953471400127553513837698010793559563497430545297872387349121666919302102984132798706343129455563654731042097772386458460627372444283829645428908577052547074304147588249298703863662330327827135880942124247726546714924880197527899132107096382944333431119328963974605550128599275052237057968224750619477142929448129176965499250500515007897638778935406201628069655575557704464810011954049695333263045972451221885168737227812106287739374688429521409136925939216116273309049041160549728655726351370961540930940954614850758099422951638927987040667080453755916505655869439429050759899552116895909294637730728493548368559323144424488780442206834242621919114473569735182608159319027243406343374098844828227207724373027184632391981651530435072548568846930153322103134751491392877902789502474480884539307454505561880229870157586952477357171656075126338706411120481793607410033252002616078211624587290389656930791385132733348848634743240135581125370378322090557316329693425641644363797025221524409261466493222626886580901857197738545546087676665926501325321417388029886453696015411951643036099644776195059813271782099769752731683883890424024911184008999435178511633996546454004894135422732811652312260017434548244573531759314921300287566401836893919281903353780908279235521138830166657519406646139580582548099006415930057599841429299078354156500896089545547798356844734547282011117718797929455986176346984208414468247419432098981780076100339785383503534162242504216456222964957721808949510161530285569861856203144942182805531103807397472597403671208861582723434429007691022328952530305280357288596160231311237198763897485907747840302184589775364780780537111599816212925328281558311951545591301147151731704260126726965578926791086067011430009180009358862118292086033359406926451381888604351515819288638150998459023790249533372739589427898615643693247277258253779971515228567188971545153599415452703229558789156066411996832828609249901356819496341894058201890244774675504824669270247449132283497870870912681108193261687524307876719502083470060647696981460489093857325984598891855510203272545225892251777839437089734998642719322866597097278457717142798940055707484890694865880618198944116054822379858906123333413494863945556449287043462088894433518052351232461165342626999100392423769325871349440936870521560803789532428185090667451804105501256899057015950817203873268832372450175751519116594012352061547457134064008502329765304425556230810696810115212603849542887161955507154543297138172815278242698846991443209562214888172769478690962443223036378391084477939511608033766922208496385858960224948387003706584037330605965078500799979632149612591855346498809061599890371850817915246481060352387296452381736518342058421880436054964588402066406595381138444240343757475068321419911281790975469834446314689599359822898536176832562085428536766826845301975663030227945528113146636308855315378539992625201965780867835721255616797267933792267145236950126351279973778891436666941913838092724830144065725629366446384811303938940130877163310597973614124828679721932346019330015466829456563093843735995972342089630298941179716867838220033932641459835964487237876885414059211785060993520764088666495211420570300294408275909349163882701684116481743405416150734119422225605144891123881629141661107963218203280988984131273582557557140093310578963950023776705410110121411517297080982961505509219335876934949447626493930030888097332755002354095378663773485879388614784357323287105078669496136902100206527865965255539388235506845367539169700223646134325963895278290803935723500277897929053776123720434726508693061621590530339535074962787000689069442349252089603403156576107769175290168078729114923648779220127660928223560222904751231104928371509463958507944439527274752033759102819479117463345393673826338729777296225540300642257675988640045000168273879544399087532187235645101762341274175895384025965180979216971373252563163352668741167249700724428501360287661086064851863738250062360683473046429516667897179777626312963765909680880594392939314856588941699534551399986081429121034438504775258312497783556995135521522403579477594537385830027332279412429386806700323212925704538274544921182709592477752128188717941700103773294959866099141908253401483321807350091634303923926707635908240730874042412175792376226545389884700879749613400364371755942203003224648867723994384064322887570850443388323854010697045790534869674022539570582120759639456650654214737788937735345273674775949215185611427333364672628133300668593990041911196927580685057244482227969302309310578637621199838034323212858164730689366809103303339759240458522227603072812124766059821590727244149596202690995765238380507597077993474557242739174340276932439222551865303918232622038900544953738638579526992133533098260859177505046152613759799766062419400655740630573434027599421208680503964995872637286709962336761625220332475751389423169614570505949662441518974470605593170162793751695593554050538471384085959059772866776107056936683018218816872190436785766844835322285678829128346874354390673688839585535062804303682573315126637910617733754218623879466568550481554335365029594488275393819087047967830083007928306274562477679346181881450783881334307727926120804450121257799761944498028081846213838724401632303075913889783772510400432467936872255662963004194237401494460297954587365017949285108634040213545861853202062488415971712704363025064153037472318894536603956931432131354995746173568938636646294417696557434781433450818494520979758575612369375360393676260368960809188691519075222249770140854674157285180371197839503599322741523265898381671076959145307395480962263614534922778292373115982989767423516714412210492102720891686319746720251189392301142998080353048504672805905726791262266697338531119911007916962283374763090442075076927663912008779040864276382896535280182331113700400139524941613943349575872391327576843309505782734191362816769802941987134466538032554595204808508067971288090469934655013358863136782271977588158223129958810490276772040367195170674099815567087947891660129942130731336621846628860709287619721162762541328059004907211587238012579447982544334140241199267735502068135812838518158847729365262723752652924791772136399021457199472721877292479860692665428754490316514061462398278909469446640966181300563224416849405601934264882446979004696014061239881780870203038528759975480686344489419894301459008735438461563732940438821754362540041088968295201453885172304293901303544106021129613256577759156802003571498314986371214336566608916900408214946952477033383583868148626493912464608515336453341220692810817957691091157628578898242105636676985991509944925552365183518398375549839325217186727929723764484927139155259629449086783733938087926451743219092390855881229260756422424858560463536232361638559996939643668891550124970396923816055949886202870570096983179701206459855175807803160162253512053549602514786914128173818191528554207648103766929750554892117507513985914348612456192536694083445259671040923429863420715585092183301775178757946989847870348870947477634528499422312804430338758454167813847865622130145310054941456382361734619373827840512633216270449069455620610859559871678184305712840863743782615109431551569013789412369766212903532023401960537490552102083887769361168818058463678490914166587935651656324208397031804486420111525648307392894503963747772616863579995834259818416831876054071208602182504038976817230311564014678396514516728368681844891137431145561835048080860103398320871392011191601945714269677532488934512316112527245845385300307237091825804227807621757561769617288270461748348889347993510552468720540810174532771635068791038306739535593530423381922878770858181918735439778581018903325672672287361637207308735606833297225521892575962619227872084858913977631119415859147670917550598785907827715768243350588947281986400016663192383426875692322483953985169830839434267871317717530928511951352446494322883305210085926961981435193091726155316398070672500220532944895583804377610776250035463606240812232383533044369235074401514117571188562123180678316937019248722511928974020547582141630970473016632334620893450477113207207800198425693119641844662706921993741279902930638392998108687073603200219011756496956997871791592803931170838058072981939933834622004811961753260697029487603982052932365943152799812413561565854185459651265377231854562756104445472018312891295067137723417148170756311529462835130089362803864623703040412256255398473526598073498378215162875541418637808485870807633437091199312172298470076391868630204516898887709981924279582146812716327605213085728729378573315528853346342666364416043031698715112968543143651922676219877925860192056610687176305401270563296440189594115313046527578400647592493090398437695462923686741918931592124666579018846172122020038076338344293985181828597475744879700179807971643604644693762005697860649133679625357528409392713288416559604757325327478558653008822744520291336547211024062111268901948553613056774176581759514009464397182795527690809445646227415650636603851213623462214263485365950566652503636495539997029947536179192494450305614221953641940960504371955043637830139825390718035360829730584491619323136680138458673072157059659964540966540035606207810337339938881304037415094109068054272867642964805436462492589560239312588467059970640601368371268407535861911703460975043388701040768163828185383740145972311224451713197434335526010116553743671777205427721374034439776617338051069821913090230473002533755531586284253293284410805495185782805426123294888793318878161105015471991869071519756204311962852311672864400070864853158187417318435947884838101396259410989993078614275972265352947848435012860839144869407201941747919004166602110137066124583846864714170486466791518788541332232633098529634571149089163520314827588142590250548349911315835079804297198773836878016872733241523847055408785742135775653074823018044151386240172940440424720377362129508104524441212636617355818312224200717190165853165923955558750054420924102243841079192911556458751331035590068789977506835153542298844648604568764608533835171168523355201150439776400410062307806098077026937131882327607986770366808118674487717165106241853045454695071850310584628359757449449870509425263094017564276202283282500650054833764892772242711354880757672697426500070507860602242823002105277714089025935349516790814000313799536228418740989985463794524489911454630738654673887737623765748463830585109243946496200978447486012685138028899175842623657113059197246742274656229450414781978164607291265462661521560770069022002731769743749067300899830429497114339371341207949816903546421280651261975800490612077071664516577615206661368443577869451710818139305850671809803933472585738315814872769182861128058656339872672894728540744780362230038076708464223225054717243951866122456207860038252433552467825326715496375515703955953796908638725466346705496318115216380893222769426680667482423025910598178504473443808429018050056982883162099427927945799340278982929120367306912816862157267142818110391674449849338160884494223786143427666943858096944469195926249414968161945922174056745546376703171398637397360298808376152038410922723107383006842827852014385162211888190957525387090273400962774415919977356575016469659125851190677507749981991860643173111672760581834699320305090270125814976709200712498673388535623438230074253673090138830603563316716515790028634790430042392891125836220688336554777883844214097757393679222772932961236257495573940068694768440463676471780297167951281398212163502547750489864641813859827459501229423811187281366188115580344697175342608075978859108112651697613011608833899448673007339883042918628000540826523315762155333374556535016275527776070607476778090784310512698982136400696418032317168486062359220124967702806829128958851664323607618372801372044497297159691472270053395628726501783664151390294628674003618679381784182478740020617447512876179394554163679818521188061598211772322131573430802484442811491805819693868811284831398576523030583595049021676971425255015236950739243933710200968637732452054971113821948209898779349926603415426436518820888064673276429441659776303084868103624503738211531658822673163167112682053320947637085845080184016056561128223921792370997140570281737624289745764316969434582963485580983751406761871887131768311751836116507817328123345884597864387847562199240709424956082151182058167341666367020999866043787979667694274298744464704176788991577296683293904933415370393819254349793268822464475681079162580149983549073454350899627548059815050597335203195265629779839258890095491836896015998299995129731834855165722039476333465409099148361454284819356633665625362642784694066144177204475070222373786978176568209125602913791527733444202577043990314831067677001710706329392967951085217282745675502782579377825958213477549543520940431940020196566332972295533462252300508025973673020765275645165002334620469238113765824442584316511026514411013117942220766109856763427937190991288328834816011648404800929755998546660968224032586630657199194514044140069757090379253645457162704478319728895938973786108807837039587736479751734149663169328414401280598162932665341516284102784437069727678398167410810747662983775997166072572101130887087889565636974428384047201370406330835930755799245781942509189932197985233007624849453926800515707659458830355464986256815426125963208725840511864170066443718929054584914563105456836155074966325494122119091632589884424997741134557299855643536936626484869113838383087534480968188302642150457409409009459022005710588631112217528605810621711943830480087865101521655698877909878255635287950535701178890794965118039927727590701349872843142336960655104423414142385431283831509534714020021130143629574566673210246832866795358834666897093136754999388754241725475123279911367844081541582541684087462064212225479119064664454797244439963257414778968779366526283731567987637514555196650674766508780291620471799117818715182155215048275409541270111886294911226810832129043096057752266521851741698622887384025453062646776629566862703030549099029233306562276628656321509245285772602824543960444744475767993452698977728069080127579732339407974780314190599398421001840373803521531184426105730418639684454558657753842503928654940683054675001251764054586150043134160658704648343804447248360991384667852356947637262005228130296667456383575760104959923531613087791108194623859389068078954710903789321751724592563072961215571719895770230027075273201772406312630201252325376210136882093338324152249545952556430797700754600399750344379640045812294660174515133704351751424384417150285372283829812779363446237077730331611537437356669788768733367859946193944576330059615132803057561915099733635597560064360203529473099239664740437808087816355018666511765376158247956751075083186096014974794237802734215811339294161387717827707786905157367965011581084417686281236674272939649326855688782120278468029406351102073494900951530925554767844510673631060321003683030394402546736698472654861102798251726075640050419149733701927058721000089159715297840015399683818870337454663289160322387497738178149597102162465930640650287728540841382493082571055441464229730696161224278964292965826932533469828988353761974135510656444159625921467952472405732512931883795652838328622832711428900985950721470362994323820028176838898692712289316854438440485281254392867283411498467268259516190890065253391713389541369856927700702915781186015022145656632855744507650164063933483423469288626351684000438622685189537430089772105085753684714885169894759946083260396757446070254642792405233928100867276354768173520197693328797055352249854793375088388054907543420881523382941011537462236704967364287215748717888179975814347245725844446102548164807962202701980779711208784469317880841121696750591116213928713952309720104315683077701667451821985575676117179762756258252514005982037085861647745729625828336721328221102841651217321778088260541263742842280171115115124116442918040861480824648058705439414762827852911610428008182495543362912117686119662093954622342824950768198445959975740953400774088918353301665713081101640701979727468535961840227059487430361213115706734567927672083132097166324022865460883690803288435629107399495707001561920652192311094756921772588941531865023765030661861817322457803707379923472932783784291058055846571725176552226224900731480748213011895600388751713754607198254053165575386238900869029752464056607627144263954235404380099102065744240169653423631230925954981068889432069067830580831290535897436537599231073141089102971751555114107488102605650425007351713228633456079178964763271942125829664928124693799028319584702787501724447497320166254437715850677108352288259861525755402122876999624107798236620732086373915059736444698330378020362104765010088010595914874220971042134709946726964392814715282861635619969706001350905509670176374929582533980750067992306011308588028204228124781445420255403925312767803861079450182758122667446747416246677312250082038597781779910851246685384207247767198570504389629697617147435355813389855057018685233803372501390527766685288686113752528484599176890737395020868976808589421702502263972117472732179588546279218944532129398495720786738954440201833366347003298737124632464381473354729690200067334114535756311314543555332319795333070547114641213224398831812948859065155892349382255284619901934928761830358036460144282506215123279931164854522237472174106999384270396991378865348109626921201681477550774984809959789289031376077515491055591016762439598998256758091194387822559372966224588983801122177443189295209040167743695948934201122431154829278896614599898468018136939568172774620322271456904767443329163259991891440227683050748261298983058683603815410865050662291086347728338026633514528814034744233571107185124650881073865722154377669467976092272440052706936498117892970260266783845159683700695909280963427670534579333693787939470289340915048336797142146829246444170824779826271841706094401282001801382936854344593921099044293959093800927833305379454826794513370410695427215379112267096274553776801906046523363896222677102729336396823867955778242786443294257806029257855552882205881618356090157452910665042658837869276388277572715110490912566136216086759494047377733969917701860943128513610787613854630328750174123822845488687951725149905880083347538691450168796446091456272275995754127849965908048116072220603297891015991165781193795368237892686138461002380665671651713937421619702394340908979799958369547888725828629040039733695243497594753446840874661565523664112843236920529604717620159302404722881482818676736622693623956348318542731152364265435304105510588213221810749888141451061473725487921207671613223296111053488355361482222286324151553797849386886438707569524835929317965073369783472184736795257690335547983106576092039433322855703231752066697949265395569680810903800765447080360132634081452532576575014944965102678595955260706067777000750158610879582226865594926166506688091929103076185317047605404641756692390084201532257575716308655947002836176913604532074252959980926282138127965858707962744421409279576311875855857933201095100918418233508625764907982670164931896001006820696892258441702205720077369892452823857017759428475688695597389815446530095729768601804639528075737638888631816072298043445759682387948194345555260713350734963990242935633162843907701768565530560233240399530481330287624437237310321246047032962684437806503577902259588973215752482715086177130474161596196545048867026436270939810587664181734310243745563553168576700423606188092506502987502526557254140734435710016061513193112766282316812153420937085671651714306498479981527283350970288984744581092472447335302079118775923834000692700787444104575629266592229045091388702781592331201741641904309780111084351347710574348788386046869505955832479992637834669826718370700570505204584391379505678996321862399632610865264505538366944936498645695200334827161173392145358675987105956477142317033073269167039898812510863285674180237136167773330505897469738023309040004110654756442393451193829497936829122489861752759046175973465878238848849499974016394098809659809777479999506910033913137655311400805816677868752694926509485510649385632387976616601746534273662726002664171956708792498121885067645379427977424380666663663916191402467757504987957955802557795509191710530480772064196868013704425895054731863156788907520144548428108429979053763627277536979867019781616258567914742128455258684881257784342907833625202079353565837402497944798893798656892960234378453267902605804380342681108202842824633095006593873048937671280781149604650166997911086542878870257246656499503694120713457907974375257552797221543826344702870779455026594647839441724564435839524198025576398112482417040989122901083287060475304006862465357093183487048386787097228095641697696363970558317214468808485385006223293768661346329584191806995518360815367973801198531431667419489985694168847405018872863844996134931567302878069192359195747297631605401482848868216679556487847302612459878704760265946306042873602464817369640656713377762349345603648441428317026063414738383778795124796392574284797728988495158846930352371988415973307515494182914359234882582309384346739627749085722776906696405121071250202047328295975178699836953932361147567790243407464373138948889391600872841963092006981205280881171788424281855097272893153924046335653325261661574482428322809859534131577998067361619746631266183987512937575848946526333464518914225990110371371375553016397654520484689831251785334592323723481807519535634877095837660978461183311904552125749820108593155415966440274056242524342988201652653565482651126241254004209747736848544202171648577902012469552727945952120518339534520072198359198988487041059177192639990866835025717992473967742650631765395182345302857419259832952587388951108020494093564396140971391928680767579068244047233315281061637444665505065848920656017175659296257683319627682507206337816445674670318433480649363897097099014994637479985440045839967393636983975748583980384723158780424843900918086513485143308306677905040319121327391480209801957960609602189742342520759037909816923325207333394615369025744757091932788424553913661138353144235757670503298813083653717676470214899423494199750166100516487973151459203803379051995138274418052518445290754624324700229212718511331614903835515577286617679040121209862167225854247759642632208592746098321497870048507827334602812193904408406047208237899759362312089228386171514570267041420832294103031748353147365029367477558096717400107677701282496086402618860240317171730204530411937297849947612790869172083193023706438993584096191889698707455535889009815572560531643230267133443785008108381765543589909382767234836105173864113218480004289164888089740645851382961018971349870318603717766149218995068562618289816921422202324288959646047925357373266181313797523429031267758433386008834607100930117580239322175813468875708982848991044392378897944410387363901611298912332216758884597122289668546900518778752121219614144065615697163194484699341398779693048284693157089273797892788854497885470251686030906721487939703634184358562794906897047744354743365381949530604250585089740014989123854414979302947610333297142347511681715960295934718432101626004873092520907933923668733236689236115805781170609781689252175272929641543580547459679287966041627842163291825154032678402036166343227418940700961275511531346798864244975700459104948898424736816725365879193560738255016126813596829508369660823245109544038374068622587383390752753649067836123577976965916963216386742395225647605785145159399392321428098219566537716221870825075872274292048521239978834902931536525779935455031738744208215280359928954194938718630974811365112828258564015146186995385526904715758077011339448786883060615747864747688709100117319318069239037955783889835559776725921691929477383273761731306289508062608423274459005258474409611256879838325161329203072791452555063229913301089346763313432573273703625500296410660203583900529959567750556237475925040863499267307871922892884512069775542246108223939413896477308432022549588041546765077616306715760467327984086411019283693537538267778362469757695396945924367189536487263134207918414628195560085564398195876292199922082699132580602455563078352913369922002372103712721823844708108024679396431477776561058369984953078067899456494205278487322041789051906101737115246865820893507953161205900503109556790976621158402339524599653945271959670105177526732277885794088973666621062453558013769206925110247186984981199874645361967555421649376348282211496413455836123961530215831584459832372237136888973546945479025012871049390090705427690012611036805802727823545741765909716827011527719977417021135566497834900821132453868531517425317166783404419372429485719684525553621761150040714861987969550804621089023317095627986960580170704930587506518685030621266014726913281325219351927198773771211992120183554694670126554374040252861710388930558586469395355506363852272340538256297398776146900394298852463330893600063322006447688300546093228451559558716540513071141236766715477846877969513579242018393955129811142560160875992342066019259833591944174190346993561527256189678039974484128304027889739237057376476789993099343645186361164898339885228916321885373624511848730924333994685037496084875856317983693740190752676886491678411066334327173296001281325345461879896213245587745421394874381396962440741666749054399446113408061691078583009950014900449508079916197131894432203875308127420184585441156790138389942207925552216092356677088883785315843999545664742710512823432199088060865918926290489529298448389680053374983781646980447912079076907803896061084627126752165384905880035391609081125072509009704504150452990100987177459097946514212420755712712026701477496325758404783230439009456931532127236375614972976358470230657862499028796316124752949924738173779207208309295813460882609568465520041642198757882538825336156247414766126782778278147624023682835340969246571059890599845907123571845236148052988954777733502109731108721328164710398583463110731166014047075372156281936353481665268958555536390210659811964640042175505470604825843363025650432161398456447175971746187461560076817820627383949865921957054732473070113174297298541043548820962963961112726829517369744933258526912688849993188059791649761719742414907434778286125643159547398493248921272966424517920920321142192792691346897228115930323483218336954984296858902039093030162505321550733034569818287872938514711339443349060061104663210504371130964307210362215033305957264063855143279915148283570208269325533004884843085012206894878333898698725002760305233622560059056211014345375936138358710381009174511138038433155025667435865127396716895898271306844555371251238974785124566041507195776976037365726265955553216977518377462652132383550156585955117770727468524761136580382230452248317837581249651079491963399262735670549343697326305660815586037966790448024829919222638709079900921911555791010353347310003838676043168162318631049428063546424743675216648018600618255089223776445006744041145542466689620047176590877029813241194264244167189814103923118736409075607859746318224265179129498876578235837320478262738559687425914775495841404008877369902358187123367932147792244944261636384572478271242119866432359087606555160672110820530115024151720053601898945821871858157296794816118810078131536604713839070472043281963777824614259791240667396014632094081149500276866099219621653540212460333775882581481745704813828806926595169193091790045460502849765145677006638138672504691131433595882343796396643215401833776864344505337766440454635484850859913354765629160295779062182425210442549725599760082061317833707243295433940860947026368919667858955951904541719486217510770750530467565018802050838960454589577977525017577860337080064228653877075737638259905878608081904964517488310277588417686621364623944048830383334968269565103543481937401742608794861176519002752059052110325832188236943878724158078375798595968341740368859206573059371448057853458915047857966632015190291586510908921513955986488284130732759660466525811528873507596548341401008157875127640634991087220494626842193667554184135169805211247933361988042422904726807820391377075439366566949417361478636655284186135198574564639309716280420369583263124687598768949909988154863839534141165300975960059012712337440581221839803824467839837840472787412207005633945880643292738749579762014774175530885573056210186899130309056825056193062855756586439223662367452032635432111022065003130194504552592235794873449147822027934741079941230500422303717678623908625661141338606354861604118090752044362165381522139833440099540957959634101133539165580138189888763120307011292166374710813539052521195000736099918481068927488593132415967420697102584744953520431605820452082670694435327474362115226636148752676924986956074127100204869607180539841359762775433088528115813296541849056062196303498543548284544679295656736130753119383140514256953438534863416882489526760454457450460252447146140221911016748189250844842077064418180101840656484469516865017960230112676757667436160312444541719279809319436559490655348525809018105304347830077397260496306076954318747019587816533935075547132397702141759241615829144371857505579309036551175683485677245980862404305256525564321530454395077979438485317182020797720202673623096992170364272397379175619720676291010611042119552064107904206949302719038819253866946113589774646183099199594327901249066310360056332835275067761897788006866844719912806032006272268253655359756877856116741554734626243069976304016081837852952348180183096050746870060482993271165275938019634170606939359480207382819862035381652978742156628459400075067805688306743531277116248676683879084811044180206851357359504987529923216107746970285227991846255474542988086958891703772597761991197445679529003577964688487507795056830747869699862084417079012915795530954985747753597456345371735230595702549758679340716523974533190590586746065503214948424251841567245277744408440208907978062258818217965446331943655333008591705917831410399687898077648524706397901542276390238017988961532390485138564600235579283034780988352084123459781152602128379077521091854800295214521784399528145015405304605150403328721259559171486219590481331306588583716175391417419381044752560440331881424937799215031029470637931424057588297077364320224569959077228744277891529750773227529039015078750399378447599485278700301305985714783602691072826631937389366587023840629322161736193370469397505524749835125579004326645130487661076825059644267530534673087714092387980147831344596873714951054690396620515117261659171245158558147064962475315091634044204208669692566551968909241113483209472874306868138465927362436589274374427890768012626359001665048938251437304860754220507903258025198894664659020320428509703779366782861774553792100167866252021306167356950902697037760599243744056000111350174564354941800525144962638765014518818719300490525094294196998465016734076400295452450738149856095271450055682957883019864771325543897173896483106777931918963954052982581791193505174777474671874675894062242843487727678758321741619142957543834812693885926578889477717008542702538801072498338996884719513454550966076056258237974920096218799177343376151753478152562060950731792600775747955041274533764906876722525419533452909525537744438159965431961342050169038232837787846163110200984053342449465960154744268918019205209698472291840335126038087283514859762222033074816527130197556200426785288958998122307548485435531611582198902012894260459340678753889657414049750916120610465847877859224664563478855393195845611598462099837213427610748018577210143165585584772849967730292827727392061439413134893590693920938399502977113945562944615913329773800502230653369946053233861029461874751476985752856413021624776109283257616387543003224568353138642658689328982364457729461460326180526620965115170678804469187971392435295388153889659591684892798897309960081951189329250641947499718007917656363905259481183891563956521689326399358089255026310541694740718384212928956338828579745873557123077629877899805914082834326898120422514237917833572628291102840427078275410709563855551227581181409051284557013811445950528752203937242218204708643227329772815121495163743046394280878415035205758659024917656313538157380961790747744677112252390211003439554203472303557396227576403096814491250530012683341369015778147701850868856026793819281576422971900001844320106007728451816916681595193201851626523524571917660151088801469278168536012677606642348823149322591995443259795123418726186500994780167115495254365912878940108166191457084213016846766388097061274422113474007806273124543950318645857288810506196228596644390255866145696524960937432156087697405057867787224155567535652560176383272655897880829992750280609595178763620011163374368192548490815865593541778632033692956477484259723219197516499013574232591969661997509612493651898358418186921020188980781303553427526675313438895388798719162421945204937575752003897051476465505419630258146293783153042290329275988719485761653647316216985896658548072732737560571411285806925870215236069679075485834182160263468942171300096385959274900105882982792204954576002515231039698678861788416134928604857510499691309206806594131525392145593922115825782089502391986916324444458573194169417497731424609207568743993738177763579797683302557145685223514453846866029144084046750567534717423572391960965664555486827809342385667240077250063810220714839154214155825368842446496227681039251248923337437702249124790541762935985696193291291356210062405935317928837239576825175567901689695579038546758179884988612382230700013095610988412168453467275116966266363446743999975447457153240346009067743089705019875465031973190991610186344067647808706729813496809604358457125080358412791044189776932778998139325943068721168409370264151885283386034617823272437795801323060154519566888766882376095630371824454527280675152516318363097078552847754466354994467705048413601572268821503222994976602803251337261770244237924799196932072099744006627786810213933030643234776094780394327750103188217151394394120232349694483511784545781765929957143271842475246818910365110151559164458600425482287956369579594386279635093495261214755470108840691644024223391871727099340387315361852762606117213625508317423878748400463981502894967643643587552661657220939980330542456826924535801305886734916230930877042996583141344013545892791408001288428743477252108220154394468077708379630340447842237871450683112657416499424185077655467867994302033943725186814433843956527378160803746390677905796017345628262443691422682960569595918718350713870309384614119874628748176563468444916278314821913698578253442316876204076557606458921036109732420539697865175999434111813043919143976461841035932333721004623863446870835146374354453529943450696779779451843710572264333238255707488931396330140377525797116791989074153153893466216000810609002629368164029989334850232932596996279958497514613179394869188897549248547783940006485851814794782061196861112656437001087944521580664208616074045761977152500988707497277255672418443543784450201500713143180123171429236854201160322003093950451178745427801348701395002237265393073230256317700615816466332556540014732829639801416040483319578443685368396849082528076892575053499287502901098754647877412819442871132879025941678931401279065909685581673657740375338051768675132210996090173559469393286112169088275053860880732768838556467051156789029495882340213580496253493632655923536326277958509054380489365427889474269626021417092234917184305929798737374226735826006990191284441246296120691732080478478302142287269141857411580696598918962434582759341148237164824310214159072531997522301726927831903490711729665893946080308157518740717320856448375477851170616653480592584422193334195078950723161780326445526957679507723086518311965816823465820496429439976140438900698789262211465764604530955835130379116335613796832468632936397072868418554797654391985926975540666009456833750905062957877821373769628483827478092665698995286722845314257274267064399073961366751743255134481767964833270429653788083277674581212948212051201936821410755467525611563548089068537076759802308453215305416549535679067773206367878680440080360912886029813930627668742160911437727260390610982264018861456286584909988916057274938672034213158738517680201851563648754124618259381846063882976772367041009721557440228929470515095013983167988454851707021074321884756127769667480212976734159456687896953340448708956518194133422801724269498043778412505462542873866632531186735377766125966124859534697643378057262914388427676950962168516688620251862389381254858701159597580060860426631958954871402045419344618633219164554519038111467930555628839574647690533414690954175187277171510107896001552108354591783473634756729203986187933533051273420293139417935154067649652606797284154549719014581351040222399403490032834929878199893803072897921988423185001066425880204697050359859377787572483757156302762682478183098729079523367906696639920367134480049621804835831645302052854451288883578886354663710355547363121716052870071358252958015783468343835696333131848586907125216258956638132736746061361005201341949482503154322587261931451004232553539816971441384602209252835553408135355380028431513790516998318035624227447438299994084204439646874857305663490905707425628640936039982910429975217440991880701325780170625440695344076516674488305682036136154908388303202734999636649894629630276933044868458808954800834699249378840347425335760965834613865080086183611332059582638650385936517596843140314411688499865799696267486196352245643048934851477871906593124423392885885733405528053970603690616024141060274308910797284091069753226159566208104204365530610277645095322871375035697171140658009379935631505707950173951493947640144327974356083687324738447014957836814813435204703247382616054758450998713902947893681312494906516966745185278727242515516714168107576714723486378012709410607539729186629437634567007685948358766568289531793477098124512901839818743397063104117992812511034110019068081273248608682545245027832755756689605752918723106034153303430964520255511608002958932155710074367244043173236995032014343183905038297826401094845411562109992454108329477420698542102281523049550930047688872878843552619088566957703233967789650837382560429168837986662175491891277705905518591288226340940687912861235348446682739743978329127616038890050461378542429524117390662934863017724187218184631961106107617635138292577015605994997971052911975600990320528149700653832039775424256648066468665200646746991395604858992328635981576008474577048440268288820421466801133812148369054074665972519869758469246120704136983042452807033574950996927257745855105681250240399080291408176051537047932835633750827840574556648398322549084581786085088844501210340767900654911287332046312838989435685872242279102340933326902990166477476653350005526396242409532741059487858460842531435850605754790841110029271737945541414398124248577136603889508001876360885655951654104775873026849746824621647479409899617748570657381544334496338097909630996265695551807952138775497751564986912079907874399824361268499406194981125965043045262122176509372889218082392102358178683475500954336560897743579918133286354296251518577483910535636601047440733816461989877328516092493048977030197402145888605578303273287455280120748875608152153088316855196726988587647989213602751140346164506127221548874776191970968265845547456308577918899613776677602413567421458322803958565351672899441907259868694389689896529500457598275806734803688483118314548561896592647463378511079170843032095708590856692463555892183492798321450552618101806196837236133708582268703449067060576854838934183467403111662938382142144142944294946081071743426365547672090850734289837560404229207656289868343490590873218201215161381502331541574374598403752857980839694622499856872672093643669281918151094243775902643323026920974966436525525432400440692846150997835421980857527667289399797954005572949393841109798326617417358403421322448555374195487840546760003168022341491165224205349839134754975573472848500226926959981015938991320866487575527469821994286671462544581152508990298448799609792255059402139271352871106485960744816489598560009255404275293896334249958356144770484080065325099436026854889498750257592740220210908083948209157375686707458135932573891187643770566229671358777116592478943825621562134078511426740885306677186099994518109117952385186786086747862918054693407369062225239946952811687722339288218365468499808006842616204987994631247194955548826649116197068252847776524906887064318719417313390134977762164500635731002618337224319057320289368304310446390694901008970063104540220609622179547477289441636498871185043031821454265843332873699805332460930933806916264966033181257453915881493986522100220638429861275627075777884670027548197828708120955607627816405441488164039524383720819554683123481151663612723823582221866290187399221504814438697996597462166395032108700231619032027083118110904530960371277910826063482504657196301540320801181543786822225685535430726211482687869678686874404931274025001126093100365899246778793064412193918453038002346402873392094329624466474523843651611210068154328832380170527050677022085767187355263547152766869095517064617929601231950018199486112853091447245625352644730289216417021940093779022663607403694720878851663043096307185360084503052058707090988534993053778502737720971346565578299386805384559765338438118120311680557030202605465763558964156997769780401001763743696281099027631062126052252146113193542027528305852446660014902095381359372146309561254225977837309585917610170868658875092470292493891957935251734388868391939847961628793806571047631785257298058081314206772465657859422610335096786112095491038720663558420208467879389366111702873013198888380200845657694914952469992624200348677728988757765504798793820892543327696374746899564119508816549335714247576111001581318763160401647671368003664384177131593708876506893892257555255152521461178300622794088793998761121815264597954779753785556275095790015723726917393087686141355663301155346445069873717013778198858540325122955928583049319456193172833670903713437815271815179766462000871028892378572408134643593818364401639897108797236380015574802105824199620245843618636378753680506835234291202988707088009625648042340916417215350522578314655190607725807043571911593860147345667556553206633180267600934018828123746253567881982302228174765296373682982976111489103913539640048840822493936430095805732647814277724388651972968905110555485286408579665978367582078879220287484743840435567066724276220609940503774718389545839366863017754203152519911267559432154182002673315586551454343653638356245067843200527301250625804359457535712562868122506401086992860266545917131585465799800048764028506111730442744370419503763244376788623299856324103303544872662602490696122147025378067529485606234313796590921922658544329204585082138418450133450908582610771752153831298272727758197510743966444625947523360472764131648073797786295326089175429630495379396374452068860829237726225007260508299021608340156912279184616230152141699362886839577785362155729477987408130144296831429784101432324124076043619851463792781018625103664531565015662681589693675812464737216870860999465833148500674779233797469096219643966374154295036929523652724083935962718190057386012740705309709088090637757998996280103748888157852710189138561881800979222557551107756594618189024180482462519406997661328518433020689529872817579556524286043438937430173637640420494057888209100981552889472505853227937636068418081013678474448052195360195214740568162589792724319105701347627791102661895050116963967827738594330784870758048912454479961099870719342087687899725844125374806511443385423578745114570679082188071977735580462669173739208820506628008850586577237964167902565238937408754120652008541243804071879306147427553953181748496768617877441425255897078773881763163912918763072177876333861945366303206162773887372978132023177897450043142720247970693685994561262290237711680719598805720614220533880049953760920996735873769211678672150544032270293547164289774614751331775797354732983055748430435270889670350828883613590601071387843381242709700625178572207791562490672421053289281713133209424623776231872354688251128000039454089052761378970500297918938301166429855030790856645175188273871634315984911912146465076753229094994939010743400102089435619656440851725878946354844797499373602324802571072133780970900667733494279555776760680075748421854175612335925289664109089573754606690646602658387074453867527446800481522516730852776659440038664620303776779806903248922115180645239473990037831370017506446948897158295755004899075856490765680486268534540046241742715279829069144670686121614117311332047893198001667950508441438019938124547896711415012061131281894908083617286798143407227362818786526659313094332941935688268243727774447749386846767887055139058267830667194710260788283706121373831795915625663406423917663919636283782528987259131739425377775434978195156955982911619497084595890631608900250005710024038717404273975152388362798459363371735114818824461181612188456940924988180286483221154723960883390038392104693146716975385963149942960404931697789876632790370014996822668985275472520860210267220151636599390131765841567837393348247391465648652579797453085408547639810238511849276447727944276219262888411232047651786641253175328776715530935954710399387481227127056951096316646666704358600895796726309313333719561888117048073803536500797478628416561632319709879963900864848749830610882858866412400347330951876391047121623755741297620014539322782681170539455562169501569924294492105158641116597634462882690776484012059257585431175509042957522828392683312328718820390193937229155668726967279320018107826730697760144444977871367371332585821156914735655430849459335369062476438460288560053956386011707998060966552150720975528108347346228244618180516350050641391970509744051629721731255508390225373793409079567879466318925778056699418871614310813314665377538629892998128005578601713851372879020885008119240843178615441146604634068157996267611413743781568411763201756366941430443068273557681804081476452812929622426551748471518179343123501671803944052096013930386745850203977807415588156425983759012513239495032282516441385459760633047219044305916544233314813542851124716730758903361257734954870776912957520246819873779351131400515168508993853450940287435539348816374690559661722401818846885002239988852416679490614354401793726418623468565318769565867417742008901449057884385610079578854033006945417382036162891186164016933688707912669653614495388152605716235192600068566292826531071814101270324197270036608808925749396253606457701485946716353445749551189568153693228443475227871667380418145731581491010054191155126188705168945509467303904730994402513646261882151545946721877288520677722777434063370390807736533999180673584349665625689393797245209585694407614171530510003142680289493749129599436045834304507265483664866434638288510068468955530378389917023590192056585730287850002136518790659856159419805080612966482704974603941138960418511587142624682860592557998836910914393399751990892326793125433282677146734395938084824388019683956085835828117411981121273127728043228547071592049274583049245269085654379317090229347657431382539098544828867923838255912103676275459052175124575031844676339909113473131954686482743166774543802633865893241152161689987574487320017623482834409615754969143181639188844244093473342671082765024060062673080555097636523379204063915333710798235916243733748954444623420680815903709492692806917090197976594137264350434574270461061539209214935532354119535586759154645097241190672107198586140476812812228921298888866606615925149237281360127337179177347200630545253422293216138518922584495562638505972549224506304720001909607316983722118810140692375349739911729658692489413150144322868177098203924552544587018076240185624796454748095750559000493195206330956198340563814856418395579589797897485866532409085528526670229621376474042093135650757224332691253640075989355280031039811913463974758915352158625173321771073757759321535513227877241573574949893625713933112156702936175529924205111414946568496443212220531412401141869380088361912313062736307431359388504583033997379942430499456226240528476940941409542327127270191635282219068749323932755247407675964677872250901819757010126506526151569152704763315366769944397235577763478372403443413316078347851211186669845842090891241261525239396988110439871173881704554331342305380474443114733864192998250296687921715537268471417032590418922010214854148903164306482860501191458931262501065136326245916396167757361199636776641602379186343678423099378331773288802827195935225831555263920212817484159555164470099230475218574638386886801399060758894936894828516840576660683538701175701515594286727062965802315071550684997209500790487759888975506654282051843367618949441358089876351007397152901767350669843588328811939515046067220344910216250579270522185996351951952835151130389662396962648527735836946740136455925189015744009916517288080154052493869241368216278439120704486183208091529534467957531461108141092564096650550122605702994353798312816226308396968512165464158387200261785892019138968947605186353744936189845256306478690319590059101800750933796912756224272489297270021426985126198102961576547573798258061948392866313041446947138021855113407691013047368332186168498853444207718247530466741003782804065042921373381707581018196306677272954109034339413307433214305700511077413767761759929793845574594204923149125900981868972819831354424929358955752060094652735755125025360381423511072514641863212187105089461906322996402031710505610608215347413335238217766492484024185985356930112034300646242267567776384019247387826905491044414475929067103267260819480867463672865409410486538408467655929928273191023794891603657106820789572625656911121618098263333398098262737068322238670975751032310917921756368167806509983298203325610919993368583575904287330407564471229066556262718330301961437356175738296049128305953827103689143282094279076668185977975233903039431828543121300871282935432945095342042028035738675796366481192422706728551327528466368582659007228469313305244098428659834694177725936281112209573832981867042616421845223166838741325119327193770705188414833291182739415067188698526179202943994057348085145957680929307779490467004772007471516756211437373593944496355998935834150354613908956542414400150661921418497390842667612546256912518120553788214833136727765369379565366739534525831221259225768482782249175227353999787855399899175701037304920920882202864834183138046573429070588141899471480208056446726726737114040037241070465643283965585416290391086515514019532294611876907086966376196573988957707912784367446756789535172978022021912091849018568794710619972626336962084279423734299836928796897434177847129049819885862225446111290889600286807400370863136509249625215304209429586957666278329958238213177680264164908001142673672473566176037862200715159499757180899418119643647312782255946612248086554510321574094259496432778179458807159653189171384383328826813235822938769147755346556220600545209095985930676618009899598685172302069983106814027360316756242000203150612234448064640855446401990513062266086214028958593210946540694607232197019245324189459823890680379901189453473634174958467115176553175675442000339656735519043967179217655753846518605030890378286634186687192798183474860484653582941430584514535286000174212350363346685621609047646370028302957399583869710809811412451043124172081032725538066318008975965366503098021924910341556969302563548909276526349566926461068642210811781225168153140517526392836744897297074372655145105522615936290632532662156716913281709662792324654302305788296145425845987292288451505012859713310872085997790935923476931393198397188603755562468032299745122676331209290513153910616434112527345011864484307641909909711421116342373632680077828686913498395690403182517599706504595232182425589640071916030596009916061556035777047969357273919034966701800280608041528812329979461546478020822065577659484295114063774970341312771921682766026338073905474275737236947292294709232775864000855709131309526604870959454444347659492317490494764785154948758984601266994396217887323430669133153978382029440057094784269997084397000807833973975669214365343637719760995695215088725407262730588325473844250753286934887501182455261406949995254625429815276714021876009876580675301027180249464486091607122709100489233627697023712722327341263402945570104077022121349102743065886057530518501455451936677209097456380743939704220438770011456729587164425007216882214890743102230284524513989527475768898710472357607094136878907953973185656384969848860645809223865362690228477131062559648464340720703104885496295974977216289486571104429242865594213249450015423143824845333692785291156831903642144320548379557348585436916474184525791635822125510464748683788956544459194819047179304992386406255838858835524033084942748310805199700382855841479638917033059487624095940789253500013362224004590790179944710718008268320535145264682715472495608109276325945844478411441840569936141758949290604777847870216017662891645546121488094067228212666076328186141625848604149792042149850983525023227178137153002995712135246203051237735303750872583901998028822825162991426354655742259272021558473878494613986832449002084665656717440950204610141756143479733536042221151723678461824498632345995473044103386690753279801577009157153924992920695664814065027453376499641964728931510122412873204510221750028940306679717947692934719836140558894318361522590494456058005068773959245328674806773752141681506850624759403439039875973656155564682618978019921022518363322676709589806688165372428240617153783797429783051101044794624788873828798302816283692936816001225883861430242593339289489197136741192098269848825294031925358957671934810466765995825302646805176860008471180443222945504728350385564456788173514711593615605340942919094283231680996755895519215701669022157236570886661538703303898260832785580511419259029785454101675188429475612725425532792308308930494932100666094509397277820115347880936652997423332987829745459523159340158713637428808575524819542165064417660041081911774202366719107225402210762511605455868347626253477682957643464618980854743191039165175842569924199332438758437523329518858395763745532984993141448018745366003787566159935619979498073735552189034322576514546986413935121077516701587493077600259828692420022678862746625847993226875620492156862218458606514623271854484088188301422726734678633017420219192989771423204339071731571495286662540482334623614185657097218677656410190494384826652188307370514619721724464408093338515095958864949583377660029647587421519640564856600196556781461540554524323040964619987437946539262545073161824193545286996551988789969651798600983097711443164212521173637200479940290159498545589972267679164416196646527184682452016656513862678406452677488304604363682548642671998849979237867326731253615233007935461270353567459698157631744357357714542337762116255028125761289677545061711682682615634262426873044571943369483594679414762218743956933721089605990613091829497247882597043437129822520132585271233609997421040321512762462078133955401348239076310491092583802052711790616290919797692926148030735615391817252006666868298685936678438918811279304422725848980909304980058232551348673165983512608465496499745430064054520638290652629253535313635679647714562339536691002395017247563932822875802646741041888657712830330764358606250273980615267329164884470088479981826247346758655386387286587543539443789855683334017371478851415629539775358361885064310337192394074319847570536672449268060344518164480373577875226712660706124605944465475419157011886123064076483604094559101027276698014045757533250372714506707275977518598311926909266060530624862484039183619490972395695485097095623969369720353206717952048101067196516221512297454988674385268232985844040123488932935967687363295697980823957595685288010830167032718503251675168727725643073041627511568147715528275977819098669393723587653218372692952259074923978803868628689658029030027796331563014814316988589960158892524054131983496013235733748810887553599162847679107850859888439063029301921689351487108253114973202833894666852932200537356905428592919849128478440635218210020827955225130271927076736280003932390247815045649713712310152113840367650625572152547018658973269525238608965071814162683494737509054419294067456301729631857115292685600002821823526906126150370829251048423317980137994125472182061135443820545020326017698157113747234212597176724780337662205759273820685209481023466292320475208144558436767768390798247714020919542041872870682623437018105829203724535179722906645775966806762210628840985446428830917763018534632295097656409725918141785310633013316707182295759682162730396837381234894733520720003795952834972965387925024861318973439743509105609026903558761762354892465936311676199118435704910031236045323497955125541837314345993990580150346271850141374458620922483630282721811513672062391640102561095643445152449742304679816552335094964819557174894757717110680386317830395031670578661913312649001585099199846535065840938668329254274555501309994315818052566284801328771953960989672974036334973932313739622039000218274803180105925078157474509565122407224401470521030838589509050724450981525982602672149964684540240674283505131855945774719573724873926867494144816804522162886508347358853772713923489531138878722318601996141764165272793066546119427389368461923441555315199601710398356201613612919561716569743007576841068378324073243648191464249092962185520722462980903835658940088695569265020475092132335840102024147318080556651638024125561474531403685067721357544790724644880777847644142554261933728525681063098861262375558174746939610476072380570579010252719970025342432847487268853939164239344378522076203721006986791084098022502955926114148103612360559955980449188243573796742562659877297210016530092469108212085813862275945523457317241021561527225239081275620947879921177517742286051958337751820464603966719717923483819249502362600707913919623319000463628213858625559059036264036288880365377829867271970012938523710911773894357156563225342426550671575743189504210460063370761725590331954279964122987219542380983768526097059857320206650470699750640920714651745937683897393467706576564621407565365028434411856126386350835587957973674692893783196690753502809246874360373483198661028152070439587442210299751318932794978182989212275982424306537020883760105529982998685594105412524403161257076503020261350902469106843529191888260320198821616664157743619894760075581565948298720080106009671790452970999674346632474873841752921686948041800889306747883812375931356004915265864911147082100839221972383134266417718967301633497039344322856358978432726243523988324672527934593705443894537615433429559613680471648256006083735975732101333113908389418648416647968031736226893523447895875512998702480719763322465265607063131701270999187519739311377764241898814991663393961009320810117979840345934124464004079811468746015281912705828377979128579962047543773448442897675768918277876763498069991177153198309363579642357949855172937730833507001110733147156765551267598557253231484321751371675329894137889900760580228304608571843962941802078752425004491952212074611614424916724019300338733913127362230430677173788417882005176361655524354247181819877958104431027918889561163222296327318636752860511326221719794164056187166142891550873671169005936016103696913095100848296609876745870095912778095792153656855695323366249898044015417999518268718475210028801004737467031315801575695087886495990887854268227640201968843439352671416997800550102909932887118677802347078543103837670055344884398055905013806312117899347531276140443730947535878183561339315039014801317999435776170500491609852024874467238204451415456704977485396561212776558606910973485490746169123356777213889021145568506841693403520398828699780882669419122567462173776241710215473510687010992124526896304090079321629319037151568690055231085208788868247864267711583884312720077428893225313845154738693225067588133619051855756309077392223850431338250914349926278659780986841277262040736199947865676665766290723805831211501975384381161485806871297692082912170902176845898696347241000015391203854794628994410691738803390732960441204976021601761036766157674721662031023453201660075795360059003910564363215883663575297974848969399758929520581548921493623125336262514224277186663789206887444399085565258177313801782998930465138599130714452978500879163063237210149746588894869277199416013855787452229984172670678475357603624164612798109826092254831622002488910138781433746048501103936900202836840544019974736260253183276320562281957735851092754427557355298090477347836720337592079581434728617063593236754483832499188465088555701831958998310143250540831828495773192486171021734675237107097850921439594205300447044952834838019209257761548788629913707458560419428142889820236346025496635293172505678841927931549987354421698470003474361439395501120094217760022405679941649264667696897918811198915654244174292954042357190215700570825730103858627692953615026789492836960370825691938257891345343333809454273513824864482284370631694659519256428520603095638935602290195695402083226728023759288336567937545929401075914646639834196373700730171971072524357633669971609756094602269892536671123266285211163917770364296646057148476384021488438739734667104906619911158623979783496150926564450635194015051075142241551470512790108055701657531615738183698398963075730470959575600595117144927857809439989628040022739379585130180759393411789770669542022021159699260182763942528263447156445449399588300827009863555594982396029082766096924305550472478462572805099642883014535060756621668908729715857978745686551817944610583134453181999254945889818324865842992750996919049279344243309330907804222484893317208123552530100908596690229558500958752880084723084316912280040284188156293701550636981201957782277517178644642519360976957936033590013991715355798034361299644430839612873024117726668291468321322077271697077946667582935907019145800456261031787464990051891363104744650758768980048957808194245532026729979195466760929331626421042094538079119419232693416112185924245964415527106673781145832475511707435599189606235979361357611075434041525058875550268247937382965105867590537862921368255657338089048469661746952693231376450246525595615235208076059447135427674496342738591045312138887168119357605410476277433597937605249987991614197373883744081207187753280692885436253189180589689209903955911036642493234135822630119538132941350778044266292124258972636000546222540494830470585522380372003966080009860492149575787649138661887785341400785311169394939892199649429004121028598861382915146342605575622661990594059059367739203039407990089426631161813654511282008193148866578085853662846132824463506234197149753360802892311673076496274101081462148277511268386478304208004434199135787341913894449153979856075066397926302537628158946257562751578731913926177227904490295962386447106277452749033186634425465159828675275255461187478733726275588438437968012065332761939062676183405359132656676113654211712510958323237381723007615527265831083217987192748873747153702086294234753238938056664622481340282107878961066245994063687750097754470665264940597200424033033748792791320369259768002648090342609283000089004100713645117880111950115094354032434954016326957007347125734038601156874105990028883251733384406328302207423535293652968213010193654396373652200288031543607215515999108667445951076043020503135474782198348874614156072529788533830385376357920267551353836891106871460495047120196026099560268581438856511514840456477700731549185548231552219622616734074927631815757240699387809708466290917594369882686396397977422519743623366095459331172992668093529562799555243013614981370070318188961037325387232634820666649332920590049685258635353311064285545915343728319123344369332755433478193003791350115804288601958741697467041854710618401509863813932263635727772668777978093061711194147313011341238344217067961335521206255744985319196302819837925785050121475274944357404837421105047883669421728142998697884385054681763745350363396856906123919693253038959548666658288991847504606652457965520236838370158238413506821200899689194472246231246671200314774708212147414885466289927529077405171430857408865964372420443062434121709257522298375491398450341133102295930488853709474841644386162960142643279552094653086131255503841164017046496010679330943773928636980551231360164552706640089943612979832568939420391807665034213195275657412688375217080436766597939897839218643695666779586295934636804935382560731234916882049868657005983758976338430443213853037691863639562978213470929878364882056524287137774435891286377109980065192207647783221825906468311201989180000028850087304517073044622743037966437967960947979252792764952301594002735356307154531428931172596041468764480373152619942263585020153318450812534436392360467242525081061390064882468141608386707227546975214813605703087393991163676209354987491554357386325824686129198108052924268636548917180697582705336564023984763882039453837781771053509671913302878854545752016454704208713171114769918673308579255147351907972931129087244855529235413287799421430992582147496156436655539468154798111448740881485888788141485421135626802690965499867674991981563802174191866570720564364653782276969200562119393518246646472605064256216152466792756204135310196458471672359511601353593766398504345856127598102834623684232945726141041964728929996262329274279342968326522321366444250192046857719512389812782275745358625127414884814531476601215343869073772958509903307533197354443257407779109839789900825834757348675058283130377227612776717374853660171686278637363002258412718238628170911168967318610569968179890300812040231886927339382766827348088525420549190434732241571571969050810269831015290419205192284890759358256742724098022386998084350283449619754597286648787662934751166429513965303503789823749576629000230858783565693669860470152503485841785986597590705260284375641454936552578919544483851617525215420550541594505715882212246231730952074801217094734160108947212622666767423711054450354115757092491039929511564368927629685620004174201217712306755688499105381495244557072285612230477230750875022774919691398615519415062340585099819856110779610201458054382259114650877913642282861547263598203718268572262779509025573390822065651316614406277056114410507632340463599738564995029895139084446489826342701118957595206939160072477596017275215949870041169852855766047681108135499050154758825163511416148204202516632190365883270639483885148381383054622519038138160781951059862128591546734941023595165326682204025600915825015371996166643492376573743859936946210883277864108461434797345939700291286535723521400121033414688040813079420553834079979880595619334581986461524943787493939355147090679582944605279479051107367824932133467688352195548229913945966512117254117811219678317480172540612460143449862189304824589199198201451604143888708492551550836445563534356442939347897430211451252011841985951141464046508384528307550200413185567686252534062950702896875056813224788080696561551992090549270258932580201799696989973909645967329951474182420880199133424312187169282628753045932450541127400482862316440850433360061874007070991378154946740353808020847356618367039931890073999752475567073541649225789371659933622472033007249341203149850529006992981710309485313126164706125437137225829954089688008385303702588078370379715997285966603029482828279901700594612492408060040867578378890583852294871969779092601826714805290152161764316273606662490904516269817658100336215401433956497591645960568625191765294437762770740818680880832127115279673037677525678476292374727496477088179047970939998009875808873209934860648272620711748805071998028715489426082274261071451159002983769053434475989580482215992054669262796261823596606223593473917295214986048547184499117750677000643767191954901435204388743288396748291356859672566982643644675275180559054704054092952002400325100183444561403782693868095112579984735393336086207255202366920029886141480931685537291352076243439137721430127563540826725963910392521568511300743384714131465998693254277435619005135723512357813420626047269545885265563070968687168133004476815127566607063668971019109570790259644214444853485510635064332618205423381756503776221636576620575488919617350202824759200894469864303284448587995532594761086412028374183760703456782652181832197294779447839412066501989441576991924506620855278650764249884136982676019481130519744416379851367085369375807836308995339194158083224371269416178829946300766272432909305948871054859773852584177723632332826892191539853987604307483258512386376138572684435950046208996955648635868455965760908322160298414549035611813564614666355601452240478380060254064590051324089426705239939027983748433029974760649424461066502913572465109228387629322640191793117997240618500345191395300511290158279479095831022061485563929704362306160790250818173985148179779607441673989150717488747002084610364652970642213628289847728880229315945300878781604432667978113374585547377593404065916536028286928024095366159693895602322102767050445230472843789380044007331309710306167348014242850652936141218450339553284335666193415993010125019440067785598467992150736475695273090904551668663769012762899839245747430155967357241796664120376334728089256903324697961971096577237303144992763184969963852495688619816655148531325447482076968633589359216339361244128397951423557565627249575556803638227437004155278634481756075902039911290718508611874189095241277310379685978396616106228369881550539154037870369027461636033126766379298984202887793491686934036303289454159667122956819687054139949273478461484963121442067120544300631643964141451493727538879632391973787797696526241056269082491226855473103436265896539580029451629620829788733600216137348571107667899197853064936206283720884004812299611860148534295552889987034006450937237901773457905506896968789969202557621633119137736144750800078812365353237138449169844278863910992720699415997011750549641145352723519688296009273559540425411596119623509265935279467630040698360685414235407724633846412270005231706197302403202567648327053993280688033574484854550366609407757905088451073086810797268147870007404959200862175169445462649268917245449367160181920635480081897785183732622779406398284501185716689103618984910823935286260652616562342771466698694417068957269033286800865141266290488101044556483641021168795140493108637309257195680825639648365599440736075755739943960441230691107172548204200928116437903490100352307052166406579160604373098619837339910363328349450802196241672916292581111501591592001301477213412159589511704031874388325933567676725961660152332278618003641657574206724179340098783085671687919910264242633594874393040606746249238000429244203704542735280329920147314561598800886357855067755569792480253786367330663540817335456363030719163489003496830643296938704751855463137730751532259645931071468534283555000414071346112266496906177672818087888675350668938343170847110705546101006478169341104342450431465966663246796306636755831484616356723846189978621450920785517575491127853239669599293607112104257534908930221186045259428709025857769412054951950034462237054191924346870063188708154384819674836907457638538267412381296842129144362528465663314726243212300324493326720287913946544654349526285373954140421475718354515637992280534725289216311539669331107207041845059934329670406288101729617042943249205199378471275393235405428847576210518319990324625203576589117730983875675568804211224275441671242794817601493272979120913481297768464827584723744897995623353421910162855598021593596318296968910366969987699493002762743907555250783112189381583950531055390466123382778421329448784493514892304588545414043130399281963524277136466213333039954311631046534481028662724874241318541144664021215586065012557794928613790927930807106191956908663649568873865703803866473718479343196158167237412131241797953948858961725939571245156966009179175808765400414627541312783833596508932498905598605585212156623158524944911096937744379964589386840037479987337616760072370131131419350384364113692431588378188238858639460710203092950353705081593130768903659658868067969050335179752654831196836324581475259945091015347720784890910497010412460888252360168152333638446282234343317260338276125778715991524822439459006150897499939432249904110044582721294215113601025028198657883146401598839060226924216494827001052097203267355956905533555691420517823485042896378090982226458713343064040579552041905417883601534527440226901627275702608005112391291323525318236001818398381299142494105285705294606462594757221808460262397087351975557565709380986233798516512903553011681863775748466273984697134232982828051605441226600898594709458784675226948050296006819461962696782253451982028819468532854547712361095825445766686747280803938326742955661332057415312847868121484390605342265551534010741135048727187784971539878700984813770205860320113318589747442646433121957912159446802043485749968043364369252017147699270779075628736152537884019250121033318191980731638024139332733757618966730772153577629515847886794497485109992790406914562779889595904932723082512262013852432504733787414768327992342637911788847613602829331347928269631704422184670295864557454108966495300783859775424746051319826255513680931619797143341357799812638675298844717790027069636875623284024653854760274511176002472233877194836054151121620770768956127986399613192754552869578376106746283374597397460688323473186813099081336910804111181817908856887615864694247767211214514586698554302766640976611402402180991766057999336596576723808291216509264142228325488875460191662721417103597137504307489467257427739535272862622583397531737218080388610374181994560047832614978167759904863287678409593911358078733116817626294167178597909908723809101154002897734798673968140961963781448668090700157683461393925089487270584424537075648213584333053472246388276299065452692784959324276729458323506198132597376203637640509585024224501976930847860370439226587112722483396349634034138794548693981925958898207784600261912874531726457175572498002726529260453832559058546689965632663422870018483819849638294549309568544499814728964625328195681884970708846697236691507866394775402148274378433403260722666725590994002499504917265970492916763472478851693026867723622468020131533749552363518972690351191075300596472336490452351581722648590235099766197734570719596764797097550993635239914343794981108417664824556511105328058047212448799286970777753455656847404697593133719390365556999885753741376184516068097792477843630364010582751049730019811099359341374532528874181694835499170553591776413035829419027666388878280289949004708638346846433688453553358329404692520091483396777519273646789864692618267332559507446946386134827067765855828958257652439267929944243228717041664361259415628409278160822646359059660301947166568310021668262453474802340685166379909309766661939114481815995871566934910828000480369452542944957560482772152027571228467703920235897895936651832747382668651021045680536680866909938845152730793157694918494666554579328615744117432326149769735920272423827689104621714002123152642882922084708909735651169405767515018438687156329145414531626747235702957177637831086556250851652796243713400896513072871120255104603516820271456981133920614907870826637303663390160750099657130100332690518002177333701411884221568516000215945197110995443200757670790484941049493499206263887963267721932930153486091820018632211906879835207040053661003402864386535267950394167635803364487914932692532663064138794209645420238655893594657328569445942333863740740018392719957996956651427747045885224597755243362622462550618082161844708156720808450040180448807369404154963858434367556853914134804247349094865870405109022574260670530153499221434104280758753863870896961165387274516945922571024875160359983672584414574806610268298390852676442838584446470404231233589590255974214509562386073309413431514699686575350495271513687447555183144304651710580513681796131793822594103084793617395024752412324005041483828161472600557571630089123467693096717102676780754811941537848743432004464215201585151392720127514981151797043495351211515030051345741908900742397999248114296978663909061690170481511266858933610480123586026413758202651912853850804812307756993514965438905517864955414962070025956848870278888127224848762367729592142930086165101918378091888304220848605411461692473887617229109481502040572397787065302741456943890940924367127805479677350362386741322768738054533434001657888258545962609079603803538101776528364833212298529421423307390429402838965727641584790499822950445588371530407329728997591182614509135453971199932473157777661119915842747641157161901206362739034924648915169345315927479498693144998714391180121178387195903251563886615919166675958610138317654683703807143061554581644641776029830451649546403262989285950541438480594464558490675962647882892948090572403434317208894088736362036186750917231458961420468956646128684036565531570306251348605753974929859605766925222751521654386503904006196627798228551866210494287562836553341680935481482656451830743290715071042972462742241089197756009932120984188099334618479599943088053137466894477649566812261261823019544411125684374848919568156251392173205517302390113302891619417585637223416329953717072802070736670016196432643548130547508799924717668976501864768343264486910853625672050275124942581022079830649602688619680362316329635577111919666497732964140659058298741161588969082350220445819590669614764687249825763731994530422383659294699787079440125809899573034015843147621243663579510477429260869605145810534159341326931443493943767216589145897804428148691259131495927082791436747127513807641030593280750129240404562528013985618307029329946683879332054980038971582865931758981176109535393501602405366720209753935717297254756037570663383096663970961867397331626869768238903302671011772597164984920947881855936892009393799328585097132926316074142243232710253380991055231586616818288027505227171580792475812647144021155604918705587712513247226275164729157181816285147680891595617712192221200626292639402563518522982701645653852980961424470734546448536862591440116974232568295003025323468305107484070094858895662202429810225505426592145365819060878278086676278839281204378379487673198251755655004645855286397201577842080030433233329430305828377091617219269211270921689635953846209821669659680931883302696149520820229738362976510223769400286853516139816156827168932279917503536190542720979001374852906388134191029441999532701619052735247208508198963685553665028330241163193014306628023543053333997051254764909118240808769229479540722728017977433345328792991136093470596142488655314170031552553988544262332017128273368601831001392243634253105019131289017910794907035308868697572150375678872552623066301917582524009622013693220114794261675267016890688319442164096621377371357544544852592465684573516917077295936809762882726471390848097831009800911749228403164386399351894067406391755854661653310727529992255828372490317143929333913835930756068199989186146017888572311784206152261799942380057528143717882950800980099354325949795099697795004410917663973081015640590934225271068539391533400946296300965411908430025293090526862384788577530604081980017139002661745544229152144079515138237346294379752774029206622694427139711557885826514253533379481646030756251098931746631853115958236856782658638710042505691501026210781293354532307581623825018947403562311812065740014759013805757511873012187864070499196733798308199089656716508756186560776818563483900311949348248810136726489912198707541817232787562661015830283282893479210382159284778411473040957316932106610043521798476739162622716598343513764356239346358356574435251046421698234678456261623920716537747513046214804048164641291342357742284425899984090108613606170680133132949172137205663387077243727116485797600074241667984298598153986843735753586515493652533856920762148156112341527629211774936116481900009167300643028262321582669832529842443001913022855278069699460348063458186438390900551401286719112101269405585451553365665521095120728880106261887850842816471632383264760252905180519535196343052047578053312132542164927753402012608032992985569975208060535438136408018370441359000642416734747593751760702689677523488336130951464552238461305497226663814650497119300624376138728019476110526243104593387132423645685598472886701159689524091816061898925884595402130819642221923607436470685033722482474746682161671321699645960150184834735315225381444658115020224542274324998625762671596753423079235418135548443076345948271633715130492995570557045417870117791795583381238812672241895907205297686240507995810289935292687394585854147978819118524152074163256536957405488423838490515029237766069612653363352552264599389988400301482148681405486862720478076371166005829640695898658458642369085600148835664406495385577685564754129094179613193854693150287683342301707479966098320150248592908928867345210268785593336105138947870582942741796481741624851085354770023734153294568004472466047047382858671335244533439554855000156312347608902813874150414505383616373671519578397934098729817079704645983225720533675526661007970554281785470452130017077298239574907763007873671915147189657690184318485311554079939355419796049649417317791807499819197810538586369445806725617647006326027683093983115505733067859680847959223089446118396925691608959390748543989239249871078730550364753899106909466431955143704843709067273755591389799633424554841819837089923140440547495762343391581340814075695694611407720988371136419138604413634322653128369907807653251828241486197441648318535242049944372529883054384742056276867419836640411957029301386784304418101576163110345063166187504299837454491968015743095750878291328959976339513580617721880313029481910204244852980926685299150501482837777551278789310289822441761223708996429113459114707194421095361961251021430288507629773565950446440615964778619800996432857839493205483922227783010287590322323817485436650889347014445830431002532964455188661168564377521739416045761057454754244838336892046475796255276035083009363535194814841076776844633268286707004237133430258765232864483856915576620802890757049871952022498543110881364168632341101847315207931403001188753786454033856873247424436830793460953430587665536366017127286429660394897289019389262482149964324474880555403426983000622571609656568441926923379912175006126766242127161846891192360397677922940959225655701885780313093073884368926185183415873756768117722020521545834091552697490468228681144025365392700283967931162280120413914246086046748374086931237702073048285028649749513428786852448712081146083593023226876231656879464510552431621572340660418309784229948531549405642652694962632834604075528601599266332277939090043137084715957050367293049197472714170804599236725264075863219342787319984041040301289890551341977939869549797100262800759908973166610517486537657757623555969390035190088142194176637568991617142194895471060587060414013609815184140230035885030120699579758714095053523245737215461852216935587664944584801860884379090606371588998371276300497607698432500762766204536577157500476020998189018654492655733968291548749467719123645450594373576990591132630012717834618717388639174999931338436026031529794020337362063955560965820009397046323309888506213768336831020707052716833018868559276684447144747012472027084557206303105721353931771447930669329535540025017027874857677029270567794886220662992383509609024054632709030072183117624700070756607259201870848120167806048202878294737448353344721242368878083898842597090788628585679540139721534159416383598196947434253502824543022766157924247183006480803230804492716634843131871572202849267842431414438780652899704655998214245015491694525818936654981406361802341354162515382106964405866876199965318255364117022038970580846910114112403650664143333408240257447257541454585917315520433044058943447170874526133322192083045203873787599310241705086394663962610358125872859623887844587986213605567826676578953934185250942374068088039839332147312700485481669758278605159626163846961881564175568058129584384855975018044812138968568721121908180391843475100735510521153927191350740327586663778711004264324007116288413593731297900270042238404616798613820597673428272536599082202681615164223015703695507789759203711936360552959661128567952672751264815873441635821725049192242567504512502319085624322866213313818063852968436390898448668455664179933143264074700359725108627597244311883683774444371596024644588197948202486190867646873667754850342142744165549004858790358181737388621863104170548693415589152703724680803367269554467088192003418386000058466757162117166204451754981256035316745288077786908882776128351390559798577929023858222372393828914778628880223320386792240030364211320007242765318448417473778512255122998128404078740835655499043522841664644738242335214948397879582662325045839711147351412294776644223689749541066008378991662380039079766515219987853320876975278646247897241180065754176191975260429032784562738436160728834833237119298434907979054587824994028577686417124270905733637573542761579583055374803441804215827719586545612670681627620045050991120299898943015013717711333464951118696612745520305582373947141011188886898122545083901729626575070804351419950017549266817726714833506209649890946495840455637356242247672276774206681477190088405178282658092922652802729415714140169144722409933406039396443638685373786160346688833773835757903624404348365304733673884876700340217808517546562938483887295016342305675780797239710377218027466627547995460513376101119096479126777410748865732089446828274518846556483726463821000761389090694893699436957411506531911242949224334902122783884472270208076856499851331269290061437080432923513686881523058239973801247950317002221699718647564491702282571079378618205727198349421095084662130154358847444949701878552784790632654314818513168615964935481028122466171955962088501711096334660057553811145298328056538980330402801475879187826329366097869685945689444383477847172422184913153476686884757088681827593239867268046264843104536364353318767890862085423179782432785520843890258179072560531121495020858660422906369711727636471449731204004123422906262768575396905425161677737178264059150989203716558760232411034155181770705263376100619508850693448592979729460674202585267803536067987097421885697819055233315173521907274227221554045208508827986201919092325240551320733060909281182578264030223284856457570446440193124845941699680710258628446206347303205727828395033061960434914759591339386798744702219564311551687460527749048387343000826587084890006600639120736748789994395968523558628530177095581242923661807008429128925817911949097223338592711729078991007604032977658816828995556598208525053894079223128937362116010105013291871570171722128571910841021692203924533990362373610616115109319982989768539122928100019698732205323708283800253690475536679086571613831088586830984019958089528504146191044039968011962464660097597341027010596707434477634971729462326277828478894285654461341865963510702652048869673211120261913952241188692324964620818167735877739409250339349269552762770499349125468274985133236587039103657760812817211103243712980503415565831299628468722442765726958035409434846413766746133505760821047581927851701991795834301091832592948506236884583437036522620332060321495497457044969362562799084164281963908756177011154407703358664009255559914098121021278623578613270188375774378095966521403816759030163888367032917547933732522065611835814113660204420448326139794518903433850787177612373638018049349683192297682627035266829348441824561614934735589195453970045261034367245509000669416594066936228040745737866268477340871900863364000845558393251082288337641709310770090546291175177862475679846759975959348977322446604993862479015512175918081360059208979229853079924056735381898160117013291968168111840634454891378762389313555775969854206564100181870799839645064827834605869791320288452162964112882234744972608836523306155532621241709666224378763382282436036625639043879323413117132961510748204267570167151062441338864603351548105128587088580585357048467186553525282658730907681357237170760676231910161370992435462168735648093630956223844883473752848075091577110027256977688496250709992446258685914193172268338045485019029048269720721050729708296441197165897215848018513191618511729380054951407480317833347563897339273647441669774220202663067648717976958574792707715474855858500984086614001808413048919296445523398738520326431920642362481235735512410564169503992910080937574259677309485371055519480551023327366636291380641433926691139981598679923446730996441537544139803086537016392326811060746275701530660159829136040499534851007927844928700007221508983248925427013122973036412491038461418178791175819021937720944079778388574094565785057402158060113028779396097917613224116578443751755369389556630643899002336675921985249098429887749988231264962391662351320821204969400066645224172409731496144372651045550868287712363952695493482392619734961269285158934853528137688123802655061033141574789790510240832538426500398593427685744999964323495846110522443270957202821499864814610552601110054966370548906135244162277387018719405251988550806147715709727901419462321735681597811183879535653053943963887552198039442774832873692670143902764418308432483314556442695457943093345361415165103910735021103378603926089457367985185405068634099341934275007824769064598496186682623032623252565251492101181372267611333025770074922186799962118777168003452381207827231927626348137164736521320371773498370347147896785596240801651743736979722496331390129333884123167636283091730671068542437181574202697735302985733086490549025756057229757235818513590731770131483612773907906813757907564518429510912916916575367202405967361957117995547341368510783970776547585587268064517503382343407024309247667792618993364541149540671723560309874498267903422008440282540116096799073415905629203798576395745820269404334730908217787500444182107340033689767993212865841561521793194209358956246686851952623788783832586252841491649009417472988579014683199634839803847410745108636280625936943562017862033594145761844001179798540472717245536280188449264777433271930120990117168769118667635632439690703734209858886492571051456603556811516004188925745578250798101682270823834943160742149467062666775743489207653995467448080231075378432740153471252523533620346139989512076198928497146890002889103064185604431446187774875435471268036945085579634607010258913445604767769099202249372802630659616719512016961420582833481116993644139826292671459352603044028351778859605478991786953245646720143586143246731380899059680613191084156460798028074501642228469891094412162578120014464709387980184333661135852866568276615687343261709601542780540177858923266707684817804804639575742883899258954648292455100157328672635389144186227395519651948758692718841176339105148991955586651431763261598208087327776908487933633245165856507559995303982624272314574654904944846541204026425624855091514535779402413465293493257406453001243103191436138482463596409673570634541126781186426864040843839358845325146109348828257975061649292416108455391174471083026675505298283606321559385079393458248423954847851925451155919408362691951834928603851446064715223681984790797470228799026753617339235795217855771896132116682242435238902417069146049630152953357635749732982963941091939768737982941957137672366498667111242771950523472193104406603655814053401866962789194248582602523925858581342799354657161785944437454984116401716677746489989046841114242526952455007548443410418178530477071810120885259977940680717615583921078737901854394776520536130280514770097408855332620129534114829801087869386853291544905815511613092371919840855946202255556889634784735302455073262156174187191919554315027740746760628530629080728653242277077200204051386096360165991975970934441862051202818129724947426555170598205196567958554589929804050786747279228760569272316999296674999050427838600438818355469883115404849590227044604451084488025569290398152538208534179390661414845532627924867697146808037006217025545094612918514535444088569179203785721098819935215643270083666758873818291137740503130083824606014771667223994106695843880914710861667197719541958308200279246829538211814580642416352998366102581863770924026949184821816843896014389529351450181043502715484749889910697732594458504131723270960504788566446962211387244471065649895926814870114341897331819127041684858987645091359995279477651454589541780874488675696896293796581098526777419644986058185606458538746751554672332535183411057029933891947361301721860793734525268111395572879342819545657628865805359055602514611025424550627760535717811486020435357878113298567143181744780203890859288085191581350382092682295895643156131112356485712913902079607332047532976777127151040286123194649412392689694787270905088369766982552441661407336935841156569735574800737333594872779853129739838459349022792496968924341539121864528012967169455082110353839361701518945988079534233981031520776583620132301895373520796198732679662387128303898842648749337319955155100770490174631947174029467602916114780237650519080635003515922955041443714542387561922276558891245899743349401784158197860635291559501020493283211352086193281083472828903012402180309635794815203976789340005012175771134242487006536222764185373659799591936356545692324375709862189562532372096740359828414206554994573230767763572290467851542666119780076848161659245254264794161629611190070418966376567475490199341285666736139120307764685110381503571583523134636872704980618068646795987216558854371149341539639367946662640836468077812983328596230464410940302499382177775468825031492763757056416152485379243059476322154781202376175263325920393311119006373466475979380870756174619624106123629828880162676648522586405620286677549155935005056437557396836633408382147544177033406028156489195856984754361568748467472171918596862154949504212251325576322735841113261792217094678252313096689998900467738397657482327637908796410129877114594971697750944414236071296748601780870616803118693132457041117034724737109431401301712266199120419732261520438427257607020380535978718803934780408434445032505581083673961816692919509718785684057879587794062569726991506611265681020206372739513135867065125698109075023946753323506185830617923023183395706014197659259300263193375188027011744458866570807624807407150434463138941853660962382702235660683726488288525586573331263520759541446432280941863681963694175573719140805806719140349743617556616176807036243321482568617106258285634163071343777467320350565377494084251990372200235207240189253917267058664423707913969949540530230927778092826917257545135221715009371644786146956505344593252977837200569891602652729422047757964438867862508925276477560882932578534807956309603435613941530650528547802830904379528460791738569916591429567433303723259306595526941574415164983110699894655884996851447440971231207081286894836180941350720971474688104740992068619379039967741094458197473634450162940383329751774226176114973072573966902241450296019118029605536860721976195999613542992509392567712860245501550393754618267121389615338212582139999168257752767270821766521306375032711694287606840806582089183940500279588461863949877168312712799479147768008124879103130721512441232427132127034333354564075049228702311794179904258017870173106727168972342886186479641294282908322584695609843113925221721390700978629163630516232097082763700257237969736195547093715339978345023056847410803126867571097313102957586289363003981535090959912567840726359756748682751311366393777932871615849205675324477566030516936068093729673765114101801963006429585335062118132515209913228148026646180789790635609258801793892264560336441026080148379075323955804059337809584051944130521196114942531243536117455436340393743994983378435957071801390613848912123234053626952070640888139269666390929134482670734148700992834193816960676804665296156241379726878136420806591586164073867461400603563105968282423995598050520582305983193934508573478459503725819702159501601222066298142755520988823705554052718441248933191940707381775903362941400822276629068263611257943573231999764846548142725396320574108551695779926078858385339830429577231981187376354811297526752089576049307301060294513620088953453324819540326723391405017022309192643615877877072113585739866705279573081259258415458067188316793325833953327695213186827322580843984082882391232067692633443591322283630081880479263340989094735573815105112043803398487538517493347611425129768529816799760931378308643789851113508161146204120584927473874615203931030325184648176467507099802541696838628229018448165546037456545627483624498457360659505117218445278914818970714791284636101309127878392555560607991117768495803664529022156065734601665659737844526128064663704354591032620533381523645084627124603585796129370374783183913958394492928909141220386269558174012323341524445679090579495225846843014972837144595962565337603148922914651826673160832422740913951499677530829520315950239694267969391461643498341994682201789919839233072272783849279062964782858345990098936449692316286021712810541043495454748040840419546390636935375165827726714433798388834363821745653490623652347692698629202443840501897222212828457604665559562851036838978460264795621371611609383784393843543975915471315488939974584383820624310063489940374499935258815203838197472720273687405041833384184524142708919195574731851804407987177269295544793518713695665258546120892966801914707463703863683489890100988618057944364922688284876487586536619357622363919299864078126207873622660942626860385875034793717675448025093908440168992578566784804483611661160508146900387472303551971083552146704269986898863236829074802991288220953701595116349750641516797997109659103211639984682592411288289025936908102141981444115170338997737702946097055149342413550398626742975525588939093981574134576004936954598868563457670675771391687115780104988602074546114324470819262340025948211361459821399091445564794334626313221763285336464391936624055488071788333863670666122551387655083361232003861118899608454079488034513673824138893732884982514904641685040366633706521243787549009767392084256277870404582089184772029287811942141580364818396798756453645223106787141563336615693240806674982902791071405088199844805549272706434462180304020828274322708257052667476159909224218656904701707763793145951853443537181679508321138414450251285615576008940006129813818654977671297722086091667800637290917850654823593537422636061951070158996650909712260700522027771887281712942520364579224868776631973148504540798185590709229522823097663041515097465901296822125252485255316714179511007391187503591851584254883022334667965190784400768265476467015274932979147601364668527091988745294831146329845106284346602806498658404681781319681468071373283066976154809193089669055651336617228899993867342744198512761690289076465540645899920411071048394960528536687847109762320478764302794132413654306275667467280613954528195111349469001477133094148965395723515198490836238430039152533145672549066262069893253889518738868334428868087438781377125394070922690768284040552787141300746179553624536911776421495656648922199533641582509657922124667497627201854840069558822997115373447760757528301784609655091630347785901856344141633713807116124190728122294769693042036220165619334219832747246047600667227288397190445186294523644108649322937184360543597404458995347195557788287558394847503153779202015581586608696189528146570137803846690558754103978711836862476554109446605515235714471565036295753079135358143926036196588622810136279178736440352189208118434813447372095818437045736417271063572845072870542693125637030121474619568481483047510996676850453425501963465235625723097548076920709721688225180529242348262159361221209322085997821348081802253032566678882165238429193846721469969800238906592164149641338083422774924935165645315616445813732192008999667061761739132324006414068021111638783988971113284546264005523968218297321083077066061450176997243494426695427399449844330276335844037946993289933904056016055601891951806749376366367882280578893922673760284313311059606388017953890048415995391022900972235683880683778135397261243341262282586696652260633789794022012932039821467478933712034440241625020055077201977997494502527665754869812316342840052669315575056601869868966558677998965826478355269319165087817820766395576124173046284641538510358272291781172532276301219874429219176605694177823789031012431453707062749507563011551366178117215419886375800613759045555005774132896878199793132489015723895966365346900242145990101229978066030424298426395706436028401558966899599927351641765844432924763895415822594619579737854725111100335623391266183262233452348114762525764751000620328232427635648626621647794021561163970768781537944820572111946223850210866552222202141729484759160252913489838381355048232375730230942934981937462202259826871977123177024146543674547009754417035744338824904149410132828384834340522726012910104198478458127110209270604718991413735842133453008450021256379661371250633933495600727211769990007587653996101360582410668595601233783675704155589879405597818455140523761892629368739458506358147015659313545982044940371884982805152683826031338880029173246876568067401174528211935256308670915172571582064134391036833671975882886810626266570322471848294926956096652797325370696298338329429896715217293229280327110785407259366163169435864365947586751637321588938559185090869867563646465816423905622439545326122507702338670461610253415531460351246502913272448691674708945109545177142604068786417072846896962606483448230779544705058682851734556736356784488101857930998223452459814469730318918523744653593909339546330639931962593926493982068180358204734221854062384437188536758958891045966589681457181774964191723865808279315583791567652308207317868313411849136670949635100282637220802889565539206721228055922141298747024170968601565291228879555744953797063843780697045258577941772242834853455055246219380613641433554678341646438964236313092079021955282876191702217502927011134671980826193070415810840758333170999016460373149853730571982049672510704467777099577471557146110616883251852418936362233704337084427510164360320267948096443267328026833004349076372237570935852216710550047229223553437145053734117325304891548860461990294700387962905453881879581792256388453066599543965618367858932223092460889721012022075702417931327488159767081037497144179534947346781485468609227972087291393459090963939450575907114574030980073679477327429357752345119434952417528644036570581393207843178278559402766057278179479772960373267593225618489935649062917812951088834100557748054094579163813646140584244562745395586678998143188260195390783935949251977196425072856578021709409239152213952627450578213136072785978388281655730222093087745270440314729991656670355805251507114510531820965805214548102728487984921514814901005163245920588141458719165128650862568721200115778925714901524027427151423575430435400162302245010808641177028977027452143523420888706261166567415761470403449543874069938777541027786439935050739934945695605419103591031822475378844186050320307524679371736582687829316634002723796278049702859630246091781876622048016694126152781553374233323687198516747040682456586003660508840389668385242675110589856063307195536690652844850207498353557253016797815996214692338421653745828423904431964591765464863693794118326839593046731105077036380789055734824995607320902355822582754701202551337604879664953293097044253598658899291246680363759657724955536287977263090957477960020341811394166987108686711918328154148087690726618114282704075472974124801851500034622425828653694802337544371697146561376885419342711782585096027703105700486100888555743532694157310695678290525274012061374141642223767978795170826358520316104081825687941552985383166254145922360134584411189178426672218082529843426477865825418919099325661481888555648578996184864072425882225581108013621158181025786519822260087345925578101456802880688298145293513446365576630060485145773019450959990800350272664518021623797988793779883548240554753516167923547291773811150867382000467177706617976734911744906097363256188215506207340153788075511633958611002837233639339697272515128980396571529046538586851096274237922731576183079877081122015774863107824219960031178705018638236800817695649240793168808517797328215506564720106074092503045944334168250440937716832639875730114518669796894763430998392653252505634642892429492953081487793199184061161283672097543561834520504793792748520700300131474481023821885272510012157367329295908519757734692133612828272292342544372132643401204603581704048908907151708716086500499047844158746970019677366867924077434989031736141477844876334009165016014513483237124198944841889606812998614115372788484665557761535885516598576198702204165507198664459469057984971801502816988919156889177572188482918830280587113931639313446299356223615744174619421877771121525558110891499155556321894248686953411378227586775428427698586688195436221485604257939577132762258293680262312935537419061520141500476382336855471903161190794873252434363659334319976470184925631965294683191041204361162089461535318309812198361742345078773772786167263121673918731984442948542770490363694522942276670316456693505433195151323369814272123243020811994459083291163416151282113543496553084744939269999447909709328402546101872199177397593731023550443085511071940546842583234418894071339811692713777235528223121815736201384511070488636789929808707893932162119426190149185025007215680588851001287995108036566173653908883675210856027674559897515262545199773016301136764548216746749940622721006602079940740229729828808721755633424551314747851819267521009163371245398640822500845051377862085349392015363063898578443369515569816758835125298431682839468885156418522143494294690736260409356543839049766151260231341385208025550010340409559447529186912257843781561289072070930966430046524628746083139251382157777131897505951360403547611031478890277918586110279053560957553803526483426568898591789909737689308869511311078391779822908083431987808133497214066192032322199460757831946486326639795048023229581529401393390005528373147168143090805916586515215654618749480205861342748483721468363204291213576354633052267210515211431390283570493490188638297308671349069217391210662600444554042880552588409529867732886609400734247525823032855789487431784593051405348176998904678155869593047982932714725796520511460909700441515315323806815313737995260282810457674534186482314862440413193952348367627891641125037013362380837327773421003715958026599579534216859217312983998904929314269831005817553645459370877924852189580186729460818746068806492259911032446036723141310018924265020209363999377517481429715938429805835517092111975981291158955274535740761080870736421723217220471457690383210019663823209591415728941929450001045517303659554494517223516381522778412504435599747799557765966151524302666794820016169916726858636379398829410029279660114722458791913217324263065411752875603287393884121072106701447938023980266107828644610520837494511073470687194747623548575304114829417926426047519283387476198749198084126440589136758764083932624227705381999797433662139390875666370508161383745918791577102578322004170047198310501835181514494318124628392166007110341780887206712501577821999043281554036222657220643960471868179738256714652107488881288855924286534185329839696042999103809472595674153314342123094546319553090802461140633927373533604149638700257331712439784128077637291412380608199936471878745737893034063814407930899374710982788603166554556973333494782786207532196597368215929840127528664457217179934717544990041315354445695271735213091000754763986383104688734749470624119347453282843726792687582831995839759472391776758609965161288014391308991876523181603818190217061944404697235161913822245145429486087404249400221498644964223504461127331010693178130701350295798507036873285572365440971527400747866195834901777350290415234089296931697313581380714252936404197875860956349029266327264832279322960708351261536749819884840707395597712783672839790929989481141969402346299082644964597502075634229489577187289583136682168649301513634993422934082116413144493840761977663457505423902142389893506686718853834809153523483951180877940314124153208286807000893809004972738677405651048552245685254185859931907549303533818090607451565277921451706447220207756836102381703956798113388530240132668356556115026727873569899712402608531121132676261312004220228121674512797629088121355252605719069248616452078893439063260848360549148970526085256641280449552857842449006659849524170606746116530624058642772518741666639571440382062640296742717264094089781422332113079993897703716605369354488059256864292697538624551818434682266454044410192203632183959633692909783953582629795132030477685108568068884583618340798757224955385055944440584946928502962216327846656192604597845511987383520734011207066184755939747251151560372907403866543647004523317276061590538798196429247625178053330506161897624220086079582985389688953127671008842047377559185754819266815909535872665732002971681266315386704238521994198830257665934010737976288149818628574528001209257133148485572417072483727226184601441182123064262689511055196948171466014594693442630702937914126995603174798406058386662123364973224326466624587904517399127677354254325853177184866464869859179700173072760000772019174113425604673429119782050285776382660015260286156058231131561715829889857743022674709239869980727292960672526370981116797062821496721046986869849338221720594994489900609078837970561077256136370979720345797832638562560800494058457652045306712687326513415708881164995467741089422561414874845313053513717997091852095815043118246702056850949288551643533411249796810713571906555308572232053076668056330418452614330870338504051575150800670939890960951357447535030555440055325667716086548372677674920475557662721123024163232501823134426059168087793771276590474052435819305397924506603325670221548662202597262951031343358642864008470190225220161781794826454219473831381048982644791886999303807991101508677099976326049719949915542150598065982490843359003644157923219878182276448964153608984401389306670028839201294548208845702367515004028179037728309351028403715971633689928494724745631584743059231751883731592937261302554842470150450115885248022999459183136865075890105032098326666044511863065237391337745674664949830247683461000900239371820332288368249629396049025681433182184351706625127759071715785982229588351540650378641127958437493175430130674000303327833097937266352031463795605294454636026663979276139133809962508985234694906756824285732214263799453005716552769180376666066841822338971110550677723639395898327109761149051823361336361226454761160362335183072996068551916228605478265643876987352880006094913798536144846786119204632720748941963466991233965670123280530208242895418585166504481468756548389253748500298959099617987846622812782991688447204603616148603836810373185463393080920713626940573456475526532421202756169084490307308211364917638890628783212693703968999814319323420775529495930526989208312966887019233932634095828244763816359331921837457550047241595285941569184007926749012906841133039860156588198411546043130016632740827042968417334912393830325193991707392210837521230584044853436117361474332210287990080213969907778752506375426042199477868867640149803920145767806020994085923812958984968690890538979697444421888788717120462540460205725876775115071355050330857190632640803090141346102697903282419608824480588733790403091642694130873063098541302744759261974448824808957450783376974598650477199929583566394163110466562067197739673662901983331292230882755636826473254573061231457464077120651721107794848156602959512900656323952971869321651689348929578402076905462417804733419074772830445932504767377065648129667431775649672526138767082547906479537499038561415949746487601499151397482737387501910595178969264555597597127125850355219371667677193446753784540663087987531212167543107734472511973459833670763330332634697156565766435661004656499139027093529554639697029866042795319426846589467385847513624653432191267311937438925334911059611399224800454184798746260468673640442991579758898092901346536874245327180713228094758563093149278893955178041662671060550377974103814689038146844408337176894577572545681127431839164229544803509851599374113145319308055371469579942640465564779279469378226766015120868111386163306168970706948573928115293744543176965547326630580944251061357186471041176172855596300779934566620472950231137888524809125873262275519750112772581717084675234448851665146801115093499255129341068240217130183567676230592651158874773193464871903226031276473999978384866306962051282371818162158579587180472251029741808093870450724046093285160090965809599016759949060160939498841797356615356889730056104049686815322976746775200302517332659455321597795872152286580819356556868509409849956555207723953485259725088711104914080688500267427420331547452992734768575298245045766855875516541767424393242683837760598829682521583171128328392302460593668403914134108907365560721783340106819974323688769110566113418268839055398969913396845098322257264548064229446174947041513448210909140022340726211223492125095517294819372357228173782607675061506340071068494249598640398413881260364441330814191804468655249231690638042122493551784683046856483397211319951739318479262360116712520177802876664568709110157198485918516835636019083001671396576481339003956682899222601705953942391859692821459011256370634022413768545346453235208129257069754180037412953053575831511421132655023971796239550931067283575200938164020956980813868548564651109167016042843011074838902380604812176128206077850708847465897725771107136159903487998166582847007427703800625547470962603278598749466308317151484171514605997450087042938172410521640661836442861358239881168583574693337200872963916639782272051307154978811677831789096645710540495234639590679998290510024344968680794253885365631306856442254325791238249468989936203849171393788123133850075043855921737586400592361518738563556750698139454950510810078397681940528020743525044769809123731613126250755638868856134549318039865171202656573499694803810968346086286135116693658001081478911869762911332542483028507874362321791078197608226301070581262880658325572464955034384112166864753040749084583023746994203907962925030819357641502623647932129652566577548897237452664084799667322780940718157155337821740692672877654275360200779184469994801598295420683134677193172327723638204040630373718469655940934705390177238040643568167997203854567033977934870197909334230522920556465959368219636825102070626504530121197228027527088652617543084290963737756300701258511369419895604475478630424168635715215354683000479003907198468403668448205854499607705100225504426240621551335537137842320690279974927277817075738525904269289884445374034605586152892247957269346820298086168997062465827724941807952132082466706660506880947079750044583080511007223277119164881008206837478293904123002172845476333278262486701213439981928407877445470462870821347552406331481671422881053227188138191138431958040761010624105507341888078620879550440757471564577389735091616080830539106063189224199972881067616678028541593865925974748566296500206766009768071332687197596805753680473789261012605174177993786406801975943157411009606797195687332548192262030472290671780288791158916441613645242541052820489886056547659954863880846520399811495149405678338155298316779162105540511471771062256721419313037436557271191233790367353631775866509240768717454088493200036290990996865985714821921456265324645066055651700497003484725014367387348200647600276784479175856590092806445159372790388850600471982419748853725781200581716669338045744410865091250391090283945747027253132673328017037421041292880470711234994412166844709832008478808685626527092111784467736604387064327672486078268631314595098839805199309223690169198858743979052856847499658115158661116110785656910886592960523854107240157512008520130308552199325306420415236110510252317884300166841441383373676844829252276190153732136772099404936733845422163455510244027673609017739359083018042588599675019953010073533901975117470586841418257806630603856777504814111001093140506507397127893892938451398523552791461403808285786030113024732447571333274248157374352254798774738215073359984748093896332470688402673214982431291862837351352448486636339140768606786103445735344589889404113906908368004032406914776626889317104439533000637914831396679239168801722917188024830188511481732453415895116873866097150170789208711348654383288459115970650963686819095569598717033303262046613295180222200340673150860859523164418856722345681178443738902181642293843393761101281519543831629438422478093623469914133551639843140029852658168984919913456743030615830051972198970690150687296950840256480973286541148598089127225611022523005261463718991749854719205722239303704568303232708461008080955702194243073735186433389879077127841584906456266932116412623320197200779194798048425423563864109501757401119333714428819553716871317561684605566996645124190519807660521942464739949982248144558593444609066173780695372731582640785558638223761804062153430026505558498790470262489284248489278110713395943518796861154700019053516343518958289706162706684877058215088976199569808557007853334783410490315025841638499518278886939468137047286025735541001004716477209347904832757272561106358582468368143771143394719885735521597184927600918184048842811772533034092096851592280401633637331482183338896811399590885453646486843137354906892170530527370325257963398358752998667569682095904991416716770219684750723368771978113008422987034820692240404867242258014087340564310753690922609430852896288116387763028577132065291407747177346329373694916079011774829397022492362119241993384643862042712178790935352358670126240087829825827066611815049528287046895067993564483658357662478121776913478327465973020460300402228395720646668435826908676998877337083684798483764750407833472703230623353259982822849206922719158929455723615018165574734485186526235346747788639486374132011131494930201450959956791077989735876732235110173219967622337444954597760723433452528118791004951361369564797753570769555366619759185894525083704975254182655386499318608702966795474120087978715495319912809922576578514996673321942984208169943990347323313694184920168458303775780232718553025299211883752361694694414811711405634418637298660456592973307167318126745776148130846138218720294844176304685705506079274180334549147791002060917132764930626557733652430543131211490625819557026872257318999929990560989497101942571808408017128833215180656353015283817959288538322370518362607968767759706190966604121066801572175907212453568378709571376608423985600124675125180603132637172178285900578664103268247747152673812908373624028049212092254720218957739075978670281483809186744659058936532870122764389039518680959146522808849871443145012736563231294602131620153048595944889736397731767578501206743294798940305444566336645644944008211004777285069425976286137824886764521164218948550234268318649059724336727207825639672013470607873793395812630519569002376780466503918382916896886869667579963925082259237933467224530047103549130354432517102312109577856469050010771759422783019597346883355389109473005038248329274976753732466251689154101854552284852021968823477445613713680645835193459730886025336221707992020810892645113787273232882850733065884056156529808193058732879735776324715066594013661377174029970639403759960395428137980470416167871818980147111475095260626991145830363237764616013013838735446874148173277569796166736025052798738946431111237468224182055734378949643494729076708619889292712471242444741735439710399840641793845871145630200627956064100976955306406413783208175820970163062604360666321952935819292651621127523320748346386801151161474628534963503558292969339118757779314377662909500529511812333339868694608147170142668836219471484822202484004044934494826688141218489711005764532536906472418812752911076685588117557993159362927684301799613361789359409365239780244694757734738960649307313008816951785352429989747119455061651745402299233402293314294428421393094572812914751755018914280193376765201928448984989794975112394780469504375515733084731465808744323275673994103705723674558436640049372008189538546485698799159462790971817319625439432067770054330122465257026051058151063061764362311350505678687109035988678375108644358028824472964388105898677139720031715027368194292052186160863319792337857290822402476157273593981577496346251883292701423805555990242069199314338551386889340763305133023572844004800310120048735510533969768067072998823795130268669233234670880784885653970334485058445064851675680581717240014925976442890668293769078345997570125564438881493391873105900901285069147787956464159875725039535420871560060084210925897068394663291136945278028288055044164437819634776467376301230342661936872102833538964858273186027777085359713706270849987577914260377060826837691246219272279175830504278775393933392442648072276962308432484713294458830444099745390131025736415255741852285349875788484624856978941202966546941062771002216844642821841008362502611474708729447114014532913216344060754425842367321844688858591055184319993613650196037829231597744477805618643400332231721801529692170007436268462986365160084011414269434065312574056569263295054843597812961728015286701152641711778652369977733111595575439216835470206428336708606298307306494566825271614838593655259607585601667119972701967628805798053414825881575023973185025730594007714801292846439170431862094644477146835451933631621585524794419565583032334714196344862499577286647982157709635212927925213328146903226528331383561105853580904020068268319565180744853268915810343212090740801372807422089125493157290411864251159744988080682940426244174879463634144975742007898868164728412756882635235386578256026167761014297258080739000625616687961710361414706533218713936493091254818668894268821964123250993585786219152912218984967288816007751300744178181295865459106897238414178050538709577284116980636244047628932888316940342480834720723783334400333050766864187050166276557213059937825818709712468637296204610289386495060756422995453608056286902039506750000253646343856251085229736978802814400621394806691293424281683008133131775412201783155662793126873521383495217435353182465741910090702003928058411689756765951673846356605069599063490700552707082318767615738133789819364468727746064838864300721160066241696079533995744858721266336353556531310773890403495036846127149660611874583241348161560538821954157362583995843229720659767662342892178518592477083239523586437474518288984300685549476776999716861036702615411345220034997983056735804900783771132390084977078170622257725478207097125697488392577148651958605703316897298843421906023227920209799424851755638717793071652921872658706745153034416251550209239472582767969895228840993814257958588591515881010394578960327645947739454795822006095374996595301873912612573032256690616043131275644889450786350717302255056066158713770120060447404061396393794945081137275564509900036192954364384412788046683160405021978629306840270280725209178830226622957078584282573399701457794220816301614534656992344890316944269947752534168396175989118175439663612033057193396170472626778811548512449977675729065818840171834913988059863707932332363488074468876481847334718965380320549884938126045449903866223647945412503808755393880572165738076590940508480832575038858665010186082925173757062710634861023973259577874488054749997957731337773743346240277404010430489410811169801546340228156779592716388761579157781309188242356845154639592353522968040718292957929577290351412292564174862630291473350714058690727754084890110350960746760526653437786408847034190462118397256024119668347639493575204851664559037841221843800841728884503817996606077106148511432784436242771711794226626534958249700098990751197707600565680305800738654212565273086481413286166012721556430997763312875567570340613205176832363570202896589358394870005123421276295603995237453091730735678686957527195020597245865059311258629193824699325239518624766591361449143101269545798507141309692954585012354228156156343057553938399176940477331015971065647578961962007840547916976592714252763342866632240194330517757468019603071872996051627670365262148162675873509800488390806279168078494821699959585294864796691955986172701028205073853434395357816555572675605902569750205323964927363350186933357718582231236944122612798443666782643115178677629822701707993109454639491714221934541783918029422353415559750480493632779535756153779155337494487876660378890125822550383842327933362377176818265308480658061767956153348501301937493835917849342814077576724019399691795363447615564601295824959559919825764014135269967575369985014129048196426611246261085302559337388750733338494826711782790402249425425672649894255105638038024083380185989245298588889395609477507023069590146406711673974641494298817383048229906036037319905555885227319276666672077956528189106946061613428565409866364266684926037091540801207340039298025063312292043450612162718948787816458629048979678541219677902220585117816373898115466668084125289425351140539126131519270397605658065470949111549399628430664046467974190022118881679718272760423582882706884377819852361131625390704159349085220107195256859446992033408499891183129544846984375680467628824448945774747709819890931190399625674400078845666966481681516280093099216458188144826238945056112333774355845076190023475828994072293480955116149909060117418601973252876901656032492641015664036111780378130605615400104665294763936493072475923987381004633643818264640346089999000529836242908589180227830469194383968376991117538793824684686312826874451985108919671148297748688459816699372721696899922455327684176316895405225612298147511062792199682201897478322632348925997148354353197710999106892975957292054225587113266225556805549050756954491121325138238433005731349763324818096069200907700830124931879967483164616984497879799355757558992044159860808303416069514722236559903976387225482280646796038916500985278875744093308552814274766128570673184235638871565358749206864574104862638695407554335110460558723211351442004345478565783170842612482492297305398130430241362601268399129142550143214874113381901954971563079894445556738744511672658544718019877731706178872105603679233288645618731508591013428985478800676519310856876171096100624424771892141625952735505552912595200246067692450962150677968511305180382639089029078370584208193888504667143753173620163800768348405421025081908354770480867730217611560221730082879489173665433945455397856250796965215533868131677577075298324893365907095462518163383551624982962102733286523266920406832328659361255197562118063040988088012641900534843250188770404083515312372260526608793110055572138196003945813057756510635614389991412183773539213579014991030546268261947356614895922292415652053441508530085721073368491790909170883078460916001217796858573595278352106614063691226125405693523465144633225399529417927222646615570980954146607547223022072230016400909733889963515569746349255511029313194293567827411786507975013065516406351787350084706277359831257273940992819991797603114105049952340348698087823539983662236290591922619453299794857114012728523794514188513500447624121394970036113163257982171237050739887684419327304383214390238426298013015182543607781252803363028058851724180107436142824317659410509901937561730868082453830410566357164123512627123160161894622489952454051034084658618881135576764300454568064755967943835299125901939905463391690164930010500693133191982592664992574027226725525091826092793222073306453983899678593691530328581738429224823952862267670528365136910639637622753266424805840861742626361661289201071622455707642668499061343856061636085699450634628948042830603530388181111775795548973902925232900553721597572452866800537923896295274842114662119705702711484830340952435755804551093685853561007849946144121767202363951681449611182625364349050941127172847526145447847728923148207887208877567753682105004635649678164197506340065561204303817731485275087966764999631233045953122376714690391013249165770267957994390482085133792699349484541926729283164986393810219144258003538072968670148347775402559022137667566906524230491032538498163339552967358573925595191253644456262493415315358304279615239243933700768001642293840921317515434024945275466160968475922401258365506502354848833926664694726011916731873397288849219115142950450035656952074204164915248279853319282960410929539926453985606421192536167948702810327612675956981035589938692055339590585554715694214668619531721492837685061524573578821892266472228528752849002512625573966261569117066250972693148324107334392434104410885884077626551029614377954640084966080537274944228767322138808389845652994953059379184704216409796656235546141046419966353528914841277868385591946654864978230862764293082968099430459484775899021734497794352275013892822278886437403871066705483218359679256004038839444034816799550234543007998709508053138255501015904131674166376899744446516837169657711423430676695311505736008905444390650164151660076043058496546641993417042889508395920562008641164364428407716125633989087115387350156581029375122602309665607486316097362452604080569063281921787628062366321894117074965419059103622612854948054722608023943119659369479041016177449530607207374374753061871807799581160556461951303908259695785644180795379672610316474969850648392728873514726271402978972281940006212444045336833571916221886004274981958998325390099769114712797813017714495826333955258456175294525886236081659842757838003342622860392244620995806125629982290671586510804732529366216765467923005005570800876657181675610366406719378087813659146366951264498039662810132979751099363496409894454437028423736759329080093404453444735855077474625682822201686682903427516893921263465359984591170918173552099368433138172089947223946512345087941991603636353140573766213092103114480165355007995791269100453359714286782332660604535485204577034316213976141791327037605287841297020457169967195365670616946826728402772209570771638534935259559385463361464074290107237387939282339435952978427718786293047700760116446175590826416428681769056663014596655488981688949133198854728547262923238161433380031419979119723606121499595148276317883671737727315738397320045118698555092254380823892953680377965508969528538043534360021896901837446218243576894338693058191120572266080022907630874782125732144936720590645841373103314184479413875210581174869294330511847584771826214044318686452402689873397203588932052778278309203218325733671508039176185045465669284084887693883020590257024533478045479294756960742790959817742145562468065364288238707947178315487508631703278080682376994823587359413243027243425911872840953895652286168747441485787903806179610027639914747095290054955543997845107709737589358216786937634167297183353041534120339432325684877430982744574563531043723752316594308464620593988565247162862973896431184527787144727861624813437343537281227766766624934151286584098482460321665854524846606282663126899706121655444555574431976191395995495273175678912180740849279837084947086728258178290222797719338523581107227052261491477276169493576890490992285606741880360829666849225072129784949877495824293933543308001015953895737054957709699848176713275228862644887003447953884937059677414851430059646177364364951236354024847739630324450529806718918931425512495337019757449439085654910841910291635752277493736696875248756717225080513897336676610842273791756946136467561493494153866835016951609009274172788433539491528041961275525312632761526320290489219220803237319027575337952220594751687025705662133051302484827024552064250407628088251109205601933527845115981227039973096059849834706476256168866224583923004368232147874524480834338723347504479255942527252969370844875434243165927418163790213797784356232184658037478588364124804851812419774274214469860102172572581293888361779785966712717232807757482169517888605161541419947863198351489443278024995678807066918627335866632949967862266130686794200712881764723199972037550425787226174805115231079601118106018126780584628400746303475953624723963545451913735578609336822637048886273161252016844229134608458827727999671486661579578090459709732586955927124743678908293663202747875672331310080118425176465573618474086300424719882475018614320266722632128441770963396725441402779591591062632335788134744785066659701846091746741949739894354728961265985489403059462989012572512217813538819355698009274555570071133810996396248091927791872353792281446820876342498310559021689363138088197651845712777296288153801639379373095656624020535364619345986641902772186911348383727021444950225468489164320863843356796859437941595436285802281195897159554491323347275176493692243812013031967781333156293929540730241100140160170409446658058105946645468009012341680347538223609699638395531865337513783363668130682928303159910263617346991139350460718306932097530572097492626878531757097296513372914668961614755992056976533743141908903744528473136142882028899864338823071961561418581071062950231612847189806439634097175759370662887799477293277138740485891613388276938696600141474489632027021408962767401401672918540708440874601913252529476250913697333560059144631911822634457547823453943041547529511770011854785445305420943552128861261509192250067147002745034189464384888762543251665342507554537805384317167601847390110799651006465782033455960463103340883604922541875696857683493914685798807611992067552144118660807452653176878152880453961345967737075004562971166404225572536558759569986327707353027760399456763965179823814961385119827972498431963859708245278436074629404935965850391817762844241472036069506761902185002981556421549954288565244916254395953601782580540467786222589703757785677853702912933736880701812280843250533204572106535269654563567160312215233686051218149165968357126938785528211898515216362301725956741238653384553815533071301647542474674431765864479318294111330839276252241789808419515376006506594408084509685059828601739410529955927878152070130748770594688892005072201620255129867906947990035801188817572656635490461695908398453131936533680091967967431211444062448117532207458070216386408448497877173156240550127458660945109356082310668636480362372801013654450326806398495777333728756635891681176217434236987211465344910747790747238416173032872529874361696982572978330789428497286176593716042529075625439413414095961878108155596920883785264390213794692439888816407979154972293654022345044778784111642581428069859656413130029004252023699512665419926214021369110156390514224581292847904903352746692344630941946180255010908433490117907007927127809327409969272098250770748458231747146823812994162511805626399582847604751400276322816497271507891948629853756247557613543138457563869865273924134351655664644746381316015352681481512702167675239685625041431084661115588585480155890183004644625378018578751803585140613984146188165426188065633766253437032649286553680529222859090691868371290795730342918615750786191578750222973129151988841814556630392097017676004910395656733706607212150054879294328025436911453104346158543453815758604529827219339129651691955136261664301952116509416025474041228557865908564420688956533906756545050805241946545433383868207796112557668986050369085397430414554057147538508989767290892217969746201094601501194244344852137685113642808196470195474005368944701646448051244607115160484427767949137859061663663463693583114237611552046320557840654399629070016886035234992320074594350196908550496249687189883995480637069857970445299541956894979827557028217167418315892760260367115564112276229453769635850814687862635760811741585223695176756587867985927162162224427443074153284956181159056365331034232103742021149936048201153281452896692031323589429732254201544773962879572378251691260152168442213171118058762255085804456412333992916747946259199056884434597983201808126320505663370887783005767862906721676010123107893828480232226608480431334402314077705761544946038777985834455707736671299048940033399483043912923975831285678012521154489570690558011730974066269150863922173361556637759536153521588624229552056020755519031644149801347084903797766196249499033547135960431064740127394333909399098070639098567723731060311398251928318751030886602055122808511162153342548559153047181594357705299298032739691731059260379233240431228383569043929368738315563929373536119021200808423417754308223153222620151049897341271052575638250304400087942024467412355337421984546473195968383925259764595405108450221222084841256659691978211442321779828833120344361579949986269375771695351653753792026347715046425232620793688006162416667227576131153774252878904289730014639557313386328255682846170122580383538871340118610882189471379712251100176379107551496966388410657533880538657106765809245010233277889497141934272859867918278625721547838156613891993116135756764864905431430159489542342505373502339884654590407287643605238534890805544583656725146212398159954454116474948044868523606500209799562100552378571550894539893896847724832913446217778911691906771924038068767744726518437599501874547799863722821486293295801186783294326340657162636633485850654937712912485911126365255844129408866739496644691679410409825944806186519048823609398574422857269757216369784038697451253401268474352450945604813656043847616403535667962429179567154260553142885000787859584480232289918901038289524089704387493835121644523458521401801516546560505700807396262933511498305358242150265489544098971312351310630120463839620730177121860152444330444636128324655381670773936019183513284583951156354195441700211461617692013476892532413076716764244632379150202290963524374206855820483613143084466923208847838213596718696935709525056711590809537008667177408322168109895384192667082961304135278352383406252473168048839735222652588687800399306701029774009185199172007841932904485694320042702132220650869815866305624563565225736632163374565603746647431267026401259195592625766395620248129113191198916222523147495181575013398097217385956748277711416815682686011097676606581897612637546726256846765050075292380368492404241945497850084414565297073096867132414977698261543352103060826894811678603722000285508021140925805495022885267985402040189125319484277594591457970941262105201812400496136890651342757029826630876352304312611603891485176894296349239244735514992569962119935995514175043960547292180684934453800736448911885253194345018482169203386721549623481445778228991006150484985084101762166307486832077055215728155577815742309991313099198964612477524165657495942065908239426865312813485315807550610863598999251079862481511179550703885821028556883690136481666823934008461936746753885167155476613235512083015763172220936779849390483893056842903238376576653002609434110777308562996243021331715451163358849756554311758508643986490262205207584920969065643914001075038237546932004582055139232080759671685731427758374101870550168433514988062666494626851699417920590514635034035039602660513440693363008076162855760883707643596741663798350224688286491718034221372933348840203189866395808677968440951468526113920098760638531957545640676776387653887498623296975901372764758495788723938557184078735078194160814420703432617840459207304501067508700317565557223514335230082038998088010363062542015704779356921523648739819694153490741259414086600449685421788489640672937848039402195456627870437698088746849056919299879122587871569672814631782774122459196502872000148213379595065412469250402199759033473834314613855188626257206674435514527258904479786405276298689743945608008162753293317817389510102141120478769224372910008853404171459714091217341548723220735880573862327916814755359747253439588589489182590809787008160730203644453481350033551994486378420323251253152695439386555364510892094415057446774519687775387388453884786813708295196863794074822182488429848053816766159360584150281756051091519315734667909858013898802996738029356854947416530656894383021890035166656439653163543968150765369888325370927028435899185563469657503914703364953437695861606386849786146359112382775567743686984673939708512581391021466440486405873911527516173855341050367206928590728742952672540647172441128911061393678179103466622617480833189088223749653245075854893610569607670307861020346039734698982944273800905102777110867075113856656171089876658287570254517004308599096534842360121480506595625871049106906625886307154274319272421152978431464594852605177922598220102153331520889472282794904159950359444587535463218336671953861805605774985961615972466300852364597260043420902573678188254509333241385100458331850763275335560267013225507428204826658003280716679543129980697777079911811824890901479495391295984090213319855173306083997743275575550980208126890334981396184611068985526146744816048311035853363647295219163828747980421506060945980376824080172118033597256570766020898969183565076723647873322077516819951010440628301182634165450008244125715569917929123462515201086782025791505238950434430057915293841544747683743091041681319169964205160640491789720881353957447746390954854246899500234894568452425960773985406122955132215280719536785275857110361527566112590038732098377612585524402915265836763729927270778794389224578030305638162675238730868345161459888699493198445599885842552025864138962093292173617379168542263006684134394762325877119508512702101577954819592695679968218104064401583923914543280236220865903179207469637007431869814210240257815677489709382719138286164221309485551935460415468286574752885216282235996923977513133172695000154103627772358324612238448234196618783547621690958400280396314190984571038414110139786556202661085696007786942772377650982670373827133377132206689036472505706452112120872432359364988335442480170866424295522781516553020425609993247691554610456796985408354521724950847533958078680060817168063577115829255461491720576721560712122991288091730573711613875800909269506410852126229115463599720259350041124332821671923519089718023207005804204906121767860286467863096364702894590232918272829237466477908266327995806948980577484746393822474853379036872746573059315522735744571806553035929274055986864277326944428963850259910540565495413777183427089217651887237592871073869572062424715208529349905240715439730308053103541461591863702504660189922364427584156009567604075203242386417949979187438710833209261675398460314123154847543944300956499722849532969069136354438725635070911093923251573768170600496716673513281872051052037716698844505512963563113958614171123341452561449249304430601282203906479743064594606869081693749713615056397979825376941049419764167279494538337256965196297022066562659173822169739890885376576461503291187221651412131302586681400746092117569048151051177994260350267618355174742310588162731687611010471175735969222596484135983103657483763853027018626953060273444566943108140553690111759167207894309373301710183113000520594444918387068278749428570928699002224737377139512346504492982104522193325628592567997311907771721287582512540543727284434715022944713797636950604183577419658717344628348052807750018684294091359497037270990852376223964433789849239600321628780052429386297240483415547529335212998215438640260879304734528222982139776724996830407529090921177995192136854964126871947744501034278889260900770788523352087054641522604934405953138665636857463221695767624110334799125647587945714301451716781779169096447307461984294461181389494548643418362094027378501489630420924091267277139007361579732069053292819859826666218043765454563374557528548980387681268296380781818346391258703637924129545619704241944860676793084553155716151878495955892611163531178838279585063955183877082487272341945342241626474674704959118296002634267132491136176648997534280526563825526953323458859181665496007571542016169823299662721585413357263887068541178640098950714001744612907852729869206893113608026634892896385085464664099400670501549962050306196925366524398911472716326554849027552835978474733139488854213142132667603526086736444451533186085607025944944006452043385752213798114669024181489378802833395271443681918476869083815840849627535632887773548049444292280689332410059929398995235392178280982882252278533853296525628481483753040076005632130067226419454829945948051153027245392783437938010639612574882261222374890995038473433229183664151634554613620729997135786553663960849449194447081553981263365505101292309131008124855063534740796786293362701722155084743898341821279414809328127099577465619681203131193440466921447161064894871806182243126001159561085698161543965684249934029223472333298442266786598072507332633434433408613394256780508469345439701011203873430644062150962525353899421632864576580041499521003177782271956910775481734577203310699620482375277512008784491657668580093075805055679230194600672770527119840988609141167843058252112952800396815863589783144569677244947515303906749640042123274462818585851744977755733972012792549858478887653324850833350674314105128399798888195159794773734909539947055567482716410941917556014371853117112857712185875233411494459498528576590686475437805435693445231203968031737473609679516730347294803524064350688864630750664124072893953977131568395670456119232524836420872383943304159252500263686657768466367913658572583481449411115523081788723958099555406000292504632560743190577306813695716834101235979727714171559597511073518108920788882068912708824446016012180724253716391734903263698615584831152345993543402124909907258382026108841117812024992429933862957790884201297454942783115083633480583092590775894004141695677343084915145856268143882288603662095627340314044044951411578825926560857476678887135105050665653119932971849874175209814727879000370343858272143989750948601229476242108771919373102784896122852323365859269844173398858329669340074481273743895813665876840087648931604420462323557941600367102735711339914302818498537929987756861726826989464842171218398670353824113317046824590642363243381662323093432590270006657458910951230837630148227595967595037219310775321814526475213883262109252339256592260135761830058553686740897141642299591169695695859858302721812769101741457317621396268178768827773801819556508324309106028764629017733686744267078303526724287758320884891923549138890942257377832519864407713369415812145894376620548291030652363609647793787693373241821902853332984428665135250871294940867302603335996868712888796556108826224330264689345251964923137947869821606047323029499891387692325902058111046781727598540628241599961020076202656182933119249974287160233336509057184336665003890255320016593677572866377788569188161323638923543304252495481453966753434709028049545090923643259784507095748812642450683865303931307936473439200142907721716791444695922821554394870137026568028063481312688025702507373729078985431321158136614509573119042606406799812780542395901518888852292169571142306376279080691360393425585135138739128215856732257413916617564903075881368477857518698981076376085552333952689903786231851686119330127669131062568700934082430371531795965891779515243178530926009441056971316035072564990966859873817746604976986475667376653368249199941114192123550090639381129296611235243583983307351352630389084414325475293833364599315825271348777348944637694573305561961180868065403390054789981618489614338247203826527640547912858857402441166204066721473070226986546573530346195729328000464219801354026784724397127215857904440547160094011937031823873534191810280305841288831982844984870796259090219582189467152125946394213828437773476353638513229558034592178049934080628670900000961926730968275040719562697631424251862935626948325492744021122379659639204659168619952822773421362652486653867010417440580627468633218121705244124900964067154640651787207261877049794094771297942804395218433681856367039458903203642112590761192659560778859815582831625713622293374661637635422415624691469249377930096000398224392654199501667216653408373207575727366385864194976110481062383108416216940508227344864765388865674864875336404457058641078380712239510277407746604053928240794424298316531629956734790072884636931285920851613467533772977969120867902125981927417810059396300585439539034246049141733909469482820267593322500020561157147027164523446514293944665926947494258685574081200277823145848857291978690154946018778107750752853230934796248093929673800221430817965711123392088368203507642759342796121265073809035176325119142894105571466690964707393038612846992794089265540769836066016356188743128885622147277660385413347451846571537006109354947479609362720261551496472723233079395791583905548003890276907935878644691638847150175707439671613926044054847757312634579846473499321882697061255617893968780024508620657110370015524698728957649978778288904334258045830881708220896009007569284739854681859709647592723814022012782892320426238958524717767256408163218977839242777036875635057516675687463799284287045887814146507235711256314127418113913818123784705201778409567707624019260568698971963962899909353139878110100026074429875995049209986749112361930757508692482275257120196230435604673650601107148059861957718509529633278537129952149460508830858968960459243900774776680976541174854288343280178570754512470283455331428792086023293254993991210672788880419179807186439796260698246773841058136688033540120265552120192563227968802131913591540298173538977997479004103093385844233765853978133090691769471574708352212848981562999679320859352832973070730227859540461416148848267653376517389416002093922417431752170605700365690185884330193418249469428223615223580078728500882638207348062603653792940063729194939414913656422448870917289845255338811884805026935167356256610637647180184846544821069684792416785332317368817773907722446410989785027370846070908189949385779539762854446149108412915394171594788995601691525774828869717427613004449432545430336162145288925270533485110321976574186802689069493915616762981867219078230207787658185056603760904323813182482070313840645792751108853034575650966785644303149289306532032753695190430443797164490100004979360530350003571937584072303178386317392895927032621715739812543775280735245253061223385834093792818429341512142505308648076126468032215019550295292922676651695437267110563331116024867807409853635958769300426664346303599622811294001343718416135777907751270555398874441194186412505827332120737819573643312871665800042796475696927894199691995093159548629306182304818757243783534245572744024451306896785499588752007501914236991091571179125964211058114872181501410514144467155256786677108186056419113310758426105997369808525605289659095188395019960169260601486305902714013954541666469065597064831468208062339241082558055578791019513797342202386217429986505775395616236586334726045139036062560905024660139650333662971859554289166481417776158866786574711381910055742833319886200017041532752648505308575734269269082519950148620807749312826797191691908599193267321542144268684317130337385602176632541979858319634192321297599624482827718131737750186444989987164598191903428918204388901487966535455657120052883363992534616536780399747248157783836590987466995484024257473912147080674591833417276787023217454045125392314243140618573762395543120755725050041084563276767930981328616279862769089049881510377575020176063627137660033524246863959030695790069793451245645566382407262992600476480654094673573148378917706851560025758163379168775721588109850202136330797307947792010400617376256565959991686140786872472743996638412287081574564603713401861648505496511077653857270450961820204284644061880365811853604869334999352240592105748866398171699118709064837678401043773527886649537191905930262926737469106108684975842673493974746771792235742868178657386702249065094628706339080442275026603543310418846780976079022362977472853595094013937497298559345122969022117570789109715106473450063878753070448852780114479988555223804510628599576978967730577211111082035943297532841454449685874387304776078574142641327575443532399565814031923726289095068019142108821539741306768773057886660290165113340890296633181223143725481420189975145713717151194447521331147512736154947476988200922839882688451149457517721116288856006376263719521124347629456377201754772544350429709178225694302899744240322138028743570423559397703918539617256520335880933380891091119790489426438234436999438126304033268844402693400870030976599603105661599174824885346772758093770604433423119402920384218925028219873139460862793258608336113096762560767295535678851841138005241399074365297182276901403591352343204002927369842971038087152744994703517067500961278976302842902307984758385353518905446209141146794036369464036463829285874656201269917252390731753740353250947929522717269486055383271628264486113517237604265607715237643517715137648177965148311324999377889603049195054065985603465921404209537585542339358947281808103373216062615392999392682272528668032520447079346833254579727378263008519753011702762221090905454549832629355012712934917903048870826447816902099127411152451938109573927292123570408019170995061818251281541105779231842494888300351073076346580467873331156679989605896974145833040318636795574839471326846603302451180232624024360209991364373634037064531035399930262461543313084785822383676886933288792054586833345489496696203148249175388152113110683414164158652805643512367050028114588643666316578255342969573961734554708095894076728109329141974910130876017969604308011995343572343778740422171149806301512366888908085592767993491232568576961280131361574080305964614696118062091214809096879359230873659907601831216564568177895588179672041923298515252966620606031678401553554650242082817615116920959407354452734443614204847412202742176205681562138958116874243977955731525949348697960466640364794936680185285598437429401517778348222939337610662169401915190225235548703938553131075088725372530091929248068018101146749080350272915121423331337682033977443960580657220600806358410304827124270487889771690260664842074232632077642759370786006518444356189101281028752007254679855154879138513275293533040502147103475666603680302366000889393823982263848712492477177225938703308770140341882889047295817752330975511243799329691689457837130053222000767867381408201488206727878967196208164184115287702646343907043738479691111401126075945313439931175733346112056539053098596683359643366838396537082495031286450564300056060717969289662368334622449767739279485189910210614254497316753958063257647477647484088309703372612968771393011577708962133212740008260081647496182349374923216253890717175076321107256626494158663607964802880649495008562479636087332049297773243414276775892711599047662682287059669912166169571499640079938825111606325551275620294072613892986190940289974560917678059068569967389569855337097726027805670299583206852134535968543271257150339733961278678896225781836640221919915563530689826075104311381296409985948065229388622574688352296333120960985375768350175941307319981668120670570184723564729439047032886281930147392305306529858663266908477564643887167122860634086592394368162915344598875586368475888918215052931247044557372713743320861258762083566578755266908264338931334182746216002065643306508238165832324711374372867146718590597715869299679104666329117785442856443019104741599881291159884450974631042774664307753472370334145756459450679015616817816204710491370240658208540084579666182718977040021184244614843923847473415420917922959340913136269455687764163184116051041499138823256333445724651202344052345713335112692728325388639641688274616941270444498996412451233991884500400752091638795326915435603497188463793935845158262253686761093704540211608336804214577520722679878860292074858870001281196884749658117742707769989695679731973610830672750599832548701615384831289841425138719330708848977593115781275554863979218340887217743291678050777963248696255739434908299476600546531059489240540302100240187471053727657178884021383616995981077328243172330757261881659896591595561304091995968106215453354172991868249914402003827358921147275952781935197560552436890185522743428258950037357318048351460769421689951788785510060026219175011579074258025559208871509554560997650017304590794348264033305852252008368232832670321952930506726466277821102767938470836334218572691461131241828240700575610526538541134979600998885289970897500527885126451104938016135287995103535788695934324965485746529475249002538481574076002992756176573523299744340000323160894742379580897713207154284233449492801111482793359336497991415357691972828385197594052581876591531418541709726448418819242865787585451747194965865779200554145948338369620383598126557337825813735798094397146905341889815859329819966747834195659678790337536479299251569261286846793776703477601120203958762380360745684420947173481589176086787125712026762502642457728246173985536295932217837168120756413075832539281729402922492517738631385951549162726702280047265938537310896115908903775097934898839655095613455208695061078632515160724433760863608171503532435616743515137912818305178370737699364903227148779383998397958843385656741710924166211384397374857155804267371151885850316061958690607061159513737456748741458276863396973496198385790482430702074048463650684377909278750556862505881626862452000681059490243753740571344850059427773346673847102427920928372014465379751095310740283994244893874859355165419036753579073934859001756067608787588011728691364757342561057766136574331712285034959291827267771758504373543318048175663498091699809510451268680971311482416650641400260352022781631503290127358624938739145657928147977002437821628871789970786108598426105860621238366324055430965328252142177779404541063618070380213594142677478879411158006145431214663537243128410902073545634298355417322962053970895828443848518025641163645387193302160428699207515847411275768746064731156632831241593252763354402013416932743106275460500248276204332024775510135306990213869294467856061555712604631802966473441726342489213880002837129785794447743412625154646831978170540663162611667678852490087505886209987967839216574543656266357097360177117776432414439947737724204940749329562887894679100702588917437344263865977443768737513287911289219007850534031033063975224462331919878719314464814805821253691059699917527620695528107459501188399715795951149501147385846606485480179926146317542464208655362947161385599621847389374008003209950146217262950571505069039021816366976827561198967146274941317996217685677866589794034738273158237516553463099006246521557742987635415084729363641170223969960585590517126187363928824768476787793455540140069092713390599039811955497607906387868533871013399874237989386656998218570277472646940718384777809082968580053159123789936223775509608857347079270785181445717779895172445374183042318179366091799170855939157998306119243696833782689839445085528791197198112611756781750488553485045020180356186340204486422993839845175934135122830603872329940114274628534858955789110084403827626800729600035920045622464834778479642875131381295091444228385580840958494989105366120112265997948315270012871710178834046021461356772630726913240829788973822124092407705286094920416144271860756758473789756528440605438769998222879911173866210931311119361854244546849183945487225908375933709334770377756414729844538671182207754220485830490284026360868688605113763185732032618861804644106752194214299053010662783725572271078008648742462578106618477856147732928715683050750289742356282266056716365755361780538332260379462233094379355674551997390834251115200242500950488712572320351246893776442569459256189621134394760995442819274434180479791187697397504887507827350491631030567110400630805268917985682631151181032327769037618500038981037911324931789348498385110424869886627599181481805617558971411621788467371632038264890377331466510461987771291683412927715004561615356315522236806820982797306620069304161704574053495143731239640641033384950472080763566933756981435284812205943130350152501136949151840669466288034115702106551186510908744951143993351479013184065443033360242976257634936910423226526774739628633008556916304344265998462483897814253450138183800571427804488915705083666336300960695757448153953815121645734568823098832879295991709314845713425687855283856189237627707015689738632458032934647278293446682265962479691450542022973391665987412560084065971733427998179542099770833519049436401459594002301632494658968611562369584313085435538686618600908671661198174184454632064468731668844461744047469597765347328374361083487305964999975869009087767110881371634211663417559185296929743669424164266678168557156515183222771416818822372550297441834889596064011660971934430032571303902288740894399025951512186023283529200020992824185234114365255986715965076999174776057322284637706628905820947679249390169622370966773472281814012614914199886232716197123694615668786363963078672316600732290249833051076976552838980495261746131453567598287425001907316552667825768812554594309681938068716888533854769326365216554093772234850821816876722808283845043645279870318983798454403655392940139874942346603384335635888208136644413181851848566063743923006351617157349186352106870108800284168773353754133696641805484194436535540226819891067367010274206334512892492818277887120675924519548987374750945985486965223233048319907215383428662365917362971394452177301103904270310008246681620707934464708787438093580334815521903527868807527082981822578536493152252092334345586949173514105903426037101943765417820802066869276843974573735832258036585397013051046459050597432921202149833420704152398004680792816547870492940765267191668411452180046723304375873837460059462001761580600057383195751154375602966052505208717342374157143463483300065456659738184596967677532966710972988619336447558693079365804687888169936191565133995663109580591760155606858041874385219221933560001510545594203145117901246736145769723098887382690571755668500324833460123088405028481352120085490893010858139762025166309113152332155369346011094131469716302752164028168786851542322997576855061957375039683809116451025217923932078975526015088186094198735742022717630948911251352795484196194154245610296589448175474965371799103652401206192082784520199606403912277927499643463520725046129143170419214329452643435978318214335195423889619623137162855307359269456518080726636734238657782414677252300725833015339047270989434134795511725204538722629965273079734984875509205379513220550725180241459193364848464675126424570783047427193432416874215478065476610204035574333376747836030774759606359665825062171340897820752725676003778309847890677514986548544977071215318598528431045486956495256708605271752213041882873864120924531140870435109387558257549507995702946234171066814538090502372966173800183905497030214492420792310879163345715941589111620137499894487280839867166451221055611116766757810026572049463536585520012774496597280950485599317328285845073361766564020652206931321829771952623414418615863661828430860328547349180641400291370613087706135327250932535760844018698932416972512843743915194267320556921619723381345885754607247792765762802356573959604368838909834115346504455639808136173007205773279858258746755704177226316156860936004904949697666585952547603601979028055575782765774625879166091617793787737451574786890086262164825844308923604605841172113641561513284522934990861018862101605369353817270556922234185098447326752789449271032057786937436443373042320812945911991648256853754522382520998196856608141588671601578625918771391393269200250588719850510724229226328695359552821939933145899586514770280340806986384079017644317528158796086110678898265008101539946292444531865718227815343664960828292593515078939581871517494067824138312205509702889610885766230747638910561976844333465823897033392381734778985461396652013840865847891127766660821429838504126742974964997728925410724265830011968954938867107039941037498779453544922713915578543674837221066317206582145781864281911233785785532458521226061293636570718916569253195513385123687868512220945415667290665619787112697675084150180825548787147349887324840911365539502278765623808047188800293193388676683323619544853479767294290706063384848403448887004666410867399833564828027731240439113605132039747323383262641749336004284192371063059493615182378330728794550282320237298261184755492091161734885038460971790604925601430309953386298974128304753965914992567197581644557380098380025334896813880817569835999329243555791991241269201793276077535560681275342633231701616371428075621583162105682288081640759643744599044105153020968727820086779184166909663829478743987243791834837591754210546867668888312167100681671477983750361949516561733016638421448298581900159237547198770509035796692035420253760579935945858085143420543397468640752290476222076247010882942235594994638136933502617559221678557541510462766540345545296080663928642326449965910592195055941284526357431330815772697274617501271758239537949224593810554816067153462690801469328999102182486136795197591769885636616727165282869981065988854298433598841681435685222446102959449946723419749973752210790191153000470767710862242063527332622148699308746421183586202901751533309191337783637986910202222521213980752283336185616346279208266690519040614083529901018751687013980893213518864442833556271629734861851891012815201132302798405280596981478704023145978285901992988566092547538257077495546620789634724059522311685327857683871620977580882733540151595244091424502262562913755687326366644771372033579055952489280790389605928049350087672555967373274199169184879214007332829656901478160015842554200661627469225467457822227124070905284425798364717252497324501568721744374259824919038116746649945753669760847501366279331405172115633961929640870433125890928455036497540141733934776577945597881511720890016901874356259335593297866539702026900319583227890057326362693615080359130514843208210236375221955178443547740070818082427774789246391170792649172706316204284999931404812698847924758958334878151585536784707712368319453214273839226113873148096547517276087342604848318240843554453275064709184211795341998795222380783465615179388309539878979064416050023992369207748288028463539784748906890904187270281948470734839867377295765452496811949893097947172529999589487700660694486861556263261634211315063943785121733291475112077489888860505535504690919207794922197829870139667521958014195761320238928441343078327402209704496355512697311445840779280719316420478236198829006000741463528140811661592116188239403437084372216560979104206706682899560526936563754173360224014556823159237327347157782193057901329969016713269237291387064740300091823264131535908223308693635026747198068274684797816804154452541762782536519505703219201720083073944467768586757914152623420223088175520315792049606797676882318853456500693485359572707718531299225415884712792126454641296646150294108947977277554245831413588829904442305080120837198800595126448403619850761751168591208343681527100389134202704195168740445512082610909784393596189969003231923405386405779900722389630649589380840017358724625174753128261787138521787490917956292905171850818075166372600965171859764335017906927256551505838719796580425714830905825529679858372488099582529339428449699611150592413924803410700383816940412202541697713851600248810406701375429661402727106917901086129650603050249083475012697953268638206548263469417027051834876751395776962349010233263988370661131896976454545060016208364346433751504023091197351380394473275796029222890178620071964379344771652080508031837725142381693814149397765603417015030153585201241592612849151825330474328437406300225240987242767386304866039802383371579420605791206555480748813807529444410462263049429674198610963024584584710350928270395989762663288620698982944694383176439225295608936275815498386679021666545550199553785767972649928770228686237955378495429807146074097064834917815605938918923103959501809252329260671463800655185436128633669491701619165436447154082750074258392400807857920606128462917829250018060285938111466808313990913872557005636366959546301555142400243923000010901633430426183319503894741502883637881865985353815417133772089944948911502265189146577637683980991088155465844789898836236718493595270456442117495032486923895695687848793839614800486447215707333017857500904735985749502229043077408431507178890767104472065361058570476974480353931665925474051966517893626291123692520700414956319025277560189128603701458261554546675825536541894418884665336386780608886888703421395324169192134849606363992344015160164920262014874049239925284822990846258589601835212113403895902596998279718922361533599106558284962500131217359888752775665767460605608401658864636645391454745806000925566684285582633442644389000170322736126605737352678449622620153714048603392589314937937789013685088037058322699726635736942043995146269167840681996134624781408011824598362876175428418122457521822515768118742673859916229071790308689634164272949789842418291162775436611947883806899268683371202232142916482862099633324636218772921686517330007812626726749764126080995211511285670657879779313652577614594015643249322204525623114659496506990053846533264701977187541621807304416875718734919915925881200009463722923534492356778035211545097787850703935071342411676472630464307301055335768677210198400919696365664698149479951891949241236248360674188269184326465735055926386514446176486619923641553761820481203122268948724793848290423808705877098810674593940678327696317207473643994562412816948374683877424286987254175363781852840865117994319136481419284977983419780296999926330942413576160352467367475880214464356712683364991531557769933942391395672895088851612303885082892084602585194794084424572796663584413070321896827155050434066630410783952788036945889224229129323573996814506409954301218379254521180974617652810273322228112675867988869792586682064931358040856036614178140999933432851789332751629519159275225457113795852834560920779959927187039508014717331247463023452560451162363941409649452543340380571987424395451930235983558095778955697883553761555144917897069140458845168286697513673687616502715100963826734219091701490390712158311798901454182155582098727142311220102299451732912814868136697497263835695348557025679490082113117310174410386649654261033073271130951316068114887486793749619714449271449314102264789176978127755328255209625534995177008656011491499933809966207232322363644093730111047650671468738661293587226836158099161812303978382959865484269629452148401837540069430637579466856865228182423401797664480128223325278735588812093233433442598625542525500311664101582399047580516571423161804644870400342038215692014498902079354829497534202067899680841043515661913072377920208306576095562984458150811536506027658511008244028680058751624468955169663323871215894213698638640239772355145111121793631120254321780524204887875981927342433203318941259611972505167123151797421341989221986821551668451391481065276918580599402512938373436464557288618569275320113946868309268166902047253006438296105768224695039752091642967646461397896747425182831298926070444793322429506651380562684318851172761700184339284165008765796995197773936603726484368122556864612249816221971525397528499821899518730675649255393118283533839667966965052881464404321089316329073691397226356439389321260192233005163010485168469832287088773740878375715661334918583211732675175939270515258643383860031678015946716799511875441044503040898644005738728845382970586056247832604874199694561017841283006482401857676781773038276617485484041613156325014021956226457886598503664644650903280356310544395815669512214114151249546503436095310787452136732420465111233642775238643643237367723289071086949934331615245890924834766150536772453338097887758793426497435218782035298397336485965159625527852940354035459620118432678301736591944615138636586379926967004030631933050756812033633576738715084031235884864519395393359655563419018204873431656771874837368975357750782543696928307806181372779286703460127877892951785339256918215191538808954555455737196830520132675397713474064048628245829584226102529993983669843449259730874841201390712391044080189391268706199875352465730167544327648276246075886494268004067116866956757937761059754471045209528916966219169505746622010763995270434757431247369111682893374905000941486705396069783565026864682119810562966195815308256160316464773175557887261582321415727320185044345084963263454283216068331492530142717532350892258737531786809505374551681249712028258043631438686488077376765928747014587104315748827092486807548047747481358436907723684411383656795598594197943243489571496358537120751073578452217711038440948562008461743845801259669443191657967385764300343292312758654426946322910203791275351112944650327197525739995404112521038117058401189103415706337452167299289013703802126779069136855771263006038457891075722110348419329397784006171260407650440742109362761182198263940976929694104073883415304342182456404488288011357826609076143776644892584619892484199166122235503921627097077009917392153884130152380835164008580258182239213967781300029119225378204140873916400585030131293798036685941060628885837778585655599347511504430086826218395136343859850094577338766034537722356712347667391212745352237924595166313803893232950063836549829644320447234359210002337454796523431160343769283545471452767396481963931341471448885964543122505854030931632878337956854899272163834006794107202503579867741858996655765594729344996491390924376040344238417477518087043028000767579070278072082106696057319669631898458542553508077214753737080918598503095044379359687667377574418627480757624408379793827092411139236013688349936184805926073000348431409616163771331434282476681846726765477445456832377680654766572881708921669566838878155035600920598524927797171724843097891985038012690236134036451384292136558372661330353769335409193198236269921419584675504547704108700426693175326735074319597696966380059941591665008005080420294496751314361881769281022071635767328279416873630622942759184234035403111405067887409616924982867111291924450667574070700529110854840788372099896009269800840493096919501300266216466716378217489779342152579264826648542009317173205833063904913910757610904977896187910051228163660214363200894155041582843105853260171935243421616652620473701173695838353145598290708595471732811543335017812108659994780866503152103800741242611027985981112954740918322469972095693840377184116765195359202191964398980145025216936207227418513935076332703349713091019432621157575606019391550483257689894029751952064068738177029579204601373212462614236666705612273470414542940413852453495685862490911775159279219568657979415648881929462468086429173793730316089006885299880464408274159620146080672622425289395546249255152987817126665679590743787486979717297215896975446656474893773489233648141003348411815090645358825555617318003234797206189699519539573134093081957619535849133537100269949952590713671548242425272551754128309725068127072643075250308414421180409219636796107049079544504204748436217765898331701005883821994172585542685253148852428582379907297262835697902516878657063842696608315392857604141728308217960943900072723548779106889865640783816518295874340274703857719601859752787371628697538543036028407522448444834179727174744695052813309363267653184473227990008278464160597420509867160905637645860016852828658919873111278860626794860954488455867492422087047792133137219095501448634712994485166847480862620203203495234645565684580707307228281594565909532936317840272605878445621170130925065838081462763928641952702778602812604368258000907616486896092869691984668190440825404557176800644553381976268674962668950278240850721325675168471397454370758818202025058963759679587333860085508100539715216245587237518861315603438638546076947861484604483915730897092032303436798881526860003369686677845092917494845674114329660730461555367380008471404154941580977852381318116185329395741396179080646171822103851144548880052847381363318329502008199680950931939568524778905764975057262309843937016542800345808551303203245064873000896972442946169837996243437106792795484761700523073268306106113433813582097616325161081835855002891490491566377087743402929913215939733038082773392592594479630814750097681922297418340612793737966556379851278405698279562332801355082523856375476624709190555617536177415062066933354259932758909421495975103368166565943096844418315038055417106404057015971880784910996891460707524184515845538845102060278769429155669331490910559571430908237140211531549976539467030283623238992992345565095114821772558822349766825209114923502738884817291714221515084131779023648383519136877250967037373261793519949642707281071543321920002322831037797248112421027940600585855125911102253854209363624773525537770104583679536089770254013204958737941917374157681797293571768639805820203802616777619463335370065113784377832365189353945752641778267949802651464158373593916922561415514206621793228990195757568976239568185839787346655729965919759613732650997189632851293327845728450947703146292669045934166815241934128598139699263347096726270247084537339748752472633094228634381536402308414864529806574724028985628968108142767723055913024121666286379031885360536550994628720160210205361308951220097440289370242731962668588039090754497896599303207060636919890746530609967080040531558204072004576047123892901159656820486492513068729624117363550294781108591590478437146885479997192570543907312921234217934057268990174077718808569427456858843321957629784363136970881480223545878796093971099574393302249957547731391391588744377271003013106192290604149299996050806464919354356609272620843018295085011221933627777422236156970886549054782752637171276515124040112118735992134930032959318911494938312757505158209453924269486652535137339658836478636405051830717174323669365465069654340198540617205008748134324991860087147538989099309281151996322921920672165126876076684087823286466753417285328636521465357552575755862513704121866321870938114453046541699634610022788879958724661586874933950969996637837307312250991027222575549560447350657196135404810002985427562728800509078835374802806980560202535455089337783632333892667658353538149649078819055950436232320673391053324299755748497502301372505071972161624904504451092437210682060499989167630702611216093896853532511427895838118809297803096483847494119554727905983398191128003133181823789374842723117135666769419491965581223086357040882980787116163190855630855709371052888430978237812211116522585035154985185682614947042273335944748826539289625357425197997669547033694461396920391891710392183440750468123143776537122499756158641700395852786465656274940199171425727415538390675182356820599087158110678282394623730622260846476994566541506471317725966723459861008005119337495192898205393682362631317491690982936134576536157209797364580248888073293608324052098022544387106497570638097114073756429039386088114152627956220400898443413155478369567623382862610882342724678009764625682425220704890072584754185395467276304736325159016546675875091599848695135035345095068964418585772520664206937560387902489136290220352896608229163229635688747137110271948116622434152912421011803095383067257630714997785026110261026194098971684257714824788746662841265349766998818816003998381129302631726466938773082191485899639331119556651179923419610630722172122104963075104591193139054508472765680807985944663074150322335992770794631606249760217166016489994728645135147192430702511442619766945063095201432877778955112008101125933556840563105559413826255872919953283941955718733016529687958745101246280167455432705582867615057671802750854275535420602565508966009710396955743458879539773528241777801905151640546552890422967572994471306068367297066469085530670320624176533307573757118013701490706115313329005014673007048472956195000325132522703393995873307585895340447245134763111994320236367455447166935921891831828371848375120979268236835356569392163265711884844167929475617851309857063755944157010804126723753937155536391583529710308703884399083205143780780397178432448892742786956426348063428140042351451894261904434565857557408395814745563056334050907930988710715077520757162607110236221646968822136489962104140853045029998591798949374669315221129341262934649574697357388281457029310204299157299271789307121611602106126853693420964545670530194152061644414774512451972099196997079489937764673796130768092226090199193146302638210191592123754408977141091603718145311152030374930832938522177699159611778228510126116236625233796832034390484480317612138059854380358020909143701031994285067580644950042696679094421602636111278446185476029333350181349439801317461465096889031138002856094596993605125747954596561764439352078280101896207379595934444432719085608952576563750888324505319224995377749813149615528652216097657263916255120744668189580405634491848144937622673074928207157286964416519091817830340660580102587704292300410754193411599424682426092122634773568855185526386489551256967370367690492535722573016498891174849247741879675831789470401533110128118469791431660135839549372964085445439271746362257795434295149578516393785721695652507221260037158422573272862494568169403463043693332509170470084857579965064047757144350295459134408262187907500788817872349182407666370549690688459821033040582444928412687040059142564208534159546578590194677331452700529087585129791088559718155972119090585443191021184261558524519401536656537978264564965380654612422901742150903747326110289906369566913401983464028048744330170469160889520052951165942551416160291303086293476998019177120267930210137884530325727150029990388651057519336276566546439349870299021328728170106492528926555190127517555190923171806405956994129663423057694306656445649586377541751574501593651831947063142582096492312138965586210359781857283641378491814286481736519485538882787253257120350385842320314617410156606957298949915682185358781653177564414127159896285854010910368821479584002661086663872747858211185458007678769176349384697514473932984676003139821172536961860451279557640864858581804425342341909837381014372745890169596359984894198798076309953114848331399740665589695535037226868750372645301890658008161107821231802110576008955273254933255422190286012198432981197674526372503634035123394402923301910710056536250508508791071660629408496289965837018804998270956302436920198140619227413485631833439992310836499601591471087114484705521283540977464371407050448619802712247990342647465490282050376916976331453438070952895291581183024846156416174378301091587918155333527249388270988498967244602730104705201093097404988558965961564064218256417415952937977057170527309065355642173898949446401692573926895432686214211596799152626388844086961220292344603444619361799193017657158386149029313283767581141460292017136148973610812326341571538350220262714865431886754344123939899832716453347045926164370287797657774986138049575095267288035317961972071203878917199383631357562622384893618918201175465480333050283233385144532807937877923616901002113439268838695337159214632179774777221128933977832964987174788475119454631800805654413389653399792645729991439690185434133566804013211427250345838608209094970284734801975898144816461595968595170721881831985989343655788102032070457967701209136786138830231392977993227335879587248380358707984452122076993563636080741183067215982331651606707413900510777677530298075096931031836419163402943569791129389293714677975849951494748265334691402794543117660594618103456162784047544168770004034557355697431678671496903700731906125146324137219817692154840604638923490567116235615076884716637045741743993288476889785138419548088744035879046148498257076376599459740654536002724119389219368638578153165839118554958099033896760750383117534075246406062947397536422835258332816890611829117405312551924879752388153996887820262852298446721824835800262757881986002869779232608386752155592988923613640406125033581141512537298497576310866228003206276167035874896006906888090099876361180276864228776490082103192119715333469577129290990001482773685607725997356792643808984110979115450381569778459155641102084405190059134508537003876797591714042471089611492029503464772887211040632090701237768822651311305782865719533200162323113996227106031497840727439808532523100745171769156721946209713418314223784457924338568842414951973651978699983911535143007244912435447984411369568911087170572321527689866841782320719894604523476060772036843037595549725827063054376524935855266515859448397317932942815964144205049737535277286676068362082662964951689098309494068123947075938617175069199876448209937783811706372327784996728434799962828926046588680856802923278240522731485496136338539013517255496594296160847466503956240511464825601422087592631374124613753166303065860745531091140624419587710545533951788504110209968140990596470633779896164645531156072612849038403949388353330759213839791207834967497427203494105671995081560260477984888933075592289327382391134781357603442007056706970272773882257034879803733629637246210569895008942058703608482043380929819405210969611915546717441945471442531119621465784596762090784262354569469846614878246923552170062413962694616460315329678131270148266290828155197648907415017508224224615067518273808852321211255186769319818329532438236284595646882999587877910879167380163536065475560351222483550816879801385884850559701955418943717010511337343307331337580550566432744440692934009428926504893240746440061910718964354260003238585444602356756241112028789165718502654092863715462403305876916510084715374273038684772674478382896071086633738688327922403317691762586009997245943631268838164664678819384868688821677236135409710629050605315787380824324864043288535034573671636060263477911674175070974573286628542068459354065300224459608752798473633455064388178584150527575717978815993680512061979061175378798183338382349430653860284520301102333675635500828763499209550495809767368026950930566267643600422811797374921035616775265297487609071786082610043934269519116795467777479114973210656330160055591628303040185313138233468881489464215192130205099920611666907730796517289851087478143845146535945639854616017977787329172470446676728792314547957447309841828828921076966002238364774114455431977663074105575225916263762997222466396429177657926548314186420106455610560264845164271295331935951543237399127067139630505068385647243836248036699935367308191434737109890277834968286680770433693149441456279373540896188527944517361266819562838436668444016211492453564265384014921545698551474162361859689275611630620390643477076228975830245481006677281908766596076289142777676902538910589462625361865126575629746084619023323759264490963188594783989550983780710624836433734098270168579491619765811053619426235656530858072009298239565744635389401592640652521560791396367268890867582876841184819093854565611553106535174209229955201786109314294203036279315489300615938765587820991359067707341993806155237733940775309196065417762367625393813464861749401444020136363395740995756433122079146640622807537137152019684547407587746896056671489720578690949906063307703160268522246853351910219774617108632172896378781208560344272950837014237935359261464134336191393880327660825458599132247410323175273880643845156906343614276572641192020041274650236493231226920347897754779293167063764213102191570352498724745074929432821259889740471115260951681790439550910055893620046622266360427380533683125479839035773766690093163207627115953312308213529922954341211446673473642086092191090897908645120454049663720029550478783849474996132284028207481124186372611669697245679589642381174484687781058280154074198029482149043563715353220870845816336759838833208099065827857263769483246835527728609951234079665583735609764883894938464362907388808811292104967118435350844199497620245375837004387082628979938785981322044554064770959881725558225032323241657835367893641875162347564131701683688646135439159255833884976049263096751913460272474561927806244431259309410246229246581190127247017354773696321615361107105959133780083120406922470304117734701422431703305401053296229842606778410942671933724063266562902870148515998565925931955252019665087916208744112675912084837956163001650653431242053406865320304376216138272189094206546732092323644418786130688908693991416027385773300767266136272065400171577712606129348319777948211170167934042213245926169792136288513032527118444934450975328684513198738990279926865420687194233831769420759274857743316250683154593836992170437388967900760582040252671137481363809178955211922975682818764489152219484932048670451988173557991760770093752159626789284441401161644561756989863463666626939393243435077432415382926461878523140042943769659446705310498463471151973896674078574891321395472091082367982070838521725983439540044198997417317003869718716275115219517028908245601167942852131571100298876749755527500448109564224720546020588156015230870554962520608058693172542044391714224439410166058474047147310968864153645563599198068302847235723814835128318469634977345690808528750438114792251495594747253093316259762144274413960991448040090012016216374726027154842633765156162547707496328421477813102411484094432653456921454137687708775709026908558273560796751111769636290020856200999547030364229014732784020815703436148021099502574677699164594194227658511212029099938904164550390725431892558189385038617657058175671199771178057112071945087273247467824463019135872939147623219047103302254085465124406174967210095374593646057693662858627111092514607645636427505271331577842461091569280414874350250559876425093192734280530610654317791621764517284407182686094775641217259319289485848595453427044371492672923667570349015569003619208528814615424091716044073198665646997452333422716564228022034164545474543234197083711578511783978166332989580026861629777708351246347059801972309371705570754890380284990381854306059686996249012339007398192150706682468768527693109074470758255508479094428254293146947347714377545995004460519711274524607794022138620114802973304102464380674296574868231022387849941997212849449238893239758494190584716897972078329109603371162111786229948823764553689043135625774092694443241804211904694729188605683277147102303536691594550260323188056532502080512273135169332917673570738839901439512984919791915392873574038190427556057146278665532235591510441015702259275326932479374561551910724133152175942152662344151324708455977875292708851668799483910848784446001492203811569327537426216527005027241661400817298314586173919950079120583410134161586676984871335986206080124414000552520007386928372441059029484942631772668651482015150799801251248675272586874076945198909221916943881425295365084111376830994772180731166916987960946958931102615648285826871463500601482664334045503754979799198533869942673336452829698862121940385423446334577633542380542545334247056822772999626225579182607409907846043876477541544724157756076083971692368005920804341453613953771852490220020852215874182757640541749439783080014216643513142710231324656473491298863366092194996174940389049938495556584544736697115369044273771042479463776127445963697349235811812183923398956539874208615411115463142470371343162113395328119368359528363669957418058147338283692235348158102319276138167038958478799973724486766768762082775913952219580206427627613573261948010426363193948324492823655838120002898404811416995146125374580117149372909388813663514263420679716193882638250584058872076878486244307844088160359850461399085360181267215079473901738249208957932967925351107222726841253645571703571454745800958367913288538243547087633932256716530737206369465155361048718066146803028694015390403215011992937529789353192267465732444951592552460396215990903493224025230480267962514129741955137293098293386064839627691469968422958249318292752604861796098655437779330624154069338896087860452897394408909756704551207910628531764185824656344264753177770106878217789222953939541697255158600551180526077912576394653306923223673454266753575479030745041125918295583286762688532218945288989258684064251655152676586941444713469964633839467143618112727246015674178949125756791793047609691560789379339295294264654484206483507606335242372613454651694096838370420267518181148481717213976161801667893592265489026393736184880981146119982613436660744938583695092446209663681511499250092608955091855275067489594766140075048178581164138149097829314713829997971556364519197191487145672691158460853206394232696877362952436751305654549204889121340866006058837885042058385304462470161259669316844142396096508250193299812721472014924298300069092235722474100985770047436842963754632029976001881112187520584462802336171204797997197011666530945077073478391664883390943482180309826748348323468519500833983324112966825412260499575076323264759931733175803972351724542029381697180374471009709039335664374755654223150814264799078491320808440469068243880658012497610023698525514097435328457889521847074534688976469710645516849078365813655729534015991641263473441727842905907444195348347139179974258497129022054222098365519507280254452919438952558280395569341632686793655551761737438461680200905434216909184729729420323726544560460111032902980443518730301888378229164791644399368103981531714161351829006698179991943500965001161282003577071820711235791372973061588733820562677650378956751609438281928435127713641229676718217135526469606504310686363879622851153534385168934143455714519003166345476500413350666356363822919206657780649405826825123873634191293626925256728197808059863273872906928629429607786525927999037718835012907144483511178500198159557075280636871582053756555631113270470060494886155076592934054054495629987795561160918323286502259168412121798396146615849040027445574141248951294836618337950057199039018666218443230633417275317208504214225771357666822894365207582918607332239763696255538222792387696424238552438566085173182124871516877236638770660618556555369614279745890524540049630401400855515679014427958993400686069240513095139420932148224273720954780928880701973238876034711488165435208454371748743917301054491840159943800404379960555576244989862356910269061106595911439291915668953673690534758769530492819685129792088242668694214040259975457578927983166275714134294922644539795830719936650738026554347517865842870042911983192272850193561870589327646350353833833047348777278706881844892049362983045980279899744512905558364563066891429861192320161568772518634597494339918378726125375092434611936418846897607192569762595611084852705509183540717673817000191143119301855971784931552319980290389874248234251598443286363206813198527937458809051004309182895577763375891567909588319000527771407000713878169581778711584571820591453028183086504887178230958183607221494791513184828869875399622269897986750855324350608291198053090507970149390162631865839356215467725955357255091137709924500810351077435501440006542512598358182199435960555547575964970143778984906887908970694857595569831777147983546582674395389546147032731340134406642859108182732699734285412242083777102402958099380095784325910463770233157222537802313104277646023154228144038163253030997373933216630465938905275354493660089342489484637552596187558546906884883783456159178612583191881823623204515919305162921882695245724950382882369677944791870081985082865322261065151948011200801560219053275846892459358273480913510137328605324522496951198881449875644287129839345553955191560946264819805512709840305700616535485354793866813239466536846498983142888353799964108883151315282716994157226389368001436946664640048141455490724654262652464633877393800738654705295521827520953825179083504383166787578125066357764833632498621406332326312623854097662559311310344274270395254586069707214830089487309176289203487520649025057747603351738643549816685078346996760671753050715727377424422881059035708922799697244572863651724274475675492726813738098482679998591844425550213516790644945367123629515277888941269670807148426862871603096120779287578692088465152309566852036680188311907048917520330107963493725804942765964613294958728426010704908982946495975904325471243786547259796318764880651522461102235846373384938285350573950157768220594530595579139172202003332291058749854700122116718969420295732008215332960092192555441221296223447582624839347836595261823216278179897624746876241378961786231681468036223608689728462208497533044802840383074094662912809673764234399294292648139871363569887491045997468946858002272404996106470473651337110450711927029849534589335609744440228636530974437065969435118885195850726086010944899367368762125436871307962811594901119925098251684425831874532656851289320710088117815659367139204847062060056488976946059975238158286546743541718538417330214583009343713245795555742900926562410337243010286282451655340772443482788087134415653672072195441354744737189109470426952650782030745241020374638907747965988893344905018508161437071896063414827796440937979564052934688475460892694646041136428185204798440742652012848346970801147401091357503061466322538128834514037133177169850358917836573464585537615045894787254732632523903762099196946784256307102749734823268374475438030029272854894478334097746775282145186715133302383060629526926048787436212121505611251352958366158406503537362161835924057661568312999430396400471419030864101628530004233404259466699918107891173484267712818713236774123276475731390190108765576711377923475493531162661512419660543645838691915277339843359731659989961074682490844134731867677064416645613083655071655332361429095035154135630771465852067939206142592903922614633620941479134808351663747602284238340744223033888910943212039894311099131715589960564478480493084840837765646960315102632868004268820605381319062158489179809523400428863096523723842104927774272191920380801343307721067302021220066091830730832795166062657837748477793583919059237272899410871406111857179055801221884243456484978448323799352663358088926031481927980898670819208504211510691126712169509408388533921991348965480381196604373832324796506957535230531919296907524478620576746174384079709626963782693840337680461666536710519162591443954731115658126587718522854855949787686678929837711673460925574911281344609104518868361696202540227641909731262309606273204084768942443735663334725354629694785453717110930406026335748555128456104480504423869414362480282158857206777027125860956628560836249788566942974961679222282521325666461571445042047218638110976984217785966819460718616565795692387230096548605467711945898332493268474643090253422203359557043612394626076224859715724504679087339269588713980643625630302866911705375744751718007421105049155735713993709336522080948107787929027968456625837299367821485128218374395517463971703994599014798074138781477648039844833585123676340460888792143808298290449226007275884103602143730444957501615066826633790143486190578991670482960988888460531168826589452887098288202167934199780780179947708829235770647112806990809462223317345638548490559095930548414919804313173363764918455634076066889664777863672755803011263873259062023946673903685419125422618566211419279260952938693575767624442538613644601467729556596232515007803961627722889444520740159955930141129074145949054082374060373013323348696103923306088201192620570986711810129689896516780523066642062659055391942226182088329495614252729229735018448845708824815554616662753729768532758662762959231425565552636187177931234105321913221229220562122153819823036107034253785761813901362164032697260187793260456178204750453716022558016541882990888965608118571745087387767097609519762267692090084477794362034644055102837212451661587538588601827694501389750141312882715458528588047740293287302682655568084475420762029527118715109956246486807883689995893572201466408678403098194712657316663750393288471740040512165699471728780563870132703939632147728868969373459816272579455795147761368766596816163330237909078959168901274963129743744193255239017938322424194890641100421025047049435727275332876658771244250892443402415419449732199974227408437577505795053138028120631864907970602067262488696144451082864482438106514303042222181824107886235987237882536351337587947546967009876754287954056062787593661358701372537784177101849520480988604556279949010977648336968454552358807852110164839623816141993981009262023334069050868352469163675622314121519126113185758403830686076820637186844335300969646034263852813889214673730248279520586178880310982763621636168518727578366980025731938098101509954514554647029395449751435497328617047565304654670738028140651066000754719037090355644218487832903345641376899198356060325615284974512349624966058158312926435296246051930670029016292272251137388659792185089176176973886124874530205908924225630025851256156090094538411069223934300689102438199515440086943297939408900524232686669571019794122950373068318928920308391812618777850513492211885258578590960493857785545623711879992029639354194219934684793666235210981495880557167796524596832787340431367763473324217000201810621472911419017301424398248314455437402305651289956332548154354362152854013364761945224436078840666789158008574513264281719094021760033789613053808103343354239584104906549437149131655396349432260318586503158608395583098532337387915144774490823017768773850193353665941691256424919884925565998592878084298622867829215719772892552276612443770904433064228546962176028301789191132010636248794688716632489957966971177809985785058754268363203788706394100198313409600882493484760584024247216163481014082401483842336295288924579382051237383722560923052828538451669689222214735665726628559190796293992002383025280991854596131306597968619588831013937009416996348128394844882431821468860704309051126428963524916799034004485352509685677316514203364499289807842784077070900875876555265229901087121315024467829647808665239092282386506221256521318610185307338179014468097465125022169199528740307960683336066222805472698852102506565530594891199531574238423514946428322456207253084611218087338450426382499859184127990023031670295010086982215756018810881006751710060507388812133263991362444398936573656440636670287610935867907938515043193965709153655989859522703909270348743592668454919705769652425410449809653070703066405929956069322237881396579787355497026710187330682754651981372630684174876789827913013771459673311295969810118545133729595546779623789030270032154670015936564995478772396495008200137727770286927847796448420303071136857248508498597209317360837440322437590793793608675324061269998450789728623109733299861646143072362972101302264067932066754041349955361673731677548727977821760093815060298629328335559424561889399610339671264460378171149764318549684389642492459515936588594504175860617835739484010144920493946222881661148815985983937719596987973490824520129922572603689399346833404798851343828710869696571890549059622366570637251376483536829472582341766479232734631831752400770458924643974304605872450880326958934919123538163818027371796730489753346033361299347629398852771375734156609004585513738067175775340523389562854954522223368528340878587673416612519092586220670199819746954318831460192690883500407825044085431309558099293464828144010827813926527687334247132196604733898475051696980023211770429802255683631682074741370514130810716638594625414730457853859496003097617144809425155443548520316386891142063861041204521939381825429022830261153885507457457439848222640517050920880530709652490808705133260414851930522894373240985534588638475313655140957941138878455216356507311720620540736761027054499900182631707676268702413135079109836062635087728270349188054002128969014679797274989049308292605802107861115956789648051910695452324223892985840981547443763713944222500050751124198956538045647379151868650793739500888178929988117761142185909516318397892937146553957466474941805591612631221051469735013130805022380723477798842744714340301557463448964313431019833047368948202012561749684890881606559280870496763551883276515401157830281704088021485427947389700005021173769644009196740210850191255782462517672126459949581242286314424999427355223748970573299597720124928966528630643295777835453772251571729347475796085366100172594305647751237227646319021297714417087528779862867867041490992447575135867733273508985249338229048940485464627478091532602674040688696920042587415035514550937181939248259065459548158711436777595366837557562224620365997773193182502398195800886421127156127653329390338618091799808652412663970962871980201695105497180431052772125491452855827062655192345807383510379366649199143928477418402131572958970684674349901988023975646893258159385595867985511454005624298289264633567701737554356022873428424429133147952209383223001935363523836383364629886833514527714484416016887869252302121497765096090633188790022723231609282106149751984950661653191493037422382559694266082934190562832839307151445206415308461279973230260871533981560154628099603795420739612546219055801190770957484317287758647193740028236290436292134826720952543372940416243355242796476800280244266273269804478599531446859429002468042670867160838904169171003470482118790446890801403881076677065520347078729439404356430703124066894237806963438349575388890263174062017811090281097393818011631407741660254933339412825409838570818422201670288414961748693003661105314060556412781899907739374217967310054243726675264198526481989452979604447063836438161035625135645631727437245524148419086704871236004406833161661229436723220065648163409813743999706219911791440766513355826740286342526053078375664112806547962773886373208560917688736626157373469323348355487338101015011964030659041491395931596516176156128536933905047841725147572756694399917595484901551280282657222460611373966812042734968669441515655623002652872483362097061235032338666536946785759574156274369271678720264160850970981770620544350312425794277201844337048036532713402031728979469801763223856756347105720838607197926882962811501679728655678700437873380217296080060358101829345891409636194978154414335010642922153446267141549785350071020188568647253635447736763284107833047828220317986791826418942925525731122868239518549213798581378802465901245303847276646841822956523262361492779819435203910249924761479180738105544288318870759387938629947527592362554169914587336150093806405980598065001654755496743447368087618945635747669297792729900221583483766099219139417408193845300611266781069455337708562209419828633335897705951605560929038630624370409913063997018356555077520661033834350935343432098852089308199398557093021102492572241267827248836161667729526270502707896262808120870566983697074125034056672625052425904325302521299060268647000821854921100810642723877912732689594698892983092797189608301602350493139730933035411115443503736759258845778921697338732857371411577183097668617777842858687604739139463343124945546810454913603943865435829060514294531927488467542870260063723406998828936665507264127378568245144742976049448331707859126003705480172355726909881460865132493463787809251948278527335088701581129776713234929879515093634294728915651439608442167986772236178803083699878691166435104816090901376195888265982485155691761999505223153625236312751548143765388924659073076300251831784963037191219296913710964500370315182234001041934820102636246296347047756824792017427374579527352552221877108808696571411893217676056264462711958444635523175234767169472352209162357026463992941762364254835491277462142683702066236410783122759068500601580707906871538961143116605487037608401078904679066606974177712779639629907152936723005707634141589516054737136503879500789230865890259675828256054393157180922022374638333277485386440515404487757393573802238803251452793553339796899680839370281073216696678688127999894706251503238506255387693765950585088522283142902499794735267043586105333568572130523128868544553099354453591423313904473142790145378582628599514493847598421287052882253354073642668937504922307561763764542050338715234857246458967330583477916630480216844545323475158752014146082887131391810409938492198426095238753725072075090433198328562920441925424083500354865985001669433311595546793714385648145098947330359627217232179531613765898719728365336484233361864432167983864160191938521830659282953196940432675210233502660132154479181898035681915327088124428816162172631215556182526338918672380584799215133308391335168988517926495386610158430015916198822967813786361438895010830852616773535150132976232439855869176600329565139408390319861247125074531587721211443857097328155502880217296246819973059873518858118403395541341778788561012332454756698463871467012796776916228740438048017348110668421765842953670652606378038390196410137753900070992715162428535461753593133994943346641962180416719622140424559701612111814321622404689986958066885066041345546891162247423292210017822218265196396438497264158511842158303940358489087716760082476300091176389268783476702245410751803627077445648366869442328597160598094058901603648693694655360887302763015140077841628461202756016608687949296429024720421916970440743901447348900778801508295677999954746095755047626669300490042432351846573323281313384050100446180931278157096135322850468493276109880482371841785070776340063046203215039912967580393928298801971515707703577303974876548208250324501419620428806123820581644679232967576986221119496722688822613270974134373117348506509305836409503509951099689368427293339898908360170315400840254153426804976654971381538815322086307011800527421917671767855152400603303487658195791420973590481846753000446852012451514096528859551644897248693897886591149428305027653875316241334369960709018435445309538598238212140404685776687784199201713421615139354911709345205518215869436525185249255510279016907985861083092020008687661405866199792537354168653923327002933166118490966394655679441977148726934569105798909246343911074292197925353170644436351757050975609895482295515734741316384377456393019835850032530186154917738698605672465096775619501656487305820391068171898339977015451962882186538305846005308693548970053280485862542688024388780450127932725757425845820226875125857281688545878014358058532945823792968886605104312547820648796385545376008590939461926624936790877240763484066784392507498185733065689468893366771161142412490755814167288386314491206442846325689014880274280563003289769923533144550222398679710789369470163271436996884300534366704482744262404912311683762393353023409873098456645330309685723943279229186265095366513884169588663057181734575419222918592128969414685180570727704992067296759322762805495265617295740776369390928517525841122855980144863798068047931429062490500367811353277591928298330304076608094942238683529088461826107609758187654457361165684381857562302196756172723900446945805769335106924074953512166750365511206672398895959213703388327466302405890151441212010883421653671850997533422766871103732839892034026761285653235088622958071556947718055305462177623354142792409006996636977030090411577173027538577894169191250773399331894711407628715890610503082806845749256171869429253840284814474425181530303523180275675017801319296949142755258576459499167813295226048681281113164050751865449022158068955923185478283671438297871477558995503673744032540090823683171302582293746621756720586477030804133518163026687785447439266492883424965232710836902810147664334378038737916207746278635856236257696835492162289952997752649851457482528977435584179373539402451247374529647993446322457346961382113424463161740873829486251829073449295534216838920120382719420224673621037037342221890070504328880795063823277008789483404408725137098307352683729661289427349827021636565659109530446818650614926704688747843361538115899818449901166113387518323283710012253596371218205209942122129356480287026148380764207260167853115829924444581344112421004577977606708133446755704737775675172749940492806528767089465477247734246229805712587948671899536527576208008156033453171108675723354070185422169774430202015493126409104391345892622608144596179236882836362259620456726509053405982002115141443809121546740546917532795153854926473964077369489244794064132551567497468654803867567879282717594318207056462760918651578895969126704742208356736240608771311813730876690609168963154868392580925645557975609162035327868992867554993310787648992696498586403853841347127460559624305876570973334870066726897419119403370999035348781800596450128419341770463918418006844001051202756940056962021517319864697435333189508390875955890454448054235175201569961753964181252327810632502263547693123934182545743852514862788672830511656641868101601684108795338272270185461207627233013380651312355112741371257046383074225855869936824972946276230953754885612018054015044379885545537779550081390277547337485172292210192114156533116745654534069283837785894646372982425920371857259956119199735901400881065124089423415943483722314615655743980519137256004239128549638498271580329687540264016947025068740404561334862810875556705498715405126925175430583379558727442200219438282861627751389003020239359334648205387642673281300270687737110743303646767337927773769609520331927756296073648740098655814736163051909652353508154404657780237098852718287785419801188788951241463381209588690285757986837737449035511952122632580563578185116718497389200804015551620513310256090307600659322005631598446199235201871995715452381622836576584208106199203803831923791236662311296569393852389494491609020945632865334646657160520467698857780401303447679367696322461715104815996726858757416691518455742359596994859340962688108181974401723800866718448950812885818453492513691677044146389656725756428433280786960477649297052687769329398049645124962774521821675466494056109142910705642904090524048821604219779988175568557558959088160973687639725441853084833865645724986812043575779690767638203573340111266005853098039371918362450139224626964527145473614838620625284512999776826463433955524503459878893400879421911669841385986787593829302525675138164401334386372978572347939142894813384549347883491451486791534927988787699022499823926163408381928999338626393508267629018633202260228687032478200782525353499886150828347229712644144210117086345609530650151184955354747267318161027209650279136451862782598527397099676430972448009039315965324962038410848875049564966744503372254752568237738904633801982871554438334190388172529795382789579553712407813646746744970869118484849510803846364613586186306344001229273575862714887287836342451334641374586084390396251683196693898141933749399176274699049248360016098976631860491533824453515301109276618236973346705560199930987071361325285570283984003669286239897529106955537961939810948685454872199488833334788439662841711561204026712116900985021295515810190655418590017928262666792378388355653524131163215939179325855352545057648867480577208984686442895056137695658142050802428084484492445456059418645759115248644690931361621103645350734289669751877645518469992704480384371012600241428642013295832141592655371502446464808216006727106099837509825005184291690820080662866472042251681989722258971479672090617908267926582600951255421725477719961955896295292288384283494231778457849099352590705841669467073201635399160669353541549858140360960152927109307149485029271466568965625664699117269617899423861776714675941288262837660788922738523697455325236340185625060575858315983214741271489708070087915777872332562497669821039762733745496665070581259024180473922272021283287151938544088204747753590199321894397122523148456536460255289672111032735296787397270179089282766241901538069885082180993145621153012778259366392200559634312432684713548610146695153400649701358940501741299373975386423423028531022742860022665590970947828948011807198286299228063561422440085395901346083991188237677564204322211186991333960580807903195069553564182878061010033014344287732963360887483261857857207351320420468242612777561286128344924060322496812543040905653466238132430380230253303397647781978169658911551543041211039617416905879772172222233290907507747315042844217453529730743961870029836311591607833079994949274371682956011142214938479014944077694334675535555206866426695338775898500220751311551145564313781850963683706755596298182746161631008395817554239039461928465116809673274960928280280201710631116172162178241603143335597797612832861664779552315987859145860337473906369807567839319393847335860931718901629964914086035159948234786690809456064384791334988838046914595589444140529868189809918263815533493177557161952224066151820884027869585738845771061359427301735706686309818670655435271667310029508614849443450929030535125595115025228310939199035861596993660959152814997732523427031318569599208519000022204749033349930653327534057666117637972955687759874557151787876942844157828590406691324288391901166881893506207786232364189705956885012354630038232730501115521511993554998227181327076668978544342235386217076829781363355017629134340386425224115405282707255042961082661231196696132450102476151356172972166110524532195541485578627575004853235192394271935483267746056771761831344475719292076110280501319025440727882875641971240059578184780308665264255831027513998862554454333394920448141563337487225895261606226998123432747594045992816404661906560455061113606720545752362698451380743898172053311768602860184044305493045870982492721732352170671470330618902659328464436121141022965454541431214465090377741972970782719665197542210404591426789707157254938376810479874312670599335695511243227560207627820566515873496742072349805905070284341734420986642811774350776850131613047599245781231543740924816904445582631565793329783530986414734135998367567974038222657943002057199838253506612056541468896227351083867664952070722033457371559970626168860968641907878329252056319200922554684203461977684660440788530237007242012837939734400954886229625382388718269842353952041446984578766733808820294605221963992618698265561007532127813809196003747659508398730881365084429048126908518322191927439769203539701865379485108303160595180162537231725209450767732063577730101084131621542199652436940228208614620851027158552744807091476913886567910907544619476650279735109182222413840744666908810936841156940523904343563449946586424105019412247275842331275556683129014387556230629651925652955592596758198143092008200868044057219990372984064383557409290367982009027582006504160324056195124405045706178618877513708709319534160522155554269109554673996764455570214524568823972690332939704959041438328634928452013574663935150538407239872142987268838453614869517877247665326442659194852803154058573275337465061397324270714742460980740975666731812953857955022804219556104255058167371515715334505285485173350557055208193235266766101756091557412070486144152495622485099410099228769930048531531333741386464161819231929398289204174422040253676508878315624558867572079510875962637831077622234958095975663432886554100335100463535620626828860219741667447100534319785787609150912058942624453027715580501393594012549292156330456336716596783340992378458848006874307350843467913508889604134465597237507687358089463454453242922443409763734379991641436964386565873753206275364603631467081361828983817775485472635689195182121341557625549387012543453556643834908472776710322260572658142181958642733764695367570859507560055461180366677849486063420031526372292338146330082790742726835299829668857963201599857958449200486994245058485318272815041590493595897475163030159689253425295435742278266362754583760977492801865179873990533503284458321631931026254326775303968689866505457843722376184163173579671818815304448857866958322824546142762289480021534171669874666541333195949248863408467111643609027662154288528982300823998061689231746576635893990116879793148207820437362858479417419132527260226750112296458513782275064441604407549524295945099204038170913108777136109679288700637974515829475994550956170659609039422074008230252541429862605138187604766937276232871909775047908092227644330701258223065216017729484097861499301858822433897705723876312512750624766775735626650975661778577743469768629129441293362492465469124211400035091759363029598937761142137818879212319097667354235250178102410707548679363916826009981095500214929435481652343229308528602645537805968755656570035350788304991999573686146783345234792846798650652802543265755495778983133451573391262374822550680584751665114636893082993648261989734595474346916205725727120726662410514518773178134743498224234628664014036862845267121874030073879830809475143153791474312872883123012962788387940014681893796290881233390672702017167524937592504576554866618168474768416800542805845138777079430837376911328068052457850984224207032759699807876124299329242518232286235397151278755958251761848477095164809718439453458305669789017324291632966891354148496369165373735039117568424633645486394076976055439285285688408316245413408184149021568900746870536470808758354655646863343053190250926283477724115802010220546502295072523375778074902955172413690066515189337405044227244681144899679156410039765345892416548271135993226330865967611153988315028906168508582357747831214713658210022181145935519758445303425580339348406799546025193240699177075908392513904715991064648519492830577978828910731897032883971434446404189253214164951632787079124184879116985818062251387165177624089695814395406446921426876062321225181952985516734744065130600060343227945414359762533055184718657778211002378401645342217991098250268143967698503752091193168538085465284130631920821460838539304508599004412526909019352120586141885534766895727119411202858552719034048231158058281830354429760634597627686137525988023302481994207351145351873491627035748105723318309046491516336083852044337985311350591215662358516018028652964996896119827305265541639541998308942875835671069734815472651316633465978296218464170592799751000758004479318509493003814458523066989747763586563588207476447766156860055130766416734220041042859465445814070941890527955563067350233047057471928430879767526836787334075761953219658987811053209145659936444350090702706193654233737557823420848317558148010369103370061015440520648069748559310245762978206643104793529970615599497358465184424918354390330266836076509050445677067030490526040092041180710975874265379190250237114522962788139324654988017064568937620850820805000807234292816229401121952020744116115148599388771291536599675595988056846040896205110146178566893614262089706001282308575568296641091401882425149171269592151748606723421697576056645661856062796861904445389630333403241892382395877348341730523817445301109965244757434966831596206580845398400749463132000563712407083822259474947968281561977191755412995942525057463399593568515030054881881578731981500699660184026808277873361831780530692080621017623167443636975269125806716213346855169230888479296474143871011411048736099962838078389085426815370693207507311374417945079269985274092313877976460443940412295596367142787512658821658226189959573646133244466869947529605521867650629720049118598557996881481407929400206910212748349508271166426599609943913478616925731777368768252436728276347200347817428432217773206374318867983387636682135964516793428197833328483744160926799428813552021630528683703178146144873055722062957854489634768672316002106497571186567587055986339873494543791118003513069244013349526673988126408993902890788335643472905985561439954688699981324404756511200798516719352689932775709312827157517836538024166575956639172172612862203500759408952521870253118163878508897164399183412553164677947558531607743717407897803306785107577697439568345371348202325521391195897839107300111807031853652721311787101190667954686426920529100791777597663983766604478557027638976136147567219662669396406883217246853443578116699482839849507709742536297087588324217621294110286344018425542889552233741773004824904256741259371367547325179305502119334942473980497214920022203870510547101682769544035124232442698831270141923161610290050798765683403980518471796559088209003056895937287975565448421527532381916827977064371565398717378416803248936789394564787841983656223494561870601376737657750160802963158301944652433885468345430417525679679867251611191482017940227171201169380481952918136807753670583968304756527048769145758448986376859122505063736064683253804051478565851216945328510832094478682717137574684197013098730998442863843444153088559720417523425955865053681573159715451637417482718188048574375964916056608421415434419627922634888123335773660150586001062666358433370154217027081366816225427311357371997769769701515541030880883167768394357283093953158044405253816471206574674584948798826615385866183500210179873220231292499921989137807968595438806362704077954859625665199063692956653092136898692068492264361123852092218013777051978943244512161240790533355663761317912611767591309842385199304271302754051286252144747917383477162088368383806663506956144675375802739729100723621127476475012454209199645311287233077545781339433209447793058285003364413028871351430844593983372997396720507692381690049181444011990483245403118683210133397536599457263788950869573311154551943021597313539160956311214499046899850578377579676505215402481967578417373906519631335955913319477833772137741505392719604600996220795137419423599304358436731806772062193176821842656504464799315282244735298613576556482487737194137577191807133062163967700394926901344511431824677034952590049212703877714712616640013319653336261683350633763206082464261647745668811020446700172733141020508457079238000635317379529602483670410716864628053674276587573737498789072631696437981193605108359087824567729122917396614472639053171387101949236963564406932941008894133700474752062881448121305733584925466443023355520012916369516272236693652005618758455702679709123515036758410279067158819734902650965429520207105955133383419407529579300045279182755716384140171717554382863608337147508132857911919087947041607184721739328566288208261885299010419862763029255735614086551386657572982911732068964964178968066273656550025826130667582601495536307984401737789088897405398147696617050167943301684532510513208594779817048758868950035144148706058827128420682834196806671316296962170780213457536091156831173308643408245111941951967824109248490486941614922720764616057041977962924373474204610572839366586734045116247732017862799650987407623005176006813127568303223068155978095776016040462637596902024689822440103639756192140743991001121292208166959176036325000327441102744106258621582923113686263279411145613828894044190408496580575681051318480661818622981150556932240712653365799457923138768383796028748397923170431542306172937209871073713692941190658202167058824356568714319925005192431624091461328350645640300847328696745851677075830459734830215709233711009606225493048894533329895940802243990844997436711499694643867813321359995397303437858515868387320001748237877628068109911926939011455323070628366093867436554447729579583475587034681241702653302112380313037922124405342851965687034919552548276035334876533579945765624358407751385609033637454942899081120354867179552726306377470822983328273657500238130336257262817959116453740306909641482725415976766546588813651337231821231400226995351215119715158467072006888369983797921063656648295757308444519809397483793457753231271288753717900691873596892418422909918392030355643841115437723759683446709274384710559978352478217598352493011288647432377269851793100939975153737630834003076803578398528347115988533391624519257408159660178004807442719056933506326690269314144996396129567860835147874217474095895418806812136816767155945753663512623148612029383996502154144872721140785414011070778596624460427467241439496802939049205425851579960754930624539208795790246803652598215447647209495608389078632948524684303560510715440377873075568567224287158603511857831252677820803345767824562713992806740575734243749601796857279426898793386842265964454301109580044032353351751202270945238000004250538833936837308261184949964007922315673116021232495784660062376119645658295557741264323482488282100986139607553109947285004091769531097097077143044319834652948412897303317864709815601842235327077642106832677318765393512932111906518554815766117049160278990182872450504545868213103656913368777353717391756524824971853813888796002984442051719157431308148572128045091700602077392555900328034083943070295058648399522350838656418005187634470616098549800402010576829176670213117814936806946070821507340641952079431851126824317664269089322437255640822434172891090473297855982833640549357239338645821353280354582489398416786265402949038874405031877834727115704898639443162025663074099430844185282783823023944006703026707643811026384102615674212130673827654227714267495602434038812196021394872919071975143061583095885885318243029142885083107337716040147117738265950983804520604325021373787988552406553526289681206496800220604068652777983658239177768616893159458514221363620374968364030164675430315557758664264733215611367366253673504022378719654844721687264628294586608068612555599290272903423474741163386777970094275268667530593064449930023963270525147690124476902477452127661229344677861319883398515728765601742678594827986402948676377425981395317490879968973824038970592204462471714559717010985019395853182191578745692740199659004834057786514151403894799349987368038408555650480289231874842005924411355628432179282152957151125391690027598961045535288007593041453455623758721586228955872174151417776794235226606440000244290505519100698308301542283948908324368684604245325660368077848902197202101621791707643469066907475463518679030606850739369454299782102965884632573256725708767650209263880914238799046666799262437632148198435823269857104201534623464798415275370988726842449303955511737526843037826657525584692894117481828247185782306946389227891263847536544083452807214937588411910799035267890633422462883526449779939335396904324928985516402375158117260446491581769396312177960798889312151107997010701461840247671870657606477331039012321604738207240545432194224828724169188529581118994009690333911256808270458973370748390868207759709284658522804303803976892603699734285162635310794282958736631752815382445720043078721562698930523899569128175724269602150701052713650681409378343134186171282641181186054358353317334828542878039582680604925582514691237195313992945700865981159301428383286335202920643523227505765796493740978275244694875995089093778370428784920320796156494969407097452119833269705195067398785547506303773879722752726941032679730731002835522405848630225751390851385620236037955509384012570966802432299571486605626293435081039847006956853115874673322465032790302019097509285310453650698208484465981059274953429704438876083149676782915312755460676331251880254441267605808703413593500413752508514003424923090633277134936576431922816811243061275511334642779466382091996062191939037875584837157135116391697416327563683418673892485025271061642097209441843767276124712548701655275307015572238903984458495554137232783830857185317699631304117721550429382547948598729877561361148799290183330225735525288124758114991638767561024866114932471018673276466262486572077978461571957222220152923287793119479709734553500756693495358172131680138384047756358796355406732109977787401951503795989044588375186081198189696081110766302919710335490210823594321919348766086001913710630317159516154603444716091770410566039696580402739031757794838568940730474196560749560222211609805106066712255046516715605833052389344731931140523283935523216340495324809653830663011371743563455558497603251157770999242833324185589086123032920495235390483502254839234548497463913099346948696481408946314574972249890936072910569206312897072595656979606368041572594235881710068984261559575628939657005841917398467923969568578984272748680432566112608862815923444137383337335449008383356414683033480757927476543697599306630749776140909019444796703414231436707364609090125555154172163959957676167672941512452809888937763980164310880865117046309300141681520951198782090222848184642168999852478953074286696788541452850787660114442359444798443611532790651361113412011937502352264594387959108361919595133678586485417278151034282095314099502160874197123892338552023289820401896005134924461919809403767518658205146104976602229909643484874907134441285584821211032308302959931458334235266996025963060938206279164586801100378390616543069591153115680000790412696479364590310464289652697247162404822035561936665201609771287311994732389481228352578507302573047635444647309781677487460666284981266820306393214169626246263398911259275207796875043227979265806710009401927789891590912863432524114304570357317822766722837772974752796530668848521616683231561811545447370773755571834781396419995775004904822819376945267992960294191510624585469266553276645508163790718941594188699663638539582719552185124860667116037727674524769088082342166423163011676717209018213345550036582986979787843902614495096271259763348467372559843569738989909436057614995434767658601255468284471237710292149917531708594534296632217600813418584767134222760712121427584385168566285313570944061340852778173374394326894353038508333540463036227152802553828127868409618726123400675568685890547720098959037896812004011332526371691356948934010119112459159098216449618096942189254120190942546439802161811873728459082986529385024450830588927163303081472866228229381053221986613901997788187690998430968475776861080115515274023466430903540686713641428286386766080450512801248542632715119235087469685504695077902125936762728036737473843071388024688380281780873997094631696849595973148166162275292847287178808736581093252625924542391937925855896090044111068774959567900628971283308369486434388813676548390159087221225603346790679676476218225176656220095383665698605399902595908004048240151547867150283132337275037213035264034353764911755791259354463670437477910259186364436338039106159877334109946778631083839594576257766825042697896015480551411092656927708589452299988615943799726504079312767931130006766524453120087795947083102024172393837244300454242898482654167106820768161612963850848295731429678883625346039391216447035613890379137073970645625843244702057644420500955419417613991830618082314272606378943584222848082679892532534009808504320859321349797824711773223458349706255719764244037166892907593264628459299339825436067793639843591455049712872960111982447546305362154335785394678839691832373124491930584148889066760502276917533630007233493813210328419786277697021193797925655365907073405574742349633179025375301243144563416324257126065021547940569761931387498313527562950769075244713940110405821472166418519628480713060041751627364371153207091830884662977004116948011819739605102661522413763626067100394042306178205817716491541649869944654493593194283206267815086885603989238015940680660247608987995000334687284522274599359854532935913463742884903216714860083835873300020482491585520642315378991475714314215510046222988309887406550419765718874006096759152800694260427661371225053984029593816437554484379763016966464117333539896709260313180559633903999537720465363838256583460546015472376461658633657180616810357611162147769342114631619207865936087461284711640333118959266008316135199286873679750611628505322583225253481162234138891011900468786242884259942225992362626815410896511828107280218488100865302739874193236133017869227182495826651361057991814350515290312301949212559188417857525982002494605170232053954106299695598434639078247323634477520373012451203627343888809242443870311001034772065348552954903083347261524809481716104034920815945622477329484183513840990326825395321235790481705772789774275354998711267260724184897374823284092338086331641404117259877929002633260104400777104256332601740248149325614574774585652539566374860535076892725151057389757280151514348904759171978799619368728416209544833812004182581361122164412078098787025516412493858568856564308525473446324741943722888466840007528381024601446726129090417439063854217693348714799080889383075617659032030591506861699007623296492490474786164572083855511259540605419630507022629941597070983720179249941393218136149400808411583684495552395393234176570663043275348071968192601389532480104135033514227882424665136245446104789139497714530636184050945013763808791127541986972574549582168024400351921855084752396815724685776087455923217937129234624848502326559369979980905832605027451271949857566653487673719188038689842945724241481097153909231579773709976406124754024976247200998658414530087116541031841327619644189105039974742022416802019713187050454832202792401701431884870539847489539970634027370697339834093632362318218982507281672684903878430526514534147785126588106951120513669567925088806743351199833106707336040471401885789440940875279822079012672896344317753155254829132403730726328705128988241460982568804390817767838010721280946690751751810814485636332300792712260980817427169512232131188313421668081568470834495209891656246760887889679353291295580558891339688748736144574946353834092900048382987088256474309028378192217744016929698290086585963980552540149571331564576553941562640220292802219099816662363051326384116501771052181882298092227838091585622903640147152208774224896752685523240384123576690251062378545230710209336028466919597766103161814377471651538118207400069919092083888260548064921153628042197035613377350029117322658102108805540231047085388535756907453770039140679735111833260684665871242908076391353060564948568634971533990934814039125583839356876000953426445346191806176425565768098415707019220579223045385390282157912673052371375069505723596415033019275575647924594165006190505513294494373873617348617231815138257250431097394691421147385230891594846702689924603246313527397019277943447357666616794628744229364801115968018405971713659730160753662088595346170791788966261004940258038768468473255035271369724775180730192648733654142708216070690502334057521670814114951000013221562560919345647438740259479795418813204754388016726292774661424272157318419312492840636309787301841210709911676362071570450341168662383457994671958289139996975005487309338705173887795126823308735637809655582735527220121647288471346748693596648307061596195505407839615790988640564267187780282285549984919646596771686780688062553630203970309451471766970944163484140078058111461486828700534812313809307585106007303142813324284311799157140847004480594391805840811206718863502066901358004997113820814505939295226291093810765948035634824648628749738073502795383426736580182278896479657626293350662290860674202263404412197355415477538326487448711344739780789584041442783603871771982312034175017560907687537375397635751867663628605327457713683967321853984294426407689196765469499751203817433190859475156590426633962569032583004453509160131948033350327726729402265015773516745261821008595175350380443189233017725296581567423382096431216797817332139216443054644368895208731546267902830275338772506774693435108491347039063699802246667761033392012097413433434458746979858857186767036853804609527472226979630498192999845973766009173258140137005605867838314804599972254181497018308643728945031717526922718370892714825068926485098957976064079904735913233590326717045259309623037627742421528031776176486342107494685694888253294458346985801082168213361588964905424351906106264285444258688067773409592267190995074086464510693688066012131229381538119885350524148182940333433596820137703639326515822392743093760221698883787818272378683824286505281034761324089626266431260630319615606657743602923513600198573242487253632925947268597719650153040045768507844310939017555190816597671379016332511236887281858956534931499696290104376558107448082079690250667477082202378900353733895152787944951647072330041161160128293479616880456262338730273910009637657716408242108461952662891816839980054626935357435990897548222243903401730353249732555119071880309365000265211691386893432850165222924223815392672258405352539065946930995974007239554595607118091471822077579438216745489895823104890023982915083991168812558643827389378991170988117938919231430036414594866535186892612875845124633718893209944294636862667806359777020917501040274065577668108523635925609555813173393472494785277999461039295100610713851803730660925484862403899337348476255658835413378875835512729871546325452225121898391977011264085663158993989910997480536388715251346502627221725929914156561307589599294115320473463218606913662612580607192021518089873093734054860204582816460798531326767875540828322878833196779115977674144522001717855880089569641514955015543592172691979507687787985906530372288286136659406310367758359930909639917818524356617853897730701270298897140391600394881978813069268589813648484162903766886546665858573273139182669788599598028535598756724439010259869441417089624908859568676846045919447772092445747865983906818191036769174962824920689002769114415882999501951268170249858919537510444275463471494025889718676373485641939437138199369339245098956362767264178081611860530045101407634528186572671913699574020846505534604477510374906234449920147134859622856386474809873363283792143449945356405572255632684910441108887025992024257100029018141299502837294151275154617050622620834608646751807306923248053141003477632721565050249487365700119257104120037401117534166424448341864765752534123929106586639379878078597826559539851431049804140660341439883680241689126715352046096410404987209081734297034941291325899373942251495734856501532958372445804767604112288375297802036854570296741147050941365762962095751197725289599228795700981234538717602347264871268165386967664378989058274286099550598023585312703757093426804196267241340631785876351302000328389551592751757923573714866118136591553591075622639734667593014059272660145384233824099342364799189740873800729246931937651771978095291659660021873012770807145259651668972894530408875374344270217979130563471670817473736690262291238942646334192508125636392799688648245844345406715529637407859912425609650744971936371783246881498385671190893363122740397703661292625203371013224838468510714549346902441918942642992924516942973517086712292118021679620836752564121754109165926344629848232334508367444576584990895766085545177301469844708540019639536539602145418126918451546852754406036836713974073645234260511503115148222559409545717616846984225467683400362048753292947748457946343535492538296761619113834437025936479446862071168506691543997407410294982595342541664979056479215217878444882344391352053112820529355937028464254720823441111580820212557213200022653303959860141387416556136515700450674175439287397331243428170180753809668961441434814883975332782643155027321859743159885293179542747201787225565992235527095074510058511204519826905300779898191637609373364435722648095115106380762771128363540617801152998454068532081711439684555657200481211678026890996969323669549866772983658312463416240920940822059467556515013429365011195329663536500294179222191976265561187647929074611281198689837613735780727958061017715061849372546587446904322087489220178336651693434585328842278338888132939738207595975667521037279624043465797637060065973736139329568016946461501629671843593902910610593253119762748325292011343389445241753639903164021095278369207846064608644178232636452435548400355657857811625064190815723197061861438105991703480028710816192006107462360942773614525634705709077191930235333310415255823394408106784154523408683059224709324119091004549991798196366289908281455094179105523853130302149418743001361412825194374974350466683405888340200518965114726246338535757378439960525781005527919003792059053192389467397425624172775548192175105608392076934293806241693459324651513954701046688114177148835510988971821312080700157045208439410769902898302218597703412975041839225966902783889524225344912655824769121211184001000144747670217398568848751741797419597391789288866305195602885700171532062245322933151983758079703162234777135145075407281881969886720930838521563417086050013945558581592191950282661904733220899759557888579535636833158868127406144657225289054082804175264217665420442806675243536677598599471146698829081028995255345457859960161458684397362865199902729528662132603119849186107801558236154871128345924594149495736772183588593070598019571236597957867690294325975217930040853298228310041297835344414636778348050589297450859699597120173698910390310429296928445408089862000219461384229804634473361388976578221185740541046124872552124260489112709506233573366990775412647718361687059051806291040033664161402017226247184226087916633662233496817489425361299969849038949476678312990350243773394435103499359039435229500934974343959636441329234564315726247800684607301709576754266743850419955519913036147524140973830805776552695946255597410438513724974032283268029127402987937649346882352467324959388046888496466429606106762337750867271285214588013586251111571238949360923832361545652314010412012286061975101000819433930710854541800524343155791430830387798683344932590652020675737826255951699082554599961829689942285896567990888710928598472715160852256561115727321545602683883670553432018588996003489132383911324346456804856997454372329656202246355928704279528790859767154542653229021961380333851430711011523069687892544021734787459751825903677252104834625650146935457232213001666355205647522267692125092309193017691298709662755440989705052897697264036966046839241538815907898346437119547883302899815797338480863803355805386983021179524831971110019558185905051324212506690616200345279612751371619174926945254248875553939180035504189760356178442191663198196484363372332286932294243177064795770279989299262958536697732424556497052519266350123908298270847110959570962408507438357495241243793422856491115975830940798254206103508829445077408057016542503984555956629780220833464573950395127170898996288989616630842792018593024908084865419809288808469625811216256582096546293900843148072241034187206003238323063137326709776779062947689303654462362848157900091572087650919285275965592934869442850979201674325875625510246566680458930604186253943210512175652129003624909170926710272131680010414669157494553244270842624554413690577912748898102853893013360445529849873651908287596715259364294557197992525384230369494497276576129141112952676805528183594927506084925904301218772816428538722083419608198898791665177741136038358669788472956337665672492479810604009346189304408719426375436733363941554806959667444000506725514102624647588458552971196674401352693825434731872872234057571243761853638083813112267254143304239228795742717636133357019588166753986100932794784996062253416845454656503879271623888668019342837465984273004292413717407414887602182705153046035247034158230775621557471415144836759175378154688110028620393501754902531231267416692123776638665739511739502618124673449340583107707396268363029450371996313427877595693284381088429108723934987496022355814552204492535062854023912132368513223090302157729506350611400171816989904953483143891033797620167545213022677089296564510150539769635034588559960348339319841611022259568771215856802115330920735614771440519631541787860340123784436424283815516914001995026869553095121130320859109496940675209683437134844847742968028364949250642890022691736721903932628167783825335135155365396121317680499420242013110254625910171667209417211231813881763241791885820385707622677500539816474543613209526499355384206698032065236215936956866841243859426399743288939474667704420333887247002142075965399313514148155549609390238709777343117551555214150228612221839945303657917942580643397988992269279389734175511190985674002205315045914850045302933570305432361421951678476018574972660962583907522480541559123550531146756480965194747670482121508219770803859668096265500324798270179330805917403855466592095403265497641389885073871400729649071551679460554499693942405401689613076685850906160277146875550825252323211026838084255100739165654894684763791219601393852805639532622854807777648888738945659518712507765206403810915449024710167173025807268609789800906024307391491678187787919358179912208690226538932502487383891746680301843727570114656108721223129585164177967297655205465459683151917071844181798261758934799655379363089111845239877327817240511045275552959880462271981507218933468119184862776193606701659431865252427608791227122861901187360577949336348585449196787369059274453287999952969437068243256461196153257288334441258905642475181352148962660591092213383725302400767834009652612437972658861396056992976517237865227052814547218139136988521639904778993537563838274780572509729651304006234381515663129635791943610399343745713083899849018041074038975327221724002844759006296301124471406988887900626385342467455583174849453896059245845037245593964254290658752921541410072085118582735086300123476087298304808567030035663134603325522692966206357291697373225594506051138371558199435187041301677015398712942846413763350377591611189352558266490200782593226839510745647077966562733793781970315165581278266212632903802304302400295747109709757550903103854750749040198225274547633665970884593700243226986959175465568464030169308072951498884139393883859806367206123101165549498318849152208031478752511475963133503258693812371289937821793057117638934653772537142426506421710892066372909355033870730270408600547086463408500406145650278550637020534000245785954196594135302629695953170882852930459017074184336978383855157664066010008894399955469122151783701586234025212602568141081763545432839042124870205434770073568732078043380409003533524060697636612898395196771712794382088847419408913788394380416414279043042762607296301635519594548043704904572452364412868356742170383745744845827968968891677109002670964816221189606101696757959359003649209874087622309904562113646356179979629673385957465776856454331651573102391980575955687892823751330698037447727565066428967849028982821157387166668211258650280655445008785009089459201792165588324270604281499598601624513898671565891196352409462901090909516951789461356991344007957800661004237718612374076108444845652588753099257405408454482560916550282410099825964254909807394979539981734981992958753981625033524886633173854290916430923221167695698054227394415259909940122049786950971179617508430504910350048870352522472807771398563172017629638389267772061812229563561121165543339231646785053852818537946418146273840239626623488484781833642036068031337014383894652865012051974895729271288579023335434670767037020790594079186091894344001536967751264659591345583907582718093930031117216466271157922776558974381749836682277098880191107783498302110907432178908959401236249076787385703441850403987112310389744078983544441901321374036987729886202909391494687621206108487039674706603376530699916569271715013665613974607987158978127209452963002786703197450920020814273796002728181730078755093695869262861363910572800690044612957850676896297116455366023135651310201406625911548757450651660384432487971934994410596607396062907610467756726059565231821274105937862041535868836488933237677681570937634317883385495062134707382544867081005796242221177298469314150387477817103748049389700767279122996491456750258088753862417093333133070420236718408560556869568736554086197986064526920713058015311011512854393985019938604952633522596108777654287275464905343783557268581835667505151494390930597752327650574020425272354592726020634514317023804000584509758794920717914630629065692577371373837035157757355862195850778005206338024602858518053489611281190987507205150091368666772678805913615334500843987551737970757062131926310713734179101884245003212623295480301490165448687601498319611427749568741609752766528804351084801711768536781929164678542341354496804125980546936112003996774657599743622160852139788069685238159980243731401313435333520593928240483670698789614707103576397213930257498408689530246686236706291374081588453452093026375093409392862812967338609350375328817122549224534931973194055164973719327513487821700439484387807118134341921748398902919746331669497561982211783858877568404913291374045808446691744200720532979285625925644655075147839372286581107193676276647419375665711934212096328930562077024596824926787268763534483560127550347832227462137941334619105370081271632139752584842767883842746318910434744259946770512857980654765350339944717272215770157784824745673715121875867924595972044003422043926569447553474114000999545511732616412297601356142962358092034218688952936383030289031365508442507126992829985680378777650661562058476432897351975043501902828131612535932855991046490115905107130248820535578548958905995377525606389135218744337264093247764619078873074862388858613965658520941515971629013150522643729801500991761261191246188593702533786439020173412101330261894865321994578980771153811863780068405964553026853145266628645872044755698726496568928325096793872678979253599385337483098974544854191156100867257690417626406050778469666981575921090088694599862671837025462286162500644472444683481087574868323067943363914904581248887447963027421497744735030769588406210777029078736619151960832623435717355883521433675756935464630595547824820104457851293873578707987004643047595421368830614974229798284678977190860108879945572147340852544234479803545641601122521284469175155642727282187572692446800876713521644014130917968192991931916571323978291271612189433180157897250539558415749476684054414726256577382509790728013245829358440022813146836892957612584897249723053557264549174917941143092549607882913777727159508310010977194496847226649376084921190615457274524975518552553672238571437295984731636354741196985126118974117441515161803501241251237897425771068621808622534512879219999466059058183072019364688771196730161880762607500649169086240878386408075959092768609691058050643745110293553043995705403651922866481066536095777680094847693515752905989208612563563167196462295609191342508571663179504744602238874991238976862558324412351480772206796960516717843379027244443836824606582622373401336889087205470221787227553660633896827134971113640141759054940458514662224219440043383178889047425396428063733600343727773207327610126432950958258572357850567725602455841552483667341540529231446300577361781500150085666644303449803821166407818853008588631683179900567939871818068808325818465167017080767295341018671764567007013030643068425832140021579515962374291717203563800098615363316844291070585163881713092200810810541955508531806509963296064112343614199461164791561840078392659077889358680886173029576594937690837650228956733215257167608699320039850901949974640194194956455615742683422266831558508790034095778872057072425187987207873488001950580831599244425506777057607011421998568726446201102332987106719944080011749525050703985458121210001198934742774141444445702487327264080339729955652378034223105918771988631250640877909946793705078437906415159005343763730137089712926793365667544204149986331896345232239781015139161057503985287587065988830599693560723546133998971743026768227123599042603186101091083305705051844395555199773324330707451876732622329530012173149166494218722440117189031668076404125264945642446950329205137470745978941615757847827344281149020553060178094642254821945514974998619720193985098649717615352871955139693582242297064673151940590288416794575514756363631925120980197648761867279514995809507078931506251396221803313477472092127560296744067825667834024737563411854076369369027325864298406414015567397511624751931814022223804157674906665887563662594609130987311736460659437716987121600419058889847536839967512619507635836068308266870344107665691429747352813432831173863775487977744431030833866252148944643765733733310011661663375947769889302959572121881426063294056524235527627530132404762034213919938711757044412313438114282306334617944149641841793063427507845241531270454453946119842036743737129089784735393310290314944497301800778459447427989971079907296899035935262040520362167233087964066383055314797431577397369719374347516869095482003066094227361385983110486421771930585654289284021549888906515266963030744676423410381490760226029285144218461601842850286799340075460366933472877986433762063207391439721506054253318296563207653971889871596146213274235228054026021086567154465287151986713431749549481515228935734904681173549712774139990837769719283822699328047051072643211966185055530129369656093270882832551173119403962603919066658503052282926555506252499873834987767507005198144287076287061362843146913318413771032970660130392125968550896655226086845445118792552547924914639499569889260714951071839422662436065279722175372537526355672694307196076661745599553534558608292976138921659263918324066044700566090148489704712732392149010717651806716042331411834750129189518740661802078677125609790675633543108962801180166000725596202632359826005590739904752901479551410463487303548776518155396725272092776621900373124298837588801374424568374575635661625052267860325094593936990456588931661242651849811786778461794034006320781778114067616725207131611986191388173053371587301106269398619420604320873601255854096357492838504119804422098022869231279009993114314906226670275078384706925092745114919823496465955708366351565078875817247821518212722943417581972814003324486421442641082475053295110921224918945786437370191963140101796639542738997131722904137541781321292943722739117587194626883806568402106952213958849752346281875140418318916163751878273222001335117671652565301110899809188106534272960771433744195847827723124489435954728732917967797095969194250221817744821478016748086888719582737219939878865066379663885548781666713791463686226739835015667986854407789422562068916080480206593939570512356689458166501845330474065458455000552066289589962659108586430542571008501439603699203781228233452479650551440169460708900714094162793400036320719950892506350733857479470147007885052401717469587534772524396814081487390643061426498591668728976386731676351094835515243947986694037204856204252966582932801420137613911573475101699724677705432721208506345989905433504680906408314157737331043045297497242199963912242626631451968570984968533101314807542969317413423184902448452719494838944810786289127433387570434757578931062619215103398806693607741449504576717633739195006041249732085111751054462260201079848454649217553583805568835962688368835542757753893937069382397032646171941366205928257137747418216185900180663259870768828405958658128761492411429046975800089410835006353022491283690162725633451759747917118319294491012649188335661707332135111661381602714351517283421170847095538861903352554378255127433522991305978535376035771213447170264097193128959082862094589002682385178700701546868917035189892864157198535921691423672490091612316734275965317785464329639199835527873662407779713238719126592726599499422295422809130050416390002982399435206049370363946109465824110568422698559405533749096623307146222425013315740288393020610337367193660631456322691442662305199873863354776922492262790659688562089094896226736249747388646537479750746176031735919831611250117052487383155716102535292103013951819450399896281272175620983828143418929649613354017306556103412483684916304208584298152117477294076079606170018773712575884679468850267299684151298821683650873761909864691086786474277095506689452774327382839557819689423029393288311921629416862813649592318419070960663332519099807134349183948534790752267236679233119049902988666245276391286153873538211746169058459370763069699179775849015065467328802863343380308483677705865735920322889491346355369039916830188425170376212512541999118926349154375279567805603027860887804446336834483065262407968397608746373322047688455705542201434344117675703643700504931004913657483389130648170883433573522943223939010794918395955289759858299218378829717956001147003022078823004102455360350809741040513376360942124372490855349578848419640416756711584382487598592637772209655085899030046421713668717232373129694175115166917192948271329210690651025956889111571862338486862045196371738634394786070413598196911427457308500223446726703090275981679880235735907960144571918306522923326546793208690915278761097553931814801439483543498425462299887486409040404721877802564320996248581425162462918108840902134698414545174850755975078536911689843062112063035982024463105161348892853361489333422129063162551700327393803059299567279757675427388571373165369740005704595768180077517209361644297873637473842581760144563680696630434517526074439549132142856526333335802020139770125075316502401399267461363532466994433170590844199101765532081789254269296212882081668282377219954571670845080058013195076763664140054838756371790945568944325098408179044834547735345710297860971585464234073284556502435883675085651913251588550513411050744351435156374040318819103084437541690737251272394996095755058870601080256098252639782636034910018007646505282861311221604012846256258159393086035782786486990098293805325807858138520680278615303388209208768418706893490267907644282872346391067170906144256180517859744450035564197837017242731267284593297694861282564859022894080507175347556294115386329925732211867134318264739129963407472669487934456388400043290988045509064002223599137375404184139557781671911098092716492476113938743529092929748895942335681492739526470124422726542736537661029448928859384269336189622472108197928417571710805701329566558684713776662438340194094504089539838247277219728384873016300271584955242433023312297519171237350179732536829490439447771970582191388861533758234119534799881793831145480685964670276805328108136020843382838046569972583059336449552480389647393130728089765269226684977584788473983279695558232987438737839970152526364752446735036976459469870578370205335259113680773157197776410528940513987025519956453176425264677263152822002313095299871628802342308086584181980600679954569259452912138762075625402999595950384239811448074598670370545925307640160897744606852706368815295532859333338597441900540734032363764102150313434512830872723817408117035030759224575474486686630094558461618779616372068873186827779000129622067650523906144738101388767298515255479146150529747286587009146185102224181816645394742686234692992375190125624577986649364787349812350882054869313108331500831774735466102818001776066283909232113021106876058928427018750598100906208349700807452183280770016755462584991744148059925907299124033119100811343459482623015362258892063052931930728334809404687086528382592089882694146401232136509648514260676405418218047964997730127562086451531602366967634419904350083465870159993323050637832148178181622878602284779927051007528390389718837937890280595991393506248947796952992816465645911153494711919405465403868581100019674234521930876385242181671248222244903381685456373327241883204203277750920327093723809276403920254966120266345370699099625753341876839174241958478938473484426324708540849599383936013024677795080996145100568890538877904542956962553266231422982530330603014556374440385754325765438413191922602115529173579297162735279083186036655244750835419488921676819169036279280309190443404698160583744210863996195864607283177254457297016970778387702002458436970457862597396719526936273150414143805430309300774452684882075600047811532093492537436384035769728568114291061318135841186652813406187485575961638304238493577173626331546093702084622801740211418510036872543353649420472902920606407647529222091502439293854739553998156466348881644348470460056621321064715155732144373484893111634575646875033453555714024622095985614245951713293000900563687146358220375910914245063822600382212816433623680202028737748183602315641700008910069614769588487003508777452299957128818236021131060816895986798680689689865176491969360186022406910547762626164086810360008710352102907813405491584307333296400144564948377944114812091876606119355579268802423418518224177035475963107451169462516644824722468977287850846057449614531687584435815450626165532603523298270778444775330150910186644891102991507799405353014363462165759891370340468797057132653748372396863421889822881923966645815889450195602846147877358906104170346074136862817738684594532015462939800756407121372982353058787076417036937298410455197737634920345420870030059996293645518931095604975453503861103851938741424025438811523573662894035919198311449095819340008221789517445125833312981992079641663095514387728228184764973214973576471825932660374908291029022303115135656327471247868518256486710377022524070757763592329909259823993495292156541754293646084193935756465671080162912982084661873839993021112452337768075852137711366587192952563428508139115416179105188857669866199910159362862326722781089728922877257893915806279812675640873619208920771322645166700043484021729133785328808136442307910852730343961618430171741049051638999066010996669722357863964561428996971682929548130430439428617004726786639892289607853947254262783945055142224149972085478854511567499512867668731772936748054008013603371914749041812014010919728906795455197406279637201074631700403208157097759954219984240152937183153302500954070249423092001571930057710416118986020453612894842387514927981521419989423852451839604906884618062577285630470803930635743921125796504236314978082653695285594467498367968903693331530136000770679132311519508225919371192718767146689990022657401476736730564883154734354685418044952580719382127807541830054796675626827988007479614118595483758592487134743673026247359849893091978765170309719394958875254940437171814763952494004501873937261914350974415546357277404268486387660252356404331465703044557616538478571487990331868045992767116165852786371467760166131289250462318182481199390606454996619035886474789404900611052471524739217945524431253391362881676464809971351275948282861371725556301763537449576401927437456957191482390968608088282672521333506321280075662815064172848171437756810884983890027422874709303895015994603558298588065537511211793232079304821819715615499811204782344880737332264726330738818933659147575192271430397521369942906016239941170958300591082083504301782101098896979361007309844533179404200909885537620253305851521498360887151191912848817469085724688937042352060157478817705164839580548735395558607035948660986221722382819427160109278379558574445050012967099944998795235699656930391400536313663249997715812710351547490079387498130821727151001757318627824129433067297206679919515606591245887194101204519391313208017487696534521355890569856958912203431985914027654915215288317430937187732231474860503342936995203878450070214981848893426024941228230420438081704027415286438097736321613487252771859773580730588342166567664621327810986102763013206170736846636272712347028682532378852206825744673226729789884846104667912154928264901479326318463988163277916475627393387158613154874567277435005484944383927642638712030553138750083369874040013970011323185991293369714116718321274039339504011212442517498939367037299278133061659616382491354466452756019748452059118017932425189225223533668750570539814558242056676501646190856376344496288432209831385405122699093321593883350415603127087826806098394590274620354784101461549106310941253803094443442582404281789194500270416596031968782827375287001777792851671367769908092217255713311129862558251662989077527034451262841041394605534732453450161963019591918577560036363922422568247061617895910813757201814235548872895375785246736134857046214146996111167083929244040065964909107476703990876443788544975664516252526853341804194334708776199776448137126937886625010163217400508095421082247580384696830067295311439820323764714271806785365458225393989385508651980342440065283859883628958695842113470709942398502394377140693255081555867362696072672440163085501747975400362707289339728776024235008349242700152128487051359643398700327655006719330795464380690797194408079051091723867395688577829172631979131692310749134828771156287157013494426109646778946383634840873249213513009351459939868752802510861353587656034762660489697328577324762997808948731745620559067159681704396374985118431209695175049903161420559816222609294452781088720480613229214679053119183543246143641236643326694359882961436325873236663022686292394621120564617446437485967542414240751908063456372298700217628411251412509521671938604427480731408041784541369815052200953071417374643847596970963825583921952566190835632128436407377604929695541735666789603997966663646038987085936727882812669009689538423131470940490598337015897443887842344252495649174101098697375429582771606524242194701205414594662626905078249652339785051580219308075368138255824638916785724862140108593828899361524718730231683895700337786462332762099101190949316847420720205869648992233085549822043815365215276865654246716855568456614039022279474044160672702655880774695807808604674403877307912868892903850675387061372775176904984540437996050188151441476070190168180936531306917944021807032725589721773864206972434275983376595622753211584990040496738416965391488213875982189567759940971077880906643831073810673833980881940928813513115484649301217929945560500325698606657361169466424283152216770682541791860191856490205122000045678984858479487928379503989403062958150102272286022915783735690109387440300668663271966538769671654030953861428271632627326840622094162251381581413205674282910536744853652237107710937176423365043075977928239364998605688214707056401210037642923474026259318110732454400666386631941258752949692413510962456271888166336932647518243067791806052291217032181447920828195861010406730934570884526051452432969075071161605054062840533608782180581939628723953514432373287702244876525110901407662283275625062471795044313017485324366778195848219435988037686142455791039235067320862848876057479031114375838808544892723213089741223595386006007989799189687699591829074432045286125826831637208858125430157951072154102816803272119861483761549939970054582388476813213140822452226561232912092788547138881476701952482835675904839418865642897576002265804609382515958909883083735581603227211740522554181274110300734105818841810272009211837849660424450738097741773985106403347750336871465633216577563544013715278587323175917280613903706475507221520158361681267739695351680057891514777527763490437220220240545787317329337306509345555455631925487017478771077943345345483526937152521248732283530701126900968253690831700659868019781498698733000556312040002734036510561626935469688164912683158771999224855473542332131551027167026212729030088497211899211501478330825522236453245880534574653488388150918326996874593924689131904719156959411225347552041465773779095355980297220821374915836361771414845147289440326085285875255140834001697896336564185590358357096993354113138614142475659944915825803798509239423397727834570829527093624620339432946363319160826166570107325529379105137839931824063628487095567327611004271966333440495647469409509330648586705128240585967542984650599200233683336841777064732502697766031523863177480527129131388121752828940112942099586003396404691989709733092689336464966063490580819175324465718740524261959540426459281209966789069320824188518822760438130550066387505597492076834478140580283151931254843801206958248686039157366121933573277606117900143869732493088641952966575261448762741151526678701281322580553413742421116169403063421467945222891121523101743502369860284515145013963877877934633207596727062887454023722363417185874489033656418469525003051679364509071481014889941932173105875413448458748485052957044021562694413899225222799794780175908666611565940393981494332830852489002264364678290159797112007211163997846656445958930525959832021091408910698615792946016624223878302439315394012802889614262593127553270036973688331770770693031300114912994483578662747616594969765170180259874240572407561652601144104384402552526410943766703882590998662538989856952193987496867783112036265899778467055654716357350782936426401755624217483917059350219688058894612605464953211456430255665197636986022700041056961816178285040373226897331080772101720449278986406631642599718828448825352895158246855268018709590575375111307895554327194717298258245418022985393061891988455573558736502956729079223410597293118726220291547298176296268904264331186067081136589735565913889215322137273279005889316597122216360302742870847698007587302032842338388669819225519152900885697530208259242295638325241106440310801245781583532712270751846596855202091413742004220531250086260651966105204489135533894252265681775511862497632624767946980851503517196229878147227151592149841206726948726314199818751195441116079784928178416216923794643961799980500125184047303328738323179679293228938142598492822769350104194824005366851212882684047572904588283883672844681456920252029384017753967304607349865808157591746014176782585590843239725266359371761461837934725763955798879477819371738142601522209718728551330809127321211908045499165569768986702283090436474579495341936508964051290874463322803791901204982799998049953747382493907538471696938999607632439722413600509970991331251194863659043058561551886440789283154836728572040193238250825253170871243017578674618356095994634603895335807156169449090762496653701925151622698894253557529596533689112134629412415895490118368681228574570228014938465010721511038376129754614400761221235121212999592647080032884286429574150438697230924844988625150601941250000910639745867843720724987380179559574056422447353341576354430429024808749646330159138144057070997637096636474111190796420517025505933035135948604941546262861454468836761601625493745718691931725243357330360268273577111630991228615617809761676553724979218262378158217146537395458653346909798990196310855791886967037445711495454000300186717608019587056794111213233681176667310053983097752802995377280911575272188826678187360258667297460576805472312597622353698693069131614402821088238013060206981371048963002078941333193484929610649134896226213050746418640823171220708930202584405027087614753734511529791333409217335182192231446218734416249751273412642752603987860777268310105022062759879074698597084437534243799659513001258533168106038578026651072958270256622093415932951199356587595395504901914523999396038214822519442758329577216209783423166977745458618434747931041489355336428188889179405778981197053952891186381683565111804903781180752537285662002144389568235012019622354248932773562632897556006130379436978769902624164407865112105684476056234313608413015123709865024841197546037852177129890339734011489625580682584436259116870378872991748508965484428815231278793129119753073562968560368846341159113225164003651110833456539577748326172575945463178633039221080969800287221681983905285069117523428505438938514062559027947701230088138930921016991297411944256247388785940446062920454668611986773011156304769535193721456316755022087058803363577662762012582583296339054210888249659870230735710893979427661759857311745523635278962279925732585432373470889299604814635352745633669493754008566139534906820163633798207273793801515053008658224894558817551011279150258674288821582107539881694517952207191226989203472518497159190522254071686970516522646076381459534306777016987892545775998633010907679663442144791641870061372728776188303065459788808837887107099000924023827146086307060326050568263061642820970201781668714420126704437467790779770394460082963233716726331883271606201159570772788692702319445807418359583503976056174473303694182589077215304582277653666400774515133597146887216937124148390760629959921583214579428153406419359475009593040921244201937014695788045151214593782525048741462119213409362286712139182917844564162530389928930256630211020562533029022950678974071173163114615940516497013398248931857341535726390027605785211249486214724351365186027805895066583273943641815828283531040914801949481111477930233506763852453957282532527295243790894404966980400944950282507500457078864092602343148785365109327160602975601172939664530425590340836142990467923179673679519052793802193142084201008126676088581365471199468464517616248399478518591851212564403645088078992505167224846838341053510043138831705473847300885710183571409091205666146205157657957846294907307273469542921295807021838100387399839881783175490527212791163541837122888739751511453539874953585134273258983039961677472945860246562195878503613023788401076403798414696783148119751512607280467122385063234426287775980083556614853501257807727725061773255107242440990159243497121279533339778563730712727103840492973804406486944719034879062832144338866009984686744305518531818515327954555548463333436157859588718572307826749576490070141429071370695643289224490448006928093319752007089732064624416651179728432210937600836743342065047502547630412265485659135422839424718466101828139830506189617345511845251647614187589332414038654726256920164269893907219999415316165434156558715139301804220407792440155101868101730913806726287573885744818609848154569927854501895258810212957654727746129875369644168341373822539461308048885008408048055966060911949353584903161233920316118309689030150944847861274587808519726314801866102149068525502451657733805408955073750953637994178044010258039216123136125662484504710600228683488916735861308129810339189416293697966472753238064827030739564612435348651938149309979873952123681775101359407669806566866566841266320746009503929203023797722569250782797347039100786565721479320491515843923287654300542108246553286288443544078537378736498218740431182572495138389654767174274220581026910171314643341534860050877465647935106469000408153507336563618564056805029919139958374339402326847475125381701020591292490636326196500143747368345814087042247284822866644371009880550052132284841990718238235292210242671302889469145045951128602472186299793893980278698376352995281431169663804777425851296152103640577476010007478071852728402981848825395648572289843980718419030875040855870064607990371949275453443446839003255811398750007568155176467503683922945706473240904868231668115825678799519575474630769715083361122041881039696928351251669103517119844549503305245469410588409365327200301456719456668702110982309527998728503231006613215898608359031564073569414190786478094924296202367849574040633498376728053989383137383597436373779972081606474683439283491071847208310454259994744832824264054301583240579843333859133366257105052579762765345200752607563675781188847089589416182452988691968612665296015479072779242676463998714253719201666233724987146340247139341192730252426347034353290235902146070964758586745426916532725235218379114480523936523589302125527261035603654349932441695278641520321819611991536335768416920467559361431778867730446778516855910582488901285144628278425849125918225551816940947056583972686792461447300593211357755454554740982990763922900980428171001873062522908864974893749778317777962987558913261822334536830632460370947477139105642701087377873126188530631892644683878057179082753016481437966859245171397517521775536679417802004225011980284032748864719329670318667917031952329072921782706108319379164654118685680798348063073823967207571761706166378666331840962984607771438918251063362107801137643405646111296002465018970945666850481418270028799344004549069930953674044639251467831211536152950661435965614665873139130329139316891702546937355716719718068721269605198261403617733659351779983381480924790237533112341297631890308024126888157877979151024648582094654929248702106549423778279097066344250550512559511379192390261078025258815541033603046587892727853962359230264506133004384772237098572960559585996285421602370043917424025102560061982292366611079526045658521994423410561257429385143055148328524144039616542708515724314071971851708900574032696440180152705606577862766275621112215695650572627816635368637233580450505966453340572921469381135581499026328370766675961738109980532789610820416705735628233532296716613712208191400951383087040018919029658050610104603780555867391477449146522536228684727461732830919733053752622839191450493938193848577342995654482399833321180634692686759779648561397709460449334324639058043673279294831511138398324025594063790691736481402305818580544481511753394823384760906210157882373697907148681995598955756676187629106441755315019633912511146214319329365613567357693790446555156789717483799380785592098963933125572880587482861304895506015327467006982638640758017005571170438943163835099095755186264184144226732356879903481701154759043663766896930183726353991032506552792554633574225040617189977139029723845127792925389208599743772187474966585539216284631065395932405174253961741783017230146594343644320145686326633249553946884820301963575646838322175615694883990603994472138183686797139591336946858444824446527158532917388044991647237718466271850085410704007943796987354945373162171141699703942953534572332880370213917688460523956871021618714881594329749557137140240025790116575056732318276436167379599687800803045771804106513103340410355282454092503564225218851315517812082894013923909329683857182057502253953781016318546202175969396711925983402087777706379287997898627881223301465637123017621735415048660761063392469249759631139748302493584448333807195642508754875778795318667503677919558157962798579512000271717097132950554980586496082219588445054134828364773953917051533967158141767356933929882724401549392811809012140053336163699447872509138959476407619479550811775644504600507491814595591480494596494823586441243030367661977294141343590621420180758389827249120894642092333856844341474360251453908807377421545588144245669085271192444065014573488053233979614229149019633417809286606185290688866978018378018634708206944420915603926712918639528184995836325185155842758269877633215290163820289927175308118617735556539306354757804654687649308715147722607030829614440769904632933049055656667975103694374051260072243713557235805426253959625738712072763917666321449933045416631265962432426681164173701705368617836089960284925599215822188844421210127768505095671009076253860880128140643823431944118509869849438159953471021735602409859644521027386326459915404652480011193868460420044172173250961739046646125565026698455937589280125765804237325035170991814705563180922862609526454163065815317949209271114179015284826072805277997408835801559192980755458992219489355956211444192871775147543520838139451400667904300394475615163809145457906362848310015831097014776549716922214891607635910657840567384651364234758407073649190343800259409212608341119149946631437268805447342528528359845086702914593378225166140474691220585596830934691780729515179969307580207244164038560187125708225672410879495394873258380264950875901554998993175340562169286197565726245442422242032711418000024828224333807673859171287395003428945696769561261041842985141283679968571725371571494857725954368998103787904639378962409854243271526429022277497330149491864256464473411898948602649092163667879438479598187116071083283006648958713184525540992437442317896066749204984551249799598879660613746227898687633618953502594206002600565669358222119349838377181213246165482583320890670217791827421831147090075673486699300473388078079933745588050556968663867134326675451865131522569136904798641264917788868685680192909260586222629678362677377856400193948349496668388574891889136477733437893359026703105067247529588656023855016286597524581459996783317921776325570682593961430767420017280319459191716967261512140366472331911375332813057314702064973488652419720086136239514654095691147220567711864138485898179264090647019250772549704272456301875999465354514425799182504406397376226371704715838349432333533114690409009535595299945210842030777226223629906591369567708424437907327339918117789340682438419239245145898865399855341993945676418874652489107470751330325097376024014920372183885601197956682750992828502705120598009539184125678888668444009594285565257895744250280464029829722548745998269760856513672998445479586802523491015261271883746294199966506361271685924055004535589553096338486086453505271422062954547164655562638044708880000194978481252413026465333392456987472554614861870004220126166938739638221487545266180081970051387272891800129376382382656488201438334726258265847026492958181577153741899147748876424550731450657938260849442780076598939368786253720800673560465191099687896425448824201061302687254130237611094652581840621137155985841596867756501171556081097850382435459729612896846411408758029641069922784384292379473594193643297679689882831145955082398782967351677714710996821162576948914689964808820748431861204527198353339109750373274897470683160256442818866330834767168945545082365959866490143187563867791574397179189291573191574999571331280505575890473618295748119823182808805366405596539191548165573911049078245637004412100573824551593333314686290631528139307110084167083542029476087399867952684365885206493491497208349128015351571441395625960463428665924559333305668671190251526040190285850477984381494054763400791002281022960311135468780596120417483722776415076959761536497449409765911816560303153523553335412003451742003463336293131403678044289960534410957318472852159643399013257682706502790098623815459525628258563733842889299854674260862700342038814410078949549221576232261607926711512462441161583304917689445980252384059295866786673591190255962702197367959927522825574773849131023548734210691309035974111289061037614334907811342707638582202036593965082376244677627269272901348831230576803151086794798234700564199831795284229009881663452237702417146981244848845346793050929777289253938020959465006814344446455824065443183257414714104116591336155070156494552199144930342613334167506894689521247404592595102872081249397345251650034268438707966471095034250941405621294635918954935322681809637151559889194637506982421156924959786901325922874260444208451805031429985542525640002748403501241514141668336662522421780872271385913576030579090485798951601692977644267963348170242733044274885158117977832380471693992549979982683567722423764207103433908332151727806386462744078314472955017076782881233109068768485981084033172061998393566666997881773440789662147656612784780909203537067146819166850134322956109666269785596295747132934918782447038933928945985455623825004128916156736570752163093851263762342996395363649896930545251167351822764924521589516874392412177894017898417795671403632998297177211714855396928950673586956514500174177027088153778181013412607500367296724841205444274905650334053146680522423900027661700239607420105655716786922399650981004211521509506916056044053280331132520387771071721801415493001430065408249313552906215256773000561515653590868494192374898925545817846465029663261087875012017779945868102337110163141898884388711223683546311420966608577769142246362338506428227577919170509384988358679921731729722147694047195185260524021431154428383866869661278347622213620915624902419086146437006352619725696966897294554803109001153817461479565775812955475223305195539586728678215206694217740173946176631849143880846958052992991172827933510784408482716271718132923875113598777889848344282901064700258688792965429207978471313091778700667763427301070866625163167658947409779842482604142268974483824630307981457812062598090151457302821231950731075731705119832013809009002512494242983815963304487400441708746506930199130269984309264277567193176921149256047403149728268025560200429240760752354287151819935480320360689118908354264296166940120300258442429240468446755495221934342878102910465955266557330853413803274297499513311194852603597061611262108109337018568876288302480486280314475533135197902245836414624239829682648299484463606215125456903660771741173800885679967438161059229806444140052308390712908275414109439863116817540390687038870909327736169818203822280931760132175922924696725658591965246953637197536494713108450960937973716824831261313262241258160035962007643427807791137656215202493688107340255494939693004631846488447798455836033126667862647163529165596452398015449281810088483916251117045394960087851435866614801075260649802873428037861095827303972163523458773167421146848045806555310571966787332847822918876615573592434747214343634828286450137318747736555681188436108410374471272330311843344479965602744705129936049745507492647618829578730764979629824073693905749952482938574306389710058076028039233272739368339186167445015008203169104400996104641597763033073021558223596552298035872783626862161832570406548745176088858689263733461420841018842095710965318556414129545026900435998308733319736605904736575083397593557877175024815958246497336167037367825752924545757887902254421693555450692624527094690602157359864709215159761261151263154914205314147966266688478356976596738545110280174747676631008469787975717876790238274166130091187665708798444055082490811714294497398763122610693400485234916298951325559931572107330061026039300625337423194649402312259479866176104216892839459514923073880260861077629044819388040858575791060815922529921744921821602815688332922874349202723483167310755544628842201272518914647281535048944070370048621755941128661647579576901573233585525321850607033485387320891126848698672277311292392894764392199764620195690959248447020101640588116037273713670335642203690411069194469442320388044824516460510575357552904583399342137126848412731610411825740798760890320434688456130507388820866768560153389719197371388255362044008583679966966062882908284291881158706301310150122245986635522746508682872148821369539247488376911294876214466735493005145580171382468298917343222475993211668253719679648808210331839717841220030757539475541802543736763915214362567696969896377269285894622920435924845487061769110669641874337021477338552091950329802581605142881836573422025279252984373478288635380450991245726846821445074535369040050205170451911788197778160569252779834478109449619037848192473674228580035133738851025080540354096994162797763270797796126549773082176869369092653090470500730276658389782704958632196229856839390109460404589233082257615585945192705113799284290413603588105666753834705906595126786384285349724463300092655881204367838346320365561357422190714993213351626058337565693037682017692672729870796226125334963828245382551138191550505536531660746471451288486985405109046200606594716229495381596859462850163227129585255865642594040001711814513665779095062824710760684918197670463178283523826585096094264702139842271611756235332393512357790970945355377997369858346378386317718129635949198934432593073861342873280525612178338579504486810783359224079153377394487746892730293329381632452741963555665700606101053318919617423149677830894034218263556285149838478945946925522555743112061600099556213191269742480316092091874527883879248785058203245684358421523725984343335074321478635701918434224046543805834617744094417038785997969471423046339729155605896634301761178200257738176494399272082142442898593998823927821082073438596320189071894365403067380892935640996765689581567799004044388912788438810032950220661946740171252395494792540904452565498443240793358232175607542052374595279383975176297508546557763615535418640250668706778318879782456253589987065157225059545295191690222261062304759686126307471455341956224972055321165295545737679505420713570316882264200804900838187034276466009298922288737521884069880199836502612643823685775778696168988391534709001602294322007000592578538537080838728642901195338861658113466540635498880862694836406417392040132488191843542779413047968239673956122791805164346963259307356480391808086878498489014427155068972310436586006753639565188958881737448243240583885505556455885640150882055283289746361640765497535099016436647581679618856966975575432276684425585137004265349683926801241290809501895666867671140818096456711706741717721269646284089625303508910796010952745736332009968224114727967721852699483293072694966792732972429596167125188493920964332287145370113762621689206889706276913909456735954065672541141923779044681905664659118351656058445584938528973609323525239707846688228023907545052654206106418338845593843173669849691091244569683525026881713177594469457601345218309947494705247169847910959575158016231594088892576736113168584437512052862695432116382379999575198145022007630853357610185956736536123776548559463385417966734378350279666002359037476819078365428367016422632809446987026657810409225231760826192867014762499306543419156198838169206551471600589306423678445762348476160377813317381513611448095369940270741287818655583292165677331271003331639240768785607752129271112214923141899237200274926919689491327547623016960671350291715261034289804899984331082277517837532408501554824401477828520365745176191287013152286154715892367160464729657148312997193789361893198696725268264223827580262535556640603357566598517586851024830211005219877121807740529182684805735162223748215724183811010609375546973947338804108260060733810684359649558568871472872643821489265135711760156028033650944738096096803519306185482377773676376422484952086438201998353371509029753455638864414456325505659825439955696248781487885033504318105927088157206898636301753942517513121042889983629649800300112496444643959087900904667181485193858501142124025638357101173601773314811012233512848732361979092898329172501001174075440776858902577299300983635169721545976280795756063134106389151758712352625804766192065054345922348402548558043932254702657862609437569864678462567833858082497415808136993283392903985682067437592975219778038069384268085831706188749806859828177300294014590243374998201719681530448665833968449669294013069938988113866273361630007178113935726415682050664080143339289642385683880493189112577594694772049540486630356599995281321629511342248474370389845161781588780769500650765285221177468293434918661633653737730725553935513048818013738887101025707251472816633024886578753912102004625765529289398501173318595676020687548018522072083474542431722375203926548124663523630453211597495691011746649906098781121837906709477282629211333168939452049722862701739537596257825019855034631935991725595997456557750528526233375439804352907728416278261118975274070708621699584044756518839663960850003800465250482007984420583985798178729687410983579348838980305228477347004855292866540568626158616955932350252785688025936566508018354722886780165987496641015460905812893056946933858648935044353587972361441024684581462006014603619652986727614249385470093756863964647824126947482881337881407201419983743420095051657259685560356565960842006734259989232244762721305979297504151533994827175010379173064063515320571421361179562900538893504125953009034774741197512554992940387177267585416360165305042506038731923613944749349566976558124842288060062231432073465821722298770993599535944572968047790541257801365551582584827865476863793946675152057858882389124183529116978996469404292430451282537089876301266928163872313061599513884432227286614945937276931520565571625166797135241134255568490634404319654432808691484541799320824641746328152222616708474709028939710024758003290002092378369571822763552752735220108457962988570139238589134446484749478304667551300925626806816951530260907783997097769086827362917262726002477097925548297631688983323165980180259874816897349210043373168637587950247594387412834422990821667704682877558617894435638442642429751722275461999507522644461876477125382134829107232639431134936938000712268428425770807712870462000343437298821983084244113686810747963402134761543836132797863117589156577229301871242716185278898695888468698035027535671982126058712152044045559308398494386812238172652714467479929116673880275742517303337228229172177517436832173815360934246628310453612704342584421328955714871084451332023457485269965002790796416138142723679508148627268328483304011494874789989704895540705208463398020566263393230524797152147483162122580660209197285687492139711119806042974888549685231757384332592603999942775925973923972660841642344574341050506397849363291712235407076937094774769872506522023477816618201382331329360447438530548814036341542965424295267745894367929451819764964997989272500551069442740648957499025215838538023494530626658991469009760158167510467506642272543901589177516842705060599108247928449415530093416915833442069057081166066222006442086919072462550269395549381292319720078690908326242893955489078278018293602065049001352005695052747137759086784065947772006261563845199178692320962338171708200374983333713696739159429715551449277441347599727957311061363397922951378236431259110656256803335908674324246173965996652132817446818380170790877962415003039170130677243926887856286424414885362256109793751549970384141109312473572443406166511008047065527260709842960591088673277868024677036058721669206390231084394949974586242308398612637156231149806274904901756570574794245730384878704417436991082215718492602040397875473790219321679319252312908499652955085461784352492806195185012721457979814628624897643682184589170250570859211476281652144124614480330882098261681395237379535615222426102272229285661914821573609854613862609035232306682708721242785262347054085094820681829462966606038605686232794625852848090484598542882601199631721745808864020485989054450913870520869658479083010168861191117695171757488700130816225622778484295779612178816348109785723126380975506298198699494996616326977325711951577330970679187439356668966178283498400671096042180687521420088619575235862198807062476350791833674209689370466050881947342670581633287289408622536375722925299948048680179339287292894981875532846457410142866449740791150423014118169638786797614405414271086852262252822314333530377539307585663459383693635421389420238098715180026015581337223979723866496670197334370053922906371903500223232323894259091777180788042449462456505314382069879590114807526436715169689322774520083002349690675039534091137683843219016795948199939600600878111320635885687709188884379444903901047753232793241423773664294456140346448495079697509694718651981682091444641561687970499905202199964191979210924469320339911771821796703840429058460217549578329309867587689979148883641688766533378211662906058120459075434652409466410431548905636753756618330795028277865007010201110158988287780852179684018284378623157628376258836546284836623870759745203982015631257242710860075204492468826531514392001875188998056400645449015448291160493538230882700841586069011136258463458423447176883795144145628623276866374795648180353078680326539158381919684275178824755718773001423717284141189695631876477379784957438741214813608911538956128644605090072708855047091571920261722452570217526323077172203728284954777251321725066332986484118981694100727368120219299317914797129848535346743984477504657314983114110318724186312314889671777063090471721183004795287891461982310685577017772844798293056303132435792590611638695472739913944387516334965403278302199327559668805173594681480361991013861483717117895937398890993053678250489960678350929967682301659287715643790461066781590146690747469118748463258522873592742409753434689691163885070547534420167524325323601827943683581356555479896344233084335535436975094327970058947740907829555152717689927352931108745628300192409387933743343846503064690973218398026912502956954119820002790952447896267075513982730139335667335484185132606015126356219656982656485409475679646590712152209146243661270238367473964149121255036747891216463518243955732357486858831963511819860063980040436160066575871985096469213174025216406595736011711892170156508311586457102865921508952719277959147137122344360384345651476692833258274010033760643321369776290071074633619473459068380157623412747191740256161666396574187112650310602589119767538759528427652363972534320953966412149671803122250546338164042802154099728701440579005494249199989017860862791308237158106954857335759214890600460000308012359495239897045304580496477381499532838722020345118532113020060284113249708903865341938474633020875764752021907910229582141512551869407727622783162738992088750349464742050014955097209496688664940783781564336534001755126326005240223535161205698255736823387400060402603693191667242556838988627519879351616946389570238067873370817606514470480705255505709787567920139021585099547743275953957816068815054003671462683166893827055835371853698910302200881320985659094832244866012029787663513380862112786579151297788823484483284748289485000642748742532487192242043088594089673763810936212568597396222014410383615045714071991299515428961565853255487348389213508209425993574239455588521069753427182111464784032783653163007605131037573178157245482624625749421340142051029850237851032317492108627686074988016271109046648936605827518791308224835439092069519450193490288254422680769455019381754323006192802556409692756463176634106764163876142455739684166597509816046225408052697863078526132077605378789690261584241454111653855579732619094538587461380879072627406584416176996538399414046469749762107896527786052814012463475869417023773223808083071524809441437432145625929556603733860720607563495173248990867219013662811607128716771906513660504001661088867102068845387622534186180276510433681805831199010941092655267053687113386123046958945646132382186312715638865307356052632000717429396081768016763438064413242665262326526673125165288003456744975829890904764066700859499542832784681722765457365962970854172711451791366936680566744099411449394869919733791188654278574157042599695208775013685036828697756326489585570815834635179994945551714434954391265698154875458204614360866288419453345799047195893207365649922483306278447898588299002942703072728314448654007185506512066106462441218351800102232056618565827403815896142536092328148078346094752590991286397637424579504987894206145219967606783654043905692451143832335230503151579349162177665995021338030100733018521730761542442276408402125296292764014154693948666363944014808462336846829313049447583282570876487899470873849032394659174945640798222484364604640018367396182940126268501239379835391568948050253133227799493470005910483755837369844232381483826347520739851847894672467873989736897435523279629754305418068530678371443742109186807326121790780660477425745188147529800306667515305571853493370554619221119972819752550853866137267501505650957790579024320335913101718917308424719469989239219015400913873686765246342023908940989777396832854473290243274970117403357635763124424191455686390896154858457131943305492022385053582387997314009980297626780869371344041956134387840150814344885330273993030225974891525858029589068160755154809760390924161432812020148478344363972824600540458010846345392487073477742533196247375942553986916584465269492195281549395561332483248129908931816070767227933638874147259679764439352714485124648736361306561422906282496205356578222530973743932832415948426917831454551566981542148123549982279724812780804127661045973530005822121646378526903887873188544526272216444401421759723035688607319472934718055515790697360148935269848153868661158136352660600098618148043413479657774058544102771123476333018310582908505071532762363607909118424283387382415116412656987635649557753106392125215062231843075141785077893383340600786916943655834147745328188604755364882750966085152178821282311543011730738647355654313637461691774577097165754096274199587346799536489255026330393431416546861559298638371422381875570785121578215925208769312060523669101568489175046324042521907769659531692980400262445154241649260139919336407214025892169134125358561382319681066740337213650904766970113991140950369244561342132274020913161458894061578310960197381206871622493378502470758972105793611739220274370199157317069666011876878149767794153635872970679144859758696290470365505176227198442713507919594934625367627530612966958552488827260401381410780630246966258142404127738409385199992395418758459677752923653046319111851430391798716998337006060452551785937821335289599326892510472357629336412194190462887077781676709044144896044662979492606952807157755508235971122477349746708104188728782214224828854137434470443728903061643679084319800390044512890155847426105964710356656065006368609966616693873177611286243172974523994082649445806562748535377661385107721540646583602799710892910489440943876519375732408757297658278065275907825065319082924186633679024263759016977215340725221868024846877362747454408546549123219346775842001770765651567593295154271522596336341282977113206902615197703048798716883051528350447543534859749001649122259499262181101821878402341905641176148717220889466444653026264008807815298645758897403284647838464110697426841639747579693955943885029297450466808601730360086209481229173906977690964493083296748329194884262277136236765500483164024638152302002312198290277370893052983052470512914806086818959924213174046868018395125161814707163281543466422815031911157569093770878280604064878619916310376863526271672226648754578750867341969754920224390414362789896017662731797768248059844101746634803523685643735584419037839070752289452968025364226968581496173747457307527371250032733345862731225726984493091106404896118390774133624494014452471973996017904580171048831290223181090432959664706258448468667412024770613882208868566788470218658069619117408236878398546579378774441131221774670192671715749077843275524944884530875196968635309164668290710957368175465716908406996006057605943055800465646377863228839627094442202471254222168915181990542119475867963501663785631514295083416912805663318749277310273143481180956241530865721444294408840957424998033704897858716570148290153000415134546208075996996620839396765894663485002012556671736838777553917431125010525748493939693716858956910615194678116827251354839374272495421528252354899574613414769228036107347397826787484161173455368100486991561257701492702679051566490913834872414735979494449295307857515777157145776315444030793879694226697450044056682372173227630203329968893210945586648154567491371254075901657432141576708536659033754199104200399152733995018620499391529144371102502014843033694191575525052654088905304896001737725006183444972656691876085677875226418445346712956282448841605215329795622120418838707885032640492963969731292299297194700361109586471182053113518035581972128705157989137829755386588813201832348500549023672764505052325069024950767167387060845119862341676849600674628378892666413995346757802316008019659379280262252945682507365781013942307265802231501221502755311301393526609298519925788966659033005416670740607038435943723581799496458052789306292646982739721685988836281529328238420491840678112200278178596735122854267149180742439900307096145199281999084756257471073576502474639298206049215385537392073882533540412462928659412919852348761508564482816615132595953386305978882497015617634045771790294742392508779050922966136050070009076671392222945475335938527435866416274954365055551617640957657292308352990188303620559425501554140249349760173653843469430713625240246349235483937114820327301889113305356073483494034466522599440188247402963182881700335402478582784151312871546814642236592174276057192188708321817537435057193250789414219285811590132885118239746628282131162945645825557784555655610091327675969157960065708572754246362264383012975846545047546668462052434338964365796737409662856171015422948470001517803711775623941788104523159853358830813848378306407046632581766109939766888131320221163724699383662994152215508635008138578795121593489102403697653549862323300309414424950346937660386505490041007775539342932625064607437661295703434678946400109722160161081819764871065258733373176300512651524918963094853506385339836952242918810589105301276226312648222545241979696198297696783169324702086688644102648784275327678016026649152018408115461554142824050553619094184887961184209128371496958542969338420878060862384133583768688974587346893681248669566518300293125463020128805883424076284973865980901026437446184894112486227071123090398608101452676089155439019117291635708117746805431383067352033971897944845026295839334660327956176510214304005037133588665717849827276920161845339795967668569826892011905565165806776767391456769161480560097449565931872475344874568429486982704029795792278852993450470263518933113333124372785811579383246005719237106683444377678741061458686475514715108980915893604407714630715403132352360602391339626374845488178998597961080723895906557623108264237717619854084807630379720725676307067853079399572453870473881359185496650868136229036606808873163714044880096133697851805827842842482160926533627341243164935564781570681898673802318282989852131403232349883603159377197807770913242460373039454552426474486627230099732909956564122960860948672568192419166503727143320670356274039827133006770289208536987266445292605172453082134541140271634645319464870239250223125133060827939950702421911127101679042875645209039795038249699339201014236761716699764226674673571694506007219621969406995223956991107210591093738277107773691435064145302085159378490346099225936087539898782607626505333436468977628584790307703591343227317344546115825701933804529002641773047154319601194837083873299626451415213497278121026194685709454869737257008064691765558095649756065029803744864588139545859385612421135095505108645614881976180826817163258317586084354570436851255117048651501935883448788017217716840433400315587955042066420924401144610852082418900462048382138546495196897596689602106232248417433517529192929297150879349797122942713022774824276942418276186071734642997312011384933705771498752684625185515007528707175490105437295829142710645793693275570894865412162396414796941683275060292997702835266686755670148689257556571120488695688510378891944727386430695761427313315966711083342570764148515715763115847699243351011694151508999449250698096084140137179944431442492763283542861015571274592021611396250789998809347937761950744002820501094113792554849937819209273412514721216270547094766251770152942072760711247707234921525772473020437830350080365164080154025725836482312103842618697715194752456796707179221782244774345898326225020454089510029132487683993752775889416138118767204494862066256014080558681840765128828506385714119051152105180100833479048562622934024903017107471260619251298577635570523971458969274791691608256833990430196413468722859230025025640998856980156230610993296187539339406086754406824547863697640003134836470047077338536148295650410270089880382180419959629627541787513274324813199918405705822325895786030112953388380952059271659993072041885455544808267896742506319666216131198555211249830453565360255201779776216604533626635024588528900075616397494598830951121748679884768803483475159794776669676140005870535993055428612168826507859404685704096499582083337603281577573135577220581046509149552497874379991704830841201422858404094480081784176748851278442656583041716844775083558852017136486845561366498225098416026630584704784389550314942570107543447856290366916891442015099113475746322026853578675637534423002659071652043614853791323183935677568457932639271697053672315507750221879875161520477088007521752562274144120786488685364853610739139272274911695954361738346931852976813980733624335949591667044835313529920163425900805888982694897504525776344719076441627158622239366376359244222938516326809326944357642319665272917706996541273855970754914373740270023780867730855532331374908916849573223408840605600272935510250325393371478036766924936022024259091986458581184525506146788312709397368581267919129208465282291623895460323118682565001573673238779496348856173709246534196314567608471358552769956516943379232142252591781310005043680769776317707834555257465465015088940961989779741799245529892371367599901909329317002953309651778344807719552499210671094408150017061556913076751487593081883897567708089939207769554814554361837717014008230977321826736440413245375991611838523752188619584838117561456858904328353517029715504173899719477521494197052944639541268509478670782314186696245478085616730796584935590403195493150932984677600828899451287477746881082961557696027823670201781750404522205912054637845922192601763616556865593007561363206530069362252615745656993342844735507411656363895650052403524098012868495811112063758594293135788539200794747756514149070599629680110117596699421860340851996501110879038110972120449936657712061177304732093686285637449616665733950499389096680416343152696983153996592768916615357150960432212389536885295210629141204960081280364469782693912052293009601404557628014908736182282097239267145467888078229740768716940813154933804324183747031138078075341743998747642912581189752249659477771868910191864590536253565156843888179698772135604758694367319202197075151458643832034322397145732625921719523481140963051851953337013626253693124582799768134312325396834821606078030384758014735659556130491934882730634650497763052965920265624304979930287891917698257306014864213122523544958400438584709011247463279785806503578676874656236255993832212023469957923600091838139763506270974384573000736158739498562129824219038554575771724493443931846853929247937094703730018632627230261009964885936098308121201722140599271357319907044404853807411702301352660571277931541235903832808123680752015595316897935452291518534299164524282451335708940406391213850548727814556767432782813436844987450919263753682544333444013197901874175153213305126212285572150801065109267873864925397728556360680721125599108760238340247122733455975054399909537573259571836745210788381435575753712464036294251516048885609840479157473732717960322462842792472606836232854013943320466986008734472046132378408905465704337396524672552234748239683380770109815542726348833710884416111432833245745632566225316747734526926646291051597424584754737038531052776741689484789064459047941182412143387487248202060029307692225584312234289708035455685067213772517916671213238995166792964630998103617390389359253837527085906595508302878567750952450225399357451518693782525164924879347935302096926328620305207869689878403304676575402251873626380606053343428351282853683277248466860707013122027224383923623664803499097983549758940865220548054076299452620759844919727323791929282502347619583449917565829069928851366979196727803429442619831652346214617499127612126129265686544048005679015847673558998243439582230450268719867273000872008587536066733175473036464026080959475420288223119867671871374836452603681436474928747873275498603572197411685752271912857566560487904249080772511272059982106117536127097082612629756623330805288215284834025538267311899010394101884461165919551327579985933540421951017680197524645039987448385546791840758797689542991394243612489658875279087328478664813099713840251548704089468133759210286702583849796239987656018144744564506577213737134539806850816207489100710863597196389274383682743437955300860668304491095869482108785309044207286114610071319101722445118457322496277111167232218458847839519263036678302411961332084976121253770770437217701682679910526038420613128991368479927601805794144498857797224957227343990139740352607533671987981394511775442413409915741987081767136002192301577090355031292625963416037939572104635446863762611448827047569011690740888933475124492080101228246271721609132404697966061301127010348609894060603021056891052057499068838248177363892714787038682145250090000175086134906572849944479246470091624601323784356336399421953743240843172103129575218629716999022672386807139216424154408258038955743181416717169620904742015134047430371034548233563391166119635527131169369869714991311298548982881616275836184774131974660034699856014811017536954730019038649462380953738490581198093349695277360706103492077188223064908074765067285415910926978800033870608518431212142239430026745968693387705452497925442800270079681204157165705294358709908919405633211799644931857845253581431265039788108127378175763995151356535999360616366730723763671406207503969694495693153971141090712536560618360470017679621317327216997991166520593086379715001801683106988333556685972225218654357180865865596245934366357991164460354449590013548987619302539399088356974484326736491443232234200670835588470598423962639113870591268148517583192338545046488409005704512622889334495835724789519502581084024769076001776188961529465815894284589309315275533409534878783797773921790180211700814238255583698238574549957752911143383771189954811799731900176440932658270983545066626730427969153929192131973274285593167436290638074672018903947208867777533788462455723983662179430380468529503770296523447903314321369416671432552250409495919513839412259798519779678705413716717582135710220684966988387134183260220799173019990331354992522936812767486774537176060322415406753784871988885904280013019787516250456506979975128119643984816147738142456829206903402057408538545806791634122434307582818440874318054143595490061287946191150891909744879217417402379040423597564928655815271218364663384041834935478523136812304808275780406031700859061448718816106698963814128455117738363125342429394271384828344025036753474360570817733881076606062361828497490820537134299710222603900640021172503093197815475091897136420481700428652262891741516399540022028712803404592218154721566866160136805105015289047134967302189553538315606030713760734202352276068142086525469251086865520800537658261056993400164182100979136272293868100621778022626014726950207821928676869940285141639924255872560009674655872966882770408252877894904079797853433940276005511619675723696387991516639903652614903699842880066907808168441798170789901686801683926612523735856820652749804569677551996367575426230221639062565133555062456697201270604814825346321219906618114914399787323499512918308692175142932499638715430569498603596181470548678660345315090366669725779281257178538463456844279807583355093561490365834406211728248221975530902848823732303322632758908308818776314993100346888434932171743273612579825546739590327593180865582908302254428762219144795217867803555689274503601649129438256776759712839413851912260716058868442486629276968919005688736387248151552191565186983889191263843761946321016572449542413285435089529326203233869811969707545032880405139772183116765287585692606244696271983342903590678654242472282823990691021806640521679901215516549549282311413601609746513504864677959663974730111847171769748860540212670078089250099140170028217985992253066376381210843925262081971695616916569612293232286394771708651195732273226266774004922046480109420481766599310130404195239880453374667921433374868495795297003847822636468944602320034394613947459884723086120299835413693752846459438492113557382720609475072620297982642566385383093660960421150920310551009539688626558305379122903701341728484519314589282189261670794656282417765497684312286996312705070232051056635480347597963622697894028374916067064112944346286611932193767165064603554949690697690290351002895538938866074554138205898985250123112909478160431916063861488640058442229259206769355257967044210234809125042367952602743697668712261372013391604585698797705365250861146636592389243602407036641928798670986980281711473686822998768774261868988823638900359153764890051768453463886645598941429157684224778213937829845409509710188773942567796579416257574587696624822449034831162398476052778962955852839176976298030512492159176407808118984879218628671711958921169359717436909853802449831288279314203920698575368169846285792975800245360046150330156338402728209148574227580330685693603413897998580976123748116715709734995011434471377777054972635490918357439272262869042783548528774746329931554002755542547062456185948971189102881058029625983675722882477424424062044640022147473598265787086337526551170926564844843255664216049149076754368700173474100225069942702139908906386798045732605758708729149041106815858943279139719188486015990781282897909267726635690504419576510327727560370172832768286731442553981113295760530201306416893505220816707454303322608707771657602119678939110021012465394905532769211345599207275392977380307885897332394014808960612054050115288317578429904149580074701985056025862317656531342496542698489990660874596099116874172484265304162141778402151278853703404694599537924076082531661237270395012325591884480875537842833536531376439740862031746019724486614167076020061483027124440776090347971270690589661961554002554836193887262994598323730585361164031808435856937564900893060331487384576484927988929517537999328262754833011522568135463761776518563884302899072471086483580918123280610850080051162619444728552050792962941929595641398956325254101468706602861542498165141452192042991988182366273483693126122702592312134894761067478991127854742562405827171818330050417167391382751186929139717480349960958116639018339583648032089618523461576557307131231415029162049828341853883145041884075808454075394150330139060095776217476718993237550212828785645137650829927265696078197526894327363881030428022105785958683670742237164839930820705987408049270163753094844700328210344683589395056957711073754981474263316736340439680918309427473058593318630570871242437356534455966595153529095652578387214995699673137493920841911529090760066722513981628971965938183057480893202534891796168084849542804601001710708369566962344922502919381604322373375768369719514088765439114421576297852703777284901638522925971259996461608158226806603546138182067836811490346112374388562804897339780401556484882638093183125389911351266362468424913034571592860580293878601060469305228791723845036953846982755853112105146143726137553428760944766846054885484306069720737860402988593492884175545306642591934295250196218703761564370144946106927722323641315157889512676256355124632765685494316605183497974266466869569087115389232093834749193441799632599729681365341841649417485464947276931832815538551573652724909028891161176773042979529377613610363791085850273556171754151489160960583661146941345017275762768100725173677583416380627990398571472144045964358467647069164660372762788887946223415206719320657977256046507314737227248325712775792408474485876744234879619964977374782953397829571158541486975656649187236978963845173492858596338659800135541247797019402806128957107783902082412186706836435218834627213285793087447588065407192071785931442683112175920585473385442899254371089361540728648433361311133026851122339712709119805702422624361958453943488389508035758893397345573194594140372066858840797871747249472765184944589450319763544166142576162998743970801877450953637525411342148648452450194668646919169166755496460049717852190640538615753130637165816944047552298515272445807521211460965376049449913569079670699477276139777940644281323442581457406428454936153568490720993994064001230810042751087203189188509076457949159290575579697482637569320709265254441304030738445795723621012832777142539393523978282365947068417136447855215688341526398422852976192367851408198906737752250042796521526225457953179246037697918937365946731504600003246719110646282469642240259967920849805923424473980766675564487056824403733376814572919268951897121254939334317018751387308594381051949658946500429564121021579073319615875894321781646233668188340941022807036548974328702883973300574227161716368683103809581821713219509443923773409499727581460434641371592676390536874196967987061151300588585177064502349958410794674932348531528372400413491797835318596610959143821701008190694873141809785943125173146327765721334610450208517245568071041937830960521770569274532256250303615964934857215661697090137456130128956575996461163696655095643216693073439740818096873130060684349338811640954980948802073970202828816006303945176001268654922272303114961188673104457411348459241464117317490376210258333395281247943706187339175882424346927286115121817385447841901335934862619269482148745193294597082720885618485457407912781836777732081604017412123102308180558119587488907744668241361855617139894070675796766002178766476404555695780189316968721872547881382183511348521527241729152921375452060137566736316533553103300478982569949425499838276889721349617963980516925145766085123183135450888510209252985610381332399610778547652985098485331365192179437562233776730249698230054852715891211836067037975889982078857549921921582746290889952979453402548416883036417821219079505290761035127765285100222028924181009541858580155446675289854311960219553656885110646328111617338564741080503884582591224290270646930788426147855254418264952016126340193379951957419646467630264876458210761771427322913541855233452535451348682348001550296462220765873273847031482467655020741185698934947134503619582143513042924355125277561741252863484237288587672271942498184362903739926220831561854953838590216963635636454170532518001988853812494647129677523714573690747437816088209888503409262799433991680160675790085920170241453688852579618536232429366089190800866321358645723547853246216208454295280658161274200830041111589538903988355206022948786461730073388832337873430692103783447599886951726619088507217467669558006213365710289900892099485474980312205194292506704600217177589337383997755429396967361700375511200145424068619390982258610261398090678655467079678759575855111343541936640543656228633199836706342411706318353529026794292152180391866616775039704520179999124064864195760709851084364365918268014693907035914128760906831885718043076554226906769043219873214353149668349125040031063875556731729374396973672116138887396119243727928164140583439095688133827614016130522408840613873391122418543817678445525015320686877071625777200022898104900891561775146975986323321892835970267179687644579221306750595359062188982731871626303142828965339719559278123055413957781149522726507530810776559937166270009118883532502207345918554833491287225866035757487563270037088787372550081946206221335161980463702439065523154056581483227212170692821555192086226334392639434006112484788957225454483611644174819789113113095516223676335031367048357715696477091194760754178090908970410213624295066451015271835959563736219217728648349338725413167054203615392180718253402692330680954066027768894668002260581620088179134397056285872921661871462386233470821021034875880226980455097367743730444915580828780696419197937200235144836784381953158341374527875125086141438916035728931298469203633324430638062697908498988670495316019322317465089665115063323368335726020988184402238899173621907596929177260668849671708621539417981208154435934363106683759841394928378696022678111467582999524182099173371803054769454317207736777802007804772301631823159200108887204533968278906929504293027233769677913257050077723055653004846121763625534485333218920014300389762183957710498932699382154392438716278824275693581631392718119718282901597013825394543013145570362170027353013136624829514053305755554916455561391027701440770752117400789926972285718691171372706328235916810522219690383092520661463789571226151741747817355038991441269538238921086048907083590240981486765014558125971957001737373476787820952908972114225430230378656234610135012515336983515837346684537433686440851028937166687619547334397714940667391187500436046851741911597426477016735868824950094325680636362211343989772264203415993416780628883204281518576611733333794349334400426471100705337186081730442752050207007841190372561811620226641821464260666463602387220502053672067175828179487455073344636896467637398661851448955303605281797346501018542600740698521251648639787018685080635122667913157119854280767723625274135831711932166384711473715495697283034602659905813651836705066550396208092225041159608928240995847507499020146191414393275693760714079692544021223320589373246500452095465918001539829388219827677612199583473170579012760906580906961610526868030956829511091221138704805998494793137047775129724214980130708904177797676116861133119017654086454996543080496129270449848246831237647128924079360346190888994886612991804829733757440406789013806918919751430795260068728754603260258850947362950691911671726223144461089250184379323220381531315681591393806083759104352027814722339960242298816777597298318328730106293857661780850137677041623002107959488624354896809279143484391701347378456396289130388307535407658286365447678090355756959733743580352981364893795493633172370437402238076448080053825366781178181913922688143322022429475712142556366021267090213915502402448549828209915853555141409800330901943096939689330206473669769582929894761756868767917479257976722755258509578784830238713914165263090741174479277527753337978161654334406973890369152607036804447332458790378342887192444659802065968932094245609735177498464177961856582660128197276540302838741278650031775206023303623862814954758456648191863206850618559482028962302334199110102842335273559313439931929330306809779719444979989655731437137161946883442480437353602591101322787964295238463790198311699017498082843796958993769441776553244495576555364913370668621810401261833249826687487198018702371568272226960332322249797170609570950259199580855557304811161447151640009547730304166777946773834961917002611298773908143742455736618095373439887773728658787244365587404898071651747685995573947857952662133913068433536677733923262883967017312766533449369868557927648805116291908545020027240978737626290579038990986901222730069794305969193416528472365955304748830500358144984244560921617586664717767634323783660745146348299218807623493530055048605326741444607353259105933593351769530185797002729849812243923349329558849621235036356086766249991569455283008029617867570011578624480721630791454686086366555943102558910050048193450773772163169602507719810967418807556720094836334575293818539125260350692112473222880672706560239185920285686552110518942020085393814543415251119745611073585126953685996698943061017629428740017978033829628720908468636459873906679825220931189085235059209685649806436822654229256470158039894658643241568703842756370154085328546315227290775978940014653497799731492356384196747027327271420697458599850767568124341322740524298705291626654013732954968691525282552734314487484569902236655657271039687537116469881968113771193176779130996922569886257478357252493972168587593966549660833031001250731970495696172621919904541284311817409416278117740350291594650075174133952146386755906771505957911106631654840126279825651458704039325614183769326203718534756437980866942392411903799502500191858563202110619866124935832456418218208123516144919770220830222456760462930557874355243036205723540063284218669544206511172874127447093580540996332455121224884495345253951579477173044087015444787115600450741661864921124550339035772115932485967711754239199112161984352885186957434337491485948869980448991601651784552601586125717160047719335156548827400953560158536966459881162867028521134669417046131582872745188665840442575553062866120308325935475846973501059803969656579763671102900578852451433973980478686552467849281109617453537783731990190113781046698105598439662536429563010666652359058300747570157287773757759722458973570520017128717139434541139553895647352250483734908161199803709876886356966610040032312869234372686015569920006752118609223766821316672930540148856992748264309751218765054862373094279682519834035880282051843558441665560990080193911770927092162629074283259652760303287431291939603334956122493022327025208743349726018877473334971576546415039499875479517627865323615876752930631853860263674450348048076204352945058695194430906624411566246141834819018322721992862670569138848412609798334626614864332280719103495809696615998192196030952898255864258874429382609847579718225912574274664431147042517046089696857087153634814386708568728021348455804317137334097663722719868529607808916981103332233277378318654404173935559403982565400205531207136460623111536716716422292020124851144551320344879745327273249253931425981462395073697228206407671135900749647504830651658565810568870910202486547124363812398080567510894700233225056031202799233275448212634896471050795553730730056310131017502182265017115476735340638845712604818924449281359124665278941561326843693140228215650056503827501138482417319394504927640339838516909625382715663666433076963187134566226406524736995715948608773891107645972498836645866513737768828111253316849732133308000831894002330762725086945123122655144118966859330059190639847112479597936019823034031664966217951103712371087521077559124158580876285002844263324591047185455285798013342310735258140919695533949264996271076671850118194998672256304549164077993220607148066667679401579637496156264736708867726243941205478250071017197489775235120682251838380101626413418679215017167520584006308340604448673393135474422764202142487938366285811547427779932549313446604802540009527612239058072461627454634208504252978899176803522692970153206162214700280626249300234173446728720983768477553130933178279827211483508723458870928706931558575671362212753109387120637664515293519528482832227894837778501912193620210473191909029594027882917672311739737020054369047552101450738315500459231468551547978707727121719299453349498203494303463344324943450014768228557778081020199087082793710953350506468147853697714611448808602995935403529442477601385051991712194645041286674928281705963085582551499651639902264758926146833953220833147434200026511003717748449263489634950464090718045593480997382780704748955681307411211058027275570936273560821122746498348506394128857659031748800833197578269282254058054220937844283685909489984468152628783085875384060613076213292961729249020725428503300541815976801900568907234072005360770819136650131505268796722197046688722600421016097356542409288529329501135702758211597226530911279198962371594225160616313593222909401314773917733467277289880890219661255993688691677454610292321598866418231624197664920491473815395076277561981670119885197541194078606726574544835108567138886082434172822029217629387282871905721889667023755649481660314701499878929738448208877209171303631682065432933235578718191067249002656196776659763238226255308418990365612413598132646511771559196000505332798763697553877525298298585096009269255666789052055669807130899035499256916320275924061539604071803033291424370686792127250330903787549602822800270879138799963635445889442624662361920963525309472862015606099494007183798787416174556245326833637619696321081668949468330823254122742273731662213975412724596148367948136341684746283601398498508898998384108114130250484792391744708405453536130961539409504785572013387591654500893610403295717992024351720405234447298828195205569027326119129526761845960393726864656861224215354968798350706405086775246562548154797276474099666679424897634012889363927661865486264992631525526490803314931980770805245127340903509940333663511696692652949272485883495782919819248201480788481053865292084794262559041742057231325151713168080358546023165188302785614441056975817639636548264739740341791762158650965894313084208651420387013699377041778840751025700677876661311842675883984131686611989018184966136072750518679897938818392137587658377349156392590753614852386833954765251408835675023553917269408569029851573437548711849321842730196966863511039921014816127459128173554988052167875051313523808785074721716376963047207193954317211666991206907688377980122468704704239332512788014078567748546562497212224220726202652770762770189413416173374297844576455700071787661210754470907896809630343039907919035787663661085192814793770323603119933416722154321820656095727206467470593226976565015304320503402692133005974628920239591339180601470623979449565083850959322399837917469072213962406779189476925356483491028482959342116814517411477071880033730480452199811703065248569823504077304353314441763223487808950095326550015429389852602259012964733458970281421648166948461305592126950619254196869369396662405690472418843968694221087888059882753323175502896094596013863480855368415014566623835319049378704829771247072652760297185851912324979780638244122535292609449777389303488319022418221844426973353175997752988139580432501861663107905830700937852661829205600905071289931033188466684810384279281239048949056810455555899282854749101958048123677799032536033329589112669867260458032477788139163269372753182033394599056599369566068479410569097370916895786674389390107481758670130723414348182594102331591023298348321528071691273694482214170100600341629232317942666399172200947782133306532178492338107220371207594763588231111399118662734404123564820314431395535084306269649424590631483692023579407777591170323522241566646293474841466962274578666956899205322985152917777353616429868816944337906591366740788545453579979536413088879721433239144223777186768841135901514520795703961525998031816064704288360283769840289826557227259464107779806152393895546381464762521617300610172626445773055327216804087286135748039307892430520310335103049483779465566911251138343554490636528826668986192852638331478309275258788798193801981064448179487736089841949769802882246479854217734492901344190776778829560796169102484543488550221070093798420226874884500015037786338721611179400106323534958988749480889678523977706854628846823290715882220000623529675858055947184269898485772293122030310484908399346812350359133262514635083114110198076270963465371886582932831283365464715817491870420052837827024839933085765151551102803145200176391990276084774945613385422277035866769095902726052291407474251990760145012467012364876115754183928595670362820451497623760477291066560102985114680626529726477788438204486387308389066529826356107870425767695064735890756496601363684563302030393835121714785292326204652790210425532086762384064835506954474610719185573567025373011167538622696285136334738036543542218345536786681117483249824103716844349587483269350911925238828277169366167893129219016067161317412418446411097169677739070858509794863253854890353625177491601864470663313039263453799396686333789656196159921905376385773973408157284403430086538154705766081197631499176816574257044927573632258777550302193442588989823846573212346395311231031137386413221221654972960677607146872115287198086588860205234115000157084145987229631151576784950497740899846568018023414657986663655384537160533089955603723747615228309521728154679242754911254678354126429027599249049647067438843750919651702346135015126516533354375981735593749543855859421894261380811751625090128013155660371179017055518875492695421646367547334688020106745269645833281024747961876459437597929428092174665282583081101488078459025924586317457804252906704524498011101549628424565487245935837026074236786955681814525941788479873276815532464655217490068060871347122808829615442600027971811690205410831726146621445743465205676378671314067915513951271229554603810567850458278449599968918874161405789532954051390432109560314836446984931724821756736683778412199008628460195077572302503805201283048511957053851688906009238749541354463479989088425564096614005452196542836232769570016354809428126551636998606535345365841865847466871990274594329216928418654438257467936171871256790671982170981413132699349850179330401445126006245953563873939781732147483507859846282056344292281258023101328451053074978667455915227581807551329988459316115807114791343712136610565433516294668351273372258502848806436887677110709119225341162943303702383155323939603725764270840718758334030404785488130495818395055843662993980028478526597149055549509179180116777698542409586066406131188822353305049078998228436703865286608236524902023123228397290520899001202427756555258011205429777208762229256745180758574562753584790700264423512670775692131202375670747928538457206045898241684059989208232523663401301969434739322854750390014190650540965322519681202229013723529356633712364210529278144400640161142114919528090518196938177247330142202896384277487801300976881760000109333167726521400126508833652400254857862996477533816322997810394400070641820589677793139422181491280338219496545905534284283833119020857586565006309483565854954289163059958132040696376250254866396049576031324483234013051040395665683453870613497368786841458007062745406488356004560868952377517709982005784703642789804599706284970789135616451834403914426051977349527495710604708694991197338270714332892151517278707871687035131245481649916498206191949425346474542414108306126558310329002962657937270639915675709376469069286912887138387299036223671020512739919040240441174693971929811559398905539456132266335736407981899008615098031859422286743383728997801023685228696166028814011360001177593698346192273713379283725385712508063815291837317728509081119607843131977633962682781742924214296796319959879543636834927549920089550128679925470485883407958876105384853975279906800171834827753376104387245811263096225650793527841073917936510195825067680428210389030862951883228497632690905340961677495909630397013579900657961225896605108247337194052541918765119589532210043806048408904815388001292136737349941564154610222440762646586717163189463403137559040242713197639057048857128451558577387125709304129356275036480888733813629441525874815870524846126349604933652767414391340824391709036439860446790239197824914991264690964384813333972216026383772525475250820654032958010835872429240762862377347819707549973087488624885526531267095064509602513587968159999131857725508005973052025803488935225111736414733929041963244141052215164378173126069443064316612225581410151990915445144302165095415653966997301152140354586130203404413933196072032483920079919912876710665549334685659369008436354368978455957427210712391803254136600677240099487359055198101877974416581573794955444414147713436500597828889586941550561035703853803475239267571413037124934369401168157583770867751773641977309889941094736327960459299235349147822388619288834797537558601571510330571631044861600390457515288597480059365714100641808670253302400229417039268069075185468014507042498528432891952871463949311184667973562624999642911586176661784910948638450640077338258264910481766267461648935282829922976838397745180536450377551029812697894470202317596345269413697674028832665358808837058823098157976492690107096578882615701449352505013096856030473218569125049833412769046022696737363419746180380271235916205774834507868796916638363453675765850443015636272143602641237899750010985966310230640921375360249196365256532971489747343020311058729645284509989081643316252145617348552051071431218265685101852278223149031866140061255892166528929808106354870209137673314039659134055659097437444473584856302868478825811420070942096169605607089197926482967449602820685378766060697044126373614120741804592816034411964319847942333784305079269661158204808392402753473548955983563754395988244168475800033881181920840593825064444552525788374227307751547701873960691360905577210828680738078891118314383826979722487756417934498454138778145922891833143865049776453557909514132415272652468750994049602033040459460623814559511670878019348716676916303162812932813751317172807244534393652346190738629512437784377564660635980421620591560966720723051242257690670699096894388140347183092190051270722553625154119288014280833335298114544478566743808837942050065842242072260779994917707543688415984039201241412883988605370781610204213950714902576486401096088058856461071945904343616503436564715927410770428272442580753053159378122876293114819050071734615987678885693455416892669081753323746195513747380762300341588962960197424832466957446112299631218410378027764476800773534457843207720014757941279329173029079063094455592368024881021112395059685538042602582410437276325658829766749233052444904095086867079698915064220442095860328398873358535343926025741287358658041881265767581159671510845829815449742829353979867380893942657120318422356498725866020962652271906607413064885451936988637720907440733379665476426413333616592748374344909660398283524049824730640973411356214150784676167320411530048897196366868013275735807792098881541641155157441183817755773895441657116498317803956008373720391488006805277371131768049316754230958465759073631877350484206689584012980880453628173299378425047147137036394127242912940170272580022957809333695095592949423005481044274509266747285289302284967539525422964263848432796346993168436996346677323057498639260053385676612721110509587810626128225713159814808304199125105089665838078183324663542055441180890746221630711286308574574863275324591395021968937818338130808243100827742961550595468876638514771263515273435845706058054209916234696434453256619466398879518739290239299751621945513948867143239745384653496827169892873105127719823278010603458288305459582579507316417895139619338283144567041776266609994068647442132556805049553791065813465403947308350739394455519052386421991268840615936202692829321179465266693862050481483236481690018622177015399020909240873235442190898153895107968679618703984741323733999385141140159548905669300092058387146964289265390238611839331074487551659752428660203976694687968467521625162107152476640204581950939301214048895704128301347262711259844445391804541400010280462217191744995094571805671632031471114518372326076437261757311365543832680400929455946888938454242619397846505806259488212113713686002833615807989335104862226376310672347048166130813363838837859166410136121433647498221738799101989441564346223252423344298667093180630092784961430256850592855047717830796796965380217913739216463706309535848193148918070155096417799419170412827244256471934116323361951931961100233670939928237745431969288578819105921897356436992408166162176680207744680601591240053770584624410631071705889893262906566288109546068736448194029340938303790756862663941265631815403640758919869996670044609476880548226950269317578610301675572271539752666958156104418833006155418650354264544034161391188356575454478791300111794931212316182999584725076503895632378152383938348235737464484919880392024098639101449149482805717807354795102410727896787885993129937339457284650876748974051474409782674461610896007409618415810707395042911081991808823115390550910985483139233386840361450320939464723012547465815945400932911367827421347154332040474496480871932901229666708477850290149551133420137484801560272165954398944733503096574531926542885456093981062243027020876173168769178929207071382451552993497189166652908513928167261131987311888939526854541523606832667298026911077322743623069492506644165632456354740953226609064991496058576370030989495065382897118617022776707521446571545176094264929130885833632875238999967502437194884661260013101090290577504940378240383805423685557902440841194429540899623231855578707084210358508822237491525097400931060614905492205602440696030828182561763945866099877458749523688684752831967175620686023029282939832869315527229172815568054130885686393697026068813846798219655545903003106448381745768703517938298628136922581433398733984934542789587023193018167596341152141368249757387193882836279894399332736627706792539636929540718086818127887936216658820819256776583098828554986780482755249659044255842035466530702633898142957882389598709213012756512045189870937921683803450995294821868279870389301893192287228151518886700854286815204447874325546837984424380208361392954270234457077379131620268370806187678864393399457229915234394628346430057552966879598956114636559611227922102403269266482723604803506859562355452275135795753524053920222905090647494928213169461465171263621483037551104644903996151863434068868140078328869621327761868031114415697143626184518308665757243327897132578907077998794672002324636918119187043457496188706379114814482001416392411607754354362167722742916234863198765999931060119782054275654048329862092389626766756767733086051648400314336993481658623337258329840019800682886325991919328559648641453531044348500716106802144684980981524348391374864403700378888614155043412328609937266749081426148504866280804615265766972284430404081080672783003933015297577512133900988444807989427084890499027442131427905229455294105307912201420533122410882394447755771023728952279265431867329105974361080365569940307749371974610695576998268783804465211553524824357339404239254150926320500816392385681159205362353921654140026129141119255458720299190158566407639416362799043804449631436870712057861707105671418302539299280982039819507192915591456723508325762313591186922560137701862600672066446571687604967284488093098790640491163517137862775792749282896153288378838783494485071783122975366023953136085341385776155197885112585456286565503028804332662080055677230771736003650168599508585378733432916132141034325999393360955694488826049112987870549406738671927862197304934755651219128575885263415461103812893807549535468106896127441752773506606080707684962241694825957159613221937901682316246759118137947429488607619397815998579721413616435634392447447830175041049053126274467034944491012137725293292797498281427459823079084692316532523617954590568735846470914304491643301425494880653559776416492361110817780671125968833823917789490046962877002613846972952934284620623785189598765982059153973138187089002978464218582243377071975894539457095683481022907841366522576170072275930630042651625518094779383415724728851146489764118668338109322352723548788316990364150042019565040452887715832010132121739736967884601146905223517397759671591962917796173756950113535696281456108317772802070671669832187429203542289511761634920649582414349385131145656591945263513871335628254795307238004189625704749421442785730691517230220210570079418782677468041355653604725930374816182653614144767065400449154055935835750462556538290459369329045088978920780824033068516614990510385993895164602927245050906543107028958126649415763397518377734604890854450108672085412407974106365570983127508122546261830300232094946043882603915808452424425455388545100208201408991047769484069209482839197249195734445735176781189706023587511634339264790068169345514357076881484807021016657752665172876681773668322106036505818482110438451795991482874789561104540556990915001058389472113648812206435940190192068538981660685056860383418433300359794802369067141985935371452716232974849301172864292885407904112686267124713508797095823088382265296602001385793227565700176195903448136469588048957482905801937170366987979694660232202577449107490863184667359936559192080389744707264028199893683681173474541152410370491746581330266887904402517911149552062405233021363654936274142985881454573305156909526131320290863295534443788034621631305101349094443589076246316374743764120826645030308969772927980754647863707217073848729891279364465942246335687486407392382902003192535818974742655566088792960749009752571270446506905128244812005919477614286536219659638848821172124106915835999015009970854533798391161724647270106169285960781084837817648493962384939681361308528226308293427693913410189607163973891034664230340000611578757429874363069901681853512401714039602629250296043096599638102516721392783283607554062498244365393703171780483749393157051539777023786399617561782553858914449590709533277683526860153394035930001686212942027999282085168409916215873230889191071543410295591694999094957041370692840536894725801622610750018740109273726328059812142259490076755237104052457788741741457713121301548583044366803721875799784045383946082297943769324602931975427984267375838541834070858884691000880084390932924649638838491829822220063608869283777075904884422156722480102813032450835800633838753891150081727846287596129247450504971643112712551855321741136630049577292651725383279282536243953109147892604191458606023042219246977316109216292412910792814386153122023228275391745429993027562318567220502479014513144658564857830740469771550677277375537604477788659904939446482564770371728632148145368824245187814329736346645220435745519003487805673425476192776169355967976961343384419838290133282562786083919815875112103805754894083294331823483271094984182516946464551405552933141746060501732040293138774173590250739861849250271410278041341041718257737873403971959962477165973540075789716785049555009903562101581431437375966846447761219002160483041709817004225789916435201433974182910019830443179334863783002057007832802045564412543734128279112365665289168010277721643967069289422389093728169426681853348726415021447298124775932927846078721867422471317138933348474336382283791020503818658414732226033933400811824728644216470137790589738875877382655532597334897122070967007591518605025192111434664308309556502414026158153022234180970762067644522453896974655184688331818745393898648930881739598135635057630939477917860913372565461958168139461395529682894064830247190019289050328292624522822684836945315288667426326902499881392645096367311538551409079214041268151590208462217900413059019204844139731392922023816973059736300622558969726709430274248859394617520820310845082413726736350039656482519884765797580160952941721086605200033587874203489424926156238796866908747938611661678601422714689869717964289387571900711426938429505713972732452730856459316658848455635466771704266754877144208180248984595920879284618203505482735276987009604293709193472694238855894778396109782140131170818308518186685161995171941093729979501916031521885714210381214298675299424091629790540827523206223872057343256586174906019649778174496019126830919636930145623093231033215965861313693382212467583056916099562549854802402948004412082464141463176136428887611566167706113583991780574255719206278895800156229187689084564207345045942326827623471603773166856614436131759915164814876380274226911107593542222323028078007234488198937404932592031943994270535362871619975733899284863060580044585974595153116369232869791662804106960491667713601873482393767827440351219436829972833678157905609699866411453444931964348941616972880917602337215027860912120679473589036160366285033594918014304966295903784828547061756004087638156243656193932861536197875577903814396634783033664488161798264791325305488096721513817485574856763880474593132224510997606372542264158917112919273424307086649073346589639411211609714126531753280723032491513280548414278102594890621320159552573928421421365918408365055778692298101909847056690292549019851842030452863386242134838844714189666738096775964122103148374893441640360562393323549744616295292100740498926190948423021554934577269459412659977189595007960771571155817601114660806454713969543600148036681201760568933626242553113084523513443624181972218582926910482671130053264059539784328577046144043479087756621810850357659446478931153102205066119186632754623535328492463058980141616011020528525357154957351311927620958760700422052043639322060804542799222942934364216232649914035146884010673620080654292423451065709540523300298287986931480476477532592771024022600388271631526294861318515912252714718960786918071580961678960502041928927520858779652167617343640367790196575913449808700766031907719755323259966784932301694742881675510902994215748720290117308212783995519443250726095306679844144719930425256061742234638681283172121411617559314940189538266465321229553170648703673147329679329517665083600183322233397825169985834678362006254048664563638632160084014925903381011885298865717213745943796428585843191209555443387542241914246712014036445704101367840898300673147585959422401935364320974773014983681330298040418356990600986467716750144526059123029735993704358518504563820970002363278843262055758940118124633782190824690933550283069420749926310167602912573016868693156464571348723473941092518793733682022343928556877554612967788540812353128731666071158009078133834296256531484764303644527091170378723314309256647410511437411559497030348388384322458395250029232442085601757622375200563280192094737182403068131979418479484606143026238486441341916242279743517020769825779584532786000016306288471547059432115865203148796151251348427112675520148766672736780893240748771672583797610682023751474398163256675614305693544303206403296464763860205034749154586025200128506881413603691956737308517796183545220872287903147527139473502122355728044916752083823834941291163679763352482811539356893365401973040756213805944920581888074263174310672619079283235789747650226005903614331141127821983830247646936797172388470841255337892839834488989801522688527703270946672717931173108341742377034295306481465579257300501283497251975265908332743871631946948772864144668409066102783337823241941007860831034963015679968258923071058789768572391753525338211819967913948063553022837555094404889283501706383277161207916382613961880624283451585778919507603345251825893068369954386995813377967384408765719287390376455067083475232081954602424778945038874378609758524060389174220976233144273340384070803114086606184118278097074307578362977543805290408349831083372963079978497607639522034962945835199608609691140612303657848091741217329457516175218922676642311919903837199172127836983148216101645473534211846534125344542790612132427933286181407270694435965474576240756359573652704385464309684193023798278858612422420081824522917503723001576157617574182268633358083052646459177653275774622531466902823696995475468686739299618286108730106045767263359212087445666457270587125254050236903857017677971899755979091239409278115159301301168441902676617142909333391714971236587852627745964637486293925217768028445018878015740804119962602326971429008937862920859137043031700269314737834514889748720170387507682415177380108570699604565173542975125884414340559033179086756529514348088298056038545572785889977100361907650785160037435866304205347895528304698694914384677002890493085204070978475308980075990822676101892423846881022532810798859534504653188039373098437205558826936580001190874783197250757729660680259559284158477666726701433675962428306692531218573911329851097836231092071362693669223372599209411307148615183031926655236925476823369356349206385673551773710925566565365103156479988116141721031655899742387088343789163692356162648583965979376260125985040125437770448495062707711249611828020032763865320376094153825592945728059325893189853550551151450150700941698316774227621081904003526181609821393144012479223332274193262127094912644900860381125811463803643392302456099015903829454620688961257255919277913346703128680107777973219699686870641466268367531274460499820102488778672646176031971705646919140885710761858257903686267359612244737289247652001963317662083440176802289660849156330680892792410536670163461856154403564622913158475433963060005018556118786481289367514797521362323703490793925754418061681811363877445961861708880226092026560955012160054042823881951314231119003249864770000957630716599277082590635277042563445854601540713800827224584721203860929106748829424919554059662704366180297947116080761325623353717001352143833428798467819393946306682788869069865882670289822600572060565465964671714040856239109081840423930756266093789971647413565388756940599258408959614957336065538741426064214809614704896277327253576857115178217753472382818405551261626166833483270441255316694449816826476004994540718371911327611504177416591809582905151694618363639818000170681385047862203890111728363094013128171860295798166130098157241613242976757740995060785033351367798817458619231288904440063363100038270510879832661671946274868438310312531261970909491170367858917206465365231201254222889796541815246534735690711104032037221475548965716729740013759548751432291107813506188004148421855346017718335299979906081976682786581305035664575068608143649789074620870821105635918295188333281027659069450669206002635889964163090198907701349387096153188861860017298572844540446768214515585441977605291999699731609918772312600049367028571443834274012538788429060759394416195080814902622701942066164044823125762891406658544088055166212094633000029579345332056821414632942005361578118553128049695029336821031876316002544469063330941806731459657267664933368346158493955764408144887146370527769983291684538759965656773038984984405658370285204289211066495668561210386203972065944990424744585700826982262351867602931697953992948968041721951147654433997365539531483003737097984357846727136920707603696346773266287279022874828158862458855283662018514545694135008807473446115374827126063486466074002463680500706940679263599060043294517273276206848845452383956451841791878990545967684952472225378098142376053686060732230004699827906558959977801728940123718659363179327183107450120150795078568973530688695917678792824736486931234733699877550031413999785111784902064936014510223843201979870198483417314132858246328845745455886728390230300559641890918349403860738909588346312116235187746553306466129034840556631482309440103475257732957520322326829255179554785043743247385264961164844617765818818454196106793856284104846299182114474875776631415442979550092486358959342860860165384109170277028252927152353720201318335404772922897957759739923106367335003330200493852294322270393768515723944327110961101120373619337101526957180546449276703018919763453301728922030349201055912092096807404280118279195311469824796585905310020319821818524026550686982357376391482712879038330003904275117426163624168284550666888096930836139270338502441952087878479222617677756980962274423192084829712203984985238926902544902757463132958333958660167693045842852768771502729061856000940057361937436745546273878483660715935059181037574446222014778056209610465960350173404749015969419987833173619206559547760893056864657692057109947045125765353036771422199573617425430004992315353834200797913559564584333404967830886741030719669916946702252839623850670464722371363091990741907034152442404713273399888841413292751064517217604243889434109747116424137713516767687188294813345682547014064125506093889702006115881430249398600181337106767113971849824592116961827288404729102153057652692552874622778144008620086774497619104187043221980512006041336170022912347884592327721900960998042158303524493054099652977571230370481872167363396174016391595415897730015499105535270913357017482461073076129917520001464102719287308362829864871194572116733954643685631524812354993757246331505778937536393388309939075299825055452086222006335345680894036822067158560065733080526393199800471781358167655152168161389194685148817969067606896692745320257487482267163055847395492701188323568593007136424391055930336109586531088030244957748942980778059926305374706841489840091419920982643664076717222660277115306827280951725779855207358819291526420706452605198266231643899898382465887788516809577014054306839477556802350704904620936160290499387924041088570434760683791322614197762728259152843156929366687896282444217152937976041738983904872084474998349351079836329388912818657708512554683673315728871704237993600459959675161590571688261642227452712729820513453752141484174582357542037246691365214540073052259335898451013586083981221018204485610354571406206351641404518243656906767198385218276741534868382603718277878261018047988181103170720785897261301600805397882678235002211698078506277207960279180282780938868806591336008501303332768794743636945130328897038136839614162315212176444979213340768477838506915773622208362907473821603482400990472611110853136352149462842652077592334194743268148793341169200485879001840554918091274727284476956297560952748484844578123364483714508317537112672386461275530979740386569163499630830528330280724307841271791793156304012834293057185586150393950988423308130337921505895433552936998732906774125847032668218128481074882731874804819091718914368541784941950237376998692811254134579654158853473862155137669564039212705567388048312255539036896194150766538517488917485109298432094451349726606643048309891514542997637749892087126114409183066491606642601242922072732837323468703338665408328554953389580310724405403162763798211399097536392208995296436935431791582200666074776976721007040895888627542717142153967953767457653601205050527182757248482130539909157681514468676693591106518813069983992123061801415000103788431777080597141519663230592804133560122124634295666381924189444069407499739213532171386835292877614020774031811135633230375936828025463235742962253693864195864870869114883033622189290161111353960733762076455882437090498172144865860441369986648514769341289075864779744647602307646099656062288191483799140264075279934912472325335321245122986580275779705685803920672049093878362955862822867398833381120409523664078947745130543002373985690520497483160194113718834322268690613478745723502249025308303380246596844208108522146729279930794149124104202907629206478326494448242095105577738760309115646760472557663064060440787108197794412201865489796375880342159876975711358563037910961786753037196064779260513949223214837595495822009316072424851487127755253585439583754402296475432131323066895194743869027143699778182064943478228984466038397927887074182659404680776963463227187678107525071156488251389301694326182257694567350690225776976736915785091556244418490718248036994933022658503883756528607289075956151496845273299430813356454850985436132583102016648460145777998050438476843083664351196327041738643377054401861704206136276448719357724036310427221660713718235928086324996812441850518635855023898338737168506651244347040505561597409616354067307640304264505254455284681955200949548206520832954779058094422896503768156386921880642090387689615468294363103277477138417811256585546670733367968386729362767956472905023027072554995152156475329611186656745403982787015126359075937561168257722827891929788456298991863067558172416811855152616067916098966876273410421471304908486351592430830980381104005412713276683709458822012278540536451887328353853151562411681918402991187521658137102663303918718127263790402389588234359924775699844049283604969250370001271155903529736442314280477400295470979299660772853438744689959748528038878230311324682292534043173180960794214962443864355544734837478393882259691955010559014006603535478846744278836154933072975666695198715687126145166540405179088984467288942202716424250804853099619136852014262692228065096983476008714012409024109314528097247000069032114918024185891507774566981291840450477987838400322444929896400506573457915834287944384980933038912326330458674257371429062106363780692651531096456373244041460772168345701963515578826377848872534328115212040238859656700135416284745039298245490060386750276424073686374929641608740296797302307575741452090493938027080472298763126889858393686982859695734659259908804257788264692821322990590153993862674743789990092877163503289466809090313455073372621988868922377560571469599094256423464072936668550533230334359198390622308099294316678596800498768219138362964002512087625923500267701769636567953667523639189105812794386816429313895318964710703620867039977745658074848560749874391550300367582387104215775910203141397021556824553036753729826454822913092250194236139103834246137088366989923783525319980207783085918789234022853023566135131346711816905032667136956663999983123160519118870491503737628044383338673475152383082682591999952759404538514729951968332059930332326096125331586558855096770962921592962077576808427247948535515475509474169715377030858014341401782994515532178266212297291242839259651176262819618841690761351217934124926409174672906063389747588551040729552929398664774158090481870930015073210699619485832691136879602213551370233408875091644497296453936787011652574742126290207006432569199882455653843274884271560741011809072696157019828442469505386474833035489805761850182815945260663896605714993881958418247362295788155926855229131888280977813453742914999506040409567721984538476764944707668361446878012858857419527842302128668901488592634408194844242452763800398951988028521363154661499651180333438298953169545590173046517472284141390323031063409946961858252687073700749277181194889872415590316404977675453658145094175306027973456323191566038736189153940465390041233932351482246168124691481109777900409768025249783433290843952819932477907370509168689664352104343103149489921978625663901456144391977539074651821015670869059656935373453201377964839515537867374982180940028914904394032966114323080954354711673921916261860935491856314000750386420082731173581918660805292462970746513210855283905145035503592987154087609629481693221021495237888044862307547220493477512415200293152597411716619049465285394982041156539159284079076681009918797417118093923896439317103637030155742504569857607167881193231245159174977490278283660773457141222603446099736957458204138322399941438611605606168694322942361344199413546057651479756356103209724027954742913402935232116289693828356004967074900387662562599945606493890962882781179449357284470203260616620956618938414893286018720270907985250637575534260654357383026757968609418054066932844019801631598064660685083338635803182207930298438004566849480866393801614743883373162472433809902492278821751078900329436492877531281281211414562408857410247236935041835183562420692984117164584841015265425610052325797329703963232913917898108982672397505722497198783895528740684846855718742695843388007746417055166971172610516190249366312543660480107699409210947781467975256741285353133782903121816562068141435062797743201794693042058731872869233250348695306232832547317871548816631286617120944741660794422051588532187227457635363011403093491884433998206216076978150215755352459521592668537515845201722213810628099662728501574529408033412763949390437884741034876195886744526468885675579019690731947817029100567767346933456951326224978864189978586957583424502409738529382140999141119670979212976880125869339460815548120228130510340426508239753919561808764808786416267771294252615293214871184972928277750445990602316549594609806443634877186872761214039613711814900848168022502697702161533983528603143985441841736969825474364846478287642857039106363267358731238872650471657329409400160907231879046173203271804701380934785132051599974323173336497104893675925315096833169900285243022759951929506474950628869982514841308470131339136565134349566758488093996947892090833887193003607141354417036935035857661934283811342280833718720900684582184711952094231160767682053420418066048272877960286230378185230661619804072974145702942350350305523790974698704812523387131092438275253924459382350903318924892738034504825687426905705221316122735658807919923969720321842556464156285816291694165318404194433796036696185201202606233061131082022059705553752029879708785086185956038244365363803282881869536292169151294172510139712784502921247916555600790912866217240197437360922892304772753435616227154118806960815443974411147144911957731504926781193741680626311201066266329061373767837347360675137422379042010437911489567880444972022305793357853295984936388764562636335398282749755076116812434814225265631199978669735390240654653537561558976914234890604789165236997123321363817551993384199908586080849628958868882394933624773726201459329296071512530513965553238503718854087915309998051281266401588174496796261065091524440816908049153475196505378274933997009344377600632113109189071317732788935992599846286108182298216619642351978371453351507216930139412992855918177303082783654824288683805384208228402539356619897178857216773986981178592057196723583926271316653418175568721125888797119616603885302736748186430520897470643040916269248082864739713687943488295173589994931008460788416244533700084816869819862773269127350758240328342951391473186311311721518341757581536675592506926272747677262108381106227210527870430915288843543955321082806425083184215582218500170515110646731370323483064017157847834740892772780373188628199735370903361420889837665872803786123064346788950401369435939883490274735988240554550194858850742071131513386496975998989795336711680094665333048845793256824093323515341586260669813831863717027954916673183724299303185784112195663389003985698447903321839424664580499815434493594830304184752917657735096581527914164932811074344430152304326266848475431868356078565007671755415454803774648478365865127320498301587494474749145549974330669701047857883918495082140961370235012123276353925736547302494903394519052859778311576035776133661152209885833438088728192965831758800741598839119069109624983880816937951103175496132383685276595425884673569635269932745498455472893330092407607401954402611880472639016416104232215797006612655298595022489658638581066331790108191859757204719170055862023900921200903627766945522482752952044740886944044089101212155626468647780056440683458971903586820012084979833374071148961239104840785966678192098370074826779400657306737499245209808815893381364697784943027613265652934590622129487558383526424715704023678380958912902939902875523822144282348332435509353978713598736592321958169006402442644991732236114002153941274455416430007819956138597814625799394391719691541193562115554507984334382745757908847851314914134537636483286573721520501912856214922857022838647993318561739028300696305578828776438508524800007419956717868971828889026418336974736370963376007892864755965544928351048644878700583898025623761114187475731476092699659494763942584632685421339017788731438629172670657639357833482287436359610383015647552778695846302227801792660637285253126954654684706154348855419944545492529303649134411593379197414992293038569398902725637106203178514089935110929551503616700389974132733153238191080519621879789699823993817326340545574756780971105924728211159292864457660312200369270772904815149137609315763496330183718246153329852986641794661637806662846809484171074284615922812045539021229300902187895885492937701739265295380516879705497100782237369730302886150514230174292077516975978258628829361731062261648588609971640273682222064384310636423536139084216241149290897643896410604524394889452947802019514418171887551058890208193101357478681565348489844870860348493198475066680027541412510414413486138201586968427027802052474046078474256969512657573515154590733586416248146028491540025302917188363252747436653867429665951506674448333734177216572608528680019247191273503933313779203901356833195081959907727791762427881068848332234114571378900634903179305027836674438393202577080189478321650147234535058963148508042524959615522760630303646535219221580110314943147068708962713923540935305477914148645963498241396740830504911007520062807989661937670967217904034927702993772992404888092345862635631423471096342559958796989078442807904330280356602551442027494802191861399017591126530783859255952538469186520403227286879129853367537542882424177538535386403816126982653935565790227659520291113982638858071385872118839930665109804997851221538885671684791391447322643520315043562972935885769173956128833430888797167914954340935472287475265196196198159485677023238558180210800781264723205670693729910197057268523436324710622972115310570061561712382074217883680919099415772188249370786509500944564972627663916510413540224053673271692379286734884286776541074533711163781082338718221824179969279255298758272077962879033768893958196244347040041424636937142017160671749532011637807477305432704833165843579652263782890927143405159040928848259032585719477698489317339625350616421512894863946969326035275108765818372521409797246532260611526987562835443913411770711257086161735653266706230459502242938200105897913836243945141314459066707067320263380706565087425998262004462709524238234329865626651575024111878580095966574683697057189910975262544862825108114946873112619863973128703204669423457472862089018033262763354327042582706396981238768296937817643692161310134480421752529882831183031682843836670824902965244880100603684919563512575835540556054504032718200330184296267293081993346391372593183725859172057757279288378525119683064907609461114352373182677858420293922570177252597558886690173210171031445076903734228736016996022220333809545298538869073594349910826587848892079741678939480056533968368124694195069785061979279840468458153130926152380534833789906542243827840949956763353898504971697752386234472668225060128287474222644255653244952416634405168506000974977795737306715666241362548468740601572295083576458560679099932394366788102746021792759792994659339929621814215098773268623229094566137054210246489479032165805194421092234523669411725650467801211541255549542480668837099747895844003943013525049414856044741236998996969987013646146899216392292221729460939398140601287214083242960025875716634554322191703699685950573779214948401446062181003468713170499178423946481475871652882278691144411182251350792962207361816068112690507781609266731715957388258932231538236570735518443161616056708049426017931449551529081735184684979312720420240179014700741443597647283484140032665841509232902351346117447532269763748844532778632175661321948786418424596976699690093443645844871374558666980881124279217482590675281162248315024582722036779303303575060059215978131162961797502693370867282482660460650439912912144284976028081312074305378261249364075733587215228256853597579851163061625550450761063866267071399371470345240850297823859069423775339672653499911715651371375128338429394648357818383669952400961297689915765456515723988781591302902551961040584364966912576840085359383339575676969280011267126259794270678022213077958413089444272192878328468812728719502279331066960789945783551684717819187456951232721115187222075721695246361868538214006376310357347446739232363677317948658796547253561779817014893785772454454729749568680250541855225566386586906003897371663264833477587229178179520374375725873915147637178732099059195427415656018814463351910555185024605273349513244605496755467212029535369362398586061218168109676248103497272092163077942631012550665896094487294578718985367007971297385121384966011202488661313498752907578883215754067798018112868648486269726771297197878122986517077321671055962485050285103081410281943026633784467815602330533925710679159574873778306732137753505973642285826726995312219611283666162553718281216555583619162641022764003472435488701940644332364623772627948200289832876104006246273374980877047379616120969384846002150793443018001679175958540579960949870374800007122432049372492803555464191868439352035362028160206004796805957714201530880694345786672602477387863997449980144304367141202726779600197528387165787962236179435917535884769955582547426148973679568917482661606400817076660490749228496725818622161580394831175195457027403495398695665166801067818941304688335930377163463325639988247076567281151737805534782476144201839119567971845480246289114436542901878250917330330956897679911385552161317476447342461638977421696000537475949816616041788113547945449355001612111109793018219429119974303331159441070359235490385193020975792218739013130848640070059990508213094553903045175321299859310981440958081582426314319160548642871834273987537532711084675653852481394071251809398543636272889942919598532747379156884618324718570700366789912726367497233243367889091598542810332158843022678908785034700328249205032418049105144850850054969345019728016415777143841673822475140817960945966133341385572641535514190883501628332630587653932070022718618770279718683703008950662383549148918689454949706896509784207423577711359092676778771237891632793996378239400379362214903310685561677669093949044680682206152998668190243804392859202328364049314140856369049492018960772604635050088368686727174616209315041657327514341306416590894538077757506394524734824133349746978501382984492638126003705018862535610507651105259230424557721894335677988575620148723433120816606894811021663839401407167677231448923685801197310891042172992971706680818255026220069323983415887597785977544475407486809989651522184387075019401876130849231798633505540611268946106226524871651898161408449331630912515786277916651873669091810167772672581525687329210546300957119452276979727975060795397564499245302936165684748250759096564251125883557564643408894564563342256948646654636074085245473068206603564515711430010663053084308574207095029708461239607111073103695456632412121848094683390655226166356338485601851002413050947266267292229451004555641181142537565257364580262267598315574695094047757610734740367058925820213718946806919841372747295403134762250655276000866224021490882761910363014502652279364280300503947399133631270404477859168804116677006990987183257461254775016935907444750602618115520258032023737365786797065258830718588672654079549278425674411533657323802504459727290280430655305845049915324463210038583059518487200681796590455359194269279718725090031003386827697621132518310572224984728943007493845787450319750623903302127435646246290811977296769241352668388724830505052071199766107451503884702618409891563772134842317097701978677713974697510861556540144342636605802197292766601003665847716218220792027167502440779602365290490849178032364827174417246449771369581447924033381100433671526742646945100721699507087153911244815188212039474406612957278131506530108976556461041664234981519924228857651411936778958293818562514206366557806720048462823314492143354633125279678754626069014040882511269184980600337025082649155502900471291695545873914287900090613882815734222745553969072147302876567340713166392353124017833718477775257828902527226822429478874070978799413484173051159680550702044726252187131613352981616738099479136804624093799987345142545950937792589217676851740287429290744134020895541587212066569816218362433017091799415028626223035715017428401554889218315690363240504802677311718722505893438237608750363602722490848558751071841723659066380387988758270389257882483675800544938530697362725133395745086988832873775813883652271461216268670855977891044457680649686496743300992570003837882151016078430427781493732851724662869887292600623789184616675419038931067021566812468011864429452726109614597684468542626860522023634168092960647723787040292286576788899226422932270340966854914772079487611497344483741882569794979588493549404653051438298814283564913197523033839755363169695990117056511421297228325619731416382226746858845818880877975600458925657970681093625968263663124223067108862495514646837389017929014521889149509402645591263340681533538141747200876281552722108333536450504133021868780423027713100887639721269936845398236843970337103133976351916124323761674929820980379978967783453992845968647393356604910742098389799756374718611394824422483900507583816913862160474162102424256255026866890034220520015757399461015249871528187443911117396899862607857509945676326763697346181457199425349976913268844294038270380911005000529525405190368170021917140837911648974472454993642204770040074641023007979399471690758390088405788554133196939850258158000349771925965820385471798501173636568430692317994003508033398149669318831165145272638921433422345016658371041942849983122817647981306111820382908251537459725677711745077211985839492105609080112562026540251113760228161664058080661657634911851161211422231883179534908765922895153812094442876813503821284117914688562556804102645324167080902265741067354266894650684222026520057051064268139649261022103522980514437879223591880849995602563576136484100920056577030832931518340659391734566614696090692003760759264303612712753139085154804144282199842944705870891663067470585977612595941042555998628967185202607015133202398666926040499362674060344869150961723548581159150794117832615533595290304212075438951669565488960147132794601171763615648300533150415367236515262269508809585800259478549121473957638839545250661514985609579029072433812906726031310706313578698798934199671137732138466411767075422432975227560593606243391064522727134431728814011281614810530398162937909810421932350333697002126205995039607297256648339744599451436826386293437484409158213147548651767030495115952754501239103794127036507125730168689364931616992025223618015283950556638506808440296540453263401816077118980746618244285989787466868974752379770349610479015812691688999963037024607751916860617744522732027675841132501612073622735588321152175622016239315029555809691991068258394990025085468175669736521570887214462877429283057686281686272044181899726091824709775174545271664204376412835851914105698584623285935959990653040391962434431067408974964401564091620841119137821922535521506631292911663174003743927361029516891535387178674011366563272589122636020466265748989028636237448827965403375458962075797848823236487757403181539193522463462829679865274583600052665288729150460170766071394941693436244189857384329988485384478179165940508041161914217816293721324384186439055339243664268483383315835841169092668900001232881216224966984922492151811209584426695690219028484295060838679403065935286616939037895751809176108815144992435521942882763706898595754756469159240959592857866186103312455524258265592188524646482739246041951067941247240259747508275942346236732499516538489956633911726878914542923501641559005111112868863631236302400866756465945662096832428066357275996731342024835900016472471084318660615430256747386671756889659698693749465786486064087288316666899571659362491438920622576816257351391093585127860389616431188271702491315596082953433397731889331952908258067268791766051171745741951310681478895988896702581867666271698736638409247612313316393420323265720870095922675250659678359318238783919348440325139703000771714413726501003745507952124770774210362751848605822108005942285609038659893293450011905660852627510962139231835260629292391575093732440051228117594114992532998890769682284164476294943140389256712329362342101402836950156519235308778760791508178714551963346500335724656837510916280110545476656035773983127817494937903042155812681086656718343609003868806173825372392318914538619639226882660308916634612911882084081060980221580102712801839402576599629128201217576560566394077435266360249667649357270209630396760665990107989869627596396232746727536930052665958138274265877428555732655558222116158325289175688475920939960440327000975974657302274127985483919517439955603096568201181515561309228746855818454877327818307277884490465687048304282087655788490748079587735956601877021994707027402596280097878656356949747325909266914838956611756776375204886880579575246372570701137919498211146015085111230173732082190904471353835562433054982286760644499453919122675977238210582905296968927626907498167910158605755500406483074113083999848251255554087386650526812482503407615529923805327116688465587986810290204448775004895981022417367464610991699498535648628592358646743493016938349623951380662734646905975785879434354222254962579670165322840184432601452160137571889474570795823976054454200521204230389618197845975110459132794015223933551308356056828940799404312272150927717997170595112988600493360663000513342190453982671322465397614113197666592086318920918262950285870897734239862749132027302631598539556240217481422326440906204057562273911360738084680599827413239253940760416487993725116011984558917996881917877915301142796209548788720387520627595398795627709039631287748133397759476483571272630264723371778550491779947633735414242018219227394414987608712656899519135895291072017493855045866393331138197837086471579237711795342319662830289187274385225533104360091264100443252200763739679853956213454698734306010382803480453894837772653186240989074582423742172638484631539452784921750649448743643462505408734312959593634917060695466563012762200841479430487438865681892649473805888315315964156631766138717177453211969730747455982369094635285218849696924835441135770067930443184071658233229842846189948977738703536472061287019016322318552624786890933719791405728847698971788732258187796073818720386709045619385994636223039505835716672574068841184822416239775609412990648682670358619839869800992984956502364607409418733392986464783580037338217597427221993484241501467138863928518015597916017388401129333115105685084098781863684336107600284124961188835752562809099895419665970952663513519345749190845722299055623671439422913195186855014542840091413187470669927078767065848651399453482988932781636685504647466004801352349729384886928129481789190271702420697186686689780736131367892879964360200186126544202923944096175455980432921794675036634047795651824224377158910819368463463850455538599896597665086218475720989332922868225013263683806328785486156833042030040172576187702089412390220066452082135318851370666611433671812295669648421674085910745544974172889848572138485449751517603295712541413830103085891935687342455140762712693246753745644102855653651285091461615804474272891569994383878495245425707781259485460424154508201686920419693298409273737623509022115778387063898976607582500739407754006110018161441539216527644210592751785885966367892780769401008422974594475509236192132817356052368710985242538642125411507854074353142252814605303867767742005254134497165428617222519420550233198183641677444973200553449137140143037410305161753829039447113906884132623901492207142405991223845859390449098192401629155953826215407474913446248874209786813804252724265888340790245745021499466022215202549347456434159091341005591571068214787666480378225354823773725062479629826482806023853804272566458786600900641975315323111076179613782404892814583472284789774165295360281803975252535404171366066721886788651087986561285745218893961822575424409143844713582827036913373874855277779806077887173620134874499989965361315253641941099636631197191802896332877542674227083840681483362220666635561555381115056064745430944246263602494394747644786994773270697276908440003757381926897578069911611031415807770504211213076785195576190884171927174499731866874740129074901712885331188071150333840886792698158724565623569339186095744043018365481431392618807673532549533498887259906528589773952950871452675758505342033305271160531285718752571344887133494761197394834614003138486086636148635320880925640215349411748326450063834246335104782006064553530391861785515089378883439699412211754388049936981421010704655400954358756471265252370543813265729306224476780899151319195892228984473637363318970086075577312243178473025970069366507495133872498894078366386447201015592471255482543960700641572173880218386711761036998955484094405234624153235322216750479044131740939874081709672740873768485023523368459743130290833642458887409504920200865974235666877737595904679317774476764167076379264638584594994523478316386920530443263695668850740984931986573614510030279823152050287176331326954033320469925464836600316240275834366582330587809664105748827198289083913473108901407514160150593131176851188283831531327213539841945487400719398064319914387037064785197073863933825406314149329517479922818825440463118298044301389016073295758041568107279031435402376808703829265184251285411421529723359779844375154897647331792953568424338712366799880520604470412921770780822521589893472318048637080463617472970240993245179274730228324630331377345822253431758133592822484892501813558913882273874074908682010496637788261495545679042362231049929418864561548270542193171069125065050936849059620180810262851393112533341132629033569118615082635736755158640151041778631730284135820767364015375576047604921083482225945131575176011814982853073110475671578696981787875111088985174108819216314819038403726998505463595155746617543493462211279931020741774158237447380909240063327066892234202293809680258230746139985952363257768655744983800942936178742308989269473016374188196889042696348085513618110925590193065469858528633280080662544115876211830241600986065566590983945079085507110646456101910282352275533053915159913114601512061906232499420059384276890544514128782717992661356476119083634331900718066321209123883141431294560201773715321778184711507194096923042667601531248523281229881270713202490366913336258897967656188988710447627942482073802195206659460121679134126344825597801978530694390245754207105140055903935407155662548305660486171016685662844161683630749939051191569668247349673724433367336226445114430099014152264016935179521301663713391776422294230918066897546336770981255388232932601538698463503649667001388953639638944898082880875842281137880647583166658175665332789323988884451947693280601219688152848601472123950367629561785933170392868331521550324315931848714229747784460833671458287937714608261955888714264521047874665041848488386252380895104217002646514261844277031140916259037402850086960945960889984909473275729789134136019081582387576657014582999113086366468568970535093128668728898426275755435344800447629393097275107215160168757031624951064108501754559610227365810565547027064989952108322377943819355005995347607850426930414056504162514932310743979358337785941352278136836737019740954235125999492970928326683677808078776795204286279239724626744522376534658395909433624066542269748494615113844750143406095424382616235052630776667854319872586733992302324916856731605263428115306309889113082899096970089664201763356282554042513334421298137744062711297431695863875890335214482852787357894340457046334571976180628506055464031116056271489301323973614137223209403876793925198793791373408268027814796479587880583871360172387375391522032943645249699692904742425373058983866699473076946792882316455788543346423116104477054538617166766529649846909614231821609298785400896849371791431554148837598035986815685159250232165401351254244813445782419464781691564726795629605936544176694245299766977740234377915914711915001411404011085192775020892177867420784178580333997876426766522385929841685054225294213180102040947831554312232478940829459874077559016397603699472608817778300453109839509302611275739637370903095068012521279766233088500220257267066560645103058456068017421098233150121450283185586882368833471189055615993444842993873411958875538504022276940291618049865236169704757418432911951892498676073780014164346945053357156854387467064680115662862863278490384284463925512945235996611768896149419114079040458703884402960108155673002004388716949270929410014929044953829867328306574771104235897900289954751761834693964964043376964249362169554959377155491494063449484208027572982484014289471342057980586594027620986323861519727807314056895914973012928682712329211473658377682465532641109672681463641597154860086983459868002489183277683796478674148194866289262168952631541759053695404586476635619812309481423513586897475203310496849781738388583807778084213143774631019482055990324165557562195418691793084573780338727697207327822649642101303399229918505255526511927316943306076374496616574621506599165057643501456405661731981827412118862661161703918471670322686554630990256451367974844684950510699714991776955314533416648036091717930711184531318488933746676431685424423260247503634690639520014183894563455885564611314687816570069618146666277318540115938423292146840686297474210262713254666209513595559194362365902658692597089771443817857889334344203694991223530006655626421947723087748955047686884729140058579594681232454405874414670577746509342767826454340579892930994202067546128056234483352258272583721527773111716269693337349590094407133107478336979596201089323707358382415717455139223268817541170580087211089947259983102907337325109280069060291340187460998126472909943676047485227755392540382573690553579348297561533765087528589614292136759029475733772405102007408430382612272738403329196398003019267147687443739226987102945789331132483755725849014292088401123496908371901355368746950296906895686415649836120518650114618076717315165944063925081006203508750395322850766175620520189024846775156956575167100407063806358371359421268383586020328145268163521902559672715775063811185297398225877441266058515163637708344159659586918868835824066196128799575751276415198133571174384712396390799532761011768424994764380882301937774514670992250972242876891668506017648071420432384233728724695710255733564407023585196180251240216542509748643293834721848369324057225671796338257748270692726158206579970095710359278748478476515255711370130023622232893623110545275022190076121843295629112946408524156508680527746140115154012418536661545448958838957752767124550365197897430947407710182817199848036471409469957641499985643686477683265504040110361554398936591237275517568214671918492877483916801518388981005680182965553357883686546689111189808179329991963989983342953686651516902940934681884045929795310638475321489291381621739697999719399749137791345185018353531028524508713997611891591187043280649844798028992365916399182321284968825283867460298035920644840347032778923417221920465330049098696981807142123061253506001657484295557303271134331360870031781904578362220648305439124434782935815244492886424246367214112398179541056443978175427066145461526012161014653187174186759498889495698841502812647899565765828023947701030528324681890456487302653163172663223950282860998666995488597523810932927518882507093444400316471405370784560009739222071678248886375619359342437649890882249689302625044999207350022006706536001149675124741066118962170793837663327221890828004044423138726228720669859568690420712744290071994603000717004877433629670609254878537098564177590816357436741111781915646135739835543445455648005000980866194398078886439843549706760010122600699710156743833354374291727912699731900487252006130518054806629041563171850535187211726270783277243223240909445919039937480212305135311026700489744412560688691537486207839500582275919247668978339289918321264429860633991863946332384629844836226073596430239246404022702244667586658407552003723663239717679823466910663903586981146214096603709119521843133331101355022371947702842696641672051329903187101147825096544822058840625286657766839434541328586744504257496064561942272902343511297710323429333285490779149154792262336038827020903483805493210802708882493863740814735625555862335033526176752164209424854124402885011803931851470569431262210464330389774730922450734500015908295637691169273371198369530580047991808932743233666206651134858588403041804348400034397339735730679120003429844945922553116762150672532401202892479636760513064206298038693315133723189576242140660439518280066545012266081159722483989861335807952868050309032211118177259547426114048901250877471491623824239459516591061293897880025218630638703541718016989891811523523147971459301168737808223237265925911952207185932177151781510692274216974380348462185598175676392415946835950095299469998836810106190572363587185555112334156652256419366968714263995339511438518133734244801584536029153219497585155793889566184206327281890297495669821715395862675083142767896550352496571963194858838771117335008080500622060065832792586892803568362827268698299361976722856379363538849971864595180571508870026643304928790041398943894045462061493913704950687817848162658505845082482057559554826026470119764379007960759916830528481910398910664291987862301509792942270263930611470012980122156882585760740318819168381185879936400403875714483516244505962102558720566884258287316298727206953600507351863747795582679033691975073992516004871779735314272545005678177292167588997886648985442860893598203374823803330858755479500687640099802892676797551112799394884567513802782373981886696857252821799432692182108617821047502931596587580660317143867586888679776904238163232772695743168487585574677816418374764039922368677214252703362145629850689660514401624353436435527714952470266763391860673866414039398313119441164497202802812241294602679042708395777742440593970890727527498960242722231191993243065800150046512341158414407748374711633523867898915867127930489981964937308085956728080292244759799203074005043337907780618568065087395240270200267617650226440879051827750302313237746097246823667369896634117232133304025283369449162128744811977405072018038189714506689996114598895113731884446549980481153100198989208825276766761781177064766066146028197015688934796276598408717802448448144447564235358310210645938217481003463023351409777861656221609833909292792331308998180183819094133729369400607508697763281242830863947896298278358684190888986621555995048383246046876580834459064543436073364697134403290130889467202324316787952679322001194276389495159725801651062851039417117409800062164572231959250933547964245944718610329438472875560615700755012213280010312829034293260038982384080361391054407383444298010312229626279616240298870095355917062402541693917773058511503098760405227478162711261390926331215609813134371975583571304967008273956324434159189772441898840432060751078896922582098802604190828150665438290876064768880832509490960658025737947600849041169632448948289020018498900554473070250685201334787529243196003487913997689845349208236592655202136609045827851490648022435589033339619877110764426201042023718110906586616263327150854469281103599035058713766212196128748670518526479685522549755442670550341930741839739920933526081210130281695653947840055206543072385058237084855661575493217779581183037685813060436141258719034690374418992662048917699472880243642003238519777426515513755635706419034450792477451604978801821052899975010448405089075561188439397092806331608279370599836391158080420788256560521560672292091178815157065282804296845240982510481016574540458753372392096902599665817271958870957228246727474515482453414705510121780403978463873920859499913706190239740843412756802729806699758094722879066044449107232719077644184362950516810782378993758157062395679496178366385001931807509185881391887284640789107949546621348414790502760731038253024315291950064233034940744712452354879992149466551315668085268339240092673968253195209458506197154263367028827297942021239350932651877365781782981568420962688956589268702700789656593017139272523949095353366221642968169439877400281164301517890508169026756361605605130874124933783034825618765156117338943728745917377537216323315844577228874780922084785544305893893515229988269264590597244589798451777343539636016537420280604180478118725294162398655494146826148799382565695710265229991062324615312251588118108523783159450935241608573590218526226915051574778904168428030487410826156441486040587399775162006390688079146929868895197731695677525159103320383146442039403476113104397823093275402678182297962283191874521489297468804207426652876573005539449288386352669487088020684324321989860060116047305904684351209282501530901255697018581228612574927769058137029100993927643530324870293260327668509434816195016859610301446488234110815538052588606228861386159040237626743061663678754235483659071938856983373704569412726222870096185186964305260894538408066815795649742574237163564457636153027782589163881339437116505710375095113481468074935653703429854910564453520491079623356747462486562080767655533121113686282168312551087980162911313419335008502617132116134533692075326361328534966778944575541234818991746843772042489523805676059959865179209647635415509131267862850096331354628252055016465514993895264530502780230417125730521735419952752618918687496854522134727016578227711640015180581462040320050097007238383646315849377945440506139256591406068117686952288591724329655485101983767808139988750139369757120301877568280380001720629544954195081207104485461266787916283055062849730696229157716349825728561343095650610159449321957906385848598792200298589252379740526685955414874858293718767446820903428159941472961498488649076925295069180727361229876974855802494565929944794314371714371398096671965542193640694987097401783642100634906666496931094384238296714084635829453800407524665511618644138915812910493233793334982895914199668133652428988690929911849093124228499142941143604398635135266362787300803741349191216352559223704480027291159768387862869704816631631245680650094467552277379933121912188076300547575404625833357889040377212403961157605161737475395152261264359346101928536871003399121332727839869440087202746538161884884642692262747005327560706532162870080270913092070305475688339001042474711511123517460249097617563109560378265174805502963596331056021497330227101715396027384578574960639449708934250330091272661830912048396884723492793107214184936063969335590911389262857927756911428013926902594600860754736766628813630211468532149600104984574412349200222355464851513800354053788701110959026234203343293639963947166863156256132497491860488993544519316899674677810114175307583922826851427960539470632923883723897560613039870541196260037594301519892927524777014203456331195325109018916769007970968576677123754924641960839713772921261990311173804361821117241221824384100006445320769370654834280186428367821815269247405330730497091010623796843163051593489026971345459589603479510432671707759230394409568465903713330070928508175341230099371474155270574481369633512671968098693997023695685107234047188976081149977876767562930631688044436783772405669921503528213436469329956529349076338919402123017748877834502029834302127125770020894564629254867052261783960505269156476818407863321354811855243819068606615068854956779302828612588213680518323663491303894730284449060047431345479123946296889245244112143387533648667103541211779933809761422648493927737804941871746549833068689327129175542770143849372282262501429747208068372869972846649183850510253819443785665208869366921768385981722792673234496882002801624233886448016092088043215485429478417827225061793132578612330199389040774980883104601794713855483012597810292838036293897297969109964499049287613738338791035710057479971884984110887629844215489240104269207583409140257177009592997962450504387966554294582845202488397612291291667113698936598373710366840707476367383797025271559967639742400871825424878563221030943214617772184517839060815221502121154426275445141381682365105330633988012326733755518625779046477620966585448370624880168532991361218978995292826752612048356063973607902669369927845603577393645867501562654205482857936144159052182210388407210790253834515648391893887518541173438070954871280475415160275455279604924521128365088329174592952721443368903983988257491069886135513698817854262105813420804480104452413035509141766997362131855663422225627201957948629728766978914198393853294841048341366199811197072181447659014598649514679293290217752793570006666902774642997482677971466027777306084458847345275626738263139839248567628603455646711645807540611542363354758098392409058961425004417867399739479234818499663751465176501919894723024042883840972138382809201584958065873530398024303329530437649779199995094574926420675034870887070060612635464741149345558818587461779883228667446760253989906802729518103093034324762357606553626142415369237137687622037933842762631532219412623773648234410981437737316446979788096298059955543247810100510605164137162487082495763106718688039807031446107476094218769210440770362125434545828359960573126431824094147486159193143044236457473622102221432460715372253345105165230499324183179286932715641945232432721814404900572944820137988526212129654154863782474775675363084134855636314407072052504232907979479626779961698199402677235912055271229334233331546731923386202478552297843621790859227860456666610797878508781649716245388441159829578689388786328595440110393391929044174047713380864237482163483973919966570695596117752307738268876775627851585806199172109173089645259332517753278509108319890196792622652510417850879994032990070470757765376698014369651143829100304570047750771391282295414349880207904861110094976899384406140520027550293775570056463710236082322144774715572832202747556710053631869001714302332318891380134600395001181222364493545066209174759008528364239696514234031498753401384776997654369099206870001031958245352504381184840719972447215524219216807856368638472166427449065668980561871373266522320137296233971242501787543528014413028291425133936162146441173189467703385446282485958849407713876236538724935233474358654816950758686312740026911241579557626859112891718128291714929482500709343790675680030661161185080952622813449552773695890960381977407332270216414397156613220626578063862778041708248221620221230285532953657702980020291827202598651008268463480200208190677876872484192190279551480224168964536812874984938475073445843917474806674857986859884374756152220409654011460897531393472334398401601563732623734154651785368419681530309137285708580719534237501633357921570451757024443260328576058874196592764968939731196136109507378832001330707052307284328684783359341035278599902802708551154486172750400452877755613284785320821084919855931445260727661276007626085936804774664122901913815193543856600898221220385390886785948914837867563837797281598301569666377325891101949886208509218108702058645362684726803913568361737349068071628737861679279866223946622011476136182377562600126873142197994301353451685512822955835517183924550869658141577105655854070067020773806327803343508898364100680169262491127146111134506602381042143452070368367552870340527070272829897486618339516802213237409060057004196910392180662360659925320688717647402807109340721558561769329289761831600643654347950616831390552724163337763850535798315684320437690188078007736587394676610344454929795566514792839612953144235791141183920102307411270239359247253991976556980770739543999521829414338834568336198413350403167169066354523872667204666766236646777183182056452330624880666092486442453070236201801329452615131486615873951936212682019572876822884268345064570846856008701492778796611524837139350019346369543638653995437847128254772101296188695472596884798683431343400937195111814854154135594468521784547430215940139416200197815824763041403697267309225337532182355765105245140911878767958748513671803280757441104676311591887241555509851597754503202991526429492222198753145779439478639696896862271151269443369879542859258119548119197129260147810543052223227645551225431140008443390850479903032548370153029327156974960672846088401226097800613506052174393941188085344311619304767928067954377695424113106316150513569691323438670224620927399978664487419221242852470278465566029970777802674582043049546186943497283451862522796392218725770873291982879741622393417283766753334564520469511424737388163943519809282905830076799813789158219497490900651994102569427451262778289425063639066793518006709664319880349772262583298819149869547308364008039812468091800852766883839125693681000570518778976769363889928541497680811592839677779590918014927487192319943233715541764882341071285910334714390945452656765851360599903741049786883391778584664101352753069937899740984027146098419373401441389603948084682040824848251532235016153994998383451410465413206314921043856979446133032492316073841416572027322888122532844339231504128747299617610494463723633993383807676504092168183374302458736084428619521157624356165164736591607695970723630455086582985885885324112591775792109894509254348944425661879515633220580163113151568181655196438154035890549407889739787068177279108577822178876774652883605753466636361805905064556962441784126519858837017678311499083338847614221744366725111867950468191858355870120139518718220269759076518490285697243498939281926723475631255501422445958765502752446504521057256152947926802032951780878452849608297743522304638689321692396058253694185536405482188593969612008148814530777788613365799470379593724391066213381931393803574148366748399243081403680182665302733611677107667602322428948346266127014965524314619365684471419275465045140064927110763255706471373916831791505669858148414009212517877700266934621832392979349631754421738974345173863456011859014844606659767563504337921838226545001625916983789395369826510000384270164531891372007983927377312117663210888255654507320571889951746761271713085683596458362644747026622911776109003069127496634824521023000104411499557507564002597366944494268355330979724887274468049293575443215280746873701075385224263092892834234561795604885603967847207023023459104866157411991621051499995987319022950264119337735837275400402833528560796146229716122376623739956229921099340336768714778804524843095601714600394340476119301761634544186587580417648488607662134478769072518640973481077340038264968089200695024795469438545268623235704269230225595484596927471007316111579970312871175892088029858457439762417208492023830390515505213579259805686425167245123265300449417220313965434939676644440228071162501445492112634457470201663117864396709671951957584809162532936230752056814971313400328982713212669118926500152163162301341302720121629860659624639097431692952431487567998860603074001591595032143534670905498346869551168848174564317043081814078232994489813942392657206930534245599636363648528737113054740200568746973610518279501917201532725099885384892420546720327601567798518580013754422523681590634658721086131530369635581049362669688256280887040710021660910139850223774050507889083041398215045094562944303213400872262205759700490487101771782795545351534528799328510402954615036447102907010979404654782300943177837897469748343418507191890050218698288310717093231708697513387771531241702335891982967344383961819370261611495425093047390021252346944725710816607720742958463671903006231624468303974267015499989634403589267043901220240968395974349230696845834561957066228642145947797845281699675393025064131029915300765900384239038181863478785131767112418278160380395671395255527480612169712620927579382659994328825697575098226065462608492729218800989385776289820569315860258073348319344645885962479071473785740755296221023574286299655379917050747440518076659192851630669120229474242710776875778163064279079816298130832586458589346857543982548830287801803893215574375651720815441022411900136035122111294308549255361929155246762184892820187363443797835603908965362101117276356778637596635743308251048814638469895457783314519152337383242022473516829677081183242229992395883738779948090023469390894169598473075117377533612231210074225729185837730696174718705633868095808252600062184084507559006067632277910492995555640757632998900149253304825282371566400891363195050550041467965507031023387460745323203028566071225714935039858106508708899202330302508263688464471886017546708039191603167699894579017414411128200254353021818362352115430496025563022900098642866969368389237628311939901865710340709486480328921378161157707572142837988106346269933649100133663735586598612462886533599307211285529354917199558647905162612974440985213229168045802099114752402281288193289771418268347702572178043383786030471929350596289173114746932341401495836198004812261853034257913723332451320671617517494705114852145218656099624122556383254755717076527136264785047141784247592781369699294317681700250561659752692113411896394029801249607209176682960685090361773513910314952072675084496018959868007937148051985619365539355527463760932921046488177400727871142501392750060704074250917715522177229783387397154141259537208819189629471273404533909507409140353550084837165069880241233576090384778478772186951004207854889650938504480122375719881861137391155296764838289646933067506071839495641792294497617119201129994860997361036232528575027668249819410340557978978001837146545890807025278061680451557371266039336608021893809698514236215523618762563855325921602980709553063593462500769776758542566053294883380332291026188365703537796613397081406812648624764966433485670737984179360979404047475441473952308438131189177192359302831747150187315671677765000698010728822994138049210898329552242557026316705318325548172165760090078186532272601494806979890836267459826491522538856700731054401666486406778403076819153689824782356497938742009506627677375915302956503532652816966440460227754163857469054396833854965601776606424196669044874201909321005084975852810610376973844751125721656619936507353804395085996827207538091649782383215703463345838299215621584805401509782703861494175511238299832148908974422374490852700989551435218317913198055916328936521893604863883553717591886618829147124536866619537894350309375458322847643905617980355212253993402612690673855263018250815130970985188589297236542248650642389215995156349215975700504182110265659666176515797124817512783322255336026581802575770102072751776431660934484631795547335067124871198420201820040776350204219932968264457610322617244713784541476579535904934226322477576232885704713261157389176319100333071725955588646741920579505642813651792701847216339978231475953238167620165277311589985897100333338213391865512879988424878209318582025754465696164075674652135817836118012715487224344001315111211933420415040586787558356307517439957638296212909160810250399764353867376539949619148059945788509800717043594419471989720827269852298823847603049660573709720393810754757512639774180142318952752969125069589142554908853589569191294750088372672998871232852085134450464716489701208223839168921704709360865353109337882679761990592361556047597252596208130903135469960128994135161289614166088961551767391775206557487016910228693377533355152958281789642728917173283252758437831826445479881094328134416966515955525890029081639790126153688616418943518730201045680002414641237239312173392526724138448933312441340127569026907734493056356282247518476722056470328563408592680539058952651817126975772841342195094704051638753927517553361535497347047433436107966477238681869523979663641190417222945774778908127407736906791147289212149863940994646179929014976447122618004661840023130137409501206610894532420627204674211083585644613303227487297051977844909352998945895184765707019953833434211130159134617730658726689101273545463368836690664193208731988332247568278142374791727543533471139328701288815112620130112301882078999329080935073716703391113376664664451195740588210597185603314779739056050036018958616140322189684273419498831263172321884383881431763777483673628059456623471803590252088323121611957158817008060114233177338590019133281175296986590688075168037212188723561020831462710570210122762883248455010471180178887923733162288553266699194527365096267311867124113570036196227026573385022378660813534221678068592255886990915294895723327752070779221178103072143246787889891483843711858737492088073367383157944143865338402016923905578555301850723841513231722864219699795040962508455709419872642270316884307315919306703612865593809629302583097194621484214474946791361897981005934509789551293801450419010503389143159837940015032683629734096546222760920646300038372208112527469508793950144124618728041541949770857349063102497250573378282213336758370518658700486345757523464461215273759390825550394825878579759467433396143964717739116520534843214708978789943019932124857361872360132631805949084112636821466763162013105247216999549740591578914319509998803807086305040610002032974047954844274769970190242778632628025779753102432051703870815941204072117498192165802007855419675694992759151064213011395451682925459548463965847891689624523331471568882790613183183010039774743590119991444342220055587937297229522333714994586315914576957184697426387077719289019856614462966241206148472469699736311446016087586264457863818597861146335997753914980271991408956897467783434906304401482718553767633274173243501376883782043487924250704255338668513497269961225846404846712093290074793842324559796965460569071076601567292831767934150580344061376169425361466937372673084651717598011085075133813606330141419841623067363176025031386271314123233330094045572263632976001060694864561061970343279612808509765480839136787232234363759828151712846298350799719876646470894141314728484219428923553716627980703083775431022159767603829210261400700330537755454291982185591213372627233741453477777399769594585719252001752074428512092690312069153849572988490179233875228780172314935554566095771533740817204388758733713255244567854840593906414972726624249202268735419850885978471089756531949736597307127929090248316944588349934970526876828632096150002762820413221392856705210200598021276705019793978614301847820102832606093462550909799929558941651571501264799497364245468910374225158234308246826507650195033037958421368903200518886344113211791878187507712199128971050033000684312960816717254855792354201300381805603595959467492163935137907783797177773930236621242262241543929260232189052823597682109233373061926610689597729729290982170415981491396197799527522287738875077428037334427893488773824128344625127147370079364753619017021360724493570435817596628810698545118941504323876242388761067194990348370020430557303533901894016749895595640659734266737263120827292712204241177408428667882915432079179346183586746117697343729218872878100666372572449928240391675279479676955785393599701029369090644557162105781893145343695094069686878334217701961673141600637367633218090386856381042205681772794520423984120982168628653153946082924917939613770769191197721644394517995034331580130631828316784126884866695530442870407423082179954247105911982818565970211531250814338764049599664642432533026111568876833032033424115235069313790792902175105973252138964626986935523383810808600760748948574298243715955810989277337275821670741671015225942638120524590060349177849795489472623149264346991980673980375201154818127787733692744437908996413196783675140717660415421626404313754660127153457678980881091462420112824042135779893404053690128849919048567528192939854805288882686265837357859414321059439715362357339787187892449771765095128443334519649238813465589056908004084548991394912115881377097001272058741077177656266761769332640178003672995683189165137899755238196026815463891852405594696713177435821405751845861704298174024220007682167118877577599941027848687624441278729739518837802743757238174151641188151133831011181710284305019592736012775556170061584909799707586715933080625975548985939702303472725171195769696090261775562098141262528564232838683307845663761506117876453065860590713685779784773263895459133516378053125809013567159010039627633602563743411760623488686731397555943074876917169448247087051893074051193373451079259360723817184755381295489860811209952141245419346113566102273259338049882271299187337795897031144241828306311687789172149215249165399371368975516082971028712720359698527148521141744826550571292949700466342354577021705727217751879097511207958056824648736474003399151792223336487364521045835496478915017797931497757962548879815347862954645512426222159229147687210028075334246946364841694734038394939439720211728618120525888045054786525787900460753975284848889748508722474929727331918889975910214732902919336191630500291936906295486546425845557948935498754121373899771683912287643489806493908137752304265150170913410098013571681732428034247954838484151310441918529824736306461565515690915343465846760276703720694082367786688164511727100590708370829090460919135627780722429442338014889560615503440238862419154598905774343225422310712377474568581466361701449400220702339439234451005675194511950766965813027560194972727030203965338135653839550147201988637537466236903514142229642035845570447841864154239411850907814638317921893090455958274182675736895660686144606795166974561056399436509972469538747187620027653092662813884000693876872996234586249880151517133085772375300313043697391429538582038204248734017787784190169842472215455742247048640827672084839221513411763240229936261948468933693966564490660217655831021031848274778900280724038761608048197002257796967912903878908343080049853887171682945332146229678185809039763953833255578109444468449784446279791956899173374416651312088040376761845085250895142841296285316423999344330868719817406251709779962002171634825107762659619284981334522134794036235516804451244517597223643914786454738933166220367555366177923010381825292837279933827697375309642785726794583721168031209193296300425031528561535055543668229313969081301946781859025045162817436095150364108056564429802353997215849532527807098216878096838188613964669227661039209276318120511379579106815273836775445665321628792721847640516310181375029513857424348642041084478242980337251342635475233665351830003395654177719615463607999373022937193530871471445906204820005415341119751692551048446474875117886290818237125678654050481638136931412062673624402548547954804612451324697637999475035798156060988970375193746855696069041807785783874822512489844954625081612604244029534359294828806767297963045986260626807649809674619572243667382902861155451280641501625376018876178827077712160676727218655735796725110674429066355327851559134745033930938510219689891607626111184949489146838330755130711187534646921887839983869502438158683151730872633090847865300703281248189055846285925428259527553031396549498565056472346821968322850930377488710188813196567394772921815737208763106575371597648462208141391281200111433272275362198209438816598997259462049940246280941150780293943101357599543117660839957602076681772794573927651402409206622328029424840854990456151388219747783198140662366105986479737689148368065013365768585195343255720336928401234620813220844722416489604309917745556252796021450493570778079623762462930093701995465429549301069992441021388006874204526299125402713488162799508601573855749732068618926218676195408291440148921338838762962737208214919453777765318516136859887248778189767067298679907206503479360125080393692134542243769552172156809954637376380999761640436063357030477052782990414672940560043176041367075000413057867472396320407646201912919227869402717574095174811508686900746106863101122381982285720531803586326807344317634147828010431259120296343032044057117696954836585251023656346734829764703449872281686913936759388425175253006249273080831664121450148355421013465821211004765922775424640982596923122950195218476631984078804439520558346584463240346578588325390134073541618864309823538993047006099680855251137359739478171321188945816737420743461903984763177476555180776392232689872684903321973551308690593946905223203262941115472289877803302172634723850234365609508735084206074828156658532509538898707688253199546182636197887600784621648131916641027051486560884997035237510288001721392339676701570619932134882386649195034573111241605783382023647971727858041233567343645435591596656984087743743947912846669549283972760808801687578080699717887840252928793926185974887942134979553042224954600726682092662517054803072544414424656883085984424620903530835653204536878765333058712387240842394314095221382417741876660815754856285190432583715533301215639504289410687637911288986619333197917131693215454002463946969031652968127759728951965062268050341190431796549263123859106504796664741871866769701548393809879043933735772313488383318454138000543497243457021434766830228060261999679088369683858726718347695318857317101944003714940731387663558712850314972574657645951931550320975466536648882778868392741875434990537598828345405695150464120346107500856844746590244667572762685290923553744169040350843797218356484264295991845419667702723463482578390391814846544932010638145165997822990380909726116145504510561018236715937667610773635019522714887902632655638559824401155683409731091567358104218756871174984100812046278353137999003967496576836322206363594117852723828492696279969012370571000158973419632046436347955772995054651631863219900412542223506673056845899749235358767350035282998505968247026386982565379569845844575647338717445009774769647004850678738261370711808904043791151067356570341197027734074817965455857043374793903511142417603936506349526590249948301217007604820587573380886772943033499672115618344403553094088711788667162918624931593716351034826988335642944855601652091252210125730971880701195993354237979500700598913629510381444650643553259626587060178150077255704743231777610715613372942359134374705643197807929667763339352319808010204007022650663357068910491391533773546880899612048390890132890021347896745601745406641635657535741845364679779757417765373589992211061766895169329277223977503402478783710638562248759399341133334365401191068501208362074270740075431560608498335777499418882191977903136660253406637402422238991645475861519752541953908677038133926605034429241293618336159477514602417869185239888435912844052541184142631110213594501224291517644614885818435702208390316214015776755897316551576840927636707836310755785487991623886421201003984260829859715547322298060340896571365911957610688202702660134819055229119346231969058608931722528052008056988794370689417354549445895653141636608808141391816988977803215957716603442477303410786141345698030879090231059288125229629606863279769618488955770828855225999739700225647851608955798932936805081981810716410430708214635615374273762567181851155863629490898210199026962783569266422334817292200579872329564539287581218110974617999061779451604908425269110735399999192273535789204893309443021327844333234125314317012319359822797641037891048411456101481788960424859265852267380256336275933535961865605527302351880562280949529940617275718862854412468990593710657247778986639675040297194164444117811620404980729380022839887198639521469619408610535483075686035225422942997447438694643757034982966679446489219623132272268300411799889184378175258354005545513915654442266872601765128305958285564263047587372951280095825324575245785440662747414233321113877740251953561565195501523976604376345651874053736933721578487941459535008279304396220987297075514545068146273650419545633867901442282109181581724521655908101710317851504944984387053079243659192742668566274374618753986666293456814447176438122004745722383187613019657880742815760066155120134615215926467120431285290176814886499623225167775454097314946931287008297223243363081029967744304200840414908663707683144503240360159372591699976942422940790140065654420060757359750974309026870652875242075486305664138954479963227087882724111727983294350964948840795933641001270853579168944773960070478407677111163450023696377670921560056662646599124405186302152820828707678974008668457091612508837441596899283478105225964074658113516501499109810023802384646512736543512686625835596684494012802584093550650914942575931332901063256766061502194359178209018440955088302026239160768696640125518249548347440324151532009050904641928240523404061139483628762881785929058055946529789345718811203664263509716018186467267078224950229359986577141694076013572297818807858011150866931605968898230267355900667280132647895914621835520821927891495412864115051814454962232907195651924473689718635437534616718826225398122723675527748873470822333879045446883030201878851298966908405252682344282564243103021452917393642758502506428787329437307313803955068520021175607349771005689373210235232995323391981152829182155754078822495241344433900095623387187956809886614215900608595035245419878868629157098323019341437357796641319620037604214628223881235395204085086213378549127408121128392734271726939187857227143206265375562399222882653140168930527183718534527738614443948323340383317829057410981313960644775726995992849024285312862085671637966657335310861048124241995862413646920787451903205782132275801017330560227087799974819962085175452885131033846520602306821211311411874620820973222187558059090196658111129466899157361667343872456782929705074818684904429420470731845795713655154737054759529304719762856098174824212792687896018340526373447706039949574920641799431051813991083152010699127812822274667231463579159734182516105510694233849397219474527428319146547310887493395792698129241346790978331545851882807475619315750959443229541741987269816006776367189514440756397816681862990091033896983970226282087426148489529150637730191612091390784491647921389770259639279453693509115787964660311627001719483333898107567138529722261002645935855884186269757873414051044552853940928621064509895402653042846378722029659905489333065133078357284539045643368568154890066736457116893224860964471654375890275405694200975446539451773910891351841360567256260581551811489260164266673574786270622048682891359147607203178916876410650770617239027852000016794598152146147623651742343630183448877361732799129043547263426702435752445109555961465921867534658563455432061118669036304258326045866820393039432902894285664204062316422533422954308495712632448937091214530183147220779817886295750609208107621000897914764303791639213962137651839078188224793009045014745081498921053993269934315780604489516474636229903146419465583259861584759462539489977360386479528864549076967461382320206624404146116804354378718572952267739288355842195042535980090112537920146985875115800980164273902765398240808903671024638706007214147308781127150832175424011688873109576728822995805033371694137524386849722104630401077002481731980615828252199837131311338010353995756863758407339681309716030009412719414127090348927741975404247942338267043894066186360657851914050820995534384197725941947440244187105637935472976254562863386852297466034841937919160307951121432014541674071606167733068221951311535964738697146722304554128174945909156471369460421082901106874464533218179280030001579254629869042062066888160957040483620471582711894537903817886034840633863246746056270266891154126308860877184443315792007025669406034165055770248344339754925628293495004568164153589746441516545339541984015774706641340427177954121425237508144116130449480525645189327534740866083816141066282627933754653405968046282362341983426517316522710557870538080568961319449596596236340050652312000118671695097621368724321022795914185410522384639390530449390509661331181282085431999803858772430845487507763829544628063630027791187765149051500633115235115354669839043474969370347469117804882547739861621168556589801038771922114506362692310956876401575699493700019799505953056375173392113618482077023566238984351805875845821691568508664516209013515611927924882402394068339928841193505987218976389380809598281776423989140279620248718143119223272173916995974775048543739155004336414325964294251193672958610402056584259878128575623121417479670212165073753322015093979447622027165895607489533729345667922620567319109299247441681998189495147436679925159627157356847555127546646528810372157459237361012668190489915809900828491695743134048497766937960726051374087811345257066253799170188311848486352485250118349942093292793742548653367187013638537107343298196401809001949999831724235613085177440432269602211977320849699506446305539438611755342859121129044618542028152690952934141469006609931103749481844000565386018684063578972531443976890972344308625944353483335622128168750296118108900167139179379084610515620907054457541858567251109606642487378631956548135862041269233590077205793668148729593631101411978953424173883189876548550964779511198269041497257036569404899045775033947085281274835909588358118318560887980013526602564924287438498158165480134462970223473686707563963129833200045204774366871581271147693228697603181814741429705607122861000443374620766669499742467108261138986854233271443507556751967935741803427649894414620881873396565170196553082931456025909326491596220018592941116246367121667052598314066920719325216891776334946186430689228211847759547942677405940559850591380626455635662404785223579431184721587223320063499418087048413177895080333512170900120867101944770143732464138266020217145174864887008518169364411168047779190188621588987489057472303613360338967079802902525812172107479997789581734193029822487844372284891063010617732168530420311323182772048642213660632629628449098978484451789015898665443568004812834952040145979652690015577261879459397829788039779563014308285360844877859123561879571932270367880708184046014659404452123654980191672215820523660348837183423201806720191735219134918535188978635010577956143372536118026501827631335137074885973326205919892543634654436030772499965693464789863115923753030200017124648325396078429685328278095874901040241946664661082187414023973687755885921155421220735905698185227505368592758658909114185252716564107936154718200650048709883575734954601343227842517116877868180832980234720379686235507685124934262996494015514903436594873159822571152264757498991083958872600572881332234386718318647691446832297637065843485914501520564535010676604545188304621127773424431488820407554449408053914667691458857127438474357860722570201948123388136808134791925834455222371473689435072439786283695438995446088216344343970481924443287240028348081395548155055101044035590004699270046997413726522530141641696232781346706209284500680767901699681481393413002954475972462410028855098955094877931139441677790241018250806841692219816297987806336210356837931084103713642994582651608738765531671028457853519850161472903188672726918676501844554783753947934312885113201693377541053777590265978672622004386015560903837941027191113539640894189567822702508551262230157222610705675152509936223231576560561294306746923081324949058969554541973042069496751427234081077549618203419941269703499485643620281032623390586772285973712989054962883611706249840046948031019841911599664247049348274394200626141969734018618217013802862599371765270307155334601413163461396253870993348397524357059685461870506000835036151727116846668217057811766367004599546183146876267465715210186217143342589297430334098695406880540734353744370938031563124336481063843964753224396690394714423293361249852339333253108016526081956219758954612721182320555324711221680455753578806787327879581650571781464677600977421666743080045686626680105145060121233254548443129542330369586788714947603534251540095287342771716421938627543405694814766504306067888265216652664291379914648025821113028349635534235197757632687479498590416199752659512260926900394829177329539101066293686501342629321792199831834050507540217418290062791413215823531300425675654800988081192917101311622570659506419013569577852696197962220575686335111371138149756974306423055610739294053406668284527588989230818637651148001438303323012047689065688357207445790386000049340458666358507478130566126576366870181932384407571083386406644556826847248116723855093629528634539154684193238420381817098047045382476009269068175514244754624421032159751356736314041564569956843516879818215754628076031680215804770586161015644318068010870237160223051212341203751444145918460722945493351189111545554618777292456584320820756191250701326178004111558313199886259787762632824513003622049331148246931290527255219695526796728333869935641402639987555493652255066160181417714159263441735215918992118426286658091579320748816707695986775445996516841744803500893921658757104663279961708138983540306469791959439904820398841002753693661856186853122550911750547326503883510712971199820442402498611520729515309694081686796601598660177564322508570119788742991470601974313060529398494025321833807498015798218036895149964639259587544877209373854512022268531467379808364880026511697910177680251988302812893882553315718649397834685069166102348807146507831387739301163227773637992217998218692752809935906270353073622630581764901318939815735989498556409840525345074379376869302550075037906547522635812155567691759979904623549027703644958067874795762438322038694860131142177114622570732368758503091066789478978025986091094181592449768135502378778391105385863143607455634742254186454860006583230391526640590403716001800925693177399360710289316518184957895370632142171801766002337675620357455879328249446212842189862108601848416197031484943072929515786874482090364464396678335197168046546461852639236327282041697579423435763462762515709978898054289248538609051419861161828966140433843685864862974569282324979613228646925034462285954910695281343524626646144836555253558794623410390223039719350240887351713281836501421074664112785056427964676886896347082513496070408367099646768111374506964759750099306663813131258921956148178620421758821059538501996865616153247986639226491178314168520443789885393933582404821964092007905668816368342536274752846354859298247718208370047735779570340734230308823478862748222822697553647342652182167628957647178820275981921145621390984616581778658271896479388972998803692458503945900162405327734504430195062561892354152346581824598949723316432262089698481819747814564270212105347998276304884375241551362863054915141985889494685753713809269887723614569090091074217267036214386762189251515668261665230344403571719255193024904289847454396943748205951120093931239977041885483697573687358318497266445144272467479989950776862266120798148454705736885307079990222363758750421406867869760827968216669765485012164437968091156291166805611186180487410657675969744630692382997358419608261757728412775964521899302767255785443005254548249858159647790109373862035972079573987108073983330985336292669564086405608876067032460559232904581423545114884384319467160973388930471291653582602658952040421023919659541311572209067484034277744710228559300178946156842604153111674781321632141279758314590540045177437315939530186158233373788865575333341267705598338989705430886552047502186132898624090815913504275353389794515634695377629382305348098921413194484573989498128328592079055902705301544737464029134040771125598691989265814442187064122277330888285298046588702140425530192736023022137883935400012379750931714376549346741960317225317168276948165501733623374217096875489341377241041524524680342759667585842250008869558080426105854903904669786339985910967517494215542356387261623650555450886433779648454888039593877147847804609748762724579432407169176967330602265937658123333326978425147011477780478932000671759445133835584768803313217003179659376121101707026875534474514898111321657445384271014960878162812496018110735450859366237324572249764195349485939947955073757896163170556172504744444023338607762090912789718058725231859778317960784816842389191863342573676715527432557108274739782424591672724915445036720854561352677236207980992679989920989603296969317562924413229006949936604603927696424952942557707465518084264493630383135532831340638071080803368448691133457250418867015011581983571129694669468789764989518018115021334420367483607488391552256362577568284596234031013202138852587178051957971626711580639551534545878046373974942845336444199278547288892084127597037261886854471755907219370325826668174927802583432479338107785614436643818313301915986904823123790049713955173197670954476868836964212968372440716842560689609041479879578963861362145416995580310307195009100314081352151567618610896966196302933328892162576748841607099679778844282019666596735933015028951466141257178055623489830598678556310875548501528827496421773519995040039228133229148683071072517873538235127656480367755633577692273402657328961180154243079122050854737280620576336536448970340143127899055894082915551102715916505843595569814807028610564467067265176249411084825524490267828911211116767203837544389301130112548905809533307964732577044961630865389303510043421740074140087522446591377154306432337495318925193144547517269567131450776275263741687937995269494487670220195368493002722698004573042482060291449093492709765558473420002750567566075195830956491750992821350881524363243115116907375301578427068005708778874805739569728289824334396848435115192212816429750816118990688587731695935334442155887683495650501501911640360047728485931155407488678376561820989439230269746610978549432584321584308049620941562606354258107630566735725813873612269065872460446366111517849973207172724090317147774885225296754761071673885379717668503938552986232283297340679196291011840949231195977034757269543633076587793103940534405253585706605236382947374697187939278264804090226160129677113846717209228357444964895103165661316621144102665241037154195184954563870009278745845215788099565055598576442977282560541763112105871812342791662119619453760154306146557739557684354790519374281067463288136427680727463742450742308407103463176045417718958619898365230228205835095940307670597625612877339168872587429188663975300597074735877741273033366241196070448271865874830628392609772046664125269348748359424546849519221953312570539275662898326954332321736489731211623234808622203537837590105606674173945399051611848950841434696741824758612866627675374994260799903451647895202319058115308389219017019371964799379933275258295367720460913952295620207290028057542078467748350022376314338053838201945785817338241684239490996412426483632957858471514975569015109228996635136396428652018798444732094833924595381919818913831309207572552172569275645561839608773405939364354161321020776030442584653520835901728416767556595997538028911294284269620067654538303956753273591082293463078409960985689214778970061853345923251828030483561189440118525390043433346285534716329941813034361345716565533543721529001392144931526884717030341054014489893908319113188501183388474654915758090684043363285172688524282306835439489618804979159296410295903839686498164931424718567450719712406010820638483097951270445368304381146197839584829323534660421791268018186607272192697090764543662594374194978246425195928360431974022346095643137657261531168671800138780594689688051997582583398453043947443876841558431441409811127412060707758170868642231341131427222764626643562129609578196767990705026950200579612761767255556830772607156742852277118207389604146644304858249044001930783389935973331519668377771090168084047193221205894602174570896846903077851064796816588296462284274469111170922435777308341321618538386249718942593871478998550648569767227690926449810434954999670279967183031322539846264960019414381715089915144803571093265573787987001220625733228918598978918485494474460922897628551657149700046509871386428370795661444871753957130339332015456316718942546973590287311530713678479818011477675923814401111285025226484948150083430460465665369408330813973501319270284015020261873004415273363676098976205924241572017854251340602393487172466831236545402677731425316041143004389984689615140250911488938298794315728269072282214598144370055934597981467750000090228578767193326348859477021334458434432372181609010547872885789974301705437100531634234259982055631812711655872481327724133621062020042774115172057232518571902139124100265928113894647857823657796410881803726763761885783806182798288388594365532990754026507168864947558247219975629771864343980949534534025819116896044311599992620965553198013800139479453263469766165903294326072567753504322018904561669255363548621584735240865285708231565377799950403692580730497219410718922994423186587054425872434873442799315949300996185276141588083618387901965024661043253633447755179278299798805047850373202572493813215675741172926387744220858225690972852483692215512365750528424865100835129584133896029637115894350731864265128777966491680036588315082140462855044253357759204773127434003030627706996420097692267165056324999220119104984780721654929236885970304157348632858785695098315142892183367993570867874387952868037589188388413172269148751097677918908493161098923137868322376503191081921897195808282037710629791297156465539675353377415146954647987031539961258588215443614505964952416876672457443255715624320254087002270379137916421037232976109270609781439553966848622144407938224299758287121005613502188717057071954924796892302466842208120906053033628639815160346122162149301817355626475893568096590150609002149459752603949654459801995639389086297982182880740799165442066746736937392382371771257019800533295409691596232860332896942855184845321986805176123922795860281791171689046557028713866370305113226128902473330914680165129230117083878161826327541268574122077001063073192972285422542552444503214740120371924239589410598310114396770529256307921559826408181489955966549000099929722183246124633841274195975202222056875362179262297346017756814003215845222200932019762266306295915700655399650146436903918776462926543195236700762340580244198113749508375762127550227982875400468027735372293614216129134595053866141731647790446176085016563297736332464223822643551489483024322668998447464042143531074308312514499824587474774189974381342554859145651806194028345474519385637087513374488524585803567818115561114688097883514660738209274041760964741218074654389867235642471179899236007959869185310106118782872079751399880572626234422478731685776014166904777961056730597535967623910879273680963037153226361887575624204418726265632001353266908206810645586373136513569618546801148572526806989426179448525164877750091836564066512149061847121254967777198238962749831892024886122998845875158625902261786341809829195447634099366505574152825534341858766719094995380259577193028523777827405491350155847152804507050931203479968911639995422051336420724845852789430813780664921398412487971685943886514312580988645651909646767790053795679607343165812712571316570217296278609428249116270651644405811848883380742931141596567091340451957366907379480963486700178867884559824657699454126131791471764682033406920477410930925479970451751464881519494069780924470710748570713345954054549711375955876102187832321089796830112126531906626330897577942516670592939781365440288648896950129290744845698334800534833516428258354321634225025587535637211915194921140891610704481118165524873118090885555400491723178742756464004680745700188845601046167995887199830898883375252212723626352726054320519913145741722972265764003882698112275561200232274881525873189164272858311010077713303806475786419323882925710496635196935613689260421476013840054044332608180137352461041156912609457245663523611195971351747742691857057130305364175187054512856013982078375333088734518634630444020812510608098195442783425354519511554015394636815558601147590380654475100988073196499659978854150007140070507475556976943443157434595507420059319002965308690574132473402831335544855894420629708531402860856660659927263157248268034642443154943773035214238664383365599373105415811507461299383373273239112531013148537904783276467939623821078298886690705653633168518589532205749717270386510123456202264640570794818015579143282172717279289948078398487692102863652473437810015282132708532025543973744667042383819835882711418815012650487766129529857307805980604938088313793435829257570229552384806726648636498992612897320056526385684201980321118112049024057965939269309302264486482376833480496600224255103548297880149320380124746127651983603451408880713003989164221655488075564842403289255391363795364537953097936590029952623040894955494180178801856685808840171969232250141171022697965074946393449608792526472262569294584408889933958524434791421091329359303675140326776878493430525058312016714098685588853791571154176680521079749452697642806938697034158209475288428305999009251372785302445680572403299252301653699351705135338957549158360787583320644490706353581382261089678539836747573904172254903213886568915889970206248733702281680926258940565608053889066459062811237204403610936325296904239075804540314513215582906623393861150651818557982786692058786424511155232473052761676866142407642630527896057468232142832712256401983008448718855013031183467925291277515528697995518367485569868133497386302189086219226323056132959935284411437736064435901936719872708463890085862807972688602312881084091889288720192551430847905133499956034537299878236657785960760479265181550987729504682584611691723926649360191906104998638368589913599934546476125144133552131814615996638256602150275378682625753147547334727917411223821006090670982316605651426908872382032761700505198687980278622011097138576574334426004223961749577024946690576996882446725726811639671994179303540502588293741287315076522018009230554516677332905551277093359447837102905071481473366822023083643648528388970593493065635291289332337738265989259805894783567329457298971848225594333153820972386372103919657183084198131240423999472727671517255243566229921431790742314035142098015563544945085332728543641506225612620791168212559100809758613856408612908188080368996791835820175121656527867547812702849623057020740855584216595769274159192564761578822648461488386143063458159924013178093988630908434133978108566129728114061635524852097125461564937845087907384953283974872124534609745550932267717747800935126165857248927227911308496386644340776349937059525145680745280501652422903272058334760918785625150374755502108819837682437384428240099632914972176183373415528012383937855044881183125231234986530545628917713993676782609536287621114241700822575312442855817548029247182790413990608704465431205485176582912131395411274566755207428831323784117730072902795321661191835837180272522861974478857808439889550385652507736106233758378744318603484820604397083843249188715315163994864873261691705445434783733996052538802225620479932238120096750788719530835665431755186480452494532606650130254762600220487637508636729049833419644685711894372703305180209761631272034500742469176346131892642912284514811633119229684699531406540914047705058295553661947848842652925488235853564537582394941988913506750027614207574187589834187951611911112225412758991584880134303232386753022606593786013259080080410782564971560692615284879781170433626456469130458948803848320724302352709654366876855222747277914917739459940604916754540926732538219851667467276360374497638636680783820738028065429744191310613004566896754091708397543273123589083024041752522016807388055099708792749601977425025913865430879703335578874275471827431754002447525458383809355172120802145712637439881522800329858640555089608001868300816196658220755634147829833949136418246317902215827935369269373412273179386019728753114842012464978308351165401292306127532710625402244926753254118147733908298439370646067622247044652322906142794111056388928111287036406958913274767716041963698395718161030654444298300378245205662186410328292373919224101027639667706311668341068260669671193673079654470189576489568152277866843533835182166086130367003471686130673093899358370578812123148372342818955725988730270241995371659406478221392438850972613838320752946674698236111952478942256798546162465170422711895241587031459576288900402599574098633855985373107923361380448586927294209765172150553709075913161667369528423951024033032802670388981740871377479271581010744296550534857148920909920710167686966741007869866494082867285789567955516963700269158811887685352394843128086271181449853890399795920333818702664461236280010170085767688827832369477858381389228103887426419943813075531589224317033247543124042045657732134664518684618715563348841627563019710609139336273265136919075919237631921909662332216793552134031348955039284093201104303448897043131694187252476063086047684984067992143863580363550960405908747338048820321751439728985940093051760929407999071016857376914762402434496839654117905222456237712636842555221082951951703415037947076717011099068164488531128437860669613669332257004954271326788331753876994486219711262600630719571654952038825627205957120773919544568308694007756094876639028634479928998482188918354187521946925923227710193944835805481833905061750091050811229694513175788392542500868208024952527301151287109957774508991548118135684928236195109405789659382022025841400175880761314108650177611640540870978455821418342437988727120700926919093248624795526000677501548373665563756441694398394475181917374372798263883970915125029296105583634438479570698370139798045723859428484136921649954196263268271921894359780636842130888347414892410229287886950209871732210282874218412310832881877458398580296329948764499911454528562769065581294596865615502739694886300957041319558030524151921565548248295107099579621252670598161165202248190111457460357525016384968279888520028547214218014213543624325214080681853841051811039174335299327664868392473893128843821038349947282246171704971949110496060574594260348646761878226643225028325028709834968174319652389435597165842607995144144569867355277000332835187804946297902360428077178596876144655181602790263204022321549063769902161247939446372499682177411230029662135653835394689965741284806111578134415055320208889134047412850470750318666457164348002549012621149118174414925928962476828886324735214257921789876013016989336099244377851150653076712846080636719090259934125270626413949002666654261600735883037629890025500451973495841751787750035294829089367511087453817851796747666786812972251979193032148471426552001921307813013619972704926779195599076559586069842384640287003387929944193704310045541209368162708386006891118780631618886445472818378050046210294901055721637421316102263708953094390576442538933724719142600382418410329665038814261398020993279823933902103869543078667685992641454156560133374433719405344603854201432497287729623383974158579903157258603734757396566700129382123858437617621716255929698656527416324843951338562135300655755140280670339722860234965136979878304980255573521642200517217862900022289516715487547616969446566157549965453029719030782738654716367163103096992688015750017600924087413989669552871068239085626855625595638724532357429692767899644735395284540556776545753786386677674005215715419984754099373824930729514069515150302524803920400203203614754668985703899675510984032234470226508545670432004446782972114473740678256298982854047555340849535216622350428451007106977335844176906475903276149876127792917128386009239133121282802549234763424914514713349455771476169443998841503611533036933365741791484324376196537643506982135430318897868374685099457543580359975232359577393205960649734794156320909896634454549527146923954292513286650083976603389144930546237474121294221789612104638657302632798539293735162482547022896831860436917243577998886897558323096665647177685528466781397481800259864252300469057391390401657246237058470274914554255837231211178857965027927503920755974869888198317408675954808191287477714316990626630621654010505180990241814495448405434262536123510732572769561337631489413956782375473780957527490731510775254636571878857009157314868467874834548370214579670439607993005986180151154413821507959787949171605594712516664703675044780369738011790974848814992006669351583867351363993807874603409557111940253192136813859754898898543706297239835375465646203992642682177266358807499833919611331723101817066467704022078729752768094414798857644903136878661222423688220004460459023454347420582396815041158945852491683814423938129005505516929206832243176835844821126235565048181478682365776587446977762662235523460131437481947020008516974137409403561242819622299761793470578773996201337288608172105468759856028543018596076606342204154925861823325678173612289140541057215943640962042703693456488750674779146663675035686712376182038198435027278964106938855216770304858982225046264328686220323110690810559882345699027256253419863484150147457858679119232308113545343392539243174000448327789517354455263543575286176438797765784410540425620936228034263486415217315762812029957370598051576562547480543494961174331303907575151573539132985526284812154474125516362627162791739711442496127097323176193904780297763283384488361787681599189597062360710564680907158346683559045320262256804148919806515020642734678852990797250383686566163656505770503701311530005301340095613600170335929795351671362304914618336805266340501821490494684617076786455852735130433980257251366661849289576345076940124046180591018499465579996020610644951597082620057253364954637790122476019657550469009185715192229999340238681737414013148557601576868259577031051440139299580007915782997947355197821538757073195452357839975410215203776619413616771322565007637768157413639591905249370146198201005029072055666634186344303382172834927968632939493995356216628807364411770899900187390022643210904952438603978168654121475462952033620828553741013584550883223138134370636786166302998642514897305709132128738156218989319401114646716330820272750883495149982075734785524373924898943375103497173451189623008436071756962408941624176528627800094897976899433124851790921406561081103160970618389049219091239363746336448609966833346802105847188202501288872346395110361897215129757048456243361758627840031542948992960470615705768922933486306816093233415500153286443217991406299448916170659940957533239190301654401199572746518020198881452021394108578355468832859756336553688471082964420209651939543421264136218764346581244649723540407238286736074117938921106988153716905933931107011641013656523986459562840442780001980312965864924397059769750101676175718056317921021352225797531633169458149229176413701783914221355461809964902860459603894184826749194895589801227865703925620899618850742009704511214988529496766429325097488620025902447759309014793474767728699868694610268248148622765263706621218221879766538432493501567957185006001533085868651769823202653231312387975857082891801764399963090505031937660616132211893083508672161919218132628716761099029962508491279763222280805424378689107807992991305075370816107681227304057030395715627682928351634480891839018863609452698018795905364803332517906957864048556123019788477635377615807226257160712480108780366350477974550254930476313934505969426562507550624217552967078522805646739082748277014373725160256946963526228046744492849566884126137966142309356553400099227856614082362200923330234186609302162325506586551903203909440795361717587800296109704756358954258136417279914577263036833113613768509726053574559351764447261452143319080217322306053709422877054340557345846780182134139484537384308087870351866193654250506889249552157784680190715645365113819802318567096961558986644608082145252379033624496263887154568283250804132110697049990665052489656065028835949735907605880169501094031321432600907713991160144949752837460395645677522157587713190489028550616232912694507965556172733827615817974303125321179266863354434588153260006218248017134153096798106685110638251355261382323425558797953871176565362855882682709545977652984013653418537015082915410149712314760687353821948011530982681650032459665445685796383988402869935671717257774166559107483711299041464782666504741821974344734469942141145460964360092414530420814507401977393192964396051475465175213470139327259626870822377378149360079240822323268933247670199780213714739572523057503866911788093672525794929694707469240314911045014661192909759699725169873773106148458956090344846263117941703243757978076809563255063548130748057154202350560445674984556766242489434727879731501629630033977582547400034806459991423160401104303848943922504223723555564320412078738508047732957229047104531675795111837223961837716774468505095722184531727239877590679188957052704427522674858239306054084998846907569472109050438978777003817783221924188933619774993226904580455335944765350530017082371524350402970520827486563404392385702078594283364207541957037592564389970460592429380088905679056307004811044043432582503118622379533978180649891675879121222537626947037736276588394836474874304885524243809600204813042618663973085236269165487312487277328075888259025663342102388967071937013631246337919332410795746381222112714836233767251837282358224613381737036535541974586546080523279801409715499229276649945945401109421983866163980596111575554985244255147974721805126423182630756264193909223776287546155471381158527353074180639504016625468320461400268603167480516428929877905988865713932118630411426372272460277451881677749304296469863666809541079684819029631374346485455460932462166795056229468167483811575898851338537905342197644892856551003187007499484023239707386323933088975473982965597153758553108187747603284073321204102344316958541727872976773154617018510654251292415048097145193907700381466953634260425570731837284988322792723071472353043721394987852168052526502410916416505078594038647018801068323824981639361685478662095313631328455821153580306232209890693279362521350352546780877800173992749090245460234055533706095427805734549463932959810324517509488976623916698358710551199668622647927680731683821829136117633832255785981094344163477238850148899882686285749556567273029637992756942620062784708494037825660627117113258870698104845477202738904018466258350641585115818686924575974688611160644580534428451332158320661360673541607144440390360425405062336028969339135449565450554503613054784295124898421456512656813168891556354804013354286319539361110507330642776255751893909946736602633333513778740060849684892487332762927523185357060172074884527989109339600792916365706855284352418525503709817752685758305995105086731877294188364808416077218992455439425956669265784317286037081650420247931172288919275006988571665254363161322755353829405656617136080382587490401530525517172702198071576294106804545955250504902262753700107174500715236692255741797908961871561648001277917821872195313693744926859068707440277796322517834709772063498327022037620463515137346845677925874292644841003184335660764665926094650441149991675023880850077516961964870583514427906567040925438928221094879011013498386036358930706744372007223600428614181772478917982743245942062270138844192420529453587727491720491884466200350619634476448191504711835291696686824668606320123546863979967088909120012696155680388943690265664826104246327805083115316366359237912582442626241828167273244814631866384846503921768475377570189895935878971330615312778726772738015140507582003826090552562438367242545217921724860722175583673785974629319631836053173530568711223641191281837067113103774883453039060412736536242691380259463940338354987846836310124000060357404816369960372652600571871417232801981164962535653367863982466834041762904575962143624330362973896799458652489395974994951623724158315507760533623126825031144106664805970188260863578244533560750573252128933572214691291586784815480264610098083798783541096383608463668574868494885180589120641642427827156770675024705871423924192475736057666618945982386582315084354886456859460834708127576619363028323970918495476122831485603258525184539964232761148528460737988670468594029689072785381582300146995576280685332022110883750105787207557755662762001722030459643432814597887613402719889986467632614783742668914570752676768226378499858227905037315597006670542647755205965278744441754424925316011381905683090939518556137769572286483684854757301803060877621098912338822081501411355677799618572047346297018211867335035153590647692613751719615348070420978053784421391019911037450611919194837330820433253457618379211578687372067497796589387936130212148550370427272844633507235859424152739462750037125380844801422076270287851898899198082783428027163045667022103834954096439313273501771185131036329116511757341989786428867788467036166130744593310836548351860970996242665515631673375818260360537982053113855783471788219006711375420348661586984303318390861436984877429428279662713548532697649650697547151060279778233023530160704048278975073553843902037973405080091280307863484759990055348221498024620148376601391085251724266134065056690151428022335772107451927563424200764749196513313847813643372829666213153717961653167175545940377185770403194428014136928723028564027158216287336605035349862376617266186174800092166506318099625522982188059168660232700830044520146407772639740336079921432842826585736772706885068219487215715226947752525543095056740319279811775072723894864823060829178222790031088452167117848680771082877023440278059851247826076738504963540851008040709318980242440288270630862857853115272155461261937478405991380760879253597413107308676875007173653481216100058848259827959452572620294352270783235523096383494137583150532911793727175073245010637992222792811358916933362749218361208426434252403859026910200164820603174732125826072601795760018189687356426695719148787515529943894141039445412596797180685468665148399753119544185493653858625660652371554001204219740863484597866106672950516930707017175766291951256905756580712450469372066700576503953573310456553395800351299374708217283605164050103720614823698817252013400165623648035663896313231660214347762209624378292742056624403788259990628817789265982497104768817551503940267797177577822163253018750540689489219784817127330584420863394132125728930065210619242374443681983804277203155119453554120034617513904098046006366977157674545351427736938534816300512614443889342754420828986487654540750290777918009934316732888946272898383887221543545531267962735922590251968017750764698071359766271259840992436585649090376767395186814653389781484372743436440032949690997387172873008462845653730068121736946096493199621739527900178839378716353246851574697743369284382694031762681301931831080372770859578778828542430557715582099533477345649226392766299305995031751048360607434434951670310917956658319778876857553151472788573255551484850748095955582662933296278828820636268181609744982108251444138723683066494009841667695721851028564350829438627268516024387718433723381918233669545221950696110875385355234942558229391599072301117771114364526568815776078745152072329764225239521881743858792427664203680268225205740004524400423692087675639291595149461464140840610770479757686575734382882095500398420200361730032130996199050267714544315224210877841286800830657829907932022226710224275161976209315105220499811131985118213636612360247564539209576255920986273551226864736188359783276127683201361330576235729206920672639739235863644402677907048952023243377683457382140257778128223996400963611846856881983110869464170233911241231093380692999257228958061692776808878367585037809672988001959986678373690504276978042381283088624392855923951044016356889337898956917591086599633804553659526401739089599787507888400113590934078768336265799276179643575296845727152679928895942031365086840677871809207279801140915340672531407770974108973125604828847535130102411777986084588234154592008332371711097374617475535431806385833467741100819998309384492506317978214846025623318460140712921248922651139705826078602423982856431799236045262463578343459938910069692033832334977045084865697884277425042641623465817885791143313131889515389295483468615127147316218432752426102190098268166655520947623373303665360022996963341589630390264963490693318526754291783605991042714626072282793976437037942245050498992743000365414887137401783439967905406313571131982651183827490353540242264533827774289857495801254295208162403599348009434672088029680198506844731997729030753175410069222046592089448442055348214778269955549247861421247158647338453359328590404937474571901481928760070735947774565764788218092901983862413675138905606411825169015076975021136054516830264036403447671592937508766391454674942137661994296073122561595091555157900118233258856571550414967524782192711781770317355249100660075886706646254293890204836715534186086556003289997584241961089278787696077546896570212717215929918801725188321779970768596479186283099156919672199297440726202796135916257366994585630993780319500317621717323774967246069734635647020284718739074731383906527181806098922646181093932516140609167233152913550730784372063457484424757839542951277793278278835673248945402328517869866690488267488451344212992501852427195248862071876552742329129229635247197713390810669019080777841677555029253262370699425355823367003265244648585104113011108647124289586724979941605757501306265685842354235025039455257920965380716549549532142104618999717806974875306122788177227765480614808494763271768527494116841000549437261044020900000421691761199167874372010730229324481484050828043336438329534752966382596170962849623253457421976597373865836575792778883933176018117589620796847109132923443489375504578535843214302752606988908882311290496525131227614763756770409952897803167182964657971612311020577530850012247370916683168029471416314185300610396008261982849546640899835266399321879456246119364066698890369069859617717016035771631024035531325229124652766849601927472999909218199998602171639470604482118550404805901409631151972009738510908760670881427734957483321309861562915907346377517246942039598609227861672203506709604321675199186165409051753582053384900016471811069374810849542351821000544559351058995503105941522312566404015775323755442103792093911451142074304918148545792405172715621140675173510949382639467061659754161494461106409212930785296755713485489596757211669696291122532518389419534991058822135531593853247592791145098422646972536436819940685070611009149134415726937757352531917828001441146769433903381492447824608820486170444817196688786326499096447486997343738713552987489159487402298785531647301470585382189393469500168039460796030631575286221584454181152548981813747221764941529946879467101932857777612870944156544371885640083342994223022347435485065529817996439577060016653883054939528841012659500767955031555383017946259179326149006521808408313987182332272095413083874771786411358110304714745936625492308487639771184610022489848589524101007375073294994945804106523549227793966697911513548226890106791882815218893529614602211611378772479882638185520587796360709373668503401500671653802825770446928288936653356349911441365766891427030241817292465640574487405578573204445127459851794743510849848198763161141613300382145607357535963069865738504069086461887568439835515129532637252229581416660515524376032102595222080853877714563252902056897691381988935332704697317271777408892860262972401892745865107695143731500191425486586540597789089319153183044783568420323026057153280445627069048829376733491592600206625818102772975732697739658826630121394173254838848383942920772678248636492746764896299204722376089926200388971818424953071768912932038451200417154426394013026944715618989965984230138433658661587738369735877553303760545180733666088751433405986342735116599659535066898121639100553138557192363627330240087179184407531239111941904735783477866492585097197890734629367575113631114801975409049387564625618191710139127501548537187626182057162621688153952652004490534127328089158338078674769674089716617162365794089799000334205509518592211244762449212296615899944785206099633058847145005685252121687651674497673882140758531428115513053684848016498471502333775978752803672614182575582683113489226022122881607208698863012278950968570520762167602236107735985502547402963532794990379314368737707250941422015696141098223330458351859916590226393835160288147429895662239808093523652892185226464982132823019552132129936690730687841330017042894985098119970953248060700641870799087775977141124414854067264863461765700664428946848306957046313882555178341930768407795082001395821811284223457008088328111048064995586680447142302686274993252155228659743371615845515408889612339435764068876817120016768868062748841167351690186497366829595707460762032644734171355570911406851672267926206140838698861707950089597501942640805193446772636391213076531095542503147721996611985406690584427503385159152481427261536268131280860045389341684338600321755857621627672324932418191197970818925893641647889073386448110641806057153230339660939309711395745181772533972746519050100224314133471792344806104622804382812146976466298809045009604194766812742673692079336280642556636607849566829409067586960152916597457546613945056865925931323931408687122159684799490401259429556339351579771132425085211067478986393114248060710102410857396915907855905286831602372674512229480895469287072093558482583588516492147996055131181139039263770036011165151400564340226136057596294399175228603746565002675655259247745524671438957629206237681206533676092769783457428922694411875784622983751863818447542019312407083996227989312594947263778574898516408272787702850288819272515201016803820992875366205355749925963651484836433632398354926121588276653023628426481132767906184511446710567953174048093093595464114092665384920526003636036112403947880566305715835010247943368958837697569028245103896751765862285263213022616742313275721087824729344990159659393637450240795979234761862584562639179274270960711809291683328760119909502560201343271381066791766024032015966110759916077277162935727321587855504534687648142202164301856799992837422749938857361507840212659764371600814666690527174990074457589880189241532576881662171258462585116464431029799991588287189280450924037476545482664717140737926232968349607844684926354824700119119365518819728821177673213434520151968567635729919422449739576262064716342837952519165826320737903320415739884503043775226439641238235321222450307766035469765880609216190862331697854638240569967965900293774900045390692870473433970256324244069403283309389351283173491984398124831143274789672189091931690922007586410629152171832284279488784622101912528359519219164993282816735890246774248632972515814937433508646755407125458219687697641073325507184082540637517300397307401909055180192353522849318608523394270647248919554712392167459380192145776353237091803714258590864061652591429701028045959364700744369417490952793460724189454552368482247984836175916978840110103524101116669543207463545379227915216598025633852703468212003549686282875760081189420762178540212274954240777652439948466998038223380185644166408742264306005405484611294495313548319154358190824139229899448018630331127870143908170529400277711997019170741450643739950127431059621977538756058860326335909169243288188858263888559435781555511057526037770305794566972448268985306647381711204025941145451198466060996030382956228971130420046704639929247833276565800679009603232950580427424431460881573394483897970893270890205809628163843127606386881514571737534164128636705728373520999105016827463238270176082025880772749857138163811388831324133565275840716660875754006464109173788825879224151073307787585537163134404024672162254516761320865632140527817873611478230764389944077210712121206887714874033215683674938896498724726637321634222941559457795366235602578794346661784635508234425897768144746831309248235484851376772905129201816458378383925315861630254154360589525396290963735460793909471858397724904352653041266866820792459340913587643185320868033221542893342494703294266678061842369186359438447794674895348221599695896860210838654358752581372830021375188277021430636024850323125003168297793598608228178365851420831804686984566689280534139028983597162995126029361557073933464852560422096369049182718910604761556923802156855066511137271421896041672564746798428453582686991224019427478563737883294153409357738895796609505542492064065958367503029959988783029450327056636803383452585390046858623117206904165343363439648222424093359539163573071919270727462254293531282448494271390361322340628159678724259499166234820620741782645442655335876248426265643975180895421755144487630328630945126901609444837903412808513599439870251692654840996794257155731754230507236399092466742634089195579038764898079684112298555642818915719918565273208610345429583888720738543198584442487049722630753890426466663224605538063221021154268356736757434211928788199481107082363880948705170158997403355261353655929960869311771559363501575070880852337729415443213162406106195323198432748965562223958216298382649032417167756177220040877183732595691205756064486391295854889941361281964509209165069486426883787183748695690988935972226650512215554336075626378553692787063235880503120598703627228089830449755578409750700700809982209559529516717341835476965213916297778178581248221662699076666495925620849508965510713504651423295573995653048869180657915983259818156920933246145739961574579118127895213366679447956209639183598222287412550592753683634795646078059737590549432459480369492117674685122748186269117867491107676721676188653135348306390429770215498460649884328717617986519655592502961062526504825262376751011959835720410780524978066588130014721066702220454498588707952416012518190688850910051633140702934028103200206213639848614176525753080970411841557462035659035565803748049865808004998959468016139759585476705582524195911503194169658940938001791530625573921358739158989760783768235583399156039569547775851656680494391705507472347589319911030790051809480437382963169888406937952796792730209779717725044940616663357093784037305516011704231401375747854142858282465315207174080673286925383227587621768235847118321262351630618100647874289963667198651487860189062840935691671140293963029773122210802185232485649086468564538999384293700251610045618517145997128115655296596168180774627724991292115802601360965711862158822884009406221080135580528711895221180955961293533687742868641061743157086834671133145469512804338355248333682100812738322641793704467833664881826436556948998575346335632443159107906165753058137345126355686564912912299278206928827285521372941827202357980172586360167919698640942162336861668989640363474443905401762730989450170848089078141548863054692265736364126002688512182042786179350081529786516587227775716669147864122067018461610240527852063417510427653711493047894166780719442624356679914740840177477786550530085403210982240406632946781056052821287301292008687879298196793095243687657951284377027808012785645984839290124250979352746890530886231846555925617579404398574997868552216934965523530331046600015242807063878911027806012340506871430124299011929529189319168990720839049437776708218183818025946337928926257513679588359507961006476207191931123443513524135427702562889220667205834803466635338734464454362145077030460069394092458238335369373860389007530558445008654088224925518957721570447663434359300275558915665954866523088565207579773300579466037913707630062398472335379065083663357480593366157128215463846029560378705878341373768145078303747014737487380957065319618363922738084896021407598982105920009053190458234845249151738874111673549108523824729555763300619124510651139000204029289624396104599911635200427313804931541217674001249133881962246971054112077472908734736221479923171059509947578990123225098957382255407135816014928438293938989725755812803585072587928430815898679156023598591836629408821830360524855005744322830321772622053210119243557050332002208329672114778013946013914213169002425756509083454432633074999402349408193276591847242799727866224309995722148141147863473600728233647618886198741998141719336970053731013095710719132423046521751768535639228943244255696832762030950820777050659639300563544033878533856877961483035157903680418455971928207443184894502629762919931134985002857302623673186983033359772530789361003172560546499856922907978310760189322634595577103775663004267806281083270350580151011422083032501351127454470277184410953297716518481209007782904745323096494334588065555263935471305753044545849672106785565953334971185002583503503528987314764866806664739473954445666965684973526040269504253180731158650056947372678334286958506521797119402222981437016416894993045992181120472940692602685000874061391993322929287742410138763749881865379372675624345935890748799920811600477697344745394609374002071983365833068395299549748406153942882962950198860804422047221566274050349166638477636800913523740784886893964733510430624919586742035397316669832994588259920588819349635931226523407682964801394876819426312688671030816907997260995566254865854501057024485115998689964833841927382330624130658790927757994368344287457334160514315237489013556086962845402932197926602271544213595775118154934327462663664325636276185754196355263336328750871481631189422496031903353258890434146760972447418082170273201068980505859162892323176762575372303095017850159254015330621790983851964460098795794948357571356807881341484057638799701939078310454063853472172828459984210431190299817236398052939216490237655971303575788340138273594167729572830608145802065299910180198876450052718454030483564319644404115724388242740731215288813379668724829986482918080548232707443777545386051779348752711690745840805136109986888895405106975782243810044550562352390168230499122125601438336340418633685568725783033178994267184528776000031791841026345783031130244200688649046944384871466334154382372334642672157518552576434156309053048519838757883290022247943005219239695948870348284722103240737945650134121745759791298564747481088022419743041633967592474721836714596739181521334630507866921816539286407502190507849082218424548193789259347765891101005921258382868459133966418014848302187130926796635362526341485771006875692293773817840664368405725842818222040994819744650142424026765215676719254757897858054387014783126679630580481385423845196554498528871529508291091775754278865739759296692505013939341671131974707492892410966812235037112817380072108257833103216921076586781111387102523941948268975960023271403957239095676830657831247450265267945786858732522387970203392705447903923404609078346679334354551217141630785470803451137668958985407693640708912469411966248644989597358700617094442913503594768724093626815582076412155849124988209497536095103780390262975582372370749681708960533712532687307014212109394013424606415483637252112377947734761910996390695846796333992742691647387589339469977832163266509990558379706154964329567518621724697658604562909860309109952129581464334672002796152653101285464128559723766353281236465692244862145859951401629481697388325275242663953627175780555297980094465658992375345827721565915803482467035268584151021350654449072497223880010275841184642613173338671624655450350880306969844612060435281888094709304531475993461182669642071100537734845677327971171002973036014148392429403208768192106632713244463661277557327669475599370469800111276777473310019984905184387524639133507656945634958669485019983136773410040790538062858521710114958654702468071005336145290488861571250205590033459616772192235519475503600703931842056570737109863054333972941522492538469953012582000629821261573888302338040037793327252315814010850928544586664411000236626080067877670464500004149631763684368752155279605098931328398505830810826347909331065139081778861276400899609161576062226426776613059881577610691732145686648129708298208766348182918323401464638804037844198277683679251092030697883597535362998674654298231390839268939221024918077142319678114253435419739125161358973869611067927635460092899845859670642625501677407989321342170559882847230237260632722181490444391573346632039173662120129337107806782274965019800250351483326340216412167338384812143022934485314631859691142065537185352287786995680807750493838657872820038392378428078217379706027400052357898952503725482430164540091334579122494914058254367131967861347092706436007771049135660823560659463833242622299737901099717881396291941601165443602135334423076638887418720293743506837553284733267435843794454504256647936510404090113097849580481204518977901507488708653857730010370191032911164993164879996257492252041004211861020518267903380039373150432518069196016906356247109061304163735471769854865024462262397113074326740435004963764565178835330984017888741160403704954647546764259854380522338664502649552344592231625002360065187437907009830445106240816221851516947067004865202070445504604375228954076045000094291849111262608585723096977249740163060640155274086162236363458454886079740745166570375748883995263263046642204636821830734047786238475785564636781708282971989252763896263744160901523907447788889666189371872187023801166382723096151841464688705663042479188079475235235769732829660731109827339429259517569100772100764269515707469764558315413272202104581632250745373256940125184035569409183164913963541098678168418923618935136140660312772935248020906728541242639987776571176582340038753538470415977152509448561159058058712414477869844432274721697797326272800312160807581093786442889410609306301854307436203746096431663460331999110100584430643473606377713281968856986278952792976830581302484268615758318108777752261538472033387120029953178611393632725557298209339710574213535219163804270498341660289365915744183562160256308584508242089257537786856786479004571691761749431690790918810327511897190412550653163509151940541992350386454865083621702777912732749692684518690783390695095974947247100818866330448071814400001634066942767756643547243861354903850465071976510010141812033778056263340753606771916518068824611348608313235553784810909079395167543393492097064440007585521268052853317618211154573762162898037266663219554325386357581401219539291868287481966336494277534813024354265421139799201093097445334473688615262902577785897327549676604988094349698584637692847444829949194624093599384856471755114678014665478629544416957718839863291734367035075004165025845413575092691350458398468076686242933617149220101832981275085388599748776149373703263045215233574612992601176922802954531975878367990758055641791521943274098395071704792056888240799391636452589692268262318900030518819856375391193819088405941813880450098170260543333173181361704185235214829699019449731790911129163076222957957558942705997387256995519245524599975787102070546253348406215790472694849162823973782295139090834121375060516157229142418627782895706249676980763455034711737080589586044400067963536425028400781114503617778183598750364001727294132889961919962113784140653280477500509197355199663679522152787898161048971357440350028735389100457454504298932495843329836242046284370122928634515566484985475686418994699230635603472024467181112540493986289959979065080490094800327946260534461635894684359116899588612646152535594004575910503133755453785734011587495413179899406136574985797361697693048376528852034108976177647303150822956862139032132763662435578602767248364183083045935141047066488265339901913206131201003146601771085775992131781268709992408533400960810438393943221021926792121906049854083058328149938850164200188108082865492726551740048969438342380480064143926272514029674513915493060729259481444628817628146634108131297926993338381980661473079119798513387699351729098725510751774142058341129865343288334541473656238351419049753271983201483251733101619881880399654755325753649842231291444328906229887943336793282327895446506400744227012939292429115301764672508893186373270432655412095899276162936154562008512512968381280327463152633334379855529999396798759622484838855940379202668230146681234278430189841451110645999451727657874097859043944008129115399634080018637937372315313772151300515895144496778092121958376025468621775920440570243313058748765525478008526176168349215766367591153786533383103617815308301372565893817792844710482163398404203056223271581538715454773842387700518332317039238749657461747156474994286861369991634458502285579999498043796763475986364312581747399434865471187519640618537164259235530421783951547030141526857233658793958270194094141744347374037330962670268587278464837799252827638034986667454796723962560364352933262820118972701667696676601065125663463897669620477451596375045098421028425911956375524634933771076157276483259009739299213159717161468632237646804408948000739520810251488463805960833197535626808849904730541665064802588290771132584184624667430880121765103668513950963525390721778339722229106992906831497218671535527540894281365500924076335805695678835897920556453732876175131689368911082255571239297494295292006538908260114613915117729699207623070890051572912763846816817380440303457833245132934814740942928355386965247396099230049815143016913119587723035918535565674423665619733392465562918218746951975283923103663074773196650216774568303892814706267416046772714921815290799783364873167993775592105586145240232028882203726095886368504836481312970010670927592219829647876448334898884392242210108619443393689166276262069443496754888132284997569455490892329783160586738662941408137875092519288323339023698537816342173184532583815785429659153644011315408181386243025592196090662435237155571408381395955041004262731055103172458218446007768988893679483418265833525920170267188691727937705575462246362562285906143121963883069471714975420574668437826458670278316816234339832686099444827657834997462789137771681934390220819810444366342417272982384028567465172626959093601347135281840841432812108692153071205539047473523337714403609108883354675351987547695343311564305214885550938539671107977776457609984113797002493021168480103537298477527006774691329226173407759009936183968513066976747291931728247561763430204477292876865613474071600263244959113018757431744124678161230685362084700447002629506138627622289079247691515557359167140020509374431908103458482838993909780743505796578679602671952688165321147779216353119905687799747001986121522592569947483052406678730519513995795390550482042488292359338009132003075965218870313126945193319506086336613661416630009482805033738075976782806204583398454559659981688059982371399229887462890601191865615955733258859421713310899113358462260975478647803163171930181298472654802821831501554224328732685393324532142041528426530806226479058581659424996821839855125727031103922260121263099778708632408814552122677912871680332723612870931491147654962896045901913213815151221680183288860132206100345889078531644581508080722892939238124864484100994373546416930597095101402590963464758125859792072702571924471806095404004989296563917572854633730002444519219948451918782218467671881488525120824235057004599223945426651197171854721115971069524392303402948639003254342640298166120576109784215595168025533442246796785761791848920453489392313822066944928564288688306324164098982165086265370363506706772187065134228546066167365721346251318709886815009528828550459227111401108085727796939080148666781044598499177554468430242212180185810086078484228524599952463768904552848757569192254055054660538018590082435560084826954565645377654386986095826052606740573062291027357949657175111788596033012383234980449601051516066018041755672879013656601138859635814624298069798815066281875313931397531597236640876205191033324840985401545166468302384639408127549362175019651971573383385538571662797336639573669944135012046346102238025636351160862010564227856023311904391325402294787797183552667677656968374926151504749132952390487322378089056946248504033732521865274749886813564207018631520283655263780710170354411731832068730802862743212803121466185758306442076626745495338584164409746311111184079969590287055429458753147729806122628113699844105849258380484913448340875896693187619957838315326261722737217220469816975458145897895317281461753538263570603420213222250984469995415344902033540194779200719386234503115167164797254270092784914098242605084326844612964618484366942252129164392884216839337507155487483969877171654639082737387673984824581546480567771512069417659848729025156322544333849427277674625712237310225060200178709550159087678941646165094481296476755140706872097685563833679213781739118892758661813055522379853417338781002739936972881717777009429039329744765953346664714484852956374420747381768983523137989674517436181148337624475577426813507335733520568367712900873493541990372155135141113098071478047397503088316533549369898932767239145263419410292665300802320604713904944223778785892805967349939242823566108590359747317651562050915469264797155998234115081972327437144195082570683921431025572287054972559885575822694256995869143787215068798853547416999505245560929141050390702721214323424096312290509249309384803911687059418123065260542412627742027585002656574342761726380760993711706061104226468657017389024267676225937199944238115753841702385316767983449063039032103860664142547559630346497753142998146389221666696911096776725750875004450007044640862098867380353613588553103832643146704376890016505635276341120937887619150004871121542342354495240062295253593121744859588799636714562525614490509410282155325771838010400478943211994334560931547024554162040671909493751712801107522980667008828277351388771792238317546630702840743322604141508228265383399002865560388487358594327135138749096039578095702821777829098359401631911086438773212198920584072184977386135121240014987767262232031924590205589771946774749751467155587063947973164924822429964360248330544934599718587158699394500540885671741587190980082189191597979300905960814679128382099651329108662957543550421015462902244686986689453545476246457865866994313249436579422750268593813281939014829005764126299857389563684492783969193651443725649983290478907983489490981464467256341650679836612552939036331751317744660016902373364576784066505453841729061196102789231727711110243367226987401220670182026009128409863155701660132854458855135520771524408565438523331901588176369319640931185656178382675719473448613747934750530971343235444875680915123476320755296437906521418528609834036564011376007506570170485852700567339301850584191970450722723930137092530738276451986646900113164021927382805590470862892811096341156263566724794766493332257978390294297916054658935396708237377918262679036351173210859196783242881917043682053931206907750171629739062354621593366616680789393057664272102784061400776566176321220936255578634245656670613023857688540986981409878582507268974433031222336900788975088860172987883959206410793329428702940965683496709734718980887031228253437137673488809703828852635720419534650247352063727140140412437270295882828301552115693862042420976483314580576418016854739005079309025823163567823189312920759955442684319514355304566721142340005230876919549809004725450901535395582282484858268417241383180774548916389655199076433264910083344295500388359033664526983387890411859879445487970970552021612221166038570339203519616235360233294286444646657649523969228667028429406650677183319662619494665765658238190893446965259729982621045661957369472894007851740283582849232818838821571430253892860789602293287255641400394009573491985470265143348845452875216128148668221238865807723405224942926710103992336340290191730433101755249158512782125933764496895993292329637873243798312220219301114740069287244538483146868482476233322158501326451538521919461381676935381586215396522405065727303574556997700518807439052411064168838886331932596969715865025876984505300920356588063147748976726000221263245631508131721640152701899648145328074429807160082383786930187814192008536337026354947516428059380154152206702982152314528345066937118386774341171012497112748563529792635664729622197956500153587566963643813782126037838543347971527851994020305655036711407481332472277946513095519804278330788365169957669968964401724934483562139595676790592810769255476726717091731562382128362288579675832440624804059462102772089978965001049173843166281924469206015200357624741611085482953915908356475968344168601514562160536217024868215008773154577103823732457405096452376014384718808470865414856797472308086822617608226851627007798862295846155950370807491729073213349260445429912914200252857210136540373842988315792582778398646575522274544497749185448362379937868763906764779290857152353993487476141774840585069796497633329447550940021198763743713385820516578233862631019249400094269569979248146406301545080484412491094505615710282242720250591107106643404614125244809849182861464295646606310081925465578167865597559486058740969319894781894279898985095948867195233783115229718031363306655348745227563103765790936086774948416082354938007050451913697497989680499423162295163706248720305752107029113765752274081111809582871294034634693158522236835288864862924449694812793502763681385976287110222699545016714047512515131517098739533705187095207533178407508726841047479211170833977807454207412863039602543325561733654172744876172706787457858211798435369292073938817610034995808955210491861530993079617058449007115892258588962288159355121922093678491354934566244254350289319219198697302637557800358620103254065217581243682786920378153669539445394794364799504658388552541236719113231527544446069346409073059139526879629207658192244086145106761540977757420185868403939028176242754027101249776444189995683296287644440536642671056310965224792648087724118347313386125534914644739110914513506088867779403829961957505619248350840298107388581334521273141062051665160522674328436654962761782695483962192246747626818852095254158623597691561681049211800242017669031227493708985424167630818970152379274676568156777953866043158149904510818949634227963249325058799207976048830340940186477935721331856368857534928773396493881739220466887867739181902280992131167557695634825463555971532461599512914739855256816896351502788066762164568133817164359667912781675796412368547714809609551014518809870656186249964693778394625478907006254947293990242108034149949556954124180922578821076865758678608857791155765586613327727614197054365405729450593630605929628477401080838928919351856838513677918929207511735159537334403434105991798585823646875165042256879981932770408400352851318624037765382328777228095468566779347445175969070861547399254764709281367336387622750463066418791788826063107880727761096188923875502583620510816914635895606925208586608303084445117919775716438366175518472782495334334486403737499388312440386852898886318117217258468023666982098182563334754405337811323998593100937266610180383792659864112748515712458886087423958628078839966633374665755729044752457198285900460366513199705787401492030307793625104375574644821014546432035211478790419033639712376772054498495633176447133308485997229163167772770284513470431270818471433426496624073088630297327437136964942073405168508269490424940576291626102273374665101085045409839416364913911014573906645715765429787805791874504819173139759607268808183222884841150192160494458200532147193440956259170402656729268139117873225409695708258952112980516646839892797409842326962807016018125774971687490985330712736543149624434638630129439152716461460662551888052337084983690259178063492268092434136703261480210914192704867095243954606758128087036747064465090272339744898644284504791172680791517047299638914411592614639084430095175561780289519956948448197675458003014685129819264412527333416781284012390071422388839841463121585563745503020233273198288572126881925034601174598946112455753200572993227732223702083750825898488895566105433567607985591965040286974704883753868709091601200182456468938442423990426879657939322232141313144109027931882243912480125149432015296079828819379789349364682697358644142402389662837749443721522413623159548948372767259497652347899205906392253654619845044925705453352272323673190528506709332223233087216902292472315501720165968832902081444191960030924012762082498959708727556193175875068248896125204830799035209837976433078269151753876844641180917216877134982226301876090526159254727302815085786967740911732260052413613665755151084685348572618355479803990114006005718629496197696367935129220581399841118008113930317888741902740155624663935209608221611109158205626323467618629277327908161986690411354574568348093914544660497594945799536111368546236915956164582568437255453032314267091106145237595027641960316085756796044558412880547838266307447190295933553223759307807543563305906209167771206728472988204649783686331210553287928266907540855346609592524520029722313158000781727851187101534966444918535089477832742872577657266618699446262643455697467251357331177736636747121831584193499894456297476001694661796357281482852683193849684830034262134223232839124244504149439651855834701112683318456090879273880735776350578692567588819162295651257334245903607383950074027676212731727198327940857939505755993144312685631320154424385159917822358359760737216501879325128893426946937886110093906080890913037835285997885346292218475981103336114785163434943405475729758619925580932585971586772185269304378525492307718439999398107412829115509589324972300499141904863372546635253080105563949854275504604498345056744433938060313135919475887490396821165351018994354410658691986224279193146209734536884656745497348535612332047130883221267237811194731931351233884081407367642963026631554273816594386626223718473985533503154519349657229201614399462335939493841958545101739892408384697400330121764892657395190725793336607575039028667091060994279103713159462466144513826251294717469014416814328425753865938971891754058111363702917818917607897035046161822931038644289485856904165960805705494130207272416281941948174788828010830401121944845634620127770992556335878105474555325186025276853008268354105420850384334590313951042377322203036416389962217442440510075424299655813043196144576214966406002691882769410424830170651446090472225393965620756848242816349652705106157579424990860581733651859936766493346249018697643778919470553577726491444213205402886916758486011432423185716430286436226473958888792157338212927171504933220080357628334072535523937659461066435864087201715748831398413501536249471457773958640263249918767725275490842840364952638264510351770270428154083306362946827511808467758981202001431241434441801396023793356932124129575814894572570602261339764743513307327038058696675899162876401004092703268625611647579095199331705946780293782058373645901629147824395271635662208613726925333573772838904641253052548633922226840827593050471247230209549924701464386094042150079827107557362945790836395178505302871906583975180334719269862189346983052565746777070682732203993591867784855712570911983304879130582364988888411417624693757334745397400257678146817174314639822361800366026692372987244379198912821770211424960940238498664017993625457071686331251770546298634518864850954766238435006610761174194171363175991966035823095247431791186675351084185652797762283492795705949673628919114437986896192047357180258045079047559267426052132799636584250315451539018182531278386492144208202419022107254519970005253691441681144288849259059780617282063988545005912695294413401388919417286892484295137796554087206557134051799602798845911602034844544134663138999202761362745403874035185230059389041131682750053674348861785072942291231579027240900164996395064200711170655722163158310677710823483288771283964107525990628962346461021341522254135672269910498666870919805157294918516887519019153320982963106604458936563384085701035793168787238844681343521491200836276305381457110297447841367534008376780204150937849039678297637616328594448160708256836853260338277746278079125857732459284774869460740207783890534608554373642873823351680501489898702589168118541022664278339019760764151150510738121265287920799764277001990843217168904972842621039005611327595473563857334054191826266048758794030004579899765347823891416970060821835965516074414956925255310104167663804837776198853792612527904309325025751692067698037697109867809896412315712620533595473336130831492785906529893394039606709641035148538490465454846932587964923999483858089405915479787462224677206845236235658332845525465829672297416846761781274858015387076922591370104779492443391899861737251909326501418097341673300369497143106354593141176769821059934796600496703468596659215271515157253967913769840429063622869594479730614829099955692643278379738546250744075476715570417422021610069310090037070324859996047145681040847436006703388138489694600735142447143371502089931230306482339040594853114550536447589618324376371198241128170177358149853442098421269499125094359603753208472393703983539324315404016124768900083662957874699742485647067155043620798851332810643869763888291444744572859342552096954464268307205634613520677662402118802141252530574193945204392378474641064386669637396053251448801027908288148102303315138443070336453094574400490429452517128293351087734408606141033168414655963321853224480892121441612646875320902537666041195995847878047525127842901534609095414883600652835577869800135865302150110728796671522991258959483672989135589184955278649281725218351261574873198237701027337894805383082689011423103343791940366248761140512224667535861255899875840830039261422704406706766653982223748010175887515837745097841964151463223911302714258165448806312997808442440775511236810281198463376019108924391237141244519719648987504039653272013584120191479726693289291533743948838330440959512396452536579264963629330831079025331009943496788012143230697980986103548908203665962492556865723658986751665811975239154541338368440184594598212079413300019164229864959851636879658340125433905561541238120135049460003589963587476337656966474514951802702110905471437164088568165758251894286250903639539704893320178711401611802494739382368177443221441855747673757997256367418424972490676957136783044579487092603346519231543939426015787028620385108683134740808952623413646562443552528376240172264063219019965215112324413086618453429228306925583944892145574908726640189103523147190046176701496310361747762490116135366133319354413479128568003857793616856601589829779946805783286394305555155859439817375145744400434452984957113010315909761933769733000438926657899509796152733280111110542601318115759383483167396817156535144032643723247042522959648507367049838939319980297109880754069875490000565239306459252373508346502145189684399893399653626332187362619582648463615225239478791450466467092742209863329237206140752601549578186116745964292173184410443377318177661293877408864720499870945244302771109740086467205826044974275930294949184861228293458540457418708279937687651711486918847503537451727977301473318135339734367091865796583902170163044515192378563053936301645854875620010418331543607448407768187623033256620595645030387182076993386399661004070742039584600003361824504350861433300057735830226630387200415928009108794736994616392880793831347495418153556823540475416404433470865934666454465915542474067504383256034016856349633231769265206604334389404621145942817950467627015301640257236268118870440475541622409465012097707506584229091322241793556294651160586701519826563570266751005181096437523001830918450506641935661199808026441881867470355934861289885366232825417230332167996494097365951838982318120919719993901801064358237573619192477460401427830333226982898425825342411146987624099392464664952427679569804268409415130149051329116547667533618439275890147851803129777098133789427986636771069024210366874086900730786941308041413440368423074723066377366001097229727135235912161902604072183717952231561779436554916366407786075000162942033344698593479658840417884092263748153210919959447762611187598970519435099601995332427554384367772318418643359959432582196749529155273868415020128693381812669913409457421450637955827471657093965634459432352880924041276289286607503995084460699567972072930541243685791636916419737301052683331884600374194292686659684744791198486270314306328427490168513804385436269191039693419130159649719473740508079137001013273255416516734388947900892524509163538454336176379945144172621635429653682440105322715720367529756746120003961577583699598298534660450598702621738458648587161646169876578817999814922021434938592791526062170477384652207450629330415551708208798630303030495352343246893483051735771164513527474338882691651568939591291609833547050844800183647628492774327696363137879062902836566994716242637955668492303085520645229014338884780334737131942732788288296047103905905826941167950832092823359184147594452353321121512743104645433580039286218660504772709341663959253724830018325360916366696717134570269175390775429959547922894872368869163321796380351560612013448556878302105572787645579765057178094639110413953420415046990009097053539045682223652246922110942467339909448807937347850454569750392741765859439636625131598776007088540528757483761386476925188504209103239825574570517486322549303161694579728567355200922510126908028714900744789598429123100572281877394827063073250490486369302478839365559056938574850858505201320461709303317873802342069531974657022485243354430768034309622875729559064865290507845604379842869226463073695406847789357580589317016616579272090409566913854551958489600458951425037955397616832959050215389029567740707133152164223100173222056256064776483104753897608341016842314536412696969490098205105144219460103062193759817334215861529335062578241538333156397289716484457694043678862521208763642205584928132168027049073640281050881471246224585424611921594709818192308143472225446176544475127567112095545117864769323896394073166675091358441106653914994340582722280494089661700991969198550957248963188063112561905774862825903516788394754484028442316681700399898238030526173915924633619101969672156470991306266862711124234975734780768925444848070366216647327751338167784333786715209499243929942984656419618795301499602464157041198555663925368769302120597723446969440875090492025346817222546017732436486452911956823508895360131193439868605778769672988959169564333069706325845213480289815063237914907177161638774064611577727260456850480196610346908379725431210282291247756115207992247493968796537884759562076298077002802576411393899757298214183051894608364961501019473622596719648049202263850241605520279191897324907291689134243628946706128375704723501182082014054552347892331142520378967487922867803246148010040601687461485620580855082466971247579912188477134230254617689668750336050359240466736568439786503351507139831975287140505338178614306609336012583410684131020652596768438532244701538321270083183602621516604767400688756494192239911649654885075749183575204196848440914240740199737653688432631972997414060496806957443065455146691609341234883493259916194052374686551668463622280726913888875309403879196667712353200459296465339156246168276223301320911991030650208430646911824124177011098644672000910568149523776333016938056542379615303550271661127330112479353713419862922743022138102441003836342716369293737189375302491603482024959734789951960130046238346389825990089579660682486720181507662741436450307632784748492638115313378953234601842274147971014442777271402825208323697347202750854622994353553796454376426440982417363889349983512925164016395263620368357625216529503600615867940344731417334146508971535457021170000142925811880947526217464751213408035096890207091156286347661164585191819810477897323315090627246520867081055086221504832955713938013634350665688889182820724913229506906671071931776151258769296285746672379896522056425532271794208325266836353997994168212887208364749778099341947539789802632093171103074860730072462616972639798915389754907293752239575054490479517597705321580089954535278327290124818172824740725316058922507941610265240531245171062534296550822867900346668160559029025231126731898573445615109465788235937443319157986342447928958284094535152415162682812942334361311177149732110539620633422860132912462580140679132763517450854245371676783915334569631194087477476066435914262837573931732446364726960235252203704058350736343202902105339914373530279901212366988269568290033914179394940120619628306939710515432381187872810354094839521403162659961457616130924564814818640998632864531301973816504440326523026121224353926392029663095516619767427802553642620564443144571299065309146200107183345640861335556322937709927623628026520136807696616606233702904493467949768161739273546555511221947571883389195091282077870794766776673223006256775680538031649327161870164706048245023094637605728545062187449305110795300822378597846483279585357852808978630397657760521466758244779012756225460741302251167001108572401093624007707014631730229843007168398455735475518081528355538035272957560763874924501191904400296384735973355314335748069473453664729737700830846607404517077992514105317108008301119949868353766057214393521697995629652385102479080169126883394855530139399810649488012904619147234659834282003896422641121654591993776477900033370570049355161457607799947355664563799711034543834957375615248135918113007592251814239685107434903464373219937513206093181684405793610784208259689042078346189871811548902072910791891062025535658001786779911193003144123656749905734507096625206534971782782816030081764961976436635475101547522201199227858914045874055522537382293770149555256126080188723364137497807886505005794271689062045916632244754523811263925141551035843080055359682643358587818176331954572606115540035339254206985931260605719806826217137433682666408377913709281476759686034883613269893798373825616179179605540327792584986278669100230359790123986792378508439540702437980231436691880908507864817103889776274098245905977089231506276583923165438065435181014967435199432048295064696685517965166296015975496223466912903242312846316748006445362650806903660801922507068608866479256786112385796097793560186042168407491325662337753173917253467830329593390709293002566914249768101021719316470604473973374460087506957916694569448429885774590412256737694528850586156269968162537177774936355877167078729842444986315769414060837462759451797447931477993481182866108726276776577709717911608240317318353155260371550950089900817775728982274340810621112548334259801763496415782555491420725590132223474005270525471773037693100587884918861805384322216185363619136010128997268326259414250874274113261557204845104234928762670159806909402542085112240914825146241380873176983725939708858676578760855265743796998958747339117796638420783308917715813111661607116014266282199963359348856619858078472739048206038903306750309029218897148814852361301738292464144071827522255429658401988239821351592915811690894277969708969742540045449541923497656528389892081683885263500115806586334451900001236791104693821313839040192326948748317712078343809648793000629639369333000025195607827172063694830655993438194050527544657366094940521086007828540904731943705235492143634726314183116288305432489308413795505598814922507844587950514899118391538730833289351344112980024422815786472743372253662586200557159301499653429470818672245106137360126492510512445238596335142584440355145546077108666066584422628892752937108859691598015469866594401112694833349798802447075202281793977890461117302812800844924508924583908647679538409197774264704260910169330381084246092205250757108741690268445762390392809272563895082254665429158845816768059461964575886355445492104025897205167094073349226712493298160187480697584071590540598620439825912342116195405474560431182409376574838885774039999853364862439491741369965458947879757586897883630897427747193120436543299933249282115069551787427851399166389566990262206764544552166698740618395898131312068063785246825384163087770586320096008360294969032293428332128491847141573338778310655345241944533908606802380633224827020984875249747257769116081805231725927817501631747448194150838030296469510829972848219643418480349144404073777550483703959868758700369005093418379163143079192587240775398883252046594650260154425733620890340535185752507047421576012864876248198714945765337075260388763276105792771542104979830105173469684036571818007107565813566683281536212534666149892407268688003202104558353427440560706340014053155528757060543481912483799805145529685943360685096556144688729949843150226163512038267323602487255166075963064978125328846145025325793105194986146970016438494759195070981492235669669225046351701054887076251730613906672539417406599481351480892143352233325931362193016443553353440350867653366749445596467971833131026855482380635863705115056878525189404302602079341685980926679867158519719808986886405103469198638688376624067985375855669796584428686603863324017929238609718561762571277424361864358574442813610391863361621741450906893736460280614965306282356571131916234896963700458518271288915349044425634291141050395598314711905801180136750068558327809427896642796589733482540098271710780829448959648148230774980326972090796213643097919213864722634991049394012593677411514254248614115046084237355778965357599401974189066202158142528996570406208489708829016088385593654963623762490543279445721280068337699690281631531101713723326705650449910117654319338873032768663708887560076716359599492293437037844623721174591279719727584296614223561177744594932701700774761840124954593598400014684750569660544463749831621808095430638112293147595248698829977771441182149629125162351653601512887411292712525065672656573848548201341308772649432478561405918397012169188313950299091612946865227117104104433170986419565783711958526690952334907584494747447730429526885986843918075407836369710926672852717164205951038786867510862623698307169456736418186207361268592794399626896575449724829406160752656657796557788765919725316298507894534109654694958885782115149647213848443961822492324455232650759086438967699434076737805229149280841226225912916014553120936976178296026893793744137260713242541180528381907794706564103122228482942151409671281877270345944553349084542050525557038441260149649706453205992771881102191913408958327615594067119481648304508066381344709125292928573235220327332233611061565167092817946534062974101115231583057437585693169717402317910601843300482951644075280151232392206953519156322381091478836368379052448849040269018900802699815952018830115462884076264103233517432718998929304091138555910165645253692228276540252124823069484796449707774841505351807954384354099774351541599845583211599187524733495573172179244622649821270306242723073578987699437086997979810443618323461215645387542357543531483725050409997575850313425263537967968923081134247316797086987913791253372388531180942914289302833586113139487379732282846900712701267078545065966606405676892264785413154105466144547261613948331634100281847452909998271649527515592004725453776093574201599348432545943375410616051829877742960435940116953730403114586898250812012115895954948010616210313722329094998273210196578704523230619157708303060862051113459283463756290910666603167208503595349419591473793814464309179028590394947369900293035731940166781610516667790663510322922692226494310924721788252248748035864209790474139963849981309937915593630878099062918466156015478540791659991014264976866222558472515880478656432535614355081080435335442303213264456988969655617077275441692734518150043346932391372268012455018299823788798068834428869627481843119762846002615901638862688230898272730869167100587980188056988651760003913618797244605931553009967011851914147258432154527340814943508261144193870600959074997190795839901929769380143581268949719607954964967548799550010961913786851526567673772329090259595845915948882635915828936567666727611087775498772192419646644153742657638599842723585239162493508904429548477894501452068513492470175311226093483664174337105850900499588764993461393549226847801218414872712419959045710360270184029943059818407857592111483180345601263308270410218027093606633419133672386328984126076893412260661285724462491891337974244048632698727760987435609287355438729267660054163324080738018683232829466061915543225378727054360271266835636555054175346250290234022423862367480387877764022018253373834780462184670167893222874561495552763146223244104870465534344365011211551816765959807700755164501014578606961718818599155409070272790563896411788033782587629749202460257268079879412080177177339025836108996387027542533870388468505345840036481615926913939523016071970499809808752850857543637018888744695144554022935319843131815863475031959607845980124142679177761674624516749757513855075762449799654788618213163471995403555563081668824503817385833463744204770848987655667171351718271323495508770930203815382421795728938544201198077870514050604326851276102947991377657171985422461396753874154260404178783046482124588502415512626534461571161560836219005572795703435401192406117569978222161745729154702202633686386714941931531542675198981678218837439982210632473272186617999031579575230614475683044064746604349392582247978062017819975148814762538762024635227466682586392240954442603900899390016511524078695139338176568275576849906391347359908861914826403792965362732841049403897663824847334216726870924646510190374173299641329491230046636099549901241425138506373546688713409069920068426802219174440947196433962773643115043992010157482610036448615098118607453177392370162489066677637196769622576541760172360921395433317733254991342143149735624273735236382501796513408536499833333354894810799410646722489731082475217166921339197150990129920138500554893878638543583690338210906122638322671554487814407786571008980851159542142972013877310909128867244352427362309919107859527101433581699431241634124101981566288670241483260094478336810594717349846938509210327501108677051427188289320814908703279114611952588528794043911469119979064488538344100455997547487664474728856076620240995286194082493959969161665804770269754185333090642020913190860540252998354548227054813539966964939064249776958449990137960203509456929020229305374078617504110044353901098785451113151334738795121021706337716187096294848354798002368560766041322455593112803449745057481989288669443020120256502160522747305517224619712231619462245206857439877688056087500047493532247007050385820063023437318362492101388349945100925850689266501789955553545277421417193624469492255155333961816287818371681600012058694267090889762618655112475104425960196247071027635924519160370017035753364368790616527166538051033424904329050552749133061326569615403644241063202442674725754993525526542230412432046448554578417590734425748729459696701250467123763012639552336274555274799285822841631431176237407325152746919922737728078375160899774387096352134772766650194820732278994951215516919679616800318186417144965553753484484486538560857033566291978516162765655649354853114239434595713310446668798783083241622701920150555609946377189279247226613872203047529401453093020863231799122424461584315981123673798612455325853680240856690660938489358990899120141834440606799435122026533693390050233717802482585650799614744859549307072908143943295300329149311967168818523032286255220508523769231655856389190831825841368773437853743812374447908876291089365784528982852850436767121811692716583730816523117721517188157821324843780750236325769271103576707386749718519814689571001742865600428188967723946110421005936737981707951064990559701903687569122417798554392487387698110623599679771917501816692171144733034689943813416061315607949043127228084478503396247560166803112965411180140551290968963725536206225828808861016990117389226454679167000618809049131804893299465706061230981877029923248392422061303482207668725576811296769386494966618668692214580960391093914792038262193163630762520874022029557987740871151999853764786348253743489935236269591645229051712927565016317571152655099465296314715483458148887271351558657460562776014313845651631764135801839117988174505186455418045431105245216602070246300998028721332298306017427826871705630474924216708981002328558592811821453411158138703186985338211217510231933766810978337230413912860854918577595085608720887731886149827339162522223263415507504245425849550452748139281702555689943894772285000903765133756714807644234116438623432124141540676855435728325391663068403296999284139407108112388081162528741360849917163120998876187601687644875575493552772510345223509408708168531950483566261720593452059720748220893351963961636580922314288206099809909345592755689029892295102421097434396225602134138154439589491372412464225994193441952092934259823275257127562059855190112075854389003263991944380158778434392121774421656793840267395781884464529544558461684973521505410387267289322371000603219751183936858155213322610795279314875532262297590733097239341550886405811577917568615809632134929381973877791021422691819867715553755915957794649799328532569891088585232743179464321384240751875673110221158472349048712028553316346309234734468351347906487963005668315544942687849823907993743064755717837189877709317484084590230041459591545871676447063814786762257450620748659606827581699058057467486829962219257677968323407485950473907321065366932750765961874097408457271699624885574542911771061295094174740961031329621460998521162085374300762512012488477962736337194393255744676895794978843061797609222625326798644897105324194241253582978675345504257077821049352639725227846502936593130764013616714762671438753740980646892225896832149793712119467316849547781425093735518413821072622288903875787835670600412301039411319104274141899804527778317858155289324982049642125211972266482635643813471366435419594160136816439850071252832160341203445238092503471665956417530130231733424173667192056165416010328305658821754313462470882901172534242298475842659554866159262733944486717401990150348055789418031584543088859188976832959265781390356311259836900758645658771004438509377257353482768080685626448972446287727644622173067463587964576619845785587821614650345006046407107094713631188573495141009197562108998667982207347236971320019293739259927905227635478893984683356551807120223731124673359357408262355502560523679549483497979777824094300948444018134205181030718615124170917761428841121390146738835673457530884641923138709633339563901157689753717718174868582888798864231881555949443378276407042231924444846519321649547148359603562204296412259090801601511912839476799029924093346884859380211369439383046799677572417979825456109244612807262805244069199719313175154515687423538806663828473039669771765790317730488075755496927191732374507594654128463519596566431982461045586747954650262492197339198969111396832452907434293466748636982904375881076835149166294391438062223730513255316438702401473102339283715116835613600717650185878016443031168706742604344932338425662876009698378322512453263588724145133200326218916504999288058945786109353034939001029272726583360500827874537911596065051293822223663040725269126022154710333472490842785279315408875535046414695513787888377258042895927035748588565442405813422972519080636678779052614108380793931377985994550796436856998926511386903697770860957810708525909291497880547585945907129190181563044468647173534534310971589571760460502015995773682186653510177112671065577471584024039395178143186657318337926941446303235186261900019071504031876503060479254156428008855187454719807131772138643627279108399019843644107696586581645694949232783676954544408732467359475428676278233368997687959115429347234098603215353263112293108740704744700927918503300632745225836786771931571037177302732773945166977560259170699608706767395223303270795766889177464350349661219453712803001064095722012475589785295268184390110748698786058037805605265916406432662943730963884150437808501917483946685136972675493688962357266354422387952493658182077129679027246175908437282818232153792383504501789757429985586950523546491984438543116027573782653536486489275829185588919336350693620608293026454766717223644688491614596921549718799873917105106281064942799697332499205925435272303407052336875095319614175749586654736557763410679624616648272426804596370007580036986527655420839269177481151483382636113891944406214817685720008343673027666140023324146655240108169119596969418440768475940816335108530084515981199002338878440909964083548037639280341060450842912749976085012961541632660017794141577369209414160829735984425438207231204003002915283083452182938077965769705325510092397015378503700948655133545765770658963048343795486802146722636306749992612802215100356836996157597262267810756200971604997957095013353977795337594821635455831601099982466071775981775794107889104776781474100222897172921763876808746775759513769765470970427228479424737226039025210014147071054222954669849647759565647822539440693850975569681793237519510897422332448694616719488745499707114735231433437200237185588163939039293356429438540489637257613845533814710264755282402377977497137891995665915102847516989807465464200973098149765797819977923568271114371465557880155437682488575456234812088217454421144768016392080668814563512062541738280580816008000372105509508429172791482188123752019350476248250488942270971931453009237972382962630245119023353786976689073321862247452893573546701425110751673594751540709303180206872947359825318805120433247278336452359641228881479707788516697800340790598061787984029095816087889569233834069981700859389088645158326254502539214898125613712691223885276023668782333571676863255134563167149343088523129967586259207875246082050331903647680267978185226607686102971600340584420877646560855932334646114353014152399830067721779247765713236224517652028823055468193791925313491227221923197590191210844839835595422590088807487951488367084045239503789501722189424424320378303263208343805452028494386889606882233280206305707611661373880242838843554198881012574132872878384361712961360046844948166118396537402617683058939097046861334786760996469907793744222507723670470896534366427337477688996014354697204425400130360255182416878801317417364011016120719302813263856934676608611905115300849392782958454652210905433849901361096661042436304046300554844306042452267259862396417911431803944451185637831870247422285325457171574717686832376244695158191026191669773353649609760517527370335486104878922891559756274785517632307122444276405892049813066894510301720023450745480750080494223392076795860737297013099153403236065597590910644872291203038192417171791412108728026513343065216436190549264943742644620789394712157313108291692553787694730712468103013783920610632054232534750715501808157887825496219072361236127940173772644728835421385530731863015934972326953572704151475022131473047306027417966239904473217968567635623622582829107249380534850466828804065501325549368897282797872944902357497931064606562854118178632846642284931146655214655481610591642201560713611527983514740181063662378016842337954229450411492953022118482765610320767378495767502188699742020225472970590137138621503537010221395876243228566669056887841132587482219378182304191963551888000096978002672038002523346125429197479428407563795984254795225521401730867730590136472161190514474518651786941647153330897383182787888919967470067344560768600765528601240889408750903867830347871502247554514889185292872974685617164112749426009573972162338700359710028121611108364092121958280109146907364513086041632766035449250235661031655010882900835490039521009104746991685900724252593790915283545754592551907049481131673659108024420261032235858133218407433170635568239838153011589961820899600237083257624161308356257590495483304840648122012307473302076094746666558506598111600425472261700971865411136016873831966253710774178028265820116576058312427426309247389815342021107579546668526666372468826740197796131284412300255678765584473301866327436939353519084989231962925087581387190780605904412498738516388380104192584553308008253901042369523864492236507375359266557281764515623427631331039720312254163392376936361112509277939391087345861266665988854870212921104266751958408145980624661758521203715472981732806933249442683132754637713059869409606624114009431179635508589835356295556314694105831537212661134566121948623466419386479024927580975234914514651664611943915746989562862890464881469485043116241405377709027143128440634429107270954508522663627285491452045955797163318978818431854394009928845831336621095707637592143859919011951925091112147020222806360638952188551752475638259607899265820320057777387026226117810152710654097367962228730649078221958203665848180055601543702610564863447975024984781556104375367401975262915863735176929993755863069812118469880417899409049869776681455388709438090454702224953025587387086736837724176142364304976895631361635392823669125038514121158956223060538240125871882044382589578335005464602496703374682093361694749895821909081650051120724852742543203747632588051599786488360724010554852221396252359336336068899497714646852758877553814609270238185626390764996647203556575193185661809295140900192579764485731696662119301650052800054718572138451994945629883262029059416297052004102883506622683830010718428017103019765810795511805133399563616293177392849556588844494100254469184099503571897497462491768204169236169404168436043543790534847311877092479680485208828465855638961595342661364847639313563554045666957018824972094944147619197502760258129599770233274243569756744384168724463026589142892236138625412018304278053793139392561536606751755172364212624003223335261557976593434974801265331565424869717584052493607918897519152671253909509300226482376354410531409198837581197633993790781967005061642364210939802484846585311677782215986197296566382548785227288942976286511146316145159851291645727233538380936260470523214021574800435046182429681276415487744914305543320711865025533278570726029565183666308674088690300576403768364520874850093144445727549996076415928675319918938583980711356623029065506444213763285704463456628489997377420677169652417897988360287404134860844605198647357031290542514156271680283186638664798707250158011989082567381503048524455774748973927551088110381093212017924776481482384679767760365705799879641110938452543195647501961998581462587453131990484784119480486691265186975353280874123127065973864770938259820918609988910234785908529580009614885657081534150978643422158269793031576991412447808640035558163684308259071336775925628027988345004746731095254294558003586016242487147749998449716655256928739035029878587944738808161520300750311847073290383946913454299786384174548008067020995461790500324534036018788293874791996054050166442334545279516289816361286438570229364136883688345061546320448101837631358788769054983174461453200141442551592182772603502726921082802556414095230793826901085713350070645640819023292789964880906356732176262675833248950371035703483968905922671444482752043494073107226047015292798801616660374283628120984433326435617837835657654613687124089771724129608050146740557045403411536437584404468970651871768103604431679205248419740327694387837608508627050795579837623300093604500327846138132078679855049768199497542206552487590295186810442350220803620218466363210988517485409955604642755594988794920432007076289112143158309543533221580219669466267292410874978078404080293979812659254801223440145978905034107734883524456837744593467275139313758225340271650237738435441945265349211751082257270384341868391422508773597704994588368980098419470406534756262824809918217798099076370744959394860323063330889328228974086408720830785680366616659151723206230935437668189855643226577987461148718739478863985530455824286277238767474137898914576823552098158052778394963187233455617134522133081058408050280763852202329538791949764147113173366222322198561411629969389177482698008624351891819443839523810677498554563031803742633120071277939076287381468587105677987110168700713118867931671290757462521465333787494411328006232060993120246673794184663693554067256170487398172708489013163082273963009526773960495165109629540162515104444447984692810878289730395465040718805054717737738561046982359984181561708105232309051385149000321953620300609615195699262512428881378873149295020939639959639553584266937265667075737870429086654338343931773560519420274191082386868827143145553393309013556580111529433242896123633338671717737973075893506652592616876347761323605130564680004666610574075214229883661177885808603525060292578720868160711917598740306710220793306653465308691095724561739087087161379031000126871129021192908706087487947444462563443480917835289873629404414801336928637575135420950106185253523503071138508636420851204050216994305564013506107363897026066272068982290950871467239321097414562683858976552423124606356988225772491283932395862458255924106735458823701205066266002060423363232346183565519859937088757599271699791093288919185672956093010017328827272735379588373877234475277797841312943874664012274864898852591864622463804294491155695698777093283010357816287715040761836438581352093601478704528481989488445471491054359651156441065192788692401552065769962428823214784269094755379746582103961014782852561591182949305258897041603935819745724324932791812973929677033133092438223958245192413268438295183885535913397819477779055141735356558089851829748467479246600800230295154667242660197756981816226719219458482954417749189593409403008381969535349701330256043667441932622236569697951393830704333547878200061268430026471174357715844123490028839975163088915504432350299792279627934032673209981033800106576789127228760909674024112308327571367292463440960428333240112434690543728936189733609458275474803178343172197240642642876197645081142698115180355361147861060142700474235423649845017111870440344335972874341838209382593191301501753640122360043734530600052891845514362333898590005210349188193508420048334181806226490371695290796455877915045840649178359455696570976256441946017105651160362447747590873489220426983467318768598449491506228790601759279688533194650954398327476398957083610728952484260192728806815532546867203275243952537555448432133596558795862481908605428027699231710972451228901063587464808448611486899813783523331699822585709221933253797723917552477429205297512421433859177784105292997896088993605994677447492311823380514208484445688357709580947976991026197965211355676702642731366560332164086038365405182664479174903732074489987718314630740290313170151123026532898975265633134546862540279267244296681580277690264056832564413541324542766778654938110418302621469083573572948162296384288705780340470628413662347326644078374835479277579165966065392001817783950278689704006221494062419253412379535070531372447894781582410199291285321417258407260598832530965920358699829201651588937335194514497075983027194986988056149960277559417579777801931160330120452315821517103629473118592790435637051460706238946606982695338305459990915069508658781151576226483034081335157788115870177626552417477895627941106346527435336645197779424192170875941994926420053128306863414423673025506108698161881646349011669120150252159702943246079140321067366661839087019375188288122634195595561097833398547014651731979256673110958993303024262201255855096408118999678679186573810877509044248909674929611885259801459090206846798467894856039247616739357542315805746054218452961281803900604606850931729668836656748065380853991355557007834764558091710191555872154655607537314005425065966752610902979904637611357026367813021151921941432557139520423914683655785367828355555054632304290901000152366196726557153623453733718118355829563111527191093946465216940935307934515449650781079275077071869421758269781743262350868466269307804050205865745463887153553569348194402624009127449287982311048231046927658021830934165797660611547498418029032633908260683891840921304243025535078194727523447333272097482461583942615793184097595808025384391708737077069377001320636705241793253320830087241019715762067732664626929320025085026886953717865325045775363744113312327577762922869256892603440915157550990972334294305570887147513064999066123112939664391549719591395063610425601643071450708067139145003554138883484770614477480015977205337996918465668401332948723154059159392490080284441115172375022601319903645324638282804285002004059927921492547461698669467917110591629600909847660835045797416776270099511561024734874225227137181287771925108544828376032715801091272702115950429572169535453553778178914270573074777280050413426213037025426886919701311166119838455112090027153879256804477139039552800763143168402719568760895483020038720416287500602432591380898287691053744780878182912349377725865750148292349999608211421811476433327658692983991568223774284776294985542424583474727743542222820374182493919005818039999881403995712414592870166402336826895466990422044561643931480398921807195797351176780466027379212757026871387518090212749673077560021394777964109423191480027847743957067265533626617043693261382225252717335236290825065338102209016373056351996183205769739178071489392458318942778116610859858852086337218155484393481111003175262474018830682340570944362601017601053152264026861258358202799910559509282621873809670493004487131440292876833422559107658032345656372944479412706324135649011508581322268008041933150434062739970557656156653013003773361467916585308313150745747942532597912899230764591751473325125710639370995346451581472918462540892215874624534695116480697163922849489224327561750845649604513433113185132640550077538228943967431194988658036469501166954322173500413716745917069794771027655804496724090633097007002291465181760568717234768176170142677728915727393164538490449018215537637328716142894412599386121871848073487546441461734537089450627764801068496745601398603581752073263979565433539443763422921625712895190132798864381154928426321617869776348838328095196349437459592534979297846296407599953852497938019105347865030694146998210270052928285864643128536378517437704725033272386749832216736383101101935228120805370431901586296492153899979642496797245385101347085078973550880076381608796595249559214796274729048357898796109874944409336957666046767508558310557452224784682347700352121013330603166146195783331701895027958639144075674983922338567533433118374152516695867739425937409494599083645757349275244954880603775234715524636228029557289894803816037622356483249304318578669192410046595894953976956727050892750082974660695750755873028756650139609933331381041265056649527498358851489099750925876312351519508245568296863425193247709263430172643078612310478797045156515306502228156988993393453550713100655966187640186992126651408345665876553344680158337214907555693845012630473313982242790752617405504268314655363292077481766272915423834619785734948514119290775462099404320155335895447367087404561323722896023401659752811036721506645835289015700049393163041786961163212463442268150360528910950124237825929649214509515997216767599727813971595738602959789068957922229590213381969527698532454588653998147639139206757397275414070768116340053889034873223532212616270532491830470006350240347070444130728953705164434924625064179674892336987521617274957418436076840416522982516358933454522384773216181655501798948400419767265573722892340267372560000870017431311680384489415441839707513613330618925223487308484101353048131349105723049518057402382818131473291493631028210855022906594060547034357680107596862472398032972090408419249888029991447803989711802704059060425349750644864409592514039916730306520950502122618130366818977040338176076937652810222966897750739211493315217829137459667902964779512036543010556456706797064408114658422054840376343948044358364397245170361432895398861547033825045301502989974644398209086152126141948481000456058642162546926980102366608649473006689815472524544248523371142142790653695154107904254751330277517961072283735267189098268401954103950188998751181901045927380748243860424264516106332491301279778883460545618307820740081636952809020353363143831626717960622076175022441853487850762819410839414483492602731377911166673471479346869045831646651439714862148724402826122727654773813348852153581093420105889943074669182217848645345256712432130617916863755039999404379900742802770147883028116982123674855953207146753525682645572139205280600230799925161444793215360914544006088318340222598158016564883763943086432586851056597324346214669839003356544394045924850893119657443045221010569587079131251534397454206724354535417119347766100107028755696727043131798878887619347401841583116271489176054975042885630222226844220829291415891812602128662715262338132127133839192750892241497304080653895766029770151264234677662936775091572546939462483070078749187200922946118348464409769748349110491124963049029326754991965173042531399556368129533334839607333979190661177149745133289846608332634184089263131077182044804148139413922860572301246751004094601717297006268521570473122621372091644027095884611202284608608270411329772311696300467539609344689741040591741314608238757309570073806674720819227879752182289179174906887438414363694386061159857298324285353809101718953728728537547536409708445605752266360111340162156980085836257387709710756105156665151839854466626098410467370301183958672446245598513191118919788220038032240730283398557254636440324515049772370662452589598456002045309581410769963889182871493669224249870851598125641632770704965374289902502925302621947857232975923500241550959125989323326827365410455189676677069407493993162535867770832460900699902115353870193513652500992195275467545072086854632874805167619956983975878515993541584973362202356207289271782389891701217194877592233258151564778645443441524206547275274532052075042852604998489061636556462007865186660056411522784643834643171616068826423416104202683874212032963639845888380478323851178830506265423933446101772496110291850085165657080542268176799896962156772691502740082490392283132872835811286143792748433675000672218225156580341266053960931226780084754486305123721008659828581641929964160582249983672448973197815881387886376349080821011316243921391294287515714853960579995411713824881390666051968157802496214860376606389637042540137688382571672009825826406690918647592179843017261264889736222414786811039318523853128303336514257694469511913284314445817095679428922798308719147825174511407635379499769625304465766296343962928164793340007572935594620010899782592401350037938450107874141136418314315846043824756032145442006702874886857508862652327589685307525272091341808352917484881022361218808819579343059684921474362021476343970226294209694693553856411002997614756813420581668844873958050231512806074927962754000671221991242631552470674374112459148928574630246083294624865589152327984122467208419058863507850015715123933329863753530276971693353843855972760992100109546044620611182310336187294135613688958201977380231511990801502169587381456700110765325449585817201256482665998054064870109681963550858482272179755896814549972843481622952105527880790009349299098379738211457132269293569034814356141566711334988662758464330039277565901012783399420872011461765654830698866997601364585489807379468790548938852557166367134111008761960067130680307833903388996993480809228393466909892808684864444809984002881821175347992308309293347321945759778588558524546376880571181627068889663126965895683121871824890356547994624964748319389013520403650626662247613578219806734323485741549090435335990387651459227869161147827382414114929229401786410334057542083049979093748786720166801729962803218483177569916023057798040516992919950153251060437709636525461419728266245933204370002562027229616570223502367689023762945326181653705270701202828221516297749187580562755831218170378523914538299081605955156377243464472764467315054998369931402403864012853392923172310632180873399938287759952207295425910818417203839535691888677591497738797666063721408302595528011781034490828738066960457508550499447789333316295501354491650779838351966367462511056728325557278553942771745584024647307004144104264829297950759894174262086019104368611348383367920561015367943770637918910172821559919051821603618723879713174477753039798932960439079962603775635317333745626606906985911760016704323007435022215444765472033705233076964808350595622471145848931565537097590942305753091896266345835517059766373734325076419329498579992603952787749284065713080125768157217853130868467476920996199932851745221609885097798401707745794659637208988811426340564389203770075788918559674962920680011810789638528577101415389690752174135609336361998975037366138341242805888534041086790768203235962295548313682788699665932185604649021574984314107670171075449648527661586059335260217796456860667468132274236148855065971886991667947920429130212531930469604188447017993355004612544746278585782780815593419757801783582196631142782860492036621424728419467256567328378455448243546512352545100007591385662024847524358262247450352568617322986176365982523856334469459548093925400974217679682366253365202252817123014411573168472907972520682308943239489096026546956565665703116336526686652852140205615390297756811441718340689253847573271073378697575987763098274399789689515394286823831661422017799488529878912388144257853631838779771729636195417873695688223589119579410720173249447094809959627377257044908544174065456758224388956020497838687040786586258424747474935554029945158697904195433020835535207788328458426710838851846285500055925912823266795767310392376582442903030112874741122872809912938184200492197632343194641538767785807987760701501976862497618603417068652052363233391630417560890736490836818961489945690144170415295921952759148296974962963724578469611756696809040281260539672234820287808672063500119592841349625051948612700400092969730951494132847368316551700755889101420393324623296101452131940730433567527591813881207369813743245481054761196974647048141570114638657931504917958119584707376847280926309274289809492659821186959912595997546270260472448133343672106269101376045754363832371158201425338423158873631333255513086740670326918013530422645869435112212743515992777832037690299142679715923581719056073832283126577252804953944836300710629073999490550898985015341042058080876638854457286864204123495317295886167307187714057421708254359042226031641879463390479110619691319722534173755359435699270239367397739746924463337050891563813184555183458044077045635053360870396089007600293141508252184158912223080915471460259441261593966422820844797387514299047073509261490607059427634761756775163006850031443190504623378031594026453104079344710255881696232720659279818186982702460962917185105323939733490415495648953444193456809267320316614102955341710715254401760484289066574197198331371685236266014005750725277053606839581115891086525164551997259427107482925498774454010500422164751621128358720535936197134434981789668870254954908145772568671018447560906130282204796730952054833719540849662234771601455601868094411962736031356233107973047396980318084323884124782452302569495581176998533297173528959875611755256353097481832243526810699149351453865070473023655363339572612247558951665372592395572415914315925261829395407288082965911116288589180642817215396790512743411274309087944906419631484038238900909362425775249092575603393828218570756545158740659687108616848639914466236537969941099376040218556080989101799467492688504537097766282515167176662997093342189057989422943309108813283066503662043851588103425425850079521795568386534282487456916553424772685358633255038321455641502769486206727448597085592738142476683093483781060544178290283615140805776692622137230497846814249262019827766485381810269961374207164379331499498299304240006402696928837870300473393186923903475247930123048367987358134236946479564991329788912533262726713978513154602726392322269395374840802034050131680312367229590645690985928345860408387624410966357102771857248893604692887143331183110330172787755648605335645840994558364326231622614873652322983325328032668710808718773196622609066968675811728348895404278054799674228929521362631660219896451318602219947391988343595811959154016338999635394224655064896597205798630585598572764483136080876503039925679804485421639976100499009371358476042688332263230441832214970218797176048856098427107336532252106014635957238610178431618502163843477180408826010808110085683396822368836629651680329128949299489914616211196093878032941647988476065890666323644133572099872901441515520565409313414056604479087600715428396659333159960263271984112566500501394612422773089187679548244535777339914505742186118605243244817484125617608382206886422048491246262889257767625597678538079705102116208798407495428709702029302451484016112004334814048632032265456408302170607436309730447084546835010087312872376025652372088615768858087511377549880874692430319355677912661384796812419890898822200528369140167653803809778376803292826841577167269954821682159252476381211361622101328676193516468605370423262974256160938763568942547835828697720444467834991879452151392249397793499304655919208505242038421083404757651921232514237356821024446905846195919703727100227285596842307308130551549844595340715817119220122568900263485978605988820213510989360777395292994434981485377631032477392475129995611808438460929722263083666310110347532417480530440057057985580541720946282943216312918826350233840176748384737619189034802570484034827971924022043614443647598575823879278906291857521270465974200179322887231561195737098209609321977205955758719596461682346061570176482559354822735477733024883991685356643773137485877859293329732602719434543804352966566228898582342812496814863825106140236796075867267652318012466678575481824416551025348897426703962210271127929934721189035460654512566022903091193227089890971920328855404712959447173575869220295733557061837348157199779240364012146102450383877511150356382651143396892592958847123247427965928585919011933324840681840669552458286280518484445589905645218873778328801864887652222358946705699530401848307045896548766465650113035280467328321927555758101564365471026687853570428057094444712170888956728335429849871669607590407780813810100333399256093370429436808254110189082746665180999253500286131976813598103111416449228118006719089939907835759263030358779916792182831944816989927790409348765397270969794567474251304301793335470479285382426300537907164051236544466925597418608823774828076964784175285247602467456636747694673945355463353333448695963318826465895735091644054468748856001637336895363115571073911662182338780559803667380904326471588462750229451176662809086546260977278615340837392520249752374289905052158195805330170680390681869599186593922402727336945843394922368345337841976142697685847476252609003446755397056975247855045547742665035132666684614321829035687997495076286760125515073483483393390352572027899742578154110018169129133989919813663746833398312980886243369587803849589306325392944718860857598284591060393627016112248905930373420265209316971326274919180429018758253864619357989483498711239365559305018468879252705444869278100778052574352768016505718681766896421081538954703255467893200504024914475709828426364642782820610277318959405321749098551730924165687651324908007897711402154228331700027689029208602607319314085568489112735851140011698096596342581278965088663236362937166615146678572472698775118561911511348894392782231604280502921456161501307501988690140655186948317288739537888214289739493836151769113945578576355307230055174523379931220318743327389718198908413495830221681623974173188386645969947203490618365529034178774352819885114287472909675702311317812766624782310794037251028170553606543361703946658931651855845661710255770902608584022254192426935667911399395831613832409936760189041030825708115801106524359678127241119691143638246286639105397798033401434461612067026264398269846003226013205387592441578007805666513985678126307031357216266629788722806111187680284429352390269703857395904903533723525083754934418075013351321224792687147812252235351574638536387626144440380769888900524901628186015071736648230687459779209134866322707764159511778124910776407972311684962374805837566447474745688505946921902958460273805512098391672257137652686976848215099639760469425813433449343638275234857049444825212064143886497536578194987955029092559705003243456344064217077998272859924897025905960309877847381796242774644834985617680528669792166627018614323074584755563306782253487995061918606508405953427631201065085774921721901372641767089000832233844970821260830595041891805199375327441059944859930637724459423311393875947335878577269694874278248819689199222126692104665125895695131039244418305523852126426105048014852608903790585111399851360150654741179683599805519425419774597444782691730360673112658786651424647342551766895374580543519153841800208101376687697366305212222043336311658764051018998005585564369541407222065997824349718630514958745231257253686853144773457565236945461676173928796113490244583548728702749195586665778810336342396121101126560624072488294276563918451822805801259860560359244252017649181636960714867222520484171594648784950322120141771951385030225476669357331852820773101672353623861397351912561808514604616043224212567816387199967304531721199503840516340448856599967016912326448057725379679714452540152744492894713686929652179059367899249803528381248407431236687043332962561390237016648676814264459091951671362035724736817818241950538833457856033712082549060502357825296515029804336327504780361495619955209721098080155011145780460513494555456313553362308960243447813873191627935600091297324694502879969497506243812799763682809379751576758505749261423171218271454027126067709814572225029785588579796200887002496504535766882260382446841840377618500290976799949726087346550727016293328055674573281076239509979297825849930566913494072420526325817763052789996907239554767493255542944890217874292948363921214115159721445798225221033970128780255995809884309441864526399869220425107396593771288669743686736900880163854905321869527151687934038417526141220115610010568529330061328877028026058942733151205879940844261491987005182013826905599085442768489943296513770860950198462233744739580161322545137971607835207403514523322886473242846502918818804243830738332614085618184415177312662102332204068140537657323745233450097720142485318962254863353947266563798208140341578632551680881409713011430555586685696311100302636029865513832973153096094224579234197890197996319089324025869253436070702848346086220707047018229857350503707167030478460713483319210942713817691690179676063335260971020965114072420476496760103957754235343568501405025909559154973071530656284436981609683817820433615936223439326554721863274377267999423199583031187941373280610833085810351122778837822348156913695245363452013018499583547950331939090255772940862232269112878850617440150312508156835785305336525264330118750840075845872412943100039922586419404322415346388497740838231727296145659851932507892703387541808986832378033489706146459226245960312887373568786691761796062111403793764062485772861529730950903063755867281251421043749060494790808551338894661496688186526436478874852026393807708137343723119702857782332901372013107967752513170933653716748934561115465362138310744788141056271348202848596846072332635270565061960503930163768518362855307650325251327484560977729564855429505714096576095140392995683716598743231430815307220710105829409853224908886623019693887023872492861166210508935050992165993811263974884432065959233774974113147556612098563179946017585404380188579607867094982637851948885197460888361773929234485118848214941038451928256088273427669416214204728550096150873179115880558177024621536457290075473957468108792810360402996091322215032733621568641798046285289541876308827421377325799913075599164301444236126058975021995565273926920760485210635976902420148302636460828610996489607647752345564727703932658658891959888879969348527838545375474463871297074709535448539646834379176955742660435381116581923312969780330908733800640186389895405097350705804873151841580051829174514230567274336870691227449981474992000124894603518354140638718309790539006316706336567130456044295413708872644213831117917533135622268974557917747557854243486732342439854814359930310839463712610583005308335232175632202761516697331537332364289024205192925895579779734446720819325073648974567522410187509733702603670862210380779166084124511152917813331564530011392669805821701773683045786198014730854679488842164828877009261530283770527277142246853945763311421052081643491097967459380567121246872419220614035112519580068283015971240885815871552357485776684557376585380870136795486348055106856334707467079550845454585463795989232434674015203465076645210589660271151036255069211818083442762614607448007844396596817932720907723812352335088125288803441393700698882585215426288635982087311153889091526326299420733819439661362845445865082552674056206607854870886845225238593191795939733547282232311084232088558152675474910564998881372707602786260941058286780575321771296903698363292846036129225868206896130226190939663566041359112006743651802001946068410893514771184688155896661637503292731394069727789291796490959234124010661222677557455020627386874048526539884427718495551817336665181962340312895164349804523404517571686538853923848608533593372265994916167028389433850176053337557663514037798286869679606994631550399396406776527220542435369146726407334091237694509467196702188018297188426703427990914523651457201860803184023626633182348926828215864767869793222166507694829969179016406926525794568864433633343672481773292371215923001677759891631167367767834088575754740807357749985972057952983736629179294013250683125628699122823132071140032676817080545808994261756315230229381983968850211795350764149831820990855638793453583709967489049224766425767926684233439906855095771064081033072020506596280321767823767451271514396648715994415941984934735656776120393670006704275599685996394714852104053854411665444011510817559647329745833557125972408236311283065751938494920691247245199398689910888894363948330180881376714434269910738198590420890452764898372186156822529210984365279615604312436032701978972724481055276976691117137360635443137596557993850566849456332998538033270311847542733691926772711563854148047020647287995967301502672573484081760252642668646675938113971604532874935781477054773537686522811449724935215430519186932742366756009531050939308212722719241649235456841921601190879108233236826141224011956881723490290063804271063006874697031298905575033158803969633163260593344110951672597689094767800592403851102311996040559217636287279026085802610758672304219204091222058129684310934958539724989749863526507084900719419156850420893688113988266293532029380228616518425659910436864642983552784964959371912838806011416793723981945769391050930552804234727871840224184680044714784775024780351205688611649772125402338085317802975058649348517576738819748968458223590296247595840464379621810039033764173241443373186651175337746533693458746447275870318654140475396469214237890627091252154078609858049221364736421615294406764888436697961797967862794769334239965571375314285363164700105291790189689235955460754159739403751115132340170619409978017871282318212714925873595005194185974577013179006070676817593196697073697579969671985939188276210195985026215393367368992226166067310988795050334990029273625732750207490005826553283154301621687677621437418411458212589105371762681039624208823071241475301756166076673514806892721199007068908590303418770170796694082003087879150263700495168930537620097988165059669189793394914662438448422260045826432438783229433200321305668191478434980178232791890897768537318512134229811639035540234401346205291360922597045993140272767185368045864620103530724559188240656040981530641061547565809291625382285781885001270984087810591715883675112685277355298662389376172129760225086452799917107684995392973839126056544761338469857907083138468457411006577276428692466188584043180639185159564203416688318607735162303543783593847798177893252380715766050880289105773367817050474060833909159460314984399204118155793336622045735274303217716441580810983936808323728829070538429555986217492778312857146879616039104332056560900395148364573385094043599514041195718845987580746358118276493823447810041846102902989222434206182179968277051088415200397341405260154498947237112933833515261514745665546138865586193590962470546123736671479609926960629500591031946783987863619923927216336073032878923241507248870138830725813801571982599032915352924703001966069873186002675749338750281838328934805656704772190668037685464259147799425264694889759610643166674043680258484493975775071181363026636992196416930411093613552956886574064008049172549617819446594494409684291224857593185924434583379951367195429720204250056762761039815749075305733887085806011319995675241458012191790581975582593610041791260837166458491488077668733800089596538857388888609370981601264596443471219562104857731074487064346580616551013360473990179363310461129859990117026226935330523191931650590650084500034482929924275326472847779469075999740085725698859109794135701121564748590060512779350566728683089945845449512546397112547623068537277923821407757616571309274868333253790750911849383932159566877324373022839690519990169657824537007105088024675754627571269042486976122278968183381611259815181104282738629215190474058237150143087581848213503968950300760494878635806007458050551988019714962525235288717226986441919758258290287386960788976469629977018824475277455032820281601673096719158074034096254344647254490647848032699557006700261899123586298882653476179126255163507188906896327753194424617598989825001823674776054432698279194478837471665550906177684742687650048423898355988291330668081417039957104042252579975609670977120444990300313428665411736710689811544029516029725065137075956566550185496503884988365400349297795367909595260618375572780028297501474641480148140679661129711243596999040975856920208210343912245343421619421186575648830979808315531683050902608650646086158162100264585839985896863415156149591198834633531765873202751981293359201094335133542486042608216380241819763022148810208076474677086769138201129020625256491815986857046143057130270376935230315541619964662042950560270094460982364114241703610899981735885291536058243630260404425585801972099389138059382257836121337951519206250298306934316462159762302275036800181129165197616607573224338386944202767582662133780234364013492960852594769682343973223600608109459653041651959794090904595984423935058426672623332262100078548265354036941866115675519768012975567961981688864691996369543262862490367749719872653454017659655164102901554013699023896645034321567106855448895031907346516012555467082250099008612277633039429995717010254027646719390057414341348790735850588118543507161424842765703374850089063081779428830185413709601074670500479063602538041940631472535524050474246944821236566675227109194141953167690619861298349320591546695395313677574589737522710766846137154570993242444579337275866014359155868872585048807935784845643367049878045313146588058561341524515541343593410421681487429182591258515432540098549321923835804915361097250029534843304262480945791227525297219590813286178589848282978722542236524402479965905877171053300192936209331938303910433900643273759806764441769621546158621744602002100115259877255924666935334753607643000103075043942083916930801343909282412118918142105265427064331895719324234914454708711047780018538118442564495076692019897703564893501924694785780217315057072990529758652160710432227649542015230020111185874098584403240065715874151473951953304000036624831482487853263079816748815388977238470039354391461385359905905944599128541314001347219700376215982582969347667874226716400574204170048277407828489612385198046727216680604595943365390969482726184600992140039724793810998374671049520068867475205125595104404772381671080834808416984292081911838011623016319852447957013323569131721292928134024706885170542051375482505831841820189054776162809104531739301460060999298125871062018539877844608154371668706205712510415767111777161520155153324310378683288270826834506024136572089818845733620868320373046451606655267815762491797940798831739782466719689639355057880963719416559490544528845056996337416270264666130472626389720381846014047689864832063873887025534484546310025351733418960660155195856869383007561568963337782067479228213194038852700456271067368341709318433687064780093884565860055820310799750191533833671620090522258387637474097496442544515338986586532955799862101816167746557405681290627178349881783068115731207238537965533148534526603153106635880831625579056472372282163276799334667777882011542732916434578206798279285675932952565578594631595501421962918898495143909510668833507695114242235054663722670755768940472135568269354169151595124434347337764240437855295426558278903856395092184940685993527246439317102496208981488686340150386193413018815472087770727998344943240179110746359371074576188439124861691598009492923729807754488079751007242216602726074421236358714397785711255415035565747507137301412129659312219618028224039495831072964676371172985054223644133668353199277713253288645471397726288471711241630365771695893811088436284692376587781279369305494743975328832381414277999605310105961413272508593234010641658838628450599618619478991063872595634979171862045687263386643592158580170401902564579615882627738730570162762140797894736492330143519920277994134449391697378313906208102062306452477058490767632250014449420910045569610103594681404313616864280208474710317821302769771810015628564415354751441572413371212013087407631316682262558724223276093598005701096117384425983427366059063576317366005487754057743918273145687949405094788601983336971129855520362514556000293746030070993968923219759910090875172463837475653546508172280071940193751145632058782974335566791040459347880612310736620210524112060030688821775495784020228240543549548304298252866284102528655174228070554880706553087876955004361090134021317886983074265474208949024853438278671814782817759063659399744277378026633542234729721619829140266093670889445352941844854433031386517896201133856964955429684904453578898529511127547105471511249674337168365548974219729665622694563748881582475241405669942947834397650482397392005139764636673941349679746837246963470801772422247777529130056180544041697148184453859975349619746236482517237258563152813935019638004800364435670430029529519334962704708666421734356807512423932552147130423064110307668247091091475249570667762243984279251900073154913710278202249645862222655623341843682596440245426043681787322194737746243984490421069738594774897241054771163431794673570995821669154379638771381654015538993060108775610336519636965008017770136025050323433648520272904325067645977396944522504456840254073812925996446054461252696088155091851133302643999116743889576481246194259663061343556467684129621875864266007285311406624134061539642031660807320851552074160565798025243051635357315915962647300392607578277696577359324519494506055127659871259900807865043829327840105176442953244538401257070445865473934442332001299238670907820775884033791425904939348359279779444793844558321517356151743032493304338230524551171198567665283399906025059175901950315663660033125297398086356171946146229337861505363385602702076994669317421295638394026603174336935539534759117077773330292422475104331092373152394868068146615176267267628196457631690955351344633649881586979225038181743034662777910389862003032883622889593053258536653711253898624419372551365494524258363059318184806434836507393426552276407246680889506808030310050885989028852189876387794396971209037398812045244702070929169729449619650815100065547493384354933146696472722476770944869639203726844873426352468366574553074072805458100102411380140658058216907201210470012890361233363893287162068474384248657950215058779805674566678366165167225806584555091968775854140915905534461665980346788578649786483515321195701018926637306864124919433750377576719629858420030483951608320798209891623678079860154214670247374146755704621585848284204394496466462061625727012959901276258150200592625746650502660042622162410169159703802423778244948629841573824903876819051616921674511529753537165815482955074854934924376154269255224587955718848740392559552703387292869551696331276663997106485728967337478033928804941929176150185765283983384499311375174463012581351999908692059399777615136788206577322736262912111992230194689350525014947100128862026257890462940103568677141684408678459036769877920799386122415181091108296396654206002644856332067425453908416835090668735453606874304226559576622267112234778541874006595199901588367396711567136000649570091067422572659953446365063766780603160451676109389287405795647311095172884857896051362592606687082331701372740515375169482344377190610491459244824349542086544127879638272859337600261238120104165995563369550889705743827112587070805197690504380978030242609899581523808476824516782982967449677359642453213526478137113941463047927695313479174154919296980355294567655903360420947811273863933217638574496069153332339269995673580507347045961648762610565337326834151555264839049706579602180228453137172719809129982308400732367307272057613878608184996216767392773898979233900530231550993475202573762829927365012075205595625909799325119283405103270264254178840738940191155015975982772766352478600339827710986229857421618144832652408250527229740330683826922470407850890994217420667758582742071814944809494285549346137113434903731298293780564440893517930859806629314685219556830144167802230806727603791787704147915525466226352640575402590802742675004707815495672140825316184031338312818162971198570593955780330736786099970238804928745397653386692450269320930426542567364329611590755581571741596486642536310353522221770420678913234113388218371104598303630660823910745846729484425431942831149004160260649549243313240500046303137057095237504965380389159963721828364452614950233463528927314772658526790822368407639591669242333547983416356355354293432315496249597240262712070119110401280043761351237715160068143411256616715317868441007506293421243621022218269567403485778663116431542578766547954496568548142266031524923626006509404905513141638516284312262909112667355319816844068253815155248544361466779345502433670152067220730994964639754204283187977887180937997147251460871949780421036602574557795809365871672696718869958605879845095204820665132067761605099881997591719436975980564410852282088798042903309831791170960130736701390897617387549305778522640962385061897246374975676431036558269936877974789872163490597142966610501654718059129438783561203895176203241651364946789111260841978936261702947669723021648969747885597729050447710975666169959687035907140847799534631039445141579594316690285729218299764212455960308022821376222932339188596259739104985305475731508911095529855817366065179269547280189408743399183166988164416997023809263841310608415085626715502200739837975119118446404600540913274309421491510095102260554686559317550248102808311274069431261008165166545507639433629447077057772187971483128113787364342992877153426120451447936414089876599789674009899462633436764999223560984524884912153786883463574352697400931505793760456251005587202552169861834690123959724009823217631627765753932316784132250517617445842533966243629866495886158244474801090521165172119939123841549614292182123917009316445771941274410024223015694734922972424522693693213958042124929031320461498761057505350196473722642109272602573726148620288989417245875862328305617431948488861809161652379208059479465869919806350561914797672616261522800306564013664131100753289285858900494273225714606020431385561824957677252494453919995672828256182703332501933967872539918859340213025013223817046197636275524887516337231163005684905035953063088071490182941695583507639153176729376845291517188380866831685696479744263993584350510411641356011301840432959394619820692426015827855816912983233657363962835445918539587506226266089277986271308133515802978319562646686457020503220193334632283676984876692054089073655130657896951532605583551591468244978256462934581550072660516402208040394883421925694189640959413695723698946893453078073279773510976018479816100911231035481008391111043763577242932386198057895372789053943158051058847657912491030961844535351159596856037669867608115856764937316149243288246149518631222288463740809429890005906119639078537307337920832765684409548980558983552274594991784210304634175422189404090811846499563019260228541355523042286111305915819871373894085572063878680669289279490566364006680985828330597071466089183806163100561075117086451542172800159526805058615798104824425082740026178385592399957969358629795795399367257588173222202724527545265629618554465610310139385558668286667434423227423863211653531604628834630509546057333382748518502936405565771558860066591664932869210884429328184258946547094970343649037059807995776420001225631482554190503536471054621569431001582770422736533008779662770536282769722833144347905490454162004752039031314968865601190710340273034077804047572261071979689872536946153117661698251471697701504817322376979743445326384177689709290509814033832168717602564314094030591945773686980953084907055281581419384405682584086128481615381831477276984175299086702024362917068567492004187266542293211565033311760311768356868795022390311054439900637706342845791818836600198277735901265043475892166643737936890634640614574213660192689833096798765369356654664976451674083489899807099381811872740336182130499876597456006261260672076474606990230392887311287232424757441308137586446821413439344082775686933222206289226638068311688489230659882299680835986181235850926561730474908038008170737843964448427518613644952562295694127381878667737222755130344302240865853711547996717878287697027133248879356283972065586347247136135158498446716529869365031485455328964445848027488864062135204800079583324240393286940731111048181125915092504670802377734122749850810071074457453502312418476983912857674741585856305728734869829831871520279394914448919255669006737495046679397279153432658135510654232881078642441896469533392839164917494052066549790268918043228895282288300916460135919812404675591965525412754758041558668595916578696840160238729423585024085836338936672427826322194801985287087746243550486260542621086659339388741799130132278981585847838570126483330272001690574782656762991190766425219272625730628835343407455164724671581534341431843758225442827484523052650645150685200428958826289639673205381417110624566059320118965259967389357042154986217540813991667571715815807188055189661096067582480483041922214618062914283099273166178146008472472171388118331955638358460446043028032607085704716743624533840507519776032550006128525874905883770800970151586813484345355047490280548850441192422136741229443336450010086340624207215691396198019522412343448459678967638497304609246497820751714850708498156123064593319815314809026591834547145086935756271335121776891987395265029139873166797538332851098617928406745290276633815293755497495658571051827929948629591963732332560299707859506370366294025469935451029599917184238313947186727661844574477923992958539805662140982832662678685888280785401782838763193433062256138095447534478490403731307547357202294152106761506748426424714035512919860600421014187944774657126884778391261167444889559982644963553173926843558006204588964721011728498386692231194059098748699248101692230888643787082400059626560863497771315852740679697396915735872741270914611413635596583049422680929937554720887437691751543205964561569708467276031985875432323385578523424072392353611951820161467458406818988559814001364242909238921709828361498939826682708926054116145881381064233995626019654350132285817675700664903098193753280052754385253877268169020609866596700058018048688608572122709330823603985785791298919014686993150752777936905032768050930049107050820276398749341964360706261765104218666821329023114684287913943231711566548554167654419979589012174877071685890777405963841945769076032404182086266005072203459013914308658793265224369308075495693896879016687407632712566522582174199348293254716055417489892244205604372122986241139629194565055046085979876807487011963414124660504506515428816757342605511499222137091498833813912393602965199040654980141989598550239585894469384772889721421383763117007542413048175458339163075506311292959203126334583209895355525267111245222290488001106258760535560930074805456736046688229143021588859521599056062995497075681812607623304017099799203527333436979668175577199240097124969514842933586433093433816331599337529969775892284716138098589531802179027361142560781336971984285578850316873413477335477682644451769577624338994334084812139890703107339761598529147025626403587186852600626842857965373732198300996238723064353826663325624841553602926141348159657317302406005570829535040585060081340000076761231855283865949843599940545180112742656905481313228809958651694130195933067705511978926275987418907236799823321021726216762324715989408865005884736266126212858454003928407551646185041260190642216586727500479046180704704610386124366633201081249374151374283986512627833862187294213259522490111372681756762883254208520002648297558736071927553207772577690010397959925646349226647587452754359186867035642655635755140426093168588762481025022370683726471829398882421547738838238506863789303578720273996325446847564219032523576705669640211829061246917178713320486933995926057098575102426457715831112290045836659386049031404526862376643493566026429633926307249130655708139564026802385281522049047285074182042498989050838604488150713384322093030217323720743749295004781154498496522888915947711575800146793491637731331848214619681298837877499655007069676908154401756570045419312248652135566751286244481349059207256080597767221169314651316510096820518388544593416494616564076119020863249998288794382695142124934038073856636868796406872315126005448970437085690457242112189855347766179896635827069618383696520449371005303873632708479969672188731272878255918878207244708637785262828873200912678923626647109633312976745795201159971322833621034619136784429900854505281682944687614322084972372912988701476600567613079537666503795464541875732931243301815801917736714802628536548560437725376729329662902577050965248234212132105176240807597035496339403664658983297169066265207382047852413070356449041589224777397829353266357538024689462923545054652794318907537451382870691950728093096920520141380868885100316319972670678090528664709210124836005277604041024797448165087364226608531935814468419910308884944951886379259192213764271325543984433398075704983180988065029791477105752926212402405307897608934975677401509259651694835084726354009514201111512893893888147870107026403144942300933093132963568737491757664541722876217158231830546806683024669738214566620250930882696277063196198948721594810704207097223162955096206563509861338923814245969456382745722122223140133983502866750438815538404170973885252443719561979391549209000664052690178892141248973998512465476173668034761578025609891194508059699761341363453027574052345421531170365808593360298561438706519691413161249157063595607603191169795055983945705146405968999646250664597745551381065665001636113986985468586312512634820516741221277081897591013782091490228776779412020908799997049800450244532988818821983382390636716907779168992522706034797554322023492026286361570888338011468076447004111860991271371893825049405773283406512546194284531123245330163910527390762949428120298454475272920035907237988173349843935818676128313415423531404640557095029501227546013795443534290686663680797743920321688531239745970783643899540400960676534026510993822047633178515097534596168073873062177320914787253504645106137469635459159505068071451342177916693660161365945846721663929527474680746181805906961436386410638433796614565505922175731426248658441452938586691588619413288417646413739600233081172478980532652306468694621130148796607911396073870150660084357080778053869841205755906467906774786210896452515225146615764184659665965252603527038560641884509641288609085340190171069906794087805437370676105858976147248976194395939627334216757017681987747970726982383882656467262764443232675870996336128823283494664857775511434377075610639400194431076591794963523972475833558304025875885544994752789806980274117452090253304587053004956234619470038274084942120480042481929735753941173586194925607809249021873961984138634962706845433181822795625857412617028295098799996814181914848890579269153090908636597987899654905471680871098281738521945094063047319349767263702709977486265390000784410118258837186678842669519686156679772008183318357631940758633855963559486350260362113567966116638688780367359372293954015996749830344727681771439818758692275459099174196897927501498450825525577022764912191296064797412587115466786850802994561166363596758931096226893276468100331260879994722502401014007595172214594472240927800424909662792312407410574532959160370956516421346129624818480199863189735031574198642624241809697881220194705625960212228899164444316271107923965072801706302305706761172111582066877360165981968432088182139702699144695974327799268754624656666030418284134963518189760860318282909008323063219745760124906067528029215071794764110480998300112901017219187775720188310180104918235174553271244127531671132394678735341015476591858550457827865723307334723506103784372334247068759298113711810766934265315701537920399589456302350332773140769192097711381979470410222356478080115168851469244865622518146408661314455628690299631792247507912219028467554913924920874602349819011897360901866665913026440502457687591542752280109142901186202781431760755263789867866376673201957360041647832128732675429076735145869999449180188019119910214173052580384788263617777156265819962378537404844208721702727130038878045102619299528781329226246671341928635736099780407659525027418480782028356376352286002252381546698630188652410025719072293457582792432842073151103203510642921557205749764252528204484885347634392701912595150117046254731926070296725292409813096631506548463519037355493532514964251302902165344792941862182546804141887320620472665041719721202460141769896250564854917764354553131825544889358330488364815926476487207571482837915008915799865510022218729514975754824023111794801385659525305302509820711533152523220775464509029486633328368028324826023238584356238544896280856974320654447481058118831954810158234701439825175910444201408518615340040193847922241479934534546108711019059944189436304995068523260681634294702887724474553849519077254156165639317277728997488961239893295453168351868507975936413764649928437744527686933229293898941376126766731166904604570513164021012145203688296783186322071112820165277396718513249004199389877467531112379937691374173445654676696362865009485940736770210234850672334972413345367924409019141509085450526552829704660283909695113773273955897369184147240562715274227046181690384097623634505284901004140739332652287244651720453758889158931385265484722373411551142233652684979217177256946073686390924260723669645011479450043983139014876334965910283314720708928556644070716042182408702401389585917425861866039469265111744555078208871971719252774219275868601098040461300777879404585640990349613517178834830381355997901660458777877384317834428703585232461122243278597567523875995929233726161503223217839084353239871809273243867527187757259874392336370343877129524973401291794070165673242265040878941154775370777202582916309939455066685083637019696746843507106033121984522494853703109778453219652191545363732194805161014763123852927367481256945433390734522699646259669672072358480696539233654270224296740611539693376643559837850269299135327273030844548449087854141269027439403260545059678892179511185926402212708459529111978598462753410978618587564546049789422219198862314694904309388036673704011548825170108238845827916760777540378064376495916737926489545346473906847491878704539356273888687214685076553346227492174437455615074252069065347252764564956274268118655992281933200056347813526428200579006837541678806216545155795953680793788835817835520263139263779373539124719833440361612485485016935645892631044142498032273558707552201514135599219639180530226455063880960965090163082237756491750225615769491898124164700586626286001710907211822082656148143632001695355310067693468693984293848985602336416559344454283119250570819768802771569154738376230992778264545645649216339043239936205540905021333691292169451383343444026120723449776012960826058065088521827181575832944403193009515277947031281863038171248903543626880530537610750128853444091428621180163302354357039384672267942033735955518878482315448772913373861006745057267750570544966300748575576823254927919146136373071822519767178844755357543437131173153716796683632917573333923306646586260095129725306030698503598617585803472649033929429183486447586825982716737100174177482663645604010413524217331242775879918269427832659099480093190664115232140044357374334629698891366949670821080641133680404051522837115980625043318050126354476343934738947365373289871801487075243878925572867345134150389880805194896293478788777735018237922624644270654896318003420115443411307282071456742874251130640362973854014785178942604924621895880853150314034136815927102872281513138266928692039884800401105963751202018545938229527115390102989849006113890391960067029989228435602096512284534821616459992803708257838487923226228209418355707105475804952865474278051409567025022574559658004457125283748368851779359048582624371311324718717255451421869266970775795169063987614780734219560552014033903811139655512470750162959425336734864452736417644349814686142531754916637015875283028227751517712925487762942212357093153584313826324315641977229259548388203214599794238393073844689841594733723400867599000058874532130504770838186691964822704214165635504226899878921087490036612295478577401107852658821109877124319595135248940582996894435885387102902955308154658685622409766767003882640024885511234797595917687480852381250829680567210430119719656029094564878850214217067144972363015193980503110588436937174159342190829052128485979095954872278903933286419884568574727793546023754963191346383059511376778720800502214435992208594603491206972150881372562164710169838656932831349760574003947605141110482499673166741879944505143625623471367123029037744708794467278391920683224785252386179713962173629635465077108673675727085451977247734466998300945744860876296560590123636102365583364567802029424056215544629797769919659642933376691253211802087756617058915067455453655238992222954260094726295112609205852593879295031137594974142813900309534181964780320288771590929361212629678190010717006524419895447728426261958552365497006556319446835441911830739984568171624339212742710877482487850083398227018245994588204695246892233896723977507313841926845340282596294969789714863566944737808341305502252324975799072206613813853400213440367535109948675891306718478779000018655702184067205171396574676590051691311953237158735320639570585209884294658088388941192746504948531132086583591556891492503993969909543233255600052640547999278093727152938941030933726577718380238501518452412821895981103527777936275111512730706367276004274917753523489913746929772252718043269338248946842679963302402963254880113836492107991673233675280532702324149886790482018655224482104191495188358322261006084108609627190081450231304585150573042949120885972476661192647602910233419825635195056994067632857842385352451500637917754929308146650955732374533283469440637385655887654666080442565370862231040090740911781612264252853475030878222616106452097536012606215500673583126720870095332829963578074750157133247926662661155249708072311162092754089971287764749844923374655703284076945874337457046012905656774045014138011342816736965090668704719349361747700552551366200050753777168972980472878163736065956854532712329005230193881056771003230923015424636696313843246592829824677891244522732199421883017022609733721732274403836441682603063030483801296265516565277126922198771588774727315196798030911729107525344179652479562873484798566277744095553987865387651629146202220035942460829148025003485490847707055168109302025105388064435833803338273835786684319320716627489015133770327889614199188161000217936182291520743512220211016024424959869838669462898259260984599417149372383173259908635550267763370869795689373486027666288326493658698168685616756653118858421444105034256486437437541901290340370016255804892495637059741655367727949394592266227124595661029398335204183021236488183088798509737316752761349401530467322976587482329524684590877972628058394431043982883115501234035214170253201115289789912353627992115014927968453459492851818185187167346533833245130788646246010709519280408886868630024150705417999960369910027598958920219131367188565020234759391789242339260428252968518484977556321332181353033256049607565199009545988499835672852680469784925720664046817452500447241464806937048483154957608059625838323357639716048865779377942268297272992325668429102179056215974136228886388076315848195266429628627572149125020660135787695225259266108401978993963298075005525581870996218787056322782634165271267098587082402673520014982788159172652501868437822061809486803812269259168896565769954324364633823677660376320014873099288772904087651944861207367397377389690534021159488133886362749293517978365563495314583448826188220465655759146949967981666124188307111876547304435368896488368055196670563812762741794202584684782197258713428939110315571328036744262719230352313680277199333903640963285994659195696150442228187494062464184970251926860601986488364934096502638321796963717833572313448721608947035191251390879228115174252689837909174827536272354702536003827801898064307651249514708144332106441010913633915930541859167824768026849090744987049305128189403702639780278327103595006170011277090440370522110984789691745448982857771294174553263870900368681072720755021934377311615065810234200977182912909438589289245720927883737982682849487336526665576716962058770623126067442910105963570761401704657782363040961395805744459796656935355781413707558516658898630303193795505274033411142783872837714818933793728149524233260699947635897121414463051846875490025885576767770002621757801832971927728485307955103238213348947596599752913015174118925398786993583591738150988204496705281098289189064419872640057633992911596907251269130095041512233024179734855501219618486841971694341694404441402571998047368538225162252333778056329797228611378887962259873363465389479139524329983897350704055779030849566183069091176130968194457659713759923855419779697148905830655058916139838837853825117913622293329281194369230846358023086192902121972235097861166797537248362996519132616198241037843060778949580902864762630059665569348404429700231857371275828661950385476057546797156340250659397997619022840332057101998775177422462073675540988255807812374174788082974841172352004641271341581428614260791322345881461815799033881343705080301422333371945529691769327038947001467548234638710289541555735667558868881810397456976964184868401638653238018675546209444332220619138823842692344751597702254278562957878201011192698238649267821030700509757292809451742344539149755725342203482376339134126453803392744938131237330875040776127360938402596619141232949409710072530718614749713286355552889608479604019915941164009137670697489920155082708442999334040833313919046641987981822342388339878625311236687909974579872108350727936203327928365573327679963696359541804877308785585540316436232647193447060799643570938111985649145890065059418942605780074051722364091134737817467960592871033091577503160540009890899773568406218331631431277324460735608340435656304065428313120992773458116146915567820326986551508452915187778194792749170402777112434620918491825406788327563132329050400399172953179530013211862974207464078456842504161602882610366306311104177610024341480781300515782214338492255181238751574139434034699971196976177112690252309541460233118296997359857921137286735897365097010117803061023944330897326421328923006662783517138589895761947182296970350690553726818891787096986336908067296383148164184645532474411465885213078106955132657712201509547802328647389355770995224702469149293038044601409381135142250524010336098731437709416274470470285063159431113704214920593571270225686199632537391294894357843423599248237474691374199128185234878315137341233459423427993197490135127999968765346441019871983828204873613250516934975306237755336552741156893254505866399422811613396497008598106156813174710014891688393228732541329011260294222693756082224177277056543600795587457004199876853428045518540443256260869314657282023717450947337359581403115821813971153333669252626132965567069089457141800991264691648659352923821170741107884060659020643404632049717867667070744392065162843967335248736321429480439704247681492273807661649376274146812096947665870937878608410785986001486344712369213832181798713182811290403439046851062002452647761182662093624005129858211360458317389588545779885314254191543285141901098982448498342326729861736744103394227451588464742718015931670715749406184977172168904103713748739552145349312214994693216682701059509706971236236614846953987459084343094861326530597834935108111330821975317647839398184715838305212579586115100971151452928456479159336831003130704526648734977292867478235900580862426026406656000920748060498595347862695561659358170992450852406675909848909182047165997856833262953096419457236704828988464993275006628036249292027042900622571677334273795946039673240859248587266404145800669692967832948255311020949870339961406838449644198195211970672936800927225900917819455034117166400611874902594590000582360051477284992991480004958231521749545361527182464118272850032013916652974616165151093778756195280876336038583909651743026998810570096457855479559070538072636193096289490422227727646492926223449222628976188707081228421300312823398966558261573401314965618888168054296709631904810920589377929517957998730100589037330113114127354163044777682464851882007590771524242876252767642892117282842075235109905345845372630503414194071505728366839436103081196341211495647669112963972590743990431853079737052864287322303714668428990546540096713687511432892975044246921377204386797017340913251441322890469782908630299962147003062954055807074807514839778414081515455834747593799274221164612429136142201177372250037296394629607803739174961006404878205572808732720765167257858123935407807117388295162671145006424713618259535891276508358224910434684800316519612497100362961304293956852132066344830101541394212797437472343711986702859698415999727289501175962692218346212938695627080503039794049179196782153652642921794686853495343770672671165419025746176361538159477014347611625600271659215919436075284053747149435437605232061149611864256909254006800974349355846916589625603615168573745301964557283233758540225526155251107959785290317363412054731730397057782641113660354324786954120646146277360899205940662102732094781690821917656853814351371275363053152326794321656074717763530214884699514940150564990892264962571342049506561636039822637377760625148068526328966248068779878356010975983536537218522492350302680834149150207232894335929856733921425055204558781550935257084455098493377123098264719371765575688422804059698930113919457295531390535393708058696919288993006271685427132884749923125788018691975427179885338868238153137314795658942063698225266899005263158433131171032850733365537951675831055194398654429966728479759458022790122303794391883422757135264308888605602392786169725798916233297416614457937862215548393241467763427690076154909650255857864087143894238956284181282436206261917433016757222453924095412828961390109164597696289781844168387766021283883315935929537044209855007352520413628024854047484813903143126709616053615227379680596512588783164438868674957425054274601157392480803019009534318223926107764075406756334229152580631588463809549290482773025577196869360902795524357145489455848627105059106829185563531182064957224257782954212294596522848975438586480540682642130118928197697937325185466909156295202666650621424629600297398245069875222194079302904623149976718390782704128401154907139818335254004815268602848866021842635799129843782422194215429277211691769654142908574148958235985753583003812798869951571724521364393907107340064008384442355729390766157264574877605348044656662290504156578043163065371316884517163764654390206261754702192668967273653094729498651360378828906057473244138246459173648028957981530144087126218015191424725793802442357445613687216972862256537438250817475258007353099012473148937090165668345324820910431442845122879140625580970556935875654671073153732985094582888896906963779956356210481009801246665097239036807639597636496587739348220008788936328620508155081238468387053305725601298398793994409551053895895138223603535459655012907660183138492454598532895608035244384051799411283893857447548470740736248135809145536514521208882189584198193004556884943466866718731536029369096769623690293232216224136139142819257418414992457020148391320623451294612087533836615025438604646027697178307514420131113929149444039443042922584362152567915277592098095911967509871211406520215820530242148138896498553590440717303205632516311727052925881413399932739238079808063362574643259646761678847923685148026378153622885541878463086152756570999608111671528989122859461530073287889546697317404293842050976644049127431394502656931892121728036541455250838184642439627589409262687319173699671078912552292869152193019705989033112493221563209419008474034263786612562182058817345770709191750182853557723636415171987047911558202323391350526361867574135837067251969788758353169256933851485252888222798312744290511305827499974419170062205314155207246227621976572341092310399403638070843957972136552626071330038569991984351316108477914573474282479354827869848813140036676816773044922678766455279902947093145003924737848563126715753913870805151301146105075956657987830423475922087726136636959841234701613164002408007432396761459917532389233637305846866930863181090744942500760360436300962955443008844929379818773742280213575607544884885007357076680712874969738990608953577757894193360716890999262428534692613131940150845015876895184110802250723967293183810309181364826438722695332576287186292302631156991172721439944909175569767045651369300725153599402707741134270849740399528912289596015316908335967043811350563843941087114185560271465453561487580323787467244975306225358546769951383221150617303544754933898339124553102293862898260072561755742891082571860386751957127818536035194690928753340687483425171257909084607728781939739683707330820869224347553724098622528333517637223210982863662341386566870737192038562495291803647433905210682261024834179221544492495654803433405817460789302509964605111899849706702899391835320369264430296842826009839495921229422973862195030380950095499187951529326851406043967087988004180913534990151169141830273616025726248800322973171051027187799641468609286365606215206249068844253441209889345591900442339753429924465970579248230641444110824925501839871253050217535643272010273665617386462539726285991441368208787987332629937045709047930660312628558108782692901793309294743629894235111476210284656890797549275189787755785266365875345080484882937739743552191691055449119627926439585803387303975701279110832992768560833832966706565598902881449564073625597203200780497578025765769921300076807475002444630818802871960282181184874912503588845206815499408887336704606083572923398624098674821424401904286475903779831771981304847064782355822175776163530024389682091075387574643865741999610428638656963158510223127261782455839851756547580524560629387692885794126548834599995601335554321920074271361212966436112510962574007007820244915837642139503753888588724268496873796084589020531106962542018072833386906750710552224330224323413564785847724599228157034763197601901675505677715920968646118674460751327134300679312581791518876639687013684093554506500188413787271704482339718424999488868236301116935353244910812892971059530955356255227289429922537275567476640151185600622916871692910186656579154030908104323031869086293483691258824766945565110666116800084080742330527217536867499766200538639708581754042322057357740468615610217468588467596787340159349579137271687850527545779392356288335794103155838274934716923866894132018019084164958985818569390654451180818419606899938961710825184207021062091806136231768183003698625064544597624348909585163166916074657090157344233554934561208943378367356200179421847912386140609773374922616492632191711141630946760671097490733930271503244121030426013374913716732228966576095335589196524396367829072890625222797208765409338604275229770314189673418954639102509929101952747873112358658390472282320917044704196375175477955442894809693247331137405443661335641205853918644766239277215135638115749941742135297746435433731582316539220859101984933325678571903601372771758112214868424884033547271573506524581232991711001737950613178505778785859555623426316770928272944093509501614122321611691129340018630075961302248058634536466598616895210309837160401311823869429268213044004885116378318439320017104938967906992491127469253952032601377883864230266454788125323463557476969229088770886970556400210852358674303671395972178995090063441413845003727157969031434319606490703258506340713230604437496122805019681833278447659435719760271764642487138141803913330648803787076790595258096259853217442453824851803729332289262695183672275416077863403956635059286824592613371751372756689564168026096943403765968610709118906705447273222527979732398992042259853446294534662573039598932095800365381540270162276794836503538665120500806325170070821390637411005852574567351810013428658667844245230480131919100358395290857124384529534852392608327842642777442060356044967919311135094732754051582815302152525377294458238694070865041634271349328514899323179823847342982725665649977580438693989071254408033474892915811851879725612695043345957845871439739815017191735081157752111038410932943424300465359757590141032814553739993448631745582940647271675308808283093417687364839242005825928203824088910296880531420722261102872839802373052953689391586583194994844735116950585573576163473713369743918972928743414898549689947558187066029059645510828404002074257710555569669839190138583317536569483262758659670315974336643527535339657477214943984573730497977602691977832074280504642389516603294138559384818890611645242035995035203265997333800285724546115555439250844050635815034381334641281999828003942064274560434386483279674950766900401264412651323418774504636165138006595523889895750401230935472384860015780446526429370111238775805234348796382137115763155467557183216247007328919335954857188114106367936562601911103808098996548460832288061702989578312286388623273345581075284329508441416814300234598004205840230302419550000387688372504560149654254886124860866113402231038848477293898639092450519382864301572031639379551974892385247440172912372416797574996383265732625784744344501200850142325242195913254894868013390042364583531464219242083185310787705091898768033864846311499208423790798577855643231331473561457919696441655894795449702129575911511392291905629150597099298363335102219542223289727998894028471488493728181196909422866303351764675516734359190482486291080459405799589129792494487707569021783547962042395700365323229475272405754895138621223097818926138180930873078922351089884237333835604915898941681713667014397543460358658923000141448065189404557906091118821512337695881212579725167211271197513368202191022437923245700744221700812735165877958841062975630011182194112602519713628845213824333178148355894232405239578936791045679641851347805659935390956640746717636364510597727846363883989018813160847177643849705317492918133516873922154517728928448103087963848624229049491772194749882371815940974709270861935319106543163523239035993912043535921695001331784554094214586423385603047665179137289927109733081890867805490613266634290017836653436125508303622719864759252038081966049366930501333671848279543516296586169667810911773547216512975323129009071026612537823301556567617699644833914408249668268966743509886734973683229098064888018048830903491138496129704818353690170765111886800304287861354423541676359094645744731219105383655267561760828626430611827654951932490586535250395337769331213397404473549478774429999813027245141673463629154925087452037447659788393151565020643681219256625302361139603043594806385800974744817834472966129398017735114133081300464633820680859514976616334835246415819056295960150537286336336763375064976818525721515251707934453534475077509727911273573198627578663713709261900749038317392282442310597022552469542649444519596585106083202093482598090129971619370194773717179972301050355218512348800403201177116719540389723254025916088837453797963642481646922303253971628187517418197921768928747006174538470102496930403360359208008391373492777983538913551368096509361259269816370066150778298583475664889971298392552148094590673695166615524891884061127709516601659399986033407304136114553343029505514283336795222335334455223364484941120580187638490341404400364558980029516474507168812650429921690114962012487817200081766902905994451819328236638667757436112141379089097855953047476991607935058870479346726534214523598683231479447272542861376220668184882074244301324885392750296026068133820210917131065762169301465978186954788870661885384358111393782827986717686265880865645751749632121256536150811133951717048725181481866498567748429164217104816577869122338061319495421794193178423430935979134615222368551741424560983534059258597952114219295669775249687740107605894536879426017347123725152689161479208339909144217372081251203330916652846508640207740076628724433293733503986324247311146883366032212124133390009181204006434195038472334077458583245231366324208519803676440583952726850312950416973165634531291929396208647520704029039721822666443391189579902307886933025180745161450222331324307242955100086290892256302291862093335884616309821210683003027820672724971637988384643639484527171797935218784023175941491349752172127032413424735662953575364043111308281188759338139153768963183009248386430117181559983425256599848974705866815633352030209417817601732724823499016146202334840001542121039794473387781368343776048140969382816355249849437715337187452679796738485482263236335740224614201456629763443977070649425521421837348707674230820699308546020000818220744783852574127365289685231633896523713843962296462401772800527620743765502293413703763236810358885771422845045763924770885137221244449599901103450415389812391673054402477762864750668066717722351611897990107654746679658751569606822704315260114779378105582542432696908349936786735034129586981820028747990378253637766098694638802613710074457222491173448136106017165165474790625724769621835637955542644499262289538926319381851536448607090493631409844669162787202574775299973820857966346566155965879371649212066649544125355677039523036485463517003212949534821843058649272345481649209908707892977488995641793140925674919904421508893052245306900061904766355347093067338108027925728965890664936171107154116928477139017914432985482739686606880798388602241265930052020925795681764570320901397779701829109689757518777908627601284599314281340621224833917807817747018085744042357471621097817915469634581421162967801198873300840161562185443344970237302457510523365441167482834637492449367932961326809575490182409678469123669223325236620215226435821609669756210453597545989567924927986719596236657680304440977761999252464115240543469254484878724054256356223314234074929668544185286064799343959089070898324032709926639172217402044508975179663987321538692812761184054351135044446342255215050376835741160839255317198227890888837317271437490255079587158986166540830841502583388261075330595926218344819494462328655433047979869340927648968355632339601884532522351070424560831138108808661721818983753380447181772862251026519252685688536070538570731094973579343357798844225943046906434710317371467282373747751342906985771416324184054763914074640203658235611834984804994422718690705446310376434180565859574929481459539453829211096165397723919307774432483352460748358194285330370298757883824908917105157679144251020126075406576733780687431275750366131873431504992146560256361033585482786121902924647999037513631934295401293392295970899271041343183883359367396685323489406213617399108182922272849458783794806450823540595832448291685468403259328423512764994357406457572017769772446084997004937214153813383652102741469585780657760511289038623804886925094567620977386447701234351046569076548907475739866495195093938482707190283467131634761947067753800944552891445588181934927328955318906598623227377148209299760210782052568727152575739579366393608236157901494947990262388001781197598989225475371470838274565299466608594596009780481204066886576211290310917911900436033461723442762870862155850900741847238818648427770085548071808360329962342345170379534561304445649195198520414348534377604820021743775152462983702700708635274368699883700713972773935742701778542947503290271464779934645415592306364221778073997470118734683758861690417989372940950358916676832828251767115613886684716375406767256437877669748053731345662023793306447768626019987193202410295938373062490904486573599883170297850231967517887851486880486791930994539802169955190318417517545017763941247924706042637555208748292237469716442168252420593600757065412087641202637086095886519416580320395704519945049334532680821994994214973804005290755357668324532527898446238319958138257523169771600600993204383124004703810747935242398063497655860938052583058889631895187007909385194059127311562526938872316936431484817648669647932268229113856547453710759557590628728274189309038127700499006047321939191883624267791812292459496811119195320033811107897072520644950185626704030886283629959726222233228602131407892414067451318478802958243321697350276498628115607491203843428126545759870328639866238486945241835109493459976393983605940320661097841936345951855454002206788933534205028689099124711666245777549957975263102312220269121457448588523835220933982454412468920979523271872432081143590772559276923701022987290132668322135371650514900808530821279016800507105291177196416900992326310251925437921507805638425423297634599236517301640329170864301765787758674027873156316688332330624781847972744246286551337298871353419143205351715253596110936760395345387109497373034693860030615320633565522380268324169090606445016143570302523491677176983394410614086778466121310434584498166599475054903694701041105390140017003294819168015930377498750459735136500744004404722856023599967290020336894696602677409303270415990232915744308712931290272922575224577294496481960086113442379351431356454298040414770251486130016878127897999016765336598781929657979485570175733904132663579385373779744579364351879574412028929383289320709022462456058092827042366229295715753124880110264070250023412499988804607079756419340604742751765644830237611506417256727208592445101414814464817070383808453269717146313094567620236785950070257282881468975621414484243430380476760198788445502384037323638413573828524860401907316086237983177158184303830158645666384405854986185651651824076147614955412755530213997990132975320832235965936615272679443915502324114825305771090317330675601021217064217842161598136373429770070241203045220203418757289511710844747987891551303051579298986434572114749188952287355633408888121403387911462200701436818434406931176263797124941966597523464659657470288650294871669489547690571905126658078627617884074310434864218783071981220825856783453414408013667119682769193376149688119185653371756774729227942350477408281529370501064769692845239670997544197272586025798397563460066998451881552569119898833394055162572031130598814247459074861087561264989237757424142162332310799368832431033608916251548564979286125684769412958008387193181470813927769922897684687723431963933714001491307159581379772433883432113684321532821387913162381062624109864635191665636858984730087878480775438483271576968268621627999147592952886053840780779796996483246651085615704403649010706987142442978530885412792506316158759855294687564888418650763913275394923411923687369932018461935120835205387699814479906777979833131659661915985477847014658870156707311131526750493739072408886805955981262945790510603291824089767032557416217239627981641578769511583548575620763300299811382732542548422507575038506447317105685569166140210111109549166107748739957335303502500776331846693829516494814645224787053212598037534161694383402614319511820504588675552230310913121753787473677281533850581669260946651058023782564436832740442497611703734068354528161847088075583949896606103784220618674192947132201252243816923035941999533785760347818847150374680386442226044530144083146512923337817617040403440141215633765590832890087480911983753705512246017851052152655969192384083764677800900125166576300511011893125074121728225262060843736789617809673682765600445014692159394528411518958898152583712337849826685728741707996781595214111949077926047629954690240265981853270271489064799058975397151210595053514688959860822219749901055778540221946117765117804664539738008474448945582873031262305377102718916423983287916522126131414059011043131052686612424633060246924233438665546530272482334447519494240357894633847883713872399026664643907814740475037440790080068268682101535746902426357552246513208929153532021904592996176439097440901427359460651546809222921186727442671246992913869264477900195264316082092462966908878970009433761136820090420429037606466506086516306782094387479849130710299313735630381095698743768299491014536653412157884887770821744075963250678697305409607390040813092816817142582801895936389343399851160885007261358514915927117994308404321516985763369727547138210243502184635360024302723651326234965178758786039184681295902578802221269033470530330064681577555415801436999235586254170612121029810005729403106051392157010185722763366681481097224386925816660634435072723931032247338822226847461596127512074518440787865938689338855336194085090766377098605124385258367369567612676507017801855754960844209270565519162363543046783580387427233608263084696663059989721145446765527057852171501586250601338294006795858507081199666018893008532159801655676581654733377559138657014107524294236417091217562551729478145438371896542455851215869464083422004384630553187479475832728097437354330919050077337624152065784458410989928716058820827314584838181330065008052063469195627052378309724605132737479777616146872789995434860641634309245740952348157008768763732924881765714931921382311462112997706094947737040447746616522899626419700057301787754956709927237298798873796417922954329148947823606580593959363569047978520809707031857975631189336176300675381529600242116852139216569305175765856837874964460506531194659358308233347792546930048128018202386931337440313783679082285430084222226655904040870382078146273643221732518597659951792860643002670231225956549108982718565297261468783789152563625889180951856907026314046618028227002926847838087261783463347858774711092766710080963335104808480159226973790606059410853704873190691324028967059552502404412243266797832679389253217063576075243977146339000428118852207993110994190737193215105613223206961598650787429390628238497120009683180962809627021654451148283534978383460056616159122758268087899813828693313800483260813467412144515853274401336426961816528637906083628911549687784638961169427639252014885498057075731213309632724691385380305992916276634187916654218635689515187695037513059592299023178531792139241236563056806460964509219957948460824267272175896109807751196519243454687665567232706424380283605648466476705007530656803895058196657406128959596126735178360377754543041165125277404584458052334456349279132332145603946695075396156167336163551601620149615860530399697205263212465839423427460288488055512769525874651050972704412491464485930367818044860013932202091390398415713511365669495174874172743625725342366026291345499918838006931445660451903477091931896969717934745288515045741791078348470467362177339773041558245012006166991032358830780752978839024405736259018601430684859843319705173749171843567388835539621080383818098351842760741646223517146150991509658777374113717637885895526913401928696361973998038923870466408458628235785803991392506564405087578084179834278588576173186792589071049937557069667625433937089203592624566237272602994937847709920846210241076531648156453446798576388283135228764012112897541497424429901810093678625911538593961363088794989769526846754980551453479819835134969469290004005716138244265904777531044941352612434437934091696667451196224463430614189307217280863327414649155785681511012339217370129843835463217179902852351926604083769285052212691535861476154001295744651469116745352645511257272697086867523100432445244933059290054734592632471195150933213895861395735006246444682518254252733153297307429984689683494376865799244179379638750431901256238074609876840090749692999351219313272334646241835342225704902936071640955500006025287112625177709277490715220691148043517783054332417702829003897118197224529143901083960443511216090336040028867502669634428893523559604286562629747029651101226928446497210931478156451946583012188535810895422305082072474320273772038910662422198249759484783218595841143863436959136353656941814714132443408780178197725963766628623009159107522418134718987577862604272686283663254435539093750105064786780748149384009035678688496765493579317256953887278393882377715189312723644471707552112782987975813694303734300730855045558546188255361581574256783083024070587623854236514715620379051859138580882282907633419780794659128558463457769315192170037736484059061351599003883670532556250889665311871197076894544433740712493875295475062227385746323478815318414512542230222648636313845976466883076366483115065393013525786220058485364935726152260142865132210562213790467169315385481053167235648244834173127156698916138997819815765723770910749166712225344022162628386419412723826976190235609173471411532591322946253506169057727829996664653430906338793222119484088169940353370143711282846686327940446271755381380422145984781847692399766061180390143358461522689515469872134109839531899936275637882262113892164159078663936109425032760195942251133957394435706057501842638729401753518308873304980260353632294525434338017940061610759193905443413277910415213716826051809606352455395545785366608631728441766449618579742693555954524493943325185553843892771516972641909568027678487595553543593928882143624147329676079003535493225458946199076137117911454336482184531733179538265825069256170441033562736435533223351955196458386376360546121820414267620752753916922854855308434702636005624692985371614417221626141541001191348143589528363332286327909078807972477524830338758871373138586559775607313432227072881069697452107441944048621836279964684821826690406196738021168119739927448530302524061967512911722781599276081852878175816916235093136714237551509623668101088156935752982428122971099880742953306193008377174534479752765309038227053252186516295222346254923198753380566816537792197464539224832459082972041235889485617828516952355542640103982100781281038584230501183512060086114527906596823597974019846560548451288531849263139160027601465697917680748373775089468581686606918467357545910729248680526204162306813984078413528216047087655000217758704588616557686872319326488540386398028923846463172618276389165514942396253756624549082402862092158694331187090949310580441130868303742501844780877397627581413337478088860985512580045272958009079254403159041123556710906640843396389366406215176711514076345278789306186336119309992217148326333367663887141623593556836170173463431807109490606930974333925794213070708005021861300773593960966464632256244652514066688041979338003737831052555464577528289044082556020715256468742635149620947130145779401646380399303750151760395846406158499094029541829597901762579431938488068302425307901399205397252249418811083982353145347989694847618157415005362881528687542717404630159032661819713267423101193922252410142038288122090032356926327292803135537454789827410192473490290315292039058048765846019026716518873236981236184693057928598431647308417044404769814916896450819789119962310185514839788172412048577373438536963012752073477489960711140994890635506662580096765934822141717804066418315402089405501537187662704061311103543174586466350065809339054326528858610006286470505210491950774669429481541879880519877004788452977775643024621391273459325318100019552042223830739196778557971520912933138714331127208337266166208819076020361824455284263825973807259284350438807524767694453528005027558739014975728965413954395442954715000311362450903580173255168513708696289916766359822395162639987385185825944731988239358327394727405362843495161536220519918039394080713458653124864172825127785648530380229688187972144512362824013782028519467557467834277991628396594892737625254205946691786288781110819748907846535813863031134440002261536759444819852811083642621212452784356555080729476619674761881459341696042167362603154330498183259085515876161022038007632753176950298319121684101640897969827915554255251770969690739755981271619688046582192483130168697958399874512289291691664090572586764847950968973313939535316716963775502357073591658311667409503408388310535004327831408685613384651644412928504250551489856043315546784517112554284542212625131332281688178226930248631029794954080982682197025766483530830395344569364970530536483189646622539614987862873100575051592757565670739606719429279836905798944857257044871348089393838771355334083993181417254395308095967757988872993775152209731785365897761972078615698982071692121381920162075675913136865772421971825432120597957350193625037135828522339308781935241527359391507381737139853849999751180262531720401492794229269979598345231198938592233027933120109218562903402620102366950097539640032150846633358607741492099175108876294940765544927596826666978994580745103293062994018076731777816709148098875120162994730702972387234106848047294118990459767947049443939902838006260498956940291684404524669171574601371912513141593527162675202597410260081577195072554762600776802707438625393658767928550423282596872373697962545999972842453636937529744148467183247166924215955395932859149968880928556276232492639308640367747649247155813270612146750374555517019049081140588247707517939639086505937548243002861529905785027842363349906482406819368174373402025098946851597973758543607264404640590270948292024720499846142085508068732866186039377208652053702218914635954510905849140390627648036025948840237352789449369897027535392274554950670090412208560542890458567504674948995991510060550301031108136449632562741164771581666593671954055499883488991986649019208357410925149996645629355365826672424434887329349379992147041513169440856685414375012696711090333554747431237983897071063515914703254501462409310628028265473407348341468825273183302796152805980678530186151203444796768145193818702175886296139760677521056216771092823988815381960712285895980497911234752941058712295251067687866156528448576258181163676842516418579284528460087301874845592384534639699367675531594848641763432847785165187018296838712755714290601649888930948715179217879821949918470821126474684506489576080695339043614814599657733853008194691771330327443204219024182978011706132655107468278298406762037229742617332387859527147077096111103266808480355179820568148613892653171116649426733184794997801812023155175365261267390424788517489285450026136619234636942551437146891640273332546624561023694744324267618664875462481912443582397799701166233015083117190730263895335668559770434189560599304327760238504833815011342155008183735695894296778345127640273415969252457678492636525631891026517297959232758322126263423261304600388740713140488065310660008609002374828187290226873809414512181684740090184809678951948004597485082410425494013087244378151761297619429673302679900415028713412740463474903347239922307503863247977143966342670524915008253766183467665352211466750056641736760969503586158318218790714067393455973854875859822340480477358550892889214746908337821223922865087997197175518029006676442958593956124150324072232691184549278597125701380179544282740837905513207425891399587748489969113259998116137163402112549303238718387893115375794789550252851000595438256834676855693280140946679049644005933241331611341053349881536226294519857355980035248179063815563558438316009408856621012416127767744903544545422373351220080712091387845389996644266078139760733624050876074881498193342649275278198550221115324241938788727473327154747441851020813815005370924677818567913270848689803900173043150204563592962350062660966068644025533433111679134360942913548128031479487774770898468973664788173239641697470147973674146484097289181525334572261118536573454434659131852949273701161574115268479383185938502638634365778072396288009294160389365541321415969439904133124035652325828274406657336215539031391002567758808527750594538182906009356382379477219274404340217344356431478470877560009085700237613360592380723425576154900510852424791905097045190350882709237077823353652048082553536972421637931375213722486490615471960658524205468034997452847874117252412184464621401749622409156151973094827612415132690237378173293959096591917705255494481127546293766821694882529714082355559571258375414102063727105486189137185856080279677484027022073076562587869447261879559540858382922855242721837476296363080165417903244677045182033767464620273531925126366272588234908758361057971673514381707983118563693590578944450654363988156956744269156860517787751041697945703413040420844092024674051294220299922758132877110234179846166800929544478105644051116321537612622802001033289141933220532514033550428215479135543036511381661223273488670689949939418497304772886967652336866638098976043393772768460303546942930761432471743762585559246791483177889782457461185464905860275130116302857271881354824244861918525473905242895520323342321270101021633437538674570032154483459507597334842789385628366383425194971816666634326196903614907387565894090280553761570869718622087661946601358951670269842964053362733903347729459825365845348412958691076440731694683575135798637655818545334539312452401341912901402890779997485698512965024458027254113860705489326813626166521336166824088791012494283466640088776611445148633878882425297936404468494047236476835344448022549778059937413550965613915935982885859607384705945913302483688804434744359497808719037103075428591573721575894650219923711744495959118560885088849985742496694258916726646268144692476391640201735407561647361146256086750950189534438767620014375511136364665263943823111864920300615040863055257557863832083080457678061613740568408291734125014782902078316117316456318345104645790786717035252663576208621303664838792911198836126369788218702496446378078509796747032081236158486780861835427174297293502868442759163218110481014443964182094744104239895038070638975014569705684390240828300065628003509997978110468492563160953688155522747895353983465127309522079441095122652856777878235760663820281294082992296292446403767084099112865897622339465214884554211449187041640907533478834963390028180016945332035737758435616688590622340785690301914960086129033061344697016867778243414437612785878136678286347084319467527243121517621620229365192587425614791660919725568797358561800593822000419025985065130773434875333133610874756297386922609607419100986552870884969995558487347992878041901306570574933282725405459595889179574227949199095922228061478965513616645387086194110459792227957206645297305284897396465282785632718523153090280041804570009237076085481882635272948569164367751066523464801150685343416206839884511866691111043070195036118555884052203377890645190693069314362960447013494267013124191638036617538952814499638757910044772739461002826878166706044967673558850810716455463466355855849753881687433639615213135384309293944891974734069216428998691861253896278164531147363969423417846199560759762173113598835271374488870853119999237421410561811322223804736259156915220674826656365977125142904797485202417372533464382573631535245780638140586775991966333395030890737943946465411800578309007597315058355110022925363677657964903788151268878459393820311386092097501210516916223879239672764811061913276293084405649664433936510905227430363072489287231461556933174512494748340738586388205094233503557029012509495243622879396309182152850940682423330415338922676640887534632397119587976283295931539733664448770107165779095998341763536141129694948936059706934407573020783655655830783970282271475186760627710952150955884944026168828799480819657496466874892726708628662602812132031692078707368058246648889614389240474587654377280873318229169794991384484073824192328587323787486012455824323756108787872770904979751079609347174410297366796952640017870978300596571569509449538167293650835521753202927784795820145178600288252127239809553734876872348039167662650267084787295281053325925876140603314210523701318459212181165035558822278217768622861272396705305549177045110604393974377946059885404073904285775430070052680700592209879417717645366348681241157840280194546309432233668510847446234963956243207928016342384617046506613848103266669538203948075586307829987564447236584677899377656391490545719723647586765847854599457543960116598163373417420580396592647860971658365943572984332243112007490728240035311422814648711205520876864297422546982240662691345269047265597666868317424996317206173662881579341988672619675727614673610555558872141057084684094498386705599287260666216207477090058123494758071408104917143238985165357012246141261466380438016699974979251607618996399470395256436009294737941143305429922493798705861496715206585452194044836142150548304615306363154766919983855203369630608275382621611129910672763403200005348814773506778923510140253501611290230796120783629309474416581589207332275081508839361990260378802558332876366904963296278567912890585126278118388088057539849162392523759861230636533160363483401219282215518241709969682971367549286904064440306801790856837504566946534020581169871807152876430244466869491292876190435440750324853563238534190316139538306629150072739714598483143932644021931494564440174173589946298463988819172423960970866717421725828615892777838566210454914655208263200120891710763711509997153444648327554097799974326507577166499949813161130218586094254234391720529021919616846048664211053985591964138000907338747948220564905304086508864106103550152280462599344159143049527521656918490135791618377152323986017662210583438739212070781887960338509174629413351047501109433328676878369357586401627929289807364208563722396636321408780283172145555491479485417309524481366560374763726790910748423234946598645823316265374671139713685829729037847965131581446202039080008966874743425287537730211047519284592757474186859490754479938573488894016189445346457468681096909449491895017879028995508225136225194101117703315319637635194746214186911473160356837759527446728580062360813862991423753174715769570854191780708575568610081893565186753447600440092315709042280416950382354377450541376394579550054184728382728810446353917335196685542645885591551845210884762065129381870940604648983792149495587156502732514332854397585578342379733893289786553569292399814407160603059012597422210492785155314813575786814610916970307115329632600121413739839433663011913637849202214268120998668876516850780055794944725904340898908831576529128375880354627992595898318932041920755138625529622339908127374193231105114259009706744949009016021614593836433810643660968698557850023543561288729624727986226025872718021083227177371895692966689382608148532725001845559947399242013093650045367574479405044490408362559749209400265482837159880738570199691781597431595146866250299017273323353239219700570478992528244739513443380500270978098579104389503302917085231205724282453461675495471591221952007294675783461689272032963911685757555063495256898424387680361841102854197066345016141144748209143181068432562331812089871732925613346058416012601985468153302100556739889093900018860496402567530797306760064753000576863445618772527324325845785706992743908349880694600700478195407517722953979051228047554477238653432038070328230924680496947678279350595215687635198750893428846737406314417995508826825915461263274669678193194009675988000120420185160850071116920047833518791269832708077563657568445564715300917071165338906279947281637736340933909914014215781687649140680781043808324941478689439074351581131923059552608692249219427907146606909036394269817236612538007150383607454823587467092355126750765647636647018864877106668531759497658762874515738622997284303469832455468081825894415287903334516563138737684402307616710362056031492978453687023895712468800643983248353599001523120281984801454013041579123396728508984014364842830177088938997677428951495064522099188339955490105138116159504864769943226969326505156531279257313939713405983533482217566617217050276733063339488594069251878634941241862253732160770716326849583714012353116024892005971407197348511719401611292489253801815435036697490596216835614922663430435114585565167410846140901663503460349311472635794282148499966081481879112008511019824175204122024297274778890248780220111558380091423816422563447617471357868652392936716652366496326778205491054009707534003793987281997951826760613012279957917068293969265618708454194495732389020347793908555978136160406553522380123127480467123648587281695038771150461174452107860898558364113067459628997185623857815958437038914666634969011568585788105975614540827770441823126114359080123564893969357955854694332570546526244627260579529748689971295257607730105368499971662969524549143667109159601540543650166212589086810759162882512880884060595681287978833068329143317713581834483561627083651928201567860189102778292223834265598728377649925064763433798969640239346988959722713870051977947276507837701886957945732344150951374435658699411268372176866392047542406798326606659404511714190947201125946740681185460360105641423179088232250883235699044744510318231043818904692727548626831573811417089607001423156429710923716930943134998784875004085860109042048817539706277998239689124154856975857728240671245305088129284523754601348313746593575427890342861046249185562699827142569500604192191026460608146029366736949889922761098530118260634629083182602556152503784337918264436073791514670867738153948405566417505474417826777317271373183130776870472887719960125719179186491030377527325227693747352881552281498998027093486944003805758287153768277969626602482715729208089279306306262145667479732492167878383298154903694664789365010101071913214134179454130203146352392699080698986023170722785734787692924251427084040334172381451957888798306995918342444534535008442283815127196675323244717625516131460017328471967062448539260942785555501700000581737385674068102739445882061942171415146433891811260237405950696018613496321282633693168422007761759814049774958415919601060302032788778812569997672633335736911221684394281815849500052296535566404709325864850849634749969224067410075126658015922069605436341695131706338036707649065033337013125020591166756046311721423089334230141722314974815716510844821574445051431920252328494814197095313443013056022020634482489809385245360727321714900628481185417611359946310633178526514822343945584953744911804908988774329146067501567665432085051279823574103362637233439470843199432971231250157403110033413673505695694209482047531670523876689593245368560400798500186803973369436982364906764403979888614709741306902691386865411033819814671218368918526265502244769322844304763453448176807487109366567885573539196134534820799667971188626780655802320048950263370963236019566893351589243572275572756268700250897499684452476782020890552023776151889181725368069411062870231242337809940063620972843307636931637702016268701497131037881058897184953481443528616483390785355530646478817935381442384920912598404903333873823419428920243937948804213716404300873892040958355690454117779953816309084395839470302119205867427127129907324013325989083497682090099371847016526634980118211096859669684877210202312489690684943343579307421212735119802745785223983508915177263151415366442027999831340457709767309355006891811998149337478359125868766923444905161751554203900033645142825106745510770487569639623116923454998425183365089355122686876291273657585107219208142417724117864293641425937751741590040577413276821462280161398661401627867136801517250795253798703140917112713130555589219002524751507405291833628177933699374039014890673433671392320213773078247909364326168299209573688721244028165444679754782695264922510211244982229233166289719223531070928431796396844713172451529886595976845716104251390218129111856490598321102413628035703099588634612753870716583474695301190667158349633584982617810831702314827758092357911556545701985956769806883535253536739516073675661663483315537850066350675926807870207149007226161453185771671304334124971515457638086012174988162886006903577490577791962069559947824714848710935618983443757374154422788642634295372131289738812199035187683034376491533082480583336118545359907529344872377893288930515883949782051987532738805972250195684878848872399060585786914666351236137863603136457861435573750419457641202888626044579175530687432419709019206309095103922473102205180677646197113198310763237563465070195413480505619593094296084776527322750557441612125824911782333150934322637220589640070396123855452849320730434171379065754798964652903443002237313704200472224231875253572945974023115979604850340106042866244446447377697453152562890060315354774359273627057232136880834016879533756386630834437890967228420801127438215147181840291117544222619645891097128502613477159716032306597215973070877497131300369134761602352778152614388079390409118814709964772819703116829502323440589925254464095160091756103322895079505306535475563124199092984389603019335880206454921310405657012887859246936646381805973233982252697292716463169389962605925606865950585226944301560987004720326740233457140395093242692936459205495392003876362138696400691510139838499845867399087457563989383038895648835320841273508752527787055350575618525413524718021528350850686094502852301721163005875537710710614393689262983861677443238110464473204930710042510263250917249191242914405174587392552743460592674260173255157548360795918941091002083549448507161822332520773236941461623758000750131512095202674096778722273390052231726063056023387886107450807579440629229311631155484415691571042167257779505594968550676877666405716816261776256093010679106883180612396414431125274910369301422787677628117690950365539355761854259899059736316718229692108763238731461135015522317072306528336170775980511598677710996310745084598618614502467000377958048887954732137532447424518584549079454523209358206496400557935289115178886622526542729264576136114951095390826356922907928735389384053450133169660564524447677896760662717969503237748904086017458161586902681483949845829724600041475583530470004639530358749048814593105011954250793185650715615007200678745338020926349822836012358750498783243784404592425925894974909484343951424833404159525320999162966037105494609777126596259158858058664846845033727697333280191175377304237104988197421647719446158209432839006454558120984557807756321317424293355940851677808062581535199303631597279056698084551663795480176863445547390372372462165124204300363440686878957021849036675570760817078421673386975830012270398516434123982042656903328726228210060497741352895412979211604779657861560718527822058492646428510458225261565926456899543055924992749574315883464750252715301951736358405471399107227703436645598821051785262450050816743639056783871590404551606936278792935116962442508359012612024276503997236496471865756352808346890066629301692312723289399067235808076189965464404388736803335897200937714549455353026235293081626536200920878173582780355458267456386147942900840770419400405523368724440664681540462082067543217980194868456248129951178387810000651087701611682575017769434322198488258646775715138258183473647385465069607725991867580239279068438269029902559789139862071807639159076881612221474968139848176855392852088145857519006742410141572683057989061561901409305833354141738991662832489790489812751904049813260330155666003023304320066348015150563240050307531177856385657216512946106993761761206963687412705694644126935727230164983721273547961532821638359797430060976616288456656666196767994079402141925621007547668700423083714153653371206934909858050147257413356436029489632819097760729223561689063960563462034227816956285708720687512176275600863113601063195808248964576603089371910119250795200133613812259598681083678255881113923533559055711694469497557974798341116059838760553496483509217561952113676818531925167466028893868609134653623915289365307313702314921763327943460933886220058335183964955001375489505040427882993534408839861851946733036816433528170545740459488335054853036822163702547741808919169789325057002607962658766515568962609079833194292483293299419076554275253892365714828240769411343552976769818342824051998931622711884869475833936360321962026770325630166479574993265912120587523825365163891228892375464085547775918407454937895293626403271177888145000104960671774534742398425230357375253592810127254079225599394329955768710403617830427539922611557343015964148754266147183293079549572971081696367820254615666431827550987906107941791845503735752827945196130545204417444120284193673697780769551774866552065665785291328154334081327132487494647169134110757254134484494464824293447484404431466447412891005296667580454683033617186375836041841811199122428023236384694376672042572522501808463405911755443685849874764810133537639720501254265302933866449275068397453121784013766659998379820725706152588267457029199277389047074347125749172241362316021192058086912304501083495694156460027709133630787554798720051200493490052823815858365238721407894666766251855763314118418958177228551207558599094060512158031606264667564744206086856287408981089184420993863613987218711942680528024381941411437153767095226716654145287440013189374299330058240719071716671070388136887816060878780325956928144119391149409834321128126016435450567134928096211083823504514750015202683582842273782383814220867526777019876817478750455407272365249091096717142346324230663209916308183414466659619866835875496632405605053669551074753240054322894347949095708938594724460510673404628733250099177707587006723881789617848324699837133124637603141299082175707689757461031509475122915245938356516209448025293876710920564872144038197633004826806182910451348424576241612957619016346224411595816026221959151261744176586060563696754717785609073965022441077692511209649330709234062052907025469340732704961439161311957483503407742607387735366679498208157109069543836717295207796636337560552310816927950363560770760689480564207666830132748593464061772661773437762038102222351968027033548075951024244524216604377667463578043149872574564217381098286092714317977076484684309802840944677569799116749573468666446632549303326628554361448582180963048848113477569925375954732054248707605766063427994822254600069477518333183682531484480040201755381194123292975553285487470123153198884931361840010016410864306006816636847351806273855589999221917501452670612820046402839335757601393377286406197819604436157241327901541884988033948756062330894960549750389674474652672208317236319268413061243654337015217778635877430315283952921975333863163041835652864044906622404917095082248428419618164216518054976296838316998241542628548418569054501353703130131344557089026601387867844778712799512524579018225885901990228780067066033003269402667690180718821653762515641146962330870323624046084084983518992121614730299925500552547507096957542019544090047242110704314316483467170083733359816595949166458701461888291929245467303530021051976188174864506258070193942482788940345669442916388146991291039323965573760105077460152244540219664502171080703182145682096232192469239786074589099816858676848297359619814440448526612726286347617602554064385671756626760739902926569857340916342805350019560440764702305531794912292996033417062723213286699590413197364029359573662016183071588038437974046294516688791043740793998369622128026283233278162698554663706510727219931190363417762879822378295076029346128127488551708165643225075254175933228990172382005854452226025024613548329573004264027640352193221430499152622692124876682586891520131564920398950766409907299313113755159472255305062946313476774333746662963370065239696753893640055140523331858615842326479269046980169465679814665490290288440226832565892885520792947934907679978804973640674646212094774324802563559078830749471427397585799862515096668193831072509788680956683458932903267450035100590200728901053576960210338328167921432313241679518935563348283013536238495735343354695706689097319532046734325090816731031363120769802873805567351942207490225024715709712148583994834147630760166173969523978270167163468057618476803126758270295890879783494647550061728731660655562895623614956144651036655054487834245047133020139814929810918030490896389976915446557636958239869326551944330988251303769855720937324534999752410800982783313183939726399280955076078029974424457562328267475727716812431308687564156265957544535846201324592200344413375437082239597242839582971567172855236928372237701412282334948488892297342313747326528773393007722797970811172685979925939867184264651384061023748246307334044586141040403350649006625471805389904776971297549426846268055551914829209988204820486134365320614470039151719471011363270025656956368341442036628504284635734717158652801320125418027454725131354213199083565398406772269184351289859963983457900353628594837897156874106141927572888455239280143875143946177591472533340647414362780731905176767639564036568869942925254951558818705626093924712607138422252706871965837353663080861606768233588210674482061419355265017613653728494663891315275455887212287575973750809047008130781354829109731309566673841496095986606369647349693433900958615592219269092775651264105492079350624138347952124950288125251260989750399174135189994705123770036172959794961456293493705617396283417351436851278435336738552268862792226923936020519452163967661684063977563378380560859950111673124313699879664062497946118483380535802667829584426536638135328187232512280259139701006401155924831509664846412477600723711321303133195383366034361818187964294491512535456742115989850277640123230028681594591643579470143587311281895780940055470362641704253788892449122209555593032471680174947404904701148615200040056577281173686673512188465238333320947752704917667909409010174497134482701616233604112834383327265848194637676628890036175098897562902198886291221009430895314042265751799257450885607920454036079829696117133392393933587552705620651237971591238514467852827604742287071452838686753409718273648649303495773336268093026378906454559011488483437346649415345748391232204527628487831590634245637119871187742373023051527878639782222455285774753359904483728267155456457298607131785181058526681275775847874748027432615105984822709619124967486535382113752380746893402878764597813832517276905918403561302051142256628047648419425293143147712777615214722762099459926970456530474368092701163361023252779422953551901445507539959790967070219455312482657730271113963457838144894840581851561496492441781409851589101996243994405589101435458466237340351605972695178236383155633035207117125955022916245996728111840945963008114971565634254538501138835074487306497324142787076995191128225718531566529066390896265082824567046786475650644934721694142763550635605197290177411053640421805463062310017882722586570643619963966358918473421586081832416874152117358095380604530404963116694615046632511342439429381680268759433062806875253908183866193164793616870082621228591953315749502203486246630447758836608227043292608492499026542528443185276698231829667428399584494073926358120198080302147250112346365164249433896150399139217911180893030113546162878762427057587845097224832281746633308569464474564368290861053505585691162394901903699472255174311576591233661736387672479908784798485793952457515360716156231762127488004605749778735526832937704748347436616458061717277157440652766673820117515789840244585529608886101346172185429888368421275035160286056006313031656184325733032049708757993859804510442522274561796587175649254792829356883855928017739507481538993235577141629062302441292221395059320525234716745417572958785661536381697409437062504885910575603094683963167376072845580566030518095336285973904160486027790603779661473560189941780898112886672203349346716014940226244476289632823706311768035059209600319696237317157553026510550507907552062749023580049985128109201256457451076397397548253458040554092892424117149942621681177415443654438412697603023347269917831087335843044890507750051141427808685138730460092212794994153959757273600328122291694075491971135842403992493653535050205340571748013519656307751434392247063207342430509654707587046584662414421459532441965178592165506858557363954449978785872841590167994070437894166161488829496632124030292820787208782247268643297772672688817908525907265670723736271154180128624706824038709719387132876249565357534247574691915910448689761323934136177872960155047796839512761108927029012708953569179934556019362120089958774773458233993805705532766315603271873617666074262915129359828434301659095715920973695600543511776867218342778778987608053085514518662359568805220183598946064064588460809849360857306748083566090710836141533770830940675945249448899120276308612579013299208455162335844297365317697099010122783044649599609421935336740563914558432429839993890907540883969243483194947950974164546306738972610864968301824111645843444738414237214293972897691377374544922201319904771070591011881282723067558974290197921851675522514619673510751390779346214590564128209354711195720145922551708083515485640659483943999359128614944194992570192089250581371694810064213098337385948691305491747882039146914490314859239656841737142215331075475120289818464507192690864803129673646168255688588852369854842379989628397087743527941063501507768545141314796740158172969088123895939840506648139378736245534234034380552004045277358467178805517060671535685410315666375398120112031904043767446639775626102171658557415717472567147718388543343176894620706705116507064790373714947922075003015105064311815517387469105090917677182210852427677201943443984026554594779490274884172350746598050272332186596813887245183304966344714509971509545043876036702736571394955575112875686399222366715203481312579057592861562922348202796309055952071917722194425796072616723622938523479866671359691378925960907367287509091472219632056497601454758819027792012939590897220400248592915296664237003490270167569110586406002868024426500794529739692010753826093166763272143132089970341223294529528119483079316861379783614765843852054411808500533593705580920442978573214391695308330691754454134442110430733834122269733494619821661785639426165483762684123622684164423085635208226264300441264177428949087477397531042184157134038653829379728919396360513674280661038660901495690531371586309400980024668156598127022472612935244538056812029937909702509353633439646319929100547906047542327921993760275884391744651722902646401219926019285172630157782580301250884158082684261016033314938835936981645539088068006424892911864176353438140847641111570827601409356589585521918883079485816207980490735658289563310503710146429433913255935449067545249394430548220647096723424870284139713005435781392387904361867289828461611754465255981111462027408271828215561662060917278080908856206199212723896867770167795394838543448477842052320398882083869034404582017032000123142391464060728727073125156777786703878204132767153796171468070119732179635293885824507190025135116918110628143998970885968986653477841013606016220397670961886528261388226142611658033468857377045248288394089014059199826574978382698152251551377574910881039244968559910809798216252101171307164929313526782985988539709384321319210756386502932070052223692514365466742439572477713455188957111351254742886666493629060214036127121215695715646200478136084270268939851201195260193038130532811203301647607668647704520805098483505973468684107207576022063484616071471556254520550058209152305788623083249870812840234447203066992018988993365890853757581392251758679818593659337722781036873957455993236707024736855249366114640374141414617552651876103001193343316052636313298220287808933181143783323108060779005025040566708389832467926089118713204223271133765757489632567342399542110819681585271698792069849939840377045483949149929071660055422197642724448533383031330033142736016134185529127789275725362271261922369987438897702767899956124802485384754905450411534716272083496699892993184962043166311382113567935331837275573885021741564113160082630508469837667454032051906571784138511998408769497191930608299029478368334345148513842186140413177234050260673259432754747432872245671416945332068673527204999221818773172432597846224717461098453311832646671727278668330272552319579709782104909626490782329454289743637041024599719095210693093443008106954801237243855375975208073275694054112842485883308053589601546066961416161717901187946881375395350384647264177889701893941718306431933155699321050640262168839004481249344863311679823436718369399178827745352076270838569721825504473311785500600672070651089289915227645819650634338009043189658508939364641433979660230324568203453208295108070697565021115666287258668387100745737949187830558511408683522703932088596704801303468472164186693826746693560221094597548530434003223858906005145779056306556720951702990168502738652229535794996774199293108284745416839656204060845219686190807838089685878954464409754306071685936963197561603365191938522112887430857626997630161031291152800905602546871404397449272240785771505113531784671066667888391773724225226331873953282652357872896451377871824642489352995413543439035452168593283890574961018194668937162008070019528210602003281123220320685379227792284643556153867811077481959468759010816186488552771668243170831651860305134811183484995505767334592535585534674882465639730714421557930769928991561346157820474581025813193416745199193096384692341505907131208254245864984669459667373281843768088616465564911759759205365158368430684071972917829059234190269560460708607010087492136251536648500102056033804008550048173863446107024847521780680405875046193041337287428887134731666501589660393786702908011608005163949993534303743860861055529906530467984112486964780747388926180528792233221528875387774493980562101108479079974560740584794674934130233294817041867103800694027697547728780142601496617812339297094184880287502347241397954963961899000511798049585101801521969648179387015839979012722294917990848493707944856979058704125344594470824217198743607845450301992643192340551290094648130911735935634348071303376199593657046840740046532903467282191259518514671752198637529452879142375859489762237228831964815065453902653263544284816950948207806541418804487566859850442225422841539397233996908486544098100430220432972978666446965368144816043740093657871410950582349738297472402561600537277155959654062288719755906497406596705528830815766948672479257449734440400303624855485890935826953662541441955128972837200483769653949005132089419174205431248529548113025847933434601408104821888316103343769966544110497893613718081811633516355550183901298755687061796824019516550153840111519120543861960192467015600805787174261133350381047659471931422711691859247131309735392354294396217556351775323950939812904010310072841024350330207386834727001697650182937597435616440195283728250071232026147364695061401118194485359633950979506086988553391663946895408062434270138162726606851083958247723113463609072996537897800126442723928855799428665735430940745226250743036968590336464009080708155408948386663857988599704630684727348739497888653396883533672784138372865256820069656275005896196321789318449559807164735171552687967011450653325163072345074465329964503903964180537683106168949962950915706869555359865171951221505185099085297652714121733364111878202266859000269229036007614022604119337300863271780499480266570242625127648741054659489362061328495415450255674259689680789456478079598478818683960452476543613049185265111965275976662759803821736836240768541137066615163316617275618379827213027463086981337726368272577204996987813869868554449700512586353417840131922492736012233822449475833139688684727510954518916643210658070060960693834078341035893894548213659032882306474122780825639074611241447374428083926420627356607188732348037914805574355241598223545105432408259445877401478230085854295881132991231025331133640399851235810500729429374210355649390397840703206539282007799886686444988968519941951355684488936386778505160941214194983923338474509965139801165428968159299953430495811948400684151670224600121534466207135446000275264797136787595416484353535997979525398412871892392031320603810986522326187059229788811796505876972463913461854418785955369834546235011721339547629750264780047492555469107791179748086240509119696774791095671847473938964100923023508387073363210567486526541343385194002880553345169095067791006763627566958609462617133124646695341122333903996017360745965445009288971379219026518659782853337829607601279673462615582935199129423552744113901111020561388884036686336070142679302160704856280127365959831037379270492750958639323890946731748874929431583849061083173623152562491098860398233380218452901601026445392293095374320678533270673574802899202234440088200766086348719796809504840242120006360104070894321579523688682696553833716907076096768813492242787545676339140889949487419752017074535157876092243527027398018003690900631543014667858921551763842163879600453155556057529068805415841821944874540133312318439288983436254667261418086336068173276076760055577530286862976546241290083190623193446080891720240834362292139581023118546664877837824321556192957438940939915818175203958543989639107974191427961593302539137550898675219964838279930640040613269609842899666663816337592698153084706222238325863472693914300403480684401808004984946049386106652644462792141071165336828464202303789931750116420711656770784671798373083042288605231757349012896394686448199443519360382357461957591802266992927307459293036513768204039921826045795691025199023431978282109835618902328936142718354012636265586256193227695037521849849347988193904163120080965033516878472795624685703557254139209105867487373244539485243454279969128026314347807253001512171040767355782763935493030826991957622788427944904947654641619929630278808729411602399321344576763912871141344430810856676890962372106718629718029382215904536567088845377770270382552674072410585776395689257138910955809751900650572771772562264881813674657515580689912446729576378427075441941677428247414946667617187911140358648569885688302405274947260950737553402725501062742789022895301913998200364356034327183099366782747759184576605710740122713385660972463466313298302749478224032389003195825868173989757514095755996339715496090164336005734229289652533732001243185521632975502648751784769834648974420949971882973025068630273538780038110630281539224090967917029974511397597279385750091846795969503172361542219857450312958736789215862348035211340018355699265799704008689730983223363170735941746095679715209552672904387285585511954745001760359131046936743309490231679287602994966032519340247360789255025491788749473278504946725433760864444022403746225956539261493233719112297123907003657354012287190103965817212396072256225745340623729026385015768029193319942626685003168953310297319927388344803810535840339220749552937811193904121258563910019459749621651058219817884874449967486818942086835600750664531890398256596965501397292170762416156166783433007657949863132238251678483081011113233245865327578042520037786252471041294164827700873370273099737329488277085285091056553536669857968061391859534138335230087091429744062946263278256394303846290628956252147054662178118670919439361664395589449838618191623260689517940002416884367688957454438329530219444112673915870999701895401595038610882689390919533973001938017674120927290336152272316161314994064100122999982253984744889962607549701026072521484860109290145167885876872951284646206672908962230870538942162480500798190759106048056698431713284439343330279816203486539847782629692160745423436823034703051486033404722796496385525731402099213613506885024502913197672986528623484563617428996052887117769479777921159837249327093064172938585707432278538079799267540240000210402761851377125741276495211736265616565973619129196340643881536640269288748796069320903640853010434571996937002226173630576244325754572254671091034859780648072493697751216274702172344000924112256328181459476205832080027486778634116096282036098571125707839957669226364404160942596725510122724395508507316675446474264058251104187662759927012563363761351139862198651283300751413656590894972018463882076181452934528684109648743387796541240575665402427211655636514150940956769841172030651087361079372046797079505157960437866123569969189720753805719626962633311712461726375513888501567084056219175943145893179447935966198398095107749184723979879217670075872352221123386510100187153856509199081174972299182863936594760268827499197940777116979823666585559614911274581571144743448046672448304152184856889765172527700449057710851195812192063680343591425300595153789373614166814500093187116082736520137777786177130658563363096969040882698224456027915148020846416889899175648985604873436904899128486484700704523163171659132367738331112109539245387825855664724041662283177730773613403043408540006688144681781872633996962424071624537658118886612538510869992800690078544475221816753216308334795642338488753872238455254009429546290831655042894437179850129994145981208450555140301322388291976897804062900778101283302675106515956138253322330938529418505352388677822843527780841800307051854674580617647292142996029252642241999896151339215448781452531636969657562540652014066378511089141234942807085337663410950044675714253233390609119892405570937921290010000570391692813302477982777635026333349183226205747971562404455998089196518934852670912720449479814161045765849535967435322019686887766042501748027049700713871773211671916351828853236863476621281819716366586421313802804802034391245669328197463559402022420548097191572180152868904070442961391287968357014614545480898938632950506024424458636350441674968731859210615235117125394947209149047872845855953629654082200355191397579555446561379382858546934489965011787941377398318477804450208109778490168805918708539075787529199361472299613927773541933112232684296432081522557181319511569682150169232690862359671076845779908085105006550647422717069270803810849848584536393433161864079132726543588845105019111185483060946752256705199940834886769817487421864107528638615895434036034007098512553864581112215629369627413425965110136819563346410744574398007492080261881398126220997207334791118755679227082444849763663412832939714283413396676683037867161085703415511988005190655766755522518375487636157140468692416474003051804567796227376317135376172862249211367257517371774396559546590133389808005219421693478826759483962740526148025522522605068290998205848756820077446507343881093376029107395043821831229390334037185027773484260696195537973434607849409293239508558414776621409674632091676399550005899650080321796909319240071271474434748892807483123185266607732484405985220906157570245503465713175805849648470775646944216472006924905222288439583956510962091259777815281453726586149562963093390713294255242545777877115898318846908846141834288190366342670439421597137506640526379465658821537699148819240913183420071328361172073130208389016915835626957487921309198815182832828149575620012612523584084133749747001164927742698404033289750156114425908663239150088104877558968622081615130995277327820181039934963365723602360408308084669878343382300677538214725627040686008588002363392961325208289831576051967564995726312775887548312584876812985373019589834487915194013439000973304808478730869641906566005508138491568325831528251318169987979720538238090854268256291028076579881207358310774427894767769441830983196716591762666572577744308329203054095961173933436580219333021308009840273295659727053920427366159319344721642159386250105260435557800403745669171766458883536413457840343447003120923333071466045411860437577631741611346940160215730120537998726380849131239687415036565646373905736474656865751536635506631069962201290327546378162020621841307147907264172957527331368241232101791945760051435230260828686961639149541021436831498609179266226458476306021974542143349465009969296523409571108314051910988537034152682512416177391338584707214937072007647793825606222161811948655452290141611490457070155522779818336483361825026149051090524730393165450189264379801726768063915166635045711185584520493774192746735857203997567476347853020978872495056925198841526650046776497920470039919482358473495857658871485953936309840134310541567635847111399035533717853395229471384828003118327740062784930617999126518231892275458382633557524222014438981603126425208111930471288041099326260581428974712474750568770373564459084345231059339237738929421483363080705894581890804700187571261475532582442901466672368386511590084595162410020937393287504142653300218452500224935498598616745509851218330716922176379191388504973729741956204411117241794935916707609107395453448261741419362286754430452892916762527069558845207517099103893002893519681976738715929640297891299040942022497974880709052357232554495050900891935979416843967572821950211717319378603804446243784848707996581303849489250746918743179061571181262517989741686128699643770450253227022701368752301560850955719525488346284958554853885984383176090041342362671400398905220552408234186289174473617865768523617019433350658079507766074192646892130531409347717930233099479228170027912280960087119337097915422304853732269708188139648542379424360197317696622422389640187523766110715764516453509054613502649059451097445638571757710165419186058476433002750945968880309536215336876770016559834095155732243779745683822689386771602533685598963589506129613986634648223145547300981008850444029041287444822449488842046983538985018341802586407711371934221167369561075961059913579994148881431381146582725395275882144774974745777657516279866849826937807184680618909272023726656551831686736377154849694631368147601886187858920261614110520785348871748018165152437691661479464294852999285964344992367115857742007348222676979363308048616924499195309138379787755109260851114331359496060232504375616074318814858291978164466158543890649500288227434920781892149138624253529353351914084912941712411997654267626384800419898033498255846289311243132199171127266463598459992456742506066894390553113694558589259594563901226466630806626706488882499954077983371584489019584447553153459342343305158329248393694453658097516634138036531372490565473677853464287788566135143644895968198396328160698461787657052768593512830118385811803027584051054001395131516384866313862996253511486555471813806687194528941214168691990048218986026124126751804894227543955510976106908521390899267449348355520770292195947397206035234276096063522864662757166200704307937609932151206513117902332876822724492485262681630929003023481877370740310270936983106454818887923347773191687812910185364080116005438931630445308305394329761720620330041877624228336367216011031614316313876325355872163721966480286395291244615935298752273712170015842339717008623469338147878061956822656688779392938740095304055247072789565614706404637155877045559030288635623985007388470322993101565999631625831650180600474190509155944241089673330825680348685123853172458623194023582588731963062526391639657524776674203526749895586332567606502049218727337527742438714190484218154364121509703958937531999448045922590833889541340833966779135646992354890674764410347919915270977483799639925145787233391509192114667149595275501512862002180424409050180622937231363114164909543054269489226859891052074803609718366897620721410669056330670275799975768949598765278335823654985449389019464201095816669924966548574355960723738270299302122010907027293584873775390497346384592685691017091783711200581500721178655364483990738189546979218909974515144747863339909794326229734774624684326572917164010539245144419242779415740739234150231256137680052868403239132366929015363254412725195070211985170426790737544711176557060845284482925897323636092810343528769172170996710614454132703393657513010077837436559715265853118726265622719211859850380616177494355295663452921061322015540476531398599480597223479090553485399875753919844192963743437220752780725938567769254374215296061658525130627487595192617199500450466159127922539714803373579113013651207693299664407559383235635196128505318894820266045197192811388860379858843064997762541539715563683130555778947132171396721275363539688553029955064524389863641263837251570366230984657234142927638734662760170653810212595705441778574047009200780714254783327018615581972980389525097723038534405516046607692327883703276137963991980953107994971580610882262419702333723759729044231789677304876857633656037900285914578412791456137396011811048034065430012011272550484534942951186730266830354073653393446275542501599897645513949973984020519568857749543213073685778984558184718020016135804616948557738545770059005676408274413076020908692226728694232422267300582396166774972570419642719895222150114870729221827039424315783304029343027329966570968884076280367930104828452840582544695032095056797106562114145762323297674305591326289607296853086429664733103960461932227183181786751625773983915648643353651090735149195650786208120910334347965453722534554418360705911516319504994868948485465868031843002405304858593524523539377764442128513860247081291872494009049256923866606275996071580004542324086563345512675639766341449780519316878849897004963429542947112878152221433464741643699565289760516450410542353743362933759531180455570422227838063791118074283840277479206280003014105806694898833625240476722532882895654357652616783536957725372185214237583965144450019018596180807997397543889292625167381337126021619380404838575647650614435551317571951014072242749613288882931661518515267169461067155385106268812314801521230720121796676414177318245537386811886244368710486107535853474995683462910657747080197959643904972627647609742238814619477816686188923768294592273627718354430721422430995056506795499240343949848038392481382854786961643795937575794342626545571104195300585715725756835698274812946053563640264415320657844661789475250659071042552336555632579576826648162174890932039728183606346438304189257719806436133322535918047006527165596511612022721151366533841807726322610453621217920042234686583777410257525627274260224861590438172494545761647019673658992661460496442748369056394513907007304219229882233375377202250029896134224755610274559573161967650462572803302608800999860729029454121758758420151825805267234787811457182650402935490582522191818817868196083909836413213967077693551832671997070380389133145514018859620898765118807138046024044823416859971690381500385642378755823177918713572042749085789849452552097237026873930715461609277862506470380842839740206422816993063366866111838812746253765195397540565261564237814779196102868930277133317338116834878691942137007456101200387617306511959234869820308182169015686993679698451432024563121578994446673926811767902608096285520326298136656936455642201706381615898877809168062552355274657094590022698922552729418722085909223433028334728262113415862404473216566863565208034217750672253182257428766053559705873958492319408152362647151848951386866670155679999373690458875368230065441778273189192731788693884889313174111745983459006300491239094063044328051860586932075143168028817106113708706877108207391679493043259938012158352349050100751951181311477867558027630814920366963199422143813875034640124476510436464720552806917266579490065056472091864103666295110237890816527907717817139916448916388265341694731259194569578224341458762001490406074952012824247282639400577089419173733834722236604405750759268350807105415408587617110875785908901737249282968059995549411074366874570579101561695892452506755628999530012336610257956723865437863616547803174553103977885342584519263513041883358735331947116167673834490759011317330036022965109208690097798615339340804945441473530221476437521725951310185153923538184949619014357981734602810370419122793076067664771263352835435551533493507496602716124984307222570035727376490289717357099864117201233683118090522489039507301245354092351736774794979757482538408100302026370442495287361898632620637458439586660630231072872429085311899322768735452233287652980840404828799828509668219308659385413480260607501599479716951441865224902189107960926053212359511226434986825556844596787983894792170919888320872545077102869949151423946369482879559763817020176471675635376485259297004992290821055452737726689379865154113664168236653736705626684371311849868142533041739863783172775947475763913304661491338389032279429887528552309982495055002037847690027869940014802420645282595568845804329465701483783348920758275004854184387577734873586214315706004981169061433778524249459539603829750855325614556832589486998631695345951997011299340153681727448241354307264654779786894981537327190970563520463607095882821447539495064391862580241514145144959891411578117529561964812985327794948234854423137788752222540568745559234954353363101798615394626869133059276592764859669524339096831327402186792019937707919433495038598802024187774870119478195413253179059410641254558116134541682522294097681293799605672266487210149156906601905168303893871205734807332709800021045210116163511166050004858266357302486810147698322493038185500564873305837953540694425537259832616594010295509455009743620207456049362849924821150666132154552639370280162979639698585621522163743941570391403687254541684239494934969317091039350382090613979262176621932960964835837897089753359395912269015041768511159812370822282286148381371316306481728127543852143489571106921202547822015147081568029913633528312458562834070533506035718993972275328016453953432589007351392286798633345826321227017335443077535408986741943557248758855458159553120495828564265246655099656809871750352253380053975797297808723415240473142902746291273584773788512386914940942972318128838149983116385763872291461017609156445982972418138211903419476542819326258400536687378965296525637761949662240833617036803073873566002806104631791249019445067342386513865144468802852000154600903707778386250981599562670465938533786468404725325891067469774930415783764206504291200592335770036200904809020847802193075070430532826211527975364558394733790690971013718265116872286261360951557350545872787330237266593249245700854732514577823723549965077602472889551568499763720342296059279325757729576903485719878501388950576857760460538972482665400893972300927563045751944780759194741340891540910706832121104356029424647443624999272433178496241731481469476267995168450504605346369329410807138914054058866753510351790426662579632765505994556659587678260509280756841057369799761646510396608958522303698834740525347166833737247675638490580187094530554500986815228100758400381854227070926508074356799390705675813299488413256944484858658639703896604976598084601943665024237931167692191608137213222337157950455745919279319275851609929608796871621764248092957874600697307343222352313318072174995014010419786614989959168641495594801190656156795144251175608073096402979787736269562240840690364968563832361081707851774138821284803209914255348467332802935096873107395365312856451212949130193711143098123802364304743053012075076673399114878055909686280874226368376245233460154137381202399560476543688199217334911229071048368276277277917189998453263212981920965874941565969857395669776042516685732694912942419139210786904362112526117074274358351471830264177656430732899035371604318173302395768650025481193321270519530714983644943449208171422694588019325977691660141075289118053691391823421578139636077798860747080329607280365845534259883938179987099381812852527888127799172515192127155139177969594334477384074370006995987370165656486704365954762058265029739288786257693051928319693013060426707234706885521717609158475112325047643506185938209940348991392937565095090832510741519392589215439356553767695464033543999632920929171922513815397773155913772142035298451211749444030476641601030084793350172939552516482002826314735827613298836606476750483845580700138967202355864506242987984158243500571920552893099387866810426051929431066799479824954270777035479280850464709172261370010222084266532193971894022586733586408703082895979167662033352355964569484946489987347048286033616804814379032538050865974791320838363727757736894086397751860721762344580130638386992442234576731826562287852943029390773395627138143980448133630697675955766908597625071496789635466828526928065113552389729936005646048030140842630905090850275421040494210808052791493792418062796677912735363461817738373770941543996460472296306584363181911428835295005912492590798717624286435870734843920115406667659345368284507259388791972069107016002987556382568436753669894490195197072464211623671312966769876385044218842775603183848230288905422720907746226303845026426215584804705600531006883475463090841336941988948597072503082047102819310177707723166150603175875544747835524543213498741434153668452000034908202779090385401521861106729747401877194625458063776227775612527766851619964658641841848121088696631804197738201097317391081294626526628898220343324489944173348033798228394297818290918438406077779834206625072151698195701013004885185632240862056249429011416426508361749404065081841124453032781570446968432728649182138114068655504748339362804482266472371298553378078829234635433619144888300804616649862369982310922229760164860962055754898784325097204623262054836026898540499993805824374440923874936732684728862752079870685973042706833180136866186871881574263296465369272101632500589715414044027850563106864617987407197260198716935700546473452097276518362577111349540175719060601634289031386219001241640744921843511940023318608378037022228631460785268173375250232782167649124189283964526876829370326969876666707208368308589216931201435890853529911107996592402688981930766433441331000340850499899202416742425682776893316348087414702552684720911629461968790191498083189583946401353628613162873360211119845977409088541343700017570302789981890647218771314870859237956141503875462218778723820450929767552389509456812392665521903891946832833074371945246868441657424533959870186481694742716512561424554196765342170466476585992623412443902508302818301096309517909474223423642870140800640453779824567095315195436937448568323089212638717914684682536847095854378969658342061284000124020160207011302557061236971769990217495481068082374094641875677240183152001090484842555946123366902865470468874609491539638331671942182847311821367182643636373704177955910593103301375889580464177074992519948185370490535906639456043078916325571892454579350615877854744773161603669301344385517494137854137774502430423058153829074111982754447949493454103625480316722000419589384631869829723714107955666569064352439876542783919324367785404856071697252285882327331449362174915661889741234811348007025928365299456663938763691675555885808050952035283833574804125865822977328857169113962311937461085498635462912785391708129072352143090750379337841759351265082708760835096061240094530723814137095028120177118844327655782027581362559517298738023253546793863436212735542613431111672756287516039010057848638913413154533294838342058093538644969213993693753491702871391619777309770600470080010732487113459799553112932889933542093819804477095480998025600931424982922503836184121176182682348205071320931922789481781845722270814222628973819944027499453720019175092020065072463404498361045600847758411575597321983221384819308251626539516798227405679706902162430051292645884512245946633008647940836324038982177270466066203576781545159869971903325423020543133090601260684684010940877986912377287699612942289501349576682383754501467245796664129248776960179906811501022444435274176304334356681013688610611545032139649021102273101085125188866009149451232546083989875575082677339526238115689184269500927831431541586500233020549164230999891259958295581498994273382553558773285348268397820139475799964387008517892526718782130458718752017157391516952757947520770772601920945300871060433971561400891114379574895382287108381123112893765474274095160321449687066201497000365636958920012072546587779489738995453524968429327044224312316899526459192793414796434658100392891911420597710431861219732324339725440344591844934065799175703045463562171793583776752410904812247400292275598523973485382272973744543333113586692031433948554606216852999308392895112597609323967930535536581329118990812861754100668290859267967962944470524873569805716114779424348070943643641124018273582740865094917845837852394643505676900608561977323057483063474844135403515980596003307243811714205224727482119010057220223156619455007852636791544850546578466992967166459193525659588956780122746470956929894974329095108503830609754601721225180121531493942377316230663753820389025110107050994471177865704831671198019406942186983806390904751977043920647232793958856437742899529605239272012683292623979831921281370593274014896603550458907819344880699433868172133118607779703823031483211516988336022002606980424018267221285723034448442041900388281980616305183200915113335317103587233735327594683886884060627992080798887101699876500311403554255705966119789536224194935056725362921510268165538337542952988811514294771620449952771868683348577908666411953456357461291836278241349026146250891643414045282281064774506485237197226719796493609319610884554771420518682345362925144930951337382004107154311538937451439231689659172911752238279514942116154028770937321125165740192377847690593767159579667931206606748603997338256426197229591612166895876254317666130330174402196671532716559734560459058859133465785886629039342463592264963310724718791599925809947336642355890177569864631237605153745318487340996983898984264011970280788618212616503758032945820923376330291641853980537730110408767538481216604527768445161379110644269968780200219624220101573678342374224612435317414284975762920558069950470624739933500158686474310635200553588309421967452174255777072570640031259409724076668308056993139592740580745509914097143277252333258348349326868105042326383609230067447862254483195732812929695808302326072378042648261258142479227538509738306270840899287499802644967417645985590138387871819737155494012518076931791554528055336804196112068080110770482555397720861150033521644339100439720125623615371989780129919628992664870759679989614885447154979904222163795984751850065772888858176527289122352544390134274234718970083156097602089119697977157054716714933360307488862006771332559447678471670779159378950304622504996006943572125094141629187276023697712766176796230160484342062773304057611510026518926652151997110845437301026816578880003618167479479308268874440062882145115343624485497007108196518257952772318183180792287235494227252461528160912963097412633243452620805370988198315307630898820795963422607107727067905927417681225237279068315639585585230830248227141895435579893491005352750678343267005013504110811992973822205772729543694569236902344432710038115193529436352576223242978983884754235830468132670254961091312378713989565144620999000182389145838731697710624685456434973900434797791465354027379843441743418742411070837316533439989913708680446295899095619697806838181737707610388154325812442684131732227547226928833877024119062231260905428009522968806817461704164486538350146647337003963057690529393855899906052677578627504835815767850658321751300169768845337451671350005261538721385511106718561475071887596728547209019037158146226428747540388879426282558100722818701915216437519800641305923787092687775088820650326305631256360108457618225367571208241633304651508731347785221785805069002864648328734329323881903750854156154689935821027127031241894881524412987124525760031256483654576480720965083697610629396400057316937901310552923201220234148704663653302814935705965680149113818043778601990109484208748101882579739223265192006781559410932391259000808988637000639759354020031304637289067896978374312924153935979581640738528723176994858804877955038139273291464116981806666700424601391757214973712815624379153355287552953021660771322208283039540752874760172327846625903259494712850847010123925774654086881138852863915640133547077695547291363970183500025517567301756543845614477538709355978777918166832967361260105147578245488012411565975868275713206750543408553750880164300046523739007597102266656500167879777219679303953146567813480871540108516052965896860291465961436706955568284310580328454779179756741069305665603192643929539106843640059330399003882621365809167729228808139908109972359819903763109633025138421852109864707702201234639620935982910524607942002375963552333408297327951917881171431801030144854802342924660472248900910655387585151255596191868776965096636320422602416567424870679589522568134618641128962037861138431756723052679693459194612198476982280883969147421903425389902619500654642074787068427869421070530057725282104360738002948027594634150601745585820028317653714102494047502952795807859562137053185172496146818867328663701559600270257026656661462565043743010420675698189264036760845010529245326914235558193588835382748859004573175566499968298089717472970528287288098191919848172154185938383055089217947193984948482953337895431997075690416766972859439289023554033600723704787346718493798621679777766146175324170279636995486279128362817871841861517644475575610705218377070652030693022754973088250651710257917426225934243903041792641257215659933647201707109552445446658909329153698773747754934190089012549009609257429223180518730249823168717242873652556342716304090584030559255750231491016775103171224945707870577736394056060451640069826405659301655696714152713338561260058348889204838505301403391438790838138382949534884543896129458264113515301443002624560291941919726758467474495100567272299493086885450900868282019394595890252449894873357250465755127140962979924469399276332769156557211636386437922125211637132337794903169589557112920402610498194302017001411899395136943604747702291372435613244327695835338443139533289185763579197034868899728482812856701744310730816477359217368099691526434647276007806549097254100435203515544792445333673651070476764530662935252542403708448691021045467897776589454604504230502047001661265799058989067516716178827398160703865928793458478621282426077576141191885965245774800924537389006876379137012644280658380508866131979090042478259167453309204458860859984701172437414510685240126966552675191311991327903216988881705488913173382245721323232644262318488160313109009673950337517501197969426564959454436430649310118908273836442150121581380171698653916292633479367505133191139413555904309648899473648996883998474698735178592720435131752858214003946519603212805097143586665195451120224146940224373909498439409471525873836558670737837416649053420774291333354757593263395434364509768141006524598480991213044454410454102100560570292940481870506802322652601749470978870561580453685912709119911519627289977110939088646181697687644821900058703323461473512343515406447345394187038951881305659486677102718739420798041254526774433990351397805997675242964580902647193370551385198821535768444199206300147612487748957362928771442899774650567940538077077444505212422440974422585229351689803164683145240526441582560700005154563207670142575239268228188768064739062186300320252934737855979907962926516059170028295225372977573136242019574248334582800039388726691023073955001202994066342315967936223299305593646215081352939493546389643966137292849563676410547726445296715793539186572235655772510868041349123215080513053666858313933821641962184469815481231451526529016136249355866621411200780665705353150390757003044030854962543975640986251878816213659851325569808508850104792163639705781787084566761388876875983736933098817713979348506332225095594133746885463830217040638366078901480310577135229939713617673662638751790661380684774134120754430091015347274561857289422929225795233347844054718203904843034179321436663606232766848581521252235829453779553122268686507065217845410122917393492210069916886477308551564194683720018890307335190828560623395154355029650534942371493081101058074290478895898714900401559659813889524176604653085952448775371966454380170464404106867697669396461671564191024344293843525651372009129821961769963261186357275093231322715158654377639427091020971026391146906885702139302907495857435388406208525229792541613757454433465984832269498099466891491682782849008223442656288457543256431850960124405675958364871909705632343482216796892405306522024918695379820032292418329020773540608044658636948721457786869794278647559935446071418545227795979819431220986462366719155469831668872762934800329279728263359828242266159172552183335458002750612840203161827799192737008237732089458003474458190447726131099389466937592689537590686605113106400550912617901448756035175051353219415934650220302503839529049649558017589999480881899672239205130603633560223937186101076948727165251270690461276538537150938266652172455085866333662850226769152537808177422897511073015505601831678564844407992916817142531123019023834612312518109133374374549077078641524924648493694845879101169148206599110206610019992834349879316280479053454780931275050661061471439835287339648133348226000579129376875666119287669966453161926381015727454107044497387182856784381383895736140653393292597004546562573409478543977886395950021011169172150742927258876932539772956989367468291274395214682444645393571194206536098670243038090534938728766862521769190232811183543546869711731940532905989399727093466130054026798519509876071102335704823416794391966816533729406055518294447471095110781858417747305082829101990577800477484635757717060442998340262627880419598826932599611428454256428948863681881428645546405845609094121910934378446683284338290515057720013954617525080574708021899200363006210479904770547939328122234209388347336957360226892321693882504447748117723145651619977913046533743492542873152954143863726071441046252026874254654203726273458256529907807010634887569234134790273701578284818015825055430327868784729260618552640245199287204884422341210862840277939107535801667387586941524296600355395360565694884150959476052353114062670737066405073347367684218530705725937137280883397116175457073188574374983593376562653676148792429370185723662822265550882969223940952150603069445939745602285766302343185890684748847029331697339212200800831315652540088108287547680619246615256311865623249806089535846691178964127994728493004339047124096388509973967146086427832219615277943407430438622552052153559466389993221610401490657030770939412814697856559324033219492877843342496809560876907781548691548423830005684302218651860009598708006433447581049422041097378525307758761289397386359881390366832321089845224724591792277765394736656999874578298066087370871888417063808201716384365411726153272030455256023831589102090990969391311874382394869462054264378051055878625352473934777837749876769895804855749423327046990374300003343723740365226425850284818688369558965449522183700862128717423752236396719287676521348572777352512007008583110669635808700467051646784499435904216440219736326282836903832812310387169818310717142604184658480575959733310355945123815439118874240035643072786423776246219805364875432568933406317499343456332054826031241405673911845939276596116765516443699890058236021912772698994539380626638070671378562363805743132192109829266875695123052768886293670316706610630828728485967491701669120427074822128659457130315982218876992840870094604670060320020088020892273530943400016058374039983279385747629373510810606272760035478063877355320937379916504094384304836416014290757438327220907266045637315565260025849466172654376917717671492799394737384411068726649309351996331884352366885204838359056791996574369038896353081533143694191045039241271472414504475154105473228352399820517258301780694330049386505533624035497268389558978405944224765024880666005462567010649093300365568854920992244753453272817456924266159790417716997887935713381797447207854521633658738702123212143520741448357830815840170470560706044904350020733193040541120995782735921628939489342531150746701374465994417899187102070237770699982800780157651237902959154146848965701031142885688480699092713059191332905982480869658377147872646763203802818731359634136634555263378281094725007271647834748973467339857744091793494439698535826809395848980440596802738160877452119148765021019822362766015742321524654673473266502909679195429721496702215734273122969055086182161351120232906891443095535409285397635276768452235913805927315036029176828277409067554165182198303580081713705830459015187855079039118587796849189925231244491401918136499380238868146682037096067668006939678278488089425606548785415936490531925493955054985704694703284200945507988293543120300021937902376860874097387892843895802762467496987188580647673192019065033082185701323374081181228037785636558820055745189529365039556843987409199594146653886303231674287740507491181889628429371888728910074092238373714717170582976533830768786510964642292637557756179996681046352847953509888331650936207327354221172269145714157889141800381552389773384455552304930965419414165513568835715218951812958832099673383179860465595888017993064647821457811071600435634334674315810595198011308128076371036853567984212389232664343929876450097855191270494772257471191984407833028718542456405898115074660623365071096458506426084180771451303961969208054407942721072243070572203820946711490814797443910382638943184228540924464322545245080543722913125962125446380275988231607572520645722765219645854240188706142905734473732189519405476657063750364825394788690003284344750084436496530204618679751416697685593695753990962261984292907797430917826664530718525853405932914044135386993483078679408940586041218075517339997807710027326446399363217489410866743129581974056048441207182191474658705323323021971195957030259544230632652296371235292393812582095852479466452431368917549292242038607228492567025972708151389905471192003537640511163106956273788192088553154407584962064065209836698480958441584675980748023451041275258057207776434733488924273893186051253578523459642849844184348478657601534027947891186217313347766664518551253528285874321461395059947284990369061972079128894853312302179669264986074000563426631677676491275734401158324147867045585482318808546007755229044216204944578569566067345543620381899363039993633649397555058745903289897193473055401839370427305821722651321601310587266555769532877496133506404239631233242652917154723326459759894976387632074235901456196755355660697011517638189905822505543882555947173535425567838505726228808006287536733299029339050436768408143046494598672557105111737534379103417516048839510728798986675202801509572842984344014854972553087668739192592039394365679921865034859596653226663318229355326899216095565939257854302867126451949501396824845450196915309653997309458478156108933531944414977384555091462202994069810196412710387894016657033084413698091015152695540075267785019556814786667659046330846943903251576381389563769806417832325852867620473650131806679912806398903483191220025206898013541891800829817741232892205817580685854431105026313671856149021555101725646708941477961023046840271722748806371760454475092801748762768992401159053926670452228017923648426183994345669142172385396366063429606111113741015870167666871167552162074133869646470105358216214840062365069037214038463048592015297002172261339975868274589027854393973125214227324394259290331994728137449062318038602934231982036217740777077654397028500402207126183462273432654168323255310767757146501276295719464845440544030929814802623667957630136063246649997880710633717509830267241390927551549867065814503982046573727192311093839383147788352348707278833643246680828982265437945145468639500087932452228621773379839205004278313553819032630786275012299976677795669488763088830576168596991648047666800805836843848493241708264928010159647074079119733965081075079459261561738381369256086554789524678780591516064185043687599715378576221834992096260527026858008827095588306013026959875683989851823634360117841948351727213845898512204046673532327833024418225046459127449616938981461727694485381917740894932460766154122953241392490234500328304147866411763187708719865176569401207813915957453948256682099474000539207566502800301650330832497838078315162247433155050410777963238752153417651225766284693692591798122950619523992406654628858849770946368262828539119075452628531122257233124208062738494586068225132177283688679477049348400267310236291144152391395545046518270118389688423576568118128814246912311986441346358182150724736901456128561708144606806295909042705198868395536303303877286634401007566017491027362951076706451309906381894342418782154822289562622352526097555013676671493513156349281556511828518829179282418138868559539699102047329541502216417370225291535438930688081610036658430622365697777800024324919338881139936045187024704617303571846295864727562513491799613172095426695483529979992629422656194243926642221573914978693740702906990544621955029003901560968009583184419774334694605205779059047573411374762739766130782231909942426331186011299257418507857857225050648928010582245618827007553145856849135153051672489235366795703395267379364373928496366658614343164886082444277977088563451299006563199246842638091470933385720897494123639320162517734714978855037535551282415343887817860785772353222875738621888777343389771178896280015577581571476805327306554735063756036438251061265866129428599426275009390844152940275697799182329760686758009307467609387125739293594769247724727324689979352670362679227320152318768738296762766853376776861445756191834754168564490837962073066836785004815188530935686925687612990348309249544859228923072021977012046219864613440985427145991906688447505798380373229400505899627431930899915765544878099792562985510612212641198933637582107459678535882958010008357190215441562913681229976567036028348889064773322440683090217494935420652084693340318563167270647729787919241825600856462128924750793300456140822580633678587351923861079003798051668540912869922678042265910580348972913339746729259189047940511619942317385204561391249852178698813033282049073544027722816740743409045487684893877208941174700609960946265453482926235888374530616020012566564921546743107577499700852257249859755551966621830335487500176383576811441819441142636940604347209317808987760161988344196851018646426652384162917446851789813904158579670485530577688167424165807857397290618932198785870582476035155132859932401704892166701990969752511578516177905128201562908389380738108843930238655794104035009005853264371166261169905046067832158799007384881728126625519246394274642269378789095486237642975943562023170379652500332351393184850959426202276478117613734182093509867257024826501824554499356651425079500721544160235576843492169916582283804106025033626414420193213790127323174591324461641282727086268096626615953534075856557064938337535931874882674000503352104428840740421239495101858340359221762972984013319563299520577229991388972585443613311461904389968539838773611678921849195745779856382424672178928060434747511062984185859143539040330523986446654449672524500903019920593567101883904828777352218115287935069184981963340887197115251239357905786014736119274903823076108523475828812056584147342813856113947719305710996246465298282487429760973047534367724469297257370401680006307183967560828723327253356951464200496078445810645542661134517177416697725403095681184794676073427000436780637971624419542256317210687476025710578553701645718836319538879685850336762873645618939037685446865531429083565276746893865863996183810759082215119919326537885924104339536784516368160648400192244544310825331317273703090299649314309742802251141574767674279980306342103492405215004394845344725391404541129556948452586442459901221955114793409510671483364714176266094685412542714236845011872556356817133074739999623563289652114334086323807633620154212025966289323580209621634490441392582075554057029354061086581322444002199073463878120807466910096680419013754472727070855392428433611260477905182634619191992378073113318468691013014136397848107391400984969730710798711276684192389251621582510896035609890212537402734751394652974803126356793921807038418725357150684396121908468372281226737986323973007599044151756781656048387573855869181002947467917885378942645323479427125759648799331331111486675291120104284591240595230173175505454550776211526467890683204154211400201676538561849897990014341319669623614539951327337267525589672310605597259314617440589385375932736457855711893326100692444484589987014125765317997706079201752805622581179805256482117421605135460800536362895144282269503267388561998430401815018963384645226067020975285476912315025630240152657103310655566463581149917537762201709283808335887169547109053991027048816502010211816675064950133169224658337643347937337296037477772250774805395240726149555328640531542398516953559625880689308129181699207257758495525328216347035171961323097185545225694181079441302325625788787029519404526828986906373345270325556174407898172966437414604642962784518966528437326940430378252960574315811213915579573500526587855462495907262871123342935782511746540065654143162144872698990903546044828779754217052069157924099576599554982097145364678398281106952002981439178150532950473111668460536195790674925778579812101587418032612558998492654195522852665152657189463311957089559252912494747129716141393995153918153202192953781107583316426113862784900309992068060877415088385505986620419374898349524826119622502027038947719666335135393430241755783623360799204828392383829349733447932060416832040202278815863355877790947106208628250358029427129375114752805871314174535165771944121376145034639550592051012705119266573583674229549129640170419972943096733850243070224310578203255775334125396906914849095750347917218761308338212806904684455689023897913532468292356800499841765353954414438618551664534953724082236037895468762063095445453142168123423173466176047882552882536001441728618111324060715216873525825124531027223058956417533348743523794678643452884448740767379549834134389189672754166404310574088800784268460522653638936202100236368669734041335386598779848837877919884684701684618044464568652693801919770307842232448599545447406703482316634447670662957627237469920086471922647521591718340268205867583384982807847503599159971114116922531935807737558289185811581001582419176209750892444521238401775881645430345505350166315905931187086122964612700063960624577044347237950019221887474688673711802942217345791556035911505777892086226434115416332397807888536626485452868075856322748616213372308389639732948852817928339377316841555137990313266194000309408195942110266184809357219052616529340916863647512169768839055719525133580673671934183502718331040212600861803337597390626343255691077471937480572630949580106618270042333386530216922580711400368925529658279240939231395710539823133671135576021026170168115607129329069152793773558825795611138102416292903242907732541400800178116162908977390286123487858277082685580920858601649608155928463739881678767567517362303619030385889164972716048146426658912037805332692294856160379600100667136173339171201594244947088741660300060099427635928239029792271327176802604697857522430946731006041304446867011332137051930919098308532273874169174247454126228124097892755196236355035459988960413796314118540849059257759316573382752603368331738538104866345010870469077164498818566949456207877643921738158555814081719701960330481897646292225372871566640325531127168015057455003114171649402028646324281937549250456686375192710122329266102591967020796729564532914262134931025774318749978045634024960662801782755327887612516047490986557062044530711297459920644509424328380142593060967891556145807449081087446187084974931881735464727595777935690682750976194832443172401245455916470390693597217502135490588887440121924984672496445064310453864218790108751087585225714583704701793141304348684917087908342120398332778607959696157671471913632625631903260678327959631095212316860196905775632288869266605409569000710505218094734153925043732901506543247831293441164262183845742554813666624542890634592938856385548436465807138528535057384563360578058139400194620770923436343513511497391560346707143815962933996841976595964266879185347553653619096550085789118031411081920183178062167767732702898798497807566319147788759179292411688642540426436306953665239974500180425214389395886060879998339458865774269907719897417171491617228212220537140458895418668294499923793689264486786100789999848973312022452455236764631963237048874596162936876782096864329296788970909037689297732825400370949015178796568755462896273449913177489846432562806066493455683693951962122692461691337202450452346106722488164694122901096652631342876072965545258843354387673940610517386109540786104859490844742613507888581112156171570221873592416814979219270415324504278998095637999609313486517348747513473736534141073934330046988574930789710805018185305364192842263459125298129799988934923246227949937203633831303544985454864869666691032170778051679491890399535199191328270913269802858741362373158157441521474843588144944174894899642596179405204290943557894687783301671147259937545847378919894981888960982010601823204949380414586203040270350755415461419044001220211154422980533202674746392980202151970595440664981158194429941995490293900216680796197318054172891321341894079080959816875629524890956846986202172414855938108117441010641276290668089483220549150568044796589120133255808697886557267079233362409250026574304994011336690893702390648821092768330197670051776778018579944690701469357951470640781646000394695644265153692105582039908130126477203220194235672176544535533694491181504635596808912444097362937262197615170463652751054501532110094964826583714262325794795008036028069793019375579822869765046862222772158087844148877816506364054916705401606114926586184143414216403088154529175681975160882160354391664507182779711199685511681268864256123081486012905799279225908873568622574113907484470110098977829600589277305978306687131177010586412314418910737362705398664326566259722062043225924754081230856425209042859139678990321148900808532839439966626659916837652020711657860373092741630302763642529282167357551049583023990161125464764426471994356248525038451493347075105952421009184097690611337663851719658228299869849977806469487720411390499923712733459336258517652578922225762163889456734644174213985969846432721726618291597678005284187388766179212085422548574693729578969827659156615810507659870887531126374352583013089595049059150606605516444354007179812971220693002291362598612674841346310389631744075617960791502375590841655364035868762176799117818179992369278884719204257228610662444943300412292515725113831740567955581627987875004639595120668804709919241905846892085960864302396972123029687147794733771521917519593013946292803688151476635595424007195512905023450577198726298383235911622343438896772090037396521564740992407277777001908471854972572982650745264088909627051919646539353174114670567848580240586524282071535304223607791103858874542862443657105746213301867588464850961136132175372115595912751096078573728942058615224691952387557829100540991610740455158916785627311953880828091024637426114231104473269274198240909753749906370522567240640087049625568821081380311896660246540223524125168866770765393249455570951942393707331279027120692124060536760649630872197280765100381445174572880149546983986271678471271421149011488446420322244970157607288739861408422733821438684751319731907443742097642108453007403121404228751276064214402944675386605394067830591416103145252831885497796478327140938792659585913616395962770983163258729928019312732321905262491366746689982331264765480063787400142067489343604278712963045906719213582426169486957341510447902951884369409003044638912264218823402644504687239406130621893526927599776729287449209621893215164325405501408306024471808884275807301300370735734345948276295782462490389170210525666784707513396067090200281617772878513661387531267992932595393976627637348644779156268752183027177947907076469455794249895061902475877993884569163092737714468825733075835532925425538787246801219567932583045357607992747901278839758632755694228802659686486583802916176151707672699559717582515898558111177834351420198775720381566986600878046578870265382201690538075512046782801504231120598803274739610453377699803645170789679895004427827324641539043922439008500262929299767146578392426412528173100258620178518179184666450518074921253447251676704137157464345716195519172998411489236062417996327061928261368074367211836783936277854113081500625359661763386112214358414252077646253343026603219469823953276674166239744818792593753186610959323828346882341096700670365179158421108144471985138026569455336634140382743495228116640013721229402699535398848392545767483809223166873488953445115062863250960055342480677386108746834703292235318569367319779237031604212494189246850892428488807102104031664717992280401817632741996526748785768309940794661257536187635168341543171842787396323857475869562037006949901565553524338405378596786021142778301534469892821968674573453286388654557136749967964662964068762931452903338070557652405521074928069948611733697811192733356976864616837433854158100822408211054659191548777325283534840199908173393332641461799854338266119195153361083117241818431463877528777732072715448121036766745850362698943705620924847615941965016754740656099370677829176049789998290135408467242139734031077354934850960729700096705768441363867896545722383578169950455490242902681960596410928338275780101498502792510611056100871191549252509161008683384114222851466787066481553544486864968093532496428499873133102363446275359124118481912870983872782396552847814076226761413424277216360921941961923327969171202385173595220440373268650620141827804987383255026773669809895429879145760907975031711660700620943935494593006799114844090564086970582049768402707593312324608668173102900771669116940631252114189588065589735512969289712461647473504525283607152323506108954916404268312712608218517579816743160498260750203299454050913027774597285068938445001009471084190405514579229908501788361653502977173622659377650982201700322154589759832001781690668816802688335051528563481532703821733398151838220307217652876617439338546459595820395312157052359530313020312432022078991629526427533986299607559902605483334969417762606100596355509792924654079708701520160346874979894184107056521518937332210468826794704963345378951779511218188228084285157041123201480821294856514223821439074554942373518462942570734890906798763358395346039841316119813840869557789122914820230845215022934795266130078410076141826700293922536441329794249438576010718015750112424121871021126850325471023966826783143426560700639190881321393670710110020381008208551358556716511234196808854465491195808308502447326076818726043993904218355560836000225677212400043625104690071447774166725737941325323008210972092133227347299267465651644600779043485747949256283318245751967681614995953162880822055217721333343728651028279226913489224288824247604620397336410050711349824239801525915776303405075139214617203183694492398623401877610851677434614575089020359867239800897425629527102308803379793015432176034489193220541408302919232329486852526888871099402766709609825428380962782510698031310678633096936564543209357177345594697279921154960817124064762218207088303619528323034556449726711872159003013814383537276021321243165490483600957426502368560202602408503267115645307165122742623760731982280539710542134291992956807264492192872106485899067205636464508947579853058580167766076062334646997600893076649939435101082359437341949058299552797972037714674797455393235066314512764581055804015056949139172479769206970337392084658628464140675618350121120201461057273318117309377155861930182529860031773066209361385315766555734111679071624299353098249361224718060949627964168962022988794441186871234401273202768256527228471101088966576586756365824591608204765848368029954821889734224069459745377954126100587714740630617335431397867202587861405032311543589516127650690457412365365084725669954505603617094032957352632777203709628115256069050583501167274328228628192507775200245355821202424434042513023303503365406648219016577997112259375170737512699834936546178497040368099914482008172588055739974218585627241712804734807097036633853313868282027676513565129917972621973536581158805573310865987274946785991920604014269192883937589436104805730193290741720971155866434157936083111051128484278620353880991352882223063532205344615916442963572634029820660157212611957458135006548929532311202711913076698999398730382845211501638021016588418005739259534251926001082941396497395653370508468029642101088958250126964707562074489132286200051346383731483343608757908619643922980412837825136747793762059253619999091984213465337540690202240854450214443633236177018909650740733456243626975200627348124694271100542442717966122676271559442344590657802124913408005048114530533808267251639203005591345636682017483333621085306036398846660376550052769839077183943990550495501120139953450713125894765409028093748187454279183771884359252125818917191635756678777429602633313743844970410164929950809400959002560920304267820005119103500473176472872008328322979627745465684966990949162602157149931134147541981061725901736958393469744227638731791344115265809119454031645734520704115114092864612521208804326882834211055882205162917701788042919002220067928028425901601284597350379810418163161619489953112370812336556992462405612258541430797335474076049075758645183396111511399335629336107241660890585262359413289547105519928593672352007671978483717339557312210266186119234409524383231064761321115883455278927555502219727685818930388451509544911657495000522423476205341080230562069736869031280498695725798714624010663319458332457762204975095303915448761667041381244967981366237165751369213753445832985874486579829467000318638912300908784033948568752386313918641256439662588529451349639875710324594064702119474441279068789831361994171398861879442149928885557469448852247141694247596058133848806652897177055371990824384167457099045310927796880606104904781555777972347288241488272102187939971644899564831748337614611897017048197835394347919334486839824919340781093292871758499176311023666866799804464900500312632351321835708758586033059393527368214814548798663830303740530464019134523599118839300842070246164981610051015337708643129372221492500469433473630819587404762343324277601610805685457127435794801702782278877776324245561093127034085598946790552785341239968737732712175129129398002858007113616124497901985668024793585117837505589397593333551973843769680236288916696926408892737962497136796059878941945966659363771217671770495404408267623835216703245697243898198954160120952272880824383961947901203206220492331696176301624232215604189699570852950136658739334595944841867988723112002259832682887015548851121345891836340490797479665337413457268777430677923762160014068891533543244173942828451341476760225486308809215805218723415991723478346653526996504221380803236560332807608213840140194314642226567772466123656820075654789395591852897893095042410993876757671052100156003845625786018830631380754141043354566156334571131602252923108540411584761671607762509563266410920909728519100566049466001485149382992647378150944753911992509925218886095439454790217068122232862829461825671773490975745640273315505078907358806888221719333590585399638001799808084824408962843143050999520601145100345190829709518395060325581330025383334382363797572482047829622053115558968137959212356516738043998607579654118502035118599688210561965812881455774376733322239785123419209683594276567784948132841866789513381722869020837235648778175552645687212564454806751563666037341708959760575959197270534866113743445403329609421229836207196130204833064507867005329946728078908889732834126029330145032311948843629517688480654220635663834824799701951768697333327815976422901632781183133237296734704718319111836567823217256764242549636039075724846968150410761238168984405191552080669511436995013971453092111962622287361733137944076420329263752124728502922371740359843132909121830903420843962110687861831704410366886488387324928529533648182239135906571935807385278738406058245796337055310648465279534794839517108676871186806868265838706802132798433078712030805232938673328659797655763177928250340823120813266729614027597447721536741754870253758396983415736908221310966023215242575843142313360151050319655621971690237333633717580685808280071084881532204327323146151709832461928816639096077541002070935498910931804131668461239485002691565545107083061783242522892718380906083786366656269795454160017023311907537415633797785785096405648425007780415726822408693545887790751589830754907015223133799001782932216616234612617256720358857921934752120956383379495088642621565551935722845702080856832191056861042907664007784941847472156015278019311049656887947153274454644123711302317986934178976456461848078704561280730683378090602543866798306908536311680472333956424510499162210544425527022224600527393745159401162687896257312834772627240694806594425163750613221022572181079525137674632498717802231344989771415883728358021922758002641547098728413483518955296962665321155699420108321599850330905190281680195547955912794280173377473631728594849429597826957272162777699476948675475536494065763383124904865197240710813389238799236271555512045159994571732979182573118802513331045594613440554860212283155953422503768938968268011168221871678153104659314655210078783109842066621917558503202696093837174937058711627287739664346631308593470754819375477202748248125839698982150948500938346573766455940195035513452507094681425875919586657815305079401270107999683846553887978835880294985370777563972895834290646649174447068096201905511328616154892164717339142200548078887205148988122634278420707633546532123244781258339273551882800674526261304447791240559745189853564837521265832300498796140337080215489226561092854624493020599653049333835774006161830846834352372681424429292149645600935631815126012151259881796508157222890404571131329282212638965103278095954131479295893448388332283677502338323430292533279857481381061028955381300817808198504005915462470018409566327863636375826237456667834531020951180016582156585615441723735749603569749510139498012995840316862953211330542073965924453032397759569566028942680645616960804680861112390580781732940653990819416863308808929665968583295492082722214383897906516278672471819498593987546669596438525048779118217546136941561241419827312283922765988763889137342308253817905060345954817684820375098547265500906322279514898877206933706198214610137394533518394844373957327935189803260550103106267831842725801448149712649868182098195672019998108746604257957808771911278032009130912050363851732689433165878287265762067387716756290001491560314863475468947731610940133836810341175043973922867439020529926190596221460987840316386370021286970259963774660260887075337624809116523676494642135452779156701809126936560732558593025351519559367303943175813055366606979015004674077288697033519339960163616042363840880485446479051149658242605042670202943966598121999590291765492124218901496173899893527481146632238812728681324792476822361269732558781451921536389320793948121326629879932953711631833707970793732742366875113347654873797171399481311242574383086988162586149570548478163667449603494763188003996320772661145346863891165467173135419880519455371513506731609054570988445460250330393858814108163855875640830204675033034798238717509650388154427713410399889539356022458629542942176760474858088778517557035853053457220366679093589554338106014632180889441263540401677439161935416971303901369652783907644937626027827698389614749986098573516932410701109263149377476079728820154350304234797298743141450946323381241160875222354516615274174593356009426937421333117984555464595521700422742005855543387841799829048326893050625980515069153625495157287104791439996488212676487715849636348070698981217398491685544066115168807185822097570232524447589575247927343667530628346869679027360831865310616797072650855853752571293503469158343773981033728836272304868014972635192402893967956471109201541724510206352208020119573253446440974647887421998364458594000614556576351850546989245879370411923225890262704742592908659622412546736770977877732582390636917741283877567646544817116305146957641793235721132553454776351636315268581035669902224425590991669468294030425102153125212025580449318725893222449922139085163737167422651759400811814763445968918273428329322830511165360616068748612597067913487714795370089732830360542129314131457867116333738834684362950639920376759755054631397894777948956875471227911218890377511685485131506943741293446575494182832957653941379797027714466899794053713587025310759390401626140392298046205924537948195899985101426660273812530520684830390215583496101442053718802896540840677650078613498172533014946039321567135914174773148510009364589490671372204340988515079162298327672191237858254502601705613160857957684748838111191780126610450156459488164462131372361468762906332038135065546564763441520243258102314206805464258434185885530430268527607597807093418076483298700656873664025563250095150983559679280324440098546650532372380064818324279924623351979736586014422022814244363081522363360279800207411888667260454514351325036502323915807205441478977287354079107692536271941534738028147386534589040959352061545062165227767284475047936200563606969797962916472797428583297680580693454034624069002688487167722438597063748763875965150061295193101295686280453204664503192317076215954453001282228295616693753836012442427545830653530773720410253984630984056077324089353023822184541528365111154211087179756707977335722226269501751050262096557340850447101247746743084699805742222221037057946574852991970221531624203053915311078400837457722348722928061171394127637276672547483703617179576378852596551080005865200314527128804254334380046927757902985980430298246427715381916736335385728063786307440540462308327680210448346331271376513105353576353933412292691017747626165768371208239280997938519535791624970722533418971296158195244332452973924294681431620222183137880380432278840870806560074253653815114638127091207814401247622001885119960506294790455033766743790160967817137942155737231836953832641278734282763018429422323938627161954882063662832247794451248510849250062159538959641443028221551891505063985455123358078917155529576303230822951425347550724157888067061544639350121181343680625970567266606582299446942070508767365848066767395786599876531685652091465681934028121962623327655382843902259963157806285207261029934845791577630785096833563433517112560584893789752055184308276701079146179830229478436239347713923665145160438365100878263715646858669189244113002091153297480100420470074764148846211883970023139016821853517956337585265927544042201019430887608067610573918856385671108375528310191232148387540949746848120960083758962149119485451892573209120326036491413686605015218154446265083021094798658096211059897619844899430237943725991595891939182796171898338851345784655210726831636994239669777110373990480405568437389288384961624652456088630256543067228360027589861709656701490875067867150672189702907814010740588992919050792264502785967650171305060275379110012354962055246816198259312920875790456148332645809474009229533147129390368211906670436371446170143872642573201286709845051934965382355050292846569087186946093407828426784787071567673548602884872202713820356308997234382483513474950398557065903041614612614306306021944323414415857109930989639876069178327710906796638486069559333173799569364442482267354956475582444502295802328934584458701153043633118412574659416564383309097403859774233586502926417428587675146076884831189792724725159531725048380153485863333029396563909854272650422305533525380969160812300519257245570686926044907486214559959638914488801385755893626071663189036934663354504067206945868560465076489100940267313713028948290092882031286054710769827969613182702289532388090046883161927811620672292484663323430944318360614282622806808318624394032437511363526955520623501756932665588382666123863768262032511386212123489515628919270804761089216474537465430883529665911974218868369775095786502659676572210246565177867142312734758483868787114781204710646196497316693185753117684874625539769926483922104371638928285941488712160358075899102499717993890425970235770617586577766701091771429768064647144932153548413872281968952502632097697823056428709951347182291907747435081482127118298403080410358477555715983103490880590745429364236451320148543695346377651542495922976639174417799473060874111698483793715414581813753354332589215745667450521386943935556282535800167606304290208321257656590669463213509842340685726575950399253545688603966244116000727083389046228893948158245436796655536230327667700730807250311941010686908795421210992268178044279116125702378039442050945134206200471937056104340697692168687026422123736954467406837782725817371047819546890511897344918937086743080456843668086533170432996614031591236271049575800518487008207023766200908111426445607753419399327903299011538963164543781741472252854108148898983332929370511686159288958520094433505927858293248585905119181361555755061194178182499664616346207051946395567181161254415409096447113544231366373872148897883193829697864379213045143495678987701070350859033584093451084854747536277261409985811908466861568965599959721625856295743529090286473819217886411039672158962205158891551733990578404507871751233966351218107492748626096138769129968495605137920750240872759625705495005839158051299781093338215346049249630478928959478245796949875736114419188306117423118630571136344845810181738240182248897934956532149267871796079177825565813763720026966673019964651041382460649633813079419205677499357911976227051848691743678681370061561657603678465770224165278297221837902500438658463733936728026574114700775157601468160121367860066644556582146911976216109971649988543447291669826976865257793856966180103928145139024584134837883317630990428914648454182980822439868398296792734856152488768131856102682846385802603132652170316216388289650540792823496447527980914984494603224385825992649576281179965333822337865601760915882647033206798330211370848782736006963260163310046545838072415108099830877071935161829871993436644531305853916350815649121296563459550919354858916326770874715930453118880790168171172279011464234253678632525551265971476889259381855174054208224015698397206833461158039174189267486238489204452564966512398206515238773402226878343411152862865035642409354746900083403294261634938954936501416084589186107770770515447179845251581057681488500394415493517098482909146620494463935906897524051988474707395352924978880826336633087595673883305728648129211423641032682226202054737042522351630765583849530677005083663122611043477169486050540655734364698222773639620955066526212476902359624158777781091063876142506474610305775703576115074502963083358454922691331296803094010137400313056230758637901458747969388258077263590562797363149084864909297391479198937402827503354299891221708688829867799086131992952998725851123413268892303277340909424440958565667413970018168564334058667069491505427067024401792425389516815263270930939136791142551159012361388597125523095893821888084869663109533418121217070985880295084528651001395309664116201978739470034457976028911521335021609302812081839450670147534994301354550975032298254773099045242935257311008337330007600039473155746356976754398190060492873531138720414740828655634349293119855150038778203743194495525098205208388989841581472875234817746329983796863163330871705172808677419306143800237698797312212607889617395773058704370706333224922134033894766106079866075544510859303925830271032589419321526848997133057876583774644662805622317644822828159387642208904377010904620524765891033767222432143993346045583460339444464313107625601589657636253370451926783194009200307650510090537948059480152387184596569675610240034166514174643056215539835569451460307163865866875698640928878866289616947455574770858499680139936072768918006217763002158216662782001101766763046795199175723703695857281512683622740159656997209961599573885924037232352031199196310044287207496981110968338819578448145219873938257203715810021949119035907819800102454594145425288981657110516453158912509039813167675659700718255815884813178870596550937747181199254144057479977451351546841693008796052692768151856029336196531143064004191033983063341315299925029952301353914580927613322169668951894556759328344289602673031299311292817541111317357929452082617361510338594129832595993011705008378015274187226792042168134587047434146509881517342863841498913052543697556407844639660512485863530935922797472822467206387459490517339751069413393841932605172818035284395527842026016837256035964565914715977668770107603720198637805738932130715839138538575881833369317062298981794752306490662708147185652673637515441363351825238364971275222145332171000819721246688048090858869398764263097900683893247763790218991863435637309302017999205859547260276192095839721417621685309798735422071281587035345496485347364604264740883878507343867529887100483280553731494777691288845446576515208369368192757104424622260657277182810495222296496413624423312287934357235583075515256510643457905449036137991417371107436141295999790359816365996711091810505194313190103172740244570121281695901022105775205299377556688929635973912622712872643075905741579623982076051934130672774387778151967920178825378433086574467096216531928644168696146383227388659231642967001088086860078985661036313588470810140054543564038013040067490644325407233538912416959206010871650640212514960762115592386219536551943109982928626833144637246368797580790082762054788616385996136085863401432741422159889520573118520636554093047622897066318592508558897490706011410678050756254256781075860107602633712418346258166508502578258253526312894213775557952453925920275253082002413299312777665428353959803725649788549517168386152326434930615078306637110100404351140542301224465253745019554467880837839628727821350717578070344596896630204468632501573128730865994542723931554335476752931800449096449447425379103742657603550963325705159168978299075330086860616947066824718272134608807758181810951723096942856617076069319373192537462647522000673546937167742982644584729139839485766484539315768371735140143298175427249167037598196865218363903166492907467064138212940768671339595061327848420733706652126889447143538793376128010585159665023458127243552021861444070791736513634709267909626670159508310431460895665234135691086907392219244422396953382902016340029626148926481030331532432493941854880025091731452420229260067786427546207626065819458890793887936394922031856728805873501547567672447994525020973583042549129299324592394244121219546398841203052809169484905748324612091486729715674043956214785098762860526835422058303886052040479766460475460865574699960742154304241879355033905820518180251244870168143194498918097089685543776576735875833466099592400889048325880182760944898371581611303172268723441180517533205787939762859608881118259850639196607847962455520672224909141172339083136492659193167530282366193965433713928302720917367844358139531956272440208438167132830487866722338219874001186987503671804628725933483452928281703769578088820648521987698604217345107465247383458573955443999821202477540568058132207360192722639927271866794923509774698485808817520945557045466862431027048457157061434226485416125978178789715439308785567163912269469483669258387722812739555282151168572940423396026863397750138539458138164601304849367224210383013761744816713562530680827485686414429037082297109331596240524647382171261610121311413382010587744833787677428960397584833731434569824896993936700018947011333063927309968558148542988072315671154438276728655700151187834796868181153288714463739287446422175950657136010647756605954135726111289539996062681313162619871394835035651086091932374780585168961477393109346071864363976556925382140948612343363457454177218799593775036396703961051602289303972855622074789230087452119140770535559290310405119927397802726511945454880043286699767634766315397141243705636619610224293263936896807626753053609157848763925714563471166065943468771002523379003865379929551072542349425528333615105240393688089098012220871155865925929671204584073672856466160267720755628716813423343051316541578201095527630591217109598336265120668606700074808886165652984546560081598167728763313441750102694155740747556885358411369900592026834737694900992113092924925227126839617074640571820833483679005425342701222542380932282774463648795423071543495960753965970992711735548020025372041855827155268367410480139275485545662928572905198421266580105933219745592508288223909270568654902909975068908823633484530565640882539393022814187863741660488811486094065016642023424538963494262332812317402498537116532875101406487863259971185774078999339412621866797814223421518462257681198520592028536635212077755932324426017096492685703652817029506181667116199122758951606673238832418228645411298568621977907785465993116851926421066544468416326687129988437784613887104357708716678014027194321888105301259467722697329807229330850545904865862188769927707800500226492499775137017001677548430900635580995751940633135883969327361235007801065101658163689303527932986913946695698535287872430980046066524778224388518922395610164340726839087935447372953352482215112110283805181372791924379379602894979250047869039752578952030748610639406621129702483735440681089328699735797073609013932012871005896139708448499435664418464843748307534040149832281277233403219921249886327263443296139212717149463366571163380165032377389092751943228723890077212492179745014870934630133740434813825459662906806463110301102712096252727515386237518964588881404979612116074239307607789555299452134299491145767879066227590732895813412898908621157134385055308807296729220925517811509681291147885187957301438887414322145209612806210641303774654442241573097570355709363051406253793484632488781552122036468577535480952514967338128827774797971002169473899478164296787524552317780817964435843328771642145252556620939880069444943377863971217418448154665519016001634959753147441306155514400208313338442688868248276569986323602699160843703213518266669312068148594966523624632006892569968998755271653311118177996203303770098239207671984533114317960492774834787422814807982171498283732401536391223621358588714539497603163758226036572286041488791235599443118414719238143112361966001191924212163532896093138652754489961942096019334534297264955554940217325347814568310516753205692527401225495250039683353037334475622232826158596895402503999159818855434137086079886612947720417910309600723262579043044055654923823879937364635870251024798264143640592965989945931446964551046977159189097911288252414603568254882551765150662457222818750180482574700301062478916630785273897990984750664776756981283330153140423588417780336417305537049864368951396826027373283834510511232713124824173290692456289326834560245751044138978288005649954046690919721028650335575593981216254436467253745001659809525577444938352904834272225426203301738817763073736157060904685731604358348378588044884133668907338038729736612288243142530545638122422118052553318493666692215377978643422166515549394744380964468034652348926877602363180130240438040982934881895439915600408017061436627635862646578265654615890993287750637186324183385320425177844473493175620172928224670313377882174255331051067011538372058216671930944917703321555273889792806939371854399043095950863386728711554184397651680836151368295284051946796833838484179239666976702203043557330424556621085072161484099118215390127103428582389343837720711543701356100660881288587630310213489705099673764635830509736073468362462498825864563838036415522869104054607257975391075492530572722196963783000899755272237083161161247578236419069046223693436903210174710244889711811029353683584155844874335256170062920088992839425006244471787380251752755361808928575251410782046012684063767795284093059667873231356020087772614821451568565390077916452216763959175500717137506395140277694157718995124217024589011190158877338443613218203277252006187886828551311560167498422443046360603425060959656368235267734514355962381220922015333841425607709840083753998412312339775317171340157570172037591607802394048627287012407259593479413091157345669437949037721012659603644471459304994188047594091637175676240729211283764390790799916560951054178360640963314452188261180096030536801453867005876386460381584982528676771871896248880970885609690035194605616168506672044084501085154038447001930408221018881366887377565406893080361070643221783380327761509814642120092546528889609656728821101394322964033025561228628358832721311403107159482990938871292204652848790194688656497938733813115904272684624571360459759286839824637614770136526165956221109846371594016212557086651218214343204520420304252578619217935977559515361275608091349819784747362951227068232490493904463084139876091693650363283077788511865751819918656712363382479294942141377395457021097546135338558855929716615179373855704753789375943088713135472464427095652184819180809360340803935150154881461131908252008231181934953844445661273179423632674836310641396833938672416024540810968877794319551607087350722851116126920893824529346171332738791175881878949412270953018913607137968039488334103014798370791922206309125293539928645461208885805043076087496333022539506003459276821050464446929887092706336677930027496315899583788124640253902159022741102329335742103091805974967392041645604419393745657098436400030090491016494052189018212134985679488001501698509599703746661114131498774404648830866511948541661412205995110568320552808832552086877487641385353413248450927604505754651613553188669556996420152274385324235367794444287343398187681503025906324226887202009298209180268093592554767652005109921664951925582304355083996222024582991667606075958502875973181563473994654876017376424345778233243776266844069441813887733414923302133187843258053248691534585708370261021116187577179235875849992202131783536900450483198493094160319389280250965225287831428176913027772845937262067866616041781840991727421945240850924583653432181019228024724531423777294831523804160216055369668529863804410366147421310617335390075034852956517427688338687904564199239556977056071567044246250600692810025755466122465004110130526585399073305257628539854292485871566171144906885144180871109916485356401578320658955801336360353201284253905486454533777036636940902135482008297348158399301473197233934494783147176884769655481378887768200522659474621265579850455097604158041856293160119304731617355403053327395247021977070373386669650639230660371413176457089392990720809176811653577211874981899257373832239409772570752833394823901998165664324184878895947796242672222010166215238899309711337802895062884615491350611111440938345844456353116194956123634025779308079278759714924147624633905383973869341652187859224335141782990009460308513125950978177175675615115686852852496677839479359574173694718701821589258898613240948885956490198138613164971270383797228159260902934868302134622384262159610242439041773978307080450568531377779167340159409520832313644584188684971171138905352850343032367988867111725862316738930587089277845493539388601584291296324430504663775779763952890204621482884696079739017039271529964864739117416271909328090578733957170828667439217967804857166183997124667541993326154116141556284451483697823099335455311228339928648272778405729067855867087676659479264885527216938534098706128788749877373764601626064700600968783905050247297463874895203662960344143826192748816383278356696601873652632206843945683373438866044108628027536810498747377050697425762477862939729722997610033369290766534296926896389303250274977441256399581047209148101676830196122990025284294783901247500223852612220336980017552547577775690543214311305730555724848007959695156973637017942657326692144714751819733988386843190731476473360706347015787165275851159046746649072427776550968550958061648662177937428626681000463522992626330931925332253056967186647978898703285861163189414600884016258123360631094815299292944017964117929148511503105404066696207294704076331304021864114458165633431708616154009268403195368220405256783497911700059888344843202529401417695394143391811859169632586351773391832994740067379640083379719045936829132720988264813526216082290642586208919062603274660117499625368414454253244242291888959834153923010668340209157417348240933069908386515234791641804792084379356487709444866073851999966902597844711126023186252760327192935910650644584113447244651822429422342998681697297148627334542249600121260282256614321061741867837336648882380511892104040715633520321883705550506790165558401638612789654841014819069898121200810927872174236358059783771812192118922914961152095770478242593797165139774187122708402011708403745477134081668246526711724599998802690265216378800459507708017952023349073568049042997411473388667264792085650128765566491442493368993093612550141343423031114252626675325426756676666500424774321458754383789100598158295360242158698146924277266133669380809925441827638032344657772536932707834621444933343555418136678138926372552021750699073768560008734673446047108224876790377620968334153207051960357304914711969323588681438215166536741850084683246262162778491125275196701463893243474755101540736105415088989559981771878390052188047357463658615478311339805643750353077200625803868290016512301522025076875193707633313854690583968855824615302484043587208259030943022231670451890686587942738270096759398795759600998633559502839196688938003526367149424830947898034262730042803025064298570277173984622671105506930995652577281683700864692860954858227298237199362285867874675195167896660086140760327495449695766096060879234013894547248547931925056617871779648991876786179770164843318622803472403279399006205745832536604578726161921937506076824354830245059510556585995036552246992153449180211633647422026737562447712378271561598549746290682625735342433284912196560824452528664833044827487242290738346323953259297165889476131390750723021567215134680429264406831478018311543249405188689681506599215517115348694136097313120916729745739310555371561111284719367896226166619796159193016316472716587395578427171284444649046569647821555544211395363114851396904660894618604641805078990500621204175755425801822522121296889875641492087555101144803497144347097586703857203918646071395961044193792604964391423727542968475592648489830188875661481347221309216017976561629726062906101723272281412424588556137832618509986378989049247057685245830062779856242999670683110811037625687064943775446297248309358556929478383010876439416135064579857931505772782321462198735541008438368097665970916225083130696642270365348900196071223200267392039656285977398723198980481504670508747640546921458331153255082544294489583123303490627126016185526592862248735545032138259956292900653838656418188964149303033207572414281572775709598579600134020457783763591852959990883542344450812986682809537433182213021060534468972029876826983720152375811167918786508697235813837914425762904743335641459934141602997070521833427900954885298080183105177248856597574355506729689807844151711686761634869923896265035435067669270864234462194697317854925992849201544661026375021914546353964406434653049896279267016611733055083085520658945795846380094873364203517264588361429804998487124757022140469751218019345898342419160749251043241920266336794408339560363476154979004393275004872843152278700024047164053739048503559723739944439087995595580440955734860530316840997454024984104372397985686348495878938034839361712621932288179509014878072636104621210597992449095274588817263072522450703049278289512149891061429762394565780386890944645715658654280266880957853741030612653306010180421193857894280552123995493480636879578448097658639104672277810459936578892717446501084632808166447478239175867665923132490936759450152891487720084835757400649225155161985325142899870114884699603180499362695685004468603466643162114176734236197755009781694300591724040488219918197099640872852907332923835017660030111553692398283955688399562705036134564516827400277885750445525297549465027519212688304566615025194270426787560193947820994842057422658705723663792370315642104835093894531918946477498861226338989148359285234904251176422454228613740886616666623796113254799407560857365752356515075578723899751878947535509794766592684817138661544723490226201225341751839366267995319503827387522749275099251393516970125708212988108467718944204571718736498502672432206133298462094455071747488295323570581811550173307502881671522915110061967136822322472959739866522689107272856649727394419744935464051730447984648677304346039607830971733260099936880393892348648996946484263538254657274178521078774537754085495932902575449229082750941198942067927279102041604242163753605866919138584818977721726072745674318802485072246823626551461672288293244089818315908335100762185090266818985914299200131872371850682897347095041817121619819850219231952264176980352523352133794046781369168222346563614329019242258998285304231555912291101802357380257209108783209705036987966522580400326077346862247296369162668505765674821556131034959786427073723596670454076152756093744320349244807403208429250446715937570774327483277943968627604896572922787723865042280315006853729881058593335533088612993478005402452378271030205101079006455961067823860438046334467890542736396098756646266075316916371632380737024598536394828595654923461666603292580743874764685276630919650409289034388254669158931104342240311577118289413838936969768279577621117112020843054270108564161547031877738566767882140928839055381579455048860819828546534803961261395055996626248590105763299470660714349336126845293569192768746967088221085409199725244538090863772443416238066480776043177432842959577909821371310788883811586235499576315219126138676228774718547945798882231007956347571299124202691964758165991641587196104320286203656709971022393362266152890396496942761879095973697448594037184784274010769669977575778151350631450660918676662129216709527228479782906176837340349600019403021327638779809378018004538366500667411838740362647468220884302681691991435883118513832731197684849688011554944684692822715657692136473326692505021500524616398044054516948836829665651043901058374205522814158907928103953335198508464481700236551997490739037474245740979870743082455496227625353500200504507551467219232531767646675927413966369829670875010406084033660132117260476771675964195834498404692832631792421135298951433900234955642625826289086109543883787339989599313133539801304181002033070713626991330708510642289906200878688740559780359134048054979583523042830768230591613298351572549027161770309611508292453949556857510993304747228977310741107780997189849633132773813714161343500130742897511302873454646874190606550664173487984831314196982373810657862354603915171544725180799346969970301484009463752057330903398805405409544514086662479696475128468246927536143524189839086038497444435280720926363745319435045928131154389476119980604656838947602641017145943804369183281854470126749499533458308712027797498443556380779608363140884532972847921019343507490453599721589383799765027239474442274683651211330498987622573243888120290924461326540982782562690896286464571201342157312835960780848902450498239718762111502509449043559679462744167447604963169795708510264271654953108135028627175998490068576246003197418381412307668393224018725510751481660414268798031697204411052585400447834106852678889639758073894870398074220452478032459049730642707643750732534117608906547133886459118423818976636715060103562053201724986177409136058049756945484391990409227388325044532558304926261766760754253645263432163097694227868192759067621945242372209388042594974324320570657565493913107714036341695524820163672214405843660837342899420716901910922810784276810200511673082157162410259971174852928943319903835467834686316245623240070527288948263438289167453247273133367304937702903096351198373947865162889248045863618697541268776918531783562344546246221970297343098470861502060447036210334089541025150382287823009847105669107187504616332486080754442010774376246034254373153077522936639384922169796198797917193696379508851808222414776492820229682253043641990840182370219325536910066763657028581365518053838157439005336774536547870364266799641970160856108574029652435810195607270763014807944290089267956086018479974875155091036244152219829010183154595069117571650849383335894786395459032041445002278984200588327360678386057833988180502858642399552776544515374830798525555292413237376823302406291438484049197472122566210320275398696848145035181616503981570226890592282569110512724492907848548700649758150147723489251819084179785257687561975800374827179790884184357721638227919976713099539280167430824579438252071101509769687754012521131719238135684100809326118153003969376769561737768850636797297982559094593813533070997834914627448433746786868389430788202390021682020446011245442518243456245127412270934830749164272195805703351537232389828864147796639877624697074580980431064358895396800443475602366895268668527118246703094931431461851743256586705615857047990343548610509722659678180687575340935602651876249620372670644017737112789949184531397011401395629275911816681634633650529687351325124892386614731799441022091277314605823322330412437252613708936374136095760901585055807966289473201522302484080023966284915791648886959470956002506339632016116004982069963548428601093680354077936276020476660035509283486700045577477359785469035353431787520388446939772107410211793912136199371454394633763152634666923446249496276941567333297920305805075128280329826991032869635571257853719829805495746901861838575307493114390995177702669411271626831832008622614064461234273715401756599547435638813872230806076557950936879802287472373662902617551479040333115259972408528696880330438665610245453640763004769778508231363247552017619701377410703838541857837869329549538496842445460625955171462669565200764454100333495316110132022063905639699200654151172494014884342525046514770131145850083646988076530055224785264251260232392782661798043291411444053648591311725751354589067750695394786110327684728049909038101121979049649201984618866438334654513160407836462149091928524908601647628519404588942794133723891664566364031889556092690930402688120998866927448231198272657343567333929648145564113919113815426092556297148677239625496650164226153619381681297794743447917682395927112916257091170063750323478468902724552723515920131001916664744831590787441652544259720878163199336759658822677888029111625549888188521332110097831713382296951375443569048515898971808749323313100814842280395509741646203331498562853064547095108296390422051076920937121464284284952001324835009241010699876626648154579550353856262184443815351433171708373460309100113495123000656118077198200388585154211972326685272098072102373528221178087947619815983013271544181782238577334335990134522017755769529656213102175792526590175167960143264192286705365882576599203435953234554779224008727352802980087884153828890384455397864283115338071244375974098410322873694311889246510520078986937499612408952253364673923935627941211293478547352375710075699146054516205583554020015895948109034703502602574803283473561893815892386517525483843441804826106980379712693030394570089394558651638690792975472665674727544311853439378880694042771736495267965497844553591682527207286690750693118552573281490151084679995529577945367670223106610189248470703612969167751015124687897129591938815718694253453646814603734666392055769754540529411886682753641884310311894060645131460989462624288161855926839969287972280990540807133621045281819838196898382596496667370739366650616696375688342380675224158993214912237539800619199420232441178566737294299865870617833841897254304155653198165939039748395739465610176789451260990109493546520010147089317545864153611162904714013335144540860964523521398491034877721732373877954939737232580011949639788898564768498312498896195122341522591069484305243025776148826934231767410311929975078121726269776520644642535610405875557179928164324279261180062918883167293509156244751965397040673286122197453567857318061380227333143007664062995300428730470139474244668458368815787517439608234854771391522365168657469326246385842572740887301521792518413099278218549838983661273537955858540170231701335545510272014704669525974686471781685771910666530191448161985718896093113111026542140962782057010198253164096593134889114180815907361374932913870550041347268265809846153847617025987649157157384102831052307389047458636488786205537498802746799550481517090229566131523822535352929598435985656742739372942975322532216015528215773760874235464062083351976119059470753987915165318790911937482393971862092306386567941628837539744624689796192755874800362510192867876650013894221102858182157321174173887852890863596819184256973064951319565871436198522281825835663830396637810874253363948138540467647668109223551520362999640179303377555327126471303643551539268008115745152679688896010028277218810400163370819954311105190418189459755237520455418506206496401179747111915680609287576352603651030199307181557324227070087548039256970272641384476308930625878774162572151211388701828197384414218838422358521713316461058329010896941536815449325468455914038741746869823414591876710538902403717562688025053483545511288138750993173435044012641223674032038356141678894658346927331517939760097574180909083175054060464602898237819758220798219396444889309813424611767050266011826444972031166593869526397568117775686278629108612089834964173444436756785825727342623231028007777484434450034515211942442788026479276119057354674487227850648142225813106504515760079486011145127998365054278957210438847550865646121123818418208784945944240263047668727041954279611851783974780921217380161221678487088430240263722982373155354189391469777054482985803626884506133418283817431205069851194284694914649657390361210697502904645974552490171424368200691469412711445388344415749621953160153134975271297122720600724870832565021529277016505194185789347128408311610615353926938144112435398023403625774841594228061567097198289223467618395576485285642944032894443898049723512920610601657492023735360637048698215841723856606961230524022770189993154882617342737818040735659366698418240463094584117708095385034276577156919080098827808615234966177068539543924454715991774392756575731640701688797371818654668190577478949692932478632050997186075879057465162517159218362245000133105701976371897542401749575008327872698402610222136692065450850252109608013535890042617820767102598881384969513478822627598716432197753487789384051758571366228906232825865441283506463136583412845210869338786448441145251809201191590583513424505313859399680368874904032598463759693887731333738230456058406837723921640568197152635100910775550829123038774991004602738103619831907025395109184801095876949866902106236393208398632751903413781071242612474794058132096792336135733732522535190426815068164585182963568094359682996054565916796105032804972146657333280335117475161425096811362706842532534050224549649695122726280547123856902021631978129066287868658293955200018156577541978631642571960354033267080546038494818496787364672210539871223824584847760140869348178468998461956996745984869445041732646550279283568477088334147436291814426048282370621771744862241914622228532111652677383788255422741595301866503394964340937120569310447758091535495979809505646089721264212410894736940755504091751549459569942152244533122978577301182605944641182613053347585817829002987142095344630730727193789262481796594560354236562511519696416006023802529834245089774566081464713055152283393318446575244653676114699559163906826590989908837109228938721936192898675091587152130300045895579658916847183635091489751965978539995423499355871473907726258536316515574029331409799512098416220185600449427597389288888086987404397726130115493084367341368347394180603435036924917621042696976406121637561141402796076915848571027415988250680143362350199822322842741844198746701196030354892041600373309484528541467496687759769995572435604271224170378922230510504011612994417920825544102771133701911876211532667008106919164822348163786562964321973874496581585389980710670738159809036971955448482412587348943544373652791993479756666238840609884619959821857317004540762269961662555379037008279404443234387957848256911714716444265582580221024149372831015959177928188437818891201469793968260115479114068557989169969820403831276233790297132813172684031429557175590076383603681875946250820265488015984892197510004284156930146976303620294899230077257738698003264843032651296270202089950098038437083011282614332818571066044547586136753247825839889736425340627866832646804943623079567308989087468121809405486970012382989855564756154620949444197394980668020906618725328580446338562146951444414975321792133848634717535761048967234911416602481156888157106026940245193200279822375169482885850767550909767642731250631287360995776863218786875737784531441538941062768684497633606965830798279846346266253037627804812704702002516766473461808452944572486103071545862240997783648225163153169542059425778691158454149953478063425970660510926123711393845020302373129585059085725538067052189248204399862113632649019054257192806116006121730646402918767606967027468662462011164649563109669994179448540025773152910970029246760343255332726557321970190116458549218575559799533734785173829240566715947114726701731064424376821991240812422410435059315474056508378625717411810258199547191907561425109235138977053511768678875900938308849536200504599643851858072795949272714894742383838176232244899475602075355514723338530957258281419429738848551897247070563624307850606456049784269039661991917667091651300603450281327174820340199375679741974386152747592728756671160766487423005483102842324682765817081554975158800330954652261969036359361385303077332399990408679753454441070191634489691222132201084335794858414480596985755415942156645597554169834424427852754515258010848662440180548663223841584269835129229968273180946760095696609474622089049745202321474176842907666132790355873332538781991666707438059708957967978196499800365919217527294104234375489394100756484129816620208318155149540540467653747897092201230744364001952742988308057415564173173387178075332532528718257458006615887857320838551200552125094624823374856535223019674425560574539915752876359772752818385143214573823579980639638879367173657990367626884520686603048339268109439900667452135650268165216369009057786927791769654302083415306965940932086634988306804475224425037504806403369624444579657747135425166794275800464086956945981472960602647147684501512824201160347535923641226596034871803533283871665252946822456848069367181623631820543676194999945696304785985112504589633163692415121088671845948239191492620171337905186248635760570615444979658330950716301473421799090867420650897486626055893966498478460403608785218963777323282223835540634196933531693066735928847537289613483117981143990769101275318523401085707826799028880802366216256743164035546473044741438586216851759211708590167895274819093136249199981959683324560532826041656156497920453160539182114173138363774244225533659530791996961523002867110011719488148973210468395254630097449029306078956934202069573048258760204509728298462586270160797310095042299342034789985427058095563503099734187687768150627447644179522156054684406149500318843441850712605219252931871987378957302691589467481998635210329562339967253379143329466271304604584560103049806405082766413014213992595987841306414387558294893807440587490502427003868955874911650242842387851804160389632505808619528035514807066456938349075948692203988765676631601962211687813511959197402069160344738821194545701175130211304637405686958405942424956993035770626357329789622526176910157868730307126634119667470981219505648967506973112570918961157307900122672672928045416367610297118207134318630920721413493406427785774999711286436784307631475529169229660372158846901921852629816209508621010446947362075097933059920175871641471583211010489292650106883855053633901721470691913761438245801896847232501747447479964013955946369115922209232235442119784293562195040268264850055768005006173016330299894773882184074163723199978928599550304728677664735551989027792177365915586216244151194989969118397212176815517787129319780892811911047698307003689803963604283880744043412026639306721184246388666488363992469979818282930014023681423728934733753716357662583494849573920335100295502183081336011783571006103594681022581369891250622127046135990797088166319113400871985749579261427205599964451066221184875987105646681283575261225687417246198027892404334331291421448501006496500269381246673609401867836217762436000634120913092317033437310630323432933943167779231418346343346537163599465439129300016281680515057175542084219789437403998347637757359134756436622851965479564638809499830250786492357468619317901705344253957408164353837653871857050948414728614394790728062766983992970706842475359182141999392661561568919117370050932154985167640184610997868239762051822860159978077334428571736982245719837543731093229179797287401076666260186941630686506592991614393192309953391702565746928715986585938723594778453419200390689600757920631102220944449627979087999203414102976724104734086960819398228094107500251382472520359679847159509139628211804611237081371691476770407097933647405977960292042728081977266582195562164284738631048783618645873758981923831001906886821389715009791819078298829376501302247955015417867916611388934470876108817651800588590415527194515596561990933264511123458813186535369515542210741227091529037991624240736090124619675686993704882522271192385266337446540933214079073611593858490812157665402619784583549068907395951456536804480282541393549332562143971640725747886608372116014848327845717288090140088149485211197920545326086521917621914242977651541857090548325882193378446484502013591914593229723523903261867053371289321682660191381955555032711244063676015824624702230526932642514899893974956779816974150907704230031403653553764839697903099273443576051313478382312387700216489043875823703952036645474812552239823397755654813941214901745144379979280859442167593624093131513722207190248497990757966947880840429726312256784731576729396176579233928465004996893031145833772317981408360149905793470234667133199267853384769067273179810236738962438190774358502465163618872833367485995692165933662209943096945155319664586837150180502744110964509695878494179740587435609545185843924946664175076644522433614709717340004088872739165334308347742865095198558919963641025236136305063132750901786097260372172201924941186734999182687101120717184484525093799630397928531867450018412935838757815991254723057845091015512351328077948084276387936293296830446981539295281540038272480341644453010641483884550476051247217534479364414457191446053757590497843484867674955747420248762039105861801371799421821966494576904445091041796780086130793029674219242940824344089605708065522110795665935207858289057561528737407881919160539243898982865885094339724949761170953953863416786260901184644770733096314693333166283846494748134742252137573931889329709384586604154353547691044344073122684801452503706032735289283562506866119121643969840058548060463116109353322975886675323322864180783121048619065409108227027944521195670831729486914589924514271703938786186112889220954903021405253063134975823222078109515594591825402708392776025031801050458869698385893103873051497213407893908996810653219574634576151651456234123016717530433110683508022164620194375151513139245775656147452832258791234901048518084045528404798725957884585984756002121364614587628662016778317419572838537743623185847009091600897029429118412097164366002234257613329111779211159642427860935953719416553280386438132595464327455145547065055580954658987627698441167404299016425804526018090752929872986925274916531069030632413150930040114470008931900155800178756726456059383444513507456405447870307193200907279567710469301473080597626990400122873083561699517662098218007351628923478625187632530134240832416515423559855489726844279812751187956719421349724911851940756169367508829232111522188773123370154664477722074327920898928964783336358897148789421554275962223251431718762668150366731930839060046143014657360727184701147425713732660826673888798273687487257443045840725896961937975505433924032268802081195000522043287513108619857633360251260136722798668356367152228739984028512086671684269922929786941561238388189590834222790788966599108815955958846769425358458527758685804135594063308118257068048529782937268653214713632817568742661885571980201809142581883958420883955308724565850059131194274924351518045893760016808746189539716092434212964337629084037014566780714787464397326531328349386512192443801068403554188446729457387736850281573002295278813949729836499433125547313232738472719472200698580139640583226364642224150646874027428809376721781665306655264716271294304265835172687165223438872864078924840725289071876473412650964447241644231722573104476900946475234922108886929754736153329172268360675161917894020164680946953343362900372251127892977973393327975668825608831631769492351245563896774430946526074172108961057090667701369359870599741068980139391487715536662208187919762863835565282956558613391124882401076198137293039403130506371044202543273271347649317452526537049302221561106054660947496083158611342754970257994070207979069610897447669932908324909325510539301254205326765909713765134899559439026615879917964176190528041158841541361814997977202849381252271251143486639195959909941436717503762545118272041368401151292049840776847689963982724819213376978464341213914421253568233594915821202382777577670317955639429633290727531514217336170730656346061919696187363026077419253316707313927876081317034470787339688735768929131636282814954949292735174916242082731652764694848970839294464403011937950024800943943174303530865368717567256179006440597454366695162453568455116916073160072739993101979735921710450202045777174333127436215375436092848407180592557070105055213254083869608943241451059472755895931719169723437337163086160912878063391558227618360742950389989905907816234399415605443836023094454547675150489784439533357067114696379258245768850650639151123248266482497176595782890886005104881835363367489948479956907921254036275487764227645416270654513245050933488521371133996807756367226857527369251101136727221577218310845278314519456767131432599182124910689510781688497018921043725094014492893786097335410621098436024089897978624108136187165645519788634244435903662852153142369828219130457262857260656544008824133865558690361364367173882507345270317159330841417460599607110130676419012302556420874940050186532327522206619334620692269827477922983269014466475317452576205635379104275289780381529576880488264662548683575943927416338165505296240920613368010323316170808684471956878674485902177954145955055059738820198027593792913585611247570699661476026845622990470544168607921734278979423742217172706903713044129180993565382881997825478169898563074056783985656898281794955333763501876763296199960978313911594408853864870777929911696293697186601482525407179510346421387323095921538811089907210735030067207674253123906388948012620794614069580248201772194468269217440573792828644688518840116472403818479087561704279768489787555488642010280331123843471112085791182195000181663441269167119719813303461068020898645490616780184542708371879163742856601533220860531773693578265539851456249764687418603735799839219670623463544510602059639449457260656783136806156134632047978153784816045401145177149725415104022785947510409639874241428011672831079026290771903278231692946767596633043000685461864834526854718017379169218584709440578363523738021161974760468353355182102785635787847402678841627992287924862194400838882693847749305645529364148914181387995443281286394934363373138605172951852016597541123602217881101543732353266116966869479830040098192347929315270299174701878913499029916772489251349063928134255008209938132819515799961675533253283173254463277438317881068746857015476567121661050155805499583077152683159101497463502601029759389472500345317258937690643459128209576922554316117843392225453471945565436481052505267199737616409713628179054805620851810249884146494466180602604508070067440907939207858271097456390215498084496043089268865786674314258798511637747372172732524122221228134866102581284513417114214156530533587365223887016898865891669392330911382391852598546706520688107226199119696801514609178466889301458495203524764839486442184138498933462783877504475412978821337919357228117928555706109634509068385653765709292995407390397172491806364344595173618485122453231745789852556804979420994608406865976684476364624678469387951671993425431136628771800584871404058198681231680876696508333733319593327660183392246531358085988659034457930753951252586352667566311684392865119429129838744679282802283735448276572959405969515578066905354969985788112784536574667715402931540372870579790834801666626441570920465912471497785198442135860920341431735719418376534755310237218445058948122172962259578697881194711543924717807100195110731410366117833667637980067989484258884494597531408401219978671735410219247088061512647377555400723552103305935504471800673036815109624696637816823327766900415212761315529703394435422025782162704725943756461186501925169200183231159914115740412500587103728796606455169322778233707282672996119699105856739187866322087770979332546767466944270104988294382966943135395141557237718720195762607085685841682103713350656918587794399996983999652527837639318372970037138446053003464473397762115812970025073833780249234545688393093313478494306543575437692534832283502375550620793441911294565744302314748828120121189717532415651273270398473588219968902371992274340013385832815132988944063220340243147869269283767804358695411391306184564307617355266707199254919947868375738236718815343733050003686724802784563077091471176370738933819357464692470924696675299117990990594192908774228610724738406579650924574597536147763276785307467888133561412503989934412065890008604452922223895856844245273519992430869265856970859515912275087931425888661744029241991983104568603951826137656301746335156929771770881926621321416049120522897530537453889375009731100337178182236501403951392793653745390591179743839528811172618160701271852601502507277463692657046909236475558410302983315364190924039912948157646411931557102693787039489364333211159033000135335990620777153499560141264177440253106744084251887435645319447968590132782107559953493964702182956729630208518484056069056382170773678894010617067797970617939149948209111255652328591777494517011318363048208128330520306816292493514842601764258951788974734962035910566712648159557530327262071791504063234357531504020131367458445642357802036219329412757975212709304911338029855890027561410216657725604353787736240957736617076428580787674963326644264447035188374019214145835151691313196445523654278080532861840530763667381631774706303286627724263701175574352266566282075394905741757241657773962160479871253443610861864694794345488554304200434437099078622295899377309054396702783539999875461274244341555042592891238752870823461211506530321013772713829787047228219871712712578843222388488994488786192043181568077440168448824747721567536195283663870723489181974568781643110612228140863634894606288952684887355371402477349688948596878544544647390266133602670636548386159972205681729042760804176391693090587618471901938815683625707232177216113485633248538233312181285646510486202239902507391627147761450422604013815941559616479655479733548048149229891184733676615292687143997921565696031662028403151302252797107482063825726432395596714957996353287877405055588560474237337269769562787486589937444291184015426217169329718737286665466456962913697869486927436543786939440677113417193069081812050706489840773273450653714817560376103453047104147903138923747747630073345409876829222493903443663497157343678612555962252877086217940030576942969880908092462941044370654862894801257688832889898405460130430817121816704010851994909671876037370846104803423368421321092078705635461198273392289740514509362865478824304785019831231811689516829237867032539104920104897333552895107191870498984275305087657762757368439564036640725818745751646694659120258175005578924861890089781386030560726683096118243374643470640071327326554458628730991290550917625505289988450524005593360729249149380607643350884221414671836660442761494204991887405207173805904052376327564797582974346885452045039572894661041846768288581102733674869288390679511294876278095811656723855005558192950479047858464792767233004214136647432754527671535428771875907970785251676132694728315872064036828994474727297309288532229527351509851320700847981386172657583686248723139508041316908124477965067517759755931128145075984867063616986295897397561700561163122352012382186117361830300975168277446397121428156351931584422086015401109429500887008067596293134777174605126915869666994072222801704884510427145064258205491709527734897693503152938594756576062504996738287143597607111199419652176653847890049480507191172046325407982839055532352143662911095225796216818691843839912967269579627815412389989756327913321747578837500606997267955539809006656444331441759049659662758845532146124149920079425892064221189836937406086096556369594698254518987170791622165224262702422305074276303826250584904722104381048629284288052864838100274438348239611872391005144466682448013033403624583144509350357601587244153395270314938687251353282512038844632255973162513748617477993539359393521111631908517971510497434487078371368942422671192053515831683407156029524895588961196709931668015569757217682160131061317335144739621799184712096859664896892561773680393118895455503487371360247559424517649006840217092721757239584627075637853207638427463336477095717553534196565235171775911099028379578171095118013131576646820646500397799339008378101926014937721620897665012606701227578089785483545687424899620576251148193830453348349669309067154303841094352387553529316963917976235157734683676797698326262775019152657847124781285969045036579048866665272112929948379948002228637975636565142167240262963169068647509621668414882042329690652843948371170154028247080297805298359532851656516241179647736792847895507457571296991760463507357410486582433089565378692979537275052444989129958954831609136023049828505511587746751289617915980428887031720135257415435998304654627307217219398709600427031256964273729270554150447820955749526004515689949199664045912708824813745777236390342542433955569313259417810517546989056054827037589154026099337652323447434265373464183576127642109772245579664023953859242282979852832658932724790508005752656964375574659508327894037176527375716025660304452081884903681835487492606554661804776297558340465870939684839327974486476570099699164550094185537951478631256065189426599755596568742224925902932893042130970179984897814433979365355477820877874070151783997816660779348694576908995793881385214810268055418710236146547515222014223936377669293167881566965782405458785333239903690897147886032221693133421677815365802665268999203659219135291213093910313968501098687268020832428984142946051351822577344382660347082726591986848886707915132725162394668404242181971390591992328370566229826904745917924330279148751761477239766935539822036601064160796334909758501378012223951775118852840497452263041761669047191565331764580695162175211218546549089157382534840345148218892830958113541958964131221397921208938744723047680891803695905488969988049689652170996959467611269744178051298895669824501660913822836698959699151335904581974596369515407056192365632597225220975061208913786992069532986603815218700807767577357058649390707458056547399236167284355905926032131441087056065468063260013909237377824347930607106927675537356660611842868799297914861828584584713598490474684121969558929757259978697236295471967486874437068763897942426699324878608308387272488003812794154965087317214302184299059829120582520792299248735763466056898147631557125673413454880195720629503243588967850984836829323606156306755078168589031770954093915178174341104989138582981986833482053403676810763659192682512074168146261643020792107476166345161943686580804335932040091806997515329114545868908036057966059915606762267647678552328001078847322791575089784056998061705815924167475104875161157678942414055219339269568120722357319585109319642718032607845593959651783190534236680330270406084615401309437544767192509771130633080269460091894270623926711443617900731276028412306340667294922296326536680224740915560532127934165864296834233636934175421127240684485891212811894950681186490017795127702348548339168578590297725133297448603476398248892969468803981738166160486860816449375943331197333012696645308609055391108128234037610739567567605330687572933558492580646116793931670300369995199791033996393138706552231299438674913618330081982686247304097778756664255953440823535758536028978772279975776870887662253759500610643849091478028119683190011258737013093947508346350861789337013732958338557480570358080899183126696791522580640856976316019604993104499885060996238135166120883372385652493981291686462791276519626424639904857813876430565728545273480606754072448236907404282869531541638400109403269360559882229552206689826620659296058469252489257971472586783270785765650692864465890344251521945214876757253940108399755166187195569150026729430218477673704552688122664349134004125853421499738487372056804554335609304439965216201089620920829686374623827559109199181062752402429295909224819705777361125314490420415952933023002237625355789893904422619570721836378916021196063420166753965968589148841928790917019179248759147045792308353560402921784292384813136364695278285565780202010606289519881779040059097425358871694725991404131240203688179504644087327476243454184164090600726500082502253941531383146922022190852285220664074032723728189437286266495996774081493090841467377586198442086715197030665022069222474787216422291912622059736314348068072476988976385536653273360492780019468410206186327752973294868884583253595979858036069081564855521160297407819029286598382401917847323954351054833495851296156178654013834668331936548435019143348190700355007031110629010145423120758078583410057394503576668485465578415940994782534365153608571767661588385554465060943205441895395106379900067175561157319614529250125546603215764778399146798885160143560302465925194674987358595370467431086214956386584453398365029462696458445791222380630440754715341732602775371795750100269880041269636486667393727126403931301136877119967806660793695270830489937021277454664317342379722292297879033964136166366871953111852279756734207608120937369671578599750227266788009623759801162161151864603439704790454265713187832151308973044234678332994693289449455490057300861684287163352463356664124748919460182588772899102165732949915631969663552491268244592855718990500874502579750770279450546702779171347757631554150942253414207287768934795834781179515675997659448272978124735151087548815440652960585673319271016916227015853343443656911734277450064350117948029473669854634721185074598527965264436042046951718465703784346208144554792527524594284931923948315375682317024192045588149679544409667645025807731986100639736263531611265264150799143530542924931131665422703147594788742501620709886736312629004659724411906079100759607082270956378745026569205095940432749543233066475624989356568735491156720320799035112698935403664456921511967518106554482391965800912130871868802432373619621490719458331379772332851932041671041477259592569446984511209591789565829799348847471094800966590489182841890297456086147885826892698286980938992457068774634604596879613414450201773769366537771743516593130797732815500113091974680130725815053085278688627714906592089702791247464386577492441415696180242858603863659952529360269997971388327713773118404216246431478382266621421664927566486919726044456965154090296133943154414252062691958631519422554461013999701790708268935014453429427517097673282096491023529064256378071780662222282124441514619539100988399551889463691610249726614943535221467260539671948689901850138206132794493063838473986155821485554180076380958194877184386581148923776771568626368810547663134176968935375829410788493250546665055582731790493062432124583535206699632072409740966450844922976558174612858569985968305212063018833377510826659883918294992191394409710038600435099829656783164071240275178857906283072154856311143906368213298389084668015086440203389204499270735520799409867009440260510208386483140584942154571267884440444407667008715030246899332104499145347273308562327005393002195940389966355093979955572431979711525405772735839431740792880921083694654100223407700034258320268855285096197058233446205686943262070491399845939238517906148635808483375488227968567290073778539295914034752152510521525378165781164717476656060559810385588149092315746447674390193412309160051869672130171692383503463422694387093390534944928972310374022499719513045290027984205425565303978242973124755540094408423767024619692461388291936043720821712537552565250960280627041326820708064672793334896817922354809908363113563500580607443089671425334194735499247870800524912173158528569824475705204300884549066307994612147753398750297013735733031408576942783678985444763929118077595586463173147808131129440221220555083097748531308567750728979692809822354688445832734389119383310980633678708926951145131670050036804751197662438415517192456232854869027738762628178155964499266977916000221200486729836504531074329550675598999801576519400969881687828152575633087565402942711306623159636257478263498534692937230230092601103305687519585169293081640255067381406846180035805413101626620572766591219031933728441532883308120643067655058522811005586142278385892666825994080627835690677959770273946515003674089675511087804221163232278083059541746758057550896679279692741285508752825856042125241482540881751971814680404913652713465983071113975135182389955832398159376776625115891729713258100766536453806786884551095318573311563640780891881321582955769160508279211463204083576540569580695495689328056508686969084643824627376672692366744431260476239932822901120023098115827315762683879709884325612929468041833048263168200957694377832184734648708172429909195514594836337368366016860979942827644221327340654436874354225413819270505855611956523996041314497065153153870821083307896814234639266465056604858446067203538964594060384147251148104888510237428976670867082360698554316956880917578523116243349845950922815621929214846133046313344620354880689751456100919399956011459342662407710651190675741630629458142161182836756544933941776718193402885618705034514517445884782562714156019380137653515218763584730260987045926643704767629900445230558789661530359892988750255407423362431414604478665136702771497119892580895866192829498041206035357857019068013089326333183922606888400000698712157345099526519057260616690512858888336370291378599211560914371225601987754685903951467239953977062715056258904496827812816577707943035179653104497284327931354691037557515424712334891954075068087478606605095202768433040283335793403391754984074960436919488362722717480650537330369640758681070129637726179020888234546173365953467138024367570472685330997227912621959494258224572867598511003072301222539135932031226922702172123668303282272729960550366159367261201271468490256499434761940375808318846891106986443312738826316827023699038738886513959436945470165797369386768617769059289831077970191334626621537184424302523848811203226561274242420941923438522205165820680693754759810021015687035047226551406824087541525136328154241651340219861172809453770309807924341689880657013757038879000484395934166959112684327954619557153841367121014470292455614631004495229983448862550317317823271471411860052062349992261887566027925539515294382932121663973036062955525217482991329891701798765352203708452880366218641838424731617889152931307098365609972964474879865449308942855294672893470540818928356435031482676266231807918976243984421234028209794415620048585496197662492273070534200412693439728072410674870819797637655173592766933922691194225418133964441074363481885860504608966185561505145851853941650018065852260314690136819632678530219360277538777603118136078758254182747672678129905577784844268065269998149866997024460904686485364485222298020480946785803059330636472577970540381814515091734806455471485339862743551689153928382998195902911054132190594770447112399594763580018729530668463349793464088780436212011295308084142445248975806766035032300204961130205159689221412778738940108089254166385169149541527065182138958591876402730069634426240220384419156985720563348492748246681525431325681879459225541874721983524422654916903881970140449267389823120565261007888051279664534678380669577469193755975882983518635966719516495893782398284821812079752782623443307390666125765886457756995599971802179851213282402453042041133933802580127002238816949116111264875758016780513062248434201039518342863189026267834396985901725361372204553192138229463041802102928904463770662338842059997363826743401731167083065282467266996481030599331088414954974514683104492684798133683545057358571768863877614019422912219956940779439191981853989892691424949676852003615898590864225307444572964114312419370800272195604937617578325623595192709398457509151614311240931360104425535495006510840345423221185584841369434128400240486118939822122836259623062267419946811718343459525265277435375026493366653041578104157258437051254482302633771494712889606476449469480848948887101546838740122853593489942695267426142016850538297640577905834127865163309125772776090746227278876750126031383259596401454022892631219239113869302920792296428920762981975772664929382818895704713294961740934508828404012274418253881003208143607358047978721215233213690661925420275527059861850428943561963029079303365536503427434555066966480411002279742703426508218819591201969144670853038891030047854854192640190278872375996932196480216957097673128900946169894921891271679591788357297745817868823077185004825571051194101369618126354903061293480064133917182649889435987665125242972481479648511485014867928701752842342878777824690412264922432406624953922771425892525173591843274745597382348594562514467077525720977720678343815271326851551285472397681343757176660703876295547360892454886424744071025013547470778723782943220336596410038509332744607098906990646494360199683133709708740061244545768046943377383014515677843788258910295715295117784841469947881077792486340946342667300512091847500456113967041102924879377148863318173083921930540298969652422172518389815444790800249246954456759514427208292124376183153208717400609855019902186731605540271581669813071666286034207113719002702586402562203021454519731316685306243181044362310725963371747533027396350535833855490860199183242706740302302995195653786994871123853176064717418480723425425817083711447200474659574256015718890667950698695889360530680892578114477473734823274791684392257760840527841130247199505041702472160616835909008072659532006810108862716844196127260932136886574034153885310654349640652840426511384116029676712820316224097839848497989904286011387551689167009948525064552693134468361614481387366082948881675858745229342122256293599987817772786099462376207761616300160372417860317295944327346533355675241612050569555588628432964673137104737485538894454294215606526058598722275405711530198156845817236662283482043387652681993341222870964383657847577340124979986849673002665125166126071551381145863890200900800073299970420029124858580838143412435506484666034915956527390725217527212341769679145048488663751399476290035284061115599499109559553321472798072433701401477322281292158176909381716701729874025028862550313923469135621813622699585331204211233568191277581532148395713576073743941478530263771073061519552928020877204884751074594454720776850429202391038284444741403724051895219855587617447460016664629653124846767263254781305312162203473269291451381817098966277511287903731495757024974893415291628773460778213447334263787794882325566567051814978452234536925077407751277480728565166954432995435932794314554208701284329324546466130547994982545215865885009073537478139317892279470135774417642559177227290842164951403066314959784401821345305385654289358594347323483357890652290105914121925270832571806032258605198778584858210390131081067100109590816831283789025952757797374867185729427688774388468158127558384002285818242510636624659480406558526091962921031839083833302389369634175920813931413116893059861526848428098021904865434111866666732323248798889496479034185470360163916406291932666762354370105717631901563321875379182071269479688472562391816531177554822063757021857918248791004878615458363104727147352359759173984131207623946713675995863790798805723366387218478707261750071788288782969245280349275081312133216019776316588938055378868440631734923595220659105047788402701127128759268616333618357071437384128707615791609362672142367469327805620732239961930359197906811006826151767415048967851335880449460386262230926983462718352494626411218540909259756471650793112578135098899878604828699221476563990492353263982389158731462592721604248383048489393920739293224956960467467570072619721952401966189888452667213757888030726596075887254333139884101815605499975952865778485301232759146961343795351228803388159785591429997971306498437659155476225258604843504842450969415140928804150739528322055113697033351938820733518929987909609907306891581723236572853240259963972330903736375861648955760727006898482797944938804925828187171229492726483290382895040957986135571029795367598676630777419708847426815532618803748027256441722054813847795386941490763459917560660496024775479318922355846348426742671732196337251443314369180464249888150960350351039455615958173535685952193851194804853938457600526544109396816060511773855915587699466027060397736060031201756359118994736906643906906009605530709257219869747412701121486685560081316582437102653130549694753992669834171856417621064777792926411118380260188016558151869199088262968205713167116154182539844686342575063376063169502889664276957882862856146749336806216097087418142640788682094699579869213332678258897425232184247437423068596690282162558065099911457141111518788097198178872110820025947649331212272209216126764461154804746419968027775202017009877860992349456658566593667043357398303288499434116594515180078037910887619856617175920807758514089652834598970209669044323145375297906682372042517940040378915696541163935923253762666119391883444450511134972720076774794207335963134440976356558388771236579293347062016576767849672297356631632685858683003932424918803323096455773198668736664722605019991608021794985291572468595670212473358832797658754650542123245947161136707925533480740950154435566325929678731093656455086578806000353662180695302421842731795752210643287156837126346987520339519090606009847916306956635562333766551730941746251438629385966985652414680936262874977220359346283311252037581760992068710876513041293816728490550891227574753734070630136522267365456210298409539555019676315717820312354749150651477213406648443872725118676540976193904029262291564731766735125164937797569065477393967887271491583738091150457246394431306958049830677588079137417264620003564859078007091803312091487681615347694161762039097728110875823837277887158972921780195726274866035456241467167987953711606835374515506723760695448697690330521062135268006938518726897720630320430836346079274418604989983437482368210767349597216277586786092176139288405208762227501582621804716062003652249716262998216254712819815811070940981841836157312311935141144225260277961913282679433916993416270609196871760165837806748662947630462881579132781080601482108324161586119798725978388478293161776564708614737202594300913240333902152847284285017827723187884911343924420566786717167957313249345753329841425201687595161739656920480155107484947958594589165761069789823910798261230141508261261833657234530132132130328935376646179555579161490134666912593725127651040160559040132254294929140430798973552550677740370921772956160583989821867262343126630015591725118334076946822246942869090144304751476462354839007722479198336308422421003579606246858692587310938372923183574447893106794225249005802476822501793867888873978941004900446364510784741211515542805870656994057164803731915498855182770185021107524529551715408768765963710403454488585387517401378095343245523304042409236747524629374385600808006320083707112504763744268835800796230423564531662338207609164360064032996210233167687434175133159172809660237246006560467815940362156379538872384799081342512480621475129519993201764105020821490456377487805693433774271273249626766243581672438886381448378393800977604345353218242118667401885250044249791902919207834993505020233636581279357185731863886079134392616866255041411154402274936860413548050151651683264660588664269790659556480893538138275201590876552879423068327045334461905213030649229682114951274786107051908204816437011049722569218729918149611824826523912472760297386230881099310908446372554198270374523035510884299394759437968074245540577207755621139639687079644567373341856869633453930371279618996676527337822997753746713019932455970574431779314708170918662741185170124161224788959002763854462199490652916063493623814173896655023579985190233908554055357147593292286434505468482623003244197179014514497897561569685766989464361271556621151103223602782414330357874595590363492812033046715036121742555157460634987840900059393817233115671135176574877889396388277172084378039315501608826289176552260233869905799112117637968770782229207460869192985506074017350788838975698876504826837466514459163586393005407816042247116750682419275013850912731004840971737155411899448543165968438162127334930096288771638576215099777801797910416495523638695453164914140736402012769283334254281452614126319040187449881633968015507963217168503346190834293662259610740998928072603745207180274130245069989249961393932105821456563091144801653835030027807918345499298271342750193616777940620639498532573493419696512011098252756052030918496045866678617737170568675443894092707390811854563496477536551087932642644426408923233922675480491021613532501472174670431836040371610981008184917697294717253480798453088661380381479030694679214488104821700872878080443997685209319757124020556307994708373813121050175545385995941203871696632275620835627066526335785986550268389210539718689086832357250323884009909933242538266331224309167798898876183035508705961875655203615316818944116300649942644648633075614375065345869778451101161029320419880545664035246723004189840453128604265239213647908175474289163956243025009517009655189081736183415194541017439533321232470470394095567219137707471495155787225872452428341801103819928249747960222177701850661528973605108346827322749439503905638879729897443169349590839547220133063023149364906719390268897850471600251798522901299686693070726933190073423290875951767178133436825789609098411319544668974817743922973177541409958154428363241873397739191163554964994657590975110437570158656680482825653695377366411682689381998737831457830109404292832211107886855251003010997857935939246042728271860441664980435320571451642370135677807405198632197202078521157332566728030323780462855444504526684584237600608114496163487271845497275948141270768178539102889910784660983239729643116682661409945424362176269719671006155965291329257191028695032898301513762371763498242512511575433480040042907670345805046618569189404882881623414300507977415687349522884238681333677236423621123706511636787698122494020349427165003264623900413840465567732831759968418888421006420724415782309326426689244130338260402194296747993192610668017502925882706039910384005560897981563594647715727063850510347341467378120984066644425668791921128409983719403377468053672439147294622354883709628064333402001590562790766484201657261653645294840541490528664783829614522713281308965522749169256447510210310707924537482088676852991575987663177141531358234911947053625773011666953008049066433566355636896916127638267867617049731630679308510762952814110738970742243612494615640380018485701260669811846881096912104640733173080864270405583961419962709762077846344004152568685226852163675956744291246012136111153384482367804960305278517916181865426130635448246692540237543022619031640027104785048247519311859585425794691895586790725695048791586255016754660879954231195002369878316348853606375020621031115937846295479932132990633336046274686661075631597326635752587061682897565533638769294371068989896685274898198290443642866604596329962205708979608801236703750621532193008507075839325934221894093585487236033604714755557545308836688487004558100927358713288250553698735004593904584462525938592811224375682231463938427841617442368500142160064521260452211271063986428429487378698491683158808415654557439022760854031503756084624190106294456397516981870079192502243663991214840438277290657298156783667897557670602926217095800922631123557848565429245978184510451342926360449686157815224018021664158905887453127927036001590203531206843652582330812907560106035612970854342371929548275328518417028949641714787296237714248676936964086094577127498460016870999741707232115430832805951890896719531502475723029721398868265143663344362154097971638210032701276428812480191528011676951050456810566981302656947767426245549947544524425618540488838155608297850685389564049720754860378491249107737156880144323475375564031802700826139232864784011999548026765733835826852666770679683492046709065234047186246643540133914403412924107073220429384159467291056445561367034994428966759669255690482517681188188585418343111376421181133804596375481170519746185794811728592163413753153382862620299396684721031078530497644076753687857316564800449676249101949284569777938404936031931990102711567621585705615411159670573279161502435779477777375020086393863499039503276127874049041686420259117442030104386446748354076055881757799933560446626415829306976377507640159611787208124249953003624601714313680747224251086477757547507982161478705389638908622195997494838450303245493525560804038876606056775273928868073795164154478015325235421599220915396821080946301694178905453240763794709618315309595017706805187169342607209620307788792064308947801015811585766296508272573637088592534549777098367735709039096075057353389114736597361984594597948236857523611209231245392782961791050549149543484512252179361740497389691918283796608539392828762290204589077883887836357886367814810971933663689726667933031498824036812175888989178008478789993362565139690512529786702262879760726215581933946167054353482078078250532938174309721859947623914210834622887884745649639135520314854426835430578175755812396940813784261553751443881834960373009485892646233012279984310807224422253822663891559543764455914714451896410597350878926066341254687922850566447999697952357161131234999887202250682371140358886082569730337868825970533517841472953758655791405522394031852416598709169516230064780619361998665086698195658499649259295411987133446640767048720666820120406181169221741334108764833290220467702010546495271697479475818453253166155960261847707527007095700492412126959497002684213221528731943848417471185572913487820959853236247463153176739001215540766613606458446750739673743534710799279949595868907828017693640028088776116112737446955463265890182474130947026616131360997932357351079827630184115492139400028474923583789984361059000436244746914197388506663218946040466510308356699875967588762074782198555756691512580005227484487573756353040387506681512008643382778377321731916437795370943506591678246342225823739408307202319746282107849864703317942574313028282868413043632092054879070734447262311242608597409448450403608962698659390471118773968026769852394967646522661844126812365049874395287522310674063332901802707978337650581363484149313911159217238719504971601356847962357986160251216680439728616571549933404917806208846696055949363361545604399715162920989897662837514825245184125475806809135549943897756290292399113734486047480386270026032878593903939888467841779939068920422839948972035066576621871914433055109951522439798908487836385359604963105719467408718416349265718710244876926933976602913734640579272207678507367724722245642501776773632981660118343579025328194673981673039293963634174124988104879977792486328663983985813375329122269530706359271585010620281308192798817844333451351064259425809228028274024325490227272757860184823121658274809157346055179733958122030170549749378004644495718789779020662600103806871849802244907447058735937103739840065588707799417376121145871901508196338446645895882955835069415380555804977082365483284164215473643277174061685707755424935523498985002697272625518655320255564429953812335057250522640962378945249584469347076869895728686667574332721271984723911332491718670110515362776307582674094440057485887170762172713966050420166601095069527849604715672620056266369853175774415732481656713259675524569417106737743506154027725418338389358112784517484723459963340381849087332183410733174931309023614225667453416287232636628245229898403882547993722832817784364347144851464516920795313976654175108493150622154080261298688044012151173452446098711225819938281215667419664574878315806875260542929605010277953785153906359945656608139867277736506558036130833106045267921132219751677460138213922699953365506093252609380014449344948144312995167927413604783368722390416890774993943750045125581152112086438537333344518572504849196561381244202502465978510634091348964278879197160546569769899757899574512547494741815607887920734167758754963680769676696937761519262770323706172740181408827786694201939118883921590911393225006678981176947882624062248879057937489714800756219610814609673377217324362904685826812716443873553730996499454742585684082149398522961248835731228709116202221983450746002122663612296438352751298302701310049386785293179836481047880925279088003078574716588697843017228491691951916263387594874534712884268816058364590571187625554329481817237741049166059060242428361196537263304150698183133493445044322499549624179503708499777287571870235670607717809944551838008915769828809002967621879178627316929866445338377105437744135933488026190287904517872866025616614990845899744737493772106573352201133630976009939305025232922662264929842530642771425974336671943563839561618581676196304110776427438129520169193560543375966891116450022118443768912445332725302810095956342065465627458536229502521562971689318443671116202343781918533873202241041892899989551110832129364990760248716446034255007165228228082937149518833268905457131148213004934056737956054616109822840569557806268549479197040713245920664665396197218595429940493225354398340762821298072090192769202219600886098244585999620169288560212837076600772894066915837999160528848954043002032863026895029504030422891436350551332056456437461362480176287306450141683466840639024292797041895059818790711760476370636163721615065719165170031536182193424462878111013726631855244170133054770867174540183317638872498259447833920747042995775602833911872339079801260227527704262678955594059762850287522227838228164599670922691218709551749071457214807178418328159967814152034689454981158847768502997179930022395805836073865535091028478090276307239706188324924822896557446179454020777755030635444426074632017373875678537434992878372761192893827108995249184320428363120504318169689645229541135960209261316990846371061809377225339713875121002770084230396019461334918590409634093415690056325208631230519157836553296805489062748005018367356573105163990679810268519478000771928343309048924906132123100364219975798328416994671406612920768731200929007622676934419597481006000582011249165905508691632838662988994279624454610334563145705876326180689262408632527274750068387865624700694308040093173204025436643282157725741466566113498091415601450978084735752182265758561488723700014464822237129695879540687530096835780760746821738994471484976949037781140036221671836798880729726291755220065738988940297452853936384167369811138466128171442773187614476352746453325451350327254346494710363307406186815953445152982389762293180625859515855215466244771199746228617078747177261457167005655735342951771450712059181644699562513462292843679622066434572523530599470066782639655885979793726635637698453696012929041425678785521340199622795530491701048944859354727121585756186027024606690641777222456979489885160010954812039946279298846050689365946372779950517219656429047514726994862632729292406267892123819473638421879137791324111364891109524123324098381850332305771698933769922139721689202852498760612908976352443197850146039883293415507255905430813831369519260185830660794536844680593140731018392088141129836507205611177748594893104003237753797518939698501729763459077237641324630546969328125786823124324551111017018062592001270651303859873171419159158141766773355379179105937330137744600736024984383592784580573879143217100822078584473628363295047428569856766965663728386671182471579402084458248339818838792987383207973824001136287602619494999360266949211365585799785975937801926160665836872886876391367836665403123351601648282686982947709398790018923342571493557389507712002523809590764363479291543489325850216000375876219336548459075652675083443766079004755180602156530565157837729049166935413143075257619000985925901781671220482338271542101584146549344818675722830238575933952145093735561697438654858253157730175358391028089099053683294921822488462410294344786483818669216746764958300121616552093998591123770875564787315943762479476503224270804019180638955432260669185421410440710181222784771286240630531042625241404150479450683684155970990030609737805825631227236840749378857361390080842111464823507780142059111338351570484476181738502435366337793393876575773324267820214832512195673436831225226678386099434660562930130643028613279644552145993424774401995724559621478129594273361561597412632201742732305310540835610158592991778693229640390882149393525251434951427470615913912408521675234677720210754106857546249122018846345223245885440841778708324854526624618255968698307409800004686597981623235664012884566850256984919932482952238216533432354168794712869661386466138880905982294623213625108923971340306994558122920396734329316194799018139760859297882618225720705316669381009614975958770652789335064043860618036982133307298883945297349750385456902998638841668949866720648007857941187808587925501300988372352066890440613047609589839027196382539479329324700801855305998373079090970225272086982445304027582451157020778115622817083038347828443394813012342866562752602066674977312718477307333237803824967066156279648136087495214323263230790405699005699638567904300127109778114706384042018077983419980534981347726769593682535194531775938198231194502570237116249060170448051783076805213577513219803715384883070452434317485137292949272359077151053681097176017853176204424800785123606730484507762041530370814012952857675722735090243197009998753777621755690452602057868561264492928065878944609657689957784678790736893237105787337793956701936430129794608283880212180441719057163689955820300838030875031786416432340338263625692307235979234565253428615713020972507819888821347586559528054696085329903654618379791420769469683814582172906723611803806026956743699975230135631484668482611372996281870162370631930666576274055808826932442998397538853373215708316446221496017483332556368454986683950235199512568749258395137083583785764006507337895727713478247633413042228157435196537424880358382126016837431097525455901129396997499296780285290497350935646484135879089900753814909457325424383218735229893892851531548981619235694236338473182181118475447150593052879436084155474864053339805667656404610025649672086723681243739988669441007619507822742372125402221428804114430897081494647735896544471789662731756306567585509378566717292596118092573582080078676668303519423359519834626469092832857208080970235909310104271120019733143034842769834603611891464932641020451469430413496539124487454844558907936876529004663334607053983158312592903744479212511316817558794810731250698175903906135711559162753615120233126406290809667972445174705130581134846015265321451498127880218265419828465929326570487683870770607822711016770997602095702838035404119103889179672492920112498024091291643851306987297546007222917644025375797157145242791754114123696602233950361616822443135903202332136960974697453824207127452991872119083248390077981262714043478409340812854390947441224908704682726936420216036073941952075493523404348121755605716324884365644777755574075846254087195658745761097678334701410306223118532619892220511554919698845300936109673997564466386516813290030810464615459946226288580837315218479196944555019135838196452962562086958627205824196608939055627831365139266246248846132690266801660580413938781384526203336815807652189173883427215789913496643842272560710960496747958704977687390711806785222664468597618845313522816659729112638352327489699745341794459485853343904560154160803044911858703654992493801803319830646940306656976736300524672572167590935962362562591494578366179799179233887511943323979033335030327226326994922911050083629248870640659604786289666230735892836613459692707439498497004254162271624460023153956124904019148489032615111940584125753029109600370401165152018232498592645375488144761173588606813484146604325630416448596453916409823095169619400847219730587389188941780872164815670098848205875412239880698129273428770628754385811892501631063371835305462685301634884026806105428791770313710781901651073796709716070628036750683356789949299412653237003363856609128178402357448878800541212217176728768547296312178619458423324376256664888889810343364360334229709362193877260584213960121164720974475950926527010882687350018239501096590111501887063477029338169019939259228473177374707984774073577018064174946074315326746646816086782193059052171357707182202656894539962213419524680897952261337922308792478141676470242536294825536294802757881449670864464512394066065906044884921486894069622696508527376336527810036137789195087544483025742512465097537282607689105890312491265595308970526544935256205399542190276503769899862333555868303063759754319300141880905116643375066310052939129938327257093016227677035422363911396888702446004178002577912509014609352527026296106791009915392949555706769559701676560261438171352556954101546503468111417823111894551978206444351886666827990705243784704524274653522223728100251928632309846302009577011789658979737840112030825528516907776789786359171391219702885548435941208638109212415804462166308624735132422602411712890247769353601623389825502403228925038160317804666753207454858062369986323978751228154282677820867401893596445037954162893166783789138682702180018783399995589703250386690652162969389987252772556016288872988073226559957935183852933413322705522101746690875884335542150483030016739853502098240529247426106252169378078339140078473449913741569890912658375834983988994911882609284932428109007924893824771571749164711778925437131844486383335794783914536990357131707872205842741897361755794301060369935658739122419191946115464842742639307437387056552204954092482648464229527458702251618346315169911066101265125361638449037397612391468545150293051037924739279743909433384365317919783307619463971421057380424401565276277658599924474605934811776661855134168580775931911066878224746458362286161234564469862505162320770031184409408171320928167989251447488314670088751342898997733796103680520750738403907541479134054075978857004088552161484445733297188438888063237380649907312444001432350603252227390584419192791313806616637834412591669364911871279391256087030191141525992665853956283398408278069980640170265045771441952869418182982195978456008691160811449268046664787711096566831129663380523838377990290507609582995480650710918833435433016713451895005398922451054375533745108982397500369449724854090678181486767808284779208465423857656201558621600593609721065756780700688437053551691273596526692291438786008685905821457312400428677713929595672671670529082414367855377612118599645253590871869205817337010605868810747106166318637562306999445231488362876861329304629138920293226017232165345661045659423303377955080140876203505396911545029475499428543311401070867527085978690770453487716189341971438045526350661595719965759137752793852590133416051097570677204657430563531359635485601107428628647326261520397069316716336600127917434146206620198194989601383955131854121573088339446732303197263507906711283372579292759900511414333071435205327470375534569892140966426827891484512896608314902260453432683015901462540378952962277684459826925077599223422882752315729586719462910833912493118779537997319434976547404575030088302189668620888444510299153223895817952035944233570197754681686032548478705938682982383002574723025771285311147053809576197583188979796582605584200382216884130573412767581294888174868812484280346193985528068214405175131954654406855535444390206931202280605803561577078511743942321034005073734159437023776256570861122606674630579609046960102306202295090846847945014618776892380958155636129222848659047301539127130665973956373666114917825288806601238021154047653739329374817707483208066166278801365633716486803604798528837153801628220889146407708049456394702334992872670602519968975912978660308005766912932102569209945366447752093739339588649689374519273238711015430652553702618278140647830405992251971024312280743125524416345841275007323135076627303671874819716980863541598807240297163181092212099186396486567431768374293280496867580050967933186357207002795284951298656763417998846864824900509497305322247797064085384816301312607115069696690626063471203079948216011374531821374194519189661307081228327185616488811552719641680254741996592352232258190058771569828650002434185167099484148215713881216668011081152414637769263123095961923697709329171875374674305737870974436358837307758963284438231522210800085182821174358009585190947266933486474169834807278342755394825189769748781957753468748319530515410732130830334099959258197225157527458764718501710233870125029066943654181877263109493427072369356327284038700864109698309894293217587054116313217297483969960941646168497839531824827652633677613260893390940422597550646514732244401426940241638262528246008453997258897159578997544773151702169323339078899783690396377932870676731470050187661659617912538556848351352866196653909256583838956931878783404607345060813954782480750670423116110946602141066374595572626548940096835332398866000694033122611065810776828416624463001499365419714829913051737825611473795703421984713576296286893881286094677568636160803903686245868812911561188935263721583971600700403132021119196412188983053496485780243172303376267709584749608951136134872315775979227762222073704213465796863890496318340349721745380781107296935018495856653364738673627414818579091228021878628961758794821228325110451168246668438400336260462869862928338489246419999924801625180789349386274579435214630856840075112718299495201754058547567070196891961761250022028515730773065408517857789208667290159725267816684799650137317198492217856771844402258283127996952557715954051588465771041965241220727633742152501627991220345593960984453678617835590515691710314288640273892330981707458774812259974732639663776562366347888346780689213360242764330144696369281263010902633435336831747041172342175968732108077959184715958969901785138667742010115356783170808555466746404895214505796557271424548982748672951759137250320623806944343049789389060629876077824043437274637321568051314583776468041483896515447708391097111429032442297075948612039978448179853722689867753523162917722399422992932567327782759898733728746030908937609011246703503912638082072520624642775479187419008574321038350265190862188390933954505373231482795668258992946793284240199384775464438271821908001324165660326750573175365112058008697562627744950096555409151279021201426708022198214644657363496841424306006187623286529929126189210410171842484249227988124668088419839371367182874242722541173262323907633466571554585351681749541607099440276604557868071399374395686644317591020673084306717196182781413427112900966794075745180194522477872556742464559538448957447587654873708030395198236514096779315779642452981128699359405883605100473936076612043930133326005755264757137400226777103787377362930920248439684817465398914515861004342214731278006059761725123801022471407908939629969077937936485419898095122686180984927916431338625431301744391353761012443347112962094049022425550305276765780812716940378282293348506655701340486705651947260974077396750582845884592495667353728304436684180252314881478913060829032146335735119355204894030253796887639312331393362310880071234828238541235700585439265846419868389607385725333104182328702917828851225363743278308828324839129838439306242865837049418807485341575282815903049206672069242020213560392524963549303109096708740470864330346181259974880884565625233365761502509560063188202915092660053578262454171309783828762065819707491506612303516499618894825670850018551835732310274744080718527139883614502122413907525100459097807916542066493193756285183202045007981927205321126143043442278607385082623717132332830376612996933804783420856499856340132483430792552961157175041690303717155496541628800619966852756271293644251142642070424816283991977081313130376427755060615601677342149853102995408127588056779718203053790858519363873748140863892526836155836292557331484496192236517725603207976353735888643609006608353132145364068267797706605522664568205786163985276640813801646229166310491221021013172889049309974682454352966107717501474733562092667885561973726247280841082558539647856610601473409045600213260522021891177707692630789717112122557543405711172292624263033042812079703425306465115871803884159761208479588499267968152061513520904669266210509564192707337789596193668481433939864804473954812552685528148763474634269797140534880152108636651208255428123582598120997781685481104250842533033374064576737082359852676350301220946689178249154344191812438722138798687768114427796653873447647879201825408119357336846579766836444291216451622833611593636057051310964551486495806070492129469122533663707001767964431881514332695842407726016469561953089022141745251583847238088368383004882421661257764504452941442590951256667197233573266295588742008873350788335154290132309302051254659788665466054478345728083459309937176994649572220558920240611240061516423459882227990019568377544946562193130926192180038969996974759290472002913066155302263222362799117978186315102903063991677926563318053055042080948696473421108586494919922641351711008843722874183042809216272493730432221046862549206318523724782326114196001630122399291446700743479041972483042568226205449494538024928813509980390131798157185468901612645571683005640230502503472132073134928786200690497659037966569795324834160741352771435684880618919283433417898621585576422502601328566681894574117259214337717406403029177728198431604415277584264090502472911721092547078519028814679239998924628914846639432191395601230482858839045587660297494493764970196399888913044892113550859452377167275404031750107330042827971682343335056338025250184107000686805704835514932960113270616529148640939811918211468088549804188945540193443681806904890776430501239557697270777110785281705024816101390663941319012141985830603869613473173912585329660656543611122907606647408834262548283443195979806480568385050326252850037794649793076233272277123954483555856676846300254650890122813675584278604478803745334920993691886973523039073847455574060687718726804675436559233788048333234168355311812775738669463403947306387739899763892890374261011141935442915605369830550438909301747987885975830808349325857512337450499553805031291487021240848664078268155700350731413896968909468550301132719487648577176869191466797454262027986555652378843308873413561289391966555258350201155410009555695082736514796922412898830824045163155385911733297357412736245307113510597688872302516875022310796413652077058056011827693573284632111476460141058521948150860766092170460852882342111687192675142652820469459795047171774251083120208719723432967208178455049230471073857063399300182616564815222919786376751814664086886843353927180774577134799442166869207763363709008071654542697473747028186045684793371212865692821631441165478721250109090616066877804361965697889101863948347107253876313292010320009185833332495228947864680194601684380544639053567821673730414348758643511089918489857395732748685542461662585500799154425985771918627370024781100917237746224045316097793302261456744375417135602030189719398023172284927108553125793768730015224048253595098266800748213557267149675441529883687276293317142818226139986155719978466278345655939699367679587269621955286513561304907985544657792293190198546774206372536621678129232972035421867008605303709109509985779556600675342282167849350797470810212768729865826974470331862825276421115667381882440976461575988644052455773620865305251969048605450226595289569488062758217631139914354091883858841618729396452164405272573759137060092977201424785539393633562137523638177681260366033943060596280075299203049200760895353482253429322971463075840461835158664892066804813323667532215046712445179410112428822629808994992461229022300472611130076021022966389476276828765374170559326824105895741701927299651908882167172889134642622047642914459940586415331926941016640187452667388363661753227639991873612888667697997388947311183391425433654303874684751701646729283127525742856445004794972038486319059633710366878753836099062628288191832132428793371646291684761852957982430960691664823847320449936135343919696835310035890407857199967708598473261627143134250266585254388015044030427448136979294036123258083338513548487877495712164009608556105454461029231490269475281889932821956089387525629622549032386425668689591047297877649880856587354710286751064155343688079591654389060188716644869793275891648789974849868264803900364516467078179315186100536629055188335449734883783714754703773449915503541347317198290097933645401656342805704845671316347637951759910302538161499471925651980850526702229315264053212030096445549346458758281048646454481926883932088741414841804055048644252314022122275397147190618829150391087371504034684400355468100604169242288562918808435260185350130509754756809724911097555886692484964008733634750920096205316685729519477902859897903762832943908686911787569955502462457369037072139723034684094123291649053814633845350200415270715377919709316326304303794513524725988295117576160693508478574051820987968055703964808659900131289157835257240703989601776887842767767115654730258630651212623136282479500279533678851154845054755246360542421359276039666613046070153709538851715494020318303033715992457216100021464993065752025177157250728264603668846612739795238053572476037110998346058492756504140040357996810269840495129825712237122017168756277952610076028070491494249139628287514568414807945149242577645628702409010168216751558131041938455524944346700304619083941788938195191457003492608553303949789146696604507256337980152027674716443395940146450694383963674183935719024321363689291657816353949413246815401691963508861232874591981096084435365806506986956643693111874132637744811340110438910578384586693762188245436794676798117000752096266125511424454628225936743930975216850603625675832378042446356679014894912747755688596553571108354106713725612839254610153116429858810203719178645911907610114816839554519971766544336050337184861860567406641973000494727167134601673135475585005575966811881100075127712171990882728948379220193517636004886545132266751468408149281691835848622481221702989301322536375619862699748500489075842624178166465424322283492437942239858996739278698763452345752961754052917795995696701475874819645561704186903566107949203330199298945892403645163237452070125779177841246000151730513701219671997321072743282417523869625651105255195590617865698875588450457144014867191992045487474606889605921588730266276494708903469668057361771178858515684365999144545342624132105940371686738879254013418978274777131061161930754444361454806166493074097762391704608343014979477765610182946676270029128385259898375198522034360305632591863039912789070426827581196089385075150267100212085170769392108821869972061018298442775893223666495788080710313662696046004523127258289146848350680172461162068437775897072425038454108270310701996256495219051988960044075033917165469247374806589254821925253879231735688237048526401387238996884907094876318114613373221539381235191610897116792476144206729666441486545725196513353646707836475398673351570969720131397587307405471371865758568672093870794192145757612479047640983384795211322647741928631810244143884196704647485968968310460178998260168622546205792571947051775322381118532512379898155697546563425704031425212642688013928213461172666317407595318354941922628099577175173217399436038231004783174233041497093443653038075217286544250388738462362811279320622123678634594678648281124674506523989978540577483043433912738914215774021223005384262153419413032744078650963198270817621914619166153116008830972512847099932660461256234742548698404393613773896265073497805912184077755017283813941178335958706049559697499968982047731177330254266476592231062762607985655517059168997854787955954817087342594085419063129798713617080689799144179370971975399886730940818691979796368236482147821804101188722309593892176414457544119157852020156175927532495996886375608307780341782864361999582737133428779585164209179546256054291219793006072074299037767581165539921725475579810421385152449954199960064906191015667217099854966545439117916747890764923086775665679218002716562977496654500514061031481681860498834824715125894617719032416618815353592078780957521338803826306603988784088132898992329335045513818614259823996323830423376164180101704029020979594125386291288344549415705237013434730352136671819167987819963705941182258424687406098387935512939154914765556855265718165098682445448841002106743456784542508675640964190637810582595099788199147630869147478235404028529957729561120334363534919014710500560715556208896568458651545671090654058223751569948956273098399290989575600913178386553690862625807849980457335723680135664178317360889571319191261309247507831795194242059806950617817989745286643739309228370937354158161216395746140718862819811157680487235419384993083751969939312469197326249664663469946540835516996640359359983015926257843771210760703006810800074696614624759400891854862787698040837388947249143029435793647971751617184818408930857411184819112199460097647261629631284303385945929097493223127413486873841440573133846031362594903548152153394174767080728669030155434795852446498991422437772066542283417254584188434145419388674903794272352232754335432006853681187843449891245944190917487813028853493403189351313140005769666013396440218349887154489165016991595851156853233439449634581115701616712350136026418745887753287874920402145940369562156433097816402888749080603819121436505156946644378334057009454856529184889961745726598446135806459626043873571119715711126909736477465562857021188818162813692178139758043469208000303364889007009934482998889869835832974307340575398131712538637059196360195312087435130577869174601946220854132979456782864755536860159456354814101430966266877785252447709474271637110257332409350583679018505387081429271344488201762617238968806001275633100683944474624032861404150999883991360657927396866265328189944668535510846578147809182859521947280273194911776674242260280620659470352199427856262516280593458974273351615304336782967838321943009883331754904203946045334121373887704613275551703726600018280370836601089343199805481619598491209164280826743773605501301964866607016491026640938944018534660042644835241900477733374055054248877542594495532604330592655114959311670178326988237171146491591464586967231642925296833759276695309697753749037306785781629440059984806283872704975051887075093219899742095351800666821399673103764795065304494573593336709318734256220606472160000259277606129206204275603865359112528342382946289738400520273332068382519946647837155468418121065625884945824147151728713236313792453419644251906072569811947305704902458892945856943412121454647621404401120624499059827212692336246841540771313551668064032585209848226140500584356396839143436192445203642238611987220784521946551765113007896738242149855306512778756588967145391938453062982222371045804387167283162866642644282460811353784440022517923293288625819786388028806913649518518588996719524413131390670535603209981011837614043252431005905951536053896381188669604451721027275225169809620297292936819193411993608815874640509575187784203728026745533950949408299012073915528318524018839975104120858760505849090942530497127335399231133700883899451328506930789627419732480034034355507684327807117199204460653825467641087042041697970510284841981935549413373363263629030088867803671139513493975566611809296437460324333686711455760666215237076694896532117209410456782696373102684491519376155995735289193365276858828445735111423652991381611216344867495469214002017360130355607272817488789379548349051547188107398871178501376657470709605855233124282868578948644602370772453339003955585016299493537941597515566656033811389537425886465009728082855358939655772559856844993294978686979017546022844251174000308680507885836279200624357801105516366140495638925096600388036748615513320870411326945796966177142491089091234139840789453770462542901099287011862564667212435852108319276643671369646281207254109552062627023728165100222118353706810204247630447574857150016950762074573351300785848543981238949125536571703238059660311718627936568110831920939165154443259259565608133225564829920784800050453965074423680346395085007534501351473119269731918866535023601494524545686653831281280078370500469735338123842189299942077731904904515102246952277414385027377749477893282907476791995974723710752231000627919842503162829774892129774980767502704883463737204830194949375065081608032727070285804999787330093082060939870406961144652803666936795796026772845758680678344926953901553588181334695524390678394344203944066459370559871090187165752804652229247339538697367140189477514897629481524520452930055054455536384534883371711303455143203713505648372746300880571621797676243039470726249918214156464249928779034044307413078611262329401601318862344220834276398941827054803558392449964210067342360354617781753427051136993331298384221758631704212657834849095504332937296325111671949057617567873040687675351656587390443190185204056787154014696143884191257950783062151493422687837316467701237498603749968510758237168306659163907820534329928516184915579537914749653441186746478702690601711710558253630974797284994306275086996462307010567374354236146727561287773134852871802763771553906433094957048478196708723287789256106244837914776417239835574009523013726800598358414452707225746381746404398738707966974211336462824042255251056913965910920768385762719856056375067680552682858403442296078083323276766925084051733138850251424158386059126447093967970932751175182784304460835832721605429041990388028576724030852432059092444059659174696349958932087634200649799277899457973716948771210215655895099236255533549147692408063631610981100217805024528247656269123048811208736954184560965021949984581192401511879858055450942045182260924921333518104295449241187023892941112525617662270289464423447444442544014267858184408049589481078766644437051539218452773254192359598318806178987412751211005113456878339121121351264872489535563730492124398232683809967412501913343653410623884901858469949232648610595656604874399013387855975266665839260339028798775727271069847172469021699405736813060893302364073504333548990880585533601280009115644091015717356750641147501568792840672435184371032392728422820969802995485344555652826896055890113849124827965931879308119426579153383268022270640589825322685684592105264017546224792061682087053358003847529340430095378916977539126417507996125669958081798403417920172923582007735031026436187595257943230902094551144427539188937167668869396258662198170635025773362940771818497838688930777729451285477934948146756761251719663434522225611311227997138585037082339984466972672947662497439885608528505700553945738377220865650374974044783699582704449602956847435756449905762992308639960151720059585273423266841775473026998290734123544339178578895346291279953454839320045845186818781585082120268628518560668749685467630021683644265842378153266310529460616013403633593218935232129464416867014524734941003813207088552124720259092643139967549241153773502520528262743292630674123790295384658417192600194384518120860605058126323716665203664465472853963041858727444465104603329552335644737205649931646822010298548805802794176451908021977049260215151263672405857228279032332949650204479294282834307359475882425758166784980199729507081049459686557463875690646773840586872502748467869546768036326734064889314664367366603330470323997583702802284006007203377403458865428168946212983476155927530769633257985220209981044874386448935352954353582467329911260284000604282266168268223124292591567129445918908507477489963699134110374536069207224814162884082518086013382588159367241463027413373401430241082867671811412006024618719052670607197267571139208592268025085890936805784978083880441278250905861748446574916606867209243928963601441921789244453469788597371222602325641831353668199216450727200404924748870748944654785079754267431025050449734161926755001827441944729183926454514536582699388468891944754025852617763458706538351904161366106003642533318724683977845414487742378104786543783384920106249952331519144302966254107180157314892215266817580307967036801070648633439608814777514171656988801533040448594345400042288182630694718909017100859071517494917567123355138106423484616941791908564344850978052101664201861303406799679651567882573416554375929076992312261220763399166042706894372012662438509941512405383319649545516417678056590470565975497200372680849952581481337344425329602337178208742655565705435094959481013968968196680298650737738828270018827852498359195036286245793087561038723294495322841458206162414281792350871130175771805208163694326505950188087346914351962164639061162911350195594684276048223875538101376875417040552766987806301507086561785178928624049938047874638856097165143042076579388942960258514358268724980591360408369649883814243157971129747045307122774566982328782576460441819277579000303061125756935431644695538265940872952376788421455025968363116314974447917961114985176509506164491095665925103220900762459829513785454739598305169556704878997995652966930682856266408082279533364255487704836682534940797853043003798510399691743139948686530247419544942547720352853293207804112590626041439478044230907944461461817675366829732124868164902591115924303441820155777981855188748078149312595393725914052133061538426618978284924682368712430521465105543832160145831067804518826309827962090199533846917393144630997870245038578983849081828137097905384818538625236662726042939623333636192841251463838014498549870629691417936436291959688757617208469788929299075626539163320604857950401739325861453931173300551795176354090977766277358403377595811788771273597303097443097870007713331355123588977457408763773939128510575098579180994868982703050280469705591689771282671249265338747114197402738941435506142754504658893993731219565489269612263918146462410360122717199132301251471295440056379653612640093350098987053733794812236790700586135051546761836509963708389845981624493717443541266114510832284483396849658427116185114270810631159239360081333688829360636655944742528182796293214910205596658064938553529728344128454278001340159320761634937666143362920506377833716764666763293776604653152274487205717186944632067364555510919682119317156658011109814310497517258287210393686633158191197677793160723580054060837608940591865930378574620239774893251180956794958494760974137308999111731720345260059461935678146849497979575535628865303473034977287898723186812490172213461038633000990899644186175170839813229087877993604739468088976416689953857019578192042573555883778205052916878361878241927051933641125524544191202242557057480750752326737913536331207109168977830311607653513214811577003054109671076434333695972142886091250409054002165334761786325227712959983949422186712568298979924124220820906933655667852716836148170242642763746973442348320164182610311659798793502684259257908480653735505589913904564567665929293859528285341666423925818991054075559867335752651124912075614961194436816244965810181380707489099509046216056755217022014582871582735833583447205699927626678511624310835405900379307998399048011538696035974863809349223011812448635725527897877945304025499822711939875615558244750055113766804690457952689695196994308630491784844675020354531113441203665429134524460057801776524049059031495357429975439449216286814903323140742087246179360366201102291158034474700561704109318183293336778503278912284711392353718081029261225479421527412780113041173533985214875658038653835847753351734103287487304478325231985074850523376383389324502218084976344866407830935864659783526672764323655726545936101947337254877989117980685024600742422403431166771381513019539927270643927492856114072333768875322262394924388248453371932508058427493704066734002809712214165490546587504293761334274683130228844541238453961028543982992086987383777533086339314257976011969066969060987304594527684200382544555629236720711823644364741611888731662698865146669983214743736961568200802459474246868062092278321621679307087834496819750661899468289834839280648165138615765306263803894602763254142283630456987861511390395514898903702211891666331499604533938999039402864965658190347554914750303098473274252533446883553440408532357381564669253730198078716145879031197199855183097781651488602646249526704865544966645094901241632330560611943196524991828692157639022944542984469925319916564130873498931176527023633789133518999055175495204891312132017838612577193888204548945850097436811299576990443009419871417381532823412025961740607440216375508154435137798734126872953035840178337653855264256403109213672849303237314627571577370024853474072467543789210947204939254419747554510013200260367837723074041618755667731889419866572062444603577089475786987045920788156148044343106141652555833184763867866803638357285900735490108757734062376998980332199783272641896211010939345881186333682320710706732733597766580663607014343190327467028557068027512876494062214053161968651898164492839504051660911238504408203883469538802185125378665375806738452221698720264532579700188681707837548205420196007204744459788476284894810462802940033034380958329271875959790452394565933961938494662902581783518019500467421724869394376247577495069532158113011761842085893644811349288669170408493058572882110087034654133654978992767761307900614602930964432714657738386082407096641018528189793903518487679278591103112073419811536015811020009718528099825098036663865592411090987331794437051387205875080865326381747425959542217144932340026972372134200096391097646116752257701296190907220711919366022839240197092506714494747796372466069764252656476753325062151168770065341714336387496492336456475261731544580293738273122215085812350222586207993292771649694559222333176620016208388047875861158941743644949111157936422038922820307749821735177571254680159622394135234217289270783078558255296475622105872129100147635718722068281040245302270341023778574812016413710869355478738466998698346448865532002243763779009245876683590010446467674838097948460793823941797801433046321791613397744804537506545149311518290078822480484326032646315817569930912624109563702484589158102632680992345718408088156061305571305920866571306914778553347596414650225106411314492540302988758009393664961008680708117446083604909886553493548368796789396686458234223456480771946845187312958129289195629220946365761912482280702140520583374364401051412591070239741735672244292674419410001704038214579757276840051310433396684624569307340517708901630438410861660258571761558525559479235278287855580591478553584516943931657167916880327274561664513407637226794280950908472922676304766868158352469103970346242030957092893698858562446102782201050510265004632242298447669663793898003222664637255852865174520660310150400250843914090165887662707974020683270907100517682945855614204955262903128302542654387977172169180847524409283460345444949446247354584617468495349965616688067127965788786381509878035966189090923826317713638626038028650905415730886783146047374116142615715697172887071370974548103023680909129539878593683972204086692242279505890401391932823394479625246981359753118524694831710124758289210964816373516396396741638494481571926369845044604286109447683806555279172278545615099285439102437989236265404125722765627029774616625681178020621792678305384933940044078570550567470513958920303572469928469184274219804312153044198360376194856041183514136045387776131317215150243199602163240130258350886206469097585090093397085736200816267001135200006766181193006977823664876133664221641623369090695579496674745209991596492682152927673970395220780717873434416226319758266054272162687665853202043415461263536161122784092820476199776592077306135065083755876078180928648836284488838730548224839557720811462224572350649239233440945249456538678598957168124526972448570361719681117656434899322464709632436110157229279734899787287060948012869323815166757782853039800008131601012197336663642014728329700875594716845575087612656195010024297348724758564743831714393408044887796141274027253173919411593918775099671271314557224445313068632932568862413926090724141859908619590864266756084351461463548677547447979425716785444322450765259124325965444567805463370586646496020570341863844452071843688910899634451022751981997607015191365161313030262196673048626848262045955044076512857381100431025715903143077087157214787392871071710671366092662301181777303834969549864274412100090432371899000100859194427970833213483732634175136940199764924837457256430460458554689810641097901349152033583303540741483913275425542466398777806891611301872607466743087757603789767607967092441238025707024766328784232296045243681269749342634013768449014915064169055641323376994149917419517284832062116758154987727376703752615676528935555293398515542378929174077715061531767923154378657286476531956815034016619745801468050745073575911208779798592600004530071508089638412359225215386074166916215370500121178731044952831062490369415866734266809054521087461264669131518175729917941022707530048945587500690574528946640560873339101313782386067917633688582561255106958432377103617454753019721365931604085017805677347982578728394925235462369702437251769001964281580548829656685792403339390316389354657510657699804448390474397736629527909525484716505799161747799273042607024862930383092911460579657243290101291539076479879246704333477191682807309816957020605398864158627263234193841900283355188718726699933004741012586174918459209258292169857947368313398481274467425362620841565273360425075805862167984242206133725977228242463189224971049377866407777194853501448515945753186430962043926907021692800482351200492388139832561542643825207848232507095133179588728649205945893888185881071677587639377017783360622251363815391574181861813601844615079778902871710117352565983261803366262670244848635701691016436710707100039760223412555906900121029060069035849937005051785513081938169620447934160532976445869094096496384827552371312619484235462425504177952224662616999276476915773312750262515031555492945131038131540153184907030179908751190966698599709524474608408078715448831246883081425354133777725210521269763934821605425328380789546360861577755321567744366416248236156055339366702965436717549656146293213318694837570990251173775949853468455253684974164036740404876900985341244861486267830327684293972946428052433523989583443886701141115375604688711720743380744672564549634992130717152721988326904260469919334243459391246627536086818834317699204860230491407194393634614274235412737670349855801998598553934342785041015671667652798238936676443397870417468154257699902967352765957091227511052997496845658372768546136495984789484484578036467391244392172908443056076473900884126024323606514156025206548572626258104325331505259953310864457809954209692011325876619263246858303381212819575670063742083027063805125764354780556204493739220093071776509514635440695221942756178724465971890857893192089229403322696768718938114359215889520924885076106506962937933061400911003112849876326481177144000080753345403593045204452743976383831179853041037248407873196830298010427856975736826791196329422093495848820064403000991172663106828848323116557447329412018601869811929107459884300061104270369057261604802174934406339580499686819022827588988084925380654538100501646210429980383020290908771625713475047659478464692976559139641146790087763716753123659651706474903045184809801494673026563842443176584957494026072339060226061937352424323101479500453067161676517897945689877561670606659391189827656288142183614302435893601898663963318296533613360861116568937269485839284780544635052635696435758476229321212359035577141563664794018133703403957841427728144158826248820224108158110827551157748233352516309299669605937301039023055120758681810201465070755298952493172895964094487541855523637984238736275850093948758059328957089326389972012289335896297681085293167954668201437370876314954982527376849412595916685289165436369784204219182181740140883918289919383182108756967846296678540628465564343561415880552214471032522968392463172865936528735176754460464264477289953243847515302298909171347715631778271279592366417006766360088677441253514728576280424895831840504731668707946918076626564905978830771166285896758099844156587821878919739944885130089774331137537399132453522216298947961172894846825411923714762117068700713115398879302990076724116280354036549535522193433947758252169048317316863746728076235665311786087960091911748946255370159511634672725279450772818106662702375640704889816916503801066901735265881943421736359589283357849711012499702788168719099111265714777146574661332275043378386246148205140180140639153095666462479277029202769941400520945979844043856156612019754369173176273058659745703107337734135902556996153496389608053275792294722942639361270345853744893031454035107125338674345235922177240493138349997079802599022852218875284937991701515350270933260879887998527528526212860249277620200026364493201768119401448977660611425883309285070681692644424585052698016851639598953131031261949591893382413357606515898754491576780994594512550498421898735179130627115314598861157458469634285389182469846761276874793370056621240928811707946645491187039876558922118917082369462597371651320281664506849652142093986625474872885801249299791142415731787194636930716037430486950148122903171976792570403991280502804467391244298521189236257780273066557042944354590439390722082454552331186873489832455443508918477936963599743304295500371869467763087858385829316192310548296658098003564790534257226005727532928722884337447380997784100562822084251586473439771601707230255231620679044131728047142828991993527596582239297821643182696875326563729234282060174742166797790261102172030525042378264406863564872365204884439034108495116602097724060885168621034412331267653397229491280652116021555250798795246595964520820316949480239653899805326053786074128866845502192478078481769823945109516489164312988100324179657313061173861365045928738685489965035138961470249153880333565330120584304448806167066166265404317064497490812190838827104439277405843984062207719816501775884798230491836747683254521153015296481329784016691216429609782498770747032282491895172082110893096602659199690213107109641062659337259843959103287297411606543680857853438913883457987999787054851344684994062155667652847511117670122153482739482086289757235388384189807223649137539091733283229034762444268990818315362488242788694021575147437076564707726460965220623131958721712370128596587182655672346562673373938636985963646279538720984505183698829631087466543251175472568713747647637638261505116583748764939351172834520873942208312048623066014828286116006957967407866711652466369151031221450264338439544063253956902120191015980516537092013901607128747225665898565708137463632288052542344567780103481181571845569702425229672465109564644445312572559289649410576599919723869127350833438030852199591529979743557928403295330421126500631294641420055756679360814993301391439399439202228954532531055083163614041276314417122716776643602434565181736233251611452608005156047318401339448817675081099299944670101658582308101717856215423907043788990811208152886118225318203472132670210186043433117955194113650816786392231324956298265513250495230486604063467424243368997609309209281225738104341003637281798443975698799230140837556075161104872709272987789937701148776986452126664848675607625457106320992186119508608543026482599085682696776828592402179304079785030371702201297587392666711607881668104245996219563242085227209815732938598673732547847873371894995064968151633544176406030999300615143641956466998382020436289082217401861043010787401138838715512332335140462393793791261122325284321906490407898000005321032975406805225684717412513480398571560366590963902774202895180256714446019324986563611728775959531465459265752480202877016796504294982867294038378171993026383325625959488580595618814201818003314479267741364075566706149361110363488274663579905502720837133144974930268665173978535469412812797337155871439158950451310292021661892101640717816821403324997914048720840511096805526092434733114269219245305721727056953692487903855621000440855531549140788825494883676125838849810596425066122308583123877608725593246340607496489093227167961568623106401667260507515777084310040479492721262887407598230818985123782382112551699821187599767440275642520976221738278314221305891176764600861241528900161173188826597295995768139448852625462272072239394717297725995536273438768315699443009185836084324957995344572102772856354878589613660489023722743607127554420075342299266715275704066094389913093635001599596263832223955489241784501967639688193514718812791908689190214167094116108683416782265159145917744088047698631095448697433594153863601688543565605974502511926328448782365059707787737631352250583281630402863450103294499538499054691954493173411235687634098669391608171773818075548361553575071592988148276156929423054824182370027397417783786808700212024580999638244020556417875696900729731464074576480200956711119546061580752571198647930635388724276627459191905395908029775653808918484658431687601165813871897858054645391505879587171268534049920379983452114284220720353824842904118113962419969042893770856789559240793978648992138056682466182202927338410560208637419983205417182423332320556277364626527491398459565564066798636106813791586076278465082968436112211600431482288675276056653059316022513053834911467881490267188178331712026581209816916701317451789556195882774765714482931042046016364499826032383140321195455374751563553816533888400823512124613977368626109588420827857216857757289618468040112530827826406678450259969921899036132391857639822867119518017580163730297443413293682716410355975604014984177368900389034545002910710270268714545360437596626926982688890570325378081577877525181189976544678833865685141037445668480263104627237873323955527048676241405913942412235341293262525950854524102405731301760429307423195659441730553466120805203700210071790815003928896793613520944551290829084415390672230753814730900646523387183019672585368714477550974151320113755133400593821184822639758690518145081574839009748820498483053265366705415707263929069596683108256678548595266050119761168669298555520844650659315928564516675428563776326987086831852531695786985375130607204152767116918158591735173929452999795491559604538118546624489005297352620219808522852526887473391029103757162190426169490213206566531765508224021667172511572133369655556096513686825005220819592716570086622850580304742658379265467045352286004351212779113829785245466391640419036384193166448001003610987320173986007252203389166969907827128092291455586454824744502497760376044652935863274980145607265787517088405306783386375952515944163035064834449146992041360710666800848515393244268701381621536930106543858496737188672816234836727757371678133805092930854185884640879564817249808715464425079667021552399134913098797693570455492481303609500307733130657839877383721405788336757589346916123830969625330558174078517444506408149196027266082506444486471807242186015332932616898794100615966896638696816384474235709571795230425006547626787148197660160029741851517144322084290023238784272898523325866272868630933973518564846354419644014960191297536880089411117382060386158995728791732445673519166393048546802583598897193392871943047576582288453690129154364240097617342580346450000336932550252560202224928875932464213524752657575738889055150495674218497471065432359545151345437428729753985396131667177725619991988389448661804821570125454828068323880789570530591629966948139015971728769663408886601768738243795734881222510481828110197955399071959025811549633547618569750003818115262984861975779959312024537678036504160758730116108685066218577255915653703342331522985481792343351411027372177837168057768347673616649944632182649155752418242690199199743562377313592950443075489807990562943062902032816189241502404403010622245342345655808196487233407470110397237242417152576369074777887067094699775379199909137447986346984972304249996060227206053815764927925718768460802852921647854501204109943117046137792791316366410115215054441101817061269081780796026939905407692906778914277582431483240287462427628424468747040480069117064845659874358754108149389087124747621657001439734353576521674684854422477241591788068918227000844285254469795395586106200067864510681927302627029459385613140208922286068729464489147515396640335375963346521820085059234732384447753430115440654501642565773571761279357218763818593347757069634217142501225736757667896507978098782492597233439464240854237665623732656095319162438859517905633685219139128857062867976907102889347396581000107283752365418255376134701692196322024124283174375132704955787494245258766318389401861755832266167878237714289537201271635463494785619344966080180209345665354820467236101342209321084738568799052791434325725592085605022359524064171487358478987127703925454343323705095056025337615208642846178816368301330235413468800482983701105144507298344868370868104198773844807537284948657210763694173182051279432966623680888913499171720975729214955246443442993449958859936737827520153512065543178608086524483223182959562457206762984139732646103169374408285750129306656072858177096796307266756875749678499227474173942143516744673537989370034152282117065548106519902945553581215893302278268608620440025546998488920847206675032607850656976839971304087532126826361309727826169194702695462089030221342858167948428773338610060225304532660887574020102648984716817655359773475114429336547299681922401586844341243938943561985041828061898852755990892606631898569471357864133046422227459439110019087167069441551684357969245069243101731193304878616683047947910902588239705310249278308596060207663719454630146531410847946735075277675599655098703207593205084753038060657416352630330208903534548361253888324777746973519588124279777462238614145394215817464713891462992467788269396973728252725368523602603448905395249262163955302258505688588310312148187018704426370369409438848914826477529361120336289439021852177949121452785164857719873608508443734882682776871578548815656410755671783601067527746291548808161179693065353568483315377871594482396326584959278264057724860576153344124997909581660137404665359742950000245569561547316276402442910003309635397880610055684239176863559851380554817218059762255940741371963130952421584296402383160187816411741982338713615696505632128906795381984130103267128824625729691595920237969142550824075168555829425533983461949251403927431540197652637758014980227853791033025461691069046072430712803036399546460840159330945155550903823160582268608335030033489237980041198473158413517964647450680347985705117459042712367949727012997736159812246197480028774418902261071689668730713285612968866670989155949581251094139905480564297924142873640706130446595861137482916867107598455265487244649747700917092625134749091655632491405010575061918562789771883350973884340874268880570011676219588034654325449578787245550424835164695063213551109955795883194610626209071211398184201126686044730855434553372508080154292264184643545965175989932624037140911921398455111754087175606220777336284305438136495536336544364609273415452117225572466322999370238338836692955748152495725937338799721419406881817407464217240404904754738323320089734832437761558146175359205690342269643696744266160018624515014538804846781616159126391823861654931871818295995048935901774688508840902004141893971810484744750927962137825844427990632199397659927646031405847413847522933473456426277934691484630792699768228816168632534549303902953824316477135325014295149216560386758550188895077749636082511752819771982009749550540418389642686812899930848755469416645980871046964422219876174172850301859695514274404630665246460709394615747209654229013260372802216584461888133867430776854036124434404484456920853540470676132495346898564176760788753471170465677884165733013747530950085425586722496607277002751862843490704527243424592257889331232947409115539916797293111716864458426840098446148105430896612835628510335116567131764997027452725228577170484005408696776025214526899343296374291717219324816170702229799824519108918716343000482233953250187782408320579220077870067316835575773839614591144662174653466907472058918381791741202245218549946137161140074737339047202498290779652618922346758825703057445083781540075485258241498869626075075072540654665897090807562759656498892335075026540490775317505301224472932528294508144502734195794553342585519286871287183031603090432131575370313129680415647535846473556544283777208684645506577767952609418834217619898964411921777712099527857263406797772591179504835672928503345353887228477364962604724492173748928883337057235993647606824231994531197668013093340473437744626472132779749061987412913332789374736271453646747775666855941228030998221030730958562005600240167917265279615381659191942951839322607057126459979446469270281278292221049210333349054722475281448100475339223701057545477985926587239920440326856733966108122201475673307779538707888218938683332770452706714328528775763982116085450314729557874276424920234691334867594494653615794264399330372183344158789476527027521631775983548447827194767541919239870063714925240498248063994748897723093814685408858586463207034385716690928105133355934531474990306326860656774817137449344256595005517967554754245925863833521454809037457377726652269166095535873880387843779038156945487960181880405312388402508615093550202432461173137887799591206383308721165045201472614335324479265217360999795621519291851405871697517446331156602088472682974393481812190779540385106635051132115126209956103075587606792342575643982299855882714236628771714272230752005918762501833664224605745881572611508794415946608299546503294508119380931233416905132311658117393114836087733527179958367279819170623082731292003075762774051120104654599410731057396800057110903598825763866861234091903198696821421903704338945088905350342838017589151585038109659833963214763599284034148059955952877235714377917092907914123659902267156838707712012394839603006566677540778354713241061901174610746873708449517740024939180824923634623550544017969515711656801959170196615219783372378378623677600667109888615218500341028141364235424456682472570873935573273747477996025682416221217659656422214090498339704178082324645527303446350493124584262692710689817125458079396909583737049880824483636634397806289898395240593240253184508443282384051448898259581417049410353194209266925371030940224421378504078504121438619519503428194932705831873447155620098048547098237258510131481080047006066270375075296546895513131710990927077592733613010970486109865276735666627914151497575365787065871816468635694643659352824600115973500440674944139851475902977893876409722500631413911273319780045791578671730394459307074481265910929249388540575330096398343131353430706036951026546956961460148581920775290255831088032171623778205251873173295045106862126813129535349080046272115923608538525400244491267627261929721224770446638419069728868017310316032607888632402059019015346766933166587398190415354798895208190729837050492912989235074733314411491558809029751845200803716597959951688487538628900331831680295802527582716433085911596094204547707073461612913349643830515621167828372625242266885681736131028926633287577131661217895342762636342472194745132841370591373902816486961447840898468200399905239386122979167268524347569654549963571156864395112368925645294767643022603531120530715966898215979725950665733673448794818875622469824870800204553376785016589284388940080532386120720083065825543793260651746920026480145966142256807442394354074090638450029908781775748998654171130685668381660900651742455787737328446607834963469563218172851875058802244055714768492198575856369711257086470983198100267681943760192330601596049934909047518695658128834130870202376285867265416832891941541035426920993844795494369442045536965026644458184571594495982095779071439645123367395719651791921790362352828237827982544800814255453554846296038450572838177752203153561582788877371193022402760762841287954237743678973490507002835847012101449493465852635940560479027749627045904836752352557835608088038874807201162364446910895767076810134214371575454741995350534219209558313546862970840076159173348410436407247840708372042016292669197068135494896363282928005357765484765797346386230657470892235780516840262647991810336914283308344484252609069250039918660950924285890891479266290997835857791737399997766028978029207041381731834773096560076403557610970431341683126021176693134374071849263314868638763753500027208003121673348081342373737790759831872254537864406963762587361449069893065782306166335785575419672963941453434344881304736062095858491002150400435035504461050597524830809346888061052456898698497818173213243005340933043700772459809331303382373172601657981725894324487675817088200971107043578912366432147752586411628006800548767391247850865904598391603484320182859516836195748815058685746964929594183460203870440244837553261801213230699914514915884572488762414939551520397622090142677016544843899588392554283102505389526347696743963756699904898107125602730527318147272172900142165200977761487873184091962922577627620147687025257320548899437700433175796041479852139897417690939650203442903502411593546546050120543572502127984715987875134405454064848080844407874563346274490445305292986974751634683828423935623685610724214057356808799322428705886094091449017122151151591905840206530440939178857502452646803319730388387878244694596518038423928616441814566057601753183583117044284018222476143666474874909563206699630652628797294458541124868883248218393790368099264771325020989392655187930810915068540766174781029535792400910499619474662009470002543643032614477834363772998875002610092472020099823138622844947311353920603851616142249171258564280386897467375246225043748979269823445771944526769005803994481086901636435441091069447108997245853911711940434184346052994869421419296282231499624744771926100314180528541956819595599921720347838468435610918651015103089370901901320839179410386615619642501152163903083213486742040680969854568211987856302166886447397233034043534114243080415269602793137258719831388679303566333743099329211145570078449920466172573984317048563972503097647118154206949329214625492303170635269349793191774175890991992486347623563373426473827305646670248661170380404616774020740266891426885293280592923052653632817483652803076712222116823682360544553485080876955010815876839738670431399193761557576816577920933747649687694641947120109576157224721574079532677797195239651563758016224250483733361064322028741864847340167670158768915908464802437109628335028319429669118760189870042256866318700353109251477810574880854214991897407118417847379879282558784343620562186185984673781726408111634974266730952827689481385627511173022533720057855084559354855054639704188677518757431638824768038752311060203532962003206533988798021419947079546866841331856856831799373224360275452045351765896650007562909456273455985663048899261047997632932403022206003474611981429009367022200217306947616747199711820057666596054450591197056941961271039841040488720148084046786491611287484298546424545596534370556163690985252845919789342064780863920913696764953444154772642115934216863227894079111485974725003167239725412005651743593414062163130146942252680143089381700815879061152072169336455569838726614982998919046863329111040961665752016299917140610909611626922041309701105933673760212925906901523263212419520550583281510514342380853074315070230757611114786101920544269578949752645221863079357781204954842982092577356862173956400603206773394022752969373514342780008454836510193690920921242032043116459089236477425718610059034824254810726030962153489208153219787460913747818822509064057981909671204191116788958090033704039869847485546879338659288559409741594930679934097665622873752307466248065580109814083129265776311818595564272692295596715736255899904633666889770883514215959074126553183992701548312867574625198821744593531895183488645357925162944810498516833479565312453702557681134906803617099380592325640967745000817758664930511285956145072752766603938003147281593699067677083891758575176957825051138304872931395296374155452712184263395871946409515238957708430121849492990864643762115885581637315865051255981934261683696593433744111278746717008340235005540616005222070025858936511273346412081183623035231918940582933366952513712407855141658800343915637181910842267695052221234995222567118829549993289430424812533239566117409264959175284531083636774547841881728039195217770398839917177764484592572587162239255403185229355043202240489595112595619366715743779417878534198679747987585060820268015194763726811512240288140747255885305738703828076553046884471312144329193591605603952490449860926997436398986739406154623273587316699177261365159707764203847941715595348138949067804154925436382558135069362345333323669040740599422044235514809062828942183351179926697672276395764701272539007121374345230772464148552828185273122170470106606369021270599838980886935680107110231184932564410873524353069300796502814275973137568316203236772567790337737760958796595222148322249549369365045169477938874092444766953668015751992885947269755928860025537044959638260286434415781972829446200106286719214742604269832015154620250049094022988527914154627784889585164617610388144972631735268937251695253759324881740239176364230798501974423587776882816813356502624128491689652129638021729225959215976625743910556089054416894013926297286061164593584845461231063756150647612099400894651163447259844797987609037517081734426165111696279611596893190431482780137981217232686332043298724167843525250295325529524945888333055429386574735487513020308246353532359911235081380699063984362560147829044050783559339631539410887355696293654672198081955967532059092163524652859566578444589060592686689919881849263800847146029211344979516374628810687281622107410782256869468231431192903602902820295721514841530770502403576462188269426738554100390964632091368346627959624998876014007419700371078966564866392166671283727119382602951722982229086935015935812704349702888822091127129054653434747650744877895994352217606559375304846618709818179646637883330168264598518876745257094586216466628561476516124797269605563157913530099719071251603499596062544785750173446520197348193545554920938188552096292559707352739708117900718922890415872313194825681616906362370110307623487886449354788647425542536972163384351754151096769816740729118385582781435333151670795662118547252233854990168836050559773670126523514867534464565218176928878440320975152554446622993477313433125115283831512578855276681129148337625271866583646145405509405135120244663207603263946898773164097794761895095004478138219412447504109106384932889775942651730600949027062285026883383921473334965067700675056140562849806894488997316322089103737358717693133185811063211389724309440123912073536783209137662051379358174249887971598778581608310953201782439843521620236347094862556587272364909365756568697803354793898343683382617154654473685294057658171455958955233432642298750089832700235318628711628480167768019307795020015032650010766621015852514507018748938897984677533124108942383037487413193779370241081721041794264727489356807428498199849418711401904672824568791153023307717014918743601798456187026512534460225158642696196074827121501514182436835795200811154861808669945254524587655076449043548061667883784884624944712929763998453452151856521738720930557874941742966766751078592964022595825999891851096329565703311160409560350985035683112342032070833438835605877971766832932735025692573359767661904321436887771502611974387610708431976414273252802309910820694843064480562427314513985516648832926348578295691474219912298758056685106651045611767559571833483560138887338717030507309882325870844906466486588318626884849793327954663244667264800680189477607806409626398764779214816034556345124784545472637909708566393158781126739816623197968945253976669015675616587841978692646271484778794938426953789220092621990576268330889500622311300444758234622634096951371410571611088912210329847062657522440013728735622852290585222676957676332376168855346732753847776778814592133731044845350958760703415922314566097938404038216176327214633939163375085404771739244011318330749769384370050790160289322740329538867453138976713176179190926375340919378595057859604561354840329186108154601769552815710609361847625860445528249636597801252289959801537829877159047201937242315405816673398662390587578805602290403331042741553337769725769477647875976014302079284045618936823743584693606936066760381952193349402462998996078364810011692138574189380148143565255898976502208001112282720289747804932018575956089404111469983884126267368988348079022413371486016356858696112195017097139025147903410877735724486563681584674667335323406148679075694453360372079266454080649668764007888112550368937191544049683335025465712996357520095454800148800589937185400080908938660532556646188603307110398475799860653620435314465475878085600200604190659738582722106994639042121999134651534206035406298273619715262413037456468035477244401137165997945072472651182817991732203842412094144114356534874991305501329335848011950590324027717351163606336726106944497076291291053302308346120922071006016182253904738379561384492498062188923530626086345905385486224788308221848717545143822648567704386064957785499162004236699521190416341186956772098351985696563555320392474568779884723826540828419058875864194379249957294842221262760499389983824450987080499581775353551618644545931127702625351201421146675698711736462187349309148721251914013025522755709860427487217292235253419463971760494466319482509263821418688982981836212767827557863889266951167775274561276663926911510571192157940782149598960497470004735202981761592490944426944323650993085251778868128043866176045803210849677020249546160773353647918436202820073953278264490091701954454700663762802793488068494904803375207578293273256044782292298839050337059889506607824567968442544499964839492961236213542776435308600353876818727438989321452973117155325930464823833898840375992198137432928399000247605074205698166095573517862075141335501749340903928815595439772378394799116123083850503478986594610458871566467632260136282431989403516873343697843430968118030582122148178170542070785909698366126979049849906432907700465813580215103460324762740331438467011021624945086632821653382131334898725227398722300467851549241194483363230888303716640396406419120928427890795731263815358404017580895741082749613712504182233560897993585400937445024506977626488459984933571127065628672013751961577727119042359938218811104720520450902076417315834633725295393582755905337696842301426647207255347776921909483632780946032128104067231438938131942216510901189743005922563257814189691589768172387163023508668080518088091740620547533228487626232475395574195942176543420212589803453248093018013048947494455340512199774496123230590775025849398245095513618273275486810732009311994273345779203071335829847137920858712788289396215707378803296344645959902981343714991158451664045019230784653763025195789572272304063199405225158309614575715826835864398308681565160531540606857766660573021797859165002335374230545829146240969810710847834909286206626721827124032404528584535902360096760918252535986394799849784159866621069348023815755305680083042719418609218027071319147419958399174520334732561436960433226978881740306639326135312191034972870678008578580911486894980582259752897274103529788584510073792025013827719371167729257504476558388992817093130816229964267133564839779822103748715083884513025675745244123050784729579660767040272345601366048349514510045395511669524863809832134276329092415566115688180157368241164875631519847369298124383591407668605584744329150599154501859595783464245422698978807240612132730580248223346827286444038274921266796900109347252252374105223796684980635304936458673401628435789713302255704234147141367564969656265981660399895813265943919742916503581200098151840322407016281399505711509207549703089420789532973437721071310937087798218153780942331312154665447383310459139294899894245041723389485435045810243165355943244765951370487711668493281943758174837908958483417420825396948967929506154408909816214206159604530108040589134000934378906918121861936447520226520438135722334174338554497059394028254008773864884757607781078346536259365580394701018774026751009500851282475706798634016214370574998105724643869054883005366801845411993633313085668975162082713824855194741792061979894392827021919020478304431980455676504721061394235115470486896422864572632545130918522075933467238895581823542359829634223206927416495874591788299086232189121090899243272855275883329410625865789040932784297135880561943288077372707148295618570995732448801690606632465717179111534580088696769388939636205487729294388867381136779657956507184267282136606961844518722231559996145234098628815176438464454390990672449758461806545198549283925333865817697984774417800508097489709249930668203730626692024929317281242826346208975707131370377078560519273951988730612362207761949782378137816499642641215665131385669249505614120461500160005484284883667510323191717347465287483850385796379570562804188021271416524578221376700667293005964474017906741588784924133178182967485272900834501372107321224855355569412224741637026078337575910049913333498357815365369440550135565148381164697118700597390545762747612838175459947590294627552021352946216307026287100517861012297951622507074483680031426944353565888318081866908298812351235304468248210026177047558267062276149715779979393917155105984398867560021457785455485652728277089409359480870599701211622253200684082954663083592497982959281388130449581558373308394449003525627337066752060368194030285069228519491366631571154445226743339253420577845628708536472225232348110707370066386959128436065420034304663806028181003359573899820262073769257247289852013735706881140240666715956028257804644232488506485281748829508023763741827499822282285720596561340971401603479778338403502242103323703029695444709557878388474719156093109152232876974102983387540379658130320627588959217552927265500745222088951128023289457724385476079293550095946704747833855238805813404651413547072574448262794827357335354935796310508669232389751773880933835981548146300888986411980826202884376674795610020752545912991068424870115274009242985453210077302179374205987282595234821131658040161941677204925128793122684539085327880087902603432557219625498745741059763882964965802477629372633732697551461332347185695359806971192726678739594917540172188746403179053255783628578169557356471960147257092613293147588503274290789897031133892056049998662484556432149791001416536895905914585279511289020780306994983137989035599052188523653305123727434652452447157017032934556406060770543160160910554317655589104494311141586484126800618894742663517460402146396234825605836907447030886043329842239305754018855395041578854419461391762364344787159176246739783739632513423427669044715906854025336354883743437964942311116175328454077234062758183699615336914098502585338368779064602365637952637528781330681306445808350492280962067329655105003253399071202374788048727686620984372568910826313321324235071494141417001660258181827760023445851554420390892783183681326726056781571811679103833641548382945860659136907019365271242111787912959720116474234982405568300842368434994082178776577811542037883220755313792323055840420022497470641811092801501132488524202614192386501251492395759711986780430738588704650699265306985383030153491583064756514719136046412927137460217698657099862243405960403751421959767108697083808714614530154014559872966821915866239975280990988421516624863788048186848961640805696329896578170072281118412894675711959771241762982832023839128889008476032110512440904332562999003069354914239604139295586180606937944904570001481126978665351060877370123748762485574938553527731702133448743073669699804590332557526854106930640483584475769801461720677459213137050547830094915630581121168864676477336054472622638460978751656758969700525415691250443625518986826168125180268142908684187551619558792079126767430086510404454345282201764042636093236948423906417352318328709752467545136378761879143757199906209131878448360838481008718507967201786158847238242977432590723674647033275471418932189046436957703342522557702152800302353939319678332409323485876866264986311233015268766742017480594386641083442374670173282326526853079419326072635490066775731331605436881578580859290290622213836235458572085437610945395613875494028426797836331869789915743879647169372056913197106465800424447319911505677268371827289576744587691900066705799229072299412807999907709549332753325248059002697147698310294437400497028119293179404457391061259070767482329990127154567995732095825781335044948101627178010079718085804849747036286838760211417316743116194567563449223737287064771118002858284981076935576379421232815507819830036553272318206892979520245710279145022158058783488680514915645399923008447711883664966699819510916482463794904105998686918786257236470546510654068739535131016439400284282726839314271867370510679209932264752764282457907021674795033234592844569163582814483423276877200174480718733784709006571767510196504123026339810137060043488214932951010180199917359667742615722068007477931017603255252718186741176679734375022025924126823862235881523717130316674641960283486548467117785378913566801529798241405657731542847911083613712107563061503565988779129007793001904660077494852347000151153733208086183828872930159173131786235855327954072978355510070435976503575044742531089477308326552980895773363074961447858600251111874466077319879432821926224989665272030063547329376609531675889650397209537046470370549065403023006205545729775452763745963789588089751240553423380851510834580481686296330892257880508647276400380060234441715214833664652744539693263967974086495141976598446845686286619048726392669373742300634791315219043421550133023220101573639240710725309649668425068687996872082253902999840487165815591169837359336192208202278377917820610831129277710676629010302047542010598722407583789704135310433318659277165703648054850399175531290548947614668098477220417117178396212979522460155028242198360750484419871005008594696650335349268043771584655692372355245259440880380617404226508733526118298970722893623644847666973877128198879771415308740177664904780667511762393479706436876863121512683286330693283203178908649116619649767141891115088227803396923586266252067708718136313742096817381837608919720011482504283092895079215891785034911033889634031215380300273623293081702770893853638369099320669326450509311320581661705584055391243649540577181726208026475438358037604100798624712234577274966222263250255084852911591126054122664343022848128974871902459769310071179800310420402494168452140584901513270315762871751743713316094721956397336509705567202426757157286998151779584806056734359019551395045369057867407645720720713254572497613876035606398018814304742362354441211670377983345699115547682593699852252814437943813511399864311304728470582426328328816141266735147193991654133932075913637021331277731043518227900781285416263405699333155712235340556214857546137042873057258230447488389768991139053536523077833050650550594522167084030793731337274793459625675684633494076135927278240541911679612458800620217779052985656994321891032496837174134692782637899705371952912831151982495434111662083566602373545917991788440868204197256764557680173582885059725553473091841117649219306765104569843648062163278242979425970602812103729355887824028663752021582941370706982837822755852163882461587263796502670760800304083306687261713450818017107787032677283899134929923252159906751540443550321116139218338368235704247211063135396928599835608730174558980190912683374790502386307589316443591327374616131984101083928633269947262354092324855529074665980449906044990291155896953511321227621979556753777581624884343878123081885351861037210342219519547464416745639004045504932126416644948215326585401427119450085937954274197104965152991219371364207548213307607178004588534622538928287978230042601112429185621680724491914331032022126957220553181323883941822405012925467029145624372750016912629579331524911376075470648835389295775970249753422934669792928458403394600718710019133347541160581047491630870775494015798432716932531512844474581625360197182852197586842749308635942547389812991940151926843090353324499187443583457427099420545816580937943648518558637337132531904991677889579653719246268702771089723413383934147087805872123137398983911085369319070154423004510383584692690296331242576817156655689772647763381533901265740704843110466172673077614056256299518331243404125082462009462578433601379196702376333347513663842726191502007479600364326259300067398373842875587629591601352701325360936959392395385271355959047727846445944828899309282801659607430063287432484589823112771850172065503864713336216335426954183450407337482430399830890146527769886097938300212332555911969094054528412523989403757640649501076741748613912640435461412369222244974784093887022655421039208846501567435105394419943760986832826060399711156478021054740892714389906702000325527430550784793912406714069870474786553998193698170223890186276353813191423861788874683115806290812848319061985727237490499850206521318896827888735272846431828561259846783262355521328413353900948028148237903375577476818283532056667963523461449463636559548855354593478768554186405303960536349026722633621381247795391746737464244920698682570800024962834188845980364107670380327612104377387653826389021313299674410576401989766355078294921335931778877405043328231114397967135029301932321495377800999608555786076541101353849351389949845385930602570873496164990037193300583105603782001638909237294153224780727696951863131798582715915181191504679271103458048392676508501459795690726254632707685146871179399434929519277088641484966153703466561620567221210703885173064302741501978768309435716980909475740496214774009656364010633062659922893837677673278868515679995394719366876776043021213451060729349075400341615335126807912684112501248699073496248546545670401904414002294898733604021013568564852951550726049407557377899748281931689071134238174473119890876020510409050713025041867695019670788336987642155724641868741911369440050451647973120657917944162974205992701307969870767286078325325597466126632193260043408874049081800000271193713002700324646398488840224136215720814259391513710592969590111530281056187037938022231031317430493963860495927079447119792472843023678369961995586131143093342638243966221921206653548422936895645935012667776805199389274956175561339133645962172169709131243413324739715750489351078928579589695685090646761367031256757033363229374885061974394895200985204970366504383556038766017090249097317071559468575941821864814027624618470514404698164801014531989566808273699459149868748273746548236230236744472860285455234839713811693057601080059969507068422616166834792569186190483508508522923017677708505342571637219835928772868085329556845475194289953437670171053063461933889217795771766680457390896031228994678957705465601260457479340436085340681293312617165112269109265710809097659719544941856326342155110281183753904899778289486635828005939414345145863310070662358864660500249889920336486960797449621429083000518390416542714748551268281320872812293318954247082648409120213800091446950290784583978088682305903855718710216792651907761639184443455498261571789258006341390711601165170633980231464935907966830272617879588926783633018185502874189314864542197466515642148159750585020838433307845731786863922933035997145752960689564029544542644211205178532348274936207935110088116629468312852501490775675614300208109049242901027114920406291897633732761745335558235669648889207031340338690935504075769888439721774117185963999536958056895279762692542954386814468816875891677019284467349790826476778746380318926991129670288205571639212666391021970603286862273294280350037890071593349200004122507113045593931742080229676153937964100685655067489710558928436744567616447779815165154061826085916724655724374981552755009142462366775977727598920757567252457359884858733613600411112185256883969407746128296849440281106520893681996989478064010007596651778518766316602184627043594330907477164473496580326310794087931242078185791721073169391181131902696381438205921889562373727892784224712426252228167483665774536371219703389094228252978207661921765384911730219758613829199093494529728511444897161877505671542625445589302146242544828732545259032274814290112401042671150466023857487523425653340212709683055231166597225594900327555600044419123056727530645249142578953135544816635660262460454697799504744011490673869216930130636952699239680894156989334583966192393320919925142138048050079979372666019246201722951109122405560481996999746726044067600563571213821647676129063704742815206282484124994428106673349366274476991779301277811505555114940044411015537534239234654151527985999027247881720353801729408953936577733671819458009595310195947545983949353794565249288938821465731139797141312504365138359133622204217502511916494967607807882298192622700942821762313582508557411008561288062632463559256801516092713953926593885012608686642934673297145618066192921601793778534328866958694821533686796284332149084600600802625348147985921521657198442935072909735608597824582616715687653861509781239741072310089016377990995583329280818293036950876777394876962773514345902997512397062691572065835952887933819466276677704609445257244336255431144479019008042286273910979961438989336090643628050086651237108305884269735753508908264875537603592188917266280316586580003773209360215723575219499140665649366493379545054455312187295795435874353731275925888401124162427004901807702284735022342550169210036967917539624460144992070938970788395828850029492665486679217204324793791490130357646746882079142396388053847746831605665143086752720872240303743841987763458163273343833374135667463081093866715363092678991717958625259299250972901548376261377560272627876815709218312717754767435742329554697135795301733015701551034109703361786651579967629599479500560502382324563085749479144504814347838872577230527471467041970344974790418870084293804159281986948188721570843165338458230758039951159447642328176134669021487429586750929511045397395027771518049328181565562763025678748029655687643746556803181786718256455410453091372256263171348270070374302608203987846159550546941433984151948829435402422673019623814154899044352116774925806788224568372471940793791047303685497534564997769906298544656504122557019037652644750549333746987138718229832634677599355557160630059550902866249866211368689118075047669717095232394600354921660604012598343192669269839058856553788994509305354905780825388957072835051133669706997822089648567702092502197193933856534371241587325598723934221857008810556599985837721993111248211613460417780634749351968868830877829178767665176991377681421052806465950943918971403188857146013906371686486554695595851490399150584748404347009991141348034078591716465815936938945567743708421084861816302466743468896795487721776548532439914572146395277369689990641009537841269483011485990401037271180381093608960794545978575004077017304092499369960444133233681803601318739973750491609251019198563479586096939979719417813414352993571090982803970453917332119153607151159950571963668925006399174512742502119139536608751652322703014704511992716197272958889725974192484135228444764759862426885449002275392582465548960333506121895128066752012978147149591928819055212424302267230059674222661011459320161420737320430503131867834356038134488536846294165890459527248664131242192079273980164781453490461270732014395909978749369938167595648043791919722198929582545320572882982911965723096116483242779425540276268723053425350198219335733680628312436638306612426141662954066810583073892648331792196043616019889012501670545506256169368244021684491873716482225618587278550518824424266798304361486612419585947418547337724126619162803841946211313224070328031902405448517559432343575003599365707874480814820305826040904383573908954697974181244246998407714361032212697344944337366894727135514289506860384124200413774305900424920222853917787905770234956608437912463921920846962795130668871055420687034190469132157157776895092211242606878708437808913026204433065914126361685056518805035591086218427685506087354014513904157263804760338880753406661569414343377547132525506927080595635686241711150957506891305474915528880360994162202998671675847415592638939101826178212491110586112781592043143562736550425415886864373699052058278869129015867202200581988255243990573517756762954237419114329215643195655784966935857230390161957722991101489112455880354882330887238807608302382410862369126528366736372216789148286383296158493476708804831692320119030226675171147905741590168618423283938882229565533252915877644903349503302399494307111168354259708498041750404520381894203137353120103531013196893280313415135580108502952636295556836139448240777661303449619883974034225744257700954868103180601528138233116934811512756834835632098563538336359164542188930892162541638494001001889306378346978456177624225521184882772780227229026281535069681839443514658491609767506672747673241874064800360651737264015604114570780639877790974890357904119773890140703020354695706420466240705636195073166409484097633679022400140428001139091340617469202202296529945426173899490296870382597650834949891263171048375999867409606558322006398113697278515706756755741167717520086045830354134148398266487756879005216554513606803088235320409249624382291511537664972309027308404615578823781594132459123517132883194598586415265788892274171423555227814297831691123188340762123630431574332993892708505648721509552641138842575975235350139865916759892558217662214037950833082177095905443375201149303419879982525090099418676690156578954300033026161471457347274372928412798831090837775368740907188691881575821636194397786476199324432651190039018927222992882718941059064276809621191521054037058216454882074168009236846702955363813499032026193720667845456915028152793011678739043619673831483784367519631988198280994528116165575393559893896294079131519303190223020584752982226851882172659841402364405512249585628832342173669250646793473044008352558637167775766538732244158037427762740044009052946485437890740780489386038571329471291723105368614022831795387042473971728514973685438696168467795381807155338195611407265941297735666846677334974936073717147973054185718569657047813992076566502100560671649854217497746242607431070924740550359445299984452004447150846374606033697821861885418063218619038184314897289782375129967754971147662480760077660108141906451733024746733634546112981020736861692403166700386942710956652525939348534238987442644008902691876057116567417049088883673811456864513982401252781694230198329436286024426112205398738076556904358261370108852263230257055066381024390449920104966816941566233968721035004036018409557038049425334859619434743919590607554495984762111511475865341594326847720315673516895997606093741978430660091172317311797468456366353027724919535028432054004295571435368802975426051548455312419374026998434825241701576753240064186282612401760036804172156737676181512019021450185937064931169789329918200384693273015873386311083736508671373238133820237527571647830168986616851996800860897346917536437382375169329459473419458918620097351141976644785777870973741376422332937807937895007087530977003915889107050279393030590950068249779497018341275554970039603317950940948284074759665507764363256644584186126041532351286914878512818540710857964666201864293831201297472012655128920071279267634193618613243962284088690672553947730224358397766643539381746518668290714809079726764749089559877120681155770655641288996609143181914677784479518825195266144378685202223007370586004637451059191900856766889401867704071904243548610210836792624613014803690521837539454605491179651850808961441920082787348707210758206954690809319580831889234653642937238473468824121072929076077325590368601145986085329277546432236561575092589151824288609881517216102571992993024290948623415481695936817255082668255887284819949693014070614685898447827723219368714425348803818618980453695560467910685859781484253493713864081250558866605074017581660669672044075067904022908875855717892831854224479656622915669551079249198960019557822097986232096312084438836897983883187264266502256423540506541152003347538851049382243379311708159983821403539735927256327970478207835691443892869561671120757784323276623249149572734390575767645562992384525655805590228489279772936103484543072568924028463399424093497868758083129329549503699466658094117150525750320977804149436049747430730440402643486035288268402152407112089694012928576556412296341522652141134943070417990805304374599771385453998602422574868963725885404208560242853003189728761311644224725791987865139313970597985400719414641089555137125831772701453715384828185534813889639078077666751002794309513065536257370229761239649915941312420622298768040750199419798601464555266702088733094733921296357831684994561278523392453072768672889395977244101732636598165986599900155827089508665543115914351270132045833475564956542967940986731447420150039473636355311864517007913307746354481362211878576924402203250992483716230826639263611241114199720778911022105968457554832844221768093169989859379714642071770884013737021083911423297331664379335748105676995859327284141677329383042493826861438731821221947348021673172069995989533588173583734036176292385948512277170101701755597818262741462453403978504663169893645245385171943868690286351511962056244218519442548860688396836431746808879534248946984605732211059566988822430843995310045964374321052695653458445971013230672306012758049615870943582162557946690451992618826510299591529448160596254097667468296919407212711762325834208044119689892118993126948845985989397131069783052479154350195533094878596976316505328511652948553016282686219142894143461381154838507546390056655886462283392065137960603440890822409929241905460405259273257699556105037650606515843895507781317150875549160473985254901341116916550149061184799576790504770888429451756308707687622826545977458505317814715951802283760008011440116273542603644389683968531654279781955960310428370336345448185190981395116970056742065249982789066693788407126204886549858827945683947312878480129119140912485272275554651174913467508916555360519683388399034354503994344498539148784946619844265016179704197153898878645221503574842874304534476732119258874054400211350136819743539014704779227704099680546636690143686075159391447351919148998785163808183090795278732740349254098577114603190516990550638524638549885121881300761880759437340823342185732475127195315488789544072636745716293847775936161557133583320879074455769802181172033546133313714854351751187517452214600480003224989883035317271433239404606605438155276355604200579316818122786002849814501951840665953547535140945830622664811607343416712825221630114525317287423682830167549234150120333833994792366151095026756805733522535406035786859062004114450599806311596748624823588910680488924180823928566791345422082461461773568888415249175211505063235651752626011140900783598127505940866879593512755282575215008886497228996761052040171455460064408504283351233646235192796045096529282533774409529134470431977176371727525184868443649669472486334005547147105544719886962405496618844832918027746964931402326913252139575730176491274277028855494168486948306773684994175671116169245618253666466216931852518019100378869642259877522535771801769435364130986894887705821088049165976784039039748876636956141527681772137709696394695185075691966907773269053769054477570429940009154751631989403426902500636939623068082196529559053580300375577945451918017868963643806988245646664814086102545977675071176711299503164730443440157917142063450034293069083826033687899313734514460112297831369142073448246596973466307310719171786966238210673246561082379712118487196315604605903525012925627941741848304807581314007716914826297654879362963740122355532767522955026375010591508048668362268546117359010632119471487524714562544666616832822246269851217905028846324842525168183792431884608326010986755721776836895278623947068661264433725826006950342494693242513929806770847088733947033382911370456316901801304563387351348973466231134226627376654146553696714130224061468044225653987359686272968121731832852424671160525518085784033780504639700409511592518865448649323971285104998398238971256952719920119043710214577486155757267976062716286564830108194237228261760644819403048679375869437892122278268886207584756565291606830381551773485910872028460259054042156712393105850217793368065212859680365621056292811115671692667370309284266148374879270828793989308963224029478496124693466364027309665996678764068281691983071704573943626683190357845667254339162663624164745337193890011001514415018990625078396115886802145587995195178977822541144238089346576797199976265254995364777242597811063589826351743452057080374350534621475232008357934216185452129184881701890667490658714666471759433782084713754764216259631479665928895724791793320875129136125345596426270219673693917982675847466984073132147882540107239644498884878808377679313995947556692830022709294278640369629379650933945391459817905317411586091051662928913129298435558411699090924718688527183019528018131737126577450533335516811687708523363775807891469337831463392302450057637372526807791370721876458931989253896358844772511088399836840106643724279011567844410886398101106652858155126875364992423427804312455013489863508678452335954720351442270189621379633147535478534536461050902513935315449877902721841308018403610005090587247985266659920211136081019289155922924003866320497035528264973241444371174901757247493459011151205132671186235468245470125491620404376926272737940751801744193980002480523732471615658886671757385211982201397958521038551816691177024631664973368570629329866238340351614789891228628268702087922289100645672949341686077832784620968431845089267434379087906354967129769524195572739288477691386082021443672061285118647180792686542417098572010996037177530547665321462522155718770865722852052379682679668254372145214063904739691941510791825862986412435884528511262715142948624887224204573284490607196070808515884407951758334198726269993745838362590224886603655856489352057008293087306281946874565756075046408659464241170300870517908108199726801404643455820337997030302596611711506274958614642494642987397832077872333793430605853233483685000423216364557666438129961851761787746793485625548405049213069801440492255491320992710460115363351627600854319166317094985799414767217908111646628975195886517395974102917584522331495473787087856310659852297528737708899044102622952058617718464667141916066562214495286953562734751524178251749741489799004342241078757286954512263210750437326692413501751617933181294388101683495528399887919755959153450467658885983426493565041530621465866245278601520046943922541509363365607537655958521665339328286152986921319969010782228086288913011606114854222507539025632427922249410519851205744165350871033273901318509645875924611811236150531406117822707927174195760161163829100251397199706165787451246675033227811585445003605074619461567717055986867916247777933186746384425837232867828033723177098188961700104718086074907063072793322562061655134335746495622873266429527753651924621301754892727031069519894361085601033458084798954981738784374791655536569931475733930075260786964122524359354758088988038510266180799381516572189329631630523925699429182048155983539823337901571108675184792560093503564436074479147593351822867648081224379282311724100214373514138386734440205063759605163098073901919435660187142187358361750541411282484215731695825496833586098061239823508068293941379350658568634096190268189272091742328864638578083263363581841933747039883103029669204868167507572334092466236438442778372510192149114578652836766360425484122996631680955252860464351508393866581844527012291446709175413409358533575085224038612701308773263285026814176322531121983044652903483779389279455970337382815128078492937057514009367689600721812062732026050205593669719501850571005493620499520245452596769111200128231269181770693607374054762582083471540246604141359803629201739038642131931759536611900825831397271531705846539666708993251442851541256924546376478221610350809034756550335857100751064597841201684698300294334428697485640379624177133485349296356999295853977997192028219614762289142025846140084451684281726319097142807635933090539862951469493478061952713286827392453122989668373448484806245317428527349385535542825009235116862344177798908663396389479004123220527513913340232354583434353775092543966672238825801077960939643024774998446662019512777154544972605183831380177138726602395121329893009174614526585590712228855514930881252883736101364693734519645427788438660968390307720870073350197816634919767395977668532170592765668119256037561178290012618947032938646528902685843397953650687562472066741010119191224700578174033850025830132616957841713579389580530481268517279723735082412580641609340230431003187759498480748894452913223519862516490926517473724726552914876401483270770211629912954976142742400716047085929829623611592756077217840714542879208523398916923558441342136521398246942193203423469372088261078364237056625570239384041250219485643026112922832692185208262600357791324467035134139258281287264794447228843046248803527214239150746671954395636967158369137315632619739051653881958912094561005131694547062130271229906856679494168018956770744136025257425800934479330106745859333335557029288955834337904456052987120281656864460884178423811444589693061612351244612091251921628564656759374049610189712943175776704138253869658673229303885548818819021194053770710374956548382147876755565558545656736828800871002509470441146276574672618165972196646426859418588507334753850138904593529286874308620523200658835855021711093798123581968220051040215630608379698554281248531365849696684843502133062621157558621957509775128393316631688621800435348332418671292931630536487209098817179240611159585603469711712606000298993903224919874114735549510848413623861111290043085821478368682266137334638105022813184277302125226917587918218253532329801489968500706673108798841617527211554578357094284970529681295778402746069614574585162726509667678158479596944633058343738555652451299031022833886039450653004869627691514879747288687495412545412311661218833229806921086702313354226534904427747917311250749716713497136459339018330139772399417481591352012804683760665817977351101620219425176374794560452646629310976348423849315617150909630809335651749989328945935622393889780978246664390077263447947197700946342367131202303077099459389952546315598618420974772180804409152544163721985992646912893270117446057288811358806936203133552698027835720295304211890692790892354388745009429195548425827283000761938284321169322800348648279397420696354220286104320522624401495975295773500727136327566424109560566625691159319142928156152205166841297985631535309431424658637423399031234994712849517795991798577777951066001315856766454506579110390604090528325644958276941442586645855239286514088474975305927624725237772234594590790766390036245871409049770218719381222170854402524679256439099258629490917357354141983585385215610009684586103911090692175548855074340889489210075506743642399456758750857781655848965510841231717627947118241842832004006542709362684128931284041039704505091455579415044740097791894230913267534047286142912534010646588678631585253796127314226585947566974707984050356603034979282741179917068624589781479456782167668278919294145440603011220254278364208154773533767580649350119224734258609216994291006681420791918736509969723224767055421443990085299890331247875063605090558723934909014480773472718588194517794715826822644985464840230629356349533602804155955587427980827809612522578378441776930324814489163615018212429835154175597868243447770363467818612330788372375687711694322477022174164075741827730114491961710974270399196459830799913285399161765339882947464816343406782864972058710308580995066955521365665916977637652226857577280900937782185885391120746281453520317850173979411995928122225844098882613337307565526318135366107971804557951580452371766386612733533420235771014192707038662800402025806135810373069677891976412106253472092185679154847398790494453126739762962832244205532879977365707394199297639138880639842471819038698333647968354947246746980858151937430132726548631909497483362592365981792374615496555300177359166105338107986698752496140445755357834829507519923821070660838315397031440695518300578294552330224057834249280359899696278334263173238272759261582194858255495913466325391823097761816699614124446982083038107135520397278924806539196982657534401214950036966776470765773732459576785450856180631631277010461870821388758995373049981516864447223790726578810102505323492176328798323249049908855751145993028909426088068138415654147104626845855291162156253329581483219139979965361893031873634250391221137312137133296374610489839625972814436029689054118178824882739666750926119175917164880882113758033053713732046605521070145682245835122696009649924188314082419382266937113635692596242625771060568536363063964094164979447933757411466936255693778439792493689465355834853754607518435492594006392995931955348846558145099106898001161377647747906726957149308326528327137502404928175654035794380632770988778857838500474725249196152713023962959174318060631090455595735039070440366264162546430955602102666202981991507847902703273585535700074359084213731857160260178460900495493253191094709695150636487559160699176781081207851861996359500223599537169106884813437904541859829624387089170935803180474749422177768750043011279090748750199983485100018713911244412811075255095088021621380086104110165339252088592723538735367708988793247604905374891242429626414688891654423200219857423452969629548511896657284157989611344632712451398529877108131865330184972148889665963726593119518144864471734415416667803123599716202360867101794865306169358305685718540827536622070601270915124746692357932418865831536731630814439582862669084608557008142676717384536588318145910728702625859834693509513668676080913535013037534987729146778611878491346235267438492744364077141542828085631734302149049842300896930513565310816566341881436189561560338276801996859879187565422304936091560259480626244285044487616496461346121429577030227094524883796139035089349801253623422024692035062095061455509977941911441409582128747882626305507339722796774899962547159501844275381292220045136536002569996102106460600851692537378898669726185475994602967623492461518371414196060037140014944958195168983925417808261604743686206019976659224793171905003269413964981767539927475135961584318190148366512234747117477980514672964940731739701033775280242969940477717891212172665043929952034840384156831859559313682695337511735230468159425339112791456327937835602378247644555999694345870878766227824930384477883108113023836664139745043749111773782535988105832054097752810122725098327940754998887551997050123170280868784574192225279521516912114877693518836347697558796534385233498965460890771194379976784087848647521688561807834376172197723242913590035950125267775746787981933369301558814935689488027675973134352274530646831587121218785317923430029049488183140717745512645796221330218847011679289495432239455399358999553134919006490757867923638659456954428089025197669992278525191532903014582427137791865785593601169617115556728758028649823409559647649166824140526528864937292676489105267318274382552545014716140965074793680144186710975445430932619248455286215773616259294491425392803790484729408510413771916376769717462069236490492394219402521533761815981946596279963503769463082224030262781305203931909828675398174677027848410364831303706100255744605711908141364913271534333331093387013848809697097060813934191431646868606692090975165569524684354502298535389506319810617375787391922643074988138692678093003732212611965847723720191532603441082396025271047280344899053643711576079100678206722826204544515937125063256986071919028022380834972826134437457679754413000361545826657122410919436715335464869360065907289199667762057819297097501601708400953483823013785864961105592323632450535226888532366924866331266583420277192769155860047301304771382207669744581886312487839498277018395874320454825826797641147709674862341257567091195408369477567584343266725522638197450512553287998321317447257433880796573401200203624097797513957385824659486867195772551145535452688818976469414656430482400174726905471818655680390906928574099487116089839429574487910581137024223633276178028871471583334428127399564710402352557836866643885821789243200392593493847073967663302526550139175322995094083620821918610872393386212544882953844399720962981574328653342910060812688152166577545036225172445872928993036104496141671430634478855490150804396681256140967559435045796875812140961650367948074648850814109291538966674553587223355661864607733912855508180308390136263517102065147803854142212661904909982208103214632862470442136222547710140052592598394816557158195358609123107043514789353212973328420696733082257833292053378991917743946550116993467330719103869908999572273400691206209853401436365384554179335060487733648966492793474189834269675716210450290195311458774703254746368908793106338606746184403760334073760176671969113965862350825597145378907540859809204291996502794226439488787605026856554852831607553908850639662125547307074282196401436070218123569118817737213906279276798446649133532898034372959677862742128147237349403320914625681899425388498520430763019264415653227552731043145101649633277451796670322920372780602168848487972971199199269728456988691147202338352190492252600866882349890847643690164281573068458920228452655902533980429276253060878575973626105663742034037240723493204784729696669972164495733666580902954422409075257734346216323932602450341706293930309734963715150916990265170721572351595130595061402802104398030386575808280294780284281876073496731241574828513120024200129703415059153014666865543546020429782536467058209241011879060830060456758197365485689125703309214361079011881400716577168259132361382218075587197444589302659511693821712349958537331817407297349918176209827327621533663135023520843069356046250464106387856259721907348703629416733591444326463889494833823394548899130879797824896185729550644293442478608429971410092214810152058536207986708498294078862329459311490161290122865255237895831798871083528000326646744056632816585156485617701130972057205238960774789492658361759322229781469943277600893079478191194901162859242617365923105217607021219664226092782699443454299558060431049453300538875381039465644750241585345283613683791320993646992487418985287846580079566377558923115232069782376260720096075406107037283824622246222916921069726583264906271450407304972174213899000368034310803387260396497013437863872303216852206018556971859902677519109871471275094787847523732205400192845962494183485296729666197854381837192947689807757394999433598996234683141615328356064180221795308427523817246700079368283896254249021053808385306072827180042109029583190382031829794396236210470279336132838265063630805144755033704047783428929013688802931455839036599346413844793725453364397590616343587528566137847226165559824578301513089742985326300006966990234136339097436785241100563322910713908603684878594704821451851257104012752412668535304536205927029131364376569218612417904153068020773333531940387369693612515545326936911828966452553952310537331279372658004349616323498279770520627337330933353445263572750327935490486794295642593791921916911363894278010413157191459228030885311045777161256040506840611686746599569652283940511290811617227461656380000968961299928291792150840869914987470447400852560224430392898861843061906336205006547674706691302619934992501901794643439332885844774730885866821307506072375466676193711551323953510475002245649366634457447205469825222210155436527032743632102015349784347003129977996098481460968273559164867715228543438934440356167726666516009764487508247837732496688712206147604738981753785825510016484040711449290252253001265864627075301795734178746424660898143287319398058112481383894231377785490008561256703555952447400661549119245079245581500051681125329224300001300165362197821531219282392811206986465611921305691486541545723132919029415260405327950464332318542339408499539334017228883250685544650691595041706808773161095626283757324909447303986530612022031576109789119670063612798274724579500072424415220577864195242919674940268582826212996030211676716807866677277490615406588204786543800676483149972517657441743638563151041993901807404813503239078557251782085619885952858244469669745982909028095906008870980483740280281642399709272562255020037809417762125274878896020599844994778990137442789925627770715425737322209116752233294956152373904731409238924928692457582370160225215973814411334232544195965544751236207560528051281541120838763694129081122466023200255007054406967166334473377687866780703883564581258898283665369426787837755696774703649173903512934770832717697415085212897615327752777366246926868217785050011351752222350610388877823535469572845708006891272729993797754224545248413559616963323038430308471052137206981135020218600848719651931348407185884390519012712900475400213333177127600881226621812602693256745608509720744244865420973087728526100122087752641125019461571028886888501858062799788705140218853617835961345899352767402583421981229319087693189505691620427285250482314060675869808044325013222546953228182316009350293736405342975450397820109674501423702780156676518729269337324019103625787500903665966078502463520769112251721840758991614467098246818786535777672264080499818219825353261771208117433186869903126505118767354564869807596797766873221860202362746051975308363155819339889027557235664650446500505503487354175531543902133495595911431928732441920404740997312336368291353945504783873076555356995333314835287676673581653224494590856149138545094540755383273376304665914734876476990458610266818651477482005043508855601712906826900271675349871434250437142861311388419691232354189388299659257349815296809059075980299134769467989418114068427620302308799050654087038856805381122923088236436272341291284251471858059747083728735444671897986950345668074048033625847883582732823822402390052248650016554668828125939419434862957324172256472525329598000688892793639213930007790919353966870000489947530164643327069198182768558259364102448138172953888326179609799891938123384917295282276443015407597479740260136647479260744763739755313152175823771161355300770194908046285296610294004881423912430752276752250665999517857183044497211398647104911137408688485925875043672914514626547797086432644490945968337666289132821549668357820033563797599292259186082368230554122384193903852988239957260302699438143056498406729247373474864058916420378164667225471388004950844609565384027869554844917390413825063194083611367255140203013832343812004713485401691608683165467749806413465114579740432417827290251398895536864413604124769909909644116674665868683616301785257097274777326999613839983789668347217542730823517377283784624634324421836116607659909684493147047653413430054532840994163748326409036078138077804990980997460937333904384577683374154820906932794589136032884411987807295191086583445495337144339697140444988797586125838355140846712314825291174913696596444285973836951401853979220821446632930957451842709739485394285306567739134099679923372192703516035134589180940352490699663387156954635509348561540665619852458211338614636238685120434388740309385676239023938728930112012515934670532216526476106023785535135163342179959474123023866411109745926642024871185005790805147215613387116132978628841403367766954704532149239914583111634249304724824397597705291736880025664050958071975302678103679140474161182273837862065473380043366097222550852946359806670308595272698642324932200760788671382780789830856901813615678409736335013871710221461516479181533449852257880725956953190673736730999756611316517666462693405948428592276233029726967427295473766699434997174794966583756792915265961309994338266514332929815640697359663589130293578164614299449431658964568453277582440213928420699671721083871846303503992350673823283691654314423355987287723542053495174368238443820476027800854766750513704034612827302729798921103487027787664291030955606864552479380905468558574378976922232664945991188305236779895362961259066180382034378984405181299100719425666218144302921598326177973532025922263676264897298561305394708109321241173294600105640825643620668070457874528687462593767650679346296098857577506383490194969278863250891536466906242679252264260866440144422296993148483897032167706867826412351888175472016146255086064950505937148446692802244191220488153596033520931179289454651118896821540778892436792714808681470218411007286510192867848193991031263832945497413150521979422144638585994423631637673536985306178104389548126458870249883168133382259866434474678927113507022693957946484631187136001769535296779999556476126018751867809866984556319822190978463677430509119865310123749830573004174874222919021816857935756255465872091970315278565898345794608390915686399328733168720705328639425354787583343015700415163155644123520873897040198537297213332570592916576976943752696297271562122220565913819468272708063698404674117686895402635036105913748392008139660462028882024608398917948733698338808201389899143788681642094951414263297243003483825438776709425453296312209957364433841993788110096060152144377654289448861583470666596581760320623654087851604851188641134677535620366749595160826246651449221114560090093994295767732435735137679207341681554996408980248648702702789377283868634640669326766091515205199802330294040856646689442817611195295722280049983037409993342810605590999451439274575493440099697211199747136988617095817473713511010866060213962238523402182703238559778489841428959542839020560752532916792753181509279303985571264159857783674934951968074570566050745882388955859436901266219368896484320985658752476511231218400283621740285922488117630829228566489228732219347584686792429838936362080670847971254841659809050124144227013340342710007116254596853130014819721916852421678784799938514467187164837786888924262272118028000710308861419644660411765131907253474232210684092256335425658780405101150502964030548898918366734617553158049476231705774889723644751293585387547290719362518005931321090422122262847772794244536942719741359905448781132070017265460889447251985577202464618645600663235933317146360960663809893907101468488034270657283457309522932249308051932701609321550809121927679567508905863581810358399235309166459308894146304278235000705770947714305131745205537309882025473188513447767289011134654021241919482765445593778029727432241000160442149266778890112076306438905296949823941822598604486699906711397897239274870610799367596724706705961708463088060528458666698207908437520422359859186641253969940003007127303142649537523247041477089438747161019250281609871636082860637318245019654678950215110789678504199207854952216384995272428020374884047564359180419927393094327999430920690852298652661243344821455979355563891829990239794699351733036943821254139763371568850402811769404381080877172509594747316509254090860160792364118189741541848106703014402937159983273985710496435063211328195612579573954851144909476236838913956315893000683633373548453623233196990892952378989212576166089669230041088097368244698911274281731479598416442855731661346402860755714821558247498710692090371490945705680083893593533975600828750382105086998788923215406567303247547478062740566361677465785874665258371904899359095400789191140113895018074862296438121354635923158835125493761030639083286620088371224310375537469376076828041082306783271853757814699058691527516608056075772233473071317379363847935932161982673035772035285738372479684656419480957505028173195999210267689943195163077564834069704832050555294035163457309458498519998113985721938516508772057435952055932303017166230401467052867791269580640567239839776989742056379818803677306711163276969309713272472829961935635210641695114340763171539425472869751995154287318685789170523390498804756784988355823852302886131406965132299616627944420067344436814064960493700728318334029621886907072620244224233703731041344335695340289224431614532462318083255239051658792512243249020353114407561688583753570438078438086901403090814242616839642388224705347880636675105286705275054110580467918036940469962202654567926825149064411693392734183152848176567849016909039138831569941092757571638213048845637581883598414423079179577103970270475690663038935155366719082283785481977785130571800955901404876021282555640722182649317121079731435445707121707168102272934146225761851548172716002401006340270161460083726896347955629634273263605035208067930365649037761641102852841481124926641005391912599819110714313437264444384221647463611974772117838590116455416935849227045446981589750742175782931379914897418927960766570719317498729456281638923944642249209561160578412194086506426734047404938305862617766467426826745137896922832308437261569200502940899604690719341932855272709744971712293558974142811543608406997253224787633448162496612416812699023374720668761569803037870573972882876726270026942597817705463243745852507350131577436610521194007695351369690962670295714229955148956391918582205148829768197141291215220463069848167165550345552437393446706192528681486034296421539887109291447055325601488000103095141797372155514268938100094118556957230776948151310690477700545897948717617007972459944768229300475877246447185533487875340540464847339671849360053704394294055085215765336386846934146131288445369242308283770675928494515468346906773116144330716994958413440410448056722952824775286392998635367799013143630838307718268218578229223494821300344768198748760434053943710890843309962845862650646885180126178606445939707842238857826183658554250180592212858618901220034933636091802864152241872390020171239414813819103441072490435838050640872418866603608468989718780362091340423727657288139663928832589852198523899351184954464757252760252172122832917910394709945551673056274359523028092344586831105391439700654007748830606125416898702228555817605973090958707818411207022304341590186118272597783148798249002681330282726360948971744577569171241764072451540852886640833565274380956179033392157957044609705494460302972149344271872280673148043733255948022104579126584556305984687014327471949451726290287075800708791311948448082738346255132472581016218092440741737286668305192697679261075801716556033325236194597285272864319969931390101822303306094392795262705965203735696527928887300423302265043550065375144795933152202773285140121958553103766071152820484036527627706062604534853503472842175069564059559395956223474751588474780154301062978700137865223421334656768360477949699943484358669096935506371549995245353636292438987722764552152025124831330903905290919651976402915511558154797607805126939099666523067122492451852254103505560668623468590927812653238675367648780610939476490612173454133030301188813746628544122661143953887174288572725106341617329304943387710021122857949067097023110468958803366229404008383223817827826866884409984822289728112180341297704571748719192499413137468678519945082649236166926675862729473063587723993418859832468311653148313084528264079997983429426386913674575161884662141808834891550719055991297452365221519938687985574260924953223792997121080294451046258333688788857279379714882280865812645704716629970697599995337110087146796250842321671204370549445674254258622070718984973486175367700478437851453779869026755960428710840973181089566649778002853262997202831938909400264009585401683190952134546277397849692472550533315990726460134963326979144194690966692161946865085674400548966230186982574609029114630532005849813788130550213929509700718412408995582863098227471361016126904148431877879136089288884527250814271947832320695258848453327581611213533456724217076281724015129677257940754619877349714345201688347509298152671460173047882019792099625088222452842687514018315842572500032083689536732450795820566039652040854521720321177637937627413461186895841989702550988610226067607541734286564132276155267862198426563777042514177380888335608156724313303391297073639278504828610035827512951630283793491079353553364514382209094864650449805972889445253714332067625796489425919971007427304001057674191645460467847931126857106868099733827262800260534345535630949398944139463093271768904313555378687115902422326323652406989624877084191256941919308134966321000919805018287473326722138929649200952221093457545457707554504173836783525244975154901190868141640462745349296558299792456236010470707232607469137618781172155789226585435473651119971660353919175093686268567253634255985729098297967864595369865100448916533091898693649452747088696356373086365275156382183596807699400004210180855343255009256343967653422720892913853510086114979820850991497077753329699133336135389684571989133581774353032250710823682087617747629869106181976599034233374542847935576784560063015162684981233916502122722368589436736691441900229127597564230234609953418019263673487284704126807315108403509255037041340138338713497759266617426094340265417550082587160390718538921283309769549362653294264112832679510554076790067589792438151759241570589554109758707263787167005128909292421531995129417155215994073979346666223839105887420508960475061067611544849296418600416884104438587078396973958575360226756713674653921393302834328844103975680961370839526852998832566298205460561115413738418771576006430123606575502650084974954909106036237956523697615526677549046161237380260931202148428927271374663622396742603809607963285389117775970428680402649810395797382010595756671564453644542881845750944413116088131102047394703969981051747783098639702836690774450981280288219357340996273834685195489243841440182339678976420543841867192923421299613488318360056622041198813325298356459319944985150137431209565659512346438150370741746133682259698377997181965557249382798916865763993444454904346398911562563673626872854992098889356450216629987233175933214644852355420974506295124480064845114075027457678364381303420387246950646553567490851977353021265193895246520402835502521814596605607005693535563468730979258734579072464091431074403907813967165074448918631681227574107115895805249726574279152176417811095037638746767761578540353587273042122467979680354665628197230078417526174903708530027861754959150514100208311393931297782019854935461113671276843976634524664009528725820857908911337631970460135283108751308478030147805271622220674074683036843753864865886426797960971009587621163453267337272980476962848662626249546688380444528572086267309643770601182182921787090908265966375424902545926899492825721601963242668838545009454303104815444223337229900357286696280721418338024232566576147212872041875178183769208546438340628552041470156793195473715230915554037190943498148741958265969658436377720454518074744277196840937529527031298723967642329353831612603680815299319853655682327185990059332080648564580392836112707680683625022734647066527609794628503237107775748174551415714181275427991945082529753556486463548634899992484050678006718649631955455668773199019149441143737470493186072562657604802106698073619878348053210836641988717716751113938119582893188818241508733514992140833500503738527091222882310031538032826090289058145020673477909919591324604639892502164702374317052969883956107606939475201668142755184661974201101987681657838941390535973311069190216717860814678768370715552045014912193932199789846315656879220639087799461883562824936087296342901008823166949398754861028431841194949074682555990306979996656441866120370085641016321799056178946559235366623673625629932026990861104987141646593340638004998941331207734740822452053693678655817372797903875467160323565549350186504785515500900976287970605561510665350267658986554817549138749837504582952717837246899781283791804410408393321532576397086537677428498723117824829109265458855274177003411028010112981526631970911385050636950789271311994348658998133748539364218136432929778319809467014958178213551798253344756326344705251944069239996738660664412092482832557078238359996328046356013353632145807465212370731614464274077949963488038086919038791136025980601716789165876198416944683923792529751423924896078171138729236311998468449225460229639193617692487437885822934588249318784004959699407497028343785365339817406458680693787644067088320117043659061802732481429475466945087444096880818389352838605227100761591624548461390944302161837122842804861856579536455849794162340844547056333873674696259698898652519703730493984758373161782740349311138439159474810896519537568612303475626681496013652975899726866467180978207376493394133131811356871406747444388649194542301586508687418593422541434057285866456015284314355108410438957529372312054474203018338415969679062595322777436046982738762702979162783706203658752424950226344536984325179402585722263257945472685667739153671744665077158264978852771616816109679394157030961497023522329351361572005058647468016465648073531165959349523237792542893332784173761355272477360859870502695091775222153944930491530367439829177264411721614466636167538316777311561220584545850643933450312653962859033959008802022196331124804054717024621107925798506897201246278459240024526733473199864890176787207995445184323327091096274875795244516800685600844253816695222224557831856322209220952129296360888835147799274130718984803834723819628851177898120135167811250925856279404082445496883758666816154181908094849028247346139283447582337391049329317887150931601085537681420072354409501902517391742425357741016338342353928558746393162036801382762426716023683739577500753406729533877708430841263829853304063863962878279238826054367268854545488355752710629994293498748504605146284740246524476747685724924624357406912660495375946539934279873037199408713300372294673566595391368794282232422752582845237280056509297753346340003425471286322106505779276413661227303786149765268332521084346674477419033239653418574846477032099995799082552406320155548338028362100813263029994680145738066331396805993734153310585016493316849043293927479318070620265375479435341523892117026751394906566381141399899360648048080012229601487217610452656830983928900658642907917106103605142121576658586054657091839949825290372850965459494532534144312505256403235469936263279445044975596629719446509557103485463028708225752942837816270491988401104695884240296327189888951404366790231342058678982414038867757096902732995058685819155358726774754025585835502970466308361368694575735150756690509133495240934019733125556266932525068043472374639117084132058002688781892284165043795398650894851558023220092694045763684867078354515801553124250115501400780505721477463441019151661210846171786408096635363056816410218541248203292494408230053349724452411548508006641899675419295019692216900792714151171455917857768141228116773486227874572197658448682525637137137483799514425024140218794423760366826046428259736266642315848539388571657549203159296800504160323989456526380875243359875517162394850628073697809389020366098149314698409476429207961403442164028000734683443862139975913093162090016627968737493548089250839524495822104194769215435867210923066334357897407646353563178850200559790537530056857904328017378219217288948253218606004410840316677553756349572964260974076974190216254189518773252282366291775444374539529745473892859961615936909717190588451814740536700592259821696008625349782129241625373835436651750750886157691065656727881159583153064574341649622244750516823794059115118651387987204288949052991734546629048897283384315391485759028472378950741646182700621321152106099359677827044377757279938825337459947209343174049172665274373623723715670708074818203406435409268193822914383242986704008957515510714114119286196831807844073952180525474611969073398053998277955062746187621670211909491681909620997085732649814516271989368681535329242152016961994934338934667250130635698882838349068010126318311084399256068901785529414306489570290888526291509993573416725210899699863436738425765449374603860289533220532006608671659536862337226205607387277991641957032268460471483999504032085640838185825360858376229950803629204834951203211033108237906640439660399069556937220572483048054739762423001834643671028561146273488080211126912877585440371420414830047614554590208101229607867803397160737644283048134623393281663799223602211088755673106051231099166566287516923924527091708348727105119105122394674003461253174251379334541126890876105904999656967725011262618434685497860508991011214766852709122171821613179994717917520964534249790332372040596687546125318074916122876659078622130637302716044651711969479659190442968331478898310265819717315395339777838934882854734919268808449571928401880952484385995205715776117612110475906875900653358306438923381976634861456775772773030358547897248460828525911187902964808400138991182442227415645808838416542530101682412318053011337016833840064207266870221508609023494364516510456226870144155933905091287064677639438467171838357468728749952222119453797821528309978356836987861830760559401884362298472279253359966223059627756264661216574028785737917864923566298432421570888919422839219664363435271687695676950726328391545019616352562526374118497980695005224680693097640831250655232507443565186521776775089266161519359062487968278534470614189383906086155346175995513121390931330258984809369931702387842716632836974214342874728447328178324833621457549766295599130689919604667017829555271192398412380191002851446166676192373940531056969674955535833792667512910616981161598779023843151764612756394065439874930793700932954333691181275290714785836151959339508980972317656805121543581457232463773948135691290619514223562610627991994888772485122459672871235750497994512686546104691024435523756381971798152275490752353426101343251175768749472379556039453510158133897722308436415400127759983202617456467240257118967928721651954445484311232332705835654132102064229347160951290081045531301277960991417735582144289861270968281535600236496947755244956711359065400559972316033916111744217522116769440893469404378571847960077223047524651440555930374128706294440012125957482403291827414158440428969197553097119684046482843882654030246491992273397353004371627556992343150587535637770185167941345930346789990172657504974839805323635100712403377467224792036608938779723182273340402277710841363064790749807537414766090363071523857598623129552367597278592273266634946193947462302448973459903907072695831160826537982772803407644367096646568910246144972251913709149092602433736385824271965831869659458627731989189768097126951149837626706803477872197406420065251510229675527428142118817755776294764185950262472117969536622793081407630424890440789620885929303186628501564214514952696886652878650925729437222152893545673844901290201949405333454809634788515685474180905750244899432801516702569650023604672956596343600757081707330086316615468755406626796648438479676185056254779311340352318778283674429156313037261278251400045349182706439046631224318891579939065841130105735340246965499821863538269157085175908246706451894891794435545544583735898982615809193720732762552091679072189196986367830458264547245114097433182415296880772468350225139040229812835515936156244048019076368509223228390168222269774797122632268093161545602747914181038958054710050998661065059224486859252164804360314495670666492362068544637750315492075908152612069487743649096792063346746215012802763875098387929530321148391929741255454036619543893460254585642689586504004934798308567036394940631374708180909971554838479235650811245314852033407050689937047110451833957269687303618234055652710234806684187614505132770946499715351524774317283293650013196511572173494165859613521494314858054346796851995351888914470667953741116383699952884167599153259224579257334072244670605108103816243418701627222770975549042855057966658719585040038221383837678575594266309690019108565663143598888609450210887420652230577649245442302850601388838676025044791896548553817680718973549927966617734390424994467234417526068004505145372372002614824946069904031775505000044280056578749531072054070852948321053905307770624724871241869431634614340384663082780597510099706350885797170021562615048455721550677728344668190222871107806124026160510480663692044631077457487254813977014540692430833792264456318397523993846505287912058974839623150972509116556991966089929709113382464197417560548558960582859447739533605366364785738634126360540193280776215786039370172466275509060152710731295246631378594324593131714506458915950087524216103546130643065133336425231377559681796744293684506802490110822854193430662343987973451967906433284016144246191377072579851497239908767354782929757942555125372131653556141860597336820290192469892884094511470986312280421180232388941357077837779165882387478269264967646223945748813333542121344175237588068174197782328256565277312241332261395476366520938182887540816140389473919783785963054219643396257066198590389996352897272632140258530341596932055851563006304847358089706533501244085636640475705533120488749307118132469814864513892800509306268437602043193882348357090570006167456740572986915981968660978314821524428248196098182242377371199843709115542367757753985062088171442259355300847027483006879208004929159720994977024022128053800981482527793613383336065735545850738379311298244151160033159109569331823899952185604978218735060807336191719065203816347621814166361513952442754444323534163771536467755768814866980791990619042751213019181774406328578175039058623749915875147116972409903675338855281879595090074166669107601300590532172787610978973545677026841587599513753692828022904235703425728414165863132863286588105984557245108561950243208442156037209280785009770202085347672414005188906662560020548668543809703274322146605682038928218914659171575661005995976203036644059614700304763259576856113017259132705854000826307285312414441019079124612175547355566261594071470705929436107073306978003342260606009263344153468592931723583669876992745010449824478487121374544457009348691691740158189720217648977294693610308834322739846286698233304058292105843540843516735225529021157073309933648253463355422926813485644814692216090965128818788786834895077314652770293443637690054534326730598735799773270393260775342664602109570725649666161085415140840499440911355802127939639277841742416597707490499079415318605214235844149946583402301704153459482192160557645068055821665524930501982909974972976945736367963522608263003394900869582272310282005002464705705518429463507876877785775277085617288004196517632294409544059393053262527805771179160071539439621671488598223342460109400999096111777060329298245542834923125532941236400863385943925566188449654938909720107075714650938278960131099515439291252803759211635652225073106767832516184668298045584357409478926036621450742195215834625826212287913746996268326978669949232072311587152583297361897709270794403281423543780274310378821752373295195603491604913041778115743331056243803841446388698972336853225574483317310955872025321906608935335777717465142602598490359081659393612357422171101742617088452099424765647495689606758509398266059978301209290270557348780142026331533162387193790590334665291924292315108882505789749229419441459740872735185509001903647528424984111510259114620807652304899542519541763197198898429606197239017789332727212866069818594219519185833336781963321476684354741198810917091977621388503778420191269982065886202513466589029916415568450452542785179357693100946415854791360173502412531800617766245606432033788636686491642991100058974175942392012715002350963102860606304800626230357041789910926486993648999071047612989699809738208478755528984514842694142696930713413574393467052956721574563726224739901224630387900210686518103438716019542872399714475889536955132094520830629525281112796256115546197686804442081885454808081203765003760573606656938200186825854652858813329344775194100625040626728026124256208603509510438879335859694710391103493504286210450254564791975336860735635359332429854102974442395881884127984640652530293353249069853291983897601435392120956115111432635059162083168869848538642706120846336650030954946082169944633327500341446733939023155428522382973000572192954426068320031058424913584757420683648139546116427670644372087521796483678123491693900725877888746477694426657219740480323214772344108952429919405173792407009856270777716582384775094604157786614431266726826140025558317443315600447305208089109132863518466594128834116223580131831427639079935884911371510413688997663354670282801958494111190885502418456317193322406514935489167480046673280592152582829105615190131752049198669517860827731942517370849653243366843550012726216466272163013579416617933523092994700075840093145287180227541303260047011050713960033659937282076793874364652981966102034114316205314121941414568565210154226423362347820010945503673876781391501852711987008761641927168839022318265282235981380104468697735680772510659721065209113160706552178359841074451840803283079301099510998990351740408656608101254376628201538518633579451670834693087602812857386996155983051071272817323318631276537949662348521834205587334465909288742929357880878820439249653239690606236223941752138170835988395048814465093976375130975959460876008385404270337010221120805920683236750562577614650687679794233126643418141187324436182862213970469803675808607171435218289149046612819193382677766826407265637310940084245666431248408289612558247602351101090889583146141379503831582573040131250530140822143463550779979591586992961332721643323296170362467320831715148765131420361417003336194413327355018459054698467732958184091015388255364253658232628607512743245985838026886045672330340583633679985405918012783187485719123164655901641335488553684561497186865774179477477430198065371413125419741000024206401367944840456720011482652841309458690790480969819171924837279094304774032447526939558007691247943198670813462272571938167306573995567660350810493385303671436436820051201829143131098487631876018895858031660068035224881231398411242924834676213741255506713534319201879245006970825428209036634471176086304774137665198537653750781842072792129467172061459711100350362854062824330126740938448545560780101960415531404735300836646469004845230661183827133202676407209426907171029433537902374774054612868193006838363564458997072087948825886497282702664428184490220667096526016979818282739572291599964834495140496253644509015009955904828041590567782952843446148590370692350395021512978464899890946795679926388573223223165415223091041360703776760488707682280039585281514048324627858420823169696559669171853391968957503781298983309700876046893514034195554178231170498244879394895454524558373537057454317591678503328180370252798361247152944587695125217574392980864650141617611458798330332790047468786589224182782604783349518155165615039813604361560823069320658600911302643642684394638628751059113435479237043826430480524753181238880780169121886170257932356310173175333365796380591076419544946788019590473320338189033309922029986261991226574430531750954452986720566940968506295942755830132006321484162551065915916606139607826507127477731626950898177037237526103334237803172798310919188560284629308474443791595199438655822251913934077185229885586815941354076289191754432509974070790729001000990000453749477990867699779139984639787262514325122118091897968284342950138455626800289923793740476352468044851302178168997528651635585230048044680746398296364060136339290750885430653809754872166141347578518367985122771488038240025418670969543319024790716806074806827286514949438874083282896401146955404754430678327652646974398674524246019753932980748341070884414244912001843432672293896592993424689729229152494737496230675520250226874901407795242178861803171148377609002202167841443611343749150964176792486428200616274631368052335602710447525693367607702570350202861546313234789479780206695617700101378014116996685408744952895636643439963044713349576430412553100317448044272546353996735204743638859975382713198737763817198790964730551066480140942443052641533586432608689403880836533310009907442299167645554700197541408359314751354469683720303915531249640713558384387284537660337543810155730399629089867097506003253608019527757844824268768768014013225357023658794747000561237498905138045421345195289831434535679445741415673474158679958619576840207497856556552784064808038292014015154237307966440039738413292867022924876554685386475401471941960790742038290219836625421626258835208915873368677031013492540955992048673932718251973100662317231789072996440344317228498547387355294613762085252460742275347502516392354319455525087510970295171223161560463655842667866701609721873317480611011277384405331300667742753890394943335039407510657946300154522736718118243488779265345467332770959275045338421919193451737249547612462365562420682561412554252935847648880818658575868945284315613408213794601835632121975452259106921441451505001750967530770119501913998551140998299837701316339867621265948061865370001368389298364290194851191244010069173986737333893018137691956395672298410952261104606038485465387460628529282180220853396487648699391877625351241102948915770810459130145498356622187541868411765301653199536970840074931690077965303011990100628702469742341136453453756944309913560796643856498703288752123946510744709244367550816518370663934539388990673743255037628089220589375854234992200399645012819944632115986968823846255321372670651332360560664284496936355610993358647768749251726203157231283543485685786124831551816068283874125688348465707916275184419235038358974948572362970597523052041706030394973511047973511870990288969082680610551372380453885426177923584833516001259336848597811529738282390827813400513546194428719133996652993601090974375501068479845364644758465262286809876466172437790224234521125667118232300177814562903467729866725811665593106516043847485442035196770840144489252807270168288451855035353985835539756611038340173063270756209257122807811211891835044879431079722811152245593954734291718951894803079349830661737867122980478968935781915613038875251315556957545812017985864466541250624643500036154584187967594070463202587632057867205661751555676598052802148926336644078001805223863305150335292492098947877318255025036186164657385814850517161566442588092052859469982812030864992091936313763843617292844316894239552819224358305766665859311670604605569008303986712336684745507824774953381286363504575339063429009997269015170837235803754367445373709258255776794104177399047393498310984918297356391066103171556475678234157277326508066759949588995867488525356237026875708719854379581442016049530495511540082753132652947795949456962702109670190779112021638953835772849974748083883634691128135071096891431805846806927374600853113963817829893129260577089530535435453154772053562496974854310521694379312218099746611044338230056695630251056721500015318039269034006966575438370531921898319035822080330039030927823059860632273849648342458080514392336260280620059255381062078797366243599394608002441422760911882464070420725108589814299458120792629800719915431348968321372308033742954178205693259226689454696146133022923296416740429396439559947481647922478352171598971509664147101606174878827875321874752736876514168366278526724603675937618013114714979435492543683251509233592776652642578836053003760002054458219433371097468292789123633098000535903469637614735978170018557786802920910569009302690422335224262637467921902335452707494592987625217322807241743864113981629633109672274443383476029271456911121557296215738187841999105081713815932306956917993189857259446994354194607987524022256552497215993300807996260142181043119760529248056257165769104778980556068658395577497229754677675255248573987607264966323994684891899130329150962211230618083086588794963506728339255242605196406357929815618082736092632457111702981880285391431226808892699316468686016761658654494794801090914221934463069579918407337894035003075546954533239937747822111237328281966623096198802124513182076978867604233357696145151443537736250011394438434553580372976406154798985012734274000079907117547638997345572294676482811748503097477397489587707387877019267364241962171514896561420786603376511438527436932974621310715369774421009782454801039446466007735621773237085464368322004056550450693754746010841858812417618138226065850114319739651799090521071889423079604962363264938572274686732913740505247117240069682764383191047121655280335478373809645269414178282383602842688790326004400654382017213830965848834566166558306855902320061329417223347739763616052659327610158916540286117954904821812864605195984190634780935780478402938974822376383188848885094199829941159544019417837203854724375837987176261140574240992520200412468352407235558871228989586262659294274242663826991231319737839834136126938805102632976708442210421885776431923457596654113323946444830644552743642425747321393944293594737464244549427859660201839997168691919251027126925531689115949879484632968338874353889725454702762724462418147509046813167821752078569138224782163588880414749958329746154823899225586498020654523210863715013468298287252489607824307880988094189718965377318114719889935374554373747500561594174652390013953592339472624852515329172815215007782149461684175601146784110185961391609037991247420141775716907463265778611723173363442834369658530673335744200740480956956228773304527566030739404202578387669870225760057906123386376064740533142761916524325353322434985534025190838055619330167886311596489428614214029561668935963224304499132156764091726741110765831606631367719722983164466822684899383079737688831441817060347640765907721216125281247733911384055552867018187724687608290944223734715642088892026478947356179941573416707357597617760502244966990346511223263553358610513386448695520744933373513392233936657464538295399297197770148735779734656100918403684879889919956273068053567968179695900961932882240135978313643409052435542299332910054680754089449131158850763744859401172798297802741571741461843029138266613150702790912558323199973753509143150064737889590319868914856462277653994663662798360422888637459863129397283261779549797926931675651384394608062567242385261574616951378954595396133080380318094547269235262536217221083515556511644999597217181758452469927163578619636295893494726788023550776136961195467315010532465056671925350672095773384187026225078427000858277963111567660454323373786456015358766422696823797885998673040163097180632895325610103362135050755472760695331795927687898711235742318499645310546276256593434403997247114787606795543506482531328916817388453236872128688569431586794776703763453925166021586197913886409515958306946878908811686989362145836546371346626708838765328050485452299364881639022858426791164670622656001582467257960174592042764171450788797871249485515723432767509756254653797948280516886339018580005536012588022371854207516075680935108821296357377702296615290140750875706800246171150426218995904329520793826249002006752052988730055225579171926068564246973716131295837574544322044281255847066512361422169745209131219287418954686803283068836150186352793035728098253326217457412039841846136727731596277588797348791681433747398608358056643555727891257370224460093349941443052625469344747955936100716962094218863352197067852621927696573066322373855137993031078291563216858716612987654140440187817284593628816488661432408765462614317594895081125365989361456158588773295825115643917224689415326081236444298360943483152915976985974383188455434909952188124665271215588311663906421873228656847797805871514296385546218807380568745296364384604206059913416916373811433251427461064108346624420966638561748768521003888171141585337638732670423357318623382590688291048027274269257381993961097742183710060200982321594753962982634055986842409628936157493178126152488789913016114631521056343766410474461693537029789149161702371622391206459920495354221370296948222654301502720895491989476884741247516800716761807251955959238258208666609538743813758241184388496302872849205961523151826004850790768595639595592936629948805070262877922691258497156763697400513594925963365374734879680741122377755365877620469282857611454508151913433344813840946435502965654514530430277013598128504266045862056696330830537534042989069396812700239483591879180181711318025888285600284174447290663208880808113239974978275915819570073645270171580392413529383918554143162564520014669395602543264709417211366017774486873832243974566450775642752343725376130128933526847143833356248345305181542398632350575612769908275067584823947938786588714049293558224506931188126132020646025175716831282138911566303548478699361341672938299949507723671614055159248475635065272986186505076062964635868783880493066065902553431617380614644337967741854650226858399811512864663648984401373339562831025496767694836904362239155589726827280973990794233625532876525411949434937783002666783321722272464775727949173677250900077825317678678838746644590452339482082166875656254969975123903746166092130443599875314732473221010862280716756292182764168617219818031243675560287810881018565736927872330717639326456153953406248082477764852915521235854847897568956760003136724645750888318440340019912625955887655800760500349487487263806150568714143189206924822061571944271982327792537299451949695687900570737407516465459602953166448696693266988029744803263472127130613361558865984129182297668555873632240120657106976640240845826516277097757572189780206425571289714500201213220028003364030123283313006374520223491013781671904482522693837293642634466357439991475165758529360927365708075046467258108359232846400014637343430255035711740176358164366835153102837229040570560639447868947705218118399612272430467552371881330689916140563522678052059736904462615023653043399799307788349858475280194552141533122992716582396851837097626980731794102554356550420251050225580008218114535856135893136672990275214883982884218150485327273304211612614725807716001182493241054771648921411580312447080160161274405828383161500292297915288463012237023128484488094313127169430388868816376942698587947938763264544865583005869043563311573544565955432157319366275384099573714591216633298098365108286245229773898752015212671585109715289210193771238933499402456366842332803924307474336529437755867654528206772620691881899726047205330198939628623292919845619004255096684158717574170985622242447706085666750168266447234974129100902606063049235289300829521591368134198869228438794498106882022495099331280658401255682409579217518052404784044680067405384111239698915604041510415229635859238753981628489463178127571619374365924252246438816369262679426880677497579528281255716184946808406009313548706645275906901136252790869747217362212422420140257170219374323031325475603339812687436321960655667313375153148437049310679971185427397133393023399282496202909033637594889111807791805496572840736966000985006169036633352366424936050454874961844530559416611433884782424581182966288465264123331866253948686442607261764613342153511286707019723969173899344578192248835451411768659039824047926502382933919712538089934856834718362717679860344251121853293699509759691741774583601031570980407049105511464377050706404805599476954207011612818403343044560496633546519692240223218760526706682633144900524063438079709022379039791607816610146913833734714231052685833875018759098114036760500804019800444749284652120089090096044412954862106982882630322221017961561698397551236293513702159648069013880326220086018045828471990112880433637092769099211134872008160726862529880835594376830098984375596839603129757679351122981530469207508492969306888544699672472134506619571239245427609082484703507821206604775286207997970294727345558802240300915654992494559309256527232929930134464051720925891027656963460738806687784248295284770561231587291007172054803524635503203478260590322346669997671617600078752941265063630436792987771323820156183081288107799020664409791153359799319158933662384250373967701999006641810329874150756158913060352407886517172957334218976114748663752489465216266400924337580089552550549201545137891018789036243550411342868542826528439026442886340419479400990548265866186099292646854227098251182344439943884995435922869776667640901807696435745277035520883901289548220367111119743737996797475721744496210668653552853612154676404708604271110210072287871682246503058956767425324535532592564801650181952850175269895348159162507920824831033760836513637646880655375782201502048757160204539317780906917723001160536118259526262334536191346752003043740499193062599226682264919973069867980916768221642610808015797649312857855287344010519722572472576596279346266521579578396861437174677174107745339794399538183659314106921933710403192262463439178267049109554899314312231598263346762362999161335300615369465042456837225485618670568878266107568593705569086286890662776892175643063167799846440962204515975711590634452087678808944421416428941061320042324925655002056463676921442506102049882645679265054916703628861837507754693296319690462760694738307445007923918842934848515903404942873236782736595802976006977583957387883249628245916759724007624317859112109189404327098843171456442812143987055295766552278577597460313152946102894988237127859594387831338634754768544635311969088167874537154582746793571037995990139208369322562400993799244023317661247762654974214584334947227070188758213402188894217696719806875527077225151890567433892616077145187505389513567513478579253965630523776216751297069596741797172003805217322261913536604880434435619230739903150652948517304986090058811161489905513689787339729230404088052352498947052525220272673950575387844869805656192021570114524520528533699405300196107892085256292314422576357126130247791337804500002901048410700797623754873205522590287124426394180057252826567456654093258373112293471720352049122159453250486678400841010285454166351237143650350498065784192735200975747579466767109025317186705695794795407459539172647079002941751314663984886078151225411567487810329049508796493401383213179823412946643065934535972080623954787675247019207827030366558772689100812887217415739057903373193996930579258268441357821565841432029425903741956489314455275543702327671768574889788258251307501819935804304280908793850678613080358663929470808600342152958684698596106293551352561812209806360145895067900978879182168303677648299780270115070885006450483064038655860942693910664238603430468857111725216954658768121057993050831963439016105360618402604708409596208093749755334280341267922404153581072464199927262850701994260369541329433988156261767044693241486733417291738609023502241019489003419938362288189104484622968158069307298257740255723725169747714491489250690561998290162648647993230841414573344498697424760102123191297006425063905723868349128342195422978470278794842885366582407029086661843542106800639594903170274857310574779450689311994940542892907403149261351354436427088269322100861647227552910188358300360023043181040695491319152015544691253442701634067593251748443348164147496975389155746001480601906268082123983853656337096530888394621750419279794653523272919474197244990095916229779409610361316985088653038431373097231044648395686337949937061991875388278578336654166519139144226340771721325364465819999939603907431727461281385681060491729324158920491418053085427389416422933426052682946552238697053635048020097435987737359127306623562349562877270237071026389570218215629717809238766806837106568460134741323679985295408909501486062340531278063777269076790388298705886567980967015103400085803184762162216978626790885009663284250311608529921593868656114182061664404228578295170276893715035256275842548278660398584251951449930431073421587078725034402580191223100564794735415400532801328481444723772503571215928094965540364852065748465289382575872719439399846556623515273694529692337952237309682012377910139208159352451378477290686390890251675917859094426152532143628808604397871356447907971298465023585023885677124200336704741657452697789804992449896181007864524667736981411162140663882029610066955363318787167622242040430711451324804880799736192665230759355227751380054500975787049678800481837095908593129989188656778935546587121129955154615381534049433757359083127611554891997556972696847432920009982299987652019102538653012760656808139202778516881355587632263560652633587438044596291254254554421688854237291508360271230058695120143347790805162777025884331514717328853838024871711995633486720333281882233859862352203382415259426999116742925169686869814763875486068751214154456333752554517440702728812574228173484611173044144778983044772050445070574521028727215262228446365738715345975083025924222948528783944359828198677769752314067274231614032035265820941136270524900123661184967229176302011970477286376138297391515371823809784927440574017755123329893749106314632514918390126409390316580119276708629289658137211363642578623257852272598555383269408949719244262689730276235747552044805615704569766628136196816268280773383263188414593761733119032701563210278657592074353317933501125763753460175434882044447203378548372068131766433624304334388563887784650851003945678474054363225151354426352189852911948705437758087874146379814480581048529772486672576777933284889514151439153680352437964256591180708767723363954288939475175530979050504664831321045262671701556312231199185048380964755206818075978425294715199948391960626573415181277782821004616080281790514572377294789667230375271699796077177545351108110333530341811954486862532901180183363966567867814256118719111350147816341810112081247987495809317493068164647663943747367115869028394198994747538108320508266007062159235146181335375558569810269377989853803707857850719327907048907554085863024403797235270977139746010198179917582495912933360511806066390191379259489101961020953653587535009284982367141001579952978515212062093310576448192089658458466829034342885234642300837559616513418971007097324210276560964063536604230735387564342980561487262072770630287804859231426591766313273475975467516453237586109462081705766423716808896671706485546921238055106561882005625494909444263566890497320908959781253593898539311404092034768307448975842033298012864907469028730968610346987837152473596648341517877712304267557174160945032108153015381250398111151375818486261690300625322040439556820196920209352124053115949928786265259301328851876266495275939471311997996792026447644409836920758878454793846568961352209754074166416353410625581328580197810335732260048665403337497551203714334605244645846472387502225331303358669891604781826658202540305070003996908499965823592080308409528023356728440855649917686913629241247448893204589506799608097713294380265181419983794898740987748102232105782411825646865132102230911249231096887421908435266637589207342960823874026083727855562871622243787649776578491666657443850628629486821496432536761054198732875347116439648596560795728278910856088501358456484144309621744275012819198559364494585875833269907400125462862490447072758520596617008118775831345468943479130346556466220243490362155312518776667233462508108494260629914287623492482717001156833743317361883521235509480416670055577067665844247265921614480562297634373473589019124440086369918746333789016090914451650131475988391180295791247166574221159890689686436736331139831247527807547651729148989712390290133079523489177030447052468865540382218411593803597613197061251814545915342528592298903930331143908836869697093626306261959041781057228283529532156438750475419253155788995117440874154062356620654004857757232740094537336605276387197802155338538219678794642460134362552320524593383158274032787872262101532501766393587921424777782802509003437741834427552070783062295520233952923307493115440048239545409601521534324216824157206983198004352901982627797582904781415123173749384782695089889884852339696425880046023178307234889153903410700423676963925288038359164476658993799243677539562786344910349675908942489380239710887698400725915260562990398777361174723008940078752589114654110143966707260647893700413922351716137589819077282734294711444130671093777525229439071930734273318887609246015127276301862442162783259215626460964703862978274867798258286191348750652038716912431961098976576695357553774120923238227781573762720167945029530353991076685731492278347162033240902596989659752572547108223048992475267986494189939387360546171091444527284245920849494349793732436266752224387791729693263915467485020988960883277611570198886376562709811228768949293705276025232978149592660174359643935684930226962278017685177136460789721806852440428980212443354468903867790693973243597259224877612603481423719966143031875012546445022773601105420177224909578262553200435160959508732116877114955003441145792637603251035488810190892396757970083222704646976904637063834579223805099495984882719421443415912222729772870810865128815556545599344839863053635550310081754256383203911328758915785633711300253908786712726413482920886991017109747782749182539420815200307466137871055219412590512130786095017639169937805249068894109160060245466779418752174569842918992953399432715785946339197381496501556309746176144151610216182955545182274668589088756314221191890571990040300300362294478103755731298575441344039055157351070208648053791333260878995813433854205275001391714996998995174007253980247091326495107038623809623214116333108488870642606257817032206547114064348794750737689599948727051123673767526120974600838464984312007143701716880489463531600699739784714755034988567453305075919266842057445259313500723969501422311930185640297607080820563704339349410923140295576678871757462176703806240918365607783156357818165112279296362891471111285465458309430272728161931543221959653561229990293865495008460422917008963642970714100216063695585853912427602396089851955384307188328680588765304389612443960488365157240598856625358031186033395793558718117359858258152322502072377784108085655496892458119875599192175289076217400444661688850446959436759292283812734259955878752303255758321692403905161337667437785212332681877689440190129115857868687302386439773222447740754485051468285055604155685884616598221239322721842449364386966794542257264614312745317374924351939630039707087073472186319567163107709073047242151936960653532986283997785197099005949516037612640132641927090376254103564459831505333878848638463449888264449459144410890816682677032668802850852430293004561013954701580550899682525900913518620097908889978213385864377481895099249570435385122059099235165267353399009502280675742314511410050770459358914452545683642449899165869757522377415618589218109383276735299084687800754675255677521604891850244429591880557229168753664400263786842574014965943152505025992913853108897762630168808717608846754229711698421429448045883301686364125709856603374875444747335492598116562596374340722733972906180770252598685326267626586204159001759719644264016708321573973263762136315805008524404864029702757137208685707800257082605838287325309797795275457727586014328792894348346603956274503857287143514954157928918182245878629272214659549919303087109019742844051938999425174477268681054948677455678736851901370928902187980635893335230190206563584030278600086896472827803674895671745590881267684088219344376510231585657387584895784935601026602890625966767425490085943009136265813141006261678264108256652837085310717232416904393782942106615223804275892753361107273870364142907856480530697976086728299055668089546330661724289284799950800368113783344090781828779313326426113319597569733672694357747001391066499824224608818485928111382145328028484406493077769431808665394307781884384574798794887965032144589885553582488932777956504803958798818605651269773514385197821045477851605713635252016211999973120548915125832985138670489412306498530350430847981788398535849613588853435948421701509691045199567863590721419476940257444962395419281475444140799427868659795862230772009706430684860445847171142623834444915664884535612168558222188279096131352156369782448655342725736775609510849946984335061852870363561025778254232154521361756083633302540549589771409887169171865981441302100273736819889923253025412234960737916493034409643107156711268878904423447937496947989347732615965622007657874447336731032288600976583929328742591244249337646896942360466321156959247926220281873334743216798815053230418264821079849571478776568693613787473118959701757822745885689501852273124377292628852230344467150004162718379582198892205413971503914131294395430337419011005813669769676699870159111430222484229211730605047311196867196680034008300327909732044156443994080266364563807917448093024398739950666251235882911917600504217595618247664092664231004190796669686079267119816891266673693857665250151522204956145462697735051659025318778153797884982096453524275841231117964709154180732353944908241017321538741881691781119643382491536162649043893901447856419243201890029927020650968506341386751703728135471984265824839453081421752349524807878984247490416768796958818396722781617023701961182282010148878051980030817805055733866707437117992055094240501680530806128621985913652951282274955686170270109585837327953285848895307201301588034241258922889233490416637126843289653932166173364986371257398655846237839178772752963192620692417615358779633743190952631018840878320893424061356315498884072356303091052600901277300687059849481268221569410571169741995156963551510552338656114517655873315655124308698539537130632314996677579143964479209613079438698859323189244532279859772290033194455816383122775863282099734214904479540156473726071111155106075417109457195571725866319745335061726454966255192130606861815472367583671417046836558724148420932457331955374647811099168592434948611215145956394547400602786837302424349497484373036560466199083455063288510288624917157117539948569774085011246065931081218461662971331142567686576511981902577410216873013625594682973456826987614320935122778907569466920617479604886678865220131326222824165400219040057139926950213368594794024831953418435620830625130294930321940886845171875429122340161448833852709821149746245739323388521365916145627860945556658192710243674666603899137979432990733006465650632944534401921475478529402282135384108276213086252244469804928227200727765900300141159289371893793593090658290932394447535268820159453214970513980322387442348131866075054566342471260570843314143665603158984106271933016691485470094958814273261853864459233514436876961026668090143454591352159463870235613777274538911877830054521255510147015160284031352065656154945237018205436969124343742161849456509791840864173523727992698350323316055660039969925579057502530338677718741056178215080479116804736183477201481863947244310297857973866959284332318902885450240287937575924364316490245821258927173836462963451844665237527197723022169635330090672682382296406333409653737619963236237975057587918397580553585873597712875061547246673725103132665383637458012917502683583180383308781194510949161673018518731018893673282278490187029514506648935684847810279045785751258370692931963810103331597056277973352316589275484805123061188993622498118895127801540641382727881328173752383636566911832190051790288721627081243900314462449515307001127309619487340738131429907895709726818426196699498813880438028176040247007222312835797876370627514967158275357941717430006899958608798576835022477037943869985061504551562066298762530019642801739893185058610127674234426504348099436957125600652730351366852087874830228634620301840997538969498928778103301022845299875690798099395938108998317599259250953303577676900821128992970595173988085757874922404774458719376378586352081960023535914419607614371184187406887574378135863311950987949537098325237575813966543843572772029713898121142379705836527090802749284452332810431298506674788461626284306181417214715553898835303591904315467501318640608839052629066635804367545305791891869773040848717660053338001022740598236453200926457762926064160762701830516459152767648029713027689821321203004964981919279299762276233447563713823256073513360062355116702054012307194415754681751167498473637495780173024924962597957267448892315844171661028199245758481511406866140670665766564601560780930284737160753707747948446832885420947348948627412932116624469298611503169847891261622557142836520991736052144055936653819742341849749829302801833099060541545075207536808731884951902630760557270667731831863822503215229792361819893718440895178042254435391081001233236907081447334791764863649808393237179402282000243238966469345114299735882690813067449174872919054597290033563642320328811703705853914436591998825137775849377482097676704476906045197054601402965688272311965893795510737911301618985324638200440067503762704209110943385508416888530455788389003548635220718422341900180265402622557212244243673465421708547599024467709600642507740498828989728528274091028397676980791660858683923973995386007733577680393519234005835225259404588682937716653293099228184315656882539388582517667209436658973567626550504394014462247715157498935360311701269214637213317145830197861838460249126259959070276559818612641945302828236656638993820592956966040654734018090353538164975924029941588873625773783658898235048693698272420135665458911676642346913916438151409330464059844497398817135930034341134252819442314381917529401445056239361211063627417691951151655973631068541854903934096113293056292473591115882646454646895210322831605209750460768021388067055225552190132394939680864513499317421655074519241638989100142608213080096483595587900028830134407034130886800174242819012906283889937850659800716848293338634814426285777057624090355757629468163192645838069089908960818471402921834533466347454849391838692882863880982194412958071047018033239921907199429254757970062670019495511966183740661841478963185816126222109706074937126121671098038078125027222050522573563310446512088249690131213571725473430965536320772661367525707759724757474041016259975840894773930883552351420831935020715967068948925079313477299787498748878547776256089433929604395099992240032747789601468412560076355249715061204976653509133146759940593882599865452201835816565687311104810763415930215564685700955366233496937658447168233144297029504211000892809998084392096520470282951360425378306526909122104360364415722082939801816126803819261252465589751781187554331409831096679010147913144585878791780738826684893331533120333698814836891854371628747512214426527103071107973288847121145633130535569152482245438182640819426448488989117705018583264182084545554616408817021672532361239835665610106248205165520320711615516614473774369380307112975977588376015109782344215826479309545384937310709270497712020500774307970209456926666799090961058434709791201512350543263778379868966806318355326895589992919825598652133441145559984049166406454335649559885275531810781365702792931685270789020709935573331246943162845749309669030157658909423741030373745112813924494868044472312490959681702705580675944973740534666263477633780565695823016567033935566061966361777936477038631634160902863116792101903189515773899451993530465357243679520870840029853881407252376049829988845432072065235117506256851592132425805473609849778013747845530360965830587614221028268009336733034079849257204707415821239876345952527140831580436238169398252373140440263124545720533473833246780919264918304832275709128121806250983585270577667523989905695378517529975778707842594631582766175957215900326035373162362775263025476230217486739135396344608018689472904129555139102296967909775402311343243489629007629854691035459303552331060980961652098825908477255881951096486859861133806280326825696564141561467451764786825062494152208053675094338287742863297760096523745700793633464741780623470723675287011664648020232621302059450377480308765174807285646109002345470622745984457950035456346469907915471919450779537860064138166495177986789196692162896139960625397481811354470628180204154553322143237379238064236050384017407918983591065950517646682885534097567220219097137333984192105956390772003269848504312339617306637011195630560115657631715141608878811758130170354081095413221759697827131150735395982033736088643282463946995700740957079939164332214205579255116262186853973580406816276920477806837108252237555469030007893888899925388241899241135219308891488098739332416829843900129599420059583724887729122411358770367912778754071228945773524034238956070267141862466875205432828166416100917992946122325935716761918123314521917619087846094649432093492855050241043723846036124742465938454444676733630729304666130385063982219942953685990280085147681096819044576655078847881512903499441128446421203719850216612477489025535526210887595248833034976983905597506804689786508396437141020009518160261234233942172166020362639281206056497316237409595293694920734773970948130943125263980711911050248523141371484335292856894119776948039758410102436589014745834020350052677489545319150256850595347829280110115069304464917467174099830883386079689710449874837825564726359004610758518995995138326626766382892641929205148665218536245486994320453536469849396846980686388687921957698027129692119736656928736825347386785284361723763716093262428253721073792241336511981882525061765514956962565629341635193600479923189379418363499013874293846945143145325159202396571021718914520057847996095225038484932801468673719381754940556137296964514488312759088921345166119293193355322464002766814633907400305136766264010969119321990777567728261241001381432453169916835563419333720701918005521160035291508221189738501563646296063272479949074288548023286450306270692437649808980236155642872402882681695452408189419680582164265145117578122168444825394787132096293916267511269800597936374811017042005308968786685065782388391483541382508891882139952246946819726038970113807246656501817951947569369058212639473941476690186155514266700547901384784590766587244700417705861486109191008831732696205168681779213622458853232174149592786714481724126819789802591771755057857689030734570371277817026364839648486805107143133180419548881259330011650937027775343508937586976863970099493669130050878425822941976192492052883053304070146288994234626515051140237942390529318019133704694504072853602782625694840348429667796714618354985690029457130090549293435727688262961164460582406962602584622080963988704702603453802667857882822748624354428672578468354291983583708750173755002501412776972870181870860795966152415087255935124137093170820205903386122582927193500785725290636110853766404050454009663641148674160545356311008270629133494764553763681379430083978420068843457753158994981623864482462886480584729361671170516147547124573700963266383801624407645340742859961205387900952163107781707467553418419974123714093360538395705015696224827366973933670484379634401993591026362555329419617369842394245332954631377404467368349177775637353047808163955836731993515407911184719175367436746706777318719003654056636984513695847465659613355804721169885601296002381606363036512808618388920150823003394811377975809966473239805802190113757434373558079078249457969323837415785371111562282239840042105871395963122349138788038836540613536732874381064171494915162862985695602458234424772572349028802442635660015838465851941955982970039618629852697973555520219814135590904725851665051396226993761353552065951243004720666478685738990320790954827064555870445578452443314530930274809925027473567493069233337149196495359793738418676850787565064644644534439445296894175552010775427527260832897267125904998603773525116471693524819554236584271693369524302212036335032662587918725589691254222929892396747903860710443062517841130887296814712036324843081664379743690963758473108488828638141106000583218531625583647174150987900430620425138057514589857400946681302409766668950642738781239294492715202381354210255932943170416432945984844749101344933338799487571689858535840978453294989417115934434314431922309195163328364113280079161874239994679911800105659217728211611484141439437613224551931706598058188813910862806853905126706723490654204419522207389838675934397842482511088622628865686637911931780306338150775341109312456052957376501753854730425237141719780027303597114988654665003729774528540895276484536180858700789431265760220038369328354020243755028269772500559303029369746712469291016245267141491505161142168390484767822997374282590480377006727740977055989202858245168100777539871564553316997813528123799846074447841432706082989763147414163234090118565771441920466398027881943098593229951833128680882396805233688463918790822775019774927581258851757716942794588208531816113213274505388526240154511167723828973580877781235930447469401875784791350951751987208899939472855545567552489527903035110892466969583808446084200363396551799502379361382917773979847927867697673969693901360997958557546733344830443344418266701388233717556147212484957828891399694776728931187479275084656831023295883291726581155583723040275990886009391969059529425828434461407539115114349063557065871138191043650362290925433788950673647419505564920699168314452000604851781171706632254105644583909206914339487125250911425412193263840690311655908870890761615031349700796865254736453031391129374318462644908898766303839967395821570984601473203347633401532550228572576097003164721613201442060693460527031406175249078474985494884080241230171775020328176086255750386960214412606958854574449950433430633388899356229959176276778539990322493975402821886073716160436054200942277539260294232000881320113365420352963410582086841863068176929945207140705458229899346260904552196564254265230206550543059699062723694110531610848890598881130696421671812541069829422719459703988533768114967153477112245498137195514918119958613032871328448727665359479966109581919365942720182005618618267475358325793526807220318685366756359882254757051249304796129658511241112248152585152797690908403981527807929789774580189785349304354469410894434942747166355862557076716894927041367734721565544325589068869519497708887094814091825534565878360293001955563066209900449255130395500948643472380754354624310479795679260890753776125451252792614913598159999340406253521945604457211259195034779984886775769938963205138123839056960542568301016060163667614284075136162056843339084503857116928987475293440827171986164924859011626439433400644379296932569694932865642970819271168697620644715708561580957521147583703083778166421637266005905074021458869029822921153440656084512481855642113561005897575742061172191239837064923176319352908212076616830734646117624965296050282955186958883599021469896363687598802852689126305816636822644578569694148313587442607458837362173238055416976574442129707235090174462098345146846409437879656886483931948065732769185449181153333466378976234137263184273579087429140385821267383583632036593924829202247789360391265676654471388616774844299966054813397254070298666023722045155788935710652081976512046758711103698068767844843385740353546498426587533495774452223257338591330482634552755283922143021437779945388236649098013082299369234473238205100849385396979194562184759859815494879039300610494116454817309417533305070558564650694667714768777613792336836133095130133275578024552941194562836533308431035047387227063139646512817336509407684261345726841286220282278348463805673214363134751475274480934920063067572698277343639463508074747333637331020338134169765093011001158092184488289735327040828477701305250141279731309265675728313930560543180500009731354220847762937703524214475966898175129911479071338443664964587911067607066169227283967665824611882058437701441819494506866023117989570937117118631653593152502067620055851963767731698057635642114900182000987664775178719378145329070955782978331181844069562426291043887056672671825222811469891392107246130678131869743471447404033249228403328239993967395834222437603754184276666020320416189224682931569290622695421898670241798198732538638158582817416607141575119398019704248052114379983580441764581400184279689319486653953392884267023218388895155000012607999551941683457914632338502268389725922710679868555545133771822187087079611339866960444246716682762480784666546010574597005848161487516793151632571447256179388805384359419548486423293064644060016673176029393772799001471066021251242460213444077329767816138670521403098737548417227222523278160430114914232483018173976017243778966464273641194896985506391315598912461159539153026418517506721552408431560949809640300067388886206895848169911835454376224411720896869926825021725801804653817545625247876315634219710778494845661178096526856149985495464956462002597334190084536684631720456817779397838305762947601738246151487652764310414596988578811707766929967392590336236648573188029466357898393307381141056383983081095856537313343190728522581408695325634660433445955357157607616411056297390911922014278750759105532460244945797158558636636539261872726694659632040356129418513964227849574203423465623486727101340925774669346996299794632083334369289120517472943262980066668637646180876276042940202814397026770039218612577563855487166408499370537531151137894623568647975195980074306627700229407057578986200591783512057982643587923675626479609511229993045913231140686618978993932677120642226350924548995528389610012960206632178439874493096042253201487587341472487982808784163335104795321521045470749035517982879632125028138423402171934372667443000623983151704142291564199575835096001287150568739671495266542989716915333300599527327870112434978487468513141132160392277533622953275741896798122287560684896011389157293496708658190558568187881596224398896581933020118809109847367076720210229589544851176316138633053111658964645746612600024796593189501027779770218766990184422284890722156130835985678445771707727406099001621070627440856514069427610201205677338131879921668046729665176923535916367510946030706759796345982986768291074873302218727732608411046100304375888922817763005966651609954515810036854176934092440085007262488244799043446697958434580122465660227592442117139519619055408041320201359440642612960988390756843914108655143694784425263064663087511566631577957190422780626309842203050631089790059447285033634893541700270294082197491232761492780441408577683430566005739529392629743973648952888326298660360603121085191561700627446646244731093259749094980866807923036904850114302197055308067920984780582056294319577199173514157235902594580096646711564483425720444285023069556470594873512248049208832986735618200929590996063976987857464223801555600933417649513151597890498458809199834575293862125791949120419262134246904634254373724923838516250047358316292905365727494737017027726650920082422796909262818555949417212063247860805852310299816866896141731865316584383155424953790690092283463396979017912028732599480312516219984877278997424376914531661387844773544946196626266213967081999378740025039451818810140253251103139840075896055816392028870933182166762151840536208765087916429873608441836493235230756112778648260199132734389287476922498007532229069898305584135106814124820606449095377639561108931817121401352509989188149598028109294801705051714794537371742616417179488596534737023107836194640568966363155842295210902436075100863253097694380803363865751341710961225319653221345134780560838364589950552202279443164071172562795623722648270935183872360291016552395982143834745818605768097462656454884949582611972795026093082519241139648190581888709877357608246849131870148716187205304374345203142526645885644657984610170381622393740305406789983197773889957982896462025198725912192881416753286414252150260718234314125023118885320783784471034897095719177015416901086593628904121605562761891269338680512787278230464056020253528938494720864410490290931229917932681479491559831706897157029874623387391014919464174727114173334732919605177751318028544359137669140864757184562666321766366337704807112010158550532501841542168955549722476286309146356406841396645879547151460837776579974182593173836025771760793895783595890253413595121091569412335996618129115827721941914550930819369685624045811278376743324597936511336933917132970157723766994339515272533026767300016930593142453845188592010685446182174195045940293235586004918580032596346775803593370761606010537640580756559098849468003266787541227392415143827148174619251917225683876808296200351400915298978105470746589620235752692283560384616253225801483928070146050505295255113862243091815463557541040630545723024824780949739058716878765595891520470603674547594970307130440432670138922947620485066140162884707327729598566517844579374751423000725295242216781748865871864690433605216783614227203766735954210623141015063628116110482213480196127504284421841991161673125393156269968196847320577296620869194992378208016622551596574879631057074545235660422724322982291534388475064725329795296152021980351480597484647380418265740198745071253198787013820711236723976320538630802461521691502361283517476667777660071720223233561187640992716365992486672218944509362160945069181520629286340804072296115526858227098445996712798363630863422887531051906681809402813935946026333490887673371236935801146405196697513578704443703297366182131362278446999948048061248120825833521115472885955963298146887106077405837149406491673127805109300440414202289039689279992975418510548846911909857518212293939221592559868745218746813365029907073571438373074580623585182801003001132843380299905626849799630220425950344608945882720276167573611608932513501302196420920909346864949949068722560139312442724038012415672301940048248965212384837694103755782602347963437289286253557130349779186599861251761634929072828607017033835967799271648201017147508409844121629258011911197704206426362916487634121013488477796955330928921141014279857248638807642949731285995017656987962042901970320345158677786246886539257590865941299150420021552916243407718716077753179238495551412343000008469073244009756872453261847256315314728965545352742367406022970946273226045193241976131516655874777761921583423097844792081151068610396491102256998662467914704648890966134582977002072212715683910266201962830063896710068083110897882893069425771706756200943675423502031958221827804481076719246774164837460968218736631773640838662188507672490553336130019592262291984844417489548884575333082749863377182934654633132556743795969723666313995444788522658261779718579622590558953199836869848646171800197524439834151651111213932014624604498657024580369696685595866597442442152554812212925138217741328257926516637185558438691557182976515289765555869470918962274716839729436488752661869191018537318289616641557922099950295589630709812793643317914093135384947057529773582545634723409568776856164911710292653025012412514641134986512597223662211548796920331483186033923924288887953799093063053748805513390071793457478313279896664265357779904293028480478625116826857888217213721168760191956153497412165147369143001150098183454747091420121824080337934576165259158055390040648455336973196429855595999447373111130781750554367570834632929562657884459947185184396449550247156014413797928114127053352563348185588165171001246815128557958892461379534906368871293578214253981705762819925033868560323413251966407834539208257559020616043003257960206777976087289245957320620260645947843792174589072025447996664715481598347174894640218975466306534272619804509508997781428879909646793784125967265649651591854060728461038832984431947159891802116362908379620250133929518828229424608081054094191073925027542052097837014404621707326173545943028677880440540378001849617176621379427041767471520394461124119131123139946599079184236075633153117011260892981993466773996218228506204890545337613187836285433298090934974728336165648236123780783957467844321923817591353911990939268797236893005920957552842596982407765860899158060252446268658310496906737955487913172981515915984537190288250452604611056386721512302852441196221588905753251297844574970657885571333459809106484878419720357238611117083744600530891577580502704032676210671126798374911607737379371093767062486891928489069074126159203035826061892543034340704993131105418651829138530491322197610657590600500410329349025125619898941234107497759157846473791619518824502992195927921792503878747531900212099242134953779568592967281933389068103689343756221715014330963423720418229666040238081698743630407088480860348218888586969084776440269916762846016753744072021905170265261930100375172604241541869898412892548972177663006148404000631234188349401604570598238452953193339408542845079654784641537510563815979286099566856239662228138406740607143127937285781493487327668458482029802562814356178436905979693589830634832550596841127580767726856604660820169207570623289083287389130684081406611152649493778019243618240861570455075754043498648140911418455142183128192457994614475288585104399690556573691618263528950686677213940004575772144483255636482872533251252842619500744981581913633135795432425351046817842401987964334740578000455879679852021616213491610004360303615572510269784141345710614440548904749689230991836954464440169510488738198111074652384143080447688428211020040450216552488707472786826181574601528174805642584336204550282818163941196417915768101419365011911604098282673971158116518099627957222699463439986072625691482196759827526401111012021299671397212023539344333289257842647590212189826060771071602586579394786735154216104699595218896660790754593432906101469643010752182010611524883363980299217199165776409305567295446151352987763329724440422387403904890993097511938285388233337866945917869207539998533184506041332128805484423002028320266230183544423682131104310941550773869781295053377697584655559137606897653814425516690539278722926338124286902809893846584199826242805235091517335998053718587797953560804164913845358494067456049647546032935289552893252354120833543983744657882263701043174437202932575292716215122154954490986915883254370417837656617885090924204151096590871359135731235139482647013476607171177989646472851533062891223758839377483129984200958773697221743300062879017582648710815800589862460239748894515511108848413621757924271223710709722502800889949679029617919785932532888690555112802996187243520655832344624994626176225379609218448141710647933497820124546770956266214630282999190122090890255306428599300527973195352068077392529769291306983863805503679580992209808336555841097327482016906993748558806739113133551553180670603967183109355322545482229716182118161804079453978320380719040574779321894031760231363198969884109520285922001563533074164767200353237074869850173831667629599420961899148872000470029715399141519836532174430793316291747502203210618857690939739466156129765777958525525571737904769257835219814029477212030675612797938117440219496635372977463913064182889997954281574785965368053544151075640812869906171551162590568117034395161697937320822297236451843078960332485459919024772338609247891602421090251479512960398718049087409142467414834667417712499399874426668841386061658710644088294115037508076864933881937653140644967886983121519295082491508588967479981402514220283117807766733510679801089144335326488206314326571105245874639783210231567431723847397406579259192131141958800038224417970408367870480215932300848394795999293459168527282155800586953347168984017511802914854890829885948168925566134724964267834544334425292958362975431650562148586195713728614229651651104837440342925960743908670098128034957493125928984570828107548907455821107767402662981628783557272522460196353057755054125613989914236987483370391469471388748400966141291663277627293062708065745329954157824472433731188228320403600164485267901682016016793629050878473823133878528868988631231966310309049982511925394077344489003704165012718984331555640649947682652647651537888183894062692930500308994152327597085585232666605037271402923838281255159664350342713946961042848523631510186326349619867373141780947473420187023228988241927902367243324382451268595549624629422996291943706517967035297052396508762077563606292221347526357609910750483706465062071332210115325978498489945283635019679522613654780896687491785313656691648638504807532171216166255435858195279510882920729530704534984714481123359473054325602870439333104099998063018614570723560276625819722312375516717376811788895224216650782498383822225578390801676863821127984975049216567685260541640930161873435829952803392764931222921361728258749168172435137066216673321865485690940783299587583804314620554102580582557688724318970962850502936313440276275368989600375576772626303549443401877201161596356185563082249191404833584438198178014787923435650800240838010855257048145582408624886756784327929347021911539348292855088489961813409419106232154298956139033969159038689478540069644623559757210729963192506151700194639329584853883869126292693356003346877716505466806766005179248971423286277434702371256504228216986759247143766359159449707446671676732825739367281193748638269075042205850064395502086035797524130201789565701130025747319925492888704390298557816747739019941264591414274983578941842061506318577392748201980630214777799789179537207474695494064216162127299045956894174924297828886141655832647912897936636390707521929068868495793927895756455207028055471270823713593585620230485010257480784115996393606505101978367627903878565508060473954842185361068304819037849690005989907610258132314021555581631301812310239500556129966414470050107222921207043530794700786124950029835247973357805253375786017055798890525516580662195729181609774846926283249116323192530409431103331357810777341674107503537447123666823296355992887129342188992438752118550427965973339807029143142007463157261872356402822709712760175990366382884700077266787922630527942068320012517297978667167980650562611888002914001841017748199014202323790941603937557819522712251634822130027260753655759072242546519673796109966921248881726271095045421423431986842629165161454369337097733111107053846228186746362478367842364594044254823124799198370136260472489381046440428520547688966141965304416365192794432941149889191765273185482653347500531113293035222154658052022103937269335836748083839800291087560534679634167467065429314120082379200544279478254179102927764502501207301430135908569631509221549880224769655035745946742738515976935200678921898464763538788725174568665709826325238773775560032174877253185183114331825094844403385403698042068258532519915490981719618231885193619115892218783079796293546766152056773042742652228977410406888260504100765750492235021029277221211924690493964576935276942999657691439058691804405418034376325439432468894618812666811427818602019261132757604880781296274238413385560615500730912632936012694891739156732551587811575084035002652029223405971005109213666052877565881243788227772005267736781192520609194334955530454600631604571585919508771756832072316218148346715025498303872312520916881212397324665354958337146483645602881388921289511663870193040664474799553524676448097205604551270474263904372901547040737505146680208599791095619174058857021573932790634743302399156168333051403195298831226024480738066735781512364790793099539497707115129857555832693171568040145840335580829718083025525371450360797696881639898029421816392285418293592415998389907876359166829989505594924576699257106898787879452748441428444841355107179544494645010387609328497026291415868681194884371088606794258391704095126729707001704240211672276514171462755692941907642189478991471671666899312095932795360685333637402245485173314510820834014383386862485059263667159978459209733040348913533356630181159411390102928149381492790307775343054379530788000795486915727644713962732006451914258180154274854498877375843180588494699947071121162868916507335222977029111436985551453103795459467652803393799771083339896704305041117780483033331537902169864650610450037010969811122754401834947476272142629188999441814661030304018978081668402625633058885079225270264532202876246537073824138008854171036430889368547458215105590788766631308737199132291287872184355560751758642341699367516342028643473935021470646057750208400899935746170926830827050569693814391425489242791810004117493672444215049406653608237342439656742201717280788733032901276707415717586669266692820727691206570321181482156165534745816304819978496213629376845618658481557961159185391263450577785905640768537368337633866881388681494163723668036730894658219374621606170544913954960651706956332752692702438379333955338104885482640583251179927125842942769143051201143862200454626405966344112046703843901694071873747518137113215485947023857314956946911566354094651106146186712858166334722971590658530153261963929471577788986237598944011701222435179060757138738336764047877491727191182208455060554714860657107388346283137340834271992622508867863779293619668233178273547383449573552573699687290189502278127031349462799337953716260622967338033614487299962978902101143223773325699251414625092965659769717472792442858501856837545103026077042526543520169406352460181194579739661285380430728359711449645926830796051928918892224312489844178362780069079356866375366566862154771964000397693226491322987217481963139663512866856369109425861737025467383437434753283030708765304376733734115348195952438370138600035810364104920971003396058798557601924562856853093896738191073273482645323031427282579331895988910901284272620511753983262108586610334648872333233551207538020970065011969226843065848704869696478041532334218269944381077522112306305091977259314260064159075596181832575273672531322429673726190965157863049758170591082537241174966796932638634698564363379869679121078936967333466488077445631573589423664401083364902889675541355528167485674791469708794209764429770222179985666158329463114887469861046684668276431809025258982142601927291429210888323704380629346236823490434303887210303962444850827038870527319703009602701642220658807582916314802569719407731227708536138249095595843071723140589327223934822470769373490489824189223026403699095711639927902855554265672362797148561871200946907090321207209539692763050085378975586797789242958678117243491202492070697521608293095314022565157403086937618197488579728200038230000999792410443436979196631187948288107373549490363064601507263662551380838751418164941459096550623912070124742639794407445547773276355564726814465647009307890765355153921356509616653091803300542126623230304098711425534388550986099360963131915965953692621765360000742578425080020773138440374915091716697984565557871689906996266591145702057135115539110401235770381330781029226377674401983678885055899469867216012359796128031583247184416858704250178531835328914583074578517826688179531433001176961147819521105846976256170466655535334772840643332997978775618232340764941910712068579147843526115219272818287761166150246608666977285507597195059426625140233232930403341674039388574673080890803882839439869091920749503430941949241803837141641753739657347984027580736813556882404928290243258843194778082786876993419988432834729720397716448698477592205257147550894138742703443052354906550805811050244186829358330487370663964301960727014280140378986576439674692698284593366400322538954954242811734934789605905235327983427168861068895283351589918096913719136034112296991088316047086122114937607499426629313743723512462729963530685516423650555973018917686956424742368089135253554655755017285071979062053497934257061469932450925985476119696498555712969983575137420772606894703013708323226695316024235191918372858639482199863569251236710277846525769459753230499567003461937082612714499385321307231335794769685334304352831752989937003219310659154859340334087952649974410554850726369838086462799146084740380783983489793508247626556603615223102185426470334401749314145852693752273045942663461433282953025426365799881182306635593073552914268548071575596593285854880791373898605818136941965909879630704273919570013706551870716108676562691680399112736359791436666106395521186599886131381068904684589119500835068510140125149637693793781547329081669408293624182455687511498001718918471555570213393066395672071925470451897981439877875715523426955313012146598570594036198632254269414849763557541814090561099787537375267404437208487474447445559272384471635028789835298657237190113274891110054799679852381041072073910947647824801226515202490482188938033852752188323669326721840751920678404431181122406286091806123790024462342444622841291380028012522381683669776440293889952894282381299299558301291675317916888869357340583073869902515915266172716208657494419315094742810796317308119137199658516699676476886615082353603931501727490940801736145224605095179076878886030801818828871749883136165396842139182972824372105624776788979392362020527768483915016239204536921474478480972985813272218496274518631477448399223617777148511657502998197129172421003359828385702009832483992226426048876016163336732980350484446701781028120299408785578254514039204444228978738826305531658263118654093849273711626311795234602054569112074716801066463880154535859986664041187939882181140914111400057442180415354437368018942587340025485557853851332815242422586767259736654744570576012017075139114559850340978602007058367114134829353806848542101172126037570668570673131002383741877402942818611401313501953861359436441335750154275782989590567104310848141882382745182285082969536814629459023872289486884211596412676697582527481264183412503320562252533944380968173679552347242971703792729359058466227458332300628756250284782847806028751674623012004662800358889260266791792379354300415792756276468054943506053945425424099866258405536999667150334152657612588267158247134024608380155373563660829603780869084674509706209687779850551171429168602377120390642091714501149375588125508208514613962796918618303149151620244773598276698316943328652730024529468586085446681332455403139608094178261516326119388627826340576171149019960520666056681435670330244338561650567936694043998167068940433269185527416597751096908802353931249811453936828149396684706537698317712126353855212354083057205060512987468815458500567674781498600945975363395001806458375398084109982145408130149360021011639678872315969114458411429449984859246407060764457285968948448173214853409279000253163271353725991440718613822068434959213931762582533158126167487024605727550636627447547969697469389409551732099162329622038291501883655706996832663963950273391096537378122388606386864386359194356649813796830976414115981080777687250136528599283867239406734166252639691658658152283773485855909655954660854788192953661869380602075530341998232048922684641389662287858177005847489074548896475629747450454523788485995917676081596547435945731454603524873897110067116523196875949169298705951661262133668116917910358578487938551573841798727688104549358802110149384665863983208202579873781145788070399906851383343578690477697547855497586092243688536506457440135183795265089604424742700045505061392608147668459209800183088070389124912542919840967393534269074054463197788329715098170426348530483838758318450967617149590096728639132299485747235495490860384734606297600823599754580182442121192247247019769368385586334872717275957167686688599747233188871114448936777744299118915045238380745535766063728895357990110647943084248706335570859086306025555750499614583393363870285138806334092080402821841408442746560341310429425550249683946153438947422478760259064317463962506937942270058205632556751863352770569322118775732225390752458093003462417037335992478709817987071301524350170845214867988625461434953983593153779842474861688333195993521866807704956434883021903683341416678602137265963445326528530668613846554101981237534997017111807219537858377717105966078438877450197017866240582749174368323994986327641762671589323910538343714273435556474316237167899352844159894895805087861186395885617821301793895845128329013856326448533346615909019745113483360632028637428832080935264977684052450024516058562056571568372875976182951738272514942032482429817472566509765115601156298757022778227301881293036432850703227685028972548384028499000891792035844377363123810826731672566559147409995295601275581238652176146487901917797367912865537123258140016082416962089073278295408662662415254173133250964465960009589609577773890284919584191888173679926548169674727794761495548279933196622673984827293531318409900122055529812892859814085989111904523791793735026996369974032857791128524734188171915498567893442134107314452678533331622869944894100307760883769956353086626800081813148286895735451569257802822274200822389322212879836007547977563318601354429257675044604503799740612929400108615327076538764648714294860157254140660719590962282225995018562604284837797204635833306842802462196573895530439258722705615970103728794731020973160618177016094220077413037600359110465471734662348685062762457358975358580954986149229979192001030959888917273437165901559773865610296511213992262529542725139766331060999904452235630623695455553009243464933666339464545130038288615034129280491971564799717980673118753124222916592584746434866946943416649186610960076853623094002965180885776255236304933756618254001208310000940920251847404703469795521064256890883052059081951388525968810798132907060079271054942602632108562521059971697532537943873167421089137558784007941024791362823525422069007734778245944209091764676780653695746806712518016272806344968396276651726350947499267188144462508909380093156955915640811375278689302917168066125301556689414960839315863128601393201878553713829122914673285359432704344574064521382490563585994185792780408230235216229245321551921955520566802298525187641181678133085552822958709717434228537997730569624116982576979814303215624998540107069385008691843960100939089549248660354871061886923044900673957578399411122956738274337971696264175522552919969022887991840734794757626867800831838555627844866619574251102921039216479389225706515443490834146510356071501921608357341737177080920297583988482140568782532306179962165376564538232697133677585085747410202259721364670547758763207417615684086562543228661280172464788221213408419068240179121266602752883371275327626054534965722316887298708916113318931931084751649151808809015253210212856002899121915727450051232153569698459012401825080901787305295231752737372559679995609992534538664900287288294288927931874616181641511825768212725959246751771943163223614302983340121686759782773619470485984855402128183651446460574887170236208474900128935297632345551664822336685802508638043447564093683370832785638279400512312416180010592296058299700452320630741745450624209303067998811675892812863906068859309196962781874876865866760965934434278924598081971679472883484188239163830121643750150768453402887204590455368157007507104870619472331567011821134387358219801393807766690956576567001068965210522998470937664109196582281610527774907610330375324828489517935090006180680176823225980282113687291773354962038699068527112304424239060928654662143214319185290275113577342503995650838484703067757764603327718603169336570697304072173939499672653859477974070062461770507543587194388799516898254099456907966446206148960495910559724565693809313788312498233316682392833125975975138042239635462471903827740656401413208041266455816779670107822707506665083222873043417024309667702071602565988833951492814155387378928317097928068992525264114500074163800852688348531008563677306865758901995247220890188872435473038693526422715723343528787791729303378622971042350451124677032660772439745114834293534799305022789814154867034150763502649443094814413210367682485202837873751827841900897196508693025989378010495426852990109206595097046442500939574111039184683647360136919833825204267427726724475829865636580303804792150870495070016708152002321975338895339744023563928737915148110095152312063975168492318085374361144052621318735555543649330755347761883684012363860597795547339381057924673909118603992065372248260124033254356512973536125158687118053871916282555355816012287729379648085159096736083804147797350209889384066331226082857901661633539555519123011160809555362722836095807387555134647618270469362915549735410223670579720645077576385803967974418303314743890654590019608184824536985540751791679943988726032982056759396589361044805474654472559042048921246718540021325021897772240337884886471551010122841758615669902514764401090562411526524644266629460694473711812447786811402270660011814217775346290356440220750566666349546815547049605723169705783088914643689319021887659606014607922355826952266507737209555338512547972307119552679778085248295991203317729525579786979451095952897611328944550549096399591913528087316504791079319040241723673913826760923681107953536980883033983880890624880981263573996447641740481738727703568257720239912658996351369171911583061188892241780638273775492173284414552788015885419141182729872422169064712765942527798433629807079907482001342129048641968036873509749568695551059697646412600062825711442486295566520981561158778098276239082460986716152662811105882329031785023547915197055644579440326317477413259990262797030227938043602784773681932422927471566101312499852553015326672600893120538993442508615866891169964517680703658910157129153790551657819154739814455681854951219322299350118555143320724523441837371168890560602055724707952209851276878935793651905387273732269010301948737987435227774116054536629561599539694281014957173397867579855121149079111662748325831050107286175484685784215223888251800851147436648415885399393559808407361882628906226105710379496180554320648746374569792344461048937549788046830476718592541343942991087168937483046005442279230830158806433495886889565737807928509775857549025910597400751799028323706206589819543190177009600965355590417480037115967215140595993219143859949100898473470206428405415558781858835709250845896959290220620239518360662425204037788314401840351183967695301372569158216975546681680080429741012392643332139315555501756062048266504192434861999081942100532051397445355140879893076829296244890570482598205964314727905100346863457334420528562390787173883888588159885976346814243250395322791441731468810479794428164181468864834394053183889920141801734842478583314692718059618760120494712832762145631157131781081697609252441395368782096849040918492487504393408214196074670605410454900508495452130214850766833130342638598564557176648430594197006314625428579996448060776866765376110673010640056782851869992927806596115209374465977298426745692068091065019198694559774072454658916723012542361353246831933983630335735533720179384831795113991715398284959723458310604187862102175583262422205973445915829851343879877764088116395647753923603377293137787732923464343203601835773051431636512176075573035778590658352772053665596017420901203885702692820833001112569989135638314960360236393264823500603552715092393320500676796919098932630492977595350849351588751299738702639801555542053121428763649625802354536673261465530953745361502390071182236694308232904770544900985799260670489012201531223594365088665820572765360648323444872345810786875879837578419278295873670923458034211184765880211072668754948186826073420443435342530392193315347670838961998248957229753315985849796367929650184935943712997665433013792828639837319022474100521701388988128068002788611708497960990945743938118571845792818635177495368815953711455619106056463529578141147685775709491874121958916718200130038216285768366715313944659222874858741942903868067531239107263983092999232031060712524401563401231561976938650474108787047444431224962184699201680993463933257816958946570664422721351116162452847839402532603104636894207750794902051740876246305475237333094179871670341824190680875594539839126002088160128685665143973138694000002686386876115126963530941029886060364753257900440574555697850399553049484191712109455896681291405580815710159759316243738065108308791544649762888055456282925040896520589584936377396871887523861725669065794917422740060384398962849977235718208867288615475766033162288668891627055163859864996485877699329122203986723223672419099517247143232956718430724325512625389711957609694843208391163951512948650645647355866346445382321356095108063678138021188781054574362244305492762099201396924709035315558834887763590229853010846752987810478913036546278758533796599914954966942617750867645114873301938710382867937642474823227914128623967790725480357846108922573746978859635833024069512482390433928469253831812749788935807179470257118712361462769963382521871706447542258979068401648945287959513464900593803556787743044963863027866196143792122439587418208100798756456480235881160065037933898587030885365878176088853838258039505357616773004769163370124722420964804335757695914919792577173780957143881558290632006307508753577175562303833265296934747954813191937964100903263919912329054019334334523231406334996815746843783900718711780287365624576599871301751217736781891164681164532272673856171458985422580298669177951457148657359169004298341743595584952443984984149245431426867365843538909138215770042621928401784499668959378184688426793628752394628932734595683928420570920481245344209671258081113717480220436602821593461377722480418489735276749452357171530566492022956849238426866291929486863567471567781017255825101256014574200342971251150958529474231782378513556994081157674337586828059406782811755023294688143427016755804906488195218039716873978451632193660677097352879306559203755282736225590148782005735255776036612151151991209351412103444608745694202474035921773156191732041432659233760613471892413623125764545536987234818426868383903444271736062068374416544865043904993787162355240052215324863028678360135403956243752774550678760031189397311198257404367972564610068763455485542181635146815761054743401279247293268674279675640762335800312288184199799239631766465950446389488242491140821163040983934337862354844944153189664380692839300901477938288003452592518962618268534490132735544681287766799405427444819698464639090312477325591932622514800850973573422591427607306878007747555913460232610669369290252388287644343025900131631703582466565758456314839273480506869638242070216350420713425174165919573789576666166277466288995732552282473865944199421600163120885226322945374330578128263957680623975863999629710291047154348101374474763290680082713209147268566057077743253731516204335450015246568359309786762893584442744001550259536100228255497579075078254358780052502812112980793182442350101025913791535259363608070420405524247832483509346629721710631250102518366838888313796868698324299786708208128349604845727248222613268927844974283683587087945641324910576703971002089190544206327049362118682130226307423400373147712299349810958124224490018969674882893503653030596236060261381153940852330130729118793194812314731213972055028404633752983610525980986827339135093981313782639152155134512394523463080664335949132991944158035045746069009811192684794842474214010529015324717646061058164584924933538913763600541107694056769105132344353306748567324373478834007973013871011751001822792946865470339839276356526438655977312391839227705561702384645900469542435655799252847025207273045785090076560245269478569715021268479203056073156436294827134324788583037881490743499306867314619875817277632115724669515621104148500624112554302830457198257898520984867342845276068880972888928024647383166869965970742217409023440046448694703114249903021794613383647737263806613621566875117283508421595620289034364405984448931007979445005710841841101794069482345559698915251291708549906136889705855212002476474284423875021941924823274916348451840996270008219994820731695159038697378544494197065345849927209846780878558663189850908246846586355438609518784309722437054807558546256081185986490600918185005646803757023024542202475464892113920276002338847855682102658667982319088242619752317139248197311271506120304020763891150001332354880819258760804767070156209786982237802983923917016586509862018810778305775112808319502137069833160674695642139956847231555924058319990382295213414232522359038124425110878639980547671445174266578113171114961339556813751851799001446818827606152735091978374850401034904407596676932461232550900920803640180682780092766254080816631097460536514146647859759617690716428184659938200194083110022486198096809217864216369179968304861884244863964366214954234622064662793479199021785596778591026553783887018843809776541669306713407141548970623457016634296714615461797466748830170766772429059011136917863912415958758059106391021494531352181350812061968634438293040265977986152561472884869955710803228471268877085908450478200538767339441924309038257009483281657763666486022100734764863802625312206226648936978726510359939150992633403859015651172611584191555561374458258676865495466030655732710768101310225545751380992527283396322942624319846278865905155715071654912470174854938677708486303538259560418024508879997639076083700935157820696462152365558977716405999732665519509106589105334920800388604202371242237121663103173600684202054574057978889534238675501557240132478999832170056836596730066364170816506564754969823995939391739462555409959478384940715702575497557509242676148164617866592430245456536490760630710415037947966935097415364434313388711180037935931799983934510285958616193882018422937146029886087011923690613616849171364925762991197506507316237926959751698332346931209862090446744632867367242186222843444883841470128136288028341886651593689394163477445463416416875924432532963712047230633516794384305464819349053883257708657372628135099483977247201766497087451873680306245655403601232128299499656541013543162759718700351962182010096473642623677279558135142681628249579666550113023879344975682688366266116527747611267492169619942702756701433925648182020846907507473884207272258573493229801275620889441913110943546993732473604525938806027412258612676905269957893443050199737018521380717259443707290833686705347861307849147843793665550259515444356777419682424822199400979856192166690071437365745292072968373260164585452371310745079785964244932079701541826420615063207721388930942965969194841495362085804456356253710586725144200391137686825296799284110584585926027299480855827606811826310571905711783962910624737980076076140854608305368335871464925718662409490945550845095415997283747898015757596717422193811712532329833813630427630282601604693742796568499573846328640759987162454545394316748729186761128873271988365045118152594940809152890980970655227467395904626034475720780853821580685087081171364868798811555342773834896372586330938434387099357365237950247548077948443215098492129191080409398187331505076377928543772521764572080449242890247865167824315086190545276859207404328602397640121525538282707220137134285258882242429218803699896961429515497007103147872967736065944715169744253118998432253105894785876690036027839637059957786217066388867235669468881996010745544790803242114901996827260821795939626754690772023948950848126562289130193546783346212680225974040125942096494367350984369877772656388988652811894781942686674590257014401849718809972439653122392961984966782550875611993886596889319452919484611844529536167939837232635288982277995039876681725919135303770675382273011888067789325251512842603137894870099916253764538594129719438120960417550330763803526843269574259869889481946326724582934835930872769261593273274898559813689495910925361261465096164053557516627494034310539518917325558786064510978337820889568345159192858983113086231612451983662697634079946529527092230297127579553930740716181936098325922823598993747971046898305584485695863617489933766729988490508574606652251705961423419289395025442037823152321806733108748071968705609599592026327744476386704396991865457654398866746048948270959543937041945960940792399395506555551085946892647373599945224714798266002575547614119357165049413265448502018349029920985640029230786655149527135767715325549151569723425949070317702623152132502158973268583374956465865445305508842277296821259024741682554045109563521398275033111328800016075208298870395174998241977404857877202772750210191564460021212073853165746502701397380947991085301461281433023031225185874680509992519273788250380618331340757297047291158677163860535865982757234919697331236589775934012633117383202795670085070321275147763916573682978451132239952544819836353864280342507292768285540030136173732771735117002275980124021340989356495275316548292273638756696764470158967937678514878073461047758905978516371570481106702591065214988729545976862498629330116334420461838733826181707239597956751373171264975499210009710308876059208462595517663148191018791492317380873681204034611313733842074355306248442579746586099384612661217234627261043764556080380351518481572940041651810919799083743993169623897490519014617366044724107166124861283758574532824481126345928853351411414071190228976211948121771506460271204241852135851812971870922634582979842529935348343338444921637129366186031640243938988232610723202036002286698718978708604430478991647235203083522723670227703846929224410119468164599285714848296312445626402628443890422008329702771039629386142026361079346962884885390455373968696463354153841076981151167086669784536439008691290534247161404433785171761435836470997802868376102781167354689594890445484566192146814495789233982869560376883698023834190762751833963515165311892184198642509627510057396844924869469467289598171239620342456713931867304670225826508505627122734041234480446676284906739283009152097980827198600816868837735015594067175556722089328491688637754048526194250549001802471406263909647085992558069206749964268246313411609744507934077068679335769295998661539396388648142269447021931770525514455416207144944745386172925565458481328304885845964547126636921138838938404391291547679946911979817324449992442469891552247427380925515595045099448546250122280816928448416615234286099001442275117986395015973764681834909751964886526515828785904476862752453194677866894892664150291971568428586277378008698666462935217396905395938534138653144484740631634271833197168765256273996171157285003216880133573520696027413782862292169048688223743628207309907620323455763240874285518215693710634499946840853826673636660409749081270944695625488720524571627411709861398162434968901161350069417732333712078231475924843574882525895362144424850632701440676486478255541853751637846995921697907207101359600204334917463002564276142358335710672166066180881945943953115521868201963423219165401249441522934703741483748444356735730213574000225218178540991151529279955150474788317292955470401285503227451271344210109121000299701760591731017972315362068693181461405378399570107850969274966012209245362624658859779705553212180011860306565343385301585255215440859114747492679783466042603570846227715961374980679047094738623691271740220318946004959699605024389035097284207244622401863579607297279876900862752753138332086829140500355980808291105443769146934784564331891480044356380368349442754349454336699903082639469741664311338767596470679819424635667074788902721672515003835064056126570094594514657986623888121735121593404944970353967368169595589101305596667296954510091268866764732709937331364226067745758796693866555092747448089370269656007110260429448616955924312554686623921721940295331317204299455257901863499182342408921645103116194090124083628702374267034932164567241814240925657669808364266049618965069118758054576570642990359018251364465896812128819207466972842849838157669377557407408934696752777814611017356151769407076788663188430466832340351945691818428729252138623735266268572487839485922800926242493823058907365380676374630661987128428849918175311293687480995283939056940767432476188918203470493413856605116303690582280263177828136236268220811649450939253705178870725828184006502385094137376278745698369508400917710589173196156940941135518649740022022698657949656370149248668384339068699367264852349880729390579114731559489563251588333231042783880883402904456303604413957273460023831176415035153170734458319943317171823487139818078154839713158667415152704687295037916057533209792002250178768306603220906176662046074119750649922500965331314066734388205783138864620799057481960035977041046575051847405316154082068800639078927480942454841375655062484537103783481930764915984967045356312948106156082043748239670147996707201108906964132765933081120878836429446671866040596080241859191659149630409845428713254871721991713119418938571468827908789252267296038251440836471371070167167625329363136648246662999367434038411208178426742445051125048469399172888210975930793340764336828456577419434795565101849251814766415837279213570252170909479887059784560812654389646739213658640320110497827240359142176851900263072633337353935069408958031550291423322950703097281476362774477319505236247765558409517042127265764127127783189940268218099181119860941805695625714280897301948582598733576425636248873019146050923034739906595689953174681126898679377066289864814095265303109510313627542626147478925284029888150332771496384329941771867200680435043613846994920366644594999561791564950829589593732037528356319295638635639291416099633358715796600633570140736099860668612514990572709855290813625580161890688711223656342661350256441828965059729621708196950530291654372569622627958090948192190705682122126285507686963738457204375441624442028212163229699330856562571874223554270849620383552428399779121523956180030084037555134404554580284283573048511700624953085454654912322330666993748269146219387277822694543219802628951847722881546533938446450792541072552581962196616096766779618014976449580562309994429531529154442076650885296460938959653868420611577746170460375780507265981129219127305548060621486700830951027825513933628335709563709689971748029824260712487074221657638200939992923656584929054724029781867336625216555559470412428067528979012170500419178299345428487497354751317523631088942852988139203010650511754494301535471893414304240363851281525533015708219496824812273629533607699804496294941351959108154110884364111766936144118040782224128338067340313573100814527444701495237139820745141884408810532664757047134090804432917277921309428674498066231841718475609428087518470866865324426433852122653074816537788576283987046588644841930404544347450098265948348963746247331440286795881228241459600403455772574487995878166478178365457189878097250167083053763526933765009324131092830723238361167941071998715659039612490794143751058954455116009462405420746402617363380625134802799278703845209866541217802794390856243634436026228726088123785224058054720063919135114079310642124495729389964716284296665008268025636415466595420095758447255573456873109847607273541345737054551318294171974012656125983357855941259268906376638302260491754366315164030701100645568822567639472998726907390266590848011214341718008925283636106816742103738491846066156712262913856857515754926289145997969888546644298432666974052601838707302503942977630603475382553591928645713962305005102071015787535824273828300445099045712603988183503728428982636889602717720673405540617041650212137568152661456167994017993555938002469286005800561421708508788390955003718682636103853185459240546691136077621501247141399054482142550904019194521436334194484051766813593731051582462667087226097921637771686311763361676328491667167475175455730157237812904386572318045224254827087237581618626657440958082543687552836991522036999815299758708388149397173783005500525879257267214928604846706880999764442173927647676433681740790769896445134293224449431262997523192930045449111810207076088643695843849724804974021689890920665569097977458204347221352909582715957061321958693734674038270981660077425715176548553429749526698186249582521958615383965787608783071037973574742640775102604907167315082996348326447807374110390554454194487889644825327998481933545367346186820519371927305847932911973836008569094882321173672317518339102715156273326952310673634696217108141045515801933257810526105835496208732322327715779694469133559363187498119607059552751775543878647153886126819643638563517936409832861693501057278744267413711597406543733803558393299171795825129540421848322441922291799369463624937833135996626114127237586486421075725626840152738063930621651201791536085102358305463308558261645427226841517038033542717908151461831245891672978428448381734107208920970915709125944376011741214736835019200035770809140644499846466828225581027421745663583794395817531598687035400793302652748429456416933422869241474393564739310770318222916161160328167820792636635670498092708571499759935118617154437874103289969480919534541387915039698373924708586384906802971486066637365775641357036031679906456699900620548423124066826458684097439960315569200446597259493554746253861137099698075908937338159009706472774861383588426457605918879197764199017559367912548205968418786305725853959372695184431399164834234892882466584537076478778942559893544390380486790612907022858547351603480984248807403842397823638760250688021519579740740705106906540932779278891919191527747797756116678348374032786203115892900189635032869011489035757672069055850871027742481607936554546024543786544512443158763279109892077564727192107167724271881026056655070265079033135631757414553128447038703526739380579431084800986024527368870416322791742050928795186081806375211203463924259250796471804900100574804697711426703805183011045569882763581403160135845574613694256245586048281682577878598071669126525538428415429406339472787720952636154401137049365893806657996976970798371436429175597698117807082591069883709230204911244589054741186576978706509659090290628840235971904890148045266599176455825585335795364970418385581772980527471593161040263231433367715553052490001109821613383241648134031414536848886409777296249186238421711881062519657485741300196184826925338016632537743442259529234158930466741264814623972343863644232152789078210787900705896615248877822260652335607203167774551520688736386294030712001954107505763433540817053821122114994984951255981995641174653723967683505568198015786268338087581450489600274328861223332991939651404051276763613296994260807545988698310342004408215788558527491033153343682836574213898386296627344396453882708875595844770709549648668167033746296038529036171246683517777998491452532232042670551443862054757910030329347739039264678848655628670652393362136557897860211240820534890720326991250124885075343930812967858009385020620740626965983361107619490874422834588234658228149713513316450298060771248447793892518731153075000728164439489446970843864999559767369978750400766435512123098808357749600984377604696849680471378468095983912699002849313890132844604011766241591794604042222032085558384782589548165483543633798352388886160521345486050234741520880869257949026817073685080486743126645312716404730994613905535556257264017946132959186599189045400808693085998397347495735666574105410598802966351690553075213904416095164696874991453996517945989643199490851653943366726434851467700177418752589833747004144344307226681370622992627102372683731751266613308053086804668993356190565033518029477273272339517054843643873973354287386975015903705565842369454673580289315521751486730505979116000325740732888308146226906018340825344405931773656584720466965207957214608114170371518315321138017795549305780671286626501228810467230838417188414914011884411817778789937424769610327879969453288772964105992176457706795848751280297233673494146760380949031606501494268479811345061133081690838880158966897981772399078766260682833187869165746902270036322441912073371621326203855051093167608116364810217301344236043824660962172502645093090642003070708174310025849671403328521360460018525354075576615955652194343906193667521693878294872820600496401124642932753512283630585306464457562891990361792696446733621578734691222885078993880106009665248945386357052892295807397876908531274830541712033096280330856411750734443381756668705958240570488410716780265997159967510478504758097611777808383895742107005523785667092244529606229211856667144126163272503350547716928124565772040758825385709547453627584100431371905273232866640345554155722616947393822216055691431228317103352773099725290427863654945759089485525749715028184053589942435273360044463040865018107619245537447082135118333020987400389566993693138735419057376978271718232013620883776667697797096883837609226501101311263198966073147189548499468136994195897411674120323915411047745569436842330972790342764300574891882651093294028924041760196184104642471649580036491807464964047685235909168591652248312456637684024970180890238405746232065278812888442818183537540276194431617253576910028469262391179398923276421596672462747554162369511103623651329262610411263649316976103352332866978403716140574898540683498322679003432163949323780716163769538781944816497568422373164328829284300634285484943063768874026992681037746148611479854312466015167060803708544354517553856519167405384063681159637248136480719342695123699536163414951219930941378998995228274652801958756843950263988059550719993336462863190013269178524462323394416820698871607704556071839968877204261931084622329277356411662199593605361854621431420022672878359814472229483950988349402049249437157470889079995168778037296162654177133058053557337218331805735341166169980649636580373193064470589896478131435839150911224956622512761776064458788912038156091465443869586441136807025394931209886276947034181052928505692630596048965940823327065674304870326542086046122945708334414369103698226383744038396224499036506694422729550242890631810087316823255760929618898482457476787836964204815619078874417779040549285445847670834916484814485488379544043184571943259062999228442687349562598265563235231570795371099845727755085240105740817715969908182808931638830179545670659733735625559386211666090813458140143489366381922264128877747959634054049684510429901939693633246725568568114111809063729754568072859103293907548122942668992986076257227237076841096401663379269143409302475205308580919328034617287368999204622937857958444369072188178689491830075766262699723122568836821008587376566628973475518932068692564402729322752921142124043091986742297766045551860860486983892316816237715572918836603459872259316055915923902238159293435380117964989070965892826568344356919762735246577262326320910428047677525466800897972175903224457624359372819838953829396902717200416391855302635550304514787553346231462427184968793338912445495903788831490075750164227325355128450321734962567109923015907303339423793359174595922218681878747639063151588595311677201159536871427598567568550680578732807247926141303988015580496074019917883780686288547542503451597585856968818651081736345056728157982771516067817444793281625319847256508684910396831487776191482013865582933044809993272716464656314646823633037089331468248453566651386458673050652795454654882772680194126538403615492914881335368295200124599101474120229881279755928602896423582591954755136363160703551489360837966976076813495651092016205478221535200695689955909171303348966545553870361883228357927848607138683488004677452204147623015354177874912169900391046545042782563668853132650839275434408951848432771172696676218675219367581693949123940862504041596729630520465695115845656128971764314469479368805489478760735465027456682825146077603915696854652404597401388824410754595104819030475387355661522171933805748226929236493821529563661798507561204866050010766219729724671822768887860929450433718644425922600989302043982064680087816146471178574982960279422831176996118586774315889416111970371421211062669932728005983108569405231492127362738248527531256382939123653549384740304506456225966127033828413719363878531932676190064458810628796390702251123577882761480908876852983283151181838553678279957413172326764348067114695173794651338180865974255545310860661429832596316156486552798078423965587568701719125692182365937076358289891743766076742084144962780915067872007691100466445763641381526112886128292595859709114872121410942899301398295003759433229201470921348516545689626975003567683134066278789546252800995097438465913779345425325651050132022910801927181970902338151891854630135421890033766785618351494557414723614683117886832869833358988027161872076234432771614856337523754786289569366261110266451094752206177568112811383125107584291929898634609214077452065796895428364752806671362385379895355826041301731599984110703564113392236196657367077941901362110103353729456468580738949629727426823461148254671379922954674367951023053582838938835289858009482443860526319775154432118725788343846944738324977718244509382366683874552806241504105507371464255941578148596955410999458453311294580115835634118169050469673827785275598444559327815572242359367825530029602510447428223898985996158516432534903033535618797646287486049223168171969465770333232749304959612380731750259976445142771260968776688966049332794902161765661496446016654298058307224784365636386245496325589129807420838833741313637365543182344393025693341095362794586807369881944264351626923131484623525069342945316146739997469357085600724977300331122697974976698783413082245024266099954533508017737045068392743287945121489351933661584023441307440531776284309166545928852759718970825651658885982146223831964216647639129595564196353656089885110952704761728683790600977565524332941380048112089341578108871625888503048174322770737041127232528412438366638119505776413929142240611144008532109260102657963519979716549802318976755419781206155235089233610384642166672946276110828465045938298006418494668483355427203632947262036373370647134876766295473662690709043316649037698372314837460142137391800978972031804858310184741103444492899020599546966983575124076774581254108810926230489186372427890947562414657757216912122633555321968513350649601708679000663271795411972485407770213990361729543128614348106642688871279488463405179617860810263501129414004285875314153477528677859690941646751805789622767357872150365232434632492491782680009217659591560076809315535045720267241345055971118602068092824669214088333036375453386348993419419608801275594087781719496266335300918350797807766284896395444956311699083752252214554872150462168777549805163441380236305518393999811300441717151635679171517988190983422987805028843646438199913667463053580141984489206725901074538550031742391964978389343328054661282367698830056155370908724071928059520546789187651194238946878869386571020988156444263689799147837925226906846549839105782669008839168985839954681857775729805926731933924305470922931322338987874971280144100140790318353508298373130268838240916439384593512152983900409239024453117400574978758160231432514904082028416975058212092069619149874949523080245521005602698172003271403175083180706351486529250287245316599175167248566599835827417790332011976188043866721947497342146436236906161211229152726753953013909296138915286014527070622787859067263962528117332000985267887973373352731618646893225861914760226935574520290129508115219631051641748541746316483389921487653273455409138593149744725952704968579134376655172715314779624897346560584659318331991494745455260132832815001039325946917808485811294682192011953465799693292326455447302751287494263675773192974572098676643737427489244494316864711356365730433790210877710296789955584025069075565358098741791244625772092460268859000844041682147934405966550877164641987673508747630827004632552277765404228093915157396974269500871501817476288198915008692767449862366477962630249668183074694929618111956999455014343519545124770910595241143735020125218501140547228026474495304724162154711506271712342626032233130012754227101366027856066202904913437629287983541786853052235824692786933952738301236352643802000628891720762603796809810590081279727275809521141934494429469707525806224110215834906415755477691415264835214432727967459478104735646690180159092852413191300768802067803421409182683552542586225954627346457190758227420007799285826979377623544516179235215641382112716030606941372899262901561549847270902074675961850587985628638259761576135425026758329324925327981955907763739037188362924645473325352623288471293949769508720797100373334954276284207546013767906242499813328982556976059272470745778397536391072528013591900158458831242606963073579548954832282311912437232932265964443325588057973310517624812145095564673022048429168050109000562615346356139412695464364777767306778761199982907892266078411564543005808222553645462101259095926447428032709348158596904614814778816814123891725986983844365641714724715617331325630389217299737020577323393376720677955021996165948480010474419739538514835659002970190039735066841198033779824508294191438031560635713090410386067365487523909671129227353547439264134466153127272133623789882195337260553828086737525008834724251670617941906193557861370157857775285650723730949131483616396100746541722298786869589376189694009098920507836704502829700215290577119806629209659046693081113294586155408858721442461762060845412034344707155082913176305051634622306803407712066059160611388031335784953833269622548639294784499731965975602570233000710687870561119346885171101369855143510810390791880739112967417685203303319022179862264387957002732687702467354366502927221228003557500324340039625491203388412478885842118024416655871486113553240391587777385557793187810683128453631259040618586241583882126427299257590426857955096770286125721265446474737172477929286867014613552876123913774537082997281698784286520272844254980231879828966261584913894175723741300517146248151475720676876934125986655447330401024688107397524332434652363107404367929558994757561656356304767006797666471892069157032092412182494434870885299028269944511315352151261137843621907809598012216733683025080163874555195807465440630418788316089140763290384514852855522136908508278104157038522640602888023630392267874676907882261105860336233987443759590504340564571199928049458826184662876388772768305647336290881432548758105807709655979734223906382210151319199250881875595951949872464890882885889389629221960984320491000110548315758573447496723592690215340308337927273135407755830882377406812155490122198080389041947423038691399357754767368962133286377048924459109753113276334495520468911039038767410119582215704744806200939151840726531878562160142130708974420802356475618342973268592622848615842819657273332478367798319343532513285871123751745840797268934133328923571011983674154324282458124728008659475230637864849602133168199358304498459601772848548849128255542558155312791527197926915099895457028553183210020314630511176473319658647823346761730579806362524250071501673768078235749288828652107975165821613585892383709937227814932290606938393258453029571271261394885436250933802352577776747557327137620275239216705564789690682371636472645951053553907693391584793064950717124823843568742489552462412435039160233920747705329113137609921786447948797567279214768115906307899220208575829547704726585856749564721884577263128612924360697272944958086601890973126102425914593791321654487937310622441751260707063699831658710717592888508133384850588779346143376333903286606357065383368166105443470651140972291667245242911078958051808804893508556860350503890738355735530749513265607020451809058949234572252788813256635053484821820521777860480888026398964243022546167976380441526956574952709671369470753584251556412352513950090732982817748375547476472981258004361588071944047684156789565847068838476966113739584701711692472470501681955599231283639901448655625820728412585813031630368124289365327713006640608986568047710634307767923380419731291521218815422748568753813534746339181338581470821542137776346144596334712899870163344270470650326472438889713278255381156977351036618338947078944300796374311009934322588943723080311459867753930017991039745289524604535617508848701763773026443403168884550725895157005125788583168154424334477145322095243823167945866196851609963651725875242613674616620634235370399963216112606967935850214414968718589278240209432981292953066682484909598318002973253611484795052165448203880698373114810692616753136485897658746783441699216804574549935263989032538933181083462089327525704906535888253461191859468161610150056393810448948710019800931036873137197229176422146976784795197562615436202908225458168611889219075462121351753798925222108422470034734355156137030403619154023810087138102738925261376534244816813411366470608081657523354540435877586407875222909597771132149133776159116184351997451646383871761737336988072022565748347857069968592828690272121461918570456722208016809169046468879274207701511388193281565865821612567337324924055450525366651508396760645869371771804600964228296773670062390444765456707969186504037522298283143282710030874475816750422475546445635866270619274964884199956376756961502982132969481525943063410310380838370275908405989713396750522662705689235272236261569395365152541702589796973472103564852849750407659301749400534689872655524012998897876594664028237439182536096423542313931236928279925424688394873900680910555174621490927488023966253394215220343724377550731444053339984416365473366168791834729146572310423710093797090515835394269657848249286042926489400291651024895552112408347764660661331922576019006035666830885450378518112575567107565138789868913811767207393435419555424970958284355205940547886617488331591832473524588618570455429759052597571142422280492283885589237609472110012250927933148975718927665136017380338928217073286473819292860165745220149836241893975893412787678906792937172328675177515154583939154295846969589943040769140732343631442027341336057876519833600561896725821672285112030873167324204257393547772898419606679545410081907122907283112325369592105151192361519942008091716077750666000144029156240747045265438496734037447230817865624985356276225591198661516157024687664503134735637646605634082645385069237419044997946484046298333322495319353335327918905700558408158282647696554006591166681786510410241941056605466885548571629618092674157418492466164303911525442613284136594740679226659058033489166069321049974384846399110118172758795449191030877667289105321281294915561045748334368826310467696153229447388533325338477176943838662538465670120987187954813404032347660375312977420491268552114535250469384413469077771427998587236826220162986366041047263957008116591621587671482125948894010580396529618642045382146152749096773558871465718273068387006423890122847755462653617904867658765750488533679236534558947740733799323907064095932889157902081860664191563971264701162201719747011593957980103306744774196581107051854296826740839982760976622851344954761651165043677918108280007372600341565316356089391655257201922899132427768110253970970987441481095994358809692562388843662308629360646497279535660697527717773733613620762041006264192609711206272192015828954558638553437226034774408683859597307273945429939306218246010197143566121576665588090227282747096758780549850430847480309088114935295514254601403719415542046644705907450449469987614964300182256005559226843056497984971497549158482174466339103906366534861989555083813148769038701582616692339013604509376842821991081708937113201745208911891139486723584034411118446642444074061369335576225886709029226845332304201111207742805661902238872327391312361839257845006116009249180596821067269889379273367002410458315488473740533795748546307739924254724867910835998287475382093689320046089291155721929193817438379491203539038749813926811840872744513831227276374392824734947733040847875839500021208975415408620211025836786056573068428290262766170788215970989325134895255230594046799791862671869986326712100242243605855117324024530156498557229410446117477244219738503849036612257473984224620932981143953088576178442278769015255991017167293987504533485770749723087633764164055590732428241310986546619467307502337291986997204627997494395749601175028013465666466125246167005393523405358329601833033857942149367501118210313363781188993128184910771317570851919219945549907467623050357731460128342924918878984082588080641628909101964888122963727959006575632164206208611120209649402043794643519586333218061160327316706756038894552908421026051608880080134352307490216343109520972371573256381777548723677984351007807884754042778781701712806902399025263654678691628716851933189065254972563111295307276969541619837989561841018804367408971249615391309414163825261452625412566832172868768758494896224071876048021879155527815847380370955137034350007597707731645247247771289844637984181557966024142377210226771062333372777154336376889496769877012748415821140032424240262176021536940234926471056242299328676303062616530266769799701873900978467517046682234597482366910837498655758482361219350512993249348700165984970523054669624991031591010016500140985679944332876787819015445887531283863817271168864490740157216325689318129781022158679101387847200199822659913867145063454138942969404392307062139736563700979985856752751001731944946731599071959378199857995950474891013761226110583266071100282812855258462231149788722109892046000519221379607770882811430300806246162869215628749100253108934406412462882791774473429380047107677570194151065568297581488026781197111170705226609757056440579206576550805363144562511141744925991289749341635667517978407681541789041895855653334067129996682500359313009548380332358843076053251258024329403418350589289654893658028564863237083604447998896892131534289411926956801265511155303456887593863042902883483256983926241758119725215473812709366263661274305588035271215752463086292356666839890463055431467955785696574504063047781707129961501724883283343536270605978452632696279113209896188620651318040245772758638483356498735737928502704975445568062230475295221722140975143998269805270978828534985795807003388956643370426258658293971925632884789748516814876286199020933877145736516379281882520082594012081180869017460864497219830148757095614562149382643139666875239168877732047044983157952998019521013588152214001599723776300337228201149461017196729724364084251169448674246804488023825825753199128817429686180603587667210019602805004482976193696443403532368483028942792725048120580021904240136623648884869952651346704466677330310988614325286235604850728576671193793068300365683213875683547509426494920985860705577063785889578772480936591060867501260347047264700858135579945395589489490428525037169753795764887204152684827519730483797309958573703152291612423627404384858612251448645463223621473506817348373778997352928620222026456151380488998197515034842264133515060597931059469183777834480359788912718363350236521554428551437156622344585637152192005381045673414952208738013512552208796152853634658972024108195242202267443054835659603448753628287393507496241313652883160062236593183256822674574516035265104748655338713773368442037419968042899600509333482768880028433730166569869539671052689454670775448523401679445304952653084329394838450128663443130641444846241752697384303011217979051753690904514315354868613863067464142212502339712154127491304207752133808531469262040321304842383634929163022437375861038496105778736998618519760538450258478287196351069584928805008610542686545855831038013281611356619576924468328838861734710092675152854426891517545404507144688104376167492196637839388823849395801127205854720212547110144760762792214522065746887448846133547685122602497944651536211644661627828248773239980323362317745726922097073939405547355099452621195207089418786544868951888958239453226869454491658889563948082973412279186877937310064830859341786207856087890420289904500839261018062338747567347498393622982844362871469763263464137356423495241829684137954989365947180451426715655917637825318825165075256169765735555393137777584103250212453474310980226541092242200617613221575078493118189639692737363532029955104856980415750989623896636660473216014979909610716304532408534424044175067623023864767705713284257480129526336909973813213010758751198530178941514642498186155963263097310949314246762373203415493917255497702282977903174273974083835833275750670759656280098970172107584198014919400206776695481942556893783096735404653558654366161053242151905752714383936760515325298107268291231258626327166700948526220064812042070374318787449087770490297583769750733939606608619566281771121368972283887855254847129050973121409704362703439451969608099163595087874606893087706028064998358028931849423326576625206585759847227418383312288428796764069047555472344822779182689497959013103161350052604329811366300750864560773834945624329082407378333198808598077684147049159776990653297301105231120792693449741990384889355503676064972852679335340174468109696471193751968626925958682867324501259989119536020539743718348306692644537477491804324027219082594817176528885392338459801170082858148346823099369468702998967106087842454555104517590508834706026277100221576442871729211189975249059156412259668537792438090084876779976521028482371554100541654481684614061702296462222089799038575511364211106181778604713988960735346723982442068486275146253127530357355975017516204324822641077543495491375991109127780636644855704518179864551509686722708769818878945315812435648285914827421038818722527646652209993512237490521635280579856800707269126411210159545936433585554360872929052270350027585104815249432236925941893636870912257474934078761334892078821362627556427466739102835672778953751073346698913855956171098461046527088996396382279420442173046313813319429766405600439822799761167318617621416602398471255410589395930652403655181017218765110958170310574864416970540558302688442717970164487861314142981844139628747402410471814135901081385088723137327385907700730292772426654490459000091830230970467029359141358188662319759168519512682215128484078912992340278979746912614485318134427476596446766299924031938070740661712882850102619482738864574041823046351491568019282525709216247227093481837083271016176254562060544519972754152260620952213709043084006301542827012338010880253488383476400666287007239195653297403555577642489062165319555879110374041970809301472489043220267080394595236559864776268194786559794032791332275543337607891558017673161475347277889653184471375034726986140697966593407208688871718165848145962996570194472155200669434755373441758050618418733842268521708099240011807481178585222302059132463675789889918342450293391640826209849572255066613357102632879143246748608606437017439222753368373256506566993692350689453433020690877773493667062509896069640663262290894060395746376938260376875695429253600231748756549307540593913251740739077490577676998405141801823166338963661557436343749760032800570960790653103606777775123585304427502257814243222603280040842376030492435915130889333818328619058972685376148850612459108810686895319667932310368481313054432944040625537365948065714479886167893029968476624615784032437638726899486329901611442795250625905647080772141340691684511795139953963655096588151272806783776647744150446937417818971314076509622247793570311059956829154331629190678554231654360757567116013963456554083601774756887782376027617463679931758625829708947084302881123545314989152499664765619775561566735387906777722059791665918614528134664297901951865497590285166021448607860796667526821983285358030548946954725796415572172098950410993167484477143310905193668780634779882544142739975292296870418003353825021297448984445314707785187149422592277237378470678118989251143626178912383373305296193743300981427128735938589700216575272455584470091614003176518332219771422497031343941577078906033275510397912449621973803633729082377169224032113794045866674511052394530222761934702426425968190925362885151551876775765902362828154018220827156202496949157112293573182953166080748838017768239355448525649991043156506741939758150699290029341295394111663517789157071502756233715167855708904530707235536805657197469084018755176842973755941947262962713983433668328303162049364404289292138826526068984318249442887753992582057168973082892254472638166925071392982110778420577972145629261656181371699640062067927932113797866028975935986033178579525519253115999180756531476657983638035907705257175567894105802335832577535807031785477944724682658903889371964863295591631190850195615875766513451897958948866214881286027850896253774165240803235906484334368037459004173122213702484976109705968561694006581660681890920193181069141334476647923136850539161208306919394864108251079522321627672013567676398051545024239838536756573457577923509042999348459591191284596265076748952156684197564937400572249316576629039114381433416356107929377847925502351019644653626036900695802440708765408356937033699552891629994597703181601337860192176069788735608372435634208909394992517096527961964217470428455952274144223433852196529253624279315874178836937855786272350040846176360710390531155776233993451246848229978649131260100231864600280353973885690036886459937636998192663735921634849373306036660573705426105217067290706056431725901498386755577119328805152834051207894505730898261175262364219019663719401241953975023791103749326310562901338122701300155938071399724663819862979248129299661299729297173723295975472068464724127822637029263429814616292305933423783404747688690693123678331711378984868293605335103356476073979391302960829539019232060294293641795768492872351055128161864462075543765157285749721249619809188130411763651649319240136672629236824217487716528919186593445707719029729379794013526351950201641794594807876279163058627587111499284689716658778407572919468543173221410707209772081124621849118336499305038923680974285306687916828492047910826196113991289441452859823783559777459993616844787300193240444235750752133564598017755966877396895202857214541168813421500160199067904737609357646892038227547521717798793525396729764246433531922112610520165101725751980278787139683725814308070661742974376785617770208139809841284893840738726449966224578228649138823727050171106734705307265463577244394498692203869730124869959355056957695277057822819066669462955469960416602866652451872702821564380364027252290995191844035498456095218203279752086215384543740549719881668691930502218300996911828368907358306829980723370816705321798507351957029230307424412407423227106528291875584267263109037413099652610886350760017952658178238048773665768303413782867809575752993919893615838647941159725690756601510882340645301787734794621119657659948687820945727006722308532639503317981716485448239867114848205834253116493817529765370008164583727689727569548778609995228286149369504766087061472972089093501331712643574537068904645154654500185522285595581525435233444300372219043061241413215716825690555127751916881008254525689564154778989447503320775170926369153447791252670833215633210166604885304502407456103821773164873727603931215371450368803103428805287471432100961025165370477584039902712570765091984909092592755218934854588466928551858499379172943337159614917847191872527219081531024325121899839467089784692230424449521529906227239380814680049281630388850825997778056582488773036260324606729628284959118504519529478687171022030566083588932548672372712590075871946349614147531109105675508513492670885504296580812026045451635994038112326934452230268010497769052529880273476990022266501638493706399742501745973061171570477125752442746495169059925803834420596287082961114963623115982341888437535635356821810418317181473845589681004011093572822181258826675793243258576258098338233770055298557913611575959015154971656047980558055433429402363062346841651576303406247764069449951910681484024974630501777029813000592679621650940141485432109488273202879280825652910921572424041254400167338504658895286516240130197541052158687547412547301472491612688934707130571517632312955083152746914536815562065612386367101051131508780945996238092678116496812565573107252657541219300422490203374491378768921644349223183695584497133558472712807288876627193991871316952468796530737113576959482162809891237134401251503937040750779472514141251448070895178768471554547713270813693882347354024645176021395522582670644054642879655299864580465648312248034569955247236022434102431056912999344098197082032410634632389110917615035064406969539822815184446977499499867092855916856620532547076613540363113769911456884631070625796116319486226685059816700464620376697584209583495693377451744335269332542526706670790410261752373652582194602111224718584842289500530951027478208925014998602759802342623476256989150241206729989586617952413200346878071077987955887934380096635101544968902413431406004186616543902894994576284395769692855893524612894853282411067115004978017715093093269027575595938387375236631229985809427953541685587722224733328685857970172607183797122686176493325721585074642209242288988967150702040802035812747636200376695601977193239097855908715385376826964428298230563653187625879164239888719004162316208542112023752779853208087491555186564352884010647266845542949441608530664137791673275708587318764612756930845679679205895872358455425429510830291210260157461373133536773446663584775207002496771055076583991601638462396297810329248745590811957400545771627841622686968441286324805430925397704115530174756870881203004449305731026939134914903078307400114160175313341042078381941813590750555166039021657658736708129341626777906689706155548823735639146949224445316546491130578772495229688805882961904753802842678826059516040559208282564598090891388133338648137824312184803973312709352230416570439121070507720634452204145574266165314557405433877910853627961127965399042222910300332213396842797492095902416677541055089419584739197095037031702510900418280829052903439920614845536249248215905943234473427004730757237017941543352461618467289744942922491902609063489954313518085623647200923230164261730212802407820389558471889330982043306054866502239470126182423287832673267899378303348429668235825372506694706077510819209446914791815209084635979334411012097744587517795126839047322150152070828070413404360452099785854082743924088228266949461699717834427371141342651682032520150615662456126616612272403264396790941232027415888337105181956300190232358832162192824293499880810992689514584992444071454161814586487160249694824553346346313130306728188017585779964959934688143824419937256530621323320184901330420431347229232641385283483123487166260704249696887062030188281279482119892075129377534903791033205878986685465209339495594569523413169762070888943154821774043402211245271521626448531060031665581485210201960544924992743382274305972284937945461415757132162070700868656870039770502368654944595783007266700222192316550161579939751276589685792797347502986306935794503949811442919803642198018777924865209071767616756392324498872834836662763554230584946883307440693294843854143079013922400019824092936760127417509970839310088860397700373757576377848924269999846799037165028898096785100951845252802495749068167598284721378002061374826364976601047147931591625241238607433092775683165963312121614453904283210642985513982983694856177826364449018813271892195677142548857064789120056933067162817602810945865213405049661052679772510146277559566838516261473272544083466627769572563168224063170512118837307147358010991441244959375899054879814244072856467485535748134646461850368935524787687139297502088270984590753511673729804825448281800904067220762752330748238338269828671017593047012009372858948395860326788861992532493847718831410208188387983835321841143297311149936443678687902760160741622634205455265853315490176413311026774872452263657362662395500644829158706986770626473693242630643004161856553824849479643281823750823016148513194221218406031862518997469551300707349561882943927017646277365949247615033652345160713732755530401954165996412329231934879037062249195660332024398566825609908765407492019520577131740647698640456016762567657154354019914419691221249998101554953798761154438664003657603763348493840243510834153732814670993440023247808124967318917984315404764221016540784838288551888141214481229086438507439571078000572758563840779983775767249014087648712633732417109081679046380744985366800114735447995284933119593991266715920632929656866784377934431801273231214532996270077985020829243616264114644885900177572045737643312408189045382314727911931631570010969880388413961834985959995917780811924778190506139834450397282219990850200541709874090820126001797305717481481225616112518474716853584677154484288295067362379201849484736230950709416565660612051788438321996254226471319237801456815932931531954316758054873448563121428621322602848241702399008891306123273536985110123733567766591469106847980061248319153539856078421112670342706144229283079192603060462300510377317153982576784009255319054686346966089291109296261430609399888534412772526090805943706841166988597181938548955193413120333759828644095774279933746991415897873260206331540834946513601621741877576525788651064562693216836458881172032518284047330839184838931037317194796800905751261941837074874516998962582228702515630523343101998780325833217889021701267428139522313395503763281119527575620157507380096860886921030679229974206201716844683830549371718186646941610639248800754398260832195276938564319334650080379112610297812273737277718046739836021326957907234140010672065947013835088474038956736902502937182517133872189236500488180455854079859976165104367198304379889293963148911890397539824654076298615272945836166337770040585806908777809581430162328738935450717677000071677973894587994576562008455971410552184616272021026660626509996451917709066164493087038079813314308497176350691548855455078292955945947248222573257805098018613840237819442120026059747348058056927247760613536750177117938340807914141966639498829247973427289216894367800165146483683926933829494941708207011113922945035568114890376740390727625679634623183222373813166112760999365704726441293744250677505130391266279149422006906126052968867159249701116005794525223404876659253429371443854184245455652187573276927835499305250991686279165710016567168113788325964664888755919949092354400235698701556386091307018574190891081336726810839460813818417494806688874683565557182392927466434087736053797263027233505056642618034797781134837075718481840035368961646439430254867891665372507210988457926715058929769260704809565738302049273799538144209365959004237007476133256430467035456827920995348757992714138365834041267348536256962185741475718643931949340492076033981108032987834605493304591095351236914075045845814110731398388507925522673068768412217002206763231630173376611230745690301362385922469423993640348635248269064724691833879344448566284356356072106804724136960765180496248695081021651645985639229891476131889397911085027957565294955032387042377128766043106996798701499878212588354600015831542253198276970912953957067724632646038222436492724412107613946067356927156833592208128981697304443343673347145515282988633564415066727003798534741205561429459202659996875022745085137569271657215746432699732884759426375736464316867876878688145091739205459120448659017068761327993515889302592424800047746080772127442879512458330386825358913122932854584575242537025522038034901943528661612816067086000535517825079707787527313692816980766066025340492456949028908134624778088820597057457729235955672140546113994018539058051211438087781282560591412295658586273066276401231392340039707119035769361085680660674163870489775278774465689893478839382692701076393079789216294201730707255164019619720372259851327771044796969365062920532080723529282986957579763147839637853305248952421763463990297022775802016592895146270191647146037918881525404004287179662135160367633544673958617404275202727621433790172736057452892753477050268640929514093497512270163590575019249061011793894084324221843995168627329678494945751182723318605887288575822769656357349566108208010122856069216855737291841277542072033230952109785790030837422990226989563576341773884029282664485796636787942613865832749391087171425559738756640611081011434169562769000126395219175701993076056346005672968232143436842062553272967949191043955047655300171304001511076825164729058375306477599922049544380812384672564738772637902673644242094036187347511236562350942703868556127819345761369169077210581058889309824702775595537271594711828456269887130607562050324327917124202991212233804009566512790936306044310771474683531742902699171931270799064558444126245282883054050139105339514542070705010219431747793739409744968776390557282722963893133601190025808687051668469673414926030385198101239732147368045442178553752700922217030761707682584881735445915891342651662649627382531624889172077840218997127119212716138409313627042741752276979428839600818967002095737445938045340573063029075406273393382477005679055646256426155636636366915576409428538620111649588129504580926981452351162789055226691431375731834281511658461739715262858184592961898415644273508142195583398938961188967852261748845105938437468495928935211578817336527544223092298180437420636888571515342846751743789437682585677142710434329770138318530004862459657168200554929201141120479616793053354491147272477679330842988778487642617269232470572995877381013189970594080876821042920347428081224819507808329952595672600386243611882959846584838908422345915250772840340764799763680284256718040783507516625913284042466787720939950666744551680569726462768641113865449616822464251329604367321644144168938197210466022128139580369880938999682584930985143675202294283778324913211372026391424672858987602615091115556520280685967594358495248245394967972625761801549553609667574027503582887547992450139451322534849222150150759705179151458344194586713275341130568243137632218367887862459873580769235636175725360843550225391473981056731550328604144778008596782805928672980945365039585857342911595353437847433171282833917693981008067934880587994084891111517828525258477522513913903692778412171378502536368783273378198966557477452004344504750583553279709562073282438849082202717223746992722181128462145313394063771211657136888583270820438736976015376986510038881253950148838254166201031014675479031216911639160079457977649271424131845646354808647101671363517630749721939971742360413012074488463553304482908071801014462022404657157597153073054333263006985496486844266099848624585727839349550785799714950605656547086712260284601473313853348738969267053535818182173910042363693220831122646157130226578821106071600752973021414827163466534895919686627105456271514292571111619879279697520148232322563376065683295149293400846140253147067394791541933655928678252493188845122471475518141887436922132180550417469600849991269123512699596163158620125022998244871000503628845642645043062063745287102673793903198704542444938282863569787621306197210970717670696944055416341166999077448346307152554540581451194039157914156481568834733541497104195991713974150605414228805010657860365447816879480252095864258623291618571265192547820445709963383871693250016357912176400358767329014009960415405942001735509008551324397410868991729369712663091185138282267445586356801479010576847352588180103698033575705696311257607967844125411852747393506154650124393199466724199737180274427269249629318964159837810294127550470019159478683859520612127681921849022190491093053364673741949344760383299092910708373629652267169457538021359620262934364698890735519911824101378281578338274639202363303499868778494593956087377052815586901952677267953754766000177370712982698820127103733337278779064458617025530106530065472492039853677775315565749362591874880835595918760093046002491923298557602644105255249122975887070775471083257754836221692797467354802172289487634619902019936419162699200773487503187346399048555288329963057695751121598665993228007148439085058783551031531424572625368821563823326843578188755723989578228479301725440115176958813485306293033695349682438487201073514052044721538070459707117861597922872873728105218762207484840404166171345496333260722461467729510385174124217511747933097567520301845331721067381096997250072681108210853515140141983560252683610016970889084810257810034075863569292198154541785040553441753412341324745299423062700544588048149881736969146020125317651005540130430074382070543347907307047100091359571994732935199253158904504070391359870465634836198002440061572329645322107842475992335181660901744824235182275601289783136097857774166622498825445796209686301733030678706103592933077405720904092011592542222938768856246554400626196534878760953001013695324870437798716350837913987144852021982297065160489135042572975948630123958561669232467416445036128148354839936662968312651154241309179007604216104380675582959486925835709536239261234704085944301640095281359689460693036367618859329668711731087955568777088750164301069327579537136361341039775824792209338853130388630767412630889917905035408746795180275712183470747313885230784357937417748451038828898322539157596080505728899982160381463309477407393170134721446493474350839270499738468758315293025116618750351713562061684890531096368252285288342735419514679711948126845749731587488874892133961524521439716263819987010632684227894697867672566763419048446252194345188970140376374055926413384047653997255011425258455391319490757483867366104659812842491029527312156523254937054260650778928417184332651474657461096990346961590104728502894770984793750138918591932823624437806961057264572920566962839222825575600436701348846708177037888196731506694568159877598284361646647163876137455630448854583869268524879890881946493497016352816032873226404638926999013484742540291734060413105459928749545661782999930313791960911905733219091378141878440273854174689471576015067719636560687720518894722393168611540305453254685362355067429921035861560058191381775103782407003964000734015902415412479880225862456668564583678601102563906870042944986490375100098906455412545686514599082028070908635836863279309548313646370018982822469140341709678962359480657461480277487398273361374977698635286533527299328515819197856960171345854097552106645197350009944982825258445778819171343123057555032121374254620121718909167007869926429624421227289527650823901274456971621620849074151045385396268349149897834682184674845776087806260468657990461374351219462485450170671217741736159119392211118437064026038504678397527059589246736696301946652240558241989145839284200599878426779320728555655552710175368798249557091970520260320335650606915696762707792650664397144410578254821272310183551952015366559603601718968331073749508319091773174290215739142258696550977224036828555027366671060580705671479043478362897145895807523950174774986985866056533144887678211098627361811613585918852813232817375051900935093069497979184829111799659008506874024823330586703235145502079997185441512812609418816810850418274937322335469414547534237988258600574941614630943356267612997991070579101768534862221817887640708675052021248548350603074848072251960786816417994551208460420024100107696794728150566150284072260865470681012041608927443904179396113784261084307011049558046530035208273101358915899538427984578909167309853334964759655368785603668304967237510153928540476578982675195315481684228178935963794313105707033818858027575283491666316342945530517587782811916364080984157727308461503158607968773790900313444651397630422969688623337968157230471891507614940965204886827854316764010434625983339580550686517172954216719843710458828780070313845430207276831930778271380027836076590868738096395561424524673353646251096012680640087695973594640579601683735452594492037414512806989737051716604472671923139069214463302926306500831914680038858026838801908466888849838217452462957993499551855842313778250588069572558052358012954617901909524904184197140460062756612925694461428403535218902673580040352745307195747833811836865729021958873219015060429328176839851566063088030268373132046569750527687131572183632945854844863721430680235637150699699812095899256294811520660797233018076494155384072252949660670047508218534740805399481868986771479953977869855384955378355228350889566981758681671176059404600823280783804519975766340656839252536764453360606500920104074661507031758966029777067458526797025163594295639776913291396033795291785907098899058885994199250453597707932075044737961053400413772539019300439805881919781702996851396810377660297622646794227029608166468053942162020300682263755084966108098189138429895378617968662765043102322331234621046924230301183032587080654606000547655987906886086945692589592497522200925989107571246089776262470280774763973886675757489425504853143848137785267098396588416997008538278866243302676212079987014471729693774078629169848224404652294709539701557298294420590818051027268009440872210765503205630752254820506740189599797846584302695254906583580468812257903360031093742256114139310480340131559315146994876700615430235916371192114707070414229549260665939223534296468642275110409623063777441466959370112420346719063856968360443333107460817934196244192132208954994856784791310340328414603381761843046565213643559169610830291739953620178306408177609525822740866094027578402813801643651251731458995888502502116768010912993467909089431015577433884815322235661564181768561983239765868036759092878245184577232161804116417213955498188431413509141495475507368346970622670347172823797193092426683014447835431897302107157646940892770141674867130354212539569058638675916272335253909862164523984957863191013523083985143471650909057626009025105209073149858695935435921916866239136068784943322722672970766920209588636949464289123390242184178577915730678412171344641439740697915369867599936601081690151118479402883587441770238493758979793300320608511666287798809541546041386877734744210563076578527646301199054402209135837518923769031123921440910169057278599063657763283424459379213348655403413633908564094890515197195483799792242541639045302759322872258216081261340840497531128213397112900884731634275488180170160951157580015876199338808841613418122715860300115860387194566363286224153998663055160484988850083829000861208027583407507716004554740391698327505904569607059442607179617890676479727230621926606580549931175179900222741222021765898651656008797002068546847056639848773810553190517031347940873343832348017727543182527324133029138123022834282987354835118444483099506825367739215023570153436776631399827661538311076179661538770199391894056337710409286131299738129443452737470802894590051616224108375828288481238147771831526824704731470420412265607214079507829814329718467768908739564783955697011056866522806987626273656231667188295395771356628023060694537632137142205422552302854033303927587691685281586724728185285865342371309671757243527689211972128665373367924982955389776084207109816256031054242025014895945647246132628033192191949149781263883294202072627020620523115693497589291837830387006057147945903552277575211266927956331829480456529194069111697568385243121030653346203655842496467526886534363147722218469169840055549103335691782396991625739944655411337863576993854349502958862461184297690350245758254999144951051817064007043840111715169427241818818166602262237939051365112722186667162617492340161357217632833445725302252503002781467370428346592196641257945471493650326759779774149086512192335196786797975915545083911253589691840339094399194558613485109340571889066121950924082998555269644997224523855388869360986350548209500788230206171708756583138664118171844662481327671214364611968899827874159692322329744096971747410897857820619249521945922516832395813290801632480317272799907992337578154842351229013945205430991830572895939756268834142483930963246414367904905890688898560833418831402657009843964573888583742832680485585221445770178157619868124305073180121088166395020877756700530484723113359334956372338398129450384779557663040442429512120406605753632620493870195221460223951316945889321950962104080706852290888270059935109647846191343472671431954279745536344871412782469070914154019753074242318700500279305336254175648684516593038203085513237228793415178874404586204088992501565050074312426764971660157753678055699116864040823443845461971355866838181998311227366383199980046631108279848717802391017830435730520683505066035334206575227046565644633843794143936942789863126097701296777468803065936963680908501145698203469954843146056832170205539789777241937776349490612115643547188964862632448429043782957145424695836019700605200397812037391546232276880162861405411676113575295489935680440209269509659068705539783087503085815843969937415469391588571297274570684030991577718696842221111229584205131646450928912424048464235297608627920900494583496793881110548394353617986882696052543286118335332248818022538975486791407446610531919388176887340619848969400634278535795037102307035753072532752380785278283370116947037253087900011551872312934511111633173029590470717569151168956771136920568671561576442869583678510147617103676398245972772913634782055734685440971607035662937084913937534510314520755816501311551806074545601286275793610131457483018128341697032578336383924675389848320755470298318704406360357661123684838475373458452943077549868105672871923506486351714412651916104394292239757022609925950875252916068428356943400162028885077689494460265874566150856726515127376999397879206111191959503876907898782490216210813692734278655583260556042194913191529896787312306153279639955354514426424227014760223957328906501493203379758826808733163582028662957231421264045392008110324587972520368890476208846812476745293053861521909937661029419983532140643696833292307638762889746646001903857158162369895560420062287398444874532265186824159684116821052106859854630245010295461493992380373864268631562047386067334817029760590409297630132971227625159493695737997261052780980980239869848113229975855238896099991782658776544534035642626734122527548128696473959490073101914476227386029186021245662001883793550980075877636160232194392357569048757069202114901839172798300294720932828764452604184085414015111939346639628033998071284237526921434679348145688789958366447767688118287858679792443688242768284328285052959406866395177191560941058545138236566821128172694878739190671623192588798039552610583684452837196924685517681598810671054127691603242923109890997241330328613003131523957269082241005931250015636708322195462702615171581053339090600851339429951663143594551575924383758068749252282806868295497574856294731435123878937669524259047914716322930267349602310492438318014170659976673176912188327699428867937183978946558115766275599872189220075968749858235121936079498441154672498906775164794730405788792660197512125659326636058417700663495142598054712668564581844420718183074382652204419699539233110998234237853105310858892733229545162201697021637225768427483290755942543449368327232600406463361612575527141194813182044608083423365791533856127979280627216709904035863718165963141169844366175372673671720711138922375235242417675601477574944752116203842975986059250041746225049269813871932777262628534841801004200829220882314534419870310855095648944964125723781562165128616441868149119875955937130155537283699803931162155541340495278100468618078405389112365597601090876649938829340438837491083958666361509900363885618854671971635457846680900167118309030893395668873121264204320647357667877580810404292549618088631033908703060466229508194782083227429289703525251918756183075846680536252598849977150884818285955855919067699530077714278792736041155918323483425328427016472864718853618115269607960998979701998995847447596124768062040412108485785140578419718670722990122865211832109337672336491016788530392160163709228275160414565117036430367185023951640371373232717242543712730515752549485384170525073103162319010390336992856705807021722436174627394188683478951487245017355053006965541496235314439678077072610626331852255349778424047585080664764843096619341866752176460975459501699080675479738578253364400244727946075929965928222621992684767762069768553686810672355040004293647921134383102223835187242893111988398925515406757235928373352958741082592176628795004003305537662851687654039528153004405432302014354301734595826605951811648443482750754309062900562895589174058099581132975909752219866849428667047510438841055609259014255252303931726614188195608942188167104334888286950985498553841352858816386568388230800973056967711535361749002157565902723478026240784304767070014428238724840288980985567179513872672141364194056834668640800114927226646068114554307458495598118531200078795767331448817735105767209246764377724406902658990020969869305142178806412490832945825103932848247327862156297124384297010040882164495096652118442810183427262559668682693441107999032180546790281251754500983828206992501095089802385549270406630807077455951450439565298493810645129872318038185774421342638294904997545979224441270295256721882566597422776311875399490925380898337479977910441893600640376668934454294683307220382250700232641825817370935546890347857366831402951409310865707151463947350493390292705349832107216171646642655909839479663981457763711492785983698014858543602477479612099737550660376899671116770938916748657892570847582408359972662998438824082614437933858390188173745327327260586132546761026808793768794803892746296182643722239835827740619020821978113004458448910709844728737849323279112060016903979498273972683759274251803680676830138445144449008522022732089417305794495529025608780239736533846210859978054299891619005847536083891572666213330959735282092886311474451401387228416879412702483917807811147171736106240531239336087213563120027756503898549312425120957628032725757850561223353016738912465212779150538883688456029933510742873043584426010300615461101924658037261721550758293495808082034339689808278594908526382448449692260794096115965574924091051313341896274501843642497533056510126963801950065949176628054416692932826461790826246850241635291740305388308157936909086025767061556057613243595276101808151746244981905976648836768525497796445174717009403116684555318974301417661522141542784214259098496753270837678953315078417064770121081376043351553106529885184900452783641179354649811409826098984484719276229300253851316691231997222154180439441071885012416360367679928521162299114238185339792135038531361136971130734582839245732460991246359651981084701692985518917495824319585281644971548518598874883001400165952984407394286938013545736691182852826924063970418217267037119367016624680389305009570841974329426415623465691040950373301893076543735765750377627044628627757003948234941801912043041075343127641875417792116963567250594428990857024163969223553302104941979539972465419208220659190664971840788362601375793145329936444100326169169170931135954276169669768313817027160115479769193883440775769139459313107370109302636952275523175636769176864453933725284280750017307799623308501535329992589047101065338872439441319771380120906850163673011192873478676343202456012423765250688937730747444882141005868013865446182897790520629213440833659957523606404420741359822646388905110821526926906110407971394859975154348437667212293799520038884634716673240523221008560068948731098584494378053008979540866909248070588356105565883298407415440365858259044853415419554017253637711893499071961629462869040584063289766701996927186075073779885254768189767467679315890308794228524369266638125681969077862798402704504249228107147312702272837336482129037563771438980025640403180592803791961115656748324281733235349196982569802458200518086924088512765564193317839964625046142418641320095752195127916697348078044161733349086585606812936502605334878643252716987198751955639789859697509800487444902600553259194303052118021050188443191698952225602773842290488504864390371128486723099185014189159737600257053044846603841225560354822077432569185728160099631094329726822138699787779220854018485937195795200241177393753347557936429142582186387675856538641627204239188703370721787058442633543803150295604884655385777336784620134993301404004285744159334984802214925687297866704972160914413901532386153468368186064870326141356314744164415494946856336357428352347973802580509847562861047852779168296045947089705023901938969474657028737016593455237009623389520868376016667585917592231914843291718117962602493166652222956726554165627253882036842263765653055182546238499819902003968389282879965122202328789758819563120341680532100753754971217785372442524605653206859645666507990535692223464402054215455865501274806176678322675278413172588144536290676916113869141699193074614943610716969374090325766568314454050697922077611910516787670852291275162295089487225114831209478840715445317213283027298510652273589376684115508098230929287835235895161479498809392386774223228752465873033375194329827410022619432771647457512194139740091934795988786906692878612439545382720070776966663689675438980780943573948014383183161820025798782023475019104338851875347904848299698232613748108791718053660572658215302981384489873401982530045756872370955916784747922550108996519183119939356846976239227336984434001383423435466766257070167967890348204248210011964917735928173805570285679620101664056367478444063907533978222695224921742295108438163900076441622713131612386197688306152487859474775850984199368411269601992184442697388543964724454827254167113938407400120875304545246026849731825227458087255711579430472302810454711400691679486682446282411742140270087698538966525334144179958102034011249898967435155306328359885407922401803235565648060896322522135341530060960575218650575259871633660690394071405381622885753455166207036898189525542924933790764356760632879623964486074437350262960905797941133273547675715524863716706236416146889740513937347430237403400707969210327896299379810113564463037154494832851628593651103630242224971120875642610386319405313913664041890943671591383051268611408595079464714503871872264208325680628208378414669904953394143147507258537658140758556132550398935269896231652785194537005854909408249487591797496010418910507529677605477871049836378410481151690846818249893350999560598480795969929878936869089946880063862498482315498843705205796444332086424491570754550957773976886868189981185868455090852843393147127835659252765613499327993472647288511338014649384234598718646837357417533377040703317594218248575345295004977562666854861847074627431728882067864752808653328149770380570772170435312680657761214062114218826830984715406027146966991638348087575730089765214079169271868218119185009808014847428248179034242017175436224222006829956272364549940034130306330505666610747640341205879214485620883574391864160893714844615089448026898030146576454307632679920113316976921141139628405355121538520258298702280935643806941743355705269438885331965174357376854062576754895995905973695451867056170273354709977823920283573449516156340073770074966950997728422501152137390207275389236276146280557555362322281280964445023371074255224455724565721370017653572295133945752782122788647697579859021468680034273218514462063703452708897117976953764317141026198659553157164662648940783040780143980764630662222401078149176544853180545109419557150757423689599061824073548267015911312454945499803670163337436410419838673943285961114384670875588774968313878751913885741059327560928149575743494727157916235637189709810911385837833299231621229915729889611144813051010104740999039495013177808343850969574087747196932714220285338595542643364973074748538369684990566673615630910131322657675392555729010098124895588101808349194498043532459654140214642499728918820610179177285820233014888651135554547091859529177252120115093380593074030391797146216516709131187228968419602734451803954429646252744861274557670477165870845985958810958475343765060128874584107184404952654433720794111123409469049758307453766479931690749189945227034492376307398823329897666293865092493643148424423888240292506395610909187595635796363082780154383921451197320831070255875606306894648589270912913519735426302747228540319438699392470683069303964936505648024566555705972518035721745263933346842130512627016612899515684343138532300458841011129995822322409568835484630335301571314138439218613619652365096163668539367604154505567368075463372652785929090896908333537594424176831962310636949278035246645976577868029455104579428367405132082872476567264310466217733573567870619473531731350351210324845082936400379968709586864492623384184326808417281966476820309279058497722079161266880086288450883138747056950162102385115609024739735024469989449829328982878099019084930319150879524124420007570951815627399680092640745784687289160521116984164810980410187680413245918710690129602829351456231093800355366204193066884765891891457977567789170442883768707026194037549689360592339511407920230207944245924683547338153378289922302618817340287095556078906650175055371305470307551140217824369555740404560390804635084865284904102283986404992409381077348119189100761214399248503434731998392010709642453182522478796408525007406775137412139643032307940541542025705511119544757997796085929304969934136941834929932351332344868414356521658124011326902184642419652530088759958639716287702368266354318154034621647412981829327436127814331096525704939271016172168982746994789276819110399513394026017921885119957003637544905182354909077439940064794910719104301353966822572819002156690718745494909984713653763946267974948678673153246538558151487772233129728551375558250437854675134921506267192119582328326048782299816859254933250042984643203995786647554339526828551801264504978430491730816744996010457012230469872885977982036158612553473403131774281491122173508267236054013570732987715755707846942008692071804099431907360134331383096277502000998041635403949923500519456570823531293302042905675884940158370905554133076751424385377135270170149022261435070603746742672881691637705618363736566901086467350034665082519811207793166263255476136773947976007687744714294146793164353461901747564062357405339053917796731511482740011249464945938158946891218666354909761857974753228888684048686711339870828617179470325959621494045649366975215685414515555414570299141850334501121777429167888506649033262034826225797941099478483535850526585792813758563940425118644204548486339485948351840124122082724158146044904819189939455383279315092090368031258038937436419109163327644866847706901524520760795485343277172061828179344335497441031547892907594042691082446199156306690450745702931605942046214584751147488992760238375732882199830315686783652611152951997057936100724117193539608000839310045430616630012843222477225884058187324407520988063283993672072657565700021667288469617430424989708950111630793729259435431788558266259320343057371794876453795529863575727103393115793312812581260316774453845858304367550490258542611312768857696458136763940465251946415787749869019948095730823792497079898679819441217790443629102194310936304125887026647807696114722468683848643061291201213691810102501794708245703759353481063809216405265278324955303403484630462255000290310276418256165384508612420239583388252256322566317573502573569957500690004196875691933828788712645809649540520025648043731725387542991570739954036248004612167308882569151205274898125270587961191784980853754075309415259933804026380316751744330952616886237592007336528405585849322527387522404462493354261702334820067117234837602187323648366121476790326892038253846893762278244793038258574789589322810462489302790151641428641557093766067874173049002415107319165637343879950867023003403807857597961284000904596311967911355185339458958104651661311097074250535654378451929425566211017013436245400682630795665489001897868779863594944489375911045641020889286213776895841939507692061112288275583382015783959772015521607458001239154169930919176857211326436412999823645860992772557754621230122943426554905244618982925080771607340905783942311299833499608260696524761359808361290951898352022663509385675874560273621177076566514260529188155942165732631384975461352917924624905090266256956049477251759732286220919006915860744849172844901281947276130014802166131651076766728421640078342322198365279326563722365353616583308510774595426959907876553768160377819959437635429519241483366454426399551934408107319665161444801794988197067378649363407591565811299261228089291855722025897622213751624786240120106526032053766000966153068195850594934821669837008204386290626913977890822960028470182918688411914095855627792528675231427003796885310349473819395503173190321388627652148791395433224293456113434703454489873358002635033718018925232437003159040240475771991248962282069468794476173052638001238061144983801280641796435031084505948064037940236739807470605075261432419644270389178036325381466716547328097465183079352360477874628612848251067997100349315265336220648603617977772912650858732865492973133593795794865479865093642690969044166675498277600812395163333141722926651852246841354242960443628947875539608156049558004318789361520686879714825295363464499648385777378717062272436459752577301162264889518148279442898785090977056672399327261761652676699297999007767674901619073772902118158961904905955341566762778640209163457502321851387365205292671687221287918643023341801941731983591461798632194163708134184552986943703645048593970664350523944085413192922742295626889461621687245850108004484801496554809933414648229281712635918785875792540611200513159658458851686861395291203025263704284344166993910255093658600692565557916675753620837233325881052423785806319758102049983665455990993036505782675041556053032049669789947128737333909484319712805686162909932254010235110379082409807824687664270818505282463921547252788059050063026667731122794196291174846774824471842666298765542988146138644333567099613478875418503337586096973570206016591379054518318344956998683742134202981533454330246179217580419516311871382265008070126644480155489242591227372046601377921133948108521294871628941515746794915946425677395363333235869298123721083320994683399925172637006248600831806947905722094490695798015123192209412139674135811351984845005337720761719236744571293338543679493319134790606916160612255180766434976513266822445321367108344759695873963481177768252926021490978946362914836467312604489836200068801855842645267831045389234175708418712268130056193101516488759899995575541137379236948516277602462835527611982566019455850300085359936570822359838568414014915837755747918566859957906430782926994962396543980295855502777992397277965095926532266158944912359344355213053956546133552788319411434386409031044846896064190192200508511579981151887109065725091751650929326978345975658612815911556533411698665196877917974293358270740088375790536032829682041496162320097376517229581643489337957835877748371214343876395063496767900236596784077523461056022014862574305273094629097145345198905342074389178773742687930132254634201998751747850558597872512110245649583617036073134264228282147810970004598708637141955864948937406537150666232262150574387307553628504290203136797570950439790848433409909646470427435092450110676156113112463205445027268354972453133303851812696593343157299610715967513697481073373704601640336676227851524996933694709306048707132812476839422993041795268414180468499075756733225875433303261494303850027349680622441285674175543910206360074853584276144386309287195304299507948102144754224628520733739697859189523780871120432431379978617752610138025888414747574634811937627746276538365783680218998322482148079983966079387732272630060093359621538381578144400797724047149006628657995410918301086434549822446420816845459784764896828597920943200462135352836478527160419767006755939615276934248460688376984169699119359331122312086218337335952829467391274955954535888509341730036943379351884542788868470516465431230032263323485580917375264736911474308750462993883575307347855360759700752118839009925910960815950117798834478910987510593612111650415306081898954993277528152721290102900152237775967662310932670694751829903274832305970409343726161276069916631462119481463482560965778173446483556556772336943924810532018232832616004855255925898904332817129230295500182114672900751031525440430206647053285176049956994814384643284268978402841715192416629209642756131763950307577698761176939448574754873062914542345309422990569726261121654079909702935013277603961151113134762374853345831422866329093946501876893506644401551887115087837616349357891846725870262679829229219127332260707528781345795532837753502983497425702328349432893786685890970317382204590570434986855310446983075186900338910802751291877792537722384254122392084165640178597400605701567203021105457013727772699190943907374977250714690145120889779672945163073639313485935274142856564532532512335216534315853990882297484576393842324167308634324975512368752384693913914343537481102316460359104514713648924523232952134670861639939084267200406387483360810239675682013241928381798445565979488337649906913425640732695987153457238631907681926904991691192735810949223596335850194435657580352814700813138481500526704657301381048672847841461811131155774548337292364498985519347856442080472371240402056171553954083319539935729129702611622944094761796851465419740322310699679841970499083766467021587686545140317387278926085281755983947129315633156101349039840484587015426590789203482982773057832024324216914653275512155703315099899068524430013550179741528792799975323242450343696967310196218356286845276655139193476153036237615505725896065588236343532577475734298322395947687746077619918058108167673556735744509452123083796795194592108139849678814880223532364818279784801161133016903370897586640143082728485300097218693513804168835733207262429399069539167677101640028605649429213553333650672511393260653399455911232924838998923359425381336420417619166005887415871123109645234695019005939241699166904902389800428909915821487033205087598229026726418050278880093134995412108654248781986966029380665835480593197225211970388906123226681664877011662196965830102144174239458088261977662482025103724144743969796256827874710395811058368328046629483750334096516659704090345347870055134375822395173303251013421852754595246671999185304287493748293756817551883269676146156936778910981298502806929173835242395776957791631520256564318657638776965868635861137690675919274550970960149877965877066773454344205484355580107273782218375394691290807278014492821036563979674196187561707794386634031147665049192218906962247720030190558430293560039477881616592735715853210451608125999578196985776289647222399056133950490690298225577661369468217825807694169972398289182847341460454646070557409649297783355717760172786599850739242423944774872591993754186367258910637474230202912771159563661639693508894154440896343656453835105429379755001652163345773804661089578868436576471692051666895114490013855197767130799971406868143480527588997982663802829372392684235545178324209307983287424211563693633272160161575508284952893558729907943810538037086042467076121992527944685575403060255701601098370762482214453349579139808663901518970462755517335162606728087012828790975218328455661492642857828138222466779839829179034623643037767312911854447854460497917319654548461466192881418085986376801540460135626776936964765715015369195654935601264380767621263096955789185895656339333121105326395500203845781719342108801362707094964634988630659316372303269638335970583634863256758689984621356903244265868463494712606683132790418137946533050153512675966102906369197014914498647642944374299571816438474745360346585485471533824862215401755096617175767428819028558953775178338713770913245817665640829224464814232870096841373145176629219740302762447534300733186634584128140574370810057375861642727093566637741413580141534205306302812903799124763220867714433457223332238678339981100808719274234274020965621065089916356970512754510950545258382237618265903110234826241033073859969513206108408433869595695250044649314401670794509013117206519839384181058159232012793277629335859941786499820560904625516429652132397700142147828641438896072388054700480018748372363175455055582634377616197976476897435737749540639135746268781787605010617628123151228715273529858371905066771270302927573097648537143600862692847279508962616543228849114761816818773932233287915432882356226720464413420419317432647361555316877857007061154599186214903344806618210034689324200420000518738921490442316051535028834551914660808110972119458772957253119016848131141504940264480476729707221140467758435243638641485641203443451638868449533643132923139214166411345994404469469957098878041220085098305371886026075470485732130108441427081059736508561211774253464712943609899758501598493969742146478564793833375351479083750296164457636738235411920875947787131682848688700691716006908435710246017261601780539332082750440171533038999666348066612156737500088103816450727590280518050547564230154275212752162165570418409492535143653735235003246032992664532143608580735825382165182184293182338811717610023263638932888689394928197062801670826182947937513385219032732842365272028486259591128815476437774914778549558490420844517018520894560255470469592733960123196295470127459593394598459648202861790958690429894142422708558234752731267957229817269458593069174806074408696920630548632148025920609486841404250771798250422166245303424847115521083950597177953626827530586494433499055165320705572449186976603661831586231099495978810556893818234254293944687037120628003102788936037471484968622719927700730059928399513717331567686044405011511184426379059253068033357963244743206984996772605867216196657166678968016248913107202697818459169791228490954908077543038858900021576305709996777504593846510625085197655393010149738095808189407951920400522961586847646622642547850321070521170832448698575381118710444442794444462505743536134891760427030589302789064427128483826418300003597517644804622605630933430008615500292859688610159454545221389924012610205907297355391399015550410191333310273701728368018690071880896653534658263670934392765090118167750570391298456502828680707247028551673332933281597152572413994826134131076945291960474889068308828730126015979856316431024275194827523331981666412927397998097149169556655832976137797300593092424232462314306878643662669820587714922124305399336260265704320211493285234795665092796081620604450373051194675295374796380748146735205283231790640201012241693693299504183633566787522890652211700533649299605118907858857237688373023856776444952332775498425669733127337057841536980576980031665787716460017447392309734856388181155212540108312116772452184542197758804817654897988091548334305020245998261166042837329089835469249452475402075886624669431008072006904535756673809656499182991895086203500191058562501173946272731687807206638933652946541060162879989460031308811177781987415349396869104771657669497023446926841792509756068236316836783419297025982073030201494934097355183140138068967421381623191205585305372370387562887396301648025171005716761090875715898265177484524519984414456956339807693262415270006314607873618709424801237780264325204313811794175137423855191510441464775310018119848052640197032490590188375937639131554945905046716073858596709900943664549897474033740558519945852764960925606372307109674354428718534012851196312410761129039763323916809293427581745093706613438409297993395154254409405540262259482623172039575252928548682236137289470670780039441038561902665885458422144294457155466888453255353577790292527257973706867035166957715611503467494389000054016587851200138199804514910154825256969180845141370535295934442232294845361258640827679159089803954601019133597743061228136101886313494092484974725061912121194868152830995792715376105665349472899887665441659029181740868329203144130576081143276047517377532016074408349786787968343569183932358341343632295837951759220718257151037111235181105772237332035361389131630621619599167642388257840587802524464057717051321861941230947011082472900680649773819865703879188030544733039834894681668607063014314945301146183379911373764566298799326427265168025213320185156321714344269066492807144327452568550144869505531465315398305122006136963581558990432697306471317153162018142787251836814989805925360490415154816749120216975488565065375037955490459729767393324456299809427206058952615940265838273382947012200211981323014892982596618297832973815465589871676089967379350003972736663751211269059977040231910183304949370723750733727759897502367678863036049093193917748426563233153097921923152491352386384584498414470214481272638699718774075790918379278428649510125570325710553293848503265795448819977959758506699310319043760523680339063797019565443060953404355934717357516949257976020364320803294386516249189898807846075339171866983338012723660984515913018167779772618473988729844119322976057022882802908305559462689052589962789168417941020230074627391397353018418768350942194317885410764639378311109058960070590945327140311928775280569673827511859344939677120993984935989758791939984583228662345697986569554404051611696056465987213100994108858091464449391827370302798100737352088194815430138357172827846046421624113558773409005505870391308692573572650749643863009503220851467115529747745531026718274702295392790068425171934627375317990500351327564093597815943069176125217223676576192815485818665672531366730502533898974338162568609449063125094973707324243503650607797441686309610443186212359569951087461857575384080522971277271192565344323536076741219650671778538123375783809073795236462338536195717618601778396666034685249033058313914306022839823046234559474166257313296723433052662718992701048290831095937677750610114186060102076362534339611523961122989829913284926273410592848749744715848910581158074159445394101147483247927522718462346247974451310455205200496394411774451782963700395701813087069292708797735377850809404354701404202930830454324287936319730501149988822720826695144495499905425478477430793467578542455819188138137855940743338852418673437116472652361134796382873475805933589474250896631999067403667078694019806747843578111089343390975010959911035682588543719779016493763883321651810534596290628088644368359733053665209312153331706019709422525840069326742751910169967254668908181429631744326182465587097217033066538155923120962306211425579515594826684947555245455017256927228095426629921307529920414728481839388793086118773353590829126427683814886239602754025215320226781831235706651843134445836079068727102027824182150682527394724363578642762120942689329052774407865670642996628684798375279117915766614048535528850864823240234554494636905990612849605577866079243023550313726909426498609346815352032524303933282158684924521890719310819585961365971055218811742977443307349307469687416873707441281188729623958407739693118729684123935647289922585467061565331036203025467683575841278254887222759491073553871395851012241751119038728086250931216472047836280928649929145505724840068333958510361851811281450358397645580911289592984387808959057150949055887411794186737104272186242545579836436629167305972974190477724187512030947983817643502501550072814498015378561239741964425033293310030115882397259358128610369060949913702245757786957468085514127442504778358620128311000664448462479600836415335636577581859346178141976061662634578756876469602694149319748790608585615715980324852592282897857871323010680538675170505032538173584564950407924215139948496997292600559503618668226992232174975176784417296984710849240683595740032740459738239760582652147425603889844393279741770565502487266457117794184048403029905218237525511084226494695603134003479075014052678285968583074232072805009765427360983559967269158567232702536615673300010980114058095755022311966650137081092550156092722180903516627903090859946160868965023869695172750672399296362414255516968376028324226856732147780073491790754020139144172025012336570968650720321510216364212361992188882148581049479594077735327253590488168850783849807658564792917927456953137022847091887240583731887045756585537179729714827757271002054526890782110950732867796753534013215857909263479703279170919688873207940166256430120513227231600777069192361329987138999922483425830976284742334240370314296087435337651023541639663719993093821433888137183797202123085826076132763880833668708593987286835774082599740004784548015728585941183992888313604503264313412945964413917053734103481264390633160171069191669280028427916298284724540778295337446503299134669208797760450586002288399081029477716937906280161315218540523682270627077910098145678309736581057396774066003338341792700326718889334246152679553305755424762174888868637991141454780033921900458953928306836569735994953710424780706521968752898550928430121764221834810965322054504891514457085027759618800311519278402485659186456573577685035626284340113581831478180802129483964904761227152408628709835934538595889307500151765716262034603525137710408995398828944700914246293968119585889400615446361461947149642712387785515559223559887789985686690994981679414758260254062193327427837386183402855616179902321862209288289170254784185687982451586544146873015118217952865645229096235801540134031575893669980087092490927838997062295439778210069718867560539455593413842825552693375043692135294108312689171241154909758634720456641527355508141512534008663953084266519523796655734204637167993490896309028879214335026429292175378167231661580185629523727977749867085154055908185803517825661153706190534819898287062063939176760292902251386901636824950947404265389518307674652989865939569822746256897063514171359028062958183596932226039131342411769198053217454703712219473090987027068372578876985107419538736673748933493618024399466765363066600619362964896526062787345019844527091845153027804407693737694918119286619415031393303366519978338960133237803959886866106870571844662647319022312869135518430031380642601754239627548236909456623802523417025129496499091744685950086358200630930952169412529625932823605109940828071756982579724330234264438289112760547195972171712152402786371179877790376962221148396070914636343428394125522651580118902911435581590307727311533051890151529201744531610740788473258030034138566178490807628880239299077850100523331748406537486805074436533476801989138701205084852958009005519759651708542526917901016390395317870845672556208466871980133298011407683972691585898285899159135478858021209672261529533263476385427489044821085497948030547697679224390005844525481339753810389370351531014968454305017093101086133441912831424309670855713556422784088678947356831069100666738226538125087003329227134890304061536377417716503625325282678419472080165150609944871565937397245300244852425171555684381293540128108820201130585606516936021047401343608346212869827873599250415490528042022853250248043696547480570184246370699709585756075497452404590370756138893108056955327274429808559320458338470642592283565566650100189924899692030594057178133067016147144867435019131599523888485042327903289606235156152446339042746028300504668898701190391018561270904276288338162005930181262043920508901753467879580612431800866693970556988882223063141856596564302890498675641953939762287474991514103310584887756599268523595573887912627180003645066477495825456608367520949199892135811366044794884510286515974059593418912960493758889404832667714042575595045319624405988058947173691032760221643177417801433409603801923795125249299326377171667335674399413709928477859809348073378434525559230404079182698901996412059305460931946532165313637597885577088049801129008963328706146669596133585389572200585465426082157115667876297557076520273879378019770595526424065185825997236098167170247397100661931422868426681070234910202208215829284610476024354312602328441300305057494282922735625507212105832983225867576850709735074539213343589576862808492369537395416848193832193582688063748638759750957775532621837508619599113580703922658046266001114977044257239487668533263986834212817581506911683532188945013040090837372807607888353623555587415956642317058314258941138240922874948329636195534835699098460899687270472221978810891664469458024376133066727578012690231338938012940069326621047750951947185481057630223400917970726818864938230132237845440398967430584710398054961058650305452866729465438369559747232084437772910621457867558332407457773039565689212801699362619102344237194263258932847809415603123734228672345520313382813412414827986835076146993336799016350984074120792039142425753493172116380583742752297287359138433408875456337605913656200964687156846083955198781388592213444299530919154932724115576137886061708215202511085047665053171619742597737463537113465949180767504709202357532570988202965074102543297493472157170955663959896297521171544077403940290595738487560760034293871381876748768455425808362779454828157082747878078684942709933452028805266983180254225349533852248869593885963010221957113957300145212303537203833057914552324308675380898596330777805070422267789873358615387174597801609108164907982568727710130389356359123379488986600660029633803947290329531731293065207019434735701706288965342937487138320671663343118802155609605868540983682674173556178055905128540551738106961753985222672031194684557758678787787990064413054766763579248382232344024198171964618295967610795844315319375186334837393834612075544850130915785832902472450057214776055057221339458322561079796249398396643435649632983706561179965129548527453838223917391385497405023090700611846220836660020952658324520038760946418752232484393747517524429270998265649162341096484036524352435931140381057188438904526871478195702043642437525343199134911189915554379928135583195648882717844703015354106613279421470735069564858432643210404941231903854873498223194325737419381145048023678043793519484131329966290126464099853262844812426017427388955197885623248674184445589404011959417234487352381506645619965013442832650024697384295871157028565353531264698002000052944094194163488690527205942581880154484177638121151407946956330328115744907668487877594039545421473166628583048751208960510463172106387596908357465848573818921757926634152156405992018227422907843581068125375453897498408928781633429959308016053666502754805466376316217799993168953968563589963701400005828836896067412026345006600594455906604743249453120232567678101410770694530521744282183468704427993433993951373086147178048520121266388952091053115081305622269126728870890167755641058128350968324393587817333423651095067073177884755649871171771733923133942685228642793651207469174633351019764999979956090993324916562431385211237292547279282270319197751776967671359269677492255393225945170035370736039123153331976470627340722584827909827354696911791980731819722118373058441347907161538580154302088780283606167844820689021062660449638490719244465869110345117904204002423504922664009142880748336476782321991929560540588442515577848030543845453665476571499116133184158995650781169691184960622766859574999825546023293532865253361946500948645626048552548478670198404671509991168692792452644856819697686584067468066225526907457389749918536997657970852209932756353939449137079593908171605652870062805309803334027756130406556097980098940702602682277417414509992651705246363725907001120471816146024815349773234796241147779674713424835186848965693216446687908390932005104905173105382025573643551526971955784707104216834409057492406524126441268929117579258147639451398502905945994256324723819871345157604049308078572852677376825946193125177049429448526869421462386745732328227724929549987412714836712250255944782752220078189025424868459143995245807346516217969856389262603812566362280289807916745035452331537716045534353416319296998389815197938566186501883279817308911744904155764985746476430225595685040033171607731031815568429714445759533562860550496222629318643030971339374739855838343838357264631467393751189134475985209851961450697468543446469114713301422231016223873653329838219605990421359459234832969859165853635062121112141501728256666755456758518014725048026943173605173662207163008221745178045008500717312059910644868623948495442314948647707641330874130111947156596589987113214360487016236292491710990616373624166546443453776302019723261120347299924543396142989344435589154832227078444387000817693947503547723471859280105327925051210810034771921985415604894362444055306489861785422890652143356982943002759695981201947408225929663694698039820064237256188211116089735012283519270129001151285522239771136267773538275489331643641168283284394550279231943888060922779570979397301978816414283518565885144446575205474176495665557083611502221236191993805524350803289255181785976129745112921898792973059754431422414274709104213366184451369028621454555261661999230063840792854296655407757816726733827234715138183894804136306207885401326606455333611798003373096560719536161889943949266185588706155461021379346892030148583126572071965899977860492892836443343107102580228426595791529347326075238209763270085620529201273152322674399814000925065324056597163741036813752656692111694473356610885118462457899769964689076702617249791525037255241079567467717963524036932563055972797269222606593686800166833939431732496133013826077707296625848290075681369167867484670324531528781427396783369723612099797353721365804601026441603849079767787111355348130458575903291662685029836786493312305867766846698961440931723779864845504201563573169791890380322913849502057068376405739125288863737726564784371140951813252386427588070409055004792219633122983767022803360258874501445804399147640931841388799985059000731362761416335928758998130181173938703721175950386097314033909144972143962105035671549237143636469626665451968099785456118017295835618672994475325229082396508149240206127886485612459802022836192909037688035905179854699455494636504118665340519763092725344476264537921489267345684833361613931660506595940040078002407586672234618895145423659912793192690918624007098942992952969360404217398551873299763750937250208865803524714566272855269211185473905830994180592755300537236429793986116945409684174850077665258084066842043161303047263396025413583233302199203266367685036840181155520144229357676790635106389775045898291786316208598319846816144879976318917782554304140390978176655764953761611917752983434819214436182760068327550650274467942362732508867577803380813917971734836088175174322202390332479730513104764375412122921243159636915112245270371820470569334250722942927665333644973313227658499176040168331997847887613290001833938872193128673658283500450560248090914822051120808294772038242799660645762517000572366360494130686398509043094068003562621097814708824513451970820505376587501604450648662727137093412016038834508736902605878276194248850874821999509509286640543545562028624627523520332843858397104136523749455426461271166438234902426941883890403745712311781221191012973146063329418563137260963772789860777674339837465041218605060481146474953946668679463405744098916115085422924188751495805642833058890519522790923052764439295999939059282437464112409898943844329617637602776848567990230830105572323312099856095180729132726758770012501597449187908765220872963850463332011903919845256152053993149390440635518823562645244569971140199570740071901186912247728646787394409466806668925365717542507619332262680513642740088440974599529358370495952726879020170124012005896810622530206083693647940103879332280233995637616974430606583070557053589654536914904231798907837419520364409559607174530776584555677729751814930041125745337698592884783871484397101188182128756322891752275932159825468267839499246323475824110998290696999957361956925497641545137799347793455664863977442453511606948056951697451160222740834965658204264533591188178759284810607640340633090372946912867452993998906676720276066284266868032207188940665992356872400645340138179348919540072775843049374007580248846049829991709865340555035643002825624317888698434996035406017027342317601625430263007464480183635467263688627313497087073465931970380330176426297084159223517019267337891949284858018731763967056074512984259620605784421866001781254780939924480987990583736416454599573098115123755447377046170618223556746565260388440873085831074099497593764787787992633804770075777203518519592922448743898510958126621422314641197475785729865982820956522895376454077533417916695317247664335163065043831904029007168644042087392683548656095585780446923396672990067525088650042561689895001368504348749923096652979110108698195955485507726896263406706083195805627933040037860913511448844569025805270748126950571341979375765246943887123770811220685529465930617462232011579569489965282084451208598532808525909497720054003713134863767732652132643210092459406701973433908160923403848499093972106771232953779716731090326599775878599088286088534289222210186990782748280746419174271875156950026695870672804867347230276204501133816133999426976444481314577707485006271378619218497699567574429332686295542719252526291878125722614154948907338145628865633845725448011297246284547583056098771918142470508669408887478882932608413319226493490773284624839555001916890220955037908805854387066029609741610298075583203005914724851515841022751821385045265975996689682060428535580020267752006557099001516287854991703685924154054392366103446707001626880912680124645165480511083479783871191702986923666469849084955470952999155377056337148181433774033649203652125415291596835812671044497704610790074809603914900372521193972660554298915663218784922184118581726293280923007704837778735284536690378285021945256624170050290985070728797386263652898429283823929512989740111057934727173199090906083079555486218221586568178241449023235231819211973285598967450303622930516276822942959319828167504521917378758411499189192544390802491152631514084420494451828219198052944279229922660290318251180135408883549702720339393377349494582167236215282068392487021773707837801979761840810860725270514200285025405506446843914381723624354757826550338714363062067693883220229422959910580842041957259418932182792443355103783649728512144355434697178671898610898105356827026196131143230429337858817568507516750918351161408583236404463402533971087445724828009085007233312144734941717945734590064528184325759478945751364568156865363229690069837000192551485479836640909044877676555550568025907018266933852204699928945784119429861810540642481121170327286153306072203181149861418576140155297582623135604242101743920813260667133333727046072581646057831461071464556130616256326629955673137557635495273883265116136108783294791353800128890861197131915794584653362701005226336911623839923048680544454471761676169242614863814866969230927205849899869350912118910911325783750661166983513000612713561554161611196953842171788821972255931046179634023033340764771136688278592136225433810727771293513657541063741543954309547051334509340711054677498357507664590684125133924443378819395240943356537424476604885382011185962388723842675791153033953193000272569103342690855124086633943797927318691847756934823503681033513192712145339767692081959711807559575740653226801860594524792535540298482337682851365246814294757179672039772880917272120611402369924736778771930241407110106187482117912155974504349538218374931145363488080192964732038063088330632256966917026467990561506020476264550372340903363296470918630048939248727159899677297586748232550685727296045169696051417668166890611166687344493302878128580319943386310720237827320979818085226611197554099630874632406196107984363008932385674159626544478027673872426195651060756770229673882137728420652536194721125076886807881366090596742149864420754720358733574241841285995751068477174136203743054204464512480164799130638021031501735453507327672326092185627110493004847145652117029341692952873269346895194684916798906026687312419306211236439658873010763669155517731408202298060345398057586721880176477006600582810599254226325566141785007574245117338305040053574991951313951954741234068780959907708504158410930016188464622505772616536042138096847717559945323453787550847233175108183447294778689620073313647816830241234675540406343455488595412409745982270408436643683065822939178066528107620223282195735873272978104155007374260529827627821822987939290276362961779568915577828708593326674023945009094911702613075046601241448619957544312079829140946525457414080717594278181929719692880776638227980215040763582264753709006437884418660575733786651399817737922478340556329798455008146861359252476200470265189975952598632262575505011700920810916117388130073621693121085421981627450025039836626453406970575269073182702748701795982380708368938522327971826292795878398091452267166947559223780914926730355058820051283365495366153489700485729234222691355958629836053078863330209735347112318130074032298804266669934862982798563398325095945168831913833398494207674917557145121099192957281449883118726229566433901571526289089735570781172907062710315748928692951183992697396588903172612547316281637006253910756672933654831549086355665852604449442807653264773386073322190936660816304671067337500223323630802060533312130324674368661649650523667457421278934836340893559020691828005894221165603805285892351849794124456045567478536673174523421305669815963444105499640587945214122948427039067540960724598493850884504403887174164443829897052155111998128835837802351913972418494379593768443805344468137772740871953004221585629732717544753675549798589042396945569864975927425023327258919418896354504096860837673129505114417006825934968343741091141002366471353018958403350490725334431912321478911560964757104506844543298267551302217572417545091705968876210407256467918528754714497700504883369917001118768782708007648078296454120147927713557991175012900223217930922226942701466929274616736925375822308934282713462708830821550746631105389276048417477923664755768865561886648426887850696759802697233391900577982769930429084773225200655752588873349294467849029744786415231231778003624972704269151188757511464532593498019726224463966450251226331717536237627137703857803081392765002634090635062900125211413821200456320697692891256559853553172148864900747612104703503893912606532647787374263630512999127302627112247149910840461425867074382169579914293625889003144602232501072570532473324384343235966468243201797946470402328175256815804245358021469971143952413598806940872994027499665950816284253156219291618223418382401511395108192021200682341345039862316749307892504161015540057130241265878912219131642312342252831918349597477399179179664224027871519002983524910943866900196972150755239185246099212739446117174531096137251378063271579689096149230679689717881383845636115987007293682159550203036841082684228916796130695767201435676949541150483430799240239813946378023756827158655215312033294692490995692292794773557326526315907973549400802311157513803732757713995197797041466963366638416559154854905906465290407336779206333516657511511676340606920161270077508189392519643577728183152219457092745406198540639318642691898096943255795575491156495531250847998353416864977843810674090834868613406559441437009596381211244096109964377213191110990843767972301457494725489896492003392020865368670333554802798472662909326687035144155151561232167818224064066512569452478236570788262214755275869578018030676754880242930380431877094497676459725135202754283785444321062540404044758651567156617905649000108288567083725912843611835307928538985321836114969622961739352301665042071767136395301755543625295784598418825092140071322191302453790392011398152789802108985938650060808481924766392910873329285998029112020450413925561132666143022885039688728401965444694807129805406800006173966989501251505039641112196787832081215790715792539944559731561645002581152233736366878947334306582352693807630351486030053795246857262030894207525317341704661657144771716419308868657527819808652081833674136641786163280094571893430431678810197439405347450621247704528216483102327767869372752653811470354704504377063447699961303442848530340788453601411450439180209871702239224225745935586078486596309138585788322256471924984864041762265282461513506603945361338522224612040479369324343806925382205926405968012873091590192750424405098926564117216784538239937579814444493041001404361405274237988611311419291630680999572299196205319880321532366373911616460142980145769947764151740274483652279907373275670309439241048909423299320299815710297677402278868149405068715749710738722285096493715233070443224491916115256184348864960998850177378722658549285582313779486618313822626684096091441850421241811023574299952350759468376279200547050384890898102009191414584369034431197133079415761897014332552583283852181125905248131246752961525377431862268897321871627266162620076086759565026839646628316376888089923821942902906138467757320703275908028961706020682981748275221667604499468913142738504269914439708833896646335789654370978451317094787178642152603731161543704505269420672505474802418433518845946794243398022195232982542361534459551364045944698626602291810598700190158920919384028807835886605459806792421035146601559934309316035945050005251226378765883059974787837045359543653978986509902668067982153555487528880846022315336138153296881584685248217884635013420869057638860243432179396173364936706859310429010673791833860661773981856785290185175979295843607422687232893429928325599193476778278337781704846918606218100967574585780915950669640096224617833409243379210751200944078785928189461178541494357993155205453204888152808844083572037798647776313785990663766276861548185012933011445035827452040685473266471158415747798420558372813479540894696829354576655622575536752188691998737622991802668107528382621147326099711912294257234076042565441029215254436672090911251340620433282313307276386440292649871966199588662588928736795939298688961515061320126168186751010967224491004224627125610370095837020407270539689510462778966325988325458098215979314313144299102892284541378559679249180366349678317176827407796472927311027474883562793640088166352180100333886571892615817430089728442374302055893525872232383942679206547531569313747613857503189579490451974342414187585032754239204932440866418934211476762384655697682831974255252344891133457020067481979990896966273629077062296342403617903476335500568101611009788678988769478965795002825595665540993248344046987301114313666026081783474719059300347501239100449845794831000784969807745618979709214928840947048789348920129997122547805699253661541813596696630619296723126115487467914989310280885321382541387054250474118557649734166009922608093215566544750422343206368710868977384007790893892349536679510836812294282487192574216682606785092347531192195829438626645302039100945472129192894098078916562178176363942357072351808067813383798324774139044513716994224560060366527326365296800627041411155032337166167352951360947861169361274465105969273824533451630498279721614122534499614315770743046671861746219577302145136896190561797327273558637910534726523532152501664565400812828335896593222433576733932753152804484809549196029869566062457806876227868983791014953110593573161982028101096910113062851651375876250022103238327816022550498453914406035524400540395442982218124572237680547598731972218043157800168732592590706593434397776497379279062107136176553848282579842218847665154485798598731740879836963402030336111370277792572964577187614013885493517620579196387675398819664614114614383415024830939492323248120591031577567078167983319701987892051788128988682084377196572887965627596018903253840429481380599859329417714671213576840301360752727764801206003407931058161478448773928466691831265435751296374041502881209811247534516159090105290048071045158282578758501967099975138682059246069795996813548308853719650786668374136347017089774376701266785763329909076607336433955329359888941565491955767612919185827613783908473057169658170480135890063457319913548585843108264801614350678459212872145742776899294869880431289517684637556727033718287978574292326262097611426686390905985191285070767827257889495329294353113584368123558957508248714758897276776344533418285060179422900094832910243428292106359533587743804757174935525901414920619807820033750845675835173231728841225717898179950381202775352745417294952965781908262079907726810626156048162748804473758856460913245444193571239552512037686358390935418850874391966689749362999347214342808873594936769757505110515248644439688990472423852379844597821638926320054279116975774085647031069352814874179266530102596524058406706761572065093522805542579431201380560255747667763496071463346447064480715570488627579449160560807004597647024546481477875505185243326639703129899564443405407468333769454898304329276093780008685858743799366473170064799030327308928782997935756571477392386534854244656703005403030836631879380935137040682309733257150618183902426038380088451730694926983369460268656373421897653032529743974058908666521630901022502708931548220136931974913498189492068105536664676139512479079200088089832468357097250687987854873137485938373665263469387439271100782781537251599130173576159096993419394508632809844505990533517853538523008432176456180345746022873269220780414909680806124401325117792450413463100522246657072578830035355238995553903852740060006356664118309167397828587664535652852085634772525447220452909975538490673504468259908726905093658300643017368253661268291561571168754654594289337394893857698150688588511806486395843118754487387791854258207162565870752319799923033279372149948163328307643502306850787038629489276813914714144725411503772034621996411390864485315333864882325933116651641854167141007873894000788467029316705614349303287386033578573229751536571378384263820349032276765142985125825091941823736126286221794622067908846873620165522674060873039438542331979030490240743391792366822334607892895226048770716454072189132191258075466098539286951415562808885183148255975974816236090764935788977515239473875256989074911867838074665716973460263173588498438885347791802620950338650014137801906327573301734334195042820023152430338829871990721663811906004346705201083413213988029437906928113701373727952649301651089194606234481884674349561025938975305192788120277058118367138896065677353818397435666437025921367375972633702813493316335427680240365160562685719658684754522463397753123103684166846174437392813018004873738224982020664707070360637837119235068814554555934887372777131715489576368290579192392502797094406307803447820809120729394699571031989839489478002107280738984746575104549086543735224553626509820156340990790456109507770071680187032407471068952445707853331159818945176023527622053784543347189196320612439505146077125853981387312968687073479017995308743058338658202158036467383808781461692711988982017724093131052682006943344245427165018475505538990203134076968222580444832276879085507087215577470093138868972261586690754096082884657638585160183026009271732310068376442806587142254689682930433939133797835944411058118464959931531110772676312029658762622409248989219422852866862316916266495380725622321454216523454791306125032770013603189149319318695664992406744685974020080579849641732602528013447199606953782543279123402748769625057561211707320721777586964387004125055671016143250517052592643861771921803604349836395613805656709025614997458515318597184566816985333884485026079180952625120618106402550957477841172783648001717531502848687089042341895355912674165111900407592682500581126634854901016744661500888471582562317806552431825824131733203633138631242838329281870664483177276966711386437104053532065154366422360642566790577285378954953081037597977645748466946874504048430138185361105970863779087250826003212220831209172310465364198018914143585773311299387552050706331328310079522984628002346288285438332781881436253092553703449637166497592606697373403300119409797325912500162588824914114511988001730770013007631124045505838943532010374781688345568909341034345207988265499986404430706487767113018994960947836602787127307103955309254700022898215242346717818906120849747150416554519632874795410677755220557827440226416227489905670860515820809133893515677325886448046817563042718195579469055692065305923029435934555657470825009989423858294603505583744007469874893790611320274645053051930433783363525141560822276869620067248111114294167185384429998902582742060894387161479391600396768118894392028515718088924800875497079167479199198907216311990592962955665293077414155871509580395156510201761762198610259367912108591207244141454366094661689252112846012120840334112497267770953746396906537243900012705265166616241333978994882908642207489931190505723223465050403476683028529456890490986968901649935763018004794180460571026949894969982537118249782566004222318847636075665005219669570125178013619527981253578725321366766778314698735095871230529694311494127741994564847749356790377235487769335329511645154518682104783701360303178638379619288106486564374534084444440443266603323655852191176298850643762869175999771540719198649402643862821355213286679974475129046832768144602223847132628455547841169048191177065504632520116135735010001705060863815880041100888864949059265252833002066124159125637133127242077839978701617198933701731720191084709043758041850656550250937727218105188749427535408403270653633847359802292494619913904790395576482566286887888457188358791758352677444202698655518390466753299868689938594529761013923779998212671701337903611940943928929592529545311820805757426610285315687483296617347257636647620327706673310214835650107395287640648220470721210311777375249577812330237045214524227505444074075887837444804039517989634794378260595917729903033689998158547223919317051266702406604443342072847822583998737049645372811481224985943323290442420950305831000343648001857915028376127506279183053251114563873794745116427064095958689469398267842903120375602251284146534978430194422135620465004773233809860511016178896472303855923762357899211636191618289407590850054860091069374707568045993665277992857752404229980747987485741941128160316751416818050767064349079215913332619519380314043337441341274691611122809491001186325863416720884140165615190116728118982760044932364462772506637612826398972204408165137950313287516755444818127869238759827081456761212187027127028729708732710689943903723004438903005743251523005183848491313965188726216869674858392405302017249701955208472059239466801976023727834274389033682711988101114456972752986292609453894468310223546119736006874871048521833163756583803352593535515550451131895572757618629064485986557785749587040456957087039885864620800753143534846347848949798222149183219295490247993824379571408428774947694549049743672044377893305869766751187428232278124044755816363660590051923024482336010653906783297185658847482563945635681279846317824020842927274179267615378924231592737194341544466365638637651696298490781666812777286765571542043530735440966570726709278531355032526090062925500651154208709290190553411345432074420755259092545478393381665653188566234780517702155966528473164597132986740527998449886585367715400192047925124509962798171744002885188397387605945510896206571033862803590688574936786818745179312292538378853259050643851432340682133484293020264082326465956409736262255254341704733681838252072140848704985177171569267942293357877143033288227996949669495577436778680745111107454264811802699451032867606174701999737490769528389313626471248938874096496329961419910139795849276966042061644765347920991304432527838366424282223661209298201025167126493314071338407299180873255841784136900244168293924604706535117248323470273608226214874787691155492523223263420022515837059778734161604586992442861840954624781412997444809324550818297598128684189218853654087091103334890262456250975305353456809970416364888433746643511562070655246240518085275027826543508881198108444504883444183176107745079194376686965802996120694964046686205760555065643930701758241734151228037384077371341228233152305841195517608077602836169612569693671416138360642624121807724556702087740479097279698904166612921081094714635898978338289659215840501348619267055404162417187526789605968898326379064415248674488726794702064895965337956162757928136583879167346579626640178782671465676460561247227477720499782896288022266974535067146463186205138297410899742094946300480012988222658067449340591705664080579649623176142694770721945938847415519276993652569964859546650210856161702999276403902909679624333659975739239871187031501043203443734697139476518940984841925665399958838500468879808238396695702845453630943148427963785315193063385528545289546200176285640425414614804645898044241255903414800839730954859850004458076801890379259498621024406759723850079481814790122607745399858106662178599217673342774161337176890390644253325108475489162412208002861442950228079889375575617644041586903556700145576256161411030350261529244281754024883490182643546499954262238385191127995205155995025979278380488928169181597465634105389825355044602234324005899398652100135528012517774724250119156080055784258936906822391987345274956113777610685392639417205552380063338915892113109575596597211798620823003295014911549559624114145148477045315944151811253182911299305196738056865414981969914569632472620064548552861709506283460425682861855799233210662729528270471082237299756413523425329735230472649903588685430119793031497361353476187285580734471284197413794797110151480986324324971781413016516226899924129693601968561350062200694935923149520904616139660310696870431501729347511415159106578879334214643926757098252813247036144453709056010774435004245319774830494875985654707397366173959039551764933183895872397647038410146657728127107398661342017755230476507892067075586792092631699406799623557291892054786532481858699837624553729377712480528735784926180581176147004739689283713951348168153483911732471292496509655259592192262079564523860679490485736081557178725948599225781695206336708232481097904712407770243385585348184639730047224245314823782444747961445479162817044906232171367106824501392116377029485058806652024756764370531267286780877238587067125128871256553334074002229587270581141599018204369514827650998636974188571111592549409037970281540598201526368591797290949748945179712994959119693659269754640174363505727855926957322973893633950024245328241919811337905113654249911025248222233016866171150570746778973883177039558166205583087661585467993599861402369038871947871528438774572409147290321473837759345175456220769509466882830900112896741361863050900349614404903188881214887444369932333801003173538931889830260191176724687116901197169861875504789801187928099358346408585870418531415114129605751536923879435166509967703959381855070882617087724198795383460725806159643069206604368056057461732547855856218092667051652023754321614703505317018346009344597871916650568565410371598823067274602438983300041676239830818863657794591666720036501181406038021287837397195108460123935947528850369300485344228703341787714255047729833326726602630946566019143183783931203337605563790855156456475018888179797124472451694705761996045211980228011074455459812342934680149380129186640783876173463467233600773414014691367076922648512214921711093433238295910873096819295300348504370824203629829708649806191135153467385790349674883354402941778345495173715247412347665628939018902111683737119270914795534963453715306893800095130151858451327004300409944267502564391141505381075590679214767683020600899258183848961313649937345896983816309601473319155118029141324291350750303079567074778227308908810061798514086140174721671372786437707932502414355401311124566859240761721089829712050656710410435238668314763907096446527628848702587724275752936505462148240871313302299630340643976077274505930171212881117544951355858181120608462804570280651403376533179412104753998461020169225521086216437230459086176298361165359675137821580157529135443898587157682125978348136473249464242201854425834284734874949140182815399233179000119436156341312670392158560113715346870231127363890717458740715290040997964055659496561862484117361771206292105128194505491107889839589918279390764810607328373161965937043991113163766948510487037370446994045330316702492768678336810704989171772863984795910209227634724516773624880698267126544644774500800007820352739342687012177674883385179540387627769486602283645400148323408648479001229726627053556005863719506039690188231185682987507867954639640091614593412391307800298600574838710682974524162977163847501617768237841716140493489789048917361306054761437679676503467270276917442416961836432083455030797895797776771283178242834520092313110750726868435054264623374653759216339803264961305979259602532839266468200009438647799762309933930447345787640523083972217610402807036131132093946835014365310312645691293412052819489749135578900139776810861201895402879369542737415092643913674307189789197740547392544869121176160637354438617072598485222172137506078487643629324886735668526022715475745340627730541552638011430124087868428728453443491853955778593444249426389256000199149305381653279785689733442112497620636933945589130645659313387027614844097759273440369775587835449686720613115481804768149233098922149128516665087813295166871412444445050915207213749852679921748780107211464019533467727920681665717484409414303657484551277354894929140939434636370808586394463017403268517769039374730255280238479739701820749475956544067972829893350076361084604601096581741469232576550531247302029716376232413723715873184591031739539313990796077992353995157406382109957787052570041052384874881897616208210011068518323950078490904415798014971732278150034546349668040104240273448285569960070003712277069936153481461186039462245527231957052082109132537488154120730621769661525975154234646909572999686992957568856448944052016226842615945657427384752900293253893087748384352690026017873025784523394174031460944707462755538110368841169260070792714654411036559309440428255407994128500375712046687734497064472362867483340585399544272655903196382106051082850593851747592466545726472574544740295711856252397694083324830023278305672487725292745501324094853526336581378603179258527380803046408882428382790567983032880828387586386061156953057863160501452212357523323432772763219857356787425793507214263602303595406596633470206606733774388039908293187942704564752193311807466559673098823097522695062026345808217205499644539108827136594628758361067030334329482362396270443679667472059279641000886188031603781942618751392528922995632607512624566577332983923400010323257379653963728950171658702260356399116176800303197692012162316023149515019961041472159532109329322192790036472049456366756132694688831039540485703270426120838339947980576654224198209908145796977540618440932109097792593623344262529616533910651062854457039422138959626983092226968140307209959987732365081641967337359342947746970839989382548977278645006537468138084537516951455943974279900677139661377887967598397057108190261207622901456741238066872265849246162528235419909102800446404267939657343201285774521354674636334093507100110305762490395209828930457796455321786528820927019128166017017555988603233719086283688047861218310694934398547911958918004358967145964377138094373792812728166408981476884668284167670936044509025845272066120284432040973613827777759049375262135668052398734774418897506304399952670320681728734117865698438419699080217123423298312815257370937298481702322297458411747966019921553358778011084313273725164655458766295232342720612036470907225103552496040549374062897756638502858659852590753248361056677800333726968504619958191643329218832682739315338637051346499860141272504241649941494839537106687662923086179227544393715165845651896198928410987293680737516548671015735042648830088745893378582952237475056547257762424763924943239562002818630629723754997224647431033642973536179440338551134534343702397035561647929227696432449110080612607996147983889069189760973473991802504925719522465298217206569497348082137517003382938447216379395822389548224717666686128602155517412293895182769198210779881798802472278063925114622239984439340460367818393528764148055806948685841883349062365482133950318647451902331210035266006902801339192402436705066142645429739332524725085438203187234071593996066007072040321978908041011336430808101272106433018242107817306846974738521177246486315356726968424627217335369611946005127262388037900004836920470837680357822116603837316883877263686188157261531786854473359196022642648485021839465039590457974238969123934841442870431362049225713969881233782615797944426500956425180702505047980510744404159501101511217549791935829564345040248813270518197083353407491751105032115291953823817849000923573593438696482437257123556756941952145392622180784513431049367385100326400809906701196894705986248136379777453581972319530144618931171323491179551009906094361600290887565542966199471783295558254902607561951890624031635563359363977486236828452255020402909385732128599806640517958475072379272014723446121804108492270763430019194272909219967546286023442048215678902476629192728805646963889851647971007239783873461376172512568404612105142992485202035792619826771375758086562318658072701709879220656908061110942272095437424339667479177199285848427454266855872810507630096771659933733830952442374634725493299026053750998734453916571571814486813328669839428836697361348448302952521759625970802989763346743534682347881964756319177175740677180138339594355803329555853568073044870955111906804712187444457021332603436220011815749066361924551313734548715349525208995959364478055495588727254452731725319238519032618306268556675226259508293077680886062772213770340125920238834026079948000848222541855685477518432179664748044748631604272539482088122333195871790359705136472427941011883992486816903198199061127063561556395109470088479264656252102770301552964860444249868564093470220087031863997941407021485753089634898788323492100548342635315046626490705368794031855925209865863491398749993795125487818379020364813373986616161624524093756280948076156521726658521639212273849523180998680205405245926203419984424169503077902306304861083567692434995777112671952437452632766001720061131211713475748804729254952915947088457418661007937732146456535603941019903699083526853803200266492615820460365838220849717595410509881167151030602551080453502304099275951507444106175720233772017150033819789059640684541355026020303265858804414236376531208011849063746427355273415999696464793546701307266294118890563749319701884243659521446174814808833467572152620658690898681194096107119751534917259247767417115897296902889632725466701218171687193652799679519930315373729949515720974407190363847085388205419648542863232453209891601028843349528451651286909305319470290996185331319245118957292570225661527957569732114761993466698762477274680065570304900687754338686382320330170257696588406888838180379435160656835808923346792010761903805473245073868661610262273658337843294025360472708246910364419277465102513380568372842512267943155512471366760215819842419084257925759358920501715364163251186061385686035436761534678428462289865024332825291463451080670498358866648775494344927031668566971927225542718726382467470634470594036073758459926901005383479548449512748766190093931900239238477365052203280767564569798264916584611692860700948618592769223027927572664778977634482642845051163338325005379018729826184770182510196135323920398396280601681290258816877289341958651877736211984917352093994644176637469460180139773714164670490327928119559332518195490726589462180531334240922560208467862719740821737631201890626560611441774458508778480702145347316532551516999924647473415589088877653148988990243474434147540361847981696768593718876836292291693292283099470642510286635243292958547438391699940304136529471576680507855017502125368944197346514474263057032102541173088840377288496676515059795280568250190162711357088785466741005390646146742502338408605900937065014819269265010174437393820001695630505793646030375363171494804595853443432997796444294899104232718840974951167179616712047758543034259494298808712682700790699792097897709052205140132229120161121938480450305347475663859173653332690548283086213851033821586739132881913681138567853061057701087022008655015783600098625560628177955670003843965316109010255565848841056524997269249837225413077037870127985616446573811010944457239280650957345758359353334596481496553692798374522819213338938316957847623020880066239473434009149183545502318271964808068732612434006252388602842478057085568706041139383227235909158145540016467653939801351362216552009853505459446566109686454477100579869427865547361135011732805508132610482307417270570765083803243074690490848774184068836649708245690996114662364014256536826937474072807560349000488160886417523335038245650707100689173574286779374031461262258134881711853041244821607799610221872778786189822866475734957210785296622008148436603757110741369444159226097468733622679159757350713696307033488126504178546793310961987149352422827716361921654817338063664541996580820337291403714855511535119928584333130003927862827837183978593476318861127578704814602432636639969115185352344497846279558320833654864800300650718651093410700746840999814512848990200595934341744473556520000096730750535934828755910371094101659702841385089528839974830139473918014640336140893364424225088138846956007287276608142069973219943502924482840040027918891688439330622969951795880498114456776273866209621711249651850958340396615623264139538160974952069386657707342701271076607835648766255766791536640537120350250011827460014188673368119343841292038065729805811826621602779167622111245645745177901401542930318419551239799675529964696316619033635454710548139385717080429805257585798939120725755720617515588248016653363549197415686707521931020812253607099768175954606015877110949897616084818774843906938693532576823322753248271419749505080149299437910189508667776984706885124375141860260502164826956088639411023930291139399914021885047319055917255933526310045547771309001490555582201083392376981821493991682308182324556028184833486950332870955250348621667641514482361241510777323654067927143120798511177549421445851610954203799893505881032732460628681359746336761299925711020652642246554821072935523298385102863207756172892229915580353100512677713010676833210726989978036565136791508684209165889532227285525628646032727586301077933632356389575259822262011936590804082665965430639261792276104984690738275722196539304210200086911919178496275460840511608103332905369116165007480996315600393226985093094436604117177188544735827824286610110813706028962161008503529529017205840210741540892106213446206975568935270621523871947758382530588476723939921145607645238848933238580754184436323023726436817829320555896547931799918900441013851548962542600476526205174539726205216384660764193382843499667165561423883166239148042328300142045152432515914769136679698199036559883033983484293373616154045000004115412598393647077823656935616714849277646261296478923608518358459503485759646625270144186051922604762814083680153318843668745717811127355598638346019594450457409706633062230841388151534668624488037982995658242073790607095905859282942603140259431066149450454169388832457762325431663601982583179154353168831889475872100866876322195093405583897302054960185843541382610229012487785874203944651420385594516066812668559493539729156750773905717703583173456201277852312589025076617050044265030840316044543792698919791318634055979196990031854662482193368848030935344485532798557916659828172014822697211473968496766832959395340579062694260275769981821423556377749249378029119896940747502538086471967037714904458605082092201944736353754331870475731018718356607537898983588712714275163969414991720941611576768226338489105763332259173080906432644209715584046406149489811245196558775078001196587607350409745548458460871160046264179153043288019013454172005662279445266818646077930216788779533754175866596705449957952525401971942278722528077347450380349493672682116899272709871265249781463389744801134931134633194628388700092597991433765505574447966704908593171510233101940059943462313754399913154659634590996834298752910372506313270599570405294390148510721027411337256681977318329760233987615196415626495884425501000063550804964496710121287321590170256981213129153387165195020686656233978231267662336734383175249804164941360099170143656029025684787537531447453545519667655262882649470312495359926890230516001883194160465841963114713219799061480876425232022962843211375907599940702838094729009969249008695537147751641655579483758768858026852085943166099535846580319610705083000646529360870379054646875158193771570063909571560160710546157265538282286461504943593371832513638387156418750620646981496158293932257101793961573222158510655876623382593198044104166728609852946781904359648661366371348967397800617943399314075818140535985713901404331562016947737310832783221207940926613279940851367795306607286843922536039895257784168822300727862944116176532159309079349850879004895601805854508272502036772959686661602273403437243147865323844236472548243256117655869743631823881767594779534379797278042506848277595660571100333431685942391193087676543254638192304707498560243054304953149278644572770142990381927135787614601395066114002152078485184197385093621558381008372008901491972825292293777700100631662455438528162727699454043750016885955338729569198323208756629861313889972116323966325600503912822334622660077688267927157043737174239197957883880328505438411167604082898266118983810492221529160103520231149881119468434522052207041822922346015850345586905851845504562045198364994810747086405610638727079237486754809402709544659985486964252611638537693698241891039794839669146299266125743500975495437427608605450030050972944711745896376300297347778989061612674787414506141950577256463760506430521792936739135183040628020676701041867829010855407136129775186737804570463062656646494594213903566448229409407117651714469226312036724321887437794432131999680268873084468471600226325296865472591863469337691934409999005358371863843862855498628954867502267386352311191302855551985223954305704079461447296437583564715658742709314805116043251474680578991566557841144512251407509829666096455216015478938036590201634383620510807476955895516983370286716358775421308074511705373371748067223886107891168990049689268859302586873598300681357151292078506807796911045234708045927084294964389682341736646463982375202873663853067079062362046159528540831468265098441726394543097923738721916225305991944111040846005817924611788296601179165856795520862906619458405131859839809974224447310798710175691085383708029781041651584059463933473660597923206974372839316572076124458773157546203640438135310128094281891061634103292962011640144352377445315747576946143916246915541957954884540751102836129085805019566063612541314956124276924194660485821153760824383269002908677116880251382741785239841749375693887430203718255347083070204682845482157362104240135920073290314725229570437213478524671028640134517352054619215230878950773182808071241332620221480848241642219798159913619624520790977619831629308046016028482001164857218223637671612050633035957770034465963530932977399830578575442202668261506881955909231614166754321935051286633928606590967433780591595037502153553630332027572282564893258624040134052475117724391659510951551801720516464190927147253006754533535173867287715262973716310114902231445512815225623816934929308447328617491076315939232623381589216056248632155175560640768891181924067617540198951260085318290335803012528423678528852533868442362324209443700824241510889113325983653189476469441313645330573520547557197803253920415816662135419157387193012779783601589135607150607238550054695741604095564083462936121509748961762208408693853844008536192649417990537394080960422488457707405012442541164072378374257496409220116455076478251347640157164223117099869005063898271212417408364281509923251391797566459054363331649553117495237031700057956282350087907701423649151883970939794988540368596263535336861000304676740646426529948897886729212932395675526220389050954952615486974187563613529731642519501070241578496239891078523118021685510091451132494208590394683551496284548379043989498459177269191372199678205372303436171898574102600528623383501581773203510985655519466242449277112226866563693576075796385415471842739742211362116122018444419167156617838193203771274606983993858653268339684850720506516641055629027216509743143728293292181202808219963010069425670573861285642043426418374915761907852284433584865353856400160534720584040069826792194530680719006077224257159004295598949319192686135536285124363665423286613646462991731064033538012496373539504223057372773540906137504785740263143512985712732438145985005036458043468708277582686953954047185582923250489758494536863177671728296226199565980128679893374259787107573864312647098663601212200352057828497833394772518122582300533177947355112443658953974829385832484409877263437926163574596832931651080846674969851711800582035521834973731573230808460706639371844913987134399163891420284942245407466908178899963215020383341640181127251258731401542704648402798097048865908973639041829712422272107525148456722485007429885777260821561257904687050209920679535644127668768690176156210052229192980285265763957658241540262649649872619810274376364737187831203545588756895801670422534234051473548376031308557723513719573220620853357662259846269457605997955970648740906730817149416805471654317407305858155572924368827659636937113596393416689910486185621145086487589688269130135154568439449955578171449080960825452505254736341095833756243132697903000811088685487029397778455260404999819865879555834039286982043386398274566698832299676492273408825115687536335786976541885780475969338662733923002360394080063336963225161902488500412307044564929357092928145326158923268976926516357986417336487376865283703571704653726193918600701130451972257997367990972048684884328476008419731453671181465049798864865272024297286571796454103352774190805296609837427701182078348201819361189901486279993949624393505161621900449659135811523098981955114166231748128490070512212777290807565111589572249431293540130647746997909618243852211246568630917959790464676039079583125109875507945340811465179827619755966859193240937894392486883571203511370319627147113648750327433534273437713774014252684269680176759646348049040362023696192387518074876732671460377517778849453129190100561229955664800323196129143094038223127187588213591761308866895112243717120830914494435924942252538203525905738011199086654297405829462589199447726770142204234101009112567062586811359937070822381746685949604030383080482160028267915304105575337122111379807097663709115636651148394705274518615665829449609641882450660466011674605992258934410689382692563402234788592174899640121167579916034748798309903396705826086678063831103234796277747837460805302634907248851193050257043769194912636899428234727768879646935672691408853640996356454112457255291084535226564327402690528999575706080425173739391180763062289183277350827461516768139440268778267859737521482265875636127623945368028387816355382706460845032878683284062954118640108314726605374104007639470728266365298877440373803973255271385772612393556889936941956555280154615984571090871116773585194594604128156553554441749982223993505898976194597598921408325434557031847762240487074879574479375055994723573700827280042310422554999263146784814358396524312108376399895660895140950386194479955736595167299295965054659156061449113600566071850947745999141643745317182428291479267239210879261026419890537537255417078286915378814295389624376960987280456245827888910423154313650058690467203567593820195855419126932080484611770034439245287593222851051842318738150017411232401787761478715225820384509059726389469620310113814183337361782682505142325009996026743101817613206763273281997719465501326380740723297161177982051603261992843650947813890421334675128240148512135791810046478275234707321127699779346105488013721207468033870014207493207521809113550773527459018135306324664685278694351722159483842393223867579518611364357388621392195570587017448548382758237502562581415387997462347109930607728914562816460779757786606154387694170573505856359751269344284592457287278116068957033952542564455584819595450133358925427586678235296745004061321309651889592048569518454174928158721447124176096741303604381737694993876919881158404597083377497176738939774461632355816240206642606090667863038695516456992618697726754286956509400750473464630760215522638166593337000018274430326906384939361345882267101095801311303646557539682767456450744532487754303451810073679370043577739417216659772798347343319653821451007355503702479799983897305183525365156852021353227334455570533120505167076583377386179569705043921350354499822964440727845155037399745719609459155209911023391611138455094105692640615529410735582327409292553959368383034194391983961503855703284561926775102681813237608287545934950669779997689986072892398206918985773621215811326892626733037673606082945874327275684317605557880645005558490439452532936506695871732686530253265714612140825664467354418403089099065890524088550053487974291951753070388048446598939683830859636529884852002576129529788766936199310958401725873102010310109777167587866535489168466311165571048938893606215075024350863796150857667425027088766760825391825938117647606338898715902364027358362613956494215442013075556608962423823836706386049591375639054245100735399168527071480281149186762727591636276659808998031161037212622805493820497807070057231051118941695322371047512254858977811544804177283062511660944605461809612056254414645077688345711405110004865818314506249811743686217667299010310671836151407800056175521928533836986767250237515482221373538666643443863466727836075924891377922795441017358526263184954736924896637329494038094948370929078821712570236316492077302707937218156941609588301238659930173716022808629657872984884750773597128561506409182756872667064261949728495845363839307987647964415979689348334177059449248858579391530218728992911240820142725000466697819855835902287740290451004511791797988749178694572029545037839327414725577617065282741269944245310542625358677659239836655711609946486332921088726098277132781755639504111938677138973588515097490454770794584333883563220471813832854113184616468405061993722728568176840235000470709181830508646325218759769775134879017274804490602987003861248890679957754054507257996821240688106846197398066218524811426864760665942303108031215543834209501527913742469656702094599741920741722309057612364121936879781307952355471069866025678405043977112659267281917828624217960197768810446125137038920081854910238812721846103419133299519500998754129375368924285162587568752924795831499946394594051185291068224312362823772211702603418530080647159417084366702084653484400071239934410429479260066046516614117291453960791185677333962406009752587023361542555325221837040068948528706854237645605205093985559447196798608133746861970677958638249397384028937050965290767913646465204062205564356068786864313065638389032543588736526579306925632532876830735820938236181466161598952216286267166286311556358797016215436989193023175508596575430211786214362268399154761016144114690725362157078843950133051939414237460216887851173967820739678170642607066643030531801522334639304688522769201682117788346207225287220077187124706511060989053717747049150960211608412547011739382499037230169425388754647198490699991227051867945112244559455613991961748999556135882719819332218392243549345518657573872011205172132366009186438016031094360264794380378645393499697874125489301135269943077237620381948373982063259064583740206739477893208637313639316859961473148703890343625620606731333803240249830878838775106755728055738678776880969698245708925077025519545458171722893137465564048959179634741880126805199748798843032041789015751165948844011910962327948273803806792989721590609982751586340722275952044326208981950440792350839845131248733835774480982631654459905555564063491371259591557467902859745738562629706977637156988999769063143487796213778410653655361375779789741826773650468822108480990841079720579182532483691229999783690859353066750228549991399402345359831937450033003318653983595181848062476266825541535385529985011826307165754214862083726333338430847510629685175441349856275637465111364305990942968229257818745881172454251842222647012431906792343533063491971008254030510809063824083586751566065793071632918562525762791233322959709093411744372820248672686769178096551466591003774390956449171660001325657421678577278068907885190805398647615017648999586681586065115785691107616060899235998445825628381604207901322867224681823861874154432962870627499756251322578977803144657748405782926395766967891966518562280282418846850454148173847848000875714574401151094874223341578102541689459587733899945360577063663194714464612707388333016305854688285082497817565940118843308691098033499376122536232808146982606395913032761329120916089453887135683269144219449026195654930481879179445472554654134573932193374425776081045422526123694507134815274604649909419703824997763041783152844325049466642264468594974901041280418703007984624240564784068788754134940797559862757120244974648383560986990281897401095872902132345599269135939353227797224847660149773437236878453849055104802665528971916521727749081444092824300685632811711702016456183175718631392768901128115761389067001354656728646598808287042219113508943232855354021841825664224213558852137471451408733094708581441318045624698530550152410486842988980275683688704736574506293749957378188318467603535024519314801313666303459165362780206235641986305265337064404989211554693769447096215293430966649570660956644536566840363602720439624080283904458084196350921537599849066305478316842902253223447582729327062800526455825700602036797266968132591202239968572918691619127395685082610560763623070859969833264599868449866592539231312404479819467822184851345968870718286724599287294495803830036461172261828967442893605480929290783531825216066221091350212765554640842262232097640007874607887768560682507636647635811224447963557632774448359729541971963265755924340251274536423766199759048381651197289471081373157505925997720141898798781066800773599445027848204551997592824274271587201438458288900455662817287643388704905696967227589156922759196808305471181884506255303903448602797464425888283151664606121722084844763551379653358168244865030060245497426375288667724452011276753023061472520626039740513919898201955298681387118130860326614838636024150119161442576687099658542504907137900522790927717226609671200167888530645977497645990179811346300391333286740409290205147142633321579421523284163383094755032646192354361557387824307870393388309038826132954655414158417600922820781871236527387106211643999676943072708757552703541755381698414567962979494930037510263742210870865731573033347368066513122019675464620924810927472927471338034586656943203980260977898083041508867979753120241326682240509079741790464544592738101348882456065677111841637444086239105428828357923456231638539979747813838081896743615912637817310490899065374657775462353300599747914578519529176773059195534523630900806630489054999545495239840426992217289035507954252120383469985480040300227377724957852599538146945712060771624097793819299243226155513984199112945512818869472606024770652560311730539929028748916231595584860316569418552814229578789626223039920087665254944070812966179458743764918550684395589654368365899457227220058657375488973621128939023204484838832443262301293416246828288181060189426679931786238765029385765280450772136705644424690326015728148454443375011812474776379379879696096275564150915177900455371591649440054189394786740314590705312320025280964186521831388739232209220048205888971817252407401903590800702085494209886643582423884019996218676001835406433543994842781871434307176570482929168695663548838295926426880470376527651982306236455174376510192358505891374643324818737525743942438161858382867275464155425528706969085869741551012062442645271441380519147148017343779715430705161724716743657616164480249734827351918376038576462111457131129715619957525489627448719020267765455000252058911113721214948488093935510435899119970223919029642154648614099829982795591282788846773176816503697850941031819478424207696072554397824701157734387886348951328768269955516703932590818576995069308332902709331507739551749657311954615345652382950806570445376849422746565562855080241759599059478327500827352987655939122624726331651564360175002183595770326434768430775406562532464329606758643163101932243185487542561686617778065641948370505023439763097257832893633430979199755495143316915157182703249987467117281368827923551874347030010597511608654342637888469621151824769166331175944409851080884942615170823075476340066057839772468380972275394353343848362476535906119775062009882811554422631497863374782193871478018498827767527381839840081519079792758463629517071249488432223950669760340895163522428952282781036180680026649602723469622091488624197696829816834292381303037836513472549247502848032882930678671189987720901163719059331645747775116637667742793815038887680451524458319740069484233025319954005841878486751097625346270085271784302322670669154453491636125431662252329420837126418192202169839063430466806874146841223956818963283837439570602620456451382883346162674978505367859195277862593761180943866670369074592243538143855171891154339906470380523822951975751888523571178646167215346348724067313227665924753070070624162076716796600557441396772566976741479731839675008038324462816471950746033172633402077427045398858976857300854915636102788996277963551164102561799398385680041841528900273942153573527058624042252317462826269869094224258068168264521405547057397357604431978330620921065167797204138031012154307101245849746195988899350611847863122513273073363370390726040313151272070672555872865165670240798093186970610368936233740754480162112496364166435922183498799999548841660228814380516917631731527420501013590621132412511484937520795888982259034236817479548185511565133882983508969303369902648377022938762699499490200365658895761335223556803162608390490219822222654368282836601827541652264383815957727435694226350418848976718384904933763306416345497851540737546255901469214238010098526956151080728441892927527443059717678598274758842200165335175596699044879696145678791033872734130662387094224219162075501444871706763848074351179422745120096571142631855413331957423081844342695089505554261545317139188908923035543316373996314734400957859677200646980843870867352005947540897412053956189582022922560590195978451146177642332670898981311740034700446089225404218390723374205314855768304085085886050363473166407828465529933506468193448844311474563247472775377319626598723418046968784264338017609950417788715688664158542521022731899910533497085473882338830890081682550989153581226601221177288451928153228673609404837818477926649064329256132797963983308384722887272364419515006940370548004189924152579867769863399187930280196573955264488457880112330582849249234000628798696244844575588053376898486451146644045995711618578842930388224690281336460800247334048426622542690970488667807829301735410424072747403894778341999884419611601999131160968309963389981174836140118180062907810259428310725141708248003640197026213477210354501394650297747936496339566197588259004531019660234447822766164202307190435552931074711536511342590869350791282428458191761758911485608375090106908252924815408797288554849661901683480970007258914076406644294908423494202808895770778883440252827297141728662245472797295247163871839501419257982553584678908198466385433457925232853709884074077895413826837849492722852709411146756459387713878672926971825678145098878654066015750858750401337666337923998309887326859026414576947407010739115541876886553827456426033059305287431585879563153517180086850299665868931546890999888305762974397232739681606499079469362284567251838854607707873963746305714771256323094926955463962397468953801959403384713676469703913833190875961476611705027067211131002170366266171767751689796206381003989054101634539795446557745558661526560297245973208485045919788717985636850647868063382221200397611737398147983915904027027011997138074650808596402312325525134639154869823259968950539385625176252616711673795180038170953205362174378393712742633619273393519920390451051257467041993028931805817344983088409156083742941578562024066687970373551157898614330215275200106105451185503050988375488738931465455285587662379257403967420215514959029397527402902942942899910797462198212478664159108685747950520771975596546675579144872012443049014606501868031999376692747176292480737976212974890153780238897827224961109281194789067742585240561650922631502285370737821614024925674623867520747933808156120640049211704251419994901326714949009354292708245156310765747726073432414502394500130554776032902579860736059215726154741908520036058754343725615346182586071556734230728772616862477014116111896631605454857797651025443086337896435747904468904640652904884934597470963598376369404554845749171244264429700892799740563616947676730991136430923647263047992335789659806346785233522510387047411669624096562165578979465315287068897513730054536120765636464714508491347588900274095626395248649113736302515413363553223047644033898130259334049680921488625935127205566309499543970632980788191862003006497935242758116851940651235132207195145767636340970387124284504177950602123467380731699024857706084929050437590641960387524855655218243690204306326224574971602554949290229737423497841093291625041801714493417813668583248120140066622484818573361005223139436834357742590972332491860661639983488953751384531584509930856964841613117761174874670354348504636089110899069929523557537795212317218668482421330157961016163109565681487157850906280086260546019183148340990191227399300061097055751036235057533995708506166293190727118918573548406768596646752333388065592558962804230516261528292020072303155333307871458198279839942430673038261814531321135882885266706428962158349934183460715152338826648520126778328874445590547334590921795949275882255351494474468138968562800923435726731142867670738053067860637455829394442783727907309981718515252900600879701979676490058874927582226929243346425068089052905989038651301032069173209576953348032141931024064646015983458804343687808850994195602129628454216017947310432064400880816651800242760781266746735028365535203422669229435426321286271119385612751080350050840775400567994865425018764641669002805261715133463655350528384021440708071088419615020034621791333233397418958714410415021218405693603883402988082841276325566016377557203461896629719088357246980469743608382660414516927970653920817249439281168318672578216956653344753473109445550621245267206926074582621806378624601555945416193353842670567042299314324461006365062862526621787814310680747474978369766771373993899433783842148517215057904625768680210690679725457642050642067837937617730490550936278853393733518628375828352679358248219904658532759434985271502214119733912477531539512768652151994661574303981813444847699756537365751903539557067445124029822220058908209638158222711949747902434556156706955607755803012401401570996471091046504939217915397935024244586501854405499838935133881923289784957485007800640417658677293892144167156075061720254790742424186220579647679746710178924458559814241207156894620118599171549153819611406154113106608253307563084499164080348583239941685040598850073199204010182988826401348962722802589804779818049980146416184391808563404670817389136730050718559399242752546895583813572660708123357185116655389039689822872759109020893863183568727532217359991518930293109264847840901704153877438983850465006788647628945143001805947617026201794451698541888218875490619646844229199388585961801847147470016366156357894305626539169688105965423576096693795367275504748531493895648502687892919311154311361087142574030273037662091697040387243949456319531906551986548135423563947907291017810801753729643946823168012729482226167408110549240712609122571178186536405085403905644640490346512094618038125546917566927876925704811608964148920627387708446085336884892991740138828259174309360046434641950064251615708186610212606586573708265745531495888093669950736605857676382157147389724217975651107166371471907743156537754452625275510469557164155973786846788480444721627273007466038716149156708535048969436672145377540746532985592585812611073488527623924899716713044553830047668079193576182348755755198214690279699661552772613041253936686737043632404486112667068052437786503238397367914669930828555203818809919728995411443731806361588017485668980473478994199514966477583379042170711612861169168436739045627780090713578398576029104001839228130825374792747310344883649705553730310993192945321649730073370108807500023691899955672145783738815210319799275559942768368763315046886578686050153632626254916358070511872813329552436758174991659905164958388050029524771166606996387144120175281182209957265277898041501107515270795994664224777417678338324741908466639604064690278878656093101792384379404528793511265325940948459193139689409397228172784707346385283920710576718719951183279187975386348017207514280440451884221554844983508669350660550571446362162350249690772208424867688705144269885056618069569951838663227120430243028228999323533609450651421206470901670412539352073112068579601359387974467862441117558703160129718326839739362558161378640070335502555287978062569778559860196064458422067131278871018979790677790508359753652606994458575563256376130769012129800442805814286109923536869226412985469990033136903774221971361346434658712322747913288860545823016511324546009198562263161845962759657508288075663920735802270999298833275463035979075682929413078904002659917959448432506210434129831377772279192127403533755593168961430409386828744945038375812956905677370420071006692223976419110488284736657454066524066957083963193313445531012008422325035616136107381631963247872596937415206556096395340839085741832009405936958596287077355051942028655303681527706106619858569448206583350573498600223214378060457157108851965908113309598830394709289154030362468785131463150141621946295450941372755637750192091137286677939094110379641046851680004060089842227474048815095160487150875197530012406181378344739145746807019971394472006733197461965460662966058858268495669277469759490705471894999328300437244139882691477434794034820229477106219343240250540178479816663752540226714029503321704245924617318753899984242544701862323545634061379228217673886905499734932161018341271452872820874132488238916531222352199826652657134559972690949677635786282338541997514863592882191611364171101498852618506292798184390450643513310888010057292360663888497022910703523639151846059541458916643194992500020644551359173693029712870777167623838734381105244931653881938919179866256229690242546722601009242034789451658443357185993020762614129479127316130196887457309138583762788703231333217195139366963335056232863997776295095718188442985385717050492667601733630675691361657359036980463222341011053677901175898659706550270299113730004805927171230715519659543144973717924214007253948415976505518063883019641948333907084523052933631639404359733762540831723420672804688951395156504521294945643456313029231912398660607347927174754369209901792421273693709080036231210614068580504851711576711479790569187643419305540462142619236154103560826409730504298063389198712263499042413115108132999805449165903523406303929532724099339790160501847324179150523050123847788011144154889874399800205698575560532271512286750567134341498074559335935006887544186449140648125418496516666144454459460152124773444554069553595963064845937744531191991984881467139498753665042716180482874794723893773732463894723195741608471781838336433251044099377232715590883915701314365417440169310795133009853306615245685899538256105154930045159382103886083937957018342093809015236545290202203031059337423595025077740920080672055095830011799796672461946009903484674524786105312796907800165534322902975655779382394979093340290410518591415864723259408132144382426373651463715596152007402168203668540023629537188327005028869035916391046218185855040133145007424071134882186043843288326742414411251388318748915051046702234772241309297372496748417432463516719294591994023758534850810510235285676712205562191176524754121811016787634391989429861979147883421209477336314731051703450670304118479066637101576841060368869813658501639633284178316733935629551143320821425995657699669301375388008971876797270254458272105425878117398900169727184255435407538448746080977474712328422137205133131324170444648369435449199062384288608218516577635329302695747844513769594306979616407012373897731193276141644138002739104909628859826588624313138669657833451879220343702075898914980169350626830207817666556005700824535490106186161354246556639411552126636375350345340780456279472669886675815386289892910911304135219115181318907869713215406535845240599516563676417249374847864614029637750181767874768728927070211868492488048341523827069670250577792153914297898574489235168116332034559927354281593000492282808008955703379081891550652735469030163496823792112740481173263981116007404406358359708407884853201949368560858056460656694216814962797121917620334118359633117109485804664883483906797549001001531177060249099486399536169725844737844798244979807390195685229161601293376597318639941229564573787413632431451841133918384304913307131336805445268853884656966639852958642777468137946353374693266301329240277492057375833033172707178356049718433971103104156031573980638932690421408732324918873610687757113575839961507802435959552585728845716918952179305185052069389370177624273907786470251469589379281017560602346435616711824741364789028213537093272530325567608583928897532519124518725376020624866444197761229128461526918846952770713029667800593768313328698443411196163822346988535509321294292037830986140656592962321098822826050297239414966597501783241258966329362522762488948774957030256586609837350889380608109333374922514412493880478025820638623299609518989725841702171286182225498381710854057938142095070941112470028466084266437243925217025911643299316524385489187506465115369300386365697396414588955777631740537210197942860261539007196953552761887883779841311562907059499119523152715960703124428976691922139626039835902539169796456619794734508546074572980433401033530446448413136308014121316912268548967165153747849468298761564987709994288772618975737180164431771407634024277180884289113520948781069609856049486093203406396824446556631501756096212731410505793562192180292874687093268045666566866811465887482227851147649022935307021621735729488937935807542473437814364128483113042578560356584514861105202820203784965753635011546101728348450650128415800403117729970242896201145801740267068577646489867620565414189352024862882074634209974040885014347426015279079981501844113659172577039780554247818823070649840232893521674837903555877482152043623607692515240122106281743067326155941512522657239647039365996347532728574464020039134936091738872712258076925884059583517247756876984237361482657802833433908586489638588517923482437583473094294138972843918226348707261472027673394875342699803646144640572829467114042773618310205236773868905675772778565372746809784261465133559982922695626778915979389523123871770785627281028470806037694709798443703738275104697675418131486980206532369817290550575865427024432218656106644609517863211039001513888350270073755194299097746708285641488810818658939762655214467157888402523703572961191805135655089875855707523805545834183489756739790265102351728493075478659961415323965753679479923323707237651841437907292954143755699614149723730802248854875085325392446513348983907913889113349927829244729707626618432595211712335751007472497659290240111866837923406155690075958226463989539742769114146875655769947002380145712091813733194208732930745835696432639016997528745645373119193107931805778351043011297091886379377237294942254276202220940998940010500330285491594432575666250041686144116056608586726496186865715736230529149900033874661502437807045441459881060228448583210933114897829108434731864205363497100230895318059436756122835065360950445236513094845624004870455188026889408708614002561616877051577357307199733529770195679835241594663720159733790288183446185854652053925505432839693778512517895362171288674693521162864887756571594998469378811688717024974656730453220320439973750588109754187447388620243998442849015401837953568292219041491326785337449081177480541429512322364294842254615107366812068590909126273372655962490447757044890459094472358830498754341599683477229571199160272922553061788568386826461581636009937526732270128951813824420439184197565854150373209191864053292859549680761063135778325064909073500291257826498866706556839625596904771718130897496808785942735736032112760051740461230014304300105250910314687557337685242405167500068385725606230141834273722129950521262452476037023081920183695639804203313804290751625809165963311192770592047476198491161413353128491718303460050937698819369444355956730742150670930690963556030381628846778164099855890875655757867272566928216832170386244735933150692979782575886218509990968678614828500662684459273615454300295530741744035993435728545594287493031427922719719935721150427994903332870672559090773434360436602979589533738440742307186073353242849948095960937626932660279693502454177020133219100409689197525236296406210124792976634441498306757241540875259379207303987484762506466272142202899830188108655717283674085445259035749775501455110606243190342241738692418753272852527761213463919715725773519553234562241341293465753154976867390310247558793088077744101103250034939144872919220842424049009038700570982737884537292489568993910613337746519937732946059294955529509628572072714294045977993731960011046617241504834630390001344124988329871576221907382898991525507596017908851855643980162329969959801288569964250500314733664670842837614332458241009024991358813114483283926990071547251563152938406728186865436934150869721820022957023597929436848695518448770458021784941132324541925317060057700098519664482506837182110400687067973668182504192576145766170339542044111277030259578771086027084765291158478266113669299003442035965707010733260058468038409773381937533417200707892285631466250812427938988935714613199481326196831096372660777879975860353864641490653250882126095129450106784464060740037565453611372688622696412289761371033515314823013687990639541375697204598766565036181032119471842350177358742415850035952255376372235032311403543170399189927037630625717479759699190673667016289666565055052896445606665605798883671026980444229866751337135260193564699275319288193329307193705326559646498261395240718674912841947637834607722044236198366840133277292500788841262307551660337055423470933291070933752788098122643732942298122710856815649721170988906399176383482793612085987418554663053447807965028028227119939592091485333644652892757619353351776796507376144152027782570598167103780076788876838778523006348756794025485490004130271892942629875350574314399619156526330402217523425487061925383479309294733407440090861456941900777080947129876690264146152571930073498896677685239794828079904222038842298682877177621609598863770075270655430574483883193186584477134126623066969482350737665378597334115402811126472612771015770022932991619260354219705075288019430592743632463491208846752369811515053835376824032204940577061240402577944365137713617315739714799760505113036504835210055476791702202785243241419377588161397260178953362986644973326203552168570968792509003661491710706982506420977305028406771062113973487734990957707697313404020784539388239628498043271247320351197183383417585584498050487920280436961045199052486954030712328665567666471663630054858285507643953229711886589181156933366440110774823924689947733715464564078189508982504474146567765451031193952931471356561082376957118056350399283940742689942162780127384695074533602933528498428907424264124869164650491239466825614245600034601202085620932003531890899072897332695552211832765037177119316698084958353918729834296394615041394879928936953758906057925302427286624498492122018271569751089434408359979833948452716019842391431733371128222111290311390151240975042979349914878753068449352897664013739403144765467391998789587772236230065548081007707325791845592205284446482473151158638677491100892414794739307994770917369960828966613052645087768106679970224199177519701737098816679664621026716551274435287205273008031042944311490809761338473709720307092998123082777570974206180320098819423875680765760373982375798612424567446760011977692540543650223572564532921825149461009073924607880706852607422776358395686626948957677632917224206073096531062743237682815276824812707128894679652351739153536006288414752590006210958862186000888639996966439048709901517671217015900429834497003113826109035911239784698039738817514872706799643978846156854970161523385479654065803486250550777575354479032974036586838187226463599491039320289836967889686763759760554077206715270812320325558214570064533736718749271943079729301492622781656611048367962264010637820388736631545102852372725526220040259223760187940028512700967059633895317184296172641628308670825807692656901375487818342867455494886495806247907012065808843458450137661953745657111334477017941732228643752696952602129733124143491154449745353172721561395729701488598109467843298816390094623019290566002424465890599498768071690287109762151698766263759813753773801648187050674589897587428969200415876057102915431287406404253239057188300109047547478873830674507543111884874923488751612987459454415339816417257596811524245991835513696096518562946170344952024874353538211147284679917390322083860646882488637087364380858538953746555746138896011666806607401314337364397927724532199663389766969966046366703953580025051287903581083493369300301858266510522284701665072353887171506124092244973564230013591203317663095690279426182200897884676571864323954238366285774173692569436743157388645997406941754493946285541997281535384556587899948185939859592394034987577663996092504976184107406388439042106054772449537075506123364613608809679531634151277014253446163974782732201578053532140226731507428880380827348895641058356604549362988496635330698911916446299343883968493558090083407928292254360577555987067559114895227628802799819803718359821075983496680002196848607120143406638179512149217211469234474310840157115470277217450102495273971483358485411796009800396307239955555927969457638080805937785608162101357280626892064940395415383387133582784228272894276586814034921096067879635039613366357882043943597344060567811906743570078372570208649932174524624387667814594297494235495479504905122561572356086751303021942193229595838150855102700535505099566171680785961033952934095543085347379082540862111716363312261083818220412771303794745524632199135072011746696534055102398237932551460977716764101955955258200631042659930083879525202205301213140118963179278483529667693296788839568527402401241094185380317841756742068184777715719677508135889274078072751045936113593422860881350954685027449096906174948464799224539857741559379865442374833085555882230706563770573137288097840929613821797144274569671880265077127098675092460874616085645249821349012139031091135599085315310261345880214207523717864329420981838971468517213086717067549472606837628825094587725160634392417610980131108814449801558789383241720847021349497471839572693272549097148226304245590209788570435499435509047125657098717971083745583992330662435268457099284381622534079892938958720169646264264880707933690002490123582862462424231405927964671421378408718198298046748542838288021309864930385003006020998041064315659303341804517581994328089407687966923513809662152771132923627208431647992311153039040362269814135987348024881417819370939575335030233467473532036705954069673980135661683721574712873737696007439698405999309384303980885190580162893970901148397204325835356095179861248678581088676219873023342046706492412492903694464095279926861047886337086196678719232040465349791284490106862767785371263839994450262469676883802993530105478014919759118167351175749888172735018207025118853339423054826975608191574531810012949914166003934041622648378433575588238815421839730960890513568025681001894664015948906784568792478590967402913225688378774208879859020295339572932456098944197025103937561122479426884848861792522065796650286612679053800469055079015932923958675117182365573487768991364248551907109371776637725187994301098011135002791307204446935498307797884866122456733275409515918533652972477708366168933599718276285337245754298177063214005973120136669580838221240186173119715818774667270814323682858405040754970411425964479611318295163994973407888824262555793596987909121463973817590248331259336353255317649553373240727273956634790672125926587767649996963785019890631649894930556900159857964028545245741338938152038551784339524992596520067223642624425442490755833324562101001757479767256994630220368484379094613156908720344171341902290132298562315610041239555810329459876921928139088285437812997772338870731239922798588319234818000435543213992473872789577241496241757370009466636124050999739150511749952716878882731616150522281138816510041757606522008306249015676728862462353166077496287088152828002932507474656355626107230398556480839592685849349914168451772267528542802117342943565045179824788760172010081311571912735986625552740237920075605858807899534607314669427863940969136038659547215528119594772263243138272889263747837315724151411685755953594581791588898251982615359961775629294708966461357829943671294953997724755882534794483263748872227106991051820607551047393579204968596654214206369355359352967718360070060806463333546001671568244048358600342977230651347373674822806879453320397409401543155566913754283971376972500634003444217065947410021949175651498732667970449320496530179597947678460222409799897457463664879712200603933690910703682373871025146198584140157410710364504042808275269750518263172331073374575532789648262592905622403236882172092045334279677903011039945583520800273258347822061609867233196979416607137631936415450692789995298926006473848637988513048786629770294974693136621147746401388361657093383878319477225851747193738384697881615911096629332267256337281056982441428585424329583433335216014262455307632555309817742428053968924525826343156332545461962760140832858165734771875417365080829547213682296204193564639761169361674120743219008676390669541089491348515531866705837908610923188515634027388729183528139206770138403571362194145314474394388531167539189694084575072918645661260516922699993363845117685565974945686938510308585105745245477055977934938950547720212075411075478773928305062308912940150177678801559109315668556586591963740453903084528017292237212719633919871612557351490048353985229624288795181370000530622605286597875802078788900353751534246293893981323129018475283415991006091376535187543184195485164963504324151917607290946146046183986740311658105494338398882532156802460049480474076359451672823149066496740861326510240176111097486634725041160860496674735732725581513754066385693631837998109594573918476762468900267331664871636243248605844963366044679595416002524786742503206511210159794743904685466420962471455527421679636250177696035562749676708532377115819418630086838403885734283541795756064971452530318366484256506620961496447837433646821293119187328468591702171012783205034701287490055304312931635976000283613987190910408042924789347410831340971271786920298837673773374687075533261558008907623643487323414249102536471769649187880520281536476912163253001624651508809534694880438095057777428569219850461593230153551353434145836693973475617104869194787665218648460877527716837313921173548682698344653327322561711362829376099601201895406896200613344604163223219961539231655936852830329549678331198419269572884958154095947320888066180670832602812712484246732911753856536417358907679249876100835800147269980795915953928834647670098907687885395780246173479552922307737459468414274479941806294624736082111818496583640630209800805929375415316872603913073644840123304599494421485648846919551695184736747056833626542719746368370223997352493371953652043189742275734358551876099932252864721629790653112161424495370855292225398204871352528513187238002872283560951926097142166742823093235112481619981046357790261951544660254856333041222682740156528451375404868186706473807068375051085727552978439187323130883437524891287940459394889745612541010094533256411554435891236575836986812785969360727511873476320226043930269667394834885596719621473124115795446617793648854401929648566509034229947305730664220015760016994838403349472019875175612875692754432351884258000548569946067215454908781976415947509793321711546632065817078337337291233923710634193359056940964197484024536638778774527884563832391334424283688590319134006501342585599754879927016926814111162691414856835614727306834205334051514846098382928999861529975192230511280762783151131605302778114667523084021172099304664401391462361295678015465078145869744199051146027534598170902852792580465535770635464183387339537244789567146233094888600731782536601436721083682550596233346010402092152374673045407020599456029599009692564024824753680030557734298234162244983190745171317566032374185882193493139685499744612276036330277457770996109180552614163640260194325610924757193524034648316176341358855560581307652957239631584580864172742925601887861595830969638333946458001642150387327933252431309186909307335459364720815613188667391774572952892934565737477380124314284373061181296190106476394859895430772855496278518514851431345899431813614732459419273126274906444126836316041427356221361470713244634212039925033806523609642263990047592156508206619567621480360487818897380377745205664927921784692032596643260674487047765597718869381553743487058992854189342156933644640582216376091465324739430943478183152125660748035255095009972885598728063602589728765761729583155859862633077219415984409416194898754168151702665122435560310661353567999433882637008458539840145819247019063798177117374373015299241790815977422764599069359877957754184325025152623010894054229875331184706682234412026392406068357248614945796294348703434928018966240657051518025823035973918615926556662226778250728519797115527494192613810298647155247333505885659818010495136518535608556983549479825913724361182061961326419682809836218589532108525383554347902254115458907612390024206368139728854845481386470157428565221257366653703500900730311446309617367941404982964290979131167709233583735327001324298781297264090664971690741156666243125554322951291573571953728138266654196354493550854479940402125215116757511463267483537343671366233185817015717601409287082904690055889955585565169612483249091846934334319440574354041676835284600562233110726131018834051574001969494036373150263975001783098499932709048236391724670247801328406621114907300738778372632244593393663998165703991967581936310850304752257079317562261372372405366634968573382779458318084041778887461269036385730697178008049138678972155804985084323985485593347721320405941370776286472597786948203500224529504250862699508295858064091443182419911816709049768426719085078440767692137034179445026628710424781284458152098364355720281411142384011797823365456443837335305944080792553475085245589117804009612025986260657792656401731721499276127858759930720999856202957710232434071747146768042694501386345968126380614944479144998056748731808336332280437417927496276632397894739710736071042788448712934504257010454032554676443751010757013237117650881037218596793766473641372756623013704208360823200179304286754859070032898086609424748777008936845277283171589306465201333586561907101430878523791895500924463318229860476232084920246766065019318279140335985468359490378522388031395312967166398454464832579660472634391303607768030287429208313026201795290912431790460497357575360697231789718107724013729230889954707390614009513608290876540281157097327767149272032741027037230672784751257881450992419014388542722676790845106024286282871870003201960930584383148846151996599466866866987793122778184970912466433662667274643881096015771883807731849232077282093958752796604944705182622598735077223899378208993627836486290491676684519065634369293473954832700589593429806688531580674684483867303156492434489298856664690637593387930514093418062735641106038491755242070083646365719223209365212672148557526683319545969810847769185053669509668463444187360866076409733647781186861516227517234668973703214916476568280178136738764971204108642651446548112110246825344207864580743047903853891722209454144057253527801125950522711113808667783822451938781431694598885895803010226327235112608160376977548899764214295494207944767630005340781766468894512311162415868338133864680909012006522243228676331120224441708859107205000259688238813529578576302551525698699970895634085968658119751264233781382980564610426478818544270310284732363418713532266373597718332743872397022522213518531163504775071701212770044242113470871652126460065983271743300887376085133321412734327043797667052757483116111453317910347175849008198064576064284433220144765206702591402613730237513233465586284549973588427608448474214192619139377773876785428306858023280644531516156059614529730334320200612090186759966355675089328040608031316876107067625093643001902396349216735883291811992453781821666912553781435307179670623561980645014494093059291998157438011049921367448565124768779491466536678282097776860379268693113240856191398558783531675680037460211576044938264328211566758733563721717320799477177272868528364294639662826655188060326241155153503835264214486309009832901230015202607650923767971713418310556080864879406845983393070241618775047569694610143438488963449165854751773961154885855484646410872821201037730503832981784134810483514149929134954058750903043232362476758924640795465324814222491488804565791703391484722531132734556184495198902315091752850559027484405181684547745678080869010871716510324479277108805852203927549941340801612389571753139656835023386776184674919254955403339055328891489721579240676433521804734569462327078833528125435015317179771876857504162648282145848251246355664538799783855398161888397668783232109938738504021156963311189890797012435154951109562345146813722354542134472939847233066991570244118811266527250600993644991350623464164263513405458219070570862305082689274035529186807675405498687852440319363304964248087659785610410276381102578697632587826099263573135274640840460339244684394874741349075812608720298650524469022484135709886471125373676605301034866371948970199758970853795985433314568642815413814695135605722799738103747456290921366365486411488032603214351890495951680084002902728643988844088883040302717925012720799567078170373191442585042015094611168320638021550282324462207998351695653192736227200503363777262409987997991818053068521191378695710251772422210724774764276327773929981457317807176609655025182487891111963570244670417354216967979606692837455382340320156495571801673864368835656810552722005605398968581917524368535626409225995466099851115664629913673403898558627133794316398882786426277346765929860016266046275756789407337346300143548334257649612872351808651203083173944198564186074084689146331483783606065027138430378300326239073343866204634295398681722711006376189828222836471793755414413400944834381191244365782361181368796158481639284744186751142246034577427022387255945390355142552975979478669532344550160430435105527646012820235875295105887185462437815554037270938153659585138267032324227059841780069019057104412604103490501616653886191110717852694018964436510665799835154150530490245337722096422282062361021296571684150678415707188532933444350066926079927869533177850478759899599378470784295643852012363788250442063335521895359810246573273623585605700951248985110880588686448436991352211306750926421390964123176641789259262700358254991320469420142313982866212555652342148103906403795677219839530111053114946368202830085278634929562438561296647523856209056198232104989968664480844816348787962044609755100149233376338136865105603553702433281229868047338970845730855552895807066725474443987132355494182256176336594901768201659451588073027587649316959166883355440334178910079138223823138540485215360572263958584050676583261320797769709256906660313986053979967534959034379785583199502817121249858444043426676510855063477517570144605559060287813464839341891169469316555626679613337994343348699601927634072924693487399932279740588868836509856006299105997806725947055535431921038902472252246960216890984205562078899501959893050168470516257113390466312770325458606203367900083889263514183247959544057064031259993942205964466857403231864698155753208219838186052435251243374446011901323844173250667743552286254785411861294755972586380708875418658156105108825097890397323371224800058558529489376392253057401571675380501020620492895106625061407857670159584356738248486452293971345236999350986221688218823515190409524197626038383540762853955881438719621941904956044706085717703493717761116218095748554116807040975434155231862345653596023581667646859959913992459323154499910135898222696259447311196019175075184232250005821854555501927308245536865542325000331481133255679223986830785843335632987176168594714510985690246912387050799694269575000537697761434298429720153583526184461088803239550651673859594035294882750126899297829897747249060297758132932504544365741943996279463721247058235568040738198488404651500688339465589145462975195370079771618085339753535714490729055200793156206715397294648332356576491970137399362100742952129430839777275015770144216777859646199427336115906070271142982723377880138642278322607733114396611698245351090944626389224852865426971173475746815458274283676081613957808617872970692411548170553367796358371615068842435898833034448740221881517967935013146545887817937511017212517955847730528218715432028194750807770117732139398475175554829443038372536205499604526810287964700181978848721017959960175850469843508235044478315993984533955314237278042792374085825604603728254616684558406582301260121664560071281541568982124947540614737930964752515821497630251391279456653695818758791383753670256583170279012749717196303789727049722677729215197849322343469010452783054959479909928801147474834428841571917657450039180538102537181714007501022210603613770655843061172746498744433152939018229588428781511753692199455594388297031369705951905188503349390627103226307037617733416731163988107606610972724999556249851065158637454351074817122021277024850326383261839146103253055798865249397265619130402909141835683877038092128632826030546783118476269764058368110677311624188379512597122078586621498555351365454284948301374834941402342038870240264499564484678284923705892768084128101122057443259443751787973197964509704797843431049377488487099624070253767268351926469616400860412959387775636981476723336332373273104930327153041191760654335659943693414866280452094126240402274472910513079156618020137236460426452841496986743657610329970234649391867809458711631570516533640146526868937496918289863060565343193482028646883433437887139489461550550633267919582477728902683256406654168172437064498956092647059862258907088606601335612672473373082600506174614209053578985567891824102109740122568206837397170046948336639725697110378682675232648913939110380119562284567061487048032491114244218783325078523727605529931013920433215074675419395935593110822890796355932182626869912458848336910823745289183410504249288544759648453584139960718444722503449523707033663644843688784455132949131504198761672025817176631398116995115705786520900735243783843287291990045953479141284564752121320546624095802918312055951888763036536739310064623052574997779688498462392142695476056703893491785503870550472051694990038783599008131004327936874119257642286143199057909902084326911065643192970707653654888481027934168334896635695535762878508671153807923527483081245623992406555371870371438840679914353443224305137272946020147853508667059808881230824783233124446718725931347482516793456329518070059862898124225994429562693981072267287175239981204783310380877473828897462631117357928672473047420613185483073887647497156952704462087566049600685117719555632618864938853280946318660066971689304896315293776784029326819402988424355150950310804016723936494241013322673833319035234783462823480803013883790740880219084748792705100597930304693364820938862273195654506832054382835601893732298866347650244444756907023854592431153384942350424422056408315730697426561596403426078723862157792828470155482363352925710201255603402119180101689021490310016028949956651896972202846365838480102542997530382078664934114505870126952590593614512033986885023746884400645959994741866357677080615905555011754791950139600459125525462348998566974122431958433332245226894716279520354138301850530049343408403580266504924686417664825606978406981810357759454726293200298744688088344097531428892579905063879686109640211964922182106454705505703043428613208938994833896079888973336137793602593988338978254837310731602925690977701499995827160894993942169851266091508644406031763295916558907681949990614520326683619964461130340500468281133717598254671128387780704443203330406961898643353032565951210997944168481847427497461075673300471504289287789838974559074672206163095684111798471203531135839914634342915537377867848122734769196284280572141300932233824028562118110879036560077475031175745191608580016009608026421798010184091935845748320095772974069241403900067349520226625770787600524221160100748103238807101168422834998421013869307228483695084398531299165846100374828514237519726002491269590417505845209309645546982046002826967246830466648415240580334127379070666589279762762845426518084985427219092930518949237800944625218999046239746838743234829547400690364564777855090406835035299794267432494394171386356166027328910927669207493515786571261828301095318186614959413718758304360298199090148003147005238537737114346944130317211734933876774952422043543877077279023734622076980942367791733195996939707158176744814093263625177523837268230947666949983328329873892727845930756112011516483706765902825593039416043960510022898425115402289040557283049464051799120134402127666370782695843285320407288905891412043762026388210916670519791645167862088292508005497166667416625204600711482231850056055964010423317696805448062548363471811824320577081577159028279420143275311896255555405433368338710314622291558009768237107925706270169181408381207140815818946455372471902670045972273646146256391380174755715637751335877252950792235000087470882713420409773006499408113091019347438302004842514157034329906344387546989120516210525803380055546395633512168295983312947363149430395476519024779732710041898924971098378134052376517880006784241722370214807452999559347675696875209524510873662042760219214945780684582909459759255971754594358877444137879227430097067587621143029967203753829993680247012460011413482618354715732159027462205976754729080380747469192686179155768353166454061338795529448659401085625860257514754573924281608256152914125644155800089946346156611511099460168419947751663292414514267885537403035487583275632624153568242264250906756111228975625655912635328432801476090021699405254216979093350533825005707147041367096366689645321224707561726030577595138600360800495275968390333931421124093199089332819887932844643630321585805715033033663454619348834947096530139088219094181877457148900870646291064967378749643547251136433976037940197628018968383654679575118589223317183054194107456903003400732311223343303497483605177543833432757470481133722775555830605916298731029685089660212004826916750241367130616575772667264028684525649080532612559934139312579829754493784876424756310093652114217077246296083716039120565493743862502765253642852891698943421982069049383658211743683548173168287879686319607525701957746181964307289428282666428093445795678664911173928445334181031503312621574633676846062357783207154497127631642877848478335065971135032563131359488281400547466006476192096226648127636185892897918363543855063607592540164012844211076765441106018172627994969388374090277595391327595353604198169354696818060578698468996581817225540211690996069937549626233432459977519495307350060551557720894622550424803878137593460623387412027190842682545100387927616137498508898921064145624782082851770922952902131809834755210729422465235197724988559522353525447841983880471246254621339364673067910194566421598738304186157094387707323732419372636266709902074789272237926017289158375331515086033731576549649461225443353342376644681876942611448742988577766748196108104245933141400362041179341226468376396030912324461329779765045991767337953000953098387203113052788158230493558895273810240544695795734694440294198026807272806975467242649903090251796427002993945611683935932796851042858009138637814946794440956349883498466791193895066013739864249038140760774796163337316767997083227938552086134452743083014190543388696791937064171046973060625476980448979833331241080174058087324651729425956420631562631923055480260776455417038108783315055830924254713639328275567464619217063769372609422703142066568006271873234286762899258357501183917570090926531216606778174793945623793772795592088788520349205049478362306274447864026709183909828380173863224540056694443579316920463251414927086002747186419983365578233462204800066591285194702887864813255334539991019167002066019819342506667276195727882171011321283205492724505945666604119839166585778490437119432160604692954090709530804474874999815384474162576078992859942982530880381907101233889403642429636648828994261637231373300424106382470005308380442581673340685295199735453795044427873405556338411615802489662176908052974252773300971736686040364117380344545064685669495587043173546982875505282277028465765810129708953398236331601994899171434863680775200126695046567705634330007499734295125493422662906486456203956052412695115802395791297919970179087868299627254174973515453489389452720480000367382993089628246235606934016926479152203431733319157689279543869589947909941993619341896800718561128497351055048050475014055716062259774392939540572699524054848242354307797174014969440030306324478807826433939122490708854582073228409113708656213669601614109360963537694388069690306815273273383862061779357204984111253720978071401294119040158044159359239464271059347241378754956232141676410655481510749878764832402743292491795368229592951678056746805008971187222581708020695636036881806148756354394336282338271986777881573764452268902155328344286745192211187208559050028813015586241420034470744934205886937448000993714068081827993693353323812640032723844490898144959958979084886592299199487220202653659780355585566068065666839960229187657754300186228808317430588933304797458729729261509637589968309433019075778953414988877364912331132558991954780013844513670946997843876110291376643273864737005459541761503494812233763021464932939219421104857716515912749546399272206812633523476930347390399022775556291410663853282533143552471789429585319077271722500696795797211687359593093046220698571918757731237432363009998547097145995605164302634004411158237881640357455906210664502604848434520221402248615481860780979078584130326238443031507438375289057747834013932485051783947136512067478086364665201325918161319001367394832709586035652826777158498863336917208387760684894851360193641742937491555433726102513593258077699539748054808838248153997040399434085941003109799946580954410798014084685331835869949123655778449450581386155426045759393804570328981474509613326531190924863429684026180239112488149456889016616281992968663536143948859086059100453626935684770330831413531307678110523279432504365215860499602574574620450518435446539314163570777857895366178775856912843827699171450057085111608696378239423629429951263505858949207497542620365055471129121622216992926366244159990030728269166063444989071801094239421465461947999617708804726095614090460097401547784570320307896169295597083591495028522801690496537895991052199056748466233943754290157871931971300321136404614046330199093683551615389782570997524716143080196783350389269891033752519204944607466448261581091353544830968339267527130571291338999517483295674200894962691141290617381467182496482199847083950325724088025760675894490411162743701148178348769359976508945744779574548587666062981094665233801248274452175816780605965049977497503440716458754246146884217491256614264970339788867956898138417214445451436521076888546545396399321608163053265283947752022135997920033747852278834552224460763145622217498472904898257609872090372567893723465741599046534420320697069265757516532200134766170425747658752811743565867993423245591532100232370551919559288391815599413869916538507412976154894561626531637971519052877899123669412025685321334436111563583752925479609161334534467464084400567760490826516220399083240344399567735723539296413967586908077861181627529349158837911790078796335631718019151542307224046603319653514690709297570497173553073107810217057290904893740292690939031172910117578632052026559310852508055120943761341106540170581266029471685512558853512879030410014304080909808999814297970294691128365868316763702928257554263925275344967661773470349413371987224016794902361101207610042798591903054549299357337798939031015475722877250965636976393360177876047256853496268859045533901326965153424032369698633288159815333475734335507176455035681256805543679113972772432147974725998131463301513110722374996875099509429125212160180665554878344289002953588539775834814986682781691492264443592748638759620555340353427671603532978292050887796082562710243767580862925380168811419637002021603695484953861321730211617970270483898090924150353326666552529047230496531940522320503115849713035466992852579966252883586656621825254078690637971222915816669197596451405979498427870603482632962216323240212969162374858739965769521219959078644998227442730787157238674714466990559414658264024131533206617872982995802733057631958963410481446935491933690163415156697424937487535500360791546466541819449048787921919983592748132293503145768383064838484787055575825900833836280954180032530364540735368758632786126925447879272721515419106420290533202366612313469730000109693304393905164492607254483257106662963493740677829459313908100633521643137594538767460748812216198571929779899257030931504813984926366619853292320637382095907756803613513806296240413846195066363270305710733454072421937050149053884022003679918807793378022739642813405992895632750963663421132788796969487765164795900239401290146772552212641829243439425397976568601153376650439925233700946031181372349629607918086351675892087410725977204169957919939718120937649645772436460623615349309025620161798679952055513769568731821580300842748727885530714942941428623100089549825109016454102643848314949435038996025731939938022992317017279434099918148931629271264940539712938935849717820150956201305727206434214235385146615639066346330306913158387260090990684426980168301211103385999802327728147200977860762500944320075965878107705522751256430263523586748710099327190515062286945362788602746251915080720826923792733361226255687226586209276970424825423317387672963971142608675216695934741323227517194133624043822263841638773770758484305772035452425037588841709019915225350934988403353301520482196489453158827297699016382254782291963933096984335343698451696298077562345648913511540043399718920269619142296868978364663357683073317153640117030066080644394989602423887882690077917385853315138563717061574620923911959951888081466946407286487041695887973755663126307961756516198858737785773004578362110423242963954841268313814365201647538114872611262131936389333975927574118986741559409874786484048665704448469102346852369063912403088115385486784990677873249918559096509368086365563526726335717189515275301169176801338286827352488108144313946959928715025450148215631392228544268360479610817714113184165452074776382373770557072617021224185096320890348373337546936212631619550209379810059652933463945106634372817673294154994982866971056362340377313357087305661651138966856102590735659295835402323581385109986752204753447703369433763648243864370002456508225370371030385239220799928595594611165389208250188279259679387822915515160664235245299568427917337779824257130364891924287545768677245397607676453157506892942895128058940625959875768287990201226941391109452865628123324387604700961432942623536102992598193756754952986356624564052981835472839171569373974771973911894261458828173558047580253115206748387348364914255428323346754732782942088665005793273152595079367611948821954748180702379876676792496915549068374104836973387357929830594177845575397010527895344550138630180697266748900811521098499526378542876842458384651441144932171433905260911036538752731567362639248507391500274112199694880086850812704771399306649761509511469876528463476604737746423984702019502808745228806347184220586217510948418661000635592072166817016801043297120295140209584847424932300949208060988926494137834709761295014564369795715223967734960571887835122756255552050129112918705103005386465844363156466603832644892212718769210374162050817280178755466060304704197555095646647780867957144222310957252724429452568565882623784417611149841390076284506316260099623175504431122495650112847263397010683278414630797536726450952569273283096077556503504194267126830624038885162408599712100878043226051733357379993098606191816527189893927755345543501552114617045179312331335565478697196967081588497658626786228080430186736988873171435582389955832442601994938504007049486669346744958464899381822939097270298083036782911950404996466677251046416610382650095187383762443096207586930246829005555416584278014435981442318750153946921398018865154885269947521632380679969739705055549830860355710345697036523472209204266171997926232540725901952772493240976794251549558685021281704534999352964257665648444705911710456849931733852667625294796402526649011611352426310714353936208841541289845200053278379081614174703132513608133261899000935876601708611287601917386309936505766059968227941349084450605265112468254361845384358226736509985623044573685477191798083194032998631855836201814033517590400318942173030886444025006438431646454942534462407244545323020267179897172667601690166431185273881622844147488627723114382280134722212707170566590458317093399692049759172070279963647798741780092123510704948752543994628427747922693944914088533318933422640705394265821244566860716071187365831682931093649099831378479871660853886877921569502855830686580361363171818073811786077416948844913122179743517302025594054080478208764245196995718708498700766578881878512951348355727944273380751062555613404519149664311984804371969369382076244653305535146825429863609308487486217678964391035790172544517671980381682124634190215728400857536593021000679095590321255115961358427925547263204041397656447170301537386909208570957981117025322698784421675898455367592694248692783683457410210695371892628634377922403587567576194865659019169491647059071310527569824671441574985106858428907009458031659932698737635287219727015982370203751352298612388162149383439201959394570165332797788168183027806828164005795879545459223983172312175404717904353331388715627368482092407713300619057149417214883504071393566864004126771386622161951024624732236515091134732109759456781502506812818018056554205171286166481750168664065098229589537465270870879783648803444190787255321284873760448309160374980870577318410937352533104720697799467539644053484521744664014630021480172756702795236709908808945680641616303290842567616359566370019298942629452737216327917637422669689450682227044302785210141343940183458721573987490834190838707523422471798107960454573401861800283899086224352974024775535300117528576428358576149611328005559034507857973251833227737741941831475270425032127613684126147866422697803906900966213347952918828318812972530625976510540964150256016709160720259112814073701833023476711722007921393992750710576720766532614266004145691093422078267086136835724721412171184324471747907282361832747857607766038004572590348233386807061972957430702029989914231052291302444120534315349365550263933455742656229756281300336851603451759084409855046568959008543266056987117132012232785338026274982444236608780700277810049146283915455619761716046969613762927291785844599415017831056045961452933425188632048803624876692362171093670218019847382884995193818120756411594989819994859291105439121195783363325085347658373273119283248942073651928884013540777677057230380562505500517745016713125841913739169374023381600028127900128798349788617802727686774715107497605157492025978567954888023073624094088512713089092988591375347140837658281997101529862750563863828010211347723758048589583001421425321167528468492486877226054815689863869309091738558208244105275215987434148983039386781018955394399174442194326277588304674412744987140306600271143610314064892022234733387735652425772908603712844599758123619103223831926178884872172514867461955780806598090916531190750072380358760957630323954508912519395045953337641721364185234538297823080076840817877381400083539438532215903275620597494368620269823577864882318301612163358004679792354492608092851584089363689307989366512893091039611282827209677274674901440517812948484084133424884642175372852565487223022330567849446408567068604622114117654458377701243827170773724303342752269759367839624053967185210199892208743431399264716701489012787843901354161300707581637571812070988248825186031999520274618368003762731955246135522752107279075574330311254163351162380067810019898248053845231091088721411191887646719681980798878596050358717483450431384286752247249826793802062203704887084512631705710625495297916477238478611090989727657727881276747654212218986903626390119033140413499465173146647280099373880451373494728170981409985892505216101808849769671934697285279682495705335484673264980398334218757609838659245648988436373072295497966006858133398594260749302072746929889068886001388280438063386211186916662626558023255025809510330403563636963083687550750494911653484918640762055546529924176899790301324433354514480832530422359017682411662899320481481653324669199736985498568398008556419038631288793915792315458455177777888151252037402031439006364705422860119232991787244906304161674829778073545653419410660773893274079870235266716539043123155159692450623141728343356179669814601843369271624280346094964063670569407292757075814185696772312410924723774276415651124063231813997129864944491698371707264338480257158896565220361235984892314018849394622918940461797386955093143517359162231877367967993435855629190515698511563529548457961705874228657019879504578291512783134165459773740538339355298304824389656675499650442076359381847604560152908797912493250212377858873684679443241520581808460693227222050485235206837983639615583030686835494110453536649310455272330771396792774903087455016922798849306412131045992314648721451883810222203603011825650520803154986597175329107560241126385705134325336416172287291334379178466373843403793067827919279998437102461440630073379959063425641093737670896327399588788500207124056027101548655042977291875544479602876985247211155835486836847352627075972040834929916756689019013334224034763407766578872893127456235779156188744551040281280858891262145052348434906710805240512040949787515360138597568131051171878455617238011009926380651530447351980083747093635740493644869772839226612055284867315279264129978823419671004817324402627059569862459465331342048130127945758625383982911001990923424246544332178107109899747984073863439433523617612307654144614957090669044396362292036860098870372416077578896711521350951895411597200580887177249804198099993858553302296501065712453809439462728187485242014931461079058746370857083034150804932475190877023587579614861885971273510455087863430466373305772245939048994005556479662203623798008012371922183996377030418991986899556510687103772183534004322397720640523327658957481244272706868258420058648031488065879740159630669521735206530788285329038073727718716290885202494159771799189764226772626786473145185278192733618586596632457669908302296819995334685059755317281237960769759314229502555702349044658278128685293437347598029250199297115555822243878520907865880820305919356249228883888464750325614370108510651187887038391241990105566657871249880622901737569915487184562053334712313726271205919192229492252815818219464816937277294875454850108553723086329437810885617866286896802804448256854000683557620628076812278059887970103332311294886848470295625671807901831539629013102232888288760126280293317337130391885078208390209066955957717812277265189859653325968173331712438082270744479111461787470416143762159381061411790311100794544657876630748402802602787287215943125496841076294092191289315137307677477873195017462460551257897455745814571127821980784329744762669585305308535822945799322435805095790754719442041402643726688874167066400910886741572698337321823938475818394726415198945977190584053295193082879091789440808038028964885361758620962339994374215464043208148249844425275995235219032557229007460774118604065244222229832641231469735273878537140632351040981303097243349469147478662780387241970788361860061142679333553103669392171258683136985018766814988499467367841960323947635670836480140419113584543334219067595960143313264651566411031614918623133994045739743933173370680209698950840926100998850877183959278629088366733169467150666117549502912716125919382369053324934893093873432518961333361423505256011485481772701068965561118072106386781731276585746176646906600267106444719759927542124508314045642646035974853306795804261083140075648373790138735532501902806653996079010292938358814107916304795969068727317704104507599968300942150024026712591830944348345700709096810699009558569653843258510510504112690408698779740199031956060526427845742012389766204777135509801179830016892786377946845484120819527813002522193605014315379750784875640479889040602313110858097662981373862963142761817787269560944980948140019711562940108253603425551969993554798084863504951434011253422005308938823281961147318648819043495891254565852605078108769771780097759061350754002459998556755163514086943587550531761728717236137958496281695004230078976735437541077366572196268056873722777023040104028296647743179516845070050613364636215941567053360192676251974761722818778235588555599997749500455283148940137805413722933106367783932494920998401022922870069764598772104816794215357411275605629120004432879965788317689443460589083903366361162011462380050847463688984149317744195571899269199932903995455796714598123936036166184276133330628204340520267294601851069493594625201605826843428241003900747962203259668491079247548131873982052811716680977681772937962326364029800126565523614694920345051327638499711695973349964931408759649748568327282973552209853209593927630290852720560481375006956137685750725967623205070578105210131814259372643782433667317568636778297567192025272832294564153468461390329298248220972328953110110478976833482967857818856505339695633358776499894149794888455346091124936477611615769267407946348745687984789644700631924520720568316477625802705004388007125965458238678115404768739578708807943979597463680754704805551513875828910627299339086002832380843856166370395765334240732891903065376630062814193153455616464046949612868770226368168897929047513270586816407034104542301662611692883534892999472594226365329316125184121087721561007947791048152855315428304032151823859391046315183364032544497192234342740614643158094326336788654319881715335775085823574028143030034273936858169164610670663881234638298959244457987257570367364644915729866921705269924890472386671143893006011028385055587791496689424252414940204412271000951699576611040995495828418850431483656628825325865141925421479506419489194403830350167959557451813384188182137399500524556716665081154422411688388304490842574660677228549579249716787072521789634216946118626215794686571072411694073825606935063045234115278491209848379978686839090666254391816071521876853838371728037151057391459657456085271825940289974764323671454622364457799485555808994766593528625378329918414071693558843910722402231679853956963232508922860138460760916284111058085064067450670611081397894017302437486561210812946256494060776155732191252487259226768149252374089023995984293300743978979571696221512346076124576430809612977864405903205115922968019161755942022202555588493168753876777419318246424192045113777718844611161628318091304483158678220425734061371004769958076155766545087702120235293616497657607243081184094396075252418747869002444477866962417354670205022846939616917494936913505272135262367134709367851615063362634931364695303868692542903539129846536932086316009298816785083017183794401858138745890547870148877246223428259569268496232410907188999417761691205198509974465466323435703507995674184957517938541373296220056449420216482047586592143285949399097827975849287526430445236252962815367758262830117787410536813204997646705208956401061954628979939157495487887464523339936339663896755322118300273059463077561258618049659429534802070050205144100876629813600193865946376757499291196774276026335138176575719431848051802587699325789841748421324669362821243055029493199690525117774411253442413189063483447846795258259717521495359236435656751181551011602279029945654070372699557451229036069089488594899061849873100433051364412663943092086556639649368337619448120893837346633948721538396831020904082004761926298904617765725334115245055735089595565224372854796649848761001943195471153447590461106315546993819901089937919241539076742357238048836903908090135231978406070048068472178286467696483194002629512598112622300810061720100267763365141591704094148752611024018902876308257158476684032634041781912372585599325203184272816002434306753309888788875313083198310104671433617312543837730754121930450553007907362138024567167054972234960000155946624863689420364218832732949056118643176023453352656858658658933238740805000031928324111890779544428094600751677390860299412840025411978960334365999303564088343619588352373463194701114782286665817870165291391953390670165136709771414902765275324154258362406112026381699690865625140619275968448913173864097527529283206309298897949300981280112945463478243969930517434378796108672747935709670846230342401228031126689283508700045942638333508847993241356681826589419161926668352011800604936448121772712045133016172274770230916318514611435442368425177558296765991122818088979506104556776843034006453994618716871559710403838463070083006310847089946608291110216202366592868613706334160689514413660819339956564627677714144188018407380244944801729717012457716351715349162931459591356823487553850271808811942527992169218456415944925433073914910077568682293632240563825910222852606874711467818301603448548022505647134826122996754292858322990566826982987775300394869421382868027132646513508670010665266112223354105365904980154535572718850892647084700279095012142864889489300349510721349672543761088697602858253560832144583687524958661540233559386747043016882295570782070826887694850297506052191454974180938837168595197046800927422218899572685603992420753930322460143175746731855623513251197350428511280671838391732134942097631609433828243364086766960258472827480419945471096865710327541559444860062649008014568432976602469302792033698074326006637971933398322405103951889221199090036575301830005782378295188839242826428972467163318907171978647686672949939114145786078160662310167177770238901522264153709253493544261593571781980229127633653360113846124349766203839633973369765523541516786203478744177527167855911839098565489494867757337221862823270560325177394396408537009650290519824121856390020804379993138332263864525846972755323410591038668158934147389141840423593578271828602271527125115752886005907919995551032622802924335218240383425253311864038048697504568553169942283930120471718970706324032995010240303930100530912272901044453635330085058595395425559571461522559285809080468370700954663615900957277570899365538822226184578030609738846355990339443309331047335348985988732321975726920101308296314789114000193449761006043782095054751152726771618421238359525888924670974720633833486149269035335754917431835009958246439968645068564517691551214301808429185053785227756973863821602790412307636625533960869278588632150991438635585519353720662322865536145811634423332982201020890743094280890031616185756474281494799552208621738942910089448830622938029170593856163488534079673667644420446279328965830446373434013762558772822514408385051599666134375424093274351240735456440524071571350167242532252520234793781478933983065172346507269763302612797516961353545782868615097549810076551576426725900133830224943533494163381117804185963634658202220109798788950889588921330186894647533560496262710764565375608842700076627186025346198797787346854349266088745210611600808673304310059472451851256618176851015092092693742760210485350423060535319043243204380046005279156388980791408857556150902161208990977412107508486740633845842345839924099819881674934931012160172881574872606571279026801682030934552036677509470451715311502055818892149163432470506289203467422358545623911802385346301724656300340431401534052044125191851928916575302441029790478224727243243716341119120878570848728273500464229610222082336594913969456991788479475092017609581923359322150627438155293254332129427237906112862808166197679677182352645021153610248363522557673603613185066344492708594621395154967166189322762410525754780663153757562487236426643392984685309116876914070091740011926701989079750705293128291348331145404188483875033218765519716194193149285935046257288902885970071195103535209816554426734104693750228938851969805448092753177228618634042074729107681534300260055673147314532673257029210894619351494732507146688811074453678101112507707748138690789026177718875649302381583021288083633554735060353064133062866039370391102720459536819252919253616973505448867323213478437692021780558045439853849518613741632832077643181396398811576389345831294885567241057986550354989387750499590078804958847461188708471989779853352304138354926774787884403862570409323999105065212859245365036230917273309738298049167842669422770802141964291889497604535460423109250458983462439316104037248782245862106157804516164621000726693702012395992044056075089862077844508374773101392387510418464727067064950227782342823422504475814893261451060334547486669491821406279047046196074732868707336796503210949215459535728266213432928021536748532760485309838739867884721915745507839428593716751479052209201661811865981929417479914350048641869303171953196091691238812256029452034914297157841630383673317575438009047601434588892498672832173234853592199574777306328094763632644215481652596690373414429316698704685584300160807131495328253703961744567902450393296189010022892264834362934006822033070051559814062531045463366094165035440778389449966918292771210435768462734054514872539140951810034691600049123938941506620437160163701844456860248195959811529969096599441442292251416894947286963231444970380575490732488790384952566765412811207933042685791672317789659141557537837055575585711162553038681524599822620996891276920502728065379219753112274974498580403969093507348313683559014333067097697280607938485053235832898941250542267154409448869293158391243266015279878593714230996319207700049204848634234603971607911379176862377601096465041293599026831047199802571254261292804648505692130761953690507278681185811005230972795747309588197904530600013540489816988839495408244640273747436250214107034958978560398364584674908012864998617415806439119411555267872686897040877069724782882068114521927103303463459437489108948647767602268924986560214911454123349709507262137140185725467505435171120885757829832072769995127176203543224090231974498030219511718882469364087082594932271943390117063167480866320242715353983195190543180882790248963280380658283756141828634621383071763164336684085881339784339469446800362681063266771171756457083734817443804519061750170221959522731522213708145199337327084002358266711755197293501256445038774205378830031743540851661675895708747203471627644682936194107781881354884451398800731085972808290312129736517646176616058867802868941223752061840761410187473694711913817882976154233327328397669700421624937670560693876788739139324631737381038713732188126571752063061401838745919533389190591175484873475301263734854099592198113092532017847272631062041051178998499772425845682170017606643719267876342995331114951824097974003791342046695815651007021142323773115850491760891684676396286042312044644730093158812818120804208745041420163085947782330492928395302776826070247114500766582765525327261332818115880262443570640460395188204133725303692407732535868829551726026730018185470218230905766645555458628083703880637071894401011673556931419561346541356288418380786436374988172909206730571522578171607262425838498094934974865689328481134669405469506140932140209715735894010392703204879791939385335971667773698039608161744467765749521172225391312370063042663699003002847404850473324252628885842380048240824610767824019664430034242524428197087158651169907104070441524185293119993777886346439801955264619486907862093541484840714643756995526702126313672484690494122378733453804638177645617839580261712296851796031751873421716108377053742334488782934335257659000661124616221883070835444409084843729998060129142331169860320522783281566387132961699552039088297879360742542979221866160774693831317147037021913791298590277760183094212384593222854388384897625346492498146647627419411245640753823042109646959003297371371188038925437003701101239884634576933673996831341721427871290938826409768636077232245664940560814377064776235986656628157979852767133294664310331358679258064988015770249994940072022180129490619008708865126928417790194452152382021467321279405170238297607828994939020021828578476903241954898021650723740791804991671152454685904650727045031050711926512238289018324231717751463401518092361848615476204025558203456243276836713711197316795796531777193708052939176993171522066878071598462256919241695325216722905091198615522574037256350224162352259340952727148128535408330713112297810936968451904385440361368923710166946342705388326236094717318695889532049074493383122252631467199853876754751020554937648963903491737932986039707206874883208526244128793620662566676921696880477448279469063741181790580510064339788405538528585993505377889099569316043196381074643765629975089444474070165734283383599453396278994250814769586439271591281626000260167530644141101256086204543493979247950110988427049641463705689512269546670781947939599838923884418795985757300613282610088956845095532661345086798525242076930577708568381445215547107889231328936223596170602883871615655034441646059315938828458229421930529010662328607677650455411138012263995964952303214912211650142025651703923152939956785586028004236151108547201588557508196272594941802201988810543888665613060426566050746573676814674346025139164563024120007673121665059455209083271353330201248498559510393954196794275589767911883977488118461251577037766254123038948162781075687694113311402012522994447484171691467167161621498860967599478937613944206444132432806661928083961525925384960749055007606862847312845493437831045186488848145816937408211086281742385862233863049013966711391969314182731587478881234128365587990635582002393974033543067481243629371835142758580016114356703011820741666368461053945269704755442705670990637421202423405847392665238334329150510659129039530474428196177790016994456415373250921754871196989947561755022276145788738411834469440316930707552194706841664375751278118250486111311926865809966724450502185764108490452140524031747532516172297080010959234713128279692991765057541646150482963577902096980071309781995303783418150625017315622539477006051045142047913463094061132977392767846533815852121524084272781837374100446465466831873803475246199412303520207641641518795046334246444175468403795965828842778845552898489610920264775675660268267217671038451846633137931348050889835057638015057048869192739651881241528373867984025476284623573549282792138904427354444580461660689416558534621423114011912632757639361140149802955308920672698028464575207909860204594295422070388377119526945584880591883308513712573830693673559758631227659329133259883743677743276890857820364037134958267123714598386620277166167697716736279672631792968528181513480481690826730254714413482694979353305076489962783480676897773911604129247538074752596354874455342755946463676309056668412136129173548827334464083806617722209541119990414469964598456146592310640990688434465630914817583811816265169387374682871065268471057844722782236277735824219105109641643519012760364542272805544727197993290269144254752962009577930450012439223745497783902384428039553980722411998022348422447012575822775385013024201048015566728900238733836814662939647296394239160291693934639338783269614147001773053994017615259426189704790461210808089059420938101474724653346050826803309119354068485486433968831789120864608672959190164026503837534804407089749185963463152948715052532803171144048304697253418282725999897234942634617731982781311561377393759159041889503014957233374395553890068034029921546123153570119242698575831565530696237868989469682631198860166466932853901163077629698748397314771446279538687590274129059080295396531392399872877373774006704066449072118219554757774056787463960195390407642572851259455564524787413405473602502152970405489653191716701238793334153029253381324379844592166167773851217028109333049547408714287391265836498538281252708893582727383121554335310885765598091222708207250730622133983228743526598488454841439320661062024749529429589430873733418188798537086648946540487063674129605129468432422796064996870259835061060584704988959384664902572814471230086401060769845906524640830735286058803027266544791773389423121349969223204193687646266232360597375246013495496301949233435939649243247574972436057357877974900954245210734182324978871286191466122331622803707278289673089060542731372328738837824568692732917687909537264474995553054977502204526470300442945203057502055479762198266606134256930185296924219842666003384508398404627057054338003001807372020753255060664392562390467078122892724370235856721281478623541657457843960911625729795527319976418065456623197048729713904513916296226998345024792426730811146424915096633801542153224363344405593874302709852961121011762146952732145738438233136594997933903233580700906033299382106947263625898605497197697397954732207849410975688184961163254820584595475901134958829237541980775881073708813626513390039063462100425546303069233561557847679101856630222699291463961255964510710416251601078092267196027140298498038976580056894954723378476449527532949379326107565045711616830896904715156154789763881459607729385167571786711536512474033350885607379897654081774889892437593754089036618135850203416408553374687606203684382826233946088738200851924995727168483801766839920558259392814965091422770872324007238894303517031690197782461928319153155242439313562920043938732949109218233484270629414691039520828787417916161982911148876097335129964057465857089507733730521449673173009965305933455436247527548314781178301079318981671984330823820972099207659536007029021920838681077996898385555892319923912223678888463633192160804195878123809440123977299973819104980014628327213983391688169414539354301584482317919019382177919927521641640029792863010671856101322959984987512317078331167124055893683023946513812716892089411179508627627801891241735846955292895339088030086274505922858604102480576893008250860338167188400200124431630269831791579676919948836553266558528695639898398011628200847483129117479627462333313522041821990735935616377754863025355418934745720345773982952991088859193267349913590493532927959142768439888301360161796967706376461007835144343765347087457116608515044923823699438317082369587990643259060052798284713542708223346454720994168975594004523085340235593601734509060421160622155680603421438735058236264067702353687451648674030869587205587318877186441426569573919419059507182161991551928702209947746087035557257989034407464869128496325431317043951145111981478262205537029922627953180434558268518437353909604135148865496756957907681902151803639947388343083480725593151978915071765952141801112815716607500987592067282060990697308559785865872138558151970333835976685113910544393308643007931136516597180760865703924985879449322386103062385301186332284205643540052352511733606792312279746931885118988558552509542076996209976796760607814798797008694379213505105105731323659541892985284501672590120373961016523976641521096653785985517545658384690528425958848447719031014814771568310144484627353774677907057266413640488986576083833054040269229494949249192839517072592207031119249096279703285271877107839855939975770747922953415423535803731467665243604954038779818411808860286728254068436663999457149123350521219486114224565166098513712434802181732557158600616772609234677042455901785292508912346827548446662976048667224785050933996228136629641251628976563973947990892989147153891808780657114009825869368168122696712985149206945459389780645827597884385033505989302183274846776365568701069247953160299784785339785967182602347713158236378874989325180119720037042498616722026389648131244114472638774307558285264384973823241750577325092079460955466308785303198256075125767066983408103728245877042193716619525571891732891383817380716552009478599255103681601834526199985354236851313852636223047195555474819487348201054295636220335704727892246741055334870410326367268475448239726969168805482328242587234806932863620048466819219550518854672533905103094428164531706529077386672565137815863045032905247861619725068399232932164319886978756666925167437599139005674105686974191621394138562982233690563472916068607890285236680032661817125538006457278836567910355679195156487767191906574763148765569276644146113222619649233003034500193697189703909294150778730440785960644058475396260056829227026964692337161901476004098516611909904849144963226406595233098418477633301497052193748618329785379948526131422877687312425295231318467153754951910249980269183582317694370450570142813187732216012365138733149207956679674099198404915864633459015605416972510173082931912268931774188587544858690194744682253540996563594435167515237607334229187903763242551405615604294057930099084354762317388455142781246274821525563840530711408831933331814903440854300946658678289191079426140472345059031459617721651453709021377856905402045739731702408739148808804132969223553594603455709261420749166336149811116867080342457620975513301651226006099756279542580091842955355939292009986432429702179078290397509079416003857597445154553889389309462914946565292759667035564805018194028603057585315312395631565067364569563198760141982772916224693748348665663984924742371350970365854316730281925034209109898919757212626769307099873609351533715525047965140616903823491121501018606449291290127863894647036631800115261313407480024839288411132188267316013286000599068645140465746800072021953635370823647169646400515867469080546399597586646982036942194471207929022701024537176820021923106262997801760208905154203262453327309656544601379051420334646996251455359341181703902841541819225489651210943390502979818954313484358055149791694328002088870051961667095733982529273650268525207041648259761981583671952402506023944837894062886125891709806322010852841174781868309083169402154339563840338849054966682389181342458512291093855639016513551619444653267618536309706963507736673566241590322980245767641474608510020826530808139895900687719737741704885911342985135779882031752058905857178614726982024983037317972349013215610224498542780619856134011860001216585902280868681639374749066100691996505438036221004839640545596427120381175251185777029824615960350064620260167126051333680072974909845272709368628177812476441832583646569159883004391115506915456233002703333048269907232396504603048797559600303798722010586715564419558019761738355148544188373622641040978087718601593897704892920738039041951478552911010178311587774722863859266067515524172809114388453143608527760965680019600615034086762602810474152299896797337256327390526654912490729503808982339726538826326526954829726340119691580854658543965018143873781300779270379756384004605636372133091970775288615792794683142897574095019405243448916748516528902083475334782601449102423759226255822638238862674390491818867721526545508111421033488810008632611157704658956423140766142598211382558937699486160903634760792343683526286037616031290408447975463010164847773839016824118363442842079811056840998660793436353235882819999907335266784277487843424092973770409128522224541395495481601298674170031265288960654552598706415903911929734672936475971039690629837580468012021447442905650301672877542200648407108122669567503737444985632429256230348161802438397166761043497606840573784305201932550999776696059395936630001555753455943261798370283123339312623285890668516868534854300737112919722666828335120393978807711702573073658880630395171144787150001686023945009791452045611888388756818984763030563467343038953353386046739751966867603998959685669541418450115278778857297440966004646656636348154476524423517224870237295405407069151668212119137557950102891912085623737604295405087281737656838563500922655322099811873887929418147654592614397812600931586801186185050839704251802377007365134733489535819894039121583227386624292245665345849566659989326777279768517299416337810538847578245162850082959749102416819090102004611448034872849467142423700308820033100978515160534357850565839244563085401111070306994126001026263620997029998149767720174285760425827991337992685314134349975211792955271919048938860522089504492243705373355144421005980665550296993208875789730518985299797824112070686677260919388614476410587000629814226220573052531481990155694466973713939666319958143188101435392182166405028838806318989663709889001357733133874945489420787455768012623007047471803808268503149037784791522267731278006826081171624400806222328035787008523981898113104999863251407563601547791068642961507307178415019322712240236180694290387155696791789476555327043056606771994522647524645097416193210757027114602330807046141542108551286126969582050398907143991898511674655348342660618198596665806952496341028657969450975078914432027491148703512817192572761798067851490782895855873543618252746848334659848026466795005580255300727126728056066431823403901539434046847935981619168159063769875468412103467780072212335466855980095269487311712454884809693158076264818404563614383100084104562654028799669804095954296508536876946915297883617720930014149620935494663162583931638606774553638710868224030950480353303404694767371652368414798875540447550119263678484416936709799225947110967670586755400179668378379482705673055012882708265429371897064825438857320268936308649063608287579614526447639797045589259454111594554145420736956399041361149453332636505794426376131520171291922801288173887916273520709980142133380596153181950870869625787380569817588254333903363121816079186364049522389502263906481207864240460994756615126962306346630162474895879003038081422435615671385626864244004817542865208721350069041000998169521913291088968538047930184652320433798610484559712936766392275369315933782711777978768188205746095966820875606694168020708268177946730255440128095084410887169862045398309543542652674830519437502058606074942461380608730332306122349305388852517549838986337553956916787296131266357437131264662780300442492348647817614881613818702615641009994713895052507908812624691558631856149730769974873053706098560706139113635704677173454026585897629766865715285544766860771556101216289106758942861199186351480605885219903446120435561482336563054496210348279233203143598163017846915611155309183375688211005597929951377124717205144540429177908462177580514319674515933985987216891593644460175962824965620582958052305920779905784258158356453351547222566621075516067569444816606665752074756888254335800309556854855933950465891126459688314914393845293980849153745003503264317318136502696741639169693758108986175318988942575215188090596457662329007461295964794843710516971475593118866500389246489636952448124440833680223986758412608690667199549430639017430035514276307947881417376526719562449324515471265196732277022525083793459220143529555539071472799531896552730186019980962855697648056368721214655107981366648790706639061200941407772309518406477252679078490802026300970600435203899550360729344562258835186018874284639658434519877684576218809455119876062498869201358231667163526615507093154646591578145894060717683929556243756886711269170644095777163893689018669416580395452645689148785976209301829350466709898904379750142084934048449627331988022912637583782716936100858825494879524836662147241538261452777361641796642981163382199997328035054113253009921102428722146396043818669086409453878853819762998773790974959492679062043157818439567302243861452093804745253957821913670431654087809861394515507980672195178192699624280049086124279842880927755564626438714229330945158046445335161438401594932375790760744590340361218664865533834961546112295655674509986127950145405851970214908994761680374717463411299249505985444041399228862606884604517633358216913995415720865211250090215775276698419700988269546637890537347739208758051151617068517399906696031589249333010570885749812154770475371282865785664605600282883296885786656810104815875330922856505947055556003131203948420287292244150856920416870749756719378698497161241563915983606240874434236598622325173774156070523686030464148045276399268919090414788772329750190395282996621469642951724909754528022344753750615277199119294251796865183590464535370044939778540113455934314696963294809323687792320267058390421269750794463655735297809358394449795196872429317985257081677359868668541405949471785364377155343672094895141344845848290865372610037248263219003896330011773623975801205059383353257054537110371108655457496471383637597590690475628916448068390272249587923369945340490952429634363739098915957020282271725267254386806184315669036585515294425424578347313241467243125772402428620419455971526898067414400801635393018861231430842467270626590406376631991385506718294230003060826210155622340200425172841766336965415054339439655105813596148761198485541944955825606318097497988655825020900420964240911434384752423581838817242406062678206462860590720614828767046046996772082953257737601187931571950536558514224222035107298634921138223509962202291191948497258026199443199417734666427467638012755591587130410194813426274007017378699148806569075413772793262445346719342269904383945195514412127490386163827343581943792476253650664704149185454157235792002822284740714750139528816578516439225289621771023615642353844184352668716046154938643706892256821427927712333738420751403470629596124250895729797238780074392492417115091448402370620286226223541136027250074277478767023971258450867248774187139086394688425799687987455766583780009495115986156403633220887107787759066917676175743072908139255737101577659734219590608957326309418405611630493452701307444744050750348084644562803872812058136142069529752464848398288121894343103740802252029075021974767228068094527862500563630036701608316177543457887073443538800499728563108778539543023364646453352591045665962103848076876081947410697657544690859555512976566112789453594890936270386709412044634782938000651941128584442559910112883036033379013547170809832829648457277770027316196083649531274277793717372638964508157881911692373118858374862586615119288896583683769113506662304484679141529597819389298044156175183977113903634922176105129649632990810396250826814435285939463549623460553979327720213141919703485765763283735237106861871846021269919261917272854529736935843978821783329070369872157288197437183180256958858781874898538984910689832898905921069020538097461038974866041273950152114393386761309287063469546187707411966663258770778644362142848915369047547840923976708344176908648815959228208263968275979166237587260276338539228789668060013167998013713744768795207024962437543820434355655817401775647518207640254407196874163146431248876321593182528532865645363868819525253284276225124293846195675361947412538312666700377744835636730691842333953169371854227561649236070306215970897110995083143549057941428478355911303424756505643024883205930234532455983273579908073377094537313970048395447122998045694693967771653400690039191393843238419807621746355753385582606960932176594452031000851535349180448879661675158448448810075190248618539654754166766848915426749114984124341983708701654073617752893797565898479001412229593514757029354387666278904267255014338385263082603503040978158734035943663761771723887518546860458923673246427233609956987262984911822259266990794258323998916039678333811172814818761502853204237019630198597642573852135652587763287860057589666934868532004887673957299806315275592001387545512356918291294635552731452946464303983293887951619222211177965180332336336443494702919910040687004808304965487552738038907822055642469022718042852540045331645018732911073561182286958086312342522514249265465029517093670817000453390808097609040249404326871693568266927578190329716519156714804886581296038913783930029269858626845778486324988989490580364271932247547530628091928264869913899216923350770552047063927234607255880064201441263820929694551217510311163020878267874930235054522809500923323562410042430556574318669979755518421599831206047152798357690557695210655366080030567201029083675347358090145242228109342478304165507151926371750811214152310982309729397324015811280800353794334140719377462885620244116536864033286014150838339942593392418833340050989640772558407314738804607610461899367265856585467240257118269932294106144902037374646833919342861438118764602981219275724567493678883195216507922739371203629012636811494308198231013190832652778720015299794941812667023385182234124145435723388431831854153959827275786874403853836465746201702564055681742159350464167174080410591994941179611739729663980880248358743353836914449329463081630595158064062660755970237157721769175683538498406129510699469641992049709127415080679443425780841004719889253568419607420454536855474688536236778993540048937331446673414420534354885467175809743770389695565561704063291652692579988648762041552560666080869320074621262628638052768485165331616537071069049325218633073287939002652749122823777216200863483762943277494407958611219978116151374161274939618644298162504613327338355033527870563919352856070174923621914345640133633630471163469880543941313006365308861716500064007108768346808001003717387210204782515831971409268187059848181676684787172144604551029175615481616032560829540834808676866934009184790457229196335015811982160355143303331287264818348484435664302073622326790162024465235378263956769119064933117489710814076860920227737526872549753666206383007235002663420006961064357866636380105206166922825041223752477074315476719222305721171139757104104920720905186888132827191427506441350648881837020118573761635942160305632332706963362002061837378282523723486890916019873971018692902113136558911731611583060205541755710420790553898503861611337318166853529019410424377269355875707388201811670242470820429549521121970644989689283361328406874728447489272595633687867913744987470941208638073216345890041847791020065451084895830182312298913100089036642000093068614127303019654260685314079670288124629158935783013382832642429906358158572517797501288382423003478109193671110010970093537084633858836363715240148084028350556679675789404239038879473284615140063705594425589902570035151083093690355169574202354623824442001457893365660884201890917216825936527614178960986180920544603729903658620720211197580457063479678552829213773324129473054836538021934524305894684623794921681870652893789876453226091504752827283917517743831028350771718005682112117212883433971152826755790693979912314067780175177240844945408158546278006055580500473513698183322696502953178769138431667793504690086373518874464908762159386962611533817886873929480914613905364624670247349300482656208213449766351215859837483107948869029076944947326744893241720364866942924577754038479138437819178058152920535204109990707887404637390049796851091865293411677332307847127625637998474529373708202744461807957469326283493133146578356122230208465250835971895838186784087439089481549827542413122229802703312464380053873542670144077958801683941016939589164618619995648562616641774578387911343315619196356666637430234804681388091764607345780612210230793086321705895335790494663524948897493721683536434331509766583670969336178343634062589036388440162489313071591057755018901028942842821485267813581788825569392025908838122174164317006712140799750945631906835510811173025168652537776845274573740313734671653919858295911441032997927680912242544257070753483453777510539975134627310502078104533022692989489390504742737616136692125853783704210421458897749823785977691119065028848351212477680988319579707727351215301325139089148611060161808903517241210290215440068541069966947771482022694357888793658523005867592963947367120739395309813764255733498223120377219461847835783524520257802300299502340466230490430246038930653384853608859593048245900924356566693755801734830004065222878021583868533428855091916635978330916579150293125056742478958292588134024621350306184742722741209785980963979721935712205635696149507667914195201835724256781962620529692750589612455257850084251279914668187515160082910162626964941012796032646932689854158643125620422107169118843633777834307369511718025455445266240095104404333032400662037471275473596178681492424435922481468767963939248726236857374053743842995128247053576988480952548302861299363779019282809714874074134093993385848488575491204773199128210594838177355647158840814801655123241647764159690553846883947055910050576255429958954470718877291001114455813493912733699938187799526402474148481417407368446308414627889594978754738023232842707021881799925190540879405227978916771513303815382712200378536784377244525974957955996224220440945594874947377639553431308018818659442644585354635696347987542641222930087203367502193156087771256355873466824034864891016124506310007381951717123732015504045206669362229625860012718568677466090687909621156681259801809615938774086277398852405261952786330366181741240513038922930660844099395708030256462953901037349025710899275173914903952134542427149323100313973359708886945302098041410760109004322031321532241553169034332726813839046284713954985343958606354429980006713839017966957368033027117470902996591472169726286485946739226260211516211171844753536843692372400626390716262379485570131430077352300554446500216562987130311691016459193560148701506586728932561029626990598595228757250064589866984313643392343571709554163489210133138079747838654068660894192981059718121526626479048200649165105362665627543479763898976730444442725238026848992805366201688696904290630944297026645028118620377277884987149595412491161172352821530089075083875649441275263450911174102406269200005078350340209949283264354050362536633442294252430714506805428348891829190528780384519285816799834971914209440434455628167705723052360079283292920786968424188709744667028218625792182721203276512029187608028640605960260427883181250834866026048341447546581165146398559827464703490796976661883925819574699803229303872860809502045824822407797169074323817785118190253815410704109606246535534189294265812876800973067325294467331043262662837180408371813327570425492770141696082902231920550570864150223411469372793724262109103261041349604217396405803027153923296367012530225447395063710746761004621172583291785513785202903848773778993635269731351514203715119474716918116988174845864356864379277078636990460884093002526026789068986285810063620639551285354830862447591210063973017026634561925827722670121985084037903499824246777520307855863069702200521170808577210552064419035647342164839049082325858714552679890932131407799608833665630193740576079000515825691375540424474722249077368643304324170688988925162291107772687394841334826872525749195521051091562018087574343299575077113975913427980622913224514667743411182359979999941730749445638136010719902682494607776691541969459960695535028577506548581708340520452346324737887149570466617187335933156824907377285336167709753559941607744381812920562787025535218897734866064933150860411246660595319810237853982304720247836668710347606954729181891678304939817438081552229118143478495452473946954468197968151059718583181727839135307793402211513670977999166033220700067480507751572002462405017868982606742077956932524213588930542314815583107762023460026991408266856265741362982632206373029213876509893059352014907165966326967814962344703407488588250488440493181091207363278715615313467417044243190758903877496503634253741647064803721588815908872846408739926556973995609263314187547616443868460633446067578597781395678738271940350543477119097450584966030499566107674578113828485917892733556991272166395820365273844158177426685588763782667542703113856534839345647890111050291432053530073899910067020046792598820331450658701933121615875077827219684159683109810257694071154286075445814769299661990860707895242500012699390388605024344067425466145724228128421185601246892317811709797523673460146028999323324704696698152713195251794107652971978662611521232742584089096987924545564900532046894430136518008595124357815759737289822125266636787874265376484680140452214716415468782600527517027701790567268068510247218914129670231184018464097508596724276493872437654420691895094537676916680622410012679289202345935944959028485532386462893836409977216905416755216768748240956630845645548382418376778135601320768841879209369999044868866474498046444536205800828514743134186137398441220597241908505380954972245594167113920802513534046238711160260762838895575082950458838294544159370685459675571180804243782411102264343831598601333696025100070243740905230097183124488742712723093509765985946143910030602194351215836072649585238385795475507126363581219629975716170681502912521441013767974647890805564939516095672572395287268801408509243127477351050941804973625171075717971177267992203219909432134957220356849574097623745932122535987663010884105120418539901534501747900476568442415517371613379910636924505635397689075543016506538165498228898726019295728908118578601231626900609707454717524025225264790915313351282578040706185290867212679954821309104589144535270935054113480709607976408830732048865632067293348658886626515194267194579825951707828114900269793184349288506756150121877808710416444377545795321273290847528992881734848317852519573188932980164012431210132374766604248596847320240726999598835953229752732659791015689162899315258463779032357710810351969608839716455346511120731358252613993525464444776852138483645360182674685873409115275669692648307877443634029518914768206901872498771792360640329074418455586430607407480373130257392502702226135366452334746000642796817999124619145236195645424532897429496469484237924931891443698576939156438391024419614950256388978968388916063790493978938224107620266362215154421613500929830695579734549911536052131060157843361404248505105545885252352576189812043746046110946537656939139068853757947184583818613042298311436239269462588507118470656389667275260485381047448729674636783469862068921542551301136396717783202722860905538828388519038582141606110289474445632980223467693133264805263751685003255013003991750090477821171400965867135830707580572277064970666388610330431468719298122080124048746968489115940883023896832987970208784700159220636342464098081708194074654223619108118229882617651091795520162285181683462137941126083090394391413916855173880581077860004608100752437067540394026386235393026445145558744494439768425898544428096943812699715941841473659066692142819613508042871352860403726545128569154148942791034142617853564947617018204392290819906494313406434424850876032797503068803752362674135391438944089720640599483200314365038427665151770492144438215875640484204582244817665853364153631621221326336870174284175354364713255824010158357401404898427930561597370086072888455210686040491775355228819166262405396064709350205609077954846745397019372959404508364654816796536511491871194337375936777601872006434252921203425600511787361858351878858148446960519415915102176269263043087805083320963305638010095855945862296229791157045639797822296684847879079463352979250077430813772251434249767145790845805886315777587402660856197699540990468394069970514962990119039267683343290151242383094793634588568404697609843777505553945653791382876357213201918530021798293596869556996630707903523288680605977342122095436828236397766946049468375816469539255719261784790508042770791201243540324023565424457547249418066517540647622772681709970355585454148175830926159260582615360611574679888842118564002396183306364295494285128960942488141187374612208726531230683220214638965915276573043676424377956278709412544091939291501222845049858278486226137963254894954019991302745344266824061708662564229133958195385432661709950102173029572404154060899378902487769510808221717499406582483869154723683656354559757025052194779603560534047709947188334397665436715550325355830451242460912946765982447659286224536923292798392741163706371617174613423639899311317566317027986028441478532987680695591200178397030069535359026930835147457511384035916416720204017667504939829931367079403628485310879921112792339693257670999863873684585312808094351316601039775114236031752416324170397499090917106700240919902838826423819755712754288748759115121764301173216498807731018698882097051460823447547692491972309195678237608682112347738144342849268047924776204788113866509236393914659374171376561540304315278622986859544071742433138387290640495820547480221388595561770527488406839263904806568627839017468314691501189315541982978169258800202548504865337051077491850640382364719096771800987780552680507945025012147611119486463889742786792182992714236030479094292714251722805165988853085682611027842709452168093159122362399009550120238001938411018388505877949975328465083784974439256844666193140429701022023626086393328340913491940583861230949174950347021128119011587469776073998135042213888368013258591758113472791017259101437173363012987606960485637446824968651978353807203336446132954404600949710758461477977046195546799970579851888970089448207221299310005415142731926017910550675314649809388243788171571173330300977496361909777075437429164233566731576067490410728343779282988521691224000241611296900314679244215859062845950693314547627731934009388361799311659734049633034822387773047119493565165640564552445001694641567274470021191692995623750211110062448160764950124562162427313255541323926593388940480697707104152753131949238111540271393851900837847549952722476827460462908880504123128427755759943697992847342784331026897383051659243719765366254450724145731212108411357704716368193571825296245010508014992415733930814114633709179880898160998515388987191670710597816907738220584216609091881972257880500969268646889773385920926994564829842490194145994328727935798000819745044426525667281004225498003158017327205566162502071030455544585907447467605980401025810244639294779448933566022652264387868999910402587344581491411624141300867093156051303622093033773666185766424939835535424929762346408298608410275242564613750631514400001616987428040991742191547916725979224961520909449756490099218850548918726239300451894386791922738999516134465265799474515999477804831107966724297295157094666933516238049075233861713589145961244771081218441758898674808669101570332667775163015729627689774880146540132291934713427204768179398972623808634614906934385302962695091054211976968945066267875545967844996817129397854685461861030951800790147522263522993534060041866500701912536942744565587274949953465067476718399059006048002016812449946019756565910067768645295931914410275144466829872062286671391241587193488413749886532069826251896542574693295602296448933709842554947525821736942370147027227688067712739035777993480263287653371409909546705000381336110054228470173016928805433715187686129495298950482925844105589813230246644308108867792465579204981221447160755721557677375368262867082566125573763261190543735446675865207186467144350771616953446189788266388530357181600037695385796103585693172691088956890354933645828932435280255213491039963915242102705565938422871177274966281241979227123428038816814227512327843149636192213883942182819416676997945265720936586370523858272368583202212476652130121859650825464218068561699347361852164989798081020240372151766425768585908350670556711294595465258339433154590742984858280616095732015667250409391036690276068685112425925291603275591605935671464564918274972286692642817537091155951637830532420244000284564065705292741132212341829268909000558251753702849214977032489282580027969107334444729930570375798251632862339281584227751241611554985794910868677956948350751094954321174748033090400123509538579349627936184850266203748605204318687227805037071800001828799512963210785353135803130525747610816836034574712219510356895495063052734130046923617271632838161671996625017139844351148329663920553706578840826367144375540220370709947585467084802920625621791232588970573563754884469865844377668485503401519522242864657734024369236461858305844883800327778029326008274012697735309535392659365519197114683114159639763805397674573109033040568381638868368870548017927253991282887716200011602334037348374144750402278556602847862055865184558562260825081862304184852553496557912044619943014276574389702470716380715706601672617334589979155932393708620359236922060280782026768995168088349254906825642204626156650745216737128586535057764427411090711102540429800585349090687283700369364804207646256935389605777061035003830730225739849390868554419076411086645457031336426846259335729667873684558156806026127397211910796604720704034333603297814797805582681661466041493720961959783214245742578324205952798702882563487291010876118025918683471374221166137123315343064122743489415979143076434797383565824929610685828693348974063619960736301334503156023172051136320772433914110831674640833571195665302929854043971544041422657199449173968468340546117817008917053342737659920572293422247402719889925916929319004870271748010283009943383292036770342347350231555783873336193284916971471543749735704001644569646326573992760015250603703747051949680697847146943962751990082844017762509413811186535754369801533087524705798997937902940366503556544456723712011152828202118280042487415420979726669764620116308438319556838918470656456830739093642999513303474238765302945327933067138611879168868770933611312319169561092971111168480593583674943480021167758963002741122773215166707598614323563079211456555670611624563299924263118409257075871994961024677640891955217669263216177544402625699209469884362414532469420642352358619745929041161717958567042110434648568117974879250698385731602457778858761918788559612849910822847211482857887699055124266645007567700041808188127776055055543091830999834454210340501389631270591736347405694751575166843705620319376092452872545155152822507890921234480846227386685361421821763468120265529771580416257273870090642896464287056762920638006374984454688261835199249621831659110777317203878653535612984691965712392705775093435341156441459354332250630611933484063871550707178155281150304323613528184815309256218462249659282668879587345550411431982647042004844088559699490576560450923370669118462568021320575278002051475818490234725749153984372333412499471094258154008757653601367331159112189387651376603743615004362017888228042641667387675003929575049422802025247399510215459739300320216317407764974428698946718275173362113405733776536699834377593159023675458847342420075347141526479982311788562490989035228012377410647618874306765575239940633245595558416748495522260650164800174339285162942380090883063564668214280462707101858446311013302585609156680231367248405675040667078068963053416902518129097541346809609174613827819932741923832461278658278623125157147781842520528517856602952770688531740576629539307941482757005489758561368255520045391753881290375698494740042310599179110201541920403060434034953162802262961147075156570396629551953345636329916163106263761753617620935318705158207736511998533466063837979544329486033761701565565557498914284305987294427057052456375137017497951722370070420270419353661506045368622808374096633507957806659826350440096995056149974297761217731343327998394114320772780727789857749869737556566706019124077252640454604352752005996718520906542051496601407905200627275980908159502676081567770100415165068526445851024059029005934887251927806065898944546235771355650017165107556467764193198028703752461679509760392674824773499757899376413195011801960100003372208557492308705676856922098667531883943605570447824453425181247268001902147131714323894281820108062989593264890294465797980295527553091746852200478492264168769231061503993334399830731887898468961525849806713388187362896386882488229861628676402062312674068222868243276106592586534362287017745632155678501851252588592373884170901737117140004917747828062700280876462597911142382035326598753292976988106154119661753374167181070687579235037727590892993477652580048647785642452485645303121909039283650795966671425499385833412876807280636559456736894886219772870883838723897675716374082142140367404825166024413295148196360356125874661456381758267874467686665159469971879454059085610806049594304425104666206959887553397896831548472041210663458177869254697876951693408663435500744029797415208334703133424928853441132430306909180457800467221315008370732294791365374292928974681063830938497677176013477124251470915627190051201080158405423671182133121575519133120842255812049559775435783384427822133909802913822497641649967603966253882003148559513290675314188198852676974687571695736851797812469273524078635266194064977774669338188600103381662547629210130403594035269076735836986205749847502992327538312570190137913943591564981230771742718251580107440638916884335077709625734523898915576491454809324118844352536980196198454793785237358900362349453376145663616396843218897416187902052554838363114885471013987633649750404247709992914602850043204383564287704543234954322980760668096052455486494596236024369171158886088998612329891234364049992003925778483536578880901163323971180844297796388780061621992543542372461374904680861659360178770665632802465626745263086910516014876561060535447092478412964471817937008338259036836605267055966341049907568015621616880901806708748997060691690168556537404979599678071683988876009864869050895845082153144700945830788053966788682610025158666578378952193094194084890895897779754542705474453190925447089900908416335864480995435428683720022793269615192645209293453212424458583928238317744968234984951606453286443037894543585127000263521749557005969775220529517086814187540847965085861799656589941828089602205314205242789187620340572269391447499847119353249755163614705218919827781531005723940279635917958318761254595616302033699254191257883112734190048278983026732510914167572662728071047667522196835714929369387858124731470364019616349080954540270632407797182758694601360182312487813335035614483397053890298595149179726347511791027422948042604286399449449696301425593451600980536067151105540076942747836410156220297889468484566851808402939841516310818562704536292591853898291506385918229834541028451058578631770729001139062163621933296990736711774642934966953038265038821842243378424101922525512731609553069571399899236525278230955699661911808753417006870855480380316748221245011238420686589290010516215869572112243554040087629448049827385464128967050028145874185530294634432221504772555813327542366043450349104104945247905496799196463293319008138622159005236385608872639610759423494219543401817405194174291335050626075504935650921172844902804897279945628242986288360222724958722185872093761421433706152256899523811986834504847069551056706431974297356089549116381164263476682731497670577883971632748141813261700032569652356363907262639919491720374878739826776290029900767617801788141840282049597901462063093802309880156679913093972311198038195506732590730849456096270174830100535859429289637747261927462645105555566675694386836920090547471441743179447098793672437834360634862315393404459334663388491095856002868241996673446677137119856714578423720648497777177117611038105771799579900944514501682421703602155648503440264155418903837147950293826200441864216181848613717184743441970641890584566020066882563129515935207488368721755128922589407250082587312320702266694082030251827247050781533370465693857257821737856017615595822494842844646877462162507018762280654778793500678856688817189161581075163096242489485486687554999688680677302466694799015342412037922838974558823751253875581059781892832495573736693437610641663059879511393198472948152374220562277616664600194833076012070530982578990638034466754377478883018374121293456853240598624725466668133778239286399848346007969526061893452068321025829658952946252174910306671869862658100743163020901229689506873593131659325465766378215538754635790667951209431935548338362318894411979810067279135910838600285274803265742074366732560715793185917337333324137779720675479440621631109437592617230296795077943386683910191301213914069882098463513752695972591972473578942629638464634415070197707593022985671999666839778142999038329145907146858009706399418676556096766504674988274455448425627678399243756696547644343988739014810167115085875386940197491171731284003484995586728495370636165526973507509856838795530498724519714475788718692424328021711246383303890002753528246586926776694920955044655618000103418181995899373424603282649168704634917586294920083516201118190898196022166257760857346367991962832200624594560732322971330899559813875701056904094734702400407507210159414508572931478977608947393798363042043491886704429276369984568677176154616183235563298206399516421671984959768941471645265295596878170348907970991761268479620250035382456360510984793245531555079008353072345933690338168793752683840913351876427757155294594567887910039321514607361034406169020567816959025280427351159001150313420278450671593010502904718805142814599801610080438107836820506964084072414503832312784795001464932009438053962799667826518957118263189303435835059170374019015982581705923267048486772415707594453022520615408377876570424716907987665765895189241242875087259778041624578468241447678995186908429172663449669359198267319268269753571241609928590633493217669117127691878628584471445948361586638668442195186319011220573606514452165467997211141855545174721116956452211896127583025276802380057731855174798802039902198348795521088306198712463659488245294095093401661982019498651102883083992453349561665116034767949970252101528543311778540841846620601232563495573131400371879794478597488756780517274151839632304006159954179760149471713189390797930095264993261639357703876613291817776969841253060444856503373304826745780806564518459416773357884128123240118393138300557627059111222999781435190028967001188035448382699535851877322210973426842387993339453555904953212461632711268336246193729081150040391291903872808929795637220971127588200200215872071069780926949880631381255994510188377470002310538719450230079563738614516870904641968134342755781415949277578220630712406018968643701574413547795194592924423170519542033054177912748288896787475296413902315920260617163839891429789413499270198706346214775693267423791014420972415860790516234522643667403829494334696244873924815481219472697030838215793721980042498819119414557414218672955929008453833285065519802822855528739145345033561639300638154847685665108541409777887675352930979389327100666326049853674722707883498749718139443637311364945950364776200816099969221647891966064639297135592441584458302290430151152002878179820330832600880513416882055099494294072693182816788319218823075662035226273550631909769679346087403752996758941077685006124278448038814615421141807523490958919601208312898591861983209760795983724967471779541845656072584219452049034289846152191805941059096360906660598465097849745697415357762977519726228509693189799586507842131520929548423263195950094019766176931128169134027357438156656144016282141117735390759864996828670920508649005583714767047619434723573956651521562576010906164601721841217477117803674431261520795078215355746736793647913186013981283735201212147844181189395027433280648522303237424004710899833099313873940385895304953930984235066174791982762132204555870942631715656099661551815820756084627620463804118937582015133576830480129426963525043719253449708668689528373362876170365683876877027584299780378814561049968641832106951113684650549184558332564343343413386171469930848927336950551843897109981751812794125647487927487949389391293242892391434052633456238712294036312394025191093510923329750093761801123098552547563982703473623037741028052535321864203050157925117474240839985478530522877645527989841538167200498940912353730569264300571392533977120187729416200219698623134026961313598093517834137278420996039508821458148615967250009048495701772940912470294743887605172248630453354957993439561636084911308811626970987084219700287469644537979367330855297332221924276482369396305100365480747494480950167546603202328504827958925278671500323389042699527722767354416118050974535986442929315086890933422284255791778923170437140357765785690156410964129235238928040146653988747333266887077091910582438333428967128710478779502015292601729874845240485266849036840796982518581679185470867304621638173506515577054513326735929852811469317312137729398779133561581832179554408478652090248394761317596919265179330429567153801750132062928397759538660456727356839468185188671775510114088767430347525382547352776664364004052349554776041906289935631877355334792055035093462787426824535468272273499659563177071093989213463074681192100627385930731937778057746464081342579410667999390123499099718011682226565371044405708668122330884765875995282032526223639082785212122515055587912880544095735516255784412090319750957763679742400254101896000280801653023732741830529075897365423217540210806464351488365040185038669077198995218787163167864629793666801885544106640084863355344719181748227231216352416296632757688084538752985434760923057443726084323886340783520353906534562699055611902813746162644504136509354611538934585681932650621175996376889480552539980843520865123073138065991198193327173333398323065725832809788550213534990501082612110253013050448235996684683386998934741437105807060427148256880347221510923678234091385485404619942656005091742776324067563699521710314995036480544375852198960101716284718546993086950052156180075746278097428981847576297021548445464282639651149698820838993439943175986667048389828725494711422391186246595092776439844927052565599765830040585624021929227811248876319921207240536790506766954313042206853572909103871412441409620527949356787658364881371777191437033243337945453719460325829395872773890228088798448174075353949057847237223647562044839194664394076319282039056227089799268649951786118598993200165690717839287700756358427691406176801277144881680707606096908169880974987997883355995323760358074079026990143487908102088785474004890486445259861351781646159970879357656082853340480887277320073109929665140557991803895286368205440204390768456861359038069033307157733278927056520728059522626723872099437275986966598992026588919245179289601875792870429679786810401734664183329898540820767215200363471495716195786295948196763911565710082948825471930259036939668675622873979132911312559048360047065656472973394972614794228876208944488927228314852178499866387114681641498741156004479314689669841003082761538493464250171808165866156592853035786945462452291217319855909626123152266153859899618519877916612756786566484259584868873337825126225857936058289686643983934934774646103803742610552297478943300733223743057147679344030134492248740768472113938081116966589572061815363871343521544353499563176250544612423031190778040302048136621583672221767618022824223535988208561764178007725210883994135018573334882526305591830027418458112159532929222686887104508706970393190688011527254448652318293043497466607859026690309460608138415099984574539061755748141993107659759841527789023294628212005829111198674649347702294863331358251795572066213047473112269342913343497716055814484704876548902042298871502929997122145840995829169906106030846420538483207919658869832623895622249473000409143617268169704210778317503163901840627020367906124483373508932647521489849212539570326670509247634142863838589541546344443397420246516935804824652661795700148613225797658138041754537868123094863648526243586340168675998830326327169874570271622741521055445554259477598368511794809379629309612979877572160435237488790213165159050920735792835991880617359375520119453166925322594922422120937629510058957383351931291103642172869813151019558085774780682068247913902729140204989154296719289201222050670786447704303135722360562420313604216948438240036616170558579722846553514602679819908881209195524516842081665135273297786997479180064922329162487469762617905569456317574566001130728952629410414768116366704536235561600269960496707428371049202836942019834002992025334354837738323470391146723277396650751294300763319554869687667665354562998053579245914638663733272025986813554167047131383925168240777305553049102980670457079585949053675336047021607025935193311851691485882224572174864667619426473393071280596665145039772686730887832736252618985541276215117549318765462674800160815704507965601611533623573536413065312341815871093111749229378675376170089120226757374137642861559182869914159628511063464007109528657783677248177792380212473565316118024641769880230894609619916009197079741686575633303152009904855421009659515237193178795854029138550663727380719281594094251624538566477903569202020052210706499905677011013988575805057207116376236190615642503535459247052325235699660546570740640668204304451076990756291959600250786287242380415452362539633128280979775692954100702127288502348251735521938630985923201166368706855334885013021897904146623032808930004899355817647398760882528428494273606288885433964786442372206139930051149716785331830934493329820372086710476043548742069488368095678627827073286851055440663199622173244600624102132807643329509439601653042076521450709578505103483358070273966008869238221775733818833056968034920135619063362601841300450544212483703010920808601478308761305562011828565111235454133541398760176084453708354264511935091892002904965097727226628184099748059845301927700320407392404952833793810438434473712699035307063481524352726331140744019899118635224680333569575169873238861022644050336293990679000990599597773134262949923481980653168082054047325026765283190101516213187209441573425264068895435101972464423878701301575058930186828604973883031268136058696942844477235578689888666459270413216942141865739255377168173421904146829673912981198817873997059860539370857007005493395169195595326265511502059975312619268579857707794116938155776717697970929475690123035825931777849980067031452685362247073060508704659397830714987410454190326267574033260420217691799820446079564805680527100517284456077045629199151653014553797769010969289413497605275068734598583075912650337068829849819189140076893507618198533042829500837513885627346313328080527897141431663519077336715792832245327181436826584568166054740664646641818762289252654910644339319182012392976586927432903742290396901844312737864185038724988235930782929337976726490645310268987229185300402047925612225084304089053462738036537392000642307945195417430979778290768565256519550238327524456392350597995510940615215268735318066890703662706481204652509205650994285840950880741542862799688208878771538799535413478745492038288413447190865962862520645475777694743152077817547635542192602993325540931349959170706660028609216255059012677187420511505168603576308167507155322503266546106080574212749633851402900640823438559623272389345850299104223160904584383930636219897755182420552667547137939563585660557183759583401360870731629140570016340538277618616958117134909178149954211154596895242770896704590529260124627713545376781052381697208880945999798804092238948586046227038195697018017302961808447921695301441762761860111282179578292715306976706606267663175032652157357146642619551047771107325244067636016105475250384267815446038442918055471594666664456641654406268235527225443390400547890353120829133242572424223556400656757418126922597669857241923373534489888760279135101370395219405374362891501669007558992311860224080867966975184931298378940565103790024582059812267051907636432024526185739170599176326004818787084815301810696435500697079724688114058140923229098708251512794615404623193812192956751697636179064059621497468432566830612247265038173730603701366239876182480165183008232168485270628753274907901305433068563019627277856657816455870773859404898447481127967461054664654425830646322674943247663039824056189587776146061388694594387994516173839419582199352880568162560052438145833816609924390563609376149454557407832565264115795116700696115593627784184610396211436154685780023050588548232353655853806586930912926185411885461628988611673913423054843179250286674104721797884581632524270572844473642824243281007451895767171633589722668511968555067663514969548059714526682276415127310079606675899594044143244770680479637011844939455304369439688291676624751833697155470092065915732756868593909587179134684322077685164821835130602388424519466868191541208482410008349126328777813030841028992563696428296780986849176797110991981377238489391652067883081485389875746980096904379369832750795762278441919019113728188190607647793028162663053576535599812598338700563505175516842626120180306597709742904605797481426429976469035690903934602352972245927644622562119962682161294484508879865741945958551332759369151081930772713549481443757884061204627290756777391133109435885121248850325227392053310521956342262194911745414582359026835135951764264715632480954961612858430395686171257997692208360163966826102905663526156945519033623041507948323943311110655146915626465955133751676946367424445849717970648500377112650145268517228410460908342589800669364182484322788672429483942523992264432181326065811184830019938591497567158590235665091441922370185135071611474887890436325019620837185792375415079337887968109972680325080812746892659368330253711376697360382158922438726029264679028171088417817875384282455769220349164660507059794556498430293608241739071518149663889770925724005804720596584298250294633456365277835344564700407596154618798064062555846621270856625539785832726329967637681471388335283734488610102199544739607082878156511638541741197094708073485766952793925572523904334166134509528403973734804479538139514857495810850158880586408128574500647491772848731135157021645971797497785536992669784531893035327405387252161345068468488051928458343721530378933537479277440139838522254704077558792789210751896322791032998642882761857322076523832679508532333031048914746682029105352842616825178213904467580712160058945979477413892083587583452627704467061114648074657121900932443617464605599844743396911275845219916261331335557965331129359606333320304415682267767808372445838032439486526183092203018343504997407587395430141526276285611024829106655838302651016559392990430433443998144088910599999832699876737355983872721735164695608645243227864423125480091230262858533537654297045125806476009994141299492926448476631354193647001185338004419468051828407142456441773476691270864080820772825561345971121074202838107881894095224533082781061717542541989118958925728121361303760130819777773491967085268210526568634674494329644985984408934211667469103325558118140479815343357774234631873182003487848587833574553139964102884562828343736553737353028511424672152529806991440474415780609611982888546234256758667055749845516407035860444397249222057686580797495686283726386692612391659831924710654632573779427423676720128172857891498259252127329984123107781588378439308351775127139614147993837839225687449852621515743485628051264320166974293448070362759065057714005020495695715984389876026824216580371526869620135375827583226002300696281766532001701655936186562351964819473071436115797993009503444628054560460188132802800604934776617188500344221353035536729214115966869515550923319375342167853460803876624482038262686427767245365151429273057379234544192533248913367683984603807521633489341638000166978796625086872753156971578753570837859547070025378696282172244311499682464117558566743167988002436598442134196019035267829560606574619556476478373913264148581204709639855889141150656412151134761513421185502421699762208406899215565634712417259999961005457995737654463562243327125206992322105585537744193230228747600578946709937908082554623835671751207328142356159583678015907894990126150811355279828026198426742049581697717881403648705075846889839567291924193491424159777080781389639738768849634044996363456973186469532293790117289588233298462275285614139947093369779555790463894292804283740868994191892706716828196665556637340973860601132025952340937609662940429342579292945064849063503584593905387622408245881623559825038704983850686148344138673858903619840091610789034967504382241191431312081514289036609266440691667661032073444093175220634622838038436336852731407502132189979447472404955221505965994356108190792172227879275943317182450560908440131492216619958243042137031180108234947767327164583396114037937020217816884772888102167133429205637383630312564542767817731199104104059356793354319205094032893771419746025595273616220647917286279439464798125600951603610129354227334626211940530273960851390283347484511874760944816033525069146076373058687249717837483856437964128713863470598836616025469831987507574447806848199653032063896642055001262665147577198184760221300939155976684154450474686227323985319882281273173860151925685287328072775817046679300182693297801643097845381432761188138455126551008128985360628538929031313146381557539366016963271548861864491896600399701467713855165644244059973389874532872442858992178292876038414401126596418828475816860604216976462562644394544972996137787592337709512486000676324481240854167651000946526633985738395076655869047907252236895400416062745734258600770315299603686977614376475441133224833554931305064622497464497793381002746572509394164399920603004500141236552669777393053748826732925184722290485166273864122597642811710462565446164949459108274906023187235844001267988874558959308316347070384849095874674408638696874677428017224856709279467705904379520427588306116238599836066260923676114270948202998631662302541167743078868878597066653765961176091851791841325084954579266837526911868706275482844268253837447981576252809235218305891888419752629644230785577480328487176754219569066150786854295500014155160170877983390719261083517061092353672143059397345246275986796690149954415662721394029464326434531253615682544968901529706687080628167102777193859159048650407517438816801794558581152802965925747210135311120624454460390586804866009642769108839957282109006382361467444581347634381412804467131433884679458254139942140500285213893301850143022889407711323972771850804495348515278530294063432575686365987219188526774364495311156652667433339894647124286061906945608679818350149327088690458410414308737896222654827623172576564303146952428721581287314134730055816722651510172850341268909009686817204719807484916258476203354310732276085484052318546620602673709973758582936148410104434486966481507069484130665186223190420910400412445116922023053599911845371227694674199128874038714417458175054806977035812342209523943186278871764313831868843488661389528742711083374158300760690136515573521407821798563066973320882659889889576078390102083505685104174564012312972102622134144623446537746812373055175542490627507868452509448016754619315479488528439711512828356267413112200599710059526321210531535152639634744128325420599349836720103359458784871208563425121314835274823100646997514094125543985877599957542305839003236193878154656242805176337331838826711460518936652392121605148790815782029097742675606322839406651118320177652937971670870172002267809189953040511444124539779126249053688485335047096296595975996733967312478535023863543117721155178721462841232913816938613031481414111595230393779038949432108041270105266646215800226770513151088805086925380124056779899767369201092256280844044042768569219387890739766860372104006285624992685346451695921689156860430048943465937056828386778198521916781292679196490496387757078360630616944734471285251404367356662986781834064881496298879085296133260030154169747115333907780596785917120884337890512124495550599606971455367303669720085860683404914773021317117036527439181750628376120062539174321986107300080267375935763420701065656467311324703927288935400709837928815165080899880927734328951743491726080110278727909216182083964498154266879636409087496578814486161433735129457091215573343326985855877332037097754274819331123636962636696959033476430348942291607052956531344116769199288876056409229837087393729438691103636422717556830002606653191401446819140830615466293783771029354863313053342366357043148850443713810239825470162165066890475385340238572382626256914841177135779267866155229727279836827723929746438725110180977256025900378053832901536854541412119266115661611983816042065692444765077128159089454929689188142546638792538344248336933589312127053544281580447701475289573204394583945155027393180151270635587801395623395452660352831802016762891193707181544297252929259051686972274292422925097799536111617940252831580373518289953618533351818571737064394500995090469350170920909612020289215610550791915584173796280213823076198771469977841061272770313736623343862947547971265313243435433227987757146427692307918500197245478912985655619418282524119488295006384808500292271200358966393242338903530210200809735644116937811855629532336025418673355594126455555633681759042412689760963065838788419228273063247077529773597772488407237117661992132561726071426563743209683143324745353549865367212440555567583518932149637949140604771502176409263708451444716161304102418624867703787008217598576428047244985007653344405622246213827376105584834437826916621227321055691170743587857901839100066771510798403688952040406299168667591104236296142754920108085092507873259481501226140964493327012974826281938781548798788669887880125331995172838356003755343098348330845046717749533972091213982536911168049790314232441339545559931896432842200234583413081853209412148200362000289281193628362594202724343510285660518665769309833853917840718662375174624603569925317453825598260478777837829345980170649495539998508032544798360984088808279283122815132072467980647947596928012833020506931287936210346944206483697861260850112738062342765413581894211908506315125715734165726067448952243681536247544963905621913282030885943704782063566321395687800544246705950998016316457334450547493613231276892883224580219544212661736012618627002497556586061744299209040338891160969508138053011643933038860441755663194879234095657487371693200938617345054021701808121776957171244196525766188262263826529566699475949792128751060443791928399707535856567495504440823430884767498340809177580629972880832063048338773413686433374983434601365651800617310326201884742652888132496262915245846705674093402244885845183116987234977295871328917941430391127661200673812509461757970075486759479976927576069402887182823294621983803252512724905685136886630507462763207347556291070906802379553340808939623490997854536048382347287978319668275811753355617708925559430569063058431079034726227012422819668299562940876144753156112478781462606801588787481467961466492623988126271944731967532675768180440965176352032432359902760504838998560247508190117743569625028294052575588182937842241686178688243130788134522877942045201982010193311548104941140046945477571735665963823818840540556503572185478767397706811111856990071065006292645030220036350964235220345583037835547286573925909042654187347776519291389125375708695353990219072788640365483121706241794825712805791837229041784152466880537360538234204494124481605411865895204822689061665566368806548478258972756643444924022485321465819184850867823316649218313357750736510471108423797865461615707378167506074747346044487866051822171350710565989091184088333583243133967643745093205037825389754892283117746997078560482128882330967426185766021439736136134425329718058296969411894564988806291874695793631516020819131957260833041453745199812863007787660425525708707733673190381959496292932685777106633327730715822890578997893046920860790233966683649644822186216321978818627491332312258604171835935030519008756727432110071991586961463903383999339434751999464233939372800051621240337729057508330832911801331153206722119533616108018806831596099403848378717546726716416430353708750964231861470039810451820105218732349460452884985704548330306052818651981360641213261565436576189940009573203977320645222930564181381173471378456345987243028334380065869451101495834854320722103487303290237054557202349290818602372636986720117438116986801780205510828175382260145229276565730583930277499858873517923009686799577874735385668085537230348891719337108522668176343531553651683955498615224391845732968412131723593911017328033027306235250964916038681657780076166541996777905322969805464333908765165513014922290457152653634433840985184621406658873021155811552552026460728786414278869821658578920856676388278744503162545659661627685310778156642876420548963178427698037551697304645680094055663541065178103574556422626807855327397874544372697605493612331187545953355737670098160481296553838775370158046714380713762129229205504445163557813711965020440051222542988726890108793175276505843778176011346870078542843576032284229076520825017006557227224578848469122133469289519909497726864281257564278949750504139770295153125355537551564457158953580333768013144440426130500403177654967860791845099683797014180796526101139402100809945409926820205586578183272193320806223830976841950026703697575900796540969472031473019913065710190261242308653948104022158740007565933032334213770983175837288131855171333824648938045756104467989930992320813232369614280807188350735702301113665097860665876679088666105914347943576156116099788005012453529596492896190330182807389746611088771168464345502974640180782540032040965190671801743189486033792501213149363342378830226278954410514375217161182122339883488374740746009342166659786659116511300305212151939217891162331632216327406397863620625410007927558696658952838266510425027467193932443544047052578610079331045314993988949711059662061894588362107328664976913332524521970792642115528904013378306071883317984092942622560132156757817217148158079370678889059483715807824295963056227519016117737716447117332281542307783700337805514206776168026395452055255782068180028750289973656630503941849007678282665271327184809824579220034968747424696768413675065246924392371979423339926284600408961931932320048409303231331487520052448175887902479414756161982925089963418127382079591736146755098970211789186236506975759926979810037270578455326339963827668669994772494063527026667216461286420427560294260221935464024544587425139367140930505771160613309717785580460003380200335460385830508448260076187134176270921191276502476369247087116255171198566146933514121765477553990753738936915308074267815547730251275873437582454096740090670885663406494695770866491541366925729080255738629030835861971968677265377190826837525096434860795956384540350120777389608727306577562759586421994566605535637764454150982486773276525096408160544496379760554475025535416687353657968468675685116389650880348027480528987711800490247005405002053480708217651372339618852687516704159952889003326806819226605039205216767115641388454619430394174928718444959085266593985178203337682719769020784684666279444648198151757780658176912594856739922985719421777755432725401310230614224068990779418406899230229364901928668998841223406560880088127770930072220959290842472579154895244564733314326380902929480330958817252585227865135006101403336883516030193680849186994724068893768397520187104140046535307764925151871953745031328965498937222335680690785951886322282265307444029595182003150434316230008507558446574815319326136657085752019611853884745747583328420792825330494893935968088192095757808299214169028849208443288951751532286473510846052470985534613752249018985549399181366985860382532020418302296329729125549615911642683499780188698712983084457228849749001385026032399964818395199748770616597755221261586513650922372461565268053482834190240503711354138498775134757476130464978721930693254775149286606357751371013459761542397495040160397538057386068123015330448513316283039121368782065557887090180000577116250572578412413129650180136946317487769980223672366868633995025239977958734644248459449198680642032100017506198004372122774014516521069967571250249917866907045016804416567856749143982193600883296993594897452995040486417938343849750403398719240265690091587312660282332214832273219684993580336432303963559249030105200585525416188974034457027002953849237565049509337333480168994374295005313613878169715123582802157126610285939072348956985933766580532849920467282229774675187029189744525882163694219543746732299376551678426051534379467454912946909579215819142482107884769493424555230863336929036545525370569976858510813859873093898239004829328565459625893593683245112790112412742084689449200858245634095073862903399812937167069055226738084736107931167816315236083770409448094957822922500290759236008371680069713396576104767687192566723667537568380402895368366958085566054856665321363033618532919238616508770079931045443009324517763952836403134065133845001004909426962278387603648969937186351949636124326326249075528841624803740144855659767307553359448759898348539651381744076724260535869097071525461986672732883275234608772848292556043925369887043505850960804788028910566461785109258973916302577979503684417943418613668091389239030033089447885222232912744650877031858157856448265599700618972245063725285353833181498394008501065006338458998532030742711037476132308920106000339969480658380827749312358549344981205803022585300147075277016106914218413229063196618625601493510818894266832101113904915375983440197916521638321576286466014613044898280126287126490554092003774516343580764687487357943763404429939210069522192442950957356404267191302573851960060978564253863217970256699290311181336747544848129490382185975299403337394760185747753528638730159181697555494535737890437377320911809277583611755986757607762373478156595849790271173588513457468381917045744381000673034475142511762789448520439902340030558634909711873522604179872303814779487381631509196336296571636246139214646867576733464595109331662698724426584201352179570436325521036226604598591200089658892186128013745646939191999870056260242048018819711886525729490129104654661328688927466500676098581476908441929628274722281321613385344699652515415379978911502887353789933329457648045216990182599315606181653912297355048984947779433162396814079429651915605959246918503841733331534547802377327594973178502266801680353023763112379561983084321089190527475380436992460812267386817162181512517523668660226966722264091037507278899860389411984737868092261349629728768584828735290126571094685334306169590788172869548016630071412053048811427249263939286365207624156741797002175579285734058888496255434692328235087816373641297773046275226459288610570076570310436317478552354907613741169512189045870953524093192877339553311191043239045102110731793617153348280475542938858571577653976504210207422642913700843109579286883519262693603829103358717180397941984794073382392675914395602700465028125618195995191227738253691667222441121891051792611133000050715914955640164982160864172316920482994289302904901098909103620581125757222276155788834842119137939478605273339265746490679574954776444544932034643325831876186494079051289241747293605314792239651132393286178489653072754753055959448261055330951393105492561046405630023713749570865674246741257463569712498943566074204828473280159232711795237593571344576645216383146560378274395505175010513769299163648568876858397414746065560657106058545796736638849998945030391881270199397099944046893661895612905961631238306621283358278206510557430226879621341172185383125165907943839927474243435444717693687451776777308357992300950398872623877612030593889049718277938672218551995081584260345936652031631158822760643454682446505572241263959793225276557471251671718911071351177249987657484307902825705378701618846928604115933127644082234681304278293578336851428823998441265145408767557116351190741689332918633885833204615574275063871467375320407490342443120870538846888589310810797719404670073740055938905293884588251953653140184790818333366534023966522307139901547409233041156344627769840811676082691486179541606173745472470305923599480463525642591120501622481569539438194159061201160796996280905747435430146585420768594544843022286898965915878877957301707445606662124260549600600136107954078159994786300105062005463830815738814505887617922794546445215936956745517516372172453792196009860178315436526172155344455472251520121974411039119758248626527764601188748161723042428261696405503129457613820520802514737791931048771741562330417558201862901262229228183958246630980827318109358793157285071463063740594249532483641305552088174142709244101777173306905684617214289433068329195158065762134127925894894893066957440375996592069487370712092129643189643405959425500628951970227791968422726464784497059337295245995945607812247151992914388609771355133447651931943053547306420244233464971038245144614914345427747626674588291378368170071262511541295320292399174849620668854099527289394646982054898968857775686540529493000319549610687528951471865878615810421797182610722594517914780044966192147949227511267321712232668890503239410064489765374902915169521811700848511057770211831831437526942167623996740689506320139828104955489437817309801840350368686242089911750811604753911809298565790599025218002209857929589081579418049261159323882886984750089623471067145097139339097574835336653424801970050717105932185193809854576373238806249434867436872270266537840730155386275383514803727799641314138555702870355819236758461309725210265363780093064183010154258634597720921647517070541999985238950222794081825440495068256099663780711072667408465243671833312598891557865284629605822910643870154442469250623974030484815275971792128331411720420378133322203820355816495819531700855923494790061170297841595519198485510748791561005132569331298902484690358813656124605969143979246384279640866571018365234017967344323950256697316676066690623403394043554652650158677456743667524449168489041700016090211978711410744658223873748183620562036466876084771822002348785809912475076352360575361217572379290803987015820754164350095379598501546637612154222970040943685361075106759271122157379825135197004692665204553096695523129824631629247068649783050738380830686281620563409143604809592270263438236346219794884011964719595900265035897245523524729387817421267532532332764926918217071086599066326433973349482656822633177594632459613430093355307011639265749033930882744286960158689038498243807118996175574430301687388608030616816882527474156969932619580833622563023698371011256082158481681156141880983893740974336188929905858691483765859979422900451951816957564514262574907908520019809891874718432130746349878861297223203762318103071876866324310390494252933983300939405134621389501997398339347494986316911699441232658826090665038224823566424176745914979309637529375282493575627394432790610095127817313976682194069037956073086749262203112687575919726891139481897290427772426339213284386954198279446508703730661955638961062278858612106045924876801846841336670580961223084082911039476836822743097617564550112090324297804105013230367018730491909176948343459619897917813980640619809177418678887552037666892507662086498661155802231574340416356429032772380063686744659856518374527032328762327511157131544314577710176297690485157158870224785314762569225399625876739277981912827894443255239798435527372675478512702898948853959540829233254933628199951740408104103359920063082077967017242383780308258713629112782563481870710286448311454042290131451387859836833587981517960375343381857825647207018711171353783144019840558929611602723409195993463618819376252022305934282230669418893969072338407901157512607282883487108863690076322080309052717764896213469101831629710916739071840855977029892952875619168581217315782177657338317579584879490972487912065414975198576063991480375750897244568478522284602302805915922021148421067990242289457317993922145573020541368949796962322048258739697960857186735898853265851456027736052329718902281800676877546282603728945744554599939408984625460374567207822665318818289827290252647583892183927330107170103833996869656056661747201147209634502732526465490494632819773960733682383318316334173129539217329470837419448461713818301506954073650217912486033260722201927333885104310771546613750564671672138457730645415561684091036718603466270593376148167777534387209720615962061180235491405107773344633591476530055913359434671575527528388749265581345884501740679926639368621593891530368911837085967095548824555182194382395049796987840250640904222888375569127254915624052950651982252855873610645444691618203922190121321278472864731668172926000332404010063094515193554368170608305144893902120381455266888115616528759555092736749994328324070836587839599678332663916215021375716422609594801811445545216984732211598978389584148291905878419633191484955508065638995411960976458358236874833908027027041699373845613003459345313404026819267361839550583209256418660312268119632083427914461196747273123681389696406172759937248868135554847233453140810769475656953362342554132946282490005148531124479195501379347974956939610531120615357034967756843752919893277428893385616964853677738833510910724951199543883754378249271187935831015681744992181287533115271254073646375697568615651082048247788406910999609569271548719487421952123406612737226599095411330219878437786516995061488329481346420639534470775778958512919729742363632914019256772617633361330339654985214232270646635055969859135828191668400493634252465490114769261509023365238774134931435820000386683209470742017255326059009089015149678915459664676023283104463156302028698638637439197229846765325237674288580144925192536007674788073187987798150955350809491619720362976353495785054750516967576135824812967695496424690426123621971565768564390284810469735986774493206943847129037243162664723220071073971422249399817644840743538182964606287053291040242365961657214974776133316394804184512049025985376400141439976186162674623602178164172287696821072407190677937820350085393133266055698547953521630349637305044886425050496489285781345866870889967405460600379996417933042890357067841415799409501152603715759632926094026635209576575347821255715395976148487045046298933824932719018972940807845699933886850004942533401846344332858413436888147683678060063393581082418407044513452753136431409781803969455018863217883816975079800258867787305042008049433225172123911683447830461981575481701352194434252294913191899848151481771538480364820855184815524482838769814490127088132481079737762114134734539732592891110794665802190521342518821003609590983080178745003052802460500686402891308025299178249812683165863623472771076239274499572122643421379418772989262394445496584279109107988903082849113852392610592887971823305294295542894554964807066869636591201516080359407178319050598264867138566963896289771399035425138352674922677470234920309108979865679861793685107264245220088840307209055951660676487419862184592094913456218475073889564920163845855106188130603926657180767339618348554389659489629083036922145991870812262305569693795446780200314448005661531790670460847359477518915052265461054552659118820944029015715024232366918188392568451860978503696692803965844325570370133621761490027050843670599956119549169387761560529304695359268893170608781309873487600656914873138323774752708574229717377779126755329980577346198690178415700601228076872195353770480683098531975124998523474337966903132991783483999451925970486544727574203521779176475455276333083933359399938876948054555125934314623320314089895282902642045972964363217481864452018840460624412575889118303585505732962121257594103758048064724521217301699352713225165729794839728453836892835720481276277450609353371652297474008196729510464476973135587614983936314971464184671958448118192328051874073048793056009977247033737338409312611253760089834221790588524888803582252416953887518218787536715188399734795782996362146421172506292177628148856323531422903762934378486564912060808055050210280521157102564447427993305631405614490962016715651144676280701310248705575273839588073004376006543158537898376226725773511855653113599280990487218201126927976757601550829616405978987321634512665661691366876884150653518587632234176862094315436002000141287433522263894037842158472182216033822103498274105633266724401354948002843399055657493734681023665164952756613581412723567884387323127026375515326733404606732076757053782097992588499861359285901386236602126659061542077360291940670084713733129471918403352512473430767237642160616404731222636314267147644118855619856618549338680214126738713087845149951513498508653764940960538119658536889274400560524354842819706594373233902281569976406232114516931193797641464338424551279825991465639336944234552532137188673373122502718253370552529082611185511023259174706141784013537468205618756953349522262224310442594023408069036880371661856487336116630540654724875237604059594553032837117235416415540286294220292081083169693603267488631457977651644081403816340666939456894079480242574485973333582283015707260670964644874839239773365747830171346294510840322520881634409441364127072234088338995301130074829911377604955315799610597950122527480875362306014849319945021909102674188791863426401960827083596909831995955005250482845211654093354775890655632038788489827493090404367122924288365481529162659823721220929594287497611870602554117056765824834033736789524348063109138132894545264722931085430065320615758645371776324728252552329730001495761951165777902278762340967668049654067692041669414363250725542802300009336812964569388999369716884434742683167695850254626232208913293875030879792865283448351600150985602024097661319712414616602023733439545439303289751647926976723138088911664427149121221129689888993892308012650105138239443654234162388021617127026160550976614264345560976068808424035541147731812041296716445619347151377124656490694144960260332570945155766173382967329349279980172350000802998909827268221570200459575989347468288371805191368638773673237437380669709408525584004012109020624255866073340332302469513782057885517955534411438961741050082577849389576024238307850020297349037746384729236244437959111213422139229073294694445011415200301462586944748729594628538757132037987221307103459224447049988762693216849780775907368212507318275240423504234426792557111999599883616089235628127303744929027956160012188245273182828363305545589167920324101469570838002984520643693775838483392692850419552471324226066316016956549596946823094556559715531297873726103822624721781854626346865438989539778321100683453188627045944113380321355825139232587464072110150234608214783775762378234298148537333405032815621890500357241874187800454096639260282071603147938058534452983957822193314331866831324763924271435635880186557914830532701606720426672526625101877719639769748553527754205861306280419726736894795026997097673471580326032717225269496116449602134150185650085188135071829097197972797658321106753686311691386038502164077337999680707467977838433601193440594240221382955005528198117556832761011318839056890817011235926508744909434942790973493706867375973834935940478673100495604772838035231304576371395631261297449714274181806029351370329382932329188265840002007554978943303520819025518146793840055105558343099354867838712131805795059701848902082467746609442197135995186312741979905861034501502606955999709841873103585097105723118477270342171579902408132858574813684547506057461509553464064548836996467363472676963175608592361546809067826789399806896456234180640133126501840569785462423724116298912110388831262180351782443672124143959959710571390076484358453705138099146068946490047307939475537222231871741310611600967986673604902913504450026802882809218680379739314445878329589343559672495785909535576031369406906458891956467597460942719743126070370107820784474064167242035534341721576167194790878619775976909705727789503641595218140340533753388228129393556425613061454619476636782382831222777520356877817443191586282871844346729160565673288998007126939341983974935861606464153770341446729378726969159336061659042457854333059671442705615387972893966361515179996652682335756759598492314408131487776764204820094651009169567070254306747835844130748986738057523857503724651741777788370379177458172051444605776721725321472843164261032844502081005590386949189416617091433219309651855106951521441384558907779547213610112060124511018239884746822659482770178183492685220149144280771249874128818128054561805625078784971094083918642218531088774310516470223652521214798508770067652936371064602958260210192173372601889455440022265225546705491078346083323910472240734714817124059498829006150648771138507339082745911294704993857143306745198401730980275581512918434016571785701777225374123490826993496691882139242205545530692333115504589949706229317023212835837874850721354822627513736182271540367529429100464667836721938286791765667621113151788821475319536503757052418131287713214364835572452242362429341863317538772184995838656923391858454970460316649843419086715533122008837526190342910640205623074336082938766442898707342944217056150790626268122341960954538939186166342353727715704456338898279434442363672614834601010732159701241145182590894157992500960531075824932406933524575382410088004365471633240994276003059931138816505429462256227214471143735698393547705305744683736368278117980215323258877420895701743521877686945397681796539171690096792058443513096352635160903397656160662564907738485834255024361038222827012480989032860569080833478067883504873565670552289389078325483240538727754915850023835710541925153532427043551673253548937741344049523271668132511987711780445207299571832789409175979660024138225002573051072416994908715863031943908029147136024025289305302197454530932211608984493286919726547057749937774114726581140145230360370147766935759529544402526489483495297692519332131490391342948062711435160054186313939534347334149114362836212148041268266506847193432227942763014488447053840755741395328537745816055791964784593461780040885338341523301487862489713042400370165353956649990850234236598050845941097856364841005423419026477227636088782798724741410287741322138019974360761336081360027781972968847814517021118452749110861772051387477922373945825511519277390484519652344857010852153931309361857567800529075929641509959206073566613490561557293683210819815751356444246892056337899549076309279278755034956159593118266223859324917136765458964546808633959339272284690243656418722045480044268068310662134124760291799070907781936575068174898397967142697856137498426017759261075527022186455701851850606904730753273871288946342660497090592625476129375164197151793643434937713313383159436069773071557900057377747065187337824463484583525867773983325897894622434976475890135569884803589855425465414381297873939147444479598412319066092118477929924648978200463092504195768403255137929527177014585352620603529962186619956786911785311597899491128017827619320822915608307553011698352766758756124514486069700079590042685179343448062060426684341130956001099540719950738674305467241826798476191083780370494509534656648350888315983984234456747479592860716443600951329179878972500135793780670190864250440601391509786424716238318598365162889140259960203638746223545105828769796038984240036898725406042506497434763366046537128612720287160674134579449919080658892620534864637334927734891487484387638224306212771298353967187792906225780378806219034617077076871153060407506219345613549237428488119017898198622508462601113433117079795871258051622877388770111476441956254222944034600943016671644865249506741430956714988779177910121200674382525481749133644963511782096837659755725679899373293760417146444408433701846138090510563526987122054386099668323965329185853765027860740397551601363497970149763987471124136684459021474838954622624152178309803425478939939655946998903910110021499151615850882056487593240730422411674134893254238403917381391199123580368819045268022626071677626073710262761984764692671005760420414388466663474794335739825826125458238063829295939526020623522585417156923516479795727384620011894402775893304847065516574675693417155731340947123729106550045134969174350749279296779276380675865733740385094999920931225835567628316828141756826127516131812233402861035639383068307530919995803713885772393920460034951083624984022640502609679994179090040343326820246618770835422125297586923985009982715337274909939409043220317577194068794817485570043124104563649962706869486858018648166885231760896698058805475938700041173856244433122420607618680035743759210723556060568999408489644822314342481034375582792712469187396644624552480363154010485642424042466332610728841719032546652596623988356927825981841827975883482520250082161995810137509044628024548478656553512549639219521731370359126967660488079281309111372126945361950254007034974840070679523609961315984467827892008880988553134154084282360825290367919122040285594995659799667167470013928515344517154231667409345383994518502105741415074173316123776008578007377378789401057782660928778345415062612301877055273915937996186798691204345495593619304174349904927504398371603934212372233708106589058555924158308893090305493868829695227645448616643268874576273553948169715367330571932675549173422189547904137647465215812229606439674159329803569589941852759315731011132041445523943372936314972436997353216597076086061758838590793956162712668511941750294936392523711750539396836073867431772243926303759617173536090268602350442649713160064304090178533093850016221875819440211076444601982055114516241773197837434350223023077794994520326253920282707898961055997106106227368124424597588049676109650864852130427245203067603341636809061892866412988994439926155947469285710986799587102058358990885141309994734400170295371186138907808977735059602281682560101081137927882565406966016360353884793407067794466154588670708366700964188059337324797561194761203623063257698062145999641443993846427388238122433230041622784826233841580819331048609087626654521410935400577239118298408139532655215568616419774767082036439631789873165447611229174848606120096193716232494720018999445416247110394111897355889099898829644904574834245415850559463961285140176036324701731724654250982693584465018122622612420760660565669837005540300899242800486497517808501583819083550301063105398396300072528303633124654145584166161904358266354783445559493746786384643846320545559126918393067740059252418580663701937251892589516998417106654126164014115981356174241158220362635266391142726015797386216736275382268613944129130846127687532507069920900587113089012613030092077415582494955588427542056075677209579916239297894599738098255715029902070974150513865965937546836632382958777601307204090565488210520337655062778074401044675492113359605808380548330241843203223640435440688756061785314961908632569470226254883338272637094516335339887253835322104219259663123594254197858522652398695423989415750465404571483534240223436315672231138610412718301023490690551528712535971293093520720862229115945092654811781346589381280326235633675805401639230273567623912764003468699326469112177839194474550372037362160521521320335920028160358100180593662247292933605885466302736128406578121214726279512401497879866084533340980753130065258950464430328916582269753654412287237120319269576711229452218940858531469364434247259445310388239448837407310765377545880523534652466239637811713504103119827329881885301292983770838117172918709366694292862504122273454226640347310435995314520553872446481560358510941926171778309500062130657289077121234831126099220545267267022904665112605298717193022628731876971630449431558634901268106243522243557541642696367956290373958027220025579339674778968753044992035354916519277884855783027450060337213968341999097279577304667083705031323984597043271556392414791039210080948453467606591865980343194891035007949175754923909487028038057998110190423545972882703468490657692028645992649684541440832687731833088604958801223538192055077400256728194386965673411656975114514791697380536957093105371049044833957681298980581929391213795903209839483000453763686232082585459581350219047142777547223032042722839271805793383783541006807196640535620484321274056878078363229924716603547613547557401403458084215192032127830010206145934923505496656605795806938583802945137626206804641885155654201188110543720836832644681078272860235724937512402741820683853770473970098619423289377622168098745403725753398784422073666954565545224325937310338035040712279419697701347856711979447639831389262944212724034410026656533789967133003696102934361781115114251075314120021717129122456423077398830167444585580468938374079203749601239552962292925287242100457407395729834922879506664293008220577515367634256542141557558803897598146673766235106334475356386830150472823648406095794217811145611688160760844455414928026640664133733726624113129471137085806666709635317552071360354062699080107589900909146279199373562514724243692006440005404816860366871316698686370465801023257816002683025103969154099112112040316983909827326034846725397205058842743612438308867426835361118618549828940072612741923795244479227194771479755588484903474353646604934272161439291158380227473596417683100398355331020794728082667290108161651897841072886819947771357931585290320842607149175939219064426171932565751575961857545724943050075795664773187766552408161368414354828151017358150274062945683132104445587982933385720000060013135548943208130766290579463099311437660655414118335466543033260685914599031388438755115006549392818903688519041445255801793953329330908701441863672655168346718402174523021715721782152813456829102567723359412205181023964386006261957758994890470018803036455829149898067463843372185557170709765836550770575516702239458031767240417002549895386754555596194506896643032566775415871437738163854834775182408713501129793674646442046197892481645144981173720927589273734557489051745158124668776766361408110044805060377969289361648659467305667524409475546253179203359324597060655584397253796034108533871466364274271900876167710258129664440450708759663222955204574451797956442021901929177505570120293183316875703064988004508402314707676941365473423645655673181469780501340972974225902089221521119848521166748243155024406912228872449917577740128034621396518044570054325172281638023905415018365071594397735681079909909287238910904187945170035576012535302797240746171983967261333213203338948837847775477795899195536364858730685610786974011914675503806381746782674745411736360412058027554339418494397239281227842514291803575512848781234303618007424939017422857168806572844439786428729153082288808391486052597278277211762127108792716256458181260808247449003052780093285884620478697677351863583815011056320369168185521138879761169841930969838886505643900966570718004727671031725639102007419424568168566516239447727811305439427207540189841047871912413151652684117284428532913297139041057774000013598877458337844792572727906818875567325532984720133941109570402547840249922690715283467590799973196294355479022482061415142819299295419058263271463673975025929248771927122526576990568194486871680317403170674378055674062232026369262122058675477559105370226281227315096210206431973607777995476143100963187879582566799282669674057169356279027168661699690926008119056604682149497519614662390584041405348082356016936040556759994836904349147627842729512986746284317642383487231850441481558783993626509878311503184243813183414644464341044800742892789524343444265766603240432538036986076093950353065207337850254069673713738035594222339832973381785454228118732361341627799547616501489532050431300487337387964740543014701769440607675286045065133041916550511976585709584660561867431252492339647983491059154460089315101369199099065118942306348842330752491046815463980711468157268819663644209965044862260672781523615652659843095711716435712591350516062726699596386246333456125894407930761910198706522243036827097264601850551985291395829720115921090340331130743660609736074242799225788368397608901650523183237374473324078582725752635193064881755676447282108506823999744744847815968330524463497784329533159572723504542063270878790292103680474746949568078858642170170565000974342567140172307312643041861778494842208991245436842612635444610202297862419078489220680306604628177505789101829641186669600197508033462908637180907055810246381239341321872858619758801049653605450140674198731055902854802471046749473232328024534232367876454389793428343845169833155294695141063642031323672072791033420527059668604433861232390048962142565477915537065403476618392536892819628782066052998623253799150666329917309205274625650344109044003406971106006159150420147624288312328875559379255896341605820143535044503386569862635716053446835146607141366311183747995113989045040311591877021492998704543295808232030312769935350766091124637067597296663958848706711293440277603554098786227310553265235292716472816436257648572599711883659578921394623338466525981628580862512767712574718119147624112409542309348901601089790282494504705546768297232677684108298905935459966789449122522889777328184672497710796223694507490097963521913489569777682359153047095170568357090991495931745410656577029637918357287883656017490832234550718112237534567117490340572421967272601559294091307340531805252041134817980405377238394169670092987633422796949642057880072653508567657141733628350420404334927154899778844195384124262053830018921836326380340426553078877015888105005263334366289117894167956140550167816151869293962171791352522893244472625171957061940218646119080035541161341462871247050434263426229977967858911218941085173840651471523197829241768565811873806092728174174260753897179082683455098231658822902010964571017411279544835849045718718722920296569157818842944316833185802234185907515459377382495729720062803454606654863438414017837565808691467780628715246496073127693945601697996539093014419358319301407516376182834632849244704490325210135426798794311709417785906168901446867968657956601616484062150973202865631409227241647677365723508018702372075811390065405220575897592546822453893277364964555779680836237167447019529649457593943397669776602827375705517180335710717542261813116502452294831121730540201714994343563399899025041746633958562169699217426291796132125237405717476645513669319790833994386200339741401241682843468781491547287782393762350811715719423239263480931690181910192909591986478427596893986689848779292047500163180106236869546209104718686384921379381497780384466866661251320471289875664545013190055258966733393746666128685164872957145320126858717277516639875111146865849779857324495377024530418808148075382705916322547247459494691981936278002597743005899165442444364787694290080476348689581956804942996876224103861426855206609726512378848025795995628304245281094873831632725175627990903396120590337419331063835395144660391342486360874884551046657317911426199150296855707067418598120515197588653998554230629347880718297201768418271745710331659150898594730944278481623965238534070687786182708170003962364738822647060945553207672236697279584875277698180075925349197386817843126247428099416400612071517752450154739687118137059341556747828307982999356034277800449860460275735750678309157223811135831713908036459626135226552899164965985390226637503846371350903042579536927696712853499603356069087926717535074268387284600948028227688754774492716300559349454083307255590321957710162378171292265122721218765492395526776583208107214792738669311144547509414577856702557158763558823669749160660599445746941879879510480218355310424277238423346511213618585487464995797582147554066447739443902546836153863780728127182253555735412904549798835129832981780601405879200615200297884715654753176939229609630047144370100023500264360155895408318135684461183577389565526397929289213992732541164201263296812314381827600902388592950661689661427471414072616818886953141532120097880759884306838247728097910182520273937019722480043945477882903740285445070824548260035351171080217209215259570137444141989213474093447925557709889284525255241659846313787947768680232221041123352353396261008812649212869676878004806157995870103214325204258553548290855600817296755857559490027354534166666528381429602834508485710699204242076830858360159894034523059280808857859945613980145074119722164712688849584960031102214597035297263779454093101333375283284547210690728002715408775433656442556048021817893366047675382715889272768509076825009524591507110045454925557414115571905817262161960044309358628860485938351739782325272145961440244345884322662440411703859623335663671528092574845021700380964849215891576489655601427719508738420056357105271338364491237946646556899096733583181620443320524888223132459559546162952423013684012378860387615160927847676114568073848843966982325263924862996039974457720710734320276770948808848808070560018691052545060161165964171851882650535024602745483604185575490362573018218656040260858696069854895080824816989476038228618079872921925059579506171071259456191563106264422301658356011998242141814545933130056888016079898723791870281446060952172545275227226175003556631205150891231426400966755070237229128608845990661289566398621875779971360818836111037899772193818028966209385907987318868747712731188639179273995064296603184385495693262846038308855260137224125660956019827755066540977927109394118987940860113611704593670816246414917501335376041274812448205422928983083574945239677053686887788291982428718040178287001544899732911263085786776249249954483231967542933606666870056257721182225111174055253395574459990005286119256503254130154237182879408477946532480407207925665243882073017029743923770721962421185634740114178423140006105723338970395650979592439981516879950207185056682942062695975022343390749113360542193405751104487075106280319914133642368123091887942004343205512353993645471109707234155601690070226852762485263895617531927252716951967797355986862638242479111323061845873692666316710503340595653663245122552160128071525441478447154041165900117574292245771921752256632369781698782889382487940012185199549753611005698159002959605898425231371336611796247753891167352580403280043503071533701258282117939770075924989032517420634200136330980950609054933266463087705559946487085453629480466161094733173939660074124359692094652408428396430391960334080881587239033757805589415803280681524648354606341805970981291006730655360264713693708857455446288943161912206978791393736632160526235204068520064899991356005704614653826330713059822082399648124491292723475813994871790913032919666932544234491004678010927650130269605443470409395004938236720041780459697423866777006464077607440141765587547266346654481773978089259397696500076799961424850163276874915664548351449092083841895753128740785168472936948226605205791445315565474745517857687436314607120419015362224370869300702375296687625925138282592018322253784973254451280442634604785299351624675703497794924300015595478134570463429068705975675343367180572077129280913600957602040534518389475143495262567162821051343020456242660787589794517899799463130157478044420156054468789251554819505743934713416292133825121650166617850700371600454361681520452271159854158813351203821775599963773961143549796555751650795845337353199805961679137333841558906411321479826147557423266593750086644662110021161234984971904923703758030157127833351181460593394189045017503654415640496450188182686241404883754830378663971030543353928468787819702978348015333869747269443889742999687613950644866628566882830758121601979167918801658757253041870158015532881508882834383536394458744055326419839174060239285275727172664998012918107249763854669729432636473147101342058279968670263545197790957647164173402571367033564843687303869018408615362501641770651359916116612723745914179438601004070939144301297234803225973160684053734597147912110501566462564239250885059690227036922358973586047368433517511530012611830663681222287598081786957544253837204904518524379817171821320589662104744499182867655106343378096981426444700076144532637712657612796366698975965350883709230922577808655292364695260456204936742681497593592887088207162179204535152633712698784545754941437223648169570431442190697167264775403095154138450928526641506379062814563364230225202269152390965248204297993890736698569323266415169211341577204238024111647139050314379375217277762659850071349206083773017578618082419427517161232217055154848070873632731820005509226327320197051516544540383791723900071322955555611696171449290965841729067792156253476417852374227537656726744914206322766461687157971131069068001360028349902606615948380037681397502580568592141452705345904765378279990634662781902888060182503875747392955033538253262432839056284029310255697883133962864238877570562661243141883455726659248832842828065883591198599336593390344356122116657088252458334155207800108332649271813219034717101327093722569876086018157589659648888237180773480161061138429487160829011035477584697191716975721706009054875824037007063427005573496120262814397460861942261990740054127566002664547481197265499197540756563596638608363275005928759961633383697234378346054860856904447321026723298460804848472942834706500168068133377812173925342756790069611680044196593997634469813003894629177851250600941295303370629941442041768344697284629108396342196221700453414374099307784027912494282853078506286353479473129027800956034005402924836607993638399598560154516765165402657212887991112501053748518542184896960387486972483619306625203360222229900311085801287303198997355772560270816473313914676886419880747920928172524317767603634883521464830260615803733369952320478656151647750117732644762772794557607192411992602668686650437347157150085075860284298137594849430752124749420834375970749961549645779666733226467043276792584889271492830873722273487636528961075064885077158126972105548870282936195111303947983954563791250322976333647668685887291696413330677496020904169096651706305042302615989887108003260499685456057600078952781521889280051167059664092105317353191761781647993790334054196289660751422596987924511049105066592119301709134971889641815885215300795594309687218776374371176591263570262673163170477130738640005124188196304576263397382159710624929357282529704923928571686574178509429793136351793221255518111345315296452389248263887400105388598405309444182031979164226061844630420573900082282551318370147823216208051240407094921434225874992199986187520705931663099980684195865553222758637893282553448600839523043988774004359932781905402173962095587015360165555059948505071064777696702328700847559929061690953098364979971531690667675998960770212111497069325739538513832341829107107401435892502484271772462987542865093968672622805423161464370883568486479316776109557778313036256843529795649938850714119193668413620152742663744310720745902466551379546197631476435088992050636100240454212583378118035035062024251384719650519339393084413004299355997989103661178083872801783622230813577136561031734956223583309288387842872598064353600744668623818743442955342240598441105294849628177199838819086269590773737351587194899926212354479894362010479649953746421799568608010640621920710045365452096607255314835454554480015502520074122330006353903922791235061181140079924510383381843415926301861464637385644776289239603394606310748009971978689334327105976034108403388196717730324312740502123836197893055266678459950649283205234655344976312167139070230927994342084002137950613762161747136637667251188807571039591847049042406550287940818634222561685299823385061742271503466482908312876415122118345374712414184874991444429404013081326442754875259865087343512520478280314837929240146711161757498137820875823628757957136456481693986452494472656878850750800133302930094922678268298487043758007613297912924386230832273128090260638919144429490887720729310500512482662642343835573350370507713718522277155256739613581906035684260137487454121113535799900114408672314063314642068028453177369330535195086922447423147171729062176388232461930240530179568188553472316143925719670917355930925177660803311054145975612742905219463410930231648247676355872052549912105837223156534421774388414566743518488387605092492826412275850324388750690313555941217221736996378103881670570869335477346035434126236572278179743352444177159053089456839470994907874619415901036522698077315230555228580210805715895555721600330288930833349458749305769162362589257434287977263657728810344039370698121969174482905966637712732926339359810415112573955171656336408309063214116823357167954028389835204224732071901182515883755331505456329890722813659467901281512163895797757323098215101458616352645394108020525316694907942193171268062243378639605003863736010335918138214548373189221549773053167943932510787153197169074169154933742518513255496606147409896227998524624806045831660242323972375378959784831324100428637015529862160200953176226387581404217750047626620339017231282079310135225676653402952410790497722390002349633303908823927857737735369929650533462659878454628110838921748804810048685527487489087349969503250330785598578993449197239973002778651358305781940219639095461587857199846992732176230538649640967165721955186020398979930897584770779178497715367624615450011374918508609931484284461250214312216353972673221030724773716522380000195458076360556045720211595268988408989147161619573175485122427141822536056180263561461482189786764251201162910751208692168726199595604014865500058686771427451068366112710363470915107918594277614242863404905851410345386478439576183753521491525581144548937386863526850541605051856331009277533449559621122226329258422539818961762362695199906807771677070496219850358858615338954459787699018022181341099638868281200979053379378763939915243425602212763787609860023248063296856056214118477609316060243530383861053751240357313803272896371502982882540233224224498866331256928096854531162540120168417705900931761870225417659322844568361557635707991597660568243569251690877483754425707553298962726775376143303087828763372323427842024036315902877174787519820012564691464143265421692432177334067310041842296238718286481634979228675287219802330696490096216298127104423568538374826531984862540687432898662774923781873288442102150497922286103271170653927500574801812407810215063475233390037804793409536856088061888975059822230433964104686197695820465114181266476974053995158949209223911408925938827827729906880572820038250108799089631918205178770958111768058264063480522274616138686946845073244810362965029048237332388474736671593299462962812315836343177952149548687526580876598339277249514563444479345140532621461806746016877068826526233480322635472025157357466161813766425849316047152926787178898199021127015742622413874322225455170501093939853669405060753925764047869001613587602655979849867179601584021930199144456604726697663406823842329625058526581160618400536202438616341390047130937612421304854230316535779000543123554506922300251464537523785943638326751639838942078541985748463734573940899463456155715373541793840763313211437527659718924459734000971687067109624719645166992338777234016810241917389132878395554058388495200796538446553160138940996922377420550557427329616854649608933370642853868201512118204534718644178547966161248908909941298052336507211429361196958386392487911868729946767621374769298813712239098174182331050556032294619689494195184781383815449407356328367912130946231470466873638540546564054789314958984109795967703664114138032312273643708090429079690402514926205946484823574089440575943974103844594328259525475308220791386488423881243151893824530472370015970764401978202046019348031626288202765302057203858013548226719662641349474452122892967285964923811550382934392636745502583223325349297221327489074896442814349007199468486132737685978912188952840537457519444363696421134285547864221087104009339150834795166394742399012301033056861212329472471598498434471650670039391295540958932720513019878772260415496648922660119737930507592442924263694150355075751659762666960289524277981982474161732802525165492920126657962983470750187336798021458815869927714720785326215395813043588474007126222599206489555875924754558980362477433474543107692356690435111618532325187395716415061888130708810980412832042599195890395664519211364558046400302239433575892502776131193158598173580878250125795833761071766145644332324170726725774406446420007287282456423310464966912891994634169773953215479141288763870988146087511919362269399068031029003167715578129096010928016262209418039695168072691524975162886824736184174385899809365345729382667090952558755744735068382512388832401429655477726558222478049820730236703708053362157002979006383739098259538557267714633659318861230862125096110845980569010780345507259726507082259115071259153695600842279104713414195958824924060024626738763276769963335677574416759842074524199525130704871476679329540097097607446366971279592634542603098404265484640639618211175909105190599703755597299806227203276343518940043945835642588301390110213932302367678481183293541907046549680107873294632597909996202757709209580685181969829126688858833131634317332510720998394898973914062623445894570849637159879272610539464707210869534001072614685399172529744997823171645717911275760686524948745955279690310027430195285270992244932355660467974815961664778491248147233104709930895836491759810742426424642237393826541611189162678965190881943708619918151424844279415178769212050975687509933773884925356887178699463737987215216315279524786946282808411795844662568076979632267211184626028427698893934318873399931162452070545658578762213235794407707915132390156128042099606678445073003585617160815573963166506534808103030959308244633983329401422746217902253183585406182345635457066178349618966993174206286464186759371500614739798989702744821258699282372662229298588039342363781089969976843045459967461986079718268529335842404420320235129822880401498906457462498816952188740273598794997631300435002096978112061796098337673890745005302488577099606848661996524702339133774195842313925039218192501408494705202234253657666051013816290035771077728186684578222376929755779501304952851650371826547630574365788009548652778045875754963086518298268938077308804898533399232661549360597081092640784694062313662848253451116051949895371050906780907197710564735405897162503581382938958694166664998046160890419201311976190010185103797143428257525851423916199522307885893362382462987289174556066260322211237607651945777278664638602964940214082297025196300271396385303156123909591698921471196965514885345508687749904899874102627304246476910249338236060015423291918578745212118605601910969423452784161470941433198518896061080351689040062421458030550125819299368790176045979248523489291744319877707082271969527006633744698425011351849517018711001664428251150125183204710233879958624896770320157741098412018971377396774862864249037728508896980394185350365553926174369254375037189334791654192672133328912311598753656151422342147913949003092211003002152400223044493387125278915555048212129143922653240452696752025038553415972697967611090064085305526670753908773634400737179205411092966636406379299472931444933881385270138749193062222974157875724019739531031618234463500934082586003644431582937606624764892311356579263106396413727866248453069167894971850803238591419320951392162910789631978922368414492513195049806539959030083413037171125559530161946940956274588449747285755796147084657432670570619070748633608488464094604249278218631264152472278376130310393186964741762039377427080611015775975934048460245090777253755479803283251773420003135434562965370324538339360108194788737562530934875728204002851443064368721666109367633415535693996150212075517986183691064635533642399696749648985402394126835636944282272788076354412497637841103159897934025987474949762591788158597879739111910197818403470600027272095749252447824461275580088740609630669267334172262096332138093135310540259954580739573752415991206982741266717202256964048719348274374598917220715510359613282881000194442462120374662208140308230979107722236459905223230502611059857104922626073474239971919998422691715740822578158572573627095780711274279370867772851951270270340949010516027054960971851536257447508131998103516018251803544189102613026682498891982875300219735213081178523806703518545826577438335567658067846740756747762914834239569274073336000888174105181805461913453914993193585410608851340800084029114915099848019126294706635884204069729171070931444061901886295870273876992242898660794130975522802993819403450174642157218907721589022110880209025422067629650350856433586131552668135588725981829174784125287434874894192783520127815288164657642764607249856873368281132403976655069733388707964046438605352209599405179363618933891139476082887117966998289837480649669812632974359038713523247666490193029640662500190488356373785742359226432937253629559493851344907533605861015546037564194398932551850106006861967217595796920949545297721543703654745560268415039594239368791519372579868125699357945871715727115619089146251955102342779517963192943058688127492954814754655180437677777589157831493390100018450972152706460508472411008386219125767759778626259398224241843687633171785435285480654935676260998568501603255917006250706613766030194158282326241954641324106214102248319011864177345298206964125057493430939743811665790820844960488717584107496245115628970739974207158198520012303194243957803927117008149687175386403989588462875282182815527039366110048171334553459113067757784793662034191992542241818361488804809947442433582611027925215177307492467940902540397667143399024884971694336294912830923776059905273905583186301604810894456725619059697195807103482937575202465732109976306412055146997811175833451439271979793152522858061051627093433275502306171654583868315674836259773809045805054775877890369741764877534094406977407442245075068998552512350184202001133911104769928129712014729106384035876282181968535126313711875475183448076502060070464809408905137799606671389161620848698308303973286735890461650671215688630784475652231249391448007623075771742326735558190137754873504735939167973940079744963763302564634654237093968907642048805969824886901464076741141983487150077952218581737483741505045249614960069399777568629402373541577716970767600392218387685757534398648643118676500062501975324479362687715623863169387635118352811934267160701650655836012353016779019302424665090189530472245907383033682302804844837891354512103095329792705706417240726033985029403096408064999806219774899489907727347415737503257185326543262853951339040079130812979924149244209430993497996232443568830160726562151366620893800383485148436403071691828335683669153053603186660119242932994231252157443593084091525743780922565599527727180470046023203866777064172952045821941298384749585442970986220728829138334863906457983149433461914735214198903686706411349454883963634098326385118092345905048438885061439750298910702366736221451645612418085879107680200081597292099172444180353500538992516068330221211409720926952451443054606595800681904443864360826368802158055909167577370628541079030833533464068602258221262309429527489772837590141969248602659249782586973052538654504152452216646692895834018329925519933613707178631133471327326816921759745168144419424539472950848579307354730578071815940080222493227693510059699881957532388170490083717529725044880071709659657270357686757191314028756934629581329857068248647543093305021106870014409652443883337760524065381993320782087893573295760412834519754540730809438192308972470971125974906855086843066190116457026564643536678981930687206290163742756769074323743132991799985917168657705085858867033207836943103214397103621252372213590849355598176751490338308888119662369217706090035994133077445418953706829276253982394424738068543029519057943175882717005935842039823413087044324565168749620691017705991174584067189971161769503247043462006905821125866543814304692527556906918336719819554035228181512083621667664064338888765130132452174270036989862331807812819885716361511632122660649805656819190889421570970536110652790876975619539781937928127726870858122798729953756823490235475128528037084047804259869736153036115717545516062985695612820909241066764162249768840032976672473479343456105916970613741496486569431624133669399201791491530537030213373903628813208711472075278194841743975443554768674406323262165300038727568444672996690550466345539443767571278235346093622687338913041483532435328353300146514094007359190308883144064652387969597496202753740300375360606814073861935217981304974181364687095447512033234002734679764858688945890660018921203941737419116301878835571691601754097646472896977663767764550272294080701167668105383083714546197230238833740313118103606410619711113218843394540505582282761926119310605417012689917984590349808271967584371167596980897521461360964128528455549095859101367258148151971146821256855288776275327356795902316973456333454926446667062374372752155860658886960507575476197114223100173577790294009447036030369023702132033453588900963554314165835023876529285416912041113484542293464372561894322811064494147735461893364064162812984527772489649034068688319695983086324479370466473175499926132375865955939207287890586309494564805480470441480023274329216863858388825717317356805395139083870719805173808767126360069612514494264302096809788485481279032006788547117759640906672209235669527847640214689178166899095687691882242929820199084919801804323151101395621122545946314012103348434303378797303887379269480406647464485747630502549403195062510610386694019734394687894431106087752001886740086743959060095258380977857813099507242698287773051235763504546663534627426359564009691900029132920612579981529765130089722321182245725619580944437290708662405667509838099722409643552505764915202674378993655716435976647048196806177667638016519845450821888157210140625474404221744195000318927854921894768575501230696197878025484015979729607358225865242430673900319585742946875419959185591633146715393433839204315486667084326613523700396180429889376171260005725545059640960388237629308773718623049775565252346519449219712758232823406987984939223293328856206365767494506033071921199275098267115357465227884328579673831719874072546244293949218411398735459156744656687121843360024457741465615010829203169912837567864234655067061225145587088840543030253160331646889076749002390558048176331540075939668133402460575248548569066558063882208163752415051903114066073105631972350510872698361229426427064475566059887494273524735644890822041763041676762294609541667102725141040346546351999529255784758277858321585293983552265508553673459728130376752602901614696675126880644537213121581391048937349395470089720924420523979019948928570309612248003410949086491056936353922274248368362056274534286339634742284265973758961478551320375469917214618477926733005994937066095007553022261668445511462549825099714703961036703197882196206025024437125679289071959877853788932188192529013669855248758519524658918273416056457017868885795901685086748899983642086647529479066220091403252657089682559429503243322530759351782305110510237274416675889382953068666600691775339114011402761372550936576290610494721682653509763127144149633342227435767782103847182418251356583943022606015492926602251257273540538907581183518182068364601138202959092049105290174839348912689224415347625388955582029323160605417149352408732397795017541721147003079573073571034582352675160847801012581519786943249857979180160079340099061038951455789167726337774814784469983811910300875160051080067802300141526109821911724428799182058703013620140526716529604531659399175796444593044680508526061394940017497591380627650086219123673527603751623050781915639308835897162057501597751819891186500119577239592954810217029686887947568784180582888500032166934604760683772615462359590206265474813940699410678590877060986911592408769878842658429836774859917956145036533714710456319606967926157466729308942055827013641510153676155236106447554295443996824843976776082987342786706654470264245073812156255857430442746138459053955463424297517128727776831130397811148110853600985211454947997777570721923822261983205906798648816375250777771910974600052255987445698979542731746936743106563907630260542622466070677783729996140705061912425943831510519154446800057475500236153263228292735311934230489782779806423531112368811224464924503168147480717718575205050080475380589510995149458133962424958158288165047927042884689897896665003023539215967832462958338418560004222812965761110821126077378311757735076985560989651501563003574394637890608531535143068803529813540617065331207296459956633136439548773354475183925914285633489791741839702773837885571194484314852639615140587524964832951635563372013019591567996714991915182151045833225368571720111324187400970011233416980339248085094834708652653995962353044419110314412335612050544824229504502894050308401222649228271004361021304111482067482921274939547612735769669246478524368847197931263907913276502309343700656630413334939564917805080383431188061279563242587080168431081907011706357250117320347854871980981830119050060116914933746918914503433003828550834457563121677771073543775171879840976119378678047017894981953232218634572389662999861100554176130665627025657342699569241796167798865717555745755315045466477979401924221010336349221709054683013748609303733759620564616122992948356668298398901643710301057590443257227424090054203795423592500047015190922373002843968445023667919804158500457879875835431042309127715027443809315845273952790633520637163190349009680893167466878999952478966657493220892964350636801056790772718467758007467028778482925638502909933418131638380248603768537918405317142716530446953850819541336498734853515970894846712331245468067717303064541755389218631226926450082442292762454057573222584260703814473540911362475519871645827955818909917014775807799028473956995680668425685400258105357930294751563269747022598553122609394366669069276158653366689812939662900854572160618193342202407517086927424561861545659927337535002965301749601225086781308528762753084208952917033036727452845814116505440556171898210689732570508198301982417257626031653866799097578618255529076084779840435623830836418168894185369713019482119382065229187619386556336172910141861556840437233115331227498922567578711038515622061491422927738916428853172892134008842937705079856452608828599756925050966744482183824163333581164246943417863727329580983877628900185830699956778388912329481569701278272725945082529772389895553565970155961107918944815572828899132611796392346986674185896480336080047987044617686243155803844926881173150750288748354091518172790544285825093794502514611988989147505131549767848480255761230092857682088317853637327775054328599987987468209706013778424599105697494610468552803618197271826337580438683188856797697134396290872819407688798572855823849516571484360024877470784679252138062185321278510191653229310848151210176654737565847526806729012069072901028143434885383338282683295884606012849040562201607476046348034813808111957455026706873754837840728942022050118596783956701619767597953761638890952928657716590376744047194247619336537765923409477383375925391311185006866631310276080174431642174966904749095070319339836398771751045887811356308631546605562497458178770156476264752695546689448934230439242018084831436831423108418094427939819735111723712675188797104636550657578196841825590597609497221115406791466456780539151989808953502489675310138527109007803976405332181254243211182243946204701960067592687430981412063504637390097727307574799526802512870811936381568121849581308994632694930437664820071483702652117026498891065773872375740209287297764140757725472028157468148388872191593994940546507550790299671782958542104539726201691218031746501414363723054499317278636557414596754666847800330069027653937125457857837732159530682188360407533493468063151856059215318361910980893680396195847907666047528208697216041003848080911133124399807981336991621694116501239008491303750370533887365044155595371572225202346383622498600669678594448169720034183943191652480949013301675947640995831228057819961203816660315527295289360177105439001440780719696698445057931146509886876624278011931945079968114203434256081231251256329942731732598030587435923086132123891544856283721609017961918171666417986030015362501428109756615816667235922089047138363729378525741660181217415018016518127262126087012548722591338742534556630629172075323179678460113218766394081322306967581125484584587952348961322782353175689528968036901037415786309421381138623747948425840450173055516748061673499316818636546088074815548734809444973734378098623122748453203547141521354913660069759676488903036341440121646694385034420863542821301196232296997200419384018098992850046497608798178361128241402302857677322032537105824589776894147591174914979425731746564030399508889617536500131262415183808356421840802933844882182767714460378420898216087956293043564353051867493540230466523864854520354298823333395497228175648269889057866044241773603087405927285322102183257915050189494905089923105120420650488919675552808852989976453053932943753746692476693839045717569052156496133018787123727435616237647336522987609659118461843086848771718951215413574244260736564541160777180340577238320032978763826499439196011426147331417679919429243405219897949516606776144841520319714525078841473341502154327363675365010286008596600151126345842635746407943057730321970039442199670353583984937566487860361030457510480374809763700382226941256053444197418721793521691965413382894704647602433537286965228885998060446321171933682673605548388157713699550519323249674893083888078477480366908957345691863438519253661270152966213436801918805991418515921117309625108421756984259642722207086089711573751015919628782133715990384067713344278180674743239294353358676215371366153295333522826183488707767750394679216084508442140130715128279935258809401884253489650620330363052193786572497347289107046281044539147122681650237612232053926471899519205254052024788244303918608515280994433993802738392078208064615580822330657796525820152382336958928376691310498832291524619738537438544370692390212353842466445446708857172579423968674826858116957519637926298092649563495410138308902174011052319970292755232724934054203350195957503531089992036987718217422583517776045659282369271403397902384175014410350087147278303024424475500874619998139306879824300950747617230145485551873220333702285894464425440502485694483190235616506232992133651133184892095181591671506376997022807076426448210235989965779062943751085932516706696503539331039177643240927323772912614046503441242906612365034633215296728530440157022695276042672350032483294261392385932817922748844230850512968998346704815155233060688033347692530293541041053114561615928468899502081817782290816924467461138474528474341326873143199776665904937326343701301974234587765445063460682931811776647760252977289851770037993211743920526361072063209714667808044726235940601583716960549610863767143614480347638582260471611312640984341756211183591677383954862118864714986569026846833110906487156504953403906324240851107927590282849517640074934136705424358314363284714996326055685580626231940503697755138589811290413199906276929019452280792771774393623372734779831007819888290231728835296072286983785771483696972369346644791642743034801299169163805523495390238163982664813564000010208851699662695082018825107412172082023020902362740140797574745663707414512421534355391299296032047317458631058024739617091185020015289623504807751193124613845738474474660449782844362457732777733360382720166147217258223939619004606038967109829971027580385591508940438069080346588512183187273403845947817157496013945833829648635231969424885449973981174674832429074061682247102629704372501411591116182253029702126136317410967476018411902596107571536851812308717517203220967899422832701531895148453889061979040865771868526845173163187935799439740982758022351120699818887950595410598979246567972836836240853701914347523598275392041653998645589598652027846039262321729922371331997874946053767454206900076798930673745442802452455503563166225247410407560622777047660580380264018424456039626806125499231419943658974924075690549001781844813611946808356375514197617228745136669031418474117631769963132936868578844193611298130194816030231646960736534525580135807955090561872781410048483404669024716231908235403401347905017882963025817872859212675058254324974760782729587095524014290717190709172355863175830767351862638966187220175434202197034588091066200152652924780139109557783571976832035943735779817308291573362781367514922124586077837543931439941361736483443946104812689359849677877028294052238484354771936720286741234204309180022471939183246476297981051196582664386991473066710438066147067644625256406380382133681792529033185366833569935906085101927548375668283663694563424389016643446184355481646634077136099385296474904589768909306658403162764893074471291831038817894384047090807478732101534772160506993050853503966228108013564286551457577206222346489889900863121834666274060171474631091009003324940987630466093818434673668884079846710447408613401153856472361129870208841535470696277951774083244300932985760029239657620516405748253991355448179534426585527594825279855408079977463215737670400244788029464686043915481598854455054255073423101688004357568847593074105402695295592549323415556380787839455440331489495240811749879400907760414468566031651648660363544277193082123510815221498518116428424279904121694050617053542938576004415537633656787069279835121068385238966903276658981359113179647142075984890385033913736127378302085515670930193659589028421273969233081545738190712942818028680471390897330049564305197177630621604294411951929531518353037234655381591236841950181231240592510559176734067883823849962450577004820238982385525461784114673215598694646798301517637473575607187439491889892298201440395003841186374593041455655152927904476657581764078604046154360177297668896603204125652008151308328278255661070686336539384194592399739747919609251398288275454931578577069989302869760343993648640068095725230205122601226188631337416735420700016946420164947072137725959063720383185124178030881480188457403537086908274101168736635078146821652486952217150941012501226889506862652080874390251469356866402722339646376812988098401029313304798024023528240223002379226661027125768480870131792199251155595976269522722360324479925525985121191916573805519513575280397616186204527739277978832728468447353188489808732975581484466181443351784507643341071424105976032045527970466905613999488256094636138022904735482619560806596427322365681854112233267241962459338092965409554237596411070272483503688167850734239223579671615198545302183698892595827083771370575018787181768828777238506622199788890615297829203757448204601140304090177363743597494212823224496778024829508824176093985419059349873685385741046177480301689150398305981068553418665370087897345550408935808081599512992888485221294329134318145023975365221692066260865872410168903133848984599157770185149355087578409752423616692064047680198591670225427798457466291539452145882113940489016947437592378938893816776659097215812090295582574790793460370434721939876264379360651534466240699132323493293816954965544098227771966662411772089490646230731884211842682005495776304952929370724950550048059832158305597470612204754901331589651767480507229773932547366451676707344901037304201064158904546758332826296116972234297546096294712681899209091676663435119221292349643592334616328077714251017957492961685327939482590572599773857344353472622845910096952744139863894586731071228332533701626094178641251621970024711811722796988273332592791736333232079560734138474966083805863550633958417110723204114000669913859216666026621673091787554173134624431911249886749482679808689200538878376159044877216674664604960361234104509579438133456494708574077601720804332725650279013696389791903625391244314783772272687651218174112064047814717381485715401734542400882400350767549425345475739662720582038453033460936717983133071205864239358550287072281211242957170769813964169309816127445616327302404628385593233040859044292719633473402567892240658365406423368632587578872001038596184579701460660785224939472940861427356102736901942539613091451613564740118054778028659773451770300011698838825465692977418984786793665498543283280597071167193821723855830426692909029065250700804370209467413959457372438230779822900034441695905984344112116057463012723818809803538473456778143712790888600786716843706726492250705223249676378756711851092998306901755227978198972100138965122644508617669091113557821239034416914252729629247413877236884235848491470446206563195563776652610024849831087049540332235753117390932970730699807346542231177814705184740965292618533741302216628724743447025496931328683411698682294304528322347394499405714784747968597848135801777586537139114827605862741167524113803812327248336175596206502513581411521335873890109379529088472445248735740259398040007067711137651319585298624379858602532334196640407620432933040694930571090839480844016764580488428796895756237363661630037315430767165855310316679449404989856601623265653447240016884225909441242543677693899613589244605700362163854085632709046325321183373578212067413033159565401672015351560020241148133247892756295774439428637510928550624401498834112838418028321113589072196073178232525530788086889603618427018836850513631756954031957483431225295223380500636845951341614483376183462571469227541539606175117401359571133183550878721620199392101147144793331752512027719651072276042695465681655581959601471042113199070763830124283526574452105596119271175597215808568659414150864101773658436705967711162446359040780549486522421922164232132468355126402159954241679877923625140938270904635315055075872300825660778685894794500982737804332595617019106201109928336531446279191002010079820357409793401976943596732586564974407994404104446946618095750766278463725940402519053532727278754196962285011874310093509285849807347313565813244338387314240142208452481198372506759242166395524547364029766776241755973224540961057979086777973539173461160816176421653650199385181591134735956851786580201337346923710146377136724554399920884303125555995572395101531994635220711905744794703539663683019815179444175580472716781047429761774437899215684346670400582494971067036414075035753860574402459225536045017294842903529293483987710805618472346249991513758942774546056439180067486955930113338137689240148161458032922611515100124841499030020591186930650193742420652034493263690159276018604133885040932781800251620684329042066190390692831515216200067211366962594821904696781703721490680216037225808979731047115727005832000933552276515444678998532630757435880641875174778948765834251915054546954058966438500089961268191375030509532910427215249691793561542661323499416970870945476614146834195675581189775209035288455321800248417921316918585725915505616284447211862709466959139843052005084157264332951116543017435505242515316836579641311477429504227049860333322756963080877656911319733332465259772046972226899745821670289206459774913591254190535837113044972545223882047568728057147824160358655008196181020177552305939496591508441727583889112132106763345869968771878978247330260203512463424444696915513730714129549253947448753881957764811355748791953163078716208679334361483977529349082495281003229868222542445399805550839732613098281256670131098569608516657877565827740299251194018276242634629618636838167060697036155976253405466164949697088537772307602328043495160260033208144934386981258418703366505831738898074214992163250109798530233561934290250966509899082683068488097282073548717335292455543044353336745775421441438525823928289816015507348527778854555647517092963275349740033249037059176598155758072582650748898256345915263282564768129972246522788829256901606090142189036302626688514822368354168229103898402612502983329038132805666132719652596179716541537873208761484207618354853153401688611414762137125343480718236170698074974204752467003626858743398662689874736923556182605823708923623724456509873300097605806037846442256405547077693021498520539367731266564289069897967256223883648553182707346917064837174604199947508352887479648119848905262363556415322284108688974398666157967398719129706353569254130538366969046735488592273767329399355265584851093069816793304953655436468399718697025519608139708680593338019789763728570960687256851408989936202107836523414329656086540699937924133763134350261134350785542305038681071464623972331010490704317819336928812549495968385115226620590302181820650793890176943884600508582251050903024232420043891468228157846101690116743409137055154621063569778614718035058975585374826351311975041687866502620239772211270477598215447452426068911721872192497101027925413140701039420176359191396289306742493352247614408467424943621415047023788112703698714523568500864530432258012359536142203879060168197022042419672678268755706808387985386422614418537698021562716683070018401237984019646394405637629661416268644930863206502364774268351852617746392976528663861199000044920960180487630617636845874387565948464382086916167916567354502886304231587629844837840323796586515357456169593001876039369299652970498422860713204991274472458473977601199336309075351290284125715349783870033968631780107419037126588788204633804061665071627459849047132455021543862653989513015411586887871742343498296419939632313195518203319791251599229151465292883812587926897522832363285141851469859997523516094023055103441722732735840297641200205919999768530287021194728771346837131523451758551658771882996195006615115031524854124949378537825785995625894107826499306608653379301984404768806148835852241918666460665706845958565356524703056478350348663580963515183746864341209550794875637610474872165575748006410310639832445291556667619442215635968477264872815056138382046690728699155129905492329454427314598859342988860429543389320877997679546903620919172450886375075872946110513561664366016878692852122711258393318391939057300032197018737290438264932116095585595286635647622919093609884549667512116402272468460013487607065024724272157392221649919387443833979426234611328573334867977181805984970680618707922884972469194933450723311102681034310427547247380384534843962185702436263742015430993284306402679915467352014981393696811489768693844924093081195528341066530535118481688106424492886246514348441191643641214663996354464014282938035137107183940497777592183015381550397309769639249884638778980673312332761068487906160320957219848561018030669596824323362734450106569812015345587592549494571521258716236142877146461404509772716415522105780861863835878781885649451617629951872111233580144980220476499846580901449718294832555726040204767792497728398058865089002771961583740720459747742286705843073315903585436524978041292435733003068935903266405034483905751612037716764062926555042096131114958678510146762995918450194224806333950833801364241237739810102252922878992795466099595539706154250772393180391515842723781317051247292932868363309302063844223451028557175551411271248740422111623389501654108565093884467242757613427831520558410062641312035187211884825784499903599231032337406357289815963724324859110903166075179717092061072129664884106465293216291580049231866547787976798244711812409704144459666298576551668368164898897616775478233194492967474000695448915889869194641841094106053556945241241023882574380494623810633485919664908763289175392064554462914555783435130372474248873208139187893426686876931733400302146695610196921894213667384978222779022339571010920181471195112395057593332949453296677048580956158230386328749330873090189434931946959851429935793717017246057266076678423601518889154247320534010743766130960344449240734618128105139232133054282729191357602536882473562541043306903878498910098076009719385536202626921221452594142410957959896854550745870841024602172331679844203057459011833806810570680729369277587272542834339382005150495972146069242706138446435989256220599511599621866092471373238601950757168530861620512400247017490930288797914061803431807950454312986337316016542977525369548056831124134490746075819746437271520316446571224212097929014647909485180395370947188942685084382974655207826751775863672261464345668921585544787207412141979567534752430163465461827278699743845293679915037588337649510392383160181064979116785570033930069048490067999882083945175728135551632494513015351723281364365970348922079318194728251749609685377626822807820352554002540269895447047706409114607053882009050292021210958261903171389300958772444343310096253395027368031520211660184547433925118086174517027478326356164538716522875379265516888713003397190915334839055741612558012928195983442136290753292147336762697311869735972204910060053874525040021252806339554798036758704910100546261839816821666350457585602261628978840217536091106280124315550374726909576148397692741761241708551049841990423875908710853719420147134958464287025029747642026745119848418769284978379524991297860471317919846303383467806682391448513399697029232965333194620733017202017241442577112177462642818055960942982876558847863687814642668019772619123161720392109589077032231613736123339277024308780412258533043617804797941325523583143846175527355477516223603548777710824226154987307271705776219095823941176325343456919555265664053314400278572271338794479385460958520922959319120101495660080001218546096077741113331420683876831483922855307747358834552313673287189524017233625629674064496596686666026388228499114021390779682287287757354823502816400916405511991884101036669444645268721743097514409818868694635763845982097330868527010665920096995242531465284503796427459575785599199747806383243150043430449255980168534768979194579166905928927811068402664895402900071647934949787778361725134862716370408325291199050106496469122492072530104297679296242450252444995062724915710391160556342981342228286354588795010024887531335360836374044540124393747905396938075959488245836420636390653625340584508109940620816720616898622732640439527713404065653877904597232522786249464371520208452226948982670753781570384330521903034411668852453497119754433167457638462527305374197474472386747216984266361681537536784571263908111827339362216494522771757520429735404126744702954332667194097203624565599406082868220238480185084971979583880918233301052125646443290889127500689776549879822413473348769157253955802821387123423933015218836417090340561611229322166227432345435593823557624237914794209733154863595168211108155008251249663559981263184502455861206962989544128942495916428139393861794029611771975107394575365561936977747498544720297567731743586106036063331304401359949426037105365516731448979652405042472626116751586338252495029404548824184216514651011331413245763600865029956615673936705100171408470072396253982226583722881019713448823680759769272738158152275363271103487375412592619113757811380879525700393934226073179001278865586423419709409667721080763581954563998740993101054757331182065594171262444474891179684764418549240573774599298115405711355914397432795169230273458724467567603138797923985028001934923109313721504224116218343414427794823730061657966178650694080814603625504701897756982666430483960038595549413469942056172894688314180833337335210181141586524223137369252349430037187945319914918570433346816210616356461330295153417953692835348946925189558312588454430074687768761945939355742426266540595767701086483784030449749997165085518304272141604535991479084073280172872736323712906917431387383987679754845473258550432349720001552454127018943715907557990347650312972319777136653422699182743526531085313338513648019017371405339705671304132922587709396381719539958776429539862036014234647145328217750572905352105222448183724895974834896902316155095219046552428712862089607308484708444435646854664189473607426669475736452708420621058340437234542595277431604322771223368040562968081735461377451410683667347168399982291402993500732462527266464927962038597106357136087649707101809481616804809742027082322421837169749202413579467973545894473757957001709071648542531568126573711936997987685223546006341442864857363116847347485914570711212841048759509438770021152413050423639011879372954137125628705303438598790919119783173831782251240891959254315794105532019433959641344421684633467463271268287034397867735546218109237742231435656556216450366901793956104968675458661700306332486712472187661298525669411551556275498397138815280086910841623968048138484833266698040981665845355573359361381383065279414567039354151169574378790707111025835881373835587415975286864937893884442329429137182081681403952858064010718268439216427671973556622194588592831977360434356494651949770865925621524285392788518611507172925029037521014019706670355730637028545121567486072817006883508697064705763894263147143014854272069989829522105211947924868238388298494100737721535899884450022498754684862919226792766935573596364821127774438671405732104377602602736446341429122403092330404645881760612437003188697437909758297308193467385907827909385019389799976410758366055888979825430529501281311660817956090067006421861497755028648860842249571799615279245358234544144907354140080595058880698129985187199481081101184999445559020531978091786093794850966703823893922550422260557654920160346045024244679975261987569777922068426539275719140922297215559901046839018731796547061769522528266102699112147313268268966476024916624242389458312523924930071932514834325953063205171295128844506943458479464035623295101759827191807013842282826258287065184434503066427078724875170535310129539232518718156037081052520127475101515242320407608333740593364826616578568654396107919434903453646202630224990503974543356466573132008719152168029898868843647134377046717677373577535326724814935069482017153674406552286892749332733198379210737699912309115547650228312847038061127061315410789570863462669746473110757426250326788462336610624756785555599573245610170478295829262863143787556754115443825739938895586027044406895152083891911746343537561933199407271925194954200006493564986862603690802911183188281522864505245185524241082889746001173854710606462376999529410624326494058104146542631579594055735455818398410683574223691845358016881771365897310232106092458065894270036716210540402264675757309097275368625880365278012594188267357114046528733748509547488836241505237145959118278304437709881585218658398752070994296319119499224814129760633609806672465772795806982445451723637691559698580257050243419712104876402877191560312191616107764938793624098701599579254665802470347027393855843683693460629864218716853191733097851017372934955149292984171335914012539599048752133907166835710513350958702015505505560206292487134874656038205037591790199163527683242298595642627093468047111071293689323012109302611162952111379064279367181094212760972663964660472448110574040371441525766648367708545884673265715175118061587343139790613828577980784869486934338711568857979936201546495261194097845718406454935288885971742609992050198465249708111251196828617131889400974646769062360873460350830472500507028347592107673564559177201343391488727121792134570422489936278282517946701470195684491794796546729002238434381643342743092906890211641880548935846729180821720406249739506053343498155817351286173452152250492434096743784115693495914963119885364925081760283726649295766758289845919061888850956696963593774931036956843270135309407185874049277246880355584676684880967331600520668121803048157949005526589481390294510778629331584726375257433761554974374166369274509013338198152718844519475311778511633159611022772590699485356370255507166533971571062297807972220415865897043490495251399223617765222778694631330045730643306937023116770893014587217385710323215653855524082136592180581606308401936465180852149438958003036718595016369832796002356409596817686877455951209062294545441772231926990921371208726792341854733885351272394971362428354411894386564232809790631883905100521040706467214492401049336366605954787656299276923385276504312923727202602047626359204516449796219225727895867083088247523366875364196837815377722863259279136193529756153934446211792826970061656205890318383523313373578657710563560614966116900009894358265204586241669256168406475097424157600373980154661641898605120512012682048492515199896525176909013393444866332383086664292177586160484703306518728829849046253281915380311117853070501987602760644445470552843401064726376823078217343073964876027837566964154318706666557290387169494453860423865700245125844383710209807710378911806985806363252480742980520040175960899274199250432220098860124000236594562922245518375532788612668858088821155115002082063256638678128568165317713551850284385025933921681058710284181130768726260682391188143691682766214381516099846530133241909307471740810653550290662769192619573673646518530833061615415731354578149942655021223094192384645702297258022272568513183311343550641948932542224076447838930995233810647650846065702657513035155910691240055330630663851174219765778910198522462138177158941848137126342775070697220285801130237187382749420038941827891627558662818029727151138496527791564717690264278225086513171192258809137836887982990626397909313256654917962624780738992834601089325265314434780540466935525693472869669882616385371948925103067133428976078071033818367408588325830579199455772216877155240081144690091788853064635116584342959618695716356436401114508684638475673876685411582114843933706801293303320714220792331103481746581783385480460103185106098762697446495724783657125940252868904109783847496926474012759848563070090790238013263662722668106564034718202794555964612143256809105677421112063503524238935375596267073438190234157895198692468011041266534670839808542839919235012145074874685488383535341648051796517881702434533823889111992365413271399401254362793520441854204317017982679338238941462338433146724003579627352846887744536843010047458462831070332161455867390559450708670327068641256481206719617288589344563198728632150704664969334223978916500963257571823763885731148957508196308425433598634938075063917043177731426034753528137559027701934934521033640543270463395975625667207661783352527883904778621928060664485241771304127221079094186764681526892236399773707480142868488325791221522832679996474717419748622620041437036578732201837088811459361856545426727713739578777560273281503585348546193297813986464993431324037681690547005499669353615209562475102336748725842652435691310981514384869891035517310642729106422781262308985192057963471812586578807513059749626581280704719325181139427336963420238713153716269275830025846068440823135952438590466841027454675507212580975457759528149938084272291635594354708224267090946438864484843373304180717618206023182585961755216219253108727518824193377226863344845689466395356632214944023277358034456329255921812128067629404760174690100861300319488737340277681691197018226009322940716365244090734613371240615582687790671518201461622273772319657666193717219922392208308001787762860731094782035840521758758786613174896654939510274384177571501256230130966212188066998947881967225454878874808463624296868746540134731179073812685205358056550279231907398817992033560058072886384928875108364254729535523264075511673072862579731045092171424595817036222055954665805998180356445178665324902151458472306981033581330393586199423756019009319420759481414013422813857239268530347622724877628197288822469757881974945879599073999825792981400813398099138783317430907163202274629134926975354002321866114084832361096104472695599304873439141853859804650781190313073099347429534568341215852894276333530108578841877760683535390037892864999494117033686722649695950931335984081344329486059662969916289479779449505919815111847134406279418939932974054794648641439745985587323627241368268180496409642305915117712509442805967631130577489232271772254715287655189969821888256103062632805838441903171403738704197012715446705509585649466592420849060512408052759284035586772519973547981766837641619943223708681638244717919204630658263038291332839820265330587748865583023685844182464638293487745949687016001076651255461662434858918926640274211804342083059484783815821301621315614432823643373238111408637450261330429896557487010807533509920074150664825530756261866123109724714053299197985420719051863063532171629662600616526733303515052928700133305047867501681927008867637196989134805861830061421085333763679061945309739642556924376961227230942592345696169777883558519553806085100242969473434541596994839465580173079158527998704912941134823501426763837442329967970750963046445907732975681819821693313116546314360140682907426719463277616690112359424761010985898557473839365404906902973501273224297717977634868306221766014174906525120050170586783350945274215693761474198509295979856862805180991758687352704839596292323726630093550876551228819702141132209598103969446695598265432452828719228117858437093092704263083553030072069379742227709121255483443924915063254688326268798888375417688069665338534210686589146614962953126877341007961914150751643584950055013695882407720986614190225479933451779382071954723372362481885289428409297453831041796550400160732324350752389548954891337209827670209179907883682394793581727846568558261005838293888086253055149929977907284771591674803888126608079145247144981718278440017154188117393401677901755434802778249440195484896393935210991535970010534024683686584715133187268158833481589214479829334289732793604790558008894159346003785784285408165025187176017958165655044637651937397216907053068540876190291150315853483579896017694769151130175878656180801815656068771946761921039888830232672900824009428465695378844533562500023649965144359677890529940060996838135608661151060556892539978925362411156666217064626375961686854554963478666382298910443587305763156936762094542132026902699146274014877530511470672641865108856207767804409507763608599525270418038003730995654223005015247763815374502531398711227943484028087467273502254030783282650496682354763625095267425332025255302507477854210564490660456441498296579483538282170682495429076246387869043014934586334998696007408546456761856703462457581431382447870784398558663672588220642430185039655872541168504481713266401645267456743995259595242710205416014573746207511671847876556620462966488391697035277634477185654544110545323713162205900063500666318095326012546621241603967584070844335252905552483664306300901458349791023715110065691012415270293221617266611439416770199497990498857690780143548835746914367135223676707361506758057186759747794634617010989178365819977186072476866127477170726910718485829850388803878534599248022315875015973126128006881969348833055908778618912413583084191522385795717900610992468059837220349811927216802703222128185241964963754608891021269451781956217219921970064729498329889105123787225918441182700201158673919564044681320991909869158199575103871311813859652591004898302805608953244342860223565365480862939431968163234653311488129876908164810119030258938894853138438326471179783964846490508311372933542362760494846001098300722692594927118072607262358345611412751224795516393080482978298959835637874107765213462049472916955261472931330377808850227217242558223805111232732274959340758848846075346408824120132636858275680721109796753489339438991476289560322441321802668480321157852913206333754990274661056581403039570681243748290400516408025129216225062698077852019676790294085891278157548177291841966892153903963806246134420415806474739811201699200306316842627166832511124436817037369831435117084452631633396880988033022631947367570676189211808207329552888644228138050832054173858924720380389040094601162681175884222050762564456324194260483636636887933157127878371844918494669347783122147095266605772772942061214408217870436496438983322833774825752625251186779702113667337715284812743881985454404999548741458875332101772345414473147272882846069404055357162201205983937127398711445473653882079211027744312958116749947589992289138715650092192416498192043817904786278090734944144887023415440954637783471003690338746510060330568170371433082334133526277408909363194849877794590088452002822053002178118617794850394918704680535680290882031771962905489667436796103144831461284131104348255849800334289701188173134044482695431929768926088328231618836571661521774515155358511469916269147872716479311858619146702221368866891964758491208601789456038955239078018832247734262820230290436875854032198021906695918257019737772087908754222473982430105701162631434089818536863765283603017981763643171013325088483698935567073219013218126370692683165974038570857275084501681364755942597476712148574414588140255169243884212060235460904437712544706505101416015779518419673057510292835909975203537878293897449415131394915504671581705475865663071343742027092727863803966160103103264319993461454474524114239728582512071730291412905487965511675650634397308708395501264207110350266376721646518431759193394325359599522015202462947857323065752055520291907839397870643810888557113147010016429377033373190439375483789191355701196105631472719807321187328777270261109794484451568330214170075438492434221693637983671578910679363030325346887977467961485762545373509879915496459183120033765269380459340723174515509007522844578108094665511677798408445041353794515960984640012719542662330112834990205687180138222622587540023147649409864831014594464017444072012507731201249419058487059056433049549375079900242275748123096228590157127238919941056003161315508283632413349469098124602830034007798105494473033080664518209980778698062451306301128818620591873617880668472137177778750078204301893116368667400158508467429869805168210467713980089778048071734991698212227580010537850596637410811123561049118965199787520098367469314538154046915890866030831645321198101272522885923138650110709144405267900651843438074594397257369744524092504631293297483799616682015410016646911482654340129346659580125757279780148525026232507074644697243424035758607658987959999942859724033202948837262812132396839405320306730028244967776212530386254050017926718179128890045185998984712543895865823598600792469509177023062898615858557718171286413859846034099065092286244956908059743320327776691851070036221058567265365482002619097922695094258685515209794679054312236434330061865559502703774338242788146014050617568986377777197529318511449467347655109038737703775761281994445691155753095505547046733990913930996751581228626106351468871473859046371959402111496636974986815784533343831281010961239647294441484560713604050764249211931641100147623204474776526346450137666819020797324539603319643519722979235486239573658357148121364805836586166113105432553320013352406048715720462120869080725629694539488532799795490221167943020538741856967744956189875879611119137916719712833870355577286723195883871821250493318428316256786531334946908243474898727326475111135097610679322457043966914056209179475879793858151400842537810276396304150927136173295078116888930352506843031152360219794535116958012053699137250536547223874862028783811527844367843991629400022274371043556943945156520560336495444710475460416717572936840259861147852050884002979675386589258348805361779717160688445690217889035998837553241157502161100570975172762642937929992040151246679862339304502608015952245493015645381039001777066367317083142707751317631202391775991392819260417255387699196316156071705967389405668055831384557466963222463667429640056900942992841603270612238698453791142470590948055957967628404320819592425113372123182157888711232686839893329023923549487727538577233194101838011902485815197415904154099145543114805263484760500050935806816251138166212059706969028373148836018057522791273807023935391937962029514806065390485362666715976229818212550302809792303269725476738651709479200738780209107645820730820952495108943435552940883474216357206730997291354655674673687816532508488599757261408326942423546193280428689602336778923172778063369232941420508675569041948898383273999612604834844622616730531833278080755449598774742961959491805073564064195706105768776710497650799015711714209604647131602473658020205437844936465663162961670310459796082225139729837600440225023380104235767439205637480177450671992153475823214858696919250161110588334259452450618854167808672629039418679779225936495384335954411234490268695498274683795704548532371354720786139815231964388346950128789360377463211321660338737395564120028498284173081766722886161753563751387814091823879307734554700961556167495492679720445583010000857643732865209794648845473041318063303233273683103190534986266808216919440735088310821072874695463613147046182155541028269080096804324816136530112848740416574856362066203347274864207812695316294556346947074616178583818518589623251617456100739916607011089246815111390252609847689875829104288893193503676614224134280477883071700151564620595968661252848653116452556160174961398320858660998396572599970247875609582100629079521995153301153400112226367675366084620428926905464763847940355146279105164006705580077451767699183492639556997698012565668346917103781059746559060030910127769175366455524274769161471386278528468533746036454782803176694995020487504848416681747139903000860900361072512564202295235946794708105591652234370965818641720296696141699962029933354612094369269602085520738666745125798570906888923159372456211615147530257376313695221268610774720888537157234026794185096477424252655314777598417724738995745591331706071341014124675901413925340003129284273364692062281831852086675210842823574781525095207304987013334886517787521483521826267564661687363862371474706143628341420963488141301580107475085745892614210231648490172215449264347334042338521761558100381720320781036030342941972074475908393662326159774311552885108337852602018493450521965271006200655551873849978072316242412563636405411818966413689756386257244512526323567404430270737991324045424031965166232693551093764740808526027081292174413866860230764224444272728378098924062121861134798482672759846440305008428746606446008573499834391948461647307093772697790241325565012526677257168854762511989533989680894889437752764600861831613201257153870285186489788335609433768690274171992287792740725719974364845842764788679189538796964134233890370177390668765973108441369921602027499192920891800311828894778243936121013757706828732609897308572556656125227953692468685767249563944716556362992213052653112662746945179759046683644990375853690227327024807847831389804971888369226694868161569678039199490804940505426604085992587677696531070617026600920971984510743788390367031144950531222676289234365547394321641853157916652410511593953114639217329389910473610909970203034503191670858014915236079006719448386049109282129886394074388213920281598068212300847033120169499198548791445865744363468041322740996455314767234241635706282833205869030732741933390240773657958542834038171078169321769524584903131358850780935416170879052221042823879386750645025925917660574685884747539029903988915034447682136122073730877521030674477030831192119305318977822427925941808654013530441010461206450827826633350657338509864167915644355883180927402206913362538974600183020419219473735921757765126139819608559997286844422974770273553077100595202794668989810317130979154745286168950128295846894520360512713793762623560659044753091590015392364945795713794729730936691121234328353162945720567414437644572582239108827001322519909894069225614167852079199231061693541796620612721085381877307617544764666625242227380764317928941133238852341542464290346970023075845856079801671935680301105566186053273380444378568806875147236264302894990276611969063897616063065075461448155849440839947867003626015577961388910148210611202284867555659318158174204704219765621574111670693288968883755759170911084250980652730291699586597745790499041994467672048879180758949132611115217507918052712651053323810594018192185844896376893904062317150959794766841541186643689976798870595097145063486564859337117355946344996115868791487850838164663039440355959688192037840523372720864047462963309261896097553168043731332574980443992655551869760623002335578346223799254910842379108365063089903265934014363192378856985093473736323227878349057997500103497011972200373810414200812537948419305244027872223784003538035601991362527821496188956909543731738115713931522295265686482766619474781949636940962661706195446338468919415212797364177016808224094400277554062439049478551833388840844234977599088161879514200536615916441688486809067437970518825835533873823196186141224218679454635866193700368590923134012816874167374825365135164969772001791292960762369236697418908300865861023182463343155328146210587304195008059712691320348386819010324691458062566785301058151468686396894911289818065014740249797638628643260107964421508595050854002522770621220666498186196211744200759686168384861598070360889179555280259820376613901727076835894040475943163581667221357213980577359733428669217649217276887607521981970068454321803341478814721279935431371688801643256877417888753421133888737109626636504924893370140645321113732302189255763906432791983284288548470546533879317130017279897686687598931012657800456488151038268278419223381810496912188947721551603451471577903702631908067692535031937858610191750167795609647982042412382818238575248477246401713211319974363220648736130735261368275154220557103282228872154190313142089547963314934293553681268619554509945357204718640190220993325808597691168112742067072381072210233593354924265071139116503343790465396339505067975522095746562861282117294474345784382473218919342205804144223120141576970109749074653564577106226404396846237957945660146944720927889809061967376757825860728197821782217283626526600821992216828213390293235558202299703712213836222123312935437512322745810169235517719820324007733705986875634703868365229108613054977739382765188906833889920752982960272062443255294414582979292443298408943492919317477339042121761551253614904922331989868231470513068037284695351140753561947710575372012514983347473868689697513618609804236004517045826939395064481749528811835154300568541058314324442441757976763554658826270999341406863998475957692330934027234157207815564310752328191776700344081022479901598466277246291414553491248212513877086992559261034139550979919749260679433967940468239328430329332838411803141360113322389496497105979770769278807254027549929667197207057892049312371812575989260287977887010597268317975457737474858073411208148884073871261561274068824828700401999554495344711028622858069016572650390189457402009736686070414908642848319359248745397432592030253230815757865015670559849076313492821907929003110811352182265956053671122662156222474631292776667939940420665129096762462547277869113253721821750413971124691500876244439679083054956262204224469367146251743845231512591183747122140441624806746616121349621977926248251043204643532864541467627942569132390508449408292064305022041174798832761450093079817240060352176431033860330081493148012520615063495556790442481838433072530777936453575657172324442201312088777729436348945707413554215429956708912620652114136423220187463300711568483284221613699232946231015869549797766442610182085295424233580885470850207619728889870729136017371377002619043771773342277947555203689357382082994766493509058027754642758143670987425650385681989428032865713454981546500842072986106773321451819876066839236898147846525671560873825248836252435814594894814458311417963357796904151714388207913838437251949095910819626658648211646518590937716280479066185616236151338758609735689563709459571227387146625929311711901976694304440687337610960997870885688878302555307586623188206468255196239010576667783975623687974141966252915458318461359109478353329262624109138490516762377484006888774397841579223976884221634860864803781401016150025743607006437723453344982720228194802604525586615794591953899127239652496778440195541823446020560706826621083671246404401663347292387330047926674445140752590186127630354494241687035992226787239212146823420572668452034994033898559486663615343936618311552700620651298586381977576346310364618789765908370137839526834037149146717175599149265632109713588103595583293234189271317609379442583513413339411480227935224994715178962442541347759473362832255579409763638521795493536393609028724415226334232842324215738560601490691142719129297544432241305057499006018858568613178872994581218663761083669290039913652784258119350705389182769014036054736780345765229454768073946116814546021553421435510703901400377216269449823806290235642432316835566929523169373224488704081803557577681385001161480311985736836661385921703204654401917288044608672922968506803420225316053560338341632758794409808422083717947085540424316811333222634983435348223121546903657536460119244275690261729697810310999188960257203817922493204932618189900171398518502206127215637518097778851837822898501380799423745400817214819884895707643699069559927009445522935692761291400291063605541718401738822616321200098640184534630053377204227348990845479331833123389754832178193930057716257965404051575745193155239395696398900696513410241690316007398251686940204594973952724757106519459946161774814903098671715580442647683888816600372176231014820104953559031691002046825709028352280344011324241400694449309692137531510832725396655061050325066437231567284512479006678256006868500011148494260264168501048314982551163151768821531229538137222360364387819197584149048695763043754597808498916030444438539957891757763106282146482195036132612506087635121676607238901337995427896517653149743450589616764678175176216381071385286124056239860957641819246620024348416242044511440308976006428055728006378057269830728372486703839973202517519916402745189898965310863643522565780806620422549520154745521362211588223891623810408347438962218021875878253663929124771489550118182866422064866599715890399029746028070833771391966811553900496517432170205972380080919478021657646675969284244342752081728446954340603720269889270202421556989707591434031619599509319371029102507413927053750075034922521370545937910791558039703017510803266815917826504430489490085142474318085791748551922613016131985563636391139048322659127927099024795738873499756088084143152074634919843402115939767885250091068598881084254827098315212079823544938570095103880068519357907333830498846119453688078473824268441261340270567813875164453033367092062971030530475482100086264702267237468993722059126387280668760243957768227996029638941252525846639882531389739121152284304577612540460861849191911403856685402927762615385763806116942267519587714104114586440723147289829228592852448478516732280743342399971151227699469251845405071742602386043266217923596284242113158287615070867278863721680668955242704396694128266263879177150461159310820945351823252271839846603390369646835083741656825254528768681474051247788383707834248863509463517011369709547558083552572608667745864303572614385684630398282083621102985274832741028147007321176893108330534992141810446313479725163669009720431260570414341775119366268669378071838791493188097271757037103751785380774886775653508964967106974662703673952891201503637486731964248555240532816935142306423605434928662827126862157755315838112615913585275600870524015137322331539921195069821105232184888173159441839940972412538145612027832135828745296972004235175830839067854230093706533527777633437445307079517666378841719354891690602625558409910340123618160359172149536710049316994551052343836741192678794197073982081471553932780399663962323970492032685736551588625893272773058232076132347730096048999098238839383399138922875994865235797677970939781765147703010811177551466123162974519846006760483837451866858534231034660435604278923144084495542211292105294849630938698373232357560640333939517154392721576752109927796477828017027235497537845726275457351380844576157193285428382235277810345079832631057351856242206036075262254302026911959085558111624768722465679069451823441580730087341774924684489873609527707338720120161582669905357855638039011661610057757305105177978738428298654528466398025605521194773328522899513723820095442873266880475954598382037685073368100552006264311081404451911180528303968596945611743620960063126375032701475972806463708991230732571381297112156144199243328558139734289554480257640376809512516403071575281932347497699762720568495425705211416828185819241411053990531364904027763892742323388557673081026684999455533516167667309533426064711966086915062669219148146706183574587091115824041465506876626907521047258781739950978471999465755703096475345356708394986719679144535512159153123587163015335776772092326701843789822104554643171149976670554508868906146240724908246528623053693559560118414062613806586737237768244871389304718785906708311664419582526796197154583474847892231782391606718496922963663499913078428899423572150952678746362320191287627584584016621555459096723203997532441245488675062306143373903410958169434512564424048529824166834389889806140717159366638321074985408039182080710814122446564424095351904868547463182084132183823794190713289193947193168206295628588759888240534095497126340564508440954251283302941575899511180037596726300797533021882262063310507917447788435217446518470792300031155828281480806175606402556515574412814576684201706102568520041814526677594251602160782829207931796179516032712202837162055050888823672908138542690323546600508794967181157902963531795536712041087135471812714944898302223540911986713812609195764667611745450890604082022272201351675384521003970389017760855288058435312744898397701394510695520475517019519333167934107999358407394866272377894577530428673264637897427709509610503697193110230316539622086747032277439688046349662153283150477227177384440117978166370242694089286709568028032829901863009986528246771879800513917912086792657135454018617493240545204450742391358716037903209354682897365507296602113931109257724298303209513054912198486325144436476988755617633504416453641646934099652929974327071729968468171814898517841005235602629501990786602631061730581446795228093661113759479792579853591916421820229114990770505437980284771588577162591300676215902708985771673679795973336210235712557391127142498105704228087021682425722534008979244859270492042807798367188988069127945503323740562786838694520741191279067113003652859723303282318201464874269939968779282559414098267465410354051764935998922381601928290659557626837645961299945386333007565618421434147838046129647958076163972039479539129257834612757426415534345050540211494022242284021674029939692500087462547730151483387035562789583449910524550048836516049356835863609507025349885447850920841268443303864502980803733009765768172336365424292238491268039626539143944351483597907663594221332714731194675149672308976694898759865357900071474517732796313722981257586762586595046646432304335107024869581510617881599211272153167967946768504015885752984687967468572843672677652846770548935484379975966383866792890254111904539516094915123837861379249725496850774896804295919274684002455384831532172281855546050964768772766249970015336647336649718524305709184132553201587016378967178448823474295861787423277835894036957728241240962463689538550522117327321944529415275726370100310403853306738254184257840974722479228001436025376257641607804484234151701981558022628027119572224994525187837598492088604494468936948226082458214117309164283454608332211033249120631023858852195248564864304577157609612434828206749314577273618587844234350384737679789630843414118363206443247460105805390154619712368209580502348871799582673287077280467285301702761221461218812044615340592162913798615377530594529112164892729632584083374039959427469113643447948630033250573340199697900982852917500385365857608290709001388251043719880300492972238951693763739511912049535075351624471707919863578994609795132059803567358623500566465867668469192224557728130848139535025360712660568504168649386870931066932030214345889864426467495004972830774822566175822366118048551587422917176505046697099558710358676908222427241626786206490549538319043268561418951200901099148591576522572336537641335062587329985668557094300146074267701751472875688467647804451527078250451249088474864877936021298573621832919994839070779890388840952552975292502759643222193515189895267532416427388968574950623144319810373646358237476904252179860164740581277366546799758629357313015089109398457596018665956512128944492030820830865661408003032205018124157610839284665334527103583664002266788910902158239674544334183168854738933436501887874214080318894343154433737719277632713910605718869246323732076329500003003835464865533876578464546455226397984228143578233461950457084933835007826004148486815005958589776362468643986933535329048715724273531970435338369696603017667571065816240459834430768176979799183593181996511660195326584150754751898544585224459163282555039497016673358876178365153411721468120053558025245825442299868250593708787614375925151394618382791964516161244022877128787655400964702380661883667347087885775587282723082318947891740725382907616461588200002289204548743979966248281750054471532455748709262112315169558236359798002007583012338333146960780511340410858614943829410889284613443474852312118711635476105276624910496418704101087728479633634131224476033891898675647371538938492925708295061484447860847687080807979615909608446933101308782123130057846434012245882617925871799072822457153086918237121394446009375727477521570188920648009067855399041838431248956477310473333405004125817851066780366824243761161485427860466406986519792944621568401624918994884442791675262706640448463946541228684655896206623576438676306706917440243885786791765737906611848129792895707843251495890364053387642200164485221423060994745393004528966186542792655442192776174729179894024438148587491843184745028624168160750064729759049841426863314537299164569296326855787219152194369220681568784988486078884178998935069111631080775381279429446845880878273380119638616586097365451253311931051855729320256944864898466163974501496034951375591055233277836980644527406620168140424107244798902206187653533689754075953669459496984766644386198729767677014158793341831388227563434395154038668223948382369200187558346817361096489901984555669927430145166286825477763609467218065917950151063573010744141831528941105246915130210904691405238894284848466849089835325061972684543330529453947384907321173838872971356077146416323781054858941506036590129431641769495396136625128020918904646268697065164844724164693145973329116515661979513935056129511788782491313141759060130414768537752336873942631345226805654549033830592288508536149933823862340544913377951865955733569426993868410521478610964462594132583923294963423542795912839381401603428934901585704702182882371963452670860930353122894028775714977106154915766656872282964009989816155981734163425642213824311931281799223522741678958494334908995761249605127121059279968130064823986862279919198560924603294985496535189434873237932272225314076730484711290875528239182717762739237929520116374842289718289404206498710330587089941807540847943455829518202673241824169887904894170024799474655184725341573021866351083207908101893098630837184655357554219115498208117968237354540712881650241481513000317547198355060471075530669632152731238174491699823541792018482851349704793996722119692674681149544768140113077477966406758681380807784694620711380566338894791649736224227928476231363527738823612071047173519621832411376147552442761767752337122658976118589815567227210153358284280834827014731465463395126559631740316110584709008617461010023519316530282474246130029179973996646325166097853185178674445517449192836079512043339708341734563305829413149979580039793180632559172234404094949001394434546942583982314981494347209666095498097238247130763494446375591725306641029835344551576931532575465652363462809656440466451760640363332941891296413597451947951322999920133414040775115555138919052749765003634554609386417114277077263698452413127777142777562434528657504631740522973890841954086704092664775196240158752743889089996210478329735532238244890207325351593697353231317467473916335439845265319145496503497601063502537805658849391809571651962332448893714651677407274192972839827175404337962402377920504667143403519223363714332428160072506863781985279559558019090270474781099211622305548796212527894971067278134407119664619565641125802765215925432437276565073894688175606996555876846408739610057062020006599324494502155619797308724045760613900089775257144337149595990498567361914902372869851083712256042103088663907734184328500679211051205295318292151175518728145031111090189478479160182914239709285112555894182286468572186139390449586709180568085339963342050095405934779056459814965718732200205026100297818358458385986503202041105906867947554385119044962943662052678769051661126616789836177101302796763974244146641607844995170130115571394647779587803540666426325175639920707786254689601100225655695165614734875408878344577374961382741550747227930830470765430294971402189793008404334472959944629220078778197823563480271710279957023677371759166643597146265243800287205430813035438075087140185794948303021911606630499482016684820193656582265981554373521281534007815506367980636836993712210294191068156762233292209056622221238756269504445233153740720790403044647409161815945268079417345628986287290575481755844716469091156087275080829375178672594315601372487191653329732594640583621642151826905238156389296054138468243142123153912600048894880712147107897405783216769412795034624116170659740030540443171082786302634781172050656525212572952428164243190003135208177753446867912045757303927828869410543989869339921492578253099043820357296128593756111310193014083183966332338344447685137255983869363739831076524243680322525066371469549659423580928284025192771764925589580611250388912122601530070679413872809144065695767467270683740016119559980239498354180949906561610580729714237583919070711212060236834965469991793893002242988418148811619424836229707841688057012107333796767333407506096297561307542370760947220937940052064669445089864570679297867247846020358487645940026724744113699231461699003611678328992867958118291356162225225504634193916393126137145537804808870119666676903787930562076392568280392542986801645209865938441453444948992726887364205984497204253866944512501504668338486077094417480204657446777120603545179602965087503023516372338570836694200230412502762089824911683073649640545048553153268288868064150259306923095042070090779120465903316003564488083958063931781038547064557225646578771905156499538757868319350157720831032904053166718302973556951074319929366637944571580533426477394368338364187131154279817812304063377219038079711229636897843186524786107334021443574969480829077312175927354097207119029611660079525298587637386024575922286232875488135963450039877097099605922350823438337167507002572952967880277721765729349012902415116963038929990868523413151006103822821697532975166600319119380068070751563171990611366778690193079369363902442080683744485486588679867533063334832725775876701874419309262649364813710384067740805590828735245677866767326250208091233318841262115762247233080675561989504817500454391248754059255761140056094755008200033216779191320701975403557238034152381131577601202530870005689504470021877604079162668494155018197024364446591712921270229587429762253951620511148136895306181098006269378908725883419167838838632950855229169861331552638681037937525751929218583948632604769842743916654010158917859706496190226786491450500254882504517948405818265700857328728722178996938704876866550350791739885770133136449352347778986206855516316223048203001014071706043460643882544186878161078391007929757773824752649197928772453302042875459904578983114718032082191063657609565186444710238467706876300847422756664714791795378290438981137818356978885400063038021450818023889380157464724321359979044327196563796961754004091603989463873870308797704298108537134769367999796206904098865403111282641968095802078121474682870581287163640463144514065319190317233930689559589656107973707597696880652556855171310922100256525737608764654991159321508194960348712072818586722981360558831216535624436777729193524504749654682947060014514606017433722776874992940912296846030717172541983892843992844407001530300296166092918055370715449263639007692170149748368624333744978846394314755191012020380230390286778393126962437169032080677501523279205232784922547042033567006306479416668114989783852439960719454982132713765275667287121248097320107701263327254985804673040957751150616680416679883913060074133565483041929205917297842077781585211955722952313433947937514323393861298288982305603786673076126552871877631059792300563875894688694093512485746638342319660268461645750057154739997636417651308526022989864557824181050951260308342847363603212917126532524814950430339872138191947048103260307546157584109985008922108101524078540252486801458406967010271270892251104676361597548312999062446564048539848709884092108802228465267065865594539696332057560166973101615102850429913444291967993950564616905096857678577648940666230402771632157360498999847090648896681118425589131756535762574785066411767397655201875775202094638481797959403612729611398338886209994649427784310745064918360419000467422132803287734987249338316911775028612899186696942771487080095957073962278753384769222061750296633318646520316168114816220582575306600010839176634360856828594131438703064992951755679508701722605845940219382686623534753268317660811524591330528121582687515181010851790325723725260176414238979001890244536013047864868696202802662149216334976956199472480504972244050236709402316057303309632685372571859713688069446668727748712175370229081128900941927876561416282226625420554626088529810582076826580093251227410267599358440485373181315812513170806747392934439350224046445599583146909084537969896173536837442148808952939251606568735827260643545622630893992847821529942810377926416165531962256436750515865504561729533205498361743015232200601236335826652114440197567437773652562779762436158247570279856595234727131436748532888091458050404641666606758340222046338377781090952254580820938060954832298273279454277817883858951769504524382785176681933904670080978175757007089871756078956805708871217101279250610850752904863845925427272493994618692114096000752647569128592177190406430762287610263665707264474840121899635641985422041090952737629847821257261283519483500643554104319126442499890782497676142863177544370742983872631832295092238278836312580787426818483484109224992707823243330906764046216036326200789727390433406447015432815974185169774367711292055997530846043618070531541041368548954306400540236412302474946770907243257258660211754099970358253412365570296683556664681825872796046415224101127757138840701313908764897497948935580158648969576113259389115205816679045085581554499958953737942278506517126983846841411076548331512001248774401379567336392591680652895558272786124498084323062806748744271149701485482125024782950591175074038394905942209475923875176789720052414512103407971270293446881119215249569863451009731981690350610398170799190779146911816429578439569800326916784584147763524104916498224107277993892297137621152870790236864325926230587370249693710103958801918871067474721384990433588010742855508809102802032272721637571932607601969138676396032603888733120141885286486243168528564211685415655224946425073889887822052448879191930289167725754767189385934468517139994526801675610222026543129548646009403701504915207635084174788785625291088035786183431798749216719980707090974894830260766494907422498354522001397381938514894191487942123156671883022594019621513328838091567056880056778304634549847355518269586414522267940175313771021189672868472109263017189548825896885771450338834777135859606676179868309219944860928746819983336401670842916074700415049675281965817451810744618940144048799857960409511470240672566432538005475910437210145325162283410225489766543480915447739079642046287480495960161052585593196658698904315372524122927735677772305442782828736999828407986057701806913806468134453217007320658992212226558352019374453419734571276403064347390063426140791653838879952715322498369310767639156362083756440424440123615202245787783137481265752217819008681050060457408016857763263089968190194748769434454955897475738499665212449416214092267208418894511754436095572695839301340424739538937039780594229031340414159245675562313361052674555588222285675282296577081756960565836239386961228166568801393015980949685290609200891801165345264106413146044299728450889647830836297915190092870191100843061618317530724928707477601072716248481527384962715973829747302953030694747711995184143046895025420575314734078364916540374462867846760818404835631868187809112459889768532404295022055344705553303562220818723997206084836266991430370216885126861399132638674509477145952764795995534593727981779869204438801758447253161784493102441309920504856573978428578906505076025472889270781592829345227449449357905821286218750008688204928457798765474178546970342577720925524125221319321320687075145335957439621671683952211881685620166918385176887617322626693045422334989307385122637234210319431941996184141060740557840197034553291560873915353711291409645009525700867157497046041906377546868746680676229583247576331241968936945534198511440920811986085735758714519095273286893449307179118217957533069398838099995171814016920628434129339599928701546418596374625406506158222505306182668160071176249540068429391505339871027972058172258394906455600021580562540115928453130039027932757430818364848943817043718400386844395655219853012194446904671235604935193679574494721388935523334731936561489027122297601740531402463426984525893785816491852188861125826108351188000728558180026987991920165995128624144339147932264722589701496283141416355882099927922530517302649814651681911209558166175271402353758446631594883366198331739943290440883727969706353402041400202970228700406954537658185147217482587347623149051204670036223542474907990964777492723910225940327449518980274773652523132021573875399592674512141597971115796182933819844239846848253363841030832127344144907478321352978081652322814350950412398325087007645677178522116733836032194043342223017179155479507206089492714381033260019610925663035272246936078362695430118891946661270813030781894432070067938456987361478232379347871990192123965883494509705303810938141838477227200619199118149621145384197944615382792436990765755084198707949575234002292287407523517768984107912378713197048739528553068725575949989557887465681936177645967967265713447465635509369512384443270691243173012773740653314202397939713832218347929670161930378881520736226225882290576757024626154065814821100508048700186022212170220897835888935250730136035233356861550858919996995622312114804446449085361365100768931732005099415375207079105784077565237367443253583806397659725987311388187489349693987110590531275722766442892647573816928517882993072192527228464280085740907375755438432550001937706062522657214301625705278248359144564158294504970930163813881929056699061407932649225123442098941541735693110645399902403621727518792731649987271997808991827032401665444671247635446340478632837971314513225206034211829818511756689177241852975765035002005054380075850064631005927364420579879322494147272948796030350522710408155350812412270363256830882071613047189892610901579096806542717985232141919263439369192348613993000178899312312172528758912194272037692469154633134484715574674568665291770517329095568741227606121561093098621213114559832754753841161012662130209913763839293149120555274575216046109711600463935830767583246187789556940619508121597494024277646697054855001360743676362111325975636626103919860449595699262822223815795016071222426975373667656571339544038874769155854350901057670753851599171657544146113717057671372324959747090968714289359046527421281657133568997797266979457140503602194695824271067912686111481029295952271414915437733186619869336071699209413165693346246286045134158897172509800362678357024345052253423314300598786328565135093938934815307666926603970964268666753094982535222352512057035574091314712628297579459938466124838022209903620385744590345145682826090746657359385019169601334930507700406791783912609154665427983147292446075428468619484036622330641719785829201286745496879506949223073704309068797085893499231336903905226153942043573123361007500997478142342191905677176474591202983717612984054665688475377205940064649502853496374216903556654290764759962760728565123344010153659469253060316843305984236280993151060756596495199952675828551923161286180463757186406591312698402137858101448117162961903949248918346621150511254519268957563863494105856542540631871555672949004179459222152787933307478381957067704999318135214450012715780208525925132344339964687607819636202284051170554397696924299651571659870630049544621948966527760344406767609183945909465293224754597495846389584560802026283515923234285099895369987210148781027500232865335220960745242791696603938508323523798476739081176852682272550045592218171053208412968848948403902626161035165119476286541472144276078066631648965663081471175487621136994648271671323684712746484990928525030077522304209181508753866381612281888861283287386738683391481233061890657550778365384026218578980766261709550223441915129758239241777101627936629585754816580648896508161811043163243734465436545881137847760987280353406144755021980191467467277290989804402809513372175405270033129316963653011059362658447596458980712888413594435583462744347587859445528385526394220395710894950861764838791398317376773629982183818457852770099770227584508951290913823727544522860840071214963635555427558922437988254743172893696906420748303571232066603479477127597425837912437128401205180774657078080785885629896037986660941603281780755823439731736304171481485156912942015145221076590370504568453824333761833684613633344208856006229441479049628439928874187100282983210762884607834034566722073835272582843584275556281586326835801645852607713215715502730480238887417263807042273859985527549348135083360378388515690067853172020944888965977524450130284466049186749060182356216333390240037282326123679139026155722755170880588120853451648695086160999577516467717096539814051842494367468853860493042115803095999543345158910056923063150852348436974319722641039354073351104054436574175307564177953237126171173349668358165899612205840889631073183519577483726452590987948338995141092443843105504314508393068746684107277458981523724248563220912856722069047999067631955839990195354665515587283346186205135659279027287688441945762808394091472955454920549269687235868109933690580649351746107039006182118790739951026921834607248669017718677298211627228165101594094912789791532834742874425801099894893647648151575324057651279507048992992997431311004962674384905458386978227726136345808341918934040608749258943184013149887166415883763185769354624121837967221021149220180189888624394048088398643088316809334614211076114254330545769768020489519429398721395763410242886805726077070609108718477738093002033746156839226807442156990049342210800849903274369292114027724331008981405564736898371189395567978652764201405928264473202426941202752403561597380829248617216465262401267559401687207284095118448732353567841993495534573587014772907305087433301649847254731676022806977342392825305967580510794226156853058998283201028532112250227189227082439587805257824803885154459546197521011781477158511952430521941863402433072480982867557626107112082478039536339117855030980304456721115191558947499319663850350223333201596269277373297790188320650521075972996122738593790657878678221223709159848079036798618838522788676677715377834309870682522004294896661194179630847953148601468073119507656306430807224142820915441173144355507041782708935249656196704761783149926342333710680435181798932133971252542401823429146781590488777498906182275688113864914169462754297436828927792852893757501234503767142348185398825030171544163878341274216451233006542111965674299625469044240773094130445234635826074523220815882712016185611830743127037609206832580933547815888746655324964433367624682149994793012908428801566216870691107949853164433607778580201489463683376750204966327567926571194536066202255061985421719571714386972889248144701725147414756421424898428282025994181805994170502306818935632517519987119093605170573243486238361776803952249640992806644344290640287709782665975584891495128976634709923950142754446155096715360047986459228625888483477467406034128721245413041511496539196960279490083205304872920161853666379050428002314031612328491793175592479733466646785136912059464436526434196300666468873701091927325606890208225620773755569425863180133844699624911078447883146690142410971704007819871362683444685375567975762680041309484759305156428258561039491689000177035897915835365379204446541673029127054396180277565594948757125518838969622379903875512672696604455545512085923643554741698298560368420126158624947476241784809291456453074393793642883105250224217985463223232537181510762663007485953533365268189674440687092423665925306628967533466006766307970767664022015325864341630305465118916100928930343853312354300135417565819076546350253328699252662951476940203335241403453554688369061486429534754251245265870943147385724374850628973461118844776231245176433607359474486685796642984539271912745690128929475524142055687694396956342665560365222090873432002704874135626221127183911548349151934486904088002190718933381538216842135721427117739171837154165908674982246652782387113914502862757454522387485091436743817362196064902865545589941905210178126743745886259743828116885370847462906638079752497652250980943004938763977862456085452671841487401422096943173932873891945867168770126316912562279068533838950302891308822359293667692552394260880342413884597728013860009539342969917437478902742159635974096535132330957182457639038542048162055095280039901471153940091492537022502015026542454699874306269622770065895655847753021065676136499127357893254592950056233736837643246284167795200551056442712724993288999406322553809584741727809293857580626436173928194364594894441626135933501170405676584174440080095522359180146085749392500935373837736917216748438967298660525688035672294049317997646480220739808462143781188348880351657263344454782190800540857140056186028034208909548662786015428248150875156607717531201781122455676503866491611059295535586308840935229630675122830533928096730519143283017555238701912880600190612269379687365338564387433856307861192847247309208839591881022585701082437989760585664190793499710167257816861573141085004571279896574369519609986363109868543105113225860451789524224480919024154644994969441356712161885126130773183244381689039926336487515150428461948978848004077443914202580217557862719401240421163273005452400097928971555739737918840781156114376818500818875715554330856103637824636688775436158300831729795109048042362634871135957218847222733183686161215292008037459398637398060458999648380286776771162199313417362938200818222672935727009093792128440406118052523731419744052400597184299657308447693032771649832181507266741420183299431247469682746867056103665363882503527972301142111949564187374800347459819203210244336779718363541955854308469805165491154262874509533806283915648218423530391139507322072551755872342822254390751992949471091000280979966762160645168759631724950577447126709649777160644479002813433974493702378494289762084542660031126581085799725143500808468346560429404858488702748380032515738766125773204520555047359910405931078320928149631481032868676107752421585304890917726299926331463708572435604376285848203307160913076677843786647467654925102065925039885217882182223945967323088352400665761347375853727882181226155709025013449368096101189746461685104177206120915916832837839658673243171651126122316593102229863469912107590700875420305377937297307030105292206294762375126367898629490562292325091503619395786390271441512309307456710398688853556802640894562828093329423976102988420261156836274215828832270394439100235247438533905481247022463611477798979202462214153171686838460277622298251327161306248534391282685691006887612894614498379402756316328678201487462312934052963281518151738357760786935226536933969475844395121108547501661150547398171872276173468371676616973581181690549129487100341505722744485830207327907040674362995917732221846423234446196958008985679316937030458863725978121633282574429123647118590813341694983640073767878482647254519737725243362730153515187511859272081032111450571674622578183418325748550730429538522349164574401005598183725368384657622398043214658614362419412219148346781063355925623064585706099258626860314226213803711590399280705007637335603474277856553657401608625679201691305256677173478871363423535933343071028909036038029120137167480745545594685743263437379754694187069847405404988696651299074472949022732724430812672845440808972494801524020322551414012385413104377513213720097012889078674530590397498415892980325269974971463986342582123642554763662042039014433819312386391948133994471173176127965166490948101250833495734720233093189936648818602879255173990929060748434973701062718018275701760724213231535694761794978145912506699365519570782513521466575187056931196540963493212331455500363460426330022927585365268791894650786414700321987164697961172148267560418381849520855463533957279401472088644449113113200776587966695009083028197890445802806388987786079140723566069336561049323203503300754409191909127432792101499834720977406035326898018828195874312557818582664810072646066350759074332196668308737579563131994207240314865327097443709435074214872791359338470935024053023101761410632614870546479684211472460152647615740615425323855802464730222867960757082224549982358904496614240518657758518766108368667259893608237731469731097751106645478631410782152843625650542841190766533099686843519062966293641825582515680222200924985048415961874819690881841085811644990554506501192136487590753771195752828835687806031780089196545115698142523324737020023156295659918161720980086377758230955551142531876006452040448717350618161802584848350353906755804877751924067630474265053245478934961260835064793589973602549700639541932686558240620160608178034235367496288122110851971993281435876509125451741145598143950794302317474187707030636718240520124139407918648296031021355584453997734972397115406682272390006771462782717741726161331898468930022217087023003254850232872571344146214298745943053555561487535630986153730995657942902021792228235027767918933790945820339641351287118548328374400238437095529218648161100006379944914413372877882656975148629469856970529999952684523868519539845444289891734976212947591957008979906275808542426087742120901193320083599394358146612864189377541465060053705981879773541194434103655355410716989375653918229587239408498791937558318427913830609113923922312262565742338044125842916544761107866136817696254307524127801933197201522905994540404948339245486912795366228123033243478968412851123253630692667500112283911769777170912273914726940088177304155695850035421025079388471371795326691955644093566916782189036295435971168657092801161692657525661728898817947144126790347976671366939206297911282953852033849912155095100285428044366175717387350299431912696518630399351888282666044008272130326369720507779471612816292525399880205088832252025349146683935686914291179541078902347328589229918353703776637570448976746087649590594926848452385849009081632872663515274181279897704970497506663400304297795448573636355945167156035567824470982565555602041396561705737491763410652356984483705405282451091396582015814442849684417174021960005709993897143909636607648973508440688467395145654120568131342194706046214650686264380730470847908063148307070693543082443708672725715928995417982713247167476582760257176825964614287903470830929013369067902648923721232656593276355599327733480442745056998175831070747530994155070102468726117422042512042993752256652541518528373493390398186305202829310898498548913807549559967415917034297218023466088168257870367078903491671669370545595121048151384623230811975725751114175863905234567403015433012925705366427176011520117601476586620566642700117433566168122556259055247557048673269573722337119546256943813046548693500661917139813931572937654730656849188001166257223975893406059824884350794348272173261251174642936795347725168054238102041068420691944761532991059678416560294026209381346273683063956532555184720241660562749500681425631688348305027041509476830676668046809709851431546127487553970453614605972003433328719336810324372694185872195771352811879064672444468979279278206075212015282741558465193353785766362950205952455943571721438167877295904885136167879962936177971201018974744966439832742772749087704651931947899699800968022919789842015963440103270585483338460779455058292558548118769193283721109199527863299190883501209181284404317714967780494609644825520128796853412020346569843342969551482274651611508774842754848610543697594347538867759915498525922146890982410406627460780520311853899436178355186708123289536124278811759608643797363679997479288409434066987904283151181998994932537705951934280589052431148821600128196868518895713383313073050793028968534439746693030982359525204015472937323741821996517430100553021788610989203016854523355192332192374089219574080946695343442639195392357441410470544950002757621632643862519764183558754224821767999184577445097546631023681464878711358158221479200269609069980298559039202800623872967874269593320877146827160295540171681231399271780342636977430032772356044608547775325861242800315712901780023295874650989730377609508479000019532727336928019823370075983786065376408762504035304089134125021610736282531866455895255616923510037282288246727213663073301599833187948302148855378300438861580951560026898874812476547922581413135138108066661840445158957391454725896950599547755918116611889744379727762395940130302954867852415700719009817016858649254177763754895373664816254503844294592198673404286896133573252920040480178033320936557696236840562864465775803798939099770723695297003282675513318152825318098005560452656320256646077044006887112779973343843229271525773829281477153524770462394550389539604502487994427867064943018735400068679567185696270493697044792647146429168833129669649063246379727534379656549024826292963786370924504680288179258057776886755281124350143445145813758239468524684187197945833406344864874698758308192342697627122664800949803167042442093127672711536716119832355365991251547760820388825165826588740412176313356804736079207388937829310586193806620104019454942119225006194650308481505440306004884912902875712644196916214747785012952652096754111152356498044241423532971627783224498535602975353838396748363576092986568793996981985180932784503224572708397845516923501251280434568623116450711915414081630828844887031655110421064512611848783912923210180912288391437554485688340340799257679067810759922304010618020351124683918361910385658635789738429237468972887008395201261786763010780727078949945209070329074480421059995894460766623315103301383115025396391069689359332710575756708677905312081070464120352191481099388497660118003553594508730444268585057109298680420370815722476012486396550047031928031556195008010229910445047783814624549115526030135505743155300022146708704138552337056275011453041537960923407639463098869096887946993467790415118337641429776420467043002449017036284720315300875097753772416115415895733859260721436638268270221393615072459551646467607503069045182409615040864508810455556972337502824189282482879538441692360053363662355250577984620667471008842316144976429410193168077733240726986134608240553599885158087861723657819913299323634670840931396012082551944337033618924947537923414233293617925198919008364465595672209361675979799375837131482465455356851491242733026820434780599687486325554275210847861791014861164046094684580187440950683523006223585419602205630297869997675177476096770525108297668133790236201878184459536701651690294494949617295468352647956505191926592686169787197723452960528689002644028377539305837794256893441374753856401683357803600336468016681804408409309763002885893352702304405458399739309505389173098800199320643248825622749118051598585644306526769759124582428987646681010117946457706239634310696892067626230720477851114412996583790438346445255621221248871049969532354424102976022343317164500096111807652288225098326463197609850095261530643936634452900425128281362797481369050045370531764261714279262956838916843869463085451352365036490097903068476106222210062161570528830523062212239757601850394599464875705799102941569932809091393373726017245203863022517067026168024069561578598497698891636278860198733609019270195711802694235427300087446134966085717244934483067428463170456110401235926690396320111503954828338321566097076378504909358688166120964984337415333398314340060102141316496433831697127961113958689844342234486114356481918087989633234878764676263511312024268877175673900810027629821229519279085392495251059978660224115492958772025331931829581966580956374894054768899358692572583180214390843767843704350694045238316732412346205505136358004712376664953636444202364859483509897016201260061215578068279523391786183656320385087889049187204008091218492282363491429224082974698964127075552074966663207609270948656338789826666259089123761179495316109075481567856913593780361038857680910255212551911232216942033743302089332292507419537594249421447064271312388074384660128804597861192082814951290304640474694688695733885853576039083082222128076355328531103662289133990976431407449122944662018913023965048923485552999785460197964643311327303408866639511814223115176122020147796322800042125847429522961284622525334871791474569713680590190455871200801104618328917777832917586375036202678495685732077990664502504832107447279680585162314282603432237675034902608731683295421656176864384320724996734328427475463896808392275961074427912463046568861736321148393784877185342326485601301136107557183327759964391934821199095701730982397673625540474962256388017047575205657518314915897182855982217553206067176052744281088192307413414380784296873043516825376626741595035495487286397128728800754811389513914262836639270950196824077976757544260134711579463676873201225861333667878567581724189611590673664009856199950321125955285769456503966698509366362058263437395282497358616439470233004263458107436961455905779283088409173521622340251058757608568305823697797604061873259169984330620208043905587647557386144326134034816433624228315900496562958072682363532306020739248205921476497765920537747719527887110378451839087030749189020544777613826175622629496169654179160066060644325165523741690671781523221326593202880215841362826656870759550656082338631980979066937799231049102374836903486427679472657134542300574272733853308132242463458297866307565371657968458245548247475130706045835517398869315149446844402709320823128822442606784834013315534855520376257932713157797847408766090093183730424801698235313610189765909345034672952937763238262697969210667296176100755198657312461170233640734663449321340891106090957511837099294677465186903647881514914765398589657557420304989751208498468618515418065215918415941968156439366284333914683016012212001864919872138407598927378831365985650643931616293934799868380177643733697926632963544765170158005121119466199357277527013373230598673960009378402043441988648921226285931934882586318542218264596509758467542910032322312864806936305586538118404931101890921623144502271578223502800871209777813425173025158504809775133356628121707061158318035380583024680358696347983716708523355385114194369097168974975019634645217339861819990731973618644079579087362240865621290249178902038402435682004357629525392397676042138000786623760409108065142334725659663178929702205986976190935718049739680015801788866173854153064129890862880584852912462678271152136881175858332234309915941321325259162866189276058394120954197966197117116544852039451543880675582934281838747397419500741245765648831987454948067293659754336612616558441001556958789575326227059281493046367013367250130484463434248402443142911012766423381951020713741552459872992763560752896257326101385325543763883287488770903742918487596595569857225750466978773321181918257335054083398634935442365543601994864694822444569514190914683050649779316059909055952984615298510322949622236925927309490066646449368349304987697692550861286829792954406385787267391450162360017974828661874770321910687491724659934428912262625438030423852212193546351535392951413405607861181431073801473603433130420102435102982318343566979619405353002584028655413660390172940667954735684684962188664759367160108081776973769405945485880204870357419238345777773917975874089438032329048874609799215273053121274367753938064055111270354733818018958516106668085891328435402114008938665642897496950494310882426995266448184591481490983531401789149018935539759963636804702158684804956217970375083578996525142885540436254628146112415374315488067084561771048039243208899643398916106678408953127259816852580957710911595088492715421270985991955037808378599872459770971216898862588286480666867673526561970676277100148441345745266578940432399437558234970276996924585744194692577574487432646370636020405098524740714676363687773689143468193447806336086447886023486440036363564614075085447586567452099488857131895487184360652910467522857798110082554645488142370512978771619124683014243740969725668174220037077232841588284688288506683997646748102890852212674275591435340597080631854973936799347818599303411432680999300062041713596122319202114473564296766476716459044377704255572149073095114052526622821022483097111629362142872172728712885400737661340518988279025884448272634539348570704107934185591470992957234857170343439865705090111676555404112137297645054869464008490313541554513405439806007894118851402057284885499425809883208087707870618830051195052269634351755137408015690172946859322490742483281376962399743432981986358767621375211711272965135701600758603699331340512894264919723182290113216393793606724622359425560939613514430789867865552854599532842592104308727017652768977326348058773586117633547931088491042107363821919507043841924649716313766316112467673225256777176740122150360951214585691554983530597429993418210313398374068675754126715767697724445341408345422615873040515926191517568318155933621290687017057545954478506489089091810385088606513405739921207895772085984302856530290975001938148734937593439333217443874281397932028065337146781523808006262276993937822803151040166904265181091459798425824214482583398140607818940760090548745181297586716446144028348342233912954060519700188284501393188160428670610977920827390864549377601755756083128479779762557159055093631151248334420779085309667582894546446254780273640691143997025418824234083951264272745063331270993178250556894688942987532359976725256958335949035762926527909140776616289595091239338298818517558990857515043016402823138888855128916018127520000549796802646807697263120052949191527732839065076730450627300900026609095659618407382049821282376989091048278981764742336439371651620502917491014555489429909839230560649959721473422902445970376893308588977715822506939098496200511742872537129786799980618349916116558749335620092667952502857076389782272376009777084073244380334266730430070260559934193006046131211137336035326733711073005290947250468131754237323573357504209170549412118030512706368628597606608248177986594816138678649299292188799794956070423851291866262857372839538578779094862382742260443060179061472036165668802710619179379801838045544400369822637190329379190201136136351223139063034557575725471470107798576315221282052513499586578406193059881542814923777436135167258045643013296605219074271440374793169368542349378953251258356428919642629547561271874914510272790611367701732712820695065559561515959351177208753172875400787599059596207419772562880290654510797643109996984132738391243308655040674720408333113616464766142573326244741621675353439244318147416966443275527177932134278843916909194382415405534040060255027440022145699621553720667870886527885482510468215821012306411594092440263789571444104070613360861934248648972451758833828313533196584980142401855139316739608433186156099050879774848172662831151372710513128157576722877701241857656606113622423345716792559096732885036479482790975922325030201229229171385019270403973320518648179926841615424057428622357967520150745865874385904088147127498902032597147304558069441964530919471291995234510228033076246580330540488195283065970440717119894015330335406948466518219325657068660247279554220328123101940256028903043755502682487821442114185246259935228808534993258944804154589466802480877446491993954896901391031116345789417809915598952793494305789613315903946306784012232276900438911572264522128941143173984883304491801989403193219638522349697466059423840622208340506929874713750068610812027012174201482730646360729453976612538637925269724879066164040365164300256262361734962449792579856236678954096129786213994727282637745874793338360024155599465312221519793649806635011179020351699016316768176516134810548083863734838906933515473252187697553046117903012871396183899183631654859139395116915569926599893066389160824281450629926133137883541254445122410414967161276066453966999173702588979941775624513570357104302454025563621092356815766276334818174975548309416206249569291369288861212267751027886352460172707536793901032194843442516676457158783765264252162366209544756199320099161493171480367599101222747907461337409717009374214994013969265540959808647299086195424662005072973492970200666477775607287421013217039472894776400407927724528367396658394569990315860038883688437635419698106894038373517246931569174011803097660447721352539957759567928733599459163282838673620692840009385076670767810380815923908707051908621212657355966538305337638186466564217258333273840787880099148937137000513670820781873302269858799981856669967094585538928072203213597788492963300386188558477114628859221675022433933748551886659062517823896278037300591120021865559507029080840682026918180463180025146280246341591435027464433176086275117233709282171370764056860008278469717432755868216470885806036102870516061375865465277447030042518596453080831407900895722968048647541669434049236630711004206675530500900271871757112249471052410918334880892847653288796126222859477231105665531933842320906242308864758250741293017614879070107414445516537032819058819388689140944401687195742707811003869277185480096767309101411352560232280066146394882521688235799421780114120005074798885464762550296168679130849195934297576779430765720573363952959000075849729621966499481762551390422915445279394223904061363207733494017067300603246651618997221921315473017379158829800788561670146620092933332316442375318905043838756167600313645755638189712945022945146590850635475949142583229635441139035522957894031967394763803526399334645421853566916857815783289957963576052717611599169267689672658022503105169522814174206902360518867638911082060561815172839067150975216282010996055917710524280255731456135441982046945517345905435826151085847673467314470253426778169776789849748362832626263667714028714192640810895431056235077180962708655231579995361954988046205633766997422074692730128505755897843959185755183979462733133581186884696850777723147266283682473855974715907447906969246174118254819107925898733722651609678392861463800605879503960304299348721487593895302909956434701313057798353385106188058267791403477216685434171334206532928096412281935424300091156064496409375300615687863299064687718940020910525852081784772668093508847328733828988248012358693668097198136328380255190143357799623401096157431072874869148762047967890543533522729193542972192271505328375153364189549015990217711853076080263939989235199847923614934759103725565024944752205978527714886113859786265428536373445020429444499821997116724161076731111402023623400508618546735599538372192514096459078500738944917445522133229909467720297415572784712777732873190220997916824798327329988560771103441066180197122456739747996332886331449507866549537856394755857583260976521160374332887081706371307303298487278225435707719096375420401044776132988046637923446604302150513201473832693914937942356908817258796866831002918015825536629846365117562338988575662867976067010237928904059438494093929697874971188901515828169069472906133298171781473788483609941038241905987491958173790946267609699511433811847116784211100667624830837762375991379558845763362992459553670689507457242102996543629673986411335054251118512730565322700765183407004855394327196791123465704875404631116596848842923284874876992965672543866297595557222403404325192267582359400877263402678695612585201720261707474595041840774163244175393089052403699015605194299437712319963336449934921201035669688403455583155023669359836979060862440332530698029204653530241770895365843517311150126631485545149078487026065637412566659591768545551218494870936549353428158348533368001973230963043182355607667934294773057539471576736155694100420986600548962491176382407298690986603329183238509376345754948536592284324919337571510102666408022691735487916251969148403353244593699252581585715726989032749489460248877593174341751895807849595636091435027740629144072128660864521166864213367617276849490113357126662937664963375448974796661501816460313639715059645536573004138272177726212321403020661161879427697922944402842771543443634025554959417565850178358166271561409123234049650965290721938031245741652121942197949430270274647122272099434701479777047696940735045775690380144120623258360310819787885801918762668778328776356887293053775475780421224806721934452427037934109872916990580918057435529315552534069064929186629616360904235230285611429459445998893564378766215116006458191340310840012858181915250296605067873311798939994279826393095115728471662191325476706678547558128144249651311687496990693402128235717543995708132701330562274785622369290445364406269956822318827259399735071629890112989237259604399579559774782228251591174167399667167788238886062028564358802713371110834102148558051607522179831390240036424981920932537882886220893877199145307260430433409941474225854212552947071685533764606916994418794911032428766457116768988648421575045402476245110489113581944444858578864696422183386978874946223924551020462839117518360778157764149868125855144407475505878892679860507191514536888055957326673029058890651587299355130022860376680236201330418868676753169355744911499239831954862809757671728655531049294957106174878618003253880225015227442826545493667352247018504214962977298658110023299446062285783153255247990205204414966105715653426798247123329795904543260370640021475028046398695095761651370671904695530562820089302624855358010561772689918744656299083396786880943183935269163464354775811080864149578742443877992183433294533152197433440200564339598282553333351956489753168858860280206947585528716466796545265716958055744629897473422001237739360289003120672689653804030162056561161088411259723674837582627297473581885007413560024649992823039547193697187076909487758928694459757603884289519308254262854602103139739848380561398745290469131759248137294545351999786573361773914836628314096951557469512366364440365613192242277561106927921753133491112426211913096122211635378352146083613887744773240368635709890829654218738703425253183323055159968846632050343085123096298166011700637484766863923347381942857435509809471072694717932553872854011470135261646048759907196555630986491054167668431583340598169802002539996717271703070665229061621514395337807672063941003329909709714893090860834429573201860546823371427747567126537341471247727135262830907344778324943209287111294294774681630206208967767091910070659194326739557715479161625888112857351238860267139189615504492325813189357964669972201459236873612069636970573973559090003626315490714484628083154954192174128213666634401939200497959999466687791522202037836075247585290428726794327504093389819702750888095112884160937433491681655806510845525932904438047829287813723291685775879006498213250057416176904481640715411653990670773216098645148783293392170761705337303957199287691421020341235147898152074014246067944774847641549209412026855764194295727170145996814764438395379751108863429304684186683120602564728762259921551057835369224754128103909053820590995291783295059519299167528131576108267106538338051641160886663845197982652502083762559182159387593947905302475846002614347473230731344271727886096546405269942825448124798919147019986660578805055346495847153196127054297122315047936922829074544403121051634497670651149545363604586083763262631719983036305852558511419605224658870096479152327433084751547297923019655828649800775838157616815039015630340471145662335937053894235780993565118896814477458140218181898864788566953070943477835056072390782481508353255933053636984266730930848090468774576925663371551471265563348041333171071711808417622824963056660857739490004643747327941315244334936403856837617769978941181126796488269618241729124054832071054488457001341256210687729623625764895537848800894026394225202522557375105661486274220991622737478989571503456332114279590129843782364264326492548712065171691037238247786555630120329991041651279970732505920810043189240950918573586203889212696736586551868265223417917195286995993087859008529762364281798838329891893012868981708003842159588162065158628878276088078898641595765723815264002843269895249042638644598137720472700624851511006895720277244619958252657202216191943783629372786930877202447122405938342566004803554314831675813187785524783353563862618020616743367356887001850258576892875484085231767841945891473341050967393251880400611848890490946314174249110648267416741061155670049811574161906193975343310634295514331616933758077713071930961227360722382218634875519639117399631383345044458225201733279838311857661795969698402836810300674372916724416422714411582884114328635573928326457473557630322029466896581847423976550889119765291061846815350843880888813725129635153840881797110267107700140588969742763783505153959844436494331613037080416030644272324274895675858293490376562113463055867000350994414871845563643509737338559372803185502425291918427955966712631943384404038254471947645788585581641332116657784270920329688554581533150214935386574561895511358411296128619361177789825978155075724610152057003572425833726028696530679406558560762464162472077707504738923864716511844241371906386501316664957078048118232858710561190543379089150463843882769996007096193384709878877629943117771531843739689697528428549383670235722048956957815034908430169782093107852485164791218051975431074410521118924154275697253494895729134689982080482892347582550437640170051021480630172159443198365303148341368912389410147290371039757597716519908403331635333801986034235356413059253303227101049742890159021426073547016451011802560461424418553379822235522776525604534617039749426617855959435253736066372115092807957582869327122897972053866671555987284921313360712039471598621145558062985700109811260928202329578977262718450482159734913646137230602033146893412091921919221662508286419118855903780801194228766864461104017787228811008154789502710252504130529667851253987603596412721580478692479694761407621338610612226238932774434260119731712774735917173265511190801681635189793251124875520262318076735248650085360491963174874499802494849695856366613554532808002809938117167893301744092355312330275218857817152779899448048381574279517583462860550479929541043438468274582635122455952489743239634551337014020051241069862472341317392490870302876606949863117448488390352264876533935340008018001624896900934386735688563489532778087255948355830858803405307003394197227663421319909313400794191027423743868851087344968919672943308183715160384706841185071804264510979577359736605193659647193596863438505312740957850057043476558426548241598313731850912826587680477574590158921350090042227714251106723269893341566025776962411222769934937017260906381976129672793248999708130063497232088690224243716532532535196766638372528297948213742343776614857101615007792200598498855665982811190645173975358209314857830467705322580319179595508255789576115155849574925142720027406893418810408122161462157384676860885112894924510680403856310238718952746087070794033524813999188980615009790383575401360439312617965616561710005888801235622189931030722737368690310344855363985726239188170950270775837296362576330501419653169549283721105647257268431380944727281178078033776293351594960918251761921923782391195775723286008967793751548295027765745861593809388810161094714154347498632775148941913370849155289817943280383787957305293744063979973781844378999812852257234663140394059724235036121477874158268778917351665442147155346531292098129089356450558265228836987228646185046722633986722980367224547678515024749020613299635234900530579062886840237479547441221399793609729103600174671312206578263507437364975130551374574721581960859781117650146279949647510256413953686369776714435791192452529287175905617309560685109685436600550302100900520702654480975234921239777978482999874031513796154959910914112175546359865985523581283866613865336200427457243166306699412928459343842649119207596633334018093587374388896964398905995801498902291841598732823821335423089392985889041406445654012233275762257818473531418449988807018882171551441616320992629302578318642508987890854189698327898986599513297773438603714768466517858811467340139703312951140712591826979534037375812102455908986542944990745799597453622354983406702992354309189171275472259238314780194961034549660256039335888783794748148263770581865827772614422096694476794643739924718068769877840252490360155869112414642858264171879501861773634845043217905825812989068287926248861183736168529364136503260215508692198049770310120168512871725153849707291053958889323895193807660759610772807766036978755352553535402333401055564553447180282129829950356954785636120666857577762213435306069028381644185167178105294433274972783724995300056338234159980744025678493635052169135355465129021536856013686595436268354688650540144669227995495594223105620849540497310202070534214799056732107432281242618642515331201542133694974226014849320855165054579343742521711956397678365218271920195425845206897986777922035680354954546490185536752551937553394835394233843453160077664862004666227730955487232458994205751053344034203637614781027196272077415958963664516485615714661522537178545214830385114810735357615692661195515350778381167594259697405091908428666728384800313099352166376680693899261909202773089544845379494778648548616535096396490536403938217571264407451157856796674966860748157997241068213540532774978830699092408759398116014014208542927478025698233672201024345018557381143622406618323110719180360236842014235975280398187545650379629075035781838684675954015064236779610618249627140384221572022735798025383051847013495028060734138115767583144130868944477648781970681027655912912544860027815197709229390523177211015599309148507371265896780378893020985515784153300445791418255273005489358795425364674897994713035773334942527838373031426822580698842793134196252406846482022820677572318512080892035805894371567334980612896277923165231029320465125075319502675783903936421156890567975581342043787693027413896775316325442151040201114475843131248449569138038378222634522419986534726715794798175363458193606955062626057724736962559662515394316752529100872619978561849726788167611300844618184028484721758248587953773539268587500649854317689519815886239368569701435998316636822404509745067156976996421665681159564485983580797053581573804998713671055227424860022667515707185254987687095540971826421616600967171851085064471359300861541089202068664753032367047884395405230153078806448593715153646284609478131120831423639572192847830139325175838401508940677016823542586748154653549022711347323542647458257387461620898860151557809586506503175129977567974905570581727341704365742290551973617839082083421545873874398817535275688613774145621295148560675957668563554396404317729656723593539689837760678064381130774843383253170823322940087743799347746127008422056569789317271338408963818838193785934661448970541856430025431861604390432635725939496414840095227283292252742431554674691166420229566885530657667277670369679882716187672354016294528309725586472525040138809861877734640366765900079855456242840704144780359161015198663285082891627751139279849740495216057488639423391267638982109280167499667697317755756026489204329724159236220391402453166995259598699812637253456584507182007684892332340831829177209091524803028234697922814169447217655990203659350995694261965164660466690893999727697300941064672005485204785176355649024179726165136035854236860227597768530529409960612160290739309789720310627915061893940579225543873347451513306880512570037596684606245103964013659312521642710854719801474200588867888303225191109470636165963179701254619164921046139229589242454365965767758479157833194028309704800812376186733033223497248122595241296034110191517822880825038618852318737332174828720632259252908163469468352745416457474307876422317106386815613353111663244020983214652674102383640673596787770534821159358071041628726756272982193390011698193598965521371397751631191146436932991838651647695402903237740363659105885634649139537713399708960780504052769430070153400208551443398349519390615393944667130662789251853004513133205166288610469274481701692489856248406314401945005201733139509140947707202354378409727864021464488843605687102541680866232274308276415469119934460823961974901325816910509468202300253468287576895564186741279411317861115650008823515675853069557441265554809765154195211791791026593986665036100844585995991168582064398386536716518676234624997136522489603457942422369911781702196883931651855990085097932538831051620135799702072908202609477088987275052589953269424561997529386217455389620730565141493085321230950289444718869377777419694711751621294897715279726870945935997274311141997472299542955775999361527676274691394122193351807869746347358122863984730087003979881936223968726446523722726680079414651812791643919188150443157650209030868268871002221350939708733012444453789788033322326522954404259799426627109657024191427367509992540137042892026120999620983373586085864750068470149630280267052592278348312089940194567562372872382763943637933886858064995256001189181578619840642569582036277840914042595075320539053635931335605141768187781531690424024922018155947357088066429188970673432805116014058574020815682919202511258831557265748592642501736856039626591154185964141658763013561489699266510312556032745111597515577570852859322325281014283259846141427672736201589788980694376536148157957737661778421530051928720019435593113546971467362392883806729786518330910285916857784537515149927095461710699025932232220018064658167419993607106116362103193264511674827033116053011494894346166782477409136889056280881302734576663607678197821329236412013423641691876438697130349777487443828255821146544150003089680086646781740582464011572390335907483140063814143625071656108756049708706816560331165713857605714330434605943420149483566906196790464657040735826614541560778866960261638726871267021069821400326283252479526257521119707346859038873555626534452886327402385078454434783136550639655959391660013324144263217971102371209512467191195169171917347192310716437392697058191058294406623022042738130297554039914620453758465678438122877688733723830735253753387341114468472542598672818198156068438179313162674150345359698466817057205321284827742966984453945641720516543369322320011305552339095103173190189463667999219716135516952263598709520215630093611087762979941435569801383006509399727397968541926134308577800868429906523005777826628629965980767273173215895904492789141451790741764885496247257448084643727183795411377325869153127221966421667803320982926673000984343662329666718799519129879788674538477740179952192735722531193316784576870216728026206480275360241424974174525094346644812802498865148057094946254782377419824477039463210645895629102561569526885296104822294867234380724259268227326151685378296373059595874008483919739690420344367159039412702107252882918807414495975367792206468640841298594884289052312733799780600668438847474069432281035377340071829537064327111594398303780820968692500468855798701818601435684573990774208926550952182000432290589682621720579081211641458753366829861623953709269224204130380396767683699350857015060340023180627727083863300730020008517294367746928464868588609984803171865970228033155142452500029526143800985380691101161818150905822813399236360444461543703261232507411915453008474096816145305750906706040525290266291442829158747824407034640023523655732661942155796396325387665794738226532261096687521655709294759561197366899064782060704308306793255773378705805144496861464304545254642897911516122531667106334701060585033570047006396736099510295588906196802755148205474603045247113059574732774083413280571083056522114557655288259005592062895930335006521492253222873265971076476372628088538624921608365138619194186251314672906360196516386629398765225619556516155475394604626320807085947928338997262132733152753485810643355586174328536666264391537903979985442344847270223295649369213197503629885777519604883033685937392067404888809942842255130494760571123861251306380224609727428009979354735544195333908368779359924234940216396585301982414322671104623437773468226935823409451447195998404653216626662843739938588195733603622936681914007698648874265776612638918365260922342697226488869996494831919954446261475425676633492194857531909107860549440806562806010588020392265364790884304219468405352815983854712951708754816668644318079083153729912270614293439244441751888911758301610031513618788263637614180424438669638099473344511394709969462512127497252013064318754300981594581837314611875759508883470202930336407002536461260122499790225219090656714701949666945149498468007673406853615665482774118058746746809660009505204327437437411467125026354411833288197947955109706023266360348759120471703906355378252526760358298235994041229918249371392621847313475706777210124701595121332166353615005303818308388503303769892952089839285530342215523291025371869162689233410820535481595575923760061052418332105250352932250186994019390787947877116728258115678431807043291000186761968961411214250785134485393085835620101632721590125547281607835538555862221923063062698379956162870805527448740544359797146255644275335767842662601199580467467919324759486240398446382037044433987327222472052843497421892606014955434929813168373707707680032212005774244787287913727726958874620979353205788015329499119881339099624802725007056802393937776853560480143185670790682382243579703298254377405506128588861350245252233730132525026442450923603407465491203388428928213096715675361915074576815918862162177961491531753798548106954030717439424319580569891034282952428563443432917187191203267834199719272911197695003373498569646548326549150020286823891408476175835268147758485752541341719658988674530865900022557412184928690244865134627995983777589693942099888738243059960347070366784577013461278262015258427313757798315539314354830834878723279651707755483487224639359068164674308225976596204726733539415555469779488047092342809002789347772381414142220468290433173908267161394450482145429912884872715246074688922185785709614605363556643390175097556865766029931599691591746667443170851277063897092080476060518476986243179968592414078163445838895375504858487109623894023247368303137625795724104534206336121348962020978778675816590372793149995312291210005953607820690274627188390524659183494918082446209587602603739812943242536806897506799686174636504281647725044689668702467768577102042293486950713041862290029020494019906520452760571477910010550047250416715822253560476653915786925305286374661899852094109788297364831230335981508035710566497976894419519206393843795453487151696180721223576760723821104418209029259501354171306464907984573785130421470875973050908481822405720167588483231653928839386976158503497795974486428858759791036141309270722235495030392278304353465461619920380359801274204393913097431979970197213574551942287841994657530079023791083657373382876039185355454984976699303619783033194360228244689152143379590996601483570963571363795088965584986126653302011941513159989606473371760903610793275039960749609521608464135104090676143406566024399144393001150083870969675045434588517542272461196376133117590337188806118473657735542076100764086834331306585556048309174947058258661908910866345500300546562173617928834906611302948826589409355413822385145008569894462185389226349146553861978747334274074824198960519960563324217845385990799340318532929794460685958691496510101463716647137728254508177202658212346690171814303022505079464104516623134474527422002289016856466832791707308761958204176190061447251823010717986265078585257587925202893786499821155770039050989260167136451621857024950175041802575129217735290427875310305826028678019306934053733038391540903156969499933107955667255978126356365365701836489426452137903321407950092799176455662381736759724736610287446259964352215535310151890019746063558238160391078739105843397328632077178650542763441636169945240887922628662093182306409239032551142789748486067316109665037488777067284032971310581865683507406506113646279656939900923174771945692365363788514674885858531400426471217201764271747819647930041058360165043821957044250335224644868621076779835324423992345156035622277846111946180002124335624354970266751193653651303906707628948296877824185898567819824730416880378756698682361504770567631817562656846247791505163119332517919562341440671810089169040052184824013790590747712448723614138038428755492216635023422258138617892947154441320637143559965894648931354254762086983100396778235593627357868821356757858198575443345452200049207430486594176186656201288622918397198620213182361311035912556812284216080012480831034833002379976409923318467191330805819195139356416657166731487861734618609751265856476770531829330885795900075948032569475313262783538762217111293789658899473423954763894771712395167885909011512124830804192826323793579563390845583407163084254949941824448802353972178318757898286520605817256903284268678129431609752573230769377402919884216993481247541273506001691065784218444729042891006655321598436748182928912235866911822801798897739420760082849615810402620299620203088722029686473875261346204689774433315808278109504980959610681808965498075009931191459577318180517658903311128310948317741294858259605675096162191133208544229195915822104618507707074280045814528529743893962431499980909202604195878152264547796487555372236659515636800930367381635064314923220783802013141732215037492633202346319053141182197939802301173087003110329584535998481011291189710609288429925816972311930671166438472975783734921892895439734099182311841450288177216924895345975774464656616595587175232887785707283567837958513981778708946290697842787877827557659357468058543186954050969634374564971854262354846970102789473377891899869498275968901352502428885243838293626591577138060099499470993022510854010304587520897833303173742104240836233883105615002970089129038699479773599517803232283433365843083009089941387179869951553758632176302141289417347914742484363030688686353929408100901518198190252176045876439577527384894568947609512801287400065465330617172033937733433297368072044149309410089728973261088196274727701231323268024401829514870548549782471569316665571106849459314041462124868878312947937952575879586917268325178103473381206836028045152649815311401683076427860028364728828067385502456436966279647500005994201741227530254754320082322957550998623501869581631378557178402211867840226768571973438192624315182290210130004053250724134930914556595579675097798800466926868684246167414923637213163765911389697537185569215170074326587842187293200262028152981012712249893729437524784717458873967050679844956067016360511276740384378371269535700132825104255142871368315394886519820178888227090153882332337889306828492765151250505299985561457528487852142213294033537544635059471849784786589693307538568883308689075166184873171085662482073736763575566628620998299379777504147482023354451807584151481793317254846542835149928455730063187860721042005886240349187820262075341226081403313311250511118226651948408942053342604105672099304343913440283049608187807049175992293260218133386397675738761398048905103778477201737213064555755267110353070499783422680424246747312309688749024093936982676089204766591671423203994916375166175650030634033260154636234846068383430235087912491710321559179959398234658837605684300028455197454376225768617102313669043279490699919229645308502890238782399801493624885414296166327606728497921137769620853504367111327152099439368049688655110692048287474693928575092858176737150145633028537927101918111572238769255039190688333725540214267079327982709702645647316102508232893583638796239016298798317652663524947721090990237388371145412009245263485985861212696371498761827598538845211725564099093046669668529453306850484941868034056394244400868389284579703453135437326873027323846042776922756173592420842055440850384420703122429690501494754057414283924866227721550801824197213175883833896618243914904161828354689442104131590497968970853807588414019459759472544240262013810067593354505878791893808764208694118446599715258095536200405606945455130673592540013072088576175083822062115209818226780786798044247790817367956693274284012709814478585201492887230893285730881368314451105832225023362983375612626561124370333921375846515308499310585555514222418763534842116985537839106712876476696545208035374870325726789521929536405861979159100754245775474816366626699985106527510397967771163847524887525396638332433220664940440284868589645822461991636915160070445187884256039839317908416087037036560486185908002436854678146912832859403100997012692153547939566208787646101301149892971331375131314590953727944892241446677398351949746845815058763769302797140026668219769144638134615836255470885352549054834676058286669659201058135321249106279944210816478984283742350785438010305892339722127634423701566843764765420207075769398796009278012950164396804986327280549366398054757056100993776320053843157552315486552918308476673281763978839635630617313018989296440617919511381255187576486263628672518354477629745797772297020041004272678418962584837803272595323380647165018733274131783477450908134014235422528327553408524974701962767570753891433374445485577494332392397744954649315472571202340897265769843092030692703608943206065187623656361147881177083854135362980760765304537384169629381994154894501447265373095751013568269516805998153771913756004620989983496244908207067462399918977049907941915758605183245758547170810321640521011523840041182371687314592578227204719924329163511929997052395263303523141048225271012950095210084990773689064650001016689352451990449550366565449179044532813146894396434108089313945742398222835247064547896286148967899160765536316928288104550412877499414028022122650881406070904747721034903935439078352182811803672870813687449270505306862318961531343472744444477478544924364521123800112679720162381788344316854965725786215867788552480201877270242155865525203537411758787508855658044522412832663406726456874968452336301600256016591169309374054408059915778672033185354749051640949628213368771132597298386359062875043305677108238575850433637489189460124132342967007227419829773869641627307736856701202964478773066253705782977420185851830848067424967496126805400574980508462376611742071156634560016309509919162498478644401899723745412294414380518904726129266384347089661431898748705015547708346025875425836095673692360628801572280322808806888191570721053909937797604771870071850866282534484001635616061506148427050524734381233594569542730551833419456020829247567905419729488178686827842317445248886347985832828347995926938972180141102240153301235580906777316672561092910819674129436898671302247998409768016900360786349314245076603677698363538213516140022034033464955361612292694378441938909254539671395502511089648444978194246153453497259841009000608161943166365158068436609639436397741424985796174834218070653131582288383663427725330200090314125072349940282358695111231372469982701341238956447406953577221912511023815197838517780475845844538702423471029291719849867198612399939329026290530596974520247431643174203252913489036171343565683816794373608246735910740712605707718426315419163509998518138474311596391955961678201133715490748587545738590557805408983710747065251206436015697801769080121570049840361964978807676638587934424517786235581797322250550660009126965268274058196175628588833219155138855551797773224456498382000138468216052020268849012173765650802216596918909115947128211622583666892371185563635665579503845246546019354139108510239279107586149600784009844071541374701398674873657506636290607465164883552564554637860066510583520488665888713930085825623357545051260274037380168974134006262582072518782805257444802970495647780618371548714476343104001891142300906198017552392091505367303797147202171998882246557107186166428562268602562066113329773036940904502964574964585963596897478878874103154984139777825491190842292753390484100137934555788408598409230503623071981527311678994041885130733740552743273295117016697857629503313403935475420353592725176419196430265932037620125794931373167593498174930011185456670907443506379110182393612861229436871390534389861920285026630877634466444847534661078830148003262449382768214155093982037735081791762896264196295744988953306282988182150294814908151769810988701109721998970574216151862716978612912200881310361063867300391573185501114319083482893082454382505306977197675320316257830207880882341298302663314464244640877472758703655509766986446740684521600279985767905454727400653894789658686169393833126480526016773320530435246345472113072216661700161812917950501311703288608219784974712038424183436141644514035353842538897228006437376912898984202232079726319520284774802092121385677257207747019427248307276578040494303358706223429204766635568254342984277545208035863637529061090467645392740328436573922121594355671041716857079431796614370241019439736132172527914800647046443658488274239865911178619594089345711808738026006828048519419734232924248430028315018465561537798689074074362155094843404224107089799189745497604803764497160897784406167288360131463960140381634945355952312961115249427435732994862254250688863532226670627380165753400065252249327578791843983187559769021170121625714280948151634926145972047248412997557401691484630958005484956853384818310175831247348596635021970499003395520810219517356952245128005743592493578042534756794896898148214105912578683526076134265035117936447548913242725613854034188589619942069717023352882233914918841723885028692337040022716489711618467394334109802261849661141138460173953719833413838337095066391911413659403138645999581113434509518617311603389908071798456544585185935925484025300033146570474583406084800979176016688459394576323930482800382826565431997551120360500129718217189571922183964186852265223811564566531247572648334870743365737675080383031301361391982466962610501745376963259466373805100593373437610193373869738881686785862958884086100383740706087069249899118126780741288952871614367758410068741537732028528805878387370509156016431993769614746246264050052025202325678311214465797162442397640106709108706154705277530263187997763739975618011940631160104503843881270905727849810842738058426010129937887059539840257247745197647001470226450267342899496769142318722379662603206252321046454563727235345102253789507143438670313664419085814214345737737322805274638867053602743424522783776694755687528146739805854057504807387995337068605848993612919386339057497568885809235089745840515004448895151457444629136498705027038687824053377090800592120065478828508566378437647883759701389919692367331436836202053286263825540552307493621783684160895743667461940808618983458017965003571068922745510805388493505214698340291507190042470175307295763612062112505601379461480283919491315743494820825211476133291116982038204574222397926068247803804632118353848818632653695236253898751802931743175257085150612573871792827674580381636812205153175682008224490813923843821846529155274638171462133259435263068444395631630035312173326957059318664163232831922150475317995174920866819934653933129103962644736426977299151289238441719344659674171621045490991980982302051907340658494944448526452715247047958560428295234037058322633983378802600525603196052137462304800570597538232852477417680055111059758315763973709713893314687412743017276470910717812679726570147138026961332293648879935802644180030805564273803112632983019910535193620244053332125218228893191269040490184110491751063647534928453200414044072006988333335289662357702672807744068668960226923805563673041944936920286848165291573415811751815499058269677235098966973039114310410534378208306104632882408501712303701375876393473700902324410793795725611325711901789082245280540182586768482260014778436062556959991902842617353143311750981081517114364081878068416129894170887288261263023640688122251012759549639488641456779596589400822491515521573236223770405927737736182935672045959594227251530902547112186789395675007380889560765685311602241756037992530824508401312865993187311630592105283545330120549294271131766939512119351266647942941887326392829573167029231857520120719324211104575783332468319397238551980356504011662537379392850801497790460460004499932151816464437534434646626228628683252511805601615211574200155641477372742656645568229511151387525320601484741832451292820340031044293602082613115342688818670158259637590969493231456511837195910417918005037801138932838104971591616171636017614623340111904721841403592125157833213248706309259856469062229554195400706508260796434566696605750655603157885597182326714942688053607983082383874282632218603123596628976261117078774259605890954382887983243077608085115736003991741820888591701536047146655584451179848714312885273930436984716327272196306448364602151000562892344583828245433734928253985409338449279003538181590441549009991728889588550244983083618031532975304195437280978155166859554099144447700689511011638798461503039795501017996101775096604638518789930885107059871211879774418181809682790906299000698627853552280573507708493384337857304484774012777732639713962614894301387675331330591635036919338094697206600132799033998579983700346709654289061247670452692401555202186720550597293187409819574263033292044697212127625909097686959528612351288998876633418631019083159313820183351143738972774386029421862693901686707322593436377563176236514277732913050289920073249183245778140427121842403478116048796980508047141761166181465182364764801322964988136389123787382966499786557444421023034795545714810977939651314922557144520058333873369293003787453850943248092716716383106437646348297882401144727731595636873676338216677097942154266232477104691745066949193618432985300212706119313865525108823717220376986665650102318014579853445922816622374894043707647610611785137674286094105857545768807693526590596744747449776022700406753661744260969350689875986725781389923540336298328549276759155890937266321581941950605510640718633074437455897844329790843386983126810236984340880044317034315918918509806841273559842504202060041427705219217904725759362094172683798412226493891759964172446607163035549970115089317211498642582715035483519126216055554503133884868559398165156235099134928146698476963360650862063773994814486173697277378278499865101056045946551404729425161448043276720119872905613430619227334317408168268761492679663904061154094337652742222507462993497156065470806993217067922553573184020841068806870883785636033053225622909411905080355111204050545780736827606958965963008661980593683750118230542887681557990672178785037358059900641331316954699728193193950139945365760509176482243418942727108733838794132980667059696289749705724088328392420904019283785949561657581721856397349466170756641058370642276624557599455754483975752060388978233767085625934570674523408315372550647712470211726810253472606447391247082369014549250163512211930216608911024252488502920673118282382513478226254358395477707499493472091728640799826014323421640833046782248583074849305137331142326000417528374270128420453671485911524055467080646623295408974233119667593560171352156261558688686186153172955833172575560204091062112759723404358178440974188165767156127782966693290984169399336962560612529346323101559538204339713644889858106296866171141650269232995131992444137426051868264612679838103840967046876945580943287045839129798806756880311009368931429380255824012690700823963651980642690574007897442979191104190245941338483353323457341805886188357692728451422861709556037075271036254009096353320644069356013029466412554281323005701147343280745219180987690537706796116267467711294022771492276272395178817840717133742574804882278891170899447419288999987365237057938001995713385335618036444338103705213163829271204190744748462730668252836509636391224122553051460522231263404742245504412968279776624173277818491920452709534042607570711422697679475560662006268291303069665813075477847010081707891200485309226480318627457654545697007114364196270419737614479682033181434328484420884200411375459613184224385798403156937513282665287575443958190463588428887646351193275520494365676420743647593418030070776731253718982453595971750522236520727659042973194552380881090484270892763248000701486290965283594191070339165093580615092655602407139429414505099674458407515100208975754513879497656631503223939959879946479914391931645015081864956159187711408117486449202366613652103891346276489752152574979918978822087921450659095163862213283699826135262628994728203650286342550182279437513733307059704620206581660198655434204146865801227624151245166154442803711790441021251650857329829475450136508024902902503458336949161024891923799994455534262852913833815313026355891549386868773876933320430929775687672648239290155492204400939656597157588276612984615673997437187348649145453643806746891759650467626287278979672485676390379731065573574538353299477983205455189234469989092637776808253684877907710394356330306432027928942344751406745885738427264115966918540935594741252181293113123257108490937837365302863399051217029293115200396383100055862748110495113086469532230384858727662114900640384201558169351180231466371837478376852730725085752268161030644827281642111221252756799984326562913610377208158769385103862078306571332886494707856862089971319284419631549364977974062998594027765954719480445554487393961693770238703885087727972077852612381757004754482914711626487174988971023410864866077538634541238597598298052661844393271171156235672503203628330845312779443068504079856574033548587056793174562194866858014452355799827717689601470598652094918312131287589313478038843772383574084484559307983014970992536758386769685769722081441241511033570079678759344331946253570533863820983262931535442892024943933761289639052650879620136949715680286840206292841565648236389081648125291976768658468849732853763650978583652106538831136193030390356726339252565366852663326659518488018405065858324897942911442518449805145063131793481437917749011712784584847516488523156288629257806848770811463652495725543715152222797612031703974172229778761474016279875751314281890459049643864664128751599368985268606327429279615969659277670865809532160798698833366333041830261545549741264579545824059811606298980656177116993173487465293869710929209974560381723752300499337627913602900086980808337395486513739997031327126201430711053376790030321929539184096450611211921248097539388470287140456999754380730836036447474490393315855334579356714854971919220998143278135020023888022814778664992638279598818560225223353111934667073789559802988668526896105154972607929702170253682609911571664925950332091285306584642990464724208052903866349702496945977623517819320210112076395129478166975046362415371187661402120919257468584939745625579530619004714802601553584227321373540526636906263026085367175651851906953475186098023044334555447527897349212552638798179393847561006820167667875276870800227103458999222994607056384920493571583162849285833721918552975146699780965060836494671506357119188138619295043486131728107426990158905239141750622467833922183235835006669958201123650320079151523551568673893740948549042244267683799142367005032845429324159596927929877011041490031587386955190479628542192040762315596264191738161857047431649086093818679045975893544907892180111811777238123783827750322368391035625164763712288740688065668874768367927680527084552081142384836801562509265615007246437292306931656502950691221699269026652451973222473000800025776762667033331735354822454705041943989604547208887941887554342860156041646887300051578936776548971240880483469082634578495031609460753157746209562131768077670960207175808312606334506282173445778863885616127884897393783730726493468695292018947564106519922329588282862729543634859795950831560178343218031388084350103141198094455751255938048145011451118163443570109249879579981608443032043858791755000431246710077553388995116883384368437650725166692112558299511279268846855805483528469585043481609920240620373239188503253369421630407957184880052169772109307861016025684960471657408049939745500177427350501938264129306011000282597999342804536463221858571826621272339446433197418599075188096252301592802282718923062196121270937090048397656533670133585117208866244560756443363350117583639186096853529924326622389890888774667022353927137562161644261479222057074456963078560831445274341209200265753623123142223131199518790621574278137327641309788063328273342232700657792737106538227438410084517502801742171887796270406495844514291534366494939797996837018243279472970533963075098452018785022257946116406123407941553497832925695940556919285055995823108134779448514114197023896207263175647020761869014003033810855778602418280462597768198148511914617511617225284771870154736947298789286473051752452413034882598771878670555270962861281348302045426563874337965076623546347956744157535540775169688554173935900460526967039913327030432924219278438064754835562427620476907371666346390938534554198904064534514414313055704956991250673762009725523874644163039436034468725372269456625630543244428685453396397362366851637343380355734060328652871353976202740298874007295839790919376517044620534878672390210034911279826463617702087094458592840283947115557718012442096089909175226198546005938796385726817509542229928515822333028888112457089108953794465432026121449818386268337020730736152591604554506911519716240570865316995126829948472974101829289170103064621689370595607208811317933129924584985271223469412878898216242340231164140588829386179308511105182990012029399608517728491310408781491901940426277233257075021485995440832683840321851429501207843590048667722173197046905422685914637169373484667320165783146670541197970474056258610113941842826832150117601706282605434096983500661264760428261018777671970030256431932715476931979870180771064147007942164361024896364480511456845315426305226708421280816443419567067439552935190244009723881311023362204163387804981062923730672388413103046634639654088150492715117236612445142033521206766939607076863169654307579922251114446857743819776474331126854473104319979971852608739705629350036356425037698473047618910318377871352558009286477727498389892898168551779897132568241769017512657672157559886523146315296927249567958470976375600718189238121684026240444905446104844587128678438380618827320788480641601587066046613045946743175644311704053501374597449648442695923950808990515509826985575501701741732951152591062330796428686088071045475437943656059962111309109165893927679454967404006275695304452511617577429877538186438467606716264774863767714188382380385737161211977776099622995813400900433395259059209000672472543779304860681514736618468197098600158708451527776135131832995799210368420879932668491881735580096454258351629264953328442650747445320032914779927033330047794860390204360232748910818734072636277048859057770355697741186989286841145027949982635987468298409814666258345866842636738470166269523797738362561628902011488293184623877836226294234186513980615126328293800352485399251071956407532359225048467547971387483241405565309282144735890449380104838151990953381094724559934550403358067380669078259422617773072803557335880793275906006171939935025126070846346802281883877652930713642369621755510052434965608201294418460918461997825980096358445636307657412643410449792718203332744248034867494079811614177709249285832319302041952284123750156686491787520369573752153413634788140044864274884783520862028738523171127801163282149597397104259099628478514450771928636408479232413640811862146297454464973833129508908808620085412218402027232429432637273979277562615393776113877469763515448249348053926513439303782961483063069613153313743888379009653717235485714823602136368417639386416086231096058981688578675112795837301983892601334834772849171206167816222153905180545564397730845679136618094284783161805848803648044435913953555493365193287338271129389014932465798706328835420074274093993543802151480020036780204725857556702109468525460419078860362102019372413060351419275022911687140840937461605449436852406048239410660346659878062028313545867575710195097325146154180858654674975386669909986834687027731314219541648872640162976000795399442523879394679349429306775382722269645003439619875268192780428117939711153691864301161940793076111904424444275922389975856615673444250628942661010848331848401122584196337532097428539477654454747600611188247444406218700047307587273853252617367981541838375064989880310104713319035838927766848197928375033593674923778205268180095933148933148343157343388861243793340831804613414111655783768206565031081068785083766047778613506886814816375467448309595345965106318434576928430967360773731241358205910679261769412055672432271413870855444472543747218922895571259950438078212059843129118099928627252612927389155295137479427985798339520378869952996512561382541025096117992376695139561650020201966820546302787157165299138771781409901430860182705473886954036833082604345278135596000754357772191574470004787354057784676519837756180737558947985067996314027937774524070685628048030919033795248844832974609192384782117591422555102195619666323386717597680115306848953043017857305775000977628786234771681489644451264802110220196931488374638378085121184925042589983929019842055584347687732748409809923402081365846427647231414909973160634289961869289333406684460079124341604074889658115559499722783240266669877292376738649921351004463730040871939682310009282554136431454305927555996953410434914256232697018867244624514361298376641024284372043074562000110492490850182334988416978260859092567645558096096114116145758241119399693563986689808774346320981662205853579188129828435920721914762299720264026424372800681612191384550299380142664320072554210063528172448816033094770109378553987526834960895842091066155646986776248523658960673178779774365115249939482114126074032742334231247119393959869799803715380352747635985937340215267987327743523811427068845273996094868058998667436630938540359114014208614901970674933352624727022944703144969174868664630849050361093185187277894320384799084633787377284954284325722976694860319175279609326746827273990616538163077935858503382134338309690788467698379336763036122921957965047057416686258352953103533406037606155829094546523573150704480781249388354871407330695608111921657672121375498139271936392502822504107564515322252254279032181792868242199375918110209382199250906119820081593640246488733097352824447256555010441160518071743919972532713531413457220082195705321104581535397148134780756537068617048524832902881457720649365060283554030053460554735922490967683699864739317312844941402204110817946458869630295072174074866329547290516998058837553692529607866694133976632550077816929155478521740206949621086344930579348425330974657090882758701816437430515852582422945689802385806079967544640446345403556146061788707397142318706559835860356008195388612887981139425011971368191768957832446910594151058029987330920655395042416517407741790146953262955116404096776033342710215698673691830130196285285477265321334917547778545359908377835663464148106412416889108296473792350483149038408207422085773780082687452469770596162794786691440792563870702657383247339337226011858629832688912786468985053066179021014132592954878110100660229242065969205628107681144121672262738027102549080242339071711150597593318755572478642420658823737870782041248453364245882673463630641498863481243659217243072792513734934545189790911834818502736727283977238575498672848720883566679946960688694591786477794071061490172034647291362402591892195663988218415450349936755956231589807219707120451333066629910047387978231174484772453088377162969208867168921297287337179911339327017204232060531545187264341952863809022842011204779146086527237363778395968300889778783660435267761697067531167455669585287192364103509943857903636025315252390031907298814962975035795344423843852994453698300574285143557950323378646324420803784083357545438254301058153392665701799429250455678845150991108997304412477451024706904257018814515243472915239301557672840146138443327318922837392504013420385983803031836817836515028183111457558505327070840188602860641554344848124535526343561836529077175132312186930206191781888422210152565966162460540640874416121360052300300013521693463494390109833945892709684761551267768234388868770316174697714549595801118470192417708451316158023326621226144964885505187838619130203873195718063884835187798280887813525884273927344725715802572783415140904754994383252087512619674855439173748837418195552516530721812362702017380787749209967416062585286862874961329099077361981029643529785024457845823421644753368016683069935469328658031793780582444585450053280116892087159811148610348676443681044020932183587056580688199473649547511774803386032087450493393181751379943381336634794101663529065238229206105092698202625875588185431970739481017457586029530648015796956412459119988834305287702983705321413619323654297462147956624969271201737152539543306549794914045254611462959024523503744373765044376250886030011705283656281276321499309523077548203778170325936931256996827732827345629768633655838102275346311488881946758529327847674664005297591822925754996211337665890276526516885997242582932362879391419658542608856344912160022450774861939868003631354464166602785207692086802287607421078495232138209435421666698585879768186943761834510286302622351057611869589272221098691482352833386335868400218691257966518539394705547378033994028062462104286033572772792028412865444415946903475109135050747553021889511142777915567209590699152518504901983647869783956098406111665354161893650616911647173280428334410323007156918647588041966642655238822499573318652066497099435389954954215262551861848574580466278047851119885702665079137951883309924166449426635715161533793603945316943837635238164203779077886919475091498056408069545630995648730513389438203625003803916243850093090969602937866848350227178677148983254319005918308263398896364481484353854808173611254184127162785475374278666784058429507706007658024054334403138701053143609783209751186911396271394242970133830114565282228910482458863914489042004905848873341993225362369996901540903989339173874770595281052349531731301577900143270151973294319219006669271530257702975202879848902959918231595504538183561882366793670027532868427019865303667597060180940584432705429021492706940462371015323324012391713067453430911134270909714009716170830309151908251264051638655009458772012186101079813436927638947637052740291304651091587248590520464746116231079876681353305557010208820732027085535798763557929350348071755345174941491759425281621198712216012826841060453770724705209867868080335289791081510696695983455985398797218458926824834326491658679818511322503817493208576572426026958967979725062709689596565592684423709114554639444653525926420573380833378014728962818797424087269906386638102997958696332217061106948106734993994620041127078222582883408800913571752080529230958847621499818544609317354882389002028600916459926108776944402417517020533926369954573998156122834773578041478745099334725812852799400610443249438295831889809209133284149806145214102760331877833101013950181955162536347223980605875655243450774555726523661505298739222547854604071625807482726775088580052197879610650378815993961625466104696934070862034570276426261195215778130516590035078707218875960850309492908931675009996836257322437040710304697586238579569764724841049009396652600501456185152316460111330840323373863381716261857466576789431480081542357981348011962086636354960684694099262179321446010536357050749469907928199757931914604943655686118288137546788109559267092066113492874299824079394441169024053206505536648910067536933978635666454929767275764802844243944357617405454884692115426620100168943301191535837354888387543863869878312303709160744656843897033091049805206325519456565718514844811822886737004011852991688035895108293350758168079718557151170455567965433269785578135569537080707785041890315784026310800533826358807797007678926542108390407034115052842898984868916124334591776164236796988700343567212310334792837733756619773419615710764087119773274392526928960446694430470979800057927987654982554780423714392247882802505523148039313166562270789303345226629348559035357200155745568420827508602057400208987124058903658906150562207367708430615048249831748517923166358081105177556567221603851283083763493827220208713737595323019363232322595973054852426842427056221080892575003437286897469960383007120301535592892519240780749276890502744778614208320612869574354037758161249954840659059290520004338761923098578888362418797685330722295057820900977704261530792028736045626917694102291747991844243983404939308710543706939886103518534437533991731027530503262378360618684780891055381672934675344540340559539035648853118134813182269936598929751110545251140022133537693134337780931516179670191762247768497515010011933321755837302959280298972665307969394084021275112234324302113170198947064789960529346251662095817422496755015831472043550402461303607677634350226977727059705586507530559590978892038508044245150963301693061319672049144548021843780902235789041987873987732958713121158781837451367605370844233823511805444853531977748997826349509985994219906984751537815497041003389151467648952391693123525140900685912191498115278727555235531824271919280535830277794176496076484249212010710709148212647511802612195672673342994200221754452000241357697433644993253005751525590775665460838889514550405255459585316882120419344438716002960085190414189627838007413354302909695767063271616150630984466942807094690224436613343485691377361005750247995725963480822001441797739209212223623676000540267591709673163718548660534626882136051295933464066711398705636570116709061262356015077987405914204716677420987293598068023453657451192661359022714802370383755715118280004268210927528739803328815692823982111206776289024040508185704547907097333693233100668529673318682576587987648768185013502962129630631539866432682764122886019932333205212895473698939179512694903326148825722844602846754619393169477113038272916294362358878673459466656072721183458978090483605056288671007112113929039702428798524615585969196956287427581241274748587337449746021363988942110894041975642883229638898755030618140534972646371677723910066141385708118321921391081988584710394354527490788693849275605978732401905712736802505535696626612398399969637273519082461418078427571473919066363318040124413924176908425684619227705207713137155141376401179953838805528013196866203674322997127510615046078462874944589512848414791633819544167675777000328728873733574487126998530579035241504653200510621825008788854528599690002181559541145709057755967900104192471219897397022169528320980682255511646886660600109169588593560103401609334655633142634132027517299922675356733563406396195418466974341474046520479287895624846670792537805020990157395886985439553361215033095966421892527194674394277384695225534454136689101970155947426026040042894518813486761760270341905635350363516138188439777919915125526741595253820406353099752452301941545301968761381473194710115958691154394561233119095048420368839304476862956017003526123741676198894662425688283030451396541131148653540243962601674722266964043733931976333971227610725751164082221423139881586296163473971539986048989787688825082663170421334661382606327912986174879617704771627811903738484131980366559748489180635883219798750743510075802867592123600866087394723413625101032469523536892115675685991552116448355025283263179474964430532873460375263639316557611350295007279816167568783870614669962842245307307805298377563670142940235463915855485574265651915384970827117279449106680872253441456709982291002607861727248079999140194756388583760687009879287557851902953062566596370213424007683061726297089553149796586522794355380351087973539388817424448190343826025075176905687997847610026996664318900939871153256440951591842560329984241200866323403724956519233656076516751684010038912087228480954788927487301982145389252529607421344865706574883895143281010601957539744013203882453056905331639822704155622365621253793599253492578700101075874039309962429669145373199783229167380238095595871625453336778165639088425624527559611142342313488849203334669184994718696486850301746071813681973199534164658024863672712576235408620041535968183514889700045918340757227591474571987145577391235112511749783231585139385834966027502861672388674245557769235898559264808599570945551937538826556440807063064478803110573687699882883534922733219853498694986934999323235080861103122702306680665407205456072273416154660733910341000557351141811495356329907042331528587288725751957400165382265081781894020914583043963103905746654218549739994696282297066606640439542396137772149651738920417255545085677376118282014565873344568648381204128828986540006374671905213074315863353362992128809622517960770081658478142180512206899488648286190283691101445320259615359546468457960426129304828795443023310421754041127272057639013969712942431752875136160670315307151388763312984087121733726393202364380879605358845035795647729805047681303013734876803806898994905192760384514730424324175132702072305538487666123693019500444419988939997902130830703041059673597598667504498480370550047116491207044847063095945345665971952665263640677564736112874112637742869851270748068842553997263621511921164613666903763511720335858235060465362350534604768871511064615393093849803203574609562728699779303300626522372033208977599059247084634855087002749659964113848821639565832895070813135948562549410699122907042418251871900138065715552901986754711384781425846381082256035725344182405486420216552854406630185007960757581521725993827083553281610532885251682441791821106056661409279319212139017524760673472835664049085604349016843365120515259882596287986759968595945557938848563654403525683939227309030003253666090851459531124123003793455596556819881789096157524156111096954784565349372257629675468314061954813542447237817557929903467843096889932032157366057621792022417007492569635439863487329563168001055780780909839721143706613778707190162271797228184830937424472934543747442080025028752385467559310702880187951455996174593641172953167379343323248706404371031976814295749295442380485567185538979150050620665814267615798009932173287374369177686704003785128102304127030810285324211503565870900427123416073973507851834618681781